diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000000..5ace4600a1f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml new file mode 100644 index 00000000000..65f350e1b53 --- /dev/null +++ b/.github/workflows/code_quality.yml @@ -0,0 +1,25 @@ +name: Qodana +on: + schedule: + - cron: "0 20 * * *" + workflow_dispatch: + branches: + - develop +# push: +# branches: +# - develop + +jobs: + qodana: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 1 + #php-version: '7.1' + - name: 'Qodana Scan' + uses: JetBrains/qodana-action@v2022.3.0 + #with: + # php-version: '7.1' + env: + QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/doxygen-gh-pages.yml.disabled b/.github/workflows/doxygen-gh-pages.yml.disabled new file mode 100644 index 00000000000..33dd47aa6e6 --- /dev/null +++ b/.github/workflows/doxygen-gh-pages.yml.disabled @@ -0,0 +1,38 @@ +# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions +name: Doxygen +on: + schedule: + - cron: "0 15 * * *" + workflow_dispatch: + branches: + - develop +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Build + uses: DenverCoder1/doxygen-github-pages-action@v1.2.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: gh-pages + folder: build/html + config_file: build/doxygen/dolibarr-doxygen.doxyfile + +# - name: Deploy +# uses: JamesIves/github-pages-deploy-action@v4 +# with: +# branch: gh-pages +# folder: build/html # The folder the action should deploy. +# target-folder: docs/html2 + +#jobs: +# doxygen: +# runs-on: ubuntu-latest +# steps: +# - name: 'Doxygen' +# uses: mattnotmitt/doxygen-action@1.9.5 +# with: +# doxyfile-path: build/doxygen diff --git a/.github/workflows/exakat.yml b/.github/workflows/exakat.yml.disabled similarity index 88% rename from .github/workflows/exakat.yml rename to .github/workflows/exakat.yml.disabled index c2f8cc12765..1e9121a0e00 100644 --- a/.github/workflows/exakat.yml +++ b/.github/workflows/exakat.yml.disabled @@ -4,12 +4,20 @@ name: "Exakat analysis" on: schedule: - cron: "0 20 * * *" + workflow_dispatch: + branches: + - develop + +permissions: + contents: read jobs: exakat: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + with: + fetch-depth: 1 - name: Exakat uses: docker://exakat/exakat-ga with: diff --git a/.github/workflows/stale-issues-safe.yml b/.github/workflows/stale-issues-safe.yml index 1682b92a7a7..af04675d48d 100644 --- a/.github/workflows/stale-issues-safe.yml +++ b/.github/workflows/stale-issues-safe.yml @@ -6,9 +6,14 @@ on: - cron: "0 21 * * *" issue_comment: types: [created] + workflow_dispatch: + +permissions: {} # none jobs: stale: + permissions: + issues: write runs-on: ubuntu-latest steps: - uses: Dolibarr/stale@staleunstale @@ -21,4 +26,4 @@ jobs: days-before-close: 10 operations-per-run: 100 dry-run: false - \ No newline at end of file + diff --git a/.gitignore b/.gitignore index e4790fe7b4e..55a4c417ce7 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ default.properties *.orig Thumbs.db /dolibarr_genesis.mp4 +.phpunit.result.cache # Log files dolibarr_install.log upgrade.log @@ -42,6 +43,8 @@ htdocs/includes/sebastian/ htdocs/includes/squizlabs/ htdocs/includes/webmozart/ htdocs/.well-known/apple-developer-merchantid-domain-association +/factory/ +/output/ # Node Modules build/yarn-error.log @@ -55,4 +58,3 @@ yarn.lock package-lock.json doc/install.lock -/factory/ diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 67b4b346b6c..058a0ba8b48 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -6,22 +6,26 @@ build: analysis: tests: override: - - php-scrutinizer-run - + - command: php-scrutinizer-run + idle_timeout: 8000 + #- php-scrutinizer-run --sub-project-dir=htdocs/admin + imports: - - javascript - php filter: excluded_paths: - - build/* - - dev/* - - doc/* - - documents/* - - node_modules/* - - test/* - dependency_paths: - - htdocs/includes/* + - build/ + - dev/ + - doc/ + - documents/ + - node_modules/ + - test/ + - htdocs/custom/ + - htdocs/includes/ + - htdocs/install/doctemplates/ + #dependency_paths: + # - htdocs/includes/ paths: - htdocs/* - scripts/* @@ -32,19 +36,23 @@ tools: enabled: true extensions: - php - dependency_paths: - - htdocs/includes/ + #dependency_paths: + # - htdocs/includes/ filter: excluded_paths: - - build/* - - dev/* - - doc/* - - test/* - - htdocs/includes/* + - build/ + - dev/ + - doc/ + - documents/ + - htdocs/custom/ + - htdocs/includes/ + - htdocs/install/doctemplates/ - htdocs/core/class/lessc.class.php + - node_modules/ + - test/ paths: - - htdocs/ - - scripts/ + - htdocs/* + - scripts/* config: parameter_reference_check: enabled: true @@ -153,67 +161,73 @@ tools: # To use specific config for a specific path, use path_configs: (see example on page https://scrutinizer-ci.com/docs/configuration/tool_config_structure) # php_depend - php_pdepend: - enabled: false - configuration_file: null - suffixes: - - php - excluded_dirs: { } - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'test/*' - - 'htdocs/includes/*' - paths: { } + #php_pdepend: + # enabled: false + # configuration_file: null + # suffixes: + # - php + # excluded_dirs: { } + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'test/*' + # - 'htdocs/includes/*' + # paths: { } # change tracking - php_changetracking: - enabled: false - bug_patterns: - - '\bfix(?:es|ed)?\b' - feature_patterns: - - '\badd(?:s|ed)?\b' - - '\bimplement(?:s|ed)?\b' - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'test/*' - - 'htdocs/includes/*' - paths: { } + #php_changetracking: + # enabled: false + # bug_patterns: + # - '\bfix(?:es|ed)?\b' + # feature_patterns: + # - '\badd(?:s|ed)?\b' + # - '\bimplement(?:s|ed)?\b' + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'documents/*' + # - 'htdocs/includes/*' + # - 'node_modules/*' + # - 'test/*' + # paths: { } # Similar code detection - php_sim: - enabled: false - min_mass: 30 - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'test/*' - - 'htdocs/includes/*' - paths: { } + #php_sim: + # enabled: false + # min_mass: 30 + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'documents/*' + # - 'htdocs/includes/*' + # - 'node_modules/*' + # - 'test/*' + # paths: { } # Coding-Style / Bug Detection - js_hint: - enabled: false - use_native_config: true - extensions: - - js - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'test/*' - - 'htdocs/includes/*' - paths: { } - config: { } - path_configs: { } + #js_hint: + # enabled: false + # use_native_config: true + # extensions: + # - js + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'documents/*' + # - 'htdocs/includes/*' + # - 'node_modules/*' + # - 'test/*' + # paths: { } + # config: { } + # path_configs: { } before_commands: { } diff --git a/.travis.yml b/.travis.yml index a260c31e3f3..5380ef54d3d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,10 +2,9 @@ # from Dolibarr GitHub repository. # For syntax, see https://docs.travis-ci.com/user/languages/php/ -# We use dist: xenial to have php 5.6+ available +# We use dist: bionic = 18.04 os: linux -dist: xenial -#dist: bionic +dist: bionic language: php @@ -18,22 +17,43 @@ services: - mysql - postgresql + +before_install: +- | + echo "Add ondrej PPA" + sudo add-apt-repository -y ppa:ondrej/php + sudo apt-get update + echo "Disabling Xdebug for composer" + export PHP_VERSION_NAME=$(phpenv version-name) + echo $PHP_VERSION_NAME + ls ~/.phpenv/versions/$PHP_VERSION_NAME/etc/conf.d/ + cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/conf.d/xdebug.ini /tmp/xdebug.ini + phpenv config-rm xdebug.ini + phpenv rehash + echo + addons: - # Force postgresql to 9.4 (the oldest availablable on xenial) - postgresql: '9.4' + # Force postgresql version + postgresql: '10' apt: sources: - # To use the last version of pgloader, we add repo of postgresql with a name available in http://apt.postgresql.org/pub/repos/apt/ - - pgdg-xenial + - sourceline: 'ppa:ondrej/php' packages: # We need a webserver to test the webservices # Let's install Apache with. - apache2 - # mod_php is not supported by Travis. Add fcgi. We install FPM later on. - - libapache2-mod-fastcgi # We need pgloader for import mysql database into pgsql - pgloader - + - php + - php7.1-pgsql + - php7.1-mysqli + - php7.1-xml + - php7.1-intl + - php8.1-pgsql + - php8.1-mysqli + - php8.1-xml + - php8.1-intl + env: global: # Set to true for very verbose output @@ -44,21 +64,21 @@ jobs: #allow_failures: #- php: nightly include: - - stage: PHP 5.6-7.4 + - stage: PHP 7.0-8.1 if: type = push - php: '5.6' + php: '7.1' env: DB=postgresql - - stage: PHP 5.6-7.4 + - stage: PHP 7.0-8.1 if: type = pull_request OR type = push - php: '7.4.22' + php: '8.1' env: DB=mysql - stage: PHP Dev if: type = push AND branch = develop - php: nightly + php: nightly env: DB=mysql - stage: PHP Dev - if: type = push AND branch = 15.0 - php: nightly + if: type = push AND branch = 17.0 + php: nightly env: DB=mysql notifications: @@ -72,43 +92,31 @@ notifications: on_failure: always use_notice: true -before_install: -- | - echo "Disabling Xdebug for composer" - export PHP_VERSION_NAME=$(phpenv version-name) - cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/conf.d/xdebug.ini /tmp/xdebug.ini - phpenv config-rm xdebug.ini - echo install: - | - echo "Updating Composer" - rm $TRAVIS_BUILD_DIR/composer.json - rm $TRAVIS_BUILD_DIR/composer.lock + echo "Updating Composer config" composer -V - composer self-update - composer -n init - composer -n config vendor-dir htdocs/includes + #rm $TRAVIS_BUILD_DIR/composer.json + #rm $TRAVIS_BUILD_DIR/composer.lock + #composer -n init + #composer -n config vendor-dir htdocs/includes composer -n config -g vendor-dir htdocs/includes echo - | - echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION" - if [ "$TRAVIS_PHP_VERSION" = '5.6' ]; then - composer -n require phpunit/phpunit ^5 \ - php-parallel-lint/php-parallel-lint ^1 \ - php-parallel-lint/php-console-highlighter ^0 \ - php-parallel-lint/php-var-dump-check ~0.4 \ - squizlabs/php_codesniffer ^3 - fi + echo "Update Composer version and Install tools - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION" + echo "(version 2.5 is bugged and generate phpunit error Exception: Serialization of 'Closure' is not allowed)" if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then + composer self-update 2.2.18 composer -n require phpunit/phpunit ^6 \ php-parallel-lint/php-parallel-lint ^1 \ php-parallel-lint/php-console-highlighter ^0 \ php-parallel-lint/php-var-dump-check ~0.4 \ squizlabs/php_codesniffer ^3 fi - if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ]; then + if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ]; then + composer self-update 2.2.18 composer -n require phpunit/phpunit ^7 \ php-parallel-lint/php-parallel-lint ^1.2 \ php-parallel-lint/php-console-highlighter ^0 \ @@ -116,13 +124,16 @@ install: squizlabs/php_codesniffer ^3 fi # phpunit 9 is required for php 8 - if [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then - composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \ + if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then + composer self-update 2.4.4 + composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \ php-parallel-lint/php-parallel-lint ^1.2 \ php-parallel-lint/php-console-highlighter ^0 \ php-parallel-lint/php-var-dump-check ~0.4 \ squizlabs/php_codesniffer ^3 fi + # Remove non expected files + rm -fr /home/travis/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js echo - | @@ -246,17 +257,22 @@ before_script: - echo "Setting up Apache + FPM" + # setup link for php legacy + - sudo ln -s ~/.phpenv/versions/$(phpenv version-name)/bin/php /bin/php + # install apache web server + - sudo apt-get install apache2 php-fpm php-mysql php-pgsql php-gd php-ldap php-xml php-mbstring libapache2-mod-php # enable php-fpm - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf - | - if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then + if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then # Copy the included pool sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf fi - - sudo a2enmod rewrite actions fastcgi alias + - sudo a2enmod proxy_fcgi rewrite setenvif cgi alias - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars - - sudo chown -R travis:travis /var/lib/apache2/fastcgi + #- sudo chown -R travis:travis /var/lib/apache2/fastcgi + # start php-fpm - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm # configure apache virtual hosts - sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf @@ -284,12 +300,12 @@ script: set -e #parallel-lint --exclude htdocs/includes --blame . # Exclusions are defined in the ruleset.xml file - if [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then + if [ "$TRAVIS_PHP_VERSION" = "8.1" ]; then parallel-lint -e php --exclude dev/tools/test/namespacemig --exclude htdocs/includes/composer --exclude htdocs/includes/myclabs --exclude htdocs/includes/phpspec --exclude dev/initdata/dbf/includes \ --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian \ --exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/php-parallel-lint --exclude htdocs/includes/symfony \ --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \ - --exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --blame . + --exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --exclude htdocs/includes/webklex --blame . fi set +e echo @@ -299,7 +315,7 @@ script: # Ensure we catch errors set -e # Exclusions are defined in the ruleset.xml file - if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then + if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "8.1" ]; then phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .; fi set +e @@ -310,7 +326,7 @@ script: # Ensure we catch errors set -e # Exclusions are defined in the ruleset.xml file - if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then + if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "8.1" ]; then var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php . fi set +e @@ -436,6 +452,12 @@ script: php upgrade.php 15.0.0 16.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade15001600.log php upgrade2.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-2.log php step5.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-3.log + php upgrade.php 16.0.0 17.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade16001700.log + php upgrade2.php 16.0.0 17.0.0 > $TRAVIS_BUILD_DIR/upgrade16001700-2.log + php step5.php 16.0.0 17.0.0 > $TRAVIS_BUILD_DIR/upgrade16001700-3.log + php upgrade.php 17.0.0 18.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade17001800.log + php upgrade2.php 17.0.0 18.0.0 > $TRAVIS_BUILD_DIR/upgrade17001800-2.log + php step5.php 17.0.0 18.0.0 > $TRAVIS_BUILD_DIR/upgrade17001800-3.log ls -alrt $TRAVIS_BUILD_DIR/ - | @@ -468,6 +490,9 @@ after_script: ls $TRAVIS_BUILD_DIR/documents #cat $TRAVIS_BUILD_DIR/documents/dolibarr.log sudo tail -n 50 $TRAVIS_BUILD_DIR/documents/dolibarr.log + echo "After script - Output last lines of apache error.log" + sudo ls /var/log/apache2 + sudo tail -n 50 /var/log/apache2/travis_error_log after_success: - | @@ -476,16 +501,16 @@ after_success: after_failure: - | echo Failure detected, so we show samples of log to help diagnose - # This part of code is executed only if previous command that fails are enclosed with set +e - # Upgrade log files + # This part of code is executed only if the command that fails are enclosed with set +e + # Show upgrade log files for ficlog in `ls $TRAVIS_BUILD_DIR/*.log` do echo "Debugging informations for file $ficlog" #cat $ficlog done - # Apache log file + # Show Apache log file echo "Debugging informations for file apache error.log" - sudo cat /var/log/apache2/travis_error_log + sudo tail -n 50 /var/log/apache2/travis_error_log if [ "$DEBUG" = true ]; then # Dolibarr log file echo "Debugging informations for file dolibarr.log (latest 50 lines)" diff --git a/.tx/config b/.tx/config index d4ca5e73180..494ba41613d 100644 --- a/.tx/config +++ b/.tx/config @@ -98,6 +98,12 @@ source_file = htdocs/langs/en_US/cron.lang source_lang = en_US type = MOZILLAPROPERTIES +[dolibarr.datapolicy] +file_filter = htdocs/langs//datapolicy.lang +source_file = htdocs/langs/en_US/datapolicy.lang +source_lang = en_US +type = MOZILLAPROPERTIES + [dolibarr.deliveries] file_filter = htdocs/langs//deliveries.lang source_file = htdocs/langs/en_US/deliveries.lang @@ -140,18 +146,6 @@ source_file = htdocs/langs/en_US/exports.lang source_lang = en_US type = MOZILLAPROPERTIES -[dolibarr.externalsite] -file_filter = htdocs/langs//externalsite.lang -source_file = htdocs/langs/en_US/externalsite.lang -source_lang = en_US -type = MOZILLAPROPERTIES - -[dolibarr.ftp] -file_filter = htdocs/langs//ftp.lang -source_file = htdocs/langs/en_US/ftp.lang -source_lang = en_US -type = MOZILLAPROPERTIES - [dolibarr.help] file_filter = htdocs/langs//help.lang source_file = htdocs/langs/en_US/help.lang diff --git a/COPYRIGHT b/COPYRIGHT index de293e3867e..d980219c420 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -13,7 +13,7 @@ The Dolibarr images resources (available in the doc directory) is distributed un The name Dolibarr is a trademark initially registered by Laurent Destailleur and ceased to the Dolibarr foundation. You can use the name Dolibarr -for your own need as long as you follow the rules defined on the page https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22 +for your own need as long as you follow the rules defined on the page https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22 The use of the name DoliStore is also restricted to the same rules defined on https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22 @@ -23,7 +23,6 @@ Licence of dependencies of third-party components used by Dolibarr (all compatib Component Version License GPL Compatible Usage ------------------------------------------------------------------------------------- PHP libraries: -ADOdb-Date 0.36 Modified BSD License Yes Date convertion (not into rpm package) EvalMath 1.0 BSD Yes Safe math expressions evaluation Escpos-php 2.2 MIT License Yes Thermal receipt printer library, for use with ESC/POS compatible printers GeoIP2 0.2.0 Apache License 2.0 Yes Lib to make geoip convert @@ -31,17 +30,19 @@ Mobiledetect 2.8.39 MIT License Yes NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package) PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency ParseDown 1.6 MIT License Yes Markdown parser -PCLZip 2.8.4 LGPL-3+ Yes Library to zip/unzip files +PCLZip 2.8.4 LGPL-3+ Yes Library to zip/unzip files PHPDebugBar 1.15.1 MIT License Yes Used only by the module "debugbar" for developers +PHP-Imap 2.7.2 MIT License Yes Library to use IMAP with OAuth PHPSpreadSheet 1.8.2 LGPL-2.1+ Yes Read/Write XLS files, read ODS files -php-iban 1.4.7 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP +php-iban 4.1.1 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP PHPoAuthLib 0.8.2 MIT License Yes Library to provide oauth1 and oauth2 to different service PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests -PSR/Logs 1.0 Library for logs (used by DebugBar) +PSR/Logs 1.0 MIT License Yes Library for logs (used by DebugBar) PSR/simple-cache ? MIT License Yes Library for cache (used by PHPSpreadSheet) Restler 3.1.1 LGPL-3+ Yes Library to develop REST Web services (+ swagger-ui js lib into dir explorer) Sabre 3.2.2 BSD Yes DAV support Swift Mailer 5.4.2-DEV MIT License Yes Comprehensive mailing tools for PHP +Symfony/var-dumper ??? MIT License Yes Library to make var dump (used by DebugBar) Stripe 7.67.0 MIT Licence Yes Library for Stripe module TCPDF 6.3.2 LGPL-3+ Yes PDF generation TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement @@ -51,7 +52,7 @@ Ace 1.4.14 BSD Yes ChartJS 3.7.1 MIT License Yes JS library for graph CKEditor 4.18 LGPL-2.1+ Yes Editor WYSIWYG jQuery 3.6.0 MIT License Yes JS library -jQuery UI 1.13.1 GPL and MIT License Yes JS library plugin UI +jQuery UI 1.13.2 GPL and MIT License Yes JS library plugin UI jQuery select2 4.0.13 GPL and Apache License Yes JS library plugin for sexier multiselect. Warning: 4.0.6+ create troubles without patching css jQuery blockUI 2.70.0 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups) jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors diff --git a/ChangeLog b/ChangeLog index 37957f61c1d..9ec9fb4525a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,124 +3,523 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 18.0.0 compared to 17.0.0 ***** + +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* The deprecated method escapeunderscore() of database handlers has been removed. You must use escapeforlike instead. +* The method nb_expedition() has been renamed into countNbOfShipments() + + + +***** ChangeLog for 17.0.0 compared to 16.0.0 ***** + +For users: +--------------- + +NEW: Minimal PHP version is now PHP 7.0 instead of PHP 5.6 +NEW: #21780 Add pid field to Cronjob class and store PID on job execution +NEW: #19680 Add option PRODUCT_ALLOW_EXTERNAL_DOWNLOAD to automatically have uploaded files shared publicly by a link +NEW: #20650 can move the checkbox column on left (experimental option MAIN_CHECKBOX_LEFT_COLUMN) +NEW: #21000 Added columns 'alias_name' on project, supplier invoice, supplier order, supplier proposals and task list +NEW: #21395 Added option for dark theme mode in display - color and theme +NEW: #21397 added option to auto define barcode numbers for third-parties in barcode module setup +NEW: #21399 +NEW: #21442 Enhancement of module builder init +NEW: #21654 add bank account number used on invoices for debit +NEW: #22048 Added notes to productlot module +NEW: #22298 Bank - Add salaries & vat in the tab of planned entries of a bank account +NEW: #22328 +NEW: #22424 +NEW: #22500 member module set up made easier +NEW: #22527 projects and thirdparties can be viewed as conversation ("Message" view), like events/agenda. +NEW: #22546 can now set user supervisors using mass action in htdocs/user +NEW: #22594 can chose if VAT ID is unique or not for third parties +NEW: #22622 all partnerships displayed on tab partnership of a thirdparty and member +NEW: #22676 massaction for updating product prices +NEW: #22735 Massaction to affect users on projects +NEW: #25594 can chose if VAT ID is unique or not for third parties +NEW: #4482 adding js to hide/show advanced option on the export data page +NEW: Accountancy - Add a graphic option to enable lettering function - FPC21 +NEW: Accountancy - Add a way to clean some words when you generate thirdparty accounting account +NEW: Accountancy - Added an option during export to export or not the lettering FPC21 +NEW: Accountancy - Manage supplier deposit with specific account +NEW: Accountancy - Model Digitaria - Add a way to clean some words when you generate thirdparty accounting account FPC22 +NEW: Add a constant to disallow modification of the product reference. +NEW: Add a method doAutoRenewContracts that can be used as a cron task. +NEW: Add " as enclosure by default for CSV export. Keep removing CR/LF. +NEW: add attached file in presend email form of thirdparty card +NEW: Add a way to enter LICENSE file content in property of website +NEW: Add badge in admin extrafields setup +NEW: add constant PROPAL_BYPASS_VALIDATED_STATUS +NEW: Add date event (!= date project) and location on event organization +NEW: Add employment anniversary in birthday box +NEW: Add extrafield type "IP" to store IP addresses +NEW: Add fail2ban rules examples to limit access to /public pages +NEW: Add filter "Product subject to lot/Serial" in stock per lot/serial +NEW: Add hidden option MAIN_EMAIL_SUPPORT_ACK to restore Email ack checkbox (feature abandonned by mailers) +NEW: Add link to create an element from the category page +NEW: add margin infos to takepos invoice lines +NEW: Add max size send for "backup and link to mail" option +NEW: Add method httponly_accessforbidden() +NEW: Add more advices into the Setup security page +NEW: Add new global variable for keeping the previous signature information on proposale (case of reopen a proposale) +NEW: Add objectLink on expedition +NEW: Add oldcopy to Ticket so triggers intercepting TICKET_MODIFY have access to old values of the updated properties +NEW: Add option FICHINTER_ALLOW_EXTERNAL_DOWNLOAD +NEW: Add option --force on CLI cron_run_jobs.php +NEW: Add option "Show price on the generated documents for receptions" +NEW: Add performance index (name for company and contact) and llx_bank_url(url_id) +NEW: Add picto property on sub-module for password generation +NEW: add redirect on action confirm addconsumedline and addproduceline +NEW: Add a new advanced permission "read price" +NEW: Add substitution key __SENDEREMAIL_SIGNATURE__ +NEW: Add the referrer-policy to "same-origin" by default on all public pages. +NEW: Add the SMTP header References on ticket email created by email +NEW: Add the thirdparty column to the time list (projet/tasks/time.php) +NEW: Add trigger to record the event of sending an email from a project #20912 +NEW: Allow download link option in module configuration (propal,invoice,supplier proposal, order) +NEW: Bank - Add salaries & vat in tab planned entries +NEW: Bulk action to remove a category in list/search website pages +NEW: Can copy/paste images into emails sent. +NEW: Can edit label of an emailing even once sent +NEW: Can edit property css, cssview, csslist on extrafields +NEW: Can enter the unit price including the vat +NEW: Can invoice task time per different services +NEW: Can join several files by default on email form +NEW: Can send an email on scheduled job error +NEW: Can set a commercial discount by entering amount including VAT +NEW: Can set a monthly frequency (or multiple) in cron tasks. +NEW: Can set start and end dates and comment on button "Activate all services" +NEW: can sort and preselected best supplier price +NEW: Can use products categories to make inventory +NEW: Change filter type on tickets list into a multiselect combo +NEW: conf TIMESPENT_ALWAYS_UPDATE_THM, when it's on we always check current thm of user to update it in task time line +NEW: constant PROPAL_NEW_AS_SIGNED +NEW: show date delivery planned on orders linked to company and product +NEW: Default values in extrafields are not more limited to 255 char. +NEW: display currency in takepos menu +NEW: Enable online signature for interventions +NEW: Encrypt all sensitive constants in llx_const +NEW: extrafield price with currency +NEW: filter on reception dates (from / to) in cheque paiement card +NEW: Contracts: Default template of contract is not mandatory +NEW: Contracts: Manage Position (Rank) on Contract Lines +NEW: EMail-Collector: add IMAP port setting +NEW: EMail-Collector: add a button "Test collect" +NEW: Members: default_lang for members +NEW: Members: Table of membership types +NEW: Members: add free membership amounts at the membership type level +NEW: Projects: add author on list +NEW: Proposals: show delivery mode on PDF for proposals +NEW: Reception: add a from/to on search on date field +NEW: TakePOS: Header Scroll in TakePOS +NEW: TakePOS: add price to product box in TakePOS +NEW: TakePOS: add setup parameters, can setup terminal name +NEW: TakePOS: support of Stripe Terminal with TakePOS +NEW: TakePOS: Receipt preview in TakePOS setup +NEW: TakePOS: different product list on smartphone +NEW: Website: can delete a whole website if disabled +NEW: Website: can remove a website template +NEW: Website: can set header "Strict-Transport-Security" in web sites. +NEW: Website: can switch status of website and page from the website toolbar +NEW: Website: Templates of websites are now directories and not zip into core repo +NEW: Website: add 4 other templates in website module +NEW: If we select another view list mode, we keep it +NEW: Init module bookcal +NEW: Introduce dolEncrypt and dolDecrypt to be able to encrypt data in db +NEW: Invoice - Add french mention on pdf when vat debit option is on +NEW: invoice export : add accounting affectation +NEW: label on products categories filter +NEW: The link "add to bookmark" is always on top in the bookmark popup +NEW: MAIN_SEARCH_CATEGORY_PRODUCT_ON_LISTS const to show category customer filter +NEW: Make module WebservicesClient deprecated. Use module WebHook instead. +NEW: manage no email with thirdparties (better for GDPR) +NEW: Manage VAT on all lines on purchases cycle +NEW: manage virtual stock at a future date +NEW: On a bank reconciled line, we can modify the bank receipt +NEW: On a form to send an email, we show all emails of all contacts of object +NEW: Option PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT showing wh on PDF +NEW: Option PRODUIT_DESC_IN_FORM accept (desktop only or +smartphone) +NEW: Page for mass stock transfer can be used with no source stock +NEW: parent company column and filter in invoice and order list +NEW: Add show "Sales rep" option for PDF +NEW: Picto for shared link is clickable +NEW: possibility to select scopes with checkbox for Oauth tokens +NEW: private and public note on user, thirdparty and contact list +NEW: product categories filter on inventory list +NEW: Product supplier price: autofill default supplier VAT +NEW: Public counters feature +NEW: Start a simple support of recurrent events on agenda +NEW: Resize parent company column in order list +NEW: Saved token of OAUTH module are now encrypted into llx_oauth_token +NEW: Save one click to select on delivery ack, on emails. +NEW: scheduled job to send unpaid invoice reminder can now use the cc and bcc from email template +NEW: set thirdparty type with company modify trigger +NEW: Show also scheduled task never finished in scheduled task widget +NEW: show badge with number of extrafields in setup +NEW: show category tree in sellist and chkbxlst for common object +NEW: Show picto and color into combo for selection of tags +NEW: show product label on inventory +NEW: show sell-by and eat-by dates only if not empty +NEW: show SellBy/EatBy dates for each batch product in shipment card +NEW: skip accept/refuse process for proposals (option PROPAL_SKIP_ACCEPT_REFUSE) +NEW: experimental SMTP using PhpImap allowing OAuth2 authentication (need to add option MAIN_IMAP_USE_PHPIMAP) +NEW: can substitue project title in mail template +NEW: Supplier order list - Add column private and public note +NEW: Support IP type in extrafields +NEW: The purge of files can purge only if older than a number of seconds +NEW: Update ActionComm type_code on email message ticket +NEW: VAT - Admin - Add information on deadline day for submission of VAT declaration +NEW: expand/collapse permissions on user permission page +NEW: Add the target to select attendees of event for emailings + + Localisation: +NEW: adding JAPAN Chart-of-Account and regions/departments +NEW: adding NIF verification for Algeria + + Modules +NEW: Experimental module Asset + + +For developers or integrators: +------------------------------ + +NEW: ModuleBuilder can generate code of class from an existing SQL table +NEW: #20912 Add trigger to record the event of sending an email from a project +NEW: #21750 Added "Get lines and Post lines from BOM" at the REST Service +NEW: #22370 Modulebuilder supports 'alwayseditable' (like extrafields) +NEW: Removed completely the need for the library adodbtime +NEW: hook on agenda pages +NEW: hook to complete payment in TakePOS +NEW: hook "changeHelpURL" to modify target of the help button +NEW: hook formConfirm on action comm card +NEW: hook to modify supplier product html select +NEW: Add new hook for show virtual stock details on product stock card +NEW: Add new hooks for actioncomm +NEW: conf->global->SYSLOG_FILE_ONEPERSESSION accept a string +NEW: translate for contact type API, setup/ticket API, shipping method API +NEW: All ajax pages have now a top_httphead() +NEW: support multilang in Civilities API +NEW: Add API for the partnership module +NEW: Add "Get lines and Post lines from BOM" in the API +NEW: Replace fk_categories_product with categories_product in inventory +NEW: Rewrite of SQL request. Removed the join on category (for filter on categ), replaced with a EXISTS/NOT + + +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* Minimal PHP version is now PHP 7.0 instead of PHP 5.6 +* The signature of method getNomUrl() of class ProductFournisseur has been modified to match the signature of method Product +* Trigger ORDER_SUPPLIER_DISPATCH is removed, use ORDER_SUPPLIER_RECEIVE and/or LINEORDER_SUPPLIER_DISPATCH instead. +* All functions fetch_all() have been set to deprecated for naming consitency, use fetchAll() instead. +* Code standardization: '$user->rights->propale' is now '$user->rights->propal' everywhere. +* Deprecated method set_billed() on shipment and reception class has been removed. Use setBilled() instead. +* Tables llx_prelevement_facture and llx_prelevement_facture_demande have been renamed into llx_prelevement and llx_prelevement_demande. +* Rename MAIN_LIST_ALLOW_NOTES into MAIN_LIST_HIDE_NOTES and rename MAIN_LIST_ALLOW_PRIVATE_NOTES into MAIN_LIST_HIDE_PRIVATE_NOTES +* Rename the substitution for project label instead of project title in substitution variables + + +***** ChangeLog for 16.0.4 compared to 16.0.2 ***** + +FIX: Amount of localtax1 and 2 not correctly save on purchase order (the rate was saved instead) +FIX: #20415 +FIX: #21280 +FIX: #23008 +FIX: #22271 +FIX: #22837 +FIX: #23019 Impossible to add task times to an existing draft invoice +FIX: #23072 +FIX: #23087 +FIX: #23115 +FIX: #23116 +FIX: #23281 +FIX: bad selection of barcode numbering module +FIX: Can't see all time spent by all user +FIX: CI +FIX: CommonObject - showOptionals - Display blank td when MAIN_VIEW_LINE_NUMBER is enabled and action is confirm_valid +FIX: Documents API inconsistency +FIX: #23075 +FIX: #23117 +FIX: get multicurrency infos of propal when create order from propal with "WORKFLOW_PROPAL_AUTOCREATE_ORDER" conf +FIX: Give predictable order to inventory lines +FIX: include class multicurrency +FIX: methods declaration (backport fix 67b9a7dc07d708231d12b5e58800334d4a01ef98) +FIX: multicurrency_tx and not currency_tx +FIX: PGSQL Integer type does not have a free length +FIX: Product list in setup.php in new Module +FIX: propal and order stats broken on Tag+User(retricted customer list) +FIX: saving of numbering module for jobs +FIX: Stickler +FIX: travis + +***** ChangeLog for 16.0.3 compared to 16.0.2 ***** + +FIX: $sign is useless +FIX: #18304 Member subscription confirmation email sent even if mandatory fields are missing +FIX: #19828 +FIX: #19877 +FIX: #22509 default value on integer fields don't retrieve by setSaveQuery +FIX: #22786 +FIX: #22813 +FIX: #22824 Accountancy - Journal - Search on subledger when list of subledger is disabled +FIX: Backup using the low memory mode +FIX: Bankaccounts API fetch with 'id' and 'socid' +FIX: base64_decode should be forbiden in dol_eval +FIX: Broken Permissions check, $object is null. +FIX: compute next value when year is on one digit for reset counter +FIX: copy same behaviour in other accountancy files +FIX: Fix the position of the verification condition of the test field in case of multi entities +FIX: for #22882 +FIX: for #22952 +FIX: merge errors on mailing card +FIX: PaymentBankTransfer Type page management with Select and Input on create.php +FIX: remove not initialized variable +FIX: SQL request parenthesis +FIX: Use the Hook addMoreActionsButtons resPrint +FIX: Wrong Extrafields Element For Assets + +***** ChangeLog for 16.0.2 compared to 16.0.1 ***** + +FIX: 16.0 - computed extrafields are not displayed if the object has no other extrafields +FIX: #22538 +FIX: Accountancy - Review of Winfic - eWinfic - Winsis compta export format +FIX: add loadRoleMode on getlinearray +FIX: Autosearch on takepos was broken +FIX: avoid access forbidden with numeric ref +FIX: avoid error, check of product fetch is already check before +FIX: avoid error, fetch of product is mandatory (by id or by ref) +FIX: avoid unnecessary multiple calculation (#22637) +FIX: bug on selected value for select_bom() function +FIX: can not set prospect status "Do not contact" +FIX: change in the communication status of the prospect +FIX: check $id, already checked before +FIX: closed warehouse for shipping +FIX: extrafields_add tpl for stock movement +FIX: the request SQL for transversal user, the join on usergroup table must be with getEntity('usergroup') +FIX: Import of contact when there is duplicate thirdparties +FIX: Import of socialnetwork field +FIX: input selector is wrong with PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES usage +FIX: install wizard error management +FIX: just add integer +FIX: Missing $object for online signature link build +FIX: missing quote +FIX: only modify hidden checkbox/multislected extrafields on update if they are provided in request +FIX: php doc +FIX: private message ticket become public if edit action +FIX: remove > 0 and -1 +FIX: remove db object to avoid error with postgresql +FIX: Search ambigous field on MO list +FIX: Search on social networks +FIX: Subscription must be stopped when max of attendees reached. +FIX: supplier price update: missing error reporting +FIX: travis & stickler feedbacks +FIX: we must be able to select only bom of a specific product + several fixes on select_bom() function +FIX: wrong perm check +FIX: wrong typo, remove quote +FIX: wrong var typo + + +***** ChangeLog for 16.0.1 compared to 16.0.0 ***** + +FIX: #16476 on massaction the pdf generation is not using the t… +FIX: #21416 Filter tag no-categorie in members +FIX: #21543 +FIX: #21799 inactive companies shall not be selectable for new proposals, orders and invoices +FIX: #21859 Don't show html balise on list for private/public note +FIX: #22164 +FIX: #22241 +FIX: #22263 Accountancy - Account number expected in place of a rowid on parent account on export +FIX: #22264 Accountancy - Translation on chart of accounts export +FIX: #22265 Accountancy - Account number expected in place of a rowid on export +FIX: #22334 +FIX: #22360 +FIX: #22379 creating events on supplier order +FIX: #22382 Error on length of supplier reference +FIX: #22386 IBAN not mandatory for International Export Countries +FIX: #22440 Lang Key "UserAccountNotDefined" is missing +FIX: #22482 +FIX: #22507 +FIX: Accountancy - Some manuals operations are displayed in subledger +FIX: API reception return error 500 +FIX: avoid override initial message ($this instead $object) +FIX: avoid some warnings (php8+) +FIX: Bad backtopage and CSRF on link for ticket message +FIX: bad closing select +FIX: broken feature, wrong fk_parent_line after cloning object +FIX: Column label +FIX: compatibility if javascript not actived +FIX: compatibility with Mysql <= 5.7 +FIX: contact deletion: execute trigger before really deleting +FIX: CronJob sendBackup +FIX: CSRF + lost value of constant after use save button +FIX: CSS +FIX: data integrity for llx_delivery table +FIX: default value for partnership status +FIX: deletion of the MO_CHILD link +FIX: Dictionary - Display error on cache_vatrates +FIX: Dolibarr#16476 version 2a +FIX: Duplicate creation of invoice when closing shipment linked to order +FIX: Duplicate in list when filtering on categories +FIX: extrafields with value '0' was '' +FIX: filters lost when sorting on productMargin and customerMargins +FIX: fk_expedition in $line can be usefull for triggers +FIX: Import in upgrade when using a socialnetwork field. +FIX: input hidden with fk_product of line on mo production can be usefull +FIX: inventory code must be different at each transation +FIX: inventory total columns +FIX: Issue #16476 on massaction the pdf generation is not using the thirdparty language settings +FIX: Linked object agenda card +FIX: missing check if category module is enabled +FIX: missing check if incoice as a payment (wrong status) +FIX: missing class "societe" when create another object with workflow +FIX: missing error message if image size too large +FIX: Missing reposition +FIX: missing the management of a constant in the Ticket config +FIX: Missing token in different URLs links +FIX: @ must be allowed into dol_eval to allow rules including external module string 'abc@def' +FIX: - php V8 get number doc saphir +FIX: - php V8 propal index last draft +FIX: Preview button position on documents list (case when the file is too long) +FIX: Project - on global view, missing display of ref customer +FIX: Protection against bad value into accurancy setup +FIX: reading of trackid in emailcollector (when on recipient suffix) +FIX: recruitment linked files +FIX: Remove use of code we should not have +FIX: Restore the option MAIN_OPTIMIZEFORTEXTBROWSER +FIX: Rich text is not diplayed +FIX: same thing in deleteline +FIX: Supplier Reference is lost when page breaks +FIX: support of array parameters in "add to bookmark" feature. +FIX: Test that web dir is correct in install +FIX: the shipment PDF was using the full size logo instead of small +FIX: Token Error : delete stock transfer +FIX: ToOfferALinkForOnlinePayment not translated +FIX: tooltip of technical tables added of a module +FIX: wrong result check when update expensereport line + ***** ChangeLog for 16.0.0 compared to 15.0.0 ***** For users: --------------- -NEW: PHP 8.1 compatibility +NEW: PHP 8.0 and 8.1 compatibility: + Warning!! Application works correctly with PHP 8.0 and 8.1 but you will experience a lot of PHP warnings into the PHP server + log files (depending on your PHP setup). Removal of all PHP warnings on server side is planned for v17. NEW: Support for recurring purchase invoices. NEW: #20292 Include German public holidays -NEW: Can show ZATCA QRCode on PDFs +NEW: Can show ZATCA QR-Code on PDFs +NEW: Can show Swiss QR-Code on PDFs NEW: #17123 added ExtraFields for Stock Mouvement -NEW: #20609 : new massaction to assign a sale representatives on a selection of thirdparties +NEW: #20609 new massaction to assign a sale representatives on a selection of thirdparties NEW: #20653 edit discount pourcentage for all lines in one shot NEW: Accept 'auto' for ref of object on import of purchase order/proposal NEW: Accountancy - Add more filters and info on page to bind accounting accounts -NEW: Accountancy - Add subledger account when we generate a transaction with a deposit invoice +NEW: Accountancy - Add subledger account when generate a transaction with a deposit invoice NEW: Accountancy - Add a massaction to preselect an account (customer and supplier list) +NEW: Accountancy - Add hidden feature for accounting reconciliation NEW: ACE Editor is restored at same cursor position after a save. NEW: Add "addMoreActionsButtons" hook to subscription form NEW: Add an option in GUI to show a Quick add button into top menu bar -NEW: Module Recruitment - Add a public page with all list of open job positions. -NEW: Module Recruitment - Add a tab with list of application on the jobposition file. NEW: Add a workflow to auto link contract on a ticket -NEW: Add column date of Signature on proposal list NEW: Add column template invoice in invoice list NEW: Add column "Total HT" to products array on document creation card -NEW: ADD configuration for text color of button action -NEW: Add constant to hide categories in TakePos -NEW: Add constant to show category description in TakePos -NEW: Add constant to show only the products in stock in TakePos -NEW: Add entity filter in exports +NEW: Add configuration for text color of button action NEW: Show the event block on recurring invoices #20870 -NEW: Add filter "opportunity status" on statistics of projects. NEW: Add firstname, lastname and max number of attendees for module "Event Organization" -NEW: add margin info in proposal and order list -NEW: Add massaction "Edit Extrafield" for Product +NEW: Add margin info in proposal and order list NEW: Add more fields to detect duplicate during import of thirdparties NEW: Add option to foce delivery on email for purchase order receipt to yes -NEW: Add param boder table for md theme -NEW: Add param color button action NEW: Add possibility to create contract from invoice NEW: Add possibility with constant MAIN_LOGIN_BADCHARUNAUTHORIZED to define bad character unauthorized into login name -NEW: Add private and public notes on tax files. -NEW: Add status "Obsolete" to KM articles +NEW: Add private and public notes on tax files NEW: Add substitutions "user numbers" -NEW: Add the possibility to add sub-BOMs to BOM -NEW: allow a ticket to be automatically marked as read when created from backend. NEW: allow cut&paste as real numeric value to excel NEW: A public form to send a message and create a lead is available NEW: automatically set totally received status in reception NEW: Auto set invoice paid when adding credit not and remain to pay is 0 -NEW: Availibility dictionnary has a new column unit and number -NEW: barcode rule to insert product in takepos -NEW: Can change value of AWP during the inventory +NEW: Backup tool has an "lowmemory" option for mysqldump on large database NEW: Can enter price with tax for predefined products on purchase objects -NEW: Can filter on a thirdparty on product statistics NEW: Can removed doc templates from setup page of thirdparty -NEW: Can set the parent company during the creation of thirdparty (action=add of societe/card.php) NEW: Can use ! to make a search that exclude a string -NEW: Change in theme colors does not need to use the refresh button NEW: clean values and amount in FEC import NEW: const MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND for mailing mass action NEW: Contact filter project list NEW: Create contract from invoice -NEW: create third-party with contact if not found on public ticket +NEW: Database: Can store the session into database (instead of beeing managed by PHP) +NEW: Database: Some core tables are created only at module activation NEW: Default value for MAIN_SECURITY_CSRF_WITH_TOKEN is now 2 (GET are also protected agains CSRF attacks) -NEW: deposit payment terms: add field into dictionary admin page to define default percentage of deposit. +NEW: deposit payment terms: add field into dictionary admin page to define default percentage of deposit. NEW: Dictionaries - add possibility to manage countries in EEC -NEW: display errors in a message box after generating documents -NEW: Display physical and virtual stock of the products when creating OF from a BOM -NEW: Display product ref in "Object link" product tab for BOM +NEW: Dictionaries - Availibility dictionnary has a new column unit and number +NEW: Display errors in a message box after generating documents NEW: Enhance the import. Can use 'auto' for the ref (import of orders) NEW: Events on Proposal to Return to Draft +NEW: Exports - add entity filter in exports NEW: Page to list expense report payments NEW: JS inventory autocalc input NEW: language support for more emailing target selectors NEW: leave requests: add field into type dictionary to block request if balance is negative -NEW: MAIN_MAIL_AUTOCOPY_TO can accept several email and special keys -NEW: MAIN_SEARCH_CAT_OR_BY_DEFAULT const for search by category NEW: Mass action "Close shipments" -NEW: Module website now supports the multicompany module -NEW: More mode for THEME_TOPMENU_DISABLE_IMAGE (2, 3, ...) +NEW: Module BOM - add tabs for nets BOM +NEW: Module BOM - add the possibility to add sub-BOMs to BOM +NEW: Module Recruitment - Add a public page with list of all open job positions. +NEW: Module Recruitment - Add a tab with list of application on the jobposition file. NEW: Add option to move checkbox column as first column on Thirdparty list (only few screens) -NEW: Add tabs for nets Bom -NEW: on redirect of page in website module, GET parameters are kept. -NEW: optional display warning icons on ticket list -NEW: option to default check "notify tier at creation" in ticket module -NEW: option update prices on proposal cloning NEW: payment conditions enabling semi-automatic deposit creation (Issue #18439) NEW: possibility to consume multiple batch NEW: Reverse movement product consumption NEW: Send email to the supplier order contact -NEW: New permission to report time on timesheet. +NEW: add permission to report time on timesheet +NEW: Knowledge Management - add status "Obsolete" to KM articles +NEW: MRP - split consumption line on MO +NEW: MRP - display physical and virtual stock of the products when creating OF from a BOM +NEW: MRP - display product ref in "Object link" product tab for BOM +NEW: Orders - support user_modif in order +NEW: Products - add massaction "Edit Extrafield" for Product +NEW: Products - List - add thumbnail field in product list +NEW: Products - Statistics - can filter on a thirdparty +NEW: Projects - add filter "opportunity status" on statistics of projects. +NEW: Proposals - option update prices on proposal cloning +NEW: Proposals - List - add column date of Signature on proposal list NEW: SEPA XML - option to place payment Type Info at Credit transfer Transaction level -NEW: Show number of votes into the label of tab "Results" of a survey -NEW: Show product reference in Takepos -NEW: Some core tables are created only at module activation -NEW: split consumption line on MO -NEW: stock filter in reassort lists -NEW: stock limit in stock export CSV -NEW: Sub-bom are availables +NEW: Stocks - stock filter in reassort lists +NEW: Stocks - stock limit in stock export CSV +NEW: Stocks - Inventory - can change value of AWP during the inventory NEW: Supplier order - Show ref supplier of reception in linked object block -NEW: support user_modif in order -NEW: TakePos - pagination on search results -NEW: The backup tools has an "lowmemory" option for mysqldump on large database +NEW: Surveys - Show number of votes into the label of tab "Results" of a survey +NEW: TakePOS - barcode rule to insert product in TakePOS +NEW: TakePOS - pagination on search results +NEW: TakePOS - show product reference +NEW: TakePOS - add constant to hide categories +NEW: TakePOS - add constant to show category description +NEW: TakePOS - add constant to show only the products in stock +NEW: Themes - add param color button action +NEW: Themes - Change in theme colors does not need to use the refresh button +NEW: Themes - more modes for THEME_TOPMENU_DISABLE_IMAGE (2, 3, ...) +NEW: Themes - MD - add param border table for md theme +NEW: Third-Parties - add rules "customer accountancy code" is mandatory to validate invoice +NEW: Third-Parties - can set the parent company during the creation of thirdparty (action=add of societe/card.php) +NEW: Tickets - allow a Ticket to be automatically marked as read when created from backend +NEW: Tickets - create Third-party with contact if not found on public ticket +NEW: Tickets - option to default check "notify tier at creation" +NEW: Tickets - Trigger: allow to automatically send messages on new tickets +NEW: Tickets - optional display warning icons on ticket list +NEW: Websites Module - supports now the multicompany module +NEW: Websites Module - on redirect of page in website module, GET parameters are kept. NEW: The 'reposition' class works on ajax constantonoff that make redirects -NEW: Thirdparty - Add rules "customer accountancy code" is mandatory to validate invoice -NEW: thumbnail field in product list NEW: total mark rate in list NEW: uncheck "send message" by default on a ticket when private messages has been checked NEW: VAT Report by month - Show detail by rate and also by code -NEW: Ticket triggers: allow to automatically send messages on new tickets -NEW: Accountancy - Add hidden feature for accounting reconciliation -NEW: Can store the session into database (instead of beeing managed by PHP) +NEW: Added MMK currency (Myanmar Kyat) +NEW: On a form to send an email, we show all emails of contacts of object - Modules -NEW: Module Partnership Management -NEW: Experimental module Event Organization Management + Modules state +NEW: Module Partnership Management - stable +NEW: Module Event Organization Management - stable For developers or integrators: @@ -128,48 +527,46 @@ For developers or integrators: NEW: dol_uncompress() supports more extensions (.gz, .bz2, .zstd). Only .zip was supported before. NEW: Implement a generic method for Kaban views NEW: Upgrade chartjs library to 3.7.1 -NEW: update rank line is possible on API for customer invoices, sales orders and supplier invoice NEW: stripe element with more gateways NEW: solde() function evolution to be able to get solde until a chosen date NEW: Suggest a way to run upgrade per entities. NEW: Support html content for multiselect component. NEW: ModuleBuilder - Add tabs view in module builder NEW: ModuleBuilder - More feature that can be modifed after module generation -NEW: Hook getNomUrl available everywhere in tooltip of ref links NEW: Identification of tr is possible with by attribute data-id on some pages NEW: Import with select boxes V2 -NEW: Can update rank of invoice, proposal and order lines with API update NEW: Can use current entity filter on 'chkbxlst' NEW: Creation of the function select_bom() used to display bom select list -NEW: add printFieldListWhere hook in product reassort card NEW: Add trigger and event on completely received status change NEW: Add utility function send backup by mail NEW: add WordPress OAuth to save a token (not SSO) -NEW: A module can embed a sql script run at each Dolibarr upgrade -NEW: API Proposals - Add POST lines -NEW: API REST filter states by country -NEW: Add option INVOICEREC_SET_AUTOFILL_DATE_START/END -NEW: Add option MAIN_API_DEBUG to save API logs into a file +NEW: A module can embed a SQL script run at each Dolibarr upgrade NEW: Add param to keep the robot=index meta tag on public pages NEW: Add method hintindex() in database handlers. NEW: add modifications for new function "$db->prefix()" NEW: addMoreActionsButtonsList hook for button in list -NEW: Add API to get a template invoice NEW: Standardize a lot of code. -NEW: #20736 Allow extrafields SQL filters on REST API product lookup -NEW: #19294 implement detailed timespent in task of project API NEW: Add a protection into PHPunit to avoid to forget a var_dump + + +API: +NEW: API Proposals - Add POST lines +NEW: API REST filter states by country +NEW: Add API to get a template invoice NEW: Add datem and type parameters to API to create movements -NEW: Add hidden option on contract PDF line to hide qty and price -NEW: Option MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND to send last document in mass mailing action -NEW: Add hooks: selectContactListWhere hook, selectThirdpartyListWhere hook -NEW: TakePos - add hooks complete product display -NEW: TakePos - add hooks for cart display -NEW: TakePos - add hooks to complete ajax return array +NEW: #19294 implement detailed timespent in task of project API +NEW: #20736 Allow extrafields SQL filters on REST API product lookup +NEW: Can update rank of invoice, proposal and order lines with API update +NEW: update rank line is possible on API for customer invoices, sales orders and supplier invoice +NEW: Add option MAIN_API_DEBUG to save API logs into a file + +Hooks: +NEW: Hook getNomUrl available everywhere in tooltip of ref links +NEW: Add hooks: selectContactListWhere hook, selectThirdpartyListWhere hook NEW: Add hook before the public ticket list -NEW: Add hook doaction in takepos invoice -NEW: Add Hook for Notif +NEW: Add hook for Notif NEW: Add hook for more buttons +NEW: add hook printFieldListWhere in product ressort card NEW: Add hook printFieldListWhere in "show_contacts" function NEW: Add hook printFieldWhere in load_state_board function NEW: Add hooks contact tab badge and hooks parameter for avoid conflicts @@ -181,15 +578,28 @@ NEW: Add hooks on project task time page NEW: Add hooks on salaries and sociales card NEW: Add hooks select product list and select thirdparty list function NEW: Add hook to getSellPrice function +NEW: TakePos - add hooks complete product display +NEW: TakePos - add hooks for cart display +NEW: TakePos - add hooks to complete ajax return array +NEW: TakePOS - add hook doaction in TakePOS invoice +Config Options: +NEW: Add hidden option on contract PDF line to hide qty and price +NEW: Option MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND to send last document in mass mailing action +NEW: Option MAIN_API_DEBUG to save API logs into a file +NEW: Option MAIN_MAIL_AUTOCOPY_TO can accept several email and special keys +NEW: Option MAIN_SEARCH_CAT_OR_BY_DEFAULT const for search by category +NEW: Option INVOICEREC_SET_AUTOFILL_DATE_START/END + +WARNING: Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: -* There is a new specific permission to be allowed to enter timesheets. If you use timesheet, don't forget to give the new permission (disable and +* There is a new specific permission to be allowed to enter timesheets. If you use timesheet, don't forget to give the new permission (disable and enable the module project if it is not visible). * The default value for MAIN_SECURITY_CSRF_WITH_TOKEN has been set to 2. It means any POST and any GET request that contains the "action" or "massaction" with a value of a sensitive action must also a valid token parameter (With previous value 1, only POST was concerned). Note: With value 3, any URL with parameter "action" or "massaction" need the token, whatever is the value of the action. -* verifCond('stringtoevaluate') now return false when string contains a bad syntax content instead of true. +* verifCond('stringtoevaluate') now return false when string contains a bad syntax content instead of true. * The deprecated method thirdparty_doc_create() has been removed. You can use the generateDocument() instead. * All triggers with a name XXX_UPDATE have been renamed with name XXX_MODIFY for code consistency purpose. * Rename build_path_from_id_categ() into buildPathFromId() and set method to private. @@ -197,8 +607,82 @@ Following changes may create regressions for some external modules, but were nec * Method fetch_all_resources(), fetch_all_used(), fetch_all_available() of DolResource has been removed (they were not used by core code). * Method fetch_all of DolResource has been renamed into fetchAll() to match naming conventions. * The hook 'upgrade' and 'doUpgrade2" has been renamed 'doUpgradeBefore' and 'doUpgradeAfterDB'. A new trigger 'doUpgradeAfterFiles' has been introduced. +* The context hook 'suppliercard' when on the supplier tab of a thirdparty has been renamed into 'thirdpartysupplier' +* Because the module Resources highly linked to the Agenda module, the menu for Resources module has been moved into top menu Agenda. +***** ChangeLog for 15.0.3 compared to 15.0.2 ***** + +FIX: 15.0: modules cannot declare more than 1 cron job using the same method with different parameters +FIX: 15 fix graph ficheinter status +FIX: #18704 +FIX: #20444 +FIX: #20448 missing preg_replace for vat rate when adding a free line +FIX: #20476 migration postgresql 13.0.x to 14.0.x packaging type +FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB +FIX: #20527 Accountancy - Unbalanced entry proposed when an employee are declared on a social contribution +FIX: #20621 signature online with proposal with n page. +FIX: #20696 +FIX: #20828 +FIX: #20886 : manage durations in list_print_total.tpl.php +FIX: #20902 +FIX: #21051 +FIX: #21093 +FIX: #21138 +FIX: #21140 +FIX: #21174 +FIX: #21323 +FIX: #21472 On the bank transfer lists, a change of page switches to the lists of the direct debit module +FIX: #21495 +FIX: #21518 +FIX: Accountancy - Label of VAT account is empty +FIX: Accountancy - Model account list - Problem of CSRF +FIX: Accountancy - Partitioning of the entity on an automatic binding +FIX: add missing thead, th and id on table +FIX: backport commit 5b3fcc5e43979b1b0789bf81fb8f1b2b59c93056, chkbxlst cannot be emptied +FIX: Bank account not set when creating invoice from order +FIX: Bank transfer - Link on code supplier invoice was bad +FIX: Can convert a partially closed down payment when close for +FIX: class center linkedObjectblock order date +FIX: count elements in invoice list (Issue #21444) +FIX: Customer price non numeric warning when 0 vat. +FIX: errors in getLinesArray() +FIX: False alert of WAF when there is "set" into some URL action=update. +FIX: Intervention graph by status on ficheinter Index page +FIX: Intervention url link into Commerce index +FIX: Fix get origin from other than supplier proposal when add a new supplier proposal +FIX: Fix show errors in card +FIX: fourn/commande/card.php Added "$object" parameter to $formfile->showdocuments call +FIX: french traductions for payment methods +FIX: hook for dol_format_address +FIX: Index page for "Sales" give wrong URL link to Intervention +FIX: issue Dolibarr #21495 for v15 +FIX: label and get_substitutionarray_each_var_object on ODT generation +FIX: load product stock in inventory lines +FIX: missing morecss for multiselectarray +FIX: missins time spent list menu +FIX: new member subscription: bank account and payment mode might be hidden +FIX: ODT generation of BOM document +FIX: ODT tags for subobjects {object_subobject_yyy} was not working. +FIX: qty received label in Squille PDF model +FIX: rank duplicate on mass action invoice from multiple orders +FIX: regression + add $forceentity parameter +FIX: regression PR #20713 +FIX: security breach if we have same ref number in multiple entities +FIX: selection of type of invoice +FIX: Send remind to pay invoice only on validated invoices +FIX: Show sellist type of extrafield when none category selected +FIX: signature online with proposal with n page. +FIX: sql error when PRODUCT_USE_SUPPLIER_PACKAGING enabled. +FIX: sql order +FIX: trash icon on crontask list to do not work +FIX: v15 linked object block center order date +FIX: Warning on attribut +FIX: We must remove empty values of $features array in fetchByProductCombination2ValuePairs() because some products can use only several attributes in their variations and not necessarily all. In this case, fetch doesn't work without my correction +FIX: with callback function +FIX: xml file for company with special chars in name +FIX: Zatca QR code must use company name/vat + ***** ChangeLog for 15.0.2 compared to 15.0.1 ***** @@ -332,7 +816,7 @@ For users: NEW: Online proposal signature NEW: Can define some max limit on expense report (per period, per type or expense, ...) -NEW: Provide a special pages for bookmarks and multicompany for a better use of some mobile applications (like DoliDroid) +NEW: Provide a special pages for bookmarks and multicompany for a better use of some mobile applications (like DoliDroid) NEW: Allow the use of __NEWREF__ to get for example the new reference a draft order will get after validation. NEW: Add option to disable globaly some notifications emails. NEW: #18401 Add __NEWREF__ subtitute to get new object reference. @@ -381,7 +865,7 @@ NEW: can enable/disable external calendar by default NEW: Can hide sender name on PDF documents NEW: Can select lot from a combo list of existing batch numbers (in MRP consumtion) NEW: Can set the default BOM on a product -NEW: Can set/unset the usual working day of the week (friday, saturday, sunday) +NEW: Can set/unset the usual working day of the week (friday, saturday, sunday) NEW: Can show progression of task into combo list of tasks NEW: can upload the odt file for the product doc template NEW: Contract - Add From/to input on search date @@ -445,7 +929,7 @@ For developers: API: NEW: #18319 REST API - Shipment: Add 'close' action / endpoint / POST method. -NEW: add API /approve and /makeOrder for purchase orders +NEW: add API /approve and /makeOrder for purchase orders NEW: API for knowledgemanagement NEW: API get list of legal form of business NEW: API list of staff units @@ -480,21 +964,23 @@ NEW: we need to be able to put more filters on deleteByParentField() function NEW: make it easier to set the `keyword`, `keywords` and `description` attributes of an ecm file object NEW: Experimental feature to manage user sessions in database - + +WARNING: + Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: -* ALL EXTERNAL MODULES THAT WERE NOT CORRECTLY DEVELOPPED WILL NOT WORK ON V15 (All modules that forgot to manage the security token field +* ALL EXTERNAL MODULES THAT WERE NOT CORRECTLY DEVELOPPED WILL NOT WORK ON V15 (All modules that forgot to manage the security token field into forms will be broken. The security token field is expected since Dolibarr v9 but a lot of external modules did not implement it). * Update hook 'printOriginObjectLine', removed check on product type and special code. Need now reshook. * Old deprecated module "SimplePOS" has been completely removed. Use module "TakePOS" is you need a Point Of Sale. -* The method static ActionComm::getActions($db, ...) is no more static. Use $actioncomm->getActions(...) instead (without $db param). +* The method static ActionComm::getActions($db, ...) is no more static. Use $actioncomm->getActions(...) instead (without $db param). * The 'action=delete&file=...' has been replaced with 'action=deletefile&file=...' to avoid confusion with deletion of object lines. * Method getDictvalue has been renamed into getDictionaryValue to match camel case rule. -* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in - method executeCLI() available into core/class/utils.class.php +* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in + method executeCLI() available into core/class/utils.class.php * Class file expeditionbatch.class.php renamed to expeditionlinebatch.class.php * ExpeditionLineBatch::fetchAll is not static anymore and first parameter $db is removed * ExtraFields->showOutputField parameter 4 'extrafieldsobjectkey' is now required -* CommonObject method add_object_linked now sets targettype to 'mymodule_myobject' instead of 'myobject', +* CommonObject method add_object_linked now sets targettype to 'mymodule_myobject' instead of 'myobject', you can use hook 'setLinkedObjectSourceTargetType' to set your usual targettype @@ -783,10 +1269,10 @@ For users: ---------- NEW: Module Recruitment to follow application to job positions is now stable. NEW: Feature to make Stock Inventories -NEW: Several security issues after a second private bug hunting campaign. +NEW: Several security issues after a second private bug hunting campaign. NEW: A lot of fix into english text after a small proofreading campaign (still not perfect, but really better) NEW: All main menu entries are using the picto of the module -NEW: Add a copy to clipboard button on some fields +NEW: Add a copy to clipboard button on some fields NEW: Add an example of scheduled job to send email reminder for unpaid invoices NEW: Add some color and picto for the direction of movement NEW: add the column "Channel" into the list of orders @@ -857,7 +1343,7 @@ NEW: can show the leave dates/holidays on the agenda view NEW: Support color for types of event Bank -NEW: Bank Entries : display user linked to a salary or a taxes +NEW: Bank Entries : display user linked to a salary or a taxes NEW: Add bulk actions for Bank Transfer ECM/GED @@ -880,7 +1366,7 @@ NEW: option to automatically create a login/user when a new subscription of a me NEW: option to select membership type on the online payment page for membership subscription or renewal Products -NEW: Add price min and price min including tax into product export +NEW: Add price min and price min including tax into product export NEW: Add a ref in product customer price NEW: customer ref for product customer prices NEW: Set status of all variants when changing status of parent @@ -933,8 +1419,8 @@ NEW: add option in Workflow module to set a shipment as closed for Admins -NEW: Add a security center page with all information and advices related to the security of your instance -NEW: Add a performance center page with all information and advices related to the performance of your instance +NEW: Add a security center page with all information and advices related to the security of your instance +NEW: Add a performance center page with all information and advices related to the performance of your instance Modules NEW: Module Recruitment is now stable @@ -980,7 +1466,7 @@ NEW: API get the list of product ids only NEW: add link to OpenAPI specifications XML file in REST API module setup: swagger.json file can be included into external tools like redoc NEW: add native compression in REST APIs NEW: Product Variants API, add variant stock to response by parameter -NEW: Product API route added to get product stock and product with or without variants #13739 #17390 +NEW: Product API route added to get product stock and product with or without variants #13739 #17390 Hooks NEW: hook printFieldListTitle for cabyprodserv.php @@ -1005,8 +1491,8 @@ Following changes may create regressions for some external modules, but were nec * Removed deprecated substitution key __REFCLIENT__ (replaced with __REF_CLIENT__) * Removed constant MAIN_COUNTRIES_IN_EEC. You can now set if country is in Europe or not from the dictionary of countries. * v14 seems to work correctly on PHP v8 but it generates a lot of verbose warnings. Currently, v14 i snot yet officialy supported with PHP 8. -* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in - method executeCLI() available into core/class/utils.class.php +* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in + method executeCLI() available into core/class/utils.class.php ***** ChangeLog for 13.0.5 compared to 13.0.4 ***** @@ -1233,7 +1719,7 @@ NEW: Module "Credit transfer SEPA" to manage payment of vendors using bank credi NEW: Module Intracomm report NEW: Module Reception (for a more accurate management of your receptions) moved from experimental to stable. NEW: Module Recruitment to manage Job position and applications. -NEW: Several security issues after a private bug bounty campaign. +NEW: Several security issues after a private bug bounty campaign. NEW: Accountancy - add chart of sub accounts NEW: Accountancy - add options to disable binding on sales, purchases & expense reports independently of the modules NEW: Accountancy balance - add a menu entry to show subtotal by group @@ -1369,7 +1855,7 @@ NEW: show user on external calender events (when found) NEW: subject title with company name instead of application title in ticket message NEW: Support for Samba4 AD NEW: TakePOS appearance tab with more visual parameters -NEW: TakePOS add alert before changing thirdparty +NEW: TakePOS add alert before changing thirdparty NEW: TakePOS add third order printer NEW: TakePOS can change thirdparty with barcode scan NEW: TakePOS can create a thirdparty customer from TakePOS frontend @@ -1380,9 +1866,9 @@ NEW: TakePOS display resiliate status for members NEW: TakePOS Gift Receipt NEW: TakePOS multicurrency compatibility NEW: TakePOS multicurrency total -NEW: TakePOS print payment method and change +NEW: TakePOS print payment method and change NEW: TakePOS restrict thirdparty to customer -NEW: TakePOS show available stock +NEW: TakePOS show available stock NEW: TakePOS Weighing Scale compatibility with TakePOS connector #14725 NEW: Thirdparty Import new fields: mother company,outstanding debt limit,bank account,incoterms NEW: Thirdparty module : box on customer/supplier tab for invoice outsantding amount late @@ -1395,8 +1881,8 @@ NEW: VAT report - Invert constant to show by default zero VAT in reports NEW: website page fields selection NEW: website - global header of a website can also have dynamic content NEW: when creating a user from a member linked to a thirdparty, you can choose to create it as external or internal user -NEW: add clone button on miscellaneous payment -NEW: add option to put the product label in bold in the PDF templates if configured #15065 +NEW: add clone button on miscellaneous payment +NEW: add option to put the product label in bold in the PDF templates if configured #15065 NEW: add option "If the feature to manage kits of module Stock is used, show details of subproducts of a kit on PDF." diff --git a/README-FR.md b/README-FR.md index a67bf204076..74be3f1754c 100644 --- a/README-FR.md +++ b/README-FR.md @@ -56,6 +56,10 @@ Vous pouvez aussi utiliser un serveur Web et une base de données prise en charg Pour mettre à jour Dolibarr depuis une vieille version vers celle ci: +- Faites une sauvegarde de votre instance [voir ce tutorial](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr) + +- Vérifiez que la nouvelle version est compatible avec la version PHP de votre serveur [voir PHP support](https://wiki.dolibarr.org/index.php/Releases). + - Ecrasez les vieux fichiers dans le vieux répertoire 'dolibarr' par les fichiers fournis dans ce nouveau package. diff --git a/README.md b/README.md index c476f14a8cc..826955aef92 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ If you don't have time to install it yourself, you can try some commercial 'read Dolibarr supports upgrading, usually without the need for any (commercial) support (depending on if you use any commercial extensions). It supports upgrading all the way from any version after 2.8 without breakage. This is unique in the ERP ecosystem and a benefit our users highly appreciate! - At first make a backup of your Dolibarr files & then [see](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr) -- Check that your installed PHP version is supported by the new version [see PHP support](./doc/phpmatrix.md). +- Check that your installed PHP version is supported by the new version [see PHP support](https://wiki.dolibarr.org/index.php/Releases). - Overwrite all old files from 'dolibarr' directory with files provided into the new version's package. - At first next access, Dolibarr will redirect you to the "install/" page to follow the upgrade process.  If an `install.lock` file exists to lock any other upgrade process, the application will ask you to remove the file manually (you should find the `install.lock` file in the directory used to store generated and uploaded documents, in most cases, it is the directory called "*documents*"). diff --git a/SECURITY.md b/SECURITY.md index cd3156bece9..b121b606180 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,9 +6,8 @@ This file contains some policies about the security reports on Dolibarr ERP CRM | Version | Supported | | ---------- | ---------------------- | -| <= 15.0.0 | :x: | -| >= 15.0.1+ | :white_check_mark: except CSRF attacks| -| >= 16.0.0 | :white_check_mark: | +| <= 16.0.2 | :x: | +| >= 16.0.3 | :white_check_mark: | | >= develop | :white_check_mark: | ## Reporting a Vulnerability diff --git a/build/README b/build/README index 626953f9376..19cf4ad1ec2 100644 --- a/build/README +++ b/build/README @@ -13,32 +13,12 @@ It is here only to build Dolibarr packages, and those generated packages will no There are several tools: +-------------------------------------------------------------------------------------------------- - To build full Dolibarr packages, launch the script > Launch command perl makepack-dolibarr.pl --------------------------------------------------------------------------------------------------- - - -Prerequisites to build tgz, debian and rpm packages: -> apt-get install tar dpkg dpatch p7zip-full rpm zip - - --------------------------------------------------------------------------------------------------- - -Prerequisites to build autoexe DoliWamp package: -> apt-get install wine q4wine -> Launch "wine cmd" to check a drive Z: pointing to / exists. -> Install InnoSetup - For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/ -> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB - For example by running wampserver3.2.0_x64.exe (https://www.wampserver.com). - See file build/exe/doliwamp.iss to know the doliwamp version currently setup. -> Add path to ISCC into PATH windows var: - Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH -> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded), - open file build/exe/doliwamp.iss and click on button "Compile". - The .exe file will be build into directory build. +See makepack-howto.txt for prerequisites. -------------------------------------------------------------------------------------------------- diff --git a/build/debian/control b/build/debian/control index 059325eecb9..b2890253b32 100755 --- a/build/debian/control +++ b/build/debian/control @@ -19,7 +19,6 @@ Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php-pear, php-mail-mime, # php-tcpdf, # libfpdf-tpl-php, php-fpdf, -# libphp-adodb, # libnusoap-php, # libphp-pclzip, # Required javascript libraries diff --git a/build/debian/copyright b/build/debian/copyright index 403763544a5..b99b8a65b5d 100644 --- a/build/debian/copyright +++ b/build/debian/copyright @@ -61,31 +61,6 @@ License: GPL-3+ ------------------------------------------------------------ -Files: htdocs/includes/adodbtime/* -Copyright: 2003-2005, John Lim - unknown, jackbbs -License: BSD-3-Clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - . - Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - . - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - . - Neither the name of the John Lim nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. -Comment: - Those files are not shipped in the binary package since we use - the library as packaged in "libphp-adodb". - - ------------------------------------------------------------- - Files: htdocs/includes/ckeditor/* Copyright: 2003-2012 CKSource - Frederico Knabben License: GPL-2+ diff --git a/build/debian/dolibarr.postinst b/build/debian/dolibarr.postinst index 26a08a55826..6ba9123ede4 100644 --- a/build/debian/dolibarr.postinst +++ b/build/debian/dolibarr.postinst @@ -146,7 +146,6 @@ case "$1" in #else # File already exist. We add params not found. #echo Add new params to overwrite path to use shared libraries/fonts - #grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "" >> $config ##grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "" >> $config #grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "" >> $config #grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "" >> $config diff --git a/build/debian/install.forced.php.install b/build/debian/install.forced.php.install index 1d10699f1d4..801b1b372af 100644 --- a/build/debian/install.forced.php.install +++ b/build/debian/install.forced.php.install @@ -31,7 +31,6 @@ $force_install_distrib='debian'; // - not removed from package (see rm in rules file), // - declared into dependencies (see Depends in control file) //$force_dolibarr_lib_TCPDF_PATH=''; -//$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; //$force_dolibarr_lib_GEOIP_PATH=''; //$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; //$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; diff --git a/build/debian/rules b/build/debian/rules index dab5d84fd11..b63fcffde93 100755 --- a/build/debian/rules +++ b/build/debian/rules @@ -89,7 +89,6 @@ override_dh_install: rm -fr build/zip # clean from all PHP embedded libraries (we use package dependencies instead) -# rm -fr htdocs/includes/adodbtime # rm -fr htdocs/includes/geoip # rm -fr htdocs/includes/nusoap # rm -fr htdocs/includes/odtphp/zip/pclzip diff --git a/build/debian/source/include-binaries b/build/debian/source/include-binaries deleted file mode 100644 index 021641d5c04..00000000000 --- a/build/debian/source/include-binaries +++ /dev/null @@ -1,2 +0,0 @@ -htdocs/install/doctemplates/websites/website_template-corporate.zip -htdocs/install/doctemplates/websites/website_template-stellar.zip \ No newline at end of file diff --git a/build/debian/source/options b/build/debian/source/options new file mode 100644 index 00000000000..8d8fd181896 --- /dev/null +++ b/build/debian/source/options @@ -0,0 +1,3 @@ +# Force use of gzip compression by dpkg-buildpackage +compression = "gzip" +#compression-level = 9 diff --git a/build/docker/docker-run.sh b/build/docker/docker-run.sh index e57d9adfad0..4e69ea4a3a2 100644 --- a/build/docker/docker-run.sh +++ b/build/docker/docker-run.sh @@ -1,4 +1,6 @@ #!/bin/bash +# Script used by the Dockerfile. +# See README.md to know how to create a Dolibarr env with docker usermod -u ${HOST_USER_ID} www-data groupmod -g ${HOST_USER_ID} www-data diff --git a/build/doxygen/dolibarr-doxygen-build.pl b/build/doxygen/dolibarr-doxygen-build.pl index 75a5cceddbe..5a4849a3a5b 100755 --- a/build/doxygen/dolibarr-doxygen-build.pl +++ b/build/doxygen/dolibarr-doxygen-build.pl @@ -17,9 +17,9 @@ use Cwd; my $dir = getcwd; print "Current dir is: $dir\n"; -print "Running dir for doxygen must be: $DIR\n"; +#print "Running dir for doxygen must be: $DIR\n"; -if (! -s $CONFFILE) +if (! -s "build/doxygen/$CONFFILE") { print "Error: current directory for building Dolibarr doxygen documentation is not correct.\n"; print "\n"; @@ -30,7 +30,7 @@ if (! -s $CONFFILE) exit 1; } -$SOURCE="../.."; +$SOURCE="."; # Get version $MAJOR, $MINOR and $BUILD $result = open( IN, "< " . $SOURCE . "/htdocs/filefunc.inc.php" ); @@ -47,8 +47,8 @@ $version=$MAJOR.".".$MINOR.".".$BUILD; print "Running doxygen for version ".$version.", please wait...\n"; -print "cat $CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n"; -$result=`cat $CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`; +print "cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n"; +$result=`cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`; print $result; diff --git a/build/doxygen/dolibarr-doxygen.doxyfile b/build/doxygen/dolibarr-doxygen.doxyfile index 31400661ecc..6f668ebad7e 100644 --- a/build/doxygen/dolibarr-doxygen.doxyfile +++ b/build/doxygen/dolibarr-doxygen.doxyfile @@ -1,14 +1,17 @@ -# Doxyfile 1.7.3 +# Doxyfile 1.8.16 # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project +# doxygen (www.doxygen.org) for a project. # -# All text after a hash (#) is considered a comment and will be ignored +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. # The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options @@ -38,7 +41,7 @@ PROJECT_NUMBER = x.y.z # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = ../../build +OUTPUT_DIRECTORY = build # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output @@ -114,7 +117,7 @@ FULL_PATH_NAMES = YES # If left blank the directory from which doxygen is run is used as the # path to strip. -STRIP_FROM_PATH = "../.." +STRIP_FROM_PATH = "/home/dolibarr/doxygen.dolibarr.org/" # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells @@ -287,7 +290,7 @@ TYPEDEF_HIDES_STRUCT = NO # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols -SYMBOL_CACHE_SIZE = 0 +#SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options @@ -448,7 +451,7 @@ GENERATE_TODOLIST = NO # disable (NO) the test list. This list is created by putting \test # commands in the documentation. -GENERATE_TESTLIST = YES +GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug @@ -487,7 +490,7 @@ SHOW_USED_FILES = YES # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. -SHOW_DIRECTORIES = YES +#SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the @@ -571,7 +574,7 @@ WARN_FORMAT = "$file:$line: $text" # and error messages should be written. If left blank the output is written # to stderr. -WARN_LOGFILE = doxygen_warnings.log +WARN_LOGFILE = build/html/doxygen_warnings.log #--------------------------------------------------------------------------- # configuration options related to the input files @@ -582,7 +585,7 @@ WARN_LOGFILE = doxygen_warnings.log # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = ../../htdocs ../../scripts +INPUT = htdocs scripts # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -611,7 +614,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = ../../build ../../dev ../../doc ../../document ../../documents ../../htdocs/conf/conf.php ../../htdocs/custom ../../htdocs/document ../../htdocs/documents ../../htdocs/includes +EXCLUDE = build dev doc document documents htdocs/conf/conf.php htdocs/custom htdocs/document htdocs/documents htdocs/includes htdocs/install/doctemplates # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -625,7 +628,7 @@ EXCLUDE_SYMLINKS = YES # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* -EXCLUDE_PATTERNS = */CVS/* *google* *pibarcode* +EXCLUDE_PATTERNS = */CVS/* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -639,27 +642,27 @@ EXCLUDE_SYMBOLS = # directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = ../../htdocs/modulebuilder/template +#EXAMPLE_PATH = htdocs/modulebuilder/template # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. -EXAMPLE_PATTERNS = *.php +#EXAMPLE_PATTERNS = *.php # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. -EXAMPLE_RECURSIVE = NO +#EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = ../../doc/images +IMAGE_PATH = doc/images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -762,7 +765,7 @@ ALPHABETICAL_INDEX = YES # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) -COLS_IN_ALPHA_INDEX = 5 +#COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. @@ -775,14 +778,16 @@ IGNORE_PREFIX = # configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. GENERATE_HTML = YES -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html @@ -797,14 +802,14 @@ HTML_FILE_EXTENSION = .html # standard header. # Does not work with 1.7.3 -#HTML_HEADER = doxygen_header.html +#HTML_HEADER = build/doxygen/doxygen_header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. # Does not work with 1.7.3 -HTML_FOOTER = doxygen_footer.html +HTML_FOOTER = build/doxygen/doxygen_footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to @@ -850,7 +855,18 @@ HTML_TIMESTAMP = YES # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. -HTML_ALIGN_MEMBERS = YES +#HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the @@ -858,7 +874,7 @@ HTML_ALIGN_MEMBERS = YES # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). -HTML_DYNAMIC_SECTIONS = YES +HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 @@ -1003,7 +1019,7 @@ QHG_LOCATION = # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. -GENERATE_ECLIPSEHELP = YES +GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have @@ -1035,7 +1051,7 @@ GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. -USE_INLINE_TREES = NO +#USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree @@ -1072,7 +1088,7 @@ FORMULA_TRANSPARENT = YES # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. -SEARCHENGINE = NO +SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client @@ -1082,7 +1098,7 @@ SEARCHENGINE = NO # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. -SERVER_BASED_SEARCH = NO +SERVER_BASED_SEARCH = YES #--------------------------------------------------------------------------- # configuration options related to the LaTeX output @@ -1260,13 +1276,13 @@ XML_OUTPUT = xml # which can be used by a validating XML parser to check the # syntax of the XML files. -XML_SCHEMA = +#XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. -XML_DTD = +#XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting @@ -1431,7 +1447,7 @@ EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). -PERL_PATH = /usr/bin/perl +#PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool @@ -1453,7 +1469,7 @@ CLASS_DIAGRAMS = NO # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +#MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented @@ -1485,7 +1501,7 @@ DOT_NUM_THREADS = 0 # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. -DOT_FONTNAME = FreeSans.ttf +#DOT_FONTNAME = FreeSans.ttf # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. @@ -1634,3 +1650,7 @@ GENERATE_LEGEND = YES # the various graphs. DOT_CLEANUP = YES + + +FULL_SIDEBAR = NO +HTML_EXTRA_STYLESHEET = build/doxygen/doxygen-awesome.css diff --git a/build/doxygen/doxygen-awesome.css b/build/doxygen/doxygen-awesome.css new file mode 100644 index 00000000000..0b1c8c20892 --- /dev/null +++ b/build/doxygen/doxygen-awesome.css @@ -0,0 +1,2413 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: #ffffff; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #6f7e8e; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --toc-font-size: 13.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1050px; + --table-line-height: 24px; + --toc-sticky-top: var(--spacing-medium); + --toc-width: 200px; + --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #f8d1cc; + --warning-color-dark: #b61825; + --warning-color-darker: #75070f; + --note-color: #faf3d8; + --note-color-dark: #f3a600; + --note-color-darker: #5f4204; + --todo-color: #e4f3ff; + --todo-color-dark: #1879C4; + --todo-color-darker: #274a5c; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #e4dafd; + --bug-color-dark: #5b2bdd; + --bug-color-darker: #2a0d72; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsable table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --toc-font-size: 15px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, +.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, +.SelectItem, #MSearchField, .navpath li.navelem a, +.navpath li.navelem a:hover, p.reference, p.definition { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: .9em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl, p.reference, p.definition { + font-size: var(--page-font-size); +} + +p.reference, p.definition { + color: var(--page-secondary-foreground-color); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); + display: block; +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { + background: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +/* until Doxygen 1.9.4 */ +.left img#MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +/* Doxygen 1.9.5 */ +.left span#MSearchSelect { + left: 0; + user-select: none; + margin-left: 8px; + padding: 0; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchResults .SRPage { + background-color: transparent; +} + +#MSearchResults .SRPage .SREntry { + font-size: 10pt; + padding: var(--spacing-small) var(--spacing-medium); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + width: auto !important; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + background: var(--separator-color); + width: 1px; +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +@media screen and (min-width: 1000px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock { + min-width: 200px; + flex-grow: 1; + } +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 225%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents > table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents > table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe { + filter: hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 900px 0 var(--page-background-color), + -900px 0 var(--page-background-color), + 900px 0.75px var(--separator-color), + -900px 0.75px var(--separator-color), + 1400px 0 var(--page-background-color), + -1400px 0 var(--page-background-color), + 1400px 0.75px var(--separator-color), + -1400px 0.75px var(--separator-color), + 1900px 0 var(--page-background-color), + -1900px 0 var(--page-background-color), + 1900px 0.75px var(--separator-color), + -1900px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); + line-height: var(--table-line-height); +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--primary-light-color); +} + +.alphachar a { + color: var(--page-foreground-color); +} + +/* + Table of Contents + */ + +div.contents .toc { + max-height: var(--toc-max-height); + min-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--separator-color); + border-radius: 0; + background-color: transparent; + box-shadow: none; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 var(--spacing-large); + margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc li::before { + display: none; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--page-foreground-color) !important; + text-decoration: none; +} + +div.toc li a:hover, div.toc li a.active { + color: var(--primary-color) !important; +} + +div.toc li a.aboveActive { + color: var(--page-secondary-foreground-color) !important; +} + + +@media screen and (max-width: 999px) { + div.contents .toc { + max-height: 45vh; + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + position: relative; + top: 0; + position: relative; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + background-color: var(--toc-background); + box-shadow: var(--box-shadow); + } + + div.contents .toc.interactive { + max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large)); + overflow: hidden; + } + + div.contents .toc > h3 { + -webkit-tap-highlight-color: transparent; + cursor: pointer; + position: sticky; + top: 0; + background-color: var(--toc-background); + margin: 0; + padding: var(--spacing-large) 0; + display: block; + } + + div.contents .toc.interactive > h3::before { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + display: inline-block; + margin-right: var(--spacing-small); + margin-bottom: calc(var(--navigation-font-size) / 4); + transform: rotate(-90deg); + transition: transform 0.25s ease-out; + } + + div.contents .toc.interactive.open > h3::before { + transform: rotate(0deg); + } + + div.contents .toc.interactive.open { + max-height: 45vh; + overflow: auto; + transition: max-height 0.2s ease-in-out; + } + + div.contents .toc a, div.contents .toc a.active { + color: var(--primary-color) !important; + } + + div.contents .toc a:hover { + text-decoration: underline; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); +} + +div.line { + border-radius: var(--border-radius-small); +} + +div.line.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt { + color: var(--todo-color-dark); +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); + text-shadow: none; +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; + text-shadow: none; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname), +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: inline-block; + max-width: 100%; +} + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.fieldtable, +table.markdownTable tbody, +table.doxtable tbody { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.doxtable caption { + display: block; +} + +table.fieldtable { + border-collapse: collapse; + width: 100%; +} + +th.markdownTableHeadLeft, +th.markdownTableHeadRight, +th.markdownTableHeadCenter, +th.markdownTableHeadNone, +table.doxtable th { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, +th.markdownTableHeadRight:first-child, +th.markdownTableHeadCenter:first-child, +th.markdownTableHeadNone:first-child, +table.doxtable tr th:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, +th.markdownTableHeadRight:last-child, +th.markdownTableHeadCenter:last-child, +th.markdownTableHeadNone:last-child, +table.doxtable tr th:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, +table.markdownTable th, +table.fieldtable td, +table.fieldtable th, +table.doxtable td, +table.doxtable th { + border: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, +table.markdownTable th:last-child, +table.fieldtable td:last-child, +table.fieldtable th:last-child, +table.doxtable td:last-child, +table.doxtable th:last-child { + border-right: none; +} + +table.markdownTable td:first-child, +table.markdownTable th:first-child, +table.fieldtable td:first-child, +table.fieldtable th:first-child, +table.doxtable td:first-child, +table.doxtable th:first-child { + border-left: none; +} + +table.markdownTable tr:first-child td, +table.markdownTable tr:first-child th, +table.fieldtable tr:first-child td, +table.fieldtable tr:first-child th, +table.doxtable tr:first-child td, +table.doxtable tr:first-child th { + border-top: none; +} + +table.markdownTable tr:last-child td, +table.markdownTable tr:last-child th, +table.fieldtable tr:last-child td, +table.fieldtable tr:last-child th, +table.doxtable tr:last-child td, +table.doxtable tr:last-child th { + border-bottom: none; +} + +table.markdownTable tr, table.doxtable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.doxtable tr:last-child { + border-bottom: none; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); +} + +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +table.fieldtable tr:last-child td:first-child { + border-bottom-left-radius: var(--border-radius-small); +} + +table.fieldtable tr:last-child td:last-child { + border-bottom-right-radius: var(--border-radius-small); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +table.memberdecls { + display: block; + -webkit-tap-highlight-color: transparent; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); + white-space: normal; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: var(--spacing-small); +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-left: 0; + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memTemplItemLeft { + padding-right: var(--spacing-medium); +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + color: var(--page-secondary-foreground-color); +} + +table.memberdecls img[src="closed.png"], +table.memberdecls img[src="open.png"], +div.dynheader img[src="open.png"], +div.dynheader img[src="closed.png"] { + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + margin-top: 8px; + display: block; + float: left; + margin-left: -10px; + transition: transform 0.25s ease-out; +} + +table.memberdecls img { + margin-right: 10px; +} + +table.memberdecls img[src="closed.png"], +div.dynheader img[src="closed.png"] { + transform: rotate(-90deg); + +} + +.compoundTemplParams { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--code-font-size); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + white-space: normal; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-bottom: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry, table.directory td.desc { + padding: calc(var(--spacing-small) / 2) var(--spacing-small); + line-height: var(--table-line-height); +} + +table.directory tr.even td:last-child { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; +} + +table.directory tr.even td:first-child { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); +} + +table.directory tr.even:last-child td:last-child { + border-radius: 0 var(--border-radius-small) 0 0; +} + +table.directory tr.even:last-child td:first-child { + border-radius: var(--border-radius-small) 0 0 0; +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +table.directory tr.odd { + background-color: transparent; +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + border-radius: var(--border-radius-small); + font-size: var(--page-font-size); + padding: calc(var(--page-font-size) / 5); + line-height: var(--page-font-size); + transform: scale(0.8); + height: auto; + width: var(--page-font-size); + user-select: none; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; + height: var(--table-line-height); +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +.classindex dl.even { + background-color: transparent; +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar, +div.contents .toc::-webkit-scrollbar { + background: transparent; + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb, +div.contents .toc::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb, +div.contents .toc:hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track, +div.contents .toc::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform .1s ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity .1s ease-in-out, color .1s ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} + + +#MSearchBox .left { + background: none !important; +} +#MSearchBox .right { + background: none !important; +} diff --git a/build/exe/doliwamp/.gitignore b/build/exe/doliwamp/.gitignore index ce74d54f78e..f9a2ea83b34 100644 --- a/build/exe/doliwamp/.gitignore +++ b/build/exe/doliwamp/.gitignore @@ -1 +1 @@ -/doliwamp.tmp.iss +/doliwamp.tmp.iss* diff --git a/build/exe/doliwamp/README.md b/build/exe/doliwamp/README.md index be8cf1f3ac5..8f9878bfa29 100644 --- a/build/exe/doliwamp/README.md +++ b/build/exe/doliwamp/README.md @@ -9,3 +9,5 @@ The build of .exe files need to have some windows executable files already insta If you have technical knowledge in web administration and plan to share your server instance (Apache, Mysql or PHP) with other projects than Dolibarr or want to use Dolibarr other components (PostgreSQL), you should not use this assistant and make a manual installation of Dolibarr on your existing server by downloading the standard package (.tgz or .zip file). + +!!! See file ../makepack-howto.txt diff --git a/build/exe/doliwamp/config.inc.php.install b/build/exe/doliwamp/config.inc.php.install index 6ad04752766..544cb116c7e 100644 --- a/build/exe/doliwamp/config.inc.php.install +++ b/build/exe/doliwamp/config.inc.php.install @@ -1,5 +1,4 @@ = 4.1.2, in libraries/tbl_properties.inc.php $cfg['AttributeTypes'] = array( diff --git a/build/exe/doliwamp/doliwamp.iss b/build/exe/doliwamp/doliwamp.iss index c316e0f91d6..beeec222c2a 100644 --- a/build/exe/doliwamp/doliwamp.iss +++ b/build/exe/doliwamp/doliwamp.iss @@ -24,7 +24,6 @@ OutputBaseFilename=__FILENAMEEXEDOLIWAMP__ ;OutputManifestFile=build\doliwampbuild.log ; Define full path from which all relative path are defined ; You must modify this to put here your dolibarr root directory -;SourceDir=Z:\home\ldestailleur\git\dolibarrxxx SourceDir=..\..\.. AppId=doliwamp AppPublisher=DoliCloud @@ -32,7 +31,7 @@ AppPublisherURL=https://www.dolicloud.com AppSupportURL=https://www.dolibarr.org AppUpdatesURL=https://www.dolibarr.org AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql software. -AppCopyright=Copyright (C) 2008-2022 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre) +AppCopyright=Copyright (C) 2008-2022 Laurent Destailleur (DoliCloud), Fabian Rodriguez (Le Goût du Libre) DefaultDirName=c:\dolibarr DefaultGroupName=Dolibarr ;LicenseFile=COPYING @@ -81,7 +80,7 @@ Name: "desktopicon"; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm: Name: "{app}\logs" Name: "{app}\tmp" Name: "{app}\dolibarr_documents" -Name: "{app}\bin\apache\apache2.4.41\logs" +Name: "{app}\bin\apache\apache2.4.51\logs" [Files] ; Stop/start @@ -101,16 +100,10 @@ Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversi ; Apache, Php, Mysql ; Put here path of Wampserver applications -; Value OK: apache 2.2.6, php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45 -; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45 -; Value OK: apache 2.4.9, php 5.5.12, mysql 5.0.45 instead of 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe) -; Value OK: apache 2.4.41, php 7.3.12, mariadb10.4.10 (wampserver3.2.0_x64.exe) -;Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log" -Source: "C:\wamp64\bin\apache\apache2.4.41\*.*"; DestDir: "{app}\bin\apache\apache2.4.41"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log" -;Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log" -Source: "C:\wamp64\bin\php\php7.3.12\*.*"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log" -;Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe" -Source: "C:\wamp64\bin\mariadb\mariadb10.4.10\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe" +; Value OK: apache 2.4.51, php 7.3.33, mariadb10.6.5 (wampserver3.2.6_x64.exe) +Source: "C:\wamp64\bin\apache\apache2.4.51\*.*"; DestDir: "{app}\bin\apache\apache2.4.51"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log" +Source: "C:\wamp64\bin\php\php7.3.33\*.*"; DestDir: "{app}\bin\php\php7.3.33"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log" +Source: "C:\wamp64\bin\mariadb\mariadb10.6.5\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe" ; Mysql data files (does not overwrite if exists) ; We must copy them because the tool mysql_install_db.exe to generate them at first install does not return to prompt so make install hang @@ -125,12 +118,10 @@ Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ". ; Config files Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; -;Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion; -Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.41\conf"; Flags: ignoreversion; +Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.51\conf"; Flags: ignoreversion; Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion; -Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion; -;Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion; -Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion; +Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion; +Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.33"; Flags: ignoreversion; Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion; Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion; Source: "build\exe\doliwamp\openssl.conf"; DestDir: "{app}"; Flags: ignoreversion; @@ -236,12 +227,9 @@ procedure InitializeWizard(); begin //version des applis, a modifier pour chaque version de WampServer 2 - //apacheVersion := '2.4.9'; - //phpVersion := '5.5.12' ; - apacheVersion := '2.4.41'; - phpVersion := '7.3.12' ; - //mysqlVersion := '5.0.45'; - mysqlVersion := '10.4.10'; + apacheVersion := '2.4.51'; + phpVersion := '7.3.33' ; + mysqlVersion := '10.6.5'; smtpServer := 'localhost'; apachePort := '80'; @@ -375,9 +363,9 @@ begin // Migration of database -// datadir := pathWithSlashes+'/bin/mariadb/marradb10.4.10/data'; -// exedirold := pathWithSlashes+'/bin/mariadb/marradb10.4.10/'; -// exedirnew := pathWithSlashes+'/bin/mariadb/marradb10.4.10/'; +// datadir := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/data'; +// exedirold := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/'; +// exedirnew := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/'; // If we have a new database version, we should only copy old my.ini file into new directory // and change only all basedir= strings to use new version. Like this, data dir is still correct. @@ -594,6 +582,17 @@ begin end; end; + if browser = 'iexplore.exe' then + begin + if FileExists (pfPath+'/Microsoft/Edge/Application/msedge.exe') then + begin + if MsgBox(CustomMessage('MicrosoftEdgeDetected'),mbConfirmation,MB_YESNO) = IDYES then + begin + browser := pfPath+'/Microsoft/Edge/Application/msedge.exe'; + end; + end; + end; + if browser = 'iexplore.exe' then begin if FileExists (pfPath+'/Internet Explorer/iexplore.exe') then @@ -1027,7 +1026,7 @@ Filename: "{app}\rundoliwamp.bat"; Description: {cm:LaunchNow}; Flags: shellexec [UninstallDelete] Type: files; Name: "{app}\*.*" -Type: files; Name: "{app}\bin\mariadb\mariadb10.4.10\*.*" +Type: files; Name: "{app}\bin\mariadb\mariadb10.6.5\*.*" Type: filesandordirs; Name: "{app}\alias" Type: filesandordirs; Name: "{app}\apps" Type: filesandordirs; Name: "{app}\bin\apache" diff --git a/build/generate_filelist_xml.php b/build/generate_filelist_xml.php index 7065e20f92b..b122f9b0305 100755 --- a/build/generate_filelist_xml.php +++ b/build/generate_filelist_xml.php @@ -55,14 +55,24 @@ if (empty($argv[1])) { $i=0; +$result=array(); while ($i < $argc) { - if (! empty($argv[$i])) { - parse_str($argv[$i]); // set all params $release, $includecustom, $includeconstant, $buildzip ... + if (!empty($argv[$i])) { + parse_str($argv[$i], $result); // set all params $release, $includecustom, $includeconstant, $buildzip ... } - if (preg_match('/includeconstant=/', $argv[$i])) { - $tmp=explode(':', $includeconstant, 3); // $includeconstant has been set with previous parse_str() + if (!empty($result["release"])) { + $release = $result["release"]; + } + if (!empty($result["includecustom"])) { + $includecustom = $result["includecustom"]; + } + if (!empty($result["includeconstant"])) { + $includeconstants[$i] = $result["includeconstant"]; + } + if (preg_match('/includeconstant=/', strval($argv[$i]))) { + $tmp=explode(':', $result['includeconstant'], 3); // $includeconstant has been set with previous parse_str() if (count($tmp) != 3) { - print "Error: Bad parameter includeconstant=".$includeconstant."\n"; + print "Error: Bad parameter includeconstant=".$result['includeconstant'] ."\n"; exit -1; } $includeconstants[$tmp[0]][$tmp[1]] = $tmp[2]; @@ -71,7 +81,7 @@ while ($i < $argc) { } if (empty($release)) { - print "Error: Missing release paramater\n"; + print "Error: Missing release parameter\n"; print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n"; exit -1; } diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index b648bd7aff7..5d958787243 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -65,7 +65,7 @@ $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/; $SOURCE="$DIR/.."; $DESTI="$SOURCE/build"; -if ($SOURCE !~ /^\//) +if ($SOURCE !~ /^\// && $SOURCE !~ /^[a-z]:/i) { print "Error: Launch the script $PROG.$Extension with its full path from /.\n"; print "$PROG.$Extension aborted.\n"; @@ -76,15 +76,23 @@ if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"}) { print "Error: Missing environment variables.\n"; print "You must define the environment variable DESTIBETARC and DESTISTABLE to point to the\ndirectories where you want to save the generated packages.\n"; + print "$PROG.$Extension aborted.\n"; + print "\n"; + print "You can set them with\n"; + print "On Linux:\n"; + print "export DESTIBETARC='/tmp'; export DESTISTABLE='/tmp';\n"; + print "On Windows:\n"; + print "set DESTIBETARC=c:/tmp\n"; + print "set DESTISTABLE=c:/tmp\n"; + print "\n"; print "Example: DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild'\n"; print "Example: DESTISTABLE='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/stable'\n"; - print "$PROG.$Extension aborted.\n"; sleep 2; exit 1; } if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"}) { - print "Error: Directory of environment variable DESTIBETARC or DESTISTABLE does not exist.\n"; + print "Error: Directory of environment variable DESTIBETARC ($ENV{'DESTIBETARC'}) or DESTISTABLE ($ENV{'DESTISTABLE'}) does not exist.\n"; print "$PROG.$Extension aborted.\n"; sleep 2; exit 1; @@ -94,7 +102,7 @@ if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"}) # -------------- if ("$^O" =~ /linux/i || (-d "/etc" && -d "/var" && "$^O" !~ /cygwin/i)) { $OS='linux'; $CR=''; } elsif (-d "/etc" && -d "/Users") { $OS='macosx'; $CR=''; } -elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i) { $OS='windows'; $CR="\r"; } +elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i || "$^O" =~ /msys/i) { $OS='windows'; $CR="\r"; } if (! $OS) { print "Error: Can't detect your OS.\n"; print "Can't continue.\n"; @@ -390,7 +398,7 @@ if ($nboftargetok) { $olddir=getcwd(); chdir("$SOURCE"); - print "Clean $SOURCE/htdocs\n"; + print "Clean $SOURCE/htdocs/includes/autoload.php\n"; $ret=`rm -f $SOURCE/htdocs/includes/autoload.php`; $ret=`git ls-files . --exclude-standard --others`; @@ -499,8 +507,9 @@ if ($nboftargetok) { $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/cache.manifest`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.nova*`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`; - $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.pgsql`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`; @@ -612,7 +621,6 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/scripts`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/src`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/test`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`; @@ -623,7 +631,7 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`; - $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/autoload.php`; @@ -670,7 +678,7 @@ if ($nboftargetok) { mkdir($DESTI.'/standard'); if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; } } - + print "Remove target $FILENAMETGZ.tgz...\n"; unlink("$NEWDESTI/$FILENAMETGZ.tgz"); @@ -1056,7 +1064,8 @@ if ($nboftargetok) { $ret=`mv $BUILDROOT/*_all.deb "$NEWDESTI/"`; $ret=`mv $BUILDROOT/*.dsc "$NEWDESTI/"`; $ret=`mv $BUILDROOT/*.orig.tar.gz "$NEWDESTI/"`; - $ret=`mv $BUILDROOT/*.debian.tar.xz "$NEWDESTI/"`; + #$ret=`mv $BUILDROOT/*.debian.tar.xz "$NEWDESTI/"`; # xz file is generated when build/debian/sources/option + $ret=`mv $BUILDROOT/*.debian.tar.gz "$NEWDESTI/"`; $ret=`mv $BUILDROOT/*.changes "$NEWDESTI/"`; next; } @@ -1073,28 +1082,52 @@ if ($nboftargetok) { print "Remove target $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe...\n"; unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"; - print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n"; - + if ($OS eq 'windows') { + print "Check that ISCC.exe is in your PATH.\n"; + } else { + print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n"; + } + $SOURCEBACK=$SOURCE; $SOURCEBACK =~ s/\//\\/g; - print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n"; - $ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; + print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n"; + + #$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; + open(IN, '<' . $SOURCE."/build/exe/doliwamp/doliwamp.iss") or die $!; + open(OUT, '>' . "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss") or die $!; + while() + { + $_ =~ s/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g; + print OUT $_; + } + close(IN); + close(OUT); - print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"\n"; - $cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; + print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" on OS $OS\n"; + + if ($OS eq 'windows') { + $cmd= "ISCC.exe \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; + } else { + #$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; + } print "$cmd\n"; $ret= `$cmd`; - #print "$ret\n"; + print "ret=$ret\n"; # Move to final dir print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); print "Move $SOURCE/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; - $ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`; + + use File::Copy; + + #$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`; + $ret=move("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe", "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); print "Remove tmp file $SOURCE/build/exe/doliwamp/doliwamp.tmp.iss\n"; - $ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; + #$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; + $ret=unlink("$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"); next; } @@ -1114,7 +1147,8 @@ if ($nboftargetok) { "$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'Dolibarr installer for Debian-Ubuntu (DoliDeb)', "$DESTI/package_debian-ubuntu/${FILENAMEDEB}_amd64.changes"=>'none', # none means it won't be published on SF "$DESTI/package_debian-ubuntu/${FILENAMEDEB}.dsc"=>'none', # none means it won't be published on SF - "$DESTI/package_debian-ubuntu/${FILENAMEDEB}.debian.tar.xz"=>'none', # none means it won't be published on SF + #"$DESTI/package_debian-ubuntu/${FILENAMEDEB}.debian.tar.xz"=>'none', # none means it won't be published on SF + "$DESTI/package_debian-ubuntu/${FILENAMEDEB}.debian.tar.gz"=>'none', # none means it won't be published on SF "$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'none', # none means it won't be published on SF "$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'Dolibarr installer for Windows (DoliWamp)', "$DESTI/standard/$FILENAMETGZ.tgz"=>'Dolibarr ERP-CRM', @@ -1241,7 +1275,7 @@ if ($nboftargetok) { print "\n----- Summary -----\n"; foreach my $target (sort keys %CHOOSEDTARGET) { - if ($target eq '-CHKSUM') { print "Checksum was generated"; next; } + if ($target eq '-CHKSUM') { print "Checksum was generated\n"; next; } if ($CHOOSEDTARGET{$target} < 0) { print "Package $target not built (bad requirement).\n"; } else { diff --git a/build/makepack-dolibarrmodule.pl b/build/makepack-dolibarrmodule.pl index 4a9a217b570..8fbb28dc35f 100755 --- a/build/makepack-dolibarrmodule.pl +++ b/build/makepack-dolibarrmodule.pl @@ -293,6 +293,7 @@ foreach my $PROJECT (@PROJECTLIST) { } print "Clean $BUILDROOT\n"; $ret=`rm -fr $BUILDROOT/$PROJECTLC/.cache`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/.git`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/.project`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/.settings`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/index.php`; diff --git a/build/makepack-howto.txt b/build/makepack-howto.txt index d4e37e32629..7bc42a0bf88 100644 --- a/build/makepack-howto.txt +++ b/build/makepack-howto.txt @@ -1,7 +1,46 @@ ----- Dolibarr Makepack How To ----- This documentation describe steps to build a BETA or RELEASE versions -of Dolibarr. There is a chapter for BETA version and a chapter for -RELEASE version. +of Dolibarr. There is a chapter for BETA version and a chapter for RELEASE version. + + +***** Prerequisites For Linux ***** + +Prerequisites to build tgz, debian and rpm packages: +> apt-get install perl tar dpkg dpatch p7zip-full rpm zip php-cli + +Prerequisites to build autoexe DoliWamp package from Linux (solution seems broken since Ubuntu 20.04): +> apt-get install wine q4wine +> Launch "wine cmd" to check a drive Z: pointing to / exists. +> Install InnoSetup + For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/ +> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB + For example by running wampserver3.2.6_x64.exe (https://www.wampserver.com). + See file build/exe/doliwamp.iss to know the doliwamp version currently setup. +> Add path to ISCC into PATH windows var: + Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH +> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded), + open file build/exe/doliwamp.iss and click on button "Compile". + The .exe file will be build into directory build. + + +***** Prerequisites For Windows ***** + +Prerequisites to build autoexe DoliWamp package from Windows: + +> Install Perl for Windwos (https://strawberryperl.com/) +> Install isetup-5.5.8.exe (https://www.jrsoftware.org) +> Install WampServer-3.2.*-64.exe (Apache 2.4.51, PHP 7.3.33, MariaDB 10.6.5 for example. Version must match the values found into doliwamp.iss) +> Install GIT for Windows (https://git-scm.com/ => You must choose option "Add Git bash profile", "Git commit as-is") +> Install Dolibarr verions: + git clone https://github.com/dolibarr/dolibarr + +> Add the path of PHP (C:\wamp64\bin\php\php7.3.33) and InnoSetup (C:\Program Files (x86)\Inno Setup 5) into the %PATH% of Windows. + +> Create a config file c:\dolibarr\dolibarr\htdocs\conf\conf.php with content + = 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-adodb, php-nusoap, dejavu-sans-fonts +Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-nusoap, dejavu-sans-fonts Requires: mysql-server, mysql #BuildRequires: desktop-file-utils @@ -104,7 +104,6 @@ cui hai bisogno ed essere facile da usare. %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name} %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source -%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/adodbtime %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts @@ -165,6 +164,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/barcode %_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks +%_datadir/dolibarr/htdocs/bookcal %_datadir/dolibarr/htdocs/bom %_datadir/dolibarr/htdocs/categories %_datadir/dolibarr/htdocs/collab @@ -227,6 +227,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/ticket %_datadir/dolibarr/htdocs/user %_datadir/dolibarr/htdocs/variants +%_datadir/dolibarr/htdocs/webhook %_datadir/dolibarr/htdocs/webservices %_datadir/dolibarr/htdocs/website %_datadir/dolibarr/htdocs/workstation @@ -273,7 +274,6 @@ if [ -s $config ] && grep -q "File generated by" $config then # File already exist. We add params not found. echo Add new params to overwrite path to use shared libraries/fonts - grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "" >> $config grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "" >> $config #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "" >> $config grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "" >> $config diff --git a/build/rpm/dolibarr_generic.spec b/build/rpm/dolibarr_generic.spec index aeddd5526f8..9cb8b71984d 100755 --- a/build/rpm/dolibarr_generic.spec +++ b/build/rpm/dolibarr_generic.spec @@ -46,7 +46,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} Group: Applications/Productivity -Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-adodb, php-nusoap, dejavu-sans-fonts, php-mbstring, php-xml +Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-nusoap, dejavu-sans-fonts, php-mbstring, php-xml Requires: mysql-server, mysql BuildRequires: desktop-file-utils %else @@ -54,11 +54,11 @@ BuildRequires: desktop-file-utils Group: Applications/Productivity Requires: apache-base, apache-mod_php, php-cgi, php-cli, php-bz2, php-gd, php-ldap, php-imap, php-mysqli, php-openssl, fonts-ttf-dejavu Requires: mysql, mysql-client -%else%_datadir/dolibarr/htdocs/datapolicy +%else %if 0%{?suse_version} # Voir http://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros Group: Productivity/Office/Management -Requires: apache2, apache2-mod_php5, php5 >= 5.3.0, php5-gd, php5-ldap, php5-imap, php5-mysql, php5-openssl, dejavu +Requires: apache2, apache2-mod_php, php >= 5.3.0, php-gd, php-ldap, php-imap, php-mysql, php-openssl, dejavu Requires: mysql-community-server, mysql-community-server-client BuildRequires: update-desktop-files fdupes %else @@ -67,7 +67,7 @@ Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mbstring Requires: mysql-server, mysql Requires: php-mysqli >= 4.1.0 %endif -%endif%_datadir/dolibarr/htdocs/eventorganization +%endif %endif @@ -125,7 +125,7 @@ cui hai bisogno ed essere facile da usare. %if 0%{?sles_version} %{__rm} -rf $RPM_BUILD_ROOT -%{__mkdir} $RPM_BUILD_ROOT%_datadir/dolibarr/htdocs/datapolicy +%{__mkdir} $RPM_BUILD_ROOT% %{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir} %{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}/%{name} %else @@ -169,7 +169,6 @@ cui hai bisogno ed essere facile da usare. %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} -%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/adodbtime %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts %else @@ -246,6 +245,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/barcode %_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks +%_datadir/dolibarr/htdocs/bookcal %_datadir/dolibarr/htdocs/bom %_datadir/dolibarr/htdocs/categories %_datadir/dolibarr/htdocs/collab @@ -308,6 +308,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/ticket %_datadir/dolibarr/htdocs/user %_datadir/dolibarr/htdocs/variants +%_datadir/dolibarr/htdocs/webhook %_datadir/dolibarr/htdocs/webservices %_datadir/dolibarr/htdocs/website %_datadir/dolibarr/htdocs/workstation @@ -424,7 +425,6 @@ if [ -s $config ] && grep -q "File generated by" $config then # File already exist. We add params not found. echo Add new params to overwrite path to use shared libraries/fonts - grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "" >> $config grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "" >> $config #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "" >> $config grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "" >> $config diff --git a/build/rpm/dolibarr_mandriva.spec b/build/rpm/dolibarr_mandriva.spec index a1e4dffc781..11c4fead2db 100755 --- a/build/rpm/dolibarr_mandriva.spec +++ b/build/rpm/dolibarr_mandriva.spec @@ -162,6 +162,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/barcode %_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks +%_datadir/dolibarr/htdocs/bookcal %_datadir/dolibarr/htdocs/bom %_datadir/dolibarr/htdocs/categories %_datadir/dolibarr/htdocs/collab @@ -224,6 +225,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/ticket %_datadir/dolibarr/htdocs/user %_datadir/dolibarr/htdocs/variants +%_datadir/dolibarr/htdocs/webhook %_datadir/dolibarr/htdocs/webservices %_datadir/dolibarr/htdocs/website %_datadir/dolibarr/htdocs/workstation @@ -270,7 +272,6 @@ if [ -s $config ] && grep -q "File generated by" $config then # File already exist. We add params not found. echo Add new params to overwrite path to use shared libraries/fonts - grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "" >> $config grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "" >> $config #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "" >> $config grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "" >> $config diff --git a/build/rpm/dolibarr_opensuse.spec b/build/rpm/dolibarr_opensuse.spec index aed2d76ed29..912aa28f8e8 100755 --- a/build/rpm/dolibarr_opensuse.spec +++ b/build/rpm/dolibarr_opensuse.spec @@ -25,7 +25,7 @@ BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: Productivity/Office/Management -Requires: apache2, apache2-mod_php5, php5 >= 5.3.0, php5-gd, php5-ldap, php5-imap, php5-mysql, php5-openssl, dejavu +Requires: apache2, apache2-mod_php, php >= 5.3.0, php-gd, php-ldap, php-imap, php-mysql, php-openssl, dejavu Requires: mysql-community-server, mysql-community-server-client %if 0%{?suse_version} BuildRequires: update-desktop-files fdupes @@ -67,8 +67,7 @@ Programmo web, progettato per poter fornire solo ciò di cui hai bisogno ed essere facile da usare. - -#---- prep +#---- prepo %prep %setup -q %patch0 -p0 -b .patch @@ -173,6 +172,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/barcode %_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks +%_datadir/dolibarr/htdocs/bookcal %_datadir/dolibarr/htdocs/bom %_datadir/dolibarr/htdocs/categories %_datadir/dolibarr/htdocs/collab @@ -235,6 +235,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/ticket %_datadir/dolibarr/htdocs/user %_datadir/dolibarr/htdocs/variants +%_datadir/dolibarr/htdocs/webhook %_datadir/dolibarr/htdocs/webservices %_datadir/dolibarr/htdocs/website %_datadir/dolibarr/htdocs/workstation @@ -281,7 +282,6 @@ if [ -s $config ] && grep -q "File generated by" $config then # File already exist. We add params not found. echo Add new params to overwrite path to use shared libraries/fonts - grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "" >> $config grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "" >> $config #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "" >> $config grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "" >> $config diff --git a/build/rpm/install.forced.php.fedora b/build/rpm/install.forced.php.fedora index a8bc0d390c6..636514260cf 100644 --- a/build/rpm/install.forced.php.fedora +++ b/build/rpm/install.forced.php.fedora @@ -20,7 +20,6 @@ $force_install_lockinstall='444'; $force_install_distrib='rpmfedora'; // Value to overwrite path to use shared libraries/fonts instead of embedded one -$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; //$force_dolibarr_lib_GEOIP_PATH=''; $force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; diff --git a/build/rpm/install.forced.php.mandriva b/build/rpm/install.forced.php.mandriva index a254eebbf7b..5471d146391 100644 --- a/build/rpm/install.forced.php.mandriva +++ b/build/rpm/install.forced.php.mandriva @@ -20,7 +20,6 @@ $force_install_lockinstall='444'; $force_install_distrib='rpmmandriva'; // Value to overwrite path to use shared libraries/fonts instead of embedded one -$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; //$force_dolibarr_lib_GEOIP_PATH=''; $force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; diff --git a/build/rpm/install.forced.php.opensuse b/build/rpm/install.forced.php.opensuse index 24da4417121..ea50180caf4 100644 --- a/build/rpm/install.forced.php.opensuse +++ b/build/rpm/install.forced.php.opensuse @@ -20,7 +20,6 @@ $force_install_lockinstall='444'; $force_install_distrib='rpmopensuse'; // Value to overwrite path to use shared libraries/fonts instead of embedded one -//$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; //$force_dolibarr_lib_GEOIP_PATH=''; //$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index 204988c5442..461db52f959 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -275,7 +275,17 @@ RESTLER: with $loaders = array_unique(static::$rogueLoaders, SORT_REGULAR); + +* Replace CommentParser.php line 423 + elseif (count($value) && is_numeric($value[0])) + + with + + elseif (count($value) && isset($value[0]) && is_numeric($value[0])) +* Add CommentParser.php line 406 & 407 to remove a warning on api request in php 8.1 + empty($value[0]) ? null : + empty($value[1]) ? null : +With swagger 2 provided into /explorer: ---------------------------------------- diff --git a/dev/examples/ldap/ldapsearch_sample1.txt b/dev/examples/ldap/ldapsearch_sample1.txt index a02ad632cd0..2a30f19ab22 100644 --- a/dev/examples/ldap/ldapsearch_sample1.txt +++ b/dev/examples/ldap/ldapsearch_sample1.txt @@ -1,28 +1,29 @@ # ldapsearch_sample1.txt # ldapsearch is into package ldap-utils on debian. # -# Use this sample to search into a ldap +# Use this samples to test a ldap_bind or to make a search into a ldap # # Anonymous access -# ldapsearch -h hostname -p 389 +# ldapsearch -h hostname -p 389 # # Login access (using a Bind DN) -# ldapsearch -h hostname -p 389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -# ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -# ldapsearch -d1 -H ldap://hostname:389 -x -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -# ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password +# Such access must succeed to use LDAP as login module. +# ldapsearch -h hostname -p 389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password +# ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password +# ldapsearch -d1 -H ldap://hostname:389 -x -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password +# ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password # # Login access in SSL (using a Bind DN) -# ldapsearch -H ldaps://hostnamme:636 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local +# ldapsearch -H ldaps://hostnamme:636 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local" # If it fails, you may try to use "hostname" that is real name of certificate. # You must also check that /etc/ldap/ldap.conf contains the line TLS_CACERT /etc/ssl/certs/ca-certificates.crt # What to search -# ldapsearch -h hostname -p 389 -x -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local" -# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra" -# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)" +# ldapsearch -h hostname -p 389 -x -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local" +# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra" +# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)" # # Example to test a ldap search: -# ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password +# ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password diff --git a/dev/examples/zapier/triggers/action.js b/dev/examples/zapier/triggers/action.js index 0e152473869..86e4b747185 100644 --- a/dev/examples/zapier/triggers/action.js +++ b/dev/examples/zapier/triggers/action.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -84,7 +84,7 @@ const getFallbackRealAction = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/actions', +// url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/actions', // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/examples/zapier/triggers/contact.js b/dev/examples/zapier/triggers/contact.js index 2ba3bd226f8..ef83970e0b5 100644 --- a/dev/examples/zapier/triggers/contact.js +++ b/dev/examples/zapier/triggers/contact.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -76,7 +76,7 @@ const getFallbackRealContact = (z, bundle) => { // const getModulesChoices = (z/*, bundle*/) => { // // For the test poll, you should get some real data, to aid the setup process. // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices', +// url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices', // }; // return z.request(options).then((response) => JSON.parse(response.content)); @@ -94,7 +94,7 @@ const getFallbackRealContact = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`, +// url: url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`, // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/examples/zapier/triggers/member.js b/dev/examples/zapier/triggers/member.js index 3385cdca625..68f80b30009 100644 --- a/dev/examples/zapier/triggers/member.js +++ b/dev/examples/zapier/triggers/member.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -76,7 +76,7 @@ const getFallbackRealMember = (z, bundle) => { // const getModulesChoices = (z/*, bundle*/) => { // // For the test poll, you should get some real data, to aid the setup process. // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices', +// url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices', // }; // return z.request(options).then((response) => JSON.parse(response.content)); @@ -94,7 +94,7 @@ const getFallbackRealMember = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`, +// url: url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`, // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/examples/zapier/triggers/order.js b/dev/examples/zapier/triggers/order.js index 061ce218d10..2265c4da288 100644 --- a/dev/examples/zapier/triggers/order.js +++ b/dev/examples/zapier/triggers/order.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -74,7 +74,7 @@ const getFallbackRealOrder = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/orders', +// url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/orders', // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/examples/zapier/triggers/thirdparty.js b/dev/examples/zapier/triggers/thirdparty.js index 76194acbc9a..6c477b1174f 100644 --- a/dev/examples/zapier/triggers/thirdparty.js +++ b/dev/examples/zapier/triggers/thirdparty.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -83,7 +83,7 @@ const getFallbackRealThirdparty = (z, bundle) => { // const getModulesChoices = (z/*, bundle*/) => { // // For the test poll, you should get some real data, to aid the setup process. // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices', +// url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices', // }; // return z.request(options).then((response) => JSON.parse(response.content)); @@ -102,7 +102,7 @@ const getFallbackRealThirdparty = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`, +// url: url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`, // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/examples/zapier/triggers/ticket.js b/dev/examples/zapier/triggers/ticket.js index c642099bd55..ee5a3f8efd7 100644 --- a/dev/examples/zapier/triggers/ticket.js +++ b/dev/examples/zapier/triggers/ticket.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -76,7 +76,7 @@ const getFallbackRealTicket = (z, bundle) => { // const getModulesChoices = (z/*, bundle*/) => { // // For the test poll, you should get some real data, to aid the setup process. // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices', +// url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices', // }; // return z.request(options).then((response) => JSON.parse(response.content)); @@ -97,7 +97,7 @@ const getFallbackRealTicket = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`, +// url: url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`, // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/examples/zapier/triggers/user.js b/dev/examples/zapier/triggers/user.js index 92209bb8651..a706bb9a3d6 100644 --- a/dev/examples/zapier/triggers/user.js +++ b/dev/examples/zapier/triggers/user.js @@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => { action: bundle.inputData.action }; - const url = bundle.authData.url + '/api/index.php/zapierapi/hook'; + const url = bundle.authData.url + '/api/index.php/zapier/hook'; // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. @@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => { // You can build requests and our client will helpfully inject all the variables // you need to complete. You can also register middleware to control this. const options = { - url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id, + url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id, method: 'DELETE', }; @@ -73,7 +73,7 @@ const getFallbackRealUser = (z, bundle) => { // const getModulesChoices = (z/*, bundle*/) => { // // For the test poll, you should get some real data, to aid the setup process. // const options = { -// url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices', +// url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices', // }; // return z.request(options).then((response) => JSON.parse(response.content)); @@ -93,7 +93,7 @@ const getFallbackRealUser = (z, bundle) => { // // For the test poll, you should get some real data, to aid the setup process. // const module = bundle.inputData.module; // const options = { -// url: url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`, +// url: url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`, // }; // return z.request(options).then((response) => JSON.parse(response.content)); diff --git a/dev/initdata/generate-proposal.php b/dev/initdata/generate-proposal.php index 0b1c24dc139..8af71d441a1 100755 --- a/dev/initdata/generate-proposal.php +++ b/dev/initdata/generate-proposal.php @@ -152,7 +152,7 @@ $user->rights->propal->creer=1; $user->rights->propal->propal_advance->validate=1; -if (! empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) { +if (!empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) { require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php"; } diff --git a/dev/initdata/purge-data.php b/dev/initdata/purge-data.php index 9214f34d810..d75c9fae8b2 100755 --- a/dev/initdata/purge-data.php +++ b/dev/initdata/purge-data.php @@ -218,7 +218,7 @@ if ($date == 'all') { } // Replace database handler -if (! empty($argv[4])) { +if (!empty($argv[4])) { $db->close(); unset($db); $db=getDoliDBInstance($argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9]); diff --git a/dev/initdemo/initdemopassword.sh b/dev/initdemo/initdemopassword.sh index 37264fb8e4d..12b09a02186 100755 --- a/dev/initdemo/initdemopassword.sh +++ b/dev/initdemo/initdemopassword.sh @@ -174,7 +174,7 @@ if [ -s "$mydir/initdemopostsql.sql" ]; then echo A file initdemopostsql.sql was found, we execute it. mysql -P$port $base < "$mydir/initdemopostsql.sql" else - echo No file initdemopostsql.sql found, we extra sql action done. + echo No file initdemopostsql.sql found, so no extra sql action done. fi diff --git a/dev/initdemo/mysqldump_dolibarr_15.0.0.sql b/dev/initdemo/mysqldump_dolibarr_17.0.0.sql similarity index 87% rename from dev/initdemo/mysqldump_dolibarr_15.0.0.sql rename to dev/initdemo/mysqldump_dolibarr_17.0.0.sql index 8b17c34203f..1aa89804288 100644 --- a/dev/initdemo/mysqldump_dolibarr_15.0.0.sql +++ b/dev/initdemo/mysqldump_dolibarr_17.0.0.sql @@ -1,8 +1,8 @@ --- MySQL dump 10.19 Distrib 10.3.31-MariaDB, for debian-linux-gnu (x86_64) +-- MariaDB dump 10.19 Distrib 10.6.11-MariaDB, for debian-linux-gnu (x86_64) -- --- Host: localhost Database: dolibarr_15 +-- Host: localhost Database: dolibarr_17 -- ------------------------------------------------------ --- Server version 10.3.31-MariaDB-0ubuntu0.20.04.1 +-- Server version 10.6.11-MariaDB-0ubuntu0.22.04.1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -27,26 +27,26 @@ CREATE TABLE `llx_accounting_account` ( `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `fk_pcg_version` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `pcg_type` varchar(20) COLLATE utf8_unicode_ci NOT NULL, - `account_number` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_pcg_version` varchar(32) NOT NULL, + `pcg_type` varchar(20) NOT NULL, + `account_number` varchar(20) DEFAULT NULL, `account_parent` int(11) DEFAULT 0, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `labelshort` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `labelshort` varchar(255) DEFAULT NULL, `fk_accounting_category` int(11) DEFAULT 0, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `reconcilable` tinyint(4) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_accounting_account` (`account_number`,`entity`,`fk_pcg_version`), KEY `idx_accountingaccount_fk_pcg_version` (`fk_pcg_version`), KEY `idx_accounting_account_account_number` (`account_number`), KEY `idx_accounting_account_account_parent` (`account_parent`), CONSTRAINT `fk_accounting_account_fk_pcg_version` FOREIGN KEY (`fk_pcg_version`) REFERENCES `llx_accounting_system` (`pcg_version`) -) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -69,26 +69,26 @@ DROP TABLE IF EXISTS `llx_accounting_bookkeeping`; CREATE TABLE `llx_accounting_bookkeeping` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `doc_date` date NOT NULL, - `doc_type` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `doc_ref` varchar(300) COLLATE utf8_unicode_ci NOT NULL, + `doc_type` varchar(30) NOT NULL, + `doc_ref` varchar(300) NOT NULL, `fk_doc` int(11) NOT NULL, `fk_docdet` int(11) NOT NULL, - `thirdparty_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `numero_compte` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `label_compte` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `label_operation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `thirdparty_code` varchar(32) DEFAULT NULL, + `numero_compte` varchar(20) DEFAULT NULL, + `label_compte` varchar(255) DEFAULT NULL, + `label_operation` varchar(255) DEFAULT NULL, `debit` double(24,8) DEFAULT NULL, `credit` double(24,8) DEFAULT NULL, `montant` double(24,8) DEFAULT NULL, - `sens` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, + `sens` varchar(1) DEFAULT NULL, `multicurrency_amount` double(24,8) DEFAULT NULL, - `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `lettering_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(255) DEFAULT NULL, + `lettering_code` varchar(255) DEFAULT NULL, `date_lettering` datetime DEFAULT NULL, `fk_user_author` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_journal` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `journal_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `code_journal` varchar(32) DEFAULT NULL, + `journal_label` varchar(255) DEFAULT NULL, `piece_num` int(11) NOT NULL, `date_validated` datetime DEFAULT NULL, `date_export` datetime DEFAULT NULL, @@ -96,9 +96,9 @@ CREATE TABLE `llx_accounting_bookkeeping` ( `fk_user_modif` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `subledger_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `subledger_account` varchar(32) DEFAULT NULL, + `subledger_label` varchar(255) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_lim_reglement` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -108,7 +108,7 @@ CREATE TABLE `llx_accounting_bookkeeping` ( KEY `idx_accounting_bookkeeping_numero_compte` (`numero_compte`,`entity`), KEY `idx_accounting_bookkeeping_code_journal` (`code_journal`,`entity`), KEY `idx_accounting_bookkeeping_piece_num` (`piece_num`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -132,34 +132,34 @@ CREATE TABLE `llx_accounting_bookkeeping_tmp` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, `doc_date` date NOT NULL, - `doc_type` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `doc_ref` varchar(300) COLLATE utf8_unicode_ci NOT NULL, + `doc_type` varchar(30) NOT NULL, + `doc_ref` varchar(300) NOT NULL, `fk_doc` int(11) NOT NULL, `fk_docdet` int(11) NOT NULL, - `thirdparty_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `subledger_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `numero_compte` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `label_compte` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `label_operation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `thirdparty_code` varchar(32) DEFAULT NULL, + `subledger_account` varchar(32) DEFAULT NULL, + `subledger_label` varchar(255) DEFAULT NULL, + `numero_compte` varchar(32) DEFAULT NULL, + `label_compte` varchar(255) NOT NULL, + `label_operation` varchar(255) DEFAULT NULL, `debit` double(24,8) NOT NULL, `credit` double(24,8) NOT NULL, `montant` double(24,8) NOT NULL, - `sens` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, + `sens` varchar(1) DEFAULT NULL, `multicurrency_amount` double(24,8) DEFAULT NULL, - `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `lettering_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(255) DEFAULT NULL, + `lettering_code` varchar(255) DEFAULT NULL, `date_lettering` datetime DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_journal` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `journal_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `code_journal` varchar(32) NOT NULL, + `journal_label` varchar(255) DEFAULT NULL, `piece_num` int(11) NOT NULL, `date_validated` datetime DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_lim_reglement` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -167,7 +167,7 @@ CREATE TABLE `llx_accounting_bookkeeping_tmp` ( KEY `idx_accounting_bookkeeping_fk_docdet` (`fk_docdet`), KEY `idx_accounting_bookkeeping_numero_compte` (`numero_compte`), KEY `idx_accounting_bookkeeping_code_journal` (`code_journal`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -188,7 +188,7 @@ DROP TABLE IF EXISTS `llx_accounting_fiscalyear`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_accounting_fiscalyear` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(128) NOT NULL, `date_start` date DEFAULT NULL, `date_end` date DEFAULT NULL, `statut` tinyint(4) NOT NULL DEFAULT 0, @@ -198,7 +198,7 @@ CREATE TABLE `llx_accounting_fiscalyear` ( `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -222,7 +222,7 @@ CREATE TABLE `llx_accounting_groups_account` ( `fk_accounting_account` int(11) NOT NULL, `fk_c_accounting_category` int(11) NOT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -243,14 +243,14 @@ DROP TABLE IF EXISTS `llx_accounting_journal`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_accounting_journal` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(20) DEFAULT NULL, + `label` varchar(128) NOT NULL, `nature` smallint(6) NOT NULL DEFAULT 0, `active` smallint(6) DEFAULT 0, `entity` int(11) DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_accounting_journal_code` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -272,13 +272,13 @@ DROP TABLE IF EXISTS `llx_accounting_system`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_accounting_system` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `pcg_version` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `pcg_version` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, `active` smallint(6) DEFAULT 0, `fk_country` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_accounting_system_pcg_version` (`pcg_version`) -) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -287,7 +287,7 @@ CREATE TABLE `llx_accounting_system` ( LOCK TABLES `llx_accounting_system` WRITE; /*!40000 ALTER TABLE `llx_accounting_system` DISABLE KEYS */; -INSERT INTO `llx_accounting_system` VALUES (1,'PCG99-ABREGE','The simple accountancy french plan',1,1),(2,'PCG99-BASE','The base accountancy french plan',1,1),(3,'PCMN-BASE','The base accountancy belgium plan',1,2),(4,'PCG08-PYME','The PYME accountancy spanish plan',1,4),(5,'PC-MIPYME','The PYME accountancy Chile plan',1,67),(6,'ENG-BASE','England plan',1,7),(7,'SYSCOHADA','Plan comptable Ouest-Africain',0,NULL),(39,'PCG14-DEV','The developed accountancy french plan 2014',1,1),(40,'PCG_SUISSE','Switzerland plan',1,6),(41,'PCN-LUXEMBURG','Plan comptable normalisé Luxembourgeois',1,140),(42,'DK-STD','Standardkontoplan fra SKAT',1,80),(43,'PCT','The Tunisia plan',1,10),(44,'PCG','The Moroccan chart of accounts',1,12),(47,'SYSCOHADA-BJ','Plan comptable Ouest-Africain',1,49),(48,'SYSCOHADA-BF','Plan comptable Ouest-Africain',1,60),(49,'SYSCOHADA-CM','Plan comptable Ouest-Africain',1,24),(50,'SYSCOHADA-CF','Plan comptable Ouest-Africain',1,65),(51,'SYSCOHADA-KM','Plan comptable Ouest-Africain',1,71),(52,'SYSCOHADA-CG','Plan comptable Ouest-Africain',1,72),(53,'SYSCOHADA-CI','Plan comptable Ouest-Africain',1,21),(54,'SYSCOHADA-GA','Plan comptable Ouest-Africain',1,16),(55,'SYSCOHADA-GQ','Plan comptable Ouest-Africain',1,87),(56,'SYSCOHADA-ML','Plan comptable Ouest-Africain',1,147),(57,'SYSCOHADA-NE','Plan comptable Ouest-Africain',1,168),(58,'SYSCOHADA-CD','Plan comptable Ouest-Africain',1,73),(59,'SYSCOHADA-SN','Plan comptable Ouest-Africain',1,22),(60,'SYSCOHADA-TD','Plan comptable Ouest-Africain',1,66),(61,'SYSCOHADA-TG','Plan comptable Ouest-Africain',1,15),(62,'RO-BASE','Plan de conturi romanesc',1,188),(63,'SKR03','Standardkontenrahmen SKR 03',1,5),(64,'SKR04','Standardkontenrahmen SKR 04',1,5),(65,'BAS-K1-MINI','The Swedish mini chart of accounts',1,20),(67,'PCG18-ASSOC','French foundation chart of accounts 2018',1,1),(68,'PCGAFR14-DEV','The developed farm accountancy french plan 2014',1,1),(69,'AT-BASE','Plan Austria',1,41),(70,'US-BASE','USA basic chart of accounts',1,11),(71,'CA-ENG-BASE','Canadian basic chart of accounts - English',1,14),(72,'SAT/24-2019','Catalogo y codigo agrupador fiscal del 2019',1,154); +INSERT INTO `llx_accounting_system` VALUES (1,'PCG99-ABREGE','The simple accountancy french plan',1,1),(2,'PCG99-BASE','The base accountancy french plan',1,1),(3,'PCMN-BASE','The base accountancy belgium plan',1,2),(4,'PCG08-PYME','The PYME accountancy spanish plan',1,4),(5,'PC-MIPYME','The PYME accountancy Chile plan',1,67),(6,'ENG-BASE','England plan',1,7),(7,'SYSCOHADA','Plan comptable Ouest-Africain',0,NULL),(39,'PCG14-DEV','The developed accountancy french plan 2014',1,1),(40,'PCG_SUISSE','Switzerland plan',1,6),(41,'PCN-LUXEMBURG','Plan comptable normalisé Luxembourgeois',1,140),(42,'DK-STD','Standardkontoplan fra SKAT',1,80),(43,'PCT','The Tunisia plan',1,10),(44,'PCG','The Moroccan chart of accounts',1,12),(47,'SYSCOHADA-BJ','Plan comptable Ouest-Africain',1,49),(48,'SYSCOHADA-BF','Plan comptable Ouest-Africain',1,60),(49,'SYSCOHADA-CM','Plan comptable Ouest-Africain',1,24),(50,'SYSCOHADA-CF','Plan comptable Ouest-Africain',1,65),(51,'SYSCOHADA-KM','Plan comptable Ouest-Africain',1,71),(52,'SYSCOHADA-CG','Plan comptable Ouest-Africain',1,72),(53,'SYSCOHADA-CI','Plan comptable Ouest-Africain',1,21),(54,'SYSCOHADA-GA','Plan comptable Ouest-Africain',1,16),(55,'SYSCOHADA-GQ','Plan comptable Ouest-Africain',1,87),(56,'SYSCOHADA-ML','Plan comptable Ouest-Africain',1,147),(57,'SYSCOHADA-NE','Plan comptable Ouest-Africain',1,168),(58,'SYSCOHADA-CD','Plan comptable Ouest-Africain',1,73),(59,'SYSCOHADA-SN','Plan comptable Ouest-Africain',1,22),(60,'SYSCOHADA-TD','Plan comptable Ouest-Africain',1,66),(61,'SYSCOHADA-TG','Plan comptable Ouest-Africain',1,15),(62,'RO-BASE','Plan de conturi romanesc',1,188),(63,'SKR03','Standardkontenrahmen SKR 03',1,5),(64,'SKR04','Standardkontenrahmen SKR 04',1,5),(65,'BAS-K1-MINI','The Swedish mini chart of accounts',1,20),(67,'PCG18-ASSOC','French foundation chart of accounts 2018',1,1),(68,'PCGAFR14-DEV','The developed farm accountancy french plan 2014',1,1),(69,'AT-BASE','Plan Austria',1,41),(70,'US-BASE','USA basic chart of accounts',1,11),(71,'CA-ENG-BASE','Canadian basic chart of accounts - English',1,14),(72,'SAT/24-2019','Catalogo y codigo agrupador fiscal del 2019',1,154),(73,'PCN2020-LUXEMBURG','Plan comptable normalisé 2020 Luxembourgeois',1,140); /*!40000 ALTER TABLE `llx_accounting_system` ENABLE KEYS */; UNLOCK TABLES; @@ -300,14 +300,14 @@ DROP TABLE IF EXISTS `llx_actioncomm`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_actioncomm` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datep` datetime DEFAULT NULL, `datep2` datetime DEFAULT NULL, `fk_action` int(11) DEFAULT NULL, - `code` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(50) DEFAULT NULL, + `label` varchar(255) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_author` int(11) DEFAULT NULL, @@ -322,31 +322,32 @@ CREATE TABLE `llx_actioncomm` ( `priority` smallint(6) DEFAULT NULL, `fulldayevent` smallint(6) NOT NULL DEFAULT 0, `percent` smallint(6) NOT NULL DEFAULT 0, - `location` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `location` varchar(128) DEFAULT NULL, `durationp` double DEFAULT NULL, `durationa` double DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` mediumtext DEFAULT NULL, `fk_element` int(11) DEFAULT NULL, - `elementtype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_msgid` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_subject` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_from` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_sender` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_to` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_tocc` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_tobcc` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `errors_to` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, - `recurid` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `recurrule` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `elementtype` varchar(255) DEFAULT NULL, + `email_msgid` varchar(256) DEFAULT NULL, + `email_subject` varchar(256) DEFAULT NULL, + `email_from` varchar(256) DEFAULT NULL, + `email_sender` varchar(256) DEFAULT NULL, + `email_to` varchar(256) DEFAULT NULL, + `email_tocc` varchar(256) DEFAULT NULL, + `email_tobcc` varchar(256) DEFAULT NULL, + `errors_to` varchar(256) DEFAULT NULL, + `recurid` varchar(128) DEFAULT NULL, + `recurrule` varchar(128) DEFAULT NULL, `recurdateend` datetime DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `calling_duration` int(11) DEFAULT NULL, - `visibility` varchar(12) COLLATE utf8_unicode_ci DEFAULT 'default', - `reply_to` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `visibility` varchar(12) DEFAULT 'default', + `reply_to` varchar(255) DEFAULT NULL, `num_vote` int(11) DEFAULT NULL, `event_paid` smallint(6) NOT NULL DEFAULT 0, `status` smallint(6) NOT NULL DEFAULT 0, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_actioncomm_ref` (`ref`,`entity`), KEY `idx_actioncomm_fk_soc` (`fk_soc`), @@ -358,8 +359,9 @@ CREATE TABLE `llx_actioncomm` ( KEY `idx_actioncomm_datep` (`datep`), KEY `idx_actioncomm_datep2` (`datep2`), KEY `idx_actioncomm_recurid` (`recurid`), - KEY `idx_actioncomm_ref_ext` (`ref_ext`) -) ENGINE=InnoDB AUTO_INCREMENT=608 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + KEY `idx_actioncomm_ref_ext` (`ref_ext`), + KEY `idx_actioncomm_percent` (`percent`) +) ENGINE=InnoDB AUTO_INCREMENT=608 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -368,7 +370,7 @@ CREATE TABLE `llx_actioncomm` ( LOCK TABLES `llx_actioncomm` WRITE; /*!40000 ALTER TABLE `llx_actioncomm` DISABLE KEYS */; -INSERT INTO `llx_actioncomm` VALUES (1,'1',NULL,1,'2012-07-08 14:21:44','2012-07-08 14:21:44',50,NULL,'Company AAA and Co added into Dolibarr','2012-07-08 14:21:44','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company AAA and Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(2,'2',NULL,1,'2012-07-08 14:23:48','2012-07-08 14:23:48',50,NULL,'Company Belin SARL added into Dolibarr','2012-07-08 14:23:48','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Belin SARL added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(3,'3',NULL,1,'2012-07-08 22:42:12','2012-07-08 22:42:12',50,NULL,'Company Spanish Comp added into Dolibarr','2012-07-08 22:42:12','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Spanish Comp added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(4,'4',NULL,1,'2012-07-08 22:48:18','2012-07-08 22:48:18',50,NULL,'Company Prospector Vaalen added into Dolibarr','2012-07-08 22:48:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Prospector Vaalen added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(5,'5',NULL,1,'2012-07-08 23:22:57','2012-07-08 23:22:57',50,NULL,'Company NoCountry Co added into Dolibarr','2012-07-08 23:22:57','2021-04-15 10:22:55',1,NULL,NULL,5,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company NoCountry Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(6,'6',NULL,1,'2012-07-09 00:15:09','2012-07-09 00:15:09',50,NULL,'Company Swiss customer added into Dolibarr','2012-07-09 00:15:09','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Swiss customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(7,'7',NULL,1,'2012-07-09 01:24:26','2012-07-09 01:24:26',50,NULL,'Company Generic customer added into Dolibarr','2012-07-09 01:24:26','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Generic customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(8,'8',NULL,1,'2012-07-10 14:54:27','2012-07-10 14:54:27',50,NULL,'Société Client salon ajoutée dans Dolibarr','2012-07-10 14:54:27','2021-04-15 10:22:55',1,NULL,NULL,8,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(9,'9',NULL,1,'2012-07-10 14:54:44','2012-07-10 14:54:44',50,NULL,'Société Client salon invidivdu ajoutée dans Doliba','2012-07-10 14:54:44','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon invidivdu ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(10,'10',NULL,1,'2012-07-10 14:56:10','2012-07-10 14:56:10',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:56:10','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(11,'11',NULL,1,'2012-07-10 14:58:53','2012-07-10 14:58:53',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:58:53','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(12,'12',NULL,1,'2012-07-10 15:00:55','2012-07-10 15:00:55',50,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr','2012-07-10 15:00:55','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(13,'13',NULL,1,'2012-07-10 15:13:08','2012-07-10 15:13:08',50,NULL,'Société Smith Vick ajoutée dans Dolibarr','2012-07-10 15:13:08','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Smith Vick ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(14,'14',NULL,1,'2012-07-10 15:21:00','2012-07-10 16:21:00',5,NULL,'RDV avec mon chef','2012-07-10 15:21:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(15,'15',NULL,1,'2012-07-10 18:18:16','2012-07-10 18:18:16',50,NULL,'Contrat CONTRAT1 validé dans Dolibarr','2012-07-10 18:18:16','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Contrat CONTRAT1 validé dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(16,'16',NULL,1,'2012-07-10 18:35:57','2012-07-10 18:35:57',50,NULL,'Société Mon client ajoutée dans Dolibarr','2012-07-10 18:35:57','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Mon client ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(17,'17',NULL,1,'2012-07-11 16:18:08','2012-07-11 16:18:08',50,NULL,'Société Dupont Alain ajoutée dans Dolibarr','2012-07-11 16:18:08','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Dupont Alain ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(18,'18',NULL,1,'2012-07-11 17:11:00','2012-07-11 17:17:00',5,NULL,'Rendez-vous','2012-07-11 17:11:22','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'gfgdfgdf',360,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(19,'19',NULL,1,'2012-07-11 17:13:20','2012-07-11 17:13:20',50,NULL,'Société Vendeur de chips ajoutée dans Dolibarr','2012-07-11 17:13:20','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Vendeur de chips ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(20,'20',NULL,1,'2012-07-11 17:15:42','2012-07-11 17:15:42',50,NULL,'Commande CF1007-0001 validée','2012-07-11 17:15:42','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0001 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(21,'21',NULL,1,'2012-07-11 18:47:33','2012-07-11 18:47:33',50,NULL,'Commande CF1007-0002 validée','2012-07-11 18:47:33','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0002 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(22,'22',NULL,1,'2012-07-18 11:36:18','2012-07-18 11:36:18',50,NULL,'Proposition PR1007-0003 validée','2012-07-18 11:36:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Proposition PR1007-0003 validée\nAuteur: admin',3,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(23,'23',NULL,1,'2013-07-18 20:49:58','2013-07-18 20:49:58',50,NULL,'Invoice FA1007-0002 validated in Dolibarr','2013-07-18 20:49:58','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 validated in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(24,'24',NULL,1,'2013-07-28 01:37:00',NULL,1,NULL,'Phone call','2013-07-28 01:37:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,2,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(25,'25',NULL,1,'2013-08-01 02:31:24','2013-08-01 02:31:24',50,NULL,'Company mmm added into Dolibarr','2013-08-01 02:31:24','2021-04-15 10:22:55',1,NULL,NULL,15,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company mmm added into Dolibarr\nAuthor: admin',15,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(26,'26',NULL,1,'2013-08-01 02:31:43','2013-08-01 02:31:43',50,NULL,'Company ppp added into Dolibarr','2013-08-01 02:31:43','2021-04-15 10:22:55',1,NULL,NULL,16,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ppp added into Dolibarr\nAuthor: admin',16,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(27,'27',NULL,1,'2013-08-01 02:41:26','2013-08-01 02:41:26',50,NULL,'Company aaa added into Dolibarr','2013-08-01 02:41:26','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company aaa added into Dolibarr\nAuthor: admin',17,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(28,'28',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 validated in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(29,'29',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 changed to paid in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(30,'30',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 validated in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(31,'31',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 changed to paid in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(38,'38',NULL,1,'2013-08-08 02:41:55','2013-08-08 02:41:55',50,NULL,'Invoice FA1108-0005 validated in Dolibarr','2013-08-08 02:41:55','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 validated in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(40,'40',NULL,1,'2013-08-08 02:53:40','2013-08-08 02:53:40',50,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr','2013-08-08 02:53:40','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(41,'41',NULL,1,'2013-08-08 02:54:05','2013-08-08 02:54:05',50,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr','2013-08-08 02:54:05','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(42,'42',NULL,1,'2013-08-08 02:55:04','2013-08-08 02:55:04',50,NULL,'Invoice FA1107-0006 validated in Dolibarr','2013-08-08 02:55:04','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 validated in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(43,'43',NULL,1,'2013-08-08 02:55:26','2013-08-08 02:55:26',50,NULL,'Invoice FA1108-0007 validated in Dolibarr','2013-08-08 02:55:26','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0007 validated in Dolibarr\nAuthor: admin',9,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(44,'44',NULL,1,'2013-08-08 02:55:58','2013-08-08 02:55:58',50,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr','2013-08-08 02:55:58','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(45,'45',NULL,1,'2013-08-08 03:04:22','2013-08-08 03:04:22',50,NULL,'Order CO1108-0001 validated','2013-08-08 03:04:22','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1108-0001 validated\nAuthor: admin',5,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(46,'46',NULL,1,'2013-08-08 13:59:09','2013-08-08 13:59:09',50,NULL,'Order CO1107-0002 validated','2013-08-08 13:59:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1107-0002 validated\nAuthor: admin',1,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(47,'47',NULL,1,'2013-08-08 14:24:18','2013-08-08 14:24:18',50,NULL,'Proposal PR1007-0001 validated','2013-08-08 14:24:18','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1007-0001 validated\nAuthor: admin',1,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(48,'48',NULL,1,'2013-08-08 14:24:24','2013-08-08 14:24:24',50,NULL,'Proposal PR1108-0004 validated','2013-08-08 14:24:24','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1108-0004 validated\nAuthor: admin',4,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(49,'49',NULL,1,'2013-08-08 15:04:37','2013-08-08 15:04:37',50,NULL,'Order CF1108-0003 validated','2013-08-08 15:04:37','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CF1108-0003 validated\nAuthor: admin',6,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(50,'50',NULL,1,'2014-12-08 17:56:47','2014-12-08 17:56:47',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:56:47','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(51,'51',NULL,1,'2014-12-08 17:57:11','2014-12-08 17:57:11',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:57:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(52,'52',NULL,1,'2014-12-08 17:58:27','2014-12-08 17:58:27',40,NULL,'Facture FA1212-0008 validée dans Dolibarr','2014-12-08 17:58:27','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0008 validée dans Dolibarr\nAuteur: admin',11,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(53,'53',NULL,1,'2014-12-08 18:20:49','2014-12-08 18:20:49',40,NULL,'Facture AV1212-0002 validée dans Dolibarr','2014-12-08 18:20:49','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 validée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(54,'54',NULL,1,'2014-12-09 18:35:07','2014-12-09 18:35:07',40,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr','2014-12-09 18:35:07','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(55,'55',NULL,1,'2014-12-09 20:14:42','2014-12-09 20:14:42',40,NULL,'Société doe john ajoutée dans Dolibarr','2014-12-09 20:14:42','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société doe john ajoutée dans Dolibarr\nAuteur: admin',18,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(56,'56',NULL,1,'2014-12-12 18:54:19','2014-12-12 18:54:19',40,NULL,'Facture FA1212-0009 validée dans Dolibarr','2014-12-12 18:54:19','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0009 validée dans Dolibarr\nAuteur: admin',55,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(121,'121',NULL,1,'2014-12-06 10:00:00',NULL,50,NULL,'aaab','2014-12-21 17:48:08','2021-04-15 10:22:55',3,1,NULL,NULL,NULL,0,3,NULL,NULL,1,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(122,'122',NULL,1,'2014-12-21 18:09:52','2014-12-21 18:09:52',40,NULL,'Facture client FA1007-0001 envoyée par EMail','2014-12-21 18:09:52','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Mail envoyé par Firstname SuperAdminName à laurent@mycompany.fr.\nSujet du mail: Envoi facture FA1007-0001\nCorps du mail:\nVeuillez trouver ci-joint la facture FA1007-0001\r\n\r\nVous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement via Paypal\r\n\r\nhttp://localhost/dolibarrnew/public/paypal/newpayment.php?source=invoice&ref=FA1007-0001&securekey=50c82fab36bb3b6aa83e2a50691803b2\r\n\r\nCordialement',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(123,'123',NULL,1,'2015-01-06 13:13:57','2015-01-06 13:13:57',40,NULL,'Facture 16 validée dans Dolibarr','2015-01-06 13:13:57','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture 16 validée dans Dolibarr\nAuteur: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(124,'124',NULL,1,'2015-01-12 12:23:05','2015-01-12 12:23:05',40,NULL,'Patient aaa ajouté','2015-01-12 12:23:05','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient aaa ajouté\nAuteur: admin',19,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(125,'125',NULL,1,'2015-01-12 12:52:20','2015-01-12 12:52:20',40,NULL,'Patient pppoo ajouté','2015-01-12 12:52:20','2021-04-15 10:22:55',1,NULL,NULL,20,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pppoo ajouté\nAuteur: admin',20,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(127,'127',NULL,1,'2015-01-19 18:22:48','2015-01-19 18:22:48',40,NULL,'Facture FS1301-0001 validée dans Dolibarr','2015-01-19 18:22:48','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0001 validée dans Dolibarr\nAuteur: admin',148,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(128,'128',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 validée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 validée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(129,'129',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(130,'130',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 validée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 validée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(131,'131',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(132,'132',NULL,1,'2015-01-23 15:07:54','2015-01-23 15:07:54',50,NULL,'Consultation 24 saisie (aaa)','2015-01-23 15:07:54','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Consultation 24 saisie (aaa)\nAuteur: admin',24,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(133,'133',NULL,1,'2015-01-23 16:56:58','2015-01-23 16:56:58',40,NULL,'Patient pa ajouté','2015-01-23 16:56:58','2021-04-15 10:22:55',1,NULL,NULL,21,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pa ajouté\nAuteur: admin',21,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(134,'134',NULL,1,'2015-01-23 17:34:00',NULL,50,NULL,'bbcv','2015-01-23 17:35:21','2021-04-15 10:22:55',1,NULL,1,2,NULL,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(135,'135',NULL,1,'2015-02-12 15:54:00','2015-02-12 15:54:00',40,NULL,'Facture FA1212-0011 validée dans Dolibarr','2015-02-12 15:54:37','2021-04-15 10:22:55',1,1,NULL,7,NULL,0,1,NULL,1,0,0,50,NULL,NULL,NULL,'Facture FA1212-0011 validée dans Dolibarr
\r\nAuteur: admin',13,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(136,'136',NULL,1,'2015-02-12 17:06:51','2015-02-12 17:06:51',40,NULL,'Commande CO1107-0003 validée','2015-02-12 17:06:51','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0003 validée\nAuteur: admin',2,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(137,'137',NULL,1,'2015-02-17 16:22:10','2015-02-17 16:22:10',40,NULL,'Proposition PR1302-0009 validée','2015-02-17 16:22:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0009 validée\nAuteur: admin',9,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(138,'138',NULL,1,'2015-02-17 16:27:00','2015-02-17 16:27:00',40,NULL,'Facture FA1302-0012 validée dans Dolibarr','2015-02-17 16:27:00','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1302-0012 validée dans Dolibarr\nAuteur: admin',152,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(139,'139',NULL,1,'2015-02-17 16:27:29','2015-02-17 16:27:29',40,NULL,'Proposition PR1302-0010 validée','2015-02-17 16:27:29','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0010 validée\nAuteur: admin',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(140,'140',NULL,1,'2015-02-17 18:27:56','2015-02-17 18:27:56',40,NULL,'Commande CO1107-0004 validée','2015-02-17 18:27:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0004 validée\nAuteur: admin',3,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(141,'141',NULL,1,'2015-02-17 18:38:14','2015-02-17 18:38:14',40,NULL,'Commande CO1302-0005 validée','2015-02-17 18:38:14','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1302-0005 validée\nAuteur: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(142,'142',NULL,1,'2015-02-26 22:57:50','2015-02-26 22:57:50',40,NULL,'Company pppp added into Dolibarr','2015-02-26 22:57:50','2021-04-15 10:22:55',1,NULL,NULL,22,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company pppp added into Dolibarr\nAuthor: admin',22,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(143,'143',NULL,1,'2015-02-26 22:58:13','2015-02-26 22:58:13',40,NULL,'Company ttttt added into Dolibarr','2015-02-26 22:58:13','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ttttt added into Dolibarr\nAuthor: admin',23,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(144,'144',NULL,1,'2015-02-27 10:00:00','2015-02-27 19:20:00',5,NULL,'Rendez-vous','2015-02-27 19:20:53','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,'',33600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(145,'145',NULL,1,'2015-02-27 19:28:00',NULL,2,NULL,'fdsfsd','2015-02-27 19:28:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(146,'146',NULL,1,'2015-03-06 10:05:07','2015-03-06 10:05:07',40,NULL,'Contrat (PROV3) validé dans Dolibarr','2015-03-06 10:05:07','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Contrat (PROV3) validé dans Dolibarr\nAuteur: admin',3,'contract',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(147,'147',NULL,1,'2015-03-06 16:43:37','2015-03-06 16:43:37',40,NULL,'Facture FA1307-0013 validée dans Dolibarr','2015-03-06 16:43:37','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée dans Dolibarr\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(148,'148',NULL,1,'2015-03-06 16:44:12','2015-03-06 16:44:12',40,NULL,'Facture FA1407-0014 validée dans Dolibarr','2015-03-06 16:44:12','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1407-0014 validée dans Dolibarr\nAuteur: admin',159,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(149,'149',NULL,1,'2015-03-06 16:47:48','2015-03-06 16:47:48',40,NULL,'Facture FA1507-0015 validée dans Dolibarr','2015-03-06 16:47:48','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1507-0015 validée dans Dolibarr\nAuteur: admin',160,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(150,'150',NULL,1,'2015-03-06 16:48:16','2015-03-06 16:48:16',40,NULL,'Facture FA1607-0016 validée dans Dolibarr','2015-03-06 16:48:16','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1607-0016 validée dans Dolibarr\nAuteur: admin',161,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(151,'151',NULL,1,'2015-03-06 17:13:59','2015-03-06 17:13:59',40,NULL,'Société smith smith ajoutée dans Dolibarr','2015-03-06 17:13:59','2021-04-15 10:22:55',1,NULL,NULL,24,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société smith smith ajoutée dans Dolibarr\nAuteur: admin',24,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(152,'152',NULL,1,'2015-03-08 10:02:22','2015-03-08 10:02:22',40,NULL,'Proposition (PROV12) validée dans Dolibarr','2015-03-08 10:02:22','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition (PROV12) validée dans Dolibarr\nAuteur: admin',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(203,'203',NULL,1,'2015-03-09 19:39:27','2015-03-09 19:39:27',40,'AC_ORDER_SUPPLIER_VALIDATE','Commande CF1303-0004 validée','2015-03-09 19:39:27','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CF1303-0004 validée\nAuteur: admin',13,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(204,'204',NULL,1,'2015-03-10 15:47:37','2015-03-10 15:47:37',40,'AC_COMPANY_CREATE','Patient créé','2015-03-10 15:47:37','2021-04-15 10:22:55',1,NULL,NULL,25,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient créé\nAuteur: admin',25,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(205,'205',NULL,1,'2015-03-10 15:57:32','2015-03-10 15:57:32',40,'AC_COMPANY_CREATE','Tiers créé','2015-03-10 15:57:32','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Tiers créé\nAuteur: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(206,'206',NULL,1,'2015-03-10 15:58:28','2015-03-10 15:58:28',40,'AC_BILL_VALIDATE','Facture FA1303-0017 validée','2015-03-10 15:58:28','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0017 validée\nAuteur: admin',208,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(207,'207',NULL,1,'2015-03-19 09:38:10','2015-03-19 09:38:10',40,'AC_BILL_VALIDATE','Facture FA1303-0018 validée','2015-03-19 09:38:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0018 validée\nAuteur: admin',209,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(208,'208',NULL,1,'2015-03-20 14:30:11','2015-03-20 14:30:11',40,'AC_BILL_VALIDATE','Facture FA1107-0019 validée','2015-03-20 14:30:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1107-0019 validée\nAuteur: admin',210,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(209,'209',NULL,1,'2015-03-22 09:40:25','2015-03-22 09:40:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-22 09:40:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(210,'210',NULL,1,'2015-03-23 17:16:25','2015-03-23 17:16:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-23 17:16:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(211,'211',NULL,1,'2015-03-23 18:08:27','2015-03-23 18:08:27',40,'AC_BILL_VALIDATE','Facture FA1307-0013 validée','2015-03-23 18:08:27','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(212,'212',NULL,1,'2015-03-24 15:54:00','2015-03-24 15:54:00',40,'AC_BILL_VALIDATE','Facture FA1212-0021 validée','2015-03-24 15:54:00','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0021 validée\nAuteur: admin',32,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(213,'213',NULL,1,'2015-11-07 01:02:39','2015-11-07 01:02:39',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:02:39','2021-04-15 10:22:55',1,NULL,NULL,27,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',27,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(214,'214',NULL,1,'2015-11-07 01:05:22','2015-11-07 01:05:22',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:05:22','2021-04-15 10:22:55',1,NULL,NULL,28,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',28,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(215,'215',NULL,1,'2015-11-07 01:07:07','2015-11-07 01:07:07',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:07','2021-04-15 10:22:55',1,NULL,NULL,29,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',29,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(216,'216',NULL,1,'2015-11-07 01:07:58','2015-11-07 01:07:58',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:58','2021-04-15 10:22:55',1,NULL,NULL,30,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',30,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(217,'217',NULL,1,'2015-11-07 01:10:09','2015-11-07 01:10:09',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:10:09','2021-04-15 10:22:55',1,NULL,NULL,31,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',31,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(218,'218',NULL,1,'2015-11-07 01:15:57','2015-11-07 01:15:57',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:15:57','2021-04-15 10:22:55',1,NULL,NULL,32,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',32,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(219,'219',NULL,1,'2015-11-07 01:16:51','2015-11-07 01:16:51',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:16:51','2021-04-15 10:22:55',1,NULL,NULL,33,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',33,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(220,'220',NULL,1,'2016-03-02 17:24:04','2016-03-02 17:24:04',40,'AC_BILL_VALIDATE','Invoice FA1302-0022 validated','2016-03-02 17:24:04','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1302-0022 validated\nAuthor: admin',157,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(221,'221',NULL,1,'2016-03-02 17:24:28','2016-03-02 17:24:28',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 17:24:28','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(222,'222',NULL,1,'2016-03-05 10:00:00','2016-03-05 10:00:00',5,NULL,'RDV John','2016-03-02 19:54:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,NULL,NULL,NULL,'gfdgdfgdf',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(223,'223',NULL,1,'2016-03-13 10:00:00','2016-03-17 00:00:00',50,NULL,'Congress','2016-03-02 19:55:11','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,'',309600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(224,'224',NULL,1,'2016-03-14 10:00:00',NULL,1,NULL,'Call john','2016-03-02 19:55:56','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,0,'',NULL,NULL,'tttt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(225,'225',NULL,1,'2016-03-02 20:11:31','2016-03-02 20:11:31',40,'AC_BILL_UNVALIDATE','Invoice FA1303-0020 go back to draft status','2016-03-02 20:11:31','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 go back to draft status\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(226,'226',NULL,1,'2016-03-02 20:13:39','2016-03-02 20:13:39',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 20:13:39','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(227,'227',NULL,1,'2016-03-03 19:20:10','2016-03-03 19:20:10',40,'AC_BILL_VALIDATE','Invoice FA1212-0023 validated','2016-03-03 19:20:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 validated\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(228,'228',NULL,1,'2016-03-03 19:20:25','2016-03-03 19:20:25',40,'AC_BILL_CANCEL','Invoice FA1212-0023 canceled in Dolibarr','2016-03-03 19:20:25','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 canceled in Dolibarr\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(229,'229',NULL,1,'2016-03-03 19:20:56','2016-03-03 19:20:56',40,'AC_BILL_VALIDATE','Invoice AV1403-0003 validated','2016-03-03 19:20:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 validated\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(230,'230',NULL,1,'2016-03-03 19:21:29','2016-03-03 19:21:29',40,'AC_BILL_UNVALIDATE','Invoice AV1403-0003 go back to draft status','2016-03-03 19:21:29','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 go back to draft status\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(231,'231',NULL,1,'2016-03-03 19:22:16','2016-03-03 19:22:16',40,'AC_BILL_VALIDATE','Invoice AV1303-0003 validated','2016-03-03 19:22:16','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1303-0003 validated\nAuthor: admin',213,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(232,'232',NULL,1,'2018-01-22 18:54:39','2018-01-22 18:54:39',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:39','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(233,'233',NULL,1,'2018-01-22 18:54:46','2018-01-22 18:54:46',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:46','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(234,'234',NULL,1,'2018-07-05 10:00:00','2018-07-05 11:19:00',5,'AC_RDV','Meeting with my boss','2018-07-31 18:19:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',4740,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(235,'235',NULL,1,'2018-07-13 00:00:00','2018-07-14 23:59:59',50,'AC_OTH','Trip at Las Vegas','2018-07-31 18:20:36','2021-04-15 10:22:55',12,NULL,4,NULL,2,0,12,1,NULL,0,1,-1,'',172799,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(236,'236',NULL,1,'2018-07-29 10:00:00',NULL,4,'AC_EMAIL','Remind to send an email','2018-07-31 18:21:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,4,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(237,'237',NULL,1,'2018-07-01 10:00:00',NULL,1,'AC_TEL','Phone call with Mr Vaalen','2018-07-31 18:22:04','2021-04-15 10:22:55',12,NULL,6,4,NULL,0,13,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(238,'238',NULL,1,'2018-08-02 10:00:00','2018-08-02 12:00:00',5,'AC_RDV','Meeting on radium','2018-08-01 01:15:50','2021-04-15 10:22:55',12,NULL,8,10,10,0,12,1,NULL,0,0,-1,'',7200,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(239,'239',NULL,1,'2017-01-29 21:49:33','2017-01-29 21:49:33',40,'AC_OTH_AUTO','Proposal PR1302-0007 validated','2017-01-29 21:49:33','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1302-0007 validated\nAuthor: admin',7,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(240,'240',NULL,1,'2017-01-31 20:52:00',NULL,1,'AC_TEL','Call the boss','2017-01-31 20:52:10','2021-04-15 10:22:55',12,12,6,NULL,NULL,0,12,1,NULL,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(242,'242',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 validated','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 validated\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(243,'243',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 approved','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 approved\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(245,'245',NULL,1,'2017-02-01 18:52:32','2017-02-01 18:52:32',40,'AC_OTH_AUTO','Supplier order CF1007-0001 submited','2017-02-01 18:52:32','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 submited\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(249,'249',NULL,1,'2017-02-01 18:54:01','2017-02-01 18:54:01',40,'AC_OTH_AUTO','Supplier order CF1007-0001 received','2017-02-01 18:54:01','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 received \nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(250,'250',NULL,1,'2017-02-01 18:54:42','2017-02-01 18:54:42',40,'AC_OTH_AUTO','Email sent by MyBigCompany To mycustomer@example.com','2017-02-01 18:54:42','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): mycustomer@example.com
\nEMail topic: Submission of order CF1007-0001
\nEmail body:
\nYou will find here our order CF1007-0001
\r\n
\r\nSincerely
\n
\nAttached files and documents: CF1007-0001.pdf',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(251,'251',NULL,1,'2017-02-01 19:02:21','2017-02-01 19:02:21',40,'AC_OTH_AUTO','Invoice SI1702-0001 validated','2017-02-01 19:02:21','2021-04-15 10:22:55',12,NULL,5,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice SI1702-0001 validated\nAuthor: admin',20,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(252,'252',NULL,1,'2017-02-12 23:17:04','2017-02-12 23:17:04',40,'AC_OTH_AUTO','Patient créé','2017-02-12 23:17:04','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Patient créé\nAuthor: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(253,'253',NULL,1,'2017-02-12 23:18:33','2017-02-12 23:18:33',40,'AC_OTH_AUTO','Consultation 2 recorded (aaa)','2017-02-12 23:18:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (aaa)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(254,'254',NULL,1,'2017-02-15 23:28:41','2017-02-15 23:28:41',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:28:41','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(255,'255',NULL,1,'2017-02-15 23:28:56','2017-02-15 23:28:56',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:28:56','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',8,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(256,'256',NULL,1,'2017-02-15 23:34:33','2017-02-15 23:34:33',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:34:33','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',9,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(257,'257',NULL,1,'2017-02-15 23:35:03','2017-02-15 23:35:03',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-15 23:35:03','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',10,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(263,'263',NULL,1,'2017-02-15 23:50:34','2017-02-15 23:50:34',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:50:34','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',17,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(264,'264',NULL,1,'2017-02-15 23:51:23','2017-02-15 23:51:23',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:51:23','2021-04-15 10:22:55',12,NULL,NULL,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',18,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(265,'265',NULL,1,'2017-02-15 23:54:51','2017-02-15 23:54:51',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:54:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',19,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(266,'266',NULL,1,'2017-02-15 23:55:52','2017-02-15 23:55:52',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:55:52','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',20,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(267,'267',NULL,1,'2017-02-16 00:03:44','2017-02-16 00:03:44',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-16 00:03:44','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',29,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(268,'268',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0009 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0009 validated\nAuthor: admin',34,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(269,'269',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0010 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0010 validated\nAuthor: admin',38,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(270,'270',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0011 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0011 validated\nAuthor: admin',40,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(271,'271',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0012 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0012 validated\nAuthor: admin',43,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(272,'272',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0013 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0013 validated\nAuthor: admin',47,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(273,'273',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0014 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0014 validated\nAuthor: admin',48,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(274,'274',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0015 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0015 validated\nAuthor: admin',50,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(275,'275',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0016 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0016 validated\nAuthor: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(277,'277',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0018 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0018 validated\nAuthor: admin',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(278,'278',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0019 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0019 validated\nAuthor: admin',68,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(279,'279',NULL,1,'2017-02-16 00:05:36','2017-02-16 00:05:36',40,'AC_OTH_AUTO','Order CO7001-0020 validated','2017-02-16 00:05:36','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0020 validated\nAuthor: admin',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(281,'281',NULL,1,'2017-02-16 00:05:37','2017-02-16 00:05:37',40,'AC_OTH_AUTO','Order CO7001-0022 validated','2017-02-16 00:05:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0022 validated\nAuthor: admin',78,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(282,'282',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0023 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0023 validated\nAuthor: admin',81,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(283,'283',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0024 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0024 validated\nAuthor: admin',83,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(284,'284',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0025 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,2,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0025 validated\nAuthor: admin',84,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(285,'285',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0026 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0026 validated\nAuthor: admin',85,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(286,'286',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0027 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0027 validated\nAuthor: admin',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(287,'287',NULL,1,'2017-02-16 03:05:56','2017-02-16 03:05:56',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Livrée','2017-02-16 03:05:56','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Livrée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(288,'288',NULL,1,'2017-02-16 03:06:01','2017-02-16 03:06:01',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Facturée','2017-02-16 03:06:01','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Facturée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(294,'294',NULL,1,'2017-02-16 03:53:04','2017-02-16 03:53:04',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 03:53:04','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(295,'295',NULL,1,'2017-02-16 03:58:08','2017-02-16 03:58:08',40,'AC_OTH_AUTO','Expédition SH1702-0002 validée','2017-02-16 03:58:08','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Expédition SH1702-0002 validée\nAuteur: admin',3,'shipping',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(296,'296',NULL,1,'2017-02-16 04:12:29','2017-02-16 04:12:29',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:12:29','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(297,'297',NULL,1,'2017-02-16 04:14:20','2017-02-16 04:14:20',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:14:20','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(298,'298',NULL,1,'2017-02-16 01:44:58','2017-02-16 01:44:58',40,'AC_OTH_AUTO','Proposal PR1702-0009 validated','2017-02-16 01:44:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0009 validated\nAuthor: aeinstein',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(299,'299',NULL,1,'2017-02-16 01:45:44','2017-02-16 01:45:44',40,'AC_OTH_AUTO','Proposal PR1702-0010 validated','2017-02-16 01:45:44','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0010 validated\nAuthor: demo',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(300,'300',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0011 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0011 validated\nAuthor: aeinstein',13,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(301,'301',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0012 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,3,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0012 validated\nAuthor: demo',14,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(302,'302',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0013 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0013 validated\nAuthor: demo',15,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(303,'303',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0014 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0014 validated\nAuthor: demo',16,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(304,'304',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0015 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0015 validated\nAuthor: aeinstein',17,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(305,'305',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0016 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0016 validated\nAuthor: demo',18,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(306,'306',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0017 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0017 validated\nAuthor: demo',19,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(307,'307',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0018 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0018 validated\nAuthor: aeinstein',20,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(308,'308',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0019 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0019 validated\nAuthor: aeinstein',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(309,'309',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0020 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0020 validated\nAuthor: aeinstein',22,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(310,'310',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0021 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0021 validated\nAuthor: demo',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(311,'311',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0022 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0022 validated\nAuthor: demo',24,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(312,'312',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0023 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0023 validated\nAuthor: aeinstein',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(313,'313',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0024 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0024 validated\nAuthor: demo',26,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(314,'314',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0025 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0025 validated\nAuthor: aeinstein',27,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(315,'315',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0026 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0026 validated\nAuthor: demo',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(316,'316',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0027 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0027 validated\nAuthor: demo',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(317,'317',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0028 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0028 validated\nAuthor: demo',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(318,'318',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0029 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0029 validated\nAuthor: aeinstein',31,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(319,'319',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0030 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0030 validated\nAuthor: demo',32,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(320,'320',NULL,1,'2017-02-16 04:46:31','2017-02-16 04:46:31',40,'AC_OTH_AUTO','Proposition PR1702-0026 signée','2017-02-16 04:46:31','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0026 signée\nAuteur: admin',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(321,'321',NULL,1,'2017-02-16 04:46:37','2017-02-16 04:46:37',40,'AC_OTH_AUTO','Proposition PR1702-0027 signée','2017-02-16 04:46:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0027 signée\nAuteur: admin',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(322,'322',NULL,1,'2017-02-16 04:46:42','2017-02-16 04:46:42',40,'AC_OTH_AUTO','Proposition PR1702-0028 refusée','2017-02-16 04:46:42','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0028 refusée\nAuteur: admin',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(323,'323',NULL,1,'2017-02-16 04:47:09','2017-02-16 04:47:09',40,'AC_OTH_AUTO','Proposition PR1702-0019 validée','2017-02-16 04:47:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0019 validée\nAuteur: admin',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(324,'324',NULL,1,'2017-02-16 04:47:25','2017-02-16 04:47:25',40,'AC_OTH_AUTO','Proposition PR1702-0023 signée','2017-02-16 04:47:25','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 signée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(325,'325',NULL,1,'2017-02-16 04:47:29','2017-02-16 04:47:29',40,'AC_OTH_AUTO','Proposition PR1702-0023 classée payée','2017-02-16 04:47:29','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 classée payée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(326,'326',NULL,1,'2017-02-17 16:07:18','2017-02-17 16:07:18',40,'AC_OTH_AUTO','Proposition PR1702-0021 validée','2017-02-17 16:07:18','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0021 validée\nAuteur: admin',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(327,'327',NULL,1,'2017-05-12 13:53:44','2017-05-12 13:53:44',40,'AC_OTH_AUTO','Email sent by MyBigCompany To Einstein','2017-05-12 13:53:44','2021-04-15 10:22:55',12,NULL,NULL,11,12,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): Einstein <genius@example.com>
\nBcc: Einstein <genius@example.com>
\nEMail topic: Test
\nEmail body:
\nTest\nAuthor: admin',11,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(328,'328',NULL,1,'2017-08-29 22:39:09','2017-08-29 22:39:09',40,'AC_OTH_AUTO','Invoice FA1601-0024 validated','2017-08-29 22:39:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice FA1601-0024 validated\nAuthor: admin',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(329,'329',NULL,1,'2019-09-26 13:38:11','2019-09-26 13:38:11',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:38:11','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(330,'330',NULL,1,'2019-09-26 13:49:21','2019-09-26 13:49:21',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:49:21','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(331,'331',NULL,1,'2019-09-26 17:33:37','2019-09-26 17:33:37',40,'AC_BILL_VALIDATE','Invoice FA1909-0025 validated','2019-09-26 17:33:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1909-0025 validated',218,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(333,'333',NULL,1,'2019-09-27 16:54:30','2019-09-27 16:54:30',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0031 validated','2019-09-27 16:54:30','2021-04-15 10:22:55',12,NULL,4,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0031 validated',10,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(335,'335',NULL,1,'2019-09-27 17:08:59','2019-09-27 17:08:59',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0032 validated','2019-09-27 17:08:59','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0032 validated',33,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(337,'337',NULL,1,'2019-09-27 17:13:13','2019-09-27 17:13:13',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0033 validated','2019-09-27 17:13:13','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 validated',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(338,'338',NULL,1,'2019-09-27 17:53:31','2019-09-27 17:53:31',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 17:53:31','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(339,'339',NULL,1,'2019-09-27 18:15:00','2019-09-27 18:15:00',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:15:00','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(340,'340',NULL,1,'2019-09-27 18:40:32','2019-09-27 18:40:32',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:40:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(341,'341',NULL,1,'2019-09-27 19:16:07','2019-09-27 19:16:07',40,'AC_PRODUCT_CREATE','Product ppp created','2019-09-27 19:16:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp created',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(342,'342',NULL,1,'2019-09-27 19:18:01','2019-09-27 19:18:01',40,'AC_PRODUCT_MODIFY','Product ppp modified','2019-09-27 19:18:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp modified',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(343,'343',NULL,1,'2019-09-27 19:31:45','2019-09-27 19:31:45',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:31:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(344,'344',NULL,1,'2019-09-27 19:32:12','2019-09-27 19:32:12',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:32:12','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(345,'345',NULL,1,'2019-09-27 19:38:30','2019-09-27 19:38:30',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(346,'346',NULL,1,'2019-09-27 19:38:37','2019-09-27 19:38:37',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(347,'347',NULL,1,'2019-09-30 15:49:52',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #15ff11cay39skiaa] New message','2019-09-30 15:49:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'dfsdfds',2,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(348,'348',NULL,1,'2019-10-01 13:48:36','2019-10-01 13:48:36',40,'AC_PROJECT_MODIFY','Project PJ1607-0001 modified','2019-10-01 13:48:36','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1607-0001 modified\nTask: PJ1607-0001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(349,'349',NULL,1,'2019-10-04 10:10:25','2019-10-04 10:10:25',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:10:25','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(350,'350',NULL,1,'2019-10-04 10:10:47','2019-10-04 10:10:47',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:10:47','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(351,'351',NULL,1,'2019-10-04 10:26:49','2019-10-04 10:26:49',40,'AC_BILL_UNVALIDATE','Invoice FA6801-0010 go back to draft status','2019-10-04 10:26:49','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 go back to draft status',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(352,'352',NULL,1,'2019-10-04 10:27:00','2019-10-04 10:27:00',40,'AC_BILL_VALIDATE','Invoice FA6801-0010 validated','2019-10-04 10:27:00','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 validated',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(353,'353',NULL,1,'2019-10-04 10:28:14','2019-10-04 10:28:14',40,'AC_BILL_PAYED','Invoice FA6801-0010 changed to paid','2019-10-04 10:28:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 changed to paid',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(354,'354',NULL,1,'2019-10-04 10:29:22','2019-10-04 10:29:22',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:29:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(355,'355',NULL,1,'2019-10-04 10:29:41','2019-10-04 10:29:41',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI1601-0002 go back to draft status','2019-10-04 10:29:41','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 go back to draft status',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(356,'356',NULL,1,'2019-10-04 10:31:30','2019-10-04 10:31:30',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:31:30','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(357,'357',NULL,1,'2019-10-04 16:56:21',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 16:56:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(358,'358',NULL,1,'2019-10-04 17:08:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:08:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'ddddd',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(359,'359',NULL,1,'2019-10-04 17:25:05',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:25:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(360,'360',NULL,1,'2019-10-04 17:26:14',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:26:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(361,'361',NULL,1,'2019-10-04 17:30:10',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:30:10','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(362,'362',NULL,1,'2019-10-04 17:51:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:51:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(363,'363',NULL,1,'2019-10-04 17:52:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(364,'364',NULL,1,'2019-10-04 17:52:17',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(365,'365',NULL,1,'2019-10-04 17:52:39',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:39','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(366,'366',NULL,1,'2019-10-04 17:52:53',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(367,'367',NULL,1,'2019-10-04 17:53:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(368,'368',NULL,1,'2019-10-04 17:53:26',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:26','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(369,'369',NULL,1,'2019-10-04 17:53:48',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(370,'370',NULL,1,'2019-10-04 17:54:09',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:09','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(371,'371',NULL,1,'2019-10-04 17:54:28',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(372,'372',NULL,1,'2019-10-04 17:55:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:55:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(373,'373',NULL,1,'2019-10-04 17:56:01',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:56:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(374,'374',NULL,1,'2019-10-04 18:00:32',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(375,'375',NULL,1,'2019-10-04 18:00:58',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(376,'376',NULL,1,'2019-10-04 18:11:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:11:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(377,'377',NULL,1,'2019-10-04 18:12:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:12:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fffffff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(378,'378',NULL,1,'2019-10-04 18:49:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:49:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(379,'379',NULL,1,'2019-10-04 19:00:22',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:00:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(380,'380',NULL,1,'2019-10-04 19:24:20','2019-10-04 19:24:20',40,'AC_PROPAL_SENTBYMAIL','Email sent by Alice Adminson To NLTechno','2019-10-04 19:24:20','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSender: Alice Adminson <aadminson@example.com>
\nReceiver(s): NLTechno <notanemail@nltechno.com>
\nEmail topic: Envoi de la proposition commerciale PR1909-0032
\nEmail body:
\nHello
\r\n
\r\nVeuillez trouver, ci-joint, la proposition commerciale PR1909-0032
\r\n
\r\n
\r\nSincerely
\r\n
\r\nAlice - 123
\n
\nAttached files and documents: PR1909-0032.pdf',33,'propal',NULL,'Envoi de la proposition commerciale PR1909-0032','Alice Adminson ',NULL,'NLTechno ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(381,'381',NULL,1,'2019-10-04 19:30:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:30:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(382,'382',NULL,1,'2019-10-04 19:32:55',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:32:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'uuuuuu\n\nAttached files and documents: Array',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(383,'383',NULL,1,'2019-10-04 19:37:16',NULL,50,'TICKET_MSG','','2019-10-04 19:37:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'f\n\nFichiers et documents joints: dolihelp.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(384,'384',NULL,1,'2019-10-04 19:39:07',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:39:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaafff\n\nAttached files and documents: dolibarr.gif;doliadmin.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(385,'385',NULL,1,'2019-10-07 12:17:07','2019-10-07 12:17:07',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',17,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(386,'386',NULL,1,'2019-10-07 12:17:32','2019-10-07 12:17:32',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',18,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(387,'387',NULL,1,'2019-10-08 19:21:07','2019-10-08 19:21:07',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-10-08 19:21:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(388,'388',NULL,1,'2019-10-08 21:01:07','2019-10-08 21:01:07',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-10-08 21:01:07','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(389,'389',NULL,1,'2019-10-08 21:01:22','2019-10-08 21:01:22',40,'AC_MEMBER_MODIFY','Member doe john modified','2019-10-08 21:01:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(390,'390',NULL,1,'2019-10-08 21:01:45','2019-10-08 21:01:45',40,'AC_MEMBER_MODIFY','Member smith smith modified','2019-10-08 21:01:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(391,'391',NULL,1,'2019-10-08 21:02:18','2019-10-08 21:02:18',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2019-10-08 21:02:18','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(392,'392',NULL,1,'2019-11-28 15:54:46','2019-11-28 15:54:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1911-0005 validated','2019-11-28 15:54:47','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1911-0005 validated',21,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(393,'393',NULL,1,'2019-11-28 16:33:35','2019-11-28 16:33:35',40,'AC_PRODUCT_CREATE','Product FR-CAR created','2019-11-28 16:33:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR created',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(394,'394',NULL,1,'2019-11-28 16:34:08','2019-11-28 16:34:08',40,'AC_PRODUCT_DELETE','Product ppp deleted','2019-11-28 16:34:08','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp deleted',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(395,'395',NULL,1,'2019-11-28 16:34:33','2019-11-28 16:34:33',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(396,'396',NULL,1,'2019-11-28 16:34:46','2019-11-28 16:34:46',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(397,'397',NULL,1,'2019-11-28 16:36:56','2019-11-28 16:36:56',40,'AC_PRODUCT_MODIFY','Product POS-CAR modified','2019-11-28 16:36:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(398,'398',NULL,1,'2019-11-28 16:37:36','2019-11-28 16:37:36',40,'AC_PRODUCT_CREATE','Product POS-APPLE created','2019-11-28 16:37:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE created',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(399,'399',NULL,1,'2019-11-28 16:37:58','2019-11-28 16:37:58',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 16:37:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(400,'400',NULL,1,'2019-11-28 16:38:44','2019-11-28 16:38:44',40,'AC_PRODUCT_CREATE','Product POS-KIWI created','2019-11-28 16:38:44','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-KIWI created',26,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(401,'401',NULL,1,'2019-11-28 16:39:21','2019-11-28 16:39:21',40,'AC_PRODUCT_CREATE','Product POS-PEACH created','2019-11-28 16:39:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-PEACH created',27,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(402,'402',NULL,1,'2019-11-28 16:39:58','2019-11-28 16:39:58',40,'AC_PRODUCT_CREATE','Product POS-ORANGE created','2019-11-28 16:39:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-ORANGE created',28,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(403,'403',NULL,1,'2019-11-28 17:00:28','2019-11-28 17:00:28',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2019-11-28 17:00:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(404,'404',NULL,1,'2019-11-28 17:00:46','2019-11-28 17:00:46',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 17:00:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(405,'405',NULL,1,'2019-11-28 17:01:57','2019-11-28 17:01:57',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 17:01:57','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(406,'406',NULL,1,'2019-11-28 17:03:14','2019-11-28 17:03:14',40,'AC_PRODUCT_CREATE','Product POS-Eggs created','2019-11-28 17:03:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs created',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(407,'407',NULL,1,'2019-11-28 17:04:17','2019-11-28 17:04:17',40,'AC_PRODUCT_MODIFY','Product POS-Eggs modified','2019-11-28 17:04:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs modified',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(408,'408',NULL,1,'2019-11-28 17:09:14','2019-11-28 17:09:14',40,'AC_PRODUCT_CREATE','Product POS-Chips created','2019-11-28 17:09:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips created',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(409,'409',NULL,1,'2019-11-28 17:09:54','2019-11-28 17:09:54',40,'AC_PRODUCT_MODIFY','Product POS-Chips modified','2019-11-28 17:09:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips modified',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(410,'410',NULL,1,'2019-11-28 18:46:20','2019-11-28 18:46:20',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 18:46:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(411,'411',NULL,1,'2019-11-28 18:59:29','2019-11-28 18:59:29',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 18:59:29','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(412,'412',NULL,1,'2019-11-28 19:02:01','2019-11-28 19:02:01',40,'AC_PRODUCT_MODIFY','Product POS-CARROT modified','2019-11-28 19:02:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CARROT modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(413,'413',NULL,1,'2019-11-28 19:09:50','2019-11-28 19:09:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:09:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(414,'414',NULL,1,'2019-11-28 19:12:50','2019-11-28 19:12:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:12:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(415,'415',NULL,1,'2019-11-29 12:46:29','2019-11-29 12:46:29',40,'AC_TICKET_CREATE','Ticket TS1911-0004 created','2019-11-29 12:46:29','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 created',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(416,'416',NULL,1,'2019-11-29 12:46:34','2019-11-29 12:46:34',40,'AC_TICKET_MODIFY','Ticket TS1911-0004 read by Alice Adminson','2019-11-29 12:46:34','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 read by Alice Adminson',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(417,'417',NULL,1,'2019-11-29 12:46:47','2019-11-29 12:46:47',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0004 assigned','2019-11-29 12:46:47','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 assigned\nOld user: None\nNew user: Commerson Charle1',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(418,'418',NULL,1,'2019-11-29 12:47:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #5gvo9bsjri55zef9] New message','2019-11-29 12:47:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Where do you want to install Dolibarr ?
\r\nOn-Premise or on the Cloud ?',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(419,'419',NULL,1,'2019-11-29 12:50:45','2019-11-29 12:50:45',40,'AC_TICKET_CREATE','Ticket TS1911-0005 créé','2019-11-29 12:50:45','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nTicket TS1911-0005 créé',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(420,'420',NULL,1,'2019-11-29 12:52:32','2019-11-29 12:52:32',40,'AC_TICKET_MODIFY','Ticket TS1911-0005 read by Alice Adminson','2019-11-29 12:52:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 read by Alice Adminson',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(421,'421',NULL,1,'2019-11-29 12:52:53','2019-11-29 12:52:53',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0005 assigned','2019-11-29 12:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 assigned\nOld user: None\nNew user: Commerson Charle1',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(422,'422',NULL,1,'2019-11-29 12:54:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:54:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Hi.
\r\nThanks for your interest in using Dolibarr ERP CRM.
\r\nI need more information to give you the correct answer : Where do you want to install Dolibarr. On premise or on Cloud',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(423,'423',NULL,1,'2019-11-29 12:54:46',NULL,50,'TICKET_MSG','','2019-11-29 12:54:46','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'I need it On-Premise.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(424,'424',NULL,1,'2019-11-29 12:55:42',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:55:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'When used on-premise, you can download and install Dolibarr yourself from ou web portal: https://www.dolibarr.org
\r\nIt is completely free.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(425,'425',NULL,1,'2019-11-29 12:55:48','2019-11-29 12:55:48',40,'AC_TICKET_CLOSE','Ticket TS1911-0005 closed','2019-11-29 12:55:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 closed',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(426,'426',NULL,1,'2019-11-29 12:56:47','2019-11-29 12:56:47',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2019-11-29 12:56:47','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(427,'427',NULL,1,'2019-11-29 12:57:14','2019-11-29 12:57:14',40,'AC_BOM_VALIDATE','BOM validated','2019-11-29 12:57:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(428,'428',NULL,1,'2019-12-20 16:40:14','2019-12-20 16:40:14',40,'AC_MO_DELETE','MO deleted','2019-12-20 16:40:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',3,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(429,'429',NULL,1,'2019-12-20 17:00:43','2019-12-20 17:00:43',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',7,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(430,'430',NULL,1,'2019-12-20 17:00:56','2019-12-20 17:00:56',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',6,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(431,'431',NULL,1,'2019-12-20 20:00:03','2019-12-20 20:00:03',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:00:03','2021-04-15 10:22:55',12,NULL,6,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',1,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(432,'432',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',10,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(433,'433',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',12,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(434,'434',NULL,1,'2019-12-20 20:22:20','2019-12-20 20:22:20',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',9,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(435,'435',NULL,1,'2019-12-20 20:27:07','2019-12-20 20:27:07',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:27:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',13,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(436,'436',NULL,1,'2019-12-20 20:42:42','2019-12-20 20:42:42',40,'AC_ORDER_VALIDATE','Order CO7001-0027 validated','2019-12-20 20:42:42','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0027 validated',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(437,'437',NULL,1,'2019-12-20 20:46:25','2019-12-20 20:46:25',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:46:25','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(438,'438',NULL,1,'2019-12-20 20:46:45','2019-12-20 20:46:45',40,'AC_ORDER_SUPPLIER_CLASSIFY_BILLED','Purchase Order CF1007-0001 set billed','2019-12-20 20:46:45','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 set billed',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(439,'439',NULL,1,'2019-12-20 20:47:02','2019-12-20 20:47:02',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:02','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(440,'440',NULL,1,'2019-12-20 20:47:44','2019-12-20 20:47:44',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:44','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(441,'441',NULL,1,'2019-12-20 20:47:53','2019-12-20 20:47:53',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:53','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(442,'442',NULL,1,'2019-12-20 20:48:05','2019-12-20 20:48:05',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:48:05','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(443,'443',NULL,1,'2019-12-20 20:48:45','2019-12-20 20:48:45',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0016 classified billed','2019-12-20 20:48:45','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0016 classified billed',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(444,'444',NULL,1,'2019-12-20 20:48:55','2019-12-20 20:48:55',40,'AC_ORDER_CLOSE','Order CO7001-0018 classified delivered','2019-12-20 20:48:55','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0018 classified delivered',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(445,'445',NULL,1,'2019-12-20 20:49:43','2019-12-20 20:49:43',40,'AC_PROPAL_CLASSIFY_BILLED','Proposal PR1702-0027 classified billed','2019-12-20 20:49:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 classified billed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(446,'446',NULL,1,'2019-12-20 20:49:54','2019-12-20 20:49:54',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:49:54','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(447,'447',NULL,1,'2019-12-20 20:50:14','2019-12-20 20:50:14',40,'AC_PROPAL_CLOSE_REFUSED','Proposal PR1702-0027 refused','2019-12-20 20:50:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 refused',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(448,'448',NULL,1,'2019-12-20 20:50:23','2019-12-20 20:50:23',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:50:23','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(449,'449',NULL,1,'2019-12-21 17:18:22','2019-12-21 17:18:22',40,'AC_BOM_CLOSE','BOM disabled','2019-12-21 17:18:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(450,'450',NULL,1,'2019-12-21 17:18:38','2019-12-21 17:18:38',40,'AC_MEMBER_RESILIATE','Member Vick Smith terminated','2019-12-21 17:18:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith terminated\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(451,'451',NULL,1,'2019-12-21 19:46:33','2019-12-21 19:46:33',40,'AC_PROJECT_CREATE','Project PJ1912-0005 created','2019-12-21 19:46:33','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 created\nProject: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(452,'452',NULL,1,'2019-12-21 19:47:03','2019-12-21 19:47:03',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:03','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(453,'453',NULL,1,'2019-12-21 19:47:24','2019-12-21 19:47:24',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:24','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(454,'454',NULL,1,'2019-12-21 19:47:52','2019-12-21 19:47:52',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:52','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(455,'455',NULL,1,'2019-12-21 19:48:06','2019-12-21 19:48:06',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:48:06','2021-04-15 10:22:55',12,NULL,10,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(456,'456',NULL,1,'2019-12-21 19:49:28','2019-12-21 19:49:28',40,'AC_PROJECT_CREATE','Project PJ1912-0006 created','2019-12-21 19:49:28','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 created\nProject: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(457,'457',NULL,1,'2019-12-21 19:52:12','2019-12-21 19:52:12',40,'AC_PROJECT_CREATE','Project PJ1912-0007 created','2019-12-21 19:52:12','2021-04-15 10:22:55',12,NULL,12,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0007 created\nProject: PJ1912-0007',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(458,'458',NULL,1,'2019-12-21 19:53:21','2019-12-21 19:53:21',40,'AC_PROJECT_CREATE','Project PJ1912-0008 created','2019-12-21 19:53:21','2021-04-15 10:22:55',12,NULL,13,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 created\nProject: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(459,'459',NULL,1,'2019-12-21 19:53:42','2019-12-21 19:53:42',40,'AC_PROJECT_MODIFY','Project PJ1912-0008 modified','2019-12-21 19:53:42','2021-04-15 10:22:55',12,NULL,13,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 modified\nTask: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(460,'460',NULL,1,'2019-12-21 19:55:23','2019-12-21 19:55:23',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 19:55:23','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(461,'461',NULL,1,'2019-12-21 20:10:21','2019-12-21 20:10:21',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 20:10:21','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(462,'462',NULL,1,'2019-12-11 10:00:00','2019-12-11 10:00:00',5,'AC_RDV','Meeting with all employees','2019-12-21 20:29:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(463,'463',NULL,1,'2019-12-06 00:00:00',NULL,11,'AC_INT','Intervention on customer site','2019-12-21 20:30:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(464,'464',NULL,1,'2019-12-23 14:16:59','2019-12-23 14:16:59',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:16:59','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(465,'465',NULL,1,'2019-12-23 14:17:18','2019-12-23 14:17:18',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:17:18','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(466,'466',NULL,1,'2019-11-23 14:25:00',NULL,50,'AC_OTH','Test','2019-12-23 17:25:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'18/11 17h06 : Message laissé. Me rappeler pour m'en dire plus. 
\r\n
\r\n20/11 10h17 "A rappeler suite au msg laissé le 14/11, dit que c'est urgent"
\r\n12h22 : message laissé. Je lui envoie un sms
\r\n
\r\n"Déclaration de sinistre originale" : constat de ce qui s'est passé.
\r\nElle envoie le chèque de solde dès demain.
\r\n
\r\n3/12 : Elle préfère avoir plus d'infos sur le sinistre pour l'assurance.
\r\nCourrier envoyé le 4/12/19 par mail et par courrier postal
\r\n
\r\n6/12 15h02 : ont obtenu le feu vert de l'assurance.
\r\nOn bloque 16/12 PM à partir de 14h30. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(467,'467',NULL,1,'2020-01-01 14:35:47','2020-01-01 14:35:47',40,'AC_MEMBER_VALIDATE','Adhérent aze aze validé','2020-01-01 14:35:47','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent aze aze validé\nAdhérent: aze aze\nType: Board members',5,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(468,'468',NULL,1,'2020-01-01 14:50:59','2020-01-01 14:50:59',40,'AC_MEMBER_VALIDATE','Adhérent azr azr validé','2020-01-01 14:50:59','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azr azr validé\nAdhérent: azr azr\nType: Board members',6,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(469,'469',NULL,1,'2020-01-01 15:00:16','2020-01-01 15:00:16',40,'AC_MEMBER_VALIDATE','Adhérent azt azt validé','2020-01-01 15:00:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azt azt validé\nAdhérent: azt azt\nType: Board members',7,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(470,'470',NULL,1,'2020-01-01 15:08:20','2020-01-01 15:08:20',40,'AC_MEMBER_VALIDATE','Adhérent azu azu validé','2020-01-01 15:08:20','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azu azu validé\nAdhérent: azu azu\nType: Board members',8,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(471,'471',NULL,1,'2020-01-01 15:27:24','2020-01-01 15:27:24',40,'AC_MEMBER_VALIDATE','Adhérent azi azi validé','2020-01-01 15:27:24','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azi azi validé\nAdhérent: azi azi\nType: Board members',9,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(472,'472',NULL,1,'2020-01-01 15:36:29','2020-01-01 15:36:29',40,'AC_MEMBER_VALIDATE','Adhérent azo azo validé','2020-01-01 15:36:29','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azo azo validé\nAdhérent: azo azo\nType: Board members',10,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(473,'473',NULL,1,'2020-01-01 15:44:25','2020-01-01 15:44:25',40,'AC_MEMBER_VALIDATE','Adhérent azp azp validé','2020-01-01 15:44:25','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azp azp validé\nAdhérent: azp azp\nType: Board members',11,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(478,'478',NULL,1,'2020-01-01 16:52:32','2020-01-01 16:52:32',40,'AC_MEMBER_VALIDATE','Adhérent azq azq validé','2020-01-01 16:52:32','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azq azq validé\nAdhérent: azq azq\nType: Board members',12,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(483,'483',NULL,1,'2020-01-01 17:49:05','2020-01-01 17:49:05',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 17:49:05','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(484,'484',NULL,1,'2020-01-01 17:50:41','2020-01-01 17:50:41',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 17:50:41','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(485,'485',NULL,1,'2020-01-01 17:50:44','2020-01-01 17:50:44',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 17:50:44','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(486,'486',NULL,1,'2020-01-01 17:51:22','2020-01-01 17:51:22',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 17:51:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(487,'487',NULL,1,'2020-01-01 20:17:00','2020-01-01 20:17:00',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:17:00','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(488,'488',NULL,1,'2020-01-01 20:17:46','2020-01-01 20:17:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:17:46','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(489,'489',NULL,1,'2020-01-01 20:17:51','2020-01-01 20:17:51',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:17:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(490,'490',NULL,1,'2020-01-01 20:20:22','2020-01-01 20:20:22',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:20:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(491,'491',NULL,1,'2020-01-01 20:20:31','2020-01-01 20:20:31',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:20:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(492,'492',NULL,1,'2020-01-01 20:21:35','2020-01-01 20:21:35',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 20:21:35','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(493,'493',NULL,1,'2020-01-01 20:21:42','2020-01-01 20:21:42',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:21:42','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(494,'494',NULL,1,'2020-01-01 20:21:55','2020-01-01 20:21:55',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:21:55','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(495,'495',NULL,1,'2020-01-01 20:23:02','2020-01-01 20:23:02',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0007 validated','2020-01-01 20:23:02','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 validated',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(496,'496',NULL,1,'2020-01-01 20:23:17','2020-01-01 20:23:17',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:23:17','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(497,'497',NULL,1,'2020-01-01 20:25:36','2020-01-01 20:25:36',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 20:25:36','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(498,'498',NULL,1,'2020-01-01 20:51:37','2020-01-01 20:51:37',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0002 validated','2020-01-01 20:51:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 validated',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(499,'499',NULL,1,'2020-01-01 20:51:48','2020-01-01 20:51:48',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0002 changed to paid','2020-01-01 20:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 changed to paid',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(500,'500',NULL,1,'2020-01-01 21:02:39','2020-01-01 21:02:39',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:02:39','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(501,'501',NULL,1,'2020-01-01 21:03:01','2020-01-01 21:03:01',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:03:01','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(502,'502',NULL,1,'2020-01-01 21:11:10','2020-01-01 21:11:10',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:11:10','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(503,'503',NULL,1,'2020-01-01 21:20:07','2020-01-01 21:20:07',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:20:07','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(504,'504',NULL,1,'2020-01-01 21:21:28','2020-01-01 21:21:28',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 21:21:28','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(505,'505',NULL,1,'2020-01-01 22:06:30','2020-01-01 22:06:30',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 22:06:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(506,'506',NULL,1,'2020-01-01 23:54:16','2020-01-01 23:54:16',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-01 23:54:16','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(507,'507',NULL,1,'2020-01-02 20:49:34','2020-01-02 20:49:34',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2020-01-02 20:49:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(508,'508',NULL,1,'2020-01-02 23:02:35','2020-01-02 23:02:35',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-02 23:02:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(509,'509',NULL,1,'2020-01-02 23:45:01','2020-01-02 23:45:01',40,'AC_BOM_REOPEN','BOM reopen','2020-01-02 23:45:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(511,'511',NULL,1,'2020-01-02 23:57:42','2020-01-02 23:57:42',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-02 23:57:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(512,'512',NULL,1,'2020-01-03 13:33:54','2020-01-03 13:33:54',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-03 13:33:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(513,'513',NULL,1,'2020-01-03 13:34:11','2020-01-03 13:34:11',40,'AC_BOM_VALIDATE','BOM validated','2020-01-03 13:34:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(514,'514',NULL,1,'2020-01-03 13:35:45','2020-01-03 13:35:45',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 13:35:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(515,'515',NULL,1,'2020-01-03 14:10:41','2020-01-03 14:10:41',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 14:10:41','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(516,'516',NULL,1,'2020-01-06 00:39:58','2020-01-06 00:39:58',40,'AC_COMPANY_CREATE','Patient créé','2020-01-06 00:39:58','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPatient créé',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(517,'517',NULL,1,'2020-01-06 00:49:06','2020-01-06 00:49:06',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-06 00:49:06','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(518,'518',NULL,1,'2020-01-06 06:50:05','2020-01-06 06:50:05',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-06 06:50:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(519,'519',NULL,1,'2020-01-06 20:52:28','2020-01-06 20:52:28',40,'AC_OTH_AUTO','Consultation 2 recorded (Patient)','2020-01-06 20:52:28','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (Patient)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(520,'520',NULL,1,'2020-01-07 20:25:02','2020-01-07 20:25:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 20:25:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(521,'521',NULL,1,'2020-01-07 21:12:37','2020-01-07 21:12:37',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:12:37','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(522,'522',NULL,1,'2020-01-07 21:13:00','2020-01-07 21:13:00',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:00','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(523,'523',NULL,1,'2020-01-07 21:13:49','2020-01-07 21:13:49',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:49','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(524,'524',NULL,1,'2020-01-07 21:46:58','2020-01-07 21:46:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:46:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(525,'525',NULL,1,'2020-01-07 21:52:34','2020-01-07 21:52:34',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:52:34','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(526,'526',NULL,1,'2020-01-07 21:53:44','2020-01-07 21:53:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(527,'527',NULL,1,'2020-01-07 21:53:58','2020-01-07 21:53:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(528,'528',NULL,1,'2020-01-07 21:54:12','2020-01-07 21:54:12',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:54:12','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(529,'529',NULL,1,'2020-01-07 22:00:55','2020-01-07 22:00:55',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:00:55','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(530,'530',NULL,1,'2020-01-07 22:39:52','2020-01-07 22:39:52',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:39:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(531,'531',NULL,1,'2020-01-07 23:09:04','2020-01-07 23:09:04',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:09:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(532,'532',NULL,1,'2020-01-07 23:39:09','2020-01-07 23:39:09',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:39:09','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(533,'533',NULL,1,'2020-01-07 23:43:06','2020-01-07 23:43:06',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:43:06','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(534,'534',NULL,1,'2020-01-07 23:50:40','2020-01-07 23:50:40',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:50:40','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(535,'535',NULL,1,'2020-01-07 23:51:27','2020-01-07 23:51:27',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:51:27','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(536,'536',NULL,1,'2020-01-08 00:25:23','2020-01-08 00:25:23',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:23','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(537,'537',NULL,1,'2020-01-08 00:25:43','2020-01-08 00:25:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(538,'538',NULL,1,'2020-01-08 00:29:24','2020-01-08 00:29:24',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:24','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(539,'539',NULL,1,'2020-01-08 00:29:43','2020-01-08 00:29:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(540,'540',NULL,1,'2020-01-08 01:09:15','2020-01-08 01:09:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:09:15','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(541,'541',NULL,1,'2020-01-08 01:15:02','2020-01-08 01:15:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:15:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(542,'542',NULL,1,'2020-01-08 01:17:16','2020-01-08 01:17:16',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:17:16','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(543,'543',NULL,1,'2020-01-08 05:31:44','2020-01-08 05:31:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 05:31:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(544,'544',NULL,1,'2020-01-08 05:39:46','2020-01-08 05:39:46',40,'AC_BOM_CLOSE','BOM disabled','2020-01-08 05:39:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(545,'545',NULL,1,'2020-01-08 05:39:50','2020-01-08 05:39:50',40,'AC_BOM_REOPEN','BOM reopen','2020-01-08 05:39:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(546,'546',NULL,1,'2020-01-08 06:06:50','2020-01-08 06:06:50',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 06:06:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(547,'547',NULL,1,'2020-01-08 19:34:53','2020-01-08 19:34:53',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:34:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(548,'548',NULL,1,'2020-01-08 19:40:27','2020-01-08 19:40:27',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-08 19:40:27','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(549,'549',NULL,1,'2020-01-08 19:40:46','2020-01-08 19:40:46',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-08 19:40:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(550,'550',NULL,1,'2020-01-08 19:40:59','2020-01-08 19:40:59',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:40:59','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(551,'551',NULL,1,'2020-01-08 19:41:11','2020-01-08 19:41:11',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:41:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(552,'552',NULL,1,'2020-01-08 19:41:49','2020-01-08 19:41:49',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:41:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(553,'553',NULL,1,'2020-01-08 20:12:55','2020-01-08 20:12:55',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-08 20:12:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(554,'554',NULL,1,'2020-01-08 20:21:22','2020-01-08 20:21:22',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:21:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(555,'555',NULL,1,'2020-01-08 20:41:19','2020-01-08 20:41:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:41:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(556,'556',NULL,1,'2020-01-08 22:25:19','2020-01-08 22:25:19',40,'AC_BOM_DELETE','BOM deleted','2020-01-08 22:25:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM deleted',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(557,'557',NULL,1,'2020-01-13 15:11:07','2020-01-13 15:11:07',40,'AC_MO_DELETE','MO_DELETEInDolibarr','2020-01-13 15:11:07','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO_DELETEInDolibarr',25,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(558,'558',NULL,1,'2020-01-13 15:11:54','2020-01-13 15:11:54',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-13 15:11:54','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(559,'559',NULL,1,'2020-01-13 15:13:19','2020-01-13 15:13:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:13:19','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(560,'560',NULL,1,'2020-01-13 15:14:15','2020-01-13 15:14:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:14:15','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(561,'561',NULL,1,'2020-01-13 15:29:30','2020-01-13 15:29:30',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:29:30','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(562,'562',NULL,1,'2020-01-13 17:19:24','2020-01-13 17:19:24',40,'AC_COMPANY_CREATE','Third party Italo created','2020-01-13 17:19:24','2021-04-15 10:22:55',12,NULL,NULL,30,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nThird party Italo created',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(563,'563',NULL,1,'2020-01-15 16:27:15','2020-01-15 16:27:15',40,'AC_PROJECT_MODIFY','Project RMLL modified','2020-01-15 16:27:15','2021-04-15 10:22:55',12,NULL,5,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject RMLL modified\nTask: RMLL',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(564,'564',NULL,1,'2020-01-15 16:40:50','2020-01-15 16:40:50',40,'AC_PROJECT_MODIFY','Project PROJINDIAN modified','2020-01-15 16:40:50','2021-04-15 10:22:55',12,NULL,3,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PROJINDIAN modified\nTask: PROJINDIAN',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(565,'565',NULL,1,'2020-01-16 02:22:16','2020-01-16 02:22:16',40,'AC_BILL_VALIDATE','Invoice AC2001-0001 validated','2020-01-16 02:22:16','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 validated',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(566,'566',NULL,1,'2020-01-16 02:22:24','2020-01-16 02:22:24',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0001 go back to draft status','2020-01-16 02:22:24','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 go back to draft status',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(567,'567',NULL,1,'2020-01-16 02:33:27','2020-01-16 02:33:27',40,'AC_BILL_VALIDATE','Invoice AC2001-0002 validated','2020-01-16 02:33:27','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 validated',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(568,'568',NULL,1,'2020-01-16 02:36:48','2020-01-16 02:36:48',40,'AC_BILL_PAYED','Invoice AC2001-0002 changed to paid','2020-01-16 02:36:48','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 changed to paid',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(569,'569',NULL,1,'2020-01-16 02:42:12','2020-01-16 02:42:12',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0020 classified billed','2020-01-16 02:42:12','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified billed',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(570,'570',NULL,1,'2020-01-16 02:42:17','2020-01-16 02:42:17',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:17','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(571,'571',NULL,1,'2020-01-16 02:42:56','2020-01-16 02:42:56',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:56','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(572,'572',NULL,1,'2020-01-16 18:05:43','2020-01-16 18:05:43',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-16 18:05:43','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(573,'573',NULL,1,'2020-01-17 14:54:18','2020-01-17 14:54:18',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 14:54:18','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(574,'574',NULL,1,'2020-01-17 15:22:28','2020-01-17 15:22:28',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 15:22:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(575,'575',NULL,1,'2020-01-19 14:22:27','2020-01-19 14:22:27',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:22:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(576,'576',NULL,1,'2020-01-19 14:22:34','2020-01-19 14:22:34',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:22:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(577,'577',NULL,1,'2020-01-19 14:24:22','2020-01-19 14:24:22',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:24:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(578,'578',NULL,1,'2020-01-19 14:24:27','2020-01-19 14:24:27',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:24:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(579,'579',NULL,1,'2020-01-19 14:51:43','2020-01-19 14:51:43',40,'AC_BILL_VALIDATE','Invoice AC2001-0003 validated','2020-01-19 14:51:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 validated',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(580,'580',NULL,1,'2020-01-19 14:51:48','2020-01-19 14:51:48',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0003 go back to draft status','2020-01-19 14:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 go back to draft status',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(581,'581',NULL,1,'2020-01-19 15:01:26','2020-01-19 15:01:26',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:01:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(582,'582',NULL,1,'2020-01-19 15:04:37','2020-01-19 15:04:37',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:04:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(583,'583',NULL,1,'2020-01-19 15:04:53','2020-01-19 15:04:53',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:04:53','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(584,'584',NULL,1,'2020-01-19 15:09:14','2020-01-19 15:09:14',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:09:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(585,'585',NULL,1,'2020-01-19 15:13:07','2020-01-19 15:13:07',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:13:07','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(586,'586',NULL,1,'2020-01-20 12:20:11','2020-01-20 12:20:11',40,'AC_ORDER_SUPPLIER_CREATE','Order (PROV14) created','2020-01-20 12:20:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder (PROV14) created',14,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(588,'588',NULL,1,'2020-01-21 01:02:14','2020-01-21 01:02:14',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 2 for member Vick Smith added','2020-01-21 01:02:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 2 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2013 - 07/17/2014',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(589,'589',NULL,1,'2020-01-21 10:22:37','2020-01-21 10:22:37',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 3 for member Vick Smith added','2020-01-21 10:22:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 3 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(590,'590',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 4 for member Vick Smith added','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 4 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(591,'591',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_VALIDATE','Invoice FA1707-0026 validated','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 validated',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(592,'592',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_PAYED','Invoice FA1707-0026 changed to paid','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 changed to paid',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(593,'593',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 5 for member Vick Smith added','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 5 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2018 - 07/17/2019',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(594,'594',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_VALIDATE','Invoice FA1807-0027 validated','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 validated',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(595,'595',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_PAYED','Invoice FA1807-0027 changed to paid','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 changed to paid',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(596,'596',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 6 for member Vick Smith added','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 6 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2019 - 07/17/2020',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(597,'597',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_VALIDATE','Invoice FA1907-0028 validated','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 validated',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(598,'598',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_PAYED','Invoice FA1907-0028 changed to paid','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 changed to paid',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(599,'599',NULL,1,'2020-01-21 10:30:27','2020-01-21 10:30:27',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2020-01-21 10:30:27','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(600,'600',NULL,1,'2020-01-21 10:30:36','2020-01-21 10:30:36',40,'AC_MEMBER_MODIFY','Member doe john modified','2020-01-21 10:30:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(601,'601',NULL,1,'2020-01-21 10:30:42','2020-01-21 10:30:42',40,'AC_MEMBER_MODIFY','Member smith smith modified','2020-01-21 10:30:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(602,'602',NULL,1,'2020-01-21 10:30:57','2020-01-21 10:30:57',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2020-01-21 10:30:57','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(603,'603',NULL,1,'2020-06-12 10:00:00','2020-06-12 11:30:00',5,'AC_RDV','Meetings','2020-06-12 19:26:44','2021-04-15 10:22:55',12,NULL,3,NULL,NULL,0,12,1,NULL,0,0,-1,'Room 24',5400,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(604,'604',NULL,1,'2020-06-01 10:00:00','2020-06-01 10:27:00',1,'AC_TEL','Called Mr X','2020-06-12 19:28:13','2021-04-15 10:22:55',12,12,3,NULL,NULL,0,12,1,NULL,0,0,100,NULL,1620,NULL,'Customer ask another call.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(605,'605',NULL,1,'2020-04-15 05:00:00','2020-04-15 06:00:00',5,'AC_RDV','Meet A2','2021-04-15 07:36:31','2021-04-15 10:36:31',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(606,'606',NULL,1,'2021-04-15 08:38:02','2021-04-15 08:38:02',40,'AC_PRODUCT_CREATE','Product PRODSER created','2021-04-15 08:38:02','2021-04-15 11:38:02',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PRODSER created',31,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(607,'607',NULL,1,'2022-02-07 13:54:11','2022-02-07 13:54:11',40,'AC_BOM_VALIDATE','BOM validated','2022-02-07 13:54:11','2022-02-07 13:54:11',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0); +INSERT INTO `llx_actioncomm` VALUES (1,'1',NULL,1,'2012-07-08 14:21:44','2012-07-08 14:21:44',50,NULL,'Company AAA and Co added into Dolibarr','2012-07-08 14:21:44','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company AAA and Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(2,'2',NULL,1,'2012-07-08 14:23:48','2012-07-08 14:23:48',50,NULL,'Company Belin SARL added into Dolibarr','2012-07-08 14:23:48','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Belin SARL added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(3,'3',NULL,1,'2012-07-08 22:42:12','2012-07-08 22:42:12',50,NULL,'Company Spanish Comp added into Dolibarr','2012-07-08 22:42:12','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Spanish Comp added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(4,'4',NULL,1,'2012-07-08 22:48:18','2012-07-08 22:48:18',50,NULL,'Company Prospector Vaalen added into Dolibarr','2012-07-08 22:48:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Prospector Vaalen added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(5,'5',NULL,1,'2012-07-08 23:22:57','2012-07-08 23:22:57',50,NULL,'Company NoCountry Co added into Dolibarr','2012-07-08 23:22:57','2021-04-15 10:22:55',1,NULL,NULL,5,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company NoCountry Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(6,'6',NULL,1,'2012-07-09 00:15:09','2012-07-09 00:15:09',50,NULL,'Company Swiss customer added into Dolibarr','2012-07-09 00:15:09','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Swiss customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(7,'7',NULL,1,'2012-07-09 01:24:26','2012-07-09 01:24:26',50,NULL,'Company Generic customer added into Dolibarr','2012-07-09 01:24:26','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Generic customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(8,'8',NULL,1,'2012-07-10 14:54:27','2012-07-10 14:54:27',50,NULL,'Société Client salon ajoutée dans Dolibarr','2012-07-10 14:54:27','2021-04-15 10:22:55',1,NULL,NULL,8,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(9,'9',NULL,1,'2012-07-10 14:54:44','2012-07-10 14:54:44',50,NULL,'Société Client salon invidivdu ajoutée dans Doliba','2012-07-10 14:54:44','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon invidivdu ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(10,'10',NULL,1,'2012-07-10 14:56:10','2012-07-10 14:56:10',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:56:10','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(11,'11',NULL,1,'2012-07-10 14:58:53','2012-07-10 14:58:53',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:58:53','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(12,'12',NULL,1,'2012-07-10 15:00:55','2012-07-10 15:00:55',50,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr','2012-07-10 15:00:55','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(13,'13',NULL,1,'2012-07-10 15:13:08','2012-07-10 15:13:08',50,NULL,'Société Smith Vick ajoutée dans Dolibarr','2012-07-10 15:13:08','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Smith Vick ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(14,'14',NULL,1,'2012-07-10 15:21:00','2012-07-10 16:21:00',5,NULL,'RDV avec mon chef','2012-07-10 15:21:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(15,'15',NULL,1,'2012-07-10 18:18:16','2012-07-10 18:18:16',50,NULL,'Contrat CONTRAT1 validé dans Dolibarr','2012-07-10 18:18:16','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Contrat CONTRAT1 validé dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(16,'16',NULL,1,'2012-07-10 18:35:57','2012-07-10 18:35:57',50,NULL,'Société Mon client ajoutée dans Dolibarr','2012-07-10 18:35:57','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Mon client ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(17,'17',NULL,1,'2012-07-11 16:18:08','2012-07-11 16:18:08',50,NULL,'Société Dupont Alain ajoutée dans Dolibarr','2012-07-11 16:18:08','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Dupont Alain ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(18,'18',NULL,1,'2012-07-11 17:11:00','2012-07-11 17:17:00',5,NULL,'Rendez-vous','2012-07-11 17:11:22','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'gfgdfgdf',360,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(19,'19',NULL,1,'2012-07-11 17:13:20','2012-07-11 17:13:20',50,NULL,'Société Vendeur de chips ajoutée dans Dolibarr','2012-07-11 17:13:20','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Vendeur de chips ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(20,'20',NULL,1,'2012-07-11 17:15:42','2012-07-11 17:15:42',50,NULL,'Commande CF1007-0001 validée','2012-07-11 17:15:42','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0001 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(21,'21',NULL,1,'2012-07-11 18:47:33','2012-07-11 18:47:33',50,NULL,'Commande CF1007-0002 validée','2012-07-11 18:47:33','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0002 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(22,'22',NULL,1,'2012-07-18 11:36:18','2012-07-18 11:36:18',50,NULL,'Proposition PR1007-0003 validée','2012-07-18 11:36:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Proposition PR1007-0003 validée\nAuteur: admin',3,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(23,'23',NULL,1,'2013-07-18 20:49:58','2013-07-18 20:49:58',50,NULL,'Invoice FA1007-0002 validated in Dolibarr','2013-07-18 20:49:58','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 validated in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(24,'24',NULL,1,'2013-07-28 01:37:00',NULL,1,NULL,'Phone call','2013-07-28 01:37:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,2,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(25,'25',NULL,1,'2013-08-01 02:31:24','2013-08-01 02:31:24',50,NULL,'Company mmm added into Dolibarr','2013-08-01 02:31:24','2021-04-15 10:22:55',1,NULL,NULL,15,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company mmm added into Dolibarr\nAuthor: admin',15,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(26,'26',NULL,1,'2013-08-01 02:31:43','2013-08-01 02:31:43',50,NULL,'Company ppp added into Dolibarr','2013-08-01 02:31:43','2021-04-15 10:22:55',1,NULL,NULL,16,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ppp added into Dolibarr\nAuthor: admin',16,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(27,'27',NULL,1,'2013-08-01 02:41:26','2013-08-01 02:41:26',50,NULL,'Company aaa added into Dolibarr','2013-08-01 02:41:26','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company aaa added into Dolibarr\nAuthor: admin',17,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(28,'28',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 validated in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(29,'29',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 changed to paid in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(30,'30',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 validated in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(31,'31',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 changed to paid in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(38,'38',NULL,1,'2013-08-08 02:41:55','2013-08-08 02:41:55',50,NULL,'Invoice FA1108-0005 validated in Dolibarr','2013-08-08 02:41:55','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 validated in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(40,'40',NULL,1,'2013-08-08 02:53:40','2013-08-08 02:53:40',50,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr','2013-08-08 02:53:40','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(41,'41',NULL,1,'2013-08-08 02:54:05','2013-08-08 02:54:05',50,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr','2013-08-08 02:54:05','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(42,'42',NULL,1,'2013-08-08 02:55:04','2013-08-08 02:55:04',50,NULL,'Invoice FA1107-0006 validated in Dolibarr','2013-08-08 02:55:04','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 validated in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(43,'43',NULL,1,'2013-08-08 02:55:26','2013-08-08 02:55:26',50,NULL,'Invoice FA1108-0007 validated in Dolibarr','2013-08-08 02:55:26','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0007 validated in Dolibarr\nAuthor: admin',9,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(44,'44',NULL,1,'2013-08-08 02:55:58','2013-08-08 02:55:58',50,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr','2013-08-08 02:55:58','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(45,'45',NULL,1,'2013-08-08 03:04:22','2013-08-08 03:04:22',50,NULL,'Order CO1108-0001 validated','2013-08-08 03:04:22','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1108-0001 validated\nAuthor: admin',5,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(46,'46',NULL,1,'2013-08-08 13:59:09','2013-08-08 13:59:09',50,NULL,'Order CO1107-0002 validated','2013-08-08 13:59:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1107-0002 validated\nAuthor: admin',1,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(47,'47',NULL,1,'2013-08-08 14:24:18','2013-08-08 14:24:18',50,NULL,'Proposal PR1007-0001 validated','2013-08-08 14:24:18','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1007-0001 validated\nAuthor: admin',1,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(48,'48',NULL,1,'2013-08-08 14:24:24','2013-08-08 14:24:24',50,NULL,'Proposal PR1108-0004 validated','2013-08-08 14:24:24','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1108-0004 validated\nAuthor: admin',4,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(49,'49',NULL,1,'2013-08-08 15:04:37','2013-08-08 15:04:37',50,NULL,'Order CF1108-0003 validated','2013-08-08 15:04:37','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CF1108-0003 validated\nAuthor: admin',6,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(50,'50',NULL,1,'2014-12-08 17:56:47','2014-12-08 17:56:47',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:56:47','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(51,'51',NULL,1,'2014-12-08 17:57:11','2014-12-08 17:57:11',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:57:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(52,'52',NULL,1,'2014-12-08 17:58:27','2014-12-08 17:58:27',40,NULL,'Facture FA1212-0008 validée dans Dolibarr','2014-12-08 17:58:27','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0008 validée dans Dolibarr\nAuteur: admin',11,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(53,'53',NULL,1,'2014-12-08 18:20:49','2014-12-08 18:20:49',40,NULL,'Facture AV1212-0002 validée dans Dolibarr','2014-12-08 18:20:49','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 validée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(54,'54',NULL,1,'2014-12-09 18:35:07','2014-12-09 18:35:07',40,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr','2014-12-09 18:35:07','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(55,'55',NULL,1,'2014-12-09 20:14:42','2014-12-09 20:14:42',40,NULL,'Société doe john ajoutée dans Dolibarr','2014-12-09 20:14:42','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société doe john ajoutée dans Dolibarr\nAuteur: admin',18,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(56,'56',NULL,1,'2014-12-12 18:54:19','2014-12-12 18:54:19',40,NULL,'Facture FA1212-0009 validée dans Dolibarr','2014-12-12 18:54:19','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0009 validée dans Dolibarr\nAuteur: admin',55,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(121,'121',NULL,1,'2014-12-06 10:00:00',NULL,50,NULL,'aaab','2014-12-21 17:48:08','2021-04-15 10:22:55',3,1,NULL,NULL,NULL,0,3,NULL,NULL,1,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(122,'122',NULL,1,'2014-12-21 18:09:52','2014-12-21 18:09:52',40,NULL,'Facture client FA1007-0001 envoyée par EMail','2014-12-21 18:09:52','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Mail envoyé par Firstname SuperAdminName à laurent@mycompany.fr.\nSujet du mail: Envoi facture FA1007-0001\nCorps du mail:\nVeuillez trouver ci-joint la facture FA1007-0001\r\n\r\nVous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement via Paypal\r\n\r\nhttp://localhost/dolibarrnew/public/paypal/newpayment.php?source=invoice&ref=FA1007-0001&securekey=50c82fab36bb3b6aa83e2a50691803b2\r\n\r\nCordialement',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(123,'123',NULL,1,'2015-01-06 13:13:57','2015-01-06 13:13:57',40,NULL,'Facture 16 validée dans Dolibarr','2015-01-06 13:13:57','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture 16 validée dans Dolibarr\nAuteur: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(124,'124',NULL,1,'2015-01-12 12:23:05','2015-01-12 12:23:05',40,NULL,'Patient aaa ajouté','2015-01-12 12:23:05','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient aaa ajouté\nAuteur: admin',19,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(125,'125',NULL,1,'2015-01-12 12:52:20','2015-01-12 12:52:20',40,NULL,'Patient pppoo ajouté','2015-01-12 12:52:20','2021-04-15 10:22:55',1,NULL,NULL,20,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pppoo ajouté\nAuteur: admin',20,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(127,'127',NULL,1,'2015-01-19 18:22:48','2015-01-19 18:22:48',40,NULL,'Facture FS1301-0001 validée dans Dolibarr','2015-01-19 18:22:48','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0001 validée dans Dolibarr\nAuteur: admin',148,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(128,'128',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 validée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 validée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(129,'129',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(130,'130',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 validée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 validée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(131,'131',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(132,'132',NULL,1,'2015-01-23 15:07:54','2015-01-23 15:07:54',50,NULL,'Consultation 24 saisie (aaa)','2015-01-23 15:07:54','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Consultation 24 saisie (aaa)\nAuteur: admin',24,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(133,'133',NULL,1,'2015-01-23 16:56:58','2015-01-23 16:56:58',40,NULL,'Patient pa ajouté','2015-01-23 16:56:58','2021-04-15 10:22:55',1,NULL,NULL,21,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pa ajouté\nAuteur: admin',21,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(134,'134',NULL,1,'2015-01-23 17:34:00',NULL,50,NULL,'bbcv','2015-01-23 17:35:21','2021-04-15 10:22:55',1,NULL,1,2,NULL,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(135,'135',NULL,1,'2015-02-12 15:54:00','2015-02-12 15:54:00',40,NULL,'Facture FA1212-0011 validée dans Dolibarr','2015-02-12 15:54:37','2021-04-15 10:22:55',1,1,NULL,7,NULL,0,1,NULL,1,0,0,50,NULL,NULL,NULL,'Facture FA1212-0011 validée dans Dolibarr
\r\nAuteur: admin',13,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(136,'136',NULL,1,'2015-02-12 17:06:51','2015-02-12 17:06:51',40,NULL,'Commande CO1107-0003 validée','2015-02-12 17:06:51','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0003 validée\nAuteur: admin',2,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(137,'137',NULL,1,'2015-02-17 16:22:10','2015-02-17 16:22:10',40,NULL,'Proposition PR1302-0009 validée','2015-02-17 16:22:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0009 validée\nAuteur: admin',9,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(138,'138',NULL,1,'2015-02-17 16:27:00','2015-02-17 16:27:00',40,NULL,'Facture FA1302-0012 validée dans Dolibarr','2015-02-17 16:27:00','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1302-0012 validée dans Dolibarr\nAuteur: admin',152,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(139,'139',NULL,1,'2015-02-17 16:27:29','2015-02-17 16:27:29',40,NULL,'Proposition PR1302-0010 validée','2015-02-17 16:27:29','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0010 validée\nAuteur: admin',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(140,'140',NULL,1,'2015-02-17 18:27:56','2015-02-17 18:27:56',40,NULL,'Commande CO1107-0004 validée','2015-02-17 18:27:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0004 validée\nAuteur: admin',3,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(141,'141',NULL,1,'2015-02-17 18:38:14','2015-02-17 18:38:14',40,NULL,'Commande CO1302-0005 validée','2015-02-17 18:38:14','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1302-0005 validée\nAuteur: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(142,'142',NULL,1,'2015-02-26 22:57:50','2015-02-26 22:57:50',40,NULL,'Company pppp added into Dolibarr','2015-02-26 22:57:50','2021-04-15 10:22:55',1,NULL,NULL,22,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company pppp added into Dolibarr\nAuthor: admin',22,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(143,'143',NULL,1,'2015-02-26 22:58:13','2015-02-26 22:58:13',40,NULL,'Company ttttt added into Dolibarr','2015-02-26 22:58:13','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ttttt added into Dolibarr\nAuthor: admin',23,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(144,'144',NULL,1,'2015-02-27 10:00:00','2015-02-27 19:20:00',5,NULL,'Rendez-vous','2015-02-27 19:20:53','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,'',33600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(145,'145',NULL,1,'2015-02-27 19:28:00',NULL,2,NULL,'fdsfsd','2015-02-27 19:28:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(146,'146',NULL,1,'2015-03-06 10:05:07','2015-03-06 10:05:07',40,NULL,'Contrat (PROV3) validé dans Dolibarr','2015-03-06 10:05:07','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Contrat (PROV3) validé dans Dolibarr\nAuteur: admin',3,'contract',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(147,'147',NULL,1,'2015-03-06 16:43:37','2015-03-06 16:43:37',40,NULL,'Facture FA1307-0013 validée dans Dolibarr','2015-03-06 16:43:37','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée dans Dolibarr\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(148,'148',NULL,1,'2015-03-06 16:44:12','2015-03-06 16:44:12',40,NULL,'Facture FA1407-0014 validée dans Dolibarr','2015-03-06 16:44:12','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1407-0014 validée dans Dolibarr\nAuteur: admin',159,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(149,'149',NULL,1,'2015-03-06 16:47:48','2015-03-06 16:47:48',40,NULL,'Facture FA1507-0015 validée dans Dolibarr','2015-03-06 16:47:48','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1507-0015 validée dans Dolibarr\nAuteur: admin',160,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(150,'150',NULL,1,'2015-03-06 16:48:16','2015-03-06 16:48:16',40,NULL,'Facture FA1607-0016 validée dans Dolibarr','2015-03-06 16:48:16','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1607-0016 validée dans Dolibarr\nAuteur: admin',161,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(151,'151',NULL,1,'2015-03-06 17:13:59','2015-03-06 17:13:59',40,NULL,'Société smith smith ajoutée dans Dolibarr','2015-03-06 17:13:59','2021-04-15 10:22:55',1,NULL,NULL,24,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société smith smith ajoutée dans Dolibarr\nAuteur: admin',24,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(152,'152',NULL,1,'2015-03-08 10:02:22','2015-03-08 10:02:22',40,NULL,'Proposition (PROV12) validée dans Dolibarr','2015-03-08 10:02:22','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition (PROV12) validée dans Dolibarr\nAuteur: admin',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(203,'203',NULL,1,'2015-03-09 19:39:27','2015-03-09 19:39:27',40,'AC_ORDER_SUPPLIER_VALIDATE','Commande CF1303-0004 validée','2015-03-09 19:39:27','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CF1303-0004 validée\nAuteur: admin',13,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(204,'204',NULL,1,'2015-03-10 15:47:37','2015-03-10 15:47:37',40,'AC_COMPANY_CREATE','Patient créé','2015-03-10 15:47:37','2021-04-15 10:22:55',1,NULL,NULL,25,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient créé\nAuteur: admin',25,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(205,'205',NULL,1,'2015-03-10 15:57:32','2015-03-10 15:57:32',40,'AC_COMPANY_CREATE','Tiers créé','2015-03-10 15:57:32','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Tiers créé\nAuteur: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(206,'206',NULL,1,'2015-03-10 15:58:28','2015-03-10 15:58:28',40,'AC_BILL_VALIDATE','Facture FA1303-0017 validée','2015-03-10 15:58:28','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0017 validée\nAuteur: admin',208,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(207,'207',NULL,1,'2015-03-19 09:38:10','2015-03-19 09:38:10',40,'AC_BILL_VALIDATE','Facture FA1303-0018 validée','2015-03-19 09:38:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0018 validée\nAuteur: admin',209,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(208,'208',NULL,1,'2015-03-20 14:30:11','2015-03-20 14:30:11',40,'AC_BILL_VALIDATE','Facture FA1107-0019 validée','2015-03-20 14:30:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1107-0019 validée\nAuteur: admin',210,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(209,'209',NULL,1,'2015-03-22 09:40:25','2015-03-22 09:40:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-22 09:40:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(210,'210',NULL,1,'2015-03-23 17:16:25','2015-03-23 17:16:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-23 17:16:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(211,'211',NULL,1,'2015-03-23 18:08:27','2015-03-23 18:08:27',40,'AC_BILL_VALIDATE','Facture FA1307-0013 validée','2015-03-23 18:08:27','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(212,'212',NULL,1,'2015-03-24 15:54:00','2015-03-24 15:54:00',40,'AC_BILL_VALIDATE','Facture FA1212-0021 validée','2015-03-24 15:54:00','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0021 validée\nAuteur: admin',32,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(213,'213',NULL,1,'2015-11-07 01:02:39','2015-11-07 01:02:39',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:02:39','2021-04-15 10:22:55',1,NULL,NULL,27,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',27,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(214,'214',NULL,1,'2015-11-07 01:05:22','2015-11-07 01:05:22',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:05:22','2021-04-15 10:22:55',1,NULL,NULL,28,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',28,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(215,'215',NULL,1,'2015-11-07 01:07:07','2015-11-07 01:07:07',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:07','2021-04-15 10:22:55',1,NULL,NULL,29,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',29,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(216,'216',NULL,1,'2015-11-07 01:07:58','2015-11-07 01:07:58',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:58','2021-04-15 10:22:55',1,NULL,NULL,30,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',30,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(217,'217',NULL,1,'2015-11-07 01:10:09','2015-11-07 01:10:09',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:10:09','2021-04-15 10:22:55',1,NULL,NULL,31,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',31,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(218,'218',NULL,1,'2015-11-07 01:15:57','2015-11-07 01:15:57',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:15:57','2021-04-15 10:22:55',1,NULL,NULL,32,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',32,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(219,'219',NULL,1,'2015-11-07 01:16:51','2015-11-07 01:16:51',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:16:51','2021-04-15 10:22:55',1,NULL,NULL,33,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',33,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(220,'220',NULL,1,'2016-03-02 17:24:04','2016-03-02 17:24:04',40,'AC_BILL_VALIDATE','Invoice FA1302-0022 validated','2016-03-02 17:24:04','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1302-0022 validated\nAuthor: admin',157,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(221,'221',NULL,1,'2016-03-02 17:24:28','2016-03-02 17:24:28',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 17:24:28','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(222,'222',NULL,1,'2016-03-05 10:00:00','2016-03-05 10:00:00',5,NULL,'RDV John','2016-03-02 19:54:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,NULL,NULL,NULL,'gfdgdfgdf',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(223,'223',NULL,1,'2016-03-13 10:00:00','2016-03-17 00:00:00',50,NULL,'Congress','2016-03-02 19:55:11','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,'',309600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(224,'224',NULL,1,'2016-03-14 10:00:00',NULL,1,NULL,'Call john','2016-03-02 19:55:56','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,0,'',NULL,NULL,'tttt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(225,'225',NULL,1,'2016-03-02 20:11:31','2016-03-02 20:11:31',40,'AC_BILL_UNVALIDATE','Invoice FA1303-0020 go back to draft status','2016-03-02 20:11:31','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 go back to draft status\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(226,'226',NULL,1,'2016-03-02 20:13:39','2016-03-02 20:13:39',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 20:13:39','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(227,'227',NULL,1,'2016-03-03 19:20:10','2016-03-03 19:20:10',40,'AC_BILL_VALIDATE','Invoice FA1212-0023 validated','2016-03-03 19:20:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 validated\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(228,'228',NULL,1,'2016-03-03 19:20:25','2016-03-03 19:20:25',40,'AC_BILL_CANCEL','Invoice FA1212-0023 canceled in Dolibarr','2016-03-03 19:20:25','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 canceled in Dolibarr\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(229,'229',NULL,1,'2016-03-03 19:20:56','2016-03-03 19:20:56',40,'AC_BILL_VALIDATE','Invoice AV1403-0003 validated','2016-03-03 19:20:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 validated\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(230,'230',NULL,1,'2016-03-03 19:21:29','2016-03-03 19:21:29',40,'AC_BILL_UNVALIDATE','Invoice AV1403-0003 go back to draft status','2016-03-03 19:21:29','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 go back to draft status\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(231,'231',NULL,1,'2016-03-03 19:22:16','2016-03-03 19:22:16',40,'AC_BILL_VALIDATE','Invoice AV1303-0003 validated','2016-03-03 19:22:16','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1303-0003 validated\nAuthor: admin',213,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(232,'232',NULL,1,'2018-01-22 18:54:39','2018-01-22 18:54:39',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:39','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(233,'233',NULL,1,'2018-01-22 18:54:46','2018-01-22 18:54:46',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:46','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(234,'234',NULL,1,'2018-07-05 10:00:00','2018-07-05 11:19:00',5,'AC_RDV','Meeting with my boss','2018-07-31 18:19:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',4740,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(235,'235',NULL,1,'2018-07-13 00:00:00','2018-07-14 23:59:59',50,'AC_OTH','Trip at Las Vegas','2018-07-31 18:20:36','2021-04-15 10:22:55',12,NULL,4,NULL,2,0,12,1,NULL,0,1,-1,'',172799,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(236,'236',NULL,1,'2018-07-29 10:00:00',NULL,4,'AC_EMAIL','Remind to send an email','2018-07-31 18:21:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,4,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(237,'237',NULL,1,'2018-07-01 10:00:00',NULL,1,'AC_TEL','Phone call with Mr Vaalen','2018-07-31 18:22:04','2021-04-15 10:22:55',12,NULL,6,4,NULL,0,13,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(238,'238',NULL,1,'2018-08-02 10:00:00','2018-08-02 12:00:00',5,'AC_RDV','Meeting on radium','2018-08-01 01:15:50','2021-04-15 10:22:55',12,NULL,8,10,10,0,12,1,NULL,0,0,-1,'',7200,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(239,'239',NULL,1,'2017-01-29 21:49:33','2017-01-29 21:49:33',40,'AC_OTH_AUTO','Proposal PR1302-0007 validated','2017-01-29 21:49:33','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1302-0007 validated\nAuthor: admin',7,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(240,'240',NULL,1,'2017-01-31 20:52:00',NULL,1,'AC_TEL','Call the boss','2017-01-31 20:52:10','2021-04-15 10:22:55',12,12,6,NULL,NULL,0,12,1,NULL,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(242,'242',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 validated','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 validated\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(243,'243',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 approved','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 approved\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(245,'245',NULL,1,'2017-02-01 18:52:32','2017-02-01 18:52:32',40,'AC_OTH_AUTO','Supplier order CF1007-0001 submited','2017-02-01 18:52:32','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 submited\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(249,'249',NULL,1,'2017-02-01 18:54:01','2017-02-01 18:54:01',40,'AC_OTH_AUTO','Supplier order CF1007-0001 received','2017-02-01 18:54:01','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 received \nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(250,'250',NULL,1,'2017-02-01 18:54:42','2017-02-01 18:54:42',40,'AC_OTH_AUTO','Email sent by MyBigCompany To mycustomer@example.com','2017-02-01 18:54:42','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): mycustomer@example.com
\nEMail topic: Submission of order CF1007-0001
\nEmail body:
\nYou will find here our order CF1007-0001
\r\n
\r\nSincerely
\n
\nAttached files and documents: CF1007-0001.pdf',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(251,'251',NULL,1,'2017-02-01 19:02:21','2017-02-01 19:02:21',40,'AC_OTH_AUTO','Invoice SI1702-0001 validated','2017-02-01 19:02:21','2021-04-15 10:22:55',12,NULL,5,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice SI1702-0001 validated\nAuthor: admin',20,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(252,'252',NULL,1,'2017-02-12 23:17:04','2017-02-12 23:17:04',40,'AC_OTH_AUTO','Patient créé','2017-02-12 23:17:04','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Patient créé\nAuthor: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(253,'253',NULL,1,'2017-02-12 23:18:33','2017-02-12 23:18:33',40,'AC_OTH_AUTO','Consultation 2 recorded (aaa)','2017-02-12 23:18:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (aaa)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(254,'254',NULL,1,'2017-02-15 23:28:41','2017-02-15 23:28:41',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:28:41','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(255,'255',NULL,1,'2017-02-15 23:28:56','2017-02-15 23:28:56',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:28:56','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',8,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(256,'256',NULL,1,'2017-02-15 23:34:33','2017-02-15 23:34:33',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:34:33','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',9,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(257,'257',NULL,1,'2017-02-15 23:35:03','2017-02-15 23:35:03',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-15 23:35:03','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',10,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(263,'263',NULL,1,'2017-02-15 23:50:34','2017-02-15 23:50:34',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:50:34','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',17,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(264,'264',NULL,1,'2017-02-15 23:51:23','2017-02-15 23:51:23',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:51:23','2021-04-15 10:22:55',12,NULL,NULL,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',18,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(265,'265',NULL,1,'2017-02-15 23:54:51','2017-02-15 23:54:51',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:54:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',19,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(266,'266',NULL,1,'2017-02-15 23:55:52','2017-02-15 23:55:52',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:55:52','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',20,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(267,'267',NULL,1,'2017-02-16 00:03:44','2017-02-16 00:03:44',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-16 00:03:44','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',29,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(268,'268',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0009 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0009 validated\nAuthor: admin',34,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(269,'269',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0010 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0010 validated\nAuthor: admin',38,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(270,'270',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0011 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0011 validated\nAuthor: admin',40,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(271,'271',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0012 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0012 validated\nAuthor: admin',43,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(272,'272',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0013 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0013 validated\nAuthor: admin',47,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(273,'273',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0014 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0014 validated\nAuthor: admin',48,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(274,'274',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0015 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0015 validated\nAuthor: admin',50,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(275,'275',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0016 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0016 validated\nAuthor: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(277,'277',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0018 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0018 validated\nAuthor: admin',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(278,'278',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0019 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0019 validated\nAuthor: admin',68,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(279,'279',NULL,1,'2017-02-16 00:05:36','2017-02-16 00:05:36',40,'AC_OTH_AUTO','Order CO7001-0020 validated','2017-02-16 00:05:36','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0020 validated\nAuthor: admin',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(281,'281',NULL,1,'2017-02-16 00:05:37','2017-02-16 00:05:37',40,'AC_OTH_AUTO','Order CO7001-0022 validated','2017-02-16 00:05:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0022 validated\nAuthor: admin',78,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(282,'282',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0023 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0023 validated\nAuthor: admin',81,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(283,'283',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0024 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0024 validated\nAuthor: admin',83,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(284,'284',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0025 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,2,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0025 validated\nAuthor: admin',84,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(285,'285',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0026 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0026 validated\nAuthor: admin',85,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(286,'286',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0027 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0027 validated\nAuthor: admin',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(287,'287',NULL,1,'2017-02-16 03:05:56','2017-02-16 03:05:56',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Livrée','2017-02-16 03:05:56','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Livrée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(288,'288',NULL,1,'2017-02-16 03:06:01','2017-02-16 03:06:01',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Facturée','2017-02-16 03:06:01','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Facturée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(294,'294',NULL,1,'2017-02-16 03:53:04','2017-02-16 03:53:04',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 03:53:04','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(295,'295',NULL,1,'2017-02-16 03:58:08','2017-02-16 03:58:08',40,'AC_OTH_AUTO','Expédition SH1702-0002 validée','2017-02-16 03:58:08','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Expédition SH1702-0002 validée\nAuteur: admin',3,'shipping',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(296,'296',NULL,1,'2017-02-16 04:12:29','2017-02-16 04:12:29',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:12:29','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(297,'297',NULL,1,'2017-02-16 04:14:20','2017-02-16 04:14:20',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:14:20','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(298,'298',NULL,1,'2017-02-16 01:44:58','2017-02-16 01:44:58',40,'AC_OTH_AUTO','Proposal PR1702-0009 validated','2017-02-16 01:44:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0009 validated\nAuthor: aeinstein',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(299,'299',NULL,1,'2017-02-16 01:45:44','2017-02-16 01:45:44',40,'AC_OTH_AUTO','Proposal PR1702-0010 validated','2017-02-16 01:45:44','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0010 validated\nAuthor: demo',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(300,'300',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0011 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0011 validated\nAuthor: aeinstein',13,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(301,'301',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0012 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,3,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0012 validated\nAuthor: demo',14,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(302,'302',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0013 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0013 validated\nAuthor: demo',15,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(303,'303',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0014 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0014 validated\nAuthor: demo',16,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(304,'304',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0015 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0015 validated\nAuthor: aeinstein',17,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(305,'305',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0016 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0016 validated\nAuthor: demo',18,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(306,'306',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0017 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0017 validated\nAuthor: demo',19,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(307,'307',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0018 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0018 validated\nAuthor: aeinstein',20,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(308,'308',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0019 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0019 validated\nAuthor: aeinstein',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(309,'309',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0020 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0020 validated\nAuthor: aeinstein',22,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(310,'310',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0021 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0021 validated\nAuthor: demo',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(311,'311',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0022 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0022 validated\nAuthor: demo',24,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(312,'312',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0023 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0023 validated\nAuthor: aeinstein',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(313,'313',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0024 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0024 validated\nAuthor: demo',26,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(314,'314',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0025 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0025 validated\nAuthor: aeinstein',27,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(315,'315',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0026 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0026 validated\nAuthor: demo',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(316,'316',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0027 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0027 validated\nAuthor: demo',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(317,'317',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0028 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0028 validated\nAuthor: demo',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(318,'318',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0029 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0029 validated\nAuthor: aeinstein',31,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(319,'319',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0030 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0030 validated\nAuthor: demo',32,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(320,'320',NULL,1,'2017-02-16 04:46:31','2017-02-16 04:46:31',40,'AC_OTH_AUTO','Proposition PR1702-0026 signée','2017-02-16 04:46:31','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0026 signée\nAuteur: admin',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(321,'321',NULL,1,'2017-02-16 04:46:37','2017-02-16 04:46:37',40,'AC_OTH_AUTO','Proposition PR1702-0027 signée','2017-02-16 04:46:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0027 signée\nAuteur: admin',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(322,'322',NULL,1,'2017-02-16 04:46:42','2017-02-16 04:46:42',40,'AC_OTH_AUTO','Proposition PR1702-0028 refusée','2017-02-16 04:46:42','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0028 refusée\nAuteur: admin',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(323,'323',NULL,1,'2017-02-16 04:47:09','2017-02-16 04:47:09',40,'AC_OTH_AUTO','Proposition PR1702-0019 validée','2017-02-16 04:47:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0019 validée\nAuteur: admin',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(324,'324',NULL,1,'2017-02-16 04:47:25','2017-02-16 04:47:25',40,'AC_OTH_AUTO','Proposition PR1702-0023 signée','2017-02-16 04:47:25','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 signée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(325,'325',NULL,1,'2017-02-16 04:47:29','2017-02-16 04:47:29',40,'AC_OTH_AUTO','Proposition PR1702-0023 classée payée','2017-02-16 04:47:29','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 classée payée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(326,'326',NULL,1,'2017-02-17 16:07:18','2017-02-17 16:07:18',40,'AC_OTH_AUTO','Proposition PR1702-0021 validée','2017-02-17 16:07:18','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0021 validée\nAuteur: admin',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(327,'327',NULL,1,'2017-05-12 13:53:44','2017-05-12 13:53:44',40,'AC_OTH_AUTO','Email sent by MyBigCompany To Einstein','2017-05-12 13:53:44','2021-04-15 10:22:55',12,NULL,NULL,11,12,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): Einstein <genius@example.com>
\nBcc: Einstein <genius@example.com>
\nEMail topic: Test
\nEmail body:
\nTest\nAuthor: admin',11,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(328,'328',NULL,1,'2017-08-29 22:39:09','2017-08-29 22:39:09',40,'AC_OTH_AUTO','Invoice FA1601-0024 validated','2017-08-29 22:39:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice FA1601-0024 validated\nAuthor: admin',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(329,'329',NULL,1,'2019-09-26 13:38:11','2019-09-26 13:38:11',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:38:11','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(330,'330',NULL,1,'2019-09-26 13:49:21','2019-09-26 13:49:21',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:49:21','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(331,'331',NULL,1,'2019-09-26 17:33:37','2019-09-26 17:33:37',40,'AC_BILL_VALIDATE','Invoice FA1909-0025 validated','2019-09-26 17:33:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1909-0025 validated',218,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(333,'333',NULL,1,'2019-09-27 16:54:30','2019-09-27 16:54:30',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0031 validated','2019-09-27 16:54:30','2021-04-15 10:22:55',12,NULL,4,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0031 validated',10,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(335,'335',NULL,1,'2019-09-27 17:08:59','2019-09-27 17:08:59',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0032 validated','2019-09-27 17:08:59','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0032 validated',33,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(337,'337',NULL,1,'2019-09-27 17:13:13','2019-09-27 17:13:13',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0033 validated','2019-09-27 17:13:13','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 validated',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(338,'338',NULL,1,'2019-09-27 17:53:31','2019-09-27 17:53:31',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 17:53:31','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(339,'339',NULL,1,'2019-09-27 18:15:00','2019-09-27 18:15:00',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:15:00','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(340,'340',NULL,1,'2019-09-27 18:40:32','2019-09-27 18:40:32',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:40:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(341,'341',NULL,1,'2019-09-27 19:16:07','2019-09-27 19:16:07',40,'AC_PRODUCT_CREATE','Product ppp created','2019-09-27 19:16:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp created',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(342,'342',NULL,1,'2019-09-27 19:18:01','2019-09-27 19:18:01',40,'AC_PRODUCT_MODIFY','Product ppp modified','2019-09-27 19:18:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp modified',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(343,'343',NULL,1,'2019-09-27 19:31:45','2019-09-27 19:31:45',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:31:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(344,'344',NULL,1,'2019-09-27 19:32:12','2019-09-27 19:32:12',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:32:12','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(345,'345',NULL,1,'2019-09-27 19:38:30','2019-09-27 19:38:30',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(346,'346',NULL,1,'2019-09-27 19:38:37','2019-09-27 19:38:37',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(347,'347',NULL,1,'2019-09-30 15:49:52',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #15ff11cay39skiaa] New message','2019-09-30 15:49:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'dfsdfds',2,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(348,'348',NULL,1,'2019-10-01 13:48:36','2019-10-01 13:48:36',40,'AC_PROJECT_MODIFY','Project PJ1607-0001 modified','2019-10-01 13:48:36','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1607-0001 modified\nTask: PJ1607-0001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(349,'349',NULL,1,'2019-10-04 10:10:25','2019-10-04 10:10:25',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:10:25','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(350,'350',NULL,1,'2019-10-04 10:10:47','2019-10-04 10:10:47',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:10:47','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(351,'351',NULL,1,'2019-10-04 10:26:49','2019-10-04 10:26:49',40,'AC_BILL_UNVALIDATE','Invoice FA6801-0010 go back to draft status','2019-10-04 10:26:49','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 go back to draft status',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(352,'352',NULL,1,'2019-10-04 10:27:00','2019-10-04 10:27:00',40,'AC_BILL_VALIDATE','Invoice FA6801-0010 validated','2019-10-04 10:27:00','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 validated',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(353,'353',NULL,1,'2019-10-04 10:28:14','2019-10-04 10:28:14',40,'AC_BILL_PAYED','Invoice FA6801-0010 changed to paid','2019-10-04 10:28:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 changed to paid',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(354,'354',NULL,1,'2019-10-04 10:29:22','2019-10-04 10:29:22',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:29:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(355,'355',NULL,1,'2019-10-04 10:29:41','2019-10-04 10:29:41',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI1601-0002 go back to draft status','2019-10-04 10:29:41','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 go back to draft status',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(356,'356',NULL,1,'2019-10-04 10:31:30','2019-10-04 10:31:30',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:31:30','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(357,'357',NULL,1,'2019-10-04 16:56:21',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 16:56:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(358,'358',NULL,1,'2019-10-04 17:08:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:08:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'ddddd',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(359,'359',NULL,1,'2019-10-04 17:25:05',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:25:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(360,'360',NULL,1,'2019-10-04 17:26:14',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:26:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(361,'361',NULL,1,'2019-10-04 17:30:10',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:30:10','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(362,'362',NULL,1,'2019-10-04 17:51:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:51:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(363,'363',NULL,1,'2019-10-04 17:52:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(364,'364',NULL,1,'2019-10-04 17:52:17',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(365,'365',NULL,1,'2019-10-04 17:52:39',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:39','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(366,'366',NULL,1,'2019-10-04 17:52:53',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(367,'367',NULL,1,'2019-10-04 17:53:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(368,'368',NULL,1,'2019-10-04 17:53:26',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:26','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(369,'369',NULL,1,'2019-10-04 17:53:48',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(370,'370',NULL,1,'2019-10-04 17:54:09',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:09','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(371,'371',NULL,1,'2019-10-04 17:54:28',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(372,'372',NULL,1,'2019-10-04 17:55:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:55:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(373,'373',NULL,1,'2019-10-04 17:56:01',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:56:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(374,'374',NULL,1,'2019-10-04 18:00:32',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(375,'375',NULL,1,'2019-10-04 18:00:58',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(376,'376',NULL,1,'2019-10-04 18:11:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:11:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(377,'377',NULL,1,'2019-10-04 18:12:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:12:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fffffff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(378,'378',NULL,1,'2019-10-04 18:49:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:49:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(379,'379',NULL,1,'2019-10-04 19:00:22',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:00:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(380,'380',NULL,1,'2019-10-04 19:24:20','2019-10-04 19:24:20',40,'AC_PROPAL_SENTBYMAIL','Email sent by Alice Adminson To NLTechno','2019-10-04 19:24:20','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSender: Alice Adminson <aadminson@example.com>
\nReceiver(s): NLTechno <notanemail@nltechno.com>
\nEmail topic: Envoi de la proposition commerciale PR1909-0032
\nEmail body:
\nHello
\r\n
\r\nVeuillez trouver, ci-joint, la proposition commerciale PR1909-0032
\r\n
\r\n
\r\nSincerely
\r\n
\r\nAlice - 123
\n
\nAttached files and documents: PR1909-0032.pdf',33,'propal',NULL,'Envoi de la proposition commerciale PR1909-0032','Alice Adminson ',NULL,'NLTechno ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(381,'381',NULL,1,'2019-10-04 19:30:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:30:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(382,'382',NULL,1,'2019-10-04 19:32:55',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:32:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'uuuuuu\n\nAttached files and documents: Array',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(383,'383',NULL,1,'2019-10-04 19:37:16',NULL,50,'TICKET_MSG','','2019-10-04 19:37:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'f\n\nFichiers et documents joints: dolihelp.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(384,'384',NULL,1,'2019-10-04 19:39:07',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:39:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaafff\n\nAttached files and documents: dolibarr.gif;doliadmin.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(385,'385',NULL,1,'2019-10-07 12:17:07','2019-10-07 12:17:07',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',17,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(386,'386',NULL,1,'2019-10-07 12:17:32','2019-10-07 12:17:32',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',18,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(387,'387',NULL,1,'2019-10-08 19:21:07','2019-10-08 19:21:07',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-10-08 19:21:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(388,'388',NULL,1,'2019-10-08 21:01:07','2019-10-08 21:01:07',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-10-08 21:01:07','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(389,'389',NULL,1,'2019-10-08 21:01:22','2019-10-08 21:01:22',40,'AC_MEMBER_MODIFY','Member doe john modified','2019-10-08 21:01:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(390,'390',NULL,1,'2019-10-08 21:01:45','2019-10-08 21:01:45',40,'AC_MEMBER_MODIFY','Member smith smith modified','2019-10-08 21:01:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(391,'391',NULL,1,'2019-10-08 21:02:18','2019-10-08 21:02:18',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2019-10-08 21:02:18','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(392,'392',NULL,1,'2019-11-28 15:54:46','2019-11-28 15:54:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1911-0005 validated','2019-11-28 15:54:47','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1911-0005 validated',21,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(393,'393',NULL,1,'2019-11-28 16:33:35','2019-11-28 16:33:35',40,'AC_PRODUCT_CREATE','Product FR-CAR created','2019-11-28 16:33:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR created',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(394,'394',NULL,1,'2019-11-28 16:34:08','2019-11-28 16:34:08',40,'AC_PRODUCT_DELETE','Product ppp deleted','2019-11-28 16:34:08','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp deleted',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(395,'395',NULL,1,'2019-11-28 16:34:33','2019-11-28 16:34:33',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(396,'396',NULL,1,'2019-11-28 16:34:46','2019-11-28 16:34:46',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(397,'397',NULL,1,'2019-11-28 16:36:56','2019-11-28 16:36:56',40,'AC_PRODUCT_MODIFY','Product POS-CAR modified','2019-11-28 16:36:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(398,'398',NULL,1,'2019-11-28 16:37:36','2019-11-28 16:37:36',40,'AC_PRODUCT_CREATE','Product POS-APPLE created','2019-11-28 16:37:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE created',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(399,'399',NULL,1,'2019-11-28 16:37:58','2019-11-28 16:37:58',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 16:37:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(400,'400',NULL,1,'2019-11-28 16:38:44','2019-11-28 16:38:44',40,'AC_PRODUCT_CREATE','Product POS-KIWI created','2019-11-28 16:38:44','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-KIWI created',26,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(401,'401',NULL,1,'2019-11-28 16:39:21','2019-11-28 16:39:21',40,'AC_PRODUCT_CREATE','Product POS-PEACH created','2019-11-28 16:39:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-PEACH created',27,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(402,'402',NULL,1,'2019-11-28 16:39:58','2019-11-28 16:39:58',40,'AC_PRODUCT_CREATE','Product POS-ORANGE created','2019-11-28 16:39:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-ORANGE created',28,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(403,'403',NULL,1,'2019-11-28 17:00:28','2019-11-28 17:00:28',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2019-11-28 17:00:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(404,'404',NULL,1,'2019-11-28 17:00:46','2019-11-28 17:00:46',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 17:00:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(405,'405',NULL,1,'2019-11-28 17:01:57','2019-11-28 17:01:57',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 17:01:57','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(406,'406',NULL,1,'2019-11-28 17:03:14','2019-11-28 17:03:14',40,'AC_PRODUCT_CREATE','Product POS-Eggs created','2019-11-28 17:03:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs created',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(407,'407',NULL,1,'2019-11-28 17:04:17','2019-11-28 17:04:17',40,'AC_PRODUCT_MODIFY','Product POS-Eggs modified','2019-11-28 17:04:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs modified',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(408,'408',NULL,1,'2019-11-28 17:09:14','2019-11-28 17:09:14',40,'AC_PRODUCT_CREATE','Product POS-Chips created','2019-11-28 17:09:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips created',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(409,'409',NULL,1,'2019-11-28 17:09:54','2019-11-28 17:09:54',40,'AC_PRODUCT_MODIFY','Product POS-Chips modified','2019-11-28 17:09:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips modified',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(410,'410',NULL,1,'2019-11-28 18:46:20','2019-11-28 18:46:20',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 18:46:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(411,'411',NULL,1,'2019-11-28 18:59:29','2019-11-28 18:59:29',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 18:59:29','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(412,'412',NULL,1,'2019-11-28 19:02:01','2019-11-28 19:02:01',40,'AC_PRODUCT_MODIFY','Product POS-CARROT modified','2019-11-28 19:02:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CARROT modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(413,'413',NULL,1,'2019-11-28 19:09:50','2019-11-28 19:09:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:09:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(414,'414',NULL,1,'2019-11-28 19:12:50','2019-11-28 19:12:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:12:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(415,'415',NULL,1,'2019-11-29 12:46:29','2019-11-29 12:46:29',40,'AC_TICKET_CREATE','Ticket TS1911-0004 created','2019-11-29 12:46:29','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 created',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(416,'416',NULL,1,'2019-11-29 12:46:34','2019-11-29 12:46:34',40,'AC_TICKET_MODIFY','Ticket TS1911-0004 read by Alice Adminson','2019-11-29 12:46:34','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 read by Alice Adminson',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(417,'417',NULL,1,'2019-11-29 12:46:47','2019-11-29 12:46:47',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0004 assigned','2019-11-29 12:46:47','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 assigned\nOld user: None\nNew user: Commerson Charle1',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(418,'418',NULL,1,'2019-11-29 12:47:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #5gvo9bsjri55zef9] New message','2019-11-29 12:47:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Where do you want to install Dolibarr ?
\r\nOn-Premise or on the Cloud ?',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(419,'419',NULL,1,'2019-11-29 12:50:45','2019-11-29 12:50:45',40,'AC_TICKET_CREATE','Ticket TS1911-0005 créé','2019-11-29 12:50:45','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nTicket TS1911-0005 créé',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(420,'420',NULL,1,'2019-11-29 12:52:32','2019-11-29 12:52:32',40,'AC_TICKET_MODIFY','Ticket TS1911-0005 read by Alice Adminson','2019-11-29 12:52:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 read by Alice Adminson',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(421,'421',NULL,1,'2019-11-29 12:52:53','2019-11-29 12:52:53',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0005 assigned','2019-11-29 12:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 assigned\nOld user: None\nNew user: Commerson Charle1',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(422,'422',NULL,1,'2019-11-29 12:54:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:54:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Hi.
\r\nThanks for your interest in using Dolibarr ERP CRM.
\r\nI need more information to give you the correct answer : Where do you want to install Dolibarr. On premise or on Cloud',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(423,'423',NULL,1,'2019-11-29 12:54:46',NULL,50,'TICKET_MSG','','2019-11-29 12:54:46','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'I need it On-Premise.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(424,'424',NULL,1,'2019-11-29 12:55:42',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:55:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'When used on-premise, you can download and install Dolibarr yourself from ou web portal: https://www.dolibarr.org
\r\nIt is completely free.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(425,'425',NULL,1,'2019-11-29 12:55:48','2019-11-29 12:55:48',40,'AC_TICKET_CLOSE','Ticket TS1911-0005 closed','2019-11-29 12:55:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 closed',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(426,'426',NULL,1,'2019-11-29 12:56:47','2019-11-29 12:56:47',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2019-11-29 12:56:47','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(427,'427',NULL,1,'2019-11-29 12:57:14','2019-11-29 12:57:14',40,'AC_BOM_VALIDATE','BOM validated','2019-11-29 12:57:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(428,'428',NULL,1,'2019-12-20 16:40:14','2019-12-20 16:40:14',40,'AC_MO_DELETE','MO deleted','2019-12-20 16:40:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',3,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(429,'429',NULL,1,'2019-12-20 17:00:43','2019-12-20 17:00:43',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',7,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(430,'430',NULL,1,'2019-12-20 17:00:56','2019-12-20 17:00:56',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',6,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(431,'431',NULL,1,'2019-12-20 20:00:03','2019-12-20 20:00:03',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:00:03','2021-04-15 10:22:55',12,NULL,6,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',1,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(432,'432',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',10,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(433,'433',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',12,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(434,'434',NULL,1,'2019-12-20 20:22:20','2019-12-20 20:22:20',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',9,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(435,'435',NULL,1,'2019-12-20 20:27:07','2019-12-20 20:27:07',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:27:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',13,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(436,'436',NULL,1,'2019-12-20 20:42:42','2019-12-20 20:42:42',40,'AC_ORDER_VALIDATE','Order CO7001-0027 validated','2019-12-20 20:42:42','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0027 validated',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(437,'437',NULL,1,'2019-12-20 20:46:25','2019-12-20 20:46:25',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:46:25','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(438,'438',NULL,1,'2019-12-20 20:46:45','2019-12-20 20:46:45',40,'AC_ORDER_SUPPLIER_CLASSIFY_BILLED','Purchase Order CF1007-0001 set billed','2019-12-20 20:46:45','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 set billed',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(439,'439',NULL,1,'2019-12-20 20:47:02','2019-12-20 20:47:02',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:02','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(440,'440',NULL,1,'2019-12-20 20:47:44','2019-12-20 20:47:44',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:44','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(441,'441',NULL,1,'2019-12-20 20:47:53','2019-12-20 20:47:53',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:53','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(442,'442',NULL,1,'2019-12-20 20:48:05','2019-12-20 20:48:05',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:48:05','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(443,'443',NULL,1,'2019-12-20 20:48:45','2019-12-20 20:48:45',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0016 classified billed','2019-12-20 20:48:45','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0016 classified billed',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(444,'444',NULL,1,'2019-12-20 20:48:55','2019-12-20 20:48:55',40,'AC_ORDER_CLOSE','Order CO7001-0018 classified delivered','2019-12-20 20:48:55','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0018 classified delivered',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(445,'445',NULL,1,'2019-12-20 20:49:43','2019-12-20 20:49:43',40,'AC_PROPAL_CLASSIFY_BILLED','Proposal PR1702-0027 classified billed','2019-12-20 20:49:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 classified billed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(446,'446',NULL,1,'2019-12-20 20:49:54','2019-12-20 20:49:54',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:49:54','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(447,'447',NULL,1,'2019-12-20 20:50:14','2019-12-20 20:50:14',40,'AC_PROPAL_CLOSE_REFUSED','Proposal PR1702-0027 refused','2019-12-20 20:50:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 refused',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(448,'448',NULL,1,'2019-12-20 20:50:23','2019-12-20 20:50:23',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:50:23','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(449,'449',NULL,1,'2019-12-21 17:18:22','2019-12-21 17:18:22',40,'AC_BOM_CLOSE','BOM disabled','2019-12-21 17:18:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(450,'450',NULL,1,'2019-12-21 17:18:38','2019-12-21 17:18:38',40,'AC_MEMBER_RESILIATE','Member Vick Smith terminated','2019-12-21 17:18:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith terminated\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(451,'451',NULL,1,'2019-12-21 19:46:33','2019-12-21 19:46:33',40,'AC_PROJECT_CREATE','Project PJ1912-0005 created','2019-12-21 19:46:33','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 created\nProject: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(452,'452',NULL,1,'2019-12-21 19:47:03','2019-12-21 19:47:03',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:03','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(453,'453',NULL,1,'2019-12-21 19:47:24','2019-12-21 19:47:24',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:24','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(454,'454',NULL,1,'2019-12-21 19:47:52','2019-12-21 19:47:52',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:52','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(455,'455',NULL,1,'2019-12-21 19:48:06','2019-12-21 19:48:06',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:48:06','2021-04-15 10:22:55',12,NULL,10,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(456,'456',NULL,1,'2019-12-21 19:49:28','2019-12-21 19:49:28',40,'AC_PROJECT_CREATE','Project PJ1912-0006 created','2019-12-21 19:49:28','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 created\nProject: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(457,'457',NULL,1,'2019-12-21 19:52:12','2019-12-21 19:52:12',40,'AC_PROJECT_CREATE','Project PJ1912-0007 created','2019-12-21 19:52:12','2021-04-15 10:22:55',12,NULL,12,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0007 created\nProject: PJ1912-0007',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(458,'458',NULL,1,'2019-12-21 19:53:21','2019-12-21 19:53:21',40,'AC_PROJECT_CREATE','Project PJ1912-0008 created','2019-12-21 19:53:21','2021-04-15 10:22:55',12,NULL,13,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 created\nProject: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(459,'459',NULL,1,'2019-12-21 19:53:42','2019-12-21 19:53:42',40,'AC_PROJECT_MODIFY','Project PJ1912-0008 modified','2019-12-21 19:53:42','2021-04-15 10:22:55',12,NULL,13,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 modified\nTask: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(460,'460',NULL,1,'2019-12-21 19:55:23','2019-12-21 19:55:23',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 19:55:23','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(461,'461',NULL,1,'2019-12-21 20:10:21','2019-12-21 20:10:21',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 20:10:21','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(462,'462',NULL,1,'2019-12-11 10:00:00','2019-12-11 10:00:00',5,'AC_RDV','Meeting with all employees','2019-12-21 20:29:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(463,'463',NULL,1,'2019-12-06 00:00:00',NULL,11,'AC_INT','Intervention on customer site','2019-12-21 20:30:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(464,'464',NULL,1,'2019-12-23 14:16:59','2019-12-23 14:16:59',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:16:59','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(465,'465',NULL,1,'2019-12-23 14:17:18','2019-12-23 14:17:18',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:17:18','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(466,'466',NULL,1,'2019-11-23 14:25:00',NULL,50,'AC_OTH','Test','2019-12-23 17:25:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'18/11 17h06 : Message laissé. Me rappeler pour m'en dire plus. 
\r\n
\r\n20/11 10h17 "A rappeler suite au msg laissé le 14/11, dit que c'est urgent"
\r\n12h22 : message laissé. Je lui envoie un sms
\r\n
\r\n"Déclaration de sinistre originale" : constat de ce qui s'est passé.
\r\nElle envoie le chèque de solde dès demain.
\r\n
\r\n3/12 : Elle préfère avoir plus d'infos sur le sinistre pour l'assurance.
\r\nCourrier envoyé le 4/12/19 par mail et par courrier postal
\r\n
\r\n6/12 15h02 : ont obtenu le feu vert de l'assurance.
\r\nOn bloque 16/12 PM à partir de 14h30. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(467,'467',NULL,1,'2020-01-01 14:35:47','2020-01-01 14:35:47',40,'AC_MEMBER_VALIDATE','Adhérent aze aze validé','2020-01-01 14:35:47','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent aze aze validé\nAdhérent: aze aze\nType: Board members',5,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(468,'468',NULL,1,'2020-01-01 14:50:59','2020-01-01 14:50:59',40,'AC_MEMBER_VALIDATE','Adhérent azr azr validé','2020-01-01 14:50:59','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azr azr validé\nAdhérent: azr azr\nType: Board members',6,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(469,'469',NULL,1,'2020-01-01 15:00:16','2020-01-01 15:00:16',40,'AC_MEMBER_VALIDATE','Adhérent azt azt validé','2020-01-01 15:00:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azt azt validé\nAdhérent: azt azt\nType: Board members',7,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(470,'470',NULL,1,'2020-01-01 15:08:20','2020-01-01 15:08:20',40,'AC_MEMBER_VALIDATE','Adhérent azu azu validé','2020-01-01 15:08:20','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azu azu validé\nAdhérent: azu azu\nType: Board members',8,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(471,'471',NULL,1,'2020-01-01 15:27:24','2020-01-01 15:27:24',40,'AC_MEMBER_VALIDATE','Adhérent azi azi validé','2020-01-01 15:27:24','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azi azi validé\nAdhérent: azi azi\nType: Board members',9,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(472,'472',NULL,1,'2020-01-01 15:36:29','2020-01-01 15:36:29',40,'AC_MEMBER_VALIDATE','Adhérent azo azo validé','2020-01-01 15:36:29','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azo azo validé\nAdhérent: azo azo\nType: Board members',10,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(473,'473',NULL,1,'2020-01-01 15:44:25','2020-01-01 15:44:25',40,'AC_MEMBER_VALIDATE','Adhérent azp azp validé','2020-01-01 15:44:25','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azp azp validé\nAdhérent: azp azp\nType: Board members',11,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(478,'478',NULL,1,'2020-01-01 16:52:32','2020-01-01 16:52:32',40,'AC_MEMBER_VALIDATE','Adhérent azq azq validé','2020-01-01 16:52:32','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azq azq validé\nAdhérent: azq azq\nType: Board members',12,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(483,'483',NULL,1,'2020-01-01 17:49:05','2020-01-01 17:49:05',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 17:49:05','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(484,'484',NULL,1,'2020-01-01 17:50:41','2020-01-01 17:50:41',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 17:50:41','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(485,'485',NULL,1,'2020-01-01 17:50:44','2020-01-01 17:50:44',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 17:50:44','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(486,'486',NULL,1,'2020-01-01 17:51:22','2020-01-01 17:51:22',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 17:51:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(487,'487',NULL,1,'2020-01-01 20:17:00','2020-01-01 20:17:00',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:17:00','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(488,'488',NULL,1,'2020-01-01 20:17:46','2020-01-01 20:17:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:17:46','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(489,'489',NULL,1,'2020-01-01 20:17:51','2020-01-01 20:17:51',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:17:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(490,'490',NULL,1,'2020-01-01 20:20:22','2020-01-01 20:20:22',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:20:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(491,'491',NULL,1,'2020-01-01 20:20:31','2020-01-01 20:20:31',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:20:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(492,'492',NULL,1,'2020-01-01 20:21:35','2020-01-01 20:21:35',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 20:21:35','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(493,'493',NULL,1,'2020-01-01 20:21:42','2020-01-01 20:21:42',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:21:42','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(494,'494',NULL,1,'2020-01-01 20:21:55','2020-01-01 20:21:55',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:21:55','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(495,'495',NULL,1,'2020-01-01 20:23:02','2020-01-01 20:23:02',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0007 validated','2020-01-01 20:23:02','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 validated',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(496,'496',NULL,1,'2020-01-01 20:23:17','2020-01-01 20:23:17',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:23:17','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(497,'497',NULL,1,'2020-01-01 20:25:36','2020-01-01 20:25:36',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 20:25:36','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(498,'498',NULL,1,'2020-01-01 20:51:37','2020-01-01 20:51:37',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0002 validated','2020-01-01 20:51:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 validated',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(499,'499',NULL,1,'2020-01-01 20:51:48','2020-01-01 20:51:48',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0002 changed to paid','2020-01-01 20:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 changed to paid',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(500,'500',NULL,1,'2020-01-01 21:02:39','2020-01-01 21:02:39',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:02:39','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(501,'501',NULL,1,'2020-01-01 21:03:01','2020-01-01 21:03:01',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:03:01','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(502,'502',NULL,1,'2020-01-01 21:11:10','2020-01-01 21:11:10',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:11:10','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(503,'503',NULL,1,'2020-01-01 21:20:07','2020-01-01 21:20:07',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:20:07','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(504,'504',NULL,1,'2020-01-01 21:21:28','2020-01-01 21:21:28',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 21:21:28','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(505,'505',NULL,1,'2020-01-01 22:06:30','2020-01-01 22:06:30',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 22:06:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(506,'506',NULL,1,'2020-01-01 23:54:16','2020-01-01 23:54:16',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-01 23:54:16','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(507,'507',NULL,1,'2020-01-02 20:49:34','2020-01-02 20:49:34',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2020-01-02 20:49:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(508,'508',NULL,1,'2020-01-02 23:02:35','2020-01-02 23:02:35',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-02 23:02:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(509,'509',NULL,1,'2020-01-02 23:45:01','2020-01-02 23:45:01',40,'AC_BOM_REOPEN','BOM reopen','2020-01-02 23:45:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(511,'511',NULL,1,'2020-01-02 23:57:42','2020-01-02 23:57:42',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-02 23:57:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(512,'512',NULL,1,'2020-01-03 13:33:54','2020-01-03 13:33:54',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-03 13:33:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(513,'513',NULL,1,'2020-01-03 13:34:11','2020-01-03 13:34:11',40,'AC_BOM_VALIDATE','BOM validated','2020-01-03 13:34:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(514,'514',NULL,1,'2020-01-03 13:35:45','2020-01-03 13:35:45',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 13:35:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(515,'515',NULL,1,'2020-01-03 14:10:41','2020-01-03 14:10:41',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 14:10:41','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(516,'516',NULL,1,'2020-01-06 00:39:58','2020-01-06 00:39:58',40,'AC_COMPANY_CREATE','Patient créé','2020-01-06 00:39:58','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPatient créé',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(517,'517',NULL,1,'2020-01-06 00:49:06','2020-01-06 00:49:06',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-06 00:49:06','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(518,'518',NULL,1,'2020-01-06 06:50:05','2020-01-06 06:50:05',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-06 06:50:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(519,'519',NULL,1,'2020-01-06 20:52:28','2020-01-06 20:52:28',40,'AC_OTH_AUTO','Consultation 2 recorded (Patient)','2020-01-06 20:52:28','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (Patient)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(520,'520',NULL,1,'2020-01-07 20:25:02','2020-01-07 20:25:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 20:25:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(521,'521',NULL,1,'2020-01-07 21:12:37','2020-01-07 21:12:37',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:12:37','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(522,'522',NULL,1,'2020-01-07 21:13:00','2020-01-07 21:13:00',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:00','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(523,'523',NULL,1,'2020-01-07 21:13:49','2020-01-07 21:13:49',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:49','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(524,'524',NULL,1,'2020-01-07 21:46:58','2020-01-07 21:46:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:46:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(525,'525',NULL,1,'2020-01-07 21:52:34','2020-01-07 21:52:34',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:52:34','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(526,'526',NULL,1,'2020-01-07 21:53:44','2020-01-07 21:53:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(527,'527',NULL,1,'2020-01-07 21:53:58','2020-01-07 21:53:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(528,'528',NULL,1,'2020-01-07 21:54:12','2020-01-07 21:54:12',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:54:12','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(529,'529',NULL,1,'2020-01-07 22:00:55','2020-01-07 22:00:55',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:00:55','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(530,'530',NULL,1,'2020-01-07 22:39:52','2020-01-07 22:39:52',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:39:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(531,'531',NULL,1,'2020-01-07 23:09:04','2020-01-07 23:09:04',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:09:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(532,'532',NULL,1,'2020-01-07 23:39:09','2020-01-07 23:39:09',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:39:09','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(533,'533',NULL,1,'2020-01-07 23:43:06','2020-01-07 23:43:06',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:43:06','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(534,'534',NULL,1,'2020-01-07 23:50:40','2020-01-07 23:50:40',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:50:40','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(535,'535',NULL,1,'2020-01-07 23:51:27','2020-01-07 23:51:27',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:51:27','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(536,'536',NULL,1,'2020-01-08 00:25:23','2020-01-08 00:25:23',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:23','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(537,'537',NULL,1,'2020-01-08 00:25:43','2020-01-08 00:25:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(538,'538',NULL,1,'2020-01-08 00:29:24','2020-01-08 00:29:24',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:24','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(539,'539',NULL,1,'2020-01-08 00:29:43','2020-01-08 00:29:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(540,'540',NULL,1,'2020-01-08 01:09:15','2020-01-08 01:09:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:09:15','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(541,'541',NULL,1,'2020-01-08 01:15:02','2020-01-08 01:15:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:15:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(542,'542',NULL,1,'2020-01-08 01:17:16','2020-01-08 01:17:16',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:17:16','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(543,'543',NULL,1,'2020-01-08 05:31:44','2020-01-08 05:31:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 05:31:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(544,'544',NULL,1,'2020-01-08 05:39:46','2020-01-08 05:39:46',40,'AC_BOM_CLOSE','BOM disabled','2020-01-08 05:39:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(545,'545',NULL,1,'2020-01-08 05:39:50','2020-01-08 05:39:50',40,'AC_BOM_REOPEN','BOM reopen','2020-01-08 05:39:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(546,'546',NULL,1,'2020-01-08 06:06:50','2020-01-08 06:06:50',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 06:06:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(547,'547',NULL,1,'2020-01-08 19:34:53','2020-01-08 19:34:53',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:34:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(548,'548',NULL,1,'2020-01-08 19:40:27','2020-01-08 19:40:27',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-08 19:40:27','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(549,'549',NULL,1,'2020-01-08 19:40:46','2020-01-08 19:40:46',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-08 19:40:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(550,'550',NULL,1,'2020-01-08 19:40:59','2020-01-08 19:40:59',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:40:59','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(551,'551',NULL,1,'2020-01-08 19:41:11','2020-01-08 19:41:11',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:41:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(552,'552',NULL,1,'2020-01-08 19:41:49','2020-01-08 19:41:49',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:41:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(553,'553',NULL,1,'2020-01-08 20:12:55','2020-01-08 20:12:55',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-08 20:12:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(554,'554',NULL,1,'2020-01-08 20:21:22','2020-01-08 20:21:22',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:21:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(555,'555',NULL,1,'2020-01-08 20:41:19','2020-01-08 20:41:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:41:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(556,'556',NULL,1,'2020-01-08 22:25:19','2020-01-08 22:25:19',40,'AC_BOM_DELETE','BOM deleted','2020-01-08 22:25:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM deleted',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(557,'557',NULL,1,'2020-01-13 15:11:07','2020-01-13 15:11:07',40,'AC_MO_DELETE','MO_DELETEInDolibarr','2020-01-13 15:11:07','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO_DELETEInDolibarr',25,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(558,'558',NULL,1,'2020-01-13 15:11:54','2020-01-13 15:11:54',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-13 15:11:54','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(559,'559',NULL,1,'2020-01-13 15:13:19','2020-01-13 15:13:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:13:19','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(560,'560',NULL,1,'2020-01-13 15:14:15','2020-01-13 15:14:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:14:15','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(561,'561',NULL,1,'2020-01-13 15:29:30','2020-01-13 15:29:30',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:29:30','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(562,'562',NULL,1,'2020-01-13 17:19:24','2020-01-13 17:19:24',40,'AC_COMPANY_CREATE','Third party Italo created','2020-01-13 17:19:24','2021-04-15 10:22:55',12,NULL,NULL,30,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nThird party Italo created',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(563,'563',NULL,1,'2020-01-15 16:27:15','2020-01-15 16:27:15',40,'AC_PROJECT_MODIFY','Project RMLL modified','2020-01-15 16:27:15','2021-04-15 10:22:55',12,NULL,5,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject RMLL modified\nTask: RMLL',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(564,'564',NULL,1,'2020-01-15 16:40:50','2020-01-15 16:40:50',40,'AC_PROJECT_MODIFY','Project PROJINDIAN modified','2020-01-15 16:40:50','2021-04-15 10:22:55',12,NULL,3,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PROJINDIAN modified\nTask: PROJINDIAN',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(565,'565',NULL,1,'2020-01-16 02:22:16','2020-01-16 02:22:16',40,'AC_BILL_VALIDATE','Invoice AC2001-0001 validated','2020-01-16 02:22:16','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 validated',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(566,'566',NULL,1,'2020-01-16 02:22:24','2020-01-16 02:22:24',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0001 go back to draft status','2020-01-16 02:22:24','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 go back to draft status',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(567,'567',NULL,1,'2020-01-16 02:33:27','2020-01-16 02:33:27',40,'AC_BILL_VALIDATE','Invoice AC2001-0002 validated','2020-01-16 02:33:27','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 validated',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(568,'568',NULL,1,'2020-01-16 02:36:48','2020-01-16 02:36:48',40,'AC_BILL_PAYED','Invoice AC2001-0002 changed to paid','2020-01-16 02:36:48','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 changed to paid',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(569,'569',NULL,1,'2020-01-16 02:42:12','2020-01-16 02:42:12',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0020 classified billed','2020-01-16 02:42:12','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified billed',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(570,'570',NULL,1,'2020-01-16 02:42:17','2020-01-16 02:42:17',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:17','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(571,'571',NULL,1,'2020-01-16 02:42:56','2020-01-16 02:42:56',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:56','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(572,'572',NULL,1,'2020-01-16 18:05:43','2020-01-16 18:05:43',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-16 18:05:43','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(573,'573',NULL,1,'2020-01-17 14:54:18','2020-01-17 14:54:18',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 14:54:18','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(574,'574',NULL,1,'2020-01-17 15:22:28','2020-01-17 15:22:28',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 15:22:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(575,'575',NULL,1,'2020-01-19 14:22:27','2020-01-19 14:22:27',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:22:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(576,'576',NULL,1,'2020-01-19 14:22:34','2020-01-19 14:22:34',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:22:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(577,'577',NULL,1,'2020-01-19 14:24:22','2020-01-19 14:24:22',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:24:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(578,'578',NULL,1,'2020-01-19 14:24:27','2020-01-19 14:24:27',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:24:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(579,'579',NULL,1,'2020-01-19 14:51:43','2020-01-19 14:51:43',40,'AC_BILL_VALIDATE','Invoice AC2001-0003 validated','2020-01-19 14:51:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 validated',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(580,'580',NULL,1,'2020-01-19 14:51:48','2020-01-19 14:51:48',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0003 go back to draft status','2020-01-19 14:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 go back to draft status',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(581,'581',NULL,1,'2020-01-19 15:01:26','2020-01-19 15:01:26',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:01:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(582,'582',NULL,1,'2020-01-19 15:04:37','2020-01-19 15:04:37',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:04:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(583,'583',NULL,1,'2020-01-19 15:04:53','2020-01-19 15:04:53',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:04:53','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(584,'584',NULL,1,'2020-01-19 15:09:14','2020-01-19 15:09:14',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:09:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(585,'585',NULL,1,'2020-01-19 15:13:07','2020-01-19 15:13:07',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:13:07','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(586,'586',NULL,1,'2020-01-20 12:20:11','2020-01-20 12:20:11',40,'AC_ORDER_SUPPLIER_CREATE','Order (PROV14) created','2020-01-20 12:20:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder (PROV14) created',14,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(588,'588',NULL,1,'2020-01-21 01:02:14','2020-01-21 01:02:14',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 2 for member Vick Smith added','2020-01-21 01:02:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 2 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2013 - 07/17/2014',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(589,'589',NULL,1,'2020-01-21 10:22:37','2020-01-21 10:22:37',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 3 for member Vick Smith added','2020-01-21 10:22:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 3 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(590,'590',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 4 for member Vick Smith added','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 4 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(591,'591',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_VALIDATE','Invoice FA1707-0026 validated','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 validated',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(592,'592',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_PAYED','Invoice FA1707-0026 changed to paid','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 changed to paid',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(593,'593',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 5 for member Vick Smith added','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 5 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2018 - 07/17/2019',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(594,'594',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_VALIDATE','Invoice FA1807-0027 validated','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 validated',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(595,'595',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_PAYED','Invoice FA1807-0027 changed to paid','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 changed to paid',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(596,'596',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 6 for member Vick Smith added','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 6 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2019 - 07/17/2020',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(597,'597',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_VALIDATE','Invoice FA1907-0028 validated','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 validated',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(598,'598',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_PAYED','Invoice FA1907-0028 changed to paid','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 changed to paid',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(599,'599',NULL,1,'2020-01-21 10:30:27','2020-01-21 10:30:27',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2020-01-21 10:30:27','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(600,'600',NULL,1,'2020-01-21 10:30:36','2020-01-21 10:30:36',40,'AC_MEMBER_MODIFY','Member doe john modified','2020-01-21 10:30:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(601,'601',NULL,1,'2020-01-21 10:30:42','2020-01-21 10:30:42',40,'AC_MEMBER_MODIFY','Member smith smith modified','2020-01-21 10:30:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(602,'602',NULL,1,'2020-01-21 10:30:57','2020-01-21 10:30:57',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2020-01-21 10:30:57','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(603,'603',NULL,1,'2020-06-12 10:00:00','2020-06-12 11:30:00',5,'AC_RDV','Meetings','2020-06-12 19:26:44','2021-04-15 10:22:55',12,NULL,3,NULL,NULL,0,12,1,NULL,0,0,-1,'Room 24',5400,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(604,'604',NULL,1,'2020-06-01 10:00:00','2020-06-01 10:27:00',1,'AC_TEL','Called Mr X','2020-06-12 19:28:13','2021-04-15 10:22:55',12,12,3,NULL,NULL,0,12,1,NULL,0,0,100,NULL,1620,NULL,'Customer ask another call.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(605,'605',NULL,1,'2020-04-15 05:00:00','2020-04-15 06:00:00',5,'AC_RDV','Meet A2','2021-04-15 07:36:31','2021-04-15 10:36:31',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(606,'606',NULL,1,'2021-04-15 08:38:02','2021-04-15 08:38:02',40,'AC_PRODUCT_CREATE','Product PRODSER created','2021-04-15 08:38:02','2021-04-15 11:38:02',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PRODSER created',31,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(607,'607',NULL,1,'2022-02-07 13:54:11','2022-02-07 13:54:11',40,'AC_BOM_VALIDATE','BOM validated','2022-02-07 13:54:11','2022-02-07 13:54:11',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL); /*!40000 ALTER TABLE `llx_actioncomm` ENABLE KEYS */; UNLOCK TABLES; @@ -383,10 +385,10 @@ CREATE TABLE `llx_actioncomm_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_actioncomm_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -408,22 +410,22 @@ DROP TABLE IF EXISTS `llx_actioncomm_reminder`; CREATE TABLE `llx_actioncomm_reminder` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `dateremind` datetime NOT NULL, - `typeremind` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `typeremind` varchar(32) NOT NULL, `fk_user` int(11) NOT NULL, `offsetvalue` int(11) NOT NULL, - `offsetunit` varchar(1) COLLATE utf8_unicode_ci NOT NULL, + `offsetunit` varchar(1) NOT NULL, `status` int(11) NOT NULL DEFAULT 0, `entity` int(11) NOT NULL DEFAULT 1, `fk_actioncomm` int(11) NOT NULL, `fk_email_template` int(11) DEFAULT NULL, - `lasterror` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `lasterror` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_actioncomm_reminder_unique` (`fk_user`,`typeremind`,`offsetvalue`,`offsetunit`,`fk_actioncomm`), KEY `idx_actioncomm_reminder_rowid` (`rowid`), KEY `idx_actioncomm_reminder_dateremind` (`dateremind`), KEY `idx_actioncomm_reminder_fk_user` (`fk_user`), KEY `idx_actioncomm_reminder_status` (`status`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -445,15 +447,15 @@ DROP TABLE IF EXISTS `llx_actioncomm_resources`; CREATE TABLE `llx_actioncomm_resources` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_actioncomm` int(11) NOT NULL, - `element_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `element_type` varchar(50) NOT NULL, `fk_element` int(11) NOT NULL, - `answer_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `answer_status` varchar(50) DEFAULT NULL, `mandatory` smallint(6) DEFAULT NULL, `transparency` smallint(6) DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_actioncomm_resources` (`fk_actioncomm`,`element_type`,`fk_element`), KEY `idx_actioncomm_resources_fk_element` (`fk_element`) -) ENGINE=InnoDB AUTO_INCREMENT=488 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=488 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -475,47 +477,49 @@ DROP TABLE IF EXISTS `llx_adherent`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_adherent` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `login` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(128) DEFAULT NULL, + `civility` varchar(6) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `login` varchar(50) DEFAULT NULL, + `pass` varchar(50) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, `fk_adherent_type` int(11) NOT NULL, - `morphy` varchar(3) COLLATE utf8_unicode_ci NOT NULL, - `societe` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `morphy` varchar(3) NOT NULL, + `societe` varchar(128) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `address` text COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `address` text DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `state_id` int(11) DEFAULT NULL, `country` int(11) DEFAULT NULL, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `socialnetworks` text COLLATE utf8_unicode_ci DEFAULT NULL, - `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone_perso` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone_mobile` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, + `phone` varchar(30) DEFAULT NULL, + `phone_perso` varchar(30) DEFAULT NULL, + `phone_mobile` varchar(30) DEFAULT NULL, `birth` date DEFAULT NULL, - `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `photo` varchar(255) DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, `public` smallint(6) NOT NULL DEFAULT 0, `datefin` datetime DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `datevalid` datetime DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_author` int(11) DEFAULT NULL, `fk_user_mod` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `gender` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `gender` varchar(10) DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_adherent_ref` (`ref`,`entity`), UNIQUE KEY `uk_adherent_login` (`login`,`entity`), @@ -523,7 +527,7 @@ CREATE TABLE `llx_adherent` ( KEY `idx_adherent_fk_adherent_type` (`fk_adherent_type`), CONSTRAINT `adherent_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_adherent_adherent_type` FOREIGN KEY (`fk_adherent_type`) REFERENCES `llx_adherent_type` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -532,7 +536,7 @@ CREATE TABLE `llx_adherent` ( LOCK TABLES `llx_adherent` WRITE; /*!40000 ALTER TABLE `llx_adherent` DISABLE KEYS */; -INSERT INTO `llx_adherent` VALUES (1,'1',1,NULL,NULL,'Smith','Vick','vsmith','vsx1n8tf',NULL,2,'phy',NULL,10,NULL,NULL,NULL,NULL,102,'vsmith@email.com',NULL,'[]',NULL,NULL,NULL,'1960-07-07','person5.jpeg',0,0,'2014-07-09 00:00:00',NULL,NULL,'2012-07-10 15:12:56','2012-07-08 23:50:00','2021-04-15 10:22:54',1,12,12,NULL,NULL,NULL,'woman'),(2,'2',1,NULL,NULL,'Curie','Pierre','pcurie','pcuriedolibarr',NULL,2,'phy',NULL,12,NULL,NULL,NULL,NULL,NULL,'pcurie@example.com',NULL,'[]',NULL,NULL,NULL,NULL,'pierrecurie.jpg',1,1,'2020-07-17 00:00:00',NULL,NULL,'2012-07-10 15:03:32','2012-07-10 15:03:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL),(3,'3',1,NULL,NULL,'john','doe','john','8bs6gty5',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,1,'johndoe@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person9.jpeg',1,0,'2014-07-17 00:00:00',NULL,NULL,'2013-07-18 21:28:00','2013-07-18 21:10:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL),(4,'4',1,NULL,NULL,'smith','smith','Smith','s6hjp10f',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,11,'smith@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person2.jpeg',1,0,'2018-07-17 00:00:00',NULL,NULL,'2013-07-18 21:27:52','2013-07-18 21:27:44','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL); +INSERT INTO `llx_adherent` VALUES (1,'1',1,NULL,NULL,'Smith','Vick','vsmith','vsx1n8tf',NULL,2,'phy',NULL,10,NULL,NULL,NULL,NULL,102,'vsmith@email.com',NULL,'[]',NULL,NULL,NULL,'1960-07-07','person5.jpeg',0,0,'2014-07-09 00:00:00',NULL,NULL,NULL,'2012-07-10 15:12:56','2012-07-08 23:50:00','2021-04-15 10:22:54',1,12,12,NULL,NULL,NULL,'woman',NULL),(2,'2',1,NULL,NULL,'Curie','Pierre','pcurie','pcuriedolibarr',NULL,2,'phy',NULL,12,NULL,NULL,NULL,NULL,NULL,'pcurie@example.com',NULL,'[]',NULL,NULL,NULL,NULL,'pierrecurie.jpg',1,1,'2020-07-17 00:00:00',NULL,NULL,NULL,'2012-07-10 15:03:32','2012-07-10 15:03:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL,NULL),(3,'3',1,NULL,NULL,'john','doe','john','8bs6gty5',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,1,'johndoe@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person9.jpeg',1,0,'2014-07-17 00:00:00',NULL,NULL,NULL,'2013-07-18 21:28:00','2013-07-18 21:10:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL,NULL),(4,'4',1,NULL,NULL,'smith','smith','Smith','s6hjp10f',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,11,'smith@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person2.jpeg',1,0,'2018-07-17 00:00:00',NULL,NULL,NULL,'2013-07-18 21:27:52','2013-07-18 21:27:44','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_adherent` ENABLE KEYS */; UNLOCK TABLES; @@ -547,14 +551,14 @@ CREATE TABLE `llx_adherent_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `aaa` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `sssss` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extradatamember` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `aaa` varchar(255) DEFAULT NULL, + `sssss` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extradatamember` varchar(10) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_adherent_options` (`fk_object`), KEY `idx_adherent_extrafields` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -579,17 +583,18 @@ CREATE TABLE `llx_adherent_type` ( `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `statut` smallint(6) NOT NULL DEFAULT 0, - `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `subscription` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1', + `libelle` varchar(50) NOT NULL, + `subscription` varchar(3) NOT NULL DEFAULT '1', `amount` double(24,8) DEFAULT NULL, - `vote` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1', - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `mail_valid` text COLLATE utf8_unicode_ci DEFAULT NULL, - `morphy` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, - `duration` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, + `caneditamount` int(11) DEFAULT 0, + `vote` varchar(3) NOT NULL DEFAULT '1', + `note` text DEFAULT NULL, + `mail_valid` text DEFAULT NULL, + `morphy` varchar(3) DEFAULT NULL, + `duration` varchar(6) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_adherent_type_libelle` (`libelle`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -598,7 +603,7 @@ CREATE TABLE `llx_adherent_type` ( LOCK TABLES `llx_adherent_type` WRITE; /*!40000 ALTER TABLE `llx_adherent_type` DISABLE KEYS */; -INSERT INTO `llx_adherent_type` VALUES (1,1,'2020-06-12 17:20:50',1,'Board members','1',NULL,'1','','','','1y'),(2,1,'2020-06-12 17:21:21',1,'Standard members','1',NULL,'1','','','','y'); +INSERT INTO `llx_adherent_type` VALUES (1,1,'2020-06-12 17:20:50',1,'Board members','1',NULL,0,'1','','','','1y'),(2,1,'2020-06-12 17:21:21',1,'Standard members','1',NULL,0,'1','','','','y'); /*!40000 ALTER TABLE `llx_adherent_type` ENABLE KEYS */; UNLOCK TABLES; @@ -613,11 +618,11 @@ CREATE TABLE `llx_adherent_type_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extradatamembertype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extradatamembertype` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_adherent_type_extrafields` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -640,13 +645,13 @@ DROP TABLE IF EXISTS `llx_adherent_type_lang`; CREATE TABLE `llx_adherent_type_lang` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_type` int(11) NOT NULL DEFAULT 0, - `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `email` text COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `email` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -659,38 +664,6 @@ INSERT INTO `llx_adherent_type_lang` VALUES (1,2,'en_US','Standard members','',N /*!40000 ALTER TABLE `llx_adherent_type_lang` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `llx_advtargetemailing` --- - -DROP TABLE IF EXISTS `llx_advtargetemailing`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `llx_advtargetemailing` ( - `rowid` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, - `entity` int(11) NOT NULL DEFAULT 1, - `filtervalue` text COLLATE utf8_unicode_ci DEFAULT NULL, - `fk_user_author` int(11) NOT NULL, - `datec` datetime NOT NULL, - `fk_user_mod` int(11) NOT NULL, - `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `fk_element` int(11) NOT NULL, - `type_element` varchar(180) COLLATE utf8_unicode_ci NOT NULL, - PRIMARY KEY (`rowid`), - UNIQUE KEY `uk_advtargetemailing_name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `llx_advtargetemailing` --- - -LOCK TABLES `llx_advtargetemailing` WRITE; -/*!40000 ALTER TABLE `llx_advtargetemailing` DISABLE KEYS */; -/*!40000 ALTER TABLE `llx_advtargetemailing` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `llx_asset` -- @@ -700,30 +673,50 @@ DROP TABLE IF EXISTS `llx_asset`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_asset` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `amount_ht` double(24,8) DEFAULT NULL, - `fk_asset_type` int(11) NOT NULL, + `label` varchar(255) DEFAULT NULL, + `fk_asset_model` int(11) DEFAULT NULL, + `reversal_amount_ht` double(24,8) DEFAULT NULL, + `acquisition_value_ht` double(24,8) NOT NULL, `fk_soc` int(11) DEFAULT NULL, - `description` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `note_public` mediumtext DEFAULT NULL, + `note_private` mediumtext DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `status` int(11) NOT NULL, - `amount_vat` double(24,8) DEFAULT NULL, + `recovered_vat` double(24,8) DEFAULT NULL, + `reversal_date` date DEFAULT NULL, + `date_acquisition` date NOT NULL, + `date_start` date NOT NULL, + `qty` double NOT NULL DEFAULT 1, + `acquisition_type` smallint(6) NOT NULL DEFAULT 0, + `asset_type` smallint(6) NOT NULL DEFAULT 0, + `not_depreciated` int(11) DEFAULT 0, + `disposal_date` date DEFAULT NULL, + `disposal_amount_ht` double(24,8) DEFAULT NULL, + `fk_disposal_type` int(11) DEFAULT NULL, + `disposal_depreciated` int(11) DEFAULT 0, + `disposal_subject_to_vat` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), KEY `idx_asset_rowid` (`rowid`), KEY `idx_asset_ref` (`ref`), KEY `idx_asset_entity` (`entity`), KEY `idx_asset_fk_soc` (`fk_soc`), - KEY `idx_asset_fk_asset_type` (`fk_asset_type`), - CONSTRAINT `fk_asset_asset_type` FOREIGN KEY (`fk_asset_type`) REFERENCES `llx_asset_type` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + KEY `idx_asset_fk_asset_model` (`fk_asset_model`), + KEY `idx_asset_fk_disposal_type` (`fk_disposal_type`), + KEY `fk_asset_user_creat` (`fk_user_creat`), + KEY `fk_asset_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_asset_model` FOREIGN KEY (`fk_asset_model`) REFERENCES `llx_asset_model` (`rowid`), + CONSTRAINT `fk_asset_disposal_type` FOREIGN KEY (`fk_disposal_type`) REFERENCES `llx_c_asset_disposal_type` (`rowid`), + CONSTRAINT `fk_asset_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`), + CONSTRAINT `fk_asset_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -735,6 +728,204 @@ LOCK TABLES `llx_asset` WRITE; /*!40000 ALTER TABLE `llx_asset` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_asset_accountancy_codes_economic` +-- + +DROP TABLE IF EXISTS `llx_asset_accountancy_codes_economic`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_asset_accountancy_codes_economic` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_asset` int(11) DEFAULT NULL, + `fk_asset_model` int(11) DEFAULT NULL, + `asset` varchar(32) DEFAULT NULL, + `depreciation_asset` varchar(32) DEFAULT NULL, + `depreciation_expense` varchar(32) DEFAULT NULL, + `value_asset_sold` varchar(32) DEFAULT NULL, + `receivable_on_assignment` varchar(32) DEFAULT NULL, + `proceeds_from_sales` varchar(32) DEFAULT NULL, + `vat_collected` varchar(32) DEFAULT NULL, + `vat_deductible` varchar(32) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_asset_ace_fk_asset` (`fk_asset`), + UNIQUE KEY `uk_asset_ace_fk_asset_model` (`fk_asset_model`), + KEY `idx_asset_ace_rowid` (`rowid`), + KEY `fk_asset_ace_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_ace_asset` FOREIGN KEY (`fk_asset`) REFERENCES `llx_asset` (`rowid`), + CONSTRAINT `fk_asset_ace_asset_model` FOREIGN KEY (`fk_asset_model`) REFERENCES `llx_asset_model` (`rowid`), + CONSTRAINT `fk_asset_ace_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_asset_accountancy_codes_economic` +-- + +LOCK TABLES `llx_asset_accountancy_codes_economic` WRITE; +/*!40000 ALTER TABLE `llx_asset_accountancy_codes_economic` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_accountancy_codes_economic` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_asset_accountancy_codes_fiscal` +-- + +DROP TABLE IF EXISTS `llx_asset_accountancy_codes_fiscal`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_asset_accountancy_codes_fiscal` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_asset` int(11) DEFAULT NULL, + `fk_asset_model` int(11) DEFAULT NULL, + `accelerated_depreciation` varchar(32) DEFAULT NULL, + `endowment_accelerated_depreciation` varchar(32) DEFAULT NULL, + `provision_accelerated_depreciation` varchar(32) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_asset_acf_fk_asset` (`fk_asset`), + UNIQUE KEY `uk_asset_acf_fk_asset_model` (`fk_asset_model`), + KEY `idx_asset_acf_rowid` (`rowid`), + KEY `fk_asset_acf_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_acf_asset` FOREIGN KEY (`fk_asset`) REFERENCES `llx_asset` (`rowid`), + CONSTRAINT `fk_asset_acf_asset_model` FOREIGN KEY (`fk_asset_model`) REFERENCES `llx_asset_model` (`rowid`), + CONSTRAINT `fk_asset_acf_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_asset_accountancy_codes_fiscal` +-- + +LOCK TABLES `llx_asset_accountancy_codes_fiscal` WRITE; +/*!40000 ALTER TABLE `llx_asset_accountancy_codes_fiscal` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_accountancy_codes_fiscal` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_asset_depreciation` +-- + +DROP TABLE IF EXISTS `llx_asset_depreciation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_asset_depreciation` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_asset` int(11) NOT NULL, + `depreciation_mode` varchar(255) NOT NULL, + `ref` varchar(255) NOT NULL, + `depreciation_date` datetime NOT NULL, + `depreciation_ht` double(24,8) NOT NULL, + `cumulative_depreciation_ht` double(24,8) NOT NULL, + `accountancy_code_debit` varchar(32) DEFAULT NULL, + `accountancy_code_credit` varchar(32) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_asset_depreciation_fk_asset` (`fk_asset`,`depreciation_mode`,`ref`), + KEY `idx_asset_depreciation_rowid` (`rowid`), + KEY `idx_asset_depreciation_fk_asset` (`fk_asset`), + KEY `idx_asset_depreciation_depreciation_mode` (`depreciation_mode`), + KEY `idx_asset_depreciation_ref` (`ref`), + KEY `fk_asset_depreciation_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_depreciation_asset` FOREIGN KEY (`fk_asset`) REFERENCES `llx_asset` (`rowid`), + CONSTRAINT `fk_asset_depreciation_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_asset_depreciation` +-- + +LOCK TABLES `llx_asset_depreciation` WRITE; +/*!40000 ALTER TABLE `llx_asset_depreciation` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_depreciation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_asset_depreciation_options_economic` +-- + +DROP TABLE IF EXISTS `llx_asset_depreciation_options_economic`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_asset_depreciation_options_economic` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_asset` int(11) DEFAULT NULL, + `fk_asset_model` int(11) DEFAULT NULL, + `depreciation_type` smallint(6) NOT NULL DEFAULT 0, + `accelerated_depreciation_option` int(11) DEFAULT NULL, + `degressive_coefficient` double(24,8) DEFAULT NULL, + `duration` smallint(6) NOT NULL, + `duration_type` smallint(6) NOT NULL DEFAULT 0, + `amount_base_depreciation_ht` double(24,8) DEFAULT NULL, + `amount_base_deductible_ht` double(24,8) DEFAULT NULL, + `total_amount_last_depreciation_ht` double(24,8) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_asset_doe_fk_asset` (`fk_asset`), + UNIQUE KEY `uk_asset_doe_fk_asset_model` (`fk_asset_model`), + KEY `idx_asset_doe_rowid` (`rowid`), + KEY `fk_asset_doe_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_doe_asset` FOREIGN KEY (`fk_asset`) REFERENCES `llx_asset` (`rowid`), + CONSTRAINT `fk_asset_doe_asset_model` FOREIGN KEY (`fk_asset_model`) REFERENCES `llx_asset_model` (`rowid`), + CONSTRAINT `fk_asset_doe_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_asset_depreciation_options_economic` +-- + +LOCK TABLES `llx_asset_depreciation_options_economic` WRITE; +/*!40000 ALTER TABLE `llx_asset_depreciation_options_economic` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_depreciation_options_economic` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_asset_depreciation_options_fiscal` +-- + +DROP TABLE IF EXISTS `llx_asset_depreciation_options_fiscal`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_asset_depreciation_options_fiscal` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_asset` int(11) DEFAULT NULL, + `fk_asset_model` int(11) DEFAULT NULL, + `depreciation_type` smallint(6) NOT NULL DEFAULT 0, + `degressive_coefficient` double(24,8) DEFAULT NULL, + `duration` smallint(6) NOT NULL, + `duration_type` smallint(6) NOT NULL DEFAULT 0, + `amount_base_depreciation_ht` double(24,8) DEFAULT NULL, + `amount_base_deductible_ht` double(24,8) DEFAULT NULL, + `total_amount_last_depreciation_ht` double(24,8) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_asset_dof_fk_asset` (`fk_asset`), + UNIQUE KEY `uk_asset_dof_fk_asset_model` (`fk_asset_model`), + KEY `idx_asset_dof_rowid` (`rowid`), + KEY `fk_asset_dof_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_dof_asset` FOREIGN KEY (`fk_asset`) REFERENCES `llx_asset` (`rowid`), + CONSTRAINT `fk_asset_dof_asset_model` FOREIGN KEY (`fk_asset_model`) REFERENCES `llx_asset_model` (`rowid`), + CONSTRAINT `fk_asset_dof_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_asset_depreciation_options_fiscal` +-- + +LOCK TABLES `llx_asset_depreciation_options_fiscal` WRITE; +/*!40000 ALTER TABLE `llx_asset_depreciation_options_fiscal` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_depreciation_options_fiscal` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_asset_extrafields` -- @@ -746,10 +937,10 @@ CREATE TABLE `llx_asset_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_asset_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -762,33 +953,73 @@ LOCK TABLES `llx_asset_extrafields` WRITE; UNLOCK TABLES; -- --- Table structure for table `llx_asset_type` +-- Table structure for table `llx_asset_model` -- -DROP TABLE IF EXISTS `llx_asset_type`; +DROP TABLE IF EXISTS `llx_asset_model`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `llx_asset_type` ( +CREATE TABLE `llx_asset_model` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, + `ref` varchar(128) NOT NULL, + `label` varchar(255) NOT NULL, + `asset_type` smallint(6) NOT NULL, + `fk_pays` int(11) DEFAULT 0, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, + `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `accountancy_code_asset` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_depreciation_asset` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_depreciation_expense` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_user_creat` int(11) NOT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `status` smallint(6) NOT NULL, PRIMARY KEY (`rowid`), - UNIQUE KEY `uk_asset_type_label` (`label`,`entity`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + UNIQUE KEY `uk_asset_model` (`entity`,`ref`), + KEY `idx_asset_model_rowid` (`rowid`), + KEY `idx_asset_model_ref` (`ref`), + KEY `idx_asset_model_pays` (`fk_pays`), + KEY `idx_asset_model_entity` (`entity`), + KEY `fk_asset_model_user_creat` (`fk_user_creat`), + KEY `fk_asset_model_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_asset_model_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`), + CONSTRAINT `fk_asset_model_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `llx_asset_type` +-- Dumping data for table `llx_asset_model` -- -LOCK TABLES `llx_asset_type` WRITE; -/*!40000 ALTER TABLE `llx_asset_type` DISABLE KEYS */; -/*!40000 ALTER TABLE `llx_asset_type` ENABLE KEYS */; +LOCK TABLES `llx_asset_model` WRITE; +/*!40000 ALTER TABLE `llx_asset_model` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_model` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_asset_model_extrafields` +-- + +DROP TABLE IF EXISTS `llx_asset_model_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_asset_model_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_asset_model_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_asset_model_extrafields` +-- + +LOCK TABLES `llx_asset_model_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_asset_model_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_asset_model_extrafields` ENABLE KEYS */; UNLOCK TABLES; -- @@ -802,10 +1033,10 @@ CREATE TABLE `llx_asset_type_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_asset_type_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -831,30 +1062,32 @@ CREATE TABLE `llx_bank` ( `datev` date DEFAULT NULL, `dateo` date DEFAULT NULL, `amount` double(24,8) NOT NULL DEFAULT 0.00000000, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_rappro` int(11) DEFAULT NULL, - `fk_type` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `num_releve` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `num_chq` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_type` varchar(6) DEFAULT NULL, + `num_releve` varchar(50) DEFAULT NULL, + `num_chq` varchar(50) DEFAULT NULL, `rappro` tinyint(4) DEFAULT 0, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bordereau` int(11) DEFAULT 0, - `banque` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `emetteur` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `author` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, - `numero_compte` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `banque` varchar(255) DEFAULT NULL, + `emetteur` varchar(255) DEFAULT NULL, + `author` varchar(40) DEFAULT NULL, + `numero_compte` varchar(32) DEFAULT NULL, `origin_id` int(11) DEFAULT NULL, - `origin_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `origin_type` varchar(64) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `amount_main_currency` double(24,8) DEFAULT NULL, + `position` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), KEY `idx_bank_datev` (`datev`), KEY `idx_bank_dateo` (`dateo`), KEY `idx_bank_fk_account` (`fk_account`), KEY `idx_bank_rappro` (`rappro`), KEY `idx_bank_num_releve` (`num_releve`) -) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -863,7 +1096,7 @@ CREATE TABLE `llx_bank` ( LOCK TABLES `llx_bank` WRITE; /*!40000 ALTER TABLE `llx_bank` DISABLE KEYS */; -INSERT INTO `llx_bank` VALUES (1,'2012-07-08 23:56:14','2021-07-11 17:49:28','2021-07-08','2021-07-08',2000.00000000,'(Initial balance)',1,NULL,1,'SOLD','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2012-07-09 00:00:24','2021-07-11 17:49:28','2021-07-09','2021-07-09',500.00000000,'(Initial balance)',2,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2012-07-10 13:33:42','2021-07-11 17:49:28','2021-07-10','2021-07-10',0.00000000,'(Solde initial)',3,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,'2013-07-18 20:50:24','2021-07-11 17:49:28','2021-07-08','2021-07-08',20.00000000,'(CustomerInvoicePayment)',1,1,NULL,'CB','201107',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(6,'2013-07-18 20:50:47','2021-07-11 17:49:28','2021-07-08','2021-07-08',10.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(8,'2013-08-01 03:34:11','2022-02-07 13:37:54','2021-08-15','2021-08-01',5.63000000,'(CustomerInvoicePayment)',1,1,1,'CB','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2013-08-05 23:11:37','2022-02-07 13:37:54','2021-08-12','2021-08-05',-10.00000000,'(SocialContributionPayment)',1,1,1,'VIR','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(13,'2013-08-06 20:33:54','2022-02-07 13:37:54','2021-08-06','2021-08-06',5.98000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,'2013-08-08 02:53:40','2022-02-07 13:37:54','2021-08-08','2021-08-08',26.10000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(15,'2013-08-08 02:55:58','2022-02-07 13:37:54','2021-08-08','2021-08-08',26.96000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201211',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,'2014-12-09 15:28:44','2022-02-07 13:37:54','2021-12-09','2021-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,'2014-12-09 15:28:53','2022-02-07 13:37:54','2021-12-09','2021-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,'2014-12-09 17:35:55','2022-02-07 13:37:54','2021-12-09','2021-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,'2014-12-09 17:37:02','2022-02-07 13:37:54','2021-12-09','2021-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(20,'2014-12-09 18:35:07','2022-02-07 13:37:54','2021-12-09','2021-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(21,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12','2021-12-12',1.00000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(22,'2015-03-06 16:48:16','2021-04-15 10:22:31','2021-03-06','2021-03-06',20.00000000,'(SubscriptionPayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(23,'2015-03-20 14:30:11','2021-04-15 10:22:31','2021-03-20','2021-03-20',10.00000000,'(SubscriptionPayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(24,'2016-03-02 19:57:58','2021-07-11 17:49:28','2021-07-09','2021-07-09',605.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'111',NULL,NULL,NULL,NULL,NULL),(26,'2016-03-02 20:01:39','2021-04-15 10:22:31','2021-03-19','2021-03-19',500.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(27,'2016-03-02 20:02:06','2021-04-15 10:22:31','2021-03-21','2021-03-21',400.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'ABC and Co',NULL,NULL,NULL,NULL,NULL),(28,'2016-03-03 19:22:32','2022-02-07 13:37:54','2021-10-03','2021-10-03',-400.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(29,'2016-03-03 19:23:16','2021-04-15 10:22:31','2021-03-10','2021-03-10',-300.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(30,'2018-01-22 18:56:34','2022-02-07 13:37:54','2022-01-22','2022-01-22',-900.00000000,'(SupplierInvoicePayment)',1,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(31,'2018-07-30 22:42:14','2022-02-07 13:37:54','2021-07-30','2021-07-30',0.00000000,'(Initial balance)',4,0,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(32,'2017-02-01 19:02:44','2022-02-07 13:37:54','2022-02-01','2022-02-01',-200.00000000,'(SupplierInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(33,'2017-02-06 08:10:24','2021-04-15 10:22:31','2021-03-22','2021-03-22',150.00000000,'(CustomerInvoicePayment)',1,12,NULL,'CHQ',NULL,NULL,0,NULL,2,NULL,'Magic Food Store',NULL,NULL,NULL,NULL,NULL),(34,'2017-02-06 08:10:50','2021-04-15 10:22:31','2021-03-25','2021-03-25',140.00000000,'(CustomerInvoicePayment)',1,12,NULL,'PRE',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(36,'2017-02-16 02:22:09','2021-04-15 10:22:31','2021-02-16','2021-02-16',-1.00000000,'(ExpenseReportPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(37,'2017-02-21 16:07:43','2021-04-15 10:22:31','2021-02-21','2021-02-21',50.00000000,'(WithdrawalPayment)',1,12,NULL,'PRE',NULL,'T170201',0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(38,'2017-09-06 20:08:36','2022-02-07 13:37:54','2021-09-06','2021-09-06',10.00000000,'(DonationPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(39,'2018-03-16 13:59:31','2021-04-15 10:22:31','2021-03-16','2021-03-16',10.00000000,'(CustomerInvoicePayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Indian SAS',NULL,'',NULL,NULL,NULL),(41,'2019-10-04 10:28:14','2022-02-07 13:37:54','2022-01-19','2022-01-19',5.63000000,'(CustomerInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(42,'2019-10-08 13:18:50','2022-02-07 13:37:54','2021-10-08','2021-10-08',-1000.00000000,'Salary payment',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(43,'2019-12-26 01:48:30','2022-02-07 13:37:54','2021-12-25','2021-12-25',-5.00000000,'(SocialContributionPayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(44,'2019-12-26 01:48:46','2022-02-07 13:37:54','2021-12-25','2021-12-25',-5.00000000,'(SocialContributionPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(47,'2020-01-01 20:28:49','2022-02-07 13:37:54','2022-01-01','2022-01-01',304.69000000,'(SupplierInvoicePayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(48,'2020-01-06 20:52:28','2022-02-07 13:37:54','2022-01-06','2022-01-06',10.00000000,'Patient payment',1,12,NULL,'CB',NULL,NULL,0,NULL,0,NULL,'Patient',NULL,'',NULL,NULL,NULL),(49,'2020-01-10 04:42:47','2022-02-07 13:37:54','2022-01-10','2022-01-10',-10.00000000,'Miscellaneous payment',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL),(50,'2020-01-16 02:36:48','2022-02-07 13:37:54','2022-01-16','2022-01-16',20.50000000,'(CustomerInvoicePayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'Magic Food Store',NULL,'',NULL,NULL,NULL),(51,'2020-01-21 01:02:14','2022-02-07 13:37:54','2021-07-18','2021-07-18',50.00000000,'Subscription 2013',4,12,NULL,'CB',NULL,'12345',0,NULL,0,'Bank CBN',NULL,NULL,'',NULL,NULL,NULL),(52,'2020-01-21 10:22:37','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'Subscription 2017',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'smith smith',NULL,'',NULL,NULL,NULL),(53,'2020-01-21 10:23:17','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Pierre Curie',NULL,'',NULL,NULL,NULL),(54,'2020-01-21 10:23:28','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Pierre Curie',NULL,'',NULL,NULL,NULL),(55,'2020-01-21 10:23:49','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CB',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL); +INSERT INTO `llx_bank` VALUES (1,'2012-07-08 23:56:14','2022-12-11 21:23:22','2022-07-08','2022-07-08',2000.00000000,'(Initial balance)',1,NULL,1,'SOLD','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(2,'2012-07-09 00:00:24','2022-12-11 21:23:22','2022-07-09','2022-07-09',500.00000000,'(Initial balance)',2,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(3,'2012-07-10 13:33:42','2022-12-11 21:23:22','2022-07-10','2022-07-10',0.00000000,'(Solde initial)',3,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(5,'2013-07-18 20:50:24','2022-12-11 21:23:22','2022-07-08','2022-07-08',20.00000000,'(CustomerInvoicePayment)',1,1,NULL,'CB','201107',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(6,'2013-07-18 20:50:47','2022-12-11 21:23:22','2022-07-08','2022-07-08',10.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(8,'2013-08-01 03:34:11','2022-12-11 21:23:22','2022-08-15','2022-08-01',5.63000000,'(CustomerInvoicePayment)',1,1,1,'CB','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(12,'2013-08-05 23:11:37','2022-12-11 21:23:22','2022-08-12','2022-08-05',-10.00000000,'(SocialContributionPayment)',1,1,1,'VIR','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(13,'2013-08-06 20:33:54','2022-12-11 21:23:22','2022-08-06','2022-08-06',5.98000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(14,'2013-08-08 02:53:40','2022-12-11 21:23:22','2022-08-08','2022-08-08',26.10000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(15,'2013-08-08 02:55:58','2022-12-11 21:23:22','2022-08-08','2022-08-08',26.96000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201211',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(16,'2014-12-09 15:28:44','2022-12-11 21:23:22','2022-12-09','2022-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(17,'2014-12-09 15:28:53','2022-12-11 21:23:22','2022-12-09','2022-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(18,'2014-12-09 17:35:55','2022-12-11 21:23:22','2022-12-09','2022-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(19,'2014-12-09 17:37:02','2022-12-11 21:23:22','2022-12-09','2022-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(20,'2014-12-09 18:35:07','2022-12-11 21:23:22','2022-12-09','2022-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(21,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12','2021-12-12',1.00000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(22,'2015-03-06 16:48:16','2022-07-04 01:11:35','2022-03-06','2022-03-06',20.00000000,'(SubscriptionPayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(23,'2015-03-20 14:30:11','2022-07-04 01:11:35','2022-03-20','2022-03-20',10.00000000,'(SubscriptionPayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(24,'2016-03-02 19:57:58','2022-12-11 21:23:22','2022-07-09','2022-07-09',605.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'111',NULL,NULL,NULL,NULL,NULL,NULL,0),(26,'2016-03-02 20:01:39','2022-07-04 01:11:35','2022-03-19','2022-03-19',500.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(27,'2016-03-02 20:02:06','2022-07-04 01:11:35','2022-03-21','2022-03-21',400.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'ABC and Co',NULL,NULL,NULL,NULL,NULL,NULL,0),(28,'2016-03-03 19:22:32','2022-12-11 21:23:22','2022-10-03','2022-10-03',-400.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(29,'2016-03-03 19:23:16','2022-07-04 01:11:35','2022-03-10','2022-03-10',-300.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(30,'2018-01-22 18:56:34','2022-02-07 13:37:54','2022-01-22','2022-01-22',-900.00000000,'(SupplierInvoicePayment)',1,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(31,'2018-07-30 22:42:14','2022-12-11 21:23:22','2022-07-30','2022-07-30',0.00000000,'(Initial balance)',4,0,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(32,'2017-02-01 19:02:44','2022-02-07 13:37:54','2022-02-01','2022-02-01',-200.00000000,'(SupplierInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(33,'2017-02-06 08:10:24','2022-07-04 01:11:35','2022-03-22','2022-03-22',150.00000000,'(CustomerInvoicePayment)',1,12,NULL,'CHQ',NULL,NULL,0,NULL,2,NULL,'Magic Food Store',NULL,NULL,NULL,NULL,NULL,NULL,0),(34,'2017-02-06 08:10:50','2022-07-04 01:11:35','2022-03-25','2022-03-25',140.00000000,'(CustomerInvoicePayment)',1,12,NULL,'PRE',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(36,'2017-02-16 02:22:09','2022-07-04 01:11:35','2022-02-16','2022-02-16',-1.00000000,'(ExpenseReportPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(37,'2017-02-21 16:07:43','2022-07-04 01:11:35','2022-02-21','2022-02-21',50.00000000,'(WithdrawalPayment)',1,12,NULL,'PRE',NULL,'T170201',0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(38,'2017-09-06 20:08:36','2022-12-11 21:23:22','2022-09-06','2022-09-06',10.00000000,'(DonationPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(39,'2018-03-16 13:59:31','2022-07-04 01:11:35','2022-03-16','2022-03-16',10.00000000,'(CustomerInvoicePayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Indian SAS',NULL,'',NULL,NULL,NULL,NULL,0),(41,'2019-10-04 10:28:14','2022-02-07 13:37:54','2022-01-19','2022-01-19',5.63000000,'(CustomerInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(42,'2019-10-08 13:18:50','2022-12-11 21:23:22','2022-10-08','2022-10-08',-1000.00000000,'Salary payment',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(43,'2019-12-26 01:48:30','2022-02-07 13:37:54','2021-12-25','2021-12-25',-5.00000000,'(SocialContributionPayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(44,'2019-12-26 01:48:46','2022-02-07 13:37:54','2021-12-25','2021-12-25',-5.00000000,'(SocialContributionPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(47,'2020-01-01 20:28:49','2022-02-07 13:37:54','2022-01-01','2022-01-01',304.69000000,'(SupplierInvoicePayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(48,'2020-01-06 20:52:28','2022-02-07 13:37:54','2022-01-06','2022-01-06',10.00000000,'Patient payment',1,12,NULL,'CB',NULL,NULL,0,NULL,0,NULL,'Patient',NULL,'',NULL,NULL,NULL,NULL,0),(49,'2020-01-10 04:42:47','2022-02-07 13:37:54','2022-01-10','2022-01-10',-10.00000000,'Miscellaneous payment',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(50,'2020-01-16 02:36:48','2022-02-07 13:37:54','2022-01-16','2022-01-16',20.50000000,'(CustomerInvoicePayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'Magic Food Store',NULL,'',NULL,NULL,NULL,NULL,0),(51,'2020-01-21 01:02:14','2022-12-11 21:23:22','2022-07-18','2022-07-18',50.00000000,'Subscription 2013',4,12,NULL,'CB',NULL,'12345',0,NULL,0,'Bank CBN',NULL,NULL,'',NULL,NULL,NULL,NULL,0),(52,'2020-01-21 10:22:37','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'Subscription 2017',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'smith smith',NULL,'',NULL,NULL,NULL,NULL,0),(53,'2020-01-21 10:23:17','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Pierre Curie',NULL,'',NULL,NULL,NULL,NULL,0),(54,'2020-01-21 10:23:28','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Pierre Curie',NULL,'',NULL,NULL,NULL,NULL,0),(55,'2020-01-21 10:23:49','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CB',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0); /*!40000 ALTER TABLE `llx_bank` ENABLE KEYS */; UNLOCK TABLES; @@ -878,47 +1111,48 @@ CREATE TABLE `llx_bank_account` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(12) NOT NULL, + `label` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `bank` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, - `bic` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL, - `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL, - `country_iban` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL, - `cle_iban` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL, - `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `bank` varchar(60) DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(11) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `country_iban` varchar(2) DEFAULT NULL, + `cle_iban` varchar(2) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, + `pti_in_ctti` smallint(6) DEFAULT 0, `state_id` int(11) DEFAULT NULL, `fk_pays` int(11) NOT NULL, - `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, - `owner_address` text COLLATE utf8_unicode_ci DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` text DEFAULT NULL, `courant` smallint(6) NOT NULL DEFAULT 0, `clos` smallint(6) NOT NULL DEFAULT 0, `rappro` smallint(6) DEFAULT 1, - `url` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `account_number` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_journal` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `currency_code` varchar(3) COLLATE utf8_unicode_ci NOT NULL, + `url` varchar(128) DEFAULT NULL, + `account_number` varchar(32) DEFAULT NULL, + `accountancy_journal` varchar(20) DEFAULT NULL, + `currency_code` varchar(3) NOT NULL, `min_allowed` int(11) DEFAULT 0, `min_desired` int(11) DEFAULT 0, - `comment` text COLLATE utf8_unicode_ci DEFAULT NULL, + `comment` text DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_accountancy_journal` int(11) DEFAULT NULL, - `ics` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `ics_transfer` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `ics` varchar(32) DEFAULT NULL, + `ics_transfer` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bank_account_label` (`label`,`entity`), KEY `idx_fk_accountancy_journal` (`fk_accountancy_journal`), CONSTRAINT `fk_bank_account_accountancy_journal` FOREIGN KEY (`fk_accountancy_journal`) REFERENCES `llx_accounting_journal` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -927,7 +1161,7 @@ CREATE TABLE `llx_bank_account` ( LOCK TABLES `llx_bank_account` WRITE; /*!40000 ALTER TABLE `llx_bank_account` DISABLE KEYS */; -INSERT INTO `llx_bank_account` VALUES (1,'2012-07-08 23:56:14','2020-01-10 00:44:44','SWIBAC','Swiss bank account',1,'Switz Gold Bank','','','123456789','','','NL39RABO0314043352',NULL,NULL,'21 jum street',NULL,6,'Mac Golder','11 big road,\r\nZurich',1,0,1,NULL,'502','','EUR',1500,1500,'',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(2,'2012-07-09 00:00:24','2020-01-10 00:44:53','SWIBAC2','Swiss bank account old',1,'Switz Silver Bank','','','','','','NL07SNSB0908534915',NULL,NULL,'Road bankrupt\r\nZurich',NULL,6,'','',1,1,1,NULL,'503','','EUR',200,400,'',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(3,'2012-07-10 13:33:42','2020-01-10 00:44:32','ACCOUNTCASH','Account for cash',1,'','','','','','','',NULL,NULL,'',3,1,'','',2,0,1,NULL,'501','OD','EUR',0,0,'',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(4,'2018-07-30 18:42:14','2021-04-15 13:27:05','LUXBAC','Luxemburg Bank Account',1,'Lux Platinuium Bank','','','','','','NL46INGB0687674581',NULL,NULL,'',NULL,140,'','',1,0,1,NULL,'50','','EUR',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,3,'',''); +INSERT INTO `llx_bank_account` VALUES (1,'2012-07-08 23:56:14','2020-01-10 00:44:44','SWIBAC','Swiss bank account',1,'Switz Gold Bank','','','123456789','','','NL39RABO0314043352',NULL,NULL,'21 jum street',0,NULL,6,'Mac Golder','11 big road,\r\nZurich',1,0,1,NULL,'502','','EUR',1500,1500,'',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(2,'2012-07-09 00:00:24','2020-01-10 00:44:53','SWIBAC2','Swiss bank account old',1,'Switz Silver Bank','','','','','','NL07SNSB0908534915',NULL,NULL,'Road bankrupt\r\nZurich',0,NULL,6,'','',1,1,1,NULL,'503','','EUR',200,400,'',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(3,'2012-07-10 13:33:42','2020-01-10 00:44:32','ACCOUNTCASH','Account for cash',1,'','','','','','','',NULL,NULL,'',0,3,1,'','',2,0,1,NULL,'501','OD','EUR',0,0,'',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(4,'2018-07-30 18:42:14','2021-04-15 13:27:05','LUXBAC','Luxemburg Bank Account',1,'Lux Platinuium Bank','','','','','','NL46INGB0687674581',NULL,NULL,'',0,NULL,140,'','',1,0,1,NULL,'50','','EUR',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,3,'',''); /*!40000 ALTER TABLE `llx_bank_account` ENABLE KEYS */; UNLOCK TABLES; @@ -942,10 +1176,10 @@ CREATE TABLE `llx_bank_account_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_bank_account_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -966,10 +1200,10 @@ DROP TABLE IF EXISTS `llx_bank_categ`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_bank_categ` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -993,7 +1227,7 @@ CREATE TABLE `llx_bank_class` ( `lineid` int(11) NOT NULL, `fk_categ` int(11) NOT NULL, UNIQUE KEY `uk_bank_class_lineid` (`lineid`,`fk_categ`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1005,6 +1239,32 @@ LOCK TABLES `llx_bank_class` WRITE; /*!40000 ALTER TABLE `llx_bank_class` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_bank_extrafields` +-- + +DROP TABLE IF EXISTS `llx_bank_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_bank_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_bank_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_bank_extrafields` +-- + +LOCK TABLES `llx_bank_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_bank_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_bank_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_bank_url` -- @@ -1016,12 +1276,13 @@ CREATE TABLE `llx_bank_url` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_bank` int(11) DEFAULT NULL, `url_id` int(11) DEFAULT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `type` varchar(24) COLLATE utf8_unicode_ci NOT NULL, + `url` varchar(255) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `type` varchar(24) NOT NULL, PRIMARY KEY (`rowid`), - UNIQUE KEY `uk_bank_url` (`fk_bank`,`url_id`,`type`) -) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + UNIQUE KEY `uk_bank_url` (`fk_bank`,`url_id`,`type`), + KEY `idx_bank_url_url_id` (`url_id`) +) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1044,21 +1305,21 @@ DROP TABLE IF EXISTS `llx_blockedlog`; CREATE TABLE `llx_blockedlog` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `action` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, `amounts` double(24,8) DEFAULT NULL, - `signature` varchar(100) COLLATE utf8_unicode_ci NOT NULL, - `signature_line` varchar(100) COLLATE utf8_unicode_ci NOT NULL, - `element` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `signature` varchar(100) NOT NULL, + `signature_line` varchar(100) NOT NULL, + `element` varchar(50) DEFAULT NULL, `fk_object` int(11) DEFAULT NULL, - `ref_object` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_object` varchar(255) DEFAULT NULL, `date_object` datetime DEFAULT NULL, - `object_data` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `object_data` mediumtext DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `certified` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, - `user_fullname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `object_version` varchar(32) COLLATE utf8_unicode_ci DEFAULT '', + `user_fullname` varchar(255) DEFAULT NULL, + `object_version` varchar(32) DEFAULT '', PRIMARY KEY (`rowid`), KEY `signature` (`signature`), KEY `fk_object_element` (`fk_object`,`element`), @@ -1066,7 +1327,7 @@ CREATE TABLE `llx_blockedlog` ( KEY `fk_user` (`fk_user`), KEY `entity_action` (`entity`,`action`), KEY `entity_action_certified` (`entity`,`action`,`certified`) -) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1088,12 +1349,12 @@ DROP TABLE IF EXISTS `llx_blockedlog_authority`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_blockedlog_authority` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `blockchain` longtext COLLATE utf8_unicode_ci NOT NULL, - `signature` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `blockchain` longtext NOT NULL, + `signature` varchar(100) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), KEY `signature` (`signature`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1115,11 +1376,11 @@ DROP TABLE IF EXISTS `llx_bom_bom`; CREATE TABLE `llx_bom_bom` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(128) NOT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, `qty` double(24,8) DEFAULT NULL, `efficiency` double(8,4) DEFAULT 1.0000, @@ -1129,11 +1390,11 @@ CREATE TABLE `llx_bom_bom` ( `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, `duration` double(24,8) DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `bomtype` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bom_bom_ref` (`ref`,`entity`), @@ -1143,7 +1404,7 @@ CREATE TABLE `llx_bom_bom` ( KEY `idx_bom_bom_status` (`status`), KEY `idx_bom_bom_fk_product` (`fk_product`), CONSTRAINT `llx_bom_bom_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1167,10 +1428,10 @@ CREATE TABLE `llx_bom_bom_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_bom_bom_extrafields_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1194,19 +1455,20 @@ CREATE TABLE `llx_bom_bomline` ( `fk_bom` int(11) NOT NULL, `fk_product` int(11) NOT NULL, `fk_bom_child` int(11) DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `qty` double(24,8) NOT NULL, `efficiency` double(8,4) NOT NULL DEFAULT 1.0000, `position` int(11) NOT NULL, `qty_frozen` smallint(6) DEFAULT 0, `disable_stock_change` smallint(6) DEFAULT 0, + `fk_unit` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_bom_bomline_rowid` (`rowid`), KEY `idx_bom_bomline_fk_product` (`fk_product`), KEY `idx_bom_bomline_fk_bom` (`fk_bom`), CONSTRAINT `llx_bom_bomline_fk_bom` FOREIGN KEY (`fk_bom`) REFERENCES `llx_bom_bom` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1215,7 +1477,7 @@ CREATE TABLE `llx_bom_bomline` ( LOCK TABLES `llx_bom_bomline` WRITE; /*!40000 ALTER TABLE `llx_bom_bomline` DISABLE KEYS */; -INSERT INTO `llx_bom_bomline` VALUES (4,6,25,NULL,NULL,NULL,4.00000000,1.0000,1,0,0),(5,6,3,NULL,NULL,NULL,1.00000000,1.0000,3,0,1),(6,6,2,NULL,NULL,NULL,1.00000000,1.0000,2,1,0),(9,6,1,NULL,NULL,NULL,3.00000000,1.0000,0,0,0),(10,7,30,NULL,NULL,NULL,1.00000000,1.0000,2,0,0),(11,7,29,NULL,NULL,NULL,1.00000000,1.0000,4,0,0); +INSERT INTO `llx_bom_bomline` VALUES (4,6,25,NULL,NULL,NULL,4.00000000,1.0000,1,0,0,NULL),(5,6,3,NULL,NULL,NULL,1.00000000,1.0000,3,0,1,NULL),(6,6,2,NULL,NULL,NULL,1.00000000,1.0000,2,1,0,NULL),(9,6,1,NULL,NULL,NULL,3.00000000,1.0000,0,0,0,NULL),(10,7,30,NULL,NULL,NULL,1.00000000,1.0000,2,0,0,NULL),(11,7,29,NULL,NULL,NULL,1.00000000,1.0000,4,0,0,NULL); /*!40000 ALTER TABLE `llx_bom_bomline` ENABLE KEYS */; UNLOCK TABLES; @@ -1230,9 +1492,9 @@ CREATE TABLE `llx_bom_bomline_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1255,15 +1517,15 @@ CREATE TABLE `llx_bookmark` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) NOT NULL, `dateb` datetime DEFAULT NULL, - `url` text COLLATE utf8_unicode_ci DEFAULT NULL, - `target` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, - `title` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `favicon` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, + `url` text DEFAULT NULL, + `target` varchar(16) DEFAULT NULL, + `title` varchar(64) DEFAULT NULL, + `favicon` varchar(24) DEFAULT NULL, `position` int(11) DEFAULT 0, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bookmark_title` (`fk_user`,`entity`,`title`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1287,19 +1549,19 @@ CREATE TABLE `llx_bordereau_cheque` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `datec` datetime NOT NULL, `date_bordereau` date DEFAULT NULL, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `amount` double(24,8) NOT NULL, `nbcheque` smallint(6) NOT NULL, `fk_bank_account` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bordereau_cheque` (`ref`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1324,16 +1586,16 @@ CREATE TABLE `llx_boxes` ( `entity` int(11) NOT NULL DEFAULT 1, `box_id` int(11) NOT NULL, `position` smallint(6) NOT NULL, - `box_order` varchar(3) COLLATE utf8_unicode_ci NOT NULL, + `box_order` varchar(3) NOT NULL, `fk_user` int(11) NOT NULL DEFAULT 0, `maxline` int(11) DEFAULT NULL, - `params` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `params` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_boxes` (`entity`,`box_id`,`position`,`fk_user`), KEY `idx_boxes_boxid` (`box_id`), KEY `idx_boxes_fk_user` (`fk_user`), CONSTRAINT `fk_boxes_box_id` FOREIGN KEY (`box_id`) REFERENCES `llx_boxes_def` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=1459 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1476 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1342,7 +1604,7 @@ CREATE TABLE `llx_boxes` ( LOCK TABLES `llx_boxes` WRITE; /*!40000 ALTER TABLE `llx_boxes` DISABLE KEYS */; -INSERT INTO `llx_boxes` VALUES (253,2,323,0,'0',0,NULL,NULL),(304,2,324,0,'0',0,NULL,NULL),(305,2,325,0,'0',0,NULL,NULL),(306,2,326,0,'0',0,NULL,NULL),(307,2,327,0,'0',0,NULL,NULL),(308,2,328,0,'0',0,NULL,NULL),(309,2,329,0,'0',0,NULL,NULL),(310,2,330,0,'0',0,NULL,NULL),(311,2,331,0,'0',0,NULL,NULL),(312,2,332,0,'0',0,NULL,NULL),(313,2,333,0,'0',0,NULL,NULL),(314,1,347,0,'A27',0,NULL,NULL),(315,1,348,0,'B20',0,NULL,NULL),(316,1,349,0,'B10',0,NULL,NULL),(317,1,350,0,'B18',0,NULL,NULL),(344,1,374,0,'B08',0,NULL,NULL),(347,1,377,0,'B16',0,NULL,NULL),(348,1,378,0,'B06',0,NULL,NULL),(358,1,388,0,'B38',0,NULL,NULL),(359,1,389,0,'A13',0,NULL,NULL),(360,1,390,0,'B36',0,NULL,NULL),(362,1,392,0,'A35',0,NULL,NULL),(363,1,393,0,'A11',0,NULL,NULL),(366,1,396,0,'B12',0,NULL,NULL),(387,1,403,0,'B22',0,NULL,NULL),(392,1,409,0,'A15',0,NULL,NULL),(393,1,410,0,'A33',0,NULL,NULL),(394,1,411,0,'A25',0,NULL,NULL),(395,1,412,0,'B30',0,NULL,NULL),(396,1,413,0,'A23',0,NULL,NULL),(397,1,414,0,'B28',0,NULL,NULL),(398,1,415,0,'A21',0,NULL,NULL),(399,1,416,0,'B26',0,NULL,NULL),(400,1,417,0,'A19',0,NULL,NULL),(401,1,418,0,'B24',0,NULL,NULL),(501,1,419,0,'A17',0,NULL,NULL),(1019,1,392,0,'A01',2,NULL,NULL),(1021,1,412,0,'A03',2,NULL,NULL),(1022,1,347,0,'A04',2,NULL,NULL),(1023,1,393,0,'A05',2,NULL,NULL),(1025,1,389,0,'A07',2,NULL,NULL),(1026,1,416,0,'A08',2,NULL,NULL),(1027,1,396,0,'B01',2,NULL,NULL),(1028,1,377,0,'B02',2,NULL,NULL),(1031,1,419,0,'B05',2,NULL,NULL),(1036,1,424,0,'A29',0,NULL,NULL),(1037,1,425,0,'B32',0,NULL,NULL),(1038,1,426,0,'B34',0,NULL,NULL),(1150,1,430,0,'A37',0,NULL,NULL),(1151,1,431,0,'A05',0,NULL,NULL),(1152,1,429,0,'A01',1,NULL,NULL),(1153,1,429,0,'B01',2,NULL,NULL),(1154,1,429,0,'A01',11,NULL,NULL),(1156,1,429,0,'A07',0,NULL,NULL),(1183,1,433,0,'A09',0,NULL,NULL),(1184,1,434,0,'B14',0,NULL,NULL),(1235,1,404,0,'B01',1,NULL,NULL),(1236,1,404,0,'B01',2,NULL,NULL),(1237,1,404,0,'B01',11,NULL,NULL),(1239,1,404,0,'A31',0,NULL,NULL),(1407,1,412,0,'A01',12,NULL,NULL),(1408,1,378,0,'A02',12,NULL,NULL),(1409,1,404,0,'A03',12,NULL,NULL),(1410,1,377,0,'A04',12,NULL,NULL),(1411,1,392,0,'B01',12,NULL,NULL),(1412,1,429,0,'B02',12,NULL,NULL),(1414,1,414,0,'B04',12,NULL,NULL),(1415,1,413,0,'B05',12,NULL,NULL),(1416,1,426,0,'B06',12,NULL,NULL),(1418,1,445,0,'B02',0,NULL,NULL),(1426,1,450,2,'A01',0,NULL,NULL),(1427,1,451,2,'B01',0,NULL,NULL),(1428,1,452,2,'A01',0,NULL,NULL),(1429,1,453,2,'B01',0,NULL,NULL),(1430,1,454,11,'A01',0,NULL,NULL),(1431,1,455,11,'B01',0,NULL,NULL),(1432,1,456,11,'A01',0,NULL,NULL),(1433,1,457,11,'B01',0,NULL,NULL),(1434,1,461,11,'A01',0,NULL,NULL),(1435,1,462,11,'B01',0,NULL,NULL),(1436,1,448,0,'A01',1,NULL,NULL),(1437,1,448,0,'B01',2,NULL,NULL),(1438,1,448,0,'A01',11,NULL,NULL),(1439,1,448,0,'A01',12,NULL,NULL),(1440,1,448,0,'A01',0,NULL,NULL),(1441,1,449,0,'B01',1,NULL,NULL),(1442,1,449,0,'A01',2,NULL,NULL),(1443,1,449,0,'B01',11,NULL,NULL),(1444,1,449,0,'A01',12,NULL,NULL),(1445,1,449,0,'B01',0,NULL,NULL),(1449,1,452,2,'A01',12,NULL,NULL),(1450,1,451,2,'B01',12,NULL,NULL),(1451,1,450,2,'B02',12,NULL,NULL),(1452,1,453,2,'B03',12,NULL,NULL),(1456,1,474,0,'0',0,NULL,NULL),(1457,1,475,0,'0',0,NULL,NULL),(1458,1,476,0,'0',0,NULL,NULL); +INSERT INTO `llx_boxes` VALUES (253,2,323,0,'0',0,NULL,NULL),(304,2,324,0,'0',0,NULL,NULL),(305,2,325,0,'0',0,NULL,NULL),(306,2,326,0,'0',0,NULL,NULL),(307,2,327,0,'0',0,NULL,NULL),(308,2,328,0,'0',0,NULL,NULL),(309,2,329,0,'0',0,NULL,NULL),(310,2,330,0,'0',0,NULL,NULL),(311,2,331,0,'0',0,NULL,NULL),(312,2,332,0,'0',0,NULL,NULL),(313,2,333,0,'0',0,NULL,NULL),(314,1,347,0,'A15',0,NULL,NULL),(315,1,348,0,'A29',0,NULL,NULL),(316,1,349,0,'A25',0,NULL,NULL),(317,1,350,0,'B28',0,NULL,NULL),(344,1,374,0,'B24',0,NULL,NULL),(347,1,377,0,'A27',0,NULL,NULL),(348,1,378,0,'A23',0,NULL,NULL),(358,1,388,0,'B38',0,NULL,NULL),(359,1,389,0,'B08',0,NULL,NULL),(360,1,390,0,'A37',0,NULL,NULL),(362,1,392,0,'A19',0,NULL,NULL),(363,1,393,0,'A07',0,NULL,NULL),(366,1,396,0,'B26',0,NULL,NULL),(387,1,403,0,'B30',0,NULL,NULL),(392,1,409,0,'A09',0,NULL,NULL),(393,1,410,0,'B18',0,NULL,NULL),(394,1,411,0,'B14',0,NULL,NULL),(395,1,412,0,'B34',0,NULL,NULL),(396,1,413,0,'A13',0,NULL,NULL),(397,1,414,0,'A33',0,NULL,NULL),(398,1,415,0,'B12',0,NULL,NULL),(399,1,416,0,'B32',0,NULL,NULL),(400,1,417,0,'A11',0,NULL,NULL),(401,1,418,0,'A31',0,NULL,NULL),(501,1,419,0,'B10',0,NULL,NULL),(1019,1,392,0,'A01',2,NULL,NULL),(1021,1,412,0,'A03',2,NULL,NULL),(1022,1,347,0,'A04',2,NULL,NULL),(1023,1,393,0,'A05',2,NULL,NULL),(1025,1,389,0,'A07',2,NULL,NULL),(1026,1,416,0,'A08',2,NULL,NULL),(1027,1,396,0,'B01',2,NULL,NULL),(1028,1,377,0,'B02',2,NULL,NULL),(1031,1,419,0,'B05',2,NULL,NULL),(1036,1,424,0,'B16',0,NULL,NULL),(1037,1,425,0,'A35',0,NULL,NULL),(1038,1,426,0,'B36',0,NULL,NULL),(1150,1,430,0,'B20',0,NULL,NULL),(1152,1,429,0,'A01',1,NULL,NULL),(1153,1,429,0,'B01',2,NULL,NULL),(1154,1,429,0,'A01',11,NULL,NULL),(1156,1,429,0,'A05',0,NULL,NULL),(1183,1,433,0,'B06',0,NULL,NULL),(1235,1,404,0,'B01',1,NULL,NULL),(1236,1,404,0,'B01',2,NULL,NULL),(1237,1,404,0,'B01',11,NULL,NULL),(1239,1,404,0,'A17',0,NULL,NULL),(1407,1,412,0,'A01',12,NULL,NULL),(1408,1,378,0,'A02',12,NULL,NULL),(1409,1,404,0,'A03',12,NULL,NULL),(1410,1,377,0,'A04',12,NULL,NULL),(1411,1,392,0,'B01',12,NULL,NULL),(1412,1,429,0,'B02',12,NULL,NULL),(1414,1,414,0,'B04',12,NULL,NULL),(1415,1,413,0,'B05',12,NULL,NULL),(1416,1,426,0,'B06',12,NULL,NULL),(1418,1,445,0,'B22',0,NULL,NULL),(1426,1,450,2,'B40',0,NULL,NULL),(1427,1,451,2,'A41',0,NULL,NULL),(1428,1,452,2,'A39',0,NULL,NULL),(1429,1,453,2,'B42',0,NULL,NULL),(1430,1,454,11,'B44',0,NULL,NULL),(1431,1,455,11,'B48',0,NULL,NULL),(1432,1,456,11,'A43',0,NULL,NULL),(1433,1,457,11,'A47',0,NULL,NULL),(1434,1,461,11,'A45',0,NULL,NULL),(1435,1,462,11,'B46',0,NULL,NULL),(1436,1,448,0,'A01',1,NULL,NULL),(1437,1,448,0,'B01',2,NULL,NULL),(1438,1,448,0,'A01',11,NULL,NULL),(1439,1,448,0,'A01',12,NULL,NULL),(1440,1,448,0,'B04',0,NULL,NULL),(1441,1,449,0,'B01',1,NULL,NULL),(1442,1,449,0,'A01',2,NULL,NULL),(1443,1,449,0,'B01',11,NULL,NULL),(1444,1,449,0,'A01',12,NULL,NULL),(1445,1,449,0,'A21',0,NULL,NULL),(1449,1,452,2,'A01',12,NULL,NULL),(1450,1,451,2,'B01',12,NULL,NULL),(1451,1,450,2,'B02',12,NULL,NULL),(1452,1,453,2,'B03',12,NULL,NULL),(1468,1,486,0,'A03',0,NULL,NULL),(1469,1,487,0,'B02',0,NULL,NULL),(1470,1,488,0,'A01',0,NULL,NULL),(1471,1,438,0,'A01',1,NULL,NULL),(1472,1,438,0,'B01',2,NULL,NULL),(1473,1,438,0,'A01',11,NULL,NULL),(1474,1,438,0,'B01',12,NULL,NULL),(1475,1,438,0,'A01',0,NULL,NULL); /*!40000 ALTER TABLE `llx_boxes` ENABLE KEYS */; UNLOCK TABLES; @@ -1355,13 +1617,14 @@ DROP TABLE IF EXISTS `llx_boxes_def`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_boxes_def` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `file` varchar(200) COLLATE utf8_unicode_ci NOT NULL, + `file` varchar(200) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `note` varchar(130) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` varchar(130) DEFAULT NULL, + `fk_user` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_boxes_def` (`file`,`entity`,`note`) -) ENGINE=InnoDB AUTO_INCREMENT=477 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=489 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1370,7 +1633,7 @@ CREATE TABLE `llx_boxes_def` ( LOCK TABLES `llx_boxes_def` WRITE; /*!40000 ALTER TABLE `llx_boxes_def` DISABLE KEYS */; -INSERT INTO `llx_boxes_def` VALUES (323,'box_actions.php',2,'2015-03-13 15:29:19',NULL),(324,'box_clients.php',2,'2015-03-13 20:21:35',NULL),(325,'box_prospect.php',2,'2015-03-13 20:21:35',NULL),(326,'box_contacts.php',2,'2015-03-13 20:21:35',NULL),(327,'box_activity.php',2,'2015-03-13 20:21:35','(WarningUsingThisBoxSlowDown)'),(328,'box_propales.php',2,'2015-03-13 20:32:38',NULL),(329,'box_comptes.php',2,'2015-03-13 20:33:09',NULL),(330,'box_factures_imp.php',2,'2015-03-13 20:33:09',NULL),(331,'box_factures.php',2,'2015-03-13 20:33:09',NULL),(332,'box_produits.php',2,'2015-03-13 20:33:09',NULL),(333,'box_produits_alerte_stock.php',2,'2015-03-13 20:33:09',NULL),(347,'box_clients.php',1,'2017-11-15 22:05:57',NULL),(348,'box_prospect.php',1,'2017-11-15 22:05:57',NULL),(349,'box_contacts.php',1,'2017-11-15 22:05:57',NULL),(350,'box_activity.php',1,'2017-11-15 22:05:57','(WarningUsingThisBoxSlowDown)'),(374,'box_services_contracts.php',1,'2017-11-15 22:38:37',NULL),(377,'box_project.php',1,'2017-11-15 22:38:44',NULL),(378,'box_task.php',1,'2017-11-15 22:38:44',NULL),(388,'box_contracts.php',1,'2017-11-15 22:39:52',NULL),(389,'box_services_expired.php',1,'2017-11-15 22:39:52',NULL),(390,'box_ficheinter.php',1,'2017-11-15 22:39:56',NULL),(392,'box_graph_propales_permonth.php',1,'2017-11-15 22:41:47',NULL),(393,'box_propales.php',1,'2017-11-15 22:41:47',NULL),(396,'box_graph_product_distribution.php',1,'2017-11-15 22:41:47',NULL),(403,'box_goodcustomers.php',1,'2018-07-30 11:13:20','(WarningUsingThisBoxSlowDown)'),(404,'box_external_rss.php',1,'2018-07-30 11:15:25','1 (Dolibarr.org News)'),(409,'box_produits.php',1,'2018-07-30 13:38:11',NULL),(410,'box_produits_alerte_stock.php',1,'2018-07-30 13:38:11',NULL),(411,'box_commandes.php',1,'2018-07-30 13:38:11',NULL),(412,'box_graph_orders_permonth.php',1,'2018-07-30 13:38:11',NULL),(413,'box_graph_invoices_supplier_permonth.php',1,'2018-07-30 13:38:11',NULL),(414,'box_graph_orders_supplier_permonth.php',1,'2018-07-30 13:38:11',NULL),(415,'box_fournisseurs.php',1,'2018-07-30 13:38:11',NULL),(416,'box_factures_fourn_imp.php',1,'2018-07-30 13:38:11',NULL),(417,'box_factures_fourn.php',1,'2018-07-30 13:38:11',NULL),(418,'box_supplier_orders.php',1,'2018-07-30 13:38:11',NULL),(419,'box_actions.php',1,'2018-07-30 15:42:32',NULL),(424,'box_factures_imp.php',1,'2017-02-07 18:56:12',NULL),(425,'box_factures.php',1,'2017-02-07 18:56:12',NULL),(426,'box_graph_invoices_permonth.php',1,'2017-02-07 18:56:12',NULL),(429,'box_lastlogin.php',1,'2017-08-27 13:29:14',NULL),(430,'box_bookmarks.php',1,'2018-01-19 11:27:34',NULL),(431,'box_members.php',1,'2018-01-19 11:27:56',NULL),(432,'box_birthdays.php',1,'2019-06-05 08:45:40',NULL),(433,'box_last_ticket',1,'2019-06-05 09:15:29',NULL),(434,'box_last_modified_ticket',1,'2019-06-05 09:15:29',NULL),(436,'box_accountancy_last_manual_entries.php',1,'2019-11-28 11:52:58',NULL),(437,'box_accountancy_suspense_account.php',1,'2019-11-28 11:52:58',NULL),(438,'box_supplier_orders_awaiting_reception.php',1,'2019-11-28 11:52:59',NULL),(445,'box_shipments.php',1,'2020-01-13 14:38:20',NULL),(446,'box_funnel_of_prospection.php',1,'2020-12-10 12:24:40',NULL),(447,'box_customers_outstanding_bill_reached.php',1,'2020-12-10 12:24:40',NULL),(448,'box_scheduled_jobs.php',1,'2021-04-15 10:22:49',NULL),(449,'box_dolibarr_state_board.php',1,'2021-04-15 10:22:54',NULL),(450,'box_members_last_modified.php',1,'2021-04-15 10:22:54',NULL),(451,'box_members_last_subscriptions.php',1,'2021-04-15 10:22:54',NULL),(452,'box_members_subscriptions_by_year.php',1,'2021-04-15 10:22:54',NULL),(453,'box_members_by_type.php',1,'2021-04-15 10:22:54',NULL),(454,'box_graph_ticket_by_severity.php',1,'2021-04-15 10:22:55',NULL),(455,'box_graph_nb_ticket_last_x_days.php',1,'2021-04-15 10:22:55',NULL),(456,'box_graph_nb_tickets_type.php',1,'2021-04-15 10:22:55',NULL),(457,'box_graph_new_vs_close_ticket.php',1,'2021-04-15 10:22:55',NULL),(461,'box_last_ticket.php',1,'2021-04-15 10:23:01',NULL),(462,'box_last_modified_ticket.php',1,'2021-04-15 10:23:01',NULL),(470,'box_ticket_by_severity.php',1,'2021-07-11 17:49:47',NULL),(471,'box_nb_ticket_last_x_days.php',1,'2021-07-11 17:49:47',NULL),(472,'box_nb_tickets_type.php',1,'2021-07-11 17:49:47',NULL),(473,'box_new_vs_close_ticket.php',1,'2021-07-11 17:49:47',NULL),(474,'box_boms.php',1,'2022-02-07 13:38:16',NULL),(475,'box_comptes.php',1,'2022-02-07 13:38:16',NULL),(476,'box_mos.php',1,'2022-02-07 13:38:17',NULL); +INSERT INTO `llx_boxes_def` VALUES (323,'box_actions.php',2,'2015-03-13 15:29:19',NULL,0),(324,'box_clients.php',2,'2015-03-13 20:21:35',NULL,0),(325,'box_prospect.php',2,'2015-03-13 20:21:35',NULL,0),(326,'box_contacts.php',2,'2015-03-13 20:21:35',NULL,0),(327,'box_activity.php',2,'2015-03-13 20:21:35','(WarningUsingThisBoxSlowDown)',0),(328,'box_propales.php',2,'2015-03-13 20:32:38',NULL,0),(329,'box_comptes.php',2,'2015-03-13 20:33:09',NULL,0),(330,'box_factures_imp.php',2,'2015-03-13 20:33:09',NULL,0),(331,'box_factures.php',2,'2015-03-13 20:33:09',NULL,0),(332,'box_produits.php',2,'2015-03-13 20:33:09',NULL,0),(333,'box_produits_alerte_stock.php',2,'2015-03-13 20:33:09',NULL,0),(347,'box_clients.php',1,'2017-11-15 22:05:57',NULL,0),(348,'box_prospect.php',1,'2017-11-15 22:05:57',NULL,0),(349,'box_contacts.php',1,'2017-11-15 22:05:57',NULL,0),(350,'box_activity.php',1,'2017-11-15 22:05:57','(WarningUsingThisBoxSlowDown)',0),(374,'box_services_contracts.php',1,'2017-11-15 22:38:37',NULL,0),(377,'box_project.php',1,'2017-11-15 22:38:44',NULL,0),(378,'box_task.php',1,'2017-11-15 22:38:44',NULL,0),(388,'box_contracts.php',1,'2017-11-15 22:39:52',NULL,0),(389,'box_services_expired.php',1,'2017-11-15 22:39:52',NULL,0),(390,'box_ficheinter.php',1,'2017-11-15 22:39:56',NULL,0),(392,'box_graph_propales_permonth.php',1,'2017-11-15 22:41:47',NULL,0),(393,'box_propales.php',1,'2017-11-15 22:41:47',NULL,0),(396,'box_graph_product_distribution.php',1,'2017-11-15 22:41:47',NULL,0),(403,'box_goodcustomers.php',1,'2018-07-30 11:13:20','(WarningUsingThisBoxSlowDown)',0),(404,'box_external_rss.php',1,'2018-07-30 11:15:25','1 (Dolibarr.org News)',0),(409,'box_produits.php',1,'2018-07-30 13:38:11',NULL,0),(410,'box_produits_alerte_stock.php',1,'2018-07-30 13:38:11',NULL,0),(411,'box_commandes.php',1,'2018-07-30 13:38:11',NULL,0),(412,'box_graph_orders_permonth.php',1,'2018-07-30 13:38:11',NULL,0),(413,'box_graph_invoices_supplier_permonth.php',1,'2018-07-30 13:38:11',NULL,0),(414,'box_graph_orders_supplier_permonth.php',1,'2018-07-30 13:38:11',NULL,0),(415,'box_fournisseurs.php',1,'2018-07-30 13:38:11',NULL,0),(416,'box_factures_fourn_imp.php',1,'2018-07-30 13:38:11',NULL,0),(417,'box_factures_fourn.php',1,'2018-07-30 13:38:11',NULL,0),(418,'box_supplier_orders.php',1,'2018-07-30 13:38:11',NULL,0),(419,'box_actions.php',1,'2018-07-30 15:42:32',NULL,0),(424,'box_factures_imp.php',1,'2017-02-07 18:56:12',NULL,0),(425,'box_factures.php',1,'2017-02-07 18:56:12',NULL,0),(426,'box_graph_invoices_permonth.php',1,'2017-02-07 18:56:12',NULL,0),(429,'box_lastlogin.php',1,'2017-08-27 13:29:14',NULL,0),(430,'box_bookmarks.php',1,'2018-01-19 11:27:34',NULL,0),(432,'box_birthdays.php',1,'2019-06-05 08:45:40',NULL,0),(433,'box_last_ticket',1,'2019-06-05 09:15:29',NULL,0),(436,'box_accountancy_last_manual_entries.php',1,'2019-11-28 11:52:58',NULL,0),(437,'box_accountancy_suspense_account.php',1,'2019-11-28 11:52:58',NULL,0),(438,'box_supplier_orders_awaiting_reception.php',1,'2019-11-28 11:52:59',NULL,0),(445,'box_shipments.php',1,'2020-01-13 14:38:20',NULL,0),(446,'box_funnel_of_prospection.php',1,'2020-12-10 12:24:40',NULL,0),(447,'box_customers_outstanding_bill_reached.php',1,'2020-12-10 12:24:40',NULL,0),(448,'box_scheduled_jobs.php',1,'2021-04-15 10:22:49',NULL,0),(449,'box_dolibarr_state_board.php',1,'2021-04-15 10:22:54',NULL,0),(450,'box_members_last_modified.php',1,'2021-04-15 10:22:54',NULL,0),(451,'box_members_last_subscriptions.php',1,'2021-04-15 10:22:54',NULL,0),(452,'box_members_subscriptions_by_year.php',1,'2021-04-15 10:22:54',NULL,0),(453,'box_members_by_type.php',1,'2021-04-15 10:22:54',NULL,0),(454,'box_graph_ticket_by_severity.php',1,'2021-04-15 10:22:55',NULL,0),(455,'box_graph_nb_ticket_last_x_days.php',1,'2021-04-15 10:22:55',NULL,0),(456,'box_graph_nb_tickets_type.php',1,'2021-04-15 10:22:55',NULL,0),(457,'box_graph_new_vs_close_ticket.php',1,'2021-04-15 10:22:55',NULL,0),(461,'box_last_ticket.php',1,'2021-04-15 10:23:01',NULL,0),(462,'box_last_modified_ticket.php',1,'2021-04-15 10:23:01',NULL,0),(470,'box_ticket_by_severity.php',1,'2021-07-11 17:49:47',NULL,0),(471,'box_nb_ticket_last_x_days.php',1,'2021-07-11 17:49:47',NULL,0),(472,'box_nb_tickets_type.php',1,'2021-07-11 17:49:47',NULL,0),(473,'box_new_vs_close_ticket.php',1,'2021-07-11 17:49:47',NULL,0),(486,'box_boms.php',1,'2022-12-11 21:23:42',NULL,0),(487,'box_comptes.php',1,'2022-12-11 21:23:42',NULL,0),(488,'box_mos.php',1,'2022-12-11 21:23:43',NULL,0); /*!40000 ALTER TABLE `llx_boxes_def` ENABLE KEYS */; UNLOCK TABLES; @@ -1384,9 +1647,9 @@ DROP TABLE IF EXISTS `llx_budget`; CREATE TABLE `llx_budget` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(255) NOT NULL, `status` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `date_start` date DEFAULT NULL, `date_end` date DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -1395,7 +1658,7 @@ CREATE TABLE `llx_budget` ( `fk_user_modif` int(11) DEFAULT NULL, `import_key` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1417,7 +1680,7 @@ DROP TABLE IF EXISTS `llx_budget_lines`; CREATE TABLE `llx_budget_lines` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_budget` int(11) NOT NULL, - `fk_project_ids` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `fk_project_ids` varchar(255) NOT NULL, `amount` double(24,8) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -1427,7 +1690,7 @@ CREATE TABLE `llx_budget_lines` ( PRIMARY KEY (`rowid`), UNIQUE KEY `uk_budget_lines` (`fk_budget`,`fk_project_ids`), CONSTRAINT `fk_budget_lines_budget` FOREIGN KEY (`fk_budget`) REFERENCES `llx_budget` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1449,18 +1712,18 @@ DROP TABLE IF EXISTS `llx_c_accounting_category`; CREATE TABLE `llx_c_accounting_category` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `range_account` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(255) NOT NULL, + `range_account` varchar(255) NOT NULL, `sens` tinyint(4) NOT NULL DEFAULT 0, `category_type` tinyint(4) NOT NULL DEFAULT 0, - `formula` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `formula` varchar(255) NOT NULL, `position` int(11) DEFAULT 0, `fk_country` int(11) DEFAULT NULL, `active` int(11) DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_accounting_category` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1482,15 +1745,15 @@ DROP TABLE IF EXISTS `llx_c_action_trigger`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_action_trigger` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(64) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `elementtype` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(128) DEFAULT NULL, + `label` varchar(128) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `elementtype` varchar(64) DEFAULT NULL, `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_action_trigger_code` (`code`), KEY `idx_action_trigger_rang` (`rang`) -) ENGINE=InnoDB AUTO_INCREMENT=407 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=595 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1499,7 +1762,7 @@ CREATE TABLE `llx_c_action_trigger` ( LOCK TABLES `llx_c_action_trigger` WRITE; /*!40000 ALTER TABLE `llx_c_action_trigger` DISABLE KEYS */; -INSERT INTO `llx_c_action_trigger` VALUES (131,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1),(132,'COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1),(133,'PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2),(134,'PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3),(135,'ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4),(136,'ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5),(137,'ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5),(138,'ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5),(139,'ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5),(140,'BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6),(141,'BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7),(142,'BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8),(143,'BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9),(144,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10),(145,'ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(146,'ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',12),(147,'ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13),(148,'ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14),(149,'BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15),(150,'BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16),(151,'BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17),(152,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17),(153,'CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18),(154,'SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20),(155,'SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21),(156,'MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22),(158,'MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',24),(159,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',24),(160,'MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',25),(161,'FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',19),(162,'FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(163,'FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(164,'FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',19),(165,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',19),(166,'PROJECT_CREATE','Project creation','Executed when a project is created','project',140),(167,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2),(168,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2),(169,'PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2),(170,'TASK_CREATE','Task created','Executed when a project task is created','project',35),(171,'TASK_MODIFY','Task modified','Executed when a project task is modified','project',36),(172,'TASK_DELETE','Task deleted','Executed when a project task is deleted','project',37),(173,'BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15),(174,'PROJECT_MODIFY','Project modified','Executed when a project is modified','project',141),(175,'PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',142),(176,'ORDER_SUPPLIER_CREATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(177,'ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',12),(178,'ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',12),(179,'ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14),(180,'PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30),(181,'PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30),(182,'PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30),(183,'EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201),(185,'EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202),(186,'EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203),(187,'EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204),(192,'HOLIDAY_CREATE','Leave request created','Executed when a leave request is created','holiday',221),(193,'HOLIDAY_VALIDATE','Leave request validated','Executed when a leave request is validated','holiday',222),(194,'HOLIDAY_APPROVE','Leave request approved','Executed when a leave request is approved','holiday',223),(210,'MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23),(211,'CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18),(212,'PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10),(213,'PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10),(214,'PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10),(215,'PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10),(216,'MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24),(217,'MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24),(218,'MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24),(225,'COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1),(226,'PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2),(227,'ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5),(228,'BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9),(229,'PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10),(230,'ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14),(231,'BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17),(232,'CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18),(233,'FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35),(234,'EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204),(249,'TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161),(250,'TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163),(251,'TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is assigned to another user','ticket',164),(252,'TICKET_CLOSE','Ticket closed','Executed when a ticket is closed','ticket',165),(253,'TICKET_SENTBYMAIL','Ticket message sent by email','Executed when a message is sent from the ticket record','ticket',166),(254,'TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',167),(261,'USER_SENTBYMAIL','Email sent','Executed when an email is sent from user card','user',300),(262,'BOM_VALIDATE','BOM validated','Executed when a BOM is validated','bom',650),(263,'BOM_UNVALIDATE','BOM unvalidated','Executed when a BOM is unvalidated','bom',651),(264,'BOM_CLOSE','BOM disabled','Executed when a BOM is disabled','bom',652),(265,'BOM_REOPEN','BOM reopen','Executed when a BOM is re-open','bom',653),(266,'BOM_DELETE','BOM deleted','Executed when a BOM deleted','bom',654),(351,'MRP_MO_VALIDATE','MO validated','Executed when a MO is validated','bom',660),(352,'MRP_MO_PRODUCED','MO produced','Executed when a MO is produced','bom',661),(353,'MRP_MO_DELETE','MO deleted','Executed when a MO is deleted','bom',662),(354,'MRP_MO_CANCEL','MO canceled','Executed when a MO is canceled','bom',663),(365,'CONTACT_CREATE','Contact address created','Executed when a contact is created','contact',50),(366,'CONTACT_SENTBYMAIL','Mails sent from third party card','Executed when you send email from contact adress card','contact',51),(367,'CONTACT_DELETE','Contact address deleted','Executed when a contact is deleted','contact',52),(368,'RECRUITMENTJOBPOSITION_CREATE','Job created','Executed when a job is created','recruitment',7500),(369,'RECRUITMENTJOBPOSITION_MODIFY','Job modified','Executed when a job is modified','recruitment',7502),(370,'RECRUITMENTJOBPOSITION_SENTBYMAIL','Mails sent from job record','Executed when you send email from job record','recruitment',7504),(371,'RECRUITMENTJOBPOSITION_DELETE','Job deleted','Executed when a job is deleted','recruitment',7506),(372,'RECRUITMENTCANDIDATURE_CREATE','Candidature created','Executed when a candidature is created','recruitment',7510),(373,'RECRUITMENTCANDIDATURE_MODIFY','Candidature modified','Executed when a candidature is modified','recruitment',7512),(374,'RECRUITMENTCANDIDATURE_SENTBYMAIL','Mails sent from candidature record','Executed when you send email from candidature record','recruitment',7514),(375,'RECRUITMENTCANDIDATURE_DELETE','Candidature deleted','Executed when a candidature is deleted','recruitment',7516),(392,'COMPANY_MODIFY','Third party update','Executed when you update third party','societe',1),(393,'CONTACT_MODIFY','Contact address update','Executed when a contact is updated','contact',51),(394,'ORDER_SUPPLIER_CANCEL','Supplier order request canceled','Executed when a supplier order is canceled','order_supplier',13),(395,'MEMBER_EXCLUDE','Member excluded','Executed when a member is excluded','member',27),(396,'USER_CREATE','User created','Executed when a user is created','user',301),(397,'USER_MODIFY','User update','Executed when a user is updated','user',302),(398,'USER_DELETE','User update','Executed when a user is deleted','user',303),(399,'USER_NEW_PASSWORD','User update','Executed when a user is change password','user',304),(400,'USER_ENABLEDISABLE','User update','Executed when a user is enable or disable','user',305),(402,'HOLIDAY_MODIFY','Holiday modified','Executed when a holiday is modified','holiday',801),(405,'HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802),(406,'HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804); +INSERT INTO `llx_c_action_trigger` VALUES (131,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1),(132,'COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1),(133,'PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2),(134,'PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3),(135,'ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4),(136,'ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5),(137,'ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5),(138,'ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5),(139,'ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5),(140,'BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6),(141,'BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7),(142,'BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8),(143,'BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9),(144,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10),(145,'ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(146,'ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',12),(147,'ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13),(148,'ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14),(149,'BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15),(150,'BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16),(151,'BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17),(152,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17),(153,'CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18),(154,'SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20),(155,'SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21),(156,'MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22),(158,'MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',24),(159,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',24),(160,'MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',25),(161,'FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',19),(162,'FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(163,'FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(164,'FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',19),(165,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',19),(166,'PROJECT_CREATE','Project creation','Executed when a project is created','project',140),(167,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2),(168,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2),(169,'PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2),(170,'TASK_CREATE','Task created','Executed when a project task is created','project',35),(171,'TASK_MODIFY','Task modified','Executed when a project task is modified','project',36),(172,'TASK_DELETE','Task deleted','Executed when a project task is deleted','project',37),(173,'BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15),(174,'PROJECT_MODIFY','Project modified','Executed when a project is modified','project',141),(175,'PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',142),(176,'ORDER_SUPPLIER_CREATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(177,'ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',12),(178,'ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',12),(179,'ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14),(180,'PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30),(181,'PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30),(182,'PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30),(183,'EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201),(185,'EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202),(186,'EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203),(187,'EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204),(192,'HOLIDAY_CREATE','Leave request created','Executed when a leave request is created','holiday',221),(193,'HOLIDAY_VALIDATE','Leave request validated','Executed when a leave request is validated','holiday',222),(194,'HOLIDAY_APPROVE','Leave request approved','Executed when a leave request is approved','holiday',223),(210,'MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23),(211,'CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18),(212,'PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10),(213,'PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10),(214,'PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10),(215,'PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10),(216,'MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24),(217,'MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24),(218,'MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24),(225,'COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1),(226,'PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2),(227,'ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5),(228,'BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9),(229,'PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10),(230,'ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14),(231,'BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17),(232,'CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18),(233,'FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35),(234,'EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204),(249,'TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161),(250,'TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163),(251,'TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is assigned to another user','ticket',164),(252,'TICKET_CLOSE','Ticket closed','Executed when a ticket is closed','ticket',165),(253,'TICKET_SENTBYMAIL','Ticket message sent by email','Executed when a message is sent from the ticket record','ticket',166),(254,'TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',167),(261,'USER_SENTBYMAIL','Email sent','Executed when an email is sent from user card','user',300),(262,'BOM_VALIDATE','BOM validated','Executed when a BOM is validated','bom',650),(263,'BOM_UNVALIDATE','BOM unvalidated','Executed when a BOM is unvalidated','bom',651),(264,'BOM_CLOSE','BOM disabled','Executed when a BOM is disabled','bom',652),(265,'BOM_REOPEN','BOM reopen','Executed when a BOM is re-open','bom',653),(266,'BOM_DELETE','BOM deleted','Executed when a BOM deleted','bom',654),(351,'MRP_MO_VALIDATE','MO validated','Executed when a MO is validated','bom',660),(352,'MRP_MO_PRODUCED','MO produced','Executed when a MO is produced','bom',661),(353,'MRP_MO_DELETE','MO deleted','Executed when a MO is deleted','bom',662),(354,'MRP_MO_CANCEL','MO canceled','Executed when a MO is canceled','bom',663),(365,'CONTACT_CREATE','Contact address created','Executed when a contact is created','contact',50),(366,'CONTACT_SENTBYMAIL','Mails sent from third party card','Executed when you send email from contact adress card','contact',51),(367,'CONTACT_DELETE','Contact address deleted','Executed when a contact is deleted','contact',52),(368,'RECRUITMENTJOBPOSITION_CREATE','Job created','Executed when a job is created','recruitment',7500),(369,'RECRUITMENTJOBPOSITION_MODIFY','Job modified','Executed when a job is modified','recruitment',7502),(370,'RECRUITMENTJOBPOSITION_SENTBYMAIL','Mails sent from job record','Executed when you send email from job record','recruitment',7504),(371,'RECRUITMENTJOBPOSITION_DELETE','Job deleted','Executed when a job is deleted','recruitment',7506),(372,'RECRUITMENTCANDIDATURE_CREATE','Candidature created','Executed when a candidature is created','recruitment',7510),(373,'RECRUITMENTCANDIDATURE_MODIFY','Candidature modified','Executed when a candidature is modified','recruitment',7512),(374,'RECRUITMENTCANDIDATURE_SENTBYMAIL','Mails sent from candidature record','Executed when you send email from candidature record','recruitment',7514),(375,'RECRUITMENTCANDIDATURE_DELETE','Candidature deleted','Executed when a candidature is deleted','recruitment',7516),(392,'COMPANY_MODIFY','Third party update','Executed when you update third party','societe',1),(393,'CONTACT_MODIFY','Contact address update','Executed when a contact is updated','contact',51),(394,'ORDER_SUPPLIER_CANCEL','Supplier order request canceled','Executed when a supplier order is canceled','order_supplier',13),(395,'MEMBER_EXCLUDE','Member excluded','Executed when a member is excluded','member',27),(396,'USER_CREATE','User created','Executed when a user is created','user',301),(397,'USER_MODIFY','User update','Executed when a user is updated','user',302),(398,'USER_DELETE','User update','Executed when a user is deleted','user',303),(399,'USER_NEW_PASSWORD','User update','Executed when a user is change password','user',304),(400,'USER_ENABLEDISABLE','User update','Executed when a user is enable or disable','user',305),(402,'HOLIDAY_MODIFY','Holiday modified','Executed when a holiday is modified','holiday',801),(405,'HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802),(406,'HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804),(407,'PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2),(408,'ORDER_MODIFY','Customer order modified','Executed when a customer order is set modified','commande',5),(409,'BILL_MODIFY','Customer invoice modified','Executed when a customer invoice is modified','facture',7),(410,'PROPOSAL_SUPPLIER_MODIFY','Price request modified','Executed when a commercial proposal is modified','proposal_supplier',10),(411,'ORDER_SUPPLIER_MODIFY','Supplier order request modified','Executed when a supplier order is modified','order_supplier',13),(412,'BILL_SUPPLIER_MODIFY','Supplier invoice modified','Executed when a supplier invoice is modified','invoice_supplier',15),(413,'CONTRACT_MODIFY','Contract modified','Executed when a contract is modified','contrat',18),(414,'SHIPPING_MODIFY','Shipping modified','Executed when a shipping is modified','shipping',20),(415,'FICHINTER_MODIFY','Intervention modify','Executed when a intervention is modify','ficheinter',30),(417,'EXPENSE_REPORT_MODIFY','Expense report modified','Executed when an expense report is modified','expensereport',202),(455,'PROJECT_SENTBYMAIL','Project sent by mail','Executed when a project is sent by email','project',144),(511,'SHIPPING_DELETE','Shipping sent is deleted','Executed when a shipping is deleted','shipping',21),(512,'RECEPTION_VALIDATE','Reception validated','Executed when a reception is validated','reception',22),(513,'RECEPTION_SENTBYMAIL','Reception sent by mail','Executed when a reception is sent by mail','reception',22),(543,'PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141),(584,'ACTION_CREATE','Action added','Executed when an action is added to the agenda','agenda',700),(591,'BILLREC_CREATE','Template invoices created','Executed when a Template invoices is created','facturerec',900),(592,'BILLREC_MODIFY','Template invoices update','Executed when a Template invoices is updated','facturerec',901),(593,'BILLREC_DELETE','Template invoices deleted','Executed when a Template invoices is deleted','facturerec',902),(594,'BILLREC_AUTOCREATEBILL','Template invoices use to create invoices with auto batch','Executed when a Template invoices is use to create invoice with auto batch','facturerec',903); /*!40000 ALTER TABLE `llx_c_action_trigger` ENABLE KEYS */; UNLOCK TABLES; @@ -1512,18 +1775,18 @@ DROP TABLE IF EXISTS `llx_c_actioncomm`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_actioncomm` ( `id` int(11) NOT NULL, - `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'system', - `libelle` varchar(48) COLLATE utf8_unicode_ci NOT NULL, - `module` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(50) NOT NULL, + `type` varchar(50) NOT NULL DEFAULT 'system', + `libelle` varchar(128) DEFAULT NULL, + `module` varchar(50) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `todo` tinyint(4) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, - `color` varchar(9) COLLATE utf8_unicode_ci DEFAULT NULL, - `picto` varchar(48) COLLATE utf8_unicode_ci DEFAULT NULL, + `color` varchar(9) DEFAULT NULL, + `picto` varchar(48) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_actioncomm` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1536,6 +1799,33 @@ INSERT INTO `llx_c_actioncomm` VALUES (1,'AC_TEL','system','Phone call',NULL,1,N /*!40000 ALTER TABLE `llx_c_actioncomm` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_c_asset_disposal_type` +-- + +DROP TABLE IF EXISTS `llx_c_asset_disposal_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_c_asset_disposal_type` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `code` varchar(16) NOT NULL, + `label` varchar(50) NOT NULL, + `active` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_c_asset_disposal_type` (`code`,`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_c_asset_disposal_type` +-- + +LOCK TABLES `llx_c_asset_disposal_type` WRITE; +/*!40000 ALTER TABLE `llx_c_asset_disposal_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_c_asset_disposal_type` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_c_availability` -- @@ -1545,13 +1835,15 @@ DROP TABLE IF EXISTS `llx_c_availability`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_availability` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(60) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(30) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `position` int(11) NOT NULL DEFAULT 0, + `type_duration` varchar(1) DEFAULT NULL, + `qty` double DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_availability` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1560,7 +1852,7 @@ CREATE TABLE `llx_c_availability` ( LOCK TABLES `llx_c_availability` WRITE; /*!40000 ALTER TABLE `llx_c_availability` DISABLE KEYS */; -INSERT INTO `llx_c_availability` VALUES (1,'AV_NOW','Immediate',1,0),(2,'AV_1W','1 week',1,0),(3,'AV_2W','2 weeks',1,0),(4,'AV_3W','3 weeks',1,0); +INSERT INTO `llx_c_availability` VALUES (1,'AV_NOW','Immediate',1,0,NULL,0),(2,'AV_1W','1 week',1,0,'w',1),(3,'AV_2W','2 weeks',1,0,'w',2),(4,'AV_3W','3 weeks',1,0,'w',3); /*!40000 ALTER TABLE `llx_c_availability` ENABLE KEYS */; UNLOCK TABLES; @@ -1573,14 +1865,14 @@ DROP TABLE IF EXISTS `llx_c_barcode_type`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_barcode_type` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `coder` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `example` varchar(16) COLLATE utf8_unicode_ci NOT NULL, + `libelle` varchar(128) DEFAULT NULL, + `coder` varchar(16) NOT NULL, + `example` varchar(16) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_barcode_type` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=71 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1602,15 +1894,15 @@ DROP TABLE IF EXISTS `llx_c_chargesociales`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_chargesociales` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `libelle` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, + `libelle` varchar(128) DEFAULT NULL, `deductible` smallint(6) NOT NULL DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(12) NOT NULL, `fk_pays` int(11) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4110 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4110 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1631,14 +1923,14 @@ DROP TABLE IF EXISTS `llx_c_civility`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_civility` ( - `rowid` int(11) NOT NULL, - `code` varchar(6) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(6) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_civility` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1660,17 +1952,17 @@ DROP TABLE IF EXISTS `llx_c_country`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_country` ( `rowid` int(11) NOT NULL, - `code` varchar(2) COLLATE utf8_unicode_ci NOT NULL, - `code_iso` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(2) NOT NULL, + `code_iso` varchar(3) DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `favorite` tinyint(4) NOT NULL DEFAULT 0, - `eec` int(11) DEFAULT NULL, + `eec` tinyint(4) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_c_country_code` (`code`), UNIQUE KEY `idx_c_country_label` (`label`), UNIQUE KEY `idx_c_country_code_iso` (`code_iso`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1679,7 +1971,7 @@ CREATE TABLE `llx_c_country` ( LOCK TABLES `llx_c_country` WRITE; /*!40000 ALTER TABLE `llx_c_country` DISABLE KEYS */; -INSERT INTO `llx_c_country` VALUES (0,'',NULL,'-',1,1,NULL),(1,'FR','FRA','France',1,0,1),(2,'BE','BEL','Belgium',1,0,1),(3,'IT','ITA','Italy',1,0,1),(4,'ES','ESP','Spain',1,0,1),(5,'DE','DEU','Germany',1,0,1),(6,'CH','CHE','Switzerland',1,0,NULL),(7,'GB','GBR','United Kingdom',1,0,1),(8,'IE','IRL','Irland',1,0,1),(9,'CN','CHN','China',1,0,NULL),(10,'TN','TUN','Tunisia',1,0,NULL),(11,'US','USA','United States',1,0,NULL),(12,'MA','MAR','Maroc',1,0,NULL),(13,'DZ','DZA','Algeria',1,0,NULL),(14,'CA','CAN','Canada',1,0,NULL),(15,'TG','TGO','Togo',1,0,NULL),(16,'GA','GAB','Gabon',1,0,NULL),(17,'NL','NLD','Nerderland',1,0,1),(18,'HU','HUN','Hongrie',1,0,1),(19,'RU','RUS','Russia',1,0,NULL),(20,'SE','SWE','Sweden',1,0,1),(21,'CI','CIV','Côte d\'Ivoire',1,0,NULL),(22,'SN','SEN','Senegal',1,0,NULL),(23,'AR','ARG','Argentine',1,0,NULL),(24,'CM','CMR','Cameroun',1,0,NULL),(25,'PT','PRT','Portugal',1,0,1),(26,'SA','SAU','Saudi Arabia',1,0,NULL),(27,'MC','MCO','Monaco',1,0,1),(28,'AU','AUS','Australia',1,0,NULL),(29,'SG','SGP','Singapour',1,0,NULL),(30,'AF','AFG','Afghanistan',1,0,NULL),(31,'AX','ALA','Iles Aland',1,0,NULL),(32,'AL','ALB','Albanie',1,0,NULL),(33,'AS','ASM','Samoa américaines',1,0,NULL),(34,'AD','AND','Andorre',1,0,NULL),(35,'AO','AGO','Angola',1,0,NULL),(36,'AI','AIA','Anguilla',1,0,NULL),(37,'AQ','ATA','Antarctique',1,0,NULL),(38,'AG','ATG','Antigua-et-Barbuda',1,0,NULL),(39,'AM','ARM','Arménie',1,0,NULL),(40,'AW','ABW','Aruba',1,0,NULL),(41,'AT','AUT','Autriche',1,0,1),(42,'AZ','AZE','Azerbaïdjan',1,0,NULL),(43,'BS','BHS','Bahamas',1,0,NULL),(44,'BH','BHR','Bahreïn',1,0,NULL),(45,'BD','BGD','Bangladesh',1,0,NULL),(46,'BB','BRB','Barbade',1,0,NULL),(47,'BY','BLR','Biélorussie',1,0,NULL),(48,'BZ','BLZ','Belize',1,0,NULL),(49,'BJ','BEN','Bénin',1,0,NULL),(50,'BM','BMU','Bermudes',1,0,NULL),(51,'BT','BTN','Bhoutan',1,0,NULL),(52,'BO','BOL','Bolivie',1,0,NULL),(53,'BA','BIH','Bosnie-Herzégovine',1,0,NULL),(54,'BW','BWA','Botswana',1,0,NULL),(55,'BV','BVT','Ile Bouvet',1,0,NULL),(56,'BR','BRA','Brazil',1,0,NULL),(57,'IO','IOT','Territoire britannique de l\'Océan Indien',1,0,NULL),(58,'BN','BRN','Brunei',1,0,NULL),(59,'BG','BGR','Bulgarie',1,0,1),(60,'BF','BFA','Burkina Faso',1,0,NULL),(61,'BI','BDI','Burundi',1,0,NULL),(62,'KH','KHM','Cambodge',1,0,NULL),(63,'CV','CPV','Cap-Vert',1,0,NULL),(64,'KY','CYM','Iles Cayman',1,0,NULL),(65,'CF','CAF','République centrafricaine',1,0,NULL),(66,'TD','TCD','Tchad',1,0,NULL),(67,'CL','CHL','Chili',1,0,NULL),(68,'CX','CXR','Ile Christmas',1,0,NULL),(69,'CC','CCK','Iles des Cocos (Keeling)',1,0,NULL),(70,'CO','COL','Colombie',1,0,NULL),(71,'KM','COM','Comores',1,0,NULL),(72,'CG','COG','Congo',1,0,NULL),(73,'CD','COD','République démocratique du Congo',1,0,NULL),(74,'CK','COK','Iles Cook',1,0,NULL),(75,'CR','CRI','Costa Rica',1,0,NULL),(76,'HR','HRV','Croatie',1,0,1),(77,'CU','CUB','Cuba',1,0,NULL),(78,'CY','CYP','Chypre',1,0,1),(79,'CZ','CZE','République Tchèque',1,0,1),(80,'DK','DNK','Danemark',1,0,1),(81,'DJ','DJI','Djibouti',1,0,NULL),(82,'DM','DMA','Dominique',1,0,NULL),(83,'DO','DOM','République Dominicaine',1,0,NULL),(84,'EC','ECU','Equateur',1,0,NULL),(85,'EG','EGY','Egypte',1,0,NULL),(86,'SV','SLV','Salvador',1,0,NULL),(87,'GQ','GNQ','Guinée Equatoriale',1,0,NULL),(88,'ER','ERI','Erythrée',1,0,NULL),(89,'EE','EST','Estonia',1,0,1),(90,'ET','ETH','Ethiopie',1,0,NULL),(91,'FK','FLK','Iles Falkland',1,0,NULL),(92,'FO','FRO','Iles Féroé',1,0,NULL),(93,'FJ','FJI','Iles Fidji',1,0,NULL),(94,'FI','FIN','Finlande',1,0,1),(95,'GF','GUF','Guyane française',1,0,NULL),(96,'PF','PYF','Polynésie française',1,0,NULL),(97,'TF','ATF','Terres australes françaises',1,0,NULL),(98,'GM','GMB','Gambie',1,0,NULL),(99,'GE','GEO','Georgia',1,0,NULL),(100,'GH','GHA','Ghana',1,0,NULL),(101,'GI','GIB','Gibraltar',1,0,NULL),(102,'GR','GRC','Greece',1,0,1),(103,'GL','GRL','Groenland',1,0,NULL),(104,'GD','GRD','Grenade',1,0,NULL),(106,'GU','GUM','Guam',1,0,NULL),(107,'GT','GTM','Guatemala',1,0,NULL),(108,'GN','GIN','Guinea',1,0,NULL),(109,'GW','GNB','Guinea-Bissao',1,0,NULL),(111,'HT','HTI','Haiti',1,0,NULL),(112,'HM','HMD','Iles Heard et McDonald',1,0,NULL),(113,'VA','VAT','Saint-Siège (Vatican)',1,0,NULL),(114,'HN','HND','Honduras',1,0,NULL),(115,'HK','HKG','Hong Kong',1,0,NULL),(116,'IS','ISL','Islande',1,0,NULL),(117,'IN','IND','India',1,0,NULL),(118,'ID','IDN','Indonésie',1,0,NULL),(119,'IR','IRN','Iran',1,0,NULL),(120,'IQ','IRQ','Iraq',1,0,NULL),(121,'IL','ISR','Israel',1,0,NULL),(122,'JM','JAM','Jamaïque',1,0,NULL),(123,'JP','JPN','Japon',1,0,NULL),(124,'JO','JOR','Jordanie',1,0,NULL),(125,'KZ','KAZ','Kazakhstan',1,0,NULL),(126,'KE','KEN','Kenya',1,0,NULL),(127,'KI','KIR','Kiribati',1,0,NULL),(128,'KP','PRK','North Corea',1,0,NULL),(129,'KR','KOR','South Corea',1,0,NULL),(130,'KW','KWT','Koweït',1,0,NULL),(131,'KG','KGZ','Kirghizistan',1,0,NULL),(132,'LA','LAO','Laos',1,0,NULL),(133,'LV','LVA','Lettonie',1,0,1),(134,'LB','LBN','Liban',1,0,NULL),(135,'LS','LSO','Lesotho',1,0,NULL),(136,'LR','LBR','Liberia',1,0,NULL),(137,'LY','LBY','Libye',1,0,NULL),(138,'LI','LIE','Liechtenstein',1,0,NULL),(139,'LT','LTU','Lituanie',1,0,1),(140,'LU','LUX','Luxembourg',1,0,1),(141,'MO','MAC','Macao',1,0,NULL),(142,'MK','MKD','ex-République yougoslave de Macédoine',1,0,NULL),(143,'MG','MDG','Madagascar',1,0,NULL),(144,'MW','MWI','Malawi',1,0,NULL),(145,'MY','MYS','Malaisie',1,0,NULL),(146,'MV','MDV','Maldives',1,0,NULL),(147,'ML','MLI','Mali',1,0,NULL),(148,'MT','MLT','Malte',1,0,1),(149,'MH','MHL','Iles Marshall',1,0,NULL),(151,'MR','MRT','Mauritanie',1,0,NULL),(152,'MU','MUS','Maurice',1,0,NULL),(153,'YT','MYT','Mayotte',1,0,NULL),(154,'MX','MEX','Mexique',1,0,NULL),(155,'FM','FSM','Micronésie',1,0,NULL),(156,'MD','MDA','Moldavie',1,0,NULL),(157,'MN','MNG','Mongolie',1,0,NULL),(158,'MS','MSR','Monserrat',1,0,NULL),(159,'MZ','MOZ','Mozambique',1,0,NULL),(160,'MM','MMR','Birmanie (Myanmar)',1,0,NULL),(161,'NA','NAM','Namibie',1,0,NULL),(162,'NR','NRU','Nauru',1,0,NULL),(163,'NP','NPL','Népal',1,0,NULL),(164,'AN',NULL,'Antilles néerlandaises',1,0,NULL),(165,'NC','NCL','Nouvelle-Calédonie',1,0,NULL),(166,'NZ','NZL','Nouvelle-Zélande',1,0,NULL),(167,'NI','NIC','Nicaragua',1,0,NULL),(168,'NE','NER','Niger',1,0,NULL),(169,'NG','NGA','Nigeria',1,0,NULL),(170,'NU','NIU','Nioué',1,0,NULL),(171,'NF','NFK','Ile Norfolk',1,0,NULL),(172,'MP','MNP','Mariannes du Nord',1,0,NULL),(173,'NO','NOR','Norvège',1,0,NULL),(174,'OM','OMN','Oman',1,0,NULL),(175,'PK','PAK','Pakistan',1,0,NULL),(176,'PW','PLW','Palaos',1,0,NULL),(177,'PS','PSE','Territoire Palestinien Occupé',1,0,NULL),(178,'PA','PAN','Panama',1,0,NULL),(179,'PG','PNG','Papouasie-Nouvelle-Guinée',1,0,NULL),(180,'PY','PRY','Paraguay',1,0,NULL),(181,'PE','PER','Peru',1,0,NULL),(182,'PH','PHL','Philippines',1,0,NULL),(183,'PN','PCN','Iles Pitcairn',1,0,NULL),(184,'PL','POL','Pologne',1,0,1),(185,'PR','PRI','Porto Rico',1,0,NULL),(186,'QA','QAT','Qatar',1,0,NULL),(188,'RO','ROU','Roumanie',1,0,1),(189,'RW','RWA','Rwanda',1,0,NULL),(190,'SH','SHN','Sainte-Hélène',1,0,NULL),(191,'KN','KNA','Saint-Christophe-et-Niévès',1,0,NULL),(192,'LC','LCA','Sainte-Lucie',1,0,NULL),(193,'PM','SPM','Saint-Pierre-et-Miquelon',1,0,NULL),(194,'VC','VCT','Saint-Vincent-et-les-Grenadines',1,0,NULL),(195,'WS','WSM','Samoa',1,0,NULL),(196,'SM','SMR','Saint-Marin',1,0,NULL),(197,'ST','STP','Sao Tomé-et-Principe',1,0,NULL),(198,'RS','SRB','Serbie',1,0,NULL),(199,'SC','SYC','Seychelles',1,0,NULL),(200,'SL','SLE','Sierra Leone',1,0,NULL),(201,'SK','SVK','Slovaquie',1,0,1),(202,'SI','SVN','Slovénie',1,0,1),(203,'SB','SLB','Iles Salomon',1,0,NULL),(204,'SO','SOM','Somalie',1,0,NULL),(205,'ZA','ZAF','Afrique du Sud',1,0,NULL),(206,'GS','SGS','Iles Géorgie du Sud et Sandwich du Sud',1,0,NULL),(207,'LK','LKA','Sri Lanka',1,0,NULL),(208,'SD','SDN','Soudan',1,0,NULL),(209,'SR','SUR','Suriname',1,0,NULL),(210,'SJ','SJM','Iles Svalbard et Jan Mayen',1,0,NULL),(211,'SZ','SWZ','Swaziland',1,0,NULL),(212,'SY','SYR','Syrie',1,0,NULL),(213,'TW','TWN','Taïwan',1,0,NULL),(214,'TJ','TJK','Tadjikistan',1,0,NULL),(215,'TZ','TZA','Tanzanie',1,0,NULL),(216,'TH','THA','Thaïlande',1,0,NULL),(217,'TL','TLS','Timor Oriental',1,0,NULL),(218,'TK','TKL','Tokélaou',1,0,NULL),(219,'TO','TON','Tonga',1,0,NULL),(220,'TT','TTO','Trinité-et-Tobago',1,0,NULL),(221,'TR','TUR','Turquie',1,0,NULL),(222,'TM','TKM','Turkménistan',1,0,NULL),(223,'TC','TCA','Iles Turks-et-Caicos',1,0,NULL),(224,'TV','TUV','Tuvalu',1,0,NULL),(225,'UG','UGA','Ouganda',1,0,NULL),(226,'UA','UKR','Ukraine',1,0,NULL),(227,'xx','ARE','Émirats arabes unishh',1,0,NULL),(228,'UM','UMI','Iles mineures éloignées des États-Unis',1,0,NULL),(229,'UY','URY','Uruguay',1,0,NULL),(230,'UZ','UZB','Ouzbékistan',1,0,NULL),(231,'VU','VUT','Vanuatu',1,0,NULL),(232,'VE','VEN','Vénézuela',1,0,NULL),(233,'VN','VNM','Viêt Nam',1,0,NULL),(234,'VG','VGB','Iles Vierges britanniques',1,0,NULL),(235,'VI','VIR','Iles Vierges américaines',1,0,NULL),(236,'WF','WLF','Wallis-et-Futuna',1,0,NULL),(237,'EH','ESH','Sahara occidental',1,0,NULL),(238,'YE','YEM','Yémen',1,0,NULL),(239,'ZM','ZMB','Zambie',1,0,NULL),(240,'ZW','ZWE','Zimbabwe',1,0,NULL),(241,'GG','GGY','Guernesey',1,0,NULL),(242,'IM','IMN','Ile de Man',1,0,1),(243,'JE','JEY','Jersey',1,0,NULL),(244,'ME','MNE','Monténégro',1,0,NULL),(245,'BL','BLM','Saint-Barthélemy',1,0,NULL),(246,'MF','MAF','Saint-Martin',1,0,NULL),(247,'hh',NULL,'hhh',1,0,NULL); +INSERT INTO `llx_c_country` VALUES (0,'',NULL,'-',1,1,0),(1,'FR','FRA','France',1,0,1),(2,'BE','BEL','Belgium',1,0,1),(3,'IT','ITA','Italy',1,0,1),(4,'ES','ESP','Spain',1,0,1),(5,'DE','DEU','Germany',1,0,1),(6,'CH','CHE','Switzerland',1,0,0),(7,'GB','GBR','United Kingdom',1,0,1),(8,'IE','IRL','Irland',1,0,1),(9,'CN','CHN','China',1,0,0),(10,'TN','TUN','Tunisia',1,0,0),(11,'US','USA','United States',1,0,0),(12,'MA','MAR','Maroc',1,0,0),(13,'DZ','DZA','Algeria',1,0,0),(14,'CA','CAN','Canada',1,0,0),(15,'TG','TGO','Togo',1,0,0),(16,'GA','GAB','Gabon',1,0,0),(17,'NL','NLD','Nerderland',1,0,1),(18,'HU','HUN','Hongrie',1,0,1),(19,'RU','RUS','Russia',1,0,0),(20,'SE','SWE','Sweden',1,0,1),(21,'CI','CIV','Côte d\'Ivoire',1,0,0),(22,'SN','SEN','Senegal',1,0,0),(23,'AR','ARG','Argentine',1,0,0),(24,'CM','CMR','Cameroun',1,0,0),(25,'PT','PRT','Portugal',1,0,1),(26,'SA','SAU','Saudi Arabia',1,0,0),(27,'MC','MCO','Monaco',1,0,1),(28,'AU','AUS','Australia',1,0,0),(29,'SG','SGP','Singapour',1,0,0),(30,'AF','AFG','Afghanistan',1,0,0),(31,'AX','ALA','Iles Aland',1,0,0),(32,'AL','ALB','Albanie',1,0,0),(33,'AS','ASM','Samoa américaines',1,0,0),(34,'AD','AND','Andorre',1,0,0),(35,'AO','AGO','Angola',1,0,0),(36,'AI','AIA','Anguilla',1,0,0),(37,'AQ','ATA','Antarctique',1,0,0),(38,'AG','ATG','Antigua-et-Barbuda',1,0,0),(39,'AM','ARM','Arménie',1,0,0),(40,'AW','ABW','Aruba',1,0,0),(41,'AT','AUT','Autriche',1,0,1),(42,'AZ','AZE','Azerbaïdjan',1,0,0),(43,'BS','BHS','Bahamas',1,0,0),(44,'BH','BHR','Bahreïn',1,0,0),(45,'BD','BGD','Bangladesh',1,0,0),(46,'BB','BRB','Barbade',1,0,0),(47,'BY','BLR','Biélorussie',1,0,0),(48,'BZ','BLZ','Belize',1,0,0),(49,'BJ','BEN','Bénin',1,0,0),(50,'BM','BMU','Bermudes',1,0,0),(51,'BT','BTN','Bhoutan',1,0,0),(52,'BO','BOL','Bolivie',1,0,0),(53,'BA','BIH','Bosnie-Herzégovine',1,0,0),(54,'BW','BWA','Botswana',1,0,0),(55,'BV','BVT','Ile Bouvet',1,0,0),(56,'BR','BRA','Brazil',1,0,0),(57,'IO','IOT','Territoire britannique de l\'Océan Indien',1,0,0),(58,'BN','BRN','Brunei',1,0,0),(59,'BG','BGR','Bulgarie',1,0,1),(60,'BF','BFA','Burkina Faso',1,0,0),(61,'BI','BDI','Burundi',1,0,0),(62,'KH','KHM','Cambodge',1,0,0),(63,'CV','CPV','Cap-Vert',1,0,0),(64,'KY','CYM','Iles Cayman',1,0,0),(65,'CF','CAF','République centrafricaine',1,0,0),(66,'TD','TCD','Tchad',1,0,0),(67,'CL','CHL','Chili',1,0,0),(68,'CX','CXR','Ile Christmas',1,0,0),(69,'CC','CCK','Iles des Cocos (Keeling)',1,0,0),(70,'CO','COL','Colombie',1,0,0),(71,'KM','COM','Comores',1,0,0),(72,'CG','COG','Congo',1,0,0),(73,'CD','COD','République démocratique du Congo',1,0,0),(74,'CK','COK','Iles Cook',1,0,0),(75,'CR','CRI','Costa Rica',1,0,0),(76,'HR','HRV','Croatie',1,0,1),(77,'CU','CUB','Cuba',1,0,0),(78,'CY','CYP','Chypre',1,0,1),(79,'CZ','CZE','République Tchèque',1,0,1),(80,'DK','DNK','Danemark',1,0,1),(81,'DJ','DJI','Djibouti',1,0,0),(82,'DM','DMA','Dominique',1,0,0),(83,'DO','DOM','République Dominicaine',1,0,0),(84,'EC','ECU','Equateur',1,0,0),(85,'EG','EGY','Egypte',1,0,0),(86,'SV','SLV','Salvador',1,0,0),(87,'GQ','GNQ','Guinée Equatoriale',1,0,0),(88,'ER','ERI','Erythrée',1,0,0),(89,'EE','EST','Estonia',1,0,1),(90,'ET','ETH','Ethiopie',1,0,0),(91,'FK','FLK','Iles Falkland',1,0,0),(92,'FO','FRO','Iles Féroé',1,0,0),(93,'FJ','FJI','Iles Fidji',1,0,0),(94,'FI','FIN','Finlande',1,0,1),(95,'GF','GUF','Guyane française',1,0,0),(96,'PF','PYF','Polynésie française',1,0,0),(97,'TF','ATF','Terres australes françaises',1,0,0),(98,'GM','GMB','Gambie',1,0,0),(99,'GE','GEO','Georgia',1,0,0),(100,'GH','GHA','Ghana',1,0,0),(101,'GI','GIB','Gibraltar',1,0,0),(102,'GR','GRC','Greece',1,0,1),(103,'GL','GRL','Groenland',1,0,0),(104,'GD','GRD','Grenade',1,0,0),(106,'GU','GUM','Guam',1,0,0),(107,'GT','GTM','Guatemala',1,0,0),(108,'GN','GIN','Guinea',1,0,0),(109,'GW','GNB','Guinea-Bissao',1,0,0),(111,'HT','HTI','Haiti',1,0,0),(112,'HM','HMD','Iles Heard et McDonald',1,0,0),(113,'VA','VAT','Saint-Siège (Vatican)',1,0,0),(114,'HN','HND','Honduras',1,0,0),(115,'HK','HKG','Hong Kong',1,0,0),(116,'IS','ISL','Islande',1,0,0),(117,'IN','IND','India',1,0,0),(118,'ID','IDN','Indonésie',1,0,0),(119,'IR','IRN','Iran',1,0,0),(120,'IQ','IRQ','Iraq',1,0,0),(121,'IL','ISR','Israel',1,0,0),(122,'JM','JAM','Jamaïque',1,0,0),(123,'JP','JPN','Japon',1,0,0),(124,'JO','JOR','Jordanie',1,0,0),(125,'KZ','KAZ','Kazakhstan',1,0,0),(126,'KE','KEN','Kenya',1,0,0),(127,'KI','KIR','Kiribati',1,0,0),(128,'KP','PRK','North Corea',1,0,0),(129,'KR','KOR','South Corea',1,0,0),(130,'KW','KWT','Koweït',1,0,0),(131,'KG','KGZ','Kirghizistan',1,0,0),(132,'LA','LAO','Laos',1,0,0),(133,'LV','LVA','Lettonie',1,0,1),(134,'LB','LBN','Liban',1,0,0),(135,'LS','LSO','Lesotho',1,0,0),(136,'LR','LBR','Liberia',1,0,0),(137,'LY','LBY','Libye',1,0,0),(138,'LI','LIE','Liechtenstein',1,0,0),(139,'LT','LTU','Lituanie',1,0,1),(140,'LU','LUX','Luxembourg',1,0,1),(141,'MO','MAC','Macao',1,0,0),(142,'MK','MKD','ex-République yougoslave de Macédoine',1,0,0),(143,'MG','MDG','Madagascar',1,0,0),(144,'MW','MWI','Malawi',1,0,0),(145,'MY','MYS','Malaisie',1,0,0),(146,'MV','MDV','Maldives',1,0,0),(147,'ML','MLI','Mali',1,0,0),(148,'MT','MLT','Malte',1,0,1),(149,'MH','MHL','Iles Marshall',1,0,0),(151,'MR','MRT','Mauritanie',1,0,0),(152,'MU','MUS','Maurice',1,0,0),(153,'YT','MYT','Mayotte',1,0,0),(154,'MX','MEX','Mexique',1,0,0),(155,'FM','FSM','Micronésie',1,0,0),(156,'MD','MDA','Moldavie',1,0,0),(157,'MN','MNG','Mongolie',1,0,0),(158,'MS','MSR','Monserrat',1,0,0),(159,'MZ','MOZ','Mozambique',1,0,0),(160,'MM','MMR','Birmanie (Myanmar)',1,0,0),(161,'NA','NAM','Namibie',1,0,0),(162,'NR','NRU','Nauru',1,0,0),(163,'NP','NPL','Népal',1,0,0),(164,'AN',NULL,'Antilles néerlandaises',1,0,0),(165,'NC','NCL','Nouvelle-Calédonie',1,0,0),(166,'NZ','NZL','Nouvelle-Zélande',1,0,0),(167,'NI','NIC','Nicaragua',1,0,0),(168,'NE','NER','Niger',1,0,0),(169,'NG','NGA','Nigeria',1,0,0),(170,'NU','NIU','Nioué',1,0,0),(171,'NF','NFK','Ile Norfolk',1,0,0),(172,'MP','MNP','Mariannes du Nord',1,0,0),(173,'NO','NOR','Norvège',1,0,0),(174,'OM','OMN','Oman',1,0,0),(175,'PK','PAK','Pakistan',1,0,0),(176,'PW','PLW','Palaos',1,0,0),(177,'PS','PSE','Territoire Palestinien Occupé',1,0,0),(178,'PA','PAN','Panama',1,0,0),(179,'PG','PNG','Papouasie-Nouvelle-Guinée',1,0,0),(180,'PY','PRY','Paraguay',1,0,0),(181,'PE','PER','Peru',1,0,0),(182,'PH','PHL','Philippines',1,0,0),(183,'PN','PCN','Iles Pitcairn',1,0,0),(184,'PL','POL','Pologne',1,0,1),(185,'PR','PRI','Porto Rico',1,0,0),(186,'QA','QAT','Qatar',1,0,0),(188,'RO','ROU','Roumanie',1,0,1),(189,'RW','RWA','Rwanda',1,0,0),(190,'SH','SHN','Sainte-Hélène',1,0,0),(191,'KN','KNA','Saint-Christophe-et-Niévès',1,0,0),(192,'LC','LCA','Sainte-Lucie',1,0,0),(193,'PM','SPM','Saint-Pierre-et-Miquelon',1,0,0),(194,'VC','VCT','Saint-Vincent-et-les-Grenadines',1,0,0),(195,'WS','WSM','Samoa',1,0,0),(196,'SM','SMR','Saint-Marin',1,0,0),(197,'ST','STP','Sao Tomé-et-Principe',1,0,0),(198,'RS','SRB','Serbie',1,0,0),(199,'SC','SYC','Seychelles',1,0,0),(200,'SL','SLE','Sierra Leone',1,0,0),(201,'SK','SVK','Slovaquie',1,0,1),(202,'SI','SVN','Slovénie',1,0,1),(203,'SB','SLB','Iles Salomon',1,0,0),(204,'SO','SOM','Somalie',1,0,0),(205,'ZA','ZAF','Afrique du Sud',1,0,0),(206,'GS','SGS','Iles Géorgie du Sud et Sandwich du Sud',1,0,0),(207,'LK','LKA','Sri Lanka',1,0,0),(208,'SD','SDN','Soudan',1,0,0),(209,'SR','SUR','Suriname',1,0,0),(210,'SJ','SJM','Iles Svalbard et Jan Mayen',1,0,0),(211,'SZ','SWZ','Swaziland',1,0,0),(212,'SY','SYR','Syrie',1,0,0),(213,'TW','TWN','Taïwan',1,0,0),(214,'TJ','TJK','Tadjikistan',1,0,0),(215,'TZ','TZA','Tanzanie',1,0,0),(216,'TH','THA','Thaïlande',1,0,0),(217,'TL','TLS','Timor Oriental',1,0,0),(218,'TK','TKL','Tokélaou',1,0,0),(219,'TO','TON','Tonga',1,0,0),(220,'TT','TTO','Trinité-et-Tobago',1,0,0),(221,'TR','TUR','Turquie',1,0,0),(222,'TM','TKM','Turkménistan',1,0,0),(223,'TC','TCA','Iles Turks-et-Caicos',1,0,0),(224,'TV','TUV','Tuvalu',1,0,0),(225,'UG','UGA','Ouganda',1,0,0),(226,'UA','UKR','Ukraine',1,0,0),(227,'xx','ARE','Émirats arabes unishh',1,0,0),(228,'UM','UMI','Iles mineures éloignées des États-Unis',1,0,0),(229,'UY','URY','Uruguay',1,0,0),(230,'UZ','UZB','Ouzbékistan',1,0,0),(231,'VU','VUT','Vanuatu',1,0,0),(232,'VE','VEN','Vénézuela',1,0,0),(233,'VN','VNM','Viêt Nam',1,0,0),(234,'VG','VGB','Iles Vierges britanniques',1,0,0),(235,'VI','VIR','Iles Vierges américaines',1,0,0),(236,'WF','WLF','Wallis-et-Futuna',1,0,0),(237,'EH','ESH','Sahara occidental',1,0,0),(238,'YE','YEM','Yémen',1,0,0),(239,'ZM','ZMB','Zambie',1,0,0),(240,'ZW','ZWE','Zimbabwe',1,0,0),(241,'GG','GGY','Guernesey',1,0,0),(242,'IM','IMN','Ile de Man',1,0,1),(243,'JE','JEY','Jersey',1,0,0),(244,'ME','MNE','Monténégro',1,0,0),(245,'BL','BLM','Saint-Barthélemy',1,0,0),(246,'MF','MAF','Saint-Martin',1,0,0),(247,'hh',NULL,'hhh',1,0,0); /*!40000 ALTER TABLE `llx_c_country` ENABLE KEYS */; UNLOCK TABLES; @@ -1691,13 +1983,13 @@ DROP TABLE IF EXISTS `llx_c_currencies`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_currencies` ( - `code_iso` varchar(3) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, - `unicode` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `code_iso` varchar(3) NOT NULL, + `label` varchar(128) DEFAULT NULL, + `unicode` varchar(32) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`code_iso`), UNIQUE KEY `uk_c_currencies_code_iso` (`code_iso`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1719,19 +2011,19 @@ DROP TABLE IF EXISTS `llx_c_departements`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_departements` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code_departement` varchar(6) COLLATE utf8_unicode_ci NOT NULL, + `code_departement` varchar(6) NOT NULL, `fk_region` int(11) DEFAULT NULL, - `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `cheflieu` varchar(50) DEFAULT NULL, `tncc` int(11) DEFAULT NULL, - `ncc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ncc` varchar(50) DEFAULT NULL, + `nom` varchar(50) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_departements` (`code_departement`,`fk_region`), KEY `idx_departements_fk_region` (`fk_region`), CONSTRAINT `fk_departements_code_region` FOREIGN KEY (`fk_region`) REFERENCES `llx_c_regions` (`code_region`), CONSTRAINT `fk_departements_fk_region` FOREIGN KEY (`fk_region`) REFERENCES `llx_c_regions` (`code_region`) -) ENGINE=InnoDB AUTO_INCREMENT=2100 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2100 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1753,15 +2045,15 @@ DROP TABLE IF EXISTS `llx_c_ecotaxe`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_ecotaxe` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(64) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(64) NOT NULL, + `label` varchar(255) DEFAULT NULL, `price` double(24,8) DEFAULT NULL, - `organization` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `organization` varchar(255) DEFAULT NULL, `fk_pays` int(11) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_ecotaxe` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1783,13 +2075,13 @@ DROP TABLE IF EXISTS `llx_c_effectif`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_effectif` ( `id` int(11) NOT NULL, - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_effectif` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1798,7 +2090,7 @@ CREATE TABLE `llx_c_effectif` ( LOCK TABLES `llx_c_effectif` WRITE; /*!40000 ALTER TABLE `llx_c_effectif` DISABLE KEYS */; -INSERT INTO `llx_c_effectif` VALUES (0,'EF0','-',1,NULL),(1,'EF1-5','1 - 5',1,NULL),(2,'EF6-10','6 - 10',1,NULL),(3,'EF11-50','11 - 50',1,NULL),(4,'EF51-100','51 - 100',1,NULL),(5,'EF100-500','100 - 500',1,NULL),(6,'EF500-','> 500',1,NULL); +INSERT INTO `llx_c_effectif` VALUES (0,'EF0','-',1,NULL),(1,'EF1-5','1 - 5',1,NULL),(2,'EF6-10','6 - 10',1,NULL),(3,'EF11-50','11 - 50',1,NULL),(4,'EF51-100','51 - 100',1,NULL),(5,'EF101-500','101 - 500',1,NULL),(6,'EF500-','> 500',1,NULL); /*!40000 ALTER TABLE `llx_c_effectif` ENABLE KEYS */; UNLOCK TABLES; @@ -1815,14 +2107,14 @@ CREATE TABLE `llx_c_email_senderprofile` ( `private` smallint(6) NOT NULL DEFAULT 0, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `signature` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `email` varchar(255) NOT NULL, + `signature` text DEFAULT NULL, `position` smallint(6) DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_email_senderprofile` (`entity`,`label`,`email`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1844,25 +2136,29 @@ DROP TABLE IF EXISTS `llx_c_email_templates`; CREATE TABLE `llx_c_email_templates` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `type_template` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, + `type_template` varchar(32) DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, `private` smallint(6) NOT NULL DEFAULT 0, `fk_user` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `position` smallint(6) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `topic` text COLLATE utf8_unicode_ci DEFAULT NULL, - `content` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `content_lines` text COLLATE utf8_unicode_ci DEFAULT NULL, - `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1', - `joinfiles` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1', + `topic` text DEFAULT NULL, + `content` mediumtext DEFAULT NULL, + `content_lines` text DEFAULT NULL, + `enabled` varchar(255) DEFAULT '1', + `joinfiles` varchar(255) DEFAULT '1', + `email_from` varchar(255) DEFAULT NULL, + `email_to` varchar(255) DEFAULT NULL, + `email_tocc` varchar(255) DEFAULT NULL, + `email_tobcc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_email_templates` (`entity`,`label`,`lang`), KEY `idx_type` (`type_template`) -) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1871,7 +2167,7 @@ CREATE TABLE `llx_c_email_templates` ( LOCK TABLES `llx_c_email_templates` WRITE; /*!40000 ALTER TABLE `llx_c_email_templates` DISABLE KEYS */; -INSERT INTO `llx_c_email_templates` VALUES (1,1,NULL,'propal_send','',1,NULL,NULL,'2018-01-19 11:17:48','My Private email template for proposals',1,1,'Hello __FIRSTNAME__','We wish you a happy new year
__USER_SIGNATURE__',NULL,'1','1'),(2,0,'adherent','member','',0,NULL,NULL,'2018-01-19 11:17:48','(SendAnEMailToMember)',1,1,'__(CardContent)__','__(Hello)__,

\n\n__(ThisIsContentOfYourCard)__
\n__(ID)__ : __ID__
\n__(Civiliyty)__ : __MEMBER_CIVILITY__
\n__(Firstname)__ : __MEMBER_FIRSTNAME__
\n__(Lastname)__ : __MEMBER_LASTNAME__
\n__(Fullname)__ : __MEMBER_FULLNAME__
\n__(Company)__ : __MEMBER_COMPANY__
\n__(Address)__ : __MEMBER_ADDRESS__
\n__(Zip)__ : __MEMBER_ZIP__
\n__(Town)__ : __MEMBER_TOWN__
\n__(Country)__ : __MEMBER_COUNTRY__
\n__(Email)__ : __MEMBER_EMAIL__
\n__(Birthday)__ : __MEMBER_BIRTH__
\n__(Photo)__ : __MEMBER_PHOTO__
\n__(Login)__ : __MEMBER_LOGIN__
\n__(Password)__ : __MEMBER_PASSWORD__
\n__(Phone)__ : __MEMBER_PHONE__
\n__(PhonePerso)__ : __MEMBER_PHONEPRO__
\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','1'),(3,0,'banque','thirdparty','',0,NULL,NULL,'2018-01-19 11:17:48','(YourSEPAMandate)',1,0,'__(YourSEPAMandate)__','__(Hello)__,

\n\n__(FindYourSEPAMandate)__ :
\n__MYCOMPANY_NAME__
\n__MYCOMPANY_FULLADDRESS__

\n__(Sincerely)__
\n__USER_SIGNATURE__',NULL,'1','1'),(6,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnAutoSubscription)',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0'),(7,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnMemberValidation)',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipWasValidated)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0'),(8,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnNewSubscription)',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__
\n\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','1'),(9,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingReminderForExpiredSubscription)',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfSubscriptionReminderEmail)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0'),(10,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnCancelation)',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(YourMembershipWasCanceled)__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0'),(11,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingAnEMailToMember)',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__','__(Hello)__,

\n\n__(ThisIsContentOfYourCard)__
\n__(ID)__ : __ID__
\n__(Civiliyty)__ : __MEMBER_CIVILITY__
\n__(Firstname)__ : __MEMBER_FIRSTNAME__
\n__(Lastname)__ : __MEMBER_LASTNAME__
\n__(Fullname)__ : __MEMBER_FULLNAME__
\n__(Company)__ : __MEMBER_COMPANY__
\n__(Address)__ : __MEMBER_ADDRESS__
\n__(Zip)__ : __MEMBER_ZIP__
\n__(Town)__ : __MEMBER_TOWN__
\n__(Country)__ : __MEMBER_COUNTRY__
\n__(Email)__ : __MEMBER_EMAIL__
\n__(Birthday)__ : __MEMBER_BIRTH__
\n__(Photo)__ : __MEMBER_PHOTO__
\n__(Login)__ : __MEMBER_LOGIN__
\n__(Password)__ : __MEMBER_PASSWORD__
\n__(Phone)__ : __MEMBER_PHONE__
\n__(PhonePerso)__ : __MEMBER_PHONEPRO__
\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0'),(12,0,'recruitment','recruitmentcandidature_send','',0,NULL,NULL,'2020-12-10 12:24:39','(AnswerCandidature)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourCandidature)__','__(Hello)__ __CANDIDATE_FULLNAME__,

\n\n__(YourCandidatureAnswer)__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'$conf->recruitment->enabled','0'),(14,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailAskConf',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskConf)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventConfRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(15,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailAskBooth',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskBooth)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBoothRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(16,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailSubsBooth',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailSubsBooth)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBoothSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(17,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailSubsEvent',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailSubsEvent)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventEventSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(18,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationMassEmailAttendees',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailAttendees)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBulkMailToAttendees)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(19,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationMassEmailSpeakers',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailSpeakers)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBulkMailToSpeakers)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(20,0,'partnership','member',NULL,0,NULL,NULL,'2021-04-15 10:22:55','(AlertStatusPartnershipExpiration)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourMembershipWillSoonExpireTopic)__','\n

Dear __MEMBER_FULLNAME__,

\n__(YourMembershipWillSoonExpireContent)__

\n
\n\n __(Sincerely)__
\n __[PARTNERSHIP_SOCIETE_NOM]__
\n \n',NULL,'1','0'),(27,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipWillSoonBeCanceled)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipWillSoonBeCanceledTopic)__','\n

Hello,

\n__(YourPartnershipWillSoonBeCanceledContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0'),(28,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipCanceled)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipCanceledTopic)__','\n

Hello,

\n__(YourPartnershipCanceledContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0'),(29,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipRefused)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipRefusedTopic)__','\n

Hello,

\n__(YourPartnershipRefusedContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0'),(30,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipAccepted)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipAcceptedTopic)__','\n

Hello,

\n__(YourPartnershipAcceptedContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0'),(31,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailAskConf)',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskConf)__','__(Hello)__,

__(OrganizationEventConfRequestWasReceived)__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(32,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailAskBooth)',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskBooth)__','__(Hello)__,

__(OrganizationEventBoothRequestWasReceived)__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(33,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailBoothPayment)',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailBoothPayment)__','__(Hello)__,

__(OrganizationEventPaymentOfBoothWasReceived)__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(34,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailRegistrationPayment)',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailRegistrationPayment)__','__(Hello)__,

__(OrganizationEventPaymentOfRegistrationWasReceived)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(35,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationMassEmailAttendees)',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailAttendees)__','__(Hello)__,

__(OrganizationEventBulkMailToAttendees)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL),(36,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationMassEmailSpeakers)',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailSpeakers)__','__(Hello)__,

__(OrganizationEventBulkMailToSpeakers)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL); +INSERT INTO `llx_c_email_templates` VALUES (1,1,NULL,'propal_send','',1,NULL,NULL,'2018-01-19 11:17:48','My Private email template for proposals',1,1,'Hello __FIRSTNAME__','We wish you a happy new year
__USER_SIGNATURE__',NULL,'1','1',NULL,NULL,NULL,NULL),(2,0,'adherent','member','',0,NULL,NULL,'2018-01-19 11:17:48','(SendAnEMailToMember)',1,1,'__(CardContent)__','__(Hello)__,

\n\n__(ThisIsContentOfYourCard)__
\n__(ID)__ : __ID__
\n__(Civiliyty)__ : __MEMBER_CIVILITY__
\n__(Firstname)__ : __MEMBER_FIRSTNAME__
\n__(Lastname)__ : __MEMBER_LASTNAME__
\n__(Fullname)__ : __MEMBER_FULLNAME__
\n__(Company)__ : __MEMBER_COMPANY__
\n__(Address)__ : __MEMBER_ADDRESS__
\n__(Zip)__ : __MEMBER_ZIP__
\n__(Town)__ : __MEMBER_TOWN__
\n__(Country)__ : __MEMBER_COUNTRY__
\n__(Email)__ : __MEMBER_EMAIL__
\n__(Birthday)__ : __MEMBER_BIRTH__
\n__(Photo)__ : __MEMBER_PHOTO__
\n__(Login)__ : __MEMBER_LOGIN__
\n__(Password)__ : __MEMBER_PASSWORD__
\n__(Phone)__ : __MEMBER_PHONE__
\n__(PhonePerso)__ : __MEMBER_PHONEPRO__
\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','1',NULL,NULL,NULL,NULL),(3,0,'banque','thirdparty','',0,NULL,NULL,'2018-01-19 11:17:48','(YourSEPAMandate)',1,0,'__(YourSEPAMandate)__','__(Hello)__,

\n\n__(FindYourSEPAMandate)__ :
\n__MYCOMPANY_NAME__
\n__MYCOMPANY_FULLADDRESS__

\n__(Sincerely)__
\n__USER_SIGNATURE__',NULL,'1','1',NULL,NULL,NULL,NULL),(6,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnAutoSubscription)',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0',NULL,NULL,NULL,NULL),(7,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnMemberValidation)',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipWasValidated)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0',NULL,NULL,NULL,NULL),(8,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnNewSubscription)',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__
\n\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','1',NULL,NULL,NULL,NULL),(9,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingReminderForExpiredSubscription)',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfSubscriptionReminderEmail)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0',NULL,NULL,NULL,NULL),(10,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnCancelation)',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(YourMembershipWasCanceled)__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0',NULL,NULL,NULL,NULL),(11,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingAnEMailToMember)',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__','__(Hello)__,

\n\n__(ThisIsContentOfYourCard)__
\n__(ID)__ : __ID__
\n__(Civiliyty)__ : __MEMBER_CIVILITY__
\n__(Firstname)__ : __MEMBER_FIRSTNAME__
\n__(Lastname)__ : __MEMBER_LASTNAME__
\n__(Fullname)__ : __MEMBER_FULLNAME__
\n__(Company)__ : __MEMBER_COMPANY__
\n__(Address)__ : __MEMBER_ADDRESS__
\n__(Zip)__ : __MEMBER_ZIP__
\n__(Town)__ : __MEMBER_TOWN__
\n__(Country)__ : __MEMBER_COUNTRY__
\n__(Email)__ : __MEMBER_EMAIL__
\n__(Birthday)__ : __MEMBER_BIRTH__
\n__(Photo)__ : __MEMBER_PHOTO__
\n__(Login)__ : __MEMBER_LOGIN__
\n__(Password)__ : __MEMBER_PASSWORD__
\n__(Phone)__ : __MEMBER_PHONE__
\n__(PhonePerso)__ : __MEMBER_PHONEPRO__
\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'1','0',NULL,NULL,NULL,NULL),(12,0,'recruitment','recruitmentcandidature_send','',0,NULL,NULL,'2020-12-10 12:24:39','(AnswerCandidature)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourCandidature)__','__(Hello)__ __CANDIDATE_FULLNAME__,

\n\n__(YourCandidatureAnswer)__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',NULL,'$conf->recruitment->enabled','0',NULL,NULL,NULL,NULL),(14,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailAskConf',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskConf)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventConfRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(15,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailAskBooth',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskBooth)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBoothRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(16,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailSubsBooth',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailSubsBooth)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBoothSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(17,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationEmailSubsEvent',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailSubsEvent)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventEventSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(18,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationMassEmailAttendees',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailAttendees)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBulkMailToAttendees)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(19,0,'','eventorganization_send','',0,NULL,NULL,'2021-02-14 13:42:41','EventOrganizationMassEmailSpeakers',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailSpeakers)__','__(Hello)__ __THIRDPARTY_NAME__,

__(ThisIsContentOfYourOrganizationEventBulkMailToSpeakers)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(20,0,'partnership','member',NULL,0,NULL,NULL,'2021-04-15 10:22:55','(AlertStatusPartnershipExpiration)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourMembershipWillSoonExpireTopic)__','\n

Dear __MEMBER_FULLNAME__,

\n__(YourMembershipWillSoonExpireContent)__

\n
\n\n __(Sincerely)__
\n __[PARTNERSHIP_SOCIETE_NOM]__
\n \n',NULL,'1','0',NULL,NULL,NULL,NULL),(27,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipWillSoonBeCanceled)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipWillSoonBeCanceledTopic)__','\n

Hello,

\n__(YourPartnershipWillSoonBeCanceledContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0',NULL,NULL,NULL,NULL),(28,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipCanceled)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipCanceledTopic)__','\n

Hello,

\n__(YourPartnershipCanceledContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0',NULL,NULL,NULL,NULL),(29,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipRefused)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipRefusedTopic)__','\n

Hello,

\n__(YourPartnershipRefusedContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0',NULL,NULL,NULL,NULL),(30,0,'partnership','partnership_send','',0,NULL,NULL,'2021-07-11 17:49:44','(SendingEmailOnPartnershipAccepted)',100,1,'[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipAcceptedTopic)__','\n

Hello,

\n__(YourPartnershipAcceptedContent)__

\n
\n\n
\n\n __(Sincerely)__
\n __[MAIN_INFO_SOCIETE_NOM]__
\n \n',NULL,'1','0',NULL,NULL,NULL,NULL),(31,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailAskConf)',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskConf)__','__(Hello)__,

__(OrganizationEventConfRequestWasReceived)__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(32,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailAskBooth)',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskBooth)__','__(Hello)__,

__(OrganizationEventBoothRequestWasReceived)__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(33,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailBoothPayment)',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailBoothPayment)__','__(Hello)__,

__(OrganizationEventPaymentOfBoothWasReceived)__


__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(34,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationEmailRegistrationPayment)',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailRegistrationPayment)__','__(Hello)__,

__(OrganizationEventPaymentOfRegistrationWasReceived)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(35,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationMassEmailAttendees)',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailAttendees)__','__(Hello)__,

__(OrganizationEventBulkMailToAttendees)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL),(36,0,'','conferenceorbooth','',0,NULL,NULL,'2022-02-07 13:38:10','(EventOrganizationMassEmailSpeakers)',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailSpeakers)__','__(Hello)__,

__(OrganizationEventBulkMailToSpeakers)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_c_email_templates` ENABLE KEYS */; UNLOCK TABLES; @@ -1884,11 +2180,11 @@ DROP TABLE IF EXISTS `llx_c_exp_tax_cat`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_exp_tax_cat` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(48) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `active` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1915,7 +2211,7 @@ CREATE TABLE `llx_c_exp_tax_range` ( `entity` int(11) NOT NULL DEFAULT 1, `active` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1938,19 +2234,19 @@ DROP TABLE IF EXISTS `llx_c_field_list`; CREATE TABLE `llx_c_field_list` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `element` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `element` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `alias` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `title` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `align` varchar(6) COLLATE utf8_unicode_ci DEFAULT 'left', + `name` varchar(32) NOT NULL, + `alias` varchar(32) NOT NULL, + `title` varchar(32) NOT NULL, + `align` varchar(6) DEFAULT 'left', `sort` tinyint(4) NOT NULL DEFAULT 1, `search` tinyint(4) NOT NULL DEFAULT 0, `visible` tinyint(4) NOT NULL DEFAULT 1, - `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1', + `enabled` varchar(255) DEFAULT '1', `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1972,11 +2268,11 @@ DROP TABLE IF EXISTS `llx_c_format_cards`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_format_cards` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `paper_size` varchar(20) COLLATE utf8_unicode_ci NOT NULL, - `orientation` varchar(1) COLLATE utf8_unicode_ci NOT NULL, - `metric` varchar(5) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(50) NOT NULL, + `name` varchar(50) NOT NULL, + `paper_size` varchar(20) NOT NULL, + `orientation` varchar(1) NOT NULL, + `metric` varchar(5) NOT NULL, `leftmargin` double(24,8) NOT NULL, `topmargin` double(24,8) NOT NULL, `nx` int(11) NOT NULL, @@ -1990,7 +2286,7 @@ CREATE TABLE `llx_c_format_cards` ( `custom_y` double(24,8) NOT NULL, `active` int(11) NOT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2014,14 +2310,14 @@ CREATE TABLE `llx_c_forme_juridique` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `code` int(11) NOT NULL, `fk_pays` int(11) NOT NULL, - `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, `isvatexempted` tinyint(4) NOT NULL DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_forme_juridique` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=100242 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=100318 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2030,7 +2326,7 @@ CREATE TABLE `llx_c_forme_juridique` ( LOCK TABLES `llx_c_forme_juridique` WRITE; /*!40000 ALTER TABLE `llx_c_forme_juridique` DISABLE KEYS */; -INSERT INTO `llx_c_forme_juridique` VALUES (100001,100001,1,'Etudiant',0,0,'cabinetmed',0),(100002,100002,1,'Retraité',0,0,'cabinetmed',0),(100003,100003,1,'Artisan',0,0,'cabinetmed',0),(100004,100004,1,'Femme de ménage',0,0,'cabinetmed',0),(100005,100005,1,'Professeur',0,0,'cabinetmed',0),(100006,100006,1,'Profession libérale',0,0,'cabinetmed',0),(100007,100007,1,'Informaticien',0,0,'cabinetmed',0),(100009,0,0,'-',0,1,NULL,0),(100010,2301,23,'Monotributista',0,1,NULL,0),(100011,2302,23,'Sociedad Civil',0,1,NULL,0),(100012,2303,23,'Sociedades Comerciales',0,1,NULL,0),(100013,2304,23,'Sociedades de Hecho',0,1,NULL,0),(100014,2305,23,'Sociedades Irregulares',0,1,NULL,0),(100015,2306,23,'Sociedad Colectiva',0,1,NULL,0),(100016,2307,23,'Sociedad en Comandita Simple',0,1,NULL,0),(100017,2308,23,'Sociedad de Capital e Industria',0,1,NULL,0),(100018,2309,23,'Sociedad Accidental o en participación',0,1,NULL,0),(100019,2310,23,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100020,2311,23,'Sociedad Anónima',0,1,NULL,0),(100021,2312,23,'Sociedad Anónima con Participación Estatal Mayoritaria',0,1,NULL,0),(100022,2313,23,'Sociedad en Comandita por Acciones (arts. 315 a 324, LSC)',0,1,NULL,0),(100023,11,1,'Artisan Commerçant (EI)',0,1,NULL,0),(100024,12,1,'Commerçant (EI)',0,1,NULL,0),(100025,13,1,'Artisan (EI)',0,1,NULL,0),(100026,14,1,'Officier public ou ministériel',0,1,NULL,0),(100027,15,1,'Profession libérale (EI)',0,1,NULL,0),(100028,16,1,'Exploitant agricole',0,1,NULL,0),(100029,17,1,'Agent commercial',0,1,NULL,0),(100030,18,1,'Associé Gérant de société',0,1,NULL,0),(100031,19,1,'Personne physique',0,1,NULL,0),(100032,21,1,'Indivision',0,1,NULL,0),(100033,22,1,'Société créée de fait',0,1,NULL,0),(100034,23,1,'Société en participation',0,1,NULL,0),(100035,27,1,'Paroisse hors zone concordataire',0,1,NULL,0),(100036,29,1,'Groupement de droit privé non doté de la personnalité morale',0,1,NULL,0),(100037,31,1,'Personne morale de droit étranger, immatriculée au RCS',0,1,NULL,0),(100038,32,1,'Personne morale de droit étranger, non immatriculée au RCS',0,1,NULL,0),(100039,35,1,'Régime auto-entrepreneur',0,1,NULL,0),(100040,41,1,'Etablissement public ou régie à caractère industriel ou commercial',0,1,NULL,0),(100041,51,1,'Société coopérative commerciale particulière',0,1,NULL,0),(100042,52,1,'Société en nom collectif',0,1,NULL,0),(100043,53,1,'Société en commandite',0,1,NULL,0),(100044,54,1,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100045,55,1,'Société anonyme à conseil d administration',0,1,NULL,0),(100046,56,1,'Société anonyme à directoire',0,1,NULL,0),(100047,57,1,'Société par actions simplifiée (SAS)',0,1,NULL,0),(100048,58,1,'Entreprise Unipersonnelle à Responsabilité Limitée (EURL)',0,1,NULL,0),(100049,59,1,'Société par actions simplifiée unipersonnelle (SASU)',0,1,NULL,0),(100050,60,1,'Entreprise Individuelle à Responsabilité Limitée (EIRL)',0,1,NULL,0),(100051,61,1,'Caisse d\'épargne et de prévoyance',0,1,NULL,0),(100052,62,1,'Groupement d\'intérêt économique (GIE)',0,1,NULL,0),(100053,63,1,'Société coopérative agricole',0,1,NULL,0),(100054,64,1,'Société non commerciale d assurances',0,1,NULL,0),(100055,65,1,'Société civile',0,1,NULL,0),(100056,69,1,'Personnes de droit privé inscrites au RCS',0,1,NULL,0),(100057,71,1,'Administration de l état',0,1,NULL,0),(100058,72,1,'Collectivité territoriale',0,1,NULL,0),(100059,73,1,'Etablissement public administratif',0,1,NULL,0),(100060,74,1,'Personne morale de droit public administratif',0,1,NULL,0),(100061,81,1,'Organisme gérant régime de protection social à adhésion obligatoire',0,1,NULL,0),(100062,82,1,'Organisme mutualiste',0,1,NULL,0),(100063,83,1,'Comité d entreprise',0,1,NULL,0),(100064,84,1,'Organisme professionnel',0,1,NULL,0),(100065,85,1,'Organisme de retraite à adhésion non obligatoire',0,1,NULL,0),(100066,91,1,'Syndicat de propriétaires',0,1,NULL,0),(100067,92,1,'Association loi 1901 ou assimilé',0,1,NULL,0),(100068,93,1,'Fondation',0,1,NULL,0),(100069,99,1,'Personne morale de droit privé',0,1,NULL,0),(100070,200,2,'Indépendant',0,1,NULL,0),(100071,201,2,'SRL - Société à responsabilité limitée',0,1,NULL,0),(100072,202,2,'SA - Société Anonyme',0,1,NULL,0),(100073,203,2,'SCRL - Société coopérative à responsabilité limitée',0,1,NULL,0),(100074,204,2,'ASBL - Association sans but Lucratif',0,1,NULL,0),(100075,205,2,'SCRI - Société coopérative à responsabilité illimitée',0,1,NULL,0),(100076,206,2,'SCS - Société en commandite simple',0,1,NULL,0),(100077,207,2,'SCA - Société en commandite par action',0,1,NULL,0),(100078,208,2,'SNC - Société en nom collectif',0,1,NULL,0),(100079,209,2,'GIE - Groupement d intérêt économique',0,1,NULL,0),(100080,210,2,'GEIE - Groupement européen d intérêt économique',0,1,NULL,0),(100081,220,2,'Eenmanszaak',0,1,NULL,0),(100082,221,2,'BVBA - Besloten vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100083,222,2,'NV - Naamloze Vennootschap',0,1,NULL,0),(100084,223,2,'CVBA - Coöperatieve vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100085,224,2,'VZW - Vereniging zonder winstoogmerk',0,1,NULL,0),(100086,225,2,'CVOA - Coöperatieve vennootschap met onbeperkte aansprakelijkheid ',0,1,NULL,0),(100087,226,2,'GCV - Gewone commanditaire vennootschap',0,1,NULL,0),(100088,227,2,'Comm.VA - Commanditaire vennootschap op aandelen',0,1,NULL,0),(100089,228,2,'VOF - Vennootschap onder firma',0,1,NULL,0),(100090,229,2,'VS0 - Vennootschap met sociaal oogmerk',0,1,NULL,0),(100091,500,5,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100092,501,5,'AG - Aktiengesellschaft ',0,1,NULL,0),(100093,502,5,'GmbH&Co. KG - Gesellschaft mit beschränkter Haftung & Compagnie Kommanditgesellschaft',0,1,NULL,0),(100094,503,5,'Gewerbe - Personengesellschaft',0,1,NULL,0),(100095,504,5,'UG - Unternehmergesellschaft -haftungsbeschränkt-',0,1,NULL,0),(100096,505,5,'GbR - Gesellschaft des bürgerlichen Rechts',0,1,NULL,0),(100097,506,5,'KG - Kommanditgesellschaft',0,1,NULL,0),(100098,507,5,'Ltd. - Limited Company',0,1,NULL,0),(100099,508,5,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100100,10201,102,'Ατομική επιχείρηση',0,1,NULL,0),(100101,10202,102,'Εταιρική επιχείρηση',0,1,NULL,0),(100102,10203,102,'Ομόρρυθμη Εταιρεία Ο.Ε',0,1,NULL,0),(100103,10204,102,'Ετερόρρυθμη Εταιρεία Ε.Ε',0,1,NULL,0),(100104,10205,102,'Εταιρεία Περιορισμένης Ευθύνης Ε.Π.Ε',0,1,NULL,0),(100105,10206,102,'Ανώνυμη Εταιρεία Α.Ε',0,1,NULL,0),(100106,10207,102,'Ανώνυμη ναυτιλιακή εταιρεία Α.Ν.Ε',0,1,NULL,0),(100107,10208,102,'Συνεταιρισμός',0,1,NULL,0),(100108,10209,102,'Συμπλοιοκτησία',0,1,NULL,0),(100109,301,3,'Società semplice',0,1,NULL,0),(100110,302,3,'Società in nome collettivo s.n.c.',0,1,NULL,0),(100111,303,3,'Società in accomandita semplice s.a.s.',0,1,NULL,0),(100112,304,3,'Società per azioni s.p.a.',0,1,NULL,0),(100113,305,3,'Società a responsabilità limitata s.r.l.',0,1,NULL,0),(100114,306,3,'Società in accomandita per azioni s.a.p.a.',0,1,NULL,0),(100115,307,3,'Società cooperativa a r.l.',0,1,NULL,0),(100116,308,3,'Società consortile',0,1,NULL,0),(100117,309,3,'Società europea',0,1,NULL,0),(100118,310,3,'Società cooperativa europea',0,1,NULL,0),(100119,311,3,'Società unipersonale',0,1,NULL,0),(100120,312,3,'Società di professionisti',0,1,NULL,0),(100121,313,3,'Società di fatto',0,1,NULL,0),(100122,315,3,'Società apparente',0,1,NULL,0),(100123,316,3,'Impresa individuale ',0,1,NULL,0),(100124,317,3,'Impresa coniugale',0,1,NULL,0),(100125,318,3,'Impresa familiare',0,1,NULL,0),(100126,319,3,'Consorzio cooperativo',0,1,NULL,0),(100127,320,3,'Società cooperativa sociale',0,1,NULL,0),(100128,321,3,'Società cooperativa di consumo',0,1,NULL,0),(100129,322,3,'Società cooperativa agricola',0,1,NULL,0),(100130,323,3,'A.T.I. Associazione temporanea di imprese',0,1,NULL,0),(100131,324,3,'R.T.I. Raggruppamento temporaneo di imprese',0,1,NULL,0),(100132,325,3,'Studio associato',0,1,NULL,0),(100133,600,6,'Raison Individuelle',0,1,NULL,0),(100134,601,6,'Société Simple',0,1,NULL,0),(100135,602,6,'Société en nom collectif',0,1,NULL,0),(100136,603,6,'Société en commandite',0,1,NULL,0),(100137,604,6,'Société anonyme (SA)',0,1,NULL,0),(100138,605,6,'Société en commandite par actions',0,1,NULL,0),(100139,606,6,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100140,607,6,'Société coopérative',0,1,NULL,0),(100141,608,6,'Association',0,1,NULL,0),(100142,609,6,'Fondation',0,1,NULL,0),(100143,700,7,'Sole Trader',0,1,NULL,0),(100144,701,7,'Partnership',0,1,NULL,0),(100145,702,7,'Private Limited Company by shares (LTD)',0,1,NULL,0),(100146,703,7,'Public Limited Company',0,1,NULL,0),(100147,704,7,'Workers Cooperative',0,1,NULL,0),(100148,705,7,'Limited Liability Partnership',0,1,NULL,0),(100149,706,7,'Franchise',0,1,NULL,0),(100150,1000,10,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100151,1001,10,'Société en Nom Collectif (SNC)',0,1,NULL,0),(100152,1002,10,'Société en Commandite Simple (SCS)',0,1,NULL,0),(100153,1003,10,'société en participation',0,1,NULL,0),(100154,1004,10,'Société Anonyme (SA)',0,1,NULL,0),(100155,1005,10,'Société Unipersonnelle à Responsabilité Limitée (SUARL)',0,1,NULL,0),(100156,1006,10,'Groupement d\'intérêt économique (GEI)',0,1,NULL,0),(100157,1007,10,'Groupe de sociétés',0,1,NULL,0),(100158,1701,17,'Eenmanszaak',0,1,NULL,0),(100159,1702,17,'Maatschap',0,1,NULL,0),(100160,1703,17,'Vennootschap onder firma',0,1,NULL,0),(100161,1704,17,'Commanditaire vennootschap',0,1,NULL,0),(100162,1705,17,'Besloten vennootschap (BV)',0,1,NULL,0),(100163,1706,17,'Naamloze Vennootschap (NV)',0,1,NULL,0),(100164,1707,17,'Vereniging',0,1,NULL,0),(100165,1708,17,'Stichting',0,1,NULL,0),(100166,1709,17,'Coöperatie met beperkte aansprakelijkheid (BA)',0,1,NULL,0),(100167,1710,17,'Coöperatie met uitgesloten aansprakelijkheid (UA)',0,1,NULL,0),(100168,1711,17,'Coöperatie met wettelijke aansprakelijkheid (WA)',0,1,NULL,0),(100169,1712,17,'Onderlinge waarborgmaatschappij',0,1,NULL,0),(100170,401,4,'Empresario Individual',0,1,NULL,0),(100171,402,4,'Comunidad de Bienes',0,1,NULL,0),(100172,403,4,'Sociedad Civil',0,1,NULL,0),(100173,404,4,'Sociedad Colectiva',0,1,NULL,0),(100174,405,4,'Sociedad Limitada',0,1,NULL,0),(100175,406,4,'Sociedad Anónima',0,1,NULL,0),(100176,407,4,'Sociedad Comanditaria por Acciones',0,1,NULL,0),(100177,408,4,'Sociedad Comanditaria Simple',0,1,NULL,0),(100178,409,4,'Sociedad Laboral',0,1,NULL,0),(100179,410,4,'Sociedad Cooperativa',0,1,NULL,0),(100180,411,4,'Sociedad de Garantía Recíproca',0,1,NULL,0),(100181,412,4,'Entidad de Capital-Riesgo',0,1,NULL,0),(100182,413,4,'Agrupación de Interés Económico',0,1,NULL,0),(100183,414,4,'Sociedad de Inversión Mobiliaria',0,1,NULL,0),(100184,415,4,'Agrupación sin Ánimo de Lucro',0,1,NULL,0),(100185,15201,152,'Mauritius Private Company Limited By Shares',0,1,NULL,0),(100186,15202,152,'Mauritius Company Limited By Guarantee',0,1,NULL,0),(100187,15203,152,'Mauritius Public Company Limited By Shares',0,1,NULL,0),(100188,15204,152,'Mauritius Foreign Company',0,1,NULL,0),(100189,15205,152,'Mauritius GBC1 (Offshore Company)',0,1,NULL,0),(100190,15206,152,'Mauritius GBC2 (International Company)',0,1,NULL,0),(100191,15207,152,'Mauritius General Partnership',0,1,NULL,0),(100192,15208,152,'Mauritius Limited Partnership',0,1,NULL,0),(100193,15209,152,'Mauritius Sole Proprietorship',0,1,NULL,0),(100194,15210,152,'Mauritius Trusts',0,1,NULL,0),(100195,15401,154,'Sociedad en nombre colectivo',0,1,NULL,0),(100196,15402,154,'Sociedad en comandita simple',0,1,NULL,0),(100197,15403,154,'Sociedad de responsabilidad limitada',0,1,NULL,0),(100198,15404,154,'Sociedad anónima',0,1,NULL,0),(100199,15405,154,'Sociedad en comandita por acciones',0,1,NULL,0),(100200,15406,154,'Sociedad cooperativa',0,1,NULL,0),(100201,4100,41,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100202,4101,41,'GesmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100203,4102,41,'AG - Aktiengesellschaft',0,1,NULL,0),(100204,4103,41,'EWIV - Europäische wirtschaftliche Interessenvereinigung',0,1,NULL,0),(100205,4104,41,'KEG - Kommanditerwerbsgesellschaft',0,1,NULL,0),(100206,4105,41,'OEG - Offene Erwerbsgesellschaft',0,1,NULL,0),(100207,4106,41,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100208,4107,41,'AG & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100209,4108,41,'GmbH & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100210,4109,41,'KG - Kommanditgesellschaft',0,1,NULL,0),(100211,4110,41,'OG - Offene Gesellschaft',0,1,NULL,0),(100212,4111,41,'GbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100213,4112,41,'GesbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100214,4113,41,'GesnbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100215,4114,41,'e.U. - eingetragener Einzelunternehmer',0,1,NULL,0),(100216,17801,178,'Empresa individual',0,1,NULL,0),(100217,17802,178,'Asociación General',0,1,NULL,0),(100218,17803,178,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100219,17804,178,'Sociedad Civil',0,1,NULL,0),(100220,17805,178,'Sociedad Anónima',0,1,NULL,0),(100221,8001,80,'Aktieselvskab A/S',0,1,NULL,0),(100222,8002,80,'Anparts Selvskab ApS',0,1,NULL,0),(100223,8003,80,'Personlig ejet selvskab',0,1,NULL,0),(100224,8004,80,'Iværksætterselvskab IVS',0,1,NULL,0),(100225,8005,80,'Interessentskab I/S',0,1,NULL,0),(100226,8006,80,'Holdingselskab',0,1,NULL,0),(100227,8007,80,'Selskab Med Begrænset Hæftelse SMBA',0,1,NULL,0),(100228,8008,80,'Kommanditselskab K/S',0,1,NULL,0),(100229,8009,80,'SPE-selskab',0,1,NULL,0),(100230,2001,20,'Aktiebolag',0,1,NULL,0),(100231,2002,20,'Publikt aktiebolag (AB publ)',0,1,NULL,0),(100232,2003,20,'Ekonomisk förening (ek. för.)',0,1,NULL,0),(100233,2004,20,'Bostadsrättsförening (BRF)',0,1,NULL,0),(100234,2005,20,'Hyresrättsförening (HRF)',0,1,NULL,0),(100235,2006,20,'Kooperativ',0,1,NULL,0),(100236,2007,20,'Enskild firma (EF)',0,1,NULL,0),(100237,2008,20,'Handelsbolag (HB)',0,1,NULL,0),(100238,2009,20,'Kommanditbolag (KB)',0,1,NULL,0),(100239,2010,20,'Enkelt bolag',0,1,NULL,0),(100240,2011,20,'Ideell förening',0,1,NULL,0),(100241,2012,20,'Stiftelse',0,1,NULL,0); +INSERT INTO `llx_c_forme_juridique` VALUES (100001,100001,1,'Etudiant',0,0,'cabinetmed',0),(100002,100002,1,'Retraité',0,0,'cabinetmed',0),(100003,100003,1,'Artisan',0,0,'cabinetmed',0),(100004,100004,1,'Femme de ménage',0,0,'cabinetmed',0),(100005,100005,1,'Professeur',0,0,'cabinetmed',0),(100006,100006,1,'Profession libérale',0,0,'cabinetmed',0),(100007,100007,1,'Informaticien',0,0,'cabinetmed',0),(100009,0,0,'-',0,1,NULL,0),(100010,2301,23,'Monotributista',0,1,NULL,0),(100011,2302,23,'Sociedad Civil',0,1,NULL,0),(100012,2303,23,'Sociedades Comerciales',0,1,NULL,0),(100013,2304,23,'Sociedades de Hecho',0,1,NULL,0),(100014,2305,23,'Sociedades Irregulares',0,1,NULL,0),(100015,2306,23,'Sociedad Colectiva',0,1,NULL,0),(100016,2307,23,'Sociedad en Comandita Simple',0,1,NULL,0),(100017,2308,23,'Sociedad de Capital e Industria',0,1,NULL,0),(100018,2309,23,'Sociedad Accidental o en participación',0,1,NULL,0),(100019,2310,23,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100020,2311,23,'Sociedad Anónima',0,1,NULL,0),(100021,2312,23,'Sociedad Anónima con Participación Estatal Mayoritaria',0,1,NULL,0),(100022,2313,23,'Sociedad en Comandita por Acciones (arts. 315 a 324, LSC)',0,1,NULL,0),(100023,11,1,'Artisan Commerçant (EI)',0,1,NULL,0),(100024,12,1,'Commerçant (EI)',0,1,NULL,0),(100025,13,1,'Artisan (EI)',0,1,NULL,0),(100026,14,1,'Officier public ou ministériel',0,1,NULL,0),(100027,15,1,'Profession libérale (EI)',0,1,NULL,0),(100028,16,1,'Exploitant agricole',0,1,NULL,0),(100029,17,1,'Agent commercial',0,1,NULL,0),(100030,18,1,'Associé Gérant de société',0,1,NULL,0),(100031,19,1,'Personne physique',0,1,NULL,0),(100032,21,1,'Indivision',0,1,NULL,0),(100033,22,1,'Société créée de fait',0,1,NULL,0),(100034,23,1,'Société en participation',0,1,NULL,0),(100035,27,1,'Paroisse hors zone concordataire',0,1,NULL,0),(100036,29,1,'Groupement de droit privé non doté de la personnalité morale',0,1,NULL,0),(100037,31,1,'Personne morale de droit étranger, immatriculée au RCS',0,1,NULL,0),(100038,32,1,'Personne morale de droit étranger, non immatriculée au RCS',0,1,NULL,0),(100039,35,1,'Régime auto-entrepreneur',0,1,NULL,0),(100040,41,1,'Etablissement public ou régie à caractère industriel ou commercial',0,1,NULL,0),(100041,51,1,'Société coopérative commerciale particulière',0,1,NULL,0),(100042,52,1,'Société en nom collectif',0,1,NULL,0),(100043,53,1,'Société en commandite',0,1,NULL,0),(100044,54,1,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100045,55,1,'Société anonyme à conseil d administration',0,1,NULL,0),(100046,56,1,'Société anonyme à directoire',0,1,NULL,0),(100047,57,1,'Société par actions simplifiée (SAS)',0,1,NULL,0),(100048,58,1,'Entreprise Unipersonnelle à Responsabilité Limitée (EURL)',0,1,NULL,0),(100049,59,1,'Société par actions simplifiée unipersonnelle (SASU)',0,1,NULL,0),(100050,60,1,'Entreprise Individuelle à Responsabilité Limitée (EIRL)',0,1,NULL,0),(100051,61,1,'Caisse d\'épargne et de prévoyance',0,1,NULL,0),(100052,62,1,'Groupement d\'intérêt économique (GIE)',0,1,NULL,0),(100053,63,1,'Société coopérative agricole',0,1,NULL,0),(100054,64,1,'Société non commerciale d assurances',0,1,NULL,0),(100055,65,1,'Société civile',0,1,NULL,0),(100056,69,1,'Personnes de droit privé inscrites au RCS',0,1,NULL,0),(100057,71,1,'Administration de l état',0,1,NULL,0),(100058,72,1,'Collectivité territoriale',0,1,NULL,0),(100059,73,1,'Etablissement public administratif',0,1,NULL,0),(100060,74,1,'Personne morale de droit public administratif',0,1,NULL,0),(100061,81,1,'Organisme gérant régime de protection social à adhésion obligatoire',0,1,NULL,0),(100062,82,1,'Organisme mutualiste',0,1,NULL,0),(100063,83,1,'Comité d entreprise',0,1,NULL,0),(100064,84,1,'Organisme professionnel',0,1,NULL,0),(100065,85,1,'Organisme de retraite à adhésion non obligatoire',0,1,NULL,0),(100066,91,1,'Syndicat de propriétaires',0,1,NULL,0),(100067,92,1,'Association loi 1901 ou assimilé',0,1,NULL,0),(100068,93,1,'Fondation',0,1,NULL,0),(100069,99,1,'Personne morale de droit privé',0,1,NULL,0),(100070,200,2,'Indépendant',0,1,NULL,0),(100071,201,2,'SRL - Société à responsabilité limitée',0,1,NULL,0),(100072,202,2,'SA - Société Anonyme',0,1,NULL,0),(100073,203,2,'SCRL - Société coopérative à responsabilité limitée',0,1,NULL,0),(100074,204,2,'ASBL - Association sans but Lucratif',0,1,NULL,0),(100075,205,2,'SCRI - Société coopérative à responsabilité illimitée',0,1,NULL,0),(100076,206,2,'SCS - Société en commandite simple',0,1,NULL,0),(100077,207,2,'SCA - Société en commandite par action',0,1,NULL,0),(100078,208,2,'SNC - Société en nom collectif',0,1,NULL,0),(100079,209,2,'GIE - Groupement d intérêt économique',0,1,NULL,0),(100080,210,2,'GEIE - Groupement européen d intérêt économique',0,1,NULL,0),(100081,220,2,'Eenmanszaak',0,1,NULL,0),(100082,221,2,'BVBA - Besloten vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100083,222,2,'NV - Naamloze Vennootschap',0,1,NULL,0),(100084,223,2,'CVBA - Coöperatieve vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100085,224,2,'VZW - Vereniging zonder winstoogmerk',0,1,NULL,0),(100086,225,2,'CVOA - Coöperatieve vennootschap met onbeperkte aansprakelijkheid ',0,1,NULL,0),(100087,226,2,'GCV - Gewone commanditaire vennootschap',0,1,NULL,0),(100088,227,2,'Comm.VA - Commanditaire vennootschap op aandelen',0,1,NULL,0),(100089,228,2,'VOF - Vennootschap onder firma',0,1,NULL,0),(100090,229,2,'VS0 - Vennootschap met sociaal oogmerk',0,1,NULL,0),(100091,500,5,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100092,501,5,'AG - Aktiengesellschaft ',0,1,NULL,0),(100093,502,5,'GmbH&Co. KG - Gesellschaft mit beschränkter Haftung & Compagnie Kommanditgesellschaft',0,1,NULL,0),(100094,503,5,'Gewerbe - Personengesellschaft',0,1,NULL,0),(100095,504,5,'UG - Unternehmergesellschaft -haftungsbeschränkt-',0,1,NULL,0),(100096,505,5,'GbR - Gesellschaft des bürgerlichen Rechts',0,1,NULL,0),(100097,506,5,'KG - Kommanditgesellschaft',0,1,NULL,0),(100098,507,5,'Ltd. - Limited Company',0,1,NULL,0),(100099,508,5,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100100,10201,102,'Ατομική επιχείρηση',0,1,NULL,0),(100101,10202,102,'Εταιρική επιχείρηση',0,1,NULL,0),(100102,10203,102,'Ομόρρυθμη Εταιρεία Ο.Ε',0,1,NULL,0),(100103,10204,102,'Ετερόρρυθμη Εταιρεία Ε.Ε',0,1,NULL,0),(100104,10205,102,'Εταιρεία Περιορισμένης Ευθύνης Ε.Π.Ε',0,1,NULL,0),(100105,10206,102,'Ανώνυμη Εταιρεία Α.Ε',0,1,NULL,0),(100106,10207,102,'Ανώνυμη ναυτιλιακή εταιρεία Α.Ν.Ε',0,1,NULL,0),(100107,10208,102,'Συνεταιρισμός',0,1,NULL,0),(100108,10209,102,'Συμπλοιοκτησία',0,1,NULL,0),(100109,301,3,'Società semplice',0,1,NULL,0),(100110,302,3,'Società in nome collettivo s.n.c.',0,1,NULL,0),(100111,303,3,'Società in accomandita semplice s.a.s.',0,1,NULL,0),(100112,304,3,'Società per azioni s.p.a.',0,1,NULL,0),(100113,305,3,'Società a responsabilità limitata s.r.l.',0,1,NULL,0),(100114,306,3,'Società in accomandita per azioni s.a.p.a.',0,1,NULL,0),(100115,307,3,'Società cooperativa a r.l.',0,1,NULL,0),(100116,308,3,'Società consortile',0,1,NULL,0),(100117,309,3,'Società europea',0,1,NULL,0),(100118,310,3,'Società cooperativa europea',0,1,NULL,0),(100119,311,3,'Società unipersonale',0,1,NULL,0),(100120,312,3,'Società di professionisti',0,1,NULL,0),(100121,313,3,'Società di fatto',0,1,NULL,0),(100122,315,3,'Società apparente',0,1,NULL,0),(100123,316,3,'Impresa individuale ',0,1,NULL,0),(100124,317,3,'Impresa coniugale',0,1,NULL,0),(100125,318,3,'Impresa familiare',0,1,NULL,0),(100126,319,3,'Consorzio cooperativo',0,1,NULL,0),(100127,320,3,'Società cooperativa sociale',0,1,NULL,0),(100128,321,3,'Società cooperativa di consumo',0,1,NULL,0),(100129,322,3,'Società cooperativa agricola',0,1,NULL,0),(100130,323,3,'A.T.I. Associazione temporanea di imprese',0,1,NULL,0),(100131,324,3,'R.T.I. Raggruppamento temporaneo di imprese',0,1,NULL,0),(100132,325,3,'Studio associato',0,1,NULL,0),(100133,600,6,'Raison Individuelle',0,1,NULL,0),(100134,601,6,'Société Simple',0,1,NULL,0),(100135,602,6,'Société en nom collectif',0,1,NULL,0),(100136,603,6,'Société en commandite',0,1,NULL,0),(100137,604,6,'Société anonyme (SA)',0,1,NULL,0),(100138,605,6,'Société en commandite par actions',0,1,NULL,0),(100139,606,6,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100140,607,6,'Société coopérative',0,1,NULL,0),(100141,608,6,'Association',0,1,NULL,0),(100142,609,6,'Fondation',0,1,NULL,0),(100143,700,7,'Sole Trader',0,1,NULL,0),(100144,701,7,'Partnership',0,1,NULL,0),(100145,702,7,'Private Limited Company by shares (LTD)',0,1,NULL,0),(100146,703,7,'Public Limited Company',0,1,NULL,0),(100147,704,7,'Workers Cooperative',0,1,NULL,0),(100148,705,7,'Limited Liability Partnership',0,1,NULL,0),(100149,706,7,'Franchise',0,1,NULL,0),(100150,1000,10,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100151,1001,10,'Société en Nom Collectif (SNC)',0,1,NULL,0),(100152,1002,10,'Société en Commandite Simple (SCS)',0,1,NULL,0),(100153,1003,10,'société en participation',0,1,NULL,0),(100154,1004,10,'Société Anonyme (SA)',0,1,NULL,0),(100155,1005,10,'Société Unipersonnelle à Responsabilité Limitée (SUARL)',0,1,NULL,0),(100156,1006,10,'Groupement d\'intérêt économique (GEI)',0,1,NULL,0),(100157,1007,10,'Groupe de sociétés',0,1,NULL,0),(100158,1701,17,'Eenmanszaak',0,1,NULL,0),(100159,1702,17,'Maatschap',0,1,NULL,0),(100160,1703,17,'Vennootschap onder firma',0,1,NULL,0),(100161,1704,17,'Commanditaire vennootschap',0,1,NULL,0),(100162,1705,17,'Besloten vennootschap (BV)',0,1,NULL,0),(100163,1706,17,'Naamloze Vennootschap (NV)',0,1,NULL,0),(100164,1707,17,'Vereniging',0,1,NULL,0),(100165,1708,17,'Stichting',0,1,NULL,0),(100166,1709,17,'Coöperatie met beperkte aansprakelijkheid (BA)',0,1,NULL,0),(100167,1710,17,'Coöperatie met uitgesloten aansprakelijkheid (UA)',0,1,NULL,0),(100168,1711,17,'Coöperatie met wettelijke aansprakelijkheid (WA)',0,1,NULL,0),(100169,1712,17,'Onderlinge waarborgmaatschappij',0,1,NULL,0),(100170,401,4,'Empresario Individual',0,1,NULL,0),(100171,402,4,'Comunidad de Bienes',0,1,NULL,0),(100172,403,4,'Sociedad Civil',0,1,NULL,0),(100173,404,4,'Sociedad Colectiva',0,1,NULL,0),(100174,405,4,'Sociedad Limitada',0,1,NULL,0),(100175,406,4,'Sociedad Anónima',0,1,NULL,0),(100176,407,4,'Sociedad Comanditaria por Acciones',0,1,NULL,0),(100177,408,4,'Sociedad Comanditaria Simple',0,1,NULL,0),(100178,409,4,'Sociedad Laboral',0,1,NULL,0),(100179,410,4,'Sociedad Cooperativa',0,1,NULL,0),(100180,411,4,'Sociedad de Garantía Recíproca',0,1,NULL,0),(100181,412,4,'Entidad de Capital-Riesgo',0,1,NULL,0),(100182,413,4,'Agrupación de Interés Económico',0,1,NULL,0),(100183,414,4,'Sociedad de Inversión Mobiliaria',0,1,NULL,0),(100184,415,4,'Agrupación sin Ánimo de Lucro',0,1,NULL,0),(100185,15201,152,'Mauritius Private Company Limited By Shares',0,1,NULL,0),(100186,15202,152,'Mauritius Company Limited By Guarantee',0,1,NULL,0),(100187,15203,152,'Mauritius Public Company Limited By Shares',0,1,NULL,0),(100188,15204,152,'Mauritius Foreign Company',0,1,NULL,0),(100189,15205,152,'Mauritius GBC1 (Offshore Company)',0,1,NULL,0),(100190,15206,152,'Mauritius GBC2 (International Company)',0,1,NULL,0),(100191,15207,152,'Mauritius General Partnership',0,1,NULL,0),(100192,15208,152,'Mauritius Limited Partnership',0,1,NULL,0),(100193,15209,152,'Mauritius Sole Proprietorship',0,1,NULL,0),(100194,15210,152,'Mauritius Trusts',0,1,NULL,0),(100195,15401,154,'Sociedad en nombre colectivo',0,1,NULL,0),(100196,15402,154,'Sociedad en comandita simple',0,1,NULL,0),(100197,15403,154,'Sociedad de responsabilidad limitada',0,1,NULL,0),(100198,15404,154,'Sociedad anónima',0,1,NULL,0),(100199,15405,154,'Sociedad en comandita por acciones',0,1,NULL,0),(100200,15406,154,'Sociedad cooperativa',0,1,NULL,0),(100201,4100,41,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100202,4101,41,'GesmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100203,4102,41,'AG - Aktiengesellschaft',0,1,NULL,0),(100204,4103,41,'EWIV - Europäische wirtschaftliche Interessenvereinigung',0,1,NULL,0),(100205,4104,41,'KEG - Kommanditerwerbsgesellschaft',0,1,NULL,0),(100206,4105,41,'OEG - Offene Erwerbsgesellschaft',0,1,NULL,0),(100207,4106,41,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100208,4107,41,'AG & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100209,4108,41,'GmbH & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100210,4109,41,'KG - Kommanditgesellschaft',0,1,NULL,0),(100211,4110,41,'OG - Offene Gesellschaft',0,1,NULL,0),(100212,4111,41,'GbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100213,4112,41,'GesbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100214,4113,41,'GesnbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100215,4114,41,'e.U. - eingetragener Einzelunternehmer',0,1,NULL,0),(100216,17801,178,'Empresa individual',0,1,NULL,0),(100217,17802,178,'Asociación General',0,1,NULL,0),(100218,17803,178,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100219,17804,178,'Sociedad Civil',0,1,NULL,0),(100220,17805,178,'Sociedad Anónima',0,1,NULL,0),(100221,8001,80,'Aktieselvskab A/S',0,1,NULL,0),(100222,8002,80,'Anparts Selvskab ApS',0,1,NULL,0),(100223,8003,80,'Personlig ejet selvskab',0,1,NULL,0),(100224,8004,80,'Iværksætterselvskab IVS',0,1,NULL,0),(100225,8005,80,'Interessentskab I/S',0,1,NULL,0),(100226,8006,80,'Holdingselskab',0,1,NULL,0),(100227,8007,80,'Selskab Med Begrænset Hæftelse SMBA',0,1,NULL,0),(100228,8008,80,'Kommanditselskab K/S',0,1,NULL,0),(100229,8009,80,'SPE-selskab',0,1,NULL,0),(100230,2001,20,'Aktiebolag',0,1,NULL,0),(100231,2002,20,'Publikt aktiebolag (AB publ)',0,1,NULL,0),(100232,2003,20,'Ekonomisk förening (ek. för.)',0,1,NULL,0),(100233,2004,20,'Bostadsrättsförening (BRF)',0,1,NULL,0),(100234,2005,20,'Hyresrättsförening (HRF)',0,1,NULL,0),(100235,2006,20,'Kooperativ',0,1,NULL,0),(100236,2007,20,'Enskild firma (EF)',0,1,NULL,0),(100237,2008,20,'Handelsbolag (HB)',0,1,NULL,0),(100238,2009,20,'Kommanditbolag (KB)',0,1,NULL,0),(100239,2010,20,'Enkelt bolag',0,1,NULL,0),(100240,2011,20,'Ideell förening',0,1,NULL,0),(100241,2012,20,'Stiftelse',0,1,NULL,0),(100248,15407,154,'610 - Residentes en el Extranjero sin Establecimiento Permanente en México',0,1,NULL,0),(100249,15408,154,'611 - Ingresos por Dividendos (socios y accionistas)',0,1,NULL,0),(100250,15409,154,'612 - Personas Físicas con Actividades Empresariales y Profesionales',0,1,NULL,0),(100251,15410,154,'614 - Ingresos por intereses',0,1,NULL,0),(100252,15411,154,'615 - Régimen de los ingresos por obtención de premios',0,1,NULL,0),(100253,15412,154,'616 - Sin obligaciones fiscales',0,1,NULL,0),(100254,15413,154,'620 - Sociedades Cooperativas de Producción que optan por diferir sus ingresos',0,1,NULL,0),(100255,15414,154,'621 - Incorporación Fiscal',0,1,NULL,0),(100256,15415,154,'622 - Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras',0,1,NULL,0),(100257,15416,154,'623 - Opcional para Grupos de Sociedades',0,1,NULL,0),(100258,15417,154,'624 - Coordinados',0,1,NULL,0),(100259,15418,154,'625 - Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas',0,1,NULL,0),(100260,15419,154,'626 - Régimen Simplificado de Confianza',0,1,NULL,0); /*!40000 ALTER TABLE `llx_c_forme_juridique` ENABLE KEYS */; UNLOCK TABLES; @@ -2043,16 +2339,17 @@ DROP TABLE IF EXISTS `llx_c_holiday_types`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_holiday_types` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(255) NOT NULL, `affect` int(11) NOT NULL, `delay` int(11) NOT NULL, `newbymonth` double(8,5) NOT NULL DEFAULT 0.00000, `fk_country` int(11) DEFAULT NULL, `active` int(11) DEFAULT 1, + `sortorder` smallint(6) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_holiday_types` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2061,7 +2358,7 @@ CREATE TABLE `llx_c_holiday_types` ( LOCK TABLES `llx_c_holiday_types` WRITE; /*!40000 ALTER TABLE `llx_c_holiday_types` DISABLE KEYS */; -INSERT INTO `llx_c_holiday_types` VALUES (1,'LEAVE_SICK','Sick leave',0,0,0.00000,NULL,1),(2,'LEAVE_OTHER','Other leave',0,0,0.00000,NULL,1),(3,'LEAVE_PAID','Paid vacation',1,7,0.00000,NULL,1),(4,'LEAVE_RTT_FR','RTT',1,7,0.83000,1,0),(5,'LEAVE_PAID_FR','Paid vacation',1,30,2.08334,1,0); +INSERT INTO `llx_c_holiday_types` VALUES (1,'LEAVE_SICK','Sick leave',0,0,0.00000,NULL,1,NULL),(2,'LEAVE_OTHER','Other leave',0,0,0.00000,NULL,1,NULL),(3,'LEAVE_PAID','Paid vacation',1,7,0.00000,NULL,1,NULL),(4,'LEAVE_RTT_FR','RTT',1,7,0.83000,1,0,NULL),(5,'LEAVE_PAID_FR','Paid vacation',1,30,2.08334,1,0,NULL); /*!40000 ALTER TABLE `llx_c_holiday_types` ENABLE KEYS */; UNLOCK TABLES; @@ -2075,11 +2372,11 @@ DROP TABLE IF EXISTS `llx_c_hrm_department`; CREATE TABLE `llx_c_hrm_department` ( `rowid` int(11) NOT NULL, `pos` tinyint(4) NOT NULL DEFAULT 0, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2102,12 +2399,12 @@ DROP TABLE IF EXISTS `llx_c_hrm_function`; CREATE TABLE `llx_c_hrm_function` ( `rowid` int(11) NOT NULL, `pos` tinyint(4) NOT NULL DEFAULT 0, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `c_level` tinyint(4) NOT NULL DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2131,17 +2428,17 @@ CREATE TABLE `llx_c_hrm_public_holiday` ( `id` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 0, `fk_country` int(11) DEFAULT NULL, - `code` varchar(62) COLLATE utf8_unicode_ci DEFAULT NULL, - `dayrule` varchar(64) COLLATE utf8_unicode_ci DEFAULT '', + `code` varchar(62) DEFAULT NULL, + `dayrule` varchar(64) DEFAULT '', `day` int(11) DEFAULT NULL, `month` int(11) DEFAULT NULL, `year` int(11) DEFAULT NULL, `active` int(11) DEFAULT 1, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_hrm_public_holiday` (`entity`,`code`), UNIQUE KEY `uk_c_hrm_public_holiday2` (`entity`,`fk_country`,`dayrule`,`day`,`month`,`year`) -) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=83 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2150,7 +2447,7 @@ CREATE TABLE `llx_c_hrm_public_holiday` ( LOCK TABLES `llx_c_hrm_public_holiday` WRITE; /*!40000 ALTER TABLE `llx_c_hrm_public_holiday` DISABLE KEYS */; -INSERT INTO `llx_c_hrm_public_holiday` VALUES (1,0,0,'NEWYEARDAY1','',1,1,0,1,NULL),(2,0,0,'LABORDAY1','',1,5,0,1,NULL),(3,0,0,'ASSOMPTIONDAY1','',15,8,0,1,NULL),(4,0,0,'CHRISTMASDAY1','',25,12,0,1,NULL),(5,0,1,'FR-VICTORYDAY','',8,5,0,1,NULL),(6,0,1,'FR-NATIONALDAY','',14,7,0,1,NULL),(7,0,1,'FR-ASSOMPTION','',15,8,0,1,NULL),(8,0,1,'FR-TOUSSAINT','',1,11,0,1,NULL),(9,0,1,'FR-ARMISTICE','',11,11,0,1,NULL),(10,0,1,'FR-EASTER','eastermonday',0,0,0,1,NULL),(11,0,1,'FR-ASCENSION','ascension',0,0,0,1,NULL),(12,0,1,'FR-PENTECOST','pentecost',0,0,0,1,NULL),(13,0,3,'IT-LIBEAZIONE','',25,4,0,1,NULL),(14,0,3,'IT-EPIPHANY','',1,6,0,1,NULL),(15,0,3,'IT-REPUBBLICA','',2,6,0,1,NULL),(16,0,3,'IT-TUTTISANTIT','',1,11,0,1,NULL),(17,0,3,'IT-IMMACULE','',8,12,0,1,NULL),(18,0,3,'IT-SAINTSTEFAN','',26,12,0,1,NULL),(19,0,4,'ES-EASTER','easter',0,0,0,1,NULL),(20,0,4,'ES-REYE','',1,6,0,1,NULL),(21,0,4,'ES-HISPANIDAD','',12,10,0,1,NULL),(22,0,4,'ES-TOUSSAINT','',1,11,0,1,NULL),(23,0,4,'ES-CONSTITUIZION','',6,12,0,1,NULL),(24,0,4,'ES-IMMACULE','',8,12,0,1,NULL),(25,0,41,'AT-EASTER','eastermonday',0,0,0,1,NULL),(26,0,41,'AT-ASCENSION','ascension',0,0,0,1,NULL),(27,0,41,'AT-PENTECOST','pentecost',0,0,0,1,NULL),(28,0,41,'AT-FRONLEICHNAM','fronleichnam',0,0,0,1,NULL),(29,0,41,'AT-KONEGIE','',1,6,0,1,NULL),(30,0,41,'AT-26OKT','',26,10,0,1,NULL),(31,0,41,'AT-TOUSSAINT','',1,11,0,1,NULL),(32,0,41,'AT-IMMACULE','',8,12,0,1,NULL),(33,0,41,'AT-24DEC','',24,12,0,1,NULL),(34,0,41,'AT-SAINTSTEFAN','',26,12,0,1,NULL),(35,0,41,'AT-Silvester','',31,12,0,1,NULL),(36,0,117,'IN-REPUBLICDAY','',26,1,0,1,NULL),(37,0,117,'IN-GANDI','',2,10,0,1,NULL); +INSERT INTO `llx_c_hrm_public_holiday` VALUES (1,0,0,'NEWYEARDAY1','',1,1,0,1,NULL),(2,0,0,'LABORDAY1','',1,5,0,1,NULL),(3,0,0,'ASSOMPTIONDAY1','',15,8,0,1,NULL),(4,0,0,'CHRISTMASDAY1','',25,12,0,1,NULL),(5,0,1,'FR-VICTORYDAY','',8,5,0,1,NULL),(6,0,1,'FR-NATIONALDAY','',14,7,0,1,NULL),(7,0,1,'FR-ASSOMPTION','',15,8,0,1,NULL),(8,0,1,'FR-TOUSSAINT','',1,11,0,1,NULL),(9,0,1,'FR-ARMISTICE','',11,11,0,1,NULL),(10,0,1,'FR-EASTER','eastermonday',0,0,0,1,NULL),(11,0,1,'FR-ASCENSION','ascension',0,0,0,1,NULL),(12,0,1,'FR-PENTECOST','pentecost',0,0,0,1,NULL),(13,0,3,'IT-LIBEAZIONE','',25,4,0,1,NULL),(14,0,3,'IT-EPIPHANY','',1,6,0,1,NULL),(15,0,3,'IT-REPUBBLICA','',2,6,0,1,NULL),(16,0,3,'IT-TUTTISANTIT','',1,11,0,1,NULL),(17,0,3,'IT-IMMACULE','',8,12,0,1,NULL),(18,0,3,'IT-SAINTSTEFAN','',26,12,0,1,NULL),(19,0,4,'ES-EASTER','easter',0,0,0,1,NULL),(20,0,4,'ES-REYE','',1,6,0,1,NULL),(21,0,4,'ES-HISPANIDAD','',12,10,0,1,NULL),(22,0,4,'ES-TOUSSAINT','',1,11,0,1,NULL),(23,0,4,'ES-CONSTITUIZION','',6,12,0,1,NULL),(24,0,4,'ES-IMMACULE','',8,12,0,1,NULL),(25,0,41,'AT-EASTER','eastermonday',0,0,0,1,NULL),(26,0,41,'AT-ASCENSION','ascension',0,0,0,1,NULL),(27,0,41,'AT-PENTECOST','pentecost',0,0,0,1,NULL),(28,0,41,'AT-FRONLEICHNAM','fronleichnam',0,0,0,1,NULL),(29,0,41,'AT-KONEGIE','',1,6,0,1,NULL),(30,0,41,'AT-26OKT','',26,10,0,1,NULL),(31,0,41,'AT-TOUSSAINT','',1,11,0,1,NULL),(32,0,41,'AT-IMMACULE','',8,12,0,1,NULL),(33,0,41,'AT-24DEC','',24,12,0,1,NULL),(34,0,41,'AT-SAINTSTEFAN','',26,12,0,1,NULL),(35,0,41,'AT-Silvester','',31,12,0,1,NULL),(36,0,117,'IN-REPUBLICDAY','',26,1,0,1,NULL),(37,0,117,'IN-GANDI','',2,10,0,1,NULL),(75,0,2,'BE-VICTORYDAY','',8,5,0,1,NULL),(76,0,2,'BE-NATIONALDAY','',21,7,0,1,NULL),(77,0,2,'BE-ASSOMPTION','',15,8,0,1,NULL),(78,0,2,'BE-TOUSSAINT','',1,11,0,1,NULL),(79,0,2,'BE-ARMISTICE','',11,11,0,1,NULL),(80,0,2,'BE-EASTER','eastermonday',0,0,0,1,NULL),(81,0,2,'BE-ASCENSION','ascension',0,0,0,1,NULL),(82,0,2,'BE-PENTECOST','pentecost',0,0,0,1,NULL); /*!40000 ALTER TABLE `llx_c_hrm_public_holiday` ENABLE KEYS */; UNLOCK TABLES; @@ -2163,13 +2460,13 @@ DROP TABLE IF EXISTS `llx_c_incoterms`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_incoterms` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(3) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(3) NOT NULL, + `libelle` varchar(255) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `label` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(100) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_incoterms` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2191,14 +2488,14 @@ DROP TABLE IF EXISTS `llx_c_input_method`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_input_method` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `libelle` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(30) DEFAULT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_methode_commande_fournisseur` (`code`), UNIQUE KEY `uk_c_input_method` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2220,13 +2517,13 @@ DROP TABLE IF EXISTS `llx_c_input_reason`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_input_reason` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(60) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(30) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_input_reason` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2248,14 +2545,14 @@ DROP TABLE IF EXISTS `llx_c_lead_status`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_lead_status` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(10) DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `position` int(11) DEFAULT NULL, `percent` double(5,2) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_lead_status_code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2278,16 +2575,16 @@ DROP TABLE IF EXISTS `llx_c_paiement`; CREATE TABLE `llx_c_paiement` ( `id` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(6) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(62) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(6) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `type` smallint(6) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_paiement_code` (`entity`,`code`) -) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2296,7 +2593,7 @@ CREATE TABLE `llx_c_paiement` ( LOCK TABLES `llx_c_paiement` WRITE; /*!40000 ALTER TABLE `llx_c_paiement` DISABLE KEYS */; -INSERT INTO `llx_c_paiement` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0),(100,1,'KLA','Klarna',1,0,NULL,NULL,0),(101,1,'SOF','Sofort',1,0,NULL,NULL,0),(102,1,'BAN','Bancontact',1,0,NULL,NULL,0),(103,1,'IDE','iDeal',1,0,NULL,NULL,0),(104,1,'GIR','Giropay',1,0,NULL,NULL,0); +INSERT INTO `llx_c_paiement` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0),(100,1,'KLA','Klarna',1,0,NULL,NULL,0),(101,1,'SOF','Sofort',1,0,NULL,NULL,0),(102,1,'BANCON','Bancontact',1,0,NULL,NULL,0),(103,1,'IDE','iDeal',1,0,NULL,NULL,0),(104,1,'GIR','Giropay',1,0,NULL,NULL,0); /*!40000 ALTER TABLE `llx_c_paiement` ENABLE KEYS */; UNLOCK TABLES; @@ -2309,15 +2606,15 @@ DROP TABLE IF EXISTS `llx_c_paper_format`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_paper_format` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `width` float(6,2) DEFAULT 0.00, `height` float(6,2) DEFAULT 0.00, - `unit` varchar(5) COLLATE utf8_unicode_ci NOT NULL, + `unit` varchar(5) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=226 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=226 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2340,12 +2637,13 @@ DROP TABLE IF EXISTS `llx_c_partnership_type`; CREATE TABLE `llx_c_partnership_type` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, + `keyword` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_partnership_type` (`entity`,`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2367,19 +2665,20 @@ DROP TABLE IF EXISTS `llx_c_payment_term`; CREATE TABLE `llx_c_payment_term` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(16) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` tinyint(4) DEFAULT 1, - `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `libelle_facture` text COLLATE utf8_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, + `libelle_facture` text DEFAULT NULL, `type_cdr` tinyint(4) DEFAULT NULL, `nbjour` smallint(6) DEFAULT NULL, `decalage` smallint(6) DEFAULT NULL, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_payment_term_code` (`entity`,`code`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2388,7 +2687,7 @@ CREATE TABLE `llx_c_payment_term` ( LOCK TABLES `llx_c_payment_term` WRITE; /*!40000 ALTER TABLE `llx_c_payment_term` DISABLE KEYS */; -INSERT INTO `llx_c_payment_term` VALUES (1,1,'RECEP',1,1,'A réception','Réception de facture',0,0,NULL,NULL,0),(2,1,'30D',2,1,'30 jours','Réglement à 30 jours',0,30,NULL,NULL,0),(3,1,'30DENDMONTH',3,1,'30 jours fin de mois','Réglement à 30 jours fin de mois',1,30,NULL,NULL,0),(4,1,'60D',4,1,'60 jours','Réglement à 60 jours',0,60,NULL,NULL,0),(5,1,'60DENDMONTH',5,1,'60 jours fin de mois','Réglement à 60 jours fin de mois',1,60,NULL,NULL,0),(6,1,'PT_ORDER',6,1,'A réception de commande','A réception de commande',0,0,NULL,NULL,0),(7,1,'PT_DELIVERY',7,1,'Livraison','Règlement à la livraison',0,0,NULL,NULL,0),(8,1,'PT_5050',8,1,'50 et 50','Règlement 50% à la commande, 50% à la livraison',0,0,NULL,NULL,0); +INSERT INTO `llx_c_payment_term` VALUES (1,1,'RECEP',1,1,'A réception','Réception de facture',0,0,NULL,NULL,NULL,0),(2,1,'30D',2,1,'30 jours','Réglement à 30 jours',0,30,NULL,NULL,NULL,0),(3,1,'30DENDMONTH',3,1,'30 jours fin de mois','Réglement à 30 jours fin de mois',1,30,NULL,NULL,NULL,0),(4,1,'60D',4,1,'60 jours','Réglement à 60 jours',0,60,NULL,NULL,NULL,0),(5,1,'60DENDMONTH',5,1,'60 jours fin de mois','Réglement à 60 jours fin de mois',1,60,NULL,NULL,NULL,0),(6,1,'PT_ORDER',6,1,'A réception de commande','A réception de commande',0,0,NULL,NULL,NULL,0),(7,1,'PT_DELIVERY',7,1,'Livraison','Règlement à la livraison',0,0,NULL,NULL,NULL,0),(8,1,'PT_5050',8,1,'50 et 50','Règlement 50% à la commande, 50% à la livraison',0,0,NULL,NULL,NULL,0),(9,1,'DEP30PCTDEL',13,0,'__DEPOSIT_PERCENT__% deposit','__DEPOSIT_PERCENT__% deposit, remainder on delivery',0,1,NULL,'30',NULL,0); /*!40000 ALTER TABLE `llx_c_payment_term` ENABLE KEYS */; UNLOCK TABLES; @@ -2401,10 +2700,10 @@ DROP TABLE IF EXISTS `llx_c_price_expression`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_price_expression` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `title` varchar(20) COLLATE utf8_unicode_ci NOT NULL, - `expression` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `title` varchar(20) NOT NULL, + `expression` varchar(255) NOT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2425,11 +2724,11 @@ DROP TABLE IF EXISTS `llx_c_price_global_variable`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_price_global_variable` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(20) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(20) NOT NULL, + `description` text DEFAULT NULL, `value` double(24,8) DEFAULT 0.00000000, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2451,14 +2750,14 @@ DROP TABLE IF EXISTS `llx_c_price_global_variable_updater`; CREATE TABLE `llx_c_price_global_variable_updater` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `type` int(11) NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `parameters` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `parameters` text DEFAULT NULL, `fk_variable` int(11) NOT NULL, `update_interval` int(11) DEFAULT 0, `next_update` int(11) DEFAULT 0, - `last_status` text COLLATE utf8_unicode_ci DEFAULT NULL, + `last_status` text DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2480,11 +2779,11 @@ DROP TABLE IF EXISTS `llx_c_product_nature`; CREATE TABLE `llx_c_product_nature` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `code` tinyint(4) NOT NULL, - `label` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_product_nature` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2507,12 +2806,12 @@ DROP TABLE IF EXISTS `llx_c_productbatch_qcstatus`; CREATE TABLE `llx_c_productbatch_qcstatus` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_productbatch_qcstatus` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2534,12 +2833,12 @@ DROP TABLE IF EXISTS `llx_c_propalst`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_propalst` ( `id` smallint(6) NOT NULL, - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_propalst` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2560,13 +2859,13 @@ DROP TABLE IF EXISTS `llx_c_prospectcontactlevel`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_prospectcontactlevel` ( - `code` varchar(12) CHARACTER SET utf8mb4 NOT NULL, - `label` varchar(30) CHARACTER SET utf8mb4 DEFAULT NULL, + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `label` varchar(128) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `module` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL, + `module` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2587,13 +2886,13 @@ DROP TABLE IF EXISTS `llx_c_prospectlevel`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_prospectlevel` ( - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `label` varchar(128) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2615,11 +2914,11 @@ DROP TABLE IF EXISTS `llx_c_recruitment_origin`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_recruitment_origin` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(32) CHARACTER SET utf8mb4 NOT NULL, - `label` varchar(64) CHARACTER SET utf8mb4 NOT NULL, + `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2642,15 +2941,15 @@ CREATE TABLE `llx_c_regions` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `code_region` int(11) NOT NULL, `fk_pays` int(11) NOT NULL, - `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `cheflieu` varchar(50) DEFAULT NULL, `tncc` int(11) DEFAULT NULL, - `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `nom` varchar(50) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `code_region` (`code_region`), UNIQUE KEY `uk_code_region` (`code_region`), KEY `idx_c_regions_fk_pays` (`fk_pays`) -) ENGINE=InnoDB AUTO_INCREMENT=23354 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=23354 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2674,13 +2973,13 @@ CREATE TABLE `llx_c_revenuestamp` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_pays` int(11) NOT NULL, `taux` double NOT NULL, - `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `revenuestamp_type` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'fixed', + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `revenuestamp_type` varchar(16) NOT NULL DEFAULT 'fixed', PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2703,16 +3002,16 @@ DROP TABLE IF EXISTS `llx_c_shipment_mode`; CREATE TABLE `llx_c_shipment_mode` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `tracking` varchar(256) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(30) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, + `description` text DEFAULT NULL, + `tracking` varchar(255) DEFAULT NULL, `active` tinyint(4) DEFAULT 0, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_shipment_mode` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2734,12 +3033,12 @@ DROP TABLE IF EXISTS `llx_c_shipment_package_type`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_shipment_package_type` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `active` int(11) NOT NULL DEFAULT 1, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2761,14 +3060,14 @@ DROP TABLE IF EXISTS `llx_c_socialnetworks`; CREATE TABLE `llx_c_socialnetworks` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, - `url` text COLLATE utf8_unicode_ci DEFAULT NULL, - `icon` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(100) DEFAULT NULL, + `label` varchar(150) DEFAULT NULL, + `url` text DEFAULT NULL, + `icon` varchar(20) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_c_socialnetworks_code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2790,13 +3089,13 @@ DROP TABLE IF EXISTS `llx_c_stcomm`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_stcomm` ( `id` int(11) NOT NULL, - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(24) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `picto` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `picto` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_stcomm` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2818,13 +3117,13 @@ DROP TABLE IF EXISTS `llx_c_stcommcontact`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_stcommcontact` ( `id` int(11) NOT NULL, - `code` varchar(12) CHARACTER SET utf8mb4 NOT NULL, - `libelle` varchar(30) CHARACTER SET utf8mb4 DEFAULT NULL, - `picto` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL, + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `libelle` varchar(128) DEFAULT NULL, + `picto` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_stcommcontact` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2847,18 +3146,18 @@ DROP TABLE IF EXISTS `llx_c_ticket_category`; CREATE TABLE `llx_c_ticket_category` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, `pos` int(11) NOT NULL DEFAULT 0, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(128) NOT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `fk_parent` int(11) NOT NULL DEFAULT 0, - `force_severity` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `force_severity` varchar(32) DEFAULT NULL, `public` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2881,15 +3180,15 @@ DROP TABLE IF EXISTS `llx_c_ticket_resolution`; CREATE TABLE `llx_c_ticket_resolution` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `pos` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, + `pos` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2912,16 +3211,16 @@ DROP TABLE IF EXISTS `llx_c_ticket_severity`; CREATE TABLE `llx_c_ticket_severity` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `pos` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `color` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(32) NOT NULL, + `pos` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, + `color` varchar(10) DEFAULT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2944,15 +3243,15 @@ DROP TABLE IF EXISTS `llx_c_ticket_type`; CREATE TABLE `llx_c_ticket_type` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `pos` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, + `pos` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2975,11 +3274,11 @@ DROP TABLE IF EXISTS `llx_c_transport_mode`; CREATE TABLE `llx_c_transport_mode` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(3) CHARACTER SET utf8mb4 NOT NULL, - `label` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=321 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=321 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3002,20 +3301,21 @@ DROP TABLE IF EXISTS `llx_c_tva`; CREATE TABLE `llx_c_tva` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_pays` int(11) NOT NULL, - `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `code` varchar(10) DEFAULT '', `taux` double NOT NULL, - `localtax1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', - `localtax2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1` varchar(20) DEFAULT NULL, + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', + `localtax2` varchar(20) DEFAULT NULL, + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `recuperableonly` int(11) NOT NULL DEFAULT 0, - `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `use_default` tinyint(4) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_tva_id` (`fk_pays`,`code`,`taux`,`recuperableonly`) -) ENGINE=InnoDB AUTO_INCREMENT=2478 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2478 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3024,7 +3324,7 @@ CREATE TABLE `llx_c_tva` ( LOCK TABLES `llx_c_tva` WRITE; /*!40000 ALTER TABLE `llx_c_tva` DISABLE KEYS */; -INSERT INTO `llx_c_tva` VALUES (11,1,'',20,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(12,1,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(13,1,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(14,1,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',1,NULL,NULL),(15,1,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(16,1,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(17,1,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(21,2,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(22,2,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(23,2,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(24,2,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(31,3,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(32,3,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(33,3,'',4,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(34,3,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(41,4,'',21,'5.2','3','-19:-15:-9','5',0,'VAT standard rate',1,NULL,NULL),(42,4,'',10,'1.4','3','-19:-15:-9','5',0,'VAT reduced rate',1,NULL,NULL),(43,4,'',4,'0.5','3','-19:-15:-9','5',0,'VAT super-reduced rate',1,NULL,NULL),(44,4,'',0,'0','3','-19:-15:-9','5',0,'VAT Rate 0',1,NULL,NULL),(51,5,'',19,NULL,'0',NULL,'0',0,'allgemeine Ust.',1,NULL,NULL),(52,5,'',7,NULL,'0',NULL,'0',0,'ermäßigte USt.',1,NULL,NULL),(53,5,'',0,NULL,'0',NULL,'0',0,'keine USt.',1,NULL,NULL),(54,5,'',5.5,NULL,'0',NULL,'0',0,'USt. Forst',0,NULL,NULL),(55,5,'',10.7,NULL,'0',NULL,'0',0,'USt. Landwirtschaft',0,NULL,NULL),(61,6,'',8,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(62,6,'',3.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(63,6,'',2.5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(64,6,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(71,7,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(72,7,'',17.5,NULL,'0',NULL,'0',0,'VAT standard rate before 2011',1,NULL,NULL),(73,7,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(74,7,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(81,8,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(82,8,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(83,8,'',13.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(84,8,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(85,8,'',4.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(91,9,'',17,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(92,9,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate 0',1,NULL,NULL),(93,9,'',3,NULL,'0',NULL,'0',0,'VAT super reduced rate 0',1,NULL,NULL),(94,9,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(101,10,'',6,'1','4','0','0',0,'VAT 6%',1,NULL,NULL),(102,10,'',12,'1','4','0','0',0,'VAT 12%',1,NULL,NULL),(103,10,'',18,'1','4','0','0',0,'VAT 18%',1,NULL,NULL),(104,10,'',7.5,'1','4','0','0',0,'VAT 6% Majoré à 25% (7.5%)',1,NULL,NULL),(105,10,'',15,'1','4','0','0',0,'VAT 12% Majoré à 25% (15%)',1,NULL,NULL),(106,10,'',22.5,'1','4','0','0',0,'VAT 18% Majoré à 25% (22.5%)',1,NULL,NULL),(107,10,'',0,'1','4','0','0',0,'VAT Rate 0',1,NULL,NULL),(111,11,'',0,NULL,'0',NULL,'0',0,'No Sales Tax',1,NULL,NULL),(112,11,'',4,NULL,'0',NULL,'0',0,'Sales Tax 4%',1,NULL,NULL),(113,11,'',6,NULL,'0',NULL,'0',0,'Sales Tax 6%',1,NULL,NULL),(121,12,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(122,12,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(123,12,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(124,12,'',7,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(125,12,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(141,14,'',7,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(142,14,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(143,14,'',5,'9.975','1',NULL,'0',0,'GST/TPS and PST/TVQ rate for Province',1,NULL,NULL),(171,17,'',19,NULL,'0',NULL,'0',0,'Algemeen BTW tarief',1,NULL,NULL),(172,17,'',6,NULL,'0',NULL,'0',0,'Verlaagd BTW tarief',1,NULL,NULL),(173,17,'',0,NULL,'0',NULL,'0',0,'0 BTW tarief',1,NULL,NULL),(174,17,'',21,NULL,'0',NULL,'0',0,'Algemeen BTW tarief (vanaf 1 oktober 2012)',0,NULL,NULL),(201,20,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(202,20,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(203,20,'',6,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(204,20,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(211,21,'',0,'0','0','0','0',0,'IVA Rate 0',1,NULL,NULL),(212,21,'',18,'7.5','2','0','0',0,'IVA standard rate',1,NULL,NULL),(221,22,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(222,22,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(223,22,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(231,23,'',21,NULL,'0',NULL,'0',0,'IVA standard rate',1,NULL,NULL),(232,23,'',10.5,NULL,'0',NULL,'0',0,'IVA reduced rate',1,NULL,NULL),(233,23,'',0,NULL,'0',NULL,'0',0,'IVA Rate 0',1,NULL,NULL),(241,24,'',19.25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(242,24,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(251,25,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(252,25,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(253,25,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(254,25,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(261,26,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(271,27,'',19.6,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(272,27,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(273,27,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(274,27,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',0,NULL,NULL),(275,27,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(276,27,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(277,27,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(281,28,'',10,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(282,28,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(411,41,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(412,41,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(413,41,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(461,46,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(462,46,'',15,NULL,'0',NULL,'0',0,'VAT 15%',1,NULL,NULL),(463,46,'',7.5,NULL,'0',NULL,'0',0,'VAT 7.5%',1,NULL,NULL),(561,56,'',0,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(591,59,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(592,59,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(593,59,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(671,67,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(672,67,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(801,80,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(802,80,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(861,86,'',13,NULL,'0',NULL,'0',0,'IVA 13',1,NULL,NULL),(862,86,'',0,NULL,'0',NULL,'0',0,'SIN IVA',1,NULL,NULL),(1141,114,'',0,NULL,'0',NULL,'0',0,'No ISV',1,NULL,NULL),(1142,114,'',12,NULL,'0',NULL,'0',0,'ISV 12%',1,NULL,NULL),(1161,116,'',25.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1162,116,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1163,116,'',0,NULL,'0',NULL,'0',0,'VAT rate 0',1,NULL,NULL),(1171,117,'',12.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1172,117,'',4,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1173,117,'',1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1174,117,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1176,117,'CGST+SGST',0,'9','1','9','1',0,'CGST+SGST - Same state sales',1,NULL,NULL),(1177,117,'IGST',18,'0','0','0','0',0,'IGST',1,NULL,NULL),(1231,123,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1232,123,'',5,NULL,'0',NULL,'0',0,'VAT Rate 5',1,NULL,NULL),(1401,140,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1402,140,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1403,140,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1404,140,'',3,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1405,140,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1481,148,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1482,148,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1483,148,'',5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1484,148,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1511,151,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1512,151,'',14,NULL,'0',NULL,'0',0,'VAT Rate 14',1,NULL,NULL),(1521,152,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1522,152,'',15,NULL,'0',NULL,'0',0,'VAT Rate 15',1,NULL,NULL),(1541,154,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(1542,154,'',16,NULL,'0',NULL,'0',0,'VAT 16%',1,NULL,NULL),(1543,154,'',10,NULL,'0',NULL,'0',0,'VAT Frontero',1,NULL,NULL),(1662,166,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1663,166,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1692,169,'',5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1693,169,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1731,173,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1732,173,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1733,173,'',8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1734,173,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1781,178,'',7,NULL,'0',NULL,'0',0,'ITBMS standard rate',1,NULL,NULL),(1782,178,'',0,NULL,'0',NULL,'0',0,'ITBMS Rate 0',1,NULL,NULL),(1811,181,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1812,181,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1841,184,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1842,184,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1843,184,'',3,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1844,184,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1881,188,'',24,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1882,188,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1883,188,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1884,188,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1931,193,'',0,NULL,'0',NULL,'0',0,'No VAT in SPM',1,NULL,NULL),(2011,201,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2012,201,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2013,201,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2021,202,'',22,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2022,202,'',9.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2023,202,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2051,205,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2052,205,'',14,NULL,'0',NULL,'0',0,'VAT 14%',1,NULL,NULL),(2131,213,'',5,NULL,'0',NULL,'0',0,'VAT 5%',1,NULL,NULL),(2261,226,'',20,NULL,'0',NULL,'0',0,'VAT standart rate',1,NULL,NULL),(2262,226,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2321,232,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2322,232,'',12,NULL,'0',NULL,'0',0,'VAT 12%',1,NULL,NULL),(2323,232,'',8,NULL,'0',NULL,'0',0,'VAT 8%',1,NULL,NULL),(2461,246,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2462,102,'',23,'0','0','0','0',0,'Κανονικός Φ.Π.Α.',1,NULL,NULL),(2463,102,'',0,'0','0','0','0',0,'Μηδενικό Φ.Π.Α.',1,NULL,NULL),(2464,102,'',13,'0','0','0','0',0,'Μειωμένος Φ.Π.Α.',1,NULL,NULL),(2465,102,'',6.5,'0','0','0','0',0,'Υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2466,102,'',16,'0','0','0','0',0,'Νήσων κανονικός Φ.Π.Α.',1,NULL,NULL),(2467,102,'',9,'0','0','0','0',0,'Νήσων μειωμένος Φ.Π.Α.',1,NULL,NULL),(2468,102,'',5,'0','0','0','0',0,'Νήσων υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2469,1,'85',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(2470,1,'85NPR',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(2471,1,'85NPROM',8.5,'2','3',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0,NULL,NULL),(2472,1,'85NPROMOMR',8.5,'2','3','2.5','3',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0,NULL,NULL),(2477,117,'',19.6,'0','0','0','0',0,'aaa',1,'101','10'); +INSERT INTO `llx_c_tva` VALUES (11,1,'',20,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL,0),(12,1,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL,0),(13,1,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL,0),(14,1,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',1,NULL,NULL,0),(15,1,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL,0),(16,1,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(17,1,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(21,2,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(22,2,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(23,2,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL,0),(24,2,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(31,3,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(32,3,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(33,3,'',4,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(34,3,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(41,4,'',21,'5.2','3','-19:-15:-9','5',0,'VAT standard rate',1,NULL,NULL,0),(42,4,'',10,'1.4','3','-19:-15:-9','5',0,'VAT reduced rate',1,NULL,NULL,0),(43,4,'',4,'0.5','3','-19:-15:-9','5',0,'VAT super-reduced rate',1,NULL,NULL,0),(44,4,'',0,'0','3','-19:-15:-9','5',0,'VAT Rate 0',1,NULL,NULL,0),(51,5,'',19,NULL,'0',NULL,'0',0,'allgemeine Ust.',1,NULL,NULL,0),(52,5,'',7,NULL,'0',NULL,'0',0,'ermäßigte USt.',1,NULL,NULL,0),(53,5,'',0,NULL,'0',NULL,'0',0,'keine USt.',1,NULL,NULL,0),(54,5,'',5.5,NULL,'0',NULL,'0',0,'USt. Forst',0,NULL,NULL,0),(55,5,'',10.7,NULL,'0',NULL,'0',0,'USt. Landwirtschaft',0,NULL,NULL,0),(61,6,'',8,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(62,6,'',3.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(63,6,'',2.5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(64,6,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(71,7,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(72,7,'',17.5,NULL,'0',NULL,'0',0,'VAT standard rate before 2011',1,NULL,NULL,0),(73,7,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(74,7,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(81,8,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(82,8,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(83,8,'',13.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(84,8,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(85,8,'',4.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(91,9,'',17,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(92,9,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate 0',1,NULL,NULL,0),(93,9,'',3,NULL,'0',NULL,'0',0,'VAT super reduced rate 0',1,NULL,NULL,0),(94,9,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(101,10,'',6,'1','4','0','0',0,'VAT 6%',1,NULL,NULL,0),(102,10,'',12,'1','4','0','0',0,'VAT 12%',1,NULL,NULL,0),(103,10,'',18,'1','4','0','0',0,'VAT 18%',1,NULL,NULL,0),(104,10,'',7.5,'1','4','0','0',0,'VAT 6% Majoré à 25% (7.5%)',1,NULL,NULL,0),(105,10,'',15,'1','4','0','0',0,'VAT 12% Majoré à 25% (15%)',1,NULL,NULL,0),(106,10,'',22.5,'1','4','0','0',0,'VAT 18% Majoré à 25% (22.5%)',1,NULL,NULL,0),(107,10,'',0,'1','4','0','0',0,'VAT Rate 0',1,NULL,NULL,0),(111,11,'',0,NULL,'0',NULL,'0',0,'No Sales Tax',1,NULL,NULL,0),(112,11,'',4,NULL,'0',NULL,'0',0,'Sales Tax 4%',1,NULL,NULL,0),(113,11,'',6,NULL,'0',NULL,'0',0,'Sales Tax 6%',1,NULL,NULL,0),(121,12,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(122,12,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(123,12,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(124,12,'',7,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(125,12,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(141,14,'',7,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(142,14,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(143,14,'',5,'9.975','1',NULL,'0',0,'GST/TPS and PST/TVQ rate for Province',1,NULL,NULL,0),(171,17,'',19,NULL,'0',NULL,'0',0,'Algemeen BTW tarief',1,NULL,NULL,0),(172,17,'',6,NULL,'0',NULL,'0',0,'Verlaagd BTW tarief',1,NULL,NULL,0),(173,17,'',0,NULL,'0',NULL,'0',0,'0 BTW tarief',1,NULL,NULL,0),(174,17,'',21,NULL,'0',NULL,'0',0,'Algemeen BTW tarief (vanaf 1 oktober 2012)',0,NULL,NULL,0),(201,20,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(202,20,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(203,20,'',6,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(204,20,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(211,21,'',0,'0','0','0','0',0,'IVA Rate 0',1,NULL,NULL,0),(212,21,'',18,'7.5','2','0','0',0,'IVA standard rate',1,NULL,NULL,0),(221,22,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(222,22,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(223,22,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(231,23,'',21,NULL,'0',NULL,'0',0,'IVA standard rate',1,NULL,NULL,0),(232,23,'',10.5,NULL,'0',NULL,'0',0,'IVA reduced rate',1,NULL,NULL,0),(233,23,'',0,NULL,'0',NULL,'0',0,'IVA Rate 0',1,NULL,NULL,0),(241,24,'',19.25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(242,24,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(251,25,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(252,25,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(253,25,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(254,25,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(261,26,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(271,27,'',19.6,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL,0),(272,27,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL,0),(273,27,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL,0),(274,27,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',0,NULL,NULL,0),(275,27,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL,0),(276,27,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(277,27,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(281,28,'',10,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(282,28,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(411,41,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(412,41,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(413,41,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(461,46,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(462,46,'',15,NULL,'0',NULL,'0',0,'VAT 15%',1,NULL,NULL,0),(463,46,'',7.5,NULL,'0',NULL,'0',0,'VAT 7.5%',1,NULL,NULL,0),(561,56,'',0,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(591,59,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(592,59,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(593,59,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(671,67,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(672,67,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(801,80,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(802,80,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(861,86,'',13,NULL,'0',NULL,'0',0,'IVA 13',1,NULL,NULL,0),(862,86,'',0,NULL,'0',NULL,'0',0,'SIN IVA',1,NULL,NULL,0),(1141,114,'',0,NULL,'0',NULL,'0',0,'No ISV',1,NULL,NULL,0),(1142,114,'',12,NULL,'0',NULL,'0',0,'ISV 12%',1,NULL,NULL,0),(1161,116,'',25.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1162,116,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1163,116,'',0,NULL,'0',NULL,'0',0,'VAT rate 0',1,NULL,NULL,0),(1171,117,'',12.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1172,117,'',4,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1173,117,'',1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(1174,117,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1176,117,'CGST+SGST',0,'9','1','9','1',0,'CGST+SGST - Same state sales',1,NULL,NULL,0),(1177,117,'IGST',18,'0','0','0','0',0,'IGST',1,NULL,NULL,0),(1231,123,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1232,123,'',5,NULL,'0',NULL,'0',0,'VAT Rate 5',1,NULL,NULL,0),(1401,140,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1402,140,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1403,140,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1404,140,'',3,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(1405,140,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1481,148,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1482,148,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1483,148,'',5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(1484,148,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1511,151,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1512,151,'',14,NULL,'0',NULL,'0',0,'VAT Rate 14',1,NULL,NULL,0),(1521,152,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1522,152,'',15,NULL,'0',NULL,'0',0,'VAT Rate 15',1,NULL,NULL,0),(1541,154,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(1542,154,'',16,NULL,'0',NULL,'0',0,'VAT 16%',1,NULL,NULL,0),(1543,154,'',10,NULL,'0',NULL,'0',0,'VAT Frontero',1,NULL,NULL,0),(1662,166,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1663,166,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1692,169,'',5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1693,169,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1731,173,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1732,173,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1733,173,'',8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1734,173,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1781,178,'',7,NULL,'0',NULL,'0',0,'ITBMS standard rate',1,NULL,NULL,0),(1782,178,'',0,NULL,'0',NULL,'0',0,'ITBMS Rate 0',1,NULL,NULL,0),(1811,181,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1812,181,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1841,184,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1842,184,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1843,184,'',3,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1844,184,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1881,188,'',24,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1882,188,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1883,188,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1884,188,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1931,193,'',0,NULL,'0',NULL,'0',0,'No VAT in SPM',1,NULL,NULL,0),(2011,201,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(2012,201,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(2013,201,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2021,202,'',22,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(2022,202,'',9.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(2023,202,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2051,205,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(2052,205,'',14,NULL,'0',NULL,'0',0,'VAT 14%',1,NULL,NULL,0),(2131,213,'',5,NULL,'0',NULL,'0',0,'VAT 5%',1,NULL,NULL,0),(2261,226,'',20,NULL,'0',NULL,'0',0,'VAT standart rate',1,NULL,NULL,0),(2262,226,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2321,232,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(2322,232,'',12,NULL,'0',NULL,'0',0,'VAT 12%',1,NULL,NULL,0),(2323,232,'',8,NULL,'0',NULL,'0',0,'VAT 8%',1,NULL,NULL,0),(2461,246,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2462,102,'',23,'0','0','0','0',0,'Κανονικός Φ.Π.Α.',1,NULL,NULL,0),(2463,102,'',0,'0','0','0','0',0,'Μηδενικό Φ.Π.Α.',1,NULL,NULL,0),(2464,102,'',13,'0','0','0','0',0,'Μειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2465,102,'',6.5,'0','0','0','0',0,'Υπερμειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2466,102,'',16,'0','0','0','0',0,'Νήσων κανονικός Φ.Π.Α.',1,NULL,NULL,0),(2467,102,'',9,'0','0','0','0',0,'Νήσων μειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2468,102,'',5,'0','0','0','0',0,'Νήσων υπερμειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2469,1,'85',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL,0),(2470,1,'85NPR',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL,0),(2471,1,'85NPROM',8.5,'2','3',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0,NULL,NULL,0),(2472,1,'85NPROMOMR',8.5,'2','3','2.5','3',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0,NULL,NULL,0),(2477,117,'',19.6,'0','0','0','0',0,'aaa',1,'101','10',0); /*!40000 ALTER TABLE `llx_c_tva` ENABLE KEYS */; UNLOCK TABLES; @@ -3037,16 +3337,16 @@ DROP TABLE IF EXISTS `llx_c_type_contact`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_type_contact` ( `rowid` int(11) NOT NULL, - `element` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `source` varchar(8) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'external', - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `element` varchar(30) NOT NULL, + `source` varchar(8) NOT NULL DEFAULT 'external', + `code` varchar(32) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_type_contact_id` (`element`,`source`,`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3068,14 +3368,14 @@ DROP TABLE IF EXISTS `llx_c_type_container`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_type_container` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_type_container_id` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3097,16 +3397,16 @@ DROP TABLE IF EXISTS `llx_c_type_fees`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_type_fees` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `label` varchar(128) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, `type` int(11) DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_type_fees` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3128,12 +3428,12 @@ DROP TABLE IF EXISTS `llx_c_type_resource`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_type_resource` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_type_resource_id` (`label`,`code`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3155,15 +3455,15 @@ DROP TABLE IF EXISTS `llx_c_typent`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_typent` ( `id` int(11) NOT NULL, - `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL, - `libelle` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `fk_country` int(11) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_typent` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3185,16 +3485,16 @@ DROP TABLE IF EXISTS `llx_c_units`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_units` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(3) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, - `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `short_label` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, + `short_label` varchar(5) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `scale` int(11) DEFAULT NULL, - `unit_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `unit_type` varchar(10) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_units_code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3216,11 +3516,11 @@ DROP TABLE IF EXISTS `llx_c_ziptown`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_ziptown` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(5) DEFAULT NULL, `fk_county` int(11) DEFAULT NULL, `fk_pays` int(11) NOT NULL DEFAULT 0, - `zip` varchar(10) COLLATE utf8_unicode_ci NOT NULL, - `town` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `zip` varchar(10) NOT NULL, + `town` varchar(255) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ziptown_fk_pays` (`zip`,`town`,`fk_pays`), @@ -3229,7 +3529,7 @@ CREATE TABLE `llx_c_ziptown` ( KEY `idx_c_ziptown_zip` (`zip`), CONSTRAINT `fk_c_ziptown_fk_county` FOREIGN KEY (`fk_county`) REFERENCES `llx_c_departements` (`rowid`), CONSTRAINT `fk_c_ziptown_fk_pays` FOREIGN KEY (`fk_pays`) REFERENCES `llx_c_country` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=101711 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=101711 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3253,11 +3553,11 @@ DROP TABLE IF EXISTS `llx_cabinetmed_c_banques`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_c_banques` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(8) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3278,12 +3578,12 @@ DROP TABLE IF EXISTS `llx_cabinetmed_c_examconclusion`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_c_examconclusion` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(8) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `position` int(11) DEFAULT 10, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3307,24 +3607,24 @@ CREATE TABLE `llx_cabinetmed_cons` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_soc` int(11) DEFAULT NULL, `datecons` date NOT NULL, - `typepriseencharge` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, - `motifconsprinc` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `diaglesprinc` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `motifconssec` text COLLATE utf8_unicode_ci DEFAULT NULL, - `diaglessec` text COLLATE utf8_unicode_ci DEFAULT NULL, - `hdm` text COLLATE utf8_unicode_ci DEFAULT NULL, - `examenclinique` text COLLATE utf8_unicode_ci DEFAULT NULL, - `examenprescrit` text COLLATE utf8_unicode_ci DEFAULT NULL, - `traitementprescrit` text COLLATE utf8_unicode_ci DEFAULT NULL, - `comment` text COLLATE utf8_unicode_ci DEFAULT NULL, - `typevisit` varchar(8) COLLATE utf8_unicode_ci NOT NULL, - `infiltration` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `codageccam` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `typepriseencharge` varchar(8) DEFAULT NULL, + `motifconsprinc` varchar(64) DEFAULT NULL, + `diaglesprinc` varchar(64) DEFAULT NULL, + `motifconssec` text DEFAULT NULL, + `diaglessec` text DEFAULT NULL, + `hdm` text DEFAULT NULL, + `examenclinique` text DEFAULT NULL, + `examenprescrit` text DEFAULT NULL, + `traitementprescrit` text DEFAULT NULL, + `comment` text DEFAULT NULL, + `typevisit` varchar(8) NOT NULL, + `infiltration` varchar(255) DEFAULT NULL, + `codageccam` varchar(16) DEFAULT NULL, `montant_cheque` double(24,8) DEFAULT NULL, `montant_espece` double(24,8) DEFAULT NULL, `montant_carte` double(24,8) DEFAULT NULL, `montant_tiers` double(24,8) DEFAULT NULL, - `banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `banque` varchar(128) DEFAULT NULL, `date_c` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user` int(11) DEFAULT NULL, @@ -3335,7 +3635,7 @@ CREATE TABLE `llx_cabinetmed_cons` ( KEY `idx_cabinetmed_cons_fk_soc` (`fk_soc`), KEY `idx_cabinetmed_cons_datecons` (`datecons`), CONSTRAINT `fk_cabinetmed_cons_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3359,11 +3659,11 @@ CREATE TABLE `llx_cabinetmed_cons_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `aaa` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `aaa` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_cabinetmed_cons_extrafields` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3385,14 +3685,14 @@ DROP TABLE IF EXISTS `llx_cabinetmed_diaglec`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_diaglec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(8) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `icd` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `icd` varchar(12) DEFAULT NULL, `position` int(11) DEFAULT 10, - `lang` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(12) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3417,13 +3717,13 @@ CREATE TABLE `llx_cabinetmed_examaut` ( `fk_soc` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `dateexam` date NOT NULL, - `examprinc` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `examsec` text COLLATE utf8_unicode_ci DEFAULT NULL, - `concprinc` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `concsec` text COLLATE utf8_unicode_ci DEFAULT NULL, + `examprinc` varchar(64) DEFAULT NULL, + `examsec` text DEFAULT NULL, + `concprinc` varchar(64) DEFAULT NULL, + `concsec` text DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3448,9 +3748,9 @@ CREATE TABLE `llx_cabinetmed_exambio` ( `fk_soc` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `dateexam` date NOT NULL, - `resultat` text COLLATE utf8_unicode_ci DEFAULT NULL, - `conclusion` text COLLATE utf8_unicode_ci DEFAULT NULL, - `comment` text COLLATE utf8_unicode_ci DEFAULT NULL, + `resultat` text DEFAULT NULL, + `conclusion` text DEFAULT NULL, + `comment` text DEFAULT NULL, `suivipr_ad` int(11) DEFAULT NULL, `suivipr_ag` int(11) DEFAULT NULL, `suivipr_vs` int(11) DEFAULT NULL, @@ -3466,7 +3766,7 @@ CREATE TABLE `llx_cabinetmed_exambio` ( `suivisa_basdai` double DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3487,13 +3787,13 @@ DROP TABLE IF EXISTS `llx_cabinetmed_examenprescrit`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_examenprescrit` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(8) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, - `biorad` varchar(8) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, + `biorad` varchar(8) NOT NULL, `position` int(11) DEFAULT 10, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3515,12 +3815,12 @@ DROP TABLE IF EXISTS `llx_cabinetmed_motifcons`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_motifcons` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(8) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `position` int(11) DEFAULT 10, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3542,15 +3842,15 @@ DROP TABLE IF EXISTS `llx_cabinetmed_patient`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_patient` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `note_antemed` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_antechirgen` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_antechirortho` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_anterhum` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_other` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_traitclass` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_traitallergie` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_traitintol` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_traitspec` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_antemed` text DEFAULT NULL, + `note_antechirgen` text DEFAULT NULL, + `note_antechirortho` text DEFAULT NULL, + `note_anterhum` text DEFAULT NULL, + `note_other` text DEFAULT NULL, + `note_traitclass` text DEFAULT NULL, + `note_traitallergie` text DEFAULT NULL, + `note_traitintol` text DEFAULT NULL, + `note_traitspec` text DEFAULT NULL, `alert_antemed` smallint(6) DEFAULT NULL, `alert_antechirgen` smallint(6) DEFAULT NULL, `alert_antechirortho` smallint(6) DEFAULT NULL, @@ -3562,7 +3862,7 @@ CREATE TABLE `llx_cabinetmed_patient` ( `alert_traitspec` smallint(6) DEFAULT NULL, `alert_note` smallint(6) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3584,48 +3884,48 @@ DROP TABLE IF EXISTS `llx_cabinetmed_societe`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_societe` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, + `nom` varchar(60) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(128) DEFAULT NULL, + `ref_int` varchar(60) DEFAULT NULL, `statut` smallint(6) DEFAULT 0, `parent` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `datea` datetime DEFAULT NULL, `status` smallint(6) DEFAULT 1, - `code_client` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_compta` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_compta_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cp` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `ville` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `code_client` varchar(24) DEFAULT NULL, + `code_fournisseur` varchar(24) DEFAULT NULL, + `code_compta` varchar(24) DEFAULT NULL, + `code_compta_fournisseur` varchar(24) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `cp` varchar(10) DEFAULT NULL, + `ville` varchar(50) DEFAULT NULL, `fk_departement` int(11) DEFAULT 0, `fk_pays` int(11) DEFAULT 0, - `tel` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `email` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `tel` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `email` varchar(128) DEFAULT NULL, `fk_effectif` int(11) DEFAULT 0, `fk_typent` int(11) DEFAULT 0, `fk_forme_juridique` int(11) DEFAULT 0, `fk_currency` int(11) DEFAULT 0, - `siren` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `siret` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `ape` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idprof4` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idprof5` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idprof6` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `tva_intra` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `siren` varchar(128) DEFAULT NULL, + `siret` varchar(128) DEFAULT NULL, + `ape` varchar(128) DEFAULT NULL, + `idprof4` varchar(128) DEFAULT NULL, + `idprof5` varchar(128) DEFAULT NULL, + `idprof6` varchar(128) DEFAULT NULL, + `tva_intra` varchar(20) DEFAULT NULL, `capital` double DEFAULT NULL, `fk_stcomm` int(11) NOT NULL DEFAULT 0, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `prefix_comm` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, + `prefix_comm` varchar(5) DEFAULT NULL, `client` smallint(6) DEFAULT 0, `fournisseur` smallint(6) DEFAULT 0, - `supplier_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `fk_prospectlevel` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `supplier_account` varchar(32) DEFAULT NULL, + `fk_prospectlevel` varchar(12) DEFAULT NULL, `customer_bad` smallint(6) DEFAULT 0, `customer_rate` double DEFAULT 0, `supplier_rate` double DEFAULT 0, @@ -3637,15 +3937,15 @@ CREATE TABLE `llx_cabinetmed_societe` ( `tva_assuj` smallint(6) DEFAULT 1, `localtax1_assuj` smallint(6) DEFAULT 0, `localtax2_assuj` smallint(6) DEFAULT 0, - `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT 0, `price_level` int(11) DEFAULT NULL, - `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `logo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `logo` varchar(255) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3667,15 +3967,15 @@ DROP TABLE IF EXISTS `llx_categorie`; CREATE TABLE `llx_categorie` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_parent` int(11) NOT NULL DEFAULT 0, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(255) NOT NULL, `type` int(11) NOT NULL DEFAULT 1, `entity` int(11) NOT NULL DEFAULT 1, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `visible` tinyint(4) NOT NULL DEFAULT 1, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `color` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `color` varchar(8) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, @@ -3684,7 +3984,7 @@ CREATE TABLE `llx_categorie` ( UNIQUE KEY `uk_categorie_ref` (`entity`,`fk_parent`,`label`,`type`), KEY `idx_categorie_type` (`type`), KEY `idx_categorie_label` (`label`) -) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3693,7 +3993,7 @@ CREATE TABLE `llx_categorie` ( LOCK TABLES `llx_categorie` WRITE; /*!40000 ALTER TABLE `llx_categorie` DISABLE KEYS */; -INSERT INTO `llx_categorie` VALUES (1,0,'Preferred Partners',1,1,'This category is used to tag suppliers that are Prefered Partners',NULL,0,NULL,'005fbf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(2,0,'MyCategory',1,1,'This is description of MyCategory for customer and prospects
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(3,7,'Hot products',1,1,'This is description of hot products
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(4,0,'Merchant',1,1,'Category dedicated to merchant third parties',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(5,7,'Bio Fairtrade',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(6,7,'Bio AB',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(7,9,'Bio',0,1,'This product is a BIO product',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(8,7,'Bio Dynamic',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(9,0,'High Quality Product',0,1,'Label dedicated for High quality products',NULL,0,NULL,'7f7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(10,0,'Reserved for VIP',0,1,'Product of thi category are reserved to VIP customers',NULL,0,NULL,'7f0000',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(11,9,'ISO',0,1,'Product of this category has an ISO label',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(12,0,'VIP',2,1,'',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(13,0,'Region North',2,1,'Customer of North Region',NULL,0,NULL,'7f007f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(14,0,'Regular customer',2,1,'',NULL,0,NULL,'5fbf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(15,13,'Region North A',2,1,'',NULL,0,NULL,'bf00bf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(17,0,'MyTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(18,0,'Met during meeting',4,1,'',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(19,17,'MySubTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(20,13,'Region North B',2,1,'',NULL,0,NULL,'bf005f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(21,0,'Region South',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(22,21,'Region South A',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(23,21,'Region South B',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(24,0,'Limited Edition',0,1,'This is a limited edition',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(25,0,'Imported products',0,1,'For product we have to import from another country',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(26,28,'Friends',4,1,'Category of friends contact',NULL,0,NULL,'00bf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(27,28,'Family',4,1,'Category of family contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(28,0,'Personal contacts',4,1,'For personal contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(29,0,'Online only merchant',1,1,'',NULL,0,NULL,'aaaaff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(30,0,'Important',6,1,'Tag for important project',NULL,0,NULL,'7f003f','',NULL,'2020-06-12 17:12:24',NULL,NULL),(31,0,'POS Products',0,1,'All products available in store (POS)',NULL,0,NULL,'5f00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(32,31,'Fruits',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(33,31,'Vegetables',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(34,31,'Pies',0,1,'Categories for Pies available on POS',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(35,31,'Other',0,1,'',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(36,0,'VIP',3,1,'VIP member',NULL,0,NULL,'007f00','',NULL,'2020-06-12 17:12:24',NULL,NULL),(37,0,'Board members',3,1,'',NULL,0,NULL,'bf00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(38,0,'Main center',9,1,'',NULL,0,NULL,'bf5f00',NULL,'2020-06-12 19:17:30','2020-06-12 17:17:30',12,NULL),(39,0,'Center B',9,1,'Center B',NULL,0,NULL,'ff7f00',NULL,'2020-06-12 19:17:55','2020-06-12 17:17:55',12,NULL),(40,0,'Bank foreign',5,1,'',NULL,0,NULL,'00bfbf',NULL,'2021-04-15 10:26:42','2021-04-15 13:26:42',12,NULL),(41,0,'Bank old company',5,1,'',NULL,0,NULL,'7f7f00',NULL,'2021-04-15 10:26:52','2021-04-15 13:26:52',12,NULL),(42,0,'Event Urgent',10,1,'',NULL,0,NULL,'7f003f',NULL,'2021-04-15 10:42:53','2021-04-15 13:42:53',12,NULL),(43,0,'Event hidden',10,1,'',NULL,0,NULL,'cccccc',NULL,'2021-04-15 10:43:06','2021-04-15 13:43:06',12,NULL),(44,0,'Event Managers',10,1,'',NULL,0,NULL,'007f7f',NULL,'2021-04-15 10:43:34','2021-04-15 13:43:34',12,NULL); +INSERT INTO `llx_categorie` VALUES (1,0,'Preferred Partners',1,1,'This category is used to tag suppliers that are Prefered Partners',NULL,0,NULL,'005fbf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(2,0,'MyCategory',1,1,'This is description of MyCategory for customer and prospects
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(3,7,'Hot products',1,1,'This is description of hot products
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(4,0,'Merchant',1,1,'Category dedicated to merchant third parties',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(5,7,'Bio Fairtrade',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(6,7,'Bio AB',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(7,9,'Bio',0,1,'This product is a BIO product',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(8,7,'Bio Dynamic',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(9,0,'High Quality Product',0,1,'Label dedicated for High quality products',NULL,0,NULL,'7f7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(10,0,'Reserved for VIP',0,1,'Product of thi category are reserved to VIP customers',NULL,0,NULL,'7f0000',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(11,9,'ISO',0,1,'Product of this category has an ISO label',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(12,0,'VIP',2,1,'',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(13,0,'Region North',2,1,'Customer of North Region',NULL,0,NULL,'7f007f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(14,0,'Regular customer',2,1,'',NULL,0,NULL,'5fbf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(15,13,'Region North A',2,1,'',NULL,0,NULL,'bf00bf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(17,0,'MyTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(18,0,'Met during meeting',4,1,'',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(19,17,'MySubTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(20,13,'Region North B',2,1,'',NULL,0,NULL,'bf005f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(21,0,'Region South',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(22,21,'Region South A',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(23,21,'Region South B',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(24,0,'Limited Edition',0,1,'This is a limited edition',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(25,0,'Imported products',0,1,'For product we have to import from another country',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(26,28,'Friends',4,1,'Category of friends contact',NULL,0,NULL,'00bf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(27,28,'Family',4,1,'Category of family contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(28,0,'Personal contacts',4,1,'For personal contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(29,0,'Online only merchant',1,1,'',NULL,0,NULL,'aaaaff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(30,0,'Important',6,1,'Tag for important project',NULL,0,NULL,'7f003f','',NULL,'2020-06-12 17:12:24',NULL,NULL),(31,0,'POS Products',0,1,'All products available in store (POS)',NULL,0,NULL,'5f00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(32,31,'Fruits',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(33,31,'Vegetables',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(34,31,'Pies',0,1,'Categories for Pies available on POS',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(35,31,'Other',0,1,'',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(36,0,'VIP',3,1,'VIP member',NULL,0,NULL,'007f00','',NULL,'2020-06-12 17:12:24',NULL,NULL),(37,0,'Board members',3,1,'',NULL,0,NULL,'bf00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(38,0,'Main center',9,1,'',NULL,0,NULL,'bf5f00',NULL,'2020-06-12 19:17:30','2020-06-12 17:17:30',12,NULL),(39,0,'Center B',9,1,'Center B',NULL,0,NULL,'ff7f00',NULL,'2020-06-12 19:17:55','2020-06-12 17:17:55',12,NULL),(40,0,'Bank foreign',5,1,'',NULL,0,NULL,'00bfbf',NULL,'2021-04-15 10:26:42','2021-04-15 13:26:42',12,NULL),(41,0,'Bank old company',5,1,'',NULL,0,NULL,'7f7f00',NULL,'2021-04-15 10:26:52','2021-04-15 13:26:52',12,NULL),(42,0,'Event Urgent',10,1,'',NULL,0,NULL,'7f003f',NULL,'2021-04-15 10:42:53','2021-04-15 13:42:53',12,NULL),(43,0,'Event hidden',10,1,'',NULL,0,NULL,'cccccc',NULL,'2021-04-15 10:43:06','2021-04-15 13:43:06',12,NULL),(44,0,'Event Managers',10,1,'',NULL,0,NULL,'007f7f',NULL,'2021-04-15 10:43:34','2021-04-15 13:43:34',12,NULL),(45,0,'Admin',13,1,'',NULL,0,NULL,'bf5f00',NULL,'2022-12-11 21:26:18','2022-12-11 21:26:18',12,NULL),(46,0,'Production',13,1,'',NULL,0,NULL,'007f7f',NULL,'2022-12-11 21:26:35','2022-12-11 21:26:35',12,NULL),(47,0,'Customers',12,1,'',NULL,0,NULL,'bf5f00',NULL,'2022-12-11 21:27:30','2022-12-11 21:27:30',12,NULL),(48,0,'Sales Representatives',12,1,'',NULL,0,NULL,'7f3f00',NULL,'2022-12-11 21:27:47','2022-12-11 21:27:47',12,NULL),(49,0,'Security',12,1,'',NULL,0,NULL,'bf0000',NULL,'2022-12-11 21:28:06','2022-12-11 21:28:06',12,NULL); /*!40000 ALTER TABLE `llx_categorie` ENABLE KEYS */; UNLOCK TABLES; @@ -3707,13 +4007,13 @@ DROP TABLE IF EXISTS `llx_categorie_account`; CREATE TABLE `llx_categorie_account` ( `fk_categorie` int(11) NOT NULL, `fk_account` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_account`), KEY `idx_categorie_account_fk_categorie` (`fk_categorie`), KEY `idx_categorie_account_fk_account` (`fk_account`), CONSTRAINT `fk_categorie_account_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_account_fk_account` FOREIGN KEY (`fk_account`) REFERENCES `llx_bank_account` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3736,13 +4036,13 @@ DROP TABLE IF EXISTS `llx_categorie_actioncomm`; CREATE TABLE `llx_categorie_actioncomm` ( `fk_categorie` int(11) NOT NULL, `fk_actioncomm` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_actioncomm`), KEY `idx_categorie_actioncomm_fk_categorie` (`fk_categorie`), KEY `idx_categorie_actioncomm_fk_actioncomm` (`fk_actioncomm`), CONSTRAINT `fk_categorie_actioncomm_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_actioncomm_fk_actioncomm` FOREIGN KEY (`fk_actioncomm`) REFERENCES `llx_actioncomm` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3764,13 +4064,13 @@ DROP TABLE IF EXISTS `llx_categorie_contact`; CREATE TABLE `llx_categorie_contact` ( `fk_categorie` int(11) NOT NULL, `fk_socpeople` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_socpeople`), KEY `idx_categorie_contact_fk_categorie` (`fk_categorie`), KEY `idx_categorie_contact_fk_socpeople` (`fk_socpeople`), CONSTRAINT `fk_categorie_contact_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_contact_fk_socpeople` FOREIGN KEY (`fk_socpeople`) REFERENCES `llx_socpeople` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3793,13 +4093,13 @@ DROP TABLE IF EXISTS `llx_categorie_fournisseur`; CREATE TABLE `llx_categorie_fournisseur` ( `fk_categorie` int(11) NOT NULL, `fk_soc` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_soc`), KEY `idx_categorie_fournisseur_fk_categorie` (`fk_categorie`), KEY `idx_categorie_fournisseur_fk_societe` (`fk_soc`), CONSTRAINT `fk_categorie_fournisseur_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_fournisseur_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3822,13 +4122,13 @@ DROP TABLE IF EXISTS `llx_categorie_knowledgemanagement`; CREATE TABLE `llx_categorie_knowledgemanagement` ( `fk_categorie` int(11) NOT NULL, `fk_knowledgemanagement` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_knowledgemanagement`), KEY `idx_categorie_knowledgemanagement_fk_categorie` (`fk_categorie`), KEY `idx_categorie_knowledgemanagement_fk_knowledgemanagement` (`fk_knowledgemanagement`), CONSTRAINT `fk_categorie_knowledgemanagement_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_knowledgemanagement_knowledgemanagement_rowid` FOREIGN KEY (`fk_knowledgemanagement`) REFERENCES `llx_knowledgemanagement_knowledgerecord` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3850,13 +4150,13 @@ DROP TABLE IF EXISTS `llx_categorie_lang`; CREATE TABLE `llx_categorie_lang` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_category` int(11) NOT NULL DEFAULT 0, - `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_category_lang` (`fk_category`,`lang`), CONSTRAINT `fk_category_lang_fk_category` FOREIGN KEY (`fk_category`) REFERENCES `llx_categorie` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3883,7 +4183,7 @@ CREATE TABLE `llx_categorie_member` ( KEY `idx_categorie_member_fk_member` (`fk_member`), CONSTRAINT `fk_categorie_member_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_member_member_rowid` FOREIGN KEY (`fk_member`) REFERENCES `llx_adherent` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3906,13 +4206,13 @@ DROP TABLE IF EXISTS `llx_categorie_product`; CREATE TABLE `llx_categorie_product` ( `fk_categorie` int(11) NOT NULL, `fk_product` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_product`), KEY `idx_categorie_product_fk_categorie` (`fk_categorie`), KEY `idx_categorie_product_fk_product` (`fk_product`), CONSTRAINT `fk_categorie_product_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_product_product_rowid` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3935,14 +4235,14 @@ DROP TABLE IF EXISTS `llx_categorie_project`; CREATE TABLE `llx_categorie_project` ( `fk_categorie` int(11) NOT NULL, `fk_project` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_project`), KEY `idx_categorie_project_fk_categorie` (`fk_categorie`), KEY `idx_categorie_project_fk_project` (`fk_project`), CONSTRAINT `fk_categorie_project_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_project_fk_project` FOREIGN KEY (`fk_project`) REFERENCES `llx_projet` (`rowid`), CONSTRAINT `fk_categorie_project_fk_project_rowid` FOREIGN KEY (`fk_project`) REFERENCES `llx_projet` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3965,13 +4265,13 @@ DROP TABLE IF EXISTS `llx_categorie_societe`; CREATE TABLE `llx_categorie_societe` ( `fk_categorie` int(11) NOT NULL, `fk_soc` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_soc`), KEY `idx_categorie_societe_fk_categorie` (`fk_categorie`), KEY `idx_categorie_societe_fk_societe` (`fk_soc`), CONSTRAINT `fk_categorie_societe_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_societe_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3994,13 +4294,13 @@ DROP TABLE IF EXISTS `llx_categorie_ticket`; CREATE TABLE `llx_categorie_ticket` ( `fk_categorie` int(11) NOT NULL, `fk_ticket` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_ticket`), KEY `idx_categorie_ticket_fk_categorie` (`fk_categorie`), KEY `idx_categorie_ticket_fk_ticket` (`fk_ticket`), CONSTRAINT `fk_categorie_ticket_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_ticket_ticket_rowid` FOREIGN KEY (`fk_ticket`) REFERENCES `llx_ticket` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4022,13 +4322,13 @@ DROP TABLE IF EXISTS `llx_categorie_user`; CREATE TABLE `llx_categorie_user` ( `fk_categorie` int(11) NOT NULL, `fk_user` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_user`), KEY `idx_categorie_user_fk_categorie` (`fk_categorie`), KEY `idx_categorie_user_fk_user` (`fk_user`), CONSTRAINT `fk_categorie_user_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4050,13 +4350,13 @@ DROP TABLE IF EXISTS `llx_categorie_warehouse`; CREATE TABLE `llx_categorie_warehouse` ( `fk_categorie` int(11) NOT NULL, `fk_warehouse` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_warehouse`), KEY `idx_categorie_warehouse_fk_categorie` (`fk_categorie`), KEY `idx_categorie_warehouse_fk_warehouse` (`fk_warehouse`), CONSTRAINT `fk_categorie_warehouse_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_warehouse_fk_warehouse_rowid` FOREIGN KEY (`fk_warehouse`) REFERENCES `llx_entrepot` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4079,7 +4379,7 @@ DROP TABLE IF EXISTS `llx_categorie_website_page`; CREATE TABLE `llx_categorie_website_page` ( `fk_categorie` int(11) NOT NULL, `fk_website_page` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_website_page`), KEY `idx_categorie_website_page_fk_categorie` (`fk_categorie`), KEY `idx_categorie_website_page_fk_website_page` (`fk_website_page`), @@ -4087,7 +4387,7 @@ CREATE TABLE `llx_categorie_website_page` ( CONSTRAINT `fk_categorie_website_page_website_page_rowid` FOREIGN KEY (`fk_website_page`) REFERENCES `llx_website_page` (`rowid`), CONSTRAINT `fk_categorie_websitepage_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`), CONSTRAINT `fk_categorie_websitepage_website_page_rowid` FOREIGN KEY (`fk_website_page`) REFERENCES `llx_website_page` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4110,10 +4410,10 @@ CREATE TABLE `llx_categories_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_categories_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4135,7 +4435,7 @@ DROP TABLE IF EXISTS `llx_chargesociales`; CREATE TABLE `llx_chargesociales` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `date_ech` datetime NOT NULL, - `libelle` varchar(80) COLLATE utf8_unicode_ci NOT NULL, + `libelle` varchar(80) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_type` int(11) NOT NULL, `fk_account` int(11) DEFAULT NULL, @@ -4146,15 +4446,17 @@ CREATE TABLE `llx_chargesociales` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `ref` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(16) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4163,7 +4465,7 @@ CREATE TABLE `llx_chargesociales` ( LOCK TABLES `llx_chargesociales` WRITE; /*!40000 ALTER TABLE `llx_chargesociales` DISABLE KEYS */; -INSERT INTO `llx_chargesociales` VALUES (4,'2013-08-09 00:00:00','fff',1,60,NULL,NULL,10.00000000,1,'2013-08-01','2019-09-26 11:33:19','2014-12-08 14:11:10',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,'2019-12-10 00:00:00','gdfgdf',1,60,NULL,NULL,10.00000000,0,'2019-12-10','2019-12-25 21:46:17','2019-12-26 01:46:17',NULL,NULL,12,NULL,NULL,NULL,NULL,NULL),(6,'2019-12-10 00:00:00','gdfgdf',1,60,NULL,NULL,10.00000000,1,'2019-12-10','2019-12-25 21:48:46','2019-12-26 01:48:12',NULL,NULL,12,NULL,NULL,NULL,NULL,NULL); +INSERT INTO `llx_chargesociales` VALUES (4,'2013-08-09 00:00:00','fff',1,60,NULL,NULL,10.00000000,1,'2013-08-01','2019-09-26 11:33:19','2014-12-08 14:11:10',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,'2019-12-10 00:00:00','gdfgdf',1,60,NULL,NULL,10.00000000,0,'2019-12-10','2019-12-25 21:46:17','2019-12-26 01:46:17',NULL,NULL,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(6,'2019-12-10 00:00:00','gdfgdf',1,60,NULL,NULL,10.00000000,1,'2019-12-10','2019-12-25 21:48:46','2019-12-26 01:48:12',NULL,NULL,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_chargesociales` ENABLE KEYS */; UNLOCK TABLES; @@ -4179,11 +4481,11 @@ CREATE TABLE `llx_commande` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `date_cloture` datetime DEFAULT NULL, @@ -4201,15 +4503,17 @@ CREATE TABLE `llx_commande` ( `total_tva` double(24,8) DEFAULT 0.00000000, `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, + `revenuestamp` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, `total_ttc` double(24,8) DEFAULT 0.00000000, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `facture` tinyint(4) DEFAULT 0, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, `date_livraison` datetime DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, @@ -4217,19 +4521,19 @@ CREATE TABLE `llx_commande` ( `fk_availability` int(11) DEFAULT NULL, `fk_input_reason` int(11) DEFAULT NULL, `fk_delivery_address` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `module_source` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `pos_source` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `module_source` varchar(32) DEFAULT NULL, + `pos_source` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_commande_ref` (`ref`,`entity`), KEY `idx_commande_fk_soc` (`fk_soc`), @@ -4244,7 +4548,7 @@ CREATE TABLE `llx_commande` ( CONSTRAINT `fk_commande_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_commande_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_commande_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4253,7 +4557,7 @@ CREATE TABLE `llx_commande` ( LOCK TABLES `llx_commande` WRITE; /*!40000 ALTER TABLE `llx_commande` DISABLE KEYS */; -INSERT INTO `llx_commande` VALUES (1,'2022-02-07 13:37:54',1,NULL,'CO1107-0002',1,NULL,NULL,'','2013-07-20 15:23:12','2021-08-08 13:59:09',NULL,'2021-07-20',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,1,1,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(2,'2022-02-07 13:37:54',1,NULL,'CO1107-0003',1,NULL,NULL,'','2013-07-20 23:20:12','2021-02-12 17:06:51',NULL,'2021-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(3,'2022-02-07 13:37:54',1,NULL,'CO1107-0004',1,NULL,NULL,'','2013-07-20 23:22:53','2021-02-17 18:27:56',NULL,'2021-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,30.00000000,30.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(5,'2022-02-07 13:37:54',1,NULL,'CO1108-0001',1,NULL,NULL,'','2013-08-08 03:04:11','2021-08-08 03:04:21',NULL,'2021-08-08',1,NULL,1,NULL,NULL,2,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(6,'2021-04-15 10:22:31',19,NULL,'(PROV6)',1,NULL,NULL,'','2015-02-17 16:22:14',NULL,NULL,'2021-02-17',1,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','einstein',0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,'commande/(PROV6)/(PROV6).pdf',NULL,NULL),(17,'2021-07-11 17:49:28',4,NULL,'CO7001-0005',1,NULL,NULL,NULL,'2017-02-15 23:50:34','2020-02-15 23:50:34',NULL,'2021-05-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,509.00000000,509.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,509.00000000,0.00000000,509.00000000,NULL,NULL,NULL),(18,'2022-02-07 13:37:54',7,4,'CO7001-0006',1,NULL,NULL,NULL,'2017-02-15 23:51:23','2021-02-15 23:51:23',NULL,'2022-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,900.00000000,900.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL,NULL,NULL),(20,'2021-04-15 10:22:31',4,NULL,'CO7001-0007',1,NULL,NULL,NULL,'2017-02-15 23:55:52','2020-02-15 23:55:52',NULL,'2021-04-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,330.00000000,330.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,330.00000000,0.00000000,330.00000000,NULL,NULL,NULL),(29,'2021-04-15 10:22:31',4,NULL,'CO7001-0008',1,NULL,NULL,NULL,'2017-02-16 00:03:44','2021-02-16 00:03:44',NULL,'2021-02-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,457.00000000,457.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,457.00000000,0.00000000,457.00000000,NULL,NULL,NULL),(34,'2022-02-07 13:37:54',11,NULL,'CO7001-0009',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2021-02-16 00:05:01',NULL,'2022-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,124.00000000,124.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,124.00000000,0.00000000,124.00000000,NULL,NULL,NULL),(38,'2022-02-07 13:37:54',3,NULL,'CO7001-0010',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2021-02-16 00:05:01',NULL,'2022-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL,NULL,NULL),(40,'2022-02-07 13:37:54',11,NULL,'CO7001-0011',1,NULL,NULL,NULL,'2017-02-16 00:05:10','2021-02-16 00:05:11',NULL,'2022-01-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1210.00000000,1210.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1210.00000000,0.00000000,1210.00000000,NULL,NULL,NULL),(43,'2021-04-15 10:22:31',10,NULL,'CO7001-0012',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2021-02-16 00:05:11',NULL,'2021-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,478.00000000,478.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,478.00000000,0.00000000,478.00000000,NULL,NULL,NULL),(47,'2022-02-07 13:37:54',1,NULL,'CO7001-0013',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2021-02-16 00:05:11',NULL,'2021-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,55.00000000,55.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,55.00000000,0.00000000,55.00000000,NULL,NULL,NULL),(48,'2022-02-07 13:37:54',4,NULL,'CO7001-0014',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2021-02-16 00:05:11',NULL,'2021-07-30',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,540.00000000,540.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,540.00000000,0.00000000,540.00000000,NULL,NULL,NULL),(50,'2022-02-07 13:37:54',1,NULL,'CO7001-0015',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2022-02-16 00:05:26',NULL,'2021-12-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,118.00000000,118.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,118.00000000,0.00000000,118.00000000,NULL,NULL,NULL),(54,'2021-07-11 17:49:28',12,NULL,'CO7001-0016',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2020-02-16 00:05:26','2020-02-16 03:05:56','2021-06-03',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,220.00000000,220.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,220.00000000,0.00000000,220.00000000,NULL,NULL,NULL),(58,'2022-02-07 13:37:54',1,NULL,'CO7001-0017',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2021-02-16 00:05:26',NULL,'2021-07-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,436.00000000,436.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,436.00000000,0.00000000,436.00000000,NULL,NULL,NULL),(62,'2021-04-15 10:22:31',19,NULL,'CO7001-0018',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2020-02-16 00:05:35','2020-12-20 20:48:55','2021-02-23',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL,NULL,NULL),(68,'2021-07-11 17:49:28',3,NULL,'CO7001-0019',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2020-02-16 00:05:35',NULL,'2021-05-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,45.00000000,45.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,45.00000000,0.00000000,45.00000000,NULL,NULL,NULL),(72,'2022-02-07 13:37:54',6,NULL,'CO7001-0020',1,NULL,NULL,NULL,'2017-02-16 00:05:36','2021-02-16 00:05:36','2022-01-16 02:42:56','2021-11-13',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,610.00000000,610.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,610.00000000,0.00000000,610.00000000,NULL,NULL,NULL),(75,'2021-04-15 10:22:31',4,NULL,'CO7001-0021',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2020-02-16 04:14:20',NULL,'2021-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,25.00000000,49.88000000,0.00000000,1200.00000000,1274.88000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,25.00000000,1274.88000000,NULL,NULL,NULL),(78,'2022-02-07 13:37:54',12,NULL,'CO7001-0022',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2021-02-16 00:05:37',NULL,'2021-10-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,928.00000000,928.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,928.00000000,0.00000000,928.00000000,NULL,NULL,NULL),(81,'2021-07-11 17:49:28',11,NULL,'CO7001-0023',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2021-07-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,725.00000000,725.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,725.00000000,0.00000000,725.00000000,NULL,NULL,NULL),(83,'2021-04-15 10:22:31',26,NULL,'CO7001-0024',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2020-02-16 00:05:38',NULL,'2021-04-03',12,NULL,12,NULL,1,-1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,105.00000000,105.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,105.00000000,0.00000000,105.00000000,NULL,NULL,NULL),(84,'2021-07-11 17:49:28',2,NULL,'CO7001-0025',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2021-06-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,510.00000000,510.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,510.00000000,0.00000000,510.00000000,NULL,NULL,NULL),(85,'2022-02-07 13:37:54',1,NULL,'CO7001-0026',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2022-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,47.00000000,47.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,47.00000000,0.00000000,47.00000000,NULL,NULL,NULL),(88,'2022-02-07 13:37:54',10,NULL,'CO7001-0027',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-12-20 20:42:42',NULL,'2021-12-23',12,12,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,'This is a private note','This is a public note','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,'commande/CO7001-0027/CO7001-0027.pdf',NULL,NULL),(90,'2021-04-15 10:22:31',19,NULL,'(PROV90)',1,NULL,NULL,NULL,'2017-02-16 04:46:31',NULL,NULL,'2021-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,440.00000000,440.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL,NULL,NULL),(91,'2021-04-15 10:22:31',1,NULL,'(PROV91)',1,NULL,NULL,NULL,'2017-02-16 04:46:37',NULL,NULL,'2021-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(92,'2021-04-15 10:22:31',3,NULL,'(PROV92)',1,NULL,NULL,NULL,'2017-02-16 04:47:25',NULL,NULL,'2021-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1018.00000000,1018.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL,NULL,NULL),(93,'2022-02-07 13:37:54',10,NULL,'(PROV93)',1,NULL,NULL,NULL,'2019-09-27 19:32:53',NULL,NULL,'2021-09-27',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'commande/(PROV93)/(PROV93).pdf',NULL,NULL),(94,'2022-02-07 13:37:54',1,NULL,'(PROV94)',1,NULL,NULL,NULL,'2019-12-20 20:49:54',NULL,NULL,'2021-12-20',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(95,'2022-02-07 13:37:54',1,NULL,'(PROV95)',1,NULL,NULL,NULL,'2019-12-20 20:50:23',NULL,NULL,'2021-12-20',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(96,'2022-02-07 13:37:54',10,6,'(PROV96)',1,NULL,NULL,NULL,'2020-01-07 23:39:09',NULL,NULL,'2022-01-07',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'aaa','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL),(97,'2022-02-07 13:37:54',10,6,'(PROV97)',1,NULL,NULL,NULL,'2020-01-07 23:43:06',NULL,NULL,'2022-01-07',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'aaa','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL),(98,'2022-02-07 13:37:54',1,NULL,'(PROV98)',1,NULL,NULL,NULL,'2020-01-19 14:22:34',NULL,NULL,'2022-01-19',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.45000000,0.45000000,3.00000000,3.90000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,3.00000000,0.00000000,3.90000000,NULL,NULL,NULL),(99,'2022-02-07 13:37:54',1,NULL,'(PROV99)',1,NULL,NULL,NULL,'2020-01-19 14:24:27',NULL,NULL,'2022-01-19',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.24000000,0.00000000,0.00000000,4.00000000,4.24000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,4.00000000,0.24000000,4.24000000,NULL,NULL,NULL); +INSERT INTO `llx_commande` VALUES (1,'2022-12-11 21:23:22',1,NULL,'CO1107-0002',1,NULL,NULL,'','2013-07-20 15:23:12','2022-08-08 13:59:09',NULL,'2022-07-20',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,1,NULL,1,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(2,'2022-12-11 21:23:22',1,NULL,'CO1107-0003',1,NULL,NULL,'','2013-07-20 23:20:12','2022-02-12 17:06:51',NULL,'2022-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(3,'2022-12-11 21:23:22',1,NULL,'CO1107-0004',1,NULL,NULL,'','2013-07-20 23:22:53','2022-02-17 18:27:56',NULL,'2022-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,30.00000000,30.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(5,'2022-12-11 21:23:22',1,NULL,'CO1108-0001',1,NULL,NULL,'','2013-08-08 03:04:11','2022-08-08 03:04:21',NULL,'2022-08-08',1,NULL,1,NULL,NULL,2,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(6,'2022-07-04 01:11:35',19,NULL,'(PROV6)',1,NULL,NULL,'','2015-02-17 16:22:14',NULL,NULL,'2022-02-17',1,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','einstein',0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,'commande/(PROV6)/(PROV6).pdf',NULL,NULL),(17,'2022-07-04 01:11:35',4,NULL,'CO7001-0005',1,NULL,NULL,NULL,'2017-02-15 23:50:34','2021-02-15 23:50:34',NULL,'2022-05-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,509.00000000,509.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,509.00000000,0.00000000,509.00000000,NULL,NULL,NULL),(18,'2022-02-07 13:37:54',7,4,'CO7001-0006',1,NULL,NULL,NULL,'2017-02-15 23:51:23','2021-02-15 23:51:23',NULL,'2022-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,900.00000000,900.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL,NULL,NULL),(20,'2022-07-04 01:11:35',4,NULL,'CO7001-0007',1,NULL,NULL,NULL,'2017-02-15 23:55:52','2021-02-15 23:55:52',NULL,'2022-04-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,330.00000000,330.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,330.00000000,0.00000000,330.00000000,NULL,NULL,NULL),(29,'2022-07-04 01:11:35',4,NULL,'CO7001-0008',1,NULL,NULL,NULL,'2017-02-16 00:03:44','2022-02-16 00:03:44',NULL,'2022-02-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,457.00000000,457.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,457.00000000,0.00000000,457.00000000,NULL,NULL,NULL),(34,'2022-02-07 13:37:54',11,NULL,'CO7001-0009',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2021-02-16 00:05:01',NULL,'2022-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,124.00000000,124.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,124.00000000,0.00000000,124.00000000,NULL,NULL,NULL),(38,'2022-02-07 13:37:54',3,NULL,'CO7001-0010',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2021-02-16 00:05:01',NULL,'2022-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL,NULL,NULL),(40,'2022-02-07 13:37:54',11,NULL,'CO7001-0011',1,NULL,NULL,NULL,'2017-02-16 00:05:10','2021-02-16 00:05:11',NULL,'2022-01-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1210.00000000,1210.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1210.00000000,0.00000000,1210.00000000,NULL,NULL,NULL),(43,'2022-07-04 01:11:35',10,NULL,'CO7001-0012',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2022-02-16 00:05:11',NULL,'2022-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,478.00000000,478.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,478.00000000,0.00000000,478.00000000,NULL,NULL,NULL),(47,'2022-12-11 21:23:22',1,NULL,'CO7001-0013',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2022-02-16 00:05:11',NULL,'2022-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,55.00000000,55.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,55.00000000,0.00000000,55.00000000,NULL,NULL,NULL),(48,'2022-12-11 21:23:22',4,NULL,'CO7001-0014',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2022-02-16 00:05:11',NULL,'2022-07-30',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,540.00000000,540.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,540.00000000,0.00000000,540.00000000,NULL,NULL,NULL),(50,'2022-02-07 13:37:54',1,NULL,'CO7001-0015',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2022-02-16 00:05:26',NULL,'2021-12-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,118.00000000,118.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,118.00000000,0.00000000,118.00000000,NULL,NULL,NULL),(54,'2022-07-04 01:11:35',12,NULL,'CO7001-0016',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2021-02-16 00:05:26','2021-02-16 03:05:56','2022-06-03',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,220.00000000,220.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,220.00000000,0.00000000,220.00000000,NULL,NULL,NULL),(58,'2022-12-11 21:23:22',1,NULL,'CO7001-0017',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2022-02-16 00:05:26',NULL,'2022-07-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,436.00000000,436.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,436.00000000,0.00000000,436.00000000,NULL,NULL,NULL),(62,'2022-07-04 01:11:35',19,NULL,'CO7001-0018',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2021-02-16 00:05:35','2021-12-20 20:48:55','2022-02-23',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL,NULL,NULL),(68,'2022-07-04 01:11:35',3,NULL,'CO7001-0019',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2021-02-16 00:05:35',NULL,'2022-05-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,45.00000000,45.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,45.00000000,0.00000000,45.00000000,NULL,NULL,NULL),(72,'2022-12-11 21:23:22',6,NULL,'CO7001-0020',1,NULL,NULL,NULL,'2017-02-16 00:05:36','2022-02-16 00:05:36','2022-01-16 02:42:56','2022-11-13',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,610.00000000,610.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,610.00000000,0.00000000,610.00000000,NULL,NULL,NULL),(75,'2022-07-04 01:11:35',4,NULL,'CO7001-0021',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2021-02-16 04:14:20',NULL,'2022-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,25.00000000,49.88000000,0.00000000,0.00000000,1200.00000000,1274.88000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,25.00000000,1274.88000000,NULL,NULL,NULL),(78,'2022-12-11 21:23:22',12,NULL,'CO7001-0022',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2022-02-16 00:05:37',NULL,'2022-10-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,928.00000000,928.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,928.00000000,0.00000000,928.00000000,NULL,NULL,NULL),(81,'2022-07-04 01:11:35',11,NULL,'CO7001-0023',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2022-02-16 00:05:38',NULL,'2022-07-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,725.00000000,725.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,725.00000000,0.00000000,725.00000000,NULL,NULL,NULL),(83,'2022-07-04 01:11:35',26,NULL,'CO7001-0024',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2022-04-03',12,NULL,12,NULL,1,-1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,105.00000000,105.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,105.00000000,0.00000000,105.00000000,NULL,NULL,NULL),(84,'2022-07-04 01:11:35',2,NULL,'CO7001-0025',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2022-02-16 00:05:38',NULL,'2022-06-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,510.00000000,510.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,510.00000000,0.00000000,510.00000000,NULL,NULL,NULL),(85,'2022-02-07 13:37:54',1,NULL,'CO7001-0026',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2022-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,47.00000000,47.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,47.00000000,0.00000000,47.00000000,NULL,NULL,NULL),(88,'2022-02-07 13:37:54',10,NULL,'CO7001-0027',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-12-20 20:42:42',NULL,'2021-12-23',12,12,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,'This is a private note','This is a public note','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,'commande/CO7001-0027/CO7001-0027.pdf',NULL,NULL),(90,'2022-07-04 01:11:35',19,NULL,'(PROV90)',1,NULL,NULL,NULL,'2017-02-16 04:46:31',NULL,NULL,'2022-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,440.00000000,440.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL,NULL,NULL),(91,'2022-07-04 01:11:35',1,NULL,'(PROV91)',1,NULL,NULL,NULL,'2017-02-16 04:46:37',NULL,NULL,'2022-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(92,'2022-07-04 01:11:35',3,NULL,'(PROV92)',1,NULL,NULL,NULL,'2017-02-16 04:47:25',NULL,NULL,'2022-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,1018.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL,NULL,NULL),(93,'2022-12-11 21:23:22',10,NULL,'(PROV93)',1,NULL,NULL,NULL,'2019-09-27 19:32:53',NULL,NULL,'2022-09-27',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'commande/(PROV93)/(PROV93).pdf',NULL,NULL),(94,'2022-02-07 13:37:54',1,NULL,'(PROV94)',1,NULL,NULL,NULL,'2019-12-20 20:49:54',NULL,NULL,'2021-12-20',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(95,'2022-02-07 13:37:54',1,NULL,'(PROV95)',1,NULL,NULL,NULL,'2019-12-20 20:50:23',NULL,NULL,'2021-12-20',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(96,'2022-02-07 13:37:54',10,6,'(PROV96)',1,NULL,NULL,NULL,'2020-01-07 23:39:09',NULL,NULL,'2022-01-07',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'aaa','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL),(97,'2022-02-07 13:37:54',10,6,'(PROV97)',1,NULL,NULL,NULL,'2020-01-07 23:43:06',NULL,NULL,'2022-01-07',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'aaa','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL),(98,'2022-02-07 13:37:54',1,NULL,'(PROV98)',1,NULL,NULL,NULL,'2020-01-19 14:22:34',NULL,NULL,'2022-01-19',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.45000000,0.45000000,0.00000000,3.00000000,3.90000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,3.00000000,0.00000000,3.90000000,NULL,NULL,NULL),(99,'2022-02-07 13:37:54',1,NULL,'(PROV99)',1,NULL,NULL,NULL,'2020-01-19 14:24:27',NULL,NULL,'2022-01-19',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.24000000,0.00000000,0.00000000,0.00000000,4.00000000,4.24000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,4.00000000,0.24000000,4.24000000,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_commande` ENABLE KEYS */; UNLOCK TABLES; @@ -4268,11 +4572,11 @@ CREATE TABLE `llx_commande_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `custom1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `custom1` varchar(10) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4295,10 +4599,10 @@ CREATE TABLE `llx_commande_fournisseur` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_soc` int(11) NOT NULL, - `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_supplier` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_supplier` varchar(255) DEFAULT NULL, `fk_projet` int(11) DEFAULT 0, `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -4321,31 +4625,31 @@ CREATE TABLE `llx_commande_fournisseur` ( `localtax2` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, `total_ttc` double(24,8) DEFAULT 0.00000000, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_input_method` int(11) DEFAULT 0, `fk_cond_reglement` int(11) DEFAULT 0, `fk_mode_reglement` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_livraison` datetime DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_commande_fournisseur_ref` (`ref`,`fk_soc`,`entity`), KEY `idx_commande_fournisseur_fk_soc` (`fk_soc`), KEY `billed` (`billed`), CONSTRAINT `fk_commande_fournisseur_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4354,7 +4658,7 @@ CREATE TABLE `llx_commande_fournisseur` ( LOCK TABLES `llx_commande_fournisseur` WRITE; /*!40000 ALTER TABLE `llx_commande_fournisseur` DISABLE KEYS */; -INSERT INTO `llx_commande_fournisseur` VALUES (1,'2022-02-07 13:37:54',13,'CF1007-0001',1,NULL,NULL,NULL,'2021-07-11 17:13:40','2022-02-01 18:51:42','2022-02-01 18:52:04',NULL,'2022-02-01',1,NULL,12,12,NULL,0,5,0,0.00000000,0,0,39.20000000,0.00000000,0.00000000,200.00000000,239.20000000,NULL,NULL,'muscadet',2,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2021-07-11 17:49:28',1,'CF1007-0002',1,NULL,NULL,NULL,'2021-07-11 18:46:28','2021-07-11 18:47:33',NULL,NULL,'2021-07-11',1,NULL,1,NULL,NULL,0,4,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,NULL,NULL,'muscadet',4,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2020-01-20 11:22:53',17,'(PROV3)',1,NULL,NULL,NULL,'2013-08-04 23:00:52',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,1079.17000000,1079.17000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'USD',1.20000000,1295.00000000,0.00000000,1295.00000000,NULL),(4,'2020-01-20 11:19:49',17,'(PROV4)',1,NULL,NULL,NULL,'2013-08-04 23:19:32',NULL,NULL,NULL,NULL,1,12,NULL,NULL,NULL,0,0,0,0.00000000,0,0,11.88000000,0.00000000,0.00000000,174.17000000,186.05000000,'Private note','Public note','muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EUR',1.00000000,174.17000000,11.88000000,186.05000000,NULL),(13,'2021-04-15 10:22:31',1,'CF1303-0004',1,NULL,NULL,NULL,'2021-03-09 19:39:18','2021-03-09 19:39:27','2021-03-09 19:39:32',NULL,'2021-03-09',1,NULL,1,1,NULL,0,2,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,NULL,NULL,'muscadet',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(14,'2020-01-20 11:20:11',1,'(PROV14)',1,NULL,'',NULL,'2020-01-20 12:20:11',NULL,NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,0,NULL,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','muscadet',0,1,NULL,NULL,NULL,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL); +INSERT INTO `llx_commande_fournisseur` VALUES (1,'2022-02-07 13:37:54',13,'CF1007-0001',1,NULL,NULL,NULL,'2021-07-11 17:13:40','2022-02-01 18:51:42','2022-02-01 18:52:04',NULL,'2022-02-01',1,NULL,12,12,NULL,0,5,0,0.00000000,0,0,39.20000000,0.00000000,0.00000000,200.00000000,239.20000000,NULL,NULL,'muscadet',2,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2022-12-11 21:23:22',1,'CF1007-0002',1,NULL,NULL,NULL,'2022-07-11 18:46:28','2022-07-11 18:47:33',NULL,NULL,'2022-07-11',1,NULL,1,NULL,NULL,0,4,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,NULL,NULL,'muscadet',4,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2020-01-20 11:22:53',17,'(PROV3)',1,NULL,NULL,NULL,'2013-08-04 23:00:52',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,1079.17000000,1079.17000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'USD',1.20000000,1295.00000000,0.00000000,1295.00000000,NULL),(4,'2020-01-20 11:19:49',17,'(PROV4)',1,NULL,NULL,NULL,'2013-08-04 23:19:32',NULL,NULL,NULL,NULL,1,12,NULL,NULL,NULL,0,0,0,0.00000000,0,0,11.88000000,0.00000000,0.00000000,174.17000000,186.05000000,'Private note','Public note','muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EUR',1.00000000,174.17000000,11.88000000,186.05000000,NULL),(13,'2022-07-04 01:11:35',1,'CF1303-0004',1,NULL,NULL,NULL,'2022-03-09 19:39:18','2022-03-09 19:39:27','2022-03-09 19:39:32',NULL,'2022-03-09',1,NULL,1,1,NULL,0,2,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,NULL,NULL,'muscadet',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(14,'2020-01-20 11:20:11',1,'(PROV14)',1,NULL,'',NULL,'2020-01-20 12:20:11',NULL,NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,0,NULL,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','muscadet',0,1,NULL,NULL,NULL,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL); /*!40000 ALTER TABLE `llx_commande_fournisseur` ENABLE KEYS */; UNLOCK TABLES; @@ -4374,18 +4678,19 @@ CREATE TABLE `llx_commande_fournisseur_dispatch` ( `fk_entrepot` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, - `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `batch` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_reception` int(11) DEFAULT NULL, `cost_price` double(24,8) DEFAULT 0.00000000, PRIMARY KEY (`rowid`), - KEY `idx_commande_fournisseur_dispatch_fk_commande` (`fk_commande`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + KEY `idx_commande_fournisseur_dispatch_fk_commande` (`fk_commande`), + KEY `idx_commande_fournisseur_dispatch_fk_product` (`fk_product`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4409,10 +4714,10 @@ CREATE TABLE `llx_commande_fournisseur_dispatch_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_fournisseur_dispatch_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4435,10 +4740,10 @@ CREATE TABLE `llx_commande_fournisseur_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_fournisseur_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4464,9 +4769,9 @@ CREATE TABLE `llx_commande_fournisseur_log` ( `fk_commande` int(11) NOT NULL, `fk_statut` smallint(6) NOT NULL, `fk_user` int(11) NOT NULL, - `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4491,15 +4796,15 @@ CREATE TABLE `llx_commande_fournisseurdet` ( `fk_commande` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -4513,12 +4818,12 @@ CREATE TABLE `llx_commande_fournisseurdet` ( `date_start` datetime DEFAULT NULL, `date_end` datetime DEFAULT NULL, `info_bits` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -4528,7 +4833,7 @@ CREATE TABLE `llx_commande_fournisseurdet` ( KEY `idx_commande_fournisseurdet_fk_commande` (`fk_commande`), KEY `idx_commande_fournisseurdet_fk_product` (`fk_product`), CONSTRAINT `fk_commande_fournisseurdet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4552,10 +4857,10 @@ CREATE TABLE `llx_commande_fournisseurdet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_fournisseurdet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4579,15 +4884,15 @@ CREATE TABLE `llx_commandedet` ( `fk_commande` int(11) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT NULL, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT NULL, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -4607,11 +4912,11 @@ CREATE TABLE `llx_commandedet` ( `buy_price_ht` double(24,8) DEFAULT 0.00000000, `special_code` int(10) unsigned DEFAULT 0, `rang` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_commandefourndet` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -4624,7 +4929,7 @@ CREATE TABLE `llx_commandedet` ( CONSTRAINT `fk_commandedet_fk_commande` FOREIGN KEY (`fk_commande`) REFERENCES `llx_commande` (`rowid`), CONSTRAINT `fk_commandedet_fk_commandefourndet` FOREIGN KEY (`fk_commandefourndet`) REFERENCES `llx_commande_fournisseurdet` (`rowid`), CONSTRAINT `fk_commandedet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=308 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=308 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4648,10 +4953,10 @@ CREATE TABLE `llx_commandedet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commandedet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4674,15 +4979,15 @@ CREATE TABLE `llx_comment` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `description` text COLLATE utf8_unicode_ci NOT NULL, + `description` text NOT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_element` int(11) DEFAULT NULL, - `element_type` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `element_type` varchar(50) DEFAULT NULL, `entity` int(11) DEFAULT 1, - `import_key` varchar(125) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(125) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4703,16 +5008,16 @@ DROP TABLE IF EXISTS `llx_const`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_const` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `name` varchar(255) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `value` text COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(64) COLLATE utf8_unicode_ci DEFAULT 'string', + `value` text NOT NULL, + `type` varchar(64) DEFAULT 'string', `visible` tinyint(4) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_const` (`name`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=9255 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=9516 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4721,7 +5026,7 @@ CREATE TABLE `llx_const` ( LOCK TABLES `llx_const` WRITE; /*!40000 ALTER TABLE `llx_const` DISABLE KEYS */; -INSERT INTO `llx_const` VALUES (8,'MAIN_UPLOAD_DOC',0,'2048','chaine',0,'Max size for file upload (0 means no upload allowed)','2012-07-08 11:17:57'),(9,'MAIN_SEARCHFORM_SOCIETE',0,'1','yesno',0,'Show form for quick company search','2012-07-08 11:17:57'),(10,'MAIN_SEARCHFORM_CONTACT',0,'1','yesno',0,'Show form for quick contact search','2012-07-08 11:17:57'),(11,'MAIN_SEARCHFORM_PRODUITSERVICE',0,'1','yesno',0,'Show form for quick product search','2012-07-08 11:17:58'),(12,'MAIN_SEARCHFORM_ADHERENT',0,'1','yesno',0,'Show form for quick member search','2012-07-08 11:17:58'),(16,'MAIN_SIZE_LISTE_LIMIT',0,'25','chaine',0,'Longueur maximum des listes','2012-07-08 11:17:58'),(29,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',1,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-07-08 11:17:58'),(33,'SOCIETE_NOLIST_COURRIER',0,'1','yesno',0,'Liste les fichiers du repertoire courrier','2012-07-08 11:17:58'),(36,'ADHERENT_MAIL_REQUIRED',1,'1','yesno',0,'EMail required to create a new member','2012-07-08 11:17:58'),(37,'ADHERENT_MAIL_FROM',1,'adherents@domain.com','chaine',0,'Sender EMail for automatic emails','2012-07-08 11:17:58'),(38,'ADHERENT_MAIL_RESIL',1,'Your subscription has been resiliated.\r\nWe hope to see you soon again','html',0,'Mail resiliation','2018-11-23 11:56:07'),(39,'ADHERENT_MAIL_VALID',1,'Your subscription has been validated.\r\nThis is a remind of your personal information :\r\n\r\n%INFOS%\r\n\r\n','html',0,'Mail de validation','2018-11-23 11:56:07'),(40,'ADHERENT_MAIL_COTIS',1,'Hello %PRENOM%,\r\nThanks for your subscription.\r\nThis email confirms that your subscription has been received and processed.\r\n\r\n','html',0,'Mail de validation de cotisation','2018-11-23 11:56:07'),(41,'ADHERENT_MAIL_VALID_SUBJECT',1,'Your subscription has been validated','chaine',0,'Sujet du mail de validation','2012-07-08 11:17:59'),(42,'ADHERENT_MAIL_RESIL_SUBJECT',1,'Resiliating your subscription','chaine',0,'Sujet du mail de resiliation','2012-07-08 11:17:59'),(43,'ADHERENT_MAIL_COTIS_SUBJECT',1,'Receipt of your subscription','chaine',0,'Sujet du mail de validation de cotisation','2012-07-08 11:17:59'),(44,'MAILING_EMAIL_FROM',1,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-07-08 11:17:59'),(45,'ADHERENT_USE_MAILMAN',1,'0','yesno',0,'Utilisation de Mailman','2012-07-08 11:17:59'),(46,'ADHERENT_MAILMAN_UNSUB_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%','chaine',0,'Url de desinscription aux listes mailman','2012-07-08 11:17:59'),(47,'ADHERENT_MAILMAN_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%','chaine',0,'Url pour les inscriptions mailman','2012-07-08 11:17:59'),(48,'ADHERENT_MAILMAN_LISTS',1,'test-test,test-test2','chaine',0,'Listes auxquelles inscrire les nouveaux adherents','2012-07-08 11:17:59'),(49,'ADHERENT_MAILMAN_ADMINPW',1,'','chaine',0,'Mot de passe Admin des liste mailman','2012-07-08 11:17:59'),(50,'ADHERENT_MAILMAN_SERVER',1,'lists.domain.com','chaine',0,'Serveur hebergeant les interfaces d Admin des listes mailman','2012-07-08 11:17:59'),(51,'ADHERENT_MAILMAN_LISTS_COTISANT',1,'','chaine',0,'Liste(s) auxquelles les nouveaux cotisants sont inscris automatiquement','2012-07-08 11:17:59'),(52,'ADHERENT_USE_SPIP',1,'0','yesno',0,'Utilisation de SPIP ?','2012-07-08 11:17:59'),(53,'ADHERENT_USE_SPIP_AUTO',1,'0','yesno',0,'Utilisation de SPIP automatiquement','2012-07-08 11:17:59'),(54,'ADHERENT_SPIP_USER',1,'user','chaine',0,'user spip','2012-07-08 11:17:59'),(55,'ADHERENT_SPIP_PASS',1,'pass','chaine',0,'Pass de connection','2012-07-08 11:17:59'),(56,'ADHERENT_SPIP_SERVEUR',1,'localhost','chaine',0,'serveur spip','2012-07-08 11:17:59'),(57,'ADHERENT_SPIP_DB',1,'spip','chaine',0,'db spip','2012-07-08 11:17:59'),(58,'ADHERENT_CARD_HEADER_TEXT',1,'%ANNEE%','chaine',0,'Texte imprime sur le haut de la carte adherent','2012-07-08 11:17:59'),(59,'ADHERENT_CARD_FOOTER_TEXT',1,'Association AZERTY','chaine',0,'Texte imprime sur le bas de la carte adherent','2012-07-08 11:17:59'),(61,'FCKEDITOR_ENABLE_USER',1,'1','yesno',0,'Activation fckeditor sur notes utilisateurs','2012-07-08 11:17:59'),(62,'FCKEDITOR_ENABLE_SOCIETE',1,'1','yesno',0,'Activation fckeditor sur notes societe','2012-07-08 11:17:59'),(63,'FCKEDITOR_ENABLE_PRODUCTDESC',1,'1','yesno',0,'Activation fckeditor sur notes produits','2012-07-08 11:17:59'),(64,'FCKEDITOR_ENABLE_MEMBER',1,'1','yesno',0,'Activation fckeditor sur notes adherent','2012-07-08 11:17:59'),(65,'FCKEDITOR_ENABLE_MAILING',1,'1','yesno',0,'Activation fckeditor sur emailing','2012-07-08 11:17:59'),(67,'DON_ADDON_MODEL',1,'html_cerfafr','chaine',0,'','2012-07-08 11:18:00'),(68,'PROPALE_ADDON',1,'mod_propale_marbre','chaine',0,'','2012-07-08 11:18:00'),(69,'PROPALE_ADDON_PDF',1,'azur','chaine',0,'','2012-07-08 11:18:00'),(70,'COMMANDE_ADDON',1,'mod_commande_marbre','chaine',0,'','2012-07-08 11:18:00'),(71,'COMMANDE_ADDON_PDF',1,'einstein','chaine',0,'','2012-07-08 11:18:00'),(72,'COMMANDE_SUPPLIER_ADDON',1,'mod_commande_fournisseur_muguet','chaine',0,'','2012-07-08 11:18:00'),(73,'COMMANDE_SUPPLIER_ADDON_PDF',1,'muscadet','chaine',0,'','2012-07-08 11:18:00'),(74,'EXPEDITION_ADDON',1,'enlevement','chaine',0,'','2012-07-08 11:18:00'),(76,'FICHEINTER_ADDON',1,'pacific','chaine',0,'','2012-07-08 11:18:00'),(77,'FICHEINTER_ADDON_PDF',1,'soleil','chaine',0,'','2012-07-08 11:18:00'),(79,'FACTURE_ADDON_PDF',1,'crabe','chaine',0,'','2012-07-08 11:18:00'),(80,'PROPALE_VALIDITY_DURATION',1,'15','chaine',0,'Durée de validitée des propales','2012-07-08 11:18:00'),(230,'COMPANY_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2012-07-08 11:26:20'),(238,'LIVRAISON_ADDON_PDF',1,'typhon','chaine',0,'Nom du gestionnaire de generation des commandes en PDF','2012-07-08 11:26:27'),(239,'DELIVERY_ADDON_NUMBER',1,'mod_delivery_jade','chaine',0,'Nom du gestionnaire de numerotation des bons de livraison','2020-12-10 12:24:40'),(245,'FACTURE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2012-07-08 11:28:53'),(249,'DON_FORM',1,'html_cerfafr','chaine',0,'Nom du gestionnaire de formulaire de dons','2017-09-06 16:12:22'),(254,'ADHERENT_BANK_ACCOUNT',1,'','chaine',0,'ID du Compte banquaire utilise','2012-07-08 11:29:05'),(255,'ADHERENT_BANK_CATEGORIE',1,'','chaine',0,'ID de la categorie banquaire des cotisations','2012-07-08 11:29:05'),(256,'ADHERENT_ETIQUETTE_TYPE',1,'L7163','chaine',0,'Type d etiquette (pour impression de planche d etiquette)','2012-07-08 11:29:05'),(269,'PROJECT_ADDON_PDF',1,'baleine','chaine',0,'Nom du gestionnaire de generation des projets en PDF','2012-07-08 11:29:33'),(270,'PROJECT_ADDON',1,'mod_project_simple','chaine',0,'Nom du gestionnaire de numerotation des projets','2012-07-08 11:29:33'),(369,'EXPEDITION_ADDON_PDF',1,'merou','chaine',0,'','2012-07-08 22:58:07'),(377,'FACTURE_ADDON',1,'mod_facture_terre','chaine',0,'','2012-07-08 23:08:12'),(380,'ADHERENT_CARD_TEXT',1,'%TYPE% n° %ID%\r\n%PRENOM% %NOM%\r\n<%EMAIL%>\r\n%ADRESSE%\r\n%CP% %VILLE%\r\n%PAYS%','',0,'Texte imprime sur la carte adherent','2012-07-08 23:14:46'),(381,'ADHERENT_CARD_TEXT_RIGHT',1,'aaa','',0,'','2012-07-08 23:14:55'),(386,'STOCK_CALCULATE_ON_SHIPMENT',1,'1','chaine',0,'','2012-07-08 23:23:21'),(387,'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER',1,'1','chaine',0,'','2012-07-08 23:23:26'),(392,'MAIN_AGENDA_XCAL_EXPORTKEY',1,'dolibarr','chaine',0,'','2012-07-08 23:27:50'),(393,'MAIN_AGENDA_EXPORT_PAST_DELAY',1,'100','chaine',0,'','2012-07-08 23:27:50'),(610,'CASHDESK_ID_THIRDPARTY',1,'7','chaine',0,'','2012-07-11 17:08:18'),(611,'CASHDESK_ID_BANKACCOUNT_CASH',1,'3','chaine',0,'','2012-07-11 17:08:18'),(612,'CASHDESK_ID_BANKACCOUNT_CHEQUE',1,'1','chaine',0,'','2012-07-11 17:08:18'),(613,'CASHDESK_ID_BANKACCOUNT_CB',1,'1','chaine',0,'','2012-07-11 17:08:18'),(614,'CASHDESK_ID_WAREHOUSE',1,'2','chaine',0,'','2012-07-11 17:08:18'),(660,'LDAP_USER_DN',1,'ou=users,dc=my-domain,dc=com','chaine',0,NULL,'2012-07-18 10:25:27'),(661,'LDAP_GROUP_DN',1,'ou=groups,dc=my-domain,dc=com','chaine',0,NULL,'2012-07-18 10:25:27'),(662,'LDAP_FILTER_CONNECTION',1,'&(objectClass=user)(objectCategory=person)','chaine',0,NULL,'2012-07-18 10:25:27'),(663,'LDAP_FIELD_LOGIN',1,'uid','chaine',0,NULL,'2012-07-18 10:25:27'),(664,'LDAP_FIELD_FULLNAME',1,'cn','chaine',0,NULL,'2012-07-18 10:25:27'),(665,'LDAP_FIELD_NAME',1,'sn','chaine',0,NULL,'2012-07-18 10:25:27'),(666,'LDAP_FIELD_FIRSTNAME',1,'givenname','chaine',0,NULL,'2012-07-18 10:25:27'),(667,'LDAP_FIELD_MAIL',1,'mail','chaine',0,NULL,'2012-07-18 10:25:27'),(668,'LDAP_FIELD_PHONE',1,'telephonenumber','chaine',0,NULL,'2012-07-18 10:25:27'),(669,'LDAP_FIELD_FAX',1,'facsimiletelephonenumber','chaine',0,NULL,'2012-07-18 10:25:27'),(670,'LDAP_FIELD_MOBILE',1,'mobile','chaine',0,NULL,'2012-07-18 10:25:27'),(671,'LDAP_SERVER_TYPE',1,'openldap','chaine',0,'','2012-07-18 10:25:46'),(672,'LDAP_SERVER_PROTOCOLVERSION',1,'3','chaine',0,'','2012-07-18 10:25:47'),(673,'LDAP_SERVER_HOST',1,'localhost','chaine',0,'','2012-07-18 10:25:47'),(674,'LDAP_SERVER_PORT',1,'389','chaine',0,'','2012-07-18 10:25:47'),(675,'LDAP_SERVER_USE_TLS',1,'0','chaine',0,'','2012-07-18 10:25:47'),(676,'LDAP_SYNCHRO_ACTIVE',1,'dolibarr2ldap','chaine',0,'','2012-07-18 10:25:47'),(677,'LDAP_CONTACT_ACTIVE',1,'1','chaine',0,'','2012-07-18 10:25:47'),(678,'LDAP_MEMBER_ACTIVE',1,'1','chaine',0,'','2012-07-18 10:25:47'),(974,'MAIN_MODULE_WORKFLOW_TRIGGERS',1,'1','chaine',0,NULL,'2013-07-18 18:02:20'),(975,'WORKFLOW_PROPAL_AUTOCREATE_ORDER',1,'1','chaine',0,'','2013-07-18 18:02:24'),(980,'PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR',1,'1234567','chaine',0,'','2013-07-18 18:05:50'),(983,'FACTURE_RIB_NUMBER',1,'1','chaine',0,'','2013-07-18 18:35:14'),(984,'FACTURE_CHQ_NUMBER',1,'1','chaine',0,'','2013-07-18 18:35:14'),(1016,'GOOGLE_DUPLICATE_INTO_GCAL',1,'1','chaine',0,'','2013-07-18 21:40:20'),(1152,'SOCIETE_CODECLIENT_ADDON',1,'mod_codeclient_monkey','chaine',0,'','2013-07-29 20:50:02'),(1240,'MAIN_LOGEVENTS_USER_LOGIN',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1241,'MAIN_LOGEVENTS_USER_LOGIN_FAILED',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1242,'MAIN_LOGEVENTS_USER_LOGOUT',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1243,'MAIN_LOGEVENTS_USER_CREATE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1244,'MAIN_LOGEVENTS_USER_MODIFY',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1245,'MAIN_LOGEVENTS_USER_NEW_PASSWORD',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1246,'MAIN_LOGEVENTS_USER_ENABLEDISABLE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1247,'MAIN_LOGEVENTS_USER_DELETE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1248,'MAIN_LOGEVENTS_GROUP_CREATE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1249,'MAIN_LOGEVENTS_GROUP_MODIFY',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1250,'MAIN_LOGEVENTS_GROUP_DELETE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1251,'MAIN_BOXES_MAXLINES',1,'5','',0,'','2013-07-29 21:05:42'),(1482,'EXPEDITION_ADDON_NUMBER',1,'mod_expedition_safor','chaine',0,'Nom du gestionnaire de numerotation des expeditions','2013-08-05 17:53:11'),(1490,'CONTRACT_ADDON',1,'mod_contract_serpis','chaine',0,'Nom du gestionnaire de numerotation des contrats','2013-08-05 18:11:58'),(1677,'COMMANDE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/orders','chaine',0,NULL,'2014-12-08 13:11:02'),(1724,'PROPALE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2014-12-08 13:17:14'),(1730,'OPENSTREETMAP_ENABLE_MAPS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1731,'OPENSTREETMAP_ENABLE_MAPS_CONTACTS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1732,'OPENSTREETMAP_ENABLE_MAPS_MEMBERS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1733,'OPENSTREETMAP_MAPS_ZOOM_LEVEL',1,'15','chaine',0,'','2014-12-08 13:22:47'),(1742,'MAIN_MAIL_EMAIL_FROM',2,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2014-12-08 14:08:14'),(1743,'MAIN_MENU_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2015-02-11 19:43:54'),(1744,'MAIN_MENUFRONT_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2015-02-11 19:43:54'),(1745,'MAIN_MENU_SMARTPHONE',2,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2014-12-08 14:08:14'),(1746,'MAIN_MENUFRONT_SMARTPHONE',2,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2014-12-08 14:08:14'),(1747,'MAIN_THEME',2,'eldy','chaine',0,'Default theme','2014-12-08 14:08:14'),(1748,'MAIN_DELAY_ACTIONS_TODO',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2014-12-08 14:08:14'),(1749,'MAIN_DELAY_ORDERS_TO_PROCESS',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2014-12-08 14:08:14'),(1750,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2014-12-08 14:08:14'),(1751,'MAIN_DELAY_PROPALS_TO_CLOSE',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2014-12-08 14:08:14'),(1752,'MAIN_DELAY_PROPALS_TO_BILL',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2014-12-08 14:08:14'),(1753,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2014-12-08 14:08:14'),(1754,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2014-12-08 14:08:14'),(1755,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2014-12-08 14:08:14'),(1756,'MAIN_DELAY_RUNNING_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2014-12-08 14:08:14'),(1757,'MAIN_DELAY_MEMBERS',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2014-12-08 14:08:14'),(1758,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',2,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2014-12-08 14:08:14'),(1759,'MAILING_EMAIL_FROM',2,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2014-12-08 14:08:14'),(1760,'MAIN_INFO_SOCIETE_COUNTRY',3,'1:FR:France','chaine',0,'','2015-02-26 21:56:28'),(1761,'MAIN_INFO_SOCIETE_NOM',3,'bbb','chaine',0,'','2014-12-08 14:08:20'),(1762,'MAIN_INFO_SOCIETE_STATE',3,'0','chaine',0,'','2015-02-27 14:20:27'),(1763,'MAIN_MONNAIE',3,'EUR','chaine',0,'','2014-12-08 14:08:20'),(1764,'MAIN_LANG_DEFAULT',3,'auto','chaine',0,'','2014-12-08 14:08:20'),(1765,'MAIN_MAIL_EMAIL_FROM',3,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2014-12-08 14:08:20'),(1766,'MAIN_MENU_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2015-02-11 19:43:54'),(1767,'MAIN_MENUFRONT_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2015-02-11 19:43:54'),(1768,'MAIN_MENU_SMARTPHONE',3,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2014-12-08 14:08:20'),(1769,'MAIN_MENUFRONT_SMARTPHONE',3,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2014-12-08 14:08:20'),(1770,'MAIN_THEME',3,'eldy','chaine',0,'Default theme','2014-12-08 14:08:20'),(1771,'MAIN_DELAY_ACTIONS_TODO',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2014-12-08 14:08:20'),(1772,'MAIN_DELAY_ORDERS_TO_PROCESS',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2014-12-08 14:08:20'),(1773,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2014-12-08 14:08:20'),(1774,'MAIN_DELAY_PROPALS_TO_CLOSE',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2014-12-08 14:08:20'),(1775,'MAIN_DELAY_PROPALS_TO_BILL',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2014-12-08 14:08:20'),(1776,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2014-12-08 14:08:20'),(1777,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2014-12-08 14:08:20'),(1778,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2014-12-08 14:08:20'),(1779,'MAIN_DELAY_RUNNING_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2014-12-08 14:08:20'),(1780,'MAIN_DELAY_MEMBERS',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2014-12-08 14:08:20'),(1781,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',3,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2014-12-08 14:08:20'),(1782,'MAILING_EMAIL_FROM',3,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2014-12-08 14:08:20'),(1803,'SYSLOG_FILE',1,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2014-12-08 14:15:08'),(1804,'SYSLOG_HANDLERS',1,'[\"mod_syslog_file\"]','chaine',0,'','2014-12-08 14:15:08'),(1805,'MAIN_MODULE_SKINCOLOREDITOR',3,'1',NULL,0,NULL,'2014-12-08 14:35:40'),(1922,'PAYPAL_API_SANDBOX',1,'1','chaine',0,'','2014-12-12 12:11:05'),(1923,'PAYPAL_API_USER',1,'seller_1355312017_biz_api1.mydomain.com','chaine',0,'','2014-12-12 12:11:05'),(1924,'PAYPAL_API_PASSWORD',1,'1355312040','chaine',0,'','2014-12-12 12:11:05'),(1925,'PAYPAL_API_SIGNATURE',1,'ABCDEFWBzvfn0q5iNmbuiDv1y.3EAXIMWyl4C5KvDReR9HDwwAd6dQ4Q','chaine',0,'','2014-12-12 12:11:05'),(1926,'PAYPAL_API_INTEGRAL_OR_PAYPALONLY',1,'integral','chaine',0,'','2014-12-12 12:11:05'),(1927,'PAYPAL_SECURITY_TOKEN',1,'50c82fab36bb3b6aa83e2a50691803b2','chaine',0,'','2014-12-12 12:11:05'),(1928,'PAYPAL_SECURITY_TOKEN_UNIQUE',1,'0','chaine',0,'','2014-12-12 12:11:05'),(1929,'PAYPAL_ADD_PAYMENT_URL',1,'1','chaine',0,'','2014-12-12 12:11:05'),(1980,'MAIN_PDF_FORMAT',1,'EUA4','chaine',0,'','2014-12-12 19:58:05'),(1981,'MAIN_PROFID1_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1982,'MAIN_PROFID2_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1983,'MAIN_PROFID3_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1984,'MAIN_PROFID4_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1985,'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT',1,'0','chaine',0,'','2014-12-12 19:58:05'),(2835,'MAIN_USE_CONNECT_TIMEOUT',1,'10','chaine',0,'','2015-01-16 19:28:50'),(2836,'MAIN_USE_RESPONSE_TIMEOUT',1,'30','chaine',0,'','2015-01-16 19:28:50'),(2837,'MAIN_PROXY_USE',1,'0','chaine',0,'','2015-01-16 19:28:50'),(2838,'MAIN_PROXY_HOST',1,'localhost','chaine',0,'','2015-01-16 19:28:50'),(2839,'MAIN_PROXY_PORT',1,'8080','chaine',0,'','2015-01-16 19:28:50'),(2840,'MAIN_PROXY_USER',1,'aaa','chaine',0,'','2015-01-16 19:28:50'),(2841,'MAIN_PROXY_PASS',1,'bbb','chaine',0,'','2015-01-16 19:28:50'),(2848,'OVHSMS_NICK',1,'BN196-OVH','chaine',0,'','2015-01-16 19:32:36'),(2849,'OVHSMS_PASS',1,'bigone-10','chaine',0,'','2015-01-16 19:32:36'),(2850,'OVHSMS_SOAPURL',1,'https://www.ovh.com/soapi/soapi-re-1.55.wsdl','chaine',0,'','2015-01-16 19:32:36'),(2854,'THEME_ELDY_RGB',1,'bfbf00','chaine',0,'','2015-01-18 10:02:53'),(2855,'THEME_ELDY_ENABLE_PERSONALIZED',1,'0','chaine',0,'','2015-01-18 10:02:55'),(2858,'MAIN_SESSION_TIMEOUT',1,'2000','chaine',0,'','2015-01-19 17:01:53'),(2867,'FACSIM_ADDON',1,'mod_facsim_alcoy','chaine',0,'','2015-01-19 17:16:25'),(2868,'POS_SERVICES',1,'0','chaine',0,'','2015-01-19 17:16:51'),(2869,'POS_USE_TICKETS',1,'1','chaine',0,'','2015-01-19 17:16:51'),(2870,'POS_MAX_TTC',1,'100','chaine',0,'','2015-01-19 17:16:51'),(3190,'MAIN_MODULE_HOLIDAY',2,'1',NULL,0,NULL,'2015-02-01 08:52:34'),(3195,'INVOICE_SUPPLIER_ADDON_PDF',1,'canelle','chaine',0,'','2015-02-10 19:50:27'),(3199,'MAIN_FORCE_RELOAD_PAGE',1,'1','chaine',0,NULL,'2015-02-12 16:22:55'),(3223,'OVH_THIRDPARTY_IMPORT',1,'2','chaine',0,'','2015-02-13 16:20:18'),(3409,'AGENDA_USE_EVENT_TYPE',1,'1','chaine',0,'','2015-02-27 18:12:24'),(3886,'MAIN_REMOVE_INSTALL_WARNING',1,'1','chaine',1,'','2015-03-02 18:32:50'),(4013,'MAIN_DELAY_ACTIONS_TODO',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4014,'MAIN_DELAY_PROPALS_TO_CLOSE',1,'31','chaine',0,'','2015-03-06 08:59:12'),(4015,'MAIN_DELAY_PROPALS_TO_BILL',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4016,'MAIN_DELAY_ORDERS_TO_PROCESS',1,'2','chaine',0,'','2015-03-06 08:59:12'),(4017,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',1,'31','chaine',0,'','2015-03-06 08:59:12'),(4018,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4019,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',1,'2','chaine',0,'','2015-03-06 08:59:12'),(4020,'MAIN_DELAY_RUNNING_SERVICES',1,'-15','chaine',0,'','2015-03-06 08:59:12'),(4021,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',1,'62','chaine',0,'','2015-03-06 08:59:13'),(4022,'MAIN_DELAY_MEMBERS',1,'31','chaine',0,'','2015-03-06 08:59:13'),(4023,'MAIN_DISABLE_METEO',1,'0','chaine',0,'','2015-03-06 08:59:13'),(4044,'ADHERENT_VAT_FOR_SUBSCRIPTIONS',1,'0','',0,'','2015-03-06 16:06:38'),(4047,'ADHERENT_BANK_USE',1,'bankviainvoice','',0,'','2015-03-06 16:12:30'),(4049,'PHPSANE_SCANIMAGE',1,'/usr/bin/scanimage','chaine',0,'','2015-03-06 21:54:13'),(4050,'PHPSANE_PNMTOJPEG',1,'/usr/bin/pnmtojpeg','chaine',0,'','2015-03-06 21:54:13'),(4051,'PHPSANE_PNMTOTIFF',1,'/usr/bin/pnmtotiff','chaine',0,'','2015-03-06 21:54:13'),(4052,'PHPSANE_OCR',1,'/usr/bin/gocr','chaine',0,'','2015-03-06 21:54:13'),(4548,'ECM_AUTO_TREE_ENABLED',1,'1','chaine',0,'','2015-03-10 15:57:21'),(4579,'MAIN_MODULE_AGENDA',2,'1',NULL,0,NULL,'2015-03-13 15:29:19'),(4580,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4581,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4582,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4583,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4584,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4585,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4586,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4587,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4588,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4589,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4590,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4591,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4592,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4593,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4594,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4688,'GOOGLE_ENABLE_AGENDA',2,'1','chaine',0,'','2015-03-13 15:36:29'),(4689,'GOOGLE_AGENDA_NAME1',2,'eldy','chaine',0,'','2015-03-13 15:36:29'),(4690,'GOOGLE_AGENDA_SRC1',2,'eldy10@mail.com','chaine',0,'','2015-03-13 15:36:29'),(4691,'GOOGLE_AGENDA_COLOR1',2,'BE6D00','chaine',0,'','2015-03-13 15:36:29'),(4692,'GOOGLE_AGENDA_COLOR2',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4693,'GOOGLE_AGENDA_COLOR3',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4694,'GOOGLE_AGENDA_COLOR4',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4695,'GOOGLE_AGENDA_COLOR5',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4696,'GOOGLE_AGENDA_TIMEZONE',2,'Europe/Paris','chaine',0,'','2015-03-13 15:36:29'),(4697,'GOOGLE_AGENDA_NB',2,'5','chaine',0,'','2015-03-13 15:36:29'),(4725,'SOCIETE_CODECLIENT_ADDON',2,'mod_codeclient_leopard','chaine',0,'Module to control third parties codes','2015-03-13 20:21:35'),(4726,'SOCIETE_CODECOMPTA_ADDON',2,'mod_codecompta_panicum','chaine',0,'Module to control third parties codes','2015-03-13 20:21:35'),(4727,'SOCIETE_FISCAL_MONTH_START',2,'','chaine',0,'Mettre le numero du mois du debut d\\\'annee fiscale, ex: 9 pour septembre','2015-03-13 20:21:35'),(4728,'MAIN_SEARCHFORM_SOCIETE',2,'1','yesno',0,'Show form for quick company search','2015-03-13 20:21:35'),(4729,'MAIN_SEARCHFORM_CONTACT',2,'1','yesno',0,'Show form for quick contact search','2015-03-13 20:21:35'),(4730,'COMPANY_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2015-03-13 20:21:35'),(4743,'MAIN_MODULE_CLICKTODIAL',2,'1',NULL,0,NULL,'2015-03-13 20:30:28'),(4744,'MAIN_MODULE_NOTIFICATION',2,'1',NULL,0,NULL,'2015-03-13 20:30:34'),(4745,'MAIN_MODULE_WEBSERVICES',2,'1',NULL,0,NULL,'2015-03-13 20:30:41'),(4746,'MAIN_MODULE_PROPALE',2,'1',NULL,0,NULL,'2015-03-13 20:32:38'),(4747,'PROPALE_ADDON_PDF',2,'azur','chaine',0,'Nom du gestionnaire de generation des propales en PDF','2015-03-13 20:32:38'),(4748,'PROPALE_ADDON',2,'mod_propale_marbre','chaine',0,'Nom du gestionnaire de numerotation des propales','2015-03-13 20:32:38'),(4749,'PROPALE_VALIDITY_DURATION',2,'15','chaine',0,'Duration of validity of business proposals','2015-03-13 20:32:38'),(4750,'PROPALE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2015-03-13 20:32:38'),(4752,'MAIN_MODULE_TAX',2,'1',NULL,0,NULL,'2015-03-13 20:32:47'),(4753,'MAIN_MODULE_DON',2,'1',NULL,0,NULL,'2015-03-13 20:32:54'),(4754,'DON_ADDON_MODEL',2,'html_cerfafr','chaine',0,'Nom du gestionnaire de generation de recu de dons','2015-03-13 20:32:54'),(4755,'POS_USE_TICKETS',2,'1','chaine',0,'','2015-03-13 20:33:09'),(4756,'POS_MAX_TTC',2,'100','chaine',0,'','2015-03-13 20:33:09'),(4757,'MAIN_MODULE_POS',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4758,'TICKET_ADDON',2,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2015-03-13 20:33:09'),(4759,'MAIN_MODULE_BANQUE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4760,'MAIN_MODULE_FACTURE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4761,'FACTURE_ADDON_PDF',2,'crabe','chaine',0,'Name of PDF model of invoice','2015-03-13 20:33:09'),(4762,'FACTURE_ADDON',2,'mod_facture_terre','chaine',0,'Name of numbering numerotation rules of invoice','2015-03-13 20:33:09'),(4763,'FACTURE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2015-03-13 20:33:09'),(4764,'MAIN_MODULE_SOCIETE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4765,'MAIN_MODULE_PRODUCT',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4766,'PRODUCT_CODEPRODUCT_ADDON',2,'mod_codeproduct_leopard','chaine',0,'Module to control product codes','2015-03-13 20:33:09'),(4767,'MAIN_SEARCHFORM_PRODUITSERVICE',2,'1','yesno',0,'Show form for quick product search','2015-03-13 20:33:09'),(4772,'FACSIM_ADDON',2,'mod_facsim_alcoy','chaine',0,'','2015-03-13 20:33:32'),(4773,'MAIN_MODULE_MAILING',2,'1',NULL,0,NULL,'2015-03-13 20:33:37'),(4774,'MAIN_MODULE_OPENSURVEY',2,'1',NULL,0,NULL,'2015-03-13 20:33:42'),(4782,'AGENDA_USE_EVENT_TYPE',2,'1','chaine',0,'','2015-03-13 20:53:36'),(4884,'AGENDA_DISABLE_EXT',2,'1','chaine',0,'','2015-03-13 22:03:40'),(4928,'COMMANDE_SUPPLIER_ADDON_NUMBER',1,'mod_commande_fournisseur_muguet','chaine',0,'Nom du gestionnaire de numerotation des commandes fournisseur','2015-03-22 09:24:29'),(4929,'INVOICE_SUPPLIER_ADDON_NUMBER',1,'mod_facture_fournisseur_cactus','chaine',0,'Nom du gestionnaire de numerotation des factures fournisseur','2015-03-22 09:24:29'),(5001,'MAIN_CRON_KEY',0,'bc54582fe30d5d4a830c6f582ec28810','chaine',0,'','2015-03-23 17:54:53'),(5009,'CRON_KEY',0,'2c2e755c20be2014098f629865598006','chaine',0,'','2015-03-23 18:06:24'),(5139,'SOCIETE_ADD_REF_IN_LIST',1,'','yesno',0,'Display customer ref into select list','2015-09-08 23:06:08'),(5150,'PROJECT_TASK_ADDON_PDF',1,'','chaine',0,'Name of PDF/ODT tasks manager class','2015-09-08 23:06:14'),(5151,'PROJECT_TASK_ADDON',1,'mod_task_simple','chaine',0,'Name of Numbering Rule task manager class','2015-09-08 23:06:14'),(5152,'PROJECT_TASK_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/tasks','chaine',0,'','2015-09-08 23:06:14'),(5239,'BOOKMARKS_SHOW_IN_MENU',1,'10','chaine',0,'','2016-03-02 15:42:26'),(5271,'DONATION_ART200',1,'','yesno',0,'Option Française - Eligibilité Art200 du CGI','2016-12-21 12:51:28'),(5272,'DONATION_ART238',1,'','yesno',0,'Option Française - Eligibilité Art238 bis du CGI','2016-12-21 12:51:28'),(5274,'DONATION_MESSAGE',1,'Thank you','chaine',0,'Message affiché sur le récépissé de versements ou dons','2016-12-21 12:51:28'),(5349,'MAIN_SEARCHFORM_CONTACT',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5351,'MAIN_SEARCHFORM_PRODUITSERVICE',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5352,'MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER',1,'0','chaine',0,'','2017-10-03 10:11:33'),(5353,'MAIN_SEARCHFORM_ADHERENT',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5354,'MAIN_SEARCHFORM_PROJECT',1,'0','chaine',0,'','2017-10-03 10:11:33'),(5394,'FCKEDITOR_ENABLE_DETAILS',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2017-11-04 15:27:44'),(5395,'FCKEDITOR_ENABLE_USERSIGN',1,'1','yesno',0,'WYSIWIG for user signature','2017-11-04 15:27:44'),(5396,'FCKEDITOR_ENABLE_MAIL',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2017-11-04 15:27:44'),(5398,'CATEGORIE_RECURSIV_ADD',1,'','yesno',0,'Affect parent categories','2017-11-04 15:27:46'),(5404,'MAIN_MODULE_CATEGORIE',1,'1',NULL,0,NULL,'2017-11-04 15:41:43'),(5415,'EXPEDITION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/shipment','chaine',0,NULL,'2017-11-15 22:38:28'),(5416,'LIVRAISON_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/delivery','chaine',0,NULL,'2017-11-15 22:38:28'),(5426,'MAIN_MODULE_PROJET',1,'1',NULL,0,NULL,'2017-11-15 22:38:44'),(5427,'PROJECT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/projects','chaine',0,NULL,'2017-11-15 22:38:44'),(5428,'PROJECT_USE_OPPORTUNIES',1,'1','chaine',0,NULL,'2017-11-15 22:38:44'),(5430,'MAIN_MODULE_EXPORT',1,'1',NULL,0,NULL,'2017-11-15 22:38:56'),(5431,'MAIN_MODULE_IMPORT',1,'1',NULL,0,NULL,'2017-11-15 22:38:58'),(5432,'MAIN_MODULE_MAILING',1,'1',NULL,0,NULL,'2017-11-15 22:39:00'),(5434,'EXPENSEREPORT_ADDON_PDF',1,'standard','chaine',0,'Name of manager to build PDF expense reports documents','2017-11-15 22:39:05'),(5437,'SALARIES_ACCOUNTING_ACCOUNT_CHARGE',1,'641','chaine',0,NULL,'2017-11-15 22:39:08'),(5441,'ADHERENT_ETIQUETTE_TEXT',1,'%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%','text',0,'Text to print on member address sheets','2018-11-23 11:56:07'),(5443,'MAIN_MODULE_PRELEVEMENT',1,'1',NULL,0,NULL,'2017-11-15 22:39:33'),(5453,'MAIN_MODULE_CONTRAT',1,'1',NULL,0,NULL,'2017-11-15 22:39:52'),(5455,'MAIN_MODULE_FICHEINTER',1,'1',NULL,0,NULL,'2017-11-15 22:39:56'),(5459,'MAIN_MODULE_PAYPAL',1,'1',NULL,0,NULL,'2017-11-15 22:41:02'),(5463,'MAIN_MODULE_PROPALE',1,'1',NULL,0,NULL,'2017-11-15 22:41:47'),(5483,'GENBARCODE_BARCODETYPE_THIRDPARTY',1,'6','chaine',0,'','2018-01-16 15:49:43'),(5484,'PRODUIT_DEFAULT_BARCODE_TYPE',1,'2','chaine',0,'','2018-01-16 15:49:46'),(5586,'MAIN_DELAY_EXPENSEREPORTS_TO_PAY',1,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur les notes de frais impayées','2018-01-22 17:28:18'),(5587,'MAIN_FIX_FOR_BUGGED_MTA',1,'1','chaine',1,'Set constant to fix email ending from PHP with some linux ike system','2018-01-22 17:28:18'),(5590,'MAIN_VERSION_LAST_INSTALL',0,'3.8.3','chaine',0,'Dolibarr version when install','2018-01-22 17:28:42'),(5604,'MAIN_INFO_SOCIETE_LOGO',1,'mybigcompany.png','chaine',0,'','2018-01-22 17:33:49'),(5605,'MAIN_INFO_SOCIETE_LOGO_SMALL',1,'mybigcompany_small.png','chaine',0,'','2018-01-22 17:33:49'),(5606,'MAIN_INFO_SOCIETE_LOGO_MINI',1,'mybigcompany_mini.png','chaine',0,'','2018-01-22 17:33:49'),(5614,'MAIN_SIZE_SHORTLISTE_LIMIT',1,'4','chaine',0,'Longueur maximum des listes courtes (fiche client)','2018-03-13 10:54:46'),(5627,'SUPPLIER_PROPOSAL_ADDON_PDF',1,'aurore','chaine',0,'Name of submodule to generate PDF for supplier quotation request','2018-07-30 11:13:20'),(5628,'SUPPLIER_PROPOSAL_ADDON',1,'mod_supplier_proposal_marbre','chaine',0,'Name of submodule to number supplier quotation request','2018-07-30 11:13:20'),(5629,'SUPPLIER_PROPOSAL_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/supplier_proposal','chaine',0,NULL,'2018-07-30 11:13:20'),(5633,'MAIN_MODULE_API',1,'1',NULL,0,NULL,'2018-07-30 11:13:54'),(5634,'MAIN_MODULE_WEBSERVICES',1,'1',NULL,0,NULL,'2018-07-30 11:13:56'),(5635,'WEBSERVICES_KEY',1,'dolibarrkey','chaine',0,'','2018-07-30 11:14:04'),(5638,'MAIN_MODULE_EXTERNALRSS',1,'1',NULL,0,NULL,'2018-07-30 11:15:04'),(5642,'SOCIETE_CODECOMPTA_ADDON',1,'mod_codecompta_aquarium','chaine',0,'','2018-07-30 11:16:42'),(5707,'CASHDESK_NO_DECREASE_STOCK',1,'1','chaine',0,'','2018-07-30 13:38:11'),(5708,'MAIN_MODULE_PRODUCTBATCH',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5710,'MAIN_MODULE_STOCK',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5711,'MAIN_MODULE_PRODUCT',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5808,'MARGIN_TYPE',1,'costprice','chaine',0,'','2018-07-30 16:32:18'),(5809,'DISPLAY_MARGIN_RATES',1,'1','chaine',0,'','2018-07-30 16:32:20'),(5833,'ACCOUNTING_EXPORT_SEPARATORCSV',1,',','string',0,NULL,'2017-01-29 15:11:56'),(5840,'CHARTOFACCOUNTS',1,'2','chaine',0,NULL,'2017-01-29 15:11:56'),(5841,'ACCOUNTING_EXPORT_MODELCSV',1,'1','chaine',0,NULL,'2017-01-29 15:11:56'),(5842,'ACCOUNTING_LENGTH_GACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5843,'ACCOUNTING_LENGTH_AACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5844,'ACCOUNTING_LIST_SORT_VENTILATION_TODO',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5845,'ACCOUNTING_LIST_SORT_VENTILATION_DONE',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5846,'ACCOUNTING_EXPORT_DATE',1,'%d%m%Y','chaine',0,NULL,'2017-01-29 15:11:56'),(5848,'ACCOUNTING_EXPORT_FORMAT',1,'csv','chaine',0,NULL,'2017-01-29 15:11:56'),(5853,'MAIN_MODULE_WORKFLOW',1,'1',NULL,0,NULL,'2017-01-29 15:12:12'),(5854,'MAIN_MODULE_NOTIFICATION',1,'1',NULL,0,NULL,'2017-01-29 15:12:35'),(5855,'MAIN_MODULE_OAUTH',1,'1',NULL,0,NULL,'2017-01-29 15:12:41'),(5883,'MAILING_LIMIT_SENDBYWEB',0,'15','chaine',1,'Number of targets to defined packet size when sending mass email','2017-01-29 17:36:33'),(5884,'MAIN_MAIL_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5885,'MAIN_SOAP_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5925,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5931,'DATABASE_PWD_ENCRYPTED',1,'1','chaine',0,'','2017-02-01 15:06:04'),(5932,'MAIN_DISABLE_ALL_MAILS',1,'0','chaine',0,'','2017-02-01 15:09:09'),(5933,'MAIN_MAIL_SENDMODE',1,'mail','chaine',0,'','2017-02-01 15:09:09'),(5934,'MAIN_MAIL_SMTP_PORT',1,'465','chaine',0,'','2017-02-01 15:09:09'),(5935,'MAIN_MAIL_SMTP_SERVER',1,'smtp.mail.com','chaine',0,'','2017-02-01 15:09:09'),(5936,'MAIN_MAIL_SMTPS_ID',1,'eldy10@mail.com','chaine',0,'','2017-02-01 15:09:09'),(5937,'MAIN_MAIL_SMTPS_PW',1,'bidonge','chaine',0,'','2017-02-01 15:09:09'),(5938,'MAIN_MAIL_EMAIL_FROM',1,'robot@example.com','chaine',0,'','2017-02-01 15:09:09'),(5939,'MAIN_MAIL_DEFAULT_FROMTYPE',1,'user','chaine',0,'','2017-02-01 15:09:09'),(5940,'PRELEVEMENT_ID_BANKACCOUNT',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5941,'PRELEVEMENT_ICS',1,'ICS123456','chaine',0,'','2017-02-06 04:04:47'),(5942,'PRELEVEMENT_USER',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5943,'BANKADDON_PDF',1,'sepamandate','chaine',0,'','2017-02-06 04:13:52'),(5947,'CHEQUERECEIPTS_THYME_MASK',1,'CHK{yy}{mm}-{0000@1}','chaine',0,'','2017-02-06 04:16:27'),(5948,'MAIN_MODULE_LOAN',1,'1',NULL,0,NULL,'2017-02-06 19:19:05'),(5954,'MAIN_SUBMODULE_EXPEDITION',1,'1','chaine',0,'','2017-02-06 23:57:37'),(5964,'MAIN_MODULE_TAX',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(6019,'MAIN_INFO_SOCIETE_COUNTRY',2,'1:FR:France','chaine',0,'','2017-02-15 17:18:22'),(6020,'MAIN_INFO_SOCIETE_NOM',2,'MySecondCompany','chaine',0,'','2017-02-15 17:18:22'),(6021,'MAIN_INFO_SOCIETE_STATE',2,'0','chaine',0,'','2017-02-15 17:18:22'),(6022,'MAIN_MONNAIE',2,'EUR','chaine',0,'','2017-02-15 17:18:22'),(6023,'MAIN_LANG_DEFAULT',2,'auto','chaine',0,'','2017-02-15 17:18:22'),(6032,'MAIN_MODULE_MULTICURRENCY',1,'1',NULL,0,NULL,'2017-02-15 17:29:59'),(6048,'SYSLOG_FACILITY',0,'LOG_USER','chaine',0,'','2017-02-15 22:37:01'),(6049,'SYSLOG_FIREPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/firephp/firephp-core/lib/','chaine',0,'','2017-02-15 22:37:01'),(6050,'SYSLOG_FILE',0,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2017-02-15 22:37:01'),(6051,'SYSLOG_CHROMEPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/ccampbell/chromephp/','chaine',0,'','2017-02-15 22:37:01'),(6052,'SYSLOG_HANDLERS',0,'[\"mod_syslog_file\"]','chaine',0,'','2017-02-15 22:37:01'),(6092,'MAIN_SIZE_SHORTLIST_LIMIT',0,'3','chaine',0,'Max length for small lists (tabs)','2017-05-12 09:02:38'),(6099,'MAIN_MODULE_SKYPE',1,'1',NULL,0,NULL,'2017-05-12 09:03:51'),(6100,'MAIN_MODULE_GRAVATAR',1,'1',NULL,0,NULL,'2017-05-12 09:03:54'),(6102,'PRODUCT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/products','chaine',0,'','2017-08-27 13:29:07'),(6103,'CONTRACT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/contracts','chaine',0,'','2017-08-27 13:29:07'),(6104,'USERGROUP_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/usergroups','chaine',0,'','2017-08-27 13:29:07'),(6105,'USER_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/users','chaine',0,'','2017-08-27 13:29:07'),(6106,'MAIN_ENABLE_OVERWRITE_TRANSLATION',1,'1','chaine',0,'Enable overwrote of translation','2017-08-27 13:29:07'),(6377,'COMMANDE_SAPHIR_MASK',1,'{yy}{mm}{000}{ttt}','chaine',0,'','2017-09-06 07:56:25'),(6518,'GOOGLE_DUPLICATE_INTO_THIRDPARTIES',1,'1','chaine',0,'','2017-09-06 19:43:57'),(6519,'GOOGLE_DUPLICATE_INTO_CONTACTS',1,'0','chaine',0,'','2017-09-06 19:43:57'),(6520,'GOOGLE_TAG_PREFIX',1,'Dolibarr (Thirdparties)','chaine',0,'','2017-09-06 19:43:57'),(6521,'GOOGLE_TAG_PREFIX_CONTACTS',1,'Dolibarr (Contacts/Addresses)','chaine',0,'','2017-09-06 19:43:57'),(6522,'GOOGLE_ENABLE_AGENDA',1,'1','chaine',0,'','2017-09-06 19:44:12'),(6523,'GOOGLE_AGENDA_COLOR1',1,'1B887A','chaine',0,'','2017-09-06 19:44:12'),(6524,'GOOGLE_AGENDA_COLOR2',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6525,'GOOGLE_AGENDA_COLOR3',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6526,'GOOGLE_AGENDA_COLOR4',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6527,'GOOGLE_AGENDA_COLOR5',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6528,'GOOGLE_AGENDA_TIMEZONE',1,'Europe/Paris','chaine',0,'','2017-09-06 19:44:12'),(6529,'GOOGLE_AGENDA_NB',1,'5','chaine',0,'','2017-09-06 19:44:12'),(6543,'MAIN_SMS_DEBUG',0,'1','chaine',1,'This is to enable OVH SMS debug','2017-09-06 19:44:34'),(6562,'BLOCKEDLOG_ENTITY_FINGERPRINT',1,'b63e359ffca54d5c2bab869916eaf23d4a736703028ccbf77ce1167c5f830e7b','chaine',0,'Numeric Unique Fingerprint','2018-01-19 11:27:15'),(6564,'BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY',1,'FR','chaine',0,'This is list of country code where the module may be mandatory','2018-01-19 11:27:15'),(6565,'MAIN_MODULE_BOOKMARK',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:34'),(6566,'MAIN_MODULE_ADHERENT',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:56'),(6567,'ADHERENT_ADDON_PDF',1,'standard','chaine',0,'Name of PDF model of member','2018-01-19 11:27:56'),(6636,'MAIN_MODULE_TICKET_MODELS',1,'1','chaine',0,NULL,'2019-06-05 09:15:29'),(6647,'MAIN_MODULE_SOCIALNETWORKS',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-06-05 09:16:49'),(6795,'TICKET_ADDON',1,'mod_ticket_simple','chaine',0,'','2019-09-26 12:07:59'),(6796,'PRODUCT_CODEPRODUCT_ADDON',1,'mod_codeproduct_elephant','chaine',0,'','2019-09-26 12:59:00'),(6800,'CASHDESK_ID_THIRDPARTY1',1,'7','chaine',0,'','2019-09-26 15:30:09'),(6801,'CASHDESK_ID_BANKACCOUNT_CASH1',1,'3','chaine',0,'','2019-09-26 15:30:09'),(6802,'CASHDESK_ID_BANKACCOUNT_CHEQUE1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6803,'CASHDESK_ID_BANKACCOUNT_CB1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6804,'CASHDESK_ID_BANKACCOUNT_PRE1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6805,'CASHDESK_ID_BANKACCOUNT_VIR1',1,'1','chaine',0,'','2019-09-26 15:30:09'),(6806,'CASHDESK_NO_DECREASE_STOCK1',1,'1','chaine',0,'','2019-09-26 15:30:09'),(6811,'FORCEPROJECT_ON_PROPOSAL',1,'1','chaine',0,'','2019-09-27 14:52:57'),(6813,'PROJECT_USE_OPPORTUNITIES',1,'1','chaine',0,'','2019-10-01 11:48:09'),(6814,'PACKTHEMEACTIVATEDTHEME',0,'modOwnTheme','chaine',0,'','2019-10-02 11:41:58'),(6815,'OWNTHEME_COL1',0,'#6a89cc','chaine',0,'','2019-10-02 11:41:58'),(6816,'OWNTHEME_COL2',0,'#60a3bc','chaine',0,'','2019-10-02 11:41:58'),(6817,'DOL_VERSION',0,'10.0.2','chaine',0,'Dolibarr version','2019-10-02 11:41:58'),(6823,'OWNTHEME_COL_BODY_BCKGRD',0,'#E9E9E9','chaine',0,'','2019-10-02 11:41:58'),(6824,'OWNTHEME_COL_LOGO_BCKGRD',0,'#474c80','chaine',0,'','2019-10-02 11:41:58'),(6825,'OWNTHEME_COL_TXT_MENU',0,'#b8c6e5','chaine',0,'','2019-10-02 11:41:58'),(6826,'OWNTHEME_COL_HEADER_BCKGRD',0,'#474c80','chaine',0,'','2019-10-02 11:41:58'),(6827,'OWNTHEME_CUSTOM_CSS',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6828,'OWNTHEME_CUSTOM_JS',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6829,'OWNTHEME_FIXED_MENU',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6830,'OWNTHEME_D_HEADER_FONT_SIZE',0,'1.7rem','chaine',0,'','2019-10-02 11:41:58'),(6831,'OWNTHEME_S_HEADER_FONT_SIZE',0,'1.6rem','chaine',0,'','2019-10-02 11:41:58'),(6832,'OWNTHEME_D_VMENU_FONT_SIZE',0,'1.2rem','chaine',0,'','2019-10-02 11:41:58'),(6833,'OWNTHEME_S_VMENU_FONT_SIZE',0,'1.2rem','chaine',0,'','2019-10-02 11:41:58'),(6844,'MAIN_THEME',0,'eldy','chaine',0,'','2019-10-02 11:46:02'),(6845,'MAIN_MENU_STANDARD',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6846,'MAIN_MENUFRONT_STANDARD',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6847,'MAIN_MENU_SMARTPHONE',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6848,'MAIN_MENUFRONT_SMARTPHONE',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6851,'BECREATIVE_COL1',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6852,'BECREATIVE_COL2',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6853,'DOL_VERSION',1,'10.0.2','chaine',0,'Dolibarr version','2019-10-02 11:47:10'),(6859,'BECREATIVE_COL_BODY_BCKGRD',1,'#e6eaef','chaine',0,'','2019-10-02 11:47:10'),(6860,'BECREATIVE_COL_LOGO_BCKGRD',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6861,'BECREATIVE_COL_TXT_MENU',1,'#b8c6e5','chaine',0,'','2019-10-02 11:47:10'),(6862,'BECREATIVE_COL_HEADER_BCKGRD',1,'#26a69a','chaine',0,'','2019-10-02 11:47:10'),(6863,'BECREATIVE_CUSTOM_CSS',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6864,'BECREATIVE_CUSTOM_JS',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6865,'BECREATIVE_FIXED_MENU',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6866,'BECREATIVE_D_HEADER_FONT_SIZE',1,'1.7rem','chaine',0,'','2019-10-02 11:47:10'),(6867,'BECREATIVE_S_HEADER_FONT_SIZE',1,'1.6rem','chaine',0,'','2019-10-02 11:47:10'),(6868,'BECREATIVE_D_VMENU_FONT_SIZE',1,'1.2rem','chaine',0,'','2019-10-02 11:47:10'),(6869,'BECREATIVE_S_VMENU_FONT_SIZE',1,'1.2rem','chaine',0,'','2019-10-02 11:47:10'),(6881,'MAIN_MENU_STANDARD',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6882,'MAIN_MENUFRONT_STANDARD',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6883,'MAIN_MENU_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6884,'MAIN_MENUFRONT_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6885,'ACCOUNTING_ACCOUNT_CUSTOMER',1,'411','chaine',0,'','2019-10-04 08:15:44'),(6886,'ACCOUNTING_ACCOUNT_SUPPLIER',1,'401','chaine',0,'','2019-10-04 08:15:44'),(6887,'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT',1,'421','chaine',0,'','2019-10-04 08:15:44'),(6888,'ACCOUNTING_PRODUCT_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6889,'ACCOUNTING_PRODUCT_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6890,'ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6891,'ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6892,'ACCOUNTING_SERVICE_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6893,'ACCOUNTING_SERVICE_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6894,'ACCOUNTING_VAT_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6895,'ACCOUNTING_VAT_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6896,'ACCOUNTING_VAT_PAY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6897,'ACCOUNTING_ACCOUNT_SUSPENSE',1,'471','chaine',0,'','2019-10-04 08:15:44'),(6898,'ACCOUNTING_ACCOUNT_TRANSFER_CASH',1,'58','chaine',0,'','2019-10-04 08:15:44'),(6899,'DONATION_ACCOUNTINGACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6900,'ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6901,'LOAN_ACCOUNTING_ACCOUNT_CAPITAL',1,'164','chaine',0,'','2019-10-04 08:15:44'),(6902,'LOAN_ACCOUNTING_ACCOUNT_INTEREST',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6903,'LOAN_ACCOUNTING_ACCOUNT_INSURANCE',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6912,'TICKET_ENABLE_PUBLIC_INTERFACE',1,'1','chaine',0,'','2019-10-04 11:44:33'),(6934,'TICKET_NOTIFICATION_EMAIL_FROM',1,'fff','chaine',0,'','2019-10-04 12:03:51'),(6935,'TICKET_NOTIFICATION_EMAIL_TO',1,'ff','chaine',0,'','2019-10-04 12:03:51'),(6936,'TICKET_MESSAGE_MAIL_INTRO',1,'Hello,
\r\nA new response was sent on a ticket that you contact. Here is the message:\"\"','chaine',0,'','2019-10-04 12:03:51'),(6937,'TICKET_MESSAGE_MAIL_SIGNATURE',1,'

Sincerely,

\r\n\r\n

--\"\"

\r\n','chaine',0,'','2019-10-04 12:03:51'),(7027,'USER_PASSWORD_GENERATED',1,'Perso','chaine',0,'','2019-10-07 10:52:46'),(7028,'USER_PASSWORD_PATTERN',1,'12;1;0;1;0;1','chaine',0,'','2019-10-07 10:57:03'),(7034,'BOM_ADDON',1,'mod_bom_standard','chaine',0,'Name of numbering rules of BOM','2019-10-08 18:49:41'),(7035,'BOM_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/boms','chaine',0,NULL,'2019-10-08 18:49:41'),(7036,'MAIN_MODULE_GEOIPMAXMIND',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-10-08 18:51:54'),(7037,'MAIN_MODULE_DAV',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-10-08 18:54:07'),(7122,'BOM_ADDON_PDF',1,'generic_bom_odt','chaine',0,'','2019-11-28 14:00:58'),(7195,'MAIN_AGENDA_ACTIONAUTO_MO_VALIDATE',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7196,'MAIN_AGENDA_ACTIONAUTO_MO_PRODUCED',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7197,'MAIN_AGENDA_ACTIONAUTO_MO_DELETE',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7198,'MAIN_AGENDA_ACTIONAUTO_MO_CANCEL',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7201,'TICKET_PUBLIC_INTERFACE_TOPIC',1,'MyBigCompany public interface for Ticket','chaine',0,'','2019-11-29 08:49:36'),(7202,'TICKET_PUBLIC_TEXT_HOME',1,'You can create a support ticket or view existing from its identifier tracking ticket.','chaine',0,'','2019-11-29 08:49:36'),(7203,'TICKET_PUBLIC_TEXT_HELP_MESSAGE',1,'Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request.','chaine',0,'','2019-11-29 08:49:36'),(7204,'TICKET_MESSAGE_MAIL_NEW',1,'TicketMessageMailNewText','chaine',0,'','2019-11-29 08:49:36'),(7220,'MRP_MO_ADDON',1,'mod_mo_standard','chaine',0,'Name of numbering rules of MO','2019-11-29 08:57:42'),(7221,'MRP_MO_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/mrps','chaine',0,NULL,'2019-11-29 08:57:42'),(7222,'MRP_MO_ADDON_PDF',1,'generic_mo_odt','chaine',0,'','2019-11-29 08:57:47'),(7254,'MAIN_INFO_OPENINGHOURS_MONDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7255,'MAIN_INFO_OPENINGHOURS_TUESDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7256,'MAIN_INFO_OPENINGHOURS_WEDNESDAY',1,'8-13','chaine',0,'','2019-12-19 11:14:21'),(7257,'MAIN_INFO_OPENINGHOURS_THURSDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7258,'MAIN_INFO_OPENINGHOURS_FRIDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7264,'MAIN_INFO_ACCOUNTANT_NAME',1,'Bob Bookkeeper','chaine',0,'','2019-12-19 11:14:54'),(7265,'MAIN_INFO_ACCOUNTANT_TOWN',1,'Berlin','chaine',0,'','2019-12-19 11:14:54'),(7266,'MAIN_INFO_ACCOUNTANT_STATE',1,'0','chaine',0,'','2019-12-19 11:14:54'),(7267,'MAIN_INFO_ACCOUNTANT_COUNTRY',1,'5','chaine',0,'','2019-12-19 11:14:54'),(7268,'MAIN_INFO_ACCOUNTANT_MAIL',1,'mybookkeeper@example.com','chaine',0,'','2019-12-19 11:14:54'),(7313,'MODULEBUILDER_ASCIIDOCTOR',1,'asciidoctor','chaine',0,'','2019-12-20 10:57:21'),(7314,'MODULEBUILDER_ASCIIDOCTORPDF',1,'asciidoctor-pdf','chaine',0,'','2019-12-20 10:57:21'),(7337,'EXTERNAL_RSS_TITLE_1',1,'Dolibarr.org News','chaine',0,'','2019-12-20 12:10:38'),(7338,'EXTERNAL_RSS_URLRSS_1',1,'https://www.dolibarr.org/rss','chaine',0,'','2019-12-20 12:10:38'),(7339,'EXPENSEREPORT_ADDON',1,'mod_expensereport_jade','chaine',0,'','2019-12-20 16:33:46'),(7378,'COMPANY_USE_SEARCH_TO_SELECT',1,'0','chaine',0,'','2019-12-21 15:54:22'),(7420,'CASHDESK_SERVICES',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7421,'TAKEPOS_ROOT_CATEGORY_ID',1,'31','chaine',0,'','2019-12-23 12:15:06'),(7422,'TAKEPOSCONNECTOR',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7423,'TAKEPOS_BAR_RESTAURANT',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7424,'TAKEPOS_TICKET_VAT_GROUPPED',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7425,'TAKEPOS_AUTO_PRINT_TICKETS',1,'0','int',0,'','2019-12-23 12:15:06'),(7426,'TAKEPOS_NUMPAD',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7427,'TAKEPOS_NUM_TERMINALS',1,'1','chaine',0,'','2019-12-23 12:15:06'),(7428,'TAKEPOS_DIRECT_PAYMENT',1,'0','int',0,'','2019-12-23 12:15:06'),(7429,'TAKEPOS_CUSTOM_RECEIPT',1,'0','int',0,'','2019-12-23 12:15:06'),(7430,'TAKEPOS_EMAIL_TEMPLATE_INVOICE',1,'-1','chaine',0,'','2019-12-23 12:15:06'),(7452,'MEMBER_ENABLE_PUBLIC',1,'1','chaine',0,'','2020-01-01 10:31:46'),(7453,'MEMBER_NEWFORM_AMOUNT',1,'20','chaine',0,'','2020-01-01 10:31:46'),(7454,'MEMBER_NEWFORM_EDITAMOUNT',1,'0','chaine',0,'','2020-01-01 10:31:46'),(7455,'MEMBER_NEWFORM_PAYONLINE',1,'all','chaine',0,'','2020-01-01 10:31:46'),(7456,'MEMBER_NEWFORM_FORCETYPE',1,'1','chaine',0,'','2020-01-01 10:31:46'),(7470,'STRIPE_TEST_PUBLISHABLE_KEY',1,'pk_test_123456789','chaine',0,'','2020-01-01 11:43:44'),(7471,'STRIPE_TEST_SECRET_KEY',1,'sk_test_123456','chaine',0,'','2020-01-01 11:43:44'),(7472,'STRIPE_BANK_ACCOUNT_FOR_PAYMENTS',1,'4','chaine',0,'','2020-01-01 11:43:44'),(7473,'STRIPE_USER_ACCOUNT_FOR_ACTIONS',1,'1','chaine',0,'','2020-01-01 11:43:44'),(7489,'CAPTURESERVER_SECURITY_KEY',1,'securitykey123','chaine',0,'','2020-01-01 12:00:49'),(8136,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_DELETE',1,'1','chaine',0,'','2020-01-02 19:56:28'),(8190,'ACCOUNTING_PRODUCT_MODE',1,'ACCOUNTANCY_SELL_EXPORT','chaine',0,'','2020-01-06 01:23:30'),(8191,'MAIN_ENABLE_DEFAULT_VALUES',1,'1','chaine',0,'','2020-01-06 16:09:52'),(8210,'CABINETMED_RHEUMATOLOGY_ON',1,'0','texte',0,'','2020-01-06 16:51:43'),(8213,'MAIN_SEARCHFORM_SOCIETE',1,'1','texte',0,'','2020-01-06 16:51:43'),(8214,'CABINETMED_BANK_PATIENT_REQUIRED',1,'0','texte',0,'','2020-01-06 16:51:43'),(8215,'DIAGNOSTIC_IS_NOT_MANDATORY',1,'1','texte',0,'','2020-01-06 16:51:43'),(8216,'USER_ADDON_PDF_ODT',1,'generic_user_odt','chaine',0,'','2020-01-07 13:45:19'),(8217,'USERGROUP_ADDON_PDF_ODT',1,'generic_usergroup_odt','chaine',0,'','2020-01-07 13:45:23'),(8230,'MAIN_MODULE_EMAILCOLLECTOR',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-12 20:13:55'),(8232,'MAIN_MODULE_SUPPLIERPROPOSAL',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-13 14:37:09'),(8233,'MAIN_MODULE_EXPEDITION',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-13 14:38:20'),(8252,'SYSTEMTOOLS_MYSQLDUMP',1,'/usr/bin/mysqldump','chaine',0,'','2020-01-15 15:42:41'),(8259,'ACCOUNTING_REEXPORT',1,'1','yesno',0,'','2020-01-17 13:42:56'),(8291,'PRODUIT_MULTIPRICES_LIMIT',1,'5','chaine',0,'','2020-01-17 14:21:46'),(8293,'PRODUIT_CUSTOMER_PRICES_BY_QTY',1,'0','chaine',0,'','2020-01-17 14:21:46'),(8303,'PRODUCT_PRICE_UNIQ',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8304,'PRODUIT_MULTIPRICES',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8305,'PRODUIT_CUSTOMER_PRICES',1,'1','chaine',0,'','2020-01-17 14:25:30'),(8306,'PRODUIT_SOUSPRODUITS',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8307,'PRODUIT_DESC_IN_FORM',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8308,'PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8309,'PRODUIT_USE_SEARCH_TO_SELECT',1,'1','chaine',0,'','2020-01-17 14:25:30'),(8310,'PRODUIT_FOURN_TEXTS',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8313,'MAIN_MODULE_FCKEDITOR',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-18 17:13:27'),(8314,'FCKEDITOR_ENABLE_TICKET',1,'1','chaine',0,'','2020-01-18 19:39:54'),(8321,'FCKEDITOR_SKIN',1,'moono-lisa','chaine',0,'','2020-01-18 19:41:15'),(8322,'FCKEDITOR_TEST',1,'Test < aaa
\r\n
\r\n\"\"','chaine',0,'','2020-01-18 19:41:15'),(8486,'MAIN_MULTILANGS',1,'1','chaine',0,'','2020-01-21 09:40:00'),(8491,'MAIN_DISABLE_JAVASCRIPT',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8492,'MAIN_BUTTON_HIDE_UNAUTHORIZED',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8496,'MAIN_SHOW_LOGO',1,'1','chaine',0,'','2020-01-21 09:40:00'),(8498,'MAIN_HELPCENTER_DISABLELINK',0,'0','chaine',0,'','2020-01-21 09:40:00'),(8501,'MAIN_BUGTRACK_ENABLELINK',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8554,'MAIN_INFO_SOCIETE_FACEBOOK_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8555,'MAIN_INFO_SOCIETE_TWITTER_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8556,'MAIN_INFO_SOCIETE_LINKEDIN_URL',1,'https://www.linkedin.com/company/9400559/admin/','chaine',0,'','2020-06-12 17:24:42'),(8557,'MAIN_INFO_SOCIETE_INSTAGRAM_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8558,'MAIN_INFO_SOCIETE_YOUTUBE_URL',1,'DolibarrERPCRM','chaine',0,'','2020-06-12 17:24:42'),(8559,'MAIN_INFO_SOCIETE_GITHUB_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8577,'PRODUCT_PRICE_BASE_TYPE',0,'HT','string',0,NULL,'2020-12-10 12:24:38'),(8612,'MAIN_UPLOAD_DOC',1,'50000','chaine',0,'','2020-12-10 12:26:31'),(8613,'MAIN_UMASK',1,'0664','chaine',0,'','2020-12-10 12:26:31'),(8614,'MAIN_ANTIVIRUS_PARAM',1,'--fdpass','chaine',0,'','2020-12-10 12:26:31'),(8619,'WEBSITE_EDITINLINE',1,'0','chaine',0,'','2020-12-10 12:27:05'),(8633,'MAIN_MODULE_RECEPTION',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:30:13'),(8634,'RECEPTION_ADDON_PDF',1,'squille','chaine',0,'Nom du gestionnaire de generation des bons receptions en PDF','2020-12-10 12:30:13'),(8635,'RECEPTION_ADDON_NUMBER',1,'mod_reception_beryl','chaine',0,'Name for numbering manager for receptions','2020-12-10 12:30:13'),(8636,'RECEPTION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/receptions','chaine',0,NULL,'2020-12-10 12:30:13'),(8637,'MAIN_SUBMODULE_RECEPTION',1,'1','chaine',0,'Enable receptions','2020-12-10 12:30:13'),(8638,'MAIN_MODULE_PAYMENTBYBANKTRANSFER',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:30:17'),(8640,'MAIN_MODULE_MARGIN_TABS_0',1,'product:+margin:Margins:margins:$user->rights->margins->liretous:/margin/tabs/productMargins.php?id=__ID__','chaine',0,NULL,'2020-12-10 12:30:20'),(8641,'MAIN_MODULE_MARGIN_TABS_1',1,'thirdparty:+margin:Margins:margins:empty($user->socid) && $user->rights->margins->liretous && ($object->client > 0):/margin/tabs/thirdpartyMargins.php?socid=__ID__','chaine',0,NULL,'2020-12-10 12:30:20'),(8644,'MAIN_MODULE_INCOTERM',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:31:36'),(8645,'INCOTERM_ACTIVATE',1,'','chaine',0,'Description de INCOTERM_ACTIVATE','2020-12-10 12:31:36'),(8715,'SYSLOG_LEVEL',0,'5','chaine',0,'','2021-04-15 10:34:05'),(8716,'MAIN_SECURITY_HASH_ALGO',1,'password_hash','chaine',1,'','2021-04-15 10:38:33'),(8717,'MAIN_INFO_SOCIETE_COUNTRY',1,'117:IN:India','chaine',0,'','2021-04-15 10:46:30'),(8718,'MAIN_INFO_SOCIETE_NOM',1,'MyBigCompany','chaine',0,'','2021-04-15 10:46:30'),(8719,'MAIN_INFO_SOCIETE_ADDRESS',1,'21 Jump street.','chaine',0,'','2021-04-15 10:46:30'),(8720,'MAIN_INFO_SOCIETE_TOWN',1,'MyTown','chaine',0,'','2021-04-15 10:46:30'),(8721,'MAIN_INFO_SOCIETE_ZIP',1,'75500','chaine',0,'','2021-04-15 10:46:30'),(8722,'MAIN_MONNAIE',1,'EUR','chaine',0,'','2021-04-15 10:46:30'),(8723,'MAIN_INFO_SOCIETE_TEL',1,'09123123','chaine',0,'','2021-04-15 10:46:30'),(8724,'MAIN_INFO_SOCIETE_FAX',1,'09123124','chaine',0,'','2021-04-15 10:46:30'),(8725,'MAIN_INFO_SOCIETE_MAIL',1,'myemail@mybigcompany.com','chaine',0,'','2021-04-15 10:46:30'),(8726,'MAIN_INFO_SOCIETE_WEB',1,'https://www.dolibarr.org','chaine',0,'','2021-04-15 10:46:30'),(8727,'MAIN_INFO_SOCIETE_NOTE',1,'This is note about my company','chaine',0,'','2021-04-15 10:46:30'),(8728,'MAIN_INFO_SOCIETE_LOGO_SQUARRED',1,'mybigcompany_squarred.png','chaine',0,'','2021-04-15 10:46:30'),(8729,'MAIN_INFO_SOCIETE_LOGO_SQUARRED_SMALL',1,'mybigcompany_squarred_small.png','chaine',0,'','2021-04-15 10:46:30'),(8730,'MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI',1,'mybigcompany_squarred_mini.png','chaine',0,'','2021-04-15 10:46:30'),(8731,'MAIN_INFO_SOCIETE_MANAGERS',1,'Zack Zeceo','chaine',0,'','2021-04-15 10:46:30'),(8732,'MAIN_INFO_GDPR',1,'Zack Zeceo','chaine',0,'','2021-04-15 10:46:30'),(8733,'MAIN_INFO_CAPITAL',1,'10000','chaine',0,'','2021-04-15 10:46:30'),(8734,'MAIN_INFO_SOCIETE_FORME_JURIDIQUE',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8735,'MAIN_INFO_SIREN',1,'123456','chaine',0,'','2021-04-15 10:46:30'),(8736,'MAIN_INFO_SIRET',1,'ABC-DEF','chaine',0,'','2021-04-15 10:46:30'),(8737,'MAIN_INFO_APE',1,'15E-45-8D','chaine',0,'','2021-04-15 10:46:30'),(8738,'MAIN_INFO_TVAINTRA',1,'FR12345678','chaine',0,'','2021-04-15 10:46:30'),(8739,'MAIN_INFO_SOCIETE_OBJECT',1,'A company demo to show how Dolibarr ERP CRM is wonderfull','chaine',0,'','2021-04-15 10:46:30'),(8740,'SOCIETE_FISCAL_MONTH_START',1,'4','chaine',0,'','2021-04-15 10:46:30'),(8741,'FACTURE_TVAOPTION',1,'1','chaine',0,'','2021-04-15 10:46:30'),(8742,'FACTURE_LOCAL_TAX1_OPTION',1,'localtax1on','chaine',0,'','2021-04-15 10:46:30'),(8743,'FACTURE_LOCAL_TAX2_OPTION',1,'localtax2on','chaine',0,'','2021-04-15 10:46:30'),(8744,'MAIN_INFO_VALUE_LOCALTAX1',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8745,'MAIN_INFO_LOCALTAX_CALC1',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8746,'MAIN_INFO_VALUE_LOCALTAX2',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8747,'MAIN_INFO_LOCALTAX_CALC2',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8759,'MAIN_LOGIN_BACKGROUND',1,'background_dolibarr.jpg','chaine',0,'','2021-04-15 10:54:37'),(8760,'MAIN_LANG_DEFAULT',1,'auto','chaine',0,'','2021-04-15 10:56:30'),(8762,'MAIN_THEME',1,'eldy','chaine',0,'','2021-04-15 10:56:30'),(8763,'THEME_ELDY_USE_HOVER',1,'237,244,251','chaine',0,'','2021-04-15 10:56:30'),(8764,'MAIN_SIZE_LISTE_LIMIT',1,'25','chaine',0,'','2021-04-15 10:56:30'),(8765,'MAIN_SIZE_SHORTLIST_LIMIT',1,'3','chaine',0,'','2021-04-15 10:56:30'),(8766,'MAIN_START_WEEK',1,'1','chaine',0,'','2021-04-15 10:56:30'),(8767,'MAIN_DEFAULT_WORKING_DAYS',1,'1-5','chaine',0,'','2021-04-15 10:56:30'),(8768,'MAIN_DEFAULT_WORKING_HOURS',1,'9-18','chaine',0,'','2021-04-15 10:56:30'),(8769,'MAIN_FIRSTNAME_NAME_POSITION',1,'0','chaine',0,'','2021-04-15 10:56:30'),(8770,'MAIN_HOME',1,'__(NoteSomeFeaturesAreDisabled)__
\r\n__(SomeTranslationAreUncomplete)__','chaine',0,'','2021-04-15 10:56:30'),(8771,'MAIN_FEATURES_LEVEL',0,'0','chaine',1,'Level of features to show (0=stable only, 1=stable+experimental, 2=stable+experimental+development','2021-04-15 11:46:30'),(8877,'AGENDA_REMINDER_BROWSER',1,'1','chaine',0,'','2021-04-15 13:32:29'),(8943,'MAIN_MODULE_ACCOUNTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:16'),(8944,'MAIN_MODULE_AGENDA',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:16'),(8945,'MAIN_MODULE_BOM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:16'),(8946,'MAIN_MODULE_BANQUE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:16'),(8947,'MAIN_MODULE_BARCODE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8948,'MAIN_MODULE_CRON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8949,'MAIN_MODULE_COMMANDE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8950,'MAIN_MODULE_DON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8951,'MAIN_MODULE_ECM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8952,'MAIN_MODULE_EXPENSEREPORT',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8953,'MAIN_MODULE_FACTURE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8954,'MAIN_MODULE_FOURNISSEUR',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8955,'MAIN_MODULE_HOLIDAY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8956,'MAIN_MODULE_MARGIN',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8959,'MAIN_MODULE_MRP',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8960,'MAIN_MODULE_MRP_TRIGGERS',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8961,'MAIN_MODULE_MRP_LOGIN',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8962,'MAIN_MODULE_MRP_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8963,'MAIN_MODULE_MRP_MENUS',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8964,'MAIN_MODULE_MRP_TPL',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8965,'MAIN_MODULE_MRP_BARCODE',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8966,'MAIN_MODULE_MRP_MODELS',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8967,'MAIN_MODULE_MRP_THEME',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8968,'MAIN_MODULE_MRP_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-02-07 13:38:17'),(8969,'MAIN_MODULE_OPENSURVEY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8970,'MAIN_MODULE_PRINTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:17'),(8971,'MAIN_MODULE_RECRUITMENT',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8972,'MAIN_MODULE_RECRUITMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8973,'MAIN_MODULE_RECRUITMENT_LOGIN',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8974,'MAIN_MODULE_RECRUITMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8975,'MAIN_MODULE_RECRUITMENT_MENUS',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8976,'MAIN_MODULE_RECRUITMENT_TPL',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8977,'MAIN_MODULE_RECRUITMENT_BARCODE',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8978,'MAIN_MODULE_RECRUITMENT_MODELS',1,'1','chaine',0,NULL,'2022-02-07 13:38:18'),(8979,'MAIN_MODULE_RECRUITMENT_THEME',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8980,'MAIN_MODULE_RECRUITMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8981,'MAIN_MODULE_RESOURCE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8982,'MAIN_MODULE_SALARIES',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8983,'MAIN_MODULE_SERVICE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8984,'MAIN_MODULE_SYSLOG',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8985,'MAIN_MODULE_SOCIETE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8986,'MAIN_MODULE_STRIPE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8987,'MAIN_MODULE_TICKET',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8988,'MAIN_MODULE_TICKET_TABS_0',1,'thirdparty:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__','chaine',0,NULL,'2022-02-07 13:38:18'),(8989,'MAIN_MODULE_TICKET_TABS_1',1,'project:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?projectid=__ID__','chaine',0,NULL,'2022-02-07 13:38:18'),(8990,'MAIN_MODULE_TICKET_TRIGGERS',1,'1','chaine',0,NULL,'2022-02-07 13:38:18'),(8991,'TAKEPOS_PRINT_METHOD',1,'browser','chaine',0,'','2022-02-07 13:38:18'),(8992,'MAIN_MODULE_TAKEPOS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(8993,'MAIN_MODULE_TAKEPOS_TRIGGERS',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8994,'MAIN_MODULE_TAKEPOS_LOGIN',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8995,'MAIN_MODULE_TAKEPOS_SUBSTITUTIONS',1,'1','chaine',0,NULL,'2022-02-07 13:38:18'),(8996,'MAIN_MODULE_TAKEPOS_MENUS',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8997,'MAIN_MODULE_TAKEPOS_THEME',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8998,'MAIN_MODULE_TAKEPOS_TPL',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(8999,'MAIN_MODULE_TAKEPOS_BARCODE',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(9000,'MAIN_MODULE_TAKEPOS_MODELS',1,'0','chaine',0,NULL,'2022-02-07 13:38:18'),(9001,'MAIN_MODULE_USER',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(9002,'MAIN_MODULE_VARIANTS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(9003,'MAIN_MODULE_WEBSITE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:38:18'),(9004,'MAIN_VERSION_LAST_UPGRADE',0,'15.0.0','chaine',0,'Dolibarr version for last upgrade','2022-02-07 13:38:20'),(9006,'MAIN_FIRST_PING_OK_DATE',1,'20220207133821','chaine',0,'','2022-02-07 13:38:21'),(9007,'MAIN_FIRST_PING_OK_ID',1,'disabled','chaine',0,'','2022-02-07 13:38:21'),(9008,'MAIN_MODULE_KNOWLEDGEMANAGEMENT',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:39:27'),(9009,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9010,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_LOGIN',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9011,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9012,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MENUS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9013,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_TPL',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9014,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_BARCODE',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9015,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MODELS',1,'1','chaine',0,NULL,'2022-02-07 13:39:27'),(9016,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_PRINTING',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9017,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_THEME',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9018,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9021,'WEBSITE_SUBCONTAINERSINLINE',1,'1','chaine',0,'','2022-02-07 13:57:11'),(9022,'PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT',1,'1','chaine',0,'','2022-02-07 14:17:28'),(9023,'PAYMENTBYBANKTRANSFER_USER',1,'13','chaine',0,'','2022-02-07 14:17:28'),(9025,'MAIN_MODULE_BLOCKEDLOG',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 14:32:50'),(9026,'MAIN_IHM_PARAMS_REV',1,'16','chaine',0,'','2022-02-07 14:32:50'),(9141,'MAIN_AGENDA_ACTIONAUTO_COMPANY_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9142,'MAIN_AGENDA_ACTIONAUTO_COMPANY_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9143,'MAIN_AGENDA_ACTIONAUTO_COMPANY_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9144,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9145,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_SIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9146,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_REFUSED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9147,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9148,'MAIN_AGENDA_ACTIONAUTO_PROPAL_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9149,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9150,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9151,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9152,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9153,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9154,'MAIN_AGENDA_ACTIONAUTO_ORDER_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9155,'MAIN_AGENDA_ACTIONAUTO_ORDER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9156,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9157,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9158,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9159,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9160,'MAIN_AGENDA_ACTIONAUTO_BILL_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9161,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9162,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9163,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9164,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9165,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_CLOSE_SIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9166,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_CLOSE_REFUSED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9167,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9168,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9169,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9170,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9171,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SUBMIT',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9172,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_RECEIVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9173,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_REFUSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9174,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9175,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9176,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9177,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9178,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9179,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9180,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_PAYED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9181,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_CANCELED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9182,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9183,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9184,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9185,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9186,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9187,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9188,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_REOPEN',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9189,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9190,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9191,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9192,'MAIN_AGENDA_ACTIONAUTO_MEMBER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9193,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9194,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9195,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9196,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9197,'MAIN_AGENDA_ACTIONAUTO_MEMBER_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9198,'MAIN_AGENDA_ACTIONAUTO_MEMBER_RESILIATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9199,'MAIN_AGENDA_ACTIONAUTO_MEMBER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9200,'MAIN_AGENDA_ACTIONAUTO_MEMBER_EXCLUDE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9201,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9202,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9203,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9204,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9205,'MAIN_AGENDA_ACTIONAUTO_TASK_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9206,'MAIN_AGENDA_ACTIONAUTO_TASK_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9207,'MAIN_AGENDA_ACTIONAUTO_TASK_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9208,'MAIN_AGENDA_ACTIONAUTO_CONTACT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9209,'MAIN_AGENDA_ACTIONAUTO_CONTACT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9210,'MAIN_AGENDA_ACTIONAUTO_CONTACT_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9211,'MAIN_AGENDA_ACTIONAUTO_CONTACT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9212,'MAIN_AGENDA_ACTIONAUTO_PROJECT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9213,'MAIN_AGENDA_ACTIONAUTO_PROJECT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9214,'MAIN_AGENDA_ACTIONAUTO_PROJECT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9215,'MAIN_AGENDA_ACTIONAUTO_TICKET_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9216,'MAIN_AGENDA_ACTIONAUTO_TICKET_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9217,'MAIN_AGENDA_ACTIONAUTO_TICKET_ASSIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9218,'MAIN_AGENDA_ACTIONAUTO_TICKET_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9219,'MAIN_AGENDA_ACTIONAUTO_TICKET_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9220,'MAIN_AGENDA_ACTIONAUTO_TICKET_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9221,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9222,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9223,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9224,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9225,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_PAID',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9226,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9227,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9228,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9229,'MAIN_AGENDA_ACTIONAUTO_USER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9230,'MAIN_AGENDA_ACTIONAUTO_USER_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9231,'MAIN_AGENDA_ACTIONAUTO_USER_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9232,'MAIN_AGENDA_ACTIONAUTO_USER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9233,'MAIN_AGENDA_ACTIONAUTO_USER_NEW_PASSWORD',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9234,'MAIN_AGENDA_ACTIONAUTO_USER_ENABLEDISABLE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9235,'MAIN_AGENDA_ACTIONAUTO_BOM_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9236,'MAIN_AGENDA_ACTIONAUTO_BOM_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9237,'MAIN_AGENDA_ACTIONAUTO_BOM_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9238,'MAIN_AGENDA_ACTIONAUTO_BOM_REOPEN',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9239,'MAIN_AGENDA_ACTIONAUTO_BOM_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9240,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9241,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_PRODUCED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9242,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9243,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9244,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9245,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9246,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9247,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9248,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9249,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9250,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9251,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9252,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9253,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9254,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'); +INSERT INTO `llx_const` VALUES (8,'MAIN_UPLOAD_DOC',0,'2048','chaine',0,'Max size for file upload (0 means no upload allowed)','2012-07-08 11:17:57'),(9,'MAIN_SEARCHFORM_SOCIETE',0,'1','yesno',0,'Show form for quick company search','2012-07-08 11:17:57'),(10,'MAIN_SEARCHFORM_CONTACT',0,'1','yesno',0,'Show form for quick contact search','2012-07-08 11:17:57'),(11,'MAIN_SEARCHFORM_PRODUITSERVICE',0,'1','yesno',0,'Show form for quick product search','2012-07-08 11:17:58'),(12,'MAIN_SEARCHFORM_ADHERENT',0,'1','yesno',0,'Show form for quick member search','2012-07-08 11:17:58'),(16,'MAIN_SIZE_LISTE_LIMIT',0,'25','chaine',0,'Longueur maximum des listes','2012-07-08 11:17:58'),(29,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',1,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-07-08 11:17:58'),(33,'SOCIETE_NOLIST_COURRIER',0,'1','yesno',0,'Liste les fichiers du repertoire courrier','2012-07-08 11:17:58'),(36,'ADHERENT_MAIL_REQUIRED',1,'1','yesno',0,'EMail required to create a new member','2012-07-08 11:17:58'),(37,'ADHERENT_MAIL_FROM',1,'adherents@domain.com','chaine',0,'Sender EMail for automatic emails','2012-07-08 11:17:58'),(38,'ADHERENT_MAIL_RESIL',1,'Your subscription has been resiliated.\r\nWe hope to see you soon again','html',0,'Mail resiliation','2018-11-23 11:56:07'),(39,'ADHERENT_MAIL_VALID',1,'Your subscription has been validated.\r\nThis is a remind of your personal information :\r\n\r\n%INFOS%\r\n\r\n','html',0,'Mail de validation','2018-11-23 11:56:07'),(40,'ADHERENT_MAIL_COTIS',1,'Hello %PRENOM%,\r\nThanks for your subscription.\r\nThis email confirms that your subscription has been received and processed.\r\n\r\n','html',0,'Mail de validation de cotisation','2018-11-23 11:56:07'),(41,'ADHERENT_MAIL_VALID_SUBJECT',1,'Your subscription has been validated','chaine',0,'Sujet du mail de validation','2012-07-08 11:17:59'),(42,'ADHERENT_MAIL_RESIL_SUBJECT',1,'Resiliating your subscription','chaine',0,'Sujet du mail de resiliation','2012-07-08 11:17:59'),(43,'ADHERENT_MAIL_COTIS_SUBJECT',1,'Receipt of your subscription','chaine',0,'Sujet du mail de validation de cotisation','2012-07-08 11:17:59'),(44,'MAILING_EMAIL_FROM',1,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-07-08 11:17:59'),(45,'ADHERENT_USE_MAILMAN',1,'0','yesno',0,'Utilisation de Mailman','2012-07-08 11:17:59'),(46,'ADHERENT_MAILMAN_UNSUB_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%','chaine',0,'Url de desinscription aux listes mailman','2012-07-08 11:17:59'),(47,'ADHERENT_MAILMAN_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%','chaine',0,'Url pour les inscriptions mailman','2012-07-08 11:17:59'),(48,'ADHERENT_MAILMAN_LISTS',1,'test-test,test-test2','chaine',0,'Listes auxquelles inscrire les nouveaux adherents','2012-07-08 11:17:59'),(49,'ADHERENT_MAILMAN_ADMIN_PASSWORD',1,'','chaine',0,'Mot de passe Admin des liste mailman','2022-12-11 21:23:35'),(50,'ADHERENT_MAILMAN_SERVER',1,'lists.domain.com','chaine',0,'Serveur hebergeant les interfaces d Admin des listes mailman','2012-07-08 11:17:59'),(51,'ADHERENT_MAILMAN_LISTS_COTISANT',1,'','chaine',0,'Liste(s) auxquelles les nouveaux cotisants sont inscris automatiquement','2012-07-08 11:17:59'),(52,'ADHERENT_USE_SPIP',1,'0','yesno',0,'Utilisation de SPIP ?','2012-07-08 11:17:59'),(53,'ADHERENT_USE_SPIP_AUTO',1,'0','yesno',0,'Utilisation de SPIP automatiquement','2012-07-08 11:17:59'),(54,'ADHERENT_SPIP_USER',1,'user','chaine',0,'user spip','2012-07-08 11:17:59'),(55,'ADHERENT_SPIP_PASS',1,'pass','chaine',0,'Pass de connection','2012-07-08 11:17:59'),(56,'ADHERENT_SPIP_SERVEUR',1,'localhost','chaine',0,'serveur spip','2012-07-08 11:17:59'),(57,'ADHERENT_SPIP_DB',1,'spip','chaine',0,'db spip','2012-07-08 11:17:59'),(58,'ADHERENT_CARD_HEADER_TEXT',1,'%ANNEE%','chaine',0,'Texte imprime sur le haut de la carte adherent','2012-07-08 11:17:59'),(59,'ADHERENT_CARD_FOOTER_TEXT',1,'Association AZERTY','chaine',0,'Texte imprime sur le bas de la carte adherent','2012-07-08 11:17:59'),(61,'FCKEDITOR_ENABLE_USER',1,'1','yesno',0,'Activation fckeditor sur notes utilisateurs','2012-07-08 11:17:59'),(62,'FCKEDITOR_ENABLE_SOCIETE',1,'1','yesno',0,'Activation fckeditor sur notes societe','2012-07-08 11:17:59'),(63,'FCKEDITOR_ENABLE_PRODUCTDESC',1,'1','yesno',0,'Activation fckeditor sur notes produits','2012-07-08 11:17:59'),(64,'FCKEDITOR_ENABLE_MEMBER',1,'1','yesno',0,'Activation fckeditor sur notes adherent','2012-07-08 11:17:59'),(65,'FCKEDITOR_ENABLE_MAILING',1,'1','yesno',0,'Activation fckeditor sur emailing','2012-07-08 11:17:59'),(67,'DON_ADDON_MODEL',1,'html_cerfafr','chaine',0,'','2012-07-08 11:18:00'),(68,'PROPALE_ADDON',1,'mod_propale_marbre','chaine',0,'','2012-07-08 11:18:00'),(69,'PROPALE_ADDON_PDF',1,'azur','chaine',0,'','2012-07-08 11:18:00'),(70,'COMMANDE_ADDON',1,'mod_commande_marbre','chaine',0,'','2012-07-08 11:18:00'),(71,'COMMANDE_ADDON_PDF',1,'einstein','chaine',0,'','2012-07-08 11:18:00'),(72,'COMMANDE_SUPPLIER_ADDON',1,'mod_commande_fournisseur_muguet','chaine',0,'','2012-07-08 11:18:00'),(73,'COMMANDE_SUPPLIER_ADDON_PDF',1,'muscadet','chaine',0,'','2012-07-08 11:18:00'),(74,'EXPEDITION_ADDON',1,'enlevement','chaine',0,'','2012-07-08 11:18:00'),(76,'FICHEINTER_ADDON',1,'pacific','chaine',0,'','2012-07-08 11:18:00'),(77,'FICHEINTER_ADDON_PDF',1,'soleil','chaine',0,'','2012-07-08 11:18:00'),(79,'FACTURE_ADDON_PDF',1,'crabe','chaine',0,'','2012-07-08 11:18:00'),(80,'PROPALE_VALIDITY_DURATION',1,'15','chaine',0,'Durée de validitée des propales','2012-07-08 11:18:00'),(230,'COMPANY_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2012-07-08 11:26:20'),(238,'LIVRAISON_ADDON_PDF',1,'typhon','chaine',0,'Nom du gestionnaire de generation des commandes en PDF','2012-07-08 11:26:27'),(239,'DELIVERY_ADDON_NUMBER',1,'mod_delivery_jade','chaine',0,'Nom du gestionnaire de numerotation des bons de livraison','2020-12-10 12:24:40'),(245,'FACTURE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2012-07-08 11:28:53'),(249,'DON_FORM',1,'html_cerfafr','chaine',0,'Nom du gestionnaire de formulaire de dons','2017-09-06 16:12:22'),(254,'ADHERENT_BANK_ACCOUNT',1,'','chaine',0,'ID du Compte banquaire utilise','2012-07-08 11:29:05'),(255,'ADHERENT_BANK_CATEGORIE',1,'','chaine',0,'ID de la categorie banquaire des cotisations','2012-07-08 11:29:05'),(256,'ADHERENT_ETIQUETTE_TYPE',1,'L7163','chaine',0,'Type d etiquette (pour impression de planche d etiquette)','2012-07-08 11:29:05'),(269,'PROJECT_ADDON_PDF',1,'baleine','chaine',0,'Nom du gestionnaire de generation des projets en PDF','2012-07-08 11:29:33'),(270,'PROJECT_ADDON',1,'mod_project_simple','chaine',0,'Nom du gestionnaire de numerotation des projets','2012-07-08 11:29:33'),(369,'EXPEDITION_ADDON_PDF',1,'merou','chaine',0,'','2012-07-08 22:58:07'),(377,'FACTURE_ADDON',1,'mod_facture_terre','chaine',0,'','2012-07-08 23:08:12'),(380,'ADHERENT_CARD_TEXT',1,'%TYPE% n° %ID%\r\n%PRENOM% %NOM%\r\n<%EMAIL%>\r\n%ADRESSE%\r\n%CP% %VILLE%\r\n%PAYS%','',0,'Texte imprime sur la carte adherent','2012-07-08 23:14:46'),(381,'ADHERENT_CARD_TEXT_RIGHT',1,'aaa','',0,'','2012-07-08 23:14:55'),(386,'STOCK_CALCULATE_ON_SHIPMENT',1,'1','chaine',0,'','2012-07-08 23:23:21'),(387,'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER',1,'1','chaine',0,'','2012-07-08 23:23:26'),(392,'MAIN_AGENDA_XCAL_EXPORTKEY',1,'dolibarr','chaine',0,'','2012-07-08 23:27:50'),(393,'MAIN_AGENDA_EXPORT_PAST_DELAY',1,'100','chaine',0,'','2012-07-08 23:27:50'),(610,'CASHDESK_ID_THIRDPARTY',1,'7','chaine',0,'','2012-07-11 17:08:18'),(611,'CASHDESK_ID_BANKACCOUNT_CASH',1,'3','chaine',0,'','2012-07-11 17:08:18'),(612,'CASHDESK_ID_BANKACCOUNT_CHEQUE',1,'1','chaine',0,'','2012-07-11 17:08:18'),(613,'CASHDESK_ID_BANKACCOUNT_CB',1,'1','chaine',0,'','2012-07-11 17:08:18'),(614,'CASHDESK_ID_WAREHOUSE',1,'2','chaine',0,'','2012-07-11 17:08:18'),(660,'LDAP_USER_DN',1,'ou=users,dc=my-domain,dc=com','chaine',0,NULL,'2012-07-18 10:25:27'),(661,'LDAP_GROUP_DN',1,'ou=groups,dc=my-domain,dc=com','chaine',0,NULL,'2012-07-18 10:25:27'),(662,'LDAP_FILTER_CONNECTION',1,'&(objectClass=user)(objectCategory=person)','chaine',0,NULL,'2012-07-18 10:25:27'),(663,'LDAP_FIELD_LOGIN',1,'uid','chaine',0,NULL,'2012-07-18 10:25:27'),(664,'LDAP_FIELD_FULLNAME',1,'cn','chaine',0,NULL,'2012-07-18 10:25:27'),(665,'LDAP_FIELD_NAME',1,'sn','chaine',0,NULL,'2012-07-18 10:25:27'),(666,'LDAP_FIELD_FIRSTNAME',1,'givenname','chaine',0,NULL,'2012-07-18 10:25:27'),(667,'LDAP_FIELD_MAIL',1,'mail','chaine',0,NULL,'2012-07-18 10:25:27'),(668,'LDAP_FIELD_PHONE',1,'telephonenumber','chaine',0,NULL,'2012-07-18 10:25:27'),(669,'LDAP_FIELD_FAX',1,'facsimiletelephonenumber','chaine',0,NULL,'2012-07-18 10:25:27'),(670,'LDAP_FIELD_MOBILE',1,'mobile','chaine',0,NULL,'2012-07-18 10:25:27'),(671,'LDAP_SERVER_TYPE',1,'openldap','chaine',0,'','2012-07-18 10:25:46'),(672,'LDAP_SERVER_PROTOCOLVERSION',1,'3','chaine',0,'','2012-07-18 10:25:47'),(673,'LDAP_SERVER_HOST',1,'localhost','chaine',0,'','2012-07-18 10:25:47'),(674,'LDAP_SERVER_PORT',1,'389','chaine',0,'','2012-07-18 10:25:47'),(675,'LDAP_SERVER_USE_TLS',1,'0','chaine',0,'','2012-07-18 10:25:47'),(676,'LDAP_SYNCHRO_ACTIVE',1,'dolibarr2ldap','chaine',0,'','2012-07-18 10:25:47'),(677,'LDAP_CONTACT_ACTIVE',1,'1','chaine',0,'','2012-07-18 10:25:47'),(678,'LDAP_MEMBER_ACTIVE',1,'1','chaine',0,'','2012-07-18 10:25:47'),(974,'MAIN_MODULE_WORKFLOW_TRIGGERS',1,'1','chaine',0,NULL,'2013-07-18 18:02:20'),(975,'WORKFLOW_PROPAL_AUTOCREATE_ORDER',1,'1','chaine',0,'','2013-07-18 18:02:24'),(980,'PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR',1,'1234567','chaine',0,'','2013-07-18 18:05:50'),(983,'FACTURE_RIB_NUMBER',1,'1','chaine',0,'','2013-07-18 18:35:14'),(984,'FACTURE_CHQ_NUMBER',1,'1','chaine',0,'','2013-07-18 18:35:14'),(1016,'GOOGLE_DUPLICATE_INTO_GCAL',1,'1','chaine',0,'','2013-07-18 21:40:20'),(1152,'SOCIETE_CODECLIENT_ADDON',1,'mod_codeclient_monkey','chaine',0,'','2013-07-29 20:50:02'),(1240,'MAIN_LOGEVENTS_USER_LOGIN',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1241,'MAIN_LOGEVENTS_USER_LOGIN_FAILED',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1242,'MAIN_LOGEVENTS_USER_LOGOUT',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1243,'MAIN_LOGEVENTS_USER_CREATE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1244,'MAIN_LOGEVENTS_USER_MODIFY',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1245,'MAIN_LOGEVENTS_USER_NEW_PASSWORD',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1246,'MAIN_LOGEVENTS_USER_ENABLEDISABLE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1247,'MAIN_LOGEVENTS_USER_DELETE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1248,'MAIN_LOGEVENTS_GROUP_CREATE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1249,'MAIN_LOGEVENTS_GROUP_MODIFY',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1250,'MAIN_LOGEVENTS_GROUP_DELETE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1251,'MAIN_BOXES_MAXLINES',1,'5','',0,'','2013-07-29 21:05:42'),(1482,'EXPEDITION_ADDON_NUMBER',1,'mod_expedition_safor','chaine',0,'Nom du gestionnaire de numerotation des expeditions','2013-08-05 17:53:11'),(1490,'CONTRACT_ADDON',1,'mod_contract_serpis','chaine',0,'Nom du gestionnaire de numerotation des contrats','2013-08-05 18:11:58'),(1677,'COMMANDE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/orders','chaine',0,NULL,'2014-12-08 13:11:02'),(1724,'PROPALE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2014-12-08 13:17:14'),(1730,'OPENSTREETMAP_ENABLE_MAPS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1731,'OPENSTREETMAP_ENABLE_MAPS_CONTACTS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1732,'OPENSTREETMAP_ENABLE_MAPS_MEMBERS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1733,'OPENSTREETMAP_MAPS_ZOOM_LEVEL',1,'15','chaine',0,'','2014-12-08 13:22:47'),(1742,'MAIN_MAIL_EMAIL_FROM',2,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2014-12-08 14:08:14'),(1743,'MAIN_MENU_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2015-02-11 19:43:54'),(1744,'MAIN_MENUFRONT_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2015-02-11 19:43:54'),(1745,'MAIN_MENU_SMARTPHONE',2,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2014-12-08 14:08:14'),(1746,'MAIN_MENUFRONT_SMARTPHONE',2,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2014-12-08 14:08:14'),(1747,'MAIN_THEME',2,'eldy','chaine',0,'Default theme','2014-12-08 14:08:14'),(1748,'MAIN_DELAY_ACTIONS_TODO',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2014-12-08 14:08:14'),(1749,'MAIN_DELAY_ORDERS_TO_PROCESS',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2014-12-08 14:08:14'),(1750,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2014-12-08 14:08:14'),(1751,'MAIN_DELAY_PROPALS_TO_CLOSE',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2014-12-08 14:08:14'),(1752,'MAIN_DELAY_PROPALS_TO_BILL',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2014-12-08 14:08:14'),(1753,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2014-12-08 14:08:14'),(1754,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2014-12-08 14:08:14'),(1755,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2014-12-08 14:08:14'),(1756,'MAIN_DELAY_RUNNING_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2014-12-08 14:08:14'),(1757,'MAIN_DELAY_MEMBERS',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2014-12-08 14:08:14'),(1758,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',2,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2014-12-08 14:08:14'),(1759,'MAILING_EMAIL_FROM',2,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2014-12-08 14:08:14'),(1760,'MAIN_INFO_SOCIETE_COUNTRY',3,'1:FR:France','chaine',0,'','2015-02-26 21:56:28'),(1761,'MAIN_INFO_SOCIETE_NOM',3,'bbb','chaine',0,'','2014-12-08 14:08:20'),(1762,'MAIN_INFO_SOCIETE_STATE',3,'0','chaine',0,'','2015-02-27 14:20:27'),(1763,'MAIN_MONNAIE',3,'EUR','chaine',0,'','2014-12-08 14:08:20'),(1764,'MAIN_LANG_DEFAULT',3,'auto','chaine',0,'','2014-12-08 14:08:20'),(1765,'MAIN_MAIL_EMAIL_FROM',3,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2014-12-08 14:08:20'),(1766,'MAIN_MENU_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2015-02-11 19:43:54'),(1767,'MAIN_MENUFRONT_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2015-02-11 19:43:54'),(1768,'MAIN_MENU_SMARTPHONE',3,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2014-12-08 14:08:20'),(1769,'MAIN_MENUFRONT_SMARTPHONE',3,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2014-12-08 14:08:20'),(1770,'MAIN_THEME',3,'eldy','chaine',0,'Default theme','2014-12-08 14:08:20'),(1771,'MAIN_DELAY_ACTIONS_TODO',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2014-12-08 14:08:20'),(1772,'MAIN_DELAY_ORDERS_TO_PROCESS',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2014-12-08 14:08:20'),(1773,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2014-12-08 14:08:20'),(1774,'MAIN_DELAY_PROPALS_TO_CLOSE',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2014-12-08 14:08:20'),(1775,'MAIN_DELAY_PROPALS_TO_BILL',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2014-12-08 14:08:20'),(1776,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2014-12-08 14:08:20'),(1777,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2014-12-08 14:08:20'),(1778,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2014-12-08 14:08:20'),(1779,'MAIN_DELAY_RUNNING_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2014-12-08 14:08:20'),(1780,'MAIN_DELAY_MEMBERS',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2014-12-08 14:08:20'),(1781,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',3,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2014-12-08 14:08:20'),(1782,'MAILING_EMAIL_FROM',3,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2014-12-08 14:08:20'),(1803,'SYSLOG_FILE',1,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2014-12-08 14:15:08'),(1804,'SYSLOG_HANDLERS',1,'[\"mod_syslog_file\"]','chaine',0,'','2014-12-08 14:15:08'),(1805,'MAIN_MODULE_SKINCOLOREDITOR',3,'1',NULL,0,NULL,'2014-12-08 14:35:40'),(1922,'PAYPAL_API_SANDBOX',1,'1','chaine',0,'','2014-12-12 12:11:05'),(1923,'PAYPAL_API_USER',1,'seller_1355312017_biz_api1.mydomain.com','chaine',0,'','2014-12-12 12:11:05'),(1924,'PAYPAL_API_PASSWORD',1,'1355312040','chaine',0,'','2014-12-12 12:11:05'),(1925,'PAYPAL_API_SIGNATURE',1,'ABCDEFWBzvfn0q5iNmbuiDv1y.3EAXIMWyl4C5KvDReR9HDwwAd6dQ4Q','chaine',0,'','2014-12-12 12:11:05'),(1926,'PAYPAL_API_INTEGRAL_OR_PAYPALONLY',1,'integral','chaine',0,'','2014-12-12 12:11:05'),(1927,'PAYPAL_SECURITY_TOKEN',1,'50c82fab36bb3b6aa83e2a50691803b2','chaine',0,'','2014-12-12 12:11:05'),(1928,'PAYPAL_SECURITY_TOKEN_UNIQUE',1,'0','chaine',0,'','2014-12-12 12:11:05'),(1929,'PAYPAL_ADD_PAYMENT_URL',1,'1','chaine',0,'','2014-12-12 12:11:05'),(1980,'MAIN_PDF_FORMAT',1,'EUA4','chaine',0,'','2014-12-12 19:58:05'),(1981,'MAIN_PROFID1_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1982,'MAIN_PROFID2_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1983,'MAIN_PROFID3_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1984,'MAIN_PROFID4_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1985,'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT',1,'0','chaine',0,'','2014-12-12 19:58:05'),(2835,'MAIN_USE_CONNECT_TIMEOUT',1,'10','chaine',0,'','2015-01-16 19:28:50'),(2836,'MAIN_USE_RESPONSE_TIMEOUT',1,'30','chaine',0,'','2015-01-16 19:28:50'),(2837,'MAIN_PROXY_USE',1,'0','chaine',0,'','2015-01-16 19:28:50'),(2838,'MAIN_PROXY_HOST',1,'localhost','chaine',0,'','2015-01-16 19:28:50'),(2839,'MAIN_PROXY_PORT',1,'8080','chaine',0,'','2015-01-16 19:28:50'),(2840,'MAIN_PROXY_USER',1,'aaa','chaine',0,'','2015-01-16 19:28:50'),(2841,'MAIN_PROXY_PASS',1,'bbb','chaine',0,'','2015-01-16 19:28:50'),(2848,'OVHSMS_NICK',1,'BN196-OVH','chaine',0,'','2015-01-16 19:32:36'),(2849,'OVHSMS_PASS',1,'bigone-10','chaine',0,'','2015-01-16 19:32:36'),(2850,'OVHSMS_SOAPURL',1,'https://www.ovh.com/soapi/soapi-re-1.55.wsdl','chaine',0,'','2015-01-16 19:32:36'),(2854,'THEME_ELDY_RGB',1,'bfbf00','chaine',0,'','2015-01-18 10:02:53'),(2855,'THEME_ELDY_ENABLE_PERSONALIZED',1,'0','chaine',0,'','2015-01-18 10:02:55'),(2858,'MAIN_SESSION_TIMEOUT',1,'2000','chaine',0,'','2015-01-19 17:01:53'),(2867,'FACSIM_ADDON',1,'mod_facsim_alcoy','chaine',0,'','2015-01-19 17:16:25'),(2868,'POS_SERVICES',1,'0','chaine',0,'','2015-01-19 17:16:51'),(2869,'POS_USE_TICKETS',1,'1','chaine',0,'','2015-01-19 17:16:51'),(2870,'POS_MAX_TTC',1,'100','chaine',0,'','2015-01-19 17:16:51'),(3190,'MAIN_MODULE_HOLIDAY',2,'1',NULL,0,NULL,'2015-02-01 08:52:34'),(3195,'INVOICE_SUPPLIER_ADDON_PDF',1,'canelle','chaine',0,'','2015-02-10 19:50:27'),(3199,'MAIN_FORCE_RELOAD_PAGE',1,'1','chaine',0,NULL,'2015-02-12 16:22:55'),(3223,'OVH_THIRDPARTY_IMPORT',1,'2','chaine',0,'','2015-02-13 16:20:18'),(3409,'AGENDA_USE_EVENT_TYPE',1,'1','chaine',0,'','2015-02-27 18:12:24'),(3886,'MAIN_REMOVE_INSTALL_WARNING',1,'1','chaine',1,'','2015-03-02 18:32:50'),(4013,'MAIN_DELAY_ACTIONS_TODO',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4014,'MAIN_DELAY_PROPALS_TO_CLOSE',1,'31','chaine',0,'','2015-03-06 08:59:12'),(4015,'MAIN_DELAY_PROPALS_TO_BILL',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4016,'MAIN_DELAY_ORDERS_TO_PROCESS',1,'2','chaine',0,'','2015-03-06 08:59:12'),(4017,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',1,'31','chaine',0,'','2015-03-06 08:59:12'),(4018,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4019,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',1,'2','chaine',0,'','2015-03-06 08:59:12'),(4020,'MAIN_DELAY_RUNNING_SERVICES',1,'-15','chaine',0,'','2015-03-06 08:59:12'),(4021,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',1,'62','chaine',0,'','2015-03-06 08:59:13'),(4022,'MAIN_DELAY_MEMBERS',1,'31','chaine',0,'','2015-03-06 08:59:13'),(4023,'MAIN_DISABLE_METEO',1,'0','chaine',0,'','2015-03-06 08:59:13'),(4044,'ADHERENT_VAT_FOR_SUBSCRIPTIONS',1,'0','',0,'','2015-03-06 16:06:38'),(4047,'ADHERENT_BANK_USE',1,'bankviainvoice','',0,'','2015-03-06 16:12:30'),(4049,'PHPSANE_SCANIMAGE',1,'/usr/bin/scanimage','chaine',0,'','2015-03-06 21:54:13'),(4050,'PHPSANE_PNMTOJPEG',1,'/usr/bin/pnmtojpeg','chaine',0,'','2015-03-06 21:54:13'),(4051,'PHPSANE_PNMTOTIFF',1,'/usr/bin/pnmtotiff','chaine',0,'','2015-03-06 21:54:13'),(4052,'PHPSANE_OCR',1,'/usr/bin/gocr','chaine',0,'','2015-03-06 21:54:13'),(4548,'ECM_AUTO_TREE_ENABLED',1,'1','chaine',0,'','2015-03-10 15:57:21'),(4579,'MAIN_MODULE_AGENDA',2,'1',NULL,0,NULL,'2015-03-13 15:29:19'),(4580,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4581,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4582,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4583,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4584,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4585,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4586,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4587,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4588,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4589,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4590,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4591,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4592,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4593,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4594,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4688,'GOOGLE_ENABLE_AGENDA',2,'1','chaine',0,'','2015-03-13 15:36:29'),(4689,'GOOGLE_AGENDA_NAME1',2,'eldy','chaine',0,'','2015-03-13 15:36:29'),(4690,'GOOGLE_AGENDA_SRC1',2,'eldy10@mail.com','chaine',0,'','2015-03-13 15:36:29'),(4691,'GOOGLE_AGENDA_COLOR1',2,'BE6D00','chaine',0,'','2015-03-13 15:36:29'),(4692,'GOOGLE_AGENDA_COLOR2',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4693,'GOOGLE_AGENDA_COLOR3',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4694,'GOOGLE_AGENDA_COLOR4',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4695,'GOOGLE_AGENDA_COLOR5',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4696,'GOOGLE_AGENDA_TIMEZONE',2,'Europe/Paris','chaine',0,'','2015-03-13 15:36:29'),(4697,'GOOGLE_AGENDA_NB',2,'5','chaine',0,'','2015-03-13 15:36:29'),(4725,'SOCIETE_CODECLIENT_ADDON',2,'mod_codeclient_leopard','chaine',0,'Module to control third parties codes','2015-03-13 20:21:35'),(4726,'SOCIETE_CODECOMPTA_ADDON',2,'mod_codecompta_panicum','chaine',0,'Module to control third parties codes','2015-03-13 20:21:35'),(4727,'SOCIETE_FISCAL_MONTH_START',2,'','chaine',0,'Mettre le numero du mois du debut d\\\'annee fiscale, ex: 9 pour septembre','2015-03-13 20:21:35'),(4728,'MAIN_SEARCHFORM_SOCIETE',2,'1','yesno',0,'Show form for quick company search','2015-03-13 20:21:35'),(4729,'MAIN_SEARCHFORM_CONTACT',2,'1','yesno',0,'Show form for quick contact search','2015-03-13 20:21:35'),(4730,'COMPANY_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2015-03-13 20:21:35'),(4743,'MAIN_MODULE_CLICKTODIAL',2,'1',NULL,0,NULL,'2015-03-13 20:30:28'),(4744,'MAIN_MODULE_NOTIFICATION',2,'1',NULL,0,NULL,'2015-03-13 20:30:34'),(4745,'MAIN_MODULE_WEBSERVICES',2,'1',NULL,0,NULL,'2015-03-13 20:30:41'),(4746,'MAIN_MODULE_PROPALE',2,'1',NULL,0,NULL,'2015-03-13 20:32:38'),(4747,'PROPALE_ADDON_PDF',2,'azur','chaine',0,'Nom du gestionnaire de generation des propales en PDF','2015-03-13 20:32:38'),(4748,'PROPALE_ADDON',2,'mod_propale_marbre','chaine',0,'Nom du gestionnaire de numerotation des propales','2015-03-13 20:32:38'),(4749,'PROPALE_VALIDITY_DURATION',2,'15','chaine',0,'Duration of validity of business proposals','2015-03-13 20:32:38'),(4750,'PROPALE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2015-03-13 20:32:38'),(4752,'MAIN_MODULE_TAX',2,'1',NULL,0,NULL,'2015-03-13 20:32:47'),(4753,'MAIN_MODULE_DON',2,'1',NULL,0,NULL,'2015-03-13 20:32:54'),(4754,'DON_ADDON_MODEL',2,'html_cerfafr','chaine',0,'Nom du gestionnaire de generation de recu de dons','2015-03-13 20:32:54'),(4755,'POS_USE_TICKETS',2,'1','chaine',0,'','2015-03-13 20:33:09'),(4756,'POS_MAX_TTC',2,'100','chaine',0,'','2015-03-13 20:33:09'),(4757,'MAIN_MODULE_POS',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4758,'TICKET_ADDON',2,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2015-03-13 20:33:09'),(4759,'MAIN_MODULE_BANQUE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4760,'MAIN_MODULE_FACTURE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4761,'FACTURE_ADDON_PDF',2,'crabe','chaine',0,'Name of PDF model of invoice','2015-03-13 20:33:09'),(4762,'FACTURE_ADDON',2,'mod_facture_terre','chaine',0,'Name of numbering numerotation rules of invoice','2015-03-13 20:33:09'),(4763,'FACTURE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2015-03-13 20:33:09'),(4764,'MAIN_MODULE_SOCIETE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4765,'MAIN_MODULE_PRODUCT',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4766,'PRODUCT_CODEPRODUCT_ADDON',2,'mod_codeproduct_leopard','chaine',0,'Module to control product codes','2015-03-13 20:33:09'),(4767,'MAIN_SEARCHFORM_PRODUITSERVICE',2,'1','yesno',0,'Show form for quick product search','2015-03-13 20:33:09'),(4772,'FACSIM_ADDON',2,'mod_facsim_alcoy','chaine',0,'','2015-03-13 20:33:32'),(4773,'MAIN_MODULE_MAILING',2,'1',NULL,0,NULL,'2015-03-13 20:33:37'),(4774,'MAIN_MODULE_OPENSURVEY',2,'1',NULL,0,NULL,'2015-03-13 20:33:42'),(4782,'AGENDA_USE_EVENT_TYPE',2,'1','chaine',0,'','2015-03-13 20:53:36'),(4884,'AGENDA_DISABLE_EXT',2,'1','chaine',0,'','2015-03-13 22:03:40'),(4928,'COMMANDE_SUPPLIER_ADDON_NUMBER',1,'mod_commande_fournisseur_muguet','chaine',0,'Nom du gestionnaire de numerotation des commandes fournisseur','2015-03-22 09:24:29'),(4929,'INVOICE_SUPPLIER_ADDON_NUMBER',1,'mod_facture_fournisseur_cactus','chaine',0,'Nom du gestionnaire de numerotation des factures fournisseur','2015-03-22 09:24:29'),(5001,'MAIN_CRON_KEY',0,'bc54582fe30d5d4a830c6f582ec28810','chaine',0,'','2015-03-23 17:54:53'),(5009,'CRON_KEY',0,'2c2e755c20be2014098f629865598006','chaine',0,'','2015-03-23 18:06:24'),(5139,'SOCIETE_ADD_REF_IN_LIST',1,'','yesno',0,'Display customer ref into select list','2015-09-08 23:06:08'),(5150,'PROJECT_TASK_ADDON_PDF',1,'','chaine',0,'Name of PDF/ODT tasks manager class','2015-09-08 23:06:14'),(5151,'PROJECT_TASK_ADDON',1,'mod_task_simple','chaine',0,'Name of Numbering Rule task manager class','2015-09-08 23:06:14'),(5152,'PROJECT_TASK_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/tasks','chaine',0,'','2015-09-08 23:06:14'),(5239,'BOOKMARKS_SHOW_IN_MENU',1,'10','chaine',0,'','2016-03-02 15:42:26'),(5271,'DONATION_ART200',1,'','yesno',0,'Option Française - Eligibilité Art200 du CGI','2016-12-21 12:51:28'),(5272,'DONATION_ART238',1,'','yesno',0,'Option Française - Eligibilité Art238 bis du CGI','2016-12-21 12:51:28'),(5274,'DONATION_MESSAGE',1,'Thank you','chaine',0,'Message affiché sur le récépissé de versements ou dons','2016-12-21 12:51:28'),(5349,'MAIN_SEARCHFORM_CONTACT',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5351,'MAIN_SEARCHFORM_PRODUITSERVICE',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5352,'MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER',1,'0','chaine',0,'','2017-10-03 10:11:33'),(5353,'MAIN_SEARCHFORM_ADHERENT',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5354,'MAIN_SEARCHFORM_PROJECT',1,'0','chaine',0,'','2017-10-03 10:11:33'),(5394,'FCKEDITOR_ENABLE_DETAILS',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2017-11-04 15:27:44'),(5395,'FCKEDITOR_ENABLE_USERSIGN',1,'1','yesno',0,'WYSIWIG for user signature','2017-11-04 15:27:44'),(5396,'FCKEDITOR_ENABLE_MAIL',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2017-11-04 15:27:44'),(5398,'CATEGORIE_RECURSIV_ADD',1,'','yesno',0,'Affect parent categories','2017-11-04 15:27:46'),(5404,'MAIN_MODULE_CATEGORIE',1,'1',NULL,0,NULL,'2017-11-04 15:41:43'),(5415,'EXPEDITION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/shipment','chaine',0,NULL,'2017-11-15 22:38:28'),(5416,'LIVRAISON_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/delivery','chaine',0,NULL,'2017-11-15 22:38:28'),(5426,'MAIN_MODULE_PROJET',1,'1',NULL,0,NULL,'2017-11-15 22:38:44'),(5427,'PROJECT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/projects','chaine',0,NULL,'2017-11-15 22:38:44'),(5428,'PROJECT_USE_OPPORTUNIES',1,'1','chaine',0,NULL,'2017-11-15 22:38:44'),(5430,'MAIN_MODULE_EXPORT',1,'1',NULL,0,NULL,'2017-11-15 22:38:56'),(5431,'MAIN_MODULE_IMPORT',1,'1',NULL,0,NULL,'2017-11-15 22:38:58'),(5432,'MAIN_MODULE_MAILING',1,'1',NULL,0,NULL,'2017-11-15 22:39:00'),(5434,'EXPENSEREPORT_ADDON_PDF',1,'standard','chaine',0,'Name of manager to build PDF expense reports documents','2017-11-15 22:39:05'),(5437,'SALARIES_ACCOUNTING_ACCOUNT_CHARGE',1,'641','chaine',0,NULL,'2017-11-15 22:39:08'),(5441,'ADHERENT_ETIQUETTE_TEXT',1,'%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%','text',0,'Text to print on member address sheets','2018-11-23 11:56:07'),(5443,'MAIN_MODULE_PRELEVEMENT',1,'1',NULL,0,NULL,'2017-11-15 22:39:33'),(5453,'MAIN_MODULE_CONTRAT',1,'1',NULL,0,NULL,'2017-11-15 22:39:52'),(5455,'MAIN_MODULE_FICHEINTER',1,'1',NULL,0,NULL,'2017-11-15 22:39:56'),(5459,'MAIN_MODULE_PAYPAL',1,'1',NULL,0,NULL,'2017-11-15 22:41:02'),(5463,'MAIN_MODULE_PROPALE',1,'1',NULL,0,NULL,'2017-11-15 22:41:47'),(5483,'GENBARCODE_BARCODETYPE_THIRDPARTY',1,'6','chaine',0,'','2018-01-16 15:49:43'),(5484,'PRODUIT_DEFAULT_BARCODE_TYPE',1,'2','chaine',0,'','2018-01-16 15:49:46'),(5586,'MAIN_DELAY_EXPENSEREPORTS_TO_PAY',1,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur les notes de frais impayées','2018-01-22 17:28:18'),(5587,'MAIN_FIX_FOR_BUGGED_MTA',1,'1','chaine',1,'Set constant to fix email ending from PHP with some linux ike system','2018-01-22 17:28:18'),(5590,'MAIN_VERSION_LAST_INSTALL',0,'3.8.3','chaine',0,'Dolibarr version when install','2018-01-22 17:28:42'),(5604,'MAIN_INFO_SOCIETE_LOGO',1,'mybigcompany.png','chaine',0,'','2018-01-22 17:33:49'),(5605,'MAIN_INFO_SOCIETE_LOGO_SMALL',1,'mybigcompany_small.png','chaine',0,'','2018-01-22 17:33:49'),(5606,'MAIN_INFO_SOCIETE_LOGO_MINI',1,'mybigcompany_mini.png','chaine',0,'','2018-01-22 17:33:49'),(5614,'MAIN_SIZE_SHORTLISTE_LIMIT',1,'4','chaine',0,'Longueur maximum des listes courtes (fiche client)','2018-03-13 10:54:46'),(5627,'SUPPLIER_PROPOSAL_ADDON_PDF',1,'aurore','chaine',0,'Name of submodule to generate PDF for supplier quotation request','2018-07-30 11:13:20'),(5628,'SUPPLIER_PROPOSAL_ADDON',1,'mod_supplier_proposal_marbre','chaine',0,'Name of submodule to number supplier quotation request','2018-07-30 11:13:20'),(5629,'SUPPLIER_PROPOSAL_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/supplier_proposal','chaine',0,NULL,'2018-07-30 11:13:20'),(5633,'MAIN_MODULE_API',1,'1',NULL,0,NULL,'2018-07-30 11:13:54'),(5634,'MAIN_MODULE_WEBSERVICES',1,'1',NULL,0,NULL,'2018-07-30 11:13:56'),(5635,'WEBSERVICES_KEY',1,'dolibarrkey','chaine',0,'','2018-07-30 11:14:04'),(5638,'MAIN_MODULE_EXTERNALRSS',1,'1',NULL,0,NULL,'2018-07-30 11:15:04'),(5642,'SOCIETE_CODECOMPTA_ADDON',1,'mod_codecompta_aquarium','chaine',0,'','2018-07-30 11:16:42'),(5707,'CASHDESK_NO_DECREASE_STOCK',1,'1','chaine',0,'','2018-07-30 13:38:11'),(5708,'MAIN_MODULE_PRODUCTBATCH',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5710,'MAIN_MODULE_STOCK',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5711,'MAIN_MODULE_PRODUCT',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5808,'MARGIN_TYPE',1,'costprice','chaine',0,'','2018-07-30 16:32:18'),(5809,'DISPLAY_MARGIN_RATES',1,'1','chaine',0,'','2018-07-30 16:32:20'),(5833,'ACCOUNTING_EXPORT_SEPARATORCSV',1,',','string',0,NULL,'2017-01-29 15:11:56'),(5840,'CHARTOFACCOUNTS',1,'2','chaine',0,NULL,'2017-01-29 15:11:56'),(5841,'ACCOUNTING_EXPORT_MODELCSV',1,'1','chaine',0,NULL,'2017-01-29 15:11:56'),(5842,'ACCOUNTING_LENGTH_GACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5843,'ACCOUNTING_LENGTH_AACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5844,'ACCOUNTING_LIST_SORT_VENTILATION_TODO',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5845,'ACCOUNTING_LIST_SORT_VENTILATION_DONE',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5846,'ACCOUNTING_EXPORT_DATE',1,'%d%m%Y','chaine',0,NULL,'2017-01-29 15:11:56'),(5848,'ACCOUNTING_EXPORT_FORMAT',1,'csv','chaine',0,NULL,'2017-01-29 15:11:56'),(5853,'MAIN_MODULE_WORKFLOW',1,'1',NULL,0,NULL,'2017-01-29 15:12:12'),(5854,'MAIN_MODULE_NOTIFICATION',1,'1',NULL,0,NULL,'2017-01-29 15:12:35'),(5855,'MAIN_MODULE_OAUTH',1,'1',NULL,0,NULL,'2017-01-29 15:12:41'),(5883,'MAILING_LIMIT_SENDBYWEB',0,'15','chaine',1,'Number of targets to defined packet size when sending mass email','2017-01-29 17:36:33'),(5884,'MAIN_MAIL_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5885,'MAIN_SOAP_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5925,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5931,'DATABASE_PWD_ENCRYPTED',1,'1','chaine',0,'','2017-02-01 15:06:04'),(5932,'MAIN_DISABLE_ALL_MAILS',1,'0','chaine',0,'','2017-02-01 15:09:09'),(5933,'MAIN_MAIL_SENDMODE',1,'mail','chaine',0,'','2017-02-01 15:09:09'),(5934,'MAIN_MAIL_SMTP_PORT',1,'465','chaine',0,'','2017-02-01 15:09:09'),(5935,'MAIN_MAIL_SMTP_SERVER',1,'smtp.mail.com','chaine',0,'','2017-02-01 15:09:09'),(5936,'MAIN_MAIL_SMTPS_ID',1,'eldy10@mail.com','chaine',0,'','2017-02-01 15:09:09'),(5937,'MAIN_MAIL_SMTPS_PW',1,'bidonge','chaine',0,'','2017-02-01 15:09:09'),(5938,'MAIN_MAIL_EMAIL_FROM',1,'robot@example.com','chaine',0,'','2017-02-01 15:09:09'),(5939,'MAIN_MAIL_DEFAULT_FROMTYPE',1,'user','chaine',0,'','2017-02-01 15:09:09'),(5940,'PRELEVEMENT_ID_BANKACCOUNT',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5941,'PRELEVEMENT_ICS',1,'ICS123456','chaine',0,'','2017-02-06 04:04:47'),(5942,'PRELEVEMENT_USER',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5943,'BANKADDON_PDF',1,'sepamandate','chaine',0,'','2017-02-06 04:13:52'),(5947,'CHEQUERECEIPTS_THYME_MASK',1,'CHK{yy}{mm}-{0000@1}','chaine',0,'','2017-02-06 04:16:27'),(5948,'MAIN_MODULE_LOAN',1,'1',NULL,0,NULL,'2017-02-06 19:19:05'),(5954,'MAIN_SUBMODULE_EXPEDITION',1,'1','chaine',0,'','2017-02-06 23:57:37'),(5964,'MAIN_MODULE_TAX',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(6019,'MAIN_INFO_SOCIETE_COUNTRY',2,'1:FR:France','chaine',0,'','2017-02-15 17:18:22'),(6020,'MAIN_INFO_SOCIETE_NOM',2,'MySecondCompany','chaine',0,'','2017-02-15 17:18:22'),(6021,'MAIN_INFO_SOCIETE_STATE',2,'0','chaine',0,'','2017-02-15 17:18:22'),(6022,'MAIN_MONNAIE',2,'EUR','chaine',0,'','2017-02-15 17:18:22'),(6023,'MAIN_LANG_DEFAULT',2,'auto','chaine',0,'','2017-02-15 17:18:22'),(6032,'MAIN_MODULE_MULTICURRENCY',1,'1',NULL,0,NULL,'2017-02-15 17:29:59'),(6048,'SYSLOG_FACILITY',0,'LOG_USER','chaine',0,'','2017-02-15 22:37:01'),(6049,'SYSLOG_FIREPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/firephp/firephp-core/lib/','chaine',0,'','2017-02-15 22:37:01'),(6050,'SYSLOG_FILE',0,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2017-02-15 22:37:01'),(6051,'SYSLOG_CHROMEPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/ccampbell/chromephp/','chaine',0,'','2017-02-15 22:37:01'),(6052,'SYSLOG_HANDLERS',0,'[\"mod_syslog_file\"]','chaine',0,'','2017-02-15 22:37:01'),(6092,'MAIN_SIZE_SHORTLIST_LIMIT',0,'3','chaine',0,'Max length for small lists (tabs)','2017-05-12 09:02:38'),(6099,'MAIN_MODULE_SKYPE',1,'1',NULL,0,NULL,'2017-05-12 09:03:51'),(6100,'MAIN_MODULE_GRAVATAR',1,'1',NULL,0,NULL,'2017-05-12 09:03:54'),(6102,'PRODUCT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/products','chaine',0,'','2017-08-27 13:29:07'),(6103,'CONTRACT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/contracts','chaine',0,'','2017-08-27 13:29:07'),(6104,'USERGROUP_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/usergroups','chaine',0,'','2017-08-27 13:29:07'),(6105,'USER_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/users','chaine',0,'','2017-08-27 13:29:07'),(6106,'MAIN_ENABLE_OVERWRITE_TRANSLATION',1,'1','chaine',0,'Enable overwrote of translation','2017-08-27 13:29:07'),(6377,'COMMANDE_SAPHIR_MASK',1,'{yy}{mm}{000}{ttt}','chaine',0,'','2017-09-06 07:56:25'),(6518,'GOOGLE_DUPLICATE_INTO_THIRDPARTIES',1,'1','chaine',0,'','2017-09-06 19:43:57'),(6519,'GOOGLE_DUPLICATE_INTO_CONTACTS',1,'0','chaine',0,'','2017-09-06 19:43:57'),(6520,'GOOGLE_TAG_PREFIX',1,'Dolibarr (Thirdparties)','chaine',0,'','2017-09-06 19:43:57'),(6521,'GOOGLE_TAG_PREFIX_CONTACTS',1,'Dolibarr (Contacts/Addresses)','chaine',0,'','2017-09-06 19:43:57'),(6522,'GOOGLE_ENABLE_AGENDA',1,'1','chaine',0,'','2017-09-06 19:44:12'),(6523,'GOOGLE_AGENDA_COLOR1',1,'1B887A','chaine',0,'','2017-09-06 19:44:12'),(6524,'GOOGLE_AGENDA_COLOR2',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6525,'GOOGLE_AGENDA_COLOR3',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6526,'GOOGLE_AGENDA_COLOR4',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6527,'GOOGLE_AGENDA_COLOR5',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6528,'GOOGLE_AGENDA_TIMEZONE',1,'Europe/Paris','chaine',0,'','2017-09-06 19:44:12'),(6529,'GOOGLE_AGENDA_NB',1,'5','chaine',0,'','2017-09-06 19:44:12'),(6543,'MAIN_SMS_DEBUG',0,'1','chaine',1,'This is to enable OVH SMS debug','2017-09-06 19:44:34'),(6562,'BLOCKEDLOG_ENTITY_FINGERPRINT',1,'b63e359ffca54d5c2bab869916eaf23d4a736703028ccbf77ce1167c5f830e7b','chaine',0,'Numeric Unique Fingerprint','2018-01-19 11:27:15'),(6564,'BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY',1,'FR','chaine',0,'This is list of country code where the module may be mandatory','2018-01-19 11:27:15'),(6565,'MAIN_MODULE_BOOKMARK',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:34'),(6566,'MAIN_MODULE_ADHERENT',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:56'),(6567,'ADHERENT_ADDON_PDF',1,'standard','chaine',0,'Name of PDF model of member','2018-01-19 11:27:56'),(6636,'MAIN_MODULE_TICKET_MODELS',1,'1','chaine',0,NULL,'2019-06-05 09:15:29'),(6647,'MAIN_MODULE_SOCIALNETWORKS',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-06-05 09:16:49'),(6795,'TICKET_ADDON',1,'mod_ticket_simple','chaine',0,'','2019-09-26 12:07:59'),(6796,'PRODUCT_CODEPRODUCT_ADDON',1,'mod_codeproduct_elephant','chaine',0,'','2019-09-26 12:59:00'),(6800,'CASHDESK_ID_THIRDPARTY1',1,'7','chaine',0,'','2019-09-26 15:30:09'),(6801,'CASHDESK_ID_BANKACCOUNT_CASH1',1,'3','chaine',0,'','2019-09-26 15:30:09'),(6802,'CASHDESK_ID_BANKACCOUNT_CHEQUE1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6803,'CASHDESK_ID_BANKACCOUNT_CB1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6804,'CASHDESK_ID_BANKACCOUNT_PRE1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6805,'CASHDESK_ID_BANKACCOUNT_VIR1',1,'1','chaine',0,'','2019-09-26 15:30:09'),(6806,'CASHDESK_NO_DECREASE_STOCK1',1,'1','chaine',0,'','2019-09-26 15:30:09'),(6811,'FORCEPROJECT_ON_PROPOSAL',1,'1','chaine',0,'','2019-09-27 14:52:57'),(6813,'PROJECT_USE_OPPORTUNITIES',1,'1','chaine',0,'','2019-10-01 11:48:09'),(6814,'PACKTHEMEACTIVATEDTHEME',0,'modOwnTheme','chaine',0,'','2019-10-02 11:41:58'),(6815,'OWNTHEME_COL1',0,'#6a89cc','chaine',0,'','2019-10-02 11:41:58'),(6816,'OWNTHEME_COL2',0,'#60a3bc','chaine',0,'','2019-10-02 11:41:58'),(6817,'DOL_VERSION',0,'10.0.2','chaine',0,'Dolibarr version','2019-10-02 11:41:58'),(6823,'OWNTHEME_COL_BODY_BCKGRD',0,'#E9E9E9','chaine',0,'','2019-10-02 11:41:58'),(6824,'OWNTHEME_COL_LOGO_BCKGRD',0,'#474c80','chaine',0,'','2019-10-02 11:41:58'),(6825,'OWNTHEME_COL_TXT_MENU',0,'#b8c6e5','chaine',0,'','2019-10-02 11:41:58'),(6826,'OWNTHEME_COL_HEADER_BCKGRD',0,'#474c80','chaine',0,'','2019-10-02 11:41:58'),(6827,'OWNTHEME_CUSTOM_CSS',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6828,'OWNTHEME_CUSTOM_JS',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6829,'OWNTHEME_FIXED_MENU',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6830,'OWNTHEME_D_HEADER_FONT_SIZE',0,'1.7rem','chaine',0,'','2019-10-02 11:41:58'),(6831,'OWNTHEME_S_HEADER_FONT_SIZE',0,'1.6rem','chaine',0,'','2019-10-02 11:41:58'),(6832,'OWNTHEME_D_VMENU_FONT_SIZE',0,'1.2rem','chaine',0,'','2019-10-02 11:41:58'),(6833,'OWNTHEME_S_VMENU_FONT_SIZE',0,'1.2rem','chaine',0,'','2019-10-02 11:41:58'),(6844,'MAIN_THEME',0,'eldy','chaine',0,'','2019-10-02 11:46:02'),(6845,'MAIN_MENU_STANDARD',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6846,'MAIN_MENUFRONT_STANDARD',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6847,'MAIN_MENU_SMARTPHONE',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6848,'MAIN_MENUFRONT_SMARTPHONE',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6851,'BECREATIVE_COL1',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6852,'BECREATIVE_COL2',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6853,'DOL_VERSION',1,'10.0.2','chaine',0,'Dolibarr version','2019-10-02 11:47:10'),(6859,'BECREATIVE_COL_BODY_BCKGRD',1,'#e6eaef','chaine',0,'','2019-10-02 11:47:10'),(6860,'BECREATIVE_COL_LOGO_BCKGRD',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6861,'BECREATIVE_COL_TXT_MENU',1,'#b8c6e5','chaine',0,'','2019-10-02 11:47:10'),(6862,'BECREATIVE_COL_HEADER_BCKGRD',1,'#26a69a','chaine',0,'','2019-10-02 11:47:10'),(6863,'BECREATIVE_CUSTOM_CSS',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6864,'BECREATIVE_CUSTOM_JS',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6865,'BECREATIVE_FIXED_MENU',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6866,'BECREATIVE_D_HEADER_FONT_SIZE',1,'1.7rem','chaine',0,'','2019-10-02 11:47:10'),(6867,'BECREATIVE_S_HEADER_FONT_SIZE',1,'1.6rem','chaine',0,'','2019-10-02 11:47:10'),(6868,'BECREATIVE_D_VMENU_FONT_SIZE',1,'1.2rem','chaine',0,'','2019-10-02 11:47:10'),(6869,'BECREATIVE_S_VMENU_FONT_SIZE',1,'1.2rem','chaine',0,'','2019-10-02 11:47:10'),(6881,'MAIN_MENU_STANDARD',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6882,'MAIN_MENUFRONT_STANDARD',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6883,'MAIN_MENU_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6884,'MAIN_MENUFRONT_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6885,'ACCOUNTING_ACCOUNT_CUSTOMER',1,'411','chaine',0,'','2019-10-04 08:15:44'),(6886,'ACCOUNTING_ACCOUNT_SUPPLIER',1,'401','chaine',0,'','2019-10-04 08:15:44'),(6887,'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT',1,'421','chaine',0,'','2019-10-04 08:15:44'),(6888,'ACCOUNTING_PRODUCT_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6889,'ACCOUNTING_PRODUCT_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6890,'ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6891,'ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6892,'ACCOUNTING_SERVICE_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6893,'ACCOUNTING_SERVICE_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6894,'ACCOUNTING_VAT_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6895,'ACCOUNTING_VAT_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6896,'ACCOUNTING_VAT_PAY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6897,'ACCOUNTING_ACCOUNT_SUSPENSE',1,'471','chaine',0,'','2019-10-04 08:15:44'),(6898,'ACCOUNTING_ACCOUNT_TRANSFER_CASH',1,'58','chaine',0,'','2019-10-04 08:15:44'),(6899,'DONATION_ACCOUNTINGACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6900,'ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6901,'LOAN_ACCOUNTING_ACCOUNT_CAPITAL',1,'164','chaine',0,'','2019-10-04 08:15:44'),(6902,'LOAN_ACCOUNTING_ACCOUNT_INTEREST',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6903,'LOAN_ACCOUNTING_ACCOUNT_INSURANCE',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6912,'TICKET_ENABLE_PUBLIC_INTERFACE',1,'1','chaine',0,'','2019-10-04 11:44:33'),(6934,'TICKET_NOTIFICATION_EMAIL_FROM',1,'fff','chaine',0,'','2019-10-04 12:03:51'),(6935,'TICKET_NOTIFICATION_EMAIL_TO',1,'ff','chaine',0,'','2019-10-04 12:03:51'),(6936,'TICKET_MESSAGE_MAIL_INTRO',1,'Hello,
\r\nA new response was sent on a ticket that you contact. Here is the message:\"\"','chaine',0,'','2019-10-04 12:03:51'),(6937,'TICKET_MESSAGE_MAIL_SIGNATURE',1,'

Sincerely,

\r\n\r\n

--\"\"

\r\n','chaine',0,'','2019-10-04 12:03:51'),(7027,'USER_PASSWORD_GENERATED',1,'Perso','chaine',0,'','2019-10-07 10:52:46'),(7028,'USER_PASSWORD_PATTERN',1,'12;1;0;1;0;1','chaine',0,'','2019-10-07 10:57:03'),(7034,'BOM_ADDON',1,'mod_bom_standard','chaine',0,'Name of numbering rules of BOM','2019-10-08 18:49:41'),(7035,'BOM_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/boms','chaine',0,NULL,'2019-10-08 18:49:41'),(7036,'MAIN_MODULE_GEOIPMAXMIND',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-10-08 18:51:54'),(7037,'MAIN_MODULE_DAV',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-10-08 18:54:07'),(7122,'BOM_ADDON_PDF',1,'generic_bom_odt','chaine',0,'','2019-11-28 14:00:58'),(7195,'MAIN_AGENDA_ACTIONAUTO_MO_VALIDATE',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7196,'MAIN_AGENDA_ACTIONAUTO_MO_PRODUCED',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7197,'MAIN_AGENDA_ACTIONAUTO_MO_DELETE',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7198,'MAIN_AGENDA_ACTIONAUTO_MO_CANCEL',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7201,'TICKET_PUBLIC_INTERFACE_TOPIC',1,'MyBigCompany public interface for Ticket','chaine',0,'','2019-11-29 08:49:36'),(7202,'TICKET_PUBLIC_TEXT_HOME',1,'You can create a support ticket or view existing from its identifier tracking ticket.','chaine',0,'','2019-11-29 08:49:36'),(7203,'TICKET_PUBLIC_TEXT_HELP_MESSAGE',1,'Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request.','chaine',0,'','2019-11-29 08:49:36'),(7204,'TICKET_MESSAGE_MAIL_NEW',1,'TicketMessageMailNewText','chaine',0,'','2019-11-29 08:49:36'),(7220,'MRP_MO_ADDON',1,'mod_mo_standard','chaine',0,'Name of numbering rules of MO','2019-11-29 08:57:42'),(7221,'MRP_MO_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/mrps','chaine',0,NULL,'2019-11-29 08:57:42'),(7222,'MRP_MO_ADDON_PDF',1,'generic_mo_odt','chaine',0,'','2019-11-29 08:57:47'),(7254,'MAIN_INFO_OPENINGHOURS_MONDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7255,'MAIN_INFO_OPENINGHOURS_TUESDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7256,'MAIN_INFO_OPENINGHOURS_WEDNESDAY',1,'8-13','chaine',0,'','2019-12-19 11:14:21'),(7257,'MAIN_INFO_OPENINGHOURS_THURSDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7258,'MAIN_INFO_OPENINGHOURS_FRIDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7264,'MAIN_INFO_ACCOUNTANT_NAME',1,'Bob Bookkeeper','chaine',0,'','2019-12-19 11:14:54'),(7265,'MAIN_INFO_ACCOUNTANT_TOWN',1,'Berlin','chaine',0,'','2019-12-19 11:14:54'),(7266,'MAIN_INFO_ACCOUNTANT_STATE',1,'0','chaine',0,'','2019-12-19 11:14:54'),(7267,'MAIN_INFO_ACCOUNTANT_COUNTRY',1,'5','chaine',0,'','2019-12-19 11:14:54'),(7268,'MAIN_INFO_ACCOUNTANT_MAIL',1,'mybookkeeper@example.com','chaine',0,'','2019-12-19 11:14:54'),(7313,'MODULEBUILDER_ASCIIDOCTOR',1,'asciidoctor','chaine',0,'','2019-12-20 10:57:21'),(7314,'MODULEBUILDER_ASCIIDOCTORPDF',1,'asciidoctor-pdf','chaine',0,'','2019-12-20 10:57:21'),(7337,'EXTERNAL_RSS_TITLE_1',1,'Dolibarr.org News','chaine',0,'','2019-12-20 12:10:38'),(7338,'EXTERNAL_RSS_URLRSS_1',1,'https://www.dolibarr.org/rss','chaine',0,'','2019-12-20 12:10:38'),(7339,'EXPENSEREPORT_ADDON',1,'mod_expensereport_jade','chaine',0,'','2019-12-20 16:33:46'),(7378,'COMPANY_USE_SEARCH_TO_SELECT',1,'0','chaine',0,'','2019-12-21 15:54:22'),(7420,'CASHDESK_SERVICES',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7421,'TAKEPOS_ROOT_CATEGORY_ID',1,'31','chaine',0,'','2019-12-23 12:15:06'),(7422,'TAKEPOSCONNECTOR',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7423,'TAKEPOS_BAR_RESTAURANT',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7424,'TAKEPOS_TICKET_VAT_GROUPPED',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7425,'TAKEPOS_AUTO_PRINT_TICKETS',1,'0','int',0,'','2019-12-23 12:15:06'),(7426,'TAKEPOS_NUMPAD',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7427,'TAKEPOS_NUM_TERMINALS',1,'1','chaine',0,'','2019-12-23 12:15:06'),(7428,'TAKEPOS_DIRECT_PAYMENT',1,'0','int',0,'','2019-12-23 12:15:06'),(7429,'TAKEPOS_CUSTOM_RECEIPT',1,'0','int',0,'','2019-12-23 12:15:06'),(7430,'TAKEPOS_EMAIL_TEMPLATE_INVOICE',1,'-1','chaine',0,'','2019-12-23 12:15:06'),(7452,'MEMBER_ENABLE_PUBLIC',1,'1','chaine',0,'','2020-01-01 10:31:46'),(7453,'MEMBER_NEWFORM_AMOUNT',1,'20','chaine',0,'','2020-01-01 10:31:46'),(7454,'MEMBER_NEWFORM_EDITAMOUNT',1,'0','chaine',0,'','2020-01-01 10:31:46'),(7455,'MEMBER_NEWFORM_PAYONLINE',1,'all','chaine',0,'','2020-01-01 10:31:46'),(7456,'MEMBER_NEWFORM_FORCETYPE',1,'1','chaine',0,'','2020-01-01 10:31:46'),(7470,'STRIPE_TEST_PUBLISHABLE_KEY',1,'pk_test_123456789','chaine',0,'','2020-01-01 11:43:44'),(7471,'STRIPE_TEST_SECRET_KEY',1,'sk_test_123456','chaine',0,'','2020-01-01 11:43:44'),(7472,'STRIPE_BANK_ACCOUNT_FOR_PAYMENTS',1,'4','chaine',0,'','2020-01-01 11:43:44'),(7473,'STRIPE_USER_ACCOUNT_FOR_ACTIONS',1,'1','chaine',0,'','2020-01-01 11:43:44'),(7489,'CAPTURESERVER_SECURITY_KEY',1,'securitykey123','chaine',0,'','2020-01-01 12:00:49'),(8136,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_DELETE',1,'1','chaine',0,'','2020-01-02 19:56:28'),(8190,'ACCOUNTING_PRODUCT_MODE',1,'ACCOUNTANCY_SELL_EXPORT','chaine',0,'','2020-01-06 01:23:30'),(8191,'MAIN_ENABLE_DEFAULT_VALUES',1,'1','chaine',0,'','2020-01-06 16:09:52'),(8210,'CABINETMED_RHEUMATOLOGY_ON',1,'0','texte',0,'','2020-01-06 16:51:43'),(8213,'MAIN_SEARCHFORM_SOCIETE',1,'1','texte',0,'','2020-01-06 16:51:43'),(8214,'CABINETMED_BANK_PATIENT_REQUIRED',1,'0','texte',0,'','2020-01-06 16:51:43'),(8215,'DIAGNOSTIC_IS_NOT_MANDATORY',1,'1','texte',0,'','2020-01-06 16:51:43'),(8216,'USER_ADDON_PDF_ODT',1,'generic_user_odt','chaine',0,'','2020-01-07 13:45:19'),(8217,'USERGROUP_ADDON_PDF_ODT',1,'generic_usergroup_odt','chaine',0,'','2020-01-07 13:45:23'),(8230,'MAIN_MODULE_EMAILCOLLECTOR',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-12 20:13:55'),(8232,'MAIN_MODULE_SUPPLIERPROPOSAL',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-13 14:37:09'),(8233,'MAIN_MODULE_EXPEDITION',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-13 14:38:20'),(8252,'SYSTEMTOOLS_MYSQLDUMP',1,'/usr/bin/mysqldump','chaine',0,'','2020-01-15 15:42:41'),(8259,'ACCOUNTING_REEXPORT',1,'1','yesno',0,'','2020-01-17 13:42:56'),(8291,'PRODUIT_MULTIPRICES_LIMIT',1,'5','chaine',0,'','2020-01-17 14:21:46'),(8293,'PRODUIT_CUSTOMER_PRICES_BY_QTY',1,'0','chaine',0,'','2020-01-17 14:21:46'),(8303,'PRODUCT_PRICE_UNIQ',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8304,'PRODUIT_MULTIPRICES',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8305,'PRODUIT_CUSTOMER_PRICES',1,'1','chaine',0,'','2020-01-17 14:25:30'),(8306,'PRODUIT_SOUSPRODUITS',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8307,'PRODUIT_DESC_IN_FORM',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8308,'PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8309,'PRODUIT_USE_SEARCH_TO_SELECT',1,'1','chaine',0,'','2020-01-17 14:25:30'),(8310,'PRODUIT_FOURN_TEXTS',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8313,'MAIN_MODULE_FCKEDITOR',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-18 17:13:27'),(8314,'FCKEDITOR_ENABLE_TICKET',1,'1','chaine',0,'','2020-01-18 19:39:54'),(8321,'FCKEDITOR_SKIN',1,'moono-lisa','chaine',0,'','2020-01-18 19:41:15'),(8322,'FCKEDITOR_TEST',1,'Test < aaa
\r\n
\r\n\"\"','chaine',0,'','2020-01-18 19:41:15'),(8486,'MAIN_MULTILANGS',1,'1','chaine',0,'','2020-01-21 09:40:00'),(8491,'MAIN_DISABLE_JAVASCRIPT',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8492,'MAIN_BUTTON_HIDE_UNAUTHORIZED',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8496,'MAIN_SHOW_LOGO',1,'1','chaine',0,'','2020-01-21 09:40:00'),(8498,'MAIN_HELPCENTER_DISABLELINK',0,'0','chaine',0,'','2020-01-21 09:40:00'),(8501,'MAIN_BUGTRACK_ENABLELINK',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8554,'MAIN_INFO_SOCIETE_FACEBOOK_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8555,'MAIN_INFO_SOCIETE_TWITTER_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8556,'MAIN_INFO_SOCIETE_LINKEDIN_URL',1,'https://www.linkedin.com/company/9400559/admin/','chaine',0,'','2020-06-12 17:24:42'),(8557,'MAIN_INFO_SOCIETE_INSTAGRAM_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8558,'MAIN_INFO_SOCIETE_YOUTUBE_URL',1,'DolibarrERPCRM','chaine',0,'','2020-06-12 17:24:42'),(8559,'MAIN_INFO_SOCIETE_GITHUB_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8577,'PRODUCT_PRICE_BASE_TYPE',0,'HT','string',0,NULL,'2020-12-10 12:24:38'),(8612,'MAIN_UPLOAD_DOC',1,'50000','chaine',0,'','2020-12-10 12:26:31'),(8613,'MAIN_UMASK',1,'0664','chaine',0,'','2020-12-10 12:26:31'),(8614,'MAIN_ANTIVIRUS_PARAM',1,'--fdpass','chaine',0,'','2020-12-10 12:26:31'),(8619,'WEBSITE_EDITINLINE',1,'0','chaine',0,'','2020-12-10 12:27:05'),(8633,'MAIN_MODULE_RECEPTION',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:30:13'),(8634,'RECEPTION_ADDON_PDF',1,'squille','chaine',0,'Nom du gestionnaire de generation des bons receptions en PDF','2020-12-10 12:30:13'),(8635,'RECEPTION_ADDON_NUMBER',1,'mod_reception_beryl','chaine',0,'Name for numbering manager for receptions','2020-12-10 12:30:13'),(8636,'RECEPTION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/receptions','chaine',0,NULL,'2020-12-10 12:30:13'),(8637,'MAIN_SUBMODULE_RECEPTION',1,'1','chaine',0,'Enable receptions','2020-12-10 12:30:13'),(8638,'MAIN_MODULE_PAYMENTBYBANKTRANSFER',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:30:17'),(8640,'MAIN_MODULE_MARGIN_TABS_0',1,'product:+margin:Margins:margins:$user->rights->margins->liretous:/margin/tabs/productMargins.php?id=__ID__','chaine',0,NULL,'2020-12-10 12:30:20'),(8641,'MAIN_MODULE_MARGIN_TABS_1',1,'thirdparty:+margin:Margins:margins:empty($user->socid) && $user->rights->margins->liretous && ($object->client > 0):/margin/tabs/thirdpartyMargins.php?socid=__ID__','chaine',0,NULL,'2020-12-10 12:30:20'),(8644,'MAIN_MODULE_INCOTERM',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:31:36'),(8645,'INCOTERM_ACTIVATE',1,'','chaine',0,'Description de INCOTERM_ACTIVATE','2020-12-10 12:31:36'),(8715,'SYSLOG_LEVEL',0,'5','chaine',0,'','2021-04-15 10:34:05'),(8716,'MAIN_SECURITY_HASH_ALGO',1,'password_hash','chaine',1,'','2021-04-15 10:38:33'),(8717,'MAIN_INFO_SOCIETE_COUNTRY',1,'117:IN:India','chaine',0,'','2021-04-15 10:46:30'),(8718,'MAIN_INFO_SOCIETE_NOM',1,'MyBigCompany','chaine',0,'','2021-04-15 10:46:30'),(8719,'MAIN_INFO_SOCIETE_ADDRESS',1,'21 Jump street.','chaine',0,'','2021-04-15 10:46:30'),(8720,'MAIN_INFO_SOCIETE_TOWN',1,'MyTown','chaine',0,'','2021-04-15 10:46:30'),(8721,'MAIN_INFO_SOCIETE_ZIP',1,'75500','chaine',0,'','2021-04-15 10:46:30'),(8722,'MAIN_MONNAIE',1,'EUR','chaine',0,'','2021-04-15 10:46:30'),(8723,'MAIN_INFO_SOCIETE_TEL',1,'09123123','chaine',0,'','2021-04-15 10:46:30'),(8724,'MAIN_INFO_SOCIETE_FAX',1,'09123124','chaine',0,'','2021-04-15 10:46:30'),(8725,'MAIN_INFO_SOCIETE_MAIL',1,'myemail@mybigcompany.com','chaine',0,'','2021-04-15 10:46:30'),(8726,'MAIN_INFO_SOCIETE_WEB',1,'https://www.dolibarr.org','chaine',0,'','2021-04-15 10:46:30'),(8727,'MAIN_INFO_SOCIETE_NOTE',1,'This is note about my company','chaine',0,'','2021-04-15 10:46:30'),(8728,'MAIN_INFO_SOCIETE_LOGO_SQUARRED',1,'mybigcompany_squarred.png','chaine',0,'','2021-04-15 10:46:30'),(8729,'MAIN_INFO_SOCIETE_LOGO_SQUARRED_SMALL',1,'mybigcompany_squarred_small.png','chaine',0,'','2021-04-15 10:46:30'),(8730,'MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI',1,'mybigcompany_squarred_mini.png','chaine',0,'','2021-04-15 10:46:30'),(8731,'MAIN_INFO_SOCIETE_MANAGERS',1,'Zack Zeceo','chaine',0,'','2021-04-15 10:46:30'),(8732,'MAIN_INFO_GDPR',1,'Zack Zeceo','chaine',0,'','2021-04-15 10:46:30'),(8733,'MAIN_INFO_CAPITAL',1,'10000','chaine',0,'','2021-04-15 10:46:30'),(8734,'MAIN_INFO_SOCIETE_FORME_JURIDIQUE',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8735,'MAIN_INFO_SIREN',1,'123456','chaine',0,'','2021-04-15 10:46:30'),(8736,'MAIN_INFO_SIRET',1,'ABC-DEF','chaine',0,'','2021-04-15 10:46:30'),(8737,'MAIN_INFO_APE',1,'15E-45-8D','chaine',0,'','2021-04-15 10:46:30'),(8738,'MAIN_INFO_TVAINTRA',1,'FR12345678','chaine',0,'','2021-04-15 10:46:30'),(8739,'MAIN_INFO_SOCIETE_OBJECT',1,'A company demo to show how Dolibarr ERP CRM is wonderfull','chaine',0,'','2021-04-15 10:46:30'),(8740,'SOCIETE_FISCAL_MONTH_START',1,'4','chaine',0,'','2021-04-15 10:46:30'),(8741,'FACTURE_TVAOPTION',1,'1','chaine',0,'','2021-04-15 10:46:30'),(8742,'FACTURE_LOCAL_TAX1_OPTION',1,'localtax1on','chaine',0,'','2021-04-15 10:46:30'),(8743,'FACTURE_LOCAL_TAX2_OPTION',1,'localtax2on','chaine',0,'','2021-04-15 10:46:30'),(8744,'MAIN_INFO_VALUE_LOCALTAX1',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8745,'MAIN_INFO_LOCALTAX_CALC1',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8746,'MAIN_INFO_VALUE_LOCALTAX2',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8747,'MAIN_INFO_LOCALTAX_CALC2',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8759,'MAIN_LOGIN_BACKGROUND',1,'background_dolibarr.jpg','chaine',0,'','2021-04-15 10:54:37'),(8760,'MAIN_LANG_DEFAULT',1,'auto','chaine',0,'','2021-04-15 10:56:30'),(8762,'MAIN_THEME',1,'eldy','chaine',0,'','2021-04-15 10:56:30'),(8763,'THEME_ELDY_USE_HOVER',1,'237,244,251','chaine',0,'','2021-04-15 10:56:30'),(8764,'MAIN_SIZE_LISTE_LIMIT',1,'25','chaine',0,'','2021-04-15 10:56:30'),(8765,'MAIN_SIZE_SHORTLIST_LIMIT',1,'3','chaine',0,'','2021-04-15 10:56:30'),(8766,'MAIN_START_WEEK',1,'1','chaine',0,'','2021-04-15 10:56:30'),(8767,'MAIN_DEFAULT_WORKING_DAYS',1,'1-5','chaine',0,'','2021-04-15 10:56:30'),(8768,'MAIN_DEFAULT_WORKING_HOURS',1,'9-18','chaine',0,'','2021-04-15 10:56:30'),(8769,'MAIN_FIRSTNAME_NAME_POSITION',1,'0','chaine',0,'','2021-04-15 10:56:30'),(8770,'MAIN_HOME',1,'__(NoteSomeFeaturesAreDisabled)__
\r\n__(SomeTranslationAreUncomplete)__','chaine',0,'','2021-04-15 10:56:30'),(8771,'MAIN_FEATURES_LEVEL',0,'0','chaine',1,'Level of features to show (0=stable only, 1=stable+experimental, 2=stable+experimental+development','2021-04-15 11:46:30'),(8877,'AGENDA_REMINDER_BROWSER',1,'1','chaine',0,'','2021-04-15 13:32:29'),(9008,'MAIN_MODULE_KNOWLEDGEMANAGEMENT',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:39:27'),(9009,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9010,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_LOGIN',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9011,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9012,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MENUS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9013,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_TPL',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9014,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_BARCODE',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9015,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MODELS',1,'1','chaine',0,NULL,'2022-02-07 13:39:27'),(9016,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_PRINTING',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9017,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_THEME',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9018,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9021,'WEBSITE_SUBCONTAINERSINLINE',1,'1','chaine',0,'','2022-02-07 13:57:11'),(9022,'PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT',1,'1','chaine',0,'','2022-02-07 14:17:28'),(9023,'PAYMENTBYBANKTRANSFER_USER',1,'13','chaine',0,'','2022-02-07 14:17:28'),(9025,'MAIN_MODULE_BLOCKEDLOG',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 14:32:50'),(9026,'MAIN_IHM_PARAMS_REV',1,'16','chaine',0,'','2022-02-07 14:32:50'),(9141,'MAIN_AGENDA_ACTIONAUTO_COMPANY_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9142,'MAIN_AGENDA_ACTIONAUTO_COMPANY_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9143,'MAIN_AGENDA_ACTIONAUTO_COMPANY_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9144,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9145,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_SIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9146,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_REFUSED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9147,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9148,'MAIN_AGENDA_ACTIONAUTO_PROPAL_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9149,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9150,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9151,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9152,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9153,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9154,'MAIN_AGENDA_ACTIONAUTO_ORDER_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9155,'MAIN_AGENDA_ACTIONAUTO_ORDER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9156,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9157,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9158,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9159,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9160,'MAIN_AGENDA_ACTIONAUTO_BILL_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9161,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9162,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9163,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9164,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9165,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_CLOSE_SIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9166,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_CLOSE_REFUSED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9167,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9168,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9169,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9170,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9171,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SUBMIT',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9172,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_RECEIVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9173,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_REFUSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9174,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9175,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9176,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9177,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9178,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9179,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9180,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_PAYED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9181,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_CANCELED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9182,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9183,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9184,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9185,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9186,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9187,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9188,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_REOPEN',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9189,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9190,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9191,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9192,'MAIN_AGENDA_ACTIONAUTO_MEMBER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9193,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9194,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9195,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9196,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9197,'MAIN_AGENDA_ACTIONAUTO_MEMBER_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9198,'MAIN_AGENDA_ACTIONAUTO_MEMBER_RESILIATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9199,'MAIN_AGENDA_ACTIONAUTO_MEMBER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9200,'MAIN_AGENDA_ACTIONAUTO_MEMBER_EXCLUDE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9201,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9202,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9203,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9204,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9205,'MAIN_AGENDA_ACTIONAUTO_TASK_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9206,'MAIN_AGENDA_ACTIONAUTO_TASK_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9207,'MAIN_AGENDA_ACTIONAUTO_TASK_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9208,'MAIN_AGENDA_ACTIONAUTO_CONTACT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9209,'MAIN_AGENDA_ACTIONAUTO_CONTACT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9210,'MAIN_AGENDA_ACTIONAUTO_CONTACT_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9211,'MAIN_AGENDA_ACTIONAUTO_CONTACT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9212,'MAIN_AGENDA_ACTIONAUTO_PROJECT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9213,'MAIN_AGENDA_ACTIONAUTO_PROJECT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9214,'MAIN_AGENDA_ACTIONAUTO_PROJECT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9215,'MAIN_AGENDA_ACTIONAUTO_TICKET_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9216,'MAIN_AGENDA_ACTIONAUTO_TICKET_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9217,'MAIN_AGENDA_ACTIONAUTO_TICKET_ASSIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9218,'MAIN_AGENDA_ACTIONAUTO_TICKET_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9219,'MAIN_AGENDA_ACTIONAUTO_TICKET_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9220,'MAIN_AGENDA_ACTIONAUTO_TICKET_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9221,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9222,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9223,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9224,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9225,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_PAID',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9226,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9227,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9228,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9229,'MAIN_AGENDA_ACTIONAUTO_USER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9230,'MAIN_AGENDA_ACTIONAUTO_USER_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9231,'MAIN_AGENDA_ACTIONAUTO_USER_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9232,'MAIN_AGENDA_ACTIONAUTO_USER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9233,'MAIN_AGENDA_ACTIONAUTO_USER_NEW_PASSWORD',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9234,'MAIN_AGENDA_ACTIONAUTO_USER_ENABLEDISABLE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9235,'MAIN_AGENDA_ACTIONAUTO_BOM_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9236,'MAIN_AGENDA_ACTIONAUTO_BOM_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9237,'MAIN_AGENDA_ACTIONAUTO_BOM_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9238,'MAIN_AGENDA_ACTIONAUTO_BOM_REOPEN',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9239,'MAIN_AGENDA_ACTIONAUTO_BOM_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9240,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9241,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_PRODUCED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9242,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9243,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9244,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9245,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9246,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9247,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9248,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9249,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9250,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9251,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9252,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9253,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9254,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9293,'RECRUITMENT_RECRUITMENTJOBPOSITION_ADDON',1,'mod_recruitmentjobposition_standard','chaine',0,'Name of manager to generate recruitment job position ref number','2022-07-04 01:12:19'),(9294,'RECRUITMENT_RECRUITMENTCANDIDATURE_ADDON',1,'mod_recruitmentcandidature_standard','chaine',0,'Name of manager to generate recruitment candidature ref number','2022-07-04 01:12:19'),(9451,'MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT',1,'1000','int',0,NULL,'2022-12-11 21:23:35'),(9452,'MAIN_MODULE_ACCOUNTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9453,'MAIN_MODULE_AGENDA',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9454,'MAIN_MODULE_BOM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9455,'MAIN_MODULE_BANQUE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9456,'MAIN_MODULE_BARCODE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9457,'MAIN_MODULE_CRON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9458,'MAIN_MODULE_COMMANDE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9459,'MAIN_MODULE_DON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9460,'MAIN_MODULE_ECM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9461,'MAIN_MODULE_EXPENSEREPORT',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9462,'MAIN_MODULE_FACTURE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9463,'MAIN_MODULE_FOURNISSEUR',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9464,'MAIN_MODULE_HOLIDAY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9465,'MAIN_MODULE_MARGIN',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9468,'MAIN_MODULE_MRP',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9469,'MAIN_MODULE_MRP_TRIGGERS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9470,'MAIN_MODULE_MRP_LOGIN',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9471,'MAIN_MODULE_MRP_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9472,'MAIN_MODULE_MRP_MENUS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9473,'MAIN_MODULE_MRP_TPL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9474,'MAIN_MODULE_MRP_BARCODE',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9475,'MAIN_MODULE_MRP_MODELS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9476,'MAIN_MODULE_MRP_THEME',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9477,'MAIN_MODULE_MRP_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9478,'MAIN_MODULE_OPENSURVEY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9479,'MAIN_MODULE_PRINTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9480,'MAIN_MODULE_RECRUITMENT',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9481,'MAIN_MODULE_RECRUITMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9482,'MAIN_MODULE_RECRUITMENT_LOGIN',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9483,'MAIN_MODULE_RECRUITMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9484,'MAIN_MODULE_RECRUITMENT_MENUS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9485,'MAIN_MODULE_RECRUITMENT_TPL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9486,'MAIN_MODULE_RECRUITMENT_BARCODE',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9487,'MAIN_MODULE_RECRUITMENT_MODELS',1,'1','chaine',0,NULL,'2022-12-11 21:23:43'),(9488,'MAIN_MODULE_RECRUITMENT_THEME',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9489,'MAIN_MODULE_RECRUITMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9490,'MAIN_MODULE_RESOURCE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9491,'MAIN_MODULE_SALARIES',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9492,'MAIN_MODULE_SERVICE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9493,'MAIN_MODULE_SYSLOG',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9494,'MAIN_MODULE_SOCIETE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9495,'MAIN_MODULE_STRIPE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9496,'MAIN_MODULE_TICKET',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9497,'MAIN_MODULE_TICKET_TABS_0',1,'thirdparty:+ticket:Tickets:ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__','chaine',0,NULL,'2022-12-11 21:23:44'),(9498,'MAIN_MODULE_TICKET_TRIGGERS',1,'1','chaine',0,NULL,'2022-12-11 21:23:44'),(9499,'TAKEPOS_PRINT_METHOD',1,'browser','chaine',0,'','2022-12-11 21:23:44'),(9500,'MAIN_MODULE_TAKEPOS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9501,'MAIN_MODULE_TAKEPOS_TRIGGERS',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9502,'MAIN_MODULE_TAKEPOS_LOGIN',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9503,'MAIN_MODULE_TAKEPOS_SUBSTITUTIONS',1,'1','chaine',0,NULL,'2022-12-11 21:23:44'),(9504,'MAIN_MODULE_TAKEPOS_MENUS',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9505,'MAIN_MODULE_TAKEPOS_THEME',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9506,'MAIN_MODULE_TAKEPOS_TPL',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9507,'MAIN_MODULE_TAKEPOS_BARCODE',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9508,'MAIN_MODULE_TAKEPOS_MODELS',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9509,'MAIN_MODULE_USER',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9510,'MAIN_MODULE_VARIANTS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9511,'MAIN_MODULE_WEBSITE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9512,'MAIN_VERSION_LAST_UPGRADE',0,'17.0.0-beta','chaine',0,'Dolibarr version for last upgrade','2022-12-11 21:23:48'),(9514,'MAIN_FIRST_PING_OK_DATE',1,'20221211212350','chaine',0,'','2022-12-11 21:23:50'),(9515,'MAIN_FIRST_PING_OK_ID',1,'disabled','chaine',0,'','2022-12-11 21:23:50'); /*!40000 ALTER TABLE `llx_const` ENABLE KEYS */; UNLOCK TABLES; @@ -4734,9 +5039,9 @@ DROP TABLE IF EXISTS `llx_contrat`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_contrat` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_supplier` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_supplier` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -4752,21 +5057,21 @@ CREATE TABLE `llx_contrat` ( `fk_user_author` int(11) NOT NULL DEFAULT 0, `fk_user_mise_en_service` int(11) DEFAULT NULL, `fk_user_cloture` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_customer` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, + `ref_customer` varchar(50) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_contrat_ref` (`ref`,`entity`), KEY `idx_contrat_fk_soc` (`fk_soc`), KEY `idx_contrat_fk_user_author` (`fk_user_author`), CONSTRAINT `fk_contrat_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_contrat_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4790,10 +5095,10 @@ CREATE TABLE `llx_contrat_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_contrat_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4818,8 +5123,8 @@ CREATE TABLE `llx_contratdet` ( `fk_contrat` int(11) NOT NULL, `fk_product` int(11) DEFAULT NULL, `statut` smallint(6) DEFAULT 0, - `label` text COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` text DEFAULT NULL, + `description` text DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `date_commande` datetime DEFAULT NULL, `date_ouverture_prevue` datetime DEFAULT NULL, @@ -4827,11 +5132,11 @@ CREATE TABLE `llx_contratdet` ( `date_fin_validite` datetime DEFAULT NULL, `date_cloture` datetime DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double NOT NULL, `remise_percent` double DEFAULT 0, `subprice` double(24,8) DEFAULT 0.00000000, @@ -4844,15 +5149,16 @@ CREATE TABLE `llx_contratdet` ( `total_ttc` double(24,8) DEFAULT 0.00000000, `product_type` int(11) DEFAULT 1, `info_bits` int(11) DEFAULT 0, + `rang` int(11) DEFAULT 0, `fk_product_fournisseur_price` int(11) DEFAULT NULL, `buy_price_ht` double(24,8) DEFAULT 0.00000000, `fk_user_author` int(11) NOT NULL DEFAULT 0, `fk_user_ouverture` int(11) DEFAULT NULL, `fk_user_cloture` int(11) DEFAULT NULL, - `commentaire` text COLLATE utf8_unicode_ci DEFAULT NULL, + `commentaire` text DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -4867,7 +5173,7 @@ CREATE TABLE `llx_contratdet` ( CONSTRAINT `fk_contratdet_fk_contrat` FOREIGN KEY (`fk_contrat`) REFERENCES `llx_contrat` (`rowid`), CONSTRAINT `fk_contratdet_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`), CONSTRAINT `fk_contratdet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4876,7 +5182,7 @@ CREATE TABLE `llx_contratdet` ( LOCK TABLES `llx_contratdet` WRITE; /*!40000 ALTER TABLE `llx_contratdet` DISABLE KEYS */; -INSERT INTO `llx_contratdet` VALUES (2,'2012-07-10 16:14:14',2,NULL,0,'','Abonnement annuel assurance',NULL,NULL,'2012-07-10 00:00:00',NULL,'2013-07-10 00:00:00',NULL,1.000,'',0.000,'',0.000,'',1,0,10.00000000,10,0,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,1,0,NULL,0.00000000,0,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,'2015-03-05 10:20:58',2,3,5,'','gdfg',NULL,NULL,'2012-07-10 00:00:00','2012-07-10 12:00:00','2013-07-09 00:00:00','2015-03-06 12:00:00',4.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,'2014-12-08 13:11:17',2,3,0,'','',NULL,NULL,'2012-07-10 00:00:00',NULL,NULL,NULL,0.000,'',0.000,'',0.000,'',1,10,40.00000000,40,NULL,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,0,NULL,0.00000000,0,NULL,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,'2015-03-06 09:05:40',3,NULL,4,'','gfdg',NULL,NULL,NULL,'2015-03-06 12:00:00','2015-03-07 12:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(15,'2020-01-13 14:56:58',1,NULL,0,'','aaa',NULL,NULL,NULL,NULL,NULL,NULL,0.000,'CGST+SGST',9.000,'0',9.000,'0',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,NULL,0.00000000,0,NULL,12,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(16,'2020-01-13 14:56:53',1,NULL,0,'','aaa',NULL,NULL,NULL,NULL,NULL,NULL,18.000,'IGST',0.000,'1',0.000,'1',1,0,10.00000000,10,NULL,10.00000000,1.80000000,0.00000000,0.00000000,11.80000000,1,0,NULL,0.00000000,0,NULL,12,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000); +INSERT INTO `llx_contratdet` VALUES (2,'2022-12-11 21:23:42',2,NULL,0,'','Abonnement annuel assurance',NULL,NULL,'2012-07-10 00:00:00',NULL,'2013-07-10 00:00:00',NULL,1.000,'',0.000,'',0.000,'',1,0,10.00000000,10,0,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,1,0,1,NULL,0.00000000,0,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,'2022-12-11 21:23:42',2,3,5,'','gdfg',NULL,NULL,'2012-07-10 00:00:00','2012-07-10 12:00:00','2013-07-09 00:00:00','2015-03-06 12:00:00',4.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,2,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,'2022-12-11 21:23:42',2,3,0,'','',NULL,NULL,'2012-07-10 00:00:00',NULL,NULL,NULL,0.000,'',0.000,'',0.000,'',1,10,40.00000000,40,NULL,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,0,3,NULL,0.00000000,0,NULL,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,'2022-12-11 21:23:42',3,NULL,4,'','gfdg',NULL,NULL,NULL,'2015-03-06 12:00:00','2015-03-07 12:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,1,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(15,'2022-12-11 21:23:42',1,NULL,0,'','aaa',NULL,NULL,NULL,NULL,NULL,NULL,0.000,'CGST+SGST',9.000,'0',9.000,'0',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,1,NULL,0.00000000,0,NULL,12,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(16,'2022-12-11 21:23:42',1,NULL,0,'','aaa',NULL,NULL,NULL,NULL,NULL,NULL,18.000,'IGST',0.000,'1',0.000,'1',1,0,10.00000000,10,NULL,10.00000000,1.80000000,0.00000000,0.00000000,11.80000000,1,0,2,NULL,0.00000000,0,NULL,12,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000); /*!40000 ALTER TABLE `llx_contratdet` ENABLE KEYS */; UNLOCK TABLES; @@ -4891,10 +5197,10 @@ CREATE TABLE `llx_contratdet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_contratdet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4920,12 +5226,12 @@ CREATE TABLE `llx_contratdet_log` ( `date` datetime NOT NULL, `statut` smallint(6) NOT NULL, `fk_user_author` int(11) NOT NULL, - `commentaire` text COLLATE utf8_unicode_ci DEFAULT NULL, + `commentaire` text DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_contratdet_log_fk_contratdet` (`fk_contratdet`), KEY `idx_contratdet_log_date` (`date`), CONSTRAINT `fk_contratdet_log_fk_contratdet` FOREIGN KEY (`fk_contratdet`) REFERENCES `llx_contratdet` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4948,39 +5254,42 @@ CREATE TABLE `llx_cronjob` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, - `jobtype` varchar(10) COLLATE utf8_unicode_ci NOT NULL, - `label` text COLLATE utf8_unicode_ci NOT NULL, - `command` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `classesname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `objectname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `methodename` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `params` text COLLATE utf8_unicode_ci DEFAULT NULL, - `md5params` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `module_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `jobtype` varchar(10) NOT NULL, + `label` varchar(255) NOT NULL, + `command` varchar(255) DEFAULT NULL, + `classesname` varchar(255) DEFAULT NULL, + `objectname` varchar(255) DEFAULT NULL, + `methodename` varchar(255) DEFAULT NULL, + `params` text DEFAULT NULL, + `md5params` varchar(32) DEFAULT NULL, + `module_name` varchar(255) DEFAULT NULL, `priority` int(11) DEFAULT 0, `datelastrun` datetime DEFAULT NULL, `datenextrun` datetime DEFAULT NULL, `datestart` datetime DEFAULT NULL, `dateend` datetime DEFAULT NULL, `datelastresult` datetime DEFAULT NULL, - `lastresult` text COLLATE utf8_unicode_ci DEFAULT NULL, - `lastoutput` text COLLATE utf8_unicode_ci DEFAULT NULL, - `unitfrequency` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '3600', + `lastresult` text DEFAULT NULL, + `lastoutput` text DEFAULT NULL, + `unitfrequency` varchar(255) NOT NULL DEFAULT '3600', `frequency` int(11) NOT NULL DEFAULT 0, `nbrun` int(11) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT 1, `fk_user_author` int(11) DEFAULT NULL, `fk_user_mod` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `libname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, + `libname` varchar(255) DEFAULT NULL, `entity` int(11) DEFAULT 0, `maxrun` int(11) NOT NULL DEFAULT 0, `autodelete` int(11) DEFAULT 0, `fk_mailing` int(11) DEFAULT NULL, - `test` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1', + `test` varchar(255) DEFAULT '1', `processing` int(11) NOT NULL DEFAULT 0, - PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + `email_alert` varchar(128) DEFAULT NULL, + `pid` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_cronjob` (`label`,`entity`) +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4989,7 +5298,7 @@ CREATE TABLE `llx_cronjob` ( LOCK TABLES `llx_cronjob` WRITE; /*!40000 ALTER TABLE `llx_cronjob` DISABLE KEYS */; -INSERT INTO `llx_cronjob` VALUES (1,'2015-03-23 18:18:39','2015-03-23 19:18:39','command','aaa','aaaa','','','','','','',0,NULL,NULL,'2015-03-23 19:18:00',NULL,NULL,NULL,NULL,'3600',3600,0,0,1,1,'',NULL,0,0,0,NULL,'1',0),(40,'2018-11-23 11:58:15','2018-11-23 12:58:15','method','SendEmailsReminders',NULL,'comm/action/class/actioncomm.class.php','ActionComm','sendEmailsReminder',NULL,NULL,'agenda',10,NULL,NULL,'2018-11-23 12:58:15',NULL,NULL,NULL,NULL,'60',10,NULL,1,NULL,NULL,'SendEMailsReminder',NULL,1,0,0,NULL,'$conf->agenda->enabled',0),(41,'2018-11-23 11:58:16','2018-11-23 12:58:16','method','PurgeDeleteTemporaryFilesShort',NULL,'core/class/utils.class.php','Utils','purgeFiles',NULL,NULL,'cron',50,NULL,NULL,'2018-11-23 12:58:16',NULL,NULL,NULL,NULL,'604800',2,NULL,1,NULL,NULL,'PurgeDeleteTemporaryFiles',NULL,0,0,0,NULL,'1',0),(42,'2020-01-15 15:43:12','2018-11-23 12:58:16','method','MakeLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','dumpDatabase','none,auto,1,auto,10',NULL,'cron',90,'2020-01-15 19:43:12','2020-01-17 12:58:16','2018-11-23 12:58:16',NULL,'2020-01-15 19:43:12','-1','Failed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.\nFailed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.','604800',1,2,1,NULL,12,'MakeLocalDatabaseDump',NULL,0,0,0,NULL,'1',0),(43,'2018-11-23 11:58:17','2018-11-23 12:58:17','method','RecurringInvoices',NULL,'compta/facture/class/facture-rec.class.php','FactureRec','createRecurringInvoices',NULL,NULL,'facture',50,NULL,NULL,'2018-11-23 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring invoices',NULL,1,0,0,NULL,'$conf->facture->enabled',0),(45,'2020-01-01 12:00:34','2020-01-01 16:00:34','method','MyJob label',NULL,'/captureserver/class/myobject.class.php','MyObject','doScheduledJob',NULL,NULL,'captureserver',0,NULL,NULL,'2020-01-01 16:00:34',NULL,NULL,NULL,NULL,'3600',2,NULL,0,NULL,NULL,'Comment',NULL,1,0,0,NULL,'$conf->captureserver->enabled',0),(46,'2020-01-12 20:13:55','2020-01-13 00:13:55','method','Email collector',NULL,'/emailcollector/class/emailcollector.class.php','EmailCollector','doCollect',NULL,NULL,'emailcollector',50,NULL,NULL,'2020-01-13 00:13:55',NULL,NULL,NULL,NULL,'60',5,NULL,1,NULL,NULL,'Comment',NULL,1,0,0,NULL,'$conf->emailcollector->enabled',0),(47,'2021-04-15 10:34:00','2021-04-15 07:34:00','method','CompressSyslogs',NULL,'core/class/utils.class.php','Utils','compressSyslogs',NULL,NULL,'syslog',50,NULL,NULL,'2021-04-15 07:34:00',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Compress and archive log files. The number of versions to keep is defined into the setup of module. Warning: Main application cron script must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission \"rws\" on this directory so log files will always have the group and permissions of the web server Operating System group.',NULL,1,0,0,NULL,'1',0),(48,'2021-07-11 17:49:46','2021-07-11 19:49:46','method','SendEmailsRemindersOnInvoiceDueDate',NULL,'compta/facture/class/facture.class.php','Facture','sendEmailsRemindersOnInvoiceDueDate','10,all,EmailTemplateCode',NULL,'facture',50,NULL,NULL,'2021-07-11 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Send an emails when the unpaid invoices reach a due date + n days = today. First param is the offset n of days, second parameter is \"all\" or a payment mode code, last paramater is the code of email template to use (an email template with EmailTemplateCode must exists. the version in the language of the thirdparty will be used in priority).',NULL,1,0,0,NULL,'$conf->facture->enabled',0),(49,'2022-02-07 13:38:17','2022-02-07 13:38:17','method','HolidayBalanceMonthlyUpdate',NULL,'holiday/class/holiday.class.php','Holiday','updateBalance',NULL,NULL,'holiday',50,NULL,NULL,'2022-02-07 04:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Update holiday balance every month',NULL,1,0,0,NULL,'$conf->holiday->enabled',0); +INSERT INTO `llx_cronjob` VALUES (1,'2015-03-23 18:18:39','2015-03-23 19:18:39','command','aaa','aaaa','','','','','','',0,NULL,NULL,'2015-03-23 19:18:00',NULL,NULL,NULL,NULL,'3600',3600,0,0,1,1,'',NULL,0,0,0,NULL,'1',0,NULL,NULL),(40,'2018-11-23 11:58:15','2018-11-23 12:58:15','method','SendEmailsReminders',NULL,'comm/action/class/actioncomm.class.php','ActionComm','sendEmailsReminder',NULL,NULL,'agenda',10,NULL,NULL,'2018-11-23 12:58:15',NULL,NULL,NULL,NULL,'60',10,NULL,1,NULL,NULL,'SendEMailsReminder',NULL,1,0,0,NULL,'$conf->agenda->enabled',0,NULL,NULL),(41,'2018-11-23 11:58:16','2018-11-23 12:58:16','method','PurgeDeleteTemporaryFilesShort',NULL,'core/class/utils.class.php','Utils','purgeFiles',NULL,NULL,'cron',50,NULL,NULL,'2018-11-23 12:58:16',NULL,NULL,NULL,NULL,'604800',2,NULL,1,NULL,NULL,'PurgeDeleteTemporaryFiles',NULL,0,0,0,NULL,'1',0,NULL,NULL),(42,'2020-01-15 15:43:12','2018-11-23 12:58:16','method','MakeLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','dumpDatabase','none,auto,1,auto,10',NULL,'cron',90,'2020-01-15 19:43:12','2020-01-17 12:58:16','2018-11-23 12:58:16',NULL,'2020-01-15 19:43:12','-1','Failed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.\nFailed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.','604800',1,2,1,NULL,12,'MakeLocalDatabaseDump',NULL,0,0,0,NULL,'1',0,NULL,NULL),(43,'2022-07-04 01:11:54','2018-11-23 12:58:17','method','RecurringInvoicesJob',NULL,'compta/facture/class/facture-rec.class.php','FactureRec','createRecurringInvoices',NULL,NULL,'facture',50,NULL,NULL,'2018-11-23 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring invoices',NULL,1,0,0,NULL,'$conf->facture->enabled',0,NULL,NULL),(45,'2020-01-01 12:00:34','2020-01-01 16:00:34','method','MyJob label',NULL,'/captureserver/class/myobject.class.php','MyObject','doScheduledJob',NULL,NULL,'captureserver',0,NULL,NULL,'2020-01-01 16:00:34',NULL,NULL,NULL,NULL,'3600',2,NULL,0,NULL,NULL,'Comment',NULL,1,0,0,NULL,'$conf->captureserver->enabled',0,NULL,NULL),(46,'2020-01-12 20:13:55','2020-01-13 00:13:55','method','Email collector',NULL,'/emailcollector/class/emailcollector.class.php','EmailCollector','doCollect',NULL,NULL,'emailcollector',50,NULL,NULL,'2020-01-13 00:13:55',NULL,NULL,NULL,NULL,'60',5,NULL,1,NULL,NULL,'Comment',NULL,1,0,0,NULL,'$conf->emailcollector->enabled',0,NULL,NULL),(47,'2021-04-15 10:34:00','2021-04-15 07:34:00','method','CompressSyslogs',NULL,'core/class/utils.class.php','Utils','compressSyslogs',NULL,NULL,'syslog',50,NULL,NULL,'2021-04-15 07:34:00',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Compress and archive log files. The number of versions to keep is defined into the setup of module. Warning: Main application cron script must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission \"rws\" on this directory so log files will always have the group and permissions of the web server Operating System group.',NULL,1,0,0,NULL,'1',0,NULL,NULL),(48,'2021-07-11 17:49:46','2021-07-11 19:49:46','method','SendEmailsRemindersOnInvoiceDueDate',NULL,'compta/facture/class/facture.class.php','Facture','sendEmailsRemindersOnInvoiceDueDate','10,all,EmailTemplateCode',NULL,'facture',50,NULL,NULL,'2021-07-11 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Send an emails when the unpaid invoices reach a due date + n days = today. First param is the offset n of days, second parameter is \"all\" or a payment mode code, last paramater is the code of email template to use (an email template with EmailTemplateCode must exists. the version in the language of the thirdparty will be used in priority).',NULL,1,0,0,NULL,'$conf->facture->enabled',0,NULL,NULL),(49,'2022-02-07 13:38:17','2022-02-07 13:38:17','method','HolidayBalanceMonthlyUpdate',NULL,'holiday/class/holiday.class.php','Holiday','updateBalance',NULL,NULL,'holiday',50,NULL,NULL,'2022-02-07 04:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Update holiday balance every month',NULL,1,0,0,NULL,'$conf->holiday->enabled',0,NULL,NULL),(50,'2022-07-04 01:12:18','2022-07-04 01:12:18','method','MakeSendLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','sendDumpDatabase',',,,,,sql',NULL,'cron',91,NULL,NULL,'2022-07-04 01:12:18',NULL,NULL,NULL,NULL,'604800',1,NULL,0,NULL,NULL,'MakeSendLocalDatabaseDump',NULL,0,0,0,NULL,'!empty($conf->global->MAIN_ALLOW_BACKUP_BY_EMAIL) && in_array($conf->db->type, array(\'mysql\', \'mysqli\'))',0,NULL,NULL),(51,'2022-07-04 01:12:18','2022-07-04 01:12:18','method','RecurringSupplierInvoicesJob',NULL,'fourn/class/fournisseur.facture-rec.class.php','FactureFournisseurRec','createRecurringInvoices',NULL,NULL,'fournisseur',51,NULL,NULL,'2022-07-04 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring supplier invoices',NULL,1,0,0,NULL,'',0,NULL,NULL),(52,'2022-12-11 21:23:42','2022-12-11 21:23:42','method','CleanUnfinishedCronjobShort',NULL,'core/class/utils.class.php','Utils','cleanUnfinishedCronjob',NULL,NULL,'cron',10,NULL,NULL,'2022-12-11 21:23:42',NULL,NULL,NULL,NULL,'60',5,NULL,0,NULL,NULL,'CleanUnfinishedCronjob',NULL,0,0,0,NULL,'getDolGlobalInt(\"MAIN_FEATURES_LEVEL\") >= 2',0,NULL,NULL),(53,'2022-12-11 21:23:43','2022-12-11 21:23:43','method','HolidayBalanceMonthlyUpdate:holiday',NULL,'holiday/class/holiday.class.php','Holiday','updateBalance',NULL,NULL,'holiday',50,NULL,NULL,'2022-12-11 04:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Update holiday balance every month',NULL,1,0,0,NULL,'$conf->holiday->enabled',0,NULL,NULL); /*!40000 ALTER TABLE `llx_cronjob` ENABLE KEYS */; UNLOCK TABLES; @@ -5003,14 +5312,14 @@ DROP TABLE IF EXISTS `llx_default_values`; CREATE TABLE `llx_default_values` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `type` varchar(10) DEFAULT NULL, `user_id` int(11) NOT NULL DEFAULT 0, - `page` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `param` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `value` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `page` varchar(255) DEFAULT NULL, + `param` varchar(255) DEFAULT NULL, + `value` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_default_values` (`type`,`entity`,`user_id`,`page`,`param`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5033,12 +5342,12 @@ DROP TABLE IF EXISTS `llx_delivery`; CREATE TABLE `llx_delivery` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_customer` varchar(30) DEFAULT NULL, `fk_soc` int(11) NOT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(30) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -5047,14 +5356,14 @@ CREATE TABLE `llx_delivery` ( `fk_address` int(11) DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `total_ht` double(24,8) DEFAULT 0.00000000, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_delivery_uk_ref` (`ref`,`entity`), KEY `idx_delivery_fk_soc` (`fk_soc`), @@ -5063,7 +5372,7 @@ CREATE TABLE `llx_delivery` ( CONSTRAINT `fk_delivery_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_delivery_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_delivery_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5086,10 +5395,10 @@ CREATE TABLE `llx_delivery_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_delivery_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5113,7 +5422,7 @@ CREATE TABLE `llx_deliverydet` ( `fk_delivery` int(11) DEFAULT NULL, `fk_origin_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `qty` double DEFAULT NULL, `subprice` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, @@ -5122,7 +5431,7 @@ CREATE TABLE `llx_deliverydet` ( KEY `idx_deliverydet_fk_expedition` (`fk_delivery`), KEY `idx_deliverydet_fk_delivery` (`fk_delivery`), CONSTRAINT `fk_deliverydet_fk_delivery` FOREIGN KEY (`fk_delivery`) REFERENCES `llx_delivery` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5145,10 +5454,10 @@ CREATE TABLE `llx_deliverydet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_deliverydet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5169,7 +5478,7 @@ DROP TABLE IF EXISTS `llx_deplacement`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_deplacement` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -5177,16 +5486,16 @@ CREATE TABLE `llx_deplacement` ( `fk_user` int(11) NOT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `type` varchar(12) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(12) NOT NULL, `fk_statut` int(11) NOT NULL DEFAULT 1, `km` double DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT 0, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5208,14 +5517,14 @@ DROP TABLE IF EXISTS `llx_document_model`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_document_model` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `nom` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `type` varchar(64) DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_document_model` (`nom`,`type`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=418 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=450 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5224,7 +5533,7 @@ CREATE TABLE `llx_document_model` ( LOCK TABLES `llx_document_model` WRITE; /*!40000 ALTER TABLE `llx_document_model` DISABLE KEYS */; -INSERT INTO `llx_document_model` VALUES (9,'merou',1,'shipping',NULL,NULL),(181,'generic_invoice_odt',1,'invoice','ODT templates','FACTURE_ADDON_PDF_ODT_PATH'),(193,'canelle2',1,'invoice_supplier','canelle2',NULL),(195,'canelle',1,'invoice_supplier','canelle',NULL),(198,'azur',2,'propal',NULL,NULL),(199,'html_cerfafr',2,'donation',NULL,NULL),(200,'crabe',2,'invoice',NULL,NULL),(201,'generic_odt',1,'company','ODT templates','COMPANY_ADDON_PDF_ODT_PATH'),(250,'baleine',1,'project',NULL,NULL),(255,'soleil',1,'ficheinter',NULL,NULL),(256,'azur',1,'propal',NULL,NULL),(273,'beluga',1,'project','beluga',NULL),(281,'sepamandate',1,'bankaccount','sepamandate',NULL),(299,'standard',1,'member',NULL,NULL),(319,'generic_bom_odt',1,'bom','ODT templates','BOM_ADDON_PDF_ODT_PATH'),(320,'generic_mo_odt',1,'mrp','ODT templates','MRP_MO_ADDON_PDF_ODT_PATH'),(366,'generic_user_odt',1,'user',NULL,NULL),(367,'generic_usergroup_odt',1,'group',NULL,NULL),(370,'aurore',1,'supplier_proposal',NULL,NULL),(371,'rouget',1,'shipping',NULL,NULL),(372,'typhon',1,'delivery',NULL,NULL),(393,'squille',1,'reception',NULL,NULL),(410,'einstein',1,'order',NULL,NULL),(411,'html_cerfafr',1,'donation',NULL,NULL),(412,'standard',1,'expensereport',NULL,NULL),(413,'crabe',1,'invoice',NULL,NULL),(414,'muscadet',1,'order_supplier',NULL,NULL),(415,'standard_recruitmentjobposition',1,'recruitmentjobposition',NULL,NULL),(416,'generic_recruitmentjobposition_odt',1,'recruitmentjobposition',NULL,NULL),(417,'TICKET_ADDON_PDF_ODT_PATH',1,'ticket',NULL,NULL); +INSERT INTO `llx_document_model` VALUES (9,'merou',1,'shipping',NULL,NULL),(181,'generic_invoice_odt',1,'invoice','ODT templates','FACTURE_ADDON_PDF_ODT_PATH'),(193,'canelle2',1,'invoice_supplier','canelle2',NULL),(195,'canelle',1,'invoice_supplier','canelle',NULL),(198,'azur',2,'propal',NULL,NULL),(199,'html_cerfafr',2,'donation',NULL,NULL),(200,'crabe',2,'invoice',NULL,NULL),(201,'generic_odt',1,'company','ODT templates','COMPANY_ADDON_PDF_ODT_PATH'),(250,'baleine',1,'project',NULL,NULL),(255,'soleil',1,'ficheinter',NULL,NULL),(256,'azur',1,'propal',NULL,NULL),(273,'beluga',1,'project','beluga',NULL),(281,'sepamandate',1,'bankaccount','sepamandate',NULL),(299,'standard',1,'member',NULL,NULL),(319,'generic_bom_odt',1,'bom','ODT templates','BOM_ADDON_PDF_ODT_PATH'),(320,'generic_mo_odt',1,'mrp','ODT templates','MRP_MO_ADDON_PDF_ODT_PATH'),(366,'generic_user_odt',1,'user',NULL,NULL),(367,'generic_usergroup_odt',1,'group',NULL,NULL),(370,'aurore',1,'supplier_proposal',NULL,NULL),(371,'rouget',1,'shipping',NULL,NULL),(372,'typhon',1,'delivery',NULL,NULL),(393,'squille',1,'reception',NULL,NULL),(442,'einstein',1,'order',NULL,NULL),(443,'html_cerfafr',1,'donation',NULL,NULL),(444,'standard',1,'expensereport',NULL,NULL),(445,'crabe',1,'invoice',NULL,NULL),(446,'muscadet',1,'order_supplier',NULL,NULL),(447,'standard_recruitmentjobposition',1,'recruitmentjobposition',NULL,NULL),(448,'generic_recruitmentjobposition_odt',1,'recruitmentjobposition',NULL,NULL),(449,'TICKET_ADDON_PDF_ODT_PATH',1,'ticket',NULL,NULL); /*!40000 ALTER TABLE `llx_document_model` ENABLE KEYS */; UNLOCK TABLES; @@ -5237,7 +5546,7 @@ DROP TABLE IF EXISTS `llx_don`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_don` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_statut` smallint(6) NOT NULL DEFAULT 0, @@ -5246,31 +5555,36 @@ CREATE TABLE `llx_don` ( `amount` double(24,8) DEFAULT NULL, `fk_payment` int(11) DEFAULT NULL, `paid` smallint(6) NOT NULL DEFAULT 0, - `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `societe` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` text COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `country` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `societe` varchar(50) DEFAULT NULL, + `address` text DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, + `country` varchar(50) DEFAULT NULL, `fk_country` int(11) NOT NULL, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone_mobile` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `phone` varchar(24) DEFAULT NULL, + `phone_mobile` varchar(24) DEFAULT NULL, `public` smallint(6) NOT NULL DEFAULT 1, `fk_projet` int(11) DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + PRIMARY KEY (`rowid`), + UNIQUE KEY `idx_don_uk_ref` (`ref`,`entity`), + KEY `idx_don_fk_soc` (`fk_soc`), + KEY `idx_don_fk_project` (`fk_projet`), + KEY `idx_don_fk_user_author` (`fk_user_author`), + KEY `idx_don_fk_user_valid` (`fk_user_valid`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5294,10 +5608,10 @@ CREATE TABLE `llx_don_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_don_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5318,27 +5632,27 @@ DROP TABLE IF EXISTS `llx_ecm_directories`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_ecm_directories` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_parent` int(11) DEFAULT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(255) NOT NULL, `cachenbofdoc` int(11) NOT NULL DEFAULT 0, - `fullpath` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `fullpath` varchar(750) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_c` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_c` int(11) DEFAULT NULL, `fk_user_m` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `acl` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `acl` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ecm_directories` (`label`,`fk_parent`,`entity`), KEY `idx_ecm_directories_fk_user_c` (`fk_user_c`), KEY `idx_ecm_directories_fk_user_m` (`fk_user_m`), CONSTRAINT `fk_ecm_directories_fk_user_c` FOREIGN KEY (`fk_user_c`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_ecm_directories_fk_user_m` FOREIGN KEY (`fk_user_m`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5362,10 +5676,10 @@ CREATE TABLE `llx_ecm_directories_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ecm_directories_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5386,33 +5700,33 @@ DROP TABLE IF EXISTS `llx_ecm_files`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_ecm_files` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `share` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(128) DEFAULT NULL, + `label` varchar(128) NOT NULL, + `share` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `filename` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `filepath` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `fullpath_orig` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `keywords` text COLLATE utf8_unicode_ci DEFAULT NULL, - `cover` text COLLATE utf8_unicode_ci DEFAULT NULL, - `gen_or_uploaded` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `filename` varchar(255) NOT NULL, + `filepath` varchar(255) DEFAULT NULL, + `fullpath_orig` varchar(750) DEFAULT NULL, + `description` text DEFAULT NULL, + `keywords` text DEFAULT NULL, + `cover` text DEFAULT NULL, + `gen_or_uploaded` varchar(12) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_c` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_c` int(11) DEFAULT NULL, `fk_user_m` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `acl` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `acl` text DEFAULT NULL, `position` int(11) DEFAULT NULL, - `keyword` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL, - `src_object_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `keyword` varchar(750) DEFAULT NULL, + `src_object_type` varchar(64) DEFAULT NULL, `src_object_id` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ecm_files` (`filepath`,`filename`,`entity`), KEY `idx_ecm_files_label` (`label`) -) ENGINE=InnoDB AUTO_INCREMENT=161 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=161 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5436,10 +5750,10 @@ CREATE TABLE `llx_ecm_files_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ecm_files_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5451,6 +5765,34 @@ LOCK TABLES `llx_ecm_files_extrafields` WRITE; /*!40000 ALTER TABLE `llx_ecm_files_extrafields` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_element_categorie` +-- + +DROP TABLE IF EXISTS `llx_element_categorie`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_element_categorie` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_categorie` int(11) NOT NULL, + `fk_element` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `idx_element_categorie_idx` (`fk_element`,`fk_categorie`), + KEY `fk_element_categorie_fk_categorie` (`fk_categorie`), + CONSTRAINT `fk_element_categorie_fk_categorie` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_element_categorie` +-- + +LOCK TABLES `llx_element_categorie` WRITE; +/*!40000 ALTER TABLE `llx_element_categorie` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_element_categorie` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_element_contact` -- @@ -5470,7 +5812,7 @@ CREATE TABLE `llx_element_contact` ( KEY `fk_element_contact_fk_c_type_contact` (`fk_c_type_contact`), KEY `idx_element_contact_fk_socpeople` (`fk_socpeople`), CONSTRAINT `fk_element_contact_fk_c_type_contact` FOREIGN KEY (`fk_c_type_contact`) REFERENCES `llx_c_type_contact` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5493,13 +5835,13 @@ DROP TABLE IF EXISTS `llx_element_element`; CREATE TABLE `llx_element_element` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_source` int(11) NOT NULL, - `sourcetype` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `sourcetype` varchar(32) NOT NULL, `fk_target` int(11) NOT NULL, - `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `targettype` varchar(32) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_element_element_idx1` (`fk_source`,`sourcetype`,`fk_target`,`targettype`), KEY `idx_element_element_fk_target` (`fk_target`) -) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5522,9 +5864,9 @@ DROP TABLE IF EXISTS `llx_element_resources`; CREATE TABLE `llx_element_resources` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `element_id` int(11) DEFAULT NULL, - `element_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `element_type` varchar(64) DEFAULT NULL, `resource_id` int(11) DEFAULT NULL, - `resource_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `resource_type` varchar(64) DEFAULT NULL, `busy` int(11) DEFAULT NULL, `mandatory` int(11) DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, @@ -5533,7 +5875,7 @@ CREATE TABLE `llx_element_resources` ( PRIMARY KEY (`rowid`), UNIQUE KEY `idx_element_resources_idx1` (`resource_id`,`resource_type`,`element_id`,`element_type`), KEY `idx_element_element_element_id` (`element_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5556,38 +5898,41 @@ DROP TABLE IF EXISTS `llx_emailcollector_emailcollector`; CREATE TABLE `llx_emailcollector_emailcollector` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `host` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `user` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `password` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `source_directory` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `filter` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `actiontodo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `target_directory` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(128) NOT NULL, + `label` varchar(255) DEFAULT NULL, + `description` mediumtext DEFAULT NULL, + `host` varchar(255) DEFAULT NULL, + `user` varchar(128) DEFAULT NULL, + `password` varchar(128) DEFAULT NULL, + `source_directory` varchar(255) DEFAULT NULL, + `filter` mediumtext DEFAULT NULL, + `actiontodo` varchar(255) DEFAULT NULL, + `target_directory` varchar(255) DEFAULT NULL, `datelastresult` datetime DEFAULT NULL, - `lastresult` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `lastresult` text DEFAULT NULL, + `note_public` mediumtext DEFAULT NULL, + `note_private` mediumtext DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, - `codelastresult` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `codelastresult` varchar(16) DEFAULT NULL, `position` int(11) DEFAULT 0, - `login` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `login` varchar(128) DEFAULT NULL, `datelastok` datetime DEFAULT NULL, `maxemailpercollect` int(11) DEFAULT 100, - `hostcharset` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'UTF-8', + `hostcharset` varchar(16) DEFAULT 'UTF-8', + `port` varchar(10) DEFAULT '993', + `acces_type` int(11) DEFAULT 0, + `oauth_service` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_emailcollector_emailcollector_ref` (`ref`,`entity`), KEY `idx_emailcollector_rowid` (`rowid`), KEY `idx_emailcollector_entity` (`entity`), KEY `idx_emailcollector_status` (`status`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5596,7 +5941,7 @@ CREATE TABLE `llx_emailcollector_emailcollector` ( LOCK TABLES `llx_emailcollector_emailcollector` WRITE; /*!40000 ALTER TABLE `llx_emailcollector_emailcollector` DISABLE KEYS */; -INSERT INTO `llx_emailcollector_emailcollector` VALUES (3,1,'Collect_Ticket_Requests','Example to collect ticket requests','This collector will scan your mailbox to find emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from the ticket, you may also see answers of your customers or partners directly on the ticket view.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8'),(4,1,'Collect_Responses_In','Example to collect any email responses','This collector will scan your mailbox to find all emails that are an answer of an email sent from your application. An event with the email response will be recorded at the good place (Module Agenda must be enabled). For example, if your send a commercial proposal, order or invoice by email and your customer answers your email, the system will automatically find the answer and add it into your ERP.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8'),(5,1,'Collect_Leads','Example to collect leads','This collector will scan your mailbox to find emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can\'t be found in database (new customer), the lead will be attached to the thirdparty with ID 1.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-01-12 20:13:55',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8'); +INSERT INTO `llx_emailcollector_emailcollector` VALUES (3,1,'Collect_Ticket_Requests','Example to collect ticket requests','This collector will scan your mailbox to find emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from the ticket, you may also see answers of your customers or partners directly on the ticket view.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8','993',0,NULL),(4,1,'Collect_Responses_In','Example to collect any email responses','This collector will scan your mailbox to find all emails that are an answer of an email sent from your application. An event with the email response will be recorded at the good place (Module Agenda must be enabled). For example, if your send a commercial proposal, order or invoice by email and your customer answers your email, the system will automatically find the answer and add it into your ERP.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8','993',0,NULL),(5,1,'Collect_Leads','Example to collect leads','This collector will scan your mailbox to find emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can\'t be found in database (new customer), the lead will be attached to the thirdparty with ID 1.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-01-12 20:13:55',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8','993',0,NULL); /*!40000 ALTER TABLE `llx_emailcollector_emailcollector` ENABLE KEYS */; UNLOCK TABLES; @@ -5610,20 +5955,20 @@ DROP TABLE IF EXISTS `llx_emailcollector_emailcollectoraction`; CREATE TABLE `llx_emailcollector_emailcollectoraction` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_emailcollector` int(11) NOT NULL, - `type` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `actionparam` text COLLATE utf8_unicode_ci DEFAULT NULL, + `type` varchar(128) NOT NULL, + `actionparam` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, `position` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_emailcollector_emailcollectoraction` (`fk_emailcollector`,`type`), KEY `idx_emailcollector_fk_emailcollector` (`fk_emailcollector`), CONSTRAINT `fk_emailcollectoraction_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5646,20 +5991,20 @@ DROP TABLE IF EXISTS `llx_emailcollector_emailcollectorfilter`; CREATE TABLE `llx_emailcollector_emailcollectorfilter` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_emailcollector` int(11) NOT NULL, - `type` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `rulevalue` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `type` varchar(128) NOT NULL, + `rulevalue` varchar(255) DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_emailcollector_emailcollectorfilter` (`fk_emailcollector`,`type`,`rulevalue`), KEY `idx_emailcollector_fk_emailcollector` (`fk_emailcollector`), CONSTRAINT `fk_emailcollector_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`), CONSTRAINT `fk_emailcollectorfilter_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5683,27 +6028,29 @@ CREATE TABLE `llx_entrepot` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_project` int(11) DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `lieu` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `lieu` varchar(64) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_departement` int(11) DEFAULT NULL, `fk_pays` int(11) DEFAULT 0, `statut` tinyint(4) DEFAULT 1, `fk_user_author` int(11) DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_parent` int(11) DEFAULT 0, - `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, `warehouse_usage` int(11) DEFAULT 1, + `barcode` varchar(180) DEFAULT NULL, + `fk_barcode_type` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_entrepot_label` (`ref`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5712,7 +6059,7 @@ CREATE TABLE `llx_entrepot` ( LOCK TABLES `llx_entrepot` WRITE; /*!40000 ALTER TABLE `llx_entrepot` DISABLE KEYS */; -INSERT INTO `llx_entrepot` VALUES (1,'2012-07-09 00:31:22','2020-06-12 17:18:30','WAREHOUSEHOUSTON',1,NULL,'Warehouse located at Houston','Warehouse houston','','','Houston',NULL,11,1,1,NULL,NULL,NULL,'','',1),(2,'2012-07-09 00:41:03','2020-06-12 17:18:33','WAREHOUSEPARIS',1,NULL,'','Warehouse Paris','','75000','Paris',NULL,1,1,1,NULL,NULL,NULL,'','',1),(3,'2012-07-11 16:18:59','2020-06-12 17:18:25','Stock personnel Dupont',1,NULL,'Cet entrepôt représente le stock personnel de Alain Dupont','','','','',NULL,2,1,1,NULL,NULL,NULL,'','',1),(9,'2017-10-03 11:47:41','2017-10-03 09:47:41','Personal stock Marie Curie',1,NULL,'This warehouse represents personal stock of Marie Curie','','','','',NULL,1,1,1,NULL,NULL,0,NULL,NULL,1),(10,'2017-10-05 09:07:52','2018-07-30 13:52:24','Personal stock Alex Theceo',1,NULL,'This warehouse represents personal stock of Alex Theceo','','','','',NULL,3,1,1,NULL,NULL,0,NULL,NULL,1),(12,'2017-10-05 21:29:35','2017-10-05 19:29:35','Personal stock Charly Commery',1,NULL,'This warehouse represents personal stock of Charly Commery','','','','',NULL,1,1,11,NULL,NULL,0,NULL,NULL,1),(13,'2017-10-05 21:33:33','2018-07-30 13:51:38','Personal stock Sam Scientol',1,NULL,'This warehouse represents personal stock of Sam Scientol','','','7500','Paris',NULL,1,0,11,NULL,NULL,0,NULL,NULL,1),(18,'2018-01-22 17:27:02','2020-06-12 17:18:18','Personal stock Laurent Destailleur',1,NULL,'This warehouse represents personal stock of Laurent Destailleur','','','','',NULL,1,1,12,NULL,NULL,NULL,'','',1),(19,'2018-07-30 16:50:23','2020-06-12 17:18:12','Personal stock Eldy',1,NULL,'This warehouse represents personal stock of Eldy','','','','',NULL,14,1,12,NULL,NULL,NULL,'','',1),(20,'2017-02-02 03:55:45','2020-06-12 17:18:55','Personal stock Alex Boston',1,NULL,'This warehouse represents personal stock of Alex Boston','PSTOCKALEXB','','','',NULL,14,1,12,NULL,NULL,NULL,'','',1); +INSERT INTO `llx_entrepot` VALUES (1,'2012-07-09 00:31:22','2020-06-12 17:18:30','WAREHOUSEHOUSTON',1,NULL,'Warehouse located at Houston','Warehouse houston','','','Houston',NULL,11,1,1,NULL,NULL,NULL,'','',1,NULL,NULL),(2,'2012-07-09 00:41:03','2020-06-12 17:18:33','WAREHOUSEPARIS',1,NULL,'','Warehouse Paris','','75000','Paris',NULL,1,1,1,NULL,NULL,NULL,'','',1,NULL,NULL),(3,'2012-07-11 16:18:59','2020-06-12 17:18:25','Stock personnel Dupont',1,NULL,'Cet entrepôt représente le stock personnel de Alain Dupont','','','','',NULL,2,1,1,NULL,NULL,NULL,'','',1,NULL,NULL),(9,'2017-10-03 11:47:41','2017-10-03 09:47:41','Personal stock Marie Curie',1,NULL,'This warehouse represents personal stock of Marie Curie','','','','',NULL,1,1,1,NULL,NULL,0,NULL,NULL,1,NULL,NULL),(10,'2017-10-05 09:07:52','2018-07-30 13:52:24','Personal stock Alex Theceo',1,NULL,'This warehouse represents personal stock of Alex Theceo','','','','',NULL,3,1,1,NULL,NULL,0,NULL,NULL,1,NULL,NULL),(12,'2017-10-05 21:29:35','2017-10-05 19:29:35','Personal stock Charly Commery',1,NULL,'This warehouse represents personal stock of Charly Commery','','','','',NULL,1,1,11,NULL,NULL,0,NULL,NULL,1,NULL,NULL),(13,'2017-10-05 21:33:33','2018-07-30 13:51:38','Personal stock Sam Scientol',1,NULL,'This warehouse represents personal stock of Sam Scientol','','','7500','Paris',NULL,1,0,11,NULL,NULL,0,NULL,NULL,1,NULL,NULL),(18,'2018-01-22 17:27:02','2020-06-12 17:18:18','Personal stock Laurent Destailleur',1,NULL,'This warehouse represents personal stock of Laurent Destailleur','','','','',NULL,1,1,12,NULL,NULL,NULL,'','',1,NULL,NULL),(19,'2018-07-30 16:50:23','2020-06-12 17:18:12','Personal stock Eldy',1,NULL,'This warehouse represents personal stock of Eldy','','','','',NULL,14,1,12,NULL,NULL,NULL,'','',1,NULL,NULL),(20,'2017-02-02 03:55:45','2020-06-12 17:18:55','Personal stock Alex Boston',1,NULL,'This warehouse represents personal stock of Alex Boston','PSTOCKALEXB','','','',NULL,14,1,12,NULL,NULL,NULL,'','',1,NULL,NULL); /*!40000 ALTER TABLE `llx_entrepot` ENABLE KEYS */; UNLOCK TABLES; @@ -5727,10 +6074,10 @@ CREATE TABLE `llx_entrepot_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_entrepot_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5752,25 +6099,25 @@ DROP TABLE IF EXISTS `llx_establishment`; CREATE TABLE `llx_establishment` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_state` int(11) DEFAULT 0, `fk_country` int(11) DEFAULT 0, - `profid1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `profid2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `profid3` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `profid1` varchar(20) DEFAULT NULL, + `profid2` varchar(20) DEFAULT NULL, + `profid3` varchar(20) DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `fk_user_mod` int(11) DEFAULT NULL, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` tinyint(4) DEFAULT 1, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL, + `label` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5793,9 +6140,9 @@ CREATE TABLE `llx_event_element` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_source` int(11) NOT NULL, `fk_target` int(11) NOT NULL, - `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `targettype` varchar(32) NOT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5816,24 +6163,28 @@ DROP TABLE IF EXISTS `llx_eventorganization_conferenceorboothattendee`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_eventorganization_conferenceorboothattendee` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_actioncomm` int(11) DEFAULT NULL, - `email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `email_company` varchar(128) DEFAULT NULL, `date_subscription` datetime DEFAULT NULL, `amount` double DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `status` smallint(6) NOT NULL, `fk_project` int(11) NOT NULL, `fk_invoice` int(11) DEFAULT NULL, + `firstname` varchar(100) DEFAULT NULL, + `lastname` varchar(100) DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_eventorganization_conferenceorboothattendee` (`fk_project`,`email`,`fk_actioncomm`), KEY `idx_eventorganization_conferenceorboothattendee_rowid` (`rowid`), @@ -5842,7 +6193,7 @@ CREATE TABLE `llx_eventorganization_conferenceorboothattendee` ( KEY `idx_eventorganization_conferenceorboothattendee_fk_actioncomm` (`fk_actioncomm`), KEY `idx_eventorganization_conferenceorboothattendee_email` (`email`), KEY `idx_eventorganization_conferenceorboothattendee_status` (`status`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5865,10 +6216,10 @@ CREATE TABLE `llx_eventorganization_conferenceorboothattendee_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_conferenceorboothattendee_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5890,20 +6241,20 @@ DROP TABLE IF EXISTS `llx_events`; CREATE TABLE `llx_events` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `type` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(32) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `dateevent` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, - `description` varchar(250) COLLATE utf8_unicode_ci NOT NULL, - `ip` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, - `user_agent` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(250) NOT NULL, + `ip` varchar(250) DEFAULT NULL, + `user_agent` varchar(255) DEFAULT NULL, `fk_object` int(11) DEFAULT NULL, - `prefix_session` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `authentication_method` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `prefix_session` varchar(255) DEFAULT NULL, + `authentication_method` varchar(64) DEFAULT NULL, `fk_oauth_token` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_events_dateevent` (`dateevent`) -) ENGINE=InnoDB AUTO_INCREMENT=1095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1097 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5912,7 +6263,7 @@ CREATE TABLE `llx_events` ( LOCK TABLES `llx_events` WRITE; /*!40000 ALTER TABLE `llx_events` DISABLE KEYS */; -INSERT INTO `llx_events` VALUES (30,'2013-07-18 18:23:06','USER_LOGOUT',1,'2013-07-18 20:23:06',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(31,'2013-07-18 18:23:12','USER_LOGIN_FAILED',1,'2013-07-18 20:23:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(32,'2013-07-18 18:23:17','USER_LOGIN',1,'2013-07-18 20:23:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(33,'2013-07-18 20:10:51','USER_LOGIN_FAILED',1,'2013-07-18 22:10:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(34,'2013-07-18 20:10:55','USER_LOGIN',1,'2013-07-18 22:10:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(35,'2013-07-18 21:18:57','USER_LOGIN',1,'2013-07-18 23:18:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(36,'2013-07-20 10:34:10','USER_LOGIN',1,'2013-07-20 12:34:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(37,'2013-07-20 12:36:44','USER_LOGIN',1,'2013-07-20 14:36:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(38,'2013-07-20 13:20:51','USER_LOGIN_FAILED',1,'2013-07-20 15:20:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(39,'2013-07-20 13:20:54','USER_LOGIN',1,'2013-07-20 15:20:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(40,'2013-07-20 15:03:46','USER_LOGIN_FAILED',1,'2013-07-20 17:03:46',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(41,'2013-07-20 15:03:55','USER_LOGIN',1,'2013-07-20 17:03:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(42,'2013-07-20 18:05:05','USER_LOGIN_FAILED',1,'2013-07-20 20:05:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(43,'2013-07-20 18:05:08','USER_LOGIN',1,'2013-07-20 20:05:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(44,'2013-07-20 21:08:53','USER_LOGIN_FAILED',1,'2013-07-20 23:08:53',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(45,'2013-07-20 21:08:56','USER_LOGIN',1,'2013-07-20 23:08:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(46,'2013-07-21 01:26:12','USER_LOGIN',1,'2013-07-21 03:26:12',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(47,'2013-07-21 22:35:45','USER_LOGIN_FAILED',1,'2013-07-22 00:35:45',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(48,'2013-07-21 22:35:49','USER_LOGIN',1,'2013-07-22 00:35:49',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(49,'2013-07-26 23:09:47','USER_LOGIN_FAILED',1,'2013-07-27 01:09:47',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(50,'2013-07-26 23:09:50','USER_LOGIN',1,'2013-07-27 01:09:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(51,'2013-07-27 17:02:27','USER_LOGIN_FAILED',1,'2013-07-27 19:02:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(52,'2013-07-27 17:02:32','USER_LOGIN',1,'2013-07-27 19:02:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(53,'2013-07-27 23:33:37','USER_LOGIN_FAILED',1,'2013-07-28 01:33:37',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(54,'2013-07-27 23:33:41','USER_LOGIN',1,'2013-07-28 01:33:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(55,'2013-07-28 18:20:36','USER_LOGIN_FAILED',1,'2013-07-28 20:20:36',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(56,'2013-07-28 18:20:38','USER_LOGIN',1,'2013-07-28 20:20:38',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(57,'2013-07-28 20:13:30','USER_LOGIN_FAILED',1,'2013-07-28 22:13:30',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(58,'2013-07-28 20:13:34','USER_LOGIN',1,'2013-07-28 22:13:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(59,'2013-07-28 20:22:51','USER_LOGIN',1,'2013-07-28 22:22:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(60,'2013-07-28 23:05:06','USER_LOGIN',1,'2013-07-29 01:05:06',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(61,'2013-07-29 20:15:50','USER_LOGIN_FAILED',1,'2013-07-29 22:15:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(62,'2013-07-29 20:15:53','USER_LOGIN',1,'2013-07-29 22:15:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(68,'2013-07-29 20:51:01','USER_LOGOUT',1,'2013-07-29 22:51:01',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(69,'2013-07-29 20:51:05','USER_LOGIN',1,'2013-07-29 22:51:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(70,'2013-07-30 08:46:20','USER_LOGIN_FAILED',1,'2013-07-30 10:46:20',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(71,'2013-07-30 08:46:38','USER_LOGIN_FAILED',1,'2013-07-30 10:46:38',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(72,'2013-07-30 08:46:42','USER_LOGIN',1,'2013-07-30 10:46:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(73,'2013-07-30 10:05:12','USER_LOGIN_FAILED',1,'2013-07-30 12:05:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(74,'2013-07-30 10:05:15','USER_LOGIN',1,'2013-07-30 12:05:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(75,'2013-07-30 12:15:46','USER_LOGIN',1,'2013-07-30 14:15:46',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(76,'2013-07-31 22:19:30','USER_LOGIN',1,'2013-08-01 00:19:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(77,'2013-07-31 23:32:52','USER_LOGIN',1,'2013-08-01 01:32:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(78,'2013-08-01 01:24:50','USER_LOGIN_FAILED',1,'2013-08-01 03:24:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(79,'2013-08-01 01:24:54','USER_LOGIN',1,'2013-08-01 03:24:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(80,'2013-08-01 19:31:36','USER_LOGIN_FAILED',1,'2013-08-01 21:31:35',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(81,'2013-08-01 19:31:39','USER_LOGIN',1,'2013-08-01 21:31:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(82,'2013-08-01 20:01:36','USER_LOGIN',1,'2013-08-01 22:01:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(83,'2013-08-01 20:52:54','USER_LOGIN_FAILED',1,'2013-08-01 22:52:54',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(84,'2013-08-01 20:52:58','USER_LOGIN',1,'2013-08-01 22:52:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(85,'2013-08-01 21:17:28','USER_LOGIN_FAILED',1,'2013-08-01 23:17:28',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(86,'2013-08-01 21:17:31','USER_LOGIN',1,'2013-08-01 23:17:31',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(87,'2013-08-04 11:55:17','USER_LOGIN',1,'2013-08-04 13:55:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(88,'2013-08-04 20:19:03','USER_LOGIN_FAILED',1,'2013-08-04 22:19:03',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(89,'2013-08-04 20:19:07','USER_LOGIN',1,'2013-08-04 22:19:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(90,'2013-08-05 17:51:42','USER_LOGIN_FAILED',1,'2013-08-05 19:51:42',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(91,'2013-08-05 17:51:47','USER_LOGIN',1,'2013-08-05 19:51:47',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(92,'2013-08-05 17:56:03','USER_LOGIN',1,'2013-08-05 19:56:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(93,'2013-08-05 17:59:10','USER_LOGIN',1,'2013-08-05 19:59:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL,NULL,NULL,NULL),(94,'2013-08-05 18:01:58','USER_LOGIN',1,'2013-08-05 20:01:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL,NULL,NULL,NULL),(95,'2013-08-05 19:59:56','USER_LOGIN',1,'2013-08-05 21:59:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(96,'2013-08-06 18:33:22','USER_LOGIN',1,'2013-08-06 20:33:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(97,'2013-08-07 00:56:59','USER_LOGIN',1,'2013-08-07 02:56:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(98,'2013-08-07 22:49:14','USER_LOGIN',1,'2013-08-08 00:49:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(99,'2013-08-07 23:05:18','USER_LOGOUT',1,'2013-08-08 01:05:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(105,'2013-08-08 00:41:09','USER_LOGIN',1,'2013-08-08 02:41:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(106,'2013-08-08 11:58:55','USER_LOGIN',1,'2013-08-08 13:58:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(107,'2013-08-08 14:35:48','USER_LOGIN',1,'2013-08-08 16:35:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(108,'2013-08-08 14:36:31','USER_LOGOUT',1,'2013-08-08 16:36:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(109,'2013-08-08 14:38:28','USER_LOGIN',1,'2013-08-08 16:38:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(110,'2013-08-08 14:39:02','USER_LOGOUT',1,'2013-08-08 16:39:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(111,'2013-08-08 14:39:10','USER_LOGIN',1,'2013-08-08 16:39:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(112,'2013-08-08 14:39:28','USER_LOGOUT',1,'2013-08-08 16:39:28',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(113,'2013-08-08 14:39:37','USER_LOGIN',1,'2013-08-08 16:39:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(114,'2013-08-08 14:50:02','USER_LOGOUT',1,'2013-08-08 16:50:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(115,'2013-08-08 14:51:45','USER_LOGIN_FAILED',1,'2013-08-08 16:51:45',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(116,'2013-08-08 14:51:52','USER_LOGIN',1,'2013-08-08 16:51:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(117,'2013-08-08 15:09:54','USER_LOGOUT',1,'2013-08-08 17:09:54',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(118,'2013-08-08 15:10:19','USER_LOGIN_FAILED',1,'2013-08-08 17:10:19',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(119,'2013-08-08 15:10:28','USER_LOGIN',1,'2013-08-08 17:10:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(121,'2013-08-08 15:14:58','USER_LOGOUT',1,'2013-08-08 17:14:58',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(122,'2013-08-08 15:15:00','USER_LOGIN_FAILED',1,'2013-08-08 17:15:00',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(123,'2013-08-08 15:17:57','USER_LOGIN',1,'2013-08-08 17:17:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(124,'2013-08-08 15:35:56','USER_LOGOUT',1,'2013-08-08 17:35:56',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(125,'2013-08-08 15:36:05','USER_LOGIN',1,'2013-08-08 17:36:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(126,'2013-08-08 17:32:42','USER_LOGIN',1,'2013-08-08 19:32:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(127,'2014-12-08 13:49:37','USER_LOGOUT',1,'2014-12-08 14:49:37',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(128,'2014-12-08 13:49:42','USER_LOGIN',1,'2014-12-08 14:49:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(129,'2014-12-08 13:50:12','USER_LOGOUT',1,'2014-12-08 14:50:12',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(130,'2014-12-08 13:50:14','USER_LOGIN',1,'2014-12-08 14:50:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(131,'2014-12-08 13:50:17','USER_LOGOUT',1,'2014-12-08 14:50:17',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(132,'2014-12-08 13:52:47','USER_LOGIN',1,'2014-12-08 14:52:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(133,'2014-12-08 13:53:08','USER_MODIFY',1,'2014-12-08 14:53:08',1,'User admin modified','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(134,'2014-12-08 14:08:45','USER_LOGOUT',1,'2014-12-08 15:08:45',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(135,'2014-12-08 14:09:09','USER_LOGIN',1,'2014-12-08 15:09:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(136,'2014-12-08 14:11:43','USER_LOGOUT',1,'2014-12-08 15:11:43',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(137,'2014-12-08 14:11:45','USER_LOGIN',1,'2014-12-08 15:11:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(138,'2014-12-08 14:22:53','USER_LOGOUT',1,'2014-12-08 15:22:53',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(139,'2014-12-08 14:22:54','USER_LOGIN',1,'2014-12-08 15:22:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(140,'2014-12-08 14:23:10','USER_LOGOUT',1,'2014-12-08 15:23:10',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(141,'2014-12-08 14:23:11','USER_LOGIN',1,'2014-12-08 15:23:11',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(142,'2014-12-08 14:23:49','USER_LOGOUT',1,'2014-12-08 15:23:49',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(143,'2014-12-08 14:23:50','USER_LOGIN',1,'2014-12-08 15:23:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(144,'2014-12-08 14:28:08','USER_LOGOUT',1,'2014-12-08 15:28:08',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(145,'2014-12-08 14:35:15','USER_LOGIN',1,'2014-12-08 15:35:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(146,'2014-12-08 14:35:18','USER_LOGOUT',1,'2014-12-08 15:35:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(147,'2014-12-08 14:36:07','USER_LOGIN',1,'2014-12-08 15:36:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(148,'2014-12-08 14:36:09','USER_LOGOUT',1,'2014-12-08 15:36:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(149,'2014-12-08 14:36:41','USER_LOGIN',1,'2014-12-08 15:36:41',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(150,'2014-12-08 15:59:13','USER_LOGIN',1,'2014-12-08 16:59:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(151,'2014-12-09 11:49:52','USER_LOGIN',1,'2014-12-09 12:49:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(152,'2014-12-09 13:46:31','USER_LOGIN',1,'2014-12-09 14:46:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(153,'2014-12-09 19:03:14','USER_LOGIN',1,'2014-12-09 20:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(154,'2014-12-10 00:16:31','USER_LOGIN',1,'2014-12-10 01:16:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(170,'2014-12-11 22:03:31','USER_LOGIN',1,'2014-12-11 23:03:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(171,'2014-12-12 00:32:39','USER_LOGIN',1,'2014-12-12 01:32:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(172,'2014-12-12 10:49:59','USER_LOGIN',1,'2014-12-12 11:49:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(175,'2014-12-12 10:57:40','USER_MODIFY',1,'2014-12-12 11:57:40',1,'Modification utilisateur admin','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(176,'2014-12-12 13:29:15','USER_LOGIN',1,'2014-12-12 14:29:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(177,'2014-12-12 13:30:15','USER_LOGIN',1,'2014-12-12 14:30:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(178,'2014-12-12 13:40:08','USER_LOGOUT',1,'2014-12-12 14:40:08',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(179,'2014-12-12 13:40:10','USER_LOGIN',1,'2014-12-12 14:40:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(180,'2014-12-12 13:40:26','USER_MODIFY',1,'2014-12-12 14:40:26',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(181,'2014-12-12 13:40:34','USER_LOGOUT',1,'2014-12-12 14:40:34',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(182,'2014-12-12 13:42:23','USER_LOGIN',1,'2014-12-12 14:42:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(183,'2014-12-12 13:43:02','USER_NEW_PASSWORD',1,'2014-12-12 14:43:02',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(184,'2014-12-12 13:43:25','USER_LOGOUT',1,'2014-12-12 14:43:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(185,'2014-12-12 13:43:27','USER_LOGIN_FAILED',1,'2014-12-12 14:43:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(186,'2014-12-12 13:43:30','USER_LOGIN',1,'2014-12-12 14:43:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(187,'2014-12-12 14:52:11','USER_LOGIN',1,'2014-12-12 15:52:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(188,'2014-12-12 17:53:00','USER_LOGIN_FAILED',1,'2014-12-12 18:53:00',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(189,'2014-12-12 17:53:07','USER_LOGIN_FAILED',1,'2014-12-12 18:53:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(190,'2014-12-12 17:53:51','USER_NEW_PASSWORD',1,'2014-12-12 18:53:51',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(191,'2014-12-12 17:54:00','USER_LOGIN',1,'2014-12-12 18:54:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(192,'2014-12-12 17:54:10','USER_NEW_PASSWORD',1,'2014-12-12 18:54:10',1,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(193,'2014-12-12 17:54:10','USER_MODIFY',1,'2014-12-12 18:54:10',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(194,'2014-12-12 18:57:09','USER_LOGIN',1,'2014-12-12 19:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(195,'2014-12-12 23:04:08','USER_LOGIN',1,'2014-12-13 00:04:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(196,'2014-12-17 20:03:14','USER_LOGIN',1,'2014-12-17 21:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(197,'2014-12-17 21:18:45','USER_LOGIN',1,'2014-12-17 22:18:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(198,'2014-12-17 22:30:08','USER_LOGIN',1,'2014-12-17 23:30:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(199,'2014-12-18 23:32:03','USER_LOGIN',1,'2014-12-19 00:32:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(200,'2014-12-19 09:38:03','USER_LOGIN',1,'2014-12-19 10:38:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(201,'2014-12-19 11:23:35','USER_LOGIN',1,'2014-12-19 12:23:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(202,'2014-12-19 12:46:22','USER_LOGIN',1,'2014-12-19 13:46:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(214,'2014-12-19 19:11:31','USER_LOGIN',1,'2014-12-19 20:11:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(215,'2014-12-21 16:36:57','USER_LOGIN',1,'2014-12-21 17:36:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(216,'2014-12-21 16:38:43','USER_NEW_PASSWORD',1,'2014-12-21 17:38:43',1,'Changement mot de passe de adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(217,'2014-12-21 16:38:43','USER_MODIFY',1,'2014-12-21 17:38:43',1,'Modification utilisateur adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(218,'2014-12-21 16:38:51','USER_LOGOUT',1,'2014-12-21 17:38:51',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(219,'2014-12-21 16:38:55','USER_LOGIN',1,'2014-12-21 17:38:55',3,'(UserLogged,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(220,'2014-12-21 16:48:18','USER_LOGOUT',1,'2014-12-21 17:48:18',3,'(UserLogoff,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(221,'2014-12-21 16:48:20','USER_LOGIN',1,'2014-12-21 17:48:20',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(222,'2014-12-26 18:28:18','USER_LOGIN',1,'2014-12-26 19:28:18',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(223,'2014-12-26 20:00:24','USER_LOGIN',1,'2014-12-26 21:00:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(224,'2014-12-27 01:10:27','USER_LOGIN',1,'2014-12-27 02:10:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(225,'2014-12-28 19:12:08','USER_LOGIN',1,'2014-12-28 20:12:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(226,'2014-12-28 20:16:58','USER_LOGIN',1,'2014-12-28 21:16:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(227,'2014-12-29 14:35:46','USER_LOGIN',1,'2014-12-29 15:35:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(228,'2014-12-29 14:37:59','USER_LOGOUT',1,'2014-12-29 15:37:59',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(229,'2014-12-29 14:38:00','USER_LOGIN',1,'2014-12-29 15:38:00',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(230,'2014-12-29 17:16:48','USER_LOGIN',1,'2014-12-29 18:16:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(231,'2014-12-31 12:02:59','USER_LOGIN',1,'2014-12-31 13:02:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(232,'2015-01-02 20:32:51','USER_LOGIN',1,'2015-01-02 21:32:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0',NULL,NULL,NULL,NULL),(233,'2015-01-02 20:58:59','USER_LOGIN',1,'2015-01-02 21:58:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(234,'2015-01-03 09:25:07','USER_LOGIN',1,'2015-01-03 10:25:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(235,'2015-01-03 19:39:31','USER_LOGIN',1,'2015-01-03 20:39:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(236,'2015-01-04 22:40:19','USER_LOGIN',1,'2015-01-04 23:40:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(237,'2015-01-05 12:59:59','USER_LOGIN',1,'2015-01-05 13:59:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(238,'2015-01-05 15:28:52','USER_LOGIN',1,'2015-01-05 16:28:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(239,'2015-01-05 17:02:08','USER_LOGIN',1,'2015-01-05 18:02:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(240,'2015-01-06 12:13:33','USER_LOGIN',1,'2015-01-06 13:13:33',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(241,'2015-01-07 01:21:15','USER_LOGIN',1,'2015-01-07 02:21:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(242,'2015-01-07 01:46:31','USER_LOGOUT',1,'2015-01-07 02:46:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(243,'2015-01-07 19:54:50','USER_LOGIN',1,'2015-01-07 20:54:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(244,'2015-01-08 21:55:01','USER_LOGIN',1,'2015-01-08 22:55:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(245,'2015-01-09 11:13:28','USER_LOGIN',1,'2015-01-09 12:13:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(246,'2015-01-10 18:30:46','USER_LOGIN',1,'2015-01-10 19:30:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(247,'2015-01-11 18:03:26','USER_LOGIN',1,'2015-01-11 19:03:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(248,'2015-01-12 11:15:04','USER_LOGIN',1,'2015-01-12 12:15:04',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(249,'2015-01-12 14:42:44','USER_LOGIN',1,'2015-01-12 15:42:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(250,'2015-01-13 12:07:17','USER_LOGIN',1,'2015-01-13 13:07:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(251,'2015-01-13 17:37:58','USER_LOGIN',1,'2015-01-13 18:37:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(252,'2015-01-13 19:24:21','USER_LOGIN',1,'2015-01-13 20:24:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(253,'2015-01-13 19:29:19','USER_LOGOUT',1,'2015-01-13 20:29:19',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(254,'2015-01-13 21:39:39','USER_LOGIN',1,'2015-01-13 22:39:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(255,'2015-01-14 00:52:21','USER_LOGIN',1,'2015-01-14 01:52:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(256,'2015-01-16 11:34:31','USER_LOGIN',1,'2015-01-16 12:34:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(257,'2015-01-16 15:36:21','USER_LOGIN',1,'2015-01-16 16:36:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(258,'2015-01-16 19:17:36','USER_LOGIN',1,'2015-01-16 20:17:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(259,'2015-01-16 19:48:08','GROUP_CREATE',1,'2015-01-16 20:48:08',1,'Création groupe ggg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(260,'2015-01-16 21:48:53','USER_LOGIN',1,'2015-01-16 22:48:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(261,'2015-01-17 19:55:53','USER_LOGIN',1,'2015-01-17 20:55:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(262,'2015-01-18 09:48:01','USER_LOGIN',1,'2015-01-18 10:48:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(263,'2015-01-18 13:22:36','USER_LOGIN',1,'2015-01-18 14:22:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(264,'2015-01-18 16:10:23','USER_LOGIN',1,'2015-01-18 17:10:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(265,'2015-01-18 17:41:40','USER_LOGIN',1,'2015-01-18 18:41:40',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(266,'2015-01-19 14:33:48','USER_LOGIN',1,'2015-01-19 15:33:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(267,'2015-01-19 16:47:43','USER_LOGIN',1,'2015-01-19 17:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(268,'2015-01-19 16:59:43','USER_LOGIN',1,'2015-01-19 17:59:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(269,'2015-01-19 17:00:22','USER_LOGIN',1,'2015-01-19 18:00:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(270,'2015-01-19 17:04:16','USER_LOGOUT',1,'2015-01-19 18:04:16',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(271,'2015-01-19 17:04:18','USER_LOGIN',1,'2015-01-19 18:04:18',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(272,'2015-01-20 00:34:19','USER_LOGIN',1,'2015-01-20 01:34:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(273,'2015-01-21 11:54:17','USER_LOGIN',1,'2015-01-21 12:54:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(274,'2015-01-21 13:48:15','USER_LOGIN',1,'2015-01-21 14:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(275,'2015-01-21 14:30:22','USER_LOGIN',1,'2015-01-21 15:30:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(276,'2015-01-21 15:10:46','USER_LOGIN',1,'2015-01-21 16:10:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(277,'2015-01-21 17:27:43','USER_LOGIN',1,'2015-01-21 18:27:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(278,'2015-01-21 21:48:15','USER_LOGIN',1,'2015-01-21 22:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(279,'2015-01-21 21:50:42','USER_LOGIN',1,'2015-01-21 22:50:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(280,'2015-01-23 09:28:26','USER_LOGIN',1,'2015-01-23 10:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(281,'2015-01-23 13:21:57','USER_LOGIN',1,'2015-01-23 14:21:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(282,'2015-01-23 16:52:00','USER_LOGOUT',1,'2015-01-23 17:52:00',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(283,'2015-01-23 16:52:05','USER_LOGIN_FAILED',1,'2015-01-23 17:52:05',NULL,'Bad value for login or password - login=bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(284,'2015-01-23 16:52:09','USER_LOGIN',1,'2015-01-23 17:52:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(285,'2015-01-23 16:52:27','USER_CREATE',1,'2015-01-23 17:52:27',1,'Création utilisateur aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(286,'2015-01-23 16:52:27','USER_NEW_PASSWORD',1,'2015-01-23 17:52:27',1,'Changement mot de passe de aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(287,'2015-01-23 16:52:37','USER_CREATE',1,'2015-01-23 17:52:37',1,'Création utilisateur bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(288,'2015-01-23 16:52:37','USER_NEW_PASSWORD',1,'2015-01-23 17:52:37',1,'Changement mot de passe de bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(289,'2015-01-23 16:53:15','USER_LOGOUT',1,'2015-01-23 17:53:15',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(290,'2015-01-23 16:53:20','USER_LOGIN',1,'2015-01-23 17:53:20',4,'(UserLogged,aaa)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(291,'2015-01-23 19:16:58','USER_LOGIN',1,'2015-01-23 20:16:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(292,'2015-01-26 10:54:07','USER_LOGIN',1,'2015-01-26 11:54:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(293,'2015-01-29 10:15:36','USER_LOGIN',1,'2015-01-29 11:15:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(294,'2015-01-30 17:42:50','USER_LOGIN',1,'2015-01-30 18:42:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(295,'2015-02-01 08:49:55','USER_LOGIN',1,'2015-02-01 09:49:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(296,'2015-02-01 08:51:57','USER_LOGOUT',1,'2015-02-01 09:51:57',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(297,'2015-02-01 08:52:39','USER_LOGIN',1,'2015-02-01 09:52:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(298,'2015-02-01 21:03:01','USER_LOGIN',1,'2015-02-01 22:03:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(299,'2015-02-10 19:48:39','USER_LOGIN',1,'2015-02-10 20:48:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(300,'2015-02-10 20:46:48','USER_LOGIN',1,'2015-02-10 21:46:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(301,'2015-02-10 21:39:23','USER_LOGIN',1,'2015-02-10 22:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(302,'2015-02-11 19:00:13','USER_LOGIN',1,'2015-02-11 20:00:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(303,'2015-02-11 19:43:44','USER_LOGIN_FAILED',1,'2015-02-11 20:43:44',NULL,'Unknown column \'u.fk_user\' in \'field list\'','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(304,'2015-02-11 19:44:01','USER_LOGIN',1,'2015-02-11 20:44:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(305,'2015-02-12 00:27:35','USER_LOGIN',1,'2015-02-12 01:27:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(306,'2015-02-12 00:27:38','USER_LOGOUT',1,'2015-02-12 01:27:38',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(307,'2015-02-12 00:28:07','USER_LOGIN',1,'2015-02-12 01:28:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(308,'2015-02-12 00:28:09','USER_LOGOUT',1,'2015-02-12 01:28:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(309,'2015-02-12 00:28:26','USER_LOGIN',1,'2015-02-12 01:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(310,'2015-02-12 00:28:30','USER_LOGOUT',1,'2015-02-12 01:28:30',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(311,'2015-02-12 12:42:15','USER_LOGIN',1,'2015-02-12 13:42:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(312,'2015-02-12 13:46:16','USER_LOGIN',1,'2015-02-12 14:46:16',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(313,'2015-02-12 14:54:28','USER_LOGIN',1,'2015-02-12 15:54:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(314,'2015-02-12 16:04:46','USER_LOGIN',1,'2015-02-12 17:04:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(315,'2015-02-13 14:02:43','USER_LOGIN',1,'2015-02-13 15:02:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(316,'2015-02-13 14:48:30','USER_LOGIN',1,'2015-02-13 15:48:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(317,'2015-02-13 17:44:53','USER_LOGIN',1,'2015-02-13 18:44:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(318,'2015-02-15 08:44:36','USER_LOGIN',1,'2015-02-15 09:44:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(319,'2015-02-15 08:53:20','USER_LOGIN',1,'2015-02-15 09:53:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(320,'2015-02-16 19:10:28','USER_LOGIN',1,'2015-02-16 20:10:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(321,'2015-02-16 19:22:40','USER_CREATE',1,'2015-02-16 20:22:40',1,'Création utilisateur aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(322,'2015-02-16 19:22:40','USER_NEW_PASSWORD',1,'2015-02-16 20:22:40',1,'Changement mot de passe de aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(323,'2015-02-16 19:48:15','USER_CREATE',1,'2015-02-16 20:48:15',1,'Création utilisateur zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(324,'2015-02-16 19:48:15','USER_NEW_PASSWORD',1,'2015-02-16 20:48:15',1,'Changement mot de passe de zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(325,'2015-02-16 19:50:08','USER_CREATE',1,'2015-02-16 20:50:08',1,'Création utilisateur zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(326,'2015-02-16 19:50:08','USER_NEW_PASSWORD',1,'2015-02-16 20:50:08',1,'Changement mot de passe de zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(327,'2015-02-16 21:20:03','USER_LOGIN',1,'2015-02-16 22:20:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(328,'2015-02-17 14:30:51','USER_LOGIN',1,'2015-02-17 15:30:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(329,'2015-02-17 17:21:22','USER_LOGIN',1,'2015-02-17 18:21:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(330,'2015-02-17 17:48:43','USER_MODIFY',1,'2015-02-17 18:48:43',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(331,'2015-02-17 17:48:47','USER_MODIFY',1,'2015-02-17 18:48:47',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(332,'2015-02-17 17:48:51','USER_MODIFY',1,'2015-02-17 18:48:51',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(333,'2015-02-17 17:48:56','USER_MODIFY',1,'2015-02-17 18:48:56',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(334,'2015-02-18 22:00:01','USER_LOGIN',1,'2015-02-18 23:00:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(335,'2015-02-19 08:19:52','USER_LOGIN',1,'2015-02-19 09:19:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(336,'2015-02-19 22:00:52','USER_LOGIN',1,'2015-02-19 23:00:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(337,'2015-02-20 09:34:52','USER_LOGIN',1,'2015-02-20 10:34:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(338,'2015-02-20 13:12:28','USER_LOGIN',1,'2015-02-20 14:12:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(339,'2015-02-20 17:19:44','USER_LOGIN',1,'2015-02-20 18:19:44',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(340,'2015-02-20 19:07:21','USER_MODIFY',1,'2015-02-20 20:07:21',1,'Modification utilisateur adupont','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(341,'2015-02-20 19:47:17','USER_LOGIN',1,'2015-02-20 20:47:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(342,'2015-02-20 19:48:01','USER_MODIFY',1,'2015-02-20 20:48:01',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(343,'2015-02-21 08:27:07','USER_LOGIN',1,'2015-02-21 09:27:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(344,'2015-02-23 13:34:13','USER_LOGIN',1,'2015-02-23 14:34:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(345,'2015-02-24 01:06:41','USER_LOGIN_FAILED',1,'2015-02-24 02:06:41',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(346,'2015-02-24 01:06:45','USER_LOGIN_FAILED',1,'2015-02-24 02:06:45',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(347,'2015-02-24 01:06:55','USER_LOGIN_FAILED',1,'2015-02-24 02:06:55',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(348,'2015-02-24 01:07:03','USER_LOGIN_FAILED',1,'2015-02-24 02:07:03',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(349,'2015-02-24 01:07:21','USER_LOGIN_FAILED',1,'2015-02-24 02:07:21',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(350,'2015-02-24 01:08:12','USER_LOGIN_FAILED',1,'2015-02-24 02:08:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(351,'2015-02-24 01:08:42','USER_LOGIN_FAILED',1,'2015-02-24 02:08:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(352,'2015-02-24 01:08:50','USER_LOGIN_FAILED',1,'2015-02-24 02:08:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(353,'2015-02-24 01:09:08','USER_LOGIN_FAILED',1,'2015-02-24 02:09:08',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(354,'2015-02-24 01:09:42','USER_LOGIN_FAILED',1,'2015-02-24 02:09:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(355,'2015-02-24 01:09:50','USER_LOGIN_FAILED',1,'2015-02-24 02:09:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(356,'2015-02-24 01:10:05','USER_LOGIN_FAILED',1,'2015-02-24 02:10:05',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(357,'2015-02-24 01:10:22','USER_LOGIN_FAILED',1,'2015-02-24 02:10:22',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(358,'2015-02-24 01:10:30','USER_LOGIN_FAILED',1,'2015-02-24 02:10:30',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(359,'2015-02-24 01:10:56','USER_LOGIN_FAILED',1,'2015-02-24 02:10:56',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(360,'2015-02-24 01:11:26','USER_LOGIN_FAILED',1,'2015-02-24 02:11:26',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(361,'2015-02-24 01:12:06','USER_LOGIN_FAILED',1,'2015-02-24 02:12:06',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(362,'2015-02-24 01:21:14','USER_LOGIN_FAILED',1,'2015-02-24 02:21:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(363,'2015-02-24 01:21:25','USER_LOGIN_FAILED',1,'2015-02-24 02:21:25',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(364,'2015-02-24 01:21:54','USER_LOGIN_FAILED',1,'2015-02-24 02:21:54',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(365,'2015-02-24 01:22:14','USER_LOGIN_FAILED',1,'2015-02-24 02:22:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(366,'2015-02-24 01:22:37','USER_LOGIN_FAILED',1,'2015-02-24 02:22:37',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(367,'2015-02-24 01:23:01','USER_LOGIN_FAILED',1,'2015-02-24 02:23:01',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(368,'2015-02-24 01:23:39','USER_LOGIN_FAILED',1,'2015-02-24 02:23:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(369,'2015-02-24 01:24:04','USER_LOGIN_FAILED',1,'2015-02-24 02:24:04',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(370,'2015-02-24 01:24:39','USER_LOGIN_FAILED',1,'2015-02-24 02:24:39',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(371,'2015-02-24 01:25:01','USER_LOGIN_FAILED',1,'2015-02-24 02:25:01',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(372,'2015-02-24 01:25:12','USER_LOGIN_FAILED',1,'2015-02-24 02:25:12',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(373,'2015-02-24 01:27:30','USER_LOGIN_FAILED',1,'2015-02-24 02:27:30',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(374,'2015-02-24 01:28:00','USER_LOGIN_FAILED',1,'2015-02-24 02:28:00',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(375,'2015-02-24 01:28:35','USER_LOGIN_FAILED',1,'2015-02-24 02:28:35',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(376,'2015-02-24 01:29:03','USER_LOGIN_FAILED',1,'2015-02-24 02:29:03',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(377,'2015-02-24 01:29:55','USER_LOGIN_FAILED',1,'2015-02-24 02:29:55',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(378,'2015-02-24 01:32:40','USER_LOGIN_FAILED',1,'2015-02-24 02:32:40',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(379,'2015-02-24 01:39:33','USER_LOGIN_FAILED',1,'2015-02-24 02:39:33',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(380,'2015-02-24 01:39:38','USER_LOGIN_FAILED',1,'2015-02-24 02:39:38',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(381,'2015-02-24 01:39:47','USER_LOGIN_FAILED',1,'2015-02-24 02:39:47',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(382,'2015-02-24 01:40:54','USER_LOGIN_FAILED',1,'2015-02-24 02:40:54',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(383,'2015-02-24 01:47:57','USER_LOGIN_FAILED',1,'2015-02-24 02:47:57',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(384,'2015-02-24 01:48:05','USER_LOGIN_FAILED',1,'2015-02-24 02:48:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(385,'2015-02-24 01:48:07','USER_LOGIN_FAILED',1,'2015-02-24 02:48:07',NULL,'Unknown column \'u.lastname\' in \'field list\'','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(386,'2015-02-24 01:48:35','USER_LOGIN',1,'2015-02-24 02:48:35',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(387,'2015-02-24 01:56:32','USER_LOGIN',1,'2015-02-24 02:56:32',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL,NULL,NULL,NULL),(388,'2015-02-24 02:05:55','USER_LOGOUT',1,'2015-02-24 03:05:55',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(389,'2015-02-24 02:39:52','USER_LOGIN',1,'2015-02-24 03:39:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(390,'2015-02-24 02:51:10','USER_LOGOUT',1,'2015-02-24 03:51:10',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(391,'2015-02-24 12:46:41','USER_LOGIN',1,'2015-02-24 13:46:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(392,'2015-02-24 12:46:52','USER_LOGOUT',1,'2015-02-24 13:46:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(393,'2015-02-24 12:46:56','USER_LOGIN',1,'2015-02-24 13:46:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(394,'2015-02-24 12:47:56','USER_LOGOUT',1,'2015-02-24 13:47:56',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(395,'2015-02-24 12:48:00','USER_LOGIN',1,'2015-02-24 13:48:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(396,'2015-02-24 12:48:11','USER_LOGOUT',1,'2015-02-24 13:48:11',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(397,'2015-02-24 12:48:32','USER_LOGIN',1,'2015-02-24 13:48:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(398,'2015-02-24 12:52:22','USER_LOGOUT',1,'2015-02-24 13:52:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(399,'2015-02-24 12:52:27','USER_LOGIN',1,'2015-02-24 13:52:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(400,'2015-02-24 12:52:54','USER_LOGOUT',1,'2015-02-24 13:52:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(401,'2015-02-24 12:52:59','USER_LOGIN',1,'2015-02-24 13:52:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(402,'2015-02-24 12:55:39','USER_LOGOUT',1,'2015-02-24 13:55:39',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(403,'2015-02-24 12:55:59','USER_LOGIN',1,'2015-02-24 13:55:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(404,'2015-02-24 12:56:07','USER_LOGOUT',1,'2015-02-24 13:56:07',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(405,'2015-02-24 12:56:23','USER_LOGIN',1,'2015-02-24 13:56:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(406,'2015-02-24 12:56:46','USER_LOGOUT',1,'2015-02-24 13:56:46',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(407,'2015-02-24 12:58:30','USER_LOGIN',1,'2015-02-24 13:58:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(408,'2015-02-24 12:58:33','USER_LOGOUT',1,'2015-02-24 13:58:33',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(409,'2015-02-24 12:58:51','USER_LOGIN',1,'2015-02-24 13:58:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(410,'2015-02-24 12:58:58','USER_LOGOUT',1,'2015-02-24 13:58:58',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(411,'2015-02-24 13:18:53','USER_LOGIN',1,'2015-02-24 14:18:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(412,'2015-02-24 13:19:52','USER_LOGOUT',1,'2015-02-24 14:19:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(413,'2015-02-24 15:39:31','USER_LOGIN_FAILED',1,'2015-02-24 16:39:31',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1',NULL,NULL,NULL,NULL,NULL),(414,'2015-02-24 15:42:07','USER_LOGIN',1,'2015-02-24 16:42:07',1,'(UserLogged,admin)','127.0.0.1',NULL,NULL,NULL,NULL,NULL),(415,'2015-02-24 15:42:52','USER_LOGOUT',1,'2015-02-24 16:42:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(416,'2015-02-24 16:04:21','USER_LOGIN',1,'2015-02-24 17:04:21',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL,NULL,NULL,NULL),(417,'2015-02-24 16:11:28','USER_LOGIN_FAILED',1,'2015-02-24 17:11:28',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(418,'2015-02-24 16:11:37','USER_LOGIN',1,'2015-02-24 17:11:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(419,'2015-02-24 16:36:52','USER_LOGOUT',1,'2015-02-24 17:36:52',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL,NULL,NULL,NULL),(420,'2015-02-24 16:40:37','USER_LOGIN',1,'2015-02-24 17:40:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(421,'2015-02-24 16:57:16','USER_LOGIN',1,'2015-02-24 17:57:16',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL,NULL,NULL,NULL),(422,'2015-02-24 17:01:30','USER_LOGOUT',1,'2015-02-24 18:01:30',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL,NULL,NULL,NULL),(423,'2015-02-24 17:02:33','USER_LOGIN',1,'2015-02-24 18:02:33',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(424,'2015-02-24 17:14:22','USER_LOGOUT',1,'2015-02-24 18:14:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(425,'2015-02-24 17:15:07','USER_LOGIN_FAILED',1,'2015-02-24 18:15:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(426,'2015-02-24 17:15:20','USER_LOGIN',1,'2015-02-24 18:15:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(427,'2015-02-24 17:20:14','USER_LOGIN',1,'2015-02-24 18:20:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(428,'2015-02-24 17:20:51','USER_LOGIN',1,'2015-02-24 18:20:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(429,'2015-02-24 17:20:54','USER_LOGOUT',1,'2015-02-24 18:20:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(430,'2015-02-24 17:21:19','USER_LOGIN',1,'2015-02-24 18:21:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(431,'2015-02-24 17:32:35','USER_LOGIN',1,'2015-02-24 18:32:35',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL,NULL,NULL,NULL),(432,'2015-02-24 18:28:48','USER_LOGIN',1,'2015-02-24 19:28:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(433,'2015-02-24 18:29:27','USER_LOGOUT',1,'2015-02-24 19:29:27',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(434,'2015-02-24 18:29:32','USER_LOGIN',1,'2015-02-24 19:29:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(435,'2015-02-24 20:13:13','USER_LOGOUT',1,'2015-02-24 21:13:13',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(436,'2015-02-24 20:13:17','USER_LOGIN',1,'2015-02-24 21:13:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(437,'2015-02-25 08:57:16','USER_LOGIN',1,'2015-02-25 09:57:16',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(438,'2015-02-25 08:57:59','USER_LOGOUT',1,'2015-02-25 09:57:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(439,'2015-02-25 09:15:02','USER_LOGIN',1,'2015-02-25 10:15:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(440,'2015-02-25 09:15:50','USER_LOGOUT',1,'2015-02-25 10:15:50',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(441,'2015-02-25 09:15:57','USER_LOGIN',1,'2015-02-25 10:15:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(442,'2015-02-25 09:16:12','USER_LOGOUT',1,'2015-02-25 10:16:12',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(443,'2015-02-25 09:16:19','USER_LOGIN',1,'2015-02-25 10:16:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(444,'2015-02-25 09:16:25','USER_LOGOUT',1,'2015-02-25 10:16:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(445,'2015-02-25 09:16:39','USER_LOGIN_FAILED',1,'2015-02-25 10:16:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(446,'2015-02-25 09:16:42','USER_LOGIN_FAILED',1,'2015-02-25 10:16:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(447,'2015-02-25 09:16:54','USER_LOGIN_FAILED',1,'2015-02-25 10:16:54',NULL,'Identificadors d'usuari o contrasenya incorrectes - login=gfdg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(448,'2015-02-25 09:17:53','USER_LOGIN',1,'2015-02-25 10:17:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(449,'2015-02-25 09:18:37','USER_LOGOUT',1,'2015-02-25 10:18:37',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(450,'2015-02-25 09:18:41','USER_LOGIN',1,'2015-02-25 10:18:41',4,'(UserLogged,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(451,'2015-02-25 09:18:47','USER_LOGOUT',1,'2015-02-25 10:18:47',4,'(UserLogoff,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(452,'2015-02-25 10:05:34','USER_LOGIN',1,'2015-02-25 11:05:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(453,'2015-02-26 21:51:40','USER_LOGIN',1,'2015-02-26 22:51:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(454,'2015-02-26 23:30:06','USER_LOGIN',1,'2015-02-27 00:30:06',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(455,'2015-02-27 14:13:11','USER_LOGIN',1,'2015-02-27 15:13:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(456,'2015-02-27 18:12:06','USER_LOGIN_FAILED',1,'2015-02-27 19:12:06',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(457,'2015-02-27 18:12:10','USER_LOGIN',1,'2015-02-27 19:12:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(458,'2015-02-27 20:20:08','USER_LOGIN',1,'2015-02-27 21:20:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(459,'2015-03-01 22:12:03','USER_LOGIN',1,'2015-03-01 23:12:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(460,'2015-03-02 11:45:50','USER_LOGIN',1,'2015-03-02 12:45:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(461,'2015-03-02 15:53:51','USER_LOGIN_FAILED',1,'2015-03-02 16:53:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(462,'2015-03-02 15:53:53','USER_LOGIN',1,'2015-03-02 16:53:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(463,'2015-03-02 18:32:32','USER_LOGIN',1,'2015-03-02 19:32:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(464,'2015-03-02 22:59:36','USER_LOGIN',1,'2015-03-02 23:59:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(465,'2015-03-03 16:26:26','USER_LOGIN',1,'2015-03-03 17:26:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(466,'2015-03-03 22:50:27','USER_LOGIN',1,'2015-03-03 23:50:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(467,'2015-03-04 08:29:27','USER_LOGIN',1,'2015-03-04 09:29:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(468,'2015-03-04 18:27:28','USER_LOGIN',1,'2015-03-04 19:27:28',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06)',NULL,NULL,NULL,NULL),(469,'2015-03-04 19:27:23','USER_LOGIN',1,'2015-03-04 20:27:23',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',NULL,NULL,NULL,NULL),(470,'2015-03-04 19:35:14','USER_LOGIN',1,'2015-03-04 20:35:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(471,'2015-03-04 19:55:49','USER_LOGIN',1,'2015-03-04 20:55:49',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',NULL,NULL,NULL,NULL),(472,'2015-03-04 21:16:13','USER_LOGIN',1,'2015-03-04 22:16:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(473,'2015-03-05 10:17:30','USER_LOGIN',1,'2015-03-05 11:17:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(474,'2015-03-05 11:02:43','USER_LOGIN',1,'2015-03-05 12:02:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(475,'2015-03-05 23:14:39','USER_LOGIN',1,'2015-03-06 00:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(476,'2015-03-06 08:58:57','USER_LOGIN',1,'2015-03-06 09:58:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(477,'2015-03-06 14:29:40','USER_LOGIN',1,'2015-03-06 15:29:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(478,'2015-03-06 21:53:02','USER_LOGIN',1,'2015-03-06 22:53:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(479,'2015-03-07 21:14:39','USER_LOGIN',1,'2015-03-07 22:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(480,'2015-03-08 00:06:05','USER_LOGIN',1,'2015-03-08 01:06:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(481,'2015-03-08 01:38:13','USER_LOGIN',1,'2015-03-08 02:38:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(482,'2015-03-08 08:59:50','USER_LOGIN',1,'2015-03-08 09:59:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(483,'2015-03-09 12:08:51','USER_LOGIN',1,'2015-03-09 13:08:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(484,'2015-03-09 15:19:53','USER_LOGIN',1,'2015-03-09 16:19:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(495,'2015-03-09 18:06:21','USER_LOGIN',1,'2015-03-09 19:06:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(496,'2015-03-09 20:01:24','USER_LOGIN',1,'2015-03-09 21:01:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(497,'2015-03-09 23:36:45','USER_LOGIN',1,'2015-03-10 00:36:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(498,'2015-03-10 14:37:13','USER_LOGIN',1,'2015-03-10 15:37:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(499,'2015-03-10 17:54:12','USER_LOGIN',1,'2015-03-10 18:54:12',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(500,'2015-03-11 08:57:09','USER_LOGIN',1,'2015-03-11 09:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(501,'2015-03-11 22:05:13','USER_LOGIN',1,'2015-03-11 23:05:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(502,'2015-03-12 08:34:27','USER_LOGIN',1,'2015-03-12 09:34:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(503,'2015-03-13 09:11:02','USER_LOGIN',1,'2015-03-13 10:11:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(504,'2015-03-13 10:02:11','USER_LOGIN',1,'2015-03-13 11:02:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(505,'2015-03-13 13:20:58','USER_LOGIN',1,'2015-03-13 14:20:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(506,'2015-03-13 16:19:28','USER_LOGIN',1,'2015-03-13 17:19:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(507,'2015-03-13 18:34:30','USER_LOGIN',1,'2015-03-13 19:34:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(508,'2015-03-14 08:25:02','USER_LOGIN',1,'2015-03-14 09:25:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(509,'2015-03-14 19:15:22','USER_LOGIN',1,'2015-03-14 20:15:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(510,'2015-03-14 21:58:53','USER_LOGIN',1,'2015-03-14 22:58:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(511,'2015-03-14 21:58:59','USER_LOGOUT',1,'2015-03-14 22:58:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(512,'2015-03-14 21:59:07','USER_LOGIN',1,'2015-03-14 22:59:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(513,'2015-03-14 22:58:22','USER_LOGOUT',1,'2015-03-14 23:58:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(514,'2015-03-14 23:00:25','USER_LOGIN',1,'2015-03-15 00:00:25',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(515,'2015-03-16 12:14:28','USER_LOGIN',1,'2015-03-16 13:14:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(516,'2015-03-16 16:09:01','USER_LOGIN',1,'2015-03-16 17:09:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(517,'2015-03-16 16:57:11','USER_LOGIN',1,'2015-03-16 17:57:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(518,'2015-03-16 19:31:31','USER_LOGIN',1,'2015-03-16 20:31:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(519,'2015-03-17 17:44:39','USER_LOGIN',1,'2015-03-17 18:44:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(520,'2015-03-17 20:40:57','USER_LOGIN',1,'2015-03-17 21:40:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(521,'2015-03-17 23:14:05','USER_LOGIN',1,'2015-03-18 00:14:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(522,'2015-03-17 23:28:47','USER_LOGOUT',1,'2015-03-18 00:28:47',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(523,'2015-03-17 23:28:54','USER_LOGIN',1,'2015-03-18 00:28:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(524,'2015-03-18 17:37:30','USER_LOGIN',1,'2015-03-18 18:37:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(525,'2015-03-18 18:11:37','USER_LOGIN',1,'2015-03-18 19:11:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(526,'2015-03-19 08:35:08','USER_LOGIN',1,'2015-03-19 09:35:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(527,'2015-03-19 09:20:23','USER_LOGIN',1,'2015-03-19 10:20:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(528,'2015-03-20 13:17:13','USER_LOGIN',1,'2015-03-20 14:17:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(529,'2015-03-20 14:44:31','USER_LOGIN',1,'2015-03-20 15:44:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(530,'2015-03-20 18:24:25','USER_LOGIN',1,'2015-03-20 19:24:25',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(531,'2015-03-20 19:15:54','USER_LOGIN',1,'2015-03-20 20:15:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(532,'2015-03-21 18:40:47','USER_LOGIN',1,'2015-03-21 19:40:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(533,'2015-03-21 21:42:24','USER_LOGIN',1,'2015-03-21 22:42:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(534,'2015-03-22 08:39:23','USER_LOGIN',1,'2015-03-22 09:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(535,'2015-03-23 13:04:55','USER_LOGIN',1,'2015-03-23 14:04:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(536,'2015-03-23 15:47:43','USER_LOGIN',1,'2015-03-23 16:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(537,'2015-03-23 22:56:36','USER_LOGIN',1,'2015-03-23 23:56:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(538,'2015-03-24 01:22:32','USER_LOGIN',1,'2015-03-24 02:22:32',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(539,'2015-03-24 14:40:42','USER_LOGIN',1,'2015-03-24 15:40:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(540,'2015-03-24 15:30:26','USER_LOGOUT',1,'2015-03-24 16:30:26',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(541,'2015-03-24 15:30:29','USER_LOGIN',1,'2015-03-24 16:30:29',2,'(UserLogged,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(542,'2015-03-24 15:49:40','USER_LOGOUT',1,'2015-03-24 16:49:40',2,'(UserLogoff,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(543,'2015-03-24 15:49:48','USER_LOGIN',1,'2015-03-24 16:49:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(544,'2015-03-24 15:52:35','USER_MODIFY',1,'2015-03-24 16:52:35',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(545,'2015-03-24 15:52:52','USER_MODIFY',1,'2015-03-24 16:52:52',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(546,'2015-03-24 15:53:09','USER_MODIFY',1,'2015-03-24 16:53:09',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(547,'2015-03-24 15:53:23','USER_MODIFY',1,'2015-03-24 16:53:23',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(548,'2015-03-24 16:00:04','USER_MODIFY',1,'2015-03-24 17:00:04',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(549,'2015-03-24 16:01:50','USER_MODIFY',1,'2015-03-24 17:01:50',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(550,'2015-03-24 16:10:14','USER_MODIFY',1,'2015-03-24 17:10:14',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(551,'2015-03-24 16:55:13','USER_LOGIN',1,'2015-03-24 17:55:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(552,'2015-03-24 17:44:29','USER_LOGIN',1,'2015-03-24 18:44:29',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(553,'2015-09-08 23:06:26','USER_LOGIN',1,'2015-09-09 01:06:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36',NULL,NULL,NULL,NULL),(554,'2015-10-21 22:32:28','USER_LOGIN',1,'2015-10-22 00:32:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL,NULL,NULL,NULL),(555,'2015-10-21 22:32:48','USER_LOGIN',1,'2015-10-22 00:32:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL,NULL,NULL,NULL),(556,'2015-11-07 00:01:51','USER_LOGIN',1,'2015-11-07 01:01:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36',NULL,NULL,NULL,NULL),(557,'2016-03-02 15:21:07','USER_LOGIN',1,'2016-03-02 16:21:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(558,'2016-03-02 15:36:53','USER_LOGIN',1,'2016-03-02 16:36:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(559,'2016-03-02 18:54:23','USER_LOGIN',1,'2016-03-02 19:54:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(560,'2016-03-02 19:11:17','USER_LOGIN',1,'2016-03-02 20:11:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(561,'2016-03-03 18:19:24','USER_LOGIN',1,'2016-03-03 19:19:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(562,'2016-12-21 12:51:38','USER_LOGIN',1,'2016-12-21 13:51:38',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL,NULL,NULL,NULL),(563,'2016-12-21 19:52:09','USER_LOGIN',1,'2016-12-21 20:52:09',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL,NULL,NULL,NULL),(566,'2017-10-03 08:49:43','USER_NEW_PASSWORD',1,'2017-10-03 10:49:43',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(567,'2017-10-03 08:49:43','USER_MODIFY',1,'2017-10-03 10:49:43',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(568,'2017-10-03 09:03:12','USER_MODIFY',1,'2017-10-03 11:03:12',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(569,'2017-10-03 09:03:42','USER_MODIFY',1,'2017-10-03 11:03:42',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(570,'2017-10-03 09:07:36','USER_MODIFY',1,'2017-10-03 11:07:36',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(571,'2017-10-03 09:08:58','USER_NEW_PASSWORD',1,'2017-10-03 11:08:58',1,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(572,'2017-10-03 09:08:58','USER_MODIFY',1,'2017-10-03 11:08:58',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(573,'2017-10-03 09:09:23','USER_MODIFY',1,'2017-10-03 11:09:23',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(574,'2017-10-03 09:11:04','USER_NEW_PASSWORD',1,'2017-10-03 11:11:04',1,'Password change for athestudent','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(575,'2017-10-03 09:11:04','USER_MODIFY',1,'2017-10-03 11:11:04',1,'User athestudent modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(576,'2017-10-03 09:11:53','USER_MODIFY',1,'2017-10-03 11:11:53',1,'User abookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(577,'2017-10-03 09:42:12','USER_LOGIN_FAILED',1,'2017-10-03 11:42:11',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(578,'2017-10-03 09:42:19','USER_LOGIN_FAILED',1,'2017-10-03 11:42:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(579,'2017-10-03 09:42:42','USER_LOGIN_FAILED',1,'2017-10-03 11:42:42',NULL,'Bad value for login or password - login=aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(580,'2017-10-03 09:43:50','USER_LOGIN',1,'2017-10-03 11:43:50',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x788','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(581,'2017-10-03 09:44:44','GROUP_MODIFY',1,'2017-10-03 11:44:44',1,'Group Sale representatives modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(582,'2017-10-03 09:46:25','GROUP_CREATE',1,'2017-10-03 11:46:25',1,'Group Management created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(583,'2017-10-03 09:46:46','GROUP_CREATE',1,'2017-10-03 11:46:46',1,'Group Scientists created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(584,'2017-10-03 09:47:41','USER_CREATE',1,'2017-10-03 11:47:41',1,'User mcurie created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(585,'2017-10-03 09:47:41','USER_NEW_PASSWORD',1,'2017-10-03 11:47:41',1,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(586,'2017-10-03 09:47:53','USER_MODIFY',1,'2017-10-03 11:47:53',1,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(587,'2017-10-03 09:48:32','USER_DELETE',1,'2017-10-03 11:48:32',1,'User bbb removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(588,'2017-10-03 09:48:52','USER_MODIFY',1,'2017-10-03 11:48:52',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(589,'2017-10-03 10:01:28','USER_MODIFY',1,'2017-10-03 12:01:28',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(590,'2017-10-03 10:01:39','USER_MODIFY',1,'2017-10-03 12:01:39',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(591,'2017-10-05 06:32:38','USER_LOGIN_FAILED',1,'2017-10-05 08:32:38',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(592,'2017-10-05 06:32:44','USER_LOGIN',1,'2017-10-05 08:32:44',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(593,'2017-10-05 07:07:52','USER_CREATE',1,'2017-10-05 09:07:52',1,'User atheceo created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(594,'2017-10-05 07:07:52','USER_NEW_PASSWORD',1,'2017-10-05 09:07:52',1,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(595,'2017-10-05 07:09:08','USER_NEW_PASSWORD',1,'2017-10-05 09:09:08',1,'Password change for aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(596,'2017-10-05 07:09:08','USER_MODIFY',1,'2017-10-05 09:09:08',1,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(597,'2017-10-05 07:09:46','USER_CREATE',1,'2017-10-05 09:09:46',1,'User admin created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(598,'2017-10-05 07:09:46','USER_NEW_PASSWORD',1,'2017-10-05 09:09:46',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(599,'2017-10-05 07:10:20','USER_MODIFY',1,'2017-10-05 09:10:20',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(600,'2017-10-05 07:10:48','USER_MODIFY',1,'2017-10-05 09:10:48',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(601,'2017-10-05 07:11:22','USER_NEW_PASSWORD',1,'2017-10-05 09:11:22',1,'Password change for bbookkeeper','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(602,'2017-10-05 07:11:22','USER_MODIFY',1,'2017-10-05 09:11:22',1,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(603,'2017-10-05 07:12:37','USER_MODIFY',1,'2017-10-05 09:12:37',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(604,'2017-10-05 07:13:27','USER_MODIFY',1,'2017-10-05 09:13:27',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(605,'2017-10-05 07:13:52','USER_MODIFY',1,'2017-10-05 09:13:52',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(606,'2017-10-05 07:14:35','USER_LOGOUT',1,'2017-10-05 09:14:35',1,'(UserLogoff,aeinstein)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(607,'2017-10-05 07:14:40','USER_LOGIN_FAILED',1,'2017-10-05 09:14:40',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(608,'2017-10-05 07:14:44','USER_LOGIN_FAILED',1,'2017-10-05 09:14:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(609,'2017-10-05 07:14:49','USER_LOGIN',1,'2017-10-05 09:14:49',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(610,'2017-10-05 07:57:18','USER_MODIFY',1,'2017-10-05 09:57:18',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(611,'2017-10-05 08:06:54','USER_LOGOUT',1,'2017-10-05 10:06:54',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(612,'2017-10-05 08:07:03','USER_LOGIN',1,'2017-10-05 10:07:03',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(613,'2017-10-05 19:18:46','USER_LOGIN',1,'2017-10-05 21:18:46',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(614,'2017-10-05 19:29:35','USER_CREATE',1,'2017-10-05 21:29:35',11,'User ccommercy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(615,'2017-10-05 19:29:35','USER_NEW_PASSWORD',1,'2017-10-05 21:29:35',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(616,'2017-10-05 19:30:13','GROUP_CREATE',1,'2017-10-05 21:30:13',11,'Group Commercial created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(617,'2017-10-05 19:31:37','USER_NEW_PASSWORD',1,'2017-10-05 21:31:37',11,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(618,'2017-10-05 19:31:37','USER_MODIFY',1,'2017-10-05 21:31:37',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(619,'2017-10-05 19:32:00','USER_MODIFY',1,'2017-10-05 21:32:00',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(620,'2017-10-05 19:33:33','USER_CREATE',1,'2017-10-05 21:33:33',11,'User sscientol created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(621,'2017-10-05 19:33:33','USER_NEW_PASSWORD',1,'2017-10-05 21:33:33',11,'Password change for sscientol','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(622,'2017-10-05 19:33:47','USER_NEW_PASSWORD',1,'2017-10-05 21:33:47',11,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(623,'2017-10-05 19:33:47','USER_MODIFY',1,'2017-10-05 21:33:47',11,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(624,'2017-10-05 19:34:23','USER_NEW_PASSWORD',1,'2017-10-05 21:34:23',11,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(625,'2017-10-05 19:34:23','USER_MODIFY',1,'2017-10-05 21:34:23',11,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(626,'2017-10-05 19:34:42','USER_MODIFY',1,'2017-10-05 21:34:42',11,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(627,'2017-10-05 19:36:06','USER_NEW_PASSWORD',1,'2017-10-05 21:36:06',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(628,'2017-10-05 19:36:06','USER_MODIFY',1,'2017-10-05 21:36:06',11,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(629,'2017-10-05 19:36:57','USER_NEW_PASSWORD',1,'2017-10-05 21:36:57',11,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(630,'2017-10-05 19:36:57','USER_MODIFY',1,'2017-10-05 21:36:57',11,'User atheceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(631,'2017-10-05 19:37:27','USER_LOGOUT',1,'2017-10-05 21:37:27',11,'(UserLogoff,atheceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(632,'2017-10-05 19:37:35','USER_LOGIN_FAILED',1,'2017-10-05 21:37:35',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(633,'2017-10-05 19:37:39','USER_LOGIN_FAILED',1,'2017-10-05 21:37:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(634,'2017-10-05 19:37:44','USER_LOGIN_FAILED',1,'2017-10-05 21:37:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(635,'2017-10-05 19:37:49','USER_LOGIN_FAILED',1,'2017-10-05 21:37:49',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(636,'2017-10-05 19:38:12','USER_LOGIN_FAILED',1,'2017-10-05 21:38:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(637,'2017-10-05 19:40:48','USER_LOGIN_FAILED',1,'2017-10-05 21:40:48',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(638,'2017-10-05 19:40:55','USER_LOGIN',1,'2017-10-05 21:40:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(639,'2017-10-05 19:43:34','USER_MODIFY',1,'2017-10-05 21:43:34',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(640,'2017-10-05 19:45:43','USER_CREATE',1,'2017-10-05 21:45:43',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(641,'2017-10-05 19:45:43','USER_NEW_PASSWORD',1,'2017-10-05 21:45:43',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(642,'2017-10-05 19:46:18','USER_DELETE',1,'2017-10-05 21:46:18',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(643,'2017-10-05 19:47:09','USER_MODIFY',1,'2017-10-05 21:47:09',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(644,'2017-10-05 19:47:22','USER_MODIFY',1,'2017-10-05 21:47:22',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(645,'2017-10-05 19:52:05','USER_MODIFY',1,'2017-10-05 21:52:05',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(646,'2017-10-05 19:52:23','USER_MODIFY',1,'2017-10-05 21:52:23',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(647,'2017-10-05 19:54:54','USER_NEW_PASSWORD',1,'2017-10-05 21:54:54',12,'Password change for zzeceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(648,'2017-10-05 19:54:54','USER_MODIFY',1,'2017-10-05 21:54:54',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(649,'2017-10-05 19:57:02','USER_MODIFY',1,'2017-10-05 21:57:02',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(650,'2017-10-05 19:57:57','USER_NEW_PASSWORD',1,'2017-10-05 21:57:57',12,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(651,'2017-10-05 19:57:57','USER_MODIFY',1,'2017-10-05 21:57:57',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(652,'2017-10-05 19:59:42','USER_NEW_PASSWORD',1,'2017-10-05 21:59:42',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(653,'2017-10-05 19:59:42','USER_MODIFY',1,'2017-10-05 21:59:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(654,'2017-10-05 20:00:21','USER_MODIFY',1,'2017-10-05 22:00:21',12,'User adminx modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(655,'2017-10-05 20:05:36','USER_MODIFY',1,'2017-10-05 22:05:36',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(656,'2017-10-05 20:06:25','USER_MODIFY',1,'2017-10-05 22:06:25',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(657,'2017-10-05 20:07:18','USER_MODIFY',1,'2017-10-05 22:07:18',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(658,'2017-10-05 20:07:36','USER_MODIFY',1,'2017-10-05 22:07:36',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(659,'2017-10-05 20:08:34','USER_MODIFY',1,'2017-10-05 22:08:34',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(660,'2017-10-05 20:47:52','USER_CREATE',1,'2017-10-05 22:47:52',12,'User cc1 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(661,'2017-10-05 20:47:52','USER_NEW_PASSWORD',1,'2017-10-05 22:47:52',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(662,'2017-10-05 20:47:55','USER_LOGOUT',1,'2017-10-05 22:47:55',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(663,'2017-10-05 20:48:08','USER_LOGIN',1,'2017-10-05 22:48:08',11,'(UserLogged,zzeceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x434','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(664,'2017-10-05 20:48:39','USER_CREATE',1,'2017-10-05 22:48:39',11,'User cc2 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(665,'2017-10-05 20:48:39','USER_NEW_PASSWORD',1,'2017-10-05 22:48:39',11,'Password change for cc2','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(666,'2017-10-05 20:48:59','USER_NEW_PASSWORD',1,'2017-10-05 22:48:59',11,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(667,'2017-10-05 20:48:59','USER_MODIFY',1,'2017-10-05 22:48:59',11,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(668,'2017-10-05 21:06:36','USER_LOGOUT',1,'2017-10-05 23:06:35',11,'(UserLogoff,zzeceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(669,'2017-10-05 21:06:44','USER_LOGIN_FAILED',1,'2017-10-05 23:06:44',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(670,'2017-10-05 21:07:12','USER_LOGIN_FAILED',1,'2017-10-05 23:07:12',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(671,'2017-10-05 21:07:19','USER_LOGIN_FAILED',1,'2017-10-05 23:07:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(672,'2017-10-05 21:07:27','USER_LOGIN_FAILED',1,'2017-10-05 23:07:27',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(673,'2017-10-05 21:07:32','USER_LOGIN',1,'2017-10-05 23:07:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(674,'2017-10-05 21:12:28','USER_NEW_PASSWORD',1,'2017-10-05 23:12:28',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(675,'2017-10-05 21:12:28','USER_MODIFY',1,'2017-10-05 23:12:28',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(676,'2017-10-05 21:13:00','USER_CREATE',1,'2017-10-05 23:13:00',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(677,'2017-10-05 21:13:00','USER_NEW_PASSWORD',1,'2017-10-05 23:13:00',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(678,'2017-10-05 21:13:40','USER_DELETE',1,'2017-10-05 23:13:40',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(679,'2017-10-05 21:14:47','USER_LOGOUT',1,'2017-10-05 23:14:47',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(680,'2017-10-05 21:14:56','USER_LOGIN',1,'2017-10-05 23:14:56',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(681,'2017-10-05 21:15:56','USER_LOGOUT',1,'2017-10-05 23:15:56',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(682,'2017-10-05 21:16:06','USER_LOGIN',1,'2017-10-05 23:16:06',17,'(UserLogged,cc2) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(683,'2017-10-05 21:37:25','USER_LOGOUT',1,'2017-10-05 23:37:25',17,'(UserLogoff,cc2)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(684,'2017-10-05 21:37:31','USER_LOGIN',1,'2017-10-05 23:37:31',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(685,'2017-10-05 21:43:53','USER_LOGOUT',1,'2017-10-05 23:43:53',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(686,'2017-10-05 21:44:00','USER_LOGIN',1,'2017-10-05 23:44:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(687,'2017-10-05 21:46:17','USER_LOGOUT',1,'2017-10-05 23:46:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(688,'2017-10-05 21:46:24','USER_LOGIN',1,'2017-10-05 23:46:24',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(689,'2017-11-04 15:17:06','USER_LOGIN',1,'2017-11-04 16:17:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(690,'2017-11-15 22:04:04','USER_LOGIN',1,'2017-11-15 23:04:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(691,'2017-11-15 22:23:45','USER_MODIFY',1,'2017-11-15 23:23:45',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(692,'2017-11-15 22:24:22','USER_MODIFY',1,'2017-11-15 23:24:22',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(693,'2017-11-15 22:24:53','USER_MODIFY',1,'2017-11-15 23:24:53',12,'User cc2 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(694,'2017-11-15 22:25:17','USER_MODIFY',1,'2017-11-15 23:25:17',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(695,'2017-11-15 22:45:37','USER_LOGOUT',1,'2017-11-15 23:45:37',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(696,'2017-11-18 13:41:02','USER_LOGIN',1,'2017-11-18 14:41:02',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(697,'2017-11-18 14:23:35','USER_LOGIN',1,'2017-11-18 15:23:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(698,'2017-11-18 15:15:46','USER_LOGOUT',1,'2017-11-18 16:15:46',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(699,'2017-11-18 15:15:51','USER_LOGIN',1,'2017-11-18 16:15:51',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(700,'2017-11-30 17:52:08','USER_LOGIN',1,'2017-11-30 18:52:08',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(701,'2018-01-10 16:45:43','USER_LOGIN',1,'2018-01-10 17:45:43',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(702,'2018-01-10 16:45:52','USER_LOGOUT',1,'2018-01-10 17:45:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(703,'2018-01-10 16:46:06','USER_LOGIN',1,'2018-01-10 17:46:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(704,'2018-01-16 14:53:47','USER_LOGIN',1,'2018-01-16 15:53:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(705,'2018-01-16 15:04:29','USER_LOGOUT',1,'2018-01-16 16:04:29',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(706,'2018-01-16 15:04:40','USER_LOGIN',1,'2018-01-16 16:04:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(707,'2018-01-22 09:33:26','USER_LOGIN',1,'2018-01-22 10:33:26',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(708,'2018-01-22 09:35:19','USER_LOGOUT',1,'2018-01-22 10:35:19',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(709,'2018-01-22 09:35:29','USER_LOGIN',1,'2018-01-22 10:35:29',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(710,'2018-01-22 10:47:34','USER_CREATE',1,'2018-01-22 11:47:34',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(711,'2018-01-22 10:47:34','USER_NEW_PASSWORD',1,'2018-01-22 11:47:34',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(712,'2018-01-22 12:07:56','USER_LOGIN',1,'2018-01-22 13:07:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(713,'2018-01-22 12:36:25','USER_NEW_PASSWORD',1,'2018-01-22 13:36:25',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(714,'2018-01-22 12:36:25','USER_MODIFY',1,'2018-01-22 13:36:25',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(715,'2018-01-22 12:56:32','USER_MODIFY',1,'2018-01-22 13:56:32',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(716,'2018-01-22 12:58:05','USER_MODIFY',1,'2018-01-22 13:58:05',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(717,'2018-01-22 13:01:02','USER_MODIFY',1,'2018-01-22 14:01:02',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(718,'2018-01-22 13:01:18','USER_MODIFY',1,'2018-01-22 14:01:18',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(719,'2018-01-22 13:13:42','USER_MODIFY',1,'2018-01-22 14:13:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(720,'2018-01-22 13:15:20','USER_DELETE',1,'2018-01-22 14:15:20',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(721,'2018-01-22 13:19:21','USER_LOGOUT',1,'2018-01-22 14:19:21',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(722,'2018-01-22 13:19:32','USER_LOGIN',1,'2018-01-22 14:19:32',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(723,'2018-01-22 13:19:51','USER_LOGOUT',1,'2018-01-22 14:19:51',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(724,'2018-01-22 13:20:01','USER_LOGIN',1,'2018-01-22 14:20:01',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(725,'2018-01-22 13:28:22','USER_LOGOUT',1,'2018-01-22 14:28:22',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(726,'2018-01-22 13:28:35','USER_LOGIN',1,'2018-01-22 14:28:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(727,'2018-01-22 13:33:54','USER_LOGOUT',1,'2018-01-22 14:33:54',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(728,'2018-01-22 13:34:05','USER_LOGIN',1,'2018-01-22 14:34:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(729,'2018-01-22 13:51:46','USER_MODIFY',1,'2018-01-22 14:51:46',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(730,'2018-01-22 16:20:12','USER_LOGIN',1,'2018-01-22 17:20:12',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(731,'2018-01-22 16:20:22','USER_LOGOUT',1,'2018-01-22 17:20:22',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(732,'2018-01-22 16:20:36','USER_LOGIN',1,'2018-01-22 17:20:36',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(733,'2018-01-22 16:27:02','USER_CREATE',1,'2018-01-22 17:27:02',12,'User ldestailleur created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(734,'2018-01-22 16:27:02','USER_NEW_PASSWORD',1,'2018-01-22 17:27:02',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(735,'2018-01-22 16:28:34','USER_MODIFY',1,'2018-01-22 17:28:34',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(736,'2018-01-22 16:30:01','USER_ENABLEDISABLE',1,'2018-01-22 17:30:01',12,'User cc2 activated','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(737,'2018-01-22 17:11:06','USER_LOGIN',1,'2018-01-22 18:11:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(738,'2018-01-22 18:00:02','USER_DELETE',1,'2018-01-22 19:00:02',12,'User zzz removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(739,'2018-01-22 18:01:40','USER_DELETE',1,'2018-01-22 19:01:40',12,'User aaab removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(740,'2018-01-22 18:01:52','USER_DELETE',1,'2018-01-22 19:01:52',12,'User zzzg removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(741,'2018-03-13 10:54:59','USER_LOGIN',1,'2018-03-13 14:54:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x971','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36',NULL,NULL,NULL,NULL),(742,'2018-07-30 11:13:10','USER_LOGIN',1,'2018-07-30 15:13:10',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(743,'2018-07-30 12:50:23','USER_CREATE',1,'2018-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(744,'2018-07-30 12:50:23','USER_CREATE',1,'2018-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(745,'2018-07-30 12:50:23','USER_NEW_PASSWORD',1,'2018-07-30 16:50:23',12,'Password change for eldy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(746,'2018-07-30 12:50:38','USER_MODIFY',1,'2018-07-30 16:50:38',12,'User eldy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(747,'2018-07-30 12:50:54','USER_DELETE',1,'2018-07-30 16:50:54',12,'User eldy removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(748,'2018-07-30 12:51:23','USER_NEW_PASSWORD',1,'2018-07-30 16:51:23',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(749,'2018-07-30 12:51:23','USER_MODIFY',1,'2018-07-30 16:51:23',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(750,'2018-07-30 18:26:58','USER_LOGIN',1,'2018-07-30 22:26:58',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(751,'2018-07-30 18:27:40','USER_LOGOUT',1,'2018-07-30 22:27:40',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(752,'2018-07-30 18:27:47','USER_LOGIN',1,'2018-07-30 22:27:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(753,'2018-07-30 19:00:00','USER_LOGOUT',1,'2018-07-30 23:00:00',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(754,'2018-07-30 19:00:04','USER_LOGIN',1,'2018-07-30 23:00:04',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(755,'2018-07-30 19:00:14','USER_LOGOUT',1,'2018-07-30 23:00:14',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(756,'2018-07-30 19:00:19','USER_LOGIN',1,'2018-07-30 23:00:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(757,'2018-07-30 19:00:43','USER_LOGOUT',1,'2018-07-30 23:00:43',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(758,'2018-07-30 19:00:48','USER_LOGIN',1,'2018-07-30 23:00:48',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(759,'2018-07-30 19:03:52','USER_LOGOUT',1,'2018-07-30 23:03:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(760,'2018-07-30 19:03:57','USER_LOGIN_FAILED',1,'2018-07-30 23:03:57',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(761,'2018-07-30 19:03:59','USER_LOGIN',1,'2018-07-30 23:03:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(762,'2018-07-30 19:04:13','USER_LOGOUT',1,'2018-07-30 23:04:13',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(763,'2018-07-30 19:04:17','USER_LOGIN',1,'2018-07-30 23:04:17',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(764,'2018-07-30 19:04:26','USER_LOGOUT',1,'2018-07-30 23:04:26',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(765,'2018-07-30 19:04:31','USER_LOGIN',1,'2018-07-30 23:04:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(766,'2018-07-30 19:10:50','USER_LOGOUT',1,'2018-07-30 23:10:50',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(767,'2018-07-30 19:10:54','USER_LOGIN',1,'2018-07-30 23:10:54',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(768,'2018-07-31 10:15:52','USER_LOGIN',1,'2018-07-31 14:15:52',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL,NULL,NULL,NULL),(769,'2018-07-31 10:16:27','USER_LOGIN',1,'2018-07-31 14:16:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(770,'2018-07-31 10:32:14','USER_LOGIN',1,'2018-07-31 14:32:14',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL,NULL,NULL,NULL),(771,'2018-07-31 10:36:28','USER_LOGIN',1,'2018-07-31 14:36:28',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL,NULL,NULL,NULL),(772,'2018-07-31 10:40:10','USER_LOGIN',1,'2018-07-31 14:40:10',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL,NULL,NULL,NULL),(773,'2018-07-31 10:54:16','USER_LOGIN',1,'2018-07-31 14:54:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL,NULL,NULL,NULL),(774,'2018-07-31 12:52:52','USER_LOGIN',1,'2018-07-31 16:52:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x592','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(775,'2018-07-31 13:25:33','USER_LOGOUT',1,'2018-07-31 17:25:33',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(776,'2018-07-31 13:26:32','USER_LOGIN',1,'2018-07-31 17:26:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1280x751','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(777,'2018-07-31 14:13:57','USER_LOGOUT',1,'2018-07-31 18:13:57',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(778,'2018-07-31 14:14:04','USER_LOGIN',1,'2018-07-31 18:14:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(779,'2018-07-31 16:04:35','USER_LOGIN',1,'2018-07-31 20:04:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(780,'2018-07-31 21:14:14','USER_LOGIN',1,'2018-08-01 01:14:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(781,'2017-01-29 15:14:05','USER_LOGOUT',1,'2017-01-29 19:14:05',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(782,'2017-01-29 15:34:43','USER_LOGIN',1,'2017-01-29 19:34:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(783,'2017-01-29 15:35:04','USER_LOGOUT',1,'2017-01-29 19:35:04',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(784,'2017-01-29 15:35:12','USER_LOGIN',1,'2017-01-29 19:35:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(785,'2017-01-29 15:36:43','USER_LOGOUT',1,'2017-01-29 19:36:43',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(786,'2017-01-29 15:41:21','USER_LOGIN',1,'2017-01-29 19:41:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(787,'2017-01-29 15:41:41','USER_LOGOUT',1,'2017-01-29 19:41:41',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(788,'2017-01-29 15:42:43','USER_LOGIN',1,'2017-01-29 19:42:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(789,'2017-01-29 15:43:18','USER_LOGOUT',1,'2017-01-29 19:43:18',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(790,'2017-01-29 15:46:31','USER_LOGIN',1,'2017-01-29 19:46:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(791,'2017-01-29 16:18:56','USER_LOGIN',1,'2017-01-29 20:18:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=360x526','192.168.0.254','Mozilla/5.0 (Linux; Android 6.0; LG-H818 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 - DoliDroid - Android client pour Dolibarr ERP-CRM',NULL,NULL,NULL,NULL),(792,'2017-01-29 17:20:59','USER_LOGIN',1,'2017-01-29 21:20:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(793,'2017-01-30 11:19:40','USER_LOGIN',1,'2017-01-30 15:19:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(794,'2017-01-31 16:49:39','USER_LOGIN',1,'2017-01-31 20:49:39',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x520','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(795,'2017-02-01 10:55:23','USER_LOGIN',1,'2017-02-01 14:55:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(796,'2017-02-01 13:34:31','USER_LOGIN',1,'2017-02-01 17:34:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(797,'2017-02-01 14:41:26','USER_LOGIN',1,'2017-02-01 18:41:26',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(798,'2017-02-01 23:51:48','USER_LOGIN_FAILED',1,'2017-02-02 03:51:48',NULL,'Bad value for login or password - login=autologin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(799,'2017-02-01 23:52:55','USER_LOGIN',1,'2017-02-02 03:52:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(800,'2017-02-01 23:55:45','USER_CREATE',1,'2017-02-02 03:55:45',12,'User aboston created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(801,'2017-02-01 23:55:45','USER_NEW_PASSWORD',1,'2017-02-02 03:55:45',12,'Password change for aboston','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(802,'2017-02-01 23:56:38','USER_MODIFY',1,'2017-02-02 03:56:38',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(803,'2017-02-01 23:56:50','USER_MODIFY',1,'2017-02-02 03:56:50',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(804,'2017-02-02 01:14:44','USER_LOGIN',1,'2017-02-02 05:14:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(805,'2017-02-03 10:27:18','USER_LOGIN',1,'2017-02-03 14:27:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(806,'2017-02-04 10:22:34','USER_LOGIN',1,'2017-02-04 14:22:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x489','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(807,'2017-02-06 04:01:31','USER_LOGIN',1,'2017-02-06 08:01:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(808,'2017-02-06 10:21:32','USER_LOGIN',1,'2017-02-06 14:21:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(809,'2017-02-06 19:09:27','USER_LOGIN',1,'2017-02-06 23:09:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(810,'2017-02-06 23:39:17','USER_LOGIN',1,'2017-02-07 03:39:17',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(811,'2017-02-07 11:36:34','USER_LOGIN',1,'2017-02-07 15:36:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x676','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(812,'2017-02-07 18:51:53','USER_LOGIN',1,'2017-02-07 22:51:53',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(813,'2017-02-07 23:13:40','USER_LOGIN',1,'2017-02-08 03:13:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(814,'2017-02-08 09:29:12','USER_LOGIN',1,'2017-02-08 13:29:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(815,'2017-02-08 17:33:12','USER_LOGIN',1,'2017-02-08 21:33:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(816,'2017-02-09 17:30:34','USER_LOGIN',1,'2017-02-09 21:30:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(817,'2017-02-10 09:30:02','USER_LOGIN',1,'2017-02-10 13:30:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(818,'2017-02-10 16:16:14','USER_LOGIN',1,'2017-02-10 20:16:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(819,'2017-02-10 17:28:15','USER_LOGIN',1,'2017-02-10 21:28:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(820,'2017-02-11 12:54:03','USER_LOGIN',1,'2017-02-11 16:54:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(821,'2017-02-11 17:23:52','USER_LOGIN',1,'2017-02-11 21:23:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(822,'2017-02-12 12:44:03','USER_LOGIN',1,'2017-02-12 16:44:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(823,'2017-02-12 16:42:13','USER_LOGIN',1,'2017-02-12 20:42:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(824,'2017-02-12 19:14:18','USER_LOGIN',1,'2017-02-12 23:14:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(825,'2017-02-15 17:17:00','USER_LOGIN',1,'2017-02-15 21:17:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(826,'2017-02-15 22:02:40','USER_LOGIN',1,'2017-02-16 02:02:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(827,'2017-02-16 22:13:27','USER_LOGIN',1,'2017-02-17 02:13:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x619','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(828,'2017-02-16 23:54:04','USER_LOGIN',1,'2017-02-17 03:54:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(829,'2017-02-17 09:14:27','USER_LOGIN',1,'2017-02-17 13:14:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(830,'2017-02-17 12:07:05','USER_LOGIN',1,'2017-02-17 16:07:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(831,'2017-02-19 21:22:20','USER_LOGIN',1,'2017-02-20 01:22:20',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(832,'2017-02-20 09:26:47','USER_LOGIN',1,'2017-02-20 13:26:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(833,'2017-02-20 16:39:55','USER_LOGIN',1,'2017-02-20 20:39:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(834,'2017-02-20 16:49:00','USER_MODIFY',1,'2017-02-20 20:49:00',12,'Modification utilisateur ccommerson','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(835,'2017-02-20 17:57:15','USER_LOGIN',1,'2017-02-20 21:57:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(836,'2017-02-20 19:43:48','USER_LOGIN',1,'2017-02-20 23:43:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(837,'2017-02-21 00:04:05','USER_LOGIN',1,'2017-02-21 04:04:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(838,'2017-02-21 10:23:13','USER_LOGIN',1,'2017-02-21 14:23:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(839,'2017-02-21 10:30:17','USER_LOGOUT',1,'2017-02-21 14:30:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(840,'2017-02-21 10:30:22','USER_LOGIN',1,'2017-02-21 14:30:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(841,'2017-02-21 11:44:05','USER_LOGIN',1,'2017-02-21 15:44:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(842,'2017-05-12 09:02:48','USER_LOGIN',1,'2017-05-12 13:02:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',NULL,NULL,NULL,NULL),(843,'2017-08-27 13:29:16','USER_LOGIN',1,'2017-08-27 17:29:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(844,'2017-08-28 09:11:07','USER_LOGIN',1,'2017-08-28 13:11:07',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(845,'2017-08-28 10:08:58','USER_LOGIN',1,'2017-08-28 14:08:58',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(846,'2017-08-28 10:12:46','USER_MODIFY',1,'2017-08-28 14:12:46',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(847,'2017-08-28 10:28:25','USER_LOGIN',1,'2017-08-28 14:28:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(848,'2017-08-28 10:28:36','USER_LOGOUT',1,'2017-08-28 14:28:36',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(849,'2017-08-28 10:34:50','USER_LOGIN',1,'2017-08-28 14:34:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(850,'2017-08-28 11:59:02','USER_LOGIN',1,'2017-08-28 15:59:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(851,'2017-08-29 09:57:34','USER_LOGIN',1,'2017-08-29 13:57:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(852,'2017-08-29 11:05:51','USER_LOGIN',1,'2017-08-29 15:05:51',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(853,'2017-08-29 14:15:58','USER_LOGIN',1,'2017-08-29 18:15:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(854,'2017-08-29 17:49:28','USER_LOGIN',1,'2017-08-29 21:49:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(855,'2017-08-30 11:53:25','USER_LOGIN',1,'2017-08-30 15:53:25',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(856,'2017-08-30 12:19:31','USER_MODIFY',1,'2017-08-30 16:19:31',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(857,'2017-08-30 12:19:32','USER_MODIFY',1,'2017-08-30 16:19:32',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(858,'2017-08-30 12:19:33','USER_MODIFY',1,'2017-08-30 16:19:33',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(859,'2017-08-30 12:21:42','USER_LOGOUT',1,'2017-08-30 16:21:42',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(860,'2017-08-30 12:21:48','USER_LOGIN',1,'2017-08-30 16:21:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(861,'2017-08-30 15:02:06','USER_LOGIN',1,'2017-08-30 19:02:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(862,'2017-08-31 09:25:42','USER_LOGIN',1,'2017-08-31 13:25:42',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(863,'2017-09-04 07:51:21','USER_LOGIN',1,'2017-09-04 11:51:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x577','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(864,'2017-09-04 09:17:09','USER_LOGIN',1,'2017-09-04 13:17:09',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(865,'2017-09-04 13:40:28','USER_LOGIN',1,'2017-09-04 17:40:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(866,'2017-09-06 07:55:30','USER_LOGIN',1,'2017-09-06 11:55:30',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(867,'2017-09-06 07:55:33','USER_LOGOUT',1,'2017-09-06 11:55:33',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(868,'2017-09-06 07:55:38','USER_LOGIN',1,'2017-09-06 11:55:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(869,'2017-09-06 16:03:38','USER_LOGIN',1,'2017-09-06 20:03:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(870,'2017-09-06 19:43:07','USER_LOGIN',1,'2017-09-06 23:43:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(871,'2018-01-19 11:18:08','USER_LOGOUT',1,'2018-01-19 11:18:08',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL,NULL,NULL,NULL),(872,'2018-01-19 11:18:47','USER_LOGIN',1,'2018-01-19 11:18:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x965','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL,NULL,NULL,NULL),(873,'2018-01-19 11:21:41','USER_LOGIN',1,'2018-01-19 11:21:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x926','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(874,'2018-01-19 11:24:18','USER_NEW_PASSWORD',1,'2018-01-19 11:24:18',12,'Password change for admin','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(875,'2018-01-19 11:24:18','USER_MODIFY',1,'2018-01-19 11:24:18',12,'User admin modified','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(876,'2018-01-19 11:28:45','USER_LOGOUT',1,'2018-01-19 11:28:45',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(877,'2018-03-16 09:54:15','USER_LOGIN_FAILED',1,'2018-03-16 13:54:15',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL,NULL,NULL,NULL),(878,'2018-03-16 09:54:23','USER_LOGIN',1,'2018-03-16 13:54:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x936','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL,NULL,NULL,NULL),(879,'2019-09-26 11:35:07','USER_MODIFY',1,'2019-09-26 13:35:07',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(880,'2019-09-26 11:35:33','USER_MODIFY',1,'2019-09-26 13:35:33',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(881,'2019-09-26 11:36:33','USER_MODIFY',1,'2019-09-26 13:36:33',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(882,'2019-09-26 11:36:56','USER_MODIFY',1,'2019-09-26 13:36:56',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(883,'2019-09-26 11:37:30','USER_MODIFY',1,'2019-09-26 13:37:30',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(884,'2019-09-26 11:37:56','USER_MODIFY',1,'2019-09-26 13:37:56',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(885,'2019-09-26 11:38:11','USER_MODIFY',1,'2019-09-26 13:38:11',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(886,'2019-09-26 11:38:27','USER_MODIFY',1,'2019-09-26 13:38:27',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(887,'2019-09-26 11:38:48','USER_MODIFY',1,'2019-09-26 13:38:48',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(888,'2019-09-26 11:39:35','USER_MODIFY',1,'2019-09-26 13:39:35',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(889,'2019-09-26 11:41:28','USER_MODIFY',1,'2019-09-26 13:41:28',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(890,'2019-09-26 11:43:27','USER_MODIFY',1,'2019-09-26 13:43:27',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(891,'2019-09-26 11:46:44','USER_MODIFY',1,'2019-09-26 13:46:44',12,'User aleerfok modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(892,'2019-09-26 11:46:54','USER_MODIFY',1,'2019-09-26 13:46:54',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(893,'2019-09-26 11:47:08','USER_MODIFY',1,'2019-09-26 13:47:08',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(894,'2019-09-26 11:48:04','USER_MODIFY',1,'2019-09-26 13:48:04',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(895,'2019-09-26 11:48:32','USER_MODIFY',1,'2019-09-26 13:48:32',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(896,'2019-09-26 11:48:49','USER_MODIFY',1,'2019-09-26 13:48:49',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(897,'2019-09-26 11:49:12','USER_MODIFY',1,'2019-09-26 13:49:12',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(898,'2019-09-26 11:49:21','USER_MODIFY',1,'2019-09-26 13:49:21',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(899,'2019-09-26 11:49:28','USER_MODIFY',1,'2019-09-26 13:49:28',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(900,'2019-09-26 11:49:37','USER_MODIFY',1,'2019-09-26 13:49:37',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(901,'2019-09-26 11:49:46','USER_MODIFY',1,'2019-09-26 13:49:46',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(902,'2019-09-26 11:49:57','USER_MODIFY',1,'2019-09-26 13:49:57',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(903,'2019-09-26 11:50:17','USER_MODIFY',1,'2019-09-26 13:50:17',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(904,'2019-09-26 11:50:43','USER_MODIFY',1,'2019-09-26 13:50:43',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(905,'2019-09-26 11:51:10','USER_MODIFY',1,'2019-09-26 13:51:10',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(906,'2019-09-26 11:51:36','USER_MODIFY',1,'2019-09-26 13:51:36',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(907,'2019-09-26 11:52:16','USER_MODIFY',1,'2019-09-26 13:52:16',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(908,'2019-09-26 11:52:35','USER_MODIFY',1,'2019-09-26 13:52:35',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(909,'2019-09-26 11:52:59','USER_MODIFY',1,'2019-09-26 13:52:59',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(910,'2019-09-26 11:53:28','USER_MODIFY',1,'2019-09-26 13:53:28',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(911,'2019-09-26 11:53:50','USER_MODIFY',1,'2019-09-26 13:53:50',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(912,'2019-09-26 11:54:18','USER_MODIFY',1,'2019-09-26 13:54:18',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(913,'2019-09-26 11:54:43','USER_MODIFY',1,'2019-09-26 13:54:43',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(914,'2019-09-26 11:55:09','USER_MODIFY',1,'2019-09-26 13:55:09',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(915,'2019-09-26 11:55:23','USER_MODIFY',1,'2019-09-26 13:55:23',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(916,'2019-09-26 11:55:35','USER_MODIFY',1,'2019-09-26 13:55:35',12,'User aleerfok modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(917,'2019-09-26 11:55:58','USER_MODIFY',1,'2019-09-26 13:55:58',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(918,'2019-09-26 15:28:46','USER_LOGIN_FAILED',1,'2019-09-26 17:28:46',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(919,'2019-09-26 15:28:51','USER_LOGIN_FAILED',1,'2019-09-26 17:28:51',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(920,'2019-09-26 15:28:55','USER_LOGIN',1,'2019-09-26 17:28:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(921,'2019-09-27 14:51:19','USER_LOGIN_FAILED',1,'2019-09-27 16:51:19',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(922,'2019-09-27 14:51:49','USER_LOGIN_FAILED',1,'2019-09-27 16:51:49',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(923,'2019-09-27 14:51:55','USER_LOGIN_FAILED',1,'2019-09-27 16:51:55',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(924,'2019-09-27 14:52:22','USER_LOGIN_FAILED',1,'2019-09-27 16:52:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(925,'2019-09-27 14:52:41','USER_LOGIN',1,'2019-09-27 16:52:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(926,'2019-09-27 15:47:07','USER_LOGIN_FAILED',1,'2019-09-27 17:47:07',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(927,'2019-09-27 15:47:09','USER_LOGIN_FAILED',1,'2019-09-27 17:47:09',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(928,'2019-09-27 15:47:12','USER_LOGIN',1,'2019-09-27 17:47:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(929,'2019-09-27 16:39:57','USER_LOGIN',1,'2019-09-27 18:39:57',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(930,'2019-09-30 13:49:22','USER_LOGIN_FAILED',1,'2019-09-30 15:49:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(931,'2019-09-30 13:49:27','USER_LOGIN_FAILED',1,'2019-09-30 15:49:27',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(932,'2019-09-30 13:49:30','USER_LOGIN',1,'2019-09-30 15:49:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(933,'2019-09-30 15:49:05','USER_LOGIN_FAILED',1,'2019-09-30 17:49:05',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(934,'2019-09-30 15:49:08','USER_LOGIN',1,'2019-09-30 17:49:08',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(935,'2019-10-01 11:47:44','USER_LOGIN',1,'2019-10-01 13:47:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(936,'2019-10-01 13:24:03','USER_LOGIN',1,'2019-10-01 15:24:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(937,'2019-10-02 11:41:30','USER_LOGIN_FAILED',1,'2019-10-02 13:41:30',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(938,'2019-10-02 11:41:35','USER_LOGIN',1,'2019-10-02 13:41:35',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x899','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(939,'2019-10-02 17:01:42','USER_LOGIN_FAILED',1,'2019-10-02 19:01:42',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(940,'2019-10-02 17:01:44','USER_LOGIN',1,'2019-10-02 19:01:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(941,'2019-10-04 08:06:36','USER_LOGIN_FAILED',1,'2019-10-04 10:06:36',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(942,'2019-10-04 08:06:40','USER_LOGIN',1,'2019-10-04 10:06:40',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(943,'2019-10-04 08:06:46','USER_LOGOUT',1,'2019-10-04 10:06:46',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(944,'2019-10-04 08:06:50','USER_LOGIN',1,'2019-10-04 10:06:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(945,'2019-10-04 10:28:53','USER_LOGIN_FAILED',1,'2019-10-04 12:28:53',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(946,'2019-10-04 10:31:06','USER_LOGIN',1,'2019-10-04 12:31:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x520','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(947,'2019-10-04 14:55:58','USER_LOGIN',1,'2019-10-04 16:55:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(948,'2019-10-04 16:45:36','USER_LOGIN_FAILED',1,'2019-10-04 18:45:36',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(949,'2019-10-04 16:45:40','USER_LOGIN',1,'2019-10-04 18:45:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x899','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(950,'2019-10-05 09:10:32','USER_LOGIN',1,'2019-10-05 11:10:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(951,'2019-10-06 09:02:10','USER_LOGIN_FAILED',1,'2019-10-06 11:02:10',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(952,'2019-10-06 09:02:12','USER_LOGIN',1,'2019-10-06 11:02:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x513','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(953,'2019-10-07 09:00:29','USER_LOGIN_FAILED',1,'2019-10-07 11:00:29',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(954,'2019-10-07 09:00:33','USER_LOGIN',1,'2019-10-07 11:00:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(955,'2019-10-07 15:05:26','USER_LOGIN_FAILED',1,'2019-10-07 17:05:26',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(956,'2019-10-07 15:05:29','USER_LOGIN_FAILED',1,'2019-10-07 17:05:29',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(957,'2019-10-08 09:57:04','USER_LOGIN_FAILED',1,'2019-10-08 11:57:04',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(958,'2019-10-08 09:57:07','USER_LOGIN',1,'2019-10-08 11:57:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x637','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(959,'2019-10-08 11:18:14','USER_LOGIN_FAILED',1,'2019-10-08 13:18:14',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(960,'2019-10-08 11:18:18','USER_LOGIN',1,'2019-10-08 13:18:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(961,'2019-10-08 13:29:24','USER_LOGIN',1,'2019-10-08 15:29:24',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(962,'2019-10-08 17:04:42','USER_LOGIN_FAILED',1,'2019-10-08 19:04:42',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(963,'2019-10-08 17:04:46','USER_LOGIN',1,'2019-10-08 19:04:46',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(964,'2019-10-08 18:37:06','USER_LOGIN_FAILED',1,'2019-10-08 20:37:06',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(965,'2019-10-08 18:38:29','USER_LOGIN_FAILED',1,'2019-10-08 20:38:29',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(966,'2019-10-08 18:38:32','USER_LOGIN',1,'2019-10-08 20:38:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(967,'2019-10-08 19:01:07','USER_MODIFY',1,'2019-10-08 21:01:07',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(968,'2019-11-28 15:09:03','USER_LOGOUT',1,'2019-11-28 19:09:03',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(969,'2019-11-28 15:09:18','USER_LOGIN_FAILED',1,'2019-11-28 19:09:18',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(970,'2019-11-28 15:09:22','USER_LOGIN',1,'2019-11-28 19:09:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(971,'2019-11-28 16:25:52','USER_LOGIN_FAILED',1,'2019-11-28 20:25:52',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(972,'2019-11-28 16:25:56','USER_LOGIN',1,'2019-11-28 20:25:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(973,'2019-11-29 08:43:22','USER_LOGIN_FAILED',1,'2019-11-29 12:43:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(974,'2019-11-29 08:43:24','USER_LOGIN',1,'2019-11-29 12:43:24',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(975,'2019-12-19 11:12:30','USER_LOGIN_FAILED',1,'2019-12-19 15:12:30',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(976,'2019-12-19 11:12:33','USER_LOGIN',1,'2019-12-19 15:12:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(977,'2019-12-20 09:38:10','USER_LOGIN_FAILED',1,'2019-12-20 13:38:10',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(978,'2019-12-20 09:38:13','USER_LOGIN',1,'2019-12-20 13:38:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(979,'2019-12-20 15:59:50','USER_LOGIN',1,'2019-12-20 19:59:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(980,'2019-12-21 13:05:49','USER_LOGIN_FAILED',1,'2019-12-21 17:05:49',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(981,'2019-12-21 13:05:52','USER_LOGIN',1,'2019-12-21 17:05:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x552','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(982,'2019-12-21 15:26:25','USER_LOGIN_FAILED',1,'2019-12-21 19:26:25',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(983,'2019-12-21 15:26:28','USER_LOGIN',1,'2019-12-21 19:26:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(984,'2019-12-21 15:27:00','USER_LOGOUT',1,'2019-12-21 19:27:00',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(985,'2019-12-21 15:27:05','USER_LOGIN',1,'2019-12-21 19:27:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(986,'2019-12-21 15:27:44','USER_LOGOUT',1,'2019-12-21 19:27:44',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(987,'2019-12-21 15:28:04','USER_LOGIN',1,'2019-12-21 19:28:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(988,'2019-12-22 11:59:41','USER_LOGIN',1,'2019-12-22 15:59:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(989,'2019-12-22 15:06:01','USER_LOGIN_FAILED',1,'2019-12-22 19:06:01',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(990,'2019-12-22 15:06:06','USER_LOGIN_FAILED',1,'2019-12-22 19:06:06',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(991,'2019-12-22 15:06:15','USER_LOGIN',1,'2019-12-22 19:06:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(992,'2019-12-22 18:43:21','USER_LOGIN',1,'2019-12-22 22:43:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(993,'2019-12-22 20:16:19','USER_LOGIN',1,'2019-12-23 00:16:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x584','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(994,'2019-12-23 10:05:11','USER_LOGIN_FAILED',1,'2019-12-23 14:05:11',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(995,'2019-12-23 10:05:14','USER_LOGIN',1,'2019-12-23 14:05:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(996,'2019-12-23 13:24:50','USER_LOGIN_FAILED',1,'2019-12-23 17:24:50',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(997,'2019-12-23 13:24:54','USER_LOGIN',1,'2019-12-23 17:24:54',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(998,'2019-12-25 21:37:28','USER_LOGIN_FAILED',1,'2019-12-26 01:37:28',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(999,'2019-12-25 21:37:30','USER_LOGIN',1,'2019-12-26 01:37:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1000,'2020-01-01 10:23:41','USER_LOGIN_FAILED',1,'2020-01-01 14:23:41',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1001,'2020-01-01 10:23:43','USER_LOGIN',1,'2020-01-01 14:23:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1002,'2020-01-01 19:52:00','USER_LOGIN_FAILED',1,'2020-01-01 23:52:00',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1003,'2020-01-01 19:52:07','USER_LOGIN',1,'2020-01-01 23:52:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1004,'2020-01-02 13:46:18','USER_LOGIN',1,'2020-01-02 17:46:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1005,'2020-01-02 14:49:05','USER_LOGIN',1,'2020-01-02 18:49:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x710','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1006,'2020-01-02 16:44:11','USER_LOGIN_FAILED',1,'2020-01-02 20:44:11',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1007,'2020-01-02 16:44:14','USER_LOGIN',1,'2020-01-02 20:44:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1008,'2020-01-02 18:54:45','USER_LOGIN_FAILED',1,'2020-01-02 22:54:45',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1009,'2020-01-02 18:54:48','USER_LOGIN',1,'2020-01-02 22:54:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1010,'2020-01-03 09:22:02','USER_LOGIN_FAILED',1,'2020-01-03 13:22:02',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1011,'2020-01-03 09:22:06','USER_LOGIN',1,'2020-01-03 13:22:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1012,'2020-01-03 11:56:30','USER_LOGIN',1,'2020-01-03 15:56:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1013,'2020-01-04 13:44:25','USER_LOGIN_FAILED',1,'2020-01-04 17:44:25',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1014,'2020-01-04 13:44:28','USER_LOGIN',1,'2020-01-04 17:44:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1015,'2020-01-05 19:36:34','USER_LOGIN_FAILED',1,'2020-01-05 23:36:34',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1016,'2020-01-05 19:36:39','USER_LOGIN',1,'2020-01-05 23:36:39',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1017,'2020-01-06 01:12:23','USER_LOGIN_FAILED',1,'2020-01-06 05:12:23',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1018,'2020-01-06 01:12:25','USER_LOGIN',1,'2020-01-06 05:12:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1019,'2020-01-06 10:33:33','USER_LOGIN',1,'2020-01-06 14:33:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1020,'2020-01-06 13:59:58','USER_LOGIN',1,'2020-01-06 17:59:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1021,'2020-01-06 16:08:41','USER_LOGIN',1,'2020-01-06 20:08:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1022,'2020-01-07 13:19:13','USER_LOGIN',1,'2020-01-07 17:19:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1023,'2020-01-07 15:06:53','USER_LOGIN_FAILED',1,'2020-01-07 19:06:53',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1024,'2020-01-07 15:06:59','USER_LOGIN',1,'2020-01-07 19:06:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1025,'2020-01-07 16:21:53','USER_LOGIN_FAILED',1,'2020-01-07 20:21:53',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1026,'2020-01-07 16:21:56','USER_LOGIN',1,'2020-01-07 20:21:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1027,'2020-01-07 17:46:46','USER_LOGIN',1,'2020-01-07 21:46:46',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1028,'2020-01-08 01:31:40','USER_LOGIN',1,'2020-01-08 05:31:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1029,'2020-01-08 15:32:34','USER_LOGIN_FAILED',1,'2020-01-08 19:32:34',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1030,'2020-01-08 15:32:38','USER_LOGIN',1,'2020-01-08 19:32:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1031,'2020-01-09 15:59:02','USER_LOGIN',1,'2020-01-09 19:59:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1032,'2020-01-09 21:33:47','USER_LOGIN',1,'2020-01-10 01:33:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1033,'2020-01-10 00:42:07','USER_LOGIN',1,'2020-01-10 04:42:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1034,'2020-01-10 22:18:15','USER_LOGIN',1,'2020-01-11 02:18:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1035,'2020-01-11 13:11:59','USER_LOGIN',1,'2020-01-11 17:11:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1036,'2020-01-12 20:13:37','USER_LOGIN',1,'2020-01-13 00:13:37',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1037,'2020-01-12 20:58:27','USER_LOGIN',1,'2020-01-13 00:58:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1038,'2020-01-13 03:35:56','USER_LOGIN',1,'2020-01-13 07:35:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1039,'2020-01-13 10:37:51','USER_LOGIN_FAILED',1,'2020-01-13 14:37:51',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1040,'2020-01-13 10:37:55','USER_LOGIN',1,'2020-01-13 14:37:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1041,'2020-01-13 14:34:55','USER_LOGIN_FAILED',1,'2020-01-13 18:34:55',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1042,'2020-01-13 14:34:58','USER_LOGIN',1,'2020-01-13 18:34:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1043,'2020-01-15 10:28:04','USER_LOGIN_FAILED',1,'2020-01-15 14:28:04',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1044,'2020-01-15 10:28:07','USER_LOGIN',1,'2020-01-15 14:28:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1045,'2020-01-15 11:49:56','USER_LOGIN_FAILED',1,'2020-01-15 15:49:56',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1046,'2020-01-15 11:49:58','USER_LOGIN',1,'2020-01-15 15:49:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1047,'2020-01-15 13:35:01','USER_LOGIN_FAILED',1,'2020-01-15 17:35:01',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1048,'2020-01-15 13:35:04','USER_LOGIN',1,'2020-01-15 17:35:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1049,'2020-01-15 14:41:15','USER_LOGIN_FAILED',1,'2020-01-15 18:41:15',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1050,'2020-01-15 14:41:18','USER_LOGIN',1,'2020-01-15 18:41:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1051,'2020-01-15 18:14:40','USER_LOGIN',1,'2020-01-15 22:14:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1052,'2020-01-15 20:03:35','USER_LOGIN',1,'2020-01-16 00:03:35',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1053,'2020-01-15 20:41:56','USER_LOGIN',1,'2020-01-16 00:41:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1054,'2020-01-16 01:01:22','USER_LOGIN',1,'2020-01-16 02:01:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1055,'2020-01-16 15:43:23','USER_LOGIN',1,'2020-01-16 16:43:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1056,'2020-01-16 15:44:42','USER_ENABLEDISABLE',1,'2020-01-16 16:44:42',12,'User aboston activated','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1057,'2020-01-16 17:01:27','USER_LOGIN',1,'2020-01-16 18:01:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1058,'2020-01-17 09:34:03','USER_LOGIN',1,'2020-01-17 10:34:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1059,'2020-01-18 15:17:00','USER_LOGIN',1,'2020-01-18 16:17:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x899','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1060,'2020-01-18 18:32:21','USER_LOGIN',1,'2020-01-18 19:32:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x672','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1061,'2020-01-19 13:20:27','USER_LOGIN_FAILED',1,'2020-01-19 14:20:27',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1062,'2020-01-19 13:20:30','USER_LOGIN',1,'2020-01-19 14:20:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1063,'2020-01-19 17:05:23','USER_LOGIN',1,'2020-01-19 18:05:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1064,'2020-01-19 19:29:37','USER_LOGIN',1,'2020-01-19 20:29:37',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1065,'2020-01-20 00:19:16','USER_LOGIN_FAILED',1,'2020-01-20 01:19:16',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1066,'2020-01-20 00:19:19','USER_LOGIN',1,'2020-01-20 01:19:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1067,'2020-01-20 10:20:00','USER_LOGIN',1,'2020-01-20 11:20:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1068,'2020-01-20 13:29:21','USER_LOGIN',1,'2020-01-20 14:29:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1069,'2020-01-20 16:20:00','USER_LOGIN',1,'2020-01-20 17:20:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1070,'2020-01-20 22:52:22','USER_LOGIN_FAILED',1,'2020-01-20 23:52:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1071,'2020-01-20 22:52:25','USER_LOGIN',1,'2020-01-20 23:52:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1072,'2020-01-20 23:43:37','USER_LOGIN_FAILED',1,'2020-01-21 00:43:37',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1073,'2020-01-20 23:43:41','USER_LOGIN',1,'2020-01-21 00:43:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x643','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1074,'2020-01-21 09:21:05','USER_LOGIN_FAILED',1,'2020-01-21 10:21:05',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1075,'2020-01-21 09:21:09','USER_LOGIN',1,'2020-01-21 10:21:09',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x870','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1076,'2020-01-21 09:33:53','USER_LOGOUT',1,'2020-01-21 10:33:53',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1077,'2020-01-21 09:35:27','USER_LOGIN',1,'2020-01-21 10:35:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1078,'2020-01-21 09:35:52','USER_LOGOUT',1,'2020-01-21 10:35:52',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1079,'2020-01-21 09:38:41','USER_LOGIN',1,'2020-01-21 10:38:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1080,'2021-04-15 10:38:52','USER_NEW_PASSWORD',1,'2021-04-15 07:38:52',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1081,'2021-04-15 10:38:52','USER_MODIFY',1,'2021-04-15 07:38:52',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1082,'2021-04-15 10:40:22','USER_NEW_PASSWORD',1,'2021-04-15 07:40:22',12,'Password change for zzeceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1083,'2021-04-15 10:40:22','USER_MODIFY',1,'2021-04-15 07:40:22',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1084,'2021-04-15 10:41:51','USER_NEW_PASSWORD',1,'2021-04-15 07:41:51',12,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1085,'2021-04-15 10:41:51','USER_MODIFY',1,'2021-04-15 07:41:51',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1086,'2021-04-15 10:42:13','USER_NEW_PASSWORD',1,'2021-04-15 07:42:13',12,'Password change for aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1087,'2021-04-15 10:42:13','USER_MODIFY',1,'2021-04-15 07:42:13',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1088,'2021-04-15 10:54:43','USER_LOGOUT',1,'2021-04-15 07:54:43',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1089,'2021-04-15 10:55:32','USER_LOGIN_FAILED',1,'2021-04-15 07:55:32',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1090,'2021-04-15 10:55:36','USER_LOGIN',1,'2021-04-15 07:55:36',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1091,'2021-04-15 10:55:57','USER_LOGOUT',1,'2021-04-15 07:55:57',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1092,'2021-04-15 10:56:17','USER_LOGIN',1,'2021-04-15 07:56:17',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1093,'2021-04-15 10:56:37','USER_LOGOUT',1,'2021-04-15 07:56:37',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1094,'2021-04-15 10:59:04','USER_LOGIN',1,'2021-04-15 07:59:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL); +INSERT INTO `llx_events` VALUES (30,'2013-07-18 18:23:06','USER_LOGOUT',1,'2013-07-18 20:23:06',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(31,'2013-07-18 18:23:12','USER_LOGIN_FAILED',1,'2013-07-18 20:23:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(32,'2013-07-18 18:23:17','USER_LOGIN',1,'2013-07-18 20:23:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(33,'2013-07-18 20:10:51','USER_LOGIN_FAILED',1,'2013-07-18 22:10:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(34,'2013-07-18 20:10:55','USER_LOGIN',1,'2013-07-18 22:10:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(35,'2013-07-18 21:18:57','USER_LOGIN',1,'2013-07-18 23:18:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(36,'2013-07-20 10:34:10','USER_LOGIN',1,'2013-07-20 12:34:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(37,'2013-07-20 12:36:44','USER_LOGIN',1,'2013-07-20 14:36:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(38,'2013-07-20 13:20:51','USER_LOGIN_FAILED',1,'2013-07-20 15:20:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(39,'2013-07-20 13:20:54','USER_LOGIN',1,'2013-07-20 15:20:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(40,'2013-07-20 15:03:46','USER_LOGIN_FAILED',1,'2013-07-20 17:03:46',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(41,'2013-07-20 15:03:55','USER_LOGIN',1,'2013-07-20 17:03:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(42,'2013-07-20 18:05:05','USER_LOGIN_FAILED',1,'2013-07-20 20:05:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(43,'2013-07-20 18:05:08','USER_LOGIN',1,'2013-07-20 20:05:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(44,'2013-07-20 21:08:53','USER_LOGIN_FAILED',1,'2013-07-20 23:08:53',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(45,'2013-07-20 21:08:56','USER_LOGIN',1,'2013-07-20 23:08:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(46,'2013-07-21 01:26:12','USER_LOGIN',1,'2013-07-21 03:26:12',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(47,'2013-07-21 22:35:45','USER_LOGIN_FAILED',1,'2013-07-22 00:35:45',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(48,'2013-07-21 22:35:49','USER_LOGIN',1,'2013-07-22 00:35:49',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(49,'2013-07-26 23:09:47','USER_LOGIN_FAILED',1,'2013-07-27 01:09:47',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(50,'2013-07-26 23:09:50','USER_LOGIN',1,'2013-07-27 01:09:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(51,'2013-07-27 17:02:27','USER_LOGIN_FAILED',1,'2013-07-27 19:02:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(52,'2013-07-27 17:02:32','USER_LOGIN',1,'2013-07-27 19:02:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(53,'2013-07-27 23:33:37','USER_LOGIN_FAILED',1,'2013-07-28 01:33:37',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(54,'2013-07-27 23:33:41','USER_LOGIN',1,'2013-07-28 01:33:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(55,'2013-07-28 18:20:36','USER_LOGIN_FAILED',1,'2013-07-28 20:20:36',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(56,'2013-07-28 18:20:38','USER_LOGIN',1,'2013-07-28 20:20:38',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(57,'2013-07-28 20:13:30','USER_LOGIN_FAILED',1,'2013-07-28 22:13:30',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(58,'2013-07-28 20:13:34','USER_LOGIN',1,'2013-07-28 22:13:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(59,'2013-07-28 20:22:51','USER_LOGIN',1,'2013-07-28 22:22:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(60,'2013-07-28 23:05:06','USER_LOGIN',1,'2013-07-29 01:05:06',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(61,'2013-07-29 20:15:50','USER_LOGIN_FAILED',1,'2013-07-29 22:15:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(62,'2013-07-29 20:15:53','USER_LOGIN',1,'2013-07-29 22:15:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(68,'2013-07-29 20:51:01','USER_LOGOUT',1,'2013-07-29 22:51:01',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(69,'2013-07-29 20:51:05','USER_LOGIN',1,'2013-07-29 22:51:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(70,'2013-07-30 08:46:20','USER_LOGIN_FAILED',1,'2013-07-30 10:46:20',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(71,'2013-07-30 08:46:38','USER_LOGIN_FAILED',1,'2013-07-30 10:46:38',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(72,'2013-07-30 08:46:42','USER_LOGIN',1,'2013-07-30 10:46:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(73,'2013-07-30 10:05:12','USER_LOGIN_FAILED',1,'2013-07-30 12:05:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(74,'2013-07-30 10:05:15','USER_LOGIN',1,'2013-07-30 12:05:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(75,'2013-07-30 12:15:46','USER_LOGIN',1,'2013-07-30 14:15:46',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(76,'2013-07-31 22:19:30','USER_LOGIN',1,'2013-08-01 00:19:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(77,'2013-07-31 23:32:52','USER_LOGIN',1,'2013-08-01 01:32:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(78,'2013-08-01 01:24:50','USER_LOGIN_FAILED',1,'2013-08-01 03:24:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(79,'2013-08-01 01:24:54','USER_LOGIN',1,'2013-08-01 03:24:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(80,'2013-08-01 19:31:36','USER_LOGIN_FAILED',1,'2013-08-01 21:31:35',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(81,'2013-08-01 19:31:39','USER_LOGIN',1,'2013-08-01 21:31:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(82,'2013-08-01 20:01:36','USER_LOGIN',1,'2013-08-01 22:01:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(83,'2013-08-01 20:52:54','USER_LOGIN_FAILED',1,'2013-08-01 22:52:54',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(84,'2013-08-01 20:52:58','USER_LOGIN',1,'2013-08-01 22:52:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(85,'2013-08-01 21:17:28','USER_LOGIN_FAILED',1,'2013-08-01 23:17:28',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(86,'2013-08-01 21:17:31','USER_LOGIN',1,'2013-08-01 23:17:31',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(87,'2013-08-04 11:55:17','USER_LOGIN',1,'2013-08-04 13:55:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(88,'2013-08-04 20:19:03','USER_LOGIN_FAILED',1,'2013-08-04 22:19:03',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(89,'2013-08-04 20:19:07','USER_LOGIN',1,'2013-08-04 22:19:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(90,'2013-08-05 17:51:42','USER_LOGIN_FAILED',1,'2013-08-05 19:51:42',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(91,'2013-08-05 17:51:47','USER_LOGIN',1,'2013-08-05 19:51:47',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(92,'2013-08-05 17:56:03','USER_LOGIN',1,'2013-08-05 19:56:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(93,'2013-08-05 17:59:10','USER_LOGIN',1,'2013-08-05 19:59:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL,NULL,NULL,NULL),(94,'2013-08-05 18:01:58','USER_LOGIN',1,'2013-08-05 20:01:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL,NULL,NULL,NULL),(95,'2013-08-05 19:59:56','USER_LOGIN',1,'2013-08-05 21:59:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(96,'2013-08-06 18:33:22','USER_LOGIN',1,'2013-08-06 20:33:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(97,'2013-08-07 00:56:59','USER_LOGIN',1,'2013-08-07 02:56:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(98,'2013-08-07 22:49:14','USER_LOGIN',1,'2013-08-08 00:49:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(99,'2013-08-07 23:05:18','USER_LOGOUT',1,'2013-08-08 01:05:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(105,'2013-08-08 00:41:09','USER_LOGIN',1,'2013-08-08 02:41:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(106,'2013-08-08 11:58:55','USER_LOGIN',1,'2013-08-08 13:58:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(107,'2013-08-08 14:35:48','USER_LOGIN',1,'2013-08-08 16:35:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(108,'2013-08-08 14:36:31','USER_LOGOUT',1,'2013-08-08 16:36:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(109,'2013-08-08 14:38:28','USER_LOGIN',1,'2013-08-08 16:38:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(110,'2013-08-08 14:39:02','USER_LOGOUT',1,'2013-08-08 16:39:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(111,'2013-08-08 14:39:10','USER_LOGIN',1,'2013-08-08 16:39:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(112,'2013-08-08 14:39:28','USER_LOGOUT',1,'2013-08-08 16:39:28',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(113,'2013-08-08 14:39:37','USER_LOGIN',1,'2013-08-08 16:39:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(114,'2013-08-08 14:50:02','USER_LOGOUT',1,'2013-08-08 16:50:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(115,'2013-08-08 14:51:45','USER_LOGIN_FAILED',1,'2013-08-08 16:51:45',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(116,'2013-08-08 14:51:52','USER_LOGIN',1,'2013-08-08 16:51:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(117,'2013-08-08 15:09:54','USER_LOGOUT',1,'2013-08-08 17:09:54',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(118,'2013-08-08 15:10:19','USER_LOGIN_FAILED',1,'2013-08-08 17:10:19',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(119,'2013-08-08 15:10:28','USER_LOGIN',1,'2013-08-08 17:10:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(121,'2013-08-08 15:14:58','USER_LOGOUT',1,'2013-08-08 17:14:58',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(122,'2013-08-08 15:15:00','USER_LOGIN_FAILED',1,'2013-08-08 17:15:00',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(123,'2013-08-08 15:17:57','USER_LOGIN',1,'2013-08-08 17:17:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(124,'2013-08-08 15:35:56','USER_LOGOUT',1,'2013-08-08 17:35:56',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(125,'2013-08-08 15:36:05','USER_LOGIN',1,'2013-08-08 17:36:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(126,'2013-08-08 17:32:42','USER_LOGIN',1,'2013-08-08 19:32:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL,NULL,NULL,NULL),(127,'2014-12-08 13:49:37','USER_LOGOUT',1,'2014-12-08 14:49:37',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(128,'2014-12-08 13:49:42','USER_LOGIN',1,'2014-12-08 14:49:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(129,'2014-12-08 13:50:12','USER_LOGOUT',1,'2014-12-08 14:50:12',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(130,'2014-12-08 13:50:14','USER_LOGIN',1,'2014-12-08 14:50:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(131,'2014-12-08 13:50:17','USER_LOGOUT',1,'2014-12-08 14:50:17',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(132,'2014-12-08 13:52:47','USER_LOGIN',1,'2014-12-08 14:52:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(133,'2014-12-08 13:53:08','USER_MODIFY',1,'2014-12-08 14:53:08',1,'User admin modified','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(134,'2014-12-08 14:08:45','USER_LOGOUT',1,'2014-12-08 15:08:45',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(135,'2014-12-08 14:09:09','USER_LOGIN',1,'2014-12-08 15:09:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(136,'2014-12-08 14:11:43','USER_LOGOUT',1,'2014-12-08 15:11:43',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(137,'2014-12-08 14:11:45','USER_LOGIN',1,'2014-12-08 15:11:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(138,'2014-12-08 14:22:53','USER_LOGOUT',1,'2014-12-08 15:22:53',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(139,'2014-12-08 14:22:54','USER_LOGIN',1,'2014-12-08 15:22:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(140,'2014-12-08 14:23:10','USER_LOGOUT',1,'2014-12-08 15:23:10',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(141,'2014-12-08 14:23:11','USER_LOGIN',1,'2014-12-08 15:23:11',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(142,'2014-12-08 14:23:49','USER_LOGOUT',1,'2014-12-08 15:23:49',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(143,'2014-12-08 14:23:50','USER_LOGIN',1,'2014-12-08 15:23:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(144,'2014-12-08 14:28:08','USER_LOGOUT',1,'2014-12-08 15:28:08',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(145,'2014-12-08 14:35:15','USER_LOGIN',1,'2014-12-08 15:35:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(146,'2014-12-08 14:35:18','USER_LOGOUT',1,'2014-12-08 15:35:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(147,'2014-12-08 14:36:07','USER_LOGIN',1,'2014-12-08 15:36:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(148,'2014-12-08 14:36:09','USER_LOGOUT',1,'2014-12-08 15:36:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(149,'2014-12-08 14:36:41','USER_LOGIN',1,'2014-12-08 15:36:41',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(150,'2014-12-08 15:59:13','USER_LOGIN',1,'2014-12-08 16:59:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(151,'2014-12-09 11:49:52','USER_LOGIN',1,'2014-12-09 12:49:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(152,'2014-12-09 13:46:31','USER_LOGIN',1,'2014-12-09 14:46:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(153,'2014-12-09 19:03:14','USER_LOGIN',1,'2014-12-09 20:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(154,'2014-12-10 00:16:31','USER_LOGIN',1,'2014-12-10 01:16:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(170,'2014-12-11 22:03:31','USER_LOGIN',1,'2014-12-11 23:03:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(171,'2014-12-12 00:32:39','USER_LOGIN',1,'2014-12-12 01:32:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(172,'2014-12-12 10:49:59','USER_LOGIN',1,'2014-12-12 11:49:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(175,'2014-12-12 10:57:40','USER_MODIFY',1,'2014-12-12 11:57:40',1,'Modification utilisateur admin','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(176,'2014-12-12 13:29:15','USER_LOGIN',1,'2014-12-12 14:29:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(177,'2014-12-12 13:30:15','USER_LOGIN',1,'2014-12-12 14:30:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(178,'2014-12-12 13:40:08','USER_LOGOUT',1,'2014-12-12 14:40:08',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(179,'2014-12-12 13:40:10','USER_LOGIN',1,'2014-12-12 14:40:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(180,'2014-12-12 13:40:26','USER_MODIFY',1,'2014-12-12 14:40:26',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(181,'2014-12-12 13:40:34','USER_LOGOUT',1,'2014-12-12 14:40:34',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(182,'2014-12-12 13:42:23','USER_LOGIN',1,'2014-12-12 14:42:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(183,'2014-12-12 13:43:02','USER_NEW_PASSWORD',1,'2014-12-12 14:43:02',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(184,'2014-12-12 13:43:25','USER_LOGOUT',1,'2014-12-12 14:43:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(185,'2014-12-12 13:43:27','USER_LOGIN_FAILED',1,'2014-12-12 14:43:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(186,'2014-12-12 13:43:30','USER_LOGIN',1,'2014-12-12 14:43:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(187,'2014-12-12 14:52:11','USER_LOGIN',1,'2014-12-12 15:52:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL,NULL,NULL,NULL),(188,'2014-12-12 17:53:00','USER_LOGIN_FAILED',1,'2014-12-12 18:53:00',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(189,'2014-12-12 17:53:07','USER_LOGIN_FAILED',1,'2014-12-12 18:53:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(190,'2014-12-12 17:53:51','USER_NEW_PASSWORD',1,'2014-12-12 18:53:51',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(191,'2014-12-12 17:54:00','USER_LOGIN',1,'2014-12-12 18:54:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(192,'2014-12-12 17:54:10','USER_NEW_PASSWORD',1,'2014-12-12 18:54:10',1,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(193,'2014-12-12 17:54:10','USER_MODIFY',1,'2014-12-12 18:54:10',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(194,'2014-12-12 18:57:09','USER_LOGIN',1,'2014-12-12 19:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(195,'2014-12-12 23:04:08','USER_LOGIN',1,'2014-12-13 00:04:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(196,'2014-12-17 20:03:14','USER_LOGIN',1,'2014-12-17 21:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(197,'2014-12-17 21:18:45','USER_LOGIN',1,'2014-12-17 22:18:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(198,'2014-12-17 22:30:08','USER_LOGIN',1,'2014-12-17 23:30:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(199,'2014-12-18 23:32:03','USER_LOGIN',1,'2014-12-19 00:32:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(200,'2014-12-19 09:38:03','USER_LOGIN',1,'2014-12-19 10:38:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(201,'2014-12-19 11:23:35','USER_LOGIN',1,'2014-12-19 12:23:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(202,'2014-12-19 12:46:22','USER_LOGIN',1,'2014-12-19 13:46:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(214,'2014-12-19 19:11:31','USER_LOGIN',1,'2014-12-19 20:11:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(215,'2014-12-21 16:36:57','USER_LOGIN',1,'2014-12-21 17:36:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(216,'2014-12-21 16:38:43','USER_NEW_PASSWORD',1,'2014-12-21 17:38:43',1,'Changement mot de passe de adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(217,'2014-12-21 16:38:43','USER_MODIFY',1,'2014-12-21 17:38:43',1,'Modification utilisateur adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(218,'2014-12-21 16:38:51','USER_LOGOUT',1,'2014-12-21 17:38:51',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(219,'2014-12-21 16:38:55','USER_LOGIN',1,'2014-12-21 17:38:55',3,'(UserLogged,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(220,'2014-12-21 16:48:18','USER_LOGOUT',1,'2014-12-21 17:48:18',3,'(UserLogoff,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(221,'2014-12-21 16:48:20','USER_LOGIN',1,'2014-12-21 17:48:20',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(222,'2014-12-26 18:28:18','USER_LOGIN',1,'2014-12-26 19:28:18',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(223,'2014-12-26 20:00:24','USER_LOGIN',1,'2014-12-26 21:00:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(224,'2014-12-27 01:10:27','USER_LOGIN',1,'2014-12-27 02:10:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(225,'2014-12-28 19:12:08','USER_LOGIN',1,'2014-12-28 20:12:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(226,'2014-12-28 20:16:58','USER_LOGIN',1,'2014-12-28 21:16:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(227,'2014-12-29 14:35:46','USER_LOGIN',1,'2014-12-29 15:35:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(228,'2014-12-29 14:37:59','USER_LOGOUT',1,'2014-12-29 15:37:59',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(229,'2014-12-29 14:38:00','USER_LOGIN',1,'2014-12-29 15:38:00',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(230,'2014-12-29 17:16:48','USER_LOGIN',1,'2014-12-29 18:16:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(231,'2014-12-31 12:02:59','USER_LOGIN',1,'2014-12-31 13:02:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(232,'2015-01-02 20:32:51','USER_LOGIN',1,'2015-01-02 21:32:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0',NULL,NULL,NULL,NULL),(233,'2015-01-02 20:58:59','USER_LOGIN',1,'2015-01-02 21:58:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(234,'2015-01-03 09:25:07','USER_LOGIN',1,'2015-01-03 10:25:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(235,'2015-01-03 19:39:31','USER_LOGIN',1,'2015-01-03 20:39:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(236,'2015-01-04 22:40:19','USER_LOGIN',1,'2015-01-04 23:40:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(237,'2015-01-05 12:59:59','USER_LOGIN',1,'2015-01-05 13:59:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(238,'2015-01-05 15:28:52','USER_LOGIN',1,'2015-01-05 16:28:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(239,'2015-01-05 17:02:08','USER_LOGIN',1,'2015-01-05 18:02:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(240,'2015-01-06 12:13:33','USER_LOGIN',1,'2015-01-06 13:13:33',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(241,'2015-01-07 01:21:15','USER_LOGIN',1,'2015-01-07 02:21:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(242,'2015-01-07 01:46:31','USER_LOGOUT',1,'2015-01-07 02:46:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(243,'2015-01-07 19:54:50','USER_LOGIN',1,'2015-01-07 20:54:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(244,'2015-01-08 21:55:01','USER_LOGIN',1,'2015-01-08 22:55:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(245,'2015-01-09 11:13:28','USER_LOGIN',1,'2015-01-09 12:13:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(246,'2015-01-10 18:30:46','USER_LOGIN',1,'2015-01-10 19:30:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(247,'2015-01-11 18:03:26','USER_LOGIN',1,'2015-01-11 19:03:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(248,'2015-01-12 11:15:04','USER_LOGIN',1,'2015-01-12 12:15:04',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(249,'2015-01-12 14:42:44','USER_LOGIN',1,'2015-01-12 15:42:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(250,'2015-01-13 12:07:17','USER_LOGIN',1,'2015-01-13 13:07:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(251,'2015-01-13 17:37:58','USER_LOGIN',1,'2015-01-13 18:37:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(252,'2015-01-13 19:24:21','USER_LOGIN',1,'2015-01-13 20:24:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(253,'2015-01-13 19:29:19','USER_LOGOUT',1,'2015-01-13 20:29:19',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(254,'2015-01-13 21:39:39','USER_LOGIN',1,'2015-01-13 22:39:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(255,'2015-01-14 00:52:21','USER_LOGIN',1,'2015-01-14 01:52:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL,NULL,NULL,NULL),(256,'2015-01-16 11:34:31','USER_LOGIN',1,'2015-01-16 12:34:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(257,'2015-01-16 15:36:21','USER_LOGIN',1,'2015-01-16 16:36:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(258,'2015-01-16 19:17:36','USER_LOGIN',1,'2015-01-16 20:17:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(259,'2015-01-16 19:48:08','GROUP_CREATE',1,'2015-01-16 20:48:08',1,'Création groupe ggg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(260,'2015-01-16 21:48:53','USER_LOGIN',1,'2015-01-16 22:48:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(261,'2015-01-17 19:55:53','USER_LOGIN',1,'2015-01-17 20:55:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(262,'2015-01-18 09:48:01','USER_LOGIN',1,'2015-01-18 10:48:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(263,'2015-01-18 13:22:36','USER_LOGIN',1,'2015-01-18 14:22:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(264,'2015-01-18 16:10:23','USER_LOGIN',1,'2015-01-18 17:10:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(265,'2015-01-18 17:41:40','USER_LOGIN',1,'2015-01-18 18:41:40',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(266,'2015-01-19 14:33:48','USER_LOGIN',1,'2015-01-19 15:33:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(267,'2015-01-19 16:47:43','USER_LOGIN',1,'2015-01-19 17:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(268,'2015-01-19 16:59:43','USER_LOGIN',1,'2015-01-19 17:59:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(269,'2015-01-19 17:00:22','USER_LOGIN',1,'2015-01-19 18:00:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(270,'2015-01-19 17:04:16','USER_LOGOUT',1,'2015-01-19 18:04:16',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(271,'2015-01-19 17:04:18','USER_LOGIN',1,'2015-01-19 18:04:18',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(272,'2015-01-20 00:34:19','USER_LOGIN',1,'2015-01-20 01:34:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(273,'2015-01-21 11:54:17','USER_LOGIN',1,'2015-01-21 12:54:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(274,'2015-01-21 13:48:15','USER_LOGIN',1,'2015-01-21 14:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(275,'2015-01-21 14:30:22','USER_LOGIN',1,'2015-01-21 15:30:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(276,'2015-01-21 15:10:46','USER_LOGIN',1,'2015-01-21 16:10:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(277,'2015-01-21 17:27:43','USER_LOGIN',1,'2015-01-21 18:27:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(278,'2015-01-21 21:48:15','USER_LOGIN',1,'2015-01-21 22:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(279,'2015-01-21 21:50:42','USER_LOGIN',1,'2015-01-21 22:50:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL,NULL,NULL,NULL),(280,'2015-01-23 09:28:26','USER_LOGIN',1,'2015-01-23 10:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(281,'2015-01-23 13:21:57','USER_LOGIN',1,'2015-01-23 14:21:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(282,'2015-01-23 16:52:00','USER_LOGOUT',1,'2015-01-23 17:52:00',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(283,'2015-01-23 16:52:05','USER_LOGIN_FAILED',1,'2015-01-23 17:52:05',NULL,'Bad value for login or password - login=bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(284,'2015-01-23 16:52:09','USER_LOGIN',1,'2015-01-23 17:52:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(285,'2015-01-23 16:52:27','USER_CREATE',1,'2015-01-23 17:52:27',1,'Création utilisateur aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(286,'2015-01-23 16:52:27','USER_NEW_PASSWORD',1,'2015-01-23 17:52:27',1,'Changement mot de passe de aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(287,'2015-01-23 16:52:37','USER_CREATE',1,'2015-01-23 17:52:37',1,'Création utilisateur bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(288,'2015-01-23 16:52:37','USER_NEW_PASSWORD',1,'2015-01-23 17:52:37',1,'Changement mot de passe de bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(289,'2015-01-23 16:53:15','USER_LOGOUT',1,'2015-01-23 17:53:15',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(290,'2015-01-23 16:53:20','USER_LOGIN',1,'2015-01-23 17:53:20',4,'(UserLogged,aaa)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(291,'2015-01-23 19:16:58','USER_LOGIN',1,'2015-01-23 20:16:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(292,'2015-01-26 10:54:07','USER_LOGIN',1,'2015-01-26 11:54:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(293,'2015-01-29 10:15:36','USER_LOGIN',1,'2015-01-29 11:15:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(294,'2015-01-30 17:42:50','USER_LOGIN',1,'2015-01-30 18:42:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL,NULL,NULL,NULL),(295,'2015-02-01 08:49:55','USER_LOGIN',1,'2015-02-01 09:49:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(296,'2015-02-01 08:51:57','USER_LOGOUT',1,'2015-02-01 09:51:57',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(297,'2015-02-01 08:52:39','USER_LOGIN',1,'2015-02-01 09:52:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(298,'2015-02-01 21:03:01','USER_LOGIN',1,'2015-02-01 22:03:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(299,'2015-02-10 19:48:39','USER_LOGIN',1,'2015-02-10 20:48:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(300,'2015-02-10 20:46:48','USER_LOGIN',1,'2015-02-10 21:46:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(301,'2015-02-10 21:39:23','USER_LOGIN',1,'2015-02-10 22:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(302,'2015-02-11 19:00:13','USER_LOGIN',1,'2015-02-11 20:00:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(303,'2015-02-11 19:43:44','USER_LOGIN_FAILED',1,'2015-02-11 20:43:44',NULL,'Unknown column \'u.fk_user\' in \'field list\'','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(304,'2015-02-11 19:44:01','USER_LOGIN',1,'2015-02-11 20:44:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(305,'2015-02-12 00:27:35','USER_LOGIN',1,'2015-02-12 01:27:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(306,'2015-02-12 00:27:38','USER_LOGOUT',1,'2015-02-12 01:27:38',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(307,'2015-02-12 00:28:07','USER_LOGIN',1,'2015-02-12 01:28:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(308,'2015-02-12 00:28:09','USER_LOGOUT',1,'2015-02-12 01:28:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(309,'2015-02-12 00:28:26','USER_LOGIN',1,'2015-02-12 01:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(310,'2015-02-12 00:28:30','USER_LOGOUT',1,'2015-02-12 01:28:30',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(311,'2015-02-12 12:42:15','USER_LOGIN',1,'2015-02-12 13:42:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL,NULL,NULL,NULL),(312,'2015-02-12 13:46:16','USER_LOGIN',1,'2015-02-12 14:46:16',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(313,'2015-02-12 14:54:28','USER_LOGIN',1,'2015-02-12 15:54:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(314,'2015-02-12 16:04:46','USER_LOGIN',1,'2015-02-12 17:04:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(315,'2015-02-13 14:02:43','USER_LOGIN',1,'2015-02-13 15:02:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(316,'2015-02-13 14:48:30','USER_LOGIN',1,'2015-02-13 15:48:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(317,'2015-02-13 17:44:53','USER_LOGIN',1,'2015-02-13 18:44:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(318,'2015-02-15 08:44:36','USER_LOGIN',1,'2015-02-15 09:44:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(319,'2015-02-15 08:53:20','USER_LOGIN',1,'2015-02-15 09:53:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(320,'2015-02-16 19:10:28','USER_LOGIN',1,'2015-02-16 20:10:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(321,'2015-02-16 19:22:40','USER_CREATE',1,'2015-02-16 20:22:40',1,'Création utilisateur aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(322,'2015-02-16 19:22:40','USER_NEW_PASSWORD',1,'2015-02-16 20:22:40',1,'Changement mot de passe de aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(323,'2015-02-16 19:48:15','USER_CREATE',1,'2015-02-16 20:48:15',1,'Création utilisateur zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(324,'2015-02-16 19:48:15','USER_NEW_PASSWORD',1,'2015-02-16 20:48:15',1,'Changement mot de passe de zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(325,'2015-02-16 19:50:08','USER_CREATE',1,'2015-02-16 20:50:08',1,'Création utilisateur zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(326,'2015-02-16 19:50:08','USER_NEW_PASSWORD',1,'2015-02-16 20:50:08',1,'Changement mot de passe de zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(327,'2015-02-16 21:20:03','USER_LOGIN',1,'2015-02-16 22:20:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(328,'2015-02-17 14:30:51','USER_LOGIN',1,'2015-02-17 15:30:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(329,'2015-02-17 17:21:22','USER_LOGIN',1,'2015-02-17 18:21:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(330,'2015-02-17 17:48:43','USER_MODIFY',1,'2015-02-17 18:48:43',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(331,'2015-02-17 17:48:47','USER_MODIFY',1,'2015-02-17 18:48:47',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(332,'2015-02-17 17:48:51','USER_MODIFY',1,'2015-02-17 18:48:51',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(333,'2015-02-17 17:48:56','USER_MODIFY',1,'2015-02-17 18:48:56',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(334,'2015-02-18 22:00:01','USER_LOGIN',1,'2015-02-18 23:00:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(335,'2015-02-19 08:19:52','USER_LOGIN',1,'2015-02-19 09:19:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(336,'2015-02-19 22:00:52','USER_LOGIN',1,'2015-02-19 23:00:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(337,'2015-02-20 09:34:52','USER_LOGIN',1,'2015-02-20 10:34:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(338,'2015-02-20 13:12:28','USER_LOGIN',1,'2015-02-20 14:12:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(339,'2015-02-20 17:19:44','USER_LOGIN',1,'2015-02-20 18:19:44',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(340,'2015-02-20 19:07:21','USER_MODIFY',1,'2015-02-20 20:07:21',1,'Modification utilisateur adupont','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(341,'2015-02-20 19:47:17','USER_LOGIN',1,'2015-02-20 20:47:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(342,'2015-02-20 19:48:01','USER_MODIFY',1,'2015-02-20 20:48:01',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(343,'2015-02-21 08:27:07','USER_LOGIN',1,'2015-02-21 09:27:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(344,'2015-02-23 13:34:13','USER_LOGIN',1,'2015-02-23 14:34:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL,NULL,NULL,NULL),(345,'2015-02-24 01:06:41','USER_LOGIN_FAILED',1,'2015-02-24 02:06:41',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(346,'2015-02-24 01:06:45','USER_LOGIN_FAILED',1,'2015-02-24 02:06:45',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(347,'2015-02-24 01:06:55','USER_LOGIN_FAILED',1,'2015-02-24 02:06:55',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(348,'2015-02-24 01:07:03','USER_LOGIN_FAILED',1,'2015-02-24 02:07:03',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(349,'2015-02-24 01:07:21','USER_LOGIN_FAILED',1,'2015-02-24 02:07:21',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(350,'2015-02-24 01:08:12','USER_LOGIN_FAILED',1,'2015-02-24 02:08:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(351,'2015-02-24 01:08:42','USER_LOGIN_FAILED',1,'2015-02-24 02:08:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(352,'2015-02-24 01:08:50','USER_LOGIN_FAILED',1,'2015-02-24 02:08:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(353,'2015-02-24 01:09:08','USER_LOGIN_FAILED',1,'2015-02-24 02:09:08',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(354,'2015-02-24 01:09:42','USER_LOGIN_FAILED',1,'2015-02-24 02:09:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(355,'2015-02-24 01:09:50','USER_LOGIN_FAILED',1,'2015-02-24 02:09:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(356,'2015-02-24 01:10:05','USER_LOGIN_FAILED',1,'2015-02-24 02:10:05',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(357,'2015-02-24 01:10:22','USER_LOGIN_FAILED',1,'2015-02-24 02:10:22',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(358,'2015-02-24 01:10:30','USER_LOGIN_FAILED',1,'2015-02-24 02:10:30',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(359,'2015-02-24 01:10:56','USER_LOGIN_FAILED',1,'2015-02-24 02:10:56',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(360,'2015-02-24 01:11:26','USER_LOGIN_FAILED',1,'2015-02-24 02:11:26',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(361,'2015-02-24 01:12:06','USER_LOGIN_FAILED',1,'2015-02-24 02:12:06',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(362,'2015-02-24 01:21:14','USER_LOGIN_FAILED',1,'2015-02-24 02:21:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(363,'2015-02-24 01:21:25','USER_LOGIN_FAILED',1,'2015-02-24 02:21:25',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(364,'2015-02-24 01:21:54','USER_LOGIN_FAILED',1,'2015-02-24 02:21:54',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(365,'2015-02-24 01:22:14','USER_LOGIN_FAILED',1,'2015-02-24 02:22:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(366,'2015-02-24 01:22:37','USER_LOGIN_FAILED',1,'2015-02-24 02:22:37',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(367,'2015-02-24 01:23:01','USER_LOGIN_FAILED',1,'2015-02-24 02:23:01',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(368,'2015-02-24 01:23:39','USER_LOGIN_FAILED',1,'2015-02-24 02:23:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(369,'2015-02-24 01:24:04','USER_LOGIN_FAILED',1,'2015-02-24 02:24:04',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(370,'2015-02-24 01:24:39','USER_LOGIN_FAILED',1,'2015-02-24 02:24:39',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(371,'2015-02-24 01:25:01','USER_LOGIN_FAILED',1,'2015-02-24 02:25:01',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(372,'2015-02-24 01:25:12','USER_LOGIN_FAILED',1,'2015-02-24 02:25:12',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(373,'2015-02-24 01:27:30','USER_LOGIN_FAILED',1,'2015-02-24 02:27:30',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(374,'2015-02-24 01:28:00','USER_LOGIN_FAILED',1,'2015-02-24 02:28:00',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(375,'2015-02-24 01:28:35','USER_LOGIN_FAILED',1,'2015-02-24 02:28:35',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(376,'2015-02-24 01:29:03','USER_LOGIN_FAILED',1,'2015-02-24 02:29:03',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(377,'2015-02-24 01:29:55','USER_LOGIN_FAILED',1,'2015-02-24 02:29:55',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(378,'2015-02-24 01:32:40','USER_LOGIN_FAILED',1,'2015-02-24 02:32:40',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(379,'2015-02-24 01:39:33','USER_LOGIN_FAILED',1,'2015-02-24 02:39:33',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(380,'2015-02-24 01:39:38','USER_LOGIN_FAILED',1,'2015-02-24 02:39:38',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(381,'2015-02-24 01:39:47','USER_LOGIN_FAILED',1,'2015-02-24 02:39:47',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(382,'2015-02-24 01:40:54','USER_LOGIN_FAILED',1,'2015-02-24 02:40:54',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(383,'2015-02-24 01:47:57','USER_LOGIN_FAILED',1,'2015-02-24 02:47:57',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(384,'2015-02-24 01:48:05','USER_LOGIN_FAILED',1,'2015-02-24 02:48:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(385,'2015-02-24 01:48:07','USER_LOGIN_FAILED',1,'2015-02-24 02:48:07',NULL,'Unknown column \'u.lastname\' in \'field list\'','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(386,'2015-02-24 01:48:35','USER_LOGIN',1,'2015-02-24 02:48:35',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(387,'2015-02-24 01:56:32','USER_LOGIN',1,'2015-02-24 02:56:32',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL,NULL,NULL,NULL),(388,'2015-02-24 02:05:55','USER_LOGOUT',1,'2015-02-24 03:05:55',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(389,'2015-02-24 02:39:52','USER_LOGIN',1,'2015-02-24 03:39:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(390,'2015-02-24 02:51:10','USER_LOGOUT',1,'2015-02-24 03:51:10',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(391,'2015-02-24 12:46:41','USER_LOGIN',1,'2015-02-24 13:46:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(392,'2015-02-24 12:46:52','USER_LOGOUT',1,'2015-02-24 13:46:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(393,'2015-02-24 12:46:56','USER_LOGIN',1,'2015-02-24 13:46:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(394,'2015-02-24 12:47:56','USER_LOGOUT',1,'2015-02-24 13:47:56',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(395,'2015-02-24 12:48:00','USER_LOGIN',1,'2015-02-24 13:48:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(396,'2015-02-24 12:48:11','USER_LOGOUT',1,'2015-02-24 13:48:11',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(397,'2015-02-24 12:48:32','USER_LOGIN',1,'2015-02-24 13:48:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(398,'2015-02-24 12:52:22','USER_LOGOUT',1,'2015-02-24 13:52:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(399,'2015-02-24 12:52:27','USER_LOGIN',1,'2015-02-24 13:52:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(400,'2015-02-24 12:52:54','USER_LOGOUT',1,'2015-02-24 13:52:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(401,'2015-02-24 12:52:59','USER_LOGIN',1,'2015-02-24 13:52:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(402,'2015-02-24 12:55:39','USER_LOGOUT',1,'2015-02-24 13:55:39',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(403,'2015-02-24 12:55:59','USER_LOGIN',1,'2015-02-24 13:55:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(404,'2015-02-24 12:56:07','USER_LOGOUT',1,'2015-02-24 13:56:07',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(405,'2015-02-24 12:56:23','USER_LOGIN',1,'2015-02-24 13:56:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(406,'2015-02-24 12:56:46','USER_LOGOUT',1,'2015-02-24 13:56:46',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(407,'2015-02-24 12:58:30','USER_LOGIN',1,'2015-02-24 13:58:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(408,'2015-02-24 12:58:33','USER_LOGOUT',1,'2015-02-24 13:58:33',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(409,'2015-02-24 12:58:51','USER_LOGIN',1,'2015-02-24 13:58:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(410,'2015-02-24 12:58:58','USER_LOGOUT',1,'2015-02-24 13:58:58',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(411,'2015-02-24 13:18:53','USER_LOGIN',1,'2015-02-24 14:18:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(412,'2015-02-24 13:19:52','USER_LOGOUT',1,'2015-02-24 14:19:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(413,'2015-02-24 15:39:31','USER_LOGIN_FAILED',1,'2015-02-24 16:39:31',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1',NULL,NULL,NULL,NULL,NULL),(414,'2015-02-24 15:42:07','USER_LOGIN',1,'2015-02-24 16:42:07',1,'(UserLogged,admin)','127.0.0.1',NULL,NULL,NULL,NULL,NULL),(415,'2015-02-24 15:42:52','USER_LOGOUT',1,'2015-02-24 16:42:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(416,'2015-02-24 16:04:21','USER_LOGIN',1,'2015-02-24 17:04:21',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL,NULL,NULL,NULL),(417,'2015-02-24 16:11:28','USER_LOGIN_FAILED',1,'2015-02-24 17:11:28',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(418,'2015-02-24 16:11:37','USER_LOGIN',1,'2015-02-24 17:11:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(419,'2015-02-24 16:36:52','USER_LOGOUT',1,'2015-02-24 17:36:52',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL,NULL,NULL,NULL),(420,'2015-02-24 16:40:37','USER_LOGIN',1,'2015-02-24 17:40:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(421,'2015-02-24 16:57:16','USER_LOGIN',1,'2015-02-24 17:57:16',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL,NULL,NULL,NULL),(422,'2015-02-24 17:01:30','USER_LOGOUT',1,'2015-02-24 18:01:30',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL,NULL,NULL,NULL),(423,'2015-02-24 17:02:33','USER_LOGIN',1,'2015-02-24 18:02:33',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(424,'2015-02-24 17:14:22','USER_LOGOUT',1,'2015-02-24 18:14:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(425,'2015-02-24 17:15:07','USER_LOGIN_FAILED',1,'2015-02-24 18:15:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(426,'2015-02-24 17:15:20','USER_LOGIN',1,'2015-02-24 18:15:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(427,'2015-02-24 17:20:14','USER_LOGIN',1,'2015-02-24 18:20:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(428,'2015-02-24 17:20:51','USER_LOGIN',1,'2015-02-24 18:20:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(429,'2015-02-24 17:20:54','USER_LOGOUT',1,'2015-02-24 18:20:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(430,'2015-02-24 17:21:19','USER_LOGIN',1,'2015-02-24 18:21:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(431,'2015-02-24 17:32:35','USER_LOGIN',1,'2015-02-24 18:32:35',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL,NULL,NULL,NULL),(432,'2015-02-24 18:28:48','USER_LOGIN',1,'2015-02-24 19:28:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(433,'2015-02-24 18:29:27','USER_LOGOUT',1,'2015-02-24 19:29:27',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(434,'2015-02-24 18:29:32','USER_LOGIN',1,'2015-02-24 19:29:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL,NULL,NULL,NULL),(435,'2015-02-24 20:13:13','USER_LOGOUT',1,'2015-02-24 21:13:13',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(436,'2015-02-24 20:13:17','USER_LOGIN',1,'2015-02-24 21:13:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(437,'2015-02-25 08:57:16','USER_LOGIN',1,'2015-02-25 09:57:16',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(438,'2015-02-25 08:57:59','USER_LOGOUT',1,'2015-02-25 09:57:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(439,'2015-02-25 09:15:02','USER_LOGIN',1,'2015-02-25 10:15:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(440,'2015-02-25 09:15:50','USER_LOGOUT',1,'2015-02-25 10:15:50',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(441,'2015-02-25 09:15:57','USER_LOGIN',1,'2015-02-25 10:15:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(442,'2015-02-25 09:16:12','USER_LOGOUT',1,'2015-02-25 10:16:12',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(443,'2015-02-25 09:16:19','USER_LOGIN',1,'2015-02-25 10:16:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(444,'2015-02-25 09:16:25','USER_LOGOUT',1,'2015-02-25 10:16:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(445,'2015-02-25 09:16:39','USER_LOGIN_FAILED',1,'2015-02-25 10:16:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(446,'2015-02-25 09:16:42','USER_LOGIN_FAILED',1,'2015-02-25 10:16:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(447,'2015-02-25 09:16:54','USER_LOGIN_FAILED',1,'2015-02-25 10:16:54',NULL,'Identificadors d'usuari o contrasenya incorrectes - login=gfdg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(448,'2015-02-25 09:17:53','USER_LOGIN',1,'2015-02-25 10:17:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(449,'2015-02-25 09:18:37','USER_LOGOUT',1,'2015-02-25 10:18:37',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(450,'2015-02-25 09:18:41','USER_LOGIN',1,'2015-02-25 10:18:41',4,'(UserLogged,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(451,'2015-02-25 09:18:47','USER_LOGOUT',1,'2015-02-25 10:18:47',4,'(UserLogoff,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(452,'2015-02-25 10:05:34','USER_LOGIN',1,'2015-02-25 11:05:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(453,'2015-02-26 21:51:40','USER_LOGIN',1,'2015-02-26 22:51:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(454,'2015-02-26 23:30:06','USER_LOGIN',1,'2015-02-27 00:30:06',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(455,'2015-02-27 14:13:11','USER_LOGIN',1,'2015-02-27 15:13:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(456,'2015-02-27 18:12:06','USER_LOGIN_FAILED',1,'2015-02-27 19:12:06',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(457,'2015-02-27 18:12:10','USER_LOGIN',1,'2015-02-27 19:12:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(458,'2015-02-27 20:20:08','USER_LOGIN',1,'2015-02-27 21:20:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(459,'2015-03-01 22:12:03','USER_LOGIN',1,'2015-03-01 23:12:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(460,'2015-03-02 11:45:50','USER_LOGIN',1,'2015-03-02 12:45:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(461,'2015-03-02 15:53:51','USER_LOGIN_FAILED',1,'2015-03-02 16:53:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(462,'2015-03-02 15:53:53','USER_LOGIN',1,'2015-03-02 16:53:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(463,'2015-03-02 18:32:32','USER_LOGIN',1,'2015-03-02 19:32:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(464,'2015-03-02 22:59:36','USER_LOGIN',1,'2015-03-02 23:59:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(465,'2015-03-03 16:26:26','USER_LOGIN',1,'2015-03-03 17:26:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(466,'2015-03-03 22:50:27','USER_LOGIN',1,'2015-03-03 23:50:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(467,'2015-03-04 08:29:27','USER_LOGIN',1,'2015-03-04 09:29:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(468,'2015-03-04 18:27:28','USER_LOGIN',1,'2015-03-04 19:27:28',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06)',NULL,NULL,NULL,NULL),(469,'2015-03-04 19:27:23','USER_LOGIN',1,'2015-03-04 20:27:23',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',NULL,NULL,NULL,NULL),(470,'2015-03-04 19:35:14','USER_LOGIN',1,'2015-03-04 20:35:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(471,'2015-03-04 19:55:49','USER_LOGIN',1,'2015-03-04 20:55:49',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',NULL,NULL,NULL,NULL),(472,'2015-03-04 21:16:13','USER_LOGIN',1,'2015-03-04 22:16:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(473,'2015-03-05 10:17:30','USER_LOGIN',1,'2015-03-05 11:17:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(474,'2015-03-05 11:02:43','USER_LOGIN',1,'2015-03-05 12:02:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(475,'2015-03-05 23:14:39','USER_LOGIN',1,'2015-03-06 00:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(476,'2015-03-06 08:58:57','USER_LOGIN',1,'2015-03-06 09:58:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(477,'2015-03-06 14:29:40','USER_LOGIN',1,'2015-03-06 15:29:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(478,'2015-03-06 21:53:02','USER_LOGIN',1,'2015-03-06 22:53:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(479,'2015-03-07 21:14:39','USER_LOGIN',1,'2015-03-07 22:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(480,'2015-03-08 00:06:05','USER_LOGIN',1,'2015-03-08 01:06:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(481,'2015-03-08 01:38:13','USER_LOGIN',1,'2015-03-08 02:38:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(482,'2015-03-08 08:59:50','USER_LOGIN',1,'2015-03-08 09:59:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(483,'2015-03-09 12:08:51','USER_LOGIN',1,'2015-03-09 13:08:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(484,'2015-03-09 15:19:53','USER_LOGIN',1,'2015-03-09 16:19:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(495,'2015-03-09 18:06:21','USER_LOGIN',1,'2015-03-09 19:06:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(496,'2015-03-09 20:01:24','USER_LOGIN',1,'2015-03-09 21:01:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(497,'2015-03-09 23:36:45','USER_LOGIN',1,'2015-03-10 00:36:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(498,'2015-03-10 14:37:13','USER_LOGIN',1,'2015-03-10 15:37:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(499,'2015-03-10 17:54:12','USER_LOGIN',1,'2015-03-10 18:54:12',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(500,'2015-03-11 08:57:09','USER_LOGIN',1,'2015-03-11 09:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(501,'2015-03-11 22:05:13','USER_LOGIN',1,'2015-03-11 23:05:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(502,'2015-03-12 08:34:27','USER_LOGIN',1,'2015-03-12 09:34:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(503,'2015-03-13 09:11:02','USER_LOGIN',1,'2015-03-13 10:11:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(504,'2015-03-13 10:02:11','USER_LOGIN',1,'2015-03-13 11:02:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(505,'2015-03-13 13:20:58','USER_LOGIN',1,'2015-03-13 14:20:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(506,'2015-03-13 16:19:28','USER_LOGIN',1,'2015-03-13 17:19:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(507,'2015-03-13 18:34:30','USER_LOGIN',1,'2015-03-13 19:34:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(508,'2015-03-14 08:25:02','USER_LOGIN',1,'2015-03-14 09:25:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(509,'2015-03-14 19:15:22','USER_LOGIN',1,'2015-03-14 20:15:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(510,'2015-03-14 21:58:53','USER_LOGIN',1,'2015-03-14 22:58:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(511,'2015-03-14 21:58:59','USER_LOGOUT',1,'2015-03-14 22:58:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(512,'2015-03-14 21:59:07','USER_LOGIN',1,'2015-03-14 22:59:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(513,'2015-03-14 22:58:22','USER_LOGOUT',1,'2015-03-14 23:58:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(514,'2015-03-14 23:00:25','USER_LOGIN',1,'2015-03-15 00:00:25',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(515,'2015-03-16 12:14:28','USER_LOGIN',1,'2015-03-16 13:14:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(516,'2015-03-16 16:09:01','USER_LOGIN',1,'2015-03-16 17:09:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(517,'2015-03-16 16:57:11','USER_LOGIN',1,'2015-03-16 17:57:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(518,'2015-03-16 19:31:31','USER_LOGIN',1,'2015-03-16 20:31:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL,NULL,NULL,NULL),(519,'2015-03-17 17:44:39','USER_LOGIN',1,'2015-03-17 18:44:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(520,'2015-03-17 20:40:57','USER_LOGIN',1,'2015-03-17 21:40:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(521,'2015-03-17 23:14:05','USER_LOGIN',1,'2015-03-18 00:14:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(522,'2015-03-17 23:28:47','USER_LOGOUT',1,'2015-03-18 00:28:47',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(523,'2015-03-17 23:28:54','USER_LOGIN',1,'2015-03-18 00:28:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(524,'2015-03-18 17:37:30','USER_LOGIN',1,'2015-03-18 18:37:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(525,'2015-03-18 18:11:37','USER_LOGIN',1,'2015-03-18 19:11:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(526,'2015-03-19 08:35:08','USER_LOGIN',1,'2015-03-19 09:35:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(527,'2015-03-19 09:20:23','USER_LOGIN',1,'2015-03-19 10:20:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(528,'2015-03-20 13:17:13','USER_LOGIN',1,'2015-03-20 14:17:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(529,'2015-03-20 14:44:31','USER_LOGIN',1,'2015-03-20 15:44:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(530,'2015-03-20 18:24:25','USER_LOGIN',1,'2015-03-20 19:24:25',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(531,'2015-03-20 19:15:54','USER_LOGIN',1,'2015-03-20 20:15:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(532,'2015-03-21 18:40:47','USER_LOGIN',1,'2015-03-21 19:40:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(533,'2015-03-21 21:42:24','USER_LOGIN',1,'2015-03-21 22:42:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(534,'2015-03-22 08:39:23','USER_LOGIN',1,'2015-03-22 09:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(535,'2015-03-23 13:04:55','USER_LOGIN',1,'2015-03-23 14:04:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(536,'2015-03-23 15:47:43','USER_LOGIN',1,'2015-03-23 16:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(537,'2015-03-23 22:56:36','USER_LOGIN',1,'2015-03-23 23:56:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(538,'2015-03-24 01:22:32','USER_LOGIN',1,'2015-03-24 02:22:32',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(539,'2015-03-24 14:40:42','USER_LOGIN',1,'2015-03-24 15:40:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(540,'2015-03-24 15:30:26','USER_LOGOUT',1,'2015-03-24 16:30:26',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(541,'2015-03-24 15:30:29','USER_LOGIN',1,'2015-03-24 16:30:29',2,'(UserLogged,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(542,'2015-03-24 15:49:40','USER_LOGOUT',1,'2015-03-24 16:49:40',2,'(UserLogoff,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(543,'2015-03-24 15:49:48','USER_LOGIN',1,'2015-03-24 16:49:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(544,'2015-03-24 15:52:35','USER_MODIFY',1,'2015-03-24 16:52:35',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(545,'2015-03-24 15:52:52','USER_MODIFY',1,'2015-03-24 16:52:52',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(546,'2015-03-24 15:53:09','USER_MODIFY',1,'2015-03-24 16:53:09',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(547,'2015-03-24 15:53:23','USER_MODIFY',1,'2015-03-24 16:53:23',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(548,'2015-03-24 16:00:04','USER_MODIFY',1,'2015-03-24 17:00:04',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(549,'2015-03-24 16:01:50','USER_MODIFY',1,'2015-03-24 17:01:50',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(550,'2015-03-24 16:10:14','USER_MODIFY',1,'2015-03-24 17:10:14',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(551,'2015-03-24 16:55:13','USER_LOGIN',1,'2015-03-24 17:55:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(552,'2015-03-24 17:44:29','USER_LOGIN',1,'2015-03-24 18:44:29',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL,NULL,NULL,NULL),(553,'2015-09-08 23:06:26','USER_LOGIN',1,'2015-09-09 01:06:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36',NULL,NULL,NULL,NULL),(554,'2015-10-21 22:32:28','USER_LOGIN',1,'2015-10-22 00:32:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL,NULL,NULL,NULL),(555,'2015-10-21 22:32:48','USER_LOGIN',1,'2015-10-22 00:32:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL,NULL,NULL,NULL),(556,'2015-11-07 00:01:51','USER_LOGIN',1,'2015-11-07 01:01:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36',NULL,NULL,NULL,NULL),(557,'2016-03-02 15:21:07','USER_LOGIN',1,'2016-03-02 16:21:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(558,'2016-03-02 15:36:53','USER_LOGIN',1,'2016-03-02 16:36:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(559,'2016-03-02 18:54:23','USER_LOGIN',1,'2016-03-02 19:54:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(560,'2016-03-02 19:11:17','USER_LOGIN',1,'2016-03-02 20:11:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(561,'2016-03-03 18:19:24','USER_LOGIN',1,'2016-03-03 19:19:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL,NULL,NULL,NULL),(562,'2016-12-21 12:51:38','USER_LOGIN',1,'2016-12-21 13:51:38',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL,NULL,NULL,NULL),(563,'2016-12-21 19:52:09','USER_LOGIN',1,'2016-12-21 20:52:09',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL,NULL,NULL,NULL),(566,'2017-10-03 08:49:43','USER_NEW_PASSWORD',1,'2017-10-03 10:49:43',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(567,'2017-10-03 08:49:43','USER_MODIFY',1,'2017-10-03 10:49:43',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(568,'2017-10-03 09:03:12','USER_MODIFY',1,'2017-10-03 11:03:12',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(569,'2017-10-03 09:03:42','USER_MODIFY',1,'2017-10-03 11:03:42',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(570,'2017-10-03 09:07:36','USER_MODIFY',1,'2017-10-03 11:07:36',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(571,'2017-10-03 09:08:58','USER_NEW_PASSWORD',1,'2017-10-03 11:08:58',1,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(572,'2017-10-03 09:08:58','USER_MODIFY',1,'2017-10-03 11:08:58',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(573,'2017-10-03 09:09:23','USER_MODIFY',1,'2017-10-03 11:09:23',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(574,'2017-10-03 09:11:04','USER_NEW_PASSWORD',1,'2017-10-03 11:11:04',1,'Password change for athestudent','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(575,'2017-10-03 09:11:04','USER_MODIFY',1,'2017-10-03 11:11:04',1,'User athestudent modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(576,'2017-10-03 09:11:53','USER_MODIFY',1,'2017-10-03 11:11:53',1,'User abookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(577,'2017-10-03 09:42:12','USER_LOGIN_FAILED',1,'2017-10-03 11:42:11',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(578,'2017-10-03 09:42:19','USER_LOGIN_FAILED',1,'2017-10-03 11:42:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(579,'2017-10-03 09:42:42','USER_LOGIN_FAILED',1,'2017-10-03 11:42:42',NULL,'Bad value for login or password - login=aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(580,'2017-10-03 09:43:50','USER_LOGIN',1,'2017-10-03 11:43:50',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x788','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(581,'2017-10-03 09:44:44','GROUP_MODIFY',1,'2017-10-03 11:44:44',1,'Group Sale representatives modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(582,'2017-10-03 09:46:25','GROUP_CREATE',1,'2017-10-03 11:46:25',1,'Group Management created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(583,'2017-10-03 09:46:46','GROUP_CREATE',1,'2017-10-03 11:46:46',1,'Group Scientists created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(584,'2017-10-03 09:47:41','USER_CREATE',1,'2017-10-03 11:47:41',1,'User mcurie created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(585,'2017-10-03 09:47:41','USER_NEW_PASSWORD',1,'2017-10-03 11:47:41',1,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(586,'2017-10-03 09:47:53','USER_MODIFY',1,'2017-10-03 11:47:53',1,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(587,'2017-10-03 09:48:32','USER_DELETE',1,'2017-10-03 11:48:32',1,'User bbb removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(588,'2017-10-03 09:48:52','USER_MODIFY',1,'2017-10-03 11:48:52',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(589,'2017-10-03 10:01:28','USER_MODIFY',1,'2017-10-03 12:01:28',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(590,'2017-10-03 10:01:39','USER_MODIFY',1,'2017-10-03 12:01:39',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(591,'2017-10-05 06:32:38','USER_LOGIN_FAILED',1,'2017-10-05 08:32:38',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(592,'2017-10-05 06:32:44','USER_LOGIN',1,'2017-10-05 08:32:44',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(593,'2017-10-05 07:07:52','USER_CREATE',1,'2017-10-05 09:07:52',1,'User atheceo created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(594,'2017-10-05 07:07:52','USER_NEW_PASSWORD',1,'2017-10-05 09:07:52',1,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(595,'2017-10-05 07:09:08','USER_NEW_PASSWORD',1,'2017-10-05 09:09:08',1,'Password change for aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(596,'2017-10-05 07:09:08','USER_MODIFY',1,'2017-10-05 09:09:08',1,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(597,'2017-10-05 07:09:46','USER_CREATE',1,'2017-10-05 09:09:46',1,'User admin created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(598,'2017-10-05 07:09:46','USER_NEW_PASSWORD',1,'2017-10-05 09:09:46',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(599,'2017-10-05 07:10:20','USER_MODIFY',1,'2017-10-05 09:10:20',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(600,'2017-10-05 07:10:48','USER_MODIFY',1,'2017-10-05 09:10:48',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(601,'2017-10-05 07:11:22','USER_NEW_PASSWORD',1,'2017-10-05 09:11:22',1,'Password change for bbookkeeper','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(602,'2017-10-05 07:11:22','USER_MODIFY',1,'2017-10-05 09:11:22',1,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(603,'2017-10-05 07:12:37','USER_MODIFY',1,'2017-10-05 09:12:37',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(604,'2017-10-05 07:13:27','USER_MODIFY',1,'2017-10-05 09:13:27',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(605,'2017-10-05 07:13:52','USER_MODIFY',1,'2017-10-05 09:13:52',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(606,'2017-10-05 07:14:35','USER_LOGOUT',1,'2017-10-05 09:14:35',1,'(UserLogoff,aeinstein)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(607,'2017-10-05 07:14:40','USER_LOGIN_FAILED',1,'2017-10-05 09:14:40',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(608,'2017-10-05 07:14:44','USER_LOGIN_FAILED',1,'2017-10-05 09:14:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(609,'2017-10-05 07:14:49','USER_LOGIN',1,'2017-10-05 09:14:49',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(610,'2017-10-05 07:57:18','USER_MODIFY',1,'2017-10-05 09:57:18',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(611,'2017-10-05 08:06:54','USER_LOGOUT',1,'2017-10-05 10:06:54',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(612,'2017-10-05 08:07:03','USER_LOGIN',1,'2017-10-05 10:07:03',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(613,'2017-10-05 19:18:46','USER_LOGIN',1,'2017-10-05 21:18:46',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(614,'2017-10-05 19:29:35','USER_CREATE',1,'2017-10-05 21:29:35',11,'User ccommercy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(615,'2017-10-05 19:29:35','USER_NEW_PASSWORD',1,'2017-10-05 21:29:35',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(616,'2017-10-05 19:30:13','GROUP_CREATE',1,'2017-10-05 21:30:13',11,'Group Commercial created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(617,'2017-10-05 19:31:37','USER_NEW_PASSWORD',1,'2017-10-05 21:31:37',11,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(618,'2017-10-05 19:31:37','USER_MODIFY',1,'2017-10-05 21:31:37',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(619,'2017-10-05 19:32:00','USER_MODIFY',1,'2017-10-05 21:32:00',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(620,'2017-10-05 19:33:33','USER_CREATE',1,'2017-10-05 21:33:33',11,'User sscientol created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(621,'2017-10-05 19:33:33','USER_NEW_PASSWORD',1,'2017-10-05 21:33:33',11,'Password change for sscientol','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(622,'2017-10-05 19:33:47','USER_NEW_PASSWORD',1,'2017-10-05 21:33:47',11,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(623,'2017-10-05 19:33:47','USER_MODIFY',1,'2017-10-05 21:33:47',11,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(624,'2017-10-05 19:34:23','USER_NEW_PASSWORD',1,'2017-10-05 21:34:23',11,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(625,'2017-10-05 19:34:23','USER_MODIFY',1,'2017-10-05 21:34:23',11,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(626,'2017-10-05 19:34:42','USER_MODIFY',1,'2017-10-05 21:34:42',11,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(627,'2017-10-05 19:36:06','USER_NEW_PASSWORD',1,'2017-10-05 21:36:06',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(628,'2017-10-05 19:36:06','USER_MODIFY',1,'2017-10-05 21:36:06',11,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(629,'2017-10-05 19:36:57','USER_NEW_PASSWORD',1,'2017-10-05 21:36:57',11,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(630,'2017-10-05 19:36:57','USER_MODIFY',1,'2017-10-05 21:36:57',11,'User atheceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(631,'2017-10-05 19:37:27','USER_LOGOUT',1,'2017-10-05 21:37:27',11,'(UserLogoff,atheceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(632,'2017-10-05 19:37:35','USER_LOGIN_FAILED',1,'2017-10-05 21:37:35',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(633,'2017-10-05 19:37:39','USER_LOGIN_FAILED',1,'2017-10-05 21:37:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(634,'2017-10-05 19:37:44','USER_LOGIN_FAILED',1,'2017-10-05 21:37:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(635,'2017-10-05 19:37:49','USER_LOGIN_FAILED',1,'2017-10-05 21:37:49',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(636,'2017-10-05 19:38:12','USER_LOGIN_FAILED',1,'2017-10-05 21:38:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(637,'2017-10-05 19:40:48','USER_LOGIN_FAILED',1,'2017-10-05 21:40:48',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(638,'2017-10-05 19:40:55','USER_LOGIN',1,'2017-10-05 21:40:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(639,'2017-10-05 19:43:34','USER_MODIFY',1,'2017-10-05 21:43:34',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(640,'2017-10-05 19:45:43','USER_CREATE',1,'2017-10-05 21:45:43',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(641,'2017-10-05 19:45:43','USER_NEW_PASSWORD',1,'2017-10-05 21:45:43',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(642,'2017-10-05 19:46:18','USER_DELETE',1,'2017-10-05 21:46:18',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(643,'2017-10-05 19:47:09','USER_MODIFY',1,'2017-10-05 21:47:09',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(644,'2017-10-05 19:47:22','USER_MODIFY',1,'2017-10-05 21:47:22',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(645,'2017-10-05 19:52:05','USER_MODIFY',1,'2017-10-05 21:52:05',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(646,'2017-10-05 19:52:23','USER_MODIFY',1,'2017-10-05 21:52:23',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(647,'2017-10-05 19:54:54','USER_NEW_PASSWORD',1,'2017-10-05 21:54:54',12,'Password change for zzeceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(648,'2017-10-05 19:54:54','USER_MODIFY',1,'2017-10-05 21:54:54',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(649,'2017-10-05 19:57:02','USER_MODIFY',1,'2017-10-05 21:57:02',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(650,'2017-10-05 19:57:57','USER_NEW_PASSWORD',1,'2017-10-05 21:57:57',12,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(651,'2017-10-05 19:57:57','USER_MODIFY',1,'2017-10-05 21:57:57',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(652,'2017-10-05 19:59:42','USER_NEW_PASSWORD',1,'2017-10-05 21:59:42',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(653,'2017-10-05 19:59:42','USER_MODIFY',1,'2017-10-05 21:59:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(654,'2017-10-05 20:00:21','USER_MODIFY',1,'2017-10-05 22:00:21',12,'User adminx modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(655,'2017-10-05 20:05:36','USER_MODIFY',1,'2017-10-05 22:05:36',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(656,'2017-10-05 20:06:25','USER_MODIFY',1,'2017-10-05 22:06:25',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(657,'2017-10-05 20:07:18','USER_MODIFY',1,'2017-10-05 22:07:18',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(658,'2017-10-05 20:07:36','USER_MODIFY',1,'2017-10-05 22:07:36',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(659,'2017-10-05 20:08:34','USER_MODIFY',1,'2017-10-05 22:08:34',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(660,'2017-10-05 20:47:52','USER_CREATE',1,'2017-10-05 22:47:52',12,'User cc1 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(661,'2017-10-05 20:47:52','USER_NEW_PASSWORD',1,'2017-10-05 22:47:52',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(662,'2017-10-05 20:47:55','USER_LOGOUT',1,'2017-10-05 22:47:55',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(663,'2017-10-05 20:48:08','USER_LOGIN',1,'2017-10-05 22:48:08',11,'(UserLogged,zzeceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x434','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(664,'2017-10-05 20:48:39','USER_CREATE',1,'2017-10-05 22:48:39',11,'User cc2 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(665,'2017-10-05 20:48:39','USER_NEW_PASSWORD',1,'2017-10-05 22:48:39',11,'Password change for cc2','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(666,'2017-10-05 20:48:59','USER_NEW_PASSWORD',1,'2017-10-05 22:48:59',11,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(667,'2017-10-05 20:48:59','USER_MODIFY',1,'2017-10-05 22:48:59',11,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(668,'2017-10-05 21:06:36','USER_LOGOUT',1,'2017-10-05 23:06:35',11,'(UserLogoff,zzeceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(669,'2017-10-05 21:06:44','USER_LOGIN_FAILED',1,'2017-10-05 23:06:44',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(670,'2017-10-05 21:07:12','USER_LOGIN_FAILED',1,'2017-10-05 23:07:12',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(671,'2017-10-05 21:07:19','USER_LOGIN_FAILED',1,'2017-10-05 23:07:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(672,'2017-10-05 21:07:27','USER_LOGIN_FAILED',1,'2017-10-05 23:07:27',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(673,'2017-10-05 21:07:32','USER_LOGIN',1,'2017-10-05 23:07:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(674,'2017-10-05 21:12:28','USER_NEW_PASSWORD',1,'2017-10-05 23:12:28',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(675,'2017-10-05 21:12:28','USER_MODIFY',1,'2017-10-05 23:12:28',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(676,'2017-10-05 21:13:00','USER_CREATE',1,'2017-10-05 23:13:00',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(677,'2017-10-05 21:13:00','USER_NEW_PASSWORD',1,'2017-10-05 23:13:00',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(678,'2017-10-05 21:13:40','USER_DELETE',1,'2017-10-05 23:13:40',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(679,'2017-10-05 21:14:47','USER_LOGOUT',1,'2017-10-05 23:14:47',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(680,'2017-10-05 21:14:56','USER_LOGIN',1,'2017-10-05 23:14:56',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(681,'2017-10-05 21:15:56','USER_LOGOUT',1,'2017-10-05 23:15:56',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(682,'2017-10-05 21:16:06','USER_LOGIN',1,'2017-10-05 23:16:06',17,'(UserLogged,cc2) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(683,'2017-10-05 21:37:25','USER_LOGOUT',1,'2017-10-05 23:37:25',17,'(UserLogoff,cc2)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(684,'2017-10-05 21:37:31','USER_LOGIN',1,'2017-10-05 23:37:31',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(685,'2017-10-05 21:43:53','USER_LOGOUT',1,'2017-10-05 23:43:53',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(686,'2017-10-05 21:44:00','USER_LOGIN',1,'2017-10-05 23:44:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(687,'2017-10-05 21:46:17','USER_LOGOUT',1,'2017-10-05 23:46:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(688,'2017-10-05 21:46:24','USER_LOGIN',1,'2017-10-05 23:46:24',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL,NULL,NULL,NULL),(689,'2017-11-04 15:17:06','USER_LOGIN',1,'2017-11-04 16:17:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(690,'2017-11-15 22:04:04','USER_LOGIN',1,'2017-11-15 23:04:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(691,'2017-11-15 22:23:45','USER_MODIFY',1,'2017-11-15 23:23:45',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(692,'2017-11-15 22:24:22','USER_MODIFY',1,'2017-11-15 23:24:22',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(693,'2017-11-15 22:24:53','USER_MODIFY',1,'2017-11-15 23:24:53',12,'User cc2 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(694,'2017-11-15 22:25:17','USER_MODIFY',1,'2017-11-15 23:25:17',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(695,'2017-11-15 22:45:37','USER_LOGOUT',1,'2017-11-15 23:45:37',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(696,'2017-11-18 13:41:02','USER_LOGIN',1,'2017-11-18 14:41:02',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(697,'2017-11-18 14:23:35','USER_LOGIN',1,'2017-11-18 15:23:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(698,'2017-11-18 15:15:46','USER_LOGOUT',1,'2017-11-18 16:15:46',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(699,'2017-11-18 15:15:51','USER_LOGIN',1,'2017-11-18 16:15:51',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(700,'2017-11-30 17:52:08','USER_LOGIN',1,'2017-11-30 18:52:08',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(701,'2018-01-10 16:45:43','USER_LOGIN',1,'2018-01-10 17:45:43',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(702,'2018-01-10 16:45:52','USER_LOGOUT',1,'2018-01-10 17:45:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(703,'2018-01-10 16:46:06','USER_LOGIN',1,'2018-01-10 17:46:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(704,'2018-01-16 14:53:47','USER_LOGIN',1,'2018-01-16 15:53:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(705,'2018-01-16 15:04:29','USER_LOGOUT',1,'2018-01-16 16:04:29',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(706,'2018-01-16 15:04:40','USER_LOGIN',1,'2018-01-16 16:04:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(707,'2018-01-22 09:33:26','USER_LOGIN',1,'2018-01-22 10:33:26',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(708,'2018-01-22 09:35:19','USER_LOGOUT',1,'2018-01-22 10:35:19',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(709,'2018-01-22 09:35:29','USER_LOGIN',1,'2018-01-22 10:35:29',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(710,'2018-01-22 10:47:34','USER_CREATE',1,'2018-01-22 11:47:34',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(711,'2018-01-22 10:47:34','USER_NEW_PASSWORD',1,'2018-01-22 11:47:34',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(712,'2018-01-22 12:07:56','USER_LOGIN',1,'2018-01-22 13:07:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(713,'2018-01-22 12:36:25','USER_NEW_PASSWORD',1,'2018-01-22 13:36:25',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(714,'2018-01-22 12:36:25','USER_MODIFY',1,'2018-01-22 13:36:25',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(715,'2018-01-22 12:56:32','USER_MODIFY',1,'2018-01-22 13:56:32',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(716,'2018-01-22 12:58:05','USER_MODIFY',1,'2018-01-22 13:58:05',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(717,'2018-01-22 13:01:02','USER_MODIFY',1,'2018-01-22 14:01:02',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(718,'2018-01-22 13:01:18','USER_MODIFY',1,'2018-01-22 14:01:18',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(719,'2018-01-22 13:13:42','USER_MODIFY',1,'2018-01-22 14:13:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(720,'2018-01-22 13:15:20','USER_DELETE',1,'2018-01-22 14:15:20',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(721,'2018-01-22 13:19:21','USER_LOGOUT',1,'2018-01-22 14:19:21',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(722,'2018-01-22 13:19:32','USER_LOGIN',1,'2018-01-22 14:19:32',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(723,'2018-01-22 13:19:51','USER_LOGOUT',1,'2018-01-22 14:19:51',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(724,'2018-01-22 13:20:01','USER_LOGIN',1,'2018-01-22 14:20:01',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(725,'2018-01-22 13:28:22','USER_LOGOUT',1,'2018-01-22 14:28:22',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(726,'2018-01-22 13:28:35','USER_LOGIN',1,'2018-01-22 14:28:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(727,'2018-01-22 13:33:54','USER_LOGOUT',1,'2018-01-22 14:33:54',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(728,'2018-01-22 13:34:05','USER_LOGIN',1,'2018-01-22 14:34:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(729,'2018-01-22 13:51:46','USER_MODIFY',1,'2018-01-22 14:51:46',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL,NULL,NULL,NULL),(730,'2018-01-22 16:20:12','USER_LOGIN',1,'2018-01-22 17:20:12',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(731,'2018-01-22 16:20:22','USER_LOGOUT',1,'2018-01-22 17:20:22',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(732,'2018-01-22 16:20:36','USER_LOGIN',1,'2018-01-22 17:20:36',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(733,'2018-01-22 16:27:02','USER_CREATE',1,'2018-01-22 17:27:02',12,'User ldestailleur created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(734,'2018-01-22 16:27:02','USER_NEW_PASSWORD',1,'2018-01-22 17:27:02',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(735,'2018-01-22 16:28:34','USER_MODIFY',1,'2018-01-22 17:28:34',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(736,'2018-01-22 16:30:01','USER_ENABLEDISABLE',1,'2018-01-22 17:30:01',12,'User cc2 activated','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(737,'2018-01-22 17:11:06','USER_LOGIN',1,'2018-01-22 18:11:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(738,'2018-01-22 18:00:02','USER_DELETE',1,'2018-01-22 19:00:02',12,'User zzz removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(739,'2018-01-22 18:01:40','USER_DELETE',1,'2018-01-22 19:01:40',12,'User aaab removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(740,'2018-01-22 18:01:52','USER_DELETE',1,'2018-01-22 19:01:52',12,'User zzzg removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL,NULL,NULL,NULL),(741,'2018-03-13 10:54:59','USER_LOGIN',1,'2018-03-13 14:54:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x971','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36',NULL,NULL,NULL,NULL),(742,'2018-07-30 11:13:10','USER_LOGIN',1,'2018-07-30 15:13:10',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(743,'2018-07-30 12:50:23','USER_CREATE',1,'2018-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(744,'2018-07-30 12:50:23','USER_CREATE',1,'2018-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(745,'2018-07-30 12:50:23','USER_NEW_PASSWORD',1,'2018-07-30 16:50:23',12,'Password change for eldy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(746,'2018-07-30 12:50:38','USER_MODIFY',1,'2018-07-30 16:50:38',12,'User eldy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(747,'2018-07-30 12:50:54','USER_DELETE',1,'2018-07-30 16:50:54',12,'User eldy removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(748,'2018-07-30 12:51:23','USER_NEW_PASSWORD',1,'2018-07-30 16:51:23',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(749,'2018-07-30 12:51:23','USER_MODIFY',1,'2018-07-30 16:51:23',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(750,'2018-07-30 18:26:58','USER_LOGIN',1,'2018-07-30 22:26:58',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(751,'2018-07-30 18:27:40','USER_LOGOUT',1,'2018-07-30 22:27:40',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(752,'2018-07-30 18:27:47','USER_LOGIN',1,'2018-07-30 22:27:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(753,'2018-07-30 19:00:00','USER_LOGOUT',1,'2018-07-30 23:00:00',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(754,'2018-07-30 19:00:04','USER_LOGIN',1,'2018-07-30 23:00:04',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(755,'2018-07-30 19:00:14','USER_LOGOUT',1,'2018-07-30 23:00:14',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(756,'2018-07-30 19:00:19','USER_LOGIN',1,'2018-07-30 23:00:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(757,'2018-07-30 19:00:43','USER_LOGOUT',1,'2018-07-30 23:00:43',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(758,'2018-07-30 19:00:48','USER_LOGIN',1,'2018-07-30 23:00:48',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(759,'2018-07-30 19:03:52','USER_LOGOUT',1,'2018-07-30 23:03:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(760,'2018-07-30 19:03:57','USER_LOGIN_FAILED',1,'2018-07-30 23:03:57',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(761,'2018-07-30 19:03:59','USER_LOGIN',1,'2018-07-30 23:03:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(762,'2018-07-30 19:04:13','USER_LOGOUT',1,'2018-07-30 23:04:13',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(763,'2018-07-30 19:04:17','USER_LOGIN',1,'2018-07-30 23:04:17',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(764,'2018-07-30 19:04:26','USER_LOGOUT',1,'2018-07-30 23:04:26',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(765,'2018-07-30 19:04:31','USER_LOGIN',1,'2018-07-30 23:04:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(766,'2018-07-30 19:10:50','USER_LOGOUT',1,'2018-07-30 23:10:50',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(767,'2018-07-30 19:10:54','USER_LOGIN',1,'2018-07-30 23:10:54',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(768,'2018-07-31 10:15:52','USER_LOGIN',1,'2018-07-31 14:15:52',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL,NULL,NULL,NULL),(769,'2018-07-31 10:16:27','USER_LOGIN',1,'2018-07-31 14:16:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(770,'2018-07-31 10:32:14','USER_LOGIN',1,'2018-07-31 14:32:14',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL,NULL,NULL,NULL),(771,'2018-07-31 10:36:28','USER_LOGIN',1,'2018-07-31 14:36:28',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL,NULL,NULL,NULL),(772,'2018-07-31 10:40:10','USER_LOGIN',1,'2018-07-31 14:40:10',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL,NULL,NULL,NULL),(773,'2018-07-31 10:54:16','USER_LOGIN',1,'2018-07-31 14:54:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL,NULL,NULL,NULL),(774,'2018-07-31 12:52:52','USER_LOGIN',1,'2018-07-31 16:52:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x592','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(775,'2018-07-31 13:25:33','USER_LOGOUT',1,'2018-07-31 17:25:33',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(776,'2018-07-31 13:26:32','USER_LOGIN',1,'2018-07-31 17:26:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1280x751','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(777,'2018-07-31 14:13:57','USER_LOGOUT',1,'2018-07-31 18:13:57',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(778,'2018-07-31 14:14:04','USER_LOGIN',1,'2018-07-31 18:14:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(779,'2018-07-31 16:04:35','USER_LOGIN',1,'2018-07-31 20:04:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(780,'2018-07-31 21:14:14','USER_LOGIN',1,'2018-08-01 01:14:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL,NULL,NULL,NULL),(781,'2017-01-29 15:14:05','USER_LOGOUT',1,'2017-01-29 19:14:05',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(782,'2017-01-29 15:34:43','USER_LOGIN',1,'2017-01-29 19:34:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(783,'2017-01-29 15:35:04','USER_LOGOUT',1,'2017-01-29 19:35:04',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(784,'2017-01-29 15:35:12','USER_LOGIN',1,'2017-01-29 19:35:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(785,'2017-01-29 15:36:43','USER_LOGOUT',1,'2017-01-29 19:36:43',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(786,'2017-01-29 15:41:21','USER_LOGIN',1,'2017-01-29 19:41:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(787,'2017-01-29 15:41:41','USER_LOGOUT',1,'2017-01-29 19:41:41',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(788,'2017-01-29 15:42:43','USER_LOGIN',1,'2017-01-29 19:42:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(789,'2017-01-29 15:43:18','USER_LOGOUT',1,'2017-01-29 19:43:18',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(790,'2017-01-29 15:46:31','USER_LOGIN',1,'2017-01-29 19:46:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(791,'2017-01-29 16:18:56','USER_LOGIN',1,'2017-01-29 20:18:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=360x526','192.168.0.254','Mozilla/5.0 (Linux; Android 6.0; LG-H818 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 - DoliDroid - Android client pour Dolibarr ERP-CRM',NULL,NULL,NULL,NULL),(792,'2017-01-29 17:20:59','USER_LOGIN',1,'2017-01-29 21:20:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(793,'2017-01-30 11:19:40','USER_LOGIN',1,'2017-01-30 15:19:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(794,'2017-01-31 16:49:39','USER_LOGIN',1,'2017-01-31 20:49:39',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x520','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(795,'2017-02-01 10:55:23','USER_LOGIN',1,'2017-02-01 14:55:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(796,'2017-02-01 13:34:31','USER_LOGIN',1,'2017-02-01 17:34:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(797,'2017-02-01 14:41:26','USER_LOGIN',1,'2017-02-01 18:41:26',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(798,'2017-02-01 23:51:48','USER_LOGIN_FAILED',1,'2017-02-02 03:51:48',NULL,'Bad value for login or password - login=autologin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(799,'2017-02-01 23:52:55','USER_LOGIN',1,'2017-02-02 03:52:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(800,'2017-02-01 23:55:45','USER_CREATE',1,'2017-02-02 03:55:45',12,'User aboston created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(801,'2017-02-01 23:55:45','USER_NEW_PASSWORD',1,'2017-02-02 03:55:45',12,'Password change for aboston','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(802,'2017-02-01 23:56:38','USER_MODIFY',1,'2017-02-02 03:56:38',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(803,'2017-02-01 23:56:50','USER_MODIFY',1,'2017-02-02 03:56:50',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(804,'2017-02-02 01:14:44','USER_LOGIN',1,'2017-02-02 05:14:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL,NULL,NULL,NULL),(805,'2017-02-03 10:27:18','USER_LOGIN',1,'2017-02-03 14:27:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(806,'2017-02-04 10:22:34','USER_LOGIN',1,'2017-02-04 14:22:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x489','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(807,'2017-02-06 04:01:31','USER_LOGIN',1,'2017-02-06 08:01:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(808,'2017-02-06 10:21:32','USER_LOGIN',1,'2017-02-06 14:21:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(809,'2017-02-06 19:09:27','USER_LOGIN',1,'2017-02-06 23:09:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(810,'2017-02-06 23:39:17','USER_LOGIN',1,'2017-02-07 03:39:17',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(811,'2017-02-07 11:36:34','USER_LOGIN',1,'2017-02-07 15:36:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x676','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(812,'2017-02-07 18:51:53','USER_LOGIN',1,'2017-02-07 22:51:53',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(813,'2017-02-07 23:13:40','USER_LOGIN',1,'2017-02-08 03:13:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(814,'2017-02-08 09:29:12','USER_LOGIN',1,'2017-02-08 13:29:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(815,'2017-02-08 17:33:12','USER_LOGIN',1,'2017-02-08 21:33:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(816,'2017-02-09 17:30:34','USER_LOGIN',1,'2017-02-09 21:30:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(817,'2017-02-10 09:30:02','USER_LOGIN',1,'2017-02-10 13:30:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(818,'2017-02-10 16:16:14','USER_LOGIN',1,'2017-02-10 20:16:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(819,'2017-02-10 17:28:15','USER_LOGIN',1,'2017-02-10 21:28:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(820,'2017-02-11 12:54:03','USER_LOGIN',1,'2017-02-11 16:54:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(821,'2017-02-11 17:23:52','USER_LOGIN',1,'2017-02-11 21:23:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(822,'2017-02-12 12:44:03','USER_LOGIN',1,'2017-02-12 16:44:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(823,'2017-02-12 16:42:13','USER_LOGIN',1,'2017-02-12 20:42:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(824,'2017-02-12 19:14:18','USER_LOGIN',1,'2017-02-12 23:14:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(825,'2017-02-15 17:17:00','USER_LOGIN',1,'2017-02-15 21:17:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(826,'2017-02-15 22:02:40','USER_LOGIN',1,'2017-02-16 02:02:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(827,'2017-02-16 22:13:27','USER_LOGIN',1,'2017-02-17 02:13:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x619','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(828,'2017-02-16 23:54:04','USER_LOGIN',1,'2017-02-17 03:54:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(829,'2017-02-17 09:14:27','USER_LOGIN',1,'2017-02-17 13:14:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(830,'2017-02-17 12:07:05','USER_LOGIN',1,'2017-02-17 16:07:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(831,'2017-02-19 21:22:20','USER_LOGIN',1,'2017-02-20 01:22:20',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(832,'2017-02-20 09:26:47','USER_LOGIN',1,'2017-02-20 13:26:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(833,'2017-02-20 16:39:55','USER_LOGIN',1,'2017-02-20 20:39:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(834,'2017-02-20 16:49:00','USER_MODIFY',1,'2017-02-20 20:49:00',12,'Modification utilisateur ccommerson','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(835,'2017-02-20 17:57:15','USER_LOGIN',1,'2017-02-20 21:57:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(836,'2017-02-20 19:43:48','USER_LOGIN',1,'2017-02-20 23:43:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(837,'2017-02-21 00:04:05','USER_LOGIN',1,'2017-02-21 04:04:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(838,'2017-02-21 10:23:13','USER_LOGIN',1,'2017-02-21 14:23:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(839,'2017-02-21 10:30:17','USER_LOGOUT',1,'2017-02-21 14:30:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(840,'2017-02-21 10:30:22','USER_LOGIN',1,'2017-02-21 14:30:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(841,'2017-02-21 11:44:05','USER_LOGIN',1,'2017-02-21 15:44:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL,NULL,NULL,NULL),(842,'2017-05-12 09:02:48','USER_LOGIN',1,'2017-05-12 13:02:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',NULL,NULL,NULL,NULL),(843,'2017-08-27 13:29:16','USER_LOGIN',1,'2017-08-27 17:29:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(844,'2017-08-28 09:11:07','USER_LOGIN',1,'2017-08-28 13:11:07',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(845,'2017-08-28 10:08:58','USER_LOGIN',1,'2017-08-28 14:08:58',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(846,'2017-08-28 10:12:46','USER_MODIFY',1,'2017-08-28 14:12:46',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(847,'2017-08-28 10:28:25','USER_LOGIN',1,'2017-08-28 14:28:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(848,'2017-08-28 10:28:36','USER_LOGOUT',1,'2017-08-28 14:28:36',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(849,'2017-08-28 10:34:50','USER_LOGIN',1,'2017-08-28 14:34:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(850,'2017-08-28 11:59:02','USER_LOGIN',1,'2017-08-28 15:59:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL,NULL,NULL,NULL),(851,'2017-08-29 09:57:34','USER_LOGIN',1,'2017-08-29 13:57:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(852,'2017-08-29 11:05:51','USER_LOGIN',1,'2017-08-29 15:05:51',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(853,'2017-08-29 14:15:58','USER_LOGIN',1,'2017-08-29 18:15:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(854,'2017-08-29 17:49:28','USER_LOGIN',1,'2017-08-29 21:49:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(855,'2017-08-30 11:53:25','USER_LOGIN',1,'2017-08-30 15:53:25',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(856,'2017-08-30 12:19:31','USER_MODIFY',1,'2017-08-30 16:19:31',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(857,'2017-08-30 12:19:32','USER_MODIFY',1,'2017-08-30 16:19:32',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(858,'2017-08-30 12:19:33','USER_MODIFY',1,'2017-08-30 16:19:33',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(859,'2017-08-30 12:21:42','USER_LOGOUT',1,'2017-08-30 16:21:42',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(860,'2017-08-30 12:21:48','USER_LOGIN',1,'2017-08-30 16:21:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(861,'2017-08-30 15:02:06','USER_LOGIN',1,'2017-08-30 19:02:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(862,'2017-08-31 09:25:42','USER_LOGIN',1,'2017-08-31 13:25:42',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(863,'2017-09-04 07:51:21','USER_LOGIN',1,'2017-09-04 11:51:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x577','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(864,'2017-09-04 09:17:09','USER_LOGIN',1,'2017-09-04 13:17:09',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(865,'2017-09-04 13:40:28','USER_LOGIN',1,'2017-09-04 17:40:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(866,'2017-09-06 07:55:30','USER_LOGIN',1,'2017-09-06 11:55:30',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(867,'2017-09-06 07:55:33','USER_LOGOUT',1,'2017-09-06 11:55:33',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(868,'2017-09-06 07:55:38','USER_LOGIN',1,'2017-09-06 11:55:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(869,'2017-09-06 16:03:38','USER_LOGIN',1,'2017-09-06 20:03:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(870,'2017-09-06 19:43:07','USER_LOGIN',1,'2017-09-06 23:43:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL,NULL,NULL,NULL),(871,'2018-01-19 11:18:08','USER_LOGOUT',1,'2018-01-19 11:18:08',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL,NULL,NULL,NULL),(872,'2018-01-19 11:18:47','USER_LOGIN',1,'2018-01-19 11:18:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x965','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL,NULL,NULL,NULL),(873,'2018-01-19 11:21:41','USER_LOGIN',1,'2018-01-19 11:21:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x926','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(874,'2018-01-19 11:24:18','USER_NEW_PASSWORD',1,'2018-01-19 11:24:18',12,'Password change for admin','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(875,'2018-01-19 11:24:18','USER_MODIFY',1,'2018-01-19 11:24:18',12,'User admin modified','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(876,'2018-01-19 11:28:45','USER_LOGOUT',1,'2018-01-19 11:28:45',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL,NULL,NULL,NULL),(877,'2018-03-16 09:54:15','USER_LOGIN_FAILED',1,'2018-03-16 13:54:15',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL,NULL,NULL,NULL),(878,'2018-03-16 09:54:23','USER_LOGIN',1,'2018-03-16 13:54:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x936','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL,NULL,NULL,NULL),(879,'2019-09-26 11:35:07','USER_MODIFY',1,'2019-09-26 13:35:07',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(880,'2019-09-26 11:35:33','USER_MODIFY',1,'2019-09-26 13:35:33',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(881,'2019-09-26 11:36:33','USER_MODIFY',1,'2019-09-26 13:36:33',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(882,'2019-09-26 11:36:56','USER_MODIFY',1,'2019-09-26 13:36:56',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(883,'2019-09-26 11:37:30','USER_MODIFY',1,'2019-09-26 13:37:30',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(884,'2019-09-26 11:37:56','USER_MODIFY',1,'2019-09-26 13:37:56',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(885,'2019-09-26 11:38:11','USER_MODIFY',1,'2019-09-26 13:38:11',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(886,'2019-09-26 11:38:27','USER_MODIFY',1,'2019-09-26 13:38:27',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(887,'2019-09-26 11:38:48','USER_MODIFY',1,'2019-09-26 13:38:48',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(888,'2019-09-26 11:39:35','USER_MODIFY',1,'2019-09-26 13:39:35',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(889,'2019-09-26 11:41:28','USER_MODIFY',1,'2019-09-26 13:41:28',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(890,'2019-09-26 11:43:27','USER_MODIFY',1,'2019-09-26 13:43:27',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(891,'2019-09-26 11:46:44','USER_MODIFY',1,'2019-09-26 13:46:44',12,'User aleerfok modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(892,'2019-09-26 11:46:54','USER_MODIFY',1,'2019-09-26 13:46:54',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(893,'2019-09-26 11:47:08','USER_MODIFY',1,'2019-09-26 13:47:08',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(894,'2019-09-26 11:48:04','USER_MODIFY',1,'2019-09-26 13:48:04',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(895,'2019-09-26 11:48:32','USER_MODIFY',1,'2019-09-26 13:48:32',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(896,'2019-09-26 11:48:49','USER_MODIFY',1,'2019-09-26 13:48:49',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(897,'2019-09-26 11:49:12','USER_MODIFY',1,'2019-09-26 13:49:12',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(898,'2019-09-26 11:49:21','USER_MODIFY',1,'2019-09-26 13:49:21',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(899,'2019-09-26 11:49:28','USER_MODIFY',1,'2019-09-26 13:49:28',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(900,'2019-09-26 11:49:37','USER_MODIFY',1,'2019-09-26 13:49:37',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(901,'2019-09-26 11:49:46','USER_MODIFY',1,'2019-09-26 13:49:46',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(902,'2019-09-26 11:49:57','USER_MODIFY',1,'2019-09-26 13:49:57',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(903,'2019-09-26 11:50:17','USER_MODIFY',1,'2019-09-26 13:50:17',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(904,'2019-09-26 11:50:43','USER_MODIFY',1,'2019-09-26 13:50:43',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(905,'2019-09-26 11:51:10','USER_MODIFY',1,'2019-09-26 13:51:10',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(906,'2019-09-26 11:51:36','USER_MODIFY',1,'2019-09-26 13:51:36',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(907,'2019-09-26 11:52:16','USER_MODIFY',1,'2019-09-26 13:52:16',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(908,'2019-09-26 11:52:35','USER_MODIFY',1,'2019-09-26 13:52:35',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(909,'2019-09-26 11:52:59','USER_MODIFY',1,'2019-09-26 13:52:59',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(910,'2019-09-26 11:53:28','USER_MODIFY',1,'2019-09-26 13:53:28',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(911,'2019-09-26 11:53:50','USER_MODIFY',1,'2019-09-26 13:53:50',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(912,'2019-09-26 11:54:18','USER_MODIFY',1,'2019-09-26 13:54:18',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(913,'2019-09-26 11:54:43','USER_MODIFY',1,'2019-09-26 13:54:43',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(914,'2019-09-26 11:55:09','USER_MODIFY',1,'2019-09-26 13:55:09',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(915,'2019-09-26 11:55:23','USER_MODIFY',1,'2019-09-26 13:55:23',12,'User ccommerson modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(916,'2019-09-26 11:55:35','USER_MODIFY',1,'2019-09-26 13:55:35',12,'User aleerfok modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(917,'2019-09-26 11:55:58','USER_MODIFY',1,'2019-09-26 13:55:58',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(918,'2019-09-26 15:28:46','USER_LOGIN_FAILED',1,'2019-09-26 17:28:46',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(919,'2019-09-26 15:28:51','USER_LOGIN_FAILED',1,'2019-09-26 17:28:51',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(920,'2019-09-26 15:28:55','USER_LOGIN',1,'2019-09-26 17:28:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(921,'2019-09-27 14:51:19','USER_LOGIN_FAILED',1,'2019-09-27 16:51:19',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(922,'2019-09-27 14:51:49','USER_LOGIN_FAILED',1,'2019-09-27 16:51:49',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(923,'2019-09-27 14:51:55','USER_LOGIN_FAILED',1,'2019-09-27 16:51:55',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(924,'2019-09-27 14:52:22','USER_LOGIN_FAILED',1,'2019-09-27 16:52:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(925,'2019-09-27 14:52:41','USER_LOGIN',1,'2019-09-27 16:52:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(926,'2019-09-27 15:47:07','USER_LOGIN_FAILED',1,'2019-09-27 17:47:07',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(927,'2019-09-27 15:47:09','USER_LOGIN_FAILED',1,'2019-09-27 17:47:09',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(928,'2019-09-27 15:47:12','USER_LOGIN',1,'2019-09-27 17:47:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(929,'2019-09-27 16:39:57','USER_LOGIN',1,'2019-09-27 18:39:57',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(930,'2019-09-30 13:49:22','USER_LOGIN_FAILED',1,'2019-09-30 15:49:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(931,'2019-09-30 13:49:27','USER_LOGIN_FAILED',1,'2019-09-30 15:49:27',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(932,'2019-09-30 13:49:30','USER_LOGIN',1,'2019-09-30 15:49:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(933,'2019-09-30 15:49:05','USER_LOGIN_FAILED',1,'2019-09-30 17:49:05',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(934,'2019-09-30 15:49:08','USER_LOGIN',1,'2019-09-30 17:49:08',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(935,'2019-10-01 11:47:44','USER_LOGIN',1,'2019-10-01 13:47:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(936,'2019-10-01 13:24:03','USER_LOGIN',1,'2019-10-01 15:24:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(937,'2019-10-02 11:41:30','USER_LOGIN_FAILED',1,'2019-10-02 13:41:30',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(938,'2019-10-02 11:41:35','USER_LOGIN',1,'2019-10-02 13:41:35',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x899','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(939,'2019-10-02 17:01:42','USER_LOGIN_FAILED',1,'2019-10-02 19:01:42',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(940,'2019-10-02 17:01:44','USER_LOGIN',1,'2019-10-02 19:01:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(941,'2019-10-04 08:06:36','USER_LOGIN_FAILED',1,'2019-10-04 10:06:36',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(942,'2019-10-04 08:06:40','USER_LOGIN',1,'2019-10-04 10:06:40',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(943,'2019-10-04 08:06:46','USER_LOGOUT',1,'2019-10-04 10:06:46',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(944,'2019-10-04 08:06:50','USER_LOGIN',1,'2019-10-04 10:06:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(945,'2019-10-04 10:28:53','USER_LOGIN_FAILED',1,'2019-10-04 12:28:53',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(946,'2019-10-04 10:31:06','USER_LOGIN',1,'2019-10-04 12:31:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x520','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(947,'2019-10-04 14:55:58','USER_LOGIN',1,'2019-10-04 16:55:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(948,'2019-10-04 16:45:36','USER_LOGIN_FAILED',1,'2019-10-04 18:45:36',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(949,'2019-10-04 16:45:40','USER_LOGIN',1,'2019-10-04 18:45:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x899','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(950,'2019-10-05 09:10:32','USER_LOGIN',1,'2019-10-05 11:10:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(951,'2019-10-06 09:02:10','USER_LOGIN_FAILED',1,'2019-10-06 11:02:10',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(952,'2019-10-06 09:02:12','USER_LOGIN',1,'2019-10-06 11:02:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x513','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(953,'2019-10-07 09:00:29','USER_LOGIN_FAILED',1,'2019-10-07 11:00:29',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(954,'2019-10-07 09:00:33','USER_LOGIN',1,'2019-10-07 11:00:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(955,'2019-10-07 15:05:26','USER_LOGIN_FAILED',1,'2019-10-07 17:05:26',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(956,'2019-10-07 15:05:29','USER_LOGIN_FAILED',1,'2019-10-07 17:05:29',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(957,'2019-10-08 09:57:04','USER_LOGIN_FAILED',1,'2019-10-08 11:57:04',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(958,'2019-10-08 09:57:07','USER_LOGIN',1,'2019-10-08 11:57:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x637','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(959,'2019-10-08 11:18:14','USER_LOGIN_FAILED',1,'2019-10-08 13:18:14',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(960,'2019-10-08 11:18:18','USER_LOGIN',1,'2019-10-08 13:18:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(961,'2019-10-08 13:29:24','USER_LOGIN',1,'2019-10-08 15:29:24',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(962,'2019-10-08 17:04:42','USER_LOGIN_FAILED',1,'2019-10-08 19:04:42',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(963,'2019-10-08 17:04:46','USER_LOGIN',1,'2019-10-08 19:04:46',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(964,'2019-10-08 18:37:06','USER_LOGIN_FAILED',1,'2019-10-08 20:37:06',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(965,'2019-10-08 18:38:29','USER_LOGIN_FAILED',1,'2019-10-08 20:38:29',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(966,'2019-10-08 18:38:32','USER_LOGIN',1,'2019-10-08 20:38:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(967,'2019-10-08 19:01:07','USER_MODIFY',1,'2019-10-08 21:01:07',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,NULL,NULL,NULL),(968,'2019-11-28 15:09:03','USER_LOGOUT',1,'2019-11-28 19:09:03',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(969,'2019-11-28 15:09:18','USER_LOGIN_FAILED',1,'2019-11-28 19:09:18',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(970,'2019-11-28 15:09:22','USER_LOGIN',1,'2019-11-28 19:09:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(971,'2019-11-28 16:25:52','USER_LOGIN_FAILED',1,'2019-11-28 20:25:52',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(972,'2019-11-28 16:25:56','USER_LOGIN',1,'2019-11-28 20:25:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(973,'2019-11-29 08:43:22','USER_LOGIN_FAILED',1,'2019-11-29 12:43:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(974,'2019-11-29 08:43:24','USER_LOGIN',1,'2019-11-29 12:43:24',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(975,'2019-12-19 11:12:30','USER_LOGIN_FAILED',1,'2019-12-19 15:12:30',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(976,'2019-12-19 11:12:33','USER_LOGIN',1,'2019-12-19 15:12:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(977,'2019-12-20 09:38:10','USER_LOGIN_FAILED',1,'2019-12-20 13:38:10',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(978,'2019-12-20 09:38:13','USER_LOGIN',1,'2019-12-20 13:38:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(979,'2019-12-20 15:59:50','USER_LOGIN',1,'2019-12-20 19:59:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(980,'2019-12-21 13:05:49','USER_LOGIN_FAILED',1,'2019-12-21 17:05:49',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(981,'2019-12-21 13:05:52','USER_LOGIN',1,'2019-12-21 17:05:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x552','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(982,'2019-12-21 15:26:25','USER_LOGIN_FAILED',1,'2019-12-21 19:26:25',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(983,'2019-12-21 15:26:28','USER_LOGIN',1,'2019-12-21 19:26:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(984,'2019-12-21 15:27:00','USER_LOGOUT',1,'2019-12-21 19:27:00',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(985,'2019-12-21 15:27:05','USER_LOGIN',1,'2019-12-21 19:27:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(986,'2019-12-21 15:27:44','USER_LOGOUT',1,'2019-12-21 19:27:44',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(987,'2019-12-21 15:28:04','USER_LOGIN',1,'2019-12-21 19:28:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(988,'2019-12-22 11:59:41','USER_LOGIN',1,'2019-12-22 15:59:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(989,'2019-12-22 15:06:01','USER_LOGIN_FAILED',1,'2019-12-22 19:06:01',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(990,'2019-12-22 15:06:06','USER_LOGIN_FAILED',1,'2019-12-22 19:06:06',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(991,'2019-12-22 15:06:15','USER_LOGIN',1,'2019-12-22 19:06:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(992,'2019-12-22 18:43:21','USER_LOGIN',1,'2019-12-22 22:43:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x980','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(993,'2019-12-22 20:16:19','USER_LOGIN',1,'2019-12-23 00:16:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x584','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(994,'2019-12-23 10:05:11','USER_LOGIN_FAILED',1,'2019-12-23 14:05:11',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(995,'2019-12-23 10:05:14','USER_LOGIN',1,'2019-12-23 14:05:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(996,'2019-12-23 13:24:50','USER_LOGIN_FAILED',1,'2019-12-23 17:24:50',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(997,'2019-12-23 13:24:54','USER_LOGIN',1,'2019-12-23 17:24:54',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(998,'2019-12-25 21:37:28','USER_LOGIN_FAILED',1,'2019-12-26 01:37:28',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(999,'2019-12-25 21:37:30','USER_LOGIN',1,'2019-12-26 01:37:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1000,'2020-01-01 10:23:41','USER_LOGIN_FAILED',1,'2020-01-01 14:23:41',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1001,'2020-01-01 10:23:43','USER_LOGIN',1,'2020-01-01 14:23:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1002,'2020-01-01 19:52:00','USER_LOGIN_FAILED',1,'2020-01-01 23:52:00',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1003,'2020-01-01 19:52:07','USER_LOGIN',1,'2020-01-01 23:52:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1004,'2020-01-02 13:46:18','USER_LOGIN',1,'2020-01-02 17:46:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1005,'2020-01-02 14:49:05','USER_LOGIN',1,'2020-01-02 18:49:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x710','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1006,'2020-01-02 16:44:11','USER_LOGIN_FAILED',1,'2020-01-02 20:44:11',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1007,'2020-01-02 16:44:14','USER_LOGIN',1,'2020-01-02 20:44:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1008,'2020-01-02 18:54:45','USER_LOGIN_FAILED',1,'2020-01-02 22:54:45',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1009,'2020-01-02 18:54:48','USER_LOGIN',1,'2020-01-02 22:54:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1010,'2020-01-03 09:22:02','USER_LOGIN_FAILED',1,'2020-01-03 13:22:02',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1011,'2020-01-03 09:22:06','USER_LOGIN',1,'2020-01-03 13:22:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1012,'2020-01-03 11:56:30','USER_LOGIN',1,'2020-01-03 15:56:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1013,'2020-01-04 13:44:25','USER_LOGIN_FAILED',1,'2020-01-04 17:44:25',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1014,'2020-01-04 13:44:28','USER_LOGIN',1,'2020-01-04 17:44:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1015,'2020-01-05 19:36:34','USER_LOGIN_FAILED',1,'2020-01-05 23:36:34',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1016,'2020-01-05 19:36:39','USER_LOGIN',1,'2020-01-05 23:36:39',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1017,'2020-01-06 01:12:23','USER_LOGIN_FAILED',1,'2020-01-06 05:12:23',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1018,'2020-01-06 01:12:25','USER_LOGIN',1,'2020-01-06 05:12:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1019,'2020-01-06 10:33:33','USER_LOGIN',1,'2020-01-06 14:33:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1020,'2020-01-06 13:59:58','USER_LOGIN',1,'2020-01-06 17:59:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1021,'2020-01-06 16:08:41','USER_LOGIN',1,'2020-01-06 20:08:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1022,'2020-01-07 13:19:13','USER_LOGIN',1,'2020-01-07 17:19:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1023,'2020-01-07 15:06:53','USER_LOGIN_FAILED',1,'2020-01-07 19:06:53',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1024,'2020-01-07 15:06:59','USER_LOGIN',1,'2020-01-07 19:06:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1025,'2020-01-07 16:21:53','USER_LOGIN_FAILED',1,'2020-01-07 20:21:53',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1026,'2020-01-07 16:21:56','USER_LOGIN',1,'2020-01-07 20:21:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1027,'2020-01-07 17:46:46','USER_LOGIN',1,'2020-01-07 21:46:46',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1028,'2020-01-08 01:31:40','USER_LOGIN',1,'2020-01-08 05:31:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1029,'2020-01-08 15:32:34','USER_LOGIN_FAILED',1,'2020-01-08 19:32:34',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1030,'2020-01-08 15:32:38','USER_LOGIN',1,'2020-01-08 19:32:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1031,'2020-01-09 15:59:02','USER_LOGIN',1,'2020-01-09 19:59:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1032,'2020-01-09 21:33:47','USER_LOGIN',1,'2020-01-10 01:33:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1033,'2020-01-10 00:42:07','USER_LOGIN',1,'2020-01-10 04:42:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1034,'2020-01-10 22:18:15','USER_LOGIN',1,'2020-01-11 02:18:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1035,'2020-01-11 13:11:59','USER_LOGIN',1,'2020-01-11 17:11:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1036,'2020-01-12 20:13:37','USER_LOGIN',1,'2020-01-13 00:13:37',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1037,'2020-01-12 20:58:27','USER_LOGIN',1,'2020-01-13 00:58:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1038,'2020-01-13 03:35:56','USER_LOGIN',1,'2020-01-13 07:35:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1039,'2020-01-13 10:37:51','USER_LOGIN_FAILED',1,'2020-01-13 14:37:51',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1040,'2020-01-13 10:37:55','USER_LOGIN',1,'2020-01-13 14:37:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1041,'2020-01-13 14:34:55','USER_LOGIN_FAILED',1,'2020-01-13 18:34:55',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1042,'2020-01-13 14:34:58','USER_LOGIN',1,'2020-01-13 18:34:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1043,'2020-01-15 10:28:04','USER_LOGIN_FAILED',1,'2020-01-15 14:28:04',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1044,'2020-01-15 10:28:07','USER_LOGIN',1,'2020-01-15 14:28:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1045,'2020-01-15 11:49:56','USER_LOGIN_FAILED',1,'2020-01-15 15:49:56',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1046,'2020-01-15 11:49:58','USER_LOGIN',1,'2020-01-15 15:49:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1047,'2020-01-15 13:35:01','USER_LOGIN_FAILED',1,'2020-01-15 17:35:01',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1048,'2020-01-15 13:35:04','USER_LOGIN',1,'2020-01-15 17:35:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1049,'2020-01-15 14:41:15','USER_LOGIN_FAILED',1,'2020-01-15 18:41:15',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1050,'2020-01-15 14:41:18','USER_LOGIN',1,'2020-01-15 18:41:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1051,'2020-01-15 18:14:40','USER_LOGIN',1,'2020-01-15 22:14:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1052,'2020-01-15 20:03:35','USER_LOGIN',1,'2020-01-16 00:03:35',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1053,'2020-01-15 20:41:56','USER_LOGIN',1,'2020-01-16 00:41:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1054,'2020-01-16 01:01:22','USER_LOGIN',1,'2020-01-16 02:01:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1055,'2020-01-16 15:43:23','USER_LOGIN',1,'2020-01-16 16:43:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1056,'2020-01-16 15:44:42','USER_ENABLEDISABLE',1,'2020-01-16 16:44:42',12,'User aboston activated','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1057,'2020-01-16 17:01:27','USER_LOGIN',1,'2020-01-16 18:01:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1058,'2020-01-17 09:34:03','USER_LOGIN',1,'2020-01-17 10:34:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1059,'2020-01-18 15:17:00','USER_LOGIN',1,'2020-01-18 16:17:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x899','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1060,'2020-01-18 18:32:21','USER_LOGIN',1,'2020-01-18 19:32:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x672','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1061,'2020-01-19 13:20:27','USER_LOGIN_FAILED',1,'2020-01-19 14:20:27',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1062,'2020-01-19 13:20:30','USER_LOGIN',1,'2020-01-19 14:20:30',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1063,'2020-01-19 17:05:23','USER_LOGIN',1,'2020-01-19 18:05:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1064,'2020-01-19 19:29:37','USER_LOGIN',1,'2020-01-19 20:29:37',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1065,'2020-01-20 00:19:16','USER_LOGIN_FAILED',1,'2020-01-20 01:19:16',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1066,'2020-01-20 00:19:19','USER_LOGIN',1,'2020-01-20 01:19:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1067,'2020-01-20 10:20:00','USER_LOGIN',1,'2020-01-20 11:20:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1068,'2020-01-20 13:29:21','USER_LOGIN',1,'2020-01-20 14:29:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1069,'2020-01-20 16:20:00','USER_LOGIN',1,'2020-01-20 17:20:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1070,'2020-01-20 22:52:22','USER_LOGIN_FAILED',1,'2020-01-20 23:52:22',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1071,'2020-01-20 22:52:25','USER_LOGIN',1,'2020-01-20 23:52:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1072,'2020-01-20 23:43:37','USER_LOGIN_FAILED',1,'2020-01-21 00:43:37',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1073,'2020-01-20 23:43:41','USER_LOGIN',1,'2020-01-21 00:43:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1905x643','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1074,'2020-01-21 09:21:05','USER_LOGIN_FAILED',1,'2020-01-21 10:21:05',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1075,'2020-01-21 09:21:09','USER_LOGIN',1,'2020-01-21 10:21:09',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x870','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1076,'2020-01-21 09:33:53','USER_LOGOUT',1,'2020-01-21 10:33:53',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1077,'2020-01-21 09:35:27','USER_LOGIN',1,'2020-01-21 10:35:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1078,'2020-01-21 09:35:52','USER_LOGOUT',1,'2020-01-21 10:35:52',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1079,'2020-01-21 09:38:41','USER_LOGIN',1,'2020-01-21 10:38:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x919','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',NULL,'8ac86e29343929e21171a305760f9a3b',NULL,NULL),(1080,'2021-04-15 10:38:52','USER_NEW_PASSWORD',1,'2021-04-15 07:38:52',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1081,'2021-04-15 10:38:52','USER_MODIFY',1,'2021-04-15 07:38:52',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1082,'2021-04-15 10:40:22','USER_NEW_PASSWORD',1,'2021-04-15 07:40:22',12,'Password change for zzeceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1083,'2021-04-15 10:40:22','USER_MODIFY',1,'2021-04-15 07:40:22',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1084,'2021-04-15 10:41:51','USER_NEW_PASSWORD',1,'2021-04-15 07:41:51',12,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1085,'2021-04-15 10:41:51','USER_MODIFY',1,'2021-04-15 07:41:51',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1086,'2021-04-15 10:42:13','USER_NEW_PASSWORD',1,'2021-04-15 07:42:13',12,'Password change for aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1087,'2021-04-15 10:42:13','USER_MODIFY',1,'2021-04-15 07:42:13',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1088,'2021-04-15 10:54:43','USER_LOGOUT',1,'2021-04-15 07:54:43',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1089,'2021-04-15 10:55:32','USER_LOGIN_FAILED',1,'2021-04-15 07:55:32',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1090,'2021-04-15 10:55:36','USER_LOGIN',1,'2021-04-15 07:55:36',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1091,'2021-04-15 10:55:57','USER_LOGOUT',1,'2021-04-15 07:55:57',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1092,'2021-04-15 10:56:17','USER_LOGIN',1,'2021-04-15 07:56:17',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1093,'2021-04-15 10:56:37','USER_LOGOUT',1,'2021-04-15 07:56:37',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1094,'2021-04-15 10:59:04','USER_LOGIN',1,'2021-04-15 07:59:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x948','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',NULL,'ad25e182a7c96613025098ed58d8c6cb',NULL,NULL),(1095,'2022-07-05 07:56:28','USER_LOGIN_FAILED',1,'2022-07-05 07:56:28',NULL,'Identifiant ou mot de passe incorrect - login=admin','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',NULL,'eef6babe82a3a30e6c3b93525e9fe8be60019b63',NULL,NULL),(1096,'2022-07-05 07:56:33','USER_LOGIN',1,'2022-07-05 07:56:33',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x913','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',NULL,'eef6babe82a3a30e6c3b93525e9fe8be60019b63',NULL,NULL); /*!40000 ALTER TABLE `llx_events` ENABLE KEYS */; UNLOCK TABLES; @@ -5926,13 +6277,13 @@ DROP TABLE IF EXISTS `llx_expedition`; CREATE TABLE `llx_expedition` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_customer` varchar(255) DEFAULT NULL, `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(30) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -5941,7 +6292,7 @@ CREATE TABLE `llx_expedition` ( `date_delivery` datetime DEFAULT NULL, `fk_address` int(11) DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, - `tracking_number` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `tracking_number` varchar(50) DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `height` float DEFAULT NULL, `height_unit` int(11) DEFAULT NULL, @@ -5950,16 +6301,16 @@ CREATE TABLE `llx_expedition` ( `size` float DEFAULT NULL, `weight_units` int(11) DEFAULT NULL, `weight` float DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `billed` smallint(6) DEFAULT 0, `fk_user_modif` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_expedition_uk_ref` (`ref`,`entity`), KEY `idx_expedition_fk_soc` (`fk_soc`), @@ -5970,7 +6321,7 @@ CREATE TABLE `llx_expedition` ( CONSTRAINT `fk_expedition_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_expedition_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_expedition_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5994,10 +6345,10 @@ CREATE TABLE `llx_expedition_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_expedition_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6019,7 +6370,7 @@ DROP TABLE IF EXISTS `llx_expedition_package`; CREATE TABLE `llx_expedition_package` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_expedition` int(11) NOT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `value` double(24,8) DEFAULT 0.00000000, `fk_package_type` int(11) DEFAULT NULL, `height` float DEFAULT NULL, @@ -6032,7 +6383,7 @@ CREATE TABLE `llx_expedition_package` ( `tail_lift` smallint(6) DEFAULT 0, `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6062,7 +6413,7 @@ CREATE TABLE `llx_expeditiondet` ( KEY `idx_expeditiondet_fk_expedition` (`fk_expedition`), KEY `idx_expeditiondet_fk_origin_line` (`fk_origin_line`), CONSTRAINT `fk_expeditiondet_fk_expedition` FOREIGN KEY (`fk_expedition`) REFERENCES `llx_expedition` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6087,13 +6438,13 @@ CREATE TABLE `llx_expeditiondet_batch` ( `fk_expeditiondet` int(11) NOT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, - `batch` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `qty` double NOT NULL DEFAULT 0, `fk_origin_stock` int(11) NOT NULL, PRIMARY KEY (`rowid`), KEY `idx_fk_expeditiondet` (`fk_expeditiondet`), CONSTRAINT `fk_expeditiondet_batch_fk_expeditiondet` FOREIGN KEY (`fk_expeditiondet`) REFERENCES `llx_expeditiondet` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6116,10 +6467,10 @@ CREATE TABLE `llx_expeditiondet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_expeditiondet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6140,7 +6491,7 @@ DROP TABLE IF EXISTS `llx_expensereport`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_expensereport` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(50) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `ref_number_int` int(11) DEFAULT NULL, `ref_ext` int(11) DEFAULT NULL, @@ -6167,22 +6518,22 @@ CREATE TABLE `llx_expensereport` ( `fk_statut` int(11) NOT NULL, `fk_c_paiement` int(11) DEFAULT NULL, `paid` smallint(6) NOT NULL DEFAULT 0, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `detail_refuse` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `detail_cancel` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, + `detail_refuse` varchar(255) DEFAULT NULL, + `detail_cancel` varchar(255) DEFAULT NULL, `integration_compta` int(11) DEFAULT NULL, `fk_bank_account` int(11) DEFAULT NULL, - `model_pdf` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `model_pdf` varchar(50) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_expensereport_uk_ref` (`ref`,`entity`), @@ -6193,7 +6544,7 @@ CREATE TABLE `llx_expensereport` ( KEY `idx_expensereport_fk_user_valid` (`fk_user_valid`), KEY `idx_expensereport_fk_user_approve` (`fk_user_approve`), KEY `idx_expensereport_fk_refuse` (`fk_user_approve`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6216,10 +6567,10 @@ DROP TABLE IF EXISTS `llx_expensereport_det`; CREATE TABLE `llx_expensereport_det` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_expensereport` int(11) NOT NULL, - `docnumber` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `docnumber` varchar(128) DEFAULT NULL, `fk_c_type_fees` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `comments` text COLLATE utf8_unicode_ci NOT NULL, + `comments` text NOT NULL, `product_type` int(11) DEFAULT -1, `qty` double NOT NULL, `subprice` double(24,8) NOT NULL DEFAULT 0.00000000, @@ -6227,9 +6578,9 @@ CREATE TABLE `llx_expensereport_det` ( `remise_percent` double DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) DEFAULT NULL, `total_ht` double(24,8) NOT NULL DEFAULT 0.00000000, `total_tva` double(24,8) NOT NULL DEFAULT 0.00000000, `total_localtax1` double(24,8) DEFAULT 0.00000000, @@ -6239,21 +6590,21 @@ CREATE TABLE `llx_expensereport_det` ( `info_bits` int(11) DEFAULT 0, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `fk_facture` int(11) DEFAULT 0, `fk_code_ventilation` int(11) DEFAULT 0, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', - `rule_warning_message` text COLLATE utf8_unicode_ci DEFAULT NULL, + `vat_src_code` varchar(10) DEFAULT '', + `rule_warning_message` text DEFAULT NULL, `fk_c_exp_tax_cat` int(11) DEFAULT NULL, `fk_ecm_files` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6277,10 +6628,10 @@ CREATE TABLE `llx_expensereport_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_expensereport_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6309,7 +6660,7 @@ CREATE TABLE `llx_expensereport_ik` ( `ikoffset` double NOT NULL DEFAULT 0, `active` int(11) DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6340,11 +6691,11 @@ CREATE TABLE `llx_expensereport_rules` ( `fk_user` int(11) DEFAULT NULL, `fk_usergroup` int(11) DEFAULT NULL, `fk_c_type_fees` int(11) NOT NULL, - `code_expense_rules_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `code_expense_rules_type` varchar(50) NOT NULL, `is_for_all` tinyint(4) DEFAULT 0, `entity` int(11) DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6365,12 +6716,12 @@ DROP TABLE IF EXISTS `llx_export_compta`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_export_compta` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(12) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(12) NOT NULL, `date_export` datetime NOT NULL, `fk_user` int(11) NOT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6392,14 +6743,14 @@ DROP TABLE IF EXISTS `llx_export_model`; CREATE TABLE `llx_export_model` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) NOT NULL DEFAULT 0, - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `field` text COLLATE utf8_unicode_ci NOT NULL, - `filter` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(50) NOT NULL, + `type` varchar(64) DEFAULT NULL, + `field` text NOT NULL, + `filter` text DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_export_model` (`label`,`type`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6421,34 +6772,37 @@ DROP TABLE IF EXISTS `llx_extrafields`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `elementtype` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'member', - `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `elementtype` varchar(64) NOT NULL DEFAULT 'member', + `name` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, - `size` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) NOT NULL, + `type` varchar(8) DEFAULT NULL, + `size` varchar(8) DEFAULT NULL, `pos` int(11) DEFAULT 0, `alwayseditable` int(11) DEFAULT 0, - `param` text COLLATE utf8_unicode_ci DEFAULT NULL, + `param` text DEFAULT NULL, `fieldunique` int(11) DEFAULT 0, `fieldrequired` int(11) DEFAULT 0, - `perms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `list` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `perms` varchar(255) DEFAULT NULL, + `list` varchar(128) DEFAULT NULL, `totalizable` tinyint(1) DEFAULT 0, `ishidden` int(11) DEFAULT 0, - `fieldcomputed` text COLLATE utf8_unicode_ci DEFAULT NULL, - `fielddefault` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `langs` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `fieldcomputed` text DEFAULT NULL, + `fielddefault` text DEFAULT NULL, + `langs` varchar(64) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, - `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1', - `help` text COLLATE utf8_unicode_ci DEFAULT NULL, + `enabled` varchar(255) DEFAULT '1', + `help` text DEFAULT NULL, `printable` int(11) DEFAULT 0, + `css` varchar(128) DEFAULT NULL, + `cssview` varchar(128) DEFAULT NULL, + `csslist` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_extrafields_name` (`name`,`entity`,`elementtype`) -) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6457,7 +6811,7 @@ CREATE TABLE `llx_extrafields` ( LOCK TABLES `llx_extrafields` WRITE; /*!40000 ALTER TABLE `llx_extrafields` DISABLE KEYS */; -INSERT INTO `llx_extrafields` VALUES (27,'projet','priority',1,'2018-01-19 11:17:49','Priority','select','',0,1,'a:1:{s:7:\"options\";a:5:{i:1;s:1:\"1\";i:2;s:1:\"2\";i:3;s:1:\"3\";i:4;s:1:\"4\";i:5;s:1:\"5\";}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,NULL,NULL,NULL,'1',NULL,0),(33,'adherent','extradatamember',1,'2019-10-08 18:47:11','Extra personalized data','varchar','10',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2019-10-08 20:47:11','1',NULL,0),(34,'adherent_type','extradatamembertype',1,'2019-10-08 18:47:43','Extra personalized data','varchar','32',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2019-10-08 20:47:43','1',NULL,0),(35,'commande','custom1',1,'2019-12-21 13:31:31','Custom field 1','varchar','10',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2019-12-21 17:31:31','1',NULL,0),(36,'societe','height',1,'2020-01-05 20:37:18','Height','varchar','128',1,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:18','1',NULL,0),(37,'societe','weight',1,'2020-01-05 20:37:18','Weigth','varchar','128',2,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:18','1',NULL,0),(38,'societe','prof',1,'2020-01-05 20:37:18','Profession','varchar','128',3,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:18','1',NULL,0),(39,'societe','birthdate',1,'2020-01-05 20:37:19','Birth date','date','0',4,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:19','1',NULL,0),(40,'cabinetmed_cons','aaa',1,'2020-01-06 17:23:52','aaa','varchar','255',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 21:23:52','1',NULL,0); +INSERT INTO `llx_extrafields` VALUES (27,'projet','priority',1,'2018-01-19 11:17:49','Priority','select','',0,1,'a:1:{s:7:\"options\";a:5:{i:1;s:1:\"1\";i:2;s:1:\"2\";i:3;s:1:\"3\";i:4;s:1:\"4\";i:5;s:1:\"5\";}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,NULL,NULL,NULL,'1',NULL,0,NULL,NULL,NULL),(33,'adherent','extradatamember',1,'2019-10-08 18:47:11','Extra personalized data','varchar','10',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2019-10-08 20:47:11','1',NULL,0,NULL,NULL,NULL),(34,'adherent_type','extradatamembertype',1,'2019-10-08 18:47:43','Extra personalized data','varchar','32',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2019-10-08 20:47:43','1',NULL,0,NULL,NULL,NULL),(35,'commande','custom1',1,'2019-12-21 13:31:31','Custom field 1','varchar','10',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2019-12-21 17:31:31','1',NULL,0,NULL,NULL,NULL),(36,'societe','height',1,'2020-01-05 20:37:18','Height','varchar','128',1,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:18','1',NULL,0,NULL,NULL,NULL),(37,'societe','weight',1,'2020-01-05 20:37:18','Weigth','varchar','128',2,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:18','1',NULL,0,NULL,NULL,NULL),(38,'societe','prof',1,'2020-01-05 20:37:18','Profession','varchar','128',3,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:18','1',NULL,0,NULL,NULL,NULL),(39,'societe','birthdate',1,'2020-01-05 20:37:19','Birth date','date','0',4,0,'',0,0,NULL,'-1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 00:37:19','1',NULL,0,NULL,NULL,NULL),(40,'cabinetmed_cons','aaa',1,'2020-01-06 17:23:52','aaa','varchar','255',100,1,'a:1:{s:7:\"options\";a:1:{s:0:\"\";N;}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,12,12,'2020-01-06 21:23:52','1',NULL,0,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_extrafields` ENABLE KEYS */; UNLOCK TABLES; @@ -6470,13 +6824,13 @@ DROP TABLE IF EXISTS `llx_facture`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_facture` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, `type` smallint(6) NOT NULL DEFAULT 0, - `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `increment` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, + `increment` varchar(10) DEFAULT NULL, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `datef` date DEFAULT NULL, @@ -6488,8 +6842,9 @@ CREATE TABLE `llx_facture` ( `remise_percent` double DEFAULT 0, `remise_absolue` double DEFAULT 0, `remise` double DEFAULT 0, - `close_code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, - `close_note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `close_code` varchar(16) DEFAULT NULL, + `close_missing_amount` double(24,8) DEFAULT NULL, + `close_note` varchar(128) DEFAULT NULL, `total_tva` double(24,8) DEFAULT 0.00000000, `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, @@ -6504,15 +6859,15 @@ CREATE TABLE `llx_facture` ( `fk_facture_source` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) NOT NULL DEFAULT 1, `fk_mode_reglement` int(11) DEFAULT NULL, `date_lim_reglement` date DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `situation_cycle_ref` smallint(6) DEFAULT NULL, `situation_counter` smallint(6) DEFAULT NULL, `situation_final` smallint(6) DEFAULT NULL, @@ -6520,19 +6875,19 @@ CREATE TABLE `llx_facture` ( `retained_warranty_date_limit` date DEFAULT NULL, `retained_warranty_fk_cond_reglement` int(11) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_transport_mode` int(11) DEFAULT NULL, `date_pointoftax` date DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `fk_fac_rec_source` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `module_source` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `pos_source` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `module_source` varchar(32) DEFAULT NULL, + `pos_source` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_facture_ref` (`ref`,`entity`), KEY `idx_facture_fk_soc` (`fk_soc`), @@ -6543,12 +6898,13 @@ CREATE TABLE `llx_facture` ( KEY `idx_facture_fk_account` (`fk_account`), KEY `idx_facture_fk_currency` (`fk_currency`), KEY `idx_facture_fk_statut` (`fk_statut`), + KEY `idx_facture_datef` (`datef`), CONSTRAINT `fk_facture_fk_facture_source` FOREIGN KEY (`fk_facture_source`) REFERENCES `llx_facture` (`rowid`), CONSTRAINT `fk_facture_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), CONSTRAINT `fk_facture_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_facture_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_facture_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=232 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=232 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6557,7 +6913,7 @@ CREATE TABLE `llx_facture` ( LOCK TABLES `llx_facture` WRITE; /*!40000 ALTER TABLE `llx_facture` DISABLE KEYS */; -INSERT INTO `llx_facture` VALUES (2,'FA1007-0002',1,NULL,NULL,0,NULL,NULL,2,'2012-07-10 18:20:13','2021-07-10',NULL,NULL,'2021-07-11 17:49:28',1,10.00000000,NULL,NULL,0,NULL,NULL,0.10000000,0.00000000,0.00000000,0.00000000,46.00000000,46.10000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-07-10',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(3,'FA1107-0006',1,NULL,NULL,0,NULL,NULL,10,'2013-07-18 20:33:35','2021-07-18',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,15.00000000,15.00000000,2,1,NULL,1,NULL,NULL,1,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(5,'FA1108-0003',1,NULL,NULL,0,NULL,NULL,7,'2013-08-01 03:34:11','2021-08-01',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,6,'2021-08-01',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(6,'FA1108-0004',1,NULL,NULL,0,NULL,NULL,7,'2013-08-06 20:33:53','2021-08-06',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.98000000,0.00000000,0.00000000,0.00000000,5.00000000,5.98000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,4,'2021-08-06','Cash\nReceived : 6 EUR\nRendu : 0.02 EUR\n\n--------------------------------------',NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(8,'FA1108-0005',1,NULL,NULL,3,NULL,NULL,2,'2013-08-08 02:41:44','2021-08-08',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(9,'FA1108-0007',1,NULL,NULL,3,NULL,NULL,10,'2013-08-08 02:55:14','2021-08-08',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.96000000,0.00000000,0.00000000,0.00000000,10.00000000,11.96000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(10,'AV1212-0001',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 17:45:20','2021-12-08','2021-12-08 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,-0.63000000,0.00000000,0.00000000,0.00000000,-11.00000000,-11.63000000,1,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2021-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(12,'AV1212-0002',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 18:20:14','2021-12-08','2021-12-08 00:00:00',NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,-5.00000000,2,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2021-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(13,'FA1212-0011',1,NULL,NULL,0,NULL,NULL,7,'2014-12-09 20:04:19','2021-12-09','2021-02-12 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,2.74000000,0.00000000,0.00000000,0.00000000,14.00000000,16.74000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-09',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(32,'FA1212-0021',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2021-12-11','2022-03-24 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,90.00000000,0.00000000,0.00000000,0.60000000,520.00000000,610.60000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(33,'FA1212-0023',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2021-12-11','2022-03-03 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,'abandon',NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,3,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(55,'FA1212-0009',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:35:51','2021-12-11','2021-12-12 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-11','This is a comment (private)','This is a comment (public)','generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(148,'FS1301-0001',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:22:48','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,'facture/FS1301-0001/FS1301-0001.pdf',NULL,NULL),(149,'FA1601-0024',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:30:05','2022-01-19','2021-08-29 00:00:00','2020-01-02 20:49:34','2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,'other','test',1.80000000,0.90000000,0.90000000,0.00000000,20.00000000,23.60000000,2,1,NULL,12,12,NULL,NULL,NULL,NULL,0,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,20.00000000,1.80000000,23.60000000,NULL,'facture/FA1601-0024/FA1601-0024.pdf',NULL,NULL),(150,'FA6801-0010',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:10','2022-01-19','2021-10-04 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,12,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,5.00000000,0.63000000,5.63000000,NULL,'facture/FA6801-0010/FA6801-0010.pdf',NULL,NULL),(151,'FS1301-0002',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:58','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(160,'FA1507-0015',1,NULL,NULL,0,NULL,NULL,12,'2015-03-06 16:47:48','2021-07-18','2021-03-06 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.11000000,0.00000000,0.00000000,0.00000000,8.89000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(210,'FA1107-0019',1,NULL,NULL,0,NULL,NULL,10,'2015-03-20 14:30:11','2021-07-10','2021-03-20 00:00:00',NULL,'2021-07-11 17:49:28',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-07-10',NULL,NULL,'generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(211,'FA1303-0020',1,NULL,NULL,0,NULL,NULL,19,'2015-03-22 09:40:10','2021-03-22','2020-03-02 00:00:00',NULL,'2021-04-15 10:22:31',0,0.00000000,NULL,NULL,0,NULL,NULL,17.64000000,0.00000000,0.00000000,0.40000000,340.00000000,358.04000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,3,'2021-03-22',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(213,'AV1303-0003',1,NULL,NULL,2,NULL,NULL,1,'2016-03-03 19:22:03','2021-03-03','2020-03-03 00:00:00',NULL,'2021-04-15 10:22:31',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,-1000.00000000,1,1,NULL,1,NULL,32,NULL,NULL,NULL,0,0,'2021-03-03',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(216,'(PROV216)',1,NULL,NULL,0,NULL,NULL,26,'2017-02-12 23:21:27','2021-02-12',NULL,NULL,'2021-04-15 10:22:31',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2021-02-12',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,0,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(217,'(PROV217)',1,NULL,NULL,0,NULL,NULL,1,'2017-08-31 13:26:17','2021-08-31',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.13000000,0.00000000,0.00000000,0.00000000,21.00000000,22.13000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2021-08-31',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,1,'EUR',1.00000000,21.00000000,1.13000000,22.13000000,NULL,'facture/(PROV217)/(PROV217).pdf',NULL,NULL),(218,'FA1909-0025',1,NULL,NULL,0,NULL,NULL,12,'2019-09-26 17:30:14','2021-09-26','2021-09-26 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.08000000,0.00000000,0.00000000,0.00000000,42.50000000,43.58000000,1,12,NULL,12,NULL,NULL,NULL,NULL,NULL,0,0,'2021-09-26',NULL,NULL,'',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,0,'EUR',1.00000000,42.50000000,1.08000000,43.58000000,NULL,NULL,'takepos','1'),(219,'(PROV-POS1-0)',1,NULL,NULL,0,NULL,NULL,1,'2019-11-28 19:04:03','2021-11-28',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,5.00000000,6.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,'2021-11-28',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,5.00000000,1.00000000,6.00000000,NULL,NULL,'takepos','1'),(220,'(PROV220)',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:03:17','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,100.00000000,100.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,100.00000000,0.00000000,100.00000000,NULL,NULL,NULL,NULL),(221,'AC2001-0001',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:21:05','2022-01-16','2022-01-16 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,123.00000000,123.00000000,0,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,123.00000000,0.00000000,123.00000000,NULL,'facture/AC2001-0001/AC2001-0001.pdf',NULL,NULL),(222,'(PROV222)',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:21:28','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,100.00000000,100.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,100.00000000,0.00000000,100.00000000,NULL,NULL,NULL,NULL),(223,'(PROV223)',1,NULL,NULL,0,NULL,NULL,19,'2020-01-16 02:32:04','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,0,'2021-02-15',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL,NULL,NULL,NULL),(224,'AC2001-0002',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:33:19','2022-01-16','2022-01-16 00:00:00','2020-01-16 02:36:48','2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,20.50000000,20.50000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,20.50000000,0.00000000,20.50000000,NULL,'facture/AC2001-0002/AC2001-0002.pdf',NULL,NULL),(225,'(PROV225)',1,NULL,NULL,0,NULL,NULL,19,'2020-01-16 02:37:48','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,389.50000000,389.50000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,0,'2021-02-15',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,389.50000000,0.00000000,389.50000000,NULL,'facture/(PROV225)/(PROV225).pdf',NULL,NULL),(226,'(PROV226)',1,NULL,NULL,3,NULL,NULL,11,'2020-01-19 14:20:54','2022-01-19',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,12.50000000,0.00000000,0.00000000,0.00000000,120.00000000,132.50000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,120.00000000,12.50000000,132.50000000,NULL,'facture/(PROV226)/(PROV226).pdf',NULL,NULL),(227,'AC2001-0003',1,NULL,NULL,3,NULL,NULL,1,'2020-01-19 14:22:54','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,39.20000000,0.00000000,0.00000000,0.00000000,200.00000000,239.20000000,0,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,'facture/AC2001-0003/AC2001-0003.pdf',NULL,NULL),(228,'AC2001-0004',1,NULL,NULL,3,NULL,NULL,1,'2020-01-19 14:24:49','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.94000000,0.00000000,0.00000000,0.00000000,48.60000000,50.54000000,1,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,48.60000000,1.94000000,50.54000000,NULL,'facture/AC2001-0004/AC2001-0004.pdf',NULL,NULL),(229,'FA1707-0026',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:17','2021-07-18','2023-01-21 00:00:00','2020-01-21 10:23:17','2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1707-0026/FA1707-0026.pdf',NULL,NULL),(230,'FA1807-0027',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:28','2021-07-18','2022-01-21 00:00:00','2020-01-21 10:23:28','2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1807-0027/FA1807-0027.pdf',NULL,NULL),(231,'FA1907-0028',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:49','2021-07-18','2022-01-21 00:00:00','2020-01-21 10:23:49','2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1907-0028/FA1907-0028.pdf',NULL,NULL); +INSERT INTO `llx_facture` VALUES (2,'FA1007-0002',1,NULL,NULL,0,NULL,NULL,2,'2012-07-10 18:20:13','2022-07-10',NULL,NULL,'2022-12-11 21:23:22',1,10.00000000,NULL,NULL,0,NULL,NULL,NULL,0.10000000,0.00000000,0.00000000,0.00000000,46.00000000,46.10000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-07-10',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(3,'FA1107-0006',1,NULL,NULL,0,NULL,NULL,10,'2013-07-18 20:33:35','2022-07-18',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,15.00000000,15.00000000,2,1,NULL,1,NULL,NULL,1,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(5,'FA1108-0003',1,NULL,NULL,0,NULL,NULL,7,'2013-08-01 03:34:11','2022-08-01',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,6,'2022-08-01',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(6,'FA1108-0004',1,NULL,NULL,0,NULL,NULL,7,'2013-08-06 20:33:53','2022-08-06',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.98000000,0.00000000,0.00000000,0.00000000,5.00000000,5.98000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,4,'2022-08-06','Cash\nReceived : 6 EUR\nRendu : 0.02 EUR\n\n--------------------------------------',NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(8,'FA1108-0005',1,NULL,NULL,3,NULL,NULL,2,'2013-08-08 02:41:44','2022-08-08',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(9,'FA1108-0007',1,NULL,NULL,3,NULL,NULL,10,'2013-08-08 02:55:14','2022-08-08',NULL,NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.96000000,0.00000000,0.00000000,0.00000000,10.00000000,11.96000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(10,'AV1212-0001',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 17:45:20','2022-12-08','2022-12-08 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,-0.63000000,0.00000000,0.00000000,0.00000000,-11.00000000,-11.63000000,1,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2022-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(12,'AV1212-0002',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 18:20:14','2022-12-08','2022-12-08 00:00:00',NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,-5.00000000,2,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2022-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(13,'FA1212-0011',1,NULL,NULL,0,NULL,NULL,7,'2014-12-09 20:04:19','2022-12-09','2022-02-12 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,2.74000000,0.00000000,0.00000000,0.00000000,14.00000000,16.74000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-09',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(32,'FA1212-0021',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2022-12-11','2022-03-24 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,90.00000000,0.00000000,0.00000000,0.60000000,520.00000000,610.60000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(33,'FA1212-0023',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2022-12-11','2022-03-03 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,'abandon',NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,3,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(55,'FA1212-0009',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:35:51','2022-12-11','2021-12-12 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-11','This is a comment (private)','This is a comment (public)','generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(148,'FS1301-0001',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:22:48','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,'facture/FS1301-0001/FS1301-0001.pdf',NULL,NULL),(149,'FA1601-0024',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:30:05','2022-01-19','2021-08-29 00:00:00','2020-01-02 20:49:34','2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,'other',NULL,'test',1.80000000,0.90000000,0.90000000,0.00000000,20.00000000,23.60000000,2,1,NULL,12,12,NULL,NULL,NULL,NULL,0,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,20.00000000,1.80000000,23.60000000,NULL,'facture/FA1601-0024/FA1601-0024.pdf',NULL,NULL),(150,'FA6801-0010',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:10','2022-01-19','2021-10-04 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,12,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,5.00000000,0.63000000,5.63000000,NULL,'facture/FA6801-0010/FA6801-0010.pdf',NULL,NULL),(151,'FS1301-0002',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:58','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(160,'FA1507-0015',1,NULL,NULL,0,NULL,NULL,12,'2015-03-06 16:47:48','2022-07-18','2022-03-06 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.11000000,0.00000000,0.00000000,0.00000000,8.89000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(210,'FA1107-0019',1,NULL,NULL,0,NULL,NULL,10,'2015-03-20 14:30:11','2022-07-10','2022-03-20 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-07-10',NULL,NULL,'generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(211,'FA1303-0020',1,NULL,NULL,0,NULL,NULL,19,'2015-03-22 09:40:10','2022-03-22','2021-03-02 00:00:00',NULL,'2022-07-04 01:11:35',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,17.64000000,0.00000000,0.00000000,0.40000000,340.00000000,358.04000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,3,'2022-03-22',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(213,'AV1303-0003',1,NULL,NULL,2,NULL,NULL,1,'2016-03-03 19:22:03','2022-03-03','2021-03-03 00:00:00',NULL,'2022-07-04 01:11:35',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,-1000.00000000,1,1,NULL,1,NULL,32,NULL,NULL,NULL,0,0,'2022-03-03',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(216,'(PROV216)',1,NULL,NULL,0,NULL,NULL,26,'2017-02-12 23:21:27','2022-02-12',NULL,NULL,'2022-07-04 01:11:35',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-02-12',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,0,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(217,'(PROV217)',1,NULL,NULL,0,NULL,NULL,1,'2017-08-31 13:26:17','2022-08-31',NULL,NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.13000000,0.00000000,0.00000000,0.00000000,21.00000000,22.13000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-08-31',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,1,'EUR',1.00000000,21.00000000,1.13000000,22.13000000,NULL,'facture/(PROV217)/(PROV217).pdf',NULL,NULL),(218,'FA1909-0025',1,NULL,NULL,0,NULL,NULL,12,'2019-09-26 17:30:14','2022-09-26','2022-09-26 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.08000000,0.00000000,0.00000000,0.00000000,42.50000000,43.58000000,1,12,NULL,12,NULL,NULL,NULL,NULL,NULL,0,0,'2022-09-26',NULL,NULL,'',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,0,'EUR',1.00000000,42.50000000,1.08000000,43.58000000,NULL,NULL,'takepos','1'),(219,'(PROV-POS1-0)',1,NULL,NULL,0,NULL,NULL,1,'2019-11-28 19:04:03','2022-11-28',NULL,NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,5.00000000,6.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,'2022-11-28',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,5.00000000,1.00000000,6.00000000,NULL,NULL,'takepos','1'),(220,'(PROV220)',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:03:17','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,100.00000000,100.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,100.00000000,0.00000000,100.00000000,NULL,NULL,NULL,NULL),(221,'AC2001-0001',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:21:05','2022-01-16','2022-01-16 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,123.00000000,123.00000000,0,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,123.00000000,0.00000000,123.00000000,NULL,'facture/AC2001-0001/AC2001-0001.pdf',NULL,NULL),(222,'(PROV222)',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:21:28','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,100.00000000,100.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,100.00000000,0.00000000,100.00000000,NULL,NULL,NULL,NULL),(223,'(PROV223)',1,NULL,NULL,0,NULL,NULL,19,'2020-01-16 02:32:04','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,0,'2021-02-15',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL,NULL,NULL,NULL),(224,'AC2001-0002',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:33:19','2022-01-16','2022-01-16 00:00:00','2020-01-16 02:36:48','2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,20.50000000,20.50000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,20.50000000,0.00000000,20.50000000,NULL,'facture/AC2001-0002/AC2001-0002.pdf',NULL,NULL),(225,'(PROV225)',1,NULL,NULL,0,NULL,NULL,19,'2020-01-16 02:37:48','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,389.50000000,389.50000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,0,'2021-02-15',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,389.50000000,0.00000000,389.50000000,NULL,'facture/(PROV225)/(PROV225).pdf',NULL,NULL),(226,'(PROV226)',1,NULL,NULL,3,NULL,NULL,11,'2020-01-19 14:20:54','2022-01-19',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,12.50000000,0.00000000,0.00000000,0.00000000,120.00000000,132.50000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,120.00000000,12.50000000,132.50000000,NULL,'facture/(PROV226)/(PROV226).pdf',NULL,NULL),(227,'AC2001-0003',1,NULL,NULL,3,NULL,NULL,1,'2020-01-19 14:22:54','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,39.20000000,0.00000000,0.00000000,0.00000000,200.00000000,239.20000000,0,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,'facture/AC2001-0003/AC2001-0003.pdf',NULL,NULL),(228,'AC2001-0004',1,NULL,NULL,3,NULL,NULL,1,'2020-01-19 14:24:49','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.94000000,0.00000000,0.00000000,0.00000000,48.60000000,50.54000000,1,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,48.60000000,1.94000000,50.54000000,NULL,'facture/AC2001-0004/AC2001-0004.pdf',NULL,NULL),(229,'FA1707-0026',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:17','2022-07-18','2023-01-21 00:00:00','2020-01-21 10:23:17','2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1707-0026/FA1707-0026.pdf',NULL,NULL),(230,'FA1807-0027',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:28','2022-07-18','2022-01-21 00:00:00','2020-01-21 10:23:28','2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1807-0027/FA1807-0027.pdf',NULL,NULL),(231,'FA1907-0028',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:49','2022-07-18','2022-01-21 00:00:00','2020-01-21 10:23:49','2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1907-0028/FA1907-0028.pdf',NULL,NULL); /*!40000 ALTER TABLE `llx_facture` ENABLE KEYS */; UNLOCK TABLES; @@ -6572,10 +6928,10 @@ CREATE TABLE `llx_facture_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6596,21 +6952,22 @@ DROP TABLE IF EXISTS `llx_facture_fourn`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_facture_fourn` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `ref_supplier` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(255) NOT NULL, + `ref_supplier` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `type` smallint(6) NOT NULL DEFAULT 0, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `datef` date DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, `paye` smallint(6) NOT NULL DEFAULT 0, `amount` double(24,8) NOT NULL DEFAULT 0.00000000, `remise` double(24,8) DEFAULT 0.00000000, - `close_code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, - `close_note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `close_code` varchar(16) DEFAULT NULL, + `close_missing_amount` double(24,8) DEFAULT NULL, + `close_note` varchar(128) DEFAULT NULL, `tva` double(24,8) DEFAULT 0.00000000, `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, @@ -6628,24 +6985,25 @@ CREATE TABLE `llx_facture_fourn` ( `fk_cond_reglement` int(11) DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, `date_lim_reglement` date DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_transport_mode` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `date_pointoftax` date DEFAULT NULL, `date_valid` date DEFAULT NULL, `date_closing` datetime DEFAULT NULL, + `fk_fac_rec_source` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_facture_fourn_ref` (`ref`,`entity`), UNIQUE KEY `uk_facture_fourn_ref_supplier` (`ref_supplier`,`fk_soc`,`entity`), @@ -6658,7 +7016,7 @@ CREATE TABLE `llx_facture_fourn` ( CONSTRAINT `fk_facture_fourn_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_facture_fourn_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_facture_fourn_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6667,7 +7025,7 @@ CREATE TABLE `llx_facture_fourn` ( LOCK TABLES `llx_facture_fourn` WRITE; /*!40000 ALTER TABLE `llx_facture_fourn` DISABLE KEYS */; -INSERT INTO `llx_facture_fourn` VALUES (16,'SI1601-0001','FR70813',1,NULL,0,1,'2014-12-19 15:24:11','2003-04-11','2017-02-06 04:08:22','OVH FR70813',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,829.00000000,162.48000000,991.48000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-04-11','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(17,'SI1601-0002','FR81385',1,NULL,0,1,'2015-02-13 17:19:35','2003-06-04','2019-10-04 08:31:30','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','','canelle',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'2019-10-04',NULL),(18,'SI1601-0003','FR81385',1,NULL,0,2,'2015-02-13 17:20:25','2003-06-04','2017-02-06 04:08:35','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(19,'SI1601-0004','FR813852',1,NULL,0,2,'2015-03-16 17:59:02','2015-03-16','2017-02-06 04:08:38','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(20,'SI1702-0001','INV-AE56ER08',1,NULL,0,13,'2017-02-01 19:00:31','2017-02-01','2017-02-01 15:05:28','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,200.00000000,39.20000000,239.20000000,1,12,NULL,12,NULL,NULL,5,NULL,1,0,'2017-02-01','The customer has called us the 24th april. He agree us to not pay the remain of invoice due to default.
\r\nLet\'s see with our book keeper, if we must cancel invoice or ask the supplier a credit note...',NULL,'canelle',NULL,NULL,0,'',NULL,0,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,NULL,NULL,NULL),(21,'SI1911-0005','NL-123',1,NULL,0,10,'2019-11-28 15:54:30','2019-11-28','2019-11-28 11:54:46','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,450.00000000,0.00000000,450.00000000,1,12,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2019-11-28','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,450.00000000,0.00000000,450.00000000,NULL,NULL,'2019-11-28',NULL),(22,'SI2001-0006','INV20200101',1,NULL,0,17,'2020-01-01 17:48:01','2020-01-01','2020-01-16 17:05:43','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,357.00000000,43.75000000,400.75000000,1,12,NULL,12,NULL,NULL,NULL,1,1,2,'2020-01-01','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,357.00000000,43.75000000,400.75000000,NULL,NULL,'2020-01-16',NULL),(27,'SA2001-0001','CN01',1,NULL,2,17,'2020-01-01 20:21:51','2020-01-01','2022-02-07 13:38:10','',1,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,-350.00000000,-43.75000000,-393.75000000,2,12,12,12,NULL,22,NULL,NULL,1,NULL,NULL,'','ddd',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,-350.00000000,-43.75000000,-393.75000000,NULL,NULL,'2020-01-01',NULL),(28,'SI2001-0007','INV02',1,NULL,0,17,'2020-01-01 20:22:48','2020-01-01','2020-01-01 18:06:02','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,79.17000000,9.89000000,89.06000000,1,12,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2020-01-01','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,79.17000000,9.89000000,89.06000000,NULL,NULL,'2020-01-01',NULL),(30,'SA2001-0002','555',1,NULL,2,1,'2020-01-01 20:51:32','2020-01-01','2020-01-01 17:15:57','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,-26.00000000,-5.10000000,-31.10000000,1,12,NULL,12,NULL,17,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'2020-01-01',NULL); +INSERT INTO `llx_facture_fourn` VALUES (16,'SI1601-0001','FR70813',1,NULL,0,1,'2014-12-19 15:24:11','2003-04-11','2017-02-06 04:08:22','OVH FR70813',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,829.00000000,162.48000000,991.48000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-04-11','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL),(17,'SI1601-0002','FR81385',1,NULL,0,1,'2015-02-13 17:19:35','2003-06-04','2019-10-04 08:31:30','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','','canelle',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'2019-10-04',NULL,NULL),(18,'SI1601-0003','FR81385',1,NULL,0,2,'2015-02-13 17:20:25','2003-06-04','2017-02-06 04:08:35','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL),(19,'SI1601-0004','FR813852',1,NULL,0,2,'2015-03-16 17:59:02','2015-03-16','2017-02-06 04:08:38','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL),(20,'SI1702-0001','INV-AE56ER08',1,NULL,0,13,'2017-02-01 19:00:31','2017-02-01','2017-02-01 15:05:28','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,200.00000000,39.20000000,239.20000000,1,12,NULL,12,NULL,NULL,5,NULL,1,0,'2017-02-01','The customer has called us the 24th april. He agree us to not pay the remain of invoice due to default.
\r\nLet\'s see with our book keeper, if we must cancel invoice or ask the supplier a credit note...',NULL,'canelle',NULL,NULL,0,'',NULL,0,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,NULL,NULL,NULL,NULL),(21,'SI1911-0005','NL-123',1,NULL,0,10,'2019-11-28 15:54:30','2019-11-28','2019-11-28 11:54:46','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,450.00000000,0.00000000,450.00000000,1,12,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2019-11-28','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,450.00000000,0.00000000,450.00000000,NULL,NULL,'2019-11-28',NULL,NULL),(22,'SI2001-0006','INV20200101',1,NULL,0,17,'2020-01-01 17:48:01','2020-01-01','2020-01-16 17:05:43','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,357.00000000,43.75000000,400.75000000,1,12,NULL,12,NULL,NULL,NULL,1,1,2,'2020-01-01','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,357.00000000,43.75000000,400.75000000,NULL,NULL,'2020-01-16',NULL,NULL),(27,'SA2001-0001','CN01',1,NULL,2,17,'2020-01-01 20:21:51','2020-01-01','2022-02-07 13:38:10','',1,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,-350.00000000,-43.75000000,-393.75000000,2,12,12,12,NULL,22,NULL,NULL,1,NULL,NULL,'','ddd',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,-350.00000000,-43.75000000,-393.75000000,NULL,NULL,'2020-01-01',NULL,NULL),(28,'SI2001-0007','INV02',1,NULL,0,17,'2020-01-01 20:22:48','2020-01-01','2020-01-01 18:06:02','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,79.17000000,9.89000000,89.06000000,1,12,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2020-01-01','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,79.17000000,9.89000000,89.06000000,NULL,NULL,'2020-01-01',NULL,NULL),(30,'SA2001-0002','555',1,NULL,2,1,'2020-01-01 20:51:32','2020-01-01','2020-01-01 17:15:57','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,-26.00000000,-5.10000000,-31.10000000,1,12,NULL,12,NULL,17,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'2020-01-01',NULL,NULL); /*!40000 ALTER TABLE `llx_facture_fourn` ENABLE KEYS */; UNLOCK TABLES; @@ -6683,20 +7041,20 @@ CREATE TABLE `llx_facture_fourn_det` ( `fk_facture_fourn` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `pu_ht` double(24,8) DEFAULT NULL, `pu_ttc` double(24,8) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `fk_remise_except` int(11) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `total_ht` double(24,8) DEFAULT NULL, `tva` double(24,8) DEFAULT NULL, `total_localtax1` double(24,8) DEFAULT 0.00000000, @@ -6706,13 +7064,13 @@ CREATE TABLE `llx_facture_fourn_det` ( `date_start` datetime DEFAULT NULL, `date_end` datetime DEFAULT NULL, `info_bits` int(11) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_code_ventilation` int(11) NOT NULL DEFAULT 0, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -6725,7 +7083,7 @@ CREATE TABLE `llx_facture_fourn_det` ( KEY `idx_facture_fourn_det_fk_product` (`fk_product`), CONSTRAINT `fk_facture_fourn_det_fk_facture` FOREIGN KEY (`fk_facture_fourn`) REFERENCES `llx_facture_fourn` (`rowid`), CONSTRAINT `fk_facture_fourn_det_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6749,10 +7107,10 @@ CREATE TABLE `llx_facture_fourn_det_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_fourn_det_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6764,6 +7122,95 @@ LOCK TABLES `llx_facture_fourn_det_extrafields` WRITE; /*!40000 ALTER TABLE `llx_facture_fourn_det_extrafields` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_facture_fourn_det_rec` +-- + +DROP TABLE IF EXISTS `llx_facture_fourn_det_rec`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_facture_fourn_det_rec` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_facture_fourn` int(11) NOT NULL, + `fk_parent_line` int(11) DEFAULT NULL, + `fk_product` int(11) DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `pu_ht` double(24,8) DEFAULT NULL, + `pu_ttc` double(24,8) DEFAULT NULL, + `qty` double DEFAULT NULL, + `remise_percent` double DEFAULT 0, + `fk_remise_except` int(11) DEFAULT NULL, + `vat_src_code` varchar(10) DEFAULT '', + `tva_tx` double(7,4) DEFAULT NULL, + `localtax1_tx` double(7,4) DEFAULT 0.0000, + `localtax1_type` varchar(10) DEFAULT NULL, + `localtax2_tx` double(7,4) DEFAULT 0.0000, + `localtax2_type` varchar(10) DEFAULT NULL, + `total_ht` double(24,8) DEFAULT NULL, + `total_tva` double(24,8) DEFAULT NULL, + `total_localtax1` double(24,8) DEFAULT 0.00000000, + `total_localtax2` double(24,8) DEFAULT 0.00000000, + `total_ttc` double(24,8) DEFAULT NULL, + `product_type` int(11) DEFAULT 0, + `date_start` int(11) DEFAULT NULL, + `date_end` int(11) DEFAULT NULL, + `info_bits` int(11) DEFAULT 0, + `special_code` int(10) unsigned DEFAULT 0, + `rang` int(11) DEFAULT 0, + `fk_unit` int(11) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `fk_user_author` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + `fk_multicurrency` int(11) DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, + `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, + `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, + `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, + `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, + PRIMARY KEY (`rowid`), + KEY `fk_facture_fourn_det_rec_fk_unit` (`fk_unit`), + CONSTRAINT `fk_facture_fourn_det_rec_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_facture_fourn_det_rec` +-- + +LOCK TABLES `llx_facture_fourn_det_rec` WRITE; +/*!40000 ALTER TABLE `llx_facture_fourn_det_rec` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_facture_fourn_det_rec` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_facture_fourn_det_rec_extrafields` +-- + +DROP TABLE IF EXISTS `llx_facture_fourn_det_rec_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_facture_fourn_det_rec_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `llx_facture_fourn_det_rec_extrafields` (`fk_object`), + KEY `idx_facture_fourn_det_rec_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_facture_fourn_det_rec_extrafields` +-- + +LOCK TABLES `llx_facture_fourn_det_rec_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_facture_fourn_det_rec_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_facture_fourn_det_rec_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_facture_fourn_extrafields` -- @@ -6775,10 +7222,10 @@ CREATE TABLE `llx_facture_fourn_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_fourn_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6790,6 +7237,104 @@ LOCK TABLES `llx_facture_fourn_extrafields` WRITE; /*!40000 ALTER TABLE `llx_facture_fourn_extrafields` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_facture_fourn_rec` +-- + +DROP TABLE IF EXISTS `llx_facture_fourn_rec`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_facture_fourn_rec` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `titre` varchar(200) NOT NULL, + `ref_supplier` varchar(180) NOT NULL, + `entity` int(11) NOT NULL DEFAULT 1, + `fk_soc` int(11) NOT NULL, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `suspended` int(11) DEFAULT 0, + `libelle` varchar(255) DEFAULT NULL, + `amount` double(24,8) NOT NULL DEFAULT 0.00000000, + `remise` double DEFAULT 0, + `vat_src_code` varchar(10) DEFAULT '', + `localtax1` double(24,8) DEFAULT 0.00000000, + `localtax2` double(24,8) DEFAULT 0.00000000, + `total_ht` double(24,8) DEFAULT 0.00000000, + `total_tva` double(24,8) DEFAULT 0.00000000, + `total_ttc` double(24,8) DEFAULT 0.00000000, + `fk_user_author` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + `fk_projet` int(11) DEFAULT NULL, + `fk_account` int(11) DEFAULT NULL, + `fk_cond_reglement` int(11) DEFAULT NULL, + `fk_mode_reglement` int(11) DEFAULT NULL, + `date_lim_reglement` date DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `modelpdf` varchar(255) DEFAULT NULL, + `fk_multicurrency` int(11) DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, + `multicurrency_tx` double(24,8) DEFAULT 1.00000000, + `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, + `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, + `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, + `usenewprice` int(11) DEFAULT 0, + `frequency` int(11) DEFAULT NULL, + `unit_frequency` varchar(2) DEFAULT 'm', + `date_when` datetime DEFAULT NULL, + `date_last_gen` datetime DEFAULT NULL, + `nb_gen_done` int(11) DEFAULT NULL, + `nb_gen_max` int(11) DEFAULT NULL, + `auto_validate` int(11) DEFAULT 0, + `generate_pdf` int(11) DEFAULT 1, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_facture_fourn_rec_ref` (`titre`,`entity`), + UNIQUE KEY `uk_facture_fourn_rec_ref_supplier` (`ref_supplier`,`fk_soc`,`entity`), + KEY `idx_facture_fourn_rec_fk_soc` (`fk_soc`), + KEY `idx_facture_fourn_rec_fk_user_author` (`fk_user_author`), + KEY `idx_facture_fourn_rec_fk_projet` (`fk_projet`), + KEY `idx_facture_fourn_rec_date_lim_reglement` (`date_lim_reglement`), + CONSTRAINT `fk_facture_fourn_rec_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), + CONSTRAINT `fk_facture_fourn_rec_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), + CONSTRAINT `fk_facture_fourn_rec_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_facture_fourn_rec` +-- + +LOCK TABLES `llx_facture_fourn_rec` WRITE; +/*!40000 ALTER TABLE `llx_facture_fourn_rec` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_facture_fourn_rec` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_facture_fourn_rec_extrafields` +-- + +DROP TABLE IF EXISTS `llx_facture_fourn_rec_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_facture_fourn_rec_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_facture_fourn_rec_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_facture_fourn_rec_extrafields` +-- + +LOCK TABLES `llx_facture_fourn_rec_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_facture_fourn_rec_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_facture_fourn_rec_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_facture_rec` -- @@ -6799,7 +7344,7 @@ DROP TABLE IF EXISTS `llx_facture_rec`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_facture_rec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `titre` varchar(200) COLLATE utf8_unicode_ci NOT NULL, + `titre` varchar(200) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, @@ -6817,11 +7362,11 @@ CREATE TABLE `llx_facture_rec` ( `fk_cond_reglement` int(11) NOT NULL DEFAULT 1, `fk_mode_reglement` int(11) DEFAULT 0, `date_lim_reglement` date DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `modelpdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `last_gen` varchar(7) COLLATE utf8_unicode_ci DEFAULT NULL, - `unit_frequency` varchar(2) COLLATE utf8_unicode_ci DEFAULT 'd', + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `modelpdf` varchar(255) DEFAULT NULL, + `last_gen` varchar(7) DEFAULT NULL, + `unit_frequency` varchar(2) DEFAULT 'd', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -6833,14 +7378,14 @@ CREATE TABLE `llx_facture_rec` ( `generate_pdf` int(11) DEFAULT 1, `fk_account` int(11) DEFAULT 0, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `fk_user_modif` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `suspended` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_facture_rec_uk_titre` (`titre`,`entity`), @@ -6850,7 +7395,7 @@ CREATE TABLE `llx_facture_rec` ( CONSTRAINT `fk_facture_rec_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), CONSTRAINT `fk_facture_rec_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_facture_rec_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6874,10 +7419,10 @@ CREATE TABLE `llx_facture_rec_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_rec_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6901,14 +7446,14 @@ CREATE TABLE `llx_facturedet` ( `fk_facture` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -6930,19 +7475,19 @@ CREATE TABLE `llx_facturedet` ( `special_code` int(10) unsigned DEFAULT 0, `rang` int(11) DEFAULT 0, `fk_contract_line` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `situation_percent` double DEFAULT 100, `fk_prev_id` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_fk_remise_except` (`fk_remise_except`,`fk_facture`), KEY `idx_facturedet_fk_facture` (`fk_facture`), @@ -6951,7 +7496,7 @@ CREATE TABLE `llx_facturedet` ( KEY `idx_facturedet_fk_code_ventilation` (`fk_code_ventilation`), CONSTRAINT `fk_facturedet_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`), CONSTRAINT `fk_facturedet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=1093 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1093 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6975,10 +7520,10 @@ CREATE TABLE `llx_facturedet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facturedet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7003,14 +7548,14 @@ CREATE TABLE `llx_facturedet_rec` ( `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, `product_type` int(11) DEFAULT 0, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -7026,9 +7571,9 @@ CREATE TABLE `llx_facturedet_rec` ( `rang` int(11) DEFAULT 0, `fk_contract_line` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -7042,7 +7587,7 @@ CREATE TABLE `llx_facturedet_rec` ( PRIMARY KEY (`rowid`), KEY `fk_facturedet_rec_fk_unit` (`fk_unit`), CONSTRAINT `fk_facturedet_rec_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7066,10 +7611,10 @@ CREATE TABLE `llx_facturedet_rec_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facturedet_rec_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7093,7 +7638,7 @@ CREATE TABLE `llx_fichinter` ( `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT 0, `fk_contrat` int(11) DEFAULT 0, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -7107,19 +7652,20 @@ CREATE TABLE `llx_fichinter` ( `dateo` date DEFAULT NULL, `datee` date DEFAULT NULL, `datet` date DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_fichinter_ref` (`ref`,`entity`), KEY `idx_fichinter_fk_soc` (`fk_soc`), CONSTRAINT `fk_fichinter_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7128,7 +7674,7 @@ CREATE TABLE `llx_fichinter` ( LOCK TABLES `llx_fichinter` WRITE; /*!40000 ALTER TABLE `llx_fichinter` DISABLE KEYS */; -INSERT INTO `llx_fichinter` VALUES (1,2,1,0,'FI1007-0001',1,'2018-01-22 17:39:37','2012-07-09 01:42:41','2018-01-22 18:39:37',NULL,1,NULL,12,1,10800,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL),(2,1,NULL,0,'FI1007-0002',1,'2014-12-08 13:11:07','2012-07-11 16:07:51',NULL,NULL,1,NULL,NULL,0,3600,NULL,NULL,NULL,'ferfrefeferf',NULL,NULL,'soleil',NULL,NULL,NULL,NULL),(3,2,NULL,0,'FI1511-0003',1,'2018-07-30 15:51:16','2017-11-18 15:57:34','2018-01-22 18:38:46',NULL,2,NULL,12,1,36000,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL); +INSERT INTO `llx_fichinter` VALUES (1,2,1,0,'FI1007-0001',1,'2018-01-22 17:39:37','2012-07-09 01:42:41','2018-01-22 18:39:37',NULL,1,NULL,12,1,10800,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL,NULL),(2,1,NULL,0,'FI1007-0002',1,'2014-12-08 13:11:07','2012-07-11 16:07:51',NULL,NULL,1,NULL,NULL,0,3600,NULL,NULL,NULL,'ferfrefeferf',NULL,NULL,'soleil',NULL,NULL,NULL,NULL,NULL),(3,2,NULL,0,'FI1511-0003',1,'2018-07-30 15:51:16','2017-11-18 15:57:34','2018-01-22 18:38:46',NULL,2,NULL,12,1,36000,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_fichinter` ENABLE KEYS */; UNLOCK TABLES; @@ -7143,10 +7689,10 @@ CREATE TABLE `llx_fichinter_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ficheinter_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7167,7 +7713,7 @@ DROP TABLE IF EXISTS `llx_fichinter_rec`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_fichinter_rec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `titre` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `titre` varchar(50) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -7175,12 +7721,12 @@ CREATE TABLE `llx_fichinter_rec` ( `fk_user_author` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `duree` double DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `modelpdf` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `modelpdf` varchar(50) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `frequency` int(11) DEFAULT NULL, - `unit_frequency` varchar(2) COLLATE utf8_unicode_ci DEFAULT 'm', + `unit_frequency` varchar(2) DEFAULT 'm', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -7193,7 +7739,7 @@ CREATE TABLE `llx_fichinter_rec` ( KEY `idx_fichinter_rec_fk_projet` (`fk_projet`), CONSTRAINT `fk_fichinter_rec_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), CONSTRAINT `fk_fichinter_rec_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7217,13 +7763,13 @@ CREATE TABLE `llx_fichinterdet` ( `fk_fichinter` int(11) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `date` datetime DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `duree` int(11) DEFAULT NULL, `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), KEY `idx_fichinterdet_fk_fichinter` (`fk_fichinter`), CONSTRAINT `fk_fichinterdet_fk_fichinter` FOREIGN KEY (`fk_fichinter`) REFERENCES `llx_fichinter` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7247,10 +7793,10 @@ CREATE TABLE `llx_fichinterdet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ficheinterdet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7273,22 +7819,21 @@ CREATE TABLE `llx_fichinterdet_rec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_fichinter` int(11) NOT NULL, `date` datetime DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `duree` int(11) DEFAULT NULL, `rang` int(11) DEFAULT 0, `total_ht` double(24,8) DEFAULT NULL, `subprice` double(24,8) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(1) DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(1) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, - `remise` double DEFAULT 0, `fk_remise_except` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT NULL, `total_tva` double(24,8) DEFAULT NULL, @@ -7302,12 +7847,11 @@ CREATE TABLE `llx_fichinterdet_rec` ( `buy_price_ht` double(24,8) DEFAULT 0.00000000, `fk_product_fournisseur_price` int(11) DEFAULT NULL, `fk_code_ventilation` int(11) NOT NULL DEFAULT 0, - `fk_export_commpta` int(11) NOT NULL DEFAULT 0, `special_code` int(10) unsigned DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7330,7 +7874,7 @@ CREATE TABLE `llx_holiday` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) NOT NULL, `date_create` datetime NOT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(255) NOT NULL, `date_debut` date NOT NULL, `date_fin` date NOT NULL, `halfday` int(11) DEFAULT 0, @@ -7342,21 +7886,22 @@ CREATE TABLE `llx_holiday` ( `fk_user_refuse` int(11) DEFAULT NULL, `date_cancel` datetime DEFAULT NULL, `fk_user_cancel` int(11) DEFAULT NULL, - `detail_refuse` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `detail_refuse` varchar(250) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note` text DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, `fk_type` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `date_approve` datetime DEFAULT NULL, + `date_approval` datetime DEFAULT NULL, `fk_user_approve` int(11) DEFAULT NULL, + `nb_open_day` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_holiday_fk_user` (`fk_user`), KEY `idx_holiday_date_debut` (`date_debut`), @@ -7365,7 +7910,7 @@ CREATE TABLE `llx_holiday` ( KEY `idx_holiday_date_create` (`date_create`), KEY `idx_holiday_fk_validator` (`fk_validator`), KEY `idx_holiday_entity` (`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7374,7 +7919,7 @@ CREATE TABLE `llx_holiday` ( LOCK TABLES `llx_holiday` WRITE; /*!40000 ALTER TABLE `llx_holiday` DISABLE KEYS */; -INSERT INTO `llx_holiday` VALUES (1,1,'2021-02-17 19:06:35','gdf','2021-02-10','2021-02-11',0,3,1,'2021-02-17 19:06:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2021-04-15 10:22:31',1,'1',NULL,NULL,NULL,NULL,NULL,NULL),(2,12,'2022-01-22 19:10:01','','2021-12-28','2022-01-03',0,1,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2022-02-07 13:37:54',1,'2',NULL,NULL,NULL,NULL,NULL,NULL),(3,13,'2022-01-22 19:10:29','','2022-01-11','2022-01-13',0,2,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2022-02-07 13:37:54',1,'3',NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO `llx_holiday` VALUES (1,1,'2022-02-17 19:06:35','gdf','2022-02-10','2022-02-11',0,3,1,'2022-02-17 19:06:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2022-12-11 21:23:35',1,'1',NULL,NULL,NULL,NULL,'2022-02-17 19:06:57',1,NULL),(2,12,'2022-01-22 19:10:01','','2021-12-28','2022-01-03',0,1,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2022-02-07 13:37:54',1,'2',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,13,'2022-01-22 19:10:29','','2022-01-11','2022-01-13',0,2,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2022-02-07 13:37:54',1,'3',NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_holiday` ENABLE KEYS */; UNLOCK TABLES; @@ -7387,12 +7932,12 @@ DROP TABLE IF EXISTS `llx_holiday_config`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_holiday_config` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `value` text COLLATE utf8_unicode_ci DEFAULT NULL, + `name` varchar(128) DEFAULT NULL, + `value` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `name` (`name`), UNIQUE KEY `idx_holiday_config` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7401,7 +7946,7 @@ CREATE TABLE `llx_holiday_config` ( LOCK TABLES `llx_holiday_config` WRITE; /*!40000 ALTER TABLE `llx_holiday_config` DISABLE KEYS */; -INSERT INTO `llx_holiday_config` VALUES (1,'userGroup','1'),(2,'lastUpdate','20220207142959'),(3,'nbUser',''),(4,'delayForRequest','31'),(5,'AlertValidatorDelay','0'),(6,'AlertValidatorSolde','0'),(7,'nbHolidayDeducted','1'),(8,'nbHolidayEveryMonth','2.08334'); +INSERT INTO `llx_holiday_config` VALUES (1,'userGroup','1'),(2,'lastUpdate','20221211212543'),(3,'nbUser',''),(4,'delayForRequest','31'),(5,'AlertValidatorDelay','0'),(6,'AlertValidatorSolde','0'),(7,'nbHolidayDeducted','1'),(8,'nbHolidayEveryMonth','2.08334'); /*!40000 ALTER TABLE `llx_holiday_config` ENABLE KEYS */; UNLOCK TABLES; @@ -7416,10 +7961,10 @@ CREATE TABLE `llx_holiday_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_holiday_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7443,12 +7988,12 @@ CREATE TABLE `llx_holiday_logs` ( `date_action` datetime NOT NULL, `fk_user_action` int(11) NOT NULL, `fk_user_update` int(11) NOT NULL, - `type_action` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `prev_solde` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `new_solde` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `type_action` varchar(255) NOT NULL, + `prev_solde` varchar(255) NOT NULL, + `new_solde` varchar(255) NOT NULL, `fk_type` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7473,7 +8018,7 @@ CREATE TABLE `llx_holiday_users` ( `nb_holiday` double NOT NULL DEFAULT 0, `fk_type` int(11) NOT NULL DEFAULT 1, UNIQUE KEY `uk_holiday_users` (`fk_user`,`fk_type`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7495,16 +8040,16 @@ DROP TABLE IF EXISTS `llx_hrm_evaluation`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_evaluation` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '(PROV)', - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` smallint(6) NOT NULL, `date_eval` date DEFAULT NULL, `fk_user` int(11) NOT NULL, @@ -7515,7 +8060,7 @@ CREATE TABLE `llx_hrm_evaluation` ( KEY `llx_hrm_evaluation_fk_user_creat` (`fk_user_creat`), KEY `idx_hrm_evaluation_status` (`status`), CONSTRAINT `llx_hrm_evaluation_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7538,10 +8083,10 @@ CREATE TABLE `llx_hrm_evaluation_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_evaluation_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7570,14 +8115,14 @@ CREATE TABLE `llx_hrm_evaluationdet` ( `fk_evaluation` int(11) NOT NULL, `rankorder` int(11) NOT NULL, `required_rank` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_evaluationdet_rowid` (`rowid`), KEY `llx_hrm_evaluationdet_fk_user_creat` (`fk_user_creat`), KEY `idx_hrm_evaluationdet_fk_skill` (`fk_skill`), KEY `idx_hrm_evaluationdet_fk_evaluation` (`fk_evaluation`), CONSTRAINT `llx_hrm_evaluationdet_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7600,10 +8145,10 @@ CREATE TABLE `llx_hrm_evaluationdet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_evaluationdet_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7624,19 +8169,19 @@ DROP TABLE IF EXISTS `llx_hrm_job`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_job` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `deplacement` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `deplacement` varchar(255) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_job_rowid` (`rowid`), KEY `idx_hrm_job_label` (`label`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7659,10 +8204,10 @@ CREATE TABLE `llx_hrm_job_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_job_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7683,7 +8228,7 @@ DROP TABLE IF EXISTS `llx_hrm_job_user`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_job_user` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_contrat` int(11) DEFAULT NULL, @@ -7691,14 +8236,14 @@ CREATE TABLE `llx_hrm_job_user` ( `fk_job` int(11) NOT NULL, `date_start` date DEFAULT NULL, `date_end` date DEFAULT NULL, - `abort_comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `abort_comment` varchar(255) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_job_user_rowid` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7719,8 +8264,8 @@ DROP TABLE IF EXISTS `llx_hrm_skill`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_skill` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, @@ -7729,14 +8274,14 @@ CREATE TABLE `llx_hrm_skill` ( `date_validite` int(11) NOT NULL, `temps_theorique` double(24,8) NOT NULL, `skill_type` int(11) NOT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_skill_rowid` (`rowid`), KEY `llx_hrm_skill_fk_user_creat` (`fk_user_creat`), KEY `idx_hrm_skill_skill_type` (`skill_type`), CONSTRAINT `llx_hrm_skill_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7759,10 +8304,10 @@ CREATE TABLE `llx_hrm_skill_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_skill_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7783,7 +8328,7 @@ DROP TABLE IF EXISTS `llx_hrm_skilldet`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_skilldet` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_skill` int(11) NOT NULL, @@ -7792,7 +8337,7 @@ CREATE TABLE `llx_hrm_skilldet` ( KEY `idx_hrm_skilldet_rowid` (`rowid`), KEY `llx_hrm_skilldet_fk_user_creat` (`fk_user_creat`), CONSTRAINT `llx_hrm_skilldet_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7820,13 +8365,13 @@ CREATE TABLE `llx_hrm_skillrank` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `objecttype` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `objecttype` varchar(128) NOT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_skillrank_rowid` (`rowid`), KEY `idx_hrm_skillrank_fk_skill` (`fk_skill`), KEY `llx_hrm_skillrank_fk_user_creat` (`fk_user_creat`), CONSTRAINT `llx_hrm_skillrank_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7848,13 +8393,13 @@ DROP TABLE IF EXISTS `llx_import_model`; CREATE TABLE `llx_import_model` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) NOT NULL DEFAULT 0, - `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `field` text COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(50) NOT NULL, + `type` varchar(64) DEFAULT NULL, + `field` text NOT NULL, `entity` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_import_model` (`label`,`type`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7876,17 +8421,17 @@ DROP TABLE IF EXISTS `llx_intracommreport`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_intracommreport` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) CHARACTER SET utf8mb4 NOT NULL, + `ref` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `type_declaration` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL, - `periods` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `mode` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL, - `content_xml` text CHARACTER SET utf8mb4 DEFAULT NULL, - `type_export` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL, + `type_declaration` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `periods` varchar(32) DEFAULT NULL, + `mode` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `content_xml` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `type_export` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7907,11 +8452,11 @@ DROP TABLE IF EXISTS `llx_inventory`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_inventory` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_warehouse` int(11) DEFAULT NULL, `date_inventory` date DEFAULT NULL, - `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `title` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_validation` datetime DEFAULT NULL, @@ -7919,9 +8464,10 @@ CREATE TABLE `llx_inventory` ( `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `datec` datetime DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, + `categories_product` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_inventory_ref` (`ref`,`entity`), KEY `idx_inventory_rowid` (`rowid`), @@ -7932,7 +8478,7 @@ CREATE TABLE `llx_inventory` ( KEY `idx_inventory_import_key` (`import_key`), KEY `idx_inventory_tms` (`tms`), KEY `idx_inventory_datec` (`datec`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7941,10 +8487,36 @@ CREATE TABLE `llx_inventory` ( LOCK TABLES `llx_inventory` WRITE; /*!40000 ALTER TABLE `llx_inventory` DISABLE KEYS */; -INSERT INTO `llx_inventory` VALUES (1,'aaa',1,NULL,NULL,'aa aaa',0,'2020-01-10 01:41:10',NULL,'2020-01-09 21:41:10',12,12,NULL,NULL,NULL,4); +INSERT INTO `llx_inventory` VALUES (1,'aaa',1,NULL,NULL,'aa aaa',0,'2020-01-10 01:41:10',NULL,'2020-01-09 21:41:10',12,12,NULL,NULL,NULL,4,NULL); /*!40000 ALTER TABLE `llx_inventory` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_inventory_extrafields` +-- + +DROP TABLE IF EXISTS `llx_inventory_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_inventory_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_inventory_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_inventory_extrafields` +-- + +LOCK TABLES `llx_inventory_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_inventory_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_inventory_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_inventorydet` -- @@ -7959,17 +8531,19 @@ CREATE TABLE `llx_inventorydet` ( `fk_inventory` int(11) DEFAULT 0, `fk_warehouse` int(11) DEFAULT 0, `fk_product` int(11) DEFAULT 0, - `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch` varchar(30) DEFAULT NULL, `qty_view` double DEFAULT NULL, `qty_stock` double DEFAULT NULL, `qty_regulated` double DEFAULT NULL, `fk_movement` int(11) DEFAULT NULL, + `pmp_real` double DEFAULT NULL, + `pmp_expected` double DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_inventorydet` (`fk_inventory`,`fk_warehouse`,`fk_product`,`batch`), KEY `idx_inventorydet_tms` (`tms`), KEY `idx_inventorydet_datec` (`datec`), KEY `idx_inventorydet_fk_inventory` (`fk_inventory`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -7990,25 +8564,25 @@ DROP TABLE IF EXISTS `llx_knowledgemanagement_knowledgerecord`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_knowledgemanagement_knowledgerecord` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `question` text COLLATE utf8_unicode_ci NOT NULL, - `answer` text COLLATE utf8_unicode_ci DEFAULT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `question` text NOT NULL, + `answer` text DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, `fk_ticket` int(11) DEFAULT NULL, `fk_c_ticket_category` int(11) DEFAULT NULL, `status` int(11) NOT NULL, - `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, `entity` int(11) DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8032,9 +8606,9 @@ CREATE TABLE `llx_knowledgemanagement_knowledgerecord_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8057,13 +8631,13 @@ CREATE TABLE `llx_links` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, `datea` datetime NOT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `objecttype` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `url` varchar(255) NOT NULL, + `label` varchar(255) NOT NULL, + `objecttype` varchar(255) NOT NULL, `objectid` int(11) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_links` (`objectid`,`label`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8088,28 +8662,28 @@ CREATE TABLE `llx_loan` ( `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(80) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(80) NOT NULL, `fk_bank` int(11) DEFAULT NULL, `capital` double(24,8) DEFAULT NULL, `datestart` date DEFAULT NULL, `dateend` date DEFAULT NULL, `nbterm` double DEFAULT NULL, `rate` double NOT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `capital_position` double(24,8) DEFAULT NULL, `date_position` date DEFAULT NULL, `paid` smallint(6) NOT NULL DEFAULT 0, - `accountancy_account_capital` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_account_insurance` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_account_interest` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `accountancy_account_capital` varchar(32) DEFAULT NULL, + `accountancy_account_insurance` varchar(32) DEFAULT NULL, + `accountancy_account_interest` varchar(32) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `fk_projet` int(11) DEFAULT NULL, `insurance_amount` double(24,8) DEFAULT 0.00000000, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8139,15 +8713,15 @@ CREATE TABLE `llx_loan_schedule` ( `amount_insurance` double(24,8) DEFAULT NULL, `amount_interest` double(24,8) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_payment_loan` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8174,13 +8748,13 @@ CREATE TABLE `llx_localtax` ( `datep` date DEFAULT NULL, `datev` date DEFAULT NULL, `amount` double NOT NULL DEFAULT 0, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8202,18 +8776,18 @@ DROP TABLE IF EXISTS `llx_mailing`; CREATE TABLE `llx_mailing` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `statut` smallint(6) DEFAULT 0, - `titre` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `titre` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `sujet` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `body` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `bgcolor` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, - `bgimage` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cible` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, + `sujet` varchar(128) DEFAULT NULL, + `body` mediumtext DEFAULT NULL, + `bgcolor` varchar(8) DEFAULT NULL, + `bgimage` varchar(255) DEFAULT NULL, + `cible` varchar(60) DEFAULT NULL, `nbemail` int(11) DEFAULT NULL, - `email_from` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_replyto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_errorsto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL, - `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `email_from` varchar(160) DEFAULT NULL, + `email_replyto` varchar(160) DEFAULT NULL, + `email_errorsto` varchar(160) DEFAULT NULL, + `tag` varchar(128) DEFAULT NULL, `date_creat` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `date_appro` datetime DEFAULT NULL, @@ -8221,14 +8795,15 @@ CREATE TABLE `llx_mailing` ( `fk_user_creat` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, `fk_user_appro` int(11) DEFAULT NULL, - `joined_file1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `joined_file2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `joined_file3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `joined_file4` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `joined_file1` varchar(255) DEFAULT NULL, + `joined_file2` varchar(255) DEFAULT NULL, + `joined_file3` varchar(255) DEFAULT NULL, + `joined_file4` varchar(255) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_mailing` (`titre`,`entity`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8241,6 +8816,38 @@ INSERT INTO `llx_mailing` VALUES (3,2,'Commercial emailing January',1,'Buy my pr /*!40000 ALTER TABLE `llx_mailing` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_mailing_advtarget` +-- + +DROP TABLE IF EXISTS `llx_mailing_advtarget`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_mailing_advtarget` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `entity` int(11) NOT NULL DEFAULT 1, + `filtervalue` text DEFAULT NULL, + `fk_user_author` int(11) NOT NULL, + `datec` datetime NOT NULL, + `fk_user_mod` int(11) NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_element` int(11) NOT NULL, + `type_element` varchar(180) NOT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_advtargetemailing_name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_mailing_advtarget` +-- + +LOCK TABLES `llx_mailing_advtarget` WRITE; +/*!40000 ALTER TABLE `llx_mailing_advtarget` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_mailing_advtarget` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_mailing_cibles` -- @@ -8252,23 +8859,23 @@ CREATE TABLE `llx_mailing_cibles` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_mailing` int(11) NOT NULL, `fk_contact` int(11) NOT NULL, - `lastname` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL, - `firstname` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL, - `email` varchar(160) COLLATE utf8_unicode_ci NOT NULL, - `other` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `tag` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `lastname` varchar(160) DEFAULT NULL, + `firstname` varchar(160) DEFAULT NULL, + `email` varchar(160) NOT NULL, + `other` varchar(255) DEFAULT NULL, + `tag` varchar(64) DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, - `source_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `source_url` varchar(255) DEFAULT NULL, `source_id` int(11) DEFAULT NULL, - `source_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `source_type` varchar(32) DEFAULT NULL, `date_envoi` datetime DEFAULT NULL, - `error_text` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `error_text` varchar(255) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_mailing_cibles` (`fk_mailing`,`email`), KEY `idx_mailing_cibles_email` (`email`), KEY `idx_mailing_cibles_tag` (`tag`) -) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8291,14 +8898,14 @@ DROP TABLE IF EXISTS `llx_mailing_unsubscribe`; CREATE TABLE `llx_mailing_unsubscribe` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `unsubscribegroup` varchar(128) COLLATE utf8_unicode_ci DEFAULT '', - `ip` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `unsubscribegroup` varchar(128) DEFAULT '', + `ip` varchar(128) DEFAULT NULL, `date_creat` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_mailing_unsubscribe` (`email`,`entity`,`unsubscribegroup`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8319,30 +8926,30 @@ DROP TABLE IF EXISTS `llx_menu`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_menu` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `menu_handler` varchar(16) COLLATE utf8_unicode_ci NOT NULL, + `menu_handler` varchar(16) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `module` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `type` varchar(4) COLLATE utf8_unicode_ci NOT NULL, - `mainmenu` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `module` varchar(255) DEFAULT NULL, + `type` varchar(4) NOT NULL, + `mainmenu` varchar(100) NOT NULL, `fk_menu` int(11) NOT NULL, - `fk_leftmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, - `fk_mainmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_leftmenu` varchar(100) DEFAULT NULL, + `fk_mainmenu` varchar(100) DEFAULT NULL, `position` int(11) NOT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `target` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, - `titre` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `prefix` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `langs` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, + `url` varchar(255) NOT NULL, + `target` varchar(100) DEFAULT NULL, + `titre` varchar(255) NOT NULL, + `prefix` varchar(255) DEFAULT NULL, + `langs` varchar(100) DEFAULT NULL, `level` smallint(6) DEFAULT NULL, - `leftmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, - `perms` text COLLATE utf8_unicode_ci DEFAULT NULL, - `enabled` text COLLATE utf8_unicode_ci DEFAULT NULL, + `leftmenu` varchar(100) DEFAULT NULL, + `perms` text DEFAULT NULL, + `enabled` text DEFAULT NULL, `usertype` int(11) NOT NULL DEFAULT 0, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `idx_menu_uk_menu` (`menu_handler`,`fk_menu`,`position`,`url`,`entity`), KEY `idx_menu_menuhandler_type` (`menu_handler`,`type`) -) ENGINE=InnoDB AUTO_INCREMENT=167187 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=167380 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8351,7 +8958,7 @@ CREATE TABLE `llx_menu` ( LOCK TABLES `llx_menu` WRITE; /*!40000 ALTER TABLE `llx_menu` DISABLE KEYS */; -INSERT INTO `llx_menu` VALUES (103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction',NULL,'commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Calendar',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda','','List',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys',NULL,'opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey',NULL,'opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey',NULL,'opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List',NULL,'opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(161088,'auguria',1,'','top','home',0,NULL,NULL,10,'/index.php?mainmenu=home&leftmenu=','','Home',NULL,'',-1,'','','1',2,'2017-08-30 15:14:30'),(161089,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,20,'/societe/index.php?mainmenu=companies&leftmenu=','','ThirdParties',NULL,'companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)',2,'2017-08-30 15:14:30'),(161090,'auguria',1,'product|service','top','products',0,NULL,NULL,30,'/product/index.php?mainmenu=products&leftmenu=','','Products/Services',NULL,'products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2017-08-30 15:14:30'),(161092,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,40,'/comm/index.php?mainmenu=commercial&leftmenu=','','Commercial',NULL,'commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(161093,'auguria',1,'comptabilite|accounting|facture|don|tax|salaries|loan','top','accountancy',0,NULL,NULL,50,'/compta/index.php?mainmenu=accountancy&leftmenu=','','MenuFinancial',NULL,'compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled',2,'2017-08-30 15:14:30'),(161094,'auguria',1,'projet','top','project',0,NULL,NULL,70,'/projet/index.php?mainmenu=project&leftmenu=','','Projects',NULL,'projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(161095,'auguria',1,'mailing|export|import|opensurvey|resource','top','tools',0,NULL,NULL,90,'/core/tools.php?mainmenu=tools&leftmenu=','','Tools',NULL,'other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled',2,'2017-08-30 15:14:30'),(161101,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,60,'/compta/bank/index.php?mainmenu=bank&leftmenu=bank','','MenuBankCash',NULL,'banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2017-08-30 15:14:30'),(161102,'auguria',1,'hrm|holiday|deplacement|expensereport','top','hrm',0,NULL,NULL,80,'/hrm/index.php?mainmenu=hrm&leftmenu=','','HRM',NULL,'holiday',-1,'','$user->rights->hrm->employee->read || $user->rights->holiday->write || $user->rights->deplacement->lire || $user->rights->expensereport->lire','$conf->hrm->enabled || $conf->holiday->enabled || $conf->deplacement->enabled || $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(161177,'auguria',1,'','left','home',161088,NULL,NULL,0,'/index.php','','MyDashboard',NULL,'',0,'','','1',2,'2017-08-30 15:14:30'),(161187,'auguria',1,'','left','home',161088,NULL,NULL,1,'/admin/index.php?leftmenu=setup','','Setup',NULL,'admin',0,'setup','','$user->admin',2,'2017-08-30 15:14:30'),(161188,'auguria',1,'','left','home',161187,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161189,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161190,'auguria',1,'','left','home',161187,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161191,'auguria',1,'','left','home',161187,NULL,NULL,6,'/admin/boxes.php?leftmenu=setup','','Boxes',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161192,'auguria',1,'','left','home',161187,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:47'),(161193,'auguria',1,'','left','home',161187,NULL,NULL,7,'/admin/delais.php?leftmenu=setup','','Alerts',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161194,'auguria',1,'','left','home',161187,NULL,NULL,10,'/admin/pdf.php?leftmenu=setup','','PDF',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161195,'auguria',1,'','left','home',161187,NULL,NULL,8,'/admin/security_other.php?leftmenu=setup','','Security',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:36'),(161196,'auguria',1,'','left','home',161187,NULL,NULL,11,'/admin/mails.php?leftmenu=setup','','Emails',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161197,'auguria',1,'','left','home',161187,NULL,NULL,9,'/admin/limits.php?leftmenu=setup','','MenuLimits',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161198,'auguria',1,'','left','home',161187,NULL,NULL,13,'/admin/dict.php?leftmenu=setup','','Dictionary',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161199,'auguria',1,'','left','home',161187,NULL,NULL,14,'/admin/const.php?leftmenu=setup','','OtherSetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161200,'auguria',1,'','left','home',161187,NULL,NULL,12,'/admin/sms.php?leftmenu=setup','','SMS',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161201,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/translation.php?leftmenu=setup','','Translation',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161288,'auguria',1,'','left','home',161387,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161289,'auguria',1,'','left','home',161288,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161290,'auguria',1,'','left','home',161288,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161291,'auguria',1,'','left','home',161288,NULL,NULL,4,'/admin/system/filecheck.php?leftmenu=admintools','','FileCheck',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161292,'auguria',1,'','left','home',161387,NULL,NULL,1,'/admin/system/browser.php?leftmenu=admintools','','InfoBrowser',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161293,'auguria',1,'','left','home',161387,NULL,NULL,2,'/admin/system/os.php?leftmenu=admintools','','InfoOS',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161294,'auguria',1,'','left','home',161387,NULL,NULL,3,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161295,'auguria',1,'','left','home',161387,NULL,NULL,4,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161297,'auguria',1,'','left','home',161387,NULL,NULL,5,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161387,'auguria',1,'','left','home',161088,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','AdminTools',NULL,'admin',0,'admintools','','$user->admin',2,'2017-08-30 15:14:30'),(161388,'auguria',1,'','left','home',161387,NULL,NULL,6,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161389,'auguria',1,'','left','home',161387,NULL,NULL,7,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161392,'auguria',1,'','left','home',161387,NULL,NULL,8,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161393,'auguria',1,'','left','home',161387,NULL,NULL,9,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator',NULL,'admin',1,'','','$leftmenu==\"admintools\" && function_exists(\"eaccelerator_info\")',2,'2017-08-30 15:14:30'),(161394,'auguria',1,'','left','home',161387,NULL,NULL,10,'/admin/tools/listevents.php?leftmenu=admintools','','Audit',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161395,'auguria',1,'','left','home',161387,NULL,NULL,11,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161396,'auguria',1,'','left','home',161387,NULL,NULL,12,'/admin/tools/purge.php?leftmenu=admintools','','Purge',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161398,'auguria',1,'','left','home',161387,NULL,NULL,14,'/admin/system/about.php?leftmenu=admintools','','ExternalResources',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161407,'auguria',1,'','left','home',161387,NULL,NULL,15,'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools','','ProductVatMassChange',NULL,'products',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161487,'auguria',1,'','left','home',161088,NULL,NULL,4,'/user/home.php?leftmenu=users','','MenuUsersAndGroups',NULL,'users',0,'users','','1',2,'2017-08-30 15:14:30'),(161488,'auguria',1,'','left','home',161487,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users',NULL,'users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161489,'auguria',1,'','left','home',161488,NULL,NULL,0,'/user/card.php?leftmenu=users&action=create','','NewUser',NULL,'users',2,'','($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161490,'auguria',1,'','left','home',161487,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups',NULL,'users',1,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161491,'auguria',1,'','left','home',161490,NULL,NULL,0,'/user/group/card.php?leftmenu=users&action=create','','NewGroup',NULL,'users',2,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161587,'auguria',1,'','left','companies',161089,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty',NULL,'companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161588,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/card.php?action=create','','MenuNewThirdParty',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161589,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/list.php?action=create','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161590,'auguria',1,'','left','companies',161587,NULL,NULL,5,'/societe/list.php?type=f&leftmenu=suppliers','','ListSuppliersShort',NULL,'suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161591,'auguria',1,'','left','companies',161590,NULL,NULL,0,'/societe/card.php?leftmenu=supplier&action=create&type=f','','NewSupplier',NULL,'suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161593,'auguria',1,'','left','companies',161587,NULL,NULL,3,'/societe/list.php?type=p&leftmenu=prospects','','ListProspectsShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161594,'auguria',1,'','left','companies',161593,NULL,NULL,0,'/societe/card.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161596,'auguria',1,'','left','companies',161587,NULL,NULL,4,'/societe/list.php?type=c&leftmenu=customers','','ListCustomersShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161597,'auguria',1,'','left','companies',161596,NULL,NULL,0,'/societe/card.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161687,'auguria',1,'','left','companies',161089,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses',NULL,'companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161688,'auguria',1,'','left','companies',161687,NULL,NULL,0,'/contact/card.php?leftmenu=contacts&action=create','','NewContactAddress',NULL,'companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161689,'auguria',1,'','left','companies',161687,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161691,'auguria',1,'','left','companies',161689,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','ThirdPartyProspects',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161692,'auguria',1,'','left','companies',161689,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&type=c','','ThirdPartyCustomers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161693,'auguria',1,'','left','companies',161689,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&type=f','','ThirdPartySuppliers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161694,'auguria',1,'','left','companies',161689,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&type=o','','Others',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161737,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=1','','SuppliersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161738,'auguria',1,'','left','companies',161737,NULL,NULL,0,'/categories/card.php?action=create&type=1','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161747,'auguria',1,'','left','companies',161089,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=2','','CustomersProspectsCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161748,'auguria',1,'','left','companies',161747,NULL,NULL,0,'/categories/card.php?action=create&type=2','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161757,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=4','','ContactCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161758,'auguria',1,'','left','companies',161757,NULL,NULL,0,'/categories/card.php?action=create&type=4','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(162187,'auguria',1,'','left','commercial',161092,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop',NULL,'propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162188,'auguria',1,'','left','commercial',162187,NULL,NULL,0,'/comm/propal/card.php?action=create&leftmenu=propals','','NewPropal',NULL,'propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162189,'auguria',1,'','left','commercial',162187,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162190,'auguria',1,'','left','commercial',162189,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&search_status=0','','PropalsDraft',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162191,'auguria',1,'','left','commercial',162189,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&search_status=1','','PropalsOpened',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162192,'auguria',1,'','left','commercial',162189,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&search_status=2','','PropalStatusSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162193,'auguria',1,'','left','commercial',162189,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&search_status=3','','PropalStatusNotSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162194,'auguria',1,'','left','commercial',162189,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&search_status=4','','PropalStatusBilled',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162197,'auguria',1,'','left','commercial',162187,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162287,'auguria',1,'','left','commercial',161092,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162288,'auguria',1,'','left','commercial',162287,NULL,NULL,0,'/commande/card.php?action=create&leftmenu=orders','','NewOrder',NULL,'orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162289,'auguria',1,'','left','commercial',162287,NULL,NULL,1,'/commande/list.php?leftmenu=orders','','List',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162290,'auguria',1,'','left','commercial',162289,NULL,NULL,2,'/commande/list.php?leftmenu=orders&search_status=0','','StatusOrderDraftShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162291,'auguria',1,'','left','commercial',162289,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=1','','StatusOrderValidated',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162292,'auguria',1,'','left','commercial',162289,NULL,NULL,4,'/commande/list.php?leftmenu=orders&search_status=2','','StatusOrderOnProcessShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162293,'auguria',1,'','left','commercial',162289,NULL,NULL,5,'/commande/list.php?leftmenu=orders&search_status=3','','StatusOrderToBill',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162294,'auguria',1,'','left','commercial',162289,NULL,NULL,6,'/commande/list.php?leftmenu=orders&search_status=4','','StatusOrderProcessed',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162295,'auguria',1,'','left','commercial',162289,NULL,NULL,7,'/commande/list.php?leftmenu=orders&search_status=-1','','StatusOrderCanceledShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162296,'auguria',1,'','left','commercial',162287,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162387,'auguria',1,'','left','commercial',161090,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments',NULL,'sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2017-08-30 15:14:30'),(162388,'auguria',1,'','left','commercial',162387,NULL,NULL,0,'/expedition/card.php?action=create2&leftmenu=sendings','','NewSending',NULL,'sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162389,'auguria',1,'','left','commercial',162387,NULL,NULL,1,'/expedition/list.php?leftmenu=sendings','','List',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162390,'auguria',1,'','left','commercial',162387,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162487,'auguria',1,'','left','commercial',161092,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts',NULL,'contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162488,'auguria',1,'','left','commercial',162487,NULL,NULL,0,'/contrat/card.php?&action=create&leftmenu=contracts','','NewContract',NULL,'contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162489,'auguria',1,'','left','commercial',162487,NULL,NULL,1,'/contrat/list.php?leftmenu=contracts','','List',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162490,'auguria',1,'','left','commercial',162487,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162491,'auguria',1,'','left','commercial',162490,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&mode=0','','MenuInactiveServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162492,'auguria',1,'','left','commercial',162490,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&mode=4','','MenuRunningServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162493,'auguria',1,'','left','commercial',162490,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&mode=4&filter=expired','','MenuExpiredServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162494,'auguria',1,'','left','commercial',162490,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&mode=5','','MenuClosedServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162587,'auguria',1,'','left','commercial',161092,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions',NULL,'interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162588,'auguria',1,'','left','commercial',162587,NULL,NULL,0,'/fichinter/card.php?action=create&leftmenu=ficheinter','','NewIntervention',NULL,'interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162589,'auguria',1,'','left','commercial',162587,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162590,'auguria',1,'','left','commercial',162587,NULL,NULL,2,'/fichinter/stats/index.php?leftmenu=ficheinter','','Statistics',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162687,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/fourn/facture/list.php?leftmenu=suppliers_bills','','BillsSuppliers',NULL,'bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162688,'auguria',1,'','left','accountancy',162687,NULL,NULL,0,'/fourn/facture/card.php?action=create&leftmenu=suppliers_bills','','NewBill',NULL,'bills',1,'','$user->rights->fournisseur->facture->creer','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162689,'auguria',1,'','left','accountancy',162687,NULL,NULL,1,'/fourn/facture/list.php?leftmenu=suppliers_bills','','List',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162690,'auguria',1,'','left','accountancy',162687,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162691,'auguria',1,'','left','accountancy',162687,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162692,'auguria',1,'','left','accountancy',162690,NULL,NULL,1,'/fourn/facture/rapport.php?leftmenu=suppliers_bills','','Reporting',NULL,'bills',2,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162787,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers',NULL,'bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162788,'auguria',1,'','left','accountancy',162787,NULL,NULL,3,'/compta/facture/card.php?action=create&leftmenu=customers_bills','','NewBill',NULL,'bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162789,'auguria',1,'','left','accountancy',162787,NULL,NULL,5,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','ListOfTemplates',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162791,'auguria',1,'','left','accountancy',162787,NULL,NULL,6,'/compta/paiement/list.php?leftmenu=customers_bills','','Payments',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162792,'auguria',1,'','left','accountancy',162787,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills','','List',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162797,'auguria',1,'','left','accountancy',162791,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162798,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank','','MenuChequeDeposits',NULL,'bills',0,'checks','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162799,'auguria',1,'','left','accountancy',162798,NULL,NULL,0,'/compta/paiement/cheque/card.php?leftmenu=checks&action=new','','NewCheckDeposit',NULL,'compta',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162800,'auguria',1,'','left','accountancy',162798,NULL,NULL,1,'/compta/paiement/cheque/list.php?leftmenu=checks','','List',NULL,'bills',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162801,'auguria',1,'','left','accountancy',162787,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162807,'auguria',1,'','left','accountancy',162792,NULL,NULL,1,'/compta/facture/list.php?leftmenu=customers_bills&search_status=0','','BillShortStatusDraft',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162808,'auguria',1,'','left','accountancy',162792,NULL,NULL,2,'/compta/facture/list.php?leftmenu=customers_bills&search_status=1','','BillShortStatusNotPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162809,'auguria',1,'','left','accountancy',162792,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills&search_status=2','','BillShortStatusPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162810,'auguria',1,'','left','accountancy',162792,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills&search_status=3','','BillShortStatusCanceled',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162987,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=3','','MenuOrdersToBill',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2017-08-30 15:14:30'),(163087,'auguria',1,'','left','accountancy',161093,NULL,NULL,4,'/don/index.php?leftmenu=donations&mainmenu=accountancy','','Donations',NULL,'donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2017-08-30 15:14:30'),(163088,'auguria',1,'','left','accountancy',163087,NULL,NULL,0,'/don/card.php?leftmenu=donations&mainmenu=accountancy&action=create','','NewDonation',NULL,'donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163089,'auguria',1,'','left','accountancy',163087,NULL,NULL,1,'/don/list.php?leftmenu=donations&mainmenu=accountancy','','List',NULL,'donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163187,'auguria',1,'','left','accountancy',161102,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses',NULL,'trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163188,'auguria',1,'','left','accountancy',163187,NULL,NULL,1,'/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses','','New',NULL,'trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163189,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163190,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163287,'auguria',1,'','left','accountancy',161093,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy','','MenuSpecialExpenses',NULL,'compta',0,'tax','(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)','$conf->tax->enabled || $conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163297,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy','','Salaries',NULL,'salaries',1,'tax_sal','$user->rights->salaries->payment->read','$conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163298,'auguria',1,'','left','accountancy',163297,NULL,NULL,2,'/compta/salaries/card.php?leftmenu=tax_salary&action=create','','NewPayment',NULL,'companies',2,'','$user->rights->salaries->payment->write','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163299,'auguria',1,'','left','accountancy',163297,NULL,NULL,3,'/compta/salaries/index.php?leftmenu=tax_salary','','Payments',NULL,'companies',2,'','$user->rights->salaries->payment->read','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163307,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/loan/index.php?leftmenu=tax_loan&mainmenu=accountancy','','Loans',NULL,'loan',1,'tax_loan','$user->rights->loan->read','$conf->loan->enabled',0,'2017-08-30 15:14:30'),(163308,'auguria',1,'','left','accountancy',163307,NULL,NULL,2,'/loan/card.php?leftmenu=tax_loan&action=create','','NewLoan',NULL,'loan',2,'','$user->rights->loan->write','$conf->loan->enabled && $leftmenu==\"tax_loan\"',0,'2017-08-30 15:14:30'),(163310,'auguria',1,'','left','accountancy',163307,NULL,NULL,4,'/loan/calc.php?leftmenu=tax_loan','','Calculator',NULL,'companies',2,'','$user->rights->loan->calc','$conf->loan->enabled && $leftmenu==\"tax_loan\" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)',0,'2017-08-30 15:14:30'),(163337,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions',NULL,'',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2017-08-30 15:14:30'),(163338,'auguria',1,'','left','accountancy',163337,NULL,NULL,2,'/compta/sociales/card.php?leftmenu=tax_social&action=create','','MenuNewSocialContribution',NULL,'',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163339,'auguria',1,'','left','accountancy',163337,NULL,NULL,3,'/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly','','Payments',NULL,'',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163387,'auguria',1,'','left','accountancy',163287,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy','','VAT',NULL,'companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2017-08-30 15:14:30'),(163388,'auguria',1,'','left','accountancy',163387,NULL,NULL,0,'/compta/tva/card.php?leftmenu=tax_vat&action=create','','New',NULL,'companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163389,'auguria',1,'','left','accountancy',163387,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','List',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163390,'auguria',1,'','left','accountancy',163387,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163391,'auguria',1,'','left','accountancy',163387,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163487,'auguria',1,'','left','accountancy',161093,NULL,NULL,7,'/accountancy/index.php?leftmenu=accountancy','','MenuAccountancy',NULL,'accountancy',0,'accounting','! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163488,'auguria',1,'','left','accountancy',163487,NULL,NULL,2,'/accountancy/customer/index.php?leftmenu=dispatch_customer','','CustomersVentilation',NULL,'accountancy',1,'dispatch_customer','$user->rights->accounting->bind->write','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163489,'auguria',1,'','left','accountancy',163488,NULL,NULL,3,'/accountancy/customer/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163490,'auguria',1,'','left','accountancy',163488,NULL,NULL,4,'/accountancy/customer/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163497,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/supplier/index.php?leftmenu=dispatch_supplier','','SuppliersVentilation',NULL,'accountancy',1,'ventil_supplier','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled',0,'2017-08-30 15:14:30'),(163498,'auguria',1,'','left','accountancy',163497,NULL,NULL,6,'/accountancy/supplier/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163499,'auguria',1,'','left','accountancy',163497,NULL,NULL,7,'/accountancy/supplier/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163507,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/expensereport/index.php?leftmenu=dispatch_expensereport','','ExpenseReportsVentilation',NULL,'accountancy',1,'ventil_expensereport','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(163508,'auguria',1,'','left','accountancy',163507,NULL,NULL,6,'/accountancy/expensereport/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163509,'auguria',1,'','left','accountancy',163507,NULL,NULL,7,'/accountancy/expensereport/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163517,'auguria',1,'','left','accountancy',163487,NULL,NULL,15,'/accountancy/bookkeeping/list.php','','Bookkeeping',NULL,'accountancy',1,'bookkeeping','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163522,'auguria',1,'','left','accountancy',163487,NULL,NULL,16,'/accountancy/bookkeeping/balance.php','','AccountBalance',NULL,'accountancy',1,'balance','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163527,'auguria',1,'','left','accountancy',163487,NULL,NULL,17,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','Reportings',NULL,'main',1,'report','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163528,'auguria',1,'','left','accountancy',163527,NULL,NULL,19,'/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportInOut',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163529,'auguria',1,'','left','accountancy',163528,NULL,NULL,18,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','ByAccounts',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163530,'auguria',1,'','left','accountancy',163528,NULL,NULL,20,'/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163531,'auguria',1,'','left','accountancy',163527,NULL,NULL,21,'/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportTurnover',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163532,'auguria',1,'','left','accountancy',163531,NULL,NULL,22,'/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163533,'auguria',1,'','left','accountancy',163531,NULL,NULL,23,'/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy','','ByUsers',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163534,'auguria',1,'','left','accountancy',163531,NULL,NULL,24,'/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy','','ByProductsAndServices',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163537,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin','','FiscalPeriod',NULL,'admin',1,'accountancy_admin_period','','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\" && $conf->global->MAIN_FEATURES_LEVEL > 0',2,'2017-08-30 15:14:30'),(163538,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Setup',NULL,'accountancy',1,'accountancy_admin','$user->rights->accounting->chartofaccount','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163541,'auguria',1,'','left','accountancy',163538,NULL,NULL,10,'/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingJournals',NULL,'accountancy',2,'accountancy_admin_journal','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163542,'auguria',1,'','left','accountancy',163538,NULL,NULL,20,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Pcg_version',NULL,'accountancy',2,'accountancy_admin_chartmodel','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163543,'auguria',1,'','left','accountancy',163538,NULL,NULL,30,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Chartofaccounts',NULL,'accountancy',2,'accountancy_admin_chart','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163544,'auguria',1,'','left','accountancy',163538,NULL,NULL,40,'/accountancy/admin/categories_list.php?id=32&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingCategory',NULL,'accountancy',2,'accountancy_admin_chart_group','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163545,'auguria',1,'','left','accountancy',163538,NULL,NULL,50,'/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuDefaultAccounts',NULL,'accountancy',2,'accountancy_admin_default','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163546,'auguria',1,'','left','accountancy',163538,NULL,NULL,60,'/admin/dict.php?id=10&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuVatAccounts',NULL,'accountancy',2,'accountancy_admin_vat','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163547,'auguria',1,'','left','accountancy',163538,NULL,NULL,70,'/admin/dict.php?id=7&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuTaxAccounts',NULL,'accountancy',2,'accountancy_admin_tax','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163548,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuExpenseReportAccounts',NULL,'accountancy',2,'accountancy_admin_expensereport','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163549,'auguria',1,'','left','accountancy',163538,NULL,NULL,90,'/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuProductsAccounts',NULL,'accountancy',2,'accountancy_admin_product','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163587,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank','','StandingOrders',NULL,'withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2017-08-30 15:14:30'),(163589,'auguria',1,'','left','accountancy',163587,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163590,'auguria',1,'','left','accountancy',163587,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163591,'auguria',1,'','left','accountancy',163587,NULL,NULL,3,'/compta/prelevement/list.php?leftmenu=withdraw','','WithdrawalsLines',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163593,'auguria',1,'','left','accountancy',163587,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163594,'auguria',1,'','left','accountancy',163587,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163687,'auguria',1,'','left','accountancy',161101,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&mainmenu=bank','','MenuBankCash',NULL,'banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2017-08-30 15:14:30'),(163688,'auguria',1,'','left','accountancy',163687,NULL,NULL,0,'/compta/bank/card.php?action=create&leftmenu=bank','','MenuNewFinancialAccount',NULL,'banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163690,'auguria',1,'','left','accountancy',163687,NULL,NULL,2,'/compta/bank/bankentries.php?leftmenu=bank','','ListTransactions',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163691,'auguria',1,'','left','accountancy',163687,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163693,'auguria',1,'','left','accountancy',163687,NULL,NULL,5,'/compta/bank/transfer.php?leftmenu=bank','','BankTransfers',NULL,'banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163737,'auguria',1,'','left','accountancy',161101,NULL,NULL,4,'/categories/index.php?leftmenu=bank&type=5','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163738,'auguria',1,'','left','accountancy',163737,NULL,NULL,0,'/categories/card.php?leftmenu=bank&action=create&type=5','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163787,'auguria',1,'','left','accountancy',161093,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&mainmenu=accountancy','','Reportings',NULL,'main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled',0,'2017-08-30 15:14:30'),(163792,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'','','Journalization',NULL,'main',1,'','$user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163793,'auguria',1,'','left','accountancy',163792,NULL,NULL,4,'/accountancy/journal/sellsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=1','','SellsJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163794,'auguria',1,'','left','accountancy',163792,NULL,NULL,1,'/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3','','BankJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163795,'auguria',1,'','left','accountancy',163792,NULL,NULL,2,'/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6','','ExpenseReportJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163796,'auguria',1,'','left','accountancy',163792,NULL,NULL,3,'/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2','','PurchasesJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163798,'auguria',1,'','left','accountancy',163787,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163799,'auguria',1,'','left','accountancy',163788,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163800,'auguria',1,'','left','accountancy',163787,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163801,'auguria',1,'','left','accountancy',163790,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163802,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163803,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyprodserv.php?leftmenu=ca','','ByProductsAndServices',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163887,'auguria',1,'','left','products',161090,NULL,NULL,0,'/product/index.php?leftmenu=product&type=0','','Products',NULL,'products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163888,'auguria',1,'','left','products',163887,NULL,NULL,0,'/product/card.php?leftmenu=product&action=create&type=0','','NewProduct',NULL,'products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163889,'auguria',1,'','left','products',163887,NULL,NULL,1,'/product/list.php?leftmenu=product&type=0','','List',NULL,'products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163890,'auguria',1,'','left','products',163887,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163891,'auguria',1,'','left','products',163887,NULL,NULL,7,'/product/stats/card.php?id=all&leftmenu=stats&type=0','','Statistics',NULL,'main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(163892,'auguria',1,'','left','products',163887,NULL,NULL,5,'/product/reassortlot.php?type=0','','StocksByLotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163893,'auguria',1,'','left','products',163887,NULL,NULL,6,'/product/stock/productlot_list.php','','LotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163987,'auguria',1,'','left','products',161090,NULL,NULL,1,'/product/index.php?leftmenu=service&type=1','','Services',NULL,'products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163988,'auguria',1,'','left','products',163987,NULL,NULL,0,'/product/card.php?leftmenu=service&action=create&type=1','','NewService',NULL,'products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163989,'auguria',1,'','left','products',163987,NULL,NULL,1,'/product/list.php?leftmenu=service&type=1','','List',NULL,'products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163990,'auguria',1,'','left','products',163987,NULL,NULL,5,'/product/stats/card.php?id=all&leftmenu=stats&type=1','','Statistics',NULL,'main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(164187,'auguria',1,'','left','products',161090,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock',NULL,'stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164188,'auguria',1,'','left','products',164187,NULL,NULL,0,'/product/stock/card.php?action=create','','MenuNewWarehouse',NULL,'stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164189,'auguria',1,'','left','products',164187,NULL,NULL,1,'/product/stock/list.php','','List',NULL,'stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164191,'auguria',1,'','left','products',164187,NULL,NULL,3,'/product/stock/mouvement.php','','Movements',NULL,'stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164192,'auguria',1,'','left','products',164187,NULL,NULL,4,'/product/stock/replenish.php','','Replenishments',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire','$conf->stock->enabled && $conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(164193,'auguria',1,'','left','products',164187,NULL,NULL,5,'/product/stock/massstockmove.php','','MassStockTransferShort',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164287,'auguria',1,'','left','products',161090,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=0','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164288,'auguria',1,'','left','products',164287,NULL,NULL,0,'/categories/card.php?action=create&type=0','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164487,'auguria',1,'','left','project',161094,NULL,NULL,3,'/projet/activity/perweek.php?leftmenu=projects','','NewTimeSpent',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164687,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects',NULL,'projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164688,'auguria',1,'','left','project',164687,NULL,NULL,1,'/projet/card.php?leftmenu=projects&action=create','','NewProject',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164689,'auguria',1,'','left','project',164687,NULL,NULL,2,'/projet/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164690,'auguria',1,'','left','project',164687,NULL,NULL,3,'/projet/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164787,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164788,'auguria',1,'','left','project',164787,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create','','NewTask',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164789,'auguria',1,'','left','project',164787,NULL,NULL,2,'/projet/tasks/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164791,'auguria',1,'','left','project',164787,NULL,NULL,4,'/projet/tasks/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164891,'auguria',1,'','left','project',161094,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=6','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164892,'auguria',1,'','left','project',164891,NULL,NULL,0,'/categories/card.php?action=create&type=6','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164987,'auguria',1,'','left','tools',161095,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings',NULL,'mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164988,'auguria',1,'','left','tools',164987,NULL,NULL,0,'/comm/mailing/card.php?leftmenu=mailing&action=create','','NewMailing',NULL,'mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164989,'auguria',1,'','left','tools',164987,NULL,NULL,1,'/comm/mailing/list.php?leftmenu=mailing','','List',NULL,'mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(165187,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport',NULL,'exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165188,'auguria',1,'','left','tools',165187,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport',NULL,'exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165217,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport',NULL,'exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165218,'auguria',1,'','left','tools',165217,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport',NULL,'exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165287,'auguria',1,'','left','members',161100,NULL,NULL,0,'/adherents/index.php?leftmenu=members&mainmenu=members','','Members',NULL,'members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165288,'auguria',1,'','left','members',165287,NULL,NULL,0,'/adherents/card.php?leftmenu=members&action=create','','NewMember',NULL,'members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165289,'auguria',1,'','left','members',165287,NULL,NULL,1,'/adherents/list.php','','List',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165290,'auguria',1,'','left','members',165289,NULL,NULL,2,'/adherents/list.php?leftmenu=members&statut=-1','','MenuMembersToValidate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165291,'auguria',1,'','left','members',165289,NULL,NULL,3,'/adherents/list.php?leftmenu=members&statut=1','','MenuMembersValidated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165292,'auguria',1,'','left','members',165289,NULL,NULL,4,'/adherents/list.php?leftmenu=members&statut=1&filter=outofdate','','MenuMembersNotUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165293,'auguria',1,'','left','members',165289,NULL,NULL,5,'/adherents/list.php?leftmenu=members&statut=1&filter=uptodate','','MenuMembersUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165294,'auguria',1,'','left','members',165289,NULL,NULL,6,'/adherents/list.php?leftmenu=members&statut=0','','MenuMembersResiliated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165295,'auguria',1,'','left','members',165287,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&mode=memberbycountry','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165387,'auguria',1,'','left','members',161100,NULL,NULL,1,'/adherents/index.php?leftmenu=members&mainmenu=members','','Subscriptions',NULL,'compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165388,'auguria',1,'','left','members',165387,NULL,NULL,0,'/adherents/list.php?statut=-1&leftmenu=accountancy&mainmenu=members','','NewSubscription',NULL,'compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165389,'auguria',1,'','left','members',165387,NULL,NULL,1,'/adherents/subscription/list.php?leftmenu=members','','List',NULL,'compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165390,'auguria',1,'','left','members',165387,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165589,'auguria',1,'','left','members',165287,NULL,NULL,9,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd',NULL,'members',1,'','$user->rights->adherent->export','! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165590,'auguria',1,'','left','members',165287,NULL,NULL,10,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards',NULL,'members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165687,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/user/index.php?leftmenu=hrm&mode=employee','','Employees',NULL,'hrm',0,'hrm','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165688,'auguria',1,'','left','hrm',165687,NULL,NULL,1,'/user/card.php?action=create&employee=1','','NewEmployee',NULL,'hrm',1,'','$user->rights->hrm->employee->write','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165689,'auguria',1,'','left','hrm',165687,NULL,NULL,2,'/user/index.php?$leftmenu=hrm&mode=employee&contextpage=employeelist','','List',NULL,'hrm',1,'','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165787,'auguria',1,'','left','members',161100,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&mainmenu=members','','MembersTypes',NULL,'members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165788,'auguria',1,'','left','members',165787,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&mainmenu=members&action=create','','New',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165789,'auguria',1,'','left','members',165787,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&mainmenu=members','','List',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(166087,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','CPTitreMenu',NULL,'holiday',0,'hrm','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166088,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/card.php?&action=request','','MenuAddCP',NULL,'holiday',1,'','$user->rights->holiday->write','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166089,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','List',NULL,'holiday',1,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166090,'auguria',1,'','left','hrm',166089,NULL,NULL,1,'/holiday/list.php?select_statut=2&leftmenu=hrm','','ListToApprove',NULL,'trips',2,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166091,'auguria',1,'','left','hrm',166087,NULL,NULL,2,'/holiday/define_holiday.php?&action=request','','MenuConfCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166092,'auguria',1,'','left','hrm',166087,NULL,NULL,3,'/holiday/view_log.php?&action=request','','MenuLogCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166187,'auguria',1,'','left','commercial',161092,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders',NULL,'orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166188,'auguria',1,'','left','commercial',166187,NULL,NULL,0,'/fourn/commande/card.php?action=create&leftmenu=orders_suppliers','','NewOrder',NULL,'orders',1,'','$user->rights->fournisseur->commande->creer','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166189,'auguria',1,'','left','commercial',166187,NULL,NULL,1,'/fourn/commande/list.php?leftmenu=orders_suppliers&search_status=0','','List',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166195,'auguria',1,'','left','commercial',166187,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier','','Statistics',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166287,'auguria',1,'','left','members',161100,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=3','','MembersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166288,'auguria',1,'','left','members',166287,NULL,NULL,0,'/categories/card.php?action=create&type=3','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166387,'auguria',1,'','left','hrm',161102,NULL,NULL,5,'/expensereport/index.php?leftmenu=expensereport','','TripsAndExpenses',NULL,'trips',0,'expensereport','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166388,'auguria',1,'','left','hrm',166387,NULL,NULL,1,'/expensereport/card.php?action=create&leftmenu=expensereport','','New',NULL,'trips',1,'','$user->rights->expensereport->creer','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166389,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/list.php?leftmenu=expensereport','','List',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166390,'auguria',1,'','left','hrm',166389,NULL,NULL,2,'/expensereport/list.php?search_status=2&leftmenu=expensereport','','ListToApprove',NULL,'trips',2,'','$user->rights->expensereport->approve','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166391,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/stats/index.php?leftmenu=expensereport','','Statistics',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(167134,'all',1,'agenda','top','agenda',0,NULL,NULL,86,'/comm/action/index.php','','TMenuAgenda','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167135,'all',1,'agenda','left','agenda',167134,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167136,'all',1,'agenda','left','agenda',167135,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction','','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167137,'all',1,'agenda','left','agenda',167135,NULL,NULL,140,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda','','Calendar','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167138,'all',1,'agenda','left','agenda',167137,NULL,NULL,141,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167139,'all',1,'agenda','left','agenda',167137,NULL,NULL,142,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167140,'all',1,'agenda','left','agenda',167137,NULL,NULL,143,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=todo&filtert=-1','','MenuToDoActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-02-07 13:38:16'),(167141,'all',1,'agenda','left','agenda',167137,NULL,NULL,144,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=done&filtert=-1','','MenuDoneActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-02-07 13:38:16'),(167142,'all',1,'agenda','left','agenda',167135,NULL,NULL,110,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda','','List','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167143,'all',1,'agenda','left','agenda',167142,NULL,NULL,111,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167144,'all',1,'agenda','left','agenda',167142,NULL,NULL,112,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167145,'all',1,'agenda','left','agenda',167142,NULL,NULL,113,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=todo&filtert=-1','','MenuToDoActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-02-07 13:38:16'),(167146,'all',1,'agenda','left','agenda',167142,NULL,NULL,114,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=done&filtert=-1','','MenuDoneActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-02-07 13:38:16'),(167147,'all',1,'agenda','left','agenda',167135,NULL,NULL,160,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2022-02-07 13:38:16'),(167148,'all',1,'agenda','left','agenda',167135,NULL,NULL,170,'/categories/index.php?mainmenu=agenda&leftmenu=agenda&type=10','','Categories','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->categorie->enabled',2,'2022-02-07 13:38:16'),(167149,'all',1,'barcode','left','tools',-1,NULL,'tools',200,'/barcode/printsheet.php?mainmenu=tools&leftmenu=barcodeprint','','BarCodePrintsheet','','products',NULL,'barcodeprint','($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->lire_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)','$conf->barcode->enabled',0,'2022-02-07 13:38:17'),(167150,'all',1,'barcode','left','home',-1,'admintools','home',300,'/barcode/codeinit.php?mainmenu=home&leftmenu=admintools','','MassBarcodeInit','','products',NULL,NULL,'($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->creer_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)','$conf->barcode->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu)',0,'2022-02-07 13:38:17'),(167151,'all',1,'cron','left','home',-1,'admintools','home',200,'/cron/list.php?leftmenu=admintools','','CronList','','cron',NULL,NULL,'$user->rights->cron->read','$conf->cron->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',2,'2022-02-07 13:38:17'),(167153,'all',1,'ecm','top','ecm',0,NULL,NULL,82,'/ecm/index.php','','MenuECM','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup','$conf->ecm->enabled',2,'2022-02-07 13:38:17'),(167154,'all',1,'ecm','left','ecm',-1,NULL,'ecm',101,'/ecm/index.php?mainmenu=ecm&leftmenu=ecm','','ECMArea','','ecm',NULL,'ecm','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2022-02-07 13:38:17'),(167155,'all',1,'ecm','left','ecm',-1,'ecm','ecm',102,'/ecm/index.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsManual','','ecm',NULL,'ecm_manual','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2022-02-07 13:38:17'),(167156,'all',1,'ecm','left','ecm',-1,'ecm','ecm',103,'/ecm/index_auto.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsAuto','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && ! empty($conf->global->ECM_AUTO_TREE_ENABLED)',2,'2022-02-07 13:38:17'),(167157,'all',1,'margins','left','billing',-1,NULL,'billing',100,'/margin/index.php','','Margins','','margins',NULL,'margins','$user->rights->margins->liretous','$conf->margin->enabled',2,'2022-02-07 13:38:17'),(167158,'all',1,'opensurvey','left','tools',-1,NULL,'tools',200,'/opensurvey/index.php?mainmenu=tools&leftmenu=opensurvey','','Survey','','opensurvey',NULL,'opensurvey','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2022-02-07 13:38:17'),(167159,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',210,'/opensurvey/wizard/index.php','','NewSurvey','','opensurvey',NULL,'opensurvey_new','$user->rights->opensurvey->write','$conf->opensurvey->enabled',0,'2022-02-07 13:38:17'),(167160,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',220,'/opensurvey/list.php','','List','','opensurvey',NULL,'opensurvey_list','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2022-02-07 13:38:17'),(167161,'all',1,'printing','left','home',-1,'admintools','home',300,'/printing/index.php?mainmenu=home&leftmenu=admintools','','MenuDirectPrinting','','printing',NULL,NULL,'$user->rights->printing->read','$conf->printing->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',0,'2022-02-07 13:38:17'),(167162,'all',1,'recruitment','left','hrm',-1,NULL,'hrm',1001,'/recruitment/recruitmentindex.php','','Recruitment','','recruitment',NULL,'recruitmentjobposition','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-02-07 13:38:18'),(167163,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1002,'/recruitment/recruitmentjobposition_card.php?action=create','','NewPositionToBeFilled','','recruitment',NULL,'recruitment_recruitmentjobposition_new','$user->rights->recruitment->recruitmentjobposition->write','$conf->recruitment->enabled',2,'2022-02-07 13:38:18'),(167164,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1003,'/recruitment/recruitmentjobposition_list.php','','ListOfPositionsToBeFilled','','recruitment',NULL,'recruitment_recruitmentjobposition_list','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-02-07 13:38:18'),(167165,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1004,'/recruitment/recruitmentcandidature_card.php?action=create','','NewCandidature','','recruitment',NULL,'recruitment_recruitmentcandidature_new','$user->rights->recruitment->recruitmentjobposition->write','$conf->recruitment->enabled',2,'2022-02-07 13:38:18'),(167166,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1005,'/recruitment/recruitmentcandidature_list.php','','ListOfCandidatures','','recruitment',NULL,'recruitment_recruitmentcandidature_list','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-02-07 13:38:18'),(167167,'all',1,'resource','left','tools',-1,NULL,'tools',100,'/resource/list.php','','MenuResourceIndex','','resource',NULL,'resource','$user->rights->resource->read','1',0,'2022-02-07 13:38:18'),(167168,'all',1,'resource','left','tools',-1,'resource','tools',101,'/resource/card.php?action=create','','MenuResourceAdd','','resource',NULL,'resource_add','$user->rights->resource->write','1',0,'2022-02-07 13:38:18'),(167169,'all',1,'resource','left','tools',-1,'resource','tools',102,'/resource/list.php','','List','','resource',NULL,'resource_list','$user->rights->resource->read','1',0,'2022-02-07 13:38:18'),(167170,'all',1,'stripe','left','bank',-1,NULL,'bank',100,'','','StripeAccount','','stripe',NULL,'stripe','$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-02-07 13:38:18'),(167171,'all',1,'stripe','left','bank',-1,'stripe','bank',102,'/stripe/charge.php','','StripeChargeList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-02-07 13:38:18'),(167172,'all',1,'stripe','left','bank',-1,'stripe','bank',102,'/stripe/transaction.php','','StripeTransactionList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-02-07 13:38:18'),(167173,'all',1,'stripe','left','bank',-1,'stripe','bank',103,'/stripe/payout.php','','StripePayoutList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-02-07 13:38:18'),(167174,'all',1,'ticket','left','ticket',-1,NULL,'ticket',101,'/ticket/index.php','','Ticket','','ticket',NULL,'ticket','$user->rights->ticket->read','$conf->ticket->enabled',2,'2022-02-07 13:38:18'),(167175,'all',1,'ticket','left','ticket',-1,'ticket','ticket',102,'/ticket/card.php?action=create','','NewTicket','','ticket',NULL,NULL,'$user->rights->ticket->write','$conf->ticket->enabled',2,'2022-02-07 13:38:18'),(167176,'all',1,'ticket','left','ticket',-1,'ticket','ticket',103,'/ticket/list.php?search_fk_status=non_closed','','List','','ticket',NULL,'ticketlist','$user->rights->ticket->read','$conf->ticket->enabled',2,'2022-02-07 13:38:18'),(167177,'all',1,'ticket','left','ticket',-1,'ticket','ticket',105,'/ticket/list.php?mode=mine&search_fk_status=non_closed','','MenuTicketMyAssign','','ticket',NULL,'ticketmy','$user->rights->ticket->read','$conf->ticket->enabled',0,'2022-02-07 13:38:18'),(167178,'all',1,'ticket','left','ticket',-1,'ticket','ticket',107,'/ticket/stats/index.php','','Statistics','','ticket',NULL,NULL,'$user->rights->ticket->read','$conf->ticket->enabled',0,'2022-02-07 13:38:18'),(167179,'all',1,'ticket','left','ticket',-1,'ticket','ticket',107,'/categories/index.php?type=12','','Categories','','ticket',NULL,NULL,'$user->rights->ticket->read','$conf->categorie->enabled',0,'2022-02-07 13:38:18'),(167180,'all',1,'takepos','top','takepos',0,NULL,NULL,1001,'/takepos/index.php','takepos','PointOfSaleShort','','cashdesk',NULL,NULL,'$user->rights->takepos->run','$conf->takepos->enabled',2,'2022-02-07 13:38:18'),(167181,'all',1,'website','top','website',0,NULL,NULL,100,'/website/index.php','','WebSites','','website',NULL,NULL,'$user->rights->website->read','$conf->website->enabled',2,'2022-02-07 13:38:18'),(167182,'all',1,'knowledgemanagement','left','ticket',-1,NULL,'ticket',101,'/knowledgemanagement/knowledgerecord_list.php','','MenuKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_knowledgerecord','$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167183,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',111,'/knowledgemanagement/knowledgerecord_list.php','','ListKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_list','$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167184,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',110,'/knowledgemanagement/knowledgerecord_card.php?action=create','','NewKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_new','$user->rights->knowledgemanagement->knowledgerecord->write','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167185,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',112,'/categories/index.php?type=13','','Categories','','knowledgemanagement',NULL,NULL,'$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',0,'2022-02-07 13:39:27'),(167186,'all',1,'blockedlog','left','tools',-1,NULL,'tools',200,'/blockedlog/admin/blockedlog_list.php?mainmenu=tools&leftmenu=blockedlogbrowser','','BrowseBlockedLog','','blockedlog',NULL,'blockedlogbrowser','$user->rights->blockedlog->read','$conf->blockedlog->enabled',2,'2022-02-07 14:32:50'); +INSERT INTO `llx_menu` VALUES (103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction',NULL,'commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Calendar',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda','','List',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys',NULL,'opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey',NULL,'opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey',NULL,'opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List',NULL,'opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(161088,'auguria',1,'','top','home',0,NULL,NULL,10,'/index.php?mainmenu=home&leftmenu=','','Home',NULL,'',-1,'','','1',2,'2017-08-30 15:14:30'),(161089,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,20,'/societe/index.php?mainmenu=companies&leftmenu=','','ThirdParties',NULL,'companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)',2,'2017-08-30 15:14:30'),(161090,'auguria',1,'product|service','top','products',0,NULL,NULL,30,'/product/index.php?mainmenu=products&leftmenu=','','Products/Services',NULL,'products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2017-08-30 15:14:30'),(161092,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,40,'/comm/index.php?mainmenu=commercial&leftmenu=','','Commercial',NULL,'commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(161093,'auguria',1,'comptabilite|accounting|facture|don|tax|salaries|loan','top','accountancy',0,NULL,NULL,50,'/compta/index.php?mainmenu=accountancy&leftmenu=','','MenuFinancial',NULL,'compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled',2,'2017-08-30 15:14:30'),(161094,'auguria',1,'projet','top','project',0,NULL,NULL,70,'/projet/index.php?mainmenu=project&leftmenu=','','Projects',NULL,'projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(161095,'auguria',1,'mailing|export|import|opensurvey|resource','top','tools',0,NULL,NULL,90,'/core/tools.php?mainmenu=tools&leftmenu=','','Tools',NULL,'other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled',2,'2017-08-30 15:14:30'),(161101,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,60,'/compta/bank/index.php?mainmenu=bank&leftmenu=bank','','MenuBankCash',NULL,'banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2017-08-30 15:14:30'),(161102,'auguria',1,'hrm|holiday|deplacement|expensereport','top','hrm',0,NULL,NULL,80,'/hrm/index.php?mainmenu=hrm&leftmenu=','','HRM',NULL,'holiday',-1,'','$user->rights->hrm->employee->read || $user->rights->holiday->write || $user->rights->deplacement->lire || $user->rights->expensereport->lire','$conf->hrm->enabled || $conf->holiday->enabled || $conf->deplacement->enabled || $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(161177,'auguria',1,'','left','home',161088,NULL,NULL,0,'/index.php','','MyDashboard',NULL,'',0,'','','1',2,'2017-08-30 15:14:30'),(161187,'auguria',1,'','left','home',161088,NULL,NULL,1,'/admin/index.php?leftmenu=setup','','Setup',NULL,'admin',0,'setup','','$user->admin',2,'2017-08-30 15:14:30'),(161188,'auguria',1,'','left','home',161187,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161189,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161190,'auguria',1,'','left','home',161187,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161191,'auguria',1,'','left','home',161187,NULL,NULL,6,'/admin/boxes.php?leftmenu=setup','','Boxes',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161192,'auguria',1,'','left','home',161187,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:47'),(161193,'auguria',1,'','left','home',161187,NULL,NULL,7,'/admin/delais.php?leftmenu=setup','','Alerts',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161194,'auguria',1,'','left','home',161187,NULL,NULL,10,'/admin/pdf.php?leftmenu=setup','','PDF',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161195,'auguria',1,'','left','home',161187,NULL,NULL,8,'/admin/security_other.php?leftmenu=setup','','Security',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:36'),(161196,'auguria',1,'','left','home',161187,NULL,NULL,11,'/admin/mails.php?leftmenu=setup','','Emails',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161197,'auguria',1,'','left','home',161187,NULL,NULL,9,'/admin/limits.php?leftmenu=setup','','MenuLimits',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161198,'auguria',1,'','left','home',161187,NULL,NULL,13,'/admin/dict.php?leftmenu=setup','','Dictionary',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161199,'auguria',1,'','left','home',161187,NULL,NULL,14,'/admin/const.php?leftmenu=setup','','OtherSetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161200,'auguria',1,'','left','home',161187,NULL,NULL,12,'/admin/sms.php?leftmenu=setup','','SMS',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161201,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/translation.php?leftmenu=setup','','Translation',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161288,'auguria',1,'','left','home',161387,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161289,'auguria',1,'','left','home',161288,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161290,'auguria',1,'','left','home',161288,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161291,'auguria',1,'','left','home',161288,NULL,NULL,4,'/admin/system/filecheck.php?leftmenu=admintools','','FileCheck',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161292,'auguria',1,'','left','home',161387,NULL,NULL,1,'/admin/system/browser.php?leftmenu=admintools','','InfoBrowser',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161293,'auguria',1,'','left','home',161387,NULL,NULL,2,'/admin/system/os.php?leftmenu=admintools','','InfoOS',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161294,'auguria',1,'','left','home',161387,NULL,NULL,3,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161295,'auguria',1,'','left','home',161387,NULL,NULL,4,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161297,'auguria',1,'','left','home',161387,NULL,NULL,5,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161387,'auguria',1,'','left','home',161088,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','AdminTools',NULL,'admin',0,'admintools','','$user->admin',2,'2017-08-30 15:14:30'),(161388,'auguria',1,'','left','home',161387,NULL,NULL,6,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161389,'auguria',1,'','left','home',161387,NULL,NULL,7,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161392,'auguria',1,'','left','home',161387,NULL,NULL,8,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161393,'auguria',1,'','left','home',161387,NULL,NULL,9,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator',NULL,'admin',1,'','','$leftmenu==\"admintools\" && function_exists(\"eaccelerator_info\")',2,'2017-08-30 15:14:30'),(161394,'auguria',1,'','left','home',161387,NULL,NULL,10,'/admin/tools/listevents.php?leftmenu=admintools','','Audit',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161395,'auguria',1,'','left','home',161387,NULL,NULL,11,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161396,'auguria',1,'','left','home',161387,NULL,NULL,12,'/admin/tools/purge.php?leftmenu=admintools','','Purge',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161398,'auguria',1,'','left','home',161387,NULL,NULL,14,'/admin/system/about.php?leftmenu=admintools','','ExternalResources',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161407,'auguria',1,'','left','home',161387,NULL,NULL,15,'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools','','ProductVatMassChange',NULL,'products',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161487,'auguria',1,'','left','home',161088,NULL,NULL,4,'/user/home.php?leftmenu=users','','MenuUsersAndGroups',NULL,'users',0,'users','','1',2,'2017-08-30 15:14:30'),(161488,'auguria',1,'','left','home',161487,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users',NULL,'users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161489,'auguria',1,'','left','home',161488,NULL,NULL,0,'/user/card.php?leftmenu=users&action=create','','NewUser',NULL,'users',2,'','($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161490,'auguria',1,'','left','home',161487,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups',NULL,'users',1,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161491,'auguria',1,'','left','home',161490,NULL,NULL,0,'/user/group/card.php?leftmenu=users&action=create','','NewGroup',NULL,'users',2,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161587,'auguria',1,'','left','companies',161089,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty',NULL,'companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161588,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/card.php?action=create','','MenuNewThirdParty',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161589,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/list.php?action=create','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161590,'auguria',1,'','left','companies',161587,NULL,NULL,5,'/societe/list.php?type=f&leftmenu=suppliers','','ListSuppliersShort',NULL,'suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161591,'auguria',1,'','left','companies',161590,NULL,NULL,0,'/societe/card.php?leftmenu=supplier&action=create&type=f','','NewSupplier',NULL,'suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161593,'auguria',1,'','left','companies',161587,NULL,NULL,3,'/societe/list.php?type=p&leftmenu=prospects','','ListProspectsShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161594,'auguria',1,'','left','companies',161593,NULL,NULL,0,'/societe/card.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161596,'auguria',1,'','left','companies',161587,NULL,NULL,4,'/societe/list.php?type=c&leftmenu=customers','','ListCustomersShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161597,'auguria',1,'','left','companies',161596,NULL,NULL,0,'/societe/card.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161687,'auguria',1,'','left','companies',161089,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses',NULL,'companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161688,'auguria',1,'','left','companies',161687,NULL,NULL,0,'/contact/card.php?leftmenu=contacts&action=create','','NewContactAddress',NULL,'companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161689,'auguria',1,'','left','companies',161687,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161691,'auguria',1,'','left','companies',161689,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','ThirdPartyProspects',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161692,'auguria',1,'','left','companies',161689,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&type=c','','ThirdPartyCustomers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161693,'auguria',1,'','left','companies',161689,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&type=f','','ThirdPartySuppliers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161694,'auguria',1,'','left','companies',161689,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&type=o','','Others',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161737,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=1','','SuppliersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161738,'auguria',1,'','left','companies',161737,NULL,NULL,0,'/categories/card.php?action=create&type=1','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161747,'auguria',1,'','left','companies',161089,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=2','','CustomersProspectsCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161748,'auguria',1,'','left','companies',161747,NULL,NULL,0,'/categories/card.php?action=create&type=2','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161757,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=4','','ContactCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161758,'auguria',1,'','left','companies',161757,NULL,NULL,0,'/categories/card.php?action=create&type=4','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(162187,'auguria',1,'','left','commercial',161092,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop',NULL,'propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162188,'auguria',1,'','left','commercial',162187,NULL,NULL,0,'/comm/propal/card.php?action=create&leftmenu=propals','','NewPropal',NULL,'propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162189,'auguria',1,'','left','commercial',162187,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162190,'auguria',1,'','left','commercial',162189,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&search_status=0','','PropalsDraft',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162191,'auguria',1,'','left','commercial',162189,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&search_status=1','','PropalsOpened',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162192,'auguria',1,'','left','commercial',162189,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&search_status=2','','PropalStatusSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162193,'auguria',1,'','left','commercial',162189,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&search_status=3','','PropalStatusNotSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162194,'auguria',1,'','left','commercial',162189,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&search_status=4','','PropalStatusBilled',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162197,'auguria',1,'','left','commercial',162187,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162287,'auguria',1,'','left','commercial',161092,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162288,'auguria',1,'','left','commercial',162287,NULL,NULL,0,'/commande/card.php?action=create&leftmenu=orders','','NewOrder',NULL,'orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162289,'auguria',1,'','left','commercial',162287,NULL,NULL,1,'/commande/list.php?leftmenu=orders','','List',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162290,'auguria',1,'','left','commercial',162289,NULL,NULL,2,'/commande/list.php?leftmenu=orders&search_status=0','','StatusOrderDraftShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162291,'auguria',1,'','left','commercial',162289,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=1','','StatusOrderValidated',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162292,'auguria',1,'','left','commercial',162289,NULL,NULL,4,'/commande/list.php?leftmenu=orders&search_status=2','','StatusOrderOnProcessShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162293,'auguria',1,'','left','commercial',162289,NULL,NULL,5,'/commande/list.php?leftmenu=orders&search_status=3','','StatusOrderToBill',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162294,'auguria',1,'','left','commercial',162289,NULL,NULL,6,'/commande/list.php?leftmenu=orders&search_status=4','','StatusOrderProcessed',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162295,'auguria',1,'','left','commercial',162289,NULL,NULL,7,'/commande/list.php?leftmenu=orders&search_status=-1','','StatusOrderCanceledShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162296,'auguria',1,'','left','commercial',162287,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162387,'auguria',1,'','left','commercial',161090,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments',NULL,'sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2017-08-30 15:14:30'),(162388,'auguria',1,'','left','commercial',162387,NULL,NULL,0,'/expedition/card.php?action=create2&leftmenu=sendings','','NewSending',NULL,'sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162389,'auguria',1,'','left','commercial',162387,NULL,NULL,1,'/expedition/list.php?leftmenu=sendings','','List',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162390,'auguria',1,'','left','commercial',162387,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162487,'auguria',1,'','left','commercial',161092,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts',NULL,'contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162488,'auguria',1,'','left','commercial',162487,NULL,NULL,0,'/contrat/card.php?&action=create&leftmenu=contracts','','NewContract',NULL,'contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162489,'auguria',1,'','left','commercial',162487,NULL,NULL,1,'/contrat/list.php?leftmenu=contracts','','List',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162490,'auguria',1,'','left','commercial',162487,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162491,'auguria',1,'','left','commercial',162490,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&mode=0','','MenuInactiveServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162492,'auguria',1,'','left','commercial',162490,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&mode=4','','MenuRunningServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162493,'auguria',1,'','left','commercial',162490,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&mode=4&filter=expired','','MenuExpiredServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162494,'auguria',1,'','left','commercial',162490,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&mode=5','','MenuClosedServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162587,'auguria',1,'','left','commercial',161092,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions',NULL,'interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162588,'auguria',1,'','left','commercial',162587,NULL,NULL,0,'/fichinter/card.php?action=create&leftmenu=ficheinter','','NewIntervention',NULL,'interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162589,'auguria',1,'','left','commercial',162587,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162590,'auguria',1,'','left','commercial',162587,NULL,NULL,2,'/fichinter/stats/index.php?leftmenu=ficheinter','','Statistics',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162687,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/fourn/facture/list.php?leftmenu=suppliers_bills','','BillsSuppliers',NULL,'bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162688,'auguria',1,'','left','accountancy',162687,NULL,NULL,0,'/fourn/facture/card.php?action=create&leftmenu=suppliers_bills','','NewBill',NULL,'bills',1,'','$user->rights->fournisseur->facture->creer','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162689,'auguria',1,'','left','accountancy',162687,NULL,NULL,1,'/fourn/facture/list.php?leftmenu=suppliers_bills','','List',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162690,'auguria',1,'','left','accountancy',162687,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162691,'auguria',1,'','left','accountancy',162687,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162692,'auguria',1,'','left','accountancy',162690,NULL,NULL,1,'/fourn/facture/rapport.php?leftmenu=suppliers_bills','','Reporting',NULL,'bills',2,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162787,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers',NULL,'bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162788,'auguria',1,'','left','accountancy',162787,NULL,NULL,3,'/compta/facture/card.php?action=create&leftmenu=customers_bills','','NewBill',NULL,'bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162789,'auguria',1,'','left','accountancy',162787,NULL,NULL,5,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','ListOfTemplates',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162791,'auguria',1,'','left','accountancy',162787,NULL,NULL,6,'/compta/paiement/list.php?leftmenu=customers_bills','','Payments',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162792,'auguria',1,'','left','accountancy',162787,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills','','List',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162797,'auguria',1,'','left','accountancy',162791,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162798,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank','','MenuChequeDeposits',NULL,'bills',0,'checks','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162799,'auguria',1,'','left','accountancy',162798,NULL,NULL,0,'/compta/paiement/cheque/card.php?leftmenu=checks&action=new','','NewCheckDeposit',NULL,'compta',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162800,'auguria',1,'','left','accountancy',162798,NULL,NULL,1,'/compta/paiement/cheque/list.php?leftmenu=checks','','List',NULL,'bills',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162801,'auguria',1,'','left','accountancy',162787,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162807,'auguria',1,'','left','accountancy',162792,NULL,NULL,1,'/compta/facture/list.php?leftmenu=customers_bills&search_status=0','','BillShortStatusDraft',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162808,'auguria',1,'','left','accountancy',162792,NULL,NULL,2,'/compta/facture/list.php?leftmenu=customers_bills&search_status=1','','BillShortStatusNotPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162809,'auguria',1,'','left','accountancy',162792,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills&search_status=2','','BillShortStatusPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162810,'auguria',1,'','left','accountancy',162792,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills&search_status=3','','BillShortStatusCanceled',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162987,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=3','','MenuOrdersToBill',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2017-08-30 15:14:30'),(163087,'auguria',1,'','left','accountancy',161093,NULL,NULL,4,'/don/index.php?leftmenu=donations&mainmenu=accountancy','','Donations',NULL,'donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2017-08-30 15:14:30'),(163088,'auguria',1,'','left','accountancy',163087,NULL,NULL,0,'/don/card.php?leftmenu=donations&mainmenu=accountancy&action=create','','NewDonation',NULL,'donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163089,'auguria',1,'','left','accountancy',163087,NULL,NULL,1,'/don/list.php?leftmenu=donations&mainmenu=accountancy','','List',NULL,'donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163187,'auguria',1,'','left','accountancy',161102,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses',NULL,'trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163188,'auguria',1,'','left','accountancy',163187,NULL,NULL,1,'/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses','','New',NULL,'trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163189,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163190,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163287,'auguria',1,'','left','accountancy',161093,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy','','MenuSpecialExpenses',NULL,'compta',0,'tax','(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)','$conf->tax->enabled || $conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163297,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy','','Salaries',NULL,'salaries',1,'tax_sal','$user->rights->salaries->payment->read','$conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163298,'auguria',1,'','left','accountancy',163297,NULL,NULL,2,'/compta/salaries/card.php?leftmenu=tax_salary&action=create','','NewPayment',NULL,'companies',2,'','$user->rights->salaries->payment->write','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163299,'auguria',1,'','left','accountancy',163297,NULL,NULL,3,'/compta/salaries/index.php?leftmenu=tax_salary','','Payments',NULL,'companies',2,'','$user->rights->salaries->payment->read','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163307,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/loan/index.php?leftmenu=tax_loan&mainmenu=accountancy','','Loans',NULL,'loan',1,'tax_loan','$user->rights->loan->read','$conf->loan->enabled',0,'2017-08-30 15:14:30'),(163308,'auguria',1,'','left','accountancy',163307,NULL,NULL,2,'/loan/card.php?leftmenu=tax_loan&action=create','','NewLoan',NULL,'loan',2,'','$user->rights->loan->write','$conf->loan->enabled && $leftmenu==\"tax_loan\"',0,'2017-08-30 15:14:30'),(163310,'auguria',1,'','left','accountancy',163307,NULL,NULL,4,'/loan/calc.php?leftmenu=tax_loan','','Calculator',NULL,'companies',2,'','$user->rights->loan->calc','$conf->loan->enabled && $leftmenu==\"tax_loan\" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)',0,'2017-08-30 15:14:30'),(163337,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions',NULL,'',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2017-08-30 15:14:30'),(163338,'auguria',1,'','left','accountancy',163337,NULL,NULL,2,'/compta/sociales/card.php?leftmenu=tax_social&action=create','','MenuNewSocialContribution',NULL,'',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163339,'auguria',1,'','left','accountancy',163337,NULL,NULL,3,'/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly','','Payments',NULL,'',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163387,'auguria',1,'','left','accountancy',163287,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy','','VAT',NULL,'companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2017-08-30 15:14:30'),(163388,'auguria',1,'','left','accountancy',163387,NULL,NULL,0,'/compta/tva/card.php?leftmenu=tax_vat&action=create','','New',NULL,'companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163389,'auguria',1,'','left','accountancy',163387,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','List',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163390,'auguria',1,'','left','accountancy',163387,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163391,'auguria',1,'','left','accountancy',163387,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163487,'auguria',1,'','left','accountancy',161093,NULL,NULL,7,'/accountancy/index.php?leftmenu=accountancy','','MenuAccountancy',NULL,'accountancy',0,'accounting','! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163488,'auguria',1,'','left','accountancy',163487,NULL,NULL,2,'/accountancy/customer/index.php?leftmenu=dispatch_customer','','CustomersVentilation',NULL,'accountancy',1,'dispatch_customer','$user->rights->accounting->bind->write','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163489,'auguria',1,'','left','accountancy',163488,NULL,NULL,3,'/accountancy/customer/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163490,'auguria',1,'','left','accountancy',163488,NULL,NULL,4,'/accountancy/customer/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163497,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/supplier/index.php?leftmenu=dispatch_supplier','','SuppliersVentilation',NULL,'accountancy',1,'ventil_supplier','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled',0,'2017-08-30 15:14:30'),(163498,'auguria',1,'','left','accountancy',163497,NULL,NULL,6,'/accountancy/supplier/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163499,'auguria',1,'','left','accountancy',163497,NULL,NULL,7,'/accountancy/supplier/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163507,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/expensereport/index.php?leftmenu=dispatch_expensereport','','ExpenseReportsVentilation',NULL,'accountancy',1,'ventil_expensereport','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(163508,'auguria',1,'','left','accountancy',163507,NULL,NULL,6,'/accountancy/expensereport/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163509,'auguria',1,'','left','accountancy',163507,NULL,NULL,7,'/accountancy/expensereport/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163517,'auguria',1,'','left','accountancy',163487,NULL,NULL,15,'/accountancy/bookkeeping/list.php','','Bookkeeping',NULL,'accountancy',1,'bookkeeping','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163522,'auguria',1,'','left','accountancy',163487,NULL,NULL,16,'/accountancy/bookkeeping/balance.php','','AccountBalance',NULL,'accountancy',1,'balance','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163527,'auguria',1,'','left','accountancy',163487,NULL,NULL,17,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','Reportings',NULL,'main',1,'report','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163528,'auguria',1,'','left','accountancy',163527,NULL,NULL,19,'/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportInOut',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163529,'auguria',1,'','left','accountancy',163528,NULL,NULL,18,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','ByAccounts',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163530,'auguria',1,'','left','accountancy',163528,NULL,NULL,20,'/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163531,'auguria',1,'','left','accountancy',163527,NULL,NULL,21,'/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportTurnover',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163532,'auguria',1,'','left','accountancy',163531,NULL,NULL,22,'/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163533,'auguria',1,'','left','accountancy',163531,NULL,NULL,23,'/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy','','ByUsers',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163534,'auguria',1,'','left','accountancy',163531,NULL,NULL,24,'/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy','','ByProductsAndServices',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163537,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin','','FiscalPeriod',NULL,'admin',1,'accountancy_admin_period','','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\" && $conf->global->MAIN_FEATURES_LEVEL > 0',2,'2017-08-30 15:14:30'),(163538,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Setup',NULL,'accountancy',1,'accountancy_admin','$user->rights->accounting->chartofaccount','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163541,'auguria',1,'','left','accountancy',163538,NULL,NULL,10,'/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingJournals',NULL,'accountancy',2,'accountancy_admin_journal','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163542,'auguria',1,'','left','accountancy',163538,NULL,NULL,20,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Pcg_version',NULL,'accountancy',2,'accountancy_admin_chartmodel','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163543,'auguria',1,'','left','accountancy',163538,NULL,NULL,30,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Chartofaccounts',NULL,'accountancy',2,'accountancy_admin_chart','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163544,'auguria',1,'','left','accountancy',163538,NULL,NULL,40,'/accountancy/admin/categories_list.php?id=32&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingCategory',NULL,'accountancy',2,'accountancy_admin_chart_group','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163545,'auguria',1,'','left','accountancy',163538,NULL,NULL,50,'/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuDefaultAccounts',NULL,'accountancy',2,'accountancy_admin_default','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163546,'auguria',1,'','left','accountancy',163538,NULL,NULL,60,'/admin/dict.php?id=10&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuVatAccounts',NULL,'accountancy',2,'accountancy_admin_vat','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163547,'auguria',1,'','left','accountancy',163538,NULL,NULL,70,'/admin/dict.php?id=7&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuTaxAccounts',NULL,'accountancy',2,'accountancy_admin_tax','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163548,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuExpenseReportAccounts',NULL,'accountancy',2,'accountancy_admin_expensereport','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163549,'auguria',1,'','left','accountancy',163538,NULL,NULL,90,'/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuProductsAccounts',NULL,'accountancy',2,'accountancy_admin_product','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163587,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank','','StandingOrders',NULL,'withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2017-08-30 15:14:30'),(163589,'auguria',1,'','left','accountancy',163587,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163590,'auguria',1,'','left','accountancy',163587,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163591,'auguria',1,'','left','accountancy',163587,NULL,NULL,3,'/compta/prelevement/list.php?leftmenu=withdraw','','WithdrawalsLines',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163593,'auguria',1,'','left','accountancy',163587,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163594,'auguria',1,'','left','accountancy',163587,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163687,'auguria',1,'','left','accountancy',161101,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&mainmenu=bank','','MenuBankCash',NULL,'banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2017-08-30 15:14:30'),(163688,'auguria',1,'','left','accountancy',163687,NULL,NULL,0,'/compta/bank/card.php?action=create&leftmenu=bank','','MenuNewFinancialAccount',NULL,'banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163690,'auguria',1,'','left','accountancy',163687,NULL,NULL,2,'/compta/bank/bankentries.php?leftmenu=bank','','ListTransactions',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163691,'auguria',1,'','left','accountancy',163687,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163693,'auguria',1,'','left','accountancy',163687,NULL,NULL,5,'/compta/bank/transfer.php?leftmenu=bank','','BankTransfers',NULL,'banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163737,'auguria',1,'','left','accountancy',161101,NULL,NULL,4,'/categories/index.php?leftmenu=bank&type=5','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163738,'auguria',1,'','left','accountancy',163737,NULL,NULL,0,'/categories/card.php?leftmenu=bank&action=create&type=5','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163787,'auguria',1,'','left','accountancy',161093,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&mainmenu=accountancy','','Reportings',NULL,'main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled',0,'2017-08-30 15:14:30'),(163792,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'','','Journalization',NULL,'main',1,'','$user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163793,'auguria',1,'','left','accountancy',163792,NULL,NULL,4,'/accountancy/journal/sellsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=1','','SellsJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163794,'auguria',1,'','left','accountancy',163792,NULL,NULL,1,'/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3','','BankJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163795,'auguria',1,'','left','accountancy',163792,NULL,NULL,2,'/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6','','ExpenseReportJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163796,'auguria',1,'','left','accountancy',163792,NULL,NULL,3,'/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2','','PurchasesJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163798,'auguria',1,'','left','accountancy',163787,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163799,'auguria',1,'','left','accountancy',163788,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163800,'auguria',1,'','left','accountancy',163787,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163801,'auguria',1,'','left','accountancy',163790,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163802,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163803,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyprodserv.php?leftmenu=ca','','ByProductsAndServices',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163887,'auguria',1,'','left','products',161090,NULL,NULL,0,'/product/index.php?leftmenu=product&type=0','','Products',NULL,'products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163888,'auguria',1,'','left','products',163887,NULL,NULL,0,'/product/card.php?leftmenu=product&action=create&type=0','','NewProduct',NULL,'products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163889,'auguria',1,'','left','products',163887,NULL,NULL,1,'/product/list.php?leftmenu=product&type=0','','List',NULL,'products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163890,'auguria',1,'','left','products',163887,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163891,'auguria',1,'','left','products',163887,NULL,NULL,7,'/product/stats/card.php?id=all&leftmenu=stats&type=0','','Statistics',NULL,'main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(163892,'auguria',1,'','left','products',163887,NULL,NULL,5,'/product/reassortlot.php?type=0','','StocksByLotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163893,'auguria',1,'','left','products',163887,NULL,NULL,6,'/product/stock/productlot_list.php','','LotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163987,'auguria',1,'','left','products',161090,NULL,NULL,1,'/product/index.php?leftmenu=service&type=1','','Services',NULL,'products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163988,'auguria',1,'','left','products',163987,NULL,NULL,0,'/product/card.php?leftmenu=service&action=create&type=1','','NewService',NULL,'products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163989,'auguria',1,'','left','products',163987,NULL,NULL,1,'/product/list.php?leftmenu=service&type=1','','List',NULL,'products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163990,'auguria',1,'','left','products',163987,NULL,NULL,5,'/product/stats/card.php?id=all&leftmenu=stats&type=1','','Statistics',NULL,'main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(164187,'auguria',1,'','left','products',161090,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock',NULL,'stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164188,'auguria',1,'','left','products',164187,NULL,NULL,0,'/product/stock/card.php?action=create','','MenuNewWarehouse',NULL,'stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164189,'auguria',1,'','left','products',164187,NULL,NULL,1,'/product/stock/list.php','','List',NULL,'stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164191,'auguria',1,'','left','products',164187,NULL,NULL,3,'/product/stock/mouvement.php','','Movements',NULL,'stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164192,'auguria',1,'','left','products',164187,NULL,NULL,4,'/product/stock/replenish.php','','Replenishments',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire','$conf->stock->enabled && $conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(164193,'auguria',1,'','left','products',164187,NULL,NULL,5,'/product/stock/massstockmove.php','','MassStockTransferShort',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164287,'auguria',1,'','left','products',161090,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=0','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164288,'auguria',1,'','left','products',164287,NULL,NULL,0,'/categories/card.php?action=create&type=0','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164487,'auguria',1,'','left','project',161094,NULL,NULL,3,'/projet/activity/perweek.php?leftmenu=projects','','NewTimeSpent',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164687,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects',NULL,'projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164688,'auguria',1,'','left','project',164687,NULL,NULL,1,'/projet/card.php?leftmenu=projects&action=create','','NewProject',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164689,'auguria',1,'','left','project',164687,NULL,NULL,2,'/projet/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164690,'auguria',1,'','left','project',164687,NULL,NULL,3,'/projet/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164787,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164788,'auguria',1,'','left','project',164787,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create','','NewTask',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164789,'auguria',1,'','left','project',164787,NULL,NULL,2,'/projet/tasks/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164791,'auguria',1,'','left','project',164787,NULL,NULL,4,'/projet/tasks/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164891,'auguria',1,'','left','project',161094,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=6','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164892,'auguria',1,'','left','project',164891,NULL,NULL,0,'/categories/card.php?action=create&type=6','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164987,'auguria',1,'','left','tools',161095,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings',NULL,'mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164988,'auguria',1,'','left','tools',164987,NULL,NULL,0,'/comm/mailing/card.php?leftmenu=mailing&action=create','','NewMailing',NULL,'mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164989,'auguria',1,'','left','tools',164987,NULL,NULL,1,'/comm/mailing/list.php?leftmenu=mailing','','List',NULL,'mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(165187,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport',NULL,'exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165188,'auguria',1,'','left','tools',165187,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport',NULL,'exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165217,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport',NULL,'exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165218,'auguria',1,'','left','tools',165217,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport',NULL,'exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165287,'auguria',1,'','left','members',161100,NULL,NULL,0,'/adherents/index.php?leftmenu=members&mainmenu=members','','Members',NULL,'members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165288,'auguria',1,'','left','members',165287,NULL,NULL,0,'/adherents/card.php?leftmenu=members&action=create','','NewMember',NULL,'members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165289,'auguria',1,'','left','members',165287,NULL,NULL,1,'/adherents/list.php','','List',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165290,'auguria',1,'','left','members',165289,NULL,NULL,2,'/adherents/list.php?leftmenu=members&statut=-1','','MenuMembersToValidate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165291,'auguria',1,'','left','members',165289,NULL,NULL,3,'/adherents/list.php?leftmenu=members&statut=1','','MenuMembersValidated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165292,'auguria',1,'','left','members',165289,NULL,NULL,4,'/adherents/list.php?leftmenu=members&statut=1&filter=outofdate','','MenuMembersNotUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165293,'auguria',1,'','left','members',165289,NULL,NULL,5,'/adherents/list.php?leftmenu=members&statut=1&filter=uptodate','','MenuMembersUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165294,'auguria',1,'','left','members',165289,NULL,NULL,6,'/adherents/list.php?leftmenu=members&statut=0','','MenuMembersResiliated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165295,'auguria',1,'','left','members',165287,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&mode=memberbycountry','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165387,'auguria',1,'','left','members',161100,NULL,NULL,1,'/adherents/index.php?leftmenu=members&mainmenu=members','','Subscriptions',NULL,'compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165388,'auguria',1,'','left','members',165387,NULL,NULL,0,'/adherents/list.php?statut=-1&leftmenu=accountancy&mainmenu=members','','NewSubscription',NULL,'compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165389,'auguria',1,'','left','members',165387,NULL,NULL,1,'/adherents/subscription/list.php?leftmenu=members','','List',NULL,'compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165390,'auguria',1,'','left','members',165387,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165589,'auguria',1,'','left','members',165287,NULL,NULL,9,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd',NULL,'members',1,'','$user->rights->adherent->export','! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165590,'auguria',1,'','left','members',165287,NULL,NULL,10,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards',NULL,'members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165687,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/user/index.php?leftmenu=hrm&mode=employee','','Employees',NULL,'hrm',0,'hrm','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165688,'auguria',1,'','left','hrm',165687,NULL,NULL,1,'/user/card.php?action=create&employee=1','','NewEmployee',NULL,'hrm',1,'','$user->rights->hrm->employee->write','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165689,'auguria',1,'','left','hrm',165687,NULL,NULL,2,'/user/index.php?$leftmenu=hrm&mode=employee&contextpage=employeelist','','List',NULL,'hrm',1,'','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165787,'auguria',1,'','left','members',161100,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&mainmenu=members','','MembersTypes',NULL,'members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165788,'auguria',1,'','left','members',165787,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&mainmenu=members&action=create','','New',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165789,'auguria',1,'','left','members',165787,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&mainmenu=members','','List',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(166087,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','CPTitreMenu',NULL,'holiday',0,'hrm','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166088,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/card.php?&action=request','','MenuAddCP',NULL,'holiday',1,'','$user->rights->holiday->write','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166089,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','List',NULL,'holiday',1,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166090,'auguria',1,'','left','hrm',166089,NULL,NULL,1,'/holiday/list.php?select_statut=2&leftmenu=hrm','','ListToApprove',NULL,'trips',2,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166091,'auguria',1,'','left','hrm',166087,NULL,NULL,2,'/holiday/define_holiday.php?&action=request','','MenuConfCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166092,'auguria',1,'','left','hrm',166087,NULL,NULL,3,'/holiday/view_log.php?&action=request','','MenuLogCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166187,'auguria',1,'','left','commercial',161092,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders',NULL,'orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166188,'auguria',1,'','left','commercial',166187,NULL,NULL,0,'/fourn/commande/card.php?action=create&leftmenu=orders_suppliers','','NewOrder',NULL,'orders',1,'','$user->rights->fournisseur->commande->creer','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166189,'auguria',1,'','left','commercial',166187,NULL,NULL,1,'/fourn/commande/list.php?leftmenu=orders_suppliers&search_status=0','','List',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166195,'auguria',1,'','left','commercial',166187,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier','','Statistics',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166287,'auguria',1,'','left','members',161100,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=3','','MembersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166288,'auguria',1,'','left','members',166287,NULL,NULL,0,'/categories/card.php?action=create&type=3','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166387,'auguria',1,'','left','hrm',161102,NULL,NULL,5,'/expensereport/index.php?leftmenu=expensereport','','TripsAndExpenses',NULL,'trips',0,'expensereport','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166388,'auguria',1,'','left','hrm',166387,NULL,NULL,1,'/expensereport/card.php?action=create&leftmenu=expensereport','','New',NULL,'trips',1,'','$user->rights->expensereport->creer','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166389,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/list.php?leftmenu=expensereport','','List',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166390,'auguria',1,'','left','hrm',166389,NULL,NULL,2,'/expensereport/list.php?search_status=2&leftmenu=expensereport','','ListToApprove',NULL,'trips',2,'','$user->rights->expensereport->approve','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166391,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/stats/index.php?leftmenu=expensereport','','Statistics',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(167182,'all',1,'knowledgemanagement','left','ticket',-1,NULL,'ticket',101,'/knowledgemanagement/knowledgerecord_list.php','','MenuKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_knowledgerecord','$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167183,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',111,'/knowledgemanagement/knowledgerecord_list.php','','ListKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_list','$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167184,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',110,'/knowledgemanagement/knowledgerecord_card.php?action=create','','NewKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_new','$user->rights->knowledgemanagement->knowledgerecord->write','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167185,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',112,'/categories/index.php?type=13','','Categories','','knowledgemanagement',NULL,NULL,'$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',0,'2022-02-07 13:39:27'),(167331,'all',1,'agenda','top','agenda',0,NULL,NULL,86,'/comm/action/index.php','','TMenuAgenda','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read || $user->rights->resource->read','$conf->agenda->enabled || $conf->resource->enabled',2,'2022-12-11 21:23:42'),(167332,'all',1,'agenda','left','agenda',167331,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167333,'all',1,'agenda','left','agenda',167332,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction','','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167334,'all',1,'agenda','left','agenda',167332,NULL,NULL,140,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda','','Calendar','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167335,'all',1,'agenda','left','agenda',167334,NULL,NULL,141,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167336,'all',1,'agenda','left','agenda',167334,NULL,NULL,142,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167337,'all',1,'agenda','left','agenda',167334,NULL,NULL,143,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=todo&filtert=-1','','MenuToDoActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167338,'all',1,'agenda','left','agenda',167334,NULL,NULL,144,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=done&filtert=-1','','MenuDoneActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167339,'all',1,'agenda','left','agenda',167332,NULL,NULL,110,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda','','List','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167340,'all',1,'agenda','left','agenda',167339,NULL,NULL,111,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167341,'all',1,'agenda','left','agenda',167339,NULL,NULL,112,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167342,'all',1,'agenda','left','agenda',167339,NULL,NULL,113,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=todo&filtert=-1','','MenuToDoActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167343,'all',1,'agenda','left','agenda',167339,NULL,NULL,114,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=done&filtert=-1','','MenuDoneActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167344,'all',1,'agenda','left','agenda',167332,NULL,NULL,160,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167345,'all',1,'agenda','left','agenda',167332,NULL,NULL,170,'/categories/index.php?mainmenu=agenda&leftmenu=agenda&type=10','','Categories','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->categorie->enabled',2,'2022-12-11 21:23:42'),(167346,'all',1,'barcode','left','tools',-1,NULL,'tools',200,'/barcode/printsheet.php?mainmenu=tools&leftmenu=barcodeprint','','BarCodePrintsheet','','products',NULL,'barcodeprint','$user->hasRight(\"barcode\", \"read\")','isModEnabled(\"barcode\")',0,'2022-12-11 21:23:42'),(167347,'all',1,'barcode','left','home',-1,'admintools','home',300,'/barcode/codeinit.php?mainmenu=home&leftmenu=admintools','','MassBarcodeInit','','products',NULL,NULL,'$user->admin','isModEnabled(\"barcode\") && preg_match(\'/^(admintools|all)/\',$leftmenu)',0,'2022-12-11 21:23:42'),(167348,'all',1,'cron','left','home',-1,'admintools','home',500,'/cron/list.php?leftmenu=admintools','','CronList','','cron',NULL,NULL,'$user->rights->cron->read','$conf->cron->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',2,'2022-12-11 21:23:42'),(167349,'all',1,'blockedlog','left','tools',-1,NULL,'tools',200,'/blockedlog/admin/blockedlog_list.php?mainmenu=tools&leftmenu=blockedlogbrowser','','BrowseBlockedLog','','blockedlog',NULL,'blockedlogbrowser','$user->rights->blockedlog->read','$conf->blockedlog->enabled',2,'2022-12-11 21:23:42'),(167350,'all',1,'ecm','top','ecm',0,NULL,NULL,82,'/ecm/index.php','','MenuECM','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup','$conf->ecm->enabled',2,'2022-12-11 21:23:42'),(167351,'all',1,'ecm','left','ecm',-1,NULL,'ecm',101,'/ecm/index.php?mainmenu=ecm&leftmenu=ecm','','ECMArea','','ecm',NULL,'ecm','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2022-12-11 21:23:42'),(167352,'all',1,'ecm','left','ecm',-1,'ecm','ecm',102,'/ecm/index.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsManual','','ecm',NULL,'ecm_manual','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2022-12-11 21:23:42'),(167353,'all',1,'ecm','left','ecm',-1,'ecm','ecm',103,'/ecm/index_auto.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsAuto','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && getDolGlobalInt(\"ECM_AUTO_TREE_ENABLED\")',2,'2022-12-11 21:23:42'),(167354,'all',1,'ecm','left','ecm',-1,'ecm','ecm',104,'/ecm/index_medias.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsMedias','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && getDolGlobalInt(\"MAIN_FEATURES_LEVEL\") == 2',2,'2022-12-11 21:23:42'),(167355,'all',1,'margins','left','billing',-1,NULL,'billing',100,'/margin/index.php','','Margins','','margins',NULL,'margins','$user->rights->margins->liretous','$conf->margin->enabled',2,'2022-12-11 21:23:43'),(167356,'all',1,'opensurvey','left','tools',-1,NULL,'tools',200,'/opensurvey/index.php?mainmenu=tools&leftmenu=opensurvey','','Survey','','opensurvey',NULL,'opensurvey','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2022-12-11 21:23:43'),(167357,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',210,'/opensurvey/wizard/index.php','','NewSurvey','','opensurvey',NULL,'opensurvey_new','$user->rights->opensurvey->write','$conf->opensurvey->enabled',0,'2022-12-11 21:23:43'),(167358,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',220,'/opensurvey/list.php','','List','','opensurvey',NULL,'opensurvey_list','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2022-12-11 21:23:43'),(167359,'all',1,'printing','left','home',-1,'admintools','home',300,'/printing/index.php?mainmenu=home&leftmenu=admintools','','MenuDirectPrinting','','printing',NULL,NULL,'$user->rights->printing->read','$conf->printing->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',0,'2022-12-11 21:23:43'),(167360,'all',1,'recruitment','left','hrm',-1,NULL,'hrm',1001,'/recruitment/index.php','','Recruitment','','recruitment',NULL,'recruitmentjobposition','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167361,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1002,'/recruitment/recruitmentjobposition_card.php?action=create','','NewPositionToBeFilled','','recruitment',NULL,'recruitment_recruitmentjobposition_new','$user->rights->recruitment->recruitmentjobposition->write','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167362,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1003,'/recruitment/recruitmentjobposition_list.php','','ListOfPositionsToBeFilled','','recruitment',NULL,'recruitment_recruitmentjobposition_list','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167363,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1004,'/recruitment/recruitmentcandidature_card.php?action=create','','NewCandidature','','recruitment',NULL,'recruitment_recruitmentcandidature_new','$user->rights->recruitment->recruitmentjobposition->write','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167364,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1005,'/recruitment/recruitmentcandidature_list.php','','ListOfCandidatures','','recruitment',NULL,'recruitment_recruitmentcandidature_list','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167365,'all',1,'resource','left','agenda',-1,NULL,'agenda',100,'/resource/list.php','','MenuResourceIndex','','resource',NULL,'resource','$user->rights->resource->read','1',0,'2022-12-11 21:23:43'),(167366,'all',1,'resource','left','agenda',-1,'resource','agenda',101,'/resource/card.php?action=create','','MenuResourceAdd','','resource',NULL,'resource_add','$user->rights->resource->write','1',0,'2022-12-11 21:23:43'),(167367,'all',1,'resource','left','agenda',-1,'resource','agenda',102,'/resource/list.php','','List','','resource',NULL,'resource_list','$user->rights->resource->read','1',0,'2022-12-11 21:23:43'),(167368,'all',1,'stripe','left','bank',-1,NULL,'bank',100,'','','StripeAccount','','stripe',NULL,'stripe','$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167369,'all',1,'stripe','left','bank',-1,'stripe','bank',102,'/stripe/charge.php','','StripeChargeList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167370,'all',1,'stripe','left','bank',-1,'stripe','bank',102,'/stripe/transaction.php','','StripeTransactionList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167371,'all',1,'stripe','left','bank',-1,'stripe','bank',103,'/stripe/payout.php','','StripePayoutList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167372,'all',1,'ticket','left','ticket',-1,NULL,'ticket',101,'/ticket/index.php','','Ticket','','ticket',NULL,'ticket','$user->rights->ticket->read','$conf->ticket->enabled',2,'2022-12-11 21:23:44'),(167373,'all',1,'ticket','left','ticket',-1,'ticket','ticket',102,'/ticket/card.php?action=create','','NewTicket','','ticket',NULL,NULL,'$user->rights->ticket->write','$conf->ticket->enabled',2,'2022-12-11 21:23:44'),(167374,'all',1,'ticket','left','ticket',-1,'ticket','ticket',103,'/ticket/list.php?search_fk_status=non_closed','','List','','ticket',NULL,'ticketlist','$user->rights->ticket->read','$conf->ticket->enabled',2,'2022-12-11 21:23:44'),(167375,'all',1,'ticket','left','ticket',-1,'ticket','ticket',105,'/ticket/list.php?mode=mine&search_fk_status=non_closed','','MenuTicketMyAssign','','ticket',NULL,'ticketmy','$user->rights->ticket->read','$conf->ticket->enabled',0,'2022-12-11 21:23:44'),(167376,'all',1,'ticket','left','ticket',-1,'ticket','ticket',107,'/ticket/stats/index.php','','Statistics','','ticket',NULL,NULL,'$user->rights->ticket->read','$conf->ticket->enabled',0,'2022-12-11 21:23:44'),(167377,'all',1,'ticket','left','ticket',-1,'ticket','ticket',107,'/categories/index.php?type=12','','Categories','','ticket',NULL,NULL,'$user->rights->ticket->read','$conf->categorie->enabled',0,'2022-12-11 21:23:44'),(167378,'all',1,'takepos','top','takepos',0,NULL,NULL,1001,'/takepos/index.php','takepos','PointOfSaleShort','','cashdesk',NULL,NULL,'$user->rights->takepos->run','$conf->takepos->enabled',2,'2022-12-11 21:23:44'),(167379,'all',1,'website','top','website',0,NULL,NULL,100,'/website/index.php','','WebSites','','website',NULL,NULL,'$user->rights->website->read','$conf->website->enabled',2,'2022-12-11 21:23:44'); /*!40000 ALTER TABLE `llx_menu` ENABLE KEYS */; UNLOCK TABLES; @@ -8364,20 +8971,20 @@ DROP TABLE IF EXISTS `llx_mrp_mo`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_mrp_mo` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '(PROV)', + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `qty` double NOT NULL, `fk_warehouse` int(11) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `status` int(11) NOT NULL, `fk_product` int(11) NOT NULL, `date_start_planned` datetime DEFAULT NULL, @@ -8386,8 +8993,9 @@ CREATE TABLE `llx_mrp_mo` ( `fk_project` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `mrptype` int(11) DEFAULT 0, + `fk_parent_line` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_mrp_mo_ref` (`ref`), KEY `idx_mrp_mo_entity` (`entity`), @@ -8400,7 +9008,7 @@ CREATE TABLE `llx_mrp_mo` ( KEY `idx_mrp_mo_fk_bom` (`fk_bom`), KEY `idx_mrp_mo_fk_project` (`fk_project`), CONSTRAINT `fk_mrp_mo_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8409,7 +9017,7 @@ CREATE TABLE `llx_mrp_mo` ( LOCK TABLES `llx_mrp_mo` WRITE; /*!40000 ALTER TABLE `llx_mrp_mo` DISABLE KEYS */; -INSERT INTO `llx_mrp_mo` VALUES (5,'MO1912-0002',1,'Build 2 apple pies for CIO birthday',3,2,10,NULL,NULL,'2019-12-20 16:42:08','2020-01-13 11:29:30',12,12,NULL,NULL,3,4,NULL,NULL,6,7,'2019-12-20 20:32:09',12,NULL,0),(8,'MO1912-0001',1,NULL,1,NULL,NULL,NULL,NULL,'2019-12-20 17:01:21','2019-12-20 13:25:47',12,NULL,NULL,NULL,1,3,NULL,NULL,6,NULL,'2019-12-20 17:25:47',12,NULL,0),(14,'MO2001-0003',1,NULL,10,NULL,NULL,NULL,'Production very dangerous','2020-01-02 23:46:54','2020-01-06 02:48:22',12,12,NULL,NULL,2,4,NULL,NULL,6,NULL,'2020-01-02 23:57:42',12,NULL,0),(18,'MO2001-0004',1,NULL,2,2,NULL,NULL,NULL,'2020-01-03 13:34:34','2020-01-03 10:10:41',12,12,NULL,NULL,1,4,NULL,NULL,6,NULL,'2020-01-03 14:10:41',12,NULL,0),(22,'(PROV22)',1,'label',1,NULL,26,NULL,NULL,'2020-01-08 19:42:15','2020-01-08 15:42:15',12,NULL,NULL,NULL,0,4,'2020-01-08 16:41:00','2020-01-08 17:41:00',6,6,NULL,NULL,NULL,0),(23,'(PROV23)',1,NULL,1,NULL,26,NULL,NULL,'2020-01-08 19:45:04','2020-01-08 15:45:04',12,NULL,NULL,NULL,0,4,'2020-01-08 16:42:00','2020-01-08 17:42:00',6,6,NULL,NULL,NULL,0),(24,'MO2001-0006',1,NULL,1,NULL,26,NULL,NULL,'2020-01-08 19:46:41','2020-01-13 11:13:19',12,NULL,NULL,NULL,2,4,NULL,NULL,6,6,'2020-01-13 15:11:54',12,NULL,0),(26,'(PROV26)',1,NULL,1,NULL,NULL,NULL,NULL,'2020-01-08 19:49:22','2020-01-08 15:49:22',12,NULL,NULL,NULL,0,4,NULL,NULL,6,NULL,NULL,NULL,NULL,0),(27,'(PROV27)',1,NULL,1,NULL,NULL,NULL,NULL,'2020-01-08 19:49:50','2020-01-08 15:49:50',12,NULL,NULL,NULL,0,4,NULL,NULL,6,NULL,NULL,NULL,NULL,0),(28,'MO2001-0005',1,NULL,1,NULL,NULL,NULL,NULL,'2020-01-08 20:09:40','2020-01-08 16:21:22',12,NULL,NULL,NULL,2,4,NULL,NULL,6,NULL,'2020-01-08 20:12:55',12,NULL,0),(29,'(PROV29)',1,NULL,3,NULL,NULL,NULL,NULL,'2020-01-08 21:00:55','2020-01-08 17:00:55',12,NULL,NULL,NULL,0,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO `llx_mrp_mo` VALUES (5,'MO1912-0002',1,'Build 2 apple pies for CIO birthday',3,2,10,NULL,NULL,'2019-12-20 16:42:08','2020-01-13 11:29:30',12,12,NULL,NULL,3,4,NULL,NULL,6,7,'2019-12-20 20:32:09',12,NULL,0,NULL),(8,'MO1912-0001',1,NULL,1,NULL,NULL,NULL,NULL,'2019-12-20 17:01:21','2019-12-20 13:25:47',12,NULL,NULL,NULL,1,3,NULL,NULL,6,NULL,'2019-12-20 17:25:47',12,NULL,0,NULL),(14,'MO2001-0003',1,NULL,10,NULL,NULL,NULL,'Production very dangerous','2020-01-02 23:46:54','2020-01-06 02:48:22',12,12,NULL,NULL,2,4,NULL,NULL,6,NULL,'2020-01-02 23:57:42',12,NULL,0,NULL),(18,'MO2001-0004',1,NULL,2,2,NULL,NULL,NULL,'2020-01-03 13:34:34','2020-01-03 10:10:41',12,12,NULL,NULL,1,4,NULL,NULL,6,NULL,'2020-01-03 14:10:41',12,NULL,0,NULL),(22,'(PROV22)',1,'label',1,NULL,26,NULL,NULL,'2020-01-08 19:42:15','2020-01-08 15:42:15',12,NULL,NULL,NULL,0,4,'2020-01-08 16:41:00','2020-01-08 17:41:00',6,6,NULL,NULL,NULL,0,NULL),(23,'(PROV23)',1,NULL,1,NULL,26,NULL,NULL,'2020-01-08 19:45:04','2020-01-08 15:45:04',12,NULL,NULL,NULL,0,4,'2020-01-08 16:42:00','2020-01-08 17:42:00',6,6,NULL,NULL,NULL,0,NULL),(24,'MO2001-0006',1,NULL,1,NULL,26,NULL,NULL,'2020-01-08 19:46:41','2020-01-13 11:13:19',12,NULL,NULL,NULL,2,4,NULL,NULL,6,6,'2020-01-13 15:11:54',12,NULL,0,NULL),(26,'(PROV26)',1,NULL,1,NULL,NULL,NULL,NULL,'2020-01-08 19:49:22','2020-01-08 15:49:22',12,NULL,NULL,NULL,0,4,NULL,NULL,6,NULL,NULL,NULL,NULL,0,NULL),(27,'(PROV27)',1,NULL,1,NULL,NULL,NULL,NULL,'2020-01-08 19:49:50','2020-01-08 15:49:50',12,NULL,NULL,NULL,0,4,NULL,NULL,6,NULL,NULL,NULL,NULL,0,NULL),(28,'MO2001-0005',1,NULL,1,NULL,NULL,NULL,NULL,'2020-01-08 20:09:40','2020-01-08 16:21:22',12,NULL,NULL,NULL,2,4,NULL,NULL,6,NULL,'2020-01-08 20:12:55',12,NULL,0,NULL),(29,'(PROV29)',1,NULL,3,NULL,NULL,NULL,NULL,'2020-01-08 21:00:55','2020-01-08 17:00:55',12,NULL,NULL,NULL,0,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL); /*!40000 ALTER TABLE `llx_mrp_mo` ENABLE KEYS */; UNLOCK TABLES; @@ -8424,10 +9032,10 @@ CREATE TABLE `llx_mrp_mo_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_mrp_mo_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8450,20 +9058,20 @@ CREATE TABLE `llx_mrp_production` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_mo` int(11) NOT NULL, `origin_id` int(11) DEFAULT NULL, - `origin_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `origin_type` varchar(10) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, `fk_product` int(11) NOT NULL, `fk_warehouse` int(11) DEFAULT NULL, `qty` double NOT NULL DEFAULT 1, - `batch` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `role` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, + `role` varchar(10) DEFAULT NULL, `fk_mrp_production` int(11) DEFAULT NULL, `fk_stock_movement` int(11) DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `qty_frozen` smallint(6) DEFAULT 0, `disable_stock_change` smallint(6) DEFAULT 0, PRIMARY KEY (`rowid`), @@ -8473,7 +9081,7 @@ CREATE TABLE `llx_mrp_production` ( CONSTRAINT `fk_mrp_production_mo` FOREIGN KEY (`fk_mo`) REFERENCES `llx_mrp_mo` (`rowid`), CONSTRAINT `fk_mrp_production_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`), CONSTRAINT `fk_mrp_production_stock_movement` FOREIGN KEY (`fk_stock_movement`) REFERENCES `llx_stock_mouvement` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=214 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=214 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8496,12 +9104,12 @@ DROP TABLE IF EXISTS `llx_multicurrency`; CREATE TABLE `llx_multicurrency` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `date_create` datetime DEFAULT NULL, - `code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `code` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, `entity` int(11) DEFAULT 1, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8528,7 +9136,7 @@ CREATE TABLE `llx_multicurrency_rate` ( `fk_multicurrency` int(11) NOT NULL, `entity` int(11) DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8556,13 +9164,13 @@ CREATE TABLE `llx_notify` ( `fk_soc` int(11) DEFAULT NULL, `fk_contact` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, - `objet_type` varchar(24) COLLATE utf8_unicode_ci NOT NULL, + `objet_type` varchar(24) NOT NULL, `objet_id` int(11) NOT NULL, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'email', - `type_target` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `type` varchar(16) DEFAULT 'email', + `type_target` varchar(16) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8589,9 +9197,9 @@ CREATE TABLE `llx_notify_def` ( `fk_soc` int(11) DEFAULT NULL, `fk_contact` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, - `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'email', + `type` varchar(16) DEFAULT 'email', PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8613,14 +9221,14 @@ DROP TABLE IF EXISTS `llx_notify_def_object`; CREATE TABLE `llx_notify_def_object` ( `id` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `objet_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `objet_type` varchar(16) DEFAULT NULL, `objet_id` int(11) NOT NULL, - `type_notif` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'browser', + `type_notif` varchar(16) DEFAULT 'browser', `date_notif` datetime DEFAULT NULL, `user_id` int(11) DEFAULT NULL, - `moreparam` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `moreparam` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8641,13 +9249,13 @@ DROP TABLE IF EXISTS `llx_oauth_state`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_oauth_state` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `service` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL, - `state` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `service` varchar(36) DEFAULT NULL, + `state` varchar(128) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_adherent` int(11) DEFAULT NULL, `entity` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8668,18 +9276,19 @@ DROP TABLE IF EXISTS `llx_oauth_token`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_oauth_token` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `service` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL, - `token` text COLLATE utf8_unicode_ci DEFAULT NULL, + `service` varchar(36) DEFAULT NULL, + `token` text DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_adherent` int(11) DEFAULT NULL, `entity` int(11) DEFAULT NULL, - `tokenstring` text COLLATE utf8_unicode_ci DEFAULT NULL, - `restricted_ips` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, + `tokenstring` text DEFAULT NULL, + `state` text DEFAULT NULL, + `restricted_ips` varchar(200) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8701,14 +9310,14 @@ DROP TABLE IF EXISTS `llx_object_lang`; CREATE TABLE `llx_object_lang` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_object` int(11) NOT NULL DEFAULT 0, - `type_object` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `property` varchar(32) COLLATE utf8_unicode_ci NOT NULL, - `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', - `value` text COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `type_object` varchar(32) NOT NULL, + `property` varchar(32) NOT NULL, + `lang` varchar(5) NOT NULL DEFAULT '0', + `value` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_object_lang` (`fk_object`,`type_object`,`property`,`lang`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8730,15 +9339,15 @@ DROP TABLE IF EXISTS `llx_onlinesignature`; CREATE TABLE `llx_onlinesignature` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `object_type` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `object_type` varchar(32) NOT NULL, `object_id` int(11) NOT NULL, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `ip` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `pathoffile` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `name` varchar(255) NOT NULL, + `ip` varchar(128) DEFAULT NULL, + `pathoffile` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8759,13 +9368,15 @@ DROP TABLE IF EXISTS `llx_opensurvey_comments`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_opensurvey_comments` ( `id_comment` int(10) unsigned NOT NULL AUTO_INCREMENT, - `id_sondage` char(16) COLLATE utf8_unicode_ci NOT NULL, - `comment` text COLLATE utf8_unicode_ci NOT NULL, - `usercomment` text COLLATE utf8_unicode_ci DEFAULT NULL, + `id_sondage` char(16) NOT NULL, + `comment` text NOT NULL, + `usercomment` text DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, + `date_creation` datetime DEFAULT NULL, PRIMARY KEY (`id_comment`), KEY `idx_id_comment` (`id_comment`), KEY `idx_id_sondage` (`id_sondage`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8774,7 +9385,7 @@ CREATE TABLE `llx_opensurvey_comments` ( LOCK TABLES `llx_opensurvey_comments` WRITE; /*!40000 ALTER TABLE `llx_opensurvey_comments` DISABLE KEYS */; -INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa'),(5,'434dio8rxfljs3p1','aaa','aaa'),(6,'434dio8rxfljs3p1','gfh','jj'),(11,'434dio8rxfljs3p1','fsdf','fdsf'),(12,'3imby4hf7joiilsu','fsdf','aa'),(16,'3imby4hf7joiilsu','gdfg','gfdg'),(17,'3imby4hf7joiilsu','gfdgd','gdfgd'),(18,'om4e7azfiurnjtqe','fds','fdsf'),(26,'qgsfrgb922rqzocy','gfdg','gfdg'),(27,'qgsfrgb922rqzocy','gfdg','gfd'),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds'); +INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa',NULL,NULL),(5,'434dio8rxfljs3p1','aaa','aaa',NULL,NULL),(6,'434dio8rxfljs3p1','gfh','jj',NULL,NULL),(11,'434dio8rxfljs3p1','fsdf','fdsf',NULL,NULL),(12,'3imby4hf7joiilsu','fsdf','aa',NULL,NULL),(16,'3imby4hf7joiilsu','gdfg','gfdg',NULL,NULL),(17,'3imby4hf7joiilsu','gfdgd','gdfgd',NULL,NULL),(18,'om4e7azfiurnjtqe','fds','fdsf',NULL,NULL),(26,'qgsfrgb922rqzocy','gfdg','gfdg',NULL,NULL),(27,'qgsfrgb922rqzocy','gfdg','gfd',NULL,NULL),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds',NULL,NULL); /*!40000 ALTER TABLE `llx_opensurvey_comments` ENABLE KEYS */; UNLOCK TABLES; @@ -8787,11 +9398,11 @@ DROP TABLE IF EXISTS `llx_opensurvey_formquestions`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_opensurvey_formquestions` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `id_sondage` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, - `question` text COLLATE utf8_unicode_ci DEFAULT NULL, - `available_answers` text COLLATE utf8_unicode_ci DEFAULT NULL, + `id_sondage` varchar(16) DEFAULT NULL, + `question` text DEFAULT NULL, + `available_answers` text DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8811,24 +9422,24 @@ DROP TABLE IF EXISTS `llx_opensurvey_sondage`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_opensurvey_sondage` ( - `id_sondage` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `commentaires` text COLLATE utf8_unicode_ci DEFAULT NULL, - `mail_admin` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `nom_admin` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `id_sondage` varchar(16) NOT NULL, + `commentaires` text DEFAULT NULL, + `mail_admin` varchar(128) DEFAULT NULL, + `nom_admin` varchar(64) DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, - `titre` text COLLATE utf8_unicode_ci NOT NULL, + `titre` text NOT NULL, `date_fin` datetime DEFAULT NULL, `status` int(11) DEFAULT 1, - `format` varchar(2) COLLATE utf8_unicode_ci NOT NULL, + `format` varchar(2) NOT NULL, `mailsonde` tinyint(4) NOT NULL DEFAULT 0, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `entity` int(11) NOT NULL DEFAULT 1, `allow_comments` tinyint(4) NOT NULL DEFAULT 1, `allow_spy` tinyint(4) NOT NULL DEFAULT 1, - `sujet` text COLLATE utf8_unicode_ci DEFAULT NULL, + `sujet` text DEFAULT NULL, PRIMARY KEY (`id_sondage`), KEY `idx_date_fin` (`date_fin`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8851,8 +9462,8 @@ DROP TABLE IF EXISTS `llx_opensurvey_user_formanswers`; CREATE TABLE `llx_opensurvey_user_formanswers` ( `fk_user_survey` int(11) NOT NULL, `fk_question` int(11) NOT NULL, - `reponses` text COLLATE utf8_unicode_ci DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + `reponses` text DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8873,9 +9484,11 @@ DROP TABLE IF EXISTS `llx_opensurvey_user_studs`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_opensurvey_user_studs` ( `id_users` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(64) COLLATE utf8_unicode_ci NOT NULL, - `id_sondage` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `reponses` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `nom` varchar(64) NOT NULL, + `id_sondage` varchar(16) NOT NULL, + `reponses` varchar(200) NOT NULL, + `ip` varchar(250) DEFAULT NULL, + `date_creation` datetime DEFAULT NULL, PRIMARY KEY (`id_users`), KEY `idx_id_users` (`id_users`), KEY `idx_nom` (`nom`), @@ -8883,7 +9496,7 @@ CREATE TABLE `llx_opensurvey_user_studs` ( KEY `idx_opensurvey_user_studs_id_users` (`id_users`), KEY `idx_opensurvey_user_studs_nom` (`nom`), KEY `idx_opensurvey_user_studs_id_sondage` (`id_sondage`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8892,7 +9505,7 @@ CREATE TABLE `llx_opensurvey_user_studs` ( LOCK TABLES `llx_opensurvey_user_studs` WRITE; /*!40000 ALTER TABLE `llx_opensurvey_user_studs` DISABLE KEYS */; -INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01'),(2,'aa','3imby4hf7joiilsu','210'),(3,'fsdf','z2qcqjh5pm1q4p99','0110'),(5,'hfghf','z2qcqjh5pm1q4p99','1110'),(6,'qqqq','ah9xvaqu1ajjrqse','000111'),(7,'hjgh','ah9xvaqu1ajjrqse','000010'),(8,'bcvb','qgsfrgb922rqzocy','011000'),(9,'gdfg','ah9xvaqu1ajjrqse','001000'),(10,'ggg','ah9xvaqu1ajjrqse','000100'),(11,'gfdgd','ah9xvaqu1ajjrqse','001000'),(12,'hhhh','ah9xvaqu1ajjrqse','010000'),(13,'iii','ah9xvaqu1ajjrqse','000100'),(14,'kkk','ah9xvaqu1ajjrqse','001000'),(15,'lllll','ah9xvaqu1ajjrqse','000001'),(16,'kk','ah9xvaqu1ajjrqse','000001'),(17,'gggg','ah9xvaqu1ajjrqse','001000'),(18,'mmmm','ah9xvaqu1ajjrqse','000000'),(19,'jkjkj','ah9xvaqu1ajjrqse','000001'),(20,'azerty','8mcdnf2hgcntfibe','012'),(21,'hfghfg','8mcdnf2hgcntfibe','012'),(22,'fd','ckanvbe7kt3rdb3h','10'),(25,'John Doe','m4467s2mtk6khmxc','1'),(26,'Martial Bill','m4467s2mtk6khmxc','01'),(27,'Marissa Campbell','m4467s2mtk6khmxc','11'),(28,'Leonard Cast','m4467s2mtk6khmxc','01'),(29,'John Doe','tim1dye8x5eeetxu','01'),(30,'Eldy','tim1dye8x5eeetxu','11'); +INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01',NULL,NULL),(2,'aa','3imby4hf7joiilsu','210',NULL,NULL),(3,'fsdf','z2qcqjh5pm1q4p99','0110',NULL,NULL),(5,'hfghf','z2qcqjh5pm1q4p99','1110',NULL,NULL),(6,'qqqq','ah9xvaqu1ajjrqse','000111',NULL,NULL),(7,'hjgh','ah9xvaqu1ajjrqse','000010',NULL,NULL),(8,'bcvb','qgsfrgb922rqzocy','011000',NULL,NULL),(9,'gdfg','ah9xvaqu1ajjrqse','001000',NULL,NULL),(10,'ggg','ah9xvaqu1ajjrqse','000100',NULL,NULL),(11,'gfdgd','ah9xvaqu1ajjrqse','001000',NULL,NULL),(12,'hhhh','ah9xvaqu1ajjrqse','010000',NULL,NULL),(13,'iii','ah9xvaqu1ajjrqse','000100',NULL,NULL),(14,'kkk','ah9xvaqu1ajjrqse','001000',NULL,NULL),(15,'lllll','ah9xvaqu1ajjrqse','000001',NULL,NULL),(16,'kk','ah9xvaqu1ajjrqse','000001',NULL,NULL),(17,'gggg','ah9xvaqu1ajjrqse','001000',NULL,NULL),(18,'mmmm','ah9xvaqu1ajjrqse','000000',NULL,NULL),(19,'jkjkj','ah9xvaqu1ajjrqse','000001',NULL,NULL),(20,'azerty','8mcdnf2hgcntfibe','012',NULL,NULL),(21,'hfghfg','8mcdnf2hgcntfibe','012',NULL,NULL),(22,'fd','ckanvbe7kt3rdb3h','10',NULL,NULL),(25,'John Doe','m4467s2mtk6khmxc','1',NULL,NULL),(26,'Martial Bill','m4467s2mtk6khmxc','01',NULL,NULL),(27,'Marissa Campbell','m4467s2mtk6khmxc','11',NULL,NULL),(28,'Leonard Cast','m4467s2mtk6khmxc','01',NULL,NULL),(29,'John Doe','tim1dye8x5eeetxu','01',NULL,NULL),(30,'Eldy','tim1dye8x5eeetxu','11',NULL,NULL); /*!40000 ALTER TABLE `llx_opensurvey_user_studs` ENABLE KEYS */; UNLOCK TABLES; @@ -8906,12 +9519,12 @@ DROP TABLE IF EXISTS `llx_overwrite_trans`; CREATE TABLE `llx_overwrite_trans` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, - `transkey` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `transvalue` text COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(5) DEFAULT NULL, + `transkey` varchar(128) DEFAULT NULL, + `transvalue` text DEFAULT NULL, PRIMARY KEY (`rowid`), - UNIQUE KEY `uk_overwrite_trans` (`lang`,`transkey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + UNIQUE KEY `uk_overwrite_trans` (`entity`,`lang`,`transkey`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8934,9 +9547,9 @@ CREATE TABLE `llx_packages_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8957,16 +9570,16 @@ DROP TABLE IF EXISTS `llx_paiement`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_paiement` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL DEFAULT '', + `ref_ext` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datep` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `fk_paiement` int(11) NOT NULL, - `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL DEFAULT 0, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -8974,10 +9587,10 @@ CREATE TABLE `llx_paiement` ( `fk_export_compta` int(11) NOT NULL DEFAULT 0, `pos_change` double(24,8) DEFAULT 0.00000000, `multicurrency_amount` double(24,8) DEFAULT 0.00000000, - `ext_payment_id` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `ext_payment_site` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `ext_payment_id` varchar(255) DEFAULT NULL, + `ext_payment_site` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8986,7 +9599,7 @@ CREATE TABLE `llx_paiement` ( LOCK TABLES `llx_paiement` WRITE; /*!40000 ALTER TABLE `llx_paiement` DISABLE KEYS */; -INSERT INTO `llx_paiement` VALUES (3,'',NULL,1,'2013-07-18 20:50:47','2021-07-11 17:49:28','2021-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(5,'',NULL,1,'2013-08-01 03:34:11','2022-02-07 13:37:54','2021-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(6,'',NULL,1,'2013-08-06 20:33:54','2022-02-07 13:37:54','2021-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(8,'',NULL,1,'2013-08-08 02:53:40','2022-02-07 13:37:54','2021-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(9,'',NULL,1,'2013-08-08 02:55:58','2022-02-07 13:37:54','2021-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(17,'',NULL,1,'2014-12-09 15:28:44','2022-02-07 13:37:54','2021-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(18,'',NULL,1,'2014-12-09 15:28:53','2022-02-07 13:37:54','2021-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(19,'',NULL,1,'2014-12-09 17:35:55','2022-02-07 13:37:54','2021-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(20,'',NULL,1,'2014-12-09 17:37:02','2022-02-07 13:37:54','2021-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(21,'',NULL,1,'2014-12-09 18:35:07','2022-02-07 13:37:54','2021-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(23,'',NULL,1,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(24,'',NULL,1,'2015-03-06 16:48:16','2021-04-15 10:22:31','2021-03-06 00:00:00',20.00000000,4,'','Adhésion/cotisation 2016',22,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(25,'',NULL,1,'2015-03-20 14:30:11','2021-04-15 10:22:31','2021-03-20 00:00:00',10.00000000,2,'','Adhésion/cotisation 2011',23,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(26,'',NULL,1,'2016-03-02 19:57:58','2021-07-11 17:49:28','2021-07-09 12:00:00',605.00000000,2,'','',24,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(29,'',NULL,1,'2016-03-02 20:01:39','2021-04-15 10:22:31','2021-03-19 12:00:00',500.00000000,4,'','',26,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(30,'',NULL,1,'2016-03-02 20:02:06','2021-04-15 10:22:31','2021-03-21 12:00:00',400.00000000,2,'','',27,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(32,'',NULL,1,'2016-03-03 19:22:32','2022-02-07 13:37:54','2021-10-03 12:00:00',-400.00000000,4,'','',28,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(33,'',NULL,1,'2016-03-03 19:23:16','2021-04-15 10:22:31','2021-03-10 12:00:00',-300.00000000,4,'','',29,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(34,'PAY1603-0001',NULL,1,'2017-02-06 08:10:24','2021-04-15 10:22:31','2021-03-22 12:00:00',150.00000000,7,'','',33,12,NULL,0,0,0.00000000,150.00000000,NULL,NULL),(35,'PAY1603-0002',NULL,1,'2017-02-06 08:10:50','2021-04-15 10:22:31','2021-03-25 12:00:00',140.00000000,3,'','',34,12,NULL,0,0,0.00000000,140.00000000,NULL,NULL),(36,'PAY1702-0003',NULL,1,'2017-02-21 16:07:43','2021-04-15 10:22:31','2021-02-21 12:00:00',50.00000000,3,'T170201','',37,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(38,'PAY1803-0004',NULL,1,'2018-03-16 13:59:31','2021-04-15 10:22:31','2021-03-16 12:00:00',10.00000000,7,'','',39,12,NULL,0,0,0.00000000,10.00000000,NULL,NULL),(39,'PAY1801-0005',NULL,1,'2019-10-04 10:28:14','2022-02-07 13:37:54','2022-01-19 12:00:00',5.63000000,4,'','',41,12,NULL,0,0,0.00000000,5.63000000,NULL,NULL),(40,'PAY2001-0006',NULL,1,'2020-01-16 02:36:48','2022-02-07 13:37:54','2022-01-16 12:00:00',20.50000000,2,'','',50,12,NULL,0,0,0.00000000,20.50000000,NULL,NULL),(41,'PAY2001-0007',NULL,1,'2020-01-21 10:23:17','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,7,'','Subscription 2017',53,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(42,'PAY2001-0008',NULL,1,'2020-01-21 10:23:28','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,7,'','Subscription 2018',54,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(43,'PAY2001-0009',NULL,1,'2020-01-21 10:23:49','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,6,'','Subscription 2019',55,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL); +INSERT INTO `llx_paiement` VALUES (3,'',NULL,1,'2013-07-18 20:50:47','2022-12-11 21:23:22','2022-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(5,'',NULL,1,'2013-08-01 03:34:11','2022-12-11 21:23:22','2022-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(6,'',NULL,1,'2013-08-06 20:33:54','2022-12-11 21:23:22','2022-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(8,'',NULL,1,'2013-08-08 02:53:40','2022-12-11 21:23:22','2022-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(9,'',NULL,1,'2013-08-08 02:55:58','2022-12-11 21:23:22','2022-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(17,'',NULL,1,'2014-12-09 15:28:44','2022-12-11 21:23:22','2022-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(18,'',NULL,1,'2014-12-09 15:28:53','2022-12-11 21:23:22','2022-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(19,'',NULL,1,'2014-12-09 17:35:55','2022-12-11 21:23:22','2022-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(20,'',NULL,1,'2014-12-09 17:37:02','2022-12-11 21:23:22','2022-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(21,'',NULL,1,'2014-12-09 18:35:07','2022-12-11 21:23:22','2022-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(23,'',NULL,1,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(24,'',NULL,1,'2015-03-06 16:48:16','2022-07-04 01:11:35','2022-03-06 00:00:00',20.00000000,4,'','Adhésion/cotisation 2016',22,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(25,'',NULL,1,'2015-03-20 14:30:11','2022-07-04 01:11:35','2022-03-20 00:00:00',10.00000000,2,'','Adhésion/cotisation 2011',23,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(26,'',NULL,1,'2016-03-02 19:57:58','2022-12-11 21:23:22','2022-07-09 12:00:00',605.00000000,2,'','',24,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(29,'',NULL,1,'2016-03-02 20:01:39','2022-07-04 01:11:35','2022-03-19 12:00:00',500.00000000,4,'','',26,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(30,'',NULL,1,'2016-03-02 20:02:06','2022-07-04 01:11:35','2022-03-21 12:00:00',400.00000000,2,'','',27,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(32,'',NULL,1,'2016-03-03 19:22:32','2022-12-11 21:23:22','2022-10-03 12:00:00',-400.00000000,4,'','',28,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(33,'',NULL,1,'2016-03-03 19:23:16','2022-07-04 01:11:35','2022-03-10 12:00:00',-300.00000000,4,'','',29,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(34,'PAY1603-0001',NULL,1,'2017-02-06 08:10:24','2022-07-04 01:11:35','2022-03-22 12:00:00',150.00000000,7,'','',33,12,NULL,0,0,0.00000000,150.00000000,NULL,NULL),(35,'PAY1603-0002',NULL,1,'2017-02-06 08:10:50','2022-07-04 01:11:35','2022-03-25 12:00:00',140.00000000,3,'','',34,12,NULL,0,0,0.00000000,140.00000000,NULL,NULL),(36,'PAY1702-0003',NULL,1,'2017-02-21 16:07:43','2022-07-04 01:11:35','2022-02-21 12:00:00',50.00000000,3,'T170201','',37,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(38,'PAY1803-0004',NULL,1,'2018-03-16 13:59:31','2022-07-04 01:11:35','2022-03-16 12:00:00',10.00000000,7,'','',39,12,NULL,0,0,0.00000000,10.00000000,NULL,NULL),(39,'PAY1801-0005',NULL,1,'2019-10-04 10:28:14','2022-02-07 13:37:54','2022-01-19 12:00:00',5.63000000,4,'','',41,12,NULL,0,0,0.00000000,5.63000000,NULL,NULL),(40,'PAY2001-0006',NULL,1,'2020-01-16 02:36:48','2022-02-07 13:37:54','2022-01-16 12:00:00',20.50000000,2,'','',50,12,NULL,0,0,0.00000000,20.50000000,NULL,NULL),(41,'PAY2001-0007',NULL,1,'2020-01-21 10:23:17','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,7,'','Subscription 2017',53,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(42,'PAY2001-0008',NULL,1,'2020-01-21 10:23:28','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,7,'','Subscription 2018',54,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(43,'PAY2001-0009',NULL,1,'2020-01-21 10:23:49','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,6,'','Subscription 2019',55,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL); /*!40000 ALTER TABLE `llx_paiement` ENABLE KEYS */; UNLOCK TABLES; @@ -9003,7 +9616,7 @@ CREATE TABLE `llx_paiement_facture` ( `fk_facture` int(11) DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `multicurrency_amount` double(24,8) DEFAULT 0.00000000, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_paiement_facture` (`fk_paiement`,`fk_facture`), @@ -9011,7 +9624,7 @@ CREATE TABLE `llx_paiement_facture` ( KEY `idx_paiement_facture_fk_paiement` (`fk_paiement`), CONSTRAINT `fk_paiement_facture_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`), CONSTRAINT `fk_paiement_facture_fk_paiement` FOREIGN KEY (`fk_paiement`) REFERENCES `llx_paiement` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9039,13 +9652,13 @@ CREATE TABLE `llx_paiementcharge` ( `datep` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `fk_typepaiement` int(11) NOT NULL, - `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9067,7 +9680,7 @@ DROP TABLE IF EXISTS `llx_paiementfourn`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_paiementfourn` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `entity` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -9076,14 +9689,14 @@ CREATE TABLE `llx_paiementfourn` ( `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_paiement` int(11) NOT NULL, - `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, `multicurrency_amount` double(24,8) DEFAULT 0.00000000, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9109,13 +9722,13 @@ CREATE TABLE `llx_paiementfourn_facturefourn` ( `fk_facturefourn` int(11) DEFAULT NULL, `amount` double DEFAULT 0, `multicurrency_amount` double(24,8) DEFAULT 0.00000000, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_paiementfourn_facturefourn` (`fk_paiementfourn`,`fk_facturefourn`), KEY `idx_paiementfourn_facturefourn_fk_facture` (`fk_facturefourn`), KEY `idx_paiementfourn_facturefourn_fk_paiement` (`fk_paiementfourn`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9137,27 +9750,31 @@ DROP TABLE IF EXISTS `llx_partnership`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_partnership` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '(PROV)', + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', `status` smallint(6) NOT NULL DEFAULT 0, `fk_soc` int(11) DEFAULT NULL, `fk_member` int(11) DEFAULT NULL, `date_partnership_start` date NOT NULL, `date_partnership_end` date DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `reason_decline_or_cancel` text COLLATE utf8_unicode_ci DEFAULT NULL, + `reason_decline_or_cancel` text DEFAULT NULL, `date_creation` datetime NOT NULL, - `fk_user_creat` int(11) NOT NULL, + `fk_user_creat` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_modif` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `count_last_url_check_error` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `last_check_backlink` datetime DEFAULT NULL, `fk_type` int(11) NOT NULL DEFAULT 0, + `url_to_check` varchar(255) DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_fk_type_fk_soc` (`fk_type`,`fk_soc`,`date_partnership_start`), + UNIQUE KEY `uk_fk_type_fk_member` (`fk_type`,`fk_member`,`date_partnership_start`), KEY `idx_partnership_rowid` (`rowid`), KEY `idx_partnership_ref` (`ref`), KEY `idx_partnership_fk_soc` (`fk_soc`), @@ -9165,7 +9782,7 @@ CREATE TABLE `llx_partnership` ( KEY `idx_partnership_status` (`status`), KEY `idx_partnership_fk_member` (`fk_member`), CONSTRAINT `llx_partnership_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9188,10 +9805,10 @@ CREATE TABLE `llx_partnership_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_partnership_fk_object` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9218,15 +9835,15 @@ CREATE TABLE `llx_payment_donation` ( `datep` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `ext_payment_id` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `ext_payment_site` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, + `ext_payment_id` varchar(255) DEFAULT NULL, + `ext_payment_site` varchar(128) DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9254,13 +9871,13 @@ CREATE TABLE `llx_payment_expensereport` ( `datep` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9290,14 +9907,14 @@ CREATE TABLE `llx_payment_loan` ( `amount_insurance` double(24,8) DEFAULT NULL, `amount_interest` double(24,8) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9318,7 +9935,7 @@ DROP TABLE IF EXISTS `llx_payment_salary`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_payment_salary` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, @@ -9328,12 +9945,12 @@ CREATE TABLE `llx_payment_salary` ( `amount` double(24,8) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `datesp` date DEFAULT NULL, `dateep` date DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9345,7 +9962,7 @@ CREATE TABLE `llx_payment_salary` ( KEY `idx_payment_salary_datesp` (`datesp`), KEY `idx_payment_salary_dateep` (`dateep`), CONSTRAINT `fk_payment_salary_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9369,10 +9986,10 @@ CREATE TABLE `llx_payment_salary_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_payment_salary_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9393,7 +10010,7 @@ DROP TABLE IF EXISTS `llx_payment_various`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_payment_various` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `datep` date DEFAULT NULL, @@ -9401,18 +10018,18 @@ CREATE TABLE `llx_payment_various` ( `sens` smallint(6) NOT NULL DEFAULT 0, `amount` double(24,8) NOT NULL DEFAULT 0.00000000, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `subledger_account` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9440,13 +10057,13 @@ CREATE TABLE `llx_payment_vat` ( `datep` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT 0.00000000, `fk_typepaiement` int(11) NOT NULL, - `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9468,8 +10085,8 @@ DROP TABLE IF EXISTS `llx_pos_cash_fence`; CREATE TABLE `llx_pos_cash_fence` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(64) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `opening` double(24,8) DEFAULT 0.00000000, `cash` double(24,8) DEFAULT 0.00000000, `card` double(24,8) DEFAULT 0.00000000, @@ -9480,14 +10097,14 @@ CREATE TABLE `llx_pos_cash_fence` ( `day_close` int(11) DEFAULT NULL, `month_close` int(11) DEFAULT NULL, `year_close` int(11) DEFAULT NULL, - `posmodule` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `posnumber` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `posmodule` varchar(30) DEFAULT NULL, + `posnumber` varchar(30) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9500,6 +10117,35 @@ INSERT INTO `llx_pos_cash_fence` VALUES (1,1,'1',NULL,-324.29000000,400.00000000 /*!40000 ALTER TABLE `llx_pos_cash_fence` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_prelevement` +-- + +DROP TABLE IF EXISTS `llx_prelevement`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_facture` int(11) DEFAULT NULL, + `fk_prelevement_lignes` int(11) NOT NULL, + `fk_facture_fourn` int(11) DEFAULT NULL, + `fk_salary` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_prelevement_fk_prelevement_lignes` (`fk_prelevement_lignes`), + CONSTRAINT `fk_prelevement_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement` +-- + +LOCK TABLES `llx_prelevement` WRITE; +/*!40000 ALTER TABLE `llx_prelevement` DISABLE KEYS */; +INSERT INTO `llx_prelevement` VALUES (1,211,1,NULL,NULL); +/*!40000 ALTER TABLE `llx_prelevement` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_prelevement_bons` -- @@ -9509,22 +10155,22 @@ DROP TABLE IF EXISTS `llx_prelevement_bons`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_prelevement_bons` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(12) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `statut` smallint(6) DEFAULT 0, `credite` smallint(6) DEFAULT 0, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `date_trans` datetime DEFAULT NULL, `method_trans` smallint(6) DEFAULT NULL, `fk_user_trans` int(11) DEFAULT NULL, `date_credit` datetime DEFAULT NULL, `fk_user_credit` int(11) DEFAULT NULL, - `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'debit-order', + `type` varchar(16) DEFAULT 'debit-order', PRIMARY KEY (`rowid`), UNIQUE KEY `uk_prelevement_bons_ref` (`ref`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9538,41 +10184,13 @@ INSERT INTO `llx_prelevement_bons` VALUES (1,'T170201',1,'2017-02-21 15:53:46',5 UNLOCK TABLES; -- --- Table structure for table `llx_prelevement_facture` +-- Table structure for table `llx_prelevement_demande` -- -DROP TABLE IF EXISTS `llx_prelevement_facture`; +DROP TABLE IF EXISTS `llx_prelevement_demande`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `llx_prelevement_facture` ( - `rowid` int(11) NOT NULL AUTO_INCREMENT, - `fk_facture` int(11) DEFAULT NULL, - `fk_prelevement_lignes` int(11) NOT NULL, - `fk_facture_fourn` int(11) DEFAULT NULL, - PRIMARY KEY (`rowid`), - KEY `idx_prelevement_facture_fk_prelevement_lignes` (`fk_prelevement_lignes`), - CONSTRAINT `fk_prelevement_facture_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `llx_prelevement_facture` --- - -LOCK TABLES `llx_prelevement_facture` WRITE; -/*!40000 ALTER TABLE `llx_prelevement_facture` DISABLE KEYS */; -INSERT INTO `llx_prelevement_facture` VALUES (1,211,1,NULL); -/*!40000 ALTER TABLE `llx_prelevement_facture` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `llx_prelevement_facture_demande` --- - -DROP TABLE IF EXISTS `llx_prelevement_facture_demande`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `llx_prelevement_facture_demande` ( +CREATE TABLE `llx_prelevement_demande` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_facture` int(11) DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, @@ -9581,29 +10199,30 @@ CREATE TABLE `llx_prelevement_facture_demande` ( `date_traite` datetime DEFAULT NULL, `fk_prelevement_bons` int(11) DEFAULT NULL, `fk_user_demande` int(11) NOT NULL, - `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, `entity` int(11) DEFAULT NULL, - `sourcetype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `ext_payment_id` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `ext_payment_site` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `sourcetype` varchar(32) DEFAULT NULL, + `ext_payment_id` varchar(255) DEFAULT NULL, + `ext_payment_site` varchar(128) DEFAULT NULL, `fk_facture_fourn` int(11) DEFAULT NULL, + `fk_salary` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), - KEY `idx_prelevement_facture_demande_fk_facture` (`fk_facture`), - KEY `idx_prelevement_facture_demande_fk_facture_fourn` (`fk_facture_fourn`) -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + KEY `idx_prelevement_demande_fk_facture` (`fk_facture`), + KEY `idx_prelevement_demande_fk_facture_fourn` (`fk_facture_fourn`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `llx_prelevement_facture_demande` +-- Dumping data for table `llx_prelevement_demande` -- -LOCK TABLES `llx_prelevement_facture_demande` WRITE; -/*!40000 ALTER TABLE `llx_prelevement_facture_demande` DISABLE KEYS */; -INSERT INTO `llx_prelevement_facture_demande` VALUES (1,211,50.00000000,'2017-02-06 08:11:17',1,'2017-02-21 15:53:46',1,12,'','','','',NULL,NULL,NULL,NULL,NULL),(2,5,NULL,'2020-01-01 14:35:21',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4XtGr4FnPvt5gmHCi23hC','StripeTest',NULL),(3,6,NULL,'2020-01-01 14:50:42',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4mkGr4FnPvt5gaMAjhU23','StripeTest',NULL),(4,7,NULL,'2020-01-01 14:59:09',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4uvGr4FnPvt5gPJHfyUQt','StripeTest',NULL),(5,8,NULL,'2020-01-01 15:08:10',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw53eGr4FnPvt5gY0i3EWWR','StripeTest',NULL),(6,9,NULL,'2020-01-01 15:27:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5M6Gr4FnPvt5gyICZxNY7','StripeTest',NULL),(7,10,NULL,'2020-01-01 15:36:11',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5UlGr4FnPvt5gdsfT25YK','StripeTest',NULL),(8,11,NULL,'2020-01-01 15:44:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5cYGr4FnPvt5ggY1HBL2m','StripeTest',NULL),(9,12,NULL,'2020-01-01 16:52:06',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw6gDGr4FnPvt5gjuuxU6K3','StripeTest',NULL); -/*!40000 ALTER TABLE `llx_prelevement_facture_demande` ENABLE KEYS */; +LOCK TABLES `llx_prelevement_demande` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_demande` DISABLE KEYS */; +INSERT INTO `llx_prelevement_demande` VALUES (1,211,50.00000000,'2017-02-06 08:11:17',1,'2017-02-21 15:53:46',1,12,'','','','',NULL,NULL,NULL,NULL,NULL,NULL),(2,5,NULL,'2020-01-01 14:35:21',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4XtGr4FnPvt5gmHCi23hC','StripeTest',NULL,NULL),(3,6,NULL,'2020-01-01 14:50:42',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4mkGr4FnPvt5gaMAjhU23','StripeTest',NULL,NULL),(4,7,NULL,'2020-01-01 14:59:09',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4uvGr4FnPvt5gPJHfyUQt','StripeTest',NULL,NULL),(5,8,NULL,'2020-01-01 15:08:10',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw53eGr4FnPvt5gY0i3EWWR','StripeTest',NULL,NULL),(6,9,NULL,'2020-01-01 15:27:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5M6Gr4FnPvt5gyICZxNY7','StripeTest',NULL,NULL),(7,10,NULL,'2020-01-01 15:36:11',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5UlGr4FnPvt5gdsfT25YK','StripeTest',NULL,NULL),(8,11,NULL,'2020-01-01 15:44:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5cYGr4FnPvt5ggY1HBL2m','StripeTest',NULL,NULL),(9,12,NULL,'2020-01-01 16:52:06',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw6gDGr4FnPvt5gjuuxU6K3','StripeTest',NULL,NULL); +/*!40000 ALTER TABLE `llx_prelevement_demande` ENABLE KEYS */; UNLOCK TABLES; -- @@ -9618,17 +10237,17 @@ CREATE TABLE `llx_prelevement_lignes` ( `fk_prelevement_bons` int(11) DEFAULT NULL, `fk_soc` int(11) NOT NULL, `statut` smallint(6) DEFAULT 0, - `client_nom` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `client_nom` varchar(255) DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, - `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `note` text DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_prelevement_lignes_fk_prelevement_bons` (`fk_prelevement_bons`), CONSTRAINT `fk_prelevement_lignes_fk_prelevement_bons` FOREIGN KEY (`fk_prelevement_bons`) REFERENCES `llx_prelevement_bons` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9655,11 +10274,11 @@ CREATE TABLE `llx_prelevement_rejet` ( `motif` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_creation` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `afacturer` tinyint(4) DEFAULT 0, `fk_facture` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9682,15 +10301,15 @@ CREATE TABLE `llx_printing` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, - `printer_name` text COLLATE utf8_unicode_ci NOT NULL, - `printer_location` text COLLATE utf8_unicode_ci NOT NULL, - `printer_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `printer_name` text NOT NULL, + `printer_location` text NOT NULL, + `printer_id` varchar(255) NOT NULL, `copy` int(11) NOT NULL DEFAULT 1, - `module` varchar(16) COLLATE utf8_unicode_ci NOT NULL, - `driver` varchar(16) COLLATE utf8_unicode_ci NOT NULL, + `module` varchar(16) NOT NULL, + `driver` varchar(16) NOT NULL, `userid` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9715,44 +10334,45 @@ CREATE TABLE `llx_product` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `virtual` tinyint(4) NOT NULL DEFAULT 0, `fk_parent` int(11) DEFAULT 0, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `customcode` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(128) DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `customcode` varchar(32) DEFAULT NULL, `fk_country` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT 0.00000000, `price_ttc` double(24,8) DEFAULT 0.00000000, `price_min` double(24,8) DEFAULT 0.00000000, `price_min_ttc` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `tosell` tinyint(4) DEFAULT 1, `tobuy` tinyint(4) DEFAULT 1, `onportal` smallint(6) DEFAULT 0, `tobatch` tinyint(4) NOT NULL DEFAULT 0, + `sell_or_eat_by_mandatory` tinyint(4) NOT NULL DEFAULT 0, `fk_product_type` int(11) DEFAULT 0, - `duration` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, + `duration` varchar(6) DEFAULT NULL, `seuil_stock_alerte` float DEFAULT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, - `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_sell_intra` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_sell_export` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy_intra` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy_export` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `partnumber` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_sell_intra` varchar(32) DEFAULT NULL, + `accountancy_code_sell_export` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `accountancy_code_buy_intra` varchar(32) DEFAULT NULL, + `accountancy_code_buy_export` varchar(32) DEFAULT NULL, + `partnumber` varchar(32) DEFAULT NULL, `weight` float DEFAULT NULL, `weight_units` tinyint(4) DEFAULT NULL, `length` float DEFAULT NULL, @@ -9765,18 +10385,18 @@ CREATE TABLE `llx_product` ( `pmp` double(24,8) NOT NULL DEFAULT 0.00000000, `fifo` double(24,8) DEFAULT NULL, `lifo` double(24,8) DEFAULT NULL, - `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT 'default@product', + `canvas` varchar(32) DEFAULT 'default@product', `finished` tinyint(4) DEFAULT NULL, `hidden` tinyint(4) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `desiredstock` float DEFAULT NULL, `fk_price_expression` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `cost_price` double(24,8) DEFAULT NULL, - `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `price_autogen` smallint(6) DEFAULT 0, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT '', + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT '', `width` float DEFAULT NULL, `width_units` tinyint(4) DEFAULT NULL, `height` float DEFAULT NULL, @@ -9786,11 +10406,12 @@ CREATE TABLE `llx_product` ( `net_measure` float DEFAULT NULL, `net_measure_units` tinyint(4) DEFAULT NULL, `fk_state` int(11) DEFAULT NULL, - `batch_mask` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch_mask` varchar(32) DEFAULT NULL, `lifetime` int(11) DEFAULT NULL, `qc_frequency` int(11) DEFAULT NULL, `mandatory_period` tinyint(4) DEFAULT 0, `fk_default_bom` int(11) DEFAULT NULL, + `fk_default_workstation` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_ref` (`ref`,`entity`), UNIQUE KEY `uk_product_barcode` (`barcode`,`fk_barcode_type`,`entity`), @@ -9810,7 +10431,7 @@ CREATE TABLE `llx_product` ( CONSTRAINT `fk_product_finished` FOREIGN KEY (`finished`) REFERENCES `llx_c_product_nature` (`code`), CONSTRAINT `fk_product_fk_country` FOREIGN KEY (`fk_country`) REFERENCES `llx_c_country` (`rowid`), CONSTRAINT `fk_product_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9819,7 +10440,7 @@ CREATE TABLE `llx_product` ( LOCK TABLES `llx_product` WRITE; /*!40000 ALTER TABLE `llx_product` DISABLE KEYS */; -INSERT INTO `llx_product` VALUES (1,'2012-07-08 14:33:17','2020-01-18 19:17:03',0,0,'PINKDRESS',1,NULL,'Pink dress','A beatifull pink dress','','',NULL,9.00000000,10.12500000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,12,1,1,0,1,0,'',NULL,NULL,'123456789066',2,'','','','',NULL,NULL,NULL,670,-3,NULL,0,NULL,0,NULL,0,2.8,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(2,'2012-07-09 00:30:01','2019-11-28 15:09:50',0,0,'PEARPIE',1,NULL,'Pear Pie','','','',NULL,10.00000000,12.00000000,8.33333000,10.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',1,12,1,1,0,0,0,'',NULL,NULL,'123456789077',2,'','','','',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,998,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(3,'2012-07-09 00:30:25','2018-01-16 16:40:03',0,0,'CAKECONTRIB',1,NULL,'Cake making contribution','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,1,'1m',NULL,NULL,'123456789088',2,'701CAKEM',NULL,NULL,'601CAKEM',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(4,'2012-07-10 14:44:06','2021-04-15 11:40:18',0,0,'APPLEPIE',1,NULL,'Apple Pie','Nice Bio Apple Pie.
\r\n ','','',NULL,9.00000000,9.00000000,6.00000000,6.00000000,'HT',0.000,0,9.000,'1',9.000,'1',1,12,1,1,0,1,0,'',NULL,NULL,'123456789034',2,'701','','','601',NULL,NULL,NULL,500,-3,NULL,0,NULL,0,NULL,0,1021.2,10.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,'CGST+SGST',0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(5,'2013-07-20 23:11:38','2018-01-16 16:18:24',0,0,'DOLIDROID',1,NULL,'DoliDroid, Android app for Dolibarr','DoliDroid is the Android front-end client for Dolibarr ERP & CRM web software.
\r\nThis application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP & CRM software (an Open-source web software to manage your business).
\r\n

The advantage of DoliDroid are :
\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.
\r\n- Upgrading Dolibarr will not break DoliDroid.
\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.
\r\n- DoliDroid use internal cache for pages that should not change (like menu page)
\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.
\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)

\r\n\r\n

WARNING ! 

\r\n\r\n

This application need Android 4.0+ and a hosted Dolibarr ERP & CRM version 3.5 or newer accessible by internet
\r\n(For example, when hosted on any SaaS solution like DoliCloud - http://www.dolicloud.com).

','','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,'https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','123456789023',2,'701',NULL,NULL,'601',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(10,'2011-12-31 00:00:00','2017-02-16 00:12:09',0,0,'COMP-XP4523',1,NULL,'Computer XP4523','A powerfull computer XP4523 ','This product is imported.
\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',NULL,12,1,1,0,1,0,'',150,NULL,'123456789055',2,'701OLDC',NULL,NULL,'601OLDC',NULL,NULL,NULL,1.7,0,NULL,0,NULL,0,NULL,0,110,0.00000000,NULL,NULL,NULL,NULL,0,'20110729232310',200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(11,'2015-01-13 20:24:42','2019-10-08 17:21:07',0,0,'ROLLUPABC',1,NULL,'Rollup Dolibarr','A nice rollup','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,'0',0.000,'0',1,12,1,1,0,0,0,'',NULL,NULL,'123456789044',2,'','','','',NULL,NULL,NULL,95,-3,NULL,0,2.34,-4,NULL,0,-1,0.00000000,NULL,NULL,'',1,0,NULL,NULL,NULL,NULL,12.00000000,NULL,0,NULL,'',NULL,8,NULL,8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(12,'2018-07-30 17:31:29','2018-07-30 13:35:02',0,0,'DOLICLOUD',1,NULL,'SaaS service of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','','',NULL,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,1,'',NULL,'http://www.dolicloud.com','123456789013',2,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,8.50000000,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(13,'2017-02-16 03:49:00','2017-02-15 23:49:27',0,0,'COMP-XP4548',1,NULL,'Computer XP4523','A powerfull computer XP4523 ','This product is imported.
\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,12,1,1,0,1,0,'',150,NULL,NULL,2,'',NULL,NULL,'',NULL,NULL,NULL,1.7,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(23,'2019-10-07 00:00:00','2019-11-28 13:51:35',0,0,'PREF123456',1,NULL,'Product name in default language','Product description in default language','a private note (free text)','customs code',1,100.00000000,110.00000000,100.00000000,110.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,NULL,0,1,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-3,1,-1,4,-4,5,-3,NULL,0.00000000,NULL,NULL,NULL,0,0,'20191007122224',NULL,NULL,NULL,NULL,NULL,0,'a public note (free text)','',2,-1,3,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(24,'2019-11-28 16:33:35','2019-11-28 15:02:01',0,0,'POS-CARROT',1,NULL,'Carrot','','','',NULL,0.83333000,1.00000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(25,'2019-11-28 16:37:36','2020-01-13 11:13:19',0,0,'POS-APPLE',1,NULL,'Apple','','','',NULL,1.25000000,1.50000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,15.599999999999994,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(26,'2019-11-28 16:38:44','2019-11-28 12:38:44',0,0,'POS-KIWI',1,NULL,'Kiwi','','','',NULL,1.08333000,1.30000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(27,'2019-11-28 16:39:21','2019-11-28 14:57:44',0,0,'POS-PEACH',1,NULL,'Peach','','','',NULL,1.08333000,1.30000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(28,'2019-11-28 16:39:58','2019-11-28 12:39:58',0,0,'POS-ORANGE',1,NULL,'Orange','','','',NULL,2.00000000,2.40000000,0.00000000,0.00000000,'HT',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(29,'2019-11-28 17:03:14','2019-11-28 13:03:14',0,0,'POS-Eggs',1,NULL,'Eggs','','','',NULL,1.66667000,2.00000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(30,'2019-11-28 17:09:14','2019-11-28 13:09:14',0,0,'POS-Chips',1,NULL,'Chips','','','',NULL,0.41667000,0.50000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,30,-3,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(31,'2021-04-15 08:38:02','2021-04-15 11:38:02',0,0,'PRODSER',1,NULL,'Product NFC - Unique','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',12,12,1,1,0,2,0,'',0,NULL,NULL,2,'','','','','','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,0,NULL,NULL,NULL,NULL,0,NULL,'',NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL); +INSERT INTO `llx_product` VALUES (1,'2012-07-08 14:33:17','2020-01-18 19:17:03',0,0,'PINKDRESS',1,NULL,'Pink dress','A beatifull pink dress','','',NULL,9.00000000,10.12500000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,12,1,1,0,1,0,0,'',NULL,NULL,'123456789066',2,'','','','',NULL,NULL,NULL,670,-3,NULL,0,NULL,0,NULL,0,2.8,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(2,'2012-07-09 00:30:01','2019-11-28 15:09:50',0,0,'PEARPIE',1,NULL,'Pear Pie','','','',NULL,10.00000000,12.00000000,8.33333000,10.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',1,12,1,1,0,0,0,0,'',NULL,NULL,'123456789077',2,'','','','',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,998,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(3,'2012-07-09 00:30:25','2018-01-16 16:40:03',0,0,'CAKECONTRIB',1,NULL,'Cake making contribution','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,1,'1m',NULL,NULL,'123456789088',2,'701CAKEM',NULL,NULL,'601CAKEM',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(4,'2012-07-10 14:44:06','2021-04-15 11:40:18',0,0,'APPLEPIE',1,NULL,'Apple Pie','Nice Bio Apple Pie.
\r\n ','','',NULL,9.00000000,9.00000000,6.00000000,6.00000000,'HT',0.000,0,9.000,'1',9.000,'1',1,12,1,1,0,1,0,0,'',NULL,NULL,'123456789034',2,'701','','','601',NULL,NULL,NULL,500,-3,NULL,0,NULL,0,NULL,0,1021.2,10.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,'CGST+SGST',0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(5,'2013-07-20 23:11:38','2018-01-16 16:18:24',0,0,'DOLIDROID',1,NULL,'DoliDroid, Android app for Dolibarr','DoliDroid is the Android front-end client for Dolibarr ERP & CRM web software.
\r\nThis application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP & CRM software (an Open-source web software to manage your business).
\r\n

The advantage of DoliDroid are :
\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.
\r\n- Upgrading Dolibarr will not break DoliDroid.
\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.
\r\n- DoliDroid use internal cache for pages that should not change (like menu page)
\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.
\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)

\r\n\r\n

WARNING ! 

\r\n\r\n

This application need Android 4.0+ and a hosted Dolibarr ERP & CRM version 3.5 or newer accessible by internet
\r\n(For example, when hosted on any SaaS solution like DoliCloud - http://www.dolicloud.com).

','','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,0,'',NULL,'https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','123456789023',2,'701',NULL,NULL,'601',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(10,'2011-12-31 00:00:00','2017-02-16 00:12:09',0,0,'COMP-XP4523',1,NULL,'Computer XP4523','A powerfull computer XP4523 ','This product is imported.
\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',NULL,12,1,1,0,1,0,0,'',150,NULL,'123456789055',2,'701OLDC',NULL,NULL,'601OLDC',NULL,NULL,NULL,1.7,0,NULL,0,NULL,0,NULL,0,110,0.00000000,NULL,NULL,NULL,NULL,0,'20110729232310',200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(11,'2015-01-13 20:24:42','2019-10-08 17:21:07',0,0,'ROLLUPABC',1,NULL,'Rollup Dolibarr','A nice rollup','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,'0',0.000,'0',1,12,1,1,0,0,0,0,'',NULL,NULL,'123456789044',2,'','','','',NULL,NULL,NULL,95,-3,NULL,0,2.34,-4,NULL,0,-1,0.00000000,NULL,NULL,'',1,0,NULL,NULL,NULL,NULL,12.00000000,NULL,0,NULL,'',NULL,8,NULL,8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(12,'2018-07-30 17:31:29','2018-07-30 13:35:02',0,0,'DOLICLOUD',1,NULL,'SaaS service of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','','',NULL,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,1,'',NULL,'http://www.dolicloud.com','123456789013',2,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,8.50000000,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(13,'2017-02-16 03:49:00','2017-02-15 23:49:27',0,0,'COMP-XP4548',1,NULL,'Computer XP4523','A powerfull computer XP4523 ','This product is imported.
\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,12,1,1,0,1,0,0,'',150,NULL,NULL,2,'',NULL,NULL,'',NULL,NULL,NULL,1.7,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(23,'2019-10-07 00:00:00','2019-11-28 13:51:35',0,0,'PREF123456',1,NULL,'Product name in default language','Product description in default language','a private note (free text)','customs code',1,100.00000000,110.00000000,100.00000000,110.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,NULL,0,1,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-3,1,-1,4,-4,5,-3,NULL,0.00000000,NULL,NULL,NULL,0,0,'20191007122224',NULL,NULL,NULL,NULL,NULL,0,'a public note (free text)','',2,-1,3,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(24,'2019-11-28 16:33:35','2019-11-28 15:02:01',0,0,'POS-CARROT',1,NULL,'Carrot','','','',NULL,0.83333000,1.00000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(25,'2019-11-28 16:37:36','2020-01-13 11:13:19',0,0,'POS-APPLE',1,NULL,'Apple','','','',NULL,1.25000000,1.50000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,15.599999999999994,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(26,'2019-11-28 16:38:44','2019-11-28 12:38:44',0,0,'POS-KIWI',1,NULL,'Kiwi','','','',NULL,1.08333000,1.30000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(27,'2019-11-28 16:39:21','2019-11-28 14:57:44',0,0,'POS-PEACH',1,NULL,'Peach','','','',NULL,1.08333000,1.30000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(28,'2019-11-28 16:39:58','2019-11-28 12:39:58',0,0,'POS-ORANGE',1,NULL,'Orange','','','',NULL,2.00000000,2.40000000,0.00000000,0.00000000,'HT',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(29,'2019-11-28 17:03:14','2019-11-28 13:03:14',0,0,'POS-Eggs',1,NULL,'Eggs','','','',NULL,1.66667000,2.00000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(30,'2019-11-28 17:09:14','2019-11-28 13:09:14',0,0,'POS-Chips',1,NULL,'Chips','','','',NULL,0.41667000,0.50000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,30,-3,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(31,'2021-04-15 08:38:02','2021-04-15 11:38:02',0,0,'PRODSER',1,NULL,'Product NFC - Unique','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',12,12,1,1,0,2,0,0,'',0,NULL,NULL,2,'','','','','','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,0,NULL,NULL,NULL,NULL,0,NULL,'',NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL); /*!40000 ALTER TABLE `llx_product` ENABLE KEYS */; UNLOCK TABLES; @@ -9841,7 +10462,7 @@ CREATE TABLE `llx_product_association` ( UNIQUE KEY `uk_product_association` (`fk_product_pere`,`fk_product_fils`), KEY `idx_product_association` (`fk_product_fils`), KEY `idx_product_association_fils` (`fk_product_fils`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9863,15 +10484,15 @@ DROP TABLE IF EXISTS `llx_product_attribute`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_product_attribute` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `rang` int(11) NOT NULL DEFAULT 0, + `ref` varchar(255) NOT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `label` varchar(255) NOT NULL, + `position` int(11) NOT NULL DEFAULT 0, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_attribute_ref` (`ref`), UNIQUE KEY `unique_ref` (`ref`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9898,12 +10519,12 @@ CREATE TABLE `llx_product_attribute_combination` ( `variation_price` float NOT NULL, `variation_price_percentage` int(11) DEFAULT NULL, `variation_weight` float NOT NULL, - `variation_ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `variation_ref_ext` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), KEY `idx_product_att_com_product_parent` (`fk_product_parent`), KEY `idx_product_att_com_product_child` (`fk_product_child`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9928,7 +10549,7 @@ CREATE TABLE `llx_product_attribute_combination2val` ( `fk_prod_attr` int(11) NOT NULL, `fk_prod_attr_val` int(11) NOT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10003,7 +10624,7 @@ CREATE TABLE `llx_product_attribute_combination_price_level` ( UNIQUE KEY `fk_product_attribute_combinati_47` (`fk_product_attribute_combination`,`fk_price_level`), UNIQUE KEY `fk_product_attribute_combinati_48` (`fk_product_attribute_combination`,`fk_price_level`), UNIQUE KEY `fk_product_attribute_combinati_49` (`fk_product_attribute_combination`,`fk_price_level`) -) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10026,12 +10647,13 @@ DROP TABLE IF EXISTS `llx_product_attribute_value`; CREATE TABLE `llx_product_attribute_value` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_product_attribute` int(11) NOT NULL, - `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `value` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(180) NOT NULL, + `value` varchar(255) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, + `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_attribute_value` (`fk_product_attribute`,`ref`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10040,7 +10662,7 @@ CREATE TABLE `llx_product_attribute_value` ( LOCK TABLES `llx_product_attribute_value` WRITE; /*!40000 ALTER TABLE `llx_product_attribute_value` DISABLE KEYS */; -INSERT INTO `llx_product_attribute_value` VALUES (1,1,'BLUE','Blue',1),(2,1,'RED','Red',1),(3,2,'L','Size L',1),(4,2,'XL','Size XL',1),(5,2,'S','Size S',1); +INSERT INTO `llx_product_attribute_value` VALUES (1,1,'BLUE','Blue',1,0),(2,1,'RED','Red',1,0),(3,2,'L','Size L',1,0),(4,2,'XL','Size XL',1,0),(5,2,'S','Size S',1,0); /*!40000 ALTER TABLE `llx_product_attribute_value` ENABLE KEYS */; UNLOCK TABLES; @@ -10057,15 +10679,15 @@ CREATE TABLE `llx_product_batch` ( `fk_product_stock` int(11) NOT NULL, `eatby` datetime DEFAULT NULL, `sellby` datetime DEFAULT NULL, - `batch` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `qty` double NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_batch` (`fk_product_stock`,`batch`), KEY `idx_fk_product_stock` (`fk_product_stock`), KEY `idx_batch` (`batch`), CONSTRAINT `fk_product_batch_fk_product_stock` FOREIGN KEY (`fk_product_stock`) REFERENCES `llx_product_stock` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10096,17 +10718,17 @@ CREATE TABLE `llx_product_customer_price` ( `price_ttc` double(24,8) DEFAULT 0.00000000, `price_min` double(24,8) DEFAULT 0.00000000, `price_min_ttc` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) DEFAULT NULL, - `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_customer` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `ref_customer` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_customer_price_fk_product_fk_soc` (`fk_product`,`fk_soc`), KEY `idx_product_customer_price_fk_user` (`fk_user`), @@ -10117,7 +10739,7 @@ CREATE TABLE `llx_product_customer_price` ( CONSTRAINT `fk_product_customer_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`), CONSTRAINT `fk_product_customer_price_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_product_customer_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10147,19 +10769,19 @@ CREATE TABLE `llx_product_customer_price_log` ( `price_ttc` double(24,8) DEFAULT 0.00000000, `price_min` double(24,8) DEFAULT 0.00000000, `price_min_ttc` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, + `ref_customer` varchar(30) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10182,10 +10804,10 @@ CREATE TABLE `llx_product_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_product_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10210,8 +10832,8 @@ CREATE TABLE `llx_product_fournisseur_price` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_product` int(11) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `ref_fourn` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `desc_fourn` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_fourn` varchar(128) DEFAULT NULL, + `desc_fourn` text DEFAULT NULL, `fk_availability` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT 0.00000000, `quantity` double DEFAULT NULL, @@ -10220,27 +10842,27 @@ CREATE TABLE `llx_product_fournisseur_price` ( `unitprice` double(24,8) DEFAULT 0.00000000, `charges` double(24,8) DEFAULT 0.00000000, `tva_tx` double(6,3) NOT NULL DEFAULT 0.000, - `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `info_bits` int(11) NOT NULL DEFAULT 0, `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_supplier_price_expression` int(11) DEFAULT NULL, `fk_price_expression` int(11) DEFAULT NULL, `delivery_time_days` int(11) DEFAULT NULL, - `supplier_reputation` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `supplier_reputation` varchar(10) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_unitprice` double(24,8) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_price` double(24,8) DEFAULT NULL, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', - `barcode` varchar(180) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', + `barcode` varchar(180) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, - `packaging` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `packaging` varchar(64) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_fournisseur_price_ref` (`ref_fourn`,`fk_soc`,`quantity`,`entity`), UNIQUE KEY `uk_product_barcode` (`barcode`,`fk_barcode_type`,`entity`), @@ -10252,7 +10874,7 @@ CREATE TABLE `llx_product_fournisseur_price` ( CONSTRAINT `fk_product_fournisseur_price_barcode_type` FOREIGN KEY (`fk_barcode_type`) REFERENCES `llx_c_barcode_type` (`rowid`), CONSTRAINT `fk_product_fournisseur_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`), CONSTRAINT `fk_product_fournisseur_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10276,10 +10898,10 @@ CREATE TABLE `llx_product_fournisseur_price_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_product_fournisseur_price_extrafields` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10307,12 +10929,12 @@ CREATE TABLE `llx_product_fournisseur_price_log` ( `quantity` double DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_price` double(24,8) DEFAULT NULL, `multicurrency_unitprice` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10335,15 +10957,15 @@ DROP TABLE IF EXISTS `llx_product_lang`; CREATE TABLE `llx_product_lang` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_product` int(11) NOT NULL DEFAULT 0, - `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_lang` (`fk_product`,`lang`), CONSTRAINT `fk_product_lang_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10367,7 +10989,9 @@ CREATE TABLE `llx_product_lot` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, `fk_product` int(11) NOT NULL, - `batch` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -10378,11 +11002,11 @@ CREATE TABLE `llx_product_lot` ( `eol_date` datetime DEFAULT NULL, `manufacturing_date` datetime DEFAULT NULL, `scrapping_date` datetime DEFAULT NULL, - `barcode` varchar(180) COLLATE utf8_unicode_ci DEFAULT NULL, + `barcode` varchar(180) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_lot` (`fk_product`,`batch`) -) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10391,7 +11015,7 @@ CREATE TABLE `llx_product_lot` ( LOCK TABLES `llx_product_lot` WRITE; /*!40000 ALTER TABLE `llx_product_lot` DISABLE KEYS */; -INSERT INTO `llx_product_lot` VALUES (1,1,2,'123456','2018-07-07',NULL,'2018-07-21 20:55:19','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,1,2,'2222','2018-07-08','2018-07-07','2018-07-21 21:00:42','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,1,10,'5599887766452',NULL,NULL,'2018-07-30 17:39:31','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,1,10,'4494487766452',NULL,NULL,'2018-07-30 17:40:12','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(39,1,1,'000000',NULL,NULL,'2020-01-08 20:41:18','2020-01-08 16:41:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(40,1,4,'aaa','2020-01-01',NULL,'2020-01-08 20:41:18','2020-01-13 11:28:05',NULL,12,NULL,NULL,NULL,NULL,NULL,NULL),(46,1,1,'string',NULL,NULL,'2020-01-18 20:16:58','2020-01-18 19:16:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(47,1,4,'000000',NULL,NULL,'2020-01-08 16:40:27','2020-01-21 10:30:15',1,1,NULL,NULL,NULL,NULL,NULL,NULL),(50,1,4,'Lot 2021-02',NULL,NULL,'2021-04-15 08:40:18','2021-04-15 11:40:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO `llx_product_lot` VALUES (1,1,2,'123456',NULL,NULL,'2018-07-07',NULL,'2018-07-21 20:55:19','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,1,2,'2222',NULL,NULL,'2018-07-08','2018-07-07','2018-07-21 21:00:42','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,1,10,'5599887766452',NULL,NULL,NULL,NULL,'2018-07-30 17:39:31','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,1,10,'4494487766452',NULL,NULL,NULL,NULL,'2018-07-30 17:40:12','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(39,1,1,'000000',NULL,NULL,NULL,NULL,'2020-01-08 20:41:18','2020-01-08 16:41:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(40,1,4,'aaa',NULL,NULL,'2020-01-01',NULL,'2020-01-08 20:41:18','2020-01-13 11:28:05',NULL,12,NULL,NULL,NULL,NULL,NULL,NULL),(46,1,1,'string',NULL,NULL,NULL,NULL,'2020-01-18 20:16:58','2020-01-18 19:16:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(47,1,4,'000000',NULL,NULL,NULL,NULL,'2020-01-08 16:40:27','2020-01-21 10:30:15',1,1,NULL,NULL,NULL,NULL,NULL,NULL),(50,1,4,'Lot 2021-02',NULL,NULL,NULL,NULL,'2021-04-15 08:40:18','2021-04-15 11:40:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_product_lot` ENABLE KEYS */; UNLOCK TABLES; @@ -10406,10 +11030,10 @@ CREATE TABLE `llx_product_lot_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_product_lot_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10432,16 +11056,16 @@ CREATE TABLE `llx_product_perentity` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_product` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_sell_intra` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_sell_export` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy_intra` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy_export` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_sell_intra` varchar(32) DEFAULT NULL, + `accountancy_code_sell_export` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `accountancy_code_buy_intra` varchar(32) DEFAULT NULL, + `accountancy_code_buy_export` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_perentity` (`fk_product`,`entity`), KEY `idx_product_perentity_fk_product` (`fk_product`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10471,21 +11095,21 @@ CREATE TABLE `llx_product_price` ( `price_ttc` double(24,8) DEFAULT NULL, `price_min` double(24,8) DEFAULT NULL, `price_min_ttc` double(24,8) DEFAULT NULL, - `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) NOT NULL DEFAULT 0.000, - `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user_author` int(11) DEFAULT NULL, `tosell` tinyint(4) DEFAULT 1, `price_by_qty` int(11) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_price_expression` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_price` double(24,8) DEFAULT 0.00000000, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_price_ttc` double(24,8) DEFAULT NULL, @@ -10494,7 +11118,7 @@ CREATE TABLE `llx_product_price` ( KEY `idx_product_price_fk_product` (`fk_product`), CONSTRAINT `fk_product_price_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`), CONSTRAINT `fk_product_price_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10525,12 +11149,12 @@ CREATE TABLE `llx_product_price_by_qty` ( `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `quantity` double DEFAULT NULL, `unitprice` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_price` double(24,8) DEFAULT NULL, `multicurrency_price_ttc` double(24,8) DEFAULT NULL, @@ -10538,7 +11162,7 @@ CREATE TABLE `llx_product_price_by_qty` ( UNIQUE KEY `uk_product_price_by_qty_level` (`fk_product_price`,`quantity`), KEY `idx_product_price_by_qty_fk_product_price` (`fk_product_price`), CONSTRAINT `fk_product_price_by_qty_fk_product_price` FOREIGN KEY (`fk_product_price`) REFERENCES `llx_product_price` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10565,7 +11189,7 @@ CREATE TABLE `llx_product_pricerules` ( `var_min_percent` float NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `unique_level` (`level`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10590,12 +11214,12 @@ CREATE TABLE `llx_product_stock` ( `fk_product` int(11) NOT NULL, `fk_entrepot` int(11) NOT NULL, `reel` double DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_stock` (`fk_product`,`fk_entrepot`), KEY `idx_product_stock_fk_product` (`fk_product`), KEY `idx_product_stock_fk_entrepot` (`fk_entrepot`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10622,9 +11246,9 @@ CREATE TABLE `llx_product_warehouse_properties` ( `fk_entrepot` int(11) NOT NULL, `seuil_stock_alerte` float DEFAULT 0, `desiredstock` float DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10650,41 +11274,45 @@ CREATE TABLE `llx_projet` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `dateo` date DEFAULT NULL, `datee` date DEFAULT NULL, - `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `title` varchar(255) NOT NULL, + `description` text DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `public` int(11) DEFAULT NULL, `fk_statut` smallint(6) NOT NULL DEFAULT 0, `fk_opp_status` int(11) DEFAULT NULL, `opp_percent` double(5,2) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `budget_amount` double(24,8) DEFAULT NULL, `date_close` datetime DEFAULT NULL, `fk_user_close` int(11) DEFAULT NULL, `opp_amount` double(24,8) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `usage_bill_time` int(11) DEFAULT 0, `usage_opportunity` int(11) DEFAULT 0, `usage_task` int(11) DEFAULT 1, `usage_organize_event` int(11) DEFAULT 0, - `email_msgid` varchar(175) COLLATE utf8_unicode_ci DEFAULT NULL, + `email_msgid` varchar(175) DEFAULT NULL, `fk_opp_status_end` int(11) DEFAULT NULL, `accept_conference_suggestions` int(11) DEFAULT 0, `accept_booth_suggestions` int(11) DEFAULT 0, `price_registration` double(24,8) DEFAULT NULL, `price_booth` double(24,8) DEFAULT NULL, `max_attendees` int(11) DEFAULT 0, + `ip` varchar(250) DEFAULT NULL, + `date_start_event` datetime DEFAULT NULL, + `date_end_event` datetime DEFAULT NULL, + `location` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_projet_ref` (`ref`,`entity`), KEY `idx_projet_fk_soc` (`fk_soc`), CONSTRAINT `fk_projet_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10693,7 +11321,7 @@ CREATE TABLE `llx_projet` ( LOCK TABLES `llx_projet` WRITE; /*!40000 ALTER TABLE `llx_projet` DISABLE KEYS */; -INSERT INTO `llx_projet` VALUES (1,11,'2012-07-09 00:00:00','2017-10-05 20:51:28','2012-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,NULL,'gdfgdfg','baleine',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(2,13,'2012-07-09 00:00:00','2017-10-05 20:51:51','2012-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(3,1,'2012-07-09 00:00:00','2020-01-15 12:40:50','2012-07-09',NULL,'PROJINDIAN',1,'Project for Indian company move','',1,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(4,NULL,'2012-07-09 00:00:00','2012-07-08 22:50:49','2012-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(5,NULL,'2012-07-11 00:00:00','2020-01-15 12:27:15','2012-07-11','2013-07-14','RMLL',1,'Project management RMLL','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(6,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0001',1,'PROJALICE1','The Alice project number 1',12,0,1,2,20.00,NULL,NULL,NULL,NULL,5000.00000000,NULL,NULL,8000.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(7,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0002',1,'PROJALICE2','The Alice project number 2',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,'2017-02-01 16:24:31',12,7000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(8,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0003',1,'PROJALICE2','The Alice project number 3',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3550.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(9,4,'2018-07-31 00:00:00','2019-12-20 16:33:15','2018-07-31',NULL,'PJ1607-0004',1,'Project Top X','',12,0,2,2,27.00,NULL,NULL,NULL,NULL,NULL,'2019-12-20 20:33:15',12,4000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(10,1,'2019-12-21 19:46:33','2019-12-21 15:48:06','2019-12-21',NULL,'PJ1912-0005',1,'Contact for a new shop in Delhi','',12,0,1,1,20.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,18000.00000000,NULL,12,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(11,10,'2019-12-21 19:49:28','2019-12-21 16:10:21','2019-12-02','2019-12-13','PJ1912-0006',1,'Request for new development of logo','Request to redesign a new logo',12,0,1,4,60.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,6500.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(12,4,'2019-12-21 19:52:12','2019-12-21 15:52:12','2019-12-21',NULL,'PJ1912-0007',1,'Adding new tool for Customer Relationship Management','',12,1,0,1,0.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16000.00000000,NULL,NULL,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(13,26,'2019-12-21 19:53:21','2019-12-21 15:53:59','2019-12-21',NULL,'PJ1912-0008',1,'Cooking 100 apple pie for chrsitmas','',12,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0); +INSERT INTO `llx_projet` VALUES (1,11,'2012-07-09 00:00:00','2017-10-05 20:51:28','2012-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,NULL,'gdfgdfg','baleine',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(2,13,'2012-07-09 00:00:00','2017-10-05 20:51:51','2012-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(3,1,'2012-07-09 00:00:00','2020-01-15 12:40:50','2012-07-09',NULL,'PROJINDIAN',1,'Project for Indian company move','',1,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(4,NULL,'2012-07-09 00:00:00','2012-07-08 22:50:49','2012-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(5,NULL,'2012-07-11 00:00:00','2020-01-15 12:27:15','2012-07-11','2013-07-14','RMLL',1,'Project management RMLL','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(6,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0001',1,'PROJALICE1','The Alice project number 1',12,0,1,2,20.00,NULL,NULL,NULL,NULL,5000.00000000,NULL,NULL,8000.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(7,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0002',1,'PROJALICE2','The Alice project number 2',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,'2017-02-01 16:24:31',12,7000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(8,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0003',1,'PROJALICE2','The Alice project number 3',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3550.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(9,4,'2018-07-31 00:00:00','2019-12-20 16:33:15','2018-07-31',NULL,'PJ1607-0004',1,'Project Top X','',12,0,2,2,27.00,NULL,NULL,NULL,NULL,NULL,'2019-12-20 20:33:15',12,4000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(10,1,'2019-12-21 19:46:33','2019-12-21 15:48:06','2019-12-21',NULL,'PJ1912-0005',1,'Contact for a new shop in Delhi','',12,0,1,1,20.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,18000.00000000,NULL,12,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(11,10,'2019-12-21 19:49:28','2019-12-21 16:10:21','2019-12-02','2019-12-13','PJ1912-0006',1,'Request for new development of logo','Request to redesign a new logo',12,0,1,4,60.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,6500.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(12,4,'2019-12-21 19:52:12','2019-12-21 15:52:12','2019-12-21',NULL,'PJ1912-0007',1,'Adding new tool for Customer Relationship Management','',12,1,0,1,0.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16000.00000000,NULL,NULL,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(13,26,'2019-12-21 19:53:21','2019-12-21 15:53:59','2019-12-21',NULL,'PJ1912-0008',1,'Cooking 100 apple pie for chrsitmas','',12,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_projet` ENABLE KEYS */; UNLOCK TABLES; @@ -10708,11 +11336,11 @@ CREATE TABLE `llx_projet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `priority` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `priority` mediumtext DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_projet_extrafields` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10734,7 +11362,7 @@ DROP TABLE IF EXISTS `llx_projet_task`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_projet_task` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_projet` int(11) NOT NULL, `fk_task_parent` int(11) NOT NULL DEFAULT 0, @@ -10743,8 +11371,8 @@ CREATE TABLE `llx_projet_task` ( `dateo` datetime DEFAULT NULL, `datee` datetime DEFAULT NULL, `datev` datetime DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, `duration_effective` double DEFAULT 0, `planned_workload` double DEFAULT 0, `progress` int(11) DEFAULT 0, @@ -10753,11 +11381,12 @@ CREATE TABLE `llx_projet_task` ( `fk_user_creat` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, `fk_statut` smallint(6) NOT NULL DEFAULT 0, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `rang` int(11) DEFAULT 0, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `status` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_projet_task_ref` (`ref`,`entity`), KEY `idx_projet_task_fk_projet` (`fk_projet`), @@ -10766,7 +11395,7 @@ CREATE TABLE `llx_projet_task` ( CONSTRAINT `fk_projet_task_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), CONSTRAINT `fk_projet_task_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_projet_task_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10775,7 +11404,7 @@ CREATE TABLE `llx_projet_task` ( LOCK TABLES `llx_projet_task` WRITE; /*!40000 ALTER TABLE `llx_projet_task` DISABLE KEYS */; -INSERT INTO `llx_projet_task` VALUES (2,'2',1,5,0,'2012-07-11 16:23:53','2015-09-08 23:06:14','2012-07-11 12:00:00','2013-07-14 12:00:00',NULL,'Heberger site RMLL','',0,0,0,0,NULL,1,NULL,0,NULL,NULL,0,NULL,NULL),(3,'TK1007-0001',1,1,0,'2016-12-21 13:52:41','2018-07-30 11:35:40','2016-12-21 16:52:00',NULL,NULL,'Analyze','',9000,36000,0,0,NULL,1,NULL,0,NULL,'gdfgdfgdf',0,NULL,NULL),(4,'TK1007-0002',1,1,0,'2016-12-21 13:55:39','2020-06-12 17:13:30','2016-12-21 16:55:00',NULL,NULL,'Specification','',10800,18000,25,0,NULL,1,NULL,0,NULL,NULL,0,NULL,NULL),(5,'TK1007-0003',1,1,0,'2016-12-21 14:16:58','2018-07-30 11:35:59','2016-12-21 17:16:00',NULL,NULL,'Development','',0,0,0,0,NULL,1,NULL,0,NULL,NULL,0,NULL,NULL),(6,'TK1607-0004',1,6,0,'2018-07-30 15:33:27','2018-07-30 11:34:47','2018-07-30 02:00:00',NULL,NULL,'Project preparation phase A','',75600,720000,10,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL),(7,'TK1607-0005',1,6,0,'2018-07-30 15:33:39','2017-01-30 11:23:39','2018-07-30 02:00:00',NULL,NULL,'Project preparation phase B','',40260,1080000,5,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL),(8,'TK1607-0006',1,6,0,'2018-07-30 15:33:53','2018-07-30 11:33:53','2018-07-30 02:00:00',NULL,NULL,'Project execution phase A','',0,162000,0,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL),(9,'TK1607-0007',1,6,0,'2018-07-30 15:34:09','2018-07-30 11:34:09','2018-10-27 02:00:00',NULL,NULL,'Project execution phase B','',0,2160000,0,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL),(10,'TK1007-0008',1,1,0,'2018-07-30 15:36:31','2018-07-30 11:36:31','2018-07-30 02:00:00',NULL,NULL,'Tests','',0,316800,0,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL); +INSERT INTO `llx_projet_task` VALUES (2,'2',1,5,0,'2012-07-11 16:23:53','2015-09-08 23:06:14','2012-07-11 12:00:00','2013-07-14 12:00:00',NULL,'Heberger site RMLL','',0,0,0,0,NULL,1,NULL,0,NULL,NULL,0,NULL,NULL,1),(3,'TK1007-0001',1,1,0,'2016-12-21 13:52:41','2018-07-30 11:35:40','2016-12-21 16:52:00',NULL,NULL,'Analyze','',9000,36000,0,0,NULL,1,NULL,0,NULL,'gdfgdfgdf',0,NULL,NULL,1),(4,'TK1007-0002',1,1,0,'2016-12-21 13:55:39','2020-06-12 17:13:30','2016-12-21 16:55:00',NULL,NULL,'Specification','',10800,18000,25,0,NULL,1,NULL,0,NULL,NULL,0,NULL,NULL,1),(5,'TK1007-0003',1,1,0,'2016-12-21 14:16:58','2018-07-30 11:35:59','2016-12-21 17:16:00',NULL,NULL,'Development','',0,0,0,0,NULL,1,NULL,0,NULL,NULL,0,NULL,NULL,1),(6,'TK1607-0004',1,6,0,'2018-07-30 15:33:27','2018-07-30 11:34:47','2018-07-30 02:00:00',NULL,NULL,'Project preparation phase A','',75600,720000,10,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL,1),(7,'TK1607-0005',1,6,0,'2018-07-30 15:33:39','2017-01-30 11:23:39','2018-07-30 02:00:00',NULL,NULL,'Project preparation phase B','',40260,1080000,5,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL,1),(8,'TK1607-0006',1,6,0,'2018-07-30 15:33:53','2018-07-30 11:33:53','2018-07-30 02:00:00',NULL,NULL,'Project execution phase A','',0,162000,0,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL,1),(9,'TK1607-0007',1,6,0,'2018-07-30 15:34:09','2018-07-30 11:34:09','2018-10-27 02:00:00',NULL,NULL,'Project execution phase B','',0,2160000,0,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL,1),(10,'TK1007-0008',1,1,0,'2018-07-30 15:36:31','2018-07-30 11:36:31','2018-07-30 02:00:00',NULL,NULL,'Tests','',0,316800,0,0,NULL,12,NULL,0,NULL,NULL,0,NULL,NULL,1); /*!40000 ALTER TABLE `llx_projet_task` ENABLE KEYS */; UNLOCK TABLES; @@ -10790,10 +11419,10 @@ CREATE TABLE `llx_projet_task_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_projet_task_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10821,17 +11450,20 @@ CREATE TABLE `llx_projet_task_time` ( `task_duration` double DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `thm` double(24,8) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `invoice_id` int(11) DEFAULT NULL, `invoice_line_id` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `intervention_id` int(11) DEFAULT NULL, + `intervention_line_id` int(11) DEFAULT NULL, + `fk_product` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_projet_task_time_task` (`fk_task`), KEY `idx_projet_task_time_date` (`task_date`), KEY `idx_projet_task_time_datehour` (`task_datehour`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10840,7 +11472,7 @@ CREATE TABLE `llx_projet_task_time` ( LOCK TABLES `llx_projet_task_time` WRITE; /*!40000 ALTER TABLE `llx_projet_task_time` DISABLE KEYS */; -INSERT INTO `llx_projet_task_time` VALUES (2,4,'2016-12-21','2016-12-21 12:00:00',0,3600,1,NULL,'',NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(3,4,'2016-12-18','2016-12-18 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(4,3,'2016-12-21','2016-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(5,3,'2016-12-21','2016-12-21 12:00:00',0,1800,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(6,3,'2016-12-21','2016-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(7,6,'2018-07-25','2018-07-25 00:00:00',0,18000,12,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(8,6,'2018-07-26','2018-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(9,6,'2018-07-27','2018-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(10,6,'2018-07-29','2018-07-29 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(11,6,'2018-07-31','2018-07-31 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(12,7,'2018-07-25','2018-07-25 00:00:00',0,10800,12,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(13,7,'2018-07-26','2018-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(14,7,'2018-07-27','2018-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(15,7,'2017-01-30','2017-01-30 10:00:00',1,660,12,NULL,'',NULL,NULL,NULL,NULL,'2020-12-10 12:24:40'),(16,4,'2020-06-13','2020-06-13 00:00:00',0,3600,12,NULL,'',NULL,NULL,NULL,NULL,'2020-06-12 17:13:30'); +INSERT INTO `llx_projet_task_time` VALUES (2,4,'2016-12-21','2016-12-21 12:00:00',0,3600,1,NULL,'',NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(3,4,'2016-12-18','2016-12-18 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(4,3,'2016-12-21','2016-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(5,3,'2016-12-21','2016-12-21 12:00:00',0,1800,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(6,3,'2016-12-21','2016-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(7,6,'2018-07-25','2018-07-25 00:00:00',0,18000,12,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(8,6,'2018-07-26','2018-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54',NULL,NULL,NULL),(9,6,'2018-07-27','2018-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54',NULL,NULL,NULL),(10,6,'2018-07-29','2018-07-29 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54',NULL,NULL,NULL),(11,6,'2018-07-31','2018-07-31 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54',NULL,NULL,NULL),(12,7,'2018-07-25','2018-07-25 00:00:00',0,10800,12,NULL,NULL,NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(13,7,'2018-07-26','2018-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54',NULL,NULL,NULL),(14,7,'2018-07-27','2018-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54',NULL,NULL,NULL),(15,7,'2017-01-30','2017-01-30 10:00:00',1,660,12,NULL,'',NULL,NULL,NULL,NULL,'2020-12-10 12:24:40',NULL,NULL,NULL),(16,4,'2020-06-13','2020-06-13 00:00:00',0,3600,12,NULL,'',NULL,NULL,NULL,NULL,'2020-06-12 17:13:30',NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_projet_task_time` ENABLE KEYS */; UNLOCK TABLES; @@ -10856,11 +11488,11 @@ CREATE TABLE `llx_propal` ( `fk_soc` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, `datec` datetime DEFAULT NULL, `datep` date DEFAULT NULL, `fin_validite` datetime DEFAULT NULL, @@ -10883,31 +11515,32 @@ CREATE TABLE `llx_propal` ( `localtax2` double(24,8) DEFAULT 0.00000000, `total_ttc` double(24,8) DEFAULT 0.00000000, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `date_livraison` date DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, `fk_availability` int(11) DEFAULT NULL, `fk_delivery_address` int(11) DEFAULT NULL, `fk_input_reason` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `online_sign_ip` varchar(48) COLLATE utf8_unicode_ci DEFAULT NULL, - `online_sign_name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `online_sign_ip` varchar(48) DEFAULT NULL, + `online_sign_name` varchar(64) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_propal_ref` (`ref`,`entity`), KEY `idx_propal_fk_soc` (`fk_soc`), @@ -10925,7 +11558,7 @@ CREATE TABLE `llx_propal` ( CONSTRAINT `fk_propal_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_propal_fk_user_signature` FOREIGN KEY (`fk_user_signature`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_propal_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10934,7 +11567,7 @@ CREATE TABLE `llx_propal` ( LOCK TABLES `llx_propal` WRITE; /*!40000 ALTER TABLE `llx_propal` DISABLE KEYS */; -INSERT INTO `llx_propal` VALUES (1,2,NULL,'2021-07-11 17:49:28','PR1007-0001',1,NULL,NULL,'','2012-07-09 01:33:49','2021-07-09','2020-07-24 12:00:00','2020-08-08 14:24:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(2,1,NULL,'2021-07-11 17:49:28','PR1007-0002',1,NULL,NULL,'','2012-07-10 02:11:44','2021-07-10','2020-07-25 12:00:00','2021-07-10 02:12:55','2020-07-20 15:23:12','2020-07-20 15:23:12',1,NULL,1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,1,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(3,4,NULL,'2022-02-07 13:37:54','PR1007-0003',1,NULL,NULL,'','2012-07-18 11:35:11','2021-07-18','2021-08-02 12:00:00','2021-07-18 11:36:18','2020-07-20 15:21:15','2021-07-20 15:21:15',1,NULL,1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(5,19,NULL,'2021-04-15 10:22:31','PR1302-0005',1,NULL,NULL,'','2015-02-17 15:39:56','2021-02-17','2021-03-04 12:00:00','2020-11-15 23:27:10',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(6,19,NULL,'2021-04-15 10:22:31','PR1302-0006',1,NULL,NULL,'','2015-02-17 15:40:12','2021-02-17','2021-03-04 12:00:00',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(7,19,NULL,'2021-04-15 10:22:31','PR1302-0007',1,NULL,NULL,'','2015-02-17 15:41:15','2021-02-17','2021-03-04 12:00:00','2020-01-29 21:49:33',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,400.00000000,0.00000000,400.00000000,NULL,NULL,NULL),(8,19,NULL,'2021-04-15 10:22:31','PR1302-0008',1,NULL,NULL,'','2015-02-17 15:43:39','2021-02-17','2021-03-04 12:00:00',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(10,7,4,'2022-02-07 13:37:54','PR1909-0031',1,NULL,NULL,'','2017-11-15 23:37:08','2021-11-15','2021-11-30 12:00:00','2022-09-27 16:54:30',NULL,NULL,12,NULL,12,NULL,NULL,1,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,3,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',NULL,NULL,1.00000000,10.00000000,0.00000000,10.00000000,'propale/PR1909-0031/PR1909-0031.pdf',NULL,NULL),(11,1,NULL,'2021-07-11 17:49:28','PR1702-0009',1,NULL,NULL,'','2017-02-16 01:44:58','2021-05-13','2021-05-28 12:00:00','2021-02-16 01:44:58',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,60.00000000,0.00000000,0.00000000,0.00000000,60.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,60.00000000,0.00000000,60.00000000,NULL,NULL,NULL),(12,7,NULL,'2021-07-11 17:49:28','PR1702-0010',1,NULL,NULL,'','2017-02-16 01:45:44','2021-06-24','2021-07-09 12:00:00','2021-02-16 01:45:44',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,832.00000000,0.00000000,0.00000000,0.00000000,832.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,832.00000000,0.00000000,832.00000000,NULL,NULL,NULL),(13,26,NULL,'2021-04-15 10:22:31','PR1702-0011',1,NULL,NULL,'','2017-02-16 01:46:15','2021-04-03','2020-04-18 12:00:00','2021-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,242.00000000,0.00000000,0.00000000,0.00000000,242.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,242.00000000,0.00000000,242.00000000,NULL,NULL,NULL),(14,3,NULL,'2021-07-11 17:49:28','PR1702-0012',1,NULL,NULL,'','2017-02-16 01:46:15','2021-06-19','2021-07-04 12:00:00','2021-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,245.00000000,0.00000000,0.00000000,0.00000000,245.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,245.00000000,0.00000000,245.00000000,NULL,NULL,NULL),(15,26,NULL,'2021-07-11 17:49:28','PR1702-0013',1,NULL,NULL,'','2017-02-16 01:46:15','2021-05-01','2021-05-16 12:00:00','2020-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,940.00000000,0.00000000,0.00000000,0.00000000,940.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,940.00000000,0.00000000,940.00000000,NULL,NULL,NULL),(16,1,NULL,'2021-07-11 17:49:28','PR1702-0014',1,NULL,NULL,'','2017-02-16 01:46:15','2021-05-13','2021-05-28 12:00:00','2021-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,125.00000000,0.00000000,0.00000000,0.00000000,125.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,125.00000000,0.00000000,125.00000000,NULL,NULL,NULL),(17,1,NULL,'2022-02-07 13:37:54','PR1702-0015',1,NULL,NULL,'','2017-02-16 01:46:15','2021-07-23','2021-08-07 12:00:00','2021-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,163.00000000,0.00000000,0.00000000,0.00000000,163.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,163.00000000,0.00000000,163.00000000,NULL,NULL,NULL),(18,26,NULL,'2021-04-15 10:22:31','PR1702-0016',1,NULL,NULL,'','2017-02-16 01:46:15','2021-02-13','2021-02-28 12:00:00','2021-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,900.00000000,0.00000000,0.00000000,0.00000000,900.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL,NULL,NULL),(19,12,NULL,'2021-04-15 10:22:31','PR1702-0017',1,NULL,NULL,'','2017-02-16 01:46:15','2021-03-30','2021-04-14 12:00:00','2021-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL,NULL,NULL),(20,26,NULL,'2022-02-07 13:37:54','PR1702-0018',1,NULL,NULL,'','2017-02-16 01:46:15','2021-11-13','2021-11-28 12:00:00','2021-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,830.00000000,0.00000000,0.00000000,0.00000000,830.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,830.00000000,0.00000000,830.00000000,NULL,NULL,NULL),(21,1,NULL,'2022-02-07 13:37:54','PR1702-0019',1,NULL,NULL,'','2017-02-16 01:46:15','2021-09-23','2021-10-08 12:00:00','2021-02-16 04:47:09',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,89.00000000,0.00000000,0.00000000,0.00000000,89.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,89.00000000,0.00000000,89.00000000,NULL,NULL,NULL),(22,26,NULL,'2022-02-07 13:37:54','PR1702-0020',1,NULL,NULL,'','2017-02-16 01:46:15','2021-11-13','2021-11-28 12:00:00','2021-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,0,0,NULL,NULL,0,70.00000000,0.00000000,0.00000000,0.00000000,70.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,70.00000000,0.00000000,70.00000000,'propale/PR1702-0020/PR1702-0020.pdf',NULL,NULL),(23,12,NULL,'2021-04-15 10:22:31','PR1702-0021',1,NULL,NULL,'','2017-02-16 01:46:17','2021-04-03','2020-04-18 12:00:00','2020-02-17 16:07:18',NULL,NULL,2,NULL,12,NULL,NULL,1,0,NULL,NULL,0,715.00000000,0.00000000,0.00000000,0.00000000,715.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,715.00000000,0.00000000,715.00000000,NULL,NULL,NULL),(24,7,NULL,'2022-02-07 13:37:54','PR1702-0022',1,NULL,NULL,'','2017-02-16 01:46:17','2021-11-13','2021-11-28 12:00:00','2021-02-16 01:46:17',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,250.00000000,0.00000000,250.00000000,NULL,NULL,NULL),(25,3,NULL,'2021-07-11 17:49:28','PR1702-0023',1,NULL,NULL,'','2017-02-16 01:46:17','2021-07-09','2020-07-24 12:00:00','2021-02-16 01:46:17','2020-02-16 04:47:29','2021-02-16 04:47:29',1,NULL,1,12,12,4,0,NULL,NULL,0,1018.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL,NULL,NULL),(26,1,NULL,'2021-04-15 10:22:31','PR1702-0024',1,NULL,NULL,'','2017-02-16 01:46:17','2021-04-03','2020-04-18 12:00:00','2020-02-16 01:46:18',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,710.00000000,0.00000000,0.00000000,0.00000000,710.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,710.00000000,0.00000000,710.00000000,NULL,NULL,NULL),(27,6,NULL,'2022-02-07 13:37:54','PR1702-0025',1,NULL,NULL,'','2017-02-16 01:46:18','2021-11-12','2021-11-27 12:00:00','2021-02-16 01:46:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,300.00000000,0.00000000,300.00000000,NULL,NULL,NULL),(28,19,NULL,'2022-02-07 13:37:54','PR1702-0026',1,NULL,NULL,'','2017-02-16 01:46:18','2021-07-30','2021-08-14 12:00:00','2021-02-16 01:46:18','2020-02-16 04:46:31','2021-02-16 04:46:31',2,NULL,2,12,12,2,0,NULL,NULL,0,440.00000000,0.00000000,0.00000000,0.00000000,440.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL,NULL,NULL),(29,1,NULL,'2022-02-07 13:37:54','PR1702-0027',1,NULL,NULL,'','2017-02-16 01:46:18','2021-07-23','2021-08-07 12:00:00','2021-02-16 01:46:18','2021-12-20 20:50:23','2022-12-20 20:50:23',2,NULL,2,12,12,2,0,NULL,NULL,0,1000.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,'propale/PR1702-0027/PR1702-0027.pdf',NULL,NULL),(30,1,NULL,'2021-07-11 17:49:28','PR1702-0028',1,NULL,NULL,'','2017-02-16 01:46:18','2021-05-01','2021-05-16 12:00:00','2020-02-16 01:46:18','2019-02-16 04:46:42','2020-02-16 04:46:42',2,NULL,2,12,12,3,0,NULL,NULL,0,1200.00000000,0.00000000,0.00000000,0.00000000,1200.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,0.00000000,1200.00000000,NULL,NULL,NULL),(31,11,NULL,'2021-07-11 17:49:28','PR1702-0029',1,NULL,NULL,'','2017-02-16 01:46:18','2021-06-24','2021-07-09 12:00:00','2021-02-16 01:46:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,720.00000000,0.00000000,0.00000000,0.00000000,720.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,720.00000000,0.00000000,720.00000000,NULL,NULL,NULL),(32,19,NULL,'2022-02-07 13:37:54','PR1702-0030',1,NULL,NULL,'','2017-02-16 01:46:18','2021-11-12','2021-11-27 12:00:00','2021-02-16 01:46:18',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,608.00000000,0.00000000,0.00000000,0.00000000,608.00000000,NULL,NULL,3,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,608.00000000,0.00000000,608.00000000,NULL,NULL,NULL),(33,10,6,'2022-02-07 13:37:54','PR1909-0032',1,NULL,NULL,'','2019-09-27 17:07:40','2021-09-27','2021-10-12 12:00:00','2021-09-27 17:08:59',NULL,NULL,12,12,12,NULL,NULL,1,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,'This is a private note','This is a public note','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'propale/PR1909-0032/PR1909-0032.pdf',NULL,NULL),(34,10,6,'2022-02-07 13:37:54','PR1909-0033',1,NULL,NULL,'','2019-09-27 17:11:21','2021-09-27','2021-10-12 12:00:00','2021-09-27 17:13:13','2020-01-07 23:43:06','2022-01-07 23:43:06',12,12,12,12,12,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL,NULL,'a & a
\r\nb < r','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,'propale/PR1909-0033/PR1909-0033.pdf',NULL,NULL),(35,10,NULL,'2022-02-07 13:37:54','(PROV35)',1,NULL,NULL,'','2019-09-27 17:53:44','2021-09-27','2021-10-12 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,5.00000000,0.00000000,5.00000000,'propale/(PROV35)/(PROV35).pdf',NULL,NULL),(36,1,NULL,'2022-02-07 13:37:54','PR2001-0034',1,NULL,NULL,'','2020-01-01 23:55:35','2022-01-01','2022-01-16 12:00:00','2022-01-19 14:24:22','2021-01-19 14:24:27','2022-01-19 14:24:27',12,NULL,12,12,12,2,0,NULL,NULL,0,4.00000000,0.24000000,0.00000000,0.00000000,4.24000000,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,4.00000000,0.24000000,4.24000000,'propale/PR2001-0034/PR2001-0034.pdf',NULL,NULL),(37,10,NULL,'2022-02-07 13:37:54','(PROV37)',1,NULL,NULL,'','2020-01-06 00:44:16','2022-01-05','2022-01-20 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,'propale/(PROV37)/(PROV37).pdf',NULL,NULL),(38,30,NULL,'2022-02-07 13:37:54','(PROV38)',1,NULL,NULL,'','2020-01-13 17:25:28','2022-01-13','2022-01-28 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'propale/(PROV38)/(PROV38).pdf',NULL,NULL); +INSERT INTO `llx_propal` VALUES (1,2,NULL,'2022-12-11 21:23:22','PR1007-0001',1,NULL,NULL,'','2012-07-09 01:33:49','2022-07-09','2021-07-24 12:00:00','2021-08-08 14:24:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(2,1,NULL,'2022-12-11 21:23:22','PR1007-0002',1,NULL,NULL,'','2012-07-10 02:11:44','2022-07-10','2021-07-25 12:00:00','2022-07-10 02:12:55','2020-07-20 15:23:12','2021-07-20 15:23:12',1,NULL,1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,NULL,1,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(3,4,NULL,'2022-12-11 21:23:22','PR1007-0003',1,NULL,NULL,'','2012-07-18 11:35:11','2022-07-18','2022-08-02 12:00:00','2022-07-18 11:36:18','2020-07-20 15:21:15','2022-07-20 15:21:15',1,NULL,1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(5,19,NULL,'2022-07-04 01:11:35','PR1302-0005',1,NULL,NULL,'','2015-02-17 15:39:56','2022-02-17','2022-03-04 12:00:00','2021-11-15 23:27:10',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(6,19,NULL,'2022-07-04 01:11:35','PR1302-0006',1,NULL,NULL,'','2015-02-17 15:40:12','2022-02-17','2022-03-04 12:00:00',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(7,19,NULL,'2022-07-04 01:11:35','PR1302-0007',1,NULL,NULL,'','2015-02-17 15:41:15','2022-02-17','2022-03-04 12:00:00','2021-01-29 21:49:33',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,400.00000000,0.00000000,400.00000000,NULL,NULL,NULL),(8,19,NULL,'2022-07-04 01:11:35','PR1302-0008',1,NULL,NULL,'','2015-02-17 15:43:39','2022-02-17','2022-03-04 12:00:00',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(10,7,4,'2022-12-11 21:23:22','PR1909-0031',1,NULL,NULL,'','2017-11-15 23:37:08','2022-11-15','2022-11-30 12:00:00','2022-09-27 16:54:30',NULL,NULL,12,NULL,12,NULL,NULL,1,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,NULL,3,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',NULL,NULL,1.00000000,10.00000000,0.00000000,10.00000000,'propale/PR1909-0031/PR1909-0031.pdf',NULL,NULL),(11,1,NULL,'2022-07-04 01:11:35','PR1702-0009',1,NULL,NULL,'','2017-02-16 01:44:58','2022-05-13','2022-05-28 12:00:00','2022-02-16 01:44:58',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,60.00000000,0.00000000,0.00000000,0.00000000,60.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,60.00000000,0.00000000,60.00000000,NULL,NULL,NULL),(12,7,NULL,'2022-07-04 01:11:35','PR1702-0010',1,NULL,NULL,'','2017-02-16 01:45:44','2022-06-24','2021-07-09 12:00:00','2022-02-16 01:45:44',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,832.00000000,0.00000000,0.00000000,0.00000000,832.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,832.00000000,0.00000000,832.00000000,NULL,NULL,NULL),(13,26,NULL,'2022-07-04 01:11:35','PR1702-0011',1,NULL,NULL,'','2017-02-16 01:46:15','2022-04-03','2021-04-18 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,242.00000000,0.00000000,0.00000000,0.00000000,242.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,242.00000000,0.00000000,242.00000000,NULL,NULL,NULL),(14,3,NULL,'2022-07-04 01:11:35','PR1702-0012',1,NULL,NULL,'','2017-02-16 01:46:15','2022-06-19','2021-07-04 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,245.00000000,0.00000000,0.00000000,0.00000000,245.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,245.00000000,0.00000000,245.00000000,NULL,NULL,NULL),(15,26,NULL,'2022-07-04 01:11:35','PR1702-0013',1,NULL,NULL,'','2017-02-16 01:46:15','2022-05-01','2022-05-16 12:00:00','2021-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,940.00000000,0.00000000,0.00000000,0.00000000,940.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,940.00000000,0.00000000,940.00000000,NULL,NULL,NULL),(16,1,NULL,'2022-07-04 01:11:35','PR1702-0014',1,NULL,NULL,'','2017-02-16 01:46:15','2022-05-13','2022-05-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,125.00000000,0.00000000,0.00000000,0.00000000,125.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,125.00000000,0.00000000,125.00000000,NULL,NULL,NULL),(17,1,NULL,'2022-12-11 21:23:22','PR1702-0015',1,NULL,NULL,'','2017-02-16 01:46:15','2022-07-23','2022-08-07 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,163.00000000,0.00000000,0.00000000,0.00000000,163.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,163.00000000,0.00000000,163.00000000,NULL,NULL,NULL),(18,26,NULL,'2022-07-04 01:11:35','PR1702-0016',1,NULL,NULL,'','2017-02-16 01:46:15','2022-02-13','2022-02-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,900.00000000,0.00000000,0.00000000,0.00000000,900.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL,NULL,NULL),(19,12,NULL,'2022-07-04 01:11:35','PR1702-0017',1,NULL,NULL,'','2017-02-16 01:46:15','2022-03-30','2022-04-14 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL,NULL,NULL),(20,26,NULL,'2022-12-11 21:23:22','PR1702-0018',1,NULL,NULL,'','2017-02-16 01:46:15','2022-11-13','2022-11-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,830.00000000,0.00000000,0.00000000,0.00000000,830.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,830.00000000,0.00000000,830.00000000,NULL,NULL,NULL),(21,1,NULL,'2022-12-11 21:23:22','PR1702-0019',1,NULL,NULL,'','2017-02-16 01:46:15','2022-09-23','2022-10-08 12:00:00','2022-02-16 04:47:09',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,89.00000000,0.00000000,0.00000000,0.00000000,89.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,89.00000000,0.00000000,89.00000000,NULL,NULL,NULL),(22,26,NULL,'2022-12-11 21:23:22','PR1702-0020',1,NULL,NULL,'','2017-02-16 01:46:15','2022-11-13','2022-11-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,0,0,NULL,NULL,0,70.00000000,0.00000000,0.00000000,0.00000000,70.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,70.00000000,0.00000000,70.00000000,'propale/PR1702-0020/PR1702-0020.pdf',NULL,NULL),(23,12,NULL,'2022-07-04 01:11:35','PR1702-0021',1,NULL,NULL,'','2017-02-16 01:46:17','2022-04-03','2021-04-18 12:00:00','2021-02-17 16:07:18',NULL,NULL,2,NULL,12,NULL,NULL,1,0,NULL,NULL,0,715.00000000,0.00000000,0.00000000,0.00000000,715.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,715.00000000,0.00000000,715.00000000,NULL,NULL,NULL),(24,7,NULL,'2022-12-11 21:23:22','PR1702-0022',1,NULL,NULL,'','2017-02-16 01:46:17','2022-11-13','2022-11-28 12:00:00','2022-02-16 01:46:17',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,250.00000000,0.00000000,250.00000000,NULL,NULL,NULL),(25,3,NULL,'2022-12-11 21:23:22','PR1702-0023',1,NULL,NULL,'','2017-02-16 01:46:17','2022-07-09','2021-07-24 12:00:00','2022-02-16 01:46:17','2020-02-16 04:47:29','2022-02-16 04:47:29',1,NULL,1,12,12,4,0,NULL,NULL,0,1018.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL,NULL,NULL),(26,1,NULL,'2022-07-04 01:11:35','PR1702-0024',1,NULL,NULL,'','2017-02-16 01:46:17','2022-04-03','2021-04-18 12:00:00','2021-02-16 01:46:18',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,710.00000000,0.00000000,0.00000000,0.00000000,710.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,710.00000000,0.00000000,710.00000000,NULL,NULL,NULL),(27,6,NULL,'2022-12-11 21:23:22','PR1702-0025',1,NULL,NULL,'','2017-02-16 01:46:18','2022-11-12','2022-11-27 12:00:00','2022-02-16 01:46:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,300.00000000,0.00000000,300.00000000,NULL,NULL,NULL),(28,19,NULL,'2022-12-11 21:23:22','PR1702-0026',1,NULL,NULL,'','2017-02-16 01:46:18','2022-07-30','2022-08-14 12:00:00','2022-02-16 01:46:18','2020-02-16 04:46:31','2022-02-16 04:46:31',2,NULL,2,12,12,2,0,NULL,NULL,0,440.00000000,0.00000000,0.00000000,0.00000000,440.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL,NULL,NULL),(29,1,NULL,'2022-12-11 21:23:22','PR1702-0027',1,NULL,NULL,'','2017-02-16 01:46:18','2022-07-23','2022-08-07 12:00:00','2022-02-16 01:46:18','2021-12-20 20:50:23','2022-12-20 20:50:23',2,NULL,2,12,12,2,0,NULL,NULL,0,1000.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,'propale/PR1702-0027/PR1702-0027.pdf',NULL,NULL),(30,1,NULL,'2022-07-04 01:11:35','PR1702-0028',1,NULL,NULL,'','2017-02-16 01:46:18','2022-05-01','2022-05-16 12:00:00','2021-02-16 01:46:18','2019-02-16 04:46:42','2021-02-16 04:46:42',2,NULL,2,12,12,3,0,NULL,NULL,0,1200.00000000,0.00000000,0.00000000,0.00000000,1200.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,0.00000000,1200.00000000,NULL,NULL,NULL),(31,11,NULL,'2022-07-04 01:11:35','PR1702-0029',1,NULL,NULL,'','2017-02-16 01:46:18','2022-06-24','2021-07-09 12:00:00','2022-02-16 01:46:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,720.00000000,0.00000000,0.00000000,0.00000000,720.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,720.00000000,0.00000000,720.00000000,NULL,NULL,NULL),(32,19,NULL,'2022-12-11 21:23:22','PR1702-0030',1,NULL,NULL,'','2017-02-16 01:46:18','2022-11-12','2022-11-27 12:00:00','2022-02-16 01:46:18',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,608.00000000,0.00000000,0.00000000,0.00000000,608.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,608.00000000,0.00000000,608.00000000,NULL,NULL,NULL),(33,10,6,'2022-12-11 21:23:22','PR1909-0032',1,NULL,NULL,'','2019-09-27 17:07:40','2022-09-27','2022-10-12 12:00:00','2022-09-27 17:08:59',NULL,NULL,12,12,12,NULL,NULL,1,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,'This is a private note','This is a public note','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'propale/PR1909-0032/PR1909-0032.pdf',NULL,NULL),(34,10,6,'2022-12-11 21:23:22','PR1909-0033',1,NULL,NULL,'','2019-09-27 17:11:21','2022-09-27','2022-10-12 12:00:00','2022-09-27 17:13:13','2020-01-07 23:43:06','2022-01-07 23:43:06',12,12,12,12,12,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL,NULL,NULL,'a & a
\r\nb < r','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,'propale/PR1909-0033/PR1909-0033.pdf',NULL,NULL),(35,10,NULL,'2022-12-11 21:23:22','(PROV35)',1,NULL,NULL,'','2019-09-27 17:53:44','2022-09-27','2022-10-12 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,5.00000000,0.00000000,5.00000000,'propale/(PROV35)/(PROV35).pdf',NULL,NULL),(36,1,NULL,'2022-02-07 13:37:54','PR2001-0034',1,NULL,NULL,'','2020-01-01 23:55:35','2022-01-01','2022-01-16 12:00:00','2022-01-19 14:24:22','2021-01-19 14:24:27','2022-01-19 14:24:27',12,NULL,12,12,12,2,0,NULL,NULL,0,4.00000000,0.24000000,0.00000000,0.00000000,4.24000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,4.00000000,0.24000000,4.24000000,'propale/PR2001-0034/PR2001-0034.pdf',NULL,NULL),(37,10,NULL,'2022-02-07 13:37:54','(PROV37)',1,NULL,NULL,'','2020-01-06 00:44:16','2022-01-05','2022-01-20 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,'propale/(PROV37)/(PROV37).pdf',NULL,NULL),(38,30,NULL,'2022-02-07 13:37:54','(PROV38)',1,NULL,NULL,'','2020-01-13 17:25:28','2022-01-13','2022-01-28 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'propale/(PROV38)/(PROV38).pdf',NULL,NULL); /*!40000 ALTER TABLE `llx_propal` ENABLE KEYS */; UNLOCK TABLES; @@ -10949,10 +11582,10 @@ CREATE TABLE `llx_propal_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_propal_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10974,15 +11607,15 @@ DROP TABLE IF EXISTS `llx_propal_merge_pdf_product`; CREATE TABLE `llx_propal_merge_pdf_product` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_product` int(11) NOT NULL, - `file_name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, - `lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, + `file_name` varchar(200) NOT NULL, + `lang` varchar(5) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_mod` int(11) NOT NULL, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11006,15 +11639,15 @@ CREATE TABLE `llx_propaldet` ( `fk_propal` int(11) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -11035,7 +11668,7 @@ CREATE TABLE `llx_propaldet` ( `rang` int(11) DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -11046,7 +11679,7 @@ CREATE TABLE `llx_propaldet` ( KEY `fk_propaldet_fk_unit` (`fk_unit`), CONSTRAINT `fk_propaldet_fk_propal` FOREIGN KEY (`fk_propal`) REFERENCES `llx_propal` (`rowid`), CONSTRAINT `fk_propaldet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11070,10 +11703,10 @@ CREATE TABLE `llx_propaldet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_propaldet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11095,13 +11728,13 @@ DROP TABLE IF EXISTS `llx_reception`; CREATE TABLE `llx_reception` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `ref_ext` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_supplier` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(30) DEFAULT NULL, + `ref_int` varchar(30) DEFAULT NULL, + `ref_supplier` varchar(128) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -11110,7 +11743,7 @@ CREATE TABLE `llx_reception` ( `date_delivery` datetime DEFAULT NULL, `date_reception` datetime DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, - `tracking_number` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `tracking_number` varchar(50) DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `billed` smallint(6) DEFAULT 0, `height` float DEFAULT NULL, @@ -11119,13 +11752,13 @@ CREATE TABLE `llx_reception` ( `size` float DEFAULT NULL, `weight_units` int(11) DEFAULT NULL, `weight` float DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_reception_uk_ref` (`ref`,`entity`), KEY `idx_reception_fk_soc` (`fk_soc`), @@ -11136,7 +11769,7 @@ CREATE TABLE `llx_reception` ( CONSTRAINT `fk_reception_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_reception_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_reception_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11160,10 +11793,10 @@ CREATE TABLE `llx_reception_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_reception_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11185,25 +11818,26 @@ DROP TABLE IF EXISTS `llx_recruitment_recruitmentcandidature`; CREATE TABLE `llx_recruitment_recruitmentcandidature` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_recruitmentjobposition` int(11) DEFAULT NULL, - `ref` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '(PROV)', - `description` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_public` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_private` text CHARACTER SET utf8mb4 DEFAULT NULL, + `ref` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '(PROV)', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_public` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_private` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, - `model_pdf` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `model_pdf` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status` smallint(6) NOT NULL, - `firstname` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL, - `lastname` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL, - `email` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, - `phone` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL, + `firstname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `lastname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `phone` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `remuneration_requested` int(11) DEFAULT NULL, `remuneration_proposed` int(11) DEFAULT NULL, `fk_recruitment_origin` int(11) DEFAULT NULL, - `email_msgid` varchar(175) COLLATE utf8_unicode_ci DEFAULT NULL, + `email_msgid` varchar(175) DEFAULT NULL, + `email_date` datetime DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `date_birth` date DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -11213,7 +11847,7 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature` ( KEY `llx_recruitment_recruitmentcandidature_fk_user_creat` (`fk_user_creat`), KEY `idx_recruitment_recruitmentcandidature_status` (`status`), CONSTRAINT `llx_recruitment_recruitmentcandidature_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11222,7 +11856,7 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature` ( LOCK TABLES `llx_recruitment_recruitmentcandidature` WRITE; /*!40000 ALTER TABLE `llx_recruitment_recruitmentcandidature` DISABLE KEYS */; -INSERT INTO `llx_recruitment_recruitmentcandidature` VALUES (118,3,'(PROV118)','',NULL,NULL,'2021-04-15 07:28:32','2021-04-15 10:28:32',12,NULL,NULL,NULL,0,'Stud','Studson','student1@myschool.com','',20000,NULL,NULL,NULL,1,'2005-04-15'),(119,4,'(PROV119)','',NULL,NULL,'2021-04-15 07:29:26','2021-04-15 10:29:26',12,NULL,NULL,NULL,3,'Garfield','Erika','egarfield@example.com','',40000,NULL,NULL,NULL,1,'1990-04-15'); +INSERT INTO `llx_recruitment_recruitmentcandidature` VALUES (118,3,'(PROV118)','',NULL,NULL,'2021-04-15 07:28:32','2021-04-15 10:28:32',12,NULL,NULL,NULL,0,'Stud','Studson','student1@myschool.com','',20000,NULL,NULL,NULL,NULL,1,'2005-04-15'),(119,4,'(PROV119)','',NULL,NULL,'2021-04-15 07:29:26','2021-04-15 10:29:26',12,NULL,NULL,NULL,3,'Garfield','Erika','egarfield@example.com','',40000,NULL,NULL,NULL,NULL,1,'1990-04-15'); /*!40000 ALTER TABLE `llx_recruitment_recruitmentcandidature` ENABLE KEYS */; UNLOCK TABLES; @@ -11237,12 +11871,12 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, - `aa` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `aa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_fk_object` (`fk_object`), KEY `idx_recruitmentcandidature_fk_object` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11264,8 +11898,8 @@ DROP TABLE IF EXISTS `llx_recruitment_recruitmentjobposition`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_recruitment_recruitmentjobposition` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '(PROV)', - `label` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `ref` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '(PROV)', + `label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `qty` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) DEFAULT NULL, `fk_project` int(11) DEFAULT NULL, @@ -11273,21 +11907,21 @@ CREATE TABLE `llx_recruitment_recruitmentjobposition` ( `fk_user_supervisor` int(11) DEFAULT NULL, `fk_establishment` int(11) DEFAULT NULL, `date_planned` date DEFAULT NULL, - `description` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_public` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_private` text CHARACTER SET utf8mb4 DEFAULT NULL, + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_public` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_private` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, - `model_pdf` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `model_pdf` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status` smallint(6) NOT NULL, - `last_main_doc` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, - `email_recruiter` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `last_main_doc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `email_recruiter` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `remuneration` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, - `remuneration_suggested` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `remuneration` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `remuneration_suggested` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_recruitment_recruitmentjobposition_rowid` (`rowid`), KEY `idx_recruitment_recruitmentjobposition_ref` (`ref`), @@ -11302,7 +11936,7 @@ CREATE TABLE `llx_recruitment_recruitmentjobposition` ( CONSTRAINT `llx_recruitment_recruitmentjobposition_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `llx_recruitment_recruitmentjobposition_fk_user_recruiter` FOREIGN KEY (`fk_user_recruiter`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `llx_recruitment_recruitmentjobposition_fk_user_supervisor` FOREIGN KEY (`fk_user_supervisor`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11326,12 +11960,12 @@ CREATE TABLE `llx_recruitment_recruitmentjobposition_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `bbb` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_fk_object` (`fk_object`), KEY `idx_recruitmentjobposition_fk_object` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11354,12 +11988,12 @@ DROP TABLE IF EXISTS `llx_resource`; CREATE TABLE `llx_resource` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `asset_number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, - `fk_code_type_resource` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(255) DEFAULT NULL, + `asset_number` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `fk_code_type_resource` varchar(32) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -11367,15 +12001,15 @@ CREATE TABLE `llx_resource` ( `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, `fk_statut` smallint(6) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_country` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_resource_ref` (`ref`,`entity`), KEY `fk_code_type_resource_idx` (`fk_code_type_resource`), KEY `idx_resource_fk_country` (`fk_country`), CONSTRAINT `fk_resource_fk_country` FOREIGN KEY (`fk_country`) REFERENCES `llx_c_country` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11399,10 +12033,10 @@ CREATE TABLE `llx_resource_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_resource_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11423,17 +12057,18 @@ DROP TABLE IF EXISTS `llx_rights_def`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_rights_def` ( `id` int(11) NOT NULL DEFAULT 0, - `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `module` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, + `module` varchar(64) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `perms` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `subperms` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `type` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, + `perms` varchar(50) DEFAULT NULL, + `subperms` varchar(50) DEFAULT NULL, + `type` varchar(1) DEFAULT NULL, `bydefault` tinyint(4) DEFAULT 0, `module_position` int(11) NOT NULL DEFAULT 0, `family_position` int(11) NOT NULL DEFAULT 0, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`,`entity`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11442,7 +12077,7 @@ CREATE TABLE `llx_rights_def` ( LOCK TABLES `llx_rights_def` WRITE; /*!40000 ALTER TABLE `llx_rights_def` DISABLE KEYS */; -INSERT INTO `llx_rights_def` VALUES (11,'Read invoices','facture',1,'lire',NULL,'a',0,11,0),(11,'Lire les factures','facture',2,'lire',NULL,'a',1,10,0),(12,'Create and update invoices','facture',1,'creer',NULL,'a',0,11,0),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0,10,0),(13,'Devalidate invoices','facture',1,'invoice_advance','unvalidate','a',0,11,0),(13,'Dévalider les factures','facture',2,'invoice_advance','unvalidate','a',0,10,0),(14,'Validate invoices','facture',1,'invoice_advance','validate','a',0,11,0),(14,'Valider les factures','facture',2,'valider',NULL,'a',0,10,0),(15,'Send invoices by email','facture',1,'invoice_advance','send','a',0,11,0),(15,'Envoyer les factures par mail','facture',2,'invoice_advance','send','a',0,10,0),(16,'Issue payments on invoices','facture',1,'paiement',NULL,'a',0,11,0),(16,'Emettre des paiements sur les factures','facture',2,'paiement',NULL,'a',0,10,0),(19,'Delete invoices','facture',1,'supprimer',NULL,'a',0,11,0),(19,'Supprimer les factures','facture',2,'supprimer',NULL,'a',0,10,0),(21,'Lire les propositions commerciales','propale',1,'lire',NULL,'r',1,22,0),(21,'Lire les propositions commerciales','propale',2,'lire',NULL,'r',1,22,0),(22,'Creer/modifier les propositions commerciales','propale',1,'creer',NULL,'w',0,22,0),(22,'Creer/modifier les propositions commerciales','propale',2,'creer',NULL,'w',0,22,0),(24,'Valider les propositions commerciales','propale',1,'propal_advance','validate','d',0,22,0),(24,'Valider les propositions commerciales','propale',2,'valider',NULL,'d',0,22,0),(25,'Envoyer les propositions commerciales aux clients','propale',1,'propal_advance','send','d',0,22,0),(25,'Envoyer les propositions commerciales aux clients','propale',2,'propal_advance','send','d',0,22,0),(26,'Cloturer les propositions commerciales','propale',1,'propal_advance','close','d',0,22,0),(26,'Cloturer les propositions commerciales','propale',2,'propal_advance','close','d',0,22,0),(27,'Supprimer les propositions commerciales','propale',1,'supprimer',NULL,'d',0,22,0),(27,'Supprimer les propositions commerciales','propale',2,'supprimer',NULL,'d',0,22,0),(28,'Exporter les propositions commerciales et attributs','propale',1,'export',NULL,'r',0,22,0),(28,'Exporter les propositions commerciales et attributs','propale',2,'export',NULL,'r',0,22,0),(31,'Lire les produits','produit',1,'lire',NULL,'r',1,25,0),(31,'Lire les produits','produit',2,'lire',NULL,'r',1,25,0),(32,'Creer/modifier les produits','produit',1,'creer',NULL,'w',0,25,0),(32,'Creer/modifier les produits','produit',2,'creer',NULL,'w',0,25,0),(34,'Supprimer les produits','produit',1,'supprimer',NULL,'d',0,25,0),(34,'Supprimer les produits','produit',2,'supprimer',NULL,'d',0,25,0),(38,'Exporter les produits','produit',1,'export',NULL,'r',0,25,0),(38,'Exporter les produits','produit',2,'export',NULL,'r',0,25,0),(39,'Ignore minimum price','produit',1,'ignore_price_min_advance',NULL,'r',0,25,0),(41,'Read projects and tasks (shared projects or projects I am contact for). Can also enter time consumed on assigned tasks (timesheet)','projet',1,'lire',NULL,'r',1,14,0),(42,'Create/modify projects and tasks (shared projects or projects I am contact for)','projet',1,'creer',NULL,'w',0,14,0),(44,'Delete project and tasks (shared projects or projects I am contact for)','projet',1,'supprimer',NULL,'d',0,14,0),(45,'Export projects','projet',1,'export',NULL,'d',0,14,0),(61,'Lire les fiches d\'intervention','ficheinter',1,'lire',NULL,'r',1,41,0),(62,'Creer/modifier les fiches d\'intervention','ficheinter',1,'creer',NULL,'w',0,41,0),(64,'Supprimer les fiches d\'intervention','ficheinter',1,'supprimer',NULL,'d',0,41,0),(67,'Exporter les fiches interventions','ficheinter',1,'export',NULL,'r',0,41,0),(68,'Envoyer les fiches d\'intervention par courriel','ficheinter',1,'ficheinter_advance','send','r',0,41,0),(69,'Valider les fiches d\'intervention ','ficheinter',1,'ficheinter_advance','validate','a',0,41,0),(70,'Dévalider les fiches d\'intervention','ficheinter',1,'ficheinter_advance','unvalidate','a',0,41,0),(71,'Read members\' card','adherent',1,'lire',NULL,'r',0,55,0),(72,'Create/modify members (need also user module permissions if member linked to a user)','adherent',1,'creer',NULL,'w',0,55,0),(74,'Remove members','adherent',1,'supprimer',NULL,'d',0,55,0),(75,'Setup types of membership','adherent',1,'configurer',NULL,'w',0,55,0),(76,'Export members','adherent',1,'export',NULL,'r',0,55,0),(78,'Read subscriptions','adherent',1,'cotisation','lire','r',0,55,0),(79,'Create/modify/remove subscriptions','adherent',1,'cotisation','creer','w',0,55,0),(81,'Read sales orders','commande',1,'lire',NULL,'r',0,11,0),(82,'Creeat/modify sales orders','commande',1,'creer',NULL,'w',0,11,0),(84,'Validate sales orders','commande',1,'order_advance','validate','d',0,11,0),(86,'Send sale orders by email','commande',1,'order_advance','send','d',0,11,0),(87,'Close sale orders','commande',1,'order_advance','close','d',0,11,0),(88,'Cancel sale orders','commande',1,'order_advance','annuler','d',0,11,0),(89,'Delete sales orders','commande',1,'supprimer',NULL,'d',0,11,0),(91,'Lire les charges','tax',1,'charges','lire','r',0,50,0),(91,'Lire les charges','tax',2,'charges','lire','r',1,50,0),(92,'Creer/modifier les charges','tax',1,'charges','creer','w',0,50,0),(92,'Creer/modifier les charges','tax',2,'charges','creer','w',0,50,0),(93,'Supprimer les charges','tax',1,'charges','supprimer','d',0,50,0),(93,'Supprimer les charges','tax',2,'charges','supprimer','d',0,50,0),(94,'Exporter les charges','tax',1,'charges','export','r',0,50,0),(94,'Exporter les charges','tax',2,'charges','export','r',0,50,0),(101,'Lire les expeditions','expedition',1,'lire',NULL,'r',0,40,0),(102,'Creer modifier les expeditions','expedition',1,'creer',NULL,'w',0,40,0),(104,'Valider les expeditions','expedition',1,'shipping_advance','validate','d',0,40,0),(105,'Envoyer les expeditions aux clients','expedition',1,'shipping_advance','send','d',0,40,0),(106,'Exporter les expeditions','expedition',1,'shipment','export','r',0,40,0),(109,'Supprimer les expeditions','expedition',1,'supprimer',NULL,'d',0,40,0),(111,'Read bank account and transactions','banque',1,'lire',NULL,'r',0,51,0),(111,'Lire les comptes bancaires','banque',2,'lire',NULL,'r',1,51,0),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',1,'modifier',NULL,'w',0,51,0),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',2,'modifier',NULL,'w',0,51,0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',1,'configurer',NULL,'a',0,51,0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',2,'configurer',NULL,'a',0,51,0),(114,'Rapprocher les ecritures bancaires','banque',1,'consolidate',NULL,'w',0,51,0),(114,'Rapprocher les ecritures bancaires','banque',2,'consolidate',NULL,'w',0,51,0),(115,'Exporter transactions et releves','banque',1,'export',NULL,'r',0,51,0),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0,51,0),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0,51,0),(116,'Virements entre comptes','banque',2,'transfer',NULL,'w',0,51,0),(117,'Gerer les envois de cheques','banque',1,'cheque',NULL,'w',0,51,0),(117,'Gerer les envois de cheques','banque',2,'cheque',NULL,'w',0,51,0),(121,'Read third parties','societe',1,'lire',NULL,'r',0,9,0),(121,'Lire les societes','societe',2,'lire',NULL,'r',1,9,0),(122,'Create and update third parties','societe',1,'creer',NULL,'w',0,9,0),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0,9,0),(125,'Delete third parties','societe',1,'supprimer',NULL,'d',0,9,0),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0,9,0),(126,'Export third parties','societe',1,'export',NULL,'r',0,9,0),(126,'Exporter les societes','societe',2,'export',NULL,'r',0,9,0),(130,'Modify thirdparty information payment','societe',1,'thirdparty_paymentinformation_advance','write','w',0,9,0),(141,'Read all projects and tasks (also private projects I am not contact for)','projet',1,'all','lire','r',0,14,0),(142,'Create/modify all projects and tasks (also private projects I am not contact for)','projet',1,'all','creer','w',0,14,0),(144,'Delete all projects and tasks (also private projects I am not contact for)','projet',1,'all','supprimer','d',0,14,0),(151,'Read withdrawals','prelevement',1,'bons','lire','r',1,52,0),(152,'Create/modify a withdrawals','prelevement',1,'bons','creer','w',0,52,0),(153,'Send withdrawals to bank','prelevement',1,'bons','send','a',0,52,0),(154,'credit/refuse withdrawals','prelevement',1,'bons','credit','a',0,52,0),(161,'Lire les contrats','contrat',1,'lire',NULL,'r',1,35,0),(162,'Creer / modifier les contrats','contrat',1,'creer',NULL,'w',0,35,0),(163,'Activer un service d\'un contrat','contrat',1,'activer',NULL,'w',0,35,0),(164,'Desactiver un service d\'un contrat','contrat',1,'desactiver',NULL,'w',0,35,0),(165,'Supprimer un contrat','contrat',1,'supprimer',NULL,'d',0,35,0),(167,'Export contracts','contrat',1,'export',NULL,'r',0,35,0),(221,'Consulter les mailings','mailing',1,'lire',NULL,'r',1,11,0),(221,'Consulter les mailings','mailing',2,'lire',NULL,'r',1,11,0),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',1,'creer',NULL,'w',0,11,0),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',2,'creer',NULL,'w',0,11,0),(223,'Valider les mailings (permet leur envoi)','mailing',1,'valider',NULL,'w',0,11,0),(223,'Valider les mailings (permet leur envoi)','mailing',2,'valider',NULL,'w',0,11,0),(229,'Supprimer les mailings','mailing',1,'supprimer',NULL,'d',0,11,0),(229,'Supprimer les mailings','mailing',2,'supprimer',NULL,'d',0,11,0),(237,'View recipients and info','mailing',1,'mailing_advance','recipient','r',0,11,0),(237,'View recipients and info','mailing',2,'mailing_advance','recipient','r',0,11,0),(238,'Manually send mailings','mailing',1,'mailing_advance','send','w',0,11,0),(238,'Manually send mailings','mailing',2,'mailing_advance','send','w',0,11,0),(239,'Delete mailings after validation and/or sent','mailing',1,'mailing_advance','delete','d',0,11,0),(239,'Delete mailings after validation and/or sent','mailing',2,'mailing_advance','delete','d',0,11,0),(241,'Lire les categories','categorie',1,'lire',NULL,'r',1,20,0),(242,'Creer/modifier les categories','categorie',1,'creer',NULL,'w',0,20,0),(243,'Supprimer les categories','categorie',1,'supprimer',NULL,'d',0,20,0),(251,'Read information of other users, groups and permissions','user',1,'user','lire','r',0,5,0),(252,'Read permissions of other users','user',1,'user_advance','readperms','r',0,5,0),(253,'Create/modify internal and external users, groups and permissions','user',1,'user','creer','w',0,5,0),(254,'Create/modify external users only','user',1,'user_advance','write','w',0,5,0),(255,'Modify the password of other users','user',1,'user','password','w',0,5,0),(256,'Delete or disable other users','user',1,'user','supprimer','d',0,5,0),(262,'Read all third parties (and their objects) by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).','societe',1,'client','voir','r',0,9,0),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',2,'client','voir','r',1,9,0),(281,'Read contacts','societe',1,'contact','lire','r',0,9,0),(281,'Lire les contacts','societe',2,'contact','lire','r',1,9,0),(282,'Create and update contact','societe',1,'contact','creer','w',0,9,0),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0,9,0),(283,'Delete contacts','societe',1,'contact','supprimer','d',0,9,0),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0,9,0),(286,'Export contacts','societe',1,'contact','export','d',0,9,0),(286,'Exporter les contacts','societe',2,'contact','export','d',0,9,0),(301,'Read barcodes','barcode',1,'lire_advance',NULL,'r',1,50,0),(302,'Create/modify barcodes','barcode',1,'creer_advance',NULL,'w',0,50,0),(331,'Lire les bookmarks','bookmark',1,'lire',NULL,'r',0,50,0),(332,'Creer/modifier les bookmarks','bookmark',1,'creer',NULL,'r',0,50,0),(333,'Supprimer les bookmarks','bookmark',1,'supprimer',NULL,'r',0,50,0),(341,'Read its own permissions','user',1,'self_advance','readperms','r',0,5,0),(342,'Create/modify of its own user','user',1,'self','creer','w',0,5,0),(343,'Modify its own password','user',1,'self','password','w',0,5,0),(344,'Modify its own permissions','user',1,'self_advance','writeperms','w',0,5,0),(351,'Read groups','user',1,'group_advance','read','r',0,5,0),(352,'Read permissions of groups','user',1,'group_advance','readperms','r',0,5,0),(353,'Create/modify groups and permissions','user',1,'group_advance','write','w',0,5,0),(354,'Delete groups','user',1,'group_advance','delete','d',0,5,0),(358,'Export all users','user',1,'user','export','r',0,5,0),(511,'Read employee salaries and payments (yours and your subordinates)','salaries',1,'read',NULL,'r',0,50,0),(512,'Create/modify payments of empoyee salaries','salaries',1,'write',NULL,'w',0,50,0),(514,'Delete payments of employee salary','salaries',1,'delete',NULL,'d',0,50,0),(517,'Read salaries and payments of all employees','salaries',1,'readall',NULL,'r',0,50,0),(519,'Export payments of employee salaries','salaries',1,'export',NULL,'r',0,50,0),(520,'Read loans','loan',1,'read',NULL,'r',0,50,0),(521,'Read loans','loan',1,'read',NULL,'r',0,50,0),(522,'Create/modify loans','loan',1,'write',NULL,'w',0,50,0),(524,'Delete loans','loan',1,'delete',NULL,'d',0,50,0),(525,'Access loan calculator','loan',1,'calc',NULL,'r',0,50,0),(527,'Export loans','loan',1,'export',NULL,'r',0,50,0),(531,'Read services','service',1,'lire',NULL,'r',0,29,0),(532,'Create/modify services','service',1,'creer',NULL,'w',0,29,0),(534,'Delete les services','service',1,'supprimer',NULL,'d',0,29,0),(538,'Export services','service',1,'export',NULL,'r',0,29,0),(561,'Read bank transfer payment orders','paymentbybanktransfer',1,'read',NULL,'r',0,52,0),(562,'Create/modify a bank transfer payment order','paymentbybanktransfer',1,'create',NULL,'w',0,52,0),(563,'Send/Transmit bank transfer payment order','paymentbybanktransfer',1,'send',NULL,'a',0,52,0),(564,'Record Debits/Rejects of bank transfer payment order','paymentbybanktransfer',1,'debit',NULL,'a',0,52,0),(651,'Read bom of Bom','bom',1,'read',NULL,'w',0,65,0),(652,'Create/Update bom of Bom','bom',1,'write',NULL,'w',0,65,0),(653,'Delete bom of Bom','bom',1,'delete',NULL,'w',0,65,0),(661,'Read Manufacturing Order','mrp',1,'read',NULL,'w',0,66,0),(662,'Create/Update Manufacturing Order','mrp',1,'write',NULL,'w',0,66,0),(663,'Delete Manufacturing Order','mrp',1,'delete',NULL,'w',0,66,0),(701,'Lire les dons','don',1,'lire',NULL,'r',1,50,0),(701,'Lire les dons','don',2,'lire',NULL,'r',1,50,0),(702,'Creer/modifier les dons','don',1,'creer',NULL,'w',0,50,0),(702,'Creer/modifier les dons','don',2,'creer',NULL,'w',0,50,0),(703,'Supprimer les dons','don',1,'supprimer',NULL,'d',0,50,0),(703,'Supprimer les dons','don',2,'supprimer',NULL,'d',0,50,0),(750,'Read job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','read','w',0,44,0),(751,'Create/Update job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','write','w',0,44,0),(752,'Delete Job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','delete','w',0,44,0),(771,'Read expense reports (yours and your subordinates)','expensereport',1,'lire',NULL,'r',0,42,0),(772,'Create/modify expense reports','expensereport',1,'creer',NULL,'w',0,42,0),(773,'Delete expense reports','expensereport',1,'supprimer',NULL,'d',0,42,0),(775,'Approve expense reports','expensereport',1,'approve',NULL,'w',0,42,0),(776,'Pay expense reports','expensereport',1,'to_paid',NULL,'w',0,42,0),(777,'Read expense reports of everybody','expensereport',1,'readall',NULL,'r',0,42,0),(778,'Create expense reports for everybody','expensereport',1,'writeall_advance',NULL,'w',0,42,0),(779,'Export expense reports','expensereport',1,'export',NULL,'r',0,42,0),(1001,'Lire les stocks','stock',1,'lire',NULL,'r',1,40,0),(1002,'Creer/Modifier les stocks','stock',1,'creer',NULL,'w',0,40,0),(1003,'Supprimer les stocks','stock',1,'supprimer',NULL,'d',0,40,0),(1004,'Lire mouvements de stocks','stock',1,'mouvement','lire','r',1,40,0),(1005,'Creer/modifier mouvements de stocks','stock',1,'mouvement','creer','w',0,40,0),(1011,'inventoryReadPermission','stock',1,'inventory_advance','read','w',0,39,0),(1012,'inventoryCreatePermission','stock',1,'inventory_advance','write','w',0,39,0),(1101,'Read delivery receipts','expedition',1,'delivery','lire','r',0,40,0),(1102,'Create/modify delivery receipts','expedition',1,'delivery','creer','w',0,40,0),(1104,'Validate delivery receipts','expedition',1,'delivery_advance','validate','d',0,40,0),(1109,'Delete delivery receipts','expedition',1,'delivery','supprimer','d',0,40,0),(1121,'Read supplier proposals','supplier_proposal',1,'lire',NULL,'w',0,35,0),(1122,'Create/modify supplier proposals','supplier_proposal',1,'creer',NULL,'w',0,35,0),(1123,'Validate supplier proposals','supplier_proposal',1,'validate_advance',NULL,'w',0,35,0),(1124,'Envoyer les demandes fournisseurs','supplier_proposal',1,'send_advance',NULL,'w',0,35,0),(1125,'Delete supplier proposals','supplier_proposal',1,'supprimer',NULL,'w',0,35,0),(1126,'Close supplier price requests','supplier_proposal',1,'cloturer',NULL,'w',0,35,0),(1181,'Consulter les fournisseurs','fournisseur',1,'lire',NULL,'r',0,12,0),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',0,12,0),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0,12,0),(1184,'Valider une commande fournisseur','fournisseur',1,'supplier_order_advance','validate','w',0,12,0),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0,12,0),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0,12,0),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0,12,0),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0,12,0),(1189,'Check/Uncheck a supplier order reception','fournisseur',1,'commande_advance','check','w',0,12,0),(1191,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0,12,0),(1201,'Lire les exports','export',1,'lire',NULL,'r',1,72,0),(1202,'Creer/modifier un export','export',1,'creer',NULL,'w',0,72,0),(1231,'Consulter les factures fournisseur','fournisseur',1,'facture','lire','r',0,12,0),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0,12,0),(1233,'Valider une facture fournisseur','fournisseur',1,'supplier_invoice_advance','validate','w',0,12,0),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0,12,0),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0,12,0),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0,12,0),(1251,'Run mass imports of external data (data load)','import',1,'run',NULL,'r',0,70,0),(1321,'Export customer invoices, attributes and payments','facture',1,'facture','export','r',0,11,0),(1321,'Exporter les factures clients, attributs et reglements','facture',2,'facture','export','r',0,10,0),(1322,'Re-open a fully paid invoice','facture',1,'invoice_advance','reopen','r',0,11,0),(1421,'Export sales orders and attributes','commande',1,'commande','export','r',0,11,0),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',0,15,0),(2401,'Read actions/tasks linked to his account','agenda',2,'myactions','read','r',1,15,0),(2402,'Create/modify actions/tasks linked to his account','agenda',1,'myactions','create','w',0,15,0),(2402,'Create/modify actions/tasks linked to his account','agenda',2,'myactions','create','w',0,15,0),(2403,'Delete actions/tasks linked to his account','agenda',1,'myactions','delete','w',0,15,0),(2403,'Delete actions/tasks linked to his account','agenda',2,'myactions','delete','w',0,15,0),(2411,'Read actions/tasks of others','agenda',1,'allactions','read','r',0,15,0),(2411,'Read actions/tasks of others','agenda',2,'allactions','read','r',0,15,0),(2412,'Create/modify actions/tasks of others','agenda',1,'allactions','create','w',0,15,0),(2412,'Create/modify actions/tasks of others','agenda',2,'allactions','create','w',0,15,0),(2413,'Delete actions/tasks of others','agenda',1,'allactions','delete','w',0,15,0),(2413,'Delete actions/tasks of others','agenda',2,'allactions','delete','w',0,15,0),(2414,'Export actions/tasks of others','agenda',1,'export',NULL,'w',0,15,0),(2501,'Read or download documents','ecm',1,'read',NULL,'r',0,10,0),(2503,'Upload a document','ecm',1,'upload',NULL,'w',0,10,0),(2515,'Administer directories of documents','ecm',1,'setup',NULL,'w',0,10,0),(2610,'Générer / modifier la clé API des utilisateurs','api',1,'apikey','generate','w',0,24,0),(3201,'Read archived events and fingerprints','blockedlog',1,'read',NULL,'w',0,76,0),(10001,'Read website content','website',1,'read',NULL,'w',0,50,0),(10002,'Create/modify website content (html and javascript content)','website',1,'write',NULL,'w',0,50,0),(10003,'Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers.','website',1,'writephp',NULL,'w',0,50,0),(10005,'Delete website content','website',1,'delete',NULL,'w',0,50,0),(10008,'Export website content','website',1,'export',NULL,'w',0,50,0),(20001,'Read leave requests (yours and your subordinates)','holiday',1,'read',NULL,'w',0,42,0),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',2,'write',NULL,'w',1,42,0),(20002,'Create/modify leave requests','holiday',1,'write',NULL,'w',0,42,0),(20003,'Delete leave requests','holiday',1,'delete',NULL,'w',0,42,0),(20003,'Supprimer des demandes de congés payés','holiday',2,'delete',NULL,'w',0,42,0),(20004,'Read leave requests for everybody','holiday',1,'readall',NULL,'w',0,42,0),(20004,'Définir les congés payés des utilisateurs','holiday',2,'define_holiday',NULL,'w',0,42,0),(20005,'Create/modify leave requests for everybody','holiday',1,'writeall',NULL,'w',0,42,0),(20005,'Voir les logs de modification des congés payés','holiday',2,'view_log',NULL,'w',0,42,0),(20006,'Setup leave requests of users (setup and update balance)','holiday',1,'define_holiday',NULL,'w',0,42,0),(20006,'Accéder au rapport mensuel des congés payés','holiday',2,'month_report',NULL,'w',0,42,0),(20007,'Approve leave requests','holiday',1,'approve',NULL,'w',0,42,0),(23001,'Read cron jobs','cron',1,'read',NULL,'w',0,50,0),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0,50,0),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0,50,0),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0,50,0),(50151,'Use Point Of Sale (record a sale, add products, record payment)','takepos',1,'run',NULL,'a',0,60,0),(50152,'Can modify added sales lines (prices, discount)','takepos',1,'editlines',NULL,'a',0,60,0),(50153,'Edit ordered sales lines (useful only when option \"Order printers\" has been enabled). Allow to edit sales lines even after the order has been printed','takepos',1,'editorderedlines',NULL,'a',0,60,0),(50401,'Bind products and invoices with accounting accounts','accounting',1,'bind','write','r',0,61,0),(50411,'Read operations in General Ledger','accounting',1,'mouvements','lire','r',0,61,0),(50412,'Write/Edit operations in General Ledger','accounting',1,'mouvements','creer','w',0,61,0),(50414,'Delete operations in Ledger','accounting',1,'mouvements','supprimer','d',0,61,0),(50415,'Delete all operations by year and journal in Ledger','accounting',1,'mouvements','supprimer_tous','d',0,61,0),(50418,'Export operations of the Ledger','accounting',1,'mouvements','export','r',0,61,0),(50420,'Report and export reports (turnover, balance, journals, general ledger)','accounting',1,'comptarapport','lire','r',0,61,0),(50430,'Define and close a fiscal year','accounting',1,'fiscalyear','write','r',0,61,0),(50440,'Manage chart of accounts, setup of accountancy','accounting',1,'chartofaccount',NULL,'r',0,61,0),(55001,'Read surveys','opensurvey',1,'read',NULL,'r',0,40,0),(55002,'Create/modify surveys','opensurvey',1,'write',NULL,'w',0,40,0),(56001,'Read ticket','ticket',1,'read',NULL,'r',0,60,0),(56002,'Create les tickets','ticket',1,'write',NULL,'w',0,60,0),(56003,'Delete les tickets','ticket',1,'delete',NULL,'d',0,60,0),(56004,'Manage tickets','ticket',1,'manage',NULL,'w',0,60,0),(57001,'Read articles','knowledgemanagement',1,'knowledgerecord','read','w',0,90,0),(57002,'Create/Update articles','knowledgemanagement',1,'knowledgerecord','write','w',0,90,0),(57003,'Delete articles','knowledgemanagement',1,'knowledgerecord','delete','w',0,90,0),(59001,'Visualiser les marges','margins',1,'liretous',NULL,'r',0,55,0),(59002,'Définir les marges','margins',1,'creer',NULL,'w',0,55,0),(59003,'Read every user margin','margins',1,'read','all','r',0,55,0),(63001,'Read resources','resource',1,'read',NULL,'w',0,16,0),(63002,'Create/Modify resources','resource',1,'write',NULL,'w',0,16,0),(63003,'Delete resources','resource',1,'delete',NULL,'w',0,16,0),(63004,'Link resources to agenda events','resource',1,'link',NULL,'w',0,16,0),(64001,'DirectPrint','printing',1,'read',NULL,'r',0,52,0),(101250,'Read surveys','opensurvey',2,'survey','read','r',0,40,0),(101251,'Create/modify surveys','opensurvey',2,'survey','write','w',0,40,0),(941601,'Lire les receptions','reception',1,'lire',NULL,'r',0,40,0),(941602,'Creer modifier les receptions','reception',1,'creer',NULL,'w',0,40,0),(941603,'Valider les receptions','reception',1,'reception_advance','validate','d',0,40,0),(941604,'Envoyer les receptions aux clients','reception',1,'reception_advance','send','d',0,40,0),(941605,'Exporter les receptions','reception',1,'reception','export','r',0,40,0),(941606,'Supprimer les receptions','reception',1,'supprimer',NULL,'d',0,40,0); +INSERT INTO `llx_rights_def` VALUES (11,'Read invoices','facture',1,'lire',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(11,'Lire les factures','facture',2,'lire',NULL,'a',1,10,0,'2022-12-11 21:23:36'),(12,'Create and update invoices','facture',1,'creer',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(13,'Devalidate invoices','facture',1,'invoice_advance','unvalidate','a',0,0,0,'2022-12-11 21:23:42'),(13,'Dévalider les factures','facture',2,'invoice_advance','unvalidate','a',0,10,0,'2022-12-11 21:23:36'),(14,'Validate invoices','facture',1,'invoice_advance','validate','a',0,0,0,'2022-12-11 21:23:42'),(14,'Valider les factures','facture',2,'valider',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(15,'Send invoices by email','facture',1,'invoice_advance','send','a',0,0,0,'2022-12-11 21:23:42'),(15,'Envoyer les factures par mail','facture',2,'invoice_advance','send','a',0,10,0,'2022-12-11 21:23:36'),(16,'Issue payments on invoices','facture',1,'paiement',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(16,'Emettre des paiements sur les factures','facture',2,'paiement',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(19,'Delete invoices','facture',1,'supprimer',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(19,'Supprimer les factures','facture',2,'supprimer',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(21,'Lire les propositions commerciales','propale',1,'lire',NULL,'r',1,22,0,'2022-12-11 21:23:36'),(21,'Lire les propositions commerciales','propale',2,'lire',NULL,'r',1,22,0,'2022-12-11 21:23:36'),(22,'Creer/modifier les propositions commerciales','propale',1,'creer',NULL,'w',0,22,0,'2022-12-11 21:23:36'),(22,'Creer/modifier les propositions commerciales','propale',2,'creer',NULL,'w',0,22,0,'2022-12-11 21:23:36'),(24,'Valider les propositions commerciales','propale',1,'propal_advance','validate','d',0,22,0,'2022-12-11 21:23:36'),(24,'Valider les propositions commerciales','propale',2,'valider',NULL,'d',0,22,0,'2022-12-11 21:23:36'),(25,'Envoyer les propositions commerciales aux clients','propale',1,'propal_advance','send','d',0,22,0,'2022-12-11 21:23:36'),(25,'Envoyer les propositions commerciales aux clients','propale',2,'propal_advance','send','d',0,22,0,'2022-12-11 21:23:36'),(26,'Cloturer les propositions commerciales','propale',1,'propal_advance','close','d',0,22,0,'2022-12-11 21:23:36'),(26,'Cloturer les propositions commerciales','propale',2,'propal_advance','close','d',0,22,0,'2022-12-11 21:23:36'),(27,'Supprimer les propositions commerciales','propale',1,'supprimer',NULL,'d',0,22,0,'2022-12-11 21:23:36'),(27,'Supprimer les propositions commerciales','propale',2,'supprimer',NULL,'d',0,22,0,'2022-12-11 21:23:36'),(28,'Exporter les propositions commerciales et attributs','propale',1,'export',NULL,'r',0,22,0,'2022-12-11 21:23:36'),(28,'Exporter les propositions commerciales et attributs','propale',2,'export',NULL,'r',0,22,0,'2022-12-11 21:23:36'),(31,'Lire les produits','produit',1,'lire',NULL,'r',1,25,0,'2022-12-11 21:23:36'),(31,'Lire les produits','produit',2,'lire',NULL,'r',1,25,0,'2022-12-11 21:23:36'),(32,'Creer/modifier les produits','produit',1,'creer',NULL,'w',0,25,0,'2022-12-11 21:23:36'),(32,'Creer/modifier les produits','produit',2,'creer',NULL,'w',0,25,0,'2022-12-11 21:23:36'),(34,'Supprimer les produits','produit',1,'supprimer',NULL,'d',0,25,0,'2022-12-11 21:23:36'),(34,'Supprimer les produits','produit',2,'supprimer',NULL,'d',0,25,0,'2022-12-11 21:23:36'),(38,'Exporter les produits','produit',1,'export',NULL,'r',0,25,0,'2022-12-11 21:23:36'),(38,'Exporter les produits','produit',2,'export',NULL,'r',0,25,0,'2022-12-11 21:23:36'),(39,'Ignore minimum price','produit',1,'ignore_price_min_advance',NULL,'r',0,25,0,'2022-12-11 21:23:36'),(41,'Read projects and tasks (shared projects or projects I am contact for). Can also enter time consumed on assigned tasks (timesheet)','projet',1,'lire',NULL,'r',1,14,0,'2022-12-11 21:23:36'),(42,'Create/modify projects and tasks (shared projects or projects I am contact for)','projet',1,'creer',NULL,'w',0,14,0,'2022-12-11 21:23:36'),(44,'Delete project and tasks (shared projects or projects I am contact for)','projet',1,'supprimer',NULL,'d',0,14,0,'2022-12-11 21:23:36'),(45,'Export projects','projet',1,'export',NULL,'d',0,14,0,'2022-12-11 21:23:36'),(61,'Lire les fiches d\'intervention','ficheinter',1,'lire',NULL,'r',1,41,0,'2022-12-11 21:23:36'),(62,'Creer/modifier les fiches d\'intervention','ficheinter',1,'creer',NULL,'w',0,41,0,'2022-12-11 21:23:36'),(64,'Supprimer les fiches d\'intervention','ficheinter',1,'supprimer',NULL,'d',0,41,0,'2022-12-11 21:23:36'),(67,'Exporter les fiches interventions','ficheinter',1,'export',NULL,'r',0,41,0,'2022-12-11 21:23:36'),(68,'Envoyer les fiches d\'intervention par courriel','ficheinter',1,'ficheinter_advance','send','r',0,41,0,'2022-12-11 21:23:36'),(69,'Valider les fiches d\'intervention ','ficheinter',1,'ficheinter_advance','validate','a',0,41,0,'2022-12-11 21:23:36'),(70,'Dévalider les fiches d\'intervention','ficheinter',1,'ficheinter_advance','unvalidate','a',0,41,0,'2022-12-11 21:23:36'),(71,'Read members\' card','adherent',1,'lire',NULL,'r',0,55,0,'2022-12-11 21:23:36'),(72,'Create/modify members (need also user module permissions if member linked to a user)','adherent',1,'creer',NULL,'w',0,55,0,'2022-12-11 21:23:36'),(74,'Remove members','adherent',1,'supprimer',NULL,'d',0,55,0,'2022-12-11 21:23:36'),(75,'Setup types of membership','adherent',1,'configurer',NULL,'w',0,55,0,'2022-12-11 21:23:36'),(76,'Export members','adherent',1,'export',NULL,'r',0,55,0,'2022-12-11 21:23:36'),(78,'Read subscriptions','adherent',1,'cotisation','lire','r',0,55,0,'2022-12-11 21:23:36'),(79,'Create/modify/remove subscriptions','adherent',1,'cotisation','creer','w',0,55,0,'2022-12-11 21:23:36'),(81,'Read sales orders','commande',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(82,'Creeat/modify sales orders','commande',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(84,'Validate sales orders','commande',1,'order_advance','validate','d',0,0,0,'2022-12-11 21:23:42'),(85,'Generate the documents sales orders','commande',1,'order_advance','generetedoc','d',0,0,0,'2022-12-11 21:23:42'),(86,'Send sales orders by email','commande',1,'order_advance','send','d',0,0,0,'2022-12-11 21:23:42'),(87,'Close sale orders','commande',1,'order_advance','close','d',0,0,0,'2022-12-11 21:23:42'),(88,'Cancel sale orders','commande',1,'order_advance','annuler','d',0,0,0,'2022-12-11 21:23:42'),(89,'Delete sales orders','commande',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:42'),(91,'Lire les charges','tax',1,'charges','lire','r',0,50,0,'2022-12-11 21:23:36'),(91,'Lire les charges','tax',2,'charges','lire','r',1,50,0,'2022-12-11 21:23:36'),(92,'Creer/modifier les charges','tax',1,'charges','creer','w',0,50,0,'2022-12-11 21:23:36'),(92,'Creer/modifier les charges','tax',2,'charges','creer','w',0,50,0,'2022-12-11 21:23:36'),(93,'Supprimer les charges','tax',1,'charges','supprimer','d',0,50,0,'2022-12-11 21:23:36'),(93,'Supprimer les charges','tax',2,'charges','supprimer','d',0,50,0,'2022-12-11 21:23:36'),(94,'Exporter les charges','tax',1,'charges','export','r',0,50,0,'2022-12-11 21:23:36'),(94,'Exporter les charges','tax',2,'charges','export','r',0,50,0,'2022-12-11 21:23:36'),(101,'Lire les expeditions','expedition',1,'lire',NULL,'r',0,40,0,'2022-12-11 21:23:36'),(102,'Creer modifier les expeditions','expedition',1,'creer',NULL,'w',0,40,0,'2022-12-11 21:23:36'),(104,'Valider les expeditions','expedition',1,'shipping_advance','validate','d',0,40,0,'2022-12-11 21:23:36'),(105,'Envoyer les expeditions aux clients','expedition',1,'shipping_advance','send','d',0,40,0,'2022-12-11 21:23:36'),(106,'Exporter les expeditions','expedition',1,'shipment','export','r',0,40,0,'2022-12-11 21:23:36'),(109,'Supprimer les expeditions','expedition',1,'supprimer',NULL,'d',0,40,0,'2022-12-11 21:23:36'),(111,'Read bank account and transactions','banque',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(111,'Lire les comptes bancaires','banque',2,'lire',NULL,'r',1,51,0,'2022-12-11 21:23:36'),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',1,'modifier',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',2,'modifier',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',1,'configurer',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',2,'configurer',NULL,'a',0,51,0,'2022-12-11 21:23:36'),(114,'Rapprocher les ecritures bancaires','banque',1,'consolidate',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(114,'Rapprocher les ecritures bancaires','banque',2,'consolidate',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(115,'Exporter transactions et releves','banque',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0,51,0,'2022-12-11 21:23:36'),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(116,'Virements entre comptes','banque',2,'transfer',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(117,'Gerer les envois de cheques','banque',1,'cheque',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(117,'Gerer les envois de cheques','banque',2,'cheque',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(121,'Read third parties','societe',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(121,'Lire les societes','societe',2,'lire',NULL,'r',1,9,0,'2022-12-11 21:23:36'),(122,'Create and update third parties','societe',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0,9,0,'2022-12-11 21:23:36'),(125,'Delete third parties','societe',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:43'),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0,9,0,'2022-12-11 21:23:36'),(126,'Export third parties','societe',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(126,'Exporter les societes','societe',2,'export',NULL,'r',0,9,0,'2022-12-11 21:23:36'),(130,'Modify thirdparty information payment','societe',1,'thirdparty_paymentinformation_advance','write','w',0,0,0,'2022-12-11 21:23:43'),(141,'Read all projects and tasks (also private projects I am not contact for)','projet',1,'all','lire','r',0,14,0,'2022-12-11 21:23:36'),(142,'Create/modify all projects and tasks (also private projects I am not contact for)','projet',1,'all','creer','w',0,14,0,'2022-12-11 21:23:36'),(144,'Delete all projects and tasks (also private projects I am not contact for)','projet',1,'all','supprimer','d',0,14,0,'2022-12-11 21:23:36'),(151,'Read withdrawals','prelevement',1,'bons','lire','r',1,52,0,'2022-12-11 21:23:36'),(152,'Create/modify a withdrawals','prelevement',1,'bons','creer','w',0,52,0,'2022-12-11 21:23:36'),(153,'Send withdrawals to bank','prelevement',1,'bons','send','a',0,52,0,'2022-12-11 21:23:36'),(154,'credit/refuse withdrawals','prelevement',1,'bons','credit','a',0,52,0,'2022-12-11 21:23:36'),(161,'Lire les contrats','contrat',1,'lire',NULL,'r',1,35,0,'2022-12-11 21:23:36'),(162,'Creer / modifier les contrats','contrat',1,'creer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(163,'Activer un service d\'un contrat','contrat',1,'activer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(164,'Desactiver un service d\'un contrat','contrat',1,'desactiver',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(165,'Supprimer un contrat','contrat',1,'supprimer',NULL,'d',0,35,0,'2022-12-11 21:23:36'),(167,'Export contracts','contrat',1,'export',NULL,'r',0,35,0,'2022-12-11 21:23:36'),(221,'Consulter les mailings','mailing',1,'lire',NULL,'r',1,11,0,'2022-12-11 21:23:36'),(221,'Consulter les mailings','mailing',2,'lire',NULL,'r',1,11,0,'2022-12-11 21:23:36'),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',1,'creer',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',2,'creer',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(223,'Valider les mailings (permet leur envoi)','mailing',1,'valider',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(223,'Valider les mailings (permet leur envoi)','mailing',2,'valider',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(229,'Supprimer les mailings','mailing',1,'supprimer',NULL,'d',0,11,0,'2022-12-11 21:23:36'),(229,'Supprimer les mailings','mailing',2,'supprimer',NULL,'d',0,11,0,'2022-12-11 21:23:36'),(237,'View recipients and info','mailing',1,'mailing_advance','recipient','r',0,11,0,'2022-12-11 21:23:36'),(237,'View recipients and info','mailing',2,'mailing_advance','recipient','r',0,11,0,'2022-12-11 21:23:36'),(238,'Manually send mailings','mailing',1,'mailing_advance','send','w',0,11,0,'2022-12-11 21:23:36'),(238,'Manually send mailings','mailing',2,'mailing_advance','send','w',0,11,0,'2022-12-11 21:23:36'),(239,'Delete mailings after validation and/or sent','mailing',1,'mailing_advance','delete','d',0,11,0,'2022-12-11 21:23:36'),(239,'Delete mailings after validation and/or sent','mailing',2,'mailing_advance','delete','d',0,11,0,'2022-12-11 21:23:36'),(241,'Lire les categories','categorie',1,'lire',NULL,'r',1,20,0,'2022-12-11 21:23:36'),(242,'Creer/modifier les categories','categorie',1,'creer',NULL,'w',0,20,0,'2022-12-11 21:23:36'),(243,'Supprimer les categories','categorie',1,'supprimer',NULL,'d',0,20,0,'2022-12-11 21:23:36'),(251,'Read information of other users, groups and permissions','user',1,'user','lire','r',0,0,0,'2022-12-11 21:23:44'),(252,'Read permissions of other users','user',1,'user_advance','readperms','r',0,0,0,'2022-12-11 21:23:44'),(253,'Create/modify internal and external users, groups and permissions','user',1,'user','creer','w',0,0,0,'2022-12-11 21:23:44'),(254,'Create/modify external users only','user',1,'user_advance','write','w',0,0,0,'2022-12-11 21:23:44'),(255,'Modify the password of other users','user',1,'user','password','w',0,0,0,'2022-12-11 21:23:44'),(256,'Delete or disable other users','user',1,'user','supprimer','d',0,0,0,'2022-12-11 21:23:44'),(262,'Read all third parties (and their objects) by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).','societe',1,'client','voir','r',0,0,0,'2022-12-11 21:23:43'),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',2,'client','voir','r',1,9,0,'2022-12-11 21:23:36'),(281,'Read contacts','societe',1,'contact','lire','r',0,0,0,'2022-12-11 21:23:43'),(281,'Lire les contacts','societe',2,'contact','lire','r',1,9,0,'2022-12-11 21:23:36'),(282,'Create and update contact','societe',1,'contact','creer','w',0,0,0,'2022-12-11 21:23:43'),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0,9,0,'2022-12-11 21:23:36'),(283,'Delete contacts','societe',1,'contact','supprimer','d',0,0,0,'2022-12-11 21:23:43'),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0,9,0,'2022-12-11 21:23:36'),(286,'Export contacts','societe',1,'contact','export','d',0,0,0,'2022-12-11 21:23:43'),(286,'Exporter les contacts','societe',2,'contact','export','d',0,9,0,'2022-12-11 21:23:36'),(301,'Generate PDF sheets of barcodes','barcode',1,'read',NULL,'r',1,0,0,'2022-12-11 21:23:42'),(304,'Read barcodes','barcode',1,'lire_advance',NULL,'r',1,0,0,'2022-12-11 21:23:42'),(305,'Create/modify barcodes','barcode',1,'creer_advance',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(331,'Lire les bookmarks','bookmark',1,'lire',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(332,'Creer/modifier les bookmarks','bookmark',1,'creer',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(333,'Supprimer les bookmarks','bookmark',1,'supprimer',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(341,'Read its own permissions','user',1,'self_advance','readperms','r',0,0,0,'2022-12-11 21:23:44'),(342,'Create/modify of its own user','user',1,'self','creer','w',0,0,0,'2022-12-11 21:23:44'),(343,'Modify its own password','user',1,'self','password','w',0,0,0,'2022-12-11 21:23:44'),(344,'Modify its own permissions','user',1,'self_advance','writeperms','w',0,0,0,'2022-12-11 21:23:44'),(351,'Read groups','user',1,'group_advance','read','r',0,0,0,'2022-12-11 21:23:44'),(352,'Read permissions of groups','user',1,'group_advance','readperms','r',0,0,0,'2022-12-11 21:23:44'),(353,'Create/modify groups and permissions','user',1,'group_advance','write','w',0,0,0,'2022-12-11 21:23:44'),(354,'Delete groups','user',1,'group_advance','delete','d',0,0,0,'2022-12-11 21:23:44'),(358,'Export all users','user',1,'user','export','r',0,0,0,'2022-12-11 21:23:44'),(511,'Read employee salaries and payments (yours and your subordinates)','salaries',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(512,'Create/modify payments of empoyee salaries','salaries',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(514,'Delete payments of employee salary','salaries',1,'delete',NULL,'d',0,0,0,'2022-12-11 21:23:43'),(517,'Read salaries and payments of all employees','salaries',1,'readall',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(519,'Export payments of employee salaries','salaries',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(520,'Read loans','loan',1,'read',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(521,'Read loans','loan',1,'read',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(522,'Create/modify loans','loan',1,'write',NULL,'w',0,50,0,'2022-12-11 21:23:36'),(524,'Delete loans','loan',1,'delete',NULL,'d',0,50,0,'2022-12-11 21:23:36'),(525,'Access loan calculator','loan',1,'calc',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(527,'Export loans','loan',1,'export',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(531,'Read services','service',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(532,'Create/modify services','service',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(533,'Read prices services','service',1,'service_advance','read_prices','w',0,0,0,'2022-12-11 21:23:43'),(534,'Delete les services','service',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:43'),(538,'Export services','service',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(561,'Read bank transfer payment orders','paymentbybanktransfer',1,'read',NULL,'r',0,52,0,'2022-12-11 21:23:36'),(562,'Create/modify a bank transfer payment order','paymentbybanktransfer',1,'create',NULL,'w',0,52,0,'2022-12-11 21:23:36'),(563,'Send/Transmit bank transfer payment order','paymentbybanktransfer',1,'send',NULL,'a',0,52,0,'2022-12-11 21:23:36'),(564,'Record Debits/Rejects of bank transfer payment order','paymentbybanktransfer',1,'debit',NULL,'a',0,52,0,'2022-12-11 21:23:36'),(610,'Read attributes of variants','variants',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:36'),(611,'Create/Update attributes of variants','variants',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:36'),(612,'Delete attributes of variants','variants',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:36'),(651,'Read bom of Bom','bom',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(652,'Create/Update bom of Bom','bom',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(653,'Delete bom of Bom','bom',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(661,'Read Manufacturing Order','mrp',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(662,'Create/Update Manufacturing Order','mrp',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(663,'Delete Manufacturing Order','mrp',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(701,'Lire les dons','don',1,'lire',NULL,'r',1,50,0,'2022-12-11 21:23:36'),(701,'Lire les dons','don',2,'lire',NULL,'r',1,50,0,'2022-12-11 21:23:36'),(702,'Creer/modifier les dons','don',1,'creer',NULL,'w',0,50,0,'2022-12-11 21:23:36'),(702,'Creer/modifier les dons','don',2,'creer',NULL,'w',0,50,0,'2022-12-11 21:23:36'),(703,'Supprimer les dons','don',1,'supprimer',NULL,'d',0,50,0,'2022-12-11 21:23:36'),(703,'Supprimer les dons','don',2,'supprimer',NULL,'d',0,50,0,'2022-12-11 21:23:36'),(750,'Read job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','read','w',0,0,0,'2022-12-11 21:23:43'),(751,'Create/Update job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','write','w',0,0,0,'2022-12-11 21:23:43'),(752,'Delete Job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','delete','w',0,0,0,'2022-12-11 21:23:43'),(771,'Read expense reports (yours and your subordinates)','expensereport',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(772,'Create/modify expense reports','expensereport',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(773,'Delete expense reports','expensereport',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:42'),(775,'Approve expense reports','expensereport',1,'approve',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(776,'Pay expense reports','expensereport',1,'to_paid',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(777,'Read expense reports of everybody','expensereport',1,'readall',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(778,'Create expense reports for everybody','expensereport',1,'writeall_advance',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(779,'Export expense reports','expensereport',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(1001,'Lire les stocks','stock',1,'lire',NULL,'r',1,40,0,'2022-12-11 21:23:36'),(1002,'Creer/Modifier les stocks','stock',1,'creer',NULL,'w',0,40,0,'2022-12-11 21:23:36'),(1003,'Supprimer les stocks','stock',1,'supprimer',NULL,'d',0,40,0,'2022-12-11 21:23:36'),(1004,'Lire mouvements de stocks','stock',1,'mouvement','lire','r',1,40,0,'2022-12-11 21:23:36'),(1005,'Creer/modifier mouvements de stocks','stock',1,'mouvement','creer','w',0,40,0,'2022-12-11 21:23:36'),(1011,'inventoryReadPermission','stock',1,'inventory_advance','read','w',0,39,0,'2022-12-11 21:23:36'),(1012,'inventoryCreatePermission','stock',1,'inventory_advance','write','w',0,39,0,'2022-12-11 21:23:36'),(1101,'Read delivery receipts','expedition',1,'delivery','lire','r',0,40,0,'2022-12-11 21:23:36'),(1102,'Create/modify delivery receipts','expedition',1,'delivery','creer','w',0,40,0,'2022-12-11 21:23:36'),(1104,'Validate delivery receipts','expedition',1,'delivery_advance','validate','d',0,40,0,'2022-12-11 21:23:36'),(1109,'Delete delivery receipts','expedition',1,'delivery','supprimer','d',0,40,0,'2022-12-11 21:23:36'),(1121,'Read supplier proposals','supplier_proposal',1,'lire',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1122,'Create/modify supplier proposals','supplier_proposal',1,'creer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1123,'Validate supplier proposals','supplier_proposal',1,'validate_advance',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1124,'Envoyer les demandes fournisseurs','supplier_proposal',1,'send_advance',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1125,'Delete supplier proposals','supplier_proposal',1,'supprimer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1126,'Close supplier price requests','supplier_proposal',1,'cloturer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1181,'Consulter les fournisseurs','fournisseur',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',0,0,0,'2022-12-11 21:23:42'),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0,0,0,'2022-12-11 21:23:42'),(1184,'Valider une commande fournisseur','fournisseur',1,'supplier_order_advance','validate','w',0,0,0,'2022-12-11 21:23:42'),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0,0,0,'2022-12-11 21:23:42'),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0,0,0,'2022-12-11 21:23:43'),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0,0,0,'2022-12-11 21:23:43'),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0,0,0,'2022-12-11 21:23:43'),(1189,'Check/Uncheck a supplier order reception','fournisseur',1,'commande_advance','check','w',0,0,0,'2022-12-11 21:23:43'),(1191,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0,0,0,'2022-12-11 21:23:43'),(1201,'Lire les exports','export',1,'lire',NULL,'r',1,72,0,'2022-12-11 21:23:36'),(1202,'Creer/modifier un export','export',1,'creer',NULL,'w',0,72,0,'2022-12-11 21:23:36'),(1231,'Consulter les factures fournisseur','fournisseur',1,'facture','lire','r',0,0,0,'2022-12-11 21:23:43'),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0,0,0,'2022-12-11 21:23:43'),(1233,'Valider une facture fournisseur','fournisseur',1,'supplier_invoice_advance','validate','w',0,0,0,'2022-12-11 21:23:43'),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0,0,0,'2022-12-11 21:23:43'),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0,0,0,'2022-12-11 21:23:43'),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0,0,0,'2022-12-11 21:23:43'),(1251,'Run mass imports of external data (data load)','import',1,'run',NULL,'r',0,70,0,'2022-12-11 21:23:36'),(1321,'Export customer invoices, attributes and payments','facture',1,'facture','export','r',0,0,0,'2022-12-11 21:23:42'),(1321,'Exporter les factures clients, attributs et reglements','facture',2,'facture','export','r',0,10,0,'2022-12-11 21:23:36'),(1322,'Re-open a fully paid invoice','facture',1,'invoice_advance','reopen','r',0,0,0,'2022-12-11 21:23:42'),(1421,'Export sales orders and attributes','commande',1,'commande','export','r',0,0,0,'2022-12-11 21:23:42'),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',0,0,0,'2022-12-11 21:23:42'),(2401,'Read actions/tasks linked to his account','agenda',2,'myactions','read','r',1,15,0,'2022-12-11 21:23:36'),(2402,'Create/modify actions/tasks linked to his account','agenda',1,'myactions','create','w',0,0,0,'2022-12-11 21:23:42'),(2402,'Create/modify actions/tasks linked to his account','agenda',2,'myactions','create','w',0,15,0,'2022-12-11 21:23:36'),(2403,'Delete actions/tasks linked to his account','agenda',1,'myactions','delete','w',0,0,0,'2022-12-11 21:23:42'),(2403,'Delete actions/tasks linked to his account','agenda',2,'myactions','delete','w',0,15,0,'2022-12-11 21:23:36'),(2411,'Read actions/tasks of others','agenda',1,'allactions','read','r',0,0,0,'2022-12-11 21:23:42'),(2411,'Read actions/tasks of others','agenda',2,'allactions','read','r',0,15,0,'2022-12-11 21:23:36'),(2412,'Create/modify actions/tasks of others','agenda',1,'allactions','create','w',0,0,0,'2022-12-11 21:23:42'),(2412,'Create/modify actions/tasks of others','agenda',2,'allactions','create','w',0,15,0,'2022-12-11 21:23:36'),(2413,'Delete actions/tasks of others','agenda',1,'allactions','delete','w',0,0,0,'2022-12-11 21:23:42'),(2413,'Delete actions/tasks of others','agenda',2,'allactions','delete','w',0,15,0,'2022-12-11 21:23:36'),(2414,'Export actions/tasks of others','agenda',1,'export',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(2501,'Read or download documents','ecm',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(2503,'Upload a document','ecm',1,'upload',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(2515,'Administer directories of documents','ecm',1,'setup',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(2610,'Générer / modifier la clé API des utilisateurs','api',1,'apikey','generate','w',0,24,0,'2022-12-11 21:23:36'),(3201,'Read archived events and fingerprints','blockedlog',1,'read',NULL,'w',0,76,0,'2022-12-11 21:23:36'),(10001,'Read website content','website',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10002,'Create/modify website content (html and javascript content)','website',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10003,'Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers.','website',1,'writephp',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10005,'Delete website content','website',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10008,'Export website content','website',1,'export',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(20001,'Read leave requests (yours and your subordinates)','holiday',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',2,'write',NULL,'w',1,42,0,'2022-12-11 21:23:36'),(20002,'Create/modify leave requests','holiday',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20003,'Delete leave requests','holiday',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20003,'Supprimer des demandes de congés payés','holiday',2,'delete',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20004,'Read leave requests for everybody','holiday',1,'readall',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20004,'Définir les congés payés des utilisateurs','holiday',2,'define_holiday',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20005,'Create/modify leave requests for everybody','holiday',1,'writeall',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20005,'Voir les logs de modification des congés payés','holiday',2,'view_log',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20006,'Setup leave requests of users (setup and update balance)','holiday',1,'define_holiday',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20006,'Accéder au rapport mensuel des congés payés','holiday',2,'month_report',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20007,'Approve leave requests','holiday',1,'approve',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(23001,'Read cron jobs','cron',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(50151,'Use Point Of Sale (record a sale, add products, record payment)','takepos',1,'run',NULL,'a',0,0,0,'2022-12-11 21:23:44'),(50152,'Can modify added sales lines (prices, discount)','takepos',1,'editlines',NULL,'a',0,0,0,'2022-12-11 21:23:44'),(50153,'Edit ordered sales lines (useful only when option \"Order printers\" has been enabled). Allow to edit sales lines even after the order has been printed','takepos',1,'editorderedlines',NULL,'a',0,0,0,'2022-12-11 21:23:44'),(50401,'Bind products and invoices with accounting accounts','accounting',1,'bind','write','r',0,61,0,'2022-12-11 21:23:36'),(50411,'Read operations in General Ledger','accounting',1,'mouvements','lire','r',0,61,0,'2022-12-11 21:23:36'),(50412,'Write/Edit operations in General Ledger','accounting',1,'mouvements','creer','w',0,61,0,'2022-12-11 21:23:36'),(50414,'Delete operations in Ledger','accounting',1,'mouvements','supprimer','d',0,61,0,'2022-12-11 21:23:36'),(50415,'Delete all operations by year and journal in Ledger','accounting',1,'mouvements','supprimer_tous','d',0,61,0,'2022-12-11 21:23:36'),(50418,'Export operations of the Ledger','accounting',1,'mouvements','export','r',0,61,0,'2022-12-11 21:23:36'),(50420,'Report and export reports (turnover, balance, journals, general ledger)','accounting',1,'comptarapport','lire','r',0,61,0,'2022-12-11 21:23:36'),(50430,'Define and close a fiscal year','accounting',1,'fiscalyear','write','r',0,61,0,'2022-12-11 21:23:36'),(50440,'Manage chart of accounts, setup of accountancy','accounting',1,'chartofaccount',NULL,'r',0,61,0,'2022-12-11 21:23:36'),(55001,'Read surveys','opensurvey',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(55002,'Create/modify surveys','opensurvey',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(56001,'Read ticket','ticket',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:44'),(56002,'Create les tickets','ticket',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(56003,'Delete les tickets','ticket',1,'delete',NULL,'d',0,0,0,'2022-12-11 21:23:44'),(56004,'Manage tickets','ticket',1,'manage',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(57001,'Read articles','knowledgemanagement',1,'knowledgerecord','read','w',0,90,0,'2022-12-11 21:23:36'),(57002,'Create/Update articles','knowledgemanagement',1,'knowledgerecord','write','w',0,90,0,'2022-12-11 21:23:36'),(57003,'Delete articles','knowledgemanagement',1,'knowledgerecord','delete','w',0,90,0,'2022-12-11 21:23:36'),(59001,'Visualiser les marges','margins',1,'liretous',NULL,'r',0,55,0,'2022-12-11 21:23:36'),(59002,'Définir les marges','margins',1,'creer',NULL,'w',0,55,0,'2022-12-11 21:23:36'),(59003,'Read every user margin','margins',1,'read','all','r',0,55,0,'2022-12-11 21:23:36'),(63001,'Read resources','resource',1,'read',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(63002,'Create/Modify resources','resource',1,'write',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(63003,'Delete resources','resource',1,'delete',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(63004,'Link resources to agenda events','resource',1,'link',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(64001,'DirectPrint','printing',1,'read',NULL,'r',0,52,0,'2022-12-11 21:23:36'),(101250,'Read surveys','opensurvey',2,'survey','read','r',0,40,0,'2022-12-11 21:23:36'),(101251,'Create/modify surveys','opensurvey',2,'survey','write','w',0,40,0,'2022-12-11 21:23:36'),(941601,'Lire les receptions','reception',1,'lire',NULL,'r',0,40,0,'2022-12-11 21:23:36'),(941602,'Creer modifier les receptions','reception',1,'creer',NULL,'w',0,40,0,'2022-12-11 21:23:36'),(941603,'Valider les receptions','reception',1,'reception_advance','validate','d',0,40,0,'2022-12-11 21:23:36'),(941604,'Envoyer les receptions aux clients','reception',1,'reception_advance','send','d',0,40,0,'2022-12-11 21:23:36'),(941605,'Exporter les receptions','reception',1,'reception','export','r',0,40,0,'2022-12-11 21:23:36'),(941606,'Supprimer les receptions','reception',1,'supprimer',NULL,'d',0,40,0,'2022-12-11 21:23:36'); /*!40000 ALTER TABLE `llx_rights_def` ENABLE KEYS */; UNLOCK TABLES; @@ -11455,7 +12090,7 @@ DROP TABLE IF EXISTS `llx_salary`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_salary` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `fk_user` int(11) NOT NULL, @@ -11465,19 +12100,19 @@ CREATE TABLE `llx_salary` ( `amount` double(24,8) NOT NULL DEFAULT 0.00000000, `fk_projet` int(11) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `datesp` date DEFAULT NULL, `dateep` date DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `paye` smallint(6) NOT NULL DEFAULT 0, `fk_account` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11501,10 +12136,10 @@ CREATE TABLE `llx_salary_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_salary_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11516,6 +12151,210 @@ LOCK TABLES `llx_salary_extrafields` WRITE; /*!40000 ALTER TABLE `llx_salary_extrafields` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_sellyoursaas_blacklistcontent` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistcontent`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistcontent` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` varchar(128) NOT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + KEY `idx_sellyoursaas_blacklistcontent_date_creation` (`date_creation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistcontent` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistcontent` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistcontent` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistcontent` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_sellyoursaas_blacklistdir` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistdir`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistdir` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` varchar(128) NOT NULL, + `noblacklistif` varchar(255) DEFAULT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_sellyoursaas_blacklistdir_content` (`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistdir` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistdir` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistdir` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistdir` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_sellyoursaas_blacklistfrom` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistfrom`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistfrom` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` varchar(128) NOT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_sellyoursaas_blacklistfrom_content` (`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistfrom` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistfrom` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistfrom` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistfrom` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_sellyoursaas_blacklistip` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistip`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistip` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` varchar(128) NOT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + `date_use` datetime DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_sellyoursaas_blacklistip_content` (`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistip` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistip` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistip` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistip` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_sellyoursaas_blacklistmail` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistmail`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistmail` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` text NOT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + KEY `idx_sellyoursaas_blacklistmail_date_creation` (`date_creation`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistmail` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistmail` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistmail` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistmail` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_sellyoursaas_blacklistto` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistto`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistto` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` varchar(128) NOT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_sellyoursaas_blacklistto_content` (`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistto` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistto` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistto` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistto` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_sellyoursaas_deploymentserver` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_deploymentserver`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_deploymentserver` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `ref` varchar(128) NOT NULL, + `entity` int(11) NOT NULL DEFAULT 1, + `note_private` text DEFAULT NULL, + `date_creation` datetime NOT NULL, + `date_modification` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 0, + `fk_country` int(11) DEFAULT NULL, + `fromdomainname` varchar(128) DEFAULT NULL, + `ipaddress` varchar(128) NOT NULL, + `servercustomerannounce` text DEFAULT NULL, + `servercustomerannouncestatus` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_deploymentserver` +-- + +LOCK TABLES `llx_sellyoursaas_deploymentserver` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_deploymentserver` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_deploymentserver` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_session` -- @@ -11524,14 +12363,14 @@ DROP TABLE IF EXISTS `llx_session`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_session` ( - `session_id` varchar(50) CHARACTER SET utf8mb4 NOT NULL, - `session_variable` text CHARACTER SET utf8mb4 DEFAULT NULL, + `session_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `session_variable` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `last_accessed` datetime NOT NULL, `fk_user` int(11) NOT NULL, - `remote_ip` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL, - `user_agent` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `remote_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `user_agent` varchar(255) DEFAULT NULL, PRIMARY KEY (`session_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11556,42 +12395,42 @@ CREATE TABLE `llx_societe` ( `parent` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, - `nom` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `nom` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_client` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_compta` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_compta_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(60) DEFAULT NULL, + `code_client` varchar(24) DEFAULT NULL, + `code_fournisseur` varchar(24) DEFAULT NULL, + `code_compta` varchar(24) DEFAULT NULL, + `code_compta_fournisseur` varchar(24) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_departement` int(11) DEFAULT 0, `fk_pays` int(11) DEFAULT 0, - `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `email` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `socialnetworks` text COLLATE utf8_unicode_ci DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `email` varchar(128) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, `fk_effectif` int(11) DEFAULT 0, `fk_typent` int(11) DEFAULT NULL, `fk_forme_juridique` int(11) DEFAULT 0, - `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, - `siren` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `siret` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `ape` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idprof4` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `tva_intra` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, + `siren` varchar(128) DEFAULT NULL, + `siret` varchar(128) DEFAULT NULL, + `ape` varchar(128) DEFAULT NULL, + `idprof4` varchar(128) DEFAULT NULL, + `tva_intra` varchar(20) DEFAULT NULL, `capital` double(24,8) DEFAULT NULL, `fk_stcomm` int(11) NOT NULL DEFAULT 0, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `prefix_comm` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `prefix_comm` varchar(5) DEFAULT NULL, `client` tinyint(4) DEFAULT 0, `fournisseur` tinyint(4) DEFAULT 0, - `supplier_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `fk_prospectlevel` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `supplier_account` varchar(32) DEFAULT NULL, + `fk_prospectlevel` varchar(12) DEFAULT NULL, `customer_bad` tinyint(4) DEFAULT 0, `customer_rate` double DEFAULT 0, `supplier_rate` double DEFAULT 0, @@ -11601,6 +12440,7 @@ CREATE TABLE `llx_societe` ( `remise_supplier` double DEFAULT 0, `mode_reglement` tinyint(4) DEFAULT NULL, `cond_reglement` tinyint(4) DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, `transport_mode` tinyint(4) DEFAULT NULL, `mode_reglement_supplier` int(11) DEFAULT NULL, `outstanding_limit` double(24,8) DEFAULT NULL, @@ -11614,29 +12454,30 @@ CREATE TABLE `llx_societe` ( `localtax1_value` double(6,3) DEFAULT NULL, `localtax2_assuj` tinyint(4) DEFAULT 0, `localtax2_value` double(6,3) DEFAULT NULL, - `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `price_level` int(11) DEFAULT NULL, - `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` tinyint(4) DEFAULT 1, - `logo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `idprof5` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idprof6` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `logo` varchar(255) DEFAULT NULL, + `idprof5` varchar(128) DEFAULT NULL, + `idprof6` varchar(128) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT 0, - `webservices_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `webservices_key` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `name_alias` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `webservices_url` varchar(255) DEFAULT NULL, + `webservices_key` varchar(128) DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `name_alias` varchar(128) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, - `logo_squarred` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `logo_squarred` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_prefix_comm` (`prefix_comm`,`entity`), UNIQUE KEY `uk_societe_code_client` (`code_client`,`entity`), @@ -11645,8 +12486,9 @@ CREATE TABLE `llx_societe` ( KEY `idx_societe_user_creat` (`fk_user_creat`), KEY `idx_societe_user_modif` (`fk_user_modif`), KEY `idx_societe_barcode` (`barcode`), - KEY `idx_societe_warehouse` (`fk_warehouse`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + KEY `idx_societe_warehouse` (`fk_warehouse`), + KEY `idx_societe_nom` (`nom`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11655,7 +12497,7 @@ CREATE TABLE `llx_societe` ( LOCK TABLES `llx_societe` WRITE; /*!40000 ALTER TABLE `llx_societe` DISABLE KEYS */; -INSERT INTO `llx_societe` VALUES (1,0,NULL,'2018-01-16 15:21:09','2012-07-08 14:21:44','Indian SAS',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,117,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,'0','','','','','',5000.00000000,1,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'en_IN',NULL,NULL,1,'indiancompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0,NULL),(2,0,NULL,'2018-07-30 11:45:49','2012-07-08 14:23:48','Teclib',1,NULL,NULL,'CU1108-0001','SU1108-0001','411CU11080001','401SU11080001','',NULL,'Paris',0,1,NULL,NULL,'www.teclib.com',NULL,NULL,4,3,57,'0','123456789','','ACE14','','',400000.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'fr_FR',NULL,NULL,1,'teclibcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0,NULL),(3,0,NULL,'2017-02-16 00:47:25','2012-07-08 22:42:12','Spanish Comp',1,NULL,NULL,'SPANISHCOMP','SU1601-0009',NULL,NULL,'1 via mallere',NULL,'Madrid',123,4,NULL,NULL,NULL,NULL,NULL,3,4,408,'0','','','','','',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'es_AR',NULL,NULL,1,'spanishcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0,NULL),(4,0,NULL,'2018-01-22 17:24:53','2012-07-08 22:48:18','Prospector Vaalen',1,NULL,NULL,'CU1303-0014',NULL,NULL,NULL,'',NULL,'Bruxelles',103,2,NULL,NULL,NULL,NULL,NULL,3,4,201,'0','12345678','','','','',0.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'valeencompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0,NULL),(5,0,NULL,'2017-02-21 11:01:17','2012-07-08 23:22:57','NoCountry GmBh',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'nocountrycomp.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0,NULL),(6,0,NULL,'2018-01-16 15:35:56','2012-07-09 00:15:09','Swiss Touch',1,NULL,NULL,'CU1601-0018','SU1601-0010',NULL,NULL,'',NULL,'Genevia',0,6,NULL,NULL,NULL,'swisstouch@example.ch',NULL,2,2,601,'0','','','','','',56000.00000000,0,NULL,NULL,NULL,3,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'swisstouch.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0,NULL),(7,0,NULL,'2018-01-16 15:38:32','2012-07-09 01:24:26','Generic customer',1,NULL,NULL,'CU1302-0011',NULL,NULL,NULL,'',NULL,NULL,0,7,NULL,NULL,NULL,'ttt@ttt.com',NULL,NULL,8,NULL,'0','','','','','',0.00000000,0,'Generic customer to use for Point Of Sale module.
',NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'genericcustomer.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0,NULL),(10,0,NULL,'2020-01-13 12:57:02','2012-07-10 15:13:08','NLTechno',1,NULL,NULL,'CU1212-0005','SU1601-0011','411CU12120005','401SU16010011','',NULL,NULL,0,102,NULL,NULL,NULL,'vsmith@email.com',NULL,1,4,54,'0','493861496','49386149600039','6209Z','22-01-2007','FR123456789',10000.00000000,0,NULL,'aa < aa
\r\ndddd',NULL,1,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,'123456789012',NULL,'fr_FR',NULL,NULL,1,'logo_nltechno_94x100.png','','',0,NULL,NULL,NULL,NULL,'The OpenSource company',0,NULL,'generic_odt:/home/ldestailleur/git/dolibarr_11.0/documents/doctemplates/thirdparties/template_thirdparty.ods',0,'',NULL,0,NULL),(11,0,NULL,'2019-11-28 11:52:58','2012-07-10 18:35:57','Company Corp 1',1,NULL,NULL,'CU1510-0017',NULL,'7051',NULL,'21 Green Hill street','75500','Los Angeles',0,11,'444123456',NULL,'companycorp1.com','companycorp1@example.com','{\"skype\":\"corp1\"}',1,1,NULL,'0','AB1234567','','','','USABS123',10000.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'comapnycorp1company.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0,NULL),(12,0,NULL,'2019-09-26 11:38:11','2012-07-11 16:18:08','Dupont Alain',1,NULL,NULL,'CU1601-0019',NULL,'411CU16010019',NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,'pcurie@example.com',NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'pierrecurie.jpg','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0,NULL),(13,0,NULL,'2019-10-08 09:57:51','2012-07-11 17:13:20','Company Corp 2',1,NULL,NULL,'CU1910-00021','SU1510-0008','411CU191000021','401SU15100008','',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'companycorp2company.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0,NULL),(17,0,NULL,'2019-11-28 15:02:49','2013-08-01 02:41:26','Book Keeping Company',1,NULL,NULL,'CU1108-0004','SU1108-0004',NULL,'401SU11080004','The French Company',NULL,'Paris',0,1,NULL,NULL,NULL,NULL,'[]',1,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0,NULL),(19,0,NULL,'2019-09-26 12:03:13','2015-01-12 12:23:05','Magic Food Store',1,NULL,NULL,'CU1301-0008',NULL,NULL,NULL,'65 holdywood boulevard','123456','BigTown',0,4,NULL,'0101',NULL,'myemail@domain.com',NULL,NULL,NULL,NULL,'0','','','10/10/2010','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'magicfoodstore.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,'sepamandate',NULL,NULL,NULL,0,NULL),(25,0,NULL,'2018-01-22 17:21:17','2015-03-10 15:47:37','Print Company',1,NULL,NULL,'CU1303-0016','SU1303-0007',NULL,NULL,'21 Gutenberg street','45600','Berlin',0,5,NULL,NULL,NULL,'printcompany@example.com',NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'de_DE',NULL,NULL,1,'printcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0,NULL),(26,0,NULL,'2019-09-26 12:06:05','2017-02-12 23:17:04','Calculation Power',1,NULL,NULL,'CU1702-0020',NULL,'411CU17020020',NULL,'',NULL,'Calgary',0,14,NULL,NULL,NULL,'calculationpower@example.com',NULL,NULL,NULL,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0.000,0,0.000,NULL,NULL,'en_US',NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0,NULL),(29,0,NULL,'2020-01-13 12:56:22','2020-01-06 00:39:58','Patient',1,NULL,NULL,'CU2001-00022',NULL,'411CU200100022',NULL,'',NULL,NULL,0,117,'01','02',NULL,NULL,'null',NULL,NULL,NULL,NULL,'','','','','',NULL,0,'aa < ddd',NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.000,NULL,0.000,NULL,NULL,NULL,'patient@cabinetmed',NULL,1,NULL,'','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0,NULL),(30,0,NULL,'2020-01-17 14:21:26','2020-01-13 17:19:24','Italo',1,NULL,NULL,'CU2001-00023',NULL,'411CU200100023',NULL,'12 Alagio','123','Milano',777,3,NULL,NULL,NULL,NULL,'[]',NULL,NULL,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,0,0.000,NULL,4,NULL,NULL,NULL,1,NULL,'','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0,NULL); +INSERT INTO `llx_societe` VALUES (1,0,NULL,'2018-01-16 15:21:09','2012-07-08 14:21:44','Indian SAS',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,117,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,'0','','','','','',5000.00000000,1,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'en_IN',NULL,NULL,1,'indiancompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(2,0,NULL,'2018-07-30 11:45:49','2012-07-08 14:23:48','Teclib',1,NULL,NULL,'CU1108-0001','SU1108-0001','411CU11080001','401SU11080001','',NULL,'Paris',0,1,NULL,NULL,'www.teclib.com',NULL,NULL,4,3,57,'0','123456789','','ACE14','','',400000.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'fr_FR',NULL,NULL,1,'teclibcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,0,'',NULL,0,NULL),(3,0,NULL,'2017-02-16 00:47:25','2012-07-08 22:42:12','Spanish Comp',1,NULL,NULL,'SPANISHCOMP','SU1601-0009',NULL,NULL,'1 via mallere',NULL,'Madrid',123,4,NULL,NULL,NULL,NULL,NULL,3,4,408,'0','','','','','',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'es_AR',NULL,NULL,1,'spanishcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(4,0,NULL,'2018-01-22 17:24:53','2012-07-08 22:48:18','Prospector Vaalen',1,NULL,NULL,'CU1303-0014',NULL,NULL,NULL,'',NULL,'Bruxelles',103,2,NULL,NULL,NULL,NULL,NULL,3,4,201,'0','12345678','','','','',0.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'valeencompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(5,0,NULL,'2017-02-21 11:01:17','2012-07-08 23:22:57','NoCountry GmBh',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'nocountrycomp.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(6,0,NULL,'2018-01-16 15:35:56','2012-07-09 00:15:09','Swiss Touch',1,NULL,NULL,'CU1601-0018','SU1601-0010',NULL,NULL,'',NULL,'Genevia',0,6,NULL,NULL,NULL,'swisstouch@example.ch',NULL,2,2,601,'0','','','','','',56000.00000000,0,NULL,NULL,NULL,3,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'swisstouch.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(7,0,NULL,'2018-01-16 15:38:32','2012-07-09 01:24:26','Generic customer',1,NULL,NULL,'CU1302-0011',NULL,NULL,NULL,'',NULL,NULL,0,7,NULL,NULL,NULL,'ttt@ttt.com',NULL,NULL,8,NULL,'0','','','','','',0.00000000,0,'Generic customer to use for Point Of Sale module.
',NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'genericcustomer.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(10,0,NULL,'2020-01-13 12:57:02','2012-07-10 15:13:08','NLTechno',1,NULL,NULL,'CU1212-0005','SU1601-0011','411CU12120005','401SU16010011','',NULL,NULL,0,102,NULL,NULL,NULL,'vsmith@email.com',NULL,1,4,54,'0','493861496','49386149600039','6209Z','22-01-2007','FR123456789',10000.00000000,0,NULL,'aa < aa
\r\ndddd',NULL,1,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,'123456789012',NULL,'fr_FR',NULL,NULL,1,'logo_nltechno_94x100.png','','',0,NULL,NULL,NULL,NULL,'The OpenSource company',0,NULL,'generic_odt:/home/ldestailleur/git/dolibarr_11.0/documents/doctemplates/thirdparties/template_thirdparty.ods',NULL,0,'',NULL,0,NULL),(11,0,NULL,'2019-11-28 11:52:58','2012-07-10 18:35:57','Company Corp 1',1,NULL,NULL,'CU1510-0017',NULL,'7051',NULL,'21 Green Hill street','75500','Los Angeles',0,11,'444123456',NULL,'companycorp1.com','companycorp1@example.com','{\"skype\":\"corp1\"}',1,1,NULL,'0','AB1234567','','','','USABS123',10000.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'comapnycorp1company.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(12,0,NULL,'2019-09-26 11:38:11','2012-07-11 16:18:08','Dupont Alain',1,NULL,NULL,'CU1601-0019',NULL,'411CU16010019',NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,'pcurie@example.com',NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'pierrecurie.jpg','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,0,'',NULL,0,NULL),(13,0,NULL,'2019-10-08 09:57:51','2012-07-11 17:13:20','Company Corp 2',1,NULL,NULL,'CU1910-00021','SU1510-0008','411CU191000021','401SU15100008','',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'companycorp2company.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(17,0,NULL,'2019-11-28 15:02:49','2013-08-01 02:41:26','Book Keeping Company',1,NULL,NULL,'CU1108-0004','SU1108-0004',NULL,'401SU11080004','The French Company',NULL,'Paris',0,1,NULL,NULL,NULL,NULL,'[]',1,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(19,0,NULL,'2019-09-26 12:03:13','2015-01-12 12:23:05','Magic Food Store',1,NULL,NULL,'CU1301-0008',NULL,NULL,NULL,'65 holdywood boulevard','123456','BigTown',0,4,NULL,'0101',NULL,'myemail@domain.com',NULL,NULL,NULL,NULL,'0','','','10/10/2010','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'magicfoodstore.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,'sepamandate',NULL,NULL,NULL,NULL,0,NULL),(25,0,NULL,'2018-01-22 17:21:17','2015-03-10 15:47:37','Print Company',1,NULL,NULL,'CU1303-0016','SU1303-0007',NULL,NULL,'21 Gutenberg street','45600','Berlin',0,5,NULL,NULL,NULL,'printcompany@example.com',NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'de_DE',NULL,NULL,1,'printcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(26,0,NULL,'2019-09-26 12:06:05','2017-02-12 23:17:04','Calculation Power',1,NULL,NULL,'CU1702-0020',NULL,'411CU17020020',NULL,'',NULL,'Calgary',0,14,NULL,NULL,NULL,'calculationpower@example.com',NULL,NULL,NULL,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0.000,0,0.000,NULL,NULL,'en_US',NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(29,0,NULL,'2020-01-13 12:56:22','2020-01-06 00:39:58','Patient',1,NULL,NULL,'CU2001-00022',NULL,'411CU200100022',NULL,'',NULL,NULL,0,117,'01','02',NULL,NULL,'null',NULL,NULL,NULL,NULL,'','','','','',NULL,0,'aa < ddd',NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.000,NULL,0.000,NULL,NULL,NULL,'patient@cabinetmed',NULL,1,NULL,'','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,0,'',NULL,0,NULL),(30,0,NULL,'2020-01-17 14:21:26','2020-01-13 17:19:24','Italo',1,NULL,NULL,'CU2001-00023',NULL,'411CU200100023',NULL,'12 Alagio','123','Milano',777,3,NULL,NULL,NULL,NULL,'[]',NULL,NULL,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,0,0.000,NULL,4,NULL,NULL,NULL,1,NULL,'','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL); /*!40000 ALTER TABLE `llx_societe` ENABLE KEYS */; UNLOCK TABLES; @@ -11669,24 +12511,24 @@ DROP TABLE IF EXISTS `llx_societe_account`; CREATE TABLE `llx_societe_account` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `login` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `pass_encoding` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass_temp` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `login` varchar(128) NOT NULL, + `pass_encoding` varchar(24) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, + `pass_temp` varchar(128) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `site` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `site` varchar(128) DEFAULT NULL, `fk_website` int(11) DEFAULT NULL, - `note_private` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` mediumtext DEFAULT NULL, `date_last_login` datetime DEFAULT NULL, `date_previous_login` datetime DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) DEFAULT NULL, - `key_account` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `site_account` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `key_account` varchar(128) DEFAULT NULL, + `site_account` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_account_login_website_soc` (`entity`,`fk_soc`,`login`,`site`,`fk_website`), UNIQUE KEY `uk_societe_account_key_account_soc` (`entity`,`fk_soc`,`key_account`,`site`,`fk_website`), @@ -11695,9 +12537,8 @@ CREATE TABLE `llx_societe_account` ( KEY `idx_societe_account_status` (`status`), KEY `idx_societe_account_fk_website` (`fk_website`), KEY `idx_societe_account_fk_soc` (`fk_soc`), - CONSTRAINT `llx_societe_account_fk_societe` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), - CONSTRAINT `llx_societe_account_fk_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + CONSTRAINT `llx_societe_account_fk_societe` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11721,20 +12562,20 @@ CREATE TABLE `llx_societe_address` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(30) DEFAULT NULL, `fk_soc` int(11) DEFAULT 0, - `name` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `name` varchar(60) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_pays` int(11) DEFAULT 0, - `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11757,10 +12598,10 @@ CREATE TABLE `llx_societe_commerciaux` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_soc` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_commerciaux` (`fk_soc`,`fk_user`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11788,7 +12629,7 @@ CREATE TABLE `llx_societe_contacts` ( `fk_c_type_contact` int(11) NOT NULL, `fk_socpeople` int(11) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_societe_contacts_idx1` (`entity`,`fk_soc`,`fk_c_type_contact`,`fk_socpeople`), KEY `fk_societe_contacts_fk_c_type_contact` (`fk_c_type_contact`), @@ -11797,7 +12638,7 @@ CREATE TABLE `llx_societe_contacts` ( CONSTRAINT `fk_societe_contacts_fk_c_type_contact` FOREIGN KEY (`fk_c_type_contact`) REFERENCES `llx_c_type_contact` (`rowid`), CONSTRAINT `fk_societe_contacts_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_societe_contacts_fk_socpeople` FOREIGN KEY (`fk_socpeople`) REFERENCES `llx_socpeople` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11820,14 +12661,14 @@ CREATE TABLE `llx_societe_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `height` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `weight` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `prof` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `height` varchar(128) DEFAULT NULL, + `weight` varchar(128) DEFAULT NULL, + `prof` varchar(128) DEFAULT NULL, `birthdate` date DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_extrafields` (`fk_object`) -) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11851,14 +12692,14 @@ CREATE TABLE `llx_societe_perentity` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_soc` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `accountancy_code_customer` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_supplier` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `accountancy_code_customer` varchar(24) DEFAULT NULL, + `accountancy_code_supplier` varchar(24) DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_perentity` (`fk_soc`,`entity`), KEY `idx_societe_perentity_fk_soc` (`fk_soc`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11885,7 +12726,7 @@ CREATE TABLE `llx_societe_prices` ( `fk_user_author` int(11) DEFAULT NULL, `price_level` tinyint(4) DEFAULT 1, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11913,9 +12754,9 @@ CREATE TABLE `llx_societe_remise` ( `datec` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `remise_client` double(6,3) NOT NULL DEFAULT 0.000, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11948,14 +12789,16 @@ CREATE TABLE `llx_societe_remise_except` ( `fk_facture_line` int(11) DEFAULT NULL, `fk_facture` int(11) DEFAULT NULL, `fk_facture_source` int(11) DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci NOT NULL, + `description` text NOT NULL, `multicurrency_amount_ht` double(24,8) NOT NULL DEFAULT 0.00000000, `multicurrency_amount_tva` double(24,8) NOT NULL DEFAULT 0.00000000, `multicurrency_amount_ttc` double(24,8) NOT NULL DEFAULT 0.00000000, `fk_invoice_supplier_line` int(11) DEFAULT NULL, `fk_invoice_supplier` int(11) DEFAULT NULL, `fk_invoice_supplier_source` int(11) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', + `multicurrency_code` varchar(3) DEFAULT NULL, + `multicurrency_tx` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_societe_remise_except_fk_user` (`fk_user`), KEY `idx_societe_remise_except_fk_soc` (`fk_soc`), @@ -11975,7 +12818,7 @@ CREATE TABLE `llx_societe_remise_except` ( CONSTRAINT `fk_societe_remise_fk_invoice_supplier_source` FOREIGN KEY (`fk_invoice_supplier`) REFERENCES `llx_facture_fourn` (`rowid`), CONSTRAINT `fk_societe_remise_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_societe_remise_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11984,7 +12827,7 @@ CREATE TABLE `llx_societe_remise_except` ( LOCK TABLES `llx_societe_remise_except` WRITE; /*!40000 ALTER TABLE `llx_societe_remise_except` DISABLE KEYS */; -INSERT INTO `llx_societe_remise_except` VALUES (2,1,19,0,'2015-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,NULL,NULL,NULL,'hfghgf',0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,''),(14,1,17,1,'2020-01-01 22:06:30',79.16444000,9.89556000,89.06000000,12.500,12,NULL,NULL,NULL,'(CREDIT_NOTE)',0.00000000,0.00000000,0.00000000,NULL,NULL,27,''),(15,1,19,0,'2020-01-16 02:34:47',20.50000000,0.00000000,20.50000000,0.000,12,1065,NULL,224,'(DEPOSIT)',20.50000000,0.00000000,20.50000000,NULL,NULL,NULL,''),(16,1,1,0,'2020-01-19 14:49:41',10.00000000,1.96000000,11.96000000,19.600,12,NULL,NULL,NULL,'111',10.00000000,1.96000000,11.96000000,NULL,NULL,NULL,''),(19,1,1,0,'2020-01-19 15:16:27',48.60000000,1.94000000,50.54000000,4.000,12,NULL,NULL,228,'(DEPOSIT)',48.60000000,1.94000000,50.54000000,NULL,NULL,NULL,''); +INSERT INTO `llx_societe_remise_except` VALUES (2,1,19,0,'2015-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,NULL,NULL,NULL,'hfghgf',0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,'',NULL,NULL),(14,1,17,1,'2020-01-01 22:06:30',79.16444000,9.89556000,89.06000000,12.500,12,NULL,NULL,NULL,'(CREDIT_NOTE)',0.00000000,0.00000000,0.00000000,NULL,NULL,27,'',NULL,NULL),(15,1,19,0,'2020-01-16 02:34:47',20.50000000,0.00000000,20.50000000,0.000,12,1065,NULL,224,'(DEPOSIT)',20.50000000,0.00000000,20.50000000,NULL,NULL,NULL,'',NULL,NULL),(16,1,1,0,'2020-01-19 14:49:41',10.00000000,1.96000000,11.96000000,19.600,12,NULL,NULL,NULL,'111',10.00000000,1.96000000,11.96000000,NULL,NULL,NULL,'',NULL,NULL),(19,1,1,0,'2020-01-19 15:16:27',48.60000000,1.94000000,50.54000000,4.000,12,NULL,NULL,228,'(DEPOSIT)',48.60000000,1.94000000,50.54000000,NULL,NULL,NULL,'',NULL,NULL); /*!40000 ALTER TABLE `llx_societe_remise_except` ENABLE KEYS */; UNLOCK TABLES; @@ -12003,9 +12846,9 @@ CREATE TABLE `llx_societe_remise_supplier` ( `datec` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `remise_supplier` double(6,3) NOT NULL DEFAULT 0.000, - `note` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `note` mediumtext DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12027,46 +12870,49 @@ DROP TABLE IF EXISTS `llx_societe_rib`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_societe_rib` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `type` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(32) NOT NULL, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, - `bank` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, - `bic` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL, - `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, - `owner_address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(200) DEFAULT NULL, + `bank` varchar(255) DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(20) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` varchar(255) DEFAULT NULL, `default_rib` smallint(6) NOT NULL DEFAULT 0, - `rum` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `state_id` int(11) DEFAULT NULL, + `fk_country` int(11) DEFAULT NULL, + `currency_code` varchar(3) DEFAULT NULL, + `rum` varchar(32) DEFAULT NULL, `date_rum` date DEFAULT NULL, - `frstrecur` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'FRST', - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `last_four` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL, - `card_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cvn` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `frstrecur` varchar(16) DEFAULT 'FRST', + `import_key` varchar(14) DEFAULT NULL, + `last_four` varchar(4) DEFAULT NULL, + `card_type` varchar(255) DEFAULT NULL, + `cvn` varchar(255) DEFAULT NULL, `exp_date_month` int(11) DEFAULT NULL, `exp_date_year` int(11) DEFAULT NULL, - `country_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `country_code` varchar(10) DEFAULT NULL, `approved` int(11) DEFAULT 0, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, `ending_date` date DEFAULT NULL, `max_total_amount_of_all_payments` double(24,8) DEFAULT NULL, - `preapproval_key` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `preapproval_key` varchar(255) DEFAULT NULL, `starting_date` date DEFAULT NULL, `total_amount_of_all_payments` double(24,8) DEFAULT NULL, - `stripe_card_ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `stripe_card_ref` varchar(128) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT 1, - `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ipaddress` varchar(68) COLLATE utf8_unicode_ci DEFAULT NULL, - `stripe_account` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, + `ipaddress` varchar(68) DEFAULT NULL, + `stripe_account` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12075,7 +12921,7 @@ CREATE TABLE `llx_societe_rib` ( LOCK TABLES `llx_societe_rib` WRITE; /*!40000 ALTER TABLE `llx_societe_rib` DISABLE KEYS */; -INSERT INTO `llx_societe_rib` VALUES (1,'ban',19,'2017-02-21 15:50:32','2017-02-21 11:53:08','Morgan Bank','Morgan Bank','','','','','PSPBFIHH','ES80 2310 0001 1800 0001 2345','Royal via,\r\nMadrid','Mr Esposito','10 via ferrata,\r\nMadrid',1,'RUM1301-0008-0',NULL,'FRST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL); +INSERT INTO `llx_societe_rib` VALUES (1,'ban',19,'2017-02-21 15:50:32','2017-02-21 11:53:08','Morgan Bank','Morgan Bank','','','','','PSPBFIHH','ES80 2310 0001 1800 0001 2345','Royal via,\r\nMadrid','Mr Esposito','10 via ferrata,\r\nMadrid',1,NULL,NULL,NULL,'RUM1301-0008-0',NULL,'FRST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_societe_rib` ENABLE KEYS */; UNLOCK TABLES; @@ -12092,42 +12938,43 @@ CREATE TABLE `llx_socpeople` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_soc` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `civility` varchar(6) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` text DEFAULT NULL, `fk_departement` int(11) DEFAULT NULL, `fk_pays` int(11) DEFAULT 0, `birthday` date DEFAULT NULL, - `poste` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone_perso` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone_mobile` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `fax` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `socialnetworks` text COLLATE utf8_unicode_ci DEFAULT NULL, - `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `poste` varchar(255) DEFAULT NULL, + `phone` varchar(30) DEFAULT NULL, + `phone_perso` varchar(30) DEFAULT NULL, + `phone_mobile` varchar(30) DEFAULT NULL, + `fax` varchar(30) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, + `photo` varchar(255) DEFAULT NULL, `priv` smallint(6) NOT NULL DEFAULT 0, - `fk_prospectcontactlevel` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_prospectcontactlevel` varchar(12) DEFAULT NULL, `fk_stcommcontact` int(11) NOT NULL DEFAULT 0, `no_email` smallint(6) NOT NULL DEFAULT 0, `fk_user_creat` int(11) DEFAULT 0, `fk_user_modif` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `statut` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), KEY `idx_socpeople_fk_soc` (`fk_soc`), KEY `idx_socpeople_fk_user_creat` (`fk_user_creat`), + KEY `idx_socpeople_lastname` (`lastname`), CONSTRAINT `fk_socpeople_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_socpeople_user_creat_user_rowid` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12151,10 +12998,10 @@ CREATE TABLE `llx_socpeople_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_socpeople_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12183,20 +13030,20 @@ CREATE TABLE `llx_stock_mouvement` ( `price` double(24,8) DEFAULT 0.00000000, `type_mouvement` smallint(6) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `fk_origin` int(11) DEFAULT NULL, - `origintype` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `origintype` varchar(64) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_projet` int(11) NOT NULL DEFAULT 0, - `inventorycode` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `batch` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `inventorycode` varchar(128) DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `fk_project` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_stock_mouvement_fk_product` (`fk_product`), KEY `idx_stock_mouvement_fk_entrepot` (`fk_entrepot`) -) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12209,6 +13056,32 @@ INSERT INTO `llx_stock_mouvement` VALUES (1,'2012-07-08 22:43:51','2012-07-09 00 /*!40000 ALTER TABLE `llx_stock_mouvement` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_stock_mouvement_extrafields` +-- + +DROP TABLE IF EXISTS `llx_stock_mouvement_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_stock_mouvement_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_stock_mouvement_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_stock_mouvement_extrafields` +-- + +LOCK TABLES `llx_stock_mouvement_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_stock_mouvement_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_stock_mouvement_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_subscription` -- @@ -12225,13 +13098,13 @@ CREATE TABLE `llx_subscription` ( `datef` datetime DEFAULT NULL, `subscription` double(24,8) DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_type` int(11) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_subscription` (`fk_adherent`,`dateadh`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12253,10 +13126,10 @@ DROP TABLE IF EXISTS `llx_supplier_proposal`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_supplier_proposal` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -12278,25 +13151,25 @@ CREATE TABLE `llx_supplier_proposal` ( `localtax2` double(24,8) DEFAULT 0.00000000, `total_ttc` double(24,8) DEFAULT 0.00000000, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `date_livraison` date DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12305,7 +13178,7 @@ CREATE TABLE `llx_supplier_proposal` ( LOCK TABLES `llx_supplier_proposal` WRITE; /*!40000 ALTER TABLE `llx_supplier_proposal` DISABLE KEYS */; -INSERT INTO `llx_supplier_proposal` VALUES (2,'(PROV2)',1,NULL,NULL,10,NULL,'2021-04-15 10:22:31','2021-02-17 04:40:14',NULL,NULL,12,12,NULL,NULL,0,0,NULL,NULL,0,290.00000000,0.00000000,0.00000000,0.00000000,290.00000000,NULL,NULL,2,7,'Private note','Public note','aurore','2017-02-17',1,NULL,NULL,1,'EUR',1.00000000,290.00000000,0.00000000,290.00000000,NULL),(3,'(PROV3)',1,NULL,NULL,1,NULL,'2022-02-07 13:37:54','2022-01-20 12:06:39',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,'','','aurore',NULL,NULL,NULL,NULL,1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL),(4,'(PROV4)',1,NULL,NULL,17,NULL,'2022-02-07 13:37:54','2022-01-20 12:23:22',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,195.00000000,0.00000000,0.00000000,0.00000000,195.00000000,NULL,NULL,NULL,NULL,'','','aurore',NULL,NULL,NULL,NULL,1,'EUR',1.00000000,195.00000000,0.00000000,195.00000000,NULL); +INSERT INTO `llx_supplier_proposal` VALUES (2,'(PROV2)',1,NULL,NULL,10,NULL,'2022-07-04 01:11:35','2022-02-17 04:40:14',NULL,NULL,12,12,NULL,NULL,0,0,NULL,NULL,0,290.00000000,0.00000000,0.00000000,0.00000000,290.00000000,NULL,NULL,2,7,'Private note','Public note','aurore','2017-02-17',1,NULL,NULL,1,'EUR',1.00000000,290.00000000,0.00000000,290.00000000,NULL),(3,'(PROV3)',1,NULL,NULL,1,NULL,'2022-02-07 13:37:54','2022-01-20 12:06:39',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,'','','aurore',NULL,NULL,NULL,NULL,1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL),(4,'(PROV4)',1,NULL,NULL,17,NULL,'2022-02-07 13:37:54','2022-01-20 12:23:22',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,195.00000000,0.00000000,0.00000000,0.00000000,195.00000000,NULL,NULL,NULL,NULL,'','','aurore',NULL,NULL,NULL,NULL,1,'EUR',1.00000000,195.00000000,0.00000000,195.00000000,NULL); /*!40000 ALTER TABLE `llx_supplier_proposal` ENABLE KEYS */; UNLOCK TABLES; @@ -12320,10 +13193,10 @@ CREATE TABLE `llx_supplier_proposal_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_supplier_proposal_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12347,15 +13220,15 @@ CREATE TABLE `llx_supplier_proposaldet` ( `fk_supplier_proposal` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -12372,9 +13245,9 @@ CREATE TABLE `llx_supplier_proposaldet` ( `fk_product_fournisseur_price` int(11) DEFAULT NULL, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, - `ref_fourn` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_fourn` varchar(30) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -12388,7 +13261,7 @@ CREATE TABLE `llx_supplier_proposaldet` ( KEY `fk_supplier_proposaldet_fk_unit` (`fk_unit`), CONSTRAINT `fk_supplier_proposaldet_fk_supplier_proposal` FOREIGN KEY (`fk_supplier_proposal`) REFERENCES `llx_supplier_proposal` (`rowid`), CONSTRAINT `fk_supplier_proposaldet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12412,10 +13285,10 @@ CREATE TABLE `llx_supplier_proposaldet_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_supplier_proposaldet_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12437,12 +13310,16 @@ DROP TABLE IF EXISTS `llx_takepos_floor_tables`; CREATE TABLE `llx_takepos_floor_tables` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `leftpos` float DEFAULT NULL, `toppos` float DEFAULT NULL, `floor` int(3) DEFAULT NULL, - PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + PRIMARY KEY (`rowid`), + UNIQUE KEY `entity` (`entity`,`label`), + UNIQUE KEY `entity_2` (`entity`,`label`), + UNIQUE KEY `entity_3` (`entity`,`label`), + UNIQUE KEY `entity_4` (`entity`,`label`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12464,29 +13341,32 @@ DROP TABLE IF EXISTS `llx_ticket`; CREATE TABLE `llx_ticket` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL, - `track_id` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, + `track_id` varchar(128) NOT NULL, `fk_soc` int(11) DEFAULT 0, `fk_project` int(11) DEFAULT 0, - `origin_email` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `origin_email` varchar(128) DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, `fk_user_assign` int(11) DEFAULT NULL, - `subject` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `message` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `subject` varchar(255) DEFAULT NULL, + `message` mediumtext DEFAULT NULL, `fk_statut` int(11) DEFAULT NULL, `resolution` int(11) DEFAULT NULL, `progress` int(11) DEFAULT NULL, - `timing` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `type_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `category_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `severity_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `timing` varchar(20) DEFAULT NULL, + `type_code` varchar(32) DEFAULT NULL, + `category_code` varchar(32) DEFAULT NULL, + `severity_code` varchar(32) DEFAULT NULL, `datec` datetime DEFAULT NULL, `date_read` datetime DEFAULT NULL, + `date_last_msg_sent` datetime DEFAULT NULL, `date_close` datetime DEFAULT NULL, `notify_tiers_at_create` tinyint(4) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `email_msgid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `email_msgid` varchar(255) DEFAULT NULL, + `email_date` datetime DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ticket_track_id` (`track_id`), UNIQUE KEY `uk_ticket_ref` (`ref`,`entity`), @@ -12495,7 +13375,7 @@ CREATE TABLE `llx_ticket` ( KEY `idx_ticket_fk_user_assign` (`fk_user_assign`), KEY `idx_ticket_fk_project` (`fk_project`), KEY `idx_ticket_fk_statut` (`fk_statut`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12504,7 +13384,7 @@ CREATE TABLE `llx_ticket` ( LOCK TABLES `llx_ticket` WRITE; /*!40000 ALTER TABLE `llx_ticket` DISABLE KEYS */; -INSERT INTO `llx_ticket` VALUES (2,1,'TS1909-0001','15ff11cay39skiaa',NULL,6,NULL,12,12,'Increase memory on server','Pleae increase the memory of server to 164GB',3,NULL,0,NULL,'REQUEST','OTHER','NORMAL','2021-09-26 14:08:46',NULL,NULL,0,'2022-02-07 13:37:54',NULL,NULL),(3,1,'TS1909-0002','r5ya6gdi9f39dcjt',1,NULL,NULL,12,14,'Problem with customer','Please recontact customer.
\r\nNeed someone speaking chinese...',0,NULL,100,NULL,'ISSUE','OTHER','NORMAL','2021-09-26 14:10:31',NULL,'2021-10-04 13:05:55',0,'2022-02-07 13:37:54',NULL,NULL),(4,1,'TS1910-0003','fdv9wrzcte7b3c8b',NULL,NULL,NULL,12,NULL,'test','test',2,NULL,0,NULL,'COM','OTHER','NORMAL','2021-10-04 12:58:04',NULL,NULL,0,'2022-02-07 13:37:54',NULL,NULL),(6,1,'TS1911-0004','5gvo9bsjri55zef9',NULL,4,NULL,12,16,'What is the price for Dolibarr ERP CRM ?','I need to use it for 10 users.',3,NULL,0,NULL,'COM','OTHER','NORMAL','2021-11-29 12:46:29','2021-11-29 12:46:34',NULL,0,'2022-02-07 13:37:54',NULL,NULL),(7,1,'TS1911-0005','d51wjy4nym7wltg7',NULL,NULL,'customer@customercompany.com',NULL,16,'What is the price for Dolibarr ERP CRM ?','I need it for 10 people...',8,NULL,100,NULL,'COM','OTHER','NORMAL','2021-11-29 12:50:45','2021-11-29 12:52:32','2021-11-29 12:55:48',1,'2022-02-07 13:37:54',NULL,NULL); +INSERT INTO `llx_ticket` VALUES (2,1,'TS1909-0001','15ff11cay39skiaa',NULL,6,NULL,12,12,'Increase memory on server','Pleae increase the memory of server to 164GB',3,NULL,0,NULL,'REQUEST','OTHER','NORMAL','2022-09-26 14:08:46',NULL,NULL,NULL,0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(3,1,'TS1909-0002','r5ya6gdi9f39dcjt',1,NULL,NULL,12,14,'Problem with customer','Please recontact customer.
\r\nNeed someone speaking chinese...',0,NULL,100,NULL,'ISSUE','OTHER','NORMAL','2022-09-26 14:10:31',NULL,NULL,'2022-10-04 13:05:55',0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(4,1,'TS1910-0003','fdv9wrzcte7b3c8b',NULL,NULL,NULL,12,NULL,'test','test',2,NULL,0,NULL,'COM','OTHER','NORMAL','2022-10-04 12:58:04',NULL,NULL,NULL,0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(6,1,'TS1911-0004','5gvo9bsjri55zef9',NULL,4,NULL,12,16,'What is the price for Dolibarr ERP CRM ?','I need to use it for 10 users.',3,NULL,0,NULL,'COM','OTHER','NORMAL','2022-11-29 12:46:29','2022-11-29 12:46:34',NULL,NULL,0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(7,1,'TS1911-0005','d51wjy4nym7wltg7',NULL,NULL,'customer@customercompany.com',NULL,16,'What is the price for Dolibarr ERP CRM ?','I need it for 10 people...',8,NULL,100,NULL,'COM','OTHER','NORMAL','2022-11-29 12:50:45','2022-11-29 12:52:32',NULL,'2022-11-29 12:55:48',1,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_ticket` ENABLE KEYS */; UNLOCK TABLES; @@ -12519,11 +13399,11 @@ CREATE TABLE `llx_ticket_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `aaa` int(10) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ticket_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12549,19 +13429,19 @@ CREATE TABLE `llx_tva` ( `datep` date DEFAULT NULL, `datev` date DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_typepayment` int(11) DEFAULT NULL, - `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `paye` smallint(6) NOT NULL DEFAULT 0, `fk_account` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12586,81 +13466,77 @@ CREATE TABLE `llx_user` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `login` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `login` varchar(50) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_ext` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_int` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_employee` varchar(50) DEFAULT NULL, + `civility` varchar(6) DEFAULT NULL, + `ref_ext` varchar(50) DEFAULT NULL, `employee` smallint(6) DEFAULT 1, `fk_establishment` int(11) DEFAULT 0, - `pass` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass_temp` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `api_key` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `job` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `office_phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `office_fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `user_mobile` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `personal_mobile` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `personal_email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `socialnetworks` text COLLATE utf8_unicode_ci DEFAULT NULL, - `signature` text COLLATE utf8_unicode_ci DEFAULT NULL, + `pass` varchar(128) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, + `pass_temp` varchar(128) DEFAULT NULL, + `api_key` varchar(128) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `job` varchar(128) DEFAULT NULL, + `office_phone` varchar(20) DEFAULT NULL, + `office_fax` varchar(20) DEFAULT NULL, + `user_mobile` varchar(20) DEFAULT NULL, + `personal_mobile` varchar(20) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `personal_email` varchar(255) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, + `signature` text DEFAULT NULL, `admin` smallint(6) DEFAULT 0, - `webcal_login` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL, - `module_comm` smallint(6) DEFAULT 1, - `module_compta` smallint(6) DEFAULT 1, `fk_soc` int(11) DEFAULT NULL, `fk_socpeople` int(11) DEFAULT NULL, `fk_member` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, `datelastlogin` datetime DEFAULT NULL, `datepreviouslogin` datetime DEFAULT NULL, `egroupware_id` int(11) DEFAULT NULL, - `ldap_sid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ldap_sid` varchar(255) DEFAULT NULL, `statut` tinyint(4) DEFAULT 1, - `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `openid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `photo` varchar(255) DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, + `openid` varchar(255) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_user_expense_validator` int(11) DEFAULT NULL, `fk_user_holiday_validator` int(11) DEFAULT NULL, `thm` double(24,8) DEFAULT NULL, - `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_state` int(11) DEFAULT 0, `fk_country` int(11) DEFAULT 0, - `color` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `color` varchar(6) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT 0, `nb_holiday` int(11) DEFAULT 0, `salary` double(24,8) DEFAULT NULL, `tjm` double(24,8) DEFAULT NULL, `salaryextra` double(24,8) DEFAULT NULL, `weeklyhours` double(16,8) DEFAULT NULL, - `gender` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `gender` varchar(10) DEFAULT NULL, + `note_public` text DEFAULT NULL, `dateemployment` datetime DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `birth` date DEFAULT NULL, - `pass_encoding` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, + `pass_encoding` varchar(24) DEFAULT NULL, `default_range` int(11) DEFAULT NULL, `default_c_exp_tax_cat` int(11) DEFAULT NULL, `dateemploymentend` date DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, - `iplastlogin` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, - `ippreviouslogin` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, + `iplastlogin` varchar(250) DEFAULT NULL, + `ippreviouslogin` varchar(250) DEFAULT NULL, `datelastpassvalidation` datetime DEFAULT NULL, `datestartvalidity` datetime DEFAULT NULL, `dateendvalidity` datetime DEFAULT NULL, - `idpers1` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idpers2` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `idpers3` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `national_registration_number` varchar(50) DEFAULT NULL, + `birth_place` varchar(64) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_user_login` (`login`,`entity`), UNIQUE KEY `uk_user_fk_socpeople` (`fk_socpeople`), @@ -12668,7 +13544,7 @@ CREATE TABLE `llx_user` ( UNIQUE KEY `uk_user_api_key` (`api_key`), KEY `idx_user_api_key` (`api_key`), KEY `idx_user_fk_societe` (`fk_soc`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12677,7 +13553,7 @@ CREATE TABLE `llx_user` ( LOCK TABLES `llx_user` WRITE; /*!40000 ALTER TABLE `llx_user` DISABLE KEYS */; -INSERT INTO `llx_user` VALUES (1,'2012-07-08 13:20:11','2021-04-15 10:42:13',NULL,NULL,'aeinstein',0,'',NULL,NULL,1,0,NULL,'$2y$10$lIvMb5RJjxqmd6OxnZLqvuLZGOXj3gxIQhZQUqcY8fQTyh0cTtUpa',NULL,NULL,'Einstein','Albert','','123456789','','','','aeinstein@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,'',1,1,NULL,NULL,NULL,'','2017-10-05 08:32:44','2017-10-03 11:43:50',NULL,'',1,'alberteinstein.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'aaaaff','',NULL,0,0,NULL,NULL,NULL,44.00000000,'man','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2012-07-08 13:54:48','2021-04-15 10:41:35',NULL,NULL,'demo',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Doe','David','Trainee','09123123','','','','daviddoe@example.com','','[]','',0,'',1,1,NULL,NULL,NULL,'','2018-07-30 23:10:54','2018-07-30 23:04:17',NULL,'',1,'person9.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,35.00000000,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2012-07-11 16:18:59','2021-04-15 10:41:35',NULL,NULL,'pcurie',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Curie','Pierre','','','','','','pcurie@example.com','','[]','',0,'',1,1,NULL,NULL,2,'','2014-12-21 17:38:55',NULL,NULL,'',1,'pierrecurie.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2015-01-23 17:52:27','2021-04-15 10:41:35',NULL,NULL,'bbookkeeper',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Bookkeeper','Bob','Bookkeeper','','','','','bbookkeeper@example.com','','{\"skype\":\"skypebbookkeeper\"}','',0,'',1,1,17,6,NULL,'','2015-02-25 10:18:41','2015-01-23 17:53:20',NULL,'',1,'person8.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,16.00000000,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2017-10-03 11:47:41','2021-04-15 10:41:35',NULL,NULL,'mcurie',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'t3mnkbhs','Curie','Marie','','','','','','mcurie@example.com','','[]','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'mariecurie.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'ffaaff','',NULL,0,0,NULL,NULL,NULL,44.00000000,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2017-10-05 09:07:52','2021-04-15 10:40:22',NULL,NULL,'zzeceo',1,'',NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'cq78nf9m','Zeceo','Zack','President - CEO','','','','','zzeceo@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,1,1,NULL,NULL,NULL,'','2017-10-05 22:48:08','2017-10-05 21:18:46',NULL,'',1,'person4.jpeg',NULL,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,NULL,'','2019-06-10 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2017-10-05 09:09:46','2021-04-15 10:38:52',NULL,NULL,'admin',0,'',NULL,NULL,1,0,NULL,'$2y$10$5qk/U.aOy.7uBSNxpwiqkOfBlCUop9c2wKWuFZ/wZ2hAC9lriGqnG',NULL,'nd6hgbcr','Adminson','Alice','Admin Technical','','','','','aadminson@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','Alice - 123',1,NULL,1,1,NULL,NULL,NULL,'','2021-04-15 07:59:04','2021-04-15 07:56:17',NULL,'',1,'person6.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,2700.00000000,NULL,NULL,39.00000000,'woman','',NULL,NULL,'generic_user_odt','1985-09-15',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(13,'2017-10-05 21:29:35','2021-04-15 10:41:51',NULL,NULL,'ccommercy',1,'',NULL,NULL,1,0,NULL,'$2y$10$KTaKE0NyYyJSCogsxtwR.eADst17XYMrOWlsFfVLR60IbjANIVLHK',NULL,'y451ksdv','Commercy','Coraly','Commercial leader','','','','','ccommercy@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'person7.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,1890.00000000,NULL,NULL,25.00000000,'woman','','2018-09-11 00:00:00',NULL,NULL,'1998-12-08',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,'2017-10-05 21:33:33','2021-04-15 10:41:35',NULL,NULL,'sscientol',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'s2hp8bxd','Scientol','Sam','Scientist leader','','','','','sscientol@example.com','','[]','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'person3.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,3500.00000000,NULL,NULL,39.00000000,NULL,NULL,'2018-07-03 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,'2017-10-05 22:47:52','2021-04-15 10:41:35',NULL,NULL,'ccommerson',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'cx9y1dk0','Charle1','Commerson','Sale representative','','','','','ccommerson@example.com','','[]','',0,NULL,1,1,NULL,NULL,NULL,'','2017-10-05 23:46:24','2017-10-05 23:37:31',NULL,'',1,'person1.jpeg',NULL,NULL,13,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,2900.00000000,NULL,NULL,39.00000000,NULL,NULL,'2019-09-01 00:00:00',NULL,NULL,'1976-02-05',NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,'2017-10-05 22:48:39','2021-04-15 10:41:35',NULL,NULL,'aleerfok',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'gw8cb7xj','Leerfok','Amanda','Sale representative','','','','','aleerfok@example.com','','[]','',0,NULL,1,1,NULL,NULL,NULL,'','2017-10-05 23:16:06',NULL,NULL,'',0,'person5.jpeg',NULL,NULL,13,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,'2018-01-22 17:27:02','2021-04-15 10:41:35',NULL,NULL,'ldestailleur',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'87g06wbx','Destailleur','Laurent','Project leader of Dolibarr ERP CRM','','','','','ldestailleur@example.com','','[]','
Laurent DESTAILLEUR
\r\n\r\n
\r\n
Project Director
\r\nldestailleur@example.com
\r\n\r\n
 
\r\n\r\n\r\n
',0,NULL,1,1,10,10,NULL,'More information on http://www.mydomain.com','2019-10-04 10:06:40','2017-09-06 11:55:30',NULL,'',1,'ldestailleur_200x200.jpg',NULL,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'007f7f','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,'2017-02-02 03:55:44','2021-04-15 10:41:35',NULL,NULL,'aboston',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Boston','Alex','','','','','','aboston@example.com','','[]','Alex Boston
\r\nAdmin support service - 555 01 02 03 04',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',0,'person2.jpeg',NULL,NULL,12,NULL,NULL,25.00000000,'','','',NULL,NULL,'ff00ff','',NULL,0,0,2700.00000000,NULL,NULL,32.00000000,NULL,NULL,'2016-11-04 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO `llx_user` VALUES (1,'2012-07-08 13:20:11','2021-04-15 10:42:13',NULL,NULL,'aeinstein',0,NULL,'',NULL,1,0,NULL,'$2y$10$lIvMb5RJjxqmd6OxnZLqvuLZGOXj3gxIQhZQUqcY8fQTyh0cTtUpa',NULL,NULL,'Einstein','Albert','','123456789','','','','aeinstein@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,NULL,NULL,'','2017-10-05 08:32:44','2017-10-03 11:43:50',NULL,'',1,'alberteinstein.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'aaaaff','',NULL,0,0,NULL,NULL,NULL,44.00000000,'man','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2012-07-08 13:54:48','2021-04-15 10:41:35',NULL,NULL,'demo',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Doe','David','Trainee','09123123','','','','daviddoe@example.com','','[]','',0,NULL,NULL,NULL,'','2018-07-30 23:10:54','2018-07-30 23:04:17',NULL,'',1,'person9.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,35.00000000,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2012-07-11 16:18:59','2021-04-15 10:41:35',NULL,NULL,'pcurie',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Curie','Pierre','','','','','','pcurie@example.com','','[]','',0,NULL,NULL,2,'','2014-12-21 17:38:55',NULL,NULL,'',1,'pierrecurie.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2015-01-23 17:52:27','2021-04-15 10:41:35',NULL,NULL,'bbookkeeper',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Bookkeeper','Bob','Bookkeeper','','','','','bbookkeeper@example.com','','{\"skype\":\"skypebbookkeeper\"}','',0,17,6,NULL,'','2015-02-25 10:18:41','2015-01-23 17:53:20',NULL,'',1,'person8.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,16.00000000,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2017-10-03 11:47:41','2021-04-15 10:41:35',NULL,NULL,'mcurie',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'t3mnkbhs','Curie','Marie','','','','','','mcurie@example.com','','[]','',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'mariecurie.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'ffaaff','',NULL,0,0,NULL,NULL,NULL,44.00000000,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2017-10-05 09:07:52','2021-04-15 10:40:22',NULL,NULL,'zzeceo',1,NULL,'',NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'cq78nf9m','Zeceo','Zack','President - CEO','','','','','zzeceo@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,NULL,NULL,'','2017-10-05 22:48:08','2017-10-05 21:18:46',NULL,'',1,'person4.jpeg',NULL,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,NULL,'','2019-06-10 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2017-10-05 09:09:46','2021-04-15 10:38:52',NULL,NULL,'admin',0,NULL,'',NULL,1,0,NULL,'$2y$10$5qk/U.aOy.7uBSNxpwiqkOfBlCUop9c2wKWuFZ/wZ2hAC9lriGqnG',NULL,'nd6hgbcr','Adminson','Alice','Admin Technical','','','','','aadminson@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','Alice - 123',1,NULL,NULL,NULL,'','2022-07-05 07:56:33','2021-04-15 07:59:04',NULL,'',1,'person6.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,2700.00000000,NULL,NULL,39.00000000,'woman','',NULL,NULL,'generic_user_odt','1985-09-15',NULL,NULL,NULL,NULL,NULL,'192.168.0.254',NULL,NULL,NULL,NULL,NULL,NULL),(13,'2017-10-05 21:29:35','2021-04-15 10:41:51',NULL,NULL,'ccommercy',1,NULL,'',NULL,1,0,NULL,'$2y$10$KTaKE0NyYyJSCogsxtwR.eADst17XYMrOWlsFfVLR60IbjANIVLHK',NULL,'y451ksdv','Commercy','Coraly','Commercial leader','','','','','ccommercy@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'person7.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,1890.00000000,NULL,NULL,25.00000000,'woman','','2018-09-11 00:00:00',NULL,NULL,'1998-12-08',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,'2017-10-05 21:33:33','2021-04-15 10:41:35',NULL,NULL,'sscientol',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'s2hp8bxd','Scientol','Sam','Scientist leader','','','','','sscientol@example.com','','[]','',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'person3.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,3500.00000000,NULL,NULL,39.00000000,NULL,NULL,'2018-07-03 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,'2017-10-05 22:47:52','2021-04-15 10:41:35',NULL,NULL,'ccommerson',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'cx9y1dk0','Charle1','Commerson','Sale representative','','','','','ccommerson@example.com','','[]','',0,NULL,NULL,NULL,'','2017-10-05 23:46:24','2017-10-05 23:37:31',NULL,'',1,'person1.jpeg',NULL,NULL,13,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,2900.00000000,NULL,NULL,39.00000000,NULL,NULL,'2019-09-01 00:00:00',NULL,NULL,'1976-02-05',NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,'2017-10-05 22:48:39','2021-04-15 10:41:35',NULL,NULL,'aleerfok',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'gw8cb7xj','Leerfok','Amanda','Sale representative','','','','','aleerfok@example.com','','[]','',0,NULL,NULL,NULL,'','2017-10-05 23:16:06',NULL,NULL,'',0,'person5.jpeg',NULL,NULL,13,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,'2018-01-22 17:27:02','2021-04-15 10:41:35',NULL,NULL,'ldestailleur',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'87g06wbx','Destailleur','Laurent','Project leader of Dolibarr ERP CRM','','','','','ldestailleur@example.com','','[]','
Laurent DESTAILLEUR
\r\n\r\n
\r\n
Project Director
\r\nldestailleur@example.com
\r\n\r\n
 
\r\n\r\n\r\n
',0,10,10,NULL,'More information on http://www.mydomain.com','2019-10-04 10:06:40','2017-09-06 11:55:30',NULL,'',1,'ldestailleur_200x200.jpg',NULL,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'007f7f','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,'2017-02-02 03:55:44','2021-04-15 10:41:35',NULL,NULL,'aboston',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Boston','Alex','','','','','','aboston@example.com','','[]','Alex Boston
\r\nAdmin support service - 555 01 02 03 04',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',0,'person2.jpeg',NULL,NULL,12,NULL,NULL,25.00000000,'','','',NULL,NULL,'ff00ff','',NULL,0,0,2700.00000000,NULL,NULL,32.00000000,NULL,NULL,'2016-11-04 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_user` ENABLE KEYS */; UNLOCK TABLES; @@ -12694,7 +13570,7 @@ CREATE TABLE `llx_user_alert` ( `fk_contact` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12716,12 +13592,12 @@ DROP TABLE IF EXISTS `llx_user_clicktodial`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_user_clicktodial` ( `fk_user` int(11) NOT NULL, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `login` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, - `pass` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, - `poste` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `login` varchar(32) DEFAULT NULL, + `pass` varchar(64) DEFAULT NULL, + `poste` varchar(20) DEFAULT NULL, PRIMARY KEY (`fk_user`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12743,14 +13619,14 @@ DROP TABLE IF EXISTS `llx_user_employment`; CREATE TABLE `llx_user_employment` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, - `ref_ext` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `ref_ext` varchar(50) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `job` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `job` varchar(128) DEFAULT NULL, `status` int(11) NOT NULL, `salary` double(24,8) DEFAULT NULL, `salaryextra` double(24,8) DEFAULT NULL, @@ -12761,7 +13637,7 @@ CREATE TABLE `llx_user_employment` ( UNIQUE KEY `uk_user_employment` (`ref`,`entity`), KEY `fk_user_employment_fk_user` (`fk_user`), CONSTRAINT `fk_user_employment_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12784,10 +13660,10 @@ CREATE TABLE `llx_user_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_user_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12809,10 +13685,10 @@ DROP TABLE IF EXISTS `llx_user_param`; CREATE TABLE `llx_user_param` ( `fk_user` int(11) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `param` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `value` text COLLATE utf8_unicode_ci NOT NULL, + `param` varchar(255) NOT NULL, + `value` text NOT NULL, UNIQUE KEY `uk_user_param` (`fk_user`,`param`,`entity`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12838,19 +13714,22 @@ CREATE TABLE `llx_user_rib` ( `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, - `bank` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, - `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, - `bic` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL, - `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL, - `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL, - `owner_address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(30) DEFAULT NULL, + `bank` varchar(255) DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(11) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` varchar(255) DEFAULT NULL, + `state_id` int(11) DEFAULT NULL, + `fk_country` int(11) DEFAULT NULL, + `currency_code` varchar(3) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12878,7 +13757,7 @@ CREATE TABLE `llx_user_rights` ( UNIQUE KEY `uk_user_rights` (`entity`,`fk_user`,`fk_id`), KEY `fk_user_rights_fk_user_user` (`fk_user`), CONSTRAINT `fk_user_rights_fk_user_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=20841 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=21798 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12887,7 +13766,7 @@ CREATE TABLE `llx_user_rights` ( LOCK TABLES `llx_user_rights` WRITE; /*!40000 ALTER TABLE `llx_user_rights` DISABLE KEYS */; -INSERT INTO `llx_user_rights` VALUES (12402,1,1,11),(12380,1,1,12),(12385,1,1,13),(12389,1,1,14),(12393,1,1,15),(12398,1,1,16),(12404,1,1,19),(9726,1,1,21),(9700,1,1,22),(9706,1,1,24),(9711,1,1,25),(9716,1,1,26),(9722,1,1,27),(9728,1,1,28),(9978,1,1,31),(9968,1,1,32),(9974,1,1,34),(1910,1,1,36),(9980,1,1,38),(11573,1,1,41),(11574,1,1,42),(11575,1,1,44),(11576,1,1,45),(7184,1,1,61),(7181,1,1,62),(7183,1,1,64),(7185,1,1,67),(7186,1,1,68),(1678,1,1,71),(1673,1,1,72),(1675,1,1,74),(1679,1,1,75),(1677,1,1,76),(1681,1,1,78),(1682,1,1,79),(12322,1,1,81),(12309,1,1,82),(12312,1,1,84),(12314,1,1,86),(12317,1,1,87),(12320,1,1,88),(12323,1,1,89),(11580,1,1,91),(11581,1,1,92),(11582,1,1,93),(11583,1,1,94),(10097,1,1,95),(10099,1,1,96),(10103,1,1,97),(10104,1,1,98),(7139,1,1,101),(7134,1,1,102),(7136,1,1,104),(7137,1,1,105),(7138,1,1,106),(7140,1,1,109),(10229,1,1,111),(10201,1,1,112),(10207,1,1,113),(10213,1,1,114),(10219,1,1,115),(10225,1,1,116),(10231,1,1,117),(12518,1,1,121),(12508,1,1,122),(12514,1,1,125),(12520,1,1,126),(11577,1,1,141),(11578,1,1,142),(11579,1,1,144),(2307,1,1,151),(2304,1,1,152),(2306,1,1,153),(2308,1,1,154),(10092,1,1,161),(10093,1,1,162),(10094,1,1,163),(10095,1,1,164),(10096,1,1,165),(1585,1,1,170),(12342,1,1,171),(12331,1,1,172),(12335,1,1,173),(12339,1,1,174),(12343,1,1,178),(10000,1,1,221),(9990,1,1,222),(9996,1,1,223),(10002,1,1,229),(10007,1,1,237),(10011,1,1,238),(10015,1,1,239),(1686,1,1,241),(1685,1,1,242),(1687,1,1,243),(12604,1,1,251),(12566,1,1,252),(12569,1,1,253),(12572,1,1,254),(12575,1,1,255),(12579,1,1,256),(1617,1,1,258),(12525,1,1,262),(12544,1,1,281),(12534,1,1,282),(12540,1,1,283),(12546,1,1,286),(12288,1,1,300),(12290,1,1,301),(11591,1,1,302),(1763,1,1,331),(1762,1,1,332),(1764,1,1,333),(12582,1,1,341),(12584,1,1,342),(12586,1,1,343),(12588,1,1,344),(12600,1,1,351),(12593,1,1,352),(12597,1,1,353),(12601,1,1,354),(12605,1,1,358),(12560,1,1,531),(12553,1,1,532),(12557,1,1,534),(1625,1,1,536),(12561,1,1,538),(12358,1,1,700),(12348,1,1,701),(12354,1,1,702),(12360,1,1,703),(1755,1,1,1001),(1754,1,1,1002),(1756,1,1,1003),(1758,1,1,1004),(1759,1,1,1005),(7146,1,1,1101),(7143,1,1,1102),(7145,1,1,1104),(7147,1,1,1109),(12412,1,1,1181),(12458,1,1,1182),(12417,1,1,1183),(12420,1,1,1184),(12423,1,1,1185),(12427,1,1,1186),(12431,1,1,1187),(12437,1,1,1188),(12434,1,1,1189),(1578,1,1,1201),(1579,1,1,1202),(12454,1,1,1231),(12443,1,1,1232),(12446,1,1,1233),(12449,1,1,1234),(12452,1,1,1235),(12455,1,1,1236),(12459,1,1,1237),(1736,1,1,1251),(12409,1,1,1321),(12326,1,1,1421),(8190,1,1,1791),(8187,1,1,1792),(8191,1,1,1793),(12264,1,1,2401),(12260,1,1,2402),(12266,1,1,2403),(12280,1,1,2411),(12276,1,1,2412),(12282,1,1,2413),(12286,1,1,2414),(1618,1,1,2500),(12370,1,1,2501),(12367,1,1,2503),(12371,1,1,2515),(9610,1,1,5001),(9611,1,1,5002),(12490,1,1,20001),(12474,1,1,20003),(12480,1,1,20004),(12486,1,1,20005),(12492,1,1,20006),(12302,1,1,23001),(12295,1,1,23002),(12299,1,1,23003),(12303,1,1,23004),(7701,1,1,50101),(4984,1,1,50401),(4983,1,1,50402),(4985,1,1,50403),(4987,1,1,50411),(4988,1,1,50412),(4989,1,1,50415),(12498,1,1,55001),(12499,1,1,55002),(3564,1,1,100700),(3565,1,1,100701),(9596,1,1,101051),(9598,1,1,101052),(9600,1,1,101053),(9604,1,1,101060),(9605,1,1,101061),(7177,1,1,101201),(7178,1,1,101202),(10353,1,1,101250),(10355,1,1,101251),(8980,1,1,101261),(8981,1,1,101262),(7616,1,1,101331),(10030,1,1,101701),(10031,1,1,101702),(3582,1,1,102000),(3583,1,1,102001),(9819,1,1,400051),(9823,1,1,400052),(9827,1,1,400053),(9831,1,1,400055),(132,1,2,11),(133,1,2,12),(134,1,2,13),(135,1,2,14),(136,1,2,16),(137,1,2,19),(138,1,2,21),(139,1,2,22),(140,1,2,24),(141,1,2,25),(142,1,2,26),(143,1,2,27),(10359,1,2,31),(145,1,2,32),(10361,1,2,34),(146,1,2,36),(147,1,2,41),(148,1,2,42),(149,1,2,44),(150,1,2,61),(151,1,2,62),(152,1,2,64),(153,1,2,71),(154,1,2,72),(155,1,2,74),(156,1,2,75),(157,1,2,78),(158,1,2,79),(159,1,2,81),(160,1,2,82),(161,1,2,84),(162,1,2,86),(163,1,2,87),(164,1,2,88),(165,1,2,89),(166,1,2,91),(167,1,2,92),(168,1,2,93),(2475,1,2,95),(2476,1,2,96),(2477,1,2,97),(2478,1,2,98),(169,1,2,101),(170,1,2,102),(171,1,2,104),(172,1,2,109),(173,1,2,111),(174,1,2,112),(175,1,2,113),(176,1,2,114),(177,1,2,116),(178,1,2,117),(179,1,2,121),(180,1,2,122),(181,1,2,125),(182,1,2,141),(183,1,2,142),(184,1,2,144),(2479,1,2,151),(2480,1,2,152),(2481,1,2,153),(2482,1,2,154),(185,1,2,161),(186,1,2,162),(187,1,2,163),(188,1,2,164),(189,1,2,165),(190,1,2,170),(2471,1,2,171),(192,1,2,172),(2472,1,2,173),(193,1,2,221),(194,1,2,222),(195,1,2,229),(196,1,2,241),(197,1,2,242),(198,1,2,243),(199,1,2,251),(201,1,2,262),(202,1,2,281),(203,1,2,282),(204,1,2,283),(205,1,2,331),(15072,1,2,510),(2483,1,2,531),(207,1,2,532),(2484,1,2,534),(208,1,2,536),(2473,1,2,700),(210,1,2,701),(211,1,2,702),(2474,1,2,703),(15064,1,2,771),(15057,1,2,772),(15059,1,2,773),(15061,1,2,774),(15063,1,2,775),(15065,1,2,776),(212,1,2,1001),(213,1,2,1002),(214,1,2,1003),(215,1,2,1004),(216,1,2,1005),(217,1,2,1101),(218,1,2,1102),(219,1,2,1104),(220,1,2,1109),(15073,1,2,1121),(15074,1,2,1122),(15075,1,2,1123),(15076,1,2,1124),(15077,1,2,1125),(15078,1,2,1126),(221,1,2,1181),(222,1,2,1182),(223,1,2,1183),(224,1,2,1184),(225,1,2,1185),(226,1,2,1186),(227,1,2,1187),(228,1,2,1188),(229,1,2,1201),(230,1,2,1202),(231,1,2,1231),(232,1,2,1232),(233,1,2,1233),(234,1,2,1234),(235,1,2,1421),(236,1,2,2401),(237,1,2,2402),(238,1,2,2403),(239,1,2,2411),(240,1,2,2412),(241,1,2,2413),(242,1,2,2500),(2470,1,2,2501),(243,1,2,2515),(10363,1,2,20001),(10365,1,2,20003),(10366,1,2,20004),(10367,1,2,20005),(10368,1,2,20006),(15054,1,2,23001),(10362,1,2,50101),(15067,1,2,55001),(15066,1,2,59001),(15068,1,2,63001),(15069,1,2,63002),(15070,1,2,63003),(15071,1,2,63004),(10372,1,2,101250),(1807,1,3,11),(1808,1,3,31),(1809,1,3,36),(1810,1,3,41),(1811,1,3,61),(1812,1,3,71),(1813,1,3,72),(1814,1,3,74),(1815,1,3,75),(1816,1,3,78),(1817,1,3,79),(1818,1,3,91),(1819,1,3,95),(1820,1,3,97),(1821,1,3,111),(1822,1,3,121),(1823,1,3,122),(1824,1,3,125),(1825,1,3,161),(1826,1,3,170),(1827,1,3,171),(1828,1,3,172),(1829,1,3,221),(1830,1,3,222),(1831,1,3,229),(1832,1,3,241),(1833,1,3,242),(1834,1,3,243),(1835,1,3,251),(1836,1,3,255),(1837,1,3,256),(1838,1,3,262),(1839,1,3,281),(1840,1,3,282),(1841,1,3,283),(1842,1,3,331),(1843,1,3,531),(1844,1,3,536),(1845,1,3,700),(1846,1,3,1001),(1847,1,3,1002),(1848,1,3,1003),(1849,1,3,1004),(1850,1,3,1005),(1851,1,3,1181),(1852,1,3,1182),(1853,1,3,1201),(1854,1,3,1202),(1855,1,3,1231),(1856,1,3,2401),(1857,1,3,2402),(1858,1,3,2403),(1859,1,3,2411),(1860,1,3,2412),(1861,1,3,2413),(1862,1,3,2500),(1863,1,3,2515),(8026,1,4,11),(8027,1,4,21),(8028,1,4,31),(8029,1,4,41),(8030,1,4,61),(8031,1,4,71),(8032,1,4,72),(8033,1,4,74),(8034,1,4,75),(8035,1,4,78),(8036,1,4,79),(8037,1,4,81),(8038,1,4,91),(8039,1,4,95),(8040,1,4,97),(8041,1,4,101),(8042,1,4,111),(8043,1,4,121),(8044,1,4,151),(8045,1,4,161),(8046,1,4,171),(8047,1,4,221),(8048,1,4,222),(8049,1,4,229),(8050,1,4,241),(8051,1,4,242),(8052,1,4,243),(8146,1,4,251),(8147,1,4,253),(8053,1,4,262),(8054,1,4,281),(8055,1,4,331),(8056,1,4,341),(8057,1,4,342),(8058,1,4,343),(8059,1,4,344),(8060,1,4,531),(8061,1,4,700),(8062,1,4,1001),(8063,1,4,1002),(8064,1,4,1003),(8065,1,4,1004),(8066,1,4,1005),(8067,1,4,1101),(8068,1,4,1181),(8069,1,4,1182),(8070,1,4,1201),(8071,1,4,1202),(8072,1,4,1231),(8073,1,4,2401),(8074,1,4,2501),(8075,1,4,2503),(8076,1,4,2515),(8077,1,4,20001),(8078,1,4,50101),(8079,1,4,101201),(8080,1,4,101261),(8081,1,4,102000),(8082,1,4,400051),(8083,1,4,400052),(8084,1,4,400053),(8085,1,4,400055),(12608,1,10,11),(12609,1,10,21),(12610,1,10,31),(12611,1,10,41),(12612,1,10,61),(12613,1,10,71),(12614,1,10,72),(12615,1,10,74),(12616,1,10,75),(12617,1,10,78),(12618,1,10,79),(12619,1,10,81),(12620,1,10,91),(12621,1,10,95),(12622,1,10,97),(12623,1,10,101),(12624,1,10,111),(12625,1,10,121),(12626,1,10,151),(12627,1,10,161),(12628,1,10,171),(12629,1,10,221),(12630,1,10,222),(12631,1,10,229),(12632,1,10,241),(12633,1,10,242),(12634,1,10,243),(12635,1,10,262),(12636,1,10,281),(12637,1,10,300),(12638,1,10,331),(12639,1,10,341),(12640,1,10,342),(12641,1,10,343),(12642,1,10,344),(12643,1,10,531),(12644,1,10,700),(12645,1,10,1001),(12646,1,10,1002),(12647,1,10,1003),(12648,1,10,1004),(12649,1,10,1005),(12650,1,10,1101),(12651,1,10,1181),(12652,1,10,1182),(12653,1,10,1201),(12654,1,10,1202),(12655,1,10,1231),(12656,1,10,2401),(12657,1,10,2501),(12658,1,10,2503),(12659,1,10,2515),(12660,1,10,20001),(12662,1,10,23001),(12663,1,10,50101),(12664,1,11,11),(12665,1,11,21),(12666,1,11,31),(12667,1,11,41),(12668,1,11,61),(12669,1,11,71),(12670,1,11,72),(12671,1,11,74),(12672,1,11,75),(12673,1,11,78),(12674,1,11,79),(12675,1,11,81),(12676,1,11,91),(12677,1,11,95),(12678,1,11,97),(12679,1,11,101),(12680,1,11,111),(12681,1,11,121),(12682,1,11,151),(12683,1,11,161),(12684,1,11,171),(12685,1,11,221),(12686,1,11,222),(12687,1,11,229),(12688,1,11,241),(12689,1,11,242),(12690,1,11,243),(12691,1,11,262),(12692,1,11,281),(12693,1,11,300),(12694,1,11,331),(12695,1,11,341),(12696,1,11,342),(12697,1,11,343),(12698,1,11,344),(12699,1,11,531),(12700,1,11,700),(12701,1,11,1001),(12702,1,11,1002),(12703,1,11,1003),(12704,1,11,1004),(12705,1,11,1005),(12706,1,11,1101),(12707,1,11,1181),(12708,1,11,1182),(12709,1,11,1201),(12710,1,11,1202),(12711,1,11,1231),(12712,1,11,2401),(12713,1,11,2501),(12714,1,11,2503),(12715,1,11,2515),(12716,1,11,20001),(12718,1,11,23001),(12719,1,11,50101),(20696,1,12,11),(20690,1,12,12),(20691,1,12,13),(20692,1,12,14),(20693,1,12,15),(20695,1,12,16),(20697,1,12,19),(14146,1,12,21),(14135,1,12,22),(14137,1,12,24),(14139,1,12,25),(14142,1,12,26),(14145,1,12,27),(14148,1,12,28),(14930,1,12,31),(14926,1,12,32),(14929,1,12,34),(14932,1,12,38),(13816,1,12,41),(13813,1,12,42),(13815,1,12,44),(13817,1,12,45),(14094,1,12,61),(14091,1,12,62),(14093,1,12,64),(14095,1,12,67),(14096,1,12,68),(16203,1,12,71),(16198,1,12,72),(16200,1,12,74),(16204,1,12,75),(16202,1,12,76),(16206,1,12,78),(16207,1,12,79),(20660,1,12,81),(20655,1,12,82),(20656,1,12,84),(20657,1,12,86),(20658,1,12,87),(20659,1,12,88),(20661,1,12,89),(15401,1,12,91),(15397,1,12,92),(15400,1,12,93),(15403,1,12,94),(13990,1,12,95),(12734,1,12,97),(19241,1,12,101),(19237,1,12,102),(19238,1,12,104),(19239,1,12,105),(19240,1,12,106),(19242,1,12,109),(20642,1,12,111),(20633,1,12,112),(20635,1,12,113),(20637,1,12,114),(20639,1,12,115),(20641,1,12,116),(20643,1,12,117),(20783,1,12,121),(20780,1,12,122),(20782,1,12,125),(20784,1,12,126),(20785,1,12,130),(13821,1,12,141),(13820,1,12,142),(13822,1,12,144),(13912,1,12,151),(13909,1,12,152),(13911,1,12,153),(13913,1,12,154),(14063,1,12,161),(14056,1,12,162),(14058,1,12,163),(14060,1,12,164),(14062,1,12,165),(14064,1,12,167),(13350,1,12,171),(13345,1,12,172),(13347,1,12,173),(13349,1,12,174),(13351,1,12,178),(13838,1,12,221),(13834,1,12,222),(13837,1,12,223),(13840,1,12,229),(13842,1,12,237),(13844,1,12,238),(13846,1,12,239),(13516,1,12,241),(13515,1,12,242),(13517,1,12,243),(20824,1,12,251),(20805,1,12,252),(20807,1,12,253),(20808,1,12,254),(20810,1,12,255),(20812,1,12,256),(20786,1,12,262),(20792,1,12,281),(20789,1,12,282),(20791,1,12,283),(20793,1,12,286),(19877,1,12,300),(20644,1,12,301),(20645,1,12,302),(16194,1,12,331),(16193,1,12,332),(16195,1,12,333),(20813,1,12,341),(20814,1,12,342),(20815,1,12,343),(20816,1,12,344),(20822,1,12,351),(20819,1,12,352),(20821,1,12,353),(20823,1,12,354),(20825,1,12,358),(19249,1,12,430),(16384,1,12,501),(16378,1,12,502),(13865,1,12,510),(20769,1,12,511),(20764,1,12,512),(20766,1,12,514),(20768,1,12,517),(20770,1,12,519),(15291,1,12,520),(15286,1,12,522),(15288,1,12,524),(15290,1,12,525),(15292,1,12,527),(20776,1,12,531),(20773,1,12,532),(20775,1,12,534),(20777,1,12,538),(20076,1,12,561),(20073,1,12,562),(20075,1,12,563),(20077,1,12,564),(16932,1,12,650),(20629,1,12,651),(20628,1,12,652),(20630,1,12,653),(17124,1,12,660),(20744,1,12,661),(20743,1,12,662),(20745,1,12,663),(13358,1,12,700),(20666,1,12,701),(20665,1,12,702),(20667,1,12,703),(20753,1,12,750),(20752,1,12,751),(20754,1,12,752),(20686,1,12,771),(20675,1,12,772),(20677,1,12,773),(15085,1,12,774),(20679,1,12,775),(20681,1,12,776),(20683,1,12,777),(20685,1,12,778),(20687,1,12,779),(14917,1,12,1001),(14916,1,12,1002),(14918,1,12,1003),(14920,1,12,1004),(14921,1,12,1005),(19247,1,12,1101),(19245,1,12,1102),(19246,1,12,1104),(19248,1,12,1109),(19233,1,12,1121),(19226,1,12,1122),(19228,1,12,1123),(19230,1,12,1124),(19232,1,12,1125),(19234,1,12,1126),(20700,1,12,1181),(20714,1,12,1182),(20703,1,12,1183),(20704,1,12,1184),(20706,1,12,1185),(20708,1,12,1186),(20710,1,12,1187),(20713,1,12,1188),(20711,1,12,1189),(20715,1,12,1191),(13827,1,12,1201),(13828,1,12,1202),(20723,1,12,1231),(20718,1,12,1232),(20719,1,12,1233),(20721,1,12,1234),(20722,1,12,1235),(20724,1,12,1236),(16302,1,12,1237),(13829,1,12,1251),(20698,1,12,1321),(20699,1,12,1322),(20662,1,12,1421),(20618,1,12,2401),(20617,1,12,2402),(20619,1,12,2403),(20623,1,12,2411),(20622,1,12,2412),(20624,1,12,2413),(20625,1,12,2414),(20671,1,12,2501),(20670,1,12,2503),(20672,1,12,2515),(20082,1,12,3200),(20840,1,12,3201),(20341,1,12,3301),(15435,1,12,5001),(15436,1,12,5002),(20833,1,12,10001),(20828,1,12,10002),(20830,1,12,10003),(20832,1,12,10005),(20834,1,12,10008),(20736,1,12,20001),(20727,1,12,20002),(20729,1,12,20003),(20733,1,12,20004),(20735,1,12,20005),(20737,1,12,20006),(20731,1,12,20007),(20651,1,12,23001),(20648,1,12,23002),(20650,1,12,23003),(20652,1,12,23004),(19019,1,12,50101),(20801,1,12,50151),(20802,1,12,50152),(20803,1,12,50153),(20603,1,12,50401),(20611,1,12,50411),(20606,1,12,50412),(20608,1,12,50414),(20610,1,12,50415),(20612,1,12,50418),(20613,1,12,50420),(20614,1,12,50430),(20602,1,12,50440),(20747,1,12,55001),(20748,1,12,55002),(20799,1,12,56001),(20796,1,12,56002),(20798,1,12,56003),(20800,1,12,56004),(16742,1,12,56005),(20838,1,12,57001),(20837,1,12,57002),(20839,1,12,57003),(20738,1,12,59001),(20739,1,12,59002),(20740,1,12,59003),(20760,1,12,63001),(20757,1,12,63002),(20759,1,12,63003),(20761,1,12,63004),(20749,1,12,64001),(17328,1,12,101130),(17327,1,12,101131),(17329,1,12,101132),(16009,1,12,101331),(16010,1,12,101332),(16011,1,12,101333),(19208,1,12,101701),(19209,1,12,101702),(20069,1,12,941601),(20065,1,12,941602),(20066,1,12,941603),(20067,1,12,941604),(20068,1,12,941605),(20070,1,12,941606),(12776,1,13,11),(12777,1,13,21),(12778,1,13,31),(12779,1,13,41),(12780,1,13,61),(12781,1,13,71),(12782,1,13,72),(12783,1,13,74),(12784,1,13,75),(12785,1,13,78),(12786,1,13,79),(12787,1,13,81),(12788,1,13,91),(12789,1,13,95),(12790,1,13,97),(12791,1,13,101),(12792,1,13,111),(12793,1,13,121),(12794,1,13,151),(12795,1,13,161),(12796,1,13,171),(12797,1,13,221),(12798,1,13,222),(12799,1,13,229),(12800,1,13,241),(12801,1,13,242),(12802,1,13,243),(12803,1,13,262),(12804,1,13,281),(12805,1,13,300),(12806,1,13,331),(12807,1,13,341),(12808,1,13,342),(12809,1,13,343),(12810,1,13,344),(12811,1,13,531),(12812,1,13,700),(12813,1,13,1001),(12814,1,13,1002),(12815,1,13,1003),(12816,1,13,1004),(12817,1,13,1005),(12818,1,13,1101),(12819,1,13,1181),(12820,1,13,1182),(12821,1,13,1201),(12822,1,13,1202),(12823,1,13,1231),(12824,1,13,2401),(12825,1,13,2501),(12826,1,13,2503),(12827,1,13,2515),(12828,1,13,20001),(12830,1,13,23001),(12831,1,13,50101),(12832,1,14,11),(12833,1,14,21),(12834,1,14,31),(12835,1,14,41),(12836,1,14,61),(12837,1,14,71),(12838,1,14,72),(12839,1,14,74),(12840,1,14,75),(12841,1,14,78),(12842,1,14,79),(12843,1,14,81),(12844,1,14,91),(12845,1,14,95),(12846,1,14,97),(12847,1,14,101),(12848,1,14,111),(12849,1,14,121),(12850,1,14,151),(12851,1,14,161),(12852,1,14,171),(12853,1,14,221),(12854,1,14,222),(12855,1,14,229),(12856,1,14,241),(12857,1,14,242),(12858,1,14,243),(12859,1,14,262),(12860,1,14,281),(12861,1,14,300),(12862,1,14,331),(12863,1,14,341),(12864,1,14,342),(12865,1,14,343),(12866,1,14,344),(12867,1,14,531),(12868,1,14,700),(12869,1,14,1001),(12870,1,14,1002),(12871,1,14,1003),(12872,1,14,1004),(12873,1,14,1005),(12874,1,14,1101),(12875,1,14,1181),(12876,1,14,1182),(12877,1,14,1201),(12878,1,14,1202),(12879,1,14,1231),(12880,1,14,2401),(12881,1,14,2501),(12882,1,14,2503),(12883,1,14,2515),(12884,1,14,20001),(12886,1,14,23001),(12887,1,14,50101),(12944,1,16,11),(12945,1,16,21),(12946,1,16,31),(13056,1,16,41),(13057,1,16,42),(13058,1,16,44),(13059,1,16,45),(12948,1,16,61),(12949,1,16,71),(12950,1,16,72),(12951,1,16,74),(12952,1,16,75),(12953,1,16,78),(12954,1,16,79),(12955,1,16,81),(12956,1,16,91),(12957,1,16,95),(12958,1,16,97),(12959,1,16,101),(12960,1,16,111),(12961,1,16,121),(13060,1,16,141),(13061,1,16,142),(13062,1,16,144),(12962,1,16,151),(12963,1,16,161),(12964,1,16,171),(12965,1,16,221),(12966,1,16,222),(12967,1,16,229),(12968,1,16,241),(12969,1,16,242),(12970,1,16,243),(13128,1,16,251),(13064,1,16,262),(12972,1,16,281),(12973,1,16,300),(12974,1,16,331),(12975,1,16,341),(12976,1,16,342),(12977,1,16,343),(12978,1,16,344),(12979,1,16,531),(12980,1,16,700),(12981,1,16,1001),(12982,1,16,1002),(12983,1,16,1003),(12984,1,16,1004),(12985,1,16,1005),(12986,1,16,1101),(12987,1,16,1181),(12988,1,16,1182),(12989,1,16,1201),(12990,1,16,1202),(12991,1,16,1231),(12992,1,16,2401),(12993,1,16,2501),(12994,1,16,2503),(12995,1,16,2515),(12996,1,16,20001),(12998,1,16,23001),(12999,1,16,50101),(13000,1,17,11),(13001,1,17,21),(13002,1,17,31),(13065,1,17,41),(13066,1,17,42),(13067,1,17,44),(13068,1,17,45),(13004,1,17,61),(13005,1,17,71),(13006,1,17,72),(13007,1,17,74),(13008,1,17,75),(13009,1,17,78),(13010,1,17,79),(13011,1,17,81),(13012,1,17,91),(13013,1,17,95),(13014,1,17,97),(13015,1,17,101),(13016,1,17,111),(13017,1,17,121),(13069,1,17,141),(13070,1,17,142),(13071,1,17,144),(13018,1,17,151),(13019,1,17,161),(13020,1,17,171),(13021,1,17,221),(13022,1,17,222),(13023,1,17,229),(13024,1,17,241),(13025,1,17,242),(13026,1,17,243),(13028,1,17,281),(13029,1,17,300),(13030,1,17,331),(13031,1,17,341),(13032,1,17,342),(13033,1,17,343),(13034,1,17,344),(13035,1,17,531),(13036,1,17,700),(13037,1,17,1001),(13038,1,17,1002),(13039,1,17,1003),(13040,1,17,1004),(13041,1,17,1005),(13042,1,17,1101),(13043,1,17,1181),(13044,1,17,1182),(13045,1,17,1201),(13046,1,17,1202),(13047,1,17,1231),(13048,1,17,2401),(13049,1,17,2501),(13050,1,17,2503),(13051,1,17,2515),(13052,1,17,20001),(13054,1,17,23001),(13055,1,17,50101),(14504,1,18,11),(14505,1,18,21),(14506,1,18,31),(14507,1,18,41),(14508,1,18,61),(14509,1,18,71),(14510,1,18,78),(14511,1,18,81),(14512,1,18,91),(14513,1,18,95),(14514,1,18,101),(14515,1,18,111),(14516,1,18,121),(14517,1,18,151),(14518,1,18,161),(14519,1,18,221),(14520,1,18,241),(14521,1,18,262),(14522,1,18,281),(14523,1,18,300),(14524,1,18,331),(14525,1,18,332),(14526,1,18,333),(14527,1,18,341),(14528,1,18,342),(14529,1,18,343),(14530,1,18,344),(14531,1,18,531),(14532,1,18,701),(14533,1,18,771),(14534,1,18,774),(14535,1,18,1001),(14536,1,18,1004),(14537,1,18,1101),(14538,1,18,1181),(14539,1,18,1182),(14540,1,18,1201),(14541,1,18,1231),(14542,1,18,2401),(14543,1,18,2501),(14544,1,18,2503),(14545,1,18,2515),(14546,1,18,20001),(14548,1,18,50101),(14549,1,18,59001),(15242,1,19,21),(15243,1,19,31),(15244,1,19,41),(15245,1,19,61),(15246,1,19,71),(15247,1,19,78),(15248,1,19,81),(15249,1,19,101),(15250,1,19,121),(15251,1,19,151),(15252,1,19,161),(15253,1,19,221),(15254,1,19,241),(15255,1,19,262),(15256,1,19,281),(15257,1,19,300),(15258,1,19,331),(15259,1,19,332),(15260,1,19,341),(15261,1,19,342),(15262,1,19,343),(15263,1,19,344),(15264,1,19,531),(15265,1,19,701),(15266,1,19,771),(15267,1,19,774),(15268,1,19,777),(15269,1,19,1001),(15270,1,19,1004),(15271,1,19,1101),(15272,1,19,1121),(15273,1,19,1181),(15274,1,19,1182),(15275,1,19,1201),(15276,1,19,1231),(15277,1,19,2401),(15278,1,19,2501),(15279,1,19,20001),(15281,1,19,50101),(15282,1,19,59001),(15283,1,19,63001); +INSERT INTO `llx_user_rights` VALUES (12402,1,1,11),(12380,1,1,12),(12385,1,1,13),(12389,1,1,14),(12393,1,1,15),(12398,1,1,16),(12404,1,1,19),(9726,1,1,21),(9700,1,1,22),(9706,1,1,24),(9711,1,1,25),(9716,1,1,26),(9722,1,1,27),(9728,1,1,28),(9978,1,1,31),(9968,1,1,32),(9974,1,1,34),(1910,1,1,36),(9980,1,1,38),(11573,1,1,41),(11574,1,1,42),(11575,1,1,44),(11576,1,1,45),(7184,1,1,61),(7181,1,1,62),(7183,1,1,64),(7185,1,1,67),(7186,1,1,68),(1678,1,1,71),(1673,1,1,72),(1675,1,1,74),(1679,1,1,75),(1677,1,1,76),(1681,1,1,78),(1682,1,1,79),(12322,1,1,81),(12309,1,1,82),(12312,1,1,84),(12314,1,1,86),(12317,1,1,87),(12320,1,1,88),(12323,1,1,89),(11580,1,1,91),(11581,1,1,92),(11582,1,1,93),(11583,1,1,94),(10097,1,1,95),(10099,1,1,96),(10103,1,1,97),(10104,1,1,98),(7139,1,1,101),(7134,1,1,102),(7136,1,1,104),(7137,1,1,105),(7138,1,1,106),(7140,1,1,109),(10229,1,1,111),(10201,1,1,112),(10207,1,1,113),(10213,1,1,114),(10219,1,1,115),(10225,1,1,116),(10231,1,1,117),(12518,1,1,121),(12508,1,1,122),(12514,1,1,125),(12520,1,1,126),(11577,1,1,141),(11578,1,1,142),(11579,1,1,144),(2307,1,1,151),(2304,1,1,152),(2306,1,1,153),(2308,1,1,154),(10092,1,1,161),(10093,1,1,162),(10094,1,1,163),(10095,1,1,164),(10096,1,1,165),(1585,1,1,170),(12342,1,1,171),(12331,1,1,172),(12335,1,1,173),(12339,1,1,174),(12343,1,1,178),(10000,1,1,221),(9990,1,1,222),(9996,1,1,223),(10002,1,1,229),(10007,1,1,237),(10011,1,1,238),(10015,1,1,239),(1686,1,1,241),(1685,1,1,242),(1687,1,1,243),(12604,1,1,251),(12566,1,1,252),(12569,1,1,253),(12572,1,1,254),(12575,1,1,255),(12579,1,1,256),(1617,1,1,258),(12525,1,1,262),(12544,1,1,281),(12534,1,1,282),(12540,1,1,283),(12546,1,1,286),(12288,1,1,300),(12290,1,1,301),(11591,1,1,302),(1763,1,1,331),(1762,1,1,332),(1764,1,1,333),(12582,1,1,341),(12584,1,1,342),(12586,1,1,343),(12588,1,1,344),(12600,1,1,351),(12593,1,1,352),(12597,1,1,353),(12601,1,1,354),(12605,1,1,358),(12560,1,1,531),(12553,1,1,532),(12557,1,1,534),(1625,1,1,536),(12561,1,1,538),(12358,1,1,700),(12348,1,1,701),(12354,1,1,702),(12360,1,1,703),(1755,1,1,1001),(1754,1,1,1002),(1756,1,1,1003),(1758,1,1,1004),(1759,1,1,1005),(7146,1,1,1101),(7143,1,1,1102),(7145,1,1,1104),(7147,1,1,1109),(12412,1,1,1181),(12458,1,1,1182),(12417,1,1,1183),(12420,1,1,1184),(12423,1,1,1185),(12427,1,1,1186),(12431,1,1,1187),(12437,1,1,1188),(12434,1,1,1189),(1578,1,1,1201),(1579,1,1,1202),(12454,1,1,1231),(12443,1,1,1232),(12446,1,1,1233),(12449,1,1,1234),(12452,1,1,1235),(12455,1,1,1236),(12459,1,1,1237),(1736,1,1,1251),(12409,1,1,1321),(12326,1,1,1421),(8190,1,1,1791),(8187,1,1,1792),(8191,1,1,1793),(12264,1,1,2401),(12260,1,1,2402),(12266,1,1,2403),(12280,1,1,2411),(12276,1,1,2412),(12282,1,1,2413),(12286,1,1,2414),(1618,1,1,2500),(12370,1,1,2501),(12367,1,1,2503),(12371,1,1,2515),(9610,1,1,5001),(9611,1,1,5002),(12490,1,1,20001),(12474,1,1,20003),(12480,1,1,20004),(12486,1,1,20005),(12492,1,1,20006),(12302,1,1,23001),(12295,1,1,23002),(12299,1,1,23003),(12303,1,1,23004),(7701,1,1,50101),(4984,1,1,50401),(4983,1,1,50402),(4985,1,1,50403),(4987,1,1,50411),(4988,1,1,50412),(4989,1,1,50415),(12498,1,1,55001),(12499,1,1,55002),(3564,1,1,100700),(3565,1,1,100701),(9596,1,1,101051),(9598,1,1,101052),(9600,1,1,101053),(9604,1,1,101060),(9605,1,1,101061),(7177,1,1,101201),(7178,1,1,101202),(10353,1,1,101250),(10355,1,1,101251),(8980,1,1,101261),(8981,1,1,101262),(7616,1,1,101331),(10030,1,1,101701),(10031,1,1,101702),(3582,1,1,102000),(3583,1,1,102001),(9819,1,1,400051),(9823,1,1,400052),(9827,1,1,400053),(9831,1,1,400055),(132,1,2,11),(133,1,2,12),(134,1,2,13),(135,1,2,14),(136,1,2,16),(137,1,2,19),(138,1,2,21),(139,1,2,22),(140,1,2,24),(141,1,2,25),(142,1,2,26),(143,1,2,27),(10359,1,2,31),(145,1,2,32),(10361,1,2,34),(146,1,2,36),(147,1,2,41),(148,1,2,42),(149,1,2,44),(150,1,2,61),(151,1,2,62),(152,1,2,64),(153,1,2,71),(154,1,2,72),(155,1,2,74),(156,1,2,75),(157,1,2,78),(158,1,2,79),(159,1,2,81),(160,1,2,82),(161,1,2,84),(162,1,2,86),(163,1,2,87),(164,1,2,88),(165,1,2,89),(166,1,2,91),(167,1,2,92),(168,1,2,93),(2475,1,2,95),(2476,1,2,96),(2477,1,2,97),(2478,1,2,98),(169,1,2,101),(170,1,2,102),(171,1,2,104),(172,1,2,109),(173,1,2,111),(174,1,2,112),(175,1,2,113),(176,1,2,114),(177,1,2,116),(178,1,2,117),(179,1,2,121),(180,1,2,122),(181,1,2,125),(182,1,2,141),(183,1,2,142),(184,1,2,144),(2479,1,2,151),(2480,1,2,152),(2481,1,2,153),(2482,1,2,154),(185,1,2,161),(186,1,2,162),(187,1,2,163),(188,1,2,164),(189,1,2,165),(190,1,2,170),(2471,1,2,171),(192,1,2,172),(2472,1,2,173),(193,1,2,221),(194,1,2,222),(195,1,2,229),(196,1,2,241),(197,1,2,242),(198,1,2,243),(199,1,2,251),(201,1,2,262),(202,1,2,281),(203,1,2,282),(204,1,2,283),(205,1,2,331),(15072,1,2,510),(2483,1,2,531),(207,1,2,532),(2484,1,2,534),(208,1,2,536),(2473,1,2,700),(210,1,2,701),(211,1,2,702),(2474,1,2,703),(15064,1,2,771),(15057,1,2,772),(15059,1,2,773),(15061,1,2,774),(15063,1,2,775),(15065,1,2,776),(212,1,2,1001),(213,1,2,1002),(214,1,2,1003),(215,1,2,1004),(216,1,2,1005),(217,1,2,1101),(218,1,2,1102),(219,1,2,1104),(220,1,2,1109),(15073,1,2,1121),(15074,1,2,1122),(15075,1,2,1123),(15076,1,2,1124),(15077,1,2,1125),(15078,1,2,1126),(221,1,2,1181),(222,1,2,1182),(223,1,2,1183),(224,1,2,1184),(225,1,2,1185),(226,1,2,1186),(227,1,2,1187),(228,1,2,1188),(229,1,2,1201),(230,1,2,1202),(231,1,2,1231),(232,1,2,1232),(233,1,2,1233),(234,1,2,1234),(235,1,2,1421),(236,1,2,2401),(237,1,2,2402),(238,1,2,2403),(239,1,2,2411),(240,1,2,2412),(241,1,2,2413),(242,1,2,2500),(2470,1,2,2501),(243,1,2,2515),(10363,1,2,20001),(10365,1,2,20003),(10366,1,2,20004),(10367,1,2,20005),(10368,1,2,20006),(15054,1,2,23001),(10362,1,2,50101),(15067,1,2,55001),(15066,1,2,59001),(15068,1,2,63001),(15069,1,2,63002),(15070,1,2,63003),(15071,1,2,63004),(10372,1,2,101250),(1807,1,3,11),(1808,1,3,31),(1809,1,3,36),(1810,1,3,41),(1811,1,3,61),(1812,1,3,71),(1813,1,3,72),(1814,1,3,74),(1815,1,3,75),(1816,1,3,78),(1817,1,3,79),(1818,1,3,91),(1819,1,3,95),(1820,1,3,97),(1821,1,3,111),(1822,1,3,121),(1823,1,3,122),(1824,1,3,125),(1825,1,3,161),(1826,1,3,170),(1827,1,3,171),(1828,1,3,172),(1829,1,3,221),(1830,1,3,222),(1831,1,3,229),(1832,1,3,241),(1833,1,3,242),(1834,1,3,243),(1835,1,3,251),(1836,1,3,255),(1837,1,3,256),(1838,1,3,262),(1839,1,3,281),(1840,1,3,282),(1841,1,3,283),(1842,1,3,331),(1843,1,3,531),(1844,1,3,536),(1845,1,3,700),(1846,1,3,1001),(1847,1,3,1002),(1848,1,3,1003),(1849,1,3,1004),(1850,1,3,1005),(1851,1,3,1181),(1852,1,3,1182),(1853,1,3,1201),(1854,1,3,1202),(1855,1,3,1231),(1856,1,3,2401),(1857,1,3,2402),(1858,1,3,2403),(1859,1,3,2411),(1860,1,3,2412),(1861,1,3,2413),(1862,1,3,2500),(1863,1,3,2515),(8026,1,4,11),(8027,1,4,21),(8028,1,4,31),(8029,1,4,41),(8030,1,4,61),(8031,1,4,71),(8032,1,4,72),(8033,1,4,74),(8034,1,4,75),(8035,1,4,78),(8036,1,4,79),(8037,1,4,81),(8038,1,4,91),(8039,1,4,95),(8040,1,4,97),(8041,1,4,101),(8042,1,4,111),(8043,1,4,121),(8044,1,4,151),(8045,1,4,161),(8046,1,4,171),(8047,1,4,221),(8048,1,4,222),(8049,1,4,229),(8050,1,4,241),(8051,1,4,242),(8052,1,4,243),(8146,1,4,251),(8147,1,4,253),(8053,1,4,262),(8054,1,4,281),(8055,1,4,331),(8056,1,4,341),(8057,1,4,342),(8058,1,4,343),(8059,1,4,344),(8060,1,4,531),(8061,1,4,700),(8062,1,4,1001),(8063,1,4,1002),(8064,1,4,1003),(8065,1,4,1004),(8066,1,4,1005),(8067,1,4,1101),(8068,1,4,1181),(8069,1,4,1182),(8070,1,4,1201),(8071,1,4,1202),(8072,1,4,1231),(8073,1,4,2401),(8074,1,4,2501),(8075,1,4,2503),(8076,1,4,2515),(8077,1,4,20001),(8078,1,4,50101),(8079,1,4,101201),(8080,1,4,101261),(8081,1,4,102000),(8082,1,4,400051),(8083,1,4,400052),(8084,1,4,400053),(8085,1,4,400055),(12608,1,10,11),(12609,1,10,21),(12610,1,10,31),(12611,1,10,41),(12612,1,10,61),(12613,1,10,71),(12614,1,10,72),(12615,1,10,74),(12616,1,10,75),(12617,1,10,78),(12618,1,10,79),(12619,1,10,81),(12620,1,10,91),(12621,1,10,95),(12622,1,10,97),(12623,1,10,101),(12624,1,10,111),(12625,1,10,121),(12626,1,10,151),(12627,1,10,161),(12628,1,10,171),(12629,1,10,221),(12630,1,10,222),(12631,1,10,229),(12632,1,10,241),(12633,1,10,242),(12634,1,10,243),(12635,1,10,262),(12636,1,10,281),(12637,1,10,300),(12638,1,10,331),(12639,1,10,341),(12640,1,10,342),(12641,1,10,343),(12642,1,10,344),(12643,1,10,531),(12644,1,10,700),(12645,1,10,1001),(12646,1,10,1002),(12647,1,10,1003),(12648,1,10,1004),(12649,1,10,1005),(12650,1,10,1101),(12651,1,10,1181),(12652,1,10,1182),(12653,1,10,1201),(12654,1,10,1202),(12655,1,10,1231),(12656,1,10,2401),(12657,1,10,2501),(12658,1,10,2503),(12659,1,10,2515),(12660,1,10,20001),(12662,1,10,23001),(12663,1,10,50101),(12664,1,11,11),(12665,1,11,21),(12666,1,11,31),(12667,1,11,41),(12668,1,11,61),(12669,1,11,71),(12670,1,11,72),(12671,1,11,74),(12672,1,11,75),(12673,1,11,78),(12674,1,11,79),(12675,1,11,81),(12676,1,11,91),(12677,1,11,95),(12678,1,11,97),(12679,1,11,101),(12680,1,11,111),(12681,1,11,121),(12682,1,11,151),(12683,1,11,161),(12684,1,11,171),(12685,1,11,221),(12686,1,11,222),(12687,1,11,229),(12688,1,11,241),(12689,1,11,242),(12690,1,11,243),(12691,1,11,262),(12692,1,11,281),(12693,1,11,300),(12694,1,11,331),(12695,1,11,341),(12696,1,11,342),(12697,1,11,343),(12698,1,11,344),(12699,1,11,531),(12700,1,11,700),(12701,1,11,1001),(12702,1,11,1002),(12703,1,11,1003),(12704,1,11,1004),(12705,1,11,1005),(12706,1,11,1101),(12707,1,11,1181),(12708,1,11,1182),(12709,1,11,1201),(12710,1,11,1202),(12711,1,11,1231),(12712,1,11,2401),(12713,1,11,2501),(12714,1,11,2503),(12715,1,11,2515),(12716,1,11,20001),(12718,1,11,23001),(12719,1,11,50101),(21653,1,12,11),(21647,1,12,12),(21648,1,12,13),(21649,1,12,14),(21650,1,12,15),(21652,1,12,16),(21654,1,12,19),(14146,1,12,21),(14135,1,12,22),(14137,1,12,24),(14139,1,12,25),(14142,1,12,26),(14145,1,12,27),(14148,1,12,28),(14930,1,12,31),(14926,1,12,32),(14929,1,12,34),(14932,1,12,38),(13816,1,12,41),(13813,1,12,42),(13815,1,12,44),(13817,1,12,45),(14094,1,12,61),(14091,1,12,62),(14093,1,12,64),(14095,1,12,67),(14096,1,12,68),(16203,1,12,71),(16198,1,12,72),(16200,1,12,74),(16204,1,12,75),(16202,1,12,76),(16206,1,12,78),(16207,1,12,79),(21617,1,12,81),(21611,1,12,82),(21612,1,12,84),(21613,1,12,85),(21614,1,12,86),(21615,1,12,87),(21616,1,12,88),(21618,1,12,89),(15401,1,12,91),(15397,1,12,92),(15400,1,12,93),(15403,1,12,94),(13990,1,12,95),(12734,1,12,97),(19241,1,12,101),(19237,1,12,102),(19238,1,12,104),(19239,1,12,105),(19240,1,12,106),(19242,1,12,109),(21595,1,12,111),(21586,1,12,112),(21588,1,12,113),(21590,1,12,114),(21592,1,12,115),(21594,1,12,116),(21596,1,12,117),(21741,1,12,121),(21738,1,12,122),(21740,1,12,125),(21742,1,12,126),(21743,1,12,130),(13821,1,12,141),(13820,1,12,142),(13822,1,12,144),(13912,1,12,151),(13909,1,12,152),(13911,1,12,153),(13913,1,12,154),(14063,1,12,161),(14056,1,12,162),(14058,1,12,163),(14060,1,12,164),(14062,1,12,165),(14064,1,12,167),(13350,1,12,171),(13345,1,12,172),(13347,1,12,173),(13349,1,12,174),(13351,1,12,178),(13838,1,12,221),(13834,1,12,222),(13837,1,12,223),(13840,1,12,229),(13842,1,12,237),(13844,1,12,238),(13846,1,12,239),(13516,1,12,241),(13515,1,12,242),(13517,1,12,243),(21782,1,12,251),(21763,1,12,252),(21765,1,12,253),(21766,1,12,254),(21768,1,12,255),(21770,1,12,256),(21744,1,12,262),(21750,1,12,281),(21747,1,12,282),(21749,1,12,283),(21751,1,12,286),(19877,1,12,300),(21600,1,12,301),(21360,1,12,302),(21599,1,12,304),(21601,1,12,305),(16194,1,12,331),(16193,1,12,332),(16195,1,12,333),(21771,1,12,341),(21772,1,12,342),(21773,1,12,343),(21774,1,12,344),(21780,1,12,351),(21777,1,12,352),(21779,1,12,353),(21781,1,12,354),(21783,1,12,358),(19249,1,12,430),(16384,1,12,501),(16378,1,12,502),(13865,1,12,510),(21726,1,12,511),(21721,1,12,512),(21723,1,12,514),(21725,1,12,517),(21727,1,12,519),(15291,1,12,520),(15286,1,12,522),(15288,1,12,524),(15290,1,12,525),(15292,1,12,527),(21734,1,12,531),(21730,1,12,532),(21731,1,12,533),(21733,1,12,534),(21735,1,12,538),(20076,1,12,561),(20073,1,12,562),(20075,1,12,563),(20077,1,12,564),(21787,1,12,610),(21786,1,12,611),(21788,1,12,612),(16932,1,12,650),(21582,1,12,651),(21581,1,12,652),(21583,1,12,653),(17124,1,12,660),(21701,1,12,661),(21700,1,12,662),(21702,1,12,663),(13358,1,12,700),(21623,1,12,701),(21622,1,12,702),(21624,1,12,703),(21710,1,12,750),(21709,1,12,751),(21711,1,12,752),(21643,1,12,771),(21632,1,12,772),(21634,1,12,773),(15085,1,12,774),(21636,1,12,775),(21638,1,12,776),(21640,1,12,777),(21642,1,12,778),(21644,1,12,779),(14917,1,12,1001),(14916,1,12,1002),(14918,1,12,1003),(14920,1,12,1004),(14921,1,12,1005),(19247,1,12,1101),(19245,1,12,1102),(19246,1,12,1104),(19248,1,12,1109),(19233,1,12,1121),(19226,1,12,1122),(19228,1,12,1123),(19230,1,12,1124),(19232,1,12,1125),(19234,1,12,1126),(21657,1,12,1181),(21671,1,12,1182),(21660,1,12,1183),(21661,1,12,1184),(21663,1,12,1185),(21665,1,12,1186),(21667,1,12,1187),(21670,1,12,1188),(21668,1,12,1189),(21672,1,12,1191),(13827,1,12,1201),(13828,1,12,1202),(21680,1,12,1231),(21675,1,12,1232),(21676,1,12,1233),(21678,1,12,1234),(21679,1,12,1235),(21681,1,12,1236),(16302,1,12,1237),(13829,1,12,1251),(21655,1,12,1321),(21656,1,12,1322),(21619,1,12,1421),(21571,1,12,2401),(21570,1,12,2402),(21572,1,12,2403),(21576,1,12,2411),(21575,1,12,2412),(21577,1,12,2413),(21578,1,12,2414),(21628,1,12,2501),(21627,1,12,2503),(21629,1,12,2515),(20082,1,12,3200),(20840,1,12,3201),(20341,1,12,3301),(15435,1,12,5001),(15436,1,12,5002),(21796,1,12,10001),(21791,1,12,10002),(21793,1,12,10003),(21795,1,12,10005),(21797,1,12,10008),(21693,1,12,20001),(21684,1,12,20002),(21686,1,12,20003),(21690,1,12,20004),(21692,1,12,20005),(21694,1,12,20006),(21688,1,12,20007),(21607,1,12,23001),(21604,1,12,23002),(21606,1,12,23003),(21608,1,12,23004),(19019,1,12,50101),(21759,1,12,50151),(21760,1,12,50152),(21761,1,12,50153),(21556,1,12,50401),(21564,1,12,50411),(21559,1,12,50412),(21561,1,12,50414),(21563,1,12,50415),(21565,1,12,50418),(21566,1,12,50420),(21567,1,12,50430),(21555,1,12,50440),(21704,1,12,55001),(21705,1,12,55002),(21757,1,12,56001),(21754,1,12,56002),(21756,1,12,56003),(21758,1,12,56004),(16742,1,12,56005),(20838,1,12,57001),(20837,1,12,57002),(20839,1,12,57003),(21695,1,12,59001),(21696,1,12,59002),(21697,1,12,59003),(21717,1,12,63001),(21714,1,12,63002),(21716,1,12,63003),(21718,1,12,63004),(21706,1,12,64001),(17328,1,12,101130),(17327,1,12,101131),(17329,1,12,101132),(16009,1,12,101331),(16010,1,12,101332),(16011,1,12,101333),(19208,1,12,101701),(19209,1,12,101702),(20069,1,12,941601),(20065,1,12,941602),(20066,1,12,941603),(20067,1,12,941604),(20068,1,12,941605),(20070,1,12,941606),(12776,1,13,11),(12777,1,13,21),(12778,1,13,31),(12779,1,13,41),(12780,1,13,61),(12781,1,13,71),(12782,1,13,72),(12783,1,13,74),(12784,1,13,75),(12785,1,13,78),(12786,1,13,79),(12787,1,13,81),(12788,1,13,91),(12789,1,13,95),(12790,1,13,97),(12791,1,13,101),(12792,1,13,111),(12793,1,13,121),(12794,1,13,151),(12795,1,13,161),(12796,1,13,171),(12797,1,13,221),(12798,1,13,222),(12799,1,13,229),(12800,1,13,241),(12801,1,13,242),(12802,1,13,243),(12803,1,13,262),(12804,1,13,281),(12805,1,13,300),(12806,1,13,331),(12807,1,13,341),(12808,1,13,342),(12809,1,13,343),(12810,1,13,344),(12811,1,13,531),(12812,1,13,700),(12813,1,13,1001),(12814,1,13,1002),(12815,1,13,1003),(12816,1,13,1004),(12817,1,13,1005),(12818,1,13,1101),(12819,1,13,1181),(12820,1,13,1182),(12821,1,13,1201),(12822,1,13,1202),(12823,1,13,1231),(12824,1,13,2401),(12825,1,13,2501),(12826,1,13,2503),(12827,1,13,2515),(12828,1,13,20001),(12830,1,13,23001),(12831,1,13,50101),(12832,1,14,11),(12833,1,14,21),(12834,1,14,31),(12835,1,14,41),(12836,1,14,61),(12837,1,14,71),(12838,1,14,72),(12839,1,14,74),(12840,1,14,75),(12841,1,14,78),(12842,1,14,79),(12843,1,14,81),(12844,1,14,91),(12845,1,14,95),(12846,1,14,97),(12847,1,14,101),(12848,1,14,111),(12849,1,14,121),(12850,1,14,151),(12851,1,14,161),(12852,1,14,171),(12853,1,14,221),(12854,1,14,222),(12855,1,14,229),(12856,1,14,241),(12857,1,14,242),(12858,1,14,243),(12859,1,14,262),(12860,1,14,281),(12861,1,14,300),(12862,1,14,331),(12863,1,14,341),(12864,1,14,342),(12865,1,14,343),(12866,1,14,344),(12867,1,14,531),(12868,1,14,700),(12869,1,14,1001),(12870,1,14,1002),(12871,1,14,1003),(12872,1,14,1004),(12873,1,14,1005),(12874,1,14,1101),(12875,1,14,1181),(12876,1,14,1182),(12877,1,14,1201),(12878,1,14,1202),(12879,1,14,1231),(12880,1,14,2401),(12881,1,14,2501),(12882,1,14,2503),(12883,1,14,2515),(12884,1,14,20001),(12886,1,14,23001),(12887,1,14,50101),(12944,1,16,11),(12945,1,16,21),(12946,1,16,31),(13056,1,16,41),(13057,1,16,42),(13058,1,16,44),(13059,1,16,45),(12948,1,16,61),(12949,1,16,71),(12950,1,16,72),(12951,1,16,74),(12952,1,16,75),(12953,1,16,78),(12954,1,16,79),(12955,1,16,81),(12956,1,16,91),(12957,1,16,95),(12958,1,16,97),(12959,1,16,101),(12960,1,16,111),(12961,1,16,121),(13060,1,16,141),(13061,1,16,142),(13062,1,16,144),(12962,1,16,151),(12963,1,16,161),(12964,1,16,171),(12965,1,16,221),(12966,1,16,222),(12967,1,16,229),(12968,1,16,241),(12969,1,16,242),(12970,1,16,243),(13128,1,16,251),(13064,1,16,262),(12972,1,16,281),(12973,1,16,300),(12974,1,16,331),(12975,1,16,341),(12976,1,16,342),(12977,1,16,343),(12978,1,16,344),(12979,1,16,531),(12980,1,16,700),(12981,1,16,1001),(12982,1,16,1002),(12983,1,16,1003),(12984,1,16,1004),(12985,1,16,1005),(12986,1,16,1101),(12987,1,16,1181),(12988,1,16,1182),(12989,1,16,1201),(12990,1,16,1202),(12991,1,16,1231),(12992,1,16,2401),(12993,1,16,2501),(12994,1,16,2503),(12995,1,16,2515),(12996,1,16,20001),(12998,1,16,23001),(12999,1,16,50101),(13000,1,17,11),(13001,1,17,21),(13002,1,17,31),(13065,1,17,41),(13066,1,17,42),(13067,1,17,44),(13068,1,17,45),(13004,1,17,61),(13005,1,17,71),(13006,1,17,72),(13007,1,17,74),(13008,1,17,75),(13009,1,17,78),(13010,1,17,79),(13011,1,17,81),(13012,1,17,91),(13013,1,17,95),(13014,1,17,97),(13015,1,17,101),(13016,1,17,111),(13017,1,17,121),(13069,1,17,141),(13070,1,17,142),(13071,1,17,144),(13018,1,17,151),(13019,1,17,161),(13020,1,17,171),(13021,1,17,221),(13022,1,17,222),(13023,1,17,229),(13024,1,17,241),(13025,1,17,242),(13026,1,17,243),(13028,1,17,281),(13029,1,17,300),(13030,1,17,331),(13031,1,17,341),(13032,1,17,342),(13033,1,17,343),(13034,1,17,344),(13035,1,17,531),(13036,1,17,700),(13037,1,17,1001),(13038,1,17,1002),(13039,1,17,1003),(13040,1,17,1004),(13041,1,17,1005),(13042,1,17,1101),(13043,1,17,1181),(13044,1,17,1182),(13045,1,17,1201),(13046,1,17,1202),(13047,1,17,1231),(13048,1,17,2401),(13049,1,17,2501),(13050,1,17,2503),(13051,1,17,2515),(13052,1,17,20001),(13054,1,17,23001),(13055,1,17,50101),(14504,1,18,11),(14505,1,18,21),(14506,1,18,31),(14507,1,18,41),(14508,1,18,61),(14509,1,18,71),(14510,1,18,78),(14511,1,18,81),(14512,1,18,91),(14513,1,18,95),(14514,1,18,101),(14515,1,18,111),(14516,1,18,121),(14517,1,18,151),(14518,1,18,161),(14519,1,18,221),(14520,1,18,241),(14521,1,18,262),(14522,1,18,281),(14523,1,18,300),(14524,1,18,331),(14525,1,18,332),(14526,1,18,333),(14527,1,18,341),(14528,1,18,342),(14529,1,18,343),(14530,1,18,344),(14531,1,18,531),(14532,1,18,701),(14533,1,18,771),(14534,1,18,774),(14535,1,18,1001),(14536,1,18,1004),(14537,1,18,1101),(14538,1,18,1181),(14539,1,18,1182),(14540,1,18,1201),(14541,1,18,1231),(14542,1,18,2401),(14543,1,18,2501),(14544,1,18,2503),(14545,1,18,2515),(14546,1,18,20001),(14548,1,18,50101),(14549,1,18,59001),(15242,1,19,21),(15243,1,19,31),(15244,1,19,41),(15245,1,19,61),(15246,1,19,71),(15247,1,19,78),(15248,1,19,81),(15249,1,19,101),(15250,1,19,121),(15251,1,19,151),(15252,1,19,161),(15253,1,19,221),(15254,1,19,241),(15255,1,19,262),(15256,1,19,281),(15257,1,19,300),(15258,1,19,331),(15259,1,19,332),(15260,1,19,341),(15261,1,19,342),(15262,1,19,343),(15263,1,19,344),(15264,1,19,531),(15265,1,19,701),(15266,1,19,771),(15267,1,19,774),(15268,1,19,777),(15269,1,19,1001),(15270,1,19,1004),(15271,1,19,1101),(15272,1,19,1121),(15273,1,19,1181),(15274,1,19,1182),(15275,1,19,1201),(15276,1,19,1231),(15277,1,19,2401),(15278,1,19,2501),(15279,1,19,20001),(15281,1,19,50101),(15282,1,19,59001),(15283,1,19,63001); /*!40000 ALTER TABLE `llx_user_rights` ENABLE KEYS */; UNLOCK TABLES; @@ -12900,15 +13779,15 @@ DROP TABLE IF EXISTS `llx_usergroup`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_usergroup` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `nom` varchar(255) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_usergroup_name` (`nom`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12932,10 +13811,10 @@ CREATE TABLE `llx_usergroup_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_usergroup_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12963,7 +13842,7 @@ CREATE TABLE `llx_usergroup_rights` ( UNIQUE KEY `uk_usergroup_rights` (`entity`,`fk_usergroup`,`fk_id`), KEY `fk_usergroup_rights_fk_usergroup` (`fk_usergroup`), CONSTRAINT `fk_usergroup_rights_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12994,7 +13873,7 @@ CREATE TABLE `llx_usergroup_user` ( KEY `fk_usergroup_user_fk_usergroup` (`fk_usergroup`), CONSTRAINT `fk_usergroup_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`), CONSTRAINT `fk_usergroup_user_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13017,29 +13896,29 @@ DROP TABLE IF EXISTS `llx_website`; CREATE TABLE `llx_website` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(128) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `fk_default_home` int(11) DEFAULT NULL, - `virtualhost` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `virtualhost` varchar(255) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_modification` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `maincolor` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, - `maincolorbis` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `maincolor` varchar(16) DEFAULT NULL, + `maincolorbis` varchar(16) DEFAULT NULL, `use_manifest` int(11) DEFAULT NULL, - `lang` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, - `otherlang` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(8) DEFAULT NULL, + `otherlang` varchar(255) DEFAULT NULL, `position` int(11) DEFAULT 0, `lastaccess` datetime DEFAULT NULL, `pageviews_month` bigint(20) unsigned DEFAULT 0, `pageviews_total` bigint(20) unsigned DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_website_ref` (`ref`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13063,10 +13942,10 @@ CREATE TABLE `llx_website_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_website_extrafields` (`fk_object`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13088,33 +13967,33 @@ DROP TABLE IF EXISTS `llx_website_page`; CREATE TABLE `llx_website_page` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_website` int(11) NOT NULL, - `pageurl` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `aliasalt` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `keywords` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `content` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `pageurl` varchar(255) DEFAULT NULL, + `aliasalt` varchar(255) DEFAULT NULL, + `title` varchar(255) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `keywords` varchar(255) DEFAULT NULL, + `content` mediumtext DEFAULT NULL, `status` int(11) DEFAULT 1, `date_creation` datetime DEFAULT NULL, `date_modification` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `type_container` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'page', - `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL, + `type_container` varchar(16) NOT NULL DEFAULT 'page', + `lang` varchar(6) DEFAULT NULL, `fk_page` int(11) DEFAULT NULL, - `grabbed_from` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `htmlheader` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, - `image` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `author_alias` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `grabbed_from` varchar(255) DEFAULT NULL, + `htmlheader` mediumtext DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `image` varchar(255) DEFAULT NULL, + `author_alias` varchar(64) DEFAULT NULL, `allowed_in_frames` int(11) DEFAULT 0, - `object_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `fk_object` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `object_type` varchar(255) DEFAULT NULL, + `fk_object` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_website_page_url` (`fk_website`,`pageurl`), CONSTRAINT `fk_website_page_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13136,17 +14015,17 @@ DROP TABLE IF EXISTS `llx_workstation_workstation`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_workstation_workstation` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '(PROV)', - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `type` varchar(7) COLLATE utf8_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8_unicode_ci DEFAULT NULL, + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', + `label` varchar(255) DEFAULT NULL, + `type` varchar(7) DEFAULT NULL, + `note_public` text DEFAULT NULL, `entity` int(11) DEFAULT 1, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` smallint(6) NOT NULL, `nb_operators_required` int(11) DEFAULT NULL, `thm_operator_estimated` double DEFAULT NULL, @@ -13157,7 +14036,7 @@ CREATE TABLE `llx_workstation_workstation` ( KEY `fk_workstation_workstation_fk_user_creat` (`fk_user_creat`), KEY `idx_workstation_workstation_status` (`status`), CONSTRAINT `fk_workstation_workstation_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13182,7 +14061,7 @@ CREATE TABLE `llx_workstation_workstation_resource` ( `fk_resource` int(11) DEFAULT NULL, `fk_workstation` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13207,7 +14086,7 @@ CREATE TABLE `llx_workstation_workstation_usergroup` ( `fk_usergroup` int(11) DEFAULT NULL, `fk_workstation` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13229,17 +14108,17 @@ DROP TABLE IF EXISTS `llx_zapier_hook`; CREATE TABLE `llx_zapier_hook` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `event` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - `module` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, - `action` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `event` varchar(255) DEFAULT NULL, + `module` varchar(128) DEFAULT NULL, + `action` varchar(128) DEFAULT NULL, `status` int(11) DEFAULT NULL, `date_creation` datetime NOT NULL, `fk_user` int(11) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13260,4 +14139,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2022-02-07 15:44:10 +-- Dump completed on 2022-12-11 22:30:04 diff --git a/dev/resources/iso-normes/accountancy/accountancy_rules.txt b/dev/resources/iso-normes/accountancy/accountancy_rules.txt index a265bcf4f54..918d0f01d3c 100644 --- a/dev/resources/iso-normes/accountancy/accountancy_rules.txt +++ b/dev/resources/iso-normes/accountancy/accountancy_rules.txt @@ -12,3 +12,11 @@ Le client règle rapidement et on lui accorde un escompte de 3% (120 € * 3% = 411xxx 3,60 € TTC Et ça marche à l’inverse avec un fournisseur sauf que l’on est en 775000 au lieu de 665000 pour escompte obtenus. + + + + +Un compte comptable de Tiers vente = Acount Receivable +Un compte comptable de Tiers achat = Acount Payable + + \ No newline at end of file diff --git a/dev/resources/iso-normes/banking/iban_registry_0.pdf b/dev/resources/iso-normes/banking/iban_registry_0.pdf new file mode 100644 index 00000000000..4c56961c2c5 Binary files /dev/null and b/dev/resources/iso-normes/banking/iban_registry_0.pdf differ diff --git a/dev/resources/iso-normes/barcodes/QR code for invoices.txt b/dev/resources/iso-normes/qr-bar-codes/QR code for invoices.txt similarity index 72% rename from dev/resources/iso-normes/barcodes/QR code for invoices.txt rename to dev/resources/iso-normes/qr-bar-codes/QR code for invoices.txt index 639435238f9..b388ed0c599 100644 --- a/dev/resources/iso-normes/barcodes/QR code for invoices.txt +++ b/dev/resources/iso-normes/qr-bar-codes/QR code for invoices.txt @@ -20,3 +20,10 @@ https://www.pwc.com/m1/en/services/tax/me-tax-legal-news/2021/saudi-arabia-guide https://www.tecklenborgh.com/post/ksa-zatca-publishes-guide-on-how-to-develop-a-fatoora-compliant-qr-code Method to encode/decode ZATCA string is available in test/phpunit/BarcodeTest.php + + +* FOR QR-Bill in switzerland +---------------------------- +Syntax of QR Code https://www.swiss-qr-invoice.org/fr/ +Syntax of complentary field named "structured information of invoice S1": https://www.swiss-qr-invoice.org/downloads/qr-bill-s1-syntax-fr.pdf +To test/validate: https://www.swiss-qr-invoice.org/validator/ diff --git a/dev/resources/iso-normes/barcodes/barcode_EAN13.txt b/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt similarity index 100% rename from dev/resources/iso-normes/barcodes/barcode_EAN13.txt rename to dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt diff --git a/dev/resources/iso-normes/vat_number_names.txt b/dev/resources/iso-normes/tax/vat_number_names.txt similarity index 71% rename from dev/resources/iso-normes/vat_number_names.txt rename to dev/resources/iso-normes/tax/vat_number_names.txt index b1e8d469ec8..77adda72e0d 100644 --- a/dev/resources/iso-normes/vat_number_names.txt +++ b/dev/resources/iso-normes/tax/vat_number_names.txt @@ -4,4 +4,5 @@ terms (en) VAT = Value Added Tax (fr) TVA = Taxe sur la Valeur Ajouté (es) NIF / CIF -(de) USt / MwSt +(de) USt / MwSt = UmsatzSteuer / Mehrwertsteuer +(it) IVA diff --git a/dev/resources/iso-normes/tax/world_tax_rates.txt b/dev/resources/iso-normes/tax/world_tax_rates.txt new file mode 100644 index 00000000000..0b3bc3f41e5 --- /dev/null +++ b/dev/resources/iso-normes/tax/world_tax_rates.txt @@ -0,0 +1,10 @@ +VAT Rates +--------- + +https://www.taxrates.cc/index.html +https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates + +For India: VAT=IGST / CGST=Localtax1 / SGST=Localtax2 +see: + https://cleartax.in/s/what-is-sgst-cgst-igst + https://www.mastersindia.co/blog/what-is-cgst-sgst-igst-and-ugst/ diff --git a/dev/resources/iso-normes/world_tax_rates.txt b/dev/resources/iso-normes/world_tax_rates.txt deleted file mode 100644 index 508446b618a..00000000000 --- a/dev/resources/iso-normes/world_tax_rates.txt +++ /dev/null @@ -1,8 +0,0 @@ -VAT Rates ---------- - -http://www.taxrates.cc/index.html -https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates - -For India: VAT=IGST/CGST=Localtax1/SGST=Localtax2: https://cleartax.in/s/what-is-sgst-cgst-igst - diff --git a/dev/setup/apache/virtualhost b/dev/setup/apache/virtualhost index 8c7682fe3d9..e8c5f2a8f4b 100644 --- a/dev/setup/apache/virtualhost +++ b/dev/setup/apache/virtualhost @@ -1,9 +1,17 @@ #php_admin_value sendmail_path "/usr/sbin/sendmail -t -i" #php_admin_value mail.force_extra_parameters "-f postmaster@mydomain.com" - php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com" - php_admin_value open_basedir /tmp/:/home/.../htdocs:/home/.../dolibarr_documents: + #php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com" + php_admin_value open_basedir /tmp/:/home/.../htdocs:/home/.../dolibarr_documents: + + + # Add this to use a custom apparmor profile when using apache php handler + + AADefaultHatName sellyoursaas-instances + + + ServerName myvirtualalias ServerAlias myvirtualalias @@ -28,8 +36,8 @@ #AuthUserFile /etc/apache2/.htpasswd #require valid-user - - # Leaving /public and /api, /dav, .well_known but also wrappers for document and viewimage accessible to everyone + + # Leaving /public and /api, /dav, .well_known but also wrappers for document, viewimage and public json/img accessible to everyone AuthType None Require all granted @@ -82,9 +90,9 @@ # /usr/share/doc/apache2.2-common/README.Debian.gz for more info. # If both key and certificate are stored in the same file, only the # SSLCertificateFile directive is needed. - SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/cert.pem - SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem - SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem + #SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/cert.pem + #SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem + #SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem #RewriteEngine on #RewriteCond %{SERVER_PORT} ^80$ diff --git a/dev/setup/codesniffer/ruleset.xml b/dev/setup/codesniffer/ruleset.xml index e78438d8791..e286450f73b 100644 --- a/dev/setup/codesniffer/ruleset.xml +++ b/dev/setup/codesniffer/ruleset.xml @@ -15,9 +15,10 @@ htdocs/install/doctemplates/websites htdocs/conf.php */nltechno* - */htdocs/includes source .git + htdocs/includes + htdocs/install/doctemplates/websites @@ -135,7 +136,7 @@ - + diff --git a/dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf b/dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf new file mode 100644 index 00000000000..1356df80115 --- /dev/null +++ b/dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf @@ -0,0 +1,19 @@ +# Fail2Ban configuration file +# +# Regexp to detect forbidden access on pages (public or not) so we can add mitigation on IP making too much +# access to your a Dolibarr instance. + + +[Definition] + +# To test, you can inject this example into log +# echo `myvirtualhost.com:443 1.2.3.4 - - [15/Dec/2022:09:57:47 +0000] "GET /public/abc" 403 123 "-" "Mozilla" >> /var/log/apache2/access.log +# +# then +# fail2ban-client status web-accesslog-limit403 +# +# To test rule file on a existing log file +# fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/web-accesslog-limit403.conf + +failregex = - - .*HTTP/[0-9]+(.[0-9]+)?" 403 +ignoreregex = diff --git a/dev/setup/fail2ban/filter.d/web-dolibarr-limitpublic.conf b/dev/setup/fail2ban/filter.d/web-dolibarr-limitpublic.conf new file mode 100644 index 00000000000..2eedad18821 --- /dev/null +++ b/dev/setup/fail2ban/filter.d/web-dolibarr-limitpublic.conf @@ -0,0 +1,19 @@ +# Fail2Ban configuration file +# +# Regexp to detect access on public pages so we can add mitigation on IP making too much +# access to your a Dolibarr instance. + + +[Definition] + +# To test, you can inject this example into log +# echo `date +'%Y-%m-%d %H:%M:%S'`" INFO 1.2.3.4 --- Access to GET /public/clicktodial/cidlookup.php" >> /mypath/documents/dolibarr.log +# +# then +# fail2ban-client status web-dolibarr-limitpublic +# +# To test rule file on a existing log file +# fail2ban-regex /mypath/documents/dolibarr.log /etc/fail2ban/filter.d/web-dolibarr-limitpublic.conf + +failregex = ^ [A-Z\s]+ \s+--- Access to .*/public/ +ignoreregex = diff --git a/dev/setup/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf b/dev/setup/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf index d5922909ba9..1e126c17693 100644 --- a/dev/setup/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf +++ b/dev/setup/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf @@ -1,8 +1,7 @@ # Fail2Ban configuration file # -# Regexp to catch known spambots and software alike. Please verify -# that it is your intent to block IPs which were driven by -# above mentioned bots. +# Regexp to detect try to check a couple login/password so we can add mitigation +# on IP making too much tries. [Definition] @@ -11,7 +10,7 @@ # echo `date +'%Y-%m-%d %H:%M:%S'`" INFO 1.2.3.4 functions_dolibarr::check_user_password_abcd Authentication KO" >> /mypath/documents/dolibarr.log # # then -# fail2ban-client status web-dol-bruteforce +# fail2ban-client status web-dolibarr-rulesbruteforce # # To test rule file on a existing log file # fail2ban-regex /mypath/documents/dolibarr.log /etc/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf diff --git a/dev/setup/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf b/dev/setup/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf index edc2ca68092..8cc20dd4be4 100644 --- a/dev/setup/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf +++ b/dev/setup/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf @@ -1,8 +1,7 @@ # Fail2Ban configuration file # -# Regexp to catch known spambots and software alike. Please verify -# that it is your intent to block IPs which were driven by -# above mentioned bots. +# Regexp to detect access on passwordforgotten.php page so we can add mitigation on IP making too much +# access to this Dolibarr page. [Definition] @@ -11,7 +10,7 @@ # echo `date +'%Y-%m-%d %H:%M:%S'`" INFO 1.2.3.4 --- Access to GET /passwordforgotten.php - action=buildnewpassword, massaction=" >> /mypath/documents/dolibarr.log # # then -# fail2ban-client status web-dol-passforgotten +# fail2ban-client status web-dolibarr-rulespassforgotten # # To test rule file on a existing log file # fail2ban-regex /mypath/documents/dolibarr.log /etc/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf diff --git a/dev/setup/fail2ban/jail.local b/dev/setup/fail2ban/jail.local index bd506e20812..733987aa45c 100644 --- a/dev/setup/fail2ban/jail.local +++ b/dev/setup/fail2ban/jail.local @@ -8,21 +8,35 @@ enabled = true port = http,https filter = web-dolibarr-rulespassforgotten -logpath = >> /mypath/documents/documents/dolibarr.log +logpath = /mypath/documents/documents/dolibarr.log action = %(action_mw)s bantime = 4320000 ; 50 days findtime = 86400 ; 1 day maxretry = 10 + [web-dol-bruteforce] ; rule against bruteforce hacking (login + api) enabled = true port = http,https filter = web-dolibarr-rulesbruteforce -logpath = >> /mypath/documents/documents/dolibarr.log +logpath = /mypath/documents/documents/dolibarr.log action = %(action_mw)s bantime = 86400 ; 1 day findtime = 3600 ; 1 hour maxretry = 10 + +[web-dol-limitpublic] + +; rule to add rate limit on some public pages +enabled = true +port = http,https +filter = web-dolibarr-limitpublic +logpath = /mypath/documents/documents/dolibarr.log +action = %(action_mw)s +bantime = 86400 ; 1 day +findtime = 86400 ; 1 day +maxretry = 500 + diff --git a/dev/setup/git/hooks/pre-commit b/dev/setup/git/hooks/pre-commit index 51b7c5cf4e9..55295b4d656 100644 --- a/dev/setup/git/hooks/pre-commit +++ b/dev/setup/git/hooks/pre-commit @@ -7,7 +7,7 @@ # To run the fix manually: cd ~/git/dolibarr; phpcbf -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true "fileordir" PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"` -STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\\\.php` +STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep -v '/includes/'| grep \\\\.php` DIRPHPCS="" AUTOFIX=1 diff --git a/dev/setup/qodana/README.md b/dev/setup/qodana/README.md new file mode 100644 index 00000000000..37b465cabc9 --- /dev/null +++ b/dev/setup/qodana/README.md @@ -0,0 +1,14 @@ +QODANA TUTO +----------- +This README explains how to use qodana to generate static analytics reports on the code + +Install docker + + +Install qodana + + +To run inspection on CLI + cd ~/git/dirtoscan + sudo qodana scan --show-report + diff --git a/dev/tools/detectnotabfiles.sh b/dev/tools/detectnotabfiles.sh index c89b999b03d..ed4df5e50d8 100755 --- a/dev/tools/detectnotabfiles.sh +++ b/dev/tools/detectnotabfiles.sh @@ -10,6 +10,7 @@ # Syntax if [ "x$1" != "xlist" -a "x$1" != "xfix" ] then + echo "Detect .sh and .spec files that does not contains any tab inside" echo "Usage: fixnotabfiles.sh [list|fix]" fi diff --git a/dev/tools/dolibarr-postgres2mysql.php b/dev/tools/dolibarr-postgres2mysql.php index 1a997ddc63c..76be3804f1a 100644 --- a/dev/tools/dolibarr-postgres2mysql.php +++ b/dev/tools/dolibarr-postgres2mysql.php @@ -487,7 +487,7 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true) $pkey = $line; $linenumber ++; - if (! empty($lines[$linenumber])) { + if (!empty($lines[$linenumber])) { $line = $lines[$linenumber]; } else { $line = ''; @@ -517,7 +517,7 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true) if (substr($line, 0, 12) == "CREATE INDEX") { $matches = array(); preg_match('/CREATE INDEX "?([a-zA-Z0-9_]*)"? ON "?([a-zA-Z0-9_\.]*)"? USING btree \((.*)\);/', $line, $matches); - if (! empty($matches[3])) { + if (!empty($matches[3])) { $indexname = $matches[1]; $tablename = str_replace('public.', '', $matches[2]); $columns = $matches[3]; @@ -529,7 +529,7 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true) if (substr($line, 0, 19) == "CREATE UNIQUE INDEX") { $matches = array(); preg_match('/CREATE UNIQUE INDEX "?([a-zA-Z0-9_]*)"? ON "?([a-zA-Z0-9_\.]*)"? USING btree \((.*)\);/', $line, $matches); - if (! empty($matches[3])) { + if (!empty($matches[3])) { $indexname = $matches[1]; $tablename = str_replace('public.', '', $matches[2]); $columns = str_replace('"', '', $matches[3]); diff --git a/dev/tools/fixdosfiles.sh b/dev/tools/fixdosfiles.sh index 4be867aea98..e5e5d97b554 100755 --- a/dev/tools/fixdosfiles.sh +++ b/dev/tools/fixdosfiles.sh @@ -17,14 +17,14 @@ fi # To detec if [ "x$1" = "xlist" ] then - find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF -# find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep -v 'htdocs\/includes' | grep CRLF + find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF +# find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep -v 'htdocs\/includes' | grep CRLF fi # To convert if [ "x$1" = "xfix" ] then - for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF | awk -F':' '{ print $1 }' ` + for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF | awk -F':' '{ print $1 }' ` do echo "Fix file $fic" dos2unix "$fic" diff --git a/dev/tools/fixperms.sh b/dev/tools/fixperms.sh index 5b027ad1580..6b11f25112b 100755 --- a/dev/tools/fixperms.sh +++ b/dev/tools/fixperms.sh @@ -24,6 +24,7 @@ fi if [ "x$1" = "xfix" ] then find ./htdocs -type f -iname "*.php" -exec chmod a-x {} \; + find ./htdocs/install/ -type d -exec chmod ug+rw {} \; chmod a+x ./scripts/*/*.php chmod a+x ./scripts/*/*.sh chmod g-w ./scripts/*/*.php diff --git a/dev/tools/github_authors_and_commits_peryear.sh b/dev/tools/github_authors_and_commits_peryear.sh index 7184d6c44ae..bdba2a2a6ed 100755 --- a/dev/tools/github_authors_and_commits_peryear.sh +++ b/dev/tools/github_authors_and_commits_peryear.sh @@ -1,5 +1,8 @@ #!/bin/sh - +# +# Count number of different contributors and number of commits for a given year. +# + if [ "x$1" = "x" ]; then echo "Usage: $0 YEAR" exit diff --git a/dev/tools/github_commits_perversion.sh b/dev/tools/github_commits_perversion.sh index bf76e68bc43..2f3020ff721 100755 --- a/dev/tools/github_commits_perversion.sh +++ b/dev/tools/github_commits_perversion.sh @@ -1,6 +1,10 @@ #/bin/bash -Releases=("3.8" "3.9" "4.0" "5.0" "6.0" " 7.0" "develop") -Dates=("2013-01-01", "2014-01-01", "2015-01-01", "2016-07-01", "2017-02-01", "2017-07-01", "2018-02-01", "2050-01-01") +# +# Count number of commits per user and per versions (using date for version detection) +# + +Releases=("16.0" "develop") +Dates=("2022-01-01" "2022-08-31" "2050-01-01") let "counter = 1" for i in "${Releases[@]}" diff --git a/dev/tools/github_lines_perusers.sh b/dev/tools/github_lines_perusers.sh new file mode 100755 index 00000000000..9a3fad09d62 --- /dev/null +++ b/dev/tools/github_lines_perusers.sh @@ -0,0 +1,16 @@ +#/bin/bash +# +# Count number of lines modified per user for a given branch +# + +if [ "x$2" = "x" ]; then + echo "Usage: $0 tagnamestart|START tagnameend|HEAD" + exit +fi + + +echo "git log $1..$2 --shortstat | grep ... | perl ... > /tmp/github_lines_perusers.tmp" +git log $1..$2 --shortstat | grep -e 'Author:' -e 'Date:' -e ' changed' -e ' insertion' -e ' deletion' | perl -n -e '/^(.*)$/; $line = $1; if ($line =~ /(changed|insertion|deletion)/) { $line =~ s/[^0-9\s]//g; my @arr=split /\s+/, $line; $tot=0; for (1..@arr) { $tot += $arr[$_]; }; print $tot."\n"; } else { print $line."\n"; };' > /tmp/github_lines_perusers.tmp + +cat /tmp/github_lines_perusers.tmp | awk 'BEGIN { FS="\n"; print "user and nb of lines"; lastuser=""; } { if ($1 ~ /Author:/) { lastuser=$1 }; if ($1 ~ /^[0-9]+$/) { aaa[lastuser]+=$1; } } END { for (var in aaa) print var," ",aaa[var]; } ' + diff --git a/dev/tools/optimize_images.sh b/dev/tools/optimize_images.sh index dd538c5e1aa..bfbe461b9d2 100755 --- a/dev/tools/optimize_images.sh +++ b/dev/tools/optimize_images.sh @@ -39,13 +39,14 @@ optimize_image() max_input_size=$(expr $max_input_size + $input_file_size) if [ "${1##*.}" = "png" ]; then - #optipng -o1 -clobber -quiet $1 -out $2.firstpass - optipng -o1 -quiet $1 -out $2.firstpass - pngcrush -q -rem alla -reduce $2.firstpass $2 >/dev/null - rm -fr $2.firstpass + #optipng -o1 -clobber -quiet "$1" -out "$2.firstpass" + echo optipng -o1 -quiet "$1" -out "$2.firstpass" + optipng -o1 -quiet "$1" -out "$2.firstpass" + pngcrush -q -rem alla -reduce "$2.firstpass" "$2" >/dev/null + rm -fr "$2.firstpass" fi if [ "${1##*.}" = "jpg" -o "${1##*.}" = "jpeg" ]; then - jpegtran -copy none -progressive $1 > $2 + jpegtran -copy none -progressive "$1" > $2 fi output_file_size=$(stat -c%s "$2") @@ -120,9 +121,11 @@ main() # Search of all jpg/jpeg/png in $INPUT # We remove images from $OUTPUT if $OUTPUT is a subdirectory of $INPUT - echo "Scan $INPUT to find images" - IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v $OUTPUT) - + echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v '/documents/' | grep -v $OUTPUT" + #echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/'" + IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v '/documents/' | grep -v $OUTPUT) + #IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/') + if [ "$QUIET" == "0" ]; then echo --- Optimizing $INPUT --- echo @@ -135,11 +138,11 @@ main() printf '%*.*s' 0 $((linelength - ${#filename} - ${#sDone} )) "$pad" fi - optimize_image $CURRENT_IMAGE $OUTPUT/$filename + optimize_image "$CURRENT_IMAGE" "$OUTPUT/$filename" # Replace file if [[ "$INPLACE" == "1" ]]; then - mv $OUTPUT/$filename $CURRENT_IMAGE + mv "$OUTPUT/$filename" "$CURRENT_IMAGE" fi if [ "$QUIET" == "0" ]; then diff --git a/dev/tools/test/namespacemig/main.inc.php b/dev/tools/test/namespacemig/main.inc.php index d46d8e38c1c..e013e6af1da 100644 --- a/dev/tools/test/namespacemig/main.inc.php +++ b/dev/tools/test/namespacemig/main.inc.php @@ -1,5 +1,4 @@ $pages) { // Loop on each line keword was found into file. $listoffilesforthisentry=array(); foreach ($lines as $line => $translatedvalue) { - if (! empty($listoffilesforthisentry[$file])) { + if (!empty($listoffilesforthisentry[$file])) { $duplicateinsamefile=1; } $listoffilesforthisentry[$file]=1; @@ -300,7 +300,7 @@ if ($web) { // STEP 2 - Search key not used -if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) { +if ((!empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) { print "***** Strings in en_US that are never used:\n"; $unused=array(); diff --git a/dev/translation/strip_language_file.php b/dev/translation/strip_language_file.php index f0a0397cd6e..b2427c9f57a 100755 --- a/dev/translation/strip_language_file.php +++ b/dev/translation/strip_language_file.php @@ -303,8 +303,8 @@ foreach ($filesToProcess as $fileToProcess) { // String exists in both files and value into alternative language differs from main language but also from english files // so we keep it. - if ((! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key] - && ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key]) + if ((!empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key] + && !empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key]) || in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key) ) { //print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n"; diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 48d8ab23d96..91b7673ab81 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -23,6 +23,7 @@ * \brief List accounting account */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; @@ -30,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; // Load translation files required by the page -$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries")); +$langs->loadLangs(array('accountancy', 'admin', 'bills', 'compta', 'salaries')); $mesg = ''; $action = GETPOST('action', 'aZ09'); @@ -46,20 +47,21 @@ $search_label = GETPOST('search_label', 'alpha'); $search_labelshort = GETPOST('search_labelshort', 'alpha'); $search_accountparent = GETPOST('search_accountparent', 'alpha'); $search_pcgtype = GETPOST('search_pcgtype', 'alpha'); +$search_import_key = GETPOST('search_import_key', 'alpha'); $toselect = GETPOST('toselect', 'array'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $confirm = GETPOST('confirm', 'alpha'); $chartofaccounts = GETPOST('chartofaccounts', 'int'); -$permissiontoadd = !empty($user->rights->accounting->chartofaccount); -$permissiontodelete = !empty($user->rights->accounting->chartofaccount); +$permissiontoadd = $user->hasRight('accounting', 'chartofaccount'); +$permissiontodelete = $user->hasRight('accounting', 'chartofaccount'); // Security check if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -82,21 +84,27 @@ if (!$sortorder) { } $arrayfields = array( - 'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1), - 'aa.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1), - 'aa.labelshort'=>array('label'=>$langs->trans("LabelToShow"), 'checked'=>1), - 'aa.account_parent'=>array('label'=>$langs->trans("Accountparent"), 'checked'=>1), - 'aa.pcg_type'=>array('label'=>$langs->trans("Pcgtype"), 'checked'=>1, 'help'=>'PcgtypeDesc'), - 'aa.reconcilable'=>array('label'=>$langs->trans("Reconcilable"), 'checked'=>1), - 'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1) + 'aa.account_number'=>array('label'=>"AccountNumber", 'checked'=>1), + 'aa.label'=>array('label'=>"Label", 'checked'=>1), + 'aa.labelshort'=>array('label'=>"LabelToShow", 'checked'=>1), + 'aa.account_parent'=>array('label'=>"Accountparent", 'checked'=>1), + 'aa.pcg_type'=>array('label'=>"Pcgtype", 'checked'=>1, 'help'=>'PcgtypeDesc'), + 'categories'=>array('label'=>"AccountingCategories", 'checked'=>-1, 'help'=>'AccountingCategoriesDesc'), + 'aa.reconcilable'=>array('label'=>"Reconcilable", 'checked'=>1), + 'aa.active'=>array('label'=>"Activated", 'checked'=>1), + 'aa.import_key'=>array('label'=>"ImportId", 'checked'=>-1) ); if ($conf->global->MAIN_FEATURES_LEVEL < 2) { + unset($arrayfields['categories']); unset($arrayfields['aa.reconcilable']); } $accounting = new AccountingAccount($db); +// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array +$hookmanager->initHooks(array('accountancyadminaccount')); + /* * Actions @@ -109,8 +117,8 @@ if (!GETPOST('confirmmassaction', 'alpha')) { $massaction = ''; } -$parameters = array(); -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been monowraponalldified by some hooks +$parameters = array('chartofaccounts' => $chartofaccounts, 'permissiontoadd' => $permissiontoadd, 'permissiontodelete' => $permissiontodelete); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $accounting, $action); // Note that $action and $object may have been monowraponalldified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } @@ -222,15 +230,12 @@ if ($action == 'delete') { $pcgver = $conf->global->CHARTOFACCOUNTS; -$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.account_parent , aa.label, aa.labelshort, aa.reconcilable, aa.active, "; +$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.account_parent, aa.label, aa.labelshort, aa.fk_accounting_category,"; +$sql .= " aa.reconcilable, aa.active, aa.import_key,"; $sql .= " a2.rowid as rowid2, a2.label as label2, a2.account_number as account_number2"; $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; -$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".$conf->entity; -if ($db->type == 'pgsql') { - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity; -} else { - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity; -} +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".((int) $conf->entity); +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".((int) $conf->entity); $sql .= " WHERE asy.rowid = ".((int) $pcgver); //print $sql; if (strlen(trim($search_account))) { @@ -294,7 +299,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { } // List of mass actions available -if ($user->rights->accounting->chartofaccount) { +if ($user->hasRight('accounting', 'chartofaccount')) { $arrayofmassactions['predelete'] = ''.$langs->trans("Delete"); } if (in_array($massaction, array('presend', 'predelete', 'closed'))) { @@ -333,6 +338,9 @@ if ($resql) { if ($search_pcgtype) { $param .= '&search_pcgtype='.urlencode($search_pcgtype); } + if ($optioncss != '') { + $param .= '&search_import_key='.urlencode($search_import_key); + } if ($optioncss != '') { $param .= '&optioncss='.urlencode($optioncss); } @@ -350,6 +358,8 @@ if ($resql) { '; } + $newcardbutton = ''; + print '
'; if ($optioncss != '') { print ''; @@ -393,9 +403,14 @@ if ($resql) { } print ""; print ajax_combobox("chartofaccounts"); - print ''; + print ''; print '
'; + + $parameters = array('chartofaccounts' => $chartofaccounts, 'permissiontoadd' => $permissiontoadd, 'permissiontodelete' => $permissiontodelete); + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $accounting, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print '
'; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; @@ -425,11 +440,20 @@ if ($resql) { } if (!empty($arrayfields['aa.account_parent']['checked'])) { print ''; - print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2); + print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2, array(), 0, 0, 'maxwidth150'); print ''; } + // Predefined group if (!empty($arrayfields['aa.pcg_type']['checked'])) { - print ''; + print ''; + } + // Custom groups + if (!empty($arrayfields['categories']['checked'])) { + print ''; + } + // Import key + if (!empty($arrayfields['aa.import_key']['checked'])) { + print ''; } if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) { @@ -460,6 +484,12 @@ if ($resql) { if (!empty($arrayfields['aa.pcg_type']['checked'])) { print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type,aa.account_number', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help'], 1); } + if (!empty($arrayfields['categories']['checked'])) { + print_liste_field_titre($arrayfields['categories']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '', $arrayfields['categories']['help'], 1); + } + if (!empty($arrayfields['aa.import_key']['checked'])) { + print_liste_field_titre($arrayfields['aa.import_key']['label'], $_SERVER["PHP_SELF"], 'aa.import_key', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.import_key']['help'], 1); + } if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) { print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder); @@ -494,7 +524,7 @@ if ($resql) { // Account label if (!empty($arrayfields['aa.label']['checked'])) { print ""; - print $obj->label; + print dol_escape_htmltag($obj->label); print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -504,7 +534,7 @@ if ($resql) { // Account label to show (label short) if (!empty($arrayfields['aa.labelshort']['checked'])) { print ""; - print $obj->labelshort; + print dol_escape_htmltag($obj->labelshort); print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -538,10 +568,30 @@ if ($resql) { } } - // Chart of accounts type + // Predefined group (deprecated) if (!empty($arrayfields['aa.pcg_type']['checked'])) { print ""; - print $obj->pcg_type; + print dol_escape_htmltag($obj->pcg_type); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Custom accounts + if (!empty($arrayfields['categories']['checked'])) { + print ""; + // TODO Get all custom groups labels the account is in + print dol_escape_htmltag($obj->fk_accounting_category); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Import id + if (!empty($arrayfields['aa.import_key']['checked'])) { + print ""; + print dol_escape_htmltag($obj->import_key); print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -588,7 +638,7 @@ if ($resql) { // Action print ''; - if ($user->rights->accounting->chartofaccount) { + if ($user->hasRight('accounting', 'chartofaccount')) { print ''; print img_edit(); print ''; diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index fd0ff2e72da..c5b8fd20045 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -32,6 +32,7 @@ * \brief Page to administer model of chart of accounts */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -39,12 +40,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("errors", "admin", "companies", "resource", "holiday", "compta", "accountancy", "hrm")); +$langs->loadLangs(array('accountancy', 'admin', 'companies', 'compta', 'errors', 'holiday', 'hrm', 'resource')); $action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; $confirm = GETPOST('confirm', 'alpha'); @@ -78,7 +79,7 @@ $search_country_id = GETPOST('search_country_id', 'int'); if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -126,7 +127,7 @@ $tabrowid[31] = ""; // Condition to show dictionary in setup page $tabcond = array(); -$tabcond[31] = !empty($conf->accounting->enabled); +$tabcond[31] = isModEnabled('accounting'); // List of help for fields $tabhelp = array(); @@ -639,7 +640,8 @@ if ($id) { foreach ($fieldlist as $field => $value) { $showfield = 1; $class = "left"; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($value == 'type_template') { $valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow; } @@ -674,7 +676,7 @@ if ($id) { // Can an entry be erased or disabled ? $iserasable = 1; $canbedisabled = 1; $canbemodified = 1; // true by default - $url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : ''); + $url = $_SERVER["PHP_SELF"].'?token='.newToken().($page ? '&page='.$page : '').'&sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : ''); if ($param) { $url .= '&'.$param; } diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index f2137d84af9..43d1852c720 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -23,6 +23,7 @@ * \brief Card of accounting account */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; @@ -32,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; $error = 0; // Load translation files required by the page -$langs->loadLangs(array("bills", "accountancy", "compta")); +$langs->loadLangs(array('accountancy', 'bills', 'compta')); $action = GETPOST('action', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -48,7 +49,7 @@ $label = GETPOST('label', 'alpha'); if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -66,7 +67,7 @@ if (GETPOST('cancel', 'alpha')) { exit; } -if ($action == 'add' && $user->rights->accounting->chartofaccount) { +if ($action == 'add' && $user->hasRight('accounting', 'chartofaccount')) { if (!$cancel) { if (!$account_number) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors'); @@ -84,7 +85,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) { // Clean code // To manage zero or not at the end of the accounting account - if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1) { + if (!empty($conf->global->ACCOUNTING_MANAGE_ZERO)) { $account_number = $account_number; } else { $account_number = clean_account($account_number); @@ -127,7 +128,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) { } } } -} elseif ($action == 'edit' && $user->rights->accounting->chartofaccount) { +} elseif ($action == 'edit' && $user->hasRight('accounting', 'chartofaccount')) { if (!$cancel) { if (!$account_number) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors'); @@ -147,7 +148,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) { // Clean code // To manage zero or not at the end of the accounting account - if (isset($conf->global->ACCOUNTING_MANAGE_ZERO) && $conf->global->ACCOUNTING_MANAGE_ZERO == 1) { + if (!empty($conf->global->ACCOUNTING_MANAGE_ZERO)) { $account_number = $account_number; } else { $account_number = clean_account($account_number); @@ -168,10 +169,13 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) { $object->labelshort = GETPOST('labelshort', 'alpha'); $result = $object->update($user); + if ($result > 0) { $urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id); header("Location: " . $urltogo); exit(); + } elseif ($result == -2) { + setEventMessages($langs->trans("ErrorAccountNumberAlreadyExists", $object->account_number), null, 'errors'); } else { setEventMessages($object->error, null, 'errors'); } @@ -181,7 +185,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) { header("Location: ".$urltogo); exit(); } -} elseif ($action == 'delete' && $user->rights->accounting->chartofaccount) { +} elseif ($action == 'delete' && $user->hasRight('accounting', 'chartofaccount')) { $result = $object->fetch($id); if (!empty($object->id)) { @@ -278,7 +282,7 @@ if ($action == 'create') { print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc")); print ''; print ''; - $formaccounting->select_accounting_category($object->account_category, 'account_category', 1, 0, 1); + print $formaccounting->select_accounting_category($object->account_category, 'account_category', 1, 0, 1); print ''; print ''; @@ -325,7 +329,8 @@ if ($action == 'create') { // Account parent print ''.$langs->trans("Accountparent").''; print ''; - print $formaccounting->select_account($object->account_parent, 'account_parent', 1); + // Note: We accept disabled account as parent account so we can build a hierarchy and use only childs + print $formaccounting->select_account($object->account_parent, 'account_parent', 1, array(), 0, 0, 'minwidth100 maxwidth300 maxwidthonsmartphone', 1, ''); print ''; // Chart of accounts type @@ -354,7 +359,7 @@ if ($action == 'create') { print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc")); print ''; print ''; - $formaccounting->select_accounting_category($object->account_category, 'account_category', 1); + print $formaccounting->select_accounting_category($object->account_category, 'account_category', 1); print ''; print ''; @@ -416,17 +421,15 @@ if ($action == 'create') { */ print '
'; - if (!empty($user->rights->accounting->chartofaccount)) { + if ($user->hasRight('accounting', 'chartofaccount')) { print 'id.'">'.$langs->trans('Modify').''; } else { print ''.$langs->trans('Modify').''; } - if (!empty($user->rights->accounting->chartofaccount)) { - print 'id.'">'.$langs->trans('Delete').''; - } else { - print ''.$langs->trans('Delete').''; - } + // Delete + $permissiontodelete = $user->hasRight('accounting', 'chartofaccount'); + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); print '
'; } diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index 39aa21f2d63..7b660419daf 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -1,6 +1,7 @@ - * Copyright (C) 2017 Alexandre Spangaro +/* Copyright (C) 2016 Jamal Elbaz + * Copyright (C) 2017-2022 Alexandre Spangaro + * Copyright (C) 2022 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +23,7 @@ * \brief Page to assign mass categories to accounts */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancycategory.class.php'; @@ -30,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; $error = 0; // Load translation files required by the page -$langs->loadLangs(array("bills", "accountancy")); +$langs->loadLangs(array("bills", "accountancy", "compta")); $id = GETPOST('id', 'int'); $cancel = GETPOST('cancel', 'alpha'); @@ -43,8 +45,28 @@ if ($cat_id == 0) { $cat_id = null; } +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters + $page = 0; +} +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + +if (empty($sortfield)) { + $sortfield = 'account_number'; +} +if (empty($sortorder)) { + $sortorder = 'ASC'; +} + // Security check -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -109,52 +131,49 @@ print ''; // Select the category print ''; print ''; +print '
'.$langs->trans("AccountingCategory").''; -$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1); -print ''; +print $formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 0); +print ''; print '
'; + +print dol_get_fiche_end(); + + // Select the accounts if (!empty($cat_id)) { $return = $accountingcategory->getAccountsWithNoCategory($cat_id); if ($return < 0) { setEventMessages(null, $accountingcategory->errors, 'errors'); } - print ''.$langs->trans("AddAccountFromBookKeepingWithNoCategories").''; - print ''; + print '
'; $arraykeyvalue = array(); foreach ($accountingcategory->lines_cptbk as $key => $val) { - $arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte).' ('.$val->label_compte.($val->doc_ref ? ' '.$val->doc_ref : '').')'; + $doc_ref = !empty($val->doc_ref) ? $val->doc_ref : ''; + $arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte) . ' - ' . $val->label_compte . ($doc_ref ? ' '.$doc_ref : ''); } if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) { - print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, null, null, "90%"); - print '
'; - /*print '
'; - print ajax_combobox('cpt_bk'); - */ - print ' '; + print img_picto($langs->trans("AccountingAccount"), 'accounting_account', 'class="pictofixedwith"'); + print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, '', 0, "80%", '', '', $langs->transnoentitiesnoconv("AddAccountFromBookKeepingWithNoCategories")); + print ' '; } - print ''; } -print ''; - -print dol_get_fiche_end(); - print ''; -if ($action == 'display' || $action == 'delete') { - print "\n"; +if ((empty($action) || $action == 'display' || $action == 'delete') && $cat_id > 0) { + $param = 'account_category='.((int) $cat_id); + + print '
'; + print '
'."\n"; print ''; - print '"; - print '"; - print "\n"; + print getTitleFieldOfList('AccountAccounting', 0, $_SERVER['PHP_SELF'], 'account_number', '', $param, '', $sortfield, $sortorder, '')."\n"; + print getTitleFieldOfList('Label', 0, $_SERVER['PHP_SELF'], 'label', '', $param, '', $sortfield, $sortorder, '')."\n"; + print getTitleFieldOfList('', 0, $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, '')."\n"; + print ''."\n"; if (!empty($cat_id)) { $return = $accountingcategory->display($cat_id); // This load ->lines_display @@ -163,6 +182,8 @@ if ($action == 'display' || $action == 'delete') { } if (is_array($accountingcategory->lines_display) && count($accountingcategory->lines_display) > 0) { + $accountingcategory->lines_display = dol_sort_array($accountingcategory->lines_display, $sortfield, $sortorder, -1, 0, 1); + foreach ($accountingcategory->lines_display as $cpt) { print ''; print ''; @@ -175,6 +196,8 @@ if ($action == 'display' || $action == 'delete') { print ""; print "\n"; } + } else { + print ''; } } diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index c0439445261..0fd7b9012eb 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -22,6 +22,7 @@ * \brief Page to administer data tables */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -42,7 +43,7 @@ $rowid = GETPOST('rowid', 'alpha'); $code = GETPOST('code', 'alpha'); // Security access -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -111,7 +112,7 @@ $tabrowid[32] = ""; // Condition to show dictionary in setup page $tabcond = array(); -$tabcond[32] = !empty($conf->accounting->enabled); +$tabcond[32] = isModEnabled('accounting'); // List of help for fields $tabhelp = array(); @@ -189,7 +190,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) { setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors'); } } - if (!is_numeric(GETPOST('position', 'alpha'))) { + if (GETPOST('position') && !is_numeric(GETPOST('position', 'alpha'))) { $langs->loadLangs(array("errors")); $ok = 0; setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors'); @@ -443,15 +444,37 @@ if ($search_country_id > 0) { if ($sortfield == 'country') { $sortfield = 'country_code'; } +if (empty($sortfield)) { + $sortfield = 'position'; +} + $sql .= $db->order($sortfield, $sortorder); $sql .= $db->plimit($listlimit + 1, $offset); //print $sql; $fieldlist = explode(',', $tabfield[$id]); +$param = '&id='.$id; +if ($search_country_id > 0) { + $param .= '&search_country_id='.urlencode($search_country_id); +} +$paramwithsearch = $param; +if ($sortorder) { + $paramwithsearch .= '&sortorder='.urlencode($sortorder); +} +if ($sortfield) { + $paramwithsearch .= '&sortfield='.urlencode($sortfield); +} +if (GETPOST('from', 'alpha')) { + $paramwithsearch .= '&from='.urlencode(GETPOST('from', 'alpha')); +} + print ''; print ''; print ''; +print ''; +print ''; + print '
'; print '
'.$langs->trans("AccountAccounting")."'.$langs->trans("Label")."
'.length_accountg($cpt->account_number).'
'.$langs->trans("NoRecordFound").'
'; @@ -570,20 +593,6 @@ if ($resql) { $num = $db->num_rows($resql); $i = 0; - $param = '&id='.$id; - if ($search_country_id > 0) { - $param .= '&search_country_id='.urlencode($search_country_id); - } - $paramwithsearch = $param; - if ($sortorder) { - $paramwithsearch .= '&sortorder='.$sortorder; - } - if ($sortfield) { - $paramwithsearch .= '&sortfield='.$sortfield; - } - if (GETPOST('from', 'alpha')) { - $paramwithsearch .= '&from='.GETPOST('from', 'alpha'); - } // There is several pages if ($num > $listlimit) { print ''; $filterfound++; } else { @@ -724,11 +733,11 @@ if ($resql) { print ''; print ''; print ''; print ''; } else { @@ -742,7 +751,8 @@ if ($resql) { foreach ($fieldlist as $field => $value) { $showfield = 1; $class = "left"; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($value == 'category_type') { $valuetoshow = yn($valuetoshow); } elseif ($valuetoshow == 'all') { @@ -821,7 +831,7 @@ if ($resql) { } // Link to setup the group - print ''; } elseif ($fieldlist[$field] == 'country_id') { diff --git a/htdocs/accountancy/admin/closure.php b/htdocs/accountancy/admin/closure.php index 437ff1b7116..5ad23febb36 100644 --- a/htdocs/accountancy/admin/closure.php +++ b/htdocs/accountancy/admin/closure.php @@ -22,6 +22,7 @@ * \brief Setup page to configure accounting expert module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; @@ -31,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; $langs->loadLangs(array("compta", "admin", "accountancy")); // Security check -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 583b12368dc..2bd1037db39 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; $langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries", "loan")); // Security check -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -81,24 +81,26 @@ $list_account[] = '---Others---'; $list_account[] = 'ACCOUNTING_VAT_BUY_ACCOUNT'; $list_account[] = 'ACCOUNTING_VAT_SOLD_ACCOUNT'; $list_account[] = 'ACCOUNTING_VAT_PAY_ACCOUNT'; -if (!empty($conf->banque->enabled)) { +if (isModEnabled('banque')) { $list_account[] = 'ACCOUNTING_ACCOUNT_TRANSFER_CASH'; } -if (!empty($conf->don->enabled)) { +if (!empty($conf->global->INVOICE_USE_RETAINED_WARRANTY)) { + $list_account[] = 'ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY'; +} +if (isModEnabled('don')) { $list_account[] = 'DONATION_ACCOUNTINGACCOUNT'; } -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { $list_account[] = 'ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT'; } -if (!empty($conf->loan->enabled)) { +if (isModEnabled('loan')) { $list_account[] = 'LOAN_ACCOUNTING_ACCOUNT_CAPITAL'; $list_account[] = 'LOAN_ACCOUNTING_ACCOUNT_INTEREST'; $list_account[] = 'LOAN_ACCOUNTING_ACCOUNT_INSURANCE'; } $list_account[] = 'ACCOUNTING_ACCOUNT_SUSPENSE'; -if (!empty($conf->societe->enabled)) { +if (isModEnabled('societe')) { $list_account[] = '---Deposits---'; - $list_account[] = 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'; } /* @@ -106,7 +108,7 @@ if (!empty($conf->societe->enabled)) { */ if ($action == 'update') { $error = 0; - + // Process $list_account_main foreach ($list_account_main as $constname) { $constvalue = GETPOST($constname, 'alpha'); @@ -114,7 +116,7 @@ if ($action == 'update') { $error++; } } - + // Process $list_account foreach ($list_account as $constname) { $reg = array(); if (preg_match('/---(.*)---/', $constname, $reg)) { // This is a separator @@ -128,6 +130,19 @@ if ($action == 'update') { } } + $constname = 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'; + $constvalue = GETPOST($constname, 'int'); + if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { + $error++; + } + + $constname = 'ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT'; + $constvalue = GETPOST($constname, 'int'); + if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { + $error++; + } + + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -135,7 +150,7 @@ if ($action == 'update') { } } -if ($action == 'setdisableauxiliaryaccountoncustomerdeposit') { +if ($action == 'setACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT') { $setDisableAuxiliaryAccountOnCustomerDeposit = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT", $setDisableAuxiliaryAccountOnCustomerDeposit, 'yesno', 0, '', $conf->entity); if (!($res > 0)) { @@ -149,6 +164,20 @@ if ($action == 'setdisableauxiliaryaccountoncustomerdeposit') { } } +if ($action == 'setACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT') { + $setDisableAuxiliaryAccountOnSupplierDeposit = GETPOST('value', 'int'); + $res = dolibarr_set_const($db, "ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT", $setDisableAuxiliaryAccountOnSupplierDeposit, 'yesno', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'mesgs'); + } +} + /* * View @@ -195,7 +224,8 @@ foreach ($list_account_main as $key) { print ''; // Value print ''; print ''; } @@ -246,15 +276,55 @@ foreach ($list_account as $key) { } } -if (!empty($conf->societe->enabled)) { + +// Customer deposit account +print ''; +// Param +print ''; +// Value +print ''; +print ''; + +if (isModEnabled('societe') && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT') && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT') != '-1') { print ''; print ''; - if (!empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT)) { - print ''; } else { - print ''; + } + print ''; +} + +// Supplier deposit account +print ''; +// Param +print ''; +// Value +print ''; +print ''; + +if (isModEnabled('societe') && getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT') && getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT') != '-1') { + print ''; + print ''; + if (getDolGlobalInt('ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT')) { + print ''; + } else { + print ''; } @@ -264,7 +334,7 @@ if (!empty($conf->societe->enabled)) { print "
'; @@ -604,7 +613,7 @@ if ($resql) { if ($showfield) { if ($value == 'country') { print ''; - print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone'); + print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth150 maxwidthonsmartphone'); print ''; + print '
'; print ''; print ''; - print ''; - print '
'; - print ''; + print ''; + print ''; print '
'; + print ''; if (empty($obj->formula)) { print ''; print $langs->trans("ListOfAccounts"); @@ -875,7 +885,7 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co $formadmin = new FormAdmin($db); $formcompany = new FormCompany($db); - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -885,9 +895,11 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co $fieldname = 'country'; if ($context == 'add') { $fieldname = 'country_id'; - print $form->select_country(GETPOST('country_id', 'int'), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone'); + $preselectcountrycode = GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : $mysoc->country_code; + print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone'); } else { - print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : $mysoc->country_code)), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone'); + $preselectcountrycode = (empty($obj->country_code) ? (empty($obj->country) ? $mysoc->country_code : $obj->country) : $obj->country_code); + print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone'); } print ''; // Do not force class=right, or it align also the content of the select box - print $formaccounting->select_account($conf->global->$key, $key, 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accountsmain'); + $key_value = getDolGlobalString($key); + print $formaccounting->select_account($key_value, $key, 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accountsmain'); print '
'; +print img_picto('', 'bill', 'class="pictofixedwidth"') . $langs->trans('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'); +print ''; // Do not force class=right, or it align also the content of the select box +print $formaccounting->select_account(getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'), 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT', 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accounts'); +print '
' . img_picto('', 'bill', 'class="pictofixedwidth"') . $langs->trans("UseAuxiliaryAccountOnCustomerDeposit") . ''; + if (getDolGlobalInt('ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT')) { + print ''; print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning'); print ''; + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print '
'; +print img_picto('', 'supplier_invoice', 'class="pictofixedwidth"') . $langs->trans('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT'); +print ''; // Do not force class=right, or it align also the content of the select box +print $formaccounting->select_account(getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT'), 'ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT', 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accounts'); +print '
' . img_picto('', 'supplier_invoice', 'class="pictofixedwidth"') . $langs->trans("UseAuxiliaryAccountOnSupplierDeposit") . ''; + print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning'); + print ''; print img_picto($langs->trans("Disabled"), 'switch_off'); print '
\n"; print "\n"; -print '
'; +print '
'; print ''; diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 430c7b6abae..23a16340c0b 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -1,11 +1,11 @@ - * Copyright (C) 2013-2017 Alexandre Spangaro - * Copyright (C) 2014 Florian Henry - * Copyright (C) 2014 Marcos García - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2017-2018 Frédéric France +/* Copyright (C) 2013-2014 Olivier Geffroy + * Copyright (C) 2013-2022 Alexandre Spangaro + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2014 Marcos García + * Copyright (C) 2014 Juanjo Menent + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2017-2018 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php'; $langs->loadLangs(array("compta", "bills", "admin", "accountancy")); // Security access -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -211,7 +211,7 @@ if ($num) { // Value print ''; - print ''; + print ''; print ''; } } @@ -239,7 +239,7 @@ if (!$conf->use_javascript_ajax) { } else { print ''; $listmodelcsv = $accountancyexport->getType(); - print $form->selectarray("ACCOUNTING_EXPORT_MODELCSV", $listmodelcsv, $conf->global->ACCOUNTING_EXPORT_MODELCSV, 0, 0, 0, '', 0, 0, 0, '', '', 1); + print $form->selectarray("ACCOUNTING_EXPORT_MODELCSV", $listmodelcsv, getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV'), 0, 0, 0, '', 0, 0, 0, '', '', 1); print ''; } diff --git a/htdocs/accountancy/admin/fiscalyear.php b/htdocs/accountancy/admin/fiscalyear.php index 2eb77815b60..27226d388f6 100644 --- a/htdocs/accountancy/admin/fiscalyear.php +++ b/htdocs/accountancy/admin/fiscalyear.php @@ -21,6 +21,7 @@ * \brief Setup page to configure fiscal year */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php'; @@ -52,7 +53,7 @@ $langs->loadLangs(array("admin", "compta")); if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->fiscalyear->write)) { // If we can read accounting records, we should be able to see fiscal year. +if (!$user->hasRight('accounting', 'fiscalyear', 'write')) { // If we can read accounting records, we should be able to see fiscal year. accessforbidden(); } @@ -121,7 +122,7 @@ if ($result) { $i = 0; - $addbutton .= dolGetButtonTitle($langs->trans('NewFiscalYear'), '', 'fa fa-plus-circle', 'fiscalyear_card.php?action=create', '', $user->rights->accounting->fiscalyear->write); + $addbutton .= dolGetButtonTitle($langs->trans('NewFiscalYear'), '', 'fa fa-plus-circle', 'fiscalyear_card.php?action=create', '', $user->hasRight('accounting', 'fiscalyear', 'write')); $title = $langs->trans('AccountingPeriods'); diff --git a/htdocs/accountancy/admin/fiscalyear_card.php b/htdocs/accountancy/admin/fiscalyear_card.php index 2aa33f21645..38330a37e13 100644 --- a/htdocs/accountancy/admin/fiscalyear_card.php +++ b/htdocs/accountancy/admin/fiscalyear_card.php @@ -22,6 +22,7 @@ * \brief Page to show a fiscal year */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php'; @@ -34,7 +35,7 @@ $langs->loadLangs(array("admin", "compta")); if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->fiscalyear->write)) { +if (!$user->hasRight('accounting', 'fiscalyear', 'write')) { accessforbidden(); } @@ -299,12 +300,12 @@ if ($action == 'create') { /* * Action bar */ - if (!empty($user->rights->accounting->fiscalyear->write)) { + if ($user->hasRight('accounting', 'fiscalyear', 'write')) { print '
'; print ''.$langs->trans('Modify').''; - // print '' . $langs->trans('Delete') . ''; + //print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); print '
'; } diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php index 77ec988143a..bb265c89ecf 100644 --- a/htdocs/accountancy/admin/fiscalyear_info.php +++ b/htdocs/accountancy/admin/fiscalyear_info.php @@ -21,6 +21,7 @@ * \brief Page to show info of a fiscal year */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -33,7 +34,7 @@ $langs->loadLangs(array("admin", "compta")); if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->fiscalyear->write)) { +if (!$user->hasRight('accounting', 'fiscalyear', 'write')) { accessforbidden(); } diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 309dc094e82..3a7be3e073e 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -29,6 +29,7 @@ * \brief Setup page to configure accounting expert module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; @@ -38,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $langs->loadLangs(array("compta", "bills", "admin", "accountancy", "other")); // Security access -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -246,6 +247,34 @@ if ($action == 'setdisablebindingonexpensereports') { } } +if ($action == 'setenablelettering') { + $setenablelettering = GETPOST('value', 'int'); + $res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_LETTERING", $setenablelettering, 'yesno', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'mesgs'); + } +} + +if ($action == 'setenableautolettering') { + $setenableautolettering = GETPOST('value', 'int'); + $res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_AUTOLETTERING", $setenableautolettering, 'yesno', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'mesgs'); + } +} + /* * View @@ -265,6 +294,9 @@ if (!$user->admin) { if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { print '
' . $langs->trans("ConstantIsOn", "FACTURE_DEPOSITS_ARE_JUST_PAYMENTS") . '
'; } + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { + print '
' . $langs->trans("ConstantIsOn", "FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS") . '
'; + } if (!empty($conf->global->ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY)) { print '
' . $langs->trans("ConstantIsOn", "ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY") . '
'; } @@ -358,7 +390,7 @@ foreach ($list as $key) { print ''.$label.''; // Value print ''; - print ''; + print ''; print ''; print ''; @@ -409,12 +441,12 @@ foreach ($list_binding as $key) { // Value print ''; if ($key == 'ACCOUNTING_DATE_START_BINDING') { - print $form->selectDate(($conf->global->$key ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1); + print $form->selectDate((!empty($conf->global->$key) ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1); } elseif ($key == 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER') { $array = array(0=>$langs->trans("PreviousMonth"), 1=>$langs->trans("CurrentMonth"), 2=>$langs->trans("Fiscalyear")); - print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0)); + print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0), 0, 0, 0, '', 0, 0, 0, '', 'onrightofpage'); } else { - print ''; + print ''; } print ''; @@ -460,6 +492,43 @@ if (!empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) { } print ''; +print ''; +print '
'; + +// Lettering params +print ''; +print ''; +print ''; +print "\n"; + +print ''; +print ''; +if (!empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { + print ''; +} else { + print ''; +} +print ''; + +if (!empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { + print ''; + print ''; + if (!empty($conf->global->ACCOUNTING_ENABLE_AUTOLETTERING)) { + print ''; + } else { + print ''; + } + print ''; +} + print '
'.$langs->trans('Options').' '.$langs->trans('Lettering').'
'.$langs->trans("ACCOUNTING_ENABLE_LETTERING").''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print '
' . $langs->trans("ACCOUNTING_ENABLE_AUTOLETTERING") . ''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print '
'; print '
'; diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index de6b8374c2a..ba2d867ebd6 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2017-2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,6 +26,7 @@ if (!defined('CSRFCHECK_WITH_TOKEN')) { define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -45,7 +46,7 @@ $rowid = GETPOST('rowid', 'alpha'); $code = GETPOST('code', 'alpha'); // Security access -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -76,6 +77,8 @@ if (empty($sortorder)) { $error = 0; +$search_country_id = GETPOST('search_country_id', 'int'); + // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('admin')); @@ -121,7 +124,7 @@ $tabrowid[35] = ""; // Condition to show dictionary in setup page $tabcond = array(); -$tabcond[35] = !empty($conf->accounting->enabled); +$tabcond[35] = isModEnabled('accounting'); // List of help for fields $tabhelp = array(); @@ -584,7 +587,8 @@ if ($id) { foreach ($fieldlist as $field => $value) { $showfield = 1; $class = "left"; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($valuetoshow == 'all') { $valuetoshow = $langs->trans('All'); } elseif ($fieldlist[$field] == 'nature' && $tabname[$id] == MAIN_DB_PREFIX.'accounting_journal') { @@ -608,12 +612,6 @@ if ($id) { if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i', $obj->code))) { $iserasable = 0; $canbedisabled = 0; - } elseif ($obj->code == 'RECEP') { - $iserasable = 0; - $canbedisabled = 0; - } elseif ($obj->code == 'EF0') { - $iserasable = 0; - $canbedisabled = 0; } } diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index c8cb62cd7e0..018a0cfd5e8 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } @@ -42,10 +42,10 @@ if (!empty($conf->categorie->enabled)) { $langs->loadLangs(array("companies", "compta", "accountancy", "products")); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } -if (empty($user->rights->accounting->bind->write)) { +if (!$user->hasRight('accounting', 'bind', 'write')) { accessforbidden(); } @@ -522,7 +522,7 @@ if ($resql) { // Filter on categories $moreforfilter = ''; - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + if (isModEnabled('categorie') && $user->hasRight('categorie', 'lire')) { $moreforfilter .= '
'; $moreforfilter .= img_picto($langs->trans('Categories'), 'category', 'class="pictofixedwidth"'); $categoriesProductArr = $form->select_all_categories(Categorie::TYPE_PRODUCT, '', '', 64, 0, 1); @@ -533,7 +533,7 @@ if ($resql) { } //Show/hide child products. Hidden by default - if (!empty($conf->variants->enabled) && !empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) { + if (isModEnabled('variants') && !empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) { $moreforfilter .= '
'; $moreforfilter .= ''; $moreforfilter .= ' '; diff --git a/htdocs/accountancy/admin/subaccount.php b/htdocs/accountancy/admin/subaccount.php index cc0d4de9f31..4f2274269d8 100644 --- a/htdocs/accountancy/admin/subaccount.php +++ b/htdocs/accountancy/admin/subaccount.php @@ -23,6 +23,7 @@ * \brief List of accounting sub-account (auxiliary accounts) */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; @@ -47,7 +48,7 @@ $search_type = GETPOST('search_type', 'int'); if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -407,7 +408,7 @@ if ($resql) { $s .= ''.$langs->trans("Supplier").''; } elseif ($obj->type == 3) { // User - $s .= ''.$langs->trans("Employee").''; + $s .= ''.$langs->trans("Employee").''; } print $s; print ''; diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 7a65fa0ffaa..01d89f1168d 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -1,7 +1,7 @@ * Copyright (C) 2016 Florian Henry - * Copyright (C) 2016-2021 Alexandre Spangaro + * Copyright (C) 2016-2022 Alexandre Spangaro * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -24,6 +24,7 @@ * \brief Balance of book keeping */ +// Load Dolibarr environment require '../../main.inc.php'; // Class @@ -40,6 +41,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->loadLangs(array("accountancy", "compta")); $action = GETPOST('action', 'aZ09'); +$optioncss = GETPOST('optioncss', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ09'); // Load variable for pagination @@ -142,13 +144,13 @@ if (!empty($search_ledger_code)) { } } -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { accessforbidden(); } -if (empty($user->rights->accounting->mouvements->lire)) { +if (!$user->hasRight('accounting', 'mouvements', 'lire')) { accessforbidden(); } @@ -158,7 +160,8 @@ if (empty($user->rights->accounting->mouvements->lire)) { * Action */ -$parameters = array('socid'=>$socid); +$parameters = array(); +$arrayfields = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -236,10 +239,17 @@ if ($action != 'export_csv') { print ''; print ''; + $parameters = array(); $reshook = $hookmanager->executeHooks('addMoreActionsButtonsList', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + } + + $button = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint; + if (empty($reshook)) { - $button = 'global->ACCOUNTING_EXPORT_FORMAT.')" />'; + $button .= 'global->ACCOUNTING_EXPORT_FORMAT.')" />'; print ''; } - print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy', 0, '', '', $showtutorial); + if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_SITUATION == 1) { + print info_admin($langs->trans("SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices")); + print "
"; + } + print '
'; // hideobject is to start hidden print "
\n"; print ''.$langs->trans("AccountancyAreaDescIntro")."
\n"; - if (!empty($user->rights->accounting->chartofaccount)) { - print "
\n"; print "
\n"; - + if ($user->hasRight('accounting', 'chartofaccount')) { print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n"; print '
'; print "
\n"; @@ -165,7 +169,7 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S print $s; print "
\n"; - if (!empty($conf->tax->enabled)) { + if (isModEnabled('tax')) { $textlink = ''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuTaxAccounts").''; $step++; $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, '{s}'); @@ -173,7 +177,7 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S print $s; print "
\n"; } - if (!empty($conf->expensereport->enabled)) { // TODO Move this in the default account page because this is only one accounting account per purpose, not several. + if (isModEnabled('expensereport')) { // TODO Move this in the default account page because this is only one accounting account per purpose, not several. $step++; $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '{s}'); $s = str_replace('{s}', ''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'', $s); @@ -212,7 +216,7 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S print $s; print "
\n"; - if (!empty($conf->expensereport->enabled) || !empty($conf->deplacement->enabled)) { + if (isModEnabled('expensereport') || isModEnabled('deplacement')) { $step++; $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64 + $step), $langs->transnoentitiesnoconv("ExpenseReports"), '{s}')."\n"; $s = str_replace('{s}', ''.$langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'', $s); diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 781218be04a..699002395ab 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -4,7 +4,7 @@ * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin * Copyright (C) 2013 Christophe Battarel - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Open-DSI * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2017-2021 Frédéric France @@ -83,7 +83,7 @@ $now = dol_now(); $action = GETPOST('action', 'aZ09'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -305,8 +305,16 @@ if ($result) { // get_url may return -1 which is not traversable if (is_array($links) && count($links) > 0) { + $is_sc = false; + foreach ($links as $v) { + if ($v['type'] == 'sc') { + $is_sc = true; + break; + } + } // Now loop on each link of record in bank (code similar to bankentries_list.php) foreach ($links as $key => $val) { + if ($links[$key]['type'] == 'user' && !$is_sc) continue; if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'member', 'payment_loan', 'payment_salary', 'payment_various'))) { // So we excluded 'company' and 'user' here. We want only payment lines @@ -785,7 +793,7 @@ if (!$error && $action == 'writebookkeeping') { setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } else { - if ($lettering && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) { + if ($lettering && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && getDolGlobalInt('ACCOUNTING_ENABLE_AUTOLETTERING')) { require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; $lettering_static = new Lettering($db); $nb_lettering = $lettering_static->bookkeepingLetteringAll(array($bookkeeping->id)); @@ -904,8 +912,8 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! print '"'.$langs->transnoentitiesnoconv("LedgerAccount").'"'.$sep; print '"'.$langs->transnoentitiesnoconv("SubledgerAccount").'"'.$sep; print '"'.$langs->transnoentitiesnoconv("Label").'"'.$sep; - print '"'.$langs->transnoentitiesnoconv("Debit").'"'.$sep; - print '"'.$langs->transnoentitiesnoconv("Credit").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("AccountingDebit").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("AccountingCredit").'"'.$sep; print '"'.$langs->transnoentitiesnoconv("Journal").'"'.$sep; print '"'.$langs->transnoentitiesnoconv("Note").'"'.$sep; print "\n"; @@ -1024,9 +1032,11 @@ if (empty($action) || $action == 'view') { $salarystatic = new Salary($db); $variousstatic = new PaymentVarious($db); - llxHeader('', $langs->trans("FinanceJournal")); + $title = $langs->trans("GenerationOfAccountingEntries").' - '.$accountingjournalstatic->getNomUrl(0, 2, 1, '', 1); - $nom = $langs->trans("FinanceJournal").' | '.$accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); + llxHeader('', dol_string_nohtmltag($title)); + + $nom = $title; $builddate = dol_now(); //$description = $langs->trans("DescFinanceJournal") . '
'; $description = $langs->trans("DescJournalOnlyBindedVisible").'
'; @@ -1044,6 +1054,7 @@ if (empty($action) || $action == 'view') { journalHead($nom, '', $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); + $desc = ''; // Test that setup is complete (we are in accounting, so test on entity is always on $conf->entity only, no sharing allowed) $sql = "SELECT COUNT(rowid) as nb FROM ".MAIN_DB_PREFIX."bank_account WHERE entity = ".((int) $conf->entity)." AND fk_accountancy_journal IS NULL AND clos=0"; @@ -1066,7 +1077,7 @@ if (empty($action) || $action == 'view') { if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' || ($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1' || empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') { - print '
'.img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone"); + print ($desc ? '' : '
').'
'.img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone"); $desc = ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '{link}'); $desc = str_replace('{link}', ''.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'', $desc); print $desc; @@ -1117,16 +1128,16 @@ if (empty($action) || $action == 'view') { $i = 0; print '
'; - print ""; - print ""; + print '
'; + print ''; print ""; print ""; print ""; print ""; print ""; print '"; - print '"; - print '"; + print '"; + print '"; print "\n"; $r = ''; @@ -1151,19 +1162,24 @@ if (empty($action) || $action == 'view') { //var_dump($tabpay[$key]); print ''; print ''; + + // Date print ""; - print ""; + + // Ref + print ""; + // Ledger account - print ""; + // Subledger account - print ""; - print ""; + print '"; print '"; print '"; @@ -1197,29 +1216,33 @@ if (empty($action) || $action == 'view') { print ''; print ''; + + // Date print ""; - print ""; + + // Ref + print ""; + // Ledger account - print ""; // Subledger account - print ""; print ""; @@ -1390,9 +1415,19 @@ function getSourceDocRef($val, $typerecord) $sqlmid = ''; if ($typerecord == 'payment') { - $sqlmid = 'SELECT payfac.fk_facture as id, f.ref as ref'; - $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiement_facture as payfac, ".MAIN_DB_PREFIX."facture as f"; - $sqlmid .= " WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=".((int) $val["paymentid"]); + if (getDolGlobalInt('FACTURE_DEPOSITS_ARE_JUST_PAYMENTS')) { + $sqlmid = "SELECT payfac.fk_facture as id, ".$db->ifsql('f1.rowid IS NULL', 'f.ref', 'f1.ref')." as ref"; + $sqlmid .= " FROM ".$db->prefix()."paiement_facture as payfac"; + $sqlmid .= " LEFT JOIN ".$db->prefix()."facture as f ON f.rowid = payfac.fk_facture"; + $sqlmid .= " LEFT JOIN ".$db->prefix()."societe_remise_except as sre ON sre.fk_facture_source = payfac.fk_facture"; + $sqlmid .= " LEFT JOIN ".$db->prefix()."facture as f1 ON f1.rowid = sre.fk_facture"; + $sqlmid .= " WHERE payfac.fk_paiement=".((int) $val['paymentid']); + } else { + $sqlmid = "SELECT payfac.fk_facture as id, f.ref as ref"; + $sqlmid .= " FROM ".$db->prefix()."paiement_facture as payfac"; + $sqlmid .= " INNER JOIN ".$db->prefix()."facture as f ON f.rowid = payfac.fk_facture"; + $sqlmid .= " WHERE payfac.fk_paiement=".((int) $val['paymentid']); + } $ref = $langs->transnoentitiesnoconv("Invoice"); } elseif ($typerecord == 'payment_supplier') { $sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref'; diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index c80586fa3d0..ffffc21a9f9 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -58,7 +58,7 @@ if ($in_bookkeeping == '') { $now = dol_now(); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -328,7 +328,7 @@ if ($action == 'writebookkeeping') { foreach ($arrayofvat[$key] as $k => $mt) { if ($mt) { - $accountingaccount->fetch($k, null, true); // TODO Use a cache for label + $accountingaccount->fetch(null, $k, true); // TODO Use a cache for label $account_label = $accountingaccount->label; // get compte id and label @@ -445,8 +445,8 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! print '"'.$langs->transnoentitiesnoconv("Piece").'"'.$sep; print '"'.$langs->transnoentitiesnoconv("AccountAccounting").'"'.$sep; print '"'.$langs->transnoentitiesnoconv("LabelOperation").'"'.$sep; - print '"'.$langs->transnoentitiesnoconv("Debit").'"'.$sep; - print '"'.$langs->transnoentitiesnoconv("Credit").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("AccountingDebit").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("AccountingCredit").'"'.$sep; print "\n"; foreach ($taber as $key => $val) { @@ -496,14 +496,16 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! } if (empty($action) || $action == 'view') { - llxHeader('', $langs->trans("ExpenseReportsJournal")); + $title = $langs->trans("GenerationOfAccountingEntries").' - '.$accountingjournalstatic->getNomUrl(0, 2, 1, '', 1); - $nom = $langs->trans("ExpenseReportsJournal").' | '.$accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); + llxHeader('', dol_string_nohtmltag($title)); + + $nom = $title; $nomlink = ''; $periodlink = ''; $exportlink = ''; $builddate = dol_now(); - $description .= $langs->trans("DescJournalOnlyBindedVisible").'
'; + $description = $langs->trans("DescJournalOnlyBindedVisible").'
'; $listofchoices = array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger")); $period = $form->selectDate($date_start ? $date_start : -1, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end ? $date_end : -1, 'date_end', 0, 0, 0, '', 1, 0); @@ -567,8 +569,8 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; - print '"; - print '"; + print '"; + print '"; print "\n"; $r = ''; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 7c0a8b90f7d..746383fef0b 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -61,7 +61,7 @@ $hookmanager->initHooks(array('purchasesjournal')); $parameters = array(); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -133,7 +133,7 @@ if (!empty($conf->global->MAIN_COMPANY_PERENTITY_SHARED)) { $sql .= " WHERE f.fk_statut > 0"; $sql .= " AND fd.fk_code_ventilation > 0"; $sql .= " AND f.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy -if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { +if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { $sql .= " AND f.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.",".FactureFournisseur::TYPE_SITUATION.")"; } else { $sql .= " AND f.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.",".FactureFournisseur::TYPE_DEPOSIT.",".FactureFournisseur::TYPE_SITUATION.")"; @@ -294,9 +294,7 @@ if ($action == 'writebookkeeping') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; - $companystatic->code_compta = $tabcompany[$key]['code_compta']; $companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur']; - $companystatic->code_client = $tabcompany[$key]['code_client']; $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->fournisseur = 1; @@ -378,10 +376,10 @@ if ($action == 'writebookkeeping') { setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } else { - if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) { + if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && getDolGlobalInt('ACCOUNTING_ENABLE_AUTOLETTERING')) { require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; $lettering_static = new Lettering($db); - $nb_lettering = $lettering_static->bookkeepingLettering(array($bookkeeping->id), 'supplier_invoice'); + $nb_lettering = $lettering_static->bookkeepingLettering(array($bookkeeping->id)); } } } @@ -405,8 +403,18 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; - $bookkeeping->subledger_account = ''; - $bookkeeping->subledger_label = ''; + if (!empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT)) { + if ($k == getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT')) { + $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + } else { + $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; + } + } else { + $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; + } $bookkeeping->numero_compte = $k; $bookkeeping->label_compte = $label_account; @@ -457,7 +465,7 @@ if ($action == 'writebookkeeping') { foreach ($arrayofvat[$key] as $k => $mt) { if ($mt) { - $accountingaccount->fetch($k, null, true); // TODO Use a cache for label + $accountingaccount->fetch(null, $k, true); // TODO Use a cache for label $label_account = $accountingaccount->label; $bookkeeping = new BookKeeping($db); @@ -626,9 +634,7 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! foreach ($tabfac as $key => $val) { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; - $companystatic->code_compta = $tabcompany[$key]['code_compta']; $companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur']; - $companystatic->code_client = $tabcompany[$key]['code_client']; $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->fournisseur = 1; @@ -750,15 +756,17 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! } if (empty($action) || $action == 'view') { - llxHeader('', $langs->trans("PurchasesJournal")); + $title = $langs->trans("GenerationOfAccountingEntries").' - '.$accountingjournalstatic->getNomUrl(0, 2, 1, '', 1); - $nom = $langs->trans("PurchasesJournal").' | '.$accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); + llxHeader('', dol_string_nohtmltag($title)); + + $nom = $title; $nomlink = ''; $periodlink = ''; $exportlink = ''; $builddate = dol_now(); - $description .= $langs->trans("DescJournalOnlyBindedVisible").'
'; - if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $description = $langs->trans("DescJournalOnlyBindedVisible").'
'; + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { $description .= $langs->trans("DepositsAreNotIncluded"); } else { $description .= $langs->trans("DepositsAreIncluded"); @@ -825,8 +833,8 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; - print '"; - print '"; + print '"; + print '"; print "\n"; $r = ''; @@ -837,9 +845,7 @@ if (empty($action) || $action == 'view') { foreach ($tabfac as $key => $val) { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; - $companystatic->code_compta = $tabcompany[$key]['code_compta']; $companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur']; - $companystatic->code_client = $tabcompany[$key]['code_client']; $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->fournisseur = 1; @@ -952,6 +958,13 @@ if (empty($action) || $action == 'view') { print ""; // Subledger account print "'; $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 426bc6d7795..666024833d0 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -4,7 +4,7 @@ * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin * Copyright (C) 2013 Christophe Battarel - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Alexandre Spangaro * Copyright (C) 2013-2016 Florian Henry * Copyright (C) 2013-2016 Olivier Geffroy * Copyright (C) 2014 Raphaël Doursenaud @@ -30,6 +30,7 @@ * \brief Page with sells journal */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -63,7 +64,7 @@ $hookmanager->initHooks(array('sellsjournal')); $parameters = array(); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -105,7 +106,7 @@ if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end)) $date_end = dol_get_last_day($pastmonthyear, $pastmonth, false); } -$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.ref_client, f.date_lim_reglement as dlr, f.close_code,"; +$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.ref_client, f.date_lim_reglement as dlr, f.close_code, f.retained_warranty,"; $sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,"; $sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur,"; if (!empty($conf->global->MAIN_COMPANY_PERENTITY_SHARED)) { @@ -167,6 +168,7 @@ if ($result) { $tabht = array(); $tabtva = array(); $def_tva = array(); + $tabwarranty = array(); $tabttc = array(); $tablocaltax1 = array(); $tablocaltax2 = array(); @@ -247,7 +249,13 @@ if ($result) { $tablocaltax2[$obj->rowid][$compta_localtax2] = 0; } - $tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc * $situation_ratio; + $total_ttc = $obj->total_ttc * $situation_ratio; + if (!empty($conf->global->INVOICE_USE_RETAINED_WARRANTY) && $obj->retained_warranty > 0) { + $retained_warranty = (double) price2num($total_ttc * $obj->retained_warranty / 100, 'MT'); + $tabwarranty[$obj->rowid][$compta_soc] += $retained_warranty; + $total_ttc -= $retained_warranty; + } + $tabttc[$obj->rowid][$compta_soc] += $total_ttc; $tabht[$obj->rowid][$compta_prod] += $obj->total_ht * $situation_ratio; if (empty($line->tva_npr)) { $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva * $situation_ratio; // We ignore line if VAT is a NPR @@ -299,6 +307,10 @@ if ($action == 'writebookkeeping') { $accountingaccountcustomer->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, true); + $accountingaccountcustomerwarranty = new AccountingAccount($db); + + $accountingaccountcustomerwarranty->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY, true); + foreach ($tabfac as $key => $val) { // Loop on each invoice $errorforline = 0; @@ -310,9 +322,7 @@ if ($action == 'writebookkeeping') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; $companystatic->code_compta = $tabcompany[$key]['code_compta']; - $companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur']; $companystatic->code_client = $tabcompany[$key]['code_client']; - $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->client = 3; $invoicestatic->id = $key; @@ -345,6 +355,55 @@ if ($action == 'writebookkeeping') { setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors'); } + // Warranty + if (!$errorforline) { + foreach ($tabwarranty[$key] as $k => $mt) { + $bookkeeping = new BookKeeping($db); + $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; + $bookkeeping->doc_ref = $val["ref"]; + $bookkeeping->date_creation = $now; + $bookkeeping->doc_type = 'customer_invoice'; + $bookkeeping->fk_doc = $key; + $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add + $bookkeeping->thirdparty_code = $companystatic->code_client; + + $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + + $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY; + $bookkeeping->label_compte = $accountingaccountcustomerwarranty->label; + + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref.' - '.$langs->trans("Retainedwarranty"); + $bookkeeping->montant = $mt; + $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; + $bookkeeping->debit = ($mt >= 0) ? $mt : 0; + $bookkeeping->credit = ($mt < 0) ? -$mt : 0; + $bookkeeping->code_journal = $journal; + $bookkeeping->journal_label = $langs->transnoentities($journal_label); + $bookkeeping->fk_user_author = $user->id; + $bookkeeping->entity = $conf->entity; + + $totaldebit += $bookkeeping->debit; + $totalcredit += $bookkeeping->credit; + + $result = $bookkeeping->create($user); + if ($result < 0) { + if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists + $error++; + $errorforline++; + $errorforinvoice[$key] = 'alreadyjournalized'; + //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); + } else { + $error++; + $errorforline++; + $errorforinvoice[$key] = 'other'; + setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); + } + } + } + } + // Thirdparty if (!$errorforline) { foreach ($tabttc[$key] as $k => $mt) { @@ -391,10 +450,10 @@ if ($action == 'writebookkeeping') { setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } else { - if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) { + if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && getDolGlobalInt('ACCOUNTING_ENABLE_AUTOLETTERING')) { require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; $lettering_static = new Lettering($db); - $nb_lettering = $lettering_static->bookkeepingLettering(array($bookkeeping->id), 'customer_invoice'); + $nb_lettering = $lettering_static->bookkeepingLettering(array($bookkeeping->id)); } } } @@ -479,7 +538,7 @@ if ($action == 'writebookkeeping') { foreach ($arrayofvat[$key] as $k => $mt) { if ($mt) { - $accountingaccount->fetch($k, null, true); // TODO Use a cache for label + $accountingaccount->fetch(null, $k, true); // TODO Use a cache for label $label_account = $accountingaccount->label; $bookkeeping = new BookKeeping($db); @@ -600,9 +659,7 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; $companystatic->code_compta = $tabcompany[$key]['code_compta']; - $companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur']; $companystatic->code_client = $tabcompany[$key]['code_client']; - $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->client = 3; $invoicestatic->id = $key; @@ -627,6 +684,25 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! continue; } + // Warranty + foreach ($tabwarranty[$key] as $k => $mt) { + //if ($mt) { + print '"'.$key.'"'.$sep; + print '"'.$date.'"'.$sep; + print '"'.$val["ref"].'"'.$sep; + print '"'.utf8_decode(dol_trunc($companystatic->name, 32)).'"'.$sep; + print '"'.length_accounta(html_entity_decode($k)).'"'.$sep; + print '"'.length_accountg($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY).'"'.$sep; + print '"'.length_accounta(html_entity_decode($k)).'"'.$sep; + print '"'.$langs->trans("Thirdparty").'"'.$sep; + print '"'.utf8_decode(dol_trunc($companystatic->name, 16)).' - '.$invoicestatic->ref.' - '.$langs->trans("Retainedwarranty").'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'.$sep; + print '"'.$journal.'"'; + print "\n"; + //} + } + // Third party foreach ($tabttc[$key] as $k => $mt) { //if ($mt) { @@ -702,9 +778,11 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! if (empty($action) || $action == 'view') { - llxHeader('', $langs->trans("SellsJournal")); + $title = $langs->trans("GenerationOfAccountingEntries").' - '.$accountingjournalstatic->getNomUrl(0, 2, 1, '', 1); - $nom = $langs->trans("SellsJournal").' | '.$accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); + llxHeader('', dol_string_nohtmltag($title)); + + $nom = $title; $nomlink = ''; $periodlink = ''; $exportlink = ''; @@ -777,8 +855,8 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; - print '"; - print '"; + print '"; + print '"; print "\n"; $r = ''; @@ -790,9 +868,7 @@ if (empty($action) || $action == 'view') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; $companystatic->code_compta = $tabcompany[$key]['code_compta']; - $companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur']; $companystatic->code_client = $tabcompany[$key]['code_client']; - $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->client = 3; $invoicestatic->id = $key; @@ -852,6 +928,36 @@ if (empty($action) || $action == 'view') { print ""; } + // Warranty + foreach ($tabwarranty[$key] as $k => $mt) { + print ''; + print ""; + print ""; + print ""; + // Account + print "'; + // Subledger account + print "'; + print ""; + print '"; + print '"; + print ""; + } + // Third party foreach ($tabttc[$key] as $k => $mt) { print ''; diff --git a/htdocs/accountancy/journal/variousjournal.php b/htdocs/accountancy/journal/variousjournal.php index 49b4fc2c98c..cf652a29345 100644 --- a/htdocs/accountancy/journal/variousjournal.php +++ b/htdocs/accountancy/journal/variousjournal.php @@ -21,6 +21,7 @@ * \brief Page of a journal */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; @@ -51,7 +52,7 @@ if ($result > 0) { } elseif ($result < 0) { dol_print_error('', $object->error, $object->errors); } elseif ($result == 0) { - accessforbidden($langs->trans('ErrorRecordNotFound')); + accessforbidden('ErrorRecordNotFound'); } $hookmanager->initHooks(array('globaljournal', $object->nature.'journal')); @@ -83,7 +84,7 @@ if (!is_array($journal_data)) { } // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -164,22 +165,18 @@ if ($reload) { $form = new Form($db); if ($object->nature == 2) { - $title = $langs->trans("SellsJournal"); $some_mandatory_steps_of_setup_were_not_done = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "" || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1'; $account_accounting_not_defined = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "" || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1'; } elseif ($object->nature == 3) { - $title = $langs->trans("PurchasesJournal"); $some_mandatory_steps_of_setup_were_not_done = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "" || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1'; $account_accounting_not_defined = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "" || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1'; } elseif ($object->nature == 4) { - $title = $langs->trans("FinanceJournal"); $some_mandatory_steps_of_setup_were_not_done = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "" || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "" || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1' || empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1'; $account_accounting_not_defined = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "" || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "" || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1'; } elseif ($object->nature == 5) { - $title = $langs->trans("ExpenseReportsJournal"); $some_mandatory_steps_of_setup_were_not_done = empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1'; $account_accounting_not_defined = empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1'; } else { @@ -188,8 +185,11 @@ if ($object->nature == 2) { $account_accounting_not_defined = false; } +$title = $langs->trans("GenerationOfAccountingEntries") . ' - ' . $object->getNomUrl(0, 2, 1, '', 1); -$nom = $title . ' | ' . $object->getNomUrl(0, 1, 1, '', 1); +llxHeader('', dol_string_nohtmltag($title)); + +$nom = $title; $nomlink = ''; $periodlink = ''; $exportlink = ''; @@ -201,6 +201,9 @@ if ($object->nature == 2 || $object->nature == 3) { } else { $description .= $langs->trans("DepositsAreIncluded"); } + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { + $description .= $langs->trans("SupplierDepositsAreNotIncluded"); + } } $listofchoices = array('notyet' => $langs->trans("NotYetInGeneralLedger"), 'already' => $langs->trans("AlreadyInGeneralLedger")); @@ -209,8 +212,6 @@ $period .= ' - ' . $langs->trans("JournalizationInLedgerStatus") . ' ' . $form- $varlink = 'id_journal=' . $id_journal; -llxHeader('', $title); - journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); if ($object->nature == 4) { // Bank journal @@ -236,7 +237,7 @@ if ($some_mandatory_steps_of_setup_were_not_done) { print ' : ' . $langs->trans("AccountancyAreaDescMisc", 4, '' . $langs->transnoentitiesnoconv("MenuAccountancy") . '-' . $langs->transnoentitiesnoconv("Setup") . "-" . $langs->transnoentitiesnoconv("MenuDefaultAccounts") . ''); print ''; } -print '
'; +print '
'; if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') { print ''; } @@ -285,23 +286,25 @@ print '
'; print ''; print ''; if ($object->nature == 4) print ''; // bank -print ''; -print ''; +print ''; +print ''; print "\n"; -foreach ($journal_data as $element_id => $element) { - foreach ($element['blocks'] as $lines) { - foreach ($lines as $line) { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - if ($object->nature == 4) print ''; - print ''; - print ''; - print ''; +if (is_array($journal_data) && !empty($journal_data)) { + foreach ($journal_data as $element_id => $element) { + foreach ($element['blocks'] as $lines) { + foreach ($lines as $line) { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + if ($object->nature == 4) print ''; + print ''; + print ''; + print ''; + } } } } diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php index 05d32d0cec5..306b88d11ea 100644 --- a/htdocs/accountancy/supplier/card.php +++ b/htdocs/accountancy/supplier/card.php @@ -42,7 +42,7 @@ $codeventil = GETPOST('codeventil', 'int'); $id = GETPOST('id', 'int'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index d350e2243a2..e67a75103ac 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2021 Florian Henry - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Alexandre Spangaro * Copyright (C) 2014 Juanjo Menent * * This program is free software; you can redistribute it and/or modify @@ -24,6 +24,7 @@ * \brief Home supplier journalization page */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; @@ -123,23 +124,8 @@ if ($action == 'validatehistory') { $db->begin(); // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind - /*if ($db->type == 'pgsql') { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det"; - $sql1 .= " SET fk_code_ventilation = accnt.rowid"; - $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " WHERE " . MAIN_DB_PREFIX . "facture_fourn_det.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity; - $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number"; - $sql1 .= " AND " . MAIN_DB_PREFIX . "facture_fourn_det.fk_code_ventilation = 0"; - } else { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " SET fk_code_ventilation = accnt.rowid"; - $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity; - $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number"; - $sql1 .= " AND fd.fk_code_ventilation = 0"; - }*/ - // Supplier Invoice Lines (must be same request than into page list.php for manual binding) - $sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype,"; + $sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype, f.fk_facture_source,"; $sql .= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,"; $sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tva_tx as tva_tx_prod,"; if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { @@ -171,8 +157,10 @@ if ($action == 'validatehistory') { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON " . $alias_product_perentity . ".accountancy_code_buy = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa.entity = ".$conf->entity; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa2 ON " . $alias_product_perentity . ".accountancy_code_buy_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa2.entity = ".$conf->entity; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa3 ON " . $alias_product_perentity . ".accountancy_code_buy_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa3.entity = ".$conf->entity; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa4 ON " . $alias_societe_perentity . ".accountancy_code_buy = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa4.entity = ".$conf->entity; - $sql .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0 AND l.product_type <= 2 AND f.entity = ".((int) $conf->entity); + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa4 ON " . $alias_product_perentity . ".accountancy_code_buy = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa4.entity = ".$conf->entity; + $sql .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0"; + $sql .= " AND l.product_type <= 2"; + $sql .= " AND f.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) { $sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'"; } @@ -230,7 +218,10 @@ if ($action == 'validatehistory') { $facture_static->ref = $objp->ref; $facture_static->id = $objp->facid; $facture_static->type = $objp->ftype; - $facture_static->date = $objp->datef; + $facture_static->ref_supplier = $objp->ref_supplier; + $facture_static->label = $objp->invoice_label; + $facture_static->date = $db->jdate($objp->datef); + $facture_static->fk_facture_source = $objp->fk_facture_source; $facture_static_det->id = $objp->rowid; $facture_static_det->total_ht = $objp->total_ht; @@ -292,7 +283,10 @@ if ($action == 'validatehistory') { $db->rollback(); } else { $db->commit(); - setEventMessages($langs->trans('AutomaticBindingDone', $nbbinddone, $notpossible), null, 'mesgs'); + setEventMessages($langs->trans('AutomaticBindingDone', $nbbinddone, $notpossible), null, ($notpossible ? 'warnings' : 'mesgs')); + if ($notpossible) { + setEventMessages($langs->trans('DoManualBindingForFailedRecord', $notpossible), null, 'warnings'); + } } } @@ -314,7 +308,7 @@ print '
'; $y = $year_current; -$buttonbind = ''.$langs->trans("ValidateHistory").''; +$buttonbind = ''.img_picto('', 'link', 'class="paddingright fa-color-unset"').$langs->trans("ValidateHistory").''; print_barre_liste(img_picto('', 'unlink', 'class="paddingright fa-color-unset"').$langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); @@ -373,10 +367,14 @@ $sql .= " AND ff.fk_statut > 0"; $sql .= " AND ffd.product_type <= 2"; $sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy $sql .= " AND aa.account_number IS NULL"; +if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.")"; +} else { + $sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.",".FactureFournisseur::TYPE_DEPOSIT.")"; +} $sql .= " GROUP BY ffd.fk_code_ventilation,aa.account_number,aa.label"; -$sql .= ' ORDER BY aa.account_number'; -dol_syslog('htdocs/accountancy/supplier/index.php'); +dol_syslog('htdocs/accountancy/supplier/index.php', LOG_DEBUG); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -392,14 +390,37 @@ if ($resql) { print ''; print '
'; for ($i = 2; $i <= 13; $i++) { + $cursormonth = (($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) + $i - 2); + if ($cursormonth > 12) { + $cursormonth -= 12; + } + $cursoryear = ($cursormonth < ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1)) ? $y + 1 : $y; + $tmp = dol_getdate(dol_get_last_day($cursoryear, $cursormonth, 'gmt'), false, 'gmt'); + print ''; } print ''; @@ -474,11 +495,17 @@ $sql .= " AND ff.datef <= '".$db->idate($search_date_end)."'"; if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) { $sql .= " AND ff.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'"; } +$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy $sql .= " AND ff.fk_statut > 0"; $sql .= " AND ffd.product_type <= 2"; -$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy +if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.")"; +} else { + $sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.", ".FactureFournisseur::TYPE_DEPOSIT.")"; +} $sql .= " AND aa.account_number IS NOT NULL"; $sql .= " GROUP BY ffd.fk_code_ventilation,aa.account_number,aa.label"; +$sql .= ' ORDER BY aa.account_number'; dol_syslog('htdocs/accountancy/supplier/index.php'); $resql = $db->query($sql); @@ -494,13 +521,15 @@ if ($resql) { print length_accountg($row[0]); } print ''; - print ''; + for ($i = 2; $i <= 13; $i++) { print '
".$langs->trans("Date")."".$langs->trans("Piece").' ('.$langs->trans("ObjectsRef").")".$langs->trans("AccountAccounting")."".$langs->trans("SubledgerAccount")."".$langs->trans("LabelOperation")."'.$langs->trans("PaymentMode")."'.$langs->trans("Debit")."'.$langs->trans("Credit")."'.$langs->trans("AccountingDebit")."'.$langs->trans("AccountingCredit")."
".$date."".$ref."".dol_escape_htmltag($ref).""; $accounttoshow = length_accountg($k); if (empty($accounttoshow) || $accounttoshow == 'NotDefined') { - print ''.$langs->trans("BankAccountNotDefined").''; - } else { - print $accounttoshow; + $accounttoshow = ''.$langs->trans("BankAccountNotDefined").''; } + print ''; + print $accounttoshow; print ""; + print ''; /*$accounttoshow = length_accountg($k); if (empty($accounttoshow) || $accounttoshow == 'NotDefined') { @@ -1171,9 +1187,12 @@ if (empty($action) || $action == 'view') { } else print $accounttoshow;*/ print ""; - print $reflabel; + + // Label operation + print ''; + print $reflabel; // This is already html escaped content print "'.$val["type_payment"]."'.($mt >= 0 ? price($mt) : '')."'.($mt < 0 ? price(-$mt) : '')."
".$date."".$ref."".dol_escape_htmltag($ref).""; $account_ledger = $k; // Try to force general ledger account depending on type if ($tabtype[$key] == 'payment') { - $account_ledger = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; + $account_ledger = getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER'); } if ($tabtype[$key] == 'payment_supplier') { - $account_ledger = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; + $account_ledger = getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER'); } if ($tabtype[$key] == 'payment_expensereport') { - $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + $account_ledger = getDolGlobalString('SALARIES_ACCOUNTING_ACCOUNT_PAYMENT'); } if ($tabtype[$key] == 'payment_salary') { - $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + $account_ledger = getDolGlobalString('SALARIES_ACCOUNTING_ACCOUNT_PAYMENT'); } if ($tabtype[$key] == 'payment_vat') { - $account_ledger = $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT; + $account_ledger = getDolGlobalString('ACCOUNTING_VAT_PAY_ACCOUNT'); } if ($tabtype[$key] == 'member') { - $account_ledger = $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT; + $account_ledger = getDolGlobalString('ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT'); } if ($tabtype[$key] == 'payment_various') { $account_ledger = $tabpay[$key]["account_various"]; @@ -1229,9 +1252,9 @@ if (empty($action) || $action == 'view') { if ($tabtype[$key] == 'unknown') { // We will accept writing, but into a waiting account if (empty($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) || $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE == '-1') { - print ''.$langs->trans('UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking').''; + $accounttoshow = ''.$langs->trans('UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking').''; } else { - print ''.$langs->trans('UnknownAccountForThirdparty', length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE)).''; // We will use a waiting account + $accounttoshow = ''.$langs->trans('UnknownAccountForThirdparty', length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE)).''; // We will use a waiting account } } else { // We will refuse writing @@ -1254,15 +1277,15 @@ if (empty($action) || $action == 'view') { if ($tabtype[$key] == 'member') { $errorstring = 'MainAccountForSubscriptionPaymentNotDefined'; } - print ''.$langs->trans($errorstring).''; + $accounttoshow = ''.$langs->trans($errorstring).''; } - } else { - print $accounttoshow; } + print ''; + print $accounttoshow; // This is a HTML string print ""; + $accounttoshowsubledger = ''; if (in_array($tabtype[$key], array('payment', 'payment_supplier', 'payment_expensereport', 'payment_salary', 'payment_various'))) { // Type of payments that uses a subledger $accounttoshowsubledger = length_accounta($k); if ($accounttoshow != $accounttoshowsubledger) { @@ -1274,18 +1297,20 @@ if (empty($action) || $action == 'view') { if (!empty($tabcompany[$key]['code_compta'])) { if (in_array($tabtype[$key], array('payment_various', 'payment_salary'))) { // For such case, if subledger is not defined, we won't use subledger accounts. - print ''.$langs->trans("ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored").''; + $accounttoshowsubledger = ''.$langs->trans("ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored").''; } else { - print ''.$langs->trans("ThirdpartyAccountNotDefinedOrThirdPartyUnknown", $tabcompany[$key]['code_compta']).''; + $accounttoshowsubledger = ''.$langs->trans("ThirdpartyAccountNotDefinedOrThirdPartyUnknown", $tabcompany[$key]['code_compta']).''; } } else { - print ''.$langs->trans("ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking").''; + $accounttoshowsubledger = ''.$langs->trans("ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking").''; } - } else { - print $accounttoshowsubledger; } + } else { + $accounttoshowsubledger = ''; } } + print ''; + print $accounttoshowsubledger; // This is a html string print "".$reflabel."".$langs->trans("AccountAccounting")."".$langs->trans("SubledgerAccount")."".$langs->trans("LabelOperation")."'.$langs->trans("Debit")."'.$langs->trans("Credit")."'.$langs->trans("AccountingDebit")."'.$langs->trans("AccountingCredit")."
".$langs->trans("AccountAccounting")."".$langs->trans("SubledgerAccount")."".$langs->trans("LabelOperation")."'.$langs->trans("Debit")."'.$langs->trans("Credit")."'.$langs->trans("AccountingDebit")."'.$langs->trans("AccountingCredit")."
"; + if (!empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT)) { + if ($k == getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT')) { + print length_accounta($tabcompany[$key]['code_compta']); + } + } elseif (($accountoshow == "") || $accountoshow == 'NotDefined') { + print '' . $langs->trans("ThirdpartyAccountNotDefined") . ''; + } print '".$langs->trans("AccountAccounting")."".$langs->trans("SubledgerAccount")."".$langs->trans("LabelOperation")."'.$langs->trans("Debit")."'.$langs->trans("Credit")."'.$langs->trans("AccountingDebit")."'.$langs->trans("AccountingCredit")."
".$date."".$invoicestatic->getNomUrl(1).""; + $accountoshow = length_accountg($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY); + if (($accountoshow == "") || $accountoshow == 'NotDefined') { + print ''.$langs->trans("MainAccountForCustomersNotDefined").''; + } else { + print $accountoshow; + } + print '"; + $accountoshow = length_accounta($k); + if (($accountoshow == "") || $accountoshow == 'NotDefined') { + print ''.$langs->trans("ThirdpartyAccountNotDefined").''; + } else { + print $accountoshow; + } + print '".$companystatic->getNomUrl(0, 'customer', 16).' - '.$invoicestatic->ref.' - '.$langs->trans("Retainedwarranty")."'.($mt >= 0 ? price($mt) : '')."'.($mt < 0 ? price(-$mt) : '')."
' . $langs->trans("AccountAccounting") . '' . $langs->trans("SubledgerAccount") . '' . $langs->trans("LabelOperation") . '' . $langs->trans("PaymentMode") . '' . $langs->trans("Debit") . '' . $langs->trans("Credit") . '' . $langs->trans("AccountingDebit") . '' . $langs->trans("AccountingCredit") . '
' . $line['date'] . '' . $line['piece'] . '' . $line['account_accounting'] . '' . $line['subledger_account'] . '' . $line['label_operation'] . '' . $line['payment_mode'] . '' . $line['debit'] . '' . $line['credit'] . '
' . $line['date'] . '' . $line['piece'] . '' . $line['account_accounting'] . '' . $line['subledger_account'] . '' . $line['label_operation'] . '' . $line['payment_mode'] . '' . $line['debit'] . '' . $line['credit'] . '
'; if ($row[0] == 'tobind') { - print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.((int) $y), $langs->transnoentitiesnoconv("ToBind")); + $startmonth = ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1); + if ($startmonth > 12) { + $startmonth -= 12; + } + $startyear = ($startmonth < ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1)) ? $y + 1 : $y; + $endmonth = ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) + 11; + if ($endmonth > 12) { + $endmonth -= 12; + } + $endyear = ($endmonth < ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1)) ? $y + 1 : $y; + print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_date_startday=1&search_date_startmonth='.((int) $startmonth).'&search_date_startyear='.((int) $startyear).'&search_date_endday=&search_date_endmonth='.((int) $endmonth).'&search_date_endyear='.((int) $endyear), $langs->transnoentitiesnoconv("ToBind")); } else { print $row[1]; } print ''; print price($row[$i]); + // Add link to make binding + if (!empty(price2num($row[$i]))) { + print ''; + print img_picto($langs->trans("ValidateHistory").' ('.$langs->trans('Month'.str_pad($cursormonth, 2, '0', STR_PAD_LEFT)).' '.$cursoryear.')', 'link', 'class="marginleft2"'); + print ''; + } print ''.price($row[14]).''; + + print ''; if ($row[0] == 'tobind') { print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.((int) $y), $langs->transnoentitiesnoconv("ToBind")); } else { print $row[1]; } print ''; print price($row[$i]); @@ -523,8 +552,7 @@ print "
\n"; print '
'; - -if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report that should rely on result of this step ? +if (getDolGlobalString('SHOW_TOTAL_OF_PREVIOUS_LISTS_IN_LIN_PAGE')) { // This part of code looks strange. Why showing a report that should rely on result of this step ? print '
'; print '
'; @@ -560,9 +588,14 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) { $sql .= " AND ff.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'"; } + $sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy $sql .= " AND ff.fk_statut > 0"; $sql .= " AND ffd.product_type <= 2"; - $sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.")"; + } else { + $sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.", ".FactureFournisseur::TYPE_DEPOSIT.")"; + } dol_syslog('htdocs/accountancy/supplier/index.php'); $resql = $db->query($sql); diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 914c355c838..ea9841d2fbb 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -49,7 +49,7 @@ $search_societe = GETPOST('search_societe', 'alpha'); $search_lineid = GETPOST('search_lineid', 'int'); $search_ref = GETPOST('search_ref', 'alpha'); $search_invoice = GETPOST('search_invoice', 'alpha'); -$search_ref_supplier = GETPOST('search_ref_supplier', 'alpha'); +//$search_ref_supplier = GETPOST('search_ref_supplier', 'alpha'); $search_label = GETPOST('search_label', 'alpha'); $search_desc = GETPOST('search_desc', 'alpha'); $search_amount = GETPOST('search_amount', 'alpha'); @@ -89,7 +89,7 @@ if (!$sortorder) { $formaccounting = new FormAccounting($db); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -113,7 +113,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_lineid = ''; $search_ref = ''; $search_invoice = ''; - $search_ref_supplier = ''; + //$search_ref_supplier = ''; $search_label = ''; $search_desc = ''; $search_amount = ''; @@ -194,9 +194,9 @@ print ''; -} +$constname = 'MAIN_AGENDA_XCAL_EXPORTKEY'; + +// Add button to autosuggest a key +include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; +print dolJSToSetRandomPassword($constname); // End of page llxFooter(); diff --git a/htdocs/admin/bank_extrafields.php b/htdocs/admin/bank_extrafields.php index 1382ef49983..d01ac5a93e9 100644 --- a/htdocs/admin/bank_extrafields.php +++ b/htdocs/admin/bank_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of bank */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -64,32 +65,27 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject = $langs->transnoentitiesnoconv("Bank"); +$help_url = ''; +$page_name = "BankSetupModule"; llxHeader('', $langs->trans("BankSetupModule"), $help_url); $linkback = ''.$langs->trans("BackToModuleList").''; -print load_fiche_titre($langs->trans("BankSetupModule"), $linkback, 'title_setup'); +print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); $head = bank_admin_prepare_head(null); -print dol_get_fiche_head($head, 'attributes', $langs->trans("BankSetupModule"), -1, 'account'); +print dol_get_fiche_head($head, 'attributes', $langs->trans($page_name), -1, 'account'); + +$textobject = $langs->transnoentitiesnoconv("Bank"); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - /* * Creation of an optional field */ diff --git a/htdocs/admin/bankline_extrafields.php b/htdocs/admin/bankline_extrafields.php new file mode 100644 index 00000000000..7e451275f8d --- /dev/null +++ b/htdocs/admin/bankline_extrafields.php @@ -0,0 +1,112 @@ + + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2022 Frédéric France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/admin/bankline_extrafields.php + * \ingroup bank + * \brief Page to setup extra fields of bankline + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("admin", "companies", "bills", "other", "banks")); + +$extrafields = new ExtraFields($db); +$form = new Form($db); + +// List of supported format +$tmptype2label = ExtraFields::$type2label; +$type2label = array(); +foreach ($tmptype2label as $key => $val) { + $type2label[$key] = $langs->transnoentitiesnoconv($val); +} + +$action = GETPOST('action', 'aZ09'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'bank'; //Must be the $table_element of the class that manage extrafield + +if (!$user->admin) { + accessforbidden(); +} + + +/* + * Actions + */ + +require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; + +/* + * View + */ + + +$help_url = ''; +$page_name = "BankSetupModule"; + +llxHeader('', $langs->trans("BankSetupModule"), $help_url); + + +$linkback = ''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); + + +$head = bank_admin_prepare_head(null); + +print dol_get_fiche_head($head, 'bankline_extrafields', $langs->trans($page_name), -1, 'account'); + +$textobject = $langs->transnoentitiesnoconv("BankTransaction"); + +require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; + +print dol_get_fiche_end(); + + +/* + * Creation of an optional field + */ +if ($action == 'create') { + print '
'; + print load_fiche_titre($langs->trans('NewAttribute')); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php'; +} + +/* + * Edition of an optional field + */ +if ($action == 'edit' && !empty($attrname)) { + print "
"; + print load_fiche_titre($langs->trans("FieldEdition", $attrname)); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php index ee0fcd5d130..96dd7affdba 100644 --- a/htdocs/admin/barcode.php +++ b/htdocs/admin/barcode.php @@ -24,6 +24,7 @@ * \brief Page to setup barcode module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php'; @@ -31,10 +32,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php'; // Load translation files required by the page $langs->load("admin"); +// Security Check Access if (!$user->admin) { accessforbidden(); } +// Get Parameters $action = GETPOST('action', 'aZ09'); $modulepart = GETPOST('modulepart', 'aZ09'); // Used by actions_setmoduleoptions.inc.php @@ -55,6 +58,16 @@ if ($action == 'setbarcodeproducton') { $res = dolibarr_del_const($db, "BARCODE_PRODUCT_ADDON_NUM", $conf->entity); } +if ($action == 'setbarcodethirdpartyon') { + $barcodenumberingmodule = GETPOST('value', 'alpha'); + $res = dolibarr_set_const($db, "BARCODE_THIRDPARTY_ADDON_NUM", $barcodenumberingmodule, 'chaine', 0, '', $conf->entity); + if ($barcodenumberingmodule == 'mod_barcode_thirdparty_standard' && empty($conf->global->BARCODE_STANDARD_THIRDPARTY_MASK)) { + $res = dolibarr_set_const($db, "BARCODE_STANDARD_THIRDPARTY_MASK", '020{000000000}', 'chaine', 0, '', $conf->entity); + } +} elseif ($action == 'setbarcodethirdpartyoff') { + $res = dolibarr_del_const($db, "BARCODE_THIRDPARTY_ADDON_NUM", $conf->entity); +} + if ($action == 'setcoder') { $coder = GETPOST('coder', 'alpha'); $code_id = GETPOST('code_id', 'int'); @@ -180,7 +193,7 @@ foreach ($dirbarcode as $reldir) { // Select barcode numbering module -if ($conf->product->enabled) { +if (isModEnabled('product')) { print load_fiche_titre($langs->trans("BarCodeNumberManager")." (".$langs->trans("Product").")", '', ''); print '
'; @@ -241,6 +254,66 @@ if ($conf->product->enabled) { print '
'; } +// Select barcode numbering module +if (isModEnabled('societe')) { + print load_fiche_titre($langs->trans("BarCodeNumberManager")." (".$langs->trans("ThirdParty").")", '', ''); + + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + + $dirbarcodenum = array_merge(array('/core/modules/barcode/'), $conf->modules_parts['barcode']); + + foreach ($dirbarcodenum as $dirroot) { + $dir = dol_buildpath($dirroot, 0); + + $handle = @opendir($dir); + if (is_resource($handle)) { + while (($file = readdir($handle)) !== false) { + if (preg_match('/^mod_barcode_thirdparty_.*php$/', $file)) { + $file = substr($file, 0, dol_strlen($file) - 4); + + try { + dol_include_once($dirroot.$file.'.php'); + } catch (Exception $e) { + dol_syslog($e->getMessage(), LOG_ERR); + } + + $modBarCode = new $file(); + print ''; + print ''; + print '\n"; + + if (!empty($conf->global->BARCODE_THIRDPARTY_ADDON_NUM) && $conf->global->BARCODE_THIRDPARTY_ADDON_NUM == "$file") { + print ''; + } else { + print ''; + } + print ''; + print "\n"; + } + } + closedir($handle); + } + } + print "
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Example").''.$langs->trans("Status").''.$langs->trans("ShortInfo").'
'.(isset($modBarCode->name) ? $modBarCode->name : $modBarCode->nom)."\n"; + print $modBarCode->info($langs); + print ''.$modBarCode->getExample($langs)."'; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + $s = $modBarCode->getToolTip($langs, null, -1); + print $form->textwithpicto('', $s, 1); + print '
\n"; + print '
'; +} /* * CHOIX ENCODAGE @@ -326,7 +399,7 @@ if ($resql) { } } } else { - print $langs->trans("ChooseABarCode"); + print ''.$langs->trans("ChooseABarCode").''; } print ''; @@ -369,7 +442,7 @@ if (!isset($_SERVER['WINDIR'])) { print ''; print ''.$langs->trans("GenbarcodeLocation").''; print ''; - print ''; + print ''; if (!empty($conf->global->GENBARCODE_LOCATION) && !@file_exists($conf->global->GENBARCODE_LOCATION)) { $langs->load("errors"); print '
'.$langs->trans("ErrorFileNotFound", $conf->global->GENBARCODE_LOCATION).''; @@ -380,7 +453,7 @@ if (!isset($_SERVER['WINDIR'])) { } // Module products -if (!empty($conf->product->enabled)) { +if (isModEnabled('product')) { print ''; print ''.$langs->trans("SetDefaultBarcodeTypeProducts").''; print ''; @@ -391,7 +464,7 @@ if (!empty($conf->product->enabled)) { } // Module thirdparty -if (!empty($conf->societe->enabled)) { +if (isModEnabled('societe')) { print ''; print ''.$langs->trans("SetDefaultBarcodeTypeThirdParties").''; print ''; diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php index dc56d3ae79f..57b4b5aad06 100644 --- a/htdocs/admin/bom.php +++ b/htdocs/admin/bom.php @@ -21,6 +21,7 @@ * \brief Setup page of module BOM */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -50,10 +51,10 @@ $type = 'bom'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstbom = GETPOST('maskconstBom', 'alpha'); + $maskconstbom = GETPOST('maskconstBom', 'aZ09'); $maskbom = GETPOST('maskBom', 'alpha'); - if ($maskconstbom) { + if ($maskconstbom && preg_match('/_MASK$/', $maskconstbom)) { $res = dolibarr_set_const($db, $maskconstbom, $maskbom, 'chaine', 0, '', $conf->entity); } @@ -453,10 +454,10 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnBOMs"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'BOM_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''; @@ -466,13 +467,13 @@ print ''; //Use draft Watermark -print "
"; +print ''; print ''; -print ""; +print ''; print ''; print $form->textwithpicto($langs->trans("WatermarkOnDraftBOMs"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print ''; -print ''; +print ''; print ''; print ''; print "\n"; diff --git a/htdocs/admin/bom_extrafields.php b/htdocs/admin/bom_extrafields.php index c8ebafd4be8..7b77702eea4 100644 --- a/htdocs/admin/bom_extrafields.php +++ b/htdocs/admin/bom_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of BOM */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -64,7 +65,7 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ - +$help_url = ''; llxHeader('', $langs->trans("BOMsSetup"), $help_url); @@ -81,14 +82,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - /* * Creation of an optional field */ diff --git a/htdocs/admin/bomline_extrafields.php b/htdocs/admin/bomline_extrafields.php new file mode 100644 index 00000000000..1a21f052b84 --- /dev/null +++ b/htdocs/admin/bomline_extrafields.php @@ -0,0 +1,114 @@ + + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2015 Jean-François Ferry + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/admin/bomline_extrafields.php + * \ingroup bom + * \brief Page to setup extra fields of BOM + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT . '/bom/lib/bom.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array('mrp', 'admin')); + +$extrafields = new ExtraFields($db); +$form = new Form($db); + +// List of supported format +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) { + $type2label[$key] = $langs->transnoentitiesnoconv($val); +} + +$action = GETPOST('action', 'aZ09'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'bom_bomline'; + +if (!$user->admin) { + accessforbidden(); +} + + +/* + * Actions + */ + +require DOL_DOCUMENT_ROOT . '/core/actions_extrafields.inc.php'; + + +/* + * View + */ + +$help_url = ''; +llxHeader('', $langs->trans("BOMLinesSetup"), $help_url); + + +$linkback = '' . $langs->trans("BackToModuleList") . ''; +print load_fiche_titre($langs->trans("BOMLinesSetup"), $linkback, 'title_setup'); + + +$head = bomAdminPrepareHead(); + +print dol_get_fiche_head($head, 'bomline_extrafields', $langs->trans("ExtraFields"), -1, 'account'); + +require DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_view.tpl.php'; + +print dol_get_fiche_end(); + + +// Buttons +if ($action != 'create' && $action != 'edit') { + print '"; +} + + +/* + * Creation of an optional field + */ +if ($action == 'create') { + print '
'; + print load_fiche_titre($langs->trans('NewAttribute')); + + require DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_add.tpl.php'; +} + +/* + * Edition of an optional field + */ +if ($action == 'edit' && !empty($attrname)) { + print "
"; + print load_fiche_titre($langs->trans("FieldEdition", $attrname)); + + require DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_edit.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php index 1bc5f67239e..cbab8027e43 100644 --- a/htdocs/admin/boxes.php +++ b/htdocs/admin/boxes.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2013 Laurent Destailleur + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2015 Jean-François Ferry * @@ -23,6 +23,7 @@ * \brief Page to setup boxes */ +// Load Dolibarr environment require '../main.inc.php'; include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php'; @@ -356,7 +357,7 @@ foreach ($boxtoadd as $box) { // For each possible position, an activation link is displayed if the box is not already active for that position print ''; - print $form->selectarray("boxid[".$box->box_id."][pos]", $arrayofhomepages, -1, 1, 0, 0, '', 1)."\n"; + print $form->selectarray("boxid[".$box->box_id."][pos]", $arrayofhomepages, -1, 1, 0, 0, '', 1, 0, 0, '', 'minwidth75', 1)."\n"; print ''."\n"; print ''; diff --git a/htdocs/admin/chequereceipts.php b/htdocs/admin/chequereceipts.php index 3ba8c3b854a..77994debadb 100644 --- a/htdocs/admin/chequereceipts.php +++ b/htdocs/admin/chequereceipts.php @@ -25,6 +25,7 @@ * \brief Page to setup the bank module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -53,9 +54,9 @@ if (empty($conf->global->CHEQUERECEIPTS_ADDON)) { */ if ($action == 'updateMask') { - $maskconstchequereceipts = GETPOST('maskconstchequereceipts', 'alpha'); + $maskconstchequereceipts = GETPOST('maskconstchequereceipts', 'aZ09'); $maskchequereceipts = GETPOST('maskchequereceipts', 'alpha'); - if ($maskconstchequereceipts) { + if ($maskconstchequereceipts && preg_match('/_MASK$/', $maskconstchequereceipts)) { $res = dolibarr_set_const($db, $maskconstchequereceipts, $maskchequereceipts, 'chaine', 0, '', $conf->entity); } @@ -210,7 +211,7 @@ foreach ($dirmodels as $reldir) { print ''; print $form->textwithpicto('', $htmltooltip, 1, 0); - if ($conf->global->CHEQUERECEIPTS_ADDON.'.php' == $file) { // If module is the one used, we show existing errors + if (getDolGlobalString('CHEQUERECEIPTS_ADDON').'.php' == $file) { // If module is the one used, we show existing errors if (!empty($module->error)) { dol_htmloutput_mesg($module->error, '', 'error', 1); } @@ -261,10 +262,10 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnChequeReceipts"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'BANK_CHEQUERECEIPT_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''; diff --git a/htdocs/admin/clicktodial.php b/htdocs/admin/clicktodial.php index 326e7028bbf..3174b5bc091 100644 --- a/htdocs/admin/clicktodial.php +++ b/htdocs/admin/clicktodial.php @@ -23,6 +23,7 @@ * \brief Page to setup module ClickToDial */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -35,8 +36,8 @@ if (!$user->admin) { $action = GETPOST('action', 'aZ09'); -if (!in_array('clicktodial', $conf->modules)) { - accessforbidden($langs->trans("WarningModuleNotActive", $langs->transnoentitiesnoconv("Module58Name"))); +if (!isModEnabled('clicktodial')) { + accessforbidden($langs->transnoentitiesnoconv("WarningModuleNotActive", $langs->transnoentitiesnoconv("Module58Name"))); } @@ -47,8 +48,9 @@ if (!in_array('clicktodial', $conf->modules)) { if ($action == 'setvalue' && $user->admin) { $result1 = dolibarr_set_const($db, "CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", GETPOST("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS"), 'chaine', 0, '', $conf->entity); $result2 = dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("CLICKTODIAL_URL"), 'chaine', 0, '', $conf->entity); + $result3 = dolibarr_set_const($db, "CLICKTODIAL_KEY_FOR_CIDLOOKUP", GETPOST("CLICKTODIAL_KEY_FOR_CIDLOOKUP"), 'chaine', 0, '', $conf->entity); - if ($result1 >= 0 && $result2 >= 0) { + if ($result1 >= 0 && $result2 >= 0 && $result3 >= 0) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { setEventMessages($langs->trans("Error"), null, 'errors'); @@ -80,7 +82,7 @@ print ''; print '
'; print ''; print ''; -print ''; +print ''; print ''; print "\n"; @@ -89,24 +91,24 @@ print ''; print ''; +print ''; +print ''; +print ''; +print ''; + print '
'.$langs->trans("Name").''.$langs->trans("Name").''.$langs->trans("Value").'
'; print $langs->trans("ClickToDialUseTelLink").''; print $form->selectyesno("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", $conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS, 1).'
'; print '
'; -print $langs->trans("ClickToDialUseTelLinkDesc"); +print ''.$langs->trans("ClickToDialUseTelLinkDesc").''; print '
'; print $langs->trans("DefaultLink").''; -print 'global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS ? ' disabled="disabled"' : '').' value="'.$conf->global->CLICKTODIAL_URL.'">
'; +print '
'; print ajax_autoselect('CLICKTODIAL_URL'); print '
'; print $langs->trans("ClickToDialUrlDesc").'
'; print '
'; print ''; print $langs->trans("Examples").':
'; -print 'https://myphoneserver/mypage?login=__LOGIN__&password=__PASS__&caller=__PHONEFROM__&called=__PHONETO__
'; -print 'sip:__PHONETO__@my.sip.server'; +print '* https://myphoneserver/phoneurl?login=__LOGIN__&password=__PASS__&caller=__PHONEFROM__&called=__PHONETO__
'; +print '* sip:__PHONETO__@my.sip.server'; print '
'; -//if (! empty($user->clicktodial_url)) +//if (!empty($user->clicktodial_url)) //{ print '
'; print info_admin($langs->trans("ValueOverwrittenByUserSetup")); @@ -114,6 +116,37 @@ print ''; print '
'.$langs->trans("SecurityKey").''; + +global $dolibarr_main_url_root; + +// Define $urlwithroot +$urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); +$urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file +//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current + +// Url for CIDLookup +//print '
'; +//print $langs->trans("URLToLaunchCronJobs").':
'; +$url = $urlwithroot.'/public/clicktodial/cidlookup.php?securitykey='.getDolGlobalString('CLICKTODIAL_KEY_FOR_CIDLOOKUP', 'ValueToDefine').'&phone=...'; +//print img_picto('', 'globe').' '.$url."
\n"; +//print '
'; +//print '
'; + + +print ''.$langs->trans("CIDLookupURL").''; +print '
'.$url; +print '
'; +print '
'; +print ''; +if (!empty($conf->use_javascript_ajax)) { + print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token" class="linkobject"'); +} +print '
'; print '
'; @@ -156,6 +189,11 @@ if (!empty($conf->global->CLICKTODIAL_URL)) { } } +// Add button to autosuggest a key +include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; +print dolJSToSetRandomPassword('CLICKTODIAL_KEY_FOR_CIDLOOKUP'); + + // End of page llxFooter(); $db->close(); diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index f4afd27d46b..79c42f6e2db 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -31,6 +31,7 @@ * \brief Setup page of module Order */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -60,10 +61,10 @@ $type = 'order'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); + $maskconstorder = GETPOST('maskconstorder', 'aZ09'); $maskorder = GETPOST('maskorder', 'alpha'); - if ($maskconstorder) { + if ($maskconstorder && preg_match('/_MASK$/', $maskconstorder)) { $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); } @@ -181,7 +182,39 @@ if ($action == 'updateMask') { } else { setEventMessages($langs->trans("Error"), null, 'errors'); } -} elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_ORDER') { +} elseif (preg_match('/set_(.*)/', $action, $reg)) { + $code = $reg[1]; + $value = (GETPOST($code) ? GETPOST($code) : 1); + + $res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if ($error) { + setEventMessages($langs->trans('Error'), null, 'errors'); + } else { + setEventMessages($langs->trans('SetupSaved'), null, 'mesgs'); + header("Location: " . $_SERVER["PHP_SELF"]); + exit(); + } +} elseif (preg_match('/del_(.*)/', $action, $reg)) { + $code = $reg[1]; + $res = dolibarr_del_const($db, $code, $conf->entity); + + if (!($res > 0)) { + $error++; + } + + if ($error) { + setEventMessages($langs->trans('Error'), null, 'errors'); + } else { + setEventMessages($langs->trans('SetupSaved'), null, 'mesgs'); + header("Location: " . $_SERVER["PHP_SELF"]); + exit(); + } +} +/*elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_ORDER') { // Activate ask for payment bank $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_ORDER", $value, 'chaine', 0, '', $conf->entity); @@ -207,7 +240,8 @@ if ($action == 'updateMask') { } else { setEventMessages($langs->trans("Error"), null, 'errors'); } -} +} */ + /* @@ -507,7 +541,7 @@ print ''; print "".$langs->trans("SuggestPaymentByRIBOnAccount").""; print ""; if (empty($conf->facture->enabled)) { - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql = "SELECT rowid, label"; $sql .= " FROM ".MAIN_DB_PREFIX."bank_account"; $sql .= " WHERE clos = 0"; @@ -612,7 +646,7 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnOrders"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'ORDER_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); @@ -625,26 +659,34 @@ print ''; //Use draft Watermark -print "
"; +print ''; print ''; -print ""; +print ''; print ''; print $form->textwithpicto($langs->trans("WatermarkOnDraftOrders"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print ''; -print ''; +print ''; print ''; print ''; print "\n"; + +// Allow external download +print ''; +print ''.$langs->trans("AllowExternalDownload").''; +print ''; +print ajax_constantonoff('ORDER_ALLOW_EXTERNAL_DOWNLOAD', array(), null, 0, 0, 0, 2, 0, 1); +print ''; print '
'; /* // Seems to be not so used. So kept hidden for the moment to avoid dangerous options inflation. +// TODO Must be implemented by PDF templates // Ask for payment bank during order if ($conf->banque->enabled) { print ''; print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_ORDER").' '; - if (! empty($conf->use_javascript_ajax)) { + if (!empty($conf->use_javascript_ajax)) { print ajax_constantonoff('BANK_ASK_PAYMENT_BANK_DURING_ORDER'); } else { if (empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER)) { @@ -661,10 +703,10 @@ if ($conf->banque->enabled) { } // Ask for warehouse during order -if ($conf->stock->enabled) { +if (isModEnabled('stock')) { print ''; print $langs->trans("WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER").' '; - if (! empty($conf->use_javascript_ajax)) { + if (!empty($conf->use_javascript_ajax)) { print ajax_constantonoff('WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER'); } else { if (empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { diff --git a/htdocs/admin/commande_fournisseur_dispatch_extrafields.php b/htdocs/admin/commande_fournisseur_dispatch_extrafields.php index cf887b6b454..277d61e1b2f 100644 --- a/htdocs/admin/commande_fournisseur_dispatch_extrafields.php +++ b/htdocs/admin/commande_fournisseur_dispatch_extrafields.php @@ -30,6 +30,7 @@ * \brief Page to setup extra fields of reception */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -91,14 +92,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print "
"; diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index 86800eea947..d6760ef45e8 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -27,6 +27,7 @@ * \brief Setup page to configure company/foundation */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -107,7 +108,7 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha')) $dirforimage = $conf->mycompany->dir_output.'/logos/'; $arrayofimages = array('logo', 'logo_squarred'); - + //var_dump($_FILES); exit; foreach ($arrayofimages as $varforimage) { if ($_FILES[$varforimage]["name"] && !preg_match('/(\.jpeg|\.jpg|\.png)$/i', $_FILES[$varforimage]["name"])) { // Logo can be used on a lot of different places. Only jpg and png can be supported. $langs->load("errors"); @@ -115,67 +116,71 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha')) break; } - if ($_FILES[$varforimage]["tmp_name"]) { + // Remove to check file size to large + /*if ($_FILES[$varforimage]["tmp_name"]) {*/ $reg = array(); - if (preg_match('/([^\\/:]+)$/i', $_FILES[$varforimage]["name"], $reg)) { - $original_file = $reg[1]; + if (preg_match('/([^\\/:]+)$/i', $_FILES[$varforimage]["name"], $reg)) { + $original_file = $reg[1]; - $isimage = image_format_supported($original_file); - if ($isimage >= 0) { - dol_syslog("Move file ".$_FILES[$varforimage]["tmp_name"]." to ".$dirforimage.$original_file); - if (!is_dir($dirforimage)) { - dol_mkdir($dirforimage); + $isimage = image_format_supported($original_file); + if ($isimage >= 0) { + dol_syslog("Move file ".$_FILES[$varforimage]["tmp_name"]." to ".$dirforimage.$original_file); + if (!is_dir($dirforimage)) { + dol_mkdir($dirforimage); + } + $result = dol_move_uploaded_file($_FILES[$varforimage]["tmp_name"], $dirforimage.$original_file, 1, 0, $_FILES[$varforimage]['error']); + if ($result > 0) { + $constant = "MAIN_INFO_SOCIETE_LOGO"; + if ($varforimage == 'logo_squarred') { + $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED"; } - $result = dol_move_uploaded_file($_FILES[$varforimage]["tmp_name"], $dirforimage.$original_file, 1, 0, $_FILES[$varforimage]['error']); - if ($result > 0) { - $constant = "MAIN_INFO_SOCIETE_LOGO"; - if ($varforimage == 'logo_squarred') { - $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED"; - } - dolibarr_set_const($db, $constant, $original_file, 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, $constant, $original_file, 'chaine', 0, '', $conf->entity); - // Create thumbs of logo (Note that PDF use original file and not thumbs) - if ($isimage > 0) { - // Create thumbs - //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retrieve value with get... + // Create thumbs of logo (Note that PDF use original file and not thumbs) + if ($isimage > 0) { + // Create thumbs + //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retrieve value with get... - // Create small thumb, Used on logon for example - $imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality); - if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) { - $imgThumbSmall = $reg[1]; // Save only basename - dolibarr_set_const($db, $constant."_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity); - } else { - dol_syslog($imgThumbSmall); - } - - // Create mini thumb, Used on menu or for setup page for example - $imgThumbMini = vignette($dirforimage.$original_file, $maxwidthmini, $maxheightmini, '_mini', $quality); - if (image_format_supported($imgThumbMini) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) { - $imgThumbMini = $reg[1]; // Save only basename - dolibarr_set_const($db, $constant."_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity); - } else { - dol_syslog($imgThumbMini); - } + // Create small thumb, Used on logon for example + $imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality); + if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) { + $imgThumbSmall = $reg[1]; // Save only basename + dolibarr_set_const($db, $constant."_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity); } else { - dol_syslog("ErrorImageFormatNotSupported", LOG_WARNING); + dol_syslog($imgThumbSmall); + } + + // Create mini thumb, Used on menu or for setup page for example + $imgThumbMini = vignette($dirforimage.$original_file, $maxwidthmini, $maxheightmini, '_mini', $quality); + if (image_format_supported($imgThumbMini) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) { + $imgThumbMini = $reg[1]; // Save only basename + dolibarr_set_const($db, $constant."_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity); + } else { + dol_syslog($imgThumbMini); } - } elseif (preg_match('/^ErrorFileIsInfectedWithAVirus/', $result)) { - $error++; - $langs->load("errors"); - $tmparray = explode(':', $result); - setEventMessages($langs->trans('ErrorFileIsInfectedWithAVirus', $tmparray[1]), null, 'errors'); } else { - $error++; - setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors'); + dol_syslog("ErrorImageFormatNotSupported", LOG_WARNING); } - } else { + } elseif (preg_match('/^ErrorFileIsInfectedWithAVirus/', $result)) { $error++; $langs->load("errors"); - setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors'); + $tmparray = explode(':', $result); + setEventMessages($langs->trans('ErrorFileIsInfectedWithAVirus', $tmparray[1]), null, 'errors'); + } elseif (preg_match('/^ErrorFileSizeTooLarge/', $result)) { + $error++; + setEventMessages($langs->trans("ErrorFileSizeTooLarge"), null, 'errors'); + } else { + $error++; + setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors'); } + } else { + $error++; + $langs->load("errors"); + setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors'); } } + /*}*/ } dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS", 'alphanohtml'), 'chaine', 0, '', $conf->entity); @@ -466,7 +471,7 @@ print ''."\n"; // Barcode -if (!empty($conf->barcode->enabled)) { +if (isModEnabled('barcode')) { print ''; print ''; print ''; @@ -474,9 +479,18 @@ if (!empty($conf->barcode->enabled)) { print ''; } +// Tooltip for both Logo and LogSquarred +$tooltiplogo = $langs->trans('AvailableFormats').' : png, jpg, jpeg'; +$maxfilesizearray = getMaxFileSizeArray(); +$maxmin = $maxfilesizearray['maxmin']; +$tooltiplogo .= ($maxmin > 0) ? '
'.$langs->trans('MaxSize').' : '.$maxmin.' '.$langs->trans('Kb') : ''; + // Logo -print ''; +print ''; print '
'; +if ($maxmin > 0) { + print ''; // MAX_FILE_SIZE must precede the field type=file +} print ''; print '
'; if (!empty($mysoc->logo_small)) { @@ -512,8 +526,13 @@ print '
'; print ''; // Logo (squarred) -print ''; +print ''; print '
'; +$maxfilesizearray = getMaxFileSizeArray(); +$maxmin = $maxfilesizearray['maxmin']; +if ($maxmin > 0) { + print ''; // MAX_FILE_SIZE must precede the field type=file +} print ''; print '
'; if (!empty($mysoc->logo_squarred_small)) { diff --git a/htdocs/admin/company_socialnetworks.php b/htdocs/admin/company_socialnetworks.php index 1f2d102b644..e9171431187 100644 --- a/htdocs/admin/company_socialnetworks.php +++ b/htdocs/admin/company_socialnetworks.php @@ -28,6 +28,7 @@ * \brief Setup page to configure company social networks */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -93,6 +94,7 @@ $head = company_admin_prepare_head(); print dol_get_fiche_head($head, 'socialnetworks', '', -1, ''); print ''.$langs->trans("CompanyFundationDesc", $langs->transnoentities("Save"))."
\n"; +print ''.$langs->trans("MoreNetworksAvailableWithModule")."
\n"; print "
\n"; diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 047b87ff014..afc23f3ff63 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -27,6 +27,7 @@ * \brief Page to setup accountancy module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -146,7 +147,7 @@ print "\n"; print ' '.$langs->trans('OptionModeTrue').''; print ''.nl2br($langs->trans('OptionModeTrueDesc')); // Write info on way to count VAT -//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) +//if (!empty($conf->global->MAIN_MODULE_COMPTABILITE)) //{ // // print "
\n"; // // print nl2br($langs->trans('OptionModeTrueInfoModuleComptabilite')); @@ -179,7 +180,7 @@ foreach ($list as $key) { // Value print ''; - print ''; + print ''; print ''; } diff --git a/htdocs/admin/confexped.php b/htdocs/admin/confexped.php deleted file mode 100644 index c2ca271e5ea..00000000000 --- a/htdocs/admin/confexped.php +++ /dev/null @@ -1,146 +0,0 @@ - - * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2011-2016 Juanjo Menent ù - * Copyright (C) 2015 Claudio Aschieri - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/admin/confexped.php - * \ingroup produit - * \brief Page to setup sending module - */ - -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php'; - -// Load translation files required by the page -$langs->loadLangs(array('admin', 'sendings', 'deliveries')); - -if (!$user->admin) { - accessforbidden(); -} - -$action = GETPOST('action', 'aZ09'); - - -/* - * Actions - */ - -// Shipment note -if (!empty($conf->expedition->enabled) && empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { - // This option should always be set to on when module is on. - dolibarr_set_const($db, "MAIN_SUBMODULE_EXPEDITION", "1", 'chaine', 0, '', $conf->entity); -} -/* -if ($action == 'activate_sending') -{ - dolibarr_set_const($db, "MAIN_SUBMODULE_EXPEDITION", "1",'chaine',0,'',$conf->entity); - header("Location: confexped.php"); - exit; -} -if ($action == 'disable_sending') -{ - dolibarr_del_const($db, "MAIN_SUBMODULE_EXPEDITION",$conf->entity); - header("Location: confexped.php"); - exit; -} -*/ - -// Delivery note -if ($action == 'activate_delivery') { - dolibarr_set_const($db, "MAIN_SUBMODULE_EXPEDITION", "1", 'chaine', 0, '', $conf->entity); // We must also enable this - dolibarr_set_const($db, "MAIN_SUBMODULE_DELIVERY", "1", 'chaine', 0, '', $conf->entity); - header("Location: confexped.php"); - exit; -} elseif ($action == 'disable_delivery') { - dolibarr_del_const($db, "MAIN_SUBMODULE_DELIVERY", $conf->entity); - header("Location: confexped.php"); - exit; -} - - -/* - * View - */ - -$dir = DOL_DOCUMENT_ROOT."/core/modules/expedition/"; -$form = new Form($db); - -llxHeader("", $langs->trans("SendingsSetup")); - -$linkback = ''.$langs->trans("BackToModuleList").''; -print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); -print '
'; -$head = expedition_admin_prepare_head(); - -print dol_get_fiche_head($head, 'general', $langs->trans("Sendings"), -1, 'shipment'); - -// Miscellaneous parameters - -print ''; -print ''; -print ''; -print ''; -print ''; -print ''."\n"; - -// expedition activation/desactivation -print ""; -print ''; -print ''; -print '"; -print ''; - -// Delivery note activate/deactivate Bon de livraison activation/desactivation -print ''; -print ''; -print ''; -print '"; -print ''; -print '
'.$langs->trans("Feature").' '.$langs->trans("Status").'
'.$langs->trans("SendingsAbility").''; -print ''; -print ''.img_picto($langs->trans("Required"), 'switch_on').''; -/*if (empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) -{ - print ''.img_picto($langs->trans("Disabled"),'switch_off').''; -} -else -{ - print ''.img_picto($langs->trans("Enabled"),'switch_on').''; -}*/ -print "
'; -print $langs->trans("DeliveriesOrderAbility"); -print '
'.info_admin($langs->trans("NoNeedForDeliveryReceipts"), 0, 1); -print '
'; -print ''; - -if (empty($conf->global->MAIN_SUBMODULE_DELIVERY)) { - print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; -} else { - print ''.img_picto($langs->trans("Enabled"), 'switch_on').''; -} - -print "
'; - -print '
'; - -// End of page -llxFooter(); -$db->close(); diff --git a/htdocs/admin/const.php b/htdocs/admin/const.php index 1426c323c01..e5625b0f975 100644 --- a/htdocs/admin/const.php +++ b/htdocs/admin/const.php @@ -24,8 +24,10 @@ * \brief Admin page to define miscellaneous constants */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; // Load translation files required by the page $langs->load("admin"); @@ -185,12 +187,12 @@ print ''; print '
'; print ''; print ''; -print getTitleFieldOfList('Name', 0, $_SERVER['PHP_SELF'], 'name', '', $param, '', $sortfield, $sortorder, '')."\n"; +print getTitleFieldOfList('Name', 0, $_SERVER['PHP_SELF'], 'name', '', $param, '', $sortfield, $sortorder, '') . "\n"; print getTitleFieldOfList("Value", 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder); print getTitleFieldOfList("Comment", 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder); -print getTitleFieldOfList('DateModificationShort', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center ')."\n"; -if (!empty($conf->multicompany->enabled) && !$user->entity) { - print getTitleFieldOfList('Entity', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center ')."\n"; +print getTitleFieldOfList('DateModificationShort', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center ') . "\n"; +if (isModEnabled('multicompany') && !$user->entity) { + print getTitleFieldOfList('Entity', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center ') . "\n"; } print getTitleFieldOfList("", 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center '); print "\n"; @@ -211,16 +213,16 @@ print ''; print ''; // Limit to superadmin -if (!empty($conf->multicompany->enabled) && !$user->entity) { +if (isModEnabled('multicompany') && !$user->entity) { print ''; print '\n"; print ''; @@ -255,16 +257,18 @@ if ($result) { while ($i < $num) { $obj = $db->fetch_object($result); + $value = dolDecrypt($obj->value); + print "\n"; - print ''."\n"; + print ''."\n"; // Value print ''; // Note @@ -273,19 +277,19 @@ if ($result) { print ''; // Date last change - print ''; // Entity limit to superadmin - if (!empty($conf->multicompany->enabled) && !$user->entity) { + if (isModEnabled('multicompany') && !$user->entity) { print ''; print '
'; print ''; - print ''; + print ''; print ''; } else { print ''; - print ''; + print ''; } -print ''; +print ''; print "
'.$obj->name.'
'.dol_escape_htmltag($obj->name).''; print ''; print ''; print ''; - print ''; + print ''; print ''; + print ''; print dol_print_date($db->jdate($obj->tms), 'dayhour'); print ''; - print ''; + print ''; print ''; } else { print ''; - print ''; + print ''; } if ($conf->use_javascript_ajax) { diff --git a/htdocs/admin/contract.php b/htdocs/admin/contract.php index 0c8aba5ae2d..c5a4d1a3463 100644 --- a/htdocs/admin/contract.php +++ b/htdocs/admin/contract.php @@ -22,6 +22,7 @@ * \brief Setup page of module Contracts */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -54,10 +55,12 @@ if (empty($conf->global->CONTRACT_ADDON)) { include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; +$error=0; + if ($action == 'updateMask') { - $maskconst = GETPOST('maskconstcontract', 'alpha'); + $maskconst = GETPOST('maskconstcontract', 'aZ09'); $maskvalue = GETPOST('maskcontract', 'alpha'); - if ($maskconst) { + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } @@ -127,6 +130,8 @@ if ($action == 'updateMask') { if ($ret > 0) { $ret = addDocumentModel($value, $type, $label, $scandir); } +} elseif ($action == 'unsetdoc') { + dolibarr_del_const($db, "CONTRACT_ADDON_PDF", $conf->entity); } elseif ($action == 'setmod') { // TODO Verifier si module numerotation choisi peut etre active // par appel methode canBeActivated @@ -142,7 +147,7 @@ if ($action == 'updateMask') { $value = GETPOST('activate_hideClosedServiceByDefault', 'alpha'); $res3 = dolibarr_set_const($db, "CONTRACT_HIDE_CLOSED_SERVICES_BY_DEFAULT", $value, 'chaine', 0, '', $conf->entity); - if (!$res1 > 0 || !$res2 > 0 || !$res3 > 0) { + if (!($res1 > 0) || !($res2 > 0) || !($res3 > 0)) { $error++; } @@ -151,9 +156,45 @@ if ($action == 'updateMask') { } else { setEventMessages($langs->trans("Error"), null, 'errors'); } +} elseif ($action == "allowonlinesign") { + if (!dolibarr_set_const($db, "CONTRACT_ALLOW_ONLINESIGN", $value, 0, 'int', $conf->entity)) { + $error++; + } +} elseif (preg_match('/set_(.*)/', $action, $reg)) { + $code = $reg[1]; + $value = (GETPOST($code) ? GETPOST($code) : 1); + + $res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if ($error) { + setEventMessages($langs->trans('Error'), null, 'errors'); + } else { + setEventMessages($langs->trans('SetupSaved'), null, 'mesgs'); + header("Location: " . $_SERVER["PHP_SELF"]); + exit(); + } +} elseif (preg_match('/del_(.*)/', $action, $reg)) { + $code = $reg[1]; + $res = dolibarr_del_const($db, $code, $conf->entity); + + if (!($res > 0)) { + $error++; + } + + if ($error) { + setEventMessages($langs->trans('Error'), null, 'errors'); + } else { + setEventMessages($langs->trans('SetupSaved'), null, 'mesgs'); + header("Location: " . $_SERVER["PHP_SELF"]); + exit(); + } } + /* * View */ @@ -177,6 +218,7 @@ print dol_get_fiche_head($head, 'contract', $langs->trans("Contracts"), -1, 'con print load_fiche_titre($langs->trans("ContractsNumberingModules"), '', ''); +print '
'; print ''; print ''; print ''; @@ -270,7 +312,7 @@ foreach ($dirmodels as $reldir) { } } -print '
'.$langs->trans("Name").'

'; +print '

'; /* * Documents models for Contracts @@ -298,6 +340,7 @@ if ($resql) { } +print '
'; print ''; print ''; print ''; @@ -368,9 +411,9 @@ foreach ($dirmodels as $reldir) { // Defaut print ''; @@ -414,6 +457,7 @@ foreach ($dirmodels as $reldir) { } print '
'.$langs->trans("Name").''; if ($conf->global->CONTRACT_ADDON_PDF == $name) { - print img_picto($langs->trans("Default"), 'on'); + print 'scandir).'&label='.urlencode($module->name).'&type=order_supplier" alt="'.$langs->trans("Disable").'">'.img_picto($langs->trans("Enabled"), 'on').''; } else { - print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; + print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; } print '
'; +print '
'; print "
"; /* @@ -426,6 +470,8 @@ print ''; print ''; print load_fiche_titre($langs->trans("OtherOptions"), '', ''); + +print '
'; print ''; print ''; print ''; @@ -445,10 +491,10 @@ print $form->textwithpicto($langs->trans("FreeLegalTextOnContracts"), $langs->tr print '
'; $variablename = 'CONTRACT_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''."\n"; @@ -458,7 +504,7 @@ print ''."\n"; print ''."\n"; print ''; @@ -468,7 +514,31 @@ print $form->selectyesno("activate_hideClosedServiceByDefault", (!empty($conf->g print ''; print ''; +// Allow online signing +print ''; +print ''; +print ''; +print ''; + +// Allow external download +print ''; +print ''; +print ''; +print ''; print '
'.$langs->trans("Parameter").'
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print '
'; -print ''; +print ''; print '
'.$langs->trans("AllowOnlineSign").''; +if (getDolGlobalString('CONTRACT_ALLOW_ONLINESIGN')) { + print ''; + print img_picto($langs->trans("Activited"), 'switch_on'); + print ''; +} else { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; +} +print '
'.$langs->trans("AllowExternalDownload").''; +print ajax_constantonoff('CONTRACT_ALLOW_EXTERNAL_DOWNLOAD', array(), null, 0, 0, 0, 2, 0, 1); +print '
'; +print '
'; print $form->buttonsSaveCancel("Save", ''); diff --git a/htdocs/admin/dav.php b/htdocs/admin/dav.php index e12848e3de1..d0fd21c80a0 100644 --- a/htdocs/admin/dav.php +++ b/htdocs/admin/dav.php @@ -21,6 +21,7 @@ * \brief Page to setup DAV server */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/dav/dav.lib.php'; @@ -76,14 +77,14 @@ print ''; $head = dav_admin_prepare_head(); -print dol_get_fiche_head($head, 'webdav', '', -1, 'action'); +print dol_get_fiche_head($head, 'webdav', '', -1, ''); if ($action == 'edit') { print '
'; print ''; print ''; - print ''; + print '
'; print ''; foreach ($arrayofparameters as $key => $val) { @@ -96,7 +97,7 @@ if ($action == 'edit') { $label = $langs->trans($key); if ($key == 'DAV_RESTICT_ON_IP') { $label = $langs->trans("RESTRICT_ON_IP"); - $label .= ' '.$langs->trans("Example").': '.$langs->trans("IPListExample"); + $tooltiphelp .= ' '.$langs->trans("Example").': '.$langs->trans("IPListExample"); } print $form->textwithpicto($label, $tooltiphelp); print ''; } @@ -119,19 +120,19 @@ if ($action == 'edit') { print ''; print '
'; } else { - print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; @@ -105,7 +106,7 @@ if ($action == 'edit') { } elseif ($key == 'DAV_ALLOW_PUBLIC_DIR' || $key == 'DAV_ALLOW_ECM_DIR') { print $form->selectyesno($key, $conf->global->$key, 1); } else { - print ''; + print ''; } print '
'; + print '
'; print ''; foreach ($arrayofparameters as $key => $val) { - print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + print '
'; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); $label = $langs->trans($key); if ($key == 'DAV_RESTICT_ON_IP') { $label = $langs->trans("RESTRICT_ON_IP"); - $label .= ' '.$langs->trans("Example").': '.$langs->trans("IPListExample").''; + $tooltiphelp .= ' '.$langs->trans("Example").': '.$langs->trans("IPListExample").''; } print $form->textwithpicto($label, $tooltiphelp); - print ''; + print ''; if ($key == 'DAV_ALLOW_PRIVATE_DIR') { print $langs->trans("AlwaysActive"); } elseif ($key == 'DAV_ALLOW_PUBLIC_DIR' || $key == 'DAV_ALLOW_ECM_DIR') { @@ -185,13 +186,13 @@ $message .= ajax_autoselect('webdavpublicurl'); $message .= '
'; if (!empty($conf->global->DAV_ALLOW_PUBLIC_DIR)) { - $urlEntity = (!empty($conf->multicompany->enabled) ? '?entity='.$conf->entity : ''); - $url = ''.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.''; + $urlEntity = (isModEnabled('multicompany') ? '?entity=' . $conf->entity : ''); + $url = '' . $urlwithroot . '/dav/fileserver.php/public/' . $urlEntity . ''; - $message .= img_picto('', 'globe').' '.str_replace('{url}', $url, $langs->trans("WebDavServer", 'WebDAV public', '')); - $message .= '
'; -/* - * Autres Options - */ -print "
"; -print load_fiche_titre($langs->trans("OtherOptions"), '', ''); - -print ''; -print ''; -print ''; -print ''; -print ''; -print "\n"; - -$substitutionarray = pdf_getSubstitutionArray($langs, null, null, 2); -$substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation"); -$htmltext = ''.$langs->trans("AvailableVariables").':
'; -foreach ($substitutionarray as $key => $val) { - $htmltext .= $key.'
'; -} -$htmltext .= '
'; - -print ''; -print ''; -print ''; -print '\n"; -print ''; - -print '
'.$langs->trans("Parameter").''.$langs->trans("Value").' 
'; -print $form->textwithpicto($langs->trans("FreeLegalTextOnDeliveryReceipts"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; -$variablename = 'DELIVERY_FREE_TEXT'; -if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; -} else { - include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); - print $doleditor->Create(); -} -print '
'; -print ''; -print "
'; - // End of page llxFooter(); $db->close(); diff --git a/htdocs/admin/delivery_extrafields.php b/htdocs/admin/delivery_extrafields.php index fa1aa809944..214f209b2be 100644 --- a/htdocs/admin/delivery_extrafields.php +++ b/htdocs/admin/delivery_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of delivery */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -88,14 +89,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/deliverydet_extrafields.php b/htdocs/admin/deliverydet_extrafields.php index 6fbfbb58884..9c054f5bcfd 100644 --- a/htdocs/admin/deliverydet_extrafields.php +++ b/htdocs/admin/deliverydet_extrafields.php @@ -29,6 +29,7 @@ * \brief Page to setup extra fields of delivery */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -89,14 +90,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 5c1a356e102..abf62b51fa7 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -11,7 +11,7 @@ * Copyright (C) 2011-2022 Alexandre Spangaro * Copyright (C) 2015 Ferran Marcet * Copyright (C) 2016 Raphaël Doursenaud - * Copyright (C) 2019-2020 Frédéric France + * Copyright (C) 2019-2022 Frédéric France * Copyright (C) 2020-2022 Open-Dsi * * This program is free software; you can redistribute it and/or modify @@ -34,6 +34,7 @@ * \brief Page to administer data tables */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -54,13 +55,13 @@ $entity = GETPOST('entity', 'int'); $code = GETPOST('code', 'alpha'); $allowed = $user->admin; -if ($id == 7 && !empty($user->rights->accounting->chartofaccount)) { +if ($id == 7 && $user->hasRight('accounting', 'chartofaccount')) { $allowed = 1; // Tax page allowed to manager of chart account } -if ($id == 10 && !empty($user->rights->accounting->chartofaccount)) { +if ($id == 10 && $user->hasRight('accounting', 'chartofaccount')) { $allowed = 1; // Vat page allowed to manager of chart account } -if ($id == 17 && !empty($user->rights->accounting->chartofaccount)) { +if ($id == 17 && $user->hasRight('accounting', 'chartofaccount')) { $allowed = 1; // Dictionary with type of expense report and accounting account allowed to manager of chart account } if (!$allowed) { @@ -483,50 +484,50 @@ $tabrowid[44] = "rowid"; // Condition to show dictionary in setup page $tabcond = array(); -$tabcond[1] = (!empty($conf->societe->enabled)); +$tabcond[1] = (isModEnabled("societe")); $tabcond[2] = true; $tabcond[3] = true; $tabcond[4] = true; -$tabcond[5] = (!empty($conf->societe->enabled) || !empty($conf->adherent->enabled)); +$tabcond[5] = (isModEnabled("societe") || isModEnabled('adherent')); $tabcond[6] = isModEnabled('agenda'); -$tabcond[7] = !empty($conf->tax->enabled); -$tabcond[8] = !empty($conf->societe->enabled); +$tabcond[7] = isModEnabled('tax'); +$tabcond[8] = isModEnabled("societe"); $tabcond[9] = true; $tabcond[10] = true; -$tabcond[11] = (!empty($conf->societe->enabled)); -$tabcond[12] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || isModEnabled('facture') || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled) || !empty($conf->supplier_order->enabled)); -$tabcond[13] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || isModEnabled('facture') || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled) || !empty($conf->supplier_order->enabled)); -$tabcond[14] = (!empty($conf->product->enabled) && (!empty($conf->ecotax->enabled) || !empty($conf->global->MAIN_SHOW_ECOTAX_DICTIONNARY))); +$tabcond[11] = (isModEnabled("societe")); +$tabcond[12] = (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice") || isModEnabled("supplier_order")); +$tabcond[13] = (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice") || isModEnabled("supplier_order")); +$tabcond[14] = (isModEnabled("product") && (isModEnabled('ecotax') || !empty($conf->global->MAIN_SHOW_ECOTAX_DICTIONNARY))); $tabcond[15] = true; -$tabcond[16] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)); -$tabcond[17] = (!empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled)); -$tabcond[18] = !empty($conf->expedition->enabled) || !empty($conf->reception->enabled); -$tabcond[19] = !empty($conf->societe->enabled); -$tabcond[20] = (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled); -$tabcond[21] = !empty($conf->propal->enabled); -$tabcond[22] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled)); +$tabcond[16] = (isModEnabled("societe") && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)); +$tabcond[17] = (isModEnabled('deplacement') || isModEnabled('expensereport')); +$tabcond[18] = isModEnabled("expedition") || isModEnabled("reception"); +$tabcond[19] = isModEnabled("societe"); +$tabcond[20] = (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order"); +$tabcond[21] = isModEnabled("propal"); +$tabcond[22] = (isModEnabled('commande') || isModEnabled("propal")); $tabcond[23] = true; -$tabcond[24] = !empty($conf->resource->enabled); -$tabcond[25] = !empty($conf->website->enabled); -//$tabcond[26]= !empty($conf->product->enabled); -$tabcond[27] = !empty($conf->societe->enabled); -$tabcond[28] = !empty($conf->holiday->enabled); -$tabcond[29] = !empty($conf->projet->enabled); -$tabcond[30] = !empty($conf->label->enabled); -//$tabcond[31]= !empty($conf->accounting->enabled); -$tabcond[32] = (!empty($conf->holiday->enabled) || !empty($conf->hrm->enabled)); -$tabcond[33] = !empty($conf->hrm->enabled); -$tabcond[34] = !empty($conf->hrm->enabled); -$tabcond[35] = !empty($conf->expensereport->enabled) && !empty($conf->global->MAIN_USE_EXPENSE_IK); -$tabcond[36] = !empty($conf->expensereport->enabled) && !empty($conf->global->MAIN_USE_EXPENSE_IK); -$tabcond[37] = !empty($conf->product->enabled); -$tabcond[38] = !empty($conf->socialnetworks->enabled); -$tabcond[39] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)); -$tabcond[40] = (!empty($conf->societe->enabled) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)); -$tabcond[41] = !empty($conf->intracommreport->enabled); -$tabcond[42] = !empty($conf->product->enabled); -$tabcond[43] = !empty($conf->product->enabled) && !empty($conf->productbatch->enabled) && $conf->global->MAIN_FEATURES_LEVEL >= 2; -$tabcond[44] = !empty($conf->asset->enabled); +$tabcond[24] = isModEnabled('resource'); +$tabcond[25] = isModEnabled('website'); +//$tabcond[26]= isModEnabled("product"); +$tabcond[27] = isModEnabled("societe"); +$tabcond[28] = isModEnabled('holiday'); +$tabcond[29] = isModEnabled('project'); +$tabcond[30] = isModEnabled('label'); +//$tabcond[31]= isModEnabled('accounting'); +$tabcond[32] = (isModEnabled('holiday') || isModEnabled('hrm')); +$tabcond[33] = isModEnabled('hrm'); +$tabcond[34] = isModEnabled('hrm'); +$tabcond[35] = isModEnabled('expensereport') && !empty($conf->global->MAIN_USE_EXPENSE_IK); +$tabcond[36] = isModEnabled('expensereport') && !empty($conf->global->MAIN_USE_EXPENSE_IK); +$tabcond[37] = isModEnabled("product"); +$tabcond[38] = isModEnabled('socialnetworks'); +$tabcond[39] = (isModEnabled("societe") && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)); +$tabcond[40] = (isModEnabled("societe") && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)); +$tabcond[41] = isModEnabled('intracommreport'); +$tabcond[42] = isModEnabled("product"); +$tabcond[43] = isModEnabled("product") && isModEnabled('productbatch') && $conf->global->MAIN_FEATURES_LEVEL >= 2; +$tabcond[44] = isModEnabled('asset'); // List of help for fields (no more used, help is defined into tabcomplete) $tabhelp = array(); @@ -622,34 +623,33 @@ $sourceList = array(); if ($id == 11) { $elementList = array( '' => '', - 'societe' => $langs->trans('ThirdParty'), + 'agenda' => img_picto('', 'action', 'class="pictofixedwidth"').$langs->trans('Agenda'), + 'dolresource' => img_picto('', 'resource', 'class="pictofixedwidth"').$langs->trans('Resource'), + 'societe' => img_picto('', 'company', 'class="pictofixedwidth"').$langs->trans('ThirdParty'), // 'proposal' => $langs->trans('Proposal'), // 'order' => $langs->trans('Order'), // 'invoice' => $langs->trans('Bill'), - 'supplier_proposal' => $langs->trans('SupplierProposal'), - 'order_supplier' => $langs->trans('SupplierOrder'), - 'invoice_supplier' => $langs->trans('SupplierBill'), // 'intervention' => $langs->trans('InterventionCard'), // 'contract' => $langs->trans('Contract'), - 'project' => $langs->trans('Project'), - 'project_task' => $langs->trans('Task'), - 'ticket' => $langs->trans('Ticket'), - 'agenda' => $langs->trans('Agenda'), - 'dolresource' => $langs->trans('Resource'), - // old deprecated - 'propal' => $langs->trans('Proposal'), - 'commande' => $langs->trans('Order'), - 'facture' => $langs->trans('Bill'), - 'fichinter' => $langs->trans('InterventionCard'), - 'contrat' => $langs->trans('Contract'), + 'project' => img_picto('', 'project', 'class="pictofixedwidth"').$langs->trans('Project'), + 'project_task' => img_picto('', 'projecttask', 'class="pictofixedwidth"').$langs->trans('Task'), + 'propal' => img_picto('', 'propal', 'class="pictofixedwidth"').$langs->trans('Proposal'), + 'commande' => img_picto('', 'order', 'class="pictofixedwidth"').$langs->trans('Order'), + 'facture' => img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans('Bill'), + 'fichinter' => img_picto('', 'intervention', 'class="pictofixedwidth"').$langs->trans('InterventionCard'), + 'contrat' => img_picto('', 'contract', 'class="pictofixedwidth"').$langs->trans('Contract'), + 'ticket' => img_picto('', 'ticket', 'class="pictofixedwidth"').$langs->trans('Ticket'), + 'supplier_proposal' => img_picto('', 'supplier_proposal', 'class="pictofixedwidth"').$langs->trans('SupplierProposal'), + 'order_supplier' => img_picto('', 'supplier_order', 'class="pictofixedwidth"').$langs->trans('SupplierOrder'), + 'invoice_supplier' => img_picto('', 'supplier_invoice', 'class="pictofixedwidth"').$langs->trans('SupplierBill'), ); - if (!empty($conf->global->MAIN_SUPPORT_SHARED_CONTACT_BETWEEN_THIRDPARTIES)) { - $elementList["societe"] = $langs->trans('ThirdParty'); + if (!empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { + $elementList['conferenceorbooth'] = img_picto('', 'eventorganization', 'class="pictofixedwidth"').$langs->trans('ConferenceOrBooth'); } complete_elementList_with_modules($elementList); - asort($elementList); + //asort($elementList); $sourceList = array( 'internal' => $langs->trans('Internal'), 'external' => $langs->trans('External') @@ -843,7 +843,7 @@ if (empty($reshook)) { $_POST["accountancy_code_buy"] = ''; // If empty, we force to null } if ($id == 10 && GETPOSTISSET("code")) { // Spaces are not allowed into code for tax dictionary - $_POST["code"] = preg_replace('/[^a-zA-Z0-9\-\+]/', '', GETPOST("code")); + $_POST["code"] = preg_replace('/[^a-zA-Z0-9_\-\+]/', '', GETPOST("code")); } $tablename = $tabname[$id]; @@ -1029,10 +1029,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET active = 1 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } elseif ($code) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET active = 1 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET active = 1 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } $result = $db->query($sql); @@ -1049,10 +1052,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET active = 0 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } elseif ($code) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET active = 0 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET active = 0 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } $result = $db->query($sql); @@ -1069,10 +1075,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET favorite = 1 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET favorite = 1 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } elseif ($code) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET favorite = 1 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET favorite = 1 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } $result = $db->query($sql); @@ -1089,10 +1098,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET favorite = 0 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET favorite = 0 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } elseif ($code) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET favorite = 0 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET favorite = 0 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } $result = $db->query($sql); @@ -1109,10 +1121,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET eec = 1 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET eec = 1 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } elseif ($code) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET eec = 1 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET eec = 1 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } $result = $db->query($sql); @@ -1129,10 +1144,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET eec = 0 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET eec = 0 WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } elseif ($code) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$tabname[$id]." SET eec = 0 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET eec = 0 WHERE code = '".$db->escape(dol_escape_htmltag($code))."'".($entity != '' ? " AND entity = ".(int) $entity : ''); } $result = $db->query($sql); @@ -1141,6 +1159,8 @@ if (empty($reshook)) { } } } + + /* * View */ @@ -1202,7 +1222,6 @@ if (GETPOST('from')) { if ($action == 'delete') { print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'rowid='.urlencode($rowid).'&code='.urlencode($code).$paramwithsearch, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1); } -//var_dump($elementList); /* @@ -1222,14 +1241,16 @@ if ($id > 0) { $sql .= natural_search("code_iso", $search_code); } elseif ($search_code != '' && $id == 28) { $sql .= natural_search("h.code", $search_code); - } elseif ($search_code != '' && $id == 32) { + } elseif ($search_code != '' && ($id == 7 || $id == 32)) { $sql .= natural_search("a.code", $search_code); } elseif ($search_code != '' && $id == 3) { $sql .= natural_search("r.code_region", $search_code); - } elseif ($search_code != '' && $id == 7) { - $sql .= natural_search("a.code", $search_code); - } elseif ($search_code != '' && $id == 10) { + } elseif ($search_code != '' && ($id == 8 || $id == 10)) { $sql .= natural_search("t.code", $search_code); + } elseif ($search_code != '' && $id == 1) { + $sql .= natural_search("f.code", $search_code); + } elseif ($search_code != '' && $id == 2) { + $sql .= natural_search("d.code_departement", $search_code); } elseif ($search_code != '' && $id != 9) { $sql .= natural_search("code", $search_code); } @@ -1616,7 +1637,7 @@ if ($id > 0) { if ($showfield) { if ($value == 'country') { print ''; - print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth150 maxwidthonsmartphone'); + print $form->select_country($search_country_id, 'search_country_id', '', 28, 'minwidth100 maxwidth150 maxwidthonsmartphone'); print ''; $filterfound++; } elseif ($value == 'code') { @@ -1923,7 +1944,7 @@ if ($id > 0) { //var_dump($fieldlist); $class = ''; $showfield = 1; - $valuetoshow = empty($obj->{$value}) ? '' : $obj->{$value}; + $valuetoshow = empty($obj->$value) ? '' : $obj->$value; $titletoshow = ''; if ($value == 'entity') { @@ -1945,7 +1966,7 @@ if ($id > 0) { $valuetoshow = ($key != "Country".strtoupper($obj->country_code) ? $obj->country_code." - ".$key : $obj->country); } } elseif ($value == 'recuperableonly' || $value == 'deductible' || $value == 'category_type') { - $valuetoshow = yn($valuetoshow); + $valuetoshow = yn($valuetoshow ? 1 : 0); $class = "center"; } elseif ($value == 'type_cdr') { if (empty($valuetoshow)) { @@ -1960,80 +1981,80 @@ if ($id > 0) { $valuetoshow = price($valuetoshow); } if ($value == 'private') { - $valuetoshow = yn($elementList[$valuetoshow]); + $valuetoshow = yn($valuetoshow); } elseif ($value == 'libelle_facture') { $langs->load("bills"); $key = $langs->trans("PaymentCondition".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "PaymentCondition".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "PaymentCondition".strtoupper($obj->code) ? $key : $obj->$value); $valuetoshow = nl2br($valuetoshow); } elseif ($value == 'label' && $tabname[$id] == 'c_country') { $key = $langs->trans("Country".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "Country".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "Country".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'label' && $tabname[$id] == 'c_availability') { $langs->load("propal"); $key = $langs->trans("AvailabilityType".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "AvailabilityType".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "AvailabilityType".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_actioncomm') { $key = $langs->trans("Action".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "Action".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "Action".strtoupper($obj->code) ? $key : $obj->$value); } elseif (!empty($obj->code_iso) && $value == 'label' && $tabname[$id] == 'c_currencies') { $key = $langs->trans("Currency".strtoupper($obj->code_iso)); - $valuetoshow = ($obj->code_iso && $key != "Currency".strtoupper($obj->code_iso) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code_iso && $key != "Currency".strtoupper($obj->code_iso) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_typent') { $key = $langs->trans(strtoupper($obj->code)); - $valuetoshow = ($key != strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($key != strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_prospectlevel') { $key = $langs->trans(strtoupper($obj->code)); - $valuetoshow = ($key != strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($key != strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'label' && $tabname[$id] == 'c_civility') { $key = $langs->trans("Civility".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "Civility".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "Civility".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_type_contact') { $langs->load('agenda'); $key = $langs->trans("TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_payment_term') { $langs->load("bills"); $key = $langs->trans("PaymentConditionShort".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "PaymentConditionShort".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "PaymentConditionShort".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_paiement') { $langs->load("bills"); $key = $langs->trans("PaymentType".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "PaymentType".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "PaymentType".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'type' && $tabname[$id] == 'c_paiement') { $payment_type_list = array(0=>$langs->trans('PaymentTypeCustomer'), 1=>$langs->trans('PaymentTypeSupplier'), 2=>$langs->trans('PaymentTypeBoth')); $valuetoshow = $payment_type_list[$valuetoshow]; } elseif ($value == 'label' && $tabname[$id] == 'c_input_reason') { $key = $langs->trans("DemandReasonType".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "DemandReasonType".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "DemandReasonType".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_input_method') { $langs->load("orders"); $key = $langs->trans($obj->code); - $valuetoshow = ($obj->code && $key != $obj->code) ? $key : $obj->{$value}; + $valuetoshow = ($obj->code && $key != $obj->code) ? $key : $obj->$value; } elseif ($value == 'libelle' && $tabname[$id] == 'c_shipment_mode') { $langs->load("sendings"); $key = $langs->trans("SendingMethod".strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != "SendingMethod".strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != "SendingMethod".strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'libelle' && $tabname[$id] == 'c_paper_format') { $key = $langs->trans('PaperFormat'.strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != 'PaperFormat'.strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != 'PaperFormat'.strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'label' && $tabname[$id] == 'c_type_fees') { $langs->load('trips'); $key = $langs->trans(strtoupper($obj->code)); - $valuetoshow = ($obj->code && $key != strtoupper($obj->code) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != strtoupper($obj->code) ? $key : $obj->$value); } elseif ($value == 'region_id' || $value == 'country_id') { $showfield = 0; } elseif ($value == 'unicode') { $valuetoshow = $langs->getCurrencySymbol($obj->code, 1); } elseif ($value == 'label' && $tabname[GETPOST("id", 'int')] == 'c_units') { $langs->load("products"); - $valuetoshow = $langs->trans($obj->{$value}); + $valuetoshow = $langs->trans($obj->$value); } elseif ($value == 'short_label' && $tabname[GETPOST("id", 'int')] == 'c_units') { $langs->load("products"); - $valuetoshow = $langs->trans($obj->{$value}); + $valuetoshow = $langs->trans($obj->$value); } elseif (($value == 'unit') && ($tabname[$id] == 'c_paper_format')) { $key = $langs->trans('SizeUnit'.strtolower($obj->unit)); - $valuetoshow = ($obj->code && $key != 'SizeUnit'.strtolower($obj->unit) ? $key : $obj->{$value}); + $valuetoshow = ($obj->code && $key != 'SizeUnit'.strtolower($obj->unit) ? $key : $obj->$value); } elseif ($value == 'localtax1' || $value == 'localtax2') { $class = "center"; } elseif ($value == 'localtax1_type') { @@ -2056,7 +2077,7 @@ if ($id > 0) { } elseif (in_array($value, array('recuperableonly'))) { $class = "center"; } elseif ($value == 'accountancy_code' || $value == 'accountancy_code_sell' || $value == 'accountancy_code_buy') { - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; $tmpaccountingaccount = new AccountingAccount($db); $tmpaccountingaccount->fetch(0, $valuetoshow, 1); @@ -2066,7 +2087,7 @@ if ($id > 0) { } elseif ($value == 'fk_tva') { foreach ($form->cache_vatrates as $key => $Tab) { if ($form->cache_vatrates[$key]['rowid'] == $valuetoshow) { - $valuetoshow = $form->cache_vatrates[$key]['libtva']; + $valuetoshow = $form->cache_vatrates[$key]['label']; break; } } @@ -2090,6 +2111,8 @@ if ($id > 0) { $valuetoshow = $langs->trans($obj->{$value}); } elseif ($value == 'block_if_negative') { $valuetoshow = yn($obj->{$value}); + } elseif ($value == 'icon') { + $valuetoshow = $obj->{$value}." ".img_picto("", $obj->{$value}); } elseif ($value == 'type_duration') { $TDurationTypes = array('y'=>$langs->trans('Years'), 'm'=>$langs->trans('Month'), 'w'=>$langs->trans('Weeks'), 'd'=>$langs->trans('Days'), 'h'=>$langs->trans('Hours'), 'i'=>$langs->trans('Minutes')); $valuetoshow =$TDurationTypes[$obj->{$value}]; @@ -2105,7 +2128,7 @@ if ($id > 0) { $class .= ' right'; } if (in_array($value, array('localtax1_type', 'localtax2_type'))) { - $class .= ' nowrap'; + $class .= ' nowraponall'; } if (in_array($value, array('use_default', 'fk_parent', 'sortorder'))) { $class .= ' center'; @@ -2250,8 +2273,9 @@ if ($id > 0) { print '
'; print ''; print ''; - print ''; + print ''; print ''; + print ''; print ''; $showemptyline = ''; @@ -2262,13 +2286,13 @@ if ($id > 0) { if ($i) { if ($showemptyline) { - print ''; + print ''; $showemptyline = 0; } $value = $tabname[$i]; - print ''; - print ''; print ''; @@ -2333,7 +2357,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') foreach ($fieldlist as $field => $value) { if ($value == 'entity') { - $withentity = $obj->{$value}; + $withentity = $obj->$value; continue; } @@ -2351,7 +2375,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') } // For state page, we do not show the country input (we link to region, not country) print ''; } elseif ($value == 'country_id') { if (!in_array('country', $fieldlist)) { // If there is already a field country, we don't show country_id (avoid duplicate) @@ -2373,9 +2397,15 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print ''; - } elseif (in_array($value, array('element', 'source'))) { //Example: the type and source of the element (for contact types) + } elseif (in_array($value, array('element', 'source'))) { // Example: the type and source of the element (for contact types) + $tmparray = array(); + if ($value == 'element') { + $tmparray = $elementList; + } else { + $tmparray = $sourceList; + } print ''; } elseif (in_array($value, array('public', 'use_default'))) { // Fields 0/1 with a combo select Yes/No @@ -2457,7 +2487,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print ''; } elseif ($value == 'accountancy_code' || $value == 'accountancy_code_sell' || $value == 'accountancy_code_buy') { print '\n"; print '\n"; print '
'.$langs->trans("Dictionary").''.$langs->trans("Dictionary").'
   
'; + print '
'; if (!empty($tabcond[$i])) { $tabnamenoprefix = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabname[$i]); print ''; @@ -2286,7 +2310,7 @@ if ($id > 0) { print img_picto('Edit', 'edit', ''); print ''; print ''; + print ''; print $form->textwithpicto('', $langs->trans("Table").': '.MAIN_DB_PREFIX.$tabname[$i]); print '
'; $fieldname = 'country'; - print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : '')), $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone'); + print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : '')), $fieldname, '', 28, 'minwidth100 maxwidth150 maxwidthonsmartphone'); print ''; print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'lang'); print ''; - print $form->selectarray($value, $elementList, (!empty($obj->{$value}) ? $obj->{$value}:'')); + print $form->selectarray($value, $tmparray, (!empty($obj->{$value}) ? $obj->{$value}:''), 0, 0, 0, '', 0, 0, 0, '', 'maxwidth250'); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $fieldname = $value; $accountancy_account = (!empty($obj->$fieldname) ? $obj->$fieldname : 0); print $formaccounting->select_account($accountancy_account, '.'. $value, 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone'); diff --git a/htdocs/admin/dolistore/ajax/image.php b/htdocs/admin/dolistore/ajax/image.php index e601da43e06..6beb96a9e66 100644 --- a/htdocs/admin/dolistore/ajax/image.php +++ b/htdocs/admin/dolistore/ajax/image.php @@ -27,14 +27,17 @@ if (!defined('NOTOKENRENEWAL')) { * \ingroup admin * \brief Page des informations dolistore */ + require "../../../main.inc.php"; - -// CORE - -global $lang, $user, $conf; - - require_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/dolistore.class.php'; + + +/* + * View + */ + +top_httphead('image'); + $dolistore = new Dolistore(); $id_product = GETPOST('id_product', 'int'); @@ -51,7 +54,7 @@ try { ); //echo $url; $request = $api->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET')); - header('Content-type:image'); + print $request['response']; } catch (PrestaShopWebserviceException $e) { // Here we are dealing with errors diff --git a/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php b/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php index 521a24f490d..de6210ba531 100644 --- a/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php +++ b/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php @@ -206,7 +206,7 @@ class PrestaShopWebservice */ public function printDebug($title, $content) { - echo '
'.$title.'
'.htmlentities($content).'
'; + echo '
'.dol_escape_htmltag($title).'
'.dol_escape_htmltag($content).'
'; } /** diff --git a/htdocs/admin/ecm.php b/htdocs/admin/ecm.php index 44df7f74189..4b5ccbb133e 100644 --- a/htdocs/admin/ecm.php +++ b/htdocs/admin/ecm.php @@ -22,6 +22,8 @@ * \brief Page to setup ECM (GED) module */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -29,6 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; // Load translation files required by the page $langs->load("admin"); +$action = GETPOST('action', 'aZ09'); + if (!$user->admin) { accessforbidden(); } @@ -37,6 +41,9 @@ if (!$user->admin) { /* * Action */ + +// set +$reg = array(); if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { $code = $reg[1]; if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) { @@ -47,6 +54,7 @@ if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { } } +// delete if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { $code = $reg[1]; if (dolibarr_del_const($db, $code, $conf->entity) > 0) { @@ -62,6 +70,8 @@ if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { * View */ +$form = new Form($db); + $help_url = ''; llxHeader('', $langs->trans("ECMSetup"), $help_url); @@ -76,26 +86,21 @@ print dol_get_fiche_head($head, 'ecm', '', -1, ''); print ''; print ''; print ''; -print ''; -print ''."\n"; +print ''."\n"; print ''; -$form = new Form($db); - // Mail required for members print ''; print ''; -print ''; - -print ''; diff --git a/htdocs/admin/ecm_directories_extrafields.php b/htdocs/admin/ecm_directories_extrafields.php index ea75c5ea0fc..f820f376995 100644 --- a/htdocs/admin/ecm_directories_extrafields.php +++ b/htdocs/admin/ecm_directories_extrafields.php @@ -28,6 +28,7 @@ * \brief Page to setup extra fields of ecm */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -88,14 +89,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/ecm_files_extrafields.php b/htdocs/admin/ecm_files_extrafields.php index 41a0d714eb9..563f9f58275 100644 --- a/htdocs/admin/ecm_files_extrafields.php +++ b/htdocs/admin/ecm_files_extrafields.php @@ -28,6 +28,7 @@ * \brief Page to setup extra fields of ecm */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -88,14 +89,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php index 4f3cf10e77b..8dfafb19b63 100644 --- a/htdocs/admin/emailcollector_card.php +++ b/htdocs/admin/emailcollector_card.php @@ -22,6 +22,7 @@ * \brief Page to create/edit/view emailcollector */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; @@ -34,10 +35,20 @@ include_once DOL_DOCUMENT_ROOT.'/emailcollector/class/emailcollectorfilter.class include_once DOL_DOCUMENT_ROOT.'/emailcollector/class/emailcollectoraction.class.php'; include_once DOL_DOCUMENT_ROOT.'/emailcollector/lib/emailcollector.lib.php'; +// use Webklex\PHPIMAP; +require DOL_DOCUMENT_ROOT.'/includes/webklex/php-imap/vendor/autoload.php'; +use Webklex\PHPIMAP\ClientManager; +use Webklex\PHPIMAP\Exceptions\ConnectionFailedException; +use Webklex\PHPIMAP\Exceptions\InvalidWhereQueryCriteriaException; + + +use OAuth\Common\Storage\DoliStorage; +use OAuth\Common\Consumer\Credentials; + if (!$user->admin) { accessforbidden(); } -if (empty($conf->emailcollector->enabled)) { +if (!isModEnabled('emailcollector')) { accessforbidden(); } @@ -91,9 +102,9 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ //$isdraft = (($object->statut == MyObject::STATUS_DRAFT) ? 1 : 0); //$result = restrictedArea($user, 'mymodule', $object->id, '', '', 'fk_soc', 'rowid', $isdraft); -$permissionnote = $user->rights->emailcollector->write; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->emailcollector->write; // Used by the include of actions_dellink.inc.php -$permissiontoadd = $user->rights->emailcollector->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +$permissionnote = $user->admin; // Used by the include of actions_setnotes.inc.php +$permissiondellink = $user->admin; // Used by the include of actions_dellink.inc.php +$permissiontoadd = $user->admin; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $debuginfo = ''; @@ -135,6 +146,7 @@ if (GETPOST('addfilter', 'alpha')) { $emailcollectorfilter->rulevalue = GETPOST('rulevalue', 'alpha'); $emailcollectorfilter->fk_emailcollector = $object->id; $emailcollectorfilter->status = 1; + $result = $emailcollectorfilter->create($user); if ($result > 0) { @@ -192,7 +204,7 @@ if ($action == 'updateoperation') { $emailcollectoroperation = new EmailCollectorAction($db); $emailcollectoroperation->fetch(GETPOST('rowidoperation2', 'int')); - $emailcollectoroperation->actionparam = GETPOST('operationparam2', 'restricthtml'); + $emailcollectoroperation->actionparam = GETPOST('operationparam2', 'alphawithlgt'); if (in_array($emailcollectoroperation->type, array('loadthirdparty', 'loadandcreatethirdparty')) && empty($emailcollectoroperation->actionparam)) { @@ -224,10 +236,25 @@ if ($action == 'deleteoperation') { } } +if ($action == 'collecttest') { + dol_include_once('/emailcollector/class/emailcollector.class.php'); + + $res = $object->doCollectOneCollector(1); + if ($res > 0) { + $debuginfo = $object->debuginfo; + setEventMessages($object->lastresult, null, 'mesgs'); + } else { + $debuginfo = $object->debuginfo; + setEventMessages($object->error, null, 'errors'); + } + + $action = ''; +} + if ($action == 'confirm_collect') { dol_include_once('/emailcollector/class/emailcollector.class.php'); - $res = $object->doCollectOneCollector(); + $res = $object->doCollectOneCollector(0); if ($res > 0) { $debuginfo = $object->debuginfo; setEventMessages($object->lastresult, null, 'mesgs'); @@ -337,14 +364,12 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Confirmation of action process if ($action == 'collect') { - $formquestion = array( - 'text' => $langs->trans("EmailCollectorConfirmCollect"), - ); - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('EmailCollectorConfirmCollectTitle'), $text, 'confirm_collect', $formquestion, 0, 1, 220); + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('EmailCollectorConfirmCollectTitle'), $langs->trans('EmailCollectorConfirmCollect'), 'confirm_collect', $formquestion, 0, 1, 220); } // Call Hook formConfirm - $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid); + $parameters = array('formConfirm' => $formconfirm); $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $formconfirm .= $hookmanager->resPrint; @@ -378,33 +403,146 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $connectstringserver = $object->getConnectStringIMAP($usessl); - try { - if ($sourcedir) { - //$connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir); - $connectstringsource = $connectstringserver.$object->getEncodedUtf7($sourcedir); + if ($action == 'scan') { + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + if ($object->acces_type == 1) { + // Mode OAUth2 with PHP-IMAP + require_once DOL_DOCUMENT_ROOT.'/core/lib/oauth.lib.php'; // define $supportedoauth2array + $keyforsupportedoauth2array = $object->oauth_service; + if (preg_match('/^.*-/', $keyforsupportedoauth2array)) { + $keyforprovider = preg_replace('/^.*-/', '', $keyforsupportedoauth2array); + } else { + $keyforprovider = ''; + } + $keyforsupportedoauth2array = preg_replace('/-.*$/', '', $keyforsupportedoauth2array); + $keyforsupportedoauth2array = 'OAUTH_'.$keyforsupportedoauth2array.'_NAME'; + + $OAUTH_SERVICENAME = (empty($supportedoauth2array[$keyforsupportedoauth2array]['name']) ? 'Unknown' : $supportedoauth2array[$keyforsupportedoauth2array]['name'].($keyforprovider ? '-'.$keyforprovider : '')); + + require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; + //$debugtext = "Host: ".$this->host."
Port: ".$this->port."
Login: ".$this->login."
Password: ".$this->password."
access type: ".$this->acces_type."
oauth service: ".$this->oauth_service."
Max email per collect: ".$this->maxemailpercollect; + //dol_syslog($debugtext); + + $storage = new DoliStorage($db, $conf); + + try { + $tokenobj = $storage->retrieveAccessToken($OAUTH_SERVICENAME); + $expire = true; + // Is token expired or will token expire in the next 30 seconds + // if (is_object($tokenobj)) { + // $expire = ($tokenobj->getEndOfLife() !== -9002 && $tokenobj->getEndOfLife() !== -9001 && time() > ($tokenobj->getEndOfLife() - 30)); + // } + // Token expired so we refresh it + if (is_object($tokenobj) && $expire) { + $credentials = new Credentials( + getDolGlobalString('OAUTH_'.$object->oauth_service.'_ID'), + getDolGlobalString('OAUTH_'.$object->oauth_service.'_SECRET'), + getDolGlobalString('OAUTH_'.$object->oauth_service.'_URLAUTHORIZE') + ); + $serviceFactory = new \OAuth\ServiceFactory(); + $oauthname = explode('-', $OAUTH_SERVICENAME); + // ex service is Google-Emails we need only the first part Google + $apiService = $serviceFactory->createService($oauthname[0], $credentials, $storage, array()); + // We have to save the token because Google give it only once + $refreshtoken = $tokenobj->getRefreshToken(); + $tokenobj = $apiService->refreshAccessToken($tokenobj); + $tokenobj->setRefreshToken($refreshtoken); + $storage->storeAccessToken($OAUTH_SERVICENAME, $tokenobj); + } + $tokenobj = $storage->retrieveAccessToken($OAUTH_SERVICENAME); + if (is_object($tokenobj)) { + $token = $tokenobj->getAccessToken(); + } else { + $object->error = "Token not found"; + return -1; + } + } catch (Exception $e) { + print $e->getMessage(); + } + + $cm = new ClientManager(); + $client = $cm->make([ + 'host' => $object->host, + 'port' => $object->port, + 'encryption' => 'ssl', + 'validate_cert' => true, + 'protocol' => 'imap', + 'username' => $object->login, + 'password' => $token, + 'authentication' => "oauth", + ]); + } else { + // Mode login/pass with PHP-IMAP + $cm = new ClientManager(); + $client = $cm->make([ + 'host' => $object->host, + 'port' => $object->port, + 'encryption' => 'ssl', + 'validate_cert' => true, + 'protocol' => 'imap', + 'username' => $object->login, + 'password' => $object->password, + 'authentication' => "login", + ]); + } + try { + $client->connect(); + } catch (ConnectionFailedException $e) { + print $e->getMessage(); + } + + $f = $client->getFolders(false, $object->source_directory); + $nbemail = $f[0]->examine()["exists"]; + $morehtml .= $nbemail; + } else { + try { + if ($sourcedir) { + //$connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir); + $connectstringsource = $connectstringserver.$object->getEncodedUtf7($sourcedir); + } + if ($targetdir) { + //$connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir); + $connectstringtarget = $connectstringserver.$object->getEncodedUtf7($targetdir); + } + + $timeoutconnect = empty($conf->global->MAIN_USE_CONNECT_TIMEOUT) ? 5 : $conf->global->MAIN_USE_CONNECT_TIMEOUT; + $timeoutread = empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 20 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT; + + dol_syslog("imap_open connectstring=".$connectstringsource." login=".$object->login." password=".$object->password." timeoutconnect=".$timeoutconnect." timeoutread=".$timeoutread); + + $result1 = imap_timeout(IMAP_OPENTIMEOUT, $timeoutconnect); // timeout seems ignored with ssl connect + $result2 = imap_timeout(IMAP_READTIMEOUT, $timeoutread); + $result3 = imap_timeout(IMAP_WRITETIMEOUT, 5); + $result4 = imap_timeout(IMAP_CLOSETIMEOUT, 5); + + dol_syslog("result1=".$result1." result2=".$result2." result3=".$result3." result4=".$result4); + + $connection = imap_open($connectstringsource, $object->login, $object->password); + + //dol_syslog("end imap_open connection=".var_export($connection, true)); + } catch (Exception $e) { + print $e->getMessage(); + } + + if (!$connection) { + $morehtml .= 'Failed to open IMAP connection '.$connectstringsource; + if (function_exists('imap_last_error')) { + $morehtml .= '
'.imap_last_error(); + } + dol_syslog("Error ".$morehtml, LOG_WARNING); + //var_dump(imap_errors()) + } else { + dol_syslog("Imap connected. Now we call imap_num_msg()"); + $morehtml .= imap_num_msg($connection); + } + + if ($connection) { + dol_syslog("Imap close"); + imap_close($connection); + } } - if ($targetdir) { - //$connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir); - $connectstringtarget = $connectstringserver.$object->getEncodedUtf7($targetdir); - } - - $timeoutconnect = empty($conf->global->MAIN_USE_CONNECT_TIMEOUT) ? 5 : $conf->global->MAIN_USE_CONNECT_TIMEOUT; - $timeoutread = empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 20 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT; - - dol_syslog("imap_open connectstring=".$connectstringsource." login=".$object->login." password=".$object->password." timeoutconnect=".$timeoutconnect." timeoutread=".$timeoutread); - - $result1 = imap_timeout(IMAP_OPENTIMEOUT, $timeoutconnect); // timeout seems ignored with ssl connect - $result2 = imap_timeout(IMAP_READTIMEOUT, $timeoutread); - $result3 = imap_timeout(IMAP_WRITETIMEOUT, 5); - $result4 = imap_timeout(IMAP_CLOSETIMEOUT, 5); - - dol_syslog("result1=".$result1." result2=".$result2." result3=".$result3." result4=".$result4); - - $connection = imap_open($connectstringsource, $object->login, $object->password); - - //dol_syslog("end imap_open connection=".var_export($connection, true)); - } catch (Exception $e) { - print $e->getMessage(); + } else { + $morehtml .= ''.img_picto('', 'refresh', 'class="paddingrightonly"').$langs->trans("Refresh").''; } $morehtml .= $form->textwithpicto('', 'connect string '.$connectstringserver); @@ -412,23 +550,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtml .= 'IMAP functions not available on your PHP. '; } - if (!$connection) { - $morehtml .= 'Failed to open IMAP connection '.$connectstringsource; - if (function_exists('imap_last_error')) { - $morehtml .= '
'.imap_last_error(); - } - dol_syslog("Error ".$morehtml, LOG_WARNING); - //var_dump(imap_errors()) - } else { - dol_syslog("Imap connected. Now we call imap_num_msg()"); - $morehtml .= imap_num_msg($connection); - } - - if ($connection) { - dol_syslog("Imap close"); - imap_close($connection); - } - dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref.'
'.$morehtml.'
', '', 0, '', '', 0, ''); print '
'; @@ -545,20 +666,21 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; $arrayoftypes = array( - 'loadthirdparty'=>$langs->trans('LoadThirdPartyFromName', $langs->transnoentities("ThirdPartyName")), - 'loadandcreatethirdparty'=>$langs->trans('LoadThirdPartyFromNameOrCreate', $langs->transnoentities("ThirdPartyName")), - 'recordjoinpiece'=>'AttachJoinedDocumentsToObject', - 'recordevent'=>'RecordEvent'); + 'loadthirdparty' => $langs->trans('LoadThirdPartyFromName', $langs->transnoentities("ThirdPartyName")), + 'loadandcreatethirdparty' => $langs->trans('LoadThirdPartyFromNameOrCreate', $langs->transnoentities("ThirdPartyName")), + 'recordjoinpiece' => 'AttachJoinedDocumentsToObject', + 'recordevent' => 'RecordEvent' + ); $arrayoftypesnocondition = $arrayoftypes; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $arrayoftypes['project'] = 'CreateLeadAndThirdParty'; } $arrayoftypesnocondition['project'] = 'CreateLeadAndThirdParty'; - if (!empty($conf->ticket->enabled)) { + if (isModEnabled('ticket')) { $arrayoftypes['ticket'] = 'CreateTicketAndThirdParty'; } $arrayoftypesnocondition['ticket'] = 'CreateTicketAndThirdParty'; - if (!empty($conf->recruitment->enabled)) { + if (isModEnabled('recruitment')) { $arrayoftypes['candidature'] = 'CreateCandidature'; } $arrayoftypesnocondition['candidature'] = 'CreateCandidature'; @@ -580,11 +702,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
'; print ''; print ''; print ''; @@ -616,12 +738,12 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; // Move up/down @@ -675,9 +797,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; // Clone - print ''; + print ''; // Collect now + print ''; + if (count($object->actions) > 0) { print ''; } else { diff --git a/htdocs/admin/emailcollector_list.php b/htdocs/admin/emailcollector_list.php index 6a980642c5f..3be38cca113 100644 --- a/htdocs/admin/emailcollector_list.php +++ b/htdocs/admin/emailcollector_list.php @@ -21,6 +21,7 @@ * \brief List page for emailcollector */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; @@ -30,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -dol_include_once('/emailcollector/class/emailcollector.class.php'); +require_once DOL_DOCUMENT_ROOT.'/emailcollector/class/emailcollector.class.php'; // Load translation files required by page $langs->loadLangs(array("admin", "other")); @@ -49,7 +50,7 @@ $mode = GETPOST('mode', 'aZ'); $id = GETPOST('id', 'int'); // Load variable for pagination -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -142,7 +143,7 @@ $permissiontodelete = $user->admin; if (!$user->admin) { accessforbidden(); } -if (empty($conf->emailcollector->enabled)) { +if (!isModEnabled('emailcollector')) { accessforbidden('Module not enabled'); } diff --git a/htdocs/admin/eventorganization.php b/htdocs/admin/eventorganization.php index ee6c2ae6b52..0d10602b1c4 100644 --- a/htdocs/admin/eventorganization.php +++ b/htdocs/admin/eventorganization.php @@ -83,15 +83,13 @@ if ($cancel) { $action =''; } -if ((float) DOL_VERSION >= 6) { - include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; -} +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); + $maskconstorder = GETPOST('maskconstorder', 'aZ09'); $maskorder = GETPOST('maskorder', 'alpha'); - if ($maskconstorder) { + if ($maskconstorder && preg_match('/_MASK$/', $maskconstorder)) { $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; @@ -220,7 +218,7 @@ if ($action == 'edit') { foreach ($arrayofparameters as $constname => $val) { if ($val['enabled']==1) { $setupnotempty++; - print ''; } @@ -313,35 +300,41 @@ if ($action == 'edit') { foreach ($arrayofparameters as $constname => $val) { if ($val['enabled']==1) { $setupnotempty++; - print ''; + print ''; + print ''; + + print ''; } } diff --git a/htdocs/admin/eventorganization_confbooth_extrafields.php b/htdocs/admin/eventorganization_confbooth_extrafields.php index f17a2cf91e1..a4b14206c65 100644 --- a/htdocs/admin/eventorganization_confbooth_extrafields.php +++ b/htdocs/admin/eventorganization_confbooth_extrafields.php @@ -21,6 +21,7 @@ * \brief Page to setup extra fields of EventOrganization */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/eventorganization.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -78,14 +79,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - /* * Creation of an optional field */ diff --git a/htdocs/admin/eventorganization_confboothattendee_extrafields.php b/htdocs/admin/eventorganization_confboothattendee_extrafields.php index 552e814f8de..8830e42dd26 100644 --- a/htdocs/admin/eventorganization_confboothattendee_extrafields.php +++ b/htdocs/admin/eventorganization_confboothattendee_extrafields.php @@ -82,14 +82,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - /* * Creation of an optional field */ diff --git a/htdocs/admin/events.php b/htdocs/admin/events.php index b98f3775aad..4b4bdf18974 100644 --- a/htdocs/admin/events.php +++ b/htdocs/admin/events.php @@ -22,6 +22,7 @@ * \brief Log event setup page */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; @@ -109,11 +110,11 @@ print dol_get_fiche_head($head, 'audit', '', -1); print '
'; -print '
'.$langs->trans("Description").' '.$langs->trans("Value").''.$langs->trans("Value").'
'.$langs->trans("ECMAutoTree").' '; +print ''; if ($conf->use_javascript_ajax) { - print ajax_constantonoff('ECM_AUTO_TREE_ENABLED'); + print ajax_constantonoff('ECM_AUTO_TREE_HIDEN', null, null, 1); } else { - if (empty($conf->global->ECM_AUTO_TREE_ENABLED)) { - print ''.img_picto($langs->trans("Disabled"), 'off').''; - } elseif (!empty($conf->global->USER_MAIL_REQUIRED)) { - print ''.img_picto($langs->trans("Enabled"), 'on').''; + if (empty($conf->global->ECM_AUTO_TREE_HIDEN)) { + print ''.img_picto($langs->trans("Enabled"), 'on').''; + } else { + print ''.img_picto($langs->trans("Disabled"), 'off').''; } } print '
'; print $form->selectarray('operationtype', $arrayoftypes, '', 1, 0, 0, '', 1, 0, 0, '', 'maxwidth300', 1); print ''; - print ''; + //print ''; + $htmltext = $langs->transnoentitiesnoconv("OperationParamDesc"); + print $form->textwithpicto('', $htmltext, 1, 'help', '', 0, 2, 'operationparamtt'); print ''; - $htmltext = $langs->transnoentitiesnoconv("OperationParamDesc"); - print $form->textwithpicto('', $htmltext, 1, 'help', '', 0, 2, 'operationparamtt'); print '
'; if ($action == 'editoperation' && $ruleaction['id'] == $operationid) { - print '
'; + print '
'; print ''; print ''; print ''; } else { - print $ruleaction['actionparam']; + print dol_escape_htmltag($ruleaction['actionparam']); } print '
'; + print '
'; $tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : ''); $tooltiphelp .= (($langs->trans($constname . 'Tooltip2') && $langs->trans($constname . 'Tooltip2') != $constname . 'Tooltip2') ? '

'."\n".$langs->trans($constname . 'Tooltip2') : ''); print ''.$form->textwithpicto($langs->trans($constname), $tooltiphelp, 1, 'info', '', 0, 3, 'tootips'.$constname).''; @@ -228,14 +226,14 @@ if ($action == 'edit') { if ($val['type'] == 'textarea') { print '\n"; } elseif ($val['type']== 'html') { require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; - $doleditor = new DolEditor($constname, $conf->global->{$constname}, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%'); + $doleditor = new DolEditor($constname, getDolGlobalString($constname), '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%'); $doleditor->Create(); } elseif ($val['type'] == 'yesno') { - print $form->selectyesno($constname, $conf->global->{$constname}, 1); + print $form->selectyesno($constname, getDolGlobalString($constname), 1); } elseif (preg_match('/emailtemplate:/', $val['type'])) { include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; $formmail = new FormMail($db); @@ -255,7 +253,7 @@ if ($action == 'edit') { $arrayofmessagename[$modelmail->id] = $langs->trans(preg_replace('/\(|\)/', '', $modelmail->label)) . $moreonlabel; } } - print $form->selectarray($constname, $arrayofmessagename, $conf->global->{$constname}, 'None', 0, 0, '', 0, 0, 0, '', '', 1); + print $form->selectarray($constname, $arrayofmessagename, getDolGlobalString($constname), 'None', 0, 0, '', 0, 0, 0, '', '', 1); } elseif (preg_match('/category:/', $val['type'])) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; @@ -263,38 +261,27 @@ if ($action == 'edit') { $tmp = explode(':', $val['type']); print img_picto('', 'category', 'class="pictofixedwidth"'); - print $formother->select_categories($tmp[1], $conf->global->{$constname}, $constname, 0, $langs->trans('CustomersProspectsCategoriesShort')); + print $formother->select_categories($tmp[1], getDolGlobalString($constname), $constname, 0, $langs->trans('CustomersProspectsCategoriesShort')); } elseif (preg_match('/thirdparty_type/', $val['type'])) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; $formcompany = new FormCompany($db); - print $formcompany->selectProspectCustomerType($conf->global->{$constname}, $constname, 'customerorprospect', 'form', '', 1); + print $formcompany->selectProspectCustomerType(getDolGlobalString($constname), $constname, 'customerorprospect', 'form', '', 1); } elseif ($val['type'] == 'securekey') { - print ''; + print ''; if (!empty($conf->use_javascript_ajax)) { print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token'.$constname.'" class="linkobject"'); } - if (!empty($conf->use_javascript_ajax)) { - print "\n".''; - } + + // Add button to autosuggest a key + include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; + print dolJSToSetRandomPassword($constname, 'generate_token'.$constname); } elseif ($val['type'] == 'product') { - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { $selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname); $form->select_produits($selected, $constname, '', 0); } } else { - print ''; + print ''; } print '
'; + print '
'; $tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : ''); $tooltiphelp .= (($langs->trans($constname . 'Tooltip2') && $langs->trans($constname . 'Tooltip2') != $constname . 'Tooltip2') ? '

'."\n".$langs->trans($constname . 'Tooltip2') : ''); print $form->textwithpicto($langs->trans($constname), $tooltiphelp); print '
'; if ($val['type'] == 'textarea') { - print dol_nl2br($conf->global->{$constname}); + print dol_nl2br(getDolGlobalString($constname)); } elseif ($val['type']== 'html') { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } elseif ($val['type'] == 'yesno') { print ajax_constantonoff($constname); } elseif (preg_match('/emailtemplate:/', $val['type'])) { - if (!empty($conf->global->{$constname})) { + if (getDolGlobalString($constname)) { include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; $formmail = new FormMail($db); $tmp = explode(':', $val['type']); - - $template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, $conf->global->{$constname}); - if ($template < 0) { - setEventMessages(null, $formmail->errors, 'errors'); + $labelemailtemplate = getDolGlobalString($constname); + if ($labelemailtemplate && $labelemailtemplate != '-1') { + $template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, getDolGlobalString($constname)); + if (is_numeric($template) && $template < 0) { + setEventMessages($formmail->error, $formmail->errors, 'errors'); + } else { + if ($template->label != 'default') { + print $langs->trans($template->label); + } + } } - print $langs->trans($template->label); } } elseif (preg_match('/category:/', $val['type'])) { - if (!empty($conf->global->{$constname})) { + if (getDolGlobalString($constname)) { $c = new Categorie($db); - $result = $c->fetch($conf->global->{$constname}); + $result = $c->fetch(getDolGlobalString($constname)); if ($result < 0) { setEventMessages(null, $c->errors, 'errors'); } @@ -353,27 +346,32 @@ if ($action == 'edit') { print '
    ' . implode(' ', $toprint) . '
'; } } elseif (preg_match('/thirdparty_type/', $val['type'])) { - if ($conf->global->{$constname}==2) { + if (getDolGlobalString($constname)==2) { print $langs->trans("Prospect"); - } elseif ($conf->global->{$constname}==3) { + } elseif (getDolGlobalString($constname)==3) { print $langs->trans("ProspectCustomer"); - } elseif ($conf->global->{$constname}==1) { + } elseif (getDolGlobalString($constname)==1) { print $langs->trans("Customer"); - } elseif ($conf->global->{$constname}==0) { + } elseif (getDolGlobalString($constname)==0) { print $langs->trans("NorProspectNorCustomer"); } } elseif ($val['type'] == 'product') { $product = new Product($db); - $resprod = $product->fetch($conf->global->{$constname}); - if ($resprod > 0) { - print $product->getNomUrl(1); - } elseif ($resprod < 0) { - setEventMessages(null, $object->errors, "errors"); + $idproduct = getDolGlobalString($constname); + if ($idproduct > 0) { + $resprod = $product->fetch($idproduct); + if ($resprod > 0) { + print $product->getNomUrl(1); + } elseif ($resprod < 0) { + setEventMessages($product->error, $product->errors, "errors"); + } } } else { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } - print '
'; -print ""; -print getTitleFieldOfList("LogEvents", 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, '')."\n"; +print '
'; +print ''; +print getTitleFieldOfList("TrackableSecurityEvents", 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, '')."\n"; print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; -print "\n"; +print ''."\n"; // Loop on each event type foreach ($eventstolog as $key => $arr) { if ($arr['id']) { @@ -128,12 +129,12 @@ foreach ($eventstolog as $key => $arr) { } print '
'; -print dol_get_fiche_end(); - print '
'; print ''; print '
'; +print dol_get_fiche_end(); + print "\n"; // End of page diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index 12e0d0a6d01..1db6a9cc9d6 100644 --- a/htdocs/admin/expedition.php +++ b/htdocs/admin/expedition.php @@ -28,6 +28,7 @@ * \brief Page d'administration/configuration du module Expedition */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -61,9 +62,9 @@ if (empty($conf->global->EXPEDITION_ADDON_NUMBER)) { include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconstexpedition', 'alpha'); + $maskconst = GETPOST('maskconstexpedition', 'aZ09'); $maskvalue = GETPOST('maskexpedition', 'alpha'); - if (!empty($maskconst)) { + if (!empty($maskconst) && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } @@ -132,7 +133,7 @@ if ($action == 'updateMask') { } elseif ($action == 'del') { $ret = delDocumentModel($value, $type); if ($ret > 0) { - if ($conf->global->EXPEDITION_ADDON_PDF == "$value") { + if (getDolGlobalString('EXPEDITION_ADDON_PDF') == "$value") { dolibarr_del_const($db, 'EXPEDITION_ADDON_PDF', $conf->entity); } } @@ -231,7 +232,7 @@ foreach ($dirmodels as $reldir) { if ($conf->global->EXPEDITION_ADDON_NUMBER == "$file") { print img_picto($langs->trans("Activated"), 'switch_on'); } else { - print 'scandir).'&label='.urlencode($module->name).'">'; + print 'name).'">'; print img_picto($langs->trans("Disabled"), 'switch_off'); print ''; } @@ -367,7 +368,7 @@ foreach ($dirmodels as $reldir) { // Defaut print '
'; - if ($conf->global->EXPEDITION_ADDON_PDF == $name) { + if (getDolGlobalString('EXPEDITION_ADDON_PDF') == $name) { print img_picto($langs->trans("Default"), 'on'); } else { print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; @@ -441,17 +442,17 @@ print '
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnShippings"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'SHIPPING_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print "
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; -print ''; +print ''; print "
'; diff --git a/htdocs/admin/expedition_extrafields.php b/htdocs/admin/expedition_extrafields.php index 948efb6188a..303b0f88167 100644 --- a/htdocs/admin/expedition_extrafields.php +++ b/htdocs/admin/expedition_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of expedition */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -88,13 +89,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/expeditiondet_extrafields.php b/htdocs/admin/expeditiondet_extrafields.php index 41fba691b7f..56a023e1c83 100644 --- a/htdocs/admin/expeditiondet_extrafields.php +++ b/htdocs/admin/expeditiondet_extrafields.php @@ -29,6 +29,7 @@ * \brief Page to setup extra fields of expedition */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -89,14 +90,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php index fc63940f0b8..25bef9fde22 100644 --- a/htdocs/admin/expensereport.php +++ b/htdocs/admin/expensereport.php @@ -6,7 +6,7 @@ * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2011-2013 Juanjo Menent - * Copyright (C) 2011-2018 Philippe Grand + * Copyright (C) 2011-2022 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,6 +28,7 @@ * \brief Setup page of module ExpenseReport */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -57,9 +58,9 @@ $type = 'expensereport'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconst', 'alpha'); + $maskconst = GETPOST('maskconst', 'aZ09'); $maskvalue = GETPOST('maskvalue', 'alpha'); - if ($maskconst) { + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } @@ -148,7 +149,7 @@ if ($action == 'updateMask') { $res2 = dolibarr_set_const($db, "EXPENSEREPORT_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); $res3 = 0; - if (!empty($conf->projet->enabled) && GETPOSTISSET('EXPENSEREPORT_PROJECT_IS_REQUIRED')) { // Option may not be provided + if (isModEnabled('project') && GETPOSTISSET('EXPENSEREPORT_PROJECT_IS_REQUIRED')) { // Option may not be provided $res3 = dolibarr_set_const($db, 'EXPENSEREPORT_PROJECT_IS_REQUIRED', GETPOST('EXPENSEREPORT_PROJECT_IS_REQUIRED', 'int'), 'chaine', 0, '', $conf->entity); } @@ -456,10 +457,10 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnExpenseReports"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'EXPENSEREPORT_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''."\n"; @@ -468,10 +469,10 @@ print ''."\n"; print ''; print $form->textwithpicto($langs->trans("WatermarkOnDraftExpenseReports"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; -print ''; +print ''; print ''."\n"; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { print ''; print $langs->trans('ProjectIsRequiredOnExpenseReports'); print ''; diff --git a/htdocs/admin/expensereport_extrafields.php b/htdocs/admin/expensereport_extrafields.php index 54ce5a9ffea..69f6bf14d61 100644 --- a/htdocs/admin/expensereport_extrafields.php +++ b/htdocs/admin/expensereport_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of expensereport */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -82,15 +83,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/expensereport_ik.php b/htdocs/admin/expensereport_ik.php index 10b14f8ee99..b26cefba580 100644 --- a/htdocs/admin/expensereport_ik.php +++ b/htdocs/admin/expensereport_ik.php @@ -24,6 +24,7 @@ * \brief Page to display expense tax ik */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; diff --git a/htdocs/admin/expensereport_rules.php b/htdocs/admin/expensereport_rules.php index 7c27ee6e408..1ad9cc67e7d 100644 --- a/htdocs/admin/expensereport_rules.php +++ b/htdocs/admin/expensereport_rules.php @@ -25,6 +25,7 @@ * \brief Page to display expense tax ik */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; diff --git a/htdocs/admin/export.php b/htdocs/admin/export.php index 0addfcf38f7..3aba8fa8192 100644 --- a/htdocs/admin/export.php +++ b/htdocs/admin/export.php @@ -28,6 +28,7 @@ * \brief config Page module Export */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; diff --git a/htdocs/admin/external_rss.php b/htdocs/admin/external_rss.php index d0f08783e22..d46f1897b71 100644 --- a/htdocs/admin/external_rss.php +++ b/htdocs/admin/external_rss.php @@ -28,6 +28,7 @@ * \brief Page to setupe module ExternalRss */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/rssparser.class.php'; diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index 599aac27c3f..a364b17cc4b 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -6,6 +6,7 @@ * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2012-2013 Juanjo Menent * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> + * Copyright (C) 2022 Anthony Berton * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,6 +28,7 @@ * \brief Page to setup invoice module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -56,24 +58,24 @@ $type = 'invoice'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstinvoice = GETPOST('maskconstinvoice', 'alpha'); - $maskconstreplacement = GETPOST('maskconstreplacement', 'alpha'); - $maskconstcredit = GETPOST('maskconstcredit', 'alpha'); - $maskconstdeposit = GETPOST('maskconstdeposit', 'alpha'); + $maskconstinvoice = GETPOST('maskconstinvoice', 'aZ09'); + $maskconstreplacement = GETPOST('maskconstreplacement', 'aZ09'); + $maskconstcredit = GETPOST('maskconstcredit', 'aZ09'); + $maskconstdeposit = GETPOST('maskconstdeposit', 'aZ09'); $maskinvoice = GETPOST('maskinvoice', 'alpha'); $maskreplacement = GETPOST('maskreplacement', 'alpha'); $maskcredit = GETPOST('maskcredit', 'alpha'); $maskdeposit = GETPOST('maskdeposit', 'alpha'); - if ($maskconstinvoice) { + if ($maskconstinvoice && preg_match('/_MASK_/', $maskconstinvoice)) { $res = dolibarr_set_const($db, $maskconstinvoice, $maskinvoice, 'chaine', 0, '', $conf->entity); } - if ($maskconstreplacement) { + if ($maskconstreplacement && preg_match('/_MASK_/', $maskconstreplacement)) { $res = dolibarr_set_const($db, $maskconstreplacement, $maskreplacement, 'chaine', 0, '', $conf->entity); } - if ($maskconstcredit) { + if ($maskconstcredit && preg_match('/_MASK_/', $maskconstcredit)) { $res = dolibarr_set_const($db, $maskconstcredit, $maskcredit, 'chaine', 0, '', $conf->entity); } - if ($maskconstdeposit) { + if ($maskconstdeposit && preg_match('/_MASK_/', $maskconstdeposit)) { $res = dolibarr_set_const($db, $maskconstdeposit, $maskdeposit, 'chaine', 0, '', $conf->entity); } @@ -231,6 +233,37 @@ if ($action == 'updateMask') { if (!($res > 0)) { $error++; } +} elseif (preg_match('/set_(.*)/', $action, $reg)) { + $code = $reg[1]; + $value = (GETPOST($code) ? GETPOST($code) : 1); + + $res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if ($error) { + setEventMessages($langs->trans('Error'), null, 'errors'); + } else { + setEventMessages($langs->trans('SetupSaved'), null, 'mesgs'); + header("Location: " . $_SERVER["PHP_SELF"]); + exit(); + } +} elseif (preg_match('/del_(.*)/', $action, $reg)) { + $code = $reg[1]; + $res = dolibarr_del_const($db, $code, $conf->entity); + + if (!($res > 0)) { + $error++; + } + + if ($error) { + setEventMessages($langs->trans('Error'), null, 'errors'); + } else { + setEventMessages($langs->trans('SetupSaved'), null, 'mesgs'); + header("Location: " . $_SERVER["PHP_SELF"]); + exit(); + } } @@ -637,7 +670,7 @@ print "\n"; print ''; print "".$langs->trans("SuggestPaymentByRIBOnAccount").""; print ""; -if (!empty($conf->banque->enabled)) { +if (isModEnabled('banque')) { $sql = "SELECT rowid, label"; $sql .= " FROM ".MAIN_DB_PREFIX."bank_account"; $sql .= " WHERE clos = 0"; @@ -710,7 +743,7 @@ print load_fiche_titre($langs->trans("OtherOptions"), '', ''); print '
'; print ''; print ''; -print ''; +print ''; print ''; print ''; print "\n"; @@ -722,7 +755,7 @@ print ''; print '\n"; @@ -743,10 +776,10 @@ print ''; -print '\n"; @@ -770,20 +803,15 @@ print ''; print ''; -print ''; - print ''; + +// Allow external download +print ''; +print ''; +print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Parameters").''.$langs->trans("Value").' 
'; print $langs->trans("ForceInvoiceDate"); print ''; -print $form->selectyesno("forcedate", $conf->global->FAC_FORCE_DATE_VALIDATION, 1); +print $form->selectyesno("forcedate", getDolGlobalInt('FAC_FORCE_DATE_VALIDATION', 0), 1); print ''; print ''; print "
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'INVOICE_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print '
'; @@ -761,7 +794,7 @@ print ' print '
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftBill"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print '
'; +print ''; print ''; print ''; print "
'.$langs->trans("InvoiceCheckPosteriorDate"). ' ' ; print $form->textwithpicto('', $langs->trans("InvoiceCheckPosteriorDateHelp"), 1, 'help') . ''; -if ($conf->use_javascript_ajax) { - print ajax_constantonoff('INVOICE_CHECK_POSTERIOR_DATE'); -} else { - print '
'; - print ''; - print ''; - $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("INVOICE_CHECK_POSTERIOR_DATE", $arrval, $conf->global->INVOICE_CHECK_POSTERIOR_DATE); - print '
'; - print ''; - print ''; -} +print ''; +print ajax_constantonoff('INVOICE_CHECK_POSTERIOR_DATE'); +print '
'.$langs->trans("AllowExternalDownload").''; +print ajax_constantonoff('INVOICE_ALLOW_EXTERNAL_DOWNLOAD', array(), null, 0, 0, 0, 2, 0, 1); print '
'; diff --git a/htdocs/admin/facture_situation.php b/htdocs/admin/facture_situation.php index 609a6605d1a..dfc145e72b0 100644 --- a/htdocs/admin/facture_situation.php +++ b/htdocs/admin/facture_situation.php @@ -27,6 +27,7 @@ * \brief Page to setup invoice module */ +// Load Dolibarr environment require '../main.inc.php'; // Libraries @@ -130,12 +131,9 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); -llxHeader( - "", - $langs->trans("BillsSetup"), - 'EN:Invoice_Configuration|FR:Configuration_module_facture|ES:ConfiguracionFactura' -); +$help_yrl = 'EN:Invoice_Configuration|FR:Configuration_module_facture|ES:ConfiguracionFactura'; +llxHeader("", $langs->trans("BillsSetup"), $help_url); $linkback = ''.$langs->trans("BackToModuleList").''; diff --git a/htdocs/admin/fckeditor.php b/htdocs/admin/fckeditor.php index 3ea92bb48ad..b6ce3d8b9a5 100644 --- a/htdocs/admin/fckeditor.php +++ b/htdocs/admin/fckeditor.php @@ -24,6 +24,7 @@ * \brief Activation page for the FCKeditor module in the other modules */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/doleditor.lib.php'; @@ -50,7 +51,7 @@ $modules = array( 'NOTE_PUBLIC' => 'FCKeditorForNotePublic', 'NOTE_PRIVATE' => 'FCKeditorForNotePrivate', 'SOCIETE' => 'FCKeditorForCompany', - 'PRODUCTDESC' => 'FCKeditorForProduct', + //'PRODUCTDESC' => 'FCKeditorForProduct', 'DETAILS' => 'FCKeditorForProductDetails', 'USERSIGN' => 'FCKeditorForUserSignature', 'MAILING' => 'FCKeditorForMailing', @@ -62,12 +63,12 @@ $conditions = array( 'NOTE_PUBLIC' => 1, 'NOTE_PRIVATE' => 1, 'SOCIETE' => 1, - 'PRODUCTDESC' => (!empty($conf->product->enabled) || !empty($conf->service->enabled)), - 'DETAILS' => (isModEnabled('facture') || !empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->supplier_proposal->enabled) || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)), + 'PRODUCTDESC' => (isModEnabled("product") || isModEnabled("service")), + 'DETAILS' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande') || isModEnabled('supplier_proposal') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")), 'USERSIGN' => 1, - 'MAILING' => !empty($conf->mailing->enabled), - 'MAIL' => (isModEnabled('facture') || !empty($conf->propal->enabled) || !empty($conf->commande->enabled)), - 'TICKET' => !empty($conf->ticket->enabled), + 'MAILING' => isModEnabled('mailing'), + 'MAIL' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande')), + 'TICKET' => isModEnabled('ticket'), ); // Picto $picto = array( @@ -92,14 +93,14 @@ foreach ($modules as $const => $desc) { if ($action == 'enable_'.strtolower($const)) { dolibarr_set_const($db, "FCKEDITOR_ENABLE_".$const, "1", 'chaine', 0, '', $conf->entity); // If fckeditor is active in the product/service description, it is activated in the forms - if ($const == 'PRODUCTDESC' && !empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if ($const == 'PRODUCTDESC' && getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { dolibarr_set_const($db, "FCKEDITOR_ENABLE_DETAILS", "1", 'chaine', 0, '', $conf->entity); } header("Location: ".$_SERVER["PHP_SELF"]); exit; } if ($action == 'disable_'.strtolower($const)) { - dolibarr_del_const($db, "FCKEDITOR_ENABLE_".$const, $conf->entity); + dolibarr_set_const($db, "FCKEDITOR_ENABLE_".$const, "0", 'chaine', 0, '', $conf->entity); header("Location: ".$_SERVER["PHP_SELF"]); exit; } @@ -165,8 +166,13 @@ if (empty($conf->use_javascript_ajax)) { print ''."\n"; print ''; print ''.img_object("", $picto[$const]).''; - print ''.$langs->trans($desc).''; - print ''; + print ''; + print $langs->trans($desc); + if ($const == 'DETAILS') { + print '
'.$langs->trans("FCKeditorForProductDetails2").''; + } + print ''; + print ''; $value = (isset($conf->global->$constante) ? $conf->global->$constante : 0); if ($value == 0) { print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; @@ -184,6 +190,7 @@ if (empty($conf->use_javascript_ajax)) { print '
'."\n"; print ''; + print ''; // Skins show_skin(null, 1); @@ -218,7 +225,7 @@ if (empty($conf->use_javascript_ajax)) { print $conf->global->FCKEDITOR_TEST; print '
'; } - print $form->buttonsSaveCancel("Save", ''); + print $form->buttonsSaveCancel("Save", '', null, 0, 'reposition'); print '
'; print ''."\n"; diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php index c95f354a189..2e331b3cc80 100644 --- a/htdocs/admin/fichinter.php +++ b/htdocs/admin/fichinter.php @@ -28,6 +28,7 @@ * \brief Setup page of module Interventions */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -57,9 +58,9 @@ $type = 'ficheinter'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconst', 'alpha'); + $maskconst = GETPOST('maskconst', 'aZ09'); $maskvalue = GETPOST('maskvalue', 'alpha'); - if ($maskconst) { + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } @@ -207,6 +208,32 @@ if ($action == 'updateMask') { $error++; } + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'errors'); + } +} elseif ($action == "set_FICHINTER_ALLOW_ONLINE_SIGN") { + $val = GETPOST('FICHINTER_ALLOW_ONLINE_SIGN', 'alpha'); + $res = dolibarr_set_const($db, "FICHINTER_ALLOW_ONLINE_SIGN", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); + + if (!($res > 0)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'errors'); + } +} elseif ($action == "set_FICHINTER_ALLOW_EXTERNAL_DOWNLOAD") { + $val = GETPOST('FICHINTER_ALLOW_EXTERNAL_DOWNLOAD', 'alpha'); + $res = dolibarr_set_const($db, "FICHINTER_ALLOW_EXTERNAL_DOWNLOAD", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); + + if (!($res > 0)) { + $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -507,10 +534,10 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnInterventions"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'FICHINTER_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''; @@ -525,7 +552,7 @@ print "'; print $form->textwithpicto($langs->trans("WatermarkOnDraftInterventionCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print ''; -print ''; +print ''; print ''; print ''; print "\n"; @@ -537,7 +564,7 @@ print '' print ''; print $langs->trans("PrintProductsOnFichinter").' ('.$langs->trans("PrintProductsOnFichinterDetails").')'; print 'global->FICHINTER_PRINT_PRODUCTS) { +if (getDolGlobalString("FICHINTER_PRINT_PRODUCTS")) { print 'checked '; } print '/>'; @@ -554,7 +581,7 @@ print ''; print $langs->trans("UseServicesDurationOnFichinter"); print ''; print ''; -print 'global->FICHINTER_USE_SERVICE_DURATION ? ' checked' : '').'>'; +print ''; print ''; print ''; print ''; @@ -570,7 +597,7 @@ print ''; print $langs->trans("UseDurationOnFichinter"); print ''; print ''; -print 'global->FICHINTER_WITHOUT_DURATION ? ' checked' : '').'>'; +print ''; print ''; print ''; print ''; @@ -586,13 +613,46 @@ print ''; print $langs->trans("UseDateWithoutHourOnFichinter"); print ''; print ''; -print 'global->FICHINTER_DATE_WITHOUT_HOUR ? ' checked' : '').'>'; +print ''; print ''; print ''; print ''; print ''; print ''; print ''; +// Allow online signing +print '
'; +print ''; +print ''; +print ''; +print ''; +print $langs->trans("AllowOnlineSign"); +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print '
'; +// Allow external download +print '
'; +print ''; +print ''; +print ''; +print ''; +print $langs->trans("AllowExternalDownload"); +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print '
'; + print ''; print '
'; diff --git a/htdocs/admin/geoipmaxmind.php b/htdocs/admin/geoipmaxmind.php index e662c0576a2..8f76f9a7b2b 100644 --- a/htdocs/admin/geoipmaxmind.php +++ b/htdocs/admin/geoipmaxmind.php @@ -22,6 +22,7 @@ * \brief Setup page for geoipmaxmind module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -52,27 +53,20 @@ if ($action == 'set') { $error++; } - if (!$error && $gimcdf && !file_exists($gimcdf)) { - setEventMessages($langs->trans("ErrorFileNotFound", $gimcdf), null, 'errors'); + $res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity); + if (!($res1 > 0)) { + $error++; + } + + $res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity); + if (!($res2 > 0)) { $error++; } if (!$error) { - $res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity); - if (!$res1 > 0) { - $error++; - } - - $res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity); - if (!$res2 > 0) { - $error++; - } - - if (!$error) { - setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); - } else { - setEventMessages($langs->trans("Error"), null, 'errors'); - } + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + //setEventMessages($langs->trans("Error"), null, 'errors'); } } @@ -111,8 +105,8 @@ print '\n"; // Lib version -print ''.$langs->trans("GeoIPLibVersion").''; -print ''; +print ''.$langs->trans("GeoIPLibVersion").''; +print ''; $arrayofvalues = array('php' => 'Native PHP functions', '1' => 'Embedded GeoIP v1', '2' => 'Embedded GeoIP v2'); print $form->selectarray('geoipversion', $arrayofvalues, (isset($conf->global->GEOIP_VERSION) ? $conf->global->GEOIP_VERSION : '2')); if ($conf->global->GEOIP_VERSION == 'php') { @@ -123,16 +117,29 @@ if ($conf->global->GEOIP_VERSION == 'php') { print '
'.$langs->trans("Version").': '.$version; } } +print ''; +print ''; print ''; +$gimcdf = getDolGlobalString('GEOIPMAXMIND_COUNTRY_DATAFILE'); + // Path to database file print ''.$langs->trans("PathToGeoIPMaxmindCountryDataFile").''; -print ''; - +print ''; if ($conf->global->GEOIP_VERSION == 'php') { print 'Using geoip PHP internal functions. Value must be '.geoip_db_filename(GEOIP_COUNTRY_EDITION).' or '.geoip_db_filename(GEOIP_CITY_EDITION_REV1).' or /pathtodatafile/GeoLite2-Country.mmdb
'; } -print ''; +print ''; +if (!file_exists($gimcdf)) { + print '
'.$langs->trans("ErrorFileNotFound", $gimcdf).'
'; +} +print ''; +print ''; +print $langs->trans("Example").'
'; +print '/usr/local/share/GeoIP/GeoIP.dat
+/usr/share/GeoIP/GeoIP.dat
+/usr/share/GeoIP/GeoLite2-Country.mmdb'; +print '
'; print ''; print ''; @@ -144,12 +151,16 @@ print '
'; print $langs->trans("NoteOnPathLocation").'
'; $url1 = 'http://www.maxmind.com/en/city?rId=awstats'; -print $langs->trans("YouCanDownloadFreeDatFileTo", ''.$url1.''); +$textoshow = $langs->trans("YouCanDownloadFreeDatFileTo", '{s1}'); +$textoshow = str_replace('{s1}', ''.$url1.'', $textoshow); +print $textoshow; print '
'; $url2 = 'http://www.maxmind.com/en/city?rId=awstats'; -print $langs->trans("YouCanDownloadAdvancedDatFileTo", ''.$url2.''); +$textoshow = $langs->trans("YouCanDownloadAdvancedDatFileTo", '{s1}'); +$textoshow = str_replace('{s1}', ''.$url2.'', $textoshow); +print $textoshow; if ($geoip) { print '

'; diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php index 7b0aa577a87..b85e257c69e 100644 --- a/htdocs/admin/holiday.php +++ b/htdocs/admin/holiday.php @@ -24,6 +24,7 @@ * \brief Setup page of module Contracts */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -57,9 +58,9 @@ if (empty($conf->global->HOLIDAY_ADDON)) { include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconstholiday', 'alpha'); + $maskconst = GETPOST('maskconstholiday', 'aZ09'); $maskvalue = GETPOST('maskholiday', 'alpha'); - if ($maskconst) { + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } @@ -141,7 +142,7 @@ if ($action == 'updateMask') { $draft = GETPOST('HOLIDAY_DRAFT_WATERMARK', 'alpha'); $res2 = dolibarr_set_const($db, "HOLIDAY_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res1 > 0 || !$res2 > 0) { + if (!($res1 > 0) || !($res2 > 0)) { $error++; } @@ -538,10 +539,10 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { print '
'; $variablename = 'HOLIDAY_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''."\n"; @@ -551,7 +552,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { print ''; print $form->textwithpicto($langs->trans("WatermarkOnDraftHolidayCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print ''; - print ''; + print ''; print ''."\n"; } diff --git a/htdocs/admin/holiday_extrafields.php b/htdocs/admin/holiday_extrafields.php index 0ef1998d9e7..21fce3d62d6 100644 --- a/htdocs/admin/holiday_extrafields.php +++ b/htdocs/admin/holiday_extrafields.php @@ -17,7 +17,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of holiday */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -82,14 +83,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/hrm.php b/htdocs/admin/hrm.php index f5bbb5c648f..14d6e8b175f 100644 --- a/htdocs/admin/hrm.php +++ b/htdocs/admin/hrm.php @@ -53,11 +53,11 @@ $label = GETPOST('label', 'alpha'); $modulepart = GETPOST('modulepart', 'aZ09'); // Used by actions_setmoduleoptions.inc.php $scandir = GETPOST('scan_dir', 'alpha'); -$type = 'myobject'; +$type = 'evaluation'; $arrayofparameters = array( 'HRM_MAXRANK'=>array('type'=>'integer','enabled'=>1), - 'HRM_DEFAULT_SKILL_DESCRIPTION'=>array('type'=>'textarea','enabled'=>1), + 'HRM_DEFAULT_SKILL_DESCRIPTION'=>array('type'=>'varchar','enabled'=>1), ); $error = 0; @@ -70,9 +70,7 @@ $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); * Actions */ -if ((float) DOL_VERSION >= 6) { - include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; -} +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'update') { $max_rank = GETPOST('HRM_MAXRANK', 'int'); @@ -91,11 +89,11 @@ if ($action == 'update') { } } } elseif ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); - $maskorder = GETPOST('maskorder', 'alpha'); + $maskconst = GETPOST('maskconstEvaluation', 'aZ09'); + $maskvalue = GETPOST('maskEvaluation', 'alpha'); - if ($maskconstorder) { - $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { + $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; } @@ -210,10 +208,10 @@ print dol_get_fiche_head($head, 'settings', $langs->trans($page_name), -1, "hrm" $moduledir = 'hrm'; $myTmpObjects = array(); -$myTmpObjects['evaluation'] = array('includerefgeneration'=>1, 'includedocgeneration'=>0); +$myTmpObjects['evaluation'] = array('label'=>'Evaluation', 'includerefgeneration'=>1, 'includedocgeneration'=>0); foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { - if ($myTmpObjectKey == 'MyObject') { + if ($myTmpObjectKey != $type) { continue; } if ($myTmpObjectArray['includerefgeneration']) { @@ -222,7 +220,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { */ $setupnotempty++; - print load_fiche_titre($langs->trans("NumberingModules", $myTmpObjectKey), '', ''); + print load_fiche_titre($langs->trans("NumberingModules").' ('.$myTmpObjectArray['label'].')', '', ''); print ''; print ''; @@ -492,17 +490,17 @@ if ($action == 'edit') { print ''; } @@ -588,9 +575,9 @@ if ($action == 'edit') { print ''; } diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index d3afd4035e4..1026ea12442 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -26,6 +26,7 @@ * \brief Page to setup GUI display options */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -104,6 +105,16 @@ if ($action == 'update') { dolibarr_set_const($db, "MAIN_THEME", GETPOST("main_theme", 'aZ09'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", getDolGlobalInt('MAIN_IHM_PARAMS_REV') + 1, 'chaine', 0, '', $conf->entity); + if (GETPOSTISSET('THEME_DARKMODEENABLED')) { + $val = GETPOST('THEME_DARKMODEENABLED'); + if (!$val) { + dolibarr_del_const($db, "THEME_DARKMODEENABLED", $conf->entity); + } + if ($val) { + dolibarr_set_const($db, "THEME_DARKMODEENABLED", $val, 'chaine', 0, '', $conf->entity); + } + } + if (GETPOSTISSET('THEME_TOPMENU_DISABLE_IMAGE')) { $val=GETPOST('THEME_TOPMENU_DISABLE_IMAGE'); if (!$val) { @@ -375,6 +386,20 @@ if ($mode == 'other') { print ''; print ''; + // Show Quick Add link + print ''; + print ''; + + // Hide wiki link on login page + $pictohelp = ''; + print ''; + print ''; + // Max size of lists print ''; print ''; @@ -439,12 +464,6 @@ if ($mode == 'other') { print ''; */ - // Show Quick Add link - print ''; - print ''; - // Show bugtrack link print ''; print ''; - // Hide wiki link on login page - $pictohelp = ''; - print ''; - print ''; - // Disable javascript and ajax print ''; } diff --git a/htdocs/admin/knowledgerecord_extrafields.php b/htdocs/admin/knowledgerecord_extrafields.php index 62580d585c3..13c628be99b 100644 --- a/htdocs/admin/knowledgerecord_extrafields.php +++ b/htdocs/admin/knowledgerecord_extrafields.php @@ -85,14 +85,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - /* * Creation of an optional field */ diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php index ef488943a4b..f5096960b8b 100644 --- a/htdocs/admin/ldap.php +++ b/htdocs/admin/ldap.php @@ -26,6 +26,7 @@ * \brief Page to setup module LDAP */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php'; @@ -138,7 +139,7 @@ $formldap = new FormLdap($db); print ''; print ''; -print dol_get_fiche_head($head, 'ldap', $langs->trans("LDAPSetup"), -1); +print dol_get_fiche_head($head, 'ldap', '', -1); print '
'; if ($val['type'] == 'textarea') { - print '\n"; - } elseif ($val['type']== 'integer') { - print '' . "\n"; - } elseif ($val['type']== 'html') { + } elseif ($val['type'] == 'integer') { + print '' . "\n"; + } elseif ($val['type'] == 'html') { require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; - $doleditor = new DolEditor($constname, $conf->global->{$constname}, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%'); + $doleditor = new DolEditor($constname, getDolGlobalString($constname), '', 160, 'dolibarr_notes', '', false, false, isModEnabled('fckeditor'), ROWS_5, '90%'); $doleditor->Create(); } elseif ($val['type'] == 'yesno') { - print $form->selectyesno($constname, $conf->global->{$constname}, 1); + print $form->selectyesno($constname, getDolGlobalString($constname), 1); } elseif (preg_match('/emailtemplate:/', $val['type'])) { include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; $formmail = new FormMail($db); @@ -532,36 +530,25 @@ if ($action == 'edit') { print img_picto('', 'category', 'class="pictofixedwidth"'); print $formother->select_categories($tmp[1], $conf->global->{$constname}, $constname, 0, $langs->trans('CustomersProspectsCategoriesShort')); } elseif (preg_match('/thirdparty_type/', $val['type'])) { - require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; + require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php'; $formcompany = new FormCompany($db); print $formcompany->selectProspectCustomerType($conf->global->{$constname}, $constname); } elseif ($val['type'] == 'securekey') { - print ''; + print ''; if (!empty($conf->use_javascript_ajax)) { - print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token'.$constname.'" class="linkobject"'); - } - if (!empty($conf->use_javascript_ajax)) { - print "\n".''; + print ' ' . img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token' . $constname . '" class="linkobject"'); } + + // Add button to autosuggest a key + include_once DOL_DOCUMENT_ROOT . '/core/lib/security2.lib.php'; + print dolJSToSetRandomPassword($constname, 'generate_token' . $constname); } elseif ($val['type'] == 'product') { - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled('product') || isModEnabled('service')) { $selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname); $form->select_produits($selected, $constname, '', 0); } } else { - print ''; + print ''; } print '
'; if ($val['type'] == 'textarea') { - print dol_nl2br($conf->global->{$constname}); + print dol_nl2br(getDolGlobalString($constname)); } elseif ($val['type']== 'html') { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } elseif ($val['type'] == 'yesno') { print ajax_constantonoff($constname); } elseif (preg_match('/emailtemplate:/', $val['type'])) { @@ -599,14 +586,14 @@ if ($action == 'edit') { $tmp = explode(':', $val['type']); - $template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, $conf->global->{$constname}); + $template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, getDolGlobalString($constname)); if ($template<0) { setEventMessages(null, $formmail->errors, 'errors'); } print $langs->trans($template->label); } elseif (preg_match('/category:/', $val['type'])) { $c = new Categorie($db); - $result = $c->fetch($conf->global->{$constname}); + $result = $c->fetch(getDolGlobalString($constname)); if ($result < 0) { setEventMessages(null, $c->errors, 'errors'); } @@ -635,7 +622,7 @@ if ($action == 'edit') { setEventMessages(null, $object->errors, "errors"); } } else { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } print '
' . $langs->trans("ShowQuickAddLink") . ''; + print ajax_constantonoff("MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); + print '
' . str_replace('{picto}', $pictohelp, $langs->trans("DisableLinkToHelp", '{picto}')) . ''; + print ajax_constantonoff("MAIN_HELP_DISABLELINK", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); + //print $form->selectyesno('MAIN_HELP_DISABLELINK', isset($conf->global->MAIN_HELP_DISABLELINK) ? $conf->global->MAIN_HELP_DISABLELINK : 0, 1); + print '
' . $langs->trans("DefaultMaxSizeList") . '
' . $langs->trans("ShowQuickAddLink") . ''; - print ajax_constantonoff("MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); - print '
'; print $form->textwithpicto($langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")), $langs->trans("ShowBugTrackLinkDesc")); @@ -453,14 +472,6 @@ if ($mode == 'other') { print '
' . str_replace('{picto}', $pictohelp, $langs->trans("DisableLinkToHelp", '{picto}')) . ''; - print ajax_constantonoff("MAIN_HELP_DISABLELINK", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); - //print $form->selectyesno('MAIN_HELP_DISABLELINK', isset($conf->global->MAIN_HELP_DISABLELINK) ? $conf->global->MAIN_HELP_DISABLELINK : 0, 1); - print '
' . $form->textwithpicto($langs->trans("DisableJavascript"), $langs->trans("DisableJavascriptNote")) . ''; print ajax_constantonoff("MAIN_DISABLE_JAVASCRIPT", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); @@ -636,12 +647,17 @@ if ($mode == 'login') { if (!empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND)) { $disabled = ' disabled="disabled"'; } + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + print ''; // MAX_FILE_SIZE must precede the field type=file + } print ''; if ($disabled) { print '(' . $langs->trans("DisabledByOptionADD_UNSPLASH_LOGIN_BACKGROUND") . ') '; } if (!empty($conf->global->MAIN_LOGIN_BACKGROUND)) { - print '' . img_delete($langs->trans("Delete")) . ''; + print '' . img_delete($langs->trans("Delete")) . ''; if (file_exists($conf->mycompany->dir_output . '/logos/' . $conf->global->MAIN_LOGIN_BACKGROUND)) { print '   '; print ''; diff --git a/htdocs/admin/import.php b/htdocs/admin/import.php index 37168baa3d4..432b912e76c 100644 --- a/htdocs/admin/import.php +++ b/htdocs/admin/import.php @@ -29,6 +29,7 @@ * \brief config page module import */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; diff --git a/htdocs/admin/index.php b/htdocs/admin/index.php index 787a9d6d820..87b49c95468 100644 --- a/htdocs/admin/index.php +++ b/htdocs/admin/index.php @@ -22,11 +22,14 @@ * \brief Home page of setup area */ +// Load Dolibarr environment require '../main.inc.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'companies')); +$action = ''; + if (!$user->admin) { accessforbidden(); } @@ -119,11 +122,12 @@ print '
'; // Add hook to add information $parameters = array(); +$object = new stdClass(); $reshook = $hookmanager->executeHooks('addHomeSetup', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks print $hookmanager->resPrint; if (empty($reshook)) { // Show into other - print ''.$langs->trans("SetupDescription5")."
"; + //print ''.$langs->trans("SetupDescription5")."
"; print '
'; // Show logo diff --git a/htdocs/admin/knowledgemanagement.php b/htdocs/admin/knowledgemanagement.php index 041216014b0..3fc8ebb3724 100644 --- a/htdocs/admin/knowledgemanagement.php +++ b/htdocs/admin/knowledgemanagement.php @@ -69,11 +69,11 @@ if (!$user->admin) { include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); + $maskconst = GETPOST('maskconst', 'aZ09'); $maskorder = GETPOST('maskorder', 'alpha'); - if ($maskconstorder) { - $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { + $res = dolibarr_set_const($db, $maskconst, $maskorder, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; } @@ -208,15 +208,15 @@ if ($action == 'edit') { print '
'; if ($val['type'] == 'textarea') { - print '\n"; - } elseif ($val['type']== 'html') { + } elseif ($val['type'] == 'html') { require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; - $doleditor = new DolEditor($constname, $conf->global->{$constname}, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%'); + $doleditor = new DolEditor($constname, getDolGlobalString($constname), '', 160, 'dolibarr_notes', '', false, false, isModEnabled('fckeditor'), ROWS_5, '90%'); $doleditor->Create(); } elseif ($val['type'] == 'yesno') { - print $form->selectyesno($constname, $conf->global->{$constname}, 1); + print $form->selectyesno($constname, getDolGlobalString($constname), 1); } elseif (preg_match('/emailtemplate:/', $val['type'])) { include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; $formmail = new FormMail($db); @@ -275,9 +275,9 @@ if ($action == 'edit') { print ''; if ($val['type'] == 'textarea') { - print dol_nl2br($conf->global->{$constname}); + print dol_nl2br(getDolGlobalString($constname)); } elseif ($val['type']== 'html') { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } elseif ($val['type'] == 'yesno') { print ajax_constantonoff($constname); } elseif (preg_match('/emailtemplate:/', $val['type'])) { @@ -286,7 +286,7 @@ if ($action == 'edit') { $tmp = explode(':', $val['type']); - $template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, $conf->global->{$constname}); + $template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, getDolGlobalString($constname)); if ($template<0) { setEventMessages(null, $formmail->errors, 'errors'); } @@ -304,17 +304,17 @@ if ($action == 'edit') { } print '
    ' . implode(' ', $toprint) . '
'; } elseif (preg_match('/thirdparty_type/', $val['type'])) { - if ($conf->global->{$constname}==2) { + if (getDolGlobalString($constname)==2) { print $langs->trans("Prospect"); - } elseif ($conf->global->{$constname}==3) { + } elseif (getDolGlobalString($constname)==3) { print $langs->trans("ProspectCustomer"); - } elseif ($conf->global->{$constname}==1) { + } elseif (getDolGlobalInt($constname)==1) { print $langs->trans("Customer"); - } elseif ($conf->global->{$constname}==0) { + } elseif (getDolGlobalInt($constname)==0) { print $langs->trans("NorProspectNorCustomer"); } } else { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } print '
'; @@ -158,24 +159,24 @@ if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && empty($conf->global->LDAP_USER print ''; // Synchro contact active -if (!empty($conf->societe->enabled)) { +if (isModEnabled('societe')) { print ''; + print ''; } // Synchro member active -if (!empty($conf->adherent->enabled)) { - print ''; + print ''; } // Synchro member type active -if (!empty($conf->adherent->enabled)) { - print ''; + print ''; } // Fields from hook @@ -244,7 +245,8 @@ print ''; print '
'.$langs->trans("LDAPDnContactActive").''; print $formldap->selectLdapDnSynchroActive(getDolGlobalInt('LDAP_CONTACT_ACTIVE'), 'activecontact', array(Ldap::SYNCHRO_LDAP_TO_DOLIBARR)); - print ''.$langs->trans("LDAPDnContactActiveExample").'
' . $langs->trans("LDAPDnContactActiveExample") . '
'.$langs->trans("LDAPDnMemberActive").''; +if (isModEnabled('adherent')) { + print '
' . $langs->trans("LDAPDnMemberActive") . ''; print $formldap->selectLdapDnSynchroActive(getDolGlobalInt('LDAP_MEMBER_ACTIVE'), 'activemembers', array(), 2); - print ''.$langs->trans("LDAPDnMemberActiveExample").'
' . $langs->trans("LDAPDnMemberActiveExample") . '
'.$langs->trans("LDAPDnMemberTypeActive").''; +if (isModEnabled('adherent')) { + print '
' . $langs->trans("LDAPDnMemberTypeActive") . ''; print $formldap->selectLdapDnSynchroActive(getDolGlobalInt('LDAP_MEMBER_TYPE_ACTIVE'), 'activememberstypes', array(), 2); - print ''.$langs->trans("LDAPDnMemberTypeActiveExample").'
' . $langs->trans("LDAPDnMemberTypeActiveExample") . '
'.$langs->trans // Pass print ''; print '
'.$langs->trans("LDAPPassword").''; -print ''; +print ''; +print showValueWithClipboardCPButton(getDolGlobalString('LDAP_ADMIN_PASS'), 0, ' '); print ''.$langs->trans('Password').' (ex: secret)
'; @@ -263,7 +265,7 @@ print '
'; */ if (function_exists("ldap_connect")) { if (!empty($conf->global->LDAP_SERVER_HOST)) { - print ''.$langs->trans("LDAPTestConnect").'

'; + print ''.$langs->trans("LDAPTestConnect").'

'; } if ($action == 'test') { diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php index fef3882d2ff..6ee7b38e0b8 100644 --- a/htdocs/admin/ldap_contacts.php +++ b/htdocs/admin/ldap_contacts.php @@ -26,6 +26,7 @@ * \brief Page d'administration/configuration du module Ldap */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php'; @@ -139,10 +140,10 @@ if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } -print dol_get_fiche_head($head, 'contacts', $langs->trans("LDAPSetup"), -1); +print dol_get_fiche_head($head, 'contacts', '', -1); -print $langs->trans("LDAPDescContact").'
'; +print ''.$langs->trans("LDAPDescContact").'
'; print '
'; print ''; diff --git a/htdocs/admin/ldap_groups.php b/htdocs/admin/ldap_groups.php index 5723183735e..5079d6d2d29 100644 --- a/htdocs/admin/ldap_groups.php +++ b/htdocs/admin/ldap_groups.php @@ -26,6 +26,7 @@ * \brief Page to setup LDAP synchronization for groups */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; @@ -113,10 +114,10 @@ if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } -print dol_get_fiche_head($head, 'groups', $langs->trans("LDAPSetup"), -1); +print dol_get_fiche_head($head, 'groups', '', -1); -print $langs->trans("LDAPDescGroups").'
'; +print ''.$langs->trans("LDAPDescGroups").'
'; print '
'; diff --git a/htdocs/admin/ldap_members.php b/htdocs/admin/ldap_members.php index 876c31d79b1..b9461430bf9 100644 --- a/htdocs/admin/ldap_members.php +++ b/htdocs/admin/ldap_members.php @@ -26,6 +26,7 @@ * \brief Page d'administration/configuration du module Ldap adherent */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -187,10 +188,10 @@ if (!function_exists("ldap_connect")) { print ''; print ''; -print dol_get_fiche_head($head, 'members', $langs->trans("LDAPSetup"), -1); +print dol_get_fiche_head($head, 'members', '', -1); -print $langs->trans("LDAPDescMembers").'
'; +print ''.$langs->trans("LDAPDescMembers").'
'; print '
'; print ''; diff --git a/htdocs/admin/ldap_members_types.php b/htdocs/admin/ldap_members_types.php index 7933b59d5e0..7b3ac57192f 100644 --- a/htdocs/admin/ldap_members_types.php +++ b/htdocs/admin/ldap_members_types.php @@ -26,6 +26,7 @@ * \brief Page to setup LDAP synchronization for members types */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -105,10 +106,10 @@ if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } -print dol_get_fiche_head($head, 'memberstypes', $langs->trans("LDAPSetup"), -1); +print dol_get_fiche_head($head, 'memberstypes', '', -1); -print $langs->trans("LDAPDescMembersTypes").'
'; +print ''.$langs->trans("LDAPDescMembersTypes").'
'; print '
'; diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php index f395eb88fb4..ad84a5889ed 100644 --- a/htdocs/admin/ldap_users.php +++ b/htdocs/admin/ldap_users.php @@ -27,6 +27,7 @@ * \brief Page d'administration/configuration du module Ldap */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; @@ -177,9 +178,9 @@ print ''; -print dol_get_fiche_head($head, 'users', $langs->trans("LDAPSetup"), -1); +print dol_get_fiche_head($head, 'users', '', -1); -print $langs->trans("LDAPDescUsers").'
'; +print ''.$langs->trans("LDAPDescUsers").'
'; print '
'; @@ -500,9 +501,9 @@ if (function_exists("ldap_connect")) { // Remove from required_fields all entries not configured in LDAP (empty) and duplicated $required_fields = array_unique(array_values(array_filter($required_fields, "dol_validElement"))); - // Get from LDAP database an array of results + // Get from LDAP database an array of results by making a search on + // $filter = '('.ldap_escape(getDolGlobalString('LDAP_KEY_USERS'), '', LDAP_ESCAPE_FILTER).'=*)'; $ldapusers = $ldap->getRecords('*', getDolGlobalString('LDAP_USER_DN'), getDolGlobalString('LDAP_KEY_USERS'), $required_fields, 1); - //$ldapusers = $ldap->getRecords('*', $conf->global->LDAP_USER_DN, $conf->global->LDAP_KEY_USERS, '', 1); if (is_array($ldapusers)) { $liste = array(); @@ -525,7 +526,7 @@ if (function_exists("ldap_connect")) { print "search: *
\n"; print "userDN: ".getDolGlobalString('LDAP_USER_DN')."
\n"; print "useridentifier: ".getDolGlobalString('LDAP_KEY_USERS')."
\n"; - print "required_fields: ".implode(',', $required_fields)."
\n"; + print "requested fields: ".implode(',', $required_fields)."
\n"; print "=> ".count($liste)." records
\n"; print "\n
"; } else { diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php index 1209f41c48e..c1f31282dcd 100644 --- a/htdocs/admin/limits.php +++ b/htdocs/admin/limits.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2007-2022 Laurent Destailleur * Copyright (C) 2009-2018 Regis Houssin * Copyright (C) 2010 Juanjo Menent * @@ -22,6 +22,7 @@ * \brief Page to setup limits */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; @@ -29,14 +30,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'products', 'admin')); -if (!$user->admin) { - accessforbidden(); -} - $action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); $currencycode = GETPOST('currencycode', 'alpha'); -if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { +if (isModEnabled('multicompany') && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { // When MULTICURRENCY_USE_LIMIT_BY_CURRENCY is on, we use always a defined currency code instead of '' even for default. $currencycode = (!empty($currencycode) ? $currencycode : $conf->currency); } @@ -48,25 +46,36 @@ $mainroundingruletot = 'MAIN_ROUNDING_RULE_TOT'.(!empty($currencycode) ? '_'.$cu $valmainmaxdecimalsunit = GETPOST($mainmaxdecimalsunit, 'int'); $valmainmaxdecimalstot = GETPOST($mainmaxdecimalstot, 'int'); -$valmainmaxdecimalsshown = GETPOST($mainmaxdecimalsshown, 'int'); +$valmainmaxdecimalsshown = GETPOST($mainmaxdecimalsshown, 'alpha'); // Can be 'x.y' but also 'x...' $valmainroundingruletot = price2num(GETPOST($mainroundingruletot, 'alphanohtml'), '', 2); -if ($action == 'update') { +if (!$user->admin) { + accessforbidden(); +} + + +/* + * Actions + */ + +if ($action == 'update' && !$cancel) { $error = 0; $MAXDEC = 8; - if ($_POST[$mainmaxdecimalsunit] > $MAXDEC - || $_POST[$mainmaxdecimalstot] > $MAXDEC - || $_POST[$mainmaxdecimalsshown] > $MAXDEC) { + if ($valmainmaxdecimalsunit > $MAXDEC + || $valmainmaxdecimalstot > $MAXDEC + || $valmainmaxdecimalsshown > $MAXDEC) { $error++; setEventMessages($langs->trans("ErrorDecimalLargerThanAreForbidden", $MAXDEC), null, 'errors'); + $action = 'edit'; } - if ($_POST[$mainmaxdecimalsunit].(!empty($currencycode) ? '_'.$currencycode : '') < 0 - || $_POST[$mainmaxdecimalstot] < 0 - || $_POST[$mainmaxdecimalsshown] < 0) { + if ($valmainmaxdecimalsunit < 0 + || $valmainmaxdecimalstot < 0 + || $valmainmaxdecimalsshown < 0) { $langs->load("errors"); $error++; setEventMessages($langs->trans("ErrorNegativeValueNotAllowed"), null, 'errors'); + $action = 'edit'; } if ($valmainroundingruletot) { @@ -74,9 +83,23 @@ if ($action == 'update') { $langs->load("errors"); $error++; setEventMessages($langs->trans("ErrorMAIN_ROUNDING_RULE_TOTCanMAIN_MAX_DECIMALS_TOT"), null, 'errors'); + $action = 'edit'; } } + if ((float) $valmainmaxdecimalsshown == 0) { + $langs->load("errors"); + $error++; + setEventMessages($langs->trans("ErrorValueCantBeNull", dol_trunc(dol_string_nohtmltag($langs->transnoentitiesnoconv("MAIN_MAX_DECIMALS_SHOWN")), 40)), null, 'errors'); + $action = 'edit'; + } + if (! $error && ((float) $valmainmaxdecimalsshown < $valmainmaxdecimalsunit || (float) $valmainmaxdecimalsshown < $valmainmaxdecimalstot)) { + $langs->load("errors"); + $error++; + setEventMessages($langs->trans("ErrorValueForTooLow", dol_trunc(dol_string_nohtmltag($langs->transnoentitiesnoconv("MAIN_MAX_DECIMALS_SHOWN")), 40)), null, 'errors'); + $action = 'edit'; + } + if (!$error) { dolibarr_set_const($db, $mainmaxdecimalsunit, $valmainmaxdecimalsunit, 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, $mainmaxdecimalstot, $valmainmaxdecimalstot, 'chaine', 0, '', $conf->entity); @@ -105,12 +128,12 @@ print load_fiche_titre($title, '', 'title_setup'); $aCurrencies = array($conf->currency); // Default currency always first position -if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { - require_once DOL_DOCUMENT_ROOT.'/core/lib/multicurrency.lib.php'; +if (isModEnabled('multicompany') && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { + require_once DOL_DOCUMENT_ROOT . '/core/lib/multicurrency.lib.php'; - $sql = "SELECT rowid, code FROM ".MAIN_DB_PREFIX."multicurrency"; - $sql .= " WHERE entity = ".((int) $conf->entity); - $sql .= " AND code <> '".$db->escape($conf->currency)."'"; // Default currency always first position + $sql = "SELECT rowid, code FROM " . MAIN_DB_PREFIX . "multicurrency"; + $sql .= " WHERE entity = " . ((int) $conf->entity); + $sql .= " AND code <> '" . $db->escape($conf->currency) . "'"; // Default currency always first position $resql = $db->query($sql); if ($resql) { while ($obj = $db->fetch_object($resql)) { @@ -129,11 +152,11 @@ print ''.$langs->trans("LimitsDesc")."
\n" print "
\n"; if ($action == 'edit') { - print ''; - print ''; + print ''; + print ''; print ''; - if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { - print ''; + if (isModEnabled('multicompany') && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { + print ''; } clearstatcache(); @@ -143,24 +166,25 @@ if ($action == 'edit') { print '
'; + print ''; print ''; + print ''; print ''; - print ''; + print ''; print ''; + print ''; print '
'; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_UNIT"), $langs->trans("ParameterActiveForNextInputOnly")); - print '
'; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_TOT"), $langs->trans("ParameterActiveForNextInputOnly")); - print '
'.$langs->trans("MAIN_MAX_DECIMALS_SHOWN").'
'; print $form->textwithpicto($langs->trans("MAIN_ROUNDING_RULE_TOT"), $langs->trans("ParameterActiveForNextInputOnly")); - print '
'; - print '
'; print '
'; - print ''; + print ''; + print '   '; + print ''; print '
'; print '
'; @@ -169,7 +193,7 @@ if ($action == 'edit') { } else { print '
'; print ''; - print ''; + print ''; print ''; + print ''; // Value print ''; } diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index 37735a43ed3..19effcdfd2e 100644 --- a/htdocs/admin/mailing.php +++ b/htdocs/admin/mailing.php @@ -23,6 +23,7 @@ * \brief Page to setup emailing module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; @@ -50,8 +51,19 @@ if ($action == 'setvalue') { $mailerror = GETPOST('MAILING_EMAIL_ERRORSTO', 'alpha'); $checkread = GETPOST('value', 'alpha'); $checkread_key = GETPOST('MAILING_EMAIL_UNSUBSCRIBE_KEY', 'alpha'); - $mailingdelay = GETPOST('MAILING_DELAY', 'int'); $contactbulkdefault = GETPOST('MAILING_CONTACT_DEFAULT_BULK_STATUS', 'int'); + if (GETPOST('MAILING_DELAY', 'alpha') != '') { + $mailingdelay = price2num(GETPOST('MAILING_DELAY', 'alpha'), 3); // Not less than 1 millisecond. + } else { + $mailingdelay = ''; + } + // Clean data + if ((float) $mailingdelay > 10) { + $mailingdelay = 10; + } + if (GETPOST('MAILING_DELAY', 'alpha') != '' && GETPOST('MAILING_DELAY', 'alpha') != '0' && (float) $mailingdelay < 0.001) { + $mailingdelay = 0.001; + } $res = dolibarr_set_const($db, "MAILING_EMAIL_FROM", $mailfrom, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { @@ -107,21 +119,11 @@ llxHeader('', $langs->trans("MailingSetup")); $linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("MailingSetup"), $linkback, 'title_setup'); -if (!empty($conf->use_javascript_ajax)) { - print "\n".''; -} +$constname = 'MAILING_EMAIL_UNSUBSCRIBE_KEY'; + +// Add button to autosuggest a key +include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; +print dolJSToSetRandomPassword($constname); print '
'; print ''; @@ -132,31 +134,35 @@ print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_UNIT"), $langs->trans("ParameterActiveForNextInputOnly")); @@ -190,11 +214,11 @@ if ($action == 'edit') { print ''; print ''; } -if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { +if (isModEnabled('multicompany') && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { if (!empty($aCurrencies) && count($aCurrencies) > 1) { print dol_get_fiche_end(); } diff --git a/htdocs/admin/loan.php b/htdocs/admin/loan.php index 59b7eb8b463..ca95c835ecd 100644 --- a/htdocs/admin/loan.php +++ b/htdocs/admin/loan.php @@ -22,11 +22,12 @@ * \brief Setup page to configure loan module */ +// Load Dolibarr environment require '../main.inc.php'; // Class require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; } @@ -76,7 +77,7 @@ if ($action == 'update') { llxHeader(); $form = new Form($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -100,14 +101,14 @@ foreach ($list as $key) { // Param $label = $langs->trans($key); - print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account(getDolGlobalString($key), $key, 1, '', 1, 1); } else { - print ''; + print ''; } print '
'; print ''; print ''; print ''; -print ''; +print ''; print "\n"; print ''; +print ''; +print ''; print ''; print ''; +print ''; +print ''; print ''; print ''; +print ''; +print ''; print ''; @@ -165,11 +171,12 @@ print ''; print ''; +print ''; +print ''; print ''; // default blacklist from mailing @@ -179,7 +186,7 @@ print ''; -print ''; +print ''; print ''; @@ -187,7 +194,8 @@ if (!empty($conf->use_javascript_ajax) && $conf->global->MAIN_FEATURES_LEVEL >= print ''; + print ''; + print ''; print ''; } diff --git a/htdocs/admin/mailman.php b/htdocs/admin/mailman.php index 8b003ce2d4e..88389f0a4c4 100644 --- a/htdocs/admin/mailman.php +++ b/htdocs/admin/mailman.php @@ -27,6 +27,7 @@ * \brief Page to setup the module MailmanSpip (Mailman) */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/mailmanspip.lib.php'; @@ -158,7 +159,7 @@ if (!empty($conf->global->ADHERENT_USE_MAILMAN)) { $link .= ''; // Edition des varibales globales $constantes = array( - 'ADHERENT_MAILMAN_ADMINPW', + 'ADHERENT_MAILMAN_ADMIN_PASSWORD', 'ADHERENT_MAILMAN_URL', 'ADHERENT_MAILMAN_UNSUB_URL', 'ADHERENT_MAILMAN_LISTS' diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index f065760f62d..e9a8132188c 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -23,6 +23,7 @@ * \brief Page to setup emails sending */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -33,14 +34,15 @@ $langs->loadLangs(array("companies", "products", "admin", "mails", "other", "err $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); +$trackid = GETPOST('trackid'); + if (!$user->admin) { accessforbidden(); } $usersignature = $user->signature; -// For action = test or send, we ensure that content is not html, even for signature, because this we want a test with NO html. - -if ($action == 'test' || $action == 'send') { +// For action = test or send, we ensure that content is not html, even for signature, because for this we want a test with NO html. +if ($action == 'test' || ($action == 'send' && $trackid = 'test')) { $usersignature = dol_string_nohtmltag($usersignature, 2); } @@ -50,6 +52,7 @@ $substitutionarrayfortest = array( '__USER_LOGIN__' => $user->login, '__USER_EMAIL__' => $user->email, '__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails + '__SENDEREMAIL_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails '__ID__' => 'RecipientIdRecord', //'__EMAIL__' => 'RecipientEMail', // Done into actions_sendmails '__LASTNAME__' => 'RecipientLastname', @@ -88,7 +91,15 @@ if ($action == 'update' && !$cancel) { dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", GETPOST("MAIN_MAIL_SMTP_PORT", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER", GETPOST("MAIN_MAIL_SMTP_SERVER", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID", GETPOST("MAIN_MAIL_SMTPS_ID", 'alphanohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", GETPOST("MAIN_MAIL_SMTPS_PW", 'none'), 'chaine', 0, '', $conf->entity); + if (GETPOSTISSET("MAIN_MAIL_SMTPS_PW")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", GETPOST("MAIN_MAIL_SMTPS_PW", 'none'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET("MAIN_MAIL_SMTPS_AUTH_TYPE")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_AUTH_TYPE", GETPOST("MAIN_MAIL_SMTPS_AUTH_TYPE", 'chaine'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET("MAIN_MAIL_SMTPS_OAUTH_SERVICE")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_OAUTH_SERVICE", GETPOST("MAIN_MAIL_SMTPS_OAUTH_SERVICE", 'chaine'), 'chaine', 0, '', $conf->entity); + } dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS", GETPOST("MAIN_MAIL_EMAIL_TLS", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS", GETPOST("MAIN_MAIL_EMAIL_STARTTLS", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED", GETPOST("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED", 'int'), 'chaine', 0, '', $conf->entity); @@ -108,6 +119,11 @@ if ($action == 'update' && !$cancel) { } } +if ($action == 'disablephpmailwarning' && !$cancel) { + dolibarr_set_const($db, 'MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP', 1, 'chaine', 1, 0, $conf->entity); + + setEventMessages($langs->trans("WarningDisabled"), null, 'mesgs'); +} // Actions to send emails $id = 0; @@ -115,7 +131,7 @@ $actiontypecode = ''; // Not an event for agenda $triggersendname = ''; // Disable triggers $paramname = 'id'; $mode = 'emailfortest'; -$trackid = (($action == 'testhtml') ? "testhtml" : "test"); +$trackid = ($action == 'send' ? GETPOST('trackid', 'aZ09') : $action); $sendcontext = ''; include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; @@ -128,7 +144,6 @@ if ($action == 'presend' && GETPOST('trackid', 'alphanohtml') == 'testhtml') { - /* * View */ @@ -171,6 +186,24 @@ if (version_compare(phpversion(), '7.0', '>=')) { $listofmethods['swiftmailer'] = 'Swift Mailer socket library'; } +// List of oauth services +$oauthservices = array(); + +foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) { + $key = preg_replace('/^OAUTH_/', '', $key); + $key = preg_replace('/_ID$/', '', $key); + if (preg_match('/^.*-/', $key)) { + $name = preg_replace('/^.*-/', '', $key); + } else { + $name = $langs->trans("NoName"); + } + $provider = preg_replace('/-.*$/', '', $key); + $provider = ucfirst(strtolower($provider)); + + $oauthservices[$key] = $name." (".$provider.")"; + } +} if ($action == 'edit') { if ($conf->use_javascript_ajax) { @@ -195,6 +228,7 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY").prop("disabled", true); jQuery(".smtp_method").hide(); jQuery(".dkim").hide(); + jQuery(".smtp_auth_method").hide(); '; if ($linuxlike) { print ' @@ -234,9 +268,10 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_SMTP_SERVER").show(); jQuery("#MAIN_MAIL_SMTP_PORT").show(); jQuery("#smtp_server_mess").hide(); - jQuery("#smtp_port_mess").hide(); + jQuery("#smtp_port_mess").hide(); jQuery(".smtp_method").show(); - jQuery(".dkim").hide(); + jQuery(".dkim").hide(); + jQuery(".smtp_auth_method").show(); } if (jQuery("#MAIN_MAIL_SENDMODE").val()==\'swiftmailer\') { @@ -262,14 +297,36 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_SMTP_PORT").show(); jQuery("#smtp_server_mess").hide(); jQuery("#smtp_port_mess").hide(); - jQuery(".smtp_method").show(); + jQuery(".smtp_method").show(); jQuery(".dkim").show(); + jQuery(".smtp_auth_method").show(); } } + function change_smtp_auth_method() { + console.log(jQuery("#radio_pw").prop("checked")); + if (jQuery("#MAIN_MAIL_SENDMODE").val()==\'smtps\' && jQuery("#radio_oauth").prop("checked")) { + jQuery(".smtp_oauth_service").show(); + jQuery(".smtp_pw").hide(); + } else if (jQuery("#MAIN_MAIL_SENDMODE").val()==\'swiftmailer\' && jQuery("#radio_oauth").prop("checked")) { + jQuery(".smtp_oauth_service").show(); + jQuery(".smtp_pw").hide(); + } else if(jQuery("#MAIN_MAIL_SENDMODE").val()==\'mail\'){ + jQuery(".smtp_oauth_service").hide(); + jQuery(".smtp_pw").hide(); + } else { + jQuery(".smtp_oauth_service").hide(); + jQuery(".smtp_pw").show(); + } + } initfields(); + change_smtp_auth_method(); jQuery("#MAIN_MAIL_SENDMODE").change(function() { initfields(); + change_smtp_auth_method(); }); + jQuery("#radio_pw, #radio_oauth").change(function() { + change_smtp_auth_method(); + }); jQuery("#MAIN_MAIL_EMAIL_TLS").change(function() { if (jQuery("#MAIN_MAIL_EMAIL_TLS").val() == 1) jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val(0); @@ -323,7 +380,7 @@ if ($action == 'edit') { // SuperAdministrator access only if ((empty($conf->global->MAIN_MODULE_MULTICOMPANY)) || ($user->admin && !$user->entity)) { - print $form->selectarray('MAIN_MAIL_SENDMODE', $listofmethods, $conf->global->MAIN_MAIL_SENDMODE); + print $form->selectarray('MAIN_MAIL_SENDMODE', $listofmethods, getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail')); } else { $text = $listofmethods[$conf->global->MAIN_MAIL_SENDMODE]; if (empty($text)) { @@ -331,13 +388,13 @@ if ($action == 'edit') { } $htmltext = $langs->trans("ContactSuperAdminForChange"); print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); - print ''; + print ''; } print ''; // Host server print ''; - if (!$conf->use_javascript_ajax && $linuxlike && $conf->global->MAIN_MAIL_SENDMODE == 'mail') { + if (!$conf->use_javascript_ajax && $linuxlike && getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail') { print ''; + // Auth mode + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { + print ''; + } + // ID - if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { $mainstmpid = (!empty($conf->global->MAIN_MAIL_SMTPS_ID) ? $conf->global->MAIN_MAIL_SMTPS_ID : ''); print ''; } + // PW - if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { $mainsmtppw = (!empty($conf->global->MAIN_MAIL_SMTPS_PW) ? $conf->global->MAIN_MAIL_SMTPS_PW : ''); - print ''; } + // OAUTH service provider + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { + print ''; + } // TLS print ''; // From - print ''; + $help = img_help(1, $langs->trans("EMailHelpMsgSPFDKIM")); + print ''; print ''; @@ -582,45 +678,63 @@ if ($action == 'edit') { // Method print ''; // Host server - if ($linuxlike && (isset($conf->global->MAIN_MAIL_SENDMODE) && $conf->global->MAIN_MAIL_SENDMODE == 'mail')) { + if ($linuxlike && (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail')) { print ''; } else { print ''; } + // Port - if ($linuxlike && (isset($conf->global->MAIN_MAIL_SENDMODE) && $conf->global->MAIN_MAIL_SENDMODE == 'mail')) { + if ($linuxlike && (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail')) { print ''; } else { print ''; } + // AUTH method + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer'))) { + $authtype = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE', 'LOGIN'); + $text = ($authtype === "LOGIN") ? $langs->trans("UsePassword") : ($authtype === "XOAUTH2" ? $langs->trans("UseOauth") : '') ; + print ''; + } + // SMTPS ID - if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))) { + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer'))) { print ''; } // SMTPS PW - if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))) { + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE') != "XOAUTH2") { print ''; } + // SMTPS oauth service + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE') === "XOAUTH2") { + $text = $oauthservices[$conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE]; + if (empty($text)) { + $text = $langs->trans("Undefined").img_warning(); + } + print ''; + } + // TLS print '
'.$langs->trans("Parameter").''.$langs->trans("Value").''.$langs->trans("Example").''.$langs->trans("Example").'
'; -print $langs->trans("MailingEMailFrom").''; -print ''; +$help = img_help(1, $langs->trans("EMailHelpMsgSPFDKIM")); +print $langs->trans("MailingEMailFrom").' '.$help.''; +print ''; if (!empty($conf->global->MAILING_EMAIL_FROM) && !isValidEmail($conf->global->MAILING_EMAIL_FROM)) { print ' '.img_warning($langs->trans("BadEMail")); } -print ''.dol_escape_htmltag(($mysoc->name ? $mysoc->name : 'MyName').' ').''.dol_escape_htmltag(($mysoc->name ? $mysoc->name : 'MyName').' ').'
'; print $langs->trans("MailingEMailError").''; -print ''; +print ''; if (!empty($conf->global->MAILING_EMAIL_ERRORSTO) && !isValidEmail($conf->global->MAILING_EMAIL_ERRORSTO)) { print ' '.img_warning($langs->trans("BadEMail")); } -print 'webmaster@example.com>webmaster@example.com>
'; -print $langs->trans("MailingDelay").''; +print $form->textwithpicto($langs->trans("MailingDelay"), $langs->trans("IfDefinedUseAValueBeetween", '0.001', '10')).''; print ''; -print '
'; print $langs->trans("ActivateCheckReadKey").''; -print ''; +print ''; if (!empty($conf->use_javascript_ajax)) { print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token" class="linkobject"'); } -print '
'; $blacklist_setting=array(0=>$langs->trans('No'), 1=>$langs->trans('Yes'), 2=>$langs->trans('DefaultStatusEmptyMandatory')); print $form->selectarray("MAILING_CONTACT_DEFAULT_BULK_STATUS", $blacklist_setting, $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS); print '
'; print $langs->trans("MailAdvTargetRecipients").''; print ajax_constantonoff('EMAILING_USE_ADVANCED_SELECTOR'); - print '
'; print $langs->trans("MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike"); print ''; @@ -354,7 +411,7 @@ if ($action == 'edit') { } print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; print ''; print ''.$langs->trans("SeeLocalSendMailSetup").''; @@ -371,7 +428,7 @@ if ($action == 'edit') { // Port print '
'; - if (!$conf->use_javascript_ajax && $linuxlike && $conf->global->MAIN_MAIL_SENDMODE == 'mail') { + if (!$conf->use_javascript_ajax && $linuxlike && getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail') { print $langs->trans("MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike"); print ''; print ''.$langs->trans("SeeLocalSendMailSetup").''; @@ -385,7 +442,7 @@ if ($action == 'edit') { } print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; print ''; print ''.$langs->trans("SeeLocalSendMailSetup").''; @@ -398,12 +455,31 @@ if ($action == 'edit') { } print '
'.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + // Note: Default value for MAIN_MAIL_SMTPS_AUTH_TYPE if not defined is 'LOGIN' (but login/pass may be empty and they won't be provided in such a case) + print ' '; + print ''; + print '     '; + print ' '; + print ''; + } else { + $value = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE', 'LOGIN'); + $htmltext = $langs->trans("ContactSuperAdminForChange"); + print $form->textwithpicto($langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE"), $htmltext, 1, 'superadmin'); + print ''; + } + print '
'.$langs->trans("MAIN_MAIL_SMTPS_ID").''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; } else { $htmltext = $langs->trans("ContactSuperAdminForChange"); @@ -413,14 +489,15 @@ if ($action == 'edit') { print '
'; + print '
'; print $form->textwithpicto($langs->trans("MAIN_MAIL_SMTPS_PW"), $langs->trans("WithGMailYouCanCreateADedicatedPassword")); print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; } else { $htmltext = $langs->trans("ContactSuperAdminForChange"); @@ -430,9 +507,27 @@ if ($action == 'edit') { print '
'.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE").''; + + // SuperAdministrator access only + if ((empty($conf->global->MAIN_MODULE_MULTICOMPANY)) || ($user->admin && !$user->entity)) { + print $form->selectarray('MAIN_MAIL_SMTPS_OAUTH_SERVICE', $oauthservices, $conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE); + } else { + $text = $oauthservices[$conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE]; + if (empty($text)) { + $text = $langs->trans("Undefined"); + } + $htmltext = $langs->trans("ContactSuperAdminForChange"); + print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); + print ''; + } + print '
'.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; - if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { if (function_exists('openssl_open')) { print $form->selectyesno('MAIN_MAIL_EMAIL_TLS', (!empty($conf->global->MAIN_MAIL_EMAIL_TLS) ? $conf->global->MAIN_MAIL_EMAIL_TLS : 0), 1); } else { @@ -445,7 +540,7 @@ if ($action == 'edit') { // STARTTLS print '
'.$langs->trans("MAIN_MAIL_EMAIL_STARTTLS").''; - if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { if (function_exists('openssl_open')) { print $form->selectyesno('MAIN_MAIL_EMAIL_STARTTLS', (!empty($conf->global->MAIN_MAIL_EMAIL_STARTTLS) ? $conf->global->MAIN_MAIL_EMAIL_STARTTLS : 0), 1); } else { @@ -458,7 +553,7 @@ if ($action == 'edit') { // SMTP_ALLOW_SELF_SIGNED print '
'.$langs->trans("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").''; - if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer')))) { if (function_exists('openssl_open')) { print $form->selectyesno('MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED', (!empty($conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED) ? $conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED : 0), 1); } else { @@ -471,7 +566,7 @@ if ($action == 'edit') { // DKIM print '
'.$langs->trans("MAIN_MAIL_EMAIL_DKIM_ENABLED").''; - if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('swiftmailer')))) { + if (!empty($conf->use_javascript_ajax) || (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('swiftmailer')))) { if (function_exists('openssl_open')) { print $form->selectyesno('MAIN_MAIL_EMAIL_DKIM_ENABLED', (!empty($conf->global->MAIN_MAIL_EMAIL_DKIM_ENABLED) ? $conf->global->MAIN_MAIL_EMAIL_DKIM_ENABLED : 0), 1); } else { @@ -505,7 +600,8 @@ if ($action == 'edit') { print '
'.$langs->trans("OtherOptions").'
'.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).'
'.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).' '.$help.'
'.$langs->trans("MAIN_MAIL_SENDMODE").''; - $text = $listofmethods[$conf->global->MAIN_MAIL_SENDMODE]; + $text = $listofmethods[getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail')]; if (empty($text)) { $text = $langs->trans("Undefined").img_warning(); } print $text; - if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) { - print $form->textwithpicto('', $langs->trans("WarningPHPMail").'
'.$langs->trans("WarningPHPMailA").'
'.$langs->trans("WarningPHPMailB").'
'.$langs->trans("WarningPHPMailC").'

'.$langs->trans("WarningPHPMailD"), 1, 'warning'); + if (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) { + $textwarning = $langs->trans("WarningPHPMail").'
'.$langs->trans("WarningPHPMailA").'
'.$langs->trans("WarningPHPMailB").'
'.$langs->trans("WarningPHPMailC").'

'.$langs->trans("WarningPHPMailD"); + print $form->textwithpicto('', $textwarning, 1, 'warning'); } print '
'.$langs->trans("MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike").''.$langs->trans("SeeLocalSendMailSetup").'
'.$langs->trans("MAIN_MAIL_SMTP_SERVER", ini_get('SMTP') ?ini_get('SMTP') : $langs->transnoentities("Undefined")).''.(!empty($conf->global->MAIN_MAIL_SMTP_SERVER) ? $conf->global->MAIN_MAIL_SMTP_SERVER : '').'
'.$langs->trans("MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike").''.$langs->trans("SeeLocalSendMailSetup").'
'.$langs->trans("MAIN_MAIL_SMTP_PORT", ini_get('smtp_port') ?ini_get('smtp_port') : $langs->transnoentities("Undefined")).''.(!empty($conf->global->MAIN_MAIL_SMTP_PORT) ? $conf->global->MAIN_MAIL_SMTP_PORT : '').'
'.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''.$text.'
'.$langs->trans("MAIN_MAIL_SMTPS_ID").''.$conf->global->MAIN_MAIL_SMTPS_ID.'
'.$langs->trans("MAIN_MAIL_SMTPS_PW").''.preg_replace('/./', '*', $conf->global->MAIN_MAIL_SMTPS_PW).'
'.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE").''.$text.'
'.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; - if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))) { + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer'))) { if (function_exists('openssl_open')) { print yn($conf->global->MAIN_MAIL_EMAIL_TLS); } else { @@ -633,7 +747,7 @@ if ($action == 'edit') { // STARTTLS print '
'.$langs->trans("MAIN_MAIL_EMAIL_STARTTLS").''; - if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))) { + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer'))) { if (function_exists('openssl_open')) { print yn($conf->global->MAIN_MAIL_EMAIL_STARTTLS); } else { @@ -646,7 +760,7 @@ if ($action == 'edit') { // SMTP_ALLOW_SELF_SIGNED print '
'.$langs->trans("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").''; - if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))) { + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('smtps', 'swiftmailer'))) { if (function_exists('openssl_open')) { print yn($conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED); } else { @@ -661,7 +775,7 @@ if ($action == 'edit') { if ($conf->global->MAIN_MAIL_SENDMODE == 'swiftmailer') { // DKIM print '
'.$langs->trans("MAIN_MAIL_EMAIL_DKIM_ENABLED").''; - if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('swiftmailer'))) { + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail'), array('swiftmailer'))) { if (function_exists('openssl_open')) { print yn(getDolGlobalInt('MAIN_MAIL_EMAIL_DKIM_ENABLED')); } else { @@ -691,8 +805,14 @@ if ($action == 'edit') { print '
'; print '
'; - if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) { - print info_admin($langs->trans("WarningPHPMail").'
'.$langs->trans("WarningPHPMailA").'
'.$langs->trans("WarningPHPMailB").'
'.$langs->trans("WarningPHPMailC").'

'.$langs->trans("WarningPHPMailD"), 0, 0, 'warning'); + if (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) { + $messagetoshow = $langs->trans("WarningPHPMail").'
'.$langs->trans("WarningPHPMailA").'
'.$langs->trans("WarningPHPMailB").'
'.$langs->trans("WarningPHPMailC").'

'.$langs->trans("WarningPHPMailD"); + $messagetoshow .= ' '.$langs->trans("WarningPHPMailDbis", '{s1}', '{s2}'); + $linktosetvar1 = ''; + $linktosetvar2 = ''; + $messagetoshow = str_replace('{s1}', $linktosetvar1, $messagetoshow); + $messagetoshow = str_replace('{s2}', $linktosetvar2, $messagetoshow); + print info_admin($messagetoshow, 0, 0, 'warning'); } print '
'; @@ -702,7 +822,8 @@ if ($action == 'edit') { print ''.$langs->trans("OtherOptions").''; // From - print ''.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).''; + $help = img_help(1, $langs->trans("EMailHelpMsgSPFDKIM")); + print ''.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).' '.$help.''; print ''.$conf->global->MAIN_MAIL_EMAIL_FROM; if (empty($conf->global->MAIN_MAIL_EMAIL_FROM)) { print img_warning($langs->trans("Mandatory")); @@ -797,7 +918,7 @@ if ($action == 'edit') { print ''.$langs->trans("Modify").''; if (empty($conf->global->MAIN_DISABLE_ALL_MAILS)) { - if ($conf->global->MAIN_MAIL_SENDMODE != 'mail' || !$linuxlike) { + if (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') != 'mail' || !$linuxlike) { if (function_exists('fsockopen') && $port && $server) { print ''.$langs->trans("DoTestServerAvailability").''; } @@ -807,7 +928,7 @@ if ($action == 'edit') { print ''.$langs->trans("DoTestSend").''; - if (!empty($conf->fckeditor->enabled)) { + if (isModEnabled('fckeditor')) { print ''.$langs->trans("DoTestSendHTML").''; } } @@ -815,7 +936,7 @@ if ($action == 'edit') { print '
'; - if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA)) { + if (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail' && empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA)) { /* // Warning 1 if ($linuxlike) @@ -832,11 +953,11 @@ if ($action == 'edit') { if (!in_array($action, array('testconnect', 'test', 'testhtml'))) { $text = ''; - if ($conf->global->MAIN_MAIL_SENDMODE == 'mail') { + if (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail') { //$text .= $langs->trans("WarningPHPMail"); // To encourage to use SMTPS } - if ($conf->global->MAIN_MAIL_SENDMODE == 'mail') { + if (getDolGlobalString('MAIN_MAIL_SENDMODE', 'mail') == 'mail') { if (!empty($conf->global->MAIN_EXTERNAL_MAIL_SPF_STRING_TO_ADD)) { // List of string to add in SPF if the setup use the mail method. Example 'include:sendgrid.net include:spf.mydomain.com' $text .= ($text ? '

' : '').''.$langs->trans("WarningPHPMailSPF", $conf->global->MAIN_EXTERNAL_MAIL_SPF_STRING_TO_ADD); @@ -870,7 +991,7 @@ if ($action == 'edit') { if (!empty($dnsinfo) && is_array($dnsinfo)) { foreach ($dnsinfo as $info) { if (strpos($info['txt'], 'v=spf') !== false) { - $text .= ($text ? '

' : '').$langs->trans("ActualMailSPFRecordFound", $info['txt']); + $text .= ($text ? '

' : '').$langs->trans("ActualMailSPFRecordFound", $companyemail, $info['txt']); } } } diff --git a/htdocs/admin/mails_emailing.php b/htdocs/admin/mails_emailing.php index 40af4c4ae2a..b9cb57e0d80 100644 --- a/htdocs/admin/mails_emailing.php +++ b/htdocs/admin/mails_emailing.php @@ -23,6 +23,7 @@ * \brief Page to setup emails sending */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -33,10 +34,6 @@ $langs->loadLangs(array('companies', 'products', 'admin', 'mails', 'other', 'err $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); -if (!$user->admin) { - accessforbidden(); -} - $usersignature = $user->signature; // For action = test or send, we ensure that content is not html, even for signature, because this we want a test with NO html. if ($action == 'test' || $action == 'send') { @@ -49,6 +46,7 @@ $substitutionarrayfortest = array( //'__EMAIL__' => 'RecipientEMail', // Done into actions_sendmails '__CHECK_READ__' => (!empty($object) && is_object($object) && is_object($object->thirdparty)) ? '' : '', '__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails + '__SENDEREMAIL_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails '__LOGIN__' => $user->login, '__LASTNAME__' => 'RecipientLastname', '__FIRSTNAME__' => 'RecipientFirstname', @@ -59,6 +57,10 @@ $substitutionarrayfortest = array( ); complete_substitutions_array($substitutionarrayfortest, $langs); +// Security check +if (!$user->admin) { + accessforbidden(); +} /* @@ -71,7 +73,15 @@ if ($action == 'update' && !$cancel) { dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT_EMAILING", GETPOST("MAIN_MAIL_SMTP_PORT_EMAILING"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER_EMAILING", GETPOST("MAIN_MAIL_SMTP_SERVER_EMAILING"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID_EMAILING", GETPOST("MAIN_MAIL_SMTPS_ID_EMAILING"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_EMAILING", GETPOST("MAIN_MAIL_SMTPS_PW_EMAILING"), 'chaine', 0, '', $conf->entity); + if (GETPOSTISSET("MAIN_MAIL_SMTPS_PW_EMAILING")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_EMAILING", GETPOST("MAIN_MAIL_SMTPS_PW_EMAILING", 'none'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET("MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING", GETPOST("MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING", 'chaine'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET("MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING", GETPOST("MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING", 'chaine'), 'chaine', 0, '', $conf->entity); + } dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS_EMAILING", GETPOST("MAIN_MAIL_EMAIL_TLS_EMAILING"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS_EMAILING", GETPOST("MAIN_MAIL_EMAIL_STARTTLS_EMAILING"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING", GETPOST("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING"), 'chaine', 0, '', $conf->entity); @@ -145,6 +155,24 @@ if (version_compare(phpversion(), '7.0', '>=')) { $listofmethods['swiftmailer'] = 'Swift Mailer socket library'; } +// List of oauth services +$oauthservices = array(); + +foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) { + $key = preg_replace('/^OAUTH_/', '', $key); + $key = preg_replace('/_ID$/', '', $key); + if (preg_match('/^.*-/', $key)) { + $name = preg_replace('/^.*-/', '', $key); + } else { + $name = $langs->trans("NoName"); + } + $provider = preg_replace('/-.*$/', '', $key); + $provider = ucfirst(strtolower($provider)); + + $oauthservices[$key] = $name." (".$provider.")"; + } +} if ($action == 'edit') { if ($conf->use_javascript_ajax) { @@ -170,6 +198,8 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").prop("disabled", true); jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0); jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").prop("disabled", true); + jQuery(".smtp_method").hide(); + jQuery(".smtp_auth_method").hide(); '; if ($linuxlike) { print ' @@ -201,9 +231,11 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").removeAttr("disabled"); jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").show(); jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").show(); + jQuery("#smtp_port_mess").hide(); jQuery("#smtp_server_mess").hide(); - jQuery("#smtp_port_mess").hide(); - } + jQuery(".smtp_method").show(); + jQuery(".smtp_auth_method").show(); + } if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'swiftmailer\') { jQuery(".drag").show(); @@ -219,12 +251,35 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").show(); jQuery("#smtp_server_mess").hide(); jQuery("#smtp_port_mess").hide(); + jQuery(".smtp_method").show(); + jQuery(".smtp_auth_method").show(); } } + function change_smtp_auth_method() { + console.log(jQuery("#radio_pw").prop("checked")); + if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'smtps\' && jQuery("#radio_oauth").prop("checked")) { + jQuery(".smtp_oauth_service").show(); + jQuery(".smtp_pw").hide(); + } else if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'swiftmailer\' && jQuery("#radio_oauth").prop("checked")) { + jQuery(".smtp_oauth_service").show(); + jQuery(".smtp_pw").hide(); + } else if(jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'mail\' || jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'default\'){ + jQuery(".smtp_oauth_service").hide(); + jQuery(".smtp_pw").hide(); + } else { + jQuery(".smtp_oauth_service").hide(); + jQuery(".smtp_pw").show(); + } + } initfields(); - jQuery("#MAIN_MAIL_SENDMODE_EMAILING").change(function() { + change_smtp_auth_method(); + jQuery("#MAIN_MAIL_SENDMODE_EMAILING").change(function() { initfields(); - }); + change_smtp_auth_method(); + }); + jQuery("#radio_pw, #radio_oauth").change(function() { + change_smtp_auth_method(); + }); jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").change(function() { if (jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val() == 1) jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(0); @@ -237,7 +292,7 @@ if ($action == 'edit') { else jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0); }); - })'; + })'; print ''."\n"; } @@ -294,16 +349,16 @@ if ($action == 'edit') { } print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; - print ''; - print ''.$langs->trans("SeeLocalSendMailSetup").''; - print ' '.$langs->trans("SeeLinkToOnlineDocumentation").''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + print ''; + print ''; + print '' . $langs->trans("SeeLocalSendMailSetup") . ''; + print ' ' . $langs->trans("SeeLinkToOnlineDocumentation") . ''; } else { $text = !empty($mainserver) ? $mainserver : $smtpserver; $htmltext = $langs->trans("ContactSuperAdminForChange"); print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); - print ''; + print ''; } print ''; } @@ -326,30 +381,49 @@ if ($action == 'edit') { } print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; - print ''; - print ''.$langs->trans("SeeLocalSendMailSetup").''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + print ''; + print ''; + print '' . $langs->trans("SeeLocalSendMailSetup") . ''; } else { $text = (!empty($mainport) ? $mainport : $smtpport); $htmltext = $langs->trans("ContactSuperAdminForChange"); print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); - print ''; + print ''; } } print ''; + // AUTH method + if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))) { + print ''.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + // Note: Default value for MAIN_MAIL_SMTPS_AUTH_TYPE if not defined is 'LOGIN' (but login/pass may be empty and they won't be provided in such a case) + print ' '; + print ''; + print '            '; + print ' '; + print ''; + } else { + $value = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING', 'LOGIN'); + $htmltext = $langs->trans("ContactSuperAdminForChange"); + print $form->textwithpicto($langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE"), $htmltext, 1, 'superadmin'); + print ''; + } + print ''; + } + // ID if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))) { $mainstmpid = (!empty($conf->global->MAIN_MAIL_SMTPS_ID_EMAILING) ? $conf->global->MAIN_MAIL_SMTPS_ID_EMAILING : ''); - print ''.$langs->trans("MAIN_MAIL_SMTPS_ID").''; + print '' . $langs->trans("MAIN_MAIL_SMTPS_ID") . ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + print ''; } else { $htmltext = $langs->trans("ContactSuperAdminForChange"); print $form->textwithpicto($conf->global->MAIN_MAIL_SMTPS_ID_EMAILING, $htmltext, 1, 'superadmin'); - print ''; + print ''; } print ''; } @@ -357,18 +431,38 @@ if ($action == 'edit') { // PW if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))) { $mainsmtppw = (!empty($conf->global->MAIN_MAIL_SMTPS_PW_EMAILING) ? $conf->global->MAIN_MAIL_SMTPS_PW_EMAILING : ''); - print ''.$langs->trans("MAIN_MAIL_SMTPS_PW").''; + print '' . $langs->trans("MAIN_MAIL_SMTPS_PW") . ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + print ''; } else { $htmltext = $langs->trans("ContactSuperAdminForChange"); print $form->textwithpicto($conf->global->MAIN_MAIL_SMTPS_PW_EMAILING, $htmltext, 1, 'superadmin'); - print ''; + print ''; } print ''; } + // OAUTH service provider + if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))) { + print ''.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE").''; + + // SuperAdministrator access only + if ((empty($conf->global->MAIN_MODULE_MULTICOMPANY)) || ($user->admin && !$user->entity)) { + print $form->selectarray('MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING', $oauthservices, $conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING); + } else { + $text = $oauthservices[$conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING]; + if (empty($text)) { + $text = $langs->trans("Undefined"); + } + $htmltext = $langs->trans("ContactSuperAdminForChange"); + print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); + print ''; + } + print ''; + } + + // TLS print ''.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))) { @@ -427,11 +521,15 @@ if ($action == 'edit') { // Method print ''.$langs->trans("MAIN_MAIL_SENDMODE").''; - $text = $listofmethods[$conf->global->MAIN_MAIL_SENDMODE_EMAILING]; + $text = $listofmethods[getDolGlobalString('MAIN_MAIL_SENDMODE_EMAILING')]; if (empty($text)) { $text = $langs->trans("Undefined").img_warning(); } - print $text; + if (getDolGlobalString('MAIN_MAIL_SENDMODE_EMAILING') == 'default') { + print ''.$text.''; + } else { + print $text; + } print ''; if (!empty($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && $conf->global->MAIN_MAIL_SENDMODE_EMAILING != 'default') { @@ -449,16 +547,33 @@ if ($action == 'edit') { print ''.$langs->trans("MAIN_MAIL_SMTP_PORT", ini_get('smtp_port') ?ini_get('smtp_port') : $langs->transnoentities("Undefined")).''.(!empty($conf->global->MAIN_MAIL_SMTP_PORT_EMAILING) ? $conf->global->MAIN_MAIL_SMTP_PORT_EMAILING : '').''; } + // AUTH method + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE_EMAILING'), array('smtps', 'swiftmailer'))) { + $authtype = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING', 'LOGIN'); + $text = ($authtype === "LOGIN") ? $langs->trans("UsePassword") : ($authtype === "XOAUTH2" ? $langs->trans("UseOauth") : '') ; + print ''.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''.$text.''; + } + // SMTPS ID if (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer'))) { print ''.$langs->trans("MAIN_MAIL_SMTPS_ID").''.getDolGlobalString('MAIN_MAIL_SMTPS_ID_EMAILING').''; } // SMTPS PW - if (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer'))) { + if (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING') != "XOAUTH2") { print ''.$langs->trans("MAIN_MAIL_SMTPS_PW").''.preg_replace('/./', '*', getDolGlobalString('MAIN_MAIL_SMTPS_PW_EMAILING')).''; } + // SMTPS oauth service + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE_EMAILING'), array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING') === "XOAUTH2") { + $text = $oauthservices[$conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING]; + if (empty($text)) { + $text = $langs->trans("Undefined").img_warning(); + } + print ''.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING").''.$text.''; + } + + // TLS print ''.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; if (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer'))) { @@ -529,16 +644,16 @@ if ($action == 'edit') { if (!empty($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && $conf->global->MAIN_MAIL_SENDMODE_EMAILING != 'default') { if ($conf->global->MAIN_MAIL_SENDMODE_EMAILING != 'mail' || !$linuxlike) { if (function_exists('fsockopen') && $port && $server) { - print ''.$langs->trans("DoTestServerAvailability").''; + print '' . $langs->trans("DoTestServerAvailability") . ''; } } else { - print ''.$langs->trans("DoTestServerAvailability").''; + print '' . $langs->trans("DoTestServerAvailability") . ''; } - print ''.$langs->trans("DoTestSend").''; + print '' . $langs->trans("DoTestSend") . ''; - if (!empty($conf->fckeditor->enabled)) { - print ''.$langs->trans("DoTestSendHTML").''; + if (isModEnabled('fckeditor')) { + print '' . $langs->trans("DoTestSendHTML") . ''; } } @@ -593,8 +708,8 @@ if ($action == 'edit') { $formmail->withfrom = 1; $formmail->witherrorsto = 1; $formmail->withto = (GETPOSTISSET('sendto') ? GETPOST('sendto', 'restricthtml') : ($user->email ? $user->email : 1)); - $formmail->withtocc = (GETPOSTISSET(['sendtocc']) ? GETPOST('sendtocc', 'restricthtml') : 1); // ! empty to keep field if empty - $formmail->withtoccc = (GETPOSTISSET(['sendtoccc']) ? GETPOST('sendtoccc', 'restricthtml') : 1); // ! empty to keep field if empty + $formmail->withtocc = (GETPOSTISSET('sendtocc') ? GETPOST('sendtocc', 'restricthtml') : 1); // ! empty to keep field if empty + $formmail->withtoccc = (GETPOSTISSET('sendtoccc') ? GETPOST('sendtoccc', 'restricthtml') : 1); // ! empty to keep field if empty $formmail->withtopic = (GETPOSTISSET('subject') ? GETPOST('subject') : $langs->trans("Test")); $formmail->withtopicreadonly = 0; $formmail->withfile = 2; diff --git a/htdocs/admin/mails_senderprofile_list.php b/htdocs/admin/mails_senderprofile_list.php index 8e31d0e6d62..95f57d5dfc5 100644 --- a/htdocs/admin/mails_senderprofile_list.php +++ b/htdocs/admin/mails_senderprofile_list.php @@ -22,6 +22,7 @@ * \brief Page to adminsiter email sender profiles */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -285,7 +286,7 @@ foreach($object->fields as $key => $val) $sql .= "t.".$key.", "; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); } // Add where from hooks @@ -380,14 +381,17 @@ if ($action != 'create') { if ($action == 'edit') { print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; print ''; @@ -409,14 +413,17 @@ if ($action != 'create') { print ''; */ print '
'.$langs->trans("Label").'
'.$langs->trans("Email").'
'.$langs->trans("Label").'
'.$langs->trans("Email").''; + print img_picto('', 'email', 'class="pictofixedwidth"'); + print '
'.$langs->trans("Signature").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor = new DolEditor('signature', (GETPOSTISSET('signature') ? GETPOST('signature', 'restricthtml') : $object->signature), '', 138, 'dolibarr_notes', 'In', true, true, empty($conf->global->FCKEDITOR_ENABLE_USERSIGN) ? 0 : 1, ROWS_4, '90%'); print $doleditor->Create(1); print '
'.$langs->trans("User").''; + print img_picto('', 'user', 'class="pictofixedwidth"'); print $form->select_dolusers((GETPOSTISSET('private') ? GETPOST('private', 'int') : $object->private), 'private', 1, null, 0, ($user->admin ? '' : $user->id)); print '
'.$langs->trans("Position").'
'; - print ''; - print ''; + print ''; + print ''; print ''; print ''; print ''; @@ -557,6 +564,7 @@ if (!empty($extrafields->attributes[$object->table_element]['computed']) && is_a // -------------------------------------------------------------------- $i = 0; $totalarray = array(); +$totalarray['nbfield'] = 0; while ($i < ($limit ? min($num, $limit) : $num)) { $obj = $db->fetch_object($resql); if (empty($obj)) { diff --git a/htdocs/admin/mails_templates.php b/htdocs/admin/mails_templates.php index 619a5003161..1cb418cb6c9 100644 --- a/htdocs/admin/mails_templates.php +++ b/htdocs/admin/mails_templates.php @@ -33,6 +33,7 @@ * \brief Page to administer emails templates */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -45,19 +46,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; // Load translation files required by the page $langsArray=array("errors", "admin", "mails", "languages"); -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { $langsArray[]='members'; } -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langsArray[]='eventorganization'; } $langs->loadLangs($langsArray); -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; +$toselect = GETPOST('toselect', 'array'); +$action = GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'; $massaction = GETPOST('massaction', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation $mode = GETPOST('mode', 'aZ09'); +$optioncss = GETPOST('optioncss', 'alpha'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'alpha'); @@ -66,6 +69,7 @@ $search_type_template = GETPOST('search_type_template', 'alpha'); $search_lang = GETPOST('search_lang', 'alpha'); $search_fk_user = GETPOST('search_fk_user', 'intcomma'); $search_topic = GETPOST('search_topic', 'alpha'); +$search_module = GETPOST('search_module', 'alpha'); $acts = array(); $actl = array(); @@ -77,6 +81,7 @@ $actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"') $listoffset = GETPOST('listoffset', 'alpha'); $listlimit = GETPOST('listlimit', 'alpha') > 0 ?GETPOST('listlimit', 'alpha') : 1000; +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -104,7 +109,7 @@ $tabname[25] = MAIN_DB_PREFIX."c_email_templates"; // Nom des champs en resultat de select pour affichage du dictionnaire $tabfield = array(); -$tabfield[25] = "label,lang,type_template,fk_user,private,position,topic,joinfiles,content"; +$tabfield[25] = "label,lang,type_template,fk_user,private,position,module,topic,joinfiles,content"; if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) { $tabfield[25] .= ',content_lines'; } @@ -175,63 +180,63 @@ $elementList = array(); $elementList['all'] = '-- '.dol_escape_htmltag($langs->trans("All")).' --'; $elementList['none'] = '-- '.dol_escape_htmltag($langs->trans("None")).' --'; -$elementList['user'] = img_picto('', 'user', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToUser')); -if (!empty($conf->adherent->enabled) && !empty($user->rights->adherent->lire)) { - $elementList['member'] = img_picto('', 'object_member', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToMember')); +$elementList['user'] = img_picto('', 'user', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToUser')); +if (isModEnabled('adherent') && !empty($user->rights->adherent->lire)) { + $elementList['member'] = img_picto('', 'object_member', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToMember')); } -if (!empty($conf->recruitment->enabled) && !empty($user->rights->recruitment->recruitmentjobposition->read)) { - $elementList['recruitmentcandidature_send'] = img_picto('', 'recruitmentcandidature', 'class="paddingright"').dol_escape_htmltag($langs->trans('RecruitmentCandidatures')); +if (isModEnabled('recruitment') && !empty($user->rights->recruitment->recruitmentjobposition->read)) { + $elementList['recruitmentcandidature_send'] = img_picto('', 'recruitmentcandidature', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('RecruitmentCandidatures')); } -if (!empty($conf->societe->enabled) && !empty($user->rights->societe->lire)) { - $elementList['thirdparty'] = img_picto('', 'company', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToThirdparty')); +if (isModEnabled("societe") && $user->hasRight('societe', 'lire')) { + $elementList['thirdparty'] = img_picto('', 'company', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToThirdparty')); } -if (!empty($conf->projet->enabled)) { - $elementList['project'] = img_picto('', 'project', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToProject')); +if (isModEnabled('project')) { + $elementList['project'] = img_picto('', 'project', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToProject')); } -if (!empty($conf->propal->enabled) && !empty($user->rights->propal->lire)) { - $elementList['propal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendProposal')); +if (isModEnabled("propal") && !empty($user->rights->propal->lire)) { + $elementList['propal_send'] = img_picto('', 'propal', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendProposal')); } -if (!empty($conf->commande->enabled) && !empty($user->rights->commande->lire)) { - $elementList['order_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendOrder')); +if (isModEnabled('commande') && !empty($user->rights->commande->lire)) { + $elementList['order_send'] = img_picto('', 'order', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendOrder')); } if (isModEnabled('facture') && !empty($user->rights->facture->lire)) { - $elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice')); + $elementList['facture_send'] = img_picto('', 'bill', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendInvoice')); } -if (!empty($conf->expedition->enabled)) { - $elementList['shipping_send'] = img_picto('', 'dolly', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendShipment')); +if (isModEnabled("expedition")) { + $elementList['shipping_send'] = img_picto('', 'dolly', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendShipment')); } -if (!empty($conf->reception->enabled)) { - $elementList['reception_send'] = img_picto('', 'dollyrevert', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendReception')); +if (isModEnabled("reception")) { + $elementList['reception_send'] = img_picto('', 'dollyrevert', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendReception')); } -if (!empty($conf->ficheinter->enabled)) { - $elementList['fichinter_send'] = img_picto('', 'intervention', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendIntervention')); +if (isModEnabled('ficheinter')) { + $elementList['fichinter_send'] = img_picto('', 'intervention', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendIntervention')); } -if (!empty($conf->supplier_proposal->enabled)) { - $elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation')); +if (isModEnabled('supplier_proposal')) { + $elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation')); } -if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->commande->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire))) { - $elementList['order_supplier_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder')); +if ((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->commande->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire))) { + $elementList['order_supplier_send'] = img_picto('', 'order', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder')); } -if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) { - $elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice')); +if ((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) { + $elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice')); } -if (!empty($conf->contrat->enabled) && !empty($user->rights->contrat->lire)) { - $elementList['contract'] = img_picto('', 'contract', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendContract')); +if (isModEnabled('contrat') && !empty($user->rights->contrat->lire)) { + $elementList['contract'] = img_picto('', 'contract', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendContract')); } -if (!empty($conf->ticket->enabled) && !empty($user->rights->ticket->read)) { - $elementList['ticket_send'] = img_picto('', 'ticket', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTicket')); +if (isModEnabled('ticket') && !empty($user->rights->ticket->read)) { + $elementList['ticket_send'] = img_picto('', 'ticket', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToTicket')); } -if (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire)) { - $elementList['expensereport_send'] = img_picto('', 'trip', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTExpenseReport')); +if (isModEnabled('expensereport') && !empty($user->rights->expensereport->lire)) { + $elementList['expensereport_send'] = img_picto('', 'trip', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToExpenseReport')); } if (isModEnabled('agenda')) { - $elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush')); + $elementList['actioncomm_send'] = img_picto('', 'action', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendEventPush')); } -if (!empty($conf->eventorganization->enabled) && !empty($user->rights->eventorganization->read)) { - $elementList['conferenceorbooth'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventOrganization')); +if (isModEnabled('eventorganization') && !empty($user->rights->eventorganization->read)) { + $elementList['conferenceorbooth'] = img_picto('', 'action', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendEventOrganization')); } if (!empty($conf->partnership->enabled) && !empty($user->rights->partnership->read)) { - $elementList['partnership_send'] = img_picto('', 'partnership', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToPartnership')); + $elementList['partnership_send'] = img_picto('', 'partnership', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToPartnership')); } $parameters = array('elementList'=>$elementList); @@ -242,17 +247,17 @@ if ($reshook == 0) { } } +$id = 25; +$acceptlocallinktomedia = (acceptLocalLinktoMedia() > 0 ? 1 : 0); +// Security if (!empty($user->socid)) { accessforbidden(); } $permissiontoadd = 1; - -//asort($elementList); - -$id = 25; +$permissiontodelete = 1; @@ -286,12 +291,13 @@ if (empty($reshook)) { $search_lang = ''; $search_fk_user = ''; $search_topic = ''; + $search_module = ''; $toselect = array(); $search_array_options = array(); } - // Actions add or modify an entry into a dictionary - if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) { + // Actions add or modify an email template + if ((GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) && $permissiontoadd) { $listfield = explode(',', str_replace(' ', '', $tabfield[$id])); $listfieldinsert = explode(',', $tabfieldinsert[$id]); $listfieldmodify = explode(',', $tabfieldinsert[$id]); @@ -346,7 +352,7 @@ if (empty($reshook)) { } setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); - $action = 'add'; + $action = 'create'; } } @@ -362,7 +368,7 @@ if (empty($reshook)) { // List of values $i = 0; foreach ($listfieldinsert as $f => $value) { - $keycode = $listfieldvalue[$i]; + $keycode = isset($listfieldvalue[$i]) ? $listfieldvalue[$i] : ""; if ($value == 'lang') { $keycode = 'langcode'; } @@ -420,7 +426,7 @@ if (empty($reshook)) { } else { dol_print_error($db); } - $action = 'add'; + $action = 'create'; } } @@ -508,7 +514,7 @@ if (empty($reshook)) { } } - if ($action == 'confirm_delete' && $confirm == 'yes') { // delete + if ($action == 'confirm_delete' && $confirm == 'yes' && $permissiontodelete) { // delete $rowidcol = "rowid"; $sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid); @@ -527,7 +533,7 @@ if (empty($reshook)) { } // activate - if ($action == $acts[0]) { + if ($action == $acts[0] && $permissiontoadd) { $rowidcol = "rowid"; $sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE rowid = ".((int) $rowid); @@ -539,7 +545,7 @@ if (empty($reshook)) { } // disable - if ($action == $acts[1]) { + if ($action == $acts[1] && $permissiontoadd) { $rowidcol = "rowid"; $sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE rowid = ".((int) $rowid); @@ -579,7 +585,7 @@ if (!$user->admin) { $sql .= " AND (private = 0 OR (private = 1 AND fk_user = ".((int) $user->id)."))"; // Show only public and private to me $sql .= " AND (active = 1 OR fk_user = ".((int) $user->id).")"; // Show only active or owned by me } -if (empty($conf->global->MAIN_MULTILANGS)) { +if (!getDolGlobalInt('MAIN_MULTILANGS')) { $sql .= " AND (lang = '".$db->escape($langs->defaultlang)."' OR lang IS NULL OR lang = '')"; } if ($search_label) { @@ -594,6 +600,9 @@ if ($search_lang) { if ($search_fk_user != '' && $search_fk_user != '-1') { $sql .= natural_search('fk_user', $search_fk_user, 2); } +if ($search_module) { + $sql .= natural_search('module', $search_module); +} if ($search_topic) { $sql .= natural_search('topic', $search_topic); } @@ -650,7 +659,7 @@ $linkback = ''; $titlepicto = 'title_setup'; -$url = DOL_URL_ROOT.'/admin/mails_templates.php?action=add&token='.newToken(); +$url = DOL_URL_ROOT.'/admin/mails_templates.php?action=create'; $newcardbutton = dolGetButtonTitle($langs->trans('NewEMailTemplate'), '', 'fa fa-plus-circle', $url, '', $permissiontoadd); @@ -681,10 +690,11 @@ if ($action == 'delete') { $fieldlist = explode(',', $tabfield[$id]); -if ($action == 'add') { +if ($action == 'create') { // Form to add a new line print ''; print ''; + print ''; print ''; print '
'; @@ -698,11 +708,14 @@ if ($action == 'add') { $valuetoshow = ucfirst($fieldlist[$field]); // Par defaut $valuetoshow = $langs->trans($valuetoshow); // try to translate $align = "left"; + if ($fieldlist[$field] == 'module') { + $valuetoshow = ''; + } if ($fieldlist[$field] == 'fk_user') { $valuetoshow = $langs->trans("Owner"); } if ($fieldlist[$field] == 'lang') { - $valuetoshow = (empty($conf->global->MAIN_MULTILANGS) ? ' ' : $langs->trans("Language")); + $valuetoshow = (!getDolGlobalInt('MAIN_MULTILANGS') ? ' ' : $langs->trans("Language")); } if ($fieldlist[$field] == 'type') { $valuetoshow = $langs->trans("Type"); @@ -735,7 +748,6 @@ if ($action == 'add') { if ($fieldlist[$field] == 'content_lines') { $valuetoshow = ''; } - if ($valuetoshow != '') { print '
'; @@ -878,6 +890,9 @@ if ($search_type_template != '-1') { if ($search_fk_user > 0) { $param .= '&search_fk_user='.urlencode($search_fk_user); } +if ($search_module) { + $param .= '&search_module='.urlencode($search_module); +} if ($search_topic) { $param .= '&search_topic='.urlencode($search_topic); } @@ -905,21 +920,23 @@ if ($num > $listlimit) { print ''; foreach ($fieldlist as $field => $value) { - if ($value == 'label') { + if ($value == 'module') { + print ''; + } elseif ($value == 'label') { print ''; } elseif ($value == 'lang') { print ''; } elseif ($value == 'fk_user') { print ''; } elseif ($value == 'topic') { print ''; } elseif ($value == 'type_template') { print ''; } elseif (!in_array($value, array('content', 'content_lines'))) { print ''; @@ -954,6 +971,9 @@ foreach ($fieldlist as $field => $value) { */ $valuetoshow = ucfirst($fieldlist[$field]); // By defaut $valuetoshow = $langs->trans($valuetoshow); // try to translate + if ($fieldlist[$field] == 'module') { + $align = 'tdoverflowmax100'; + } if ($fieldlist[$field] == 'fk_user') { $valuetoshow = $langs->trans("Owner"); } @@ -996,11 +1016,15 @@ foreach ($fieldlist as $field => $value) { $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, '', $forcenowrap); // Tooltip on hover } } - print getTitleFieldOfList($valuetoshow, 0, $_SERVER["PHP_SELF"], ($sortable ? $fieldlist[$field] : ''), ($page ? 'page='.$page.'&' : ''), $param, "align=".$align, $sortfield, $sortorder); + $sortfieldtouse = ($sortable ? $fieldlist[$field] : ''); + if ($sortfieldtouse == 'type_template') { + $sortfieldtouse.= ',label'; + } + print getTitleFieldOfList($valuetoshow, 0, $_SERVER["PHP_SELF"], $sortfieldtouse, ($page ? 'page='.$page.'&' : ''), $param, '', $sortfield, $sortorder, $align.' '); } } -print getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], "active", ($page ? 'page='.$page.'&' : ''), $param, 'align="center"', $sortfield, $sortorder); +print getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], "active", ($page ? 'page='.$page.'&' : ''), $param, '', $sortfield, $sortorder, 'center '); print getTitleFieldOfList(''); print ''; @@ -1020,7 +1044,7 @@ if ($num) { $reshook = $hookmanager->executeHooks('editEmailTemplateFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks $error = $hookmanager->error; $errors = $hookmanager->errors; - // Show fields + // Show main fields if (empty($reshook)) { fieldList($fieldlist, $obj, $tabname[$id], 'edit'); } @@ -1041,37 +1065,39 @@ if ($num) { foreach ($fieldsforcontent as $tmpfieldlist) { $showfield = 1; $align = "left"; - $valuetoshow = $obj->{$tmpfieldlist}; + $valuetoshow = $obj->$tmpfieldlist; $class = 'tddict'; // Show value for field if ($showfield) { // Show line for topic, joinfiles and content print ''; - print ''; @@ -1123,7 +1149,8 @@ if ($num) { $align = ""; $class = "tddict"; $title = ''; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($value == 'label' || $value == 'topic') { if ($langs->trans($valuetoshow) != $valuetoshow) { $valuetoshow = $langs->trans($valuetoshow); @@ -1134,7 +1161,7 @@ if ($num) { $class .= ' tdoverflowmax100'; } if ($value == 'topic') { - $class .= 'tdoverflowmax200 small'; + $class .= ' tdoverflowmax200 small'; } if ($value == 'type_template') { $valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow; @@ -1164,7 +1191,7 @@ if ($num) { if ($value == 'joinfiles') { $align = "center"; if ($valuetoshow) { - $valuetoshow = 1; + $valuetoshow = yn(1); } else { $valuetoshow = ''; } @@ -1203,7 +1230,7 @@ if ($num) { // Status / Active print ''; + } elseif ($value == 'fk_user') { print ''; } elseif ($value == 'lang') { print ''; } elseif ($value == 'type_template') { // Le type de template print ''; } elseif ($context == 'add' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) { @@ -1338,7 +1367,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') $class = 'maxwidth50'; $classtd = 'center'; } if ($value == 'position') { - $class = 'maxwidth50'; $classtd = 'center'; + $class = 'maxwidth50 center'; $classtd = 'center'; } if ($value == 'libelle') { $class = 'quatrevingtpercent'; @@ -1355,7 +1384,6 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') if (empty($user->admin)) { print $form->selectyesno($value, '1', 1); } else { - //print ''; print $form->selectyesno($value, (isset($obj->{$value}) ? $obj->{$value}:''), 1); } } else { diff --git a/htdocs/admin/mails_ticket.php b/htdocs/admin/mails_ticket.php index 481fcad212c..05d66516cde 100644 --- a/htdocs/admin/mails_ticket.php +++ b/htdocs/admin/mails_ticket.php @@ -23,6 +23,7 @@ * \brief Page to setup mails for ticket */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -31,22 +32,28 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $langs->loadLangs(array('companies', 'products', 'admin', 'mails', 'other', 'errors')); $action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); $usersignature = $user->signature; // For action = test or send, we ensure that content is not html, even for signature, because this we want a test with NO html. if ($action == 'test' || $action == 'send') { - $usersignature = dol_string_nohtmltag($usersignature); + $usersignature = dol_string_nohtmltag($usersignature, 2); } $substitutionarrayfortest = array( -'__LOGIN__' => $user->login, -'__ID__' => 'TESTIdRecord', -'__EMAIL__' => 'TESTEMail', -'__LASTNAME__' => 'TESTLastname', -'__FIRSTNAME__' => 'TESTFirstname', -'__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), -//'__PERSONALIZED__' => 'TESTPersonalized' // Hiden because not used yet + '__DOL_MAIN_URL_ROOT__'=>DOL_MAIN_URL_ROOT, + '__ID__' => 'TESTIdRecord', + '__EMAIL__' => 'TESTEMail', + '__LOGIN__' => $user->login, + '__LASTNAME__' => 'TESTLastname', + '__FIRSTNAME__' => 'TESTFirstname', + '__ADDRESS__'=> 'RecipientAddress', + '__ZIP__'=> 'RecipientZip', + '__TOWN_'=> 'RecipientTown', + '__COUNTRY__'=> 'RecipientCountry', + '__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), + '__SENDEREMAIL_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails + //'__PERSONALIZED__' => 'TESTPersonalized' // Hiden because not used yet ); complete_substitutions_array($substitutionarrayfortest, $langs); @@ -66,8 +73,15 @@ if ($action == 'update' && !$cancel) { dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT_TICKET", GETPOST("MAIN_MAIL_SMTP_PORT_TICKET"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER_TICKET", GETPOST("MAIN_MAIL_SMTP_SERVER_TICKET"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID_TICKET", GETPOST("MAIN_MAIL_SMTPS_ID_TICKET"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_TICKET", GETPOST("MAIN_MAIL_SMTPS_PW_TICKET"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS_TICKET", GETPOST("MAIN_MAIL_EMAIL_TLS_TICKET"), 'chaine', 0, '', $conf->entity); + if (GETPOSTISSET("MAIN_MAIL_SMTPS_PW_TICKET")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_TICKET", GETPOST("MAIN_MAIL_SMTPS_PW_TICKET", 'none'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET("MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET", GETPOST("MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET", 'chaine'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET("MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET")) { + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET", GETPOST("MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET", 'chaine'), 'chaine', 0, '', $conf->entity); + }dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS_TICKET", GETPOST("MAIN_MAIL_EMAIL_TLS_TICKET"), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS_TICKET", GETPOST("MAIN_MAIL_EMAIL_STARTTLS_TICKET"), 'chaine', 0, '', $conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); @@ -85,10 +99,10 @@ $trackid = (($action == 'testhtml') ? "testhtml" : "test"); $sendcontext = 'ticket'; // Force to use dedicated context of setup for ticket include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; -if ($action == 'presend' && GETPOST('trackid') == 'test') { +if ($action == 'presend' && GETPOST('trackid', 'alphanohtml') == 'test') { $action = 'test'; } -if ($action == 'presend' && GETPOST('trackid') == 'testhtml') { +if ($action == 'presend' && GETPOST('trackid', 'alphanohtml') == 'testhtml') { $action = 'testhtml'; } @@ -139,6 +153,25 @@ if (version_compare(phpversion(), '7.0', '>=')) { $listofmethods['swiftmailer'] = 'Swift Mailer socket library'; } +// List of oauth services +$oauthservices = array(); + +foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) { + $key = preg_replace('/^OAUTH_/', '', $key); + $key = preg_replace('/_ID$/', '', $key); + if (preg_match('/^.*-/', $key)) { + $name = preg_replace('/^.*-/', '', $key); + } else { + $name = $langs->trans("NoName"); + } + $provider = preg_replace('/-.*$/', '', $key); + $provider = ucfirst(strtolower($provider)); + + $oauthservices[$key] = $name." (".$provider.")"; + } +} + if ($action == 'edit') { if ($conf->use_javascript_ajax) { @@ -162,6 +195,8 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").prop("disabled", true); jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val(0); jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").prop("disabled", true); + jQuery(".smtp_method").hide(); + jQuery(".smtp_auth_method").hide(); '; if ($linuxlike) { print ' @@ -192,7 +227,9 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").show(); jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").show(); jQuery("#smtp_server_mess").hide(); - jQuery("#smtp_port_mess").hide(); + jQuery("#smtp_port_mess").hide(); + jQuery(".smtp_method").show(); + jQuery(".smtp_auth_method").show(); } if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'swiftmailer\') { @@ -207,12 +244,37 @@ if ($action == 'edit') { jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").show(); jQuery("#smtp_server_mess").hide(); jQuery("#smtp_port_mess").hide(); + jQuery(".smtp_method").show(); + jQuery(".smtp_auth_method").show(); } } + function change_smtp_auth_method() { + console.log(jQuery("#radio_pw").prop("checked")); + if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'smtps\' && jQuery("#radio_oauth").prop("checked")) { + jQuery(".smtp_oauth_service").show(); + jQuery(".smtp_pw").hide(); + } else if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'swiftmailer\' && jQuery("#radio_oauth").prop("checked")) { + jQuery(".smtp_oauth_service").show(); + jQuery(".smtp_pw").hide(); + } else if(jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'mail\' || jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'default\'){ + jQuery(".smtp_oauth_service").hide(); + jQuery(".smtp_pw").hide(); + } else { + jQuery(".smtp_oauth_service").hide(); + jQuery(".smtp_pw").show(); + } + } initfields(); + change_smtp_auth_method(); + jQuery("#MAIN_MAIL_SENDMODE_TICKET").change(function() { initfields(); + change_smtp_auth_method(); + }); + jQuery("#radio_pw, #radio_oauth").change(function() { + change_smtp_auth_method(); + }); jQuery("#MAIN_MAIL_EMAIL_TLS").change(function() { if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val() == 1) jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val(0); @@ -260,12 +322,15 @@ if ($action == 'edit') { // Host server - print ''; if (!$conf->use_javascript_ajax && $linuxlike && $conf->global->MAIN_MAIL_SENDMODE_TICKET == 'mail') { + print ''; } else { + print ''; } - print ''; + print ''; // Port @@ -294,7 +360,7 @@ if ($action == 'edit') { if (!$conf->use_javascript_ajax && $linuxlike && $conf->global->MAIN_MAIL_SENDMODE_TICKET == 'mail') { print $langs->trans("MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike"); print ''; + // AUTH method + if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer')))) { + print ''; + } + // ID if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer')))) { $mainstmpid = (!empty($conf->global->MAIN_MAIL_SMTPS_ID_TICKET) ? $conf->global->MAIN_MAIL_SMTPS_ID_TICKET : ''); print ''; } + // OAUTH service provider + if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer')))) { + print ''; + } + // TLS print ''; if (!empty($conf->global->MAIN_MAIL_SENDMODE_TICKET) && $conf->global->MAIN_MAIL_SENDMODE_TICKET != 'default') { @@ -416,16 +523,32 @@ if ($action == 'edit') { print ''; } + // AUTH method + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE_TICKET'), array('smtps', 'swiftmailer'))) { + $authtype = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET', 'LOGIN'); + $text = ($authtype === "LOGIN") ? $langs->trans("UsePassword") : ($authtype === "XOAUTH2" ? $langs->trans("UseOauth") : '') ; + print ''; + } + // SMTPS ID if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer'))) { print ''; } // SMTPS PW - if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer'))) { + if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET') != "XOAUTH2") { print ''; } + // SMTPS oauth service + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE_TICKET'), array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET') === "XOAUTH2") { + $text = $oauthservices[$conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET]; + if (empty($text)) { + $text = $langs->trans("Undefined").img_warning(); + } + print ''; + } + // TLS print ''; - print ''; + print ''; + print ajax_combobox('menuuser'); + print ''; print ''; // Type - print ''; @@ -373,12 +354,6 @@ if ($action == 'create') { print ''; print ''; - // Target - print ''; - // Enabled print ''; print ''; @@ -387,6 +362,14 @@ if ($action == 'create') { print ''; print ''; + // Target + print ''; + print '
'.$langs->trans("Label").'
'.$langs->trans("Email").'
'.$langs->trans("Label").'
'.$langs->trans("Email").''; + print img_picto('', 'email', 'class="pictofixedwidth"'); + print '
'.$langs->trans("Signature").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor = new DolEditor('signature', GETPOST('signature'), '', 138, 'dolibarr_notes', 'In', true, true, empty($conf->global->FCKEDITOR_ENABLE_USERSIGN) ? 0 : 1, ROWS_4, '90%'); print $doleditor->Create(1); print '
'.$langs->trans("User").''; + print img_picto('', 'user', 'class="pictofixedwidth"'); print $form->select_dolusers((GETPOSTISSET('private') ? GETPOST('private', 'int') : -1), 'private', 1, null, 0, ($user->admin ? '' : $user->id)); print '
'.$langs->trans("Position").'
'; if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) { @@ -798,9 +810,9 @@ if ($action == 'add') { $fieldsforcontent = array('topic', 'joinfiles', 'content', 'content_lines'); } foreach ($fieldsforcontent as $tmpfieldlist) { - print '
'; + print '
'; - // Label + // Topic of email if ($tmpfieldlist == 'topic') { print ''.$form->textwithpicto($langs->trans("Topic"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).' '; } @@ -816,16 +828,16 @@ if ($action == 'add') { // Input field if ($tmpfieldlist == 'topic') { - print ''; + print ''; } elseif ($tmpfieldlist == 'joinfiles') { - print ''; + print $form->selectyesno($tmpfieldlist, (isset($obj->$tmpfieldlist) ? $obj->$tmpfieldlist : '0'), 1, false, 0, 1); } else { - // print ''; $okforextended = true; if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) { $okforextended = false; } - $doleditor = new DolEditor($tmpfieldlist, (!empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : ''), '', 180, 'dolibarr_mailings', 'In', 0, true, $okforextended, ROWS_4, '90%'); + + $doleditor = new DolEditor($tmpfieldlist, (!empty($obj->$tmpfieldlist) ? $obj->$tmpfieldlist : ''), '', 180, 'dolibarr_mailings', 'In', false, $acceptlocallinktomedia, $okforextended, ROWS_4, '90%'); print $doleditor->Create(1); } print '
'; - print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth150'); + print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth100'); print ''; - print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 0, '', 0, '', 'maxwidth150'); + print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 0, '', 0, '', 'maxwidth100', 1); print ''; - print $form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'minwidth150', 1, '', 0, 1); + print $form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'minwidth100 maxwidth125', 1, '', 0, 1); print '
'; + print ''; if ($tmpfieldlist == 'topic') { print ''.$form->textwithpicto($langs->trans("Topic"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).' '; print ''; } if ($tmpfieldlist == 'joinfiles') { print ''.$form->textwithpicto($langs->trans("FilesAttachedToEmail"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).' '; - print ''; + print $form->selectyesno($tmpfieldlist.'-'.$rowid, (isset($obj->$tmpfieldlist) ? $obj->$tmpfieldlist : '0'), 1, false, 0, 1); } + if ($tmpfieldlist == 'content') { print $form->textwithpicto($langs->trans("Content"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).'
'; $okforextended = true; if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) { $okforextended = false; } - $doleditor = new DolEditor($tmpfieldlist.'-'.$rowid, (!empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : ''), '', 500, 'dolibarr_mailings', 'In', 0, true, $okforextended, ROWS_6, '90%'); + $doleditor = new DolEditor($tmpfieldlist.'-'.$rowid, (!empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : ''), '', 500, 'dolibarr_mailings', 'In', 0, $acceptlocallinktomedia, $okforextended, ROWS_6, '90%'); print $doleditor->Create(1); } if ($tmpfieldlist == 'content_lines') { print $form->textwithpicto($langs->trans("ContentForLines"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).'
'; $okforextended = true; - if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) + if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) { $okforextended = false; - $doleditor = new DolEditor($tmpfieldlist.'-'.$rowid, (! empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : ''), '', 140, 'dolibarr_mailings', 'In', 0, false, $okforextended, ROWS_6, '90%'); + } + $doleditor = new DolEditor($tmpfieldlist.'-'.$rowid, (!empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : ''), '', 140, 'dolibarr_mailings', 'In', 0, $acceptlocallinktomedia, $okforextended, ROWS_6, '90%'); print $doleditor->Create(1); } print '
'; if ($canbedisabled) { - print ''.$actl[$obj->active].''; + print ''.$actl[$obj->active].''; } else { print ''.$actl[$obj->active].''; } @@ -1261,29 +1288,31 @@ $db->close(); */ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') { - global $conf, $langs, $user, $db; + global $langs, $user, $db; global $form; global $elementList; $formadmin = new FormAdmin($db); foreach ($fieldlist as $field => $value) { - if ($value == 'fk_user') { + if ($value == 'module') { + print ''; if ($user->admin) { - print $form->select_dolusers(empty($obj->{$value}) ? '' : $obj->{$value}, 'fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 0, '', 0, '', 'minwidth150 maxwidth300'); + print $form->select_dolusers(empty($obj->$value) ? '' : $obj->$value, 'fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 0, '', 0, '', 'minwidth75 maxwidth100'); } else { if ($context == 'add') { // I am not admin and we show the add form print $user->getNomUrl(1); // Me $forcedvalue = $user->id; } else { - if ($obj && !empty($obj->{$value}) && $obj->{$value} > 0) { + if ($obj && !empty($obj->$value) && $obj->$value > 0) { $fuser = new User($db); - $fuser->fetch($obj->{$value}); + $fuser->fetch($obj->$value); print $fuser->getNomUrl(1); $forcedvalue = $fuser->id; } else { - $forcedvalue = $obj->{$value}; + $forcedvalue = $obj->$value; } } $keyname = $value; @@ -1292,32 +1321,32 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print ''; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $selectedlang = GETPOSTISSET('langcode') ?GETPOST('langcode', 'aZ09') : $langs->defaultlang; if ($context == 'edit') { - $selectedlang = $obj->{$value}; + $selectedlang = $obj->lang; } - print $formadmin->select_language($selectedlang, 'langcode', 0, null, 1, 0, 0, 'maxwidth150'); + print $formadmin->select_language($selectedlang, 'langcode', 0, null, 1, 0, 0, 'maxwidth100'); } else { - if (!empty($obj->{$value})) { - print $obj->{$value}.' - '.$langs->trans('Language_'.$obj->{$value}); + if (!empty($obj->lang)) { + print $obj->lang.' - '.$langs->trans('Language_'.$obj->lang); } $keyname = $value; if ($keyname == 'lang') { $keyname = 'langcode'; // Avoid conflict with lang param } - print ''; + print ''; } print ''; - if ($context == 'edit' && !empty($obj->{$value}) && !in_array($obj->{$value}, array_keys($elementList))) { + if ($context == 'edit' && !empty($obj->type_template) && !in_array($obj->type_template, array_keys($elementList))) { // Current template type is an unknown type, so we must keep it as it is. - print ''; - print $obj->{$value}; + print ''; + print $obj->type_template; } else { - print $form->selectarray('type_template', $elementList, (!empty($obj->{$value}) ? $obj->{$value}:''), 1, 0, 0, '', 0, 0, 0, '', 'minwidth150', 1, '', 0, 1); + print $form->selectarray('type_template', $elementList, (!empty($obj->type_template) ? $obj->type_template:''), 1, 0, 0, '', 0, 0, 0, '', 'minwidth75 maxwidth125', 1, '', 0, 1); } print '
'; + print '
'; print $langs->trans("MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike"); print ''; - print $langs->trans("SeeLocalSendMailSetup"); + print ''.$langs->trans("SeeLocalSendMailSetup").''; + print ''; $mainserver = (!empty($conf->global->MAIN_MAIL_SMTP_SERVER_TICKET) ? $conf->global->MAIN_MAIL_SMTP_SERVER_TICKET : ''); $smtpserver = ini_get('SMTP') ?ini_get('SMTP') : $langs->transnoentities("Undefined"); if ($linuxlike) { @@ -275,18 +340,19 @@ if ($action == 'edit') { } print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + print ''; print ''; - print ''.$langs->trans("SeeLocalSendMailSetup").''; + print ''.$langs->trans("SeeLocalSendMailSetup").''; } else { $text = !empty($mainserver) ? $mainserver : $smtpserver; $htmltext = $langs->trans("ContactSuperAdminForChange"); print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); print ''; } + print '
'; - print $langs->trans("SeeLocalSendMailSetup"); + print ''.$langs->trans("SeeLocalSendMailSetup").''; } else { $mainport = (!empty($conf->global->MAIN_MAIL_SMTP_PORT_TICKET) ? $conf->global->MAIN_MAIL_SMTP_PORT_TICKET : ''); $smtpport = ini_get('smtp_port') ?ini_get('smtp_port') : $langs->transnoentities("Undefined"); @@ -305,10 +371,10 @@ if ($action == 'edit') { } print ''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; print ''; - print ''.$langs->trans("SeeLocalSendMailSetup").''; + print ''.$langs->trans("SeeLocalSendMailSetup").''; } else { $text = (!empty($mainport) ? $mainport : $smtpport); $htmltext = $langs->trans("ContactSuperAdminForChange"); @@ -318,12 +384,31 @@ if ($action == 'edit') { } print '
'.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + // Note: Default value for MAIN_MAIL_SMTPS_AUTH_TYPE if not defined is 'LOGIN' (but login/pass may be empty and they won't be provided in such a case) + print ' '; + print ''; + print '            '; + print ' '; + print ''; + } else { + $value = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE_TICKET', 'LOGIN'); + $htmltext = $langs->trans("ContactSuperAdminForChange"); + print $form->textwithpicto($langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE"), $htmltext, 1, 'superadmin'); + print ''; + } + print '
'.$langs->trans("MAIN_MAIL_SMTPS_ID").''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; } else { $htmltext = $langs->trans("ContactSuperAdminForChange"); @@ -336,9 +421,9 @@ if ($action == 'edit') { // PW if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer')))) { $mainsmtppw = (!empty($conf->global->MAIN_MAIL_SMTPS_PW_TICKET) ? $conf->global->MAIN_MAIL_SMTPS_PW_TICKET : ''); - print '
'.$langs->trans("MAIN_MAIL_SMTPS_PW").''; + print '
'.$langs->trans("MAIN_MAIL_SMTPS_PW").''; // SuperAdministrator access only - if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { print ''; } else { $htmltext = $langs->trans("ContactSuperAdminForChange"); @@ -348,6 +433,24 @@ if ($action == 'edit') { print '
'.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE").''; + // SuperAdministrator access only + if ((empty($conf->global->MAIN_MODULE_MULTICOMPANY)) || ($user->admin && !$user->entity)) { + print $form->selectarray('MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET', $oauthservices, $conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET); + } else { + $text = $oauthservices[$conf->global->MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET]; + if (empty($text)) { + $text = $langs->trans("Undefined"); + } + $htmltext = $langs->trans("ContactSuperAdminForChange"); + print $form->textwithpicto($text, $htmltext, 1, 'superadmin'); + print ''; + } + print '
'.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; @@ -394,11 +497,15 @@ if ($action == 'edit') { // Method print '
'.$langs->trans("MAIN_MAIL_SENDMODE").''; - $text = $listofmethods[$conf->global->MAIN_MAIL_SENDMODE_TICKET]; + $text = $listofmethods[getDolGlobalString('MAIN_MAIL_SENDMODE_TICKET')]; if (empty($text)) { $text = $langs->trans("Undefined").img_warning(); } - print $text; + if (getDolGlobalString('MAIN_MAIL_SENDMODE_TICKET') == 'default') { + print ''.$text.''; + } else { + print $text; + } print '
'.$langs->trans("MAIN_MAIL_SMTP_PORT", ini_get('smtp_port') ?ini_get('smtp_port') : $langs->transnoentities("Undefined")).''.(!empty($conf->global->MAIN_MAIL_SMTP_PORT_TICKET) ? $conf->global->MAIN_MAIL_SMTP_PORT_TICKET : '').'
'.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''.$text.'
'.$langs->trans("MAIN_MAIL_SMTPS_ID").''.$conf->global->MAIN_MAIL_SMTPS_ID_TICKET.'
'.$langs->trans("MAIN_MAIL_SMTPS_PW").''.preg_replace('/./', '*', $conf->global->MAIN_MAIL_SMTPS_PW_TICKET).'
'.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET").''.$text.'
'.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array('smtps', 'swiftmailer'))) { @@ -492,7 +615,7 @@ if ($action == 'edit') { print ''.$langs->trans("DoTestSend").''; - if (!empty($conf->fckeditor->enabled)) { + if (isModEnabled('fckeditor')) { print ''.$langs->trans("DoTestSendHTML").''; } } @@ -507,6 +630,7 @@ if ($action == 'edit') { // Run the test to connect if ($action == 'testconnect') { + print '
'; print load_fiche_titre($langs->trans("DoTestServerAvailability")); include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; @@ -537,8 +661,8 @@ if ($action == 'edit') { // Cree l'objet formulaire mail include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; $formmail = new FormMail($db); - $formmail->fromname = (GETPOSTISSET('fromname') ? GETPOST('fromname') : $conf->global->MAIN_MAIL_EMAIL_FROM); - $formmail->frommail = (GETPOSTISSET('frommail') ? GETPOST('frommail') : $conf->global->MAIN_MAIL_EMAIL_FROM); + $formmail->fromname = (GETPOSTISSET('fromname') ? GETPOST('fromname', 'restricthtml') : $conf->global->MAIN_MAIL_EMAIL_FROM); + $formmail->frommail = (GETPOSTISSET('frommail') ? GETPOST('frommail', 'restricthtml') : $conf->global->MAIN_MAIL_EMAIL_FROM); $formmail->trackid = (($action == 'testhtml') ? "testhtml" : "test"); $formmail->withfromreadonly = 0; $formmail->withsubstit = 0; @@ -565,7 +689,7 @@ if ($action == 'edit') { $formmail->param["returnurl"] = $_SERVER["PHP_SELF"]; // Init list of files - if (GETPOST("mode") == 'init') { + if (GETPOST("mode", "aZ09") == 'init') { $formmail->clear_attached_files(); } diff --git a/htdocs/admin/menus.php b/htdocs/admin/menus.php index 8034d813c0d..abcb2133e8c 100644 --- a/htdocs/admin/menus.php +++ b/htdocs/admin/menus.php @@ -23,6 +23,7 @@ * \brief Page to setup menu manager to use */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php index bf4ac3f8979..288cba1c5b9 100644 --- a/htdocs/admin/menus/edit.php +++ b/htdocs/admin/menus/edit.php @@ -24,6 +24,7 @@ * \brief Tool to edit menus */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; @@ -172,12 +173,12 @@ if ($action == 'add') { $action = 'create'; $error++; } - if (!$error && GETPOST('menuId') && GETPOST('type') == 'top') { + if (!$error && GETPOST('menuId', 'alphanohtml', 3) && GETPOST('type') == 'top') { setEventMessages($langs->trans("ErrorTopMenuMustHaveAParentWithId0"), null, 'errors'); $action = 'create'; $error++; } - if (!$error && !GETPOST('menuId') && GETPOST('type') == 'left') { + if (!$error && !GETPOST('menuId', 'alphanohtml', 3) && GETPOST('type') == 'left') { setEventMessages($langs->trans("ErrorLeftMenuMustHaveAParentId"), null, 'errors'); $action = 'create'; $error++; @@ -219,29 +220,6 @@ if ($action == 'add') { } } -// delete -if ($action == 'confirm_delete' && $confirm == 'yes') { - $db->begin(); - - $sql = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE rowid = ".GETPOST('menuId', 'int'); - $result = $db->query($sql); - - if ($result == 0) { - $db->commit(); - - llxHeader(); - setEventMessages($langs->trans("MenuDeleted"), null, 'mesgs'); - llxFooter(); - exit; - } else { - $db->rollback(); - - $reload = 0; - $_GET["action"] = ''; - $action = ''; - } -} - /* @@ -318,15 +296,17 @@ if ($action == 'create') { // User print '
'.$langs->trans('MenuForUsers').''.$langs->trans('DetailUser').'
'.$langs->trans('Type').''; + print '
'.$langs->trans('Position').''; if ($parent_rowid) { print $langs->trans('Left'); print ''; @@ -336,6 +316,7 @@ if ($action == 'create') { print ''; print ''; print ''; + print ajax_combobox('topleft'); } print ''.$langs->trans('DetailType').'
'.$langs->trans('Position').''.$langs->trans('DetailPosition').'
'.$langs->trans('Target').''.$langs->trans('DetailTarget').'
'.$langs->trans('Enabled').''.$langs->trans('DetailEnabled').'
'.$langs->trans('Rights').''.$langs->trans('DetailRight').'
'.$langs->trans('Target').''; + print ajax_combobox("target"); + print ''.$langs->trans('DetailTarget').'
'; print dol_get_fiche_end(); @@ -415,7 +398,7 @@ if ($action == 'create') { print ''.$langs->trans('Id').''.$menu->id.''.$langs->trans('DetailId').''; // Module - print ''.$langs->trans('MenuModule').''.$menu->module.''.$langs->trans('DetailMenuModule').''; + print ''.$langs->trans('MenuModule').''.(empty($menu->module) ? 'Core' : $menu->module).''.$langs->trans('DetailMenuModule').''; // Handler if ($menu->menu_handler == 'all') { @@ -426,14 +409,17 @@ if ($action == 'create') { print ''.$langs->trans('MenuHandler').''.$handler.''.$langs->trans('DetailMenuHandler').''; // User - print ''.$langs->trans('MenuForUsers').''; print ''; print ''; print ''; - print ''.$langs->trans('DetailUser').''; + print ''; + print ajax_combobox('menuuser'); + print ''.$langs->trans('DetailUser').''; // Type - print ''.$langs->trans('Type').''; + print ''.$langs->trans('Position').''; print ''.$langs->trans(ucfirst($menu->type)).''.$langs->trans('DetailType').''; // Mainmenu code @@ -486,12 +472,6 @@ if ($action == 'create') { print ''.$langs->trans('Position').''; print ''.$langs->trans('DetailPosition').''; - // Target - print ''.$langs->trans('Target').''.$langs->trans('DetailTarget').''; - // Enabled print ''.$langs->trans('Enabled').''; print ''.$langs->trans('DetailEnabled'); @@ -508,6 +488,14 @@ if ($action == 'create') { } print ''; + // Target + print ''.$langs->trans('Target').''; + print ajax_combobox("target"); + print ''.$langs->trans('DetailTarget').''; + print ''; print dol_get_fiche_end(); diff --git a/htdocs/admin/menus/index.php b/htdocs/admin/menus/index.php index 5a155d11411..0396c31eb96 100644 --- a/htdocs/admin/menus/index.php +++ b/htdocs/admin/menus/index.php @@ -24,6 +24,7 @@ * \brief Index page for menu editor */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php index 0c53bebfc52..9a0c34aea2b 100644 --- a/htdocs/admin/modulehelp.php +++ b/htdocs/admin/modulehelp.php @@ -1,6 +1,7 @@ * Copyright (C) 2017 Regis Houssin + * Copyright (C) 2022 Charlene Benke * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,6 +30,7 @@ if (!defined('NOTOKENRENEWAL')) { } +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -136,7 +138,7 @@ foreach ($modulesdir as $dir) { } // We discard modules according to property disabled - //if (! empty($objMod->hidden)) $modulequalified=0; + //if (!empty($objMod->hidden)) $modulequalified=0; if ($modulequalified > 0) { $publisher = dol_escape_htmltag($objMod->getPublisher()); @@ -370,29 +372,30 @@ if ($mode == 'feature') { if (count($objMod->depends)) { $text .= join(',', $objMod->depends); } else { - $text .= $langs->trans("None"); + $text .= ''.$langs->trans("None").''; } $text .= '
'.$langs->trans("RequiredBy").': '; if (count($objMod->requiredby)) { $text .= join(',', $objMod->requiredby); } else { - $text .= $langs->trans("None"); + $text .= ''.$langs->trans("None").''; } $text .= '

'; $text .= '
'.$langs->trans("AddDataTables").': '; - $sqlfiles = dol_dir_list(dol_buildpath($moduledir.'/sql/'), 'files', 0, 'llx.*\.sql', array('\.key\.sql', '\.sql\.back')); + $listofsqlfiles1 = dol_dir_list(DOL_DOCUMENT_ROOT.'/install/mysql/tables/', 'files', 0, 'llx.*-'.$moduledir.'\.sql', array('\.key\.sql', '\.sql\.back')); + $listofsqlfiles2 = dol_dir_list(dol_buildpath($moduledir.'/sql/'), 'files', 0, 'llx.*\.sql', array('\.key\.sql', '\.sql\.back')); + $sqlfiles = array_merge($listofsqlfiles1, $listofsqlfiles2); + if (count($sqlfiles) > 0) { - $text .= $langs->trans("Yes").' ('; $i = 0; foreach ($sqlfiles as $val) { - $text .= ($i ? ', ' : '').preg_replace('/\.sql$/', '', preg_replace('/llx_/', '', $val['name'])); + $text .= ($i ? ', ' : '').preg_replace('/\-'.$moduledir.'$/', '', preg_replace('/\.sql$/', '', preg_replace('/llx_/', '', $val['name']))); $i++; } - $text .= ')'; } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -405,7 +408,7 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -413,9 +416,9 @@ if ($mode == 'feature') { $text .= '
'.$langs->trans("AddData").': '; $filedata = dol_buildpath($moduledir.'/sql/data.sql'); if (dol_is_file($filedata)) { - $text .= $langs->trans("Yes").' ('.$moduledir.'/sql/data.sql)'; + $text .= $langs->trans("Yes").' ('.$moduledir.'/sql/data.sql)'; } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -434,7 +437,7 @@ if ($mode == 'feature') { } } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -443,7 +446,7 @@ if ($mode == 'feature') { if (isset($objMod->module_parts) && isset($objMod->module_parts['models']) && $objMod->module_parts['models']) { $text .= $langs->trans("Yes"); } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -452,7 +455,7 @@ if ($mode == 'feature') { if (isset($objMod->module_parts) && isset($objMod->module_parts['substitutions']) && $objMod->module_parts['substitutions']) { $text .= $langs->trans("Yes"); } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -465,7 +468,7 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -499,13 +502,13 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; $text .= '
'.$langs->trans("AddHooks").': '; - if (isset($objMod->module_parts) && is_array($objMod->module_parts['hooks']) && count($objMod->module_parts['hooks'])) { + if (isset($objMod->module_parts) && isset($objMod->module_parts['hooks']) && is_array($objMod->module_parts['hooks']) && count($objMod->module_parts['hooks'])) { $i = 0; foreach ($objMod->module_parts['hooks'] as $key => $val) { if ($key === 'entity') { @@ -528,7 +531,7 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -541,7 +544,7 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -550,7 +553,7 @@ if ($mode == 'feature') { if (isset($objMod->menu) && !empty($objMod->menu)) { // objMod can be an array or just an int 1 $text .= $langs->trans("Yes"); } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -563,7 +566,7 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; @@ -576,13 +579,13 @@ if ($mode == 'feature') { $i++; } } else { - $text .= $langs->trans("No"); + $text .= ''.$langs->trans("No").''; } $text .= '
'; $text .= '
'.$langs->trans("AddOtherPagesOrServices").': '; - $text .= $langs->trans("DetectionNotPossible"); + $text .= ''.$langs->trans("DetectionNotPossible").''; } @@ -591,7 +594,7 @@ if ($mode == 'changelog') { if ($changelog) { $text .= '
'.$changelog.'
'; } else { - $text .= '
'.$langs->trans("NotAvailable").'
'; + $text .= '
'.$langs->trans("NotAvailable").'
'; } } diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 0db1b26dc7d..e93b5a58e96 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -33,6 +33,7 @@ if (!defined('CSRFCHECK_WITH_TOKEN') && (empty($_GET['action']) || $_GET['action define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET } +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -43,10 +44,15 @@ require_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/dolistore.class.php'; // Load translation files required by the page $langs->loadLangs(array("errors", "admin", "modulebuilder")); -$mode = GETPOSTISSET('mode') ? GETPOST('mode', 'alpha') : (empty($conf->global->MAIN_MODULE_SETUP_ON_LIST_BY_DEFAULT) ? 'commonkanban' : 'common'); -if (empty($mode)) { - $mode = 'common'; +// if we set another view list mode, we keep it (till we change one more time) +if (GETPOSTISSET('mode')) { + $mode = GETPOST('mode', 'alpha'); + if ($mode =='common' || $mode =='commonkanban') + dolibarr_set_const($db, "MAIN_MODULE_SETUP_ON_LIST_BY_DEFAULT", $mode, 'chaine', 0, '', $conf->entity); +} else { + $mode = (empty($conf->global->MAIN_MODULE_SETUP_ON_LIST_BY_DEFAULT) ? 'commonkanban' : $conf->global->MAIN_MODULE_SETUP_ON_LIST_BY_DEFAULT); } + $action = GETPOST('action', 'aZ09'); $value = GETPOST('value', 'alpha'); $page_y = GETPOST('page_y', 'int'); @@ -59,9 +65,9 @@ $search_version = GETPOST('search_version', 'alpha'); // For dolistore search $options = array(); $options['per_page'] = 20; -$options['categorie'] = ((GETPOST('categorie', 'int') ?GETPOST('categorie', 'int') : 0) + 0); -$options['start'] = ((GETPOST('start', 'int') ?GETPOST('start', 'int') : 0) + 0); -$options['end'] = ((GETPOST('end', 'int') ?GETPOST('end', 'int') : 0) + 0); +$options['categorie'] = ((int) (GETPOST('categorie', 'int') ? GETPOST('categorie', 'int') : 0)); +$options['start'] = ((int) (GETPOST('start', 'int') ?GETPOST('start', 'int') : 0)); +$options['end'] = ((int) (GETPOST('end', 'int') ?GETPOST('end', 'int') : 0)); $options['search'] = GETPOST('search_keyword', 'alpha'); $dolistore = new Dolistore(false); @@ -635,11 +641,11 @@ if ($mode == 'common' || $mode == 'commonkanban') { // We discard showing according to filters if ($search_keyword) { $qualified = 0; - if (preg_match('/'.preg_quote($search_keyword).'/i', $modulename) - || preg_match('/'.preg_quote($search_keyword).'/i', $moduletechnicalname) - || preg_match('/'.preg_quote($search_keyword).'/i', $moduledesc) - || preg_match('/'.preg_quote($search_keyword).'/i', $moduledesclong) - || preg_match('/'.preg_quote($search_keyword).'/i', $moduleauthor) + if (preg_match('/'.preg_quote($search_keyword, '/').'/i', $modulename) + || preg_match('/'.preg_quote($search_keyword, '/').'/i', $moduletechnicalname) + || ($moduledesc && preg_match('/'.preg_quote($search_keyword, '/').'/i', $moduledesc)) + || ($moduledesclong && preg_match('/'.preg_quote($search_keyword, '/').'/i', $moduledesclong)) + || ($moduleauthor && preg_match('/'.preg_quote($search_keyword, '/').'/i', $moduleauthor)) ) { $qualified = 1; } @@ -781,14 +787,14 @@ if ($mode == 'common' || $mode == 'commonkanban') { if (!empty($objMod->disabled)) { $codeenabledisable .= $langs->trans("Disabled"); - } elseif (!empty($objMod->always_enabled) || ((!empty($conf->multicompany->enabled) && $objMod->core_enabled) && ($user->entity || $conf->entity != 1))) { + } elseif (!empty($objMod->always_enabled) || ((isModEnabled('multicompany') && $objMod->core_enabled) && ($user->entity || $conf->entity != 1))) { if (method_exists($objMod, 'alreadyUsed') && $objMod->alreadyUsed()) { $codeenabledisable .= $langs->trans("Used"); } else { $codeenabledisable .= img_picto($langs->trans("Required"), 'switch_on', '', false, 0, 0, '', 'opacitymedium valignmiddle'); //print $langs->trans("Required"); } - if (!empty($conf->multicompany->enabled) && $user->entity) { + if (isModEnabled('multicompany') && $user->entity) { $disableSetup++; } } else { @@ -838,10 +844,10 @@ if ($mode == 'common' || $mode == 'commonkanban') { } } } - } elseif (preg_match('/^([^@]+)@([^@]+)$/i', $objMod->config_page_url, $regs)) { + } elseif (preg_match('/^([^@]+)@([^@]+)$/i', (string) $objMod->config_page_url, $regs)) { $codetoconfig .= ''.img_picto($langs->trans("Setup"), "setup", 'style="padding-right: 6px"', false, 0, 0, '', 'fa-15').''; } else { - $codetoconfig .= ''.img_picto($langs->trans("Setup"), "setup", 'style="padding-right: 6px"', false, 0, 0, '', 'fa-15').''; + $codetoconfig .= ''.img_picto($langs->trans("Setup"), "setup", 'style="padding-right: 6px"', false, 0, 0, '', 'fa-15').''; } } else { $codetoconfig .= img_picto($langs->trans("NothingToSetup"), "setup", 'class="opacitytransp" style="padding-right: 6px"', false, 0, 0, '', 'fa-15'); @@ -1069,7 +1075,7 @@ if ($mode == 'marketplace') {
- get_products(!empty($categorie) ? $categorie: ''); ?> + get_products(); ?>
@@ -1112,7 +1118,13 @@ if ($mode == 'deploy') { } } } else { - $message = info_admin($langs->trans("InstallModuleFromWebHasBeenDisabledByFile", $dolibarrdataroot.'/installmodules.lock')); + if (getDolGlobalString('MAIN_MESSAGE_INSTALL_MODULES_DISABLED_CONTACT_US')) { + // Show clean message + $message = info_admin($langs->trans('InstallModuleFromWebHasBeenDisabledContactUs')); + } else { + // Show technical message + $message = info_admin($langs->trans("InstallModuleFromWebHasBeenDisabledByFile", $dolibarrdataroot.'/installmodules.lock')); + } $allowfromweb = 0; } @@ -1204,15 +1216,15 @@ if ($mode == 'deploy') { print ''."\n"; // MAX_FILE_SIZE doit précéder le champ input de type file - print ''; + print ''; } print ' '; @@ -1274,7 +1286,7 @@ if ($mode == 'develop') { print ''; print ''.$langs->trans("TryToUseTheModuleBuilder", $langs->transnoentitiesnoconv("ModuleBuilder")).''; print ''; - if (!empty($conf->modulebuilder->enabled)) { + if (isModEnabled('modulebuilder')) { print $langs->trans("SeeTopRightMenu"); } else { print ''.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("ModuleBuilder")).''; diff --git a/htdocs/admin/mrp.php b/htdocs/admin/mrp.php index fac6a3f3d41..21fff1c45e6 100644 --- a/htdocs/admin/mrp.php +++ b/htdocs/admin/mrp.php @@ -21,6 +21,7 @@ * \brief Setup page of module MRP */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -51,10 +52,10 @@ $type = 'mrp'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstmrp = GETPOST('maskconstMo', 'alpha'); + $maskconstmrp = GETPOST('maskconstMo', 'aZ09'); $maskmrp = GETPOST('maskMo', 'alpha'); - if ($maskconstmrp) { + if ($maskconstmrp && preg_match('/_MASK$/', $maskconstmrp)) { $res = dolibarr_set_const($db, $maskconstmrp, $maskmrp, 'chaine', 0, '', $conf->entity); } @@ -446,10 +447,10 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnMOs"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'MRP_MO_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''; @@ -465,7 +466,7 @@ print "'; print $form->textwithpicto($langs->trans("WatermarkOnDraftMOs"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print ''; -print ''; +print ''; print ''; print ''; print "\n"; diff --git a/htdocs/admin/mrp_extrafields.php b/htdocs/admin/mrp_extrafields.php index 768ec487165..cd18b47eec7 100644 --- a/htdocs/admin/mrp_extrafields.php +++ b/htdocs/admin/mrp_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of MOs */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/mrp/lib/mrp.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -81,14 +82,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - /* * Creation of an optional field */ diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index c91af2fcc36..5945ebfb5d5 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; $langs->loadLangs(array('admin', 'multicurrency')); // Access control -if (!$user->admin || empty($conf->multicurrency->enabled)) { +if (!$user->admin || !isModEnabled('multicurrency')) { accessforbidden(); } @@ -76,10 +76,15 @@ if ($action == 'add_currency') { $currency->code = $code; $currency->name = !empty($langs->cache_currencies[$code]['label']) ? $langs->cache_currencies[$code]['label'].' ('.$langs->getCurrencySymbol($code).')' : $code; + if (empty($currency->code) || $currency->code == '-1') { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Currency")), null, 'errors'); + $error++; + } if (empty($rate)) { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Rate")), null, 'errors'); $error++; } + if (!$error) { if ($currency->create($user) > 0) { if ($currency->addRate($rate)) { @@ -129,7 +134,8 @@ if ($action == 'add_currency') { dolibarr_set_const($db, 'MULTICURRENCY_APP_SOURCE', GETPOST('MULTICURRENCY_APP_SOURCE', 'alpha')); //dolibarr_set_const($db, 'MULTICURRENCY_ALTERNATE_SOURCE', GETPOST('MULTICURRENCY_ALTERNATE_SOURCE', 'alpha')); } else { - $result = MultiCurrency::syncRates($conf->global->MULTICURRENCY_APP_ID); + $multiurrency = new MultiCurrency($db); + $result = $multiurrency->syncRates(getDolGlobalString('MULTICURRENCY_APP_ID')); if ($result > 0) { setEventMessages($langs->trans("CurrencyRateSyncSucceed"), null, "mesgs"); } @@ -296,7 +302,7 @@ print ''; print ''; print ''."\n"; -print ''."\n"; +print ''."\n"; print ''; print ''; @@ -304,17 +310,19 @@ print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; diff --git a/htdocs/admin/notification.php b/htdocs/admin/notification.php index 38245b5e204..d3ad20f68b7 100644 --- a/htdocs/admin/notification.php +++ b/htdocs/admin/notification.php @@ -26,6 +26,7 @@ * \brief Page to setup notification module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -177,7 +178,7 @@ print load_fiche_titre($langs->trans("NotificationSetup"), $linkback, 'title_set print ''; print $langs->trans("NotificationsDesc").'
'; print $langs->trans("NotificationsDescUser").'
'; -if (!empty($conf->societe->enabled)) { +if (isModEnabled("societe")) { print $langs->trans("NotificationsDescContact").'
'; } print $langs->trans("NotificationsDescGlobal").'
'; @@ -188,6 +189,7 @@ print '
'; print ''; print ''; +print '
'; print '
'.$form->textwithpicto($langs->trans("CurrenciesUsed"), $langs->transnoentitiesnoconv("CurrenciesUsed_help_to_add")).''.$langs->trans("Rate").''.$langs->trans("Rate").' / '.$langs->getCurrencySymbol($conf->currency).'
'.$form->selectCurrency('', 'code', 1).''.$form->selectCurrency('', 'code', 1, '1').''; print ' '; -print ''; +print ''; print '
'.$conf->currency.$form->textwithpicto(' ', $langs->trans("BaseCurrency")).''.$conf->currency; +print ' ('.$langs->getCurrencySymbol($conf->currency).')'; +print $form->textwithpicto(' ', $langs->trans("BaseCurrency")).'1
'; print ''; print ''; @@ -198,7 +200,7 @@ print ''; print ''; print ''; @@ -224,7 +226,7 @@ if ($conf->use_javascript_ajax) { print ajax_constantonoff('NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_USER'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_USER", $arrval, $conf->global->NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_USER); + print $form->selectarray("NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_USER", $arrval, getDolGlobalString('NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_USER')); } print ''; print ''; @@ -236,11 +238,12 @@ if ($conf->use_javascript_ajax) { print ajax_constantonoff('NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_FIX'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_FIX", $arrval, $conf->global->NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_FIX); + print $form->selectarray("NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_FIX", $arrval, getDolGlobalString('NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_FIX')); } print ''; print ''; print '
'.$langs->trans("Parameter").'
'; print $langs->trans("NotificationEMailFrom").''; print img_picto('', 'email', 'class="pictofixedwidth"'); -print ''; +print ''; if (!empty($conf->global->NOTIFICATION_EMAIL_FROM) && !isValidEmail($conf->global->NOTIFICATION_EMAIL_FROM)) { print ' '.img_warning($langs->trans("ErrorBadEMail")); } @@ -212,7 +214,7 @@ if ($conf->use_javascript_ajax) { print ajax_constantonoff('NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_CONTACT'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_CONTACT", $arrval, $conf->global->NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_CONTACT); + print $form->selectarray("NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_CONTACT", $arrval, getDolGlobalString('NOTIFICATION_EMAIL_DISABLE_CONFIRM_MESSAGE_CONTACT')); } print '
'; +print '
'; print $form->buttonsSaveCancel("Save", ''); @@ -359,7 +362,7 @@ print $form->buttonsSaveCancel("Save", ''); print '
'; print '* '.$langs->trans("GoOntoUserCardToAddMore").'
'; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { print '** '.$langs->trans("GoOntoContactCardToAddMore").'
'; } print '
'; @@ -382,11 +385,12 @@ print load_fiche_titre($langs->trans("ListOfFixedNotifications"), '', 'email'); print '
'; print $langs->trans("Note").':
'; print '* '.$langs->trans("GoOntoUserCardToAddMore").'
'; -if (!empty($conf->societe->enabled)) { +if (isModEnabled("societe")) { print '** '.$langs->trans("GoOntoContactCardToAddMore").'
'; } print '
'; +print '
'; print ''; print ''; print ''; @@ -449,7 +453,7 @@ foreach ($listofnotifiedevents as $notifiedevent) { $param = 'NOTIFICATION_FIXEDEMAIL_'.$notifiedevent['code'].'_THRESHOLD_HIGHER_'.$reg[1]; $value = GETPOST('NOTIF_'.$notifiedevent['code'].'_old_'.$reg[1].'_key') ?GETPOST('NOTIF_'.$notifiedevent['code'].'_old_'.$reg[1].'_key', 'alpha') : $conf->global->$param; - $s = ''; // Do not use type="email" here, we must be able to enter a list of email with , separator. + $s = ''; // Do not use type="email" here, we must be able to enter a list of email with , separator. $arrayemail = explode(',', $value); $showwarning = 0; foreach ($arrayemail as $keydet => $valuedet) { @@ -468,7 +472,7 @@ foreach ($listofnotifiedevents as $notifiedevent) { } // New entry input fields if (empty($inputfieldalreadyshown) || !$codehasnotrigger) { - $s = ''; // Do not use type="email" here, we must be able to enter a list of email with , separator. + $s = ''; // Do not use type="email" here, we must be able to enter a list of email with , separator. print $form->textwithpicto($s, $langs->trans("YouCanUseCommaSeparatorForSeveralRecipients").'
'.$langs->trans("YouCanAlsoUseSupervisorKeyword"), 1, 'help', '', 0, 2); } print ''; @@ -501,6 +505,7 @@ foreach ($listofnotifiedevents as $notifiedevent) { print ''; } print '
'.$langs->trans("Module").'
'; +print '
'; print $form->buttonsSaveCancel("Save", ''); diff --git a/htdocs/admin/oauth.php b/htdocs/admin/oauth.php index a0d82d1d6bd..217dfd63cc9 100644 --- a/htdocs/admin/oauth.php +++ b/htdocs/admin/oauth.php @@ -1,6 +1,7 @@ * Copyright (C) 2016 Raphaël Doursenaud + * Copyright (C) 2022 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,7 +15,6 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * */ /** @@ -23,6 +23,8 @@ * \brief Setup page to configure oauth access api */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/oauth.lib.php'; @@ -35,7 +37,7 @@ $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domai //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current // Load translation files required by the page -$langs->loadLangs(array('admin', 'oauth')); +$langs->loadLangs(array('admin', 'oauth', 'modulebuilder')); // Security check if (!$user->admin) { @@ -43,25 +45,62 @@ if (!$user->admin) { } $action = GETPOST('action', 'aZ09'); +$provider = GETPOST('provider', 'aZ09'); +$label = GETPOST('label', 'aZ09'); + +$error = 0; /* * Actions */ -if ($action == 'update') { - $error = 0; +if ($action == 'add') { // $provider is OAUTH_XXX + if ($provider && $provider != '-1') { + $constname = strtoupper($provider).($label ? '-'.$label : '').'_ID'; - foreach ($list as $constname) { - $constvalue = GETPOST($constname[1], 'alpha'); - if (!dolibarr_set_const($db, $constname[1], $constvalue, 'chaine', 0, '', $conf->entity)) { - $error++; - } - $constvalue = GETPOST($constname[2], 'alpha'); - if (!dolibarr_set_const($db, $constname[2], $constvalue, 'chaine', 0, '', $conf->entity)) { + if (getDolGlobalString($constname)) { + setEventMessages($langs->trans("AOAuthEntryForThisProviderAndLabelAlreadyHasAKey"), null, 'errors'); $error++; + } else { + dolibarr_set_const($db, $constname, $langs->trans('ToComplete'), 'chaine', 0, '', $conf->entity); + setEventMessages($langs->trans("OAuthProviderAdded"), null); } } +} +if ($action == 'update') { + foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.+_ID$/', $key)) { + $constvalue = str_replace('_ID', '', $key); + if (!dolibarr_set_const($db, $constvalue.'_ID', GETPOST($constvalue.'_ID'), 'chaine', 0, '', $conf->entity)) { + $error++; + } + // If we reset this provider, we also remove the secret + if (!dolibarr_set_const($db, $constvalue.'_SECRET', GETPOST($constvalue.'_ID') ? GETPOST($constvalue.'_SECRET') : '', 'chaine', 0, '', $conf->entity)) { + $error++; + } + if (GETPOSTISSET($constvalue.'_URLAUTHORIZE')) { + if (!dolibarr_set_const($db, $constvalue.'_URLAUTHORIZE', GETPOST($constvalue.'_URLAUTHORIZE'), 'chaine', 0, '', $conf->entity)) { + $error++; + } + } + if (GETPOSTISSET($constvalue.'_SCOPE')) { + if (is_array(GETPOST($constvalue.'_SCOPE'))) { + $scopestring = implode(',', GETPOST($constvalue.'_SCOPE')); + } else { + $scopestring = GETPOST($constvalue.'_SCOPE'); + } + if (!dolibarr_set_const($db, $constvalue.'_SCOPE', $scopestring, 'chaine', 0, '', $conf->entity)) { + $error++; + } + } else { + if (!dolibarr_set_const($db, $constvalue.'_SCOPE', '', 'chaine', 0, '', $conf->entity)) { + $error++; + } + } + } + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null); @@ -70,6 +109,49 @@ if ($action == 'update') { } } +if ($action == 'confirm_delete') { + $provider = GETPOST('provider', 'aZ09'); + $label = GETPOST('label'); + + $globalkey = empty($provider) ? $label : $label.'-'.$provider; + + if (getDolGlobalString($globalkey.'_ID') && getDolGlobalString($globalkey.'_SECRET')) { // If ID and secret exist, we delete first the token + $backtourl = DOL_URL_ROOT.'/admin/oauth.php?action=delete_entry&provider='.$provider.'&label='.$label.'&token='.newToken(); + $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); + $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; + $callbacktodel = $urlwithroot; + if ($label == 'OAUTH_GOOGLE') { + $callbacktodel .= '/core/modules/oauth/google_oauthcallback.php?action=delete&keyforprovider='.$provider.'&token='.newToken().'&backtourl='.urlencode($backtourl); + } elseif ($label == 'OAUTH_GITHUB') { + $callbacktodel .= '/core/modules/oauth/github_oauthcallback.php?action=delete&keyforprovider='.$provider.'&token='.newToken().'&backtourl='.urlencode($backtourl); + } elseif ($label == 'OAUTH_STRIPE_LIVE') { + $callbacktodel .= '/core/modules/oauth/stripelive_oauthcallback.php?action=delete&keyforprovider='.$provider.'&token='.newToken().'&backtourl='.urlencode($backtourl); + } elseif ($label == 'OAUTH_STRIPE_TEST') { + $callbacktodel .= '/core/modules/oauth/stripetest_oauthcallback.php?action=delete&keyforprovider='.$provider.'&token='.newToken().'&backtourl='.urlencode($backtourl); + } elseif ($label == 'OAUTH_OTHER') { + $callbacktodel .= '/core/modules/oauth/generic_oauthcallback.php?action=delete&keyforprovider='.$provider.'&token='.newToken().'&backtourl='.urlencode($backtourl); + } + header("Location: ".$callbacktodel); + exit; + } else { + $action = 'delete_entry'; + } +} + +if ($action == 'delete_entry') { + $provider = GETPOST('provider', 'aZ09'); + $label = GETPOST('label'); + + $globalkey = empty($provider) ? $label : $label.'-'.$provider; + + if (!dolibarr_del_const($db, $globalkey.'_NAME', $conf->entity) || !dolibarr_del_const($db, $globalkey.'_ID', $conf->entity) || !dolibarr_del_const($db, $globalkey.'_SECRET', $conf->entity) || !dolibarr_del_const($db, $globalkey.'_URLAUTHORIZE', $conf->entity) || !dolibarr_del_const($db, $globalkey.'_SCOPE', $conf->entity)) { + setEventMessages($langs->trans("ErrorInEntryDeletion"), null, 'errors'); + $error++; + } else { + setEventMessages($langs->trans("EntryDeleted"), null); + } +} + /* * View */ @@ -77,27 +159,31 @@ if ($action == 'update') { llxHeader(); $form = new Form($db); +// Confirmation of action process +if ($action == 'delete') { + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?provider='.GETPOST('provider').'&label='.GETPOST('label'), $langs->trans('OAuthServiceConfirmDeleteTitle'), $langs->trans('OAuthServiceConfirmDeleteMessage'), 'confirm_delete', $formquestion, 0, 1, 220); + print $formconfirm; +} + $linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans('ConfigOAuth'), $linkback, 'title_setup'); -print ''; +print ''; print ''; -print ''; +print ''; $head = oauthadmin_prepare_head(); -print dol_get_fiche_head($head, 'services', '', -1, 'technic'); +print dol_get_fiche_head($head, 'services', '', -1, ''); print ''.$langs->trans("ListOfSupportedOauthProviders").'

'; -print '
'; -print ''; -$i = 0; - -// $list is defined into oauth.lib.php to the list of supporter OAuth providers. +print ''; - // Api Name - $label = $langs->trans($keyforsupportedoauth2array); - print ''; - print ''; - print ''; - - if ($supported) { - $redirect_uri = $urlwithroot.'/core/modules/oauth/'.$supportedoauth2array[$keyforsupportedoauth2array]['callbackfile'].'_oauthcallback.php'; - print ''; - print ''; - print ''; - } else { - print ''; - print ''; - print ''; - print ''; - } - - // Api Id - print ''; - print ''; - print ''; - - // Api Secret - print ''; - print ''; - print ''; + print ''."\n"; } +print ''; +print ajax_combobox('provider'); +print ' '; +print ' '; -print '
'; - print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"'); - print $label; - print ''; - if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforapp'])) { - print $langs->trans($supportedoauth2array[$keyforsupportedoauth2array]['urlforapp']); - } - print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").''; - print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").''.$langs->trans("FeatureNotYetSupported").'
'; - print '
'; - print '
'."\n"; -print '
'; +print '
'; +print '
'; print dol_get_fiche_end(); -print $form->buttonsSaveCancel("Modify", ''); - print ''; +$listinsetup = []; +// Define $listinsetup +foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) { + $provider = preg_replace('/_ID$/', '', $key); + $listinsetup[] = array( + $provider.'_NAME', + $provider.'_ID', + $provider.'_SECRET', + $provider.'_URLAUTHORIZE', // For custom oauth links + $provider.'_SCOPE' // For custom oauth links + ); + } +} + + +if (count($listinsetup) > 0) { + print '
'; + print ''; + print ''; + + print '
'; + + $i = 0; + + // $list is defined into oauth.lib.php to the list of supporter OAuth providers. + foreach ($listinsetup as $key) { + $supported = 0; + $keyforsupportedoauth2array = $key[0]; // May be OAUTH_GOOGLE_NAME or OAUTH_GOOGLE_xxx_NAME + $keyforsupportedoauth2array = preg_replace('/^OAUTH_/', '', $keyforsupportedoauth2array); + $keyforsupportedoauth2array = preg_replace('/_NAME$/', '', $keyforsupportedoauth2array); + if (preg_match('/^.*-/', $keyforsupportedoauth2array)) { + $keyforprovider = preg_replace('/^.*-/', '', $keyforsupportedoauth2array); + } else { + $keyforprovider = ''; + } + $keyforsupportedoauth2array = preg_replace('/-.*$/', '', $keyforsupportedoauth2array); + $keyforsupportedoauth2array = 'OAUTH_'.$keyforsupportedoauth2array.'_NAME'; + + if (in_array($keyforsupportedoauth2array, array_keys($supportedoauth2array))) { + $supported = 1; + } + if (!$supported) { + continue; // show only supported + } + + $i++; + + print ''; + + // OAUTH service name + $label = $langs->trans($keyforsupportedoauth2array); + print ''; + print ''; + print ''; + + // Delete + print ''; + + print ''; + + if ($supported) { + $redirect_uri = $urlwithroot.'/core/modules/oauth/'.$supportedoauth2array[$keyforsupportedoauth2array]['callbackfile'].'_oauthcallback.php'; + print ''; + print ''; + print ''; + print ''; + print ''; + + if ($keyforsupportedoauth2array == 'OAUTH_OTHER_NAME') { + print ''; + print ''; + print ''; + print ''; + print ''; + } + } else { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + + // Api Id + print ''; + print ''; + print ''; + print ''; + print ''; + + // Api Secret + print ''; + print ''; + print ''; + print ''; + print ''; + + // TODO Move this into token generation ? + if ($supported) { + if ($keyforsupportedoauth2array == 'OAUTH_OTHER_NAME') { + print ''; + print ''; + print ''; + print ''; + print ''; + } else { + $availablescopes = array_flip(explode(',', $supportedoauth2array[$keyforsupportedoauth2array]['availablescopes'])); + $currentscopes = explode(',', getDolGlobalString($key[4])); + $scopestodispay = array(); + foreach ($availablescopes as $keyscope => $valscope) { + if (in_array($keyscope, $currentscopes)) { + $scopestodispay[$keyscope] = 1; + } else { + $scopestodispay[$keyscope] = 0; + } + } + // Api Scope + print ''; + print ''; + print ''; + print ''; + print ''; + } + } else { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + + print '
'; + print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"'); + if ($label == $keyforsupportedoauth2array) { + print $supportedoauth2array[$keyforsupportedoauth2array]['name']; + } else { + print $label; + } + if ($keyforprovider) { + print ' ('.$keyforprovider.')'; + } else { + print ' ('.$langs->trans("NoName").')'; + } + print ''; + if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials'])) { + print $langs->trans("OAUTH_URL_FOR_CREDENTIAL", $supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials']); + } + print ''; + $label = preg_replace('/_NAME$/', '', $keyforsupportedoauth2array); + print ''; + print img_picto('', 'delete'); + print ''; + + print ''; + print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").''; + print ajax_autoselect('uri'.$keyforsupportedoauth2array.$keyforprovider); + print '
'.$langs->trans("URLOfServiceForAuthorization").''; + print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").''.$langs->trans("FeatureNotYetSupported").'
'; + print '
'; + print '
'.$langs->trans("Scopes").''; + print ''; + print '
'.$langs->trans("Scopes").''; + foreach ($scopestodispay as $scope => $val) { + print ''; + print ''; + } + print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").''.$langs->trans("FeatureNotYetSupported").'
'."\n"; + + print '
'; + } + + print '
'; + + print $form->buttonsSaveCancel("Modify", ''); + + print ''; +} + // End of page llxFooter(); $db->close(); diff --git a/htdocs/admin/oauthlogintokens.php b/htdocs/admin/oauthlogintokens.php index 73a9139f856..9a0532880cd 100644 --- a/htdocs/admin/oauthlogintokens.php +++ b/htdocs/admin/oauthlogintokens.php @@ -23,6 +23,7 @@ * \brief Setup page to configure oauth access to login information */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/oauth.lib.php'; // This define $list and $supportedoauth2array @@ -77,7 +78,7 @@ if ($action == 'setconst' && $user->admin) { $constnote = dol_escape_htmltag($setupconst['note']); $result = dolibarr_set_const($db, $constname, $constvalue, $consttype, 0, $constnote, $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } } @@ -96,7 +97,7 @@ if ($action == 'setvalue' && $user->admin) { $db->begin(); $result = dolibarr_set_const($db, $varname, $value, 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } @@ -129,7 +130,7 @@ print load_fiche_titre($langs->trans('ConfigOAuth'), $linkback, 'title_setup'); $head = oauthadmin_prepare_head(); -print dol_get_fiche_head($head, 'tokengeneration', '', -1, 'technic'); +print dol_get_fiche_head($head, 'tokengeneration', '', -1, ''); if (GETPOST('error')) { setEventMessages(GETPOST('error'), null, 'errors'); @@ -138,57 +139,72 @@ if (GETPOST('error')) { if ($mode == 'setup' && $user->admin) { print ''.$langs->trans("OAuthSetupForLogin")."

\n"; - foreach ($list as $key) { + // Define $listinsetup + foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) { + $provider = preg_replace('/_ID$/', '', $key); + $listinsetup[] = array( + $provider.'_NAME', + $provider.'_ID', + $provider.'_SECRET', + $provider.'_URLAUTHORIZE', // For custom oauth links + $provider.'_SCOPE' // For custom oauth links + ); + } + } + + $oauthstateanticsrf = bin2hex(random_bytes(128/8)); + + // $list is defined into oauth.lib.php to the list of supporter OAuth providers. + foreach ($listinsetup as $key) { $supported = 0; - $keyforsupportedoauth2array = $key[0]; - - if (in_array($keyforsupportedoauth2array, array_keys($supportedoauth2array))) { - $supported = 1; + $keyforsupportedoauth2array = $key[0]; // May be OAUTH_GOOGLE_NAME or OAUTH_GOOGLE_xxx_NAME + $keyforsupportedoauth2array = preg_replace('/^OAUTH_/', '', $keyforsupportedoauth2array); + $keyforsupportedoauth2array = preg_replace('/_NAME$/', '', $keyforsupportedoauth2array); + if (preg_match('/^.*-/', $keyforsupportedoauth2array)) { + $keyforprovider = preg_replace('/^.*-/', '', $keyforsupportedoauth2array); + } else { + $keyforprovider = ''; } - if (!$supported) { - continue; // show only supported + $keyforsupportedoauth2array = preg_replace('/-.*$/', '', $keyforsupportedoauth2array); + $keyforsupportedoauth2array = 'OAUTH_'.$keyforsupportedoauth2array.'_NAME'; + + + $OAUTH_SERVICENAME = (empty($supportedoauth2array[$keyforsupportedoauth2array]['name']) ? 'Unknown' : $supportedoauth2array[$keyforsupportedoauth2array]['name'].($keyforprovider ? '-'.$keyforprovider : '')); + + $shortscope = ''; + if (getDolGlobalString($key[4])) { + $shortscope = getDolGlobalString($key[4]); } + $state = $shortscope; // TODO USe a better state - - $OAUTH_SERVICENAME = empty($supportedoauth2array[$keyforsupportedoauth2array]['name']) ? 'Unknown' : $supportedoauth2array[$keyforsupportedoauth2array]['name']; - - // Define $shortscope, $urltorenew, $urltodelete, $urltocheckperms + // Define $urltorenew, $urltodelete, $urltocheckperms // TODO Use array $supportedoauth2array if ($keyforsupportedoauth2array == 'OAUTH_GITHUB_NAME') { // List of keys that will be converted into scopes (from constants 'SCOPE_state_in_uppercase' in file of service). // We pass this param list in to 'state' because we need it before and after the redirect. - $shortscope = 'user,public_repo'; - $urltorenew = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?shortscope='.$shortscope.'&state='.$shortscope.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); + + // Note: github does not accept csrf key inside the state parameter (only known values) + $urltorenew = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?shortscope='.urlencode($shortscope).'&state='.$shortscope.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); $urltodelete = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?action=delete&token='.newToken().'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); $urltocheckperms = 'https://github.com/settings/applications/'; } elseif ($keyforsupportedoauth2array == 'OAUTH_GOOGLE_NAME') { // List of keys that will be converted into scopes (from constants 'SCOPE_state_in_uppercase' in file of service). // List of scopes for Google are here: https://developers.google.com/identity/protocols/oauth2/scopes // We pass this key list into the param 'state' because we need it before and after the redirect. - $shortscope = 'userinfo_email,userinfo_profile'; - $shortscope .= ',openid,email,profile'; // For openid connect - if (!empty($conf->printing->enabled)) { - $shortscope .= ',cloud_print'; - } - if (!empty($conf->global->OAUTH_GOOGLE_GSUITE)) { - $shortscope .= ',admin_directory_user'; - } - if (!empty($conf->global->OAUTH_GOOGLE_GMAIL)) { - $shortscope.=',gmail_full'; - } - - $oauthstateanticsrf = bin2hex(random_bytes(128/8)); - $_SESSION['oauthstateanticsrf'] = $shortscope.'-'.$oauthstateanticsrf; - - $urltorenew = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?shortscope='.$shortscope.'&state='.$shortscope.'-'.$oauthstateanticsrf.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); + $urltorenew = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?shortscope='.urlencode($shortscope).'&state='.urlencode($state).'-'.$oauthstateanticsrf.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); $urltodelete = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?action=delete&token='.newToken().'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); $urltocheckperms = 'https://security.google.com/settings/security/permissions'; } elseif ($keyforsupportedoauth2array == 'OAUTH_STRIPE_TEST_NAME') { - $urltorenew = $urlwithroot.'/core/modules/oauth/stripetest_oauthcallback.php?backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); + $urltorenew = $urlwithroot.'/core/modules/oauth/stripetest_oauthcallback.php?shortscope='.urlencode($shortscope).'&state='.urlencode($state).'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); $urltodelete = ''; $urltocheckperms = ''; } elseif ($keyforsupportedoauth2array == 'OAUTH_STRIPE_LIVE_NAME') { - $urltorenew = $urlwithroot.'/core/modules/oauth/stripelive_oauthcallback.php?backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); + $urltorenew = $urlwithroot.'/core/modules/oauth/stripelive_oauthcallback.php?shortscope='.urlencode($shortscope).'&state='.urlencode($state).'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); + $urltodelete = ''; + $urltocheckperms = ''; + } elseif ($keyforsupportedoauth2array = 'OAUTH_OTHER_NAME') { + $urltorenew = $urlwithroot.'/core/modules/oauth/generic_oauthcallback.php?shortscope='.urlencode($shortscope).'&state='.urlencode($state).'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php'); $urltodelete = ''; $urltocheckperms = ''; } else { @@ -197,12 +213,18 @@ if ($mode == 'setup' && $user->admin) { $urltocheckperms = ''; } + if ($urltorenew) { + $urltorenew .= '&keyforprovider='.urlencode($keyforprovider); + } + if ($urltodelete) { + $urltodelete .= '&keyforprovider='.urlencode($keyforprovider); + } + // Show value of token $tokenobj = null; // Token require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; - require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; // Dolibarr storage $storage = new DoliStorage($db, $conf); try { @@ -220,7 +242,6 @@ if ($mode == 'setup' && $user->admin) { if (is_object($tokenobj)) { $expire = ($tokenobj->getEndOfLife() !== $tokenobj::EOL_NEVER_EXPIRES && $tokenobj->getEndOfLife() !== $tokenobj::EOL_UNKNOWN && time() > ($tokenobj->getEndOfLife() - 30)); } - if ($key[1] != '' && $key[2] != '') { if (is_object($tokenobj)) { $refreshtoken = $tokenobj->getRefreshToken(); @@ -231,7 +252,7 @@ if ($mode == 'setup' && $user->admin) { } elseif ($endoflife == $tokenobj::EOL_UNKNOWN) { $expiredat = $langs->trans("Unknown"); } else { - $expiredat = dol_print_date($endoflife, "dayhour"); + $expiredat = dol_print_date($endoflife, "dayhour", 'tzuserrel'); } } } @@ -245,17 +266,28 @@ if ($mode == 'setup' && $user->admin) { print '
'; print ''."\n"; + // Api Name + $label = $langs->trans($keyforsupportedoauth2array); print ''; print ''; print ''; print ''; print "\n"; print ''; - print ''; + print ''; //var_dump($key); print $langs->trans("OAuthIDSecret").''; print ''; print ''."\n"; + // Scopes print ''; - print ''; + print ''; + print ''; + + print ''; + print ''; //var_dump($key); print $langs->trans("IsTokenGenerated"); print ''; print ''; print ''; - print ''; + print ''; //var_dump($key); print $langs->trans("Token").''; print ''; print ''; //var_dump($key); - print $langs->trans("TOKEN_REFRESH").''; + print $langs->trans("TOKEN_REFRESH"); + print ''; print ''; print ''; // Token expired print ''; - print ''; + print ''; //var_dump($key); - print $langs->trans("TOKEN_EXPIRED").''; + print $langs->trans("TOKEN_EXPIRED"); + print ''; print ''; @@ -335,9 +381,10 @@ if ($mode == 'setup' && $user->admin) { // Token expired at print ''; - print ''; + print ''; //var_dump($key); - print $langs->trans("TOKEN_EXPIRE_AT").''; + print $langs->trans("TOKEN_EXPIRE_AT"); + print ''; print ''; @@ -353,8 +400,8 @@ if ($mode == 'setup' && $user->admin) { } } - print ''; + print '
'; } } @@ -399,17 +446,18 @@ if ($mode == 'userconf' && $user->admin) { print ''; print ''; print "\n"; - $sql = 'SELECT p.rowid, p.printer_name, p.printer_location, p.printer_id, p.copy, p.module, p.driver, p.userid, u.login FROM '.MAIN_DB_PREFIX.'printing as p, '.MAIN_DB_PREFIX.'user as u WHERE p.userid=u.rowid'; + $sql = "SELECT p.rowid, p.printer_name, p.printer_location, p.printer_id, p.copy, p.module, p.driver, p.userid, u.login"; + $sql .= " FROM ".MAIN_DB_PREFIX."printing as p, ".MAIN_DB_PREFIX."user as u WHERE p.userid = u.rowid"; $resql = $db->query($sql); - while ($row = $db->fetch_array($resql)) { + while ($obj = $db->fetch_object($resql)) { print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; print "\n"; } diff --git a/htdocs/admin/openinghours.php b/htdocs/admin/openinghours.php index b18ebd0c05f..c31e2162156 100644 --- a/htdocs/admin/openinghours.php +++ b/htdocs/admin/openinghours.php @@ -21,6 +21,7 @@ * \brief Setup page to configure opening hours */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; diff --git a/htdocs/admin/order_extrafields.php b/htdocs/admin/order_extrafields.php index b66f004295d..8ebbce2cc4d 100644 --- a/htdocs/admin/order_extrafields.php +++ b/htdocs/admin/order_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of order */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -85,14 +86,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/orderdet_extrafields.php b/htdocs/admin/orderdet_extrafields.php index 3f8102d076a..e9c0947d6a2 100644 --- a/htdocs/admin/orderdet_extrafields.php +++ b/htdocs/admin/orderdet_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of order */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -86,14 +87,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/payment.php b/htdocs/admin/payment.php index 089ddbafd23..7b0d0acbf06 100644 --- a/htdocs/admin/payment.php +++ b/htdocs/admin/payment.php @@ -22,6 +22,7 @@ * \brief Page to setup invoices payments */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; @@ -50,9 +51,9 @@ if (empty($conf->global->PAYMENT_ADDON)) { */ if ($action == 'updateMask') { - $maskconstpayment = GETPOST('maskconstpayment', 'alpha'); + $maskconstpayment = GETPOST('maskconstpayment', 'aZ09'); $maskpayment = GETPOST('maskpayment', 'alpha'); - if ($maskconstpayment) { + if ($maskconstpayment && preg_match('/_MASK$/', $maskconstpayment)) { $res = dolibarr_set_const($db, $maskconstpayment, $maskpayment, 'chaine', 0, '', $conf->entity); } diff --git a/htdocs/admin/paymentbybanktransfer.php b/htdocs/admin/paymentbybanktransfer.php index 997c71bb335..f86f6d5c27f 100644 --- a/htdocs/admin/paymentbybanktransfer.php +++ b/htdocs/admin/paymentbybanktransfer.php @@ -25,6 +25,7 @@ * \brief Page to setup payments by credit transfer */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -378,7 +379,7 @@ print '
'; */ /* Disable this, there is no trigger with elementtype 'withdraw' -if (! empty($conf->global->MAIN_MODULE_NOTIFICATION)) +if (!empty($conf->global->MAIN_MODULE_NOTIFICATION)) { $langs->load("mails"); print load_fiche_titre($langs->trans("Notifications")); diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index 8729fce71d3..f5f87877ab7 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2012 Laurent Destailleur + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2012-2107 Juanjo Menent * Copyright (C) 2019 Ferran Marcet @@ -25,6 +25,7 @@ * \brief Page to setup PDF options */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; @@ -34,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members', 'stocks', 'Trips')); +$langs->loadLangs(array('admin', 'companies', 'languages', 'members', 'other', 'products', 'stocks', 'trips')); if (!$user->admin) { accessforbidden(); @@ -108,7 +109,7 @@ if ($action == 'update') { dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", GETPOST("MAIN_TVAINTRA_NOT_IN_ADDRESS"), 'chaine', 0, '', $conf->entity); } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { if (GETPOST('PDF_SHOW_PROJECT_REF_OR_LABEL') == 'no') { dolibarr_del_const($db, "PDF_SHOW_PROJECT", $conf->entity); dolibarr_del_const($db, "PDF_SHOW_PROJECT_TITLE", $conf->entity); @@ -166,10 +167,13 @@ if ($action == 'update') { dolibarr_set_const($db, "PDF_SHOW_LINK_TO_ONLINE_PAYMENT", GETPOST('PDF_SHOW_LINK_TO_ONLINE_PAYMENT', 'alpha'), 'chaine', 0, '', $conf->entity); } + if (GETPOSTISSET('DOC_SHOW_FIRST_SALES_REP')) { + dolibarr_set_const($db, "DOC_SHOW_FIRST_SALES_REP", GETPOST('DOC_SHOW_FIRST_SALES_REP', 'alpha'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET('PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME')) { dolibarr_set_const($db, "PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME", GETPOST('PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME', 'alpha'), 'chaine', 0, '', $conf->entity); } - if (GETPOSTISSET('PDF_USE_A')) { dolibarr_set_const($db, "PDF_USE_A", GETPOST('PDF_USE_A', 'alpha'), 'chaine', 0, '', $conf->entity); } @@ -272,7 +276,7 @@ print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); print '
'; print '
'; print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"'); - print $langs->trans($keyforsupportedoauth2array); + if ($label == $keyforsupportedoauth2array) { + print $supportedoauth2array[$keyforsupportedoauth2array]['name']; + } else { + print $label; + } + if ($keyforprovider) { + print ' ('.$keyforprovider.')'; + } else { + print ' ('.$langs->trans("NoName").')'; + } print '
'; @@ -265,14 +297,22 @@ if ($mode == 'setup' && $user->admin) { print '
'.$langs->trans("Scopes").''; + $currentscopes = getDolGlobalString($key[4]); + print $currentscopes; + print '
'; if (is_object($tokenobj)) { - print $langs->trans("HasAccessToken"); + print $form->textwithpicto(yn(1), $langs->trans("HasAccessToken").' : '.dol_print_date($storage->date_modification, 'dayhour').' state='.dol_escape_htmltag($storage->state)); } else { print ''.$langs->trans("NoAccessToken").''; } @@ -285,7 +325,9 @@ if ($mode == 'setup' && $user->admin) { } // Request remote token if ($urltorenew) { - print ''.$langs->trans('RequestAccess').'
'; + print ''.$langs->trans('GetAccess').''; + print $form->textwithpicto('', $langs->trans('RequestAccess')); + print '
'; } // Check remote access if ($urltocheckperms) { @@ -295,13 +337,15 @@ if ($mode == 'setup' && $user->admin) { print '
'; + if (is_object($tokenobj)) { //var_dump($tokenobj); - print $tokenobj->getAccessToken().'
'; + $tokentoshow = $tokenobj->getAccessToken(); + print ''.showValueWithClipboardCPButton($tokentoshow, 1, dol_trunc($tokentoshow, 32)).'
'; //print 'Refresh: '.$tokenobj->getRefreshToken().'
'; //print 'EndOfLife: '.$tokenobj->getEndOfLife().'
'; //var_dump($tokenobj->getExtraParams()); @@ -317,17 +361,19 @@ if ($mode == 'setup' && $user->admin) { print '
'; - print yn($refreshtoken); + print ''.showValueWithClipboardCPButton($refreshtoken, 1, dol_trunc($refreshtoken, 32)).''; print '
'; print yn($expire); print '
'; print $expiredat; print ''.$langs->trans("NumberOfCopy").''.$langs->trans("Delete").'
'.$row['login'].''.$row['module'].''.$row['driver'].''.$row['printer_name'].''.$row['printer_location'].''.$row['printer_id'].''.$row['copy'].''.$obj->login.''.$obj->module.''.$obj->driver.''.$obj->printer_name.''.$obj->printer_location.''.$obj->printer_id.''.$obj->copy.''.img_picto($langs->trans("Delete"), 'delete').'
'; -print ''; +print ''; $selected = (isset($conf->global->MAIN_PDF_FORMAT) ? $conf->global->MAIN_PDF_FORMAT : ''); if (empty($selected)) { @@ -286,16 +290,16 @@ print $formadmin->select_paper_format($selected, 'MAIN_PDF_FORMAT'); print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'.$langs->trans("MAIN_PDF_MARGIN_LEFT").''; -print ''; +print ''; print '
'.$langs->trans("MAIN_PDF_MARGIN_RIGHT").''; -print ''; +print ''; print '
'.$langs->trans("MAIN_PDF_MARGIN_TOP").''; -print ''; +print ''; print '
'.$langs->trans("MAIN_PDF_MARGIN_BOTTOM").''; -print ''; +print ''; print '
'; @@ -309,7 +313,7 @@ print load_fiche_titre($langs->trans("PDFAddressForging"), '', ''); print '
'; print ''; -print ''; +print ''; // Show sender name @@ -373,6 +377,7 @@ if ($conf->use_javascript_ajax) { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); print $form->selectarray("MAIN_PDF_NO_RECIPENT_FRAME", $arrval, $conf->global->MAIN_PDF_NO_RECIPENT_FRAME); } +print ''; //Invert sender and recipient @@ -394,6 +399,13 @@ if ($conf->use_javascript_ajax) { } print ''; +// Show alias in thirdparty name +print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameter").'
'.$langs->trans("PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME").''; +if ($conf->use_javascript_ajax) { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("THIRDPARTY_ALIAS"), '2' => $langs->trans("ALIAS_THIRDPARTY")); + print $form->selectarray("PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME", $arrval, getDolGlobalInt('PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME')); +} + print '
'; print '
'; @@ -438,7 +450,7 @@ if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) { print load_fiche_titre($title, '', ''); print ''; -print ''; +print ''; // Hide any information on Sale tax / VAT @@ -458,22 +470,20 @@ print '
'; // Other + print load_fiche_titre($langs->trans("Other"), '', ''); print '
'; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameter").'
'; -print ''; +print ''; // Use 2 languages into PDF -print ''; // Height of logo @@ -482,7 +492,7 @@ print ''; // Show project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { print 'selectarray('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', $arraydetailsforpdffoot, (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS : 0)); print ''; -// Show alias in thirdparty name +// Show the first sales representative -/* Disabled because not yet completely implemented (does not work when we force a contact on object) -print ''; print ''; @@ -524,8 +525,8 @@ print "\n"; print ''; print ""; print ""; print ''; print ""; print "'; +print ''; + + + // default update prices on cloning a proposal /* print ''; @@ -675,10 +685,10 @@ print '\n"; print ''; /* Seems to be not so used. So kept hidden for the moment to avoid dangerous options inflation. -if ($conf->banque->enabled) +if (isModEnabled('facture')) { print '\n"; print '\n"; */ print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("PDF_USE_ALSO_LANGUAGE_CODE").''; -//if (! empty($conf->global->MAIN_MULTILANGS)) - //{ +print '
'; +print $form->textwithpicto($langs->trans("PDFIn2Languages"), $langs->trans("PDF_USE_ALSO_LANGUAGE_CODE")); +print ''; $selected = GETPOSTISSET('PDF_USE_ALSO_LANGUAGE_CODE') ? GETPOST('PDF_USE_ALSO_LANGUAGE_CODE') : (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) ? $conf->global->PDF_USE_ALSO_LANGUAGE_CODE : 0); print $formadmin->select_language($selected, 'PDF_USE_ALSO_LANGUAGE_CODE', 0, null, 1); -//} else { -// print ''.$langs->trans("MultiLangNotEnabled").''; -//} print '
'.$langs->trans("PDF_SHOW_PROJECT").''; $tmparray = array('no' => 'No', 'showprojectref' => 'RefProject', 'showprojectlabel' => 'ShowProjectLabel'); $showprojectref = empty($conf->global->PDF_SHOW_PROJECT) ? (empty($conf->global->PDF_SHOW_PROJECT_TITLE) ? 'no' : 'showprojectlabel') : 'showprojectref'; @@ -568,15 +578,17 @@ print '
'.$langs->trans("ShowDetailsInPDFPageFoot").'
'.$langs->trans("PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME").''; +print '
'.$langs->trans("DOC_SHOW_FIRST_SALES_REP"); +print ' ('.$langs->trans("SalesRepresentativeInfo").')'; +print ''; if ($conf->use_javascript_ajax) { - $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("THIRDPARTY_ALIAS"), '2' => $langs->trans("ALIAS_THIRDPARTY")); - print $form->selectarray("PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME", $arrval, getDolGlobalInt('PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME')); + print ajax_constantonoff('DOC_SHOW_FIRST_SALES_REP'); +} else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("DOC_SHOW_FIRST_SALES_REP", $arrval, $conf->global->DOC_SHOW_FIRST_SALES_REP); } -*/ // Show online payment link on invoices diff --git a/htdocs/admin/pdf_other.php b/htdocs/admin/pdf_other.php index d8afe43720f..933486b0577 100644 --- a/htdocs/admin/pdf_other.php +++ b/htdocs/admin/pdf_other.php @@ -4,7 +4,8 @@ * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2012-2107 Juanjo Menent * Copyright (C) 2019 Ferran Marcet - * Copyright (C) 2021 Anthony Berton + * Copyright (C) 2021-2022 Anthony Berton + * Copyright (C) 2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,6 +26,7 @@ * \brief Page to setup PDF options */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; @@ -34,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members', 'stocks', 'Trips')); +$langs->loadLangs(array('admin', 'bills', 'companies', 'languages', 'members', 'other', 'products', 'propal', 'receptions', 'stocks', 'trips')); if (!$user->admin) { accessforbidden(); @@ -62,6 +64,18 @@ if ($action == 'update') { } if (GETPOSTISSET('INVOICE_ADD_ZATCA_QR_CODE')) { dolibarr_set_const($db, "INVOICE_ADD_ZATCA_QR_CODE", GETPOST("INVOICE_ADD_ZATCA_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_del_const($db, "INVOICE_ADD_SWISS_QR_CODE", $conf->entity); + } + if (GETPOSTISSET('INVOICE_ADD_SWISS_QR_CODE')) { + dolibarr_set_const($db, "INVOICE_ADD_SWISS_QR_CODE", GETPOST("INVOICE_ADD_SWISS_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_del_const($db, "INVOICE_ADD_ZATCA_QR_CODE", $conf->entity); + } + if (GETPOSTISSET('INVOICE_CATEGORY_OF_OPERATION')) { + dolibarr_set_const($db, "INVOICE_CATEGORY_OF_OPERATION", GETPOST("INVOICE_CATEGORY_OF_OPERATION", 'int'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET('INVOICE_SHOW_SHIPPING_ADDRESS')) { + dolibarr_set_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", GETPOST("INVOICE_SHOW_SHIPPING_ADDRESS", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_del_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", $conf->entity); } setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -97,8 +111,8 @@ print '
'; print ''; print ''; -if (!empty($conf->propal->enabled)) { - print load_fiche_titre($langs->trans("Proposal"), '', ''); +if (isModEnabled('propal')) { + print load_fiche_titre($langs->trans("Proposal"), '', 'proposal'); print '
'; print ''; @@ -121,11 +135,11 @@ if (!empty($conf->propal->enabled)) { if (isModEnabled('facture')) { - print load_fiche_titre($langs->trans("Invoices"), '', ''); + print load_fiche_titre($langs->trans("Invoices"), '', 'bill'); print '
'; print '
'; - print ''; + print ''; print ''; - /* - print ''; - */ + print $form->selectarray("INVOICE_ADD_SWISS_QR_CODE", $arrval, $conf->global->INVOICE_ADD_SWISS_QR_CODE); + } + print ''; + + // Mention category of operations + // French Decret n°2099-1299 2022-10-07 + print ''; + + print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'; print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore")); @@ -138,21 +152,78 @@ if (isModEnabled('facture')) { } print '
'.$langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING").''; - if ($conf->use_javascript_ajax) { - print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING'); - } else { + print '
'; + print $form->textwithpicto($langs->trans("INVOICE_ADD_SWISS_QR_CODE"), ''); + print ''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('INVOICE_ADD_SWISS_QR_CODE'); + } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", $arrval, $conf->global->MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING); - } - print '
'; + print $form->textwithpicto($langs->trans("InvoiceOptionCategoryOfOperations"), $langs->trans('InvoiceOptionCategoryOfOperationsHelp'), 1); + print ''; + $arrval = array('0'=>$langs->trans("No"), + '1'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes1"), + '2'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes2") + ); + print $form->selectarray("INVOICE_CATEGORY_OF_OPERATION", $arrval, $conf->global->INVOICE_CATEGORY_OF_OPERATION, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp'); + print '
'.$langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING").''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->INVOICE_SHOW_SHIPPING_ADDRESS); + } + print '
'; print '
'; } + + +if (isModEnabled('reception')) { + print load_fiche_titre($langs->trans("Receptions"), '', 'reception'); + + print '
'; + print ''; + print ''; + + print ''; + + print ''; + + print '
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'; + print $langs->trans("RECEPTION_PDF_HIDE_ORDERED"); + print ''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('RECEPTION_PDF_HIDE_ORDERED'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("RECEPTION_PDF_HIDE_ORDERED", $arrval, $conf->global->RECEPTION_PDF_HIDE_ORDERED); + } + print '
'; + print $langs->trans("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT"); + print ''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT", $arrval, $conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT); + } + print '
'; + print '
'; +} + + print '
'; print ''; print '
'; diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php index d2f0d79e4f3..42c766d1a22 100644 --- a/htdocs/admin/perms.php +++ b/htdocs/admin/perms.php @@ -24,6 +24,7 @@ * \brief Page to setup default permissions of a new user */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -226,7 +227,7 @@ if ($result) { // Tick if ($obj->bydefault == 1) { print '
'; - print ''; + print ''; //print img_edit_remove(); print img_picto('', 'switch_on'); print ''; diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php index 88a02e90457..0dad5e887eb 100644 --- a/htdocs/admin/prelevement.php +++ b/htdocs/admin/prelevement.php @@ -25,6 +25,7 @@ * \brief Page to setup Withdrawals */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -392,7 +393,7 @@ print '
'; */ /* Disable this, there is no trigger with elementtype 'withdraw' -if (! empty($conf->global->MAIN_MODULE_NOTIFICATION)) +if (!empty($conf->global->MAIN_MODULE_NOTIFICATION)) { $langs->load("mails"); print load_fiche_titre($langs->trans("Notifications")); diff --git a/htdocs/admin/propal.php b/htdocs/admin/propal.php index 3bc745a1101..10044e33b5b 100644 --- a/htdocs/admin/propal.php +++ b/htdocs/admin/propal.php @@ -28,6 +28,7 @@ * \brief Setup page for commercial proposal module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; @@ -57,9 +58,9 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; $error = 0; if ($action == 'updateMask') { - $maskconstpropal = GETPOST('maskconstpropal', 'alpha'); + $maskconstpropal = GETPOST('maskconstpropal', 'aZ09'); $maskpropal = GETPOST('maskpropal', 'alpha'); - if ($maskconstpropal) { + if ($maskconstpropal && preg_match('/_MASK$/', $maskconstpropal)) { $res = dolibarr_set_const($db, $maskconstpropal, $maskpropal, 'chaine', 0, '', $conf->entity); } @@ -515,7 +516,7 @@ print '
'; print ''; print $langs->trans("PaymentMode").''; -if (empty($conf->facture->enabled)) { +if (!isModEnabled('facture')) { print ''; } print '
".$langs->trans("SuggestPaymentByRIBOnAccount").""; -if (empty($conf->facture->enabled)) { - if (!empty($conf->banque->enabled)) { +if (!isModEnabled('facture')) { + if (isModEnabled("banque")) { $sql = "SELECT rowid, label"; $sql .= " FROM ".MAIN_DB_PREFIX."bank_account"; $sql .= " WHERE clos = 0"; @@ -563,7 +564,7 @@ print "
".$langs->trans("SuggestPaymentByChequeToAddress").""; -if (empty($conf->facture->enabled)) { +if (!isModEnabled('facture')) { print ''; +print ''.$langs->trans("AllowExternalDownload").''; +print ajax_constantonoff('PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD', array(), null, 0, 0, 0, 2, 0, 1); +print '
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnProposal"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'PROPOSAL_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print '
'; @@ -693,19 +703,19 @@ print "'; print $form->textwithpicto($langs->trans("WatermarkOnDraftProposal"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print '
'; -print ''; +print ''; print ''; print ''; print "
'; print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL").' '; - if (! empty($conf->use_javascript_ajax)) + if (!empty($conf->use_javascript_ajax)) { print ajax_constantonoff('BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL'); } diff --git a/htdocs/admin/proxy.php b/htdocs/admin/proxy.php index 2c3a2629a76..f2103d0c97d 100644 --- a/htdocs/admin/proxy.php +++ b/htdocs/admin/proxy.php @@ -22,6 +22,7 @@ * \brief Page setup proxy to use for external web access */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; diff --git a/htdocs/admin/receiptprinter.php b/htdocs/admin/receiptprinter.php index ac136af0c61..a8ae4501ca5 100644 --- a/htdocs/admin/receiptprinter.php +++ b/htdocs/admin/receiptprinter.php @@ -24,6 +24,7 @@ * \brief Page to setup receipt printer */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -183,8 +184,8 @@ if ($action == 'testtemplate' && $user->admin) { // test require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $object = new Facture($db); - //$object->initAsSpecimen(); - $object->fetch(18); + $object->initAsSpecimen(); + //$object->fetch(18); //var_dump($object->lines); $ret = $printer->sendToPrinter($object, $templateid, 1); if ($ret == 0) { diff --git a/htdocs/admin/reception_extrafields.php b/htdocs/admin/reception_extrafields.php index aa83fca230c..bf87698e5d8 100644 --- a/htdocs/admin/reception_extrafields.php +++ b/htdocs/admin/reception_extrafields.php @@ -28,6 +28,7 @@ * \brief Page to setup extra fields of reception */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -91,14 +92,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - - // Creation of an optional field if ($action == 'create') { print "
"; diff --git a/htdocs/admin/reception_setup.php b/htdocs/admin/reception_setup.php index 26300ece329..32f6c5b226e 100644 --- a/htdocs/admin/reception_setup.php +++ b/htdocs/admin/reception_setup.php @@ -21,6 +21,7 @@ * \brief Page to setup reception module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php'; @@ -47,7 +48,7 @@ $type = 'reception'; * Actions */ -if (!empty($conf->reception->enabled) && empty($conf->global->MAIN_SUBMODULE_RECEPTION)) { +if (isModEnabled('reception') && empty($conf->global->MAIN_SUBMODULE_RECEPTION)) { // This option should always be set to on when module is on. dolibarr_set_const($db, "MAIN_SUBMODULE_RECEPTION", "1", 'chaine', 0, '', $conf->entity); } @@ -64,9 +65,9 @@ if (empty($conf->global->RECEPTION_ADDON_NUMBER)) { include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconstreception', 'alpha'); + $maskconst = GETPOST('maskconstreception', 'aZ09'); $maskvalue = GETPOST('maskreception', 'alpha'); - if (!empty($maskconst)) { + if (!empty($maskconst) && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } @@ -237,7 +238,7 @@ foreach ($dirmodels as $reldir) { if ($conf->global->RECEPTION_ADDON_NUMBER == "$file") { print img_picto($langs->trans("Activated"), 'switch_on'); } else { - print 'scandir.'&label='.urlencode($module->name).'">'; + print 'scandir) ? '&scan_dir='.$module->scandir : '').(!empty($module->name) ? '&label='.urlencode($module->name) : '').'">'; print img_picto($langs->trans("Disabled"), 'switch_off'); print ''; } @@ -344,10 +345,10 @@ foreach ($dirmodels as $reldir) { $module = new $classname($db); $modulequalified = 1; - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { + if (isset($module->version) && $module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { $modulequalified = 0; } - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) { + if (isset($module->version) && $module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) { $modulequalified = 0; } @@ -455,19 +456,19 @@ print $form->textwithpicto($langs->trans("FreeLegalTextOnReceptions"), $langs->t $variablename='RECEPTION_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { - print ''; + print ''; } else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor($variablename, $conf->global->$variablename,'',80,'dolibarr_notes'); + $doleditor=new DolEditor($variablename, getDolGlobalString($variablename),'',80,'dolibarr_notes'); print $doleditor->Create(); } print "
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext).'
'; -print ''; +print ''; print "
'; diff --git a/htdocs/admin/resource.php b/htdocs/admin/resource.php index 1d3e29c9cd4..9b421a17a6d 100644 --- a/htdocs/admin/resource.php +++ b/htdocs/admin/resource.php @@ -22,6 +22,7 @@ * \brief Setup page to configure resource module */ +// Load Dolibarr environment require '../main.inc.php'; // Class diff --git a/htdocs/admin/resource_extrafields.php b/htdocs/admin/resource_extrafields.php index 068ae6f02d1..62c1c4cfed2 100644 --- a/htdocs/admin/resource_extrafields.php +++ b/htdocs/admin/resource_extrafields.php @@ -25,6 +25,7 @@ * \brief Page to setup extra fields of resource */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/resource.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -84,13 +85,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index 795a0557f16..e30e50769bb 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2005-2007 Regis Houssin * Copyright (C) 2013-2015 Juanjo Menent * @@ -23,6 +23,7 @@ * \brief Page de configuration du module securite */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; @@ -45,11 +46,8 @@ $allow_disable_encryption = true; */ if ($action == 'setgeneraterule') { - if (!dolibarr_set_const($db, 'USER_PASSWORD_GENERATED', $_GET["value"], 'chaine', 0, '', $conf->entity)) { + if (!dolibarr_set_const($db, 'USER_PASSWORD_GENERATED', GETPOST("value", "alphanohtml"), 'chaine', 0, '', $conf->entity)) { dol_print_error($db); - } else { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } } @@ -58,7 +56,11 @@ if ($action == 'activate_encrypt') { $db->begin(); - dolibarr_set_const($db, "DATABASE_PWD_ENCRYPTED", "1", 'chaine', 0, '', $conf->entity); + // On old version, a bug created the constant into user entity, so we delete it to be sure such entry won't exists. We want it in entity 0 or nowhere. + dolibarr_del_const($db, "DATABASE_PWD_ENCRYPTED", $conf->entity); + // We set entity=0 (all) because DATABASE_PWD_ENCRYPTED is a setup into conf file, so always shared for everybody + $entityforall = 0; + dolibarr_set_const($db, "DATABASE_PWD_ENCRYPTED", "1", 'chaine', 0, '', $entityforall); $sql = "SELECT u.rowid, u.pass, u.pass_crypted"; $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; @@ -94,8 +96,6 @@ if ($action == 'activate_encrypt') { //exit; if (!$error) { $db->commit(); - header("Location: security.php"); - exit; } else { $db->rollback(); dol_print_error($db, ''); @@ -106,8 +106,6 @@ if ($action == 'activate_encrypt') { if ($allow_disable_encryption) { dolibarr_del_const($db, "DATABASE_PWD_ENCRYPTED", $conf->entity); } - header("Location: security.php"); - exit; } if ($action == 'activate_encryptdbpassconf') { @@ -138,12 +136,8 @@ if ($action == 'activate_encryptdbpassconf') { if ($action == 'activate_MAIN_SECURITY_DISABLEFORGETPASSLINK') { dolibarr_set_const($db, "MAIN_SECURITY_DISABLEFORGETPASSLINK", '1', 'chaine', 0, '', $conf->entity); - header("Location: security.php"); - exit; } elseif ($action == 'disable_MAIN_SECURITY_DISABLEFORGETPASSLINK') { dolibarr_del_const($db, "MAIN_SECURITY_DISABLEFORGETPASSLINK", $conf->entity); - header("Location: security.php"); - exit; } if ($action == 'updatepattern') { @@ -226,6 +220,8 @@ print ''.$langs->trans("Example").''; print ''.$langs->trans("Activated").''; print ''; +$tabConf = explode(";", getDolGlobalString('USER_PASSWORD_PATTERN')); + foreach ($arrayhandler as $key => $module) { // Show modules according to features level if (!empty($module->version) && $module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { @@ -236,15 +232,16 @@ foreach ($arrayhandler as $key => $module) { } if ($module->isEnabled()) { - print ''; + print ''; + print img_picto('', $module->picto, 'class="width25 size15x"').' '; print ucfirst($key); print "\n"; print $module->getDescription().'
'; - print $langs->trans("MinLength").': '.$module->length; + print $langs->trans("MinLength").': '.$module->length.''; print ''; // Show example of numbering module - print ''; + print ''; $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) { $langs->load("errors"); @@ -256,7 +253,7 @@ foreach ($arrayhandler as $key => $module) { } print ''."\n"; - print ''; + print ''; if ($conf->global->USER_PASSWORD_GENERATED == $key) { //print img_picto('', 'tick'); print img_picto($langs->trans("Enabled"), 'switch_on'); @@ -274,10 +271,9 @@ print '
'; print ''; -//if($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK == 1) -// Patter for Password Perso + +// Pattern for Password Perso if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { - $tabConf = explode(";", $conf->global->USER_PASSWORD_PATTERN); print '
'; print '
'; @@ -324,10 +320,10 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { print ''; - print '
'; print '
'; print ''.$langs->trans("Save").''; print '
'; + print '

'; print ''; + +print ''; } diff --git a/htdocs/asset/class/asset.class.php b/htdocs/asset/class/asset.class.php index 410af398bc7..7c2b55c045e 100644 --- a/htdocs/asset/class/asset.class.php +++ b/htdocs/asset/class/asset.class.php @@ -155,6 +155,7 @@ class Asset extends CommonObject public $import_key; public $model_pdf; public $status; + public $user_cloture_id; // /** // * @var string Field with ID of parent key if this object has a parent @@ -194,7 +195,7 @@ class Asset extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -651,6 +652,8 @@ class Asset extends CommonObject return -1; } + // Old request with 'WITH' + /* $sql = "WITH in_accounting_bookkeeping(fk_docdet) AS ("; $sql .= " SELECT DISTINCT fk_docdet"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping"; @@ -662,6 +665,14 @@ class Asset extends CommonObject $sql .= " LEFT JOIN in_accounting_bookkeeping as iab ON iab.fk_docdet = ad.rowid"; $sql .= " WHERE ad.fk_asset = " . (int) $this->id; $sql .= " ORDER BY ad.depreciation_date ASC"; + */ + + $sql = "SELECT ad.rowid, ad.depreciation_mode, ad.ref, ad.depreciation_date, ad.depreciation_ht, ad.cumulative_depreciation_ht"; + $sql .= ", " . $this->db->ifsql('iab.fk_docdet IS NOT NULL', 1, 0) . " AS bookkeeping"; + $sql .= " FROM " . MAIN_DB_PREFIX . "asset_depreciation AS ad"; + $sql .= " LEFT JOIN (SELECT DISTINCT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE doc_type = 'asset') AS iab ON iab.fk_docdet = ad.rowid"; + $sql .= " WHERE ad.fk_asset = " . (int) $this->id; + $sql .= " ORDER BY ad.depreciation_date ASC"; $resql = $this->db->query($sql); if (!$resql) { @@ -707,6 +718,8 @@ class Asset extends CommonObject return -1; } + // Old request with 'WITH' + /* $sql = "WITH in_accounting_bookkeeping(fk_docdet) AS ("; $sql .= " SELECT DISTINCT fk_docdet"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping"; @@ -717,6 +730,13 @@ class Asset extends CommonObject $sql .= " LEFT JOIN in_accounting_bookkeeping as iab ON iab.fk_docdet = ad.rowid"; $sql .= " WHERE ad.fk_asset = " . (int) $this->id; $sql .= " AND iab.fk_docdet IS NOT NULL"; + */ + + $sql = "SELECT COUNT(*) AS has_bookkeeping"; + $sql .= " FROM " . MAIN_DB_PREFIX . "asset_depreciation AS ad"; + $sql .= " LEFT JOIN (SELECT DISTINCT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE doc_type = 'asset') AS iab ON iab.fk_docdet = ad.rowid"; + $sql .= " WHERE ad.fk_asset = " . (int) $this->id; + $sql .= " AND iab.fk_docdet IS NOT NULL"; $resql = $this->db->query($sql); if (!$resql) { @@ -865,6 +885,9 @@ class Asset extends CommonObject foreach ($options->deprecation_options as $mode_key => $fields) { // Get last depreciation lines save in bookkeeping //----------------------------------------------------- + + // Old request with 'WITH' + /* $sql = "WITH in_accounting_bookkeeping(fk_docdet) AS ("; $sql .= " SELECT fk_docdet"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping"; @@ -878,6 +901,17 @@ class Asset extends CommonObject $sql .= " AND iab.fk_docdet IS NOT NULL"; $sql .= " ORDER BY ad.depreciation_date DESC"; $sql .= " LIMIT 1"; + */ + + $sql = "SELECT ad.depreciation_date, ad.cumulative_depreciation_ht"; + $sql .= " FROM " . MAIN_DB_PREFIX . "asset_depreciation AS ad"; + $sql .= " LEFT JOIN (SELECT DISTINCT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE doc_type = 'asset') AS iab ON iab.fk_docdet = ad.rowid"; + $sql .= " WHERE ad.fk_asset = " . (int) $this->id; + $sql .= " AND ad.depreciation_mode = '" . $this->db->escape($mode_key) . "'"; + $sql .= " AND iab.fk_docdet IS NOT NULL"; + $sql .= " ORDER BY ad.depreciation_date DESC"; + $sql .= " LIMIT 1"; + $resql = $this->db->query($sql); if (!$resql) { $this->errors[] = $langs->trans('AssetErrorFetchMaxDepreciationDateForMode', $mode_key) . ': ' . $this->db->lasterror(); @@ -1170,10 +1204,10 @@ class Asset extends CommonObject global $hidedetails, $hidedesc, $hideref; $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $this->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1233,10 +1267,10 @@ class Asset extends CommonObject global $hidedetails, $hidedesc, $hideref; $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $this->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1441,24 +1475,10 @@ class Asset extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_author; + $this->user_validation_id = $obj->fk_user_valid; + $this->user_cloture_id = $obj->fk_user_cloture; $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->datem); $this->date_validation = $this->db->jdate($obj->datev); diff --git a/htdocs/asset/class/assetdepreciationoptions.class.php b/htdocs/asset/class/assetdepreciationoptions.class.php index ce2ddd73c08..49efadca869 100644 --- a/htdocs/asset/class/assetdepreciationoptions.class.php +++ b/htdocs/asset/class/assetdepreciationoptions.class.php @@ -163,8 +163,8 @@ class AssetDepreciationOptions extends CommonObject } // Unset required option (notnull) if field disabled - if (!empty($mode_info['enabled_field'])) { - $info = explode(':', $mode_info['enabled_field']); + if (!empty($field_info['enabled_field'])) { + $info = explode(':', $field_info['enabled_field']); if ($this->deprecation_options[$info[0]][$info[1]] != $info[2] && isset($this->fields[$field_key]['notnull'])) { unset($this->fields[$field_key]['notnull']); } diff --git a/htdocs/asset/class/assetmodel.class.php b/htdocs/asset/class/assetmodel.class.php index 077f33936e8..fb574e6ea18 100644 --- a/htdocs/asset/class/assetmodel.class.php +++ b/htdocs/asset/class/assetmodel.class.php @@ -160,7 +160,7 @@ class AssetModel extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -734,27 +734,11 @@ class AssetModel extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); } $this->db->free($result); diff --git a/htdocs/asset/depreciation.php b/htdocs/asset/depreciation.php index 8f3547d81fb..eae2ff45e2b 100644 --- a/htdocs/asset/depreciation.php +++ b/htdocs/asset/depreciation.php @@ -22,6 +22,7 @@ * \brief Card with depreciation on Asset */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/asset.class.php'; @@ -56,7 +57,7 @@ if ($id > 0 || !empty($ref)) { if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!empty($object->not_depreciated)) accessforbidden(); $object->asset_depreciation_options = &$assetdepreciationoptions; diff --git a/htdocs/asset/depreciation_options.php b/htdocs/asset/depreciation_options.php index ba5719705dc..f4558ae6157 100644 --- a/htdocs/asset/depreciation_options.php +++ b/htdocs/asset/depreciation_options.php @@ -22,6 +22,7 @@ * \brief Card with depreciation options on Asset */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/asset.class.php'; @@ -58,7 +59,7 @@ $permissiontoadd = $user->rights->asset->write; // Used by the include of action if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!empty($object->not_depreciated)) accessforbidden(); $object->asset_depreciation_options = &$assetdepreciationoptions; diff --git a/htdocs/asset/disposal.php b/htdocs/asset/disposal.php index 7fddb92b05f..0f1b71e1929 100644 --- a/htdocs/asset/disposal.php +++ b/htdocs/asset/disposal.php @@ -22,6 +22,7 @@ * \brief Card with disposal info on Asset */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT.'/asset/class/asset.class.php'; @@ -57,7 +58,7 @@ $permissiontoadd = $user->rights->asset->write; // Used by the include of action if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!isset($object->disposal_date) || $object->disposal_date === "") accessforbidden(); diff --git a/htdocs/asset/document.php b/htdocs/asset/document.php index 96b222b26c1..ee5f7845aed 100644 --- a/htdocs/asset/document.php +++ b/htdocs/asset/document.php @@ -22,6 +22,7 @@ * \brief Page for attached files on assets */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT.'/asset/class/asset.class.php'; @@ -78,7 +79,7 @@ $permissiontoadd = $user->rights->asset->asset->write; // Used by the include of if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); /* diff --git a/htdocs/asset/list.php b/htdocs/asset/list.php index c475e22fc83..1ddfd2a1c82 100644 --- a/htdocs/asset/list.php +++ b/htdocs/asset/list.php @@ -125,7 +125,7 @@ $permissiontoadd = $user->rights->asset->write; $permissiontodelete = $user->rights->asset->delete; // Security check -if (empty($conf->asset->enabled)) { +if (!isModEnabled('asset')) { accessforbidden('Module not enabled'); } @@ -134,7 +134,7 @@ if ($user->socid > 0) accessforbidden(); $socid = 0; if ($user->socid > 0) $socid = $user->socid; $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); @@ -216,6 +216,9 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; @@ -297,21 +300,18 @@ $sql .= !empty($hookmanager->resPrint) ? (" HAVING 1=1 " . $hookmanager->resPrin // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - /* This old and fast method to get and count full list returns all record so use a high amount of memory. - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - */ - /* The slow method does not consume memory on mysql (not tested on pgsql) */ - /*$resql = $db->query($sql, 0, 'auto', 1); - while ($db->fetch_object($resql)) { - $nbtotalofrecords++; - }*/ /* The fast and low memory method to get and count full list converts the sql into a sql count */ - $sqlforcount = preg_replace('/^SELECT[a-z0-9\._\s\(\),]+FROM/i', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); $resql = $db->query($sqlforcount); - $objforcount = $db->fetch_object($resql); - $nbtotalofrecords = $objforcount->nbtotalofrecords; - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } diff --git a/htdocs/asset/model/accountancy_codes.php b/htdocs/asset/model/accountancy_codes.php index 7582b61177e..b39a72bb7a3 100644 --- a/htdocs/asset/model/accountancy_codes.php +++ b/htdocs/asset/model/accountancy_codes.php @@ -22,6 +22,7 @@ * \brief Card with accountancy code on Asset Model */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/assetmodel.class.php'; @@ -59,7 +60,7 @@ $permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rig if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, 'asset', $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); $result = $assetaccountancycodes->fetchAccountancyCodes(0, $object->id); diff --git a/htdocs/asset/model/agenda.php b/htdocs/asset/model/agenda.php index f1db3030dc2..8758d22879c 100644 --- a/htdocs/asset/model/agenda.php +++ b/htdocs/asset/model/agenda.php @@ -22,6 +22,7 @@ * \brief Tab of events on Asset Model */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/assetmodel.class.php'; @@ -45,7 +46,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -88,7 +89,7 @@ if ($user->socid > 0) accessforbidden(); if ($user->socid > 0) $socid = $user->socid; $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, 'asset', $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); @@ -125,11 +126,11 @@ $form = new Form($db); if ($object->id > 0) { $title = $langs->trans("Agenda"); - //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + //if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; $help_url = 'EN:Module_Agenda_En'; llxHeader('', $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = assetModelPrepareHead($object); @@ -172,7 +173,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid=' . urlencode($objthirdparty->id); } - $out .= (!empty($objcon->id) ? '&contactid=' . urlencode($objcon->id) : '') . '&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid=' . urlencode($objcon->id) : ''); //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -182,7 +183,7 @@ if ($object->id > 0) { print '
'; // if (isModEnabled('agenda')) { - // if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + // if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { // print '' . $langs->trans("AddAction") . ''; // } else { // print '' . $langs->trans("AddAction") . ''; diff --git a/htdocs/asset/model/card.php b/htdocs/asset/model/card.php index f4cf1074dd2..3eb75eded08 100644 --- a/htdocs/asset/model/card.php +++ b/htdocs/asset/model/card.php @@ -22,6 +22,7 @@ * \brief Page to create/edit/view asset Model */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/assetmodel.class.php'; @@ -80,7 +81,7 @@ if ($user->socid > 0) accessforbidden(); if ($user->socid > 0) $socid = $user->socid; $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, 'asset', $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); @@ -300,7 +301,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } // Clone - print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&token=' . newToken(), '', $permissiontoadd); + print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . (!empty($socid) ? '&socid=' . $socid : '') . '&action=clone&token=' . newToken(), '', $permissiontoadd); // Delete (need delete permission, or if draft, just need create/modify permission) print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=delete&token=' . newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); diff --git a/htdocs/asset/model/depreciation_options.php b/htdocs/asset/model/depreciation_options.php index c34bd38dc46..e8519e581d9 100644 --- a/htdocs/asset/model/depreciation_options.php +++ b/htdocs/asset/model/depreciation_options.php @@ -22,6 +22,7 @@ * \brief Card with depreciation options on Asset Model */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/assetmodel.class.php'; @@ -59,7 +60,7 @@ $permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rig if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, 'asset', $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); $object->asset_depreciation_options = &$assetdepreciationoptions; diff --git a/htdocs/asset/model/list.php b/htdocs/asset/model/list.php index a55d5f49f9a..aa80b4e5426 100644 --- a/htdocs/asset/model/list.php +++ b/htdocs/asset/model/list.php @@ -126,7 +126,7 @@ $permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rig $permissiontodelete = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->delete) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->delete))); // Security check -if (empty($conf->asset->enabled)) { +if (!isModEnabled('asset')) { accessforbidden('Module not enabled'); } @@ -140,7 +140,7 @@ if ($user->socid > 0) { } $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, 'asset', $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); /* @@ -307,7 +307,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $nbtotalofrecords = $db->num_rows($result); */ /* The fast and low memory method to get and count full list converts the sql into a sql count */ - $sqlforcount = preg_replace('/^SELECT[a-z0-9\._\s\(\),]+FROM/i', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $sqlforcount = preg_replace('/^SELECT[a-z0-9\._\s\(\),]+FROM/Ui', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); $resql = $db->query($sqlforcount); if ($resql) { diff --git a/htdocs/asset/model/note.php b/htdocs/asset/model/note.php index 8c88feba449..52d7e13e777 100644 --- a/htdocs/asset/model/note.php +++ b/htdocs/asset/model/note.php @@ -22,6 +22,7 @@ * \brief Card with notes on Asset Model */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/assetmodel.class.php'; diff --git a/htdocs/asset/note.php b/htdocs/asset/note.php index 8de86d49bb7..fd404a77447 100644 --- a/htdocs/asset/note.php +++ b/htdocs/asset/note.php @@ -22,6 +22,7 @@ * \brief Card with notes on Asset */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT.'/asset/class/asset.class.php'; @@ -57,7 +58,7 @@ $permissiontoadd = $user->rights->asset->write; // Used by the include of action if ($user->socid > 0) accessforbidden(); $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); /* diff --git a/htdocs/asset/tpl/accountancy_codes_edit.tpl.php b/htdocs/asset/tpl/accountancy_codes_edit.tpl.php index bbd2b3d797c..fa01cbd59bc 100644 --- a/htdocs/asset/tpl/accountancy_codes_edit.tpl.php +++ b/htdocs/asset/tpl/accountancy_codes_edit.tpl.php @@ -34,7 +34,7 @@ if (!is_object($form)) { $form = new Form($db); } -if (!empty($conf->accounting->enabled) && !is_object($formaccounting)) { +if (isModEnabled('accounting') && !is_object($formaccounting)) { require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; $formaccounting = new FormAccounting($db); } @@ -66,7 +66,7 @@ if (empty($reshook)) { $html_name = $mode_key . '_' . $field_key; print '' . $langs->trans($field_info['label']) . ''; $accountancy_code = GETPOSTISSET($html_name) ? GETPOST($html_name, 'aZ09') : (!empty($assetaccountancycodes->accountancy_codes[$mode_key][$field_key]) ? $assetaccountancycodes->accountancy_codes[$mode_key][$field_key] : ''); - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account($accountancy_code, $html_name, 1, null, 1, 1, 'minwidth150 maxwidth300', 1); } else { print ''; diff --git a/htdocs/asset/tpl/accountancy_codes_view.tpl.php b/htdocs/asset/tpl/accountancy_codes_view.tpl.php index 0d92ad8eb37..67993291359 100644 --- a/htdocs/asset/tpl/accountancy_codes_view.tpl.php +++ b/htdocs/asset/tpl/accountancy_codes_view.tpl.php @@ -50,7 +50,7 @@ if ($reshook < 0) { } if (empty($reshook)) { - if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; + if (isModEnabled('accounting')) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; foreach ($assetaccountancycodes->accountancy_codes_fields as $mode_key => $mode_info) { //if (empty($object->enabled_modes[$mode_key])) continue; @@ -63,7 +63,7 @@ if (empty($reshook)) { print '' . $langs->trans($field_info['label']) . ''; if (!empty($assetaccountancycodes->accountancy_codes[$mode_key][$field_key])) { $accountancy_code = $assetaccountancycodes->accountancy_codes[$mode_key][$field_key]; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $accountancy_code, 1); diff --git a/htdocs/asset/tpl/linkedobjectblock.tpl.php b/htdocs/asset/tpl/linkedobjectblock.tpl.php index aef30995432..11d94714db8 100644 --- a/htdocs/asset/tpl/linkedobjectblock.tpl.php +++ b/htdocs/asset/tpl/linkedobjectblock.tpl.php @@ -46,12 +46,12 @@ foreach ($linkedObjectBlock as $key => $objectlink) { $trclass .= ' liste_sub_total'; } echo ''; - echo ''.$langs->trans("Asset"); + echo ''.$langs->trans("Asset"); if (!empty($showImportButton) && !empty($conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES)) { print ' '; - echo ''.$objectlink->getNomUrl(1).''; + echo ''.$objectlink->getNomUrl(1).''; echo ''.$objectlink->label.''; echo ''.dol_print_date($objectlink->date_start, 'day').''; echo ''; diff --git a/htdocs/asterisk/wrapper.php b/htdocs/asterisk/wrapper.php index 7313fdfd2d5..2f5096f6436 100644 --- a/htdocs/asterisk/wrapper.php +++ b/htdocs/asterisk/wrapper.php @@ -34,9 +34,6 @@ if (!defined('NOREQUIRESOC')) { if (!defined('NOREQUIRETRAN')) { define('NOREQUIRETRAN', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} if (!defined('NOTOKENRENEWAL')) { define('NOTOKENRENEWAL', '1'); } @@ -75,7 +72,6 @@ function llxFooter() print "\n".''."\n"; } - require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/barcode/codeinit.php b/htdocs/barcode/codeinit.php index b4e365fe018..9c45d29cf79 100644 --- a/htdocs/barcode/codeinit.php +++ b/htdocs/barcode/codeinit.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2014-2022 Laurent Destailleur * Copyright (C) 2018 Ferran Marcet * * This program is free software; you can redistribute it and/or modify @@ -21,6 +21,8 @@ * \ingroup member * \brief Page to make mass init of barcode */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; @@ -35,7 +37,8 @@ $month = dol_print_date($now, '%m'); $day = dol_print_date($now, '%d'); $forbarcode = GETPOST('forbarcode'); $fk_barcode_type = GETPOST('fk_barcode_type'); -$eraseallbarcode = GETPOST('eraseallbarcode'); +$eraseallproductbarcode = GETPOST('eraseallproductbarcode'); +$eraseallthirdpartybarcode = GETPOST('eraseallthirdpartybarcode'); $action = GETPOST('action', 'aZ09'); @@ -43,14 +46,126 @@ $producttmp = new Product($db); $thirdpartytmp = new Societe($db); $modBarCodeProduct = ''; +$modBarCodeThirdparty = ''; -$maxperinit = 1000; +$maxperinit = empty($conf->global->BARCODE_INIT_MAX) ? 1000 : $conf->global->BARCODE_INIT_MAX; + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +if (!isModEnabled('barcode')) { + accessforbidden('Module not enabled'); +} +//restrictedArea($user, 'barcode'); +if (empty($user->admin)) { + accessforbidden('Must be admin'); +} /* * Actions */ +// Define barcode template for third-party +if (!empty($conf->global->BARCODE_THIRDPARTY_ADDON_NUM)) { + $dirbarcodenum = array_merge(array('/core/modules/barcode/'), $conf->modules_parts['barcode']); + + foreach ($dirbarcodenum as $dirroot) { + $dir = dol_buildpath($dirroot, 0); + + $handle = @opendir($dir); + if (is_resource($handle)) { + while (($file = readdir($handle)) !== false) { + if (preg_match('/^mod_barcode_thirdparty_.*php$/', $file)) { + $file = substr($file, 0, dol_strlen($file) - 4); + + try { + dol_include_once($dirroot.$file.'.php'); + } catch (Exception $e) { + dol_syslog($e->getMessage(), LOG_ERR); + } + + $modBarCodeThirdparty = new $file(); + break; + } + } + closedir($handle); + } + } +} + +if ($action == 'initbarcodethirdparties') { + if (!is_object($modBarCodeThirdparty)) { + $error++; + setEventMessages($langs->trans("NoBarcodeNumberingTemplateDefined"), null, 'errors'); + } + + if (!$error) { + $thirdpartystatic = new Societe($db); + + $db->begin(); + + $nbok = 0; + if (!empty($eraseallthirdpartybarcode)) { + $sql = "UPDATE ".MAIN_DB_PREFIX."societe"; + $sql .= " SET barcode = NULL"; + $resql = $db->query($sql); + if ($resql) { + setEventMessages($langs->trans("AllBarcodeReset"), null, 'mesgs'); + } else { + $error++; + dol_print_error($db); + } + } else { + $sql = "SELECT rowid"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe"; + $sql .= " WHERE barcode IS NULL or barcode = ''"; + $sql .= $db->order("datec", "ASC"); + $sql .= $db->plimit($maxperinit); + + dol_syslog("codeinit", LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + + $i = 0; $nbok = $nbtry = 0; + while ($i < min($num, $maxperinit)) { + $obj = $db->fetch_object($resql); + if ($obj) { + $thirdpartystatic->id = $obj->rowid; + $nextvalue = $modBarCodeThirdparty->getNextValue($thirdpartystatic, ''); + + $result = $thirdpartystatic->setValueFrom('barcode', $nextvalue, '', '', 'text', '', $user, 'THIRDPARTY_MODIFY'); + + $nbtry++; + if ($result > 0) { + $nbok++; + } + } + + $i++; + } + } else { + $error++; + dol_print_error($db); + } + + if (!$error) { + setEventMessages($langs->trans("RecordsModified", $nbok), null, 'mesgs'); + } + } + + if (!$error) { + //$db->rollback(); + $db->commit(); + } else { + $db->rollback(); + } + } + + $action = ''; +} + // Define barcode template for products if (!empty($conf->global->BARCODE_PRODUCT_ADDON_NUM)) { $dirbarcodenum = array_merge(array('/core/modules/barcode/'), $conf->modules_parts['barcode']); @@ -64,14 +179,16 @@ if (!empty($conf->global->BARCODE_PRODUCT_ADDON_NUM)) { if (preg_match('/^mod_barcode_product_.*php$/', $file)) { $file = substr($file, 0, dol_strlen($file) - 4); - try { - dol_include_once($dirroot.$file.'.php'); - } catch (Exception $e) { - dol_syslog($e->getMessage(), LOG_ERR); - } + if ($file == $conf->global->BARCODE_PRODUCT_ADDON_NUM) { + try { + dol_include_once($dirroot.$file.'.php'); + } catch (Exception $e) { + dol_syslog($e->getMessage(), LOG_ERR); + } - $modBarCodeProduct = new $file(); - break; + $modBarCodeProduct = new $file(); + break; + } } } closedir($handle); @@ -91,7 +208,7 @@ if ($action == 'initbarcodeproducts') { $db->begin(); $nbok = 0; - if (!empty($eraseallbarcode)) { + if (!empty($eraseallproductbarcode)) { $sql = "UPDATE ".MAIN_DB_PREFIX."product"; $sql .= " SET barcode = NULL"; $resql = $db->query($sql); @@ -155,18 +272,10 @@ if ($action == 'initbarcodeproducts') { } - /* * View */ -if (!$user->admin) { - accessforbidden(); -} -if (empty($conf->barcode->enabled)) { - accessforbidden(); -} - $form = new Form($db); llxHeader('', $langs->trans("MassBarcodeInit")); @@ -180,16 +289,25 @@ print '
'; //print img_picto('','puce').' '.$langs->trans("PrintsheetForOneBarCode").'
'; //print '
'; -print '
'; -print ''; -print ''; -print ''; - print '
'; + + +// Example 1 : Adding jquery code +print ''; + + // For thirdparty if (isModEnabled('societe')) { - $nbno = $nbtotal = 0; + print ''; + print ''; + print ''; + print ''; + $nbthirdpartyno = $nbthirdpartytotal = 0; print load_fiche_titre($langs->trans("BarcodeInitForThirdparties"), '', 'company'); @@ -198,7 +316,7 @@ if (isModEnabled('societe')) { $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); - $nbno = $obj->nb; + $nbthirdpartyno = $obj->nb; } else { dol_print_error($db); } @@ -207,30 +325,50 @@ if (isModEnabled('societe')) { $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); - $nbtotal = $obj->nb; + $nbthirdpartytotal = $obj->nb; } else { dol_print_error($db); } - print $langs->trans("CurrentlyNWithoutBarCode", $nbno, $nbtotal, $langs->transnoentitiesnoconv("ThirdParties")).'
'."\n"; + print $langs->trans("CurrentlyNWithoutBarCode", $nbthirdpartyno, $nbthirdpartytotal, $langs->transnoentitiesnoconv("ThirdParties"))."\n"; - print '
'; + $disabledthirdparty = $disabledthirdparty1 = 0; + + if (is_object($modBarCodeThirdparty)) { + print '
'.$langs->trans("BarCodeNumberManager").": "; + $objthirdparty = new Societe($db); + print ''.(isset($modBarCodeThirdparty->name) ? $modBarCodeThirdparty->name : $modBarCodeThirdparty->nom).' - '.$langs->trans("NextValue").': '.$modBarCodeThirdparty->getNextValue($objthirdparty).'
'; + $disabledthirdparty = 0; + print '
'; + } else { + $disabledthirdparty = 1; + $titleno = $langs->trans("NoBarcodeNumberingTemplateDefined"); + print '
'; + } + if (empty($nbthirdpartyno)) { + $disabledthirdparty1 = 1; + } + + $moretagsthirdparty1 = (($disabledthirdparty || $disabledthirdparty1) ? ' disabled title="'.dol_escape_htmltag($titleno).'"' : ''); + print '
'; + $moretagsthirdparty2 = (($nbthirdpartyno == $nbthirdpartytotal) ? ' disabled' : ''); + print '   '; + print ''; print '



'; + print '
'; } // For products -if ($conf->product->enabled || $conf->product->service) { - // Example 1 : Adding jquery code - print ''; +if (isModEnabled('product') || isModEnabled('service')) { + print '
'; + print ''; + print ''; + print ''; - $nbno = $nbtotal = 0; + $nbproductno = $nbproducttotal = 0; print load_fiche_titre($langs->trans("BarcodeInitForProductsOrServices"), '', 'product'); print '
'."\n"; @@ -247,7 +385,7 @@ if ($conf->product->enabled || $conf->product->service) { $i = 0; while ($i < $num) { $obj = $db->fetch_object($resql); - $nbno += $obj->nb; + $nbproductno += $obj->nb; $i++; } @@ -259,35 +397,40 @@ if ($conf->product->enabled || $conf->product->service) { $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); - $nbtotal = $obj->nb; + $nbproducttotal = $obj->nb; } else { dol_print_error($db); } - print $langs->trans("CurrentlyNWithoutBarCode", $nbno, $nbtotal, $langs->transnoentitiesnoconv("ProductsOrServices")).'
'."\n"; + print $langs->trans("CurrentlyNWithoutBarCode", $nbproductno, $nbproducttotal, $langs->transnoentitiesnoconv("ProductsOrServices"))."\n"; + + $disabledproduct = $disabledproduct1 = 0; if (is_object($modBarCodeProduct)) { - print $langs->trans("BarCodeNumberManager").": "; + print '
'.$langs->trans("BarCodeNumberManager").": "; $objproduct = new Product($db); print ''.(isset($modBarCodeProduct->name) ? $modBarCodeProduct->name : $modBarCodeProduct->nom).' - '.$langs->trans("NextValue").': '.$modBarCodeProduct->getNextValue($objproduct).'
'; - $disabled = 0; + $disabledproduct = 0; + print '
'; } else { - $disabled = 1; + $disabledproduct = 1; $titleno = $langs->trans("NoBarcodeNumberingTemplateDefined"); - print ''.$langs->trans("NoBarcodeNumberingTemplateDefined").' ('.$langs->trans("ToGenerateCodeDefineAutomaticRuleFirst").')
'; + print '
'.$langs->trans("NoBarcodeNumberingTemplateDefined"); + print '
'.$langs->trans("ToGenerateCodeDefineAutomaticRuleFirst").''; + print '
'; } - if (empty($nbno)) { - $disabled1 = 1; + if (empty($nbproductno)) { + $disabledproduct1 = 1; } - print '
'; //print ' '.$langs->trans("ResetBarcodeForAllRecords").'
'; - $moretags1 = (($disabled || $disabled1) ? ' disabled title="'.dol_escape_htmltag($titleno).'"' : ''); - print ''; - $moretags2 = (($nbno == $nbtotal) ? ' disabled' : ''); + $moretagsproduct1 = (($disabledproduct || $disabledproduct1) ? ' disabled title="'.dol_escape_htmltag($titleno).'"' : ''); + print ''; + $moretagsproduct2 = (($nbproductno == $nbproducttotal) ? ' disabled' : ''); print '   '; - print ''; + print ''; print '



'; + print '
'; } @@ -297,7 +440,6 @@ print $langs->trans("ClickHereToGoTo").' : trans("ErrorRecordNotFound"); } @@ -240,7 +257,7 @@ if ($action == 'builddoc') { } } - if ($result <= 0 || $mesg) { + if ($result <= 0 || $mesg || $error) { if (empty($mesg)) { $mesg = 'Error '.$result; } @@ -258,10 +275,6 @@ if ($action == 'builddoc') { * View */ -if (empty($conf->barcode->enabled)) { - accessforbidden(); -} - $form = new Form($db); llxHeader('', $langs->trans("BarCodePrintsheet")); @@ -272,8 +285,6 @@ print '
'; print ''.$langs->trans("PageToGenerateBarCodeSheets", $langs->transnoentitiesnoconv("BuildPageToPrint")).'
'; print '
'; -dol_htmloutput_errors($mesg); - //print img_picto('','puce').' '.$langs->trans("PrintsheetForOneBarCode").'
'; //print '
'; @@ -386,7 +397,7 @@ if (!empty($user->rights->produit->lire) || !empty($user->rights->service->lire) print '
'; } -if (!empty($user->rights->societe->lire)) { +if ($user->hasRight('societe', 'lire')) { print ''; print '
'; print '
'; diff --git a/htdocs/blockedlog/admin/blockedlog.php b/htdocs/blockedlog/admin/blockedlog.php index 8880e6c1e86..0f9034e374a 100644 --- a/htdocs/blockedlog/admin/blockedlog.php +++ b/htdocs/blockedlog/admin/blockedlog.php @@ -22,22 +22,25 @@ * \brief Page setup for blockedlog module */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/lib/blockedlog.lib.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("admin", "other", "blockedlog")); +$langs->loadLangs(array('admin', 'blockedlog', 'other')); +// Access Control if (!$user->admin || empty($conf->blockedlog->enabled)) { accessforbidden(); } -$action = GETPOST('action', 'aZ09'); +// Get Parameters +$action = GETPOST('action', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); - -$withtab = GETPOST('withtab', 'int'); +$withtab = GETPOST('withtab', 'int'); /* diff --git a/htdocs/blockedlog/admin/blockedlog_list.php b/htdocs/blockedlog/admin/blockedlog_list.php index 4490b3897df..b3b2a1d36f4 100644 --- a/htdocs/blockedlog/admin/blockedlog_list.php +++ b/htdocs/blockedlog/admin/blockedlog_list.php @@ -18,11 +18,13 @@ */ /** - * \file htdocs/blockedlog/admin/blockedlog_list.php - * \ingroup blockedlog - * \brief Page setup for blockedlog module + * \file htdocs/blockedlog/admin/blockedlog_list.php + * \ingroup blockedlog + * \brief Page setup for blockedlog module */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/lib/blockedlog.lib.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; @@ -31,16 +33,18 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("admin", "other", "blockedlog", "bills")); +$langs->loadLangs(array('admin', 'bills', 'blockedlog', 'other')); +// Access Control if ((!$user->admin && empty($user->rights->blockedlog->read)) || empty($conf->blockedlog->enabled)) { accessforbidden(); } -$action = GETPOST('action', 'aZ09'); +// Get Parameters +$action = GETPOST('action', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'blockedloglist'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $search_showonlyerrors = GETPOST('search_showonlyerrors', 'int'); if ($search_showonlyerrors < 0) { @@ -95,7 +99,7 @@ $block_static->loadTrackedEvents(); $result = restrictedArea($user, 'blockedlog', 0, ''); - +// Execution Time $max_execution_time_for_importexport = (empty($conf->global->EXPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->EXPORT_MAX_EXECUTION_TIME); // 5mn if not defined $max_time = @ini_get("max_execution_time"); if ($max_time && $max_time < $max_execution_time_for_importexport) { @@ -172,9 +176,9 @@ if ($action === 'downloadblockchain') { if (!$error) { // Now restart request with all data = no limit(1) in sql request - $sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data"; + $sql = "SELECT rowid, date_creation, tms, user_fullname, action, amounts, element, fk_object, date_object, ref_object, signature, fk_user, object_data, object_version"; $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog"; - $sql .= " WHERE entity = ".$conf->entity; + $sql .= " WHERE entity = ".((int) $conf->entity); if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) { $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1); $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12); @@ -200,6 +204,7 @@ if ($action === 'downloadblockchain') { .';'.$langs->transnoentities('Fingerprint') .';'.$langs->transnoentities('Status') .';'.$langs->transnoentities('Note') + .';'.$langs->transnoentities('Version') .';'.$langs->transnoentities('FullData') ."\n"; @@ -222,6 +227,7 @@ if ($action === 'downloadblockchain') { $block_static->fk_user = $obj->fk_user; $block_static->signature = $obj->signature; $block_static->object_data = $block_static->dolDecodeBlockedData($obj->object_data); + $block_static->object_version = $obj->object_version; $checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it @@ -253,6 +259,7 @@ if ($action === 'downloadblockchain') { print ';'.$obj->signature; print ';'.$statusofrecord; print ';'.$statusofrecordnote; + print ';'.$obj->object_version; print ';"'.str_replace('"', '""', $obj->object_data).'"'; print "\n"; @@ -444,8 +451,8 @@ print ''; // Status print ''; -$array = array("1"=>$langs->trans("OnlyNonValid")); -print $form->selectarray('search_showonlyerrors', $array, $search_showonlyerrors, 1); +$array = array("1" => "OnlyNonValid"); +print $form->selectarray('search_showonlyerrors', $array, $search_showonlyerrors, 1, 0, 0, '', 1, 0, 0, 'ASC', 'search_status maxwidth200 onrightofpage', 1); print ''; // Status note @@ -523,19 +530,19 @@ if (is_array($blocks)) { print ''; // ID - print ''.$block->id.''; + print ''.dol_escape_htmltag($block->id).''; // Date - print ''.dol_print_date($block->date_creation, 'dayhour').''; + print ''.dol_print_date($block->date_creation, 'dayhour').''; // User print ''; //print $block->getUser() - print $block->user_fullname; + print dol_escape_htmltag($block->user_fullname); print ''; // Action - print ''.$langs->trans('log'.$block->action).''; + print ''.$langs->trans('log'.$block->action).''; // Ref print ''; diff --git a/htdocs/blockedlog/ajax/authority.php b/htdocs/blockedlog/ajax/authority.php index 78f944f692a..2da0544e0a7 100644 --- a/htdocs/blockedlog/ajax/authority.php +++ b/htdocs/blockedlog/ajax/authority.php @@ -44,6 +44,13 @@ require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/authority.class.php'; $user = new User($db); $user->fetch(1); //TODO conf user authority + +/* + * View + */ + +top_httphead(); + $auth = new BlockedLogAuthority($db); $signature = GETPOST('s'); diff --git a/htdocs/blockedlog/ajax/block-add.php b/htdocs/blockedlog/ajax/block-add.php index 53093f02d18..e2009a01da1 100644 --- a/htdocs/blockedlog/ajax/block-add.php +++ b/htdocs/blockedlog/ajax/block-add.php @@ -42,6 +42,13 @@ $id = GETPOST('id', 'int'); $element = GETPOST('element', 'alpha'); $action = GETPOST('action', 'aZ09'); + +/* + * View + */ + +top_httphead(); + if ($element === 'facture') { require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; diff --git a/htdocs/blockedlog/ajax/block-info.php b/htdocs/blockedlog/ajax/block-info.php index e6f9ea0de15..db0faa50cc1 100644 --- a/htdocs/blockedlog/ajax/block-info.php +++ b/htdocs/blockedlog/ajax/block-info.php @@ -37,6 +37,7 @@ if (!defined('NOREQUIREHTML')) { } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; @@ -54,7 +55,9 @@ $langs->loadLangs(array("admin")); * View */ -print '
'; +top_httphead(); + +print '
'.$langs->trans('Field').''.$langs->trans('Value').'
'; print ''; if ($block->fetch($id) > 0) { diff --git a/htdocs/blockedlog/ajax/check_signature.php b/htdocs/blockedlog/ajax/check_signature.php index 4d59b56a981..ab2f6b0427f 100644 --- a/htdocs/blockedlog/ajax/check_signature.php +++ b/htdocs/blockedlog/ajax/check_signature.php @@ -37,6 +37,7 @@ if (!defined('NOREQUIREHTML')) { } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; @@ -48,6 +49,12 @@ if (empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) { } +/* + * View + */ + +top_httphead(); + $auth = new BlockedLogAuthority($db); $auth->syncSignatureWithAuthority(); diff --git a/htdocs/blockedlog/class/authority.class.php b/htdocs/blockedlog/class/authority.class.php index 7240aaf0151..b3dd9b45f47 100644 --- a/htdocs/blockedlog/class/authority.class.php +++ b/htdocs/blockedlog/class/authority.class.php @@ -304,8 +304,8 @@ class BlockedLogAuthority $url = $conf->global->BLOCKEDLOG_AUTHORITY_URL.'/blockedlog/ajax/authority.php?s='.$signature.'&b='.$block->signature; $res = getURLContent($url); - echo $block->signature.' '.$url.' '.$res.'
'; - if ($res === 'blockalreadyadded' || $res === 'blockadded') { + echo $block->signature.' '.$url.' '.$res['content'].'
'; + if ($res['content'] === 'blockalreadyadded' || $res['content'] === 'blockadded') { $block->setCertified(); } else { $this->error = $langs->trans('ImpossibleToContactAuthority ', $url); diff --git a/htdocs/blockedlog/class/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php index ea5069cb840..3b6905fcc25 100644 --- a/htdocs/blockedlog/class/blockedlog.class.php +++ b/htdocs/blockedlog/class/blockedlog.class.php @@ -140,6 +140,7 @@ class BlockedLog $this->trackedevents = array(); + // Customer Invoice/Facture / Payment if (isModEnabled('facture')) { $this->trackedevents['BILL_VALIDATE'] = 'logBILL_VALIDATE'; $this->trackedevents['BILL_DELETE'] = 'logBILL_DELETE'; @@ -151,19 +152,20 @@ class BlockedLog } /* Supplier - if (!empty($conf->fournisseur->enabled)) { - $this->trackedevents['BILL_SUPPLIER_VALIDATE']='BlockedLogSupplierBillValidate'; + // Supplier Invoice / Payment + if (isModEnabled("fournisseur")) { + $this->trackedevents['BILL_SUPPLIER_VALIDATE']='BlockedLogSupplierBillValidate'; $this->trackedevents['BILL_SUPPLIER_DELETE']='BlockedLogSupplierBillDelete'; $this->trackedevents['BILL_SUPPLIER_SENTBYMAIL']='BlockedLogSupplierBillSentByEmail'; // Trigger key does not exists, we want just into array to list it as done - $this->trackedevents['SUPPLIER_DOC_DOWNLOAD']='BlockedLogSupplierBillDownload'; // Trigger key does not exists, we want just into array to list it as done - $this->trackedevents['SUPPLIER_DOC_PREVIEW']='BlockedLogSupplierBillPreview'; // Trigger key does not exists, we want just into array to list it as done - - $this->trackedevents['PAYMENT_SUPPLIER_CREATE']='BlockedLogSupplierBillPaymentCreate'; - $this->trackedevents['PAYMENT_SUPPLIER_DELETE']='BlockedLogsupplierBillPaymentCreate'; + $this->trackedevents['SUPPLIER_DOC_DOWNLOAD']='BlockedLogSupplierBillDownload'; // Trigger key does not exists, we want just into array to list it as done + $this->trackedevents['SUPPLIER_DOC_PREVIEW']='BlockedLogSupplierBillPreview'; // Trigger key does not exists, we want just into array to list it as done + $this->trackedevents['PAYMENT_SUPPLIER_CREATE']='BlockedLogSupplierBillPaymentCreate'; + $this->trackedevents['PAYMENT_SUPPLIER_DELETE']='BlockedLogsupplierBillPaymentCreate'; } */ - if (!empty($conf->don->enabled)) { + // Donation + if (isModEnabled('don')) { $this->trackedevents['DON_VALIDATE'] = 'logDON_VALIDATE'; $this->trackedevents['DON_DELETE'] = 'logDON_DELETE'; //$this->trackedevents['DON_SENTBYMAIL']='logDON_SENTBYMAIL'; @@ -172,23 +174,29 @@ class BlockedLog } /* + // Salary if (!empty($conf->salary->enabled)) { - $this->trackedevents['PAYMENT_SALARY_CREATE']='BlockedLogSalaryPaymentCreate'; - $this->trackedevents['PAYMENT_SALARY_MODIFY']='BlockedLogSalaryPaymentCreate'; - $this->trackedevents['PAYMENT_SALARY_DELETE']='BlockedLogSalaryPaymentCreate'; + $this->trackedevents['PAYMENT_SALARY_CREATE']='BlockedLogSalaryPaymentCreate'; + $this->trackedevents['PAYMENT_SALARY_MODIFY']='BlockedLogSalaryPaymentCreate'; + $this->trackedevents['PAYMENT_SALARY_DELETE']='BlockedLogSalaryPaymentCreate'; } */ - if (!empty($conf->adherent->enabled)) { + // Members + if (isModEnabled('adherent')) { $this->trackedevents['MEMBER_SUBSCRIPTION_CREATE'] = 'logMEMBER_SUBSCRIPTION_CREATE'; $this->trackedevents['MEMBER_SUBSCRIPTION_MODIFY'] = 'logMEMBER_SUBSCRIPTION_MODIFY'; $this->trackedevents['MEMBER_SUBSCRIPTION_DELETE'] = 'logMEMBER_SUBSCRIPTION_DELETE'; } - if (!empty($conf->banque->enabled)) { + + // Bank + if (isModEnabled("banque")) { $this->trackedevents['PAYMENT_VARIOUS_CREATE'] = 'logPAYMENT_VARIOUS_CREATE'; $this->trackedevents['PAYMENT_VARIOUS_MODIFY'] = 'logPAYMENT_VARIOUS_MODIFY'; $this->trackedevents['PAYMENT_VARIOUS_DELETE'] = 'logPAYMENT_VARIOUS_DELETE'; } + + // Cashdesk // $conf->global->BANK_ENABLE_POS_CASHCONTROL must be set to 1 by all external POS modules $moduleposenabled = (!empty($conf->cashdesk->enabled) || !empty($conf->takepos->enabled) || !empty($conf->global->BANK_ENABLE_POS_CASHCONTROL)); if ($moduleposenabled) { @@ -196,6 +204,7 @@ class BlockedLog } // Add more action to track from a conf variable + // For example: STOCK_MOVEMENT,... if (!empty($conf->global->BLOCKEDLOG_ADD_ACTIONS_SUPPORTED)) { $tmparrayofmoresupportedevents = explode(',', $conf->global->BLOCKEDLOG_ADD_ACTIONS_SUPPORTED); foreach ($tmparrayofmoresupportedevents as $val) { @@ -297,6 +306,15 @@ class BlockedLog } else { $this->error++; } + } elseif ($this->element === 'stockmouvement') { + require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; + + $object = new MouvementStock($this->db); + if ($object->fetch($this->fk_object) > 0) { + return $object->getNomUrl(1); + } else { + $this->error++; + } } elseif ($this->action == 'MODULE_SET') { return ''.$langs->trans("BlockedLogEnabled").''; } elseif ($this->action == 'MODULE_RESET') { @@ -361,18 +379,23 @@ class BlockedLog $this->amounts = $amounts; // date if ($object->element == 'payment' || $object->element == 'payment_supplier') { - $this->date_object = $object->datepaye; + $this->date_object = empty($object->datepaye) ? $object->date : $object->datepaye; } elseif ($object->element == 'payment_salary') { $this->date_object = $object->datev; } elseif ($object->element == 'payment_donation' || $object->element == 'payment_various') { - $this->date_object = $object->datepaid ? $object->datepaid : $object->datep; + $this->date_object = empty($object->datepaid) ? $object->datep : $object->datepaid; } elseif ($object->element == 'subscription') { $this->date_object = $object->dateh; } elseif ($object->element == 'cashcontrol') { $this->date_object = $object->date_creation; - } else { + } elseif (property_exists($object, 'date')) { + // Generic case $this->date_object = $object->date; + } elseif (property_exists($object, 'datem')) { + // Generic case (second chance, for example for stock movement) + $this->date_object = $object->datem; } + // ref $this->ref_object = ((!empty($object->newref)) ? $object->newref : $object->ref); // newref is set when validating a draft, ref is set in other cases // type of object @@ -387,11 +410,18 @@ class BlockedLog $arrayoffieldstoexclude = array( 'table_element', 'fields', 'ref_previous', 'ref_next', 'origin', 'origin_id', 'oldcopy', 'picto', 'error', 'errors', 'model_pdf', 'modelpdf', 'last_main_doc', 'civility_id', 'contact', 'contact_id', 'table_element_line', 'ismultientitymanaged', 'isextrafieldmanaged', + 'array_languages', + 'childtables', + 'contact_ids', + 'context', + 'labelStatus', + 'labelStatusShort', 'linkedObjectsIds', 'linkedObjects', 'fk_delivery_address', - 'context', - 'projet' // There is already ->fk_project + 'projet', // There is already ->fk_project + 'restrictiononfksoc', + 'specimen', ); // Add more fields to exclude depending on object type if ($this->element == 'cashcontrol') { @@ -420,7 +450,7 @@ class BlockedLog continue; // Discard if not into a dedicated list } if (!is_object($value) && !is_null($value) && $value !== '') { - $this->object_data->thirdparty->{$key} = $value; + $this->object_data->thirdparty->$key = $value; } } } @@ -440,7 +470,7 @@ class BlockedLog continue; // Discard if not into a dedicated list } if (!is_object($value) && !is_null($value) && $value !== '') { - $this->object_data->mycompany->{$key} = $value; + $this->object_data->mycompany->$key = $value; } } } @@ -478,12 +508,12 @@ class BlockedLog } if (!is_object($valueline) && !is_null($valueline) && $valueline !== '') { - $this->object_data->invoiceline[$lineid]->{$keyline} = $valueline; + $this->object_data->invoiceline[$lineid]->$keyline = $valueline; } } } } elseif (!is_object($value) && !is_null($value) && $value !== '') { - $this->object_data->{$key} = $value; + $this->object_data->$key = $value; } } @@ -501,7 +531,7 @@ class BlockedLog continue; // Discard if not into a dedicated list } if (!is_object($value) && !is_null($value) && $value !== '') { - $this->object_data->{$key} = $value; + $this->object_data->$key = $value; } } @@ -527,7 +557,7 @@ class BlockedLog $totalamount = 0; - // Loop on each invoice payment amount + // Loop on each invoice payment amount (payment_part) if (is_array($object->amounts) && !empty($object->amounts)) { $paymentpartnumber = 0; foreach ($object->amounts as $objid => $amount) { @@ -593,7 +623,7 @@ class BlockedLog continue; // Discard if not into a dedicated list } if (!is_object($value) && !is_null($value) && $value !== '') { - $paymentpart->thirdparty->{$key} = $value; + $paymentpart->thirdparty->$key = $value; } } } @@ -617,11 +647,11 @@ class BlockedLog } if (!is_object($value) && !is_null($value) && $value !== '') { if ($this->element == 'payment_donation') { - $paymentpart->donation->{$key} = $value; + $paymentpart->donation->$key = $value; } elseif ($this->element == 'payment_various') { - $paymentpart->various->{$key} = $value; + $paymentpart->various->$key = $value; } else { - $paymentpart->invoice->{$key} = $value; + $paymentpart->invoice->$key = $value; } } } @@ -656,21 +686,30 @@ class BlockedLog continue; // Discard if not into a dedicated list } if (!is_object($value) && !is_null($value) && $value !== '') { - $this->object_data->{$key} = $value; + $this->object_data->$key = $value; } } if (!empty($object->newref)) { $this->object_data->ref = $object->newref; } - } else // Generic case - { + } elseif ($this->element == 'stockmouvement') { foreach ($object as $key => $value) { if (in_array($key, $arrayoffieldstoexclude)) { continue; // Discard some properties } if (!is_object($value) && !is_null($value) && $value !== '') { - $this->object_data->{$key} = $value; + $this->object_data->$key = $value; + } + } + } else { + // Generic case + foreach ($object as $key => $value) { + if (in_array($key, $arrayoffieldstoexclude)) { + continue; // Discard some properties + } + if (!is_object($value) && !is_null($value) && $value !== '') { + $this->object_data->$key = $value; } } @@ -679,6 +718,10 @@ class BlockedLog } } + // A trick to be sure all the object_data is an associative array + // json_encode and json_decode are not able to manage mixed object (with array/object, only full arrays or full objects) + $this->object_data = json_decode(json_encode($this->object_data, JSON_FORCE_OBJECT), false); + return 1; } @@ -746,21 +789,42 @@ class BlockedLog } + /** + * Encode data + * + * @param string $data Data to serialize + * @param string $mode 0=serialize, 1=json_encode + * @return string Value serialized, an object (stdClass) + */ + public function dolEncodeBlockedData($data, $mode = 0) + { + try { + $aaa = json_encode($data); + } catch (Exception $e) { + //print $e->getErrs); + } + //var_dump($aaa); + + return $aaa; + } + + /** * Decode data * * @param string $data Data to unserialize * @param string $mode 0=unserialize, 1=json_decode - * @return string Value unserialized + * @return object Value unserialized, an object (stdClass) */ public function dolDecodeBlockedData($data, $mode = 0) { try { - //include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $aaa = unserialize($data); + $aaa = (object) jsonOrUnserialize($data); } catch (Exception $e) { //print $e->getErrs); } + //var_dump($aaa); + return $aaa; } @@ -825,6 +889,9 @@ class BlockedLog $this->date_creation = dol_now(); + $this->object_version = ((float) DOL_VERSION); + + $this->db->begin(); $previoushash = $this->getPreviousHash(1, 0); // This get last record and lock database until insert is done @@ -866,7 +933,7 @@ class BlockedLog $sql .= $this->fk_object.","; $sql .= "'".$this->db->idate($this->date_object)."',"; $sql .= "'".$this->db->escape($this->ref_object)."',"; - $sql .= "'".$this->db->escape(serialize($this->object_data))."',"; + $sql .= "'".$this->db->escape($this->dolEncodeBlockedData($this->object_data))."',"; $sql .= "'".$this->db->escape($this->object_version)."',"; $sql .= "0,"; $sql .= $this->fk_user.","; @@ -874,6 +941,14 @@ class BlockedLog $sql .= ($this->entity ? $this->entity : $conf->entity); $sql .= ")"; + /* + $a = serialize($this->object_data); $a2 = unserialize($a); $a4 = print_r($a2, true); + $b = json_encode($this->object_data); $b2 = json_decode($b); $b4 = print_r($b2, true); + var_dump($a4 == print_r($this->object_data, true) ? 'a=a' : 'a not = a'); + var_dump($b4 == print_r($this->object_data, true) ? 'b=b' : 'b not = b'); + exit; + */ + $res = $this->db->query($sql); if ($res) { $id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog"); @@ -913,7 +988,7 @@ class BlockedLog $keyforsignature = $this->buildKeyForSignature(); //$signature_line = dol_hash($keyforsignature, '5'); // Not really usefull - $signature = dol_hash($previoushash.$keyforsignature, '5'); + $signature = dol_hash($previoushash.$keyforsignature, 'sha256'); //var_dump($previoushash); var_dump($keyforsignature); var_dump($signature_line); var_dump($signature); $res = ($signature === $this->signature); @@ -945,8 +1020,8 @@ class BlockedLog private function buildKeyForSignature() { //print_r($this->object_data); - if (((int) $this->object_version) > 12) { - return $this->date_creation.'|'.$this->action.'|'.$this->amounts.'|'.$this->ref_object.'|'.$this->date_object.'|'.$this->user_fullname.'|'.print_r($this->object_data, true); + if (((int) $this->object_version) >= 18) { + return $this->date_creation.'|'.$this->action.'|'.$this->amounts.'|'.$this->ref_object.'|'.$this->date_object.'|'.$this->user_fullname.'|'.json_encode($this->object_data, JSON_FORCE_OBJECT); } else { return $this->date_creation.'|'.$this->action.'|'.$this->amounts.'|'.$this->ref_object.'|'.$this->date_object.'|'.$this->user_fullname.'|'.print_r($this->object_data, true); } @@ -967,7 +1042,7 @@ class BlockedLog $previoussignature = ''; $sql = "SELECT rowid, signature FROM ".MAIN_DB_PREFIX."blockedlog"; - $sql .= " WHERE entity=".$conf->entity; + $sql .= " WHERE entity = ".((int) $conf->entity); if ($beforeid) { $sql .= " AND rowid < ".(int) $beforeid; } @@ -1028,7 +1103,7 @@ class BlockedLog WHERE entity=".$conf->entity." AND certified = 1"; } else { $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog - WHERE entity=".$conf->entity." AND element='".$this->db->escape($element)."'"; + WHERE entity=".$conf->entity." AND element = '".$this->db->escape($element)."'"; } if ($fk_object) { diff --git a/htdocs/blockedlog/lib/blockedlog.lib.php b/htdocs/blockedlog/lib/blockedlog.lib.php index 44f7074d582..23a7ec1f62d 100644 --- a/htdocs/blockedlog/lib/blockedlog.lib.php +++ b/htdocs/blockedlog/lib/blockedlog.lib.php @@ -16,9 +16,9 @@ */ /** - * \file htdocs/blockedlog/lib/blockedlog.lib.php - * \ingroup system - * \brief Library for common blockedlog functions + * \file htdocs/blockedlog/lib/blockedlog.lib.php + * \ingroup system + * \brief Library for common blockedlog functions */ /** diff --git a/htdocs/bom/ajax/ajax.php b/htdocs/bom/ajax/ajax.php new file mode 100644 index 00000000000..9a55c609252 --- /dev/null +++ b/htdocs/bom/ajax/ajax.php @@ -0,0 +1,67 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/bom/ajax/ajax.php + * \brief Ajax component for BOM. + */ + +if (!defined('NOTOKENRENEWAL')) { + define('NOTOKENRENEWAL', '1'); // Disables token renewal +} +if (!defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); +} +if (!defined('NOREQUIREAJAX')) { + define('NOREQUIREAJAX', '1'); +} +if (!defined('NOREQUIRESOC')) { + define('NOREQUIRESOC', '1'); +} +if (!defined('NOREQUIREMENU')) { + define('NOREQUIREMENU', '1'); +} +if (!defined('NOBROWSERNOTIF')) { + define('NOBROWSERNOTIF', '1'); +} + +include_once '../../main.inc.php'; // Load $user and permissions +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; + + +$action = GETPOST('action', 'aZ09'); +$idproduct = GETPOST('idproduct', 'int'); + + +/* + * View + */ + +top_httphead(); + +if ($action == 'getDurationUnitByProduct' && $user->hasRight('product', 'lire')) { + $product = new Product($db); + $res = $product->fetch($idproduct); + + $cUnit = new CUnits($db); + $fk_unit = $cUnit->getUnitFromCode($product->duration_unit, 'short_label', 'time'); + + echo json_encode($fk_unit); + exit(); +} diff --git a/htdocs/bom/bom_agenda.php b/htdocs/bom/bom_agenda.php index bce63ed0625..c7fcf64fb47 100644 --- a/htdocs/bom/bom_agenda.php +++ b/htdocs/bom/bom_agenda.php @@ -17,9 +17,9 @@ */ /** - * \file htdocs/modulebuilder/template/myobject_agenda.php - * \ingroup bom - * \brief Page of MyObject events + * \file htdocs/bom/bom_agenda.php + * \ingroup bom + * \brief Page of BOM events */ // Load Dolibarr environment @@ -32,15 +32,16 @@ require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("mrp", "other")); +$langs->loadLangs(array('mrp', 'other')); // Get parameters -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$id = GETPOST('id', 'int'); +$socid = GETPOST('socid', 'int'); +$ref = GETPOST('ref', 'alpha'); + +$action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); -$socid = GETPOST('socid', 'int'); if (GETPOST('actioncode', 'array')) { $actioncode = GETPOST('actioncode', 'array', 3); @@ -48,10 +49,12 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } + $search_agenda_label = GETPOST('search_agenda_label'); +// Load variables for pagination $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -74,6 +77,7 @@ $object = new BOM($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->bom->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('bomagenda', 'globalcard')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -126,11 +130,11 @@ $form = new Form($db); if ($object->id > 0) { $title = $langs->trans("Agenda"); - //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + //if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; $help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda|DE:Modul_Agenda'; llxHeader('', $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = bomPrepareHead($object); @@ -150,7 +154,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
'.$langs->trans('Project') . ' '; @@ -171,7 +175,7 @@ if ($object->id > 0) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref.=''; @@ -211,7 +215,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.$objthirdparty->id; } - $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&backtopage=1&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&backtopage=1'; //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -221,7 +225,7 @@ if ($object->id > 0) { print '
'; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index a5c9dd5cf68..333b6232f9f 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -17,9 +17,9 @@ */ /** - * \file htdocs/bom/bom_card.php - * \ingroup bom - * \brief Page to create/edit/view bom + * \file htdocs/bom/bom_card.php + * \ingroup bom + * \brief Page to create/edit/view Bill Of Material */ // Load Dolibarr environment @@ -32,17 +32,18 @@ require_once DOL_DOCUMENT_ROOT.'/mrp/lib/mrp.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("mrp", "other")); +$langs->loadLangs(array('mrp', 'other')); // Get parameters -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); +$id = GETPOST('id', 'int'); +$lineid = GETPOST('lineid', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'bomcard'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); -$lineid = GETPOST('lineid', 'int'); +$backtopage = GETPOST('backtopage', 'alpha'); + // PDF $hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); @@ -54,6 +55,7 @@ $object = new BOM($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->bom->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('bomcard', 'globalcard')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); @@ -84,6 +86,7 @@ if ($object->id > 0) { $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); $result = restrictedArea($user, 'bom', $object->id, 'bom_bom', '', '', 'rowid', $isdraft); +// Permissions $permissionnote = $user->rights->bom->write; // Used by the include of actions_setnotes.inc.php $permissiondellink = $user->rights->bom->write; // Used by the include of actions_dellink.inc.php $permissiontoadd = $user->rights->bom->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php @@ -148,6 +151,7 @@ if (empty($reshook)) { if ($action == 'addline' && $user->rights->bom->write) { $langs->load('errors'); $error = 0; + $predef = ''; // Set if we used free entry or predefined product $bom_child_id = (int) GETPOST('bom_id', 'int'); @@ -158,14 +162,14 @@ if (empty($reshook)) { $idprod = $bom_child->fk_product; } } else { - $idprod = (int) GETPOST('idprod', 'int'); + $idprod = (!empty(GETPOST('idprodservice', 'int')) ? GETPOST('idprodservice', 'int') : (int) GETPOST('idprod', 'int')); } $qty = price2num(GETPOST('qty', 'alpha'), 'MS'); $qty_frozen = price2num(GETPOST('qty_frozen', 'alpha'), 'MS'); $disable_stock_change = GETPOST('disable_stock_change', 'int'); $efficiency = price2num(GETPOST('efficiency', 'alpha')); - + $fk_unit = GETPOST('fk_unit', 'alphanohtml'); if ($qty == '') { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors'); $error++; @@ -180,40 +184,48 @@ if (empty($reshook)) { $error++; } + // We check if we're allowed to add this bom + $TParentBom=array(); + $object->getParentBomTreeRecursive($TParentBom); + if ($bom_child_id > 0 && !empty($TParentBom) && in_array($bom_child_id, $TParentBom)) { + $n_child = new BOM($db); + $n_child->fetch($bom_child_id); + setEventMessages($langs->transnoentities('BomCantAddChildBom', $n_child->getNomUrl(1), $object->getNomUrl(1)), null, 'errors'); + $error++; + } + if (!$error) { - $bomline = new BOMLine($db); - $bomline->fk_bom = $id; - $bomline->fk_product = $idprod; - $bomline->fk_bom_child = $bom_child_id; - $bomline->qty = $qty; - $bomline->qty_frozen = (int) $qty_frozen; - $bomline->disable_stock_change = (int) $disable_stock_change; - $bomline->efficiency = $efficiency; + // Extrafields + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); + // Unset extrafield + if (is_array($extralabelsline)) { + // Get extra fields + foreach ($extralabelsline as $key => $value) { + unset($_POST["options_".$key]); + } + } - // Rang to use - $rangmax = $object->line_max(0); - $ranktouse = $rangmax + 1; + $result = $object->addLine($idprod, $qty, $qty_frozen, $disable_stock_change, $efficiency, -1, $bom_child_id, null, $fk_unit, $array_options); - $bomline->position = ($ranktouse + 1); - - $result = $bomline->create($user); if ($result <= 0) { - setEventMessages($bomline->error, $bomline->errors, 'errors'); + setEventMessages($object->error, $object->errors, 'errors'); $action = ''; } else { unset($_POST['idprod']); + unset($_POST['idprodservice']); unset($_POST['qty']); unset($_POST['qty_frozen']); unset($_POST['disable_stock_change']); - - $object->fetchLines(); - - $object->calculateCosts(); } + + $object->fetchLines(); + + $object->calculateCosts(); } } - // Add line + // Update line if ($action == 'updateline' && $user->rights->bom->write) { $langs->load('errors'); $error = 0; @@ -223,261 +235,272 @@ if (empty($reshook)) { $qty_frozen = price2num(GETPOST('qty_frozen', 'alpha'), 'MS'); $disable_stock_change = GETPOST('disable_stock_change', 'int'); $efficiency = price2num(GETPOST('efficiency', 'alpha')); + $fk_unit = GETPOST('fk_unit', 'alphanohtml'); if ($qty == '') { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors'); $error++; } - $bomline = new BOMLine($db); - $bomline->fetch($lineid); - $bomline->qty = $qty; - $bomline->qty_frozen = (int) $qty_frozen; - $bomline->disable_stock_change = (int) $disable_stock_change; - $bomline->efficiency = $efficiency; + if (!$error) { + // Extrafields + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); + // Unset extrafield + if (is_array($extralabelsline)) { + // Get extra fields + foreach ($extralabelsline as $key => $value) { + unset($_POST["options_".$key]); + } + } - $result = $bomline->update($user); - if ($result <= 0) { - setEventMessages($bomline->error, $bomline->errors, 'errors'); - $action = ''; - } else { - unset($_POST['idprod']); - unset($_POST['qty']); - unset($_POST['qty_frozen']); - unset($_POST['disable_stock_change']); + $bomline = new BOMLine($db); + $bomline->fetch($lineid); + + $result = $object->updateLine($lineid, $qty, (int) $qty_frozen, (int) $disable_stock_change, $efficiency, $bomline->position, $bomline->import_key, $fk_unit, $array_options); + + if ($result <= 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $action = ''; + } else { + unset($_POST['idprod']); + unset($_POST['idprodservice']); + unset($_POST['qty']); + unset($_POST['qty_frozen']); + unset($_POST['disable_stock_change']); + } $object->fetchLines(); $object->calculateCosts(); } } -} -/* - * View - */ + /* + * View + */ -$form = new Form($db); -$formfile = new FormFile($db); + $form = new Form($db); + $formfile = new FormFile($db); -$title = $langs->trans('BOM'); -$help_url ='EN:Module_BOM'; -llxHeader('', $title, $help_url); + $title = $langs->trans('BOM'); + $help_url ='EN:Module_BOM'; + llxHeader('', $title, $help_url); -// Part to create -if ($action == 'create') { - print load_fiche_titre($langs->trans("NewBOM"), '', 'bom'); + // Part to create + if ($action == 'create') { + print load_fiche_titre($langs->trans("NewBOM"), '', 'bom'); - print '
'; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; - print dol_get_fiche_head(array(), ''); + print dol_get_fiche_head(array(), ''); - print '
'.$langs->trans('Field').''.$langs->trans('Value').'
'."\n"; + print '
'."\n"; - // Common attributes - include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; + // Common attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; - // Other attributes - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; - print '
'."\n"; + print ''."\n"; - print dol_get_fiche_end(); + print dol_get_fiche_end(); - print $form->buttonsSaveCancel("Create"); + print $form->buttonsSaveCancel("Create"); - print ''; -} - -// Part to edit record -if (($id || $ref) && $action == 'edit') { - print load_fiche_titre($langs->trans("BillOfMaterials"), '', 'cubes'); - - print '
'; - print ''; - print ''; - print ''; - print ''; - - print dol_get_fiche_head(); - - //$object->fields['keyfield']['disabled'] = 1; - - print ''."\n"; - - // Common attributes - include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php'; - - // Other attributes - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php'; - - print '
'; - - print dol_get_fiche_end(); - - print $form->buttonsSaveCancel("Create"); - - print '
'; -} - -// Part to show record -if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { - $head = bomPrepareHead($object); - print dol_get_fiche_head($head, 'card', $langs->trans("BillOfMaterials"), -1, 'bom'); - - $formconfirm = ''; - - // Confirmation to delete - if ($action == 'delete') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBillOfMaterials'), $langs->trans('ConfirmDeleteBillOfMaterials'), 'confirm_delete', '', 0, 1); - } - // Confirmation to delete line - if ($action == 'deleteline') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); + print ''; } - // Confirmation of validation - if ($action == 'validate') { - // We check that object has a temporary ref - $ref = substr($object->ref, 1, 4); - if ($ref == 'PROV') { - $object->fetch_product(); - $numref = $object->getNextNumRef($object->product); - } else { - $numref = $object->ref; + // Part to edit record + if (($id || $ref) && $action == 'edit') { + print load_fiche_titre($langs->trans("BillOfMaterials"), '', 'cubes'); + + print '
'; + print ''; + print ''; + print ''; + print ''; + + print dol_get_fiche_head(); + + //$object->fields['keyfield']['disabled'] = 1; + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php'; + + print '
'; + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel("Create"); + + print '
'; + } + + // Part to show record + if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { + $head = bomPrepareHead($object); + print dol_get_fiche_head($head, 'card', $langs->trans("BillOfMaterials"), -1, 'bom'); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBillOfMaterials'), $langs->trans('ConfirmDeleteBillOfMaterials'), 'confirm_delete', '', 0, 1); + } + // Confirmation to delete line + if ($action == 'deleteline') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); } - $text = $langs->trans('ConfirmValidateBom', $numref); - /*if (! empty($conf->notification->enabled)) - { + // Confirmation of validation + if ($action == 'validate') { + // We check that object has a temporary ref + $ref = substr($object->ref, 1, 4); + if ($ref == 'PROV') { + $object->fetch_product(); + $numref = $object->getNextNumRef($object->product); + } else { + $numref = $object->ref; + } + + $text = $langs->trans('ConfirmValidateBom', $numref); + /*if (isModEnabled('notification')) + { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
'; $text .= $notify->confirmMessage('BOM_VALIDATE', $object->socid, $object); - }*/ + }*/ - $formquestion = array(); - if (!empty($conf->bom->enabled)) { - $langs->load("mrp"); - $forcecombo = 0; - if ($conf->browser->name == 'ie') { - $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy - } - $formquestion = array( + $formquestion = array(); + if (isModEnabled('bom')) { + $langs->load("mrp"); + $forcecombo = 0; + if ($conf->browser->name == 'ie') { + $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + } + $formquestion = array( // 'text' => $langs->trans("ConfirmClone"), // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), - ); + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Validate'), $text, 'confirm_validate', $formquestion, 0, 1, 220); } - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Validate'), $text, 'confirm_validate', $formquestion, 0, 1, 220); - } - - // Confirmation of closing - if ($action == 'close') { - $text = $langs->trans('ConfirmCloseBom', $object->ref); - /*if (! empty($conf->notification->enabled)) - { + // Confirmation of closing + if ($action == 'close') { + $text = $langs->trans('ConfirmCloseBom', $object->ref); + /*if (isModEnabled('notification')) + { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
'; $text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object); - }*/ + }*/ - $formquestion = array(); - if (!empty($conf->bom->enabled)) { - $langs->load("mrp"); - $forcecombo = 0; - if ($conf->browser->name == 'ie') { - $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy - } - $formquestion = array( + $formquestion = array(); + if (isModEnabled('bom')) { + $langs->load("mrp"); + $forcecombo = 0; + if ($conf->browser->name == 'ie') { + $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + } + $formquestion = array( // 'text' => $langs->trans("ConfirmClone"), // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), - ); + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Close'), $text, 'confirm_close', $formquestion, 0, 1, 220); } - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Close'), $text, 'confirm_close', $formquestion, 0, 1, 220); - } + // Confirmation of reopen + if ($action == 'reopen') { + $text = $langs->trans('ConfirmReopenBom', $object->ref); + /*if (isModEnabled('notification')) + { + require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
'; + $text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object); + }*/ - // Confirmation of reopen - if ($action == 'reopen') { - $text = $langs->trans('ConfirmReopenBom', $object->ref); - /*if (! empty($conf->notification->enabled)) - { - require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; - $notify = new Notify($db); - $text .= '
'; - $text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object); - }*/ - - $formquestion = array(); - if (!empty($conf->bom->enabled)) { - $langs->load("mrp"); - require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; - $forcecombo = 0; - if ($conf->browser->name == 'ie') { - $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy - } - $formquestion = array( + $formquestion = array(); + if (isModEnabled('bom')) { + $langs->load("mrp"); + require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; + $forcecombo = 0; + if ($conf->browser->name == 'ie') { + $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + } + $formquestion = array( // 'text' => $langs->trans("ConfirmClone"), // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), - ); + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $text, 'confirm_reopen', $formquestion, 0, 1, 220); } - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $text, 'confirm_reopen', $formquestion, 0, 1, 220); - } + // Clone confirmation + if ($action == 'clone') { + // Create an array for form + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneBillOfMaterials', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); + } - // Clone confirmation - if ($action == 'clone') { - // Create an array for form - $formquestion = array(); - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneBillOfMaterials', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); - } + // Confirmation of action xxxx + if ($action == 'setdraft') { + $text = $langs->trans('ConfirmSetToDraft', $object->ref); - // Confirmation of action xxxx - if ($action == 'setdraft') { - $text = $langs->trans('ConfirmSetToDraft', $object->ref); + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetToDraft'), $text, 'confirm_setdraft', $formquestion, 0, 1, 220); + } - $formquestion = array(); - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetToDraft'), $text, 'confirm_setdraft', $formquestion, 0, 1, 220); - } + // Call Hook formConfirm + $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $formconfirm .= $hookmanager->resPrint; + } elseif ($reshook > 0) { + $formconfirm = $hookmanager->resPrint; + } - // Call Hook formConfirm - $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid); - $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - if (empty($reshook)) { - $formconfirm .= $hookmanager->resPrint; - } elseif ($reshook > 0) { - $formconfirm = $hookmanager->resPrint; - } - - // Print form confirm - print $formconfirm; + // Print form confirm + print $formconfirm; - // Object card - // ------------------------------------------------------------ - $linkback = ''.$langs->trans("BackToList").''; + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref = '
'; - /* - // Ref bis - $morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', null, null, '', 1); - // Thirdparty - $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); - // Project - if (! empty($conf->projet->enabled)) - { + $morehtmlref = '
'; + /* + // Ref bis + $morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); + // Project + if (isModEnabled('project')) + { $langs->load("projects"); $morehtmlref.='
'.$langs->trans('Project') . ' '; if ($permissiontoadd) @@ -504,76 +527,133 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref.=''; } } - } - */ - $morehtmlref .= '
'; + } + */ + $morehtmlref .= '
'; - dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - print '
'; - print '
'; - print '
'; - print ''."\n"; + print '
'; + print '
'; + print '
'; + print '
'."\n"; - // Common attributes - $keyforbreak = 'duration'; - include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; - $object->calculateCosts(); - print ''; - print ''; + // Common attributes + $keyforbreak = 'duration'; + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; + $object->calculateCosts(); + print ''; + print ''; - // Other attributes - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; - print '
'.$form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCost")).''.price($object->total_cost).'
'.$langs->trans("UnitCost").''.price($object->unit_cost).'
'.$form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCost")).''.price($object->total_cost).'
'.$langs->trans("UnitCost").''.price($object->unit_cost).'
'; - print '
'; - print '
'; + print ''; + print '
'; + print '
'; - print '
'; + print '
'; - print dol_get_fiche_end(); + print dol_get_fiche_end(); - /* - * Lines - */ + /* + * Lines + */ - if (!empty($object->table_element_line)) { - print '
- - + if (!empty($object->table_element_line)) { + //Products + $res = $object->fetchLinesbytypeproduct(0); + $object->calculateCosts(); + + print ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMProductsList'), '', 'product'); + + print ' + + - + '; - if (!empty($conf->use_javascript_ajax) && $object->status == 0) { - include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; - } + if (!empty($conf->use_javascript_ajax) && $object->status == 0) { + include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; + } - print '
'; - if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { - print ''; - } + print '
'; + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print '
'; + } - if (!empty($object->lines)) { - $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl'); - } + if (!empty($object->lines)) { + $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl'); + } - // Form to add new line - if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') { - if ($action != 'editline') { - // Add products/services form + // Form to add new line + if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') { + if ($action != 'editline') { + // Add products/services form - $parameters = array(); - $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - if (empty($reshook)) + $parameters = array(); + $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + if (empty($reshook)) $object->formAddObjectLine(1, $mysoc, null, '/bom/tpl'); + } + } + + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print '
'; + } + print '
'; + + print "
\n"; + + mrpCollapseBomManagement(); + + + //Services + $filtertype = 1; + $res = $object->fetchLinesbytypeproduct(1); + $object->calculateCosts(); + + print ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMServicesList'), '', 'service'); + + print '
+ + + + + '; + + if (!empty($conf->use_javascript_ajax) && $object->status == 0) { + $tagidfortablednd = 'tablelinesservice'; + include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php'; + } + + print '
'; + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print ''; + } + + if (!empty($object->lines)) { + $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl'); + } + + // Form to add new line + if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') { + if ($action != 'editline') { + // Add services form + $parameters = array(); + $reshook = $hookmanager->executeHooks('formAddObjectServiceLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + if (empty($reshook)) + $object->formAddObjectLine(1, $mysoc, null, '/bom/tpl'); + } } } @@ -587,6 +667,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea mrpCollapseBomManagement(); } + $res = $object->fetchLines(); // Buttons for actions @@ -646,7 +727,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Clone if ($permissiontoadd) { - print ''.$langs->trans("ToClone").''."\n"; + print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid) ? '&socid='.$object->socid : "").'&action=clone&object=bom', 'clone', $permissiontoadd); } // Close / Cancel @@ -668,11 +749,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } */ - if ($permissiontodelete) { - print ''.$langs->trans('Delete').''."\n"; - } else { - print ''.$langs->trans('Delete').''."\n"; - } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } print ''."\n"; } diff --git a/htdocs/bom/bom_document.php b/htdocs/bom/bom_document.php index a0390ef5105..29aca029d36 100644 --- a/htdocs/bom/bom_document.php +++ b/htdocs/bom/bom_document.php @@ -17,35 +17,35 @@ */ /** - * \file bom_document.php - * \ingroup bom - * \brief Tab for documents linked to BillOfMaterials + * \file htdocs/bom/bom_document.php + * \ingroup bom + * \brief Tab for documents linked to BillOfMaterials */ // Load Dolibarr environment require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php'; require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php'; // Load translation files required by the page $langs->loadLangs(array("mrp", "companies", "other", "mails")); - +// Get parameters $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $id = (GETPOST('socid', 'int') ? GETPOST('socid', 'int') : GETPOST('id', 'int')); $ref = GETPOST('ref', 'alpha'); // Security check - Protection if external user -//if ($user->socid > 0) accessforbidden(); -//if ($user->socid > 0) $socid = $user->socid; -//$result = restrictedArea($user, 'bom', $id); +// if ($user->socid > 0) accessforbidden(); +// if ($user->socid > 0) $socid = $user->socid; +// $result = restrictedArea($user, 'bom', $id); -// Get parameters +// Load variables for pagination $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); diff --git a/htdocs/bom/bom_list.php b/htdocs/bom/bom_list.php index 48798db9b8f..1cb4946715a 100644 --- a/htdocs/bom/bom_list.php +++ b/htdocs/bom/bom_list.php @@ -16,9 +16,9 @@ */ /** - * \file htdocs/bom/bom_list.php - * \ingroup bom - * \brief List page for bom + * \file htdocs/bom/bom_list.php + * \ingroup bom + * \brief List page for BillOfMaterials */ // Load Dolibarr environment @@ -29,8 +29,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php'; // Load translation files required by the page -$langs->loadLangs(array("mrp", "other")); +$langs->loadLangs(array('mrp', 'other')); +// Get Parameters +$id = GETPOST('id', 'int'); $action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? @@ -38,16 +40,16 @@ $confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation $cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'bomlist'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$mode = GETPOST('mode', 'alpha'); // mode view (kanban or common) -$id = GETPOST('id', 'int'); // Load variable for pagination $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); -$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST('page', 'int'); if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action @@ -305,6 +307,9 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; @@ -366,7 +371,7 @@ foreach($object->fields as $key => $val) $sql .= "t.".$key.", "; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); } @@ -378,35 +383,41 @@ $sql.=$hookmanager->resPrint; $sql=preg_replace('/,\s*$/','', $sql); */ -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) { - $num = $nbtotalofrecords; -} else { - if ($limit) { - $sql .= $db->plimit($limit + 1, $offset); - } - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - exit; - } - - $num = $db->num_rows($resql); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); } +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + // Direct jump if only one record found if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) { $obj = $db->fetch_object($resql); @@ -424,6 +435,9 @@ llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', ''); $arrayofselected = is_array($toselect) ? $toselect : array(); $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -474,8 +488,12 @@ print ''; print ''; print ''; print ''; +print ''; -$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/bom/bom_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->bom->write); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/bom/bom_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->bom->write); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -513,7 +531,7 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
'; @@ -523,6 +541,15 @@ print '
'; + +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} + foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { @@ -535,9 +562,9 @@ foreach ($object->fields as $key => $val) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { - print ''; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} print ''."\n"; // Fields title label // -------------------------------------------------------------------- print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { @@ -593,7 +626,9 @@ $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$ $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Action column -print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} print ''."\n"; @@ -622,76 +657,106 @@ while ($i < ($limit ? min($num, $limit) : $num)) { // Store properties in $object $object->setVarsFromFetchObj($obj); - // Show here line of result - print ''; - foreach ($object->fields as $key => $val) { - $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); - if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'center'; - } elseif ($key == 'status') { - $cssforfield .= ($cssforfield ? ' ' : '').'center'; + // mode view kanban + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + // Show here line of result + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; - if (!$i) { - $totalarray['nbfield']++; + } + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; } - if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + + if (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif ($key == 'ref') { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status')) && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + + if (!empty($arrayfields['t.'.$key]['checked'])) { + print ''; + if ($key == 'status') { + print $object->getLibStatut(5); + } elseif ($key == 'rowid') { + print $object->showOutputField($val, $key, $object->id, ''); + } else { + print $object->showOutputField($val, $key, $object->$key, ''); + } + print ''; if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + $totalarray['nbfield']++; } - if (!isset($totalarray['val'])) { - $totalarray['val'] = array(); + if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + } + if (!isset($totalarray['val'])) { + $totalarray['val'] = array(); + } + if (!isset($totalarray['val']['t.'.$key])) { + $totalarray['val']['t.'.$key] = 0; + } + $totalarray['val']['t.'.$key] += $object->$key; } - if (!isset($totalarray['val']['t.'.$key])) { - $totalarray['val']['t.'.$key] = 0; - } - $totalarray['val']['t.'.$key] += $object->$key; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Action column - print ''; + } + if (!$i) { + $totalarray['nbfield']++; } - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - print ''."\n"; + print ''."\n"; - $i++; + $i++; + } } // Show total line diff --git a/htdocs/bom/bom_net_needs.php b/htdocs/bom/bom_net_needs.php index baf4b096324..1b8afa91e52 100644 --- a/htdocs/bom/bom_net_needs.php +++ b/htdocs/bom/bom_net_needs.php @@ -35,20 +35,24 @@ $langs->loadLangs(array("mrp", "other", "stocks")); // Get parameters $id = GETPOST('id', 'int'); $lineid = GETPOST('lineid', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'bomnet_needs'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); - +$backtopage = GETPOST('backtopage', 'alpha'); // Initialize technical objects $object = new BOM($db); $extrafields = new ExtraFields($db); -$diroutputmassaction = $conf->bom->dir_output.'/temp/massgeneration/'.$user->id; + +// Initialize technical objects for hooks $hookmanager->initHooks(array('bomnetneeds')); // Note that conf->hooks_modules contains array + +// Massaction +$diroutputmassaction = $conf->bom->dir_output.'/temp/massgeneration/'.$user->id; + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); @@ -73,13 +77,13 @@ if ($object->id > 0) { } - // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); $result = restrictedArea($user, 'bom', $object->id, 'bom_bom', '', '', 'rowid', $isdraft); +// Permissions $permissionnote = $user->rights->bom->write; // Used by the include of actions_setnotes.inc.php $permissiondellink = $user->rights->bom->write; // Used by the include of actions_dellink.inc.php $permissiontoadd = $user->rights->bom->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php @@ -123,13 +127,11 @@ if (empty($reshook)) { $form = new Form($db); $formfile = new FormFile($db); - $title = $langs->trans('BOM'); $help_url ='EN:Module_BOM'; llxHeader('', $title, $help_url); - // Part to show record if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { $head = bomPrepareHead($object); @@ -195,19 +197,19 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea */ $text_stock_options = $langs->trans("RealStockDesc").'
'; $text_stock_options .= $langs->trans("RealStockWillAutomaticallyWhen").'
'; - $text_stock_options .= (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE) ? '- '.$langs->trans("DeStockOnShipment").'
' : ''); - $text_stock_options .= (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) ? '- '.$langs->trans("DeStockOnValidateOrder").'
' : ''); - $text_stock_options .= (! empty($conf->global->STOCK_CALCULATE_ON_BILL) ? '- '.$langs->trans("DeStockOnBill").'
' : ''); - $text_stock_options .= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) ? '- '.$langs->trans("ReStockOnBill").'
' : ''); - $text_stock_options .= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) ? '- '.$langs->trans("ReStockOnValidateOrder").'
' : ''); - $text_stock_options .= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) ? '- '.$langs->trans("ReStockOnDispatchOrder").'
' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE) ? '- '.$langs->trans("DeStockOnShipment").'
' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) ? '- '.$langs->trans("DeStockOnValidateOrder").'
' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_BILL) ? '- '.$langs->trans("DeStockOnBill").'
' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) ? '- '.$langs->trans("ReStockOnBill").'
' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) ? '- '.$langs->trans("ReStockOnValidateOrder").'
' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) ? '- '.$langs->trans("ReStockOnDispatchOrder").'
' : ''); $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE) ? '- '.$langs->trans("StockOnReception").'
' : ''); print '
'; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + print ''; if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { - print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); + print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status onrightofpage' : ''), 1); } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) { print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', 'maxwidth125', 1); } elseif (!preg_match('/^(date|timestamp|datetime)/', $val['type'])) { @@ -561,16 +588,22 @@ $parameters = array('arrayfields'=>$arrayfields); $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Action column -print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
'; + print '
'; } - if (in_array($val['type'], array('timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif ($key == 'ref') { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } + print $object->getKanbanView(''); - if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status')) && empty($val['arrayofkeyval'])) { - $cssforfield .= ($cssforfield ? ' ' : '').'right'; - } - if (!empty($arrayfields['t.'.$key]['checked'])) { - print ''; - if ($key == 'status') { - print $object->getLibStatut(5); - } elseif ($key == 'rowid') { - print $object->showOutputField($val, $key, $object->id, ''); - } else { - print $object->showOutputField($val, $key, $object->$key, ''); + if ($i == min($num, $limit)-1) { + print '
'; + print '
'; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; } print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($object->id, $arrayofselected)) { - $selected = 1; + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'; print "\n"; print ''; print ''; print ''; print ''; - if (! empty($TChildBom)) { + if (!empty($TChildBom)) { if ($action == 'treeview') { foreach ($TChildBom as $fk_bom => $TProduct) { $repeatChar = ' '; - if (! empty($TProduct['bom'])) { + if (!empty($TProduct['bom'])) { if ($TProduct['parentid'] != $object->id) print ''; else print ''; print ''; print ''; } - if (! empty($TProduct['product'])) { + if (!empty($TProduct['product'])) { foreach ($TProduct['product'] as $fk_product => $TInfos) { $prod = new Product($db); $prod->fetch($fk_product); diff --git a/htdocs/bom/bom_note.php b/htdocs/bom/bom_note.php index 9984a1498b8..0c32b8643fb 100644 --- a/htdocs/bom/bom_note.php +++ b/htdocs/bom/bom_note.php @@ -17,9 +17,9 @@ */ /** - * \file bom_note.php - * \ingroup bom - * \brief Car with notes on BillOfMaterials + * \file htdocs/bom/bom_note.php + * \ingroup bom + * \brief Card with notes on BillOfMaterials */ // Load Dolibarr environment @@ -31,8 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php'; $langs->loadLangs(array("mrp", "companies")); // Get parameters -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -40,9 +40,13 @@ $backtopage = GETPOST('backtopage', 'alpha'); // Initialize technical objects $object = new BOM($db); $extrafields = new ExtraFields($db); -$diroutputmassaction = $conf->bom->dir_output.'/temp/massgeneration/'.$user->id; + +// Initialize technical objects for hooks $hookmanager->initHooks(array('bomnote', 'globalcard')); // Note that conf->hooks_modules contains array +// Massactions +$diroutputmassaction = $conf->bom->dir_output.'/temp/massgeneration/'.$user->id; + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); diff --git a/htdocs/bom/class/api_boms.class.php b/htdocs/bom/class/api_boms.class.php index 91af888ffd8..e199650be30 100644 --- a/htdocs/bom/class/api_boms.class.php +++ b/htdocs/bom/class/api_boms.class.php @@ -2,6 +2,7 @@ /* Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2019 Maxime Kohlhaas * Copyright (C) 2020 Frédéric France + * Copyright (C) 2022 Christian Humpel * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -204,6 +205,9 @@ class Boms extends DolibarrApi foreach ($request_data as $field => $value) { $this->bom->$field = $value; } + + $this->checkRefNumbering(); + if (!$this->bom->create(DolibarrApiAccess::$user)) { throw new RestException(500, "Error creating BOM", array_merge(array($this->bom->error), $this->bom->errors)); } @@ -240,6 +244,8 @@ class Boms extends DolibarrApi $this->bom->$field = $value; } + $this->checkRefNumbering(); + if ($this->bom->update(DolibarrApiAccess::$user) > 0) { return $this->get($id); } else { @@ -279,6 +285,177 @@ class Boms extends DolibarrApi ); } + /** + * Get lines of an BOM + * + * @param int $id Id of BOM + * + * @url GET {id}/lines + * + * @return array + */ + public function getLines($id) + { + if (!DolibarrApiAccess::$user->rights->bom->read) { + throw new RestException(401); + } + + $result = $this->bom->fetch($id); + if (!$result) { + throw new RestException(404, 'BOM not found'); + } + + if (!DolibarrApi::_checkAccessToResource('bom_bom', $this->bom->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + $this->bom->getLinesArray(); + $result = array(); + foreach ($this->bom->lines as $line) { + array_push($result, $this->_cleanObjectDatas($line)); + } + return $result; + } + + /** + * Add a line to given BOM + * + * @param int $id Id of BOM to update + * @param array $request_data BOMLine data + * + * @url POST {id}/lines + * + * @return int + */ + public function postLine($id, $request_data = null) + { + if (!DolibarrApiAccess::$user->rights->bom->write) { + throw new RestException(401); + } + + $result = $this->bom->fetch($id); + if (!$result) { + throw new RestException(404, 'BOM not found'); + } + + if (!DolibarrApi::_checkAccessToResource('bom_bom', $this->bom->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $request_data = (object) $request_data; + + $updateRes = $this->bom->addLine( + $request_data->fk_product, + $request_data->qty, + $request_data->qty_frozen, + $request_data->disable_stock_change, + $request_data->efficiency, + $request_data->position, + $request_data->fk_bom_child, + $request_data->import_key + ); + + if ($updateRes > 0) { + return $updateRes; + } else { + throw new RestException(400, $this->bom->error); + } + } + + /** + * Update a line to given BOM + * + * @param int $id Id of BOM to update + * @param int $lineid Id of line to update + * @param array $request_data BOMLine data + * + * @url PUT {id}/lines/{lineid} + * + * @return array|bool + */ + public function putLine($id, $lineid, $request_data = null) + { + if (!DolibarrApiAccess::$user->rights->bom->write) { + throw new RestException(401); + } + + $result = $this->bom->fetch($id); + if (!$result) { + throw new RestException(404, 'BOM not found'); + } + + if (!DolibarrApi::_checkAccessToResource('bom_bom', $this->bom->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $request_data = (object) $request_data; + + $updateRes = $this->bom->updateLine( + $lineid, + $request_data->qty, + $request_data->qty_frozen, + $request_data->disable_stock_change, + $request_data->efficiency, + $request_data->position, + $request_data->import_key + ); + + if ($updateRes > 0) { + $result = $this->get($id); + unset($result->line); + return $this->_cleanObjectDatas($result); + } + return false; + } + + /** + * Delete a line to given BOM + * + * + * @param int $id Id of BOM to update + * @param int $lineid Id of line to delete + * + * @url DELETE {id}/lines/{lineid} + * + * @return int + * + * @throws RestException 401 + * @throws RestException 404 + * @throws RestException 500 + */ + public function deleteLine($id, $lineid) + { + if (!DolibarrApiAccess::$user->rights->bom->write) { + throw new RestException(401); + } + + $result = $this->bom->fetch($id); + if (!$result) { + throw new RestException(404, 'BOM not found'); + } + + if (!DolibarrApi::_checkAccessToResource('bom_bom', $this->bom->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + //Check the rowid is a line of current bom object + $lineIdIsFromObject = false; + foreach ($this->bom->lines as $bl) { + if ($bl->id == $lineid) { + $lineIdIsFromObject = true; + break; + } + } + if (!$lineIdIsFromObject) { + throw new RestException(500, 'Line to delete (rowid: '.$lineid.') is not a line of BOM (id: '.$this->bom->id.')'); + } + + $updateRes = $this->bom->deleteline(DolibarrApiAccess::$user, $lineid); + if ($updateRes > 0) { + return $this->get($id); + } else { + throw new RestException(405, $this->bom->error); + } + } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** @@ -364,4 +541,27 @@ class Boms extends DolibarrApi } return $myobject; } + + /** + * Validate the ref field and get the next Number if it's necessary. + * + * @return void + */ + private function checkRefNumbering(): void + { + $ref = substr($this->bom->ref, 1, 4); + if ($this->bom->status > 0 && $ref == 'PROV') { + throw new RestException(400, "Wrong naming scheme '(PROV%)' is only allowed on 'DRAFT' status. For automatic increment use 'auto' on the 'ref' field."); + } + + if (strtolower($this->bom->ref) == 'auto') { + if (empty($this->bom->id) && $this->bom->status == 0) { + $this->bom->ref = ''; // 'ref' will auto incremented with '(PROV' + newID + ')' + } else { + $this->bom->fetch_product(); + $numref = $this->bom->getNextNumRef($this->bom->product); + $this->bom->ref = $numref; + } + } + } } diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 598c4c73945..79d2b57ebc8 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -23,6 +23,8 @@ // Put here all includes required by your class file require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; //require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; //require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; @@ -96,7 +98,7 @@ class BOM extends CommonObject public $fields = array( 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=> 1, 'default'=>1, 'index'=>1, 'position'=>5), - 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'noteditable'=>1, 'visible'=>4, 'position'=>10, 'notnull'=>1, 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of BOM", 'showoncombobox'=>'1',), + 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'noteditable'=>1, 'visible'=>4, 'position'=>10, 'notnull'=>1, 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of BOM", 'showoncombobox'=>'1', 'csslist'=>'nowraponall'), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>1, 'searchall'=>1, 'showoncombobox'=>'2', 'autofocusoncreate'=>1, 'css'=>'minwidth300 maxwidth400', 'csslist'=>'tdoverflowmax200'), 'bomtype' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>1, 'visible'=>1, 'position'=>33, 'notnull'=>1, 'default'=>'0', 'arrayofkeyval'=>array(0=>'Manufacturing', 1=>'Disassemble'), 'css'=>'minwidth175', 'csslist'=>'minwidth175 center'), //'bomtype' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>1, 'visible'=>-1, 'position'=>32, 'notnull'=>1, 'default'=>'0', 'arrayofkeyval'=>array(0=>'Manufacturing')), @@ -239,7 +241,7 @@ class BOM extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -399,6 +401,58 @@ class BOM extends CommonObject return $result; } + /** + * Load object lines in memory from the database by type of product + * + * @param int $typeproduct 0 type product, 1 type service + + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetchLinesbytypeproduct($typeproduct = 0) + { + $this->lines = array(); + + $objectlineclassname = get_class($this).'Line'; + if (!class_exists($objectlineclassname)) { + $this->error = 'Error, class '.$objectlineclassname.' not found during call of fetchLinesCommon'; + return -1; + } + + $objectline = new $objectlineclassname($this->db); + + $sql = "SELECT ".$objectline->getFieldList('l'); + $sql .= " FROM ".$this->db->prefix().$objectline->table_element." as l"; + $sql .= " LEFT JOIN ".$this->db->prefix()."product as p ON p.rowid = l.fk_product"; + $sql .= " WHERE l.fk_".$this->db->escape($this->element)." = ".((int) $this->id); + $sql .= " AND p.fk_product_type = ". ((int) $typeproduct); + if (isset($objectline->fields['position'])) { + $sql .= $this->db->order('position', 'ASC'); + } + + $resql = $this->db->query($sql); + if ($resql) { + $num_rows = $this->db->num_rows($resql); + $i = 0; + while ($i < $num_rows) { + $obj = $this->db->fetch_object($resql); + if ($obj) { + $newline = new $objectlineclassname($this->db); + $newline->setVarsFromFetchObj($obj); + + $this->lines[] = $newline; + } + $i++; + } + + return $num_rows; + } else { + $this->error = $this->db->lasterror(); + $this->errors[] = $this->error; + return -1; + } + } + + /** * Load list of objects in memory from the database. * @@ -502,6 +556,226 @@ class BOM extends CommonObject //return $this->deleteCommon($user, $notrigger, 1); } + /** + * Add an BOM line into database (linked to BOM) + * + * @param int $fk_product Id of product + * @param float $qty Quantity + * @param int $qty_frozen Frozen quantity + * @param int $disable_stock_change Disable stock change on using in MO + * @param float $efficiency Efficiency in MO + * @param int $position Position of BOM-Line in BOM-Lines + * @param int $fk_bom_child Id of BOM Child + * @param string $import_key Import Key + * @param string $fk_unit Unit + * @param array $array_options extrafields array + * @return int <0 if KO, Id of created object if OK + */ + public function addLine($fk_product, $qty, $qty_frozen = 0, $disable_stock_change = 0, $efficiency = 1.0, $position = -1, $fk_bom_child = null, $import_key = null, $fk_unit = '', $array_options = 0) + { + global $mysoc, $conf, $langs, $user; + + $logtext = "::addLine bomid=$this->id, qty=$qty, fk_product=$fk_product, qty_frozen=$qty_frozen, disable_stock_change=$disable_stock_change, efficiency=$efficiency"; + $logtext .= ", fk_bom_child=$fk_bom_child, import_key=$import_key"; + dol_syslog(get_class($this).$logtext, LOG_DEBUG); + + if ($this->statut == self::STATUS_DRAFT) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; + + // Clean parameters + if (empty($qty)) { + $qty = 0; + } + if (empty($qty_frozen)) { + $qty_frozen = 0; + } + if (empty($disable_stock_change)) { + $disable_stock_change = 0; + } + if (empty($efficiency)) { + $efficiency = 1.0; + } + if (empty($fk_bom_child)) { + $fk_bom_child = null; + } + if (empty($import_key)) { + $import_key = null; + } + if (empty($position)) { + $position = -1; + } + + $qty = price2num($qty); + $efficiency = price2num($efficiency); + $position = price2num($position); + + $this->db->begin(); + + // Rank to use + $rangMax = $this->line_max(); + $rankToUse = $position; + if ($rankToUse <= 0 or $rankToUse > $rangMax) { // New line after existing lines + $rankToUse = $rangMax + 1; + } else { // New line between the existing lines + foreach ($this->lines as $bl) { + if ($bl->position >= $rankToUse) { + $bl->position++; + $bl->update($user); + } + } + } + + // Insert line + $this->line = new BOMLine($this->db); + + $this->line->context = $this->context; + + $this->line->fk_bom = $this->id; + $this->line->fk_product = $fk_product; + $this->line->qty = $qty; + $this->line->qty_frozen = $qty_frozen; + $this->line->disable_stock_change = $disable_stock_change; + $this->line->efficiency = $efficiency; + $this->line->fk_bom_child = $fk_bom_child; + $this->line->import_key = $import_key; + $this->line->position = $rankToUse; + $this->line->fk_unit = $fk_unit; + + if (is_array($array_options) && count($array_options) > 0) { + $this->line->array_options = $array_options; + } + + $result = $this->line->create($user); + + if ($result > 0) { + $this->calculateCosts(); + $this->db->commit(); + return $result; + } else { + $this->error = $this->line->error; + dol_syslog(get_class($this)."::addLine error=".$this->error, LOG_ERR); + $this->db->rollback(); + return -2; + } + } else { + dol_syslog(get_class($this)."::addLine status of BOM must be Draft to allow use of ->addLine()", LOG_ERR); + return -3; + } + } + + /** + * Update an BOM line into database + * + * @param int $rowid Id of line to update + * @param float $qty Quantity + * @param int $qty_frozen Frozen quantity + * @param int $disable_stock_change Disable stock change on using in MO + * @param float $efficiency Efficiency in MO + * @param int $position Position of BOM-Line in BOM-Lines + * @param string $import_key Import Key + * @param int $fk_unit Unit of line + * @param array $array_options extrafields array + * @return int <0 if KO, Id of updated BOM-Line if OK + */ + public function updateLine($rowid, $qty, $qty_frozen = 0, $disable_stock_change = 0, $efficiency = 1.0, $position = -1, $import_key = null, $fk_unit = 0, $array_options = 0) + { + global $mysoc, $conf, $langs, $user; + + $logtext = "::updateLine bomid=$this->id, qty=$qty, qty_frozen=$qty_frozen, disable_stock_change=$disable_stock_change, efficiency=$efficiency"; + $logtext .= ", import_key=$import_key"; + dol_syslog(get_class($this).$logtext, LOG_DEBUG); + + if ($this->statut == self::STATUS_DRAFT) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; + + // Clean parameters + if (empty($qty)) { + $qty = 0; + } + if (empty($qty_frozen)) { + $qty_frozen = 0; + } + if (empty($disable_stock_change)) { + $disable_stock_change = 0; + } + if (empty($efficiency)) { + $efficiency = 1.0; + } + if (empty($import_key)) { + $import_key = null; + } + if (empty($position)) { + $position = -1; + } + + $qty = price2num($qty); + $efficiency = price2num($efficiency); + $position = price2num($position); + + $this->db->begin(); + + //Fetch current line from the database and then clone the object and set it in $oldline property + $line = new BOMLine($this->db); + $line->fetch($rowid); + $line->fetch_optionals(); + + $staticLine = clone $line; + $line->oldcopy = $staticLine; + $this->line = $line; + $this->line->context = $this->context; + + // Rank to use + $rankToUse = (int) $position; + if ($rankToUse != $line->oldcopy->position) { // check if position have a new value + foreach ($this->lines as $bl) { + if ($bl->position >= $rankToUse AND $bl->position < ($line->oldcopy->position + 1)) { // move rank up + $bl->position++; + $bl->update($user); + } + if ($bl->position <= $rankToUse AND $bl->position > ($line->oldcopy->position)) { // move rank down + $bl->position--; + $bl->update($user); + } + } + } + + + $this->line->fk_bom = $this->id; + $this->line->qty = $qty; + $this->line->qty_frozen = $qty_frozen; + $this->line->disable_stock_change = $disable_stock_change; + $this->line->efficiency = $efficiency; + $this->line->import_key = $import_key; + $this->line->position = $rankToUse; + if (!empty($fk_unit)) { + $this->line->fk_unit = $fk_unit; + } + + if (is_array($array_options) && count($array_options) > 0) { + // We replace values in this->line->array_options only for entries defined into $array_options + foreach ($array_options as $key => $value) { + $this->line->array_options[$key] = $array_options[$key]; + } + } + + $result = $this->line->update($user); + + if ($result > 0) { + $this->calculateCosts(); + $this->db->commit(); + return $result; + } else { + $this->error = $this->line->error; + dol_syslog(get_class($this)."::addLine error=".$this->error, LOG_ERR); + $this->db->rollback(); + return -2; + } + } else { + dol_syslog(get_class($this)."::addLine status of BOM must be Draft to allow use of ->addLine()", LOG_ERR); + return -3; + } + } + /** * Delete a line of object in database * @@ -517,7 +791,38 @@ class BOM extends CommonObject return -2; } - return $this->deleteLineCommon($user, $idline, $notrigger); + $this->db->begin(); + + //Fetch current line from the database and then clone the object and set it in $oldline property + $line = new BOMLine($this->db); + $line->fetch($idline); + $line->fetch_optionals(); + + $staticLine = clone $line; + $line->oldcopy = $staticLine; + $this->line = $line; + $this->line->context = $this->context; + + $result = $this->line->delete($user, $notrigger); + + //Positions (rank) reordering + foreach ($this->lines as $bl) { + if ($bl->position > ($line->oldcopy->position)) { // move rank down + $bl->position--; + $bl->update($user); + } + } + + if ($result > 0) { + $this->calculateCosts(); + $this->db->commit(); + return $result; + } else { + $this->error = $this->line->error; + dol_syslog(get_class($this)."::addLine error=".$this->error, LOG_ERR); + $this->db->rollback(); + return -2; + } } /** @@ -589,8 +894,8 @@ class BOM extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->create)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->create)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->bom_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -701,8 +1006,8 @@ class BOM extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->bom_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -725,8 +1030,8 @@ class BOM extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->bom_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -749,8 +1054,8 @@ class BOM extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->bom_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -909,27 +1214,11 @@ class BOM extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if (!empty($obj->fk_user_author)) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if (!empty($obj->fk_user_valid)) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if (!empty($obj->fk_user_cloture)) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = !empty($obj->datem) ? $this->db->jdate($obj->datem) : ""; - $this->date_validation = !empty($obj->datev) ? $this->db->jdate($obj->datev) : ""; + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -1040,14 +1329,23 @@ class BOM extends CommonObject * BOM costs calculation based on cost_price or pmp of each BOM line. * Set the property ->total_cost and ->unit_cost of BOM. * - * @return void + * @return int <0 if KO, >0 if OK */ public function calculateCosts() { + global $conf, $hookmanager; + include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $this->unit_cost = 0; $this->total_cost = 0; + $parameters=array(); + $reshook = $hookmanager->executeHooks('calculateCostsBom', $parameters, $this); // Note that $action and $object may have been modified by hook + + if ($reshook > 0) { + return $hookmanager->resPrint; + } + if (is_array($this->lines) && count($this->lines)) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; $productFournisseur = new ProductFournisseur($this->db); @@ -1056,44 +1354,68 @@ class BOM extends CommonObject foreach ($this->lines as &$line) { $tmpproduct->cost_price = 0; $tmpproduct->pmp = 0; + $result = $tmpproduct->fetch($line->fk_product, '', '', '', 0, 1, 1); // We discard selling price and language loading - if (empty($line->fk_bom_child)) { - $result = $tmpproduct->fetch($line->fk_product, '', '', '', 0, 1, 1); // We discard selling price and language loading - if ($result < 0) { - $this->error = $tmpproduct->error; - return -1; - } - $line->unit_cost = price2num((!empty($tmpproduct->cost_price)) ? $tmpproduct->cost_price : $tmpproduct->pmp); - if (empty($line->unit_cost)) { - if ($productFournisseur->find_min_price_product_fournisseur($line->fk_product) > 0) { - $line->unit_cost = $productFournisseur->fourn_unitprice; + if ($tmpproduct->type == $tmpproduct::TYPE_PRODUCT) { + if (empty($line->fk_bom_child)) { + if ($result < 0) { + $this->error = $tmpproduct->error; + return -1; + } + $line->unit_cost = price2num((!empty($tmpproduct->cost_price)) ? $tmpproduct->cost_price : $tmpproduct->pmp); + if (empty($line->unit_cost)) { + if ($productFournisseur->find_min_price_product_fournisseur($line->fk_product) > 0) { + $line->unit_cost = $productFournisseur->fourn_unitprice; + } + } + + $line->total_cost = price2num($line->qty * $line->unit_cost, 'MT'); + + $this->total_cost += $line->total_cost; + } else { + $bom_child = new BOM($this->db); + $res = $bom_child->fetch($line->fk_bom_child); + if ($res > 0) { + $bom_child->calculateCosts(); + $line->childBom[] = $bom_child; + $this->total_cost += $bom_child->total_cost * $line->qty; + } else { + $this->error = $bom_child->error; + return -2; } } + } else { + //Convert qty to hour + $unit = measuringUnitString($line->fk_unit, '', '', 1); + $qty = convertDurationtoHour($line->qty, $unit); - $line->total_cost = price2num($line->qty * $line->unit_cost, 'MT'); + if (isModEnabled('workstation') && !empty($tmpproduct->fk_default_workstation)) { + $workstation = new Workstation($this->db); + $res = $workstation->fetch($tmpproduct->fk_default_workstation); + + if ($res > 0) $line->total_cost = price2num($qty * ($workstation->thm_operator_estimated + $workstation->thm_machine_estimated), 'MT'); + else { + $this->error = $workstation->error; + return -3; + } + } else { + $line->total_cost = price2num($qty * $tmpproduct->cost_price, 'MT'); + } $this->total_cost += $line->total_cost; - } else { - $bom_child= new BOM($this->db); - $res = $bom_child->fetch($line->fk_bom_child); - if ($res>0) { - $bom_child->calculateCosts(); - $line->childBom[] = $bom_child; - $this->total_cost += $bom_child->total_cost * $line->qty; - } else { - $this->error = $bom_child->error; - return -2; - } } } $this->total_cost = price2num($this->total_cost, 'MT'); + if ($this->qty > 0) { $this->unit_cost = price2num($this->total_cost / $this->qty, 'MU'); } elseif ($this->qty < 0) { $this->unit_cost = price2num($this->total_cost * $this->qty, 'MU'); } } + + return 1; } /** @@ -1122,9 +1444,9 @@ class BOM extends CommonObject */ public function getNetNeeds(&$TNetNeeds = array(), $qty = 0) { - if (! empty($this->lines)) { + if (!empty($this->lines)) { foreach ($this->lines as $line) { - if (! empty($line->childBom)) { + if (!empty($line->childBom)) { foreach ($line->childBom as $childBom) $childBom->getNetNeeds($TNetNeeds, $line->qty*$qty); } else { if (empty($TNetNeeds[$line->fk_product])) { @@ -1146,9 +1468,9 @@ class BOM extends CommonObject */ public function getNetNeedsTree(&$TNetNeeds = array(), $qty = 0, $level = 0) { - if (! empty($this->lines)) { + if (!empty($this->lines)) { foreach ($this->lines as $line) { - if (! empty($line->childBom)) { + if (!empty($line->childBom)) { foreach ($line->childBom as $childBom) { $TNetNeeds[$childBom->id]['bom'] = $childBom; $TNetNeeds[$childBom->id]['parentid'] = $this->id; @@ -1163,6 +1485,78 @@ class BOM extends CommonObject } } } + + /** + * Recursively retrieves all parent bom in the tree that leads to the $bom_id bom + * + * @param array $TParentBom We put all found parent bom in $TParentBom + * @param int $bom_id ID of bom from which we want to get parent bom ids + * @param int $level Protection against infinite loop + * @return void + */ + public function getParentBomTreeRecursive(&$TParentBom, $bom_id = '', $level = 1) + { + + // Protection against infinite loop + if ($level > 1000) { + return; + } + + if (empty($bom_id)) $bom_id=$this->id; + + $sql = 'SELECT l.fk_bom, b.label + FROM '.MAIN_DB_PREFIX.'bom_bomline l + INNER JOIN '.MAIN_DB_PREFIX.$this->table_element.' b ON b.rowid = l.fk_bom + WHERE fk_bom_child = '.((int) $bom_id); + + $resql = $this->db->query($sql); + if (!empty($resql)) { + while ($res = $this->db->fetch_object($resql)) { + $TParentBom[$res->fk_bom] = $res->fk_bom; + $this->getParentBomTreeRecursive($TParentBom, $res->fk_bom, $level+1); + } + } + } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '') + { + global $db,$langs; + $prod = new Product($db); + $prod->fetch($this->fk_product); + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : '').''; + if (property_exists($this, 'fields') && !empty($this->fields['bomtype']['arrayofkeyval'])) { + $return .= '
'.$langs->trans("Type").' : '; + if ($this->bomtype == 0) { + $return .= ''.$this->fields['bomtype']['arrayofkeyval'][0].''; + } else { + $return .= ''.$this->fields['bomtype']['arrayofkeyval'][1].''; + } + } + if (property_exists($this, 'fk_product') && !is_null($this->fk_product)) { + $return .= '
'.$prod->getNomUrl(1).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } @@ -1230,6 +1624,7 @@ class BOMLine extends CommonObjectLine 'qty_frozen' => array('type'=>'smallint', 'label'=>'QuantityFrozen', 'enabled'=>1, 'visible'=>1, 'default'=>0, 'position'=>105, 'css'=>'maxwidth50imp', 'help'=>'QuantityConsumedInvariable'), 'disable_stock_change' => array('type'=>'smallint', 'label'=>'DisableStockChange', 'enabled'=>1, 'visible'=>1, 'default'=>0, 'position'=>108, 'css'=>'maxwidth50imp', 'help'=>'DisableStockChangeHelp'), 'efficiency' => array('type'=>'double(24,8)', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'position'=>110, 'notnull'=>1, 'css'=>'maxwidth50imp', 'help'=>'ValueOfEfficiencyConsumedMeans'), + 'fk_unit' => array('type'=>'integer', 'label'=>'Unit', 'enabled'=>1, 'visible'=>1, 'position'=>120, 'notnull'=>-1,), 'position' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>1, 'visible'=>0, 'default'=>0, 'position'=>200, 'notnull'=>1,), 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000, 'notnull'=>-1,), ); @@ -1309,7 +1704,7 @@ class BOMLine extends CommonObjectLine if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -1356,7 +1751,7 @@ class BOMLine extends CommonObjectLine public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + //if ($result > 0 && !empty($this->table_element_line)) $this->fetchLines(); return $result; } @@ -1581,29 +1976,11 @@ class BOMLine extends CommonObjectLine if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } - + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } - $this->db->free($result); } else { dol_print_error($this->db); diff --git a/htdocs/bom/lib/bom.lib.php b/htdocs/bom/lib/bom.lib.php index 94debfbee7b..8d827ba09aa 100644 --- a/htdocs/bom/lib/bom.lib.php +++ b/htdocs/bom/lib/bom.lib.php @@ -46,6 +46,11 @@ function bomAdminPrepareHead() $head[$h][2] = 'bom_extrafields'; $h++; + $head[$h][0] = DOL_URL_ROOT."/admin/bomline_extrafields.php"; + $head[$h][1] = $langs->trans("ExtraFieldsLines"); + $head[$h][2] = 'bomline_extrafields'; + $h++; + // Show more tabs from modules // Entries must be declared in modules descriptor with line //$this->tabs = array( @@ -134,6 +139,8 @@ function bomPrepareHead($object) //); // to remove a tab complete_head_from_modules($conf, $langs, $object, $head, $h, 'bom'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'bom', 'remove'); + return $head; } diff --git a/htdocs/bom/tpl/linkedobjectblock.tpl.php b/htdocs/bom/tpl/linkedobjectblock.tpl.php index 8a98c078bc5..1765e9a84c1 100644 --- a/htdocs/bom/tpl/linkedobjectblock.tpl.php +++ b/htdocs/bom/tpl/linkedobjectblock.tpl.php @@ -47,12 +47,12 @@ foreach ($linkedObjectBlock as $key => $objectlink) { $trclass .= ' liste_sub_total'; } echo '
'; - echo ''; + echo ''; echo ''; if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { @@ -62,16 +71,24 @@ if ($nolinesbefore) { print '
'.$langs->trans('AddNewLine').''; print ''; print ''; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { - print ''; + + if ($filtertype != 1) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { + print ''; + } + print ''; + print ''; + print ''; + } else { + print ''; + if (isModEnabled('workstation')) print ''; + print ''; } - print ''; - print ''; - print ''; - print ''; + + print ''; print ''; } print ''; @@ -87,30 +104,39 @@ $coldisplay++; print ''; @@ -118,35 +144,57 @@ $coldisplay++; print ''; -if (!empty($conf->global->PRODUCT_USE_UNITS)) { +if ($filtertype != 1) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { + $coldisplay++; + print ''; + } + $coldisplay++; - print ''; + + + $coldisplay++; + print ''; + + $coldisplay++; + print ''; + + $coldisplay++; + print ''; +} else { + $coldisplay++; + require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; + $cUnit = new CUnits($this->db); + $fk_unit_default = $cUnit->getUnitFromCode('h', 'short_label', 'time'); + print ''; + + $coldisplay++; + print ''; + + $coldisplay++; + print ''; } -$coldisplay++; -print ''; + $coldisplay += $colspan; + print ''; + print ''; -$coldisplay++; -print ''; - -$coldisplay++; -print ''; - -$coldisplay++; -print ''; - -$coldisplay += $colspan; -print ''; -print ''; if (is_object($objectline)) { print $objectline->showOptionals($extrafields, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', 1, 'line'); @@ -175,6 +223,27 @@ jQuery(document).ready(function() { } } }); + + //change unit selected if we change service selected + + $('#idprodservice').change(function(){ + var idproduct = $(this).val(); + + $.ajax({ + url : "" + ,type: 'POST' + ,data: { + 'action': 'getDurationUnitByProduct' + ,'idproduct' : idproduct + } + }).done(function(data) { + + console.log(data); + var data = JSON.parse(data); + $("#fk_unit").val(data).change(); + }); + }); + }); diff --git a/htdocs/bom/tpl/objectline_edit.tpl.php b/htdocs/bom/tpl/objectline_edit.tpl.php index e5f24fa994f..969b210e89b 100644 --- a/htdocs/bom/tpl/objectline_edit.tpl.php +++ b/htdocs/bom/tpl/objectline_edit.tpl.php @@ -31,6 +31,9 @@ * $inputalsopricewithtax (0 by default, 1 to also show column with unit price including tax) */ +require_once DOL_DOCUMENT_ROOT."/product/class/html.formproduct.class.php"; + + // Protection to avoid direct call of template if (empty($object) || !is_object($object)) { print "Error, template page can't be called as URL"; @@ -38,12 +41,16 @@ if (empty($object) || !is_object($object)) { } -global $forceall; +global $forceall, $filtertype; if (empty($forceall)) { $forceall = 0; } +if (empty($filtertype)) $filtertype = 0; + +$formproduct = new FormProduct($object->db); + // Define colspan for the button 'Add' $colspan = 3; // Columns: total ht + col edit + col delete @@ -86,6 +93,16 @@ if (is_object($hookmanager)) { $reshook = $hookmanager->executeHooks('formEditProductOptions', $parameters, $this, $action); } +//Line extrafield +if (is_object($objectline) && !empty($extrafields)) { + $temps = $line->showOptionals($extrafields, 'edit', array('class'=>'tredited'), '', '', 1, 'line'); + if (!empty($temps)) { + print '
'; + print $temps; + print '
'; + } +} + print ''; /*if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier') // We must have same test in printObjectLines @@ -108,28 +125,43 @@ if (($line->info_bits & 2) != 2) { } print ''; -if (!empty($conf->global->PRODUCT_USE_UNITS)) { +if ($filtertype != 1) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { + $coldisplay++; + print ''; + } + $coldisplay++; - print ''; + + $coldisplay++; + print ''; + + $coldisplay++; + print ''; + + $coldisplay++; + print ''; +} else { + $coldisplay++; + print ''; + + $coldisplay++; + print ''; + + $coldisplay++; + print ''; } -$coldisplay++; -print ''; - -$coldisplay++; -print ''; - -$coldisplay++; -print ''; - -$coldisplay++; -print ''; - $coldisplay += $colspan; print ''; // Qty -print ''; +print ''; -if (!empty($conf->global->PRODUCT_USE_UNITS)) { - print ''; +if ($filtertype != 1) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { + print ''; + } + + // Qty frozen + print ''; + + // Disable stock change + print ''; + + // Efficiency + print ''; + + // Cost + print ''; +} else { + print ''; + + if (isModEnabled('workstation')) print ''; + + // Cost + print ''; } -// Qty frozen -print ''; -// Disable stock change -print ''; -// Efficiency -print ''; - -// Cost -print ''; print ''; // No width to allow autodim diff --git a/htdocs/bom/tpl/objectline_view.tpl.php b/htdocs/bom/tpl/objectline_view.tpl.php index 61b394a3b0f..d20692ac99a 100644 --- a/htdocs/bom/tpl/objectline_view.tpl.php +++ b/htdocs/bom/tpl/objectline_view.tpl.php @@ -34,12 +34,17 @@ * $type, $text, $description, $line */ +require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; + // Protection to avoid direct call of template if (empty($object) || !is_object($object)) { print "Error, template page can't be called as URL"; exit; } +global $filtertype; +if (empty($filtertype)) $filtertype = 0; + global $forceall, $senderissupplier, $inputalsopricewithtax, $outputalsopricetotalwithtax, $langs; @@ -60,7 +65,9 @@ if (empty($outputalsopricetotalwithtax)) { } // add html5 elements -$domData = ' data-element="'.$line->element.'"'; +if ($filtertype == 1) $domData = ' data-element="'.$line->element.'service"'; +else $domData = ' data-element="'.$line->element.'"'; + $domData .= ' data-id="'.$line->id.'"'; $domData .= ' data-qty="'.$line->qty.'"'; $domData .= ' data-product_type="'.$line->product_type.'"'; @@ -93,6 +100,17 @@ if ($tmpbom->id > 0) { print $tmpproduct->getNomUrl(1); print ' - '.$tmpproduct->label; } + +// Line extrafield +if (!empty($extrafields)) { + $temps = $line->showOptionals($extrafields, 'view', array(), '', '', 1, 'line'); + if (!empty($temps)) { + print '
'; + print $temps; + print '
'; + } +} + print ''; print ''; -if (!empty($conf->global->PRODUCT_USE_UNITS)) { - print ''; } + + print ''; + print ''; + + print ''; +} else { + //Unité + print ''; + + // Work station + if (isModEnabled('workstation')) { + $workstation = new Workstation($object->db); + $res = $workstation->fetch($tmpproduct->fk_default_workstation); + + print ''; + } } - -print ''; -print ''; - -print ''; - $total_cost = 0; print ''; - // Owner + // Visibility / Owner print ''; @@ -269,9 +279,10 @@ if ($id > 0 && !preg_match('/^add/i', $action)) { } print ''; + // Visibility / owner print '
'.$langs->trans('Product'); - if (! empty($conf->global->BOM_SUB_BOM) && $action == 'treeview') { + if (!empty($conf->global->BOM_SUB_BOM) && $action == 'treeview') { print '   '.img_picto('', 'folder-open', 'class="paddingright"').$langs->trans("ExpandAll").'  '; print ''.img_picto('', 'folder', 'class="paddingright"').$langs->trans("UndoExpandAll").' '; } @@ -216,11 +218,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''.$form->textwithpicto($langs->trans("PhysicalStock"), $text_stock_options, 1).''.$form->textwithpicto($langs->trans("VirtualStock"), $langs->trans("VirtualStockDesc")).'
'.str_repeat($repeatChar, $TProduct['level']).$TProduct['bom']->getNomUrl(1); @@ -233,7 +235,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
'.$langs->trans("Bom"); + echo ''.$langs->trans("Bom"); if (!empty($showImportButton) && $conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) { print ' '; - echo ''.$objectlink->getNomUrl(1).''.$objectlink->getNomUrl(1).''; $result = $product_static->fetch($objectlink->fk_product); diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php index 0a3a3b34e7a..96a179b93f3 100644 --- a/htdocs/bom/tpl/objectline_create.tpl.php +++ b/htdocs/bom/tpl/objectline_create.tpl.php @@ -29,6 +29,8 @@ * $forceall (0 by default, 1 for supplier invoices/orders) */ +require_once DOL_DOCUMENT_ROOT."/product/class/html.formproduct.class.php"; + // Protection to avoid direct call of template if (empty($object) || !is_object($object)) { print "Error: this template page cannot be called directly as an URL"; @@ -36,12 +38,18 @@ if (empty($object) || !is_object($object)) { } -global $forceall, $forcetoshowtitlelines; +global $forceall, $forcetoshowtitlelines, $filtertype; if (empty($forceall)) { $forceall = 0; } +if (empty($filtertype)) $filtertype = 0; +if (!empty($object->element) && $object->element == 'contrat' && empty($conf->global->STOCK_SUPPORT_SERVICES)) { + $filtertype = -1; +} + +$formproduct = new FormProduct($object->db); // Define colspan for the button 'Add' $colspan = 3; // Columns: total ht + col edit + col delete @@ -53,6 +61,7 @@ $objectline = new BOMLine($this->db); print "\n"; $nolinesbefore = (count($this->lines) == 0 || $forcetoshowtitlelines); + if ($nolinesbefore) { print '
'.$langs->trans('Qty').''; - print ''; - print $langs->trans('Unit'); - print ''; + print ''; + print $langs->trans('Unit'); + print '' . $form->textwithpicto($langs->trans('QtyFrozen'), $langs->trans("QuantityConsumedInvariable")) . '' . $form->textwithpicto($langs->trans('DisableStockChange'), $langs->trans('DisableStockChangeHelp')) . '' . $form->textwithpicto($langs->trans('ManufacturingEfficiency'), $langs->trans('ValueOfMeansLoss')) . '' . $form->textwithpicto($langs->trans('Unit'), '').'' . $form->textwithpicto($langs->trans('Workstation'), '') . '' . $form->textwithpicto($langs->trans('TotalCost'), '') . ''.$form->textwithpicto($langs->trans('QtyFrozen'), $langs->trans("QuantityConsumedInvariable")).''.$form->textwithpicto($langs->trans('DisableStockChange'), $langs->trans('DisableStockChangeHelp')).''.$form->textwithpicto($langs->trans('ManufacturingEfficiency'), $langs->trans('ValueOfMeansLoss')).'  
'; // Predefined product/service -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { - if (!empty($conf->global->BOM_SUB_BOM)) { +if (isModEnabled("product") || isModEnabled("service")) { + if ($filtertype == 1) { + print $langs->trans("Service"); + } elseif (!empty($conf->global->BOM_SUB_BOM)) { print $langs->trans("Product"); } echo ''; - $filtertype = 0; - if (!empty($object->element) && $object->element == 'contrat' && empty($conf->global->STOCK_SUPPORT_SERVICES)) { - $filtertype = -1; - } $statustoshow = -1; if (!empty($conf->global->ENTREPOT_EXTRA_STATUS)) { // hide products in closed warehouse, but show products for internal transfer - $form->select_produits(GETPOST('idprod', 'int'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod', 'int'), (($filtertype == 1) ? 'idprodservice' : 'idprod'), $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); } else { - $form->select_produits(GETPOST('idprod', 'int'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod', 'int'), (($filtertype == 1) ? 'idprodservice' : 'idprod'), $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); } echo ''; } -if (!empty($conf->global->BOM_SUB_BOM)) { +if (!empty($conf->global->BOM_SUB_BOM) && $filtertype!=1) { print '
'.$langs->trans("or").'
'.$langs->trans("BOM"); // TODO Add component to select a BOM $form->select_bom(); } + +if (is_object($objectline)) { + $temps = $objectline->showOptionals($extrafields, 'create', array(), '', '', 1, 'line'); + + if (!empty($temps)) { + print '
'; + print $temps; + print '
'; + } +} + print '
'; print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ' '; + print ''; + print $formproduct->selectMeasuringUnits("fk_unit", "time", $fk_unit_default, 0, 0); + print ''; + print ' '; + print ''; + print ' '; print ''; -print ''; + print ''; + print '
'; -print ''; -print ''; -print ''; -print ' '; -print ''; -print ''; -print '
'; + print ''; + print 'qty_frozen ? ' checked="checked"' : '')) . '>'; + print 'disable_stock_change ? ' checked="checked"' : '')) . '">'; + print ''; + print ''; + print ''; + print $formproduct->selectMeasuringUnits("fk_unit", "time", ($line->fk_unit) ? $line->fk_unit : '', 0, 0); + print ''; + print ''; print 'qty_frozen ? ' checked="checked"' : '')).'>'; -print 'disable_stock_change ? ' checked="checked"' : '')).'">'; -print ''; -print ''; -print ''; $coldisplay += $colspan; @@ -138,8 +170,4 @@ print '\n"; diff --git a/htdocs/bom/tpl/objectline_title.tpl.php b/htdocs/bom/tpl/objectline_title.tpl.php index dff3a38ccd2..0ede4190279 100644 --- a/htdocs/bom/tpl/objectline_title.tpl.php +++ b/htdocs/bom/tpl/objectline_title.tpl.php @@ -38,6 +38,10 @@ if (empty($object) || !is_object($object)) { print "Error, template page can't be called as URL"; exit; } + +global $filtertype; +if (empty($filtertype)) $filtertype = 0; + print "\n"; @@ -53,30 +57,42 @@ if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { // Product or sub-bom print ''.$langs->trans('Description'); -if (!empty($conf->global->BOM_SUB_BOM)) { +if (!empty($conf->global->BOM_SUB_BOM) && $filtertype != 1) { print '   '.img_picto('', 'folder-open', 'class="paddingright"').$langs->trans("ExpandAll").'  '; print ''.img_picto('', 'folder', 'class="paddingright"').$langs->trans("UndoExpandAll").' '; } print ''.$form->textwithpicto($langs->trans('Qty'), $langs->trans("QtyRequiredIfNoLoss")).''.$form->textwithpicto($langs->trans('Qty'), ($filtertype != 1) ? $langs->trans("QtyRequiredIfNoLoss") : '').''.$langs->trans('Unit').'' . $langs->trans('Unit') . '' . $form->textwithpicto($langs->trans('QtyFrozen'), $langs->trans("QuantityConsumedInvariable")) . '' . $form->textwithpicto($langs->trans('DisableStockChange'), $langs->trans('DisableStockChangeHelp')) . '' . $form->textwithpicto($langs->trans('ManufacturingEfficiency'), $langs->trans('ValueOfMeansLoss')) . ''.$form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCost")).'' . $form->textwithpicto($langs->trans('Unit'), '').'' . $form->textwithpicto($langs->trans('DefaultWorkstation'), '') . ''.$form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCostService")).''.$form->textwithpicto($langs->trans('QtyFrozen'), $langs->trans("QuantityConsumedInvariable")).''.$form->textwithpicto($langs->trans('DisableStockChange'), $langs->trans('DisableStockChangeHelp')).''.$form->textwithpicto($langs->trans('ManufacturingEfficiency'), $langs->trans('ValueOfMeansLoss')).''.$form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCost")).''; @@ -100,29 +118,54 @@ $coldisplay++; echo price($line->qty, 0, '', 0, 0); // Yes, it is a quantity, not a price, but we just want the formating role of function price print ''; - $label = $tmpproduct->getLabelOfUnit('long'); - if ($label !== '') { - print $langs->trans($label); +if ($filtertype != 1) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { + print ''; + $label = $tmpproduct->getLabelOfUnit('long'); + if ($label !== '') { + print $langs->trans($label); + } + print ''; + $coldisplay++; + echo $line->qty_frozen ? yn($line->qty_frozen) : ''; print ''; + $coldisplay++; + echo $line->disable_stock_change ? yn($line->disable_stock_change) : ''; // Yes, it is a quantity, not a price, but we just want the formating role of function price + print ''; + $coldisplay++; + echo $line->efficiency; + print ''; + $coldisplay++; + + if (!empty($line->fk_unit)) { + require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; + $unit = new CUnits($this->db); + $unit->fetch($line->fk_unit); + print (isset($unit->label) ? " ".$langs->trans(ucwords($unit->label))." " : ''); + } + + print ''; + $coldisplay++; + if ($res > 0) echo $workstation->getNomUrl(); + print ''; -$coldisplay++; -echo $line->qty_frozen ? yn($line->qty_frozen) : ''; -print ''; -$coldisplay++; -echo $line->disable_stock_change ? yn($line->disable_stock_change) : ''; // Yes, it is a quantity, not a price, but we just want the formating role of function price -print ''; -$coldisplay++; -echo $line->efficiency; -print ''; $coldisplay++; @@ -277,10 +320,4 @@ if ($total_cost > 0) { showOptionals($extrafields, 'view', array('style'=>'class="drag drop oddeven"', 'colspan'=>$coldisplay), '', '', 1, 'line'); -} - print "\n"; diff --git a/htdocs/bookcal/COPYING b/htdocs/bookcal/COPYING new file mode 100644 index 00000000000..94a04532226 --- /dev/null +++ b/htdocs/bookcal/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/htdocs/bookcal/ChangeLog.md b/htdocs/bookcal/ChangeLog.md new file mode 100644 index 00000000000..992a3d0842c --- /dev/null +++ b/htdocs/bookcal/ChangeLog.md @@ -0,0 +1,5 @@ +# CHANGELOG BOOKCAL FOR [DOLIBARR ERP CRM](https://www.dolibarr.org) + +## 1.0 + +Initial version diff --git a/htdocs/bookcal/README.md b/htdocs/bookcal/README.md new file mode 100644 index 00000000000..73f2f616938 --- /dev/null +++ b/htdocs/bookcal/README.md @@ -0,0 +1,86 @@ +# BOOKCAL FOR [DOLIBARR ERP CRM](https://www.dolibarr.org) + +## Features + +Description of the module... + + + +Other external modules are available on [Dolistore.com](https://www.dolistore.com). + +## Translations + +Translations can be completed manually by editing files into directories *langs*. + + + + + +## Licenses + +### Main code + +GPLv3 or (at your option) any later version. See file COPYING for more information. + +### Documentation + +All texts and readmes are licensed under GFDL. diff --git a/htdocs/bookcal/admin/about.php b/htdocs/bookcal/admin/about.php new file mode 100644 index 00000000000..2ff4e874450 --- /dev/null +++ b/htdocs/bookcal/admin/about.php @@ -0,0 +1,80 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file bookcal/admin/about.php + * \ingroup bookcal + * \brief About page of module BookCal. + */ + +// Load Dolibarr environment +require '../../main.inc.php'; + +// Libraries +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once '../lib/bookcal.lib.php'; + +// Translations +$langs->loadLangs(array("errors", "admin", "bookcal@bookcal")); + +// Access control +if (!$user->admin) { + accessforbidden(); +} + +// Parameters +$action = GETPOST('action', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + + +/* + * Actions + */ + +// None + + +/* + * View + */ + +$form = new Form($db); + +$help_url = ''; +$page_name = "BookCalAbout"; + +llxHeader('', $langs->trans($page_name), $help_url); + +// Subheader +$linkback = ''.$langs->trans("BackToModuleList").''; + +print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); + +// Configuration header +$head = bookcalAdminPrepareHead(); +print dol_get_fiche_head($head, 'about', $langs->trans($page_name), 0, 'bookcal@bookcal'); + +dol_include_once('/bookcal/core/modules/modBookCal.class.php'); +$tmpmodule = new modBookCal($db); +print $tmpmodule->getDescLong(); + +// Page end +print dol_get_fiche_end(); +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/admin/availabilities_extrafields.php b/htdocs/bookcal/admin/availabilities_extrafields.php new file mode 100644 index 00000000000..ba7dca39570 --- /dev/null +++ b/htdocs/bookcal/admin/availabilities_extrafields.php @@ -0,0 +1,120 @@ + + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2015 Jean-François Ferry + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file admin/availabilities_extrafields.php + * \ingroup bookcal + * \brief Page to setup extra fields of availabilities + */ + +// Load Dolibarr environment +require '../../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once '../lib/bookcal.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array('bookcal@bookcal', 'admin')); + +$extrafields = new ExtraFields($db); +$form = new Form($db); + +// List of supported format +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) { + $type2label[$key] = $langs->transnoentitiesnoconv($val); +} + +$action = GETPOST('action', 'aZ09'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'bookcal_availabilities'; //Must be the $table_element of the class that manage extrafield + +if (!$user->admin) { + accessforbidden(); +} + + +/* + * Actions + */ + +require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; + + + +/* + * View + */ + +$textobject = $langs->transnoentitiesnoconv("Availabilities"); + +$help_url = ''; +$page_name = "BookCalSetup"; + +llxHeader('', $langs->trans("BookCalSetup"), $help_url); + + +$linkback = ''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); + + +$head = bookcalAdminPrepareHead(); + +print dol_get_fiche_head($head, 'availabilities_extrafields', $langs->trans($page_name), -1, 'bookcal@bookcal'); + +require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; + +print dol_get_fiche_end(); + + +// Buttons +if ($action != 'create' && $action != 'edit') { + print '
'; + print ''.$langs->trans("NewAttribute").''; + print "
"; +} + + +/* + * Creation of an optional field + */ +if ($action == 'create') { + print '
'; + print load_fiche_titre($langs->trans('NewAttribute')); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php'; +} + +/* + * Edition of an optional field + */ +if ($action == 'edit' && !empty($attrname)) { + print "
"; + print load_fiche_titre($langs->trans("FieldEdition", $attrname)); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/admin/booking_extrafields.php b/htdocs/bookcal/admin/booking_extrafields.php new file mode 100644 index 00000000000..2e9163af158 --- /dev/null +++ b/htdocs/bookcal/admin/booking_extrafields.php @@ -0,0 +1,120 @@ + + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2015 Jean-François Ferry + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file admin/booking_extrafields.php + * \ingroup bookcal + * \brief Page to setup extra fields of booking + */ + +// Load Dolibarr environment +require '../../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once '../lib/bookcal.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array('bookcal@bookcal', 'admin')); + +$extrafields = new ExtraFields($db); +$form = new Form($db); + +// List of supported format +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) { + $type2label[$key] = $langs->transnoentitiesnoconv($val); +} + +$action = GETPOST('action', 'aZ09'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'bookcal_booking'; //Must be the $table_element of the class that manage extrafield + +if (!$user->admin) { + accessforbidden(); +} + + +/* + * Actions + */ + +require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; + + + +/* + * View + */ + +$textobject = $langs->transnoentitiesnoconv("Booking"); + +$help_url = ''; +$page_name = "BookCalSetup"; + +llxHeader('', $langs->trans("BookCalSetup"), $help_url); + + +$linkback = ''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); + + +$head = bookcalAdminPrepareHead(); + +print dol_get_fiche_head($head, 'booking_extrafields', $langs->trans($page_name), -1, 'bookcal@bookcal'); + +require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; + +print dol_get_fiche_end(); + + +// Buttons +if ($action != 'create' && $action != 'edit') { + print '
'; + print ''.$langs->trans("NewAttribute").''; + print "
"; +} + + +/* + * Creation of an optional field + */ +if ($action == 'create') { + print '
'; + print load_fiche_titre($langs->trans('NewAttribute')); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php'; +} + +/* + * Edition of an optional field + */ +if ($action == 'edit' && !empty($attrname)) { + print "
"; + print load_fiche_titre($langs->trans("FieldEdition", $attrname)); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/admin/setup.php b/htdocs/bookcal/admin/setup.php new file mode 100644 index 00000000000..9772ffbbbf0 --- /dev/null +++ b/htdocs/bookcal/admin/setup.php @@ -0,0 +1,562 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file bookcal/admin/setup.php + * \ingroup bookcal + * \brief BookCal setup page. + */ + +// Load Dolibarr environment +require '../../main.inc.php'; + +global $langs, $user; + +// Libraries +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; +require_once '../lib/bookcal.lib.php'; +//require_once "../class/myclass.class.php"; + +// Translations +$langs->loadLangs(array("admin", "bookcal@bookcal")); + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('bookcalsetup', 'globalsetup')); + +// Access control +if (!$user->admin) { + accessforbidden(); +} + +// Parameters +$action = GETPOST('action', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); +$modulepart = GETPOST('modulepart', 'aZ09'); // Used by actions_setmoduleoptions.inc.php + +$value = GETPOST('value', 'alpha'); +$label = GETPOST('label', 'alpha'); +$scandir = GETPOST('scan_dir', 'alpha'); +$type = 'myobject'; + + +$error = 0; +$setupnotempty = 0; + +// Set this to 1 to use the factory to manage constants. Warning, the generated module will be compatible with version v15+ only +$useFormSetup = 1; + +if (!class_exists('FormSetup')) { + // For retrocompatibility Dolibarr < 16.0 + if (floatval(DOL_VERSION) < 16.0 && !class_exists('FormSetup')) { + require_once __DIR__.'/../backport/v16/core/class/html.formsetup.class.php'; + } else { + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php'; + } +} + +$formSetup = new FormSetup($db); + + +// Hôte +$item = $formSetup->newItem('NO_PARAM_JUST_TEXT'); +$item->fieldOverride = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST']; +$item->cssClass = 'minwidth500'; + +// Setup conf BOOKCAL_MYPARAM1 as a simple string input +$item = $formSetup->newItem('BOOKCAL_MYPARAM1'); +$item->defaultFieldValue = 'default value'; + +// Setup conf BOOKCAL_MYPARAM1 as a simple textarea input but we replace the text of field title +$item = $formSetup->newItem('BOOKCAL_MYPARAM2'); +$item->nameText = $item->getNameText().' more html text '; + +// Setup conf BOOKCAL_MYPARAM3 +$item = $formSetup->newItem('BOOKCAL_MYPARAM3'); +$item->setAsThirdpartyType(); + +// Setup conf BOOKCAL_MYPARAM4 : exemple of quick define write style +$formSetup->newItem('BOOKCAL_MYPARAM4')->setAsYesNo(); + +// Setup conf BOOKCAL_MYPARAM5 +$formSetup->newItem('BOOKCAL_MYPARAM5')->setAsEmailTemplate('thirdparty'); + +// Setup conf BOOKCAL_MYPARAM6 +$formSetup->newItem('BOOKCAL_MYPARAM6')->setAsSecureKey()->enabled = 0; // disabled + +// Setup conf BOOKCAL_MYPARAM7 +$formSetup->newItem('BOOKCAL_MYPARAM7')->setAsProduct(); + +$formSetup->newItem('Title')->setAsTitle(); + +// Setup conf BOOKCAL_MYPARAM8 +$item = $formSetup->newItem('BOOKCAL_MYPARAM8'); +$TField = array( + 'test01' => $langs->trans('test01'), + 'test02' => $langs->trans('test02'), + 'test03' => $langs->trans('test03'), + 'test04' => $langs->trans('test04'), + 'test05' => $langs->trans('test05'), + 'test06' => $langs->trans('test06'), +); +$item->setAsMultiSelect($TField); +$item->helpText = $langs->transnoentities('BOOKCAL_MYPARAM8'); + + +// Setup conf BOOKCAL_MYPARAM9 +$formSetup->newItem('BOOKCAL_MYPARAM9')->setAsSelect($TField); + + +// Setup conf BOOKCAL_MYPARAM10 +$item = $formSetup->newItem('BOOKCAL_MYPARAM10'); +$item->setAsColor(); +$item->defaultFieldValue = '#FF0000'; +$item->nameText = $item->getNameText().' more html text '; +$item->fieldInputOverride = ''; +$item->helpText = $langs->transnoentities('AnHelpMessage'); +//$item->fieldValue = ''; +//$item->fieldAttr = array() ; // fields attribute only for compatible fields like input text +//$item->fieldOverride = false; // set this var to override field output will override $fieldInputOverride and $fieldOutputOverride too +//$item->fieldInputOverride = false; // set this var to override field input +//$item->fieldOutputOverride = false; // set this var to override field output + + +$setupnotempty =+ count($formSetup->items); + + +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + + +/* + * Actions + */ + +// For retrocompatibility Dolibarr < 15.0 +if ( versioncompare(explode('.', DOL_VERSION), array(15)) < 0 && $action == 'update' && !empty($user->admin)) { + $formSetup->saveConfFromPost(); +} + +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; + +if ($action == 'updateMask') { + $maskconst = GETPOST('maskconst', 'aZ09'); + $maskvalue = GETPOST('maskvalue', 'alpha'); + + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { + $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'errors'); + } +} elseif ($action == 'specimen') { + $modele = GETPOST('module', 'alpha'); + $tmpobjectkey = GETPOST('object'); + + $tmpobject = new $tmpobjectkey($db); + $tmpobject->initAsSpecimen(); + + // Search template files + $file = ''; $classname = ''; $filefound = 0; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { + $file = dol_buildpath($reldir."core/modules/bookcal/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0); + if (file_exists($file)) { + $filefound = 1; + $classname = "pdf_".$modele."_".strtolower($tmpobjectkey); + break; + } + } + + if ($filefound) { + require_once $file; + + $module = new $classname($db); + + if ($module->write_file($tmpobject, $langs) > 0) { + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=bookcal-".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf"); + return; + } else { + setEventMessages($module->error, null, 'errors'); + dol_syslog($module->error, LOG_ERR); + } + } else { + setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors'); + dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); + } +} elseif ($action == 'setmod') { + // TODO Check if numbering module chosen can be activated by calling method canBeActivated + $tmpobjectkey = GETPOST('object'); + if (!empty($tmpobjectkey)) { + $constforval = 'BOOKCAL_'.strtoupper($tmpobjectkey)."_ADDON"; + dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity); + } +} elseif ($action == 'set') { + // Activate a model + $ret = addDocumentModel($value, $type, $label, $scandir); +} elseif ($action == 'del') { + $ret = delDocumentModel($value, $type); + if ($ret > 0) { + $tmpobjectkey = GETPOST('object'); + if (!empty($tmpobjectkey)) { + $constforval = 'BOOKCAL_'.strtoupper($tmpobjectkey).'_ADDON_PDF'; + if ($conf->global->$constforval == "$value") { + dolibarr_del_const($db, $constforval, $conf->entity); + } + } + } +} elseif ($action == 'setdoc') { + // Set or unset default model + $tmpobjectkey = GETPOST('object'); + if (!empty($tmpobjectkey)) { + $constforval = 'BOOKCAL_'.strtoupper($tmpobjectkey).'_ADDON_PDF'; + if (dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity)) { + // The constant that was read before the new set + // We therefore requires a variable to have a coherent view + $conf->global->$constforval = $value; + } + + // We disable/enable the document template (into llx_document_model table) + $ret = delDocumentModel($value, $type); + if ($ret > 0) { + $ret = addDocumentModel($value, $type, $label, $scandir); + } + } +} elseif ($action == 'unsetdoc') { + $tmpobjectkey = GETPOST('object'); + if (!empty($tmpobjectkey)) { + $constforval = 'BOOKCAL_'.strtoupper($tmpobjectkey).'_ADDON_PDF'; + dolibarr_del_const($db, $constforval, $conf->entity); + } +} + + + +/* + * View + */ + +$form = new Form($db); + +$help_url = ''; +$page_name = "BookCalSetup"; + +llxHeader('', $langs->trans($page_name), $help_url); + +// Subheader +$linkback = ''.$langs->trans("BackToModuleList").''; + +print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); + +// Configuration header +$head = bookcalAdminPrepareHead(); +print dol_get_fiche_head($head, 'settings', $langs->trans($page_name), -1, "bookcal@bookcal"); + +// Setup page goes here +echo ''.$langs->trans("BookCalSetupPage").'

'; + + +if ($action == 'edit') { + print $formSetup->generateOutput(true); + print '
'; +} elseif (!empty($formSetup->items)) { + print $formSetup->generateOutput(); + print '
'; + print ''.$langs->trans("Modify").''; + print '
'; +} else { + print '
'.$langs->trans("NothingToSetup"); +} + + +$moduledir = 'bookcal'; +$myTmpObjects = array(); +$myTmpObjects['MyObject'] = array('includerefgeneration'=>0, 'includedocgeneration'=>0); + + +foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { + if ($myTmpObjectKey == 'MyObject') { + continue; + } + if ($myTmpObjectArray['includerefgeneration']) { + /* + * Orders Numbering model + */ + $setupnotempty++; + + print load_fiche_titre($langs->trans("NumberingModules", $myTmpObjectKey), '', ''); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''."\n"; + + clearstatcache(); + + foreach ($dirmodels as $reldir) { + $dir = dol_buildpath($reldir."core/modules/".$moduledir); + + if (is_dir($dir)) { + $handle = opendir($dir); + if (is_resource($handle)) { + while (($file = readdir($handle)) !== false) { + if (strpos($file, 'mod_'.strtolower($myTmpObjectKey).'_') === 0 && substr($file, dol_strlen($file) - 3, 3) == 'php') { + $file = substr($file, 0, dol_strlen($file) - 4); + + require_once $dir.'/'.$file.'.php'; + + $module = new $file($db); + + // Show modules according to features level + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { + continue; + } + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) { + continue; + } + + if ($module->isEnabled()) { + dol_include_once('/'.$moduledir.'/class/'.strtolower($myTmpObjectKey).'.class.php'); + + print ''; + + // Show example of numbering model + print ''."\n"; + + print ''; + + $mytmpinstance = new $myTmpObjectKey($db); + $mytmpinstance->initAsSpecimen(); + + // Info + $htmltooltip = ''; + $htmltooltip .= ''.$langs->trans("Version").': '.$module->getVersion().'
'; + + $nextval = $module->getNextValue($mytmpinstance); + if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval + $htmltooltip .= ''.$langs->trans("NextValue").': '; + if ($nextval) { + if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') { + $nextval = $langs->trans($nextval); + } + $htmltooltip .= $nextval.'
'; + } else { + $htmltooltip .= $langs->trans($module->error).'
'; + } + } + + print ''; + + print "\n"; + } + } + } + closedir($handle); + } + } + } + print "
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Example").''.$langs->trans("Status").''.$langs->trans("ShortInfo").'
'.$module->name."\n"; + print $module->info(); + print ''; + $tmp = $module->getExample(); + if (preg_match('/^Error/', $tmp)) { + $langs->load("errors"); + print '
'.$langs->trans($tmp).'
'; + } elseif ($tmp == 'NotConfigured') { + print $langs->trans($tmp); + } else { + print $tmp; + } + print '
'; + $constforvar = 'BOOKCAL_'.strtoupper($myTmpObjectKey).'_ADDON'; + if (getDolGlobalString($constforvar) == $file) { + print img_picto($langs->trans("Activated"), 'switch_on'); + } else { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + } + print ''; + print $form->textwithpicto('', $htmltooltip, 1, 0); + print '

\n"; + } + + if ($myTmpObjectArray['includedocgeneration']) { + /* + * Document templates generators + */ + $setupnotempty++; + $type = strtolower($myTmpObjectKey); + + print load_fiche_titre($langs->trans("DocumentModules", $myTmpObjectKey), '', ''); + + // Load array def with activated templates + $def = array(); + $sql = "SELECT nom"; + $sql .= " FROM ".MAIN_DB_PREFIX."document_model"; + $sql .= " WHERE type = '".$db->escape($type)."'"; + $sql .= " AND entity = ".$conf->entity; + $resql = $db->query($sql); + if ($resql) { + $i = 0; + $num_rows = $db->num_rows($resql); + while ($i < $num_rows) { + $array = $db->fetch_array($resql); + array_push($def, $array[0]); + $i++; + } + } else { + dol_print_error($db); + } + + print "\n"; + print "\n"; + print ''; + print ''; + print '\n"; + print '\n"; + print ''; + print ''; + print "\n"; + + clearstatcache(); + + foreach ($dirmodels as $reldir) { + foreach (array('', '/doc') as $valdir) { + $realpath = $reldir."core/modules/".$moduledir.$valdir; + $dir = dol_buildpath($realpath); + + if (is_dir($dir)) { + $handle = opendir($dir); + if (is_resource($handle)) { + while (($file = readdir($handle)) !== false) { + $filelist[] = $file; + } + closedir($handle); + arsort($filelist); + + foreach ($filelist as $file) { + if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { + if (file_exists($dir.'/'.$file)) { + $name = substr($file, 4, dol_strlen($file) - 16); + $classname = substr($file, 0, dol_strlen($file) - 12); + + require_once $dir.'/'.$file; + $module = new $classname($db); + + $modulequalified = 1; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { + $modulequalified = 0; + } + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) { + $modulequalified = 0; + } + + if ($modulequalified) { + print ''; + + // Active + if (in_array($name, $def)) { + print ''; + } else { + print '"; + } + + // Default + print ''; + + // Info + $htmltooltip = ''.$langs->trans("Name").': '.$module->name; + $htmltooltip .= '
'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown")); + if ($module->type == 'pdf') { + $htmltooltip .= '
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + } + $htmltooltip .= '
'.$langs->trans("Path").': '.preg_replace('/^\//', '', $realpath).'/'.$file; + + $htmltooltip .= '

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip .= '
'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1); + $htmltooltip .= '
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1); + + print ''; + + // Preview + print ''; + + print "\n"; + } + } + } + } + } + } + } + } + + print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Status")."'.$langs->trans("Default")."'.$langs->trans("ShortInfo").''.$langs->trans("Preview").'
'; + print (empty($module->name) ? $name : $module->name); + print "\n"; + if (method_exists($module, 'info')) { + print $module->info($langs); + } else { + print $module->description; + } + print ''."\n"; + print ''; + print img_picto($langs->trans("Enabled"), 'switch_on'); + print ''; + print ''."\n"; + print 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; + print "'; + $constforvar = 'BOOKCAL_'.strtoupper($myTmpObjectKey).'_ADDON'; + if (getDolGlobalString($constforvar) == $name) { + //print img_picto($langs->trans("Default"), 'on'); + // Even if choice is the default value, we allow to disable it. Replace this with previous line if you need to disable unset + print 'scandir).'&label='.urlencode($module->name).'&type='.urlencode($type).'" alt="'.$langs->trans("Disable").'">'.img_picto($langs->trans("Enabled"), 'on').''; + } else { + print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; + } + print ''; + print $form->textwithpicto('', $htmltooltip, 1, 0); + print ''; + if ($module->type == 'pdf') { + $newname = preg_replace('/_'.preg_quote(strtolower($myTmpObjectKey), '/').'/', '', $name); + print ''.img_object($langs->trans("Preview"), 'pdf').''; + } else { + print img_object($langs->trans("PreviewNotAvailable"), 'generic'); + } + print '
'; + } +} + +if (empty($setupnotempty)) { + print '
'.$langs->trans("NothingToSetup"); +} + +// Page end +print dol_get_fiche_end(); + +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/availabilities_agenda.php b/htdocs/bookcal/availabilities_agenda.php new file mode 100644 index 00000000000..0d34fa992c1 --- /dev/null +++ b/htdocs/bookcal/availabilities_agenda.php @@ -0,0 +1,266 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file availabilities_agenda.php + * \ingroup bookcal + * \brief Tab of events on Availabilities + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; + + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +if (GETPOST('actioncode', 'array')) { + $actioncode = GETPOST('actioncode', 'array', 3); + if (!count($actioncode)) { + $actioncode = '0'; + } +} else { + $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); +} +$search_agenda_label = GETPOST('search_agenda_label'); + +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortfield) { + $sortfield = 'a.datep,a.id'; +} +if (!$sortorder) { + $sortorder = 'DESC,DESC'; +} + +// Initialize technical objects +$object = new Availabilities($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('availabilitiesagenda', 'globalcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +if ($id > 0 || !empty($ref)) { + $upload_dir = $conf->bookcal->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; +} + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->availabilities->read; + $permissiontoadd = $user->rights->bookcal->availabilities->write; +} else { + $permissiontoread = 1; + $permissiontoadd = 1; +} + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +$parameters = array('id'=>$id); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Cancel + if (GETPOST('cancel', 'alpha') && !empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + $actioncode = ''; + $search_agenda_label = ''; + } +} + + + +/* + * View + */ + +$form = new Form($db); + +if ($object->id > 0) { + $title = $langs->trans("Agenda"); + //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + $help_url = 'EN:Module_Agenda_En'; + llxHeader('', $title, $help_url); + + if (!empty($conf->notification->enabled)) { + $langs->load("mails"); + } + $head = availabilitiesPrepareHead($object); + + + print dol_get_fiche_head($head, 'agenda', $langs->trans("Availabilities"), -1, $object->picto); + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) { + $langs->load("projects"); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) { + if ($action != 'classify') { + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + } + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.=''; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
'; + print '
'; + + $object->info($object->id); + dol_print_object_info($object, 1); + + print '
'; + + print dol_get_fiche_end(); + + + + // Actions buttons + + $objthirdparty = $object; + $objcon = new stdClass(); + + $out = '&origin='.urlencode($object->element.'@'.$object->module).'&originid='.urlencode($object->id); + $urlbacktopage = $_SERVER['PHP_SELF'].'?id='.$object->id; + $out .= '&backtopage='.urlencode($urlbacktopage); + $permok = $user->rights->agenda->myactions->create; + if ((!empty($objthirdparty->id) || !empty($objcon->id)) && $permok) { + //$out.='trans("AddAnAction"),'filenew'); + //$out.=""; + } + + + print '
'; + + if (isModEnabled('agenda')) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { + print ''.$langs->trans("AddAction").''; + } else { + print ''.$langs->trans("AddAction").''; + } + } + + print '
'; + + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + $param = '&id='.$object->id.(!empty($socid) ? '&socid='.$socid : ''); + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); + } + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); + } + + + //print load_fiche_titre($langs->trans("ActionsOnAvailabilities"), '', ''); + + // List of all actions + $filters = array(); + $filters['search_agenda_label'] = $search_agenda_label; + + // TODO Replace this with same code than into list.php + show_actions_done($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder, $object->module); + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/availabilities_card.php b/htdocs/bookcal/availabilities_card.php new file mode 100644 index 00000000000..fd3c310958b --- /dev/null +++ b/htdocs/bookcal/availabilities_card.php @@ -0,0 +1,577 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file availabilities_card.php + * \ingroup bookcal + * \brief Page to create/edit/view availabilities + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$lineid = GETPOST('lineid', 'int'); + +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : str_replace('_', '', basename(dirname(__FILE__)).basename(__FILE__, '.php')); // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); +$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); +$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09'); + +// Initialize technical objects +$object = new Availabilities($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('availabilitiescard', 'globalcard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Initialize array of search criterias +$search_all = GETPOST("search_all", 'alpha'); +$search = array(); +foreach ($object->fields as $key => $val) { + if (GETPOST('search_'.$key, 'alpha')) { + $search[$key] = GETPOST('search_'.$key, 'alpha'); + } +} + +if (empty($action) && empty($id) && empty($ref)) { + $action = 'view'; +} + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->availabilities->read; + $permissiontoadd = $user->rights->bookcal->availabilities->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php + $permissiontodelete = $user->rights->bookcal->availabilities->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); + $permissionnote = $user->rights->bookcal->availabilities->write; // Used by the include of actions_setnotes.inc.php + $permissiondellink = $user->rights->bookcal->availabilities->write; // Used by the include of actions_dellink.inc.php +} else { + $permissiontoread = 1; + $permissiontoadd = 1; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php + $permissiontodelete = 1; + $permissionnote = 1; + $permissiondellink = 1; +} + +$upload_dir = $conf->bookcal->multidir_output[isset($object->entity) ? $object->entity : 1].'/availabilities'; + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (isset($object->status) && ($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + $error = 0; + + $backurlforlist = dol_buildpath('/bookcal/availabilities_list.php', 1); + + if (empty($backtopage) || ($cancel && empty($id))) { + if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) { + if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) { + $backtopage = $backurlforlist; + } else { + $backtopage = dol_buildpath('/bookcal/availabilities_card.php', 1).'?id='.((!empty($id) && $id > 0) ? $id : '__ID__'); + } + } + } + + $triggermodname = 'BOOKCAL_AVAILABILITIES_MODIFY'; // Name of trigger action code to execute when we modify record + + // Actions cancel, add, update, update_extras, confirm_validate, confirm_delete, confirm_deleteline, confirm_clone, confirm_close, confirm_setdraft, confirm_reopen + include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; + + // Actions when linking object each other + include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; + + // Actions when printing a doc from card + include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php'; + + // Action to move up and down lines of object + //include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; + + // Action to build doc + include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; + + if ($action == 'set_thirdparty' && $permissiontoadd) { + $object->setValueFrom('fk_soc', GETPOST('fk_soc', 'int'), '', '', 'date', '', $user, $triggermodname); + } + if ($action == 'classin' && $permissiontoadd) { + $object->setProject(GETPOST('projectid', 'int')); + } + + // Actions to send emails + $triggersendname = 'BOOKCAL_AVAILABILITIES_SENTBYMAIL'; + $autocopy = 'MAIN_MAIL_AUTOCOPY_AVAILABILITIES_TO'; + $trackid = 'availabilities'.$object->id; + include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; +} + + + + +/* + * View + * + * Put here all code to build page + */ + +$form = new Form($db); +$formfile = new FormFile($db); +$formproject = new FormProjets($db); + +$title = $langs->trans("Availabilities"); +$help_url = ''; +llxHeader('', $title, $help_url); + +// Example : Adding jquery code +// print ''; + + +// Part to create +if ($action == 'create') { + if (empty($permissiontoadd)) { + accessforbidden($langs->trans('NotEnoughPermissions'), 0, 1); + exit; + } + + print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("Availabilities")), '', 'object_'.$object->picto); + + print '
'; + print ''; + print ''; + if ($backtopage) { + print ''; + } + if ($backtopageforcancel) { + print ''; + } + + print dol_get_fiche_head(array(), ''); + + // Set some default values + //if (! GETPOSTISSET('fieldname')) $_POST['fieldname'] = 'myvalue'; + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; + + print '
'."\n"; + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel("Create"); + + print '
'; + + //dol_set_focus('input[name="ref"]'); +} + +// Part to edit record +if (($id || $ref) && $action == 'edit') { + print load_fiche_titre($langs->trans("Availabilities"), '', 'object_'.$object->picto); + + print '
'; + print ''; + print ''; + print ''; + if ($backtopage) { + print ''; + } + if ($backtopageforcancel) { + print ''; + } + + print dol_get_fiche_head(); + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php'; + + print '
'; + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel(); + + print '
'; +} + +// Part to show record +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { + $res = $object->fetch_optionals(); + + $head = availabilitiesPrepareHead($object); + print dol_get_fiche_head($head, 'card', $langs->trans("Availabilities"), -1, $object->picto); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteAvailabilities'), $langs->trans('ConfirmDeleteObject'), 'confirm_delete', '', 0, 1); + } + // Confirmation to delete line + if ($action == 'deleteline') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); + } + + // Clone confirmation + if ($action == 'clone') { + // Create an array for form + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneAsk', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); + } + + if ($action == 'generate') { + print ' Link : '. DOL_DOCUMENT_ROOT.'/public/bookcal/booking.php?id='.$object->id . '' ; + } + + // Confirmation of action xxxx (You can use it for xxx = 'close', xxx = 'reopen', ...) + if ($action == 'xxx') { + $text = $langs->trans('ConfirmActionAvailabilities', $object->ref); + /*if (! empty($conf->notification->enabled)) + { + require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
'; + $text .= $notify->confirmMessage('AVAILABILITIES_CLOSE', $object->socid, $object); + }*/ + + $formquestion = array(); + /* + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + // array('type' => 'other', 'name' => 'idwarehouse', 'label' => $langs->trans("SelectWarehouseForStockDecrease"), 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, '', 0, $forcecombo)) + ); + */ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220); + } + + // Call Hook formConfirm + $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $formconfirm .= $hookmanager->resPrint; + } elseif ($reshook > 0) { + $formconfirm = $hookmanager->resPrint; + } + + // Print form confirm + print $formconfirm; + + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) { + $langs->load("projects"); + $morehtmlref .= '
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) { + //if ($action != 'classify') $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' '; + $morehtmlref .= ' : '; + if ($action == 'classify') { + //$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref .= '
'; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= '
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
'; + print '
'; + print '
'; + print ''."\n"; + + // Common attributes + //$keyforbreak='fieldkeytoswitchonsecondcolumn'; // We change column just before this field + //unset($object->fields['fk_project']); // Hide field already shown in banner + //unset($object->fields['fk_soc']); // Hide field already shown in banner + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; + + // Other attributes. Fields from hook formObjectOptions and Extrafields. + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; + + print '
'; + print '
'; + print '
'; + + print '
'; + + print dol_get_fiche_end(); + + + /* + * Lines + */ + + if (!empty($object->table_element_line)) { + // Show object lines + $result = $object->getLinesArray(); + + print '
+ + + + + + '; + + if (!empty($conf->use_javascript_ajax) && $object->status == 0) { + include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; + } + + print '
'; + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print ''; + } + + if (!empty($object->lines)) { + $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1); + } + + // Form to add new line + if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') { + if ($action != 'editline') { + // Add products/services form + + $parameters = array(); + $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + if (empty($reshook)) + $object->formAddObjectLine(1, $mysoc, $soc); + } + } + + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print '
'; + } + print '
'; + + print "
\n"; + } + + + // Buttons for actions + + if ($action != 'presend' && $action != 'editline') { + print '
'."\n"; + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + } + + if (empty($reshook)) { + // Send + if (empty($user->socid)) { + print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init&token='.newToken().'#formmailbeforetitle'); + } + + // Back to draft + if ($object->status == $object::STATUS_VALIDATED) { + print dolGetButtonAction($langs->trans('SetToDraft'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes&token='.newToken(), '', $permissiontoadd); + } + + print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd); + + // Validate + if ($object->status == $object::STATUS_DRAFT) { + if (empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) { + print dolGetButtonAction($langs->trans('Validate'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_validate&confirm=yes&token='.newToken(), '', $permissiontoadd); + } else { + $langs->load("errors"); + print dolGetButtonAction($langs->trans("ErrorAddAtLeastOneLineFirst"), $langs->trans("Validate"), 'default', '#', '', 0); + } + } + + // Clone + print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid)?'&socid='.$object->socid:'').'&action=clone&token='.newToken(), '', $permissiontoadd); + + // Generate link + print dolGetButtonAction($langs->trans('generateLink'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=generate', '', $permissiontoadd); + + /* + if ($permissiontoadd) { + if ($object->status == $object::STATUS_ENABLED) { + print dolGetButtonAction($langs->trans('Disable'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=disable&token='.newToken(), '', $permissiontoadd); + } else { + print dolGetButtonAction($langs->trans('Enable'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=enable&token='.newToken(), '', $permissiontoadd); + } + } + if ($permissiontoadd) { + if ($object->status == $object::STATUS_VALIDATED) { + print dolGetButtonAction($langs->trans('Cancel'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=close&token='.newToken(), '', $permissiontoadd); + } else { + print dolGetButtonAction($langs->trans('Re-Open'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=reopen&token='.newToken(), '', $permissiontoadd); + } + } + */ + + // Delete (need delete permission, or if draft, just need create/modify permission) + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=delete&token='.newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); + } + print '
'."\n"; + } + + + // Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + if ($action != 'presend') { + print '
'; + print ''; // ancre + + $includedocgeneration = 0; + + // Documents + if ($includedocgeneration) { + $objref = dol_sanitizeFileName($object->ref); + $relativepath = $objref.'/'.$objref.'.pdf'; + $filedir = $conf->bookcal->dir_output.'/'.$object->element.'/'.$objref; + $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id; + $genallowed = $permissiontoread; // If you can read, you can build the PDF to read content + $delallowed = $permissiontoadd; // If you can create/edit, you can remove a file on card + print $formfile->showdocuments('bookcal:Availabilities', $object->element.'/'.$objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang); + } + + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object, null, array('availabilities')); + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + + + print '
'; + + $MAXEVENT = 10; + + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', dol_buildpath('/bookcal/availabilities_agenda.php', 1).'?id='.$object->id); + + // List of actions on element + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + $formactions = new FormActions($db); + $somethingshown = $formactions->showactions($object, $object->element.'@'.$object->module, (is_object($object->thirdparty) ? $object->thirdparty->id : 0), 1, '', $MAXEVENT, '', $morehtmlcenter); + + print '
'; + } + + //Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + // Presend form + $modelmail = 'availabilities'; + $defaulttopic = 'InformationMessage'; + $diroutput = $conf->bookcal->dir_output; + $trackid = 'availabilities'.$object->id; + + include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/hrm/position_contact.php b/htdocs/bookcal/availabilities_contact.php similarity index 77% rename from htdocs/hrm/position_contact.php rename to htdocs/bookcal/availabilities_contact.php index a7246e3a82b..41508aaa46a 100644 --- a/htdocs/hrm/position_contact.php +++ b/htdocs/bookcal/availabilities_contact.php @@ -1,9 +1,6 @@ - * Copyright (C) 2021 Gauthier VERDOL - * Copyright (C) 2021 Greg Rastklan - * Copyright (C) 2021 Jean-Pascal BOUDET - * Copyright (C) 2021 Grégory BLEMAND + * Copyright (C) 2022 Alice Adminson * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,9 +17,9 @@ */ /** - * \file position_contact.php - * \ingroup hrm - * \brief Tab for contacts linked to Position + * \file availabilities_contact.php + * \ingroup bookcal + * \brief Tab for contacts linked to Availabilities */ // Load Dolibarr environment @@ -30,11 +27,11 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT . '/hrm/class/position.class.php'; -require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_position.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("hrm", "companies", "other", "mails")); +$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); $id = (GETPOST('id') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility $ref = GETPOST('ref', 'alpha'); @@ -43,25 +40,34 @@ $socid = GETPOST('socid', 'int'); $action = GETPOST('action', 'aZ09'); // Initialize technical objects -$object = new Position($db); +$object = new Availabilities($db); $extrafields = new ExtraFields($db); -$diroutputmassaction = $conf->hrm->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('positioncontact', 'globalcard')); // Note that conf->hooks_modules contains array +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('availabilitiescontact', 'globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals -$permission = $user->rights->hrm->position->write; +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->availabilities->read; + $permission = $user->rights->bookcal->availabilities->write; +} else { + $permissiontoread = 1; + $permission = 1; +} // Security check (enable the most restrictive one) //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); //restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -//if (empty($conf->hrm->enabled)) accessforbidden(); -//if (!$permissiontoread) accessforbidden(); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); /* @@ -104,7 +110,7 @@ if ($action == 'addcontact' && $permission) { * View */ -$title = $langs->trans('Position')." - ".$langs->trans('ContactsAddresses'); +$title = $langs->trans('Availabilities')." - ".$langs->trans('ContactsAddresses'); $help_url = ''; //$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); @@ -125,11 +131,11 @@ if ($object->id) { /* * Show tabs */ - $head = PositionCardPrepareHead($object); + $head = availabilitiesPrepareHead($object); - print dol_get_fiche_head($head, 'contact', '', -1, $object->picto); + print dol_get_fiche_head($head, 'contact', $langs->trans("Availabilities"), -1, $object->picto); - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
'; /* @@ -139,14 +145,14 @@ if ($object->id) { // Thirdparty $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (! empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
'.$langs->trans('Project') . ' '; if ($permissiontoadd) { if ($action != 'classify') - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; $morehtmlref.=' : '; if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); diff --git a/htdocs/bookcal/availabilities_document.php b/htdocs/bookcal/availabilities_document.php new file mode 100644 index 00000000000..e7335bff74c --- /dev/null +++ b/htdocs/bookcal/availabilities_document.php @@ -0,0 +1,212 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file availabilities_document.php + * \ingroup bookcal + * \brief Tab for documents linked to Availabilities + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); + + +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm'); +$id = (GETPOST('socid', 'int') ? GETPOST('socid', 'int') : GETPOST('id', 'int')); +$ref = GETPOST('ref', 'alpha'); + +// Get parameters +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortorder) { + $sortorder = "ASC"; +} +if (!$sortfield) { + $sortfield = "name"; +} +//if (! $sortfield) $sortfield="position_name"; + +// Initialize technical objects +$object = new Availabilities($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('availabilitiesdocument', 'globalcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals + +if ($id > 0 || !empty($ref)) { + $upload_dir = $conf->bookcal->multidir_output[$object->entity ? $object->entity : $conf->entity]."/availabilities/".get_exdir(0, 0, 0, 1, $object); +} + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->availabilities->read; + $permissiontoadd = $user->rights->bookcal->availabilities->write; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles.inc.php +} else { + $permissiontoread = 1; + $permissiontoadd = 1; +} + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; + + +/* + * View + */ + +$form = new Form($db); + +$title = $langs->trans("Availabilities").' - '.$langs->trans("Files"); +$help_url = ''; +//$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +llxHeader('', $title, $help_url); + +if ($object->id) { + /* + * Show tabs + */ + $head = availabilitiesPrepareHead($object); + + print dol_get_fiche_head($head, 'document', $langs->trans("Availabilities"), -1, $object->picto); + + + // Build file list + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { + $totalsize += $file['size']; + } + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) + { + if ($action != 'classify') + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
'; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
'; + + print '
'; + print ''; + + // Number of files + print ''; + + // Total size + print ''; + + print '
'.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
'; + + print '
'; + + print dol_get_fiche_end(); + + $modulepart = 'bookcal'; + //$permissiontoadd = $user->rights->bookcal->availabilities->write; + $permissiontoadd = 1; + //$permtoedit = $user->rights->bookcal->availabilities->write; + $permtoedit = 1; + $param = '&id='.$object->id; + + //$relativepathwithnofile='availabilities/' . dol_sanitizeFileName($object->id).'/'; + $relativepathwithnofile = 'availabilities/'.dol_sanitizeFileName($object->ref).'/'; + + include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; +} else { + accessforbidden('', 0, 1); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/availabilities_list.php b/htdocs/bookcal/availabilities_list.php new file mode 100644 index 00000000000..9af4b65a022 --- /dev/null +++ b/htdocs/bookcal/availabilities_list.php @@ -0,0 +1,795 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file availabilities_list.php + * \ingroup bookcal + * \brief List page for availabilities + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; + +// load bookcal libraries +require_once __DIR__.'/class/availabilities.class.php'; + +// for other modules +//dol_include_once('/othermodule/class/otherobject.class.php'); + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "other")); + +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); + +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) +$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : str_replace('_', '', basename(dirname(__FILE__)).basename(__FILE__, '.php')); // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$mode = GETPOST('mode', 'aZ'); + +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters + $page = 0; +} +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + +// Initialize technical objects +$object = new Availabilities($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('availabilitieslist')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); +//$extrafields->fetch_name_optionals_label($object->table_element_line); + +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Default sort order (if not yet defined by previous GETPOST) +if (!$sortfield) { + reset($object->fields); // Reset is required to avoid key() to return null. + $sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition. +} +if (!$sortorder) { + $sortorder = "ASC"; +} + +// Initialize array of search criterias +$search_all = GETPOST('search_all', 'alphanohtml'); +$search = array(); +foreach ($object->fields as $key => $val) { + if (GETPOST('search_'.$key, 'alpha') !== '') { + $search[$key] = GETPOST('search_'.$key, 'alpha'); + } + if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { + $search[$key.'_dtstart'] = dol_mktime(0, 0, 0, GETPOST('search_'.$key.'_dtstartmonth', 'int'), GETPOST('search_'.$key.'_dtstartday', 'int'), GETPOST('search_'.$key.'_dtstartyear', 'int')); + $search[$key.'_dtend'] = dol_mktime(23, 59, 59, GETPOST('search_'.$key.'_dtendmonth', 'int'), GETPOST('search_'.$key.'_dtendday', 'int'), GETPOST('search_'.$key.'_dtendyear', 'int')); + } +} + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array(); +foreach ($object->fields as $key => $val) { + if (!empty($val['searchall'])) { + $fieldstosearchall['t.'.$key] = $val['label']; + } +} + +// Definition of array of fields for columns +$arrayfields = array(); +foreach ($object->fields as $key => $val) { + // If $val['visible']==0, then we never show the field + if (!empty($val['visible'])) { + $visible = (int) dol_eval($val['visible'], 1); + $arrayfields['t.'.$key] = array( + 'label'=>$val['label'], + 'checked'=>(($visible < 0) ? 0 : 1), + 'enabled'=>(abs($visible) != 3 && dol_eval($val['enabled'], 1)), + 'position'=>$val['position'], + 'help'=> isset($val['help']) ? $val['help'] : '' + ); + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; + +$object->fields = dol_sort_array($object->fields, 'position'); +//$arrayfields['anotherfield'] = array('type'=>'integer', 'label'=>'AnotherField', 'checked'=>1, 'enabled'=>1, 'position'=>90, 'csslist'=>'right'); +$arrayfields = dol_sort_array($arrayfields, 'position'); + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->availabilities->read; + $permissiontoadd = $user->rights->bookcal->availabilities->write; + $permissiontodelete = $user->rights->bookcal->availabilities->delete; +} else { + $permissiontoread = 1; + $permissiontoadd = 1; + $permissiontodelete = 1; +} + +// Security check (enable the most restrictive one) +if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) accessforbidden(); +//$socid = 0; if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, 0, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden('Module not enabled'); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +if (GETPOST('cancel', 'alpha')) { + $action = 'list'; + $massaction = ''; +} +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { + $massaction = ''; +} + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + foreach ($object->fields as $key => $val) { + $search[$key] = ''; + if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { + $search[$key.'_dtstart'] = ''; + $search[$key.'_dtend'] = ''; + } + } + $toselect = array(); + $search_array_options = array(); + } + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') + || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) { + $massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass = 'Availabilities'; + $objectlabel = 'Availabilities'; + $uploaddir = $conf->bookcal->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + + + +/* + * View + */ + +$form = new Form($db); + +$now = dol_now(); + +//$help_url = "EN:Module_Availabilities|FR:Module_Availabilities_FR|ES:Módulo_Availabilities"; +$help_url = ''; +$title = $langs->trans("Availabilitiess"); +$morejs = array(); +$morecss = array(); + + +// Build and execute select +// -------------------------------------------------------------------- +$sql = 'SELECT '; +$sql .= $object->getFieldList('t'); +// Add fields from extrafields +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); + } +} +// Add fields from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= preg_replace('/^,/', '', $hookmanager->resPrint); +$sql = preg_replace('/,\s*$/', '', $sql); +//$sql .= ", COUNT(rc.rowid) as anotherfield"; +$sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; +//$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."anothertable as rc ON rc.parent = t.rowid"; +if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; +} +// Add table from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; +if ($object->ismultientitymanaged == 1) { + $sql .= " WHERE t.entity IN (".getEntity($object->element).")"; +} else { + $sql .= " WHERE 1 = 1"; +} +foreach ($search as $key => $val) { + if (array_key_exists($key, $object->fields)) { + if ($key == 'status' && $search[$key] == -1) { + continue; + } + $mode_search = (($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key])) ? 1 : 0); + if ((strpos($object->fields[$key]['type'], 'integer:') === 0) || (strpos($object->fields[$key]['type'], 'sellist:') === 0) || !empty($object->fields[$key]['arrayofkeyval'])) { + if ($search[$key] == '-1' || ($search[$key] === '0' && (empty($object->fields[$key]['arrayofkeyval']) || !array_key_exists('0', $object->fields[$key]['arrayofkeyval'])))) { + $search[$key] = ''; + } + $mode_search = 2; + } + if ($search[$key] != '') { + $sql .= natural_search("t.".$db->escape($key), $search[$key], (($key == 'status') ? 2 : $mode_search)); + } + } else { + if (preg_match('/(_dtstart|_dtend)$/', $key) && $search[$key] != '') { + $columnName = preg_replace('/(_dtstart|_dtend)$/', '', $key); + if (preg_match('/^(date|timestamp|datetime)/', $object->fields[$columnName]['type'])) { + if (preg_match('/_dtstart$/', $key)) { + $sql .= " AND t.".$db->escape($columnName)." >= '".$db->idate($search[$key])."'"; + } + if (preg_match('/_dtend$/', $key)) { + $sql .= " AND t.".$db->escape($columnName)." <= '".$db->idate($search[$key])."'"; + } + } + } + } +} +if ($search_all) { + $sql .= natural_search(array_keys($fieldstosearchall), $search_all); +} +//$sql.= dolSqlDateFilter("t.field", $search_xxxday, $search_xxxmonth, $search_xxxyear); +// Add where from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; +// Add where from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + +/* If a group by is required +$sql .= " GROUP BY "; +foreach($object->fields as $key => $val) { + $sql .= "t.".$db->escape($key).", "; +} +// Add fields from extrafields +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); + } +} +// Add where from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListGroupBy', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; +$sql = preg_replace('/,\s*$/', '', $sql); +*/ + +// Add HAVING from hooks +/* +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; +*/ + +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + /* This old and fast method to get and count full list returns all record so use a high amount of memory. + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + */ + /* The slow method does not consume memory on mysql (not tested on pgsql) */ + /*$resql = $db->query($sql, 0, 'auto', 1); + while ($db->fetch_object($resql)) { + if (empty($nbtotalofrecords)) { + $nbtotalofrecords = 1; // We can't make +1 because init value is '' + } else { + $nbtotalofrecords++; + } + }*/ + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + $page = 0; + $offset = 0; + } + $db->free($resql); +} + +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} + +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + + +// Direct jump if only one record found +if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) { + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".dol_buildpath('/bookcal/availabilities_card.php', 1).'?id='.$id); + exit; +} + + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); + +// Example : Adding jquery code +// print ''; + +$arrayofselected = is_array($toselect) ? $toselect : array(); + +$param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +foreach ($search as $key => $val) { + if (is_array($search[$key]) && count($search[$key])) { + foreach ($search[$key] as $skey) { + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } + } + } elseif ($search[$key] != '') { + $param .= '&search_'.$key.'='.urlencode($search[$key]); + } +} +if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); +} +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// Add $param from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook +$param .= $hookmanager->resPrint; + +// List of mass actions available +$arrayofmassactions = array( + //'validate'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate"), + //'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), + //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), + //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), +); +if (!empty($permissiontodelete)) { + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); + +print '
'."\n"; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + + +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitleSeparator(); +$newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/bookcal/availabilities_card.php', 1).'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permissiontoadd); + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); + +// Add code for pre mass action (confirmation or email presend form) +$topicmail = "SendAvailabilitiesRef"; +$modelmail = "availabilities"; +$objecttmp = new Availabilities($db); +$trackid = 'xxxx'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + +if ($search_all) { + $setupstring = ''; + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + $setupstring .= $key."=".$val.";"; + } + print ''."\n"; + print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; +} + +$moreforfilter = ''; +/*$moreforfilter.='
'; +$moreforfilter.= $langs->trans('MyFilter') . ': '; +$moreforfilter.= '
';*/ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; +} else { + $moreforfilter = $hookmanager->resPrint; +} + +if (!empty($moreforfilter)) { + print '
'; + print $moreforfilter; + print '
'; +} + +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields +$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); + +print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print ''."\n"; + + +// Fields title search +// -------------------------------------------------------------------- +print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} +foreach ($object->fields as $key => $val) { + $searchkey = empty($search[$key]) ? '' : $search[$key]; + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + if (!empty($arrayfields['t.'.$key]['checked'])) { + print ''; + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; + +// Fields from hook +$parameters = array('arrayfields'=>$arrayfields); +$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +/*if (!empty($arrayfields['anotherfield']['checked'])) { + print ''; +}*/ +// Action column +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} +print ''."\n"; + +$totalarray = array(); +$totalarray['nbfield'] = 0; + +// Fields title label +// -------------------------------------------------------------------- +print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} +foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + $cssforfield = preg_replace('/small\s*/', '', $cssforfield); // the 'small' css must not be used for the title label + if (!empty($arrayfields['t.'.$key]['checked'])) { + print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield ? 'class="'.$cssforfield.'"' : ''), $sortfield, $sortorder, ($cssforfield ? $cssforfield.' ' : ''))."\n"; + $totalarray['nbfield']++; + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +// Hook fields +$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder, 'totalarray'=>&$totalarray); +$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +/*if (!empty($arrayfields['anotherfield']['checked'])) { + print ''; + $totalarray['nbfield']++; +}*/ +// Action column +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} +$totalarray['nbfield']++; +print ''."\n"; + + +// Detect if we need a fetch on each output line +$needToFetchEachLine = 0; +if (isset($extrafields->attributes[$object->table_element]['computed']) && is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0) { + foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val) { + if (preg_match('/\$object/', $val)) { + $needToFetchEachLine++; // There is at least one compute field that use $object + } + } +} + + +// Loop on record +// -------------------------------------------------------------------- +$i = 0; +$savnbfield = $totalarray['nbfield']; +$totalarray = array(); +$totalarray['nbfield'] = 0; +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { + $obj = $db->fetch_object($resql); + if (empty($obj)) { + break; // Should not happen + } + + // Store properties in $object + $object->setVarsFromFetchObj($obj); + + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + // Show here line of result + $j = 0; + print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } + + if (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif ($key == 'ref') { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status')) && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + //if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100'; + + if (!empty($arrayfields['t.'.$key]['checked'])) { + print ''; + if ($key == 'status') { + print $object->getLibStatut(5); + } elseif ($key == 'rowid') { + print $object->showOutputField($val, $key, $object->id, ''); + } else { + print $object->showOutputField($val, $key, $object->$key, ''); + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + } + if (!isset($totalarray['val'])) { + $totalarray['val'] = array(); + } + if (!isset($totalarray['val']['t.'.$key])) { + $totalarray['val']['t.'.$key] = 0; + } + $totalarray['val']['t.'.$key] += $object->$key; + } + } + } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + /*if (!empty($arrayfields['anotherfield']['checked'])) { + print ''; + }*/ + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print ''."\n"; + } + + $i++; +} + +// Show total line +include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; +} + + +$db->free($resql); + +$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); +$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +print '
'; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { + print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); + } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) { + print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', $cssforfield.' maxwidth250', 1); + } elseif (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { + print '
'; + print $form->selectDate($search[$key.'_dtstart'] ? $search[$key.'_dtstart'] : '', "search_".$key."_dtstart", 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search[$key.'_dtend'] ? $search[$key.'_dtend'] : '', "search_".$key."_dtend", 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; + } elseif ($key == 'lang') { + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; + $formadmin = new FormAdmin($db); + print $formadmin->select_language($search[$key], 'search_lang', 0, null, 1, 0, 0, 'minwidth150 maxwidth200', 2); + } else { + print ''; + } + print '
'; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
'.$langs->trans("AnotherField").'
'; + print '
'; + } + // Output Kanban + print $object->getKanbanView(''); + if ($i == ($imaxinloop - 1)) { + print '
'; + print '
'; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''.$obj->anotherfield.''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'.$langs->trans("NoRecordFound").'
'."\n"; +print '
'."\n"; + +print '
'."\n"; + +if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) { + $hidegeneratedfilelistifempty = 1; + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { + $hidegeneratedfilelistifempty = 0; + } + + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + $formfile = new FormFile($db); + + // Show list of available documents + $urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource .= str_replace('&', '&', $param); + + $filedir = $diroutputmassaction; + $genallowed = $permissiontoread; + $delallowed = $permissiontoadd; + + print $formfile->showdocuments('massfilesarea_bookcal', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/availabilities_note.php b/htdocs/bookcal/availabilities_note.php new file mode 100644 index 00000000000..44ced158e03 --- /dev/null +++ b/htdocs/bookcal/availabilities_note.php @@ -0,0 +1,172 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file availabilities_note.php + * \ingroup bookcal + * \brief Tab for notes on Availabilities + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "companies")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +// Initialize technical objects +$object = new Availabilities($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('availabilitiesnote', 'globalcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +if ($id > 0 || !empty($ref)) { + $upload_dir = $conf->bookcal->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; +} + + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->availabilities->read; + $permissiontoadd = $user->rights->bookcal->availabilities->write; + $permissionnote = $user->rights->bookcal->availabilities->write; // Used by the include of actions_setnotes.inc.php +} else { + $permissiontoread = 1; + $permissiontoadd = 1; + $permissionnote = 1; +} + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} +if (empty($reshook)) { + include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once +} + + +/* + * View + */ + +$form = new Form($db); + +//$help_url='EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes'; +$help_url = ''; +$title = $langs->trans('Availabilities').' - '.$langs->trans("Notes"); +llxHeader('', $title, $help_url); + +if ($id > 0 || !empty($ref)) { + $object->fetch_thirdparty(); + + $head = availabilitiesPrepareHead($object); + + print dol_get_fiche_head($head, 'note', $langs->trans("Availabilities"), -1, $object->picto); + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) + { + if ($action != 'classify') + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
'; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
'; + print '
'; + + + $cssclass = "titlefield"; + include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; + + print '
'; + + print dol_get_fiche_end(); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/bookcalindex.php b/htdocs/bookcal/bookcalindex.php new file mode 100644 index 00000000000..6ec6ae6fb3e --- /dev/null +++ b/htdocs/bookcal/bookcalindex.php @@ -0,0 +1,199 @@ + + * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2015 Jean-François Ferry + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file bookcal/bookcalindex.php + * \ingroup bookcal + * \brief Home page of bookcal top menu + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal")); + +$action = GETPOST('action', 'aZ09'); + + +// Security check +// if (! $user->rights->bookcal->myobject->read) { +// accessforbidden(); +// } +$socid = GETPOST('socid', 'int'); +if (isset($user->socid) && $user->socid > 0) { + $action = ''; + $socid = $user->socid; +} + +$max = 5; +$now = dol_now(); + + +/* + * Actions + */ + +// None + + +/* + * View + */ + +$form = new Form($db); +$formfile = new FormFile($db); + +llxHeader("", $langs->trans("BookCalArea")); + +print load_fiche_titre($langs->trans("BookCalArea"), '', 'bookcal.png@bookcal'); + +print '
'; + + +// BEGIN MODULEBUILDER DRAFT MYOBJECT +// Draft MyObject +if ($user->rights->bookcal->availabilities->read && !empty($conf->bookcal->enabled)) { + $langs->load("orders"); + + $sql = "SELECT rowid, `ref`, fk_soc, fk_project, description, note_public, note_private, date_creation, tms, fk_user_creat, fk_user_modif, last_main_doc, import_key, model_pdf, status, firstname, lastname, email, `start`, duration"; + $sql .= " FROM ". MAIN_DB_PREFIX . 'bookcal_booking'; + + $resql = $db->query($sql); + if ($resql) { + $total = 0; + $num = $db->num_rows($resql); + + print ''; + print ''; + print ''; + + $var = true; + print ' + + + + + + + + + '; + if ($num > 0) { + $i = 0; + while ($i < $num) { + $obj = $db->fetch_object($resql); + print ''; + + $myobjectstatic->id=$obj->rowid; + $myobjectstatic->ref=$obj->ref; + $myobjectstatic->date = $obj->start; + $myobjectstatic->firstname = $obj->firstname; + $myobjectstatic->lastname = $obj->lastname; + $myobjectstatic->start = $obj->start; + $myobjectstatic->duration = $obj->duration; + $myobjectstatic->description = $obj->description; + + + print '"; + print '"; + print '"; + print '"; + print '"; + print '"; + $i++; + } + } else { + print ''; + } + print "
'.$langs->trans("Bookings").($num?''.$num.'':'').'
idrefnamedatehourdurationdescription
' . $myobjectstatic->id . "' . $myobjectstatic->ref . "' . $myobjectstatic->firstname . " " . $myobjectstatic->lastname . "' . $myobjectstatic->start . "' . $myobjectstatic->duration . "' . $myobjectstatic->description . "
'.$langs->trans("NoOrder").'

"; + + $db->free($resql); + } else { + dol_print_error($db); + } +} +//END MODULEBUILDER DRAFT MYOBJECT */ + + + +print '
'; + + +$NBMAX = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; +$max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; + +/* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT +// Last modified myobject +if (! empty($conf->bookcal->enabled)) +{ + $sql = "SELECT rowid, `ref`, fk_soc, fk_project, description, note_public, note_private, date_creation, tms, fk_user_creat, fk_user_modif, last_main_doc, import_key, model_pdf, status, firstname, lastname, email, `start`, duration"; + $sql .= " FROM ". MAIN_DB_PREFIX . 'bookcal_booking'; + print "here2"; + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; + + print ''; + print ''; + print ''; + print ''; + print ''; + print $num; + if ($num) + { + while ($i < $num) + { + $objp = $db->fetch_object($resql); + + $myobjectstatic->id=$objp->rowid; + $myobjectstatic->ref=$objp->ref; + $myobjectstatic->label=$objp->label; + $myobjectstatic->status = $objp->status; + + print ''; + print ''; + print '"; + print '"; + print ''; + $i++; + } + + $db->free($resql); + } else { + print ''; + } + print "
'; + print $langs->trans("BoxTitleLatestModifiedMyObjects", $max); + print ''.$langs->trans("DateModificationShort").'
'.$myobjectstatic->getNomUrl(1).''; + print "'.dol_print_date($db->jdate($objp->tms), 'day')."
'.$langs->trans("None").'

"; + } +} + +*/ +print '
'; + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/booking_agenda.php b/htdocs/bookcal/booking_agenda.php new file mode 100644 index 00000000000..a9163d7f70d --- /dev/null +++ b/htdocs/bookcal/booking_agenda.php @@ -0,0 +1,266 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file booking_agenda.php + * \ingroup bookcal + * \brief Tab of events on Booking + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; + + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +if (GETPOST('actioncode', 'array')) { + $actioncode = GETPOST('actioncode', 'array', 3); + if (!count($actioncode)) { + $actioncode = '0'; + } +} else { + $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); +} +$search_agenda_label = GETPOST('search_agenda_label'); + +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortfield) { + $sortfield = 'a.datep,a.id'; +} +if (!$sortorder) { + $sortorder = 'DESC,DESC'; +} + +// Initialize technical objects +$object = new Booking($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('bookingagenda', 'globalcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +if ($id > 0 || !empty($ref)) { + $upload_dir = $conf->bookcal->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; +} + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->booking->read; + $permissiontoadd = $user->rights->bookcal->booking->write; +} else { + $permissiontoread = 1; + $permissiontoadd = 1; +} + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +$parameters = array('id'=>$id); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Cancel + if (GETPOST('cancel', 'alpha') && !empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + $actioncode = ''; + $search_agenda_label = ''; + } +} + + + +/* + * View + */ + +$form = new Form($db); + +if ($object->id > 0) { + $title = $langs->trans("Agenda"); + //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + $help_url = 'EN:Module_Agenda_En'; + llxHeader('', $title, $help_url); + + if (!empty($conf->notification->enabled)) { + $langs->load("mails"); + } + $head = bookingPrepareHead($object); + + + print dol_get_fiche_head($head, 'agenda', $langs->trans("Booking"), -1, $object->picto); + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) { + $langs->load("projects"); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) { + if ($action != 'classify') { + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + } + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
'; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
'; + print '
'; + + $object->info($object->id); + dol_print_object_info($object, 1); + + print '
'; + + print dol_get_fiche_end(); + + + + // Actions buttons + + $objthirdparty = $object; + $objcon = new stdClass(); + + $out = '&origin='.urlencode($object->element.'@'.$object->module).'&originid='.urlencode($object->id); + $urlbacktopage = $_SERVER['PHP_SELF'].'?id='.$object->id; + $out .= '&backtopage='.urlencode($urlbacktopage); + $permok = $user->rights->agenda->myactions->create; + if ((!empty($objthirdparty->id) || !empty($objcon->id)) && $permok) { + //$out.='trans("AddAnAction"),'filenew'); + //$out.=""; + } + + + print '
'; + + if (isModEnabled('agenda')) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { + print ''.$langs->trans("AddAction").''; + } else { + print ''.$langs->trans("AddAction").''; + } + } + + print '
'; + + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + $param = '&id='.$object->id.(!empty($socid) ? '&socid='.$socid : ''); + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); + } + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); + } + + + //print load_fiche_titre($langs->trans("ActionsOnBooking"), '', ''); + + // List of all actions + $filters = array(); + $filters['search_agenda_label'] = $search_agenda_label; + + // TODO Replace this with same code than into list.php + show_actions_done($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder, $object->module); + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/booking_card.php b/htdocs/bookcal/booking_card.php new file mode 100644 index 00000000000..3f041f0d79d --- /dev/null +++ b/htdocs/bookcal/booking_card.php @@ -0,0 +1,570 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file booking_card.php + * \ingroup bookcal + * \brief Page to create/edit/view booking + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$lineid = GETPOST('lineid', 'int'); + +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : str_replace('_', '', basename(dirname(__FILE__)).basename(__FILE__, '.php')); // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); +$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); +$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09'); + +// Initialize technical objects +$object = new Booking($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('bookingcard', 'globalcard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Initialize array of search criterias +$search_all = GETPOST("search_all", 'alpha'); +$search = array(); +foreach ($object->fields as $key => $val) { + if (GETPOST('search_'.$key, 'alpha')) { + $search[$key] = GETPOST('search_'.$key, 'alpha'); + } +} + +if (empty($action) && empty($id) && empty($ref)) { + $action = 'view'; +} + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->booking->read; + $permissiontoadd = $user->rights->bookcal->booking->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php + $permissiontodelete = $user->rights->bookcal->booking->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); + $permissionnote = $user->rights->bookcal->booking->write; // Used by the include of actions_setnotes.inc.php + $permissiondellink = $user->rights->bookcal->booking->write; // Used by the include of actions_dellink.inc.php +} else { + $permissiontoread = 1; + $permissiontoadd = 1; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php + $permissiontodelete = 1; + $permissionnote = 1; + $permissiondellink = 1; +} + +$upload_dir = $conf->bookcal->multidir_output[isset($object->entity) ? $object->entity : 1].'/booking'; + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (isset($object->status) && ($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + $error = 0; + + $backurlforlist = dol_buildpath('/bookcal/booking_list.php', 1); + + if (empty($backtopage) || ($cancel && empty($id))) { + if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) { + if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) { + $backtopage = $backurlforlist; + } else { + $backtopage = dol_buildpath('/bookcal/booking_card.php', 1).'?id='.((!empty($id) && $id > 0) ? $id : '__ID__'); + } + } + } + + $triggermodname = 'BOOKCAL_BOOKING_MODIFY'; // Name of trigger action code to execute when we modify record + + // Actions cancel, add, update, update_extras, confirm_validate, confirm_delete, confirm_deleteline, confirm_clone, confirm_close, confirm_setdraft, confirm_reopen + include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; + + // Actions when linking object each other + include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; + + // Actions when printing a doc from card + include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php'; + + // Action to move up and down lines of object + //include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; + + // Action to build doc + include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; + + if ($action == 'set_thirdparty' && $permissiontoadd) { + $object->setValueFrom('fk_soc', GETPOST('fk_soc', 'int'), '', '', 'date', '', $user, $triggermodname); + } + if ($action == 'classin' && $permissiontoadd) { + $object->setProject(GETPOST('projectid', 'int')); + } + + // Actions to send emails + $triggersendname = 'BOOKCAL_BOOKING_SENTBYMAIL'; + $autocopy = 'MAIN_MAIL_AUTOCOPY_BOOKING_TO'; + $trackid = 'booking'.$object->id; + include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; +} + + + + +/* + * View + * + * Put here all code to build page + */ + +$form = new Form($db); +$formfile = new FormFile($db); +$formproject = new FormProjets($db); + +$title = $langs->trans("Booking"); +$help_url = ''; +llxHeader('', $title, $help_url); + +// Example : Adding jquery code +// print ''; + + +// Part to create +if ($action == 'create') { + if (empty($permissiontoadd)) { + accessforbidden($langs->trans('NotEnoughPermissions'), 0, 1); + exit; + } + + print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("Booking")), '', 'object_'.$object->picto); + + print '
'; + print ''; + print ''; + if ($backtopage) { + print ''; + } + if ($backtopageforcancel) { + print ''; + } + + print dol_get_fiche_head(array(), ''); + + // Set some default values + //if (! GETPOSTISSET('fieldname')) $_POST['fieldname'] = 'myvalue'; + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; + + print '
'."\n"; + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel("Create"); + + print '
'; + + //dol_set_focus('input[name="ref"]'); +} + +// Part to edit record +if (($id || $ref) && $action == 'edit') { + print load_fiche_titre($langs->trans("Booking"), '', 'object_'.$object->picto); + + print '
'; + print ''; + print ''; + print ''; + if ($backtopage) { + print ''; + } + if ($backtopageforcancel) { + print ''; + } + + print dol_get_fiche_head(); + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php'; + + print '
'; + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel(); + + print '
'; +} + +// Part to show record +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { + $res = $object->fetch_optionals(); + + $head = bookingPrepareHead($object); + print dol_get_fiche_head($head, 'card', $langs->trans("Booking"), -1, $object->picto); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBooking'), $langs->trans('ConfirmDeleteObject'), 'confirm_delete', '', 0, 1); + } + // Confirmation to delete line + if ($action == 'deleteline') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); + } + + // Clone confirmation + if ($action == 'clone') { + // Create an array for form + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneAsk', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); + } + + // Confirmation of action xxxx (You can use it for xxx = 'close', xxx = 'reopen', ...) + if ($action == 'xxx') { + $text = $langs->trans('ConfirmActionBooking', $object->ref); + /*if (! empty($conf->notification->enabled)) + { + require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
'; + $text .= $notify->confirmMessage('BOOKING_CLOSE', $object->socid, $object); + }*/ + + $formquestion = array(); + /* + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + // array('type' => 'other', 'name' => 'idwarehouse', 'label' => $langs->trans("SelectWarehouseForStockDecrease"), 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, '', 0, $forcecombo)) + ); + */ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220); + } + + // Call Hook formConfirm + $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $formconfirm .= $hookmanager->resPrint; + } elseif ($reshook > 0) { + $formconfirm = $hookmanager->resPrint; + } + + // Print form confirm + print $formconfirm; + + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) { + $langs->load("projects"); + $morehtmlref .= '
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) { + //if ($action != 'classify') $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' '; + $morehtmlref .= ' : '; + if ($action == 'classify') { + //$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref .= '
'; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= '
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
'; + print '
'; + print '
'; + print ''."\n"; + + // Common attributes + //$keyforbreak='fieldkeytoswitchonsecondcolumn'; // We change column just before this field + //unset($object->fields['fk_project']); // Hide field already shown in banner + //unset($object->fields['fk_soc']); // Hide field already shown in banner + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; + + // Other attributes. Fields from hook formObjectOptions and Extrafields. + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; + + print '
'; + print '
'; + print '
'; + + print '
'; + + print dol_get_fiche_end(); + + + /* + * Lines + */ + + if (!empty($object->table_element_line)) { + // Show object lines + $result = $object->getLinesArray(); + + print '
+ + + + + + '; + + if (!empty($conf->use_javascript_ajax) && $object->status == 0) { + include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; + } + + print '
'; + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print ''; + } + + if (!empty($object->lines)) { + $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1); + } + + // Form to add new line + if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') { + if ($action != 'editline') { + // Add products/services form + + $parameters = array(); + $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + if (empty($reshook)) + $object->formAddObjectLine(1, $mysoc, $soc); + } + } + + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { + print '
'; + } + print '
'; + + print "
\n"; + } + + + // Buttons for actions + + if ($action != 'presend' && $action != 'editline') { + print '
'."\n"; + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + } + + if (empty($reshook)) { + // Send + if (empty($user->socid)) { + print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init&token='.newToken().'#formmailbeforetitle'); + } + + // Back to draft + if ($object->status == $object::STATUS_VALIDATED) { + print dolGetButtonAction($langs->trans('SetToDraft'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes&token='.newToken(), '', $permissiontoadd); + } + + print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd); + + // Validate + if ($object->status == $object::STATUS_DRAFT) { + if (empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) { + print dolGetButtonAction($langs->trans('Validate'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_validate&confirm=yes&token='.newToken(), '', $permissiontoadd); + } else { + $langs->load("errors"); + print dolGetButtonAction($langs->trans("ErrorAddAtLeastOneLineFirst"), $langs->trans("Validate"), 'default', '#', '', 0); + } + } + + // Clone + print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid)?'&socid='.$object->socid:'').'&action=clone&token='.newToken(), '', $permissiontoadd); + + /* + if ($permissiontoadd) { + if ($object->status == $object::STATUS_ENABLED) { + print dolGetButtonAction($langs->trans('Disable'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=disable&token='.newToken(), '', $permissiontoadd); + } else { + print dolGetButtonAction($langs->trans('Enable'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=enable&token='.newToken(), '', $permissiontoadd); + } + } + if ($permissiontoadd) { + if ($object->status == $object::STATUS_VALIDATED) { + print dolGetButtonAction($langs->trans('Cancel'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=close&token='.newToken(), '', $permissiontoadd); + } else { + print dolGetButtonAction($langs->trans('Re-Open'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=reopen&token='.newToken(), '', $permissiontoadd); + } + } + */ + + // Delete (need delete permission, or if draft, just need create/modify permission) + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=delete&token='.newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); + } + print '
'."\n"; + } + + + // Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + if ($action != 'presend') { + print '
'; + print ''; // ancre + + $includedocgeneration = 0; + + // Documents + if ($includedocgeneration) { + $objref = dol_sanitizeFileName($object->ref); + $relativepath = $objref.'/'.$objref.'.pdf'; + $filedir = $conf->bookcal->dir_output.'/'.$object->element.'/'.$objref; + $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id; + $genallowed = $permissiontoread; // If you can read, you can build the PDF to read content + $delallowed = $permissiontoadd; // If you can create/edit, you can remove a file on card + print $formfile->showdocuments('bookcal:Booking', $object->element.'/'.$objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang); + } + + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object, null, array('booking')); + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + + + print '
'; + + $MAXEVENT = 10; + + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', dol_buildpath('/bookcal/booking_agenda.php', 1).'?id='.$object->id); + + // List of actions on element + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + $formactions = new FormActions($db); + $somethingshown = $formactions->showactions($object, $object->element.'@'.$object->module, (is_object($object->thirdparty) ? $object->thirdparty->id : 0), 1, '', $MAXEVENT, '', $morehtmlcenter); + + print '
'; + } + + //Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + // Presend form + $modelmail = 'booking'; + $defaulttopic = 'InformationMessage'; + $diroutput = $conf->bookcal->dir_output; + $trackid = 'booking'.$object->id; + + include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/hrm/skill_contact.php b/htdocs/bookcal/booking_contact.php similarity index 78% rename from htdocs/hrm/skill_contact.php rename to htdocs/bookcal/booking_contact.php index d8fecd74610..bb73368b770 100644 --- a/htdocs/hrm/skill_contact.php +++ b/htdocs/bookcal/booking_contact.php @@ -1,9 +1,6 @@ - * Copyright (C) 2021 Gauthier VERDOL - * Copyright (C) 2021 Greg Rastklan - * Copyright (C) 2021 Jean-Pascal BOUDET - * Copyright (C) 2021 Grégory BLEMAND + * Copyright (C) 2022 Alice Adminson * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,9 +17,9 @@ */ /** - * \file skill_contact.php - * \ingroup hrm - * \brief Tab for contacts linked to Skill + * \file booking_contact.php + * \ingroup bookcal + * \brief Tab for contacts linked to Booking */ // Load Dolibarr environment @@ -30,11 +27,11 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT . '/hrm/class/skill.class.php'; -require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_skill.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("hrm", "companies", "other", "mails")); +$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); $id = (GETPOST('id') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility $ref = GETPOST('ref', 'alpha'); @@ -43,25 +40,34 @@ $socid = GETPOST('socid', 'int'); $action = GETPOST('action', 'aZ09'); // Initialize technical objects -$object = new Skill($db); +$object = new Booking($db); $extrafields = new ExtraFields($db); -$diroutputmassaction = $conf->hrm->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('skillcontact', 'globalcard')); // Note that conf->hooks_modules contains array +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('bookingcontact', 'globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals -$permission = $user->rights->hrm->skill->write; +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->booking->read; + $permission = $user->rights->bookcal->booking->write; +} else { + $permissiontoread = 1; + $permission = 1; +} // Security check (enable the most restrictive one) //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); //restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -//if (empty($conf->hrm->enabled)) accessforbidden(); -//if (!$permissiontoread) accessforbidden(); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); /* @@ -104,7 +110,7 @@ if ($action == 'addcontact' && $permission) { * View */ -$title = $langs->trans('Skill')." - ".$langs->trans('ContactsAddresses'); +$title = $langs->trans('Booking')." - ".$langs->trans('ContactsAddresses'); $help_url = ''; //$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); @@ -125,11 +131,11 @@ if ($object->id) { /* * Show tabs */ - $head = skillPrepareHead($object); + $head = bookingPrepareHead($object); - print dol_get_fiche_head($head, 'contact', '', -1, $object->picto); + print dol_get_fiche_head($head, 'contact', $langs->trans("Booking"), -1, $object->picto); - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
'; /* @@ -139,14 +145,14 @@ if ($object->id) { // Thirdparty $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (! empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
'.$langs->trans('Project') . ' '; if ($permissiontoadd) { if ($action != 'classify') - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; $morehtmlref.=' : '; if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); diff --git a/htdocs/bookcal/booking_document.php b/htdocs/bookcal/booking_document.php new file mode 100644 index 00000000000..c102597e189 --- /dev/null +++ b/htdocs/bookcal/booking_document.php @@ -0,0 +1,212 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file booking_document.php + * \ingroup bookcal + * \brief Tab for documents linked to Booking + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); + + +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm'); +$id = (GETPOST('socid', 'int') ? GETPOST('socid', 'int') : GETPOST('id', 'int')); +$ref = GETPOST('ref', 'alpha'); + +// Get parameters +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortorder) { + $sortorder = "ASC"; +} +if (!$sortfield) { + $sortfield = "name"; +} +//if (! $sortfield) $sortfield="position_name"; + +// Initialize technical objects +$object = new Booking($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('bookingdocument', 'globalcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals + +if ($id > 0 || !empty($ref)) { + $upload_dir = $conf->bookcal->multidir_output[$object->entity ? $object->entity : $conf->entity]."/booking/".get_exdir(0, 0, 0, 1, $object); +} + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->booking->read; + $permissiontoadd = $user->rights->bookcal->booking->write; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles.inc.php +} else { + $permissiontoread = 1; + $permissiontoadd = 1; +} + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; + + +/* + * View + */ + +$form = new Form($db); + +$title = $langs->trans("Booking").' - '.$langs->trans("Files"); +$help_url = ''; +//$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +llxHeader('', $title, $help_url); + +if ($object->id) { + /* + * Show tabs + */ + $head = bookingPrepareHead($object); + + print dol_get_fiche_head($head, 'document', $langs->trans("Booking"), -1, $object->picto); + + + // Build file list + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { + $totalsize += $file['size']; + } + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) + { + if ($action != 'classify') + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
'; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
'; + + print '
'; + print ''; + + // Number of files + print ''; + + // Total size + print ''; + + print '
'.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
'; + + print '
'; + + print dol_get_fiche_end(); + + $modulepart = 'bookcal'; + //$permissiontoadd = $user->rights->bookcal->booking->write; + $permissiontoadd = 1; + //$permtoedit = $user->rights->bookcal->booking->write; + $permtoedit = 1; + $param = '&id='.$object->id; + + //$relativepathwithnofile='booking/' . dol_sanitizeFileName($object->id).'/'; + $relativepathwithnofile = 'booking/'.dol_sanitizeFileName($object->ref).'/'; + + include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; +} else { + accessforbidden('', 0, 1); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/booking_list.php b/htdocs/bookcal/booking_list.php new file mode 100644 index 00000000000..c7ebdd6f378 --- /dev/null +++ b/htdocs/bookcal/booking_list.php @@ -0,0 +1,795 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file booking_list.php + * \ingroup bookcal + * \brief List page for booking + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; + +// load bookcal libraries +require_once __DIR__.'/class/booking.class.php'; + +// for other modules +//dol_include_once('/othermodule/class/otherobject.class.php'); + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "other")); + +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); + +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) +$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : str_replace('_', '', basename(dirname(__FILE__)).basename(__FILE__, '.php')); // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$mode = GETPOST('mode', 'aZ'); + +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters + $page = 0; +} +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + +// Initialize technical objects +$object = new Booking($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('bookinglist')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); +//$extrafields->fetch_name_optionals_label($object->table_element_line); + +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Default sort order (if not yet defined by previous GETPOST) +if (!$sortfield) { + reset($object->fields); // Reset is required to avoid key() to return null. + $sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition. +} +if (!$sortorder) { + $sortorder = "ASC"; +} + +// Initialize array of search criterias +$search_all = GETPOST('search_all', 'alphanohtml'); +$search = array(); +foreach ($object->fields as $key => $val) { + if (GETPOST('search_'.$key, 'alpha') !== '') { + $search[$key] = GETPOST('search_'.$key, 'alpha'); + } + if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { + $search[$key.'_dtstart'] = dol_mktime(0, 0, 0, GETPOST('search_'.$key.'_dtstartmonth', 'int'), GETPOST('search_'.$key.'_dtstartday', 'int'), GETPOST('search_'.$key.'_dtstartyear', 'int')); + $search[$key.'_dtend'] = dol_mktime(23, 59, 59, GETPOST('search_'.$key.'_dtendmonth', 'int'), GETPOST('search_'.$key.'_dtendday', 'int'), GETPOST('search_'.$key.'_dtendyear', 'int')); + } +} + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array(); +foreach ($object->fields as $key => $val) { + if (!empty($val['searchall'])) { + $fieldstosearchall['t.'.$key] = $val['label']; + } +} + +// Definition of array of fields for columns +$arrayfields = array(); +foreach ($object->fields as $key => $val) { + // If $val['visible']==0, then we never show the field + if (!empty($val['visible'])) { + $visible = (int) dol_eval($val['visible'], 1); + $arrayfields['t.'.$key] = array( + 'label'=>$val['label'], + 'checked'=>(($visible < 0) ? 0 : 1), + 'enabled'=>(abs($visible) != 3 && dol_eval($val['enabled'], 1)), + 'position'=>$val['position'], + 'help'=> isset($val['help']) ? $val['help'] : '' + ); + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; + +$object->fields = dol_sort_array($object->fields, 'position'); +//$arrayfields['anotherfield'] = array('type'=>'integer', 'label'=>'AnotherField', 'checked'=>1, 'enabled'=>1, 'position'=>90, 'csslist'=>'right'); +$arrayfields = dol_sort_array($arrayfields, 'position'); + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->booking->read; + $permissiontoadd = $user->rights->bookcal->booking->write; + $permissiontodelete = $user->rights->bookcal->booking->delete; +} else { + $permissiontoread = 1; + $permissiontoadd = 1; + $permissiontodelete = 1; +} + +// Security check (enable the most restrictive one) +if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) accessforbidden(); +//$socid = 0; if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, 0, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden('Module not enabled'); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +if (GETPOST('cancel', 'alpha')) { + $action = 'list'; + $massaction = ''; +} +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { + $massaction = ''; +} + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + foreach ($object->fields as $key => $val) { + $search[$key] = ''; + if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { + $search[$key.'_dtstart'] = ''; + $search[$key.'_dtend'] = ''; + } + } + $toselect = array(); + $search_array_options = array(); + } + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') + || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) { + $massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass = 'Booking'; + $objectlabel = 'Booking'; + $uploaddir = $conf->bookcal->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + + + +/* + * View + */ + +$form = new Form($db); + +$now = dol_now(); + +//$help_url = "EN:Module_Booking|FR:Module_Booking_FR|ES:Módulo_Booking"; +$help_url = ''; +$title = $langs->trans("Bookings"); +$morejs = array(); +$morecss = array(); + + +// Build and execute select +// -------------------------------------------------------------------- +$sql = 'SELECT '; +$sql .= $object->getFieldList('t'); +// Add fields from extrafields +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); + } +} +// Add fields from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= preg_replace('/^,/', '', $hookmanager->resPrint); +$sql = preg_replace('/,\s*$/', '', $sql); +//$sql .= ", COUNT(rc.rowid) as anotherfield"; +$sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; +//$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."anothertable as rc ON rc.parent = t.rowid"; +if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; +} +// Add table from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; +if ($object->ismultientitymanaged == 1) { + $sql .= " WHERE t.entity IN (".getEntity($object->element).")"; +} else { + $sql .= " WHERE 1 = 1"; +} +foreach ($search as $key => $val) { + if (array_key_exists($key, $object->fields)) { + if ($key == 'status' && $search[$key] == -1) { + continue; + } + $mode_search = (($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key])) ? 1 : 0); + if ((strpos($object->fields[$key]['type'], 'integer:') === 0) || (strpos($object->fields[$key]['type'], 'sellist:') === 0) || !empty($object->fields[$key]['arrayofkeyval'])) { + if ($search[$key] == '-1' || ($search[$key] === '0' && (empty($object->fields[$key]['arrayofkeyval']) || !array_key_exists('0', $object->fields[$key]['arrayofkeyval'])))) { + $search[$key] = ''; + } + $mode_search = 2; + } + if ($search[$key] != '') { + $sql .= natural_search("t.".$db->escape($key), $search[$key], (($key == 'status') ? 2 : $mode_search)); + } + } else { + if (preg_match('/(_dtstart|_dtend)$/', $key) && $search[$key] != '') { + $columnName = preg_replace('/(_dtstart|_dtend)$/', '', $key); + if (preg_match('/^(date|timestamp|datetime)/', $object->fields[$columnName]['type'])) { + if (preg_match('/_dtstart$/', $key)) { + $sql .= " AND t.".$db->escape($columnName)." >= '".$db->idate($search[$key])."'"; + } + if (preg_match('/_dtend$/', $key)) { + $sql .= " AND t.".$db->escape($columnName)." <= '".$db->idate($search[$key])."'"; + } + } + } + } +} +if ($search_all) { + $sql .= natural_search(array_keys($fieldstosearchall), $search_all); +} +//$sql.= dolSqlDateFilter("t.field", $search_xxxday, $search_xxxmonth, $search_xxxyear); +// Add where from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; +// Add where from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + +/* If a group by is required +$sql .= " GROUP BY "; +foreach($object->fields as $key => $val) { + $sql .= "t.".$db->escape($key).", "; +} +// Add fields from extrafields +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); + } +} +// Add where from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListGroupBy', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; +$sql = preg_replace('/,\s*$/', '', $sql); +*/ + +// Add HAVING from hooks +/* +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; +*/ + +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + /* This old and fast method to get and count full list returns all record so use a high amount of memory. + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + */ + /* The slow method does not consume memory on mysql (not tested on pgsql) */ + /*$resql = $db->query($sql, 0, 'auto', 1); + while ($db->fetch_object($resql)) { + if (empty($nbtotalofrecords)) { + $nbtotalofrecords = 1; // We can't make +1 because init value is '' + } else { + $nbtotalofrecords++; + } + }*/ + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + $page = 0; + $offset = 0; + } + $db->free($resql); +} + +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} + +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + + +// Direct jump if only one record found +if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) { + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".dol_buildpath('/bookcal/booking_card.php', 1).'?id='.$id); + exit; +} + + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); + +// Example : Adding jquery code +// print ''; + +$arrayofselected = is_array($toselect) ? $toselect : array(); + +$param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +foreach ($search as $key => $val) { + if (is_array($search[$key]) && count($search[$key])) { + foreach ($search[$key] as $skey) { + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } + } + } elseif ($search[$key] != '') { + $param .= '&search_'.$key.'='.urlencode($search[$key]); + } +} +if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); +} +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// Add $param from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook +$param .= $hookmanager->resPrint; + +// List of mass actions available +$arrayofmassactions = array( + //'validate'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate"), + //'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), + //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), + //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), +); +if (!empty($permissiontodelete)) { + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); + +print '
'."\n"; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + + +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitleSeparator(); +$newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/bookcal/booking_card.php', 1).'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permissiontoadd); + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); + +// Add code for pre mass action (confirmation or email presend form) +$topicmail = "SendBookingRef"; +$modelmail = "booking"; +$objecttmp = new Booking($db); +$trackid = 'xxxx'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + +if ($search_all) { + $setupstring = ''; + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + $setupstring .= $key."=".$val.";"; + } + print ''."\n"; + print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; +} + +$moreforfilter = ''; +/*$moreforfilter.='
'; +$moreforfilter.= $langs->trans('MyFilter') . ': '; +$moreforfilter.= '
';*/ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; +} else { + $moreforfilter = $hookmanager->resPrint; +} + +if (!empty($moreforfilter)) { + print '
'; + print $moreforfilter; + print '
'; +} + +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields +$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); + +print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print ''."\n"; + + +// Fields title search +// -------------------------------------------------------------------- +print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} +foreach ($object->fields as $key => $val) { + $searchkey = empty($search[$key]) ? '' : $search[$key]; + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + if (!empty($arrayfields['t.'.$key]['checked'])) { + print ''; + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; + +// Fields from hook +$parameters = array('arrayfields'=>$arrayfields); +$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +/*if (!empty($arrayfields['anotherfield']['checked'])) { + print ''; +}*/ +// Action column +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} +print ''."\n"; + +$totalarray = array(); +$totalarray['nbfield'] = 0; + +// Fields title label +// -------------------------------------------------------------------- +print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} +foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + $cssforfield = preg_replace('/small\s*/', '', $cssforfield); // the 'small' css must not be used for the title label + if (!empty($arrayfields['t.'.$key]['checked'])) { + print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield ? 'class="'.$cssforfield.'"' : ''), $sortfield, $sortorder, ($cssforfield ? $cssforfield.' ' : ''))."\n"; + $totalarray['nbfield']++; + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +// Hook fields +$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder, 'totalarray'=>&$totalarray); +$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +/*if (!empty($arrayfields['anotherfield']['checked'])) { + print ''; + $totalarray['nbfield']++; +}*/ +// Action column +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} +$totalarray['nbfield']++; +print ''."\n"; + + +// Detect if we need a fetch on each output line +$needToFetchEachLine = 0; +if (isset($extrafields->attributes[$object->table_element]['computed']) && is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0) { + foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val) { + if (preg_match('/\$object/', $val)) { + $needToFetchEachLine++; // There is at least one compute field that use $object + } + } +} + + +// Loop on record +// -------------------------------------------------------------------- +$i = 0; +$savnbfield = $totalarray['nbfield']; +$totalarray = array(); +$totalarray['nbfield'] = 0; +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { + $obj = $db->fetch_object($resql); + if (empty($obj)) { + break; // Should not happen + } + + // Store properties in $object + $object->setVarsFromFetchObj($obj); + + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + // Show here line of result + $j = 0; + print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } + + if (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif ($key == 'ref') { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status')) && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + //if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100'; + + if (!empty($arrayfields['t.'.$key]['checked'])) { + print ''; + if ($key == 'status') { + print $object->getLibStatut(5); + } elseif ($key == 'rowid') { + print $object->showOutputField($val, $key, $object->id, ''); + } else { + print $object->showOutputField($val, $key, $object->$key, ''); + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + } + if (!isset($totalarray['val'])) { + $totalarray['val'] = array(); + } + if (!isset($totalarray['val']['t.'.$key])) { + $totalarray['val']['t.'.$key] = 0; + } + $totalarray['val']['t.'.$key] += $object->$key; + } + } + } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + /*if (!empty($arrayfields['anotherfield']['checked'])) { + print ''; + }*/ + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print ''."\n"; + } + + $i++; +} + +// Show total line +include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; +} + + +$db->free($resql); + +$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); +$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +print '
'; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { + print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); + } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) { + print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', $cssforfield.' maxwidth250', 1); + } elseif (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { + print '
'; + print $form->selectDate($search[$key.'_dtstart'] ? $search[$key.'_dtstart'] : '', "search_".$key."_dtstart", 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search[$key.'_dtend'] ? $search[$key.'_dtend'] : '', "search_".$key."_dtend", 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; + } elseif ($key == 'lang') { + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; + $formadmin = new FormAdmin($db); + print $formadmin->select_language($search[$key], 'search_lang', 0, null, 1, 0, 0, 'minwidth150 maxwidth200', 2); + } else { + print ''; + } + print '
'; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
'.$langs->trans("AnotherField").'
'; + print '
'; + } + // Output Kanban + print $object->getKanbanView(''); + if ($i == ($imaxinloop - 1)) { + print '
'; + print '
'; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''.$obj->anotherfield.''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'.$langs->trans("NoRecordFound").'
'."\n"; +print '
'."\n"; + +print '
'."\n"; + +if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) { + $hidegeneratedfilelistifempty = 1; + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { + $hidegeneratedfilelistifempty = 0; + } + + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + $formfile = new FormFile($db); + + // Show list of available documents + $urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource .= str_replace('&', '&', $param); + + $filedir = $diroutputmassaction; + $genallowed = $permissiontoread; + $delallowed = $permissiontoadd; + + print $formfile->showdocuments('massfilesarea_bookcal', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/booking_note.php b/htdocs/bookcal/booking_note.php new file mode 100644 index 00000000000..c8b2de4e6ff --- /dev/null +++ b/htdocs/bookcal/booking_note.php @@ -0,0 +1,172 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file booking_note.php + * \ingroup bookcal + * \brief Tab for notes on Booking + */ + +// Load Dolibarr environment +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("bookcal@bookcal", "companies")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +// Initialize technical objects +$object = new Booking($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->bookcal->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('bookingnote', 'globalcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +if ($id > 0 || !empty($ref)) { + $upload_dir = $conf->bookcal->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; +} + + +// There is several ways to check permission. +// Set $enablepermissioncheck to 1 to enable a minimum low level of checks +$enablepermissioncheck = 0; +if ($enablepermissioncheck) { + $permissiontoread = $user->rights->bookcal->booking->read; + $permissiontoadd = $user->rights->bookcal->booking->write; + $permissionnote = $user->rights->bookcal->booking->write; // Used by the include of actions_setnotes.inc.php +} else { + $permissiontoread = 1; + $permissiontoadd = 1; + $permissionnote = 1; +} + +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); +if (empty($conf->bookcal->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + +/* + * Actions + */ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} +if (empty($reshook)) { + include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once +} + + +/* + * View + */ + +$form = new Form($db); + +//$help_url='EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes'; +$help_url = ''; +$title = $langs->trans('Booking').' - '.$langs->trans("Notes"); +llxHeader('', $title, $help_url); + +if ($id > 0 || !empty($ref)) { + $object->fetch_thirdparty(); + + $head = bookingPrepareHead($object); + + print dol_get_fiche_head($head, 'note', $langs->trans("Booking"), -1, $object->picto); + + // Object card + // ------------------------------------------------------------ + $linkback = ''.$langs->trans("BackToList").''; + + $morehtmlref = '
'; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); + // Project + if (! empty($conf->project->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($permissiontoadd) + { + if ($action != 'classify') + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
'; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ': '.$proj->getNomUrl(); + } else { + $morehtmlref .= ''; + } + } + }*/ + $morehtmlref .= '
'; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
'; + print '
'; + + + $cssclass = "titlefield"; + include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; + + print '
'; + + print dol_get_fiche_end(); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/bookcal/class/availabilities.class.php b/htdocs/bookcal/class/availabilities.class.php new file mode 100644 index 00000000000..3ccc4542670 --- /dev/null +++ b/htdocs/bookcal/class/availabilities.class.php @@ -0,0 +1,1089 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file class/availabilities.class.php + * \ingroup bookcal + * \brief This file is a CRUD class file for Availabilities (Create/Read/Update/Delete) + */ + +// Put here all includes required by your class file +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; +//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; +//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; + +/** + * Class for Availabilities + */ +class Availabilities extends CommonObject +{ + /** + * @var string ID of module. + */ + public $module = 'bookcal'; + + /** + * @var string ID to identify managed object. + */ + public $element = 'availabilities'; + + /** + * @var string Name of table without prefix where object is stored. This is also the key used for extrafields management. + */ + public $table_element = 'bookcal_availabilities'; + + /** + * @var int Does this object support multicompany module ? + * 0=No test on entity, 1=Test with field entity, 'field@table'=Test with link by field@table + */ + public $ismultientitymanaged = 0; + + /** + * @var int Does object support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 1; + + /** + * @var string String with name of icon for availabilities. Must be a 'fa-xxx' fontawesome code (or 'fa-xxx_fa_color_size') or 'availabilities@bookcal' if picto is file 'img/object_availabilities.png'. + */ + public $picto = 'fa-file'; + + + const STATUS_DRAFT = 0; + const STATUS_VALIDATED = 1; + const STATUS_CANCELED = 9; + + + /** + * 'type' field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]', 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter[:Sortfield]]]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'text:none', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') + * Note: Filter can be a string like "(t.ref:like:'SO-%') or (t.date_creation:<:'20160101') or (t.nature:is:NULL)" + * 'label' the translation key. + * 'picto' is code of a picto to show before value in forms + * 'enabled' is a condition when the field must be managed (Example: 1 or '$conf->global->MY_SETUP_PARAM' or 'isModEnabled('multicurrency')' ...) + * 'position' is the sort order of field. + * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). + * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). 5=Visible on list and view only (not create/not update). Using a negative value means field is not shown by default on list but can be selected for viewing) + * 'noteditable' says if field is not editable (1 or 0) + * 'default' is a default value for creation (can still be overwrote by the Setup of Default Values if field is editable in creation form). Note: If default is set to '(PROV)' and field is 'ref', the default value will be set to '(PROVid)' where id is rowid when a new record is created. + * 'index' if we want an index in database. + * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). + * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. + * 'isameasure' must be set to 1 or 2 if field can be used for measure. Field type must be summable like integer or double(24,8). Use 1 in most cases, or 2 if you don't want to see the column total into list (for example for percentage) + * 'css' and 'cssview' and 'csslist' is the CSS style to use on field. 'css' is used in creation and update. 'cssview' is used in view mode. 'csslist' is used for columns in lists. For example: 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'cssview'=>'wordbreak', 'csslist'=>'tdoverflowmax200' + * 'help' is a 'TranslationString' to use to show a tooltip on field. You can also use 'TranslationString:keyfortooltiponlick' for a tooltip on click. + * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record + * 'disabled' is 1 if we want to have the field locked by a 'disabled' attribute. In most cases, this is never set into the definition of $fields into class, but is set dynamically by some part of code. + * 'arrayofkeyval' to set a list of values if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel"). Note that type can be 'integer' or 'varchar' + * 'autofocusoncreate' to have field having the focus on a create form. Only 1 field should have this property set to 1. + * 'comment' is not used. You can store here any text of your choice. It is not used by application. + * 'validate' is 1 if need to validate with $this->validateField() + * 'copytoclipboard' is 1 or 2 to allow to add a picto to copy value into clipboard (1=picto after label, 2=picto after value) + * + * Note: To have value dynamic, you can set value to 0 in definition and edit the value on the fly into the constructor. + */ + + // BEGIN MODULEBUILDER PROPERTIES + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields=array( + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), + 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>20, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'validate'=>'1', 'comment'=>"Reference of object"), + 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>0, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'cssview'=>'wordbreak', 'help'=>"Help text", 'showoncombobox'=>'2', 'validate'=>'1',), + 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3, 'validate'=>'1',), + 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>0, 'cssview'=>'wordbreak', 'validate'=>'1',), + 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>0, 'cssview'=>'wordbreak', 'validate'=>'1',), + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2,), + 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'picto'=>'user', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), + 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'picto'=>'user', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), + 'last_main_doc' => array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>'1', 'position'=>600, 'notnull'=>0, 'visible'=>0,), + 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), + 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), + 'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>'1', 'position'=>2000, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '9'=>'Canceled'), 'validate'=>'1',), + 'start' => array('type'=>'date', 'label'=>'Start Date', 'enabled'=>'1', 'position'=>40, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'isameasure'=>'1',), + 'end' => array('type'=>'date', 'label'=>'End Date', 'enabled'=>'1', 'position'=>45, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'isameasure'=>'1',), + 'type' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>'1', 'position'=>49, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Customer', '1'=>'Supplier', '2'=>'Else'),), + 'duration' => array('type'=>'integer', 'label'=>'Duration', 'enabled'=>'1', 'position'=>47, 'notnull'=>1, 'visible'=>1, 'default'=>'30', 'isameasure'=>'1',), + 'startHour' => array('type'=>'integer', 'label'=>'Start Hour', 'enabled'=>'1', 'position'=>46, 'notnull'=>1, 'visible'=>-1,), + 'endHour' => array('type'=>'integer', 'label'=>'End Hour', 'enabled'=>'1', 'position'=>46.5, 'notnull'=>1, 'visible'=>-1,), + ); + public $rowid; + public $ref; + public $label; + public $description; + public $note_public; + public $note_private; + public $date_creation; + public $tms; + public $fk_user_creat; + public $fk_user_modif; + public $last_main_doc; + public $import_key; + public $model_pdf; + public $status; + public $start; + public $end; + public $type; + public $duration; + public $startHour; + public $endHour; + // END MODULEBUILDER PROPERTIES + + + // If this object has a subtable with lines + + // /** + // * @var string Name of subtable line + // */ + // public $table_element_line = 'bookcal_availabilitiesline'; + + // /** + // * @var string Field with ID of parent key if this object has a parent + // */ + // public $fk_element = 'fk_availabilities'; + + // /** + // * @var string Name of subtable class that manage subtable lines + // */ + // public $class_element_line = 'Availabilitiesline'; + + // /** + // * @var array List of child tables. To test if we can delete object. + // */ + // protected $childtables = array(); + + // /** + // * @var array List of child tables. To know object to delete on cascade. + // * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will + // * call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object + // */ + // protected $childtablesoncascade = array('bookcal_availabilitiesdet'); + + // /** + // * @var AvailabilitiesLine[] Array of subtable lines + // */ + // public $lines = array(); + + + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + global $conf, $langs; + + $this->db = $db; + + if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid']) && !empty($this->fields['ref'])) { + $this->fields['rowid']['visible'] = 0; + } + if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + $this->fields['entity']['enabled'] = 0; + } + + // Example to show how to set values of fields definition dynamically + /*if ($user->rights->bookcal->availabilities->read) { + $this->fields['myfield']['visible'] = 1; + $this->fields['myfield']['noteditable'] = 0; + }*/ + + // Unset fields that are disabled + foreach ($this->fields as $key => $val) { + if (isset($val['enabled']) && empty($val['enabled'])) { + unset($this->fields[$key]); + } + } + + // Translate some data of arrayofkeyval + if (is_object($langs)) { + foreach ($this->fields as $key => $val) { + if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { + foreach ($val['arrayofkeyval'] as $key2 => $val2) { + $this->fields[$key]['arrayofkeyval'][$key2] = $langs->trans($val2); + } + } + } + } + } + + /** + * Create object into database + * + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, Id of created object if OK + */ + public function create(User $user, $notrigger = false) + { + $resultcreate = $this->createCommon($user, $notrigger); + + //$resultvalidate = $this->validate($user, $notrigger); + + return $resultcreate; + } + + /** + * Clone an object into another one + * + * @param User $user User that creates + * @param int $fromid Id of object to clone + * @return mixed New object created, <0 if KO + */ + public function createFromClone(User $user, $fromid) + { + global $langs, $extrafields; + $error = 0; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $object = new self($this->db); + + $this->db->begin(); + + // Load source object + $result = $object->fetchCommon($fromid); + if ($result > 0 && !empty($object->table_element_line)) { + $object->fetchLines(); + } + + // get lines so they will be clone + //foreach($this->lines as $line) + // $line->fetch_optionals(); + + // Reset some properties + unset($object->id); + unset($object->fk_user_creat); + unset($object->import_key); + + // Clear fields + if (property_exists($object, 'ref')) { + $object->ref = empty($this->fields['ref']['default']) ? "Copy_Of_".$object->ref : $this->fields['ref']['default']; + } + if (property_exists($object, 'label')) { + $object->label = empty($this->fields['label']['default']) ? $langs->trans("CopyOf")." ".$object->label : $this->fields['label']['default']; + } + if (property_exists($object, 'status')) { + $object->status = self::STATUS_DRAFT; + } + if (property_exists($object, 'date_creation')) { + $object->date_creation = dol_now(); + } + if (property_exists($object, 'date_modification')) { + $object->date_modification = null; + } + // ... + // Clear extrafields that are unique + if (is_array($object->array_options) && count($object->array_options) > 0) { + $extrafields->fetch_name_optionals_label($this->table_element); + foreach ($object->array_options as $key => $option) { + $shortkey = preg_replace('/options_/', '', $key); + if (!empty($extrafields->attributes[$this->table_element]['unique'][$shortkey])) { + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; + unset($object->array_options[$key]); + } + } + } + + // Create clone + $object->context['createfromclone'] = 'createfromclone'; + $result = $object->createCommon($user); + if ($result < 0) { + $error++; + $this->error = $object->error; + $this->errors = $object->errors; + } + + if (!$error) { + // copy internal contacts + if ($this->copy_linked_contact($object, 'internal') < 0) { + $error++; + } + } + + if (!$error) { + // copy external contacts if same company + if (!empty($object->socid) && property_exists($this, 'fk_soc') && $this->fk_soc == $object->socid) { + if ($this->copy_linked_contact($object, 'external') < 0) { + $error++; + } + } + } + + unset($object->context['createfromclone']); + + // End + if (!$error) { + $this->db->commit(); + return $object; + } else { + $this->db->rollback(); + return -1; + } + } + + /** + * Load object in memory from the database + * + * @param int $id Id object + * @param string $ref Ref + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetch($id, $ref = null) + { + $result = $this->fetchCommon($id, $ref); + if ($result > 0 && !empty($this->table_element_line)) { + $this->fetchLines(); + } + return $result; + } + + /** + * Load object lines in memory from the database + * + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetchLines() + { + $this->lines = array(); + + $result = $this->fetchLinesCommon(); + return $result; + } + + + /** + * Load list of objects in memory from the database. + * + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit limit + * @param int $offset Offset + * @param array $filter Filter array. Example array('field'=>'valueforlike', 'customurl'=>...) + * @param string $filtermode Filter mode (AND or OR) + * @return array|int int <0 if KO, array of pages if OK + */ + public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') + { + global $conf; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $records = array(); + + $sql = "SELECT "; + $sql .= $this->getFieldList('t'); + $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; + if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) { + $sql .= " WHERE t.entity IN (".getEntity($this->element).")"; + } else { + $sql .= " WHERE 1 = 1"; + } + // Manage filter + $sqlwhere = array(); + if (count($filter) > 0) { + foreach ($filter as $key => $value) { + if ($key == 't.rowid') { + $sqlwhere[] = $key." = ".((int) $value); + } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { + $sqlwhere[] = $key." = '".$this->db->idate($value)."'"; + } elseif ($key == 'customsql') { + $sqlwhere[] = $value; + } elseif (strpos($value, '%') === false) { + $sqlwhere[] = $key." IN (".$this->db->sanitize($this->db->escape($value)).")"; + } else { + $sqlwhere[] = $key." LIKE '%".$this->db->escape($value)."%'"; + } + } + } + if (count($sqlwhere) > 0) { + $sql .= " AND (".implode(" ".$filtermode." ", $sqlwhere).")"; + } + + if (!empty($sortfield)) { + $sql .= $this->db->order($sortfield, $sortorder); + } + if (!empty($limit)) { + $sql .= $this->db->plimit($limit, $offset); + } + + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < ($limit ? min($limit, $num) : $num)) { + $obj = $this->db->fetch_object($resql); + + $record = new self($this->db); + $record->setVarsFromFetchObj($obj); + + $records[$record->id] = $record; + + $i++; + } + $this->db->free($resql); + + return $records; + } else { + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + + return -1; + } + } + + /** + * Update object into database + * + * @param User $user User that modifies + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function update(User $user, $notrigger = false) + { + return $this->updateCommon($user, $notrigger); + } + + /** + * Delete object in database + * + * @param User $user User that deletes + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function delete(User $user, $notrigger = false) + { + return $this->deleteCommon($user, $notrigger); + //return $this->deleteCommon($user, $notrigger, 1); + } + + /** + * Delete a line of object in database + * + * @param User $user User that delete + * @param int $idline Id of line to delete + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int >0 if OK, <0 if KO + */ + public function deleteLine(User $user, $idline, $notrigger = false) + { + if ($this->status < 0) { + $this->error = 'ErrorDeleteLineNotAllowedByObjectStatus'; + return -2; + } + + return $this->deleteLineCommon($user, $idline, $notrigger); + } + + + /** + * Validate object + * + * @param User $user User making status change + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return int <=0 if OK, 0=Nothing done, >0 if KO + */ + public function validate($user, $notrigger = 0) + { + global $conf, $langs; + + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + $error = 0; + + // Protection + if ($this->status == self::STATUS_VALIDATED) { + dol_syslog(get_class($this)."::validate action abandonned: already validated", LOG_WARNING); + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->availabilities->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->availabilities->availabilities_advance->validate)))) + { + $this->error='NotEnoughPermissions'; + dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); + return -1; + }*/ + + $now = dol_now(); + + $this->db->begin(); + + // Define new ref + if (!$error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) { // empty should not happened, but when it occurs, the test save life + $num = $this->getNextNumRef(); + } else { + $num = $this->ref; + } + $this->newref = $num; + + if (!empty($num)) { + // Validate + $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; + $sql .= " SET ref = '".$this->db->escape($num)."',"; + $sql .= " status = ".self::STATUS_VALIDATED; + if (!empty($this->fields['date_validation'])) { + $sql .= ", date_validation = '".$this->db->idate($now)."'"; + } + if (!empty($this->fields['fk_user_valid'])) { + $sql .= ", fk_user_valid = ".((int) $user->id); + } + $sql .= " WHERE rowid = ".((int) $this->id); + + dol_syslog(get_class($this)."::validate()", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + dol_print_error($this->db); + $this->error = $this->db->lasterror(); + $error++; + } + + if (!$error && !$notrigger) { + // Call trigger + $result = $this->call_trigger('AVAILABILITIES_VALIDATE', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + } + + if (!$error) { + $this->oldref = $this->ref; + + // Rename directory if dir was a temporary ref + if (preg_match('/^[\(]?PROV/i', $this->ref)) { + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref) + 1).")), filepath = 'availabilities/".$this->db->escape($this->newref)."'"; + $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'availabilities/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (!$resql) { + $error++; $this->error = $this->db->lasterror(); + } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments + $oldref = dol_sanitizeFileName($this->ref); + $newref = dol_sanitizeFileName($num); + $dirsource = $conf->bookcal->dir_output.'/availabilities/'.$oldref; + $dirdest = $conf->bookcal->dir_output.'/availabilities/'.$newref; + if (!$error && file_exists($dirsource)) { + dol_syslog(get_class($this)."::validate() rename dir ".$dirsource." into ".$dirdest); + + if (@rename($dirsource, $dirdest)) { + dol_syslog("Rename ok"); + // Rename docs starting with $oldref with $newref + $listoffiles = dol_dir_list($conf->bookcal->dir_output.'/availabilities/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); + foreach ($listoffiles as $fileentry) { + $dirsource = $fileentry['name']; + $dirdest = preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); + $dirsource = $fileentry['path'].'/'.$dirsource; + $dirdest = $fileentry['path'].'/'.$dirdest; + @rename($dirsource, $dirdest); + } + } + } + } + } + + // Set new ref and current status + if (!$error) { + $this->ref = $num; + $this->status = self::STATUS_VALIDATED; + } + + if (!$error) { + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + return -1; + } + } + + + /** + * Set draft status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setDraft($user, $notrigger = 0) + { + // Protection + if ($this->status <= self::STATUS_DRAFT) { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->bookcal_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 'AVAILABILITIES_UNVALIDATE'); + } + + /** + * Set cancel status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function cancel($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_VALIDATED) { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->bookcal_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 'AVAILABILITIES_CANCEL'); + } + + /** + * Set back to validated status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function reopen($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_CANCELED) { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->bookcal_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 'AVAILABILITIES_REOPEN'); + } + + /** + * Return a link to the object card (with optionaly the picto) + * + * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) + * @param string $option On what the link point to ('nolink', ...) + * @param int $notooltip 1=Disable tooltip + * @param string $morecss Add more css on link + * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking + * @return string String with URL + */ + public function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) + { + global $conf, $langs, $hookmanager; + + if (!empty($conf->dol_no_mouse_hover)) { + $notooltip = 1; // Force disable tooltips + } + + $result = ''; + + $label = img_picto('', $this->picto).' '.$langs->trans("Availabilities").''; + if (isset($this->status)) { + $label .= ' '.$this->getLibStatut(5); + } + $label .= '
'; + $label .= ''.$langs->trans('Ref').': '.$this->ref; + + $url = dol_buildpath('/bookcal/availabilities_card.php', 1).'?id='.$this->id; + + if ($option != 'nolink') { + // Add param to save lastsearch_values or not + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) { + $add_save_lastsearch_values = 1; + } + if ($url && $add_save_lastsearch_values) { + $url .= '&save_lastsearch_values=1'; + } + } + + $linkclose = ''; + if (empty($notooltip)) { + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + $label = $langs->trans("ShowAvailabilities"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; + } + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; + } else { + $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); + } + + if ($option == 'nolink' || empty($url)) { + $linkstart = ''; + if ($option == 'nolink' || empty($url)) { + $linkend = ''; + } else { + $linkend = ''; + } + + $result .= $linkstart; + + if (empty($this->showphoto_on_popup)) { + if ($withpicto) { + $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + } + } else { + if ($withpicto) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + list($class, $module) = explode('@', $this->picto); + $upload_dir = $conf->$module->multidir_output[$conf->entity]."/$class/".dol_sanitizeFileName($this->ref); + $filearray = dol_dir_list($upload_dir, "files"); + $filename = $filearray[0]['name']; + if (!empty($filename)) { + $pospoint = strpos($filearray[0]['name'], '.'); + + $pathtophoto = $class.'/'.$this->ref.'/thumbs/'.substr($filename, 0, $pospoint).'_mini'.substr($filename, $pospoint); + if (empty($conf->global->{strtoupper($module.'_'.$class).'_FORMATLISTPHOTOSASUSERS'})) { + $result .= '
No photo
'; + } else { + $result .= '
No photo
'; + } + + $result .= '
'; + } else { + $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + } + } + } + + if ($withpicto != 2) { + $result .= $this->ref; + } + + $result .= $linkend; + //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); + + global $action, $hookmanager; + $hookmanager->initHooks(array('availabilitiesdao')); + $parameters = array('id'=>$this->id, 'getnomurl' => &$result); + $reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + if ($reshook > 0) { + $result = $hookmanager->resPrint; + } else { + $result .= $hookmanager->resPrint; + } + + return $result; + } + + /** + * Return the label of the status + * + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function getLabelStatus($mode = 0) + { + return $this->LibStatut($this->status, $mode); + } + + /** + * Return the label of the status + * + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function getLibStatut($mode = 0) + { + return $this->LibStatut($this->status, $mode); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return the status + * + * @param int $status Id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function LibStatut($status, $mode = 0) + { + // phpcs:enable + if (empty($this->labelStatus) || empty($this->labelStatusShort)) { + global $langs; + //$langs->load("bookcal@bookcal"); + $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); + $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); + $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); + $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); + } + + $statusType = 'status'.$status; + //if ($status == self::STATUS_VALIDATED) $statusType = 'status1'; + if ($status == self::STATUS_CANCELED) { + $statusType = 'status6'; + } + + return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); + } + + /** + * Load the info information in the object + * + * @param int $id Id of object + * @return void + */ + public function info($id) + { + $sql = "SELECT rowid,"; + $sql .= " date_creation as datec, tms as datem,"; + $sql .= " fk_user_creat, fk_user_modif"; + $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; + $sql .= " WHERE t.rowid = ".((int) $id); + + $result = $this->db->query($sql); + if ($result) { + if ($this->db->num_rows($result)) { + $obj = $this->db->fetch_object($result); + + $this->id = $obj->rowid; + + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; + if (!empty($obj->fk_user_valid)) { + $this->user_validation_id = $obj->fk_user_valid; + } + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); + if (!empty($obj->datev)) { + $this->date_validation = empty($obj->datev) ? '' : $this->db->jdate($obj->datev); + } + } + + $this->db->free($result); + } else { + dol_print_error($this->db); + } + } + + /** + * Initialise object with example values + * Id must be 0 if object instance is a specimen + * + * @return void + */ + public function initAsSpecimen() + { + // Set here init that are not commonf fields + // $this->property1 = ... + // $this->property2 = ... + + $this->initAsSpecimenCommon(); + } + + /** + * Create an array of lines + * + * @return array|int array of lines if OK, <0 if KO + */ + public function getLinesArray() + { + $this->lines = array(); + + $objectline = new AvailabilitiesLine($this->db); + $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_availabilities = '.((int) $this->id))); + + if (is_numeric($result)) { + $this->error = $objectline->error; + $this->errors = $objectline->errors; + return $result; + } else { + $this->lines = $result; + return $this->lines; + } + } + + /** + * Returns the reference to the following non used object depending on the active numbering module. + * + * @return string Object free reference + */ + public function getNextNumRef() + { + global $langs, $conf; + $langs->load("bookcal@bookcal"); + + if (empty($conf->global->BOOKCAL_AVAILABILITIES_ADDON)) { + $conf->global->BOOKCAL_AVAILABILITIES_ADDON = 'mod_availabilities_standard'; + } + + if (!empty($conf->global->BOOKCAL_AVAILABILITIES_ADDON)) { + $mybool = false; + + $file = $conf->global->BOOKCAL_AVAILABILITIES_ADDON.".php"; + $classname = $conf->global->BOOKCAL_AVAILABILITIES_ADDON; + + // Include file with class + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { + $dir = dol_buildpath($reldir."core/modules/bookcal/"); + + // Load file with numbering class (if found) + $mybool |= @include_once $dir.$file; + } + + if ($mybool === false) { + dol_print_error('', "Failed to include file ".$file); + return ''; + } + + if (class_exists($classname)) { + $obj = new $classname(); + $numref = $obj->getNextValue($this); + + if ($numref != '' && $numref != '-1') { + return $numref; + } else { + $this->error = $obj->error; + //dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error); + return ""; + } + } else { + print $langs->trans("Error")." ".$langs->trans("ClassNotFound").' '.$classname; + return ""; + } + } else { + print $langs->trans("ErrorNumberingModuleNotSetup", $this->element); + return ""; + } + } + + /** + * Create a document onto disk according to template module. + * + * @param string $modele Force template to use ('' to not force) + * @param Translate $outputlangs objet lang a utiliser pour traduction + * @param int $hidedetails Hide details of lines + * @param int $hidedesc Hide description + * @param int $hideref Hide ref + * @param null|array $moreparams Array to provide more information + * @return int 0 if KO, 1 if OK + */ + public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null) + { + global $conf, $langs; + + $result = 0; + $includedocgeneration = 0; + + $langs->load("bookcal@bookcal"); + + if (!dol_strlen($modele)) { + $modele = 'standard_availabilities'; + + if (!empty($this->model_pdf)) { + $modele = $this->model_pdf; + } elseif (!empty($conf->global->AVAILABILITIES_ADDON_PDF)) { + $modele = $conf->global->AVAILABILITIES_ADDON_PDF; + } + } + + $modelpath = "core/modules/bookcal/doc/"; + + if ($includedocgeneration && !empty($modele)) { + $result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); + } + + return $result; + } + + /** + * Action executed by scheduler + * CAN BE A CRON TASK. In such a case, parameters come from the schedule job setup field 'Parameters' + * Use public function doScheduledJob($param1, $param2, ...) to get parameters + * + * @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK) + */ + public function doScheduledJob() + { + global $conf, $langs; + + //$conf->global->SYSLOG_FILE = 'DOL_DATA_ROOT/dolibarr_mydedicatedlofile.log'; + + $error = 0; + $this->output = ''; + $this->error = ''; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $now = dol_now(); + + $this->db->begin(); + + // ... + + $this->db->commit(); + + return $error; + } +} + + +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; + +/** + * Class AvailabilitiesLine. You can also remove this and generate a CRUD class for lines objects. + */ +class AvailabilitiesLine extends CommonObjectLine +{ + // To complete with content of an object AvailabilitiesLine + // We should have a field rowid, fk_availabilities and position + + /** + * @var int Does object support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 0; + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + $this->db = $db; + } +} diff --git a/htdocs/bookcal/class/booking.class.php b/htdocs/bookcal/class/booking.class.php new file mode 100644 index 00000000000..98cb5077844 --- /dev/null +++ b/htdocs/bookcal/class/booking.class.php @@ -0,0 +1,1089 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file class/booking.class.php + * \ingroup bookcal + * \brief This file is a CRUD class file for Booking (Create/Read/Update/Delete) + */ + +// Put here all includes required by your class file +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; +//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; +//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; + +/** + * Class for Booking + */ +class Booking extends CommonObject +{ + /** + * @var string ID of module. + */ + public $module = 'bookcal'; + + /** + * @var string ID to identify managed object. + */ + public $element = 'booking'; + + /** + * @var string Name of table without prefix where object is stored. This is also the key used for extrafields management. + */ + public $table_element = 'bookcal_booking'; + + /** + * @var int Does this object support multicompany module ? + * 0=No test on entity, 1=Test with field entity, 'field@table'=Test with link by field@table + */ + public $ismultientitymanaged = 0; + + /** + * @var int Does object support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 1; + + /** + * @var string String with name of icon for booking. Must be a 'fa-xxx' fontawesome code (or 'fa-xxx_fa_color_size') or 'booking@bookcal' if picto is file 'img/object_booking.png'. + */ + public $picto = 'fa-file'; + + + const STATUS_DRAFT = 0; + const STATUS_VALIDATED = 1; + const STATUS_CANCELED = 9; + + + /** + * 'type' field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]', 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter[:Sortfield]]]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'text:none', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') + * Note: Filter can be a string like "(t.ref:like:'SO-%') or (t.date_creation:<:'20160101') or (t.nature:is:NULL)" + * 'label' the translation key. + * 'picto' is code of a picto to show before value in forms + * 'enabled' is a condition when the field must be managed (Example: 1 or '$conf->global->MY_SETUP_PARAM' or 'isModEnabled('multicurrency')' ...) + * 'position' is the sort order of field. + * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). + * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). 5=Visible on list and view only (not create/not update). Using a negative value means field is not shown by default on list but can be selected for viewing) + * 'noteditable' says if field is not editable (1 or 0) + * 'default' is a default value for creation (can still be overwrote by the Setup of Default Values if field is editable in creation form). Note: If default is set to '(PROV)' and field is 'ref', the default value will be set to '(PROVid)' where id is rowid when a new record is created. + * 'index' if we want an index in database. + * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). + * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. + * 'isameasure' must be set to 1 or 2 if field can be used for measure. Field type must be summable like integer or double(24,8). Use 1 in most cases, or 2 if you don't want to see the column total into list (for example for percentage) + * 'css' and 'cssview' and 'csslist' is the CSS style to use on field. 'css' is used in creation and update. 'cssview' is used in view mode. 'csslist' is used for columns in lists. For example: 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'cssview'=>'wordbreak', 'csslist'=>'tdoverflowmax200' + * 'help' is a 'TranslationString' to use to show a tooltip on field. You can also use 'TranslationString:keyfortooltiponlick' for a tooltip on click. + * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record + * 'disabled' is 1 if we want to have the field locked by a 'disabled' attribute. In most cases, this is never set into the definition of $fields into class, but is set dynamically by some part of code. + * 'arrayofkeyval' to set a list of values if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel"). Note that type can be 'integer' or 'varchar' + * 'autofocusoncreate' to have field having the focus on a create form. Only 1 field should have this property set to 1. + * 'comment' is not used. You can store here any text of your choice. It is not used by application. + * 'validate' is 1 if need to validate with $this->validateField() + * 'copytoclipboard' is 1 or 2 to allow to add a picto to copy value into clipboard (1=picto after label, 2=picto after value) + * + * Note: To have value dynamic, you can set value to 0 in definition and edit the value on the fly into the constructor. + */ + + // BEGIN MODULEBUILDER PROPERTIES + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields=array( + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), + 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>1.2, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'searchall'=>1, 'validate'=>'1', 'comment'=>"Reference of object"), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'picto'=>'company', 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx', 'help'=>"LinkToThirparty", 'validate'=>'1',), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'picto'=>'project', 'enabled'=>'$conf->project->enabled', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx', 'validate'=>'1',), + 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3, 'validate'=>'1',), + 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>0, 'cssview'=>'wordbreak', 'validate'=>'1',), + 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>0, 'cssview'=>'wordbreak', 'validate'=>'1',), + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2,), + 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'picto'=>'user', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), + 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'picto'=>'user', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), + 'last_main_doc' => array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>'1', 'position'=>600, 'notnull'=>0, 'visible'=>0,), + 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), + 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), + 'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>'1', 'position'=>2000, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '9'=>'Canceled'), 'validate'=>'1',), + 'firstname' => array('type'=>'varchar(128)', 'label'=>'firstname', 'enabled'=>'1', 'position'=>2, 'notnull'=>1, 'visible'=>-1,), + 'lastname' => array('type'=>'varchar(128)', 'label'=>'lastname', 'enabled'=>'1', 'position'=>3, 'notnull'=>1, 'visible'=>-1,), + 'email' => array('type'=>'varchar(128)', 'label'=>'email', 'enabled'=>'1', 'position'=>4, 'notnull'=>1, 'visible'=>-1,), + 'start' => array('type'=>'datetime', 'label'=>'Start Hour', 'enabled'=>'1', 'position'=>5, 'notnull'=>1, 'visible'=>-1,), + 'duration' => array('type'=>'integer', 'label'=>'Duration', 'enabled'=>'1', 'position'=>6, 'notnull'=>1, 'visible'=>-1,), + ); + public $rowid; + public $ref; + public $fk_soc; + public $fk_project; + public $description; + public $note_public; + public $note_private; + public $date_creation; + public $tms; + public $fk_user_creat; + public $fk_user_modif; + public $last_main_doc; + public $import_key; + public $model_pdf; + public $status; + public $firstname; + public $lastname; + public $email; + public $start; + public $duration; + // END MODULEBUILDER PROPERTIES + + + // If this object has a subtable with lines + + // /** + // * @var string Name of subtable line + // */ + // public $table_element_line = 'bookcal_bookingline'; + + // /** + // * @var string Field with ID of parent key if this object has a parent + // */ + // public $fk_element = 'fk_booking'; + + // /** + // * @var string Name of subtable class that manage subtable lines + // */ + // public $class_element_line = 'Bookingline'; + + // /** + // * @var array List of child tables. To test if we can delete object. + // */ + // protected $childtables = array(); + + // /** + // * @var array List of child tables. To know object to delete on cascade. + // * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will + // * call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object + // */ + // protected $childtablesoncascade = array('bookcal_bookingdet'); + + // /** + // * @var BookingLine[] Array of subtable lines + // */ + // public $lines = array(); + + + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + global $conf, $langs; + + $this->db = $db; + + if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid']) && !empty($this->fields['ref'])) { + $this->fields['rowid']['visible'] = 0; + } + if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + $this->fields['entity']['enabled'] = 0; + } + + // Example to show how to set values of fields definition dynamically + /*if ($user->rights->bookcal->booking->read) { + $this->fields['myfield']['visible'] = 1; + $this->fields['myfield']['noteditable'] = 0; + }*/ + + // Unset fields that are disabled + foreach ($this->fields as $key => $val) { + if (isset($val['enabled']) && empty($val['enabled'])) { + unset($this->fields[$key]); + } + } + + // Translate some data of arrayofkeyval + if (is_object($langs)) { + foreach ($this->fields as $key => $val) { + if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { + foreach ($val['arrayofkeyval'] as $key2 => $val2) { + $this->fields[$key]['arrayofkeyval'][$key2] = $langs->trans($val2); + } + } + } + } + } + + /** + * Create object into database + * + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, Id of created object if OK + */ + public function create(User $user, $notrigger = false) + { + $resultcreate = $this->createCommon($user, $notrigger); + + //$resultvalidate = $this->validate($user, $notrigger); + + return $resultcreate; + } + + /** + * Clone an object into another one + * + * @param User $user User that creates + * @param int $fromid Id of object to clone + * @return mixed New object created, <0 if KO + */ + public function createFromClone(User $user, $fromid) + { + global $langs, $extrafields; + $error = 0; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $object = new self($this->db); + + $this->db->begin(); + + // Load source object + $result = $object->fetchCommon($fromid); + if ($result > 0 && !empty($object->table_element_line)) { + $object->fetchLines(); + } + + // get lines so they will be clone + //foreach($this->lines as $line) + // $line->fetch_optionals(); + + // Reset some properties + unset($object->id); + unset($object->fk_user_creat); + unset($object->import_key); + + // Clear fields + if (property_exists($object, 'ref')) { + $object->ref = empty($this->fields['ref']['default']) ? "Copy_Of_".$object->ref : $this->fields['ref']['default']; + } + if (property_exists($object, 'label')) { + $object->label = empty($this->fields['label']['default']) ? $langs->trans("CopyOf")." ".$object->label : $this->fields['label']['default']; + } + if (property_exists($object, 'status')) { + $object->status = self::STATUS_DRAFT; + } + if (property_exists($object, 'date_creation')) { + $object->date_creation = dol_now(); + } + if (property_exists($object, 'date_modification')) { + $object->date_modification = null; + } + // ... + // Clear extrafields that are unique + if (is_array($object->array_options) && count($object->array_options) > 0) { + $extrafields->fetch_name_optionals_label($this->table_element); + foreach ($object->array_options as $key => $option) { + $shortkey = preg_replace('/options_/', '', $key); + if (!empty($extrafields->attributes[$this->table_element]['unique'][$shortkey])) { + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; + unset($object->array_options[$key]); + } + } + } + + // Create clone + $object->context['createfromclone'] = 'createfromclone'; + $result = $object->createCommon($user); + if ($result < 0) { + $error++; + $this->error = $object->error; + $this->errors = $object->errors; + } + + if (!$error) { + // copy internal contacts + if ($this->copy_linked_contact($object, 'internal') < 0) { + $error++; + } + } + + if (!$error) { + // copy external contacts if same company + if (!empty($object->socid) && property_exists($this, 'fk_soc') && $this->fk_soc == $object->socid) { + if ($this->copy_linked_contact($object, 'external') < 0) { + $error++; + } + } + } + + unset($object->context['createfromclone']); + + // End + if (!$error) { + $this->db->commit(); + return $object; + } else { + $this->db->rollback(); + return -1; + } + } + + /** + * Load object in memory from the database + * + * @param int $id Id object + * @param string $ref Ref + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetch($id, $ref = null) + { + $result = $this->fetchCommon($id, $ref); + if ($result > 0 && !empty($this->table_element_line)) { + $this->fetchLines(); + } + return $result; + } + + /** + * Load object lines in memory from the database + * + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetchLines() + { + $this->lines = array(); + + $result = $this->fetchLinesCommon(); + return $result; + } + + + /** + * Load list of objects in memory from the database. + * + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit limit + * @param int $offset Offset + * @param array $filter Filter array. Example array('field'=>'valueforlike', 'customurl'=>...) + * @param string $filtermode Filter mode (AND or OR) + * @return array|int int <0 if KO, array of pages if OK + */ + public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') + { + global $conf; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $records = array(); + + $sql = "SELECT "; + $sql .= $this->getFieldList('t'); + $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; + if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) { + $sql .= " WHERE t.entity IN (".getEntity($this->element).")"; + } else { + $sql .= " WHERE 1 = 1"; + } + // Manage filter + $sqlwhere = array(); + if (count($filter) > 0) { + foreach ($filter as $key => $value) { + if ($key == 't.rowid') { + $sqlwhere[] = $key." = ".((int) $value); + } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { + $sqlwhere[] = $key." = '".$this->db->idate($value)."'"; + } elseif ($key == 'customsql') { + $sqlwhere[] = $value; + } elseif (strpos($value, '%') === false) { + $sqlwhere[] = $key." IN (".$this->db->sanitize($this->db->escape($value)).")"; + } else { + $sqlwhere[] = $key." LIKE '%".$this->db->escape($value)."%'"; + } + } + } + if (count($sqlwhere) > 0) { + $sql .= " AND (".implode(" ".$filtermode." ", $sqlwhere).")"; + } + + if (!empty($sortfield)) { + $sql .= $this->db->order($sortfield, $sortorder); + } + if (!empty($limit)) { + $sql .= $this->db->plimit($limit, $offset); + } + + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < ($limit ? min($limit, $num) : $num)) { + $obj = $this->db->fetch_object($resql); + + $record = new self($this->db); + $record->setVarsFromFetchObj($obj); + + $records[$record->id] = $record; + + $i++; + } + $this->db->free($resql); + + return $records; + } else { + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + + return -1; + } + } + + /** + * Update object into database + * + * @param User $user User that modifies + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function update(User $user, $notrigger = false) + { + return $this->updateCommon($user, $notrigger); + } + + /** + * Delete object in database + * + * @param User $user User that deletes + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function delete(User $user, $notrigger = false) + { + return $this->deleteCommon($user, $notrigger); + //return $this->deleteCommon($user, $notrigger, 1); + } + + /** + * Delete a line of object in database + * + * @param User $user User that delete + * @param int $idline Id of line to delete + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int >0 if OK, <0 if KO + */ + public function deleteLine(User $user, $idline, $notrigger = false) + { + if ($this->status < 0) { + $this->error = 'ErrorDeleteLineNotAllowedByObjectStatus'; + return -2; + } + + return $this->deleteLineCommon($user, $idline, $notrigger); + } + + + /** + * Validate object + * + * @param User $user User making status change + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return int <=0 if OK, 0=Nothing done, >0 if KO + */ + public function validate($user, $notrigger = 0) + { + global $conf, $langs; + + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + $error = 0; + + // Protection + if ($this->status == self::STATUS_VALIDATED) { + dol_syslog(get_class($this)."::validate action abandonned: already validated", LOG_WARNING); + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->booking->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->booking->booking_advance->validate)))) + { + $this->error='NotEnoughPermissions'; + dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); + return -1; + }*/ + + $now = dol_now(); + + $this->db->begin(); + + // Define new ref + if (!$error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) { // empty should not happened, but when it occurs, the test save life + $num = $this->getNextNumRef(); + } else { + $num = $this->ref; + } + $this->newref = $num; + + if (!empty($num)) { + // Validate + $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; + $sql .= " SET ref = '".$this->db->escape($num)."',"; + $sql .= " status = ".self::STATUS_VALIDATED; + if (!empty($this->fields['date_validation'])) { + $sql .= ", date_validation = '".$this->db->idate($now)."'"; + } + if (!empty($this->fields['fk_user_valid'])) { + $sql .= ", fk_user_valid = ".((int) $user->id); + } + $sql .= " WHERE rowid = ".((int) $this->id); + + dol_syslog(get_class($this)."::validate()", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + dol_print_error($this->db); + $this->error = $this->db->lasterror(); + $error++; + } + + if (!$error && !$notrigger) { + // Call trigger + $result = $this->call_trigger('BOOKING_VALIDATE', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + } + + if (!$error) { + $this->oldref = $this->ref; + + // Rename directory if dir was a temporary ref + if (preg_match('/^[\(]?PROV/i', $this->ref)) { + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref) + 1).")), filepath = 'booking/".$this->db->escape($this->newref)."'"; + $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'booking/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (!$resql) { + $error++; $this->error = $this->db->lasterror(); + } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments + $oldref = dol_sanitizeFileName($this->ref); + $newref = dol_sanitizeFileName($num); + $dirsource = $conf->bookcal->dir_output.'/booking/'.$oldref; + $dirdest = $conf->bookcal->dir_output.'/booking/'.$newref; + if (!$error && file_exists($dirsource)) { + dol_syslog(get_class($this)."::validate() rename dir ".$dirsource." into ".$dirdest); + + if (@rename($dirsource, $dirdest)) { + dol_syslog("Rename ok"); + // Rename docs starting with $oldref with $newref + $listoffiles = dol_dir_list($conf->bookcal->dir_output.'/booking/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); + foreach ($listoffiles as $fileentry) { + $dirsource = $fileentry['name']; + $dirdest = preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); + $dirsource = $fileentry['path'].'/'.$dirsource; + $dirdest = $fileentry['path'].'/'.$dirdest; + @rename($dirsource, $dirdest); + } + } + } + } + } + + // Set new ref and current status + if (!$error) { + $this->ref = $num; + $this->status = self::STATUS_VALIDATED; + } + + if (!$error) { + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + return -1; + } + } + + + /** + * Set draft status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setDraft($user, $notrigger = 0) + { + // Protection + if ($this->status <= self::STATUS_DRAFT) { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->bookcal_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 'BOOKING_UNVALIDATE'); + } + + /** + * Set cancel status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function cancel($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_VALIDATED) { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->bookcal_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 'BOOKING_CANCEL'); + } + + /** + * Set back to validated status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function reopen($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_CANCELED) { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bookcal->bookcal_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 'BOOKING_REOPEN'); + } + + /** + * Return a link to the object card (with optionaly the picto) + * + * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) + * @param string $option On what the link point to ('nolink', ...) + * @param int $notooltip 1=Disable tooltip + * @param string $morecss Add more css on link + * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking + * @return string String with URL + */ + public function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) + { + global $conf, $langs, $hookmanager; + + if (!empty($conf->dol_no_mouse_hover)) { + $notooltip = 1; // Force disable tooltips + } + + $result = ''; + + $label = img_picto('', $this->picto).' '.$langs->trans("Booking").''; + if (isset($this->status)) { + $label .= ' '.$this->getLibStatut(5); + } + $label .= '
'; + $label .= ''.$langs->trans('Ref').': '.$this->ref; + + $url = dol_buildpath('/bookcal/booking_card.php', 1).'?id='.$this->id; + + if ($option != 'nolink') { + // Add param to save lastsearch_values or not + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) { + $add_save_lastsearch_values = 1; + } + if ($url && $add_save_lastsearch_values) { + $url .= '&save_lastsearch_values=1'; + } + } + + $linkclose = ''; + if (empty($notooltip)) { + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + $label = $langs->trans("ShowBooking"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; + } + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; + } else { + $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); + } + + if ($option == 'nolink' || empty($url)) { + $linkstart = ''; + if ($option == 'nolink' || empty($url)) { + $linkend = ''; + } else { + $linkend = ''; + } + + $result .= $linkstart; + + if (empty($this->showphoto_on_popup)) { + if ($withpicto) { + $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + } + } else { + if ($withpicto) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + list($class, $module) = explode('@', $this->picto); + $upload_dir = $conf->$module->multidir_output[$conf->entity]."/$class/".dol_sanitizeFileName($this->ref); + $filearray = dol_dir_list($upload_dir, "files"); + $filename = $filearray[0]['name']; + if (!empty($filename)) { + $pospoint = strpos($filearray[0]['name'], '.'); + + $pathtophoto = $class.'/'.$this->ref.'/thumbs/'.substr($filename, 0, $pospoint).'_mini'.substr($filename, $pospoint); + if (empty($conf->global->{strtoupper($module.'_'.$class).'_FORMATLISTPHOTOSASUSERS'})) { + $result .= '
No photo
'; + } else { + $result .= '
No photo
'; + } + + $result .= '
'; + } else { + $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + } + } + } + + if ($withpicto != 2) { + $result .= $this->ref; + } + + $result .= $linkend; + //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); + + global $action, $hookmanager; + $hookmanager->initHooks(array('bookingdao')); + $parameters = array('id'=>$this->id, 'getnomurl' => &$result); + $reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + if ($reshook > 0) { + $result = $hookmanager->resPrint; + } else { + $result .= $hookmanager->resPrint; + } + + return $result; + } + + /** + * Return the label of the status + * + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function getLabelStatus($mode = 0) + { + return $this->LibStatut($this->status, $mode); + } + + /** + * Return the label of the status + * + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function getLibStatut($mode = 0) + { + return $this->LibStatut($this->status, $mode); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return the status + * + * @param int $status Id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function LibStatut($status, $mode = 0) + { + // phpcs:enable + if (empty($this->labelStatus) || empty($this->labelStatusShort)) { + global $langs; + //$langs->load("bookcal@bookcal"); + $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); + $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); + $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); + $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); + } + + $statusType = 'status'.$status; + //if ($status == self::STATUS_VALIDATED) $statusType = 'status1'; + if ($status == self::STATUS_CANCELED) { + $statusType = 'status6'; + } + + return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); + } + + /** + * Load the info information in the object + * + * @param int $id Id of object + * @return void + */ + public function info($id) + { + $sql = "SELECT rowid,"; + $sql .= " date_creation as datec, tms as datem,"; + $sql .= " fk_user_creat, fk_user_modif"; + $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; + $sql .= " WHERE t.rowid = ".((int) $id); + + $result = $this->db->query($sql); + if ($result) { + if ($this->db->num_rows($result)) { + $obj = $this->db->fetch_object($result); + + $this->id = $obj->rowid; + + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; + if (!empty($obj->fk_user_valid)) { + $this->user_validation_id = $obj->fk_user_valid; + } + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); + if (!empty($obj->datev)) { + $this->date_validation = empty($obj->datev) ? '' : $this->db->jdate($obj->datev); + } + } + + $this->db->free($result); + } else { + dol_print_error($this->db); + } + } + + /** + * Initialise object with example values + * Id must be 0 if object instance is a specimen + * + * @return void + */ + public function initAsSpecimen() + { + // Set here init that are not commonf fields + // $this->property1 = ... + // $this->property2 = ... + + $this->initAsSpecimenCommon(); + } + + /** + * Create an array of lines + * + * @return array|int array of lines if OK, <0 if KO + */ + public function getLinesArray() + { + $this->lines = array(); + + $objectline = new BookingLine($this->db); + $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_booking = '.((int) $this->id))); + + if (is_numeric($result)) { + $this->error = $objectline->error; + $this->errors = $objectline->errors; + return $result; + } else { + $this->lines = $result; + return $this->lines; + } + } + + /** + * Returns the reference to the following non used object depending on the active numbering module. + * + * @return string Object free reference + */ + public function getNextNumRef() + { + global $langs, $conf; + $langs->load("bookcal@bookcal"); + + if (empty($conf->global->BOOKCAL_BOOKING_ADDON)) { + $conf->global->BOOKCAL_BOOKING_ADDON = 'mod_booking_standard'; + } + + if (!empty($conf->global->BOOKCAL_BOOKING_ADDON)) { + $mybool = false; + + $file = $conf->global->BOOKCAL_BOOKING_ADDON.".php"; + $classname = $conf->global->BOOKCAL_BOOKING_ADDON; + + // Include file with class + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { + $dir = dol_buildpath($reldir."core/modules/bookcal/"); + + // Load file with numbering class (if found) + $mybool |= @include_once $dir.$file; + } + + if ($mybool === false) { + dol_print_error('', "Failed to include file ".$file); + return ''; + } + + if (class_exists($classname)) { + $obj = new $classname(); + $numref = $obj->getNextValue($this); + + if ($numref != '' && $numref != '-1') { + return $numref; + } else { + $this->error = $obj->error; + //dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error); + return ""; + } + } else { + print $langs->trans("Error")." ".$langs->trans("ClassNotFound").' '.$classname; + return ""; + } + } else { + print $langs->trans("ErrorNumberingModuleNotSetup", $this->element); + return ""; + } + } + + /** + * Create a document onto disk according to template module. + * + * @param string $modele Force template to use ('' to not force) + * @param Translate $outputlangs objet lang a utiliser pour traduction + * @param int $hidedetails Hide details of lines + * @param int $hidedesc Hide description + * @param int $hideref Hide ref + * @param null|array $moreparams Array to provide more information + * @return int 0 if KO, 1 if OK + */ + public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null) + { + global $conf, $langs; + + $result = 0; + $includedocgeneration = 0; + + $langs->load("bookcal@bookcal"); + + if (!dol_strlen($modele)) { + $modele = 'standard_booking'; + + if (!empty($this->model_pdf)) { + $modele = $this->model_pdf; + } elseif (!empty($conf->global->BOOKING_ADDON_PDF)) { + $modele = $conf->global->BOOKING_ADDON_PDF; + } + } + + $modelpath = "core/modules/bookcal/doc/"; + + if ($includedocgeneration && !empty($modele)) { + $result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); + } + + return $result; + } + + /** + * Action executed by scheduler + * CAN BE A CRON TASK. In such a case, parameters come from the schedule job setup field 'Parameters' + * Use public function doScheduledJob($param1, $param2, ...) to get parameters + * + * @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK) + */ + public function doScheduledJob() + { + global $conf, $langs; + + //$conf->global->SYSLOG_FILE = 'DOL_DATA_ROOT/dolibarr_mydedicatedlofile.log'; + + $error = 0; + $this->output = ''; + $this->error = ''; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $now = dol_now(); + + $this->db->begin(); + + // ... + + $this->db->commit(); + + return $error; + } +} + + +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; + +/** + * Class BookingLine. You can also remove this and generate a CRUD class for lines objects. + */ +class BookingLine extends CommonObjectLine +{ + // To complete with content of an object BookingLine + // We should have a field rowid, fk_booking and position + + /** + * @var int Does object support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 0; + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + $this->db = $db; + } +} diff --git a/htdocs/bookcal/lib/bookcal.lib.php b/htdocs/bookcal/lib/bookcal.lib.php new file mode 100644 index 00000000000..bc60468fb1d --- /dev/null +++ b/htdocs/bookcal/lib/bookcal.lib.php @@ -0,0 +1,68 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file bookcal/lib/bookcal.lib.php + * \ingroup bookcal + * \brief Library files with common functions for BookCal + */ + +/** + * Prepare admin pages header + * + * @return array + */ +function bookcalAdminPrepareHead() +{ + global $langs, $conf; + + $langs->load("bookcal@bookcal"); + + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath("/bookcal/admin/setup.php", 1); + $head[$h][1] = $langs->trans("Settings"); + $head[$h][2] = 'settings'; + $h++; + + /* + $head[$h][0] = dol_buildpath("/bookcal/admin/myobject_extrafields.php", 1); + $head[$h][1] = $langs->trans("ExtraFields"); + $head[$h][2] = 'myobject_extrafields'; + $h++; + */ + + $head[$h][0] = dol_buildpath("/bookcal/admin/about.php", 1); + $head[$h][1] = $langs->trans("About"); + $head[$h][2] = 'about'; + $h++; + + // Show more tabs from modules + // Entries must be declared in modules descriptor with line + //$this->tabs = array( + // 'entity:+tabname:Title:@bookcal:/bookcal/mypage.php?id=__ID__' + //); // to add new tab + //$this->tabs = array( + // 'entity:-tabname:Title:@bookcal:/bookcal/mypage.php?id=__ID__' + //); // to remove a tab + complete_head_from_modules($conf, $langs, null, $head, $h, 'bookcal@bookcal'); + + complete_head_from_modules($conf, $langs, null, $head, $h, 'bookcal@bookcal', 'remove'); + + return $head; +} diff --git a/htdocs/bookcal/lib/bookcal_availabilities.lib.php b/htdocs/bookcal/lib/bookcal_availabilities.lib.php new file mode 100644 index 00000000000..83d204a2d76 --- /dev/null +++ b/htdocs/bookcal/lib/bookcal_availabilities.lib.php @@ -0,0 +1,110 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file lib/bookcal_availabilities.lib.php + * \ingroup bookcal + * \brief Library files with common functions for Availabilities + */ + +/** + * Prepare array of tabs for Availabilities + * + * @param Availabilities $object Availabilities + * @return array Array of tabs + */ +function availabilitiesPrepareHead($object) +{ + global $db, $langs, $conf; + + $langs->load("bookcal@bookcal"); + + $showtabofpagecontact = 1; + $showtabofpagenote = 1; + $showtabofpagedocument = 1; + $showtabofpageagenda = 1; + + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath("/bookcal/availabilities_card.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Card"); + $head[$h][2] = 'card'; + $h++; + + if ($showtabofpagecontact) { + $head[$h][0] = dol_buildpath("/bookcal/availabilities_contact.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Contacts"); + $head[$h][2] = 'contact'; + $h++; + } + + if ($showtabofpagenote) { + if (isset($object->fields['note_public']) || isset($object->fields['note_private'])) { + $nbNote = 0; + if (!empty($object->note_private)) { + $nbNote++; + } + if (!empty($object->note_public)) { + $nbNote++; + } + $head[$h][0] = dol_buildpath('/bookcal/availabilities_note.php', 1).'?id='.$object->id; + $head[$h][1] = $langs->trans('Notes'); + if ($nbNote > 0) { + $head[$h][1] .= (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? ''.$nbNote.'' : ''); + } + $head[$h][2] = 'note'; + $h++; + } + } + + if ($showtabofpagedocument) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; + $upload_dir = $conf->bookcal->dir_output."/availabilities/".dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); + $nbLinks = Link::count($db, $object->element, $object->id); + $head[$h][0] = dol_buildpath("/bookcal/availabilities_document.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans('Documents'); + if (($nbFiles + $nbLinks) > 0) { + $head[$h][1] .= ''.($nbFiles + $nbLinks).''; + } + $head[$h][2] = 'document'; + $h++; + } + + if ($showtabofpageagenda) { + $head[$h][0] = dol_buildpath("/bookcal/availabilities_agenda.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Events"); + $head[$h][2] = 'agenda'; + $h++; + } + + // Show more tabs from modules + // Entries must be declared in modules descriptor with line + //$this->tabs = array( + // 'entity:+tabname:Title:@bookcal:/bookcal/mypage.php?id=__ID__' + //); // to add new tab + //$this->tabs = array( + // 'entity:-tabname:Title:@bookcal:/bookcal/mypage.php?id=__ID__' + //); // to remove a tab + complete_head_from_modules($conf, $langs, $object, $head, $h, 'availabilities@bookcal'); + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'availabilities@bookcal', 'remove'); + + return $head; +} diff --git a/htdocs/bookcal/lib/bookcal_booking.lib.php b/htdocs/bookcal/lib/bookcal_booking.lib.php new file mode 100644 index 00000000000..a6cb0e50df6 --- /dev/null +++ b/htdocs/bookcal/lib/bookcal_booking.lib.php @@ -0,0 +1,110 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file lib/bookcal_booking.lib.php + * \ingroup bookcal + * \brief Library files with common functions for Booking + */ + +/** + * Prepare array of tabs for Booking + * + * @param Booking $object Booking + * @return array Array of tabs + */ +function bookingPrepareHead($object) +{ + global $db, $langs, $conf; + + $langs->load("bookcal@bookcal"); + + $showtabofpagecontact = 1; + $showtabofpagenote = 1; + $showtabofpagedocument = 1; + $showtabofpageagenda = 1; + + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath("/bookcal/booking_card.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Card"); + $head[$h][2] = 'card'; + $h++; + + if ($showtabofpagecontact) { + $head[$h][0] = dol_buildpath("/bookcal/booking_contact.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Contacts"); + $head[$h][2] = 'contact'; + $h++; + } + + if ($showtabofpagenote) { + if (isset($object->fields['note_public']) || isset($object->fields['note_private'])) { + $nbNote = 0; + if (!empty($object->note_private)) { + $nbNote++; + } + if (!empty($object->note_public)) { + $nbNote++; + } + $head[$h][0] = dol_buildpath('/bookcal/booking_note.php', 1).'?id='.$object->id; + $head[$h][1] = $langs->trans('Notes'); + if ($nbNote > 0) { + $head[$h][1] .= (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? ''.$nbNote.'' : ''); + } + $head[$h][2] = 'note'; + $h++; + } + } + + if ($showtabofpagedocument) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; + $upload_dir = $conf->bookcal->dir_output."/booking/".dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); + $nbLinks = Link::count($db, $object->element, $object->id); + $head[$h][0] = dol_buildpath("/bookcal/booking_document.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans('Documents'); + if (($nbFiles + $nbLinks) > 0) { + $head[$h][1] .= ''.($nbFiles + $nbLinks).''; + } + $head[$h][2] = 'document'; + $h++; + } + + if ($showtabofpageagenda) { + $head[$h][0] = dol_buildpath("/bookcal/booking_agenda.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Events"); + $head[$h][2] = 'agenda'; + $h++; + } + + // Show more tabs from modules + // Entries must be declared in modules descriptor with line + //$this->tabs = array( + // 'entity:+tabname:Title:@bookcal:/bookcal/mypage.php?id=__ID__' + //); // to add new tab + //$this->tabs = array( + // 'entity:-tabname:Title:@bookcal:/bookcal/mypage.php?id=__ID__' + //); // to remove a tab + complete_head_from_modules($conf, $langs, $object, $head, $h, 'booking@bookcal'); + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'booking@bookcal', 'remove'); + + return $head; +} diff --git a/htdocs/bookcal/modulebuilder.txt b/htdocs/bookcal/modulebuilder.txt new file mode 100644 index 00000000000..670a1774929 --- /dev/null +++ b/htdocs/bookcal/modulebuilder.txt @@ -0,0 +1,3 @@ +# DO NOT DELETE THIS FILE MANUALLY +# File to flag module built using official module template. +# When this file is present into a module directory, you can edit it with the module builder tool. \ No newline at end of file diff --git a/htdocs/bookmarks/admin/bookmark.php b/htdocs/bookmarks/admin/bookmark.php index 3d5c8eb3bc0..74b44bd8f9b 100644 --- a/htdocs/bookmarks/admin/bookmark.php +++ b/htdocs/bookmarks/admin/bookmark.php @@ -22,6 +22,7 @@ * \brief Page to setup bookmark module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index e5781d98561..c13b810a4bc 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -29,46 +29,56 @@ */ function printDropdownBookmarksList() { - global $conf, $user, $db, $langs; + global $conf, $user, $db, $langs, $sortfield, $sortorder; require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; $langs->load("bookmarks"); + $authorized_var=array('limit','optioncss','contextpage'); $url = $_SERVER["PHP_SELF"]; - + $url_param=array(); if (!empty($_SERVER["QUERY_STRING"])) { - $url .= (dol_escape_htmltag($_SERVER["QUERY_STRING"]) ? '?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]) : ''); - } else { - global $sortfield, $sortorder; - $tmpurl = ''; - // No urlencode, all param $url will be urlencoded later - if ($sortfield) { - $tmpurl .= ($tmpurl ? '&' : '').'sortfield='.urlencode($sortfield); - } - if ($sortorder) { - $tmpurl .= ($tmpurl ? '&' : '').'sortorder='.urlencode($sortorder); - } - if (is_array($_POST)) { - foreach ($_POST as $key => $val) { - if (preg_match('/^search_/', $key) && $val != '') { - $tmpurl .= ($tmpurl ? '&' : '').http_build_query(array($key => $val)); + if (is_array($_GET)) { + foreach ($_GET as $key => $val) { + if (is_array($val)) { + foreach ($val as $tmpsubval) { + $url_param[] = http_build_query(array(dol_escape_htmltag($key).'[]' => dol_escape_htmltag($tmpsubval))); + } + } elseif ($val != '') { + $url_param[$key] = http_build_query(array(dol_escape_htmltag($key) => dol_escape_htmltag($val))); } } } - $url .= ($tmpurl ? '?'.$tmpurl : ''); + } + $tmpurl = ''; + // No urlencode, all param $url will be urlencoded later + if ($sortfield) { + $tmpurl .= ($tmpurl ? '&' : '').'sortfield='.urlencode($sortfield); + } + if ($sortorder) { + $tmpurl .= ($tmpurl ? '&' : '').'sortorder='.urlencode($sortorder); + } + if (!empty($_POST) && is_array($_POST)) { + foreach ($_POST as $key => $val) { + if ((preg_match('/^search_/', $key) || in_array($key, $authorized_var)) + && $val != '' + && !array_key_exists($key, $url_param)) { + $url_param[$key] = http_build_query(array(dol_escape_htmltag($key) => dol_escape_htmltag($val))); + } + } + } + + $url .= ($tmpurl ? '?'.$tmpurl : ''); + if (!empty($url_param)) { + $url .= '&'.implode('&', $url_param); } $searchForm = ''."\n"; $searchForm .= '
global->MAIN_OPTIMIZEFORTEXTBROWSER) ? ' onsubmit="return false"' : '').'>'; $searchForm .= ''; - - // Url to list bookmark - $listbtn = ''; - $listbtn .= img_picto('', 'bookmark', 'class="paddingright"').$langs->trans('Bookmarks').''; - // Url to go on create new bookmark page $newbtn = ''; if (!empty($user->rights->bookmark->creer)) { @@ -80,6 +90,11 @@ function printDropdownBookmarksList() } } + // Url to list/edit bookmark + $listbtn = ''; + $listbtn .= img_picto('', 'edit', 'class="paddingright opacitymedium"').$langs->trans('EditBookmarks').''; + + $bookmarkList = ''; // Menu with list of bookmarks $sql = "SELECT rowid, title, url, target FROM ".MAIN_DB_PREFIX."bookmark"; $sql .= " WHERE (fk_user = ".((int) $user->id)." OR fk_user is NULL OR fk_user = 0)"; @@ -171,27 +186,28 @@ function printDropdownBookmarksList() '; $html .= ' - - - '; - - $html .= ' - + '; + $html .= ' + + + '; + $html .= ' '; } diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php index bbc92a83ef1..5b22b8918d9 100644 --- a/htdocs/bookmarks/card.php +++ b/htdocs/bookmarks/card.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2015 Laurent Destailleur + * Copyright (C) 2005-2022 Laurent Destailleur * Copyright (C) 2014 Marcos García * * This program is free software; you can redistribute it and/or modify @@ -18,23 +18,22 @@ */ /** - * \file htdocs/bookmarks/card.php - * \brief Page display/creation of bookmarks - * \ingroup bookmark + * \file htdocs/bookmarks/card.php + * \ingroup bookmark + * \brief Page display/creation of bookmarks */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php'; + // Load translation files required by the page $langs->loadLangs(array('bookmarks', 'other')); -// Security check -if (empty($user->rights->bookmark->lire)) { - restrictedArea($user, 'bookmarks'); -} +// Get Parameters $id = GETPOST("id", 'int'); $action = GETPOST("action", "alpha"); $title = (string) GETPOST("title", "alpha"); @@ -45,12 +44,22 @@ $userid = GETPOST("userid", "int"); $position = GETPOST("position", "int"); $backtopage = GETPOST('backtopage', 'alpha'); + +// Initialize Objects $object = new Bookmark($db); if ($id > 0) { $object->fetch($id); } +// Security check +if (empty($user->rights->bookmark->lire)) { + restrictedArea($user, 'bookmarks'); +} + + + + /* * Actions */ @@ -124,6 +133,7 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update') { } + /* * View */ @@ -176,7 +186,7 @@ if ($action == 'create') { print $form->selectarray('target', $liste, GETPOSTISSET('target') ? GETPOST('target', 'int') : $defaulttarget, 0, 0, 0, '', 0, 0, 0, '', 'maxwidth300'); print '
'.$langs->trans("ChooseIfANewWindowMustBeOpenedOnClickOnBookmark").'
'.$langs->trans("Visibility").''; print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : $user->id, 'userid', 0, '', 0, ($user->admin ? '' : array($user->id)), '', 0, 0, 0, '', ($user->admin) ? 1 : 0, '', 'maxwidth300 widthcentpercentminusx'); print '
'.$langs->trans("Visibility").''; if ($action == 'edit' && $user->admin) { - print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : ($object->fk_user ? $object->fk_user : ''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); + print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : ($object->fk_user ? $object->fk_user : ''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300 widthcentpercentminusx'); } else { if ($object->fk_user > 0) { $fuser = new User($db); diff --git a/htdocs/bookmarks/class/bookmark.class.php b/htdocs/bookmarks/class/bookmark.class.php index 39bb06c2ada..ffc0b24619b 100644 --- a/htdocs/bookmarks/class/bookmark.class.php +++ b/htdocs/bookmarks/class/bookmark.class.php @@ -254,18 +254,18 @@ class Bookmark extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'bookmark' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/bookmarks/list.php b/htdocs/bookmarks/list.php index 07ea263eeda..9434cf031a2 100644 --- a/htdocs/bookmarks/list.php +++ b/htdocs/bookmarks/list.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2005-2022 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,52 +16,54 @@ */ /** - * \file htdocs/bookmarks/list.php - * \brief Page to display list of bookmarks - * \ingroup bookmark + * \file htdocs/bookmarks/list.php + * \ingroup bookmark + * \brief Page to display list of bookmarks */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php'; // Load translation files required by the page $langs->loadLangs(array('bookmarks', 'admin')); +// Get Parameters $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'bookmarklist'; // To manage different context of search - -// Security check -if (empty($user->rights->bookmark->lire)) { - restrictedArea($user, 'bookmarks'); -} +$id = GETPOST("id", 'int'); $optioncss = GETPOST('optioncss', 'alpha'); // Load variable for pagination -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters $page = 0; -} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action +} $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortfield) { - $sortfield = 'position'; + $sortfield = 'b.position'; } if (!$sortorder) { $sortorder = 'ASC'; } -$id = GETPOST("id", 'int'); - +// Initialize Objects $object = new Bookmark($db); +// Security check +restrictedArea($user, 'bookmark'); + +// Permissions $permissiontoread = !empty($user->rights->bookmark->lire); $permissiontoadd = !empty($user->rights->bookmark->creer); $permissiontodelete = !empty($user->rights->bookmark->supprimer); @@ -71,6 +73,14 @@ $permissiontodelete = !empty($user->rights->bookmark->supprimer); * Actions */ +if (GETPOST('cancel', 'alpha')) { + $action = 'list'; + $massaction = ''; +} +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { + $massaction = ''; +} + if ($action == 'delete') { $res = $object->remove($id); if ($res > 0) { @@ -82,18 +92,22 @@ if ($action == 'delete') { } + /* * View */ $form = new Form($db); -$title = $langs->trans("ListOfBookmarks"); +$title = $langs->trans("Bookmarks"); llxHeader('', $title); $sql = "SELECT b.rowid, b.dateb, b.fk_user, b.url, b.target, b.title, b.favicon, b.position,"; $sql .= " u.login, u.lastname, u.firstname"; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."bookmark as b LEFT JOIN ".MAIN_DB_PREFIX."user as u ON b.fk_user=u.rowid"; $sql .= " WHERE 1=1"; $sql .= " AND b.entity IN (".getEntity('bookmark').")"; @@ -101,34 +115,42 @@ if (!$user->admin) { $sql .= " AND (b.fk_user = ".((int) $user->id)." OR b.fk_user is NULL OR b.fk_user = 0)"; } -$sql .= $db->order($sortfield.", position", $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) { - $num = $nbtotalofrecords; -} else { + +// Complete request and execute it with limit +$sql .= $db->order($sortfield.", position", $sortorder); +if ($limit) { $sql .= $db->plimit($limit + 1, $offset); - - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - exit; - } - - $num = $db->num_rows($resql); } -$param = ""; +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + +$param = ''; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -136,7 +158,7 @@ if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } if ($optioncss != '') { - $param = '&optioncss='.urlencode($optioncss); + $param .= '&optioncss='.urlencode($optioncss); } $moreforfilter = ''; @@ -148,7 +170,7 @@ $arrayofmassactions = array( //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), ); -if ($permissiontodelete) { +if (!empty($permissiontodelete)) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) { @@ -156,7 +178,7 @@ if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'pr } $massactionbutton = $form->selectMassAction('', $arrayofmassactions); -print ''; +print ''."\n"; if ($optioncss != '') { print ''; } @@ -165,7 +187,9 @@ print ''; print ''; print ''; +print ''; print ''; +print ''; $newcardbutton = ''; $newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/bookmarks/card.php?action=create&backtopage='.urlencode(DOL_URL_ROOT.'/bookmarks/list.php'), '', !empty($user->rights->bookmark->creer)); @@ -177,13 +201,13 @@ print ''; //print ""; -print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "b.rowid", "", $param, 'align="left"', $sortfield, $sortorder); -print_liste_field_titre("Title", $_SERVER["PHP_SELF"], "b.title", "", $param, 'align="left"', $sortfield, $sortorder); -print_liste_field_titre("Link", $_SERVER["PHP_SELF"], "b.url", "", $param, 'align="left"', $sortfield, $sortorder); -print_liste_field_titre("Target", '', '', '', '', 'align="center"'); -print_liste_field_titre("Visibility", $_SERVER["PHP_SELF"], "u.lastname", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "b.dateb", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("Position", $_SERVER["PHP_SELF"], "b.position", "", $param, 'class="right"', $sortfield, $sortorder); +print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "b.rowid", "", $param, '', $sortfield, $sortorder); +print_liste_field_titre("Title", $_SERVER["PHP_SELF"], "b.title", "", $param, '', $sortfield, $sortorder); +print_liste_field_titre("Link", $_SERVER["PHP_SELF"], "b.url", "", $param, '', $sortfield, $sortorder); +print_liste_field_titre("Target", $_SERVER["PHP_SELF"], "b.target", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre("Visibility", $_SERVER["PHP_SELF"], "u.lastname", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre("DateCreation", $_SERVER["PHP_SELF"], "b.dateb", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre("Position", $_SERVER["PHP_SELF"], "b.position", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre(''); print "\n"; @@ -203,33 +227,31 @@ while ($i < min($num, $limit)) { print $object->getNomUrl(1); print ''; - $linkintern = 0; + $linkintern = 1; + if (preg_match('/^http/i', $obj->url)) { + $linkintern = 0; + } $title = $obj->title; $link = $obj->url; $canedit = $user->rights->bookmark->supprimer; $candelete = $user->rights->bookmark->creer; // Title - print "\n"; // Url print '\n"; // Target @@ -262,7 +284,7 @@ while ($i < min($num, $limit)) { print "\n"; // Date creation - print '"; + print '"; // Position print '"; diff --git a/htdocs/categories/admin/categorie.php b/htdocs/categories/admin/categorie.php index 02e6892b571..72b7f02f0d2 100644 --- a/htdocs/categories/admin/categorie.php +++ b/htdocs/categories/admin/categorie.php @@ -23,6 +23,7 @@ * \brief Categorie admin pages */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php'; @@ -67,7 +68,7 @@ if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { * View */ -$help_url = 'EN:Module Categories|FR:Module Catégories|ES:Módulo Categorías'; +$help_url = 'EN:Module Categories|FR:Module Catégories|ES:Módulo Categorías|DE:Modul_Kategorien'; $linkback = ''.$langs->trans("BackToModuleList").''; llxHeader('', $langs->trans("Categories"), $help_url); diff --git a/htdocs/categories/admin/categorie_extrafields.php b/htdocs/categories/admin/categorie_extrafields.php index 7dbf31835ca..7f2fabe4a3a 100644 --- a/htdocs/categories/admin/categorie_extrafields.php +++ b/htdocs/categories/admin/categorie_extrafields.php @@ -24,6 +24,7 @@ * \brief Page to setup extra fields of category */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -63,7 +64,7 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; $textobject = $langs->transnoentitiesnoconv("Categories"); -$help_url = 'EN:Module Categories|FR:Module Catégories|ES:Módulo Categorías'; +$help_url = 'EN:Module Categories|FR:Module Catégories|ES:Módulo Categorías|DE:Modul_Kategorien'; llxHeader('', $langs->trans("Categories"), $help_url); @@ -79,13 +80,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
'; - print ''.$langs->trans("NewAttribute").''; - print "
"; -} - // Creation of an optional field if ($action == 'create') { print '
'; diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php index ec3d75dee1a..c94e464a762 100644 --- a/htdocs/categories/card.php +++ b/htdocs/categories/card.php @@ -27,6 +27,7 @@ * \brief Page to create a new category */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -246,7 +247,7 @@ if ($user->rights->categorie->creer) { // Description print ''; diff --git a/htdocs/categories/class/api_categories.class.php b/htdocs/categories/class/api_categories.class.php index 7e3720abad8..e59ff070aec 100644 --- a/htdocs/categories/class/api_categories.class.php +++ b/htdocs/categories/class/api_categories.class.php @@ -51,10 +51,13 @@ class Categories extends DolibarrApi 4 => 'contact', 5 => 'account', 6 => 'project', - //7 => 'user', - //8 => 'bank_line', - //9 => 'warehouse', - //10 => 'actioncomm', + 7 => 'user', + 8 => 'bank_line', + 9 => 'warehouse', + 10 => 'actioncomm', + 11 => 'website_page', + 12 => 'ticket', + 13 => 'knowledgemanagement' ); /** @@ -302,7 +305,8 @@ class Categories extends DolibarrApi Categorie::TYPE_CUSTOMER, Categorie::TYPE_SUPPLIER, Categorie::TYPE_MEMBER, - Categorie::TYPE_PROJECT + Categorie::TYPE_PROJECT, + Categorie::TYPE_KNOWLEDGEMANAGEMENT ])) { throw new RestException(401); } @@ -311,7 +315,7 @@ class Categories extends DolibarrApi throw new RestException(401); } elseif ($type == Categorie::TYPE_CONTACT && !DolibarrApiAccess::$user->rights->contact->lire) { throw new RestException(401); - } elseif ($type == Categorie::TYPE_CUSTOMER && !DolibarrApiAccess::$user->rights->societe->lire) { + } elseif ($type == Categorie::TYPE_CUSTOMER && !DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } elseif ($type == Categorie::TYPE_SUPPLIER && !DolibarrApiAccess::$user->rights->fournisseur->lire) { throw new RestException(401); @@ -319,6 +323,8 @@ class Categories extends DolibarrApi throw new RestException(401); } elseif ($type == Categorie::TYPE_PROJECT && !DolibarrApiAccess::$user->rights->projet->lire) { throw new RestException(401); + } elseif ($type == Categorie::TYPE_KNOWLEDGEMANAGEMENT && !DolibarrApiAccess::$user->rights->knowledgemanagement->knowledgerecord->read) { + throw new RestException(401); } $categories = $this->category->getListForItem($id, $type, $sortfield, $sortorder, $limit, $page); @@ -380,7 +386,7 @@ class Categories extends DolibarrApi } $object = new Contact($this->db); } elseif ($type === Categorie::TYPE_MEMBER) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } $object = new Adherent($this->db); @@ -460,7 +466,7 @@ class Categories extends DolibarrApi } $object = new Contact($this->db); } elseif ($type === Categorie::TYPE_MEMBER) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } $object = new Adherent($this->db); @@ -540,7 +546,7 @@ class Categories extends DolibarrApi } $object = new Contact($this->db); } elseif ($type === Categorie::TYPE_MEMBER) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } $object = new Adherent($this->db); @@ -618,7 +624,7 @@ class Categories extends DolibarrApi } $object = new Contact($this->db); } elseif ($type === Categorie::TYPE_MEMBER) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } $object = new Adherent($this->db); @@ -662,6 +668,10 @@ class Categories extends DolibarrApi $object = parent::_cleanObjectDatas($object); // Remove fields not relevent to categories + unset($object->MAP_CAT_FK); + unset($object->MAP_CAT_TABLE); + unset($object->MAP_OBJ_CLASS); + unset($object->MAP_OBJ_TABLE); unset($object->country); unset($object->country_id); unset($object->country_code); @@ -672,9 +682,6 @@ class Categories extends DolibarrApi unset($object->total_ttc); unset($object->total_tva); unset($object->lines); - unset($object->fk_incoterms); - unset($object->label_incoterms); - unset($object->location_incoterms); unset($object->civility_id); unset($object->name); unset($object->lastname); diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index 14cdfe84783..4d6e3e1736f 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -175,11 +175,10 @@ class Categorie extends CommonObject ); /** - * @var array Object table mapping from type string (table llx_...) when value of key does not match table name. - * - * @note Move to const array when PHP 5.6 will be our minimum target + * @var array Object table mapping from type string (table llx_...) when value of key does not match table name. + * This array may be completed by external modules with hook "constructCategory" */ - public static $MAP_OBJ_TABLE = array( + public $MAP_OBJ_TABLE = array( 'customer' => 'societe', 'supplier' => 'societe', 'member' => 'adherent', @@ -333,6 +332,7 @@ class Categorie extends CommonObject // Check parameters if (empty($id) && empty($label) && empty($ref_ext)) { + $this->error = "No category to search for"; return -1; } if (!is_null($type) && !is_numeric($type)) { @@ -372,6 +372,8 @@ class Categorie extends CommonObject $this->entity = (int) $res['entity']; $this->date_creation = $this->db->jdate($res['date_creation']); $this->date_modification = $this->db->jdate($res['tms']); + $this->user_creation_id = (int) $res['fk_user_creat']; + $this->user_modification_id = (int) $res['fk_user_modif']; $this->user_creation = (int) $res['fk_user_creat']; $this->user_modification = (int) $res['fk_user_modif']; @@ -382,12 +384,13 @@ class Categorie extends CommonObject $this->db->free($resql); // multilangs - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->getMultiLangs(); } return 1; } else { + $this->error = "No category found"; return 0; } } else { @@ -633,23 +636,30 @@ class Categorie extends CommonObject } $arraydelete = array( - 'categorie_product' => 'fk_categorie', - 'categorie_fournisseur' => 'fk_categorie', - 'categorie_societe' => 'fk_categorie', - 'categorie_member' => 'fk_categorie', - 'categorie_contact' => 'fk_categorie', - 'categorie_user' => 'fk_categorie', - 'categorie_project' => 'fk_categorie', 'categorie_account' => 'fk_categorie', - 'categorie_website_page' => 'fk_categorie', - 'categorie_warehouse' => 'fk_categorie', 'categorie_actioncomm' => 'fk_categorie', - 'categorie_ticket' => 'fk_categorie', + 'categorie_contact' => 'fk_categorie', + 'categorie_fournisseur' => 'fk_categorie', + 'categorie_knowledgemanagement' => array('field' => 'fk_categorie', 'enabled' => isModEnabled('knowledgemanagement')), + 'categorie_member' => 'fk_categorie', + 'categorie_user' => 'fk_categorie', + 'categorie_product' => 'fk_categorie', + 'categorie_project' => 'fk_categorie', + 'categorie_societe' => 'fk_categorie', + 'categorie_ticket' => array('field' => 'fk_categorie', 'enabled' => isModEnabled('ticket')), + 'categorie_warehouse' => 'fk_categorie', + 'categorie_website_page' => array('field' => 'fk_categorie', 'enabled' => isModEnabled('website')), 'bank_class' => 'fk_categ', 'categorie_lang' => 'fk_category', 'categorie' => 'rowid', ); foreach ($arraydelete as $key => $value) { + if (is_array($value)) { + if (empty($value['enabled'])) { + continue; + } + $value = $value['field']; + } $sql = "DELETE FROM ".MAIN_DB_PREFIX.$key; $sql .= " WHERE ".$value." = ".((int) $this->id); if (!$this->db->query($sql)) { @@ -684,6 +694,7 @@ class Categorie extends CommonObject * @param CommonObject $obj Object to link to category * @param string $type Type of category ('product', ...). Use '' to take $obj->element. * @return int 1 : OK, -1 : erreur SQL, -2 : id not defined, -3 : Already linked + * @see del_type() */ public function add_type($obj, $type = '') { @@ -700,13 +711,14 @@ class Categorie extends CommonObject $type = $obj->element; } + dol_syslog(get_class($this).'::add_type', LOG_DEBUG); + $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."categorie_".(empty($this->MAP_CAT_TABLE[$type]) ? $type : $this->MAP_CAT_TABLE[$type]); $sql .= " (fk_categorie, fk_".(empty($this->MAP_CAT_FK[$type]) ? $type : $this->MAP_CAT_FK[$type]).")"; $sql .= " VALUES (".((int) $this->id).", ".((int) $obj->id).")"; - dol_syslog(get_class($this).'::add_type', LOG_DEBUG); if ($this->db->query($sql)) { if (!empty($conf->global->CATEGORIE_RECURSIV_ADD)) { $sql = 'SELECT fk_parent FROM '.MAIN_DB_PREFIX.'categorie'; @@ -774,8 +786,8 @@ class Categorie extends CommonObject * * @param CommonObject $obj Object * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member') - * * @return int 1 if OK, -1 if KO + * @see add_type() */ public function del_type($obj, $type) { @@ -826,7 +838,7 @@ class Categorie extends CommonObject /** * Return list of fetched instance of elements having this category * - * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member', 'knowledge_management' ...) + * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member', 'knowledge_management', ...) * @param int $onlyids Return only ids of objects (consume less memory) * @param int $limit Limit * @param int $offset Offset @@ -989,7 +1001,7 @@ class Categorie extends CommonObject $categories[$i]['array_options'] = $category_static->array_options; // multilangs - if (!empty($conf->global->MAIN_MULTILANGS) && isset($category_static->multilangs)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && isset($category_static->multilangs)) { $categories[$i]['multilangs'] = $category_static->multilangs; } } @@ -1117,11 +1129,11 @@ class Categorie extends CommonObject // Init $this->cats array $sql = "SELECT DISTINCT c.rowid, c.label, c.ref_ext, c.description, c.color, c.fk_parent, c.visible"; // Distinct reduce pb with old tables with duplicates - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $sql .= ", t.label as label_trans, t.description as description_trans"; } $sql .= " FROM ".MAIN_DB_PREFIX."categorie as c"; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_lang as t ON t.fk_category=c.rowid AND t.lang='".$this->db->escape($current_lang)."'"; } $sql .= " WHERE c.entity IN (".getEntity('category').")"; @@ -1140,6 +1152,7 @@ class Categorie extends CommonObject $this->cats[$obj->rowid]['color'] = $obj->color; $this->cats[$obj->rowid]['visible'] = $obj->visible; $this->cats[$obj->rowid]['ref_ext'] = $obj->ref_ext; + $this->cats[$obj->rowid]['picto'] = 'category'; $i++; } } else { @@ -1176,8 +1189,6 @@ class Categorie extends CommonObject dol_syslog(get_class($this)."::get_full_arbo dol_sort_array", LOG_DEBUG); $this->cats = dol_sort_array($this->cats, 'fulllabel', 'asc', true, false); - //$this->debug_cats(); - return $this->cats; } @@ -1188,7 +1199,7 @@ class Categorie extends CommonObject * * @param int $id_categ id_categ entry to update * @param int $protection Deep counter to avoid infinite loop - * @return void + * @return int <0 if KO, >0 if OK * @see get_full_arbo() */ private function buildPathFromId($id_categ, $protection = 1000) @@ -1198,7 +1209,7 @@ class Categorie extends CommonObject if (!empty($this->cats[$id_categ]['fullpath'])) { // Already defined dol_syslog(get_class($this)."::buildPathFromId fullpath and fulllabel already defined", LOG_WARNING); - return; + return -1; } // First build full array $motherof @@ -1214,9 +1225,10 @@ class Categorie extends CommonObject while ((empty($protection) || $i < $protection) && !empty($this->motherof[$cursor_categ])) { //print '  cursor_categ='.$cursor_categ.' i='.$i.' '.$this->motherof[$cursor_categ].'
'."\n"; $this->cats[$id_categ]['fullpath'] = '_'.$this->motherof[$cursor_categ].$this->cats[$id_categ]['fullpath']; - $this->cats[$id_categ]['fulllabel'] = $this->cats[$this->motherof[$cursor_categ]]['label'].' >> '.$this->cats[$id_categ]['fulllabel']; + $this->cats[$id_categ]['fulllabel'] = (empty($this->cats[$this->motherof[$cursor_categ]]) ? 'NotFound' : $this->cats[$this->motherof[$cursor_categ]]['label']).' >> '.$this->cats[$id_categ]['fulllabel']; //print '  Result for id_categ='.$id_categ.' : '.$this->cats[$id_categ]['fullpath'].' '.$this->cats[$id_categ]['fulllabel'].'
'."\n"; - $i++; $cursor_categ = $this->motherof[$cursor_categ]; + $i++; + $cursor_categ = $this->motherof[$cursor_categ]; } //print 'Result for id_categ='.$id_categ.' : '.$this->cats[$id_categ]['fullpath'].'
'."\n"; @@ -1224,28 +1236,7 @@ class Categorie extends CommonObject $nbunderscore = substr_count($this->cats[$id_categ]['fullpath'], '_'); $this->cats[$id_categ]['level'] = ($nbunderscore ? $nbunderscore : null); - return; - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Display content of $this->cats - * - * @return void - */ - public function debug_cats() - { - // phpcs:enable - // Display $this->cats - foreach ($this->cats as $key => $val) { - print 'id: '.$this->cats[$key]['id']; - print ' label: '.$this->cats[$key]['label']; - print ' mother: '.$this->cats[$key]['fk_parent']; - //print ' children: '.(is_array($this->cats[$key]['id_children'])?join(',',$this->cats[$key]['id_children']):''); - print ' fullpath: '.$this->cats[$key]['fullpath']; - print ' fulllabel: '.$this->cats[$key]['fulllabel']; - print "
\n"; - } + return 1; } @@ -1661,10 +1652,10 @@ class Categorie extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Deplace fichier uploade sous le nom $files dans le repertoire sdir + * Deplace fichier uploade sous le nom $file dans le repertoire sdir * - * @param string $sdir Repertoire destination finale - * @param string $file Nom du fichier uploade + * @param string $sdir Final destination directory + * @param array $file Uploaded file name * @return void */ public function add_photo($sdir, $file) @@ -1948,18 +1939,18 @@ class Categorie extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'categorie_societe' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables, 1); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables, 1); } /** @@ -1968,6 +1959,7 @@ class Categorie extends CommonObject * @param string $type The category type (e.g Categorie::TYPE_WAREHOUSE) * @param string $rowIdName The name of the row id inside the whole sql query (e.g. "e.rowid") * @return string A additional SQL JOIN query + * @deprecated search on some categories must be done using a WHERE EXISTS or NOT EXISTS and not a LEFT JOIN. @TODO Replace with getWhereQuery($type, $searchCategoryList) */ public static function getFilterJoinQuery($type, $rowIdName) { @@ -1985,6 +1977,7 @@ class Categorie extends CommonObject * @param string $rowIdName The name of the row id inside the whole sql query (e.g. "e.rowid") * @param Array $searchList A list with the selected categories * @return string A additional SQL SELECT query + * @deprecated search on some categories must be done using a WHERE EXISTS or NOT EXISTS and not a LEFT JOIN */ public static function getFilterSelectQuery($type, $rowIdName, $searchList) { diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php index 518889b85b3..caacc986cc5 100644 --- a/htdocs/categories/edit.php +++ b/htdocs/categories/edit.php @@ -25,6 +25,7 @@ * \brief Page d'edition de categorie produit */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; diff --git a/htdocs/categories/index.php b/htdocs/categories/index.php index 4a9e771416c..babbf23e99a 100644 --- a/htdocs/categories/index.php +++ b/htdocs/categories/index.php @@ -27,6 +27,7 @@ * \brief Home page of category area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; diff --git a/htdocs/categories/info.php b/htdocs/categories/info.php index f5b54f50de9..81685a51e7b 100644 --- a/htdocs/categories/info.php +++ b/htdocs/categories/info.php @@ -23,6 +23,7 @@ * \brief Category info page */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; diff --git a/htdocs/categories/photos.php b/htdocs/categories/photos.php index 4e7d5bb8943..bd98afb87f7 100644 --- a/htdocs/categories/photos.php +++ b/htdocs/categories/photos.php @@ -26,6 +26,7 @@ * \brief Gestion des photos d'une categorie */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; diff --git a/htdocs/categories/traduction.php b/htdocs/categories/traduction.php index 2bbb4b5f0a8..f0f40b4401b 100644 --- a/htdocs/categories/traduction.php +++ b/htdocs/categories/traduction.php @@ -20,11 +20,12 @@ */ /** - * \file htdocs/product/traduction.php - * \ingroup product - * \brief Page of translation of products + * \file htdocs/categories/traduction.php + * \ingroup categories + * \brief Page of translation of categories */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -35,8 +36,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; // Load translation files required by the page $langs->loadLangs(array('categories', 'languages')); -$id = GETPOST('id', 'int'); -$label = GETPOST('label', 'alpha'); +$id = GETPOST('id', 'int'); +$label = GETPOST('label', 'alpha'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); @@ -56,21 +57,23 @@ if ($result <= 0) { $type = $object->type; if (is_numeric($type)) { - $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility + $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility } + /* * Actions */ + $error = 0; -// retour a l'affichage des traduction si annulation +// return to translation view if cancelled if ($cancel == $langs->trans("Cancel")) { $action = ''; } -// Validation de l'ajout +// validation of addition if ($action == 'vadd' && $cancel != $langs->trans("Cancel") && ($user->rights->categorie->creer)) { @@ -94,7 +97,7 @@ $cancel != $langs->trans("Cancel") && } if (!$error) { - // update de l'objet + // update the object if ($forcelangprod == $current_lang) { $object->label = $libelle; $object->description = dol_htmlcleanlastbr($desc); @@ -103,7 +106,7 @@ $cancel != $langs->trans("Cancel") && $object->multilangs[$forcelangprod]["description"] = dol_htmlcleanlastbr($desc); } - // sauvegarde en base + // save in base / sauvegarde en base $res = $object->setMultiLangs($user); if ($res < 0) { $error++; @@ -119,14 +122,14 @@ $cancel != $langs->trans("Cancel") && } } -// Validation de l'edition +// validation of the edition if ($action == 'vedit' && $cancel != $langs->trans("Cancel") && ($user->rights->categorie->creer)) { $object->fetch($id); $current_lang = $langs->getDefaultLang(); - foreach ($object->multilangs as $key => $value) { // enregistrement des nouvelles valeurs dans l'objet + foreach ($object->multilangs as $key => $value) { // recording of new values in the object $libelle = GETPOST('libelle-'.$key, 'alpha'); $desc = GETPOST('desc-'.$key); @@ -164,7 +167,7 @@ $cancel != $langs->trans("Cancel") && * View */ -$form = new Form($db); +$form = new Form($db); $formadmin = new FormAdmin($db); $formother = new FormOther($db); @@ -223,10 +226,10 @@ print dol_get_fiche_end(); - /* * Action bar */ + print "\n
\n"; if ($action == '') { @@ -243,7 +246,7 @@ print "\n
\n"; if ($action == 'edit') { - //WYSIWYG Editor + // WYSIWYG Editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; print ''; @@ -260,10 +263,11 @@ if ($action == 'edit') { // Label $libelle = (GETPOST('libelle-'.$key, 'alpha') ? GETPOST('libelle-'.$key, 'alpha') : $object->multilangs[$key]['label']); print ''; + // Desc $desc = (GETPOST('desc-'.$key) ? GETPOST('desc-'.$key) : $object->multilangs[$key]['description']); print ''; @@ -323,7 +327,7 @@ if ($action == 'add' && ($user->rights->produit->creer || $user->rights->service print ''; print ''; print ''; diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 7d12f571c06..6f09e734406 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -27,6 +27,7 @@ * \brief Page to show a category card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php'; @@ -34,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; // Load translation files required by the page -$langs->load("categories"); +$langs->loadLangs(array("categories", "compta")); $id = GETPOST('id', 'int'); $label = GETPOST('label', 'alpha'); @@ -103,7 +104,7 @@ if ($confirm == 'no') { $parameters = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks // Remove element from category -if ($id > 0 && $removeelem > 0) { +if ($id > 0 && $removeelem > 0 && $action == 'unlink') { if ($type == Categorie::TYPE_PRODUCT && ($user->rights->produit->creer || $user->rights->service->creer)) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $tmpobject = new Product($db); @@ -117,7 +118,7 @@ if ($id > 0 && $removeelem > 0) { $tmpobject = new Societe($db); $result = $tmpobject->fetch($removeelem); $elementtype = 'customer'; - } elseif ($type == Categorie::TYPE_MEMBER && $user->rights->adherent->creer) { + } elseif ($type == Categorie::TYPE_MEMBER && $user->hasRight('adherent', 'creer')) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; $tmpobject = new Adherent($db); $result = $tmpobject->fetch($removeelem); @@ -373,7 +374,7 @@ if ($cats < 0) { dol_print_error($db, $object->error, $object->errors); } elseif (count($cats) < 1) { print ''; - print ''; + print ''; print ''; } else { $categstatic = new Categorie($db); @@ -381,7 +382,7 @@ if ($cats < 0) { $fulltree = $categstatic->get_full_arbo($type, $object->id, 1); // Load possible missing includes - if ($conf->global->CATEGORY_SHOW_COUNTS) { + if (getDolGlobalString('CATEGORY_SHOW_COUNTS')) { if ($type == Categorie::TYPE_MEMBER) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; } @@ -407,11 +408,9 @@ if ($cats < 0) { $desc = dol_htmlcleanlastbr($val['description']); $counter = ''; - if ($conf->global->CATEGORY_SHOW_COUNTS) { + if (getDolGlobalString('CATEGORY_SHOW_COUNTS')) { // we need only a count of the elements, so it is enough to consume only the id's from the database - $elements = $type == Categorie::TYPE_ACCOUNT - ? $categstatic->getObjectsInCateg("account", 1) // Categorie::TYPE_ACCOUNT is "bank_account" instead of "account" - : $categstatic->getObjectsInCateg($type, 1); + $elements = $categstatic->getObjectsInCateg($type, 1); $counter = ""; } @@ -462,7 +461,7 @@ if ($cats < 0) { print ''; print ''; - print ''; + print ''; print ''; print ''; @@ -489,745 +488,800 @@ $typeid = $type; // List of products or services (type is type of category) if ($type == Categorie::TYPE_PRODUCT) { - $permission = ($user->rights->produit->creer || $user->rights->service->creer); + if ($user->hasRight("product", "read")) { + $permission = ($user->rights->produit->creer || $user->rights->service->creer); + + $prods = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($prods < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
 
"; - $linkintern = 1; - if ($linkintern) { - print ''; - } - print $title; - if ($linkintern) { - print ""; - } + print ''; + print dol_escape_htmltag($title); print "'; - if (!$linkintern) { - print 'target ? ' target="newlink" rel="noopener"' : '').'>'; + if (empty($linkintern)) { + print img_picto('', 'url', 'class="pictofixedwidth"'); + print 'target ? ' target="newlink" rel="noopener"' : '').'>'; + } else { + //print img_picto('', 'rightarrow', 'class="pictofixedwidth"'); + print ''; } print $link; - if (!$linkintern) { - print ''; - } + print ''; print "'.dol_print_date($db->jdate($obj->dateb), 'day')."'.dol_print_date($db->jdate($obj->dateb), 'day')."'.$obj->position."
'.$langs->trans("Description").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('description', $description, '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_5, '90%'); + $doleditor = new DolEditor('description', $description, '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_5, '90%'); $doleditor->Create(); print '
'.$langs->trans('Label').'
'.$langs->trans('Description').''; - $doleditor = new DolEditor("desc-$key", $desc, '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%'); + $doleditor = new DolEditor("desc-$key", $desc, '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_3, '90%'); $doleditor->Create(); print '
'.$langs->trans('Label').'
'.$langs->trans('Description').''; - $doleditor = new DolEditor('desc', GETPOST('desc', 'restricthtml'), '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%'); + $doleditor = new DolEditor('desc', GETPOST('desc', 'restricthtml'), '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_3, '90%'); $doleditor->Create(); print '
'.$langs->trans("NoSubCat").''.$langs->trans("NoSubCat").'
".(is_array($elements) ? count($elements) : '0')."
'.img_picto_common('', 'treemenu/branchbottom.gif').''.$langs->trans("NoCategoryYet").''.$langs->trans("NoCategoryYet").' 
'; + print ''; + print ''; + print '
'; + print $langs->trans("AddProductServiceIntoCategory").'  '; + $form->select_produits('', 'elemid', '', 0, 0, -1, 2, '', 1); + print '
'; + print ''; + } - $prods = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($prods < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddProductServiceIntoCategory").'  '; - $form->select_produits('', 'elemid', '', 0, 0, -1, 2, '', 1); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; - - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($prods); $nbtotalofrecords = ''; $newcardbutton = ''; - print_barre_liste($langs->trans("ProductsAndServices"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'products', 0, $newcardbutton, '', $limit); + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($prods); $nbtotalofrecords = ''; + $newcardbutton = dolGetButtonTitle($langs->trans("AddProduct"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&categories[]='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $user->rights->societe->creer); + print_barre_liste($langs->trans("ProductsAndServices"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'products', 0, $newcardbutton, '', $limit); - print ''."\n"; - print ''."\n"; + print '
'.$langs->trans("Ref").'
'."\n"; + print ''."\n"; - if (count($prods) > 0) { - $i = 0; - foreach ($prods as $prod) { - $i++; - if ($i > $limit) { - break; + if (count($prods) > 0) { + $i = 0; + foreach ($prods as $prod) { + $i++; + if ($i > $limit) { + break; + } + + print "\t".''."\n"; + print '\n"; + print '\n"; + // Link to delete from category + print ''; + print "\n"; } - - print "\t".''."\n"; - print '\n"; - print '\n"; - // Link to delete from category - print ''; - print "\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Ref").'
'; + print $prod->getNomUrl(1); + print "'.$prod->label."'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print '
'; - print $prod->getNomUrl(1); - print "'.$prod->label."'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print '
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "
\n"; - print ''."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("ProductsAndServices"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'products'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of customers if ($type == Categorie::TYPE_CUSTOMER) { - $permission = $user->rights->societe->creer; + if ($user->hasRight("societe", "read")) { + $permission = $user->rights->societe->creer; + + $socs = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($socs < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AddCustomerIntoCategory").'  '; + print $form->select_company('', 'elemid', 's.client IN (1,3)'); + print '
'; + print '
'; + } - $socs = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($socs < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddCustomerIntoCategory").'  '; - print $form->select_company('', 'elemid', 's.client IN (1,3)'); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($socs); $nbtotalofrecords = ''; + $newcardbutton = dolGetButtonTitle($langs->trans("AddThirdParty"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/societe/card.php?action=create&client=3&custcats[]='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $user->rights->societe->creer); + print_barre_liste($langs->trans("Customers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'companies', 0, $newcardbutton, '', $limit); - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($socs); $nbtotalofrecords = ''; $newcardbutton = ''; - print_barre_liste($langs->trans("Customers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'companies', 0, $newcardbutton, '', $limit); + print ''."\n"; + print ''."\n"; - print '
'.$langs->trans("Name").'
'."\n"; - print ''."\n"; + if (count($socs) > 0) { + $i = 0; + foreach ($socs as $key => $soc) { + $i++; + if ($i > $limit) { + break; + } - if (count($socs) > 0) { - $i = 0; - foreach ($socs as $key => $soc) { - $i++; - if ($i > $limit) { - break; + print "\t".''."\n"; + print '\n"; + // Link to delete from category + print ''; + print "\n"; } - - print "\t".''."\n"; - print '\n"; - // Link to delete from category - print ''; - print "\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Name").'
'; + print $soc->getNomUrl(1); + print "'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print '
'; - print $soc->getNomUrl(1); - print "'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print '
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Customers"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'companies'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of suppliers if ($type == Categorie::TYPE_SUPPLIER) { - $permission = $user->rights->societe->creer; + if ($user->hasRight("fournisseur", "read")) { + $permission = $user->rights->societe->creer; + + $socs = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($socs < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AddSupplierIntoCategory").'  '; + print $form->select_company('', 'elemid', 's.fournisseur = 1'); + print '
'; + print '
'; + } - $socs = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($socs < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddSupplierIntoCategory").'  '; - print $form->select_company('', 'elemid', 's.fournisseur = 1'); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($socs); $nbtotalofrecords = ''; + $newcardbutton = dolGetButtonTitle($langs->trans("AddSupplier"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/societe/card.php?action=create&fournisseur=1&suppcats[]='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $user->rights->societe->creer); + print_barre_liste($langs->trans("Suppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'companies', 0, $newcardbutton, '', $limit); - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($socs); $nbtotalofrecords = ''; $newcardbutton = ''; - print_barre_liste($langs->trans("Suppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'companies', 0, $newcardbutton, '', $limit); + print ''."\n"; + print '\n"; - print '
'.$langs->trans("Name")."
'."\n"; - print '\n"; + if (count($socs) > 0) { + $i = 0; + foreach ($socs as $soc) { + $i++; + if ($i > $limit) { + break; + } - if (count($socs) > 0) { - $i = 0; - foreach ($socs as $soc) { - $i++; - if ($i > $limit) { - break; + print "\t".''."\n"; + print '\n"; + // Link to delete from category + print ''; + + print "\n"; } - - print "\t".''."\n"; - print '\n"; - // Link to delete from category - print ''; - - print "\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Name")."
'; + print $soc->getNomUrl(1); + print "'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print '
'; - print $soc->getNomUrl(1); - print "'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print '
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Suppliers"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'companies'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of members if ($type == Categorie::TYPE_MEMBER) { - require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + if ($user->hasRight("adherent", "read")) { + require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $permission = $user->rights->adherent->creer; + $permission = $user->hasRight('adherent', 'creer'); + + $prods = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($prods < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AssignCategoryTo").'  '; + print $form->selectMembers('', 'elemid'); + print '
'; + print '
'; + } - $prods = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($prods < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AssignCategoryTo").'  '; - print $form->selectMembers('', 'elemid'); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($prods); $nbtotalofrecords = ''; + $newcardbutton = dolGetButtonTitle($langs->trans("AddMember"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/adherents/card.php?action=create&memcats[]='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $user->hasRight('adherent', 'creer')); + print_barre_liste($langs->trans("Member"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'members', 0, $newcardbutton, '', $limit); - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($prods); $nbtotalofrecords = ''; $newcardbutton = ''; - print_barre_liste($langs->trans("Member"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'members', 0, $newcardbutton, '', $limit); + print "\n"; + print ''."\n"; - print "
'.$langs->trans("Name").'
\n"; - print ''."\n"; + if (count($prods) > 0) { + $i = 0; + foreach ($prods as $key => $member) { + $i++; + if ($i > $limit) { + break; + } - if (count($prods) > 0) { - $i = 0; - foreach ($prods as $key => $member) { - $i++; - if ($i > $limit) { - break; + print "\t".''."\n"; + print '\n"; + print '\n"; + print '\n"; + // Link to delete from category + print '\n"; } - - print "\t".''."\n"; - print '\n"; - print '\n"; - print '\n"; - // Link to delete from category - print '\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Name").'
'; + $member->ref = $member->login; + print $member->getNomUrl(1, 0); + print "'.$member->lastname."'.$member->firstname."'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print "
'; - $member->ref = $member->login; - print $member->getNomUrl(1, 0); - print "'.$member->lastname."'.$member->firstname."'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print "
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Member"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'members'); + accessforbidden("NotEnoughPermissions", 0, 0); } } -// Categorie contact +// List of contacts if ($type == Categorie::TYPE_CONTACT) { - $permission = $user->rights->societe->creer; + if ($user->hasRight("societe", "read")) { + $permission = $user->rights->societe->creer; - $contacts = $object->getObjectsInCateg($type, 0, $limit, $offset); - if (is_numeric($contacts) && $contacts < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; + $contacts = $object->getObjectsInCateg($type, 0, $limit, $offset); + if (is_numeric($contacts) && $contacts < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AssignCategoryTo").'  '; + print $form->selectContacts('', '', 'elemid'); + print '
'; + print '
'; + } print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddContactIntoCategory").'  '; - print $form->selectContacts('', '', 'elemid'); - print '
'; - print '
'; - } - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; - $num = count($contacts); - $nbtotalofrecords = ''; - $newcardbutton = ''; - $objsoc = new Societe($db); - print_barre_liste($langs->trans("Contact"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'contact', 0, $newcardbutton, '', $limit); + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; + $num = count($contacts); + $nbtotalofrecords = ''; + $newcardbutton = dolGetButtonTitle($langs->trans("AddContact"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/contact/card.php?action=create&contcats[]='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $user->rights->societe->creer); + $objsoc = new Societe($db); + print_barre_liste($langs->trans("Contact"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'contact', 0, $newcardbutton, '', $limit); - print ''."\n"; - print ''."\n"; + print '
'.$langs->trans("Ref").'
'."\n"; + print ''."\n"; - if (is_array($contacts) && count($contacts) > 0) { - $i = 0; - foreach ($contacts as $key => $contact) { - $i++; - if ($i > $limit) { - break; + if (is_array($contacts) && count($contacts) > 0) { + $i = 0; + foreach ($contacts as $key => $contact) { + $i++; + if ($i > $limit) { + break; + } + + print "\t".''."\n"; + print '\n"; + // Link to delete from category + print ''; + print "\n"; } - - print "\t".''."\n"; - print '\n"; - // Link to delete from category - print ''; - print "\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Ref").'
'; + print $contact->getNomUrl(1, 'category'); + if ($contact->socid > 0) { + $objsoc->fetch($contact->socid); + print ' - '; + print $objsoc->getNomUrl(1, 'contact'); + } + print "'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print '
'; - print $contact->getNomUrl(1, 'category'); - if ($contact->socid > 0) { - $objsoc->fetch($contact->socid); - print ' - '; - print $objsoc->getNomUrl(1, 'contact'); - } - print "'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print '
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Contact"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'contact'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of bank accounts if ($type == Categorie::TYPE_ACCOUNT) { - require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; + if ($user->hasRight("banque", "read")) { + require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; - $permission = $user->rights->banque->creer; + $permission = $user->rights->banque->creer; + + $accounts = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($accounts < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AddAccountIntoCategory").'  '; + $form->select_comptes('', 'elemid'); + print '
'; + print '
'; + } - $accounts = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($accounts < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddAccountIntoCategory").'  '; - $form->select_comptes('', 'elemid'); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($accounts); $nbtotalofrecords = ''; $newcardbutton = ''; + print_barre_liste($langs->trans("Account"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit); - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($accounts); $nbtotalofrecords = ''; $newcardbutton = ''; - print_barre_liste($langs->trans("Account"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit); + print "\n"; + print ''."\n"; - print "
'.$langs->trans("Ref").'
\n"; - print ''."\n"; + if (count($accounts) > 0) { + $i = 0; + foreach ($accounts as $key => $account) { + $i++; + if ($i > $limit) { + break; + } - if (count($accounts) > 0) { - $i = 0; - foreach ($accounts as $key => $account) { - $i++; - if ($i > $limit) { - break; + print "\t".''."\n"; + print '\n"; + print '\n"; + print '\n"; + // Link to delete from category + print '\n"; } - - print "\t".''."\n"; - print '\n"; - print '\n"; - print '\n"; - // Link to delete from category - print '\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Ref").'
'; + print $account->getNomUrl(1, 0); + print "'.$account->bank."'.$account->number."'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print "
'; - print $account->getNomUrl(1, 0); - print "'.$account->bank."'.$account->number."'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print "
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Banque"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'bank'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of Project if ($type == Categorie::TYPE_PROJECT) { - require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + if ($user->hasRight("project", "read")) { + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; - $permission = $user->rights->projet->creer; + $permission = $user->rights->projet->creer; + + $objects = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($objects < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AddProjectIntoCategory").'  '; + $form->selectProjects('', 'elemid'); + print '
'; + print '
'; + } - $objects = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($objects < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddProjectIntoCategory").'  '; - $form->selectProjects('', 'elemid'); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($objects); $nbtotalofrecords = ''; $newcardbutton = ''; - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($objects); $nbtotalofrecords = ''; $newcardbutton = ''; + print_barre_liste($langs->trans("Project"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'project', 0, $newcardbutton, '', $limit); - print_barre_liste($langs->trans("Project"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'project', 0, $newcardbutton, '', $limit); + print "\n"; + print ''."\n"; - print "
'.$langs->trans("Ref").'
\n"; - print ''."\n"; + if (count($objects) > 0) { + $i = 0; + foreach ($objects as $key => $project) { + $i++; + if ($i > $limit) { + break; + } - if (count($objects) > 0) { - $i = 0; - foreach ($objects as $key => $project) { - $i++; - if ($i > $limit) { - break; + print "\t".''."\n"; + print '\n"; + print '\n"; + print '\n"; + // Link to delete from category + print '\n"; } - - print "\t".''."\n"; - print '\n"; - print '\n"; - print '\n"; - // Link to delete from category - print '\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Ref").'
'; + print $project->getNomUrl(1); + print "'.$project->ref."'.$project->title."'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print "
'; - print $project->getNomUrl(1); - print "'.$project->ref."'.$project->title."'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print "
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Project"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'project'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of users if ($type == Categorie::TYPE_USER) { - require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; + if ($user->hasRight("user", "user", "read")) { + require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; - $users = $object->getObjectsInCateg($type); - if ($users < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; + $users = $object->getObjectsInCateg($type); + if ($users < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AddObjectIntoCategory").'  '; + print $form->select_dolusers('', 'elemid'); + print '
'; + print '
'; + } print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddProjectIntoCategory").'  '; - print $form->select_dolusers('', 'elemid'); - print '
'; - print '
'; - } - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; - print '
'; + print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; - $num = count($users); + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; + $num = count($users); - print_barre_liste($langs->trans("Users"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, '', 'user', 0, '', '', $limit); + print_barre_liste($langs->trans("Users"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, '', 'user', 0, '', '', $limit); - print "\n"; - print ''."\n"; + print "
'.$langs->trans("Users").' '.$num.'
\n"; + print ''."\n"; - if (count($users) > 0) { - // Use "$userentry" here, because "$user" is the current user - foreach ($users as $key => $userentry) { - print "\t".''."\n"; - print '\n"; - print '\n"; + if (count($users) > 0) { + // Use "$userentry" here, because "$user" is the current user + foreach ($users as $key => $userentry) { + print "\t".''."\n"; + print '\n"; + print '\n"; - // Link to delete from category - print '\n"; } - print "\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Users").' '.$num.'
'; - print $userentry->getNomUrl(1); - print "'.$userentry->job."
'; + print $userentry->getNomUrl(1); + print "'.$userentry->job."'; - if ($user->rights->user->user->creer) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; + // Link to delete from category + print ''; + if ($user->rights->user->user->creer) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print "
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Users"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'user'); + accessforbidden("NotEnoughPermissions", 0, 0); } } // List of warehouses if ($type == Categorie::TYPE_WAREHOUSE) { - $permission = $user->rights->stock->creer; + if ($user->hasRight("stock", "read")) { + $permission = $user->rights->stock->creer; - require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; + require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; - $objects = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($objects < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; - - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($objects); $nbtotalofrecords = ''; $newcardbutton = ''; - - print_barre_liste($langs->trans("Warehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'stock', 0, $newcardbutton, '', $limit); - - print "\n"; - print ''."\n"; - - if (count($objects) > 0) { - $i = 0; - foreach ($objects as $key => $project) { - $i++; - if ($i > $limit) { - break; - } - - print "\t".''."\n"; - print '\n"; - print '\n"; - print '\n"; - // Link to delete from category - print '\n"; - } + $objects = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($objects < 0) { + dol_print_error($db, $object->error, $object->errors); } else { - print ''; - } - print "
'.$langs->trans("Ref").'
'; - print $project->getNomUrl(1); - print "'.$project->ref."'.$project->title."'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; - } - print "
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; - - print '
'."\n"; - } -} - -if ($type == Categorie::TYPE_TICKET) { - $permission = ($user->rights->categorie->creer || $user->rights->categorie->creer); - - $tickets = $object->getObjectsInCateg($type, 0, $limit, $offset); - if ($tickets < 0) { - dol_print_error($db, $object->error, $object->errors); - } else { - // Form to add record into a category - $showclassifyform = 1; - if ($showclassifyform) { - print '
'; print '
'; print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("AddTicketIntoCategory").'  '; - $form->selectTickets('', 'elemid'); - print '
'; - print '
'; - } + print ''; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($objects); $nbtotalofrecords = ''; $newcardbutton = ''; - print '
'; - $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($tickets); $nbtotalofrecords = ''; $newcardbutton = ''; - print_barre_liste($langs->trans("Ticket"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'ticket', 0, $newcardbutton, '', $limit); + print_barre_liste($langs->trans("Warehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'stock', 0, $newcardbutton, '', $limit); + print "\n"; + print ''."\n"; - print '
'.$langs->trans("Ref").'
'."\n"; - print ''."\n"; + if (count($objects) > 0) { + $i = 0; + foreach ($objects as $key => $project) { + $i++; + if ($i > $limit) { + break; + } - if (count($tickets) > 0) { - $i = 0; - foreach ($tickets as $ticket) { - $i++; - if ($i > $limit) break; - - print "\t".''."\n"; - print '\n"; - print '\n"; - // Link to delete from category - print ''."\n"; + print '\n"; + print '\n"; + print '\n"; + // Link to delete from category + print '\n"; } - print ''; - print "\n"; + } else { + print ''; } - } else { - print ''; - } - print "
'.$langs->trans("Ref").'
'; - print $ticket->getNomUrl(1); - print "'.$ticket->label."'; - if ($permission) { - print ""; - print $langs->trans("DeleteFromCat"); - print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); - print ""; + print "\t".'
'; + print $project->getNomUrl(1); + print "'.$project->ref."'.$project->title."'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print "
'.$langs->trans("ThisCategoryHasNoItems").'
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + print "\n"; - print '
'."\n"; + print ''."\n"; + } + } else { + print_barre_liste($langs->trans("Warehouse"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'stock'); + accessforbidden("NotEnoughPermissions", 0, 0); + } +} + +// List of tickets +if ($type == Categorie::TYPE_TICKET) { + if ($user->hasRight("ticket", "read")) { + $permission = ($user->rights->categorie->creer || $user->rights->categorie->creer); + + $tickets = $object->getObjectsInCateg($type, 0, $limit, $offset); + if ($tickets < 0) { + dol_print_error($db, $object->error, $object->errors); + } else { + // Form to add record into a category + $showclassifyform = 1; + if ($showclassifyform) { + print '
'; + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("AddTicketIntoCategory").'  '; + $form->selectTickets('', 'elemid'); + print '
'; + print '
'; + } + + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + + print '
'; + $param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($tickets); $nbtotalofrecords = ''; $newcardbutton = ''; + print_barre_liste($langs->trans("Ticket"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'ticket', 0, $newcardbutton, '', $limit); + + + print ''."\n"; + print ''."\n"; + + if (count($tickets) > 0) { + $i = 0; + foreach ($tickets as $ticket) { + $i++; + if ($i > $limit) break; + + print "\t".''."\n"; + print '\n"; + print '\n"; + // Link to delete from category + print ''; + print "\n"; + } + } else { + print ''; + } + print "
'.$langs->trans("Ref").'
'; + print $ticket->getNomUrl(1); + print "'.$ticket->label."'; + if ($permission) { + print "id."'>"; + print $langs->trans("DeleteFromCat"); + print img_picto($langs->trans("DeleteFromCat"), 'unlink', '', false, 0, 0, '', 'paddingleft'); + print ""; + } + print '
'.$langs->trans("ThisCategoryHasNoItems").'
\n"; + + print '
'."\n"; + } + } else { + print_barre_liste($langs->trans("Ticket"), null, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'ticket'); + accessforbidden("NotEnoughPermissions", 0, 0); } } diff --git a/htdocs/collab/index.php b/htdocs/collab/index.php index 296e0f3852f..746cc019a8b 100644 --- a/htdocs/collab/index.php +++ b/htdocs/collab/index.php @@ -24,6 +24,7 @@ define('NOSCANPOSTFORINJECTION', 1); define('NOSTYLECHECK', 1); +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index b1ae9dee61b..91eb9f49516 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -25,31 +25,35 @@ */ /** - * \file htdocs/comm/action/card.php - * \ingroup agenda - * \brief Page for event card + * \file htdocs/comm/action/card.php + * \ingroup agenda + * \brief Page for event card */ +// Load Dolibarr environment require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncommreminder.class.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncommreminder.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; + // Load translation files required by the page $langs->loadLangs(array("companies", "other", "commercial", "bills", "orders", "agenda", "mails")); +// Get Parameters $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -71,6 +75,7 @@ $offsetunit = GETPOST('offsetunittype_duration', 'aZ09'); $remindertype = GETPOST('selectremindertype', 'aZ09'); $modelmail = GETPOST('actioncommsendmodel_mail', 'int'); $complete = GETPOST('complete', 'alpha'); // 'na' must be allowed +$private = GETPOST('private', 'alphanohtml'); if ($complete == 'na' || $complete == -2) { $complete = -1; } @@ -85,6 +90,14 @@ if ($fulldayevent) { $datep = dol_mktime($aphour, $apmin, 0, GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int'), 'tzuserrel'); $datef = dol_mktime($p2hour, $p2min, '59', GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int'), 'tzuserrel'); } +$reg = array(); +if (GETPOST('datep')) { + if (GETPOST('datep') == 'now') { + $datep = dol_now(); + } elseif (preg_match('/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/', GETPOST("datep"), $reg)) { // Try to not use this. Use insteead '&datep=now' + $datep = dol_mktime(0, 0, 0, $reg[2], $reg[3], $reg[1], 'tzuser'); + } +} // Security check $socid = GETPOST('socid', 'int'); @@ -96,6 +109,7 @@ if ($user->socid) { $error = GETPOST("error"); $donotclearsession = GETPOST('donotclearsession') ?GETPOST('donotclearsession') : 0; +// Initialize Objects $object = new ActionComm($db); $cactioncomm = new CActionComm($db); $contact = new Contact($db); @@ -145,6 +159,8 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } +$usercancreate = $user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); + /* * Actions @@ -202,7 +218,7 @@ if (empty($reshook) && (GETPOST('addassignedtouser') || GETPOST('updateassignedt } // Link to a project -if (empty($reshook) && $action == 'classin' && ($user->rights->agenda->allactions->create || +if (empty($reshook) && $action == 'classin' && ($user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create))) { //$object->fetch($id); $object->setProject(GETPOST('projectid', 'int')); @@ -409,9 +425,42 @@ if (empty($reshook) && $action == 'add') { $error++; } + + if (!$error) { $db->begin(); + $selectedrecurrulefreq = 'no'; + $selectedrecurrulebymonthday = ''; + $selectedrecurrulebyday = ''; + $object->recurrule = GETPOSTISSET('recurrulefreq') ? "FREQ=".GETPOST('recurrulefreq', 'alpha') : ""; + $object->recurrule .= (GETPOST('recurrulefreq', 'alpha') == 'MONTHLY' && GETPOSTISSET('BYMONTHDAY')) ? "_BYMONTHDAY".GETPOST('BYMONTHDAY', 'alpha') : ""; + $object->recurrule .= (GETPOST('recurrulefreq', 'alpha') == 'WEEKLY' && GETPOSTISSET('BYDAY')) ? "_BYDAY".GETPOST('BYDAY', 'alpha') : ""; + + $reg1 = array(); $reg2 = array(); $reg3 = array(); + if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg1)) { + $selectedrecurrulefreq = $reg1[1]; + } + if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY(\d+)/i', $object->recurrule, $reg2)) { + $selectedrecurrulebymonthday = $reg2[1]; + } + if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg3)) { + $selectedrecurrulebyday = $reg3[1]; + } + + // Is event recurrent ? + $eventisrecurring = 0; + $userepeatevent = (getDolGlobalInt('MAIN_FEATURES_LEVEL') == 2 ? 1 : 0); + if ($userepeatevent && !empty($selectedrecurrulefreq) && $selectedrecurrulefreq != 'no') { + $eventisrecurring = 1; + $object->recurid = dol_print_date(dol_now('gmt'), 'dayhourlog', 'gmt'); + $object->recurdateend = dol_mktime(0, 0, 0, GETPOST('limitmonth', 'int'), GETPOST('limitday', 'int'), GETPOST('limityear', 'int')); + } else { + unset($object->recurid); + unset($object->recurrule); + unset($object->recurdateend); + } + // Creation of action/event $idaction = $object->create($user); @@ -474,15 +523,15 @@ if (empty($reshook) && $action == 'add') { $db->commit(); } - if (!empty($backtopage)) { - dol_syslog("Back to ".$backtopage.($moreparam ? (preg_match('/\?/', $backtopage) ? '&'.$moreparam : '?'.$moreparam) : '')); - header("Location: ".$backtopage.($moreparam ? (preg_match('/\?/', $backtopage) ? '&'.$moreparam : '?'.$moreparam) : '')); - } elseif ($idaction) { - header("Location: ".DOL_URL_ROOT.'/comm/action/card.php?id='.$idaction.($moreparam ? '&'.$moreparam : '')); - } else { - header("Location: ".DOL_URL_ROOT.'/comm/action/index.php'.($moreparam ? '?'.$moreparam : '')); - } - exit; + // if (!empty($backtopage)) { + // dol_syslog("Back to ".$backtopage.($moreparam ? (preg_match('/\?/', $backtopage) ? '&'.$moreparam : '?'.$moreparam) : '')); + // header("Location: ".$backtopage.($moreparam ? (preg_match('/\?/', $backtopage) ? '&'.$moreparam : '?'.$moreparam) : '')); + // } elseif ($idaction) { + // header("Location: ".DOL_URL_ROOT.'/comm/action/card.php?id='.$idaction.($moreparam ? '&'.$moreparam : '')); + // } else { + // header("Location: ".DOL_URL_ROOT.'/comm/action/index.php'.($moreparam ? '?'.$moreparam : '')); + // } + // exit; } else { // If error $db->rollback(); @@ -496,6 +545,132 @@ if (empty($reshook) && $action == 'add') { setEventMessages($object->error, $object->errors, 'errors'); $action = 'create'; $donotclearsession = 1; } + + if ($eventisrecurring) { + // We set first date of recurrence and offsets + if ($selectedrecurrulefreq == 'WEEKLY' && !empty($selectedrecurrulebyday)) { + $firstdatearray = dol_get_first_day_week(GETPOST("apday", 'int'), GETPOST("apmonth", 'int'), GETPOST("apyear", 'int')); + $datep = dol_mktime($fulldayevent ? '00' : GETPOST("aphour", 'int'), $fulldayevent ? '00' : GETPOST("apmin", 'int'), $fulldayevent ? '00' : GETPOST("apsec", 'int'), $firstdatearray['month'], $firstdatearray['first_day'], $firstdatearray['year'], $tzforfullday ? $tzforfullday : 'tzuser'); + $datep = dol_time_plus_duree($datep, $selectedrecurrulebyday + 6, 'd');//We begin the week after + $dayoffset = 7; + $monthoffset = 0; + } elseif ($selectedrecurrulefreq == 'MONTHLY' && !empty($selectedrecurrulebymonthday)) { + $firstday = $selectedrecurrulebymonthday; + $firstmonth = GETPOST("apday") > $selectedrecurrulebymonthday ? GETPOST("apmonth", 'int') + 1 : GETPOST("apmonth", 'int');//We begin the week after + $datep = dol_mktime($fulldayevent ? '00' : GETPOST("aphour", 'int'), $fulldayevent ? '00' : GETPOST("apmin", 'int'), $fulldayevent ? '00' : GETPOST("apsec", 'int'), $firstmonth, $firstday, GETPOST("apyear", 'int'), $tzforfullday ? $tzforfullday : 'tzuser'); + $dayoffset = 0; + $monthoffset = 1; + } else { + $error++; + } + // End date + $repeateventlimitdate = dol_mktime(23, 59, 59, GETPOSTISSET("limitmonth") ? GETPOST("limitmonth", 'int') : 1, GETPOSTISSET("limitday") ? GETPOST("limitday", 'int') : 1, GETPOSTISSET("limityear") && GETPOST("limityear", 'int') < 2100 ? GETPOST("limityear", 'int') : 2100, $tzforfullday ? $tzforfullday : 'tzuser'); + // Set date of end of event + $deltatime = num_between_day($object->datep, $datep); + $datef = dol_time_plus_duree($datef, $deltatime, 'd'); + + while ($datep <= $repeateventlimitdate && !$error) { + $finalobject = clone $object; + + + $finalobject->datep = $datep; + $finalobject->datef = $datef; + // Creation of action/event + $idaction = $finalobject->create($user); + + if ($idaction > 0) { + if (!$finalobject->error) { + // Category association + $categories = GETPOST('categories', 'array'); + $finalobject->setCategories($categories); + + unset($_SESSION['assignedtouser']); + + $moreparam = ''; + if ($user->id != $finalobject->userownerid) { + $moreparam = "filtert=-1"; // We force to remove filter so created record is visible when going back to per user view. + } + + // Create reminders + if ($addreminder == 'on') { + $actionCommReminder = new ActionCommReminder($db); + + $dateremind = dol_time_plus_duree($datep, -$offsetvalue, $offsetunit); + + $actionCommReminder->dateremind = $dateremind; + $actionCommReminder->typeremind = $remindertype; + $actionCommReminder->offsetunit = $offsetunit; + $actionCommReminder->offsetvalue = $offsetvalue; + $actionCommReminder->status = $actionCommReminder::STATUS_TODO; + $actionCommReminder->fk_actioncomm = $finalobject->id; + if ($remindertype == 'email') { + $actionCommReminder->fk_email_template = $modelmail; + } + + // the notification must be created for every user assigned to the event + foreach ($finalobject->userassigned as $userassigned) { + $actionCommReminder->fk_user = $userassigned['id']; + $res = $actionCommReminder->create($user); + + if ($res <= 0) { + // If error + $db->rollback(); + $langs->load("errors"); + $error = $langs->trans('ErrorReminderActionCommCreation'); + setEventMessages($error, null, 'errors'); + $action = 'create'; $donotclearsession = 1; + break; + } + } + } + + // Modify $moreparam so we are sure to see the event we have just created, whatever are the default value of filter on next page. + /*$moreparam .= ($moreparam ? '&' : '').'search_actioncode=0'; + $moreparam .= ($moreparam ? '&' : '').'search_status=-1'; + $moreparam .= ($moreparam ? '&' : '').'search_filtert='.$object->userownerid; + */ + $moreparam .= ($moreparam ? '&' : '').'disabledefaultvalues=1'; + + if ($error) { + $db->rollback(); + } else { + $db->commit(); + } + } else { + // If error + $db->rollback(); + $langs->load("errors"); + $error = $langs->trans($finalobject->error); + setEventMessages($error, null, 'errors'); + $action = 'create'; $donotclearsession = 1; + } + } else { + $db->rollback(); + setEventMessages($finalobject->error, $finalobject->errors, 'errors'); + $action = 'create'; $donotclearsession = 1; + } + + // If event is not recurrent, we stop here + if (!($userepeatevent && GETPOSTISSET('recurrulefreq') && GETPOST('recurrulefreq') != 'no' && GETPOSTISSET("limityear") && GETPOSTISSET("limitmonth") && GETPOSTISSET("limitday"))) { + break; + } + + // increment date for recurrent events + $datep = dol_time_plus_duree($datep, $dayoffset, 'd'); + $datep = dol_time_plus_duree($datep, $monthoffset, 'm'); + $datef = dol_time_plus_duree($datef, $dayoffset, 'd'); + $datef = dol_time_plus_duree($datef, $monthoffset, 'm'); + } + } + if (!empty($backtopage) && !$error) { + dol_syslog("Back to ".$backtopage.($moreparam ? (preg_match('/\?/', $backtopage) ? '&'.$moreparam : '?'.$moreparam) : '')); + header("Location: ".$backtopage.($moreparam ? (preg_match('/\?/', $backtopage) ? '&'.$moreparam : '?'.$moreparam) : '')); + } elseif ($idaction) { + header("Location: ".DOL_URL_ROOT.'/comm/action/card.php?id='.$idaction.($moreparam ? '&'.$moreparam : '')); + } else { + header("Location: ".DOL_URL_ROOT.'/comm/action/index.php'.($moreparam ? '?'.$moreparam : '')); + } + exit; } } @@ -528,7 +703,7 @@ if (empty($reshook) && $action == 'update') { $object->fetch($id); $object->fetch_optionals(); $object->fetch_userassigned(); - $object->oldcopy = clone $object; + $object->oldcopy = dol_clone($object); // Clean parameters if ($fulldayevent) { @@ -541,7 +716,28 @@ if (empty($reshook) && $action == 'update') { $datef = dol_mktime($fulldayevent ? '23' : GETPOST("p2hour", 'int'), $fulldayevent ? '59' : GETPOST("p2min", 'int'), $fulldayevent ? '59' : GETPOST("apsec", 'int'), GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int'), 'tzuser'); } - $object->type_id = dol_getIdFromCode($db, GETPOST("actioncode", 'aZ09'), 'c_actioncomm'); + if ($object->elementtype == 'ticket') { // code should be TICKET_MSG, TICKET_MSG_PRIVATE, TICKET_MSG_SENTBYMAIL, TICKET_MSG_PRIVATE_SENTBYMAIL + if ($private) { + if ($object->code == 'TICKET_MSG') { + $object->code = 'TICKET_MSG_PRIVATE'; + } + if ($object->code == 'TICKET_MSG_SENTBYMAIL') { + $object->code = 'TICKET_MSG_PRIVATE_SENTBYMAIL'; + } + } else { + if ($object->code == 'TICKET_MSG_PRIVATE') { + $object->code = 'TICKET_MSG'; + } + if ($object->code == 'TICKET_MSG_PRIVATE_SENTBYMAIL') { + $object->code = 'TICKET_MSG_SENTBYMAIL'; + } + } + // type_id and type_code is not modified + } else { + $object->type_id = dol_getIdFromCode($db, GETPOST("actioncode", 'aZ09'), 'c_actioncomm'); + $object->type_code = GETPOST("actioncode", 'aZ09'); + } + $object->label = GETPOST("label", "alphanohtml"); $object->datep = $datep; $object->datef = $datef; @@ -771,14 +967,12 @@ if (empty($reshook) && $action == 'update') { } } -/* - * delete event - */ +// Delete event if (empty($reshook) && $action == 'confirm_delete' && GETPOST("confirm") == 'yes') { $object->fetch($id); $object->fetch_optionals(); $object->fetch_userassigned(); - $object->oldcopy = clone $object; + $object->oldcopy = dol_clone($object); if ($user->rights->agenda->myactions->delete || $user->rights->agenda->allactions->delete) { @@ -899,13 +1093,12 @@ if (empty($reshook) && GETPOST('actionmove', 'alpha') == 'mupdate') { // Actions to delete doc $upload_dir = $conf->agenda->dir_output.'/'.dol_sanitizeFileName($object->ref); -$permissiontoadd = ($user->rights->agenda->allactions->create || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->read)); +$permissiontoadd = ($user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->read)); if (empty($reshook)) { include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; } - /* * View */ @@ -916,10 +1109,11 @@ $formproject = new FormProjets($db); $arrayrecurrulefreq = array( 'no'=>$langs->trans("OnceOnly"), 'MONTHLY'=>$langs->trans("EveryMonth"), - 'WEEKLY'=>$langs->trans("EveryWeek"), - //'DAYLY'=>$langs->trans("EveryDay") + 'WEEKLY'=>$langs->trans("EveryWeek") + // 'DAILY'=>$langs->trans("EveryDay") ); + $help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda'; llxHeader('', $langs->trans("Agenda"), $help_url); @@ -1017,9 +1211,10 @@ if ($action == 'create') { // Type of event if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { print ''.$langs->trans("Type").''; - $default = (empty($conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT) ? 'AC_RDV' : $conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT); + $default = getDolGlobalString('AGENDA_USE_EVENT_TYPE_DEFAULT', 'AC_RDV'); print img_picto($langs->trans("ActionType"), 'square', 'class="fawidth30 inline-block" style="color: #ddd;"'); - print $formactions->select_type_actions(GETPOSTISSET("actioncode") ? GETPOST("actioncode", 'aZ09') : ($object->type_code ? $object->type_code : $default), "actioncode", "systemauto", 0, -1, 0, 1); // TODO Replace 0 with -2 in onlyautoornot + $selectedvalue = GETPOSTISSET("actioncode") ? GETPOST("actioncode", 'aZ09') : ($object->type_code ? $object->type_code : $default); + print $formactions->select_type_actions($selectedvalue, "actioncode", "systemauto", 0, -1, 0, 1); // TODO Replace 0 with -2 in onlyautoornot print ''; } @@ -1036,20 +1231,32 @@ if ($action == 'create') { //print ''; print '        
'; print img_picto($langs->trans("Recurrence"), 'recurring', 'class="paddingright2"'); - print ''; + print ''; + $selectedrecurrulefreq = 'no'; $selectedrecurrulebymonthday = ''; $selectedrecurrulebyday = ''; + $object->recurrule = GETPOSTISSET('recurrulefreq') ? "FREQ=".GETPOST('recurrulefreq', 'alpha') : ""; + $object->recurrule .= GETPOSTISSET('BYMONTHDAY') ? "_BYMONTHDAY".GETPOST('BYMONTHDAY', 'alpha') : ""; + $object->recurrule .= GETPOSTISSET('BYDAY') ? "_BYDAY".GETPOST('BYDAY', 'alpha') : ""; + + + $reg = array(); if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg)) { $selectedrecurrulefreq = $reg[1]; } - if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i', $object->recurrule, $reg)) { + if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY(\d+)/i', $object->recurrule, $reg)) { $selectedrecurrulebymonthday = $reg[1]; } if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg)) { $selectedrecurrulebyday = $reg[1]; } + print $form->selectarray('recurrulefreq', $arrayrecurrulefreq, $selectedrecurrulefreq, 0, 0, 0, '', 0, 0, 0, '', 'marginrightonly'); + // print ''; + // For recursive event + + // If recurrulefreq is MONTHLY print ''; //print ''; } @@ -1106,11 +1328,6 @@ if ($action == 'create') { // Date start print ''; - /* - print ''.$langs->trans("DateActionStart").''; - print ' - '; - print ''.$langs->trans("DateActionEnd").''; - */ print ''; if (GETPOST("afaire") == 1) { print $form->selectDate($datep, 'ap', 1, 1, 0, "action", 1, 2, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuserrel'); // Empty value not allowed for start date and hours if "todo" @@ -1136,7 +1353,7 @@ if ($action == 'create') { if (empty($donotclearsession)) { $assignedtouser = GETPOST("assignedtouser") ?GETPOST("assignedtouser") : (!empty($object->userownerid) && $object->userownerid > 0 ? $object->userownerid : $user->id); if ($assignedtouser) { - $listofuserid[$assignedtouser] = array('id'=>$assignedtouser, 'mandatory'=>0, 'transparency'=>$object->transparency); // Owner first + $listofuserid[$assignedtouser] = array('id'=>$assignedtouser, 'mandatory'=>0); // Owner first } //$listofuserid[$user->id] = array('id'=>$user->id, 'mandatory'=>0, 'transparency'=>(GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 1)); // 1 by default at first init $listofuserid[$assignedtouser]['transparency'] = (GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 1); // 1 by default at first init @@ -1185,7 +1402,7 @@ if ($action == 'create') { $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); print ''; - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { // Categories print ''.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACTIONCOMM, '', 'parent', 64, 0, 1); @@ -1201,7 +1418,7 @@ if ($action == 'create') { print ''; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { // Related company print ''; @@ -1390,7 +1602,7 @@ if ($action == 'create') { $("#select_actioncommsendmodel_mail").closest("tr").show(); } else { $("#select_actioncommsendmodel_mail").closest("tr").hide(); - }; + } }); })'; print ''."\n"; @@ -1512,7 +1724,7 @@ if ($id > 0) { if ($backtopage) { print ''; } - if (empty($conf->global->AGENDA_USE_EVENT_TYPE)) { + if (empty($conf->global->AGENDA_USE_EVENT_TYPE) && ! preg_match('/^TICKET_MSG_PRIVATE/', $object->code)) { print ''; } @@ -1524,7 +1736,7 @@ if ($id > 0) { print ''; // Type of event - if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { + if (!empty($conf->global->AGENDA_USE_EVENT_TYPE) && $object->elementtype != "ticket") { print ''; } + // Private + if ($object->elementtype == 'ticket') { + print ''; + } + // Title print 'global->AGENDA_USE_EVENT_TYPE) ? ' class="fieldrequired titlefieldcreate"' : '').'>'.$langs->trans("Title").''; @@ -1544,64 +1763,64 @@ if ($id > 0) { print ''; - } + // // Recurring event + // $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); + // if ($userepeatevent) { + // // Repeat + // //print ''; + // } print ''; // Date start - end @@ -1683,7 +1902,7 @@ if ($id > 0) { // Location if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { - print ''; + print ''; } // Status @@ -1693,7 +1912,7 @@ if ($id > 0) { print ''; // Tags-Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { print ''; + // Event into a serie + if ($object->recurid) { + print ''; + } + $rowspan = 4; if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { $rowspan++; @@ -2099,7 +2328,7 @@ if ($id > 0) { } // Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { print '"; @@ -2114,9 +2343,10 @@ if ($id > 0) { print '
'; print '
'.$langs->trans("ActionOnCompany").''; if (GETPOST('socid', 'int') > 0) { @@ -1234,7 +1451,7 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $projectid = GETPOST('projectid', 'int'); @@ -1304,11 +1521,6 @@ if ($action == 'create') { } } - $reg = array(); - if (GETPOST("datep") && preg_match('/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/', GETPOST("datep"), $reg)) { - $object->datep = dol_mktime(0, 0, 0, $reg[2], $reg[3], $reg[1]); - } - // Priority if (!empty($conf->global->AGENDA_SUPPORT_PRIORITY_IN_EVENTS)) { print '
'.$langs->trans("Priority").''; @@ -1319,7 +1531,7 @@ if ($action == 'create') { // Description print '
'.$langs->trans("Description").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('note', (GETPOSTISSET('note') ? GETPOST('note', 'restricthtml') : $object->note_private), '', 120, 'dolibarr_notes', 'In', true, true, $conf->fckeditor->enabled, ROWS_4, '90%'); + $doleditor = new DolEditor('note', (GETPOSTISSET('note') ? GETPOST('note', 'restricthtml') : $object->note_private), '', 120, 'dolibarr_notes', 'In', true, true, isModEnabled('fckeditor'), ROWS_4, '90%'); $doleditor->Create(); print '
'.$langs->trans("Ref").''.$object->id.'
'.$langs->trans("Type").''; if ($object->type_code != 'AC_OTH_AUTO') { print img_picto($langs->trans("ActionType"), 'square', 'class="fawidth30 inline-block" style="color: #ddd;"'); @@ -1537,6 +1749,13 @@ if ($id > 0) { print '
'.$langs->trans("MarkMessageAsPrivate"); + print ' '.$form->textwithpicto('', $langs->trans("TicketMessagePrivateHelp"), 1, 'help'); + print 'code) ? ' checked' : '').'>
'.$langs->trans("Date").'fulldayevent ? ' checked' : '').'>'; print ''; - // Recurring event - $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); - if ($userepeatevent) { - // Repeat - //print '
'; - print '        
'; - print img_picto($langs->trans("Recurrence"), 'recurring', 'class="paddingright2"'); - print ''; - $selectedrecurrulefreq = 'no'; - $selectedrecurrulebymonthday = ''; - $selectedrecurrulebyday = ''; - if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg)) { - $selectedrecurrulefreq = $reg[1]; - } - if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i', $object->recurrule, $reg)) { - $selectedrecurrulebymonthday = $reg[1]; - } - if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg)) { - $selectedrecurrulebyday = $reg[1]; - } - print $form->selectarray('recurrulefreq', $arrayrecurrulefreq, $selectedrecurrulefreq, 0, 0, 0, '', 0, 0, 0, '', 'marginrightonly'); - // If recurrulefreq is MONTHLY - print ''; - // If recurrulefreq is WEEKLY - print ''; - print ''; - print '
'; - //print '
'; + // print '        
'; + // print img_picto($langs->trans("Recurrence"), 'recurring', 'class="paddingright2"'); + // print ''; + // $selectedrecurrulefreq = 'no'; + // $selectedrecurrulebymonthday = ''; + // $selectedrecurrulebyday = ''; + // if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg)) { + // $selectedrecurrulefreq = $reg[1]; + // } + // if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i', $object->recurrule, $reg)) { + // $selectedrecurrulebymonthday = $reg[1]; + // } + // if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg)) { + // $selectedrecurrulebyday = $reg[1]; + // } + // print $form->selectarray('recurrulefreq', $arrayrecurrulefreq, $selectedrecurrulefreq, 0, 0, 0, '', 0, 0, 0, '', 'marginrightonly'); + // // If recurrulefreq is MONTHLY + // print ''; + // // If recurrulefreq is WEEKLY + // print ''; + // print ''; + // print '
'; + // //print '
'.$langs->trans("Location").'
'.$langs->trans("Location").'
'.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACTIONCOMM, '', 'parent', 64, 0, 1); $c = new Categorie($db); @@ -1714,7 +1933,7 @@ if ($id > 0) { print ''; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { // Related company print ''; print ''; print ''; - if ($object->elementtype == 'task' && !empty($conf->projet->enabled)) { + if ($object->elementtype == 'task' && isModEnabled('project')) { print '
'.$langs->trans("ActionOnCompany").''; @@ -1737,7 +1956,7 @@ if ($id > 0) { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); print '
'.$langs->trans("Project").''; @@ -1762,7 +1981,7 @@ if ($id > 0) { print '
'.$langs->trans("LinkedObject").''; $urloption = '?action=create&donotclearsession=1'; // we use create not edit for more flexibility @@ -1815,7 +2034,7 @@ if ($id > 0) { print '
'; // Reminders - if ($conf->global->AGENDA_REMINDER_EMAIL || $conf->global->AGENDA_REMINDER_BROWSER) { + if (getDolGlobalString('AGENDA_REMINDER_EMAIL') || getDolGlobalString('AGENDA_REMINDER_BROWSER')) { $filteruserid = $user->id; if ($user->rights->agenda->allactions->read) { $filteruserid = 0; @@ -1885,7 +2104,7 @@ if ($id > 0) { $("#select_actioncommsendmodel_mail").closest("tr").show(); } else { $("#select_actioncommsendmodel_mail").closest("tr").hide(); - }; + } }); })'; @@ -1902,13 +2121,22 @@ if ($id > 0) { } else { print dol_get_fiche_head($head, 'card', $langs->trans("Action"), -1, 'action'); + $formconfirm = ''; + // Clone event if ($action == 'clone') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.GETPOST('id'), $langs->trans('ToClone'), $langs->trans('ConfirmCloneEvent', $object->label), 'confirm_clone', $formquestion, 'yes', 1); - - print $formconfirm; + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.GETPOST('id'), $langs->trans('ToClone'), $langs->trans('ConfirmCloneEvent', $object->label), 'confirm_clone', array(), 'yes', 1); } + // Call Hook formConfirm + $parameters = array(); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) $formconfirm.=$hookmanager->resPrint; + elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint; + + // Print form confirm + print $formconfirm; + $linkback = ''; // Link to other agenda views $linkback .= ''; @@ -1940,42 +2168,38 @@ if ($id > 0) { $linkback .= ''.$langs->trans("ViewPerUser").''; $linkback .= ''; + // Add more views from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks('addCalendarView', $parameters, $object, $action); + if (empty($reshook)) { + $linkback .= $hookmanager->resPrint; + } elseif ($reshook > 1) { + $linkback = $hookmanager->resPrint; + } + //$linkback.=$out; $morehtmlref = '
'; // Thirdparty //$morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - //$morehtmlref.='
'.$langs->trans('Project') . ' '; - $morehtmlref .= $langs->trans('Project').' '; - if ($user->rights->agenda->allactions->create || - (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { + //$morehtmlref .= '
'; + if ($usercancreate) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
'; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
'; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -2003,6 +2227,11 @@ if ($id > 0) { // Full day event print '
'.$langs->trans("EventOnFullDay").''.yn($object->fulldayevent ? 1 : 0, 3).'
'.$langs->trans("EventIntoASerie").''.dol_escape_htmltag($object->recurid).'
'.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_ACTIONCOMM, 1); print "
'; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { // Related company - print ''; + print ''; @@ -2510,7 +2670,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { if (empty($arrayselected)) { $arrayselected = $object->getSalesRepresentatives($user, 1); } - print img_picto('', 'user').$form->multiselectarray('commercial', $userlist, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0, '', '', '', 1); + print img_picto('', 'user', 'class="pictofixedwidth"').$form->multiselectarray('commercial', $userlist, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0, '', '', '', 1); print ''; print '
'.$langs->trans("ActionOnCompany").''.($object->thirdparty->id ? $object->thirdparty->getNomUrl(1) : (''.$langs->trans("None").'')); + print '
'.$langs->trans("ActionOnCompany").''.(is_object($object->thirdparty) && $object->thirdparty->id ? $object->thirdparty->getNomUrl(1) : (''.$langs->trans("None").'')); if (is_object($object->thirdparty) && $object->thirdparty->id > 0 && $object->type_code == 'AC_TEL') { if ($object->thirdparty->fetch($object->thirdparty->id)) { print "
".dol_print_phone($object->thirdparty->phone); @@ -2236,14 +2466,14 @@ if ($id > 0) { $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { if ($action != 'edit') { - if ($user->rights->agenda->allactions->create || + if ($user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { print ''; } else { print ''; } - if ($user->rights->agenda->allactions->create || + if ($user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { print ''; } else { diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 156d5573ae8..f71c75192ef 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -225,22 +225,22 @@ class ActionComm extends CommonObject public $transparency; /** - * @var int (0 By default) + * @var int (0 By default) */ public $priority; /** - * @var int[] Array of user ids + * @var int[] Array of user ids */ public $userassigned = array(); /** - * @var int Id of user owner = fk_user_action into table + * @var int Id of user owner = fk_user_action into table */ public $userownerid; /** - * @var int Id of user that has done the event. Used only if AGENDA_ENABLE_DONEBY is set. + * @var int Id of user that has done the event. Used only if AGENDA_ENABLE_DONEBY is set. */ public $userdoneid; @@ -269,6 +269,7 @@ class ActionComm extends CommonObject */ public $contact_id; + /** * @var Societe|null Company linked to action (optional) * @deprecated @@ -285,17 +286,17 @@ class ActionComm extends CommonObject // Properties for links to other objects /** - * @var int Id of linked object + * @var int Id of linked object */ public $fk_element; // Id of record /** - * @var int Id of record alternative for API + * @var int Id of record alternative for API */ public $elementid; /** - * @var string Type of record. This if property ->element of object linked to. + * @var string Type of record. This if property ->element of object linked to. */ public $elementtype; @@ -373,6 +374,16 @@ class ActionComm extends CommonObject */ public $status; + /** + * Properties to manage the recurring events + */ + public $recurid; /* A string YYYYMMDDHHMMSS shared by allevent of same serie */ + public $recurrule; /* Rule of recurring */ + public $recurdateend; /* Repeat until this date */ + + public $calling_duration; + + /** * Typical value for a event that is in a todo state */ @@ -412,13 +423,13 @@ class ActionComm extends CommonObject */ public function create(User $user, $notrigger = 0) { - global $langs, $conf, $hookmanager; + global $langs, $conf; $error = 0; $now = dol_now(); // Check parameters - if (!isset($this->userownerid) || $this->userownerid === '') { // $this->userownerid may be 0 (anonymous event) of > 0 + if (!isset($this->userownerid) || (string) $this->userownerid === '') { // $this->userownerid may be 0 (anonymous event) or > 0 dol_syslog("You tried to create an event but mandatory property ownerid was not defined", LOG_WARNING); $this->errors[] = 'ErrorActionCommPropertyUserowneridNotDefined'; return -1; @@ -447,11 +458,11 @@ class ActionComm extends CommonObject if (!empty($this->datep) && !empty($this->datef)) { $this->durationp = ($this->datef - $this->datep); // deprecated } - //if (! empty($this->date) && ! empty($this->dateend)) $this->durationa=($this->dateend - $this->date); + //if (!empty($this->date) && !empty($this->dateend)) $this->durationa=($this->dateend - $this->date); if (!empty($this->datep) && !empty($this->datef) && $this->datep > $this->datef) { $this->datef = $this->datep; } - //if (! empty($this->date) && ! empty($this->dateend) && $this->date > $this->dateend) $this->dateend=$this->date; + //if (!empty($this->date) && !empty($this->dateend) && $this->date > $this->dateend) $this->dateend=$this->date; if (!isset($this->fk_project) || $this->fk_project < 0) { $this->fk_project = 0; } @@ -466,8 +477,8 @@ class ActionComm extends CommonObject $this->elementtype = 'contract'; } - if (!is_array($this->userassigned) && !empty($this->userassigned)) { // For backward compatibility when userassigned was an int instead fo array - $tmpid = $this->userassigned; + if (!is_array($this->userassigned) && !empty($this->userassigned)) { // For backward compatibility when userassigned was an int instead of an array + $tmpid = (int) $this->userassigned; $this->userassigned = array(); $this->userassigned[$tmpid] = array('id'=>$tmpid, 'transparency'=>$this->transparency); } @@ -539,9 +550,13 @@ class ActionComm extends CommonObject $sql .= "email_tobcc,"; $sql .= "email_subject,"; $sql .= "errors_to,"; + $sql .= "recurid,"; + $sql .= "recurrule,"; + $sql .= "recurdateend,"; $sql .= "num_vote,"; $sql .= "event_paid,"; - $sql .= "status"; + $sql .= "status,"; + $sql .= "ip"; $sql .= ") VALUES ("; $sql .= "'(PROV)', "; $sql .= "'".$this->db->idate($now)."', "; @@ -577,9 +592,13 @@ class ActionComm extends CommonObject $sql .= (!empty($this->email_tobcc) ? "'".$this->db->escape($this->email_tobcc)."'" : "null").", "; $sql .= (!empty($this->email_subject) ? "'".$this->db->escape($this->email_subject)."'" : "null").", "; $sql .= (!empty($this->errors_to) ? "'".$this->db->escape($this->errors_to)."'" : "null").", "; + $sql .= (!empty($this->recurid) ? "'".$this->db->escape($this->recurid)."'" : "null").", "; + $sql .= (!empty($this->recurrule) ? "'".$this->db->escape($this->recurrule)."'" : "null").", "; + $sql .= (!empty($this->recurdateend) ? "'".$this->db->idate($this->recurdateend)."'" : "null").", "; $sql .= (!empty($this->num_vote) ? (int) $this->num_vote : "null").", "; $sql .= (!empty($this->event_paid) ? (int) $this->event_paid : 0).", "; - $sql .= (!empty($this->status) ? (int) $this->status : "0"); + $sql .= (!empty($this->status) ? (int) $this->status : "0").", "; + $sql .= (!empty($this->ip) ? "'".$this->db->escape($this->ip)."'" : "null"); $sql .= ")"; dol_syslog(get_class($this)."::add", LOG_DEBUG); @@ -688,10 +707,9 @@ class ActionComm extends CommonObject */ public function createFromClone(User $fuser, $socid) { - global $db, $conf, $hookmanager; + global $hookmanager; $error = 0; - $now = dol_now(); $this->db->begin(); @@ -706,6 +724,9 @@ class ActionComm extends CommonObject $this->fetchResources(); $this->id = 0; + $this->recurid = ''; + $this->recurrule = ''; + $this->recurdateend = ''; // Create clone $this->context['createfromclone'] = 'createfromclone'; @@ -1140,12 +1161,8 @@ class ActionComm extends CommonObject $userownerid = ($this->userownerid ? $this->userownerid : 0); $userdoneid = ($this->userdoneid ? $this->userdoneid : 0); - $this->db->begin(); - - $sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm "; - $sql .= " SET percent = '".$this->db->escape($this->percentage)."'"; + // If a type_id is set, we must also have the type_code set if ($this->type_id > 0) { - $sql .= ", fk_action = ".(int) $this->type_id; if (empty($this->type_code)) { $cactioncomm = new CActionComm($this->db); $result = $cactioncomm->fetch($this->type_id); @@ -1154,7 +1171,18 @@ class ActionComm extends CommonObject } } } - $sql .= ", code = " . (isset($this->type_code)? "'".$this->db->escape($this->type_code) . "'":"null"); + + $code = $this->code; + if (empty($code) || (!empty($this->oldcopy) && $this->oldcopy->type_code != $this->type_code)) { // If code unknown or if we change the type, we reset $code too + $code = $this->type_code; + } + + $this->db->begin(); + + $sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm"; + $sql .= " SET percent = '".$this->db->escape($this->percentage)."'"; + $sql .= ", fk_action = ".(int) $this->type_id; + $sql .= ", code = " . ($code ? "'".$this->db->escape($code)."'" : "null"); $sql .= ", label = ".($this->label ? "'".$this->db->escape($this->label)."'" : "null"); $sql .= ", datep = ".(strval($this->datep) != '' ? "'".$this->db->idate($this->datep)."'" : 'null'); $sql .= ", datep2 = ".(strval($this->datef) != '' ? "'".$this->db->idate($this->datef)."'" : 'null'); @@ -1185,7 +1213,7 @@ class ActionComm extends CommonObject if (!empty($this->status)) { $sql .= ", status=".($this->status ? (int) $this->status : 0); } - $sql .= " WHERE id=".$this->id; + $sql .= " WHERE id=".((int) $this->id); dol_syslog(get_class($this)."::update", LOG_DEBUG); if ($this->db->query($sql)) { @@ -1296,8 +1324,17 @@ class ActionComm extends CommonObject dol_syslog(get_class()."::getActions", LOG_DEBUG); + require_once DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($this->db); + // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context + $hookmanager->initHooks(array('agendadao')); + $sql = "SELECT a.id"; $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; + // Fields from hook + $parameters = array('sql' => &$sql, 'socid' => $socid, 'fk_element' => $fk_element, 'elementtype' => $elementtype); + $reshook = $hookmanager->executeHooks('getActionsListFrom', $parameters); // Note that $action and $object may have been modified by hook + if (!empty($hookmanager->resPrint)) $sql.= $hookmanager->resPrint; $sql .= " WHERE a.entity IN (".getEntity('agenda').")"; if (!empty($socid)) { $sql .= " AND a.fk_soc = ".((int) $socid); @@ -1316,6 +1353,10 @@ class ActionComm extends CommonObject if (!empty($filter)) { $sql .= $filter; } + // Fields where hook + $parameters = array('sql' => &$sql, 'socid' => $socid, 'fk_element' => $fk_element, 'elementtype' => $elementtype); + $reshook = $hookmanager->executeHooks('getActionsListWhere', $parameters); // Note that $action and $object may have been modified by hook + if (!empty($hookmanager->resPrint)) $sql.= $hookmanager->resPrint; if ($sortorder && $sortfield) { $sql .= $this->db->order($sortfield, $sortorder); } @@ -1366,7 +1407,6 @@ class ActionComm extends CommonObject if (empty($user->rights->agenda->allactions->read)) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources AS ar ON a.id = ar.fk_actioncomm AND ar.element_type ='user' AND ar.fk_element = ".((int) $user->id); } - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; $sql .= " WHERE 1 = 1"; if (empty($load_state_board)) { $sql .= " AND a.percent >= 0 AND a.percent < 100"; @@ -1393,7 +1433,7 @@ class ActionComm extends CommonObject $response->label = $langs->trans("ActionsToDo"); $response->labelShort = $langs->trans("ActionsToDoShort"); $response->url = DOL_URL_ROOT.'/comm/action/list.php?mode=show_list&actioncode=0&status=todo&mainmenu=agenda'; - if ($user->rights->agenda->allactions->read) { + if ($user->hasRight("agenda", "allactions", "read")) { $response->url .= '&filtert=-1'; } $response->img = img_object('', "action", 'class="inline-block valigntextmiddle"'); @@ -1448,21 +1488,10 @@ class ActionComm extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->id; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_mod) { - $muser = new User($this->db); - $muser->fetch($obj->fk_user_mod); - $this->user_modification = $muser; - } - - $this->date_creation = $this->db->jdate($obj->datec); - if (!empty($obj->fk_user_mod)) { - $this->date_modification = $this->db->jdate($obj->datem); - } + $this->user_creation_id = $obj->fk_user_author; + $this->user_modification_id = $obj->fk_user_mod; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); } else { @@ -1559,13 +1588,13 @@ class ActionComm extends CommonObject } $canread = 0; - if ($user->rights->agenda->myactions->read && $this->authorid == $user->id) { + if (!empty($user->rights->agenda->myactions->read) && $this->authorid == $user->id) { $canread = 1; // Can read my event } - if ($user->rights->agenda->myactions->read && array_key_exists($user->id, $this->userassigned)) { + if (!empty($user->rights->agenda->myactions->read) && array_key_exists($user->id, $this->userassigned)) { $canread = 1; // Can read my event i am assigned } - if ($user->rights->agenda->allactions->read) { + if (!empty($user->rights->agenda->allactions->read)) { $canread = 1; // Can read all event of other } if (!$canread) { @@ -1592,16 +1621,16 @@ class ActionComm extends CommonObject $tooltip = img_picto('', $this->picto).' '.$langs->trans('Action').''; if (!empty($this->ref)) { - $tooltip .= '
'.$langs->trans('Ref').': '.$this->ref; + $tooltip .= '
'.$langs->trans('Ref').': '.dol_escape_htmltag($this->ref); } if (!empty($label)) { - $tooltip .= '
'.$langs->trans('Title').': '.$label; + $tooltip .= '
'.$langs->trans('Title').': '.dol_escape_htmltag($label); } if (!empty($labeltype)) { - $tooltip .= '
'.$langs->trans('Type').': '.$labeltype; + $tooltip .= '
'.$langs->trans('Type').': '.dol_escape_htmltag($labeltype); } if (!empty($this->location)) { - $tooltip .= '
'.$langs->trans('Location').': '.$this->location; + $tooltip .= '
'.$langs->trans('Location').': '.dol_escape_htmltag($this->location); } if (isset($this->transparency)) { $tooltip .= '
'.$langs->trans('Busy').': '.yn($this->transparency); @@ -1610,7 +1639,7 @@ class ActionComm extends CommonObject $langs->load("mails"); $tooltip .= '
'; //$tooltip .= '
'.img_picto('', 'email').' '.$langs->trans("Email").''; - $tooltip .= '
'.$langs->trans('MailTopic').': '.$this->email_subject; + $tooltip .= '
'.$langs->trans('MailTopic').': '.dol_escape_htmltag($this->email_subject); $tooltip .= '
'.$langs->trans('MailFrom').': '.str_replace(array('<', '>'), array('&lt', '&gt'), $this->email_from); $tooltip .= '
'.$langs->trans('MailTo').': '.str_replace(array('<', '>'), array('&lt', '&gt'), $this->email_to); if (!empty($this->email_tocc)) { @@ -1623,8 +1652,10 @@ class ActionComm extends CommonObject } if (!empty($this->note_private)) { $tooltip .= '

'.$langs->trans('Description').':
'; - $texttoshow = dolGetFirstLineOfText($this->note_private, 10); + $texttoshow = dolGetFirstLineOfText($this->note_private, 10); // Try to limit length of content + $tooltip .= '
'; // Restrict height of content into the tooltip $tooltip .= (dol_textishtml($texttoshow) ? str_replace(array("\r", "\n"), "", $texttoshow) : str_replace(array("\r", "\n"), '
', $texttoshow)); + $tooltip .= '
'; } $linkclose = ''; //if (!empty($conf->global->AGENDA_USE_EVENT_TYPE) && $this->type_color) @@ -1698,7 +1729,7 @@ class ActionComm extends CommonObject if ($withpicto) { $result .= img_object(($notooltip ? '' : $langs->trans("ShowAction").': '.$label), ($overwritepicto ? $overwritepicto : 'action'), (($this->type_color && $overwritepicto) ? 'style="color: #'.$this->type_color.' !important;" ' : '').($notooltip ? 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'"' : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); } - $result .= $labelshort; + $result .= dol_escape_htmltag($labelshort); $result .= $linkend; global $action; @@ -1738,11 +1769,11 @@ class ActionComm extends CommonObject $imgpicto = img_picto('', 'object_phoning', $color, false, 0, 0, '', 'paddingright'); } elseif ($this->type_code == 'AC_FAX') { $imgpicto = img_picto('', 'object_phoning_fax', $color, false, 0, 0, '', 'paddingright'); - } elseif ($this->type_code == 'AC_EMAIL' || $this->type_code == 'AC_EMAIL_IN') { + } elseif ($this->type_code == 'AC_EMAIL' || $this->type_code == 'AC_EMAIL_IN' || preg_match('/_SENTBYMAIL/', $this->code)) { $imgpicto = img_picto('', 'object_email', $color, false, 0, 0, '', 'paddingright'); } elseif ($this->type_code == 'AC_INT') { $imgpicto = img_picto('', 'object_intervention', $color, false, 0, 0, '', 'paddingright'); - } elseif ($this->type_code == 'AC_OTH' && $this->code == 'TICKET_MSG') { + } elseif (preg_match('/^TICKET_MSG/', $this->code)) { $imgpicto = img_picto('', 'object_conversation', $color, false, 0, 0, '', 'paddingright'); } elseif ($this->type != 'systemauto') { $imgpicto = img_picto('', 'user-cog', $color, false, 0, 0, '', 'paddingright'); @@ -1769,8 +1800,8 @@ class ActionComm extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { @@ -1804,7 +1835,7 @@ class ActionComm extends CommonObject $c->add_type($this, Categorie::TYPE_ACTIONCOMM); } } - return; + return 1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2058,7 +2089,7 @@ class ActionComm extends CommonObject } if ($exportholiday == 1) { - $langs->load("holidays"); + $langs->load("holiday"); $title = $langs->trans("Holidays"); $sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.email, u.statut, x.rowid, x.date_debut as date_start, x.date_fin as date_end, x.halfday, x.statut as status"; @@ -2094,8 +2125,8 @@ class ActionComm extends CommonObject } if (!empty($conf->global->AGENDA_EXPORT_FIX_TZ)) { - $timestampStart = - ($conf->global->AGENDA_EXPORT_FIX_TZ * 3600); - $timestampEnd = - ($conf->global->AGENDA_EXPORT_FIX_TZ * 3600); + $timestampStart = $timestampStart - ($conf->global->AGENDA_EXPORT_FIX_TZ * 3600); + $timestampEnd = $timestampEnd - ($conf->global->AGENDA_EXPORT_FIX_TZ * 3600); } $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); @@ -2230,18 +2261,18 @@ class ActionComm extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'actioncomm' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -2356,7 +2387,7 @@ class ActionComm extends CommonObject $nbMailSend = 0; $errorsMsg = array(); - if (empty($conf->agenda->enabled)) { // Should not happen. If module disabled, cron job should not be visible. + if (!isModEnabled('agenda')) { // Should not happen. If module disabled, cron job should not be visible. $langs->load("agenda"); $this->output = $langs->trans('ModuleNotEnabled', $langs->transnoentitiesnoconv("Agenda")); return 0; diff --git a/htdocs/comm/action/class/actioncommreminder.class.php b/htdocs/comm/action/class/actioncommreminder.class.php index ff242430b0a..eb0d464777a 100644 --- a/htdocs/comm/action/class/actioncommreminder.class.php +++ b/htdocs/comm/action/class/actioncommreminder.class.php @@ -149,7 +149,7 @@ class ActionCommReminder extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled)) { + if (!isModEnabled('multicompany')) { $this->fields['entity']['enabled'] = 0; } } diff --git a/htdocs/comm/action/class/api_agendaevents.class.php b/htdocs/comm/action/class/api_agendaevents.class.php index 2d868e9bfaa..c0accf82866 100644 --- a/htdocs/comm/action/class/api_agendaevents.class.php +++ b/htdocs/comm/action/class/api_agendaevents.class.php @@ -124,24 +124,24 @@ class AgendaEvents extends DolibarrApi if (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) { $search_sale = DolibarrApiAccess::$user->id; } - if (empty($conf->societe->enabled)) { + if (!isModEnabled('societe')) { $search_sale = 0; // If module thirdparty not enabled, sale representative is something that does not exists } $sql = "SELECT t.id as rowid"; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) } } $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as t"; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale } } $sql .= ' WHERE t.entity IN ('.getEntity('agenda').')'; - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { $sql .= " AND t.fk_soc = sc.fk_soc"; } @@ -210,7 +210,7 @@ class AgendaEvents extends DolibarrApi if (!DolibarrApiAccess::$user->rights->agenda->myactions->create) { throw new RestException(401, "Insufficient rights to create your Agenda Event"); } - if (!DolibarrApiAccess::$user->rights->agenda->allactions->create && DolibarrApiAccess::$user->id != $request_data['userownerid']) { + if (!DolibarrApiAccess::$user->hasRight('agenda', 'allactions', 'create') && DolibarrApiAccess::$user->id != $request_data['userownerid']) { throw new RestException(401, "Insufficient rights to create an Agenda Event for owner id ".$request_data['userownerid'].' Your id is '.DolibarrApiAccess::$user->id); } @@ -249,7 +249,7 @@ class AgendaEvents extends DolibarrApi if (!DolibarrApiAccess::$user->rights->agenda->myactions->create) { throw new RestException(401, "Insufficient rights to create your Agenda Event"); } - if (!DolibarrApiAccess::$user->rights->agenda->allactions->create && DolibarrApiAccess::$user->id != $request_data['userownerid']) { + if (!DolibarrApiAccess::$user->hasRight('agenda', 'allactions', 'create') && DolibarrApiAccess::$user->id != $request_data['userownerid']) { throw new RestException(401, "Insufficient rights to create an Agenda Event for owner id ".$request_data['userownerid'].' Your id is '.DolibarrApiAccess::$user->id); } diff --git a/htdocs/comm/action/class/cactioncomm.class.php b/htdocs/comm/action/class/cactioncomm.class.php index d2b089491a7..c7ab296a2a9 100644 --- a/htdocs/comm/action/class/cactioncomm.class.php +++ b/htdocs/comm/action/class/cactioncomm.class.php @@ -201,19 +201,24 @@ class CActionComm if ($obj->module == 'invoice' && isModEnabled('facture') && !empty($user->rights->facture->lire)) { $qualified = 1; } - if ($obj->module == 'order' && !empty($conf->commande->enabled) && empty($user->rights->commande->lire)) { + if ($obj->module == 'order' && isModEnabled('commande') && empty($user->rights->commande->lire)) { $qualified = 1; } - if ($obj->module == 'propal' && !empty($conf->propal->enabled) && !empty($user->rights->propale->lire)) { + if ($obj->module == 'propal' && isModEnabled("propal") && !empty($user->rights->propal->lire)) { $qualified = 1; } - if ($obj->module == 'invoice_supplier' && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && !empty($user->rights->fournisseur->facture->lire)) || (!empty($conf->rights->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire)))) { + if ($obj->module == 'invoice_supplier' && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && !empty($user->rights->fournisseur->facture->lire)) || (isModEnabled('supplier_invoice') && !empty($user->rights->supplier_invoice->lire)))) { $qualified = 1; } - if ($obj->module == 'order_supplier' && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && !empty($user->rights->fournisseur->commande->lire)) || (empty($conf->rights->supplier_order->enabled) && !empty($user->rights->supplier_order->lire)))) { + if ($obj->module == 'order_supplier' && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && !empty($user->rights->fournisseur->commande->lire)) || (!isModEnabled('supplier_order') && !empty($user->rights->supplier_order->lire)))) { $qualified = 1; } - if ($obj->module == 'shipping' && !empty($conf->expedition->enabled) && !empty($user->rights->expedition->lire)) { + if ($obj->module == 'shipping' && isModEnabled("expedition") && !empty($user->rights->expedition->lire)) { + $qualified = 1; + } + // For case module = 'myobject@eventorganization' + $tmparray = explode("@", $obj->module); + if (count($tmparray) > 1 && $tmparray[1] == 'eventorganization' && isModEnabled('eventorganization')) { $qualified = 1; } // For the generic case with type = 'module...' and module = 'myobject@mymodule' @@ -223,7 +228,7 @@ class CActionComm $tmpobject = $regs[1]; $tmpmodule = $regs[2]; //var_dump($user->$tmpmodule); - if ($tmpmodule && isset($conf->$tmpmodule) && !empty($conf->$tmpmodule->enabled) && (!empty($user->rights->$tmpmodule->read) || !empty($user->rights->$tmpmodule->lire) || !empty($user->rights->$tmpmodule->$tmpobject->read) || !empty($user->rights->$tmpmodule->$tmpobject->lire))) { + if ($tmpmodule && isset($conf->$tmpmodule) && isModEnabled($tmpmodule) && (!empty($user->rights->$tmpmodule->read) || !empty($user->rights->$tmpmodule->lire) || !empty($user->rights->$tmpmodule->$tmpobject->read) || !empty($user->rights->$tmpmodule->$tmpobject->lire))) { $qualified = 1; } } @@ -232,7 +237,7 @@ class CActionComm if (! in_array($obj->type, array('system', 'systemauto', 'module', 'moduleauto'))) { $tmpmodule = $obj->module; //var_dump($tmpmodule); - if ($tmpmodule && isset($conf->$tmpmodule) && !empty($conf->$tmpmodule->enabled)) { + if ($tmpmodule && isset($conf->$tmpmodule) && isModEnabled($tmpmodule)) { $qualified = 1; } } diff --git a/htdocs/comm/action/class/ical.class.php b/htdocs/comm/action/class/ical.class.php index 7ab09e8d891..badd5db5c98 100644 --- a/htdocs/comm/action/class/ical.class.php +++ b/htdocs/comm/action/class/ical.class.php @@ -402,7 +402,7 @@ class ICal public function get_event_list() { // phpcs:enable - return (empty($this->cal['VEVENT']) ? '' : $this->cal['VEVENT']); + return (empty($this->cal['VEVENT']) ? array() : $this->cal['VEVENT']); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -414,7 +414,7 @@ class ICal public function get_freebusy_list() { // phpcs:enable - return (empty($this->cal['VFREEBUSY']) ? '' : $this->cal['VFREEBUSY']); + return (empty($this->cal['VFREEBUSY']) ? array() : $this->cal['VFREEBUSY']); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php index 38779e300ed..c37920f0d99 100644 --- a/htdocs/comm/action/document.php +++ b/htdocs/comm/action/document.php @@ -26,6 +26,7 @@ * \brief Page of documents linked to actions */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -34,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -62,6 +63,9 @@ if ($id > 0) { $object->fetch_thirdparty(); } +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('actioncard', 'globalcard')); + // Get parameters $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -88,7 +92,8 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } -$permissiontoadd = $user->rights->agenda->myactions->read; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles.inc.php +$usercancreate = $user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); +$permissiontoadd = $usercancreate; /* @@ -153,25 +158,39 @@ if ($object->id > 0) { $out .= '
  • '.img_picto($langs->trans("ViewDay"), 'object_calendarday', 'class="hideonsmartphone pictoactionview"'); $out .= ''.$langs->trans("ViewDay").''; + // Add more views from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks('addCalendarView', $parameters, $object, $action); + if (empty($reshook)) { + $out .= $hookmanager->resPrint; + } elseif ($reshook > 1) { + $out = $hookmanager->resPrint; + } + $linkback .= $out; $morehtmlref = '
    '; // Thirdparty //$morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - //$morehtmlref.='
    '.$langs->trans('Project') . ' '; - $morehtmlref .= $langs->trans('Project').': '; - if (!empty($object->fk_project)) { - $proj = new Project($db); - $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); - if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + //$morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify') { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - $morehtmlref .= ''; + if (!empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= $proj->getNomUrl(1); + if ($proj->title) { + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; + } + } } } $morehtmlref .= '
    '; @@ -286,7 +305,7 @@ if ($object->id > 0) { $modulepart = 'actions'; - $permissiontoadd = $user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create; + $permissiontoadd = $user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create'); $param = '&id='.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; } else { diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index ec80dc90a4c..5b51d48392b 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -30,13 +30,14 @@ * \brief Home page of calendar events */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -111,7 +112,7 @@ $month = GETPOST("month", "int") ?GETPOST("month", "int") : date("m"); $week = GETPOST("week", "int") ?GETPOST("week", "int") : date("W"); $day = GETPOST("day", "int") ?GETPOST("day", "int") : date("d"); $pid = GETPOST("search_projectid", "int", 3) ? GETPOST("search_projectid", "int", 3) : GETPOST("projectid", "int", 3); -$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo' +$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo', 'na' or -1 $type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'aZ09') : GETPOST("type", 'aZ09'); $maxprint = GETPOSTISSET("maxprint") ? GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW; $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') @@ -212,7 +213,7 @@ if (GETPOST("viewperuser", 'alpha') || $mode == 'show_peruser') { $event->fetch($actionid); $event->fetch_optionals(); $event->fetch_userassigned(); - $event->oldcopy = clone $event; + $event->oldcopy = dol_clone($event); $result = $event->delete(); } @@ -273,15 +274,15 @@ if (empty($conf->global->AGENDA_DISABLE_EXT)) { $color = 'AGENDA_EXT_COLOR'.$i; $default = 'AGENDA_EXT_ACTIVEBYDEFAULT'.$i; $buggedfile = 'AGENDA_EXT_BUGGEDFILE'.$i; - if (!empty($conf->global->$source) && !empty($conf->global->$name)) { + if (getDolGlobalString($source) && getDolGlobalString($name)) { // Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight' $listofextcals[] = array( 'src' => getDolGlobalString($source), - 'name' => getDolGlobalString($name), - 'offsettz' => (!empty($conf->global->$offsettz) ? $conf->global->$offsettz : 0), - 'color' => getDolGlobalString($color), - 'default' => getDolGlobalString($default), - 'buggedfile' => (isset($conf->global->buggedfile) ? $conf->global->buggedfile : 0) + 'name' => dol_string_nohtmltag(getDolGlobalString($name)), + 'offsettz' => (int) getDolGlobalInt($offsettz, 0), + 'color' => dol_string_nohtmltag(getDolGlobalString($color)), + 'default' => dol_string_nohtmltag(getDolGlobalString($default)), + 'buggedfile' => dol_string_nohtmltag(getDolGlobalString('buggedfile', '')) ); } } @@ -298,15 +299,15 @@ if (empty($user->conf->AGENDA_DISABLE_EXT)) { $enabled = 'AGENDA_EXT_ENABLED_'.$user->id.'_'.$i; $default = 'AGENDA_EXT_ACTIVEBYDEFAULT_'.$user->id.'_'.$i; $buggedfile = 'AGENDA_EXT_BUGGEDFILE_'.$user->id.'_'.$i; - if (!empty($user->conf->$source) && !empty($user->conf->$name)) { + if (getDolUserString($source) && getDolUserString($name)) { // Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight' $listofextcals[] = array( - 'src' => $user->conf->$source, - 'name' => $user->conf->$name, - 'offsettz' => (!empty($user->conf->$offsettz) ? $user->conf->$offsettz : 0), - 'color' => $user->conf->$color, - 'default' => $user->conf->$default, - 'buggedfile' => (isset($user->conf->buggedfile) ? $user->conf->buggedfile : 0) + 'src' => getDolUserString($source), + 'name' => dol_string_nohtmltag(getDolUserString($name)), + 'offsettz' => (int) (empty($user->conf->$offsettz) ? 0 : $user->conf->$offsettz), + 'color' => dol_string_nohtmltag(getDolUserString($color)), + 'default' => dol_string_nohtmltag(getDolUserString($default)), + 'buggedfile' => dol_string_nohtmltag(isset($user->conf->buggedfile) ? $user->conf->buggedfile : '') ); } } @@ -539,7 +540,7 @@ $viewmode .= ''; // To add a space before t $newcardbutton = ''; $newparam = ''; -if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { +if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $tmpforcreatebutton = dol_getdate(dol_now(), true); $newparam .= '&month='.((int) $month).'&year='.((int) $tmpforcreatebutton['year']).'&mode='.urlencode($mode); @@ -613,7 +614,7 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on $default = ''; } - $s .= '
     
    '; + $s .= '
     
    '; } } @@ -636,8 +637,7 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on if (!preg_match('/showbirthday=/i', $newparam)) { $newparam .= '&showbirthday=1'; } - $link = 'trans("AgendaShowBirthdayEvents"); @@ -757,14 +757,17 @@ if ($type) { $sql .= " AND ca.id = ".((int) $type); } if ($status == '0') { + // To do (not started) $sql .= " AND a.percent = 0"; } -if ($status == '-1') { +if ($status == 'na') { + // Not applicable $sql .= " AND a.percent = -1"; -} // Not applicable +} if ($status == '50') { + // Running already started $sql .= " AND (a.percent > 0 AND a.percent < 100)"; -} // Running already started +} if ($status == 'done' || $status == '100') { $sql .= " AND (a.percent = 100)"; } @@ -848,7 +851,6 @@ if ($resql) { $event->fk_project = $obj->fk_project; $event->socid = $obj->fk_soc; - $event->thirdparty_id = $obj->fk_soc; $event->contact_id = $obj->fk_contact; // Defined date_start_in_calendar and date_end_in_calendar property @@ -1269,9 +1271,9 @@ if (count($listofextcals)) { $event->datef = $dateend + $usertime; if ($icalevent['SUMMARY']) { - $event->label = $icalevent['SUMMARY']; + $event->label = dol_string_nohtmltag($icalevent['SUMMARY']); } elseif ($icalevent['DESCRIPTION']) { - $event->label = dol_nl2br($icalevent['DESCRIPTION'], 1); + $event->label = dol_nl2br(dol_string_nohtmltag($icalevent['DESCRIPTION']), 1); } else { $event->label = $langs->trans("ExtSiteNoLabel"); } @@ -1285,7 +1287,7 @@ if (count($listofextcals)) { } // Transparency (see https://www.kanzaki.com/docs/ical/transp.html) - if ($icalevent['TRANSP']) { + if (!empty($icalevent['TRANSP'])) { if ($icalevent['TRANSP'] == "TRANSPARENT") { $event->transparency = 0; // 0 = available / free } @@ -1701,7 +1703,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $curtime = dol_mktime(0, 0, 0, $month, $day, $year); $urltoshow = DOL_URL_ROOT.'/comm/action/index.php?mode=show_day&day='.str_pad($day, 2, "0", STR_PAD_LEFT).'&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year.$newparam; $urltocreate = ''; - if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { + if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $newparam .= '&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year; $hourminsec = '100000'; $urltocreate = DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.sprintf("%04d%02d%02d", $year, $month, $day).$hourminsec.'&backtopage='.urlencode($_SERVER["PHP_SELF"].($newparam ? '?'.$newparam : '')); @@ -1720,7 +1722,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa } print ''; print '
    '; - if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { + if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { print ''; // Explicit link, usefull for nojs interfaces print img_picto($langs->trans("NewAction"), 'edit_add.png'); print ''; @@ -1847,7 +1849,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $cssclass .= ' movable cursormove'; } } else { - if ($user->rights->agenda->allactions->create || + if ($user->hasRight('agenda', 'allactions', 'create') || (($event->authorid == $user->id || $event->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { $cssclass .= " movable cursormove"; } else { @@ -1909,7 +1911,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa } //print 'background: #'.$colortouse.';'; //print 'background: -webkit-gradient(linear, left top, left bottom, from(#'.dol_color_minus($color, -3).'), to(#'.dol_color_minus($color, -1).'));'; - //if (! empty($event->transparency)) print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));'; + //if (!empty($event->transparency)) print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));'; //else print 'background-color: transparent !important; background: none; border: 1px solid #bbb;'; //print ' -moz-border-radius:4px;"'; //print 'border: 1px solid #ccc" width="100%"'; @@ -1982,7 +1984,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa // Show title $titletoshow = $daterange; - $titletoshow .= ($titletoshow ? ' ' : '').($event->label ? $event->label : $event->libelle); + $titletoshow .= ($titletoshow ? ' ' : '').dol_escape_htmltag($event->label ? $event->label : $event->libelle); if ($event->type_code != 'ICALEVENT') { $savlabel = $event->label ? $event->label : $event->libelle; diff --git a/htdocs/comm/action/info.php b/htdocs/comm/action/info.php index 19f4c4bfa03..21651bb7446 100644 --- a/htdocs/comm/action/info.php +++ b/htdocs/comm/action/info.php @@ -22,13 +22,14 @@ * \brief Page des informations d'une action */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -38,6 +39,9 @@ $langs->load("commercial"); $id = GETPOST('id', 'int'); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('actioncard', 'globalcard')); + // Security check if ($user->socid > 0) { $action = ''; @@ -49,6 +53,8 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } +$usercancreate = $user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); + /* * View @@ -80,25 +86,39 @@ $out .= ''.img_picto($langs->trans("ViewDay"), 'object_calendarday', 'class="hideonsmartphone pictoactionview"'); $out .= ''.$langs->trans("ViewDay").''; +// Add more views from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('addCalendarView', $parameters, $object, $action); +if (empty($reshook)) { + $out .= $hookmanager->resPrint; +} elseif ($reshook > 1) { + $out = $hookmanager->resPrint; +} + $linkback .= $out; $morehtmlref = '
    '; // Thirdparty //$morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); - //$morehtmlref.='
    '.$langs->trans('Project') . ' '; - $morehtmlref .= $langs->trans('Project').': '; - if (!empty($object->fk_project)) { - $proj = new Project($db); - $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); - if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + //$morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify') { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - $morehtmlref .= ''; + if (!empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= $proj->getNomUrl(1); + if ($proj->title) { + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; + } + } } } $morehtmlref .= '
    '; diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index 06e6684d99b..4be3195561e 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -27,10 +27,7 @@ * \brief Page to list actions */ -if (!defined("NOREDIRECTBYMAINTOLOGIN")) { - define('NOREDIRECTBYMAINTOLOGIN', 1); -} - +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; @@ -398,7 +395,7 @@ $arrayofmassactions = array( if ($user->rights->agenda->allactions->delete) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } -if ($user->rights->agenda->myactions->create) { +if (isModEnabled('category') && $user->rights->agenda->myactions->create) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete','preaffecttag'))) { @@ -430,6 +427,8 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_extrafields as ef ON (a.id = ef.fk_object)"; if (empty($user->rights->societe->client->voir) && !$socid) { @@ -566,21 +565,18 @@ $sql .= $hookmanager->resPrint; // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - /* This old and fast method to get and count full list returns all record so use a high amount of memory. - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - */ - /* The slow method does not consume memory on mysql (not tested on pgsql) */ - /*$resql = $db->query($sql, 0, 'auto', 1); - while ($db->fetch_object($resql)) { - $nbtotalofrecords++; - }*/ /* The fast and low memory method to get and count full list converts the sql into a sql count */ - $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),]+FROM/i', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); $resql = $db->query($sqlforcount); - $objforcount = $db->fetch_object($resql); - $nbtotalofrecords = $objforcount->nbtotalofrecords; - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } @@ -704,7 +700,7 @@ $url = DOL_URL_ROOT.'/comm/action/card.php?action=create'; $url .= '&datep='.sprintf("%04d%02d%02d", $tmpforcreatebutton['year'], $tmpforcreatebutton['mon'], $tmpforcreatebutton['mday']).$hourminsec; $url .= '&backtopage='.urlencode($_SERVER["PHP_SELF"].($newparam ? '?'.$newparam : '')); -$newcardbutton = dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', $url, '', $user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create); +$newcardbutton = dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', $url, '', $user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')); $param .= '&mode='.$mode; @@ -718,7 +714,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; $moreforfilter = ''; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields if ($massactionbutton) { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); } @@ -732,6 +728,13 @@ print '
    '; print ''."\n"; print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} if (!empty($arrayfields['a.id']['checked'])) { print ''; } @@ -798,10 +801,12 @@ if (!empty($arrayfields['a.percent']['checked'])) { print ''; } // Action column -print ''; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} print ''."\n"; $totalarray = array(); @@ -810,6 +815,9 @@ $totalarray['nbfield'] = 0; // Fields title label // -------------------------------------------------------------------- print ''; +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +} if (!empty($arrayfields['a.id']['checked'])) { print_liste_field_titre($arrayfields['a.id']['label'], $_SERVER["PHP_SELF"], "a.id", $param, "", "", $sortfield, $sortorder); $totalarray['nbfield']++; @@ -830,7 +838,7 @@ if (!empty($arrayfields['a.note']['checked'])) { print_liste_field_titre($arrayfields['a.note']['label'], $_SERVER["PHP_SELF"], "a.note", $param, "", "", $sortfield, $sortorder); $totalarray['nbfield']++; } -//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) +//if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) if (!empty($arrayfields['a.datep']['checked'])) { print_liste_field_titre($arrayfields['a.datep']['label'], $_SERVER["PHP_SELF"], "a.datep,a.id", $param, '', 'align="center"', $sortfield, $sortorder); $totalarray['nbfield']++; @@ -871,7 +879,9 @@ if (!empty($arrayfields['a.percent']['checked'])) { print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "a.percent", $param, "", 'align="center"', $sortfield, $sortorder); $totalarray['nbfield']++; } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +} $totalarray['nbfield']++; print "\n"; @@ -924,7 +934,18 @@ while ($i < $imaxinloop) { } print ''; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } // Ref if (!empty($arrayfields['a.id']['checked'])) { print ''; } @@ -1091,11 +1112,11 @@ while ($i < $imaxinloop) { // Date creation if (!empty($arrayfields['a.datec']['checked'])) { // Status/Percent - print ''; + print ''; } // Date update if (!empty($arrayfields['a.tms']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['a.percent']['checked'])) { // Status/Percent @@ -1103,15 +1124,17 @@ while ($i < $imaxinloop) { print ''; } // Action column - print ''; } - print ''; print ''."\n"; diff --git a/htdocs/comm/action/pertype.php b/htdocs/comm/action/pertype.php index 85eb355f2b6..ce33d0f40b2 100644 --- a/htdocs/comm/action/pertype.php +++ b/htdocs/comm/action/pertype.php @@ -23,20 +23,21 @@ /** - * \file htdocs/comm/action/pertype.php - * \ingroup agenda - * \brief Tab of calendar events per type + * \file htdocs/comm/action/pertype.php + * \ingroup agenda + * \brief Tab of calendar events per type */ +// Load Dolibarr environment require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; if (!isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) { @@ -51,28 +52,35 @@ $filter = GETPOST("search_filter", 'alpha', 3) ? GETPOST("search_filter", 'alpha $filtert = GETPOST("search_filtert", "int", 3) ? GETPOST("search_filtert", "int", 3) : GETPOST("filtert", "int", 3); $usergroup = GETPOST("search_usergroup", "int", 3) ? GETPOST("search_usergroup", "int", 3) : GETPOST("usergroup", "int", 3); //if (! ($usergroup > 0) && ! ($filtert > 0)) $filtert = $user->id; -//$showbirthday = empty($conf->use_javascript_ajax)?GETPOST("showbirthday","int"):1; -$showbirthday = 0; + +// $showbirthday = empty($conf->use_javascript_ajax)?GETPOST("showbirthday","int"):1; +$showbirthday = 0; // will be hidden here // If not choice done on calendar owner, we filter on user. if (empty($filtert) && empty($conf->global->AGENDA_ALL_CALENDARS)) { $filtert = $user->id; } +// Sorting $sortfield = GETPOST('sortfield', 'aZ09comma'); +if (!$sortfield) { + $sortfield = "a.datec"; +} + $sortorder = GETPOST('sortorder', 'aZ09comma'); +if (!$sortorder) { + $sortorder = "ASC"; +} + +// Page $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $offset = $limit * $page; -if (!$sortorder) { - $sortorder = "ASC"; -} -if (!$sortfield) { - $sortfield = "a.datec"; -} + + // Security check $socid = GETPOST("search_socid", "int") ?GETPOST("search_socid", "int") : GETPOST("socid", "int"); @@ -83,6 +91,7 @@ if ($socid < 0) { $socid = ''; } +// Permissions $canedit = 1; if (empty($user->rights->agenda->myactions->read)) { accessforbidden(); @@ -105,6 +114,7 @@ $status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'alpha') : GE $type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'alpha') : GETPOST("type", 'alpha'); $maxprint = ((GETPOST("maxprint", 'int') != '') ? GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') + // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index) if (GETPOST('search_actioncode', 'array')) { $actioncode = GETPOST('search_actioncode', 'array', 3); @@ -117,11 +127,12 @@ if (GETPOST('search_actioncode', 'array')) { $dateselect = dol_mktime(0, 0, 0, GETPOST('dateselectmonth', 'int'), GETPOST('dateselectday', 'int'), GETPOST('dateselectyear', 'int')); if ($dateselect > 0) { - $day = GETPOST('dateselectday', 'int'); + $day = GETPOST('dateselectday', 'int'); $month = GETPOST('dateselectmonth', 'int'); - $year = GETPOST('dateselectyear', 'int'); + $year = GETPOST('dateselectyear', 'int'); } +// working hours $tmp = empty($conf->global->MAIN_DEFAULT_WORKING_HOURS) ? '9-18' : $conf->global->MAIN_DEFAULT_WORKING_HOURS; $tmp = str_replace(' ', '', $tmp); // FIX 7533 $tmparray = explode('-', $tmp); @@ -137,6 +148,7 @@ if ($end_h <= $begin_h) { $end_h = $begin_h + 1; } +// working days $tmp = empty($conf->global->MAIN_DEFAULT_WORKING_DAYS) ? '1-5' : $conf->global->MAIN_DEFAULT_WORKING_DAYS; $tmp = str_replace(' ', '', $tmp); // FIX 7533 $tmparray = explode('-', $tmp); @@ -150,19 +162,24 @@ if (empty($mode) && !GETPOSTISSET('mode')) { $mode = (empty($conf->global->AGENDA_DEFAULT_VIEW) ? 'show_month' : $conf->global->AGENDA_DEFAULT_VIEW); } +// View by month if (GETPOST('viewcal', 'alpha') && $mode != 'show_day' && $mode != 'show_week' && $mode != 'show_peruser') { $mode = 'show_month'; $day = ''; -} // View by month +} +// View by week if (GETPOST('viewweek', 'alpha') || $mode == 'show_week') { $mode = 'show_week'; $week = ($week ? $week : date("W")); $day = ($day ? $day : date("d")); -} // View by week +} +// View by day if (GETPOST('viewday', 'alpha') || $mode == 'show_day') { $mode = 'show_day'; $day = ($day ? $day : date("d")); -} // View by day +} +// View by year if (GETPOST('viewyear', 'alpha') || $mode == 'show_year') { $mode = 'show_year'; -} // View by year +} +// Initialize object $object = new ActionComm($db); // Load translation files required by the page @@ -189,7 +206,7 @@ if ($action == 'delete_action' && $user->rights->agenda->delete) { $event->fetch($actionid); $event->fetch_optionals(); $event->fetch_userassigned(); - $event->oldcopy = clone $event; + $event->oldcopy = dol_clone($event); $result = $event->delete(); } @@ -218,6 +235,7 @@ $parameters = array( 'resourceid' => $resourceid, 'usergroup' => $usergroup, ); + $reshook = $hookmanager->executeHooks('beforeAgendaPerType', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -226,14 +244,14 @@ if ($reshook < 0) { $form = new Form($db); $companystatic = new Societe($db); -$help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; +$help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda|DE:Modul_Terminplanung'; llxHeader('', $langs->trans("Agenda"), $help_url); $now = dol_now(); $nowarray = dol_getdate($now); -$nowyear = $nowarray['year']; +$nowyear = $nowarray['year']; $nowmonth = $nowarray['mon']; -$nowday = $nowarray['mday']; +$nowday = $nowarray['mday']; // Define list of all external calendars (global setup) @@ -246,7 +264,7 @@ $first_year = $year; $week = $prev['week']; -$day = (int) $day; +$day = (int) $day; $next = dol_get_next_day($day, $month, $year); $next_year = $year + 1; $next_month = $month; @@ -461,7 +479,7 @@ if (empty($reshook)) { $newcardbutton = ''; -if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { +if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $tmpforcreatebutton = dol_getdate(dol_now(), true); $newparam .= '&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$tmpforcreatebutton['year']; diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 18f62872630..bd35fc16e7d 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -28,6 +28,7 @@ * \brief Tab of calendar events per user */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; @@ -101,7 +102,7 @@ $month = GETPOST("month", "int") ?GETPOST("month", "int") : date("m"); $week = GETPOST("week", "int") ?GETPOST("week", "int") : date("W"); $day = GETPOST("day", "int") ?GETPOST("day", "int") : date("d"); $pid = GETPOSTISSET("search_projectid") ? GETPOST("search_projectid", "int", 3) : GETPOST("projectid", "int", 3); -$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo' +$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo', 'na' or -1 $type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'alpha') : GETPOST("type", 'alpha'); $maxprint = ((GETPOST("maxprint", 'int') != '') ?GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') @@ -196,7 +197,7 @@ if ($action == 'delete_action' && $user->rights->agenda->delete) { $event->fetch($actionid); $event->fetch_optionals(); $event->fetch_userassigned(); - $event->oldcopy = clone $event; + $event->oldcopy = dol_clone($event); $result = $event->delete(); } @@ -474,7 +475,7 @@ if (empty($reshook)) { $newparam = ''; $newcardbutton = ''; -if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { +if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $tmpforcreatebutton = dol_getdate(dol_now(), true); $newparam .= '&month='.urlencode(str_pad($month, 2, "0", STR_PAD_LEFT)).'&year='.urlencode($tmpforcreatebutton['year']); @@ -627,12 +628,14 @@ if ($type) { if ($status == '0') { $sql .= " AND a.percent = 0"; } -if ($status == '-1') { +if ($status == '-1' || $status == 'na') { + // Not applicable $sql .= " AND a.percent = -1"; -} // Not applicable +} if ($status == '50') { + // Running already started $sql .= " AND (a.percent > 0 AND a.percent < 100)"; -} // Running already started +} if ($status == 'done' || $status == '100') { $sql .= " AND (a.percent = 100)"; } @@ -899,7 +902,7 @@ while ($currentdaytoshow < $lastdaytoshow) { /* Use this list to have for all users */ $sql = "SELECT DISTINCT u.rowid, u.lastname as lastname, u.firstname, u.statut, u.login, u.admin, u.entity"; $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql .= " WHERE ug.entity IN (".getEntity('usergroup').")"; $sql .= " AND ug.fk_user = u.rowid "; diff --git a/htdocs/comm/action/rapport/index.php b/htdocs/comm/action/rapport/index.php index 9b3f9a27140..2cc3f6a7a9d 100644 --- a/htdocs/comm/action/rapport/index.php +++ b/htdocs/comm/action/rapport/index.php @@ -24,12 +24,13 @@ * \brief Page with reports of actions */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/modules/action/rapport.pdf.php'; +require_once DOL_DOCUMENT_ROOT.'/core/modules/action/rapport.class.php'; // Load translation files required by the page $langs->loadLangs(array("agenda", "commercial")); diff --git a/htdocs/comm/admin/propal_extrafields.php b/htdocs/comm/admin/propal_extrafields.php index 7a4cfe7a6ea..fa0c9117430 100644 --- a/htdocs/comm/admin/propal_extrafields.php +++ b/htdocs/comm/admin/propal_extrafields.php @@ -24,6 +24,7 @@ * \brief Page to setup extra fields of third party */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -79,13 +80,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print "
    "; diff --git a/htdocs/comm/admin/propaldet_extrafields.php b/htdocs/comm/admin/propaldet_extrafields.php index 91517d456c5..0f904b31407 100644 --- a/htdocs/comm/admin/propaldet_extrafields.php +++ b/htdocs/comm/admin/propaldet_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of order */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -82,13 +83,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print '
    '; diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 4005ba45e65..e6162b45b52 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -32,6 +32,7 @@ * \brief Page to show customer card of a third party */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -44,47 +45,47 @@ if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; } -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; } -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; } -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; } // Load translation files required by the page $langs->loadLangs(array('companies', 'banks')); -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $langs->load("contracts"); } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $langs->load("orders"); } -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { $langs->load("sendings"); } if (isModEnabled('facture')) { $langs->load("bills"); } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); } -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { $langs->load("interventions"); } -if (!empty($conf->notification->enabled)) { +if (isModEnabled('notification')) { $langs->load("mails"); } @@ -130,7 +131,7 @@ if ($id > 0 && empty($object->id)) { } } if ($object->id > 0) { - if (!($object->client > 0) || empty($user->rights->societe->lire)) { + if (!($object->client > 0) || !$user->hasRight('societe', 'lire')) { accessforbidden(); } } @@ -157,7 +158,7 @@ if (empty($reshook)) { $action = ""; } - // set accountancy code + // Set accountancy code if ($action == 'setcustomeraccountancycode') { $result = $object->fetch($id); $object->code_compta_client = GETPOST("customeraccountancycode"); @@ -168,7 +169,7 @@ if (empty($reshook)) { } } - // terms of the settlement + // Payment terms of the settlement if ($action == 'setconditions' && $user->rights->societe->creer) { $object->fetch($id); $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'), GETPOST('cond_reglement_id_deposit_percent', 'alpha')); @@ -177,7 +178,7 @@ if (empty($reshook)) { } } - // mode de reglement + // Payment mode if ($action == 'setmode' && $user->rights->societe->creer) { $object->fetch($id); $result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int')); @@ -186,7 +187,7 @@ if (empty($reshook)) { } } - // transport mode + // Transport mode if ($action == 'settransportmode' && $user->rights->societe->creer) { $object->fetch($id); $result = $object->setTransportMode(GETPOST('transport_mode_id', 'alpha')); @@ -420,7 +421,7 @@ if ($object->id > 0) { print ""; print ''; - // Mode de reglement par defaut + // Default payment mode print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -952,7 +973,7 @@ while ($i < $imaxinloop) { if (empty($conf->global->AGENDA_USE_EVENT_TYPE) && empty($arraylist[$labeltype])) { $labeltype = 'AC_OTH'; } - if ($actionstatic->type_code == 'AC_OTH' && $actionstatic->code == 'TICKET_MSG') { + if (preg_match('/^TICKET_MSG/', $actionstatic->code)) { $labeltype = $langs->trans("Message"); } else { if (!empty($arraylist[$labeltype])) { @@ -987,10 +1008,10 @@ while ($i < $imaxinloop) { if (!empty($arrayfields['a.datep']['checked'])) { print ''; if (empty($obj->fulldayevent)) { - print dol_print_date($db->jdate($obj->dp), $formatToUse, 'tzuser'); + print dol_print_date($db->jdate($obj->dp), $formatToUse, 'tzuserrel'); } else { $tzforfullday = getDolGlobalString('MAIN_STORE_FULL_EVENT_IN_GMT'); - print dol_print_date($db->jdate($obj->dp), $formatToUse, ($tzforfullday ? $tzforfullday : 'tzuser')); + print dol_print_date($db->jdate($obj->dp), $formatToUse, ($tzforfullday ? $tzforfullday : 'tzuserrel')); } $late = 0; if ($actionstatic->hasDelay() && $actionstatic->percentage >= 0 && $actionstatic->percentage < 100 ) { @@ -1006,10 +1027,10 @@ while ($i < $imaxinloop) { if (!empty($arrayfields['a.datep2']['checked'])) { print ''; if (empty($obj->fulldayevent)) { - print dol_print_date($db->jdate($obj->dp2), $formatToUse, 'tzuser'); + print dol_print_date($db->jdate($obj->dp2), $formatToUse, 'tzuserrel'); } else { $tzforfullday = getDolGlobalString('MAIN_STORE_FULL_EVENT_IN_GMT'); - print dol_print_date($db->jdate($obj->dp2), $formatToUse, ($tzforfullday ? $tzforfullday : 'tzuser')); + print dol_print_date($db->jdate($obj->dp2), $formatToUse, ($tzforfullday ? $tzforfullday : 'tzuserrel')); } print ''.dol_print_date($db->jdate($obj->datec), 'dayhour', 'tzuser').''.dol_print_date($db->jdate($obj->datec), 'dayhour', 'tzuserrel').''.dol_print_date($db->jdate($obj->datem), 'dayhour', 'tzuser').''.dol_print_date($db->jdate($obj->datem), 'dayhour', 'tzuserrel').''.$actionstatic->LibStatut($obj->percent, 5, 0, $datep).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->id, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->id, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '; print '"; print ''; - if (!empty($conf->banque->enabled)) { - // Compte bancaire par défaut + if (isModEnabled("banque")) { + // Default bank account for payments print ''; if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) { print ''; + + if ($conf->service->enabled && $projectstatic->thirdparty->id > 0 && $projectstatic->usage_bill_time) { + print ''; + } } // Hook fields $parameters = array('mode' => 'create'); @@ -1512,6 +1813,12 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) { print ''; + + if ($conf->service->enabled && $projectstatic->thirdparty->id > 0 && $projectstatic->usage_bill_time) { + print ''; + } } // Fields from hook @@ -1558,16 +1865,32 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; // Date if (!empty($arrayfields['t.task_date']['checked'])) { - print ''; } + // Thirdparty + if (!empty($arrayfields['p.fk_soc']['checked'])) { + print ''; + } + + // Thirdparty alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } + if (!empty($allprojectforuser)) { - print ''; + if (!empty($arrayfields['p.project_ref']['checked'])) { + print ''; + } + if (!empty($arrayfields['p.project_label']['checked'])) { + print ''; + } } // Task if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task @@ -1588,6 +1911,29 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser } // Duration if (!empty($arrayfields['t.task_duration']['checked'])) { + // Duration - Time spent + print ''; + } + // Product + if (!empty($arrayfields['t.fk_product']['checked'])) { print ''; } // Value in main currency @@ -1618,8 +1964,20 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!empty($arrayfields['t.task_date']['checked'])) { print_liste_field_titre($arrayfields['t.task_date']['label'], $_SERVER['PHP_SELF'], 't.task_date,t.task_datehour,t.rowid', '', $param, '', $sortfield, $sortorder); } + + if (!empty($arrayfields['p.fk_soc']['checked'])) { + print_liste_field_titre($arrayfields['p.fk_soc']['label'], $_SERVER['PHP_SELF'], 't.task_date,t.task_datehour,t.rowid', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER['PHP_SELF'], 's.name_alias', '', $param, '', $sortfield, $sortorder); + } if (!empty($allprojectforuser)) { - print_liste_field_titre("Project", $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder); + if (!empty($arrayfields['p.project_ref']['checked'])) { + print_liste_field_titre("Project", $_SERVER['PHP_SELF'], 'p.ref', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['p.project_label']['checked'])) { + print_liste_field_titre("ProjectLabel", $_SERVER['PHP_SELF'], 'p.title', '', $param, '', $sortfield, $sortorder); + } } if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task if (!empty($arrayfields['t.task_ref']['checked'])) { @@ -1638,6 +1996,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!empty($arrayfields['t.task_duration']['checked'])) { print_liste_field_titre($arrayfields['t.task_duration']['label'], $_SERVER['PHP_SELF'], 't.task_duration', '', $param, '', $sortfield, $sortorder, 'right '); } + if (!empty($arrayfields['t.fk_product']['checked'])) { + print_liste_field_titre($arrayfields['t.fk_product']['label'], $_SERVER['PHP_SELF'], 't.fk_product', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['value']['checked'])) { print_liste_field_titre($arrayfields['value']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right '); } @@ -1662,7 +2024,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $total = 0; $totalvalue = 0; - $totalarray = array(); + $totalarray = array('nbfield'=>0); foreach ($tasks as $task_time) { if ($i >= $limit) { break; @@ -1676,7 +2038,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Date if (!empty($arrayfields['t.task_date']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; } } + // Thirdparty alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project ref & label + if (!empty($allprojectforuser)) { + if (!empty($arrayfields['p.project_ref']['checked'])) { + print ''; + if (! $i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['p.project_label']['checked'])) { + print ''; + if (! $i) { + $totalarray['nbfield']++; + } + } + } + // Task ref if (!empty($arrayfields['t.task_ref']['checked'])) { if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task print ''; } // Value spent if (!empty($arrayfields['value']['checked'])) { $langs->load("salaries"); + $value = price2num($task_time->thm * $task_time->task_duration / 3600, 'MT', 1); print ''; // Date if (!empty($arrayfields['t.task_date']['checked'])) { print ''; - } elseif ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { - print ''; + } elseif ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; } // Time spent if (!empty($arrayfields['t.task_duration']['checked'])) { print ''; } @@ -2055,7 +2505,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Date if (!empty($arrayfields['t.task_date']['checked'])) { print ''; - } elseif ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { - print ''; + } elseif ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; } // Time spent if (!empty($arrayfields['t.task_duration']['checked'])) { print ''; } @@ -2162,7 +2614,9 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; } diff --git a/htdocs/public/agenda/agendaexport.php b/htdocs/public/agenda/agendaexport.php index a0e7ea817a7..e8d9f986f91 100644 --- a/htdocs/public/agenda/agendaexport.php +++ b/htdocs/public/agenda/agendaexport.php @@ -79,12 +79,13 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; // Security check if (empty($conf->agenda->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Agenda not enabled'); } // Not older than diff --git a/htdocs/asterisk/cidlookup.php b/htdocs/public/clicktodial/cidlookup.php similarity index 71% rename from htdocs/asterisk/cidlookup.php rename to htdocs/public/clicktodial/cidlookup.php index 716057198f8..3ec7024855d 100644 --- a/htdocs/asterisk/cidlookup.php +++ b/htdocs/public/clicktodial/cidlookup.php @@ -16,20 +16,45 @@ */ /** - * \file htdocs/asterisk/cidlookup.php + * \file htdocs/public/clicktodial/cidlookup.php * \brief Script to search companies names based on incoming calls, from caller phone number - * \remarks To use this script, your Asterisk must be compiled with CURL, - * and your dialplan must be something like this: + * \remarks To use this script, your Asterisk must be compiled with CURL, and your dialplan must be something like this: * - * exten => s,1,Set(CALLERID(name)=${CURL(http://IP-DOLIBARR:80/asterisk/cidlookup.php?phone=${CALLERID(num)})}) + * exten => s,1,Set(CALLERID(name)=${CURL(http://IP-DOLIBARR:80/asterisk/cidlookup.php?phone=${CALLERID(num)}&securitykey=SECURITYKEY)}) * * Change IP-DOLIBARR to the IP address of your dolibarr server + * Change SECURITYKEY to the value defined into your setup of module ClickToDial */ +if (!defined('NOTOKENRENEWAL')) { + define('NOTOKENRENEWAL', '1'); // Disables token renewal +} +if (!defined('NOREQUIREMENU')) { + define('NOREQUIREMENU', '1'); +} +if (!defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); +} +if (!defined('NOREQUIREAJAX')) { + define('NOREQUIREAJAX', '1'); +} +if (!defined('NOLOGIN')) { + define('NOLOGIN', '1'); +} +if (!defined('NOIPCHECK')) { + define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +} -include '../master.inc.php'; +// So log file will have a suffix +if (!defined('USESUFFIXINLOG')) { + define('USESUFFIXINLOG', '_cidlookup'); +} + +include '../../main.inc.php'; $phone = GETPOST('phone'); +$securitykey = GETPOST('securitykey'); + $notfound = $langs->trans("Unknown"); // Security check @@ -38,12 +63,27 @@ if (empty($conf->clicktodial->enabled)) { exit; } + +/* + * View + */ + +if (empty($securitykey)) { + echo 'Securitykey is required. Check setup of clicktodial module.'; + exit; +} +if ($securitykey != getDolGlobalString('CLICKTODIAL_KEY_FOR_CIDLOOKUP')) { + echo 'Securitykey is wrong.'; + exit; +} + // Check parameters if (empty($phone)) { print "Error: Url must be called with parameter phone=phone to search\n"; exit; } + $sql = "SELECT s.nom as name FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON sp.fk_soc = s.rowid"; $sql .= " WHERE s.entity IN (".getEntity('societe').")"; diff --git a/htdocs/public/cron/cron_run_jobs_by_url.php b/htdocs/public/cron/cron_run_jobs_by_url.php index 8aa910a2d4f..2cbea50bb90 100644 --- a/htdocs/public/cron/cron_run_jobs_by_url.php +++ b/htdocs/public/cron/cron_run_jobs_by_url.php @@ -75,7 +75,7 @@ $langs->loadLangs(array("admin", "cron", "dict")); // Security check if (empty($conf->cron->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Cron not enabled'); } @@ -93,7 +93,7 @@ if (empty($key)) { echo 'Securitykey is required. Check setup of cron jobs module.'; exit; } -if ($key != $conf->global->CRON_KEY) { +if ($key != getDolGlobalString('CRON_KEY')) { echo 'Securitykey is wrong.'; exit; } @@ -135,33 +135,25 @@ if (!empty($id)) { $filter['t.rowid'] = $id; } -$result = $object->fetch_all('ASC,ASC,ASC', 't.priority,t.entity,t.rowid', 0, 0, 1, $filter, 0); +$result = $object->fetchAll('ASC,ASC,ASC', 't.priority,t.entity,t.rowid', 0, 0, 1, $filter, 0); if ($result < 0) { echo "Error: ".$object->error; dol_syslog("cron_run_jobs.php fetch Error".$object->error, LOG_ERR); exit; } -$qualifiedjobs = array(); -foreach ($object->lines as $val) { - if (!verifCond($val->test)) { - continue; - } - $qualifiedjobs[] = $val; -} - // TODO Duplicate code. This sequence of code must be shared with code into cron_run_jobs.php script. // current date -$nbofjobs = count($qualifiedjobs); +$nbofjobs = count($object->lines); $nbofjobslaunchedok = 0; $nbofjobslaunchedko = 0; -if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) { +if (is_array($object->lines) && (count($object->lines) > 0)) { $savconf = dol_clone($conf); // Loop over job - foreach ($qualifiedjobs as $line) { + foreach ($object->lines as $line) { dol_syslog("cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label, LOG_DEBUG); echo "cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label; @@ -191,6 +183,10 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) { } } + if (!verifCond($line->test)) { + continue; + } + //If date_next_jobs is less of current date, execute the program, and store the execution time of the next execution in database if (($line->datenextrun < $now) && (empty($line->datestart) || $line->datestart <= $now) && (empty($line->dateend) || $line->dateend >= $now)) { echo " - qualified"; diff --git a/htdocs/datapolicy/public/index.php b/htdocs/public/datapolicy/index.php similarity index 75% rename from htdocs/datapolicy/public/index.php rename to htdocs/public/datapolicy/index.php index 104b393bf7e..ea19759a87d 100644 --- a/htdocs/datapolicy/public/index.php +++ b/htdocs/public/datapolicy/index.php @@ -1,5 +1,4 @@ * * This program is free software: you can redistribute it and/or modify @@ -19,108 +18,120 @@ /** * \file htdocs/datapolicy/admin/setup.php * \ingroup datapolicy - * \brief datapolicy setup page. + * \brief Page to show the result of updating it Data policiy preferences after an email campaign using sendMailDataPolicyContact() */ if (!defined('NOLOGIN')) { define("NOLOGIN", 1); // This means this output page does not require to be logged. } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); // Do not check anti CSRF attack test -} if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; $idc = GETPOST('c', 'int'); $ids = GETPOST('s', 'int'); $ida = GETPOST('a', 'int'); -$action = GETPOST('action', 'aZ09'); -$lang = GETPOST('l', 'alpha'); -$code = GETPOST('key', 'alpha'); +$action = GETPOST('action', 'aZ09'); // 1 or 2 +$l = GETPOST('l', 'alpha'); +$securitykey = GETPOST('key', 'alpha'); -$acc = "DATAPOLICIESACCEPT_".$lang; -$ref = "DATAPOLICIESREFUSE_".$lang; -$langs->load('datapolicy@datapolicy', 0, 0, $lang); +$acc = "DATAPOLICIESACCEPT_".$l; +$ref = "DATAPOLICIESREFUSE_".$l; +$langs->load('datapolicy', 0, 0, $l); + + +/* + * Actions + */ if (empty($action) || (empty($idc) && empty($ids) && empty($ida))) { + print 'Missing paramater s, c or a'; return 0; } elseif (!empty($idc)) { $contact = new Contact($db); $contact->fetch($idc); - $check = md5($contact->email); - if ($check != $code) { - $return = $langs->trans('ErrorEmailDATAPOLICIES'); + $check = dol_hash($contact->email, 'md5'); + if ($check != $securitykey) { + $return = $langs->trans('Bad value for key.'); } elseif ($action == 1) { $contact->array_options['options_datapolicy_consentement'] = 1; $contact->array_options['options_datapolicy_opposition_traitement'] = 0; $contact->array_options['options_datapolicy_opposition_prospection'] = 0; - $contact->array_options['options_datapolicy_date'] = date('Y-m-d', time()); + $contact->array_options['options_datapolicy_date'] = dol_now(); - $return = $conf->global->$acc; + $return = getDolGlobalString($acc); } elseif ($action == 2) { $contact->no_email = 1; $contact->array_options['options_datapolicy_consentement'] = 0; $contact->array_options['options_datapolicy_opposition_traitement'] = 1; $contact->array_options['options_datapolicy_opposition_prospection'] = 1; - $contact->array_options['options_datapolicy_date'] = date('Y-m-d', time()); + $contact->array_options['options_datapolicy_date'] = dol_now(); - $return = $conf->global->$ref; + $return = getDolGlobalString($ref); } $contact->update($idc); } elseif (!empty($ids)) { $societe = new Societe($db); $societe->fetch($ids); - $check = md5($societe->email); - if ($check != $code) { - $return = $langs->trans('ErrorEmailDATAPOLICIES'); + $check = dol_hash($societe->email, 'md5'); + if ($check != $securitykey) { + $return = $langs->trans('Bad value for key.'); } elseif ($action == 1) { $societe->array_options['options_datapolicy_consentement'] = 1; $societe->array_options['options_datapolicy_opposition_traitement'] = 0; $societe->array_options['options_datapolicy_opposition_prospection'] = 0; - $societe->array_options['options_datapolicy_date'] = date('Y-m-d', time()); - $return = $conf->global->$acc; + $societe->array_options['options_datapolicy_date'] = dol_now(); + + $return = getDolGlobalString($acc); } elseif ($action == 2) { $societe->array_options['options_datapolicy_consentement'] = 0; $societe->array_options['options_datapolicy_opposition_traitement'] = 1; $societe->array_options['options_datapolicy_opposition_prospection'] = 1; - $societe->array_options['options_datapolicy_date'] = date('Y-m-d', time()); + $societe->array_options['options_datapolicy_date'] = dol_now(); - $return = $conf->global->$ref; + $return = getDolGlobalString($ref); } $societe->update($ids); } elseif (!empty($ida)) { $adherent = new Adherent($db); $adherent->fetch($ida); - $check = md5($adherent->email); - if ($check != $code) { - $return = $langs->trans('ErrorEmailDATAPOLICIES'); + $check = dol_hash($adherent->email, 'md5'); + if ($check != $securitykey) { + $return = $langs->trans('Bad value for key.'); } elseif ($action == 1) { $adherent->array_options['options_datapolicy_consentement'] = 1; $adherent->array_options['options_datapolicy_opposition_traitement'] = 0; $adherent->array_options['options_datapolicy_opposition_prospection'] = 0; - //$adherent->array_options['options_datapolicy_date'] = date('Y-m-d', time()); - $return = $conf->global->$acc; + //$adherent->array_options['options_datapolicy_date'] = dol_now(); + + $return = getDolGlobalString($acc); } elseif ($action == 2) { $adherent->array_options['options_datapolicy_consentement'] = 0; $adherent->array_options['options_datapolicy_opposition_traitement'] = 1; $adherent->array_options['options_datapolicy_opposition_prospection'] = 1; - //$adherent->array_options['options_datapolicy_date'] = date('Y-m-d', time()); + //$adherent->array_options['options_datapolicy_date'] = dol_now(); - $return = $conf->global->$ref; + $return = getDolGlobalString($ref); } $newuser = new User($db); $adherent->update($newuser); } -header("Content-type: text/html; charset=".$conf->file->character_set_client); + +/* + * View + */ + +top_httphead(); print ''; print "\n"; diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php index 49bde1a2b9b..f7274d5b06b 100644 --- a/htdocs/public/demo/index.php +++ b/htdocs/public/demo/index.php @@ -27,9 +27,6 @@ if (!defined('NOLOGIN')) { define('NOLOGIN', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', 1); } @@ -37,6 +34,7 @@ if (!defined('NOIPCHECK')) { define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip } +// Load Dolibarr environment require '../../main.inc.php'; require_once '../../core/lib/functions2.lib.php'; @@ -51,7 +49,7 @@ $conf->dol_use_jmobile = GETPOST('dol_use_jmobile', 'int'); // Security check global $dolibarr_main_demo; if (empty($dolibarr_main_demo)) { - accessforbidden('Parameter dolibarr_main_demo must be defined in conf file with value "default login,default pass" to enable the demo entry page', 0, 0, 1); + httponly_accessforbidden('Parameter dolibarr_main_demo must be defined in conf file with value "default login,default pass" to enable the demo entry page'); } // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context diff --git a/htdocs/public/donations/donateurs_code.php b/htdocs/public/donations/donateurs_code.php index 87db3ee4133..509eb553288 100644 --- a/htdocs/public/donations/donateurs_code.php +++ b/htdocs/public/donations/donateurs_code.php @@ -25,9 +25,6 @@ if (!defined('NOLOGIN')) { define('NOLOGIN', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } @@ -55,12 +52,13 @@ function llxFooterVierge() print ''; } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; // Security check -if (empty($conf->don->enabled)) { - accessforbidden('', 0, 0, 1); +if (!isModEnabled('don')) { + httponly_accessforbidden('Module Donation not enabled'); } diff --git a/htdocs/public/emailing/mailing-read.php b/htdocs/public/emailing/mailing-read.php index 7fac6ff323e..5829c62dbd7 100644 --- a/htdocs/public/emailing/mailing-read.php +++ b/htdocs/public/emailing/mailing-read.php @@ -46,8 +46,8 @@ if (!defined('NOREQUIREMENU')) { if (!defined('NOIPCHECK')) { define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip } -if (!defined("NOSESSION")) { - define("NOSESSION", '1'); +if (!defined('NOSESSION')) { + define('NOSESSION', '1'); } /** @@ -58,6 +58,8 @@ if (!defined("NOSESSION")) { function llxHeader() { } + + /** * Footer empty * @@ -68,6 +70,7 @@ function llxFooter() } +// Load Dolibarr environment require '../../main.inc.php'; $mtid = GETPOST('mtid'); @@ -120,19 +123,19 @@ if (!empty($tag)) { } */ - //Update status of target + // Update status of target $statut = '2'; $sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".((int) $statut)." WHERE rowid = ".((int) $obj->rowid); $resql = $db->query($sql); if (!$resql) dol_print_error($db); - //Update status communication of thirdparty prospect + // Update status communication of thirdparty prospect if ($obj->source_id > 0 && $obj->source_type == 'thirdparty' && $obj->entity) { $sql = "UPDATE ".MAIN_DB_PREFIX.'societe SET fk_stcomm = 3 WHERE fk_stcomm <> -1 AND entity = '.((int) $obj->entity).' AND rowid = '.((int) $obj->source_id); $resql = $db->query($sql); } - //Update status communication of contact prospect + // Update status communication of contact prospect if ($obj->source_id > 0 && $obj->source_type == 'contact' && $obj->entity) { $sql = "UPDATE ".MAIN_DB_PREFIX.'societe SET fk_stcomm = 3 WHERE fk_stcomm <> -1 AND entity = '.((int) $obj->entity).' AND rowid IN (SELECT sc.fk_soc FROM '.MAIN_DB_PREFIX.'socpeople AS sc WHERE sc.rowid = '.((int) $obj->source_id).')'; $resql = $db->query($sql); diff --git a/htdocs/public/emailing/mailing-unsubscribe.php b/htdocs/public/emailing/mailing-unsubscribe.php index 76a73e8de05..a5291d06b7f 100644 --- a/htdocs/public/emailing/mailing-unsubscribe.php +++ b/htdocs/public/emailing/mailing-unsubscribe.php @@ -45,25 +45,15 @@ if (!defined('NOIPCHECK')) { if (!defined("NOSESSION")) { define("NOSESSION", '1'); } - -/** - * Header empty - * - * @return void - */ -function llxHeader() -{ +if (! defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php } -/** - * Footer empty - * - * @return void - */ -function llxFooter() -{ +if (! defined('NOREQUIREAJAX')) { + define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -71,9 +61,7 @@ global $user, $conf, $langs; $langs->loadLangs(array("main", "mails")); -$mtid = GETPOST('mtid'); -$email = GETPOST('email'); -$tag = GETPOST('tag'); +$tag = GETPOST('tag'); // To retreive the emailing, and recipient $unsuscrib = GETPOST('unsuscrib'); $securitykey = GETPOST('securitykey'); @@ -84,100 +72,98 @@ $securitykey = GETPOST('securitykey'); dol_syslog("public/emailing/mailing-read.php : tag=".$tag." securitykey=".$securitykey, LOG_DEBUG); -if ($securitykey != $conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY) { +if ($securitykey != getDolGlobalString('MAILING_EMAIL_UNSUBSCRIBE_KEY')) { print 'Bad security key value.'; exit; } - -if (!empty($tag) && ($unsuscrib == '1')) { - dol_syslog("public/emailing/mailing-unsubscribe.php : Launch unsubscribe requests", LOG_DEBUG); - - $sql = "SELECT mc.rowid, mc.email, mc.statut, m.entity"; - $sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc, ".MAIN_DB_PREFIX."mailing as m"; - $sql .= " WHERE mc.fk_mailing = m.rowid AND mc.tag='".$db->escape($tag)."'"; - - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - } - - $obj = $db->fetch_object($resql); - - if (empty($obj)) { - print 'Email target not valid. Operation canceled.'; - exit; - } - if (empty($obj->email)) { - print 'Email target not valid. Operation canceled.'; - exit; - } - if ($obj->statut == 3) { - print 'Email target already set to unsubscribe. Operation canceled.'; - exit; - } - // TODO Test that mtid and email match also with the one found from $tag - /* - if ($obj->email != $email) - { - print 'Email does not match tagnot found. No need to unsubscribe.'; - exit; - } - */ - - // Update status of mail in recipient mailing list table - $statut = '3'; - $sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".((int) $statut)." WHERE tag = '".$db->escape($tag)."'"; - - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - } - - /* - // Update status communication of thirdparty prospect (old usage) - $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='thirdparty' AND source_id is not null)"; - - $resql=$db->query($sql); - if (! $resql) dol_print_error($db); - - // Update status communication of contact prospect (old usage) - $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET no_email=1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='contact' AND source_id is not null)"; - - $resql=$db->query($sql); - if (! $resql) dol_print_error($db); - */ - - // Update status communication of email (new usage) - $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe (date_creat, entity, email, unsubscribegroup, ip) VALUES ('".$db->idate(dol_now())."', ".((int) $obj->entity).", '".$db->escape($obj->email)."', '', '".$db->escape(getUserRemoteIP())."')"; - - $resql = $db->query($sql); - //if (! $resql) dol_print_error($db); No test on errors, may fail if already unsubscribed - - - header("Content-type: text/html; charset=".$conf->file->character_set_client); - - print ''; - print "\n"; - print "\n"; - print "\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print "".$langs->trans("MailUnsubcribe")."\n"; - print ''."\n"; - print ''; - - print "\n"; - print ''."\n"; - print '
    '; print $langs->trans('PaymentMode'); @@ -438,8 +439,8 @@ if ($object->id > 0) { print "
    '; print ''; print ''; } - if (!empty($conf->intracommreport->enabled)) { + if (isModEnabled('intracommreport')) { // Transport mode by default print ''; // Bank account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; @@ -309,7 +310,7 @@ if ($action == 'create') { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); // Projet associe @@ -341,7 +342,7 @@ if ($action == 'create') { print ''; // Accountancy - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { // Accountancy_account_capital print ''; print ''; print ''; } else { - print ''; + print ''; } // Insurance @@ -482,7 +483,7 @@ if ($id > 0) { print ''; print ''; } else { - print ''; + print ''; } // Date start @@ -532,7 +533,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyCapitalCode"); print ''; // Bank account -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { if ($payment->bank_account) { $bankline = new AccountLine($db); $bankline->fetch($payment->bank_line); @@ -222,9 +223,9 @@ print '
    '; if (empty($action) && !empty($user->rights->loan->delete)) { if (!$disable_delete) { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 1); } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("CantRemovePaymentWithOneInvoicePaid"), $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 0); } } diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php index ac2b967593c..6a136f8ba2e 100644 --- a/htdocs/loan/payment/payment.php +++ b/htdocs/loan/payment/payment.php @@ -23,6 +23,7 @@ * \brief Page to add payment of a loan */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php'; @@ -105,7 +106,7 @@ if ($action == 'add_payment') { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors'); $error++; } - if (!empty($conf->banque->enabled) && !GETPOST('accountid', 'int') > 0) { + if (isModEnabled("banque") && !GETPOST('accountid', 'int') > 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToCredit")), null, 'errors'); $error++; } @@ -167,7 +168,7 @@ if ($action == 'add_payment') { if (!$error) { $result = $payment->addPaymentToBank($user, $chid, 'payment_loan', '(LoanPayment)', $payment->fk_bank, '', ''); - if (!$result > 0) { + if (!($result > 0)) { setEventMessages($payment->error, $payment->errors, 'errors'); $error++; } @@ -293,6 +294,7 @@ if ($action == 'create') { print ''; print '
    \n"; print ''; @@ -300,10 +302,11 @@ if ($action == 'create') { print ''; print ''; print ''; - // Number + // Number print ''; diff --git a/htdocs/loan/schedule.php b/htdocs/loan/schedule.php index 62ad7519ac9..8887c82ef42 100644 --- a/htdocs/loan/schedule.php +++ b/htdocs/loan/schedule.php @@ -23,6 +23,7 @@ * \brief Schedule card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; @@ -149,7 +150,7 @@ $morehtmlref = '
    '; $morehtmlref .= $form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); // Project -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { $langs->loadLangs(array("projects")); $morehtmlref .= '
    '.$langs->trans('Project').' : '; if ($user->rights->loan->write) { @@ -234,17 +235,16 @@ if (count($echeances->lines) > 0) { print ''; } +//print_fiche_titre($langs->trans("FinancialCommitment")); +print '
    '; + print '
    '; print '
    '; print $langs->trans('PaymentBankAccount'); @@ -510,7 +511,7 @@ if ($object->id > 0) { } if ($object->client) { - if (!empty($conf->commande->enabled) && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)) { + if (isModEnabled('commande') && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)) { print ''."\n"; print '
    '; @@ -544,7 +545,7 @@ if ($object->id > 0) { } // Warehouse - if (!empty($conf->stock->enabled) && !empty($conf->global->SOCIETE_ASK_FOR_WAREHOUSE)) { + if (isModEnabled('stock') && !empty($conf->global->SOCIETE_ASK_FOR_WAREHOUSE)) { $langs->load('stocks'); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -584,7 +585,7 @@ if ($object->id > 0) { print '
    '; print ''; print '
    '; @@ -605,7 +606,7 @@ if ($object->id > 0) { } // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { $langs->load("categories"); print '
    '.$langs->trans("CustomersCategoriesShort").''; @@ -621,7 +622,7 @@ if ($object->id > 0) { include DOL_DOCUMENT_ROOT.'/societe/tpl/linesalesrepresentative.tpl.php'; // Module Adherent - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $langs->load("members"); $langs->load("users"); @@ -641,16 +642,16 @@ if ($object->id > 0) { print "
    "; + print '
    '; + // Prospection level and status if ($object->client == 2 || $object->client == 3) { - print '
    '; - print '
    '; print ''; // Level of prospection print '"; } @@ -421,11 +443,20 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; print '
    '; - print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; @@ -847,7 +897,7 @@ if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) { // T /* * Opened (validated) proposals */ -if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { +if (isModEnabled("propal") && $user->hasRight("propal", "lire")) { $sql = "SELECT p.rowid as propalid, p.entity, p.total_ttc, p.total_ht, p.total_tva, p.ref, p.ref_client, p.fk_statut, p.datep as dp, p.fin_validite as dfv"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -922,7 +972,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { print '\n"; + $i++; } +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; +} + +$db->free($resql); + +print "
    '; + print ''; print "
    '; print $langs->trans('ProspectLevel'); print ''; if ($action != 'editlevel' && $user->rights->societe->creer) { @@ -682,10 +683,11 @@ if ($object->id > 0) { } print '
    "; - } - print '
    '; - print '
    '; + print '
    '; + } else { + print '

    '; + } $boxstat = ''; @@ -694,10 +696,10 @@ if ($object->id > 0) { // Lien recap $boxstat .= '
    '; - $boxstat .= ''; + $boxstat .= '
    '; $boxstat .= ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -217,7 +231,8 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { /* * Draft supplier proposals */ -if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire) { + +if (isModEnabled('supplier_proposal') && $user->hasRight("supplier_proposal", "lire")) { $sql = "SELECT p.rowid, p.ref, p.total_ht, p.total_tva, p.total_ttc, p.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -282,7 +297,7 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa $companystatic->canvas = $obj->canvas; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -311,9 +326,10 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa /* - * Draft customer orders + * Draft sales orders */ -if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { + +if (isModEnabled('commande') && $user->rights->commande->lire) { $sql = "SELECT c.rowid, c.ref, c.ref_client, c.total_ht, c.total_tva, c.total_ttc, c.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -379,7 +395,7 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { $companystatic->canvas = $obj->canvas; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -397,7 +413,7 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { } } - addSummaryTableLine(3, $num, $nbofloop, $total, "NoProposal"); + addSummaryTableLine(3, $num, $nbofloop, $total, "NoOrder"); finishSimpleTable(true); $db->free($resql); @@ -410,7 +426,8 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { /* * Draft purchase orders */ -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->commande->lire) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire)) { + +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "commande", "lire")) || (isModEnabled("supplier_order") && $user->hasRight("supplier_order", "lire"))) { $sql = "SELECT cf.rowid, cf.ref, cf.ref_supplier, cf.total_ht, cf.total_tva, cf.total_ttc, cf.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -476,7 +493,7 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU $companystatic->canvas = $obj->canvas; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -494,7 +511,7 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU } } - addSummaryTableLine(3, $num, $nbofloop, $total, "NoProposal"); + addSummaryTableLine(3, $num, $nbofloop, $total, "NoOrder"); finishSimpleTable(true); $db->free($resql); @@ -505,10 +522,15 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU /* - * Draft interventionals + * Draft interventions */ -if (!empty($conf->ficheinter->enabled)) { - $sql = "SELECT f.rowid, f.ref, s.nom as name, s.rowid as socid"; +if (isModEnabled('ficheinter')) { + $sql = "SELECT f.rowid, f.ref, s.nom as name, f.fk_statut"; + $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; + $sql .= ", s.code_client, s.code_compta, s.client"; + $sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur"; + $sql .= ", s.logo, s.email, s.entity"; + $sql .= ", s.canvas"; $sql .= " FROM ".MAIN_DB_PREFIX."fichinter as f"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; if (empty($user->rights->societe->client->voir) && !$socid) { @@ -524,25 +546,53 @@ if (!empty($conf->ficheinter->enabled)) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } + $resql = $db->query($sql); if ($resql) { - print '
    '; - print '
    '; - if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { + if (isModEnabled("propal") && $user->rights->propal->lire) { // Box proposals $tmp = $object->getOutstandingProposals(); $outstandingOpened = $tmp['opened']; @@ -718,7 +720,7 @@ if ($object->id > 0) { } } - if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { + if (isModEnabled('commande') && $user->rights->commande->lire) { // Box commandes $tmp = $object->getOutstandingOrders(); $outstandingOpened = $tmp['opened']; @@ -818,7 +820,7 @@ if ($object->id > 0) { /* * Latest proposals */ - if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { + if (isModEnabled("propal") && $user->rights->propal->lire) { $langs->load("propal"); $sql = "SELECT s.nom, s.rowid, p.rowid as propalid, p.fk_statut, p.total_ht"; @@ -913,9 +915,11 @@ if ($object->id > 0) { /* * Latest orders */ - if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { + if (isModEnabled('commande') && $user->rights->commande->lire) { + $param =""; + $sql = "SELECT s.nom, s.rowid"; - $sql .= ", c.rowid as cid, c.total_ht"; + $sql .= ", c.rowid as cid, c.entity, c.total_ht"; $sql .= ", c.total_tva"; $sql .= ", c.total_ttc"; $sql .= ", c.ref, c.ref_client, c.fk_statut, c.facture"; @@ -1022,9 +1026,9 @@ if ($object->id > 0) { /* * Latest shipments */ - if (!empty($conf->expedition->enabled) && $user->rights->expedition->lire) { + if (isModEnabled("expedition") && $user->rights->expedition->lire) { $sql = 'SELECT e.rowid as id'; - $sql .= ', e.ref'; + $sql .= ', e.ref, e.entity'; $sql .= ', e.date_creation'; $sql .= ', e.fk_statut as statut'; $sql .= ', s.nom'; @@ -1033,7 +1037,7 @@ if ($object->id > 0) { $sql .= " WHERE e.fk_soc = s.rowid AND s.rowid = ".((int) $object->id); $sql .= " AND e.entity IN (".getEntity('expedition').")"; $sql .= ' GROUP BY e.rowid'; - $sql .= ', e.ref'; + $sql .= ', e.ref, e.entity'; $sql .= ', e.date_creation'; $sql .= ', e.fk_statut'; $sql .= ', s.nom'; @@ -1120,8 +1124,9 @@ if ($object->id > 0) { /* * Latest contracts */ - if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire) { - $sql = "SELECT s.nom, s.rowid, c.rowid as id, c.ref as ref, c.statut as contract_status, c.datec as dc, c.date_contrat as dcon, c.ref_customer as refcus, c.ref_supplier as refsup"; + if (isModEnabled('contrat') && $user->rights->contrat->lire) { + $sql = "SELECT s.nom, s.rowid, c.rowid as id, c.ref as ref, c.statut as contract_status, c.datec as dc, c.date_contrat as dcon, c.ref_customer as refcus, c.ref_supplier as refsup, c.entity,"; + $sql .= " c.last_main_doc, c.model_pdf"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c"; $sql .= " WHERE c.fk_soc = s.rowid "; $sql .= " AND s.rowid = ".((int) $object->id); @@ -1154,12 +1159,14 @@ if ($object->id > 0) { $contrat->ref_customer = $objp->refcus; $contrat->ref_supplier = $objp->refsup; $contrat->statut = $objp->contract_status; + $contrat->last_main_doc = $objp->last_main_doc; + $contrat->model_pdf = $objp->model_pdf; $contrat->fetch_lines(); $late = ''; foreach ($contrat->lines as $line) { if ($contrat->statut == Contrat::STATUS_VALIDATED && $line->statut == ContratLigne::STATUS_OPEN) { - if (((!empty($line->date_fin_validite) ? $line->date_fin_validite : 0) + $conf->contrat->services->expires->warning_delay) < $now) { + if (((!empty($line->date_end) ? $line->date_end : 0) + $conf->contrat->services->expires->warning_delay) < $now) { $late = img_warning($langs->trans("Late")); } } @@ -1168,30 +1175,32 @@ if ($object->id > 0) { print '
    '; print $contrat->getNomUrl(1, 12); - // Preview - $filedir = $conf->contrat->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); - $file_list = null; - if (!empty($filedir)) { - $file_list = dol_dir_list($filedir, 'files', 0, '', '(\.meta|_preview.*.*\.png)$', 'date', SORT_DESC); - } - if (is_array($file_list)) { - // Defined relative dir to DOL_DATA_ROOT - $relativedir = ''; - if ($filedir) { - $relativedir = preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $filedir); - $relativedir = preg_replace('/^[\\/]/', '', $relativedir); + if (!empty($contrat->model_pdf)) { + // Preview + $filedir = $conf->contrat->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); + $file_list = null; + if (!empty($filedir)) { + $file_list = dol_dir_list($filedir, 'files', 0, '', '(\.meta|_preview.*.*\.png)$', 'date', SORT_DESC); } - // Get list of files stored into database for same relative directory - if ($relativedir) { - completeFileArrayWithDatabaseInfo($file_list, $relativedir); - - //var_dump($sortfield.' - '.$sortorder); - if (!empty($sortfield) && !empty($sortorder)) { // If $sortfield is for example 'position_name', we will sort on the property 'position_name' (that is concat of position+name) - $file_list = dol_sort_array($file_list, $sortfield, $sortorder); + if (is_array($file_list)) { + // Defined relative dir to DOL_DATA_ROOT + $relativedir = ''; + if ($filedir) { + $relativedir = preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $filedir); + $relativedir = preg_replace('/^[\\/]/', '', $relativedir); } + // Get list of files stored into database for same relative directory + if ($relativedir) { + completeFileArrayWithDatabaseInfo($file_list, $relativedir); + + //var_dump($sortfield.' - '.$sortorder); + if (!empty($sortfield) && !empty($sortorder)) { // If $sortfield is for example 'position_name', we will sort on the property 'position_name' (that is concat of position+name) + $file_list = dol_sort_array($file_list, $sortfield, $sortorder); + } + } + $relativepath = dol_sanitizeFileName($objp->ref).'/'.dol_sanitizeFileName($objp->ref).'.pdf'; + print $formfile->showPreview($file_list, $contrat->element, $relativepath, 0); } - $relativepath = dol_sanitizeFileName($objp->ref).'/'.dol_sanitizeFileName($objp->ref).'.pdf'; - print $formfile->showPreview($file_list, $contrat->element, $relativepath, 0, $param); } // $filename = dol_sanitizeFileName($objp->ref); // $filedir = $conf->contrat->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); @@ -1223,7 +1232,7 @@ if ($object->id > 0) { /* * Latest interventions */ - if (!empty($conf->ficheinter->enabled) && $user->rights->ficheinter->lire) { + if (isModEnabled('ficheinter') && $user->rights->ficheinter->lire) { $sql = "SELECT s.nom, s.rowid, f.rowid as id, f.ref, f.fk_statut, f.duree as duration, f.datei as startdate, f.entity"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."fichinter as f"; $sql .= " WHERE f.fk_soc = s.rowid"; @@ -1409,6 +1418,7 @@ if ($object->id > 0) { $sql .= ', f.total_ht'; $sql .= ', f.total_tva'; $sql .= ', f.total_ttc'; + $sql .= ', f.entity'; $sql .= ', f.datef as df, f.datec as dc, f.paye as paye, f.fk_statut as status'; $sql .= ', s.nom, s.rowid as socid'; $sql .= ', SUM(pf.amount) as am'; @@ -1417,7 +1427,7 @@ if ($object->id > 0) { $sql .= " WHERE f.fk_soc = s.rowid AND s.rowid = ".((int) $object->id); $sql .= " AND f.entity IN (".getEntity('invoice').")"; $sql .= ' GROUP BY f.rowid, f.ref, f.type, f.total_ht, f.total_tva, f.total_ttc,'; - $sql .= ' f.datef, f.datec, f.paye, f.fk_statut,'; + $sql .= ' f.entity, f.datef, f.datec, f.paye, f.fk_statut,'; $sql .= ' s.nom, s.rowid'; $sql .= " ORDER BY f.datef DESC, f.datec DESC"; @@ -1475,7 +1485,7 @@ if ($object->id > 0) { } } $relativepath = dol_sanitizeFileName($objp->ref).'/'.dol_sanitizeFileName($objp->ref).'.pdf'; - print $formfile->showPreview($file_list, $facturestatic->element, $relativepath, 0, $param); + print $formfile->showPreview($file_list, $facturestatic->element, $relativepath, 0); } // $filename = dol_sanitizeFileName($objp->ref); // $filedir = $conf->facture->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); @@ -1540,12 +1550,12 @@ if ($object->id > 0) { print ''; } - if (!empty($conf->propal->enabled) && $user->rights->propal->creer && $object->status == 1) { + if (isModEnabled("propal") && $user->rights->propal->creer && $object->status == 1) { $langs->load("propal"); print ''; } - if (!empty($conf->commande->enabled) && $user->rights->commande->creer && $object->status == 1) { + if (isModEnabled('commande') && $user->rights->commande->creer && $object->status == 1) { $langs->load("orders"); print ''; } @@ -1555,14 +1565,14 @@ if ($object->id > 0) { print ''; } - if (!empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer && $object->status == 1) { + if (isModEnabled('ficheinter') && $user->rights->ficheinter->creer && $object->status == 1) { $langs->load("fichinter"); print ''; } // Add invoice if ($user->socid == 0) { - if (!empty($conf->deplacement->enabled) && $object->status == 1) { + if (isModEnabled('deplacement') && $object->status == 1) { $langs->load("trips"); print ''; } @@ -1573,7 +1583,7 @@ if ($object->id > 0) { } else { $langs->loadLangs(array("orders", "bills")); - if (!empty($conf->commande->enabled)) { + if (isModEnabled('commande')) { if ($object->client != 0 && $object->client != 2) { if (!empty($orders2invoice) && $orders2invoice > 0) { print ''; diff --git a/htdocs/comm/contact.php b/htdocs/comm/contact.php index d83fdbcb78c..19be738a50e 100644 --- a/htdocs/comm/contact.php +++ b/htdocs/comm/contact.php @@ -24,6 +24,7 @@ * \brief Liste des contacts */ +// Load Dolibarr environment require '../main.inc.php'; // Load translation files required by the page diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index 5903b7e4bdb..67af97cfe12 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -27,6 +27,7 @@ * \brief Home page of commercial area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; @@ -39,6 +40,9 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; +if (isModEnabled('ficheinter')) { + require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; +} // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager = new HookManager($db); @@ -68,7 +72,12 @@ if ($user->socid > 0) { } else { $id = 0; } -restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); + +//restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); +if (!$user->hasRight('propal', 'read') && !$user->hasRight('supplier_proposal', 'read') && !$user->hasRight('commande', 'read') && !$user->hasRight('fournisseur', 'commande', 'read') + && !$user->hasRight('supplier_order', 'read') && !$user->hasRight('fichinter', 'read')) { + accessforbidden(); +} $maxofloop = (empty($conf->global->MAIN_MAXLIST_OVERLOAD) ? 500 : $conf->global->MAIN_MAXLIST_OVERLOAD); @@ -87,19 +96,23 @@ $maxofloop = (empty($conf->global->MAIN_MAXLIST_OVERLOAD) ? 500 : $conf->global- $form = new Form($db); $formfile = new FormFile($db); $companystatic = new Societe($db); -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { $propalstatic = new Propal($db); } -if (!empty($conf->supplier_proposal->enabled)) { +if (isModEnabled('supplier_proposal')) { $supplierproposalstatic = new SupplierProposal($db); } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $orderstatic = new Commande($db); } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { $supplierorderstatic = new CommandeFournisseur($db); } +if (isModEnabled('ficheinter')) { + $fichinterstatic = new Fichinter($db); +} + llxHeader("", $langs->trans("CommercialArea")); print load_fiche_titre($langs->trans("CommercialArea"), '', 'commercial'); @@ -120,7 +133,8 @@ if ($tmp) { /* * Draft customer proposals */ -if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { + +if (isModEnabled("propal") && $user->hasRight("propal", "lire")) { $sql = "SELECT p.rowid, p.ref, p.ref_client, p.total_ht, p.total_tva, p.total_ttc, p.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -186,7 +200,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { $companystatic->canvas = $obj->canvas; print '
    '.$propalstatic->getNomUrl(1).''.$propalstatic->getNomUrl(1).''.$companystatic->getNomUrl(1, 'customer').''.price((!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc)).'
    '.$supplierproposalstatic->getNomUrl(1).''.$supplierproposalstatic->getNomUrl(1).''.$companystatic->getNomUrl(1, 'supplier').''.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).'
    '.$orderstatic->getNomUrl(1).''.$orderstatic->getNomUrl(1).''.$companystatic->getNomUrl(1, 'customer').''.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).'
    '.$supplierorderstatic->getNomUrl(1).''.$supplierorderstatic->getNomUrl(1).''.$companystatic->getNomUrl(1, 'supplier').''.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).'
    '; - print ''; - print ''; - $langs->load("fichinter"); $num = $db->num_rows($resql); - if ($num) { + $nbofloop = min($num, $maxofloop); + startSimpleTable("DraftFichinter", "fichinter/list.php", "search_status=".Fichinter::STATUS_DRAFT, 2, $num); + + //print ''; + //print ''; + + if ($num > 0) { $i = 0; - while ($i < $num) { + while ($i < $nbofloop) { $obj = $db->fetch_object($resql); + + $fichinterstatic->id=$obj->rowid; + $fichinterstatic->ref=$obj->ref; + $fichinterstatic->statut=$obj->fk_statut; + + $companystatic->id = $obj->socid; + $companystatic->name = $obj->name; + $companystatic->name_alias = $obj->name_alias; + $companystatic->code_client = $obj->code_client; + $companystatic->code_compta = $obj->code_compta; + $companystatic->client = $obj->client; + $companystatic->code_fournisseur = $obj->code_fournisseur; + $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur; + $companystatic->fournisseur = $obj->fournisseur; + $companystatic->logo = $obj->logo; + $companystatic->email = $obj->email; + $companystatic->entity = $obj->entity; + $companystatic->canvas = $obj->canvas; + print ''; - print '"; - print ''; + print '"; + print ''; $i++; } } + + addSummaryTableLine(3, $num, $nbofloop, $total, "NoIntervention"); + finishSimpleTable(true); + print "
    '.$langs->trans("DraftFichinter").'
    '.$langs->trans("DraftFichinter").'
    '; - print "rowid."\">".img_object($langs->trans("ShowFichinter"), "intervention").' '.$obj->ref."'.img_object($langs->trans("ShowCompany"), "company").' '.dol_trunc($obj->name, 24).'
    '; + print $fichinterstatic->getNomUrl(1); + print "'; + print $companystatic->getNomUrl(1, 'customer'); + print '
    "; } } @@ -552,7 +602,7 @@ print '
    '; /* * Last modified customers or prospects */ -if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { +if (isModEnabled("societe") && $user->hasRight('societe', 'lire')) { $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; $sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur"; @@ -614,7 +664,7 @@ if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { $companystatic->canvas = $objp->canvas; print '
    '.$companystatic->getNomUrl(1, 'customer').''.$companystatic->getNomUrl(1, 'customer').''; //print $companystatic->getLibCustProspStatut(); @@ -627,7 +677,7 @@ if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { $s .= ''.dol_substr($langs->trans("Customer"), 0, 1).''; } /* - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $obj->fournisseur) + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $obj->fournisseur) { $s .= ''.dol_substr($langs->trans("Supplier"), 0, 1).''; }*/ @@ -658,7 +708,7 @@ if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { /* * Last suppliers */ -if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $user->rights->societe->lire) { +if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $user->hasRight('societe', 'lire')) { $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; $sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur"; @@ -711,7 +761,7 @@ if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_S $companystatic->canvas = $objp->canvas; print '
    '.$companystatic->getNomUrl(1, 'supplier').''.$companystatic->getNomUrl(1, 'supplier').''; $obj = $companystatic; @@ -723,7 +773,7 @@ if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_S { $s .= ''.dol_substr($langs->trans("Customer"), 0, 1).''; }*/ - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $obj->fournisseur) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $obj->fournisseur) { $s .= ''.dol_substr($langs->trans("Supplier"), 0, 1).''; } print $s; @@ -769,7 +819,7 @@ if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_S /* * Latest contracts */ -if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) { // TODO A REFAIRE DEPUIS NOUVEAU CONTRAT +if (isModEnabled('contrat') && $user->hasRight("contrat", "lire") && 0) { // TODO A REFAIRE DEPUIS NOUVEAU CONTRAT $staticcontrat = new Contrat($db); $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias"; @@ -825,8 +875,8 @@ if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) { // T $staticcontrat->ref = $obj->ref; print '
    '.$staticcontrat->getNomUrl(1).''.$companystatic->getNomUrl(1, 'customer', 44).''.$staticcontrat->getNomUrl(1).''.$companystatic->getNomUrl(1, 'customer', 44).''.$staticcontrat->LibStatut($obj->statut, 3).'
    '; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -966,7 +1016,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { /* * Opened (validated) order */ -if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { +if (isModEnabled('commande') && $user->rights->commande->lire) { $sql = "SELECT c.rowid as commandeid, c.total_ttc, c.total_ht, c.total_tva, c.ref, c.ref_client, c.fk_statut, c.date_valid as dv, c.facture as billed"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -1042,14 +1092,14 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { print ''; - print ''; + print ''; $datem = $db->jdate($obj->dv); print ' - @@ -503,7 +508,11 @@ if (!empty($force_install_noedit)) { > - @@ -588,61 +598,28 @@ if (!empty($force_install_noedit)) { diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index 27a3fc01abd..e68f0d70a96 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -35,24 +35,16 @@ require_once '../filefunc.inc.php'; -// Define DOL_DOCUMENT_ROOT and ADODB_PATH used for install/upgrade process +// Define DOL_DOCUMENT_ROOT used for install/upgrade process if (!defined('DOL_DOCUMENT_ROOT')) { define('DOL_DOCUMENT_ROOT', '..'); } -if (!defined('ADODB_PATH')) { - $foundpath = DOL_DOCUMENT_ROOT.'/includes/adodbtime/'; - if (!is_dir($foundpath)) { - $foundpath = '/usr/share/php/adodb/'; - } - define('ADODB_PATH', $foundpath); -} require_once DOL_DOCUMENT_ROOT.'/core/class/translate.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/conf.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -require_once ADODB_PATH.'adodb-time.inc.php'; $conf = new Conf(); @@ -195,6 +187,10 @@ if (preg_match('/install\.lock/i', $_SERVER["SCRIPT_FILENAME"])) { $langs->setDefaultLang('auto'); } $langs->load("install"); + + header("X-Content-Type-Options: nosniff"); + header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) + print $langs->trans("YouTryInstallDisabledByDirLock"); if (!empty($dolibarr_main_url_root)) { print 'Click on following link, '; @@ -216,6 +212,10 @@ if (@file_exists($lockfile)) { $langs->setDefaultLang('auto'); } $langs->load("install"); + + header("X-Content-Type-Options: nosniff"); + header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) + print $langs->trans("YouTryInstallDisabledByFileLock"); if (!empty($dolibarr_main_url_root)) { print $langs->trans("ClickOnLinkOrRemoveManualy").'
    '; @@ -311,7 +311,7 @@ function conf($dolibarr_main_document_root) $conf->db->port = trim($dolibarr_main_db_port); $conf->db->name = trim($dolibarr_main_db_name); $conf->db->user = trim($dolibarr_main_db_user); - $conf->db->pass = trim($dolibarr_main_db_pass); + $conf->db->pass = (empty($dolibarr_main_db_pass) ? '' : trim($dolibarr_main_db_pass)); // Mysql driver support has been removed in favor of mysqli if ($conf->db->type == 'mysql') { @@ -419,6 +419,7 @@ function pHeader($subtitle, $next, $action = 'set', $param = '', $forcejqueryurl // We force the content charset header("Content-type: text/html; charset=".$conf->file->character_set_client); header("X-Content-Type-Options: nosniff"); + header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) print ''."\n"; print ''."\n"; @@ -521,7 +522,7 @@ function pFooter($nonext = 0, $setuplang = '', $jscheckfunction = '', $withpleas print ''; } - print ''."\n"; + print '
    '."\n"; // If there is some logs in buffer to show if (isset($conf->logbuffer) && count($conf->logbuffer)) { diff --git a/htdocs/install/index.php b/htdocs/install/index.php index a7ce50c819f..6810e3c509f 100644 --- a/htdocs/install/index.php +++ b/htdocs/install/index.php @@ -44,7 +44,7 @@ $langs->load("admin"); * View */ -$formadmin = new FormAdmin(''); // Note: $db does not exist yet but we don't need it, so we put ''. +$formadmin = new FormAdmin(null); // Note: $db does not exist yet but we don't need it, so we put ''. pHeader("", "check"); // Next step = check diff --git a/htdocs/install/install.forced.sample.php b/htdocs/install/install.forced.sample.php index 98f102ddea0..1e986e4a446 100644 --- a/htdocs/install/install.forced.sample.php +++ b/htdocs/install/install.forced.sample.php @@ -15,59 +15,59 @@ * along with this program. If not, see . */ -/** @var bool Hide PHP informations */ +/** @var boolean $force_install_nophpinfo Hide PHP informations */ $force_install_nophpinfo = true; -/** @var int 1 = Lock and hide environment variables, 2 = Lock all set variables */ +/** @var int $force_install_noedit 1 = Lock and hide environment variables, 2 = Lock all set variables */ $force_install_noedit = 2; -/** @var string Information message */ +/** @var string $force_install_message Information message */ $force_install_message = 'Welcome to your Dolibarr install'; -/** @var string Data root absolute path (documents folder) */ +/** @var string $force_install_main_data_root Data root absolute path (documents folder) */ $force_install_main_data_root = null; -/** @var bool Force HTTPS */ +/** @var boolean $force_install_mainforcehttps Force HTTPS */ $force_install_mainforcehttps = true; -/** @var string Database name */ +/** @var string $force_install_database Database name */ $force_install_database = 'dolibarr'; -/** @var string Database driver (mysql|mysqli|pgsql|mssql|sqlite|sqlite3) */ +/** @var string $force_install_type Database driver (mysql|mysqli|pgsql|mssql|sqlite|sqlite3) */ $force_install_type = 'mysqli'; -/** @var string Database server host */ +/** @var string $force_install_dbserver Database server host */ $force_install_dbserver = 'localhost'; -/** @var int Database server port */ +/** @var int $force_install_port Database server port */ $force_install_port = 3306; -/** @var string Database tables prefix */ +/** @var string $force_install_prefix Database tables prefix */ $force_install_prefix = 'llx_'; -/** @var bool Force database creation */ +/** @var bool $force_install_createdatabase Force database creation */ $force_install_createdatabase = true; -/** @var string Database username */ +/** @var string $force_install_databaselogin Database username */ $force_install_databaselogin = 'root'; -/** @var string Database password */ +/** @var string $force_install_databasepass Database password */ $force_install_databasepass = ''; -/** @var bool Force database user creation */ +/** @var bool $force_install_createuser Force database user creation */ $force_install_createuser = false; -/** @var string Database root username */ +/** @var string $force_install_databaserootlogin Database root username */ $force_install_databaserootlogin = 'root'; -/** @var string Database root password */ +/** @var string $force_install_databaserootpass Database root password */ $force_install_databaserootpass = ''; -/** @var string Dolibarr super-administrator username */ +/** @var string $force_install_dolibarrlogin Dolibarr super-administrator username */ $force_install_dolibarrlogin = 'admin'; -/** @var bool Force install locking */ +/** @var bool $force_install_lockinstall Force install locking */ $force_install_lockinstall = true; -/** @var string Enable module(s) (Comma separated class names list) */ +/** @var string $force_install_module Enable module(s) (Comma separated class names list) */ $force_install_module = 'modSociete,modFournisseur,modFacture'; diff --git a/htdocs/install/lib/repair.lib.php b/htdocs/install/lib/repair.lib.php index aea82107d29..c7c45dff053 100644 --- a/htdocs/install/lib/repair.lib.php +++ b/htdocs/install/lib/repair.lib.php @@ -125,7 +125,7 @@ function checkLinkedElements($sourcetype, $targettype) /** * Clean data into ecm_directories table * - * @return void + * @return int <0 if KO, >0 if OK */ function clean_data_ecm_directories() { @@ -145,12 +145,14 @@ function clean_data_ecm_directories() $resqlupdate = $db->query($sqlupdate); if (!$resqlupdate) { dol_print_error($db, 'Failed to update'); + return -1; } } } } else { dol_print_error($db, 'Failed to run request'); + return -1; } - return; + return 1; } diff --git a/htdocs/install/mysql/data/llx_00_c_country.sql b/htdocs/install/mysql/data/llx_00_c_country.sql index 61b3f346b39..6b32c245305 100644 --- a/htdocs/install/mysql/data/llx_00_c_country.sql +++ b/htdocs/install/mysql/data/llx_00_c_country.sql @@ -6,7 +6,7 @@ -- Copyright (C) 2005-2009 Regis Houssin -- Copyright (C) 2007 Patrick Raguin -- Copyright (C) 2014 Alexandre Spangaro --- Copyright (C) 2021 Udo Tamm +-- Copyright (C) 2021-2022 Udo Tamm -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -28,254 +28,254 @@ -- -- delete from llx_c_country; -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (0,'',NULL,'-',1,1); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (1,'FR','FRA','France',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (2,'BE','BEL','Belgium',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (3,'IT','ITA','Italy',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (4,'ES','ESP','Spain',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (5,'DE','DEU','Germany',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (6,'CH','CHE','Switzerland',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (7,'GB','GBR','United Kingdom',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (8,'IE','IRL','Ireland',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (9,'CN','CHN','China',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (10,'TN','TUN','Tunisia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (11,'US','USA','United States',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (12,'MA','MAR','Morocco',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (13,'DZ','DZA','Algeria',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (14,'CA','CAN','Canada',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (15,'TG','TGO','Togo',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (16,'GA','GAB','Gabon',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (17,'NL','NLD','Netherlands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (18,'HU','HUN','Hungary',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (19,'RU','RUS','Russia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (20,'SE','SWE','Sweden',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (21,'CI','CIV','Côte d''Ivoire',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (22,'SN','SEN','Senegal',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (23,'AR','ARG','Argentina',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (24,'CM','CMR','Cameroun',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (25,'PT','PRT','Portugal',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (26,'SA','SAU','Saudi Arabia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (27,'MC','MCO','Monaco',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (28,'AU','AUS','Australia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (29,'SG','SGP','Singapore',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (30,'AF','AFG','Afghanistan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (31,'AX','ALA','Åland Island',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (32,'AL','ALB','Albania',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (33,'AS','ASM','American Samoa',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (34,'AD','AND','Andorra',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (35,'AO','AGO','Angola',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (36,'AI','AIA','Anguilla',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (37,'AQ','ATA','Antarctica',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (38,'AG','ATG','Antigua and Barbuda',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (39,'AM','ARM','Armenia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (41,'AT','AUT','Austria',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (42,'AZ','AZE','Azerbaijan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (43,'BS','BHS','Bahamas',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (44,'BH','BHR','Bahrain',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (45,'BD','BGD','Bangladesh',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (46,'BB','BRB','Barbados',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (47,'BY','BLR','Belarus',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (48,'BZ','BLZ','Belize',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (49,'BJ','BEN','Benin',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (50,'BM','BMU','Bermuda',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (51,'BT','BTN','Bhutan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (52,'BO','BOL','Bolivia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (53,'BA','BIH','Bosnia and Herzegovina',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (54,'BW','BWA','Botswana',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (55,'BV','BVT','Bouvet Island',0,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (56,'BR','BRA','Brazil',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (57,'IO','IOT','British Indian Ocean Territory',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (58,'BN','BRN','Brunei',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (59,'BG','BGR','Bulgaria',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (60,'BF','BFA','Burkina Faso',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (61,'BI','BDI','Burundi',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (62,'KH','KHM','Cambodge',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (63,'CV','CPV','Cap-Vert',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (64,'KY','CYM','Iles Cayman',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (65,'CF','CAF','République centrafricaine',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (66,'TD','TCD','Tchad',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (67,'CL','CHL','Chili',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (68,'CX','CXR','Ile Christmas',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (69,'CC','CCK','Iles des Cocos (Keeling)',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (70,'CO','COL','Colombie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (71,'KM','COM','Comores',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (72,'CG','COG','Congo',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (73,'CD','COD','République démocratique du Congo',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (74,'CK','COK','Iles Cook',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (75,'CR','CRI','Costa Rica',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (76,'HR','HRV','Croatie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (77,'CU','CUB','Cuba',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (78,'CY','CYP','Cyprus',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (79,'CZ','CZE','Czech Republic',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (80,'DK','DNK','Denmark',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (81,'DJ','DJI','Djibouti',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (82,'DM','DMA','Dominica',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (83,'DO','DOM','Dominican Republic',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (84,'EC','ECU','Republic of Ecuador',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (85,'EG','EGY','Egypt',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (86,'SV','SLV','El Salvador',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (87,'GQ','GNQ','Equatorial Guinea',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (88,'ER','ERI','Eritrea',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (89,'EE','EST','Estonia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (90,'ET','ETH','Ethiopia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (91,'FK','FLK','Falkland Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (92,'FO','FRO','Faroe Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (93,'FJ','FJI','Fidji Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (94,'FI','FIN','Finland',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (95,'GF','GUF','French Guiana',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (96,'PF','PYF','French Polynesia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (97,'TF','ATF','Terres australes françaises',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (98,'GM','GMB','Gambie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (99,'GE','GEO','Georgia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (100,'GH','GHA','Ghana',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (101,'GI','GIB','Gibraltar',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (102,'GR','GRC','Greece',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (103,'GL','GRL','Groenland',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (104,'GD','GRD','Grenade',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (106,'GU','GUM','Guam',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (107,'GT','GTM','Guatemala',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (108,'GN','GIN','Guinea',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (109,'GW','GNB','Guinea-Bissao',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (111,'HT','HTI','Haiti',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (112,'HM','HMD','Iles Heard et McDonald',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (113,'VA','VAT','Saint-Siège (Vatican)',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (114,'HN','HND','Honduras',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (115,'HK','HKG','Hong Kong',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (116,'IS','ISL','Islande',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (117,'IN','IND','India',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (118,'ID','IDN','Indonésie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (119,'IR','IRN','Iran',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (120,'IQ','IRQ','Iraq',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (121,'IL','ISR','Israel',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (122,'JM','JAM','Jamaïque',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (123,'JP','JPN','Japon',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (124,'JO','JOR','Jordanie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (125,'KZ','KAZ','Kazakhstan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (126,'KE','KEN','Kenya',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (127,'KI','KIR','Kiribati',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (128,'KP','PRK','North Corea',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (129,'KR','KOR','South Corea',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (130,'KW','KWT','Koweït',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (131,'KG','KGZ','Kirghizistan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (132,'LA','LAO','Laos',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (133,'LV','LVA','Lettonie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (134,'LB','LBN','Liban',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (135,'LS','LSO','Lesotho',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (136,'LR','LBR','Liberia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (137,'LY','LBY','Libye',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (138,'LI','LIE','Liechtenstein',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (139,'LT','LTU','Lituanie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (140,'LU','LUX','Luxembourg',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (141,'MO','MAC','Macao',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (142,'MK','MKD','ex-République yougoslave de Macédoine',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (143,'MG','MDG','Madagascar',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (144,'MW','MWI','Malawi',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (145,'MY','MYS','Malaisie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (146,'MV','MDV','Maldives',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (147,'ML','MLI','Mali',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (148,'MT','MLT','Malte',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (149,'MH','MHL','Iles Marshall',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (151,'MR','MRT','Mauritanie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (152,'MU','MUS','Maurice',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (153,'YT','MYT','Mayotte',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (154,'MX','MEX','Mexique',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (155,'FM','FSM','Micronésie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (156,'MD','MDA','Moldavie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (157,'MN','MNG','Mongolie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (158,'MS','MSR','Monserrat',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (159,'MZ','MOZ','Mozambique',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (160,'MM','MMR','Birmanie (Myanmar)',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (161,'NA','NAM','Namibie',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (162,'NR','NRU','Nauru',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (163,'NP','NPL','Népal',1,0); ---INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (164,'AN','AWP','Antilles néerlandaises',1,0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (0, '', NULL, '-', 1, 1); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (1, 'FR', 'FRA', 'France', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (2, 'BE', 'BEL', 'Belgium', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (3, 'IT', 'ITA', 'Italy', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (4, 'ES', 'ESP', 'Spain', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (5, 'DE', 'DEU', 'Germany', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (6, 'CH', 'CHE', 'Switzerland', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (7, 'GB', 'GBR', 'United Kingdom', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (8, 'IE', 'IRL', 'Ireland', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (9, 'CN', 'CHN', 'China', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (10, 'TN', 'TUN', 'Tunisia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (11, 'US', 'USA', 'United States', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (12, 'MA', 'MAR', 'Morocco', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (13, 'DZ', 'DZA', 'Algeria', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (14, 'CA', 'CAN', 'Canada', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (15, 'TG', 'TGO', 'Togo', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (16, 'GA', 'GAB', 'Gabon', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (17, 'NL', 'NLD', 'Netherlands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (18, 'HU', 'HUN', 'Hungary', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (19, 'RU', 'RUS', 'Russia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (20, 'SE', 'SWE', 'Sweden', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (21, 'CI', 'CIV', 'Côte d''Ivoire', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (22, 'SN', 'SEN', 'Senegal', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (23, 'AR', 'ARG', 'Argentina', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (24, 'CM', 'CMR', 'Cameroun', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (25, 'PT', 'PRT', 'Portugal', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (26, 'SA', 'SAU', 'Saudi Arabia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (27, 'MC', 'MCO', 'Monaco', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (28, 'AU', 'AUS', 'Australia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (29, 'SG', 'SGP', 'Singapore', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (30, 'AF', 'AFG', 'Afghanistan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (31, 'AX', 'ALA', 'Åland Island', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (32, 'AL', 'ALB', 'Albania', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (33, 'AS', 'ASM', 'American Samoa', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (34, 'AD', 'AND', 'Andorra', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (35, 'AO', 'AGO', 'Angola', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (36, 'AI', 'AIA', 'Anguilla', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (37, 'AQ', 'ATA', 'Antarctica', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (38, 'AG', 'ATG', 'Antigua and Barbuda', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (39, 'AM', 'ARM', 'Armenia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (41, 'AT', 'AUT', 'Austria', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (42, 'AZ', 'AZE', 'Azerbaijan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (43, 'BS', 'BHS', 'Bahamas', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (44, 'BH', 'BHR', 'Bahrain', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (45, 'BD', 'BGD', 'Bangladesh', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (46, 'BB', 'BRB', 'Barbados', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (47, 'BY', 'BLR', 'Belarus', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (48, 'BZ', 'BLZ', 'Belize', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (49, 'BJ', 'BEN', 'Benin', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (50, 'BM', 'BMU', 'Bermuda', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (51, 'BT', 'BTN', 'Bhutan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (52, 'BO', 'BOL', 'Bolivia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (53, 'BA', 'BIH', 'Bosnia and Herzegovina', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (54, 'BW', 'BWA', 'Botswana', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (55, 'BV', 'BVT', 'Bouvet Island',0,0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (56, 'BR', 'BRA', 'Brazil', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (57, 'IO', 'IOT', 'British Indian Ocean Territory', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (58, 'BN', 'BRN', 'Brunei', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (59, 'BG', 'BGR', 'Bulgaria', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (60, 'BF', 'BFA', 'Burkina Faso', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (61, 'BI', 'BDI', 'Burundi', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (62, 'KH', 'KHM', 'Cambodge / Cambodia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (63, 'CV', 'CPV', 'Cap-Vert', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (64, 'KY', 'CYM', 'Iles Cayman', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (65, 'CF', 'CAF', 'Central African Republic (CAR/RCA)', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (66, 'TD', 'TCD', 'Tchad', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (67, 'CL', 'CHL', 'Chile', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (68, 'CX', 'CXR', 'Ile Christmas', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (69, 'CC', 'CCK', 'Iles des Cocos (Keeling)', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (70, 'CO', 'COL', 'Colombie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (71, 'KM', 'COM', 'Comores', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (72, 'CG', 'COG', 'Congo', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (73, 'CD', 'COD', 'DR Congo (RDC)', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (74, 'CK', 'COK', 'Iles Cook', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (75, 'CR', 'CRI', 'Costa Rica', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (76, 'HR', 'HRV', 'Croatia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (77, 'CU', 'CUB', 'Cuba', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (78, 'CY', 'CYP', 'Cyprus', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (79, 'CZ', 'CZE', 'Czech Republic', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (80, 'DK', 'DNK', 'Denmark', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (81, 'DJ', 'DJI', 'Djibouti', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (82, 'DM', 'DMA', 'Dominica', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (83, 'DO', 'DOM', 'Dominican Republic', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (84, 'EC', 'ECU', 'Republic of Ecuador', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (85, 'EG', 'EGY', 'Egypt', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (86, 'SV', 'SLV', 'El Salvador', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (87, 'GQ', 'GNQ', 'Equatorial Guinea', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (88, 'ER', 'ERI', 'Eritrea', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (89, 'EE', 'EST', 'Estonia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (90, 'ET', 'ETH', 'Ethiopia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (91, 'FK', 'FLK', 'Falkland Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (92, 'FO', 'FRO', 'Faroe Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (93, 'FJ', 'FJI', 'Fidji Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (94, 'FI', 'FIN', 'Finland', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (95, 'GF', 'GUF', 'French Guiana', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (96, 'PF', 'PYF', 'French Polynesia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (97, 'TF', 'ATF', 'Terres australes françaises', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (98, 'GM', 'GMB', 'Gambie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (99, 'GE', 'GEO', 'Georgia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (100, 'GH', 'GHA', 'Ghana', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (101, 'GI', 'GIB', 'Gibraltar', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (102, 'GR', 'GRC', 'Greece', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (103, 'GL', 'GRL', 'Groenland', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (104, 'GD', 'GRD', 'Grenade', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (106, 'GU', 'GUM', 'Guam', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (107, 'GT', 'GTM', 'Guatemala', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (108, 'GN', 'GIN', 'Guinea', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (109, 'GW', 'GNB', 'Guinea-Bissao', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (111, 'HT', 'HTI', 'Haiti', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (112, 'HM', 'HMD', 'Iles Heard et McDonald', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (113, 'VA', 'VAT', 'Vatican City (Saint-Siège)', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (114, 'HN', 'HND', 'Honduras', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (115, 'HK', 'HKG', 'Hong Kong', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (116, 'IS', 'ISL', 'Islande', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (117, 'IN', 'IND', 'India', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (118, 'ID', 'IDN', 'Indonesia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (119, 'IR', 'IRN', 'Iran', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (120, 'IQ', 'IRQ', 'Iraq', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (121, 'IL', 'ISR', 'Israel', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (122, 'JM', 'JAM', 'Jamaica', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (123, 'JP', 'JPN', 'Japan (Nippon)', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (124, 'JO', 'JOR', 'Jordanie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (125, 'KZ', 'KAZ', 'Kazakhstan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (126, 'KE', 'KEN', 'Kenya', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (127, 'KI', 'KIR', 'Kiribati', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (128, 'KP', 'PRK', 'North Corea', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (129, 'KR', 'KOR', 'South Corea', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (130, 'KW', 'KWT', 'Koweït', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (131, 'KG', 'KGZ', 'Kirghizistan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (132, 'LA', 'LAO', 'Laos', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (133, 'LV', 'LVA', 'Lettonie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (134, 'LB', 'LBN', 'Liban', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (135, 'LS', 'LSO', 'Lesotho', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (136, 'LR', 'LBR', 'Liberia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (137, 'LY', 'LBY', 'Libye', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (138, 'LI', 'LIE', 'Liechtenstein', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (139, 'LT', 'LTU', 'Lituanie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (140, 'LU', 'LUX', 'Luxembourg', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (141, 'MO', 'MAC', 'Macao', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (142, 'MK', 'MKD', 'North Macedonia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (143, 'MG', 'MDG', 'Madagascar', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (144, 'MW', 'MWI', 'Malawi', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (145, 'MY', 'MYS', 'Malaisie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (146, 'MV', 'MDV', 'Maldives', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (147, 'ML', 'MLI', 'Mali', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (148, 'MT', 'MLT', 'Malte', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (149, 'MH', 'MHL', 'Iles Marshall', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (151, 'MR', 'MRT', 'Mauritanie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (152, 'MU', 'MUS', 'Maurice', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (153, 'YT', 'MYT', 'Mayotte', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (154, 'MX', 'MEX', 'Mexique', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (155, 'FM', 'FSM', 'Micronésie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (156, 'MD', 'MDA', 'Moldavie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (157, 'MN', 'MNG', 'Mongolie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (158, 'MS', 'MSR', 'Monserrat', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (159, 'MZ', 'MOZ', 'Mozambique', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (160, 'MM', 'MMR', 'Birmanie (Myanmar)', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (161, 'NA', 'NAM', 'Namibie', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (162, 'NR', 'NRU', 'Nauru', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (163, 'NP', 'NPL', 'Népal', 1, 0); +--INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (164, 'AN', 'AWP', 'Antilles néerlandaises', 1, 0); --The Antilles nederland does not exist anymore as a seperate country since 2010. Aruba, Curaçao and Sint Maarten became seperate countries then: -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (40,'AW','ABW','Aruba',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (300,'CW','CUW','Curaçao',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (301,'SX','SXM','Sint Maarten',1,0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (40, 'AW', 'ABW', 'Aruba', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (300, 'CW', 'CUW', 'Curaçao', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (301, 'SX', 'SXM', 'Sint Maarten', 1, 0); --End of antilles nederland -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (165,'NC','NCL','New Caledonia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (166,'NZ','NZL','New Zealand',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (167,'NI','NIC','Nicaragua',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (168,'NE','NER','Niger',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (169,'NG','NGA','Nigeria',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (170,'NU','NIU','Niue',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (171,'NF','NFK','Norfolk Island',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (172,'MP','MNP','Northern Mariana Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (173,'NO','NOR','Norway',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (174,'OM','OMN','Oman',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (175,'PK','PAK','Pakistan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (176,'PW','PLW','Palau',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (177,'PS','PSE','Palestinian territories',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (178,'PA','PAN','Panama',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (179,'PG','PNG','Papua New Guinea',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (180,'PY','PRY','Paraguay',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (181,'PE','PER','Peru',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (182,'PH','PHL','Philippines',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (183,'PN','PCN','Pitcairn Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (184,'PL','POL','Pologne',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (185,'PR','PRI','Puerto Rico',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (186,'QA','QAT','Qatar',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (188,'RO','ROU','Romania',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (189,'RW','RWA','Rwanda',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (190,'SH','SHN','Saint Helena',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (191,'KN','KNA','Saint Kitts and Nevis',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (192,'LC','LCA','Saint Lucia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (193,'PM','SPM','Saint Pierre and Miquelon',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (194,'VC','VCT','Saint Vincent and the Grenadines',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (195,'WS','WSM','Samoa',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (196,'SM','SMR','San Marino ',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (197,'ST','STP','Saint Thomas and Prince',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (198,'RS','SRB','Serbia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (199,'SC','SYC','Seychelles',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (200,'SL','SLE','Sierra Leone',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (201,'SK','SVK','Slovakia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (202,'SI','SVN','Slovenia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (203,'SB','SLB','Solomon Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (204,'SO','SOM','Somalia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (205,'ZA','ZAF','South Africa',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (206,'GS','SGS','South Georgia and the South Sandwich Islands ',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (207,'LK','LKA','Sri Lanka',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (208,'SD','SDN','Sudan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (209,'SR','SUR','Suriname',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (210,'SJ','SJM','Svalbard and Jan Mayen',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (211,'SZ','SWZ','Swaziland / Eswatini',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (212,'SY','SYR','Syria',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (213,'TW','TWN','Taiwan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (214,'TJ','TJK','Tajikistan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (215,'TZ','TZA','Tanzania',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (216,'TH','THA','Thailand',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (217,'TL','TLS','Timor-Leste',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (218,'TK','TKL','Tokelau',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (219,'TO','TON','Tonga',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (220,'TT','TTO','Trinidad and Tobago',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (221,'TR','TUR','Turkey',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (222,'TM','TKM','Turkmenistan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (223,'TC','TCA','Turks and Caicos Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (224,'TV','TUV','Tuvalu',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (225,'UG','UGA','Uganda',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (226,'UA','UKR','Ukraine',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (227,'AE','ARE','United Arab Emirates',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (228,'UM','UMI','United States Minor Outlying Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (229,'UY','URY','Uruguay',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (230,'UZ','UZB','Uzbekistan',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (231,'VU','VUT','Vanuatu',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (232,'VE','VEN','Venezuela',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (233,'VN','VNM','Vietnam',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (234,'VG','VGB','British Virgin Islands',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (235,'VI','VIR','Virgin Islands of the United States',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (236,'WF','WLF','Wallis and Futuna',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (237,'EH','ESH','Western Sahara',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (238,'YE','YEM','Yemen',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (239,'ZM','ZMB','Zambia',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (240,'ZW','ZWE','Zimbabwe',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (241,'GG','GGY','Guernsey',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (242,'IM','IMN','Isle of Man',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (243,'JE','JEY','Jersey',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (244,'ME','MNE','Montenegro',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (245,'BL','BLM','Saint-Barthélemy',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (246,'MF','MAF','Saint-Martin',1,0); -INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (247,'XK','XKX','Kosovo',1,0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (165, 'NC', 'NCL', 'New Caledonia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (166, 'NZ', 'NZL', 'New Zealand', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (167, 'NI', 'NIC', 'Nicaragua', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (168, 'NE', 'NER', 'Niger', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (169, 'NG', 'NGA', 'Nigeria', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (170, 'NU', 'NIU', 'Niue', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (171, 'NF', 'NFK', 'Norfolk Island', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (172, 'MP', 'MNP', 'Northern Mariana Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (173, 'NO', 'NOR', 'Norway', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (174, 'OM', 'OMN', 'Oman', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (175, 'PK', 'PAK', 'Pakistan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (176, 'PW', 'PLW', 'Palau', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (177, 'PS', 'PSE', 'Palestinian territories', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (178, 'PA', 'PAN', 'Panama', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (179, 'PG', 'PNG', 'Papua New Guinea', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (180, 'PY', 'PRY', 'Paraguay', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (181, 'PE', 'PER', 'Peru', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (182, 'PH', 'PHL', 'Philippines', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (183, 'PN', 'PCN', 'Pitcairn Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (184, 'PL', 'POL', 'Pologne', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (185, 'PR', 'PRI', 'Puerto Rico', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (186, 'QA', 'QAT', 'Qatar', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (188, 'RO', 'ROU', 'Romania', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (189, 'RW', 'RWA', 'Rwanda', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (190, 'SH', 'SHN', 'Saint Helena', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (191, 'KN', 'KNA', 'Saint Kitts and Nevis', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (192, 'LC', 'LCA', 'Saint Lucia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (193, 'PM', 'SPM', 'Saint Pierre and Miquelon', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (194, 'VC', 'VCT', 'Saint Vincent and the Grenadines', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (195, 'WS', 'WSM', 'Samoa', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (196, 'SM', 'SMR', 'San Marino ', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (197, 'ST', 'STP', 'Saint Thomas and Prince', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (198, 'RS', 'SRB', 'Serbia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (199, 'SC', 'SYC', 'Seychelles', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (200, 'SL', 'SLE', 'Sierra Leone', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (201, 'SK', 'SVK', 'Slovakia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (202, 'SI', 'SVN', 'Slovenia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (203, 'SB', 'SLB', 'Solomon Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (204, 'SO', 'SOM', 'Somalia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (205, 'ZA', 'ZAF', 'South Africa', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (206, 'GS', 'SGS', 'South Georgia and the South Sandwich Islands ', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (207, 'LK', 'LKA', 'Sri Lanka', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (208, 'SD', 'SDN', 'Sudan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (209, 'SR', 'SUR', 'Suriname', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (210, 'SJ', 'SJM', 'Svalbard and Jan Mayen', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (211, 'SZ', 'SWZ', 'Swaziland / Eswatini', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (212, 'SY', 'SYR', 'Syria', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (213, 'TW', 'TWN', 'Taiwan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (214, 'TJ', 'TJK', 'Tajikistan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (215, 'TZ', 'TZA', 'Tanzania', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (216, 'TH', 'THA', 'Thailand', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (217, 'TL', 'TLS', 'Timor-Leste', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (218, 'TK', 'TKL', 'Tokelau', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (219, 'TO', 'TON', 'Tonga', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (220, 'TT', 'TTO', 'Trinidad and Tobago', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (221, 'TR', 'TUR', 'Turkey', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (222, 'TM', 'TKM', 'Turkmenistan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (223, 'TC', 'TCA', 'Turks and Caicos Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (224, 'TV', 'TUV', 'Tuvalu', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (225, 'UG', 'UGA', 'Uganda', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (226, 'UA', 'UKR', 'Ukraine', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (227, 'AE', 'ARE', 'United Arab Emirates', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (228, 'UM', 'UMI', 'United States Minor Outlying Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (229, 'UY', 'URY', 'Uruguay', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (230, 'UZ', 'UZB', 'Uzbekistan', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (231, 'VU', 'VUT', 'Vanuatu', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (232, 'VE', 'VEN', 'Venezuela', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (233, 'VN', 'VNM', 'Vietnam', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (234, 'VG', 'VGB', 'British Virgin Islands', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (235, 'VI', 'VIR', 'Virgin Islands of the United States', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (236, 'WF', 'WLF', 'Wallis and Futuna', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (237, 'EH', 'ESH', 'Western Sahara', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (238, 'YE', 'YEM', 'Yemen', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (239, 'ZM', 'ZMB', 'Zambia', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (240, 'ZW', 'ZWE', 'Zimbabwe', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (241, 'GG', 'GGY', 'Guernsey', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (242, 'IM', 'IMN', 'Isle of Man', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (243, 'JE', 'JEY', 'Jersey', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (244, 'ME', 'MNE', 'Montenegro', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (245, 'BL', 'BLM', 'Saint-Barthélemy', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (246, 'MF', 'MAF', 'Saint-Martin', 1, 0); +INSERT INTO llx_c_country (rowid, code, code_iso, label, active, favorite) VALUES (247, 'XK', 'XKX', 'Kosovo', 1, 0); -- Set field eec diff --git a/htdocs/install/mysql/data/llx_10_c_regions.sql b/htdocs/install/mysql/data/llx_10_c_regions.sql index 752bc7de395..52a1a3bbbb6 100644 --- a/htdocs/install/mysql/data/llx_10_c_regions.sql +++ b/htdocs/install/mysql/data/llx_10_c_regions.sql @@ -4,12 +4,12 @@ -- Copyright (C) 2004 Benoit Mortier -- Copyright (C) 2004 Guillaume Delecourt -- Copyright (C) 2005-2009 Regis Houssin --- Copyright (C) 2007 Patrick Raguin +-- Copyright (C) 2007 Patrick Raguin -- Copyright (C) 2010-2016 Juanjo Menent -- Copyright (C) 2012 Sebastian Neuwert --- Copyright (C) 2012 Ricardo Schluter --- Copyright (C) 2015 Ferran Marcet --- Copyright (C) 2019~ Lao Tian <281388879@qq.com> +-- Copyright (C) 2012 Ricardo Schluter +-- Copyright (C) 2015 Ferran Marcet +-- Copyright (C) 2019~ Lao Tian <281388879@qq.com> -- Copyright (C) 2020-2021 Udo Tamm -- Copyright (C) 2022 Miro Sertić -- @@ -52,11 +52,12 @@ -- Belgium -- Bolivia -- Brazil -> for Departmements +-- Burundi -- Canada -> for Departmements -- Chile -- China -- Colombie -> for Departmements --- Croatia -> for Departmements +-- Croatia -- Denmark -- France -- Germany -> for Departmements @@ -66,6 +67,7 @@ -- India -> for Departmements -- Indonesia -> for Departmements -- Italy +-- Japan -> only for Departmements -- Luxembourg -- Mauritius -- Mexique -> for Departmements @@ -332,6 +334,10 @@ insert into llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 3 insert into llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 3, 320, NULL, 1, 'Veneto'); +-- Japan Region (id country=123) +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 123, 12301, '', 0,'日本'); + + -- Luxembourg Regions (districts) (id country=140) INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 140, 14001, '', 0, 'Diekirch'); INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 140, 14002, '', 0, 'Grevenmacher'); diff --git a/htdocs/install/mysql/data/llx_20_c_departements.sql b/htdocs/install/mysql/data/llx_20_c_departements.sql index 642bd69960b..fc70051a1f8 100644 --- a/htdocs/install/mysql/data/llx_20_c_departements.sql +++ b/htdocs/install/mysql/data/llx_20_c_departements.sql @@ -40,7 +40,9 @@ -- NOTES/CONTENT --------------------------------------------------------------- --- Departements/Cantons/Provinces/States +-- +-- Table of Content (TOC) +-- Departements/Cantons/Provinces/States: -- -- Algeria -- Andorra @@ -57,6 +59,7 @@ -- Croatia -- France -- Germany +-- Greece -- Honduras -- Hungary -- Italy @@ -81,7 +84,8 @@ -- TEMPLATE ------------------------------------------------------------------------------------------------------------- INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ( 0, '0', '0',0,'-','-'); --- active is always set as on = 1 +-- +-- field 'active' is not requiered - all lines are always set as active = on (1) by default -- Algeria Provinces (id country=13) @@ -423,102 +427,102 @@ insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values ( 4, '974','97411',3,'REUNION','Réunion'); insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values ( 6, '976','97601',3,'MAYOTTE','Mayotte'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'01','01053',5,'AIN','Ain'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (32,'02','02408',5,'AISNE','Aisne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'03','03190',5,'ALLIER','Allier'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (93,'04','04070',4,'ALPES-DE-HAUTE-PROVENCE','Alpes-de-Haute-Provence'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (93,'05','05061',4,'HAUTES-ALPES','Hautes-Alpes'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (93,'06','06088',4,'ALPES-MARITIMES','Alpes-Maritimes'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'07','07186',5,'ARDECHE','Ardèche'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'08','08105',4,'ARDENNES','Ardennes'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'09','09122',5,'ARIEGE','Ariège'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'10','10387',5,'AUBE','Aube'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'11','11069',5,'AUDE','Aude'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'12','12202',5,'AVEYRON','Aveyron'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (93,'13','13055',4,'BOUCHES-DU-RHONE','Bouches-du-Rhône'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (28,'14','14118',2,'CALVADOS','Calvados'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'15','15014',2,'CANTAL','Cantal'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'16','16015',3,'CHARENTE','Charente'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'17','17300',3,'CHARENTE-MARITIME','Charente-Maritime'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (24,'18','18033',2,'CHER','Cher'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'19','19272',3,'CORREZE','Corrèze'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (94,'2A','2A004',3,'CORSE-DU-SUD','Corse-du-Sud'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (94,'2B','2B033',3,'HAUTE-CORSE','Haute-Corse'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'21','21231',3,'COTE-D OR','Côte-d Or'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (53,'22','22278',4,'COTES-D ARMOR','Côtes-d Armor'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'23','23096',3,'CREUSE','Creuse'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'24','24322',3,'DORDOGNE','Dordogne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'25','25056',2,'DOUBS','Doubs'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'26','26362',3,'DROME','Drôme'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (28,'27','27229',5,'EURE','Eure'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (24,'28','28085',1,'EURE-ET-LOIR','Eure-et-Loir'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (53,'29','29232',2,'FINISTERE','Finistère'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'30','30189',2,'GARD','Gard'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'31','31555',3,'HAUTE-GARONNE','Haute-Garonne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'32','32013',2,'GERS','Gers'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'33','33063',3,'GIRONDE','Gironde'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'34','34172',5,'HERAULT','Hérault'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (53,'35','35238',1,'ILLE-ET-VILAINE','Ille-et-Vilaine'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (24,'36','36044',5,'INDRE','Indre'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (24,'37','37261',1,'INDRE-ET-LOIRE','Indre-et-Loire'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'38','38185',5,'ISERE','Isère'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'39','39300',2,'JURA','Jura'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'40','40192',4,'LANDES','Landes'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (24,'41','41018',0,'LOIR-ET-CHER','Loir-et-Cher'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'42','42218',3,'LOIRE','Loire'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'43','43157',3,'HAUTE-LOIRE','Haute-Loire'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (52,'44','44109',3,'LOIRE-ATLANTIQUE','Loire-Atlantique'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (24,'45','45234',2,'LOIRET','Loiret'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'46','46042',2,'LOT','Lot'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'47','47001',0,'LOT-ET-GARONNE','Lot-et-Garonne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'48','48095',3,'LOZERE','Lozère'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (52,'49','49007',0,'MAINE-ET-LOIRE','Maine-et-Loire'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (28,'50','50502',3,'MANCHE','Manche'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'51','51108',3,'MARNE','Marne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'52','52121',3,'HAUTE-MARNE','Haute-Marne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (52,'53','53130',3,'MAYENNE','Mayenne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'54','54395',0,'MEURTHE-ET-MOSELLE','Meurthe-et-Moselle'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'55','55029',3,'MEUSE','Meuse'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (53,'56','56260',2,'MORBIHAN','Morbihan'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'57','57463',3,'MOSELLE','Moselle'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'58','58194',3,'NIEVRE','Nièvre'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (32,'59','59350',2,'NORD','Nord'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (32,'60','60057',5,'OISE','Oise'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (28,'61','61001',5,'ORNE','Orne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (32,'62','62041',2,'PAS-DE-CALAIS','Pas-de-Calais'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'63','63113',2,'PUY-DE-DOME','Puy-de-Dôme'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'64','64445',4,'PYRENEES-ATLANTIQUES','Pyrénées-Atlantiques'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'65','65440',4,'HAUTES-PYRENEES','Hautes-Pyrénées'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'66','66136',4,'PYRENEES-ORIENTALES','Pyrénées-Orientales'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'67','67482',2,'BAS-RHIN','Bas-Rhin'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'68','68066',2,'HAUT-RHIN','Haut-Rhin'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'69','69123',2,'RHONE','Rhône'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'70','70550',3,'HAUTE-SAONE','Haute-Saône'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'71','71270',0,'SAONE-ET-LOIRE','Saône-et-Loire'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (52,'72','72181',3,'SARTHE','Sarthe'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'73','73065',3,'SAVOIE','Savoie'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (84,'74','74010',3,'HAUTE-SAVOIE','Haute-Savoie'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'75','75056',0,'PARIS','Paris'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (28,'76','76540',3,'SEINE-MARITIME','Seine-Maritime'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'77','77288',0,'SEINE-ET-MARNE','Seine-et-Marne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'78','78646',4,'YVELINES','Yvelines'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'79','79191',4,'DEUX-SEVRES','Deux-Sèvres'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (32,'80','80021',3,'SOMME','Somme'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'81','81004',2,'TARN','Tarn'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (76,'82','82121',0,'TARN-ET-GARONNE','Tarn-et-Garonne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (93,'83','83137',2,'VAR','Var'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (93,'84','84007',0,'VAUCLUSE','Vaucluse'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (52,'85','85191',3,'VENDEE','Vendée'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'86','86194',3,'VIENNE','Vienne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (75,'87','87085',3,'HAUTE-VIENNE','Haute-Vienne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (44,'88','88160',4,'VOSGES','Vosges'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'89','89024',5,'YONNE','Yonne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (27,'90','90010',0,'TERRITOIRE DE BELFORT','Territoire de Belfort'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'91','91228',5,'ESSONNE','Essonne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'92','92050',4,'HAUTS-DE-SEINE','Hauts-de-Seine'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'93','93008',3,'SEINE-SAINT-DENIS','Seine-Saint-Denis'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'94','94028',2,'VAL-DE-MARNE','Val-de-Marne'); -insert into llx_c_departements (fk_region, code_departement, cheflieu,tncc,ncc,nom) values (11,'95','95500',2,'VAL-D OISE','Val-d Oise'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '01', '01053',5, 'AIN', 'Ain'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (32, '02', '02408',5, 'AISNE', 'Aisne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '03', '03190',5, 'ALLIER', 'Allier'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (93, '04', '04070',4, 'ALPES-DE-HAUTE-PROVENCE', 'Alpes-de-Haute-Provence'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (93, '05', '05061',4, 'HAUTES-ALPES', 'Hautes-Alpes'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (93, '06', '06088',4, 'ALPES-MARITIMES', 'Alpes-Maritimes'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '07', '07186',5, 'ARDECHE', 'Ardèche'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '08', '08105',4, 'ARDENNES', 'Ardennes'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '09', '09122',5, 'ARIEGE', 'Ariège'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '10', '10387',5, 'AUBE', 'Aube'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '11', '11069',5, 'AUDE', 'Aude'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '12', '12202',5, 'AVEYRON', 'Aveyron'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (93, '13', '13055',4, 'BOUCHES-DU-RHONE', 'Bouches-du-Rhône'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (28, '14', '14118',2, 'CALVADOS', 'Calvados'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '15', '15014',2, 'CANTAL', 'Cantal'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '16', '16015',3, 'CHARENTE', 'Charente'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '17', '17300',3, 'CHARENTE-MARITIME', 'Charente-Maritime'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (24, '18', '18033',2, 'CHER', 'Cher'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '19', '19272',3, 'CORREZE', 'Corrèze'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (94, '2A', '2A004',3, 'CORSE-DU-SUD', 'Corse-du-Sud'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (94, '2B', '2B033',3, 'HAUTE-CORSE', 'Haute-Corse'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '21', '21231',3, 'COTE-D OR', 'Côte-d Or'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (53, '22', '22278',4, 'COTES-D ARMOR', 'Côtes-d Armor'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '23', '23096',3, 'CREUSE', 'Creuse'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '24', '24322',3, 'DORDOGNE', 'Dordogne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '25', '25056',2, 'DOUBS', 'Doubs'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '26', '26362',3, 'DROME', 'Drôme'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (28, '27', '27229',5, 'EURE', 'Eure'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (24, '28', '28085',1, 'EURE-ET-LOIR', 'Eure-et-Loir'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (53, '29', '29232',2, 'FINISTERE', 'Finistère'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '30', '30189',2, 'GARD', 'Gard'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '31', '31555',3, 'HAUTE-GARONNE', 'Haute-Garonne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '32', '32013',2, 'GERS', 'Gers'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '33', '33063',3, 'GIRONDE', 'Gironde'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '34', '34172',5, 'HERAULT', 'Hérault'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (53, '35', '35238',1, 'ILLE-ET-VILAINE', 'Ille-et-Vilaine'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (24, '36', '36044',5, 'INDRE', 'Indre'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (24, '37', '37261',1, 'INDRE-ET-LOIRE', 'Indre-et-Loire'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '38', '38185',5, 'ISERE', 'Isère'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '39', '39300',2, 'JURA', 'Jura'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '40', '40192',4, 'LANDES', 'Landes'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (24, '41', '41018',0, 'LOIR-ET-CHER', 'Loir-et-Cher'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '42', '42218',3, 'LOIRE', 'Loire'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '43', '43157',3, 'HAUTE-LOIRE', 'Haute-Loire'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (52, '44', '44109',3, 'LOIRE-ATLANTIQUE', 'Loire-Atlantique'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (24, '45', '45234',2, 'LOIRET', 'Loiret'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '46', '46042',2, 'LOT', 'Lot'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '47', '47001',0, 'LOT-ET-GARONNE', 'Lot-et-Garonne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '48', '48095',3, 'LOZERE', 'Lozère'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (52, '49', '49007',0, 'MAINE-ET-LOIRE', 'Maine-et-Loire'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (28, '50', '50502',3, 'MANCHE', 'Manche'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '51', '51108',3, 'MARNE', 'Marne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '52', '52121',3, 'HAUTE-MARNE', 'Haute-Marne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (52, '53', '53130',3, 'MAYENNE', 'Mayenne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '54', '54395',0, 'MEURTHE-ET-MOSELLE', 'Meurthe-et-Moselle'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '55', '55029',3, 'MEUSE', 'Meuse'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (53, '56', '56260',2, 'MORBIHAN', 'Morbihan'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '57', '57463',3, 'MOSELLE', 'Moselle'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '58', '58194',3, 'NIEVRE', 'Nièvre'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (32, '59', '59350',2, 'NORD', 'Nord'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (32, '60', '60057',5, 'OISE', 'Oise'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (28, '61', '61001',5, 'ORNE', 'Orne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (32, '62', '62041',2, 'PAS-DE-CALAIS', 'Pas-de-Calais'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '63', '63113',2, 'PUY-DE-DOME', 'Puy-de-Dôme'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '64', '64445',4, 'PYRENEES-ATLANTIQUES', 'Pyrénées-Atlantiques'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '65', '65440',4, 'HAUTES-PYRENEES', 'Hautes-Pyrénées'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '66', '66136',4, 'PYRENEES-ORIENTALES', 'Pyrénées-Orientales'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '67', '67482',2, 'BAS-RHIN', 'Bas-Rhin'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '68', '68066',2, 'HAUT-RHIN', 'Haut-Rhin'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '69', '69123',2, 'RHONE', 'Rhône'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '70', '70550',3, 'HAUTE-SAONE', 'Haute-Saône'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '71', '71270',0, 'SAONE-ET-LOIRE', 'Saône-et-Loire'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (52, '72', '72181',3, 'SARTHE', 'Sarthe'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '73', '73065',3, 'SAVOIE', 'Savoie'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (84, '74', '74010',3, 'HAUTE-SAVOIE', 'Haute-Savoie'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '75', '75056',0, 'PARIS', 'Paris'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (28, '76', '76540',3, 'SEINE-MARITIME', 'Seine-Maritime'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '77', '77288',0, 'SEINE-ET-MARNE', 'Seine-et-Marne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '78', '78646',4, 'YVELINES', 'Yvelines'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '79', '79191',4, 'DEUX-SEVRES', 'Deux-Sèvres'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (32, '80', '80021',3, 'SOMME', 'Somme'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '81', '81004',2, 'TARN', 'Tarn'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (76, '82', '82121',0, 'TARN-ET-GARONNE', 'Tarn-et-Garonne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (93, '83', '83137',2, 'VAR', 'Var'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (93, '84', '84007',0, 'VAUCLUSE', 'Vaucluse'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (52, '85', '85191',3, 'VENDEE', 'Vendée'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '86', '86194',3, 'VIENNE', 'Vienne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (75, '87', '87085',3, 'HAUTE-VIENNE', 'Haute-Vienne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (44, '88', '88160',4, 'VOSGES', 'Vosges'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '89', '89024',5, 'YONNE', 'Yonne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (27, '90', '90010',0, 'TERRITOIRE DE BELFORT', 'Territoire de Belfort'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '91', '91228',5, 'ESSONNE', 'Essonne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '92', '92050',4, 'HAUTS-DE-SEINE', 'Hauts-de-Seine'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '93', '93008',3, 'SEINE-SAINT-DENIS', 'Seine-Saint-Denis'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '94', '94028',2, 'VAL-DE-MARNE', 'Val-de-Marne'); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (11, '95', '95500',2, 'VAL-D OISE', 'Val-d Oise'); -- Germany States / Bundesländer (id country=5) @@ -540,6 +544,76 @@ INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom) VALUES (5 INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom) VALUES (501, 'TH', 'THÜRINGEN', 'Thüringen'); +-- Greece Provinces (id country=102) +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('66', 10201, '', 0, '', 'Αθήνα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('67', 10205, '', 0, '', 'Δράμα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('01', 10205, '', 0, '', 'Έβρος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('02', 10205, '', 0, '', 'Θάσος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('03', 10205, '', 0, '', 'Καβάλα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('04', 10205, '', 0, '', 'Ξάνθη'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('05', 10205, '', 0, '', 'Ροδόπη'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('06', 10203, '', 0, '', 'Ημαθία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('07', 10203, '', 0, '', 'Θεσσαλονίκη'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('08', 10203, '', 0, '', 'Κιλκίς'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('09', 10203, '', 0, '', 'Πέλλα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('10', 10203, '', 0, '', 'Πιερία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('11', 10203, '', 0, '', 'Σέρρες'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('12', 10203, '', 0, '', 'Χαλκιδική'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('13', 10206, '', 0, '', 'Άρτα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('14', 10206, '', 0, '', 'Θεσπρωτία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('15', 10206, '', 0, '', 'Ιωάννινα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('16', 10206, '', 0, '', 'Πρέβεζα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('17', 10213, '', 0, '', 'Γρεβενά'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('18', 10213, '', 0, '', 'Καστοριά'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('19', 10213, '', 0, '', 'Κοζάνη'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('20', 10213, '', 0, '', 'Φλώρινα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('21', 10212, '', 0, '', 'Καρδίτσα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('22', 10212, '', 0, '', 'Λάρισα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('23', 10212, '', 0, '', 'Μαγνησία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('24', 10212, '', 0, '', 'Τρίκαλα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('25', 10212, '', 0, '', 'Σποράδες'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('26', 10212, '', 0, '', 'Βοιωτία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('27', 10202, '', 0, '', 'Εύβοια'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('28', 10202, '', 0, '', 'Ευρυτανία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('29', 10202, '', 0, '', 'Φθιώτιδα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('30', 10202, '', 0, '', 'Φωκίδα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('31', 10209, '', 0, '', 'Αργολίδα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('32', 10209, '', 0, '', 'Αρκαδία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('33', 10209, '', 0, '', 'Κορινθία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('34', 10209, '', 0, '', 'Λακωνία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('35', 10209, '', 0, '', 'Μεσσηνία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('36', 10211, '', 0, '', 'Αιτωλοακαρνανία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('37', 10211, '', 0, '', 'Αχαΐα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('38', 10211, '', 0, '', 'Ηλεία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('39', 10207, '', 0, '', 'Ζάκυνθος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('40', 10207, '', 0, '', 'Κέρκυρα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('41', 10207, '', 0, '', 'Κεφαλληνία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('42', 10207, '', 0, '', 'Ιθάκη'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('43', 10207, '', 0, '', 'Λευκάδα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('44', 10208, '', 0, '', 'Ικαρία'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('45', 10208, '', 0, '', 'Λέσβος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('46', 10208, '', 0, '', 'Λήμνος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('47', 10208, '', 0, '', 'Σάμος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('48', 10208, '', 0, '', 'Χίος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('49', 10210, '', 0, '', 'Άνδρος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('50', 10210, '', 0, '', 'Θήρα'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('51', 10210, '', 0, '', 'Κάλυμνος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('52', 10210, '', 0, '', 'Κάρπαθος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('53', 10210, '', 0, '', 'Κέα-Κύθνος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('54', 10210, '', 0, '', 'Κω'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('55', 10210, '', 0, '', 'Μήλος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('56', 10210, '', 0, '', 'Μύκονος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('57', 10210, '', 0, '', 'Νάξος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('58', 10210, '', 0, '', 'Πάρος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('59', 10210, '', 0, '', 'Ρόδος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('60', 10210, '', 0, '', 'Σύρος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('61', 10210, '', 0, '', 'Τήνος'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('62', 10204, '', 0, '', 'Ηράκλειο'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('63', 10204, '', 0, '', 'Λασίθι'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('64', 10204, '', 0, '', 'Ρέθυμνο'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('65', 10204, '', 0, '', 'Χανιά'); + + -- Honduras Departamentos (id country=114) INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (11401, 'AT', '', 0, 'AT', 'Atlántida'); INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (11401, 'CH', '', 0, 'CH', 'Choluteca'); @@ -1272,118 +1346,118 @@ insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc -- Provinces Bolivia (id country=52) -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('001', 5201, '', 0, '', 'Belisario Boeto', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('002', 5201, '', 0, '', 'Hernando Siles', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('003', 5201, '', 0, '', 'Jaime Zudáñez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('004', 5201, '', 0, '', 'Juana Azurduy de Padilla', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('005', 5201, '', 0, '', 'Luis Calvo', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('006', 5201, '', 0, '', 'Nor Cinti', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('007', 5201, '', 0, '', 'Oropeza', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('008', 5201, '', 0, '', 'Sud Cinti', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('009', 5201, '', 0, '', 'Tomina', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('010', 5201, '', 0, '', 'Yamparáez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('011', 5202, '', 0, '', 'Abel Iturralde', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('012', 5202, '', 0, '', 'Aroma', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('013', 5202, '', 0, '', 'Bautista Saavedra', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('014', 5202, '', 0, '', 'Caranavi', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('015', 5202, '', 0, '', 'Eliodoro Camacho', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('016', 5202, '', 0, '', 'Franz Tamayo', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('017', 5202, '', 0, '', 'Gualberto Villarroel', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('018', 5202, '', 0, '', 'Ingaví', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('019', 5202, '', 0, '', 'Inquisivi', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('020', 5202, '', 0, '', 'José Ramón Loayza', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('021', 5202, '', 0, '', 'Larecaja', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('022', 5202, '', 0, '', 'Los Andes (Bolivia)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('023', 5202, '', 0, '', 'Manco Kapac', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('024', 5202, '', 0, '', 'Muñecas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('025', 5202, '', 0, '', 'Nor Yungas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('026', 5202, '', 0, '', 'Omasuyos', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('027', 5202, '', 0, '', 'Pacajes', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('028', 5202, '', 0, '', 'Pedro Domingo Murillo', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('029', 5202, '', 0, '', 'Sud Yungas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('030', 5202, '', 0, '', 'General José Manuel Pando', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('031', 5203, '', 0, '', 'Arani', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('032', 5203, '', 0, '', 'Arque', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('033', 5203, '', 0, '', 'Ayopaya', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('034', 5203, '', 0, '', 'Bolívar (Bolivia)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('035', 5203, '', 0, '', 'Campero', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('036', 5203, '', 0, '', 'Capinota', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('037', 5203, '', 0, '', 'Cercado (Cochabamba)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('038', 5203, '', 0, '', 'Esteban Arze', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('039', 5203, '', 0, '', 'Germán Jordán', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('040', 5203, '', 0, '', 'José Carrasco', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('041', 5203, '', 0, '', 'Mizque', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('042', 5203, '', 0, '', 'Punata', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('043', 5203, '', 0, '', 'Quillacollo', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('044', 5203, '', 0, '', 'Tapacarí', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('045', 5203, '', 0, '', 'Tiraque', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('046', 5203, '', 0, '', 'Chapare', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('047', 5204, '', 0, '', 'Carangas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('048', 5204, '', 0, '', 'Cercado (Oruro)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('049', 5204, '', 0, '', 'Eduardo Avaroa', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('050', 5204, '', 0, '', 'Ladislao Cabrera', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('051', 5204, '', 0, '', 'Litoral de Atacama', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('052', 5204, '', 0, '', 'Mejillones', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('053', 5204, '', 0, '', 'Nor Carangas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('054', 5204, '', 0, '', 'Pantaleón Dalence', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('055', 5204, '', 0, '', 'Poopó', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('056', 5204, '', 0, '', 'Sabaya', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('057', 5204, '', 0, '', 'Sajama', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('058', 5204, '', 0, '', 'San Pedro de Totora', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('059', 5204, '', 0, '', 'Saucarí', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('060', 5204, '', 0, '', 'Sebastián Pagador', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('061', 5204, '', 0, '', 'Sud Carangas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('062', 5204, '', 0, '', 'Tomás Barrón', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('063', 5205, '', 0, '', 'Alonso de Ibáñez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('064', 5205, '', 0, '', 'Antonio Quijarro', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('065', 5205, '', 0, '', 'Bernardino Bilbao', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('066', 5205, '', 0, '', 'Charcas (Potosí)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('067', 5205, '', 0, '', 'Chayanta', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('068', 5205, '', 0, '', 'Cornelio Saavedra', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('069', 5205, '', 0, '', 'Daniel Campos', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('070', 5205, '', 0, '', 'Enrique Baldivieso', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('071', 5205, '', 0, '', 'José María Linares', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('072', 5205, '', 0, '', 'Modesto Omiste', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('073', 5205, '', 0, '', 'Nor Chichas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('074', 5205, '', 0, '', 'Nor Lípez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('075', 5205, '', 0, '', 'Rafael Bustillo', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('076', 5205, '', 0, '', 'Sud Chichas', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('077', 5205, '', 0, '', 'Sud Lípez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('078', 5205, '', 0, '', 'Tomás Frías', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('079', 5206, '', 0, '', 'Aniceto Arce', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('080', 5206, '', 0, '', 'Burdet O''Connor', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('081', 5206, '', 0, '', 'Cercado (Tarija)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('082', 5206, '', 0, '', 'Eustaquio Méndez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('083', 5206, '', 0, '', 'José María Avilés', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('084', 5206, '', 0, '', 'Gran Chaco', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('085', 5207, '', 0, '', 'Andrés Ibáñez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('086', 5207, '', 0, '', 'Caballero', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('087', 5207, '', 0, '', 'Chiquitos', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('088', 5207, '', 0, '', 'Cordillera (Bolivia)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('089', 5207, '', 0, '', 'Florida', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('090', 5207, '', 0, '', 'Germán Busch', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('091', 5207, '', 0, '', 'Guarayos', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('092', 5207, '', 0, '', 'Ichilo', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('093', 5207, '', 0, '', 'Obispo Santistevan', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('094', 5207, '', 0, '', 'Sara', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('095', 5207, '', 0, '', 'Vallegrande', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('096', 5207, '', 0, '', 'Velasco', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('097', 5207, '', 0, '', 'Warnes', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('098', 5207, '', 0, '', 'Ángel Sandóval', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('099', 5207, '', 0, '', 'Ñuflo de Chaves', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('100', 5208, '', 0, '', 'Cercado (Beni)', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('101', 5208, '', 0, '', 'Iténez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('102', 5208, '', 0, '', 'Mamoré', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('103', 5208, '', 0, '', 'Marbán', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('104', 5208, '', 0, '', 'Moxos', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('105', 5208, '', 0, '', 'Vaca Díez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('106', 5208, '', 0, '', 'Yacuma', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('107', 5208, '', 0, '', 'General José Ballivián Segurola', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('108', 5209, '', 0, '', 'Abuná', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('109', 5209, '', 0, '', 'Madre de Dios', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('110', 5209, '', 0, '', 'Manuripi', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez', 1); -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('112', 5209, '', 0, '', 'General Federico Román', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('001', 5201, '', 0, '', 'Belisario Boeto'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('002', 5201, '', 0, '', 'Hernando Siles'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('003', 5201, '', 0, '', 'Jaime Zudáñez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('004', 5201, '', 0, '', 'Juana Azurduy de Padilla'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('005', 5201, '', 0, '', 'Luis Calvo'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('006', 5201, '', 0, '', 'Nor Cinti'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('007', 5201, '', 0, '', 'Oropeza'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('008', 5201, '', 0, '', 'Sud Cinti'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('009', 5201, '', 0, '', 'Tomina'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('010', 5201, '', 0, '', 'Yamparáez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('011', 5202, '', 0, '', 'Abel Iturralde'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('012', 5202, '', 0, '', 'Aroma'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('013', 5202, '', 0, '', 'Bautista Saavedra'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('014', 5202, '', 0, '', 'Caranavi'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('015', 5202, '', 0, '', 'Eliodoro Camacho'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('016', 5202, '', 0, '', 'Franz Tamayo'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('017', 5202, '', 0, '', 'Gualberto Villarroel'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('018', 5202, '', 0, '', 'Ingaví'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('019', 5202, '', 0, '', 'Inquisivi'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('020', 5202, '', 0, '', 'José Ramón Loayza'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('021', 5202, '', 0, '', 'Larecaja'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('022', 5202, '', 0, '', 'Los Andes (Bolivia)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('023', 5202, '', 0, '', 'Manco Kapac'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('024', 5202, '', 0, '', 'Muñecas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('025', 5202, '', 0, '', 'Nor Yungas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('026', 5202, '', 0, '', 'Omasuyos'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('027', 5202, '', 0, '', 'Pacajes'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('028', 5202, '', 0, '', 'Pedro Domingo Murillo'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('029', 5202, '', 0, '', 'Sud Yungas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('030', 5202, '', 0, '', 'General José Manuel Pando'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('031', 5203, '', 0, '', 'Arani'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('032', 5203, '', 0, '', 'Arque'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('033', 5203, '', 0, '', 'Ayopaya'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('034', 5203, '', 0, '', 'Bolívar (Bolivia)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('035', 5203, '', 0, '', 'Campero'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('036', 5203, '', 0, '', 'Capinota'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('037', 5203, '', 0, '', 'Cercado (Cochabamba)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('038', 5203, '', 0, '', 'Esteban Arze'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('039', 5203, '', 0, '', 'Germán Jordán'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('040', 5203, '', 0, '', 'José Carrasco'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('041', 5203, '', 0, '', 'Mizque'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('042', 5203, '', 0, '', 'Punata'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('043', 5203, '', 0, '', 'Quillacollo'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('044', 5203, '', 0, '', 'Tapacarí'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('045', 5203, '', 0, '', 'Tiraque'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('046', 5203, '', 0, '', 'Chapare'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('047', 5204, '', 0, '', 'Carangas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('048', 5204, '', 0, '', 'Cercado (Oruro)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('049', 5204, '', 0, '', 'Eduardo Avaroa'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('050', 5204, '', 0, '', 'Ladislao Cabrera'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('051', 5204, '', 0, '', 'Litoral de Atacama'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('052', 5204, '', 0, '', 'Mejillones'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('053', 5204, '', 0, '', 'Nor Carangas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('054', 5204, '', 0, '', 'Pantaleón Dalence'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('055', 5204, '', 0, '', 'Poopó'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('056', 5204, '', 0, '', 'Sabaya'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('057', 5204, '', 0, '', 'Sajama'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('058', 5204, '', 0, '', 'San Pedro de Totora'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('059', 5204, '', 0, '', 'Saucarí'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('060', 5204, '', 0, '', 'Sebastián Pagador'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('061', 5204, '', 0, '', 'Sud Carangas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('062', 5204, '', 0, '', 'Tomás Barrón'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('063', 5205, '', 0, '', 'Alonso de Ibáñez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('064', 5205, '', 0, '', 'Antonio Quijarro'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('065', 5205, '', 0, '', 'Bernardino Bilbao'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('066', 5205, '', 0, '', 'Charcas (Potosí)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('067', 5205, '', 0, '', 'Chayanta'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('068', 5205, '', 0, '', 'Cornelio Saavedra'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('069', 5205, '', 0, '', 'Daniel Campos'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('070', 5205, '', 0, '', 'Enrique Baldivieso'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('071', 5205, '', 0, '', 'José María Linares'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('072', 5205, '', 0, '', 'Modesto Omiste'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('073', 5205, '', 0, '', 'Nor Chichas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('074', 5205, '', 0, '', 'Nor Lípez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('075', 5205, '', 0, '', 'Rafael Bustillo'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('076', 5205, '', 0, '', 'Sud Chichas'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('077', 5205, '', 0, '', 'Sud Lípez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('078', 5205, '', 0, '', 'Tomás Frías'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('079', 5206, '', 0, '', 'Aniceto Arce'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('080', 5206, '', 0, '', 'Burdet O''Connor'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('081', 5206, '', 0, '', 'Cercado (Tarija)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('082', 5206, '', 0, '', 'Eustaquio Méndez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('083', 5206, '', 0, '', 'José María Avilés'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('084', 5206, '', 0, '', 'Gran Chaco'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('085', 5207, '', 0, '', 'Andrés Ibáñez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('086', 5207, '', 0, '', 'Caballero'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('087', 5207, '', 0, '', 'Chiquitos'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('088', 5207, '', 0, '', 'Cordillera (Bolivia)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('089', 5207, '', 0, '', 'Florida'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('090', 5207, '', 0, '', 'Germán Busch'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('091', 5207, '', 0, '', 'Guarayos'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('092', 5207, '', 0, '', 'Ichilo'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('093', 5207, '', 0, '', 'Obispo Santistevan'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('094', 5207, '', 0, '', 'Sara'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('095', 5207, '', 0, '', 'Vallegrande'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('096', 5207, '', 0, '', 'Velasco'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('097', 5207, '', 0, '', 'Warnes'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('098', 5207, '', 0, '', 'Ángel Sandóval'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('099', 5207, '', 0, '', 'Ñuflo de Chaves'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('100', 5208, '', 0, '', 'Cercado (Beni)'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('101', 5208, '', 0, '', 'Iténez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('102', 5208, '', 0, '', 'Mamoré'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('103', 5208, '', 0, '', 'Marbán'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('104', 5208, '', 0, '', 'Moxos'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('105', 5208, '', 0, '', 'Vaca Díez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('106', 5208, '', 0, '', 'Yacuma'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('107', 5208, '', 0, '', 'General José Ballivián Segurola'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('108', 5209, '', 0, '', 'Abuná'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('109', 5209, '', 0, '', 'Madre de Dios'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('110', 5209, '', 0, '', 'Manuripi'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez'); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('112', 5209, '', 0, '', 'General Federico Román'); -- Provinces Spain (id country=4) in order of province (for logical pick list) @@ -1441,196 +1515,125 @@ INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('Z', '402', '50', 1, 'ZARAGOZA', 'Zaragoza'); --- Provinces Greece (id country=102) -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('66', 10201, '', 0, '', 'Αθήνα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('67', 10205, '', 0, '', 'Δράμα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('01', 10205, '', 0, '', 'Έβρος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('02', 10205, '', 0, '', 'Θάσος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('03', 10205, '', 0, '', 'Καβάλα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('04', 10205, '', 0, '', 'Ξάνθη', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('05', 10205, '', 0, '', 'Ροδόπη', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('06', 10203, '', 0, '', 'Ημαθία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('07', 10203, '', 0, '', 'Θεσσαλονίκη', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('08', 10203, '', 0, '', 'Κιλκίς', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('09', 10203, '', 0, '', 'Πέλλα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('10', 10203, '', 0, '', 'Πιερία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('11', 10203, '', 0, '', 'Σέρρες', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('12', 10203, '', 0, '', 'Χαλκιδική', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('13', 10206, '', 0, '', 'Άρτα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('14', 10206, '', 0, '', 'Θεσπρωτία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('15', 10206, '', 0, '', 'Ιωάννινα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('16', 10206, '', 0, '', 'Πρέβεζα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('17', 10213, '', 0, '', 'Γρεβενά', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('18', 10213, '', 0, '', 'Καστοριά', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('19', 10213, '', 0, '', 'Κοζάνη', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('20', 10213, '', 0, '', 'Φλώρινα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('21', 10212, '', 0, '', 'Καρδίτσα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('22', 10212, '', 0, '', 'Λάρισα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('23', 10212, '', 0, '', 'Μαγνησία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('24', 10212, '', 0, '', 'Τρίκαλα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('25', 10212, '', 0, '', 'Σποράδες', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('26', 10212, '', 0, '', 'Βοιωτία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('27', 10202, '', 0, '', 'Εύβοια', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('28', 10202, '', 0, '', 'Ευρυτανία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('29', 10202, '', 0, '', 'Φθιώτιδα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('30', 10202, '', 0, '', 'Φωκίδα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('31', 10209, '', 0, '', 'Αργολίδα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('32', 10209, '', 0, '', 'Αρκαδία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('33', 10209, '', 0, '', 'Κορινθία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('34', 10209, '', 0, '', 'Λακωνία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('35', 10209, '', 0, '', 'Μεσσηνία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('36', 10211, '', 0, '', 'Αιτωλοακαρνανία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('37', 10211, '', 0, '', 'Αχαΐα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('38', 10211, '', 0, '', 'Ηλεία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('39', 10207, '', 0, '', 'Ζάκυνθος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('40', 10207, '', 0, '', 'Κέρκυρα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('41', 10207, '', 0, '', 'Κεφαλληνία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('42', 10207, '', 0, '', 'Ιθάκη', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('43', 10207, '', 0, '', 'Λευκάδα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('44', 10208, '', 0, '', 'Ικαρία', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('45', 10208, '', 0, '', 'Λέσβος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('46', 10208, '', 0, '', 'Λήμνος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('47', 10208, '', 0, '', 'Σάμος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('48', 10208, '', 0, '', 'Χίος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('49', 10210, '', 0, '', 'Άνδρος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('50', 10210, '', 0, '', 'Θήρα', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('51', 10210, '', 0, '', 'Κάλυμνος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('52', 10210, '', 0, '', 'Κάρπαθος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('53', 10210, '', 0, '', 'Κέα-Κύθνος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('54', 10210, '', 0, '', 'Κω', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('55', 10210, '', 0, '', 'Μήλος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('56', 10210, '', 0, '', 'Μύκονος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('57', 10210, '', 0, '', 'Νάξος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('58', 10210, '', 0, '', 'Πάρος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('59', 10210, '', 0, '', 'Ρόδος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('60', 10210, '', 0, '', 'Σύρος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('61', 10210, '', 0, '', 'Τήνος', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('62', 10204, '', 0, '', 'Ηράκλειο', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('63', 10204, '', 0, '', 'Λασίθι', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('64', 10204, '', 0, '', 'Ρέθυμνο', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('65', 10204, '', 0, '', 'Χανιά', 1); - - - -- Provinces GB (id country=7) -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('701', 701, NULL, 0,NULL, 'Bedfordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('702', 701, NULL, 0,NULL, 'Berkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('703', 701, NULL, 0,NULL, 'Bristol, City of', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('704', 701, NULL, 0,NULL, 'Buckinghamshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('705', 701, NULL, 0,NULL, 'Cambridgeshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('706', 701, NULL, 0,NULL, 'Cheshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('707', 701, NULL, 0,NULL, 'Cleveland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('708', 701, NULL, 0,NULL, 'Cornwall', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('709', 701, NULL, 0,NULL, 'Cumberland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('710', 701, NULL, 0,NULL, 'Cumbria', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('711', 701, NULL, 0,NULL, 'Derbyshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('712', 701, NULL, 0,NULL, 'Devon', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('713', 701, NULL, 0,NULL, 'Dorset', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('714', 701, NULL, 0,NULL, 'Co. Durham', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('715', 701, NULL, 0,NULL, 'East Riding of Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('716', 701, NULL, 0,NULL, 'East Sussex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('717', 701, NULL, 0,NULL, 'Essex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('718', 701, NULL, 0,NULL, 'Gloucestershire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('719', 701, NULL, 0,NULL, 'Greater Manchester', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('720', 701, NULL, 0,NULL, 'Hampshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('721', 701, NULL, 0,NULL, 'Hertfordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('722', 701, NULL, 0,NULL, 'Hereford and Worcester', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('723', 701, NULL, 0,NULL, 'Herefordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('724', 701, NULL, 0,NULL, 'Huntingdonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('725', 701, NULL, 0,NULL, 'Isle of Man', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('726', 701, NULL, 0,NULL, 'Isle of Wight', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('727', 701, NULL, 0,NULL, 'Jersey', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('728', 701, NULL, 0,NULL, 'Kent', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('729', 701, NULL, 0,NULL, 'Lancashire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('730', 701, NULL, 0,NULL, 'Leicestershire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('731', 701, NULL, 0,NULL, 'Lincolnshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('732', 701, NULL, 0,NULL, 'London - City of London', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('733', 701, NULL, 0,NULL, 'Merseyside', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('734', 701, NULL, 0,NULL, 'Middlesex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('735', 701, NULL, 0,NULL, 'Norfolk', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('736', 701, NULL, 0,NULL, 'North Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('737', 701, NULL, 0,NULL, 'North Riding of Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('738', 701, NULL, 0,NULL, 'Northamptonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('739', 701, NULL, 0,NULL, 'Northumberland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('740', 701, NULL, 0,NULL, 'Nottinghamshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('741', 701, NULL, 0,NULL, 'Oxfordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('742', 701, NULL, 0,NULL, 'Rutland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('743', 701, NULL, 0,NULL, 'Shropshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('744', 701, NULL, 0,NULL, 'Somerset', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('745', 701, NULL, 0,NULL, 'Staffordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('746', 701, NULL, 0,NULL, 'Suffolk', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('747', 701, NULL, 0,NULL, 'Surrey', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('748', 701, NULL, 0,NULL, 'Sussex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('749', 701, NULL, 0,NULL, 'Tyne and Wear', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('750', 701, NULL, 0,NULL, 'Warwickshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('751', 701, NULL, 0,NULL, 'West Midlands', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('752', 701, NULL, 0,NULL, 'West Sussex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('753', 701, NULL, 0,NULL, 'West Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('754', 701, NULL, 0,NULL, 'West Riding of Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('755', 701, NULL, 0,NULL, 'Wiltshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('756', 701, NULL, 0,NULL, 'Worcestershire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('757', 701, NULL, 0,NULL, 'Yorkshire', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('701', 701, NULL, 0,NULL, 'Bedfordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('702', 701, NULL, 0,NULL, 'Berkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('703', 701, NULL, 0,NULL, 'Bristol, City of'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('704', 701, NULL, 0,NULL, 'Buckinghamshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('705', 701, NULL, 0,NULL, 'Cambridgeshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('706', 701, NULL, 0,NULL, 'Cheshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('707', 701, NULL, 0,NULL, 'Cleveland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('708', 701, NULL, 0,NULL, 'Cornwall'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('709', 701, NULL, 0,NULL, 'Cumberland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('710', 701, NULL, 0,NULL, 'Cumbria'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('711', 701, NULL, 0,NULL, 'Derbyshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('712', 701, NULL, 0,NULL, 'Devon'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('713', 701, NULL, 0,NULL, 'Dorset'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('714', 701, NULL, 0,NULL, 'Co. Durham'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('715', 701, NULL, 0,NULL, 'East Riding of Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('716', 701, NULL, 0,NULL, 'East Sussex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('717', 701, NULL, 0,NULL, 'Essex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('718', 701, NULL, 0,NULL, 'Gloucestershire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('719', 701, NULL, 0,NULL, 'Greater Manchester'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('720', 701, NULL, 0,NULL, 'Hampshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('721', 701, NULL, 0,NULL, 'Hertfordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('722', 701, NULL, 0,NULL, 'Hereford and Worcester'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('723', 701, NULL, 0,NULL, 'Herefordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('724', 701, NULL, 0,NULL, 'Huntingdonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('725', 701, NULL, 0,NULL, 'Isle of Man'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('726', 701, NULL, 0,NULL, 'Isle of Wight'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('727', 701, NULL, 0,NULL, 'Jersey'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('728', 701, NULL, 0,NULL, 'Kent'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('729', 701, NULL, 0,NULL, 'Lancashire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('730', 701, NULL, 0,NULL, 'Leicestershire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('731', 701, NULL, 0,NULL, 'Lincolnshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('732', 701, NULL, 0,NULL, 'London - City of London'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('733', 701, NULL, 0,NULL, 'Merseyside'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('734', 701, NULL, 0,NULL, 'Middlesex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('735', 701, NULL, 0,NULL, 'Norfolk'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('736', 701, NULL, 0,NULL, 'North Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('737', 701, NULL, 0,NULL, 'North Riding of Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('738', 701, NULL, 0,NULL, 'Northamptonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('739', 701, NULL, 0,NULL, 'Northumberland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('740', 701, NULL, 0,NULL, 'Nottinghamshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('741', 701, NULL, 0,NULL, 'Oxfordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('742', 701, NULL, 0,NULL, 'Rutland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('743', 701, NULL, 0,NULL, 'Shropshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('744', 701, NULL, 0,NULL, 'Somerset'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('745', 701, NULL, 0,NULL, 'Staffordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('746', 701, NULL, 0,NULL, 'Suffolk'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('747', 701, NULL, 0,NULL, 'Surrey'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('748', 701, NULL, 0,NULL, 'Sussex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('749', 701, NULL, 0,NULL, 'Tyne and Wear'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('750', 701, NULL, 0,NULL, 'Warwickshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('751', 701, NULL, 0,NULL, 'West Midlands'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('752', 701, NULL, 0,NULL, 'West Sussex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('753', 701, NULL, 0,NULL, 'West Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('754', 701, NULL, 0,NULL, 'West Riding of Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('755', 701, NULL, 0,NULL, 'Wiltshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('756', 701, NULL, 0,NULL, 'Worcestershire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('757', 701, NULL, 0,NULL, 'Yorkshire'); -- Wales -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('758', 702, NULL, 0,NULL, 'Anglesey', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('759', 702, NULL, 0,NULL, 'Breconshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('760', 702, NULL, 0,NULL, 'Caernarvonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('761', 702, NULL, 0,NULL, 'Cardiganshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('762', 702, NULL, 0,NULL, 'Carmarthenshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('763', 702, NULL, 0,NULL, 'Ceredigion', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('764', 702, NULL, 0,NULL, 'Denbighshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('765', 702, NULL, 0,NULL, 'Flintshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('766', 702, NULL, 0,NULL, 'Glamorgan', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('767', 702, NULL, 0,NULL, 'Gwent', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('768', 702, NULL, 0,NULL, 'Gwynedd', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('769', 702, NULL, 0,NULL, 'Merionethshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('770', 702, NULL, 0,NULL, 'Monmouthshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('771', 702, NULL, 0,NULL, 'Mid Glamorgan', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('772', 702, NULL, 0,NULL, 'Montgomeryshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('773', 702, NULL, 0,NULL, 'Pembrokeshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('774', 702, NULL, 0,NULL, 'Powys', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('775', 702, NULL, 0,NULL, 'Radnorshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('776', 702, NULL, 0,NULL, 'South Glamorgan', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('758', 702, NULL, 0,NULL, 'Anglesey'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('759', 702, NULL, 0,NULL, 'Breconshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('760', 702, NULL, 0,NULL, 'Caernarvonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('761', 702, NULL, 0,NULL, 'Cardiganshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('762', 702, NULL, 0,NULL, 'Carmarthenshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('763', 702, NULL, 0,NULL, 'Ceredigion'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('764', 702, NULL, 0,NULL, 'Denbighshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('765', 702, NULL, 0,NULL, 'Flintshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('766', 702, NULL, 0,NULL, 'Glamorgan'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('767', 702, NULL, 0,NULL, 'Gwent'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('768', 702, NULL, 0,NULL, 'Gwynedd'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('769', 702, NULL, 0,NULL, 'Merionethshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('770', 702, NULL, 0,NULL, 'Monmouthshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('771', 702, NULL, 0,NULL, 'Mid Glamorgan'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('772', 702, NULL, 0,NULL, 'Montgomeryshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('773', 702, NULL, 0,NULL, 'Pembrokeshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('774', 702, NULL, 0,NULL, 'Powys'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('775', 702, NULL, 0,NULL, 'Radnorshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('776', 702, NULL, 0,NULL, 'South Glamorgan'); -- Scotland -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('777', 703, NULL, 0,NULL, 'Aberdeen, City of', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('778', 703, NULL, 0,NULL, 'Angus', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('779', 703, NULL, 0,NULL, 'Argyll', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('780', 703, NULL, 0,NULL, 'Ayrshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('781', 703, NULL, 0,NULL, 'Banffshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('782', 703, NULL, 0,NULL, 'Berwickshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('783', 703, NULL, 0,NULL, 'Bute', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('784', 703, NULL, 0,NULL, 'Caithness', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('785', 703, NULL, 0,NULL, 'Clackmannanshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('786', 703, NULL, 0,NULL, 'Dumfriesshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('787', 703, NULL, 0,NULL, 'Dumbartonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('788', 703, NULL, 0,NULL, 'Dundee, City of', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('789', 703, NULL, 0,NULL, 'East Lothian', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('790', 703, NULL, 0,NULL, 'Fife', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('791', 703, NULL, 0,NULL, 'Inverness', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('792', 703, NULL, 0,NULL, 'Kincardineshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('793', 703, NULL, 0,NULL, 'Kinross-shire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('794', 703, NULL, 0,NULL, 'Kirkcudbrightshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('795', 703, NULL, 0,NULL, 'Lanarkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('796', 703, NULL, 0,NULL, 'Midlothian', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('797', 703, NULL, 0,NULL, 'Morayshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('798', 703, NULL, 0,NULL, 'Nairnshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('799', 703, NULL, 0,NULL, 'Orkney', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('800', 703, NULL, 0,NULL, 'Peebleshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('801', 703, NULL, 0,NULL, 'Perthshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('802', 703, NULL, 0,NULL, 'Renfrewshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('803', 703, NULL, 0,NULL, 'Ross & Cromarty', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('804', 703, NULL, 0,NULL, 'Roxburghshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('805', 703, NULL, 0,NULL, 'Selkirkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('806', 703, NULL, 0,NULL, 'Shetland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('807', 703, NULL, 0,NULL, 'Stirlingshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('808', 703, NULL, 0,NULL, 'Sutherland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('809', 703, NULL, 0,NULL, 'West Lothian', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('810', 703, NULL, 0,NULL, 'Wigtownshire', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('777', 703, NULL, 0,NULL, 'Aberdeen, City of'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('778', 703, NULL, 0,NULL, 'Angus'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('779', 703, NULL, 0,NULL, 'Argyll'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('780', 703, NULL, 0,NULL, 'Ayrshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('781', 703, NULL, 0,NULL, 'Banffshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('782', 703, NULL, 0,NULL, 'Berwickshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('783', 703, NULL, 0,NULL, 'Bute'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('784', 703, NULL, 0,NULL, 'Caithness'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('785', 703, NULL, 0,NULL, 'Clackmannanshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('786', 703, NULL, 0,NULL, 'Dumfriesshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('787', 703, NULL, 0,NULL, 'Dumbartonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('788', 703, NULL, 0,NULL, 'Dundee, City of'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('789', 703, NULL, 0,NULL, 'East Lothian'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('790', 703, NULL, 0,NULL, 'Fife'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('791', 703, NULL, 0,NULL, 'Inverness'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('792', 703, NULL, 0,NULL, 'Kincardineshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('793', 703, NULL, 0,NULL, 'Kinross-shire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('794', 703, NULL, 0,NULL, 'Kirkcudbrightshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('795', 703, NULL, 0,NULL, 'Lanarkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('796', 703, NULL, 0,NULL, 'Midlothian'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('797', 703, NULL, 0,NULL, 'Morayshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('798', 703, NULL, 0,NULL, 'Nairnshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('799', 703, NULL, 0,NULL, 'Orkney'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('800', 703, NULL, 0,NULL, 'Peebleshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('801', 703, NULL, 0,NULL, 'Perthshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('802', 703, NULL, 0,NULL, 'Renfrewshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('803', 703, NULL, 0,NULL, 'Ross & Cromarty'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('804', 703, NULL, 0,NULL, 'Roxburghshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('805', 703, NULL, 0,NULL, 'Selkirkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('806', 703, NULL, 0,NULL, 'Shetland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('807', 703, NULL, 0,NULL, 'Stirlingshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('808', 703, NULL, 0,NULL, 'Sutherland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('809', 703, NULL, 0,NULL, 'West Lothian'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('810', 703, NULL, 0,NULL, 'Wigtownshire'); -- Northern Ireland -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('811', 704, NULL, 0,NULL, 'Antrim', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('812', 704, NULL, 0,NULL, 'Armagh', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('813', 704, NULL, 0,NULL, 'Co. Down', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('814', 704, NULL, 0,NULL, 'Co. Fermanagh', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('815', 704, NULL, 0,NULL, 'Co. Londonderry', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('811', 704, NULL, 0,NULL, 'Antrim'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('812', 704, NULL, 0,NULL, 'Armagh'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('813', 704, NULL, 0,NULL, 'Co. Down'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('814', 704, NULL, 0,NULL, 'Co. Fermanagh'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('815', 704, NULL, 0,NULL, 'Co. Londonderry'); -- Provinces India (id country=117) @@ -1899,3 +1902,52 @@ INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AE-5', 22701, '', 0, '', 'Ras al-Khaimah'); INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AE-6', 22701, '', 0, '', 'Sharjah'); INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AE-7', 22701, '', 0, '', 'Umm al-Quwain'); + +-- Japan 都道府県 (id country=123) +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '01', '', 0, '北海', '北海道', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '02', '', 0, '青森', '青森県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '03', '', 0, '岩手', '岩手県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '04', '', 0, '宮城', '宮城県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '05', '', 0, '秋田', '秋田県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '06', '', 0, '山形', '山形県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '07', '', 0, '福島', '福島県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '08', '', 0, '茨城', '茨城県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '09', '', 0, '栃木', '栃木県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '10', '', 0, '群馬', '群馬県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '11', '', 0, '埼玉', '埼玉県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '12', '', 0, '千葉', '千葉県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '13', '', 0, '東京', '東京都', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '14', '', 0, '神奈川', '神奈川県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '15', '', 0, '新潟', '新潟県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '16', '', 0, '富山', '富山県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '17', '', 0, '石川', '石川県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '18', '', 0, '福井', '福井県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '19', '', 0, '山梨', '山梨県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '20', '', 0, '長野', '長野県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '21', '', 0, '岐阜', '岐阜県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '22', '', 0, '静岡', '静岡県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '23', '', 0, '愛知', '愛知県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '24', '', 0, '三重', '三重県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '25', '', 0, '滋賀', '滋賀県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '26', '', 0, '京都', '京都府', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '27', '', 0, '大阪', '大阪府', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '28', '', 0, '兵庫', '兵庫県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '29', '', 0, '奈良', '奈良県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '30', '', 0, '和歌山', '和歌山県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '31', '', 0, '鳥取', '鳥取県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '32', '', 0, '島根', '島根県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '33', '', 0, '岡山', '岡山県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '34', '', 0, '広島', '広島県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '35', '', 0, '山口', '山口県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '36', '', 0, '徳島', '徳島県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '37', '', 0, '香川', '香川県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '38', '', 0, '愛媛', '愛媛県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '39', '', 0, '高知', '高知県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '40', '', 0, '福岡', '福岡県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '41', '', 0, '佐賀', '佐賀県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '42', '', 0, '長崎', '長崎県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '43', '', 0, '熊本', '熊本県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '44', '', 0, '大分', '大分県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '45', '', 0, '宮崎', '宮崎県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '46', '', 0, '鹿児島', '鹿児島県', 1); +insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom, active) values (12301, '47', '', 0, '沖縄', '沖縄県', 1); diff --git a/htdocs/install/mysql/data/llx_accounting_abc.sql b/htdocs/install/mysql/data/llx_accounting_abc.sql index 847cbf68790..0d2dd657639 100644 --- a/htdocs/install/mysql/data/llx_accounting_abc.sql +++ b/htdocs/install/mysql/data/llx_accounting_abc.sql @@ -5,7 +5,7 @@ -- Copyright (C) 2004 Guillaume Delecourt -- Copyright (C) 2005-2009 Regis Houssin -- Copyright (C) 2007 Patrick Raguin --- Copyright (C) 2011-2018 Alexandre Spangaro +-- Copyright (C) 2011-2022 Alexandre Spangaro -- Copyright (C) 2015-2017 Juanjo Menent -- Copyright (C) 2018 Abbes bahfir -- Copyright (C) 2020 Udo Tamm @@ -55,7 +55,6 @@ INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('INV', 'InventoryJournal', 8, 1, 1); - -- Accounting Charts / Plans (Templates) for Countries -- Description of chart of account FR PCG99-ABREGE @@ -114,9 +113,8 @@ INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUE INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES ( 84, 'EC-SUPERCIAS', 'Plan de cuentas Ecuador', 1); --- Description of chart of account LU PCN-LUXEMBURG -INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES (140, 'PCN-LUXEMBURG', 'Plan comptable normalisé Luxembourgeois', 1); - +-- Description of chart of account LU PCN2020-LUXEMBURG +INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES (140, 'PCN2020-LUXEMBURG', 'Plan comptable normalisé 2020 Luxembourgeois', 1); -- Description of chart of account RO RO-BASE INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES (188, 'RO-BASE', 'Plan de conturi romanesc', 1); @@ -184,3 +182,6 @@ INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUE -- Description of chart of account Mexico SAT/24-2019 INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES ( 154, 'SAT/24-2019', 'Catalogo y codigo agrupador fiscal del 2019', 1); + +-- Description of chart of account Japan JPN-BASE +INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES ( 123, 'JPN-BASE', '日本 勘定科目表 基本版', 1); diff --git a/htdocs/install/mysql/data/llx_accounting_account_at.sql b/htdocs/install/mysql/data/llx_accounting_account_at.sql index 3e153dc88e7..08cf24ec51a 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_at.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_at.sql @@ -344,3 +344,211 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 319, 'AT-BASE','GROUP6','60000','0','kalk. Löhne u Gehälter', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 320, 'AT-BASE','GROUP6','64160','0','Veränderung Pensionsrückstellung (Angestellte)', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 321, 'AT-BASE','GROUP6','66300','0','Leistungserfassung', 1); + +-- Different Base CoA for Austria + +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1001, 'AT-BASE-2', 'Anlagevermögen', '0010', '0', 'Aufwendungen für das Ingangsetzen und Erweitern eines Betriebes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1002, 'AT-BASE-2', 'Anlagevermögen', '0090', '0', 'Kumulierte Abschreibungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1003, 'AT-BASE-2', 'Anlagevermögen', '0100', '0', 'Konzessionen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1004, 'AT-BASE-2', 'Anlagevermögen', '0110', '0', 'Patentrechte und Lizenzen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1005, 'AT-BASE-2', 'Anlagevermögen', '0120', '0', 'Datenverarbeitungsprogramme', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1006, 'AT-BASE-2', 'Anlagevermögen', '0121', '0', 'Geringwertige Datenverarbeitungsprogramme', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1007, 'AT-BASE-2', 'Anlagevermögen', '0130', '0', 'Marken, Warenzeichen und Musterschutzrechte, sonstige Urheberrechte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1008, 'AT-BASE-2', 'Anlagevermögen', '0140', '0', 'Pacht- und Mietrechte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1009, 'AT-BASE-2', 'Anlagevermögen', '0150', '0', 'Geschäfts(Firmen)wert', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1010, 'AT-BASE-2', 'Anlagevermögen', '0180', '0', 'Geleistete Anzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1011, 'AT-BASE-2', 'Anlagevermögen', '0190', '0', 'Kumulierte Abschreibungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1012, 'AT-BASE-2', 'Sachanlagen', '0200', '0', 'Unbebaute Grundstücke', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1013, 'AT-BASE-2', 'Sachanlagen', '0210', '0', 'Bebaute Grundstücke (Grundwert)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1014, 'AT-BASE-2', 'Sachanlagen', '0220', '0', 'Grundstücksgleiche Rechte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1015, 'AT-BASE-2', 'Sachanlagen', '0300', '0', 'Betriebs- und Geschäftsgebäude auf eigenem Grund', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1016, 'AT-BASE-2', 'Sachanlagen', '0310', '0', 'Wohn- und Sozialgebäude auf eigenem Grund', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1017, 'AT-BASE-2', 'Sachanlagen', '0320', '0', 'Betriebs- und Geschäftsgebäude auf fremdem Grund', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1018, 'AT-BASE-2', 'Sachanlagen', '0330', '0', 'Wohn- und Sozialgebäude auf fremdem Grund', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1019, 'AT-BASE-2', 'Sachanlagen', '0340', '0', 'Grundstückseinrichtungen auf eigenem Grund', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1020, 'AT-BASE-2', 'Sachanlagen', '0350', '0', 'Grundstückseinrichtungen auf fremdem Grund', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1021, 'AT-BASE-2', 'Sachanlagen', '0360', '0', 'Bauliche Investitionen in fremden (gepachteten) Betriebs- und Geschäftsgebäuden', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1022, 'AT-BASE-2', 'Sachanlagen', '0370', '0', 'Bauliche Investitionen in fremden (gepachteten) Wohn- und Sozialgebäuden', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1023, 'AT-BASE-2', 'Sachanlagen', '0390', '0', 'Kumulierte Abschreibungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1024, 'AT-BASE-2', 'Sachanlagen', '0400', '0', 'Fertigungsmaschinen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1025, 'AT-BASE-2', 'Sachanlagen', '0410', '0', 'Antriebsmaschinen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1026, 'AT-BASE-2', 'Sachanlagen', '0420', '0', 'Energieversorgungsanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1027, 'AT-BASE-2', 'Sachanlagen', '0430', '0', 'Transportanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1028, 'AT-BASE-2', 'Sachanlagen', '0500', '0', 'Maschinenwerkzeuge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1029, 'AT-BASE-2', 'Sachanlagen', '0510', '0', 'Allgemeine Werkzeuge und Handwerkzeuge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1030, 'AT-BASE-2', 'Sachanlagen', '0520', '0', 'Vorrichtungen, Formen und Modelle', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1031, 'AT-BASE-2', 'Sachanlagen', '0530', '0', 'Andere Erzeugungshilfsmittel', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1032, 'AT-BASE-2', 'Sachanlagen', '0540', '0', 'Hebezeuge und Montageanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1033, 'AT-BASE-2', 'Sachanlagen', '0550', '0', 'Geringwertige Vermögensgegenstände, soweit im Erzeugungsprozeß verwendet', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1034, 'AT-BASE-2', 'Sachanlagen', '0600', '0', 'Beheizungs- und Beleuchtungsanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1035, 'AT-BASE-2', 'Sachanlagen', '0610', '0', 'Nachrichten- und Kontrollanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1036, 'AT-BASE-2', 'Sachanlagen', '0620', '0', 'Büromaschinen, EDV-Anlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1037, 'AT-BASE-2', 'Sachanlagen', '0630', '0', 'PKW', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1038, 'AT-BASE-2', 'Sachanlagen', '0640', '0', 'LKW', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1039, 'AT-BASE-2', 'Sachanlagen', '0650', '0', 'Andere Beförderungsmittel', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1040, 'AT-BASE-2', 'Sachanlagen', '0660', '0', 'Andere Betriebs- und Geschäftsausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1041, 'AT-BASE-2', 'Sachanlagen', '0670', '0', 'Gebinde', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1042, 'AT-BASE-2', 'Sachanlagen', '0680', '0', 'Geringwertige Büromaschinen, EDV-Anlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1043, 'AT-BASE-2', 'Sachanlagen', '0681', '0', 'Geringwertige Betriebs- und Geschäftsausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1044, 'AT-BASE-2', 'Sachanlagen', '0692', '0', 'Kumulierte Abschreibungen zu Büromaschinen, EDV-Anlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1045, 'AT-BASE-2', 'Sachanlagen', '0693', '0', 'Kumulierte Abschreibungen zu PKW und Kombis', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1046, 'AT-BASE-2', 'Sachanlagen', '0694', '0', 'Kumulierte Abschreibungen zu LKW', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1047, 'AT-BASE-2', 'Sachanlagen', '0696', '0', 'Kumulierte Abschreibungen zur Betriebs- und Geschäftsausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1048, 'AT-BASE-2', 'Vorauszahlungen', '0700', '0', 'Geleistete Anzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1049, 'AT-BASE-2', 'Sachanlagen', '0710', '0', 'Anlagen in Bau', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1050, 'AT-BASE-2', 'Sachanlagen', '0790', '0', 'Kumulierte Abschreibungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1051, 'AT-BASE-2', 'Anlagevermögen', '0800', '0', 'Anteile an verbundenen Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1052, 'AT-BASE-2', 'Anlagevermögen', '0810', '0', 'Beteiligungen an Gemeinschaftsunternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1053, 'AT-BASE-2', 'Anlagevermögen', '0820', '0', 'Beteiligungen an angeschlossenen (assoziierten) Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1054, 'AT-BASE-2', 'Anlagevermögen', '0830', '0', 'Sonstige Beteiligungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1055, 'AT-BASE-2', 'Anlagevermögen', '0840', '0', 'Ausleihungen an verbundene Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1056, 'AT-BASE-2', 'Anlagevermögen', '0850', '0', 'Ausleihungen an Unternehmen, mit denen ein Beteiligungsverhältnis besteht', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1057, 'AT-BASE-2', 'Anlagevermögen', '0860', '0', 'Sonstige Ausleihungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1058, 'AT-BASE-2', 'Anlagevermögen', '0870', '0', 'Anteile an Kapitalgesellschaften ohne Beteiligungscharakter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1059, 'AT-BASE-2', 'Anlagevermögen', '0880', '0', 'Anteile an Personengesellschaften ohne Beteiligungscharakter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1060, 'AT-BASE-2', 'Anlagevermögen', '0900', '0', 'Genossenschaftsanteile ohne Beteiligungscharakter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1061, 'AT-BASE-2', 'Anlagevermögen', '0910', '0', 'Anteile an Investmentfonds', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1062, 'AT-BASE-2', 'Vorauszahlungen', '0980', '0', 'Geleistete Anzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1063, 'AT-BASE-2', 'Anlagevermögen', '0990', '0', 'Kumulierte Abschreibungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1064, 'AT-BASE-2', 'Umlaufvermögen', '1600', '0', 'Handelswaren', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1065, 'AT-BASE-2', 'Vorauszahlungen', '1800', '0', 'Geleistete Anzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1066, 'AT-BASE-2', 'Debitoren', '2000', '0', 'Forderungen von Partnern im Inland ohne eigenes Debitorenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1067, 'AT-BASE-2', 'Umlaufvermögen', '2080', '0', 'Einzelwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Inland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1068, 'AT-BASE-2', 'Umlaufvermögen', '2090', '0', 'Pauschalwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Inland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1069, 'AT-BASE-2', 'Debitoren', '2099', '0', 'Forderungen von Partnern (Point Of Sale)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1070, 'AT-BASE-2', 'Debitoren', '2100', '0', 'Forderungen von Partnern im EU Raum ohne eigenes Debitorenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1071, 'AT-BASE-2', 'Umlaufvermögen', '2130', '0', 'Einzelwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Währungsunion', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1072, 'AT-BASE-2', 'Umlaufvermögen', '2140', '0', 'Pauschalwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Währungsunion', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1073, 'AT-BASE-2', 'Debitoren', '2150', '0', 'Forderungen von Partnern in Drittstaaten ohne eigenes Debitorenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1074, 'AT-BASE-2', 'Umlaufvermögen', '2180', '0', 'Einzelwertberichtigungen zu Forderungen aus Lieferungen und Leistungen sonstiges Ausland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1075, 'AT-BASE-2', 'Umlaufvermögen', '2190', '0', 'Pauschalwertberichtigungen zu Forderungen aus Lieferungen und Leistungen sonstiges Ausland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1076, 'AT-BASE-2', 'Umlaufvermögen', '2230', '0', 'Einzelwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1077, 'AT-BASE-2', 'Umlaufvermögen', '2240', '0', 'Pauschalwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1078, 'AT-BASE-2', 'Umlaufvermögen', '2280', '0', 'Einzelwertberichtigungen zu Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1079, 'AT-BASE-2', 'Umlaufvermögen', '2290', '0', 'Pauschalwertberichtigungen zu Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1080, 'AT-BASE-2', 'Umlaufvermögen', '2470', '0', 'Eingeforderte, aber noch nicht eingezahlte Einlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1081, 'AT-BASE-2', 'Umlaufvermögen', '2480', '0', 'Einzelwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1082, 'AT-BASE-2', 'Umlaufvermögen', '2490', '0', 'Pauschalwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1083, 'AT-BASE-2', 'Umlaufvermögen', '2500', '0', 'Vorsteuern 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1084, 'AT-BASE-2', 'Umlaufvermögen', '2501', '0', 'Vorsteuern 10%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1085, 'AT-BASE-2', 'Umlaufvermögen', '2502', '0', 'Vorsteuern 13%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1086, 'AT-BASE-2', 'Umlaufvermögen', '2505', '0', 'Sonstige Vorsteuern', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1087, 'AT-BASE-2', 'Umlaufvermögen', '2506', '0', 'Vorsteuern RC 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1088, 'AT-BASE-2', 'Umlaufvermögen', '2507', '0', 'Vorsteuern RC 10%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1089, 'AT-BASE-2', 'Umlaufvermögen', '2510', '0', 'Vorsteuern RC EU 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1090, 'AT-BASE-2', 'Umlaufvermögen', '2511', '0', 'Vorsteuern IGE 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1091, 'AT-BASE-2', 'Umlaufvermögen', '2512', '0', 'Vorsteuern IGE 10%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1092, 'AT-BASE-2', 'Umlaufvermögen', '2513', '0', 'Vorsteuern IGE 13%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1093, 'AT-BASE-2', 'Umlaufvermögen', '2515', '0', 'Vorsteuern 20% (aus EUSt.)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1094, 'AT-BASE-2', 'Umlaufvermögen', '2600', '0', 'Eigene Anteile', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1095, 'AT-BASE-2', 'Umlaufvermögen', '2610', '0', 'Anteile an verbundenen Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1096, 'AT-BASE-2', 'Umlaufvermögen', '2620', '0', 'Sonstige Anteile', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1097, 'AT-BASE-2', 'Umlaufvermögen', '2680', '0', 'Besitzwechsel, soweit dem Unternehmen nicht die der Ausstellung zugrundeliegenden Forderungen zustehen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1098, 'AT-BASE-2', 'Umlaufvermögen', '2690', '0', 'Wertberichtigungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1099, 'AT-BASE-2', 'Liquide Mittel', '2701', '0', 'Kasse/Bank', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1100, 'AT-BASE-2', 'Umlaufvermögen', '2730', '0', 'Postwertzeichen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1101, 'AT-BASE-2', 'Umlaufvermögen', '2740', '0', 'Stempelmarken', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1102, 'AT-BASE-2', 'Umlaufvermögen', '2780', '0', 'Schecks in Inlandswährung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1103, 'AT-BASE-2', 'Umlaufvermögen', '2801', '0', 'Bankzwischenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1104, 'AT-BASE-2', 'Umlaufvermögen', '2802', '0', 'Ausstehende Quittungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1105, 'AT-BASE-2', 'Umlaufvermögen', '2803', '0', 'Ausstehende Zahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1106, 'AT-BASE-2', 'Liquide Mittel', '2804', '0', 'Bank', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1107, 'AT-BASE-2', 'Umlaufvermögen', '2880', '0', 'Schwebende Geldbewegungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1108, 'AT-BASE-2', 'Umlaufvermögen', '2881', '0', 'Liquiditätstransfer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1109, 'AT-BASE-2', 'Umlaufvermögen', '2890', '0', 'Wertberichtigungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1110, 'AT-BASE-2', 'Umlaufvermögen', '2900', '0', 'Aktive Rechnungsabgrenzungsposten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1111, 'AT-BASE-2', 'Umlaufvermögen', '2950', '0', 'Disagio', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1112, 'AT-BASE-2', 'Umlaufvermögen', '2960', '0', 'Unterschiedsbetrag zur gebotenen Pensionsrückstellung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1113, 'AT-BASE-2', 'Umlaufvermögen', '2970', '0', 'Unterschiedsbetrag gem. Abschnitt XII Pensionskassengesetz', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1114, 'AT-BASE-2', 'Umlaufvermögen', '2980', '0', 'Steuerabgrenzung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1115, 'AT-BASE-2', 'Langfristige Verbindlichkeiten', '3000', '0', 'Rückstellungen für Abfertigungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1116, 'AT-BASE-2', 'Langfristige Verbindlichkeiten', '3010', '0', 'Rückstellungen für Pensionen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1117, 'AT-BASE-2', 'Umlaufvermögen', '3100', '0', 'Anleihen (einschließlich konvertibler)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1118, 'AT-BASE-2', 'Umlaufvermögen', '3200', '0', 'Erhaltene Anzahlungen auf Bestellungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1119, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3210', '0', 'Umsatzsteuer-Evidenzkonto für erhaltene Anzahlungen auf Bestellungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1120, 'AT-BASE-2', 'Kreditoren', '3300', '0', 'Verbindlichkeiten bei Partnern im Inland ohne eigenes Kreditorenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1121, 'AT-BASE-2', 'Kreditoren', '3360', '0', 'Verbindlichkeiten bei Partnern im EU Raum ohne eigenes Kreditorenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1122, 'AT-BASE-2', 'Kreditoren', '3370', '0', 'Verbindlichkeiten bei Partnern in Drittstaaten ohne eigenes Kreditorenkonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1123, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3480', '0', 'Verbindlichkeiten gegenüber Gesellschaftern', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1124, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3500', '0', 'Umsatzsteuer 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1125, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3501', '0', 'Umsatzsteuer 10%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1126, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3502', '0', 'Umsatzsteuer 13%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1127, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3505', '0', 'Sonstige Umsatzsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1128, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3510', '0', 'Umsatzsteuer RC EU 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1129, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3511', '0', 'Umsatzsteuer IGE 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1130, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3512', '0', 'Umsatzsteuer IGE 10%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1131, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3513', '0', 'Umsatzsteuer IGE 13%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1132, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3515', '0', 'Einfuhrumsatzsteuer 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1133, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3520', '0', 'Ust. Zahllast', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1134, 'AT-BASE-2', 'Kreditoren', '3530', '0', 'Verrechnungskonto Finanzamt', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1135, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3540', '0', 'Verrechnung Lohnsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1136, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3541', '0', 'Verrechnung Dienstgeberbeitrag', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1137, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3542', '0', 'Verrechnung Dienstgeberzuschlag', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1138, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3550', '0', 'Verrechnung Kommunalsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1139, 'AT-BASE-2', 'Kurzfristige Verbindlichkeiten', '3551', '0', 'Verrechnung Wiener Dienstgeberabgabe', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1140, 'AT-BASE-2', 'Kreditoren', '3600', '0', 'Verrechungskonto Sozialversicherung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1141, 'AT-BASE-2', 'Kreditoren', '3610', '0', 'Verrechnungskonto Magistrat/Gemeinde (KoSt, U-Bahn, etc.)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1142, 'AT-BASE-2', 'Kreditoren', '3740', '0', 'WERE Verrechnungskonto', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1143, 'AT-BASE-2', 'Erlöse', '4000', '0', 'Brutto-Umsatzerlöse im Inland (20%)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1144, 'AT-BASE-2', 'Erlöse', '4001', '0', 'Brutto-Umsatzerlöse im Inland (10%)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1145, 'AT-BASE-2', 'Erlöse', '4100', '0', 'Brutto-Umsatzerlöse im EU Raum (RC 20%)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1146, 'AT-BASE-2', 'Erlöse', '4110', '0', 'Brutto-Umsatzerlöse im EU Raum (RC 10%)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1147, 'AT-BASE-2', 'Erlöse', '4200', '0', 'Brutto-Umsatzerlöse in Drittstaaten (0%)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1148, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '4860', '0', 'Kursgewinne aus Fremdwährungstransaktionen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1149, 'AT-BASE-2', 'Aufwand', '5000', '0', 'Wareneinkauf', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1150, 'AT-BASE-2', 'Aufwand', '5050', '0', 'Wareneinkauf EU', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1151, 'AT-BASE-2', 'Aufwand', '5090', '0', 'Wareneinkauf 0%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1152, 'AT-BASE-2', 'Aufwand', '5800', '0', 'Skontoerträge auf Materialaufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1153, 'AT-BASE-2', 'Aufwand', '5810', '0', 'Skontoerträge auf sonstige bezogene Herstellungsleistungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1154, 'AT-BASE-2', 'Aufwand', '5900', '0', 'Aufwandsstellenrechnung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1155, 'AT-BASE-2', 'Aufwand', '6200', '0', 'Gehälter (Angestellte)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1156, 'AT-BASE-2', 'Aufwand', '6205', '0', 'Geschäftsführerbezug', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1157, 'AT-BASE-2', 'Aufwand', '6242', '0', 'Urlaubsabfindung (Angestellte)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1158, 'AT-BASE-2', 'Aufwand', '6260', '0', 'Sonstige Bezüge (Angestellte)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1159, 'AT-BASE-2', 'Aufwand', '6270', '0', 'Sachbezug (Angestellte)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1160, 'AT-BASE-2', 'Aufwand', '6271', '0', 'Sachbezug (Geschäftsführer)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1161, 'AT-BASE-2', 'Aufwand', '6310', '0', 'Grundgehälter (Überstunden)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1162, 'AT-BASE-2', 'Aufwand', '6330', '0', 'Gehälter (Überstundenzuschläge)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1163, 'AT-BASE-2', 'Aufwand', '6340', '0', 'Veränderung noch nicht konsumierter Urlaub', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1164, 'AT-BASE-2', 'Aufwand', '6400', '0', 'Beiträge für betriebliche Mitarbeitervorsorgekasse', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1165, 'AT-BASE-2', 'Aufwand', '6560', '0', 'Gesetzlicher Sozialaufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1166, 'AT-BASE-2', 'Aufwand', '6660', '0', 'Kommunalsteuer (KoSt)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1167, 'AT-BASE-2', 'Aufwand', '6661', '0', 'Dienstgeberbeitrag zum Familienlastenausgleichsfonds (DB)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1168, 'AT-BASE-2', 'Aufwand', '6662', '0', 'Zuschlag zum Dienstnehmerbeitrag (DZ)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1169, 'AT-BASE-2', 'Aufwand', '6663', '0', 'Dienstgeberabgabe der Gemeinde Wien (U-Bahn Steuer)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1170, 'AT-BASE-2', 'Aufwand', '6700', '0', 'Sonstiger freiwilliger Sozialaufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1171, 'AT-BASE-2', 'Aufwand', '6900', '0', 'Aufwandsstellenrechnung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1172, 'AT-BASE-2', 'Abschreibungen', '7000', '0', 'Abschreibungen auf aktivierte Aufwendungen für das Ingangsetzen und Erweitern eines Betriebes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1173, 'AT-BASE-2', 'Abschreibungen', '7090', '0', 'Abschreibungen vom Umlaufvermögen, soweit diese die im Unternehmen üblichen Abschreibungen übersteigen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1174, 'AT-BASE-2', 'Aufwand', '7600', '0', 'Büromaterial und Drucksorten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1175, 'AT-BASE-2', 'Aufwand', '7630', '0', 'Fachliteratur und Zeitungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1176, 'AT-BASE-2', 'Aufwand', '7690', '0', 'Spenden und Trinkgelder', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1177, 'AT-BASE-2', 'Aufwand', '7770', '0', 'Aus- und Fortbildung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1178, 'AT-BASE-2', 'Aufwand', '7780', '0', 'Mitgliedsbeiträge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1179, 'AT-BASE-2', 'Aufwand', '7790', '0', 'Spesen des Geldverkehrs', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1180, 'AT-BASE-2', 'Aufwand', '7820', '0', 'Buchwert abgegangener Anlagen, ausgenommen Finanzanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1181, 'AT-BASE-2', 'Aufwand', '7830', '0', 'Verluste aus dem Abgang vom Anlagevermögen, ausgenommen Finanzanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1182, 'AT-BASE-2', 'Aufwand', '7860', '0', 'Kursverluste aus Fremdwährungstransaktionen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1183, 'AT-BASE-2', 'Aufwand', '7890', '0', 'Skontoerträge auf sonstige betriebliche Aufwendungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1184, 'AT-BASE-2', 'Aufwand', '7900', '0', 'Aufwandsstellenrechnung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1185, 'AT-BASE-2', 'Aufwand', '7960', '0', 'Herstellungskosten der zur Erzielung der Umsatzerlöse erbrachten Leistungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1186, 'AT-BASE-2', 'Aufwand', '7970', '0', 'Vertriebskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1187, 'AT-BASE-2', 'Aufwand', '7980', '0', 'Verwaltungskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1188, 'AT-BASE-2', 'Aufwand', '7990', '0', 'Sonstige betriebliche Aufwendungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1189, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8140', '0', 'Erlöse aus dem Abgang von Beteiligungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1190, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8150', '0', 'Erlöse aus dem Abgang von sonstigen Finanzanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1191, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8160', '0', 'Erlöse aus dem Abgang von Wertpapieren des Umlaufvermögens', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1192, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8170', '0', 'Buchwert abgegangener Beteiligungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1193, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8180', '0', 'Buchwert abgegangener sonstiger Finanzanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1194, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8190', '0', 'Buchwert abgegangener Wertpapiere des Umlaufvermögens', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1195, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8200', '0', 'Erträge aus dem Abgang von und der Zuschreibung zu Finanzanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1196, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8210', '0', 'Erträge aus dem Abgang von und der Zuschreibung zu Wertpapieren des Umlaufvermögens', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1197, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8350', '0', 'Nicht ausgenützte Lieferantenskonti', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1198, 'AT-BASE-2', 'Sonstige betriebliche Erträge', '8990', '0', 'Gewinnabfuhr bzw. Verlustüberrechnung aus Ergebnisabführungsverträgen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1199, 'AT-BASE-2', 'Eigenkapital', '9190', '0', 'Nicht eingeforderte ausstehende Einlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1200, 'AT-BASE-2', 'Eigenkapital', '9390', '0', 'Bilanzgewinn (-verlust)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1201, 'AT-BASE-2', 'Eigenkapital', '9800', '0', 'Eröffnungsbilanz', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1202, 'AT-BASE-2', 'Eigenkapital', '9850', '0', 'Schlussbilanz', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1203, 'AT-BASE-2', 'Eigenkapital', '9890', '0', 'Gewinn- und Verlustrechnung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1204, 'AT-BASE-2', 'Aufwand', '9991', '0', 'Bargelddifferenz Verlust', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1205, 'AT-BASE-2', 'Erlöse', '9992', '0', 'Bargelddifferenz Gewinn', 1); diff --git a/htdocs/install/mysql/data/llx_accounting_account_de.sql b/htdocs/install/mysql/data/llx_accounting_account_de.sql index 0165c3ec06e..e8026e32de1 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_de.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_de.sql @@ -24,328 +24,327 @@ -- SKR03 -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1, 'SKR03', '0', '1', '0', 'Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2, 'SKR03', '0', '2', '0', 'Aufwendungen für die Währungsumstellung auf den Euro'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 10, 'SKR03', '0', '10', '0', 'Konzessionen gewerbliche Schutzrechte und ähnliche Rechte und Werte sowie Lizenzen an solchen Rechten und Werten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 15, 'SKR03', '0', '15', '10', 'Konzessionen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 20, 'SKR03', '0', '20', '10', 'Gewerbliche Schutzrechte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 25, 'SKR03', '0', '25', '10', 'ähnliche Rechte und Werte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 27, 'SKR03', '0', '27', '10', 'EDV-Software'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 30, 'SKR03', '0', '30', '10', 'Lizenzen an gewerblichen Schutzrechten und ähnlichen Rechten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 35, 'SKR03', '0', '35', '0', 'Geschäfts- oder Firmenwert'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 38, 'SKR03', '0', '38', '0', 'Anzahlungen auf Geschäfts- oder Firmenwert'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 39, 'SKR03', '0', '39', '0', 'Anzahlungen auf immaterielle Vermögensgegenstände'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 40, 'SKR03', '0', '40', '0', 'Verschmelzungsmehrwert'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 50, 'SKR03', '0', '50', '0', 'Grundstücke grundstücksgleiche Rechte und Bauten einschließlich der Bauten auf fremden Grundstücken'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 59, 'SKR03', '0', '59', '50', 'Grundstücksanteil des häuslichen Arbeitszimmers.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 60, 'SKR03', '0', '60', '0', 'Grundstücke und grundstücksgleiche Rechte ohne Bauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 65, 'SKR03', '0', '65', '60', 'Unbebaute Grundstücke'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 70, 'SKR03', '0', '70', '60', 'Grundstücksgleiche Rechte - (erbbaurecht Daürwohnrecht)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 75, 'SKR03', '0', '75', '60', 'Grundstücke mit Substanzverzehr'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 79, 'SKR03', '0', '79', '60', 'Anzahlungen auf Grundstücke und grundstücksgleiche Rechte ohne Bauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 80, 'SKR03', '0', '80', '0', 'Bauten auf eigenen Grundstücken und grundstücksgleichen Rechten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 85, 'SKR03', '0', '85', '80', 'Grundstückswerte eigener bebauter Grundstücke'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 90, 'SKR03', '0', '90', '80', 'Geschäftsbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 100, 'SKR03', '0', '100', '80', 'Fabrikbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 110, 'SKR03', '0', '110', '80', 'Garagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1055, 'SKR03', '0', '111', '80', 'Außenanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1056, 'SKR03', '0', '112', '80', 'Hof- und Wegebefestigungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1057, 'SKR03', '0', '113', '80', 'Einrichtung Fabrik- und Geschäftsbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1058, 'SKR03', '0', '115', '80', 'Andere Bauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1059, 'SKR03', '0', '120', '80', 'Geschäfts- Fabrik- und andere Bauten im Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1060, 'SKR03', '0', '129', '80', 'Anzahlungen auf Geshäfts- Fabrik- und andere Bauten auf eigenen Grundstücken und grundstücksgleichen Rechten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1061, 'SKR03', '0', '140', '80', 'Wohnbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1062, 'SKR03', '0', '145', '80', 'Garagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1063, 'SKR03', '0', '146', '80', 'Aussenanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1064, 'SKR03', '0', '147', '80', 'Hof- und Wegebefestigungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1065, 'SKR03', '0', '148', '80', 'Einrichtungen für Wohnbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1066, 'SKR03', '0', '149', '80', 'Gebäudeteil des häuslichen Arbeitszimmers'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1067, 'SKR03', '0', '150', '80', 'Wohnbauten im Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1068, 'SKR03', '0', '159', '80', 'Anzahlgen auf Wohnbauten auf eigenen Grundstücken und grundstücksgleichen Rechten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1069, 'SKR03', '0', '160', '0', 'Bauten auf fremden Grundstücken'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1070, 'SKR03', '0', '165', '160', 'Geschäftsbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1071, 'SKR03', '0', '170', '160', 'Fabrikbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1072, 'SKR03', '0', '175', '160', 'Garagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1073, 'SKR03', '0', '176', '160', 'Aussenanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1074, 'SKR03', '0', '177', '160', 'Hof- und Wegebefestigungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1075, 'SKR03', '0', '178', '160', 'Einrichtung für Fabrik- und Geschäftsbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1076, 'SKR03', '0', '179', '160', 'Andere Bauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1077, 'SKR03', '0', '180', '160', 'Geschäfts- Fabrik- und andere Bauten im Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1078, 'SKR03', '0', '189', '160', 'Anzahlungen auf Geschäfts- Fabrik- und andere Bauten auf fremden Grundstücken'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1079, 'SKR03', '0', '190', '160', 'Wohnbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1080, 'SKR03', '0', '191', '160', 'Garagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1081, 'SKR03', '0', '192', '160', 'Aussenanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1082, 'SKR03', '0', '193', '160', 'Hof- und Wegebefestigungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1083, 'SKR03', '0', '194', '160', 'Einrichtungen für Wohnbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1084, 'SKR03', '0', '195', '160', 'Wohnbauten im Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1085, 'SKR03', '0', '199', '160', 'Anzahlungen a. Wohnbauten auf fremden Grundstücken'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1087, 'SKR03', '0', '200', '0', 'Technische Anlagen und Maschinen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1088, 'SKR03', '0', '210', '200', 'Maschinen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1089, 'SKR03', '0', '220', '200', 'Maschinengebundene Werkzeuge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1090, 'SKR03', '0', '240', '200', 'Maschinelle Anlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1091, 'SKR03', '0', '260', '200', 'Transportanlagen und ähnliches'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1092, 'SKR03', '0', '280', '200', 'Betriebsvorrichtungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1093, 'SKR03', '0', '290', '200', 'Technische Anlagen und Maschinen im Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1094, 'SKR03', '0', '299', '200', 'Anzahlungen auf technische Anlagen und Maschinen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1096, 'SKR03', '0', '300', '0', 'Andere Anlagen Betriebs- und Geschäftsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1097, 'SKR03', '0', '310', '300', 'Andere Anlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1098, 'SKR03', '0', '320', '300', 'PKW'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1099, 'SKR03', '0', '350', '300', 'LKW'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1100, 'SKR03', '0', '380', '300', 'Sonstige Transportmittel'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1101, 'SKR03', '0', '400', '300', 'Betriebsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1102, 'SKR03', '0', '410', '300', 'Geschäftsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1103, 'SKR03', '0', '420', '300', 'Büroeinrichtung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1104, 'SKR03', '0', '430', '300', 'Ladeneinrichtung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1105, 'SKR03', '0', '440', '300', 'Werkzeuge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1106, 'SKR03', '0', '450', '300', 'Einbauten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1107, 'SKR03', '0', '460', '300', 'Gerüst- und Schalungsmaterial'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1108, 'SKR03', '0', '480', '300', 'Geringwertige Wirtschaftsgüter bis 410 Euro'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1109, 'SKR03', '0', '490', '300', 'Sonstige Betriebs- und Geschäftsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1110, 'SKR03', '0', '498', '300', 'Andere Anlagen Betriebs- und Geschäftsausstattung im Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1111, 'SKR03', '0', '499', '300', 'Anzahlungen auf andere Anlagen Betriebs- und Geschäftsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1114, 'SKR03', '0', '500', '0', 'Anteile an verbundenen Unternehmen (Anlagevermögen)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1115, 'SKR03', '0', '504', '500', 'Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1117, 'SKR03', '0', '505', '500', 'Ausleihungen an verbundene Unternehmen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1119, 'SKR03', '0', '510', '500', 'Beteiligungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1120, 'SKR03', '0', '513', '510', 'Typisch stille Beteiligungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1121, 'SKR03', '0', '516', '510', 'Atypisch stille Beteiligungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1122, 'SKR03', '0', '517', '510', 'Andere Beteiligungen an Kapitalgesellschaften'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1123, 'SKR03', '0', '518', '510', 'Andere Beteiligungen an Personengesellschaften'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1124, 'SKR03', '0', '519', '510', 'Beteiligung einer GmbH&Co.KG an einer Komplementär GmbH'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1126, 'SKR03', '0', '520', '0', 'Ausleihungen an Unternehmen mit denen ein Beteiligungsverhältnis besteht'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1128, 'SKR03', '0', '525', '520', 'Wertpapiere des Anlagevermögens'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1129, 'SKR03', '0', '530', '525', 'Wertpapiere mit Gewinnbeteiligungsansprüchen die dem Halbeinkünfteverfahren unterliegen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1130, 'SKR03', '0', '535', '525', 'Festverzinsliche Wertpapiere'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1132, 'SKR03', '0', '540', '0', 'Sonstige Ausleihungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1133, 'SKR03', '0', '550', '540', 'Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1135, 'SKR03', '0', '570', '0', 'Genossenschaftsanteile zum langfristigen Verbleib'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1136, 'SKR03', '0', '580', '570', 'Ausleihungen an Gesellschafter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1137, 'SKR03', '0', '590', '570', 'Ausleihungen an nahe stehende Personen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1139, 'SKR03', '0', '595', '0', 'Rückdeckungsansprüche aus Lebensversicherungen zum langfristigen Verbleib'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1142, 'SKR03', '0', '600', '0', 'Anleihen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1143, 'SKR03', '0', '601', '600', 'Anleihen nicht konvertibel (bis 1 Jahr)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1144, 'SKR03', '0', '605', '600', 'Anleihen nicht konvertibel (1-5 Jahre)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1145, 'SKR03', '0', '610', '600', 'Anleihen nicht konvertibel (größer 5 Jahre)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1146, 'SKR03', '0', '615', '600', 'Anleihen konvertibel'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1147, 'SKR03', '0', '616', '600', 'Anleihen konvertibel(bis 1 Jahr)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1148, 'SKR03', '0', '620', '600', 'Anleihen konvertibel(1-5 Jahre)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1149, 'SKR03', '0', '625', '600', 'Anleihen konvertibel(größer 5 Jahre)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1151, 'SKR03', '0', '630', '0', 'Verbindlichkeiten gegenüber Kreditinstituten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1152, 'SKR03', '0', '631', '630', 'Verbindlichkeiten gegenüber Kreditinstitut ( bis 1Jahr )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1153, 'SKR03', '0', '640', '630', 'Verbindlichkeiten gegenüber Kreditinstitut (1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1154, 'SKR03', '0', '650', '630', 'Verbindlichkeiten gegenüber Kreditinstitut (größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1155, 'SKR03', '0', '660', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1156, 'SKR03', '0', '661', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen ( bis 1Jahr )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1157, 'SKR03', '0', '670', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen (1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1158, 'SKR03', '0', '680', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen (größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1159, 'SKR03', '0', '690', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1160, 'SKR03', '0', '691', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1161, 'SKR03', '0', '692', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1162, 'SKR03', '0', '693', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1163, 'SKR03', '0', '694', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1164, 'SKR03', '0', '695', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1165, 'SKR03', '0', '696', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1166, 'SKR03', '0', '697', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1167, 'SKR03', '0', '698', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1169, 'SKR03', '0', '699', '600', 'Gegenkonto 0630-0689 bei Aufteilung der Konten 0690-0698'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1171, 'SKR03', '0', '700', '600', 'Verbindlichkeiten gegenüber verbundenen Unternehmen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1172, 'SKR03', '0', '701', '700', 'Verbindlichkeiten gegenüber verbundenen Unternehmen ( bis 1 Jahr )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1173, 'SKR03', '0', '705', '700', 'Verbindlichkeiten gegenüber verbundenen Unternehmen ( 1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1174, 'SKR03', '0', '710', '700', 'Verbindlichkeiten gegenüber verbundenen Unternehmen ( größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1176, 'SKR03', '0', '715', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1177, 'SKR03', '0', '716', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( bis 1 Jahr )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1178, 'SKR03', '0', '720', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( 1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1179, 'SKR03', '0', '725', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( größer 5 Jahre)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1181, 'SKR03', '0', '730', '600', 'Verbindlichkeit gegenüber Gesellschaftern'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1182, 'SKR03', '0', '731', '730', 'Verbindlichkeit gegenüber Gesellschaftern ( bis 1 Jahr )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1183, 'SKR03', '0', '740', '730', 'Verbindlichkeit gegenüber Gesellschaftern ( 1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1184, 'SKR03', '0', '750', '730', 'Verbindlichkeit gegenüber Gesellschaftern ( größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1185, 'SKR03', '0', '755', '730', 'Verbindlichkeit gegenüber Gesellschaftern für offene Ausschüttungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1186, 'SKR03', '0', '760', '730', 'Darlehen typisch stiller Gesellschafter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1187, 'SKR03', '0', '761', '730', 'Darlehen typisch stiller Gesellschafter ( bis 1 Jahr)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1188, 'SKR03', '0', '764', '730', 'Darlehen typisch stiller Gesellschafter ( 1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1189, 'SKR03', '0', '767', '730', 'Darlehen typisch stiller Gesellschafter ( größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1190, 'SKR03', '0', '770', '730', 'Darlehen atypisch stiller Gesellschafter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1191, 'SKR03', '0', '771', '730', 'Darlehen atypisch stiller Gesellschafter ( bis 1 Jahr)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1192, 'SKR03', '0', '774', '730', 'Darlehen atypisch stiller Gesellschafter ( 1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1193, 'SKR03', '0', '777', '730', 'Darlehen atypisch stiller Gesellschafter ( größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1194, 'SKR03', '0', '780', '730', 'Partiarische Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1195, 'SKR03', '0', '781', '730', 'Partiarische Darlehen ( bis 1 Jahr )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1196, 'SKR03', '0', '784', '730', 'Partiarische Darlehen ( 1 bis 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1197, 'SKR03', '0', '787', '730', 'Partiarische Darlehen ( größer 5 Jahre )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1198, 'SKR03', '0', '790', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1199, 'SKR03', '0', '791', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1200, 'SKR03', '0', '792', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1201, 'SKR03', '0', '793', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1202, 'SKR03', '0', '794', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1203, 'SKR03', '0', '795', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1204, 'SKR03', '0', '796', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1205, 'SKR03', '0', '797', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1206, 'SKR03', '0', '798', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1207, 'SKR03', '0', '799', '730', 'Gegenkonto 0730 - 0789 bei Aufteilung der Konten 0790 - 0798'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1210, 'SKR03', '0', '800', '0', 'Gezeichnetes Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1212, 'SKR03', '0', '801', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1213, 'SKR03', '0', '802', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1214, 'SKR03', '0', '803', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1215, 'SKR03', '0', '804', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1216, 'SKR03', '0', '805', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1217, 'SKR03', '0', '806', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1218, 'SKR03', '0', '807', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1219, 'SKR03', '0', '808', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1220, 'SKR03', '0', '809', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1221, 'SKR03', '0', '810', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1222, 'SKR03', '0', '811', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1223, 'SKR03', '0', '812', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1224, 'SKR03', '0', '813', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1225, 'SKR03', '0', '814', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1226, 'SKR03', '0', '815', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1227, 'SKR03', '0', '816', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1228, 'SKR03', '0', '817', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1229, 'SKR03', '0', '818', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1230, 'SKR03', '0', '819', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1232, 'SKR03', '0', '820', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1233, 'SKR03', '0', '821', '800', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1234, 'SKR03', '0', '822', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1235, 'SKR03', '0', '823', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1236, 'SKR03', '0', '824', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1237, 'SKR03', '0', '825', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1238, 'SKR03', '0', '826', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1239, 'SKR03', '0', '827', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1240, 'SKR03', '0', '828', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1241, 'SKR03', '0', '829', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1243, 'SKR03', '0', '830', '800', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1244, 'SKR03', '0', '831', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1245, 'SKR03', '0', '832', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1246, 'SKR03', '0', '833', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1247, 'SKR03', '0', '834', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1248, 'SKR03', '0', '835', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1249, 'SKR03', '0', '836', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1250, 'SKR03', '0', '837', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1251, 'SKR03', '0', '838', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1253, 'SKR03', '0', '839', '830', 'Eingeforderte Nachschüsse ( Forderungen Gegenkonto 0845 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1256, 'SKR03', '0', '840', '0', 'Kapitalrücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1257, 'SKR03', '0', '841', '840', 'Kapitalrücklage durch Ausgabe von Anteilen über Nennbetrag'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1258, 'SKR03', '0', '842', '840', 'Kapitalrücklage durch Ausgabe von Schuldverschreibungen für Wandlungsrechte und Optionsrechte zum Erwerb von Anteilen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1259, 'SKR03', '0', '843', '840', 'Kapitalrücklage durch Zuzahlungen gegen Gewährung eines Vorzugs für Anteile'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1260, 'SKR03', '0', '844', '840', 'Kapitalrücklage durch andere Zuzahlungen in das Eigenkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1261, 'SKR03', '0', '845', '840', 'Eingefordertes Nachschusskapital ( Gegenkonto 0839 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1264, 'SKR03', '0', '846', '840', 'Gesetzliche Rücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1266, 'SKR03', '0', '850', '840', 'Rücklage für eigene Anteile'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1268, 'SKR03', '0', '851', '840', 'Satzungsmässige Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1270, 'SKR03', '0', '855', '840', 'Andere Gewinnrücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1271, 'SKR03', '0', '856', '840', 'Eigenkapitalanteil von Wertaufholungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1273, 'SKR03', '0', '860', '0', 'Gewinnvortrag vor Verwendung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1274, 'SKR03', '0', '868', '860', 'Verlustvortrag vor Verwendung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1276, 'SKR03', '0', '869', '860', 'Vortrag auf neue Rechnung (Bilanz)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1278, 'SKR03', '0', '870', '0', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1279, 'SKR03', '0', '871', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1280, 'SKR03', '0', '872', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1281, 'SKR03', '0', '873', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1282, 'SKR03', '0', '874', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1283, 'SKR03', '0', '875', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1284, 'SKR03', '0', '876', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1285, 'SKR03', '0', '877', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1286, 'SKR03', '0', '878', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1287, 'SKR03', '0', '879', '870', 'Festkapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1288, 'SKR03', '0', '880', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1289, 'SKR03', '0', '881', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1290, 'SKR03', '0', '882', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1291, 'SKR03', '0', '883', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1292, 'SKR03', '0', '884', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1293, 'SKR03', '0', '885', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1294, 'SKR03', '0', '886', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1295, 'SKR03', '0', '887', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1296, 'SKR03', '0', '888', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1297, 'SKR03', '0', '889', '870', 'Variables Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1298, 'SKR03', '0', '890', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1299, 'SKR03', '0', '891', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1300, 'SKR03', '0', '892', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1301, 'SKR03', '0', '893', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1302, 'SKR03', '0', '894', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1303, 'SKR03', '0', '895', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1304, 'SKR03', '0', '896', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1305, 'SKR03', '0', '897', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1306, 'SKR03', '0', '898', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1307, 'SKR03', '0', '899', '870', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1309, 'SKR03', '0', '900', '0', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1310, 'SKR03', '0', '901', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1311, 'SKR03', '0', '902', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1312, 'SKR03', '0', '903', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1313, 'SKR03', '0', '904', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1314, 'SKR03', '0', '905', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1315, 'SKR03', '0', '906', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1316, 'SKR03', '0', '907', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1317, 'SKR03', '0', '908', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1318, 'SKR03', '0', '909', '1309', 'Kommandit-Kapital'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1319, 'SKR03', '0', '910', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1320, 'SKR03', '0', '911', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1321, 'SKR03', '0', '912', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1322, 'SKR03', '0', '913', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1323, 'SKR03', '0', '914', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1324, 'SKR03', '0', '915', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1325, 'SKR03', '0', '916', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1326, 'SKR03', '0', '917', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1327, 'SKR03', '0', '918', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1328, 'SKR03', '0', '919', '1309', 'Verlustausgleichskonto'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1329, 'SKR03', '0', '920', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1330, 'SKR03', '0', '921', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1331, 'SKR03', '0', '922', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1332, 'SKR03', '0', '923', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1333, 'SKR03', '0', '924', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1334, 'SKR03', '0', '925', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1335, 'SKR03', '0', '926', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1336, 'SKR03', '0', '927', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1337, 'SKR03', '0', '928', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1338, 'SKR03', '0', '929', '1309', 'Gesellschafter-Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1341, 'SKR03', '0', '930', '1309', 'Sonderposten mit Rücklageanteil steuerfreie Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1342, 'SKR03', '0', '931', '1341', 'Sonderposten mit Rücklageanteil nach § 6b EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1343, 'SKR03', '0', '932', '1341', 'Sonderposten mit Rücklageanteil nach Abschnitt 35 EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1344, 'SKR03', '0', '933', '1341', 'Sonderposten mit Rücklageanteil nach § 6d EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1345, 'SKR03', '0', '934', '1341', 'Sonderposten mit Rücklageanteil nach § 1 EntwLStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1347, 'SKR03', '0', '935', '1309', 'Sonderposten aus der Währungsumstellung auf den Euro'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1348, 'SKR03', '0', '936', '1341', 'Sonderposten mit Rücklageanteil nach § 7 d EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1349, 'SKR03', '0', '937', '1341', 'Sonderposten mit Rücklageanteil nach § 79 EStDV'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1350, 'SKR03', '0', '938', '1341', 'Sonderposten mit Rücklageanteil nach § 80 EStDV'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1351, 'SKR03', '0', '939', '1341', 'Sonderposten mit Rücklageanteil nach § 52 Abs.16 EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1352, 'SKR03', '0', '940', '1341', 'Sonderposten mit Rücklageanteil Sonderabschreibungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1353, 'SKR03', '0', '941', '1341', 'Sonderposten mit Rücklageanteil § 82 a EStDV'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1354, 'SKR03', '0', '942', '1341', 'Sonderposten mit Rücklageanteil § 82 d EStDV'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1355, 'SKR03', '0', '943', '1341', 'Sonderposten mit Rücklageanteil nach § 82 e EStDV'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1356, 'SKR03', '0', '944', '1341', 'Sonderposten mit Rücklageanteil nach § 14 BerlinFG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1357, 'SKR03', '0', '945', '1341', 'Sonderposten mit Rücklageanteil für Förderung nach § 3 Zonen-RFG/§ 4-6 FördergebietsG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1358, 'SKR03', '0', '946', '1341', 'Sonderposten mit Rücklageanteil nach § 4d EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1359, 'SKR03', '0', '947', '1341', 'Sonderposten mit Rücklageanteil nach § 7g Abs.1 EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1360, 'SKR03', '0', '948', '1341', 'Sonderposten mit Rücklageanteil nach § 7g Abs.3 u.7 EStG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1362, 'SKR03', '0', '949', '1309', 'Sonderposten für Zuschüsse und Zulagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1365, 'SKR03', '0', '950', '1309', 'Rückstellungen für Pensionen und ähnliche Verpflichtungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1367, 'SKR03', '0', '955', '1309', 'Steuerrückstellungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1368, 'SKR03', '0', '957', '1367', 'Gewerbesteuerrückstellung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1369, 'SKR03', '0', '963', '1367', 'Körperschaftsteuerrückstellung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1371, 'SKR03', '0', '965', '1309', 'Rückstellungen für Personalkosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1372, 'SKR03', '0', '966', '1309', 'Rückstellungen zur Erfüllung der Aufbewahrungspflichten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1373, 'SKR03', '0', '969', '1309', 'Rückstellung für latente Steuern'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1374, 'SKR03', '0', '970', '1309', 'Sonstige Rückstellungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1375, 'SKR03', '0', '971', '1309', 'Rückstellungen für unterlassene Aufwendungen für Instandhaltung Nachholung in den ersten drei Monaten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1376, 'SKR03', '0', '972', '1309', 'Rückstellungen für unterlassene Aufwendungen für Instandhaltung Nachholung innerhalb des 4. bis 12. Monats'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1377, 'SKR03', '0', '973', '1309', 'Rückstellungen für Abraum- und Abfallbeseitigung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1378, 'SKR03', '0', '974', '1309', 'Rückstellungen für Gewährleistungen ( Gegenkonto 4790 )'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1379, 'SKR03', '0', '976', '1309', 'Rückstellungen für drohende Verluste aus schwebenden Geschäften'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1380, 'SKR03', '0', '977', '1309', 'Rückstellungen für Abschluss- und Prüfungskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1381, 'SKR03', '0', '978', '1309', 'Aufwandsrückstellungen gemäß § 249 Abs. 2 HGB'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1382, 'SKR03', '0', '979', '1309', 'Rückstellungen für Umweltschutz'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1385, 'SKR03', '0', '980', '1309', 'Aktive Rechnungsabgrenzung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1387, 'SKR03', '0', '983', '1385', 'Abgrenzung aktive latente Steuern'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1388, 'SKR03', '0', '984', '1309', 'Als Aufwand berücksichtigte Zölle und Verbrauchsteuern'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1389, 'SKR03', '0', '985', '1309', 'Als Aufwand berücksichtigte Umsatzsteuer auf Anzahlungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1390, 'SKR03', '0', '986', '1309', 'Damnum / Disagio'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1393, 'SKR03', '0', '990', '1309', 'Passive Rechnungsabgrenzung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1395, 'SKR03', '0', '992', '1393', 'Abgenzungsposten zur unterjährigen Kostenverrechnung für BWA'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1396, 'SKR03', '0', '993', '1393', 'Forderungen aus Lieferungen und Leistungen H-Saldo'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1397, 'SKR03', '0', '996', '1393', 'Pauschalwertberichtigung auf Forderungen mit einer Restlaufzeit bis zu 1 Jahr'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1398, 'SKR03', '0', '997', '1393', 'Pauschalwertberichtigung auf Forderungen mit einer Restlaufzeit von mehr als 1 Jahr'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1399, 'SKR03', '0', '998', '1393', 'Einzelwertberichtigungen auf Forderungen mit einer Restlaufzeit bis zu 1 Jahr'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1400, 'SKR03', '0', '999', '1393', 'Einzelwertberichtigungen auf Forderungen mit einer Restlaufzeit von mehr als 1 Jahr'); - +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1, 'SKR03', '0', '0001', '0', 'Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2, 'SKR03', '0', '0002', '0', 'Aufwendungen für die Währungsumstellung auf den Euro'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 10, 'SKR03', '0', '0010', '0', 'Konzessionen gewerbliche Schutzrechte und ähnliche Rechte und Werte sowie Lizenzen an solchen Rechten und Werten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 15, 'SKR03', '0', '0015', '10', 'Konzessionen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 20, 'SKR03', '0', '0020', '10', 'Gewerbliche Schutzrechte'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 25, 'SKR03', '0', '0025', '10', 'ähnliche Rechte und Werte'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 27, 'SKR03', '0', '0027', '10', 'EDV-Software'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 30, 'SKR03', '0', '0030', '10', 'Lizenzen an gewerblichen Schutzrechten und ähnlichen Rechten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 35, 'SKR03', '0', '0035', '0', 'Geschäfts- oder Firmenwert'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 38, 'SKR03', '0', '0038', '0', 'Anzahlungen auf Geschäfts- oder Firmenwert'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 39, 'SKR03', '0', '0039', '0', 'Anzahlungen auf immaterielle Vermögensgegenstände'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 40, 'SKR03', '0', '0040', '0', 'Verschmelzungsmehrwert'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 50, 'SKR03', '0', '0050', '0', 'Grundstücke grundstücksgleiche Rechte und Bauten einschließlich der Bauten auf fremden Grundstücken'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 59, 'SKR03', '0', '0059', '50', 'Grundstücksanteil des häuslichen Arbeitszimmers.'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 60, 'SKR03', '0', '0060', '0', 'Grundstücke und grundstücksgleiche Rechte ohne Bauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 65, 'SKR03', '0', '0065', '60', 'Unbebaute Grundstücke'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 70, 'SKR03', '0', '0070', '60', 'Grundstücksgleiche Rechte - (erbbaurecht Daürwohnrecht)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 75, 'SKR03', '0', '0075', '60', 'Grundstücke mit Substanzverzehr'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 79, 'SKR03', '0', '0079', '60', 'Anzahlungen auf Grundstücke und grundstücksgleiche Rechte ohne Bauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 80, 'SKR03', '0', '0080', '0', 'Bauten auf eigenen Grundstücken und grundstücksgleichen Rechten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 85, 'SKR03', '0', '0085', '80', 'Grundstückswerte eigener bebauter Grundstücke'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 90, 'SKR03', '0', '0090', '80', 'Geschäftsbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 100, 'SKR03', '0', '0100', '80', 'Fabrikbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 110, 'SKR03', '0', '0110', '80', 'Garagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1055, 'SKR03', '0', '0111', '80', 'Außenanlagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1056, 'SKR03', '0', '0112', '80', 'Hof- und Wegebefestigungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1057, 'SKR03', '0', '0113', '80', 'Einrichtung Fabrik- und Geschäftsbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1058, 'SKR03', '0', '0115', '80', 'Andere Bauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1059, 'SKR03', '0', '0120', '80', 'Geschäfts- Fabrik- und andere Bauten im Bau'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1060, 'SKR03', '0', '0129', '80', 'Anzahlungen auf Geshäfts- Fabrik- und andere Bauten auf eigenen Grundstücken und grundstücksgleichen Rechten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1061, 'SKR03', '0', '0140', '80', 'Wohnbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1062, 'SKR03', '0', '0145', '80', 'Garagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1063, 'SKR03', '0', '0146', '80', 'Aussenanlagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1064, 'SKR03', '0', '0147', '80', 'Hof- und Wegebefestigungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1065, 'SKR03', '0', '0148', '80', 'Einrichtungen für Wohnbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1066, 'SKR03', '0', '0149', '80', 'Gebäudeteil des häuslichen Arbeitszimmers'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1067, 'SKR03', '0', '0150', '80', 'Wohnbauten im Bau'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1068, 'SKR03', '0', '0159', '80', 'Anzahlgen auf Wohnbauten auf eigenen Grundstücken und grundstücksgleichen Rechten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1069, 'SKR03', '0', '0160', '0', 'Bauten auf fremden Grundstücken'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1070, 'SKR03', '0', '0165', '160', 'Geschäftsbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1071, 'SKR03', '0', '0170', '160', 'Fabrikbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1072, 'SKR03', '0', '0175', '160', 'Garagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1073, 'SKR03', '0', '0176', '160', 'Aussenanlagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1074, 'SKR03', '0', '0177', '160', 'Hof- und Wegebefestigungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1075, 'SKR03', '0', '0178', '160', 'Einrichtung für Fabrik- und Geschäftsbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1076, 'SKR03', '0', '0179', '160', 'Andere Bauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1077, 'SKR03', '0', '0180', '160', 'Geschäfts- Fabrik- und andere Bauten im Bau'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1078, 'SKR03', '0', '0189', '160', 'Anzahlungen auf Geschäfts- Fabrik- und andere Bauten auf fremden Grundstücken'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1079, 'SKR03', '0', '0190', '160', 'Wohnbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1080, 'SKR03', '0', '0191', '160', 'Garagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1081, 'SKR03', '0', '0192', '160', 'Aussenanlagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1082, 'SKR03', '0', '0193', '160', 'Hof- und Wegebefestigungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1083, 'SKR03', '0', '0194', '160', 'Einrichtungen für Wohnbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1084, 'SKR03', '0', '0195', '160', 'Wohnbauten im Bau'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1085, 'SKR03', '0', '0199', '160', 'Anzahlungen a. Wohnbauten auf fremden Grundstücken'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1087, 'SKR03', '0', '0200', '0', 'Technische Anlagen und Maschinen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1088, 'SKR03', '0', '0210', '200', 'Maschinen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1089, 'SKR03', '0', '0220', '200', 'Maschinengebundene Werkzeuge'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1090, 'SKR03', '0', '0240', '200', 'Maschinelle Anlagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1091, 'SKR03', '0', '0260', '200', 'Transportanlagen und ähnliches'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1092, 'SKR03', '0', '0280', '200', 'Betriebsvorrichtungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1093, 'SKR03', '0', '0290', '200', 'Technische Anlagen und Maschinen im Bau'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1094, 'SKR03', '0', '0299', '200', 'Anzahlungen auf technische Anlagen und Maschinen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1096, 'SKR03', '0', '0300', '0', 'Andere Anlagen Betriebs- und Geschäftsausstattung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1097, 'SKR03', '0', '0310', '300', 'Andere Anlagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1098, 'SKR03', '0', '0320', '300', 'PKW'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1099, 'SKR03', '0', '0350', '300', 'LKW'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1100, 'SKR03', '0', '0380', '300', 'Sonstige Transportmittel'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1101, 'SKR03', '0', '0400', '300', 'Betriebsausstattung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1102, 'SKR03', '0', '0410', '300', 'Geschäftsausstattung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1103, 'SKR03', '0', '0420', '300', 'Büroeinrichtung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1104, 'SKR03', '0', '0430', '300', 'Ladeneinrichtung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1105, 'SKR03', '0', '0440', '300', 'Werkzeuge'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1106, 'SKR03', '0', '0450', '300', 'Einbauten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1107, 'SKR03', '0', '0460', '300', 'Gerüst- und Schalungsmaterial'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1108, 'SKR03', '0', '0480', '300', 'Geringwertige Wirtschaftsgüter bis 410 Euro'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1109, 'SKR03', '0', '0490', '300', 'Sonstige Betriebs- und Geschäftsausstattung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1110, 'SKR03', '0', '0498', '300', 'Andere Anlagen Betriebs- und Geschäftsausstattung im Bau'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1111, 'SKR03', '0', '0499', '300', 'Anzahlungen auf andere Anlagen Betriebs- und Geschäftsausstattung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1114, 'SKR03', '0', '0500', '0', 'Anteile an verbundenen Unternehmen (Anlagevermögen)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1115, 'SKR03', '0', '0504', '500', 'Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1117, 'SKR03', '0', '0505', '500', 'Ausleihungen an verbundene Unternehmen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1119, 'SKR03', '0', '0510', '500', 'Beteiligungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1120, 'SKR03', '0', '0513', '510', 'Typisch stille Beteiligungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1121, 'SKR03', '0', '0516', '510', 'Atypisch stille Beteiligungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1122, 'SKR03', '0', '0517', '510', 'Andere Beteiligungen an Kapitalgesellschaften'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1123, 'SKR03', '0', '0518', '510', 'Andere Beteiligungen an Personengesellschaften'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1124, 'SKR03', '0', '0519', '510', 'Beteiligung einer GmbH&Co.KG an einer Komplementär GmbH'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1126, 'SKR03', '0', '0520', '0', 'Ausleihungen an Unternehmen mit denen ein Beteiligungsverhältnis besteht'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1128, 'SKR03', '0', '0525', '520', 'Wertpapiere des Anlagevermögens'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1129, 'SKR03', '0', '0530', '525', 'Wertpapiere mit Gewinnbeteiligungsansprüchen die dem Halbeinkünfteverfahren unterliegen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1130, 'SKR03', '0', '0535', '525', 'Festverzinsliche Wertpapiere'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1132, 'SKR03', '0', '0540', '0', 'Sonstige Ausleihungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1133, 'SKR03', '0', '0550', '540', 'Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1135, 'SKR03', '0', '0570', '0', 'Genossenschaftsanteile zum langfristigen Verbleib'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1136, 'SKR03', '0', '0580', '570', 'Ausleihungen an Gesellschafter'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1137, 'SKR03', '0', '0590', '570', 'Ausleihungen an nahe stehende Personen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1139, 'SKR03', '0', '0595', '0', 'Rückdeckungsansprüche aus Lebensversicherungen zum langfristigen Verbleib'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1142, 'SKR03', '0', '0600', '0', 'Anleihen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1143, 'SKR03', '0', '0601', '600', 'Anleihen nicht konvertibel (bis 1 Jahr)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1144, 'SKR03', '0', '0605', '600', 'Anleihen nicht konvertibel (1-5 Jahre)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1145, 'SKR03', '0', '0610', '600', 'Anleihen nicht konvertibel (größer 5 Jahre)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1146, 'SKR03', '0', '0615', '600', 'Anleihen konvertibel'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1147, 'SKR03', '0', '0616', '600', 'Anleihen konvertibel(bis 1 Jahr)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1148, 'SKR03', '0', '0620', '600', 'Anleihen konvertibel(1-5 Jahre)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1149, 'SKR03', '0', '0625', '600', 'Anleihen konvertibel(größer 5 Jahre)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1151, 'SKR03', '0', '0630', '0', 'Verbindlichkeiten gegenüber Kreditinstituten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1152, 'SKR03', '0', '0631', '630', 'Verbindlichkeiten gegenüber Kreditinstitut ( bis 1Jahr )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1153, 'SKR03', '0', '0640', '630', 'Verbindlichkeiten gegenüber Kreditinstitut (1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1154, 'SKR03', '0', '0650', '630', 'Verbindlichkeiten gegenüber Kreditinstitut (größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1155, 'SKR03', '0', '0660', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1156, 'SKR03', '0', '0661', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen ( bis 1Jahr )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1157, 'SKR03', '0', '0670', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen (1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1158, 'SKR03', '0', '0680', '630', 'Verbindlichkeit. gegenüber Kreditinstituten aus Teilzahlungsverträgen (größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1159, 'SKR03', '0', '0690', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1160, 'SKR03', '0', '0691', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1161, 'SKR03', '0', '0692', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1162, 'SKR03', '0', '0693', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1163, 'SKR03', '0', '0694', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1164, 'SKR03', '0', '0695', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1165, 'SKR03', '0', '0696', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1166, 'SKR03', '0', '0697', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1167, 'SKR03', '0', '0698', '630', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1169, 'SKR03', '0', '0699', '600', 'Gegenkonto 0630-0689 bei Aufteilung der Konten 0690-0698'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1171, 'SKR03', '0', '0700', '600', 'Verbindlichkeiten gegenüber verbundenen Unternehmen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1172, 'SKR03', '0', '0701', '700', 'Verbindlichkeiten gegenüber verbundenen Unternehmen ( bis 1 Jahr )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1173, 'SKR03', '0', '0705', '700', 'Verbindlichkeiten gegenüber verbundenen Unternehmen ( 1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1174, 'SKR03', '0', '0710', '700', 'Verbindlichkeiten gegenüber verbundenen Unternehmen ( größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1176, 'SKR03', '0', '0715', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1177, 'SKR03', '0', '0716', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( bis 1 Jahr )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1178, 'SKR03', '0', '0720', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( 1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1179, 'SKR03', '0', '0725', '600', 'Verbindlichkeit. gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( größer 5 Jahre)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1181, 'SKR03', '0', '0730', '600', 'Verbindlichkeit gegenüber Gesellschaftern'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1182, 'SKR03', '0', '0731', '730', 'Verbindlichkeit gegenüber Gesellschaftern ( bis 1 Jahr )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1183, 'SKR03', '0', '0740', '730', 'Verbindlichkeit gegenüber Gesellschaftern ( 1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1184, 'SKR03', '0', '0750', '730', 'Verbindlichkeit gegenüber Gesellschaftern ( größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1185, 'SKR03', '0', '0755', '730', 'Verbindlichkeit gegenüber Gesellschaftern für offene Ausschüttungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1186, 'SKR03', '0', '0760', '730', 'Darlehen typisch stiller Gesellschafter'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1187, 'SKR03', '0', '0761', '730', 'Darlehen typisch stiller Gesellschafter ( bis 1 Jahr)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1188, 'SKR03', '0', '0764', '730', 'Darlehen typisch stiller Gesellschafter ( 1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1189, 'SKR03', '0', '0767', '730', 'Darlehen typisch stiller Gesellschafter ( größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1190, 'SKR03', '0', '0770', '730', 'Darlehen atypisch stiller Gesellschafter'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1191, 'SKR03', '0', '0771', '730', 'Darlehen atypisch stiller Gesellschafter ( bis 1 Jahr)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1192, 'SKR03', '0', '0774', '730', 'Darlehen atypisch stiller Gesellschafter ( 1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1193, 'SKR03', '0', '0777', '730', 'Darlehen atypisch stiller Gesellschafter ( größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1194, 'SKR03', '0', '0780', '730', 'Partiarische Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1195, 'SKR03', '0', '0781', '730', 'Partiarische Darlehen ( bis 1 Jahr )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1196, 'SKR03', '0', '0784', '730', 'Partiarische Darlehen ( 1 bis 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1197, 'SKR03', '0', '0787', '730', 'Partiarische Darlehen ( größer 5 Jahre )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1198, 'SKR03', '0', '0790', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1199, 'SKR03', '0', '0791', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1200, 'SKR03', '0', '0792', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1201, 'SKR03', '0', '0793', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1202, 'SKR03', '0', '0794', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1203, 'SKR03', '0', '0795', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1204, 'SKR03', '0', '0796', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1205, 'SKR03', '0', '0797', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1206, 'SKR03', '0', '0798', '730', '(frei in Bilanz kein Restlaufzeitvermerk)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1207, 'SKR03', '0', '0799', '730', 'Gegenkonto 0730 - 0789 bei Aufteilung der Konten 0790 - 0798'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1210, 'SKR03', '0', '0800', '0', 'Gezeichnetes Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1212, 'SKR03', '0', '0801', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1213, 'SKR03', '0', '0802', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1214, 'SKR03', '0', '0803', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1215, 'SKR03', '0', '0804', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1216, 'SKR03', '0', '0805', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1217, 'SKR03', '0', '0806', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1218, 'SKR03', '0', '0807', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1219, 'SKR03', '0', '0808', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1220, 'SKR03', '0', '0809', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1221, 'SKR03', '0', '0810', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1222, 'SKR03', '0', '0811', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1223, 'SKR03', '0', '0812', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1224, 'SKR03', '0', '0813', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1225, 'SKR03', '0', '0814', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1226, 'SKR03', '0', '0815', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1227, 'SKR03', '0', '0816', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1228, 'SKR03', '0', '0817', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1229, 'SKR03', '0', '0818', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1230, 'SKR03', '0', '0819', '801', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert (Aktivausweis)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1232, 'SKR03', '0', '0820', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1233, 'SKR03', '0', '0821', '800', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1234, 'SKR03', '0', '0822', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1235, 'SKR03', '0', '0823', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1236, 'SKR03', '0', '0824', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1237, 'SKR03', '0', '0825', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1238, 'SKR03', '0', '0826', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1239, 'SKR03', '0', '0827', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1240, 'SKR03', '0', '0828', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1241, 'SKR03', '0', '0829', '820', 'Ausstehende Einlagen auf das gezeichnete Kapital nicht eingefordert (Passivausweis von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konten 0830 - 0838 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1243, 'SKR03', '0', '0830', '800', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1244, 'SKR03', '0', '0831', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1245, 'SKR03', '0', '0832', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1246, 'SKR03', '0', '0833', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1247, 'SKR03', '0', '0834', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1248, 'SKR03', '0', '0835', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1249, 'SKR03', '0', '0836', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1250, 'SKR03', '0', '0837', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1251, 'SKR03', '0', '0838', '830', 'Ausstehende Einlagen auf das gezeichnete Kapital eingefordert ( Forderungen nicht eingeforderte ausstehende Einlagen s. Konten 0820 - 0829 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1253, 'SKR03', '0', '0839', '830', 'Eingeforderte Nachschüsse ( Forderungen Gegenkonto 0845 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1256, 'SKR03', '0', '0840', '0', 'Kapitalrücklage'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1257, 'SKR03', '0', '0841', '840', 'Kapitalrücklage durch Ausgabe von Anteilen über Nennbetrag'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1258, 'SKR03', '0', '0842', '840', 'Kapitalrücklage durch Ausgabe von Schuldverschreibungen für Wandlungsrechte und Optionsrechte zum Erwerb von Anteilen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1259, 'SKR03', '0', '0843', '840', 'Kapitalrücklage durch Zuzahlungen gegen Gewährung eines Vorzugs für Anteile'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1260, 'SKR03', '0', '0844', '840', 'Kapitalrücklage durch andere Zuzahlungen in das Eigenkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1261, 'SKR03', '0', '0845', '840', 'Eingefordertes Nachschusskapital ( Gegenkonto 0839 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1264, 'SKR03', '0', '0846', '840', 'Gesetzliche Rücklage'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1266, 'SKR03', '0', '0850', '840', 'Rücklage für eigene Anteile'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1268, 'SKR03', '0', '0851', '840', 'Satzungsmässige Rücklagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1270, 'SKR03', '0', '0855', '840', 'Andere Gewinnrücklagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1271, 'SKR03', '0', '0856', '840', 'Eigenkapitalanteil von Wertaufholungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1273, 'SKR03', '0', '0860', '0', 'Gewinnvortrag vor Verwendung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1274, 'SKR03', '0', '0868', '860', 'Verlustvortrag vor Verwendung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1276, 'SKR03', '0', '0869', '860', 'Vortrag auf neue Rechnung (Bilanz)'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1278, 'SKR03', '0', '0870', '0', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1279, 'SKR03', '0', '0871', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1280, 'SKR03', '0', '0872', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1281, 'SKR03', '0', '0873', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1282, 'SKR03', '0', '0874', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1283, 'SKR03', '0', '0875', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1284, 'SKR03', '0', '0876', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1285, 'SKR03', '0', '0877', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1286, 'SKR03', '0', '0878', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1287, 'SKR03', '0', '0879', '870', 'Festkapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1288, 'SKR03', '0', '0880', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1289, 'SKR03', '0', '0881', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1290, 'SKR03', '0', '0882', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1291, 'SKR03', '0', '0883', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1292, 'SKR03', '0', '0884', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1293, 'SKR03', '0', '0885', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1294, 'SKR03', '0', '0886', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1295, 'SKR03', '0', '0887', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1296, 'SKR03', '0', '0888', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1297, 'SKR03', '0', '0889', '870', 'Variables Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1298, 'SKR03', '0', '0890', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1299, 'SKR03', '0', '0891', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1300, 'SKR03', '0', '0892', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1301, 'SKR03', '0', '0893', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1302, 'SKR03', '0', '0894', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1303, 'SKR03', '0', '0895', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1304, 'SKR03', '0', '0896', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1305, 'SKR03', '0', '0897', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1306, 'SKR03', '0', '0898', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1307, 'SKR03', '0', '0899', '870', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1309, 'SKR03', '0', '0900', '0', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1310, 'SKR03', '0', '0901', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1311, 'SKR03', '0', '0902', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1312, 'SKR03', '0', '0903', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1313, 'SKR03', '0', '0904', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1314, 'SKR03', '0', '0905', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1315, 'SKR03', '0', '0906', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1316, 'SKR03', '0', '0907', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1317, 'SKR03', '0', '0908', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1318, 'SKR03', '0', '0909', '1309', 'Kommandit-Kapital'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1319, 'SKR03', '0', '0910', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1320, 'SKR03', '0', '0911', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1321, 'SKR03', '0', '0912', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1322, 'SKR03', '0', '0913', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1323, 'SKR03', '0', '0914', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1324, 'SKR03', '0', '0915', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1325, 'SKR03', '0', '0916', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1326, 'SKR03', '0', '0917', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1327, 'SKR03', '0', '0918', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1328, 'SKR03', '0', '0919', '1309', 'Verlustausgleichskonto'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1329, 'SKR03', '0', '0920', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1330, 'SKR03', '0', '0921', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1331, 'SKR03', '0', '0922', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1332, 'SKR03', '0', '0923', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1333, 'SKR03', '0', '0924', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1334, 'SKR03', '0', '0925', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1335, 'SKR03', '0', '0926', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1336, 'SKR03', '0', '0927', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1337, 'SKR03', '0', '0928', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1338, 'SKR03', '0', '0929', '1309', 'Gesellschafter-Darlehen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1341, 'SKR03', '0', '0930', '1309', 'Sonderposten mit Rücklageanteil steuerfreie Rücklagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1342, 'SKR03', '0', '0931', '1341', 'Sonderposten mit Rücklageanteil nach § 6b EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1343, 'SKR03', '0', '0932', '1341', 'Sonderposten mit Rücklageanteil nach Abschnitt 35 EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1344, 'SKR03', '0', '0933', '1341', 'Sonderposten mit Rücklageanteil nach § 6d EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1345, 'SKR03', '0', '0934', '1341', 'Sonderposten mit Rücklageanteil nach § 1 EntwLStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1347, 'SKR03', '0', '0935', '1309', 'Sonderposten aus der Währungsumstellung auf den Euro'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1348, 'SKR03', '0', '0936', '1341', 'Sonderposten mit Rücklageanteil nach § 7 d EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1349, 'SKR03', '0', '0937', '1341', 'Sonderposten mit Rücklageanteil nach § 79 EStDV'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1350, 'SKR03', '0', '0938', '1341', 'Sonderposten mit Rücklageanteil nach § 80 EStDV'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1351, 'SKR03', '0', '0939', '1341', 'Sonderposten mit Rücklageanteil nach § 52 Abs.16 EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1352, 'SKR03', '0', '0940', '1341', 'Sonderposten mit Rücklageanteil Sonderabschreibungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1353, 'SKR03', '0', '0941', '1341', 'Sonderposten mit Rücklageanteil § 82 a EStDV'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1354, 'SKR03', '0', '0942', '1341', 'Sonderposten mit Rücklageanteil § 82 d EStDV'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1355, 'SKR03', '0', '0943', '1341', 'Sonderposten mit Rücklageanteil nach § 82 e EStDV'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1356, 'SKR03', '0', '0944', '1341', 'Sonderposten mit Rücklageanteil nach § 14 BerlinFG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1357, 'SKR03', '0', '0945', '1341', 'Sonderposten mit Rücklageanteil für Förderung nach § 3 Zonen-RFG/§ 4-6 FördergebietsG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1358, 'SKR03', '0', '0946', '1341', 'Sonderposten mit Rücklageanteil nach § 4d EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1359, 'SKR03', '0', '0947', '1341', 'Sonderposten mit Rücklageanteil nach § 7g Abs.1 EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1360, 'SKR03', '0', '0948', '1341', 'Sonderposten mit Rücklageanteil nach § 7g Abs.3 u.7 EStG'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1362, 'SKR03', '0', '0949', '1309', 'Sonderposten für Zuschüsse und Zulagen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1365, 'SKR03', '0', '0950', '1309', 'Rückstellungen für Pensionen und ähnliche Verpflichtungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1367, 'SKR03', '0', '0955', '1309', 'Steuerrückstellungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1368, 'SKR03', '0', '0957', '1367', 'Gewerbesteuerrückstellung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1369, 'SKR03', '0', '0963', '1367', 'Körperschaftsteuerrückstellung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1371, 'SKR03', '0', '0965', '1309', 'Rückstellungen für Personalkosten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1372, 'SKR03', '0', '0966', '1309', 'Rückstellungen zur Erfüllung der Aufbewahrungspflichten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1373, 'SKR03', '0', '0969', '1309', 'Rückstellung für latente Steuern'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1374, 'SKR03', '0', '0970', '1309', 'Sonstige Rückstellungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1375, 'SKR03', '0', '0971', '1309', 'Rückstellungen für unterlassene Aufwendungen für Instandhaltung Nachholung in den ersten drei Monaten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1376, 'SKR03', '0', '0972', '1309', 'Rückstellungen für unterlassene Aufwendungen für Instandhaltung Nachholung innerhalb des 4. bis 12. Monats'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1377, 'SKR03', '0', '0973', '1309', 'Rückstellungen für Abraum- und Abfallbeseitigung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1378, 'SKR03', '0', '0974', '1309', 'Rückstellungen für Gewährleistungen ( Gegenkonto 4790 )'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1379, 'SKR03', '0', '0976', '1309', 'Rückstellungen für drohende Verluste aus schwebenden Geschäften'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1380, 'SKR03', '0', '0977', '1309', 'Rückstellungen für Abschluss- und Prüfungskosten'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1381, 'SKR03', '0', '0978', '1309', 'Aufwandsrückstellungen gemäß § 249 Abs. 2 HGB'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1382, 'SKR03', '0', '0979', '1309', 'Rückstellungen für Umweltschutz'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1385, 'SKR03', '0', '0980', '1309', 'Aktive Rechnungsabgrenzung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1387, 'SKR03', '0', '0983', '1385', 'Abgrenzung aktive latente Steuern'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1388, 'SKR03', '0', '0984', '1309', 'Als Aufwand berücksichtigte Zölle und Verbrauchsteuern'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1389, 'SKR03', '0', '0985', '1309', 'Als Aufwand berücksichtigte Umsatzsteuer auf Anzahlungen'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1390, 'SKR03', '0', '0986', '1309', 'Damnum / Disagio'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1393, 'SKR03', '0', '0990', '1309', 'Passive Rechnungsabgrenzung'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1395, 'SKR03', '0', '0992', '1393', 'Abgenzungsposten zur unterjährigen Kostenverrechnung für BWA'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1396, 'SKR03', '0', '0993', '1393', 'Forderungen aus Lieferungen und Leistungen H-Saldo'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1397, 'SKR03', '0', '0996', '1393', 'Pauschalwertberichtigung auf Forderungen mit einer Restlaufzeit bis zu 1 Jahr'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1398, 'SKR03', '0', '0997', '1393', 'Pauschalwertberichtigung auf Forderungen mit einer Restlaufzeit von mehr als 1 Jahr'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1399, 'SKR03', '0', '0998', '1393', 'Einzelwertberichtigungen auf Forderungen mit einer Restlaufzeit bis zu 1 Jahr'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1400, 'SKR03', '0', '0999', '1393', 'Einzelwertberichtigungen auf Forderungen mit einer Restlaufzeit von mehr als 1 Jahr'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1403, 'SKR03', '1', '1000', '0', 'Kasse'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1404, 'SKR03', '1', '1010', '1403', 'Nebenkasse 1'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1405, 'SKR03', '1', '1020', '1403', 'Nebenkasse 2'); @@ -385,7 +384,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1447, 'SKR03', '1', '1340', '1425', 'Anteile an verbundenen Unternehmen (Umlaufvermögen)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1448, 'SKR03', '1', '1344', '1425', 'Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1450, 'SKR03', '1', '1345', '1425', 'Eigene Anteile'); --- TODO Fix value for account_parent INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1456, 'SKR03', '1', '1350', '0', 'GmbH-Anteile zum kurzfristigen Verbleib'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1457, 'SKR03', '1', '1352', '0', 'Genossenschaftsanteile zum kurzfristigen Verbleib'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1458, 'SKR03', '1', '1355', '0', 'Ansprüche aus Rückdeckungsversicherung'); @@ -532,7 +530,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1608, 'SKR03', '1', '1590', '0', 'Durchlaufende Posten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1609, 'SKR03', '1', '1591', '0', 'Durchlaufende Posten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1610, 'SKR03', '1', '1592', '0', 'Fremdgeld'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1612, 'SKR03', '1', '1593', '0', 'Verrechnungskonto erhaltene Anzahlungen bei Buchung über Debitorenkonto'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1613, 'SKR03', '1', '1594', '0', 'Forderungen gegen verbundene Unternehmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1614, 'SKR03', '1', '1595', '0', 'Forderungen gegen verbundene Unternehmen ( bis 1 Jahr )'); @@ -540,7 +537,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1616, 'SKR03', '1', '1597', '0', 'Forderungen gegen Unternehmen mit denen ein Beteiligungsverhältnis besteht'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1617, 'SKR03', '1', '1598', '0', 'Forderungen gegen Unternehmen mit denen ein Beteiligungsverhältnis besteht ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1618, 'SKR03', '1', '1599', '0', 'Forderungen gegen Unternehmen mit denen ein Beteiligungsverhältnis besteht ( größer 1 Jahr )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1621, 'SKR03', '1', '1600', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1622, 'SKR03', '1', '1601', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1623, 'SKR03', '1', '1602', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen'); @@ -567,12 +563,10 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1644, 'SKR03', '1', '1625', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1645, 'SKR03', '1', '1626', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent ( 1 bis 5 Jahre )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1646, 'SKR03', '1', '1628', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent ( größer 5 Jahre )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1648, 'SKR03', '1', '1630', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1649, 'SKR03', '1', '1631', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1650, 'SKR03', '1', '1635', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen ( 1 bis 5 Jahre )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1651, 'SKR03', '1', '1638', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen ( größer 5 Jahre )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1653, 'SKR03', '1', '1640', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1654, 'SKR03', '1', '1641', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1655, 'SKR03', '1', '1645', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht ( 1 bis 5 Jahre )'); @@ -581,14 +575,11 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1658, 'SKR03', '1', '1651', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1659, 'SKR03', '1', '1655', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern ( 1 bis 5 Jahre )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1660, 'SKR03', '1', '1658', '0', 'Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern ( größer 5 Jahre )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1662, 'SKR03', '1', '1659', '0', 'Gegenkonto 1625 - 1658 bei Aufteilung Kreditorenkonto'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1664, 'SKR03', '1', '1660', '0', 'Schuldwechsel'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1665, 'SKR03', '1', '1661', '0', 'Schuldwechsel ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1666, 'SKR03', '1', '1680', '0', 'Schuldwechsel ( 1 bis 5 Jahre )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1667, 'SKR03', '1', '1690', '0', 'Schuldwechsel ( größer 5 Jahre )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1669, 'SKR03', '1', '1700', '0', 'Sonstige Verbindlichkeiten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1670, 'SKR03', '1', '1701', '0', 'Sonstige Verbindlichkeiten ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1671, 'SKR03', '1', '1702', '0', 'Sonstige Verbindlichkeiten ( 1 bis 5 Jahre )'); @@ -598,9 +589,7 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1675, 'SKR03', '1', '1706', '0', 'Darlehen ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1676, 'SKR03', '1', '1707', '0', 'Darlehen ( 1 bis 5 Jahre )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1677, 'SKR03', '1', '1708', '0', 'Darlehen ( größer 5 Jahre )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1679, 'SKR03', '1', '1709', '0', 'Gewinnverfügungskonto stiller Gesellschafter'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1681, 'SKR03', '1', '1710', '0', 'Erhaltene Anzahlungen ( Verbindlichkeiten )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1682, 'SKR03', '1', '1711', '0', 'Erhaltene versteuerte Anzahlungen 7% USt ( Verbindlichkeiten )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1683, 'SKR03', '1', '1716', '0', 'Erhaltene versteuerte Anzahlungen 15% USt ( Verbindlichkeiten )'); @@ -609,7 +598,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1686, 'SKR03', '1', '1719', '0', 'Erhaltene Anzahlungen ( bis 1 Jahr )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1687, 'SKR03', '1', '1720', '0', 'Erhaltene Anzahlungen ( 1 bis 5 Jahre )'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1688, 'SKR03', '1', '1721', '0', 'Erhaltene Anzahlungen ( größer 5 Jahre )'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1690, 'SKR03', '1', '1722', '0', 'Erhaltene Anzahlungen (von Vorräten offen abgesetzt)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1691, 'SKR03', '1', '1730', '0', 'Kreditkartenabrechnung'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1692, 'SKR03', '1', '1731', '0', 'Agenturwarenabrechnung'); @@ -639,7 +627,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1716, 'SKR03', '1', '1755', '0', 'Lohn- und Gehaltsverrechnungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1717, 'SKR03', '1', '1756', '0', 'Lohn- und Gehaltsverrechnung § 11 Abs. 2 EStG für § 4/3 EStG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1718, 'SKR03', '1', '1759', '0', 'Voraussichtliche Beitragsschuld gegenüber den sozialversicherungsträgern'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1720, 'SKR03', '1', '1760', '0', 'Umsatzsteuer nicht fällig'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1721, 'SKR03', '1', '1761', '0', 'Umsatzsteuer nicht fällig 7%'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1722, 'SKR03', '1', '1762', '0', 'Umsatzsteuer nicht fällig aus im Inland steuerpflichtigen EG-Lieferant'); @@ -673,10 +660,8 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1750, 'SKR03', '1', '1790', '0', 'Umsatzsteuer Vorjahr'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1751, 'SKR03', '1', '1791', '0', 'Umsatzsteuer frühere Jahre'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1752, 'SKR03', '1', '1792', '0', 'Sonstige Verrechnungskonten (Interimskonten)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1754, 'SKR03', '1', '1793', '0', 'Verrechnungskonto geleistete Anzahlungen bei Buchung über Kreditkonto'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1755, 'SKR03', '1', '1795', '0', 'Verbindlichkeiten im Rahmen der sozialen Sicherheit (für § 4/3 EStG)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1757, 'SKR03', '1', '1800', '0', 'Privatentnahmen allgemein'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1758, 'SKR03', '1', '1801', '0', 'Privatentnahmen allgemein'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1759, 'SKR03', '1', '1802', '0', 'Privatentnahmen allgemein'); @@ -777,7 +762,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1854, 'SKR03', '1', '1897', '0', 'Privateinlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1855, 'SKR03', '1', '1898', '0', 'Privateinlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1856, 'SKR03', '1', '1899', '0', 'Privateinlagen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1859, 'SKR03', '1', '1900', '0', 'Privatentnahmen allgemein'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1860, 'SKR03', '1', '1901', '0', 'Privatentnahmen allgemein'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1861, 'SKR03', '1', '1902', '0', 'Privatentnahmen allgemein'); @@ -878,14 +862,11 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1956, 'SKR03', '1', '1997', '0', 'Privateinlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1957, 'SKR03', '1', '1998', '0', 'Privateinlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1958, 'SKR03', '1', '1999', '0', 'Privateinlagen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1961, 'SKR03', '2', '2000', '0', 'Außerordentliche Aufwendungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1962, 'SKR03', '2', '2001', '0', 'Außerordentliche Aufwendungen finanzwirksam'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1963, 'SKR03', '2', '2005', '0', 'Außerordentliche Aufwendungen nicht finanzwirksam'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1966, 'SKR03', '2', '2010', '0', 'Betriebsfremde Aufwendungen (soweit nicht außerordentlich)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1967, 'SKR03', '2', '2020', '0', 'Periodenfremde Aufwendungen (soweit nicht außerordentlich)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1970, 'SKR03', '2', '2100', '0', 'Zinsen und ähnliche Aufwendungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1971, 'SKR03', '2', '2103', '0', 'Steuerlich abzugsfähige andere Nebenleistungen zu steuern'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1972, 'SKR03', '2', '2104', '0', 'Steuerlich nicht abzugsfähige andere Nebenleistungen zu Steuern'); @@ -908,15 +889,12 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1989, 'SKR03', '2', '2139', '0', 'Diskontaufwendungen an verbundene Unternehmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1990, 'SKR03', '2', '2140', '0', 'Zinsähnliche Aufwendungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1991, 'SKR03', '2', '2149', '0', 'Zinsähnliche Aufwendungen an verbundene Unternehmen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1993, 'SKR03', '2', '2150', '0', 'Aufwendungen aus Kursdifferenzen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1994, 'SKR03', '2', '2166', '0', 'Aufwendungen Bewertung Finanzmittelfonds'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1995, 'SKR03', '2', '2170', '0', 'Nicht abziehbare Vorsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1996, 'SKR03', '2', '2171', '0', 'Nicht abziehbare Vorsteuer 7%'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1997, 'SKR03', '2', '2175', '0', 'Nicht abziehbare Vorsteuer 16%'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1998, 'SKR03', '2', '2176', '0', 'Nicht abziehbare Vorsteuer 19%'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2001, 'SKR03', '2', '2200', '0', 'Körperschaftsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2002, 'SKR03', '2', '2203', '0', 'Körperschaftsteuer für Vorjahre'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2003, 'SKR03', '2', '2204', '0', 'Körperschaftsteuererstattungen für Vorjahre'); @@ -933,11 +911,9 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2014, 'SKR03', '2', '2280', '0', 'Steuernachzahlungen Vorjahre für Steuern vom Einkommen und Ertrag'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2015, 'SKR03', '2', '2282', '0', 'Steuererstattungen Vorjahre für Steuern vom Einkommen und Ertrag'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2016, 'SKR03', '2', '2284', '0', 'Erträge aus der Auflösung von Rückstellungen für Steuern vom Einkommen und Ertrag'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2018, 'SKR03', '2', '2285', '0', 'Steuernachzahlungen Vorjahre für sonstige Steuern'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2019, 'SKR03', '2', '2287', '0', 'Steuererstattungen Vorjahre für sonstige Steuern'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2020, 'SKR03', '2', '2289', '0', 'Erträge aus der Auflösung von Rückstellungen für sonstige Steuern'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2023, 'SKR03', '2', '2300', '0', 'Sonstige Aufwendungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2024, 'SKR03', '2', '2307', '0', 'Sonstige Aufwendungen betriebsfremde und regelmäßig'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2025, 'SKR03', '2', '2309', '0', 'Sonstige Aufwendungen unregelmässig'); @@ -945,7 +921,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2027, 'SKR03', '2', '2311', '0', 'Anlagenabgänge immaterielle Vermögensgegenstände (Restbuchwert bei Buchverlust)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2028, 'SKR03', '2', '2312', '0', 'Anlagenabgänge Finanzanlagen (Restbuchwert bei Buchverlust)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2029, 'SKR03', '2', '2313', '0', 'Anlagenabgänge Finanzanlagen 100% / 50% nicht abzugsfähig (inländische Kap. Ges.) (Restbuchwert bei Buchverlust)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2031, 'SKR03', '2', '2315', '0', 'Anlagenabgänge Sachanlagen (Restbuchwert bei Buchgewinn)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2032, 'SKR03', '2', '2316', '0', 'Anlagenabgänge immaterielle Vermögensgegenstände (Restbuchwert bei Buchgewinn)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2033, 'SKR03', '2', '2317', '0', 'Anlagenabgänge Finanzanlagen (Restbuchwert bei Buchgewinn)'); @@ -964,7 +939,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2046, 'SKR03', '2', '2348', '0', 'Aufwendungen aus der Zuschreibung von steuerlich niedriger bewerteten Verbindlichkeiten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2047, 'SKR03', '2', '2349', '0', 'Aufwendungen aus der Zuschreibung von steuerlich niedriger bewerteten Rückstellungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2048, 'SKR03', '2', '2350', '0', 'Grundstücksaufwendungen neutral'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2050, 'SKR03', '2', '2375', '0', 'Grundsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2051, 'SKR03', '2', '2380', '0', 'Zuwendungen Spenden steuerlich nicht abziehbar'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2052, 'SKR03', '2', '2381', '0', 'Zuwendungen Spenden für wissenschaftliche und kulturelle Zwecke'); @@ -987,28 +961,18 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2069, 'SKR03', '2', '2407', '0', 'Forderungsverluste 15% USt (übliche Höhe)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2070, 'SKR03', '2', '2408', '0', 'Forderungsverluste aus im Inland steuerpflichtigen EG-Lieferungen 19% USt (übliche Höhe)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2071, 'SKR03', '2', '2409', '0', 'Forderungsverluste aus im Inland steuerpflichtigen EG-Lieferungen 15% USt (übliche Höhe)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2073, 'SKR03', '2', '2430', '0', 'Forderungsverluste unüblich hoch'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2074, 'SKR03', '2', '2450', '0', 'Einstellung in die Pauschalwertberichtigung zu Forderungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2075, 'SKR03', '2', '2451', '0', 'Einstellung in die Einzelwertberichtigung zu Forderungen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2077, 'SKR03', '2', '2490', '0', 'Aufwendungen aus Verlustübernahme'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2079, 'SKR03', '2', '2492', '0', 'Abgeführte Gewinne auf Grund einer Gewinngemeinschaft'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2080, 'SKR03', '2', '2493', '0', 'Abgeführte Gewinnanteile an stille Gesellschafter § 8 GewStG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2081, 'SKR03', '2', '2494', '0', 'Abgeführte Gewinne auf Grund eines Gewinn- oder Teilgewinnabführungsvetrags'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2083, 'SKR03', '2', '2495', '0', 'Einstellungen in die Kapitalrücklage nach den Vorschriften über die vereinfachte Kapitalherabsetzung'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2085, 'SKR03', '2', '2496', '0', 'Einstellung in die gesetzliche Rücklage'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2087, 'SKR03', '2', '2497', '0', 'Einstellungen in satzungsmäßige Rücklagen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2089, 'SKR03', '2', '2498', '0', 'Einstellung in die Rücklage für eigene Anteile'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2091, 'SKR03', '2', '2499', '0', 'Einstellung in andere Gewinnrücklagen'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2094, 'SKR03', '2', '2500', '0', 'Außerordentliche Erträge'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2095, 'SKR03', '2', '2501', '0', 'Außerordentliche Erträge finanzwirksam'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2096, 'SKR03', '2', '2505', '0', 'Außerordentliche Erträge nicht finanzwirksam'); @@ -1020,19 +984,16 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2106, 'SKR03', '2', '2617', '0', 'Gewinne aus Anteilen an nicht steuerbefreiten inländischen Kapitalgesellschaften § 9 Nr. 2a GewStG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2107, 'SKR03', '2', '2618', '0', 'Gewinnanteile aus Mitunternehmerschaften § 9 GewStG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2108, 'SKR03', '2', '2619', '0', 'Erträge aus Beteiligungen an verbundenen Unternehmen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2110, 'SKR03', '2', '2620', '0', 'Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2111, 'SKR03', '2', '2625', '0', 'laufende Erträge aus Anteilen an Kapitalgesellschaften (Finanzanlagevermögen) 100% / 50% steuerfrei (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2112, 'SKR03', '2', '2626', '0', 'Laufende Erträge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2113, 'SKR03', '2', '2649', '0', 'Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögen aus verbundenen Unternehmen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2115, 'SKR03', '2', '2650', '0', 'Sonstige Zinsen und ähnliche Erträge'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2116, 'SKR03', '2', '2655', '0', 'laufende Erträge aus Anteilen an Kapitalgesellschaften (Umlaufvermögen) 100% / 50% steuerfrei (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2117, 'SKR03', '2', '2656', '0', 'laufende Erträge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2118, 'SKR03', '2', '2657', '0', 'Zinserträge § 233a AO'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2119, 'SKR03', '2', '2658', '0', 'Zinserträge § 233a AO Sonderfall Anlage A KSt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2120, 'SKR03', '2', '2659', '0', 'Sonstige Zinsen und ähnliche Erträge aus verbundenen Unternehmen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2122, 'SKR03', '2', '2660', '0', 'Erträge aus Kursdifferenzen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2123, 'SKR03', '2', '2661', '0', 'Nicht realisierbare Währungsdifferenzen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2124, 'SKR03', '2', '2662', '0', 'Realisierte Währungsdifferenzen'); @@ -1043,7 +1004,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2129, 'SKR03', '2', '2667', '0', 'Bank Währungsverlust (Konto)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2130, 'SKR03', '2', '2668', '0', 'Währungsdifferenz zum Kontenausgleich'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2131, 'SKR03', '2', '2669', '0', 'Nicht realisierbare Währungsdifferenzen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2133, 'SKR03', '2', '2670', '0', 'Diskonterträge'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2134, 'SKR03', '2', '2671', '0', 'Bank Bewertungsertrag'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2135, 'SKR03', '2', '2672', '0', 'Rundungsdifferenzen'); @@ -1051,7 +1011,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2137, 'SKR03', '2', '2679', '0', 'Diskonterträge verbundene Unternehmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2138, 'SKR03', '2', '2680', '0', 'Zinsähnliche Erträge'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2139, 'SKR03', '2', '2689', '0', 'Zinsähnliche Erträge aus verbundenen Unternehmen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2142, 'SKR03', '2', '2700', '0', 'Sonstige Erträge'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2143, 'SKR03', '2', '2705', '0', 'Sonstige Erträge betrieblich und regelmäßig'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2144, 'SKR03', '2', '2707', '0', 'Sonstige Erträge betriebsfremd und regelmäßig'); @@ -1082,33 +1041,22 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2169, 'SKR03', '2', '2742', '0', 'Versicherungsentschädigungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2170, 'SKR03', '2', '2743', '0', 'Investitionszuschüsse (steuerpflichtig)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2171, 'SKR03', '2', '2744', '0', 'Investitionszulagen (steuerfrei)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2173, 'SKR03', '2', '2745', '0', 'Erträge aus Kapitalherabsetzung'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2174, 'SKR03', '2', '2746', '0', 'Steuerfreie Erträge aus der Auflösung von Sonderposten mit Rücklageanteil'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2175, 'SKR03', '2', '2747', '0', 'Sonstige steuerfreie Betriebseinnahmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2176, 'SKR03', '2', '2749', '0', 'Erstattungen Aufwendungsausgleichsgesetz'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2177, 'SKR03', '2', '2750', '0', 'Grundstückserträge'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2179, 'SKR03', '2', '2790', '0', 'Erträge aus Verlustübernahme'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2181, 'SKR03', '2', '2792', '0', 'Erhaltene Gewinne auf Grund einer Gewinngemeinschaft'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2182, 'SKR03', '2', '2794', '0', 'Erhaltene Gewinne auf Grund eines Gewinn- oder Teilgewinnabführungsvetrags'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2184, 'SKR03', '2', '2795', '0', 'Entnahmen aus der Kapitalrücklage'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2186, 'SKR03', '2', '2796', '0', 'Entnahmen aus der gesetzlichen Rücklage'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2188, 'SKR03', '2', '2797', '0', 'Entnahmen aus satzungsmäßigen Rücklagen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2190, 'SKR03', '2', '2798', '0', 'Entnahmen aus der Rücklage für eigene Anteile'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2192, 'SKR03', '2', '2799', '0', 'Entnahmen aus anderen Gewinnrücklagen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2194, 'SKR03', '2', '2860', '0', 'Gewinnvortrag nach Verwendung'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2195, 'SKR03', '2', '2868', '0', 'Verlustvortrag nach Verwendung'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2197, 'SKR03', '2', '2869', '0', 'Vortrag auf neue Rechnung (GuV)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2199, 'SKR03', '2', '2870', '0', 'Vorabausschüttung'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2202, 'SKR03', '2', '2890', '0', 'Verrechneter kalkulatorischer Unternehmerlohn'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2203, 'SKR03', '2', '2891', '0', 'Verrechnete kalkulatorische Miete und Pacht'); @@ -1116,11 +1064,9 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2205, 'SKR03', '2', '2893', '0', 'Verrechnete kalkulatorische Abschreibungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2206, 'SKR03', '2', '2894', '0', 'Verrechnete kalkulatorische Wagnisse'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2207, 'SKR03', '2', '2895', '0', 'Verrechneter kalkulatorische Lohn für unentgeltliche Mitarbeiter'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2209, 'SKR03', '2', '2990', '0', 'Aufwendungen/Erträge aus Umrechnungsdifferenzen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2212, 'SKR03', '3', '3000', '0', 'Roh- Hilfs- und Betriebsstoffe'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2213, 'SKR03', '3', '3090', '0', 'Energiestoffe (Fertigung'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2215, 'SKR03', '3', '3100', '0', 'Fremdleistungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2219, 'SKR03', '3', '3110', '2215', 'Bauleistungen eines im Inland ansässigen Unternehmens 7% Vorsteuer und 7% Umsatzsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2220, 'SKR03', '3', '3115', '2215', 'Leistungen eines im Ausland ansässigen Unternehmens 7% Vorsteuer und 7% Umsatzsteuer'); @@ -1142,7 +1088,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2236, 'SKR03', '3', '3151', '2215', 'Erhaltene Skonti aus Leistungen für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird 19% Vorsteuer und 19% Umsatzsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2237, 'SKR03', '3', '3152', '2215', 'Erhaltene Skonti aus Leistungen für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird 16% Vorsteuer und 16% Umsatzsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2238, 'SKR03', '3', '3153', '2215', 'Erhaltene Skonti aus Leistungen für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird ohne Vorsteuer aber mit Umsatzsteuer'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2240, 'SKR03', '3', '3200', '0', 'Wareneingang'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2241, 'SKR03', '3', '3300', '2240', 'Wareneingang 7% Vorsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2242, 'SKR03', '3', '3301', '2240', 'Wareneingang 7% Vorsteuer'); @@ -1273,7 +1218,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2367, 'SKR03', '3', '3725', '2240', 'Nachlässe aus innergemeinschaftlichem Erwerb 19% Vorsteuer und 19% Umsatzsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2368, 'SKR03', '3', '3726', '2240', 'Nachlässe aus innergemeinschaftlichem Erwerb 16% Vorsteuer und 16% Umsatzsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2369, 'SKR03', '3', '3727', '2240', 'Nachlässe aus innergemeinschaftlichem Erwerb 15% Vorsteuer und 15% Umsatzsteuer'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2372, 'SKR03', '3', '3730', '0', 'Erhaltene Skonti'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2373, 'SKR03', '3', '3731', '0', 'Erhaltene Skonti 7% Vorsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2374, 'SKR03', '3', '3735', '0', 'Erhaltene Skonti 16% Vorsteuer'); @@ -1299,7 +1243,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2394, 'SKR03', '3', '3800', '0', 'Bezugsnebenkosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2395, 'SKR03', '3', '3830', '0', 'Leergut'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2396, 'SKR03', '3', '3850', '0', 'Zölle und Einfuhrabgaben'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2399, 'SKR03', '3', '3960', '0', 'Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe sowie bezogene Waren'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2400, 'SKR03', '3', '3961', '0', 'Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe sowie bezogene Waren'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2401, 'SKR03', '3', '3962', '0', 'Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe sowie bezogene Waren'); @@ -1310,7 +1253,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2406, 'SKR03', '3', '3967', '0', 'Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe sowie bezogene Waren'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2407, 'SKR03', '3', '3968', '0', 'Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe sowie bezogene Waren'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2408, 'SKR03', '3', '3969', '0', 'Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe sowie bezogene Waren'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2411, 'SKR03', '3', '3970', '0', 'Bestand Roh- Hilfs- und Betriebsstoffe'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2412, 'SKR03', '3', '3971', '0', 'Bestand Roh- Hilfs- und Betriebsstoffe'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2413, 'SKR03', '3', '3972', '0', 'Bestand Roh- Hilfs- und Betriebsstoffe'); @@ -1321,7 +1263,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2418, 'SKR03', '3', '3977', '0', 'Bestand Roh- Hilfs- und Betriebsstoffe'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2419, 'SKR03', '3', '3978', '0', 'Bestand Roh- Hilfs- und Betriebsstoffe'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2420, 'SKR03', '3', '3979', '0', 'Bestand Roh- Hilfs- und Betriebsstoffe'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2422, 'SKR03', '3', '3980', '0', 'Bestand Waren'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2423, 'SKR03', '3', '3981', '0', 'Bestand Waren'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2424, 'SKR03', '3', '3982', '0', 'Bestand Waren'); @@ -1332,7 +1273,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2429, 'SKR03', '3', '3987', '0', 'Lager Differenzkorrektur Marktwert'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2430, 'SKR03', '3', '3988', '0', 'Lager Bestand Zwischenkonto'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2431, 'SKR03', '3', '3989', '0', 'Bestand Waren'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2434, 'SKR03', '3', '3990', '0', 'Verrechnete Stoffkosten (Gegenkonto zu 4000-99)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2435, 'SKR03', '3', '3991', '0', 'Verrechnete Stoffkosten (Gegenkonto zu 4000-99)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2436, 'SKR03', '3', '3992', '0', 'Verrechnete Stoffkosten (Gegenkonto zu 4000-99)'); @@ -1343,7 +1283,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2441, 'SKR03', '3', '3997', '0', 'Verrechnete Stoffkosten (Gegenkonto zu 4000-99)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2442, 'SKR03', '3', '3998', '0', 'Verrechnete Stoffkosten (Gegenkonto zu 4000-99)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2443, 'SKR03', '3', '3999', '0', 'Verrechnete Stoffkosten (Gegenkonto zu 4000-99)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2446, 'SKR03', '4', '4000', '0', 'Material-und Stoffverbrauch'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2447, 'SKR03', '4', '4001', '2446', 'Material-und Stoffverbrauch'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2448, 'SKR03', '4', '4002', '2446', 'Material-und Stoffverbrauch'); @@ -1444,8 +1383,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2543, 'SKR03', '4', '4097', '2446', 'Material-und Stoffverbrauch'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2544, 'SKR03', '4', '4098', '2446', 'Material-und Stoffverbrauch'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2545, 'SKR03', '4', '4099', '2446', 'Material-und Stoffverbrauch'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2548, 'SKR03', '4', '4100', '0', 'Löhne und Gehälter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2549, 'SKR03', '4', '4110', '2548', 'Löhne'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2550, 'SKR03', '4', '4120', '2548', 'Gehälter'); @@ -1454,11 +1391,9 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2553, 'SKR03', '4', '4126', '2548', 'Tantiemen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2554, 'SKR03', '4', '4127', '2548', 'Geschäftsführergehälter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2555, 'SKR03', '4', '4128', '2548', 'Vergütungen an angestellte Mitunternehmer §15 EStG'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2557, 'SKR03', '4', '4130', '2548', 'Gesetzliche Soziale Aufwendungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2558, 'SKR03', '4', '4137', '2548', 'Gesetzliche soziale Aufwendungen für Mitunternehmer §15 EStG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2559, 'SKR03', '4', '4138', '2548', 'Beiträge zur Berufsgenossenschaft'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2561, 'SKR03', '4', '4139', '2548', 'Ausgleichsabgabe i. S. d. Schwerbehindertengesetz'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2562, 'SKR03', '4', '4140', '2548', 'Freiwillige soziale Aufwendungen lohnsteuerfrei'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2563, 'SKR03', '4', '4145', '2548', 'Freiwillige soziale Aufwendungen lohnsteuerpflichtig'); @@ -1475,8 +1410,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2574, 'SKR03', '4', '4180', '2548', 'Bedienungsgelder'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2575, 'SKR03', '4', '4190', '2548', 'Aushilfslöhne'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2576, 'SKR03', '4', '4199', '2548', 'Pauschale Steuer für Aushilfen'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2579, 'SKR03', '4', '4200', '0', 'Raumkosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2580, 'SKR03', '4', '4210', '2579', 'Miete'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2581, 'SKR03', '4', '4218', '2579', 'Gewerbesteuerlich zu berücksichtigende Miete §8 GewStG'); @@ -1497,9 +1430,7 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2596, 'SKR03', '4', '4301', '2579', 'Nicht abziehbare Vorsteuer 7%'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2597, 'SKR03', '4', '4305', '2579', 'Nicht abziehbare Vorsteuer 16%'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2598, 'SKR03', '4', '4306', '2579', 'Nicht abziehbare Vorsteuer 19%'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2600, 'SKR03', '4', '4320', '2579', 'Gewerbesteuer'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2602, 'SKR03', '4', '4340', '2579', 'Sonstige Betriebssteuern'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2603, 'SKR03', '4', '4350', '2579', 'Verbrauchsteuer'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2604, 'SKR03', '4', '4355', '2579', 'ökosteuer'); @@ -1659,7 +1590,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2758, 'SKR03', '4', '4809', '2579', 'Sonstige Reparaturen und Instandhaltungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2759, 'SKR03', '4', '4810', '2579', 'Mietleasing'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2760, 'SKR03', '4', '4814', '2579', 'Gewerbesteuerlich zu berücksichtigendes Mietleasing § 8 GewStG'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2762, 'SKR03', '4', '4815', '2579', 'Kaufleasing'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2763, 'SKR03', '4', '4820', '2579', 'Abschreibung auf Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2764, 'SKR03', '4', '4821', '2579', 'Abschreibung auf Aufwendungen für die Währungsumstellung auf den Euro'); @@ -1681,7 +1611,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2780, 'SKR03', '4', '4860', '2579', 'Abschreibungen auf aktivierte geringwertiger Wirtschaftsgüter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2781, 'SKR03', '4', '4862', '2579', 'Abschreibung auf Sammelposten WG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2782, 'SKR03', '4', '4865', '2579', 'Außerplanmäßige Abschreibungen auf aktivierte geringwertiger Wirtschaftsgüter'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2784, 'SKR03', '4', '4870', '2579', 'Abschreibungen auf Finanzanlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2785, 'SKR03', '4', '4871', '2579', 'Abschreibungen auf Finanzanlagen 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2786, 'SKR03', '4', '4872', '2579', 'Abschreibungen auf Grund von Verlustanteilen an Mitunternehmerschaften § 8 GewStG'); @@ -1690,7 +1619,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2789, 'SKR03', '4', '4875', '2579', 'Abschreibungen auf Wertpapiere des Umlaufvermögens'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2790, 'SKR03', '4', '4876', '2579', 'Abschreibungen auf Wertpapiere des Umlaufvermögens 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2791, 'SKR03', '4', '4879', '2579', 'Vorwegnahme künftiger Wertschwankungen bei Wertpapieren des Umlaufvermögens'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2793, 'SKR03', '4', '4880', '2579', 'Abschreibungen auf Umlaufvermögen ohne Wertpapiere (soweit unübliche Höhe)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2794, 'SKR03', '4', '4882', '2579', 'Abschreibungen auf Umlaufvermögen steuerrechtlich bedingt (soweit unübliche Höhe)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2795, 'SKR03', '4', '4885', '2579', 'Vorwegnahme künftiger Wertschwankungen im Umlaufvermögen außer Vorräte und Wertpapiere des Umlaufvermögens'); @@ -1711,7 +1639,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2810, 'SKR03', '4', '4949', '2579', 'Haftungsvergütung an Mitunternehmer § 15 EStG'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2811, 'SKR03', '4', '4950', '2579', 'Rechts- und Beratungskosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2812, 'SKR03', '4', '4955', '2579', 'Buchführungskosten'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2814, 'SKR03', '4', '4957', '2579', 'Abschluss- und Prüfungskosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2815, 'SKR03', '4', '4960', '2579', 'Mieten für Einrichtungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2816, 'SKR03', '4', '4964', '2579', 'Aufwendungen für die zeitlich befristetete Überlassung von Rechten (Lizenzen,Konzessionen)'); @@ -1724,32 +1651,24 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2823, 'SKR03', '4', '4976', '2579', 'Aufwendungen aus der Veräußerung von Anteilen an Kapitalgesellschaften 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2824, 'SKR03', '4', '4980', '2579', 'Betriebsbedarf'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2825, 'SKR03', '4', '4985', '2579', 'Werkzeuge und Kleingeräte'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2828, 'SKR03', '4', '4990', '0', 'Kalkulatorischer Unternehmerlohn'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2829, 'SKR03', '4', '4991', '0', 'Kalkulatorische Miete und Pacht'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2830, 'SKR03', '4', '4992', '0', 'Kalkulatorische Zinsen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2831, 'SKR03', '4', '4993', '0', 'Kalkulatorische Abschreibungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2832, 'SKR03', '4', '4994', '0', 'Kalkulatorische Wagnisse'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2833, 'SKR03', '4', '4995', '0', 'Kalkulatorischer Lohn für unentgeltliche Mitarbeiter'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2836, 'SKR03', '4', '4996', '0', 'Herstellungskosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2837, 'SKR03', '4', '4997', '0', 'Verwaltungskosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2838, 'SKR03', '4', '4998', '0', 'Vertriebskosten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2839, 'SKR03', '4', '4999', '0', 'Gegenkonto 4996 - 4998'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2841, 'SKR03', '7', '7000', '0', 'Unfertige Erzeugnisse und Leistungen (Bestand)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2842, 'SKR03', '7', '7050', '2841', 'Unfertige Erzeugnisse (Bestand)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2843, 'SKR03', '7', '7080', '2841', 'Unfertige Leistungen (Bestand)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2845, 'SKR03', '7', '7090', '2841', 'In Ausführung befindliche Bauaufträge'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2847, 'SKR03', '7', '7095', '2841', 'In Arbeit befindliche Aufträge'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2849, 'SKR03', '7', '7100', '0', 'Fertige Erzeugnisse und Waren (Bestand)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2850, 'SKR03', '7', '7110', '2849', 'Fertige Erzeugnisse (Bestand)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2851, 'SKR03', '7', '7140', '2849', 'Waren (Bestand)'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2854, 'SKR03', '8', '8000', '0', '(Zur freien Verfügung)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2855, 'SKR03', '8', '8001', '2854', '(Zur freien Verfügung)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2856, 'SKR03', '8', '8002', '2854', '(Zur freien Verfügung)'); @@ -1901,7 +1820,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3002, 'SKR03', '8', '8348', '2854', 'Erlöse 16% USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3003, 'SKR03', '8', '8349', '2854', 'Erlöse 16% USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3004, 'SKR03', '8', '8400', '2854', 'Erlöse 19% USt'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3006, 'SKR03', '8', '8401', '2854', 'Vorausberechnete Einnahmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3007, 'SKR03', '8', '8402', '2854', 'Sontige Einnahmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3008, 'SKR03', '8', '8403', '2854', 'Konto Kasse Ertrag'); @@ -1926,12 +1844,10 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3028, 'SKR03', '8', '8576', '2854', 'Provision sonstige Erträge 7 % USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3029, 'SKR03', '8', '8578', '2854', 'Provision sonstige Erträge 16 % USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3030, 'SKR03', '8', '8579', '2854', 'Provision sonstige Erträge 19 % USt'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3033, 'SKR03', '8', '8580', '2854', 'Statistisches Konto Erlöse zum Allgemeinen Umsatzsteuerersatz (EüR)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3034, 'SKR03', '8', '8581', '2854', 'Statistisches Konto Erlöse zum ermäßigten Umsatzsteuerersatz (EüR)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3035, 'SKR03', '8', '8582', '2854', 'Statistisches Konto Erlöse steuerfrei und nicht steuerbar (EüR)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3036, 'SKR03', '8', '8589', '2854', 'Gegenkonto 8580-8582 bei Aufteilung der Erlöse nach Steuersätzen (EüR)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3038, 'SKR03', '8', '8590', '2854', 'Verrechnete sonstige Sachbezüge (keine Waren)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3039, 'SKR03', '8', '8591', '2854', 'Sachbezüge 7% USt (Waren)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3040, 'SKR03', '8', '8595', '2854', 'Sachbezüge 19% USt (Waren)'); @@ -1960,11 +1876,8 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3063, 'SKR03', '8', '8644', '2854', 'Sonstige Erlöse betrieblich und regelmäßig 19% USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3064, 'SKR03', '8', '8648', '2854', 'Sonstige Erlöse betrieblich und regelmäßig 16% USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3065, 'SKR03', '8', '8649', '2854', 'Sonstige Erlöse betrieblich und regelmäßig 16% USt'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3067, 'SKR03', '8', '8650', '2854', 'Erlöse Zinsen und Diskontspesen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3068, 'SKR03', '8', '8660', '2854', 'Erlöse Zinsen und Diskontspesen aus verbundenen Unternehmen'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3071, 'SKR03', '8', '8700', '0', 'Erlösschmälerungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3072, 'SKR03', '8', '8701', '3071', 'Nicht abgerechnete Einnahmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3073, 'SKR03', '8', '8705', '3071', 'Erlösschmälerungen'); @@ -2002,7 +1915,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3105, 'SKR03', '8', '8791', '3071', 'Gewährte Rabatte 19% USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3106, 'SKR03', '8', '8794', '3071', 'Gewährte Rabatte 16% USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3107, 'SKR03', '8', '8795', '3071', 'Gewährte Rabatte 16% USt'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3109, 'SKR03', '8', '8800', '0', 'Erlöse aus Verkäufen Sachanlagevermögen (Bei Buchverlust)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3110, 'SKR03', '8', '8801', '3109', 'Erlöse aus Verkäufen Sachanlagevermögen 19% USt (Bei Buchverlust)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3111, 'SKR03', '8', '8802', '3109', 'Erlöse aus Verkäufen Sachanlagevermögen 19% USt (Bei Buchverlust)'); @@ -2078,17 +1990,12 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3181, 'SKR03', '8', '8949', '0', 'Unentgeltliche Zuwendung von Waren ohne USt'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3182, 'SKR03', '8', '8950', '0', 'Nicht steuerbare Umsätze (Innenumsätze)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3183, 'SKR03', '8', '8955', '0', 'Umsatzsteuervergütungen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3185, 'SKR03', '8', '8960', '0', 'Bestandsveränderungen- unfertige Erzeugnisse'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3186, 'SKR03', '8', '8970', '0', 'Bestandsveränderungen- unfertige Leistungen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3188, 'SKR03', '8', '8975', '0', 'Bestandsveränderungen - in Ausführung befindliche Bauaufträge'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3190, 'SKR03', '8', '8977', '0', 'Bestandsveränderungen - in Arbeit befindliche Aufträge'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3191, 'SKR03', '8', '8980', '0', 'Bestandsveränderungen - fertige Erzeugnisse'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3192, 'SKR03', '8', '8990', '0', 'Andere aktivierte Eigenleistungen'); - - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3195, 'SKR03', '9', '9000', '0', 'Saldenvorträge Sachkonten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3196, 'SKR03', '9', '9001', '3195', 'Saldenvorträge Sachkonten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3197, 'SKR03', '9', '9002', '3195', 'Saldenvorträge Sachkonten'); @@ -2118,7 +2025,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3221, 'SKR03', '9', '9096', '3215', 'Offene Posten aus 1996'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3222, 'SKR03', '9', '9097', '3215', 'Offene Posten aus 1997'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3223, 'SKR03', '9', '9098', '3215', 'Offene Posten aus 1998'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3225, 'SKR03', '9', '9101', '3195', 'Verkaufstage'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3226, 'SKR03', '9', '9102', '3195', 'Anzahl der Barkunden'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3227, 'SKR03', '9', '9103', '3195', 'Beschäftigte Personen'); @@ -2134,17 +2040,13 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3237, 'SKR03', '9', '9140', '3195', 'Auftragsbestand'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3238, 'SKR03', '9', '9190', '3195', 'Gegenkonto für statistischen Mengeneinheiten Konten 9101 - 9107 und Konten 9116 - 9118'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3239, 'SKR03', '9', '9199', '3195', 'Gegenkonto zu Konten 9120 9135 - 9140'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3241, 'SKR03', '9', '9200', '3195', 'Beschäftigte Personen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3242, 'SKR03', '9', '9209', '3195', 'Gegenkonto zu 9200'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3243, 'SKR03', '9', '9210', '3195', 'Produktive Löhne'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3244, 'SKR03', '9', '9219', '3195', 'Gegenkonto zu 9210'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3247, 'SKR03', '9', '9220', '3195', 'Gezeichnetes Kapital in DM (Art. 42 Abs. 3 S. 1 EGHGB)'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3249, 'SKR03', '9', '9221', '3195', 'Gezeichnetes Kapital in Euro (Art. 42 Abs. 3 S. 2 EGHGB)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3250, 'SKR03', '9', '9229', '3195', 'Gegenkonto zu Konten 9022 - 9221'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3252, 'SKR03', '9', '9230', '3195', 'Baukostenzuschüsse'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3253, 'SKR03', '9', '9232', '3195', 'Investitionszulagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3254, 'SKR03', '9', '9234', '3195', 'Investitionszuschüsse'); @@ -2158,16 +2060,13 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3262, 'SKR03', '9', '9246', '3195', 'Forderungen aus Verkäufen immaterieller Vermögensgegenständen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3263, 'SKR03', '9', '9247', '3195', 'Forderungen aus Verkäufe von Finanzanlagen bei sonstigen Vermögensgegenständen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3264, 'SKR03', '9', '9249', '3195', 'Gegenkonto zu Konten 9245 - 9247'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3266, 'SKR03', '9', '9250', '3195', 'Eigenkapitalersetzende Gesellschafterdarlehen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3267, 'SKR03', '9', '9255', '3195', 'Ungesicherte Gesellschafterdarlehen mit Restlaufzeit größer 5 Jahre'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3268, 'SKR03', '9', '9259', '3195', 'Gegenkonto zu 9250 und 9255'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3270, 'SKR03', '9', '9260', '3195', 'Kurzfristige Rückstellungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3271, 'SKR03', '9', '9262', '3195', 'Mittelfristige Rückstellungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3272, 'SKR03', '9', '9264', '3195', 'Langfristige Rückstellungen außer Pensionen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3273, 'SKR03', '9', '9269', '3195', 'Gegenkonto zu Konten 9260 - 9268'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3275, 'SKR03', '9', '9270', '3195', 'Gegenkonto zu 9271 bis 9278 (soll-Buchung)'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3276, 'SKR03', '9', '9271', '3195', 'Verbindlichkeiten aus der Begebung und übertragung von Wechsel'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3277, 'SKR03', '9', '9272', '3195', 'Verbindlichkeiten aus der Begebung und übertragung von Wechseln gegenüber verbundenen Unternehmen'); @@ -2178,7 +2077,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3282, 'SKR03', '9', '9277', '3195', 'Haftung aus der Bestellung von Sicherheiten für fremde Verbindlichkeiten'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3283, 'SKR03', '9', '9278', '3195', 'Haftung aus der Bestellung von Sicherheiten für fremde Verbindlichkeiten gegenüber verbundenen Unternehmen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3284, 'SKR03', '9', '9279', '3195', 'Verpflichtungen aus Trendhandvermögen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3286, 'SKR03', '9', '9280', '3195', 'Gegenkonto zu Konten 9281 - 9284'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3287, 'SKR03', '9', '9281', '3195', 'Verpflichtungen aus Miet- und Leasingverträgen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3288, 'SKR03', '9', '9282', '3195', 'Verpflichtungen aus Miet- und Leasingverträgen gegenüber verbundenen Unternehmen'); @@ -2192,10 +2090,8 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3296, 'SKR03', '9', '9291', '3195', 'Gegenkonto zu 9290'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3297, 'SKR03', '9', '9292', '3195', 'Statistisches Konto Fremdgeld'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3298, 'SKR03', '9', '9293', '3195', 'Gegenkonto zu 9292'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3300, 'SKR03', '9', '9295', '3195', 'Einlagen stiller Gesellschafter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3302, 'SKR03', '9', '9297', '3195', 'Steuerrechtlicher Ausgleichsposten'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3304, 'SKR03', '9', '9400', '3195', 'Privatentnahmen Allgemein'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3305, 'SKR03', '9', '9401', '3195', 'Privatentnahmen Allgemein'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3306, 'SKR03', '9', '9402', '3195', 'Privatentnahmen Allgemein'); @@ -2296,7 +2192,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3401, 'SKR03', '9', '9497', '3195', 'Privateinlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3402, 'SKR03', '9', '9498', '3195', 'Privateinlagen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3403, 'SKR03', '9', '9499', '3195', 'Privateinlagen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3405, 'SKR03', '9', '9500', '3195', 'Anteil für Konto 0900 Teilhafter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3406, 'SKR03', '9', '9501', '3195', 'Anteil für Konto 0901 Teilhafter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3407, 'SKR03', '9', '9502', '3195', 'Anteil für Konto 0902 Teilhafter'); @@ -2569,7 +2464,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3674, 'SKR03', '9', '9799', '3195', 'Restanteil Teilhafter'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3675, 'SKR03', '9', '9800', '3195', 'Lösch- und Korrekturschlüssel'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3676, 'SKR03', '9', '9801', '3195', 'Lösch- und Korrekturschlüssel'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3678, 'SKR03', '9', '9810', '3195', 'Gesellschafter Darlehen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3679, 'SKR03', '9', '9811', '3195', 'Gesellschafter Darlehen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3680, 'SKR03', '9', '9812', '3195', 'Gesellschafter Darlehen'); @@ -2600,7 +2494,6 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3705, 'SKR03', '9', '9837', '3195', 'Verrechnungskonto für Einzahlungsverpflichtungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3706, 'SKR03', '9', '9838', '3195', 'Verrechnungskonto für Einzahlungsverpflichtungen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3707, 'SKR03', '9', '9839', '3195', 'Verrechnungskonto für Einzahlungsverpflichtungen'); - INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3709, 'SKR03', '9', '9840', '3195', 'Gesellschafter-Darlehen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3710, 'SKR03', '9', '9841', '3195', 'Gesellschafter-Darlehen'); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3711, 'SKR03', '9', '9842', '3195', 'Gesellschafter-Darlehen'); @@ -2705,6 +2598,11 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3820, 'SKR03', '9', '9959', '3195', 'Ausstehende Einlagen auf das Kommandit-Kapital eingefordert'); + + + + + -- SKR04 -- Some lines of SKR04 has been disabled because the field account_parent were wrong or there is a doubt, it must be the rowid of parent line and not the account_number of parent line diff --git a/htdocs/install/mysql/data/llx_accounting_account_fr.sql b/htdocs/install/mysql/data/llx_accounting_account_fr.sql index d49e509a5be..4520969f82b 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_fr.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_fr.sql @@ -136,7 +136,7 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 93,'PCG99-ABREGE','INCOME', '75', '1407', 'Autres produits de gestion courante', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 94,'PCG99-ABREGE','INCOME', '753', '93', 'Jetons de présence et rémunérations d''administrateurs, gérants,...', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 95,'PCG99-ABREGE','INCOME', '754', '93', 'Ristournes perçues des coopératives', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 96,'PCG99-ABREGE','INCOME', '755', '93', 'Quotes-parts de résultat sur opérations faites en commun', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 96,'PCG99-ABREGE','INCOME', '755', '93', 'Quotes-parts de résultat sur opérations faites en commun', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 97,'PCG99-ABREGE','INCOME', '76', '1407', 'Produits financiers', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 98,'PCG99-ABREGE','INCOME', '77', '1407', 'Produits exceptionnels', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 99,'PCG99-ABREGE','INCOME', '781', '1407', 'Reprises sur amortissements et provisions', 1); diff --git a/htdocs/install/mysql/data/llx_accounting_account_gb.sql b/htdocs/install/mysql/data/llx_accounting_account_gb.sql index 35c245efa95..fc2acf12395 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_gb.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_gb.sql @@ -26,10 +26,10 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71501, 'ENG-BASE', 'CAPIT', '1', '0', 'Equity, provisions for liabilities and charges and liabilities at more than one year', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71502, 'ENG-BASE', 'IMMO', '2', '0', 'Administration fees.Fixed assets and receivables over one year', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71503, 'ENG-BASE', 'STOCK', '3', '0', 'Stock and orders running', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71504, 'ENG-BASE', 'TIERS', '4', '0', 'Amounts receivable and payable within one year', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71504, 'ENG-BASE', 'THIRDPARTY', '4', '0', 'Amounts receivable and payable within one year', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71505, 'ENG-BASE', 'FINAN', '5', '0', 'Placing of cash and cash equivalents', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71506, 'ENG-BASE', 'CHARGE','6', '0', 'Charges', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71507, 'ENG-BASE', 'PROD', '7', '0', 'Products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71506, 'ENG-BASE', 'EXPENSE','6', '0', 'Charges', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71507, 'ENG-BASE', 'INCOME', '7', '0', 'Products', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70103, 'ENG-BASE', 'CAPIT', '10', '71501', 'Capital and reserves', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70104, 'ENG-BASE', 'CAPIT', '101', '70103', 'Capital', 1); @@ -158,70 +158,70 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70227, 'ENG-BASE', 'STOCK', '394', '70223', 'Provisions for depreciation of work in process', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70228, 'ENG-BASE', 'STOCK', '395', '70223', 'Provisions for depreciation of inventories of products', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70229, 'ENG-BASE', 'STOCK', '397', '70223', 'Provisions for depreciation of inventories of goods', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70230, 'ENG-BASE', 'TIERS', '40', '71504', 'Accounts payable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70231, 'ENG-BASE', 'TIERS', '400', '70230', 'Accounts payable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70232, 'ENG-BASE', 'TIERS', '401', '70230', 'Suppliers', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70233, 'ENG-BASE', 'TIERS', '403', '70230', 'Suppliers - Payables', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70234, 'ENG-BASE', 'TIERS', '404', '70230', 'Suppliers of fixed assets', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70235, 'ENG-BASE', 'TIERS', '405', '70230', 'Capital Suppliers - Payables', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70236, 'ENG-BASE', 'TIERS', '408', '70230', 'Supplier invoices not yet received', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70237, 'ENG-BASE', 'TIERS', '409', '70230', 'Debtors suppliers', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70238, 'ENG-BASE', 'TIERS', '41', '71504', 'Accounts receivable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70239, 'ENG-BASE', 'TIERS', '410', '70238', 'Customers and Related Accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70240, 'ENG-BASE', 'TIERS', '411', '70238', 'Customers', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70241, 'ENG-BASE', 'TIERS', '413', '70238', 'Accounts Receivable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70242, 'ENG-BASE', 'TIERS', '416', '70238', 'Doubtful or contentious customers', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70243, 'ENG-BASE', 'TIERS', '418', '70238', 'Customers - Products not yet billed', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70244, 'ENG-BASE', 'TIERS', '419', '70238', 'Accounts payable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70245, 'ENG-BASE', 'TIERS', '42', '71504', 'Personnel and related accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70246, 'ENG-BASE', 'TIERS', '421', '70245', 'Staff - Remuneration due', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70247, 'ENG-BASE', 'TIERS', '422', '70245', 'Works councils, establishment, ...', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70248, 'ENG-BASE', 'TIERS', '424', '70245', 'Employee participation in results', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70249, 'ENG-BASE', 'TIERS', '425', '70245', 'Staff - Advances and Advances', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70250, 'ENG-BASE', 'TIERS', '426', '70245', 'Staff - Deposits', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70251, 'ENG-BASE', 'TIERS', '427', '70245', 'Staff - Oppositions', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70252, 'ENG-BASE', 'TIERS', '428', '70245', 'Personnel - Accrued expenses and accrued income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70253, 'ENG-BASE', 'TIERS', '43', '71504', 'Social security and other social organizations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70254, 'ENG-BASE', 'TIERS', '431', '70253', 'Social Security', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70255, 'ENG-BASE', 'TIERS', '437', '70253', 'Other social organizations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70256, 'ENG-BASE', 'TIERS', '438', '70253', 'Social organizations - Accrued expenses and accrued income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70257, 'ENG-BASE', 'TIERS', '44', '71504', 'State and other public authorities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70258, 'ENG-BASE', 'TIERS', '441', '70257', 'Status - Grants Receivable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70259, 'ENG-BASE', 'TIERS', '442', '70257', 'Statement - Taxes and taxes recoverable on third parties', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70260, 'ENG-BASE', 'TIERS', '443', '70257', 'Special operations with the State, public authorities, international organizations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70261, 'ENG-BASE', 'TIERS', '444', '70257', 'State - Income taxes', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70262, 'ENG-BASE', 'TIERS', '445', '70257', 'State - Taxes on turnover', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70263, 'ENG-BASE', 'TIERS', '446', '70257', 'Bonded Bonds', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70264, 'ENG-BASE', 'TIERS', '447', '70257', 'Other taxes, duties and similar payments', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70265, 'ENG-BASE', 'TIERS', '448', '70257', 'Statement of Accounts Payable and Accrued Income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70266, 'ENG-BASE', 'TIERS', '449', '70257', 'Emission quotas to be returned to the State', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70267, 'ENG-BASE', 'TIERS', '45', '71504', 'Group and Associates', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70268, 'ENG-BASE', 'TIERS', '451', '70267', 'Group', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70269, 'ENG-BASE', 'TIERS', '455', '70267', 'Associates - Current Accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70270, 'ENG-BASE', 'TIERS', '456', '70267', 'Associates - Capital transactions', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70271, 'ENG-BASE', 'TIERS', '457', '70267', 'Associates - Dividends payable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70272, 'ENG-BASE', 'TIERS', '458', '70267', 'Associates- Joint and EIG Operations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70273, 'ENG-BASE', 'TIERS', '46', '71504', 'Miscellaneous receivables and creditors', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70274, 'ENG-BASE', 'TIERS', '462', '70273', 'Receivables on disposals of fixed assets', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70275, 'ENG-BASE', 'TIERS', '464', '70273', 'Debts on acquisitions of marketable securities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70276, 'ENG-BASE', 'TIERS', '465', '70273', 'Receivables on disposals of marketable securities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70277, 'ENG-BASE', 'TIERS', '467', '70273', 'Other accounts receivable or payable', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70278, 'ENG-BASE', 'TIERS', '468', '70273', 'Miscellaneous - Accrued expenses and accrued income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70279, 'ENG-BASE', 'TIERS', '47', '71504', 'Transition or suspense accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70280, 'ENG-BASE', 'TIERS', '471', '70279', 'Waiting Accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70281, 'ENG-BASE', 'TIERS', '476', '70279', 'Conversion Difference - Assets', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70282, 'ENG-BASE', 'TIERS', '477', '70279', 'Translation differences - Liabilities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70283, 'ENG-BASE', 'TIERS', '478', '70279', 'Other transitional accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70284, 'ENG-BASE', 'TIERS', '48', '71504', 'regularisation account', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70285, 'ENG-BASE', 'TIERS', '481', '70284', 'Expenses to be spread over several financial years', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70286, 'ENG-BASE', 'TIERS', '486', '70284', 'Prepaid expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70287, 'ENG-BASE', 'TIERS', '487', '70284', 'Deferred income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70288, 'ENG-BASE', 'TIERS', '488', '70284', 'Accounts for the periodic distribution of expenses and revenues', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70289, 'ENG-BASE', 'TIERS', '489', '70284', 'Emission allowances allocated by the State', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70290, 'ENG-BASE', 'TIERS', '49', '71504', 'Provisions for depreciation of third party accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70291, 'ENG-BASE', 'TIERS', '491', '70290', 'Provisions for depreciation of customer accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70292, 'ENG-BASE', 'TIERS', '495', '70290', 'Provisions for impairment of group and associate accounts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70293, 'ENG-BASE', 'TIERS', '496', '70290', 'Provisions for depreciation of accounts receivable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70230, 'ENG-BASE', 'THIRDPARTY', '40', '71504', 'Accounts payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70231, 'ENG-BASE', 'THIRDPARTY', '400', '70230', 'Accounts payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70232, 'ENG-BASE', 'THIRDPARTY', '401', '70230', 'Suppliers', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70233, 'ENG-BASE', 'THIRDPARTY', '403', '70230', 'Suppliers - Payables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70234, 'ENG-BASE', 'THIRDPARTY', '404', '70230', 'Suppliers of fixed assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70235, 'ENG-BASE', 'THIRDPARTY', '405', '70230', 'Capital Suppliers - Payables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70236, 'ENG-BASE', 'THIRDPARTY', '408', '70230', 'Supplier invoices not yet received', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70237, 'ENG-BASE', 'THIRDPARTY', '409', '70230', 'Debtors suppliers', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70238, 'ENG-BASE', 'THIRDPARTY', '41', '71504', 'Accounts receivable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70239, 'ENG-BASE', 'THIRDPARTY', '410', '70238', 'Customers and Related Accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70240, 'ENG-BASE', 'THIRDPARTY', '411', '70238', 'Customers', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70241, 'ENG-BASE', 'THIRDPARTY', '413', '70238', 'Accounts Receivable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70242, 'ENG-BASE', 'THIRDPARTY', '416', '70238', 'Doubtful or contentious customers', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70243, 'ENG-BASE', 'THIRDPARTY', '418', '70238', 'Customers - Products not yet billed', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70244, 'ENG-BASE', 'THIRDPARTY', '419', '70238', 'Accounts payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70245, 'ENG-BASE', 'THIRDPARTY', '42', '71504', 'Personnel and related accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70246, 'ENG-BASE', 'THIRDPARTY', '421', '70245', 'Staff - Remuneration due', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70247, 'ENG-BASE', 'THIRDPARTY', '422', '70245', 'Works councils, establishment, ...', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70248, 'ENG-BASE', 'THIRDPARTY', '424', '70245', 'Employee participation in results', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70249, 'ENG-BASE', 'THIRDPARTY', '425', '70245', 'Staff - Advances and Advances', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70250, 'ENG-BASE', 'THIRDPARTY', '426', '70245', 'Staff - Deposits', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70251, 'ENG-BASE', 'THIRDPARTY', '427', '70245', 'Staff - Oppositions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70252, 'ENG-BASE', 'THIRDPARTY', '428', '70245', 'Personnel - Accrued expenses and accrued income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70253, 'ENG-BASE', 'THIRDPARTY', '43', '71504', 'Social security and other social organizations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70254, 'ENG-BASE', 'THIRDPARTY', '431', '70253', 'Social Security', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70255, 'ENG-BASE', 'THIRDPARTY', '437', '70253', 'Other social organizations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70256, 'ENG-BASE', 'THIRDPARTY', '438', '70253', 'Social organizations - Accrued expenses and accrued income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70257, 'ENG-BASE', 'THIRDPARTY', '44', '71504', 'State and other public authorities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70258, 'ENG-BASE', 'THIRDPARTY', '441', '70257', 'Status - Grants Receivable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70259, 'ENG-BASE', 'THIRDPARTY', '442', '70257', 'Statement - Taxes and taxes recoverable on third parties', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70260, 'ENG-BASE', 'THIRDPARTY', '443', '70257', 'Special operations with the State, public authorities, international organizations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70261, 'ENG-BASE', 'THIRDPARTY', '444', '70257', 'State - Income taxes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70262, 'ENG-BASE', 'THIRDPARTY', '445', '70257', 'State - Taxes on turnover', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70263, 'ENG-BASE', 'THIRDPARTY', '446', '70257', 'Bonded Bonds', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70264, 'ENG-BASE', 'THIRDPARTY', '447', '70257', 'Other taxes, duties and similar payments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70265, 'ENG-BASE', 'THIRDPARTY', '448', '70257', 'Statement of Accounts Payable and Accrued Income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70266, 'ENG-BASE', 'THIRDPARTY', '449', '70257', 'Emission quotas to be returned to the State', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70267, 'ENG-BASE', 'THIRDPARTY', '45', '71504', 'Group and Associates', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70268, 'ENG-BASE', 'THIRDPARTY', '451', '70267', 'Group', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70269, 'ENG-BASE', 'THIRDPARTY', '455', '70267', 'Associates - Current Accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70270, 'ENG-BASE', 'THIRDPARTY', '456', '70267', 'Associates - Capital transactions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70271, 'ENG-BASE', 'THIRDPARTY', '457', '70267', 'Associates - Dividends payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70272, 'ENG-BASE', 'THIRDPARTY', '458', '70267', 'Associates- Joint and EIG Operations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70273, 'ENG-BASE', 'THIRDPARTY', '46', '71504', 'Miscellaneous receivables and creditors', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70274, 'ENG-BASE', 'THIRDPARTY', '462', '70273', 'Receivables on disposals of fixed assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70275, 'ENG-BASE', 'THIRDPARTY', '464', '70273', 'Debts on acquisitions of marketable securities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70276, 'ENG-BASE', 'THIRDPARTY', '465', '70273', 'Receivables on disposals of marketable securities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70277, 'ENG-BASE', 'THIRDPARTY', '467', '70273', 'Other accounts receivable or payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70278, 'ENG-BASE', 'THIRDPARTY', '468', '70273', 'Miscellaneous - Accrued expenses and accrued income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70279, 'ENG-BASE', 'THIRDPARTY', '47', '71504', 'Transition or suspense accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70280, 'ENG-BASE', 'THIRDPARTY', '471', '70279', 'Waiting Accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70281, 'ENG-BASE', 'THIRDPARTY', '476', '70279', 'Conversion Difference - Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70282, 'ENG-BASE', 'THIRDPARTY', '477', '70279', 'Translation differences - Liabilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70283, 'ENG-BASE', 'THIRDPARTY', '478', '70279', 'Other transitional accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70284, 'ENG-BASE', 'THIRDPARTY', '48', '71504', 'regularisation account', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70285, 'ENG-BASE', 'THIRDPARTY', '481', '70284', 'Expenses to be spread over several financial years', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70286, 'ENG-BASE', 'THIRDPARTY', '486', '70284', 'Prepaid expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70287, 'ENG-BASE', 'THIRDPARTY', '487', '70284', 'Deferred income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70288, 'ENG-BASE', 'THIRDPARTY', '488', '70284', 'Accounts for the periodic distribution of expenses and revenues', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70289, 'ENG-BASE', 'THIRDPARTY', '489', '70284', 'Emission allowances allocated by the State', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70290, 'ENG-BASE', 'THIRDPARTY', '49', '71504', 'Provisions for depreciation of third party accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70291, 'ENG-BASE', 'THIRDPARTY', '491', '70290', 'Provisions for depreciation of customer accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70292, 'ENG-BASE', 'THIRDPARTY', '495', '70290', 'Provisions for impairment of group and associate accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70293, 'ENG-BASE', 'THIRDPARTY', '496', '70290', 'Provisions for depreciation of accounts receivable', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70294, 'ENG-BASE', 'FINAN', '50', '71505', 'Marketable securities', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70295, 'ENG-BASE', 'FINAN', '501', '70294', 'Shares in related companies', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70296, 'ENG-BASE', 'FINAN', '502', '70294', 'Treasury shares', 1); @@ -250,120 +250,120 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70319, 'ENG-BASE', 'FINAN', '58', '71505', 'Internal transfers', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70320, 'ENG-BASE', 'FINAN', '59', '71505', 'Provisions for impairment of financial accounts', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70321, 'ENG-BASE', 'FINAN', '590', '70320', 'Provisions for depreciation of marketable securities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70322, 'ENG-BASE', 'CHARGE', '60', '71506', 'Shopping', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70323, 'ENG-BASE', 'CHARGE', '601', '70322', 'Stored Procurement - Raw Materials (and Supplies)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70324, 'ENG-BASE', 'CHARGE', '602', '70322', 'Stored Procurement - Other Supplies', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70325, 'ENG-BASE', 'CHARGE', '603', '70322', 'Inventory Changes (Supplies and Commodities)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70326, 'ENG-BASE', 'CHARGE', '604', '70322', 'Stored Procurement - Raw Materials (and Supplies)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70327, 'ENG-BASE', 'CHARGE', '605', '70322', 'Purchase of equipment, works and equipment', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70328, 'ENG-BASE', 'CHARGE', '606', '70322', 'Non-stock purchases of materials and supplies', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70329, 'ENG-BASE', 'CHARGE', '607', '70322', 'Purchases of goods', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70330, 'ENG-BASE', 'CHARGE', '608', '70322', 'Reserved account, where applicable, to the recapitulation of incidental expenses included in purchases', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70331, 'ENG-BASE', 'CHARGE', '609', '70322', 'Discounts, rebates and rebates obtained on purchases', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70332, 'ENG-BASE', 'CHARGE', '61', '71506', 'Outside services', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70333, 'ENG-BASE', 'CHARGE', '611', '70332', 'General subcontracting', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70334, 'ENG-BASE', 'CHARGE', '612', '70332', 'Lease payments', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70335, 'ENG-BASE', 'CHARGE', '613', '70332', 'Rentals', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70336, 'ENG-BASE', 'CHARGE', '614', '70332', 'Rental and condominium expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70337, 'ENG-BASE', 'CHARGE', '615', '70332', 'Maintenance and repairs', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70338, 'ENG-BASE', 'CHARGE', '616', '70332', 'Insurance premiums', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70339, 'ENG-BASE', 'CHARGE', '617', '70332', 'Studies and research', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70340, 'ENG-BASE', 'CHARGE', '618', '70332', 'Various', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70341, 'ENG-BASE', 'CHARGE', '619', '70332', 'Discounts, rebates and rebates obtained on external services', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70342, 'ENG-BASE', 'CHARGE', '62', '71506', 'Other services', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70343, 'ENG-BASE', 'CHARGE', '621', '70342', 'Staff outside the company', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70344, 'ENG-BASE', 'CHARGE', '622', '70342', 'Remuneration of intermediaries and fees', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70345, 'ENG-BASE', 'CHARGE', '623', '70342', 'Advertising, publications, public relations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70346, 'ENG-BASE', 'CHARGE', '624', '70342', 'Transport of goods and public transport of personnel', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70347, 'ENG-BASE', 'CHARGE', '625', '70342', 'Travel, missions and receptions', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70348, 'ENG-BASE', 'CHARGE', '626', '70342', 'Postal and telecommunications costs', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70349, 'ENG-BASE', 'CHARGE', '627', '70342', 'Banking and related services', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70350, 'ENG-BASE', 'CHARGE', '628', '70342', 'Various', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70351, 'ENG-BASE', 'CHARGE', '629', '70342', 'Discounts, rebates and rebates obtained on other external services', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70352, 'ENG-BASE', 'CHARGE', '63', '71506', 'Taxes other and payments', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70353, 'ENG-BASE', 'CHARGE', '631', '70352', 'Taxes and similar payments on remuneration (tax administrations)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70354, 'ENG-BASE', 'CHARGE', '633', '70352', 'Taxes and similar payments on remuneration (other bodies)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70355, 'ENG-BASE', 'CHARGE', '635', '70352', 'Other taxes, duties and similar payments (tax administrations)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70356, 'ENG-BASE', 'CHARGE', '637', '70352', 'Other taxes, duties and similar payments (other bodies)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70357, 'ENG-BASE', 'CHARGE', '64', '71506', 'Staff costs', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70358, 'ENG-BASE', 'CHARGE', '641', '70357', 'Remuneration of staff', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70359, 'ENG-BASE', 'CHARGE', '644', '70357', 'Remuneration of the operator''s work', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70360, 'ENG-BASE', 'CHARGE', '645', '70357', 'Social Security and Welfare Expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70361, 'ENG-BASE', 'CHARGE', '646', '70357', 'Personal social contributions of the operator', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70362, 'ENG-BASE', 'CHARGE', '647', '70357', 'Other payroll taxes', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70363, 'ENG-BASE', 'CHARGE', '648', '70357', 'Other staff costs', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70364, 'ENG-BASE', 'CHARGE', '65', '71506', 'Other current operating expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70365, 'ENG-BASE', 'CHARGE', '651', '70364', 'Royalties for concessions, patents, licenses, trademarks, processes, software, rights and similar values', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70366, 'ENG-BASE', 'CHARGE', '653', '70364', 'Attendance fees', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70367, 'ENG-BASE', 'CHARGE', '654', '70364', 'Loss on bad debts', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70368, 'ENG-BASE', 'CHARGE', '655', '70364', 'Share of profit or loss on transactions made jointly', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70369, 'ENG-BASE', 'CHARGE', '658', '70364', 'Miscellaneous operating expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70370, 'ENG-BASE', 'CHARGE', '66', '71506', 'Financial expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70371, 'ENG-BASE', 'CHARGE', '661', '70370', 'Interest charges', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70372, 'ENG-BASE', 'CHARGE', '664', '70370', 'Loss on receivables related to investments', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70373, 'ENG-BASE', 'CHARGE', '665', '70370', 'Discounts granted', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70374, 'ENG-BASE', 'CHARGE', '666', '70370', 'Exchange losses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70375, 'ENG-BASE', 'CHARGE', '667', '70370', 'Net expense on disposals of marketable securities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70376, 'ENG-BASE', 'CHARGE', '668', '70370', 'Other financial expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70377, 'ENG-BASE', 'CHARGE', '67', '71506', 'Extraordinary charges', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70378, 'ENG-BASE', 'CHARGE', '671', '70377', 'Exceptional charges on management operations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70379, 'ENG-BASE', 'CHARGE', '672', '70377', 'Account available to entities to record, in the course of the financial year, expenses over previous financial years', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70380, 'ENG-BASE', 'CHARGE', '675', '70377', 'Book value of assets sold', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70381, 'ENG-BASE', 'CHARGE', '678', '70377', 'Other extraordinary expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70382, 'ENG-BASE', 'CHARGE', '68', '71506', 'Depreciation, amortization and provisions', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70383, 'ENG-BASE', 'CHARGE', '681', '70382', 'Depreciation, amortization and provisions - Operating expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70384, 'ENG-BASE', 'CHARGE', '686', '70382', 'Depreciation, amortization and provisions - Financial expense', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70385, 'ENG-BASE', 'CHARGE', '687', '70382', 'Depreciation, amortization and provisions - Extraordinary expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70386, 'ENG-BASE', 'CHARGE', '69', '71506', 'Employee participation - income tax and assimilated', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70387, 'ENG-BASE', 'CHARGE', '691', '70386', 'Employee participation in results', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70388, 'ENG-BASE', 'CHARGE', '695', '70386', 'Income taxes', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70389, 'ENG-BASE', 'CHARGE', '696', '70386', 'Corporate income tax related to distributions', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70390, 'ENG-BASE', 'CHARGE', '697', '70386', 'Annual corporation tax', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70391, 'ENG-BASE', 'CHARGE', '698', '70386', 'Tax integration', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70392, 'ENG-BASE', 'CHARGE', '699', '70386', 'Products - Reports back deficits', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70393, 'ENG-BASE', 'PROD', '70', '71507', 'Sales of manufactured goods, services, goods', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70394, 'ENG-BASE', 'PROD', '701', '70393', 'Sales of finished products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70395, 'ENG-BASE', 'PROD', '702', '70393', 'Sales of intermediate products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70396, 'ENG-BASE', 'PROD', '703', '70393', 'Sales of residual products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70397, 'ENG-BASE', 'PROD', '704', '70393', 'Works', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70398, 'ENG-BASE', 'PROD', '705', '70393', 'Studies', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70399, 'ENG-BASE', 'PROD', '706', '70393', 'Services', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70400, 'ENG-BASE', 'PROD', '707', '70393', 'Sale of goods', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70401, 'ENG-BASE', 'PROD', '708', '70393', 'Income from ancillary activities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70402, 'ENG-BASE', 'PROD', '709', '70393', 'Discounts, rebates and rebates granted by the company', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70403, 'ENG-BASE', 'PROD', '71', '71507', 'Stored production (or destocking)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70404, 'ENG-BASE', 'PROD', '713', '70403', 'Change in stocks (in-process production, products)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70405, 'ENG-BASE', 'PROD', '72', '71507', 'Immobilised production', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70406, 'ENG-BASE', 'PROD', '721', '70405', 'Intangible assets', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70407, 'ENG-BASE', 'PROD', '722', '70405', 'Property, plant and equipment', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70408, 'ENG-BASE', 'PROD', '74', '71507', 'Operating grants', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70409, 'ENG-BASE', 'PROD', '75', '71507', 'Other management products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70410, 'ENG-BASE', 'PROD', '751', '70409', 'Royalties for concessions, patents, licenses, trademarks, processes, software, rights and similar values', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70411, 'ENG-BASE', 'PROD', '752', '70409', 'Income from buildings not used for professional purposes', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70412, 'ENG-BASE', 'PROD', '753', '70409', 'Directors'' fees and remuneration of directors, managers, ...', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70413, 'ENG-BASE', 'PROD', '754', '70409', 'Perceived refunds of cooperatives (from surplus)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70414, 'ENG-BASE', 'PROD', '755', '70409', 'Share of profits on transactions made jointly', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70415, 'ENG-BASE', 'PROD', '758', '70409', 'Miscellaneous current management products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70416, 'ENG-BASE', 'PROD', '76', '71507', 'Financial products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70417, 'ENG-BASE', 'PROD', '761', '70416', 'Income from participations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70418, 'ENG-BASE', 'PROD', '762', '70416', 'Income from other financial assets', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70419, 'ENG-BASE', 'PROD', '763', '70416', 'Revenue from other receivables', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70420, 'ENG-BASE', 'PROD', '764', '70416', 'Income from marketable securities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70421, 'ENG-BASE', 'PROD', '765', '70416', 'Discounts obtained', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70422, 'ENG-BASE', 'PROD', '766', '70416', 'Exchange gains', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70423, 'ENG-BASE', 'PROD', '767', '70416', 'Net proceeds on disposals of marketable securities', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70424, 'ENG-BASE', 'PROD', '768', '70416', 'Other financial income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70425, 'ENG-BASE', 'PROD', '77', '71507', 'Exceptional products', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70426, 'ENG-BASE', 'PROD', '771', '70425', 'Extraordinary income from management operations', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70427, 'ENG-BASE', 'PROD', '772', '70425', 'Account available to entities to record, during the financial year, the revenues over previous financial years', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70428, 'ENG-BASE', 'PROD', '775', '70425', 'Proceeds from disposals of assets', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70429, 'ENG-BASE', 'PROD', '777', '70425', 'Share of investment grants transferred to profit or loss for the year', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70430, 'ENG-BASE', 'PROD', '778', '70425', 'Other extraordinary income', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70431, 'ENG-BASE', 'PROD', '78', '71507', 'Reversals of depreciation and provisions', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70432, 'ENG-BASE', 'PROD', '781', '70431', 'Reversals of depreciation and provisions (to be included in revenue)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70433, 'ENG-BASE', 'PROD', '786', '70431', 'Reversals of provisions for risks (to be recorded in financial income)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70434, 'ENG-BASE', 'PROD', '787', '70431', 'Reversals of provisions (to be recorded in exceptional income)', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70435, 'ENG-BASE', 'PROD', '79', '71507', 'Transfers of charges', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70436, 'ENG-BASE', 'PROD', '791', '70435', 'Transfers of operating expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70437, 'ENG-BASE', 'PROD', '796', '70435', 'Transfers of financial expenses', 1); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70438, 'ENG-BASE', 'PROD', '797', '70435', 'Transfers of Exceptional Charges', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70322, 'ENG-BASE', 'EXPENSE', '60', '71506', 'Shopping', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70323, 'ENG-BASE', 'EXPENSE', '601', '70322', 'Stored Procurement - Raw Materials (and Supplies)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70324, 'ENG-BASE', 'EXPENSE', '602', '70322', 'Stored Procurement - Other Supplies', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70325, 'ENG-BASE', 'EXPENSE', '603', '70322', 'Inventory Changes (Supplies and Commodities)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70326, 'ENG-BASE', 'EXPENSE', '604', '70322', 'Stored Procurement - Raw Materials (and Supplies)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70327, 'ENG-BASE', 'EXPENSE', '605', '70322', 'Purchase of equipment, works and equipment', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70328, 'ENG-BASE', 'EXPENSE', '606', '70322', 'Non-stock purchases of materials and supplies', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70329, 'ENG-BASE', 'EXPENSE', '607', '70322', 'Purchases of goods', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70330, 'ENG-BASE', 'EXPENSE', '608', '70322', 'Reserved account, where applicable, to the recapitulation of incidental expenses included in purchases', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70331, 'ENG-BASE', 'EXPENSE', '609', '70322', 'Discounts, rebates and rebates obtained on purchases', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70332, 'ENG-BASE', 'EXPENSE', '61', '71506', 'Outside services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70333, 'ENG-BASE', 'EXPENSE', '611', '70332', 'General subcontracting', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70334, 'ENG-BASE', 'EXPENSE', '612', '70332', 'Lease payments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70335, 'ENG-BASE', 'EXPENSE', '613', '70332', 'Rentals', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70336, 'ENG-BASE', 'EXPENSE', '614', '70332', 'Rental and condominium expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70337, 'ENG-BASE', 'EXPENSE', '615', '70332', 'Maintenance and repairs', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70338, 'ENG-BASE', 'EXPENSE', '616', '70332', 'Insurance premiums', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70339, 'ENG-BASE', 'EXPENSE', '617', '70332', 'Studies and research', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70340, 'ENG-BASE', 'EXPENSE', '618', '70332', 'Various', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70341, 'ENG-BASE', 'EXPENSE', '619', '70332', 'Discounts, rebates and rebates obtained on external services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70342, 'ENG-BASE', 'EXPENSE', '62', '71506', 'Other services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70343, 'ENG-BASE', 'EXPENSE', '621', '70342', 'Staff outside the company', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70344, 'ENG-BASE', 'EXPENSE', '622', '70342', 'Remuneration of intermediaries and fees', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70345, 'ENG-BASE', 'EXPENSE', '623', '70342', 'Advertising, publications, public relations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70346, 'ENG-BASE', 'EXPENSE', '624', '70342', 'Transport of goods and public transport of personnel', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70347, 'ENG-BASE', 'EXPENSE', '625', '70342', 'Travel, missions and receptions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70348, 'ENG-BASE', 'EXPENSE', '626', '70342', 'Postal and telecommunications costs', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70349, 'ENG-BASE', 'EXPENSE', '627', '70342', 'Banking and related services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70350, 'ENG-BASE', 'EXPENSE', '628', '70342', 'Various', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70351, 'ENG-BASE', 'EXPENSE', '629', '70342', 'Discounts, rebates and rebates obtained on other external services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70352, 'ENG-BASE', 'EXPENSE', '63', '71506', 'Taxes other and payments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70353, 'ENG-BASE', 'EXPENSE', '631', '70352', 'Taxes and similar payments on remuneration (tax administrations)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70354, 'ENG-BASE', 'EXPENSE', '633', '70352', 'Taxes and similar payments on remuneration (other bodies)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70355, 'ENG-BASE', 'EXPENSE', '635', '70352', 'Other taxes, duties and similar payments (tax administrations)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70356, 'ENG-BASE', 'EXPENSE', '637', '70352', 'Other taxes, duties and similar payments (other bodies)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70357, 'ENG-BASE', 'EXPENSE', '64', '71506', 'Staff costs', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70358, 'ENG-BASE', 'EXPENSE', '641', '70357', 'Remuneration of staff', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70359, 'ENG-BASE', 'EXPENSE', '644', '70357', 'Remuneration of the operator''s work', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70360, 'ENG-BASE', 'EXPENSE', '645', '70357', 'Social Security and Welfare Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70361, 'ENG-BASE', 'EXPENSE', '646', '70357', 'Personal social contributions of the operator', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70362, 'ENG-BASE', 'EXPENSE', '647', '70357', 'Other payroll taxes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70363, 'ENG-BASE', 'EXPENSE', '648', '70357', 'Other staff costs', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70364, 'ENG-BASE', 'EXPENSE', '65', '71506', 'Other current operating expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70365, 'ENG-BASE', 'EXPENSE', '651', '70364', 'Royalties for concessions, patents, licenses, trademarks, processes, software, rights and similar values', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70366, 'ENG-BASE', 'EXPENSE', '653', '70364', 'Attendance fees', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70367, 'ENG-BASE', 'EXPENSE', '654', '70364', 'Loss on bad debts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70368, 'ENG-BASE', 'EXPENSE', '655', '70364', 'Share of profit or loss on transactions made jointly', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70369, 'ENG-BASE', 'EXPENSE', '658', '70364', 'Miscellaneous operating expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70370, 'ENG-BASE', 'EXPENSE', '66', '71506', 'Financial expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70371, 'ENG-BASE', 'EXPENSE', '661', '70370', 'Interest charges', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70372, 'ENG-BASE', 'EXPENSE', '664', '70370', 'Loss on receivables related to investments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70373, 'ENG-BASE', 'EXPENSE', '665', '70370', 'Discounts granted', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70374, 'ENG-BASE', 'EXPENSE', '666', '70370', 'Exchange losses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70375, 'ENG-BASE', 'EXPENSE', '667', '70370', 'Net expense on disposals of marketable securities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70376, 'ENG-BASE', 'EXPENSE', '668', '70370', 'Other financial expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70377, 'ENG-BASE', 'EXPENSE', '67', '71506', 'Extraordinary charges', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70378, 'ENG-BASE', 'EXPENSE', '671', '70377', 'Exceptional charges on management operations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70379, 'ENG-BASE', 'EXPENSE', '672', '70377', 'Account available to entities to record, in the course of the financial year, expenses over previous financial years', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70380, 'ENG-BASE', 'EXPENSE', '675', '70377', 'Book value of assets sold', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70381, 'ENG-BASE', 'EXPENSE', '678', '70377', 'Other extraordinary expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70382, 'ENG-BASE', 'EXPENSE', '68', '71506', 'Depreciation, amortization and provisions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70383, 'ENG-BASE', 'EXPENSE', '681', '70382', 'Depreciation, amortization and provisions - Operating expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70384, 'ENG-BASE', 'EXPENSE', '686', '70382', 'Depreciation, amortization and provisions - Financial expense', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70385, 'ENG-BASE', 'EXPENSE', '687', '70382', 'Depreciation, amortization and provisions - Extraordinary expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70386, 'ENG-BASE', 'EXPENSE', '69', '71506', 'Employee participation - income tax and assimilated', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70387, 'ENG-BASE', 'EXPENSE', '691', '70386', 'Employee participation in results', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70388, 'ENG-BASE', 'EXPENSE', '695', '70386', 'Income taxes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70389, 'ENG-BASE', 'EXPENSE', '696', '70386', 'Corporate income tax related to distributions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70390, 'ENG-BASE', 'EXPENSE', '697', '70386', 'Annual corporation tax', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70391, 'ENG-BASE', 'EXPENSE', '698', '70386', 'Tax integration', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70392, 'ENG-BASE', 'EXPENSE', '699', '70386', 'Products - Reports back deficits', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70393, 'ENG-BASE', 'INCOME', '70', '71507', 'Sales of manufactured goods, services, goods', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70394, 'ENG-BASE', 'INCOME', '701', '70393', 'Sales of finished products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70395, 'ENG-BASE', 'INCOME', '702', '70393', 'Sales of intermediate products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70396, 'ENG-BASE', 'INCOME', '703', '70393', 'Sales of residual products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70397, 'ENG-BASE', 'INCOME', '704', '70393', 'Works', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70398, 'ENG-BASE', 'INCOME', '705', '70393', 'Studies', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70399, 'ENG-BASE', 'INCOME', '706', '70393', 'Services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70400, 'ENG-BASE', 'INCOME', '707', '70393', 'Sale of goods', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70401, 'ENG-BASE', 'INCOME', '708', '70393', 'Income from ancillary activities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70402, 'ENG-BASE', 'INCOME', '709', '70393', 'Discounts, rebates and rebates granted by the company', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70403, 'ENG-BASE', 'INCOME', '71', '71507', 'Stored production (or destocking)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70404, 'ENG-BASE', 'INCOME', '713', '70403', 'Change in stocks (in-process production, products)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70405, 'ENG-BASE', 'INCOME', '72', '71507', 'Immobilised production', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70406, 'ENG-BASE', 'INCOME', '721', '70405', 'Intangible assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70407, 'ENG-BASE', 'INCOME', '722', '70405', 'Property, plant and equipment', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70408, 'ENG-BASE', 'INCOME', '74', '71507', 'Operating grants', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70409, 'ENG-BASE', 'INCOME', '75', '71507', 'Other management products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70410, 'ENG-BASE', 'INCOME', '751', '70409', 'Royalties for concessions, patents, licenses, trademarks, processes, software, rights and similar values', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70411, 'ENG-BASE', 'INCOME', '752', '70409', 'Income from buildings not used for professional purposes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70412, 'ENG-BASE', 'INCOME', '753', '70409', 'Directors'' fees and remuneration of directors, managers, ...', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70413, 'ENG-BASE', 'INCOME', '754', '70409', 'Perceived refunds of cooperatives (from surplus)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70414, 'ENG-BASE', 'INCOME', '755', '70409', 'Share of profits on transactions made jointly', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70415, 'ENG-BASE', 'INCOME', '758', '70409', 'Miscellaneous current management products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70416, 'ENG-BASE', 'INCOME', '76', '71507', 'Financial products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70417, 'ENG-BASE', 'INCOME', '761', '70416', 'Income from participations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70418, 'ENG-BASE', 'INCOME', '762', '70416', 'Income from other financial assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70419, 'ENG-BASE', 'INCOME', '763', '70416', 'Revenue from other receivables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70420, 'ENG-BASE', 'INCOME', '764', '70416', 'Income from marketable securities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70421, 'ENG-BASE', 'INCOME', '765', '70416', 'Discounts obtained', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70422, 'ENG-BASE', 'INCOME', '766', '70416', 'Exchange gains', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70423, 'ENG-BASE', 'INCOME', '767', '70416', 'Net proceeds on disposals of marketable securities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70424, 'ENG-BASE', 'INCOME', '768', '70416', 'Other financial income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70425, 'ENG-BASE', 'INCOME', '77', '71507', 'Exceptional products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70426, 'ENG-BASE', 'INCOME', '771', '70425', 'Extraordinary income from management operations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70427, 'ENG-BASE', 'INCOME', '772', '70425', 'Account available to entities to record, during the financial year, the revenues over previous financial years', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70428, 'ENG-BASE', 'INCOME', '775', '70425', 'Proceeds from disposals of assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70429, 'ENG-BASE', 'INCOME', '777', '70425', 'Share of investment grants transferred to profit or loss for the year', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70430, 'ENG-BASE', 'INCOME', '778', '70425', 'Other extraordinary income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70431, 'ENG-BASE', 'INCOME', '78', '71507', 'Reversals of depreciation and provisions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70432, 'ENG-BASE', 'INCOME', '781', '70431', 'Reversals of depreciation and provisions (to be included in revenue)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70433, 'ENG-BASE', 'INCOME', '786', '70431', 'Reversals of provisions for risks (to be recorded in financial income)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70434, 'ENG-BASE', 'INCOME', '787', '70431', 'Reversals of provisions (to be recorded in exceptional income)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70435, 'ENG-BASE', 'INCOME', '79', '71507', 'Transfers of charges', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70436, 'ENG-BASE', 'INCOME', '791', '70435', 'Transfers of operating expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70437, 'ENG-BASE', 'INCOME', '796', '70435', 'Transfers of financial expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70438, 'ENG-BASE', 'INCOME', '797', '70435', 'Transfers of Exceptional Charges', 1); diff --git a/htdocs/install/mysql/data/llx_accounting_account_jp.sql b/htdocs/install/mysql/data/llx_accounting_account_jp.sql new file mode 100644 index 00000000000..2b852ae273f --- /dev/null +++ b/htdocs/install/mysql/data/llx_accounting_account_jp.sql @@ -0,0 +1,365 @@ +-- Copyright (C) 2001-2004 Rodolphe Quiedeville +-- Copyright (C) 2003 Jean-Louis Bergamo +-- Copyright (C) 2004-2009 Laurent Destailleur +-- Copyright (C) 2004 Benoit Mortier +-- Copyright (C) 2004 Guillaume Delecourt +-- Copyright (C) 2005-2009 Regis Houssin +-- Copyright (C) 2007 Patrick Raguin +-- Copyright (C) 2011-2017 Alexandre Spangaro +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- Note (JPN-BASE): INCOME = REVENUE +-- Note (JPN-BASE): EXPENSE = EXPENSES +-- Note (JPN-BASE): CAPITAL = EQUITY +-- +-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors +-- de l''install et tous les sigles '--' sont supprimés. +-- Note: To replace a string thas is '__, 0' into an increasing number, you can use vi with comment +-- :let @a=1 | %s/__, 0/\='__, '.(@a+setreg('a',@a+1))/g + +-- Descriptif des plans comptables Japan JPN-BASE +-- ID 10000 - 99999 +-- ADD 12300000 to rowid # Do no remove this comment -- + +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10000, 'JPN-BASE', 'ASSETS', '10000000', '0', '資産合計', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11000, 'JPN-BASE', 'ASSETS', '11000000', '10000000', '流動資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11100, 'JPN-BASE', 'ASSETS', '11100000', '11000000', '当座資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11101, 'JPN-BASE', 'ASSETS', '11110000', '11100000', '現金及び預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11102, 'JPN-BASE', 'ASSETS', '11111000', '11110000', '現金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11103, 'JPN-BASE', 'ASSETS', '11111100', '11111000', '現金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11104, 'JPN-BASE', 'ASSETS', '11111200', '11111000', '小口現金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11105, 'JPN-BASE', 'ASSETS', '11111300', '11111000', '小切手', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11106, 'JPN-BASE', 'ASSETS', '11111400', '11111000', '転送中現金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11107, 'JPN-BASE', 'ASSETS', '11112000', '11110000', '流動性預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11108, 'JPN-BASE', 'ASSETS', '11112100', '11112000', '当座預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11109, 'JPN-BASE', 'ASSETS', '11112200', '11112000', '普通預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11110, 'JPN-BASE', 'ASSETS', '11112300', '11112000', '通知預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11111, 'JPN-BASE', 'ASSETS', '11112400', '11112000', 'その他流動性預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11112, 'JPN-BASE', 'ASSETS', '11112500', '11112000', '銀行通過中預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11113, 'JPN-BASE', 'ASSETS', '11112600', '11112000', '銀行未確認受領', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11114, 'JPN-BASE', 'ASSETS', '11112700', '11112000', '未配分受取預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11115, 'JPN-BASE', 'ASSETS', '11113000', '11110000', '固定性預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11116, 'JPN-BASE', 'ASSETS', '11113100', '11113000', '定期預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11117, 'JPN-BASE', 'ASSETS', '11113200', '11113000', '定期積金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11118, 'JPN-BASE', 'ASSETS', '11113300', '11113000', 'その他固定性預金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11119, 'JPN-BASE', 'ASSETS', '11120000', '11100000', 'その他当座資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11120, 'JPN-BASE', 'ASSETS', '11121000', '11120000', '受取手形', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11121, 'JPN-BASE', 'ASSETS', '11122000', '11120000', '売掛金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11122, 'JPN-BASE', 'ASSETS', '11123000', '11120000', 'サービス売掛金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11123, 'JPN-BASE', 'ASSETS', '11124000', '11120000', '有価証券', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11124, 'JPN-BASE', 'ASSETS', '11125000', '11120000', 'その他当座資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11125, 'JPN-BASE', 'ASSETS', '11126000', '11120000', '未請求売掛金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11200, 'JPN-BASE', 'ASSETS', '11200000', '11000000', '棚卸資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11201, 'JPN-BASE', 'ASSETS', '11201000', '11200000', '商品', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11202, 'JPN-BASE', 'ASSETS', '11202000', '11200000', '製品', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11203, 'JPN-BASE', 'ASSETS', '11203000', '11200000', '製品資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11204, 'JPN-BASE', 'ASSETS', '11204000', '11200000', '倉庫資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11205, 'JPN-BASE', 'ASSETS', '11205000', '11200000', '原材料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11206, 'JPN-BASE', 'ASSETS', '11206000', '11200000', '半製品・仕掛品', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11207, 'JPN-BASE', 'ASSETS', '11207000', '11200000', '貯蔵品', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11208, 'JPN-BASE', 'ASSETS', '11208000', '11200000', '補助材料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11209, 'JPN-BASE', 'ASSETS', '11209000', '11200000', 'その他棚卸資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11210, 'JPN-BASE', 'ASSETS', '11210000', '11200000', '仕掛品在庫', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11211, 'JPN-BASE', 'ASSETS', '11211000', '11200000', '検品中在庫', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11300, 'JPN-BASE', 'ASSETS', '11300000', '11000000', 'その他流動資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11301, 'JPN-BASE', 'ASSETS', '11301000', '11300000', '前渡金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11302, 'JPN-BASE', 'ASSETS', '11302000', '11300000', '短期貸付金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11303, 'JPN-BASE', 'ASSETS', '11303000', '11300000', '立替金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11304, 'JPN-BASE', 'ASSETS', '11304000', '11300000', '従業員立替', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11305, 'JPN-BASE', 'ASSETS', '11305000', '11300000', '未収入金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11306, 'JPN-BASE', 'ASSETS', '11306000', '11300000', '仮払金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11307, 'JPN-BASE', 'ASSETS', '11307000', '11300000', '前払金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11308, 'JPN-BASE', 'ASSETS', '11308000', '11300000', '仮払消費税等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11309, 'JPN-BASE', 'ASSETS', '11309000', '11300000', '未収法人税等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11310, 'JPN-BASE', 'ASSETS', '11310000', '11300000', '繰延税金資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11311, 'JPN-BASE', 'ASSETS', '11311000', '11300000', 'その他流動資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11312, 'JPN-BASE', 'ASSETS', '11312000', '11300000', '不渡手形', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11313, 'JPN-BASE', 'ASSETS', '11313000', '11300000', '債権償却特別勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11314, 'JPN-BASE', 'ASSETS', '11314000', '11300000', '貸倒引当金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12000, 'JPN-BASE', 'ASSETS', '12000000', '10000000', '固定資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12100, 'JPN-BASE', 'ASSETS', '12100000', '12000000', '有形固定資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12101, 'JPN-BASE', 'ASSETS', '12101000', '12100000', '建物', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12102, 'JPN-BASE', 'ASSETS', '12102000', '12100000', '建物付属設備', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12103, 'JPN-BASE', 'ASSETS', '12103000', '12100000', '構築物', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12104, 'JPN-BASE', 'ASSETS', '12104000', '12100000', '機械装置', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12105, 'JPN-BASE', 'ASSETS', '12105000', '12100000', '車両運搬具', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12106, 'JPN-BASE', 'ASSETS', '12106000', '12100000', '工具器具備品', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12107, 'JPN-BASE', 'ASSETS', '12107000', '12100000', '土地', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12108, 'JPN-BASE', 'ASSETS', '12108000', '12100000', '建設仮勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12109, 'JPN-BASE', 'ASSETS', '12109000', '12100000', 'その他有形固定資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12110, 'JPN-BASE', 'ASSETS', '12110000', '12100000', '減価償却累計額', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12200, 'JPN-BASE', 'ASSETS', '12200000', '12000000', '無形固定資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12201, 'JPN-BASE', 'ASSETS', '12201000', '12200000', '電話加入権', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12202, 'JPN-BASE', 'ASSETS', '12202000', '12200000', 'その他無形固定資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12203, 'JPN-BASE', 'ASSETS', '12203000', '12200000', 'ソフトウェア資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12300, 'JPN-BASE', 'ASSETS', '12300000', '12000000', '投資その他の資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12301, 'JPN-BASE', 'ASSETS', '12301000', '12300000', '投資有価証券', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12302, 'JPN-BASE', 'ASSETS', '12302000', '12300000', '出資金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12303, 'JPN-BASE', 'ASSETS', '12303000', '12300000', '長期貸付金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12304, 'JPN-BASE', 'ASSETS', '12304000', '12300000', '長期前払費用', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12305, 'JPN-BASE', 'ASSETS', '12305000', '12300000', '保証金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12306, 'JPN-BASE', 'ASSETS', '12306000', '12300000', '事業保険積立金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12307, 'JPN-BASE', 'ASSETS', '12307000', '12300000', '長期繰延税金資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12308, 'JPN-BASE', 'ASSETS', '12308000', '12300000', 'その他投資', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12309, 'JPN-BASE', 'ASSETS', '12410000', '12000000', 'プロジェクト資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12310, 'JPN-BASE', 'ASSETS', '12420000', '12000000', 'プロジェクト仕掛', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 13000, 'JPN-BASE', 'ASSETS', '13000000', '10000000', '繰延資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 13001, 'JPN-BASE', 'ASSETS', '13100000', '13000000', '創立費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 13002, 'JPN-BASE', 'ASSETS', '13200000', '13000000', '開発費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 13003, 'JPN-BASE', 'ASSETS', '13300000', '13000000', '試験研究費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 13004, 'JPN-BASE', 'ASSETS', '13400000', '13000000', 'その他繰延資産', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 14000, 'JPN-BASE', 'ASSETS', '14000000', '10000000', '関係会社取引元勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 20000, 'JPN-BASE', 'LIABILITIES_EQUITY', '20000000', '0', '負債・純資産合計', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21000, 'JPN-BASE', 'LIABILITIES', '21000000', '20000000', '負債合計', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21001, 'JPN-BASE', 'LIABILITIES', '21100000', '21000000', '流動負債', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21002, 'JPN-BASE', 'LIABILITIES', '21101000', '21100000', '支払手形', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21003, 'JPN-BASE', 'LIABILITIES', '21102000', '21100000', '買掛金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21004, 'JPN-BASE', 'LIABILITIES', '21103000', '21100000', 'サービス買掛金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21005, 'JPN-BASE', 'LIABILITIES', '21104000', '21100000', '短期借入金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21006, 'JPN-BASE', 'LIABILITIES', '21105000', '21100000', '1年内返済長期借入金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21007, 'JPN-BASE', 'LIABILITIES', '21106000', '21100000', '未払金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21008, 'JPN-BASE', 'LIABILITIES', '21107000', '21100000', '未払費用', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21009, 'JPN-BASE', 'LIABILITIES', '21108000', '21100000', '前受金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21010, 'JPN-BASE', 'LIABILITIES', '21109000', '21100000', '仮受金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21011, 'JPN-BASE', 'LIABILITIES', '21110000', '21100000', '預り金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21012, 'JPN-BASE', 'LIABILITIES', '21111000', '21100000', '従業員預り金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21013, 'JPN-BASE', 'LIABILITIES', '21112000', '21100000', '割引手形', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21014, 'JPN-BASE', 'LIABILITIES', '21113000', '21100000', '裏書手形', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21015, 'JPN-BASE', 'LIABILITIES', '21114000', '21100000', '未払法人税等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21016, 'JPN-BASE', 'LIABILITIES', '21115000', '21100000', '賞与引当金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21017, 'JPN-BASE', 'LIABILITIES', '21116000', '21100000', '仮受消費税等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21018, 'JPN-BASE', 'LIABILITIES', '21117000', '21100000', '繰延税金負債', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21019, 'JPN-BASE', 'LIABILITIES', '21118000', '21100000', 'その他流動負債', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21020, 'JPN-BASE', 'LIABILITIES', '21119000', '21100000', '未請求受領書', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21021, 'JPN-BASE', 'LIABILITIES', '21200000', '21000000', '固定負債', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21022, 'JPN-BASE', 'LIABILITIES', '21201000', '21200000', '長期借入金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21023, 'JPN-BASE', 'LIABILITIES', '21202000', '21200000', '預り保証金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21024, 'JPN-BASE', 'LIABILITIES', '21203000', '21200000', '退職給与引当金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21025, 'JPN-BASE', 'LIABILITIES', '21204000', '21200000', '長期繰延税金負債', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21026, 'JPN-BASE', 'LIABILITIES', '21205000', '21200000', 'その他固定負債', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21027, 'JPN-BASE', 'LIABILITIES', '21300000', '21000000', '引当金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21028, 'JPN-BASE', 'LIABILITIES', '21301000', '21300000', '引当金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21029, 'JPN-BASE', 'LIABILITIES', '21410000', '21000000', '関係会社取引先勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21030, 'JPN-BASE', 'LIABILITIES', '21420000', '21000000', '源泉所得税', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21031, 'JPN-BASE', 'LIABILITIES', '21430000', '21000000', '支払中買掛金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22000, 'JPN-BASE', 'EQUITY', '22000000', '20000000', '純資産合計', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22001, 'JPN-BASE', 'EQUITY', '22100000', '22000000', '株主資本', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22002, 'JPN-BASE', 'EQUITY', '22110000', '22100000', '資本金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22003, 'JPN-BASE', 'EQUITY', '22111000', '22110000', '資本金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22004, 'JPN-BASE', 'EQUITY', '22120000', '22100000', '新株式申込証拠金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22005, 'JPN-BASE', 'EQUITY', '22121000', '22120000', '新株式申込証拠金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22006, 'JPN-BASE', 'EQUITY', '22130000', '22100000', '資本剰余金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22007, 'JPN-BASE', 'EQUITY', '22131000', '22130000', '資本準備金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22008, 'JPN-BASE', 'EQUITY', '22131100', '22131000', 'その他資本剰余金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22009, 'JPN-BASE', 'EQUITY', '22131110', '22131100', '資本・資本準備金減少差益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22010, 'JPN-BASE', 'EQUITY', '22131120', '22131100', '自己株式処分差益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22011, 'JPN-BASE', 'EQUITY', '22140000', '22100000', '利益剰余金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22012, 'JPN-BASE', 'EQUITY', '22141000', '22140000', '利益準備金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22013, 'JPN-BASE', 'EQUITY', '22142000', '22140000', 'その他利益剰余金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22014, 'JPN-BASE', 'EQUITY', '22142100', '22142000', '退職給与積立金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22015, 'JPN-BASE', 'EQUITY', '22142200', '22142000', '別途積立金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22016, 'JPN-BASE', 'EQUITY', '22142300', '22142000', 'その他任意積立金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22017, 'JPN-BASE', 'EQUITY', '22142400', '22142000', '繰越利益剰余金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22018, 'JPN-BASE', 'EQUITY', '22142410', '22142400', '繰越利益剰余金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22019, 'JPN-BASE', 'EQUITY', '22150000', '22100000', '自己株式', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22020, 'JPN-BASE', 'EQUITY', '22151000', '22150000', '自己株式', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22021, 'JPN-BASE', 'EQUITY', '22160000', '22100000', '自己株式申込証拠金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22022, 'JPN-BASE', 'EQUITY', '22161000', '22160000', '自己株式申込証拠金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22023, 'JPN-BASE', 'EQUITY', '22200000', '22000000', '評価・換算差額等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22024, 'JPN-BASE', 'EQUITY', '22210000', '22200000', '他有価証券評価差額金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22025, 'JPN-BASE', 'EQUITY', '22211000', '22210000', '他有価証券評価差額金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22026, 'JPN-BASE', 'EQUITY', '22220000', '22200000', '繰越ヘッジ損益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22027, 'JPN-BASE', 'EQUITY', '22221000', '22220000', '繰越ヘッジ損益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22028, 'JPN-BASE', 'EQUITY', '22300000', '22000000', '新株予約権', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22029, 'JPN-BASE', 'EQUITY', '22310000', '22300000', '新株予約権', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22030, 'JPN-BASE', 'EQUITY', '22320000', '22300000', '自己新株予約権', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30000, 'JPN-BASE', 'INCOME', '30000000', '0', '純売上高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30001, 'JPN-BASE', 'INCOME', '30001000', '30000000', '商品売上高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30002, 'JPN-BASE', 'INCOME', '30002000', '30000000', '製品売上高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30003, 'JPN-BASE', 'INCOME', '30003000', '30000000', 'サービス売上高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30004, 'JPN-BASE', 'INCOME', '30004000', '30000000', '売上値引高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30005, 'JPN-BASE', 'INCOME', '30005000', '30000000', '売上戻り高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30006, 'JPN-BASE', 'INCOME', '30006000', '30000000', '売上割戻し高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30007, 'JPN-BASE', 'INCOME', '30007000', '30000000', '前受収益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30008, 'JPN-BASE', 'INCOME', '30008000', '30000000', '未請求売上', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31000, 'JPN-BASE', 'COGS', '31000000', '0', '売上原価', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31001, 'JPN-BASE', 'COGS', '31100000', '31000000', '商品売上原価', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31002, 'JPN-BASE', 'COGS', '31200000', '31000000', '製品売上原価', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31003, 'JPN-BASE', 'COGS', '31201000', '31000000', '製品経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31004, 'JPN-BASE', 'COGS', '31202000', '31000000', '製品原価調整', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31005, 'JPN-BASE', 'COGS', '31203000', '31000000', '入庫請求仮勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31006, 'JPN-BASE', 'COGS', '31204000', '31000000', '請求価格差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31007, 'JPN-BASE', 'COGS', '31205000', '31000000', '標準価格差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31008, 'JPN-BASE', 'COGS', '31206000', '31000000', '平均原価差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31009, 'JPN-BASE', 'COGS', '31207000', '31000000', '倉庫差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31010, 'JPN-BASE', 'COGS', '31208000', '31000000', '在庫調整', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31011, 'JPN-BASE', 'COGS', '31209000', '31000000', '棚卸再評価', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31012, 'JPN-BASE', 'COGS', '31300000', '31000000', '期首棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31400, 'JPN-BASE', 'COGS', '31400000', '31000000', '仕入高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31401, 'JPN-BASE', 'COGS', '31410000', '31400000', '商品仕入高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31402, 'JPN-BASE', 'COGS', '31420000', '31400000', 'サービス仕入高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31403, 'JPN-BASE', 'COGS', '31430000', '31400000', '仕入値引高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31404, 'JPN-BASE', 'COGS', '31440000', '31400000', '仕入戻り高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31405, 'JPN-BASE', 'COGS', '31450000', '31400000', '仕入割戻し高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31406, 'JPN-BASE', 'COGS', '31460000', '31400000', '仕入等配賦額', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31500, 'JPN-BASE', 'COGS', '31500000', '31000000', '当期製品製造原価', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31501, 'JPN-BASE', 'COGS', '31510000', '31500000', '当期総製造費用', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31502, 'JPN-BASE', 'COGS', '31511000', '31510000', '材料費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31503, 'JPN-BASE', 'COGS', '31511100', '31511000', '期首材料棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31504, 'JPN-BASE', 'COGS', '31511200', '31511000', '材料仕入高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31505, 'JPN-BASE', 'COGS', '31511300', '31511000', '期末材料棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31506, 'JPN-BASE', 'COGS', '31512000', '31510000', '労務費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31507, 'JPN-BASE', 'COGS', '31512100', '31512000', '賃金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31508, 'JPN-BASE', 'COGS', '31512200', '31512000', '賞与', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31509, 'JPN-BASE', 'COGS', '31512300', '31512000', '退職金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31510, 'JPN-BASE', 'COGS', '31512400', '31512000', '法定福利費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31511, 'JPN-BASE', 'COGS', '31512500', '31512000', '福利厚生費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31512, 'JPN-BASE', 'COGS', '31512600', '31512000', '賞与引当金繰入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31513, 'JPN-BASE', 'COGS', '31512700', '31512000', '退職給与引当金繰入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31514, 'JPN-BASE', 'COGS', '31512800', '31512000', 'その他労務費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31515, 'JPN-BASE', 'COGS', '31512900', '31512000', '雑給', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31516, 'JPN-BASE', 'COGS', '31513000', '31510000', '外注加工費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31517, 'JPN-BASE', 'COGS', '31513100', '31513000', '外注加工費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31518, 'JPN-BASE', 'COGS', '31514000', '31510000', '製造経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31519, 'JPN-BASE', 'COGS', '31514010', '31514000', '電力費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31520, 'JPN-BASE', 'COGS', '31514020', '31514000', '燃料費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31521, 'JPN-BASE', 'COGS', '31514030', '31514000', '水道光熱費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31522, 'JPN-BASE', 'COGS', '31514040', '31514000', '車両関連費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31523, 'JPN-BASE', 'COGS', '31514050', '31514000', '運賃', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31524, 'JPN-BASE', 'COGS', '31514060', '31514000', '工場消耗品費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31525, 'JPN-BASE', 'COGS', '31514070', '31514000', '賃借料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31526, 'JPN-BASE', 'COGS', '31514080', '31514000', '支払保険料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31527, 'JPN-BASE', 'COGS', '31514090', '31514000', '修繕費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31528, 'JPN-BASE', 'COGS', '31514100', '31514000', '租税公課', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31529, 'JPN-BASE', 'COGS', '31514110', '31514000', '減価償却費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31530, 'JPN-BASE', 'COGS', '31514120', '31514000', '旅費交通費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31531, 'JPN-BASE', 'COGS', '31514130', '31514000', '通信費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31532, 'JPN-BASE', 'COGS', '31514140', '31514000', '支払手数料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31533, 'JPN-BASE', 'COGS', '31514150', '31514000', '会議費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31534, 'JPN-BASE', 'COGS', '31514160', '31514000', '諸会費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31535, 'JPN-BASE', 'COGS', '31514170', '31514000', '図書教育費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31536, 'JPN-BASE', 'COGS', '31514180', '31514000', '試験研究費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31537, 'JPN-BASE', 'COGS', '31514190', '31514000', 'その他製造経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31538, 'JPN-BASE', 'COGS', '31514200', '31514000', '雑費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31539, 'JPN-BASE', 'COGS', '31515010', '31514000', '製造原価', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31540, 'JPN-BASE', 'COGS', '31515020', '31514000', 'スクラップ', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31541, 'JPN-BASE', 'COGS', '31515030', '31514000', '外注加工費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31542, 'JPN-BASE', 'COGS', '31515040', '31514000', '数量差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31543, 'JPN-BASE', 'COGS', '31515050', '31514000', '仕様変更差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31544, 'JPN-BASE', 'COGS', '31515060', '31514000', '賃率差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31545, 'JPN-BASE', 'COGS', '31515070', '31514000', '準変動費差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31546, 'JPN-BASE', 'COGS', '31515080', '31514000', '労務費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31547, 'JPN-BASE', 'COGS', '31515090', '31514000', '負担', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31548, 'JPN-BASE', 'COGS', '31515100', '31514000', '間接諸経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31549, 'JPN-BASE', 'COGS', '31520000', '31500000', '仕掛品棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31550, 'JPN-BASE', 'COGS', '31521000', '31520000', '製造原価配賦額', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31551, 'JPN-BASE', 'COGS', '31522000', '31520000', '期首仕掛品棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31552, 'JPN-BASE', 'COGS', '31523000', '31520000', '期末仕掛品棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31553, 'JPN-BASE', 'COGS', '31524000', '31520000', '他勘定振替高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31600, 'JPN-BASE', 'COGS', '31600000', '31000000', '期末棚卸高', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41000, 'JPN-BASE', 'EXPENSE', '41000000', '0', '販売費及び一般管理費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41100, 'JPN-BASE', 'EXPENSE', '41100000', '41000000', '人件費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41101, 'JPN-BASE', 'EXPENSE', '41101000', '41100000', '役員報酬', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41102, 'JPN-BASE', 'EXPENSE', '41102000', '41100000', '役員賞与', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41103, 'JPN-BASE', 'EXPENSE', '41103000', '41100000', '給料手当', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41104, 'JPN-BASE', 'EXPENSE', '41104000', '41100000', '賞与', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41105, 'JPN-BASE', 'EXPENSE', '41105000', '41100000', '退職金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41106, 'JPN-BASE', 'EXPENSE', '41106000', '41100000', '法定福利費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41107, 'JPN-BASE', 'EXPENSE', '41107000', '41100000', '福利厚生費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41108, 'JPN-BASE', 'EXPENSE', '41108000', '41100000', '賞与引当金繰入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41109, 'JPN-BASE', 'EXPENSE', '41109000', '41100000', '退職給与引当金繰入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41110, 'JPN-BASE', 'EXPENSE', '41110000', '41100000', 'その他人件費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41111, 'JPN-BASE', 'EXPENSE', '41111000', '41100000', '雑給', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41112, 'JPN-BASE', 'EXPENSE', '41112000', '41100000', '従業員経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41200, 'JPN-BASE', 'EXPENSE', '41200000', '41000000', '販売直接費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41201, 'JPN-BASE', 'EXPENSE', '41201000', '41200000', '広告宣伝費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41202, 'JPN-BASE', 'EXPENSE', '41202000', '41200000', '運賃', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41203, 'JPN-BASE', 'EXPENSE', '41203000', '41200000', '販売手数料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41204, 'JPN-BASE', 'EXPENSE', '41204000', '41200000', '容器包装費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41205, 'JPN-BASE', 'EXPENSE', '41205000', '41200000', 'その他販売直接費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41300, 'JPN-BASE', 'EXPENSE', '41300000', '41000000', '一般管理費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41301, 'JPN-BASE', 'EXPENSE', '41301000', '41300000', '水道光熱費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41302, 'JPN-BASE', 'EXPENSE', '41302000', '41300000', '車両関連費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41303, 'JPN-BASE', 'EXPENSE', '41303000', '41300000', '事務用消耗品費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41304, 'JPN-BASE', 'EXPENSE', '41304000', '41300000', '消耗品費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41305, 'JPN-BASE', 'EXPENSE', '41305000', '41300000', '賃借料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41306, 'JPN-BASE', 'EXPENSE', '41306000', '41300000', '支払保険料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41307, 'JPN-BASE', 'EXPENSE', '41307000', '41300000', '修繕費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41308, 'JPN-BASE', 'EXPENSE', '41308000', '41300000', '租税公課', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41309, 'JPN-BASE', 'EXPENSE', '41309000', '41300000', '減価償却費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41310, 'JPN-BASE', 'EXPENSE', '41310000', '41300000', '接待交際費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41311, 'JPN-BASE', 'EXPENSE', '41311000', '41300000', '旅費交通費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41312, 'JPN-BASE', 'EXPENSE', '41312000', '41300000', '通信費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41313, 'JPN-BASE', 'EXPENSE', '41313000', '41300000', '支払手数料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41314, 'JPN-BASE', 'EXPENSE', '41314000', '41300000', '会議費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41315, 'JPN-BASE', 'EXPENSE', '41315000', '41300000', '諸会費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41316, 'JPN-BASE', 'EXPENSE', '41316000', '41300000', '寄付金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41317, 'JPN-BASE', 'EXPENSE', '41317000', '41300000', '図書教育費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41318, 'JPN-BASE', 'EXPENSE', '41318000', '41300000', '試験研究費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41319, 'JPN-BASE', 'EXPENSE', '41319000', '41300000', 'その他管理費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41320, 'JPN-BASE', 'EXPENSE', '41320000', '41300000', '貸倒引当金繰入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41321, 'JPN-BASE', 'EXPENSE', '41321000', '41300000', '銀行手数料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41322, 'JPN-BASE', 'EXPENSE', '41322000', '41300000', '現金差異', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41323, 'JPN-BASE', 'EXPENSE', '41323000', '41300000', '雑費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41400, 'JPN-BASE', 'EXPENSE', '41400000', '41000000', '販管費配賦額', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51000, 'JPN-BASE', 'OTHER_REVENUE', '51000000', '0', '営業外収益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51001, 'JPN-BASE', 'OTHER_REVENUE', '51010000', '51000000', '受取利息', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51002, 'JPN-BASE', 'OTHER_REVENUE', '51020000', '51000000', '受取配当金', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51003, 'JPN-BASE', 'OTHER_REVENUE', '51030000', '51000000', '銀行再評価益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51004, 'JPN-BASE', 'OTHER_REVENUE', '51040000', '51000000', '銀行決済利益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51005, 'JPN-BASE', 'OTHER_REVENUE', '51050000', '51000000', '手数料収益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51006, 'JPN-BASE', 'OTHER_REVENUE', '51060000', '51000000', 'その他営業外収益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51007, 'JPN-BASE', 'OTHER_REVENUE', '51070000', '51000000', '支払割引費科目', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51008, 'JPN-BASE', 'OTHER_REVENUE', '51080000', '51000000', '許可割引料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51009, 'JPN-BASE', 'OTHER_REVENUE', '51090000', '51000000', '現金出納帳受取', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51010, 'JPN-BASE', 'OTHER_REVENUE', '51100000', '51000000', '未実現利益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51011, 'JPN-BASE', 'OTHER_REVENUE', '51110000', '51000000', '実現利益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51012, 'JPN-BASE', 'OTHER_REVENUE', '51120000', '51000000', '雑収入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52000, 'JPN-BASE', 'OTHER_EXPENSES', '52000000', '0', '営業外費用', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52001, 'JPN-BASE', 'OTHER_EXPENSES', '52010000', '52000000', '支払利息', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52002, 'JPN-BASE', 'OTHER_EXPENSES', '52020000', '52000000', '銀行再評価損', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52003, 'JPN-BASE', 'OTHER_EXPENSES', '52030000', '52000000', '銀行決済損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52004, 'JPN-BASE', 'OTHER_EXPENSES', '52040000', '52000000', '手数料経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52005, 'JPN-BASE', 'OTHER_EXPENSES', '52050000', '52000000', '手形売却損', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52006, 'JPN-BASE', 'OTHER_EXPENSES', '52060000', '52000000', 'その他営業外費用', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52007, 'JPN-BASE', 'OTHER_EXPENSES', '52070000', '52000000', '支払割引売上科目', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52008, 'JPN-BASE', 'OTHER_EXPENSES', '52080000', '52000000', '受取割引料', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52009, 'JPN-BASE', 'OTHER_EXPENSES', '52090000', '52000000', '貸倒損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52010, 'JPN-BASE', 'OTHER_EXPENSES', '52100000', '52000000', '現金出納帳経費', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52011, 'JPN-BASE', 'OTHER_EXPENSES', '52110000', '52000000', '未実現損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52012, 'JPN-BASE', 'OTHER_EXPENSES', '52120000', '52000000', '実現損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52013, 'JPN-BASE', 'OTHER_EXPENSES', '52130000', '52000000', '雑損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52014, 'JPN-BASE', 'OTHER_EXPENSES', '52140000', '52000000', '営業外配賦額', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 61000, 'JPN-BASE', 'EXTRAORDINALY_REVENUE', '61000000', '0', '特別利益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 61001, 'JPN-BASE', 'EXTRAORDINALY_REVENUE', '61100000', '61000000', '固定資産売却益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 61002, 'JPN-BASE', 'EXTRAORDINALY_REVENUE', '61200000', '61000000', '貸倒引当金戻入', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 61003, 'JPN-BASE', 'EXTRAORDINALY_REVENUE', '61300000', '61000000', 'その他特別利益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 61004, 'JPN-BASE', 'EXTRAORDINALY_REVENUE', '61400000', '61000000', '前期損益修正益', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 62000, 'JPN-BASE', 'EXTRAORDINALY_EXPENSES', '62000000', '0', '特別損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 62001, 'JPN-BASE', 'EXTRAORDINALY_EXPENSES', '62100000', '62000000', '固定資産売却除却損', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 62002, 'JPN-BASE', 'EXTRAORDINALY_EXPENSES', '62200000', '62000000', 'その他特別損失', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 62003, 'JPN-BASE', 'EXTRAORDINALY_EXPENSES', '62300000', '62000000', '前期損益修正損', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71100, 'JPN-BASE', 'INCOME_TAXES', '71100000', '0', '法人税等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71101, 'JPN-BASE', 'INCOME_TAXES', '71110000', '71100000', '法人税等', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71102, 'JPN-BASE', 'INCOME_TAXES', '71120000', '71100000', '法人税等調整額', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81101, 'JPN-BASE', 'OTHER_INCOME_EXPENSES', '81101000', '0', 'デフォルト勘定科目', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81102, 'JPN-BASE', 'OTHER_INCOME_EXPENSES', '81102000', '0', '貸借不一致仮勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81103, 'JPN-BASE', 'OTHER_INCOME_EXPENSES', '81103000', '0', 'エラー仮勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81104, 'JPN-BASE', 'OTHER_INCOME_EXPENSES', '81104000', '0', '通貨貸借不一致仮勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81105, 'JPN-BASE', 'OTHER_INCOME_EXPENSES', '81105000', '0', '損益勘定', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81106, 'JPN-BASE', 'OTHER_INCOME_EXPENSES', '81106000', '0', '購入価格差異相殺', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 82101, 'JPN-BASE', 'MEMO', '82100000', '0', 'コミッション相殺', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 82102, 'JPN-BASE', 'MEMO', '82200000', '0', '販売コミッション相殺', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 82103, 'JPN-BASE', 'MEMO', '99999999', '0', '諸口', 1); diff --git a/htdocs/install/mysql/data/llx_accounting_account_lu.sql b/htdocs/install/mysql/data/llx_accounting_account_lu.sql index 673062de802..06d4def6b51 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_lu.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_lu.sql @@ -1,1147 +1,767 @@ -- Descriptif plan comptable LU PCN --- ID 11000 - 12999 +-- ID 17000 - 18999 -- ADD 14000000 to rowid # Do no remove this comment -- -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11000,'PCN-LUXEMBURG','CAPIT','1','','Capital ou dotation des succursales et comptes de l''exploitant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11001,'PCN-LUXEMBURG','CAPIT','101',11000,'Capital souscrit (Sociétés de capitaux - Montant total)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11002,'PCN-LUXEMBURG','CAPIT','102',11000,'Capital souscrit non appelé (Sociétés de capitaux)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11003,'PCN-LUXEMBURG','CAPIT','103',11000,'Capital souscrit appelé et non versé (Sociétés de capitaux)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11004,'PCN-LUXEMBURG','CAPIT','104',11000,'Capital des entreprises commerçants personnes physiques et des sociétés de personnes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11005,'PCN-LUXEMBURG','CAPIT','1041',11004,'Commerçants personnes physiques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11006,'PCN-LUXEMBURG','CAPIT','1042',11004,'Sociétés de personnes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11007,'PCN-LUXEMBURG','CAPIT','105',11000,'Dotation des succursales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11008,'PCN-LUXEMBURG','CAPIT','106',11000,'Comptes de l’exploitant ou des co-exploitants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11009,'PCN-LUXEMBURG','CAPIT','1061',11008,'Prélèvements privés de l’exploitant ou des coexploitants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11010,'PCN-LUXEMBURG','CAPIT','10611',11009,'Prélèvements en numéraire (train de vie)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11011,'PCN-LUXEMBURG','CAPIT','10612',11009,'Prélèvements en nature de marchandises, de produits finis et services (au prix de revient)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11012,'PCN-LUXEMBURG','CAPIT','10613',11009,'Part personnelle des frais de maladie','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11013,'PCN-LUXEMBURG','CAPIT','10614',11009,'Primes d’assurances privées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11014,'PCN-LUXEMBURG','CAPIT','106141',11013,'Vie','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11015,'PCN-LUXEMBURG','CAPIT','106142',11013,'Accident','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11016,'PCN-LUXEMBURG','CAPIT','106143',11013,'Incendie','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11017,'PCN-LUXEMBURG','CAPIT','106144',11013,'Responsabilité civile','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11018,'PCN-LUXEMBURG','CAPIT','106145',11013,'Multirisques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11019,'PCN-LUXEMBURG','CAPIT','106148',11013,'Autres primes d’assurances privées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11020,'PCN-LUXEMBURG','CAPIT','10615',11009,'Cotisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11021,'PCN-LUXEMBURG','CAPIT','106151',11020,'Assurances sociales (assurance dépendance)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11022,'PCN-LUXEMBURG','CAPIT','106152',11020,'Allocations familiales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11023,'PCN-LUXEMBURG','CAPIT','106153',11020,'Cotisations pour mutuelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11024,'PCN-LUXEMBURG','CAPIT','106154',11020,'Caisse de décès, médicochirurgicale, Prestaplus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11025,'PCN-LUXEMBURG','CAPIT','106158',11020,'Autres cotisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11026,'PCN-LUXEMBURG','CAPIT','10616',11009,'Prélèvements en nature (quote-part privée dans les frais généraux)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11027,'PCN-LUXEMBURG','CAPIT','106161',11026,'Salaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11028,'PCN-LUXEMBURG','CAPIT','106162',11026,'Loyer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11029,'PCN-LUXEMBURG','CAPIT','106163',11026,'Chauffage, gaz, électricité','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11030,'PCN-LUXEMBURG','CAPIT','106164',11026,'Eau','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11031,'PCN-LUXEMBURG','CAPIT','106165',11026,'Téléphone','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11032,'PCN-LUXEMBURG','CAPIT','106166',11026,'Voiture','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11033,'PCN-LUXEMBURG','CAPIT','106168',11026,'Autres prélèvements en nature','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11034,'PCN-LUXEMBURG','CAPIT','10617',11009,'Acquisitions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11035,'PCN-LUXEMBURG','CAPIT','106171',11034,'Mobilier privé','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11036,'PCN-LUXEMBURG','CAPIT','106172',11034,'Voiture privée','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11037,'PCN-LUXEMBURG','CAPIT','106173',11034,'Titres privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11038,'PCN-LUXEMBURG','CAPIT','106174',11034,'Immeubles privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11039,'PCN-LUXEMBURG','CAPIT','106178',11034,'Autres acquisitions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11040,'PCN-LUXEMBURG','CAPIT','10618',11009,'Impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11041,'PCN-LUXEMBURG','CAPIT','106181',11040,'Impôt sur le revenu payé','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11042,'PCN-LUXEMBURG','CAPIT','106182',11040,'Impôt sur la fortune payé','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11043,'PCN-LUXEMBURG','CAPIT','106183',11040,'Impôt commercial - arriérés payés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11044,'PCN-LUXEMBURG','CAPIT','106188',11040,'Autres impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11045,'PCN-LUXEMBURG','CAPIT','10619',11009,'Prélèvements privés particuliers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11046,'PCN-LUXEMBURG','CAPIT','106191',11045,'Réparations aux immeubles privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11047,'PCN-LUXEMBURG','CAPIT','106192',11045,'Placements sur comptes financiers privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11048,'PCN-LUXEMBURG','CAPIT','106193',11045,'Remboursements de dettes privées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11049,'PCN-LUXEMBURG','CAPIT','106194',11045,'Dons et dotations aux enfants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11050,'PCN-LUXEMBURG','CAPIT','106195',11045,'Droits de succession et droits de mutation par décès','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11051,'PCN-LUXEMBURG','CAPIT','106198',11045,'Autres prélèvements privés particuliers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11052,'PCN-LUXEMBURG','CAPIT','1062',11008,'Suppléments d’apports privés de l’exploitant ou des coexploitants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11053,'PCN-LUXEMBURG','CAPIT','10621',11052,'Héritage ou donation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11054,'PCN-LUXEMBURG','CAPIT','10622',11052,'Avoirs privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11055,'PCN-LUXEMBURG','CAPIT','10623',11052,'Emprunts privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11056,'PCN-LUXEMBURG','CAPIT','10624',11052,'Cessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11057,'PCN-LUXEMBURG','CAPIT','106241',11056,'Mobilier privé','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11058,'PCN-LUXEMBURG','CAPIT','106242',11056,'Voiture privée','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11059,'PCN-LUXEMBURG','CAPIT','106243',11056,'Titres privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11060,'PCN-LUXEMBURG','CAPIT','106244',11056,'Immeubles privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11061,'PCN-LUXEMBURG','CAPIT','106248',11056,'Autres cessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11062,'PCN-LUXEMBURG','CAPIT','10625',11052,'Loyers encaissés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11063,'PCN-LUXEMBURG','CAPIT','10626',11052,'Salaires ou rentes touchés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11064,'PCN-LUXEMBURG','CAPIT','10627',11052,'Allocations familiales reçues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11065,'PCN-LUXEMBURG','CAPIT','10628',11052,'Remboursements d’impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11066,'PCN-LUXEMBURG','CAPIT','106281',11065,'Impôt sur le revenu','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11067,'PCN-LUXEMBURG','CAPIT','106283',11065,'Impôt sur la fortune','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11068,'PCN-LUXEMBURG','CAPIT','106284',11065,'Impôt commercial','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11069,'PCN-LUXEMBURG','CAPIT','106288',11065,'Autres remboursements d’impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11070,'PCN-LUXEMBURG','CAPIT','10629',11052,'Quote-part professionnelle de frais privés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11071,'PCN-LUXEMBURG','CAPIT','11','','Primes d’émission et primes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11072,'PCN-LUXEMBURG','CAPIT','111',11071,'Primes d’émission','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11073,'PCN-LUXEMBURG','CAPIT','112',11071,'Primes de fusion','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11074,'PCN-LUXEMBURG','CAPIT','113',11071,'Primes d’apport','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11075,'PCN-LUXEMBURG','CAPIT','114',11071,'Primes de conversion d’obligations en actions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11076,'PCN-LUXEMBURG','CAPIT','115',11071,'Apport en capitaux propres non rémunéré par des titres («Capital contribution»)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11077,'PCN-LUXEMBURG','CAPIT','12','','Réserves de réévaluation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11078,'PCN-LUXEMBURG','CAPIT','121',11077,'Réserves de réévaluation en application de la juste valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11079,'PCN-LUXEMBURG','CAPIT','122',11077,'Réserves de mise en équivalence (Participations valorisées suivant l’art. 58)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11080,'PCN-LUXEMBURG','CAPIT','123',11077,'Plus-values sur écarts de conversion immunisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11081,'PCN-LUXEMBURG','CAPIT','128',11077,'Autres réserves de réévaluation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11082,'PCN-LUXEMBURG','CAPIT','13','','Réserves','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11083,'PCN-LUXEMBURG','CAPIT','131',11082,'Réserve légale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11084,'PCN-LUXEMBURG','CAPIT','132',11082,'Réserve pour actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11085,'PCN-LUXEMBURG','CAPIT','133',11082,'Réserves statutaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11086,'PCN-LUXEMBURG','CAPIT','138',11082,'Autres réserves','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11087,'PCN-LUXEMBURG','CAPIT','1381',11086,'Réserve pour l’impôt sur la fortune','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11088,'PCN-LUXEMBURG','CAPIT','1382',11086,'Autres réserves indisponibles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11089,'PCN-LUXEMBURG','CAPIT','1383',11086,'Autres réserves disponibles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11090,'PCN-LUXEMBURG','CAPIT','14','','Résultats','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11091,'PCN-LUXEMBURG','CAPIT','141',11090,'Résultats reportés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11092,'PCN-LUXEMBURG','CAPIT','142',11090,'Résultat de l’exercice','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11093,'PCN-LUXEMBURG','CAPIT','15','','Acomptes sur dividendes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11094,'PCN-LUXEMBURG','CAPIT','16','','Subventions d’investissement en capital','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11095,'PCN-LUXEMBURG','CAPIT','161',11094,'Terrains et constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11096,'PCN-LUXEMBURG','CAPIT','162',11094,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11097,'PCN-LUXEMBURG','CAPIT','163',11094,'Autres installations, outillage, mobilier et matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11098,'PCN-LUXEMBURG','CAPIT','168',11094,'Autres subventions d’investissement en capital','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11099,'PCN-LUXEMBURG','CAPIT','17','','Plus-values immunisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11100,'PCN-LUXEMBURG','CAPIT','171',11099,'Plus-values immunisées à réinvestir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11101,'PCN-LUXEMBURG','CAPIT','172',11099,'Plus-values immunisées réinvesties','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11102,'PCN-LUXEMBURG','CAPIT','18','','Provisions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11103,'PCN-LUXEMBURG','CAPIT','181',11102,'Provisions pour pensions et obligations similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11104,'PCN-LUXEMBURG','CAPIT','182',11102,'Provisions pour impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11105,'PCN-LUXEMBURG','CAPIT','1821',11104,'Provisions pour impôt sur le revenu des collectivités','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11106,'PCN-LUXEMBURG','CAPIT','1822',11104,'Provisions pour impôt commercial','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11107,'PCN-LUXEMBURG','CAPIT','1823',11104,'Provisions pour impôt sur la fortune','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11108,'PCN-LUXEMBURG','CAPIT','1828',11104,'Autres provisions pour impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11109,'PCN-LUXEMBURG','CAPIT','183',11102,'Provisions pour impôts différés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11110,'PCN-LUXEMBURG','CAPIT','188',11102,'Autres provisions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11111,'PCN-LUXEMBURG','CAPIT','1881',11110,'Provisions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11112,'PCN-LUXEMBURG','CAPIT','1882',11110,'Provisions financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11113,'PCN-LUXEMBURG','CAPIT','1883',11110,'Provisions exceptionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11114,'PCN-LUXEMBURG','CAPIT','19','','Dettes financières et dettes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11115,'PCN-LUXEMBURG','CAPIT','191',11114,'Dettes subordonnées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11116,'PCN-LUXEMBURG','CAPIT','1911',11115,'dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11117,'PCN-LUXEMBURG','CAPIT','19111',11116,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11118,'PCN-LUXEMBURG','CAPIT','19112',11116,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11119,'PCN-LUXEMBURG','CAPIT','1912',11115,'dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11120,'PCN-LUXEMBURG','CAPIT','19121',11119,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11121,'PCN-LUXEMBURG','CAPIT','19122',11119,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11122,'PCN-LUXEMBURG','CAPIT','192',11114,'Emprunts obligataires convertibles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11123,'PCN-LUXEMBURG','CAPIT','1921',11122,'dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11124,'PCN-LUXEMBURG','CAPIT','19211',11123,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11125,'PCN-LUXEMBURG','CAPIT','19212',11123,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11126,'PCN-LUXEMBURG','CAPIT','1922',11122,'dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11127,'PCN-LUXEMBURG','CAPIT','19221',11126,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11128,'PCN-LUXEMBURG','CAPIT','19222',11126,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11129,'PCN-LUXEMBURG','CAPIT','193',11114,'Emprunts obligataires non convertibles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11130,'PCN-LUXEMBURG','CAPIT','1931',11129,'dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11131,'PCN-LUXEMBURG','CAPIT','19311',11130,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11132,'PCN-LUXEMBURG','CAPIT','19312',11130,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11133,'PCN-LUXEMBURG','CAPIT','1932',11129,'dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11134,'PCN-LUXEMBURG','CAPIT','19321',11133,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11135,'PCN-LUXEMBURG','CAPIT','19322',11133,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11136,'PCN-LUXEMBURG','CAPIT','194',11114,'Dettes envers des établissements de crédit','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11137,'PCN-LUXEMBURG','CAPIT','1941',11136,'dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11138,'PCN-LUXEMBURG','CAPIT','19411',11137,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11139,'PCN-LUXEMBURG','CAPIT','19412',11137,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11140,'PCN-LUXEMBURG','CAPIT','1942',11136,'dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11141,'PCN-LUXEMBURG','CAPIT','19421',11140,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11142,'PCN-LUXEMBURG','CAPIT','19422',11140,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11143,'PCN-LUXEMBURG','CAPIT','195',11114,'Dettes de leasing financier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11144,'PCN-LUXEMBURG','CAPIT','1951',11143,'dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11145,'PCN-LUXEMBURG','CAPIT','1952',11143,'dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11146,'PCN-LUXEMBURG','CAPIT','198',11114,'Autres emprunts et dettes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11147,'PCN-LUXEMBURG','CAPIT','1981',11146,'dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11148,'PCN-LUXEMBURG','CAPIT','19811',11147,'Autres emprunts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11149,'PCN-LUXEMBURG','CAPIT','19812',11147,'Rentes viagères capitalisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11150,'PCN-LUXEMBURG','CAPIT','19813',11147,'Autres dettes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11151,'PCN-LUXEMBURG','CAPIT','19814',11147,'Intérêts courus sur autres emprunts et dettes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11152,'PCN-LUXEMBURG','CAPIT','1982',11146,'dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11153,'PCN-LUXEMBURG','CAPIT','19821',11152,'Autres emprunts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11154,'PCN-LUXEMBURG','CAPIT','19822',11152,'Rentes viagères capitalisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11155,'PCN-LUXEMBURG','CAPIT','19823',11152,'Autres dettes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11156,'PCN-LUXEMBURG','CAPIT','19824',11152,'Intérêts courus sur autres emprunts et dettes assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11157,'PCN-LUXEMBURG','IMMO','2','','Frais d’établissement et frais assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11158,'PCN-LUXEMBURG','IMMO','201',11157,'Frais de constitution','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11159,'PCN-LUXEMBURG','IMMO','202',11157,'Frais de premier établissement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11160,'PCN-LUXEMBURG','IMMO','2021',11159,'Frais de prospection','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11161,'PCN-LUXEMBURG','IMMO','2022',11159,'Frais de publicité','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11162,'PCN-LUXEMBURG','IMMO','203',11157,'Frais d’augmentation de capital et d’opérations diverses (fusions, scissions, transformations)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11163,'PCN-LUXEMBURG','IMMO','204',11157,'Frais d’émission d’emprunts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11164,'PCN-LUXEMBURG','IMMO','208',11157,'Autres frais assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11165,'PCN-LUXEMBURG','IMMO','21','','Immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11166,'PCN-LUXEMBURG','IMMO','211',11165,'Frais de recherche et de développement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11167,'PCN-LUXEMBURG','IMMO','212',11165,'Concessions, brevets, licences, marques ainsi que droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11168,'PCN-LUXEMBURG','IMMO','2121',11167,'Acquis à titre onéreux (Actifs incorporels non produits)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11169,'PCN-LUXEMBURG','IMMO','21211',11168,'Concessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11170,'PCN-LUXEMBURG','IMMO','21212',11168,'Brevets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11171,'PCN-LUXEMBURG','IMMO','21213',11168,'Licences informatiques (logiciels et progiciels informatiques)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11172,'PCN-LUXEMBURG','IMMO','21214',11168,'Marques et franchises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11173,'PCN-LUXEMBURG','IMMO','21215',11168,'Droits et valeurs similaires acquis à titre onéreux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11174,'PCN-LUXEMBURG','IMMO','212151',11173,'Droits d’auteur et de reproduction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11175,'PCN-LUXEMBURG','IMMO','212152',11173,'Droits d’émission','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11176,'PCN-LUXEMBURG','IMMO','212158',11173,'Autres droits et valeurs similaires acquis à titre onéreux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11177,'PCN-LUXEMBURG','IMMO','2122',11167,'Créés par l’entreprise elle-même (Actifs incorporels produits)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11178,'PCN-LUXEMBURG','IMMO','21221',11177,'Concessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11179,'PCN-LUXEMBURG','IMMO','21222',11177,'Brevets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11180,'PCN-LUXEMBURG','IMMO','21223',11177,'Licences informatiques (logiciels et progiciels informatiques)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11181,'PCN-LUXEMBURG','IMMO','21224',11177,'Marques et franchises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11182,'PCN-LUXEMBURG','IMMO','21225',11177,'Droits et valeurs similaires créés par l’entreprise elle-même','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11183,'PCN-LUXEMBURG','IMMO','212251',11182,'Droits d’auteur et de reproduction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11184,'PCN-LUXEMBURG','IMMO','212252',11182,'Droits d’émission','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11185,'PCN-LUXEMBURG','IMMO','212258',11182,'Autres droits et valeurs similaires créés par l’entreprise elle-même','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11186,'PCN-LUXEMBURG','IMMO','213',11165,'Fonds de commerce, dans la mesure où il a été acquis à titre onéreux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11187,'PCN-LUXEMBURG','IMMO','214',11165,'Acomptes versés et immobilisations incorporelles en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11188,'PCN-LUXEMBURG','IMMO','2141',11187,'Frais de recherche et de développement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11189,'PCN-LUXEMBURG','IMMO','2142',11187,'Concessions, brevets, licences, marques ainsi que droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11190,'PCN-LUXEMBURG','IMMO','2143',11187,'Fonds de commerce','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11191,'PCN-LUXEMBURG','IMMO','22','','Immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11192,'PCN-LUXEMBURG','IMMO','221',11191,'Terrains et constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11193,'PCN-LUXEMBURG','IMMO','2211',11192,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11194,'PCN-LUXEMBURG','IMMO','22111',11193,'Terrains nus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11195,'PCN-LUXEMBURG','IMMO','22112',11193,'Terrains aménagés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11196,'PCN-LUXEMBURG','IMMO','22113',11193,'Sous-sols et sursols','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11197,'PCN-LUXEMBURG','IMMO','22114',11193,'Terrains de gisement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11198,'PCN-LUXEMBURG','IMMO','22115',11193,'Terrains bâtis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11199,'PCN-LUXEMBURG','IMMO','22118',11193,'Autres terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11200,'PCN-LUXEMBURG','IMMO','2212',11192,'Agencements et aménagements de terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11201,'PCN-LUXEMBURG','IMMO','22121',11200,'Agencements et aménagements de terrains nus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11202,'PCN-LUXEMBURG','IMMO','22122',11200,'Agencements et aménagements de terrains aménagés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11203,'PCN-LUXEMBURG','IMMO','22123',11200,'Agencements et aménagements de sous-sols et sursols','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11204,'PCN-LUXEMBURG','IMMO','22124',11200,'Agencements et aménagements de terrains de gisement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11205,'PCN-LUXEMBURG','IMMO','22125',11200,'Agencements et aménagements de terrains bâtis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11206,'PCN-LUXEMBURG','IMMO','22128',11200,'Agencements et aménagements d’autres terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11207,'PCN-LUXEMBURG','IMMO','2213',11192,'Constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11208,'PCN-LUXEMBURG','IMMO','22131',11207,'Constructions sur sol propre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11209,'PCN-LUXEMBURG','IMMO','22132',11207,'Constructions sur sol d’autrui','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11210,'PCN-LUXEMBURG','IMMO','222',11191,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11211,'PCN-LUXEMBURG','IMMO','2221',11210,'Installations techniques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11212,'PCN-LUXEMBURG','IMMO','2222',11210,'Machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11213,'PCN-LUXEMBURG','IMMO','223',11191,'Autres installations, outillage, mobilier et matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11214,'PCN-LUXEMBURG','IMMO','2231',11213,'Equipement de transport et de manutention','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11215,'PCN-LUXEMBURG','IMMO','2232',11213,'Véhicules de transport','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11216,'PCN-LUXEMBURG','IMMO','2233',11213,'Outillage','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11217,'PCN-LUXEMBURG','IMMO','2234',11213,'Mobilier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11218,'PCN-LUXEMBURG','IMMO','2235',11213,'Matériel informatique (hardware)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11219,'PCN-LUXEMBURG','IMMO','2236',11213,'Cheptel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11220,'PCN-LUXEMBURG','IMMO','2237',11213,'Emballages récupérables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11221,'PCN-LUXEMBURG','IMMO','2238',11213,'Autres installations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11222,'PCN-LUXEMBURG','IMMO','224',11191,'Acomptes versés et immobilisations corporelles en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11223,'PCN-LUXEMBURG','IMMO','2241',11222,'Terrains et constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11224,'PCN-LUXEMBURG','IMMO','22411',11223,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11225,'PCN-LUXEMBURG','IMMO','22412',11223,'Agencements et aménagements de terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11226,'PCN-LUXEMBURG','IMMO','22413',11223,'Constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11227,'PCN-LUXEMBURG','IMMO','2242',11222,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11228,'PCN-LUXEMBURG','IMMO','2243',11222,'Autres installations, outillage, mobilier et matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11229,'PCN-LUXEMBURG','IMMO','23','','Immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11230,'PCN-LUXEMBURG','IMMO','231',11229,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11231,'PCN-LUXEMBURG','IMMO','232',11229,'Créances sur des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11232,'PCN-LUXEMBURG','IMMO','233',11229,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11233,'PCN-LUXEMBURG','IMMO','234',11229,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11234,'PCN-LUXEMBURG','IMMO','235',11229,'Titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11235,'PCN-LUXEMBURG','IMMO','2351',11234,'Titres immobilisés (droit de propriété)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11236,'PCN-LUXEMBURG','IMMO','23511',11235,'Actions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11237,'PCN-LUXEMBURG','IMMO','23518',11235,'Autres titres immobilisés (droit de propriété)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11238,'PCN-LUXEMBURG','IMMO','2352',11234,'Titres immobilisés (droit de créance)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11239,'PCN-LUXEMBURG','IMMO','23521',11238,'Obligations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11240,'PCN-LUXEMBURG','IMMO','23528',11238,'Autres titres immobilisés (droit de créance)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11241,'PCN-LUXEMBURG','IMMO','2358',11234,'Autres titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11242,'PCN-LUXEMBURG','IMMO','236',11229,'Prêts et créances immobilisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11243,'PCN-LUXEMBURG','IMMO','2361',11242,'Prêts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11244,'PCN-LUXEMBURG','IMMO','23611',11243,'Prêts participatifs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11245,'PCN-LUXEMBURG','IMMO','23612',11243,'Prêts aux associés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11246,'PCN-LUXEMBURG','IMMO','23613',11243,'Prêts au personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11247,'PCN-LUXEMBURG','IMMO','23618',11243,'Autres prêts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11248,'PCN-LUXEMBURG','IMMO','2362',11242,'Dépôts et cautionnements versés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11249,'PCN-LUXEMBURG','IMMO','23621',11248,'Dépôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11250,'PCN-LUXEMBURG','IMMO','23622',11248,'Cautionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11251,'PCN-LUXEMBURG','IMMO','2363',11242,'Créances immobilisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11252,'PCN-LUXEMBURG','IMMO','237',11229,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11253,'PCN-LUXEMBURG','STOCK','3','','Matières premières et consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11254,'PCN-LUXEMBURG','STOCK','301',11253,'Matières premières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11255,'PCN-LUXEMBURG','STOCK','302',11253,'Matières consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11256,'PCN-LUXEMBURG','STOCK','303',11253,'Fournitures consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11257,'PCN-LUXEMBURG','STOCK','3031',11256,'Combustibles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11258,'PCN-LUXEMBURG','STOCK','3032',11256,'Produits d’entretien','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11259,'PCN-LUXEMBURG','STOCK','3033',11256,'Fournitures d’atelier et d’usine','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11260,'PCN-LUXEMBURG','STOCK','3034',11256,'Fournitures de magasin','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11261,'PCN-LUXEMBURG','STOCK','3035',11256,'Fournitures de bureau1','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11262,'PCN-LUXEMBURG','STOCK','3036',11256,'Carburants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11263,'PCN-LUXEMBURG','STOCK','3037',11256,'Lubrifiants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11264,'PCN-LUXEMBURG','STOCK','3038',11256,'Autres fournitures consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11265,'PCN-LUXEMBURG','STOCK','304',11253,'Emballages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11266,'PCN-LUXEMBURG','STOCK','3041',11265,'Emballages non-récupérables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11267,'PCN-LUXEMBURG','STOCK','3042',11265,'Emballages récupérables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11268,'PCN-LUXEMBURG','STOCK','3043',11265,'Emballages à usage mixte','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11269,'PCN-LUXEMBURG','STOCK','305',11253,'Approvisionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11270,'PCN-LUXEMBURG','STOCK','31','','Produits en cours de fabrication et commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11271,'PCN-LUXEMBURG','STOCK','311',11270,'Produits en cours de fabrication','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11272,'PCN-LUXEMBURG','STOCK','312',11270,'Commandes en cours – Produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11273,'PCN-LUXEMBURG','STOCK','313',11270,'Commandes en cours – Prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11274,'PCN-LUXEMBURG','STOCK','314',11270,'Immeubles en construction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11275,'PCN-LUXEMBURG','STOCK','32','','Produits finis et marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11276,'PCN-LUXEMBURG','STOCK','321',11275,'Produits finis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11277,'PCN-LUXEMBURG','STOCK','322',11275,'Produits intermédiaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11278,'PCN-LUXEMBURG','STOCK','323',11275,'Produits résiduels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11279,'PCN-LUXEMBURG','STOCK','3231',11278,'Déchets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11280,'PCN-LUXEMBURG','STOCK','3232',11278,'Rebuts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11281,'PCN-LUXEMBURG','STOCK','3233',11278,'Matières de récupération','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11282,'PCN-LUXEMBURG','STOCK','326',11275,'Marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11283,'PCN-LUXEMBURG','STOCK','327',11275,'Marchandises en voie d’acheminement, mises en dépôt ou données en consignation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11284,'PCN-LUXEMBURG','STOCK','33','','Terrains et immeubles destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11285,'PCN-LUXEMBURG','STOCK','331',11284,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11286,'PCN-LUXEMBURG','STOCK','332',11284,'Immeubles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11287,'PCN-LUXEMBURG','STOCK','3321',11286,'Immeubles acquis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11288,'PCN-LUXEMBURG','STOCK','3322',11286,'Immeubles construits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11289,'PCN-LUXEMBURG','STOCK','34','','Acomptes versés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11290,'PCN-LUXEMBURG','STOCK','341',11289,'Acomptes versés sur matières premières et consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11291,'PCN-LUXEMBURG','STOCK','342',11289,'Acomptes versés sur produits en cours de fabrication et commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11292,'PCN-LUXEMBURG','STOCK','343',11289,'Acomptes versés sur produits finis et marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11293,'PCN-LUXEMBURG','STOCK','344',11289,'Acomptes versés sur terrains et immeubles destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11294,'PCN-LUXEMBURG','THIRDPARTY','4','','Créances résultant de ventes et prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11295,'PCN-LUXEMBURG','THIRDPARTY','401',11294,'Créances dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11296,'PCN-LUXEMBURG','THIRDPARTY','4011',11295,'Clients','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11297,'PCN-LUXEMBURG','THIRDPARTY','4012',11295,'Clients – Effets à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11298,'PCN-LUXEMBURG','THIRDPARTY','4013',11295,'Clients douteux ou litigieux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11299,'PCN-LUXEMBURG','THIRDPARTY','4014',11295,'Clients – Factures à établir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11300,'PCN-LUXEMBURG','THIRDPARTY','4015',11295,'Clients créditeurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11301,'PCN-LUXEMBURG','THIRDPARTY','4019',11295,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11302,'PCN-LUXEMBURG','THIRDPARTY','402',11294,'Créances dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11303,'PCN-LUXEMBURG','THIRDPARTY','4021',11302,'Clients','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11304,'PCN-LUXEMBURG','THIRDPARTY','4022',11302,'Clients – Effets à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11305,'PCN-LUXEMBURG','THIRDPARTY','4023',11302,'Clients douteux ou litigieux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11306,'PCN-LUXEMBURG','THIRDPARTY','4024',11302,'Clients – Factures à établir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11307,'PCN-LUXEMBURG','THIRDPARTY','4025',11302,'Clients créditeurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11308,'PCN-LUXEMBURG','THIRDPARTY','4029',11302,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11309,'PCN-LUXEMBURG','THIRDPARTY','41','','Créances sur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11310,'PCN-LUXEMBURG','THIRDPARTY','411',11309,'Créances sur des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11311,'PCN-LUXEMBURG','THIRDPARTY','4111',11310,'Créances dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11312,'PCN-LUXEMBURG','THIRDPARTY','41111',11311,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11313,'PCN-LUXEMBURG','THIRDPARTY','41112',11311,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11314,'PCN-LUXEMBURG','THIRDPARTY','41113',11311,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11315,'PCN-LUXEMBURG','THIRDPARTY','41114',11311,'Dividendes à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11316,'PCN-LUXEMBURG','THIRDPARTY','41118',11311,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11317,'PCN-LUXEMBURG','THIRDPARTY','41119',11311,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11318,'PCN-LUXEMBURG','THIRDPARTY','4112',11310,'Créances dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11319,'PCN-LUXEMBURG','THIRDPARTY','41121',11318,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11320,'PCN-LUXEMBURG','THIRDPARTY','41122',11318,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11321,'PCN-LUXEMBURG','THIRDPARTY','41123',11318,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11322,'PCN-LUXEMBURG','THIRDPARTY','41124',11318,'Dividendes à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11323,'PCN-LUXEMBURG','THIRDPARTY','41128',11318,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11324,'PCN-LUXEMBURG','THIRDPARTY','41129',11318,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11325,'PCN-LUXEMBURG','THIRDPARTY','412',11309,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11326,'PCN-LUXEMBURG','THIRDPARTY','4121',11325,'Créances dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11327,'PCN-LUXEMBURG','THIRDPARTY','41211',11326,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11328,'PCN-LUXEMBURG','THIRDPARTY','41212',11326,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11329,'PCN-LUXEMBURG','THIRDPARTY','41213',11326,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11330,'PCN-LUXEMBURG','THIRDPARTY','41214',11326,'Dividendes à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11331,'PCN-LUXEMBURG','THIRDPARTY','41218',11326,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11332,'PCN-LUXEMBURG','THIRDPARTY','41219',11326,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11333,'PCN-LUXEMBURG','THIRDPARTY','4122',11325,'Créances dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11334,'PCN-LUXEMBURG','THIRDPARTY','41221',11333,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11335,'PCN-LUXEMBURG','THIRDPARTY','41222',11333,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11336,'PCN-LUXEMBURG','THIRDPARTY','41223',11333,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11337,'PCN-LUXEMBURG','THIRDPARTY','41224',11333,'Dividendes à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11338,'PCN-LUXEMBURG','THIRDPARTY','41228',11333,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11339,'PCN-LUXEMBURG','THIRDPARTY','41229',11333,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11340,'PCN-LUXEMBURG','THIRDPARTY','42','','Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11341,'PCN-LUXEMBURG','THIRDPARTY','421',11340,'Autres créances dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11342,'PCN-LUXEMBURG','THIRDPARTY','4211',11341,'Personnel – Avances et acomptes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11343,'PCN-LUXEMBURG','THIRDPARTY','42111',11342,'Avances et acomptes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11344,'PCN-LUXEMBURG','THIRDPARTY','42119',11342,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11345,'PCN-LUXEMBURG','THIRDPARTY','4212',11341,'Créances sur associés ou actionnaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11346,'PCN-LUXEMBURG','THIRDPARTY','42121',11345,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11347,'PCN-LUXEMBURG','THIRDPARTY','42122',11345,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11348,'PCN-LUXEMBURG','THIRDPARTY','42129',11345,'Corrections de valeur sur créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11349,'PCN-LUXEMBURG','THIRDPARTY','4213',11341,'Etat – Subventions à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11350,'PCN-LUXEMBURG','THIRDPARTY','42131',11349,'Subventions d’investissement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11351,'PCN-LUXEMBURG','THIRDPARTY','42132',11349,'Subventions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11352,'PCN-LUXEMBURG','THIRDPARTY','42138',11349,'Autres subventions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11353,'PCN-LUXEMBURG','THIRDPARTY','4214',11341,'Administration des Contributions Directes (ACD)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11354,'PCN-LUXEMBURG','THIRDPARTY','4215',11341,'Administration des Douanes et Accises (ADA)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11355,'PCN-LUXEMBURG','THIRDPARTY','4216',11341,'Administration de l’Enregistrement et des Domaines (AED)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11356,'PCN-LUXEMBURG','THIRDPARTY','42161',11355,'Taxe sur la valeur ajoutée – TVA','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11357,'PCN-LUXEMBURG','THIRDPARTY','421611',11356,'TVA en amont','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11358,'PCN-LUXEMBURG','THIRDPARTY','421612',11356,'TVA à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11359,'PCN-LUXEMBURG','THIRDPARTY','421613',11356,'TVA acomptes versés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11360,'PCN-LUXEMBURG','THIRDPARTY','421618',11356,'TVA – Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11361,'PCN-LUXEMBURG','THIRDPARTY','42162',11355,'Impôts indirects','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11362,'PCN-LUXEMBURG','THIRDPARTY','421621',11361,'Droits d’enregistrement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11363,'PCN-LUXEMBURG','THIRDPARTY','421622',11361,'Taxe d’abonnement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11364,'PCN-LUXEMBURG','THIRDPARTY','421623',11361,'Droits d’hypothèques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11365,'PCN-LUXEMBURG','THIRDPARTY','421624',11361,'Droits de timbre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11366,'PCN-LUXEMBURG','THIRDPARTY','421628',11361,'Autres impôts indirects','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11367,'PCN-LUXEMBURG','THIRDPARTY','42168',11355,'AED – Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11368,'PCN-LUXEMBURG','THIRDPARTY','4217',11341,'Créances sur la sécurité sociale et autres organismes sociaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11369,'PCN-LUXEMBURG','THIRDPARTY','42171',11368,'Centre Commun de Sécurité Sociale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11370,'PCN-LUXEMBURG','THIRDPARTY','42172',11368,'Mutualité des employeurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11371,'PCN-LUXEMBURG','THIRDPARTY','42178',11368,'Autres organismes sociaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11372,'PCN-LUXEMBURG','THIRDPARTY','4218',11341,'Créances diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11373,'PCN-LUXEMBURG','THIRDPARTY','42181',11372,'Impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11374,'PCN-LUXEMBURG','THIRDPARTY','421811',11373,'TVA étrangères','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11375,'PCN-LUXEMBURG','THIRDPARTY','421818',11373,'Autres impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11376,'PCN-LUXEMBURG','THIRDPARTY','42188',11372,'Autres créances diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11377,'PCN-LUXEMBURG','THIRDPARTY','42189',11372,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11378,'PCN-LUXEMBURG','THIRDPARTY','422',11340,'Autres créances dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11379,'PCN-LUXEMBURG','THIRDPARTY','4221',11378,'Personnel – Avances et acomptes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11380,'PCN-LUXEMBURG','THIRDPARTY','42211',11379,'Avances et acomptes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11381,'PCN-LUXEMBURG','THIRDPARTY','42219',11379,'Corrections de valeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11382,'PCN-LUXEMBURG','THIRDPARTY','4222',11378,'Associés ou actionnaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11383,'PCN-LUXEMBURG','THIRDPARTY','42221',11382,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11384,'PCN-LUXEMBURG','THIRDPARTY','42222',11382,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11385,'PCN-LUXEMBURG','THIRDPARTY','42229',11382,'Corrections de valeur sur créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11386,'PCN-LUXEMBURG','THIRDPARTY','4223',11378,'Etat – Subventions à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11387,'PCN-LUXEMBURG','THIRDPARTY','42231',11386,'Subventions d’investissement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11388,'PCN-LUXEMBURG','THIRDPARTY','42232',11386,'Subventions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11389,'PCN-LUXEMBURG','THIRDPARTY','42238',11386,'Autres subventions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11390,'PCN-LUXEMBURG','THIRDPARTY','4224',11378,'Administration des Contributions Directes (ACD)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11391,'PCN-LUXEMBURG','THIRDPARTY','4225',11378,'Administration des Douanes et Accises (ADA)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11392,'PCN-LUXEMBURG','THIRDPARTY','4226',11378,'Administration de l’Enregistrement et des Domaines (AED)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11393,'PCN-LUXEMBURG','THIRDPARTY','42261',11392,'Taxe sur la valeur ajoutée – TVA','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11394,'PCN-LUXEMBURG','THIRDPARTY','422611',11393,'TVA en amont','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11395,'PCN-LUXEMBURG','THIRDPARTY','422612',11393,'TVA à recevoir','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11396,'PCN-LUXEMBURG','THIRDPARTY','422613',11393,'TVA acomptes versés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11397,'PCN-LUXEMBURG','THIRDPARTY','422618',11393,'TVA – Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11398,'PCN-LUXEMBURG','THIRDPARTY','42262',11392,'Impôts indirects','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11399,'PCN-LUXEMBURG','THIRDPARTY','422621',11398,'Droits d’enregistrement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11400,'PCN-LUXEMBURG','THIRDPARTY','422622',11398,'Taxe d’abonnement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11401,'PCN-LUXEMBURG','THIRDPARTY','422623',11398,'Droits d’hypothèques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11402,'PCN-LUXEMBURG','THIRDPARTY','422624',11398,'Droits de timbre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11403,'PCN-LUXEMBURG','THIRDPARTY','422628',11398,'Autres impôts indirects','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11404,'PCN-LUXEMBURG','THIRDPARTY','4227',11378,'Créances sur la sécurité sociale et autres organismes sociaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11405,'PCN-LUXEMBURG','THIRDPARTY','42271',11404,'Centre Commun de Sécurité Sociale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11406,'PCN-LUXEMBURG','THIRDPARTY','42272',11404,'Mutualité des employeurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11407,'PCN-LUXEMBURG','THIRDPARTY','42278',11404,'Autres organismes sociaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11408,'PCN-LUXEMBURG','THIRDPARTY','4228',11378,'Créances diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11409,'PCN-LUXEMBURG','THIRDPARTY','42281',11408,'Impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11410,'PCN-LUXEMBURG','THIRDPARTY','422811',11409,'TVA étrangères','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11411,'PCN-LUXEMBURG','THIRDPARTY','422818',11409,'Autres impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11412,'PCN-LUXEMBURG','THIRDPARTY','42288',11408,'Autres créances diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11413,'PCN-LUXEMBURG','THIRDPARTY','42289',11408,'Corrections de valeur sur autres créances diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11414,'PCN-LUXEMBURG','THIRDPARTY','43','','Acomptes reçus sur commandes pour autant qu’ils ne sont pas déduits des stocks de façon distincte','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11415,'PCN-LUXEMBURG','THIRDPARTY','431',11414,'Acomptes reçus dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11416,'PCN-LUXEMBURG','THIRDPARTY','432',11414,'Acomptes reçus dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11417,'PCN-LUXEMBURG','THIRDPARTY','44','','Dettes sur achats et prestations de services et dettes représentées par des effets de commerce','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11418,'PCN-LUXEMBURG','THIRDPARTY','441',11417,'Dettes sur achats et prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11419,'PCN-LUXEMBURG','THIRDPARTY','4411',11418,'Dettes sur achats et prestations de services dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11420,'PCN-LUXEMBURG','THIRDPARTY','44111',11419,'Fournisseurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11421,'PCN-LUXEMBURG','THIRDPARTY','44112',11419,'Fournisseurs – Factures non parvenues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11422,'PCN-LUXEMBURG','THIRDPARTY','44113',11419,'Fournisseurs débiteurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11423,'PCN-LUXEMBURG','THIRDPARTY','441131',11422,'Fournisseurs – Avances et acomptes versés sur commandes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11424,'PCN-LUXEMBURG','THIRDPARTY','441132',11422,'Fournisseurs – Créances pour emballages et matériel à rendre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11425,'PCN-LUXEMBURG','THIRDPARTY','441133',11422,'Fournisseurs – Autres avoirs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11426,'PCN-LUXEMBURG','THIRDPARTY','441134',11422,'Rabais, remises, ristournes à obtenir et autres avoirs non encore reçus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11427,'PCN-LUXEMBURG','THIRDPARTY','4412',11418,'Dettes sur achats et prestations de services dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11428,'PCN-LUXEMBURG','THIRDPARTY','44121',11427,'Fournisseurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11429,'PCN-LUXEMBURG','THIRDPARTY','44122',11427,'Fournisseurs – Factures non parvenues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11430,'PCN-LUXEMBURG','THIRDPARTY','44123',11427,'Fournisseurs débiteurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11431,'PCN-LUXEMBURG','THIRDPARTY','441231',11430,'Fournisseurs – Avances et acomptes versés sur commandes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11432,'PCN-LUXEMBURG','THIRDPARTY','441232',11430,'Fournisseurs – Créances pour emballages et matériel à rendre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11433,'PCN-LUXEMBURG','THIRDPARTY','441233',11430,'Fournisseurs – Autres avoirs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11434,'PCN-LUXEMBURG','THIRDPARTY','441234',11430,'Rabais, remises, ristournes à obtenir et autres avoirs non encore reçus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11435,'PCN-LUXEMBURG','THIRDPARTY','442',11417,'Dettes représentées par des effets de commerce','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11436,'PCN-LUXEMBURG','THIRDPARTY','4421',11435,'Dettes représentées par des effets de commerce dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11437,'PCN-LUXEMBURG','THIRDPARTY','4422',11435,'Dettes représentées par des effets de commerce dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11438,'PCN-LUXEMBURG','THIRDPARTY','45','','Dettes envers des entreprises liées et des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11439,'PCN-LUXEMBURG','THIRDPARTY','451',11438,'Dettes envers des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11440,'PCN-LUXEMBURG','THIRDPARTY','4511',11439,'Dettes envers des entreprises liées dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11441,'PCN-LUXEMBURG','THIRDPARTY','45111',11440,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11442,'PCN-LUXEMBURG','THIRDPARTY','45112',11440,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11443,'PCN-LUXEMBURG','THIRDPARTY','45113',11440,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11444,'PCN-LUXEMBURG','THIRDPARTY','45114',11440,'Dividendes à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11445,'PCN-LUXEMBURG','THIRDPARTY','45118',11440,'Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11446,'PCN-LUXEMBURG','THIRDPARTY','4512',11439,'Dettes envers des entreprises liées dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11447,'PCN-LUXEMBURG','THIRDPARTY','45121',11446,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11448,'PCN-LUXEMBURG','THIRDPARTY','45122',11446,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11449,'PCN-LUXEMBURG','THIRDPARTY','45123',11446,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11450,'PCN-LUXEMBURG','THIRDPARTY','45124',11446,'Dividendes à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11451,'PCN-LUXEMBURG','THIRDPARTY','45128',11446,'Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11452,'PCN-LUXEMBURG','THIRDPARTY','452',11438,'Dettes envers des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11453,'PCN-LUXEMBURG','THIRDPARTY','4521',11452,'Dettes envers des entreprises avec lesquelles la société a un lien de participation dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11454,'PCN-LUXEMBURG','THIRDPARTY','45211',11453,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11455,'PCN-LUXEMBURG','THIRDPARTY','45212',11453,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11456,'PCN-LUXEMBURG','THIRDPARTY','45213',11453,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11457,'PCN-LUXEMBURG','THIRDPARTY','45214',11453,'Dividendes à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11458,'PCN-LUXEMBURG','THIRDPARTY','45218',11453,'Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11459,'PCN-LUXEMBURG','THIRDPARTY','4522',11452,'Dettes envers des entreprises avec lesquelles la société a un lien de participation dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11460,'PCN-LUXEMBURG','THIRDPARTY','45221',11459,'Ventes de marchandises et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11461,'PCN-LUXEMBURG','THIRDPARTY','45222',11459,'Prêts et avances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11462,'PCN-LUXEMBURG','THIRDPARTY','45223',11459,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11463,'PCN-LUXEMBURG','THIRDPARTY','45224',11459,'Dividendes à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11464,'PCN-LUXEMBURG','THIRDPARTY','45228',11459,'Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11465,'PCN-LUXEMBURG','THIRDPARTY','46','','Dettes fiscales et dettes envers la sécurité sociale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11466,'PCN-LUXEMBURG','THIRDPARTY','461',11465,'Dettes fiscales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11467,'PCN-LUXEMBURG','THIRDPARTY','4611',11466,'Administrations communales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11468,'PCN-LUXEMBURG','THIRDPARTY','46111',11467,'Impôts communaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11469,'PCN-LUXEMBURG','THIRDPARTY','46112',11467,'Taxes communales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11470,'PCN-LUXEMBURG','THIRDPARTY','4612',11466,'Administration des Contributions Directes (ACD)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11471,'PCN-LUXEMBURG','THIRDPARTY','46121',11470,'Impôt sur le revenu des collectivités','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11472,'PCN-LUXEMBURG','THIRDPARTY','461211',11471,'Impôt sur le revenu des collectivités – charge fiscale estimée','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11473,'PCN-LUXEMBURG','THIRDPARTY','461212',11471,'Impôt sur le revenu des collectivités – dette fiscale à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11474,'PCN-LUXEMBURG','THIRDPARTY','46122',11470,'Impôt commercial','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11475,'PCN-LUXEMBURG','THIRDPARTY','461221',11474,'Impôt commercial – charge fiscale estimée','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11476,'PCN-LUXEMBURG','THIRDPARTY','461222',11474,'Impôt commercial – dette fiscale à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11477,'PCN-LUXEMBURG','THIRDPARTY','46123',11470,'Impôt sur la fortune','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11478,'PCN-LUXEMBURG','THIRDPARTY','461231',11477,'Impôt sur la fortune – charge fiscale estimée','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11479,'PCN-LUXEMBURG','THIRDPARTY','461232',11477,'Impôt sur la fortune – dette fiscale à payer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11480,'PCN-LUXEMBURG','THIRDPARTY','46124',11470,'Retenue d’impôt sur traitements et salaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11481,'PCN-LUXEMBURG','THIRDPARTY','46125',11470,'Retenue d’impôt sur revenus de capitaux mobiliers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11482,'PCN-LUXEMBURG','THIRDPARTY','46126',11470,'Retenue d’impôt sur les tantièmes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11483,'PCN-LUXEMBURG','THIRDPARTY','46128',11470,'ACD – Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11484,'PCN-LUXEMBURG','THIRDPARTY','4613',11466,'Administration des Douanes et Accises (ADA)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11485,'PCN-LUXEMBURG','THIRDPARTY','46131',11484,'Taxe sur les véhicules automoteurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11486,'PCN-LUXEMBURG','THIRDPARTY','46132',11484,'Droits d’accises et taxe de consommation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11487,'PCN-LUXEMBURG','THIRDPARTY','46138',11484,'ADA – Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11488,'PCN-LUXEMBURG','THIRDPARTY','4614',11466,'Administration de l’Enregistrement et des Domaines (AED)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11489,'PCN-LUXEMBURG','THIRDPARTY','46141',11488,'Taxe sur la valeur ajoutée – TVA','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11490,'PCN-LUXEMBURG','THIRDPARTY','461411',11489,'TVA en aval','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11491,'PCN-LUXEMBURG','THIRDPARTY','461412',11489,'TVA due','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11492,'PCN-LUXEMBURG','THIRDPARTY','461413',11489,'TVA acomptes reçus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11493,'PCN-LUXEMBURG','THIRDPARTY','461418',11489,'TVA – Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11494,'PCN-LUXEMBURG','THIRDPARTY','46142',11488,'Impôts indirects','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11495,'PCN-LUXEMBURG','THIRDPARTY','461421',11494,'Droits d’enregistrement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11496,'PCN-LUXEMBURG','THIRDPARTY','461422',11494,'Taxe d’abonnement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11497,'PCN-LUXEMBURG','THIRDPARTY','461423',11494,'Droits d’hypothèques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11498,'PCN-LUXEMBURG','THIRDPARTY','461424',11494,'Droits de timbre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11499,'PCN-LUXEMBURG','THIRDPARTY','461428',11494,'Autres impôts indirects','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11500,'PCN-LUXEMBURG','THIRDPARTY','4615',11466,'Administrations fiscales étrangères','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11501,'PCN-LUXEMBURG','THIRDPARTY','462',11465,'Dettes au titre de la sécurité sociale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11502,'PCN-LUXEMBURG','THIRDPARTY','4621',11501,'Centre Commun de Sécurité Sociale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11503,'PCN-LUXEMBURG','THIRDPARTY','4622',11501,'Organismes de sécurité sociale étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11504,'PCN-LUXEMBURG','THIRDPARTY','4628',11501,'Autres organismes sociaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11505,'PCN-LUXEMBURG','THIRDPARTY','47','','Autres dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11506,'PCN-LUXEMBURG','THIRDPARTY','471',11505,'Autres dettes dont la durée résiduelle est inférieure ou égale à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11507,'PCN-LUXEMBURG','THIRDPARTY','4711',11506,'Dépôts et cautionnements reçus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11508,'PCN-LUXEMBURG','THIRDPARTY','47111',11507,'Dépôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11509,'PCN-LUXEMBURG','THIRDPARTY','47112',11507,'Cautionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11510,'PCN-LUXEMBURG','THIRDPARTY','47113',11507,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11511,'PCN-LUXEMBURG','THIRDPARTY','4712',11506,'Dettes envers associés et actionnaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11512,'PCN-LUXEMBURG','THIRDPARTY','47121',11511,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11513,'PCN-LUXEMBURG','THIRDPARTY','47122',11511,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11514,'PCN-LUXEMBURG','THIRDPARTY','4713',11506,'Dettes envers administrateurs, gérants et commissaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11515,'PCN-LUXEMBURG','THIRDPARTY','4714',11506,'Dettes envers le personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11516,'PCN-LUXEMBURG','THIRDPARTY','47141',11515,'Personnel – Rémunérations dues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11517,'PCN-LUXEMBURG','THIRDPARTY','47142',11515,'Personnel – Dépôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11518,'PCN-LUXEMBURG','THIRDPARTY','47143',11515,'Personnel – Oppositions, saisies','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11519,'PCN-LUXEMBURG','THIRDPARTY','47148',11515,'Personnel – Autres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11520,'PCN-LUXEMBURG','THIRDPARTY','4715',11506,'Etat – Droits d’émission à restituer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11521,'PCN-LUXEMBURG','THIRDPARTY','4718',11506,'Autres dettes diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11522,'PCN-LUXEMBURG','THIRDPARTY','472',11505,'Autres dettes dont la durée résiduelle est supérieure à un an','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11523,'PCN-LUXEMBURG','THIRDPARTY','4721',11522,'Dépôts et cautionnements reçus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11524,'PCN-LUXEMBURG','THIRDPARTY','47211',11523,'Dépôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11525,'PCN-LUXEMBURG','THIRDPARTY','47212',11523,'Cautionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11526,'PCN-LUXEMBURG','THIRDPARTY','47213',11523,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11527,'PCN-LUXEMBURG','THIRDPARTY','4722',11522,'Dettes envers associés et actionnaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11528,'PCN-LUXEMBURG','THIRDPARTY','47221',11527,'Montant principal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11529,'PCN-LUXEMBURG','THIRDPARTY','47222',11527,'Intérêts courus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11530,'PCN-LUXEMBURG','THIRDPARTY','4723',11522,'Dettes envers administrateurs, gérants et commissaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11531,'PCN-LUXEMBURG','THIRDPARTY','4724',11522,'Dettes envers le personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11532,'PCN-LUXEMBURG','THIRDPARTY','47241',11531,'Personnel – Rémunérations dues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11533,'PCN-LUXEMBURG','THIRDPARTY','47242',11531,'Personnel – Dépôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11534,'PCN-LUXEMBURG','THIRDPARTY','47243',11531,'Personnel – Oppositions, saisies','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11535,'PCN-LUXEMBURG','THIRDPARTY','47248',11531,'Personnel – Autres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11536,'PCN-LUXEMBURG','THIRDPARTY','4726',11522,'Etat – Droits d’émission à restituer','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11537,'PCN-LUXEMBURG','THIRDPARTY','4728',11522,'Autres dettes diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11538,'PCN-LUXEMBURG','THIRDPARTY','48','','Comptes de régularisation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11539,'PCN-LUXEMBURG','THIRDPARTY','481',11538,'Charges à reporter','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11540,'PCN-LUXEMBURG','THIRDPARTY','482',11538,'Produits à reporter','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11541,'PCN-LUXEMBURG','THIRDPARTY','483',11538,'Etat – droits d’émission alloués','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11542,'PCN-LUXEMBURG','THIRDPARTY','484',11538,'Comptes transitoires ou d’attente – Actif','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11543,'PCN-LUXEMBURG','THIRDPARTY','485',11538,'Comptes transitoires ou d’attente – Passif','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11544,'PCN-LUXEMBURG','THIRDPARTY','486',11538,'Comptes de liaison – Actif','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11545,'PCN-LUXEMBURG','THIRDPARTY','487',11538,'Comptes de liaison – Passif','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11546,'PCN-LUXEMBURG','FINAN','5','','Valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11547,'PCN-LUXEMBURG','FINAN','501',11546,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11548,'PCN-LUXEMBURG','FINAN','502',11546,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11549,'PCN-LUXEMBURG','FINAN','503',11546,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11550,'PCN-LUXEMBURG','FINAN','508',11546,'Autres valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11551,'PCN-LUXEMBURG','FINAN','5081',11550,'Actions – Titres cotés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11552,'PCN-LUXEMBURG','FINAN','5082',11550,'Actions – Titres non cotés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11553,'PCN-LUXEMBURG','FINAN','5083',11550,'Obligations et autres titres de créance émis par la société et rachetés par elle','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11554,'PCN-LUXEMBURG','FINAN','5084',11550,'Obligations – Titres cotés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11555,'PCN-LUXEMBURG','FINAN','5085',11550,'Obligations – Titres non cotés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11556,'PCN-LUXEMBURG','FINAN','5088',11550,'Autres valeurs mobilières diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11557,'PCN-LUXEMBURG','FINAN','51','','Avoirs en banques, avoirs en comptes de chèques postaux, chèques et encaisse','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11558,'PCN-LUXEMBURG','FINAN','511',11557,'Chèques à encaisser','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11559,'PCN-LUXEMBURG','FINAN','512',11557,'Valeurs à l’encaissement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11560,'PCN-LUXEMBURG','FINAN','513',11557,'Banques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11561,'PCN-LUXEMBURG','FINAN','5131',11560,'Banques comptes courants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11562,'PCN-LUXEMBURG','FINAN','5132',11560,'Banques comptes à terme','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11563,'PCN-LUXEMBURG','FINAN','514',11557,'Compte chèque postal','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11564,'PCN-LUXEMBURG','FINAN','516',11557,'Caisse','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11565,'PCN-LUXEMBURG','FINAN','517',11557,'Virements internes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11566,'PCN-LUXEMBURG','FINAN','518',11557,'Autres avoirs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11567,'PCN-LUXEMBURG','EXPENSE','6','','Consommation de marchandises et de matières premières et consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11568,'PCN-LUXEMBURG','EXPENSE','601',11567,'Matières premières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11569,'PCN-LUXEMBURG','EXPENSE','602',11567,'Matières consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11570,'PCN-LUXEMBURG','EXPENSE','603',11567,'Fournitures consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11571,'PCN-LUXEMBURG','EXPENSE','6031',11570,'Combustibles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11572,'PCN-LUXEMBURG','EXPENSE','60311',11571,'Solides','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11573,'PCN-LUXEMBURG','EXPENSE','60312',11571,'Liquides','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11574,'PCN-LUXEMBURG','EXPENSE','60313',11571,'Gaz comprimé','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11575,'PCN-LUXEMBURG','EXPENSE','6032',11570,'Produits d’entretien','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11576,'PCN-LUXEMBURG','EXPENSE','6033',11570,'Fournitures d’atelier et d’usine','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11577,'PCN-LUXEMBURG','EXPENSE','6034',11570,'Fournitures de magasin','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11578,'PCN-LUXEMBURG','EXPENSE','6035',11570,'Fournitures de bureau','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11579,'PCN-LUXEMBURG','EXPENSE','6036',11570,'Carburants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11580,'PCN-LUXEMBURG','EXPENSE','6037',11570,'Lubrifiants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11581,'PCN-LUXEMBURG','EXPENSE','6038',11570,'Autres fournitures consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11582,'PCN-LUXEMBURG','EXPENSE','604',11567,'Emballages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11583,'PCN-LUXEMBURG','EXPENSE','6041',11582,'Emballages non récupérables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11584,'PCN-LUXEMBURG','EXPENSE','6042',11582,'Emballages récupérables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11585,'PCN-LUXEMBURG','EXPENSE','6043',11582,'Emballages à usage mixte','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11586,'PCN-LUXEMBURG','EXPENSE','605',11567,'Approvisionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11587,'PCN-LUXEMBURG','EXPENSE','606',11567,'Achats de biens destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11588,'PCN-LUXEMBURG','EXPENSE','6061',11587,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11589,'PCN-LUXEMBURG','EXPENSE','6062',11587,'Immeubles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11590,'PCN-LUXEMBURG','EXPENSE','6063',11587,'Marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11591,'PCN-LUXEMBURG','EXPENSE','607',11567,'Variation des stocks','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11592,'PCN-LUXEMBURG','EXPENSE','6071',11591,'Variation des stocks de matières premières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11593,'PCN-LUXEMBURG','EXPENSE','6072',11591,'Variation des stocks de matières consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11594,'PCN-LUXEMBURG','EXPENSE','6073',11591,'Variation des stocks de fournitures consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11595,'PCN-LUXEMBURG','EXPENSE','6074',11591,'Variation des stocks d’emballages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11596,'PCN-LUXEMBURG','EXPENSE','6075',11591,'Variation des stocks d’approvisionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11597,'PCN-LUXEMBURG','EXPENSE','6076',11591,'Variation des stocks de biens destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11598,'PCN-LUXEMBURG','EXPENSE','608',11567,'Achats non stockés et achats incorporés aux ouvrages et produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11599,'PCN-LUXEMBURG','EXPENSE','6081',11598,'Achats non stockés de matières et fournitures','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11600,'PCN-LUXEMBURG','EXPENSE','60811',11599,'Fournitures non stockables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11601,'PCN-LUXEMBURG','EXPENSE','608111',11600,'Eau','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11602,'PCN-LUXEMBURG','EXPENSE','608112',11600,'Electricité','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11603,'PCN-LUXEMBURG','EXPENSE','608113',11600,'Gaz de canalisation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11604,'PCN-LUXEMBURG','EXPENSE','60812',11599,'Fournitures d’entretien et de petit équipement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11605,'PCN-LUXEMBURG','EXPENSE','60813',11599,'Fournitures administratives','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11606,'PCN-LUXEMBURG','EXPENSE','60814',11599,'Carburants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11607,'PCN-LUXEMBURG','EXPENSE','60815',11599,'Lubrifiants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11608,'PCN-LUXEMBURG','EXPENSE','60816',11599,'Vêtements professionnels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11609,'PCN-LUXEMBURG','EXPENSE','60818',11599,'Autres matières et fournitures non stockées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11610,'PCN-LUXEMBURG','EXPENSE','6082',11598,'Achats incorporés aux ouvrages et produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11611,'PCN-LUXEMBURG','EXPENSE','60821',11610,'Achats d’études et prestations de services (incorporés aux ouvrages et produits)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11612,'PCN-LUXEMBURG','EXPENSE','608211',11611,'Travail à façon','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11613,'PCN-LUXEMBURG','EXPENSE','608212',11611,'Recherche et développement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11614,'PCN-LUXEMBURG','EXPENSE','608213',11611,'Frais d’architectes et d’ingénieurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11615,'PCN-LUXEMBURG','EXPENSE','60822',11610,'Achats de matériel, équipements, pièces détachées et travaux (incorporés aux ouvrages et produits)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11616,'PCN-LUXEMBURG','EXPENSE','60828',11610,'Autres achats d’études et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11617,'PCN-LUXEMBURG','EXPENSE','609',11567,'Rabais, remises et ristournes obtenus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11618,'PCN-LUXEMBURG','EXPENSE','6091',11617,'Matières premières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11619,'PCN-LUXEMBURG','EXPENSE','6092',11617,'Matières consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11620,'PCN-LUXEMBURG','EXPENSE','6093',11617,'Fournitures consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11621,'PCN-LUXEMBURG','EXPENSE','6094',11617,'Emballages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11622,'PCN-LUXEMBURG','EXPENSE','6095',11617,'Approvisionnements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11623,'PCN-LUXEMBURG','EXPENSE','6096',11617,'Achats de biens destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11624,'PCN-LUXEMBURG','EXPENSE','6098',11617,'Achats non stockés et achats incorporés aux ouvrages et produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11625,'PCN-LUXEMBURG','EXPENSE','6099',11617,'Rabais, remises et ristournes non affectés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11626,'PCN-LUXEMBURG','EXPENSE','61','','Autres charges externes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11627,'PCN-LUXEMBURG','EXPENSE','611',11626,'Loyers et charges locatives','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11628,'PCN-LUXEMBURG','EXPENSE','6111',11627,'Locations immobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11629,'PCN-LUXEMBURG','EXPENSE','61111',11628,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11630,'PCN-LUXEMBURG','EXPENSE','61112',11628,'Bâtiments','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11631,'PCN-LUXEMBURG','EXPENSE','6112',11627,'Locations mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11632,'PCN-LUXEMBURG','EXPENSE','61121',11631,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11633,'PCN-LUXEMBURG','EXPENSE','61122',11631,'Autres installations, outillages et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11634,'PCN-LUXEMBURG','EXPENSE','61123',11631,'Matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11635,'PCN-LUXEMBURG','EXPENSE','6113',11627,'Charges locatives et de copropriété','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11636,'PCN-LUXEMBURG','EXPENSE','6114',11627,'Leasing immobilier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11637,'PCN-LUXEMBURG','EXPENSE','61141',11636,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11638,'PCN-LUXEMBURG','EXPENSE','61142',11636,'Bâtiments','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11639,'PCN-LUXEMBURG','EXPENSE','6115',11627,'Leasing mobilier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11640,'PCN-LUXEMBURG','EXPENSE','61151',11639,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11641,'PCN-LUXEMBURG','EXPENSE','61152',11639,'Autres installations, outillages et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11642,'PCN-LUXEMBURG','EXPENSE','61153',11639,'Matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11643,'PCN-LUXEMBURG','EXPENSE','6116',11627,'Malis sur emballages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11644,'PCN-LUXEMBURG','EXPENSE','612',11626,'Sous-traitance, entretiens et réparations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11645,'PCN-LUXEMBURG','EXPENSE','6121',11644,'Sous-traitance générale (non incorporée directement aux ouvrages, travaux et produits)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11646,'PCN-LUXEMBURG','EXPENSE','6122',11644,'Entretien et réparations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11647,'PCN-LUXEMBURG','EXPENSE','61221',11646,'Sur installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11648,'PCN-LUXEMBURG','EXPENSE','61222',11646,'Sur autres installations, outillages et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11649,'PCN-LUXEMBURG','EXPENSE','61223',11646,'Sur matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11650,'PCN-LUXEMBURG','EXPENSE','6123',11644,'Contrats de maintenance','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11651,'PCN-LUXEMBURG','EXPENSE','6124',11644,'Etudes et recherches (non incorporées dans les produits)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11652,'PCN-LUXEMBURG','EXPENSE','613',11626,'Rémunérations d’intermédiaires et honoraires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11653,'PCN-LUXEMBURG','EXPENSE','6131',11652,'Commissions et courtages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11654,'PCN-LUXEMBURG','EXPENSE','61311',11653,'Commissions et courtages sur achats','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11655,'PCN-LUXEMBURG','EXPENSE','61312',11653,'Commissions et courtages sur ventes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11656,'PCN-LUXEMBURG','EXPENSE','61313',11653,'Rémunérations des transitaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11657,'PCN-LUXEMBURG','EXPENSE','6132',11652,'Traitement informatique','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11658,'PCN-LUXEMBURG','EXPENSE','6133',11652,'Services bancaires et assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11659,'PCN-LUXEMBURG','EXPENSE','61331',11658,'Frais sur titres (achat, vente, garde)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11660,'PCN-LUXEMBURG','EXPENSE','61332',11658,'Commissions et frais sur émission d’emprunts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11661,'PCN-LUXEMBURG','EXPENSE','61333',11658,'Frais de compte','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11662,'PCN-LUXEMBURG','EXPENSE','61334',11658,'Frais sur cartes de crédit','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11663,'PCN-LUXEMBURG','EXPENSE','61335',11658,'Frais sur effets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11664,'PCN-LUXEMBURG','EXPENSE','61336',11658,'Rémunérations d’affacturage','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11665,'PCN-LUXEMBURG','EXPENSE','61337',11658,'Location de coffres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11666,'PCN-LUXEMBURG','EXPENSE','61338',11658,'Autres frais et commissions bancaires (hors intérêts et frais assimilés)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11667,'PCN-LUXEMBURG','EXPENSE','6134',11652,'Honoraires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11668,'PCN-LUXEMBURG','EXPENSE','61341',11667,'Honoraires juridiques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11669,'PCN-LUXEMBURG','EXPENSE','61342',11667,'Honoraires comptables et d’audit','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11670,'PCN-LUXEMBURG','EXPENSE','61343',11667,'Honoraires fiscaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11671,'PCN-LUXEMBURG','EXPENSE','61348',11667,'Autres honoraires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11672,'PCN-LUXEMBURG','EXPENSE','6135',11652,'Frais d’actes et de contentieux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11673,'PCN-LUXEMBURG','EXPENSE','6136',11652,'Frais de recrutement de personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11674,'PCN-LUXEMBURG','EXPENSE','6138',11652,'Autres rémunérations d’intermédiaires et honoraires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11675,'PCN-LUXEMBURG','EXPENSE','614',11626,'Primes d’assurance','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11676,'PCN-LUXEMBURG','EXPENSE','6141',11675,'Assurances sur biens de l’actif','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11677,'PCN-LUXEMBURG','EXPENSE','61411',11676,'Bâtiments','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11678,'PCN-LUXEMBURG','EXPENSE','61412',11676,'Véhicules','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11679,'PCN-LUXEMBURG','EXPENSE','61413',11676,'Installations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11680,'PCN-LUXEMBURG','EXPENSE','61418',11676,'Sur autres biens de l’actif','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11681,'PCN-LUXEMBURG','EXPENSE','6142',11675,'Assurances sur biens pris en location','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11682,'PCN-LUXEMBURG','EXPENSE','6143',11675,'Assurance-transport','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11683,'PCN-LUXEMBURG','EXPENSE','61431',11682,'Sur achats','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11684,'PCN-LUXEMBURG','EXPENSE','61432',11682,'Sur ventes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11685,'PCN-LUXEMBURG','EXPENSE','61438',11682,'Sur autres biens','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11686,'PCN-LUXEMBURG','EXPENSE','6144',11675,'Assurance risque d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11687,'PCN-LUXEMBURG','EXPENSE','6145',11675,'Assurance insolvabilité clients','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11688,'PCN-LUXEMBURG','EXPENSE','6146',11675,'Assurance responsabilité civile','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11689,'PCN-LUXEMBURG','EXPENSE','6148',11675,'Autres assurances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11690,'PCN-LUXEMBURG','EXPENSE','615',11626,'Frais de marketing et de communication','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11691,'PCN-LUXEMBURG','EXPENSE','6151',11690,'Frais de marketing et de publicité','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11692,'PCN-LUXEMBURG','EXPENSE','61511',11691,'Annonces et insertions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11693,'PCN-LUXEMBURG','EXPENSE','61512',11691,'Echantillons','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11694,'PCN-LUXEMBURG','EXPENSE','61513',11691,'Foires et expositions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11695,'PCN-LUXEMBURG','EXPENSE','61514',11691,'Cadeaux à la clientèle','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11696,'PCN-LUXEMBURG','EXPENSE','61515',11691,'Catalogues et imprimés et publications','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11697,'PCN-LUXEMBURG','EXPENSE','61516',11691,'Dons courants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11698,'PCN-LUXEMBURG','EXPENSE','61517',11691,'Sponsoring','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11699,'PCN-LUXEMBURG','EXPENSE','61518',11691,'Autres achats de services publicitaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11700,'PCN-LUXEMBURG','EXPENSE','6152',11690,'Frais de déplacements et de représentation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11701,'PCN-LUXEMBURG','EXPENSE','61521',11700,'Voyages et déplacements','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11702,'PCN-LUXEMBURG','EXPENSE','615211',11701,'Direction (respectivement exploitant et associés)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11703,'PCN-LUXEMBURG','EXPENSE','615212',11701,'Personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11704,'PCN-LUXEMBURG','EXPENSE','61522',11700,'Frais de déménagement de l’entreprise','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11705,'PCN-LUXEMBURG','EXPENSE','61523',11700,'Missions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11706,'PCN-LUXEMBURG','EXPENSE','61524',11700,'Réceptions et frais de représentation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11707,'PCN-LUXEMBURG','EXPENSE','6153',11690,'Frais postaux et frais de télécommunications','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11708,'PCN-LUXEMBURG','EXPENSE','61531',11707,'Timbres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11709,'PCN-LUXEMBURG','EXPENSE','61532',11707,'Téléphone et autres frais de télécommunication','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11710,'PCN-LUXEMBURG','EXPENSE','61538',11707,'Autres frais postaux (location de boîtes postales, etc.)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11711,'PCN-LUXEMBURG','EXPENSE','616',11626,'Transports de biens et transports collectifs du personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11712,'PCN-LUXEMBURG','EXPENSE','6161',11711,'Transports sur achats','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11713,'PCN-LUXEMBURG','EXPENSE','6162',11711,'Transports sur ventes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11714,'PCN-LUXEMBURG','EXPENSE','6163',11711,'Transports entre établissements ou chantiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11715,'PCN-LUXEMBURG','EXPENSE','6164',11711,'Transports administratifs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11716,'PCN-LUXEMBURG','EXPENSE','6165',11711,'Transports collectifs du personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11717,'PCN-LUXEMBURG','EXPENSE','6168',11711,'Autres transports','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11718,'PCN-LUXEMBURG','EXPENSE','617',11626,'Personnel extérieur à l’entreprise','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11719,'PCN-LUXEMBURG','EXPENSE','6171',11718,'Personnel intérimaire','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11720,'PCN-LUXEMBURG','EXPENSE','6172',11718,'Personnel prêté à l’entreprise','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11721,'PCN-LUXEMBURG','EXPENSE','618',11626,'Charges externes diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11722,'PCN-LUXEMBURG','EXPENSE','6181',11721,'Documentation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11723,'PCN-LUXEMBURG','EXPENSE','61811',11722,'Documentation générale','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11724,'PCN-LUXEMBURG','EXPENSE','61812',11722,'Documentation technique','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11725,'PCN-LUXEMBURG','EXPENSE','6182',11721,'Frais de colloques, séminaires, conférences','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11726,'PCN-LUXEMBURG','EXPENSE','6183',11721,'Elimination des déchets industriels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11727,'PCN-LUXEMBURG','EXPENSE','6184',11721,'Elimination de déchets non industriels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11728,'PCN-LUXEMBURG','EXPENSE','6185',11721,'Evacuation des eaux usées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11729,'PCN-LUXEMBURG','EXPENSE','6186',11721,'Frais de surveillance','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11730,'PCN-LUXEMBURG','EXPENSE','6187',11721,'Cotisations aux associations professionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11731,'PCN-LUXEMBURG','EXPENSE','6188',11721,'Autres charges externes diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11732,'PCN-LUXEMBURG','EXPENSE','619',11626,'Rabais, remises et ristournes obtenus sur autres charges externes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11733,'PCN-LUXEMBURG','EXPENSE','62','','Frais de personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11734,'PCN-LUXEMBURG','EXPENSE','621',11733,'Rémunérations des salariés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11735,'PCN-LUXEMBURG','EXPENSE','6211',11734,'Salaires bruts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11736,'PCN-LUXEMBURG','EXPENSE','62111',11735,'Salaires de base','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11737,'PCN-LUXEMBURG','EXPENSE','62112',11735,'Suppléments pour travail','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11738,'PCN-LUXEMBURG','EXPENSE','621121',11737,'Dimanche','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11739,'PCN-LUXEMBURG','EXPENSE','621122',11737,'Jours fériés légaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11740,'PCN-LUXEMBURG','EXPENSE','621123',11737,'Heures supplémentaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11741,'PCN-LUXEMBURG','EXPENSE','621128',11737,'Autres suppléments','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11742,'PCN-LUXEMBURG','EXPENSE','62113',11735,'Primes de ménage','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11743,'PCN-LUXEMBURG','EXPENSE','62114',11735,'Gratifications, primes et commissions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11744,'PCN-LUXEMBURG','EXPENSE','62115',11735,'Avantages en nature','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11745,'PCN-LUXEMBURG','EXPENSE','62116',11735,'Indemnités de licenciement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11746,'PCN-LUXEMBURG','EXPENSE','62117',11735,'Trimestre de faveur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11747,'PCN-LUXEMBURG','EXPENSE','6218',11734,'Autres avantages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11748,'PCN-LUXEMBURG','EXPENSE','6219',11734,'Remboursements sur salaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11749,'PCN-LUXEMBURG','EXPENSE','62191',11748,'Remboursements mutualité','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11750,'PCN-LUXEMBURG','EXPENSE','62192',11748,'Remboursements pour congé politique, sportif, culturel, éducatif et mandats sociaux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11751,'PCN-LUXEMBURG','EXPENSE','62193',11748,'Remboursements trimestre de faveur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11752,'PCN-LUXEMBURG','EXPENSE','622',11733,'Autre personnel','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11753,'PCN-LUXEMBURG','EXPENSE','6221',11752,'Etudiants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11754,'PCN-LUXEMBURG','EXPENSE','6222',11752,'Salaires occasionnels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11755,'PCN-LUXEMBURG','EXPENSE','6228',11752,'Autre personnel temporaire','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11756,'PCN-LUXEMBURG','EXPENSE','623',11733,'Charges sociales (part patronale)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11757,'PCN-LUXEMBURG','EXPENSE','6231',11756,'Charges sociales salariés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11758,'PCN-LUXEMBURG','EXPENSE','62311',11757,'Caisse Nationale de Santé','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11759,'PCN-LUXEMBURG','EXPENSE','62312',11757,'Caisse Nationale d’Assurance-Pension','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11760,'PCN-LUXEMBURG','EXPENSE','62318',11757,'Cotisations patronales complémentaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11761,'PCN-LUXEMBURG','EXPENSE','6232',11756,'Assurance accidents du travail','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11762,'PCN-LUXEMBURG','EXPENSE','6233',11756,'Service de santé au travail','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11763,'PCN-LUXEMBURG','EXPENSE','6238',11756,'Autres charges sociales patronales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11764,'PCN-LUXEMBURG','EXPENSE','6239',11756,'Remboursements de charges sociales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11765,'PCN-LUXEMBURG','EXPENSE','624',11733,'Pensions complémentaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11766,'PCN-LUXEMBURG','EXPENSE','6241',11765,'Primes à des fonds de pensions extérieurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11767,'PCN-LUXEMBURG','EXPENSE','6242',11765,'Dotation aux provisions pour pensions complémentaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11768,'PCN-LUXEMBURG','EXPENSE','6243',11765,'Retenue d’impôt sur pension complémentaire','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11769,'PCN-LUXEMBURG','EXPENSE','6244',11765,'Prime d’assurance insolvabilité','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11770,'PCN-LUXEMBURG','EXPENSE','6245',11765,'Pensions complémentaires versées par l’employeur','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11771,'PCN-LUXEMBURG','EXPENSE','628',11733,'Autres charges sociales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11772,'PCN-LUXEMBURG','EXPENSE','6281',11771,'Médecine du travail','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11773,'PCN-LUXEMBURG','EXPENSE','6288',11771,'Autres charges sociales diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11774,'PCN-LUXEMBURG','EXPENSE','63','','Dotations aux corrections de valeur des éléments d’actif non financiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11775,'PCN-LUXEMBURG','EXPENSE','631',11774,'Dotations aux corrections de valeur sur frais d’établissement et frais assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11776,'PCN-LUXEMBURG','EXPENSE','6311',11775,'Frais de constitution','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11777,'PCN-LUXEMBURG','EXPENSE','6312',11775,'Frais de premier établissement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11778,'PCN-LUXEMBURG','EXPENSE','6313',11775,'Frais d’augmentation de capital et d’opérations diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11779,'PCN-LUXEMBURG','EXPENSE','6314',11775,'Frais d’émission d’emprunts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11780,'PCN-LUXEMBURG','EXPENSE','6318',11775,'Autres frais assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11781,'PCN-LUXEMBURG','EXPENSE','632',11774,'Dotations aux corrections de valeur sur immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11782,'PCN-LUXEMBURG','EXPENSE','6321',11781,'Frais de recherche et de développement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11783,'PCN-LUXEMBURG','EXPENSE','6322',11781,'Concessions, brevets, licences, marques ainsi que droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11784,'PCN-LUXEMBURG','EXPENSE','6323',11781,'Fonds de commerce dans la mesure où il a été acquis à titre onéreux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11785,'PCN-LUXEMBURG','EXPENSE','6324',11781,'Acomptes versés et immobilisations incorporelles en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11786,'PCN-LUXEMBURG','EXPENSE','633',11774,'Dotations aux corrections de valeur sur immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11787,'PCN-LUXEMBURG','EXPENSE','6331',11786,'Terrains et constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11788,'PCN-LUXEMBURG','EXPENSE','63311',11787,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11789,'PCN-LUXEMBURG','EXPENSE','63312',11787,'Agencements et aménagements de terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11790,'PCN-LUXEMBURG','EXPENSE','63313',11787,'Constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11791,'PCN-LUXEMBURG','EXPENSE','6332',11786,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11792,'PCN-LUXEMBURG','EXPENSE','6333',11786,'Autres installations, outillage, mobilier et matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11793,'PCN-LUXEMBURG','EXPENSE','6334',11786,'Acomptes versés et immobilisations corporelles en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11794,'PCN-LUXEMBURG','EXPENSE','634',11774,'Dotations aux corrections de valeur sur stocks','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11795,'PCN-LUXEMBURG','EXPENSE','6341',11794,'Matières premières et consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11796,'PCN-LUXEMBURG','EXPENSE','6342',11794,'Produits en cours de fabrication et commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11797,'PCN-LUXEMBURG','EXPENSE','6343',11794,'Produits finis et marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11798,'PCN-LUXEMBURG','EXPENSE','6344',11794,'Terrains et immeubles destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11799,'PCN-LUXEMBURG','EXPENSE','6345',11794,'Acomptes versés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11800,'PCN-LUXEMBURG','EXPENSE','635',11774,'Dotations aux corrections de valeur sur créances de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11801,'PCN-LUXEMBURG','EXPENSE','6351',11800,'Créances résultant de ventes et prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11802,'PCN-LUXEMBURG','EXPENSE','6352',11800,'Créances sur des entreprises liées et des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11803,'PCN-LUXEMBURG','EXPENSE','6353',11800,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11804,'PCN-LUXEMBURG','EXPENSE','64','','Autres charges d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11805,'PCN-LUXEMBURG','EXPENSE','641',11804,'Redevances pour concessions, brevets, licences, marques, droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11806,'PCN-LUXEMBURG','EXPENSE','6411',11805,'Concessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11807,'PCN-LUXEMBURG','EXPENSE','6412',11805,'Brevets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11808,'PCN-LUXEMBURG','EXPENSE','6413',11805,'Licences informatiques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11809,'PCN-LUXEMBURG','EXPENSE','6414',11805,'Marques et franchises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11810,'PCN-LUXEMBURG','EXPENSE','6415',11805,'Droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11811,'PCN-LUXEMBURG','EXPENSE','64151',11810,'Droits d’auteur et de reproduction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11812,'PCN-LUXEMBURG','EXPENSE','64158',11810,'Autres droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11813,'PCN-LUXEMBURG','EXPENSE','642',11804,'Indemnités','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11814,'PCN-LUXEMBURG','EXPENSE','643',11804,'Jetons de présence','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11815,'PCN-LUXEMBURG','EXPENSE','644',11804,'Tantièmes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11816,'PCN-LUXEMBURG','EXPENSE','645',11804,'Pertes sur créances irrécouvrables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11817,'PCN-LUXEMBURG','EXPENSE','6451',11816,'Créances résultant de ventes et de prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11818,'PCN-LUXEMBURG','EXPENSE','6452',11816,'Créances sur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11819,'PCN-LUXEMBURG','EXPENSE','6453',11816,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11820,'PCN-LUXEMBURG','EXPENSE','646',11804,'Impôts, taxes et versements assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11821,'PCN-LUXEMBURG','EXPENSE','6461',11820,'Impôt foncier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11822,'PCN-LUXEMBURG','EXPENSE','6462',11820,'TVA non déductible','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11823,'PCN-LUXEMBURG','EXPENSE','6463',11820,'Droits sur les marchandises en provenance de l’étranger','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11824,'PCN-LUXEMBURG','EXPENSE','64631',11823,'Droits d’accises et taxe de consommation sur marchandises en provenance de l’étranger','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11825,'PCN-LUXEMBURG','EXPENSE','64632',11823,'Droits de douane','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11826,'PCN-LUXEMBURG','EXPENSE','64633',11823,'Montants compensatoires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11827,'PCN-LUXEMBURG','EXPENSE','6464',11820,'Droits d’accises à la production et taxe de consommation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11828,'PCN-LUXEMBURG','EXPENSE','6465',11820,'Droits d’enregistrement et de timbre, droits d’hypothèques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11829,'PCN-LUXEMBURG','EXPENSE','64651',11828,'Droits d’enregistrement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11830,'PCN-LUXEMBURG','EXPENSE','64652',11828,'Taxe d’abonnement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11831,'PCN-LUXEMBURG','EXPENSE','64653',11828,'Droits d’hypothèques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11832,'PCN-LUXEMBURG','EXPENSE','64654',11828,'Droits de timbre','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11833,'PCN-LUXEMBURG','EXPENSE','64658',11828,'Autres droits d’enregistrement et de timbre, droits d’hypothèques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11834,'PCN-LUXEMBURG','EXPENSE','6466',11820,'Taxes sur les véhicules','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11835,'PCN-LUXEMBURG','EXPENSE','6467',11820,'Taxe de cabaretage','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11836,'PCN-LUXEMBURG','EXPENSE','6468',11820,'Autres droits et impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11837,'PCN-LUXEMBURG','EXPENSE','6469',11820,'Dotations aux provisions pour impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11838,'PCN-LUXEMBURG','EXPENSE','647',11804,'Dotations aux plus-values immunisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11839,'PCN-LUXEMBURG','EXPENSE','648',11804,'Autres charges d’exploitation diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11840,'PCN-LUXEMBURG','EXPENSE','649',11804,'Dotations aux provisions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11841,'PCN-LUXEMBURG','EXPENSE','65','','Charges financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11842,'PCN-LUXEMBURG','EXPENSE','651',11841,'Dotations aux corrections de valeur et ajustements pour juste valeur sur immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11843,'PCN-LUXEMBURG','EXPENSE','6511',11842,'Dotations aux corrections de valeur sur immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11844,'PCN-LUXEMBURG','EXPENSE','65111',11843,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11845,'PCN-LUXEMBURG','EXPENSE','65112',11843,'Créances sur des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11846,'PCN-LUXEMBURG','EXPENSE','65113',11843,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11847,'PCN-LUXEMBURG','EXPENSE','65114',11843,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11848,'PCN-LUXEMBURG','EXPENSE','65115',11843,'Titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11849,'PCN-LUXEMBURG','EXPENSE','65116',11843,'Prêts et créances immobilisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11850,'PCN-LUXEMBURG','EXPENSE','65117',11843,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11851,'PCN-LUXEMBURG','EXPENSE','6512',11842,'Ajustements pour juste valeur sur immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11852,'PCN-LUXEMBURG','EXPENSE','653',11841,'Dotations aux corrections de valeur et ajustements pour juste valeur sur éléments financiers de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11853,'PCN-LUXEMBURG','EXPENSE','6531',11852,'Dotations aux corrections de valeur sur valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11854,'PCN-LUXEMBURG','EXPENSE','65311',11853,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11855,'PCN-LUXEMBURG','EXPENSE','65312',11853,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11856,'PCN-LUXEMBURG','EXPENSE','65313',11853,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11857,'PCN-LUXEMBURG','EXPENSE','65318',11853,'Autres valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11858,'PCN-LUXEMBURG','EXPENSE','6532',11852,'Dotations aux corrections de valeur sur créances sur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11859,'PCN-LUXEMBURG','EXPENSE','6533',11852,'Dotations aux corrections de valeur sur autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11860,'PCN-LUXEMBURG','EXPENSE','6534',11852,'Ajustements pour juste valeur sur éléments financiers de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11861,'PCN-LUXEMBURG','EXPENSE','654',11841,'Moins-values de cession de valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11862,'PCN-LUXEMBURG','EXPENSE','6541',11861,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11863,'PCN-LUXEMBURG','EXPENSE','6542',11861,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11864,'PCN-LUXEMBURG','EXPENSE','6543',11861,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11865,'PCN-LUXEMBURG','EXPENSE','6548',11861,'Autres valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11866,'PCN-LUXEMBURG','EXPENSE','655',11841,'Intérêts et escomptes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11867,'PCN-LUXEMBURG','EXPENSE','6551',11866,'Intérêts des dettes financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11868,'PCN-LUXEMBURG','EXPENSE','65511',11867,'Intérêts des dettes subordonnées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11869,'PCN-LUXEMBURG','EXPENSE','65512',11867,'Intérêts des emprunts obligataires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11870,'PCN-LUXEMBURG','EXPENSE','6552',11866,'Intérêts bancaires et assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11871,'PCN-LUXEMBURG','EXPENSE','65521',11870,'Intérêts bancaires sur comptes courants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11872,'PCN-LUXEMBURG','EXPENSE','65522',11870,'Intérêts bancaires sur opérations de financement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11873,'PCN-LUXEMBURG','EXPENSE','65523',11870,'Intérêts sur leasings financiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11874,'PCN-LUXEMBURG','EXPENSE','6553',11866,'Intérêts sur dettes commerciales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11875,'PCN-LUXEMBURG','EXPENSE','6554',11866,'Intérêts sur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11876,'PCN-LUXEMBURG','EXPENSE','6555',11866,'Escomptes et frais sur effets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11877,'PCN-LUXEMBURG','EXPENSE','6556',11866,'Escomptes accordés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11878,'PCN-LUXEMBURG','EXPENSE','6558',11866,'Intérêts sur autres emprunts et dettes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11879,'PCN-LUXEMBURG','EXPENSE','656',11841,'Pertes de change','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11880,'PCN-LUXEMBURG','EXPENSE','657',11841,'Quote-part de perte dans les entreprises collectives (autres que les sociétés de capitaux)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11881,'PCN-LUXEMBURG','EXPENSE','658',11841,'Autres charges financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11882,'PCN-LUXEMBURG','EXPENSE','659',11841,'Dotations aux provisions financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11883,'PCN-LUXEMBURG','EXPENSE','66','','Charges exceptionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11884,'PCN-LUXEMBURG','EXPENSE','661',11883,'Dotations aux corrections de valeur exceptionnelles sur immobilisations incorporelles et corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11885,'PCN-LUXEMBURG','EXPENSE','6611',11884,'Sur immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11886,'PCN-LUXEMBURG','EXPENSE','6612',11884,'Sur immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11887,'PCN-LUXEMBURG','EXPENSE','662',11883,'Dotations aux corrections de valeur exceptionnelles sur éléments de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11888,'PCN-LUXEMBURG','EXPENSE','6621',11887,'Sur stocks','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11889,'PCN-LUXEMBURG','EXPENSE','6622',11887,'Sur créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11890,'PCN-LUXEMBURG','EXPENSE','663',11883,'Valeur comptable des immobilisations incorporelles et corporelles cédées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11891,'PCN-LUXEMBURG','EXPENSE','6631',11890,'Immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11892,'PCN-LUXEMBURG','EXPENSE','6632',11890,'Immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11893,'PCN-LUXEMBURG','EXPENSE','664',11883,'Valeur comptable des immobilisations financières cédées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11894,'PCN-LUXEMBURG','EXPENSE','6641',11893,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11895,'PCN-LUXEMBURG','EXPENSE','6642',11893,'Créances sur des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11896,'PCN-LUXEMBURG','EXPENSE','6643',11893,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11897,'PCN-LUXEMBURG','EXPENSE','6644',11893,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11898,'PCN-LUXEMBURG','EXPENSE','6645',11893,'Titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11899,'PCN-LUXEMBURG','EXPENSE','6646',11893,'Prêts et créances immobilisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11900,'PCN-LUXEMBURG','EXPENSE','6647',11893,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11901,'PCN-LUXEMBURG','EXPENSE','665',11883,'Valeur comptable des créances de l’actif circulant financier cédées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11902,'PCN-LUXEMBURG','EXPENSE','6651',11901,'ur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11903,'PCN-LUXEMBURG','EXPENSE','6652',11901,'Sur autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11904,'PCN-LUXEMBURG','EXPENSE','668',11883,'Autres charges exceptionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11905,'PCN-LUXEMBURG','EXPENSE','6681',11904,'Pénalités sur marchés et dédits payés sur achats et ventes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11906,'PCN-LUXEMBURG','EXPENSE','6682',11904,'Amendes et pénalités fiscales, sociales et pénales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11907,'PCN-LUXEMBURG','EXPENSE','6683',11904,'Dommages et intérêts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11908,'PCN-LUXEMBURG','EXPENSE','6684',11904,'Malis provenant de clauses d’indexation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11909,'PCN-LUXEMBURG','EXPENSE','6688',11904,'Autres charges exceptionnelles diverses','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11910,'PCN-LUXEMBURG','EXPENSE','669',11883,'Dotations aux provisions exceptionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11911,'PCN-LUXEMBURG','EXPENSE','67','','Impôts sur le résultat','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11912,'PCN-LUXEMBURG','EXPENSE','671',11911,'Impôt sur le revenu des collectivités','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11913,'PCN-LUXEMBURG','EXPENSE','6711',11912,'Exercice courant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11914,'PCN-LUXEMBURG','EXPENSE','6712',11912,'Exercices antérieurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11915,'PCN-LUXEMBURG','EXPENSE','672',11911,'Impôt commercial','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11916,'PCN-LUXEMBURG','EXPENSE','6721',11915,'Exercice courant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11917,'PCN-LUXEMBURG','EXPENSE','6722',11915,'Exercices antérieurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11918,'PCN-LUXEMBURG','EXPENSE','673',11911,'Impôts étrangers sur le résultat','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11919,'PCN-LUXEMBURG','EXPENSE','6731',11918,'Retenues d’impôt à la source','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11920,'PCN-LUXEMBURG','EXPENSE','6732',11918,'Impôts supportés par les établissements stables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11921,'PCN-LUXEMBURG','EXPENSE','67321',11921,'Exercice courant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11922,'PCN-LUXEMBURG','EXPENSE','67322',11921,'Exercices antérieurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11923,'PCN-LUXEMBURG','EXPENSE','6733',11918,'Impôts supportés par les entreprises non résidentes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11924,'PCN-LUXEMBURG','EXPENSE','6738',11918,'Autres impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11925,'PCN-LUXEMBURG','EXPENSE','679',11911,'Dotations aux provisions pour impôts sur le résultat','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11926,'PCN-LUXEMBURG','EXPENSE','6791',11925,'Dotations aux provisions pour impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11927,'PCN-LUXEMBURG','EXPENSE','6792',11925,'Dotations aux provisions pour impôts différés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11928,'PCN-LUXEMBURG','EXPENSE','68','','Autres impôts ne figurant pas sous le poste ci-dessus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11929,'PCN-LUXEMBURG','EXPENSE','681',11928,'Impôt sur la fortune','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11930,'PCN-LUXEMBURG','EXPENSE','6811',11930,'Exercice courant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11931,'PCN-LUXEMBURG','EXPENSE','6812',11930,'Exercices antérieurs','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11932,'PCN-LUXEMBURG','EXPENSE','682',11928,'Taxe d’abonnement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11933,'PCN-LUXEMBURG','EXPENSE','683',11928,'Impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11934,'PCN-LUXEMBURG','EXPENSE','688',11928,'Autres impôts et taxes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11935,'PCN-LUXEMBURG','EXPENSE','689',11928,'Dotations aux provisions pour autres impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11936,'PCN-LUXEMBURG','INCOME','70','','Montant net du chiffre d’affaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11937,'PCN-LUXEMBURG','INCOME','701',11936,'Ventes sur commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11938,'PCN-LUXEMBURG','INCOME','7011',11937,'Produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11939,'PCN-LUXEMBURG','INCOME','7012',11937,'Prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11940,'PCN-LUXEMBURG','INCOME','7013',11937,'Immeubles en construction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11941,'PCN-LUXEMBURG','INCOME','702',11936,'Ventes de produits finis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11942,'PCN-LUXEMBURG','INCOME','703',11936,'Ventes de produits intermédiaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11943,'PCN-LUXEMBURG','INCOME','704',11936,'Ventes de produits résiduels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11944,'PCN-LUXEMBURG','INCOME','705',11936,'Ventes d’éléments destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11945,'PCN-LUXEMBURG','INCOME','7051',11944,'Ventes de marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11946,'PCN-LUXEMBURG','INCOME','7052',11944,'Ventes de terrains et d’immeubles existants (promotion immobilière)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11947,'PCN-LUXEMBURG','INCOME','7053',11944,'Ventes d’autres éléments destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11948,'PCN-LUXEMBURG','INCOME','706',11936,'Prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11949,'PCN-LUXEMBURG','INCOME','708',11936,'Autres éléments du chiffre d’affaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11950,'PCN-LUXEMBURG','INCOME','7081',11949,'Commissions et courtages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11951,'PCN-LUXEMBURG','INCOME','7082',11949,'Locations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11952,'PCN-LUXEMBURG','INCOME','70821',11951,'Loyer immobilier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11953,'PCN-LUXEMBURG','INCOME','70822',11951,'Loyer mobilier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11954,'PCN-LUXEMBURG','INCOME','7083',11949,'Ventes d’emballages','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11955,'PCN-LUXEMBURG','INCOME','7088',11949,'Autres éléments divers du chiffre d’affaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11956,'PCN-LUXEMBURG','INCOME','709',11936,'Rabais, remises et ristournes accordés par l’entreprise','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11957,'PCN-LUXEMBURG','INCOME','7091',11956,'Sur ventes sur commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11958,'PCN-LUXEMBURG','INCOME','7092',11956,'Sur ventes de produits finis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11959,'PCN-LUXEMBURG','INCOME','7093',11956,'Sur ventes de produits intermédiaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11960,'PCN-LUXEMBURG','INCOME','7094',11956,'Sur ventes de produits résiduels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11961,'PCN-LUXEMBURG','INCOME','7095',11956,'Sur ventes d’éléments destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11962,'PCN-LUXEMBURG','INCOME','7096',11956,'Sur prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11963,'PCN-LUXEMBURG','INCOME','7098',11956,'Sur autres éléments du chiffre d’affaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11964,'PCN-LUXEMBURG','INCOME','71','','Variation des stocks de produits finis, d’en cours de fabrication et des commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11965,'PCN-LUXEMBURG','INCOME','711',11964,'Variation des stocks de produits en cours de fabrication et de commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11966,'PCN-LUXEMBURG','INCOME','7111',11965,'Variation des stocks de produits en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11967,'PCN-LUXEMBURG','INCOME','7112',11965,'Variation des stocks de commandes en cours – produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11968,'PCN-LUXEMBURG','INCOME','7113',11965,'Variation des stocks de commandes en cours – prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11969,'PCN-LUXEMBURG','INCOME','7114',11965,'Variation des stocks d’immeubles en construction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11970,'PCN-LUXEMBURG','INCOME','712',11964,'Variation des stocks de produits finis et marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11971,'PCN-LUXEMBURG','INCOME','7121',11970,'Variation des stocks de produits finis','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11972,'PCN-LUXEMBURG','INCOME','7122',11970,'Variation des stocks de produits intermédiaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11973,'PCN-LUXEMBURG','INCOME','7123',11970,'Variation des stocks de produits résiduels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11974,'PCN-LUXEMBURG','INCOME','7126',11970,'Variation des stocks de marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11975,'PCN-LUXEMBURG','INCOME','7127',11970,'Variation des stocks de marchandises en voie d’acheminement, mises en dépôt ou données en consignation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11976,'PCN-LUXEMBURG','INCOME','72','','Production immobilisée','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11977,'PCN-LUXEMBURG','INCOME','721',11976,'Immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11978,'PCN-LUXEMBURG','INCOME','7211',11977,'Frais de recherche et développement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11979,'PCN-LUXEMBURG','INCOME','7212',11977,'Concessions, brevets, licences, marques, droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11980,'PCN-LUXEMBURG','INCOME','72121',11979,'Concessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11981,'PCN-LUXEMBURG','INCOME','72122',11979,'Brevets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11982,'PCN-LUXEMBURG','INCOME','72123',11979,'Licences informatiques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11983,'PCN-LUXEMBURG','INCOME','72124',11979,'Marques et franchises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11984,'PCN-LUXEMBURG','INCOME','72125',11983,'Droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11985,'PCN-LUXEMBURG','INCOME','721251',11984,'Droits d’auteur et de reproduction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11986,'PCN-LUXEMBURG','INCOME','721258',11984,'Autres droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11987,'PCN-LUXEMBURG','INCOME','722',11976,'Immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11988,'PCN-LUXEMBURG','INCOME','7221',11987,'Terrains et constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11989,'PCN-LUXEMBURG','INCOME','7222',11987,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11990,'PCN-LUXEMBURG','INCOME','7223',11987,'Autres installations, outillage, mobilier et matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11991,'PCN-LUXEMBURG','INCOME','73','','Reprises de corrections de valeur des éléments d’actif non financiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11992,'PCN-LUXEMBURG','INCOME','732',11991,'Reprises de corrections de valeur sur immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11993,'PCN-LUXEMBURG','INCOME','7321',11992,'Frais de recherche et de développement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11994,'PCN-LUXEMBURG','INCOME','7322',11992,'Concessions, brevets, licences, marques ainsi que droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11995,'PCN-LUXEMBURG','INCOME','7323',11992,'Fonds de commerce dans la mesure où il a été acquis à titre onéreux','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11996,'PCN-LUXEMBURG','INCOME','7324',11992,'Acomptes versés et immobilisations incorporelles en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11997,'PCN-LUXEMBURG','INCOME','733',11991,'Reprises de corrections de valeur sur immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11998,'PCN-LUXEMBURG','INCOME','7331',11997,'Terrains et constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11999,'PCN-LUXEMBURG','INCOME','73311',11998,'Terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12000,'PCN-LUXEMBURG','INCOME','73312',11998,'Agencements et aménagements de terrains','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12001,'PCN-LUXEMBURG','INCOME','73313',11998,'Constructions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12002,'PCN-LUXEMBURG','INCOME','73314',11998,'Constructions sur sol d’autrui','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12003,'PCN-LUXEMBURG','INCOME','7332',11997,'Installations techniques et machines','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12004,'PCN-LUXEMBURG','INCOME','7333',11997,'Autres installations, outillage, mobilier et matériel roulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12005,'PCN-LUXEMBURG','INCOME','7334',11997,'Acomptes versés et immobilisations corporelles en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12006,'PCN-LUXEMBURG','INCOME','734',11991,'Reprises de corrections de valeur sur stocks','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12007,'PCN-LUXEMBURG','INCOME','7341',12006,'Matières premières et consommables','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12008,'PCN-LUXEMBURG','INCOME','7342',12006,'Produits en cours de fabrication et commandes en cours','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12009,'PCN-LUXEMBURG','INCOME','7343',12006,'Produits finis et marchandises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12010,'PCN-LUXEMBURG','INCOME','7344',12006,'Terrains et immeubles destinés à la revente','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12011,'PCN-LUXEMBURG','INCOME','7345',12006,'Acomptes versés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12012,'PCN-LUXEMBURG','INCOME','735',11991,'Reprises de corrections de valeur sur créances de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12013,'PCN-LUXEMBURG','INCOME','7351',12012,'Créances résultant de ventes et prestations de services','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12014,'PCN-LUXEMBURG','INCOME','7352',12012,'Créances sur des entreprises liées et des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12015,'PCN-LUXEMBURG','INCOME','7353',12012,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12016,'PCN-LUXEMBURG','INCOME','74','','Autres produits d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12017,'PCN-LUXEMBURG','INCOME','741',12016,'Redevances pour concessions, brevets, licences, marques, droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12018,'PCN-LUXEMBURG','INCOME','7411',12017,'Concessions','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12019,'PCN-LUXEMBURG','INCOME','7412',12017,'Brevets','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12020,'PCN-LUXEMBURG','INCOME','7413',12017,'Licences informatiques','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12021,'PCN-LUXEMBURG','INCOME','7414',12017,'Marques et franchises','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12022,'PCN-LUXEMBURG','INCOME','7415',12017,'Droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12023,'PCN-LUXEMBURG','INCOME','74151',12022,'Droits d’auteur et de reproduction','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12024,'PCN-LUXEMBURG','INCOME','74158',12022,'Autres droits et valeurs similaires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12025,'PCN-LUXEMBURG','INCOME','742',12016,'Revenus des immeubles non affectés aux activités professionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12026,'PCN-LUXEMBURG','INCOME','743',12016,'Jetons de présence, tantièmes et rémunérations assimilées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12027,'PCN-LUXEMBURG','INCOME','744',12016,'Subventions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12028,'PCN-LUXEMBURG','INCOME','7441',12027,'Subventions sur produits','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12029,'PCN-LUXEMBURG','INCOME','7442',12027,'Bonifications d’intérêt','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12030,'PCN-LUXEMBURG','INCOME','7443',12027,'Montants compensatoires','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12031,'PCN-LUXEMBURG','INCOME','7444',12027,'Subventions destinées à promouvoir l’emploi','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12032,'PCN-LUXEMBURG','INCOME','74441',12031,'Primes d’apprentissage reçues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12033,'PCN-LUXEMBURG','INCOME','74442',12031,'Autres subventions destinées à promouvoir l’emploi','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12034,'PCN-LUXEMBURG','INCOME','7448',12027,'Autres subventions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12035,'PCN-LUXEMBURG','INCOME','745',12016,'Ristournes perçues des coopératives (provenant des excédents)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12036,'PCN-LUXEMBURG','INCOME','746',12016,'Indemnités d’assurance touchées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12037,'PCN-LUXEMBURG','INCOME','747',12016,'Reprises de plus-values immunisées et de subventions d’investissement en capital','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12038,'PCN-LUXEMBURG','INCOME','7471',12037,'Plus-values immunisées non réinvesties','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12039,'PCN-LUXEMBURG','INCOME','7472',12037,'Plus-values immunisées réinvesties','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12040,'PCN-LUXEMBURG','INCOME','7473',12037,'Subventions d’investissement en capital','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12041,'PCN-LUXEMBURG','INCOME','748',12016,'Autres produits d’exploitation divers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12042,'PCN-LUXEMBURG','INCOME','749',12016,'Reprises sur provisions d’exploitation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12043,'PCN-LUXEMBURG','INCOME','75','','Produits financiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12044,'PCN-LUXEMBURG','INCOME','751',12043,'Reprises sur corrections de valeur et ajustements pour juste valeur sur immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12045,'PCN-LUXEMBURG','INCOME','7511',12044,'Reprises sur corrections de valeur sur immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12046,'PCN-LUXEMBURG','INCOME','75111',12045,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12047,'PCN-LUXEMBURG','INCOME','75112',12045,'Créances sur des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12048,'PCN-LUXEMBURG','INCOME','75113',12045,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12049,'PCN-LUXEMBURG','INCOME','75114',12045,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12050,'PCN-LUXEMBURG','INCOME','75115',12045,'Titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12051,'PCN-LUXEMBURG','INCOME','75116',12045,'Prêts et créances immobilisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12052,'PCN-LUXEMBURG','INCOME','75117',12045,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12053,'PCN-LUXEMBURG','INCOME','7512',12044,'Ajustements pour juste valeur sur immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12054,'PCN-LUXEMBURG','INCOME','752',12043,'Revenus des immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12055,'PCN-LUXEMBURG','INCOME','7521',12054,'Parts dans des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12056,'PCN-LUXEMBURG','INCOME','7522',12054,'Créances sur des entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12057,'PCN-LUXEMBURG','INCOME','7523',12054,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12058,'PCN-LUXEMBURG','INCOME','7524',12054,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12059,'PCN-LUXEMBURG','INCOME','7525',12054,'Titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12060,'PCN-LUXEMBURG','INCOME','7526',12054,'Prêts et créances immobilisées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12061,'PCN-LUXEMBURG','INCOME','7527',12054,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12062,'PCN-LUXEMBURG','INCOME','753',12043,'Reprises sur corrections de valeur et ajustements pour juste valeur sur éléments financiers de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12063,'PCN-LUXEMBURG','INCOME','7531',12062,'Reprises sur corrections de valeur sur créances sur des entreprises liées et des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12064,'PCN-LUXEMBURG','INCOME','7532',12062,'Reprises sur corrections de valeur sur autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12065,'PCN-LUXEMBURG','INCOME','7533',12062,'Reprises sur corrections de valeur sur valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12066,'PCN-LUXEMBURG','INCOME','75331',12065,'Parts dans les entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12067,'PCN-LUXEMBURG','INCOME','75332',12065,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12068,'PCN-LUXEMBURG','INCOME','75333',12065,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12069,'PCN-LUXEMBURG','INCOME','75338',12065,'Autres valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12070,'PCN-LUXEMBURG','INCOME','7534',12062,'Ajustements pour juste valeur sur éléments financiers de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12071,'PCN-LUXEMBURG','INCOME','754',12043,'Plus-value de cession et autres produits de valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12072,'PCN-LUXEMBURG','INCOME','7541',12071,'Plus-value de cession de valeurs mobilière','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12073,'PCN-LUXEMBURG','INCOME','75411',12072,'Parts dans les entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12074,'PCN-LUXEMBURG','INCOME','75412',12072,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12075,'PCN-LUXEMBURG','INCOME','75413',12072,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12076,'PCN-LUXEMBURG','INCOME','75418',12072,'Autres valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12077,'PCN-LUXEMBURG','INCOME','7548',12071,'Autres produits de valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12078,'PCN-LUXEMBURG','INCOME','75481',12077,'Parts dans les entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12079,'PCN-LUXEMBURG','INCOME','75482',12077,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12080,'PCN-LUXEMBURG','INCOME','75483',12077,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12081,'PCN-LUXEMBURG','INCOME','75488',12077,'Autres valeurs mobilières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12082,'PCN-LUXEMBURG','INCOME','755',12043,'Autres intérêts et escomptes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12083,'PCN-LUXEMBURG','INCOME','7552',12082,'Intérêts bancaires et assimilés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12084,'PCN-LUXEMBURG','INCOME','75521',12083,'Intérêts sur comptes courants','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12085,'PCN-LUXEMBURG','INCOME','75522',12083,'Intérêts sur comptes à terme','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12086,'PCN-LUXEMBURG','INCOME','75523',12083,'Intérêts sur leasings financiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12087,'PCN-LUXEMBURG','INCOME','7553',12082,'Intérêts sur créances commerciales','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12088,'PCN-LUXEMBURG','INCOME','7554',12082,'Intérêts sur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12089,'PCN-LUXEMBURG','INCOME','7555',12082,'Escomptes d’effets de commerce','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12090,'PCN-LUXEMBURG','INCOME','7556',12082,'Escomptes obtenus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12091,'PCN-LUXEMBURG','INCOME','7558',12082,'Intérêts sur autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12092,'PCN-LUXEMBURG','INCOME','756',12043,'Gains de change','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12093,'PCN-LUXEMBURG','INCOME','757',12043,'Quote-part de bénéfice dans les entreprises collectives (autres que les sociétés de capitaux)','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12094,'PCN-LUXEMBURG','INCOME','758',12043,'Autres produits financiers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12095,'PCN-LUXEMBURG','INCOME','759',12043,'Reprises sur provisions financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12096,'PCN-LUXEMBURG','INCOME','76','','Produits exceptionnels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12097,'PCN-LUXEMBURG','INCOME','761',12096,'Reprises sur corrections de valeur exceptionnelles sur immobilisations incorporelles et corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12098,'PCN-LUXEMBURG','INCOME','7611',12097,'Immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12099,'PCN-LUXEMBURG','INCOME','7612',12097,'Immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12100,'PCN-LUXEMBURG','INCOME','762',12096,'Reprises sur corrections de valeur exceptionnelles sur éléments de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12101,'PCN-LUXEMBURG','INCOME','7621',12100,'Sur stocks','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12102,'PCN-LUXEMBURG','INCOME','7622',12100,'Sur créances de l’actif circulant','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12103,'PCN-LUXEMBURG','INCOME','763',12096,'Produits de cession d’immobilisations incorporelles et corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12104,'PCN-LUXEMBURG','INCOME','7631',12103,'Immobilisations incorporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12105,'PCN-LUXEMBURG','INCOME','7632',12103,'Immobilisations corporelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12106,'PCN-LUXEMBURG','INCOME','764',12096,'Produits de cession d’immobilisations financières','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12107,'PCN-LUXEMBURG','INCOME','7641',12106,'Parts dans les entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12108,'PCN-LUXEMBURG','INCOME','7642',12106,'Créances sur entreprises liées','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12109,'PCN-LUXEMBURG','INCOME','7643',12106,'Parts dans des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12110,'PCN-LUXEMBURG','INCOME','7644',12106,'Créances sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12111,'PCN-LUXEMBURG','INCOME','7645',12106,'Titres ayant le caractère d’immobilisations','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12112,'PCN-LUXEMBURG','INCOME','7646',12106,'Prêts et créances immobilisés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12113,'PCN-LUXEMBURG','INCOME','7647',12106,'Actions propres ou parts propres','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12114,'PCN-LUXEMBURG','INCOME','765',12096,'Produits de cession sur créances de l’actif circulant financier','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12115,'PCN-LUXEMBURG','INCOME','7651',12114,'Créances sur des entreprises liées et sur des entreprises avec lesquelles la société a un lien de participation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12116,'PCN-LUXEMBURG','INCOME','7652',12114,'Autres créances','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12117,'PCN-LUXEMBURG','INCOME','768',12096,'Autres produits exceptionnels','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12118,'PCN-LUXEMBURG','INCOME','7681',12117,'Pénalités sur marchés et dédits perçus sur achats et sur ventes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12119,'PCN-LUXEMBURG','INCOME','7682',12117,'Libéralités reçues','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12120,'PCN-LUXEMBURG','INCOME','7683',12117,'Rentrées sur créances amorties','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12121,'PCN-LUXEMBURG','INCOME','7684',12117,'Subventions exceptionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12122,'PCN-LUXEMBURG','INCOME','7685',12117,'Bonis provenant de clauses d’indexation','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12123,'PCN-LUXEMBURG','INCOME','7686',12117,'Bonis provenant du rachat par l’entreprise d’actions et d’obligations émises par elle-même','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12124,'PCN-LUXEMBURG','INCOME','7688',12117,'Autres produits exceptionnels divers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12125,'PCN-LUXEMBURG','INCOME','769',12096,'Reprises sur provisions exceptionnelles','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12126,'PCN-LUXEMBURG','INCOME','77','','Régularisations d’impôts sur le résultat','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12127,'PCN-LUXEMBURG','INCOME','771',12126,'Régularisations d’impôt sur le revenu des collectivités','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12128,'PCN-LUXEMBURG','INCOME','772',12126,'Régularisations d’impôt commercial','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12129,'PCN-LUXEMBURG','INCOME','773',12126,'Régularisations d’impôts étrangers sur le résultat','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12130,'PCN-LUXEMBURG','INCOME','779',12126,'Reprises sur provisions pour impôts sur le résultat','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12131,'PCN-LUXEMBURG','INCOME','7791',12130,'Reprises sur provisions pour impôts','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12132,'PCN-LUXEMBURG','INCOME','7792',12130,'Reprises sur provisions pour impôts différés','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12133,'PCN-LUXEMBURG','INCOME','78','','Régularisations d’autres impôts ne figurant pas sous le poste ci-dessus','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12134,'PCN-LUXEMBURG','INCOME','781',12133,'Régularisations d’impôt sur la fortune','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12135,'PCN-LUXEMBURG','INCOME','782',12133,'Régularisations de taxes d’abonnement','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12136,'PCN-LUXEMBURG','INCOME','783',12133,'Régularisations d’impôts étrangers','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12137,'PCN-LUXEMBURG','INCOME','788',12133,'Régularisations d’autres impôts et taxes','1'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12138,'PCN-LUXEMBURG','INCOME','789',12133,'Reprises sur provisions pour autres impôts','1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17000, 'PCN2020-LUXEMBURG', 'LIABILIT', '101', 0, 'Capital souscrit', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17001, 'PCN2020-LUXEMBURG', 'LIABILIT', '102', 0, 'Capital souscrit non appelé', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17002, 'PCN2020-LUXEMBURG', 'LIABILIT', '103', 0, 'Capital souscrit appelé et non versé', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17003, 'PCN2020-LUXEMBURG', 'LIABILIT', '104', 0, 'Cap. Entr. Indiv/soc. de pers. et assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17004, 'PCN2020-LUXEMBURG', 'LIABILIT', '105', 0, 'Dotation des succursales', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17005, 'PCN2020-LUXEMBURG', 'LIABILIT', '10611', 0, 'Prélèvements en numéraire (train de vie)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17006, 'PCN2020-LUXEMBURG', 'LIABILIT', '10612', 0, 'Prélèvements en nature de marchandises,', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17007, 'PCN2020-LUXEMBURG', 'LIABILIT', '10613', 0, 'Part personnelle des frais de maladie', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17008, 'PCN2020-LUXEMBURG', 'LIABILIT', '106141', 0, 'Vie', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17009, 'PCN2020-LUXEMBURG', 'LIABILIT', '106142', 0, 'Accident', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17010, 'PCN2020-LUXEMBURG', 'LIABILIT', '106143', 0, 'Incendie', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17011, 'PCN2020-LUXEMBURG', 'LIABILIT', '106144', 0, 'Responsabilité civile', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17012, 'PCN2020-LUXEMBURG', 'LIABILIT', '106145', 0, 'Multirisques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17013, 'PCN2020-LUXEMBURG', 'LIABILIT', '106148', 0, 'Autres primes d’assurances privées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17014, 'PCN2020-LUXEMBURG', 'LIABILIT', '106151', 0, 'Assurances sociales (assurance dépendanc', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17015, 'PCN2020-LUXEMBURG', 'LIABILIT', '106152', 0, 'Allocations familiales', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17016, 'PCN2020-LUXEMBURG', 'LIABILIT', '106153', 0, 'Cotisations pour mutuelles', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17017, 'PCN2020-LUXEMBURG', 'LIABILIT', '106154', 0, 'Caisse de décès, médico-chirurgicale, Pr', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17018, 'PCN2020-LUXEMBURG', 'LIABILIT', '106158', 0, 'Autres cotisations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17019, 'PCN2020-LUXEMBURG', 'LIABILIT', '106161', 0, 'Salaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17020, 'PCN2020-LUXEMBURG', 'LIABILIT', '106162', 0, 'Loyer', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17021, 'PCN2020-LUXEMBURG', 'LIABILIT', '106163', 0, 'Chauffage, gaz, électricité', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17022, 'PCN2020-LUXEMBURG', 'LIABILIT', '106164', 0, 'Eau', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17023, 'PCN2020-LUXEMBURG', 'LIABILIT', '106165', 0, 'Téléphone', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17024, 'PCN2020-LUXEMBURG', 'LIABILIT', '106166', 0, 'Voiture', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17025, 'PCN2020-LUXEMBURG', 'LIABILIT', '106168', 0, 'Autres prélèvements en nature', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17026, 'PCN2020-LUXEMBURG', 'LIABILIT', '106171', 0, 'Mobilier privé', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17027, 'PCN2020-LUXEMBURG', 'LIABILIT', '106172', 0, 'Voiture privée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17028, 'PCN2020-LUXEMBURG', 'LIABILIT', '106173', 0, 'Titres privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17029, 'PCN2020-LUXEMBURG', 'LIABILIT', '106174', 0, 'Immeubles privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17030, 'PCN2020-LUXEMBURG', 'LIABILIT', '106178', 0, 'Autres acquisitions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17031, 'PCN2020-LUXEMBURG', 'LIABILIT', '106181', 0, 'Impôt sur le revenu payé (IRPP)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17032, 'PCN2020-LUXEMBURG', 'LIABILIT', '106183', 0, 'Impôt commercial communal (ICC) - arriér', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17033, 'PCN2020-LUXEMBURG', 'LIABILIT', '106188', 0, 'Autres impôts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17034, 'PCN2020-LUXEMBURG', 'LIABILIT', '106191', 0, 'Réparations aux immeubles privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17035, 'PCN2020-LUXEMBURG', 'LIABILIT', '106192', 0, 'Placements sur comptes financiers privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17036, 'PCN2020-LUXEMBURG', 'LIABILIT', '106193', 0, 'Remboursements de dettes privées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17037, 'PCN2020-LUXEMBURG', 'LIABILIT', '106194', 0, 'Dons et dotations aux enfants', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17038, 'PCN2020-LUXEMBURG', 'LIABILIT', '106195', 0, 'Droits de succession et droits de mutati', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17039, 'PCN2020-LUXEMBURG', 'LIABILIT', '106198', 0, 'Autres prélèvements privés particuliers', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17040, 'PCN2020-LUXEMBURG', 'LIABILIT', '10621', 0, 'Héritage ou donation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17041, 'PCN2020-LUXEMBURG', 'LIABILIT', '10622', 0, 'Avoirs privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17042, 'PCN2020-LUXEMBURG', 'LIABILIT', '10623', 0, 'Emprunts privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17043, 'PCN2020-LUXEMBURG', 'LIABILIT', '106241', 0, 'Mobilier privé', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17044, 'PCN2020-LUXEMBURG', 'LIABILIT', '106242', 0, 'Voiture privée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17045, 'PCN2020-LUXEMBURG', 'LIABILIT', '106243', 0, 'Titres privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17046, 'PCN2020-LUXEMBURG', 'LIABILIT', '106244', 0, 'Immeubles privés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17047, 'PCN2020-LUXEMBURG', 'LIABILIT', '106248', 0, 'Autres cessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17048, 'PCN2020-LUXEMBURG', 'LIABILIT', '10625', 0, 'Loyers encaissés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17049, 'PCN2020-LUXEMBURG', 'LIABILIT', '10626', 0, 'Salaires ou rentes touchés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17050, 'PCN2020-LUXEMBURG', 'LIABILIT', '10627', 0, 'Allocations familiales reçues', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17051, 'PCN2020-LUXEMBURG', 'LIABILIT', '106281', 0, 'Impôt sur le revenu (IRPP)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17052, 'PCN2020-LUXEMBURG', 'LIABILIT', '106284', 0, 'Impôt commercial communal (ICC)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17053, 'PCN2020-LUXEMBURG', 'LIABILIT', '106288', 0, 'Autres remboursements d’impôts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17054, 'PCN2020-LUXEMBURG', 'LIABILIT', '10629', 0, 'Quote-part professionnelle de frais priv', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17055, 'PCN2020-LUXEMBURG', 'LIABILIT', '111', 0, 'Primes d’émission', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17056, 'PCN2020-LUXEMBURG', 'LIABILIT', '112', 0, 'Primes de fusion', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17057, 'PCN2020-LUXEMBURG', 'LIABILIT', '113', 0, 'Primes d’apport', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17058, 'PCN2020-LUXEMBURG', 'LIABILIT', '114', 0, 'Primes de convers. d’obligat. en actions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17059, 'PCN2020-LUXEMBURG', 'LIABILIT', '115', 0, 'App. en cap. prop. non rému. par titres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17060, 'PCN2020-LUXEMBURG', 'LIABILIT', '122', 0, 'Réserves de mise en équivalence', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17061, 'PCN2020-LUXEMBURG', 'LIABILIT', '123', 0, 'Plus-values sur écarts de conver. immun.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17062, 'PCN2020-LUXEMBURG', 'LIABILIT', '128', 0, 'Autres réserves de réévaluation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17063, 'PCN2020-LUXEMBURG', 'LIABILIT', '131', 0, 'Réserve légale', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17064, 'PCN2020-LUXEMBURG', 'LIABILIT', '132', 0, 'Rés. pour act. propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17065, 'PCN2020-LUXEMBURG', 'LIABILIT', '133', 0, 'Réserves statutaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17066, 'PCN2020-LUXEMBURG', 'LIABILIT', '1381', 0, 'Autres réserves disponibles', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17067, 'PCN2020-LUXEMBURG', 'LIABILIT', '13821', 0, 'Réserve pour l’impôt sur la fortune (IF)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17068, 'PCN2020-LUXEMBURG', 'LIABILIT', '13822', 0, 'Réserves en application de la juste val.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17069, 'PCN2020-LUXEMBURG', 'LIABILIT', '138231', 0, 'Plus-values immunisées à réinvestir', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17070, 'PCN2020-LUXEMBURG', 'LIABILIT', '138232', 0, 'Plus-values immunisées réinvesties', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17071, 'PCN2020-LUXEMBURG', 'LIABILIT', '13828', 0, 'Réserves non disp. non visées ci-dessus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17072, 'PCN2020-LUXEMBURG', 'LIABILIT', '1411', 0, 'Résultats reportés en instance d’affect.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17073, 'PCN2020-LUXEMBURG', 'LIABILIT', '1412', 0, 'Résultats reportés (affectés)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17074, 'PCN2020-LUXEMBURG', 'LIABILIT', '142', 0, 'Résultat de l’exercice', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17075, 'PCN2020-LUXEMBURG', 'LIABILIT', '15', 0, 'Acomptes sur dividendes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17076, 'PCN2020-LUXEMBURG', 'LIABILIT', '1611', 0, 'Frais de développement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17077, 'PCN2020-LUXEMBURG', 'LIABILIT', '16121', 0, 'acquis à titre onéreux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17078, 'PCN2020-LUXEMBURG', 'LIABILIT', '16122', 0, 'créés par l’entreprise elle-même', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17079, 'PCN2020-LUXEMBURG', 'LIABILIT', '1613', 0, 'Fonds de comm., acquis à titre onéreux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17080, 'PCN2020-LUXEMBURG', 'LIABILIT', '1621', 0, 'Subv. sur terrains, aménag. et constr.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17081, 'PCN2020-LUXEMBURG', 'LIABILIT', '1622', 0, 'Subv. sur installations techn. et mach.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17082, 'PCN2020-LUXEMBURG', 'LIABILIT', '1623', 0, 'Subv. autr. instal./outil./mob./m. roul.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17083, 'PCN2020-LUXEMBURG', 'LIABILIT', '168', 0, 'Autres subventions d’invest. en capital', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17084, 'PCN2020-LUXEMBURG', 'LIABILIT', '181', 0, 'Prov. pour pensions et oblig. simil.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17085, 'PCN2020-LUXEMBURG', 'LIABILIT', '182', 0, 'Provisions pour impôts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17086, 'PCN2020-LUXEMBURG', 'LIABILIT', '183', 0, 'Provisions pour impôts différés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17087, 'PCN2020-LUXEMBURG', 'LIABILIT', '1881', 0, 'Provisions d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17088, 'PCN2020-LUXEMBURG', 'LIABILIT', '1882', 0, 'Provisions financières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17089, 'PCN2020-LUXEMBURG', 'LIABILIT', '1921', 0, 'dont la durée résiduelle est <1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17090, 'PCN2020-LUXEMBURG', 'LIABILIT', '1922', 0, 'dont la durée résiduelle est >1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17091, 'PCN2020-LUXEMBURG', 'LIABILIT', '1931', 0, 'dont la durée résiduelle est <1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17092, 'PCN2020-LUXEMBURG', 'LIABILIT', '1932', 0, 'dont la durée résiduelle est >1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17093, 'PCN2020-LUXEMBURG', 'LIABILIT', '1941', 0, 'dont la durée résiduelle est <1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17094, 'PCN2020-LUXEMBURG', 'LIABILIT', '1942', 0, 'dont la durée résiduelle est >1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17095, 'PCN2020-LUXEMBURG', 'ASSETS', '201', 0, 'Frais de constit. et de premier établis.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17096, 'PCN2020-LUXEMBURG', 'ASSETS', '203', 0, 'Frais d’aug. cap., d’opé. div. (F, S, T)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17097, 'PCN2020-LUXEMBURG', 'ASSETS', '204', 0, 'Frais d’émission d’emprunts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17098, 'PCN2020-LUXEMBURG', 'ASSETS', '208', 0, 'Autres frais assimilés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17099, 'PCN2020-LUXEMBURG', 'ASSETS', '211', 0, 'Frais de développement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17100, 'PCN2020-LUXEMBURG', 'ASSETS', '21211', 0, 'Concessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17101, 'PCN2020-LUXEMBURG', 'ASSETS', '21212', 0, 'Brevets', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17102, 'PCN2020-LUXEMBURG', 'ASSETS', '21213', 0, 'Licences informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17103, 'PCN2020-LUXEMBURG', 'ASSETS', '21214', 0, 'Marques et franchises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17104, 'PCN2020-LUXEMBURG', 'ASSETS', '212151', 0, 'Droits d’auteur et de reproduction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17105, 'PCN2020-LUXEMBURG', 'ASSETS', '212152', 0, 'Quotas d’ém. de gaz à effet de serre', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17106, 'PCN2020-LUXEMBURG', 'ASSETS', '212158', 0, 'Aut. drts et val. sim. acq. à tit. onér.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17107, 'PCN2020-LUXEMBURG', 'ASSETS', '21221', 0, 'Concessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17108, 'PCN2020-LUXEMBURG', 'ASSETS', '21222', 0, 'Brevets', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17109, 'PCN2020-LUXEMBURG', 'ASSETS', '21223', 0, 'Licences informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17110, 'PCN2020-LUXEMBURG', 'ASSETS', '21224', 0, 'Marques et franchises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17111, 'PCN2020-LUXEMBURG', 'ASSETS', '212251', 0, 'Droits d’auteur et de reproduction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17112, 'PCN2020-LUXEMBURG', 'ASSETS', '212258', 0, 'Aut.drts/val.sim. créés par ent. elle-m.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17113, 'PCN2020-LUXEMBURG', 'ASSETS', '213', 0, 'Fonds de comm. acquis à tit. onéreux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17114, 'PCN2020-LUXEMBURG', 'ASSETS', '214', 0, 'Acomp. versés et immob. Incorp en cours', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17115, 'PCN2020-LUXEMBURG', 'ASSETS', '221111', 0, 'Terrains bâtis', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17116, 'PCN2020-LUXEMBURG', 'ASSETS', '221112', 0, 'Droits immobiliers et assimilés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17117, 'PCN2020-LUXEMBURG', 'ASSETS', '221118', 0, 'Autres terrains', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17118, 'PCN2020-LUXEMBURG', 'ASSETS', '22112', 0, 'Terrains à l’étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17119, 'PCN2020-LUXEMBURG', 'ASSETS', '22121', 0, 'Agencem. et aménag. de terrains au Lux.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17120, 'PCN2020-LUXEMBURG', 'ASSETS', '22122', 0, 'Agencem. et aménag. de terrains étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17121, 'PCN2020-LUXEMBURG', 'ASSETS', '221311', 0, 'Constructions / Bâtiments résidentiels', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17122, 'PCN2020-LUXEMBURG', 'ASSETS', '221312', 0, 'Constructions / Bâtiments non résiden.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17123, 'PCN2020-LUXEMBURG', 'ASSETS', '221313', 0, 'Constructions / Bâtiments à usage mixte', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17124, 'PCN2020-LUXEMBURG', 'ASSETS', '221318', 0, 'Autres constructions / bâtiments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17125, 'PCN2020-LUXEMBURG', 'ASSETS', '22132', 0, 'Constructions / Bâtiments à l’étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17126, 'PCN2020-LUXEMBURG', 'ASSETS', '22141', 0, 'Agen. et amén. de constr./bâtim. au Lux.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17127, 'PCN2020-LUXEMBURG', 'ASSETS', '22142', 0, 'Agen. et amén. de constr./bâtim. étrang.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17128, 'PCN2020-LUXEMBURG', 'ASSETS', '22151', 0, 'Immeubles de placement au Luxembourg', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17129, 'PCN2020-LUXEMBURG', 'ASSETS', '22152', 0, 'Immeubles de placement à l’étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17130, 'PCN2020-LUXEMBURG', 'ASSETS', '2221', 0, 'Installations techniques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17131, 'PCN2020-LUXEMBURG', 'ASSETS', '2222', 0, 'Machines', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17132, 'PCN2020-LUXEMBURG', 'ASSETS', '2231', 0, 'Equip. de transport et de manutention', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17133, 'PCN2020-LUXEMBURG', 'ASSETS', '2232', 0, 'Véhicules de transport', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17134, 'PCN2020-LUXEMBURG', 'ASSETS', '2233', 0, 'Outillage', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17135, 'PCN2020-LUXEMBURG', 'ASSETS', '2234', 0, 'Mobilier', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17136, 'PCN2020-LUXEMBURG', 'ASSETS', '2235', 0, 'Matériel informatique', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17137, 'PCN2020-LUXEMBURG', 'ASSETS', '223501', 0, 'Amortissement sur Matériel roulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17138, 'PCN2020-LUXEMBURG', 'ASSETS', '223509', 0, 'Amortissement sur MAC Book Air', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17139, 'PCN2020-LUXEMBURG', 'ASSETS', '2236', 0, 'Cheptel', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17140, 'PCN2020-LUXEMBURG', 'ASSETS', '2237', 0, 'Emballages récupérables', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17141, 'PCN2020-LUXEMBURG', 'ASSETS', '2238', 0, 'Autres installations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17142, 'PCN2020-LUXEMBURG', 'ASSETS', '22411', 0, 'Terrains, aménag. et constr. au Lux.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17143, 'PCN2020-LUXEMBURG', 'ASSETS', '22412', 0, 'Terrains, aménag. et constr. étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17144, 'PCN2020-LUXEMBURG', 'ASSETS', '2242', 0, 'Installations techniques et machines', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17145, 'PCN2020-LUXEMBURG', 'ASSETS', '2243', 0, 'Aut. install., outil., mob., mat. roul.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17146, 'PCN2020-LUXEMBURG', 'ASSETS', '231', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17147, 'PCN2020-LUXEMBURG', 'ASSETS', '232', 0, 'Créances sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17148, 'PCN2020-LUXEMBURG', 'ASSETS', '233', 0, 'Participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17149, 'PCN2020-LUXEMBURG', 'ASSETS', '234', 0, 'Créances sur des entr. lien particip.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17150, 'PCN2020-LUXEMBURG', 'ASSETS', '235111', 0, 'Actions cotées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17151, 'PCN2020-LUXEMBURG', 'ASSETS', '235112', 0, 'Actions non cotées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17152, 'PCN2020-LUXEMBURG', 'ASSETS', '23518', 0, 'Aut. titres immob. (droit de propriété)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17153, 'PCN2020-LUXEMBURG', 'ASSETS', '23521', 0, 'Obligations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17154, 'PCN2020-LUXEMBURG', 'ASSETS', '23528', 0, 'Autres titres immob. (droit de créance)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17155, 'PCN2020-LUXEMBURG', 'ASSETS', '2353', 0, 'Parts d’OPC', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17156, 'PCN2020-LUXEMBURG', 'ASSETS', '2358', 0, 'Autres titres ayant le caractère d’immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17157, 'PCN2020-LUXEMBURG', 'ASSETS', '2361', 0, 'Prêts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17158, 'PCN2020-LUXEMBURG', 'ASSETS', '2362', 0, 'Dépôts et cautionnements versés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17159, 'PCN2020-LUXEMBURG', 'ASSETS', '2363', 0, 'Créances immobilisées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17160, 'PCN2020-LUXEMBURG', 'ASSETS', '301', 0, 'Stocks de matières premières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17161, 'PCN2020-LUXEMBURG', 'ASSETS', '303', 0, 'Stocks de matières et fourn. consom.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17162, 'PCN2020-LUXEMBURG', 'ASSETS', '304', 0, 'Stocks d’emballages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17163, 'PCN2020-LUXEMBURG', 'ASSETS', '311', 0, 'Stocks de produits en cours de fabric.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17164, 'PCN2020-LUXEMBURG', 'ASSETS', '312', 0, 'Commandes en cours - produits', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17165, 'PCN2020-LUXEMBURG', 'ASSETS', '313', 0, 'Commandes en cours - prest. de serv.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17166, 'PCN2020-LUXEMBURG', 'ASSETS', '314', 0, 'Immeubles en construction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17167, 'PCN2020-LUXEMBURG', 'ASSETS', '315', 0, 'Ac.déd./stks.prod.en co. fabr./com.en c.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17168, 'PCN2020-LUXEMBURG', 'ASSETS', '321', 0, 'Stocks de produits finis', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17169, 'PCN2020-LUXEMBURG', 'ASSETS', '322', 0, 'Stocks de produits intermédiaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17170, 'PCN2020-LUXEMBURG', 'ASSETS', '323', 0, 'Stks prod.résid.(déch.,reb.,mat.récup.)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17171, 'PCN2020-LUXEMBURG', 'ASSETS', '361', 0, 'Stocks de marchandises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17172, 'PCN2020-LUXEMBURG', 'ASSETS', '3621', 0, 'Stocks de terrains au Luxembourg', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17173, 'PCN2020-LUXEMBURG', 'ASSETS', '3622', 0, 'Stocks de terrains à l’étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17174, 'PCN2020-LUXEMBURG', 'ASSETS', '3631', 0, 'Stocks d’immeubles au Luxembourg', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17175, 'PCN2020-LUXEMBURG', 'ASSETS', '3632', 0, 'Stocks d’immeubles à l’étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17176, 'PCN2020-LUXEMBURG', 'ASSETS', '37', 0, 'Acomptes versés sur stocks', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17177, 'PCN2020-LUXEMBURG', 'ASSETS', '4011', 0, 'Clients', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17178, 'PCN2020-LUXEMBURG', 'ASSETS', '4012', 0, 'Clients - Effets à recevoir', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17179, 'PCN2020-LUXEMBURG', 'ASSETS', '4013', 0, 'Clients douteux ou litigieux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17180, 'PCN2020-LUXEMBURG', 'ASSETS', '4014', 0, 'Clients - Factures à établir', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17181, 'PCN2020-LUXEMBURG', 'ASSETS', '4015', 0, 'Clients créditeurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17182, 'PCN2020-LUXEMBURG', 'ASSETS', '4019', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17183, 'PCN2020-LUXEMBURG', 'ASSETS', '4021', 0, 'Clients', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17184, 'PCN2020-LUXEMBURG', 'ASSETS', '4025', 0, 'Clients créditeurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17185, 'PCN2020-LUXEMBURG', 'ASSETS', '4029', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17186, 'PCN2020-LUXEMBURG', 'ASSETS', '41111', 0, 'Ventes et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17187, 'PCN2020-LUXEMBURG', 'ASSETS', '41112', 0, 'Prêts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17188, 'PCN2020-LUXEMBURG', 'ASSETS', '41118', 0, 'Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17189, 'PCN2020-LUXEMBURG', 'ASSETS', '41119', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17190, 'PCN2020-LUXEMBURG', 'ASSETS', '41121', 0, 'Ventes et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17191, 'PCN2020-LUXEMBURG', 'ASSETS', '41122', 0, 'Prêts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17192, 'PCN2020-LUXEMBURG', 'ASSETS', '41128', 0, 'Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17193, 'PCN2020-LUXEMBURG', 'ASSETS', '41129', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17194, 'PCN2020-LUXEMBURG', 'ASSETS', '41211', 0, 'Ventes et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17195, 'PCN2020-LUXEMBURG', 'ASSETS', '41212', 0, 'Prêts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17196, 'PCN2020-LUXEMBURG', 'ASSETS', '41218', 0, 'Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17197, 'PCN2020-LUXEMBURG', 'ASSETS', '41219', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17198, 'PCN2020-LUXEMBURG', 'ASSETS', '41221', 0, 'Ventes et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17199, 'PCN2020-LUXEMBURG', 'ASSETS', '41222', 0, 'Prêts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17200, 'PCN2020-LUXEMBURG', 'ASSETS', '41228', 0, 'Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17201, 'PCN2020-LUXEMBURG', 'ASSETS', '41229', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17202, 'PCN2020-LUXEMBURG', 'ASSETS', '42111', 0, 'Avances et acomptes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17203, 'PCN2020-LUXEMBURG', 'ASSETS', '42119', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17204, 'PCN2020-LUXEMBURG', 'ASSETS', '4212', 0, 'Cr./assoc. ou act.(aut. qu’ent. liées)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17205, 'PCN2020-LUXEMBURG', 'ASSETS', '42121', 0, 'De Franco Vincent', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17206, 'PCN2020-LUXEMBURG', 'ASSETS', '42131', 0, 'Subventions d’investissement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17207, 'PCN2020-LUXEMBURG', 'ASSETS', '42132', 0, 'Subventions d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17208, 'PCN2020-LUXEMBURG', 'ASSETS', '42138', 0, 'Autres subventions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17209, 'PCN2020-LUXEMBURG', 'ASSETS', '42141', 0, 'Impôt sur le revenu des coll. (IRC)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17210, 'PCN2020-LUXEMBURG', 'ASSETS', '42142', 0, 'Impôt commercial communal (ICC)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17211, 'PCN2020-LUXEMBURG', 'ASSETS', '42143', 0, 'Impôt sur la fortune (IF)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17212, 'PCN2020-LUXEMBURG', 'ASSETS', '42144', 0, 'Retenue d’impôt sur trait. et salaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17213, 'PCN2020-LUXEMBURG', 'ASSETS', '42145', 0, 'Retenue d’impôt sur rev. de cap. mobil.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17214, 'PCN2020-LUXEMBURG', 'ASSETS', '42146', 0, 'Retenue d’impôt sur les tantièmes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17215, 'PCN2020-LUXEMBURG', 'ASSETS', '42148', 0, 'ACD - Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17216, 'PCN2020-LUXEMBURG', 'ASSETS', '4215', 0, 'Admin. des Douanes et Accises (ADA)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17217, 'PCN2020-LUXEMBURG', 'ASSETS', '421611', 0, 'TVA en amont', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17218, 'PCN2020-LUXEMBURG', 'ASSETS', '421612', 0, 'TVA à recevoir', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17219, 'PCN2020-LUXEMBURG', 'ASSETS', '421613', 0, 'TVA acomptes versés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17220, 'PCN2020-LUXEMBURG', 'ASSETS', '421618', 0, 'TVA - Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17221, 'PCN2020-LUXEMBURG', 'ASSETS', '421621', 0, 'Droits d’enregistrement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17222, 'PCN2020-LUXEMBURG', 'ASSETS', '421622', 0, 'Taxe d’abonnement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17223, 'PCN2020-LUXEMBURG', 'ASSETS', '421628', 0, 'Autres impôts indirects', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17224, 'PCN2020-LUXEMBURG', 'ASSETS', '42168', 0, 'AED - Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17225, 'PCN2020-LUXEMBURG', 'ASSETS', '42171', 0, 'Centre Commun de Sécurité Sociale (CCSS)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17226, 'PCN2020-LUXEMBURG', 'ASSETS', '42172', 0, 'Remboursement mutualité', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17227, 'PCN2020-LUXEMBURG', 'ASSETS', '42178', 0, 'Autres organismes sociaux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17228, 'PCN2020-LUXEMBURG', 'ASSETS', '421811', 0, 'TVA étrangères', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17229, 'PCN2020-LUXEMBURG', 'ASSETS', '421818', 0, 'Autres impôts étrangers', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17230, 'PCN2020-LUXEMBURG', 'ASSETS', '42187', 0, 'Instruments financiers dérivés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17231, 'PCN2020-LUXEMBURG', 'ASSETS', '42188', 0, 'Autres créances diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17232, 'PCN2020-LUXEMBURG', 'ASSETS', '42189', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17233, 'PCN2020-LUXEMBURG', 'ASSETS', '4221', 0, 'Personnel - Avances et acomptes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17234, 'PCN2020-LUXEMBURG', 'ASSETS', '4222', 0, 'Cr./assoc. ou act.(aut. qu’ent. liées)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17235, 'PCN2020-LUXEMBURG', 'ASSETS', '42231', 0, 'Subventions d’investissement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17236, 'PCN2020-LUXEMBURG', 'ASSETS', '42232', 0, 'Subventions d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17237, 'PCN2020-LUXEMBURG', 'ASSETS', '42238', 0, 'Autres subventions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17238, 'PCN2020-LUXEMBURG', 'ASSETS', '42287', 0, 'Instruments financiers dérivés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17239, 'PCN2020-LUXEMBURG', 'ASSETS', '42288', 0, 'Autres créances diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17240, 'PCN2020-LUXEMBURG', 'ASSETS', '42289', 0, 'Corrections de valeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17241, 'PCN2020-LUXEMBURG', 'LIABILIT', '4311', 0, 'Acomptes reçus sur commandes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17242, 'PCN2020-LUXEMBURG', 'LIABILIT', '4312', 0, 'Stks pr. en c.fab.,com. en c. - ac. reç.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17243, 'PCN2020-LUXEMBURG', 'LIABILIT', '4321', 0, 'Acomptes reçus sur commandes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17244, 'PCN2020-LUXEMBURG', 'LIABILIT', '4322', 0, 'Stk. pr. en c. fab., com. en c.-ac. reç.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17245, 'PCN2020-LUXEMBURG', 'LIABILIT', '44111', 0, 'Fournisseurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17246, 'PCN2020-LUXEMBURG', 'LIABILIT', '44112', 0, 'Fournisseurs - Factures non parvenues', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17247, 'PCN2020-LUXEMBURG', 'LIABILIT', '44113', 0, 'Fournisseurs débiteurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17248, 'PCN2020-LUXEMBURG', 'LIABILIT', '44121', 0, 'Fournisseurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17249, 'PCN2020-LUXEMBURG', 'LIABILIT', '44123', 0, 'Fournisseurs débiteurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17250, 'PCN2020-LUXEMBURG', 'LIABILIT', '4421', 0, 'Effets à payer dont la durée résid. <1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17251, 'PCN2020-LUXEMBURG', 'LIABILIT', '4422', 0, 'Effets à payer dont la durée résid. >1an', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17252, 'PCN2020-LUXEMBURG', 'LIABILIT', '45111', 0, 'Achats et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17253, 'PCN2020-LUXEMBURG', 'LIABILIT', '45112', 0, 'Emprunts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17254, 'PCN2020-LUXEMBURG', 'LIABILIT', '45118', 0, 'Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17255, 'PCN2020-LUXEMBURG', 'LIABILIT', '45121', 0, 'Achats et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17256, 'PCN2020-LUXEMBURG', 'LIABILIT', '45122', 0, 'Emprunts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17257, 'PCN2020-LUXEMBURG', 'LIABILIT', '45128', 0, 'Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17258, 'PCN2020-LUXEMBURG', 'LIABILIT', '45211', 0, 'Achats et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17259, 'PCN2020-LUXEMBURG', 'LIABILIT', '45212', 0, 'Emprunts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17260, 'PCN2020-LUXEMBURG', 'LIABILIT', '45218', 0, 'Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17261, 'PCN2020-LUXEMBURG', 'LIABILIT', '45221', 0, 'Achats et prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17262, 'PCN2020-LUXEMBURG', 'LIABILIT', '45222', 0, 'Emprunts et avances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17263, 'PCN2020-LUXEMBURG', 'LIABILIT', '45228', 0, 'Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17264, 'PCN2020-LUXEMBURG', 'LIABILIT', '4611', 0, 'Administrations communales', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17265, 'PCN2020-LUXEMBURG', 'LIABILIT', '461211', 0, 'IRC - charge fiscale estimée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17266, 'PCN2020-LUXEMBURG', 'LIABILIT', '461212', 0, 'IRC - dette fiscale à payer', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17267, 'PCN2020-LUXEMBURG', 'LIABILIT', '461221', 0, 'ICC - charge fiscale estimée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17268, 'PCN2020-LUXEMBURG', 'LIABILIT', '461222', 0, 'ICC - dette fiscale à payer', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17269, 'PCN2020-LUXEMBURG', 'LIABILIT', '461231', 0, 'IF - charge fiscale estimée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17270, 'PCN2020-LUXEMBURG', 'LIABILIT', '461232', 0, 'IF - dette fiscale à payer', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17271, 'PCN2020-LUXEMBURG', 'LIABILIT', '46124', 0, 'Retenue d’impôt sur trait. et sal. (RTS)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17272, 'PCN2020-LUXEMBURG', 'LIABILIT', '46125', 0, 'Retenue d’impôt sur revenus de capitaux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17273, 'PCN2020-LUXEMBURG', 'LIABILIT', '46126', 0, 'Retenue d’impôt sur les tantièmes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17274, 'PCN2020-LUXEMBURG', 'LIABILIT', '46128', 0, 'ACD - Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17275, 'PCN2020-LUXEMBURG', 'LIABILIT', '4613', 0, 'Admin. des Douanes et Accises (ADA)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17276, 'PCN2020-LUXEMBURG', 'LIABILIT', '461411', 0, 'TVA en aval', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17277, 'PCN2020-LUXEMBURG', 'LIABILIT', '461412', 0, 'TVA à payer', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17278, 'PCN2020-LUXEMBURG', 'LIABILIT', '461413', 0, 'TVA acomptes reçus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17279, 'PCN2020-LUXEMBURG', 'LIABILIT', '461418', 0, 'TVA - Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17280, 'PCN2020-LUXEMBURG', 'LIABILIT', '461421', 0, 'Droits d’enregistrement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17281, 'PCN2020-LUXEMBURG', 'LIABILIT', '461422', 0, 'Taxe d’abonnement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17282, 'PCN2020-LUXEMBURG', 'LIABILIT', '461428', 0, 'Autres impôts indirects', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17283, 'PCN2020-LUXEMBURG', 'LIABILIT', '46148', 0, 'AED - Autres dettes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17284, 'PCN2020-LUXEMBURG', 'LIABILIT', '46151', 0, 'TVA étrangères', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17285, 'PCN2020-LUXEMBURG', 'LIABILIT', '46158', 0, 'Autres impôts étrangers', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17286, 'PCN2020-LUXEMBURG', 'LIABILIT', '461611', 0, 'TVA AMONT', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17287, 'PCN2020-LUXEMBURG', 'LIABILIT', '4621', 0, 'Centre Commun de Sécurité Sociale (CCSS)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17288, 'PCN2020-LUXEMBURG', 'LIABILIT', '4622', 0, 'Organismes étrangers de sécurité sociale', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17289, 'PCN2020-LUXEMBURG', 'LIABILIT', '4628', 0, 'Autres organismes sociaux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17290, 'PCN2020-LUXEMBURG', 'LIABILIT', '4711', 0, 'Dépôts et cautionnements reçus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17291, 'PCN2020-LUXEMBURG', 'LIABILIT', '4712', 0, 'Dettes/ass. et act. (aut. qu’ent. liées)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17292, 'PCN2020-LUXEMBURG', 'LIABILIT', '4713', 0, 'Dettes / admin., gér., aut. org. assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17293, 'PCN2020-LUXEMBURG', 'LIABILIT', '4714', 0, 'De Franco Vincent', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17294, 'PCN2020-LUXEMBURG', 'LIABILIT', '47141', 0, 'Desloges Mickael', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17295, 'PCN2020-LUXEMBURG', 'LIABILIT', '4715', 0, 'Etat-Q.ém.gaz à eff.serre à rest.à l’ac.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17296, 'PCN2020-LUXEMBURG', 'LIABILIT', '47161', 0, 'Autres emprunts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17297, 'PCN2020-LUXEMBURG', 'LIABILIT', '47162', 0, 'Dettes de leasing', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17298, 'PCN2020-LUXEMBURG', 'LIABILIT', '47163', 0, 'Rentes viagères', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17299, 'PCN2020-LUXEMBURG', 'LIABILIT', '47168', 0, 'Autres dettes assimilées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17300, 'PCN2020-LUXEMBURG', 'LIABILIT', '4717', 0, 'Instruments financiers dérivés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17301, 'PCN2020-LUXEMBURG', 'LIABILIT', '4718', 0, 'Autres dettes diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17302, 'PCN2020-LUXEMBURG', 'LIABILIT', '4721', 0, 'Dépôts et cautionnements reçus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17303, 'PCN2020-LUXEMBURG', 'LIABILIT', '4722', 0, 'Dettes/ass. et act. (aut. qu’ent. liées)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17304, 'PCN2020-LUXEMBURG', 'LIABILIT', '4723', 0, 'Dettes / admin., gér., aut. org. assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17305, 'PCN2020-LUXEMBURG', 'LIABILIT', '4724', 0, 'Dettes envers le personnel', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17306, 'PCN2020-LUXEMBURG', 'LIABILIT', '47261', 0, 'Autres emprunts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17307, 'PCN2020-LUXEMBURG', 'LIABILIT', '47262', 0, 'Dettes de leasing', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17308, 'PCN2020-LUXEMBURG', 'LIABILIT', '47263', 0, 'Rentes viagères', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17309, 'PCN2020-LUXEMBURG', 'LIABILIT', '47268', 0, 'Autres dettes assimilées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17310, 'PCN2020-LUXEMBURG', 'LIABILIT', '4727', 0, 'Instruments financiers dérivés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17311, 'PCN2020-LUXEMBURG', 'LIABILIT', '4728', 0, 'Autres dettes diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17312, 'PCN2020-LUXEMBURG', 'LIABILIT', '481', 0, 'Charges à report. (sur 1 ou plus. exer.)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17313, 'PCN2020-LUXEMBURG', 'LIABILIT', '482', 0, 'Produits à report.(sur 1 ou plus. exer.)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17314, 'PCN2020-LUXEMBURG', 'LIABILIT', '483', 0, 'Etat-Q.ém.gaz à eff.serre assim. ou all.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17315, 'PCN2020-LUXEMBURG', 'LIABILIT', '484', 0, 'Comptes transit. ou d’attente - Actif', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17316, 'PCN2020-LUXEMBURG', 'LIABILIT', '485', 0, 'Comptes transit. ou d’attente - Passif', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17317, 'PCN2020-LUXEMBURG', 'LIABILIT', '486', 0, 'Comptes de liaison (succursales) - Actif', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17318, 'PCN2020-LUXEMBURG', 'LIABILIT', '487', 0, 'Comptes de liaison (succurs.) - Passif', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17319, 'PCN2020-LUXEMBURG', 'ASSETS', '501', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17320, 'PCN2020-LUXEMBURG', 'ASSETS', '502', 0, 'Actions propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17321, 'PCN2020-LUXEMBURG', 'ASSETS', '503', 0, 'Parts dans des entrep. lien particip.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17322, 'PCN2020-LUXEMBURG', 'ASSETS', '5081', 0, 'Actions - Titres cotés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17323, 'PCN2020-LUXEMBURG', 'ASSETS', '5082', 0, 'Actions - Titres non cotés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17324, 'PCN2020-LUXEMBURG', 'ASSETS', '5083', 0, 'Obl.,aut.cr.émis.par l’ent.rach.par elle', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17325, 'PCN2020-LUXEMBURG', 'ASSETS', '5084', 0, 'Obligations - Titres cotés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17326, 'PCN2020-LUXEMBURG', 'ASSETS', '5085', 0, 'Obligations - Titres non cotés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17327, 'PCN2020-LUXEMBURG', 'ASSETS', '5088', 0, 'Autres valeurs mobilières diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17328, 'PCN2020-LUXEMBURG', 'ASSETS', '5131', 0, 'Raiffeisen LU83 - 6555', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17329, 'PCN2020-LUXEMBURG', 'ASSETS', '5132', 0, 'Banques et CCP : découverts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17330, 'PCN2020-LUXEMBURG', 'ASSETS', '516', 0, 'Caisse', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17331, 'PCN2020-LUXEMBURG', 'ASSETS', '5171', 0, 'Virements internes : solde débiteur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17332, 'PCN2020-LUXEMBURG', 'ASSETS', '5172', 0, 'Virements internes : solde créditeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17333, 'PCN2020-LUXEMBURG', 'ASSETS', '518', 0, 'Autres avoirs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17334, 'PCN2020-LUXEMBURG', 'EXPENSE', '601', 0, 'Achats de matières premières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17335, 'PCN2020-LUXEMBURG', 'EXPENSE', '60311', 0, 'Combustibles solides', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17336, 'PCN2020-LUXEMBURG', 'EXPENSE', '60312', 0, 'Combustibles liquides', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17337, 'PCN2020-LUXEMBURG', 'EXPENSE', '60313', 0, 'Gaz', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17338, 'PCN2020-LUXEMBURG', 'EXPENSE', '60314', 0, 'Eau et eaux usées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17339, 'PCN2020-LUXEMBURG', 'EXPENSE', '60315', 0, 'Electricité', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17340, 'PCN2020-LUXEMBURG', 'EXPENSE', '6032', 0, 'Produits d’entretien', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17341, 'PCN2020-LUXEMBURG', 'EXPENSE', '6033', 0, 'Fourn., pet.équip.-atelier, usine, maga.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17342, 'PCN2020-LUXEMBURG', 'EXPENSE', '6034', 0, 'Vêtements professionnels', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17343, 'PCN2020-LUXEMBURG', 'EXPENSE', '6035', 0, 'Fournitures administratives et de bureau', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17344, 'PCN2020-LUXEMBURG', 'EXPENSE', '6036', 0, 'Carburants', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17345, 'PCN2020-LUXEMBURG', 'EXPENSE', '6037', 0, 'Lubrifiants', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17346, 'PCN2020-LUXEMBURG', 'EXPENSE', '6038', 0, 'Autres fournitures consommables', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17347, 'PCN2020-LUXEMBURG', 'EXPENSE', '604', 0, 'Achats d’emballages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17348, 'PCN2020-LUXEMBURG', 'EXPENSE', '6061', 0, 'Achats de marchandises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17349, 'PCN2020-LUXEMBURG', 'EXPENSE', '6062', 0, 'Achats de terrains destinés à la revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17350, 'PCN2020-LUXEMBURG', 'EXPENSE', '6063', 0, 'Achats d’immeubles destinés à la revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17351, 'PCN2020-LUXEMBURG', 'EXPENSE', '6071', 0, 'Variation des stocks de matières prem.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17352, 'PCN2020-LUXEMBURG', 'EXPENSE', '6073', 0, 'Variation stks mat. et fournit. consomm.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17353, 'PCN2020-LUXEMBURG', 'EXPENSE', '6074', 0, 'Variation des stocks d’emballages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17354, 'PCN2020-LUXEMBURG', 'EXPENSE', '60761', 0, 'Marchandises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17355, 'PCN2020-LUXEMBURG', 'EXPENSE', '60762', 0, 'Terrains destinés à la revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17356, 'PCN2020-LUXEMBURG', 'EXPENSE', '60763', 0, 'Immeubles destinés à la revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17357, 'PCN2020-LUXEMBURG', 'EXPENSE', '60811', 0, 'Travail à façon', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17358, 'PCN2020-LUXEMBURG', 'EXPENSE', '60812', 0, 'Recherche et développement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17359, 'PCN2020-LUXEMBURG', 'EXPENSE', '60813', 0, 'Frais d’architectes et d’ingénieurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17360, 'PCN2020-LUXEMBURG', 'EXPENSE', '60814', 0, 'Sous-trait. Incorp. aux ouvrag. et prod.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17361, 'PCN2020-LUXEMBURG', 'EXPENSE', '6082', 0, 'Aut. ach. mat. inco. aux ouvr. et prod.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17362, 'PCN2020-LUXEMBURG', 'EXPENSE', '6083', 0, 'Ach. quo. d’ém.gaz eff. serre et assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17363, 'PCN2020-LUXEMBURG', 'EXPENSE', '6088', 0, 'Autres achats incorp. aux ouvr. et prod.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17364, 'PCN2020-LUXEMBURG', 'EXPENSE', '6091', 0, 'RRR sur achats de matières premières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17365, 'PCN2020-LUXEMBURG', 'EXPENSE', '6093', 0, 'RRR sur achats mat. et fourn. consomm.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17366, 'PCN2020-LUXEMBURG', 'EXPENSE', '6094', 0, 'RRR sur achats d’emballages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17367, 'PCN2020-LUXEMBURG', 'EXPENSE', '6096', 0, 'RRR/ach.march., autr.biens dest. revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17368, 'PCN2020-LUXEMBURG', 'EXPENSE', '6098', 0, 'RRR / achats incorp. aux ouvra. et prod.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17369, 'PCN2020-LUXEMBURG', 'EXPENSE', '6099', 0, 'RRR non affectés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17370, 'PCN2020-LUXEMBURG', 'EXPENSE', '61111', 0, 'Terrains', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17371, 'PCN2020-LUXEMBURG', 'EXPENSE', '61112', 0, 'Constructions / Bâtiments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17372, 'PCN2020-LUXEMBURG', 'EXPENSE', '61123', 0, 'Matériel roulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17373, 'PCN2020-LUXEMBURG', 'EXPENSE', '61128', 0, 'Autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17374, 'PCN2020-LUXEMBURG', 'EXPENSE', '6113', 0, 'Charges locatives et de copropriété', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17375, 'PCN2020-LUXEMBURG', 'EXPENSE', '6114', 0, 'Leasing financier immobilier', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17376, 'PCN2020-LUXEMBURG', 'EXPENSE', '61153', 0, 'Matériel roulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17377, 'PCN2020-LUXEMBURG', 'EXPENSE', '61158', 0, 'Autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17378, 'PCN2020-LUXEMBURG', 'EXPENSE', '6121', 0, 'S.-trait.géné.(non inc. aux ouv.et pro.)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17379, 'PCN2020-LUXEMBURG', 'EXPENSE', '61221', 0, 'Constructions / Bâtiments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17380, 'PCN2020-LUXEMBURG', 'EXPENSE', '61223', 0, 'Matériel roulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17381, 'PCN2020-LUXEMBURG', 'EXPENSE', '61228', 0, 'Autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17382, 'PCN2020-LUXEMBURG', 'EXPENSE', '6131', 0, 'Commissions et courtages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17383, 'PCN2020-LUXEMBURG', 'EXPENSE', '61311', 0, 'CCSS Santé', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17384, 'PCN2020-LUXEMBURG', 'EXPENSE', '6132', 0, 'Services informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17385, 'PCN2020-LUXEMBURG', 'EXPENSE', '61332', 0, 'Frais sur émission d’emprunts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17386, 'PCN2020-LUXEMBURG', 'EXPENSE', '61333', 0, 'Frais cpts,comm. banc.,drts garde/tit.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17387, 'PCN2020-LUXEMBURG', 'EXPENSE', '61334', 0, 'Frais sur moyens de paiements électro.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17388, 'PCN2020-LUXEMBURG', 'EXPENSE', '61336', 0, 'Rémunérations d’affacturage', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17389, 'PCN2020-LUXEMBURG', 'EXPENSE', '61338', 0, 'Aut.serv.banc.et ass.(<> int.&fr.assim.)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17390, 'PCN2020-LUXEMBURG', 'EXPENSE', '61341', 0, 'Honoraires juridiq.,de conten. et assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17391, 'PCN2020-LUXEMBURG', 'EXPENSE', '61342', 0, 'Honoraires compta.,fisc.,audit et assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17392, 'PCN2020-LUXEMBURG', 'EXPENSE', '61348', 0, 'Autres honoraires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17393, 'PCN2020-LUXEMBURG', 'EXPENSE', '6135', 0, 'Frais d’actes notariés et assimilés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17394, 'PCN2020-LUXEMBURG', 'EXPENSE', '6138', 0, 'Aut. rémunérat. d’interméd., honoraires.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17395, 'PCN2020-LUXEMBURG', 'EXPENSE', '61411', 0, 'Constructions / Bâtiments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17396, 'PCN2020-LUXEMBURG', 'EXPENSE', '61412', 0, 'Matériel roulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17397, 'PCN2020-LUXEMBURG', 'EXPENSE', '61418', 0, 'Autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17398, 'PCN2020-LUXEMBURG', 'EXPENSE', '6142', 0, 'Assurance sur biens pris en location', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17399, 'PCN2020-LUXEMBURG', 'EXPENSE', '6143', 0, 'Assurance-transport', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17400, 'PCN2020-LUXEMBURG', 'EXPENSE', '6144', 0, 'Assurance risque d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17401, 'PCN2020-LUXEMBURG', 'EXPENSE', '6145', 0, 'Assurance insolvabilité clients', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17402, 'PCN2020-LUXEMBURG', 'EXPENSE', '6146', 0, 'Assurance responsabilité civile', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17403, 'PCN2020-LUXEMBURG', 'EXPENSE', '6148', 0, 'Autres assurances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17404, 'PCN2020-LUXEMBURG', 'EXPENSE', '61511', 0, 'Annonces et insertions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17405, 'PCN2020-LUXEMBURG', 'EXPENSE', '61512', 0, 'Echantillons', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17406, 'PCN2020-LUXEMBURG', 'EXPENSE', '61513', 0, 'Foires et expositions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17407, 'PCN2020-LUXEMBURG', 'EXPENSE', '61514', 0, 'Cadeaux à la clientèle', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17408, 'PCN2020-LUXEMBURG', 'EXPENSE', '61515', 0, 'Catalogues et imprimés et publications', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17409, 'PCN2020-LUXEMBURG', 'EXPENSE', '61516', 0, 'Dons courants', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17410, 'PCN2020-LUXEMBURG', 'EXPENSE', '61517', 0, 'Sponsoring', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17411, 'PCN2020-LUXEMBURG', 'EXPENSE', '61518', 0, 'Autres achats de services publicitaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17412, 'PCN2020-LUXEMBURG', 'EXPENSE', '615211', 0, 'Direction(le cas éch. exploit.et assoc.)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17413, 'PCN2020-LUXEMBURG', 'EXPENSE', '615212', 0, 'Personnel', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17414, 'PCN2020-LUXEMBURG', 'EXPENSE', '61522', 0, 'Frais de déménagement de l’entreprise', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17415, 'PCN2020-LUXEMBURG', 'EXPENSE', '61523', 0, 'Missions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17416, 'PCN2020-LUXEMBURG', 'EXPENSE', '61524', 0, 'Réceptions et frais de représentation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17417, 'PCN2020-LUXEMBURG', 'EXPENSE', '61531', 0, 'Frais postaux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17418, 'PCN2020-LUXEMBURG', 'EXPENSE', '61532', 0, 'Frais de télécommunication', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17419, 'PCN2020-LUXEMBURG', 'EXPENSE', '6161', 0, 'Transports sur achats', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17420, 'PCN2020-LUXEMBURG', 'EXPENSE', '6162', 0, 'Transports sur ventes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17421, 'PCN2020-LUXEMBURG', 'EXPENSE', '6165', 0, 'Transports collectifs du personnel', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17422, 'PCN2020-LUXEMBURG', 'EXPENSE', '6168', 0, 'Autres transports', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17423, 'PCN2020-LUXEMBURG', 'EXPENSE', '6171', 0, 'Personnel intérimaire', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17424, 'PCN2020-LUXEMBURG', 'EXPENSE', '6172', 0, 'Personnel prêté à l’entreprise', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17425, 'PCN2020-LUXEMBURG', 'EXPENSE', '6181', 0, 'Documentation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17426, 'PCN2020-LUXEMBURG', 'EXPENSE', '6182', 0, 'Frais format., colloq., sémin., confér.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17427, 'PCN2020-LUXEMBURG', 'EXPENSE', '6183', 0, 'Elimination déchets indust.& non indust.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17428, 'PCN2020-LUXEMBURG', 'EXPENSE', '61841', 0, 'Combustibles solides', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17429, 'PCN2020-LUXEMBURG', 'EXPENSE', '61842', 0, 'Combustibles liquid.(mazout, carbur,...)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17430, 'PCN2020-LUXEMBURG', 'EXPENSE', '61843', 0, 'Gaz', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17431, 'PCN2020-LUXEMBURG', 'EXPENSE', '61844', 0, 'Eau et eaux usées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17432, 'PCN2020-LUXEMBURG', 'EXPENSE', '61845', 0, 'Electricité', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17433, 'PCN2020-LUXEMBURG', 'EXPENSE', '61851', 0, 'Fournitures administratives et de bureau', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17434, 'PCN2020-LUXEMBURG', 'EXPENSE', '61852', 0, 'Petit équipement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17435, 'PCN2020-LUXEMBURG', 'EXPENSE', '61853', 0, 'Vêtements professionnels', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17436, 'PCN2020-LUXEMBURG', 'EXPENSE', '61854', 0, 'Produits d’entretien', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17437, 'PCN2020-LUXEMBURG', 'EXPENSE', '61858', 0, 'Autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17438, 'PCN2020-LUXEMBURG', 'EXPENSE', '6186', 0, 'Frais de surveillance et de gardiennage', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17439, 'PCN2020-LUXEMBURG', 'EXPENSE', '6187', 0, 'Cotisations aux associations profession.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17440, 'PCN2020-LUXEMBURG', 'EXPENSE', '6188', 0, 'Autres charges externes diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17441, 'PCN2020-LUXEMBURG', 'EXPENSE', '619', 0, 'RRR obt.&non direct.déd.des autr.ch.ext.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17442, 'PCN2020-LUXEMBURG', 'EXPENSE', '62111', 0, 'Salaires de base', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17443, 'PCN2020-LUXEMBURG', 'EXPENSE', '621121', 0, 'Dimanche', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17444, 'PCN2020-LUXEMBURG', 'EXPENSE', '621122', 0, 'Jours fériés légaux', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17445, 'PCN2020-LUXEMBURG', 'EXPENSE', '621123', 0, 'Heures supplémentaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17446, 'PCN2020-LUXEMBURG', 'EXPENSE', '621128', 0, 'Autres suppléments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17447, 'PCN2020-LUXEMBURG', 'EXPENSE', '62114', 0, 'Gratifications, primes et commissions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17448, 'PCN2020-LUXEMBURG', 'EXPENSE', '62115', 0, 'Avantages en nature', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17449, 'PCN2020-LUXEMBURG', 'EXPENSE', '62116', 0, 'Indemnités de licenciement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17450, 'PCN2020-LUXEMBURG', 'EXPENSE', '62117', 0, 'Trimestre de faveur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17451, 'PCN2020-LUXEMBURG', 'EXPENSE', '6218', 0, 'Autres avantages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17452, 'PCN2020-LUXEMBURG', 'EXPENSE', '6219', 0, 'Remboursements sur salaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17453, 'PCN2020-LUXEMBURG', 'EXPENSE', '6221', 0, 'Etudiants', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17454, 'PCN2020-LUXEMBURG', 'EXPENSE', '6222', 0, 'Salaires occasionnels', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17455, 'PCN2020-LUXEMBURG', 'EXPENSE', '6228', 0, 'Autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17456, 'PCN2020-LUXEMBURG', 'EXPENSE', '6231', 0, 'Charges sociales couvrant les pensions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17457, 'PCN2020-LUXEMBURG', 'EXPENSE', '62311', 0, 'CCSS', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17458, 'PCN2020-LUXEMBURG', 'EXPENSE', '62312', 0, 'Caisse nationale de pension', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17459, 'PCN2020-LUXEMBURG', 'EXPENSE', '6232', 0, 'Autr.ch.soc.(inclus maladie, accid.,...)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17460, 'PCN2020-LUXEMBURG', 'EXPENSE', '62411', 0, 'Primes à des fonds de pensions extérieur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17461, 'PCN2020-LUXEMBURG', 'EXPENSE', '62412', 0, 'Variations / prov. pour pensions compl.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17462, 'PCN2020-LUXEMBURG', 'EXPENSE', '62413', 0, 'Retenue d’impôt sur pension complément.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17463, 'PCN2020-LUXEMBURG', 'EXPENSE', '62414', 0, 'Prime d’assurance insolvabilité', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17464, 'PCN2020-LUXEMBURG', 'EXPENSE', '62415', 0, 'Pensions complém.versées par l’employeur', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17465, 'PCN2020-LUXEMBURG', 'EXPENSE', '6248', 0, 'Autr. frais de perso.non visés ci-dessus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17466, 'PCN2020-LUXEMBURG', 'EXPENSE', '6311', 0, 'DCV sur frais de constit. & 1er établis.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17467, 'PCN2020-LUXEMBURG', 'EXPENSE', '6313', 0, 'DCV frais augm.capit.&d’opér.div.(F,S,T)', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17468, 'PCN2020-LUXEMBURG', 'EXPENSE', '6314', 0, 'DCV sur frais d’émission d’emprunts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17469, 'PCN2020-LUXEMBURG', 'EXPENSE', '6318', 0, 'DCV sur autres frais assimilés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17470, 'PCN2020-LUXEMBURG', 'EXPENSE', '6321', 0, 'DCV sur frais de développement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17471, 'PCN2020-LUXEMBURG', 'EXPENSE', '6322', 0, 'DCV/conc.,brev.,lic.,marq.,drt&vals sim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17472, 'PCN2020-LUXEMBURG', 'EXPENSE', '6323', 0, 'DCV/fonds de comm. si acq. à titre onér.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17473, 'PCN2020-LUXEMBURG', 'EXPENSE', '6324', 0, 'DCV/acomp. versés&immo, incorp. en cours', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17474, 'PCN2020-LUXEMBURG', 'EXPENSE', '63311', 0, 'DCV sur terrains', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17475, 'PCN2020-LUXEMBURG', 'EXPENSE', '63312', 0, 'DCV/agencements et aménag. de terrains', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17476, 'PCN2020-LUXEMBURG', 'EXPENSE', '63313', 0, 'DCV sur constructions / bâtiments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17477, 'PCN2020-LUXEMBURG', 'EXPENSE', '63314', 0, 'DCV sur agencem.&aménag. constr./bâtim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17478, 'PCN2020-LUXEMBURG', 'EXPENSE', '63315', 0, 'AJV sur immeubles de placement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17479, 'PCN2020-LUXEMBURG', 'EXPENSE', '6332', 0, 'DCV sur install. techniques et machines', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17480, 'PCN2020-LUXEMBURG', 'EXPENSE', '6333', 0, 'DCV/aut. Install.,outill.,mob.,mat.roul.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17481, 'PCN2020-LUXEMBURG', 'EXPENSE', '6334', 0, 'DCV/acom. versés et immo. copr. en cours', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17482, 'PCN2020-LUXEMBURG', 'EXPENSE', '6341', 0, 'DCV sur stocks de mat. prem. et consomm.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17483, 'PCN2020-LUXEMBURG', 'EXPENSE', '6342', 0, 'DCV/stks prod. en c. fab. et comm. en c.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17484, 'PCN2020-LUXEMBURG', 'EXPENSE', '6343', 0, 'DCV sur stocks de produits', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17485, 'PCN2020-LUXEMBURG', 'EXPENSE', '6344', 0, 'DCV/stks de march.&aut.biens dest. vente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17486, 'PCN2020-LUXEMBURG', 'EXPENSE', '6345', 0, 'DCV sur acomptes versés sur stocks', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17487, 'PCN2020-LUXEMBURG', 'EXPENSE', '6351', 0, 'DCV/créan. résult. de ventes&prest serv.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17488, 'PCN2020-LUXEMBURG', 'EXPENSE', '6352', 0, 'DCV/créan./entrep. liées&liens de part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17489, 'PCN2020-LUXEMBURG', 'EXPENSE', '6353', 0, 'DCV sur autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17490, 'PCN2020-LUXEMBURG', 'EXPENSE', '6354', 0, 'AJV sur créances de l’actif circulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17491, 'PCN2020-LUXEMBURG', 'EXPENSE', '6411', 0, 'Concessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17492, 'PCN2020-LUXEMBURG', 'EXPENSE', '6412', 0, 'Brevets', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17493, 'PCN2020-LUXEMBURG', 'EXPENSE', '6413', 0, 'Licences informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17494, 'PCN2020-LUXEMBURG', 'EXPENSE', '6414', 0, 'Marques et franchises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17495, 'PCN2020-LUXEMBURG', 'EXPENSE', '64151', 0, 'Droits d’auteur et de reproduction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17496, 'PCN2020-LUXEMBURG', 'EXPENSE', '64158', 0, 'Autres droits et valeurs similaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17497, 'PCN2020-LUXEMBURG', 'EXPENSE', '642', 0, 'Indemnités, dommages et intérêts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17498, 'PCN2020-LUXEMBURG', 'EXPENSE', '6431', 0, 'Jetons de présence', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17499, 'PCN2020-LUXEMBURG', 'EXPENSE', '6432', 0, 'Tantièmes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17500, 'PCN2020-LUXEMBURG', 'EXPENSE', '6438', 0, 'Autres rémunérations assimilées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17501, 'PCN2020-LUXEMBURG', 'EXPENSE', '64411', 0, 'Valeur comptable d’immo. incorp. cédées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17502, 'PCN2020-LUXEMBURG', 'EXPENSE', '64412', 0, 'Produits de cession d’immo. incorp.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17503, 'PCN2020-LUXEMBURG', 'EXPENSE', '64421', 0, 'Valeur comptable d’immo. corp. cédées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17504, 'PCN2020-LUXEMBURG', 'EXPENSE', '64422', 0, 'Produits de cession d’immo. corp.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17505, 'PCN2020-LUXEMBURG', 'EXPENSE', '6451', 0, 'Créan. résult. de ventes et prest. serv.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17506, 'PCN2020-LUXEMBURG', 'EXPENSE', '6452', 0, 'Créances sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17507, 'PCN2020-LUXEMBURG', 'EXPENSE', '6453', 0, 'Créances sur des entrep. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17508, 'PCN2020-LUXEMBURG', 'EXPENSE', '6454', 0, 'Autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17509, 'PCN2020-LUXEMBURG', 'EXPENSE', '6461', 0, 'Impôt foncier', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17510, 'PCN2020-LUXEMBURG', 'EXPENSE', '6462', 0, 'TVA non récupérable', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17511, 'PCN2020-LUXEMBURG', 'EXPENSE', '6463', 0, 'Drts / les march. en prov. de l’étranger', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17512, 'PCN2020-LUXEMBURG', 'EXPENSE', '6464', 0, 'Drts accises à la prod. & taxe de conso.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17513, 'PCN2020-LUXEMBURG', 'EXPENSE', '64651', 0, 'Droits d’enregistrement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17514, 'PCN2020-LUXEMBURG', 'EXPENSE', '64658', 0, 'Autr.Drts d’enreg.&timbre,drts d’hypoth.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17515, 'PCN2020-LUXEMBURG', 'EXPENSE', '6466', 0, 'Taxes sur les véhicules', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17516, 'PCN2020-LUXEMBURG', 'EXPENSE', '6467', 0, 'Taxe de cabaretage', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17517, 'PCN2020-LUXEMBURG', 'EXPENSE', '6468', 0, 'Autres droits et taxes', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17518, 'PCN2020-LUXEMBURG', 'EXPENSE', '647', 0, 'Dotations aux plus-values immunisées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17519, 'PCN2020-LUXEMBURG', 'EXPENSE', '6481', 0, 'Amendes, sanctions et pénalités', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17520, 'PCN2020-LUXEMBURG', 'EXPENSE', '6488', 0, 'Charges d’exploitation diverses', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17521, 'PCN2020-LUXEMBURG', 'EXPENSE', '6491', 0, 'Dotations aux provisions pour impôts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17522, 'PCN2020-LUXEMBURG', 'EXPENSE', '6492', 0, 'Dotations aux provisions d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17523, 'PCN2020-LUXEMBURG', 'EXPENSE', '65111', 0, 'DCV sur parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17524, 'PCN2020-LUXEMBURG', 'EXPENSE', '65112', 0, 'DCV sur créan. sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17525, 'PCN2020-LUXEMBURG', 'EXPENSE', '65113', 0, 'DCV sur participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17526, 'PCN2020-LUXEMBURG', 'EXPENSE', '65114', 0, 'DCV / créan. / des entr. lien particip.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17527, 'PCN2020-LUXEMBURG', 'EXPENSE', '65115', 0, 'DCV sur titres ayant le caract. d’immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17528, 'PCN2020-LUXEMBURG', 'EXPENSE', '65116', 0, 'DCV sur prêts, dépôts et créances immob.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17529, 'PCN2020-LUXEMBURG', 'EXPENSE', '6512', 0, 'AJV sur immobilisations financières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17530, 'PCN2020-LUXEMBURG', 'EXPENSE', '65211', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17531, 'PCN2020-LUXEMBURG', 'EXPENSE', '65212', 0, 'Créances sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17532, 'PCN2020-LUXEMBURG', 'EXPENSE', '65213', 0, 'Participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17533, 'PCN2020-LUXEMBURG', 'EXPENSE', '65214', 0, 'Créances sur des entrep. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17534, 'PCN2020-LUXEMBURG', 'EXPENSE', '65215', 0, 'Titres ayant le caractère d’immob.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17535, 'PCN2020-LUXEMBURG', 'EXPENSE', '65216', 0, 'Prêts, dépôts et créances immobilisés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17536, 'PCN2020-LUXEMBURG', 'EXPENSE', '652211', 0, 'Val. compt. parts cédées dans entr.liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17537, 'PCN2020-LUXEMBURG', 'EXPENSE', '652212', 0, 'Produits cession parts dans entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17538, 'PCN2020-LUXEMBURG', 'EXPENSE', '652221', 0, 'Val. compt. créances cédées/entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17539, 'PCN2020-LUXEMBURG', 'EXPENSE', '652222', 0, 'Prod. de cession de créan./entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17540, 'PCN2020-LUXEMBURG', 'EXPENSE', '652231', 0, 'Valeur comptable de participation cédée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17541, 'PCN2020-LUXEMBURG', 'EXPENSE', '652232', 0, 'Produits de cession de participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17542, 'PCN2020-LUXEMBURG', 'EXPENSE', '652241', 0, 'Val.compt. créan. cédées/entr.lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17543, 'PCN2020-LUXEMBURG', 'EXPENSE', '652242', 0, 'Prod. cess. créan. / entr. lien. part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17544, 'PCN2020-LUXEMBURG', 'EXPENSE', '652251', 0, 'Val.compt. titr. cédés ayant carac.immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17545, 'PCN2020-LUXEMBURG', 'EXPENSE', '652252', 0, 'Prod. de cess. titr. ayant carac. immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17546, 'PCN2020-LUXEMBURG', 'EXPENSE', '652261', 0, 'Val.compt. prêts,dép.,créan. immo. cédés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17547, 'PCN2020-LUXEMBURG', 'EXPENSE', '652262', 0, 'Prod. de cess. prêts,dép.,créan. immob.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17548, 'PCN2020-LUXEMBURG', 'EXPENSE', '65311', 0, 'DCV sur parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17549, 'PCN2020-LUXEMBURG', 'EXPENSE', '65312', 0, 'DCV sur actions propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17550, 'PCN2020-LUXEMBURG', 'EXPENSE', '65313', 0, 'DCV sur parts dans des entr. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17551, 'PCN2020-LUXEMBURG', 'EXPENSE', '65318', 0, 'DCV sur autres valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17552, 'PCN2020-LUXEMBURG', 'EXPENSE', '6532', 0, 'AJV sur valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17553, 'PCN2020-LUXEMBURG', 'EXPENSE', '65411', 0, 'sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17554, 'PCN2020-LUXEMBURG', 'EXPENSE', '65412', 0, 'sur des entrepr. lien participation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17555, 'PCN2020-LUXEMBURG', 'EXPENSE', '65413', 0, 'sur autres créances de l’actif circulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17556, 'PCN2020-LUXEMBURG', 'EXPENSE', '65421', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17557, 'PCN2020-LUXEMBURG', 'EXPENSE', '65422', 0, 'Actions propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17558, 'PCN2020-LUXEMBURG', 'EXPENSE', '65423', 0, 'Parts dans des entrepr. lien particip.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17559, 'PCN2020-LUXEMBURG', 'EXPENSE', '65428', 0, 'Autres valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17560, 'PCN2020-LUXEMBURG', 'EXPENSE', '65511', 0, 'Int. sur emprunts obligat. - entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17561, 'PCN2020-LUXEMBURG', 'EXPENSE', '65512', 0, 'Intérêts sur emprunts obligat. - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17562, 'PCN2020-LUXEMBURG', 'EXPENSE', '65521', 0, 'Intérêts sur comptes bancaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17563, 'PCN2020-LUXEMBURG', 'EXPENSE', '65522', 0, 'Intérêts bancaires sur opérat. de finan.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17564, 'PCN2020-LUXEMBURG', 'EXPENSE', '655231', 0, 'Int. sur leasings finan. - entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17565, 'PCN2020-LUXEMBURG', 'EXPENSE', '655232', 0, 'Intérêts sur leasing financier - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17566, 'PCN2020-LUXEMBURG', 'EXPENSE', '6553', 0, 'Intérêts sur dettes commerciales', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17567, 'PCN2020-LUXEMBURG', 'EXPENSE', '65541', 0, 'Intérêts sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17568, 'PCN2020-LUXEMBURG', 'EXPENSE', '65542', 0, 'Intérêts sur des entrepr. lien particip.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17569, 'PCN2020-LUXEMBURG', 'EXPENSE', '65551', 0, 'Escomp. et fr./eff. de comm.-entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17570, 'PCN2020-LUXEMBURG', 'EXPENSE', '65552', 0, 'Escomp. et fr./effets de comm. - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17571, 'PCN2020-LUXEMBURG', 'EXPENSE', '65561', 0, 'Escomptes accordés - entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17572, 'PCN2020-LUXEMBURG', 'EXPENSE', '65562', 0, 'Escomptes accordés - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17573, 'PCN2020-LUXEMBURG', 'EXPENSE', '65581', 0, 'Int./autres emprunts&dettes-entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17574, 'PCN2020-LUXEMBURG', 'EXPENSE', '65582', 0, 'Int./autres emprunts&dettes - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17575, 'PCN2020-LUXEMBURG', 'EXPENSE', '6561', 0, 'Pertes de change - entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17576, 'PCN2020-LUXEMBURG', 'EXPENSE', '6562', 0, 'Pertes de change - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17577, 'PCN2020-LUXEMBURG', 'EXPENSE', '657', 0, 'Quote-p. dans perte entr. mises équival.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17578, 'PCN2020-LUXEMBURG', 'EXPENSE', '6581', 0, 'Aut. charges financières - entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17579, 'PCN2020-LUXEMBURG', 'EXPENSE', '6582', 0, 'Autres charges financières - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17580, 'PCN2020-LUXEMBURG', 'EXPENSE', '6591', 0, 'Dot. aux provisions fin. - entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17581, 'PCN2020-LUXEMBURG', 'EXPENSE', '6592', 0, 'Dot. aux provisions fin. - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17582, 'PCN2020-LUXEMBURG', 'EXPENSE', '6711', 0, 'IRC - exercice courant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17583, 'PCN2020-LUXEMBURG', 'EXPENSE', '6712', 0, 'IRC - exercices antérieurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17584, 'PCN2020-LUXEMBURG', 'EXPENSE', '6721', 0, 'ICC - exercice courant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17585, 'PCN2020-LUXEMBURG', 'EXPENSE', '6722', 0, 'ICC - exercices antérieurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17586, 'PCN2020-LUXEMBURG', 'EXPENSE', '6731', 0, 'Retenues d’impôt à la source', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17587, 'PCN2020-LUXEMBURG', 'EXPENSE', '67321', 0, 'Exercice courant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17588, 'PCN2020-LUXEMBURG', 'EXPENSE', '67322', 0, 'Exercices antérieurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17589, 'PCN2020-LUXEMBURG', 'EXPENSE', '6733', 0, 'Impôts supportés par entrep. non résid.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17590, 'PCN2020-LUXEMBURG', 'EXPENSE', '6738', 0, 'Autres impôts étrangers sur le résultat', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17591, 'PCN2020-LUXEMBURG', 'EXPENSE', '679', 0, 'Dot. aux provisions pour impôts différés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17592, 'PCN2020-LUXEMBURG', 'EXPENSE', '6811', 0, 'IF - exercice courant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17593, 'PCN2020-LUXEMBURG', 'EXPENSE', '6812', 0, 'IF - exercices antérieurs', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17594, 'PCN2020-LUXEMBURG', 'EXPENSE', '682', 0, 'Taxe d’abonnement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17595, 'PCN2020-LUXEMBURG', 'EXPENSE', '683', 0, 'Impôts étrangers', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17596, 'PCN2020-LUXEMBURG', 'EXPENSE', '688', 0, 'Autres impôts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17597, 'PCN2020-LUXEMBURG', 'INCOME', '7021', 0, 'Ventes de produits finis', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17598, 'PCN2020-LUXEMBURG', 'INCOME', '7022', 0, 'Ventes de produits intermédiaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17599, 'PCN2020-LUXEMBURG', 'INCOME', '7023', 0, 'Ventes de produits résiduels', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17600, 'PCN2020-LUXEMBURG', 'INCOME', '7029', 0, 'Ventes de produits en cours de fabric.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17601, 'PCN2020-LUXEMBURG', 'INCOME', '70311', 0, 'Concessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17602, 'PCN2020-LUXEMBURG', 'INCOME', '70312', 0, 'Brevets', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17603, 'PCN2020-LUXEMBURG', 'INCOME', '70313', 0, 'Licences informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17604, 'PCN2020-LUXEMBURG', 'INCOME', '70314', 0, 'Marques et franchises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17605, 'PCN2020-LUXEMBURG', 'INCOME', '703151', 0, 'Droits d’auteur et de reproduction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17606, 'PCN2020-LUXEMBURG', 'INCOME', '703158', 0, 'Autres droits et valeurs similaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17607, 'PCN2020-LUXEMBURG', 'INCOME', '70321', 0, 'Revenus de location immobilière', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17608, 'PCN2020-LUXEMBURG', 'INCOME', '70322', 0, 'Revenus de location mobilière', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17609, 'PCN2020-LUXEMBURG', 'INCOME', '7033', 0, 'Prest. de serv. non visées ci-dessus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17610, 'PCN2020-LUXEMBURG', 'INCOME', '7039', 0, 'Prestations de serv. en cours de réalis.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17611, 'PCN2020-LUXEMBURG', 'INCOME', '704', 0, 'Ventes d’emballages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17612, 'PCN2020-LUXEMBURG', 'INCOME', '705', 0, 'Commissions et courtages obtenus', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17613, 'PCN2020-LUXEMBURG', 'INCOME', '7061', 0, 'Ventes de marchandises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17614, 'PCN2020-LUXEMBURG', 'INCOME', '7062', 0, 'Ventes de terrains destinés à la revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17615, 'PCN2020-LUXEMBURG', 'INCOME', '7063', 0, 'Ventes d’immeubles destinés à la revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17616, 'PCN2020-LUXEMBURG', 'INCOME', '708', 0, 'Autres éléments du chiffre d’affaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17617, 'PCN2020-LUXEMBURG', 'INCOME', '7092', 0, 'RRR sur ventes de produits', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17618, 'PCN2020-LUXEMBURG', 'INCOME', '7093', 0, 'RRR sur prestations de services', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17619, 'PCN2020-LUXEMBURG', 'INCOME', '7094', 0, 'RRR sur ventes d’emballages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17620, 'PCN2020-LUXEMBURG', 'INCOME', '7095', 0, 'RRR sur commissions et courtages', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17621, 'PCN2020-LUXEMBURG', 'INCOME', '7096', 0, 'RRR sur vent.march.&aut.biens dest. rev.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17622, 'PCN2020-LUXEMBURG', 'INCOME', '7098', 0, 'RRR sur autres éléments du ch. d’affaire', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17623, 'PCN2020-LUXEMBURG', 'INCOME', '7099', 0, 'RRR non affectés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17624, 'PCN2020-LUXEMBURG', 'INCOME', '7111', 0, 'Var. stks prod. en cours de fabric.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17625, 'PCN2020-LUXEMBURG', 'INCOME', '7112', 0, 'Var. stks : comm. en cours - produits', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17626, 'PCN2020-LUXEMBURG', 'INCOME', '7113', 0, 'Var. stks : comm. en cours - pres. serv.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17627, 'PCN2020-LUXEMBURG', 'INCOME', '7114', 0, 'Variation des stks : immeub. en constru.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17628, 'PCN2020-LUXEMBURG', 'INCOME', '7121', 0, 'Variation des stocks de produits finis', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17629, 'PCN2020-LUXEMBURG', 'INCOME', '7122', 0, 'Variation des stks prod. intermédiaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17630, 'PCN2020-LUXEMBURG', 'INCOME', '7123', 0, 'Variation des stocks de produits résidu.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17631, 'PCN2020-LUXEMBURG', 'INCOME', '7211', 0, 'Frais de développement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17632, 'PCN2020-LUXEMBURG', 'INCOME', '72121', 0, 'Concessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17633, 'PCN2020-LUXEMBURG', 'INCOME', '72122', 0, 'Brevets', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17634, 'PCN2020-LUXEMBURG', 'INCOME', '72123', 0, 'Licences informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17635, 'PCN2020-LUXEMBURG', 'INCOME', '72124', 0, 'Marques et franchises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17636, 'PCN2020-LUXEMBURG', 'INCOME', '721251', 0, 'Droits d’auteur et de reproduction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17637, 'PCN2020-LUXEMBURG', 'INCOME', '721258', 0, 'Autres droits et valeurs similaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17638, 'PCN2020-LUXEMBURG', 'INCOME', '7221', 0, 'Terrains, aménagements et constructions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17639, 'PCN2020-LUXEMBURG', 'INCOME', '7222', 0, 'Installations techniques et machines', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17640, 'PCN2020-LUXEMBURG', 'INCOME', '7223', 0, 'Aut. install., outill., mob, mat. roul.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17641, 'PCN2020-LUXEMBURG', 'INCOME', '7321', 0, 'RCV sur frais de développement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17642, 'PCN2020-LUXEMBURG', 'INCOME', '7322', 0, 'RV/conc.,brev.,licen.,marq.,drt&val.sim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17643, 'PCN2020-LUXEMBURG', 'INCOME', '7324', 0, 'RV/acomp. versés&immob. incorp. en cours', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17644, 'PCN2020-LUXEMBURG', 'INCOME', '73311', 0, 'RV sur terrains', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17645, 'PCN2020-LUXEMBURG', 'INCOME', '73312', 0, 'RV sur agencements, aménag. de terrains', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17646, 'PCN2020-LUXEMBURG', 'INCOME', '73313', 0, 'RCV sur constructions / bâtiments', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17647, 'PCN2020-LUXEMBURG', 'INCOME', '73314', 0, 'RV sur agenc., aménag de constr., bâtim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17648, 'PCN2020-LUXEMBURG', 'INCOME', '73315', 0, 'AJV sur immeubles de placement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17649, 'PCN2020-LUXEMBURG', 'INCOME', '7332', 0, 'RV sur installations techni. et machin.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17650, 'PCN2020-LUXEMBURG', 'INCOME', '7333', 0, 'RV/aut. instal.,outill.,mobil.,mat.roul.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17651, 'PCN2020-LUXEMBURG', 'INCOME', '7334', 0, 'RV/acompt. versés et immo.copr. en cours', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17652, 'PCN2020-LUXEMBURG', 'INCOME', '7341', 0, 'RV sur stocks de mat. prem. et consomm.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17653, 'PCN2020-LUXEMBURG', 'INCOME', '7342', 0, 'RV/stks prod.en cours fab.&comm.en cours', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17654, 'PCN2020-LUXEMBURG', 'INCOME', '7343', 0, 'RCV sur stocks de produits', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17655, 'PCN2020-LUXEMBURG', 'INCOME', '7344', 0, 'RV/stks march.&aut. biens dest.à revente', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17656, 'PCN2020-LUXEMBURG', 'INCOME', '7345', 0, 'RCV sur acomptes versés sur stocks', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17657, 'PCN2020-LUXEMBURG', 'INCOME', '7351', 0, 'RV/créan. résult. de ventes&prest. serv.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17658, 'PCN2020-LUXEMBURG', 'INCOME', '7352', 0, 'RV/créan./entr. liées & entr. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17659, 'PCN2020-LUXEMBURG', 'INCOME', '7353', 0, 'RCV sur autres créances', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17660, 'PCN2020-LUXEMBURG', 'INCOME', '7354', 0, 'AV sur créances de l’actif circulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17661, 'PCN2020-LUXEMBURG', 'INCOME', '7411', 0, 'Concessions', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17662, 'PCN2020-LUXEMBURG', 'INCOME', '7412', 0, 'Brevets', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17663, 'PCN2020-LUXEMBURG', 'INCOME', '7413', 0, 'Licences informatiques', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17664, 'PCN2020-LUXEMBURG', 'INCOME', '7414', 0, 'Marques et franchises', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17665, 'PCN2020-LUXEMBURG', 'INCOME', '74151', 0, 'Droits d’auteur et de reproduction', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17666, 'PCN2020-LUXEMBURG', 'INCOME', '74158', 0, 'Autres droits et valeurs similaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17667, 'PCN2020-LUXEMBURG', 'INCOME', '7421', 0, 'Revenus de location immobilière', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17668, 'PCN2020-LUXEMBURG', 'INCOME', '7422', 0, 'Revenus de location mobilière', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17669, 'PCN2020-LUXEMBURG', 'INCOME', '743', 0, 'Jetons de prés., tantièm., rémun. assim.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17670, 'PCN2020-LUXEMBURG', 'INCOME', '74411', 0, 'Valeur comptable d’immo. incorp. cédées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17671, 'PCN2020-LUXEMBURG', 'INCOME', '74412', 0, 'Produits de cession d’immo. incopr.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17672, 'PCN2020-LUXEMBURG', 'INCOME', '74421', 0, 'Valeur comptable d’immo. corp. cédées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17673, 'PCN2020-LUXEMBURG', 'INCOME', '74422', 0, 'Produits de cession d’immo. corp.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17674, 'PCN2020-LUXEMBURG', 'INCOME', '7451', 0, 'Subventions sur produits', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17675, 'PCN2020-LUXEMBURG', 'INCOME', '7452', 0, 'Bonifications d’intérêt', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17676, 'PCN2020-LUXEMBURG', 'INCOME', '7453', 0, 'Indemnités compensatoires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17677, 'PCN2020-LUXEMBURG', 'INCOME', '7454', 0, 'Subventions destinées à promouv. emploi', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17678, 'PCN2020-LUXEMBURG', 'INCOME', '7458', 0, 'Autres subventions d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17679, 'PCN2020-LUXEMBURG', 'INCOME', '746', 0, 'Avantages en nature', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17680, 'PCN2020-LUXEMBURG', 'INCOME', '7471', 0, 'Plus-values immunisées non réinvesties', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17681, 'PCN2020-LUXEMBURG', 'INCOME', '7472', 0, 'Plus-values immunisées réinvesties', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17682, 'PCN2020-LUXEMBURG', 'INCOME', '7473', 0, 'Subventions d’investissement en capital', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17683, 'PCN2020-LUXEMBURG', 'INCOME', '7481', 0, 'Indemnités d’assurance', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17684, 'PCN2020-LUXEMBURG', 'INCOME', '7488', 0, 'Produits d’exploitation divers', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17685, 'PCN2020-LUXEMBURG', 'INCOME', '748801', 0, 'Remboursement mutualité', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17686, 'PCN2020-LUXEMBURG', 'INCOME', '7491', 0, 'Reprises de provisions pour impôts', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17687, 'PCN2020-LUXEMBURG', 'INCOME', '7492', 0, 'Reprises de provisions d’exploitation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17688, 'PCN2020-LUXEMBURG', 'INCOME', '75111', 0, 'RV sur parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17689, 'PCN2020-LUXEMBURG', 'INCOME', '75112', 0, 'RV sur créances / des entreprises liés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17690, 'PCN2020-LUXEMBURG', 'INCOME', '75113', 0, 'RV sur participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17691, 'PCN2020-LUXEMBURG', 'INCOME', '75114', 0, 'RV sur créances sur entr. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17692, 'PCN2020-LUXEMBURG', 'INCOME', '75115', 0, 'RV sur titres ayant le caractère d’immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17693, 'PCN2020-LUXEMBURG', 'INCOME', '75116', 0, 'RV sur prêts, dépôts et créances immob.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17694, 'PCN2020-LUXEMBURG', 'INCOME', '7512', 0, 'AJV sur immobilisations financières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17695, 'PCN2020-LUXEMBURG', 'INCOME', '75211', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17696, 'PCN2020-LUXEMBURG', 'INCOME', '75212', 0, 'Créances sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17697, 'PCN2020-LUXEMBURG', 'INCOME', '75213', 0, 'Participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17698, 'PCN2020-LUXEMBURG', 'INCOME', '75214', 0, 'Créances sur des entrep. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17699, 'PCN2020-LUXEMBURG', 'INCOME', '75215', 0, 'Titres ayant le caractère d’immob.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17700, 'PCN2020-LUXEMBURG', 'INCOME', '75216', 0, 'Prêts, dépôts et créances immobilisés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17701, 'PCN2020-LUXEMBURG', 'INCOME', '752211', 0, 'Val. compt. parts cédées dans entr.liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17702, 'PCN2020-LUXEMBURG', 'INCOME', '752212', 0, 'Prod. de cession parts dans entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17703, 'PCN2020-LUXEMBURG', 'INCOME', '752221', 0, 'Val. compt. de créan. cédées/entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17704, 'PCN2020-LUXEMBURG', 'INCOME', '752222', 0, 'Prod. de cession créan./des entr. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17705, 'PCN2020-LUXEMBURG', 'INCOME', '752231', 0, 'Valeur comptable de participation cédée', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17706, 'PCN2020-LUXEMBURG', 'INCOME', '752232', 0, 'Produits de cession de participations', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17707, 'PCN2020-LUXEMBURG', 'INCOME', '752241', 0, 'Val.compt. créan. cédées/entr.lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17708, 'PCN2020-LUXEMBURG', 'INCOME', '752242', 0, 'Produits cess. de créan./entr.lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17709, 'PCN2020-LUXEMBURG', 'INCOME', '752251', 0, 'Val.compt.titre cédé ayant caract.immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17710, 'PCN2020-LUXEMBURG', 'INCOME', '752252', 0, 'Prod. cess. titres ayant caract. d’immo.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17711, 'PCN2020-LUXEMBURG', 'INCOME', '752261', 0, 'Val.comp. prêts,dépôt,créan.immo. cédés', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17712, 'PCN2020-LUXEMBURG', 'INCOME', '752262', 0, 'Prod. cess. prêts, dépôts, créan. immob.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17713, 'PCN2020-LUXEMBURG', 'INCOME', '75311', 0, 'RV sur parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17714, 'PCN2020-LUXEMBURG', 'INCOME', '75312', 0, 'RV sur actions propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17715, 'PCN2020-LUXEMBURG', 'INCOME', '75313', 0, 'RV sur parts dans des entr. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17716, 'PCN2020-LUXEMBURG', 'INCOME', '75318', 0, 'RV sur autres valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17717, 'PCN2020-LUXEMBURG', 'INCOME', '7532', 0, 'AJV sur valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17718, 'PCN2020-LUXEMBURG', 'INCOME', '75411', 0, 'sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17719, 'PCN2020-LUXEMBURG', 'INCOME', '75412', 0, 'sur des entreprises lien participation', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17720, 'PCN2020-LUXEMBURG', 'INCOME', '75413', 0, 'sur autres créances de l’actif circulant', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17721, 'PCN2020-LUXEMBURG', 'INCOME', '75421', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17722, 'PCN2020-LUXEMBURG', 'INCOME', '75422', 0, 'Actions propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17723, 'PCN2020-LUXEMBURG', 'INCOME', '75423', 0, 'Parts dans des entreprises lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17724, 'PCN2020-LUXEMBURG', 'INCOME', '75428', 0, 'Autres valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17725, 'PCN2020-LUXEMBURG', 'INCOME', '75481', 0, 'Parts dans des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17726, 'PCN2020-LUXEMBURG', 'INCOME', '75482', 0, 'Actions propres ou parts propres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17727, 'PCN2020-LUXEMBURG', 'INCOME', '75483', 0, 'Parts dans des entreprises lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17728, 'PCN2020-LUXEMBURG', 'INCOME', '75488', 0, 'Autres valeurs mobilières', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17729, 'PCN2020-LUXEMBURG', 'INCOME', '75521', 0, 'Intérêts sur comptes bancaires', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17730, 'PCN2020-LUXEMBURG', 'INCOME', '755231', 0, 'Intérêts / leasings fin. - entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17731, 'PCN2020-LUXEMBURG', 'INCOME', '755232', 0, 'Intérêts sur leasings financiers - autre', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17732, 'PCN2020-LUXEMBURG', 'INCOME', '7553', 0, 'Intérêts sur créances commerciales', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17733, 'PCN2020-LUXEMBURG', 'INCOME', '75541', 0, 'Intérêts sur des entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17734, 'PCN2020-LUXEMBURG', 'INCOME', '75542', 0, 'Intérêts sur des entrep. lien part.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17735, 'PCN2020-LUXEMBURG', 'INCOME', '75551', 0, 'Escomptes d’effets de comm.-entrep.liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17736, 'PCN2020-LUXEMBURG', 'INCOME', '75552', 0, 'Escomptes d’effets de commerce - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17737, 'PCN2020-LUXEMBURG', 'INCOME', '75561', 0, 'Escomptes obtenus - entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17738, 'PCN2020-LUXEMBURG', 'INCOME', '75562', 0, 'Escomptes obtenus - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17739, 'PCN2020-LUXEMBURG', 'INCOME', '75581', 0, 'Intérêts sur aut. créances-entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17740, 'PCN2020-LUXEMBURG', 'INCOME', '75582', 0, 'Intérêts sur autres créances - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17741, 'PCN2020-LUXEMBURG', 'INCOME', '7561', 0, 'Gains de change - entreprises liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17742, 'PCN2020-LUXEMBURG', 'INCOME', '7562', 0, 'Gains de change - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17743, 'PCN2020-LUXEMBURG', 'INCOME', '757', 0, 'Quote-p. bénéf. dans entr.mise en equiv.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17744, 'PCN2020-LUXEMBURG', 'INCOME', '7581', 0, 'Autres produits financiers-entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17745, 'PCN2020-LUXEMBURG', 'INCOME', '7582', 0, 'Autres produits financiers - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17746, 'PCN2020-LUXEMBURG', 'INCOME', '7591', 0, 'Reprises de prov. finan. - entrep. liées', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17747, 'PCN2020-LUXEMBURG', 'INCOME', '7592', 0, 'Reprises de provisions finan. - autres', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17748, 'PCN2020-LUXEMBURG', 'INCOME', '771', 0, 'Régularisations d’impôt IRC', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17749, 'PCN2020-LUXEMBURG', 'INCOME', '772', 0, 'Régularisations d’impôt ICC', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17750, 'PCN2020-LUXEMBURG', 'INCOME', '773', 0, 'Régul. d’impôts étrangers / le résultat', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17751, 'PCN2020-LUXEMBURG', 'INCOME', '779', 0, 'Reprises de provisions pour impôts diff.', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17752, 'PCN2020-LUXEMBURG', 'INCOME', '781', 0, 'Régularisations d’impôt IF', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17753, 'PCN2020-LUXEMBURG', 'INCOME', '782', 0, 'Régularisations de taxe d’abonnement', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17754, 'PCN2020-LUXEMBURG', 'INCOME', '783', 0, 'Régularisations d’impôts étrangers', '1'); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17755, 'PCN2020-LUXEMBURG', 'INCOME', '788', 0, 'Régularisations d’autres impôts', '1'); + + + diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql index e4936c53ba3..98fa2523a3f 100644 --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql @@ -43,7 +43,9 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED_WEB','Customer proposal closed signed on portal','Executed when a customer proposal is closed signed on portal','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED_WEB','Customer proposal closed refused on portal','Executed when a customer proposal is closed refused on portal','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4); @@ -119,13 +121,12 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',205); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',211); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_MODIFY','Expense report modified','Executed when an expense report is modified','expensereport',212); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',212); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CREATE','Project creation','Executed when a project is created','project',140); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_MODIFY','Project modified','Executed when a project is modified','project',142); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',143); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_SENTBYMAIL','Project sent by mail','Executed when a project is sent by email','project',144); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CLOSE','Project closed','Executed when a project is closed','project',145); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is modified','ticket',164); @@ -171,7 +172,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_CREATE','Holiday created','Executed when a holiday is created','holiday',800); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_MODIFY','Holiday modified','Executed when a holiday is modified','holiday',801); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Holiday validated','Executed when a holiday is validated','holiday',802); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Holiday aprouved','Executed when a holiday is aprouved','holiday',803); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Holiday approved','Executed when a holiday is aprouved','holiday',803); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804); diff --git a/htdocs/install/mysql/data/llx_c_actioncomm.sql b/htdocs/install/mysql/data/llx_c_actioncomm.sql index 38f09ba23d0..c244bcae2bd 100644 --- a/htdocs/install/mysql/data/llx_c_actioncomm.sql +++ b/htdocs/install/mysql/data/llx_c_actioncomm.sql @@ -21,7 +21,6 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- --- -- -- Do not put a comment at the end of the line, this file is parsed during the @@ -37,14 +36,6 @@ delete from llx_c_actioncomm where id in (1,2,3,4,5,6,8,9,10,11,30,31,40,50); --- Code used from 3.3+ when type of event is used -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 1, 'AC_TEL', 'Phone call', 'system', NULL, 1, 2); -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 2, 'AC_FAX', 'Send Fax', 'system', NULL, 1, 3); -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 4, 'AC_EMAIL', 'Send Email', 'system', NULL, 1, 4); -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 5, 'AC_RDV', 'Rendez-vous', 'system', NULL, 1, 1); -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 6, 'AC_EMAIL_IN', 'reception Email', 'system', NULL, 1, 4); -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 11, 'AC_INT', 'Intervention on site', 'system', NULL, 1, 4); - -- Code kept for backward compatibility < 3.3 --insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 3, 'AC_PROP', 'Send commercial proposal by email', 'systemauto', 'propal', 0, 10); --insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 8, 'AC_COM', 'Send customer order by email', 'systemauto', 'order', 0, 8); @@ -53,10 +44,18 @@ insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) --insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 30, 'AC_SUP_ORD', 'Send supplier order by email', 'systemauto', 'order_supplier', 0, 9); --insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 31, 'AC_SUP_INV', 'Send supplier invoice by email', 'systemauto', 'invoice_supplier', 0, 7); +-- Code used from 3.3+ when type of event is used +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 1, 'AC_TEL', 'Phone call', 'system', NULL, 1, 2); +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 2, 'AC_FAX', 'Send Fax', 'system', NULL, 0, 3); +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 4, 'AC_EMAIL', 'Send Email', 'system', NULL, 0, 4); +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 5, 'AC_RDV', 'Rendez-vous', 'system', NULL, 1, 1); +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 6, 'AC_EMAIL_IN', 'Reception Email', 'system', NULL, 0, 4); +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 11, 'AC_INT', 'Intervention on site', 'system', NULL, 1, 4); + -- Code used from 3.3+ when type of event is not used insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 40, 'AC_OTH_AUTO', 'Other (automatically inserted events)', 'systemauto', NULL, 1, 20); -insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 50, 'AC_OTH', 'Other (manually inserted events)', 'systemauto', NULL, 1, 5); +insert into llx_c_actioncomm (id, code, libelle, type, module, active, position) values ( 50, 'AC_OTH', 'Other (manually inserted events)', 'system', NULL, 1, 5); INSERT INTO llx_c_actioncomm (id, code, libelle, type, module, active, position) VALUES ( 60, 'AC_EO_ONLINECONF', 'Online/Virtual conference', 'module', 'conference@eventorganization', 1, 60); INSERT INTO llx_c_actioncomm (id, code, libelle, type, module, active, position) VALUES ( 61, 'AC_EO_INDOORCONF', 'Indoor conference', 'module', 'conference@eventorganization', 1, 61); diff --git a/htdocs/install/mysql/data/llx_c_asset_disposal_type-asset.sql b/htdocs/install/mysql/data/llx_c_asset_disposal_type-asset.sql new file mode 100644 index 00000000000..4951b9df198 --- /dev/null +++ b/htdocs/install/mysql/data/llx_c_asset_disposal_type-asset.sql @@ -0,0 +1,24 @@ +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- + +-- +-- Do not include comments at end of line, this file is parsed during install and string '--' are removed. +-- + +INSERT INTO llx_c_asset_disposal_type (rowid, entity, code, label, active) VALUES (1, 1, 'C', 'Sale', 1); +INSERT INTO llx_c_asset_disposal_type (rowid, entity, code, label, active) VALUES (2, 1, 'HS', 'Putting out of service', 1); +INSERT INTO llx_c_asset_disposal_type (rowid, entity, code, label, active) VALUES (3, 1, 'D', 'Destruction', 1); diff --git a/htdocs/install/mysql/data/llx_c_currencies.sql b/htdocs/install/mysql/data/llx_c_currencies.sql index bc5a01c3992..04d17e98b6a 100644 --- a/htdocs/install/mysql/data/llx_c_currencies.sql +++ b/htdocs/install/mysql/data/llx_c_currencies.sql @@ -116,6 +116,7 @@ INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MRO' INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MUR', '[8360]', 1, 'Mauritius Rupee'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MXN', '[36]', 1, 'Mexico Peso'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MDL', NULL, 1, 'Moldova Leu'); +INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MMK', '[75]', 1, 'Myanmar Kyat'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MNT', '[8366]', 1, 'Mongolia Tughrik'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MAD', NULL, 1, 'Morocco Dirham'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MZN', '[77,84]', 1, 'Mozambique Metical'); diff --git a/htdocs/install/mysql/data/llx_c_effectif.sql b/htdocs/install/mysql/data/llx_c_effectif.sql index cb67da5d73c..f3c5b0cd03f 100644 --- a/htdocs/install/mysql/data/llx_c_effectif.sql +++ b/htdocs/install/mysql/data/llx_c_effectif.sql @@ -36,5 +36,5 @@ insert into llx_c_effectif (id,code,libelle) values (1, 'EF1-5', '1 - 5'); insert into llx_c_effectif (id,code,libelle) values (2, 'EF6-10', '6 - 10'); insert into llx_c_effectif (id,code,libelle) values (3, 'EF11-50', '11 - 50'); insert into llx_c_effectif (id,code,libelle) values (4, 'EF51-100', '51 - 100'); -insert into llx_c_effectif (id,code,libelle) values (5, 'EF100-500', '100 - 500'); +insert into llx_c_effectif (id,code,libelle) values (5, 'EF101-500', '101 - 500'); insert into llx_c_effectif (id,code,libelle) values (6, 'EF500-', '> 500'); diff --git a/htdocs/install/mysql/data/llx_c_email_templates.sql b/htdocs/install/mysql/data/llx_c_email_templates.sql index bce46a70e49..d2886631942 100644 --- a/htdocs/install/mysql/data/llx_c_email_templates.sql +++ b/htdocs/install/mysql/data/llx_c_email_templates.sql @@ -21,25 +21,26 @@ -- -- Bank Thirdparty -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'banque','thirdparty','',0,null,null,'(YourSEPAMandate)',1,'$conf->societe->enabled && $conf->banque->enabled && $conf->prelevement->enabled',0,'__(YourSEPAMandate)__','__(Hello)__,

    \n\n__(FindYourSEPAMandate)__ :
    \n__MYCOMPANY_NAME__
    \n__MYCOMPANY_FULLADDRESS__

    \n__(Sincerely)__
    \n__USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'banque','thirdparty','',0,null,null,'(YourSEPAMandate)',1,'isModEnabled("societe") && isModEnabled("banque") && isModEnabled("prelevement")',0,'__(YourSEPAMandate)__','__(Hello)__,

    \n\n__(FindYourSEPAMandate)__ :
    \n__MYCOMPANY_NAME__
    \n__MYCOMPANY_FULLADDRESS__

    \n__(Sincerely)__
    \n__USER_SIGNATURE__',null, 0); -- Members -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnAutoSubscription)' ,10,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)' ,20,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourMembershipWasValidated)__
    __(FirstName)__ : __MEMBER_FIRSTNAME__
    __(LastName)__ : __MEMBER_LASTNAME__
    __(ID)__ : __MEMBER_ID__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnNewSubscription)' ,30,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__
    \n\n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 1); -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingReminderForExpiredSubscription)',40,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfSubscriptionReminderEmail)__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnCancelation)' ,50,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(YourMembershipWasCanceled)__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingAnEMailToMember)' ,60,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__', '__(Hello)__,

    \n\n__(ThisIsContentOfYourCard)__
    \n__(ID)__ : __ID__
    \n__(Civility)__ : __MEMBER_CIVILITY__
    \n__(Firstname)__ : __MEMBER_FIRSTNAME__
    \n__(Lastname)__ : __MEMBER_LASTNAME__
    \n__(Fullname)__ : __MEMBER_FULLNAME__
    \n__(Company)__ : __MEMBER_COMPANY__
    \n__(Address)__ : __MEMBER_ADDRESS__
    \n__(Zip)__ : __MEMBER_ZIP__
    \n__(Town)__ : __MEMBER_TOWN__
    \n__(Country)__ : __MEMBER_COUNTRY__
    \n__(Email)__ : __MEMBER_EMAIL__
    \n__(Birthday)__ : __MEMBER_BIRTH__
    \n__(Photo)__ : __MEMBER_PHOTO__
    \n__(Login)__ : __MEMBER_LOGIN__
    \n__(Phone)__ : __MEMBER_PHONE__
    \n__(PhonePerso)__ : __MEMBER_PHONEPRO__
    \n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnAutoSubscription)' ,10, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)' ,20, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourMembershipWasValidated)__
    __(FirstName)__ : __MEMBER_FIRSTNAME__
    __(LastName)__ : __MEMBER_LASTNAME__
    __(ID)__ : __MEMBER_ID__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnNewSubscription)' ,30, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__
    \n\n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 1); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingReminderForExpiredSubscription)',40, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfSubscriptionReminderEmail)__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnCancelation)' ,50, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(YourMembershipWasCanceled)__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingAnEMailToMember)' ,60, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__', '__(Hello)__,

    \n\n__(ThisIsContentOfYourCard)__
    \n__(ID)__ : __ID__
    \n__(Civility)__ : __MEMBER_CIVILITY__
    \n__(Firstname)__ : __MEMBER_FIRSTNAME__
    \n__(Lastname)__ : __MEMBER_LASTNAME__
    \n__(Fullname)__ : __MEMBER_FULLNAME__
    \n__(Company)__ : __MEMBER_COMPANY__
    \n__(Address)__ : __MEMBER_ADDRESS__
    \n__(Zip)__ : __MEMBER_ZIP__
    \n__(Town)__ : __MEMBER_TOWN__
    \n__(Country)__ : __MEMBER_COUNTRY__
    \n__(Email)__ : __MEMBER_EMAIL__
    \n__(Birthday)__ : __MEMBER_BIRTH__
    \n__(Photo)__ : __MEMBER_PHOTO__
    \n__(Login)__ : __MEMBER_LOGIN__
    \n__(Phone)__ : __MEMBER_PHONE__
    \n__(PhonePerso)__ : __MEMBER_PHONEPRO__
    \n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); -- Recruiting -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'recruitment','recruitmentcandidature_send','',0,null,null,'(AnswerCandidature)' ,100,'$conf->recruitment->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourCandidature)__', '__(Hello)__ __CANDIDATE_FULLNAME__,

    \n\n__(YourCandidatureAnswerMessage)__
    __ONLINE_INTERVIEW_SCHEDULER_TEXT_AND_URL__\n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'recruitment','recruitmentcandidature_send','',0,null,null,'(AnswerCandidature)' ,100,'isModEnabled("recruitment")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourCandidature)__', '__(Hello)__ __CANDIDATE_FULLNAME__,

    \n\n__(YourCandidatureAnswerMessage)__
    __ONLINE_INTERVIEW_SCHEDULER_TEXT_AND_URL__\n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); -- Event organization INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailAskConf)', 10, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskConf)__', '__(Hello)__,

    __(OrganizationEventConfRequestWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailAskBooth)', 20, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskBooth)__', '__(Hello)__,

    __(OrganizationEventBoothRequestWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); -- TODO Add message for registration only to event __ONLINE_PAYMENT_TEXT_AND_URL__ -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailSubsBooth)', 30, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailBoothPayment)__', '__(Hello)__,

    __(OrganizationEventPaymentOfBoothWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); -INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailSubsEvent)', 40, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailRegistrationPayment)__', '__(Hello)__,

    __(OrganizationEventPaymentOfRegistrationWasReceived)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailBoothPayment)', 30, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailBoothPayment)__', '__(Hello)__,

    __(OrganizationEventPaymentOfBoothWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailRegistrationPayment)', 40, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailRegistrationPayment)__', '__(Hello)__,

    __(OrganizationEventPaymentOfRegistrationWasReceived)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +-- INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationMassEmailAttendees)', 50, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailAttendees)__', '__(Hello)__,

    __(OrganizationEventBulkMailToAttendees)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationMassEmailSpeakers)', 60, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailSpeakers)__', '__(Hello)__,

    __(OrganizationEventBulkMailToSpeakers)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); diff --git a/htdocs/install/mysql/data/llx_c_forme_juridique.sql b/htdocs/install/mysql/data/llx_c_forme_juridique.sql index bb8dd4c4efb..af625035804 100644 --- a/htdocs/install/mysql/data/llx_c_forme_juridique.sql +++ b/htdocs/install/mysql/data/llx_c_forme_juridique.sql @@ -109,7 +109,7 @@ insert into llx_c_forme_juridique (fk_pays, code, libelle) values (2, '228', 'VO insert into llx_c_forme_juridique (fk_pays, code, libelle) values (2, '229', 'VS0 - Vennootschap met sociaal oogmerk'); --- France: Extrait de http://www.insee.fr/fr/nom_def_met/nomenclatures/cj/cjniveau2.htm +-- France: Extrait de https://www.insee.fr/fr/information/2028129 insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'11','Artisan Commerçant (EI)'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'12','Commerçant (EI)'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'13','Artisan (EI)'); @@ -332,6 +332,7 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14006', 'Société anonyme (SA)', 1); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14007', 'Société coopérative (SC)', 1); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14008', 'Société européenne (SE)', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14009', 'Société à responsabilité limitée simplifiée (SARL-S)', 1); -- Romania INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (188, '18801', 'AFJ - Alte forme juridice', 1); @@ -403,3 +404,36 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (76, '7608', ' INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (76, '7609', 'Državno tijelo'); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (76, '7610', 'Kućna radinost'); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (76, '7611', 'Sporedno zanimanje'); + +-- Japan (id country=123) +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12301', '株式会社'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12302', '有限会社'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12303', '合資会社'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12304', '合名会社'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12305', '相互会社'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12306', '医療法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12307', '財団法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12308', '社団法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12309', '社会福祉法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12310', '学校法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12311', '特定非営利活動法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12312', 'NPO法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12313', '商工組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12314', '林業組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12315', '同業組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12316', '農業協同組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12317', '漁業協同組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12318', '農事組合法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12319', '生活互助会'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12320', '協業組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12321', '協同組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12322', '生活協同組合'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12323', '連合会'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12324', '組合連合会'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12325', '協同組合連合会'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12329', '一般社団法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12330', '公益社団法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12331', '一般財団法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12332', '公益財団法人'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12333', '合同会社'); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (123, '12399', '個人又はその他の法人'); diff --git a/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql b/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql index 80f59680df5..772a9ad612f 100644 --- a/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql +++ b/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql @@ -7,6 +7,8 @@ -- Copyright (C) 2007 Patrick Raguin -- Copyright (C) 2019 Markus Welters -- Copyright (C) 2022 Joachim Kueter +-- Copyright (C) 2022 Nick Fragoulis + -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -47,6 +49,16 @@ INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, m INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('FR-ASCENSION', 0, 1, 'ascension', 0, 0, 0, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('FR-PENTECOST', 0, 1, 'pentecost', 0, 0, 0, 1); +-- Belgium only (2) +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-VICTORYDAY', 0, 2, '', 0, 5, 8, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-NATIONALDAY', 0, 2, '', 0, 7, 21, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-ASSOMPTION', 0, 2, '', 0, 8, 15, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-TOUSSAINT', 0, 2, '', 0, 11, 1, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-ARMISTICE', 0, 2, '', 0, 11, 11, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-EASTER', 0, 2, 'eastermonday', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-ASCENSION', 0, 2, 'ascension', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-PENTECOST', 0, 2, 'pentecost', 0, 0, 0, 1); + -- Italy (3) INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('IT-LIBEAZIONE', 0, 3, 0, 4, 25, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('IT-EPIPHANY', 0, 3, 0, 6, 1, 1); @@ -94,6 +106,20 @@ INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, m INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('AT-SAINTSTEFAN', 0, 41, '', 0, 12, 26, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('AT-Silvester', 0, 41, '', 0, 12, 31, 1); +-- Greece (102) +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΠΡΩΤΟΧΡΟΝΙΑ', 0, 102, '', 0, 1, 1, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΘΕΟΦΑΝΕΙΑ', 0, 102, '', 0, 1, 6, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-25Η ΜΑΡΤΙΟΥ', 0, 102, '', 0, 3, 25, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΠΡΩΤΟΜΑΓΙΑ', 0, 102, '', 0, 5, 1, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΚΑΘΑΡΑ ΔΕΥΤΕΡΑ', 0, 102, 'ΚΑΘΑΡΑ_ΔΕΥΤΕΡΑ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΜΕΓΑΛΗ ΠΑΡΑΣΚΕΥΗ', 0, 102, 'ΜΕΓΑΛΗ_ΠΑΡΑΣΚΕΥΗ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΔΕΥΤΕΡΑ ΤΟΥ ΠΑΣΧΑ', 0, 102, 'ΔΕΥΤΕΡΑ_ΤΟΥ_ΠΑΣΧΑ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΤΟΥ ΑΓΙΟΥ ΠΝΕΥΜΑΤΟΣ', 0, 102, 'ΤΟΥ_ΑΓΙΟΥ_ΠΝΕΥΜΑΤΟΣ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΚΟΙΜΗΣΗ ΤΗΣ ΘΕΟΤΟΚΟΥ', 0, 102, '', 0, 8, 15, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-28Η ΟΚΤΩΒΡΙΟΥ', 0, 102, '', 0, 10, 28, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΧΡΙΣΤΟΥΓΕΝΝΑ', 0, 102, '', 0, 12, 25, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΣΥΝΑΞΗ ΘΕΟΤΟΚΟΥ', 0, 102, '', 0, 12, 26, 1); + -- India (117) INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-REPUBLICDAY', 0, 117, '', 0, 1, 26, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-GANDI', 0, 117, '', 0, 10, 2, 1); diff --git a/htdocs/install/mysql/data/llx_c_paiement.sql b/htdocs/install/mysql/data/llx_c_paiement.sql index a266070da2b..2e0bd71f389 100644 --- a/htdocs/install/mysql/data/llx_c_paiement.sql +++ b/htdocs/install/mysql/data/llx_c_paiement.sql @@ -45,7 +45,7 @@ insert into llx_c_paiement (id,code,libelle,type,active) values (53, 'FAC', 'Fac -- Payment services INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (100, 'KLA', 'Klarna', 1, 0); INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (101, 'SOF', 'Sofort', 1, 0); -INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (102, 'BAN', 'Bancontact', 1, 0); +INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (102, 'BANCON', 'Bancontact', 1, 0); INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (103, 'IDE', 'iDeal', 1, 0); INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (104, 'GIR', 'Giropay', 1, 0); INSERT INTO llx_c_paiement (id,code,libelle,type,active) values (105, 'PPL', 'PayPal', 1, 0); diff --git a/htdocs/install/mysql/data/llx_c_socialnetworks.sql b/htdocs/install/mysql/data/llx_c_socialnetworks.sql index 468086291fc..7741f8cdfef 100644 --- a/htdocs/install/mysql/data/llx_c_socialnetworks.sql +++ b/htdocs/install/mysql/data/llx_c_socialnetworks.sql @@ -37,7 +37,7 @@ INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'gifycat', 'Gificat', '{socialid}', '', 0); INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'giphy', 'Giphy', '{socialid}', '', 0); INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'github', 'GitHub', 'https://www.github.com/{socialid}', '', 0); -INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'googleplus', 'GooglePlus', 'https://www.googleplus.com/{socialid}', 'fa-google-plus-g', 0); +INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'googleplus', 'GooglePlus', 'https://www.googleplus.com/{socialid}', 'fa-google-plus', 0); INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'instagram', 'Instagram', 'https://www.instagram.com/{socialid}', 'fa-instagram', 1); INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'linkedin', 'LinkedIn', 'https://www.linkedin.com/{socialid}', 'fa-linkedin', 1); INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ( 1, 'mastodon', 'Mastodon', '{socialid}', '', 0); diff --git a/htdocs/install/mysql/data/llx_c_tva.sql b/htdocs/install/mysql/data/llx_c_tva.sql index d78fea4ad4d..6c96cb46605 100644 --- a/htdocs/install/mysql/data/llx_c_tva.sql +++ b/htdocs/install/mysql/data/llx_c_tva.sql @@ -137,7 +137,6 @@ insert into llx_c_tva(rowid,fk_pays,taux,code,recuperableonly,localtax1,localtax -- GERMANY (id country=5) insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 51, 5, '0','0','No VAT', 1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 52, 5, '7.0','0','ermäßigte USt.', 1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 53, 5, '0.0','0','keine USt.', 1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 54, 5, '5.5','0','USt. Forst', 0); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 55, 5, '10.7','0','USt. Landwirtschaft', 0); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 56, 5, '19.0','0','allgemeine Ust.',1); diff --git a/htdocs/install/mysql/data/llx_c_type_contact.sql b/htdocs/install/mysql/data/llx_c_type_contact.sql index 825e21ddf42..5852e295c6b 100644 --- a/htdocs/install/mysql/data/llx_c_type_contact.sql +++ b/htdocs/install/mysql/data/llx_c_type_contact.sql @@ -32,88 +32,89 @@ -- -- The types of contact of an element --- Les types de contact d'un element +-- +-- The unique key is set on (element, source, code) -- -- Contract / Contrat -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (10, 'contrat', 'internal', 'SALESREPSIGN', 'Commercial signataire du contrat', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (11, 'contrat', 'internal', 'SALESREPFOLL', 'Commercial suivi du contrat', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (20, 'contrat', 'external', 'BILLING', 'Contact client facturation contrat', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (21, 'contrat', 'external', 'CUSTOMER', 'Contact client suivi contrat', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (22, 'contrat', 'external', 'SALESREPSIGN', 'Contact client signataire contrat', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('contrat', 'internal', 'SALESREPSIGN', 'Commercial signataire du contrat', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('contrat', 'internal', 'SALESREPFOLL', 'Commercial suivi du contrat', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('contrat', 'external', 'BILLING', 'Contact client facturation contrat', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('contrat', 'external', 'CUSTOMER', 'Contact client suivi contrat', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('contrat', 'external', 'SALESREPSIGN', 'Contact client signataire contrat', 1); -- Proposal / Propal -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (31, 'propal', 'internal', 'SALESREPFOLL', 'Commercial à l''origine de la propale', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (40, 'propal', 'external', 'BILLING', 'Contact client facturation propale', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (41, 'propal', 'external', 'CUSTOMER', 'Contact client suivi propale', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (42, 'propal', 'external', 'SHIPPING', 'Contact client livraison propale', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('propal', 'internal', 'SALESREPFOLL', 'Commercial à l''origine de la propale', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('propal', 'external', 'BILLING', 'Contact client facturation propale', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('propal', 'external', 'CUSTOMER', 'Contact client suivi propale', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('propal', 'external', 'SHIPPING', 'Contact client livraison propale', 1); -- Customer Invoice / Facture -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (50, 'facture', 'internal', 'SALESREPFOLL', 'Responsable suivi du paiement', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (60, 'facture', 'external', 'BILLING', 'Contact client facturation', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (61, 'facture', 'external', 'SHIPPING', 'Contact client livraison', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (62, 'facture', 'external', 'SERVICE', 'Contact client prestation', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('facture', 'internal', 'SALESREPFOLL', 'Responsable suivi du paiement', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('facture', 'external', 'BILLING', 'Contact client facturation', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('facture', 'external', 'SHIPPING', 'Contact client livraison', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('facture', 'external', 'SERVICE', 'Contact client prestation', 1); -- Supplier Invoice -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (70, 'invoice_supplier', 'internal', 'SALESREPFOLL', 'Responsable suivi du paiement', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (71, 'invoice_supplier', 'external', 'BILLING', 'Contact fournisseur facturation', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (72, 'invoice_supplier', 'external', 'SHIPPING', 'Contact fournisseur livraison', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (73, 'invoice_supplier', 'external', 'SERVICE', 'Contact fournisseur prestation', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('invoice_supplier', 'internal', 'SALESREPFOLL', 'Responsable suivi du paiement', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('invoice_supplier', 'external', 'BILLING', 'Contact fournisseur facturation', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('invoice_supplier', 'external', 'SHIPPING', 'Contact fournisseur livraison', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('invoice_supplier', 'external', 'SERVICE', 'Contact fournisseur prestation', 1); -- Agenda -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (80, 'agenda', 'internal', 'ACTOR', 'Responsable', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (81, 'agenda', 'internal', 'GUEST', 'Guest', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (85, 'agenda', 'external', 'ACTOR', 'Responsable', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (86, 'agenda', 'external', 'GUEST', 'Guest', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('agenda', 'internal', 'ACTOR', 'Responsable', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('agenda', 'internal', 'GUEST', 'Guest', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('agenda', 'external', 'ACTOR', 'Responsable', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('agenda', 'external', 'GUEST', 'Guest', 1); -- Customer Order / Commande -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (91, 'commande', 'internal', 'SALESREPFOLL', 'Responsable suivi de la commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (100,'commande', 'external', 'BILLING', 'Contact client facturation commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (101,'commande', 'external', 'CUSTOMER', 'Contact client suivi commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (102,'commande', 'external', 'SHIPPING', 'Contact client livraison commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('commande', 'internal', 'SALESREPFOLL', 'Responsable suivi de la commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('commande', 'external', 'BILLING', 'Contact client facturation commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('commande', 'external', 'CUSTOMER', 'Contact client suivi commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('commande', 'external', 'SHIPPING', 'Contact client livraison commande', 1); -- Intervention / Fichinter -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (120, 'fichinter', 'internal', 'INTERREPFOLL', 'Responsable suivi de l''intervention', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (121, 'fichinter', 'internal', 'INTERVENING', 'Intervenant', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (130, 'fichinter', 'external', 'BILLING', 'Contact client facturation intervention', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (131, 'fichinter', 'external', 'CUSTOMER', 'Contact client suivi de l''intervention', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('fichinter', 'internal', 'INTERREPFOLL', 'Responsable suivi de l''intervention', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('fichinter', 'internal', 'INTERVENING', 'Intervenant', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('fichinter', 'external', 'BILLING', 'Contact client facturation intervention', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('fichinter', 'external', 'CUSTOMER', 'Contact client suivi de l''intervention', 1); -- Supplier Order -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (140, 'order_supplier', 'internal', 'SALESREPFOLL', 'Responsable suivi de la commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (141, 'order_supplier', 'internal', 'SHIPPING', 'Responsable réception de la commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (142, 'order_supplier', 'external', 'BILLING', 'Contact fournisseur facturation commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (143, 'order_supplier', 'external', 'CUSTOMER', 'Contact fournisseur suivi commande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (145, 'order_supplier', 'external', 'SHIPPING', 'Contact fournisseur livraison commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('order_supplier', 'internal', 'SALESREPFOLL', 'Responsable suivi de la commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('order_supplier', 'internal', 'SHIPPING', 'Responsable réception de la commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('order_supplier', 'external', 'BILLING', 'Contact fournisseur facturation commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('order_supplier', 'external', 'CUSTOMER', 'Contact fournisseur suivi commande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('order_supplier', 'external', 'SHIPPING', 'Contact fournisseur livraison commande', 1); -- Resource -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (150, 'dolresource', 'internal', 'USERINCHARGE', 'In charge of resource', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (151, 'dolresource', 'external', 'THIRDINCHARGE', 'In charge of resource', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('dolresource', 'internal', 'USERINCHARGE', 'In charge of resource', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('dolresource', 'external', 'THIRDINCHARGE', 'In charge of resource', 1); -- Tickets -insert into llx_c_type_contact (rowid, element, source, code, libelle, active, module) values (155, 'ticket', 'internal', 'SUPPORTTEC', 'Utilisateur contact support', 1, NULL); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active, module) values (156, 'ticket', 'internal', 'CONTRIBUTOR', 'Intervenant', 1, NULL); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active, module) values (157, 'ticket', 'external', 'SUPPORTCLI', 'Contact client suivi incident', 1, NULL); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active, module) values (158, 'ticket', 'external', 'CONTRIBUTOR', 'Intervenant', 1, NULL); +insert into llx_c_type_contact (element, source, code, libelle, active, module) values ('ticket', 'internal', 'SUPPORTTEC', 'Utilisateur contact support', 1, NULL); +insert into llx_c_type_contact (element, source, code, libelle, active, module) values ('ticket', 'internal', 'CONTRIBUTOR', 'Intervenant', 1, NULL); +insert into llx_c_type_contact (element, source, code, libelle, active, module) values ('ticket', 'external', 'SUPPORTCLI', 'Contact client suivi incident', 1, NULL); +insert into llx_c_type_contact (element, source, code, libelle, active, module) values ('ticket', 'external', 'CONTRIBUTOR', 'Intervenant', 1, NULL); -- Projects / Projet - All project code can start with 'PROJECT' -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (160, 'project', 'internal', 'PROJECTLEADER', 'Chef de Projet', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (161, 'project', 'internal', 'PROJECTCONTRIBUTOR', 'Intervenant', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (170, 'project', 'external', 'PROJECTLEADER', 'Chef de Projet', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (171, 'project', 'external', 'PROJECTCONTRIBUTOR', 'Intervenant', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project', 'internal', 'PROJECTLEADER', 'Chef de Projet', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project', 'internal', 'PROJECTCONTRIBUTOR', 'Intervenant', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project', 'external', 'PROJECTLEADER', 'Chef de Projet', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project', 'external', 'PROJECTCONTRIBUTOR', 'Intervenant', 1); -- Project Tasks - All task code can start with 'TASK' -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (180, 'project_task', 'internal', 'TASKEXECUTIVE', 'Responsable', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (181, 'project_task', 'internal', 'TASKCONTRIBUTOR', 'Intervenant', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (190, 'project_task', 'external', 'TASKEXECUTIVE', 'Responsable', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (191, 'project_task', 'external', 'TASKCONTRIBUTOR', 'Intervenant', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project_task', 'internal', 'TASKEXECUTIVE', 'Responsable', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project_task', 'internal', 'TASKCONTRIBUTOR', 'Intervenant', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project_task', 'external', 'TASKEXECUTIVE', 'Responsable', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('project_task', 'external', 'TASKCONTRIBUTOR', 'Intervenant', 1); -- Supplier proposal -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (110, 'supplier_proposal', 'internal', 'SALESREPFOLL', 'Responsable suivi de la demande', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (111, 'supplier_proposal', 'external', 'BILLING', 'Contact fournisseur facturation', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (112, 'supplier_proposal', 'external', 'SHIPPING', 'Contact fournisseur livraison', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (113, 'supplier_proposal', 'external', 'SERVICE', 'Contact fournisseur prestation', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('supplier_proposal', 'internal', 'SALESREPFOLL', 'Responsable suivi de la demande', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('supplier_proposal', 'external', 'BILLING', 'Contact fournisseur facturation', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('supplier_proposal', 'external', 'SHIPPING', 'Contact fournisseur livraison', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('supplier_proposal', 'external', 'SERVICE', 'Contact fournisseur prestation', 1); -- Event Organization -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (210, 'conferenceorbooth', 'internal', 'MANAGER', 'Conference or Booth manager', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (211, 'conferenceorbooth', 'external', 'SPEAKER', 'Conference Speaker', 1); -insert into llx_c_type_contact (rowid, element, source, code, libelle, active ) values (212, 'conferenceorbooth', 'external', 'RESPONSIBLE', 'Booth responsible', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('conferenceorbooth', 'internal', 'MANAGER', 'Conference or Booth manager', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('conferenceorbooth', 'external', 'SPEAKER', 'Conference Speaker', 1); +insert into llx_c_type_contact (element, source, code, libelle, active ) values ('conferenceorbooth', 'external', 'RESPONSIBLE', 'Booth responsible', 1); diff --git a/htdocs/install/mysql/data/llx_const.sql b/htdocs/install/mysql/data/llx_const.sql index 61c7336f48b..06463207069 100644 --- a/htdocs/install/mysql/data/llx_const.sql +++ b/htdocs/install/mysql/data/llx_const.sql @@ -35,7 +35,7 @@ insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_NOT_INSTALLED','1','chaine','Setup is running',1,0); insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_FEATURES_LEVEL','0','chaine','Level of features to show: -1=stable+deprecated, 0=stable only (default), 1=stable+experimental, 2=stable+experimental+development',1,0); insert into llx_const (name, value, type, note, visible, entity) values ('MAILING_LIMIT_SENDBYWEB','25','chaine','Number of targets to defined packet size when sending mass email',1,0); -insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_ENABLE_LOG_TO_HTML','0','chaine','If this option is set to 1, it is possible to see log output at end of HTML sources by adding paramater logtohtml=1 on URL. Module log must also be enabled.',1,0); +--insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_ENABLE_LOG_TO_HTML','0','chaine','If this option is set to 1, it is possible to see log output at end of HTML sources by adding paramater logtohtml=1 on URL. Module log must also be enabled.',1,0); -- Hidden and common to all entities insert into llx_const (name, value, type, note, visible, entity) values ('SYSLOG_HANDLERS','["mod_syslog_file"]','chaine','Which logger to use',0,0); diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index a632a32271b..4a48e8b97fd 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -568,6 +568,7 @@ INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging varchar(64) DEFAULT NULL; ALTER TABLE llx_product_fournisseur_price MODIFY COLUMN packaging varchar(64) DEFAULT NULL; +-- VPGSQL8.2 ALTER TABLE llx_product_fournisseur_price ALTER COLUMN packaging DROP DEFAULT; ALTER TABLE llx_projet ADD COLUMN fk_opp_status_end integer DEFAULT NULL; diff --git a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql index 2ec43548bb6..b335cf7f3f6 100644 --- a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql +++ b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql @@ -85,7 +85,9 @@ UPDATE llx_const set value = __ENCRYPT('eldy')__ WHERE __DECRYPT('value')__ = 'c DELETE FROM llx_user_param where param = 'MAIN_THEME' and value in ('auguria', 'amarok', 'cameleo'); ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging real DEFAULT NULL; -ALTER TABLE llx_product_fournisseur_price MODIFY COLUMN packaging real DEFAULT NULL; +-- VMYSQL4.3 ALTER TABLE llx_product_fournisseur_price MODIFY COLUMN packaging real DEFAULT NULL; +-- VPGSQL8.2 ALTER TABLE llx_product_fournisseur_price MODIFY COLUMN packaging real DEFAULT NULL USING packaging::real; +-- VPGSQL8.2 ALTER TABLE llx_product_fournisseur_price ALTER COLUMN packaging DROP DEFAULT; -- For v14 diff --git a/htdocs/install/mysql/migration/14.0.0-15.0.0.sql b/htdocs/install/mysql/migration/14.0.0-15.0.0.sql index a945f078bbb..7eb3403e3ed 100644 --- a/htdocs/install/mysql/migration/14.0.0-15.0.0.sql +++ b/htdocs/install/mysql/migration/14.0.0-15.0.0.sql @@ -38,6 +38,7 @@ ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging real DEFAULT NULL; -- VMYSQL4.3 ALTER TABLE llx_product_fournisseur_price MODIFY COLUMN packaging real DEFAULT NULL; -- VPGSQL8.2 ALTER TABLE llx_product_fournisseur_price MODIFY COLUMN packaging real DEFAULT NULL USING packaging::real; +-- VPGSQL8.2 ALTER TABLE llx_product_fournisseur_price ALTER COLUMN packaging DROP DEFAULT; ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_export datetime DEFAULT NULL; diff --git a/htdocs/install/mysql/migration/15.0.0-16.0.0.sql b/htdocs/install/mysql/migration/15.0.0-16.0.0.sql index d4079d4f64c..d5deec862d0 100644 --- a/htdocs/install/mysql/migration/15.0.0-16.0.0.sql +++ b/htdocs/install/mysql/migration/15.0.0-16.0.0.sql @@ -51,7 +51,8 @@ -- VPGSQL8.2 ALTER TABLE llx_c_payment_term ALTER COLUMN rowid SET DEFAULT nextval('llx_c_payment_term_rowid_seq'); -- VPGSQL8.2 SELECT setval('llx_c_payment_term_rowid_seq', MAX(rowid)) FROM llx_c_payment_term; - +ALTER TABLE llx_entrepot ADD COLUMN barcode varchar(180) DEFAULT NULL; +ALTER TABLE llx_entrepot ADD COLUMN fk_barcode_type integer DEFAULT NULL; ALTER TABLE llx_c_transport_mode ADD UNIQUE INDEX uk_c_transport_mode (code, entity); @@ -134,8 +135,35 @@ ALTER TABLE llx_partnership ADD UNIQUE INDEX uk_fk_type_fk_member (fk_type, fk_m ALTER TABLE llx_bank ADD COLUMN amount_main_currency double(24,8) NULL; + -- v16 +ALTER TABLE llx_element_contact DROP FOREIGN KEY fk_element_contact_fk_c_type_contact; +ALTER TABLE llx_societe_contacts DROP FOREIGN KEY fk_societe_contacts_fk_c_type_contact; + +-- VMYSQL4.3 ALTER TABLE llx_c_type_contact ADD PRIMARY KEY(rowid); +-- VMYSQL4.3 ALTER TABLE llx_c_type_contact CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; + +-- VPGSQL8.2 CREATE SEQUENCE llx_c_type_contact_rowid_seq OWNED BY llx_c_type_contact.rowid; +-- VPGSQL8.2 ALTER TABLE llx_c_type_contact ADD PRIMARY KEY (rowid); +-- VPGSQL8.2 ALTER TABLE llx_c_type_contact ALTER COLUMN rowid SET DEFAULT nextval('llx_c_type_contact_rowid_seq'); +-- VPGSQL8.2 SELECT setval('llx_c_type_contact_rowid_seq', MAX(rowid)) FROM llx_c_type_contact; + +insert into llx_c_type_contact(element, source, code, libelle, active ) values ('conferenceorbooth', 'internal', 'MANAGER', 'Conference or Booth manager', 1); +insert into llx_c_type_contact(element, source, code, libelle, active ) values ('conferenceorbooth', 'external', 'SPEAKER', 'Conference Speaker', 1); +insert into llx_c_type_contact(element, source, code, libelle, active ) values ('conferenceorbooth', 'external', 'RESPONSIBLE', 'Booth responsible', 1); + +ALTER TABLE llx_element_contact ADD CONSTRAINT fk_element_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); + + +DROP TABLE llx_payment_salary_extrafields; +DROP TABLE llx_asset_model_extrafields; +DROP TABLE llx_asset_type_extrafields; + +ALTER TABLE llx_projet_task_time ADD COLUMN intervention_id integer DEFAULT NULL; +ALTER TABLE llx_projet_task_time ADD COLUMN intervention_line_id integer DEFAULT NULL; + ALTER TABLE llx_c_stcomm MODIFY COLUMN code VARCHAR(24) NOT NULL; ALTER TABLE llx_societe_account DROP FOREIGN KEY llx_societe_account_fk_website; @@ -146,6 +174,8 @@ ALTER TABLE llx_facture ADD INDEX idx_facture_datef (datef); ALTER TABLE llx_projet_task_time ADD COLUMN fk_product integer NULL; +ALTER TABLE llx_c_action_trigger MODIFY elementtype VARCHAR(64); + INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2); INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_MODIFY','Customer order modified','Executed when a customer order is set modified','commande',5); INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_MODIFY','Customer invoice modified','Executed when a customer invoice is modified','facture',7); @@ -178,48 +208,48 @@ ALTER TABLE llx_stock_mouvement_extrafields ADD INDEX idx_stock_mouvement_extraf CREATE TABLE llx_facture_fourn_rec ( rowid integer AUTO_INCREMENT PRIMARY KEY, - titre varchar(200) NOT NULL, - ref_supplier varchar(180) NOT NULL, - entity integer DEFAULT 1 NOT NULL, - fk_soc integer NOT NULL, + titre varchar(200) NOT NULL, + ref_supplier varchar(180) NOT NULL, + entity integer DEFAULT 1 NOT NULL, + fk_soc integer NOT NULL, datec datetime, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - suspended integer DEFAULT 0, - libelle varchar(255), - amount double(24, 8) DEFAULT 0 NOT NULL, - remise real DEFAULT 0, - vat_src_code varchar(10) DEFAULT '', - localtax1 double(24,8) DEFAULT 0, - localtax2 double(24,8) DEFAULT 0, - total_ht double(24,8) DEFAULT 0, - total_tva double(24,8) DEFAULT 0, - total_ttc double(24,8) DEFAULT 0, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + suspended integer DEFAULT 0, + libelle varchar(255), + amount double(24,8) DEFAULT 0 NOT NULL, + remise real DEFAULT 0, + vat_src_code varchar(10) DEFAULT '', + localtax1 double(24,8) DEFAULT 0, + localtax2 double(24,8) DEFAULT 0, + total_ht double(24,8) DEFAULT 0, + total_tva double(24,8) DEFAULT 0, + total_ttc double(24,8) DEFAULT 0, fk_user_author integer, fk_user_modif integer, fk_projet integer, fk_account integer, - fk_cond_reglement integer, - fk_mode_reglement integer, + fk_cond_reglement integer, + fk_mode_reglement integer, date_lim_reglement date, note_private text, note_public text, modelpdf varchar(255), fk_multicurrency integer, multicurrency_code varchar(3), - multicurrency_tx double(24,8) DEFAULT 1, - multicurrency_total_ht double(24,8) DEFAULT 0, - multicurrency_total_tva double(24,8) DEFAULT 0, - multicurrency_total_ttc double(24,8) DEFAULT 0, - usenewprice integer DEFAULT 0, + multicurrency_tx double(24,8) DEFAULT 1, + multicurrency_total_ht double(24,8) DEFAULT 0, + multicurrency_total_tva double(24,8) DEFAULT 0, + multicurrency_total_ttc double(24,8) DEFAULT 0, + usenewprice integer DEFAULT 0, frequency integer, - unit_frequency varchar(2) DEFAULT 'm', - date_when datetime DEFAULT NULL, - date_last_gen datetime DEFAULT NULL, - nb_gen_done integer DEFAULT NULL, - nb_gen_max integer DEFAULT NULL, - auto_validate integer DEFAULT 0, - generate_pdf integer DEFAULT 1 -)ENGINE=innodb; + unit_frequency varchar(2) DEFAULT 'm', + date_when datetime DEFAULT NULL, + date_last_gen datetime DEFAULT NULL, + nb_gen_done integer DEFAULT NULL, + nb_gen_max integer DEFAULT NULL, + auto_validate integer DEFAULT 0, + generate_pdf integer DEFAULT 1 +) ENGINE=innodb; ALTER TABLE llx_facture_fourn_rec ADD UNIQUE INDEX uk_facture_fourn_rec_ref (titre, entity); ALTER TABLE llx_facture_fourn_rec ADD UNIQUE INDEX uk_facture_fourn_rec_ref_supplier (ref_supplier, fk_soc, entity); @@ -248,23 +278,23 @@ CREATE TABLE llx_facture_fourn_det_rec fk_parent_line integer NULL, fk_product integer NULL, ref varchar(50), - label varchar(255) DEFAULT NULL, + label varchar(255) DEFAULT NULL, description text, pu_ht double(24,8), pu_ttc double(24,8), qty real, - remise_percent real DEFAULT 0, - fk_remise_except integer NULL, - vat_src_code varchar(10) DEFAULT '', + remise_percent real DEFAULT 0, + fk_remise_except integer NULL, + vat_src_code varchar(10) DEFAULT '', tva_tx double(7,4), - localtax1_tx double(7,4) DEFAULT 0, - localtax1_type varchar(10) NULL, - localtax2_tx double(7,4) DEFAULT 0, - localtax2_type varchar(10) NULL, + localtax1_tx double(7,4) DEFAULT 0, + localtax1_type varchar(10) NULL, + localtax2_tx double(7,4) DEFAULT 0, + localtax2_type varchar(10) NULL, total_ht double(24,8), total_tva double(24,8), - total_localtax1 double(24,8) DEFAULT 0, - total_localtax2 double(24,8) DEFAULT 0, + total_localtax1 double(24,8) DEFAULT 0, + total_localtax2 double(24,8) DEFAULT 0, total_ttc double(24,8), product_type integer DEFAULT 0, date_start integer DEFAULT NULL, @@ -282,17 +312,20 @@ CREATE TABLE llx_facture_fourn_det_rec multicurrency_total_ht double(24,8) DEFAULT 0, multicurrency_total_tva double(24,8) DEFAULT 0, multicurrency_total_ttc double(24,8) DEFAULT 0 -)ENGINE=innodb; +) ENGINE=innodb; + ALTER TABLE llx_facture_fourn_det_rec ADD CONSTRAINT fk_facture_fourn_det_rec_fk_unit FOREIGN KEY (fk_unit) REFERENCES llx_c_units (rowid); + CREATE TABLE llx_facture_fourn_det_rec_extrafields ( rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, fk_object integer NOT NULL, -- object id - import_key varchar(14) -- import key -)ENGINE=innodb; + import_key varchar(14) -- import key +) ENGINE=innodb; + ALTER TABLE llx_facture_fourn_det_rec_extrafields ADD INDEX idx_facture_fourn_det_rec_extrafields (fk_object); @@ -311,7 +344,8 @@ ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN position INTEGER NOT NU ALTER TABLE llx_advtargetemailing RENAME TO llx_mailing_advtarget; -ALTER TABLE llx_mailing ADD UNIQUE INDEX uk_mailing(titre, entity); +ALTER TABLE llx_mailing ADD UNIQUE INDEX uk_mailing (titre, entity); + create table llx_inventory_extrafields ( @@ -321,6 +355,7 @@ create table llx_inventory_extrafields import_key varchar(14) -- import key ) ENGINE=innodb; + ALTER TABLE llx_inventory_extrafields ADD INDEX idx_inventory_extrafields (fk_object); ALTER TABLE llx_reception MODIFY COLUMN ref_supplier varchar(128); @@ -331,6 +366,279 @@ ALTER TABLE llx_bank_account ADD COLUMN pti_in_ctti smallint DEFAULT 0 AFTER dom UPDATE llx_c_ticket_type SET use_default=1 WHERE code='OTHER' AND NOT EXISTS(SELECT * FROM (SELECT * FROM llx_c_ticket_type) AS t WHERE use_default=1); +-- Assets - New module + +CREATE TABLE llx_asset( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + ref varchar(128) NOT NULL, + entity integer DEFAULT 1 NOT NULL, + label varchar(255), + + fk_asset_model integer, + + reversal_amount_ht double(24,8), + acquisition_value_ht double(24,8) DEFAULT NULL, + recovered_vat double(24,8), + + reversal_date date, + + date_acquisition date NOT NULL, + date_start date NOT NULL, + + qty real DEFAULT 1 NOT NULL, + + acquisition_type smallint DEFAULT 0 NOT NULL, + asset_type smallint DEFAULT 0 NOT NULL, + + not_depreciated integer DEFAULT 0, + + disposal_date date, + disposal_amount_ht double(24,8), + fk_disposal_type integer, + disposal_depreciated integer DEFAULT 0, + disposal_subject_to_vat integer DEFAULT 0, + + note_public text, + note_private text, + + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + last_main_doc varchar(255), + import_key varchar(14), + model_pdf varchar(255), + status integer NOT NULL +) ENGINE=innodb; + +ALTER TABLE llx_asset DROP FOREIGN KEY fk_asset_asset_type; +ALTER TABLE llx_asset DROP INDEX idx_asset_fk_asset_type; + +ALTER TABLE llx_asset CHANGE COLUMN amount_ht acquisition_value_ht double(24,8) NOT NULL; +ALTER TABLE llx_asset CHANGE COLUMN amount_vat recovered_vat double(24,8); + +DELETE FROM llx_asset WHERE fk_asset_type IS NOT NULL; + +ALTER TABLE llx_asset DROP COLUMN fk_asset_type; +ALTER TABLE llx_asset DROP COLUMN description; + +ALTER TABLE llx_asset ADD COLUMN fk_asset_model integer AFTER label; +ALTER TABLE llx_asset ADD COLUMN reversal_amount_ht double(24,8) AFTER fk_asset_model; +ALTER TABLE llx_asset ADD COLUMN reversal_date date AFTER recovered_vat; +ALTER TABLE llx_asset ADD COLUMN date_acquisition date NOT NULL AFTER reversal_date; +ALTER TABLE llx_asset ADD COLUMN date_start date NOT NULL AFTER date_acquisition; +ALTER TABLE llx_asset ADD COLUMN qty real DEFAULT 1 NOT NULL AFTER date_start; +ALTER TABLE llx_asset ADD COLUMN acquisition_type smallint DEFAULT 0 NOT NULL AFTER qty; +ALTER TABLE llx_asset ADD COLUMN asset_type smallint DEFAULT 0 NOT NULL AFTER acquisition_type; +ALTER TABLE llx_asset ADD COLUMN not_depreciated integer DEFAULT 0 AFTER asset_type; +ALTER TABLE llx_asset ADD COLUMN disposal_date date AFTER not_depreciated; +ALTER TABLE llx_asset ADD COLUMN disposal_amount_ht double(24,8) AFTER disposal_date; +ALTER TABLE llx_asset ADD COLUMN fk_disposal_type integer AFTER disposal_amount_ht; +ALTER TABLE llx_asset ADD COLUMN disposal_depreciated integer DEFAULT 0 AFTER fk_disposal_type; +ALTER TABLE llx_asset ADD COLUMN disposal_subject_to_vat integer DEFAULT 0 AFTER disposal_depreciated; +ALTER TABLE llx_asset ADD COLUMN last_main_doc varchar(255) AFTER fk_user_modif; +ALTER TABLE llx_asset ADD COLUMN model_pdf varchar(255) AFTER import_key; + +DROP TABLE llx_asset_type; + + +CREATE TABLE llx_c_asset_disposal_type +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer NOT NULL DEFAULT 1, + code varchar(16) NOT NULL, + label varchar(50) NOT NULL, + active integer NOT NULL DEFAULT 1 +) ENGINE=innodb; + + +CREATE TABLE llx_asset_accountancy_codes_economic +( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + asset varchar(32), + depreciation_asset varchar(32), + depreciation_expense varchar(32), + value_asset_sold varchar(32), + receivable_on_assignment varchar(32), + proceeds_from_sales varchar(32), + vat_collected varchar(32), + vat_deductible varchar(32), + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; + + +CREATE TABLE llx_asset_accountancy_codes_fiscal +( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + accelerated_depreciation varchar(32), + endowment_accelerated_depreciation varchar(32), + provision_accelerated_depreciation varchar(32), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; + + +CREATE TABLE llx_asset_depreciation_options_economic +( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + depreciation_type smallint DEFAULT 0 NOT NULL, -- 0:linear, 1:degressive, 2:exceptional + accelerated_depreciation_option integer, -- activate accelerated depreciation mode (fiscal) + + degressive_coefficient double(24,8), + duration smallint NOT NULL, + duration_type smallint DEFAULT 0 NOT NULL, -- 0:annual, 1:monthly, 2:daily + + amount_base_depreciation_ht double(24,8), + amount_base_deductible_ht double(24,8), + total_amount_last_depreciation_ht double(24,8), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; + + +CREATE TABLE llx_asset_depreciation_options_fiscal +( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + depreciation_type smallint DEFAULT 0 NOT NULL, -- 0:linear, 1:degressive, 2:exceptional + + degressive_coefficient double(24,8), + duration smallint NOT NULL, + duration_type smallint DEFAULT 0 NOT NULL, -- 0:annual, 1:monthly, 2:daily + + amount_base_depreciation_ht double(24,8), + amount_base_deductible_ht double(24,8), + total_amount_last_depreciation_ht double(24,8), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; + + +CREATE TABLE llx_asset_depreciation +( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + + fk_asset integer NOT NULL, + depreciation_mode varchar(255) NOT NULL, -- (economic, fiscal or other) + + ref varchar(255) NOT NULL, + depreciation_date datetime NOT NULL, + depreciation_ht double(24,8) NOT NULL, + cumulative_depreciation_ht double(24,8) NOT NULL, + + accountancy_code_debit varchar(32), + accountancy_code_credit varchar(32), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; + + +CREATE TABLE llx_asset_model( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + entity integer DEFAULT 1 NOT NULL, -- multi company id + ref varchar(128) NOT NULL, + label varchar(255) NOT NULL, + + asset_type smallint NOT NULL, + fk_pays integer DEFAULT 0, + + note_public text, + note_private text, + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + import_key varchar(14), + status smallint NOT NULL +) ENGINE=innodb; + +CREATE TABLE llx_asset_model_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_object integer NOT NULL, + import_key varchar(14) -- import key +) ENGINE=innodb; + + +ALTER TABLE llx_c_asset_disposal_type ADD UNIQUE INDEX uk_c_asset_disposal_type(code, entity); + +ALTER TABLE llx_asset ADD INDEX idx_asset_fk_asset_model (fk_asset_model); +ALTER TABLE llx_asset ADD INDEX idx_asset_fk_disposal_type (fk_disposal_type); + +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_disposal_type FOREIGN KEY (fk_disposal_type) REFERENCES llx_c_asset_disposal_type (rowid); +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user (rowid); +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_accountancy_codes_economic ADD INDEX idx_asset_ace_rowid (rowid); +ALTER TABLE llx_asset_accountancy_codes_economic ADD UNIQUE uk_asset_ace_fk_asset (fk_asset); +ALTER TABLE llx_asset_accountancy_codes_economic ADD UNIQUE uk_asset_ace_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_accountancy_codes_economic ADD CONSTRAINT fk_asset_ace_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_accountancy_codes_economic ADD CONSTRAINT fk_asset_ace_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_accountancy_codes_economic ADD CONSTRAINT fk_asset_ace_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD INDEX idx_asset_acf_rowid (rowid); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD UNIQUE uk_asset_acf_fk_asset (fk_asset); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD UNIQUE uk_asset_acf_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD CONSTRAINT fk_asset_acf_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD CONSTRAINT fk_asset_acf_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD CONSTRAINT fk_asset_acf_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_depreciation_options_economic ADD INDEX idx_asset_doe_rowid (rowid); +ALTER TABLE llx_asset_depreciation_options_economic ADD UNIQUE uk_asset_doe_fk_asset (fk_asset); +ALTER TABLE llx_asset_depreciation_options_economic ADD UNIQUE uk_asset_doe_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_depreciation_options_economic ADD CONSTRAINT fk_asset_doe_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_depreciation_options_economic ADD CONSTRAINT fk_asset_doe_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_depreciation_options_economic ADD CONSTRAINT fk_asset_doe_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_depreciation_options_fiscal ADD INDEX idx_asset_dof_rowid (rowid); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD UNIQUE uk_asset_dof_fk_asset (fk_asset); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD UNIQUE uk_asset_dof_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_depreciation_options_fiscal ADD CONSTRAINT fk_asset_dof_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD CONSTRAINT fk_asset_dof_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD CONSTRAINT fk_asset_dof_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_rowid (rowid); +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_fk_asset (fk_asset); +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_depreciation_mode (depreciation_mode); +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_ref (ref); +ALTER TABLE llx_asset_depreciation ADD UNIQUE uk_asset_depreciation_fk_asset (fk_asset, depreciation_mode, ref); + +ALTER TABLE llx_asset_depreciation ADD CONSTRAINT fk_asset_depreciation_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_depreciation ADD CONSTRAINT fk_asset_depreciation_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_rowid (rowid); +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_ref (ref); +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_pays (fk_pays); +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_entity (entity); +ALTER TABLE llx_asset_model ADD UNIQUE INDEX uk_asset_model (entity, ref); + +ALTER TABLE llx_asset_model ADD CONSTRAINT fk_asset_model_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user (rowid); +ALTER TABLE llx_asset_model ADD CONSTRAINT fk_asset_model_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); + +ALTER TABLE llx_asset_model_extrafields ADD INDEX idx_asset_model_extrafields (fk_object); + ALTER TABLE llx_user DROP COLUMN webcal_login; ALTER TABLE llx_user DROP COLUMN module_comm; ALTER TABLE llx_user DROP COLUMN module_compta; @@ -363,10 +671,11 @@ UPDATE llx_c_availability SET type_duration = 'w', qty = 4 WHERE code = 'AV_4W'; -- Deposit generation helper with specific payment terms -ALTER TABLE llx_c_payment_term ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER decalage; -ALTER TABLE llx_societe ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER cond_reglement; -ALTER TABLE llx_propal ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER fk_cond_reglement; -ALTER TABLE llx_commande ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER fk_cond_reglement; +ALTER TABLE llx_c_payment_term ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER decalage; +ALTER TABLE llx_societe ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER cond_reglement; +ALTER TABLE llx_propal ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER fk_cond_reglement; +ALTER TABLE llx_commande ADD COLUMN deposit_percent VARCHAR(63) DEFAULT NULL AFTER fk_cond_reglement; + INSERT INTO llx_c_payment_term(code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values ('DEP30PCTDEL', 13, 0, '__DEPOSIT_PERCENT__% deposit', '__DEPOSIT_PERCENT__% deposit, remainder on delivery', 0, 1, '30'); @@ -381,19 +690,23 @@ DELETE FROM llx_boxes_def WHERE file IN ('box_bom.php@bom', 'box_bom.php', 'box_ ALTER TABLE llx_takepos_floor_tables ADD UNIQUE(entity,label); -ALTER TABLE llx_partnership ADD COLUMN url_to_check varchar(255); -ALTER TABLE llx_c_partnership_type ADD COLUMN keyword varchar(128); +ALTER TABLE llx_partnership ADD COLUMN url_to_check varchar(255); +ALTER TABLE llx_c_partnership_type ADD COLUMN keyword varchar(128); -ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN firstname varchar(100); -ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN lastname varchar(100); -ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN email_company varchar(128) after email; +ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN firstname varchar(100); +ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN lastname varchar(100); +ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN email_company varchar(128) after email; + +-- VMYSQL4.3 ALTER TABLE llx_eventorganization_conferenceorboothattendee MODIFY COLUMN fk_user_creat integer NULL; +-- VPGSQL8.2 ALTER TABLE llx_eventorganization_conferenceorboothattendee ALTER COLUMN fk_user_creat DROP NOT NULL; -ALTER TABLE llx_c_email_template ADD COLUMN email_from varchar(255); -ALTER TABLE llx_c_email_template ADD COLUMN email_to varchar(255); -ALTER TABLE llx_c_email_template ADD COLUMN email_tocc varchar(255); -ALTER TABLE llx_c_email_template ADD COLUMN email_tobcc varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN joinfiles text; +ALTER TABLE llx_c_email_templates ADD COLUMN email_from varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN email_to varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN email_tocc varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN email_tobcc varchar(255); ALTER TABLE llx_fichinter ADD COLUMN ref_client varchar(255) after ref_ext; @@ -411,4 +724,50 @@ ALTER TABLE llx_paiement MODIFY COLUMN ext_payment_id varchar(255); ALTER TABLE llx_payment_donation MODIFY COLUMN ext_payment_id varchar(255); ALTER TABLE llx_prelevement_facture_demande MODIFY COLUMN ext_payment_id varchar(255); +INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES (140, 'PCN2020-LUXEMBURG', 'Plan comptable normalisé 2020 Luxembourgeois', 1); +ALTER TABLE llx_cronjob MODIFY COLUMN label varchar(255) NOT NULL; + +-- We need to keep only the PurgeDeleteTemporaryFilesShort with params = 'tempfilsold+logfiles' +DELETE FROM llx_cronjob WHERE label = 'PurgeDeleteTemporaryFilesShort' AND params = 'tempfilesold'; + +ALTER TABLE llx_cronjob DROP INDEX uk_cronjob; +ALTER TABLE llx_cronjob ADD UNIQUE INDEX uk_cronjob (label, entity); + +ALTER TABLE llx_expedition ADD COLUMN billed smallint DEFAULT 0; + +ALTER TABLE llx_loan_schedule ADD UNIQUE INDEX uk_loan_schedule_ref (fk_loan, datep); + +-- We need when upgrade 15 to 16 with Dolibarr v17+ for upgrade2 function migrate_user_photospath2() +ALTER TABLE llx_user CHANGE COLUMN note note_private text; + + +-- Bank Thirdparty +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'banque','thirdparty','',0,null,null,'(YourSEPAMandate)',1,'isModEnabled("societe") && isModEnabled("banque") && isModEnabled("prelevement")',0,'__(YourSEPAMandate)__','__(Hello)__,

    \n\n__(FindYourSEPAMandate)__ :
    \n__MYCOMPANY_NAME__
    \n__MYCOMPANY_FULLADDRESS__

    \n__(Sincerely)__
    \n__USER_SIGNATURE__',null, 0); + +-- Members +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnAutoSubscription)' ,10, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)' ,20, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourMembershipWasValidated)__
    __(FirstName)__ : __MEMBER_FIRSTNAME__
    __(LastName)__ : __MEMBER_LASTNAME__
    __(ID)__ : __MEMBER_ID__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnNewSubscription)' ,30, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__
    \n\n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 1); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingReminderForExpiredSubscription)',40, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(ThisIsContentOfSubscriptionReminderEmail)__
    \n
    __ONLINE_PAYMENT_TEXT_AND_URL__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingEmailOnCancelation)' ,50, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__', '__(Hello)__ __MEMBER_FULLNAME__,

    \n\n__(YourMembershipWasCanceled)__
    \n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'adherent','member','',0,null,null,'(SendingAnEMailToMember)' ,60, 'isModEnabled("adherent")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__', '__(Hello)__,

    \n\n__(ThisIsContentOfYourCard)__
    \n__(ID)__ : __ID__
    \n__(Civility)__ : __MEMBER_CIVILITY__
    \n__(Firstname)__ : __MEMBER_FIRSTNAME__
    \n__(Lastname)__ : __MEMBER_LASTNAME__
    \n__(Fullname)__ : __MEMBER_FULLNAME__
    \n__(Company)__ : __MEMBER_COMPANY__
    \n__(Address)__ : __MEMBER_ADDRESS__
    \n__(Zip)__ : __MEMBER_ZIP__
    \n__(Town)__ : __MEMBER_TOWN__
    \n__(Country)__ : __MEMBER_COUNTRY__
    \n__(Email)__ : __MEMBER_EMAIL__
    \n__(Birthday)__ : __MEMBER_BIRTH__
    \n__(Photo)__ : __MEMBER_PHOTO__
    \n__(Login)__ : __MEMBER_LOGIN__
    \n__(Phone)__ : __MEMBER_PHONE__
    \n__(PhonePerso)__ : __MEMBER_PHONEPRO__
    \n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); + +-- Recruiting +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, enabled, active, topic, content, content_lines, joinfiles) VALUES (0, 'recruitment','recruitmentcandidature_send','',0,null,null,'(AnswerCandidature)' ,100,'isModEnabled("recruitment")',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourCandidature)__', '__(Hello)__ __CANDIDATE_FULLNAME__,

    \n\n__(YourCandidatureAnswerMessage)__
    __ONLINE_INTERVIEW_SCHEDULER_TEXT_AND_URL__\n

    \n__(Sincerely)__
    __USER_SIGNATURE__',null, 0); + +-- Event organization +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailAskConf)', 10, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskConf)__', '__(Hello)__,

    __(OrganizationEventConfRequestWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailAskBooth)', 20, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailAskBooth)__', '__(Hello)__,

    __(OrganizationEventBoothRequestWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +-- TODO Add message for registration only to event __ONLINE_PAYMENT_TEXT_AND_URL__ +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailBoothPayment)', 30, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailBoothPayment)__', '__(Hello)__,

    __(OrganizationEventPaymentOfBoothWasReceived)__


    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationEmailRegistrationPayment)', 40, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationEmailRegistrationPayment)__', '__(Hello)__,

    __(OrganizationEventPaymentOfRegistrationWasReceived)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +-- +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationMassEmailAttendees)', 50, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailAttendees)__', '__(Hello)__,

    __(OrganizationEventBulkMailToAttendees)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); +INSERT INTO llx_c_email_templates (entity, module, type_template, lang, private, fk_user, datec, label, position, active, topic, content, content_lines, enabled, joinfiles) values (0, '', 'conferenceorbooth', '', 0, null, null, '(EventOrganizationMassEmailSpeakers)', 60, 1, '[__[MAIN_INFO_SOCIETE_NOM]__] __(EventOrganizationMassEmailSpeakers)__', '__(Hello)__,

    __(OrganizationEventBulkMailToSpeakers)__

    __(Sincerely)__
    __USER_SIGNATURE__', null, '1', null); + +-- Partnership +INSERT INTO llx_c_email_templates (entity, module, type_template, label, lang, position, topic, joinfiles, content) VALUES (0, 'partnership', 'partnership_send', '(SendingEmailOnPartnershipWillSoonBeCanceled)', '', 100, '[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipWillSoonBeCanceledTopic)__', 0, '\n

    __(Hello)__,

    \n__(YourPartnershipWillSoonBeCanceledContent)__

    \n
    \n\n
    \n\n __(Sincerely)__
    \n __[MAIN_INFO_SOCIETE_NOM]__
    \n \n'); +INSERT INTO llx_c_email_templates (entity, module, type_template, label, lang, position, topic, joinfiles, content) VALUES (0, 'partnership', 'partnership_send', '(SendingEmailOnPartnershipCanceled)', '', 100, '[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipCanceledTopic)__', 0, '\n

    __(Hello)__,

    \n__(YourPartnershipCanceledContent)__

    \n
    \n\n
    \n\n __(Sincerely)__
    \n __[MAIN_INFO_SOCIETE_NOM]__
    \n \n'); +INSERT INTO llx_c_email_templates (entity, module, type_template, label, lang, position, topic, joinfiles, content) VALUES (0, 'partnership', 'partnership_send', '(SendingEmailOnPartnershipRefused)', '', 100, '[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipRefusedTopic)__', 0, '\n

    __(Hello)__,

    \n__(YourPartnershipRefusedContent)__

    \n
    \n\n
    \n\n __(Sincerely)__
    \n __[MAIN_INFO_SOCIETE_NOM]__
    \n \n'); +INSERT INTO llx_c_email_templates (entity, module, type_template, label, lang, position, topic, joinfiles, content) VALUES (0, 'partnership', 'partnership_send', '(SendingEmailOnPartnershipAccepted)', '', 100, '[__[MAIN_INFO_SOCIETE_NOM]__] - __(YourPartnershipAcceptedTopic)__', 0, '\n

    __(Hello)__,

    \n__(YourPartnershipAcceptedContent)__

    \n
    \n\n
    \n\n __(Sincerely)__
    \n __[MAIN_INFO_SOCIETE_NOM]__
    \n \n'); diff --git a/htdocs/install/mysql/migration/16.0.0-17.0.0.sql b/htdocs/install/mysql/migration/16.0.0-17.0.0.sql new file mode 100644 index 00000000000..095904bc2c2 --- /dev/null +++ b/htdocs/install/mysql/migration/16.0.0-17.0.0.sql @@ -0,0 +1,394 @@ +-- +-- Be carefull to requests order. +-- This file must be loaded by calling /install/index.php page +-- when current version is 16.0.0 or higher. +-- +-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y +-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y +-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; +-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; +-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60); +-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname; +-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60); +-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name; +-- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field); +-- To drop an index: -- VMYSQL4.1 DROP INDEX nomindex on llx_table; +-- To drop an index: -- VPGSQL8.2 DROP INDEX nomindex; +-- To make pk to be auto increment (mysql): +-- -- VMYSQL4.3 ALTER TABLE llx_table ADD PRIMARY KEY(rowid); +-- -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; +-- To make pk to be auto increment (postgres): +-- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid; +-- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid); +-- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq'); +-- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table; +-- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL; +-- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; +-- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL; +-- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL; +-- To set a field as default NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; +-- Note: fields with type BLOB/TEXT can't have default value. +-- To rebuild sequence for postgresql after insert by forcing id autoincrement fields: +-- -- VPGSQL8.2 SELECT dol_util_rebuild_sequences(); + + +-- Missing in v16 or lower + +ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32) NOT NULL; + +ALTER TABLE llx_c_action_trigger MODIFY elementtype VARCHAR(64); + +ALTER TABLE llx_c_email_templates ADD COLUMN joinfiles text; +ALTER TABLE llx_c_email_templates ADD COLUMN email_from varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN email_to varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN email_tocc varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN email_tobcc varchar(255); +ALTER TABLE llx_c_email_templates ADD COLUMN content_lines text; +ALTER TABLE llx_c_email_templates ADD COLUMN enabled varchar(255) DEFAULT '1'; + +ALTER TABLE llx_expedition ADD COLUMN billed smallint DEFAULT 0; + +ALTER TABLE llx_user DROP COLUMN idpers1; +ALTER TABLE llx_user DROP COLUMN idpers2; +ALTER TABLE llx_user DROP COLUMN idpers3; + +UPDATE llx_c_actioncomm SET type = 'system' WHERE code = 'AC_OTH'; + +ALTER TABLE llx_opensurvey_user_studs MODIFY reponses VARCHAR(200) NOT NULL; + +-- v17 + +ALTER TABLE llx_mailing_cibles MODIFY COLUMN source_type varchar(32); + +ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_percent (percent); + +UPDATE llx_c_paiement SET code = 'BANCON' WHERE code = 'BAN' AND libelle = 'Bancontact'; + +-- VMYSQL4.3 ALTER TABLE llx_partnership MODIFY COLUMN fk_user_creat integer NULL; +-- VPGSQL8.2 ALTER TABLE llx_partnership ALTER COLUMN fk_user_creat DROP NOT NULL; + +ALTER TABLE llx_partnership ADD COLUMN ip varchar(250); +ALTER TABLE llx_adherent ADD COLUMN ip varchar(250); +ALTER TABLE llx_projet ADD COLUMN ip varchar(250); +ALTER TABLE llx_actioncomm ADD COLUMN ip varchar(250); +ALTER TABLE llx_eventorganization_conferenceorboothattendee ADD COLUMN ip varchar(250); +ALTER TABLE llx_opensurvey_user_studs ADD COLUMN ip varchar(250); +ALTER TABLE llx_opensurvey_comments ADD COLUMN ip varchar(250); + +ALTER TABLE llx_fichinterdet_rec DROP COLUMN remise; +ALTER TABLE llx_fichinterdet_rec DROP COLUMN fk_export_commpta; + +UPDATE llx_const set name = 'ADHERENT_MAILMAN_ADMIN_PASSWORD' WHERE name = 'ADHERENT_MAILMAN_ADMINPW'; + +ALTER TABLE llx_oauth_token ADD COLUMN state text after tokenstring; + +ALTER TABLE llx_adherent ADD COLUMN default_lang VARCHAR(6) DEFAULT NULL AFTER datefin; + +ALTER TABLE llx_adherent_type ADD COLUMN caneditamount integer DEFAULT 0 AFTER amount; + +ALTER TABLE llx_holiday CHANGE COLUMN date_approve date_approval datetime; + +UPDATE llx_holiday SET date_approval = date_valid WHERE statut = 3 AND date_approval IS NULL; +UPDATE llx_holiday SET fk_user_approve = fk_user_valid WHERE statut = 3 AND fk_user_approve IS NULL; + +ALTER TABLE llx_inventory ADD COLUMN categories_product VARCHAR(255) DEFAULT NULL AFTER fk_product; + +ALTER TABLE llx_societe ADD last_main_doc VARCHAR(255) NULL AFTER model_pdf; + +ALTER TABLE llx_emailcollector_emailcollector MODIFY COLUMN lastresult text; +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN port varchar(10) DEFAULT '993'; +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN acces_type integer DEFAULT 0; +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN oauth_service varchar(128) DEFAULT NULL; + + +ALTER TABLE llx_bank ADD COLUMN position integer DEFAULT 0; + +ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_product (fk_product); + +INSERT INTO llx_const (name, entity, value, type, visible) VALUES ('MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT', 1, 1000, 'int', 0); + +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN port varchar(10) DEFAULT '993'; + +ALTER TABLE llx_facture ADD COLUMN close_missing_amount double(24, 8) after close_code; + +ALTER TABLE llx_facture_fourn ADD COLUMN close_missing_amount double(24, 8) after close_code; + +ALTER TABLE llx_inventory ADD COLUMN categories_product VARCHAR(255) DEFAULT NULL AFTER fk_product; + +ALTER TABLE llx_product ADD COLUMN sell_or_eat_by_mandatory tinyint DEFAULT 0 NOT NULL AFTER tobatch; + -- Make sell-by or eat-by date mandatory + +ALTER TABLE llx_recruitment_recruitmentcandidature ADD email_date datetime after email_msgid; + +ALTER TABLE llx_ticket ADD COLUMN ip varchar(250); + +ALTER TABLE llx_ticket ADD email_date datetime after email_msgid; + +ALTER TABLE llx_ticket MODIFY COLUMN message mediumtext; + +ALTER TABLE llx_cronjob ADD COLUMN pid integer; + +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-VICTORYDAY', 0, 2, '', 0, 5, 8, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-NATIONALDAY', 0, 2, '', 0, 7, 21, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-ASSOMPTION', 0, 2, '', 0, 8, 15, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-TOUSSAINT', 0, 2, '', 0, 11, 1, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-ARMISTICE', 0, 2, '', 0, 11, 11, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-EASTER', 0, 2, 'eastermonday', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-ASCENSION', 0, 2, 'ascension', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-PENTECOST', 0, 2, 'pentecost', 0, 0, 0, 1); + +ALTER TABLE llx_societe_rib ADD COLUMN state_id integer AFTER default_rib; +ALTER TABLE llx_societe_rib ADD COLUMN fk_country integer AFTER state_id; +ALTER TABLE llx_societe_rib ADD COLUMN currency_code varchar(3) AFTER fk_country; + +ALTER TABLE llx_user_rib ADD COLUMN state_id integer AFTER owner_address; +ALTER TABLE llx_user_rib ADD COLUMN fk_country integer AFTER state_id; +ALTER TABLE llx_user_rib ADD COLUMN currency_code varchar(3) AFTER fk_country; + +CREATE TABLE llx_bank_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_object integer NOT NULL, + import_key varchar(14) +)ENGINE=innodb; + +ALTER TABLE llx_bank_extrafields ADD INDEX idx_bank_extrafields (fk_object); + +ALTER TABLE llx_product_lot ADD COLUMN note_public text DEFAULT NULL after batch; +ALTER TABLE llx_product_lot ADD COLUMN note_private text DEFAULT NULL after note_public; + +ALTER TABLE llx_user CHANGE COLUMN note note_private text; + +UPDATE llx_c_effectif SET code='EF101-500', libelle='101 - 500' WHERE code='EF100-500'; + + +ALTER TABLE llx_product ADD COLUMN fk_default_workstation integer DEFAULT NULL; +ALTER TABLE llx_bom_bomline ADD COLUMN fk_unit integer DEFAULT NULL; + +ALTER TABLE llx_rights_def ADD COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; + +UPDATE llx_establishment SET name='' WHERE name IS NULL; +ALTER TABLE llx_establishment CHANGE name label varchar(255) NOT NULL; + +ALTER TABLE llx_don ADD UNIQUE INDEX idx_don_uk_ref (ref, entity); + +ALTER TABLE llx_don ADD INDEX idx_don_fk_soc (fk_soc); +ALTER TABLE llx_don ADD INDEX idx_don_fk_project (fk_projet); +ALTER TABLE llx_don ADD INDEX idx_don_fk_user_author (fk_user_author); +ALTER TABLE llx_don ADD INDEX idx_don_fk_user_valid (fk_user_valid); + +ALTER TABLE llx_commande ADD COLUMN revenuestamp double(24,8) DEFAULT 0 after localtax2; + +create table llx_element_categorie +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + fk_categorie integer NOT NULL, + fk_element integer NOT NULL, + import_key varchar(14) +)ENGINE=innodb; + +ALTER TABLE llx_element_categorie ADD UNIQUE INDEX idx_element_categorie_idx (fk_element, fk_categorie); + +ALTER TABLE llx_element_categorie ADD CONSTRAINT fk_element_categorie_fk_categorie FOREIGN KEY (fk_categorie) REFERENCES llx_categorie(rowid); + +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('PROJECT_SENTBYMAIL','Project sent by mail','Executed when a project is sent by email','project',144); + +ALTER TABLE llx_socpeople ADD INDEX idx_socpeople_lastname (lastname); + +ALTER TABLE llx_societe ADD INDEX idx_societe_nom(nom); + +ALTER TABLE llx_extrafields MODIFY COLUMN fielddefault text; + +ALTER TABLE llx_bank_url ADD INDEX idx_bank_url_url_id (url_id); + +ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_code varchar(3) NULL; +ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_tx double(24,8) NULL; + +-- VMYSQL4.3 ALTER TABLE llx_hrm_evaluationdet CHANGE COLUMN `rank` rankorder integer; +-- VPGSQL8.2 ALTER TABLE llx_hrm_evaluationdet CHANGE COLUMN rank rankorder integer; +-- VMYSQL4.3 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN `rank` rankorder integer; +-- VPGSQL8.2 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN rank rankorder integer; + + +-- Rename const to hide public and private notes (fix allow notes const was used to hide) +UPDATE llx_const SET name = 'MAIN_LIST_HIDE_PUBLIC_NOTES' WHERE name = 'MAIN_LIST_ALLOW_PUBLIC_NOTES'; +UPDATE llx_const SET name = 'MAIN_LIST_HIDE_PRIVATE_NOTES' WHERE name = 'MAIN_LIST_ALLOW_PRIVATE_NOTES'; + + +ALTER TABLE llx_projet ADD COLUMN date_start_event datetime; +ALTER TABLE llx_projet ADD COLUMN date_end_event datetime; +ALTER TABLE llx_projet ADD COLUMN location varchar(255); + + +ALTER TABLE llx_c_action_trigger MODIFY COLUMN code varchar(128); + +ALTER TABLE llx_overwrite_trans DROP INDEX uk_overwrite_trans; +ALTER TABLE llx_overwrite_trans ADD UNIQUE INDEX uk_overwrite_trans(entity, lang, transkey); + +-- +-- List of all managed triggered events (used for trigger agenda automatic events and for notification) +-- + +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_MODIFY','Third party update','Executed when you update third party','societe',1); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED_WEB','Customer proposal closed signed on portal','Executed when a customer proposal is closed signed on portal','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED_WEB','Customer proposal closed refused on portal','Executed when a customer proposal is closed refused on portal','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_MODIFY','Customer order modified','Executed when a customer order is set modified','commande',5); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_MODIFY','Customer invoice modified','Executed when a customer invoice is modified','facture',7); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',9); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_MODIFY','Price request modified','Executed when a commercial proposal is modified','proposal_supplier',10); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10); +--insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_CREATE','Supplier order created','Executed when a supplier order is created','order_supplier',11); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',12); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',13); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_MODIFY','Supplier order request modified','Executed when a supplier order is modified','order_supplier',13); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',13); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',13); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_CANCEL','Supplier order request canceled','Executed when a supplier order is canceled','order_supplier',13); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_MODIFY','Supplier invoice modified','Executed when a supplier invoice is modified','invoice_supplier',15); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_MODIFY','Contract modified','Executed when a contract is modified','contrat',18); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_MODIFY','Shipping modified','Executed when a shipping is modified','shipping',20); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_DELETE','Shipping sent is deleted','Executed when a shipping is deleted','shipping',21); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_VALIDATE','Reception validated','Executed when a reception is validated','reception',22); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_SENTBYMAIL','Reception sent by mail','Executed when a reception is sent by mail','reception',22); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_MODIFY','Member modified','Executed when a member is modified','member',23); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',25); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',26); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_EXCLUDE','Member excluded','Executed when a member is excluded','member',27); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',30); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_MODIFY','Intervention modify','Executed when a intervention is modify','ficheinter',30); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',32); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',33); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',34); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',35); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',40); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',41); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',42); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_MODIFY','Expense report modified','Executed when an expense report is modified','expensereport',202); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',205); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',211); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_MODIFY','Expense report modified','Executed when an expense report is modified','expensereport',212); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',212); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CREATE','Project creation','Executed when a project is created','project',140); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_MODIFY','Project modified','Executed when a project is modified','project',142); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',143); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_SENTBYMAIL','Project sent by mail','Executed when a project is sent by email','project',144); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is modified','ticket',164); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CLOSE','Ticket closed','Executed when a ticket is closed','ticket',165); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_SENTBYMAIL','Ticket message sent by email','Executed when a message is sent from the ticket record','ticket',166); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',167); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_SENTBYMAIL','Email sent','Executed when an email is sent from user card','user',300); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_CREATE','User created','Executed when a user is created','user',301); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_MODIFY','User update','Executed when a user is updated','user',302); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_DELETE','User update','Executed when a user is deleted','user',303); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_NEW_PASSWORD','User update','Executed when a user is change password','user',304); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_ENABLEDISABLE','User update','Executed when a user is enable or disable','user',305); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_MODIFY','Intervention modified','Executed when a intervention is modified','ficheinter',19); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BOM_VALIDATE','BOM validated','Executed when a BOM is validated','bom',650); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BOM_UNVALIDATE','BOM unvalidated','Executed when a BOM is unvalidated','bom',651); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BOM_CLOSE','BOM disabled','Executed when a BOM is disabled','bom',652); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BOM_REOPEN','BOM reopen','Executed when a BOM is re-open','bom',653); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BOM_DELETE','BOM deleted','Executed when a BOM deleted','bom',654); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MRP_MO_VALIDATE','MO validated','Executed when a MO is validated','mrp',660); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MRP_MO_PRODUCED','MO produced','Executed when a MO is produced','mrp',661); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MRP_MO_DELETE','MO deleted','Executed when a MO is deleted','mrp',662); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MRP_MO_CANCEL','MO canceled','Executed when a MO is canceled','mrp',663); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTACT_CREATE','Contact address created','Executed when a contact is created','contact',50); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTACT_MODIFY','Contact address update','Executed when a contact is updated','contact',51); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTACT_SENTBYMAIL','Mails sent from third party card','Executed when you send email from contact address record','contact',52); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTACT_DELETE','Contact address deleted','Executed when a contact is deleted','contact',53); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTJOBPOSITION_CREATE','Job created','Executed when a job is created','recruitment',7500); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTJOBPOSITION_MODIFY','Job modified','Executed when a job is modified','recruitment',7502); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTJOBPOSITION_SENTBYMAIL','Mails sent from job record','Executed when you send email from job record','recruitment',7504); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTJOBPOSITION_DELETE','Job deleted','Executed when a job is deleted','recruitment',7506); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTCANDIDATURE_CREATE','Candidature created','Executed when a candidature is created','recruitment',7510); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTCANDIDATURE_MODIFY','Candidature modified','Executed when a candidature is modified','recruitment',7512); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTCANDIDATURE_SENTBYMAIL','Mails sent from candidature record','Executed when you send email from candidature record','recruitment',7514); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECRUITMENTCANDIDATURE_DELETE','Candidature deleted','Executed when a candidature is deleted','recruitment',7516); + +-- actions not enabled by default : they are excluded when we enable the module Agenda (except TASK_...) +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TASK_CREATE','Task created','Executed when a project task is created','project',150); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TASK_MODIFY','Task modified','Executed when a project task is modified','project',151); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TASK_DELETE','Task deleted','Executed when a project task is deleted','project',152); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ACTION_CREATE','Action added','Executed when an action is added to the agenda','agenda',700); + +-- holiday +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_CREATE','Holiday created','Executed when a holiday is created','holiday',800); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_MODIFY','Holiday modified','Executed when a holiday is modified','holiday',801); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Holiday validated','Executed when a holiday is validated','holiday',802); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Holiday aprouved','Executed when a holiday is aprouved','holiday',803); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804); + +-- facture rec +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILLREC_CREATE','Template invoices created','Executed when a Template invoices is created','facturerec',900); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILLREC_MODIFY','Template invoices update','Executed when a Template invoices is updated','facturerec',901); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILLREC_DELETE','Template invoices deleted','Executed when a Template invoices is deleted','facturerec',902); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILLREC_AUTOCREATEBILL','Template invoices use to create invoices with auto batch','Executed when a Template invoices is use to create invoice with auto batch','facturerec',903); + + +ALTER TABLE llx_prelevement_facture RENAME TO llx_prelevement; +ALTER TABLE llx_prelevement_facture_demande RENAME TO llx_prelevement_demande; + +ALTER TABLE llx_prelevement ADD COLUMN fk_salary INTEGER NULL AFTER fk_facture_fourn; +ALTER TABLE llx_prelevement_demande ADD COLUMN fk_salary INTEGER NULL AFTER fk_facture_fourn; + +ALTER TABLE llx_user ADD COLUMN birth_place varchar(64); + +ALTER TABLE llx_opensurvey_user_studs ADD COLUMN date_creation datetime NULL; +ALTER TABLE llx_opensurvey_comments ADD COLUMN date_creation datetime NULL; + +ALTER TABLE llx_c_tva ADD COLUMN use_default tinyint DEFAULT 0; diff --git a/htdocs/install/mysql/migration/17.0.0-18.0.0.sql b/htdocs/install/mysql/migration/17.0.0-18.0.0.sql new file mode 100644 index 00000000000..84022422fba --- /dev/null +++ b/htdocs/install/mysql/migration/17.0.0-18.0.0.sql @@ -0,0 +1,58 @@ +-- +-- Be carefull to requests order. +-- This file must be loaded by calling /install/index.php page +-- when current version is 18.0.0 or higher. +-- +-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y +-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y +-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; +-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; +-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60); +-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname; +-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60); +-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name; +-- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field); +-- To drop an index: -- VMYSQL4.1 DROP INDEX nomindex on llx_table; +-- To drop an index: -- VPGSQL8.2 DROP INDEX nomindex; +-- To make pk to be auto increment (mysql): +-- -- VMYSQL4.3 ALTER TABLE llx_table ADD PRIMARY KEY(rowid); +-- -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; +-- To make pk to be auto increment (postgres): +-- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid; +-- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid); +-- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq'); +-- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table; +-- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL; +-- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; +-- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL; +-- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL; +-- To set a field as default NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; +-- Note: fields with type BLOB/TEXT can't have default value. +-- To rebuild sequence for postgresql after insert by forcing id autoincrement fields: +-- -- VPGSQL8.2 SELECT dol_util_rebuild_sequences(); + + +-- v17 + +-- VMYSQL4.3 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN `rank` rankorder integer; +-- VPGSQL8.2 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN rank rankorder integer; + + + +-- v18 + +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CLOSE','Project closed','Executed when a project is closed','project',145); + +-- amount was removed in v12 +ALTER TABLE llx_facture DROP COLUMN amount; + +-- Rename prospect level on contact +ALTER TABLE llx_socpeople CHANGE fk_prospectcontactlevel fk_prospectlevel varchar(12); + +ALTER TABLE llx_facture ADD COLUMN prorata_discount real DEFAULT NULL; + +ALTER TABLE llx_payment_salary MODIFY COLUMN datep datetime; + +INSERT INTO llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1179, 117, 'I-28' , 28, 0, '0', 0, '0', 0, 'IGST', 1); +INSERT INTO llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1176, 117, 'C+S-18', 0, 9, '1', 9, '1', 0, 'CGST+SGST - Same state sales', 1); + diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 4add688b880..a33143f8aef 100644 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -194,11 +194,13 @@ delete from llx_delivery where rowid not in (select fk_target from llx_elemen -- Fix delete element_element orphelins (right side) delete from llx_element_element where targettype='shipping' and fk_target not in (select rowid from llx_expedition); +delete from llx_element_element where targettype='delivery' and fk_target not in (select rowid from llx_delivery); delete from llx_element_element where targettype='propal' and fk_target not in (select rowid from llx_propal); delete from llx_element_element where targettype='facture' and fk_target not in (select rowid from llx_facture); delete from llx_element_element where targettype='commande' and fk_target not in (select rowid from llx_commande); -- Fix delete element_element orphelins (left side) delete from llx_element_element where sourcetype='shipping' and fk_source not in (select rowid from llx_expedition); +delete from llx_element_element where sourcetype='delivery' and fk_source not in (select rowid from llx_delivery); delete from llx_element_element where sourcetype='propal' and fk_source not in (select rowid from llx_propal); delete from llx_element_element where sourcetype='facture' and fk_source not in (select rowid from llx_facture); delete from llx_element_element where sourcetype='commande' and fk_source not in (select rowid from llx_commande); @@ -270,7 +272,7 @@ update llx_product set barcode = null where barcode in ('', '-1', '0'); update llx_societe set barcode = null where barcode in ('', '-1', '0'); --- Sequence to removed duplicated values of llx_links. Use several times if you still have duplicate. +-- Sequence to removed duplicated values of llx_links. Run several times if you still have duplicate. drop table tmp_links_double; --select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2; create table tmp_links_double as (select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2); @@ -279,7 +281,7 @@ delete from llx_links where (rowid, label) in (select max_rowid, label from tmp_ drop table tmp_links_double; --- Sequence to removed duplicated values of barcode in llx_product. Use several times if you still have duplicate. +-- Sequence to removed duplicated values of barcode in llx_product. Run several times if you still have duplicate. drop table tmp_product_double; --select barcode, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_product where barcode is not null group by barcode having count(rowid) >= 2; create table tmp_product_double as (select barcode, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_product where barcode is not null group by barcode having count(rowid) >= 2); @@ -288,7 +290,7 @@ update llx_product set barcode = null where (rowid, barcode) in (select max_rowi drop table tmp_product_double; --- Sequence to removed duplicated values of barcode in llx_societe. Use several times if you still have duplicate. +-- Sequence to removed duplicated values of barcode in llx_societe. Run several times if you still have duplicate. drop table tmp_societe_double; --select barcode, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_societe where barcode is not null group by barcode having count(rowid) >= 2; create table tmp_societe_double as (select barcode, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_societe where barcode is not null group by barcode having count(rowid) >= 2); @@ -297,7 +299,7 @@ update llx_societe set barcode = null where (rowid, barcode) in (select max_rowi drop table tmp_societe_double; --- Sequence to removed duplicated values of llx_accounting_account. Use several times if you still have duplicate. +-- Sequence to removed duplicated values of llx_accounting_account. Run several times if you still have duplicate. drop table tmp_accounting_account_double; --select account_number, fk_pcg_version, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_accounting_account where label is not null group by account_number, fk_pcg_version having count(rowid) >= 2; create table tmp_accounting_account_double as (select account_number, fk_pcg_version, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_accounting_account where label is not null group by account_number, fk_pcg_version having count(rowid) >= 2); @@ -415,6 +417,11 @@ ALTER TABLE llx_accounting_account DROP INDEX uk_accounting_account; ALTER TABLE llx_accounting_account ADD UNIQUE INDEX uk_accounting_account (account_number, entity, fk_pcg_version); +UPDATE llx_facturedet SET fk_code_ventilation = 0 WHERE fk_code_ventilation > 0 AND fk_code_ventilation NOT IN (select rowid FROM llx_accounting_account); +UPDATE llx_facture_fourn_det SET fk_code_ventilation = 0 WHERE fk_code_ventilation > 0 AND fk_code_ventilation NOT IN (select rowid FROM llx_accounting_account); +UPDATE llx_expensereport_det SET fk_code_ventilation = 0 WHERE fk_code_ventilation > 0 AND fk_code_ventilation NOT IN (select rowid FROM llx_accounting_account); + + -- VMYSQL4.1 update llx_projet_task_time set task_datehour = task_date where task_datehour < task_date or task_datehour > DATE_ADD(task_date, interval 1 day); diff --git a/htdocs/install/mysql/tables/llx_actioncomm.key.sql b/htdocs/install/mysql/tables/llx_actioncomm.key.sql index ee16386c7c4..944471620ae 100644 --- a/htdocs/install/mysql/tables/llx_actioncomm.key.sql +++ b/htdocs/install/mysql/tables/llx_actioncomm.key.sql @@ -27,5 +27,6 @@ ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_datep (datep); ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_datep2 (datep2); ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_recurid (recurid); ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_ref_ext (ref_ext); +ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_percent (percent); ALTER TABLE llx_actioncomm ADD UNIQUE INDEX uk_actioncomm_ref (ref, entity); diff --git a/htdocs/install/mysql/tables/llx_actioncomm.sql b/htdocs/install/mysql/tables/llx_actioncomm.sql index d4d0b65ef25..a64513d5d9e 100644 --- a/htdocs/install/mysql/tables/llx_actioncomm.sql +++ b/htdocs/install/mysql/tables/llx_actioncomm.sql @@ -80,6 +80,8 @@ create table llx_actioncomm fk_element integer DEFAULT NULL, -- For link to an element (proposal, invoice, order, ...) elementtype varchar(255) DEFAULT NULL, -- For link to an element (proposal, invoice, order, ...) + ip varchar(250), --ip used to create record (for public submission page) + import_key varchar(14), extraparams varchar(255) -- for other parameters with json format )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_adherent.sql b/htdocs/install/mysql/tables/llx_adherent.sql index 01a87167411..a91de4c65df 100644 --- a/htdocs/install/mysql/tables/llx_adherent.sql +++ b/htdocs/install/mysql/tables/llx_adherent.sql @@ -71,6 +71,7 @@ create table llx_adherent statut smallint NOT NULL DEFAULT 0, public smallint NOT NULL DEFAULT 0, -- certain champ de la fiche sont ils public ou pas ? datefin datetime, -- end date of validity of the contribution / date de fin de validite de la cotisation + default_lang varchar(6) DEFAULT NULL, note_private text DEFAULT NULL, note_public text DEFAULT NULL, model_pdf varchar(255), @@ -81,5 +82,6 @@ create table llx_adherent fk_user_mod integer, fk_user_valid integer, canvas varchar(32), -- type of canvas if used (null by default) + ip varchar(250), -- ip used to create record (for public membership submission page) import_key varchar(14) -- Import key )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_adherent_type.sql b/htdocs/install/mysql/tables/llx_adherent_type.sql index 243372c0452..3473798a6ea 100644 --- a/htdocs/install/mysql/tables/llx_adherent_type.sql +++ b/htdocs/install/mysql/tables/llx_adherent_type.sql @@ -18,22 +18,24 @@ -- -- =================================================================== -- --- statut --- 0 : actif --- 1 : inactif +-- state / statut +-- 0 : active / actif +-- 1 : inactive / inactif +-- create table llx_adherent_type ( rowid integer AUTO_INCREMENT PRIMARY KEY, - entity integer DEFAULT 1 NOT NULL, + entity integer DEFAULT 1 NOT NULL, -- multi company id tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - statut smallint NOT NULL DEFAULT 0, - libelle varchar(50) NOT NULL, - morphy varchar(3) NOT NULL, - duration varchar(6) DEFAULT NULL, - subscription varchar(3) NOT NULL DEFAULT '1', - amount double(24,8) DEFAULT NULL, - vote varchar(3) NOT NULL DEFAULT '1', - note text, - mail_valid text + statut smallint NOT NULL DEFAULT 0, -- state 0 = active , 1 = inactive + libelle varchar(50) NOT NULL, -- label + morphy varchar(3) NOT NULL, -- moral and/or physical entity + duration varchar(6) DEFAULT NULL, -- (minimal) duration of membership + subscription varchar(3) NOT NULL DEFAULT '1', -- subscription with costs / fee or without / for free + amount double(24,8) DEFAULT NULL, -- membership fee + caneditamount integer DEFAULT 0, -- can member edit the amount of subscription + vote varchar(3) NOT NULL DEFAULT '1', -- entitled to vote + note text, -- description / comment + mail_valid text -- text for welcome email )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset-asset.key.sql b/htdocs/install/mysql/tables/llx_asset-asset.key.sql index a82f29ee58b..6175ed8a2b7 100644 --- a/htdocs/install/mysql/tables/llx_asset-asset.key.sql +++ b/htdocs/install/mysql/tables/llx_asset-asset.key.sql @@ -1,4 +1,5 @@ --- Copyright (C) 2018 Alexandre Spangaro +-- ======================================================================== +-- Copyright (C) 2018-2022 OpenDSI -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -12,12 +13,12 @@ -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== +ALTER TABLE llx_asset ADD INDEX idx_asset_fk_asset_model (fk_asset_model); +ALTER TABLE llx_asset ADD INDEX idx_asset_fk_disposal_type (fk_disposal_type); -ALTER TABLE llx_asset ADD INDEX idx_asset_rowid (rowid); -ALTER TABLE llx_asset ADD INDEX idx_asset_ref (ref); -ALTER TABLE llx_asset ADD INDEX idx_asset_entity (entity); - -ALTER TABLE llx_asset ADD INDEX idx_asset_fk_asset_type (fk_asset_type); -ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_asset_type FOREIGN KEY (fk_asset_type) REFERENCES llx_asset_type (rowid); - +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_disposal_type FOREIGN KEY (fk_disposal_type) REFERENCES llx_c_asset_disposal_type (rowid); +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user (rowid); +ALTER TABLE llx_asset ADD CONSTRAINT fk_asset_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset-asset.sql b/htdocs/install/mysql/tables/llx_asset-asset.sql index 52eeda3ba58..2eed188bc14 100644 --- a/htdocs/install/mysql/tables/llx_asset-asset.sql +++ b/htdocs/install/mysql/tables/llx_asset-asset.sql @@ -1,4 +1,5 @@ --- Copyright (C) 2018 Alexandre Spangaro +-- ======================================================================== +-- Copyright (C) 2018-2022 OpenDSI -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -12,23 +13,53 @@ -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see https://www.gnu.org/licenses/. - +-- ======================================================================== +-- +-- Table for fixed asset +-- +-- Data example: +-- INSERT INTO llx_asset (ref, entity, label, fk_asset_model, reversal_amount_ht, acquisition_value_ht, recovered_vat, reversal_date, date_acquisition, date_start, qty, acquisition_type, asset_type, not_depreciated, disposal_date, disposal_amount_ht, fk_disposal_type, disposal_depreciated, disposal_subject_to_vat, note_public, note_private, date_creation, tms, fk_user_creat, fk_user_modif, last_main_doc, import_key, model_pdf, status) VALUES +-- ('LAPTOP', 1, 'LAPTOP xxx for accountancy department', 1, NULL, 1000.00000000, NULL, NULL, '2022-01-18', '2022-01-20', 0, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2022-01-18 14:31:21', '2022-03-09 14:09:46', 1, 1, NULL, NULL, NULL, 0); CREATE TABLE llx_asset( - rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, - ref varchar(128) NOT NULL, - entity integer DEFAULT 1 NOT NULL, - label varchar(255), - amount_ht double(24,8) DEFAULT NULL, - amount_vat double(24,8) DEFAULT NULL, - fk_asset_type integer NOT NULL, - description text, - note_public text, - note_private text, - date_creation datetime NOT NULL, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - fk_user_creat integer NOT NULL, - fk_user_modif integer, - import_key varchar(14), - status integer NOT NULL + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + ref varchar(128) NOT NULL, + entity integer DEFAULT 1 NOT NULL, + label varchar(255), + + fk_asset_model integer, + + reversal_amount_ht double(24,8), + acquisition_value_ht double(24,8) DEFAULT NULL, + recovered_vat double(24,8), + + reversal_date date, + + date_acquisition date NOT NULL, + date_start date NOT NULL, + + qty real DEFAULT 1 NOT NULL, + + acquisition_type smallint DEFAULT 0 NOT NULL, + asset_type smallint DEFAULT 0 NOT NULL, + + not_depreciated integer DEFAULT 0, + + disposal_date date, + disposal_amount_ht double(24,8), + fk_disposal_type integer, + disposal_depreciated integer DEFAULT 0, + disposal_subject_to_vat integer DEFAULT 0, + + note_public text, + note_private text, + + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + last_main_doc varchar(255), + import_key varchar(14), + model_pdf varchar(255), + status integer NOT NULL ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_accountancy_codes_economic-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_economic-asset.key.sql new file mode 100644 index 00000000000..69bc6754f65 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_economic-asset.key.sql @@ -0,0 +1,24 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== + +ALTER TABLE llx_asset_accountancy_codes_economic ADD INDEX idx_asset_ace_rowid (rowid); +ALTER TABLE llx_asset_accountancy_codes_economic ADD UNIQUE uk_asset_ace_fk_asset (fk_asset); +ALTER TABLE llx_asset_accountancy_codes_economic ADD UNIQUE uk_asset_ace_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_accountancy_codes_economic ADD CONSTRAINT fk_asset_ace_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_accountancy_codes_economic ADD CONSTRAINT fk_asset_ace_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_accountancy_codes_economic ADD CONSTRAINT fk_asset_ace_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset_accountancy_codes_economic-asset.sql b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_economic-asset.sql new file mode 100644 index 00000000000..30969e59916 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_economic-asset.sql @@ -0,0 +1,40 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== +-- +-- Table to store the configuration of the accounting accounts of a fixed asset for economic status (fk_asset will be filled and fk_asset_model will be null) +-- or to store the configuration of the accounting accounts for templates of asset (fk_asset_model will be filled and fk_asset will be null) +-- +-- Data example: +-- INSERT INTO llx_asset_accountancy_codes_economic (fk_asset, fk_asset_model, asset, depreciation_asset, depreciation_expense, value_asset_sold, receivable_on_assignment, proceeds_from_sales, vat_collected, vat_deductible, tms, fk_user_modif) VALUES +-- (1, NULL, '2183', '2818', '68112', '675', '465', '775', '44571', '44562', '2022-01-18 14:20:20', 1); + +CREATE TABLE llx_asset_accountancy_codes_economic( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + asset varchar(32), + depreciation_asset varchar(32), + depreciation_expense varchar(32), + value_asset_sold varchar(32), + receivable_on_assignment varchar(32), + proceeds_from_sales varchar(32), + vat_collected varchar(32), + vat_deductible varchar(32), + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_accountancy_codes_fiscal-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_fiscal-asset.key.sql new file mode 100644 index 00000000000..f7a4109b9fa --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_fiscal-asset.key.sql @@ -0,0 +1,24 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== + +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD INDEX idx_asset_acf_rowid (rowid); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD UNIQUE uk_asset_acf_fk_asset (fk_asset); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD UNIQUE uk_asset_acf_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD CONSTRAINT fk_asset_acf_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD CONSTRAINT fk_asset_acf_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_accountancy_codes_fiscal ADD CONSTRAINT fk_asset_acf_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset_accountancy_codes_fiscal-asset.sql b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_fiscal-asset.sql new file mode 100644 index 00000000000..9c005727f81 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_accountancy_codes_fiscal-asset.sql @@ -0,0 +1,35 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== +-- +-- Table to store the configuration of the accounting accounts of a fixed asset for fiscal status +-- +-- Data example: +-- INSERT INTO llx_asset_accountancy_codes_fiscal (fk_asset, fk_asset_model, accelerated_depreciation, endowment_accelerated_depreciation, provision_accelerated_depreciation, tms, fk_user_modif) VALUES +-- (1, NULL, NULL, NULL, NULL, '2022-01-18 14:20:20', 1); + +CREATE TABLE llx_asset_accountancy_codes_fiscal( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + accelerated_depreciation varchar(32), + endowment_accelerated_depreciation varchar(32), + provision_accelerated_depreciation varchar(32), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_depreciation-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_depreciation-asset.key.sql new file mode 100644 index 00000000000..531f88d72ba --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_depreciation-asset.key.sql @@ -0,0 +1,25 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== + +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_rowid (rowid); +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_fk_asset (fk_asset); +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_depreciation_mode (depreciation_mode); +ALTER TABLE llx_asset_depreciation ADD INDEX idx_asset_depreciation_ref (ref); +ALTER TABLE llx_asset_depreciation ADD UNIQUE uk_asset_depreciation_fk_asset (fk_asset, depreciation_mode, ref); + +ALTER TABLE llx_asset_depreciation ADD CONSTRAINT fk_asset_depreciation_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_depreciation ADD CONSTRAINT fk_asset_depreciation_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset_depreciation-asset.sql b/htdocs/install/mysql/tables/llx_asset_depreciation-asset.sql new file mode 100644 index 00000000000..0347e8d112d --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_depreciation-asset.sql @@ -0,0 +1,100 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ========================================================================. +-- +-- Table to store depreciation of a fixed asset +-- +-- Data example: +-- INSERT INTO llx_asset_depreciation (rowid, fk_asset, depreciation_mode, ref, depreciation_date, depreciation_ht, cumulative_depreciation_ht, accountancy_code_debit, accountancy_code_credit, tms, fk_user_modif) VALUES +-- (194, 1, 'economic', '2022-01', '2022-01-31 23:59:59', 2.00000000, 2.00000000, '2818', '68112', '2022-03-09 14:10:29', NULL), +-- (195, 1, 'economic', '2022-02', '2022-02-28 23:59:59', 5.00000000, 7.00000000, '2818', '68112', '2022-03-09 14:10:29', NULL), +-- (314, 1, 'economic', '2022-03', '2022-03-31 23:59:59', 8.33000000, 15.33000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (315, 1, 'economic', '2022-04', '2022-04-30 23:59:59', 8.33000000, 23.66000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (316, 1, 'economic', '2022-05', '2022-05-31 23:59:59', 8.33000000, 31.99000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (317, 1, 'economic', '2022-06', '2022-06-30 23:59:59', 8.33000000, 40.32000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (318, 1, 'economic', '2022-07', '2022-07-31 23:59:59', 8.33000000, 48.65000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (319, 1, 'economic', '2022-08', '2022-08-31 23:59:59', 8.33000000, 56.98000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (320, 1, 'economic', '2022-09', '2022-09-30 23:59:59', 8.33000000, 65.31000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (321, 1, 'economic', '2022-10', '2022-10-31 23:59:59', 8.33000000, 73.64000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (322, 1, 'economic', '2022-11', '2022-11-30 23:59:59', 8.33000000, 81.97000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (323, 1, 'economic', '2022-12', '2022-12-31 23:59:59', 8.33000000, 90.30000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (324, 1, 'economic', '2023-01', '2023-01-31 23:59:59', 8.33000000, 98.63000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (325, 1, 'economic', '2023-02', '2023-02-28 23:59:59', 8.33000000, 106.96000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (326, 1, 'economic', '2023-03', '2023-03-31 23:59:59', 8.33000000, 115.29000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (327, 1, 'economic', '2023-04', '2023-04-30 23:59:59', 8.33000000, 123.62000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (328, 1, 'economic', '2023-05', '2023-05-31 23:59:59', 8.33000000, 131.95000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (329, 1, 'economic', '2023-06', '2023-06-30 23:59:59', 8.33000000, 140.28000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (330, 1, 'economic', '2023-07', '2023-07-31 23:59:59', 8.33000000, 148.61000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (331, 1, 'economic', '2023-08', '2023-08-31 23:59:59', 8.33000000, 156.94000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (332, 1, 'economic', '2023-09', '2023-09-30 23:59:59', 8.33000000, 165.27000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (333, 1, 'economic', '2023-10', '2023-10-31 23:59:59', 8.33000000, 173.60000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (334, 1, 'economic', '2023-11', '2023-11-30 23:59:59', 8.33000000, 181.93000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (335, 1, 'economic', '2023-12', '2023-12-31 23:59:59', 8.33000000, 190.26000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (336, 1, 'economic', '2024-01', '2024-01-31 23:59:59', 8.33000000, 198.59000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (337, 1, 'economic', '2024-02', '2024-02-29 23:59:59', 8.33000000, 206.92000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (338, 1, 'economic', '2024-03', '2024-03-31 23:59:59', 8.33000000, 215.25000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (339, 1, 'economic', '2024-04', '2024-04-30 23:59:59', 8.33000000, 223.58000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (340, 1, 'economic', '2024-05', '2024-05-31 23:59:59', 8.33000000, 231.91000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (341, 1, 'economic', '2024-06', '2024-06-30 23:59:59', 8.33000000, 240.24000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (342, 1, 'economic', '2024-07', '2024-07-31 23:59:59', 8.33000000, 248.57000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (343, 1, 'economic', '2024-08', '2024-08-31 23:59:59', 8.33000000, 256.90000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (344, 1, 'economic', '2024-09', '2024-09-30 23:59:59', 8.33000000, 265.23000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (345, 1, 'economic', '2024-10', '2024-10-31 23:59:59', 8.33000000, 273.56000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (346, 1, 'economic', '2024-11', '2024-11-30 23:59:59', 8.33000000, 281.89000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (347, 1, 'economic', '2024-12', '2024-12-31 23:59:59', 8.33000000, 290.22000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (348, 1, 'economic', '2025-01', '2025-01-31 23:59:59', 8.33000000, 298.55000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (349, 1, 'economic', '2025-02', '2025-02-28 23:59:59', 8.33000000, 306.88000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (350, 1, 'economic', '2025-03', '2025-03-31 23:59:59', 8.33000000, 315.21000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (351, 1, 'economic', '2025-04', '2025-04-30 23:59:59', 8.33000000, 323.54000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (352, 1, 'economic', '2025-05', '2025-05-31 23:59:59', 8.33000000, 331.87000000, '2818', '68112', '2022-03-09 14:15:48', NULL), +-- (353, 1, 'economic', '2025-06', '2025-06-30 23:59:59', 8.33000000, 340.20000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (354, 1, 'economic', '2025-07', '2025-07-31 23:59:59', 8.33000000, 348.53000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (355, 1, 'economic', '2025-08', '2025-08-31 23:59:59', 8.33000000, 356.86000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (356, 1, 'economic', '2025-09', '2025-09-30 23:59:59', 8.33000000, 365.19000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (357, 1, 'economic', '2025-10', '2025-10-31 23:59:59', 8.33000000, 373.52000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (358, 1, 'economic', '2025-11', '2025-11-30 23:59:59', 8.33000000, 381.85000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (359, 1, 'economic', '2025-12', '2025-12-31 23:59:59', 8.33000000, 390.18000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (360, 1, 'economic', '2026-01', '2026-01-31 23:59:59', 8.33000000, 398.51000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (361, 1, 'economic', '2026-02', '2026-02-28 23:59:59', 8.33000000, 406.84000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (362, 1, 'economic', '2026-03', '2026-03-31 23:59:59', 8.33000000, 415.17000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (363, 1, 'economic', '2026-04', '2026-04-30 23:59:59', 8.33000000, 423.50000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (364, 1, 'economic', '2026-05', '2026-05-31 23:59:59', 8.33000000, 431.83000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (365, 1, 'economic', '2026-06', '2026-06-30 23:59:59', 8.33000000, 440.16000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (366, 1, 'economic', '2026-07', '2026-07-31 23:59:59', 8.33000000, 448.49000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (367, 1, 'economic', '2026-08', '2026-08-31 23:59:59', 8.33000000, 456.82000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (368, 1, 'economic', '2026-09', '2026-09-30 23:59:59', 8.33000000, 465.15000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (369, 1, 'economic', '2026-10', '2026-10-31 23:59:59', 8.33000000, 473.48000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (370, 1, 'economic', '2026-11', '2026-11-30 23:59:59', 8.33000000, 481.81000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (371, 1, 'economic', '2026-12', '2026-12-31 23:59:59', 8.33000000, 490.14000000, '2818', '68112', '2022-03-09 14:15:49', NULL), +-- (372, 1, 'economic', '2027-01', '2027-01-31 23:59:59', 9.86000000, 500.00000000, '2818', '68112', '2022-03-09 14:15:49', NULL); + +CREATE TABLE llx_asset_depreciation( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + + fk_asset integer NOT NULL, + depreciation_mode varchar(255) NOT NULL, -- (economic, fiscal or other) + + ref varchar(255) NOT NULL, + depreciation_date datetime NOT NULL, + depreciation_ht double(24,8) NOT NULL, + cumulative_depreciation_ht double(24,8) NOT NULL, + + accountancy_code_debit varchar(32), + accountancy_code_credit varchar(32), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_depreciation_options_economic-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_depreciation_options_economic-asset.key.sql new file mode 100644 index 00000000000..569e4f286a2 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_depreciation_options_economic-asset.key.sql @@ -0,0 +1,24 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== + +ALTER TABLE llx_asset_depreciation_options_economic ADD INDEX idx_asset_doe_rowid (rowid); +ALTER TABLE llx_asset_depreciation_options_economic ADD UNIQUE uk_asset_doe_fk_asset (fk_asset); +ALTER TABLE llx_asset_depreciation_options_economic ADD UNIQUE uk_asset_doe_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_depreciation_options_economic ADD CONSTRAINT fk_asset_doe_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_depreciation_options_economic ADD CONSTRAINT fk_asset_doe_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_depreciation_options_economic ADD CONSTRAINT fk_asset_doe_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset_depreciation_options_economic-asset.sql b/htdocs/install/mysql/tables/llx_asset_depreciation_options_economic-asset.sql new file mode 100644 index 00000000000..e23a2ed1414 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_depreciation_options_economic-asset.sql @@ -0,0 +1,41 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== +-- +-- Table to store economical depreciation of a fixed asset +-- +-- Data example: +-- INSERT INTO llx_asset_depreciation_options_economic (fk_asset, fk_asset_model, depreciation_type, accelerated_depreciation_option, degressive_coefficient, duration, duration_type, amount_base_depreciation_ht, amount_base_deductible_ht, total_amount_last_depreciation_ht, tms, fk_user_modif) VALUES +-- (1, NULL, 1, NULL, 1.75000000, 60, 1, 500.00000000, 0.00000000, 7.00000000, '2022-03-09 14:15:48', 1); + +CREATE TABLE llx_asset_depreciation_options_economic( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + depreciation_type smallint DEFAULT 0 NOT NULL, -- 0:linear, 1:degressive, 2:exceptional + accelerated_depreciation_option integer, -- activate accelerated depreciation mode (fiscal) + degressive_coefficient double(24,8), + duration smallint NOT NULL, + duration_type smallint DEFAULT 0 NOT NULL, -- 0:annual, 1:monthly, 2:daily + + amount_base_depreciation_ht double(24,8), + amount_base_deductible_ht double(24,8), + total_amount_last_depreciation_ht double(24,8), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_depreciation_options_fiscal-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_depreciation_options_fiscal-asset.key.sql new file mode 100644 index 00000000000..1fb678696d1 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_depreciation_options_fiscal-asset.key.sql @@ -0,0 +1,24 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== + +ALTER TABLE llx_asset_depreciation_options_fiscal ADD INDEX idx_asset_dof_rowid (rowid); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD UNIQUE uk_asset_dof_fk_asset (fk_asset); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD UNIQUE uk_asset_dof_fk_asset_model (fk_asset_model); + +ALTER TABLE llx_asset_depreciation_options_fiscal ADD CONSTRAINT fk_asset_dof_asset FOREIGN KEY (fk_asset) REFERENCES llx_asset (rowid); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD CONSTRAINT fk_asset_dof_asset_model FOREIGN KEY (fk_asset_model) REFERENCES llx_asset_model (rowid); +ALTER TABLE llx_asset_depreciation_options_fiscal ADD CONSTRAINT fk_asset_dof_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset_depreciation_options_fiscal-asset.sql b/htdocs/install/mysql/tables/llx_asset_depreciation_options_fiscal-asset.sql new file mode 100644 index 00000000000..3d9d5e9d091 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_depreciation_options_fiscal-asset.sql @@ -0,0 +1,40 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== +-- +-- Table to store fiscal depreciation of a fixed asset +-- +-- Data example: +-- INSERT INTO llx_asset_depreciation_options_fiscal (fk_asset, fk_asset_model, depreciation_type, accelerated_depreciation_option, degressive_coefficient, duration, duration_type, amount_base_depreciation_ht, amount_base_deductible_ht, total_amount_last_depreciation_ht, tms, fk_user_modif) VALUES +-- (1, NULL, 1, NULL, 1.75000000, 60, 1, 500.00000000, 0.00000000, 7.00000000, '2022-03-09 14:15:48', 1); + +CREATE TABLE llx_asset_depreciation_options_fiscal( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + fk_asset integer, + fk_asset_model integer, + + depreciation_type smallint DEFAULT 0 NOT NULL, -- 0:linear, 1:degressive, 2:exceptional + degressive_coefficient double(24,8), + duration smallint NOT NULL, + duration_type smallint DEFAULT 0 NOT NULL, -- 0:annual, 1:monthly, 2:daily + + amount_base_depreciation_ht double(24,8), + amount_base_deductible_ht double(24,8), + total_amount_last_depreciation_ht double(24,8), + + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_modif integer +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_extrafields-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_extrafields-asset.key.sql index fe6bb053ed6..5671e2a5b9f 100644 --- a/htdocs/install/mysql/tables/llx_asset_extrafields-asset.key.sql +++ b/htdocs/install/mysql/tables/llx_asset_extrafields-asset.key.sql @@ -16,5 +16,4 @@ -- -- =================================================================== - ALTER TABLE llx_asset_extrafields ADD INDEX idx_asset_extrafields (fk_object); diff --git a/htdocs/install/mysql/tables/llx_asset_extrafields-asset.sql b/htdocs/install/mysql/tables/llx_asset_extrafields-asset.sql index c93fac7b20a..95cae4315da 100644 --- a/htdocs/install/mysql/tables/llx_asset_extrafields-asset.sql +++ b/htdocs/install/mysql/tables/llx_asset_extrafields-asset.sql @@ -1,3 +1,4 @@ +-- =================================================================== -- Copyright (C) 2018 Alexandre Spangaro -- -- This program is free software; you can redistribute it and/or modify @@ -12,12 +13,15 @@ -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see https://www.gnu.org/licenses/. +-- =================================================================== +-- +-- Table for extrafields of fixed asset +-- create table llx_asset_extrafields ( - rowid integer AUTO_INCREMENT PRIMARY KEY, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - fk_object integer NOT NULL, - import_key varchar(14) -- import key + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_object integer NOT NULL, + import_key varchar(14) -- import key ) ENGINE=innodb; - diff --git a/htdocs/install/mysql/tables/llx_asset_model-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_model-asset.key.sql new file mode 100644 index 00000000000..5c301e5c147 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_model-asset.key.sql @@ -0,0 +1,25 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- ======================================================================== + +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_rowid (rowid); +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_entity (entity); +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_ref (ref); +ALTER TABLE llx_asset_model ADD INDEX idx_asset_model_pays (fk_pays); +ALTER TABLE llx_asset_model ADD UNIQUE INDEX uk_asset_model (entity, ref); + +ALTER TABLE llx_asset_model ADD CONSTRAINT fk_asset_model_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user (rowid); +ALTER TABLE llx_asset_model ADD CONSTRAINT fk_asset_model_user_modif FOREIGN KEY (fk_user_modif) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_asset_model-asset.sql b/htdocs/install/mysql/tables/llx_asset_model-asset.sql new file mode 100644 index 00000000000..8c285515986 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_model-asset.sql @@ -0,0 +1,39 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- ======================================================================== +-- +-- Table for fixed asset model +-- +-- Data example: +-- INSERT INTO llx_asset_model (entity, ref, label, asset_type, note_public, note_private, date_creation, tms, fk_user_creat, fk_user_modif, import_key, status) VALUES +-- (1, 'LAPTOP', 'Laptop', 1, NULL, NULL, '2022-01-18 14:27:09', '2022-01-24 09:31:49', 1, 1, NULL, 1); + +CREATE TABLE llx_asset_model( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + entity integer DEFAULT 1 NOT NULL, -- multi company id + ref varchar(128) NOT NULL, + label varchar(255) NOT NULL, + asset_type smallint NOT NULL, + fk_pays integer DEFAULT 0, + note_public text, + note_private text, + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + import_key varchar(14), + status smallint NOT NULL +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_model_extrafield-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_model_extrafield-asset.key.sql new file mode 100644 index 00000000000..22a6ee89196 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_model_extrafield-asset.key.sql @@ -0,0 +1,18 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- ======================================================================== + +ALTER TABLE llx_asset_model_extrafields ADD INDEX idx_asset_model_extrafields (fk_object); diff --git a/htdocs/install/mysql/tables/llx_asset_model_extrafield-asset.sql b/htdocs/install/mysql/tables/llx_asset_model_extrafield-asset.sql new file mode 100644 index 00000000000..1f42d83fc57 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_asset_model_extrafield-asset.sql @@ -0,0 +1,27 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- ======================================================================== +-- +-- Table for extrafields of fixed asset model +-- + +CREATE TABLE llx_asset_model_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_object integer NOT NULL, + import_key varchar(14) -- import key +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_type-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_type-asset.key.sql deleted file mode 100644 index 4a7c4cb1145..00000000000 --- a/htdocs/install/mysql/tables/llx_asset_type-asset.key.sql +++ /dev/null @@ -1,16 +0,0 @@ --- Copyright (C) 2018 Alexandre Spangaro --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 3 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program. If not, see . - -ALTER TABLE llx_asset_type ADD UNIQUE INDEX uk_asset_type_label (label, entity); diff --git a/htdocs/install/mysql/tables/llx_asset_type-asset.sql b/htdocs/install/mysql/tables/llx_asset_type-asset.sql deleted file mode 100644 index 1205acb959b..00000000000 --- a/htdocs/install/mysql/tables/llx_asset_type-asset.sql +++ /dev/null @@ -1,26 +0,0 @@ --- Copyright (C) 2018 Alexandre Spangaro --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 3 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program. If not, see . - -create table llx_asset_type -( - rowid integer AUTO_INCREMENT PRIMARY KEY, - entity integer DEFAULT 1 NOT NULL, -- multi company id - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - label varchar(50) NOT NULL, - accountancy_code_asset varchar(32), - accountancy_code_depreciation_asset varchar(32), - accountancy_code_depreciation_expense varchar(32), - note text -)ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.key.sql b/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.key.sql deleted file mode 100644 index ec0b4b28619..00000000000 --- a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.key.sql +++ /dev/null @@ -1,17 +0,0 @@ --- Copyright (C) 2018 Alexandre Spangaro --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 3 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program. If not, see . - - -ALTER TABLE llx_asset_type_extrafields ADD INDEX idx_asset_type_extrafields (fk_object); diff --git a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.sql b/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.sql deleted file mode 100644 index 7ff09176216..00000000000 --- a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.sql +++ /dev/null @@ -1,23 +0,0 @@ --- Copyright (C) 2018 Alexandre Spangaro --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 3 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program. If not, see . - -create table llx_asset_type_extrafields -( - rowid integer AUTO_INCREMENT PRIMARY KEY, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - fk_object integer NOT NULL, - import_key varchar(14) -- import key -) ENGINE=innodb; - diff --git a/htdocs/install/mysql/tables/llx_bank.sql b/htdocs/install/mysql/tables/llx_bank.sql index d0a8e34790b..9a1b12d5754 100644 --- a/htdocs/install/mysql/tables/llx_bank.sql +++ b/htdocs/install/mysql/tables/llx_bank.sql @@ -37,6 +37,7 @@ create table llx_bank rappro tinyint default 0, note text, fk_bordereau integer DEFAULT 0, + position integer DEFAULT 0, banque varchar(255), -- banque pour les cheques emetteur varchar(255), -- emetteur du cheque author varchar(40), -- a supprimer apres migration diff --git a/htdocs/install/mysql/tables/llx_bank_extrafields.key.sql b/htdocs/install/mysql/tables/llx_bank_extrafields.key.sql new file mode 100644 index 00000000000..3d308e79684 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_bank_extrafields.key.sql @@ -0,0 +1,20 @@ +-- =================================================================== +-- Copyright (C) 2022 Frédéric France +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- =================================================================== + + +ALTER TABLE llx_bank_extrafields ADD INDEX idx_bank_extrafields (fk_object); diff --git a/htdocs/install/mysql/tables/llx_bank_extrafields.sql b/htdocs/install/mysql/tables/llx_bank_extrafields.sql new file mode 100644 index 00000000000..3ca4f7a84d4 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_bank_extrafields.sql @@ -0,0 +1,25 @@ +-- =================================================================== +-- Copyright (C) 2022 Frédéric France +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- =================================================================== + +CREATE TABLE llx_bank_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_object integer NOT NULL, + import_key varchar(14) +)ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_bank_url.key.sql b/htdocs/install/mysql/tables/llx_bank_url.key.sql index ff8fc50b768..97e6cd2997f 100644 --- a/htdocs/install/mysql/tables/llx_bank_url.key.sql +++ b/htdocs/install/mysql/tables/llx_bank_url.key.sql @@ -18,3 +18,6 @@ ALTER TABLE llx_bank_url ADD UNIQUE INDEX uk_bank_url (fk_bank, url_id, type); + +ALTER TABLE llx_bank_url ADD INDEX idx_bank_url_url_id (url_id); + diff --git a/htdocs/install/mysql/tables/llx_bom_bomline.sql b/htdocs/install/mysql/tables/llx_bom_bomline.sql index e7eae15fc15..eae1f6c6662 100644 --- a/htdocs/install/mysql/tables/llx_bom_bomline.sql +++ b/htdocs/install/mysql/tables/llx_bom_bomline.sql @@ -25,6 +25,7 @@ CREATE TABLE llx_bom_bomline( qty_frozen smallint DEFAULT 0, disable_stock_change smallint DEFAULT 0, efficiency double(24,8) NOT NULL DEFAULT 1, + fk_unit integer NULL, position integer NOT NULL DEFAULT 0 -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal.key.sql b/htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal.key.sql new file mode 100644 index 00000000000..3850933f5df --- /dev/null +++ b/htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal.key.sql @@ -0,0 +1,28 @@ +-- Copyright (C) 2022 Alice Adminson +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + + +-- BEGIN MODULEBUILDER INDEXES +ALTER TABLE llx_bookcal_availabilities ADD INDEX idx_bookcal_availabilities_rowid (rowid); +ALTER TABLE llx_bookcal_availabilities ADD INDEX idx_bookcal_availabilities_ref (ref); +ALTER TABLE llx_bookcal_availabilities ADD CONSTRAINT llx_bookcal_availabilities_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user(rowid); +ALTER TABLE llx_bookcal_availabilities ADD INDEX idx_bookcal_availabilities_status (status); +ALTER TABLE llx_bookcal_availabilities ADD INDEX idx_bookcal_availabilities_type (type); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_bookcal_availabilities ADD UNIQUE INDEX uk_bookcal_availabilities_fieldxy(fieldx, fieldy); + +--ALTER TABLE llx_bookcal_availabilities ADD CONSTRAINT llx_bookcal_availabilities_fk_field FOREIGN KEY (fk_field) REFERENCES llx_bookcal_myotherobject(rowid); + diff --git a/htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal.sql b/htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal.sql new file mode 100644 index 00000000000..8c8625e10cb --- /dev/null +++ b/htdocs/install/mysql/tables/llx_bookcal_availabilities-bookcal.sql @@ -0,0 +1,44 @@ +-- Copyright (C) 2022 Alice Adminson +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + + +CREATE TABLE llx_bookcal_availabilities( + -- BEGIN MODULEBUILDER FIELDS + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + ref varchar(128) NOT NULL, + label varchar(255), + description text, + note_public text, + note_private text, + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + last_main_doc varchar(255), + import_key varchar(14), + model_pdf varchar(255), + status integer NOT NULL, + start date NOT NULL, + end date NOT NULL, + type integer NOT NULL, + duration integer DEFAULT 30 NOT NULL, + startHour integer NOT NULL, + endHour integer NOT NULL + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; + + +SELECT * FROM llx_bookcal_availabilities +WHERE rowid = 1; diff --git a/htdocs/install/mysql/tables/llx_bookcal_booking-bookcal.key.sql b/htdocs/install/mysql/tables/llx_bookcal_booking-bookcal.key.sql new file mode 100644 index 00000000000..548307e4356 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_bookcal_booking-bookcal.key.sql @@ -0,0 +1,29 @@ +-- Copyright (C) 2022 Alice Adminson +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + + +-- BEGIN MODULEBUILDER INDEXES +ALTER TABLE llx_bookcal_booking ADD INDEX idx_bookcal_booking_rowid (rowid); +ALTER TABLE llx_bookcal_booking ADD INDEX idx_bookcal_booking_ref (ref); +ALTER TABLE llx_bookcal_booking ADD INDEX idx_bookcal_booking_fk_soc (fk_soc); +ALTER TABLE llx_bookcal_booking ADD INDEX idx_bookcal_booking_fk_project (fk_project); +ALTER TABLE llx_bookcal_booking ADD CONSTRAINT llx_bookcal_booking_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user(rowid); +ALTER TABLE llx_bookcal_booking ADD INDEX idx_bookcal_booking_status (status); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_bookcal_booking ADD UNIQUE INDEX uk_bookcal_booking_fieldxy(fieldx, fieldy); + +--ALTER TABLE llx_bookcal_booking ADD CONSTRAINT llx_bookcal_booking_fk_field FOREIGN KEY (fk_field) REFERENCES llx_bookcal_myotherobject(rowid); + diff --git a/htdocs/install/mysql/tables/llx_bookcal_booking-bookcal.sql b/htdocs/install/mysql/tables/llx_bookcal_booking-bookcal.sql new file mode 100644 index 00000000000..df3f6384d23 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_bookcal_booking-bookcal.sql @@ -0,0 +1,40 @@ +-- Copyright (C) 2022 Alice Adminson +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + + +CREATE TABLE llx_bookcal_booking( + -- BEGIN MODULEBUILDER FIELDS + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + ref varchar(128) NOT NULL, + fk_soc integer, + fk_project integer, + description text, + note_public text, + note_private text, + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + last_main_doc varchar(255), + import_key varchar(14), + model_pdf varchar(255), + status integer NOT NULL, + firstname varchar(128) NOT NULL, + lastname varchar(128) NOT NULL, + email varchar(128) NOT NULL, + start datetime NOT NULL, + duration integer NOT NULL + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_c_action_trigger.sql b/htdocs/install/mysql/tables/llx_c_action_trigger.sql index 8f7450d0fe9..be1c8580541 100644 --- a/htdocs/install/mysql/tables/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/tables/llx_c_action_trigger.sql @@ -23,7 +23,7 @@ create table llx_c_action_trigger ( rowid integer AUTO_INCREMENT PRIMARY KEY, elementtype varchar(64) NOT NULL, - code varchar(64) NOT NULL, + code varchar(128) NOT NULL, label varchar(128) NOT NULL, description varchar(255), rang integer DEFAULT 0 diff --git a/htdocs/install/mysql/tables/llx_c_asset_disposal_type-asset.key.sql b/htdocs/install/mysql/tables/llx_c_asset_disposal_type-asset.key.sql new file mode 100644 index 00000000000..3f588dc506d --- /dev/null +++ b/htdocs/install/mysql/tables/llx_c_asset_disposal_type-asset.key.sql @@ -0,0 +1,18 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== + +ALTER TABLE llx_c_asset_disposal_type ADD UNIQUE INDEX uk_c_asset_disposal_type(code, entity); diff --git a/htdocs/install/mysql/tables/llx_c_asset_disposal_type-asset.sql b/htdocs/install/mysql/tables/llx_c_asset_disposal_type-asset.sql new file mode 100644 index 00000000000..6eba1e75f14 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_c_asset_disposal_type-asset.sql @@ -0,0 +1,27 @@ +-- ======================================================================== +-- Copyright (C) 2022 OpenDSI +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. +-- ======================================================================== +-- +-- Table to store disposal type for a fixed asset + +CREATE TABLE llx_c_asset_disposal_type +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer NOT NULL DEFAULT 1, + code varchar(16) NOT NULL, + label varchar(50) NOT NULL, + active integer DEFAULT 1 NOT NULL +)ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_c_tva.sql b/htdocs/install/mysql/tables/llx_c_tva.sql index b9a6cc4e12c..9bc77bb69ea 100644 --- a/htdocs/install/mysql/tables/llx_c_tva.sql +++ b/htdocs/install/mysql/tables/llx_c_tva.sql @@ -28,6 +28,7 @@ create table llx_c_tva localtax1_type varchar(10) NOT NULL DEFAULT '0', localtax2 varchar(20) NOT NULL DEFAULT '0', localtax2_type varchar(10) NOT NULL DEFAULT '0', + use_default tinyint DEFAULT 0, -- set to 1 to be the default vat when no vat defined on product recuperableonly integer NOT NULL DEFAULT 0, note varchar(128), active tinyint DEFAULT 1 NOT NULL, diff --git a/htdocs/install/mysql/tables/llx_c_type_contact.sql b/htdocs/install/mysql/tables/llx_c_type_contact.sql index 4b12661657e..e2275e71e5f 100644 --- a/htdocs/install/mysql/tables/llx_c_type_contact.sql +++ b/htdocs/install/mysql/tables/llx_c_type_contact.sql @@ -29,7 +29,7 @@ create table llx_c_type_contact ( - rowid integer PRIMARY KEY, + rowid integer AUTO_INCREMENT PRIMARY KEY, element varchar(30) NOT NULL, source varchar(8) DEFAULT 'external' NOT NULL, code varchar(32) NOT NULL, diff --git a/htdocs/install/mysql/tables/llx_commande.sql b/htdocs/install/mysql/tables/llx_commande.sql index 94b1f38227d..67712178bd3 100644 --- a/htdocs/install/mysql/tables/llx_commande.sql +++ b/htdocs/install/mysql/tables/llx_commande.sql @@ -26,7 +26,6 @@ create table llx_commande entity integer DEFAULT 1 NOT NULL, -- multi company id ref_ext varchar(255), -- reference into an external system (not used by dolibarr) - ref_int varchar(255), -- reference into an internal system (deprecated) ref_client varchar(255), -- reference for customer fk_soc integer NOT NULL, @@ -47,11 +46,14 @@ create table llx_commande remise_percent real default 0, remise_absolue real default 0, remise real default 0, + total_tva double(24,8) default 0, - localtax1 double(24,8) default 0, -- total localtax1 - localtax2 double(24,8) default 0, -- total localtax2 + localtax1 double(24,8) default 0, -- total localtax1 + localtax2 double(24,8) default 0, -- total localtax2 + revenuestamp double(24,8) DEFAULT 0, -- amount total revenuestamp (usefull for proforma that must match invoice) total_ht double(24,8) default 0, total_ttc double(24,8) default 0, + note_private text, note_public text, model_pdf varchar(255), diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql index 9049cf57065..62d62a2ec38 100644 --- a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql @@ -19,3 +19,4 @@ ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_commande (fk_commande); ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_reception (fk_reception); ALTER TABLE llx_commande_fournisseur_dispatch ADD CONSTRAINT fk_commande_fournisseur_dispatch_fk_reception FOREIGN KEY (fk_reception) REFERENCES llx_reception (rowid); +ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_product (fk_product); diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql index 974e10c09ff..058a74eea19 100644 --- a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql @@ -17,6 +17,10 @@ -- This table is just an history table to track all receiving done for a -- particular supplier order. A movement with same information is also done -- into stock_movement so this table may be useless. +-- +-- Detail of each lines of a reception (qty, batch and into wich warehouse is +-- received a purchase order line). +-- This table should be also name llx_receptiondet. -- =================================================================== create table llx_commande_fournisseur_dispatch diff --git a/htdocs/install/mysql/tables/llx_cronjob.key.sql b/htdocs/install/mysql/tables/llx_cronjob.key.sql index d0fac214ba0..a1d7587e217 100644 --- a/htdocs/install/mysql/tables/llx_cronjob.key.sql +++ b/htdocs/install/mysql/tables/llx_cronjob.key.sql @@ -21,3 +21,5 @@ ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datelastrun (datelastrun); ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datenextrun (datenextrun); ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datestart (datestart); ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_dateend (dateend); + +ALTER TABLE llx_cronjob ADD UNIQUE INDEX uk_cronjob (label, entity); diff --git a/htdocs/install/mysql/tables/llx_cronjob.sql b/htdocs/install/mysql/tables/llx_cronjob.sql index 69d30d924e8..012801c28bb 100644 --- a/htdocs/install/mysql/tables/llx_cronjob.sql +++ b/htdocs/install/mysql/tables/llx_cronjob.sql @@ -24,7 +24,7 @@ CREATE TABLE llx_cronjob tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, datec datetime, jobtype varchar(10) NOT NULL, -- 'method', 'function' or 'command' - label text NOT NULL, + label varchar(255) NOT NULL, command varchar(255), classesname varchar(255), -- when jobtype is 'method', name of the class file containing the method. objectname varchar(255), @@ -47,6 +47,7 @@ CREATE TABLE llx_cronjob autodelete integer DEFAULT 0, -- 0=Job is kept unchanged once nbrun > maxrun or date > dateend, 2=Job must be archived (archive = status 2) once nbrun > maxrun or date > dateend status integer NOT NULL DEFAULT 1, -- 0=disabled, 1=enabled, 2=archived processing integer NOT NULL DEFAULT 0, -- 1=process currently running + pid integer, -- The cronjob PID, NULL if not in processing test varchar(255) DEFAULT '1', fk_user_author integer DEFAULT NULL, fk_user_mod integer DEFAULT NULL, diff --git a/htdocs/install/mysql/tables/llx_delivery.sql b/htdocs/install/mysql/tables/llx_delivery.sql index 8216b5cf145..d1e7f4b42c2 100644 --- a/htdocs/install/mysql/tables/llx_delivery.sql +++ b/htdocs/install/mysql/tables/llx_delivery.sql @@ -26,7 +26,6 @@ create table llx_delivery fk_soc integer NOT NULL, ref_ext varchar(255), -- reference into an external system (not used by dolibarr) - ref_int varchar(255), -- reference into an internal system (used by dolibarr to store extern id like paypal info) ref_customer varchar(255), -- customer number date_creation datetime, -- date de creation diff --git a/htdocs/install/mysql/tables/llx_don-don.key.sql b/htdocs/install/mysql/tables/llx_don-don.key.sql new file mode 100644 index 00000000000..2aef1dbd5be --- /dev/null +++ b/htdocs/install/mysql/tables/llx_don-don.key.sql @@ -0,0 +1,29 @@ +-- =================================================================== +-- Copyright (C) 2022 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- =================================================================== + + +ALTER TABLE llx_don ADD UNIQUE INDEX idx_don_uk_ref (ref, entity); + +ALTER TABLE llx_don ADD INDEX idx_don_fk_soc (fk_soc); +ALTER TABLE llx_don ADD INDEX idx_don_fk_project (fk_project); +ALTER TABLE llx_don ADD INDEX idx_don_fk_user_author (fk_user_author); +ALTER TABLE llx_don ADD INDEX idx_don_fk_user_valid (fk_user_valid); + +--ALTER TABLE llx_don ADD CONSTRAINT fk_don_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (rowid); +--ALTER TABLE llx_don ADD CONSTRAINT fk_don_fk_user_author FOREIGN KEY (fk_user_author) REFERENCES llx_user (rowid); +--ALTER TABLE llx_don ADD CONSTRAINT fk_don_fk_user_valid FOREIGN KEY (fk_user_valid) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_element_tag.key.sql b/htdocs/install/mysql/tables/llx_element_categorie.key.sql similarity index 72% rename from htdocs/install/mysql/tables/llx_element_tag.key.sql rename to htdocs/install/mysql/tables/llx_element_categorie.key.sql index d3a0b38afa9..9bc70cf0863 100644 --- a/htdocs/install/mysql/tables/llx_element_tag.key.sql +++ b/htdocs/install/mysql/tables/llx_element_categorie.key.sql @@ -1,5 +1,5 @@ -- ============================================================================ --- Copyright (C) 2021 Maxime Kohlhaas +-- Copyright (C) 2022 Charlene Benke -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -16,6 +16,7 @@ -- -- ============================================================================ -ALTER TABLE llx_element_tag ADD UNIQUE INDEX idx_element_tag_uk (fk_categorie, fk_element); -ALTER TABLE llx_element_tag ADD CONSTRAINT fk_element_tag_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid); +ALTER TABLE llx_element_categorie ADD UNIQUE INDEX idx_element_categorie_idx (fk_element, fk_categorie); + +ALTER TABLE llx_element_categorie ADD CONSTRAINT fk_element_categorie_fk_categorie FOREIGN KEY (fk_categorie) REFERENCES llx_categorie(rowid); diff --git a/htdocs/install/mysql/tables/llx_element_tag.sql b/htdocs/install/mysql/tables/llx_element_categorie.sql similarity index 90% rename from htdocs/install/mysql/tables/llx_element_tag.sql rename to htdocs/install/mysql/tables/llx_element_categorie.sql index d43ced98130..a1c7fddb0eb 100644 --- a/htdocs/install/mysql/tables/llx_element_tag.sql +++ b/htdocs/install/mysql/tables/llx_element_categorie.sql @@ -1,5 +1,5 @@ -- ============================================================================ --- Copyright (C) 2021 Maxime Kohlhaas +-- Copyright (C) 2022 charlene Benke -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ -- -- ============================================================================ -create table llx_element_tag +create table llx_element_categorie ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_categorie integer NOT NULL, diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql index b62a9b6ba7f..4119e7aac08 100644 --- a/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql @@ -16,30 +16,33 @@ CREATE TABLE llx_emailcollector_emailcollector( -- BEGIN MODULEBUILDER FIELDS - rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, - entity integer DEFAULT 1 NOT NULL, + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + entity integer DEFAULT 1 NOT NULL, ref varchar(128) NOT NULL, - label varchar(255), + label varchar(255), description text, host varchar(255), + port varchar(10) DEFAULT '993', hostcharset varchar(16) DEFAULT 'UTF-8', - login varchar(128), + login varchar(128), + acces_type integer DEFAULT 0, + oauth_service varchar(128), password varchar(128), - source_directory varchar(255) NOT NULL, + source_directory varchar(255) DEFAULT 'Inbox' NOT NULL, target_directory varchar(255), maxemailpercollect integer DEFAULT 100, - datelastresult datetime, - codelastresult varchar(16), - lastresult varchar(255), + datelastresult datetime, + codelastresult varchar(16), + lastresult text, datelastok datetime, - note_public text, - note_private text, - date_creation datetime NOT NULL, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - fk_user_creat integer NOT NULL, - fk_user_modif integer, + note_public text, + note_private text, + date_creation datetime NOT NULL, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer NOT NULL, + fk_user_modif integer, position INTEGER NOT NULL DEFAULT 0, - import_key varchar(14), + import_key varchar(14), status integer NOT NULL -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_entrepot.sql b/htdocs/install/mysql/tables/llx_entrepot.sql index b2e814c15c6..4b93106e0d4 100644 --- a/htdocs/install/mysql/tables/llx_entrepot.sql +++ b/htdocs/install/mysql/tables/llx_entrepot.sql @@ -35,6 +35,8 @@ create table llx_entrepot fk_pays integer DEFAULT 0, phone varchar(20), -- phone number fax varchar(20), -- fax number + barcode varchar(180) DEFAULT NULL, -- barcode + fk_barcode_type integer DEFAULT NULL, -- barcode type warehouse_usage integer DEFAULT 1, -- 1=internal, 2=external (virtual warehouse or stock out of company) statut tinyint DEFAULT 1, -- 1 open, 0 close fk_user_author integer, diff --git a/htdocs/install/mysql/tables/llx_establishment.sql b/htdocs/install/mysql/tables/llx_establishment.sql index 7159a53059c..a3542f6d9d6 100644 --- a/htdocs/install/mysql/tables/llx_establishment.sql +++ b/htdocs/install/mysql/tables/llx_establishment.sql @@ -23,6 +23,7 @@ CREATE TABLE llx_establishment ( rowid integer NOT NULL auto_increment PRIMARY KEY, entity integer NOT NULL DEFAULT 1, ref varchar(30), + label varchar(255) NOT NULL, name varchar(128), address varchar(255), zip varchar(25), diff --git a/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql b/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql index 973c738a076..0b5654ff3de 100644 --- a/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql +++ b/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql @@ -35,6 +35,7 @@ CREATE TABLE llx_eventorganization_conferenceorboothattendee( fk_user_creat integer, fk_user_modif integer, last_main_doc varchar(255), + ip varchar(250), --ip used to create record (for public submission page) import_key varchar(14), model_pdf varchar(255), status smallint NOT NULL diff --git a/htdocs/install/mysql/tables/llx_expedition.sql b/htdocs/install/mysql/tables/llx_expedition.sql index 4214fef7f44..f61ab8224f0 100644 --- a/htdocs/install/mysql/tables/llx_expedition.sql +++ b/htdocs/install/mysql/tables/llx_expedition.sql @@ -29,7 +29,6 @@ create table llx_expedition fk_projet integer DEFAULT NULL, ref_ext varchar(255), -- reference into an external system (not used by dolibarr) - ref_int varchar(255), -- reference into an internal system (used by dolibarr to store extern id like paypal info) ref_customer varchar(255), -- customer number date_creation datetime, -- date de creation diff --git a/htdocs/install/mysql/tables/llx_extrafields.sql b/htdocs/install/mysql/tables/llx_extrafields.sql index 33a317d4abd..37deb0a227a 100644 --- a/htdocs/install/mysql/tables/llx_extrafields.sql +++ b/htdocs/install/mysql/tables/llx_extrafields.sql @@ -27,7 +27,7 @@ create table llx_extrafields type varchar(8), size varchar(8) DEFAULT NULL, fieldcomputed text, - fielddefault varchar(255), + fielddefault text, fieldunique integer DEFAULT 0, fieldrequired integer DEFAULT 0, perms varchar(255), -- not used yet diff --git a/htdocs/install/mysql/tables/llx_facture.sql b/htdocs/install/mysql/tables/llx_facture.sql index 8c7e2db385c..6e54df4eb32 100644 --- a/htdocs/install/mysql/tables/llx_facture.sql +++ b/htdocs/install/mysql/tables/llx_facture.sql @@ -30,7 +30,6 @@ create table llx_facture entity integer DEFAULT 1 NOT NULL, -- multi company id ref_ext varchar(255), -- reference into an external system (not used by dolibarr) - ref_int varchar(255), -- reference into an internal system (used by dolibarr to store extern id like paypal info) ref_client varchar(255), -- reference for customer type smallint DEFAULT 0 NOT NULL, -- type of invoice @@ -40,7 +39,7 @@ create table llx_facture date_pointoftax date DEFAULT NULL, -- date point of tax (for GB) date_valid date, -- date validation tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- last modification date - date_closing datetime, -- date de cloture + date_closing datetime, -- date de cloture paye smallint DEFAULT 0 NOT NULL, remise_percent real DEFAULT 0, -- remise relative @@ -48,6 +47,7 @@ create table llx_facture remise real DEFAULT 0, -- remise totale calculee close_code varchar(16), -- Code motif cloture sans paiement complet + close_missing_amount double(24,8), -- Amount missing when closing with a not complete payment close_note varchar(128), -- Commentaire cloture sans paiement complet total_tva double(24,8) DEFAULT 0, -- amount total tva apres remise totale @@ -62,7 +62,7 @@ create table llx_facture fk_user_author integer, -- user making creation fk_user_modif integer, -- user making last change fk_user_valid integer, -- user validating - fk_user_closing integer, -- user closing + fk_user_closing integer, -- user closing module_source varchar(32), -- name of module when invoice generated by a dedicated module (POS, ...) pos_source varchar(32), -- numero of POS terminal when order is generated by a POS module, IDsession@IDwebsite when order is generated for a website basket. @@ -81,18 +81,20 @@ create table llx_facture note_private text, note_public text, model_pdf varchar(255), - last_main_doc varchar(255), -- relative filepath+filename of last main generated document + last_main_doc varchar(255), -- relative filepath+filename of last main generated document fk_incoterms integer, -- for incoterms location_incoterms varchar(255), -- for incoterms fk_transport_mode integer, -- for intracomm report + prorata_discount real DEFAULT NULL, -- % of the prorata discount (to know how to add prorata discount lines for each vat rate in the invoice) + situation_cycle_ref smallint, -- situation cycle reference. A key that is similar for all the serie. situation_counter smallint, -- situation counter. The number into the serie: 1, 2, ... situation_final smallint, -- 0 by default, 1 it if is the final invoice. - retained_warranty real DEFAULT NULL, -- % of retained warranty + retained_warranty real DEFAULT NULL, -- % of the retained warranty (to calculate the amount to pay later) retained_warranty_date_limit date DEFAULT NULL, retained_warranty_fk_cond_reglement integer DEFAULT NULL, -- payment condition of retained warranty @@ -100,9 +102,9 @@ create table llx_facture extraparams varchar(255), -- for other parameters with json format fk_multicurrency integer, - multicurrency_code varchar(3), + multicurrency_code varchar(3), multicurrency_tx double(24,8) DEFAULT 1, - multicurrency_total_ht double(24,8) DEFAULT 0, + multicurrency_total_ht double(24,8) DEFAULT 0, multicurrency_total_tva double(24,8) DEFAULT 0, multicurrency_total_ttc double(24,8) DEFAULT 0 )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_facture_fourn.sql b/htdocs/install/mysql/tables/llx_facture_fourn.sql index 9ceff4e4fa9..3a304567beb 100644 --- a/htdocs/install/mysql/tables/llx_facture_fourn.sql +++ b/htdocs/install/mysql/tables/llx_facture_fourn.sql @@ -44,6 +44,7 @@ create table llx_facture_fourn remise double(24,8) DEFAULT 0, close_code varchar(16), -- Code motif cloture sans paiement complet + close_missing_amount double(24,8), -- Amount missing when closing with a not complete payment close_note varchar(128), -- Commentaire cloture sans paiement complet tva double(24,8) DEFAULT 0, diff --git a/htdocs/install/mysql/tables/llx_facture_fourn_det_rec.extrafields.key.sql b/htdocs/install/mysql/tables/llx_facture_fourn_det_rec_extrafields.key.sql similarity index 100% rename from htdocs/install/mysql/tables/llx_facture_fourn_det_rec.extrafields.key.sql rename to htdocs/install/mysql/tables/llx_facture_fourn_det_rec_extrafields.key.sql diff --git a/htdocs/install/mysql/tables/llx_facture_fourn_det_rec.extrafields.sql b/htdocs/install/mysql/tables/llx_facture_fourn_det_rec_extrafields.sql similarity index 100% rename from htdocs/install/mysql/tables/llx_facture_fourn_det_rec.extrafields.sql rename to htdocs/install/mysql/tables/llx_facture_fourn_det_rec_extrafields.sql diff --git a/htdocs/install/mysql/tables/llx_facture_fourn_rec.extrafields.key.sql b/htdocs/install/mysql/tables/llx_facture_fourn_rec_extrafields.key.sql similarity index 100% rename from htdocs/install/mysql/tables/llx_facture_fourn_rec.extrafields.key.sql rename to htdocs/install/mysql/tables/llx_facture_fourn_rec_extrafields.key.sql diff --git a/htdocs/install/mysql/tables/llx_facture_fourn_rec.extrafields.sql b/htdocs/install/mysql/tables/llx_facture_fourn_rec_extrafields.sql similarity index 100% rename from htdocs/install/mysql/tables/llx_facture_fourn_rec.extrafields.sql rename to htdocs/install/mysql/tables/llx_facture_fourn_rec_extrafields.sql diff --git a/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql b/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql index ef799ea379a..bdef744df49 100644 --- a/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql +++ b/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql @@ -41,7 +41,6 @@ create table llx_fichinterdet_rec localtax2_type VARCHAR(1) NULL DEFAULT NULL, qty double NULL DEFAULT NULL, remise_percent double NULL DEFAULT 0, - remise double NULL DEFAULT 0, fk_remise_except integer NULL DEFAULT NULL, price DOUBLE(24, 8) NULL DEFAULT NULL, total_tva DOUBLE(24, 8) NULL DEFAULT NULL, @@ -55,7 +54,6 @@ create table llx_fichinterdet_rec buy_price_ht DOUBLE(24, 8) NULL DEFAULT 0, fk_product_fournisseur_price integer NULL DEFAULT NULL, fk_code_ventilation integer NOT NULL DEFAULT 0, - fk_export_commpta integer NOT NULL DEFAULT 0, special_code integer UNSIGNED NULL DEFAULT 0, fk_unit integer NULL DEFAULT NULL, import_key varchar(14) NULL DEFAULT NULL diff --git a/htdocs/install/mysql/tables/llx_holiday.sql b/htdocs/install/mysql/tables/llx_holiday.sql index be468bd32a5..c6af12d453c 100644 --- a/htdocs/install/mysql/tables/llx_holiday.sql +++ b/htdocs/install/mysql/tables/llx_holiday.sql @@ -34,10 +34,10 @@ halfday integer DEFAULT 0, -- 0=start morning and end afternoon, -1=st nb_open_day double(24,8) DEFAULT NULL, -- denormalized number of open days of holiday. Not always set. More reliable when re-calculated with num_open_days(date_debut, date_fin, halfday). statut integer NOT NULL DEFAULT 1, -- status of leave request fk_validator integer NOT NULL, -- who should approve the leave -date_valid DATETIME DEFAULT NULL, -- date approval (currently both date valid and date_approval) -fk_user_valid integer DEFAULT NULL, -- user approval (currently both user valid and user that approved) -date_approve DATETIME DEFAULT NULL, -- date approval (not used yet) -fk_user_approve integer DEFAULT NULL, -- user approval (not used yet) +date_valid DATETIME DEFAULT NULL, -- date validation +fk_user_valid integer DEFAULT NULL, -- user validation +date_approval DATETIME DEFAULT NULL, -- date approval +fk_user_approve integer DEFAULT NULL, -- user approval date_refuse DATETIME DEFAULT NULL, fk_user_refuse integer DEFAULT NULL, date_cancel DATETIME DEFAULT NULL, diff --git a/htdocs/install/mysql/tables/llx_inventory-stock.sql b/htdocs/install/mysql/tables/llx_inventory-stock.sql index c25ccb9767b..0c7a6d2eb49 100644 --- a/htdocs/install/mysql/tables/llx_inventory-stock.sql +++ b/htdocs/install/mysql/tables/llx_inventory-stock.sql @@ -28,8 +28,9 @@ CREATE TABLE llx_inventory fk_user_modif integer, -- user making last change fk_user_valid integer, -- valideur de la fiche fk_warehouse integer DEFAULT NULL, - fk_product integer DEFAULT NULL, - status integer DEFAULT 0, + fk_product integer DEFAULT NULL, + categories_product varchar(255) DEFAULT NULL, -- product categories id separated by comma + status integer DEFAULT 0, title varchar(255) NOT NULL, date_inventory datetime DEFAULT NULL, date_validation datetime DEFAULT NULL, diff --git a/htdocs/install/mysql/tables/llx_loan_schedule-loan.key.sql b/htdocs/install/mysql/tables/llx_loan_schedule-loan.key.sql new file mode 100644 index 00000000000..8d47d879a2d --- /dev/null +++ b/htdocs/install/mysql/tables/llx_loan_schedule-loan.key.sql @@ -0,0 +1,20 @@ +-- =================================================================== +-- Copyright (C) 2022 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- =================================================================== + +ALTER TABLE llx_loan_schedule ADD UNIQUE INDEX uk_loan_schedule_ref (fk_loan, datep); + diff --git a/htdocs/install/mysql/tables/llx_loan_schedule-loan.sql b/htdocs/install/mysql/tables/llx_loan_schedule-loan.sql index dd68a426e61..0e3eba210a8 100644 --- a/htdocs/install/mysql/tables/llx_loan_schedule-loan.sql +++ b/htdocs/install/mysql/tables/llx_loan_schedule-loan.sql @@ -23,7 +23,7 @@ create table llx_loan_schedule fk_loan integer, datec datetime, -- creation date tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - datep datetime, -- payment date + datep datetime, -- payment date expected amount_capital double(24,8) DEFAULT 0, amount_insurance double(24,8) DEFAULT 0, amount_interest double(24,8) DEFAULT 0, diff --git a/htdocs/install/mysql/tables/llx_mailing_cibles-mailing.sql b/htdocs/install/mysql/tables/llx_mailing_cibles-mailing.sql index da0b6c1683a..3c38eedaaaf 100644 --- a/htdocs/install/mysql/tables/llx_mailing_cibles-mailing.sql +++ b/htdocs/install/mysql/tables/llx_mailing_cibles-mailing.sql @@ -32,7 +32,7 @@ create table llx_mailing_cibles statut smallint NOT NULL DEFAULT 0, -- -1 = error, 0 = not sent, ... source_url varchar(255), source_id integer, - source_type varchar(16), + source_type varchar(32), date_envoi datetime, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, error_text varchar(255) -- text with error if statut is -1 diff --git a/htdocs/install/mysql/tables/llx_oauth_token.sql b/htdocs/install/mysql/tables/llx_oauth_token.sql index 62542d13401..7d33b0ea8cb 100644 --- a/htdocs/install/mysql/tables/llx_oauth_token.sql +++ b/htdocs/install/mysql/tables/llx_oauth_token.sql @@ -20,6 +20,7 @@ CREATE TABLE llx_oauth_token ( service varchar(36), -- What king of key or token: 'Google', 'Stripe', 'auth-public-key', ... token text, -- token in serialize format, of an object StdOAuth2Token of library phpoauth2. Deprecated, use tokenstring instead. tokenstring text, -- token in json or text format. Value depends on 'service'. For example for an OAUTH service: '{"access_token": "sk_test_cccc", "refresh_token": "rt_aaa", "token_type": "bearer", ..., "scope": "read_write"} + state text, -- the state (list of permission) the token was obtained for fk_soc integer, -- Id of thirdparty in llx_societe fk_user integer, -- Id of user in llx_user fk_adherent integer, -- Id of member in llx_adherent diff --git a/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql b/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql index 52d938b7c47..b447431cca5 100644 --- a/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql +++ b/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql @@ -21,5 +21,7 @@ CREATE TABLE llx_opensurvey_comments ( comment text NOT NULL, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, usercomment text + date_creation datetime NOT NULL, + ip varchar(250), --ip used to create record (for public submission page) ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql b/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql index 03ad9b35ec5..26de6ff8a21 100644 --- a/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql +++ b/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql @@ -19,6 +19,8 @@ CREATE TABLE llx_opensurvey_user_studs ( id_users INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, nom VARCHAR(64) NOT NULL, id_sondage VARCHAR(16) NOT NULL, - reponses VARCHAR(100) NOT NULL, -- Not used for 'F' surveys + reponses VARCHAR(200) NOT NULL, -- Not used for 'F' surveys tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + date_creation datetime NOT NULL, + ip varchar(250), --ip used to create record (for public submission page) ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_overwrite_trans.key.sql b/htdocs/install/mysql/tables/llx_overwrite_trans.key.sql index 617036e66ee..7dd3156d2e5 100644 --- a/htdocs/install/mysql/tables/llx_overwrite_trans.key.sql +++ b/htdocs/install/mysql/tables/llx_overwrite_trans.key.sql @@ -17,5 +17,4 @@ -- =========================================================================== -ALTER TABLE llx_overwrite_trans ADD UNIQUE INDEX uk_overwrite_trans(lang, transkey); - +ALTER TABLE llx_overwrite_trans ADD UNIQUE INDEX uk_overwrite_trans(entity, lang, transkey); diff --git a/htdocs/install/mysql/tables/llx_partnership-partnership.sql b/htdocs/install/mysql/tables/llx_partnership-partnership.sql index 8f83e2e82e5..8c616f8f62b 100644 --- a/htdocs/install/mysql/tables/llx_partnership-partnership.sql +++ b/htdocs/install/mysql/tables/llx_partnership-partnership.sql @@ -19,7 +19,7 @@ CREATE TABLE llx_partnership( rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, ref varchar(128) DEFAULT '(PROV)' NOT NULL, - status smallint NOT NULL DEFAULT '0', + status smallint DEFAULT 0 NOT NULL, fk_type integer DEFAULT 0 NOT NULL, fk_soc integer, fk_member integer, @@ -28,7 +28,7 @@ CREATE TABLE llx_partnership( entity integer DEFAULT 1 NOT NULL, -- multi company id, 0 = all reason_decline_or_cancel text NULL, date_creation datetime NOT NULL, - fk_user_creat integer NOT NULL, + fk_user_creat integer NULL, -- can be null if created from public page tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, fk_user_modif integer, note_private text, @@ -37,6 +37,7 @@ CREATE TABLE llx_partnership( url_to_check varchar(255), -- url to check to find a specific keyword (defined into llx_c_partnership) to keep status of partnership valid count_last_url_check_error integer DEFAULT '0', -- last result of check of keyword into url last_check_backlink datetime NULL, -- date of last check of keyword into url + ip varchar(250), import_key varchar(14), model_pdf varchar(255) ) ENGINE=innodb; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_payment_salary.sql b/htdocs/install/mysql/tables/llx_payment_salary.sql index 308e70effc2..0dd24eb199d 100644 --- a/htdocs/install/mysql/tables/llx_payment_salary.sql +++ b/htdocs/install/mysql/tables/llx_payment_salary.sql @@ -23,7 +23,7 @@ create table llx_payment_salary tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, datec datetime, -- Create date fk_user integer DEFAULT NULL, - datep date, -- payment date + datep datetime, -- payment date datev date, -- value date (this field should not be here, only into bank tables) salary double(24,8), -- salary of user when payment was done amount double(24,8) NOT NULL DEFAULT 0, diff --git a/htdocs/install/mysql/tables/llx_prelevement_facture.key.sql b/htdocs/install/mysql/tables/llx_prelevement.key.sql similarity index 76% rename from htdocs/install/mysql/tables/llx_prelevement_facture.key.sql rename to htdocs/install/mysql/tables/llx_prelevement.key.sql index bc8b1bd8386..c0178995895 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_facture.key.sql +++ b/htdocs/install/mysql/tables/llx_prelevement.key.sql @@ -18,8 +18,8 @@ -- ============================================================================ -ALTER TABLE llx_prelevement_facture ADD INDEX idx_prelevement_facture_fk_prelevement_lignes (fk_prelevement_lignes); +ALTER TABLE llx_prelevement ADD INDEX idx_prelevement_fk_prelevement_lignes (fk_prelevement_lignes); -ALTER TABLE llx_prelevement_facture ADD CONSTRAINT fk_prelevement_facture_fk_prelevement_lignes FOREIGN KEY (fk_prelevement_lignes) REFERENCES llx_prelevement_lignes (rowid); +ALTER TABLE llx_prelevement ADD CONSTRAINT fk_prelevement_fk_prelevement_lignes FOREIGN KEY (fk_prelevement_lignes) REFERENCES llx_prelevement_lignes (rowid); diff --git a/htdocs/install/mysql/tables/llx_prelevement_facture.sql b/htdocs/install/mysql/tables/llx_prelevement.sql similarity index 90% rename from htdocs/install/mysql/tables/llx_prelevement_facture.sql rename to htdocs/install/mysql/tables/llx_prelevement.sql index 53a329f4376..597cdb4a79f 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_facture.sql +++ b/htdocs/install/mysql/tables/llx_prelevement.sql @@ -16,11 +16,11 @@ -- -- =================================================================== -create table llx_prelevement_facture +create table llx_prelevement ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_facture integer NULL, - fk_facture_fourn integer NULL, + fk_facture_fourn integer NULL, + fk_salary integer NULL, fk_prelevement_lignes integer NOT NULL - )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_prelevement_facture_demande.key.sql b/htdocs/install/mysql/tables/llx_prelevement_demande.key.sql similarity index 78% rename from htdocs/install/mysql/tables/llx_prelevement_facture_demande.key.sql rename to htdocs/install/mysql/tables/llx_prelevement_demande.key.sql index 4f9aedb9cdf..5e047323189 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_facture_demande.key.sql +++ b/htdocs/install/mysql/tables/llx_prelevement_demande.key.sql @@ -17,6 +17,6 @@ -- =================================================================== -ALTER TABLE llx_prelevement_facture_demande ADD INDEX idx_prelevement_facture_demande_fk_facture (fk_facture); -ALTER TABLE llx_prelevement_facture_demande ADD INDEX idx_prelevement_facture_demande_fk_facture_fourn (fk_facture_fourn); +ALTER TABLE llx_prelevement_demande ADD INDEX idx_prelevement_demande_fk_facture (fk_facture); +ALTER TABLE llx_prelevement_demande ADD INDEX idx_prelevement_demande_fk_facture_fourn (fk_facture_fourn); diff --git a/htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql b/htdocs/install/mysql/tables/llx_prelevement_demande.sql similarity index 95% rename from htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql rename to htdocs/install/mysql/tables/llx_prelevement_demande.sql index 9837f709777..b0b1b87f77f 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql +++ b/htdocs/install/mysql/tables/llx_prelevement_demande.sql @@ -17,12 +17,13 @@ -- =================================================================== -create table llx_prelevement_facture_demande +create table llx_prelevement_demande ( rowid integer AUTO_INCREMENT PRIMARY KEY, entity integer DEFAULT 1 NOT NULL, fk_facture integer NULL, fk_facture_fourn integer NULL, + fk_salary integer NULL, sourcetype varchar(32), amount double(24,8) NOT NULL, date_demande datetime NOT NULL, diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql index 83e8882caa7..2267113e987 100644 --- a/htdocs/install/mysql/tables/llx_product.sql +++ b/htdocs/install/mysql/tables/llx_product.sql @@ -57,8 +57,9 @@ create table llx_product fk_user_modif integer, -- user making last change tosell tinyint DEFAULT 1, -- Product you sell tobuy tinyint DEFAULT 1, -- Product you buy - onportal tinyint DEFAULT 0, -- If it is a product you sell and you want to sell it on portal (module website must be on) + onportal tinyint DEFAULT 0, -- If it is a product you sell and you want to sell it from internal portal (module 'portal') tobatch tinyint DEFAULT 0 NOT NULL, -- Is it a product that need a batch management (eat-by or lot management) + sell_or_eat_by_mandatory tinyint DEFAULT 0 NOT NULL, -- Make sell-by or eat-by date mandatory batch_mask varchar(32) DEFAULT NULL, -- If the product has batch feature, you may want to use a batch mask per product fk_product_type integer DEFAULT 0, -- Type of product: 0 for regular product, 1 for service, 9 for other (used by external module) duration varchar(6), @@ -106,5 +107,6 @@ create table llx_product fk_project integer DEFAULT NULL, -- Used when product was generated by a project or is specifif to a project mandatory_period tinyint DEFAULT 0, -- is used to signal to the user that the start and end dates are mandatory for this type of product the fk_product_type == 1 (service) (non-blocking action) - fk_default_bom integer DEFAULT NULL + fk_default_bom integer DEFAULT NULL, + fk_default_workstation integer DEFAULT NULL )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_product_lot.sql b/htdocs/install/mysql/tables/llx_product_lot.sql index 162f1c6c122..4e6914884ac 100644 --- a/htdocs/install/mysql/tables/llx_product_lot.sql +++ b/htdocs/install/mysql/tables/llx_product_lot.sql @@ -22,6 +22,8 @@ CREATE TABLE llx_product_lot ( entity integer DEFAULT 1, fk_product integer NOT NULL, -- Id of product batch varchar(128) DEFAULT NULL, -- Lot or serial number + note_public text DEFAULT NULL, + note_private text DEFAULT NULL, eatby date DEFAULT NULL, -- Eatby date sellby date DEFAULT NULL, -- Sellby date eol_date datetime NULL, diff --git a/htdocs/install/mysql/tables/llx_product_stock.sql b/htdocs/install/mysql/tables/llx_product_stock.sql index c5a2f4ad005..8132a71cdd3 100644 --- a/htdocs/install/mysql/tables/llx_product_stock.sql +++ b/htdocs/install/mysql/tables/llx_product_stock.sql @@ -16,6 +16,7 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- +-- See also its child table llx_product_batch that contains details per lot -- ============================================================================ create table llx_product_stock diff --git a/htdocs/install/mysql/tables/llx_projet.key.sql b/htdocs/install/mysql/tables/llx_projet.key.sql index 4b9dd008943..26869454c41 100644 --- a/htdocs/install/mysql/tables/llx_projet.key.sql +++ b/htdocs/install/mysql/tables/llx_projet.key.sql @@ -22,4 +22,8 @@ ALTER TABLE llx_projet ADD UNIQUE INDEX uk_projet_ref (ref, entity); ALTER TABLE llx_projet ADD INDEX idx_projet_fk_soc (fk_soc); +ALTER TABLE llx_projet ADD INDEX idx_projet_ref (ref); +ALTER TABLE llx_projet ADD INDEX idx_projet_fk_statut (fk_statut); +ALTER TABLE llx_projet ADD INDEX idx_projet_fk_opp_status (fk_opp_status); + ALTER TABLE llx_projet ADD CONSTRAINT fk_projet_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (rowid); diff --git a/htdocs/install/mysql/tables/llx_projet.sql b/htdocs/install/mysql/tables/llx_projet.sql index 197a92ac2be..3b8bf1be05b 100644 --- a/htdocs/install/mysql/tables/llx_projet.sql +++ b/htdocs/install/mysql/tables/llx_projet.sql @@ -47,13 +47,17 @@ create table llx_projet usage_opportunity integer DEFAULT 0, -- Set to 1 if project is used to follow an opportunity usage_task integer DEFAULT 1, -- Set to 1 if project is used to manage tasks and/or record timesheet usage_bill_time integer DEFAULT 0, -- Set to 1 if time spent must be converted into invoices - usage_organize_event integer DEFAULT 0, -- Set to 1 if you want to use project to organize an event or receive attendees registration + usage_organize_event integer DEFAULT 0, -- Set to 1 if you want to use project to organize an event or receive attendees registration + date_start_event datetime, -- date start event + date_end_event datetime, -- date end event + location varchar(255), -- location accept_conference_suggestions integer DEFAULT 0, -- Set to 1 if you want to allow unknown people to suggest conferences accept_booth_suggestions integer DEFAULT 0, -- Set to 1 if you want to Allow unknown people to suggest booth max_attendees integer DEFAULT 0, price_registration double(24,8), price_booth double(24,8), model_pdf varchar(255), + ip varchar(250), --ip used to create record (for public submission page) last_main_doc varchar(255), -- relative filepath+filename of last main generated document import_key varchar(14) -- Import key )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_projet_task_time.sql b/htdocs/install/mysql/tables/llx_projet_task_time.sql index 63eadb1177f..e91e50b5721 100644 --- a/htdocs/install/mysql/tables/llx_projet_task_time.sql +++ b/htdocs/install/mysql/tables/llx_projet_task_time.sql @@ -29,6 +29,8 @@ create table llx_projet_task_time thm double(24,8), invoice_id integer DEFAULT NULL, -- If we need to invoice each line of timespent, we can save invoice id here invoice_line_id integer DEFAULT NULL, -- If we need to invoice each line of timespent, we can save invoice line id here + intervention_id integer DEFAULT NULL, -- If we need to have an intervention line for each line of timespent, we can save intervention id here + intervention_line_id integer DEFAULT NULL, -- If we need to have an intervention line of timespent line, we can save intervention line id here import_key varchar(14), -- Import key datec datetime, -- date creation time tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- last modification date diff --git a/htdocs/install/mysql/tables/llx_propal.sql b/htdocs/install/mysql/tables/llx_propal.sql index a8f0aa3e2c9..33df27f8fe4 100644 --- a/htdocs/install/mysql/tables/llx_propal.sql +++ b/htdocs/install/mysql/tables/llx_propal.sql @@ -26,7 +26,6 @@ create table llx_propal entity integer DEFAULT 1 NOT NULL, -- multi company id ref_ext varchar(255), -- reference into an external system (not used by dolibarr) - ref_int varchar(255), -- reference into an internal system (used by dolibarr to store extern id like paypal info) ref_client varchar(255), -- customer proposal number fk_soc integer, diff --git a/htdocs/install/mysql/tables/llx_reception.sql b/htdocs/install/mysql/tables/llx_reception.sql index 8de59edcb77..9256aaf6abe 100644 --- a/htdocs/install/mysql/tables/llx_reception.sql +++ b/htdocs/install/mysql/tables/llx_reception.sql @@ -29,7 +29,6 @@ create table llx_reception fk_projet integer DEFAULT NULL, ref_ext varchar(30), -- reference into an external system (not used by dolibarr) - ref_int varchar(30), -- reference into an internal system (deprecated) ref_supplier varchar(128), -- supplier number date_creation datetime, -- date de creation diff --git a/htdocs/install/mysql/tables/llx_recruitment_recruitmentcandidature-recruitment.sql b/htdocs/install/mysql/tables/llx_recruitment_recruitmentcandidature-recruitment.sql index 5749acd93d8..8d5dd3bd14f 100644 --- a/htdocs/install/mysql/tables/llx_recruitment_recruitmentcandidature-recruitment.sql +++ b/htdocs/install/mysql/tables/llx_recruitment_recruitmentcandidature-recruitment.sql @@ -38,6 +38,7 @@ CREATE TABLE llx_recruitment_recruitmentcandidature( remuneration_requested integer, remuneration_proposed integer, email_msgid varchar(175), -- Do not use a too large value, it generates trouble with unique index + email_date datetime, fk_recruitment_origin INTEGER NULL -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_societe.key.sql b/htdocs/install/mysql/tables/llx_societe.key.sql index 3a2c9540229..58701e4a7f9 100644 --- a/htdocs/install/mysql/tables/llx_societe.key.sql +++ b/htdocs/install/mysql/tables/llx_societe.key.sql @@ -23,6 +23,8 @@ ALTER TABLE llx_societe ADD UNIQUE INDEX uk_societe_code_fournisseur(code_fourni ALTER TABLE llx_societe ADD UNIQUE INDEX uk_societe_barcode (barcode, fk_barcode_type, entity); +ALTER TABLE llx_societe ADD INDEX idx_societe_nom(nom); + ALTER TABLE llx_societe ADD INDEX idx_societe_user_creat(fk_user_creat); ALTER TABLE llx_societe ADD INDEX idx_societe_user_modif(fk_user_modif); diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql index 3c2f8a67be1..47671f4e7c3 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -29,7 +29,6 @@ create table llx_societe entity integer DEFAULT 1 NOT NULL, -- multi company id ref_ext varchar(255), -- reference into an external system (not used by dolibarr) - ref_int varchar(255), -- reference into an internal system (deprecated) statut tinyint DEFAULT 0, -- statut parent integer, @@ -45,7 +44,7 @@ create table llx_societe town varchar(50), -- town fk_departement integer DEFAULT 0, -- fk_pays integer DEFAULT 0, -- - fk_account integer DEFAULT 0, -- + fk_account integer DEFAULT 0, -- default bank account phone varchar(20), -- phone number fax varchar(20), -- fax number url varchar(255), -- diff --git a/htdocs/install/mysql/tables/llx_societe_contacts.sql b/htdocs/install/mysql/tables/llx_societe_contacts.sql index 31d82f3003d..3f301c0cf34 100644 --- a/htdocs/install/mysql/tables/llx_societe_contacts.sql +++ b/htdocs/install/mysql/tables/llx_societe_contacts.sql @@ -13,9 +13,11 @@ -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . --- +-- -- ======================================================================== +-- This table contains the contacts by default of a thirdparty +-- Such contacts will be added to document automatiall if their role match the one expected by the document. create table llx_societe_contacts ( diff --git a/htdocs/install/mysql/tables/llx_societe_remise_except.sql b/htdocs/install/mysql/tables/llx_societe_remise_except.sql index 8fed65fe5f0..8ae8b69e83c 100644 --- a/htdocs/install/mysql/tables/llx_societe_remise_except.sql +++ b/htdocs/install/mysql/tables/llx_societe_remise_except.sql @@ -39,6 +39,8 @@ create table llx_societe_remise_except fk_invoice_supplier integer, fk_invoice_supplier_source integer, description text NOT NULL, + multicurrency_code varchar(3) NULL, + multicurrency_tx double(24,8) NULL, multicurrency_amount_ht double(24,8) DEFAULT 0 NOT NULL, multicurrency_amount_tva double(24,8) DEFAULT 0 NOT NULL, multicurrency_amount_ttc double(24,8) DEFAULT 0 NOT NULL diff --git a/htdocs/install/mysql/tables/llx_societe_rib.sql b/htdocs/install/mysql/tables/llx_societe_rib.sql index 9ea6ccf9188..a798f6ac594 100644 --- a/htdocs/install/mysql/tables/llx_societe_rib.sql +++ b/htdocs/install/mysql/tables/llx_societe_rib.sql @@ -43,20 +43,23 @@ create table llx_societe_rib proprio varchar(60), owner_address varchar(255), default_rib smallint NOT NULL DEFAULT 0, - - -- For BAN direct debit feature + state_id integer, + fk_country integer, + currency_code varchar(3), + + -- For BAN direct debit feature rum varchar(32), -- RUM value to use for SEPA generation date_rum date, -- Date of mandate frstrecur varchar(16) default 'FRST', -- 'FRST' or 'RECUR' - + --For credit card last_four varchar(4), -- last 4 card_type varchar(255), -- card type 'VISA', 'MC' , ... - cvn varchar(255), + cvn varchar(255), exp_date_month INTEGER, exp_date_year INTEGER, country_code varchar(10), - + --For Paypal approved INTEGER DEFAULT 0, email varchar(255), @@ -65,7 +68,7 @@ create table llx_societe_rib preapproval_key varchar(255), starting_date date, total_amount_of_all_payments double(24,8), - + --For Stripe stripe_card_ref varchar(128), -- 'card_...' stripe_account varchar(128), -- 'pk_live_...' diff --git a/htdocs/install/mysql/tables/llx_socpeople.key.sql b/htdocs/install/mysql/tables/llx_socpeople.key.sql index 4d2a453e0fa..36e2b7b7d1c 100644 --- a/htdocs/install/mysql/tables/llx_socpeople.key.sql +++ b/htdocs/install/mysql/tables/llx_socpeople.key.sql @@ -20,5 +20,7 @@ ALTER TABLE llx_socpeople ADD INDEX idx_socpeople_fk_soc (fk_soc); ALTER TABLE llx_socpeople ADD INDEX idx_socpeople_fk_user_creat (fk_user_creat); +ALTER TABLE llx_socpeople ADD INDEX idx_socpeople_lastname (lastname); + ALTER TABLE llx_socpeople ADD CONSTRAINT fk_socpeople_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (rowid); ALTER TABLE llx_socpeople ADD CONSTRAINT fk_socpeople_user_creat_user_rowid FOREIGN KEY (fk_user_creat) REFERENCES llx_user (rowid); diff --git a/htdocs/install/mysql/tables/llx_socpeople.sql b/htdocs/install/mysql/tables/llx_socpeople.sql index 59bd22ddfdc..5cad6a4bdc3 100644 --- a/htdocs/install/mysql/tables/llx_socpeople.sql +++ b/htdocs/install/mysql/tables/llx_socpeople.sql @@ -58,7 +58,7 @@ create table llx_socpeople photo varchar(255), no_email smallint NOT NULL DEFAULT 0, -- deprecated. Use table llx_mailing_unsubscribe instead priv smallint NOT NULL DEFAULT 0, - fk_prospectcontactlevel varchar(12), -- prospect level (in llx_c_prospectcontactlevel) + fk_prospectlevel varchar(12), -- prospect level (in llx_c_prospectcontactlevel) fk_stcommcontact integer DEFAULT 0 NOT NULL, -- commercial statut fk_user_creat integer DEFAULT 0, -- user qui a creel'enregistrement fk_user_modif integer, diff --git a/htdocs/install/mysql/tables/llx_supplier_proposal.sql b/htdocs/install/mysql/tables/llx_supplier_proposal.sql index 0008f08642f..3be54f8e143 100644 --- a/htdocs/install/mysql/tables/llx_supplier_proposal.sql +++ b/htdocs/install/mysql/tables/llx_supplier_proposal.sql @@ -20,7 +20,6 @@ CREATE TABLE llx_supplier_proposal ( ref varchar(30) NOT NULL, entity integer NOT NULL DEFAULT 1, ref_ext varchar(255) DEFAULT NULL, - ref_int varchar(255) DEFAULT NULL, fk_soc integer DEFAULT NULL, fk_projet integer DEFAULT NULL, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, diff --git a/htdocs/install/mysql/tables/llx_ticket-ticket.sql b/htdocs/install/mysql/tables/llx_ticket-ticket.sql index d079fdf3964..c651eaccca2 100644 --- a/htdocs/install/mysql/tables/llx_ticket-ticket.sql +++ b/htdocs/install/mysql/tables/llx_ticket-ticket.sql @@ -26,7 +26,7 @@ CREATE TABLE llx_ticket fk_user_create integer, fk_user_assign integer, subject varchar(255), - message text, + message mediumtext, fk_statut integer, resolution integer, progress integer DEFAULT 0, -- progression 0 - 100 or null @@ -34,12 +34,14 @@ CREATE TABLE llx_ticket type_code varchar(32), category_code varchar(32), severity_code varchar(32), - datec datetime, + datec datetime, -- date of creation of record date_read datetime, date_last_msg_sent datetime, date_close datetime, notify_tiers_at_create tinyint, email_msgid varchar(255), -- if ticket is created by email collector, we store here MSG ID + email_date datetime, -- if ticket is created by email collector, we store here Date of message + ip varchar(250), tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, import_key varchar(14) )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql index ae3715eb028..ca0c7bc818d 100644 --- a/htdocs/install/mysql/tables/llx_user.sql +++ b/htdocs/install/mysql/tables/llx_user.sql @@ -19,95 +19,96 @@ create table llx_user ( - rowid integer AUTO_INCREMENT PRIMARY KEY, - entity integer DEFAULT 1 NOT NULL, -- multi company id + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1 NOT NULL, -- multi company id - ref_employee varchar(50), - ref_ext varchar(50), -- reference into an external system (not used by dolibarr) + ref_employee varchar(50), + ref_ext varchar(50), -- reference into an external system (not used by dolibarr) - admin smallint DEFAULT 0, -- user has admin profile + admin smallint DEFAULT 0, -- user has admin profile - employee tinyint DEFAULT 1, -- 1 if user is an employee - fk_establishment integer DEFAULT 0, + employee tinyint DEFAULT 1, -- 1 if user is an employee + fk_establishment integer DEFAULT 0, - datec datetime, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - fk_user_creat integer, - fk_user_modif integer, - login varchar(50) NOT NULL, - pass_encoding varchar(24), - pass varchar(128), - pass_crypted varchar(128), - pass_temp varchar(128), -- temporary password when asked for forget password or 'hashtoallowreset:YYYMMDDHHMMSS' (where date is max date of validity) - api_key varchar(128), -- key to use REST API by this user - gender varchar(10), - civility varchar(6), - lastname varchar(50), - firstname varchar(50), - address varchar(255), -- user personal address - zip varchar(25), -- zipcode - town varchar(50), -- town - fk_state integer DEFAULT 0, - fk_country integer DEFAULT 0, - birth date, -- birthday - job varchar(128), - office_phone varchar(20), - office_fax varchar(20), - user_mobile varchar(20), - personal_mobile varchar(20), - email varchar(255), - personal_email varchar(255), - signature text DEFAULT NULL, + datec datetime, -- date/time of creation + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + fk_user_creat integer, -- user who created dataset + fk_user_modif integer, -- user who modified dataset + login varchar(50) NOT NULL, + pass_encoding varchar(24), + pass varchar(128), + pass_crypted varchar(128), + pass_temp varchar(128), -- temporary password when asked for forget password or 'hashtoallowreset:YYYMMDDHHMMSS' (where date is max date of validity) + api_key varchar(128), -- key to use REST API by this user + gender varchar(10), + civility varchar(6), + lastname varchar(50), + firstname varchar(50), + address varchar(255), -- user personal address + zip varchar(25), -- zipcode + town varchar(50), -- town + fk_state integer DEFAULT 0, + fk_country integer DEFAULT 0, + birth date, -- birthday + birth_place varchar(64), -- birth place (town) + job varchar(128), + office_phone varchar(20), + office_fax varchar(20), + user_mobile varchar(20), + personal_mobile varchar(20), + email varchar(255), + personal_email varchar(255), + signature text DEFAULT NULL, - socialnetworks text DEFAULT NULL, -- json with socialnetworks + socialnetworks text DEFAULT NULL, -- json with socialnetworks --module_comm smallint DEFAULT 1, --module_compta smallint DEFAULT 1, - fk_soc integer NULL, -- id thirdparty if user linked to a company (external user) - fk_socpeople integer NULL, -- id contact origin if user linked to a contact - fk_member integer NULL, -- if member if suer linked to a member - fk_user integer NULL, -- Supervisor, hierarchic parent - fk_user_expense_validator integer NULL, - fk_user_holiday_validator integer NULL, + fk_soc integer NULL, -- id thirdparty if user linked to a company (external user) + fk_socpeople integer NULL, -- id contact origin if user linked to a contact + fk_member integer NULL, -- if member if user linked to a member + fk_user integer NULL, -- Supervisor, hierarchic parent + fk_user_expense_validator integer NULL, + fk_user_holiday_validator integer NULL, - idpers1 varchar(128), - idpers2 varchar(128), - idpers3 varchar(128), + idpers1 varchar(128), + idpers2 varchar(128), + idpers3 varchar(128), - note_public text, - note text DEFAULT NULL, - model_pdf varchar(255) DEFAULT NULL, - datelastlogin datetime, - datepreviouslogin datetime, - datelastpassvalidation datetime, -- last date we change password or we made a disconnect all - datestartvalidity datetime, - dateendvalidity datetime, - iplastlogin varchar(250), - ippreviouslogin varchar(250), - egroupware_id integer, - ldap_sid varchar(255) DEFAULT NULL, - openid varchar(255), - statut tinyint DEFAULT 1, - photo varchar(255), -- filename or url of photo - lang varchar(6), -- default language for communication. Note that language selected by user as interface language is savec into llx_user_param. - color varchar(6), - barcode varchar(255) DEFAULT NULL, - fk_barcode_type integer DEFAULT 0, - accountancy_code varchar(32) NULL, - nb_holiday integer DEFAULT 0, - thm double(24,8), - tjm double(24,8), + note_public text, + note_private text DEFAULT NULL, + model_pdf varchar(255) DEFAULT NULL, + datelastlogin datetime, + datepreviouslogin datetime, + datelastpassvalidation datetime, -- last date we change password or we made a disconnect all + datestartvalidity datetime, + dateendvalidity datetime, + iplastlogin varchar(250), + ippreviouslogin varchar(250), + egroupware_id integer, + ldap_sid varchar(255) DEFAULT NULL, + openid varchar(255), + statut tinyint DEFAULT 1, + photo varchar(255), -- filename or url of photo + lang varchar(6), -- default language for communication. Note that language selected by user as interface language is savec into llx_user_param. + color varchar(6), + barcode varchar(255) DEFAULT NULL, + fk_barcode_type integer DEFAULT 0, + accountancy_code varchar(32) NULL, + nb_holiday integer DEFAULT 0, + thm double(24,8), + tjm double(24,8), - salary double(24,8), -- denormalized value coming from llx_user_employment - salaryextra double(24,8), -- denormalized value coming from llx_user_employment - dateemployment date, -- denormalized value coming from llx_user_employment - dateemploymentend date, -- denormalized value coming from llx_user_employment - weeklyhours double(16,8), -- denormalized value coming from llx_user_employment + salary double(24,8), -- denormalized value coming from llx_user_employment + salaryextra double(24,8), -- denormalized value coming from llx_user_employment + dateemployment date, -- denormalized value coming from llx_user_employment + dateemploymentend date, -- denormalized value coming from llx_user_employment + weeklyhours double(16,8), -- denormalized value coming from llx_user_employment - import_key varchar(14), -- import key - default_range integer, - default_c_exp_tax_cat integer, + import_key varchar(14), -- import key + default_range integer, + default_c_exp_tax_cat integer, national_registration_number varchar(50), - fk_warehouse integer -- default warehouse os user + fk_warehouse integer -- default warehouse of user )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_user_rib.sql b/htdocs/install/mysql/tables/llx_user_rib.sql index 4463a1f6f2b..c98e447a75e 100644 --- a/htdocs/install/mysql/tables/llx_user_rib.sql +++ b/htdocs/install/mysql/tables/llx_user_rib.sql @@ -33,5 +33,8 @@ create table llx_user_rib iban_prefix varchar(34), -- full iban. 34 according to ISO 13616 domiciliation varchar(255), proprio varchar(60), - owner_address varchar(255) + owner_address varchar(255), + state_id integer, + fk_country integer, + currency_code varchar(3) )ENGINE=innodb; diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 802711f4ff3..0d37f4d2dd7 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -915,7 +915,7 @@ if ($ok && GETPOST('clean_product_stock_batch', 'alpha')) { $i = 0; while ($i < $num) { $obj = $db->fetch_object($resql); - print '
    '; + print ''; print ''; - print ''; print '
    '.$propalstatic->getNomUrl(1).''.$propalstatic->getNomUrl(1).''.$warning.''.$formfile->getDocumentsLink($propalstatic->element, $filename, $filedir).'
    '; print ''; - print ''; + print ''; print ''; print ''; print ''; print '
    '.$orderstatic->getNomUrl(1).''.$orderstatic->getNomUrl(1).''.$formfile->getDocumentsLink($orderstatic->element, $filename, $filedir).'
    '; print '
    '.$companystatic->getNomUrl(1, 'customer', 44).''.$companystatic->getNomUrl(1, 'customer', 44).''; print dol_print_date($datem, 'day', 'tzserver'); diff --git a/htdocs/comm/mailing/advtargetemailing.php b/htdocs/comm/mailing/advtargetemailing.php index bd052f4161e..d2e9fc7d0d5 100644 --- a/htdocs/comm/mailing/advtargetemailing.php +++ b/htdocs/comm/mailing/advtargetemailing.php @@ -26,6 +26,7 @@ if (!defined('NOSTYLECHECK')) { define('NOSTYLECHECK', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; @@ -38,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; // Load translation files required by the page $langs->loadLangs(array('mails', 'companies')); -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { $langs->load("categories"); } diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php index b3d3dd25e90..32207425d2a 100644 --- a/htdocs/comm/mailing/card.php +++ b/htdocs/comm/mailing/card.php @@ -28,6 +28,7 @@ if (!defined('NOSTYLECHECK')) { define('NOSTYLECHECK', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/emailing.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -83,6 +84,8 @@ if (empty($user->rights->mailing->lire) || (empty($conf->global->EXTERNAL_USERS_ accessforbidden(); } +$upload_dir = $conf->mailing->dir_output."/".get_exdir($object->id, 2, 0, 1, $object, 'mailing'); + /* * Actions @@ -123,8 +126,6 @@ if (empty($reshook)) { setEventMessages($langs->trans("NotEnoughPermissions"), null, 'warnings'); $action = ''; } else { - $upload_dir = $conf->mailing->dir_output."/".get_exdir($object->id, 2, 0, 1, $object, 'mailing'); - if ($object->statut == 0) { dol_print_error('', 'ErrorMailIsNotValidated'); exit; @@ -220,18 +221,19 @@ if (empty($reshook)) { $substitutionarray['__OTHER4__'] = $other4; $substitutionarray['__OTHER5__'] = $other5; $substitutionarray['__USER_SIGNATURE__'] = $signature; // Signature is empty when ran from command line or taken from user in parameter) + $substitutionarray['__SENDEREMAIL_SIGNATURE__'] = $signature; // Signature is empty when ran from command line or taken from user in parameter) $substitutionarray['__CHECK_READ__'] = ''; $substitutionarray['__UNSUBSCRIBE__'] = ''.$langs->trans("MailUnsubcribe").''; $substitutionarray['__UNSUBSCRIBE_URL__'] = DOL_MAIN_URL_ROOT.'/public/emailing/mailing-unsubscribe.php?tag='.urlencode($obj->tag).'&unsuscrib=1&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'&email='.urlencode($obj->email).'&mtid='.$obj->rowid; $onlinepaymentenabled = 0; - if (!empty($conf->paypal->enabled)) { + if (isModEnabled('paypal')) { $onlinepaymentenabled++; } - if (!empty($conf->paybox->enabled)) { + if (isModEnabled('paybox')) { $onlinepaymentenabled++; } - if (!empty($conf->stripe->enabled)) { + if (isModEnabled('stripe')) { $onlinepaymentenabled++; } if ($onlinepaymentenabled && !empty($conf->global->PAYMENT_SECURITY_TOKEN)) { @@ -258,10 +260,10 @@ if (empty($reshook)) { } } if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) { - $substitutionarray['__PUBLICLINK_NEWMEMBERFORM__'] = ''.$langs->trans('BlankSubscriptionForm'). ''; + $substitutionarray['__PUBLICLINK_NEWMEMBERFORM__'] = ''.$langs->trans('BlankSubscriptionForm'). ''; } /* For backward compatibility, deprecated */ - if (!empty($conf->paypal->enabled) && !empty($conf->global->PAYPAL_SECURITY_TOKEN)) { + if (isModEnabled('paypal') && !empty($conf->global->PAYPAL_SECURITY_TOKEN)) { $substitutionarray['__SECUREKEYPAYPAL__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN, 2); if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE)) { @@ -316,7 +318,8 @@ if (empty($reshook)) { // Mail making $trackid = 'emailing-'.$obj->fk_mailing.'-'.$obj->rowid; - $mail = new CMailFile($newsubject, $sendto, $from, $newmessage, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $errorsto, $arr_css, $trackid, $moreinheader, 'emailing'); + $upload_dir_tmp = $upload_dir; + $mail = new CMailFile($newsubject, $sendto, $from, $newmessage, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $errorsto, $arr_css, $trackid, $moreinheader, 'emailing', '', $upload_dir_tmp); if ($mail->error) { $res = 0; @@ -366,7 +369,7 @@ if (empty($reshook)) { } if (!empty($conf->global->MAILING_DELAY)) { - dol_syslog("Wait a delay of MAILING_DELAY=".$conf->global->MAILING_DELAY); + dol_syslog("Wait a delay of MAILING_DELAY=".((float) $conf->global->MAILING_DELAY)); usleep((float) $conf->global->MAILING_DELAY * 1000000); } @@ -475,8 +478,9 @@ if (empty($reshook)) { } } - $trackid = 'emailingtest'; - $mailfile = new CMailFile($tmpsujet, $object->sendto, $object->email_from, $tmpbody, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $object->email_errorsto, $arr_css, $trackid, '', 'emailing'); + $trackid = 'emailing-test'; + $upload_dir_tmp = $upload_dir; + $mailfile = new CMailFile($tmpsujet, $object->sendto, $object->email_from, $tmpbody, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $object->email_errorsto, $arr_css, $trackid, '', 'emailing', '', $upload_dir_tmp); $result = $mailfile->sendfile(); if ($result) { @@ -518,9 +522,10 @@ if (empty($reshook)) { exit; } $mesgs[] = $object->error; + $mesgs = array_merge($mesgs, $object->errors); } - setEventMessages(null, $mesgs, 'errors'); + setEventMessages('', $mesgs, 'errors'); $action = "create"; } @@ -605,9 +610,10 @@ if (empty($reshook)) { exit; } $mesgs[] = $object->error; + $mesgs = array_merge($mesgs, $object->errors); } - setEventMessages($mesg, $mesgs, 'errors'); + setEventMessages('', $mesgs, 'errors'); $action = "edit"; } else { $action = "edit"; @@ -724,11 +730,14 @@ if ($action == 'create') { // Print mail form print load_fiche_titre($langs->trans("NewMailing"), $availablelink, 'object_email'); - print dol_get_fiche_head(); + print dol_get_fiche_head(array(), '', '', -3); print ''; + print ''; + print ''; + print ''; // Other attributes @@ -740,7 +749,7 @@ if ($action == 'create') { } print '
    '.$langs->trans("MailTitle").'
    '.$langs->trans("MailFrom").'
    '.$langs->trans("MailErrorsTo").'
    '; - print '

    '; + print '

    '; print ''; print ''; @@ -753,13 +762,13 @@ if ($action == 'create') { print '
    '; // wysiwyg editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('bodyemail', GETPOST('bodyemail', 'restricthtmlallowunvalid'), '', 600, 'dolibarr_mailings', '', true, true, $conf->global->FCKEDITOR_ENABLE_MAILING, 20, '90%'); + $doleditor = new DolEditor('bodyemail', GETPOST('bodyemail', 'restricthtmlallowunvalid'), '', 600, 'dolibarr_mailings', '', true, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAILING'), 20, '90%'); $doleditor->Create(); print '
    '; print dol_get_fiche_end(); - print $form->buttonsSaveCancel("CreateMailing", ''); + print $form->buttonsSaveCancel("CreateMailing", 'Cancel'); print ''; } else { @@ -801,13 +810,20 @@ if ($action == 'create') { // MAILING_NO_USING_PHPMAIL may be defined or not. // MAILING_LIMIT_SENDBYWEB is always defined to something != 0 (-1=forbidden). // MAILING_LIMIT_SENDBYCLI may be defined ot not (-1=forbidden, 0 or undefined=no limit). + // MAILING_LIMIT_SENDBYDAY may be defined ot not (0 or undefined=no limit). if (!empty($conf->global->MAILING_NO_USING_PHPMAIL) && $sendingmode == 'mail') { // EMailing feature may be a spam problem, so when you host several users/instance, having this option may force each user to use their own SMTP agent. // You ensure that every user is using its own SMTP server when using the mass emailing module. $linktoadminemailbefore = ''; $linktoadminemailend = ''; setEventMessages($langs->trans("MailSendSetupIs", $listofmethods[$sendingmode]), null, 'warnings'); - setEventMessages($langs->trans("MailSendSetupIs2", $linktoadminemailbefore, $linktoadminemailend, $langs->transnoentitiesnoconv("MAIN_MAIL_SENDMODE"), $listofmethods['smtps']), null, 'warnings'); + $messagetoshow = $langs->trans("MailSendSetupIs2", '{s1}', '{s2}', '{s3}', '{s4}'); + $messagetoshow = str_replace('{s1}', $linktoadminemailbefore, $messagetoshow); + $messagetoshow = str_replace('{s2}', $linktoadminemailend, $messagetoshow); + $messagetoshow = str_replace('{s3}', $langs->transnoentitiesnoconv("MAIN_MAIL_SENDMODE"), $messagetoshow); + $messagetoshow = str_replace('{s4}', $listofmethods['smtps'], $messagetoshow); + setEventMessages($messagetoshow, null, 'warnings'); + if (!empty($conf->global->MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS)) { setEventMessages($langs->trans("MailSendSetupIs3", $conf->global->MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS), null, 'warnings'); } @@ -836,14 +852,21 @@ if ($action == 'create') { } $text = ''; - if (!isset($conf->global->MAILING_LIMIT_SENDBYCLI) || $conf->global->MAILING_LIMIT_SENDBYCLI >= 0) { - $text .= $langs->trans("MailingNeedCommand"); - $text .= '
    '; + + if (isset($conf->global->MAILING_LIMIT_SENDBYDAY) && $conf->global->MAILING_LIMIT_SENDBYDAY >= 0) { + $text .= $langs->trans('WarningLimitSendByDay', $conf->global->MAILING_LIMIT_SENDBYDAY); $text .= '

    '; } $text .= $langs->trans('ConfirmSendingEmailing').'
    '; $text .= $langs->trans('LimitSendingEmailing', $conf->global->MAILING_LIMIT_SENDBYWEB); - print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('SendMailing'), $text, 'sendallconfirmed', '', '', 1, 330, 600); + + if (!isset($conf->global->MAILING_LIMIT_SENDBYCLI) || $conf->global->MAILING_LIMIT_SENDBYCLI >= 0) { + $text .= '

    '; + $text .= $langs->trans("MailingNeedCommand"); + $text .= '
    '; + } + + print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('SendMailing'), $text, 'sendallconfirmed', '', '', 1, 330, 600, 0, $langs->trans("Confirm"), $langs->trans("Cancel")); } } @@ -871,16 +894,16 @@ if ($action == 'create') { // Description print ''; // From print ''; print ''; +print ''; print ''; print ''; -print ''; -print ''; +//print ''; +//print ''; print ''; print ''; print ''; print ''; print ''; print ''; -print ''; print ''; print ''; -print_liste_field_titre("ID", $_SERVER["PHP_SELF"], "t.rowid", "", $param, '', $sortfield, $sortorder); +print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "t.rowid", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("CronLabel", $_SERVER["PHP_SELF"], "t.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Prority", $_SERVER["PHP_SELF"], "t.priority", "", $param, '', $sortfield, $sortorder); -print_liste_field_titre("CronTask", '', '', "", $param, '', $sortfield, $sortorder); +print_liste_field_titre("CronModule", $_SERVER["PHP_SELF"], "t.module_name", "", $param, '', $sortfield, $sortorder); +print_liste_field_titre("CronType", '', '', "", $param, '', $sortfield, $sortorder, 'tdoverflowmax100 '); print_liste_field_titre("CronFrequency", '', "", "", $param, '', $sortfield, $sortorder); -print_liste_field_titre("CronDtStart", $_SERVER["PHP_SELF"], "t.datestart", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("CronDtEnd", $_SERVER["PHP_SELF"], "t.dateend", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("CronNbRun", $_SERVER["PHP_SELF"], "t.nbrun", "", $param, 'align="right"', $sortfield, $sortorder); -print_liste_field_titre("CronDtLastLaunch", $_SERVER["PHP_SELF"], "t.datelastrun", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("Duration", $_SERVER["PHP_SELF"], "", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("CronLastResult", $_SERVER["PHP_SELF"], "t.lastresult", "", $param, 'align="center"', $sortfield, $sortorder); +//print_liste_field_titre("CronDtStart", $_SERVER["PHP_SELF"], "t.datestart", "", $param, 'align="center"', $sortfield, $sortorder); +//print_liste_field_titre("CronDtEnd", $_SERVER["PHP_SELF"], "t.dateend", "", $param, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("CronNbRun", $_SERVER["PHP_SELF"], "t.nbrun", "", $param, '', $sortfield, $sortorder, 'right tdoverflowmax50'); +print_liste_field_titre("CronDtLastLaunch", $_SERVER["PHP_SELF"], "t.datelastrun", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre("Duration", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre("CronLastResult", $_SERVER["PHP_SELF"], "t.lastresult", "", $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre("CronLastOutput", $_SERVER["PHP_SELF"], "t.lastoutput", "", $param, '', $sortfield, $sortorder); -print_liste_field_titre("CronDtNextLaunch", $_SERVER["PHP_SELF"], "t.datenextrun", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "t.status,t.priority", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", "", $param, 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +print_liste_field_titre("CronDtNextLaunch", $_SERVER["PHP_SELF"], "t.datenextrun", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "t.status,t.priority", "", $param, '', $sortfield, $sortorder, 'center '); +print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'center maxwidthsearch '); print "\n"; @@ -486,13 +494,21 @@ if ($num > 0) { } } + $reg = array(); + if (preg_match('/:(.*)$/', $obj->label, $reg)) { + $langs->load($reg[1]); + } + $object->id = $obj->rowid; $object->ref = $obj->rowid; - $object->label = $obj->label; + $object->label = preg_replace('/:.*$/', '', $obj->label); $object->status = $obj->status; $object->priority = $obj->priority; $object->processing = $obj->processing; $object->lastresult = $obj->lastresult; + $object->datestart = $db->jdate($obj->datestart); + $object->dateend = $db->jdate($obj->dateend); + $object->module_name = $obj->module_name; $datelastrun = $db->jdate($obj->datelastrun); $datelastresult = $db->jdate($obj->datelastresult); @@ -506,9 +522,9 @@ if ($num > 0) { // Label print ''; + // Module + print ''; + + // Class/Method print ''; - print ''; + /* print ''; + */ print ''; @@ -594,24 +619,27 @@ if ($num > 0) { print ''; // Return code of last run - print ''; // Output of last run - print ''; - print ''; $order = new Commande($db); $order->fetch($expedition->origin_id); @@ -409,7 +399,7 @@ if ($action == 'create') { // Create. Seems to no be used print "\n"; print ''; } - if ($typeobject == 'propal' && $expedition->origin_id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $expedition->origin_id && isModEnabled("propal")) { $propal = new Propal($db); $propal->fetch($expedition->origin_id); print ''; @@ -449,7 +439,7 @@ if ($action == 'create') { // Create. Seems to no be used print ''; // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; - print ''; print ''; - print ''; } @@ -522,7 +512,7 @@ if ($id > 0 || !empty($ref)) { // TODO How record was recorded OrderMode (llx_c_input_method) // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; - print ''; // Payment mode @@ -1737,7 +1751,7 @@ if ($action == 'create') { print ''; // Bank Account - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER) && !empty($conf->banque->enabled)) { + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER) && isModEnabled("banque")) { $langs->load("bank"); print ''; @@ -1768,7 +1782,7 @@ if ($action == 'create') { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print '"; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print ''; @@ -1854,19 +1868,13 @@ if ($action == 'create') { print "\n"; } elseif (!empty($object->id)) { $result = $object->fetch($id, $ref); + $object->fetch_thirdparty(); - $societe = new Fournisseur($db); - $result = $societe->fetch($object->socid); - if ($result < 0) { - dol_print_error($db); - } + $societe = $object->thirdparty; $author = new User($db); $author->fetch($object->user_author_id); - $res = $object->fetch_optionals(); - - $head = ordersupplier_prepare_head($object); $title = $langs->trans("SupplierOrder"); @@ -1906,7 +1914,7 @@ if ($action == 'create') { $action = ''; } else { $text = $langs->trans('ConfirmValidateOrder', $newref); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
    '; @@ -1927,7 +1935,7 @@ if ($action == 'create') { } $formquestion = array(); - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $qualified_for_stock_change) { $langs->load("stocks"); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -1943,7 +1951,7 @@ if ($action == 'create') { ); } $text = $langs->trans("ConfirmApproveThisOrder", $object->ref); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
    '; @@ -2011,11 +2019,10 @@ if ($action == 'create') { $morehtmlref = '
    '; // Ref supplier $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreate, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreate, 'string', '', null, null, '', 1); + $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreate, 'string'.(isset($conf->global->THIRDPARTY_REF_INPUT_SIZE) ? ':'.$conf->global->THIRDPARTY_REF_INPUT_SIZE : ''), '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty'); + $morehtmlref .= '
    '; if (!empty($conf->global->MAIN_CAN_EDIT_SUPPLIER_ON_SUPPLIER_ORDER) && !empty($usercancreate) && $action == 'edit_thirdparty') { - $morehtmlref .= ' : '; $morehtmlref .= '
    '; $morehtmlref .= ''; $morehtmlref .= ''; @@ -2027,41 +2034,30 @@ if ($action == 'create') { if (!empty($conf->global->MAIN_CAN_EDIT_SUPPLIER_ON_SUPPLIER_ORDER) && $object->statut == CommandeFournisseur::STATUS_DRAFT) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetThirdParty')).''; } - $morehtmlref .= ' : '.$object->thirdparty->getNomUrl(1, 'supplier'); + $morehtmlref .= $object->thirdparty->getNomUrl(1, 'supplier'); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherOrders").')'; } } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($usercancreate) { + $morehtmlref .= '
    '; + if ($permissiontoadd) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify' && $caneditproject) { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects((empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, 'projectid', 0, 0, 1, 1, 1, 0, 0, '', 1, 0, 'maxwidth500'); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -2079,8 +2075,12 @@ if ($action == 'create') { // Date if ($object->methode_commande_id > 0) { + $usehourmin = 0; + if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) { + $usehourmin = 1; + } print '
    '; // Relative and absolute discounts - if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { $filterabsolutediscount = "fk_invoice_supplier_source IS NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice $filtercreditnote = "fk_invoice_supplier_source IS NOT NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice } else { @@ -2157,7 +2157,7 @@ if ($action == 'create') { print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print '",i.document[0]).appendTo(t)):"tr"===n?i._createTrPlaceholder(i.currentItem,t):"img"===n&&t.attr("src",i.currentItem.attr("src")),s||t.css("visibility","hidden"),t},update:function(t,e){s&&!o.forcePlaceholderSize||(e.height()&&(!o.forcePlaceholderSize||"tbody"!==n&&"tr"!==n)||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10)))}}),i.placeholder=V(o.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),o.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){V("",i.document[0]).attr("colspan",V(this).attr("colspan")||1).appendTo(e)})},_contactContainers:function(t){for(var e,i,s,n,o,a,r,l,h,c=null,u=null,d=this.containers.length-1;0<=d;d--)V.contains(this.currentItem[0],this.containers[d].element[0])||(this._intersectsWith(this.containers[d].containerCache)?c&&V.contains(this.containers[d].element[0],c.element[0])||(c=this.containers[d],u=d):this.containers[d].containerCache.over&&(this.containers[d]._trigger("out",t,this._uiHash(this)),this.containers[d].containerCache.over=0));if(c)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger("over",t,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,s=null,n=(l=c.floating||this._isFloating(this.currentItem))?"left":"top",o=l?"width":"height",h=l?"pageX":"pageY",e=this.items.length-1;0<=e;e--)V.contains(this.containers[u].element[0],this.items[e].item[0])&&this.items[e].item[0]!==this.currentItem[0]&&(a=this.items[e].item.offset()[n],r=!1,t[h]-a>this.items[e][o]/2&&(r=!0),Math.abs(t[h]-a)this.containment[2]&&(i=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),e.grid&&(t=this.originalPageY+Math.round((s-this.originalPageY)/e.grid[1])*e.grid[1],s=!this.containment||t-this.offset.click.top>=this.containment[1]&&t-this.offset.click.top<=this.containment[3]?t:t-this.offset.click.top>=this.containment[1]?t-e.grid[1]:t+e.grid[1],t=this.originalPageX+Math.round((i-this.originalPageX)/e.grid[0])*e.grid[0],i=!this.containment||t-this.offset.click.left>=this.containment[0]&&t-this.offset.click.left<=this.containment[2]?t:t-this.offset.click.left>=this.containment[0]?t-e.grid[0]:t+e.grid[0])),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function n(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;0<=i;i--)e||s.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var s=this._super(),n=this.element;return V.each(["min","max","step"],function(t,e){var i=n.attr(e);null!=i&&i.length&&(s[e]=i)}),s},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t))},mousewheel:function(t,e){var i=V.ui.safeActiveElement(this.document[0]);if(this.element[0]===i&&e){if(!this.spinning&&!this._start(t))return!1;this._spin((0").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&0e.max?e.max:null!==e.min&&t"},_buttonHtml:function(){return""}});var ct;V.ui.spinner;V.widget("ui.tabs",{version:"1.13.2",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(ct=/#.*$/,function(t){var e=t.href.replace(ct,""),i=location.href.replace(ct,"");try{e=decodeURIComponent(e)}catch(t){}try{i=decodeURIComponent(i)}catch(t){}return 1?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,e=this.tablist.children(":has(a[href])");t.disabled=V.map(e.filter(".ui-state-disabled"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!V.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=V()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=V()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var l=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(t){V(this).is(".ui-state-disabled")&&t.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){V(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return V("a",this)[0]}).attr({tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=V(),this.anchors.each(function(t,e){var i,s,n,o=V(e).uniqueId().attr("id"),a=V(e).closest("li"),r=a.attr("aria-controls");l._isLocal(e)?(n=(i=e.hash).substring(1),s=l.element.find(l._sanitizeSelector(i))):(n=a.attr("aria-controls")||V({}).uniqueId()[0].id,(s=l.element.find(i="#"+n)).length||(s=l._createPanel(n)).insertAfter(l.panels[t-1]||l.tablist),s.attr("aria-live","polite")),s.length&&(l.panels=l.panels.add(s)),r&&a.data("ui-tabs-aria-controls",r),a.attr({"aria-controls":n,"aria-labelledby":o}),s.attr("aria-labelledby",o)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return V("
    ").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var e,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;e=this.tabs[i];i++)e=V(e),!0===t||-1!==V.inArray(i,t)?(e.attr("aria-disabled","true"),this._addClass(e,null,"ui-state-disabled")):(e.removeAttr("aria-disabled"),this._removeClass(e,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var i={};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();"fill"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=V(this).outerHeight(!0)}),this.panels.each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,V(this).height("").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget).closest("li"),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():this._getPanelForTab(s),r=i.length?this._getPanelForTab(i):V(),i={oldTab:i,oldPanel:r,newTab:o?V():s,newPanel:a};t.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||n&&!e.collapsible||!1===this._trigger("beforeActivate",t,i)||(e.active=!o&&this.tabs.index(s),this.active=n?V():s,this.xhr&&this.xhr.abort(),r.length||a.length||V.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,i))},_toggle:function(t,e){var i=this,s=e.newPanel,n=e.oldPanel;function o(){i.running=!1,i._trigger("activate",t,e)}function a(){i._addClass(e.newTab.closest("li"),"ui-tabs-active","ui-state-active"),s.length&&i.options.show?i._show(s,i.options.show,o):(s.show(),o())}this.running=!0,n.length&&this.options.hide?this._hide(n,this.options.hide,function(){i._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),a()}):(this._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n.hide(),a()),n.attr("aria-hidden","true"),e.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),s.length&&n.length?e.oldTab.attr("tabIndex",-1):s.length&&this.tabs.filter(function(){return 0===V(this).attr("tabIndex")}).attr("tabIndex",-1),s.attr("aria-hidden","false"),e.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var t=this._findActive(t);t[0]!==this.active[0]&&(t=(t=!t.length?this.active:t).find(".ui-tabs-anchor")[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return!1===t?V():this.tabs.eq(t)},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+V.escapeSelector(t)+"']")):t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){V.data(this,"ui-tabs-destroy")?V(this).remove():V(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var t=V(this),e=t.data("ui-tabs-aria-controls");e?t.attr("aria-controls",e).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),Array.isArray(t)?V.map(t,function(t){return t!==i?t:null}):V.map(this.tabs,function(t,e){return e!==i?e:null})),this._setOptionDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==V.inArray(t,e))return;e=Array.isArray(e)?V.merge([t],e).sort():[t]}this._setOptionDisabled(e)}},load:function(t,s){t=this._getIndex(t);function n(t,e){"abort"===e&&o.panels.stop(!1,!0),o._removeClass(i,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===o.xhr&&delete o.xhr}var o=this,i=this.tabs.eq(t),t=i.find(".ui-tabs-anchor"),a=this._getPanelForTab(i),r={tab:i,panel:a};this._isLocal(t[0])||(this.xhr=V.ajax(this._ajaxSettings(t,s,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(i,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,i){setTimeout(function(){a.html(t),o._trigger("load",s,r),n(i,e)},1)}).fail(function(t,e){setTimeout(function(){n(t,e)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href").replace(/#.*$/,""),beforeSend:function(t,e){return n._trigger("beforeLoad",i,V.extend({jqXHR:t,ajaxSettings:e},s))}}},_getPanelForTab:function(t){t=V(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+t))}}),!1!==V.uiBackCompat&&V.widget("ui.tabs",V.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}});V.ui.tabs;V.widget("ui.tooltip",{version:"1.13.2",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=V(this).attr("title");return V("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(t,e){var i=(t.attr("aria-describedby")||"").split(/\s+/);i.push(e),t.data("ui-tooltip-id",e).attr("aria-describedby",String.prototype.trim.call(i.join(" ")))},_removeDescribedBy:function(t){var e=t.data("ui-tooltip-id"),i=(t.attr("aria-describedby")||"").split(/\s+/),e=V.inArray(e,i);-1!==e&&i.splice(e,1),t.removeData("ui-tooltip-id"),(i=String.prototype.trim.call(i.join(" ")))?t.attr("aria-describedby",i):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=V("
    ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=V([])},_setOption:function(t,e){var i=this;this._super(t,e),"content"===t&&V.each(this.tooltips,function(t,e){i._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur");i.target=i.currentTarget=e.element[0],s.close(i,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var t=V(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")}))},_enable:function(){this.disabledTitles.each(function(){var t=V(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))}),this.disabledTitles=V([])},open:function(t){var i=this,e=V(t?t.target:this.element).closest(this.options.items);e.length&&!e.data("ui-tooltip-id")&&(e.attr("title")&&e.data("ui-tooltip-title",e.attr("title")),e.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&e.parents().each(function(){var t,e=V(this);e.data("ui-tooltip-open")&&((t=V.Event("blur")).target=t.currentTarget=this,i.close(t,!0)),e.attr("title")&&(e.uniqueId(),i.parents[this.id]={element:this,title:e.attr("title")},e.attr("title",""))}),this._registerCloseHandlers(t,e),this._updateContent(e,t))},_updateContent:function(e,i){var t=this.options.content,s=this,n=i?i.type:null;if("string"==typeof t||t.nodeType||t.jquery)return this._open(i,e,t);(t=t.call(e[0],function(t){s._delay(function(){e.data("ui-tooltip-open")&&(i&&(i.type=n),this._open(i,e,t))})}))&&this._open(i,e,t)},_open:function(t,e,i){var s,n,o,a=V.extend({},this.options.position);function r(t){a.of=t,n.is(":hidden")||n.position(a)}i&&((s=this._find(e))?s.tooltip.find(".ui-tooltip-content").html(i):(e.is("[title]")&&(t&&"mouseover"===t.type?e.attr("title",""):e.removeAttr("title")),s=this._tooltip(e),n=s.tooltip,this._addDescribedBy(e,n.attr("id")),n.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),(i=V("
    ").html(n.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),i.removeAttr("id").find("[id]").removeAttr("id"),i.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:r}),r(t)):n.position(V.extend({of:e},this.options.position)),n.hide(),this._show(n,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(o=this.delayedShow=setInterval(function(){n.is(":visible")&&(r(a.of),clearInterval(o))},13)),this._trigger("open",t,{tooltip:n})))},_registerCloseHandlers:function(t,e){var i={keyup:function(t){t.keyCode===V.ui.keyCode.ESCAPE&&((t=V.Event(t)).currentTarget=e[0],this.close(t,!0))}};e[0]!==this.element[0]&&(i.remove=function(){var t=this._find(e);t&&this._removeTooltip(t.tooltip)}),t&&"mouseover"!==t.type||(i.mouseleave="close"),t&&"focusin"!==t.type||(i.focusout="close"),this._on(!0,e,i)},close:function(t){var e,i=this,s=V(t?t.currentTarget:this.element),n=this._find(s);n?(e=n.tooltip,n.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.hiding=!0,e.stop(!0),this._hide(e,this.options.hide,function(){i._removeTooltip(V(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&V.each(this.parents,function(t,e){V(e.element).attr("title",e.title),delete i.parents[t]}),n.closing=!0,this._trigger("close",t,{tooltip:e}),n.hiding||(n.closing=!1))):s.removeData("ui-tooltip-open")},_tooltip:function(t){var e=V("
    ").attr("role","tooltip"),i=V("
    ").appendTo(e),s=e.uniqueId().attr("id");return this._addClass(i,"ui-tooltip-content"),this._addClass(e,"ui-tooltip","ui-widget ui-widget-content"),e.appendTo(this._appendTo(t)),this.tooltips[s]={element:t,tooltip:e}},_find:function(t){t=t.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(t){clearInterval(this.delayedShow),t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){t=t.closest(".ui-front, dialog");return t=!t.length?this.document[0].body:t},_destroy:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur"),e=e.element;i.target=i.currentTarget=e[0],s.close(i,!0),V("#"+t).remove(),e.data("ui-tooltip-title")&&(e.attr("title")||e.attr("title",e.data("ui-tooltip-title")),e.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),!1!==V.uiBackCompat&&V.widget("ui.tooltip",V.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}});V.ui.tooltip}); \ No newline at end of file diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php b/htdocs/includes/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php index 16689992c4c..7f7ed84e0dd 100644 --- a/htdocs/includes/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php +++ b/htdocs/includes/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php @@ -762,7 +762,7 @@ class JavascriptRenderer return $uris; } - if (substr($uri, 0, 1) === '/' || preg_match('/^([a-zA-Z]+:\/\/|[a-zA-Z]:\/|[a-zA-Z]:\\\)/', $uri)) { + if ($uri && (substr($uri, 0, 1) === '/' || preg_match('/^([a-zA-Z]+:\/\/|[a-zA-Z]:\/|[a-zA-Z]:\\\)/', $uri))) { return $uri; } return rtrim($root, '/') . "/$uri"; @@ -778,7 +778,7 @@ class JavascriptRenderer protected function filterAssetArray($array, $type = null) { $types = array('css', 'js', 'inline_css', 'inline_js', 'inline_head'); - $typeIndex = array_search(strtolower($type), $types); + $typeIndex = is_null($type) ? false : array_search(strtolower($type), $types); return $typeIndex !== false ? $array[$typeIndex] : $array; } diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css deleted file mode 100644 index 3559d52d8c2..00000000000 --- a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'PhpDebugbarFontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.phpdebugbar-fa{display:inline-block;font:normal normal normal 14px/1 PhpDebugbarFontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.phpdebugbar-fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.phpdebugbar-fa-2x{font-size:2em}.phpdebugbar-fa-3x{font-size:3em}.phpdebugbar-fa-4x{font-size:4em}.phpdebugbar-fa-5x{font-size:5em}.phpdebugbar-fa-fw{width:1.28571429em;text-align:center}.phpdebugbar-fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.phpdebugbar-fa-ul>li{position:relative}.phpdebugbar-fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.phpdebugbar-fa-li.phpdebugbar-fa-lg{left:-1.85714286em}.phpdebugbar-fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.phpdebugbar-fa-pull-left{float:left}.phpdebugbar-fa-pull-right{float:right}.phpdebugbar-fa.phpdebugbar-fa-pull-left{margin-right:.3em}.phpdebugbar-fa.phpdebugbar-fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.phpdebugbar-fa.pull-left{margin-right:.3em}.phpdebugbar-fa.pull-right{margin-left:.3em}.phpdebugbar-fa-spin{-webkit-animation:phpdebugbar-fa-spin 2s infinite linear;animation:phpdebugbar-fa-spin 2s infinite linear}.phpdebugbar-fa-pulse{-webkit-animation:phpdebugbar-fa-spin 1s infinite steps(8);animation:phpdebugbar-fa-spin 1s infinite steps(8)}@-webkit-keyframes phpdebugbar-fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes phpdebugbar-fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.phpdebugbar-fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.phpdebugbar-fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.phpdebugbar-fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.phpdebugbar-fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.phpdebugbar-fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .phpdebugbar-fa-rotate-90,:root .phpdebugbar-fa-rotate-180,:root .phpdebugbar-fa-rotate-270,:root .phpdebugbar-fa-flip-horizontal,:root .phpdebugbar-fa-flip-vertical{filter:none}.phpdebugbar-fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.phpdebugbar-fa-stack-1x,.phpdebugbar-fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.phpdebugbar-fa-stack-1x{line-height:inherit}.phpdebugbar-fa-stack-2x{font-size:2em}.phpdebugbar-fa-inverse{color:#fff}.phpdebugbar-fa-glass:before{content:"\f000"}.phpdebugbar-fa-music:before{content:"\f001"}.phpdebugbar-fa-search:before{content:"\f002"}.phpdebugbar-fa-envelope-o:before{content:"\f003"}.phpdebugbar-fa-heart:before{content:"\f004"}.phpdebugbar-fa-star:before{content:"\f005"}.phpdebugbar-fa-star-o:before{content:"\f006"}.phpdebugbar-fa-user:before{content:"\f007"}.phpdebugbar-fa-film:before{content:"\f008"}.phpdebugbar-fa-th-large:before{content:"\f009"}.phpdebugbar-fa-th:before{content:"\f00a"}.phpdebugbar-fa-th-list:before{content:"\f00b"}.phpdebugbar-fa-check:before{content:"\f00c"}.phpdebugbar-fa-remove:before,.phpdebugbar-fa-close:before,.phpdebugbar-fa-times:before{content:"\f00d"}.phpdebugbar-fa-search-plus:before{content:"\f00e"}.phpdebugbar-fa-search-minus:before{content:"\f010"}.phpdebugbar-fa-power-off:before{content:"\f011"}.phpdebugbar-fa-signal:before{content:"\f012"}.phpdebugbar-fa-gear:before,.phpdebugbar-fa-cog:before{content:"\f013"}.phpdebugbar-fa-trash-o:before{content:"\f014"}.phpdebugbar-fa-home:before{content:"\f015"}.phpdebugbar-fa-file-o:before{content:"\f016"}.phpdebugbar-fa-clock-o:before{content:"\f017"}.phpdebugbar-fa-road:before{content:"\f018"}.phpdebugbar-fa-download:before{content:"\f019"}.phpdebugbar-fa-arrow-circle-o-down:before{content:"\f01a"}.phpdebugbar-fa-arrow-circle-o-up:before{content:"\f01b"}.phpdebugbar-fa-inbox:before{content:"\f01c"}.phpdebugbar-fa-play-circle-o:before{content:"\f01d"}.phpdebugbar-fa-rotate-right:before,.phpdebugbar-fa-repeat:before{content:"\f01e"}.phpdebugbar-fa-refresh:before{content:"\f021"}.phpdebugbar-fa-list-alt:before{content:"\f022"}.phpdebugbar-fa-lock:before{content:"\f023"}.phpdebugbar-fa-flag:before{content:"\f024"}.phpdebugbar-fa-headphones:before{content:"\f025"}.phpdebugbar-fa-volume-off:before{content:"\f026"}.phpdebugbar-fa-volume-down:before{content:"\f027"}.phpdebugbar-fa-volume-up:before{content:"\f028"}.phpdebugbar-fa-qrcode:before{content:"\f029"}.phpdebugbar-fa-barcode:before{content:"\f02a"}.phpdebugbar-fa-tag:before{content:"\f02b"}.phpdebugbar-fa-tags:before{content:"\f02c"}.phpdebugbar-fa-book:before{content:"\f02d"}.phpdebugbar-fa-bookmark:before{content:"\f02e"}.phpdebugbar-fa-print:before{content:"\f02f"}.phpdebugbar-fa-camera:before{content:"\f030"}.phpdebugbar-fa-font:before{content:"\f031"}.phpdebugbar-fa-bold:before{content:"\f032"}.phpdebugbar-fa-italic:before{content:"\f033"}.phpdebugbar-fa-text-height:before{content:"\f034"}.phpdebugbar-fa-text-width:before{content:"\f035"}.phpdebugbar-fa-align-left:before{content:"\f036"}.phpdebugbar-fa-align-center:before{content:"\f037"}.phpdebugbar-fa-align-right:before{content:"\f038"}.phpdebugbar-fa-align-justify:before{content:"\f039"}.phpdebugbar-fa-list:before{content:"\f03a"}.phpdebugbar-fa-dedent:before,.phpdebugbar-fa-outdent:before{content:"\f03b"}.phpdebugbar-fa-indent:before{content:"\f03c"}.phpdebugbar-fa-video-camera:before{content:"\f03d"}.phpdebugbar-fa-photo:before,.phpdebugbar-fa-image:before,.phpdebugbar-fa-picture-o:before{content:"\f03e"}.phpdebugbar-fa-pencil:before{content:"\f040"}.phpdebugbar-fa-map-marker:before{content:"\f041"}.phpdebugbar-fa-adjust:before{content:"\f042"}.phpdebugbar-fa-tint:before{content:"\f043"}.phpdebugbar-fa-edit:before,.phpdebugbar-fa-pencil-square-o:before{content:"\f044"}.phpdebugbar-fa-share-square-o:before{content:"\f045"}.phpdebugbar-fa-check-square-o:before{content:"\f046"}.phpdebugbar-fa-arrows:before{content:"\f047"}.phpdebugbar-fa-step-backward:before{content:"\f048"}.phpdebugbar-fa-fast-backward:before{content:"\f049"}.phpdebugbar-fa-backward:before{content:"\f04a"}.phpdebugbar-fa-play:before{content:"\f04b"}.phpdebugbar-fa-pause:before{content:"\f04c"}.phpdebugbar-fa-stop:before{content:"\f04d"}.phpdebugbar-fa-forward:before{content:"\f04e"}.phpdebugbar-fa-fast-forward:before{content:"\f050"}.phpdebugbar-fa-step-forward:before{content:"\f051"}.phpdebugbar-fa-eject:before{content:"\f052"}.phpdebugbar-fa-chevron-left:before{content:"\f053"}.phpdebugbar-fa-chevron-right:before{content:"\f054"}.phpdebugbar-fa-plus-circle:before{content:"\f055"}.phpdebugbar-fa-minus-circle:before{content:"\f056"}.phpdebugbar-fa-times-circle:before{content:"\f057"}.phpdebugbar-fa-check-circle:before{content:"\f058"}.phpdebugbar-fa-question-circle:before{content:"\f059"}.phpdebugbar-fa-info-circle:before{content:"\f05a"}.phpdebugbar-fa-crosshairs:before{content:"\f05b"}.phpdebugbar-fa-times-circle-o:before{content:"\f05c"}.phpdebugbar-fa-check-circle-o:before{content:"\f05d"}.phpdebugbar-fa-ban:before{content:"\f05e"}.phpdebugbar-fa-arrow-left:before{content:"\f060"}.phpdebugbar-fa-arrow-right:before{content:"\f061"}.phpdebugbar-fa-arrow-up:before{content:"\f062"}.phpdebugbar-fa-arrow-down:before{content:"\f063"}.phpdebugbar-fa-mail-forward:before,.phpdebugbar-fa-share:before{content:"\f064"}.phpdebugbar-fa-expand:before{content:"\f065"}.phpdebugbar-fa-compress:before{content:"\f066"}.phpdebugbar-fa-plus:before{content:"\f067"}.phpdebugbar-fa-minus:before{content:"\f068"}.phpdebugbar-fa-asterisk:before{content:"\f069"}.phpdebugbar-fa-exclamation-circle:before{content:"\f06a"}.phpdebugbar-fa-gift:before{content:"\f06b"}.phpdebugbar-fa-leaf:before{content:"\f06c"}.phpdebugbar-fa-fire:before{content:"\f06d"}.phpdebugbar-fa-eye:before{content:"\f06e"}.phpdebugbar-fa-eye-slash:before{content:"\f070"}.phpdebugbar-fa-warning:before,.phpdebugbar-fa-exclamation-triangle:before{content:"\f071"}.phpdebugbar-fa-plane:before{content:"\f072"}.phpdebugbar-fa-calendar:before{content:"\f073"}.phpdebugbar-fa-random:before{content:"\f074"}.phpdebugbar-fa-comment:before{content:"\f075"}.phpdebugbar-fa-magnet:before{content:"\f076"}.phpdebugbar-fa-chevron-up:before{content:"\f077"}.phpdebugbar-fa-chevron-down:before{content:"\f078"}.phpdebugbar-fa-retweet:before{content:"\f079"}.phpdebugbar-fa-shopping-cart:before{content:"\f07a"}.phpdebugbar-fa-folder:before{content:"\f07b"}.phpdebugbar-fa-folder-open:before{content:"\f07c"}.phpdebugbar-fa-arrows-v:before{content:"\f07d"}.phpdebugbar-fa-arrows-h:before{content:"\f07e"}.phpdebugbar-fa-bar-chart-o:before,.phpdebugbar-fa-bar-chart:before{content:"\f080"}.phpdebugbar-fa-twitter-square:before{content:"\f081"}.phpdebugbar-fa-facebook-square:before{content:"\f082"}.phpdebugbar-fa-camera-retro:before{content:"\f083"}.phpdebugbar-fa-key:before{content:"\f084"}.phpdebugbar-fa-gears:before,.phpdebugbar-fa-cogs:before{content:"\f085"}.phpdebugbar-fa-comments:before{content:"\f086"}.phpdebugbar-fa-thumbs-o-up:before{content:"\f087"}.phpdebugbar-fa-thumbs-o-down:before{content:"\f088"}.phpdebugbar-fa-star-half:before{content:"\f089"}.phpdebugbar-fa-heart-o:before{content:"\f08a"}.phpdebugbar-fa-sign-out:before{content:"\f08b"}.phpdebugbar-fa-linkedin-square:before{content:"\f08c"}.phpdebugbar-fa-thumb-tack:before{content:"\f08d"}.phpdebugbar-fa-external-link:before{content:"\f08e"}.phpdebugbar-fa-sign-in:before{content:"\f090"}.phpdebugbar-fa-trophy:before{content:"\f091"}.phpdebugbar-fa-github-square:before{content:"\f092"}.phpdebugbar-fa-upload:before{content:"\f093"}.phpdebugbar-fa-lemon-o:before{content:"\f094"}.phpdebugbar-fa-phone:before{content:"\f095"}.phpdebugbar-fa-square-o:before{content:"\f096"}.phpdebugbar-fa-bookmark-o:before{content:"\f097"}.phpdebugbar-fa-phone-square:before{content:"\f098"}.phpdebugbar-fa-twitter:before{content:"\f099"}.phpdebugbar-fa-facebook-f:before,.phpdebugbar-fa-facebook:before{content:"\f09a"}.phpdebugbar-fa-github:before{content:"\f09b"}.phpdebugbar-fa-unlock:before{content:"\f09c"}.phpdebugbar-fa-credit-card:before{content:"\f09d"}.phpdebugbar-fa-feed:before,.phpdebugbar-fa-rss:before{content:"\f09e"}.phpdebugbar-fa-hdd-o:before{content:"\f0a0"}.phpdebugbar-fa-bullhorn:before{content:"\f0a1"}.phpdebugbar-fa-bell:before{content:"\f0f3"}.phpdebugbar-fa-certificate:before{content:"\f0a3"}.phpdebugbar-fa-hand-o-right:before{content:"\f0a4"}.phpdebugbar-fa-hand-o-left:before{content:"\f0a5"}.phpdebugbar-fa-hand-o-up:before{content:"\f0a6"}.phpdebugbar-fa-hand-o-down:before{content:"\f0a7"}.phpdebugbar-fa-arrow-circle-left:before{content:"\f0a8"}.phpdebugbar-fa-arrow-circle-right:before{content:"\f0a9"}.phpdebugbar-fa-arrow-circle-up:before{content:"\f0aa"}.phpdebugbar-fa-arrow-circle-down:before{content:"\f0ab"}.phpdebugbar-fa-globe:before{content:"\f0ac"}.phpdebugbar-fa-wrench:before{content:"\f0ad"}.phpdebugbar-fa-tasks:before{content:"\f0ae"}.phpdebugbar-fa-filter:before{content:"\f0b0"}.phpdebugbar-fa-briefcase:before{content:"\f0b1"}.phpdebugbar-fa-arrows-alt:before{content:"\f0b2"}.phpdebugbar-fa-group:before,.phpdebugbar-fa-users:before{content:"\f0c0"}.phpdebugbar-fa-chain:before,.phpdebugbar-fa-link:before{content:"\f0c1"}.phpdebugbar-fa-cloud:before{content:"\f0c2"}.phpdebugbar-fa-flask:before{content:"\f0c3"}.phpdebugbar-fa-cut:before,.phpdebugbar-fa-scissors:before{content:"\f0c4"}.phpdebugbar-fa-copy:before,.phpdebugbar-fa-files-o:before{content:"\f0c5"}.phpdebugbar-fa-paperclip:before{content:"\f0c6"}.phpdebugbar-fa-save:before,.phpdebugbar-fa-floppy-o:before{content:"\f0c7"}.phpdebugbar-fa-square:before{content:"\f0c8"}.phpdebugbar-fa-navicon:before,.phpdebugbar-fa-reorder:before,.phpdebugbar-fa-bars:before{content:"\f0c9"}.phpdebugbar-fa-list-ul:before{content:"\f0ca"}.phpdebugbar-fa-list-ol:before{content:"\f0cb"}.phpdebugbar-fa-strikethrough:before{content:"\f0cc"}.phpdebugbar-fa-underline:before{content:"\f0cd"}.phpdebugbar-fa-table:before{content:"\f0ce"}.phpdebugbar-fa-magic:before{content:"\f0d0"}.phpdebugbar-fa-truck:before{content:"\f0d1"}.phpdebugbar-fa-pinterest:before{content:"\f0d2"}.phpdebugbar-fa-pinterest-square:before{content:"\f0d3"}.phpdebugbar-fa-google-plus-square:before{content:"\f0d4"}.phpdebugbar-fa-google-plus:before{content:"\f0d5"}.phpdebugbar-fa-money:before{content:"\f0d6"}.phpdebugbar-fa-caret-down:before{content:"\f0d7"}.phpdebugbar-fa-caret-up:before{content:"\f0d8"}.phpdebugbar-fa-caret-left:before{content:"\f0d9"}.phpdebugbar-fa-caret-right:before{content:"\f0da"}.phpdebugbar-fa-columns:before{content:"\f0db"}.phpdebugbar-fa-unsorted:before,.phpdebugbar-fa-sort:before{content:"\f0dc"}.phpdebugbar-fa-sort-down:before,.phpdebugbar-fa-sort-desc:before{content:"\f0dd"}.phpdebugbar-fa-sort-up:before,.phpdebugbar-fa-sort-asc:before{content:"\f0de"}.phpdebugbar-fa-envelope:before{content:"\f0e0"}.phpdebugbar-fa-linkedin:before{content:"\f0e1"}.phpdebugbar-fa-rotate-left:before,.phpdebugbar-fa-undo:before{content:"\f0e2"}.phpdebugbar-fa-legal:before,.phpdebugbar-fa-gavel:before{content:"\f0e3"}.phpdebugbar-fa-dashboard:before,.phpdebugbar-fa-tachometer:before{content:"\f0e4"}.phpdebugbar-fa-comment-o:before{content:"\f0e5"}.phpdebugbar-fa-comments-o:before{content:"\f0e6"}.phpdebugbar-fa-flash:before,.phpdebugbar-fa-bolt:before{content:"\f0e7"}.phpdebugbar-fa-sitemap:before{content:"\f0e8"}.phpdebugbar-fa-umbrella:before{content:"\f0e9"}.phpdebugbar-fa-paste:before,.phpdebugbar-fa-clipboard:before{content:"\f0ea"}.phpdebugbar-fa-lightbulb-o:before{content:"\f0eb"}.phpdebugbar-fa-exchange:before{content:"\f0ec"}.phpdebugbar-fa-cloud-download:before{content:"\f0ed"}.phpdebugbar-fa-cloud-upload:before{content:"\f0ee"}.phpdebugbar-fa-user-md:before{content:"\f0f0"}.phpdebugbar-fa-stethoscope:before{content:"\f0f1"}.phpdebugbar-fa-suitcase:before{content:"\f0f2"}.phpdebugbar-fa-bell-o:before{content:"\f0a2"}.phpdebugbar-fa-coffee:before{content:"\f0f4"}.phpdebugbar-fa-cutlery:before{content:"\f0f5"}.phpdebugbar-fa-file-text-o:before{content:"\f0f6"}.phpdebugbar-fa-building-o:before{content:"\f0f7"}.phpdebugbar-fa-hospital-o:before{content:"\f0f8"}.phpdebugbar-fa-ambulance:before{content:"\f0f9"}.phpdebugbar-fa-medkit:before{content:"\f0fa"}.phpdebugbar-fa-fighter-jet:before{content:"\f0fb"}.phpdebugbar-fa-beer:before{content:"\f0fc"}.phpdebugbar-fa-h-square:before{content:"\f0fd"}.phpdebugbar-fa-plus-square:before{content:"\f0fe"}.phpdebugbar-fa-angle-double-left:before{content:"\f100"}.phpdebugbar-fa-angle-double-right:before{content:"\f101"}.phpdebugbar-fa-angle-double-up:before{content:"\f102"}.phpdebugbar-fa-angle-double-down:before{content:"\f103"}.phpdebugbar-fa-angle-left:before{content:"\f104"}.phpdebugbar-fa-angle-right:before{content:"\f105"}.phpdebugbar-fa-angle-up:before{content:"\f106"}.phpdebugbar-fa-angle-down:before{content:"\f107"}.phpdebugbar-fa-desktop:before{content:"\f108"}.phpdebugbar-fa-laptop:before{content:"\f109"}.phpdebugbar-fa-tablet:before{content:"\f10a"}.phpdebugbar-fa-mobile-phone:before,.phpdebugbar-fa-mobile:before{content:"\f10b"}.phpdebugbar-fa-circle-o:before{content:"\f10c"}.phpdebugbar-fa-quote-left:before{content:"\f10d"}.phpdebugbar-fa-quote-right:before{content:"\f10e"}.phpdebugbar-fa-spinner:before{content:"\f110"}.phpdebugbar-fa-circle:before{content:"\f111"}.phpdebugbar-fa-mail-reply:before,.phpdebugbar-fa-reply:before{content:"\f112"}.phpdebugbar-fa-github-alt:before{content:"\f113"}.phpdebugbar-fa-folder-o:before{content:"\f114"}.phpdebugbar-fa-folder-open-o:before{content:"\f115"}.phpdebugbar-fa-smile-o:before{content:"\f118"}.phpdebugbar-fa-frown-o:before{content:"\f119"}.phpdebugbar-fa-meh-o:before{content:"\f11a"}.phpdebugbar-fa-gamepad:before{content:"\f11b"}.phpdebugbar-fa-keyboard-o:before{content:"\f11c"}.phpdebugbar-fa-flag-o:before{content:"\f11d"}.phpdebugbar-fa-flag-checkered:before{content:"\f11e"}.phpdebugbar-fa-terminal:before{content:"\f120"}.phpdebugbar-fa-code:before{content:"\f121"}.phpdebugbar-fa-mail-reply-all:before,.phpdebugbar-fa-reply-all:before{content:"\f122"}.phpdebugbar-fa-star-half-empty:before,.phpdebugbar-fa-star-half-full:before,.phpdebugbar-fa-star-half-o:before{content:"\f123"}.phpdebugbar-fa-location-arrow:before{content:"\f124"}.phpdebugbar-fa-crop:before{content:"\f125"}.phpdebugbar-fa-code-fork:before{content:"\f126"}.phpdebugbar-fa-unlink:before,.phpdebugbar-fa-chain-broken:before{content:"\f127"}.phpdebugbar-fa-question:before{content:"\f128"}.phpdebugbar-fa-info:before{content:"\f129"}.phpdebugbar-fa-exclamation:before{content:"\f12a"}.phpdebugbar-fa-superscript:before{content:"\f12b"}.phpdebugbar-fa-subscript:before{content:"\f12c"}.phpdebugbar-fa-eraser:before{content:"\f12d"}.phpdebugbar-fa-puzzle-piece:before{content:"\f12e"}.phpdebugbar-fa-microphone:before{content:"\f130"}.phpdebugbar-fa-microphone-slash:before{content:"\f131"}.phpdebugbar-fa-shield:before{content:"\f132"}.phpdebugbar-fa-calendar-o:before{content:"\f133"}.phpdebugbar-fa-fire-extinguisher:before{content:"\f134"}.phpdebugbar-fa-rocket:before{content:"\f135"}.phpdebugbar-fa-maxcdn:before{content:"\f136"}.phpdebugbar-fa-chevron-circle-left:before{content:"\f137"}.phpdebugbar-fa-chevron-circle-right:before{content:"\f138"}.phpdebugbar-fa-chevron-circle-up:before{content:"\f139"}.phpdebugbar-fa-chevron-circle-down:before{content:"\f13a"}.phpdebugbar-fa-html5:before{content:"\f13b"}.phpdebugbar-fa-css3:before{content:"\f13c"}.phpdebugbar-fa-anchor:before{content:"\f13d"}.phpdebugbar-fa-unlock-alt:before{content:"\f13e"}.phpdebugbar-fa-bullseye:before{content:"\f140"}.phpdebugbar-fa-ellipsis-h:before{content:"\f141"}.phpdebugbar-fa-ellipsis-v:before{content:"\f142"}.phpdebugbar-fa-rss-square:before{content:"\f143"}.phpdebugbar-fa-play-circle:before{content:"\f144"}.phpdebugbar-fa-ticket:before{content:"\f145"}.phpdebugbar-fa-minus-square:before{content:"\f146"}.phpdebugbar-fa-minus-square-o:before{content:"\f147"}.phpdebugbar-fa-level-up:before{content:"\f148"}.phpdebugbar-fa-level-down:before{content:"\f149"}.phpdebugbar-fa-check-square:before{content:"\f14a"}.phpdebugbar-fa-pencil-square:before{content:"\f14b"}.phpdebugbar-fa-external-link-square:before{content:"\f14c"}.phpdebugbar-fa-share-square:before{content:"\f14d"}.phpdebugbar-fa-compass:before{content:"\f14e"}.phpdebugbar-fa-toggle-down:before,.phpdebugbar-fa-caret-square-o-down:before{content:"\f150"}.phpdebugbar-fa-toggle-up:before,.phpdebugbar-fa-caret-square-o-up:before{content:"\f151"}.phpdebugbar-fa-toggle-right:before,.phpdebugbar-fa-caret-square-o-right:before{content:"\f152"}.phpdebugbar-fa-euro:before,.phpdebugbar-fa-eur:before{content:"\f153"}.phpdebugbar-fa-gbp:before{content:"\f154"}.phpdebugbar-fa-dollar:before,.phpdebugbar-fa-usd:before{content:"\f155"}.phpdebugbar-fa-rupee:before,.phpdebugbar-fa-inr:before{content:"\f156"}.phpdebugbar-fa-cny:before,.phpdebugbar-fa-rmb:before,.phpdebugbar-fa-yen:before,.phpdebugbar-fa-jpy:before{content:"\f157"}.phpdebugbar-fa-ruble:before,.phpdebugbar-fa-rouble:before,.phpdebugbar-fa-rub:before{content:"\f158"}.phpdebugbar-fa-won:before,.phpdebugbar-fa-krw:before{content:"\f159"}.phpdebugbar-fa-bitcoin:before,.phpdebugbar-fa-btc:before{content:"\f15a"}.phpdebugbar-fa-file:before{content:"\f15b"}.phpdebugbar-fa-file-text:before{content:"\f15c"}.phpdebugbar-fa-sort-alpha-asc:before{content:"\f15d"}.phpdebugbar-fa-sort-alpha-desc:before{content:"\f15e"}.phpdebugbar-fa-sort-amount-asc:before{content:"\f160"}.phpdebugbar-fa-sort-amount-desc:before{content:"\f161"}.phpdebugbar-fa-sort-numeric-asc:before{content:"\f162"}.phpdebugbar-fa-sort-numeric-desc:before{content:"\f163"}.phpdebugbar-fa-thumbs-up:before{content:"\f164"}.phpdebugbar-fa-thumbs-down:before{content:"\f165"}.phpdebugbar-fa-youtube-square:before{content:"\f166"}.phpdebugbar-fa-youtube:before{content:"\f167"}.phpdebugbar-fa-xing:before{content:"\f168"}.phpdebugbar-fa-xing-square:before{content:"\f169"}.phpdebugbar-fa-youtube-play:before{content:"\f16a"}.phpdebugbar-fa-dropbox:before{content:"\f16b"}.phpdebugbar-fa-stack-overflow:before{content:"\f16c"}.phpdebugbar-fa-instagram:before{content:"\f16d"}.phpdebugbar-fa-flickr:before{content:"\f16e"}.phpdebugbar-fa-adn:before{content:"\f170"}.phpdebugbar-fa-bitbucket:before{content:"\f171"}.phpdebugbar-fa-bitbucket-square:before{content:"\f172"}.phpdebugbar-fa-tumblr:before{content:"\f173"}.phpdebugbar-fa-tumblr-square:before{content:"\f174"}.phpdebugbar-fa-long-arrow-down:before{content:"\f175"}.phpdebugbar-fa-long-arrow-up:before{content:"\f176"}.phpdebugbar-fa-long-arrow-left:before{content:"\f177"}.phpdebugbar-fa-long-arrow-right:before{content:"\f178"}.phpdebugbar-fa-apple:before{content:"\f179"}.phpdebugbar-fa-windows:before{content:"\f17a"}.phpdebugbar-fa-android:before{content:"\f17b"}.phpdebugbar-fa-linux:before{content:"\f17c"}.phpdebugbar-fa-dribbble:before{content:"\f17d"}.phpdebugbar-fa-skype:before{content:"\f17e"}.phpdebugbar-fa-foursquare:before{content:"\f180"}.phpdebugbar-fa-trello:before{content:"\f181"}.phpdebugbar-fa-female:before{content:"\f182"}.phpdebugbar-fa-male:before{content:"\f183"}.phpdebugbar-fa-gittip:before,.phpdebugbar-fa-gratipay:before{content:"\f184"}.phpdebugbar-fa-sun-o:before{content:"\f185"}.phpdebugbar-fa-moon-o:before{content:"\f186"}.phpdebugbar-fa-archive:before{content:"\f187"}.phpdebugbar-fa-bug:before{content:"\f188"}.phpdebugbar-fa-vk:before{content:"\f189"}.phpdebugbar-fa-weibo:before{content:"\f18a"}.phpdebugbar-fa-renren:before{content:"\f18b"}.phpdebugbar-fa-pagelines:before{content:"\f18c"}.phpdebugbar-fa-stack-exchange:before{content:"\f18d"}.phpdebugbar-fa-arrow-circle-o-right:before{content:"\f18e"}.phpdebugbar-fa-arrow-circle-o-left:before{content:"\f190"}.phpdebugbar-fa-toggle-left:before,.phpdebugbar-fa-caret-square-o-left:before{content:"\f191"}.phpdebugbar-fa-dot-circle-o:before{content:"\f192"}.phpdebugbar-fa-wheelchair:before{content:"\f193"}.phpdebugbar-fa-vimeo-square:before{content:"\f194"}.phpdebugbar-fa-turkish-lira:before,.phpdebugbar-fa-try:before{content:"\f195"}.phpdebugbar-fa-plus-square-o:before{content:"\f196"}.phpdebugbar-fa-space-shuttle:before{content:"\f197"}.phpdebugbar-fa-slack:before{content:"\f198"}.phpdebugbar-fa-envelope-square:before{content:"\f199"}.phpdebugbar-fa-wordpress:before{content:"\f19a"}.phpdebugbar-fa-openid:before{content:"\f19b"}.phpdebugbar-fa-institution:before,.phpdebugbar-fa-bank:before,.phpdebugbar-fa-university:before{content:"\f19c"}.phpdebugbar-fa-mortar-board:before,.phpdebugbar-fa-graduation-cap:before{content:"\f19d"}.phpdebugbar-fa-yahoo:before{content:"\f19e"}.phpdebugbar-fa-google:before{content:"\f1a0"}.phpdebugbar-fa-reddit:before{content:"\f1a1"}.phpdebugbar-fa-reddit-square:before{content:"\f1a2"}.phpdebugbar-fa-stumbleupon-circle:before{content:"\f1a3"}.phpdebugbar-fa-stumbleupon:before{content:"\f1a4"}.phpdebugbar-fa-delicious:before{content:"\f1a5"}.phpdebugbar-fa-digg:before{content:"\f1a6"}.phpdebugbar-fa-pied-piper-pp:before{content:"\f1a7"}.phpdebugbar-fa-pied-piper-alt:before{content:"\f1a8"}.phpdebugbar-fa-drupal:before{content:"\f1a9"}.phpdebugbar-fa-joomla:before{content:"\f1aa"}.phpdebugbar-fa-language:before{content:"\f1ab"}.phpdebugbar-fa-fax:before{content:"\f1ac"}.phpdebugbar-fa-building:before{content:"\f1ad"}.phpdebugbar-fa-child:before{content:"\f1ae"}.phpdebugbar-fa-paw:before{content:"\f1b0"}.phpdebugbar-fa-spoon:before{content:"\f1b1"}.phpdebugbar-fa-cube:before{content:"\f1b2"}.phpdebugbar-fa-cubes:before{content:"\f1b3"}.phpdebugbar-fa-behance:before{content:"\f1b4"}.phpdebugbar-fa-behance-square:before{content:"\f1b5"}.phpdebugbar-fa-steam:before{content:"\f1b6"}.phpdebugbar-fa-steam-square:before{content:"\f1b7"}.phpdebugbar-fa-recycle:before{content:"\f1b8"}.phpdebugbar-fa-automobile:before,.phpdebugbar-fa-car:before{content:"\f1b9"}.phpdebugbar-fa-cab:before,.phpdebugbar-fa-taxi:before{content:"\f1ba"}.phpdebugbar-fa-tree:before{content:"\f1bb"}.phpdebugbar-fa-spotify:before{content:"\f1bc"}.phpdebugbar-fa-deviantart:before{content:"\f1bd"}.phpdebugbar-fa-soundcloud:before{content:"\f1be"}.phpdebugbar-fa-database:before{content:"\f1c0"}.phpdebugbar-fa-file-pdf-o:before{content:"\f1c1"}.phpdebugbar-fa-file-word-o:before{content:"\f1c2"}.phpdebugbar-fa-file-excel-o:before{content:"\f1c3"}.phpdebugbar-fa-file-powerpoint-o:before{content:"\f1c4"}.phpdebugbar-fa-file-photo-o:before,.phpdebugbar-fa-file-picture-o:before,.phpdebugbar-fa-file-image-o:before{content:"\f1c5"}.phpdebugbar-fa-file-zip-o:before,.phpdebugbar-fa-file-archive-o:before{content:"\f1c6"}.phpdebugbar-fa-file-sound-o:before,.phpdebugbar-fa-file-audio-o:before{content:"\f1c7"}.phpdebugbar-fa-file-movie-o:before,.phpdebugbar-fa-file-video-o:before{content:"\f1c8"}.phpdebugbar-fa-file-code-o:before{content:"\f1c9"}.phpdebugbar-fa-vine:before{content:"\f1ca"}.phpdebugbar-fa-codepen:before{content:"\f1cb"}.phpdebugbar-fa-jsfiddle:before{content:"\f1cc"}.phpdebugbar-fa-life-bouy:before,.phpdebugbar-fa-life-buoy:before,.phpdebugbar-fa-life-saver:before,.phpdebugbar-fa-support:before,.phpdebugbar-fa-life-ring:before{content:"\f1cd"}.phpdebugbar-fa-circle-o-notch:before{content:"\f1ce"}.phpdebugbar-fa-ra:before,.phpdebugbar-fa-resistance:before,.phpdebugbar-fa-rebel:before{content:"\f1d0"}.phpdebugbar-fa-ge:before,.phpdebugbar-fa-empire:before{content:"\f1d1"}.phpdebugbar-fa-git-square:before{content:"\f1d2"}.phpdebugbar-fa-git:before{content:"\f1d3"}.phpdebugbar-fa-y-combinator-square:before,.phpdebugbar-fa-yc-square:before,.phpdebugbar-fa-hacker-news:before{content:"\f1d4"}.phpdebugbar-fa-tencent-weibo:before{content:"\f1d5"}.phpdebugbar-fa-qq:before{content:"\f1d6"}.phpdebugbar-fa-wechat:before,.phpdebugbar-fa-weixin:before{content:"\f1d7"}.phpdebugbar-fa-send:before,.phpdebugbar-fa-paper-plane:before{content:"\f1d8"}.phpdebugbar-fa-send-o:before,.phpdebugbar-fa-paper-plane-o:before{content:"\f1d9"}.phpdebugbar-fa-history:before{content:"\f1da"}.phpdebugbar-fa-circle-thin:before{content:"\f1db"}.phpdebugbar-fa-header:before{content:"\f1dc"}.phpdebugbar-fa-paragraph:before{content:"\f1dd"}.phpdebugbar-fa-sliders:before{content:"\f1de"}.phpdebugbar-fa-share-alt:before{content:"\f1e0"}.phpdebugbar-fa-share-alt-square:before{content:"\f1e1"}.phpdebugbar-fa-bomb:before{content:"\f1e2"}.phpdebugbar-fa-soccer-ball-o:before,.phpdebugbar-fa-futbol-o:before{content:"\f1e3"}.phpdebugbar-fa-tty:before{content:"\f1e4"}.phpdebugbar-fa-binoculars:before{content:"\f1e5"}.phpdebugbar-fa-plug:before{content:"\f1e6"}.phpdebugbar-fa-slideshare:before{content:"\f1e7"}.phpdebugbar-fa-twitch:before{content:"\f1e8"}.phpdebugbar-fa-yelp:before{content:"\f1e9"}.phpdebugbar-fa-newspaper-o:before{content:"\f1ea"}.phpdebugbar-fa-wifi:before{content:"\f1eb"}.phpdebugbar-fa-calculator:before{content:"\f1ec"}.phpdebugbar-fa-paypal:before{content:"\f1ed"}.phpdebugbar-fa-google-wallet:before{content:"\f1ee"}.phpdebugbar-fa-cc-visa:before{content:"\f1f0"}.phpdebugbar-fa-cc-mastercard:before{content:"\f1f1"}.phpdebugbar-fa-cc-discover:before{content:"\f1f2"}.phpdebugbar-fa-cc-amex:before{content:"\f1f3"}.phpdebugbar-fa-cc-paypal:before{content:"\f1f4"}.phpdebugbar-fa-cc-stripe:before{content:"\f1f5"}.phpdebugbar-fa-bell-slash:before{content:"\f1f6"}.phpdebugbar-fa-bell-slash-o:before{content:"\f1f7"}.phpdebugbar-fa-trash:before{content:"\f1f8"}.phpdebugbar-fa-copyright:before{content:"\f1f9"}.phpdebugbar-fa-at:before{content:"\f1fa"}.phpdebugbar-fa-eyedropper:before{content:"\f1fb"}.phpdebugbar-fa-paint-brush:before{content:"\f1fc"}.phpdebugbar-fa-birthday-cake:before{content:"\f1fd"}.phpdebugbar-fa-area-chart:before{content:"\f1fe"}.phpdebugbar-fa-pie-chart:before{content:"\f200"}.phpdebugbar-fa-line-chart:before{content:"\f201"}.phpdebugbar-fa-lastfm:before{content:"\f202"}.phpdebugbar-fa-lastfm-square:before{content:"\f203"}.phpdebugbar-fa-toggle-off:before{content:"\f204"}.phpdebugbar-fa-toggle-on:before{content:"\f205"}.phpdebugbar-fa-bicycle:before{content:"\f206"}.phpdebugbar-fa-bus:before{content:"\f207"}.phpdebugbar-fa-ioxhost:before{content:"\f208"}.phpdebugbar-fa-angellist:before{content:"\f209"}.phpdebugbar-fa-cc:before{content:"\f20a"}.phpdebugbar-fa-shekel:before,.phpdebugbar-fa-sheqel:before,.phpdebugbar-fa-ils:before{content:"\f20b"}.phpdebugbar-fa-meanpath:before{content:"\f20c"}.phpdebugbar-fa-buysellads:before{content:"\f20d"}.phpdebugbar-fa-connectdevelop:before{content:"\f20e"}.phpdebugbar-fa-dashcube:before{content:"\f210"}.phpdebugbar-fa-forumbee:before{content:"\f211"}.phpdebugbar-fa-leanpub:before{content:"\f212"}.phpdebugbar-fa-sellsy:before{content:"\f213"}.phpdebugbar-fa-shirtsinbulk:before{content:"\f214"}.phpdebugbar-fa-simplybuilt:before{content:"\f215"}.phpdebugbar-fa-skyatlas:before{content:"\f216"}.phpdebugbar-fa-cart-plus:before{content:"\f217"}.phpdebugbar-fa-cart-arrow-down:before{content:"\f218"}.phpdebugbar-fa-diamond:before{content:"\f219"}.phpdebugbar-fa-ship:before{content:"\f21a"}.phpdebugbar-fa-user-secret:before{content:"\f21b"}.phpdebugbar-fa-motorcycle:before{content:"\f21c"}.phpdebugbar-fa-street-view:before{content:"\f21d"}.phpdebugbar-fa-heartbeat:before{content:"\f21e"}.phpdebugbar-fa-venus:before{content:"\f221"}.phpdebugbar-fa-mars:before{content:"\f222"}.phpdebugbar-fa-mercury:before{content:"\f223"}.phpdebugbar-fa-intersex:before,.phpdebugbar-fa-transgender:before{content:"\f224"}.phpdebugbar-fa-transgender-alt:before{content:"\f225"}.phpdebugbar-fa-venus-double:before{content:"\f226"}.phpdebugbar-fa-mars-double:before{content:"\f227"}.phpdebugbar-fa-venus-mars:before{content:"\f228"}.phpdebugbar-fa-mars-stroke:before{content:"\f229"}.phpdebugbar-fa-mars-stroke-v:before{content:"\f22a"}.phpdebugbar-fa-mars-stroke-h:before{content:"\f22b"}.phpdebugbar-fa-neuter:before{content:"\f22c"}.phpdebugbar-fa-genderless:before{content:"\f22d"}.phpdebugbar-fa-facebook-official:before{content:"\f230"}.phpdebugbar-fa-pinterest-p:before{content:"\f231"}.phpdebugbar-fa-whatsapp:before{content:"\f232"}.phpdebugbar-fa-server:before{content:"\f233"}.phpdebugbar-fa-user-plus:before{content:"\f234"}.phpdebugbar-fa-user-times:before{content:"\f235"}.phpdebugbar-fa-hotel:before,.phpdebugbar-fa-bed:before{content:"\f236"}.phpdebugbar-fa-viacoin:before{content:"\f237"}.phpdebugbar-fa-train:before{content:"\f238"}.phpdebugbar-fa-subway:before{content:"\f239"}.phpdebugbar-fa-medium:before{content:"\f23a"}.phpdebugbar-fa-yc:before,.phpdebugbar-fa-y-combinator:before{content:"\f23b"}.phpdebugbar-fa-optin-monster:before{content:"\f23c"}.phpdebugbar-fa-opencart:before{content:"\f23d"}.phpdebugbar-fa-expeditedssl:before{content:"\f23e"}.phpdebugbar-fa-battery-4:before,.phpdebugbar-fa-battery:before,.phpdebugbar-fa-battery-full:before{content:"\f240"}.phpdebugbar-fa-battery-3:before,.phpdebugbar-fa-battery-three-quarters:before{content:"\f241"}.phpdebugbar-fa-battery-2:before,.phpdebugbar-fa-battery-half:before{content:"\f242"}.phpdebugbar-fa-battery-1:before,.phpdebugbar-fa-battery-quarter:before{content:"\f243"}.phpdebugbar-fa-battery-0:before,.phpdebugbar-fa-battery-empty:before{content:"\f244"}.phpdebugbar-fa-mouse-pointer:before{content:"\f245"}.phpdebugbar-fa-i-cursor:before{content:"\f246"}.phpdebugbar-fa-object-group:before{content:"\f247"}.phpdebugbar-fa-object-ungroup:before{content:"\f248"}.phpdebugbar-fa-sticky-note:before{content:"\f249"}.phpdebugbar-fa-sticky-note-o:before{content:"\f24a"}.phpdebugbar-fa-cc-jcb:before{content:"\f24b"}.phpdebugbar-fa-cc-diners-club:before{content:"\f24c"}.phpdebugbar-fa-clone:before{content:"\f24d"}.phpdebugbar-fa-balance-scale:before{content:"\f24e"}.phpdebugbar-fa-hourglass-o:before{content:"\f250"}.phpdebugbar-fa-hourglass-1:before,.phpdebugbar-fa-hourglass-start:before{content:"\f251"}.phpdebugbar-fa-hourglass-2:before,.phpdebugbar-fa-hourglass-half:before{content:"\f252"}.phpdebugbar-fa-hourglass-3:before,.phpdebugbar-fa-hourglass-end:before{content:"\f253"}.phpdebugbar-fa-hourglass:before{content:"\f254"}.phpdebugbar-fa-hand-grab-o:before,.phpdebugbar-fa-hand-rock-o:before{content:"\f255"}.phpdebugbar-fa-hand-stop-o:before,.phpdebugbar-fa-hand-paper-o:before{content:"\f256"}.phpdebugbar-fa-hand-scissors-o:before{content:"\f257"}.phpdebugbar-fa-hand-lizard-o:before{content:"\f258"}.phpdebugbar-fa-hand-spock-o:before{content:"\f259"}.phpdebugbar-fa-hand-pointer-o:before{content:"\f25a"}.phpdebugbar-fa-hand-peace-o:before{content:"\f25b"}.phpdebugbar-fa-trademark:before{content:"\f25c"}.phpdebugbar-fa-registered:before{content:"\f25d"}.phpdebugbar-fa-creative-commons:before{content:"\f25e"}.phpdebugbar-fa-gg:before{content:"\f260"}.phpdebugbar-fa-gg-circle:before{content:"\f261"}.phpdebugbar-fa-tripadvisor:before{content:"\f262"}.phpdebugbar-fa-odnoklassniki:before{content:"\f263"}.phpdebugbar-fa-odnoklassniki-square:before{content:"\f264"}.phpdebugbar-fa-get-pocket:before{content:"\f265"}.phpdebugbar-fa-wikipedia-w:before{content:"\f266"}.phpdebugbar-fa-safari:before{content:"\f267"}.phpdebugbar-fa-chrome:before{content:"\f268"}.phpdebugbar-fa-firefox:before{content:"\f269"}.phpdebugbar-fa-opera:before{content:"\f26a"}.phpdebugbar-fa-internet-explorer:before{content:"\f26b"}.phpdebugbar-fa-tv:before,.phpdebugbar-fa-television:before{content:"\f26c"}.phpdebugbar-fa-contao:before{content:"\f26d"}.phpdebugbar-fa-500px:before{content:"\f26e"}.phpdebugbar-fa-amazon:before{content:"\f270"}.phpdebugbar-fa-calendar-plus-o:before{content:"\f271"}.phpdebugbar-fa-calendar-minus-o:before{content:"\f272"}.phpdebugbar-fa-calendar-times-o:before{content:"\f273"}.phpdebugbar-fa-calendar-check-o:before{content:"\f274"}.phpdebugbar-fa-industry:before{content:"\f275"}.phpdebugbar-fa-map-pin:before{content:"\f276"}.phpdebugbar-fa-map-signs:before{content:"\f277"}.phpdebugbar-fa-map-o:before{content:"\f278"}.phpdebugbar-fa-map:before{content:"\f279"}.phpdebugbar-fa-commenting:before{content:"\f27a"}.phpdebugbar-fa-commenting-o:before{content:"\f27b"}.phpdebugbar-fa-houzz:before{content:"\f27c"}.phpdebugbar-fa-vimeo:before{content:"\f27d"}.phpdebugbar-fa-black-tie:before{content:"\f27e"}.phpdebugbar-fa-fonticons:before{content:"\f280"}.phpdebugbar-fa-reddit-alien:before{content:"\f281"}.phpdebugbar-fa-edge:before{content:"\f282"}.phpdebugbar-fa-credit-card-alt:before{content:"\f283"}.phpdebugbar-fa-codiepie:before{content:"\f284"}.phpdebugbar-fa-modx:before{content:"\f285"}.phpdebugbar-fa-fort-awesome:before{content:"\f286"}.phpdebugbar-fa-usb:before{content:"\f287"}.phpdebugbar-fa-product-hunt:before{content:"\f288"}.phpdebugbar-fa-mixcloud:before{content:"\f289"}.phpdebugbar-fa-scribd:before{content:"\f28a"}.phpdebugbar-fa-pause-circle:before{content:"\f28b"}.phpdebugbar-fa-pause-circle-o:before{content:"\f28c"}.phpdebugbar-fa-stop-circle:before{content:"\f28d"}.phpdebugbar-fa-stop-circle-o:before{content:"\f28e"}.phpdebugbar-fa-shopping-bag:before{content:"\f290"}.phpdebugbar-fa-shopping-basket:before{content:"\f291"}.phpdebugbar-fa-hashtag:before{content:"\f292"}.phpdebugbar-fa-bluetooth:before{content:"\f293"}.phpdebugbar-fa-bluetooth-b:before{content:"\f294"}.phpdebugbar-fa-percent:before{content:"\f295"}.phpdebugbar-fa-gitlab:before{content:"\f296"}.phpdebugbar-fa-wpbeginner:before{content:"\f297"}.phpdebugbar-fa-wpforms:before{content:"\f298"}.phpdebugbar-fa-envira:before{content:"\f299"}.phpdebugbar-fa-universal-access:before{content:"\f29a"}.phpdebugbar-fa-wheelchair-alt:before{content:"\f29b"}.phpdebugbar-fa-question-circle-o:before{content:"\f29c"}.phpdebugbar-fa-blind:before{content:"\f29d"}.phpdebugbar-fa-audio-description:before{content:"\f29e"}.phpdebugbar-fa-volume-control-phone:before{content:"\f2a0"}.phpdebugbar-fa-braille:before{content:"\f2a1"}.phpdebugbar-fa-assistive-listening-systems:before{content:"\f2a2"}.phpdebugbar-fa-asl-interpreting:before,.phpdebugbar-fa-american-sign-language-interpreting:before{content:"\f2a3"}.phpdebugbar-fa-deafness:before,.phpdebugbar-fa-hard-of-hearing:before,.phpdebugbar-fa-deaf:before{content:"\f2a4"}.phpdebugbar-fa-glide:before{content:"\f2a5"}.phpdebugbar-fa-glide-g:before{content:"\f2a6"}.phpdebugbar-fa-signing:before,.phpdebugbar-fa-sign-language:before{content:"\f2a7"}.phpdebugbar-fa-low-vision:before{content:"\f2a8"}.phpdebugbar-fa-viadeo:before{content:"\f2a9"}.phpdebugbar-fa-viadeo-square:before{content:"\f2aa"}.phpdebugbar-fa-snapchat:before{content:"\f2ab"}.phpdebugbar-fa-snapchat-ghost:before{content:"\f2ac"}.phpdebugbar-fa-snapchat-square:before{content:"\f2ad"}.phpdebugbar-fa-pied-piper:before{content:"\f2ae"}.phpdebugbar-fa-first-order:before{content:"\f2b0"}.phpdebugbar-fa-yoast:before{content:"\f2b1"}.phpdebugbar-fa-themeisle:before{content:"\f2b2"}.phpdebugbar-fa-google-plus-circle:before,.phpdebugbar-fa-google-plus-official:before{content:"\f2b3"}.phpdebugbar-fa-fa:before,.phpdebugbar-fa-font-awesome:before{content:"\f2b4"}.phpdebugbar-fa-handshake-o:before{content:"\f2b5"}.phpdebugbar-fa-envelope-open:before{content:"\f2b6"}.phpdebugbar-fa-envelope-open-o:before{content:"\f2b7"}.phpdebugbar-fa-linode:before{content:"\f2b8"}.phpdebugbar-fa-address-book:before{content:"\f2b9"}.phpdebugbar-fa-address-book-o:before{content:"\f2ba"}.phpdebugbar-fa-vcard:before,.phpdebugbar-fa-address-card:before{content:"\f2bb"}.phpdebugbar-fa-vcard-o:before,.phpdebugbar-fa-address-card-o:before{content:"\f2bc"}.phpdebugbar-fa-user-circle:before{content:"\f2bd"}.phpdebugbar-fa-user-circle-o:before{content:"\f2be"}.phpdebugbar-fa-user-o:before{content:"\f2c0"}.phpdebugbar-fa-id-badge:before{content:"\f2c1"}.phpdebugbar-fa-drivers-license:before,.phpdebugbar-fa-id-card:before{content:"\f2c2"}.phpdebugbar-fa-drivers-license-o:before,.phpdebugbar-fa-id-card-o:before{content:"\f2c3"}.phpdebugbar-fa-quora:before{content:"\f2c4"}.phpdebugbar-fa-free-code-camp:before{content:"\f2c5"}.phpdebugbar-fa-telegram:before{content:"\f2c6"}.phpdebugbar-fa-thermometer-4:before,.phpdebugbar-fa-thermometer:before,.phpdebugbar-fa-thermometer-full:before{content:"\f2c7"}.phpdebugbar-fa-thermometer-3:before,.phpdebugbar-fa-thermometer-three-quarters:before{content:"\f2c8"}.phpdebugbar-fa-thermometer-2:before,.phpdebugbar-fa-thermometer-half:before{content:"\f2c9"}.phpdebugbar-fa-thermometer-1:before,.phpdebugbar-fa-thermometer-quarter:before{content:"\f2ca"}.phpdebugbar-fa-thermometer-0:before,.phpdebugbar-fa-thermometer-empty:before{content:"\f2cb"}.phpdebugbar-fa-shower:before{content:"\f2cc"}.phpdebugbar-fa-bathtub:before,.phpdebugbar-fa-s15:before,.phpdebugbar-fa-bath:before{content:"\f2cd"}.phpdebugbar-fa-podcast:before{content:"\f2ce"}.phpdebugbar-fa-window-maximize:before{content:"\f2d0"}.phpdebugbar-fa-window-minimize:before{content:"\f2d1"}.phpdebugbar-fa-window-restore:before{content:"\f2d2"}.phpdebugbar-fa-times-rectangle:before,.phpdebugbar-fa-window-close:before{content:"\f2d3"}.phpdebugbar-fa-times-rectangle-o:before,.phpdebugbar-fa-window-close-o:before{content:"\f2d4"}.phpdebugbar-fa-bandcamp:before{content:"\f2d5"}.phpdebugbar-fa-grav:before{content:"\f2d6"}.phpdebugbar-fa-etsy:before{content:"\f2d7"}.phpdebugbar-fa-imdb:before{content:"\f2d8"}.phpdebugbar-fa-ravelry:before{content:"\f2d9"}.phpdebugbar-fa-eercast:before{content:"\f2da"}.phpdebugbar-fa-microchip:before{content:"\f2db"}.phpdebugbar-fa-snowflake-o:before{content:"\f2dc"}.phpdebugbar-fa-superpowers:before{content:"\f2dd"}.phpdebugbar-fa-wpexplorer:before{content:"\f2de"}.phpdebugbar-fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36e4..00000000000 Binary files a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf and /dev/null differ diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca953f..00000000000 Binary files a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.svg b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845e538..00000000000 --- a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa11..00000000000 Binary files a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4b06..00000000000 Binary files a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2 b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60404..00000000000 Binary files a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js deleted file mode 100644 index cf7215a66e1..00000000000 --- a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js +++ /dev/null @@ -1 +0,0 @@ -var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
    ")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("scilab",function(a){var b=[a.CNM,{cN:"string",b:"'|\"",e:"'|\"",c:[a.BE,{b:"''"}]}];return{k:{keyword:"abort break case clear catch continue do elseif else endfunction end for functionglobal if pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isemptyisinfisnan isvector lasterror length load linspace list listfiles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tantype typename warning zeros matrix"},i:'("|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function endfunction",e:"$",k:"function endfunction|10",c:[a.UTM,{cN:"params",b:"\\(",e:"\\)"},],},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",r:0,c:b},{cN:"comment",b:"//",e:"$"}].concat(b)}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("asciidoc",function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"smartquote",b:"``.+?''",r:10},{cN:"smartquote",b:"`.+?'",r:10},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{3,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("fix",function(a){return{c:[{b:/[^\u2401\u0001]+/,e:/[\u2401\u0001]/,eE:true,rB:true,rE:false,c:[{b:/([^\u2401\u0001=]+)/,e:/=([^\u2401\u0001=]+)/,rE:true,rB:false,cN:"attribute"},{b:/=/,e:/([\u2401\u0001])/,eE:true,eB:true,cN:"string"}]}],cI:true}});hljs.registerLanguage("mel",function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("livecodeserver",function(a){var e={cN:"variable",b:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",r:0};var b={cN:"comment",e:"$",v:[a.CBLCLM,a.HCM,{b:"--",},{b:"[^:]//",}]};var d=a.inherit(a.TM,{v:[{b:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{b:"\\b_[a-z0-9\\-]+"}]});var c=a.inherit(a.TM,{b:"\\b([A-Za-z0-9_\\-]+)\\b"});return{cI:false,k:{keyword:"after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if",constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg base64Decode base64Encode baseConvert binaryDecode binaryEncode byteToNum cachedURL cachedURLs charToNum cipherNames commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames global globals hasMemory hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames num number numToByte numToChar offset open openfiles openProcesses openProcessIDs openSockets paramCount param params peerAddress pendingMessages platform processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_Execute revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sec secs seconds sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName tick ticks time to toLower toUpper transpose trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus value variableNames version waitDepth weekdayNames wordOffset add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket process post seek rel relative read from process rename replace require resetAll revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split subtract union unload wait write"},c:[e,{cN:"keyword",b:"\\bend\\sif\\b"},{cN:"function",bK:"function",e:"$",c:[e,c,a.ASM,a.QSM,a.BNM,a.CNM,d]},{cN:"function",bK:"end",e:"$",c:[c,d]},{cN:"command",bK:"command on",e:"$",c:[e,c,a.ASM,a.QSM,a.BNM,a.CNM,d]},{cN:"command",bK:"end",e:"$",c:[c,d]},{cN:"preprocessor",b:"<\\?rev|<\\?lc|<\\?livecode",r:10},{cN:"preprocessor",b:"<\\?"},{cN:"preprocessor",b:"\\?>"},b,a.ASM,a.QSM,a.BNM,a.CNM,d],i:";$|^\\[|^="}});hljs.registerLanguage("glsl",function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}});hljs.registerLanguage("lasso",function(d){var b="[a-zA-Z_][a-zA-Z0-9_.]*";var i="<\\?(lasso(script)?|=)";var c="\\]|\\?>";var g={literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null bytes list queue set stack staticarray tie local var variable global data self inherited",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"};var a={cN:"comment",b:"",r:0};var j={cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true,c:[a]}};var e={cN:"preprocessor",b:"\\[/noprocess|"+i};var h={cN:"variable",b:"'"+b+"'"};var f=[d.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},d.CBLCLM,d.inherit(d.CNM,{b:d.CNR+"|-?(infinity|nan)\\b"}),d.inherit(d.ASM,{i:null}),d.inherit(d.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",v:[{b:"[#$]"+b},{b:"#",e:"\\d+",i:"\\W"}]},{cN:"tag",b:"::\\s*",e:b,i:"\\W"},{cN:"attribute",b:"\\.\\.\\.|-"+d.UIR},{cN:"subst",v:[{b:"->\\s*",c:[h]},{b:":=|/(?!\\w)=?|[-+*%=<>&|!?\\\\]+",r:0}]},{cN:"built_in",b:"\\.\\.?",r:0,c:[h]},{cN:"class",bK:"define",rE:true,e:"\\(|=>",c:[d.inherit(d.TM,{b:d.UIR+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],cI:true,l:b+"|&[lg]t;",k:g,c:[{cN:"preprocessor",b:c,r:0,starts:{cN:"markup",e:"\\[|"+i,rE:true,r:0,c:[a]}},j,e,{cN:"preprocessor",b:"\\[no_square_brackets",starts:{e:"\\[/no_square_brackets\\]",l:b+"|&[lg]t;",k:g,c:[{cN:"preprocessor",b:c,r:0,starts:{cN:"markup",e:i,rE:true,c:[a]}},j,e].concat(f)}},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10}].concat(f)}});hljs.registerLanguage("mathematica",function(a){return{aliases:["mma"],l:"(\\$|\\b)"+a.IR+"\\b",k:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",c:[{cN:"comment",b:/\(\*/,e:/\*\)/},a.ASM,a.QSM,a.CNM,{cN:"list",b:/\{/,e:/\}/,i:/:/}]}});hljs.registerLanguage("tex",function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("profile",function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[a.UTM],r:0}]}});hljs.registerLanguage("django",function(a){var b={cN:"filter",b:/\|[A-Za-z]+\:?/,k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:/"/,e:/"/},{cN:"argument",b:/'/,e:/'/}]};return{cI:true,sL:"xml",subLanguageMode:"continuous",c:[{cN:"template_comment",b:/\{%\s*comment\s*%}/,e:/\{%\s*endcomment\s*%}/},{cN:"template_comment",b:/\{#/,e:/#}/},{cN:"template_tag",b:/\{%/,e:/%}/,k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[b]},{cN:"variable",b:/\{\{/,e:/}}/,c:[b]}]}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("smalltalk",function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"'},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":",r:0},a.CNM,c,d,{cN:"localvars",b:"\\|[ ]*"+b+"([ ]+"+b+")*[ ]*\\|",rB:true,e:/\|/,i:/\S/,c:[{b:"(\\|[ ]*)?"+b}]},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("oxygene",function(b){var g="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained";var a={cN:"comment",b:"{",e:"}",r:0};var e={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}]};var d={cN:"string",b:"(#\\d+)+"};var f={cN:"function",bK:"function constructor destructor procedure method",e:"[:;]",k:"function constructor|10 destructor|10 procedure|10 method|10",c:[b.TM,{cN:"params",b:"\\(",e:"\\)",k:g,c:[c,d]},a,e]};return{cI:true,k:g,i:'("|\\$[G-Zg-z]|\\/\\*|{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("erlang",function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#"+i.UIR,r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",e:"}",r:0}]};var k={bK:"fun receive if try case",e:"end",k:f};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(",rB:true,i:"\\(|#|//|/\\*|\\\\|:|;",c:[d,i.inherit(i.TM,{b:c})],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}});hljs.registerLanguage("1c",function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a]};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[b.inherit(b.TM,{b:f}),{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}});hljs.registerLanguage("haskell",function(f){var g={cN:"comment",v:[{b:"--",e:"$"},{b:"{-",e:"-}",c:["self"]}]};var e={cN:"pragma",b:"{-#",e:"#-}"};var b={cN:"preprocessor",b:"^#",e:"$"};var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[e,g,b,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},f.inherit(f.TM,{b:"[_a-z][\\w']*"})]};var a={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",c:[{cN:"module",b:"\\bmodule\\b",e:"where",k:"module where",c:[c,g],i:"\\W\\.|;"},{cN:"import",b:"\\bimport\\b",e:"$",k:"import|0 qualified as hiding",c:[c,g],i:"\\W\\.|;"},{cN:"class",b:"^(\\s*)?(class|instance)\\b",e:"where",k:"class family instance where",c:[d,c,g]},{cN:"typedef",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype deriving",c:[e,g,d,c,a]},{cN:"default",bK:"default",e:"$",c:[d,c,g]},{cN:"infix",bK:"infix infixl infixr",e:"$",c:[f.CNM,g]},{cN:"foreign",b:"\\bforeign\\b",e:"$",k:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",c:[d,f.QSM,g]},{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},e,g,b,f.QSM,f.CNM,d,f.inherit(f.TM,{b:"^[_a-z][\\w']*"}),{b:"->|<-"}]}});hljs.registerLanguage("delphi",function(b){var a="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure";var e={cN:"comment",v:[{b:/\{/,e:/\}/,r:0},{b:/\(\*/,e:/\*\)/,r:10}]};var c={cN:"string",b:/'/,e:/'/,c:[{b:/''/}]};var d={cN:"string",b:/(#\d+)+/};var f={b:b.IR+"\\s*=\\s*class\\s*\\(",rB:true,c:[b.TM]};var g={cN:"function",bK:"function constructor destructor procedure",e:/[:;]/,k:"function constructor|10 destructor|10 procedure|10",c:[b.TM,{cN:"params",b:/\(/,e:/\)/,k:a,c:[c,d]},e]};return{cI:true,k:a,i:/("|\$[G-Zg-z]|\/\*|<\/)/,c:[e,b.CLCM,c,d,b.NM,f,g]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("avrasm",function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$",r:0},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}});hljs.registerLanguage("lisp",function(h){var k="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var l="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var j={cN:"shebang",b:"^#!",e:"$"};var b={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d={cN:"number",v:[{b:l,r:0},{b:"#b[0-1]+(/[0-1]+)?"},{b:"#o[0-7]+(/[0-7]+)?"},{b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{b:"#c\\("+l+" +"+l,e:"\\)"}]};var g=h.inherit(h.QSM,{i:null});var m={cN:"comment",b:";",e:"$"};var f={cN:"variable",b:"\\*",e:"\\*"};var n={cN:"keyword",b:"[:&]"+k};var c={b:"\\(",e:"\\)",c:["self",b,g,d]};var a={cN:"quoted",c:[d,g,f,n,c],v:[{b:"['`]\\(",e:"\\)",},{b:"\\(quote ",e:"\\)",k:{title:"quote"},}]};var i={cN:"list",b:"\\(",e:"\\)"};var e={eW:true,r:0};i.c=[{cN:"title",b:k},e];e.c=[a,i,b,d,g,m,f,n];return{i:/\S/,c:[d,j,b,g,m,a,i]}});hljs.registerLanguage("vbnet",function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"//|{|}|endif|gosub|variant|wend",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|"},{cN:"xmlDocTag",b:""},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}});hljs.registerLanguage("axapta",function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bK:"class interface",e:"{",i:":",c:[{cN:"inheritance",bK:"extends implements",r:10},a.UTM]}]}});hljs.registerLanguage("ocaml",function(a){return{k:{keyword:"and as assert asr begin class constraint do done downto else end exception external false for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new object of open or private rec ref sig struct then to true try type val virtual when while with parser value",built_in:"bool char float int list unit array exn option int32 int64 nativeint format4 format6 lazy_t in_channel out_channel string",},i:/\/\//,c:[{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self"]},{cN:"class",bK:"type",e:"\\(|=|$",c:[a.UTM]},{cN:"annotation",b:"\\[<",e:">\\]"},a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}});hljs.registerLanguage("erlang-repl",function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}});hljs.registerLanguage("vala",function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bK:"class interface delegate namespace",e:"{",i:"[^,:\\n\\s\\.]",c:[a.UTM]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}});hljs.registerLanguage("dos",function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}});hljs.registerLanguage("clojure",function(l){var e={built_in:"def cond apply if-not if-let if not not= = < < > <= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j=l.inherit(l.QSM,{i:null});var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i,g];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:/\S/,c:[o,m,{cN:"prompt",b:/^=> /,starts:{e:/\n\n|\Z/}}]}});hljs.registerLanguage("go",function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],k:b,i:"]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("lua",function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bK:"function",e:"\\)",c:[b.inherit(b.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}});hljs.registerLanguage("rsl",function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:";/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("r",function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",c:[a.BE],v:[{b:'"',e:'"'},{b:"'",e:"'"}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("haml",function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(!=#|=#|-#|/).*$",r:0},{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+"},{cN:"value",b:"[#\\.]\\w+"},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,c:[{cN:"symbol",b:":\\w+"},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]},]}]},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"}}]}});hljs.registerLanguage("brainfuck",function(b){var a={cN:"literal",b:"[\\+\\-]",r:0};return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",rE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]",r:0},{b:/\+\+|\-\-/,rB:true,c:[a]},a]}});hljs.registerLanguage("matlab",function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function",e:"$",c:[a.UTM,{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b,r:0},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b,i:/:/},{cN:"comment",b:"\\%",e:"$"}].concat(b)}});hljs.registerLanguage("vbscript",function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:/'/,e:/$/,r:0},a.CNM]}});hljs.registerLanguage("fsharp",function(a){return{k:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bK:"type",e:"\\(|=|$",c:[a.UTM]},{cN:"annotation",b:"\\[<",e:">\\]"},{cN:"attribute",b:"\\B('[A-Za-z])\\b",c:[a.BE]},a.CLCM,a.inherit(a.QSM,{i:null}),a.CNM]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("rib",function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("cmake",function(a){return{cI:true,k:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}});hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("applescript",function(a){var b=a.inherit(a.QSM,{i:""});var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bK:"on",i:"[${=;\\n]",c:[a.UTM,d]}].concat(c),i:"//"}});hljs.registerLanguage("vhdl",function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}});hljs.registerLanguage("parser3",function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}});hljs.registerLanguage("scala",function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,b,a.ASM,a.QSM,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bK:"extends with",r:10},a.UTM,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}); \ No newline at end of file diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css deleted file mode 100644 index b1efcdb2480..00000000000 --- a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css +++ /dev/null @@ -1,125 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -div.phpdebugbar .hljs { - display: block; padding: 0.5em; - color: #333; - background: #f8f8f8 -} - -div.phpdebugbar .hljs-comment, -div.phpdebugbar .hljs-template_comment, -div.phpdebugbar .diff .hljs-header, -div.phpdebugbar .hljs-javadoc { - color: #998; - font-style: italic -} - -div.phpdebugbar .hljs-keyword, -div.phpdebugbar .css .rule .hljs-keyword, -div.phpdebugbar .hljs-winutils, -div.phpdebugbar .javascript .hljs-title, -div.phpdebugbar .nginx .hljs-title, -div.phpdebugbar .hljs-subst, -div.phpdebugbar .hljs-request, -div.phpdebugbar .hljs-status { - color: #333; - font-weight: bold -} - -div.phpdebugbar .hljs-number, -div.phpdebugbar .hljs-hexcolor, -div.phpdebugbar .ruby .hljs-constant { - color: #099; -} - -div.phpdebugbar .hljs-string, -div.phpdebugbar .hljs-tag .hljs-value, -div.phpdebugbar .hljs-phpdoc, -div.phpdebugbar .tex .hljs-formula { - color: #d14 -} - -div.phpdebugbar .hljs-title, -div.phpdebugbar .hljs-id, -div.phpdebugbar .coffeescript .hljs-params, -div.phpdebugbar .scss .hljs-preprocessor { - color: #900; - font-weight: bold -} - -div.phpdebugbar .javascript .hljs-title, -div.phpdebugbar .lisp .hljs-title, -div.phpdebugbar .clojure .hljs-title, -div.phpdebugbar .hljs-subst { - font-weight: normal -} - -div.phpdebugbar .hljs-class .hljs-title, -div.phpdebugbar .haskell .hljs-type, -div.phpdebugbar .vhdl .hljs-literal, -div.phpdebugbar .tex .hljs-command { - color: #458; - font-weight: bold -} - -div.phpdebugbar .hljs-tag, -div.phpdebugbar .hljs-tag .hljs-title, -div.phpdebugbar .hljs-rules .hljs-property, -div.phpdebugbar .django .hljs-tag .hljs-keyword { - color: #000080; - font-weight: normal -} - -div.phpdebugbar .hljs-attribute, -div.phpdebugbar .hljs-variable, -div.phpdebugbar .lisp .hljs-body { - color: #008080 -} - -div.phpdebugbar .hljs-regexp { - color: #009926 -} - -div.phpdebugbar .hljs-symbol, -div.phpdebugbar .ruby .hljs-symbol .hljs-string, -div.phpdebugbar .lisp .hljs-keyword, -div.phpdebugbar .tex .hljs-special, -div.phpdebugbar .hljs-prompt { - color: #990073 -} - -div.phpdebugbar .hljs-built_in, -div.phpdebugbar .lisp .hljs-title, -div.phpdebugbar .clojure .hljs-built_in { - color: #0086b3 -} - -div.phpdebugbar .hljs-preprocessor, -div.phpdebugbar .hljs-pragma, -div.phpdebugbar .hljs-pi, -div.phpdebugbar .hljs-doctype, -div.phpdebugbar .hljs-shebang, -div.phpdebugbar .hljs-cdata { - color: #999; - font-weight: bold -} - -div.phpdebugbar .hljs-deletion { - background: #fdd -} - -div.phpdebugbar .hljs-addition { - background: #dfd -} - -div.phpdebugbar .diff .hljs-change { - background: #0086b3 -} - -div.phpdebugbar .hljs-chunk { - color: #aaa -} diff --git a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js b/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js deleted file mode 100644 index 4d9b3a25875..00000000000 --- a/htdocs/includes/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="
    ",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"
    '.$langs->trans("MailTopic").'
    '; - print $form->editfieldkey("MailTitle", 'title', $object->title, $object, $user->rights->mailing->creer && $object->statut < 3, 'string'); + print $form->editfieldkey("MailTitle", 'title', $object->title, $object, $user->hasRight('mailing', 'creer'), 'string'); print ''; - print $form->editfieldval("MailTitle", 'title', $object->title, $object, $user->rights->mailing->creer && $object->statut < 3, 'string'); + print $form->editfieldval("MailTitle", 'title', $object->title, $object, $user->hasRight('mailing', 'creer'), 'string'); print '
    '; - print $form->editfieldkey("MailFrom", 'email_from', $object->email_from, $object, $user->rights->mailing->creer && $object->statut < 3, 'string'); + print $form->editfieldkey("MailFrom", 'email_from', $object->email_from, $object, $user->hasRight('mailing', 'creer') && $object->statut < 3, 'string'); print ''; - print $form->editfieldval("MailFrom", 'email_from', $object->email_from, $object, $user->rights->mailing->creer && $object->statut < 3, 'string'); + print $form->editfieldval("MailFrom", 'email_from', $object->email_from, $object, $user->hasRight('mailing', 'creer') && $object->statut < 3, 'string'); $email = CMailFile::getValidAddress($object->email_from, 2); if ($email && !isValidEmail($email)) { $langs->load("errors"); @@ -894,9 +917,9 @@ if ($action == 'create') { // Errors to print '
    '; - print $form->editfieldkey("MailErrorsTo", 'email_errorsto', $object->email_errorsto, $object, $user->rights->mailing->creer && $object->statut < 3, 'string'); + print $form->editfieldkey("MailErrorsTo", 'email_errorsto', $object->email_errorsto, $object, $user->hasRight('mailing', 'creer') && $object->statut < 3, 'string'); print ''; - print $form->editfieldval("MailErrorsTo", 'email_errorsto', $object->email_errorsto, $object, $user->rights->mailing->creer && $object->statut < 3, 'string'); + print $form->editfieldval("MailErrorsTo", 'email_errorsto', $object->email_errorsto, $object, $user->hasRight('mailing', 'creer') && $object->statut < 3, 'string'); $email = CMailFile::getValidAddress($object->email_errorsto, 2); if ($email && !isValidEmail($email)) { $langs->load("errors"); @@ -961,12 +984,12 @@ if ($action == 'create') { if (GETPOST('cancel', 'alpha') || $confirm == 'no' || $action == '' || in_array($action, array('settodraft', 'valid', 'delete', 'sendall', 'clone', 'test'))) { print "\n\n
    \n"; - if (($object->statut == 1) && ($user->rights->mailing->valider || $object->user_validation == $user->id)) { + if (($object->statut == 1) && ($user->hasRight('mailing', 'valider') || $object->user_validation == $user->id)) { print ''.$langs->trans("SetToDraft").''; } - if (($object->statut == 0 || $object->statut == 1 || $object->statut == 2) && $user->rights->mailing->creer) { - if (!empty($conf->fckeditor->enabled) && !empty($conf->global->FCKEDITOR_ENABLE_MAILING)) { + if (($object->statut == 0 || $object->statut == 1 || $object->statut == 2) && $user->hasRight('mailing', 'creer')) { + if (isModEnabled('fckeditor') && !empty($conf->global->FCKEDITOR_ENABLE_MAILING)) { print ''.$langs->trans("EditWithEditor").''; } else { print ''.$langs->trans("EditWithTextEditor").''; @@ -995,7 +1018,7 @@ if ($action == 'create') { } } - if (($object->statut == 1 || $object->statut == 2) && $object->nbemail > 0 && $user->rights->mailing->valider) { + if (($object->statut == 1 || $object->statut == 2) && $object->nbemail > 0 && $user->hasRight('mailing', 'valider')) { if ($conf->global->MAILING_LIMIT_SENDBYWEB < 0) { print ''.$langs->trans("SendMailing").''; } elseif (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !$user->rights->mailing->mailing_advance->send) { @@ -1005,11 +1028,11 @@ if ($action == 'create') { } } - if ($user->rights->mailing->creer) { + if ($user->hasRight('mailing', 'creer')) { print ''.$langs->trans("ToClone").''; } - if (($object->statut == 2 || $object->statut == 3) && $user->rights->mailing->valider) { + if (($object->statut == 2 || $object->statut == 3) && $user->hasRight('mailing', 'valider')) { if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !$user->rights->mailing->mailing_advance->send) { print ''.$langs->trans("ResetMailing").''; } else { @@ -1017,7 +1040,7 @@ if ($action == 'create') { } } - if (($object->statut <= 1 && $user->rights->mailing->creer) || $user->rights->mailing->supprimer) { + if (($object->statut <= 1 && $user->hasRight('mailing', 'creer')) || $user->hasRight('mailing', 'supprimer')) { if ($object->statut > 0 && (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !$user->rights->mailing->mailing_advance->delete)) { print ''.$langs->trans("DeleteMailing").''; } else { @@ -1070,18 +1093,18 @@ if ($action == 'create') { } - $htmltext = ''.$langs->trans("FollowingConstantsWillBeSubstituted").':
    '; + $htmltext = ''.$langs->trans("FollowingConstantsWillBeSubstituted").':

    '; foreach ($object->substitutionarray as $key => $val) { $htmltext .= $key.' = '.$langs->trans($val).'
    '; } - $htmltext .= '
    '; + $htmltext .= '
    '; // Print mail content - print load_fiche_titre($langs->trans("EMail"), $form->textwithpicto(''.$langs->trans("AvailableVariables").'', $htmltext, 1, 'helpclickable', '', 0, 2, 'emailsubstitionhelp'), 'generic'); + print load_fiche_titre($langs->trans("EMail"), $form->textwithpicto(''.$langs->trans("AvailableVariables").'', $htmltext, 1, 'helpclickable', '', 0, 3, 'emailsubstitionhelp'), 'generic'); print dol_get_fiche_head('', '', '', -1); - print ''; + print '
    '; // Subject print ''; @@ -1246,12 +1269,18 @@ if ($action == 'create') { $out .= '
    '; } } else { - $out .= ''.$langs->trans("NoAttachedFiles").'
    '; + //$out .= ''.$langs->trans("NoAttachedFiles").'
    '; } + // Add link to add file + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $out .= ''; // MAX_FILE_SIZE must precede the field type=file + } $out .= ''; $out .= ' '; - $out .= ''; + $out .= ''; print $out; print ''; @@ -1268,7 +1297,7 @@ if ($action == 'create') { if ($action == 'edit') { // wysiwyg editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('bodyemail', $object->body, '', 600, 'dolibarr_mailings', '', true, true, $conf->global->FCKEDITOR_ENABLE_MAILING, 20, '90%'); + $doleditor = new DolEditor('bodyemail', $object->body, '', 600, 'dolibarr_mailings', '', true, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAILING'), 20, '90%'); $doleditor->Create(); } if ($action == 'edithtml') { @@ -1285,7 +1314,7 @@ if ($action == 'create') { print '
    '; print ''; - print '     '; + print '     '; print ''; print '
    '; diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 95639a25997..dde6e3204d6 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -24,6 +24,7 @@ * \brief Page to define emailing targets */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; @@ -384,6 +385,7 @@ if ($object->fetch($id) >= 0) { if ($allowaddtarget) { print ''; print ''; + print ''; } else { print '
    '; } @@ -392,7 +394,7 @@ if ($object->fetch($id) >= 0) { if (empty($obj->picto)) { $obj->picto = 'generic'; } - print img_object($langs->trans("EmailingTargetSelector").': '.get_class($obj), $obj->picto, 'class="valignmiddle pictomodule"'); + print img_object($langs->trans("EmailingTargetSelector").': '.get_class($obj), $obj->picto, 'class="valignmiddle pictomodule pictofixedwidth"'); print ' '; print $obj->getDesc(); print '
    '; @@ -428,7 +430,7 @@ if ($object->fetch($id) >= 0) { print '
    '; if ($allowaddtarget) { - print ''; + print ''; } else { print ''; //print $langs->trans("MailNoChangePossible"); @@ -514,7 +516,7 @@ if ($object->fetch($id) >= 0) { $num = $db->num_rows($resql); $param = "&id=".$object->id; - //if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); + //if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } @@ -542,7 +544,7 @@ if ($object->fetch($id) >= 0) { if ($allowaddtarget) { $morehtmlcenter = ''.$langs->trans("ToClearAllRecipientsClickHere").' id.'" class="button reposition smallpaddingimp">'.$langs->trans("TargetsReset").''; } - $morehtmlcenter .= '   id.'">'.$langs->trans("Download").''; + $morehtmlcenter .= '   id.'">'.img_picto('', 'download', 'class="pictofixedwidth"').$langs->trans("Download").''; $massactionbutton = ''; @@ -631,19 +633,21 @@ if ($object->fetch($id) >= 0) { include_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; + include_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; $objectstaticmember = new Adherent($db); $objectstaticuser = new User($db); $objectstaticcompany = new Societe($db); $objectstaticcontact = new Contact($db); + $objectstaticeventorganization = new ConferenceOrBoothAttendee($db); while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); print '
    '; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''; // Title - print ''; + print ''; // Date creation print ''; } - print ''; - } else { // Show filtree when ajax is disabled (rare) + } else { + // Show filtree when ajax is disabled (rare) print ' - - multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { ?> + multicurrency_code != $conf->currency) { ?> @@ -126,7 +127,7 @@ if ($nolinesbefore) { global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { print ' + '; $coldisplay++; @@ -394,7 +402,7 @@ if ($nolinesbefore) { multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { + if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { $coldisplay++; ?> - global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $coldisplay++; print ' + + situation_cycle_ref) && $this->situation_cycle_ref) { $coldisplay++; - print ''; + print ''; $coldisplay++; print ''; } @@ -441,7 +451,7 @@ if ($nolinesbefore) { ?> global->DISPLAY_MARGIN_RATES)) { - echo ''; + echo ''; $coldisplay++; } if (!empty($conf->global->DISPLAY_MARK_RATES)) { - echo ''; + echo ''; $coldisplay++; } } @@ -466,7 +476,7 @@ if ($nolinesbefore) { service->enabled) || ($object->element == 'contrat')) && $dateSelector && GETPOST('type') != '0') { // We show date field if required +if ((isModEnabled("service") || ($object->element == 'contrat')) && $dateSelector && GETPOST('type') != '0') { // We show date field if required print ''."\n"; if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { print ''; @@ -491,7 +501,6 @@ if ((!empty($conf->service->enabled) || ($object->element == 'contrat')) && $dat } } - if (!empty($object->element) && $object->element == 'contrat') { print $langs->trans("DateStartPlanned").' '; print $form->selectDate($date_start, "date_start", $usehm, $usehm, 1, "addproduct"); @@ -502,7 +511,7 @@ if ((!empty($conf->service->enabled) || ($object->element == 'contrat')) && $dat print $form->selectDate($date_start, 'date_start', empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, 1, "addproduct", 1, 0); print ' '.$langs->trans('to').' '; print $form->selectDate($date_end, 'date_end', empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, 1, "addproduct", 1, 0); - }; + } if ($prefillDates) { echo ' '.$langs->trans('FillWithLastServiceDates').''; @@ -514,8 +523,8 @@ if ((!empty($conf->service->enabled) || ($object->element == 'contrat')) && $dat ?> function prefill_service_dates() { - $('#date_start').val("").trigger('change'); - $('#date_end').val("").trigger('change'); + $('#date_start').val("").trigger('change'); + $('#date_end').val("").trigger('change'); return false; // Prevent default link behaviour (which is go to href URL) } @@ -707,9 +716,10 @@ if (!empty($usemargins) && $user->rights->margins->creer) { /* When changing predefined product, we reload list of supplier prices required for margin combo */ $("#idprod, #idprodfournprice").change(function() { - console.log("Call method change() after change on #idprod or #idprodfournprice (senderissupplier=). this.val = "+$(this).val()); + console.log("objectline_create.tpl Call method change() after change on #idprod or #idprodfournprice (senderissupplier=). this.val = "+$(this).val()); + + setforpredef(); // TODO Keep vat combo visible and set it to first entry into list that match result of get_default_tva(product) - setforpredef(); // TODO Keep vat combo visible and set it to first entry into list that match result of get_default_tva jQuery('#trlinefordates').show(); rights->margins->creer) { if ((jQuery('#idprod').val() > 0 || jQuery('#idprodfournprice').val()) && ! isNaN(pbq) && pbq > 0) { - console.log("We are in a price per qty context, we do not call ajax/product, init of fields is done few lines later"); + console.log("objectline_create.tpl We are in a price per qty context, we do not call ajax/product, init of fields is done few lines later"); } else { global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { ?> if (isNaN(pbq)) { console.log("We use experimental option PRODUIT_CUSTOMER_PRICES_BY_QTY or PRODUIT_CUSTOMER_PRICES_BY_QTY but we could not get the id of pbq from product combo list, so load of price may be 0 if product has differet prices"); } - // Get the HT price for the product and display it + // Get the price for the product and display it console.log("Load unit price without tax and set it into #price_ht for product id="+$(this).val()+" socid=socid; ?>"); $.post('/product/ajax/products.php?action=fetch', - { 'id': $(this).val(), 'socid': socid; ?> }, + { 'id': $(this).val(), 'socid': socid; ?>, 'token': '' }, function(data) { - console.log("Load unit price end, we got value "+data.price_ht); + console.log("objectline_create.tpl Load unit price end, we got value ht="+data.price_ht+" ttc="+data.price_ttc+" pricebasetype="+data.pricebasetype); $('#date_start').removeAttr('type'); $('#date_end').removeAttr('type'); @@ -746,22 +756,45 @@ if (!empty($usemargins) && $user->rights->margins->creer) { if (data.mandatory_period == 1 && data.type == 1) { jQuery('#date_start').addClass('inputmandatory'); jQuery('#date_end').addClass('inputmandatory'); - }else{ + } else { jQuery('#date_start').removeClass('inputmandatory'); jQuery('#date_end').removeClass('inputmandatory'); } - jQuery("#price_ht").val(data.price_ht); + if ( == 1 && data.pricebasetype == 'TTC') { + console.log("objectline_create.tpl set content of price_ttc"); + jQuery("#price_ttc").val(data.price_ttc); + } else { + console.log("objectline_create.tpl set content of price_ht"); + jQuery("#price_ht").val(data.price_ht); + } + + var tva_tx = data.tva_tx; + var default_vat_code = data.default_vat_code; + + // Now set the VAT + var stringforvatrateselection = tva_tx; + if (typeof default_vat_code != 'undefined' && default_vat_code != null && default_vat_code != '') { + stringforvatrateselection = stringforvatrateselection+' ('+default_vat_code+')'; + } + // Set vat rate if field is an input box + $('#tva_tx').val(tva_tx); + // Set vat rate by selecting the combo + //$('#tva_tx option').val(tva_tx); // This is bugged, it replaces the vat key of all options + $('#tva_tx option').removeAttr('selected'); + console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option label for this key="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); + $('#tva_tx option[value="'+stringforvatrateselection+'"]').prop('selected', true); + global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { ?> + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { ?> var proddesc = data.desc_trans; var proddesc = data.desc; - console.log("Load desciption into text area : "+proddesc); + console.log("objectline_create.tpl Load desciption into text area : "+proddesc); global->FCKEDITOR_ENABLE_DETAILS)) { ?> if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined") @@ -781,7 +814,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { global->PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES)) { ?> jQuery.each(data.array_options, function( key, value ) { - jQuery('div[class$="det'+key.replace('options_','_extras_')+'"] > #'+key).val(value); + jQuery('div[class*="det'+key.replace('options_','_extras_')+'"] > #'+key).val(value); }); @@ -825,7 +858,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { print 'costprice'; } } ?>'; - console.log("we will set the field for margin. defaultbuyprice="+defaultbuyprice); + console.log("objectline_create.tpl we will set the field for margin. defaultbuyprice="+defaultbuyprice); var i = 0; $(data).each(function() { @@ -862,7 +895,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } options += ''; }); - options += ''; + options += ''; console.log("finally selected defaultkey="+defaultkey+" defaultprice for buying price="+defaultprice); @@ -904,43 +937,51 @@ if (!empty($usemargins) && $user->rights->margins->creer) { ?> global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) {?> - /* To process customer price per quantity (PRODUIT_CUSTOMER_PRICES_BY_QTY works only if combo product is not an ajax after x key pressed) */ - var pbq = parseInt($('option:selected', this).attr('data-pbq')); // When select is done from HTML select - if (isNaN(pbq)) { pbq = jQuery('#idprod').attr('data-pbq'); } // When select is done from HTML input with autocomplete - var pbqup = parseFloat($('option:selected', this).attr('data-pbqup')); - if (isNaN(pbqup)) { pbqup = jQuery('#idprod').attr('data-pbqup'); } - var pbqbase = $('option:selected', this).attr('data-pbqbase'); - if (isNaN(pbqbase)) { pbqbase = jQuery('#idprod').attr('data-pbqbase'); } - var pbqqty = parseFloat($('option:selected', this).attr('data-pbqqty')); - if (isNaN(pbqqty)) { pbqqty = jQuery('#idprod').attr('data-pbqqty'); } - var pbqpercent = parseFloat($('option:selected', this).attr('data-pbqpercent')); - if (isNaN(pbqpercent)) { pbqpercent = jQuery('#idprod').attr('data-pbqpercent'); } + if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { + ?> + /* To process customer price per quantity (PRODUIT_CUSTOMER_PRICES_BY_QTY works only if combo product is not an ajax after x key pressed) */ + var pbq = parseInt($('option:selected', this).attr('data-pbq')); // When select is done from HTML select + if (isNaN(pbq)) { pbq = jQuery('#idprod').attr('data-pbq'); } // When select is done from HTML input with autocomplete + var pbqup = parseFloat($('option:selected', this).attr('data-pbqup')); + if (isNaN(pbqup)) { pbqup = jQuery('#idprod').attr('data-pbqup'); } + var pbqbase = $('option:selected', this).attr('data-pbqbase'); + if (isNaN(pbqbase)) { pbqbase = jQuery('#idprod').attr('data-pbqbase'); } + var pbqqty = parseFloat($('option:selected', this).attr('data-pbqqty')); + if (isNaN(pbqqty)) { pbqqty = jQuery('#idprod').attr('data-pbqqty'); } + var pbqpercent = parseFloat($('option:selected', this).attr('data-pbqpercent')); + if (isNaN(pbqpercent)) { pbqpercent = jQuery('#idprod').attr('data-pbqpercent'); } - if ((jQuery('#idprod').val() > 0) && ! isNaN(pbq) && pbq > 0) - { - var pbqupht = pbqup; /* TODO support of price per qty TTC not yet available */ + if ((jQuery('#idprod').val() > 0) && ! isNaN(pbq) && pbq > 0) + { + var pbqupht = pbqup; /* TODO support of price per qty TTC not yet available */ - console.log("We choose a price by quanty price_by_qty id = "+pbq+" price_by_qty upht = "+pbqupht+" price_by_qty qty = "+pbqqty+" price_by_qty percent = "+pbqpercent); - jQuery("#pbq").val(pbq); - jQuery("#price_ht").val(pbqupht); - if (jQuery("#qty").val() < pbqqty) - { - jQuery("#qty").val(pbqqty); - } - if (jQuery("#remise_percent").val() < pbqpercent) - { - jQuery("#remise_percent").val(pbqpercent); - } - } else { jQuery("#pbq").val(''); } + console.log("We choose a price by quanty price_by_qty id = "+pbq+" price_by_qty upht = "+pbqupht+" price_by_qty qty = "+pbqqty+" price_by_qty percent = "+pbqpercent); + jQuery("#pbq").val(pbq); + jQuery("#price_ht").val(pbqupht); + if (jQuery("#qty").val() < pbqqty) + { + jQuery("#qty").val(pbqqty); + } + if (jQuery("#remise_percent").val() < pbqpercent) + { + jQuery("#remise_percent").val(pbqpercent); + } + } else { jQuery("#pbq").val(''); } - //Deal with supplier - if (jQuery('#idprodfournprice').val() >0) + + + // Deal with supplier ref price (idprodfournprice = int) + if (jQuery('#idprodfournprice').val() > 0) { + console.log("objectline_create.tpl #idprodfournprice is is an ID > 0, so we set some properties into page"); + var up = parseFloat($('option:selected', this).attr('data-up')); // When select is done from HTML select - if (isNaN(up)) { up = parseFloat(jQuery('#idprodfournprice').attr('data-up'));} // When select is done from HTML input with autocomplete + if (isNaN(up)) { up = parseFloat(jQuery('#idprodfournprice').attr('data-up'));} // When select is done from HTML input with ajax autocomplete + + var up_locale = $('option:selected', this).attr('data-up-locale'); // When select is done from HTML select + if (typeof up_locale === 'undefined') { up_locale = jQuery('#idprodfournprice').attr('data-up-locale');} // When select is done from HTML input with ajax autocomplete var qty = parseFloat($('option:selected', this).attr('data-qty')); if (isNaN(qty)) { qty = parseFloat(jQuery('#idprodfournprice').attr('data-qty'));} @@ -948,30 +989,50 @@ if (!empty($usemargins) && $user->rights->margins->creer) { var discount = parseFloat($('option:selected', this).attr('data-discount')); if (isNaN(discount)) { discount = parseFloat(jQuery('#idprodfournprice').attr('data-discount'));} - /* var tva_tx = $('option:selected', this).data('tvatx'); */ + var tva_tx = parseFloat($('option:selected', this).attr('data-tvatx')); // When select is done from HTML select + if (isNaN(tva_tx)) { tva_tx = parseFloat(jQuery('#idprodfournprice').attr('data-tvatx'));} // When select is done from HTML input with ajax autocomplete - console.log("We find supplier price :"+up+" qty: "+qty+" tva_tx="+tva_tx+" discount: "+discount+" for product "+jQuery('#idprodfournprice').val()); + var default_vat_code = $('option:selected', this).attr('data-default-vat-code'); // When select is done from HTML select + if (typeof default_vat_code === 'undefined') { default_vat_code = jQuery('#idprodfournprice').attr('data-default-vat-code');} // When select is done from HTML input with ajax autocomplete - jQuery("#price_ht").val(up); - /* $('#tva_tx option').removeAttr('selected').filter('[value='+tva_tx+']').prop('selected', true); */ + var stringforvatrateselection = tva_tx; + if (typeof default_vat_code != 'undefined' && default_vat_code != null && default_vat_code != '') { + stringforvatrateselection = stringforvatrateselection+' ('+default_vat_code+')'; + } + + console.log("objectline_create.tpl We find supplier price : up = "+up+", up_locale = "+up_locale+", qty = "+qty+", tva_tx = "+tva_tx+", default_vat_code = "+default_vat_code+", stringforvatrateselection="+stringforvatrateselection+", discount = "+discount+" for product supplier ref id = "+jQuery('#idprodfournprice').val()); + + if (typeof up_locale === 'undefined') { + jQuery("#price_ht").val(up); + } else { + jQuery("#price_ht").val(up_locale); + } + + // Set vat rate if field is an input box + $('#tva_tx').val(tva_tx); + // Set vat rate by selecting the combo + //$('#tva_tx option').val(tva_tx); // This is bugged, it replaces the vat key of all options + $('#tva_tx option').removeAttr('selected'); + console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option label for this key="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); + $('#tva_tx option[value="'+stringforvatrateselection+'"]').prop('selected', true); if (jQuery("#qty").val() < qty) { jQuery("#qty").val(qty); } - if (jQuery("#remise_percent").val() < discount) - { + if (jQuery("#remise_percent").val() < discount) { jQuery("#remise_percent").val(discount); } global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { + if (getDolGlobalInt('PRODUIT_AUTOFILL_DESC') == 1) { ?> var description = $('option:selected', this).attr('data-description'); if (typeof description == 'undefined') { description = jQuery('#idprodfournprice').attr('data-description'); } console.log("Load desciption into text area : "+description); global->FCKEDITOR_ENABLE_DETAILS)) { ?> + if (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { + ?> if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined") { var editor = CKEDITOR.instances['dp_desc']; @@ -980,15 +1041,41 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } } + } else { + ?> jQuery('#dp_desc').text(description); + } + ?> } else if (jQuery('#idprodfournprice').length > 0) { + console.log("objectline_create.tpl #idprodfournprice is not an int but is a string so we set only few properties into page"); + + var tva_tx = parseFloat($('option:selected', this).attr('data-tvatx')); // When select is done from HTML select + if (isNaN(tva_tx)) { tva_tx = parseFloat(jQuery('#idprodfournprice').attr('data-tvatx'));} // When select is done from HTML input with ajax autocomplete + + var default_vat_code = $('option:selected', this).attr('data-default-vat-code'); // When select is done from HTML select + if (typeof default_vat_code === 'undefined') { default_vat_code = jQuery('#idprodfournprice').attr('data-default-vat-code');} // When select is done from HTML input with ajax autocomplete + + var stringforvatrateselection = tva_tx; + if (typeof default_vat_code != 'undefined' && default_vat_code != null && default_vat_code != '') { + stringforvatrateselection = stringforvatrateselection+' ('+default_vat_code+')'; + } + + console.log("objectline_create.tpl We find data for price : tva_tx = "+tva_tx+", default_vat_code = "+default_vat_code+", stringforvatrateselection="+stringforvatrateselection+" for product id = "+jQuery('#idprodfournprice').val()); + + // Set vat rate if field is an input box + $('#tva_tx').val(tva_tx); + // Set vat rate by selecting the combo + //$('#tva_tx option').val(tva_tx); // This is bugged, it replaces the vat key of all options + $('#tva_tx option').removeAttr('selected'); + console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option label for this key="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); + $('#tva_tx option[value="'+stringforvatrateselection+'"]').prop('selected', true); + global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { - if (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { ?> + if (getDolGlobalInt('PRODUIT_AUTOFILL_DESC') == 1) { + if (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { + ?> if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined") { var editor = CKEDITOR.instances['dp_desc']; @@ -997,11 +1084,13 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } } + } else { + ?> jQuery('#dp_desc').text(''); + } + ?> } @@ -1026,7 +1115,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { /* Function to set fields from choice */ function setforfree() { - console.log("Call setforfree. We show most fields"); + console.log("objectline_create.tpl::setforfree. We show most fields"); jQuery("#idprodfournprice").val('0'); // Set cursor on not selected product jQuery("#prod_entry_mode_free").prop('checked',true).change(); jQuery("#prod_entry_mode_predef").prop('checked',false).change(); @@ -1037,7 +1126,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } function setforpredef() { - console.log("Call setforpredef. We hide some fields and show dates"); + console.log("objectline_create.tpl::setforpredef We hide some fields, show dates"); jQuery("#select_type").val(-1); jQuery("#prod_entry_mode_free").prop('checked',false).change(); jQuery("#prod_entry_mode_predef").prop('checked',true).change(); @@ -1059,7 +1148,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { jQuery("#multicurrency_price_ttc").val('').hide(); jQuery("#title_up_ttc, #title_up_ttc_currency").hide(); - jQuery("#fourn_ref, #tva_tx, #title_vat").hide(); + jQuery("#tva_tx, #title_vat").hide(); /* jQuery("#title_fourn_ref").hide(); */ jQuery("#np_marginRate, #np_markRate, .np_marginRate, .np_markRate, #units, #title_units").hide(); jQuery("#buying_price").show(); diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index c59949d5fb7..dbc8b407fa5 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -1,6 +1,6 @@ - * Copyright (C) 2010-2020 Laurent Destailleur + * Copyright (C) 2010-2022 Laurent Destailleur * Copyright (C) 2012 Christophe Battarel * Copyright (C) 2012 Cédric Salvador * Copyright (C) 2012-2014 Raphaël Doursenaud @@ -41,7 +41,7 @@ if (empty($object) || !is_object($object)) { $usemargins = 0; -if (!empty($conf->margin->enabled) && !empty($object->element) && in_array($object->element, array('facture', 'facturerec', 'propal', 'commande'))) { +if (isModEnabled('margin') && !empty($object->element) && in_array($object->element, array('facture', 'facturerec', 'propal', 'commande'))) { $usemargins = 1; } @@ -70,10 +70,10 @@ if (!empty($inputalsopricewithtax)) { if (in_array($object->element, array('propal', 'supplier_proposal', 'facture', 'facturerec', 'invoice', 'commande', 'order', 'order_supplier', 'invoice_supplier', 'invoice_supplier_rec'))) { $colspan++; // With this, there is a column move button } -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { +if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { $colspan += 2; } -if (!empty($conf->asset->enabled) && $object->element == 'invoice_supplier') { +if (isModEnabled('asset') && $object->element == 'invoice_supplier') { $colspan++; } @@ -120,7 +120,7 @@ $coldisplay++; print ''; } else { if ($senderissupplier) { - print $form->select_produits_fournisseurs(!empty($line->fk_product) ? $line->fk_product : 0, 'productid'); + $form->select_produits_fournisseurs(!empty($line->fk_product) ? $line->fk_product : 0, 'productid'); } else { print $form->select_produits(!empty($line->fk_product) ? $line->fk_product : 0, 'productid'); } @@ -176,7 +176,7 @@ $coldisplay++; } // Show autofill date for recuring invoices - if (!empty($conf->service->enabled) && $line->product_type == 1 && ($line->element == 'facturedetrec' || $line->element == 'invoice_supplier_det_rec')) { + if (isModEnabled("service") && $line->product_type == 1 && ($line->element == 'facturedetrec' || $line->element == 'invoice_supplier_det_rec')) { if ($line->element == 'invoice_supplier_det_rec') { $line->date_start_fill = $line->date_start; $line->date_end_fill = $line->date_end; @@ -196,13 +196,17 @@ $coldisplay++; if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier' || $object->element == 'invoice_supplier_rec') { // We must have same test in printObjectLines $coldisplay++; ?> - + fk_fournprice.'">'; } + // VAT Rate $coldisplay++; if (!$situationinvoicelinewithparent) { - print ''; + print ''; } else { print ''; } @@ -214,7 +218,7 @@ $coldisplay++; } print '>'; - if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { + if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { $coldisplay++; print ''; } @@ -266,31 +270,36 @@ $coldisplay++; ?> + situation_cycle_ref) { $coldisplay++; print ''; $coldisplay++; print ''; } + if (!empty($usemargins)) { if (!empty($user->rights->margins->creer)) { $coldisplay++; ?> '; + echo ''; } else { - echo ''; + echo ''; } $coldisplay++; } @@ -313,9 +322,9 @@ $coldisplay++; $mark_rate = (GETPOSTISSET("np_markRate") ? GETPOST("np_markRate", 'alpha', 2) : price($line->marque_tx)); // if credit note, dont allow to modify margin if ($line->subprice < 0) { - echo ''; + echo ''; } else { - echo ''; + echo ''; } $coldisplay++; } @@ -325,12 +334,12 @@ $coldisplay++; -service->enabled) && $line->product_type == 1 && $dateSelector) { ?> +product_type == 1 && $dateSelector) { ?> global->MAIN_VIEW_LINE_NUMBER)) { ?> @@ -492,7 +501,7 @@ jQuery(document).ready(function() margin->enabled)) { + if (isModEnabled('margin')) { ?> /* Add rule to clear margin when we change some data, so when we change sell or buy price, margin will be recalculated after submitting form */ jQuery("#tva_tx").click(function() { /* somtimes field is a text, sometimes a combo */ diff --git a/htdocs/core/tpl/objectline_title.tpl.php b/htdocs/core/tpl/objectline_title.tpl.php index 0071b37ab9b..7fe63613ea1 100644 --- a/htdocs/core/tpl/objectline_title.tpl.php +++ b/htdocs/core/tpl/objectline_title.tpl.php @@ -49,26 +49,26 @@ print ''; // Adds a line numbering column if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { - print ''; + print ''; } // Description -print ''; +print ''; // Supplier ref if ($this->element == 'supplier_proposal' || $this->element == 'order_supplier' || $this->element == 'invoice_supplier' || $this->element == 'invoice_supplier_rec') { - print ''; + print ''; } // VAT -print ''; // Price HT -print ''; +print ''; // Multicurrency -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { - print ''; +if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { + print ''; } if ($inputalsopricewithtax) { - print ''; + print ''; } // Qty -print ''; +print ''; // Unit if (!empty($conf->global->PRODUCT_USE_UNITS)) { - print ''; + print ''; } // Reduction short -print ''; // Fields for situation invoice if (isset($this->situation_cycle_ref) && $this->situation_cycle_ref) { - print ''; - print ''; + print ''; + print ''; } // Purchase price -if ($usemargins && !empty($conf->margin->enabled) && empty($user->socid)) { +if ($usemargins && isModEnabled('margin') && empty($user->socid)) { if (!empty($user->rights->margins->creer)) { if ($conf->global->MARGIN_TYPE == "1") { - print ''; + print ''; } else { - print ''; + print ''; } } if (!empty($conf->global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) { - print ''; + print ''; } if (!empty($conf->global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) { - print ''; + print ''; } } // Total HT -print ''; +print ''; // Multicurrency -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { - print ''; +if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { + print ''; } if ($outputalsopricetotalwithtax) { - print ''; + print ''; } -if (!empty($conf->asset->enabled) && $object->element == 'invoice_supplier') { - print ''; +if (isModEnabled('asset') && $object->element == 'invoice_supplier') { + print ''; } -print ''; // No width to allow autodim +print ''; // No width to allow autodim -print ''; +print ''; -print ''; +print ''; if ($action == 'selectlines') { - print ''; } print "\n"; diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index c2d81b81eb5..be24a555a3c 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -49,7 +49,7 @@ global $mysoc; global $forceall, $senderissupplier, $inputalsopricewithtax, $outputalsopricetotalwithtax; $usemargins = 0; -if (!empty($conf->margin->enabled) && !empty($object->element) && in_array($object->element, array('facture', 'facturerec', 'propal', 'commande'))) { +if (isModEnabled('margin') && !empty($object->element) && in_array($object->element, array('facture', 'facturerec', 'propal', 'commande'))) { $usemargins = 1; } @@ -213,7 +213,7 @@ if (($line->info_bits & 2) == 2) { } // Add description in form - if ($line->fk_product > 0 && !empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if ($line->fk_product > 0 && getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { if ($line->element == 'facturedetrec') { print (!empty($line->description) && $line->description != $line->product_label) ? (($line->date_start_fill || $line->date_end_fill) ? '' : '
    ').'
    '.dol_htmlentitiesbr($line->description) : ''; } elseif ($line->element == 'invoice_supplier_det_rec') { @@ -234,32 +234,69 @@ if (($line->info_bits & 2) == 2) { } } -if ($user->rights->fournisseur->lire && $line->fk_fournprice > 0 && empty($conf->global->SUPPLIER_HIDE_SUPPLIER_OBJECTLINES)) { +if ($user->hasRight('fournisseur', 'lire') && isset($line->fk_fournprice) && $line->fk_fournprice > 0 && empty($conf->global->SUPPLIER_HIDE_SUPPLIER_OBJECTLINES)) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; $productfourn = new ProductFournisseur($this->db); $productfourn->fetch_product_fournisseur_price($line->fk_fournprice); print '
    '; print ''.$langs->trans('Supplier').' : '.$productfourn->getSocNomUrl(1, 'supplier').' - '.$langs->trans('Ref').' : '; // Supplier ref - if ($user->rights->produit->creer || $user->rights->service->creer) { // change required right here + if ($user->hasRight('produit', 'creer') || $user->hasRight('service', 'creer')) { // change required right here print $productfourn->getNomUrl(); } else { print $productfourn->ref_supplier; } } -if (!empty($conf->accounting->enabled) && $line->fk_accounting_account > 0) { +if (isModEnabled('accounting') && $line->fk_accounting_account > 0) { $accountingaccount = new AccountingAccount($this->db); $accountingaccount->fetch($line->fk_accounting_account); print '

    '.$langs->trans('AccountingAffectation').' : '.$accountingaccount->getNomUrl(0, 1, 1); } print ''; +// Vendor price ref if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier' || $object->element == 'invoice_supplier_rec') { // We must have same test in printObjectLines print ''; } + +$tooltiponprice = ''; +$tooltiponpriceend = ''; +if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + $tooltiponprice = $langs->transcountry("TotalHT", $mysoc->country_code).'='.price($line->total_ht); + $tooltiponprice .= '
    '.$langs->transcountry("TotalVAT", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.price($line->total_tva); + if (is_object($object->thirdparty)) { + if ($senderissupplier) { + $seller = $object->thirdparty; + $buyer = $mysoc; + } else { + $seller = $mysoc; + $buyer = $object->thirdparty; + } + + if ($mysoc->useLocalTax(1)) { + if (($seller->country_code == $buyer->country_code) || $line->total_localtax1 || $seller->useLocalTax(1)) { + $tooltiponprice .= '
    '.$langs->transcountry("TotalLT1", $seller->country_code).'='.price($line->total_localtax1); + } else { + $tooltiponprice .= '
    '.$langs->transcountry("TotalLT1", $seller->country_code).'='.$langs->trans($senderissupplier ? "NotUsedForThisVendor" : "NotUsedForThisCustomer").''; + } + } + if ($mysoc->useLocalTax(2)) { + if (($seller->country_code == $buyer->thirdparty->country_code) || $line->total_localtax2 || $seller->useLocalTax(2)) { + $tooltiponprice .= '
    '.$langs->transcountry("TotalLT2", $seller->country_code).'='.price($line->total_localtax2); + } else { + $tooltiponprice .= '
    '.$langs->transcountry("TotalLT2", $seller->country_code).'='.$langs->trans($senderissupplier ? "NotUsedForThisVendor" : "NotUsedForThisCustomer").''; + } + } + } + $tooltiponprice .= '
    '.$langs->transcountry("TotalTTC", $mysoc->country_code).'='.price($line->total_ttc); + + $tooltiponprice = ''; + $tooltiponpriceend = ''; +} + // VAT Rate print ' - + -multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { ?> - +multicurrency_code != $conf->currency) { ?> + - + - '; } -if ($usemargins && !empty($conf->margin->enabled) && empty($user->socid)) { +if ($usemargins && isModEnabled('margin') && empty($user->socid)) { if (!empty($user->rights->margins->creer)) { ?> margin->enabled) && empty($user->socid)) { special_code == 3) { ?> '; $coldisplay++; - if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $tooltiponprice = $langs->transcountry("TotalHT", $mysoc->country_code).'='.price($line->total_ht); - $tooltiponprice .= '
    '.$langs->transcountry("TotalVAT", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.price($line->total_tva); - if (!$senderissupplier && is_object($object->thirdparty)) { - if ($mysoc->useLocalTax(1)) { - if (($mysoc->country_code == $object->thirdparty->country_code) || $object->thirdparty->useLocalTax(1)) { - $tooltiponprice .= '
    '.$langs->transcountry("TotalLT1", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.price($line->total_localtax1); - } else { - $tooltiponprice .= '
    '.$langs->transcountry("TotalLT1", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.$langs->trans("NotUsedForThisCustomer").''; - } - } - if ($mysoc->useLocalTax(2)) { - if (($mysoc->country_code == $object->thirdparty->country_code) || $object->thirdparty->useLocalTax(2)) { - $tooltiponprice .= '
    '.$langs->transcountry("TotalLT2", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.price($line->total_localtax2); - } else { - $tooltiponprice .= '
    '.$langs->transcountry("TotalLT2", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.$langs->trans("NotUsedForThisCustomer").''; - } - } - } - $tooltiponprice .= '
    '.$langs->transcountry("TotalTTC", $mysoc->country_code).'='.price($line->total_ttc); - - print ''; - } + print $tooltiponprice; print price($sign * $line->total_ht); - if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - print ''; - } + print $tooltiponpriceend; print ''; - if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { + if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { print ''; $coldisplay++; } } + +// Price inc tax if ($outputalsopricetotalwithtax) { print ''; $coldisplay++; @@ -397,7 +414,8 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin } } - if (!empty($conf->asset->enabled) && $object->element == 'invoice_supplier') { + // Asset info + if (isModEnabled('asset') && $object->element == 'invoice_supplier') { print ''; } + // Edit picto print ''; + // Delete picto print ''; + // Move up-down picto if ($num > 1 && $conf->browser->layout != 'phone' && ($this->situation_counter == 1 || !$this->situation_cycle_ref) && empty($disablemove)) { print ''; print ''; print ''; print ''; -if (!empty($conf->multicurrency->enabled)) { +if (isModEnabled("multicurrency")) { print ''; } diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 6d52cfff267..e9d7de9a1bf 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -16,7 +16,6 @@ * along with this program. If not, see . */ - if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', 1); } @@ -30,10 +29,8 @@ if (empty($conf) || !is_object($conf)) { // DDOS protection $size = (int) $_SERVER['CONTENT_LENGTH']; if ($size > 10000) { - http_response_code(413); $langs->loadLangs(array("errors", "install")); - accessforbidden('
    '.$langs->trans("ErrorRequestTooLarge").'
    '.$langs->trans("ClickHereToGoToApp").'
    ', 0, 0, 1); - exit; + httponly_accessforbidden('
    '.$langs->trans("ErrorRequestTooLarge").'
    '.$langs->trans("ClickHereToGoToApp").'
    ', 413, 1); } require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -79,7 +76,7 @@ if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $disablenofollow = 0; } -print top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); +top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); $colorbackhmenu1 = '60,70,100'; // topmenu @@ -236,15 +233,19 @@ if (!empty($morelogincontent)) { @@ -252,7 +253,7 @@ if (!empty($morelogincontent)) { diff --git a/htdocs/core/tpl/passwordreset.tpl.php b/htdocs/core/tpl/passwordreset.tpl.php new file mode 100644 index 00000000000..e9d518dba64 --- /dev/null +++ b/htdocs/core/tpl/passwordreset.tpl.php @@ -0,0 +1,367 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// To show this page, we need parameters: setnewpassword=1&username=...&passworduidhash=... + +if (!defined('NOBROWSERNOTIF')) { + define('NOBROWSERNOTIF', 1); +} + +// Protection to avoid direct call of template +if (empty($conf) || !is_object($conf)) { + print "Error, template page can't be called as URL"; + exit; +} + +// DDOS protection +$size = (int) $_SERVER['CONTENT_LENGTH']; +if ($size > 10000) { + $langs->loadLangs(array("errors", "install")); + httponly_accessforbidden('
    '.$langs->trans("ErrorRequestTooLarge").'
    '.$langs->trans("ClickHereToGoToApp").'
    ', 413, 1); +} + +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + +header('Cache-Control: Public, must-revalidate'); +header("Content-type: text/html; charset=".$conf->file->character_set_client); + +if (GETPOST('dol_hide_topmenu')) { + $conf->dol_hide_topmenu = 1; +} +if (GETPOST('dol_hide_leftmenu')) { + $conf->dol_hide_leftmenu = 1; +} +if (GETPOST('dol_optimize_smallscreen')) { + $conf->dol_optimize_smallscreen = 1; +} +if (GETPOST('dol_no_mouse_hover')) { + $conf->dol_no_mouse_hover = 1; +} +if (GETPOST('dol_use_jmobile')) { + $conf->dol_use_jmobile = 1; +} + +// If we force to use jmobile, then we reenable javascript +if (!empty($conf->dol_use_jmobile)) { + $conf->use_javascript_ajax = 1; +} + +$php_self = $_SERVER['PHP_SELF']; +$php_self .= dol_escape_htmltag($_SERVER["QUERY_STRING"]) ? '?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]) : ''; +$php_self = str_replace('action=validatenewpassword', '', $php_self); + +$titleofpage = $langs->trans('ResetPassword'); + +// Javascript code on logon page only to detect user tz, dst_observed, dst_first, dst_second +$arrayofjs = array(); + +$disablenofollow = 1; +if (!preg_match('/'.constant('DOL_APPLICATION_TITLE').'/', $title)) { + $disablenofollow = 0; +} +if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + $disablenofollow = 0; +} + +top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); + + +$colorbackhmenu1 = '60,70,100'; // topmenu +if (!isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) { + $conf->global->THEME_ELDY_TOPMENU_BACK1 = $colorbackhmenu1; +} +$colorbackhmenu1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (empty($conf->global->THEME_ELDY_TOPMENU_BACK1) ? $colorbackhmenu1 : $conf->global->THEME_ELDY_TOPMENU_BACK1) : (empty($user->conf->THEME_ELDY_TOPMENU_BACK1) ? $colorbackhmenu1 : $user->conf->THEME_ELDY_TOPMENU_BACK1); +$colorbackhmenu1 = join(',', colorStringToArray($colorbackhmenu1)); // Normalize value to 'x,y,z' + + +$edituser = new User($db); + + +// Validate parameters +if ($setnewpassword && $username && $passworduidhash) { + $result = $edituser->fetch('', $username); + if ($result < 0) { + $message = '
    '.dol_escape_htmltag($langs->trans("ErrorTechnicalError")).'
    '; + } else { + global $dolibarr_main_instance_unique_id; + + //print $edituser->pass_temp.'-'.$edituser->id.'-'.$dolibarr_main_instance_unique_id.' '.$passworduidhash; + if ($edituser->pass_temp && dol_verifyHash($edituser->pass_temp.'-'.$edituser->id.'-'.$dolibarr_main_instance_unique_id, $passworduidhash)) { + // Clear session + unset($_SESSION['dol_login']); + + // Parameters to reset the user are validated + } else { + $langs->load("errors"); + $message = '
    '.$langs->trans("ErrorFailedToValidatePasswordReset").'
    '; + } + } +} else { + $langs->load("errors"); + $message = '
    '.$langs->trans("ErrorFailedToValidatePasswordReset").'
    '; +} + + +?> + + +global->MAIN_LOGIN_BACKGROUND) ? '' : ' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: url(\''.DOL_URL_ROOT.'/viewimage.php?cache=1&noalt=1&modulepart=mycompany&file='.urlencode('logos/'.$conf->global->MAIN_LOGIN_BACKGROUND).'\')"'; ?>> + +dol_use_jmobile)) { ?> + + + + + + + + + + diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php index 8bd1e0d647d..b6bd9bb73a8 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -2,6 +2,7 @@ /* Copyright (C) 2010 Regis Houssin * Copyright (C) 2011-2017 Laurent Destailleur * Copyright (C) 2014 Marcos García + * Copyright (C) 2022 Ferran Marcet * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -71,20 +72,29 @@ class InterfaceWorkflowManager extends DolibarrTriggers // Proposals to order if ($action == 'PROPAL_CLOSE_SIGNED') { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); - if (!empty($conf->commande->enabled) && !empty($conf->global->WORKFLOW_PROPAL_AUTOCREATE_ORDER)) { - include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; - $newobject = new Commande($this->db); + if (isModEnabled('commande') && !empty($conf->global->WORKFLOW_PROPAL_AUTOCREATE_ORDER)) { + $object->fetchObjectLinked(); + if (!empty($object->linkedObjectsIds['commande'])) { + setEventMessages($langs->trans("OrderExists"), null, 'warnings'); + return $ret; + } else { + include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + $newobject = new Commande($this->db); - $newobject->context['createfrompropal'] = 'createfrompropal'; - $newobject->context['origin'] = $object->element; - $newobject->context['origin_id'] = $object->id; + $newobject->context['createfrompropal'] = 'createfrompropal'; + $newobject->context['origin'] = $object->element; + $newobject->context['origin_id'] = $object->id; - $ret = $newobject->createFromProposal($object, $user); - if ($ret < 0) { - $this->error = $newobject->error; - $this->errors[] = $newobject->error; + $ret = $newobject->createFromProposal($object, $user); + if ($ret < 0) { + $this->error = $newobject->error; + $this->errors[] = $newobject->error; + } + + $object->clearObjectLinkedCache(); + + return $ret; } - return $ret; } } @@ -104,6 +114,9 @@ class InterfaceWorkflowManager extends DolibarrTriggers $this->error = $newobject->error; $this->errors[] = $newobject->error; } + + $object->clearObjectLinkedCache(); + return $ret; } } @@ -111,7 +124,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers // Order classify billed proposal if ($action == 'ORDER_CLASSIFY_BILLED') { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); - if (!empty($conf->propal->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL)) { + if (isModEnabled("propal") && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL)) { $object->fetchObjectLinked('', 'propal', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -136,7 +149,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); // First classify billed the order to allow the proposal classify process - if (!empty($conf->commande->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER)) { + if (isModEnabled('commande') && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER)) { $object->fetchObjectLinked('', 'commande', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -155,7 +168,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers } // Second classify billed the proposal. - if (!empty($conf->propal->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL)) { + if (isModEnabled("propal") && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL)) { $object->fetchObjectLinked('', 'propal', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -173,15 +186,24 @@ class InterfaceWorkflowManager extends DolibarrTriggers } } - if (!empty($conf->expedition->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE)) { - /** @var Facture $object */ + if (isModEnabled("expedition") && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE)) { $object->fetchObjectLinked('', 'shipping', $object->id, $object->element); - if (!empty($object->linkedObjects)) { - /** @var Expedition $shipment */ - $shipment = array_shift($object->linkedObjects['shipping']); - - $ret = $shipment->setClosed(); + $totalonlinkedelements = 0; + foreach ($object->linkedObjects['shipping'] as $element) { + if ($element->statut == Expedition::STATUS_VALIDATED) { + $totalonlinkedelements += $element->total_ht; + } + } + dol_syslog("Amount of linked shipment = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht), LOG_DEBUG); + if ($totalonlinkedelements == $object->total_ht) { + foreach ($object->linkedObjects['shipping'] as $element) { + $ret = $element->setClosed(); + if ($ret < 0) { + return $ret; + } + } + } } } @@ -194,7 +216,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers // Firstly, we set to purchase order to "Billed" if WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER is set. // After we will set proposals - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && !empty($conf->global->WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER)) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && !empty($conf->global->WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER)) { $object->fetchObjectLinked('', 'order_supplier', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -216,7 +238,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers } // Secondly, we set to linked Proposal to "Billed" if WORKFLOW_INVOICE_CLASSIFY_BILLED_SUPPLIER_PROPOSAL is set. - if (!empty($conf->supplier_proposal->enabled) && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_SUPPLIER_PROPOSAL)) { + if (isModEnabled('supplier_proposal') && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_SUPPLIER_PROPOSAL)) { $object->fetchObjectLinked('', 'supplier_proposal', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -237,8 +259,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers } } - // Then set reception to "Billed" if WORKFLOW_BILL_ON_RECEPTION is set - if (!empty($conf->reception->enabled) && !empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)) { + // Then set reception to "Billed" if WORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE is set + if (isModEnabled("reception") && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE)) { $object->fetchObjectLinked('', 'reception', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -266,7 +288,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($action == 'BILL_PAYED') { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); - if (!empty($conf->commande->enabled) && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER)) { + if (isModEnabled('commande') && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER)) { $object->fetchObjectLinked('', 'commande', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -290,7 +312,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if (($action == 'SHIPPING_VALIDATE') || ($action == 'SHIPPING_CLOSED')) { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); - if (!empty($conf->commande->enabled) && !empty($conf->expedition->enabled) && !empty($conf->workflow->enabled) && + if (isModEnabled('commande') && isModEnabled("expedition") && !empty($conf->workflow->enabled) && ( (!empty($conf->global->WORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING) && ($action == 'SHIPPING_VALIDATE')) || (!empty($conf->global->WORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED) && ($action == 'SHIPPING_CLOSED')) @@ -359,7 +381,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if (($action == 'RECEPTION_VALIDATE') || ($action == 'RECEPTION_CLOSED')) { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); - if ((!empty($conf->fournisseur->enabled) || !empty($conf->supplier_order->enabled)) && !empty($conf->reception->enabled) && !empty($conf->workflow->enabled) && + if ((isModEnabled("fournisseur") || isModEnabled("supplier_order")) && isModEnabled("reception") && !empty($conf->workflow->enabled) && ( (!empty($conf->global->WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION) && ($action == 'RECEPTION_VALIDATE')) || (!empty($conf->global->WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED) && ($action == 'RECEPTION_CLOSED')) @@ -427,7 +449,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($action == 'TICKET_CREATE') { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); // Auto link contract - if (!empty($conf->contract->enabled) && !empty($conf->ticket->enabled) && !empty($conf->ficheinter->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_TICKET_LINK_CONTRACT) && !empty($conf->global->TICKET_PRODUCT_CATEGORY) && !empty($object->fk_soc)) { + if (!empty($conf->contract->enabled) && isModEnabled('ticket') && isModEnabled('ficheinter') && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_TICKET_LINK_CONTRACT) && !empty($conf->global->TICKET_PRODUCT_CATEGORY) && !empty($object->fk_soc)) { $societe = new Societe($this->db); $company_ids = (empty($conf->global->WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS)) ? [$object->fk_soc] : $societe->getParentsForCompany($object->fk_soc, [$object->fk_soc]); @@ -439,8 +461,9 @@ class InterfaceWorkflowManager extends DolibarrTriggers if (is_array($list) && !empty($list)) { $number_contracts_found = count($list); if ($number_contracts_found == 1) { - $contractid = $list[0]->id; - $object->setContract($contractid); + foreach ($list as $linked_contract) { + $object->setContract($linked_contract->id); + } break; } elseif ($number_contracts_found > 1) { foreach ($list as $linked_contract) { @@ -457,7 +480,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers } } // Automatically create intervention - if (!empty($conf->ficheinter->enabled) && !empty($conf->ticket->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_TICKET_CREATE_INTERVENTION)) { + if (isModEnabled('ficheinter') && isModEnabled('ticket') && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_TICKET_CREATE_INTERVENTION)) { $fichinter = new Fichinter($this->db); $fichinter->socid = (int) $object->fk_soc; $fichinter->fk_project = $projectid; diff --git a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php index 0e018514353..be78b6ecc18 100644 --- a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php +++ b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2013 Cedric GROSS * Copyright (C) 2014 Marcos García * Copyright (C) 2015 Bahfir Abbes + * Copyright (C) 2022 Ferran Marcet * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -713,7 +714,7 @@ class InterfaceActionsAuto extends DolibarrTriggers // Load translation files required by the page $langs->loadLangs(array("agenda", "other", "members")); - $member = $this->context['member']; + $member = (isset($this->context['member']) ? $this->context['member'] : null); if (!is_object($member)) { // This should not happen dol_syslog("Execute a trigger MEMBER_SUBSCRIPTION_CREATE with context key 'member' not an object"); include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -731,7 +732,7 @@ class InterfaceActionsAuto extends DolibarrTriggers $object->actionmsg .= "\n".$langs->transnoentities("Period").': '.dol_print_date($object->dateh, 'day').' - '.dol_print_date($object->datef, 'day'); $object->sendtoid = 0; - if ($object->fk_soc > 0) { + if (isset($object->fk_soc) && $object->fk_soc > 0) { $object->socid = $object->fk_soc; } } elseif ($action == 'MEMBER_SUBSCRIPTION_MODIFY') { @@ -742,7 +743,7 @@ class InterfaceActionsAuto extends DolibarrTriggers if (!is_object($member)) { // This should not happen include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; $member = new Adherent($this->db); - $member->fetch($this->fk_adherent); + $member->fetch($object->fk_adherent); } if (empty($object->actionmsg2)) { @@ -767,12 +768,12 @@ class InterfaceActionsAuto extends DolibarrTriggers } $object->actionmsg = $langs->transnoentities("MemberSubscriptionDeletedInDolibarr", $object->ref, $object->getFullName($langs)); $object->actionmsg .= "\n".$langs->transnoentities("Member").': '.$object->getFullName($langs); - $object->actionmsg .= "\n".$langs->transnoentities("Type").': '.$object->type; - $object->actionmsg .= "\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount; - $object->actionmsg .= "\n".$langs->transnoentities("Period").': '.dol_print_date($object->last_subscription_date_start, 'day').' - '.dol_print_date($object->last_subscription_date_end, 'day'); + $object->actionmsg .= "\n".$langs->transnoentities("Type").': '.$object->fk_type; + $object->actionmsg .= "\n".$langs->transnoentities("Amount").': '.$object->amount; + $object->actionmsg .= "\n".$langs->transnoentities("Period").': '.dol_print_date($object->dateh, 'day').' - '.dol_print_date($object->datef, 'day'); $object->sendtoid = 0; - if ($object->fk_soc > 0) { + if (isset($object->fk_soc) && $object->fk_soc > 0) { $object->socid = $object->fk_soc; } } elseif ($action == 'MEMBER_RESILIATE') { @@ -798,6 +799,18 @@ class InterfaceActionsAuto extends DolibarrTriggers $object->actionmsg .= "\n".$langs->transnoentities("Member").': '.$object->getFullName($langs); $object->actionmsg .= "\n".$langs->transnoentities("Type").': '.$object->type; + $object->sendtoid = 0; + } elseif ($action == 'MEMBER_EXCLUDE') { + // Load translation files required by the page + $langs->loadLangs(array("agenda", "other", "members")); + + if (empty($object->actionmsg2)) { + $object->actionmsg2 = $langs->transnoentities("MemberExcludedInDolibarr", $object->getFullName($langs)); + } + $object->actionmsg = $langs->transnoentities("MemberExcludedInDolibarr", $object->getFullName($langs)); + $object->actionmsg .= "\n".$langs->transnoentities("Member").': '.$object->getFullName($langs); + $object->actionmsg .= "\n".$langs->transnoentities("Type").': '.$object->type; + $object->sendtoid = 0; } elseif ($action == 'PROJECT_CREATE') { // Projects @@ -835,6 +848,29 @@ class InterfaceActionsAuto extends DolibarrTriggers $object->actionmsg .= "\n".$langs->transnoentitiesnoconv("OpportunityStatus").': '.$object->oldcopy->opp_status.' -> '.$object->opp_status; } + $object->sendtoid = 0; + } elseif ($action == 'PROJECT_SENTBYMAIL') { + // Load translation files required by the page + $langs->loadLangs(array("agenda", "other", "projects")); + + if (empty($object->actionmsg2)) { + $object->actionmsg2 = $langs->transnoentities("ProjectSentByEMail", $object->ref); + } + if (empty($object->actionmsg)) { + $object->actionmsg = $langs->transnoentities("ProjectSentByEMail", $object->ref); + } + + // Parameters $object->sendtoid defined by caller + //$object->sendtoid=0; + } elseif ($action == 'PROJECT_CLOSE') { + // Load translation files required by the page + $langs->loadLangs(array("agenda", "other", "projects")); + + if (empty($object->actionmsg2)) { + $object->actionmsg2 = $langs->transnoentities("ProjectClosedInDolibarr", $object->ref); + } + $object->actionmsg = $langs->transnoentities("ProjectClosedInDolibarr", $object->ref); + $object->sendtoid = 0; } elseif ($action == 'TASK_CREATE') { // Project tasks @@ -962,6 +998,8 @@ class InterfaceActionsAuto extends DolibarrTriggers $object->trackid = 'tas'.$object->id; } elseif (preg_match('/^TICKET_/', $action)) { $object->trackid = 'tic'.$object->id; + } elseif (preg_match('/^USER_/', $action)) { + $object->trackid = 'use'.$object->id; } else { $object->trackid = ''; } @@ -975,7 +1013,7 @@ class InterfaceActionsAuto extends DolibarrTriggers } */ - dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); + dol_syslog("Trigger '".$this->name."' for action '".$action."' launched by ".__FILE__.". id=".$object->id); // Add entry in event table $now = dol_now(); diff --git a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php index 741cc4d09bc..502fe33e980 100644 --- a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php +++ b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php @@ -64,12 +64,15 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers } // Test if event/record is qualified - $listofqualifiedelement = array('facture', 'don', 'payment', 'payment_donation', 'subscription', 'payment_various', 'cashcontrol'); - if (!in_array($object->element, $listofqualifiedelement)) { - return 1; + if (empty($conf->global->BLOCKEDLOG_ADD_ACTIONS_SUPPORTED) || !in_array($action, explode(',', $conf->global->BLOCKEDLOG_ADD_ACTIONS_SUPPORTED))) { + // If custom actions are not set or if action not into custom actions, we can exclude action if object->elementis not valid + $listofqualifiedelement = array('facture', 'don', 'payment', 'payment_donation', 'subscription', 'payment_various', 'cashcontrol'); + if (!in_array($object->element, $listofqualifiedelement)) { + return 1; + } } - dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); + dol_syslog("Trigger '".$this->name."' for action '".$action."' launched by ".__FILE__.". id=".$object->id); require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; $b = new BlockedLog($this->db); @@ -100,7 +103,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers $amounts = (double) $object->amount; } elseif ($action == 'CASHCONTROL_VALIDATE') { $amounts = (double) $object->cash + (double) $object->cheque + (double) $object->card; - } else { + } elseif (property_exists($object, 'total_ttc')) { $amounts = (double) $object->total_ttc; } } @@ -132,7 +135,9 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers return 0; // not implemented action log } - $result = $b->setObjectData($object, $action, $amounts, $user); // Set field date_object, ref_object, fk_object, element, object_data + // Set field date_object, ref_object, fk_object, element, object_data + $result = $b->setObjectData($object, $action, $amounts, $user); + //var_dump($b); exit; if ($result < 0) { $this->error = $b->error; diff --git a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php index 6e4f8cb1563..f25aabee871 100644 --- a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php +++ b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php @@ -66,7 +66,7 @@ class InterfaceNotification extends DolibarrTriggers */ public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf) { - if (empty($conf->notification) || empty($conf->notification->enabled)) { + if (empty($conf->notification) || !isModEnabled('notification')) { return 0; // Module not active, we do nothing } @@ -74,7 +74,7 @@ class InterfaceNotification extends DolibarrTriggers return 0; } - dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); + dol_syslog("Trigger '".$this->name."' for action '".$action."' launched by ".__FILE__.". id=".$object->id); $notify = new Notify($this->db); $notify->send($action, $object); @@ -90,7 +90,7 @@ class InterfaceNotification extends DolibarrTriggers */ public function getListOfManagedEvents() { - global $conf; + global $conf, $action; global $hookmanager; @@ -100,6 +100,8 @@ class InterfaceNotification extends DolibarrTriggers } $hookmanager->initHooks(array('notification')); + $parameters = array(); + $object = new stdClass(); $reshook = $hookmanager->executeHooks('notifsupported', $parameters, $object, $action); if (empty($reshook)) { if (!empty($hookmanager->resArray['arrayofnotifsupported'])) { @@ -133,9 +135,9 @@ class InterfaceNotification extends DolibarrTriggers $element = $obj->elementtype; // Exclude events if related module is disabled - if ($element == 'order_supplier' && ((empty($conf->fournisseur->enabled) && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_order->enabled))) { + if ($element == 'order_supplier' && ((!isModEnabled('fournisseur') && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !isModEnabled('supplier_order'))) { $qualified = 0; - } elseif ($element == 'invoice_supplier' && ((empty($conf->fournisseur->enabled) && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_invoice->enabled))) { + } elseif ($element == 'invoice_supplier' && ((!isModEnabled('fournisseur') && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !isModEnabled('supplier_invoice'))) { $qualified = 0; } elseif ($element == 'withdraw' && empty($conf->prelevement->enabled)) { $qualified = 0; diff --git a/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php b/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php index 298ad489764..089629234d6 100644 --- a/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php +++ b/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php @@ -61,7 +61,7 @@ class InterfaceTicketEmail extends DolibarrTriggers { $ok = 0; - if (empty($conf->ticket) || empty($conf->ticket->enabled)) { + if (empty($conf->ticket) || !isModEnabled('ticket')) { return 0; // Module not active, we do nothing } @@ -379,7 +379,7 @@ class InterfaceTicketEmail extends DolibarrTriggers $message = dol_nl2br($message); } $message_customer .= '

    '.$langs->trans('Message').' :

    '.$message.'


    '; - $url_public_ticket = ($conf->global->TICKET_URL_PUBLIC_INTERFACE ? $conf->global->TICKET_URL_PUBLIC_INTERFACE.'/' : dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$object->track_id; + $url_public_ticket = ($conf->global->TICKET_URL_PUBLIC_INTERFACE ? $conf->global->TICKET_URL_PUBLIC_INTERFACE.'/view.php' : dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$object->track_id; $message_customer .= '

    '.$langs->trans($see_ticket).' : '.$url_public_ticket.'

    '; $message_customer .= '

    '.$langs->trans('TicketEmailPleaseDoNotReplyToThisEmail').'

    '; @@ -387,10 +387,12 @@ class InterfaceTicketEmail extends DolibarrTriggers $trackid = 'tic'.$object->id; + $old_MAIN_MAIL_AUTOCOPY_TO = getDolGlobalString('MAIN_MAIL_AUTOCOPY_TO'); + if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { - $old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO; $conf->global->MAIN_MAIL_AUTOCOPY_TO = ''; } + include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; $mailfile = new CMailFile($subject, $sendto, $from, $message_customer, $filepath, $mimetype, $filename, '', '', 0, -1, '', '', $trackid, '', 'ticket'); if ($mailfile->error) { diff --git a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php index 54ee9929cb2..44cd1d1f660 100644 --- a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php +++ b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php @@ -141,7 +141,7 @@ class InterfaceStripe extends DolibarrTriggers } if ($changerequested) { - /*if (! empty($object->email)) $customer->email = $object->email; + /*if (!empty($object->email)) $customer->email = $object->email; $customer->description = $namecleaned; if (empty($taxinfo)) $customer->tax_info = array('type'=>'vat', 'tax_id'=>null); else $customer->tax_info = $taxinfo; */ diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index b1eb321f7f5..cecb7f7cb98 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -18,7 +18,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -70,7 +70,7 @@ class InterfaceContactRoles extends DolibarrTriggers if ($action === 'PROPAL_CREATE' || $action === 'ORDER_CREATE' || $action === 'BILL_CREATE' || $action === 'ORDER_SUPPLIER_CREATE' || $action === 'BILL_SUPPLIER_CREATE' || $action === 'PROPOSAL_SUPPLIER_CREATE' || $action === 'CONTRACT_CREATE' || $action === 'FICHINTER_CREATE' || $action === 'PROJECT_CREATE' || $action === 'TICKET_CREATE') { - dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); + dol_syslog("Trigger '".$this->name."' for action '".$action."' launched by ".__FILE__.". id=".$object->id); $socid = (property_exists($object, 'socid') ? $object->socid : $object->fk_soc); diff --git a/htdocs/core/triggers/interface_95_modWebhook_WebhookTriggers.class.php b/htdocs/core/triggers/interface_95_modWebhook_WebhookTriggers.class.php new file mode 100644 index 00000000000..6a05551d333 --- /dev/null +++ b/htdocs/core/triggers/interface_95_modWebhook_WebhookTriggers.class.php @@ -0,0 +1,137 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file core/triggers/interface_99_modWebhook_WebhookTriggers.class.php + * \ingroup webhook + * \brief Example trigger. + * + * Put detailed description here. + * + * \remarks You can create other triggers by copying this one. + * - File name should be either: + * - interface_99_modWebhook_MyTrigger.class.php + * - interface_99_all_MyTrigger.class.php + * - The file must stay in core/triggers + * - The class name must be InterfaceMytrigger + */ + +require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php'; +require_once DOL_DOCUMENT_ROOT.'/webhook/class/target.class.php'; + +/** + * Class of triggers for Webhook module + */ +class InterfaceWebhookTriggers extends DolibarrTriggers +{ + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + $this->db = $db; + + $this->name = preg_replace('/^Interface/i', '', get_class($this)); + $this->family = "demo"; + $this->description = "Webhook triggers."; + // 'development', 'experimental', 'dolibarr' or version + $this->version = 'development'; + $this->picto = 'webhook'; + } + + /** + * Trigger name + * + * @return string Name of trigger file + */ + public function getName() + { + return $this->name; + } + + /** + * Trigger description + * + * @return string Description of trigger file + */ + public function getDesc() + { + return $this->description; + } + + + /** + * Function called when a Dolibarrr business event is done. + * All functions "runTrigger" are triggered if file + * is inside directory core/triggers + * + * @param string $action Event action code + * @param CommonObject $object Object + * @param User $user Object user + * @param Translate $langs Object langs + * @param Conf $conf Object conf + * @return int <0 if KO, 0 if no triggered ran, >0 if OK + */ + public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf) + { + if (empty($conf->webhook) || empty($conf->webhook->enabled)) { + return 0; // If module is not enabled, we do nothing + } + require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; + + // Or you can execute some code here + $nbPosts = 0; + $errors = 0; + $static_object = new Target($this->db); + $target_url = $static_object->fetchAll(); + foreach ($target_url as $key => $tmpobject) { + $actionarray = explode(",", $tmpobject->trigger_codes); + if (is_array($actionarray) && in_array($action, $actionarray)) { + // Build the answer object + $resobject = new stdClass(); + $resobject->triggercode = $action; + $resobject->object = dol_clone($object, 2); + + if (property_exists($resobject->object, 'fields')) { + unset($resobject->object->fields); + } + if (property_exists($resobject->object, 'error')) { + unset($resobject->object->error); + } + if (property_exists($resobject->object, 'errors')) { + unset($resobject->object->errors); + } + + $jsonstr = json_encode($resobject); + + $response = getURLContent($tmpobject->url, 'POST', $jsonstr, 1, array(), array('http', 'https'), 0, -1); + if (empty($response['curl_error_no']) && $response['http_code'] >= 200 && $response['http_code'] < 300) { + $nbPosts ++; + } else { + $errors ++; + dol_syslog("Failed to get url with httpcode=".(!empty($response['http_code']) ? $response['http_code'] : "")." curl_error_no=".(!empty($response['curl_error_no']) ? $response['curl_error_no'] : ""), LOG_DEBUG); + } + } + } + if (!empty($errors)) { + return $errors * -1; + } + return $nbPosts; + } +} diff --git a/htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php b/htdocs/core/triggers/interface_95_modZapier_ZapierTriggers.class.php similarity index 96% rename from htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php rename to htdocs/core/triggers/interface_95_modZapier_ZapierTriggers.class.php index 8a2cffe05f3..7c16599f039 100644 --- a/htdocs/core/triggers/interface_99_modZapier_ZapierTriggers.class.php +++ b/htdocs/core/triggers/interface_95_modZapier_ZapierTriggers.class.php @@ -12,7 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -203,7 +203,7 @@ class InterfaceZapierTriggers extends DolibarrTriggers // case 'MYECMDIR_CREATE': // case 'MYECMDIR_MODIFY': - // Customer orders + // Sales orders case 'ORDER_CREATE': $resql = $this->db->query($sql); while ($resql && $obj = $this->db->fetch_array($resql)) { @@ -236,7 +236,7 @@ class InterfaceZapierTriggers extends DolibarrTriggers // case 'ORDER_SUPPLIER_REFUSE': // case 'ORDER_SUPPLIER_CANCEL': // case 'ORDER_SUPPLIER_SENTBYMAIL': - // case 'ORDER_SUPPLIER_DISPATCH': + // case 'ORDER_SUPPLIER_RECEIVE': // case 'LINEORDER_SUPPLIER_DISPATCH': // case 'LINEORDER_SUPPLIER_CREATE': // case 'LINEORDER_SUPPLIER_UPDATE': @@ -396,7 +396,7 @@ class InterfaceZapierTriggers extends DolibarrTriggers // case 'SHIPPING_DELETE': } if ($logtriggeraction) { - dol_syslog("Trigger '".$this->name."' for action '.$action.' launched by ".__FILE__." id=".$object->id); + dol_syslog("Trigger '".$this->name."' for action '".$action."' launched by ".__FILE__." id=".$object->id); } return 0; } @@ -404,14 +404,20 @@ class InterfaceZapierTriggers extends DolibarrTriggers /** * Post webhook in zapier with object data * - * @param string $url url provided by zapier - * @param string $json data to send + * @param string $url Url provided by zapier + * @param string $json Data to send * @return void */ function zapierPostWebhook($url, $json) { $headers = array('Accept: application/json', 'Content-Type: application/json'); - // TODO supprimer le webhook en cas de mauvaise réponse + + // TODO disable wekhook if error ? + + dol_syslog("Send message to Zapier with json size=".dol_strlen($json), LOG_DEBUG); + getURLContent($url, 'POSTALREADYFORMATED', $json, 1, $headers, array('http', 'https'), 0); + + /* $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @@ -420,8 +426,10 @@ function zapierPostWebhook($url, $json) curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $json); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + $output = curl_exec($ch); curl_close($ch); + */ } /** @@ -449,7 +457,6 @@ function cleanObjectDatas($toclean) unset($toclean->ref_previous); unset($toclean->ref_next); - unset($toclean->ref_int); unset($toclean->projet); // Should be fk_project unset($toclean->project); // Should be fk_project diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php index 8205696751b..2bdc9080b78 100644 --- a/htdocs/core/website.inc.php +++ b/htdocs/core/website.inc.php @@ -75,6 +75,18 @@ if ($pageid > 0) { if (!defined('USEDOLIBARREDITOR') && (in_array($websitepage->type_container, array('menu', 'other')) || empty($websitepage->status) && !defined('USEDOLIBARRSERVER'))) { $weblangs->load("website"); + + // Security options + + // X-Content-Type-Options + header("X-Content-Type-Options: nosniff"); + + // X-Frame-Options + if (empty($websitepage->allowed_in_frames) && empty($conf->global->WEBSITE_ALLOW_FRAMES_ON_ALL_PAGES)) { + header("X-Frame-Options: SAMEORIGIN"); + } + + //httponly_accessforbidden('


    '.$weblangs->trans("YouTryToAccessToAFileThatIsNotAWebsitePage", $websitepage->pageurl, $websitepage->type_container, $websitepage->status).'
    ', 404, 1); http_response_code(404); print '


    '.$weblangs->trans("YouTryToAccessToAFileThatIsNotAWebsitePage", $websitepage->pageurl, $websitepage->type_container, $websitepage->status).'
    '; exit; @@ -82,10 +94,82 @@ if ($pageid > 0) { } if (!defined('USEDOLIBARRSERVER') && !defined('USEDOLIBARREDITOR')) { + // Security options + + // X-Content-Type-Options header("X-Content-Type-Options: nosniff"); + + // X-Frame-Options if (empty($websitepage->allowed_in_frames) && empty($conf->global->WEBSITE_ALLOW_FRAMES_ON_ALL_PAGES)) { header("X-Frame-Options: SAMEORIGIN"); } + + // X-XSS-Protection + //header("X-XSS-Protection: 1"); // XSS filtering protection of some browsers (note: use of Content-Security-Policy is more efficient). Disabled as deprecated. + + // Content-Security-Policy + if (!defined('WEBSITE_MAIN_SECURITY_FORCECSP')) { + // The constant WEBSITE_MAIN_SECURITY_FORCECSP should never be defined by page, but the variable used just after may be + + // A default security policy that keep usage of js external component like ckeditor, stripe, google, working + // $contentsecuritypolicy = "font-src *; img-src *; style-src * 'unsafe-inline' 'unsafe-eval'; default-src 'self' *.stripe.com 'unsafe-inline' 'unsafe-eval'; script-src 'self' *.stripe.com 'unsafe-inline' 'unsafe-eval'; frame-src 'self' *.stripe.com; connect-src 'self';"; + $contentsecuritypolicy = getDolGlobalString('WEBSITE_MAIN_SECURITY_FORCECSP'); + + if (!is_object($hookmanager)) { + $hookmanager = new HookManager($db); + } + $hookmanager->initHooks(array("main")); + + $parameters = array('contentsecuritypolicy'=>$contentsecuritypolicy); + $result = $hookmanager->executeHooks('setContentSecurityPolicy', $parameters); // Note that $action and $object may have been modified by some hooks + if ($result > 0) { + $contentsecuritypolicy = $hookmanager->resPrint; // Replace CSP + } else { + $contentsecuritypolicy .= $hookmanager->resPrint; // Concat CSP + } + + if (!empty($contentsecuritypolicy)) { + // For example: to restrict to only local resources, except for css (cloudflare+google), and js (transifex + google tags) and object/iframe (youtube) + // default-src 'self'; style-src: https://cdnjs.cloudflare.com https://fonts.googleapis.com; script-src: https://cdn.transifex.com https://www.googletagmanager.com; object-src https://youtube.com; frame-src https://youtube.com; img-src: *; + // For example, to restrict everything to itself except img that can be on other servers: + // default-src 'self'; img-src *; + // Pre-existing site that uses too much js code to fix but wants to ensure resources are loaded only over https and disable plugins: + // default-src https: 'unsafe-inline' 'unsafe-eval'; object-src 'none' + header("Content-Security-Policy: ".$contentsecuritypolicy); + } + } + + // Referrer-Policy + if (!defined('WEBSITE_MAIN_SECURITY_FORCERP')) { + // The constant WEBSITE_MAIN_SECURITY_FORCERP should never be defined by page, but the variable used just after may be + + // For public web sites, we use the same default value than "strict-origin-when-cross-origin" + $referrerpolicy = getDolGlobalString('WEBSITE_MAIN_SECURITY_FORCERP', "strict-origin-when-cross-origin"); + + header("Referrer-Policy: ".$referrerpolicy); + } + + // Strict-Transport-Security + if (!defined('WEBSITE_MAIN_SECURITY_FORCESTS')) { + // The constant WEBSITE_MAIN_SECURITY_FORCESTS should never be defined by page, but the variable used just after may be + + // Example: "max-age=31536000; includeSubDomains" + $sts = getDolGlobalString('WEBSITE_MAIN_SECURITY_FORCESTS'); + if (!empty($sts)) { + header("Strict-Transport-Security: ".$sts); + } + } + + // Permissions-Policy (old name was Feature-Policy) + if (!defined('WEBSITE_MAIN_SECURITY_FORCEPP')) { + // The constant WEBSITE_MAIN_SECURITY_FORCEPP should never be defined by page, but the variable used just after may be + + // Example: "camera: 'none'; microphone: 'none';" + $pp = getDolGlobalString('WEBSITE_MAIN_SECURITY_FORCEPP'); + if (!empty($pp)) { + header("Permissions-Policy: ".$pp); + } + } } // A lang was forced, so we change weblangs init @@ -126,9 +210,21 @@ if ($_SERVER['PHP_SELF'] != DOL_URL_ROOT.'/website/index.php') { // If we browsi } } -// Show off line message +// Show off line message when all website is off if (!defined('USEDOLIBARREDITOR') && empty($website->status)) { + // Security options + + // X-Content-Type-Options + header("X-Content-Type-Options: nosniff"); + + // X-Frame-Options + if (empty($websitepage->allowed_in_frames) && empty($conf->global->WEBSITE_ALLOW_FRAMES_ON_ALL_PAGES)) { + header("X-Frame-Options: SAMEORIGIN"); + } + $weblangs->load("website"); + + //httponly_accessforbidden('


    '.$weblangs->trans("SorryWebsiteIsCurrentlyOffLine").'
    ', 503, 1); http_response_code(503); print '


    '.$weblangs->trans("SorryWebsiteIsCurrentlyOffLine").'
    '; exit; diff --git a/htdocs/cron/admin/cron.php b/htdocs/cron/admin/cron.php index 28078242dc6..d214c112aa3 100644 --- a/htdocs/cron/admin/cron.php +++ b/htdocs/cron/admin/cron.php @@ -129,21 +129,11 @@ dol_print_cron_urls(); print '
    '; -if (!empty($conf->use_javascript_ajax)) { - print "\n".''; -} +$constname = 'CRON_KEY'; + +// Add button to autosuggest a key +include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; +print dolJSToSetRandomPassword($constname); llxFooter(); $db->close(); diff --git a/htdocs/cron/card.php b/htdocs/cron/card.php index 561058ec68d..9900db2c9d6 100644 --- a/htdocs/cron/card.php +++ b/htdocs/cron/card.php @@ -24,6 +24,7 @@ * \brief Cron Jobs Card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; @@ -140,6 +141,7 @@ if ($action == 'add') { $object->unitfrequency = GETPOST('unitfrequency', 'int'); $object->frequency = GETPOST('nbfrequency', 'int'); $object->maxrun = GETPOST('maxrun', 'int'); + $object->email_alert = GETPOST('email_alert'); // Add cron task $result = $object->create($user); @@ -174,6 +176,7 @@ if ($action == 'update') { $object->unitfrequency = GETPOST('unitfrequency', 'int'); $object->frequency = GETPOST('nbfrequency', 'int'); $object->maxrun = GETPOST('maxrun', 'int'); + $object->email_alert = GETPOST('email_alert'); // Add cron task $result = $object->update($user); @@ -337,7 +340,7 @@ if (($action == "create") || ($action == "edit")) { print '
    "; - print ""; print ""; @@ -353,7 +356,7 @@ if (($action == "create") || ($action == "edit")) { print '"; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; + print '"; + print ""; + print "\n"; + print '"; print ""; print ""; @@ -471,7 +493,7 @@ if (($action == "create") || ($action == "edit")) { if (!empty($object->datestart)) { print $form->selectDate($object->datestart, 'datestart', 1, 1, '', "cronform"); } else { - print $form->selectDate('', 'datestart', 1, 1, '', "cronform"); + print $form->selectDate(-1, 'datestart', 1, 1, 1, "cronform"); } print ""; print ""; print ""; @@ -508,20 +530,20 @@ if (($action == "create") || ($action == "edit")) { $maxrun = $object->maxrun; } print $langs->trans('CronMaxRun').""; - print ""; print ""; print "\n"; - print '"; print ""; print '"; print '"; print '"; print '"; print '"; print '"; - if (!empty($conf->multicompany->enabled)) { + print '"; + + if (isModEnabled('multicompany')) { print '"; print '"; @@ -733,7 +774,7 @@ if (($action == "create") || ($action == "edit")) { print '"; print '
    '.$langs->trans("MailTopic").''.$object->sujet.'
    '.img_picto('$obj->email', 'email', 'class="paddingright"').$obj->email.''.$obj->lastname.''.$obj->firstname.''.$obj->other.''.img_picto('$obj->email', 'email', 'class="paddingright"').dol_escape_htmltag($obj->email).''.dol_escape_htmltag($obj->lastname).''.dol_escape_htmltag($obj->firstname).''.dol_escape_htmltag($obj->other).''; if (empty($obj->source_id) || empty($obj->source_type)) { print empty($obj->source_url) ? '' : $obj->source_url; // For backward compatibility @@ -660,6 +664,9 @@ if ($object->fetch($id) >= 0) { } elseif ($obj->source_type == 'contact') { $objectstaticcontact->fetch($obj->source_id); print $objectstaticcontact->getNomUrl(1); + } elseif ($obj->source_type == 'eventorganizationattendee') { + $objectstaticeventorganization->fetch($obj->source_id); + print $objectstaticeventorganization->getNomUrl(1); } else { print $obj->source_url; } diff --git a/htdocs/comm/mailing/class/advtargetemailing.class.php b/htdocs/comm/mailing/class/advtargetemailing.class.php index 62dd24aaaf7..7b4e06c897f 100644 --- a/htdocs/comm/mailing/class/advtargetemailing.class.php +++ b/htdocs/comm/mailing/class/advtargetemailing.class.php @@ -41,7 +41,7 @@ class AdvanceTargetingMailing extends CommonObject /** * @var string Name of table without prefix where object is stored */ - public $table_element = 'advtargetemailing'; + public $table_element = 'mailing_advtarget'; /** * @var int ID @@ -119,13 +119,23 @@ class AdvanceTargetingMailing extends CommonObject '3' => $langs->trans('ThirdParty'), '4' => $langs->trans('ContactsWithThirdpartyFilter') ); - $this->type_statuscommprospect = array( - -1 => $langs->trans("StatusProspect-1"), - 0 => $langs->trans("StatusProspect0"), - 1 => $langs->trans("StatusProspect1"), - 2 => $langs->trans("StatusProspect2"), - 3 => $langs->trans("StatusProspect3") - ); + + require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; + $customerStatic = new Client($this->db); + $customerStatic->loadCacheOfProspStatus(); + if (!empty($customerStatic->cacheprospectstatus)) { + foreach ($customerStatic->cacheprospectstatus as $dataProspectSt) { + $this->type_statuscommprospect[$dataProspectSt['id']]=$dataProspectSt['label']; + } + } else { + $this->type_statuscommprospect = array( + -1 => $langs->trans("StatusProspect-1"), + 0 => $langs->trans("StatusProspect0"), + 1 => $langs->trans("StatusProspect1"), + 2 => $langs->trans("StatusProspect2"), + 3 => $langs->trans("StatusProspect3") + ); + } } /** @@ -159,7 +169,7 @@ class AdvanceTargetingMailing extends CommonObject // Put here code to add control on parameters values // Insert request - $sql = "INSERT INTO ".MAIN_DB_PREFIX."advtargetemailing("; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_advtarget("; $sql .= "name,"; $sql .= "entity,"; $sql .= "fk_element,"; @@ -188,7 +198,7 @@ class AdvanceTargetingMailing extends CommonObject } if (!$error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."advtargetemailing"); + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mailing_advtarget"); } // Commit or rollback @@ -227,7 +237,7 @@ class AdvanceTargetingMailing extends CommonObject $sql .= " t.fk_user_mod,"; $sql .= " t.tms"; - $sql .= " FROM ".MAIN_DB_PREFIX."advtargetemailing as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."mailing_advtarget as t"; $sql .= " WHERE t.rowid = ".((int) $id); dol_syslog(get_class($this)."::fetch", LOG_DEBUG); @@ -282,7 +292,7 @@ class AdvanceTargetingMailing extends CommonObject $sql .= " t.fk_user_mod,"; $sql .= " t.tms"; - $sql .= " FROM ".MAIN_DB_PREFIX."advtargetemailing as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."mailing_advtarget as t"; if (!empty($id)) { $sql .= " WHERE t.fk_element = ".((int) $id)." AND type_element = 'mailing'"; } else { @@ -345,7 +355,7 @@ class AdvanceTargetingMailing extends CommonObject $sql .= " t.fk_user_mod,"; $sql .= " t.tms"; - $sql .= " FROM ".MAIN_DB_PREFIX."advtargetemailing as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."mailing_advtarget as t"; if (!empty($id)) { $sql .= " WHERE t.fk_element = ".((int) $id)." AND type_element = '".$this->db->escape($type_element)."'"; } else { @@ -410,7 +420,7 @@ class AdvanceTargetingMailing extends CommonObject // Put here code to add a control on parameters values // Update request - $sql = "UPDATE ".MAIN_DB_PREFIX."advtargetemailing SET"; + $sql = "UPDATE ".MAIN_DB_PREFIX."mailing_advtarget SET"; $sql .= " name=".(isset($this->name) ? "'".$this->db->escape($this->name)."'" : "''").","; $sql .= " entity=".$conf->entity.","; @@ -458,7 +468,7 @@ class AdvanceTargetingMailing extends CommonObject $this->db->begin(); if (!$error) { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."advtargetemailing"; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_advtarget"; $sql .= " WHERE rowid=".((int) $this->id); dol_syslog(get_class($this)."::delete sql=".$sql); diff --git a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php index 9e10d51031e..50169438baa 100644 --- a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php +++ b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php @@ -355,7 +355,7 @@ class FormAdvTargetEmailing extends Form $out = ''; $sql = "SELECT c.rowid, c.name, c.fk_element"; - $sql .= " FROM ".MAIN_DB_PREFIX."advtargetemailing as c"; + $sql .= " FROM ".MAIN_DB_PREFIX."mailing_advtarget as c"; $sql .= " WHERE type_element = '".$this->db->escape($type_element)."'"; $sql .= " ORDER BY c.name"; diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php index 4ea794bfbd4..75cf669d3c8 100644 --- a/htdocs/comm/mailing/class/mailing.class.php +++ b/htdocs/comm/mailing/class/mailing.class.php @@ -217,9 +217,10 @@ class Mailing extends CommonObject * Create an EMailing * * @param User $user Object of user making creation - * @return int -1 if error, Id of created object if OK + * @param int $notrigger Disable triggers + * @return int <0 if KO, Id of created object if OK */ - public function create($user) + public function create($user, $notrigger = 0) { global $conf, $langs; @@ -229,8 +230,6 @@ class Mailing extends CommonObject return -1; } - $this->db->begin(); - $this->title = trim($this->title); $this->email_from = trim($this->email_from); @@ -239,7 +238,9 @@ class Mailing extends CommonObject return -1; } + $error = 0; $now = dol_now(); + $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing"; $sql .= " (date_creat, fk_user_creat, entity)"; @@ -249,20 +250,33 @@ class Mailing extends CommonObject $this->title = $langs->trans("NoTitle"); } - dol_syslog("Mailing::Create", LOG_DEBUG); - $result = $this->db->query($sql); - if ($result) { + dol_syslog(__METHOD__, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mailing"); - if ($this->update($user) > 0) { - $this->db->commit(); - } else { - $this->error = $this->db->lasterror(); - $this->db->rollback(); - return -1; + $result = $this->update($user, 1); + if ($result < 0) { + $error++; } - return $this->id; + if (!$error && !$notrigger) { + // Call trigger + $result = $this->call_trigger('MAILING_CREATE', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + + if (!$error) { + $this->db->commit(); + return $this->id; + } else { + $this->db->rollback(); + dol_syslog(__METHOD__ . ' ' . $this->error, LOG_ERR); + return -2; + } } else { $this->error = $this->db->lasterror(); $this->db->rollback(); @@ -274,9 +288,10 @@ class Mailing extends CommonObject * Update emailing record * * @param User $user Object of user making change + * @param int $notrigger Disable triggers * @return int < 0 if KO, > 0 if OK */ - public function update($user) + public function update($user, $notrigger = 0) { // Check properties if ($this->body === 'InvalidHTMLString') { @@ -284,6 +299,9 @@ class Mailing extends CommonObject return -1; } + $error = 0; + $this->db->begin(); + $sql = "UPDATE ".MAIN_DB_PREFIX."mailing "; $sql .= " SET titre = '".$this->db->escape($this->title)."'"; $sql .= ", sujet = '".$this->db->escape($this->sujet)."'"; @@ -295,12 +313,30 @@ class Mailing extends CommonObject $sql .= ", bgimage = '".($this->bgimage ? $this->db->escape($this->bgimage) : null)."'"; $sql .= " WHERE rowid = ".(int) $this->id; - dol_syslog("Mailing::Update", LOG_DEBUG); - $result = $this->db->query($sql); - if ($result) { - return 1; + dol_syslog(__METHOD__, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { + if (!$error && !$notrigger) { + // Call trigger + $result = $this->call_trigger('MAILING_MODIFY', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + + if (!$error) { + dol_syslog(__METHOD__ . ' success'); + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + dol_syslog(__METHOD__ . ' ' . $this->error, LOG_ERR); + return -2; + } } else { $this->error = $this->db->lasterror(); + $this->db->rollback(); return -1; } } @@ -528,36 +564,46 @@ class Mailing extends CommonObject { global $user; + $error = 0; $this->db->begin(); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing"; - $sql .= " WHERE rowid = ".((int) $rowid); + if (!$notrigger) { + $result = $this->call_trigger('MAILING_DELETE', $user); + if ($result < 0) { + $error++; + } + } - dol_syslog("Mailing::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if ($resql) { - $res = $this->delete_targets(); - if ($res <= 0) { + if (!$error) { + $sql = "DELETE FROM " . MAIN_DB_PREFIX . "mailing"; + $sql .= " WHERE rowid = " . ((int) $rowid); + + dol_syslog(__METHOD__, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { + $res = $this->delete_targets(); + if ($res <= 0) { + $error++; + } + + if (!$error) { + dol_syslog(__METHOD__ . ' success'); + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + dol_syslog(__METHOD__ . ' ' . $this->error, LOG_ERR); + return -2; + } + } else { $this->db->rollback(); $this->error = $this->db->lasterror(); return -1; } } else { $this->db->rollback(); - $this->error = $this->db->lasterror(); return -1; } - - if (!$notrigger) { - $result = $this->call_trigger('MAILING_DELETE', $user); - if ($result < 0) { - $this->db->rollback(); - return -1; - } - } - - $this->db->commit(); - return 1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps diff --git a/htdocs/comm/mailing/index.php b/htdocs/comm/mailing/index.php index bd1a83e9959..d3ebc379b55 100644 --- a/htdocs/comm/mailing/index.php +++ b/htdocs/comm/mailing/index.php @@ -24,6 +24,7 @@ * \brief Home page for emailing area */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -58,7 +59,7 @@ print load_fiche_titre($title); print '
    '; -//if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is useless due to the global search combo +//if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is useless due to the global search combo //{ // Search into emailings print ''; diff --git a/htdocs/comm/mailing/info.php b/htdocs/comm/mailing/info.php index 74d6943a044..86ce2eb70b2 100644 --- a/htdocs/comm/mailing/info.php +++ b/htdocs/comm/mailing/info.php @@ -22,6 +22,7 @@ * \brief Page with log information for emailing */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php index ecde836c428..6916a2dfe5d 100644 --- a/htdocs/comm/mailing/list.php +++ b/htdocs/comm/mailing/list.php @@ -22,6 +22,7 @@ * \brief Liste des mailings */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; @@ -32,6 +33,7 @@ $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $optioncss = GETPOST('optioncss', 'alpha'); +$massaction = GETPOST('massaction', 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; @@ -186,7 +188,7 @@ $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - $title = $langs->trans("ListOfEMailings"); + $title = $langs->trans("EMailings"); if ($filteremail) { $title .= ' ('.$langs->trans("SentTo", $filteremail).')'; } @@ -277,7 +279,7 @@ if ($resql) { print '
    '.$obj->title.''.dol_escape_htmltag($obj->title).''; @@ -286,7 +288,7 @@ if ($resql) { // Nb of email if (!$filteremail) { - print ''; + print ''; $nbemail = $obj->nbemail; /*if ($obj->statut != 3 && !empty($conf->global->MAILING_LIMIT_SENDBYWEB) && $conf->global->MAILING_LIMIT_SENDBYWEB < $nbemail) { diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php index 8da9a17ebb2..81e5cd0d9d2 100644 --- a/htdocs/comm/multiprix.php +++ b/htdocs/comm/multiprix.php @@ -23,6 +23,7 @@ * \brief Tab to set the price level of a thirdparty */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -75,7 +76,7 @@ if ($_socid > 0) { // We load data of thirdparty $objsoc = new Societe($db); $objsoc->id = $_socid; - $objsoc->fetch($_socid, $to); + $objsoc->fetch($_socid); $head = societe_prepare_head($objsoc); @@ -141,7 +142,6 @@ if ($_socid > 0) { $resql = $db->query($sql); if ($resql) { print ''; - $tag = !$tag; print ''; print ''; print ''; diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 10ab441f442..5fb464a6e8e 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -1,20 +1,20 @@ - * Copyright (C) 2004-2014 Laurent Destailleur +/* Copyright (C) 2001-2007 Rodolphe Quiedeville + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005 Marc Barilley / Ocebo * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2010-2016 Juanjo Menent - * Copyright (C) 2010-2021 Philippe Grand + * Copyright (C) 2010-2022 Philippe Grand * Copyright (C) 2012-2013 Christophe Battarel * Copyright (C) 2012 Cedric Salvador - * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2014 Ferran Marcet - * Copyright (C) 2016 Marcos García - * Copyright (C) 2018-2021 Frédéric France - * Copyright (C) 2020 Nicolas ZABOURI - * Copyright (C) 2022 Gauthier VERDOL + * Copyright (C) 2013-2014 Florian Henry + * Copyright (C) 2014 Ferran Marcet + * Copyright (C) 2016 Marcos García + * Copyright (C) 2018-2021 Frédéric France + * Copyright (C) 2020 Nicolas ZABOURI + * Copyright (C) 2022 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,6 +37,7 @@ * \brief Page of commercial proposals card and list */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -47,24 +48,23 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/propale/modules_propale.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } -if (!empty($conf->variants->enabled)) { +if (isModEnabled('variants')) { require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; } // Load translation files required by the page $langs->loadLangs(array('companies', 'propal', 'compta', 'bills', 'orders', 'products', 'deliveries', 'sendings', 'other')); -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { $langs->load('margins'); } @@ -88,9 +88,6 @@ $hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : $hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); $hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); -// Nombre de ligne pour choix de produit/service predefinis -$NBLINES = 4; - $object = new Propal($db); $extrafields = new ExtraFields($db); @@ -112,19 +109,20 @@ if ($id > 0 || !empty($ref)) { // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('propalcard', 'globalcard')); -$usercanread = $user->rights->propal->lire; -$usercancreate = $user->rights->propal->creer; -$usercandelete = $user->rights->propal->supprimer; +$usercanread = $user->hasRight("propal", "lire"); +$usercancreate = $user->hasRight("propal", "creer"); +$usercandelete = $user->hasRight("propal", "supprimer"); $usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->close))); $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->validate))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->send))); -$usercancreateorder = $user->rights->commande->creer; -$usercancreateinvoice = $user->rights->facture->creer; -$usercancreatecontract = $user->rights->contrat->creer; +$usermustrespectpricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); +$usercancreateorder = $user->hasRight('commande', 'creer'); +$usercancreateinvoice = $user->hasRight('facture', 'creer'); +$usercancreatecontract = $user->hasRight('contrat', 'creer'); $usercancreateintervention = $user->hasRight('ficheinter', 'creer'); -$usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$usercancreatepurchaseorder = ($user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer')); $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php $permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php @@ -133,7 +131,6 @@ $permissiontoedit = $usercancreate; // Used by the include of actions_lineupdown // Security check if (!empty($user->socid)) { $socid = $user->socid; - $object->id = $user->socid; } restrictedArea($user, 'propal', $object->id); @@ -258,7 +255,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -276,14 +273,17 @@ if (empty($reshook)) { // Validation $idwarehouse = GETPOST('idwarehouse', 'int'); $result = $object->valid($user); + if ( $result > 0 && ! empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE) ) { + $result = $object->closeProposal($user, $object::STATUS_SIGNED); + } if ($result >= 0) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -316,8 +316,28 @@ if (empty($reshook)) { if (!$error) { $result = $object->set_date($user, $datep); + if ($result > 0 && !empty($object->duree_validite) && !empty($object->fin_validite)) { + $datev = $datep + ($object->duree_validite * 24 * 3600); + $result = $object->set_echeance($user, $datev, 1); + } if ($result < 0) { dol_print_error($db, $object->error); + } elseif (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { + $outputlangs = $langs; + $newlang = ''; + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (!empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model = $object->model_pdf; + $ret = $object->fetch($id); // Reload to get new records + if ($ret > 0) { + $object->fetch_thirdparty(); + } + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } } elseif ($action == 'setecheance' && $usercancreate) { @@ -326,8 +346,8 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) $newlang = $object->thirdparty->default_lang; if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); @@ -354,7 +374,7 @@ if (empty($reshook)) { if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } - } elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled) && $usercancreate) { + } elseif ($action == 'set_incoterms' && isModEnabled('incoterm') && $usercancreate) { // Set incoterm $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); } elseif ($action == 'add' && $usercancreate) { @@ -451,7 +471,7 @@ if (empty($reshook)) { $object->origin_id = GETPOST('originid'); // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); } @@ -626,10 +646,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -680,7 +700,7 @@ if (empty($reshook)) { $action = 'closeas'; } elseif (GETPOST('statut', 'int') == $object::STATUS_SIGNED || GETPOST('statut', 'int') == $object::STATUS_NOTSIGNED) { // prevent browser refresh from closing proposal several times - if ($object->statut == $object::STATUS_VALIDATED) { + if ($object->statut == $object::STATUS_VALIDATED || ( ! empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE) && $object->statut == $object::STATUS_DRAFT)) { $db->begin(); $result = $object->closeProposal($user, GETPOST('statut', 'int'), GETPOST('note_private', 'restricthtml')); @@ -696,7 +716,7 @@ if (empty($reshook)) { if ( !$error && GETPOST('statut', 'int') == $object::STATUS_SIGNED && GETPOST('generate_deposit', 'alpha') == 'on' - && ! empty($deposit_percent_from_payment_terms) && isModEnabled('facture') && !empty($user->rights->facture->creer) + && !empty($deposit_percent_from_payment_terms) && isModEnabled('facture') && !empty($user->rights->facture->creer) ) { require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; @@ -725,7 +745,7 @@ if (empty($reshook)) { $ret = $deposit->fetch($deposit->id); // Reload to get new records $outputlangs = $langs; - if ($conf->global->MAIN_MULTILANGS) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate('', $conf); $outputlangs->setDefaultLang($deposit->thirdparty->default_lang); $outputlangs->load('products'); @@ -754,7 +774,7 @@ if (empty($reshook)) { if ($object->statut == Propal::STATUS_SIGNED || $object->statut == Propal::STATUS_NOTSIGNED || $object->statut == Propal::STATUS_BILLED) { $db->begin(); - $result = $object->reopen($user, 1); + $result = $object->reopen($user, empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE)); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); $error++; @@ -856,7 +876,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -877,7 +897,7 @@ if (empty($reshook)) { } } } elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('vatforalllines', 'alpha') !== '' && $usercancreate) { - // Define vat_rate + // Define a vat_rate for all lines $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); $vat_rate = str_replace('*', '', $vat_rate); $localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc); @@ -886,7 +906,7 @@ if (empty($reshook)) { $result = $object->updateline($line->id, $line->subprice, $line->qty, $line->remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, $line->desc, 'HT', $line->info_bits, $line->special_code, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->product_type, $line->date_start, $line->date_end, $line->array_options, $line->fk_unit, $line->multicurrency_subprice); } } elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('remiseforalllines', 'alpha') !== '' && $usercancreate) { - // Define vat_rate + // Define a discount for all lines $remise_percent = (GETPOST('remiseforalllines') ? GETPOST('remiseforalllines') : 0); $remise_percent = str_replace('*', '', $remise_percent); foreach ($object->lines as $line) { @@ -896,19 +916,36 @@ if (empty($reshook)) { // Set if we used free entry or predefined product $predef = ''; $product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); - $price_ht = price2num(GETPOST('price_ht'), 'MU', 2); - $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); - $prod_entry_mode = GETPOST('prod_entry_mode'); + + $price_ht = ''; + $price_ht_devise = ''; + $price_ttc = ''; + $price_ttc_devise = ''; + + if (GETPOST('price_ht') !== '') { + $price_ht = price2num(GETPOST('price_ht'), 'MU', 2); + } + if (GETPOST('multicurrency_price_ht') !== '') { + $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); + } + if (GETPOST('price_ttc') !== '') { + $price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2); + } + if (GETPOST('multicurrency_price_ttc') !== '') { + $price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2); + } + + $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); if ($prod_entry_mode == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx'))) : 0); + $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); $tva_tx = ''; } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS', 2); - $remise_percent = price2num(GETPOST('remise_percent'.$predef), '', 2); + $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha'), '', 2) : 0); if (empty($remise_percent)) { $remise_percent = 0; } @@ -929,7 +966,7 @@ if (empty($reshook)) { $error++; } - if ($prod_entry_mode == 'free' && (empty($idprod) || $idprod < 0) && $price_ht === '' && $price_ht_devise === '') { // Unit price can be 0 but not ''. Also price can be negative for proposal. + if ($prod_entry_mode == 'free' && (empty($idprod) || $idprod < 0) && $price_ht === '' && $price_ht_devise === '' && $price_ttc === '' && $price_ttc_devise === '') { // Unit price can be 0 but not ''. Also price can be negative for proposal. setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("UnitPriceHT")), null, 'errors'); $error++; } @@ -938,7 +975,7 @@ if (empty($reshook)) { $error++; } - if (!$error && !empty($conf->variants->enabled) && $prod_entry_mode != 'free') { + if (!$error && isModEnabled('variants') && $prod_entry_mode != 'free') { if ($combinations = GETPOST('combinations', 'array')) { //Check if there is a product with the given combination $prodcomb = new ProductCombination($db); @@ -956,6 +993,7 @@ if (empty($reshook)) { $pu_ht = 0; $pu_ttc = 0; $price_min = 0; + $price_min_ttc = 0; $price_base_type = (GETPOST('price_base_type', 'alpha') ? GETPOST('price_base_type', 'alpha') : 'HT'); $db->begin(); @@ -983,6 +1021,7 @@ if (empty($reshook)) { $pu_ht = $prod->price; $pu_ttc = $prod->price_ttc; $price_min = $prod->price_min; + $price_min_ttc = $prod->price_min_ttc; $price_base_type = $prod->price_base_type; // If price per segment @@ -990,6 +1029,7 @@ if (empty($reshook)) { $pu_ht = $prod->multiprices[$object->thirdparty->price_level]; $pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level]; $price_min = $prod->multiprices_min[$object->thirdparty->price_level]; + $price_min_ttc = $prod->multiprices_min_ttc[$object->thirdparty->price_level]; $price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level]; if (!empty($conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL)) { // using this option is a bug. kept for backward compatibility if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) { @@ -1007,13 +1047,14 @@ if (empty($reshook)) { $filter = array('t.fk_product' => $prod->id, 't.fk_soc' => $object->thirdparty->id); - $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); + $result = $prodcustprice->fetchAll('', '', 0, 0, $filter); if ($result) { // If there is some prices specific to the customer if (count($prodcustprice->lines) > 0) { $pu_ht = price($prodcustprice->lines[0]->price); $pu_ttc = price($prodcustprice->lines[0]->price_ttc); $price_min = price($prodcustprice->lines[0]->price_min); + $price_min_ttc = price($prodcustprice->lines[0]->price_min_ttc); $price_base_type = $prodcustprice->lines[0]->price_base_type; $tva_tx = ($prodcustprice->lines[0]->default_vat_code ? $prodcustprice->lines[0]->tva_tx.' ('.$prodcustprice->lines[0]->default_vat_code.' )' : $prodcustprice->lines[0]->tva_tx); if ($prodcustprice->lines[0]->default_vat_code && !preg_match('/\(.*\)/', $tva_tx)) { @@ -1072,13 +1113,15 @@ if (empty($reshook)) { $tmpvat = price2num(preg_replace('/\s*\(.*\)/', '', $tva_tx)); $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); - // if price ht is forced (ie: calculated by margin rate and cost price). TODO Why this ? + // Set unit price to use if (!empty($price_ht) || $price_ht === '0') { $pu_ht = price2num($price_ht, 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); + } elseif (!empty($price_ttc) || $price_ttc === '0') { + $pu_ttc = price2num($price_ttc, 'MU'); + $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); } elseif ($tmpvat != $tmpprodvat) { - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + // Is this still used ? if ($price_base_type != 'HT') { $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); } else { @@ -1089,7 +1132,7 @@ if (empty($reshook)) { $desc = ''; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -1119,23 +1162,11 @@ if (empty($reshook)) { $desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->MAIN_CHANGE_ORDER_CONCAT_DESCRIPTION)); } - // Add dimensions into product description - /*if (empty($conf->global->MAIN_PRODUCT_DISABLE_AUTOADD_DIM)) - { - $text=''; - if ($prod->weight) $text.=($text?"\n":"").$outputlangs->trans("Weight").': '.$prod->weight.' '.$prod->weight_units; - if ($prod->length) $text.=($text?"\n":"").$outputlangs->trans("Length").': '.$prod->length.' '.$prod->length_units; - if ($prod->surface) $text.=($text?"\n":"").$outputlangs->trans("Surface").': '.$prod->surface.' '.$prod->surface_units; - if ($prod->volume) $text.=($text?"\n":"").$outputlangs->trans("Volume").': '.$prod->volume.' '.$prod->volume_units; - - $desc = dol_concatdesc($desc, $text); - }*/ - // Add custom code and origin country into description if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (!empty($prod->customcode) || !empty($prod->country_code))) { $tmptxt = '('; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'alpha')) { @@ -1177,15 +1208,22 @@ if (empty($reshook)) { $fk_unit = $prod->fk_unit; } else { $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); + $pu_ttc = price2num($price_ttc, 'MU'); $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); + if (empty($tva_tx)) { + $tva_npr = 0; + } $tva_tx = str_replace('*', '', $tva_tx); $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); $desc = $product_desc; $type = GETPOST('type'); - $fk_unit = GETPOST('units', 'alpha'); $pu_ht_devise = price2num($price_ht_devise, 'MU'); + $pu_ttc_devise = price2num($price_ttc_devise, 'MU'); + + if ($pu_ttc && !$pu_ht) { + $price_base_type = 'TTC'; + } } // Margin @@ -1195,6 +1233,20 @@ if (empty($reshook)) { $date_start = dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start'.$predef.'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); $date_end = dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end'.$predef.'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } + // Local Taxes $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty, $tva_npr); $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty, $tva_npr); @@ -1204,10 +1256,22 @@ if (empty($reshook)) { $info_bits |= 0x01; } - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (!empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { - $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); - setEventMessages($mesg, null, 'errors'); - } else { + //var_dump(price2num($price_min)); var_dump(price2num($pu_ht)); var_dump($remise_percent); + //var_dump(price2num($price_min_ttc)); var_dump(price2num($pu_ttc)); var_dump($remise_percent);exit; + + if ($usermustrespectpricemin) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + } + } + + if (!$error) { // Insert line $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $pu_ttc, $info_bits, $type, min($rank, count($object->lines) + 1), 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $date_start, $date_end, $array_options, $fk_unit, '', 0, $pu_ht_devise); @@ -1217,7 +1281,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -1285,18 +1349,34 @@ if (empty($reshook)) { $localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc); $localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc); $pu_ht = price2num(GETPOST('price_ht'), '', 2); + $pu_ttc = price2num(GETPOST('price_ttc'), '', 2); // Add buying price $fournprice = price2num(GETPOST('fournprice') ? GETPOST('fournprice') : ''); $buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2); + $pu_ttc_devise = price2num(GETPOST('multicurrency_subprice_ttc'), '', 2); $date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $remise_percent = price2num(GETPOST('remise_percent'), '', 2); + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } + // Extrafields $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); @@ -1321,16 +1401,32 @@ if (empty($reshook)) { $res = $product->fetch($productid); $type = $product->type; + $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); $price_min = $product->price_min; if (!empty($conf->global->PRODUIT_MULTIPRICES) && !empty($object->thirdparty->price_level)) { - $price_min = $product->multiprices_min [$object->thirdparty->price_level]; + $price_min = $product->multiprices_min[$object->thirdparty->price_level]; + } + $price_min_ttc = $product->price_min_ttc; + if (!empty($conf->global->PRODUIT_MULTIPRICES) && !empty($object->thirdparty->price_level)) { + $price_min_ttc = $product->multiprices_min_ttc[$object->thirdparty->price_level]; } - $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) { - setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); - $error++; + //var_dump(price2num($price_min)); var_dump(price2num($pu_ht)); var_dump($remise_percent); + //var_dump(price2num($price_min_ttc)); var_dump(price2num($pu_ttc)); var_dump($remise_percent);exit; + + if ($usermustrespectpricemin) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + $action = 'editline'; + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + $action = 'editline'; + } } } else { $type = GETPOST('type'); @@ -1358,7 +1454,14 @@ if (empty($reshook)) { $qty = price2num(GETPOST('qty', 'alpha'), 'MS'); - $result = $object->updateline(GETPOST('lineid', 'int'), $pu_ht, $qty, $remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, $description, 'HT', $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_options, GETPOST("units"), $pu_ht_devise); + $pu = $pu_ht; + $price_base_type = 'HT'; + if (empty($pu) && !empty($pu_ttc)) { + $pu = $pu_ttc; + $price_base_type = 'TTC'; + } + + $result = $object->updateline(GETPOST('lineid', 'int'), $pu, $qty, $remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, $description, $price_base_type, $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_options, GETPOST("units"), $pu_ht_devise); if ($result >= 0) { $db->commit(); @@ -1366,7 +1469,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -1522,12 +1625,16 @@ $form = new Form($db); $formfile = new FormFile($db); $formpropal = new FormPropal($db); $formmargin = new FormMargin($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } -$title = $langs->trans('Proposal')." - ".$langs->trans('Card'); +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("NewPropal"); +} $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos|DE:Modul_Angebote'; + llxHeader('', $title, $help_url); $now = dol_now(); @@ -1597,7 +1704,7 @@ if ($action == 'create') { $objectsrc->fetch_optionals(); $object->array_options = $objectsrc->array_options; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (!empty($objectsrc->multicurrency_code)) { $currency_code = $objectsrc->multicurrency_code; } @@ -1607,7 +1714,7 @@ if ($action == 'create') { } } } else { - if (!empty($conf->multicurrency->enabled) && !empty($soc->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($soc->multicurrency_code)) { $currency_code = $soc->multicurrency_code; } } @@ -1616,7 +1723,7 @@ if ($action == 'create') { if ($soc->fk_warehouse > 0) { $warehouse_id = $soc->fk_warehouse; } - if (!empty($conf->stock->enabled) && empty($warehouse_id) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + if (isModEnabled('stock') && empty($warehouse_id) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { if (empty($object->warehouse_id) && !empty($conf->global->MAIN_DEFAULT_WAREHOUSE)) { $warehouse_id = $conf->global->MAIN_DEFAULT_WAREHOUSE; } @@ -1653,7 +1760,7 @@ if ($action == 'create') { $shipping_method_id = 0; if ($socid > 0) { print ''; if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD) && !empty($soc->shipping_method_id)) { @@ -1662,7 +1769,7 @@ if ($action == 'create') { //$warehouse_id = $soc->warehouse_id; } else { print ''."\n"; -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { // Customer Categories print ''; print ''; print ''; @@ -144,10 +156,20 @@ foreach ($object->fields as $key => $val) { $rightpart .= ' tdtop'; } $rightpart.= '">'; + $labeltoshow = ''; if (!empty($val['help'])) { - $rightpart .= $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); + $labeltoshow .= $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); } else { - $rightpart .= $langs->trans($val['label']); + if (isset($val['copytoclipboard']) && $val['copytoclipboard'] == 1) { + $labeltoshow .= showValueWithClipboardCPButton($value, 0, $langs->transnoentitiesnoconv($val['label'])); + } else { + $labeltoshow .= $langs->trans($val['label']); + } + } + if (empty($val['alwayseditable'])) { + $rightpart .= $labeltoshow; + } else { + $rightpart .= $form->editfieldkey($labeltoshow, $key, $value, $object, 1, $val['type']); } $rightpart .= ''; $rightpart .= ''; $rightpart .= ''; } diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php index 5f463e44846..25e0f914807 100644 --- a/htdocs/core/tpl/contacts.tpl.php +++ b/htdocs/core/tpl/contacts.tpl.php @@ -41,7 +41,7 @@ $module = $object->element; // Special cases if ($module == 'propal') { - $permission = $user->rights->propale->creer; + $permission = $user->rights->propal->creer; } elseif ($module == 'fichinter') { $permission = $user->rights->ficheinter->creer; } elseif ($module == 'order_supplier') { @@ -280,9 +280,6 @@ print ''; print '
    '."\n"; print '
    '.$langs->trans("Date").''.$langs->trans("PriceLevel").''; - print $soc->getNomUrl(1); + print $soc->getNomUrl(1, 'customer'); print ''; print ''; - print img_picto('', 'company').$form->select_company('', 'socid', '(s.client = 1 OR s.client = 2 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 maxwidth500 widthcentpercentminusxx'); + print img_picto('', 'company').$form->select_company('', 'socid', '((s.client = 1 OR s.client = 2 OR s.client = 3) AND status=1)', 'SelectThirdParty', 1, 0, null, 0, 'minwidth300 maxwidth500 widthcentpercentminusxx'); // reload page to retrieve customer informations if (empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE_DISABLED)) { print ' + ' + ); } - - ob_start(); - $form->select_conditions_paiements(0, 'cond_reglement_id', -1, 0, 0, 'minwidth200'); - $paymentTermsSelect = ob_get_clean(); - - $formquestion[] = array( - 'type' => 'other', - 'tdclass' => 'fieldrequired showonlyifgeneratedeposit', - 'name' => 'cond_reglement_id', - 'label' => $langs->trans('PaymentTerm'), - 'value' => $paymentTermsSelect - ); - - $formquestion[] = array( - 'type' => 'checkbox', - 'tdclass' => 'showonlyifgeneratedeposit', - 'name' => 'validate_generated_deposit', - 'label' => $langs->trans('ValidateGeneratedDeposit') - ); - - $formquestion[] = array( - 'type' => 'onecolumn', - 'value' => ' - - ' - ); } } - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $formquestion = array_merge($formquestion, array( @@ -2130,7 +2244,11 @@ if ($action == 'create') { )); } - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetAcceptedRefused'), $text, 'confirm_closeas', $formquestion, '', 1, 250); + if (empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE)) { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetAcceptedRefused'), $text, 'confirm_closeas', $formquestion, '', 1, 250); + } else { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?statut=3&id=' . $object->id, $langs->trans('Close'), $text, 'confirm_closeas', $formquestion, '', 1, 250); + } } elseif ($action == 'delete') { // Confirm delete $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp', $object->ref), 'confirm_delete', '', 0, 1); @@ -2157,7 +2275,7 @@ if ($action == 'create') { } $text = $langs->trans('ConfirmValidateProp', $numref); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
    '; @@ -2204,41 +2322,30 @@ if ($action == 'create') { $morehtmlref = '
    '; // Ref customer $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string', '', null, null, '', 1); + $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string'.(isset($conf->global->THIRDPARTY_REF_INPUT_SIZE) ? ':'.$conf->global->THIRDPARTY_REF_INPUT_SIZE : ''), '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'customer'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'customer'); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherProposals").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').''; + $morehtmlref .= '
    '; if ($usercancreate) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ': '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -2252,7 +2359,7 @@ if ($action == 'create') { print '
    '; print '
    '; - print ''; + print '
    '; // Link for thirdparty discounts if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { @@ -2282,13 +2389,16 @@ if ($action == 'create') { // Date of proposal print ''; print ''; print ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -131,7 +131,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // On defini critere recherche compteur - $mask = $conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK; + $mask = getDolGlobalString("COMMANDE_FOURNISSEUR_ORCHIDEE_MASK"); if (!$mask) { $this->error = 'NotConfigured'; @@ -150,7 +150,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders * * @param Societe $objsoc Object third party * @param Object $object Object - * @return string Texte descripif + * @return string Descriptive text */ public function commande_get_num($objsoc = 0, $object = '') { diff --git a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php index 51c4e5f07d3..e8b66bb84cf 100644 --- a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php +++ b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php @@ -54,8 +54,6 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'order_supplier'; $list = array(); diff --git a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php index 4e1027207a7..74f90f1d68e 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -66,9 +66,9 @@ class pdf_standard extends ModelePDFSuppliersPayments /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -114,10 +114,10 @@ class pdf_standard extends ModelePDFSuppliersPayments $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_multilang = 1; // Available in several languages @@ -131,7 +131,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $this->posxtva = 90; $this->posxtotalttc = 180; - //if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup; + //if (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup; if ($this->page_largeur < 210) { // To work with US executive format $this->posxreffacturefourn -= 20; $this->posxreffacture -= 20; @@ -272,7 +272,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Order")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -291,7 +291,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -336,7 +336,7 @@ class pdf_standard extends ModelePDFSuppliersPayments if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -417,9 +417,12 @@ class pdf_standard extends ModelePDFSuppliersPayments $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -434,7 +437,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -673,10 +676,10 @@ class pdf_standard extends ModelePDFSuppliersPayments } } - if (! empty($conf->global->PDF_SHOW_PROJECT)) + if (!empty($conf->global->PDF_SHOW_PROJECT)) { $object->fetch_projet(); - if (! empty($object->project->ref)) + if (!empty($object->project->ref)) { $outputlangs->load("projects"); $posy+=4; @@ -821,8 +824,7 @@ class pdf_standard extends ModelePDFSuppliersPayments */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_INVOICE_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php index 0bc0543e6cd..a3e938a38ac 100644 --- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php +++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php @@ -57,15 +57,15 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { - global $conf, $langs; + global $conf, $langs, $db; $langs->load("bills"); - $form = new Form($this->db); + $form = new Form($db); $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; $texte .= ''; @@ -82,7 +82,7 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments // Parametrage du prefix $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -128,7 +128,7 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->SUPPLIER_PAYMENT_BRODATOR_MASK; + $mask = getDolGlobalString("SUPPLIER_PAYMENT_BRODATOR_MASK"); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php index c5db770bdb4..93195edec24 100644 --- a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php +++ b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php @@ -17,6 +17,8 @@ */ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; + + /** * Parent class for supplier invoices models */ @@ -74,8 +76,6 @@ abstract class ModelePDFSuppliersPayments extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'supplier_payment'; $list = array(); @@ -87,8 +87,9 @@ abstract class ModelePDFSuppliersPayments extends CommonDocGenerator } /** - * \class ModeleNumRefSupplierPayments - * \brief Payment numbering references mother class + * ModeleNumRefSupplierPayments + * + * Payment numbering references mother class */ abstract class ModeleNumRefSupplierPayments @@ -111,7 +112,7 @@ abstract class ModeleNumRefSupplierPayments /** * Return the default description of numbering module * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php b/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php index 82475f7a016..8fca5110896 100644 --- a/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php @@ -46,9 +46,9 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -179,7 +179,9 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; @@ -293,11 +295,11 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -306,11 +308,11 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -318,8 +320,8 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal dol_mkdir($conf->supplier_proposal->dir_temp); if (!is_writable($conf->supplier_proposal->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->supplier_proposal->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->supplier_proposal->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php index 6b47240016f..ff90b500969 100644 --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php @@ -22,9 +22,9 @@ */ /** - * \file htdocs/core/modules/propale/doc/pdf_azur.modules.php + * \file htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php * \ingroup propale - * \brief File of the class allowing to generate the supplier propals to the Aurore model + * \brief File of the class allowing to generate the supplier proposals to the Aurore model */ require_once DOL_DOCUMENT_ROOT.'/core/modules/supplier_proposal/modules_supplier_proposal.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; @@ -65,9 +65,9 @@ class pdf_aurore extends ModelePDFSupplierProposal /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -140,10 +140,10 @@ class pdf_aurore extends ModelePDFSupplierProposal $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -167,25 +167,19 @@ class pdf_aurore extends ModelePDFSupplierProposal $this->posxdiscount = 162; $this->postotalht = 174; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { - $this->posxtva = 101; - $this->posxup = 118; + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { + $this->posxup = 112; $this->posxqty = 135; $this->posxunit = 151; } else { - $this->posxtva = 102; - $this->posxup = 126; + $this->posxup = 120; $this->posxqty = 145; $this->posxunit = 162; } - if (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) || !empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN)) { - $this->posxup = $this->posxtva; - } - $this->posxpicture = $this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images + $this->posxpicture = $this->posxup - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images if ($this->page_largeur < 210) { // To work with US executive format $this->posxpicture -= 20; - $this->posxtva -= 20; $this->posxup -= 20; $this->posxqty -= 20; $this->posxunit -= 20; @@ -247,7 +241,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $objphoto = new Product($this->db); $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($object->lines[$i]->fk_product, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -257,7 +251,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -276,7 +270,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } } if (count($realpatharray) == 0) { - $this->posxpicture = $this->posxtva; + $this->posxpicture = $this->posxup; } if ($conf->supplier_proposal->dir_output) { @@ -343,7 +337,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("CommercialAsk")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -358,7 +352,6 @@ class pdf_aurore extends ModelePDFSupplierProposal if (empty($this->atleastonediscount)) { $delta = ($this->postotalht - $this->posxdiscount); $this->posxpicture += $delta; - $this->posxtva += $delta; $this->posxup += $delta; $this->posxqty += $delta; $this->posxunit += $delta; @@ -378,7 +371,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Affiche notes $notetoshow = empty($object->note_public) ? '' : $object->note_public; @@ -443,7 +436,7 @@ class pdf_aurore extends ModelePDFSupplierProposal if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -460,7 +453,7 @@ class pdf_aurore extends ModelePDFSupplierProposal if (!empty($imglinesize['width']) && !empty($imglinesize['height'])) { $curX = $this->posxpicture - 1; - $pdf->Image($realpatharray[$i], $curX + (($this->posxtva - $this->posxpicture - $imglinesize['width']) / 2), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300); // Use 300 dpi + $pdf->Image($realpatharray[$i], $curX + (($this->posxup - $this->posxpicture - $imglinesize['width']) / 2), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300); // Use 300 dpi // $pdf->Image does not increase value return by getY, so we save it manually $posYAfterImage = $curY + $imglinesize['height']; } @@ -472,7 +465,7 @@ class pdf_aurore extends ModelePDFSupplierProposal if ($posYAfterImage > 0) { $descWidth = $this->posxpicture - $curX; } else { - $descWidth = $this->posxtva - $curX; + $descWidth = $this->posxup - $curX; } pdf_writelinedesc($pdf, $object, $i, $outputlangs, $descWidth, 3, $curX, $curY, $hideref, $hidedesc, 1); @@ -482,7 +475,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pageposafter = $pageposbefore; //print $pageposafter.'-'.$pageposbefore;exit; $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. - pdf_writelinedesc($pdf, $object, $i, $outputlangs, $descWidth, 3, $curX, $curY, $hideref, $hidedesc); + pdf_writelinedesc($pdf, $object, $i, $outputlangs, $descWidth, 3, $curX, $curY, $hideref, $hidedesc, 1); $pageposafter = $pdf->getPage(); $posyafter = $pdf->GetY(); @@ -493,7 +486,7 @@ class pdf_aurore extends ModelePDFSupplierProposal if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -528,29 +521,13 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut - // VAT Rate - /* - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY($this->posxtva, $curY); - $pdf->MultiCell($this->posxup-$this->posxtva-3, 3, $vat_rate, 0, 'R'); - } - - // Unit price before discount - $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY($this->posxup, $curY); - if ($up_excl_tax > 0) - $pdf->MultiCell($this->posxqty-$this->posxup-0.8, 3, $up_excl_tax, 0, 'R', 0); - */ - // Quantity $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails); $pdf->SetXY($this->posxqty, $curY); $pdf->MultiCell($this->posxunit - $this->posxqty - 0.8, 4, $qty, 0, 'R'); // Enough for 6 chars // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); $pdf->SetXY($this->posxunit, $curY); $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 4, $unit, 0, 'L'); @@ -573,7 +550,7 @@ class pdf_aurore extends ModelePDFSupplierProposal */ // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -656,9 +633,12 @@ class pdf_aurore extends ModelePDFSupplierProposal $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -673,7 +653,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -764,7 +744,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object - * @return void + * @return int */ protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { @@ -802,7 +782,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $posy = $pdf->GetY() + 1; } - /* PHFAVRE + /* elseif ($object->availability_code || $object->availability) // Show availability conditions { $pdf->SetFont('','B', $default_font_size - 2); @@ -892,7 +872,7 @@ class pdf_aurore extends ModelePDFSupplierProposal // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if (!empty($object->fk_bank) || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if (!empty($object->fk_bank) || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = (empty($object->fk_bank) ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_bank); $account = new Account($this->db); $account->fetch($bankid); @@ -945,11 +925,12 @@ class pdf_aurore extends ModelePDFSupplierProposal // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - $pdf->SetXY($col2x, $tab2_top + 0); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); + $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); @@ -961,7 +942,7 @@ class pdf_aurore extends ModelePDFSupplierProposal // Nothing to do } else { //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -991,7 +972,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1045,7 +1026,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1075,7 +1056,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1135,22 +1116,6 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle, 0, $outputlangs), 0, 'R', 0); - /* - if ($object->close_code == 'discount_vat') - { - $index++; - $pdf->SetFillColor(255,255,255); - - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("EscompteOfferedShort"), $useborder, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc - $deja_regle, 0, $outputlangs), $useborder, 'R', 1); - - $resteapayer=0; - } - */ - $index++; $pdf->SetTextColor(0, 0, 60); $pdf->SetFillColor(224, 224, 224); @@ -1223,16 +1188,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->MultiCell(108, 2, $outputlangs->transnoentities("Designation"), '', 'L'); } - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { - $pdf->line($this->posxtva, $tab_top, $this->posxtva, $tab_top + $tab_height); - //$pdf->line($this->posxtva-2, $tab_top, $this->posxtva-2, $tab_top + $tab_height); - if (empty($hidetop)) { - $pdf->SetXY($this->posxtva - 5, $tab_top + 1); - $pdf->MultiCell($this->posxup - $this->posxtva + 3, 2, $outputlangs->transnoentities("VAT"), '', 'C'); - } - } - - $pdf->line($this->posxup - 3, $tab_top, $this->posxup - 3, $tab_top + $tab_height); + $pdf->line($this->posxup + 1, $tab_top, $this->posxup + 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxup - 1, $tab_top + 1); $pdf->MultiCell($this->posxqty - $this->posxup - 1, 2, $outputlangs->transnoentities("PriceUHT"), '', 'C'); @@ -1244,7 +1200,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->MultiCell($this->posxunit - $this->posxqty - 1, 2, $outputlangs->transnoentities("Qty"), '', 'C'); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxunit - 1, $tab_top + 1); @@ -1298,13 +1254,13 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1320,7 +1276,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } } else { $text = $this->emetteur->name; - $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, $ltrdirection); + $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0); } } @@ -1340,18 +1296,12 @@ class pdf_aurore extends ModelePDFSupplierProposal $posy += 1; $pdf->SetFont('', '', $default_font_size - 2); - if ($object->ref_client) { + if ($object->ref_fourn) { $posy += 4; $pdf->SetXY($posx, $posy); $pdf->SetTextColor(0, 0, 60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_client), 65), '', 'R'); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefSupplier")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_fourn), 65), '', 'R'); } - /* PHFAVRE - $posy+=4; - $pdf->SetXY($posx,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("SupplierProposalDate")." : " . dol_print_date($object->delivery_date, "day", false, $outputlangs, true), '', 'R'); - */ if ($object->thirdparty->code_fournisseur) { $posy += 4; @@ -1494,8 +1444,7 @@ class pdf_aurore extends ModelePDFSupplierProposal */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } } diff --git a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php index 2e618b3ece3..cb4f76fa727 100644 --- a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php +++ b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php @@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/supplier_proposal/modules_supplier /** - * Class to manage customer order numbering rules Marbre + * Class to manage the Marbre numbering rule for Request for quotation */ class mod_supplier_proposal_marbre extends ModeleNumRefSupplierProposal { diff --git a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php index 57cba16c01b..d4282eb80ec 100644 --- a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php +++ b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php @@ -60,7 +60,7 @@ class mod_supplier_proposal_saphir extends ModeleNumRefSupplierProposal /** * Return description of module * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -138,7 +138,7 @@ class mod_supplier_proposal_saphir extends ModeleNumRefSupplierProposal return 0; } - $date = $supplier_proposal->datep; + $date = $supplier_proposal->date; $customercode = $objsoc->code_client; $numFinal = get_next_value($db, $mask, 'supplier_proposal', 'ref', '', $customercode, $date); diff --git a/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php b/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php index 5a3d9e2280a..f1fbf2f9890 100644 --- a/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php +++ b/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php @@ -53,8 +53,6 @@ abstract class ModelePDFSupplierProposal extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'supplier_proposal'; $list = array(); @@ -87,9 +85,9 @@ abstract class ModeleNumRefSupplierProposal } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/syslog/mod_syslog_file.php b/htdocs/core/modules/syslog/mod_syslog_file.php index e99e16ef649..265741f35c6 100644 --- a/htdocs/core/modules/syslog/mod_syslog_file.php +++ b/htdocs/core/modules/syslog/mod_syslog_file.php @@ -113,11 +113,15 @@ class mod_syslog_file extends LogHandler implements LogHandlerInterface } if (!empty($conf->global->SYSLOG_FILE_ONEPERSESSION)) { - if ($conf->global->SYSLOG_FILE_ONEPERSESSION == 1) { // file depend on session key name (Note that session name is same for all users and is not a per user value) - $suffixinfilename .= '_'.session_name(); - } - if ($conf->global->SYSLOG_FILE_ONEPERSESSION == 2) { // file depend on session value sor per user - $suffixinfilename .= '_'.session_name().'_'.$_SERVER["REMOTE_ADDR"]; + if (is_numeric($conf->global->SYSLOG_FILE_ONEPERSESSION)) { + if ($conf->global->SYSLOG_FILE_ONEPERSESSION == 1) { // file depend on instance session key name (Note that session name is same for the instance so for all users and is not a per user value) + $suffixinfilename .= '_'.session_name(); + } + if ($conf->global->SYSLOG_FILE_ONEPERSESSION == 2) { // file depend on instance session key name + ip so nearly per user + $suffixinfilename .= '_'.session_name().'_'.$_SERVER["REMOTE_ADDR"]; + } + } else { + $suffixinfilename .= '_'.$conf->global->SYSLOG_FILE_ONEPERSESSION; } } diff --git a/htdocs/core/modules/takepos/mod_takepos_ref_simple.php b/htdocs/core/modules/takepos/mod_takepos_ref_simple.php index 41b7bb8c90e..31eb9345110 100644 --- a/htdocs/core/modules/takepos/mod_takepos_ref_simple.php +++ b/htdocs/core/modules/takepos/mod_takepos_ref_simple.php @@ -15,8 +15,8 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * or see http://www.gnu.org/ + * along with this program. If not, see . + * or see https://www.gnu.org/ */ /** @@ -24,6 +24,7 @@ * \ingroup takepos * \brief File with Simple ref numbering module for takepos */ + dol_include_once('/core/modules/takepos/modules_takepos.php'); /** @@ -80,10 +81,10 @@ class mod_takepos_ref_simple extends ModeleNumRefTakepos } /** - * Test si les numeros deja en vigueur dans la base ne provoquent pas de - * de conflits qui empechera cette numerotation de fonctionner. + * Test if the numbers already in the database do not cause any conflicts that will prevent this + * of conflicts that will prevent this numbering from working. * - * @return boolean false si conflit, true si ok + * @return boolean false if KO (there is a conflict), true if OK */ public function canBeActivated() { diff --git a/htdocs/core/modules/takepos/mod_takepos_ref_universal.php b/htdocs/core/modules/takepos/mod_takepos_ref_universal.php index 7e46c10a341..3ebc5858ae4 100644 --- a/htdocs/core/modules/takepos/mod_takepos_ref_universal.php +++ b/htdocs/core/modules/takepos/mod_takepos_ref_universal.php @@ -17,8 +17,8 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * or see http://www.gnu.org/ + * along with this program. If not, see . + * or see https://www.gnu.org/ */ /** @@ -26,6 +26,7 @@ * \ingroup takepos * \brief File with Universal ref numbering module for takepos */ + dol_include_once('/core/modules/takepos/modules_takepos.php'); /** @@ -51,17 +52,17 @@ class mod_takepos_ref_universal extends ModeleNumRefTakepos public $nom = 'Universal'; /** - * Renvoi la description du modele de numerotation + * return description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { - global $conf, $langs; + global $db, $langs; $langs->load('cashdesk@cashdesk'); - $form = new Form($this->db); + $form = new Form($db); $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; $texte .= ''; @@ -77,11 +78,11 @@ class mod_takepos_ref_universal extends ModeleNumRefTakepos $tooltip .= $langs->trans('GenericMaskCodes5'); $tooltip .= $langs->trans('CashDeskGenericMaskCodes6'); - // Parametrage du prefix + // Setting up the prefix $texte .= '
    '; - $texte .= ''; + $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -92,7 +93,7 @@ class mod_takepos_ref_universal extends ModeleNumRefTakepos } /** - * Renvoi un exemple de numerotation + * Return an example of numbering * * @return string Example */ @@ -121,12 +122,12 @@ class mod_takepos_ref_universal extends ModeleNumRefTakepos */ public function getNextValue($objsoc = null, $invoice = null, $mode = 'next') { - global $db, $conf; + global $db; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - // On defini critere recherche compteur - $mask = $conf->global->TAKEPOS_REF_UNIVERSAL_MASK; + // We define search criteria counter + $mask = getDolGlobalString('TAKEPOS_REF_UNIVERSAL_MASK'); if (!$mask) { $this->error = 'NotConfigured'; @@ -136,9 +137,10 @@ class mod_takepos_ref_universal extends ModeleNumRefTakepos // Get entities $entity = getEntity('invoicenumber', 1, $invoice); + $date = (empty($invoice->date) ? dol_now() : $invoice->date); $pos_source = is_object($invoice) && $invoice->pos_source > 0 ? $invoice->pos_source : 0; $mask = str_replace('{TN}', $pos_source, $mask); - $numFinal = get_next_value($db, $mask, 'facture', 'ref', '', $objsoc, $invoice->date, $mode, false, null, $entity); + $numFinal = get_next_value($db, $mask, 'facture', 'ref', '', $objsoc, $date, $mode, false, null, $entity); return $numFinal; } diff --git a/htdocs/core/modules/takepos/modules_takepos.php b/htdocs/core/modules/takepos/modules_takepos.php index 24fa70b7f28..bd554a85a65 100644 --- a/htdocs/core/modules/takepos/modules_takepos.php +++ b/htdocs/core/modules/takepos/modules_takepos.php @@ -16,14 +16,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * or see http://www.gnu.org/ + * along with this program. If not, see . + * or see https://www.gnu.org/ */ /** * \file htdocs/core/modules/takepos/modules_takepos.php * \ingroup takepos - * \brief Fichier contenant la classe mere de numerotation des tickets de caisse + * \brief File containing the parent class for the numbering of cash register receipts */ @@ -52,9 +52,9 @@ abstract class ModeleNumRefTakepos } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php b/htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php index d69da78aacc..e175115ac28 100644 --- a/htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php +++ b/htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php @@ -43,9 +43,9 @@ class doc_generic_ticket_odt extends ModelePDFTicket /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -122,7 +122,7 @@ class doc_generic_ticket_odt extends ModelePDFTicket // List of directories area $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -127,7 +127,7 @@ class mod_ticket_universal extends ModeleNumRefTicket include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // On defini critere recherche compteur - $mask = $conf->global->TICKET_UNIVERSAL_MASK; + $mask = getDolGlobalString("TICKET_UNIVERSAL_MASK"); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/ticket/modules_ticket.php b/htdocs/core/modules/ticket/modules_ticket.php index c8561382436..aaf9fb2e11b 100644 --- a/htdocs/core/modules/ticket/modules_ticket.php +++ b/htdocs/core/modules/ticket/modules_ticket.php @@ -44,8 +44,6 @@ abstract class ModelePDFTicket extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'ticket'; $list = array(); @@ -78,9 +76,9 @@ abstract class ModeleNumRefTicket } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php b/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php index a46503b6e2a..00edf04fac0 100644 --- a/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php +++ b/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php @@ -43,9 +43,9 @@ class doc_generic_user_odt extends ModelePDFUser /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -192,12 +192,20 @@ class doc_generic_user_odt extends ModelePDFUser $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -287,11 +295,11 @@ class doc_generic_user_odt extends ModelePDFUser if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -300,11 +308,11 @@ class doc_generic_user_odt extends ModelePDFUser if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -312,8 +320,8 @@ class doc_generic_user_odt extends ModelePDFUser dol_mkdir($conf->user->dir_temp); if (!is_writable($conf->user->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->user->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->user->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/user/modules_user.class.php b/htdocs/core/modules/user/modules_user.class.php index b0142687ce5..d20e5e95eb8 100644 --- a/htdocs/core/modules/user/modules_user.class.php +++ b/htdocs/core/modules/user/modules_user.class.php @@ -55,8 +55,6 @@ abstract class ModelePDFUser extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'user'; $list = array(); diff --git a/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php index 188cff00216..a5447260a2f 100644 --- a/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php +++ b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php @@ -46,9 +46,9 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -123,7 +123,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup $texte .= ''; $texte .= ''; $texte .= ''; - if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) { + if (!empty($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT)) { $texte .= ''; $texte .= ''; $texte .= ''; @@ -169,7 +169,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup if (count($listofdir)) { $texte .= $langs->trans("NumberOfModelFilesFound").': '.count($listoffiles).''; - if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) { + if (!empty($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT)) { // Model for creation $list = ModelePDFUserGroup::liste_modeles($this->db); $texte .= '
    '; - print ''; - if ($action != 'editdate' && $usercancreate && $caneditfield) { - print ''; - } - print '
    '; - print $langs->trans('DatePropal'); - print 'id.'">'.img_edit($langs->trans('SetDate'), 1).'
    '; + // print ''; + // if ($action != 'editdate' && $usercancreate && $caneditfield) { + // print ''; + // } + + // print '
    '; + // print $langs->trans('DatePropal'); + // print 'id.'">'.img_edit($langs->trans('SetDate'), 1).'
    '; + $editenable = $usercancreate && $caneditfield && $object->statut == Propal::STATUS_DRAFT; + print $form->editfieldkey("DatePropal", 'date', '', $object, $editenable); print '
    '; if ($action == 'editdate' && $usercancreate && $caneditfield) { print '
    '; @@ -2309,7 +2419,7 @@ if ($action == 'create') { // Date end proposal print '
    '; - print ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -101,19 +101,19 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices // Prefix setting of credit note $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { // Parametrage du prefix des replacement $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; } // Prefix setting of deposit $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= '
    '; + print ''; if ($action != 'editecheance' && $usercancreate && $caneditfield) { @@ -2385,7 +2495,7 @@ if ($action == 'create') { // Delivery delay print ''; - $texte .= ''; + $mask = empty($conf->global->EXPENSEREPORT_SAND_MASK) ? '' : $conf->global->EXPENSEREPORT_SAND_MASK; + $texte .= ''; $texte .= ''; @@ -128,7 +129,7 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->EXPENSEREPORT_SAND_MASK; + $mask = empty($conf->global->EXPENSEREPORT_SAND_MASK) ? '' : $conf->global->EXPENSEREPORT_SAND_MASK; if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/expensereport/modules_expensereport.php b/htdocs/core/modules/expensereport/modules_expensereport.php index eee2190033e..8e7718ee0d5 100644 --- a/htdocs/core/modules/expensereport/modules_expensereport.php +++ b/htdocs/core/modules/expensereport/modules_expensereport.php @@ -75,8 +75,6 @@ abstract class ModeleExpenseReport extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'expensereport'; $list = array(); diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index 88ae937bb6d..26f20378b23 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -220,12 +220,21 @@ class ExportCsv extends ModeleExports } else { $outputlangs->charset_output = 'ISO-8859-1'; } + $selectlabel = array(); foreach ($array_selected_sorted as $code => $value) { $newvalue = $outputlangs->transnoentities($array_export_fields_label[$code]); // newvalue is now $outputlangs->charset_output encoded $newvalue = $this->csvClean($newvalue, $outputlangs->charset_output); fwrite($this->handle, $newvalue.$this->separator); + $typefield = isset($array_types[$code]) ? $array_types[$code] : ''; + + if (preg_match('/^Select:/i', $typefield) && $typefield = substr($typefield, 7)) { + $selectlabel[$code."_label"] = $newvalue."_label"; + } + } + foreach ($selectlabel as $key => $value) { + fwrite($this->handle, $value.$this->separator); } fwrite($this->handle, "\n"); return 0; @@ -256,7 +265,7 @@ class ExportCsv extends ModeleExports $this->col = 0; $reg = array(); - + $selectlabelvalues = array(); foreach ($array_selected_sorted as $code => $value) { if (strpos($code, ' as ') == 0) { $alias = str_replace(array('.', '-', '(', ')'), '_', $code); @@ -275,17 +284,26 @@ class ExportCsv extends ModeleExports $newvalue = $outputlangs->transnoentities($reg[1]); } + // Clean data and add encloser if required (depending on value of USE_STRICT_CSV_RULES) $newvalue = $this->csvClean($newvalue, $outputlangs->charset_output); if (preg_match('/^Select:/i', $typefield) && $typefield = substr($typefield, 7)) { - $array = json_decode($typefield, true); - $array = $array['options']; - $newvalue = $array[$newvalue]; + $array = jsonOrUnserialize($typefield); + if (is_array($array) && !empty($newvalue)) { + $array = $array['options']; + $selectlabelvalues[$code."_label"] = $array[$newvalue]; + } else { + $selectlabelvalues[$code."_label"] = ""; + } } fwrite($this->handle, $newvalue.$this->separator); $this->col++; } + foreach ($selectlabelvalues as $key => $value) { + fwrite($this->handle, $value.$this->separator); + $this->col++; + } fwrite($this->handle, "\n"); return 0; @@ -338,13 +356,16 @@ class ExportCsv extends ModeleExports $newvalue = dol_htmlcleanlastbr($newvalue); //print $charset.' '.$newvalue."\n"; - // Rule 1 CSV: No CR, LF in cells (except if USE_STRICT_CSV_RULES is on, we can keep record as it is but we must add quotes) + // Rule 1 CSV: No CR, LF in cells (except if USE_STRICT_CSV_RULES is 1, we can keep record as it is but we must add quotes) $oldvalue = $newvalue; $newvalue = str_replace("\r", '', $newvalue); $newvalue = str_replace("\n", '\n', $newvalue); if (!empty($conf->global->USE_STRICT_CSV_RULES) && $oldvalue != $newvalue) { - // If strict use of CSV rules, we just add quote - $newvalue = $oldvalue; + // If we must use enclusure on text with CR/LF) + if ($conf->global->USE_STRICT_CSV_RULES == 1) { + // If we use strict CSV rules (original value must remain but we add quote) + $newvalue = $oldvalue; + } $addquote = 1; } diff --git a/htdocs/core/modules/export/export_excel2007.modules.php b/htdocs/core/modules/export/export_excel2007.modules.php index 54842ff8278..fba0dfa1c4a 100644 --- a/htdocs/core/modules/export/export_excel2007.modules.php +++ b/htdocs/core/modules/export/export_excel2007.modules.php @@ -85,7 +85,7 @@ class ExportExcel2007 extends ModeleExports $this->extension = 'xlsx'; // Extension for generated file by this driver $this->picto = 'mime/xls'; // Picto $this->version = '1.30'; // Driver version - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->disabled = 0; @@ -253,6 +253,7 @@ class ExportExcel2007 extends ModeleExports // Create a format for the column headings $this->workbook->getActiveSheet()->getStyle('1')->getFont()->setBold(true); $this->workbook->getActiveSheet()->getStyle('1')->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT); + $selectlabel = array(); $this->col = 1; if (!empty($conf->global->MAIN_USE_PHP_WRITEEXCEL)) { @@ -264,6 +265,11 @@ class ExportExcel2007 extends ModeleExports if (empty($alias)) { dol_print_error('', 'Bad value for field with code='.$code.'. Try to redefine export.'); } + $typefield = isset($array_types[$code]) ? $array_types[$code] : ''; + + if (preg_match('/^Select:/i', $typefield) && $typefield = substr($typefield, 7)) { + $selectlabel[$code."_label"] = $alias."_label"; + } if (!empty($conf->global->MAIN_USE_PHP_WRITEEXCEL)) { $this->worksheet->write($this->row, $this->col, $outputlangs->transnoentities($alias), $formatheader); } else { @@ -274,6 +280,17 @@ class ExportExcel2007 extends ModeleExports } $this->col++; } + foreach ($selectlabel as $key => $value) { + if (!empty($conf->global->MAIN_USE_PHP_WRITEEXCEL)) { + $this->worksheet->write($this->row, $this->col, $outputlangs->transnoentities($value), $formatheader); + } else { + $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row + 1, $outputlangs->transnoentities($value)); + if (!empty($array_types[$code]) && in_array($array_types[$code], array('Date', 'Numeric', 'TextAuto'))) { // Set autowidth for some types + $this->workbook->getActiveSheet()->getColumnDimension($this->column2Letter($this->col + 1))->setAutoSize(true); + } + } + $this->col++; + } $this->row++; return 0; } @@ -300,7 +317,7 @@ class ExportExcel2007 extends ModeleExports } $reg = array(); - + $selectlabelvalues = array(); foreach ($array_selected_sorted as $code => $value) { if (strpos($code, ' as ') == 0) { $alias = str_replace(array('.', '-', '(', ')'), '_', $code); @@ -316,9 +333,13 @@ class ExportExcel2007 extends ModeleExports $typefield = isset($array_types[$code]) ? $array_types[$code] : ''; if (preg_match('/^Select:/i', $typefield) && $typefield = substr($typefield, 7)) { - $array = json_decode($typefield, true); - $array = $array['options']; - $newvalue = $array[$newvalue]; + $array = jsonOrUnserialize($typefield); + if (is_array($array) && !empty($newvalue)) { + $array = $array['options']; + $selectlabelvalues[$code."_label"] = $array[$newvalue]; + } else { + $selectlabelvalues[$code."_label"] = ""; + } } // Traduction newvalue @@ -350,6 +371,29 @@ class ExportExcel2007 extends ModeleExports } $this->col++; } + foreach ($selectlabelvalues as $key => $newvalue) { + if (preg_match('/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$/i', $newvalue)) { + $newvalue = dol_stringtotime($newvalue); + $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row + 1, \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($newvalue)); + $coord = $this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row + 1)->getCoordinate(); + $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('yyyy-mm-dd'); + } elseif (preg_match('/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]$/i', $newvalue)) { + $newvalue = dol_stringtotime($newvalue); + $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row + 1, \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($newvalue)); + $coord = $this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row + 1)->getCoordinate(); + $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('yyyy-mm-dd h:mm:ss'); + } else { + if ($typefield == 'Text' || $typefield == 'TextAuto') { + $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row + 1, (string) $newvalue); + $coord = $this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row + 1)->getCoordinate(); + $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('@'); + $this->workbook->getActiveSheet()->getStyle($coord)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT); + } else { + $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row + 1, $newvalue); + } + } + $this->col++; + } $this->row++; return 0; } diff --git a/htdocs/core/modules/export/export_tsv.modules.php b/htdocs/core/modules/export/export_tsv.modules.php index 7718dd3e350..40ee75a1749 100644 --- a/htdocs/core/modules/export/export_tsv.modules.php +++ b/htdocs/core/modules/export/export_tsv.modules.php @@ -205,11 +205,20 @@ class ExportTsv extends ModeleExports public function write_title($array_export_fields_label, $array_selected_sorted, $outputlangs, $array_types) { // phpcs:enable + $selectlabel = array(); foreach ($array_selected_sorted as $code => $value) { $newvalue = $outputlangs->transnoentities($array_export_fields_label[$code]); // newvalue is now $outputlangs->charset_output encoded $newvalue = $this->tsv_clean($newvalue, $outputlangs->charset_output); fwrite($this->handle, $newvalue.$this->separator); + $typefield = isset($array_types[$code]) ? $array_types[$code] : ''; + + if (preg_match('/^Select:/i', $typefield) && $typefield = substr($typefield, 7)) { + $selectlabel[$code."_label"] = $newvalue."_label"; + } + } + foreach ($selectlabel as $key => $value) { + fwrite($this->handle, $value.$this->separator); } fwrite($this->handle, "\n"); return 0; @@ -232,6 +241,7 @@ class ExportTsv extends ModeleExports global $conf; $this->col = 0; + $selectlabelvalues = array(); foreach ($array_selected_sorted as $code => $value) { if (strpos($code, ' as ') == 0) { $alias = str_replace(array('.', '-', '(', ')'), '_', $code); @@ -253,14 +263,22 @@ class ExportTsv extends ModeleExports $newvalue = $this->tsv_clean($newvalue, $outputlangs->charset_output); if (preg_match('/^Select:/i', $typefield) && $typefield = substr($typefield, 7)) { - $array = json_decode($typefield, true); - $array = $array['options']; - $newvalue = $array[$newvalue]; + $array = jsonOrUnserialize($typefield); + if (is_array($array) && !empty($newvalue)) { + $array = $array['options']; + $selectlabelvalues[$code."_label"] = $array[$newvalue]; + } else { + $selectlabelvalues[$code."_label"] = ""; + } } fwrite($this->handle, $newvalue.$this->separator); $this->col++; } + foreach ($selectlabelvalues as $key => $value) { + fwrite($this->handle, $value.$this->separator); + $this->col++; + } fwrite($this->handle, "\n"); return 0; } diff --git a/htdocs/core/modules/export/modules_export.php b/htdocs/core/modules/export/modules_export.php index 685a4bda430..31b137f6465 100644 --- a/htdocs/core/modules/export/modules_export.php +++ b/htdocs/core/modules/export/modules_export.php @@ -28,7 +28,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; /** * Parent class for export modules */ -class ModeleExports extends CommonDocGenerator // This class can't be abstract as there is instance propreties loaded by liste_modeles +class ModeleExports extends CommonDocGenerator // This class can't be abstract as there is instance propreties loaded by listOfAvailableExportFormat { /** * @var string Error code (or message) @@ -44,7 +44,6 @@ class ModeleExports extends CommonDocGenerator // This class can't be abstrac public $libversion = array(); - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Load into memory list of available export format * @@ -52,10 +51,9 @@ class ModeleExports extends CommonDocGenerator // This class can't be abstrac * @param integer $maxfilenamelength Max length of value to show * @return array List of templates (same content than array this->driverlabel) */ - public function liste_modeles($db, $maxfilenamelength = 0) + public function listOfAvailableExportFormat($db, $maxfilenamelength = 0) { - // phpcs:enable - dol_syslog(get_class($this)."::liste_modeles"); + dol_syslog(get_class($this)."::listOfAvailableExportFormat"); $dir = DOL_DOCUMENT_ROOT."/core/modules/export/"; $handle = opendir($dir); diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php index 07a1e3966a6..f5dcfb86936 100644 --- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php +++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php @@ -47,9 +47,9 @@ class doc_generic_invoice_odt extends ModelePDFFactures /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -174,12 +174,20 @@ class doc_generic_invoice_odt extends ModelePDFFactures $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -268,11 +276,11 @@ class doc_generic_invoice_odt extends ModelePDFFactures if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -281,11 +289,11 @@ class doc_generic_invoice_odt extends ModelePDFFactures if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; //print "newdir=".$dir; //print "newfile=".$newfile; @@ -294,8 +302,8 @@ class doc_generic_invoice_odt extends ModelePDFFactures dol_mkdir($conf->facture->dir_temp); if (!is_writable($conf->facture->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->facture->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->facture->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 1bb5400acc7..dcbcb133729 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -9,6 +9,7 @@ * Copyright (C) 2015 Marcos García * Copyright (C) 2017-2018 Ferran Marcet * Copyright (C) 2018-2020 Frédéric France + * Copyright (C) 2022 Anthony Berton * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -70,9 +71,9 @@ class pdf_crabe extends ModelePDFFactures /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -131,6 +132,11 @@ class pdf_crabe extends ModelePDFFactures */ public $posxprogress; + /** + * @var int Category of operation + */ + public $categoryOfOperation = -1; // unknown by default + /** * Constructor @@ -155,10 +161,10 @@ class pdf_crabe extends ModelePDFFactures $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -179,7 +185,7 @@ class pdf_crabe extends ModelePDFFactures // Define position of columns $this->posxdesc = $this->marge_gauche + 1; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->posxtva = 101; $this->posxup = 118; $this->posxqty = 135; @@ -298,9 +304,9 @@ class pdf_crabe extends ModelePDFFactures if ($conf->facture->dir_output) { $object->fetch_thirdparty(); - $deja_regle = $object->getSommePaiement((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); - $amount_credit_notes_included = $object->getSumCreditNotesUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); - $amount_deposits_included = $object->getSumDepositsUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); + $deja_regle = $object->getSommePaiement((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); + $amount_credit_notes_included = $object->getSumCreditNotesUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); + $amount_deposits_included = $object->getSumDepositsUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); // Definition of $dir and $file if ($object->specimen) { @@ -373,7 +379,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($mysoc->name.($user->id > 0 ? ' - '.$outputlangs->convToOutputCharset($user->getFullName($outputlangs)) : '')); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -401,11 +407,37 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right // Set $this->atleastonediscount if you have at least one discount + // and determine category of operation + $categoryOfOperation = 0; + $nbProduct = 0; + $nbService = 0; for ($i = 0; $i < $nblines; $i++) { if ($object->lines[$i]->remise_percent) { $this->atleastonediscount++; } + + // determine category of operation + if ($categoryOfOperation < 2) { + $lineProductType = $object->lines[$i]->product_type; + if ($lineProductType == Product::TYPE_PRODUCT) { + $nbProduct++; + } elseif ($lineProductType == Product::TYPE_SERVICE) { + $nbService++; + } + if ($nbProduct > 0 && $nbService > 0) { + // mixed products and services + $categoryOfOperation = 2; + } + } } + // determine category of operation + if ($categoryOfOperation <= 0) { + // only services + if ($nbProduct == 0 && $nbService > 0) { + $categoryOfOperation = 1; + } + } + $this->categoryOfOperation = $categoryOfOperation; if (empty($this->atleastonediscount)) { // retrieve space not used by discount $delta = ($this->posxprogress - $this->posxdiscount); $this->posxpicture += $delta; @@ -448,12 +480,17 @@ class pdf_crabe extends ModelePDFFactures // $tab_top is y where we must continue content (90 = 42 + 48: 42 is height of logo and ref, 48 is address blocks) $tab_top = 90 + $top_shift; // top_shift is an addition for linked objects or addons (0 in most cases) - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // You can add more thing under header here, if you increase $extra_under_address_shift too. $extra_under_address_shift = 0; - if (! empty($conf->global->INVOICE_ADD_ZATCA_QR_CODE)) { + $qrcodestring = ''; + if (!empty($conf->global->INVOICE_ADD_ZATCA_QR_CODE)) { $qrcodestring = $object->buildZATCAQRString(); + } elseif (!empty($conf->global->INVOICE_ADD_SWISS_QR_CODE)) { + $qrcodestring = $object->buildSwitzerlandQRString(); + } + if ($qrcodestring) { $qrcodecolor = array('25', '25', '25'); // set style for QR-code $styleQr = array( @@ -486,7 +523,7 @@ class pdf_crabe extends ModelePDFFactures // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -573,8 +610,9 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { - $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $top_shift = $this->_pagehead($pdf, $object, 0, $outputlangs); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); } $pdf->setPage($pageposbefore + 1); @@ -616,8 +654,9 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { - $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $top_shift = $this->_pagehead($pdf, $object, 0, $outputlangs); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); } $pdf->setPage($pageposafter + 1); } @@ -669,7 +708,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->MultiCell($this->posxunit - $this->posxqty - 0.8, 4, $qty, 0, 'R'); // Enough for 6 chars // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); $pdf->SetXY($this->posxunit, $curY); $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 4, $unit, 0, 'L'); @@ -702,13 +741,13 @@ class pdf_crabe extends ModelePDFFactures // Collection of totals by value of VAT in $this->tva["taux"]=total_tva $prev_progress = $object->lines[$i]->get_prev_progress($object->id); if ($prev_progress > 0 && !empty($object->lines[$i]->situation_percent)) { // Compute progress from previous situation - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $sign * $object->lines[$i]->multicurrency_total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent; } else { $tvaligne = $sign * $object->lines[$i]->total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent; } } else { - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $sign * $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $sign * $object->lines[$i]->total_tva; @@ -744,10 +783,18 @@ class pdf_crabe extends ModelePDFFactures // retrieve global local tax if ($localtax1_type && $localtax1ligne != 0) { - $this->localtax1[$localtax1_type][$localtax1_rate] += $localtax1ligne; + if (empty($this->localtax1[$localtax1_type][$localtax1_rate])) { + $this->localtax1[$localtax1_type][$localtax1_rate] = $localtax1ligne; + } else { + $this->localtax1[$localtax1_type][$localtax1_rate] += $localtax1ligne; + } } if ($localtax2_type && $localtax2ligne != 0) { - $this->localtax2[$localtax2_type][$localtax2_rate] += $localtax2ligne; + if (empty($this->localtax2[$localtax2_type][$localtax2_rate])) { + $this->localtax2[$localtax2_type][$localtax2_rate] = $localtax2ligne; + } else { + $this->localtax2[$localtax2_type][$localtax2_rate] += $localtax2ligne; + } } if (($object->lines[$i]->info_bits & 0x01) == 0x01) { @@ -792,8 +839,12 @@ class pdf_crabe extends ModelePDFFactures $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { - $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $top_shift = $this->_pagehead($pdf, $object, 0, $outputlangs); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); + } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { @@ -809,8 +860,9 @@ class pdf_crabe extends ModelePDFFactures $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { - $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $top_shift = $this->_pagehead($pdf, $object, 0, $outputlangs); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); } } } @@ -934,8 +986,9 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { - $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $top_shift = $this->_pagehead($pdf, $object, 0, $outputlangs); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); } $pdf->setPage($current_page); $this->_tableau_versements_header($pdf, $object, $outputlangs, $default_font_size, $tab3_posx, $tab3_top + $y - 3, $tab3_width, $tab3_height); @@ -958,7 +1011,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetXY($tab3_posx, $tab3_top + $y); $pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($obj->datef), 'day', false, $outputlangs, true), 0, 'L', 0); $pdf->SetXY($tab3_posx + 21, $tab3_top + $y); - $pdf->MultiCell(20, 3, price((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $obj->multicurrency_amount_ttc : $obj->amount_ttc, 0, $outputlangs), 0, 'L', 0); + $pdf->MultiCell(20, 3, price((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $obj->multicurrency_amount_ttc : $obj->amount_ttc, 0, $outputlangs), 0, 'L', 0); $pdf->SetXY($tab3_posx + 40, $tab3_top + $y); $pdf->MultiCell(20, 3, $text, 0, 'L', 0); $pdf->SetXY($tab3_posx + 58, $tab3_top + $y); @@ -996,8 +1049,9 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { - $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $top_shift = $this->_pagehead($pdf, $object, 0, $outputlangs); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); } $pdf->setPage($current_page); $this->_tableau_versements_header($pdf, $object, $outputlangs, $default_font_size, $tab3_posx, $tab3_top + $y - 3, $tab3_width, $tab3_height); @@ -1008,7 +1062,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetXY($tab3_posx, $tab3_top + $y); $pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($row->date), 'day', false, $outputlangs, true), 0, 'L', 0); $pdf->SetXY($tab3_posx + 21, $tab3_top + $y); - $pdf->MultiCell(20, 3, price($sign * ((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount), 0, $outputlangs), 0, 'L', 0); + $pdf->MultiCell(20, 3, price($sign * ((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount), 0, $outputlangs), 0, 'L', 0); $pdf->SetXY($tab3_posx + 40, $tab3_top + $y); $oper = $outputlangs->transnoentitiesnoconv("PaymentTypeShort".$row->code); @@ -1105,6 +1159,10 @@ class pdf_crabe extends ModelePDFFactures } $posxval = 52; + $posxend = 110; // End of x for text on left side + if ($this->page_largeur < 210) { // To work with US executive format + $posxend -= 10; + } // Show payments conditions if ($object->type != 2 && ($object->cond_reglement_code || $object->cond_reglement)) { @@ -1122,14 +1180,29 @@ class pdf_crabe extends ModelePDFFactures $posy = $pdf->GetY() + 3; // We need spaces for 2 lines payment conditions } + // Show category of operations + if (getDolGlobalInt('INVOICE_CATEGORY_OF_OPERATION') == 2 && $this->categoryOfOperation >= 0) { + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $categoryOfOperationTitle = $outputlangs->transnoentities("MentionCategoryOfOperations").' : '; + $pdf->MultiCell($posxval - $this->marge_gauche, 4, $categoryOfOperationTitle, 0, 'L'); + + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $categoryOfOperationLabel = $outputlangs->transnoentities("MentionCategoryOfOperations" . $this->categoryOfOperation); + $pdf->MultiCell($posxend - $posxval, 4, $categoryOfOperationLabel, 0, 'L'); + + $posy = $pdf->GetY() + 3; // for 2 lines + } + if ($object->type != 2) { // Check a payment mode is defined if (empty($object->mode_reglement_code) && empty($conf->global->FACTURE_CHQ_NUMBER) - && empty($conf->global->FACTURE_RIB_NUMBER)) { + && !getDolGlobalInt('FACTURE_RIB_NUMBER')) { $this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"); } elseif (($object->mode_reglement_code == 'CHQ' && empty($conf->global->FACTURE_CHQ_NUMBER) && empty($object->fk_account) && empty($object->fk_bank)) - || ($object->mode_reglement_code == 'VIR' && empty($conf->global->FACTURE_RIB_NUMBER) && empty($object->fk_account) && empty($object->fk_bank))) { + || ($object->mode_reglement_code == 'VIR' && !getDolGlobalInt('FACTURE_RIB_NUMBER') && empty($object->fk_account) && empty($object->fk_bank))) { // Avoid having any valid PDF with setup that is not complete $outputlangs->load("errors"); @@ -1155,22 +1228,42 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetFont('', '', $default_font_size - 2); $pdf->SetXY($posxval, $posy); $lib_mode_reg = $outputlangs->transnoentities("PaymentType".$object->mode_reglement_code) != ('PaymentType'.$object->mode_reglement_code) ? $outputlangs->transnoentities("PaymentType".$object->mode_reglement_code) : $outputlangs->convToOutputCharset($object->mode_reglement); + //#21654: add account number used for the debit + if ($object->mode_reglement_code == "PRE") { + require_once DOL_DOCUMENT_ROOT.'/societe/class/companybankaccount.class.php'; + $bac = new CompanyBankAccount($this->db); + $bac->fetch(0, $object->thirdparty->id); + $iban= $bac->iban.(($bac->iban && $bac->bic) ? ' / ' : '').$bac->bic; + $lib_mode_reg .= $outputlangs->trans("PaymentTypePREdetails", dol_trunc($iban, 6, 'right', 'UTF-8', 1)); + } $pdf->MultiCell(80, 5, $lib_mode_reg, 0, 'L'); $posy = $pdf->GetY(); } + // Show if Option VAT debit option is on also if transmitter is french + // Decret n°2099-1299 2022-10-07 + // French mention : "Option pour le paiement de la taxe d'après les débits" + if ($this->emetteur->country_code == 'FR') { + if (isset($conf->global->TAX_MODE) && $conf->global->TAX_MODE == 1) { + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->writeHTMLCell(80, 5, '', '', $outputlangs->transnoentities("MentionVATDebitOptionIsOn"), 0, 1); + + $posy = $pdf->GetY() + 1; + } + } + // Show online payment link if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CB' || $object->mode_reglement_code == 'VAD') { $useonlinepayment = 0; if (!empty($conf->global->PDF_SHOW_LINK_TO_ONLINE_PAYMENT)) { - if (!empty($conf->paypal->enabled)) { + if (isModEnabled('paypal')) { $useonlinepayment++; } - if (!empty($conf->stripe->enabled)) { + if (isModEnabled('stripe')) { $useonlinepayment++; } - if (!empty($conf->paybox->enabled)) { + if (isModEnabled('paybox')) { $useonlinepayment++; } } @@ -1179,7 +1272,7 @@ class pdf_crabe extends ModelePDFFactures require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; global $langs; - $langs->loadLangs(array('payment', 'paybox')); + $langs->loadLangs(array('payment', 'paybox', 'stripe')); $servicename = $langs->transnoentities('Online'); $paiement_url = getOnlinePaymentUrl('', 'invoice', $object->ref, '', '', ''); $linktopay = $langs->trans("ToOfferALinkForOnlinePayment", $servicename).' '.$outputlangs->transnoentities("ClickHere").''; @@ -1231,7 +1324,7 @@ class pdf_crabe extends ModelePDFFactures // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if ($object->fk_account > 0 || $object->fk_bank > 0 || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if ($object->fk_account > 0 || $object->fk_bank > 0 || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = ($object->fk_account <= 0 ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if ($object->fk_bank > 0) { $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank @@ -1304,17 +1397,17 @@ class pdf_crabe extends ModelePDFFactures // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities(empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) ? "TotalHT" : "Total").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities(empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) ? "TotalHT" : "Total") : ''), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { @@ -1325,7 +1418,7 @@ class pdf_crabe extends ModelePDFFactures // FIXME amount of vat not supported with multicurrency //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1357,7 +1450,7 @@ class pdf_crabe extends ModelePDFFactures } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1419,7 +1512,7 @@ class pdf_crabe extends ModelePDFFactures } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1449,7 +1542,7 @@ class pdf_crabe extends ModelePDFFactures } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1529,8 +1622,8 @@ class pdf_crabe extends ModelePDFFactures } $pdf->SetTextColor(0, 0, 0); - $creditnoteamount = $object->getSumCreditNotesUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); // Warning, this also include excess received - $depositsamount = $object->getSumDepositsUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); + $creditnoteamount = $object->getSumCreditNotesUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); // Warning, this also include excess received + $depositsamount = $object->getSumDepositsUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); //print "x".$creditnoteamount."-".$depositsamount;exit; $resteapayer = price2num($total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT'); if (!empty($object->paye)) { @@ -1616,6 +1709,13 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetFont('', '', $default_font_size - 2); if (empty($hidetop)) { + // Show category of operations + if (getDolGlobalInt('INVOICE_CATEGORY_OF_OPERATION') == 1 && $this->categoryOfOperation >= 0) { + $categoryOfOperations = $outputlangs->transnoentities("MentionCategoryOfOperations") . ' : ' . $outputlangs->transnoentities("MentionCategoryOfOperations" . $this->categoryOfOperation); + $pdf->SetXY($this->marge_gauche, $tab_top - 4); + $pdf->MultiCell(($pdf->GetStringWidth($categoryOfOperations)) + 4, 2, $categoryOfOperations); + } + $titre = $outputlangs->transnoentities("AmountInCurrency", $outputlangs->transnoentitiesnoconv("Currency".$currency)); $pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top - 4); $pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre); @@ -1667,7 +1767,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->MultiCell($this->posxunit - $this->posxqty - 1, 2, $outputlangs->transnoentities("Qty"), '', 'C'); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxunit - 1, $tab_top + 1); @@ -1734,13 +1834,13 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -2028,6 +2128,43 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetFont('', '', $default_font_size - 1); $pdf->SetXY($posx + 2, $posy); $pdf->MultiCell($widthrecbox - 2, 4, $carac_client, 0, $ltrdirection); + + // Show shipping address + if (getDolGlobalInt('INVOICE_SHOW_SHIPPING_ADDRESS')) { + $idaddressshipping = $object->getIdContact('external', 'SHIPPING'); + + if (!empty($idaddressshipping)) { + $contactshipping = $object->fetch_Contact($idaddressshipping[0]); + $object->fetch_thirdparty($object->contact->fk_soc); + $carac_client_name_shipping=pdfBuildThirdpartyName($object->contact, $outputlangs); + $carac_client_shipping = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, $object->contact, $usecontact, 'target', $object); + } else { + $carac_client_name_shipping=pdfBuildThirdpartyName($object->thirdparty, $outputlangs); + $carac_client_shipping=pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'target', $object); + } + if (!empty($carac_client_shipping) && (isset($object->contact->socid) && $object->contact->socid != $object->socid)) { + $posy += $hautcadre; + + // Show shipping frame + $pdf->SetXY($posx + 2, $posy - 5); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->MultiCell($widthrecbox, '', $langs->trans('ShippingTo'), 0, 'L', 0); + $pdf->Rect($posx, $posy, $widthrecbox, $hautcadre); + + // Show shipping name + $pdf->SetXY($posx + 2, $posy + 3); + $pdf->SetFont('', 'B', $default_font_size); + $pdf->MultiCell($widthrecbox - 2, 2, $carac_client_name_shipping, '', 'L'); + + $posy = $pdf->getY(); + + // Show shipping information + $pdf->SetXY($posx+2, $posy); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->MultiCell($widthrecbox - 2, 2, $carac_client_shipping, '', 'L'); + $top_shift += $hautcadre; + } + } } $pdf->SetTextColor(0, 0, 0); @@ -2046,8 +2183,7 @@ class pdf_crabe extends ModelePDFFactures */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'INVOICE_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } } diff --git a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php index bc4dad25f91..f24517d0667 100644 --- a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php @@ -9,6 +9,8 @@ * Copyright (C) 2015 Marcos García * Copyright (C) 2017 Ferran Marcet * Copyright (C) 2018 Frédéric France + * Copyright (C) 2022 Anthony Berton + * Copyright (C) 2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -70,9 +72,9 @@ class pdf_sponge extends ModelePDFFactures /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -115,6 +117,32 @@ class pdf_sponge extends ModelePDFFactures */ public $marge_basse; + + /** + * @var int heightforinfotot + */ + public $heightforinfotot; + + /** + * @var int heightforfreetext + */ + public $heightforfreetext; + + /** + * @var int heightforfooter + */ + public $heightforfooter; + + /** + * @var int tab_top + */ + public $tab_top; + + /** + * @var int tab_top_newpage + */ + public $tab_top_newpage; + /** * Issuer * @var Societe Object that emits @@ -132,6 +160,11 @@ class pdf_sponge extends ModelePDFFactures */ public $cols; + /** + * @var int Category of operation + */ + public $categoryOfOperation = -1; // unknown by default + /** * Constructor @@ -156,10 +189,10 @@ class pdf_sponge extends ModelePDFFactures $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -259,7 +292,7 @@ class pdf_sponge extends ModelePDFFactures $objphoto->fetch($object->lines[$i]->fk_product); //var_dump($objphoto->ref);exit; - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -277,7 +310,7 @@ class pdf_sponge extends ModelePDFFactures } foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -305,9 +338,9 @@ class pdf_sponge extends ModelePDFFactures if ($conf->facture->multidir_output[$conf->entity]) { $object->fetch_thirdparty(); - $deja_regle = $object->getSommePaiement((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); - $amount_credit_notes_included = $object->getSumCreditNotesUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); - $amount_deposits_included = $object->getSumDepositsUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); + $deja_regle = $object->getSommePaiement((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); + $amount_credit_notes_included = $object->getSumCreditNotesUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); + $amount_deposits_included = $object->getSumDepositsUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); // Definition of $dir and $file if ($object->specimen) { @@ -345,9 +378,9 @@ class pdf_sponge extends ModelePDFFactures $default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance $pdf->SetAutoPageBreak(1, 0); - $heightforinfotot = 50 + (4 * $nbpayments); // Height reserved to output the info and total part and payment part - $heightforfreetext = (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT) ? $conf->global->MAIN_PDF_FREETEXT_HEIGHT : 5); // Height reserved to output the free text on last page - $heightforfooter = $this->marge_basse + (empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 12 : 22); // Height reserved to output the footer (value include bottom margin) + $this->heightforinfotot = 50 + (4 * $nbpayments); // Height reserved to output the info and total part and payment part + $this->heightforfreetext = (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT) ? $conf->global->MAIN_PDF_FREETEXT_HEIGHT : 5); // Height reserved to output the free text on last page + $this->heightforfooter = $this->marge_basse + (empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 12 : 22); // Height reserved to output the footer (value include bottom margin) if (class_exists('TCPDF')) { $pdf->setPrintHeader(false); @@ -374,7 +407,7 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($mysoc->name.($user->id > 0 ? ' - '.$outputlangs->convToOutputCharset($user->getFullName($outputlangs)) : '')); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -402,12 +435,37 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right // Set $this->atleastonediscount if you have at least one discount + // and determine category of operation + $categoryOfOperation = 0; + $nbProduct = 0; + $nbService = 0; for ($i = 0; $i < $nblines; $i++) { if ($object->lines[$i]->remise_percent) { $this->atleastonediscount++; } - } + // determine category of operation + if ($categoryOfOperation < 2) { + $lineProductType = $object->lines[$i]->product_type; + if ($lineProductType == Product::TYPE_PRODUCT) { + $nbProduct++; + } elseif ($lineProductType == Product::TYPE_SERVICE) { + $nbService++; + } + if ($nbProduct > 0 && $nbService > 0) { + // mixed products and services + $categoryOfOperation = 2; + } + } + } + // determine category of operation + if ($categoryOfOperation <= 0) { + // only services + if ($nbProduct == 0 && $nbService > 0) { + $categoryOfOperation = 1; + } + } + $this->categoryOfOperation = $categoryOfOperation; // Situation invoice handling if ($object->situation_cycle_ref) { @@ -422,21 +480,28 @@ class pdf_sponge extends ModelePDFFactures $pagenb++; // Output header (logo, ref and address blocks). This is first call for first page. - $top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs, $outputlangsbis); + $pagehead = $this->_pagehead($pdf, $object, 1, $outputlangs, $outputlangsbis); + $top_shift = $pagehead['top_shift']; + $shipp_shift = $pagehead['shipp_shift']; $pdf->SetFont('', '', $default_font_size - 1); $pdf->MultiCell(0, 3, ''); // Set interline to 3 $pdf->SetTextColor(0, 0, 0); // $pdf->GetY() here can't be used. It is bottom of the second addresse box but first one may be higher - // $tab_top is y where we must continue content (90 = 42 + 48: 42 is height of logo and ref, 48 is address blocks) - $tab_top = 90 + $top_shift; // top_shift is an addition for linked objects or addons (0 in most cases) - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + // $this->tab_top is y where we must continue content (90 = 42 + 48: 42 is height of logo and ref, 48 is address blocks) + $this->tab_top = 90 + $top_shift + $shipp_shift; // top_shift is an addition for linked objects or addons (0 in most cases) + $this->tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // You can add more thing under header here, if you increase $extra_under_address_shift too. $extra_under_address_shift = 0; - if (! empty($conf->global->INVOICE_ADD_ZATCA_QR_CODE)) { + $qrcodestring = ''; + if (!empty($conf->global->INVOICE_ADD_ZATCA_QR_CODE)) { $qrcodestring = $object->buildZATCAQRString(); + } elseif (!empty($conf->global->INVOICE_ADD_SWISS_QR_CODE)) { + $qrcodestring = $object->buildSwitzerlandQRString(); + } + if ($qrcodestring) { $qrcodecolor = array('25', '25', '25'); // set style for QR-code $styleQr = array( @@ -447,7 +512,7 @@ class pdf_sponge extends ModelePDFFactures 'module_width' => 1, // width of a single module in points 'module_height' => 1 // height of a single module in points ); - $pdf->write2DBarcode($qrcodestring, 'QRCODE,M', $this->marge_gauche, $tab_top - 5, 25, 25, $styleQr, 'N'); + $pdf->write2DBarcode($qrcodestring, 'QRCODE,M', $this->marge_gauche, $this->tab_top - 5, 25, 25, $styleQr, 'N'); $extra_under_address_shift += 25; } @@ -464,32 +529,32 @@ class pdf_sponge extends ModelePDFFactures $extra_under_address_shift += $hookmanager->resArray['extra_under_header_shift']; } - $tab_top += $extra_under_address_shift; - $tab_top_newpage += 0; + $this->tab_top += $extra_under_address_shift; + $this->tab_top_newpage += 0; // Define heigth of table for lines (for first page) - $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; + $tab_height = $this->page_hauteur - $this->tab_top - $this->heightforfooter - $this->heightforfreetext; - $nexY = $tab_top - 1; + $nexY = $this->tab_top - 1; // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { - $tab_top -= 2; + $this->tab_top -= 2; $pdf->SetFont('', '', $default_font_size - 1); - $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $tab_top - 1, dol_htmlentitiesbr($desc_incoterms), 0, 1); + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $this->tab_top - 1, dol_htmlentitiesbr($desc_incoterms), 0, 1); $nexY = max($pdf->GetY(), $nexY); - $height_incoterms = $nexY - $tab_top; + $height_incoterms = $nexY - $this->tab_top; // Rect takes a length in 3rd parameter $pdf->SetDrawColor(192, 192, 192); - $pdf->Rect($this->marge_gauche, $tab_top - 1, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $height_incoterms + 1); + $pdf->Rect($this->marge_gauche, $this->tab_top - 1, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $height_incoterms + 1); - $tab_top = $nexY + 6; + $this->tab_top = $nexY + 6; $height_incoterms += 4; } } @@ -516,7 +581,7 @@ class pdf_sponge extends ModelePDFFactures $pagenb = $pdf->getPage(); if ($notetoshow) { - $tab_top -= 2; + $this->tab_top -= 2; $tab_width = $this->page_largeur - $this->marge_gauche - $this->marge_droite; $pageposbeforenote = $pagenb; @@ -529,7 +594,7 @@ class pdf_sponge extends ModelePDFFactures $pdf->startTransaction(); $pdf->SetFont('', '', $default_font_size - 1); - $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1); + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $this->tab_top, dol_htmlentitiesbr($notetoshow), 0, 1); // Description $pageposafternote = $pdf->getPage(); $posyafter = $pdf->GetY(); @@ -544,33 +609,33 @@ class pdf_sponge extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } // $this->_pagefoot($pdf,$object,$outputlangs,1); - $pdf->setTopMargin($tab_top_newpage); + $pdf->setTopMargin($this->tab_top_newpage); // The only function to edit the bottom margin of current page to set it. - $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext); + $pdf->setPageOrientation('', 1, $this->heightforfooter + $this->heightforfreetext); } // back to start $pdf->setPage($pageposbeforenote); - $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext); + $pdf->setPageOrientation('', 1, $this->heightforfooter + $this->heightforfreetext); $pdf->SetFont('', '', $default_font_size - 1); - $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1); + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $this->tab_top, dol_htmlentitiesbr($notetoshow), 0, 1); $pageposafternote = $pdf->getPage(); $posyafter = $pdf->GetY(); - if ($posyafter > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + 20))) { // There is no space left for total+free text + if ($posyafter > ($this->page_hauteur - ($this->heightforfooter + $this->heightforfreetext + 20))) { // There is no space left for total+free text $pdf->AddPage('', '', true); $pagenb++; $pageposafternote++; $pdf->setPage($pageposafternote); - $pdf->setTopMargin($tab_top_newpage); + $pdf->setTopMargin($this->tab_top_newpage); // The only function to edit the bottom margin of current page to set it. - $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext); - //$posyafter = $tab_top_newpage; + $pdf->setPageOrientation('', 1, $this->heightforfooter + $this->heightforfreetext); + //$posyafter = $this->tab_top_newpage; } @@ -583,11 +648,11 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetDrawColor(128, 128, 128); // Draw note frame if ($i > $pageposbeforenote) { - $height_note = $this->page_hauteur - ($tab_top_newpage + $heightforfooter); - $pdf->Rect($this->marge_gauche, $tab_top_newpage - 1, $tab_width, $height_note + 1); + $height_note = $this->page_hauteur - ($this->tab_top_newpage + $this->heightforfooter); + $pdf->Rect($this->marge_gauche, $this->tab_top_newpage - 1, $tab_width, $height_note + 1); } else { - $height_note = $this->page_hauteur - ($tab_top + $heightforfooter); - $pdf->Rect($this->marge_gauche, $tab_top - 1, $tab_width, $height_note + 1); + $height_note = $this->page_hauteur - ($this->tab_top + $this->heightforfooter); + $pdf->Rect($this->marge_gauche, $this->tab_top - 1, $tab_width, $height_note + 1); } // Add footer @@ -602,20 +667,20 @@ class pdf_sponge extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } - $height_note = $posyafter - $tab_top_newpage; - $pdf->Rect($this->marge_gauche, $tab_top_newpage - 1, $tab_width, $height_note + 1); + $height_note = $posyafter - $this->tab_top_newpage; + $pdf->Rect($this->marge_gauche, $this->tab_top_newpage - 1, $tab_width, $height_note + 1); } else { // No pagebreak $pdf->commitTransaction(); $posyafter = $pdf->GetY(); - $height_note = $posyafter - $tab_top; - $pdf->Rect($this->marge_gauche, $tab_top - 1, $tab_width, $height_note + 1); + $height_note = $posyafter - $this->tab_top; + $pdf->Rect($this->marge_gauche, $this->tab_top - 1, $tab_width, $height_note + 1); - if ($posyafter > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + 20))) { + if ($posyafter > ($this->page_hauteur - ($this->heightforfooter + $this->heightforfreetext + 20))) { // not enough space, need to add page $pdf->AddPage('', '', true); $pagenb++; @@ -624,16 +689,16 @@ class pdf_sponge extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } - $posyafter = $tab_top_newpage; + $posyafter = $this->tab_top_newpage; } } $tab_height = $tab_height - $height_note; - $tab_top = $posyafter + 6; + $this->tab_top = $posyafter + 6; } else { $height_note = 0; } @@ -643,10 +708,10 @@ class pdf_sponge extends ModelePDFFactures // Table simulation to know the height of the title line (this set this->tableTitleHeight) $pdf->startTransaction(); - $this->pdfTabTitles($pdf, $tab_top, $tab_height, $outputlangs, $hidetop); + $this->pdfTabTitles($pdf, $this->tab_top, $tab_height, $outputlangs, $hidetop); $pdf->rollbackTransaction(true); - $nexY = $tab_top + $this->tabTitleHeight; + $nexY = $this->tab_top + $this->tabTitleHeight; // Loop on each lines $pageposbeforeprintlines = $pdf->getPage(); @@ -662,8 +727,8 @@ class pdf_sponge extends ModelePDFFactures $imglinesize = pdf_getSizeForImage($realpatharray[$i]); } - $pdf->setTopMargin($tab_top_newpage); - $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext + $heightforinfotot); // The only function to edit the bottom margin of current page to set it. + $pdf->setTopMargin($this->tab_top_newpage); + $pdf->setPageOrientation('', 1, $this->heightforfooter + $this->heightforfreetext + $this->heightforinfotot); // The only function to edit the bottom margin of current page to set it. $pageposbefore = $pdf->getPage(); $showpricebeforepagebreak = 1; @@ -672,14 +737,14 @@ class pdf_sponge extends ModelePDFFactures if ($this->getColumnStatus('photo')) { // We start with Photo of product line - if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + $heightforinfotot))) { // If photo too high, we moved completely on new page + if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur - ($this->heightforfooter + $this->heightforfreetext + $this->heightforinfotot))) { // If photo too high, we moved completely on new page $pdf->AddPage('', '', true); if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } $pdf->setPage($pageposbefore + 1); - $curY = $tab_top_newpage; + $curY = $this->tab_top_newpage; // Allows data in the first page if description is long enough to break in multiples pages if (!empty($conf->global->MAIN_PDF_DATA_ON_FIRST_PAGE)) { @@ -706,14 +771,14 @@ class pdf_sponge extends ModelePDFFactures if ($pageposafter > $pageposbefore) { // There is a pagebreak $pdf->rollbackTransaction(true); $pageposafter = $pageposbefore; - $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. + $pdf->setPageOrientation('', 1, $this->heightforfooter); // The only function to edit the bottom margin of current page to set it. $this->printColDescContent($pdf, $curY, 'desc', $object, $i, $outputlangs, $hideref, $hidedesc); $pageposafter = $pdf->getPage(); $posyafter = $pdf->GetY(); - //var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit; - if ($posyafter > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + $heightforinfotot))) { // There is no space left for total+free text + //var_dump($posyafter); var_dump(($this->page_hauteur - ($this->heightforfooter+$this->heightforfreetext+$this->heightforinfotot))); exit; + if ($posyafter > ($this->page_hauteur - ($this->heightforfooter + $this->heightforfreetext + $this->heightforinfotot))) { // There is no space left for total+free text if ($i == ($nblines - 1)) { // No more lines, and no space left to show total, so we create a new page $pdf->AddPage('', '', true); if (!empty($tplidx)) { @@ -747,7 +812,7 @@ class pdf_sponge extends ModelePDFFactures // We suppose that a too long description or photo were moved completely on next page if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) { $pdf->setPage($pageposafter); - $curY = $tab_top_newpage; + $curY = $this->tab_top_newpage; } $pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font @@ -840,13 +905,13 @@ class pdf_sponge extends ModelePDFFactures // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva $prev_progress = $object->lines[$i]->get_prev_progress($object->id); if ($prev_progress > 0 && !empty($object->lines[$i]->situation_percent)) { // Compute progress from previous situation - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $sign * $object->lines[$i]->multicurrency_total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent; } else { $tvaligne = $sign * $object->lines[$i]->total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent; } } else { - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $sign * $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $sign * $object->lines[$i]->total_tva; @@ -918,24 +983,27 @@ class pdf_sponge extends ModelePDFFactures while ($pagenb < $pageposafter) { $pdf->setPage($pagenb); if ($pagenb == $pageposbeforeprintlines) { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, $hidetop, 1, $object->multicurrency_code, $outputlangsbis); + $this->_tableau($pdf, $this->tab_top, $this->page_hauteur - $this->tab_top - $this->heightforfooter, 0, $outputlangs, $hidetop, 1, $object->multicurrency_code, $outputlangsbis); } else { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code, $outputlangsbis); + $this->_tableau($pdf, $this->tab_top_newpage, $this->page_hauteur - $this->tab_top_newpage - $this->heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code, $outputlangsbis); } $this->_pagefoot($pdf, $object, $outputlangs, 1); $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == $pageposafter) { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, $hidetop, 1, $object->multicurrency_code, $outputlangsbis); + $this->_tableau($pdf, $this->tab_top, $this->page_hauteur - $this->tab_top - $this->heightforfooter, 0, $outputlangs, $hidetop, 1, $object->multicurrency_code, $outputlangsbis); } else { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code, $outputlangsbis); + $this->_tableau($pdf, $this->tab_top_newpage, $this->page_hauteur - $this->tab_top_newpage - $this->heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code, $outputlangsbis); } $this->_pagefoot($pdf, $object, $outputlangs, 1); // New page @@ -944,7 +1012,7 @@ class pdf_sponge extends ModelePDFFactures $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } } @@ -952,11 +1020,11 @@ class pdf_sponge extends ModelePDFFactures // Show square if ($pagenb == $pageposbeforeprintlines) { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, $hidetop, 0, $object->multicurrency_code, $outputlangsbis); - $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; + $this->_tableau($pdf, $this->tab_top, $this->page_hauteur - $this->tab_top - $this->heightforinfotot - $this->heightforfreetext - $this->heightforfooter, 0, $outputlangs, $hidetop, 0, $object->multicurrency_code, $outputlangsbis); + $bottomlasttab = $this->page_hauteur - $this->heightforinfotot - $this->heightforfreetext - $this->heightforfooter + 1; } else { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code, $outputlangsbis); - $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; + $this->_tableau($pdf, $this->tab_top_newpage, $this->page_hauteur - $this->tab_top_newpage - $this->heightforinfotot - $this->heightforfreetext - $this->heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code, $outputlangsbis); + $bottomlasttab = $this->page_hauteur - $this->heightforinfotot - $this->heightforfreetext - $this->heightforfooter + 1; } // Display infos area @@ -1094,7 +1162,7 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetXY($tab3_posx, $tab3_top + $y); $pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($obj->datef), 'day', false, $outputlangs, true), 0, 'L', 0); $pdf->SetXY($tab3_posx + 21, $tab3_top + $y); - $pdf->MultiCell(20, 3, price((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $obj->multicurrency_amount_ttc : $obj->amount_ttc, 0, $outputlangs), 0, 'L', 0); + $pdf->MultiCell(20, 3, price((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $obj->multicurrency_amount_ttc : $obj->amount_ttc, 0, $outputlangs), 0, 'L', 0); $pdf->SetXY($tab3_posx + 40, $tab3_top + $y); $pdf->MultiCell(20, 3, $text, 0, 'L', 0); $pdf->SetXY($tab3_posx + 58, $tab3_top + $y); @@ -1130,7 +1198,7 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetXY($tab3_posx, $tab3_top + $y); $pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($row->date), 'day', false, $outputlangs, true), 0, 'L', 0); $pdf->SetXY($tab3_posx + 21, $tab3_top + $y); - $pdf->MultiCell(20, 3, price($sign * ((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount), 0, $outputlangs), 0, 'L', 0); + $pdf->MultiCell(20, 3, price($sign * ((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount), 0, $outputlangs), 0, 'L', 0); $pdf->SetXY($tab3_posx + 40, $tab3_top + $y); $oper = $outputlangs->transnoentitiesnoconv("PaymentTypeShort".$row->code); @@ -1204,64 +1272,102 @@ class pdf_sponge extends ModelePDFFactures $posy = $pdf->GetY() + 3; // We need spaces for 2 lines payment conditions } + // Show category of operations + if (getDolGlobalInt('INVOICE_CATEGORY_OF_OPERATION') == 2 && $this->categoryOfOperation >= 0) { + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $categoryOfOperationTitle = $outputlangs->transnoentities("MentionCategoryOfOperations").' : '; + $pdf->MultiCell($posxval - $this->marge_gauche, 4, $categoryOfOperationTitle, 0, 'L'); + + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $categoryOfOperationLabel = $outputlangs->transnoentities("MentionCategoryOfOperations" . $this->categoryOfOperation); + $pdf->MultiCell($posxend - $posxval, 4, $categoryOfOperationLabel, 0, 'L'); + + $posy = $pdf->GetY() + 3; // for 2 lines + } + if ($object->type != 2) { // Check a payment mode is defined if (empty($object->mode_reglement_code) && empty($conf->global->FACTURE_CHQ_NUMBER) - && empty($conf->global->FACTURE_RIB_NUMBER)) { - $this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"); + && !getDolGlobalInt('FACTURE_RIB_NUMBER')) { + $this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"); } elseif (($object->mode_reglement_code == 'CHQ' && empty($conf->global->FACTURE_CHQ_NUMBER) && empty($object->fk_account) && empty($object->fk_bank)) - || ($object->mode_reglement_code == 'VIR' && empty($conf->global->FACTURE_RIB_NUMBER) && empty($object->fk_account) && empty($object->fk_bank))) { - // Avoid having any valid PDF with setup that is not complete - $outputlangs->load("errors"); + || ($object->mode_reglement_code == 'VIR' && !getDolGlobalInt('FACTURE_RIB_NUMBER') && empty($object->fk_account) && empty($object->fk_bank))) { + // Avoid having any valid PDF with setup that is not complete + $outputlangs->load("errors"); + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->SetTextColor(200, 0, 0); + $pdf->SetFont('', 'B', $default_font_size - 2); + $this->error = $outputlangs->transnoentities("ErrorPaymentModeDefinedToWithoutSetup", $object->mode_reglement_code); + $pdf->MultiCell($posxend - $this->marge_gauche, 3, $this->error, 0, 'L', 0); + $pdf->SetTextColor(0, 0, 0); + + $posy = $pdf->GetY() + 1; + } + + // Show payment mode + if (!empty($object->mode_reglement_code) + && $object->mode_reglement_code != 'CHQ' + && $object->mode_reglement_code != 'VIR') { + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $titre = $outputlangs->transnoentities("PaymentMode").':'; + $pdf->MultiCell($posxend - $this->marge_gauche, 5, $titre, 0, 'L'); + + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $lib_mode_reg = $outputlangs->transnoentities("PaymentType".$object->mode_reglement_code) != ('PaymentType'.$object->mode_reglement_code) ? $outputlangs->transnoentities("PaymentType".$object->mode_reglement_code) : $outputlangs->convToOutputCharset($object->mode_reglement); + + //#21654: add account number used for the debit + if ($object->mode_reglement_code == "PRE") { + require_once DOL_DOCUMENT_ROOT.'/societe/class/companybankaccount.class.php'; + $bac = new CompanyBankAccount($this->db); + $bac->fetch(0, $object->thirdparty->id); + $iban= $bac->iban.(($bac->iban && $bac->bic) ? ' / ' : '').$bac->bic; + $lib_mode_reg .= $outputlangs->trans("PaymentTypePREdetails", dol_trunc($iban, 6, 'right', 'UTF-8', 1)); + } + + $pdf->MultiCell($posxend - $posxval, 5, $lib_mode_reg, 0, 'L'); + + $posy = $pdf->GetY(); + } + + // Show if Option VAT debit option is on also if transmitter is french + // Decret n°2099-1299 2022-10-07 + // French mention : "Option pour le paiement de la taxe d'après les débits" + if ($this->emetteur->country_code == 'FR') { + if (isset($conf->global->TAX_MODE) && $conf->global->TAX_MODE == 1) { $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetTextColor(200, 0, 0); - $pdf->SetFont('', 'B', $default_font_size - 2); - $this->error = $outputlangs->transnoentities("ErrorPaymentModeDefinedToWithoutSetup", $object->mode_reglement_code); - $pdf->MultiCell($posxend - $this->marge_gauche, 3, $this->error, 0, 'L', 0); - $pdf->SetTextColor(0, 0, 0); + $pdf->writeHTMLCell(80, 5, '', '', $outputlangs->transnoentities("MentionVATDebitOptionIsOn"), 0, 1); $posy = $pdf->GetY() + 1; + } } - // Show payment mode - if (!empty($object->mode_reglement_code) - && $object->mode_reglement_code != 'CHQ' - && $object->mode_reglement_code != 'VIR') { - $pdf->SetFont('', 'B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $titre = $outputlangs->transnoentities("PaymentMode").':'; - $pdf->MultiCell($posxend - $this->marge_gauche, 5, $titre, 0, 'L'); - - $pdf->SetFont('', '', $default_font_size - 2); - $pdf->SetXY($posxval, $posy); - $lib_mode_reg = $outputlangs->transnoentities("PaymentType".$object->mode_reglement_code) != ('PaymentType'.$object->mode_reglement_code) ? $outputlangs->transnoentities("PaymentType".$object->mode_reglement_code) : $outputlangs->convToOutputCharset($object->mode_reglement); - $pdf->MultiCell($posxend - $posxval, 5, $lib_mode_reg, 0, 'L'); - - $posy = $pdf->GetY(); - } - - // Show online payment link + // Show online payment link if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CB' || $object->mode_reglement_code == 'VAD') { $useonlinepayment = 0; if (!empty($conf->global->PDF_SHOW_LINK_TO_ONLINE_PAYMENT)) { - if (!empty($conf->paypal->enabled)) { + if (isModEnabled('paypal')) { $useonlinepayment++; } - if (!empty($conf->stripe->enabled)) { + if (isModEnabled('stripe')) { $useonlinepayment++; } - if (!empty($conf->paybox->enabled)) { + if (isModEnabled('paybox')) { $useonlinepayment++; } } + if ($object->statut != Facture::STATUS_DRAFT && $useonlinepayment) { require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; global $langs; - $langs->loadLangs(array('payment', 'paybox')); + $langs->loadLangs(array('payment', 'paybox', 'stripe')); $servicename = $langs->transnoentities('Online'); $paiement_url = getOnlinePaymentUrl('', 'invoice', $object->ref, '', '', ''); $linktopay = $langs->trans("ToOfferALinkForOnlinePayment", $servicename).' '.$outputlangs->transnoentities("ClickHere").''; @@ -1313,7 +1419,7 @@ class pdf_sponge extends ModelePDFFactures // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if ($object->fk_account > 0 || $object->fk_bank > 0 || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if ($object->fk_account > 0 || $object->fk_bank > 0 || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = ($object->fk_account <= 0 ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if ($object->fk_bank > 0) { $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank @@ -1424,10 +1530,15 @@ class pdf_sponge extends ModelePDFFactures $posy = $pdf->GetY(); foreach ($TPreviousIncoice as &$fac) { - if ($posy > $this->page_hauteur - 4) { + if ($posy > $this->page_hauteur - 4 - $this->heightforfooter) { $this->_pagefoot($pdf, $object, $outputlangs, 1); $pdf->addPage(); - $pdf->setY($this->marge_haute); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); + $pdf->setY($this->tab_top_newpage); + } else { + $pdf->setY($this->marge_haute); + } $posy = $pdf->GetY(); } @@ -1487,9 +1598,15 @@ class pdf_sponge extends ModelePDFFactures $posy += $tab2_hl; - if ($posy > $this->page_hauteur - 4) { + if ($posy > $this->page_hauteur - 4 - $this->heightforfooter) { $pdf->addPage(); - $pdf->setY($this->marge_haute); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { + $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); + $pdf->setY($this->tab_top_newpage); + } else { + $pdf->setY($this->marge_haute); + } + $posy = $pdf->GetY(); } @@ -1501,12 +1618,12 @@ class pdf_sponge extends ModelePDFFactures // Get Total HT - $total_ht = (!empty($conf->multicurrency->enabled) && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht); + $total_ht = (isModEnabled("multicurrency") && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht); // Total remise $total_line_remise = 0; foreach ($object->lines as $i => $line) { - $total_line_remise += pdfGetLineTotalDiscountAmount($object, $i, $outputlangs, 2); // TODO: add this method to core/lib/pdf.lib + $total_line_remise += (float) pdfGetLineTotalDiscountAmount($object, $i, $outputlangs, 2); // TODO: add this method to core/lib/pdf.lib // Gestion remise sous forme de ligne négative if ($line->total_ht < 0) { $total_line_remise += -$line->total_ht; @@ -1525,9 +1642,9 @@ class pdf_sponge extends ModelePDFFactures // Show total NET before discount if (!empty($conf->global->MAIN_SHOW_AMOUNT_BEFORE_DISCOUNT)) { $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHTBeforeDiscount").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("TotalHTBeforeDiscount") : ''), 0, 'L', 1); - $pdf->SetXY($col2x, $tab2_top + 0); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_line_remise + $total_ht, 0, $outputlangs), 0, 'R', 1); $index++; @@ -1539,14 +1656,14 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities(empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) ? "TotalHT" : "Total").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities(empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) ? "TotalHT" : "Total") : ''), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { @@ -1557,7 +1674,7 @@ class pdf_sponge extends ModelePDFFactures // FIXME amount of vat not supported with multicurrency //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1589,7 +1706,7 @@ class pdf_sponge extends ModelePDFFactures } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1674,7 +1791,7 @@ class pdf_sponge extends ModelePDFFactures } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1705,7 +1822,7 @@ class pdf_sponge extends ModelePDFFactures } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1791,8 +1908,8 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetTextColor(0, 0, 0); - $creditnoteamount = $object->getSumCreditNotesUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); // Warning, this also include excess received - $depositsamount = $object->getSumDepositsUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); + $creditnoteamount = $object->getSumCreditNotesUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); // Warning, this also include excess received + $depositsamount = $object->getSumDepositsUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); $resteapayer = price2num($total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT'); if (!empty($object->paye)) { @@ -1896,6 +2013,13 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetFont('', '', $default_font_size - 2); if (empty($hidetop)) { + // Show category of operations + if (getDolGlobalInt('INVOICE_CATEGORY_OF_OPERATION') == 1 && $this->categoryOfOperation >= 0) { + $categoryOfOperations = $outputlangs->transnoentities("MentionCategoryOfOperations") . ' : ' . $outputlangs->transnoentities("MentionCategoryOfOperations" . $this->categoryOfOperation); + $pdf->SetXY($this->marge_gauche, $tab_top - 4); + $pdf->MultiCell(($pdf->GetStringWidth($categoryOfOperations)) + 4, 2, $categoryOfOperations); + } + $titre = $outputlangs->transnoentities("AmountInCurrency", $outputlangs->transnoentitiesnoconv("Currency".$currency)); if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && is_object($outputlangsbis)) { $titre .= ' - '.$outputlangsbis->transnoentities("AmountInCurrency", $outputlangsbis->transnoentitiesnoconv("Currency".$currency)); @@ -1960,13 +2084,13 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -2154,6 +2278,7 @@ class pdf_sponge extends ModelePDFFactures $posy += 1; $top_shift = 0; + $shipp_shift = 0; // Show list of linked objects $current_y = $pdf->getY(); $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, $w, 3, 'R', $default_font_size); @@ -2176,7 +2301,6 @@ class pdf_sponge extends ModelePDFFactures $hautcadre = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 38 : 40; $widthrecbox = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 82; - // Show sender frame if (empty($conf->global->MAIN_PDF_NO_SENDER_FRAME)) { $pdf->SetTextColor(0, 0, 0); @@ -2254,10 +2378,49 @@ class pdf_sponge extends ModelePDFFactures $pdf->SetFont('', '', $default_font_size - 1); $pdf->SetXY($posx + 2, $posy); $pdf->MultiCell($widthrecbox - 2, 4, $carac_client, 0, $ltrdirection); + + // Show shipping address + if (getDolGlobalInt('INVOICE_SHOW_SHIPPING_ADDRESS')) { + $idaddressshipping = $object->getIdContact('external', 'SHIPPING'); + + if (!empty($idaddressshipping)) { + $contactshipping = $object->fetch_Contact($idaddressshipping[0]); + $object->fetch_thirdparty($object->contact->fk_soc); + $carac_client_name_shipping=pdfBuildThirdpartyName($object->contact, $outputlangs); + $carac_client_shipping = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, $object->contact, $usecontact, 'target', $object); + } else { + $carac_client_name_shipping=pdfBuildThirdpartyName($object->thirdparty, $outputlangs); + $carac_client_shipping=pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'target', $object); + } + if (!empty($carac_client_shipping) && (isset($object->contact->socid) && $object->contact->socid != $object->socid)) { + $posy += $hautcadre; + + // Show shipping frame + $pdf->SetXY($posx + 2, $posy - 5); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->MultiCell($widthrecbox, '', $langs->trans('ShippingTo'), 0, 'L', 0); + $pdf->Rect($posx, $posy, $widthrecbox, $hautcadre); + + // Show shipping name + $pdf->SetXY($posx + 2, $posy + 3); + $pdf->SetFont('', 'B', $default_font_size); + $pdf->MultiCell($widthrecbox - 2, 2, $carac_client_name_shipping, '', 'L'); + + $posy = $pdf->getY(); + + // Show shipping information + $pdf->SetXY($posx+2, $posy); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->MultiCell($widthrecbox - 2, 2, $carac_client_shipping, '', 'L'); + $shipp_shift += $hautcadre; + } + } } $pdf->SetTextColor(0, 0, 0); - return $top_shift; + + $pagehead = array('top_shift' => $top_shift, 'shipp_shift' => $shipp_shift); + return $pagehead; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore @@ -2272,8 +2435,7 @@ class pdf_sponge extends ModelePDFFactures */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'INVOICE_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } @@ -2433,7 +2595,7 @@ class pdf_sponge extends ModelePDFFactures ), 'border-left' => true, // add left line separator ); - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->cols['unit']['status'] = true; } diff --git a/htdocs/core/modules/facture/mod_facture_mars.php b/htdocs/core/modules/facture/mod_facture_mars.php index 9e0ff0d5b4e..fb4ba06b9ce 100644 --- a/htdocs/core/modules/facture/mod_facture_mars.php +++ b/htdocs/core/modules/facture/mod_facture_mars.php @@ -72,7 +72,7 @@ class mod_facture_mars extends ModeleNumRefFactures /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/facture/mod_facture_mercure.php b/htdocs/core/modules/facture/mod_facture_mercure.php index 7a572615a21..e67cb252a17 100644 --- a/htdocs/core/modules/facture/mod_facture_mercure.php +++ b/htdocs/core/modules/facture/mod_facture_mercure.php @@ -1,9 +1,10 @@ - * Copyright (C) 2004-2011 Laurent Destailleur - * Copyright (C) 2005-2007 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand (Resultic) - * Copyright (C) 2013 Juanjo Menent +/* Copyright (C) 2003-2007 Rodolphe Quiedeville + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2005-2007 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand (Resultic) + * Copyright (C) 2013 uanjo Menent + * Copyright (C) 2022 Anthony Berton * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -48,7 +49,7 @@ class mod_facture_mercure extends ModeleNumRefFactures /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -143,16 +144,28 @@ class mod_facture_mercure extends ModeleNumRefFactures // Get Mask value $mask = ''; if (is_object($invoice) && $invoice->type == 1) { - $mask = $conf->global->FACTURE_MERCURE_MASK_REPLACEMENT; + if (isset($conf->global->FACTURE_MERCURE_MASK_REPLACEMENT)) { + $mask = $conf->global->FACTURE_MERCURE_MASK_REPLACEMENT; + } if (!$mask) { - $mask = $conf->global->FACTURE_MERCURE_MASK_INVOICE; + if (isset($conf->global->FACTURE_MERCURE_MASK_INVOICE)) { + $mask = $conf->global->FACTURE_MERCURE_MASK_INVOICE; + } } } elseif (is_object($invoice) && $invoice->type == 2) { - $mask = $conf->global->FACTURE_MERCURE_MASK_CREDIT; + if (isset($conf->global->FACTURE_MERCURE_MASK_CREDIT)) { + $mask = $conf->global->FACTURE_MERCURE_MASK_CREDIT; + } } elseif (is_object($invoice) && $invoice->type == 3) { - $mask = $conf->global->FACTURE_MERCURE_MASK_DEPOSIT; + if (isset($conf->global->FACTURE_MERCURE_MASK_DEPOSIT)) { + $mask = $conf->global->FACTURE_MERCURE_MASK_DEPOSIT; + } } else { - $mask = $conf->global->FACTURE_MERCURE_MASK_INVOICE; + if (isset($conf->global->FACTURE_MERCURE_MASK_INVOICE)) { + $mask = $conf->global->FACTURE_MERCURE_MASK_INVOICE; + } else { + $mask = ''; + } } if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/facture/mod_facture_terre.php b/htdocs/core/modules/facture/mod_facture_terre.php index 2b11ee3976f..0e6ce61093b 100644 --- a/htdocs/core/modules/facture/mod_facture_terre.php +++ b/htdocs/core/modules/facture/mod_facture_terre.php @@ -88,7 +88,7 @@ class mod_facture_terre extends ModeleNumRefFactures /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/facture/modules_facture.php b/htdocs/core/modules/facture/modules_facture.php index 480c532cc1f..ff541550d4e 100644 --- a/htdocs/core/modules/facture/modules_facture.php +++ b/htdocs/core/modules/facture/modules_facture.php @@ -61,8 +61,6 @@ abstract class ModelePDFFactures extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'invoice'; $list = array(); @@ -94,9 +92,9 @@ abstract class ModeleNumRefFactures } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index 8c07dbb64f3..7616fba5c6b 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -66,9 +66,9 @@ class pdf_soleil extends ModelePDFFicheinter /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -137,10 +137,10 @@ class pdf_soleil extends ModelePDFFicheinter $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 0; // Manage the vat option FACTURE_TVAOPTION @@ -258,7 +258,7 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("InterventionCard")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -275,7 +275,7 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -378,7 +378,7 @@ class pdf_soleil extends ModelePDFFicheinter if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -415,9 +415,12 @@ class pdf_soleil extends ModelePDFFicheinter $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -432,7 +435,7 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -738,8 +741,7 @@ class pdf_soleil extends ModelePDFFicheinter */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'FICHINTER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } } diff --git a/htdocs/core/modules/fichinter/mod_arctic.php b/htdocs/core/modules/fichinter/mod_arctic.php index cb5acddd6e9..d1f313e1bd5 100644 --- a/htdocs/core/modules/fichinter/mod_arctic.php +++ b/htdocs/core/modules/fichinter/mod_arctic.php @@ -59,7 +59,7 @@ class mod_arctic extends ModeleNumRefFicheinter /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -84,7 +84,7 @@ class mod_arctic extends ModeleNumRefFicheinter // Setting the prefix $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -130,7 +130,7 @@ class mod_arctic extends ModeleNumRefFicheinter require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We define the search criteria of the counter - $mask = $conf->global->FICHINTER_ARTIC_MASK; + $mask = getDolGlobalString("FICHINTER_ARTIC_MASK"); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/fichinter/modules_fichinter.php b/htdocs/core/modules/fichinter/modules_fichinter.php index 185ef4cf73b..28b3fd265ce 100644 --- a/htdocs/core/modules/fichinter/modules_fichinter.php +++ b/htdocs/core/modules/fichinter/modules_fichinter.php @@ -51,8 +51,6 @@ abstract class ModelePDFFicheinter extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'ficheinter'; $list = array(); diff --git a/htdocs/core/modules/holiday/modules_holiday.php b/htdocs/core/modules/holiday/modules_holiday.php index 7b6e13ea992..e38801a052e 100644 --- a/htdocs/core/modules/holiday/modules_holiday.php +++ b/htdocs/core/modules/holiday/modules_holiday.php @@ -55,8 +55,6 @@ abstract class ModelePDFHoliday extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'holiday'; $list = array(); diff --git a/htdocs/core/modules/hrm/mod_evaluation_advanced.php b/htdocs/core/modules/hrm/mod_evaluation_advanced.php index 0468c9ebb30..7369032e165 100644 --- a/htdocs/core/modules/hrm/mod_evaluation_advanced.php +++ b/htdocs/core/modules/hrm/mod_evaluation_advanced.php @@ -54,7 +54,7 @@ class mod_evaluation_advanced extends ModeleNumRefEvaluation /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -68,7 +68,7 @@ class mod_evaluation_advanced extends ModeleNumRefEvaluation $texte .= ''; $texte .= ''; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= '
    '; print $langs->trans('DateEndPropal'); print '
    '; print ''; // Shipping Method - if (!empty($conf->expedition->enabled)) { + if (isModEnabled("expedition")) { print ''; - } elseif ($don->modepaymentcode == 'LIQ') { + } elseif ($modepaymentcode == 'LIQ') { $ModePaiement = ''; - } elseif ($don->modepaymentcode == 'VIR' || $don->modepaymentcode == 'PRE' || $don->modepaymentcode == 'CB') { + } elseif ($modepaymentcode == 'VIR' || $modepaymentcode == 'PRE' || $modepaymentcode == 'CB') { $ModePaiement = ''; } else { $ModePaiement = ''; diff --git a/htdocs/core/modules/dons/modules_don.php b/htdocs/core/modules/dons/modules_don.php index cd332c48fcb..ca982c61a53 100644 --- a/htdocs/core/modules/dons/modules_don.php +++ b/htdocs/core/modules/dons/modules_don.php @@ -50,8 +50,6 @@ abstract class ModeleDon extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'donation'; $list = array(); @@ -84,9 +82,9 @@ abstract class ModeleNumRefDons } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php index 209acf648d6..f8280aab301 100644 --- a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php +++ b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php @@ -48,9 +48,9 @@ class doc_generic_shipment_odt extends ModelePdfExpedition /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -175,12 +175,20 @@ class doc_generic_shipment_odt extends ModelePdfExpedition $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -269,10 +277,10 @@ class doc_generic_shipment_odt extends ModelePdfExpedition if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -281,11 +289,11 @@ class doc_generic_shipment_odt extends ModelePdfExpedition if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -293,8 +301,8 @@ class doc_generic_shipment_odt extends ModelePdfExpedition dol_mkdir($conf->expedition->dir_temp); if (!is_writable($conf->expedition->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->expedition->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->expedition->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index 982a63dade8..b2b6424f5ed 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -63,9 +63,9 @@ class pdf_espadon extends ModelePdfExpedition /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -134,10 +134,10 @@ class pdf_espadon extends ModelePdfExpedition $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_draft_watermark = 1; // Support add of a watermark on drafts @@ -210,7 +210,7 @@ class pdf_espadon extends ModelePdfExpedition $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($object->lines[$i]->fk_product, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -221,7 +221,7 @@ class pdf_espadon extends ModelePdfExpedition $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -312,7 +312,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Shipment")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -330,7 +330,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift: 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift: 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -338,7 +338,7 @@ class pdf_espadon extends ModelePdfExpedition // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -428,7 +428,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->AddPage(); $pagenb++; if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); // $this->_pagefoot($pdf,$object,$outputlangs,1); $pdf->setTopMargin($tab_top_newpage); // The only function to edit the bottom margin of current page to set it. @@ -482,7 +482,7 @@ class pdf_espadon extends ModelePdfExpedition // apply note frame to last page $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $height_note = $posyafter - $tab_top_newpage; $pdf->Rect($this->marge_gauche, $tab_top_newpage - 1, $tab_width, $height_note + 1); } else // No pagebreak @@ -500,7 +500,7 @@ class pdf_espadon extends ModelePdfExpedition $pageposafternote++; $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $posyafter = $tab_top_newpage; } @@ -554,7 +554,7 @@ class pdf_espadon extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposbefore + 1); $curY = $tab_top_newpage; @@ -596,7 +596,7 @@ class pdf_espadon extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -705,9 +705,12 @@ class pdf_espadon extends ModelePdfExpedition $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -722,7 +725,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -942,7 +945,7 @@ class pdf_espadon extends ModelePdfExpedition * @param Expedition $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output - * @return void + * @return int <0 if KO, > if OK */ protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { @@ -966,8 +969,16 @@ class pdf_espadon extends ModelePdfExpedition $pdf->SetXY($this->marge_gauche, $posy); // Logo - $logo = $conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo; if ($this->emetteur->logo) { + $logodir = $conf->mycompany->dir_output; + if (!empty($conf->mycompany->multidir_output[$object->entity])) { + $logodir = $conf->mycompany->multidir_output[$object->entity]; + } + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { + $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; + } else { + $logo = $logodir.'/logos/'.$this->emetteur->logo; + } if (is_readable($logo)) { $height = pdf_getHeightForLogo($logo); $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height); // width=0 (auto) @@ -983,20 +994,20 @@ class pdf_espadon extends ModelePdfExpedition } // Show barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $posx = 105; } else { $posx = $this->marge_gauche + 3; } //$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); } $pdf->SetDrawColor(128, 128, 128); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); @@ -1067,6 +1078,14 @@ class pdf_espadon extends ModelePdfExpedition } } + $top_shift = 0; + // Show list of linked objects + /*$current_y = $pdf->getY(); + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, $w, 3, 'R', $default_font_size); + if ($current_y < $pdf->getY()) { + $top_shift = $pdf->getY() - $current_y; + }*/ + if ($showaddress) { // Sender properties $carac_emetteur = ''; @@ -1172,6 +1191,7 @@ class pdf_espadon extends ModelePdfExpedition } $pdf->SetTextColor(0, 0, 0); + return $top_shift; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore @@ -1186,8 +1206,7 @@ class pdf_espadon extends ModelePdfExpedition */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SHIPPING_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index 69105dd31cc..db10c37e7e8 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -64,9 +64,9 @@ class pdf_merou extends ModelePdfExpedition /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -135,10 +135,10 @@ class pdf_merou extends ModelePdfExpedition $this->page_largeur = $formatarray['width']; $this->page_hauteur = round($formatarray['height'] / 2); $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo @@ -266,7 +266,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Shipment")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -281,7 +281,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); $tab_top = 52; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -520,7 +520,7 @@ class pdf_merou extends ModelePdfExpedition * @param Expedition $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output - * @return void + * @return int <0 if KO, > if OK */ protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { @@ -548,8 +548,16 @@ class pdf_merou extends ModelePdfExpedition //*********************LOGO**************************** $pdf->SetXY(11, 7); - $logo = $conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo; if ($this->emetteur->logo) { + $logodir = $conf->mycompany->dir_output; + if (!empty($conf->mycompany->multidir_output[$object->entity])) { + $logodir = $conf->mycompany->multidir_output[$object->entity]; + } + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { + $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; + } else { + $logo = $logodir.'/logos/'.$this->emetteur->logo; + } if (is_readable($logo)) { $height = pdf_getHeightForLogo($logo); $pdf->Image($logo, 10, 5, 0, $height); // width=0 (auto) @@ -692,6 +700,16 @@ class pdf_merou extends ModelePdfExpedition $widthrecbox = $blW; + $top_shift = 0; + // Show list of linked objects + /* + $current_y = $pdf->getY(); + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, $w, 3, 'R', $default_font_size); + if ($current_y < $pdf->getY()) { + $top_shift = $pdf->getY() - $current_y; + } + */ + // Show Recipient frame $pdf->SetFont('', 'B', $default_font_size - 3); $pdf->SetXY($blDestX, $Yoff - 4); @@ -709,5 +727,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->SetFont('', '', $default_font_size - 3); $pdf->SetXY($blDestX, $posy); $pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L'); + + return $top_shift; } } diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index e1da387d1ad..87dd02096e8 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -64,9 +64,9 @@ class pdf_rouget extends ModelePdfExpedition /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -135,10 +135,10 @@ class pdf_rouget extends ModelePdfExpedition $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_draft_watermark = 1; // Support add of a watermark on drafts @@ -235,7 +235,7 @@ class pdf_rouget extends ModelePdfExpedition $objphoto = new Product($this->db); $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($object->lines[$i]->fk_product, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -246,7 +246,7 @@ class pdf_rouget extends ModelePdfExpedition $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; @@ -337,7 +337,7 @@ class pdf_rouget extends ModelePdfExpedition $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Shipment")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -355,13 +355,13 @@ class pdf_rouget extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -465,7 +465,7 @@ class pdf_rouget extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -510,7 +510,7 @@ class pdf_rouget extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -611,9 +611,12 @@ class pdf_rouget extends ModelePdfExpedition $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -628,7 +631,7 @@ class pdf_rouget extends ModelePdfExpedition $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -887,7 +890,7 @@ class pdf_rouget extends ModelePdfExpedition * @param Expedition $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output - * @return void + * @return int <0 if KO, > if OK */ protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { @@ -911,8 +914,16 @@ class pdf_rouget extends ModelePdfExpedition $pdf->SetXY($this->marge_gauche, $posy); // Logo - $logo = $conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo; if ($this->emetteur->logo) { + $logodir = $conf->mycompany->dir_output; + if (!empty($conf->mycompany->multidir_output[$object->entity])) { + $logodir = $conf->mycompany->multidir_output[$object->entity]; + } + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { + $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; + } else { + $logo = $logodir.'/logos/'.$this->emetteur->logo; + } if (is_readable($logo)) { $height = pdf_getHeightForLogo($logo); $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height); // width=0 (auto) @@ -928,20 +939,20 @@ class pdf_rouget extends ModelePdfExpedition } // Show barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $posx = 105; } else { $posx = $this->marge_gauche + 3; } //$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); } $pdf->SetDrawColor(128, 128, 128); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); @@ -1012,6 +1023,16 @@ class pdf_rouget extends ModelePdfExpedition } } + $top_shift = 0; + // Show list of linked objects + /* + $current_y = $pdf->getY(); + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, $w, 3, 'R', $default_font_size); + if ($current_y < $pdf->getY()) { + $top_shift = $pdf->getY() - $current_y; + } + */ + if ($showaddress) { // Sender properties $carac_emetteur = ''; @@ -1117,6 +1138,7 @@ class pdf_rouget extends ModelePdfExpedition } $pdf->SetTextColor(0, 0, 0); + return $top_shift; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore @@ -1131,8 +1153,7 @@ class pdf_rouget extends ModelePdfExpedition */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SHIPPING_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } } diff --git a/htdocs/core/modules/expedition/mod_expedition_ribera.php b/htdocs/core/modules/expedition/mod_expedition_ribera.php index 736ddc3ab3f..aae32f0f459 100644 --- a/htdocs/core/modules/expedition/mod_expedition_ribera.php +++ b/htdocs/core/modules/expedition/mod_expedition_ribera.php @@ -80,7 +80,7 @@ class mod_expedition_ribera extends ModelNumRefExpedition $tooltip .= $langs->trans("GenericMaskCodes5"); $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= '
    '; - if (!empty($conf->commande->enabled)) { + if (isModEnabled('commande')) { print $form->textwithpicto($langs->trans('AvailabilityPeriod'), $langs->trans('AvailabilityPeriod').' ('.$langs->trans('AfterOrder').')'); } else { print $langs->trans('AvailabilityPeriod'); @@ -2406,7 +2516,7 @@ if ($action == 'create') { print '
    '; print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print ''; } - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && !empty($conf->banque->enabled)) { + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && isModEnabled("banque")) { // Bank Account print ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -128,7 +128,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->COMMANDE_SAPHIR_MASK; + $mask = getDolGlobalString("COMMANDE_SAPHIR_MASK"); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/commande/modules_commande.php b/htdocs/core/modules/commande/modules_commande.php index 4f3378a0683..d6ecda2b2e7 100644 --- a/htdocs/core/modules/commande/modules_commande.php +++ b/htdocs/core/modules/commande/modules_commande.php @@ -51,8 +51,6 @@ abstract class ModelePDFCommandes extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'order'; $list = array(); @@ -86,9 +84,9 @@ abstract class ModeleNumRefCommandes } /** - * Renvoie la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php index 23ed4bec34a..83e8f2551f7 100644 --- a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php +++ b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php @@ -46,13 +46,12 @@ class doc_generic_contract_odt extends ModelePDFContract /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** - * Dolibarr version of the loaded document - * @var string + * @var string Dolibarr version of the loaded document */ public $version = 'dolibarr'; @@ -94,7 +93,7 @@ class doc_generic_contract_odt extends ModelePDFContract $this->option_freetext = 1; // Support add of a personalised text $this->option_draft_watermark = 0; // Support add of a watermark on drafts - // Recupere emetteur + // Get source company $this->emetteur = $mysoc; if (!$this->emetteur->country_code) { $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default if not defined @@ -123,7 +122,7 @@ class doc_generic_contract_odt extends ModelePDFContract $texte .= ''; $texte .= ''; $texte .= ''; - $texte .= '
    '; print $langs->trans('SendingMethod'); @@ -2426,7 +2536,7 @@ if ($action == 'create') { } // Warehouse - if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL)) { + if (isModEnabled('stock') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL)) { $langs->load('stocks'); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2462,7 +2572,7 @@ if ($action == 'create') { print '
    '; @@ -2524,7 +2634,7 @@ if ($action == 'create') { print '
    '; print ''; // Type - print ''; + print ''; // Expected to pay print ''; // Ref payment @@ -220,7 +221,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { } print $obj->num_payment.''; // Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; $total = $total + $obj->total; - $totalnb = $totalnb + $obj->nb; $totalpaid = $totalpaid + $obj->totalpaid; $i++; } @@ -255,7 +255,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print ''; print ''; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } print '"; @@ -267,14 +267,14 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { } // VAT -if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { +if (isModEnabled('tax') && $user->rights->tax->charges->lire) { print "
    "; $tva = new Tva($db); print load_fiche_titre($langs->trans("VATDeclarations").($year ? ' ('.$langs->trans("Year").' '.$year.')' : ''), '', ''); - $sql = "SELECT ptva.rowid, pv.rowid as id_tva, pv.amount as amount_tva, ptva.amount, pv.label, pv.datev as dm, ptva.datep as date_payment, ptva.fk_bank,"; + $sql = "SELECT ptva.rowid, pv.rowid as id_tva, pv.amount as amount_tva, ptva.amount, pv.label, pv.datev as dm, ptva.datep as date_payment, ptva.fk_bank, ptva.num_paiement as num_payment,"; $sql .= " pct.code as payment_code,"; $sql .= " ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel"; $sql .= " FROM ".MAIN_DB_PREFIX."tva as pv"; @@ -305,7 +305,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print_liste_field_titre("RefPayment", $_SERVER["PHP_SELF"], "ptva.rowid", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("DatePayment", $_SERVER["PHP_SELF"], "ptva.datep", "", $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("Type", $_SERVER["PHP_SELF"], "pct.code", "", $param, '', $sortfield, $sortorder); - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "ba.label", "", $param, "", $sortfield, $sortorder); } print_liste_field_titre("PayedByThisPayment", $_SERVER["PHP_SELF"], "ptva.amount", "", $param, 'class="right"', $sortfield, $sortorder); @@ -342,7 +342,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print $obj->num_payment.''; // Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load('projects'); print ''; print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { // Multicurrency code print ''; print ''; print ''; print ''; @@ -3621,7 +3708,7 @@ if ($action == 'create') { $retained_warranty_fk_cond_reglement = $conf->global->INVOICE_SITUATION_DEFAULT_RETAINED_WARRANTY_COND_ID; } } - $form->select_conditions_paiements($retained_warranty_fk_cond_reglement, 'retained_warranty_fk_cond_reglement', -1, 1); + print $form->getSelectConditionsPaiements($retained_warranty_fk_cond_reglement, 'retained_warranty_fk_cond_reglement', -1, 1); print ''; print ''; } @@ -825,13 +825,14 @@ class FormCompany extends Form /** * showContactRoles on view and edit mode * - * @param string $htmlname Html component name and id - * @param Contact $contact Contact Obejct - * @param string $rendermode view, edit - * @param array $selected $key=>$val $val is selected Roles for input mode - * @return string String with contacts roles + * @param string $htmlname Html component name and id + * @param Contact $contact Contact Obejct + * @param string $rendermode view, edit + * @param array $selected $key=>$val $val is selected Roles for input mode + * @param string $morecss More css + * @return string String with contacts roles */ - public function showRoles($htmlname, Contact $contact, $rendermode = 'view', $selected = array()) + public function showRoles($htmlname, Contact $contact, $rendermode = 'view', $selected = array(), $morecss = 'minwidth500') { if ($rendermode === 'view') { $toprint = array(); @@ -856,7 +857,7 @@ class FormCompany extends Form $selected = $newselected; } } - return $this->multiselectarray($htmlname, $contactType, $selected, 0, 0, 'minwidth500'); + return $this->multiselectarray($htmlname, $contactType, $selected, 0, 0, $morecss); } return 'ErrorBadValueForParameterRenderMode'; // Should not happened @@ -1025,7 +1026,7 @@ class FormCompany extends Form public function selectProspectCustomerType($selected, $htmlname = 'client', $htmlidname = 'customerprospect', $typeinput = 'form', $morecss = '', $allowempty = '') { global $conf, $langs; - if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && !empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->fournisseur->enabled)) { + if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && !empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && !isModEnabled('fournisseur')) { return '' ; } @@ -1058,7 +1059,7 @@ class FormCompany extends Form if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) { $out .= ''; } - if (!empty($conf->fournisseur->enabled)) { + if (isModEnabled("fournisseur")) { $out .= ''; } $out .= ''; diff --git a/htdocs/core/class/html.formcontract.class.php b/htdocs/core/class/html.formcontract.class.php index f3798181bcd..c763bc1a04e 100644 --- a/htdocs/core/class/html.formcontract.class.php +++ b/htdocs/core/class/html.formcontract.class.php @@ -104,7 +104,7 @@ class FormContract while ($i < $num) { $obj = $this->db->fetch_object($resql); // If we ask to filter on a company and user has no permission to see all companies and project is linked to another company, we hide project. - if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && empty($user->rights->societe->lire)) { + if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && !$user->hasRight('societe', 'lire')) { // Do nothing } else { $labeltoshow = dol_trunc($obj->ref, 18); @@ -188,7 +188,7 @@ class FormContract print ''; print ''; $this->select_contract($socid, $selected, $htmlname, $maxlength, $showempty, $showRef); - print ''; + print ''; print ''; } } diff --git a/htdocs/core/class/html.formcron.class.php b/htdocs/core/class/html.formcron.class.php index b6a9140cf58..609458ce839 100644 --- a/htdocs/core/class/html.formcron.class.php +++ b/htdocs/core/class/html.formcron.class.php @@ -96,6 +96,9 @@ class FormCron extends Form $out .= ''; } + if (empty($readonly)) { + $out .= ajax_combobox($htmlname); + } return $out; } diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 97f5eca5822..7f5c2887e8b 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -71,7 +71,7 @@ class FormFile * @param Object $object Object to use (when attachment is done on an element) * @param string $options Add an option column * @param integer $useajax Use fileupload ajax (0=never, 1=if enabled, 2=always whatever is option). - * Deprecated 2 should never be used and if 1 is used, option should no be enabled. + * Deprecated 2 should never be used and if 1 is used, option should not be enabled. * @param string $savingdocmask Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__' * @param integer $linkfiles 1=Also add form to link files, 0=Do not show form to link files * @param string $htmlname Name and id of HTML form ('formuserfile' by default, 'formuserfileecm' when used to upload a file in ECM) @@ -104,7 +104,8 @@ class FormFile // TODO: This does not support option savingdocmask // TODO: This break feature to upload links too // TODO: Thisdoes not work when param nooutput=1 - return $this->_formAjaxFileUpload($object); + //return $this->_formAjaxFileUpload($object); + return 'Feature too bugged so removed'; } else { //If there is no permission and the option to hide unauthorized actions is enabled, then nothing is printed if (!$perm && !empty($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)) { @@ -148,64 +149,15 @@ class FormFile $out .= ''; // Show file size @@ -927,7 +888,7 @@ class FormFile $fulllink = $urlwithroot.'/document.php'.($paramlink ? '?'.$paramlink : ''); - $out .= img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; + $out .= ''.img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; $out .= ''; $out .= ajax_autoselect('downloadlink'.$file['rowid']); } else { @@ -1041,7 +1002,7 @@ class FormFile $entity = 1; // Without multicompany // Get object entity - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $regs = array(); preg_match('/\/([0-9]+)\/[^\/]+\/'.preg_quote($modulesubdir, '/').'$/', $filedir, $regs); $entity = ((!empty($regs[1]) && $regs[1] > 1) ? $regs[1] : 1); // If entity id not found in $filedir this is entity 1 by default @@ -1177,7 +1138,7 @@ class FormFile if ($disablecrop == -1) { $disablecrop = 1; - // Values here must be supported by the photo_resize.php page. + // Values here must be supported by the photos_resize.php page. if (in_array($modulepart, array('bank', 'bom', 'expensereport', 'facture', 'facture_fournisseur', 'holiday', 'medias', 'member', 'mrp', 'project', 'product', 'produit', 'propal', 'service', 'societe', 'tax', 'tax-vat', 'ticket', 'user'))) { $disablecrop = 0; } @@ -1194,7 +1155,7 @@ class FormFile } } // For backward compatiblity, we detect file stored into an old path - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO) && $filearray[0]['level1name'] == 'photos') { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO') && $filearray[0]['level1name'] == 'photos') { $relativepath = preg_replace('/^.*\/produit\//', '', $filearray[0]['path']).'/'; } @@ -1340,6 +1301,7 @@ class FormFile $nboflines++; print ''."\n"; // Do we have entry into database ? + print ''."\n"; print ''; @@ -1380,7 +1342,7 @@ class FormFile } // Preview link if (!$editline) { - print $this->showPreview($file, $modulepart, $filepath, 0, 'entity='.(!empty($object->entity) ? $object->entity : $conf->entity)); + print $this->showPreview($file, $modulepart, $filepath, 0, '&entity='.(!empty($object->entity) ? $object->entity : $conf->entity)); } print "\n"; @@ -1454,7 +1416,7 @@ class FormFile $fulllink = $urlwithroot.'/document.php'.($paramlink ? '?'.$paramlink : ''); - print img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; + print ''.img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; print ''; } else { //print ''.$langs->trans("FileNotShared").''; @@ -1485,11 +1447,16 @@ class FormFile if ($permtoeditline) { // Link to resize $moreparaminurl = ''; - if ($object->id > 0) { - $moreparaminurl = '&id='.$object->id; + if (!empty($object->id) && $object->id > 0) { + $moreparaminurl .= '&id='.$object->id; } elseif (GETPOST('website', 'alpha')) { - $moreparaminurl = '&website='.GETPOST('website', 'alpha'); + $moreparaminurl .= '&website='.GETPOST('website', 'alpha'); } + // Set the backtourl + if ($modulepart == 'medias' && !GETPOST('website')) { + $moreparaminurl .= '&backtourl='.urlencode(DOL_URL_ROOT.'/ecm/index_medias.php?file_manager=1&modulepart='.$modulepart.'§ion_dir='.$relativepath); + } + //var_dump($moreparaminurl); print ''.img_picto($langs->trans("ResizeOrCrop"), 'resize', 'class="paddingrightonly"').''; } } @@ -1499,6 +1466,7 @@ class FormFile print ''.img_edit('default', 0, 'class="paddingrightonly"').''; } } + // Output link to delete file if ($permonobject) { $useajax = 1; if (!empty($conf->dol_use_jmobile)) { @@ -1518,10 +1486,10 @@ class FormFile if ($nboffiles > 1 && $conf->browser->layout != 'phone') { print ''; } else { @@ -1532,8 +1500,8 @@ class FormFile } else { print ''; if (empty($disablemove) && count($filearray) > 1) { print ''; @@ -1829,6 +1797,8 @@ class FormFile $result = 0; if (is_object($object_instance)) { + $object_instance->id = 0; + $object_instance->ref = ''; if ($id) { $result = $object_instance->fetch($id); } else { @@ -1854,7 +1824,7 @@ class FormFile } } - if (!$found > 0 || !is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) { + if ($found <= 0 || !is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) { continue; // We do not show orphelins files } @@ -1937,7 +1907,7 @@ class FormFile print img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; print ''; } - //if (! empty($useinecm) && $useinecm != 6) print ''; //print img_view().'   '; @@ -1967,37 +1937,6 @@ class FormFile // Fin de zone } - /** - * Show form to upload a new file with jquery fileupload. - * This form use the fileupload.php file. - * - * @param Object $object Object to use - * @return void - */ - private function _formAjaxFileUpload($object) - { - global $langs, $conf; - - // PHP post_max_size - $post_max_size = ini_get('post_max_size'); - $mul_post_max_size = substr($post_max_size, -1); - $mul_post_max_size = ($mul_post_max_size == 'M' ? 1048576 : ($mul_post_max_size == 'K' ? 1024 : ($mul_post_max_size == 'G' ? 1073741824 : 1))); - $post_max_size = $mul_post_max_size * (int) $post_max_size; - // PHP upload_max_filesize - $upload_max_filesize = ini_get('upload_max_filesize'); - $mul_upload_max_filesize = substr($upload_max_filesize, -1); - $mul_upload_max_filesize = ($mul_upload_max_filesize == 'M' ? 1048576 : ($mul_upload_max_filesize == 'K' ? 1024 : ($mul_upload_max_filesize == 'G' ? 1073741824 : 1))); - $upload_max_filesize = $mul_upload_max_filesize * (int) $upload_max_filesize; - // Max file size - $max_file_size = (($post_max_size < $upload_max_filesize) ? $post_max_size : $upload_max_filesize); - - // Include main - include DOL_DOCUMENT_ROOT.'/core/tpl/ajax/fileupload_main.tpl.php'; - - // Include template - include DOL_DOCUMENT_ROOT.'/core/tpl/ajax/fileupload_view.tpl.php'; - } - /** * Show array with linked files * diff --git a/htdocs/core/class/html.formintervention.class.php b/htdocs/core/class/html.formintervention.class.php index 107e9ba378a..751e77eafe1 100644 --- a/htdocs/core/class/html.formintervention.class.php +++ b/htdocs/core/class/html.formintervention.class.php @@ -99,7 +99,7 @@ class FormIntervention while ($i < $num) { $obj = $this->db->fetch_object($resql); // If we ask to filter on a company and user has no permission to see all companies and project is linked to another company, we hide project. - if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && empty($user->rights->societe->lire)) { + if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && !$user->hasRight('societe', 'lire')) { // Do nothing } else { $labeltoshow = dol_trunc($obj->ref, 18); diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index 27ef700cd09..c81ccb769ab 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -4,7 +4,7 @@ * Copyright (C) 2010-2011 Juanjo Menent * Copyright (C) 2015-2017 Marcos García * Copyright (C) 2015-2017 Nicolas ZABOURI - * Copyright (C) 2018-2021 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * Copyright (C) 2022 Charlene Benke * * This program is free software; you can redistribute it and/or modify @@ -85,7 +85,7 @@ class FormMail extends Form public $toid; /** - * @var string replyto name + * @var string Reply-to name */ public $replytoname; @@ -95,20 +95,25 @@ class FormMail extends Form public $replytomail; /** - * @var string to name + * @var string To name */ public $toname; /** - * @var string to email + * @var string To email */ public $tomail; /** - * @var string trackid + * @var string Track id */ public $trackid; + /** + * @var string If you know a MSGID of an email and want to send the email in reply to it. Will be added into header as In-Reply-To: <...> + */ + public $inreplyto; + public $withsubstit; // Show substitution array public $withfrom; @@ -396,7 +401,7 @@ class FormMail extends Form // Define output language $outputlangs = $langs; $newlang = ''; - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($this->param['langsmodels'])) { $newlang = $this->param['langsmodels']; } if (!empty($newlang)) { @@ -423,7 +428,7 @@ class FormMail extends Form $keytoavoidconflict = empty($this->trackid) ? '' : '-'.$this->trackid; // this->trackid must be defined if (GETPOST('mode', 'alpha') == 'init' || (GETPOST('modelselected') && GETPOST('modelmailselected', 'alpha') && GETPOST('modelmailselected', 'alpha') != '-1')) { - if (!empty($arraydefaultmessage->joinfiles) && is_array($this->param['fileinit'])) { + if (!empty($arraydefaultmessage->joinfiles) && !empty($this->param['fileinit']) && is_array($this->param['fileinit'])) { foreach ($this->param['fileinit'] as $file) { $this->add_attached_files($file, basename($file), dol_mimetype($file)); } @@ -449,6 +454,7 @@ class FormMail extends Form $out .= ''; $out .= ''; $out .= ''; + $out .= ''; } if (!empty($this->withfrom)) { if (!empty($this->withfromreadonly)) { @@ -458,7 +464,7 @@ class FormMail extends Form } foreach ($this->param as $key => $value) { if (is_array($value)) { - $out .= "\n"; + $out .= "\n"; } else { $out .= ''."\n"; } @@ -505,7 +511,7 @@ class FormMail extends Form } $out .= '   '; - $out .= ''; + $out .= ''; $out .= '   '; $out .= ''; } elseif (!empty($this->param['models']) && in_array($this->param['models'], array( @@ -515,7 +521,8 @@ class FormMail extends Form ))) { // If list of template is empty $out .= '
    '."\n"; - $out .= $langs->trans('SelectMailModel').': '; // Do not put 'disabled' on 'option' tag, it is already on 'select' and it makes chrome crazy. + $out .= ''.$langs->trans('SelectMailModel').': '; + $out .= ''; // Do not put 'disabled' on 'option' tag, it is already on 'select' and it makes chrome crazy. if ($user->admin) { $out .= info_admin($langs->trans("YouCanChangeValuesForThisListFrom", $langs->transnoentitiesnoconv('Setup').' - '.$langs->transnoentitiesnoconv('EMails')), 1); } @@ -598,7 +605,7 @@ class FormMail extends Form // Also add robot email if (!empty($this->fromalsorobot)) { - if (!empty($conf->global->MAIN_MAIL_EMAIL_FROM) && $conf->global->MAIN_MAIL_EMAIL_FROM != $conf->global->MAIN_INFO_SOCIETE_MAIL) { + if (!empty($conf->global->MAIN_MAIL_EMAIL_FROM) && getDolGlobalString('MAIN_MAIL_EMAIL_FROM') != getDolGlobalString('MAIN_INFO_SOCIETE_MAIL')) { $liste['robot'] = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($this->frommail) { $liste['robot'] .= ' <'.$conf->global->MAIN_MAIL_EMAIL_FROM.'>'; @@ -642,19 +649,9 @@ class FormMail extends Form } } - // Set the default "From" - $defaultfrom = ''; - $reshook = $hookmanager->executeHooks('getDefaultFromEmail', $parameters, $this); - if (empty($reshook)) { - $defaultfrom = $this->fromtype; - } - if (!empty($hookmanager->resArray['defaultfrom'])) { - $defaultfrom = $hookmanager->resArray['defaultfrom']; - } - // Using combo here make the '' no more visible on list. //$out.= ' '.$form->selectarray('fromtype', $liste, $this->fromtype, 0, 0, 0, '', 0, 0, 0, '', 'fromforsendingprofile maxwidth200onsmartphone', 1, '', $disablebademails); - $out .= ' '.$form->selectarray('fromtype', $liste, $defaultfrom, 0, 0, 0, '', 0, 0, 0, '', 'fromforsendingprofile maxwidth200onsmartphone', 0, '', $disablebademails); + $out .= ' '.$form->selectarray('fromtype', $liste, $this->fromtype, 0, 0, 0, '', 0, 0, 0, '', 'fromforsendingprofile maxwidth200onsmartphone', 0, '', $disablebademails); } $out .= "
    \n"; @@ -754,7 +751,7 @@ class FormMail extends Form } // Ask delivery receipt - if (!empty($this->withdeliveryreceipt)) { + if (!empty($this->withdeliveryreceipt) && getDolGlobalInt('MAIN_EMAIL_SUPPORT_ACK')) { $out .= $this->getHtmlForDeliveryReceipt(); } @@ -826,17 +823,22 @@ class FormMail extends Form $out .= '
    '; } } elseif (empty($this->withmaindocfile)) { - $out .= ''.$langs->trans("NoAttachedFiles").'
    '; + //$out .= ''.$langs->trans("NoAttachedFiles").'
    '; } if ($this->withfile == 2) { + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $out .= ''; // MAX_FILE_SIZE must precede the field type=file + } // Can add other files - if (!empty($conf->global->FROM_MAIL_USE_INPUT_FILE_MULTIPLE)) { + if (empty($conf->global->FROM_MAIL_DONT_USE_INPUT_FILE_MULTIPLE)) { $out .= ''; } else { $out .= ''; } $out .= ' '; - $out .= ''; + $out .= ''; } } else { $out .= $this->withfile; @@ -909,6 +911,9 @@ class FormMail extends Form if (strpos($defaultmessage, '__USER_SIGNATURE__') !== false && dol_textishtml($this->substit['__USER_SIGNATURE__'])) { $atleastonecomponentishtml++; } + if (strpos($defaultmessage, '__SENDEREMAIL_SIGNATURE__') !== false && dol_textishtml($this->substit['__SENDEREMAIL_SIGNATURE__'])) { + $atleastonecomponentishtml++; + } if (strpos($defaultmessage, '__ONLINE_PAYMENT_TEXT_AND_URL__') !== false && dol_textishtml($this->substit['__ONLINE_PAYMENT_TEXT_AND_URL__'])) { $atleastonecomponentishtml++; } @@ -922,6 +927,9 @@ class FormMail extends Form if (!dol_textishtml($this->substit['__USER_SIGNATURE__'])) { $this->substit['__USER_SIGNATURE__'] = dol_nl2br($this->substit['__USER_SIGNATURE__']); } + if (!dol_textishtml($this->substit['__SENDEREMAIL_SIGNATURE__'])) { + $this->substit['__SENDEREMAIL_SIGNATURE__'] = dol_nl2br($this->substit['__SENDEREMAIL_SIGNATURE__']); + } if (!dol_textishtml($this->substit['__ONLINE_PAYMENT_TEXT_AND_URL__'])) { $this->substit['__ONLINE_PAYMENT_TEXT_AND_URL__'] = dol_nl2br($this->substit['__ONLINE_PAYMENT_TEXT_AND_URL__']); } @@ -940,16 +948,19 @@ class FormMail extends Form } $out .= ''; - $out .= ''; - $out .= ''; + + $out .= ''; + $out .= '\n"; } else { $out = '\n"; } return $out; @@ -1192,8 +1206,8 @@ class FormMail extends Form */ public function getHtmlForDeliveryreceipt() { - global $conf, $langs, $form; - $out = '\n"; return $out; @@ -1264,12 +1279,12 @@ class FormMail extends Form * * @param DoliDB $dbs Database handler * @param string $type_template Get message for model/type=$type_template, type='all' also included. - * @param User $user Get template public or limited to this user + * @param User $user Get templates public + limited to this user * @param Translate $outputlangs Output lang object * @param int $id Id of template to get, or -1 for first found with position 0, or 0 for first found whatever is position (priority order depends on lang provided or not) or -2 for exact match with label (no answer if not found) * @param int $active 1=Only active template, 0=Only disabled, -1=All * @param string $label Label of template to get - * @return ModelMail|integer One instance of ModelMail or -1 if error + * @return ModelMail|integer One instance of ModelMail or < 0 if error */ public function getEMailTemplate($dbs, $type_template, $user, $outputlangs, $id = 0, $active = 1, $label = '') { @@ -1290,9 +1305,9 @@ class FormMail extends Form $languagetosearchmain = ''; } - $sql = "SELECT rowid, module, label, type_template, topic, joinfiles, content, content_lines, lang"; + $sql = "SELECT rowid, module, label, type_template, topic, joinfiles, content, content_lines, lang, email_from, email_to, email_tocc, email_tobcc"; $sql .= " FROM ".$dbs->prefix().'c_email_templates'; - $sql .= " WHERE (type_template='".$dbs->escape($type_template)."' OR type_template='all')"; + $sql .= " WHERE (type_template = '".$dbs->escape($type_template)."' OR type_template = 'all')"; $sql .= " AND entity IN (".getEntity('c_email_templates').")"; $sql .= " AND (private = 0 OR fk_user = ".((int) $user->id).")"; // Get all public or private owned if ($active >= 0) { @@ -1380,8 +1395,6 @@ class FormMail extends Form $defaultmessage = $outputlangs->transnoentities("PredefinedMailContentSendFichInter"); } elseif ($type_template == 'actioncomm_send') { $defaultmessage = $outputlangs->transnoentities("PredefinedMailContentSendActionComm"); - } elseif ($type_template == 'thirdparty') { - $defaultmessage = $outputlangs->transnoentities("PredefinedMailContentThirdparty"); } elseif (!empty($type_template)) { $defaultmessage = $outputlangs->transnoentities("PredefinedMailContentGeneric"); } @@ -1499,7 +1512,7 @@ class FormMail extends Form /** - * Set substit array from object. This is call when suggesting the email template into forms before sending email. + * Set ->substit (and ->substit_line) array from object. This is call when suggesting the email template into forms before sending email. * * @param CommonObject $object Object to use * @param Translate $outputlangs Object lang @@ -1546,7 +1559,7 @@ class FormMail extends Form if (!empty($extrafields->attributes[$product->table_element]['label']) && is_array($extrafields->attributes[$product->table_element]['label']) && count($extrafields->attributes[$product->table_element]['label']) > 0) { foreach ($extrafields->attributes[$product->table_element]['label'] as $key => $label) { - $substit_line['__PRODUCT_EXTRAFIELD_'.strtoupper($key).'__'] = $product->array_options['options_'.$key]; + $substit_line['__PRODUCT_EXTRAFIELD_'.strtoupper($key).'__'] = isset($product->array_options['options_'.$key]) ? $product->array_options['options_'.$key] : ''; } } } @@ -1598,54 +1611,55 @@ class FormMail extends Form $tmparray['__OTHER3__'] = 'Other3'; $tmparray['__OTHER4__'] = 'Other4'; $tmparray['__OTHER5__'] = 'Other5'; - $tmparray['__USER_SIGNATURE__'] = 'TagSignature'; + $tmparray['__USER_SIGNATURE__'] = 'TagUserSignature'; + $tmparray['__SENDEREMAIL_SIGNATURE__'] = 'TagEmailSenderSignature'; $tmparray['__CHECK_READ__'] = 'TagCheckMail'; $tmparray['__UNSUBSCRIBE__'] = 'TagUnsubscribe'; //,'__PERSONALIZED__' => 'Personalized' // Hidden because not used yet in mass emailing $onlinepaymentenabled = 0; - if (!empty($conf->paypal->enabled)) { + if (isModEnabled('paypal')) { $onlinepaymentenabled++; } - if (!empty($conf->paybox->enabled)) { + if (isModEnabled('paybox')) { $onlinepaymentenabled++; } - if (!empty($conf->stripe->enabled)) { + if (isModEnabled('stripe')) { $onlinepaymentenabled++; } if ($onlinepaymentenabled && !empty($conf->global->PAYMENT_SECURITY_TOKEN)) { $tmparray['__SECUREKEYPAYMENT__'] = $conf->global->PAYMENT_SECURITY_TOKEN; if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $tmparray['__SECUREKEYPAYMENT_MEMBER__'] = 'SecureKeyPAYMENTUniquePerMember'; } - if (!empty($conf->don->enabled)) { + if (isModEnabled('don')) { $tmparray['__SECUREKEYPAYMENT_DONATION__'] = 'SecureKeyPAYMENTUniquePerDonation'; } if (isModEnabled('facture')) { $tmparray['__SECUREKEYPAYMENT_INVOICE__'] = 'SecureKeyPAYMENTUniquePerInvoice'; } - if (!empty($conf->commande->enabled)) { + if (isModEnabled('commande')) { $tmparray['__SECUREKEYPAYMENT_ORDER__'] = 'SecureKeyPAYMENTUniquePerOrder'; } - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { $tmparray['__SECUREKEYPAYMENT_CONTRACTLINE__'] = 'SecureKeyPAYMENTUniquePerContractLine'; } //Online payement link - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $tmparray['__ONLINEPAYMENTLINK_MEMBER__'] = 'OnlinePaymentLinkUniquePerMember'; } - if (!empty($conf->don->enabled)) { + if (isModEnabled('don')) { $tmparray['__ONLINEPAYMENTLINK_DONATION__'] = 'OnlinePaymentLinkUniquePerDonation'; } if (isModEnabled('facture')) { $tmparray['__ONLINEPAYMENTLINK_INVOICE__'] = 'OnlinePaymentLinkUniquePerInvoice'; } - if (!empty($conf->commande->enabled)) { + if (isModEnabled('commande')) { $tmparray['__ONLINEPAYMENTLINK_ORDER__'] = 'OnlinePaymentLinkUniquePerOrder'; } - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { $tmparray['__ONLINEPAYMENTLINK_CONTRACTLINE__'] = 'OnlinePaymentLinkUniquePerContractLine'; } } @@ -1714,6 +1728,11 @@ class ModelMail public $lang; public $joinfiles; + public $email_from; + public $email_to; + public $email_tocc; + public $email_tobcc; + /** * @var string Module the template is dedicated for */ diff --git a/htdocs/core/class/html.formmailing.class.php b/htdocs/core/class/html.formmailing.class.php index 9c74cb1203a..7ae13608e6a 100644 --- a/htdocs/core/class/html.formmailing.class.php +++ b/htdocs/core/class/html.formmailing.class.php @@ -32,18 +32,19 @@ class FormMailing extends Form */ public $errors = array(); + /** * Output a select with destinaries status * - * @param string $selectedid The selected id - * @param string $htmlname Name of controm - * @param integer $show_empty Show empty option - * @return string HTML select + * @param string $selectedid The selected id + * @param string $htmlname Name of controm + * @param integer $show_empty Show empty option + * @return string HTML select */ public function selectDestinariesStatus($selectedid = '', $htmlname = 'dest_status', $show_empty = 0) { - global $langs; + $langs->load("mails"); require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; @@ -51,12 +52,9 @@ class FormMailing extends Form $options = array(); - if ($show_empty) { - $options[-2] = ''; // Note -1 is used for error - } - $options = $options + $mailing->statut_dest; - return Form::selectarray($htmlname, $options, $selectedid, 0, 0, 0, '', 1); + // Note -1 is used for error, so we use -2 for tempty value + return Form::selectarray($htmlname, $options, $selectedid, ($show_empty ? -2 : 0), 0, 0, '', 1); } } diff --git a/htdocs/core/class/html.formmargin.class.php b/htdocs/core/class/html.formmargin.class.php index f39680d1fe3..bf5233c0c6e 100644 --- a/htdocs/core/class/html.formmargin.class.php +++ b/htdocs/core/class/html.formmargin.class.php @@ -100,7 +100,7 @@ class FormMargin $pv = $line->total_ht; $pa_ht = ($pv < 0 ? -$line->pa_ht : $line->pa_ht); // We choosed to have line->pa_ht always positive in database, so we guess the correct sign if (($object->element == 'facture' && $object->type == $object::TYPE_SITUATION) - || ($object->element == 'facture' && $object->type == $object::TYPE_CREDIT_NOTE && $conf->global->INVOICE_USE_SITUATION_CREDIT_NOTE && $object->situation_counter > 0)) { + || ($object->element == 'facture' && $object->type == $object::TYPE_CREDIT_NOTE && getDolGlobalInt('INVOICE_USE_SITUATION_CREDIT_NOTE') && $object->situation_counter > 0)) { $pa = $line->qty * $pa_ht * ($line->situation_percent / 100); } else { $pa = $line->qty * $pa_ht; @@ -108,7 +108,7 @@ class FormMargin // calcul des marges if (isset($line->fk_remise_except) && isset($conf->global->MARGIN_METHODE_FOR_DISCOUNT)) { // remise - if ($conf->global->MARGIN_METHODE_FOR_DISCOUNT == '1') { // remise globale considérée comme produit + if (getDolGlobalString('MARGIN_METHODE_FOR_DISCOUNT') == '1') { // remise globale considérée comme produit $marginInfos['pa_products'] += $pa; $marginInfos['pv_products'] += $pv; $marginInfos['pa_total'] += $pa; @@ -120,7 +120,7 @@ class FormMargin //} //else $marginInfos['margin_on_products'] += $pv - $pa; - } elseif ($conf->global->MARGIN_METHODE_FOR_DISCOUNT == '2') { // remise globale considérée comme service + } elseif (getDolGlobalString('MARGIN_METHODE_FOR_DISCOUNT') == '2') { // remise globale considérée comme service $marginInfos['pa_services'] += $pa; $marginInfos['pv_services'] += $pv; $marginInfos['pa_total'] += $pa; @@ -130,7 +130,7 @@ class FormMargin // $marginInfos['margin_on_services'] += -1 * (abs($pv) - $pa); //else $marginInfos['margin_on_services'] += $pv - $pa; - } elseif ($conf->global->MARGIN_METHODE_FOR_DISCOUNT == '3') { // remise globale prise en compte uniqt sur total + } elseif (getDolGlobalString('MARGIN_METHODE_FOR_DISCOUNT') == '3') { // remise globale prise en compte uniqt sur total $marginInfos['pa_total'] += $pa; $marginInfos['pv_total'] += $pv; } @@ -218,25 +218,25 @@ class FormMargin if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } elseif (empty($reshook)) { - if (!empty($conf->global->MARGIN_ADD_SHOWHIDE_BUTTON)) { // TODO Warning this feature rely on an external js file that may be removed. Using native js function document.cookie should be better - print $langs->trans('ShowMarginInfos') . ' : '; + if (!empty($conf->global->MARGIN_ADD_SHOWHIDE_BUTTON)) { + print $langs->trans('ShowMarginInfos') . ' '; $hidemargininfos = preg_replace('/[^a-zA-Z0-9_\-]/', '', $_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']); // Clean cookie - print '' . img_picto($langs->trans("Disabled"), 'switch_off') . ''; - print '' . img_picto($langs->trans("Enabled"), 'switch_on') . ''; + print '' . img_picto($langs->trans("Disabled"), 'switch_off') . ''; + print '' . img_picto($langs->trans("Enabled"), 'switch_on') . ''; print ''; if (!empty($hidemargininfos)) { - print ''; + print ''; } } print '
    '; print '' . "\n"; - print '
    '; @@ -2561,7 +2671,7 @@ if ($action == 'create') { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print '
    '; print ''; - print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; @@ -474,12 +493,12 @@ if ($socid > 0) { } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; @@ -562,13 +581,13 @@ if ($socid > 0) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; @@ -612,12 +631,12 @@ if ($socid > 0) { } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; @@ -735,13 +754,13 @@ if ($socid > 0) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; @@ -808,12 +827,12 @@ if ($socid > 0) { } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; @@ -896,13 +915,13 @@ if ($socid > 0) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; print ''; @@ -969,12 +988,12 @@ if ($socid > 0) { } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { print ''; } print ''; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 1432d1f132f..ccf706c9ac7 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -5,7 +5,7 @@ * Copyright (C) 2005-2015 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2010-2013 Juanjo Menent - * Copyright (C) 2011-2019 Philippe Grand + * Copyright (C) 2011-2022 Philippe Grand * Copyright (C) 2012-2013 Christophe Battarel * Copyright (C) 2012-2016 Marcos García * Copyright (C) 2012 Cedric Salvador @@ -13,7 +13,7 @@ * Copyright (C) 2014 Ferran Marcet * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2018-2021 Frédéric France - * Copyright (C) 2022 Gauthier VERDOL + * Copyright (C) 2022 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,59 +30,65 @@ */ /** - * \file htdocs/commande/card.php - * \ingroup commande - * \brief Page to show customer order + * \file htdocs/commande/card.php + * \ingroup commande + * \brief Page to show sales order */ +// Load Dolibarr environment require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formorder.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; -require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (!empty($conf->propal->enabled)) { +require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; + +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } -require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - -if (!empty($conf->variants->enabled)) { +if (isModEnabled('variants')) { require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; } + // Load translation files required by the page $langs->loadLangs(array('orders', 'sendings', 'companies', 'bills', 'propal', 'deliveries', 'products', 'other')); -if (!empty($conf->incoterm->enabled)) { + +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { $langs->load('margins'); } -if (!empty($conf->productbatch->enabled)) { - $langs->load("productbatch"); +if (isModEnabled('productbatch')) { + $langs->load('productbatch'); } -$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('orderid', 'int')); -$ref = GETPOST('ref', 'alpha'); -$socid = GETPOST('socid', 'int'); -$action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel', 'alpha'); -$confirm = GETPOST('confirm', 'alpha'); -$lineid = GETPOST('lineid', 'int'); -$contactid = GETPOST('contactid', 'int'); -$projectid = GETPOST('projectid', 'int'); -$origin = GETPOST('origin', 'alpha'); -$originid = (GETPOST('originid', 'int') ? GETPOST('originid', 'int') : GETPOST('origin_id', 'int')); // For backward compatibility -$rank = (GETPOST('rank', 'int') > 0) ? GETPOST('rank', 'int') : -1; + +$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('orderid', 'int')); +$ref = GETPOST('ref', 'alpha'); +$socid = GETPOST('socid', 'int'); +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$lineid = GETPOST('lineid', 'int'); +$contactid = GETPOST('contactid', 'int'); +$projectid = GETPOST('projectid', 'int'); +$origin = GETPOST('origin', 'alpha'); +$originid = (GETPOST('originid', 'int') ? GETPOST('originid', 'int') : GETPOST('origin_id', 'int')); // For backward compatibility +$rank = (GETPOST('rank', 'int') > 0) ? GETPOST('rank', 'int') : -1; // PDF $hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); @@ -106,22 +112,27 @@ $extrafields = new ExtraFields($db); $extrafields->fetch_name_optionals_label($object->table_element); // Load object -include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once + +// Permissions / Rights +$usercanread = $user->hasRight("commande", "lire"); +$usercancreate = $user->hasRight("commande", "creer"); +$usercandelete = $user->hasRight("commande", "supprimer"); -$usercanread = $user->rights->commande->lire; -$usercancreate = $user->rights->commande->creer; -$usercandelete = $user->rights->commande->supprimer; // Advanced permissions -$usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->creer)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->close))); -$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->validate))); -$usercancancel = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->annuler))); -$usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send); +$usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->hasRight('commande', 'order_advance', 'close'))); +$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->hasRight('commande', 'order_advance', 'validate'))); +$usercancancel = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->hasRight('commande', 'order_advance', 'annuler'))); +$usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->hasRight('commande', 'order_advance', 'send')); +$usercangeneretedoc = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->hasRight('commande', 'order_advance', 'generetedoc')); -$usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$usermustrespectpricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); +$usercancreatepurchaseorder = ($user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer')); + +$permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php +$permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php +$permissiontoadd = $usercancreate; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php -$permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php -$permissiontoadd = $usercancreate; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $error = 0; @@ -163,11 +174,11 @@ if (empty($reshook)) { $action = ''; } - include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once + include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once - include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once + include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once - include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; // Must be include, not include_once + include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; // Must be include, not include_once // Action clone object if ($action == 'confirm_clone' && $confirm == 'yes' && $usercancreate) { @@ -217,10 +228,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -424,7 +435,7 @@ if (empty($reshook)) { } // Defined the new fk_parent_line - if ($result > 0) { + if ($result > 0 && $lines[$i]->product_type == 9) { $fk_parent_line = $result; } } @@ -435,7 +446,7 @@ if (empty($reshook)) { // Now we create same links to contact than the ones found on origin object /* Useless, already into the create - if (! empty($conf->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN)) + if (!empty($conf->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN)) { $originforcontact = $object->origin; $originidforcontact = $object->origin_id; @@ -580,7 +591,7 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = GETPOST('lang_id', 'alpha'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -592,7 +603,7 @@ if (empty($reshook)) { $object->generateDocument($object->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - } elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) { + } elseif ($action == 'set_incoterms' && isModEnabled('incoterm')) { // Set incoterm $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); if ($result < 0) { @@ -643,18 +654,50 @@ if (empty($reshook)) { // Set if we used free entry or predefined product $predef = ''; $product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); - $price_ht = price2num(GETPOST('price_ht'), 'MU', 2); - $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); - $prod_entry_mode = GETPOST('prod_entry_mode'); + + $price_ht = ''; + $price_ht_devise = ''; + $price_ttc = ''; + $price_ttc_devise = ''; + + if (GETPOST('price_ht') !== '') { + $price_ht = price2num(GETPOST('price_ht'), 'MU', 2); + } + if (GETPOST('multicurrency_price_ht') !== '') { + $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); + } + if (GETPOST('price_ttc') !== '') { + $price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2); + } + if (GETPOST('multicurrency_price_ttc') !== '') { + $price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2); + } + + $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); if ($prod_entry_mode == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); + $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); $tva_tx = ''; } - $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); + + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } + + $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS', 2); $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha'), '', 2) : 0); if (empty($remise_percent)) { @@ -680,7 +723,7 @@ if (empty($reshook)) { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), null, 'errors'); $error++; } - if ($prod_entry_mode == 'free' && (empty($idprod) || $idprod < 0) && $price_ht == '' && $price_ht_devise == '') { // Unit price can be 0 but not ''. Also price can be negative for order. + if ($prod_entry_mode == 'free' && (empty($idprod) || $idprod < 0) && $price_ht === '' && $price_ht_devise === '' && $price_ttc === '' && $price_ttc_devise === '') { // Unit price can be 0 but not ''. Also price can be negative for order. setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("UnitPriceHT")), null, 'errors'); $error++; } @@ -697,7 +740,7 @@ if (empty($reshook)) { $error++; } - if (!$error && !empty($conf->variants->enabled) && $prod_entry_mode != 'free') { + if (!$error && isModEnabled('variants') && $prod_entry_mode != 'free') { if ($combinations = GETPOST('combinations', 'array')) { //Check if there is a product with the given combination $prodcomb = new ProductCombination($db); @@ -737,6 +780,7 @@ if (empty($reshook)) { $pu_ht = $prod->price; $pu_ttc = $prod->price_ttc; $price_min = $prod->price_min; + $price_min_ttc = $prod->price_min_ttc; $price_base_type = $prod->price_base_type; // If price per segment @@ -744,6 +788,7 @@ if (empty($reshook)) { $pu_ht = $prod->multiprices[$object->thirdparty->price_level]; $pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level]; $price_min = $prod->multiprices_min[$object->thirdparty->price_level]; + $price_min_ttc = $prod->multiprices_min_ttc[$object->thirdparty->price_level]; $price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level]; if (!empty($conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL)) { // using this option is a bug. kept for backward compatibility if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) { @@ -761,12 +806,13 @@ if (empty($reshook)) { $filter = array('t.fk_product' => $prod->id, 't.fk_soc' => $object->thirdparty->id); - $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); + $result = $prodcustprice->fetchAll('', '', 0, 0, $filter); if ($result >= 0) { if (count($prodcustprice->lines) > 0) { $pu_ht = price($prodcustprice->lines[0]->price); $pu_ttc = price($prodcustprice->lines[0]->price_ttc); $price_min = price($prodcustprice->lines[0]->price_min); + $price_min_ttc = price($prodcustprice->lines[0]->price_min_ttc); $price_base_type = $prodcustprice->lines[0]->price_base_type; $tva_tx = $prodcustprice->lines[0]->tva_tx; if ($prodcustprice->lines[0]->default_vat_code && !preg_match('/\(.*\)/', $tva_tx)) { @@ -826,13 +872,15 @@ if (empty($reshook)) { $tmpvat = price2num(preg_replace('/\s*\(.*\)/', '', $tva_tx)); $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); - // if price ht is forced (ie: calculated by margin rate and cost price). TODO Why this ? + // Set unit price to use if (!empty($price_ht) || $price_ht === '0') { $pu_ht = price2num($price_ht, 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); + } elseif (!empty($price_ttc) || $price_ttc === '0') { + $pu_ttc = price2num($price_ttc, 'MU'); + $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); } elseif ($tmpvat != $tmpprodvat) { - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + // Is this still used ? if ($price_base_type != 'HT') { $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); } else { @@ -843,7 +891,7 @@ if (empty($reshook)) { $desc = ''; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -877,7 +925,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (!empty($prod->customcode) || !empty($prod->country_code))) { $tmptxt = '('; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'alpha')) { @@ -919,14 +967,22 @@ if (empty($reshook)) { $fk_unit = $prod->fk_unit; } else { $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); + $pu_ttc = price2num($price_ttc, 'MU'); $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); $tva_tx = str_replace('*', '', $tva_tx); + if (empty($tva_tx)) { + $tva_npr = 0; + } $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); $desc = $product_desc; $type = GETPOST('type'); $fk_unit = GETPOST('units', 'alpha'); $pu_ht_devise = price2num($price_ht_devise, 'MU'); + $pu_ttc_devise = price2num($price_ttc_devise, 'MU'); + + if ($pu_ttc && !$pu_ht) { + $price_base_type = 'TTC'; + } } // Margin @@ -937,17 +993,26 @@ if (empty($reshook)) { $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty); $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty); - $desc = dol_htmlcleanlastbr($desc); - $info_bits = 0; if ($tva_npr) { $info_bits |= 0x01; } - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (!empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { - $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); - setEventMessages($mesg, null, 'errors'); - } else { + $desc = dol_htmlcleanlastbr($desc); + + if ($usermustrespectpricemin) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + } + } + + if (!$error) { // Insert line $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $info_bits, 0, $price_base_type, $pu_ttc, $date_start, $date_end, $type, min($rank, count($object->lines) + 1), 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $array_options, $fk_unit, '', 0, $pu_ht_devise); @@ -959,7 +1024,7 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = GETPOST('lang_id', 'alpha'); - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1015,11 +1080,30 @@ if (empty($reshook)) { $date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml')); - $pu_ht = price2num(GETPOST('price_ht'), '', 2); $vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx', 'alpha') : 0); - $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2); + $vat_rate = str_replace('*', '', $vat_rate); - $qty = price2num(GETPOST('qty'), 'MS'); + $pu_ht = price2num(GETPOST('price_ht'), '', 2); + $pu_ttc = price2num(GETPOST('price_ttc'), '', 2); + + $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2); + $pu_ttc_devise = price2num(GETPOST('multicurrency_subprice_ttc'), '', 2); + + $qty = price2num(GETPOST('qty', 'alpha'), 'MS'); + + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } // Define info_bits $info_bits = 0; @@ -1052,7 +1136,7 @@ if (empty($reshook)) { $special_code = 3; } - $remise_percent = price2num(GETPOST('remise_percent'), '', 2); + $remise_percent = GETPOST('remise_percent') != '' ? price2num(GETPOST('remise_percent'), '', 2) : 0; // Check minimum price $productid = GETPOST('productid', 'int'); @@ -1066,13 +1150,25 @@ if (empty($reshook)) { if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) { $price_min = $product->multiprices_min[$object->thirdparty->price_level]; } + $price_min_ttc = $product->price_min_ttc; + if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) { + $price_min_ttc = $product->multiprices_min_ttc[$object->thirdparty->price_level]; + } $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) { - setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); - $error++; - $action = 'editline'; + if ($usermustrespectpricemin) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + $action = 'editline'; + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + $action = 'editline'; + } } } else { $type = GETPOST('type'); @@ -1102,17 +1198,25 @@ if (empty($reshook)) { } } } - $result = $object->updateline(GETPOST('lineid', 'int'), $description, $pu_ht, $qty, $remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $info_bits, $date_start, $date_end, $type, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, GETPOST('units'), $pu_ht_devise); + + $price_base_type = 'HT'; + $pu = $pu_ht; + if (empty($pu) && !empty($pu_ttc)) { + $pu = $pu_ttc; + $price_base_type = 'TTC'; + } + + $result = $object->updateline(GETPOST('lineid', 'int'), $description, $pu, $qty, $remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, $price_base_type, $info_bits, $date_start, $date_end, $type, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, GETPOST('units'), $pu_ht_devise); if ($result >= 0) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1168,7 +1272,7 @@ if (empty($reshook)) { } // Check parameters - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { if (!$idwarehouse || $idwarehouse == -1) { $error++; setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); @@ -1187,8 +1291,8 @@ if (empty($reshook)) { $deposit_percent_from_payment_terms = getDictionaryValue('c_payment_term', 'deposit_percent', $object->cond_reglement_id); if ( - GETPOST('generate_deposit', 'alpha') == 'on' && ! empty($deposit_percent_from_payment_terms) - && ! empty($conf->facture->enabled) && ! empty($user->rights->facture->creer) + GETPOST('generate_deposit', 'alpha') == 'on' && !empty($deposit_percent_from_payment_terms) + && isModEnabled('facture') && !empty($user->rights->facture->creer) ) { require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; @@ -1217,10 +1321,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1262,7 +1366,7 @@ if (empty($reshook)) { } // Check parameters - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { if (!$idwarehouse || $idwarehouse == -1) { $error++; setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); @@ -1277,10 +1381,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1310,7 +1414,7 @@ if (empty($reshook)) { } // Check parameters - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { if (!$idwarehouse || $idwarehouse == -1) { $error++; setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); @@ -1484,15 +1588,19 @@ if (empty($reshook)) { * View */ -$title = $langs->trans('Order')." - ".$langs->trans('Card'); +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("NewOrder"); +} $help_url = 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes|DE:Modul_Kundenaufträge'; + llxHeader('', $title, $help_url); $form = new Form($db); $formfile = new FormFile($db); $formorder = new FormOrder($db); $formmargin = new FormMargin($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -1587,7 +1695,7 @@ if ($action == 'create' && $usercancreate) { $date_delivery = (!empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : ''); } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (!empty($objectsrc->multicurrency_code)) { $currency_code = $objectsrc->multicurrency_code; } @@ -1609,13 +1717,13 @@ if ($action == 'create' && $usercancreate) { $fk_account = $soc->fk_account; $availability_id = 0; $shipping_method_id = $soc->shipping_method_id; - $warehouse_id = $soc->warehouse_id; + $warehouse_id = $soc->fk_warehouse; $demand_reason_id = $soc->demand_reason_id; $remise_percent = $soc->remise_percent; $remise_absolue = 0; $dateorder = empty($conf->global->MAIN_AUTOFILL_DATE_ORDER) ?-1 : ''; - if (!empty($conf->multicurrency->enabled) && !empty($soc->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($soc->multicurrency_code)) { $currency_code = $soc->multicurrency_code; } @@ -1627,7 +1735,7 @@ if ($action == 'create' && $usercancreate) { if ($soc->fk_warehouse > 0) { $warehouse_id = $soc->fk_warehouse; } - if (!empty($conf->stock->enabled) && empty($warehouse_id) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + if (isModEnabled('stock') && empty($warehouse_id) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { if (empty($object->warehouse_id) && !empty($conf->global->MAIN_DEFAULT_WAREHOUSE)) { $warehouse_id = $conf->global->MAIN_DEFAULT_WAREHOUSE; } @@ -1673,7 +1781,7 @@ if ($action == 'create' && $usercancreate) { print ''; } else { print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print ''; - echo ''; + echo ''; echo ''; - echo ''; + echo ''; echo ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print ''; if (empty($TData)) { print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print ''; @@ -799,7 +833,7 @@ if (!empty($date_start) && !empty($date_stop)) { $totalVAT_debit -= $data['amount_vat']; } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print '\n"; } @@ -813,7 +847,7 @@ if (!empty($date_start) && !empty($date_stop)) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print "\n"; @@ -824,7 +858,7 @@ if (!empty($date_start) && !empty($date_stop)) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print "\n"; @@ -835,7 +869,7 @@ if (!empty($date_start) && !empty($date_stop)) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print "\n"; diff --git a/htdocs/compta/ajaxpayment.php b/htdocs/compta/ajaxpayment.php index 0332a925f9d..b566f77bcde 100644 --- a/htdocs/compta/ajaxpayment.php +++ b/htdocs/compta/ajaxpayment.php @@ -23,9 +23,6 @@ if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} if (!defined('NOTOKENRENEWAL')) { define('NOTOKENRENEWAL', '1'); } @@ -36,6 +33,7 @@ if (!defined('NOREQUIREHTML')) { define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php } +// Load Dolibarr environment require '../main.inc.php'; $langs->load('compta'); @@ -111,7 +109,7 @@ if ($currentInvId) { // Here to breakdown $result -= $amountToBreakdown; // And canceled substraction has been replaced by breakdown } // else there's no need to calc anything, just reset the field (result is still < 0) } - $toJsonArray['amount_'.$currentInvId] = price2num($currentAmount).""; // Param will exist only if an img has been clicked + $toJsonArray['amount_'.$currentInvId] = price2num($currentAmount); // Param will exist only if an img has been clicked } $toJsonArray['makeRed'] = ($totalRemaining < price2num($result) || price2num($result) < 0) ? true : false; diff --git a/htdocs/compta/bank/account_statement_document.php b/htdocs/compta/bank/account_statement_document.php index 09cf9709aee..a07759ad504 100644 --- a/htdocs/compta/bank/account_statement_document.php +++ b/htdocs/compta/bank/account_statement_document.php @@ -1,5 +1,4 @@ * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005 Marc Barilley / Ocebo diff --git a/htdocs/compta/bank/annuel.php b/htdocs/compta/bank/annuel.php index 5d6c2045d47..177855c9302 100644 --- a/htdocs/compta/bank/annuel.php +++ b/htdocs/compta/bank/annuel.php @@ -24,6 +24,7 @@ * \brief Page to report input-output of a bank account */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -38,6 +39,9 @@ $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height', 160); $id = GETPOST('account') ?GETPOST('account', 'alpha') : GETPOST('id'); $ref = GETPOST('ref'); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('bankannualreport', 'globalcard')); + // Security check $fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); $fieldtype = (!empty($ref) ? 'ref' : 'rowid'); @@ -61,10 +65,6 @@ if (!$year_start) { * View */ -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("IOMonthlyReporting"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $form = new Form($db); // Get account informations @@ -82,6 +82,10 @@ $annee = ''; $totentrees = array(); $totsorties = array(); +$title = $object->ref.' - '.$langs->trans("IOMonthlyReporting"); +$helpurl = ""; +llxHeader('', $title, $helpurl); + // Ce rapport de tresorerie est base sur llx_bank (car doit inclure les transactions sans facture) // plutot que sur llx_paiement + llx_paiementfourn @@ -192,6 +196,9 @@ for ($mois = 1; $mois < 13; $mois++) { print ''; print ""; for ($annee = $year_start; $annee <= $year_end; $annee++) { + $totsorties[$annee] = 0; + $totentrees[$annee] = 0; + $case = sprintf("%04s-%02s", $annee, $mois); print ''; print ''; print ''; - /*if (! empty($conf->accounting->enabled)) + /*if (isModEnabled('accounting')) { print ''; print ''; - /*if (! empty($conf->accounting->enabled)) + /*if (isModEnabled('accounting')) { print ''; } // Numero @@ -1126,8 +1134,8 @@ if ($resql) { } // Conciliated if (!empty($arrayfields['b.conciliated']['checked'])) { - print ''; } // Bordereau @@ -1270,7 +1278,7 @@ if ($resql) { } // Extra fields $element = 'banktransaction'; - if (is_array($extrafields->attributes[$element]['label']) && count($extrafields->attributes[$element]['label'])) { + if (!empty($extrafields->attributes[$element]['label']) && is_array($extrafields->attributes[$element]['label']) && count($extrafields->attributes[$element]['label'])) { foreach ($extrafields->attributes[$element]['label'] as $key => $val) { if (!empty($arrayfields["ef.".$key]['checked'])) { if (!empty($arrayfields[$key]['checked'])) { @@ -1553,6 +1561,7 @@ if ($resql) { $companylinked_id = 0; $userlinked_id = 0; + $type_link = ""; //payment line type to define user display and user or company linked foreach ($links as $key => $value) { diff --git a/htdocs/compta/bank/bilan.php b/htdocs/compta/bank/bilan.php index 6edee79f86b..c2e93b27e59 100644 --- a/htdocs/compta/bank/bilan.php +++ b/htdocs/compta/bank/bilan.php @@ -17,17 +17,20 @@ */ /** - * \file htdocs/compta/bank/bilan.php - * \ingroup banque - * \brief Page de bilan + * \file htdocs/compta/bank/bilan.php + * \ingroup compta/bank + * \brief Page of Balance sheet */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page $langs->loadLangs(array('banks', 'categories')); +// Security Check Access Control if (empty($user->rights->banque->lire)) { accessforbidden(); } diff --git a/htdocs/compta/bank/budget.php b/htdocs/compta/bank/budget.php index 3e40e45b58e..8385dab544c 100644 --- a/htdocs/compta/bank/budget.php +++ b/htdocs/compta/bank/budget.php @@ -24,6 +24,7 @@ * \brief Page de budget */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index 31a918b1a27..15cb5123e0f 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -6,7 +6,7 @@ * Copyright (C) 2014-2017 Alexandre Spangaro * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2016 Marcos García - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * Copyright (C) 2022 Charlene Benke * * This program is free software; you can redistribute it and/or modify @@ -29,6 +29,7 @@ * \brief Page to create/view a bank account */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -36,16 +37,16 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbank.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -68,6 +69,15 @@ $hookmanager->initHooks(array('bankcard', 'globalcard')); $id = GETPOST("id", 'int') ? GETPOST("id", 'int') : GETPOST('ref', 'alpha'); $fieldid = GETPOST("id", 'int') ? 'rowid' : 'ref'; +if (GETPOST("id", 'int') || GETPOST("ref")) { + if (GETPOST("id", 'int')) { + $object->fetch(GETPOST("id", 'int')); + } + if (GETPOST("ref")) { + $object->fetch(0, GETPOST("ref")); + } +} + $result = restrictedArea($user, 'banque', $id, 'bank_account&bank_account', '', '', $fieldid); @@ -319,6 +329,7 @@ if (empty($reshook)) { } } + /* * View */ @@ -326,24 +337,22 @@ if (empty($reshook)) { $form = new Form($db); $formbank = new FormBank($db); $formcompany = new FormCompany($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } $countrynotdefined = $langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; -$title = $langs->trans("FinancialAccount")." - ".$langs->trans("Card"); - $help_url = 'EN:Module_Banks_and_Cash|FR:Module_Banques_et_Caisses|ES:Módulo_Bancos_y_Cajas|DE:Modul_Banken_und_Barbestände'; - +if ($action == 'create') { + $title = $langs->trans("NewFinancialAccount"); +} elseif (!empty($object->ref)) { + $title = $object->ref." - ".$langs->trans("Card"); +} llxHeader("", $title, $help_url); - // Creation - if ($action == 'create') { - $object = new Account($db); - print load_fiche_titre($langs->trans("NewFinancialAccount"), '', 'bank_account'); if ($conf->use_javascript_ajax) { @@ -437,7 +446,7 @@ if ($action == 'create') { print ''; // Tags-Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { print ''; - print ''; + print ''; print ''; } $ibankey = FormBank::getIBANLabel($object); @@ -536,10 +546,10 @@ if ($action == 'create') { // IBAN print ''; - print ''; + print ''; print ''; - print ''; + print ''; if (isModEnabled('paymentbybanktransfer')) { print ''; @@ -550,7 +560,7 @@ if ($action == 'create') { print '"; print ''; @@ -573,7 +583,7 @@ if ($action == 'create') { $fieldrequired = 'fieldrequired '; } - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print ''; print ''; print ''; print ''; // Accountancy journal - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print ''; print ''; } else { @@ -674,6 +689,28 @@ if ($result) { if ($user->rights->banque->consolidate) { print ''; } else { print ''; diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 238b9919ef1..098489e6f7b 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -26,19 +26,20 @@ * \brief Home page of bank module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcategory.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } @@ -58,7 +59,8 @@ $search_number = GETPOST('search_number', 'alpha'); $search_status = GETPOST('search_status') ?GETPOST('search_status', 'alpha') : 'opened'; // 'all' or ''='opened' $optioncss = GETPOST('optioncss', 'alpha'); -if (!empty($conf->categorie->enabled)) { +$search_category_list =""; +if (isModEnabled('categorie')) { $search_category_list = GETPOST("search_category_".Categorie::TYPE_ACCOUNT."_list", "array"); } @@ -69,7 +71,7 @@ if ($user->socid) { } $allowed = 0; -if (!empty($user->rights->accounting->chartofaccount)) { +if ($user->hasRight('accounting', 'chartofaccount')) { $allowed = 1; // Dictionary with list of banks accounting account allowed to manager of chart account } if (!$allowed) { @@ -116,8 +118,8 @@ $arrayfields = array( 'b.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1, 'position'=>12), 'accountype'=>array('label'=>$langs->trans("Type"), 'checked'=>1, 'position'=>14), 'b.number'=>array('label'=>$langs->trans("AccountIdShort"), 'checked'=>1, 'position'=>16), - 'b.account_number'=>array('label'=>$langs->trans("AccountAccounting"), 'checked'=>(!empty($conf->accounting->enabled) || !empty($conf->accounting->enabled)), 'position'=>18), - 'b.fk_accountancy_journal'=>array('label'=>$langs->trans("AccountancyJournal"), 'checked'=>(!empty($conf->accounting->enabled) || !empty($conf->accounting->enabled)), 'position'=>20), + 'b.account_number'=>array('label'=>$langs->trans("AccountAccounting"), 'checked'=>(isModEnabled('accounting')), 'position'=>18), + 'b.fk_accountancy_journal'=>array('label'=>$langs->trans("AccountancyJournal"), 'checked'=>(isModEnabled('accounting')), 'position'=>20), 'toreconcile'=>array('label'=>$langs->trans("TransactionsToConciliate"), 'checked'=>1, 'position'=>50), 'b.currency_code'=>array('label'=>$langs->trans("Currency"), 'checked'=>0, 'position'=>22), 'b.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), @@ -161,6 +163,7 @@ if (empty($reshook)) { $search_label = ''; $search_number = ''; $search_status = ''; + $search_category_list = array(); } // Mass actions @@ -190,17 +193,15 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { } // Add fields from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."bank_account as b"; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (b.rowid = ef.fk_object)"; } - -if (!empty($conf->categorie->enabled)) { - $sql .= Categorie::getFilterJoinQuery(Categorie::TYPE_ACCOUNT, "b.rowid"); -} - $sql .= " WHERE b.entity IN (".getEntity('bank_account').")"; if ($search_status == 'opened') { $sql .= " AND clos = 0"; @@ -208,11 +209,6 @@ if ($search_status == 'opened') { if ($search_status == 'closed') { $sql .= " AND clos = 1"; } - -if (!empty($conf->categorie->enabled)) { - $sql .= Categorie::getFilterSelectQuery(Categorie::TYPE_ACCOUNT, "b.rowid", $search_category_list); -} - if ($search_ref != '') { $sql .= natural_search('b.ref', $search_ref); } @@ -222,23 +218,68 @@ if ($search_label != '') { if ($search_number != '') { $sql .= natural_search('b.number', $search_number); } +// Search for tag/category ($searchCategoryBankList is an array of ID) +$searchCategoryBankList = $search_category_list; +$searchCategoryBankOperator = 0; +if (!empty($searchCategoryBankList)) { + $searchCategoryBankSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryBankList as $searchCategoryBank) { + if (intval($searchCategoryBank) == -2) { + $searchCategoryBankSqlList[] = "NOT EXISTS (SELECT ck.fk_account FROM ".MAIN_DB_PREFIX."categorie_account as ck WHERE b.rowid = ck.fk_account)"; + } elseif (intval($searchCategoryBank) > 0) { + if ($searchCategoryBankOperator == 0) { + $searchCategoryBankSqlList[] = " EXISTS (SELECT ck.fk_account FROM ".MAIN_DB_PREFIX."categorie_account as ck WHERE b.rowid = ck.fk_account AND ck.fk_categorie = ".((int) $searchCategoryBank).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryBank); + } + } + } + if ($listofcategoryid) { + $searchCategoryBankSqlList[] = " EXISTS (SELECT ck.fk_account FROM ".MAIN_DB_PREFIX."categorie_account as ck WHERE b.rowid = ck.fk_account AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryBankOperator == 1) { + if (!empty($searchCategoryBankSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryBankSqlList).")"; + } + } else { + if (!empty($searchCategoryBankSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryBankSqlList).")"; + } + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 + $page = 0; + $offset = 0; + } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} $resql = $db->query($sql); if ($resql) { @@ -292,7 +333,7 @@ if ($optioncss != '') { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; // Add $param from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $param .= $hookmanager->resPrint; // List of mass actions available @@ -303,7 +344,7 @@ $arrayofmassactions = array( if ($permissiontodelete) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } -if ($user->rights->banque->modifier) { +if (isModEnabled('category') && $user->rights->banque->modifier) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } if (in_array($massaction, array('presend', 'predelete','preaffecttag'))) { @@ -344,13 +385,13 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; $moreforfilter = ''; -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { $moreforfilter .= $form->getFilterBox(Categorie::TYPE_ACCOUNT, $search_category_list); } // Bank accounts $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $moreforfilter .= $hookmanager->resPrint; } else { @@ -364,7 +405,7 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table @@ -373,7 +414,13 @@ print '
    '; print $langs->trans('IncotermLabel'); @@ -2593,48 +2703,48 @@ if ($action == 'create') { print ''; - if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code && $object->multicurrency_code != $conf->currency)) { + if (isModEnabled("multicurrency") && ($object->multicurrency_code && $object->multicurrency_code != $conf->currency)) { // Multicurrency Amount HT print ''; - print ''; + print ''; print ''; // Multicurrency Amount VAT print ''; - print ''; + print ''; print ''; // Multicurrency Amount TTC print ''; - print ''; + print ''; print ''; } // Amount HT print ''; - print ''; + print ''; print ''; // Amount VAT print ''; - print ''; + print ''; print ''; // Amount Local Taxes if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) { // Localtax1 print ''; - print ''; + print ''; print ''; } if ($mysoc->localtax2_assuj == "1" || $object->total_localtax2 != 0) { // Localtax2 print ''; - print ''; + print ''; print ''; } // Amount TTC print ''; - print ''; + print ''; print ''; // Statut @@ -2643,7 +2753,7 @@ if ($action == 'create') { print '
    '.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$langs->trans('AmountHT').''.price($object->total_ht, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_ht, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->trans('AmountVAT').''.price($object->total_tva, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_tva, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->transcountry("AmountLT1", $mysoc->country_code).''.price($object->total_localtax1, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_localtax1, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->transcountry("AmountLT2", $mysoc->country_code).''.price($object->total_localtax2, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_localtax2, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->trans('AmountTTC').''.price($object->total_ttc, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_ttc, '', $langs, 0, - 1, - 1, $conf->currency).'
    '; // Margin Infos - if (!empty($conf->margin->enabled)) { + if (isModEnabled('margin')) { $formmargin->displayMarginInfos($object); } @@ -2668,10 +2778,15 @@ if ($action == 'create') { * Lines */ - // Show object lines + // Get object lines $result = $object->getLinesArray(); - print ' + // Add products/services form + //$forceall = 1; + global $inputalsopricewithtax; + $inputalsopricewithtax = 1; + + print ' @@ -2689,14 +2804,12 @@ if ($action == 'create') { } if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); + $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 1); } // Form to add new line if ($object->statut == Propal::STATUS_DRAFT && $usercancreate && $action != 'selectlines') { if ($action != 'editline') { - // Add products/services form - $parameters = array(); $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -2734,13 +2847,13 @@ if ($action == 'create') { if (($object->statut == Propal::STATUS_DRAFT && $object->total_ttc >= 0 && count($object->lines) > 0) || ($object->statut == Propal::STATUS_DRAFT && !empty($conf->global->PROPAL_ENABLE_NEGATIVE) && count($object->lines) > 0)) { if ($usercanvalidate) { - print ''.$langs->trans('Validate').''; + print ''.(empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE) ? $langs->trans('Validate') : $langs->trans('ValidateAndSign')).''; } else { print ''.$langs->trans('Validate').''; } } // Create event - /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. + /*if ($conf->agenda->enabled && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. { print '' . $langs->trans("AddAction") . ''; }*/ @@ -2750,7 +2863,7 @@ if ($action == 'create') { } // ReOpen - if ( (( ! empty($conf->global->PROPAL_REOPEN_UNSIGNED_ONLY) && $object->statut == Propal::STATUS_NOTSIGNED) || (empty($conf->global->PROPAL_REOPEN_UNSIGNED_ONLY) && ($object->statut == Propal::STATUS_SIGNED || $object->statut == Propal::STATUS_NOTSIGNED || $object->statut == Propal::STATUS_BILLED))) && $usercanclose) { + if ( (( !empty($conf->global->PROPAL_REOPEN_UNSIGNED_ONLY) && $object->statut == Propal::STATUS_NOTSIGNED) || (empty($conf->global->PROPAL_REOPEN_UNSIGNED_ONLY) && ($object->statut == Propal::STATUS_SIGNED || $object->statut == Propal::STATUS_NOTSIGNED || $object->statut == Propal::STATUS_BILLED))) && $usercanclose) { print 'global->MAIN_JUMP_TAG) ? '' : '#reopen').'"'; print '>'.$langs->trans('ReOpen').''; } @@ -2758,16 +2871,12 @@ if ($action == 'create') { // Send if (empty($user->socid)) { if ($object->statut == Propal::STATUS_VALIDATED || $object->statut == Propal::STATUS_SIGNED || !empty($conf->global->PROPOSAL_SENDBYEMAIL_FOR_ALL_STATUS)) { - if ($usercansend) { - print ''.$langs->trans('SendMail').''; - } else { - print ''.$langs->trans('SendMail').''; - } + print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?action=presend&token='.newToken().'&id='.$object->id.'&mode=init#formmailbeforetitle', '', $usercansend); } } // Create a sale order - if (!empty($conf->commande->enabled) && $object->statut == Propal::STATUS_SIGNED) { + if (isModEnabled('commande') && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateorder) { print ''.$langs->trans("AddOrder").''; } @@ -2775,7 +2884,7 @@ if ($action == 'create') { // Create a purchase order if (!empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_PROPOSAL)) { - if ($object->statut == Propal::STATUS_SIGNED && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled))) { + if ($object->statut == Propal::STATUS_SIGNED && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order"))) { if ($usercancreatepurchaseorder) { print ''.$langs->trans("AddPurchaseOrder").''; } @@ -2783,7 +2892,7 @@ if ($action == 'create') { } // Create an intervention - if (!empty($conf->service->enabled) && !empty($conf->ficheinter->enabled) && $object->statut == Propal::STATUS_SIGNED) { + if (isModEnabled("service") && isModEnabled('ficheinter') && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateintervention) { $langs->load("interventions"); print ''.$langs->trans("AddIntervention").''; @@ -2791,7 +2900,7 @@ if ($action == 'create') { } // Create contract - if (!empty($conf->contrat->enabled) && $object->statut == Propal::STATUS_SIGNED) { + if (isModEnabled('contrat') && $object->statut == Propal::STATUS_SIGNED) { $langs->load("contracts"); if ($usercancreatecontract) { @@ -2815,14 +2924,22 @@ if ($action == 'create') { } } - // Close as accepted/refused - if ($object->statut == Propal::STATUS_VALIDATED) { - if ($usercanclose) { - print 'global->MAIN_JUMP_TAG) ? '' : '#close').'"'; - print '>'.$langs->trans('SetAcceptedRefused').''; - } else { - print ''.$langs->trans('SetAcceptedRefused').''; + if (empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE)) { + // Close as accepted/refused + if ($object->statut == Propal::STATUS_VALIDATED) { + if ($usercanclose) { + print 'global->MAIN_JUMP_TAG) ? '' : '#close').'"'; + print '>'.$langs->trans('SetAcceptedRefused').''; + } else { + print ''.$langs->trans('SetAcceptedRefused').''; + } + } + } else { + // Set not signed (close) + if ($object->statut == Propal::STATUS_DRAFT && $usercanclose) { + print 'global->MAIN_JUMP_TAG) ? '' : '#close') . '"'; + print '>' . $langs->trans('SetRefusedAndClose') . ''; } } @@ -2832,10 +2949,7 @@ if ($action == 'create') { } // Delete - if ($usercandelete) { - print ''.$langs->trans('Delete').''; - } + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $usercandelete); } } @@ -2875,7 +2989,7 @@ if ($action == 'create') { if ($object->statut != Propal::STATUS_DRAFT && $useonlinesignature) { print '
    '; - require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php'; print showOnlineSignatureUrl('proposal', $object->ref).'
    '; } diff --git a/htdocs/comm/propal/class/api_proposals.class.php b/htdocs/comm/propal/class/api_proposals.class.php index d28b5718c2f..5e0e2c31e19 100644 --- a/htdocs/comm/propal/class/api_proposals.class.php +++ b/htdocs/comm/propal/class/api_proposals.class.php @@ -49,7 +49,7 @@ class Proposals extends DolibarrApi */ public function __construct() { - global $db, $conf; + global $db; $this->db = $db; $this->propal = new Propal($this->db); } @@ -59,9 +59,9 @@ class Proposals extends DolibarrApi * * Return an array with commercial proposal informations * - * @param int $id ID of commercial proposal - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $id ID of commercial proposal + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @throws RestException */ @@ -76,8 +76,8 @@ class Proposals extends DolibarrApi * Return an array with proposal informations * * @param string $ref Ref of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @url GET ref/{ref} * @@ -93,9 +93,9 @@ class Proposals extends DolibarrApi * * Return an array with proposal informations * - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @url GET ref_ext/{ref_ext} * @@ -111,11 +111,11 @@ class Proposals extends DolibarrApi * * Return an array with proposal informations * - * @param int $id ID of order - * @param string $ref Ref of object - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $id ID of order + * @param string $ref Ref of object + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @throws RestException */ @@ -289,7 +289,7 @@ class Proposals extends DolibarrApi * * @url GET {id}/lines * - * @return int + * @return array */ public function getLines($id, $sqlfilters = '') { @@ -461,7 +461,7 @@ class Proposals extends DolibarrApi } if (empty($errors)) { $this->db->commit(); - return count($request_data); + return $updateRes; } else { $this->db->rollback(); throw new RestException(400, implode(", ", $errors)); @@ -471,13 +471,12 @@ class Proposals extends DolibarrApi /** * Update a line of given commercial proposal * - * @param int $id Id of commercial proposal to update - * @param int $lineid Id of line to update - * @param array $request_data Commercial proposal line data + * @param int $id Id of commercial proposal to update + * @param int $lineid Id of line to update + * @param array $request_data Commercial proposal line data + * @return Object|false Object with cleaned properties * * @url PUT {id}/lines/{lineid} - * - * @return object */ public function putLine($id, $lineid, $request_data = null) { @@ -496,8 +495,12 @@ class Proposals extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); - $request_data->label = sanitizeVal($request_data->label); + if (isset($request_data->desc)) { + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + } + if (isset($request_data->label)) { + $request_data->label = sanitizeVal($request_data->label); + } $propalline = new PropaleLigne($this->db); $result = $propalline->fetch($lineid); @@ -544,13 +547,12 @@ class Proposals extends DolibarrApi * Delete a line of given commercial proposal * * - * @param int $id Id of commercial proposal to update - * @param int $lineid Id of line to delete + * @param int $id Id of commercial proposal to update + * @param int $lineid Id of line to delete + * @return Object|false Object with cleaned properties * * @url DELETE {id}/lines/{lineid} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -569,9 +571,7 @@ class Proposals extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - // TODO Check the lineid $lineid is a line of ojbect - - $updateRes = $this->propal->deleteline($lineid); + $updateRes = $this->propal->deleteline($lineid, $id); if ($updateRes > 0) { return $this->get($id); } else { @@ -585,11 +585,10 @@ class Proposals extends DolibarrApi * @param int $id Id of commercial proposal to update * @param int $contactid Id of contact to add * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return array * * @url POST {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -619,20 +618,24 @@ class Proposals extends DolibarrApi throw new RestException(500, 'Error when added the contact'); } - return $this->propal; + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Contact linked to the proposal' + ) + ); } /** * Delete a contact type of given commercial proposal * - * @param int $id Id of commercial proposal to update - * @param int $contactid Row key of the contact in the array contact_ids. - * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER). + * @param int $id Id of commercial proposal to update + * @param int $contactid Row key of the contact in the array contact_ids. + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER). + * @return Object Object with cleaned properties * * @url DELETE {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 * @throws RestException 500 System error @@ -671,10 +674,9 @@ class Proposals extends DolibarrApi /** * Update commercial proposal general fields (won't touch lines of commercial proposal) * - * @param int $id Id of commercial proposal to update - * @param array $request_data Datas - * - * @return int + * @param int $id Id of commercial proposal to update + * @param array $request_data Datas + * @return Object Object with cleaned properties */ public function put($id, $request_data = null) { @@ -718,7 +720,6 @@ class Proposals extends DolibarrApi * Delete commercial proposal * * @param int $id Commercial proposal ID - * * @return array */ public function delete($id) @@ -751,10 +752,9 @@ class Proposals extends DolibarrApi * Set a proposal to draft * * @param int $id Order ID + * @return Object Object with cleaned properties * * @url POST {id}/settodraft - * - * @return array */ public function settodraft($id) { @@ -803,6 +803,7 @@ class Proposals extends DolibarrApi * * @param int $id Commercial proposal ID * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return Object Object with cleaned properties * * @url POST {id}/validate * @@ -810,8 +811,6 @@ class Proposals extends DolibarrApi * @throws RestException 401 * @throws RestException 404 * @throws RestException 500 System error - * - * @return array */ public function validate($id, $notrigger = 0) { @@ -856,10 +855,9 @@ class Proposals extends DolibarrApi * @param int $status Must be 2 (accepted) or 3 (refused) {@min 2}{@max 3} * @param string $note_private Add this mention at end of private note * @param int $notrigger Disabled triggers + * @return Object Object with cleaned properties * * @url POST {id}/close - * - * @return array */ public function close($id, $status, $note_private = '', $notrigger = 0) { @@ -901,10 +899,9 @@ class Proposals extends DolibarrApi * Set a commercial proposal billed. Could be also called setbilled * * @param int $id Commercial proposal ID + * @return Object Object with cleaned properties * * @url POST {id}/setinvoiced - * - * @return array */ public function setinvoiced($id) { @@ -945,6 +942,7 @@ class Proposals extends DolibarrApi * * @param array $data Array with data to verify * @return array + * * @throws RestException */ private function _validate($data) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 73e73fbe2f9..2b429d0e8d1 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -7,7 +7,7 @@ * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2008 Raphael Bertrand * Copyright (C) 2010-2020 Juanjo Menent - * Copyright (C) 2010-2017 Philippe Grand + * Copyright (C) 2010-2022 Philippe Grand * Copyright (C) 2012-2014 Christophe Battarel * Copyright (C) 2012 Cedric Salvador * Copyright (C) 2013 Florian Henry @@ -53,6 +53,11 @@ class Propal extends CommonObject { use CommonIncoterm; + /** + * @var string code + */ + public $code = ""; + /** * @var string ID to identify managed object */ @@ -297,7 +302,7 @@ class Propal extends CommonObject 'ref_client' =>array('type'=>'varchar(255)', 'label'=>'RefCustomer', 'enabled'=>1, 'visible'=>-1, 'position'=>22), 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'RefExt', 'enabled'=>1, 'visible'=>0, 'position'=>40), 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'position'=>23), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>'$conf->projet->enabled', 'visible'=>-1, 'position'=>24), + 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>"isModEnabled('project')", 'visible'=>-1, 'position'=>24), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>25), 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>55), 'datep' =>array('type'=>'date', 'label'=>'Date', 'enabled'=>1, 'visible'=>-1, 'position'=>60), @@ -322,8 +327,8 @@ class Propal extends CommonObject 'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'PaymentTerm', 'enabled'=>1, 'visible'=>-1, 'position'=>160), 'deposit_percent' =>array('type'=>'varchar(63)', 'label'=>'DepositPercent', 'enabled'=>1, 'visible'=>-1, 'position'=>161), 'fk_mode_reglement' =>array('type'=>'integer', 'label'=>'PaymentMode', 'enabled'=>1, 'visible'=>-1, 'position'=>165), - 'note_private' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>170), - 'note_public' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>175), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>170), + 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>175), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'PDFTemplate', 'enabled'=>1, 'visible'=>0, 'position'=>180), 'date_livraison' =>array('type'=>'date', 'label'=>'DateDeliveryPlanned', 'enabled'=>1, 'visible'=>-1, 'position'=>185), 'fk_shipping_method' =>array('type'=>'integer', 'label'=>'ShippingMethod', 'enabled'=>1, 'visible'=>-1, 'position'=>190), @@ -335,11 +340,11 @@ class Propal extends CommonObject 'fk_incoterms' =>array('type'=>'integer', 'label'=>'IncotermCode', 'enabled'=>'$conf->incoterm->enabled', 'visible'=>-1, 'position'=>220), 'location_incoterms' =>array('type'=>'varchar(255)', 'label'=>'IncotermLabel', 'enabled'=>'$conf->incoterm->enabled', 'visible'=>-1, 'position'=>225), 'fk_multicurrency' =>array('type'=>'integer', 'label'=>'MulticurrencyID', 'enabled'=>1, 'visible'=>-1, 'position'=>230), - 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'MulticurrencyCurrency', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>235), - 'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyRate', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>240, 'isameasure'=>1), - 'multicurrency_total_ht' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountHT', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>245, 'isameasure'=>1), - 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>250, 'isameasure'=>1), - 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>255, 'isameasure'=>1), + 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'MulticurrencyCurrency', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>235), + 'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyRate', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>240, 'isameasure'=>1), + 'multicurrency_total_ht' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountHT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>245, 'isameasure'=>1), + 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>250, 'isameasure'=>1), + 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>255, 'isameasure'=>1), 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>1, 'visible'=>-1, 'position'=>260), 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Status', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>500), 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>900), @@ -384,7 +389,7 @@ class Propal extends CommonObject $this->socid = $socid; $this->id = $propalid; - $this->duree_validite = ((int) $conf->global->PROPALE_VALIDITY_DURATION); + $this->duree_validite = getDolGlobalInt('PROPALE_VALIDITY_DURATION', 0); } @@ -449,6 +454,8 @@ class Propal extends CommonObject $this->lines[] = $line; } + + return 1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -932,9 +939,6 @@ class Propal extends CommonObject $this->line->date_start = $date_start; $this->line->date_end = $date_end; - // TODO deprecated - $this->line->price = $price; - if (is_array($array_options) && count($array_options) > 0) { // We replace values in this->line->array_options only for entries defined into $array_options foreach ($array_options as $key => $value) { @@ -979,9 +983,10 @@ class Propal extends CommonObject * Delete detail line * * @param int $lineid Id of line to delete + * @param int $id Id of object (for a check) * @return int >0 if OK, <0 if KO */ - public function deleteline($lineid) + public function deleteline($lineid, $id = 0) { global $user; @@ -990,9 +995,20 @@ class Propal extends CommonObject $line = new PropaleLigne($this->db); - // For triggers + $line->context = $this->context; + + // Load data $line->fetch($lineid); + if ($id > 0 && $line->fk_propal != $id) { + $this->error = 'ErrorLineIDDoesNotMatchWithObjectID'; + return -1; + } + + // Memorize previous line for triggers + $staticline = clone $line; + $line->oldline = $staticline; + if ($line->delete($user) > 0) { $this->update_price(1); @@ -1105,6 +1121,7 @@ class Propal extends CommonObject $sql .= ", fk_mode_reglement"; $sql .= ", fk_account"; $sql .= ", ref_client"; + $sql .= ", ref_ext"; $sql .= ", date_livraison"; $sql .= ", fk_shipping_method"; $sql .= ", fk_warehouse"; @@ -1135,10 +1152,11 @@ class Propal extends CommonObject $sql .= ", '".$this->db->escape($this->model_pdf)."'"; $sql .= ", ".($this->fin_validite != '' ? "'".$this->db->idate($this->fin_validite)."'" : "NULL"); $sql .= ", ".($this->cond_reglement_id > 0 ? ((int) $this->cond_reglement_id) : 'NULL'); - $sql .= ", ".(! empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : 'NULL'); + $sql .= ", ".(!empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : 'NULL'); $sql .= ", ".($this->mode_reglement_id > 0 ? ((int) $this->mode_reglement_id) : 'NULL'); $sql .= ", ".($this->fk_account > 0 ? ((int) $this->fk_account) : 'NULL'); $sql .= ", '".$this->db->escape($this->ref_client)."'"; + $sql .= ", '".$this->db->escape($this->ref_ext)."'"; $sql .= ", ".(empty($delivery_date) ? "NULL" : "'".$this->db->idate($delivery_date)."'"); $sql .= ", ".($this->shipping_method_id > 0 ? $this->shipping_method_id : 'NULL'); $sql .= ", ".($this->warehouse_id > 0 ? $this->warehouse_id : 'NULL'); @@ -1265,7 +1283,7 @@ class Propal extends CommonObject break; } // Defined the new fk_parent_line - if ($result > 0) { + if ($result > 0 && $line->product_type == 9) { $fk_parent_line = $result; } } @@ -1367,7 +1385,7 @@ class Propal extends CommonObject $object->mode_reglement_id = (!empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); $object->fk_delivery_address = ''; - /*if (!empty($conf->projet->enabled)) + /*if (isModEnabled('project')) { $project = new Project($db); if ($this->fk_project > 0 && $project->fetch($this->fk_project)) { @@ -1415,7 +1433,7 @@ class Propal extends CommonObject } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { $prodcustprice = new Productcustomerprice($this->db); $filter = array('t.fk_product' => $prod->id, 't.fk_soc' => $objsoc->id); - $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); + $result = $prodcustprice->fetchAll('', '', 0, 0, $filter); if ($result) { // If there is some prices specific to the customer if (count($prodcustprice->lines) > 0) { @@ -1444,7 +1462,7 @@ class Propal extends CommonObject // Clear fields $object->user_author = $user->id; - $object->user_valid = ''; + $object->user_valid = 0; $object->date = $now; $object->datep = $now; // deprecated $object->fin_validite = $object->date + ($object->duree_validite * 24 * 3600); @@ -1507,12 +1525,13 @@ class Propal extends CommonObject /** * Load a proposal from database. Get also lines. * - * @param int $rowid id of object to load - * @param string $ref Ref of proposal - * @param string $ref_ext Ref ext of proposal - * @return int >0 if OK, <0 if KO + * @param int $rowid Id of object to load + * @param string $ref Ref of proposal + * @param string $ref_ext Ref ext of proposal + * @param int $forceentity Entity id to force when searching on ref or ref_ext + * @return int >0 if OK, <0 if KO */ - public function fetch($rowid, $ref = '', $ref_ext = '') + public function fetch($rowid, $ref = '', $ref_ext = '', $forceentity = 0) { $sql = "SELECT p.rowid, p.ref, p.entity, p.remise, p.remise_percent, p.remise_absolue, p.fk_soc"; $sql .= ", p.total_ttc, p.total_tva, p.localtax1, p.localtax2, p.total_ht"; @@ -1522,7 +1541,7 @@ class Propal extends CommonObject $sql .= ", p.datep as dp"; $sql .= ", p.fin_validite as dfv"; $sql .= ", p.date_livraison as delivery_date"; - $sql .= ", p.model_pdf, p.last_main_doc, p.ref_client, p.extraparams"; + $sql .= ", p.model_pdf, p.last_main_doc, p.ref_client, ref_ext, p.extraparams"; $sql .= ", p.note_private, p.note_public"; $sql .= ", p.fk_projet as fk_project, p.fk_statut"; $sql .= ", p.fk_user_author, p.fk_user_valid, p.fk_user_cloture"; @@ -1551,10 +1570,15 @@ class Propal extends CommonObject $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON p.fk_input_reason = dr.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON p.fk_incoterms = i.rowid'; - if ($ref) { - $sql .= " WHERE p.entity IN (".getEntity('propal').")"; // Dont't use entity if you use rowid + if (!empty($ref)) { + if (!empty($forceentity)) { + $sql .= " WHERE p.entity = ".(int) $forceentity; // Check only the current entity because we may have the same reference in several entities + } else { + $sql .= " WHERE p.entity IN (".getEntity('propal').")"; + } $sql .= " AND p.ref='".$this->db->escape($ref)."'"; } else { + // Dont't use entity if you use rowid $sql .= " WHERE p.rowid = ".((int) $rowid); } @@ -1569,6 +1593,7 @@ class Propal extends CommonObject $this->ref = $obj->ref; $this->ref_client = $obj->ref_client; + $this->ref_ext = $obj->ref_ext; $this->remise = $obj->remise; $this->remise_percent = $obj->remise_percent; $this->remise_absolue = $obj->remise_absolue; @@ -1735,13 +1760,13 @@ class Propal extends CommonObject $sql .= " fk_user_valid=".(isset($this->user_valid) ? $this->user_valid : "null").","; $sql .= " fk_projet=".(isset($this->fk_project) ? $this->fk_project : "null").","; $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? $this->cond_reglement_id : "null").","; - $sql .= " deposit_percent=".(! empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : "null").","; + $sql .= " deposit_percent=".(!empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : "null").","; $sql .= " fk_mode_reglement=".(isset($this->mode_reglement_id) ? $this->mode_reglement_id : "null").","; $sql .= " fk_input_reason=".(isset($this->demand_reason_id) ? $this->demand_reason_id : "null").","; $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -1898,7 +1923,7 @@ class Propal extends CommonObject $line->fetch_optionals(); // multilangs - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($objp->fk_product) && !empty($loadalsotranslation)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($objp->fk_product) && !empty($loadalsotranslation)) { $tmpproduct = new Product($this->db); $tmpproduct->fetch($objp->fk_product); $tmpproduct->getMultiLangs(); @@ -2097,6 +2122,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2104,11 +2131,11 @@ class Propal extends CommonObject * Define end validity date * * @param User $user Object user that modify - * @param int $date_fin_validite End of validity date + * @param int $date_end_validity End of validity date * @param int $notrigger 1=Does not execute triggers, 0= execute triggers * @return int <0 if KO, >0 if OK */ - public function set_echeance($user, $date_fin_validite, $notrigger = 0) + public function set_echeance($user, $date_end_validity, $notrigger = 0) { // phpcs:enable if (!empty($user->rights->propal->creer)) { @@ -2116,8 +2143,8 @@ class Propal extends CommonObject $this->db->begin(); - $sql = "UPDATE ".MAIN_DB_PREFIX."propal SET fin_validite = ".($date_fin_validite != '' ? "'".$this->db->idate($date_fin_validite)."'" : 'null'); - $sql .= " WHERE rowid = ".((int) $this->id)." AND fk_statut = ".self::STATUS_DRAFT; + $sql = "UPDATE ".MAIN_DB_PREFIX."propal SET fin_validite = ".($date_end_validity != '' ? "'".$this->db->idate($date_end_validity)."'" : 'null'); + $sql .= " WHERE rowid = ".((int) $this->id)." AND fk_statut = ".((int) self::STATUS_DRAFT); dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); @@ -2129,7 +2156,7 @@ class Propal extends CommonObject if (!$error) { $this->oldcopy = clone $this; - $this->fin_validite = $date_fin_validite; + $this->fin_validite = $date_end_validity; } if (!$notrigger && empty($error)) { @@ -2153,6 +2180,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2224,6 +2253,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2406,9 +2437,9 @@ class Propal extends CommonObject $this->db->rollback(); return -1 * $error; } - } else { - return -1; } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2469,6 +2500,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } @@ -2531,6 +2564,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } @@ -2614,18 +2649,32 @@ class Propal extends CommonObject $newprivatenote = dol_concatdesc($this->note_private, $note); + if (empty($conf->global->PROPALE_KEEP_OLD_SIGNATURE_INFO)) { + $date_signature = $now; + $fk_user_signature = $user->id; + } else { + $this->info($this->id); + if (!isset($this->date_signature) || $this->date_signature == '') { + $date_signature = $now; + $fk_user_signature = $user->id; + } else { + $date_signature = $this->date_signature; + $fk_user_signature = $this->user_signature->id; + } + } + $sql = "UPDATE ".MAIN_DB_PREFIX."propal"; - $sql .= " SET fk_statut = ".((int) $status).", note_private = '".$this->db->escape($newprivatenote)."', date_signature='".$this->db->idate($now)."', fk_user_signature=".$user->id; + $sql .= " SET fk_statut = ".((int) $status).", note_private = '".$this->db->escape($newprivatenote)."', date_signature='".$this->db->idate($date_signature)."', fk_user_signature=".$fk_user_signature; $sql .= " WHERE rowid = ".((int) $this->id); $resql = $this->db->query($sql); if ($resql) { // Status self::STATUS_REFUSED by default $modelpdf = !empty($conf->global->PROPALE_ADDON_PDF_ODT_CLOSED) ? $conf->global->PROPALE_ADDON_PDF_ODT_CLOSED : $this->model_pdf; - $trigger_name = 'PROPAL_CLOSE_REFUSED'; + $trigger_name = 'PROPAL_CLOSE_REFUSED'; // used later in call_trigger() if ($status == self::STATUS_SIGNED) { // Status self::STATUS_SIGNED - $trigger_name = 'PROPAL_CLOSE_SIGNED'; + $trigger_name = 'PROPAL_CLOSE_SIGNED'; // used later in call_trigger() $modelpdf = !empty($conf->global->PROPALE_ADDON_PDF_ODT_TOBILL) ? $conf->global->PROPALE_ADDON_PDF_ODT_TOBILL : $this->model_pdf; // The connected company is classified as a client @@ -2643,7 +2692,7 @@ class Propal extends CommonObject if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $this->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -2662,7 +2711,7 @@ class Propal extends CommonObject $this->oldcopy= clone $this; $this->statut = $status; $this->status = $status; - $this->date_signature = $now; + $this->date_signature = $date_signature; $this->note_private = $newprivatenote; } @@ -2736,7 +2785,7 @@ class Propal extends CommonObject if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $this->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -2803,6 +2852,7 @@ class Propal extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."propal"; $sql .= " SET fk_statut = ".self::STATUS_DRAFT; + $sql .= ", online_sign_ip = NULL , online_sign_name = NULL"; $sql .= " WHERE rowid = ".((int) $this->id); $resql = $this->db->query($sql); @@ -3258,7 +3308,7 @@ class Propal extends CommonObject public function info($id) { $sql = "SELECT c.rowid, "; - $sql .= " c.datec, c.date_valid as datev, c.date_signature, c.date_cloture as dateo,"; + $sql .= " c.datec, c.date_valid as datev, c.date_signature, c.date_cloture,"; $sql .= " c.fk_user_author, c.fk_user_valid, c.fk_user_signature, c.fk_user_cloture"; $sql .= " FROM ".MAIN_DB_PREFIX."propal as c"; $sql .= " WHERE c.rowid = ".((int) $id); @@ -3274,7 +3324,7 @@ class Propal extends CommonObject $this->date_creation = $this->db->jdate($obj->datec); $this->date_validation = $this->db->jdate($obj->datev); $this->date_signature = $this->db->jdate($obj->date_signature); - $this->date_cloture = $this->db->jdate($obj->dateo); + $this->date_cloture = $this->db->jdate($obj->date_cloture); $cuser = new User($this->db); $cuser->fetch($obj->fk_user_author); @@ -3327,7 +3377,7 @@ class Propal extends CommonObject public function LibStatut($status, $mode = 1) { // phpcs:enable - global $conf; + global $conf, $hookmanager; // Init/load array of translation of status if (empty($this->labelStatus) || empty($this->labelStatusShort)) { @@ -3358,6 +3408,14 @@ class Propal extends CommonObject $statusType = 'status6'; } + + $parameters = array('status' => $status, 'mode' => $mode); + $reshook = $hookmanager->executeHooks('LibStatut', $parameters, $this); // Note that $action and $object may have been modified by hook + + if ($reshook > 0) { + return $hookmanager->resPrint; + } + return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); } @@ -3673,6 +3731,9 @@ class Propal extends CommonObject if (!empty($this->total_ttc)) { $label .= '
    '.$langs->trans('AmountTTC').': '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency); } + if (!empty($this->date)) { + $label .= '
    '.$langs->trans('Date').': '.dol_print_date($this->date, 'day'); + } if (!empty($this->delivery_date)) { $label .= '
    '.$langs->trans('DeliveryDate').': '.dol_print_date($this->delivery_date, 'dayhour'); } @@ -3795,7 +3856,7 @@ class Propal extends CommonObject * @param int $hidedetails Hide details of lines * @param int $hidedesc Hide description * @param int $hideref Hide ref - * @param null|array $moreparams Array to provide more information + * @param null|array $moreparams Array to provide more information * @return int 0 if KO, 1 if OK */ public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null) @@ -3823,18 +3884,18 @@ class Propal extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'propal' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -4407,17 +4468,17 @@ class PropaleLigne extends CommonObjectLine $sql .= ", localtax1_type='".$this->db->escape($this->localtax1_type)."'"; $sql .= ", localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= ", qty='".price2num($this->qty)."'"; - $sql .= ", subprice=".price2num($this->subprice).""; - $sql .= ", remise_percent=".price2num($this->remise_percent).""; - $sql .= ", price=".price2num($this->price).""; // TODO A virer - $sql .= ", remise=".price2num($this->remise).""; // TODO A virer + $sql .= ", subprice=".price2num($this->subprice); + $sql .= ", remise_percent=".price2num($this->remise_percent); + $sql .= ", price=".(float) price2num($this->price); // TODO A virer + $sql .= ", remise=".(float) price2num($this->remise); // TODO A virer $sql .= ", info_bits='".$this->db->escape($this->info_bits)."'"; if (empty($this->skip_update_total)) { - $sql .= ", total_ht=".price2num($this->total_ht).""; - $sql .= ", total_tva=".price2num($this->total_tva).""; - $sql .= ", total_ttc=".price2num($this->total_ttc).""; - $sql .= ", total_localtax1=".price2num($this->total_localtax1).""; - $sql .= ", total_localtax2=".price2num($this->total_localtax2).""; + $sql .= ", total_ht=".price2num($this->total_ht); + $sql .= ", total_tva=".price2num($this->total_tva); + $sql .= ", total_ttc=".price2num($this->total_ttc); + $sql .= ", total_localtax1=".price2num($this->total_localtax1); + $sql .= ", total_localtax2=".price2num($this->total_localtax2); } $sql .= ", fk_product_fournisseur_price=".(!empty($this->fk_fournprice) ? "'".$this->db->escape($this->fk_fournprice)."'" : "null"); $sql .= ", buy_price_ht=".price2num($this->pa_ht); @@ -4433,10 +4494,10 @@ class PropaleLigne extends CommonObjectLine $sql .= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit); // Multicurrency - $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); @@ -4483,9 +4544,9 @@ class PropaleLigne extends CommonObjectLine // Mise a jour ligne en base $sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET"; - $sql .= " total_ht=".price2num($this->total_ht, 'MT').""; - $sql .= ",total_tva=".price2num($this->total_tva, 'MT').""; - $sql .= ",total_ttc=".price2num($this->total_ttc, 'MT').""; + $sql .= " total_ht=".price2num($this->total_ht, 'MT'); + $sql .= ",total_tva=".price2num($this->total_tva, 'MT'); + $sql .= ",total_ttc=".price2num($this->total_ttc, 'MT'); $sql .= " WHERE rowid = ".((int) $this->rowid); dol_syslog("PropaleLigne::update_total", LOG_DEBUG); diff --git a/htdocs/comm/propal/class/propalestats.class.php b/htdocs/comm/propal/class/propalestats.class.php index 2b8c5d9047d..ccc514553f8 100644 --- a/htdocs/comm/propal/class/propalestats.class.php +++ b/htdocs/comm/propal/class/propalestats.class.php @@ -93,9 +93,6 @@ class PropaleStats extends Stats } //$this->where.= " AND p.fk_soc = s.rowid AND p.entity = ".$conf->entity; $this->where .= ($this->where ? ' AND ' : '')."p.entity IN (".getEntity('propal').")"; - if (empty($user->rights->societe->client->voir) && !$this->socid) { - $this->where .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); - } if ($this->socid) { $this->where .= " AND p.fk_soc = ".((int) $this->socid); } @@ -109,9 +106,7 @@ class PropaleStats extends Stats } if ($categid) { - $this->join .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_societe as cs ON cs.fk_soc = p.fk_soc'; - $this->join .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as c ON c.rowid = cs.fk_categorie'; - $this->where .= ' AND c.rowid = '.((int) $categid); + $this->where .= ' AND EXISTS (SELECT rowid FROM '.MAIN_DB_PREFIX.'categorie_societe as cats WHERE cats.fk_soc = p.fk_soc AND cats.fk_categorie = '.((int) $categid).')'; } } @@ -130,7 +125,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, COUNT(*) as nb"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$user->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -155,7 +150,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -172,14 +167,14 @@ class PropaleStats extends Stats * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month * @return array Array with amount by month */ - public function getAmountByMonth($year, $format) + public function getAmountByMonth($year, $format = 0) { global $user; $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, SUM(p.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -204,7 +199,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, AVG(p.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -227,7 +222,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%Y') as year, COUNT(*) as nb, SUM(".$this->field.") as total, AVG(".$this->field.") as avg"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -253,7 +248,7 @@ class PropaleStats extends Stats $sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg"; $sql .= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product"; if (empty($user->rights->societe->client->voir) && !$user->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; diff --git a/htdocs/comm/propal/contact.php b/htdocs/comm/propal/contact.php index 989dcfe7098..42f3f34f8d4 100644 --- a/htdocs/comm/propal/contact.php +++ b/htdocs/comm/propal/contact.php @@ -2,7 +2,7 @@ /* Copyright (C) 2005 Patrick Rouillon * Copyright (C) 2005-2016 Destailleur Laurent * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2011-2015 Philippe Grand + * Copyright (C) 2011-2022 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,6 +24,7 @@ * \brief Tab to manage contacts/adresses of proposal */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -68,12 +69,14 @@ if (!empty($user->socid)) { } restrictedArea($user, 'propal', $object->id); +$usercancreate = $user->hasRight("propal", "creer"); + /* * Add a new contact */ -if ($action == 'addcontact' && $user->rights->propale->creer) { +if ($action == 'addcontact' && $user->rights->propal->creer) { if ($object->id > 0) { $contactid = (GETPOST('userid', 'int') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int')); $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type')); @@ -91,12 +94,12 @@ if ($action == 'addcontact' && $user->rights->propale->creer) { setEventMessages($object->error, $object->errors, 'errors'); } } -} elseif ($action == 'swapstatut' && $user->rights->propale->creer) { +} elseif ($action == 'swapstatut' && $user->rights->propal->creer) { // Toggle the status of a contact if ($object->id > 0) { $result = $object->swapContactStatus(GETPOST('ligne', 'int')); } -} elseif ($action == 'deletecontact' && $user->rights->propale->creer) { +} elseif ($action == 'deletecontact' && $user->rights->propal->creer) { // Deletes a contact $result = $object->delete_contact($lineid); @@ -112,8 +115,9 @@ if ($action == 'addcontact' && $user->rights->propale->creer) { /* * View */ -$title = $langs->trans('Proposal')." - ".$langs->trans('ContactsAddresses'); +$title = $object->ref." - ".$langs->trans('ContactsAddresses'); $help_url = "EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos"; + llxHeader('', $title, $help_url); $form = new Form($db); @@ -135,37 +139,25 @@ if ($object->id > 0) { $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'customer'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'customer'); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->propal->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ''; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/comm/propal/document.php b/htdocs/comm/propal/document.php index 804fedd623b..f1d1d7ef644 100644 --- a/htdocs/comm/propal/document.php +++ b/htdocs/comm/propal/document.php @@ -26,13 +26,14 @@ * \brief Management page of documents attached to a business proposal */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -80,7 +81,7 @@ if (!$sortfield) { $object = new Propal($db); $object->fetch($id, $ref); -$permissiontoadd = $user->rights->propale->creer; +$permissiontoadd = $user->rights->propal->creer; // Security check if (!empty($user->socid)) { @@ -89,6 +90,8 @@ if (!empty($user->socid)) { } restrictedArea($user, 'propal', $object->id); +$usercancreate = $user->hasRight("propal", "creer"); + /* * Actions @@ -104,7 +107,7 @@ if ($object->id > 0) { /* * View */ -$title = $langs->trans('Proposal')." - ".$langs->trans('Documents'); +$title = $object->ref." - ".$langs->trans('Documents'); $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'; llxHeader('', $title, $help_url); @@ -134,37 +137,25 @@ if ($object->id > 0) { $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'customer'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'customer'); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->propal->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ''; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/comm/propal/index.php b/htdocs/comm/propal/index.php index 9f020bc1613..4a6d9ec63ed 100644 --- a/htdocs/comm/propal/index.php +++ b/htdocs/comm/propal/index.php @@ -25,6 +25,7 @@ * \brief Home page of proposal area */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; @@ -76,9 +77,9 @@ if ($tmp) { /* * Draft proposals */ -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { $sql = "SELECT p.rowid, p.ref, p.ref_client, p.total_ht, p.total_tva, p.total_ttc"; - $sql .= ", s.rowid as socid, s.nom as name, s.client, s.canvas, s.code_client, s.email, s.entity, s.code_compta"; + $sql .= ", s.rowid as socid, s.nom as name, s.client, s.canvas, s.code_client, s.code_fournisseur, s.email, s.entity, s.code_compta"; $sql .= " FROM ".MAIN_DB_PREFIX."propal as p"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; if (empty($user->rights->societe->client->voir) && !$socid) { @@ -226,7 +227,7 @@ if ($resql) { /* * Open (validated) proposals */ -if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { +if (isModEnabled("propal") && $user->rights->propal->lire) { $sql = "SELECT s.nom as socname, s.rowid as socid, s.canvas, s.client, s.email, s.code_compta"; $sql .= ", p.rowid as propalid, p.entity, p.total_ttc, p.total_ht, p.ref, p.fk_statut, p.datep as dp, p.fin_validite as dfv"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; @@ -311,7 +312,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { */ /* -if (! empty($conf->propal->enabled)) +if (isModEnabled('propal')) { $sql = "SELECT c.rowid, c.ref, c.fk_statut, s.nom as name, s.rowid as socid"; $sql.=" FROM ".MAIN_DB_PREFIX."propal as c"; @@ -386,7 +387,7 @@ if (! empty($conf->propal->enabled)) */ /* -if (! empty($conf->propal->enabled)) +if (isModEnabled('propal')) { $sql = "SELECT c.rowid, c.ref, c.fk_statut, c.facture, s.nom as name, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."commande as c"; diff --git a/htdocs/comm/propal/info.php b/htdocs/comm/propal/info.php index dc43af9ceff..986601a91bc 100644 --- a/htdocs/comm/propal/info.php +++ b/htdocs/comm/propal/info.php @@ -24,11 +24,12 @@ * \brief Page d'affichage des infos d'une proposition commerciale */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -52,6 +53,8 @@ if (!empty($user->socid)) { } restrictedArea($user, 'propal', $object->id); +$usercancreate = $user->hasRight("propal", "creer"); + /* * View @@ -59,7 +62,7 @@ restrictedArea($user, 'propal', $object->id); $form = new Form($db); -$title = $langs->trans('Proposal')." - ".$langs->trans('Info'); +$title = $object->ref." - ".$langs->trans('Info'); $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'; llxHeader('', $title, $help_url); @@ -81,37 +84,25 @@ $morehtmlref = '
    '; $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty -$morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); +$morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->propal->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ''; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 103ef815e48..0acc2ae4bd9 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -6,7 +6,7 @@ * Copyright (C) 2005-2013 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2010-2011 Juanjo Menent - * Copyright (C) 2010-2011 Philippe Grand + * Copyright (C) 2010-2022 Philippe Grand * Copyright (C) 2012 Christophe Battarel * Copyright (C) 2013 Cédric Salvador * Copyright (C) 2015 Jean-François Ferry @@ -16,6 +16,7 @@ * Copyright (C) 2019-2021 Alexandre Spangaro * Copyright (C) 2021 Anthony Berton * Copyright (C) 2021 Frédéric France + * Copyright (C) 2022 Josep Lluís Amador * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,22 +38,27 @@ * \brief Page of commercial proposals card and list */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formpropal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php'; } require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +if (isModEnabled('categorie')) { + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcategory.class.php'; +} // Load translation files required by the page $langs->loadLangs(array('companies', 'propal', 'compta', 'bills', 'orders', 'products', 'deliveries', 'categories')); -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { $langs->loadLangs(array('sendings')); } @@ -100,7 +106,8 @@ $search_date_endyear = GETPOST('search_date_endyear', 'int'); $search_date_start = dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear); // Use tzserver $search_date_end = dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear); $search_date_end_startday = GETPOST('search_date_end_startday', 'int'); -$search_date_end_startmonth = GETPOST('search_date_end_startmonth', 'int'); +$search_date_end_startmonth = GETPOST('se$sql .= $db->plimit($limit + 1, $offset); +arch_date_end_startmonth', 'int'); $search_date_end_startyear = GETPOST('search_date_end_startyear', 'int'); $search_date_end_endday = GETPOST('search_date_end_endday', 'int'); $search_date_end_endmonth = GETPOST('search_date_end_endmonth', 'int'); @@ -203,13 +210,13 @@ if (empty($user->socid)) { $checkedtypetiers = 0; $arrayfields = array( 'p.ref'=>array('label'=>"Ref", 'checked'=>1), - 'p.ref_client'=>array('label'=>"RefCustomer", 'checked'=>1), - 'pr.ref'=>array('label'=>"ProjectRef", 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled) ? 0 : 1)), - 'pr.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(empty($conf->projet->enabled) ? 0 : 1)), + 'p.ref_client'=>array('label'=>"RefCustomer", 'checked'=>-1), + 'pr.ref'=>array('label'=>"ProjectRef", 'checked'=>1, 'enabled'=>(isModEnabled('project') ? 1 : 0)), + 'pr.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(isModEnabled('project') ? 1 : 0)), 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1), 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>-1), 's.town'=>array('label'=>"Town", 'checked'=>-1), - 's.zip'=>array('label'=>"Zip", 'checked'=>1), + 's.zip'=>array('label'=>"Zip", 'checked'=>-1), 'state.nom'=>array('label'=>"StateShort", 'checked'=>0), 'country.code_iso'=>array('label'=>"Country", 'checked'=>0), 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers), @@ -218,7 +225,7 @@ $arrayfields = array( 'p.date_livraison'=>array('label'=>"DeliveryDate", 'checked'=>0), 'p.date_signature'=>array('label'=>"DateSigning", 'checked'=>0), 'ava.rowid'=>array('label'=>"AvailabilityPeriod", 'checked'=>0), - 'p.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>0, 'enabled'=>!empty($conf->expedition->enabled)), + 'p.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>0, 'enabled'=>isModEnabled("expedition")), 'p.fk_input_reason'=>array('label'=>"Origin", 'checked'=>0, 'enabled'=>1), 'p.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>0), 'p.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>0), @@ -227,27 +234,49 @@ $arrayfields = array( 'p.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0), 'p.total_ht_invoiced'=>array('label'=>"AmountInvoicedHT", 'checked'=>0, 'enabled'=>!empty($conf->global->PROPOSAL_SHOW_INVOICED_AMOUNT)), 'p.total_invoiced'=>array('label'=>"AmountInvoicedTTC", 'checked'=>0, 'enabled'=>!empty($conf->global->PROPOSAL_SHOW_INVOICED_AMOUNT)), - 'p.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'p.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'p.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'p.multicurrency_total_tva'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'p.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'p.multicurrency_total_ht_invoiced'=>array('label'=>'MulticurrencyAmountInvoicedHT', 'checked'=>0, 'enabled'=>!empty($conf->multicurrency->enabled) && !empty($conf->global->PROPOSAL_SHOW_INVOICED_AMOUNT)), - 'p.multicurrency_total_invoiced'=>array('label'=>'MulticurrencyAmountInvoicedTTC', 'checked'=>0, 'enabled'=>!empty($conf->multicurrency->enabled) && !empty($conf->global->PROPOSAL_SHOW_INVOICED_AMOUNT)), + 'p.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'p.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'p.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'p.multicurrency_total_tva'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'p.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'p.multicurrency_total_ht_invoiced'=>array('label'=>'MulticurrencyAmountInvoicedHT', 'checked'=>0, 'enabled'=>isModEnabled("multicurrency") && !empty($conf->global->PROPOSAL_SHOW_INVOICED_AMOUNT)), + 'p.multicurrency_total_invoiced'=>array('label'=>'MulticurrencyAmountInvoicedTTC', 'checked'=>0, 'enabled'=>isModEnabled("multicurrency") && !empty($conf->global->PROPOSAL_SHOW_INVOICED_AMOUNT)), 'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>10), 'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>-1), - 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), - 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), - 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), - 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), + 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous ? 0 : 1)), + 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous ? 0 : 1)), + 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), + 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), 'p.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500), 'p.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), 'p.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>500), - 'p.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'position'=>510, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES))), - 'p.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'position'=>511, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES))), + 'p.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'position'=>510, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PUBLIC_NOTES'))), + 'p.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'position'=>511, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PRIVATE_NOTES'))), 'p.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), ); +// List of fields to search into when doing a "search in all" +/*$fieldstosearchall = array(); +foreach ($object->fields as $key => $val) { + if (!empty($val['searchall'])) { + $fieldstosearchall['t.'.$key] = $val['label']; + } +}*/ +// Definition of array of fields for columns +/*$arrayfields = array(); +foreach ($object->fields as $key => $val) { + // If $val['visible']==0, then we never show the field + if (!empty($val['visible'])) { + $visible = (int) dol_eval($val['visible'], 1); + $arrayfields['t.'.$key] = array( + 'label'=>$val['label'], + 'checked'=>(($visible < 0) ? 0 : 1), + 'enabled'=>(abs($visible) != 3 && dol_eval($val['enabled'], 1)), + 'position'=>$val['position'], + 'help'=> isset($val['help']) ? $val['help'] : '' + ); + } +}*/ // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -277,7 +306,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid'=>$socid); +$parameters = array('socid'=>$socid, 'arrayfields'=>&$arrayfields); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -439,7 +468,7 @@ if ($action == "nosign" && $permissiontoclose) { $error = 0; foreach ($toselect as $checked) { if ($tmpproposal->fetch($checked) > 0) { - if ($tmpproposal->statut == $tmpproposal::STATUS_VALIDATED) { + if ($tmpproposal->statut == $tmpproposal::STATUS_VALIDATED || (!empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE) && $tmpproposal->statut == $tmpproposal::STATUS_DRAFT)) { $tmpproposal->statut = $tmpproposal::STATUS_NOTSIGNED; if ($tmpproposal->closeProposal($user, $tmpproposal::STATUS_NOTSIGNED) > 0) { setEventMessage($tmpproposal->ref." ".$langs->trans('NoSigned'), 'mesgs'); @@ -513,21 +542,25 @@ $formother = new FormOther($db); $formfile = new FormFile($db); $formpropal = new FormPropal($db); $formmargin = null; -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { $formmargin = new FormMargin($db); } $companystatic = new Societe($db); $projectstatic = new Project($db); $formcompany = new FormCompany($db); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + +$title = $langs->trans('ListOfProposals'); $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'; -//llxHeader('',$langs->trans('Proposal'),$help_url); +llxHeader('', $title, $help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0 || $search_user > 0) { +if ($sall || $search_user > 0) { $sql = 'SELECT DISTINCT'; } -$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax , s.address, s.town, s.zip, s.fk_pays, s.client, s.code_client, '; +$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax , s.address, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, '; $sql .= " typent.code as typent_code,"; $sql .= " ava.rowid as availability,"; $sql .= " country.code as country_code,"; @@ -554,9 +587,12 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { } // Add fields from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; $sql = preg_replace('/, $/', '', $sql); + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; @@ -568,17 +604,16 @@ $sql .= ', '.MAIN_DB_PREFIX.'propal as p'; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (p.rowid = ef.fk_object)"; } -if ($sall || $search_product_category > 0) { +if ($sall) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'propaldet as pd ON p.rowid=pd.fk_propal'; } -if ($search_product_category > 0) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; -} $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON p.fk_user_author = u.rowid'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as pr ON pr.rowid = p.fk_projet"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_availability as ava on (ava.rowid = p.fk_availability)"; // We'll need this table joined to the select in order to filter by sale -if ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) { +if ($search_sale == -2) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON (sc.fk_soc = p.fk_soc)"; +} elseif ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } if ($search_user > 0) { @@ -627,11 +662,15 @@ if ($search_project) { if ($search_availability) { $sql .= " AND p.fk_availability IN (".$db->sanitize($db->escape($search_availability)).')'; } -if ($search_societe) { - $sql .= natural_search('s.nom', $search_societe); -} -if ($search_societe_alias) { - $sql .= natural_search('s.name_alias', $search_societe_alias); +if (empty($arrayfields['s.name_alias']['checked']) && $search_societe) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_societe); +} else { + if ($search_societe) { + $sql .= natural_search('s.nom', $search_societe); + } + if ($search_societe_alias) { + $sql .= natural_search('s.name_alias', $search_societe_alias); + } } if ($search_login) { $sql .= natural_search(array("u.login", "u.firstname", "u.lastname"), $search_login); @@ -686,10 +725,6 @@ if ($search_fk_input_reason > 0) { if ($search_fk_mode_reglement > 0) { $sql .= " AND p.fk_mode_reglement = ".((int) $search_fk_mode_reglement); } - -if ($search_product_category > 0) { - $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); -} if ($socid > 0) { $sql .= ' AND s.rowid = '.((int) $socid); } @@ -714,7 +749,9 @@ if ($search_date_delivery_start) { if ($search_date_delivery_end) { $sql .= " AND p.date_livraison <= '".$db->idate($search_date_delivery_end)."'"; } -if ($search_sale > 0) { +if ($search_sale == -2) { + $sql .= " AND sc.fk_user IS NULL"; +} elseif ($search_sale > 0) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); } if ($search_user > 0) { @@ -726,35 +763,75 @@ if ($search_date_signature_start) { if ($search_date_signature_end) { $sql .= " AND p.date_signature <= '".$db->idate($search_date_signature_end)."'"; } +// Search for tag/category ($searchCategoryProductList is an array of ID) +$searchCategoryProductOperator = -1; +$searchCategoryProductList = array($search_product_category); +if (!empty($searchCategoryProductList)) { + $searchCategoryProductSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."propaldet as pd WHERE pd.fk_propal = p.rowid AND pd.fk_product = ck.fk_product)"; + } elseif (intval($searchCategoryProduct) > 0) { + if ($searchCategoryProductOperator == 0) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."propaldet as pd WHERE pd.fk_propal = p.rowid AND pd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProduct); + } + } + } + if ($listofcategoryid) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."propaldet as pd WHERE pd.fk_propal = p.rowid AND pd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProductOperator == 1) { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } + } else { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; // Add HAVING from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); -$sql .= ', p.ref DESC'; - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +$sql .= $db->order($sortfield, $sortorder); +$sql .= ', p.ref DESC'; +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} $resql = $db->query($sql); @@ -786,8 +863,6 @@ if ($resql) { exit; } - llxHeader('', $langs->trans('Proposal'), $help_url); - $param = '&search_status='.urlencode($search_status); if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); @@ -965,7 +1040,7 @@ if ($resql) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; // Add $param from hooks $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $param .= $hookmanager->resPrint; // List of mass actions available @@ -1047,7 +1122,7 @@ if ($resql) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); - $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx', 1); $moreforfilter .= '
    '; } // If the user can view prospects other than his' @@ -1058,22 +1133,21 @@ if ($resql) { $moreforfilter .= '
    '; } // If the user can view products - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + if (isModEnabled('categorie') && $user->hasRight('categorie', 'read') && ($user->rights->produit->lire || $user->rights->service->lire)) { + $searchCategoryProductOperator = -1; include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; - $moreforfilter .= '
    '; $tmptitle = $langs->trans('IncludingProductWithTag'); - $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); - $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, (empty($conf->dol_optimize_smallscreen) ? 'maxwidth300 widthcentpercentminusx' : 'maxwidth250 widthcentpercentminusx'), 1); - $moreforfilter .= '
    '; + $formcategory = new FormCategory($db); + $moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PRODUCT, array($search_product_category), 'maxwidth300', $searchCategoryProductOperator, 0, 0, $tmptitle); } - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + if (isModEnabled('categorie') && $user->rights->categorie->lire) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle, (empty($conf->dol_optimize_smallscreen) ? 'maxwidth300 widthcentpercentminusx' : 'maxwidth250 widthcentpercentminusx')); $moreforfilter .= '
    '; } - if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL)) { + if (isModEnabled('stock') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL)) { require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); $moreforfilter .= '
    '; @@ -1082,7 +1156,7 @@ if ($resql) { $moreforfilter .= '
    '; } $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $moreforfilter .= $hookmanager->resPrint; } else { @@ -1096,13 +1170,22 @@ if ($resql) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
    '; print ''."\n"; print ''; + + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!empty($arrayfields['p.ref']['checked'])) { print ''; } // Payment mode if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) { print ''; } if (!empty($arrayfields['p.total_ht']['checked'])) { @@ -1303,8 +1386,8 @@ if ($resql) { } if (!empty($arrayfields['u.login']['checked'])) { // Author - print ''; } if (!empty($arrayfields['sale_representative']['checked'])) { @@ -1331,7 +1414,7 @@ if ($resql) { // Fields from hook $parameters = array('arrayfields'=>$arrayfields); - $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['p.datec']['checked'])) { @@ -1360,21 +1443,33 @@ if ($resql) { } // Status if (!empty($arrayfields['p.fk_statut']['checked'])) { - print ''; } // Action column - print ''; - + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } print "\n"; + $totalarray = array( + 'nbfield' => 0, + 'val' => array( + 'p.total_ht' => 0, + 'p.total_tva' => 0, + 'p.total_ttc' => 0, + ), + ); // Fields title print ''; + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); + } if (!empty($arrayfields['p.ref']['checked'])) { print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder); } @@ -1403,22 +1498,22 @@ if ($resql) { print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); } if (!empty($arrayfields['country.code_iso']['checked'])) { - print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['typent.code']['checked'])) { - print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['p.date']['checked'])) { - print_liste_field_titre($arrayfields['p.date']['label'], $_SERVER["PHP_SELF"], 'p.datep', '', $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['p.date']['label'], $_SERVER["PHP_SELF"], 'p.datep', '', $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['p.fin_validite']['checked'])) { - print_liste_field_titre($arrayfields['p.fin_validite']['label'], $_SERVER["PHP_SELF"], 'dfv', '', $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['p.fin_validite']['label'], $_SERVER["PHP_SELF"], 'dfv', '', $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['p.date_livraison']['checked'])) { - print_liste_field_titre($arrayfields['p.date_livraison']['label'], $_SERVER["PHP_SELF"], 'p.date_livraison', '', $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['p.date_livraison']['label'], $_SERVER["PHP_SELF"], 'p.date_livraison', '', $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['p.date_signature']['checked'])) { - print_liste_field_titre($arrayfields['p.date_signature']['label'], $_SERVER["PHP_SELF"], 'p.date_signature', '', $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['p.date_signature']['label'], $_SERVER["PHP_SELF"], 'p.date_signature', '', $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['ava.rowid']['checked'])) { print_liste_field_titre($arrayfields['ava.rowid']['label'], $_SERVER["PHP_SELF"], 'availability', '', $param, '', $sortfield, $sortorder); @@ -1472,7 +1567,7 @@ if ($resql) { print_liste_field_titre($arrayfields['p.multicurrency_total_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, 'class="right"', $sortfield, $sortorder); } if (!empty($arrayfields['u.login']['checked'])) { - print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'class="center"', $sortfield, $sortorder); } if (!empty($arrayfields['sale_representative']['checked'])) { print_liste_field_titre($arrayfields['sale_representative']['label'], $_SERVER["PHP_SELF"], "", "", "$param", '', $sortfield, $sortorder); @@ -1489,14 +1584,6 @@ if ($resql) { if (!empty($arrayfields['total_mark_rate']['checked'])) { print_liste_field_titre($arrayfields['total_mark_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); } - $totalarray = array( - 'nbfield' => 0, - 'val' => array( - 'p.total_ht' => 0, - 'p.total_tva' => 0, - 'p.total_ttc' => 0, - ), - ); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields @@ -1507,7 +1594,9 @@ if ($resql) { 'sortorder' => $sortorder, 'totalarray' => &$totalarray, ); - $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook + + $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; if (!empty($arrayfields['p.datec']['checked'])) { print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); @@ -1527,7 +1616,9 @@ if ($resql) { if (!empty($arrayfields['p.fk_statut']['checked'])) { print_liste_field_titre($arrayfields['p.fk_statut']['label'], $_SERVER["PHP_SELF"], "p.fk_statut", "", $param, 'class="right"', $sortfield, $sortorder); } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); + } print ''."\n"; $now = dol_now(); @@ -1535,7 +1626,7 @@ if ($resql) { $typenArray = null; $with_margin_info = false; - if (!empty($conf->margin->enabled) && ( + if (isModEnabled('margin') && ( !empty($arrayfields['total_pa']['checked']) || !empty($arrayfields['total_margin']['checked']) || !empty($arrayfields['total_margin_rate']['checked']) @@ -1547,8 +1638,12 @@ if ($resql) { $total_ht = 0; $total_margin = 0; - $last_num = min($num, $limit); - while ($i < $last_num) { + $savnbfield = $totalarray['nbfield']; + $totalarray = array(); + $totalarray['nbfield'] = 0; + + $imaxinloop = ($limit ? min($num, $limit) : $num); + while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); $objectstatic->id = $obj->rowid; @@ -1563,6 +1658,7 @@ if ($resql) { $companystatic->name = $obj->name; $companystatic->name_alias = $obj->alias; $companystatic->client = $obj->client; + $companystatic->fournisseur = $obj->fournisseur; $companystatic->code_client = $obj->code_client; $companystatic->email = $obj->email; $companystatic->phone = $obj->phone; @@ -1608,6 +1704,22 @@ if ($resql) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['p.ref']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -1666,7 +1778,7 @@ if ($resql) { // Project label print ''; if (!$i) { @@ -1676,8 +1788,8 @@ if ($resql) { // Thirdparty if (!empty($arrayfields['s.nom']['checked'])) { - print ''; if (!$i) { $totalarray['nbfield']++; @@ -1845,7 +1957,11 @@ if ($resql) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht'; } - $totalarray['val']['p.total_ht'] += $obj->total_ht; + if (empty($totalarray['val']['p.total_ht'])) { + $totalarray['val']['p.total_ht'] = $obj->total_ht; + } else { + $totalarray['val']['p.total_ht'] += $obj->total_ht; + } } // Amount VAT if (!empty($arrayfields['p.total_tva']['checked'])) { @@ -1856,7 +1972,11 @@ if ($resql) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'p.total_tva'; } - $totalarray['val']['p.total_tva'] += $obj->total_tva; + if (empty($totalarray['val']['p.total_tva'])) { + $totalarray['val']['p.total_tva'] = $obj->total_tva; + } else { + $totalarray['val']['p.total_tva'] += $obj->total_tva; + } } // Amount TTC if (!empty($arrayfields['p.total_ttc']['checked'])) { @@ -1867,7 +1987,11 @@ if ($resql) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ttc'; } - $totalarray['val']['p.total_ttc'] += $obj->total_ttc; + if (empty($totalarray['val']['p.total_ttc'])) { + $totalarray['val']['p.total_ttc'] = $obj->total_ttc; + } else { + $totalarray['val']['p.total_ttc'] += $obj->total_ttc; + } } // Amount invoiced HT if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) { @@ -1878,7 +2002,11 @@ if ($resql) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht_invoiced'; } - $totalarray['val']['p.total_ht_invoiced'] += $totalInvoicedHT; + if (empty($totalarray['val']['p.total_ht_invoiced'])) { + $totalarray['val']['p.total_ht_invoiced'] = $totalInvoicedHT; + } else { + $totalarray['val']['p.total_ht_invoiced'] += $totalInvoicedHT; + } } // Amount invoiced TTC if (!empty($arrayfields['p.total_invoiced']['checked'])) { @@ -1889,7 +2017,11 @@ if ($resql) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'p.total_invoiced'; } - $totalarray['val']['p.total_invoiced'] += $totalInvoicedTTC; + if (empty($totalarray['val']['p.total_invoiced'])) { + $totalarray['val']['p.total_invoiced'] = $totalInvoicedTTC; + } else { + $totalarray['val']['p.total_invoiced'] += $totalInvoicedTTC; + } } // Currency if (!empty($arrayfields['p.multicurrency_code']['checked'])) { @@ -1960,7 +2092,7 @@ if ($resql) { // Author if (!empty($arrayfields['u.login']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; } + print ''."\n"; $i++; @@ -2155,7 +2290,7 @@ if ($resql) { $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); - $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -1224,13 +1307,13 @@ if ($resql) { // Payment term if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { print ''; - $form->select_conditions_paiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1); + print $form->getSelectConditionsPaiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1); print ''; - $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1); + print $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1, '', 1); print ''; - print ''; + print ''; + print ''; print ''; - $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut'); + print ''; + $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status width100 onrightofpage'); print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -1643,7 +1755,7 @@ if ($resql) { if (!empty($arrayfields['p.ref_client']['checked'])) { // Customer ref print ''; - print $obj->ref_client; + print dol_escape_htmltag($obj->ref_client); print ''; if ($obj->project_id > 0) { - print $projectstatic->title; + print dol_escape_htmltag($projectstatic->title); } print ''; - print $companystatic->getNomUrl(1, 'customer'); + print ''; + print $companystatic->getNomUrl(1, 'customer', 0, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); print ''; + print ''; if ($userstatic->id) { print $userstatic->getNomUrl(-1); } @@ -1972,7 +2104,7 @@ if ($resql) { if (!empty($arrayfields['sale_representative']['checked'])) { // Sales representatives - print ''; + print ''; if ($obj->socid > 0) { $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); if ($listsalesrepresentatives < 0) { @@ -2052,7 +2184,7 @@ if ($resql) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; } - if ($i >= $last_num - 1) { + if ($i >= $imaxinloop - 1) { if (!empty($total_ht)) { $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); } else { @@ -2065,7 +2197,7 @@ if ($resql) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; // Fields from hook $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['p.datec']['checked'])) { @@ -2120,19 +2252,22 @@ if ($resql) { } } // Action column - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    '."\n"; diff --git a/htdocs/comm/propal/note.php b/htdocs/comm/propal/note.php index 13fa42edb29..fe4895ad2f8 100644 --- a/htdocs/comm/propal/note.php +++ b/htdocs/comm/propal/note.php @@ -26,10 +26,11 @@ * \brief Fiche d'information sur une proposition commerciale */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -58,12 +59,14 @@ $hookmanager->initHooks(array('propalnote')); restrictedArea($user, 'propal', $object->id, 'propal'); +$usercancreate = $user->hasRight("propal", "creer"); + /* * Actions */ -$permissionnote = $user->rights->propale->creer; // Used by the include of actions_setnotes.inc.php +$permissionnote = $user->rights->propal->creer; // Used by the include of actions_setnotes.inc.php $reshook = $hookmanager->executeHooks('doActions', array(), $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { @@ -81,8 +84,9 @@ if (empty($reshook)) { $form = new Form($db); -$title = $langs->trans('Proposal')." - ".$langs->trans('Notes'); +$title = $object->ref." - ".$langs->trans('Notes'); $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'; + llxHeader('', $title, $help_url); if ($object->id > 0) { @@ -105,37 +109,25 @@ if ($object->id > 0) { $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->propal->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ''; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/comm/propal/stats/index.php b/htdocs/comm/propal/stats/index.php index 576285594b4..db85490e1bb 100644 --- a/htdocs/comm/propal/stats/index.php +++ b/htdocs/comm/propal/stats/index.php @@ -26,6 +26,7 @@ * \brief Page des stats propositions commerciales */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propalestats.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; @@ -51,7 +52,7 @@ if ($user->socid > 0) { $socid = $user->socid; } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ? GETPOST('year', 'int') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; @@ -59,7 +60,7 @@ $endyear = $year; // Load translation files required by the page $langs->loadLangs(array('orders', 'companies', 'other', 'suppliers', 'supplier_proposal')); -if ($mode == 'customer' && !$user->rights->propale->lire) { +if ($mode == 'customer' && !$user->rights->propal->lire) { accessforbidden(); } if ($mode == 'supplier' && !$user->rights->supplier_proposal->lire) { diff --git a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php index 613f06a6feb..8aa72d9c43f 100644 --- a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php +++ b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php @@ -52,17 +52,17 @@ foreach ($linkedObjectBlock as $key => $objectlink) { $trclass .= ' liste_sub_total'; } print '
    '.$langs->trans("Proposal"); + print ''.$langs->trans("Proposal"); if (!empty($showImportButton) && $conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) { $url = DOL_URL_ROOT.'/comm/propal/card.php?id='.$objectlink->id; print ' '; } print ''.$objectlink->getNomUrl(1).''.$objectlink->getNomUrl(1).''.$objectlink->ref_client.''.dol_print_date($objectlink->date, 'day').''; - if ($user->rights->propale->lire) { + if ($user->rights->propal->lire) { $total = $total + $objectlink->total_ht; echo price($objectlink->total_ht); } diff --git a/htdocs/comm/prospect/index.php b/htdocs/comm/prospect/index.php index e63aee6f240..19bde7072ad 100644 --- a/htdocs/comm/prospect/index.php +++ b/htdocs/comm/prospect/index.php @@ -24,6 +24,7 @@ * \brief Home page of propest area */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; @@ -59,7 +60,7 @@ print load_fiche_titre($langs->trans("ProspectionArea")); print '
    '; -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { $var = false; print '
    '; print ''; @@ -118,7 +119,7 @@ if ($resql) { /* * Liste des propal brouillons */ -if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { +if (isModEnabled("propal") && $user->rights->propal->lire) { $sql = "SELECT p.rowid, p.ref, p.price, s.nom as sname"; $sql .= " FROM ".MAIN_DB_PREFIX."propal as p"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -176,7 +177,7 @@ if (isModEnabled('agenda')) { /* * Dernieres propales ouvertes */ -if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { +if (isModEnabled("propal") && $user->rights->propal->lire) { $sql = "SELECT s.nom as name, s.rowid as socid, s.client, s.canvas,"; $sql .= " p.rowid as propalid, p.total_ttc, p.ref, p.datep as dp, c.label as statut, c.id as statutid"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; diff --git a/htdocs/comm/recap-client.php b/htdocs/comm/recap-client.php index da37fe1048c..60295558621 100644 --- a/htdocs/comm/recap-client.php +++ b/htdocs/comm/recap-client.php @@ -22,6 +22,7 @@ * \brief Page de fiche recap client */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; diff --git a/htdocs/comm/remise.php b/htdocs/comm/remise.php index cdd8fefc4b0..4da58a6bd91 100644 --- a/htdocs/comm/remise.php +++ b/htdocs/comm/remise.php @@ -22,6 +22,7 @@ * \brief Page to edit relative discount of a customer */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; diff --git a/htdocs/comm/remx.php b/htdocs/comm/remx.php index f36b4bb0b9e..fe8c630fc10 100644 --- a/htdocs/comm/remx.php +++ b/htdocs/comm/remx.php @@ -26,6 +26,7 @@ if (! defined('CSRFCHECK_WITH_TOKEN')) define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; @@ -52,6 +53,9 @@ if ($user->socid > 0) { } $result = restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); +$permissiontocreate = ($user->rights->societe->creer || $user->rights->facture->creer); + + /* * Actions @@ -62,7 +66,7 @@ if (GETPOST('cancel', 'alpha') && !empty($backtopage)) { exit; } -if ($action == 'confirm_split' && GETPOST("confirm", "alpha") == 'yes' && ($user->rights->societe->creer || $user->rights->facture->creer)) { +if ($action == 'confirm_split' && GETPOST("confirm", "alpha") == 'yes' && $permissiontocreate) { //if ($user->rights->societe->creer) //if ($user->rights->facture->creer) @@ -153,16 +157,17 @@ if ($action == 'confirm_split' && GETPOST("confirm", "alpha") == 'yes' && ($user } } -if ($action == 'setremise' && ($user->rights->societe->creer || $user->rights->facture->creer)) { +if ($action == 'setremise' && $permissiontocreate) { //if ($user->rights->societe->creer) //if ($user->rights->facture->creer) - $amount_ht = price2num(GETPOST('amount_ht', 'alpha')); + $amount = price2num(GETPOST('amount', 'alpha'), '', 2); $desc = GETPOST('desc', 'alpha'); $tva_tx = GETPOST('tva_tx', 'alpha'); $discount_type = GETPOSTISSET('discount_type') ? GETPOST('discount_type', 'alpha') : 0; + $price_base_type = GETPOST('price_base_type', 'alpha'); - if ($amount_ht > 0) { + if ($amount > 0) { $error = 0; if (empty($desc)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ReasonDiscount")), null, 'errors'); @@ -172,14 +177,14 @@ if ($action == 'setremise' && ($user->rights->societe->creer || $user->rights->f if (!$error) { $soc = new Societe($db); $soc->fetch($id); - $discountid = $soc->set_remise_except($amount_ht, $user, $desc, $tva_tx, $discount_type); + $discountid = $soc->set_remise_except($amount, $user, $desc, $tva_tx, $discount_type, $price_base_type); if ($discountid > 0) { if (!empty($backtopage)) { - header("Location: ".$backtopage.'&discountid='.$discountid); + header("Location: ".$backtopage.'&discountid='.((int) $discountid)); exit; } else { - header("Location: remx.php?id=".$id); + header("Location: remx.php?id=".((int) $id)); exit; } } else { @@ -192,7 +197,7 @@ if ($action == 'setremise' && ($user->rights->societe->creer || $user->rights->f } } -if (GETPOST('action', 'aZ09') == 'confirm_remove' && GETPOST("confirm") == 'yes' && ($user->rights->societe->creer || $user->rights->facture->creer)) { +if (GETPOST('action', 'aZ09') == 'confirm_remove' && GETPOST("confirm") == 'yes' && $permissiontocreate) { //if ($user->rights->societe->creer) //if ($user->rights->facture->creer) @@ -230,9 +235,8 @@ if ($socid > 0) { $isCustomer = $object->client == 1 || $object->client == 3; $isSupplier = $object->fournisseur == 1; - /* - * Display tabs - */ + // Display tabs + $head = societe_prepare_head($object); print ''; @@ -261,6 +265,7 @@ if ($socid > 0) { } + print '
    '; print ''; if ($isCustomer) { // Calcul avoirs client en cours @@ -323,9 +328,10 @@ if ($socid > 0) { } print '
    '; - print '
    '; + print '
    '; // close fichecenter + print dol_get_fiche_end(); @@ -345,6 +351,8 @@ if ($socid > 0) { print dol_get_fiche_head(); + + print '
    '; print ''; if ($isCustomer && $isSupplier) { print ''; @@ -352,9 +360,19 @@ if ($socid > 0) { print '   '; print ''; } - print ''; - print ''; + print ''; + + // Price base (HT / TTC) + print ''; + print ''; + + // VAT print ''; print ''; print "
    '.$langs->trans('DiscountType').'
    '.$langs->trans("AmountHT").''; + + // Amount + print '
    '.$langs->trans("Amount").''; print ' '.$langs->trans("Currency".$conf->currency).'
    '.$langs->trans("PriceBase").''; + print $form->selectPriceBaseType(GETPOST("price_base_type"), "price_base_type"); + print '
    '.$langs->trans("VAT").''; print $form->load_tva('tva_tx', GETPOSTISSET('tva_tx') ? GETPOST('tva_tx', 'alpha') : 0, $mysoc, $object, 0, 0, '', 0, 1); @@ -363,6 +381,7 @@ if ($socid > 0) { print '
    "; + print '
    '; print dol_get_fiche_end(); } @@ -424,13 +443,13 @@ if ($socid > 0) { print '
    '.$langs->trans("ReasonDiscount").''.$langs->trans("ConsumedBy").''.$langs->trans("AmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("VATRate").''.$langs->trans("AmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("DiscountOfferedBy").' '.$langs->trans("NotConsumed").''.price($obj->amount_ht).''.price($obj->multicurrency_amount_ht).''.vatrate($obj->tva_tx.($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''), true).''.price($obj->amount_ttc).''.price($obj->multicurrency_amount_ttc).''; @@ -503,7 +522,7 @@ if ($socid > 0) { } } else { $colspan = 8; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { $colspan += 2; } print '
    '.$langs->trans("None").'
    '.$langs->trans("ReasonDiscount").''.$langs->trans("ConsumedBy").''.$langs->trans("AmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("VATRate").''.$langs->trans("AmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("DiscountOfferedBy").' '.$langs->trans("NotConsumed").''.price($obj->amount_ht).''.price($obj->multicurrency_amount_ht).''.vatrate($obj->tva_tx.($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''), true).''.price($obj->amount_ttc).''.price($obj->multicurrency_amount_ttc).''; @@ -641,7 +660,7 @@ if ($socid > 0) { } } else { $colspan = 8; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { $colspan += 2; } print '
    '.$langs->trans("None").'
    '.$langs->trans("ReasonDiscount").''.$langs->trans("ConsumedBy").''.$langs->trans("AmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("VATRate").''.$langs->trans("AmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("Author").' '.price($obj->amount_ht).''.price($obj->multicurrency_amount_ht).''.vatrate($obj->tva_tx.($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''), true).''.price($obj->amount_ttc).''.price($obj->multicurrency_amount_ttc).''; @@ -825,7 +844,7 @@ if ($socid > 0) { } } else { $colspan = 8; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { $colspan += 2; } print '
    '.$langs->trans("None").'
    '.$langs->trans("ReasonDiscount").''.$langs->trans("ConsumedBy").''.$langs->trans("AmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("MulticurrencyAmountHT").''.$langs->trans("VATRate").''.$langs->trans("AmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("MulticurrencyAmountTTC").''.$langs->trans("Author").' '.price($obj->amount_ht).''.price($obj->multicurrency_amount_ht).''.vatrate($obj->tva_tx.($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''), true).''.price($obj->amount_ttc).''.price($obj->multicurrency_amount_ttc).''; @@ -986,7 +1005,7 @@ if ($socid > 0) { } } else { $colspan = 8; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { $colspan += 2; } print '
    '.$langs->trans("None").'
    '; - print img_picto('', 'company').$form->select_company('', 'socid', '(s.client = 1 OR s.client = 2 OR s.client = 3)', 'SelectThirdParty', 0, 0, null, 0, 'minwidth175 maxwidth500 widthcentpercentminusxx'); + print img_picto('', 'company').$form->select_company('', 'socid', '((s.client = 1 OR s.client = 2 OR s.client = 3) AND s.status=1)', 'SelectThirdParty', 1, 0, null, 0, 'minwidth175 maxwidth500 widthcentpercentminusxx'); // reload page to retrieve customer informations if (empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE_DISABLED)) { print ' - ' - ); + + ' + ); + } } } @@ -2146,7 +2262,7 @@ if ($action == 'create' && $usercancreate) { $text = $langs->trans('ConfirmUnvalidateOrder', $object->ref); $formquestion = array(); - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { $langs->load("stocks"); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2185,7 +2301,7 @@ if ($action == 'create' && $usercancreate) { $text = $langs->trans('ConfirmCancelOrder', $object->ref); $formquestion = array(); - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $qualified_for_stock_change) { $langs->load("stocks"); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2239,41 +2355,30 @@ if ($action == 'create' && $usercancreate) { $morehtmlref = '
    '; // Ref customer $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string', '', null, null, '', 1); + $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string'.(isset($conf->global->THIRDPARTY_REF_INPUT_SIZE) ? ':'.$conf->global->THIRDPARTY_REF_INPUT_SIZE : ''), '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$soc->getNomUrl(1, 'customer'); + $morehtmlref .= '
    '.$soc->getNomUrl(1, 'customer'); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherOrders").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; + $morehtmlref .= '
    '; if ($usercancreate) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1, 0, 'maxwidth500'); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -2398,7 +2503,7 @@ if ($action == 'create' && $usercancreate) { } // Warehouse - if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + if (isModEnabled('stock') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { $langs->load('stocks'); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2454,7 +2559,7 @@ if ($action == 'create' && $usercancreate) { print '
    '; @@ -2525,7 +2630,7 @@ if ($action == 'create' && $usercancreate) { // TODO How record was recorded OrderMode (llx_c_input_method) // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print '
    '; $editenable = $usercancreate; print $form->editfieldkey("IncotermLabel", 'incoterm', '', $object, $editenable); @@ -2540,7 +2645,7 @@ if ($action == 'create' && $usercancreate) { } // Bank Account - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER) && !empty($conf->banque->enabled)) { + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER) && isModEnabled("banque")) { print '
    '; $editenable = $usercancreate; print $form->editfieldkey("BankAccount", 'bankaccount', '', $object, $editenable); @@ -2565,20 +2670,20 @@ if ($action == 'create' && $usercancreate) { print ''; - if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency)) { + if (isModEnabled("multicurrency") && ($object->multicurrency_code != $conf->currency)) { // Multicurrency Amount HT print ''; - print ''; + print ''; print ''; // Multicurrency Amount VAT print ''; - print ''; + print ''; print ''; // Multicurrency Amount TTC print ''; - print ''; + print ''; print ''; } @@ -2588,23 +2693,23 @@ if ($action == 'create' && $usercancreate) { $alert = ' '.img_warning($langs->trans('OrderMinAmount').': '.price($object->thirdparty->order_min_amount)); } print ''; - print ''; + print ''; // Total VAT - print ''; + print ''; // Amount Local Taxes if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) { // Localtax1 print ''; - print ''; + print ''; } if ($mysoc->localtax2_assuj == "1" || $object->total_localtax2 != 0) { // Localtax2 IRPF print ''; - print ''; + print ''; } // Total TTC - print ''; + print ''; // Statut //print ''; @@ -2612,7 +2717,7 @@ if ($action == 'create' && $usercancreate) { print '
    '.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).''.price($object->multicurrency_total_ht, '', $langs, 0, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ht, '', $langs, 0, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0).''.price($object->multicurrency_total_tva, '', $langs, 0, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_tva, '', $langs, 0, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0).''.price($object->multicurrency_total_ttc, '', $langs, 0, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ttc, '', $langs, 0, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$langs->trans('AmountHT').''.price($object->total_ht, 1, '', 1, -1, -1, $conf->currency).$alert.''.price($object->total_ht, 1, '', 1, -1, -1, $conf->currency).$alert.'
    '.$langs->trans('AmountVAT').''.price($object->total_tva, 1, '', 1, -1, -1, $conf->currency).'
    '.$langs->trans('AmountVAT').''.price($object->total_tva, 1, '', 1, -1, -1, $conf->currency).'
    '.$langs->transcountry("AmountLT1", $mysoc->country_code).''.price($object->total_localtax1, 1, '', 1, -1, -1, $conf->currency).'
    '.price($object->total_localtax1, 1, '', 1, -1, -1, $conf->currency).'
    '.$langs->transcountry("AmountLT2", $mysoc->country_code).''.price($object->total_localtax2, 1, '', 1, -1, -1, $conf->currency).'
    '.price($object->total_localtax2, 1, '', 1, -1, -1, $conf->currency).'
    '.$langs->trans('AmountTTC').''.price($object->total_ttc, 1, '', 1, -1, -1, $conf->currency).'
    '.$langs->trans('AmountTTC').''.price($object->total_ttc, 1, '', 1, -1, -1, $conf->currency).'
    ' . $langs->trans('Status') . '' . $object->getLibStatut(4) . '
    '; // Margin Infos - if (!empty($conf->margin->enabled)) { + if (isModEnabled('margin')) { $formmargin->displayMarginInfos($object); } @@ -2637,9 +2742,16 @@ if ($action == 'create' && $usercancreate) { /* * Lines */ + + // Get object lines $result = $object->getLinesArray(); - print '
    + // Add products/services form + //$forceall = 1; + global $inputalsopricewithtax; + $inputalsopricewithtax = 1; + + print ' @@ -2655,7 +2767,7 @@ if ($action == 'create' && $usercancreate) { // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); + $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); } $numlines = count($object->lines); @@ -2701,7 +2813,7 @@ if ($action == 'create' && $usercancreate) { if (empty($user->socid)) { if ($object->statut > Commande::STATUS_DRAFT || !empty($conf->global->COMMANDE_SENDBYEMAIL_FOR_ALL_STATUS)) { if ($usercansend) { - print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?action=presend&token='.newToken().'&id='.$object->id.'&mode=init#formmailbeforetitle', ''); + print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?action=presend&token='.newToken().'&id='.$object->id.'&mode=init#formmailbeforetitle', ''); } else { print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } @@ -2717,7 +2829,7 @@ if ($action == 'create' && $usercancreate) { print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?action=modif&token='.newToken().'&id='.$object->id, ''); } // Create event - /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) + /*if (isModEnabled('agenda') && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) { // Add hidden condition because this is not a // "workflow" action so should appears somewhere else on @@ -2727,7 +2839,7 @@ if ($action == 'create' && $usercancreate) { // Create a purchase order if (!empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_SALE_ORDER)) { - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) && $object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && $object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) { if ($usercancreatepurchaseorder) { print dolGetButtonAction('', $langs->trans('AddPurchaseOrder'), 'default', DOL_URL_ROOT.'/fourn/commande/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, ''); } @@ -2735,12 +2847,12 @@ if ($action == 'create' && $usercancreate) { } // Create intervention - if (!empty($conf->ficheinter->enabled)) { + if (isModEnabled('ficheinter')) { $langs->load("interventions"); if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) { - if ($user->rights->ficheinter->creer) { - print dolGetButtonAction('', $langs->trans('AddInterventionGR'), 'default', DOL_URL_ROOT.'/fichinter/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, ''); + if ($user->hasRight('ficheinter', 'creer')) { + print dolGetButtonAction('', $langs->trans('AddIntervention'), 'default', DOL_URL_ROOT.'/fichinter/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, ''); } else { print dolGetButtonAction($langs->trans('NotAllowed'), $langs->trans('AddIntervention'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } @@ -2748,10 +2860,10 @@ if ($action == 'create' && $usercancreate) { } // Create contract - if (!empty($conf->contrat->enabled) && ($object->statut == Commande::STATUS_VALIDATED || $object->statut == Commande::STATUS_SHIPMENTONPROCESS || $object->statut == Commande::STATUS_CLOSED)) { + if (isModEnabled('contrat') && ($object->statut == Commande::STATUS_VALIDATED || $object->statut == Commande::STATUS_SHIPMENTONPROCESS || $object->statut == Commande::STATUS_CLOSED)) { $langs->load("contracts"); - if ($user->rights->contrat->creer) { + if ($user->hasRight('contrat', 'creer')) { print dolGetButtonAction('', $langs->trans('AddContract'), 'default', DOL_URL_ROOT.'/contrat/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, ''); } } @@ -2759,11 +2871,11 @@ if ($action == 'create' && $usercancreate) { // Ship $numshipping = 0; if (isModEnabled('expedition')) { - $numshipping = $object->nb_expedition(); + $numshipping = $object->countNbOfShipments(); if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && ($object->getNbOfProductsLines() > 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES))) { if ((isModEnabled('expedition_bon') && $user->rights->expedition->creer) || ($conf->delivery_note->enabled && $user->rights->expedition->delivery->creer)) { - if ($user->rights->expedition->creer) { + if ($user->hasRight('expedition', 'creer')) { print dolGetButtonAction('', $langs->trans('CreateShipment'), 'default', DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id, ''); } else { print dolGetButtonAction($langs->trans('NotAllowed'), $langs->trans('CreateShipment'), 'default', $_SERVER['PHP_SELF']. '#', '', false); @@ -2782,7 +2894,7 @@ if ($action == 'create' && $usercancreate) { // Create bill and Classify billed // Note: Even if module invoice is not enabled, we should be able to use button "Classified billed" if ($object->statut > Commande::STATUS_DRAFT && !$object->billed && $object->total_ttc >= 0) { - if (isModEnabled('facture') && $user->rights->facture->creer && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) { + if (isModEnabled('facture') && $user->hasRight('facture', 'creer') && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) { print dolGetButtonAction('', $langs->trans('CreateBill'), 'default', DOL_URL_ROOT.'/compta/facture/card.php?action=create&token='.newToken().'&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, ''); } if ($usercancreate && $object->statut >= Commande::STATUS_VALIDATED && empty($conf->global->WORKFLOW_DISABLE_CLASSIFY_BILLED_FROM_ORDER) && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) { @@ -2800,14 +2912,14 @@ if ($action == 'create' && $usercancreate) { } // Cancel order - if ($object->statut == Commande::STATUS_VALIDATED && (!empty($usercanclose) || !empty($usercancancel))) { - print dolGetButtonAction('', $langs->trans('Cancel'), 'danger', $_SERVER["PHP_SELF"].'?action=cancel&token='.newToken().'&id='.$object->id, ''); + if ($object->statut == Commande::STATUS_VALIDATED && !empty($usercancancel)) { + print ''.$langs->trans("Cancel").''; } // Delete order if ($usercandelete) { if ($numshipping == 0) { - print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id, ''); + print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id, ''); } else { print dolGetButtonAction($langs->trans('ShippingExist'), $langs->trans('Delete'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } @@ -2845,7 +2957,7 @@ if ($action == 'create' && $usercancreate) { $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem, $compatibleImportElementsList); // Show online payment link - $useonlinepayment = (!empty($conf->paypal->enabled) || !empty($conf->stripe->enabled) || !empty($conf->paybox->enabled)); + $useonlinepayment = (isModEnabled('paypal') || isModEnabled('stripe') || isModEnabled('paybox')); if (!empty($conf->global->ORDER_HIDE_ONLINE_PAYMENT_ON_ORDER)) { $useonlinepayment = 0; } diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php index 2c916abda9a..1a879173684 100644 --- a/htdocs/commande/class/api_orders.class.php +++ b/htdocs/commande/class/api_orders.class.php @@ -28,7 +28,6 @@ require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; */ class Orders extends DolibarrApi { - /** * @var array $FIELDS Mandatory fields, checked when create and update object */ @@ -109,11 +108,11 @@ class Orders extends DolibarrApi * * Return an array with order informations * - * @param int $id ID of order + * @param int $id ID of order * @param string $ref Ref of object * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @throws RestException */ @@ -299,7 +298,7 @@ class Orders extends DolibarrApi * * @url GET {id}/lines * - * @return int + * @return array */ public function getLines($id) { @@ -393,13 +392,12 @@ class Orders extends DolibarrApi /** * Update a line to given order * - * @param int $id Id of order to update - * @param int $lineid Id of line to update - * @param array $request_data OrderLine data + * @param int $id Id of order to update + * @param int $lineid Id of line to update + * @param array $request_data OrderLine data + * @return Object|false Object with cleaned properties * * @url PUT {id}/lines/{lineid} - * - * @return array|bool */ public function putLine($id, $lineid, $request_data = null) { @@ -458,16 +456,14 @@ class Orders extends DolibarrApi } /** - * Delete a line to given order + * Delete a line of a given order * - * - * @param int $id Id of order to update - * @param int $lineid Id of line to delete + * @param int $id Id of order to update + * @param int $lineid Id of line to delete + * @return Object Object with cleaned properties * * @url DELETE {id}/lines/{lineid} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -486,9 +482,7 @@ class Orders extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - // TODO Check the lineid $lineid is a line of ojbect - - $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user, $lineid); + $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user, $lineid, $id); if ($updateRes > 0) { return $this->get($id); } else { @@ -501,13 +495,12 @@ class Orders extends DolibarrApi * * Return an array with contact informations * - * @param int $id ID of order - * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @param int $id ID of order + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return Object Object with cleaned properties * * @url GET {id}/contacts * - * @return array data without useless information - * * @throws RestException */ public function getContacts($id, $type = '') @@ -536,11 +529,10 @@ class Orders extends DolibarrApi * @param int $id Id of order to update * @param int $contactid Id of contact to add * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return array * * @url POST {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -586,7 +578,7 @@ class Orders extends DolibarrApi * * @url DELETE {id}/contact/{contactid}/{type} * - * @return int + * @return array * * @throws RestException 401 * @throws RestException 404 @@ -630,10 +622,9 @@ class Orders extends DolibarrApi /** * Update order general fields (won't touch lines of order) * - * @param int $id Id of order to update - * @param array $request_data Datas - * - * @return int + * @param int $id Id of order to update + * @param array $request_data Datas + * @return Object Object with cleaned properties */ public function put($id, $request_data = null) { @@ -777,7 +768,6 @@ class Orders extends DolibarrApi */ public function reopen($id) { - if (!DolibarrApiAccess::$user->rights->commande->creer) { throw new RestException(401); } @@ -802,12 +792,11 @@ class Orders extends DolibarrApi /** * Classify the order as invoiced. Could be also called setbilled * - * @param int $id Id of the order + * @param int $id Id of the order + * @return Object Object with cleaned properties * * @url POST {id}/setinvoiced * - * @return int - * * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -851,10 +840,9 @@ class Orders extends DolibarrApi * * @param int $id Order ID * @param int $notrigger Disabled triggers + * @return Object Object with cleaned properties * * @url POST {id}/close - * - * @return int */ public function close($id, $notrigger = 0) { @@ -897,10 +885,9 @@ class Orders extends DolibarrApi * * @param int $id Order ID * @param int $idwarehouse Warehouse ID to use for stock change (Used only if option STOCK_CALCULATE_ON_VALIDATE_ORDER is on) + * @return Object Object with cleaned properties * * @url POST {id}/settodraft - * - * @return array */ public function settodraft($id, $idwarehouse = -1) { @@ -942,12 +929,11 @@ class Orders extends DolibarrApi /** * Create an order using an existing proposal. * - * * @param int $proposalid Id of the proposal + * @return Object Object with cleaned properties * * @url POST /createfromproposal/{proposalid} * - * @return int * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 44cc5c6effd..29f990476ed 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -31,7 +31,7 @@ /** * \file htdocs/commande/class/commande.class.php * \ingroup commande - * \brief Fichier des classes de commandes + * \brief class for orders */ include_once DOL_DOCUMENT_ROOT.'/core/class/commonorder.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; @@ -93,21 +93,15 @@ class Commande extends CommonOrder protected $table_ref_field = 'ref'; /** - * @var int Thirparty ID + * @var int Thirdparty ID */ public $socid; /** - * @var string Thirparty ref of order + * @var string Thirdparty ref of order */ public $ref_client; - /** - * @var string Internal ref for order - * @deprecated - */ - public $ref_int; - /** * @var int Contact ID */ @@ -311,10 +305,9 @@ class Commande extends CommonOrder 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>20, 'index'=>1), 'ref' =>array('type'=>'varchar(30)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'showoncombobox'=>1, 'position'=>25), 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'RefExt', 'enabled'=>1, 'visible'=>0, 'position'=>26), - 'ref_int' =>array('type'=>'varchar(255)', 'label'=>'RefInt', 'enabled'=>1, 'visible'=>0, 'position'=>27), // deprecated 'ref_client' =>array('type'=>'varchar(255)', 'label'=>'RefCustomer', 'enabled'=>1, 'visible'=>-1, 'position'=>28), 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>20), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>'$conf->projet->enabled', 'visible'=>-1, 'position'=>25), + 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'visible'=>-1, 'position'=>25), 'date_commande' =>array('type'=>'date', 'label'=>'Date', 'enabled'=>1, 'visible'=>1, 'position'=>60), 'date_valid' =>array('type'=>'datetime', 'label'=>'DateValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>62), 'date_cloture' =>array('type'=>'datetime', 'label'=>'DateClosing', 'enabled'=>1, 'visible'=>-1, 'position'=>65), @@ -330,8 +323,8 @@ class Commande extends CommonOrder 'localtax2' =>array('type'=>'double(24,8)', 'label'=>'LocalTax2', 'enabled'=>1, 'visible'=>-1, 'position'=>135, 'isameasure'=>1), 'total_ht' =>array('type'=>'double(24,8)', 'label'=>'TotalHT', 'enabled'=>1, 'visible'=>-1, 'position'=>140, 'isameasure'=>1), 'total_ttc' =>array('type'=>'double(24,8)', 'label'=>'TotalTTC', 'enabled'=>1, 'visible'=>-1, 'position'=>145, 'isameasure'=>1), - 'note_private' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>150), - 'note_public' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>155), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>150), + 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>155), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'PDFTemplate', 'enabled'=>1, 'visible'=>0, 'position'=>160), //'facture' =>array('type'=>'tinyint(4)', 'label'=>'ParentInvoice', 'enabled'=>1, 'visible'=>-1, 'position'=>165), 'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>170), @@ -348,12 +341,12 @@ class Commande extends CommonOrder 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>225), 'fk_incoterms' =>array('type'=>'integer', 'label'=>'IncotermCode', 'enabled'=>'$conf->incoterm->enabled', 'visible'=>-1, 'position'=>230), 'location_incoterms' =>array('type'=>'varchar(255)', 'label'=>'IncotermLabel', 'enabled'=>'$conf->incoterm->enabled', 'visible'=>-1, 'position'=>235), - 'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>240), - 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'MulticurrencyCurrency', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>245), - 'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyRate', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>250, 'isameasure'=>1), - 'multicurrency_total_ht' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountHT', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>255, 'isameasure'=>1), - 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>260, 'isameasure'=>1), - 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'$conf->multicurrency->enabled', 'visible'=>-1, 'position'=>265, 'isameasure'=>1), + 'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>240), + 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'MulticurrencyCurrency', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>245), + 'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyRate', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>250, 'isameasure'=>1), + 'multicurrency_total_ht' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountHT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>255, 'isameasure'=>1), + 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>260, 'isameasure'=>1), + 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>265, 'isameasure'=>1), 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>1, 'visible'=>-1, 'position'=>270), 'module_source' =>array('type'=>'varchar(32)', 'label'=>'POSModule', 'enabled'=>1, 'visible'=>-1, 'position'=>275), 'pos_source' =>array('type'=>'varchar(32)', 'label'=>'POSTerminal', 'enabled'=>1, 'visible'=>-1, 'position'=>280), @@ -507,7 +500,7 @@ class Commande extends CommonOrder $sql .= " SET ref = '".$this->db->escape($num)."',"; $sql .= " fk_statut = ".self::STATUS_VALIDATED.","; $sql .= " date_valid='".$this->db->idate($now)."',"; - $sql .= " fk_user_valid = ".((int) $user->id).","; + $sql .= " fk_user_valid = ".($user->id > 0 ? (int) $user->id : "null").","; $sql .= " fk_user_modif = ".((int) $user->id); $sql .= " WHERE rowid = ".((int) $this->id); @@ -521,7 +514,7 @@ class Commande extends CommonOrder if (!$error) { // If stock is incremented on validate order, we must increment it - if ($result >= 0 && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1) { + if ($result >= 0 && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -649,7 +642,7 @@ class Commande extends CommonOrder } // If stock is decremented on validate order, we must reincrement it - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1) { $result = 0; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; @@ -834,7 +827,7 @@ class Commande extends CommonOrder dol_syslog(get_class($this)."::cancel", LOG_DEBUG); if ($this->db->query($sql)) { // If stock is decremented on validate order, we must reincrement it - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -945,7 +938,7 @@ class Commande extends CommonOrder $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."commande ("; - $sql .= " ref, fk_soc, date_creation, fk_user_author, fk_projet, date_commande, source, note_private, note_public, ref_ext, ref_client, ref_int"; + $sql .= " ref, fk_soc, date_creation, fk_user_author, fk_projet, date_commande, source, note_private, note_public, ref_ext, ref_client"; $sql .= ", model_pdf, fk_cond_reglement, deposit_percent, fk_mode_reglement, fk_account, fk_availability, fk_input_reason, date_livraison, fk_delivery_address"; $sql .= ", fk_shipping_method"; $sql .= ", fk_warehouse"; @@ -964,10 +957,9 @@ class Commande extends CommonOrder $sql .= ", '".$this->db->escape($this->note_public)."'"; $sql .= ", ".($this->ref_ext ? "'".$this->db->escape($this->ref_ext)."'" : "null"); $sql .= ", ".($this->ref_client ? "'".$this->db->escape($this->ref_client)."'" : "null"); - $sql .= ", ".($this->ref_int ? "'".$this->db->escape($this->ref_int)."'" : "null"); $sql .= ", '".$this->db->escape($this->model_pdf)."'"; $sql .= ", ".($this->cond_reglement_id > 0 ? ((int) $this->cond_reglement_id) : "null"); - $sql .= ", ".(! empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : "null"); + $sql .= ", ".(!empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : "null"); $sql .= ", ".($this->mode_reglement_id > 0 ? ((int) $this->mode_reglement_id) : "null"); $sql .= ", ".($this->fk_account > 0 ? ((int) $this->fk_account) : 'NULL'); $sql .= ", ".($this->availability_id > 0 ? ((int) $this->availability_id) : "null"); @@ -1073,7 +1065,7 @@ class Commande extends CommonOrder return -1; } // Defined the new fk_parent_line - if ($result > 0) { + if ($result > 0 && $line->product_type == 9) { $fk_parent_line = $result; } } @@ -1181,6 +1173,8 @@ class Commande extends CommonOrder return -1; } } + + return 0; } else { dol_print_error($this->db); $this->db->rollback(); @@ -1234,7 +1228,8 @@ class Commande extends CommonOrder // Clear fields $this->user_author_id = $user->id; - $this->user_valid = ''; + $this->user_valid = 0; // deprecated + $this->user_validation_id = 0; $this->date = dol_now(); $this->date_commande = dol_now(); $this->date_creation = ''; @@ -1308,6 +1303,7 @@ class Commande extends CommonOrder { global $conf, $hookmanager; + dol_include_once('/multicurrency/class/multicurrency.class.php'); dol_include_once('/core/class/extrafields.class.php'); $error = 0; @@ -1383,6 +1379,29 @@ class Commande extends CommonOrder $this->origin = $object->element; $this->origin_id = $object->id; + // Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate) + if (!empty($conf->multicurrency->enabled)) { + if (!empty($object->multicurrency_code)) { + $this->multicurrency_code = $object->multicurrency_code; + } + if (!empty($conf->global->MULTICURRENCY_USE_ORIGIN_TX) && !empty($object->multicurrency_tx)) { + $this->multicurrency_tx = $object->multicurrency_tx; + } + + if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) { + $tmparray = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $this->date_commande); + $this->fk_multicurrency = $tmparray[0]; + $this->multicurrency_tx = $tmparray[1]; + } else { + $this->fk_multicurrency = MultiCurrency::getIdFromCode($this->db, $this->multicurrency_code); + } + if (empty($this->fk_multicurrency)) { + $this->multicurrency_code = $conf->currency; + $this->fk_multicurrency = 0; + $this->multicurrency_tx = 1; + } + } + // get extrafields from original line $object->fetch_optionals(); @@ -1781,7 +1800,7 @@ class Commande extends CommonOrder $this->lines[] = $line; /** POUR AJOUTER AUTOMATIQUEMENT LES SOUSPRODUITS a LA COMMANDE - if (! empty($conf->global->PRODUIT_SOUSPRODUITS)) + if (!empty($conf->global->PRODUIT_SOUSPRODUITS)) { $prod = new Product($this->db); $prod->fetch($idproduct); @@ -1826,7 +1845,7 @@ class Commande extends CommonOrder $sql .= ', c.fk_shipping_method'; $sql .= ', c.fk_warehouse'; $sql .= ', c.fk_projet as fk_project, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as billed'; - $sql .= ', c.note_private, c.note_public, c.ref_client, c.ref_ext, c.ref_int, c.model_pdf, c.last_main_doc, c.fk_delivery_address, c.extraparams'; + $sql .= ', c.note_private, c.note_public, c.ref_client, c.ref_ext, c.model_pdf, c.last_main_doc, c.fk_delivery_address, c.extraparams'; $sql .= ', c.fk_incoterms, c.location_incoterms'; $sql .= ", c.fk_multicurrency, c.multicurrency_code, c.multicurrency_tx, c.multicurrency_total_ht, c.multicurrency_total_tva, c.multicurrency_total_ttc"; $sql .= ", c.module_source, c.pos_source"; @@ -1854,9 +1873,6 @@ class Commande extends CommonOrder if ($ref_ext) { $sql .= " AND c.ref_ext='".$this->db->escape($ref_ext)."'"; } - if ($notused) { - $sql .= " AND c.ref_int='".$this->db->escape($notused)."'"; - } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $result = $this->db->query($sql); @@ -1870,7 +1886,6 @@ class Commande extends CommonOrder $this->ref_client = $obj->ref_client; $this->ref_customer = $obj->ref_client; $this->ref_ext = $obj->ref_ext; - $this->ref_int = $obj->ref_int; $this->socid = $obj->fk_soc; $this->thirdparty = null; // Clear if another value was already set by fetch_thirdparty @@ -1882,8 +1897,11 @@ class Commande extends CommonOrder $this->status = $obj->fk_statut; $this->user_author_id = $obj->fk_user_author; - $this->user_valid = $obj->fk_user_valid; - $this->user_modification = $obj->fk_user_modif; + $this->user_creation_id = $obj->fk_user_author; + $this->user_validation_id = $obj->fk_user_valid; + $this->user_valid = $obj->fk_user_valid; // deprecated + $this->user_modification_id = $obj->fk_user_modif; + $this->user_modification = $obj->fk_user_modif; $this->total_ht = $obj->total_ht; $this->total_tva = $obj->total_tva; $this->total_localtax1 = $obj->total_localtax1; @@ -2123,9 +2141,9 @@ class Commande extends CommonOrder $line->product_ref = $objp->product_ref; $line->product_label = $objp->product_label; - $line->product_desc = $objp->product_desc; $line->product_tosell = $objp->product_tosell; $line->product_tobuy = $objp->product_tobuy; + $line->product_desc = $objp->product_desc; $line->product_tobatch = $objp->product_tobatch; $line->product_barcode = $objp->product_barcode; @@ -2151,7 +2169,7 @@ class Commande extends CommonOrder $line->fetch_optionals(); // multilangs - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($objp->fk_product) && !empty($loadalsotranslation)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($objp->fk_product) && !empty($loadalsotranslation)) { $tmpproduct = new Product($this->db); $tmpproduct->fetch($objp->fk_product); $tmpproduct->getMultiLangs(); @@ -2264,8 +2282,8 @@ class Commande extends CommonOrder } $sql .= ' ed.fk_origin_line = cd.rowid'; $sql .= ' AND cd.fk_commande = '.((int) $this->id); - if ($this->fk_product > 0) { - $sql .= ' AND cd.fk_product = '.((int) $this->fk_product); + if ($fk_product > 0) { + $sql .= ' AND cd.fk_product = '.((int) $fk_product); } if ($filtre_statut >= 0) { $sql .= ' AND e.fk_statut >= '.((int) $filtre_statut); @@ -2291,17 +2309,13 @@ class Commande extends CommonOrder } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Returns a array with expeditions lines number + * Returns an array with expeditions lines number * * @return int Nb of shipments - * - * TODO deprecate, move to Shipping class */ - public function nb_expedition() + public function countNbOfShipments() { - // phpcs:enable $sql = 'SELECT count(*)'; $sql .= ' FROM '.MAIN_DB_PREFIX.'expedition as e'; $sql .= ', '.MAIN_DB_PREFIX.'element_element as el'; @@ -2317,6 +2331,8 @@ class Commande extends CommonOrder } else { dol_print_error($this->db); } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2363,58 +2379,45 @@ class Commande extends CommonOrder * * @param User $user User object * @param int $lineid Id of line to delete + * @param int $id Id of object (for a check) * @return int >0 if OK, 0 if nothing to do, <0 if KO */ - public function deleteline($user = null, $lineid = 0) + public function deleteline($user = null, $lineid = 0, $id = 0) { if ($this->statut == self::STATUS_DRAFT) { $this->db->begin(); - $sql = "SELECT fk_product, qty"; - $sql .= " FROM ".MAIN_DB_PREFIX."commandedet"; - $sql .= " WHERE rowid = ".((int) $lineid); + // Delete line + $line = new OrderLine($this->db); - $result = $this->db->query($sql); - if ($result) { - $obj = $this->db->fetch_object($result); + $line->context = $this->context; - if ($obj) { - $product = new Product($this->db); - $product->id = $obj->fk_product; + // Load data + $line->fetch($lineid); - // Delete line - $line = new OrderLine($this->db); + if ($id > 0 && $line->fk_commande != $id) { + $this->error = 'ErrorLineIDDoesNotMatchWithObjectID'; + return -1; + } - // For triggers - $line->fetch($lineid); + // Memorize previous line for triggers + $staticline = clone $line; + $line->oldline = $staticline; - // Memorize previous line for triggers - $staticline = clone $line; - $line->oldline = $staticline; + if ($line->delete($user) > 0) { + $result = $this->update_price(1); - if ($line->delete($user) > 0) { - $result = $this->update_price(1); - - if ($result > 0) { - $this->db->commit(); - return 1; - } else { - $this->db->rollback(); - $this->error = $this->db->lasterror(); - return -1; - } - } else { - $this->db->rollback(); - $this->error = $line->error; - return -1; - } + if ($result > 0) { + $this->db->commit(); + return 1; } else { $this->db->rollback(); - return 0; + $this->error = $this->db->lasterror(); + return -1; } } else { $this->db->rollback(); - $this->error = $this->db->lasterror(); + $this->error = $line->error; return -1; } } else { @@ -2498,6 +2501,8 @@ class Commande extends CommonOrder return -1 * $error; } } + + return 0; } @@ -2562,6 +2567,8 @@ class Commande extends CommonOrder return -1 * $error; } } + + return 0; } @@ -3348,10 +3355,10 @@ class Commande extends CommonOrder $sql .= " total_ttc=".(isset($this->total_ttc) ? $this->total_ttc : "null").","; $sql .= " fk_statut=".(isset($this->statut) ? $this->statut : "null").","; $sql .= " fk_user_author=".(isset($this->user_author_id) ? $this->user_author_id : "null").","; - $sql .= " fk_user_valid=".(isset($this->user_valid) ? $this->user_valid : "null").","; + $sql .= " fk_user_valid=".((isset($this->user_valid) && $this->user_valid > 0) ? $this->user_valid : "null").","; $sql .= " fk_projet=".(isset($this->fk_project) ? $this->fk_project : "null").","; $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? $this->cond_reglement_id : "null").","; - $sql .= " deposit_percent=".(! empty($this->deposit_percent) ? strval($this->deposit_percent) : "null").","; + $sql .= " deposit_percent=".(!empty($this->deposit_percent) ? strval($this->deposit_percent) : "null").","; $sql .= " fk_mode_reglement=".(isset($this->mode_reglement_id) ? $this->mode_reglement_id : "null").","; $sql .= " date_livraison=".(strval($this->delivery_date) != '' ? "'".$this->db->idate($this->delivery_date)."'" : 'null').","; $sql .= " fk_shipping_method=".(isset($this->shipping_method_id) ? $this->shipping_method_id : "null").","; @@ -3360,7 +3367,7 @@ class Commande extends CommonOrder $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); @@ -3403,7 +3410,7 @@ class Commande extends CommonOrder } /** - * Delete the customer order + * Delete the sales order * * @param User $user User object * @param int $notrigger 1=Does not execute triggers, 0= execute triggers @@ -3430,7 +3437,7 @@ class Commande extends CommonOrder } // Test we can delete - if ($this->nb_expedition() != 0) { + if ($this->countNbOfShipments() != 0) { $this->errors[] = $langs->trans('SomeShipmentExists'); $error++; } @@ -3634,7 +3641,7 @@ class Commande extends CommonOrder public function LibStatut($status, $billed, $mode, $donotshowbilled = 0) { // phpcs:enable - global $langs, $conf; + global $langs, $conf, $hookmanager; $billedtext = ''; if (empty($donotshowbilled)) { @@ -3658,11 +3665,14 @@ class Commande extends CommonOrder } elseif ($status == self::STATUS_SHIPMENTONPROCESS) { $labelStatus = $langs->transnoentitiesnoconv('StatusOrderSent').$billedtext; $labelStatusShort = $langs->transnoentitiesnoconv('StatusOrderSentShort').$billedtext; - $labelTooltip = $langs->transnoentitiesnoconv("StatusOrderSent").' - '.$langs->transnoentitiesnoconv("DateDeliveryPlanned").dol_print_date($this->date_livraison).$billedtext; + $labelTooltip = $langs->transnoentitiesnoconv("StatusOrderSent"); + if (!empty($this->delivery_date)) { + $labelTooltip .= ' - '.$langs->transnoentitiesnoconv("DateDeliveryPlanned").dol_print_date($this->delivery_date, 'day').$billedtext; + } $statusType = 'status4'; } elseif ($status == self::STATUS_CLOSED && (!$billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) { - $labelStatus = $langs->transnoentitiesnoconv('StatusOrderToBill'); - $labelStatusShort = $langs->transnoentitiesnoconv('StatusOrderToBillShort'); + $labelStatus = $langs->transnoentitiesnoconv('StatusOrderToBill'); // translated into Delivered + $labelStatusShort = $langs->transnoentitiesnoconv('StatusOrderToBillShort'); // translated into Delivered $statusType = 'status4'; } elseif ($status == self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) { $labelStatus = $langs->transnoentitiesnoconv('StatusOrderProcessed').$billedtext; @@ -3679,6 +3689,19 @@ class Commande extends CommonOrder $mode = 0; } + $parameters = array( + 'status' => $status, + 'mode' => $mode, + 'billed' => $billed, + 'donotshowbilled' => $donotshowbilled + ); + + $reshook = $hookmanager->executeHooks('LibStatut', $parameters, $this); // Note that $action and $object may have been modified by hook + + if ($reshook > 0) { + return $hookmanager->resPrint; + } + return dolGetStatus($labelStatus, $labelStatusShort, '', $statusType, $mode, '', array('tooltip' => $labelTooltip)); } @@ -3706,7 +3729,7 @@ class Commande extends CommonOrder $result = ''; - if (!empty($conf->expedition->enabled) && ($option == '1' || $option == '2')) { + if (isModEnabled("expedition") && ($option == '1' || $option == '2')) { $url = DOL_URL_ROOT.'/expedition/shipment.php?id='.$this->id; } else { $url = DOL_URL_ROOT.'/commande/card.php?id='.$this->id; @@ -3837,21 +3860,13 @@ class Commande extends CommonOrder $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; + $this->user_creation_id = $obj->fk_user_author; } - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; + $this->user_validation_id = $obj->fk_user_valid; } - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; + $this->user_closing_id = $obj->fk_user_cloture; } $this->date_creation = $this->db->jdate($obj->datec); @@ -4043,18 +4058,18 @@ class Commande extends CommonOrder /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'commande' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -4075,7 +4090,7 @@ class Commande extends CommonOrder } /** - * Is the customer order delayed? + * Is the sales order delayed? * * @return bool true if late, false if not */ @@ -4213,6 +4228,12 @@ class OrderLine extends CommonOrderLine $result = $this->db->query($sql); if ($result) { $objp = $this->db->fetch_object($result); + + if (!$objp) { + $this->error = 'OrderLine with id '. $rowid .' not found sql='.$sql; + return 0; + } + $this->rowid = $objp->rowid; $this->id = $objp->rowid; $this->fk_commande = $objp->fk_commande; @@ -4325,16 +4346,6 @@ class OrderLine extends CommonOrderLine dol_syslog("OrderLine::delete", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { - // Remove extrafields - if (!$error) { - $this->id = $this->rowid; - $result = $this->deleteExtraFields(); - if ($result < 0) { - $error++; - dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR); - } - } - if (!$error && !$notrigger) { // Call trigger $result = $this->call_trigger('LINEORDER_DELETE', $user); @@ -4344,6 +4355,15 @@ class OrderLine extends CommonOrderLine // End call triggers } + // Remove extrafields + if (!$error) { + $result = $this->deleteExtraFields(); + if ($result < 0) { + $error++; + dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR); + } + } + if (!$error) { $this->db->commit(); return 1; @@ -4620,14 +4640,14 @@ class OrderLine extends CommonOrderLine $sql .= " , localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= " , qty=".price2num($this->qty); $sql .= " , ref_ext='".$this->db->escape($this->ref_ext)."'"; - $sql .= " , subprice=".price2num($this->subprice).""; - $sql .= " , remise_percent=".price2num($this->remise_percent).""; - $sql .= " , price=".price2num($this->price).""; // TODO A virer - $sql .= " , remise=".price2num($this->remise).""; // TODO A virer + $sql .= " , subprice=".price2num($this->subprice); + $sql .= " , remise_percent=".price2num($this->remise_percent); + $sql .= " , price=".price2num($this->price); // TODO A virer + $sql .= " , remise=".price2num($this->remise); // TODO A virer if (empty($this->skip_update_total)) { - $sql .= " , total_ht=".price2num($this->total_ht).""; - $sql .= " , total_tva=".price2num($this->total_tva).""; - $sql .= " , total_ttc=".price2num($this->total_ttc).""; + $sql .= " , total_ht=".price2num($this->total_ht); + $sql .= " , total_tva=".price2num($this->total_tva); + $sql .= " , total_ttc=".price2num($this->total_ttc); $sql .= " , total_localtax1=".price2num($this->total_localtax1); $sql .= " , total_localtax2=".price2num($this->total_localtax2); } @@ -4645,10 +4665,10 @@ class OrderLine extends CommonOrderLine $sql .= " , fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit); // Multicurrency - $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->rowid); diff --git a/htdocs/commande/class/commandestats.class.php b/htdocs/commande/class/commandestats.class.php index d02d56175ff..3070f82c98d 100644 --- a/htdocs/commande/class/commandestats.class.php +++ b/htdocs/commande/class/commandestats.class.php @@ -93,9 +93,6 @@ class CommandeStats extends Stats //$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity; $this->where .= ($this->where ? ' AND ' : '').'c.entity IN ('.getEntity('commande').')'; - if (empty($user->rights->societe->client->voir) && !$this->socid) { - $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); - } if ($this->socid) { $this->where .= " AND c.fk_soc = ".((int) $this->socid); } @@ -109,9 +106,7 @@ class CommandeStats extends Stats } if ($categid) { - $this->join .= ' LEFT JOIN '.$this->categ_link.' as cats ON cats.fk_soc = c.fk_soc'; - $this->join .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as cat ON cat.rowid = cats.fk_categorie'; - $this->where .= ' AND cat.rowid = '.((int) $categid); + $this->where .= ' AND EXISTS (SELECT rowid FROM '.$this->categ_link.' as cats WHERE cats.fk_soc = c.fk_soc AND cats.fk_categorie = '.((int) $categid).')'; } } @@ -129,7 +124,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%m') as dm, COUNT(*) as nb"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -154,7 +149,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -178,7 +173,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%m') as dm, SUM(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -203,7 +198,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%m') as dm, AVG(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -226,7 +221,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%Y') as year, COUNT(*) as nb, SUM(c.".$this->field.") as total, AVG(".$this->field.") as avg"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -250,7 +245,7 @@ class CommandeStats extends Stats $sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg"; $sql .= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product"; if (empty($user->rights->societe->client->voir) && !$user->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; diff --git a/htdocs/commande/contact.php b/htdocs/commande/contact.php index b89623fc3a0..04c16e68aa0 100644 --- a/htdocs/commande/contact.php +++ b/htdocs/commande/contact.php @@ -2,7 +2,7 @@ /* Copyright (C) 2005 Patrick Rouillon * Copyright (C) 2005-2011 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2011-2015 Philippe Grand + * Copyright (C) 2011-2022 Philippe Grand * Copyright (C) 2021 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -25,6 +25,7 @@ * \brief Onglet de gestion des contacts de commande */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -46,8 +47,11 @@ if ($user->socid) { } $result = restrictedArea($user, 'commande', $id, ''); +$usercancreate = $user->hasRight("commande", "creer"); + $object = new Commande($db); + /* * Ajout d'un nouveau contact */ @@ -96,10 +100,6 @@ if ($action == 'addcontact' && $user->rights->commande->creer) { /* * View */ -$title = $langs->trans('Order')." - ".$langs->trans('ContactsAddresses'); -$help_url = 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes|DE:Modul_Kundenaufträge'; -llxHeader('', $title, $help_url); - $form = new Form($db); $formcompany = new FormCompany($db); $formother = new FormOther($db); @@ -117,6 +117,10 @@ if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref) > 0) { $object->fetch_thirdparty(); + $title = $object->ref." - ".$langs->trans('ContactsAddresses'); + $help_url = 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes|DE:Modul_Kundenaufträge'; + llxHeader('', $title, $help_url); + $head = commande_prepare_head($object); print dol_get_fiche_head($head, 'contact', $langs->trans("CustomerOrder"), -1, 'order'); @@ -129,37 +133,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->commande->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/commande/customer.php b/htdocs/commande/customer.php index e181cc03c6a..a6eb116f17d 100644 --- a/htdocs/commande/customer.php +++ b/htdocs/commande/customer.php @@ -26,6 +26,7 @@ * \brief Show list of customers to add an new invoice from orders */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; diff --git a/htdocs/commande/document.php b/htdocs/commande/document.php index 684d8e61334..0c35c3489f7 100644 --- a/htdocs/commande/document.php +++ b/htdocs/commande/document.php @@ -26,13 +26,14 @@ * \brief Management page of documents attached to an order */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -72,7 +73,8 @@ if (!$sortfield) { $object = new Commande($db); -$permissiontoadd = $user->rights->commande->creer; +$usercancreate = $user->hasRight("commande", "creer"); +$permissiontoadd = $usercancreate; // Security check if ($user->socid) { @@ -96,7 +98,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; /* * View */ -$title = $langs->trans('Order')." - ".$langs->trans('Documents'); +$title = $object->ref." - ".$langs->trans('Documents'); $help_url = 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes|DE:Modul_Kundenaufträge'; llxHeader('', $title, $help_url); @@ -128,37 +130,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->commande->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/commande/index.php b/htdocs/commande/index.php index 03644fe5690..9b653b90e65 100644 --- a/htdocs/commande/index.php +++ b/htdocs/commande/index.php @@ -22,9 +22,11 @@ /** * \file htdocs/commande/index.php * \ingroup commande - * \brief Home page of customer order module + * \brief Home page of sales order module */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; @@ -32,6 +34,11 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array('orders', 'bills')); + + if (!$user->rights->commande->lire) { accessforbidden(); } @@ -41,8 +48,6 @@ $hookmanager = new HookManager($db); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('ordersindex')); -// Load translation files required by the page -$langs->loadLangs(array('orders', 'bills')); // Security check $socid = GETPOST('socid', 'int'); @@ -87,7 +92,7 @@ if ($tmp) { /* * Draft orders */ -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $sql = "SELECT c.rowid, c.ref, s.nom as name, s.rowid as socid"; $sql .= ", s.client"; $sql .= ", s.code_client"; @@ -239,7 +244,7 @@ $max = 10; /* * Orders to process */ -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $sql = "SELECT c.rowid, c.entity, c.ref, c.fk_statut, c.facture, c.date_commande as date, s.nom as name, s.rowid as socid"; $sql .= ", s.client"; $sql .= ", s.code_client"; @@ -328,7 +333,7 @@ if (!empty($conf->commande->enabled)) { /* * Orders that are in process */ -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $sql = "SELECT c.rowid, c.entity, c.ref, c.fk_statut, c.facture, c.date_commande as date, s.nom as name, s.rowid as socid"; $sql .= ", s.client"; $sql .= ", s.code_client"; diff --git a/htdocs/commande/info.php b/htdocs/commande/info.php index 38d8beba2ec..0acc5b793aa 100644 --- a/htdocs/commande/info.php +++ b/htdocs/commande/info.php @@ -23,11 +23,12 @@ * \brief Sale Order info page */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -49,6 +50,8 @@ if ($user->socid) { } $result = restrictedArea($user, 'commande', $comid, ''); +$usercancreate = $user->hasRight("commande", "creer"); + $object = new Commande($db); if (!$object->fetch($id, $ref) > 0) { dol_print_error($db); @@ -81,37 +84,25 @@ $morehtmlref = '
    '; $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty -$morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); +$morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->commande->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index b4e1f19554e..98d2b59d6a3 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -33,6 +33,8 @@ * \brief Page to list orders */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -40,7 +42,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php'; } require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; @@ -49,15 +51,18 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Load translation files required by the page -$langs->loadLangs(array("orders", 'sendings', 'deliveries', 'companies', 'compta', 'bills', 'stocks', 'products')); +$langs->loadLangs(array('orders', 'sendings', 'deliveries', 'companies', 'compta', 'bills', 'stocks', 'products')); +// Get Parameters $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'orderlist'; +$mode = GETPOST('mode', 'alpha'); +// Search Parameters $search_datecloture_start = GETPOST('search_datecloture_start', 'int'); if (empty($search_datecloture_start)) { $search_datecloture_start = dol_mktime(0, 0, 0, GETPOST('search_datecloture_startmonth', 'int'), GETPOST('search_datecloture_startday', 'int'), GETPOST('search_datecloture_startyear', 'int')); @@ -70,29 +75,34 @@ $search_dateorder_start = dol_mktime(0, 0, 0, GETPOST('search_dateorder_start_mo $search_dateorder_end = dol_mktime(23, 59, 59, GETPOST('search_dateorder_end_month', 'int'), GETPOST('search_dateorder_end_day', 'int'), GETPOST('search_dateorder_end_year', 'int')); $search_datedelivery_start = dol_mktime(0, 0, 0, GETPOST('search_datedelivery_start_month', 'int'), GETPOST('search_datedelivery_start_day', 'int'), GETPOST('search_datedelivery_start_year', 'int')); $search_datedelivery_end = dol_mktime(23, 59, 59, GETPOST('search_datedelivery_end_month', 'int'), GETPOST('search_datedelivery_end_day', 'int'), GETPOST('search_datedelivery_end_year', 'int')); + $search_product_category = GETPOST('search_product_category', 'int'); $search_ref = GETPOST('search_ref', 'alpha') != '' ?GETPOST('search_ref', 'alpha') : GETPOST('sref', 'alpha'); $search_ref_customer = GETPOST('search_ref_customer', 'alpha'); $search_company = GETPOST('search_company', 'alpha'); $search_company_alias = GETPOST('search_company_alias', 'alpha'); +$search_parent_name = trim(GETPOST('search_parent_name', 'alphanohtml')); $search_town = GETPOST('search_town', 'alpha'); $search_zip = GETPOST('search_zip', 'alpha'); -$search_state = GETPOST("search_state", 'alpha'); -$search_country = GETPOST("search_country", 'int'); -$search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); +$search_state = GETPOST('search_state', 'alpha'); +$search_country = GETPOST('search_country', 'int'); +$search_type_thirdparty = GETPOST('search_type_thirdparty', 'int'); $sall = trim((GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $socid = GETPOST('socid', 'int'); $search_user = GETPOST('search_user', 'int'); $search_sale = GETPOST('search_sale', 'int'); -$search_total_ht = GETPOST('search_total_ht', 'alpha'); + +$search_total_ht = GETPOST('search_total_ht', 'alpha'); $search_total_vat = GETPOST('search_total_vat', 'alpha'); $search_total_ttc = GETPOST('search_total_ttc', 'alpha'); $search_warehouse = GETPOST('search_warehouse', 'int'); + $search_multicurrency_code = GETPOST('search_multicurrency_code', 'alpha'); $search_multicurrency_tx = GETPOST('search_multicurrency_tx', 'alpha'); -$search_multicurrency_montant_ht = GETPOST('search_multicurrency_montant_ht', 'alpha'); +$search_multicurrency_montant_ht = GETPOST('search_multicurrency_montant_ht', 'alpha'); $search_multicurrency_montant_vat = GETPOST('search_multicurrency_montant_vat', 'alpha'); $search_multicurrency_montant_ttc = GETPOST('search_multicurrency_montant_ttc', 'alpha'); + $search_login = GETPOST('search_login', 'alpha'); $search_categ_cus = GETPOST("search_categ_cus", 'int'); $optioncss = GETPOST('optioncss', 'alpha'); @@ -103,10 +113,11 @@ $search_remove_btn = GETPOST('button_removefilter', 'alpha'); $search_project_ref = GETPOST('search_project_ref', 'alpha'); $search_project = GETPOST('search_project', 'alpha'); $search_shippable = GETPOST('search_shippable', 'aZ09'); -$search_fk_cond_reglement = GETPOST("search_fk_cond_reglement", 'int'); -$search_fk_shipping_method = GETPOST("search_fk_shipping_method", 'int'); -$search_fk_mode_reglement = GETPOST("search_fk_mode_reglement", 'int'); -$search_fk_input_reason = GETPOST("search_fk_input_reason", 'int'); + +$search_fk_cond_reglement = GETPOST('search_fk_cond_reglement', 'int'); +$search_fk_shipping_method = GETPOST('search_fk_shipping_method', 'int'); +$search_fk_mode_reglement = GETPOST('search_fk_mode_reglement', 'int'); +$search_fk_input_reason = GETPOST('search_fk_input_reason', 'int'); // Security check $id = (GETPOST('orderid') ?GETPOST('orderid', 'int') : GETPOST('id', 'int')); @@ -165,10 +176,11 @@ $checkedtypetiers = 0; $arrayfields = array( 'c.ref'=>array('label'=>"Ref", 'checked'=>1, 'position'=>5), 'c.ref_client'=>array('label'=>"RefCustomerOrder", 'checked'=>-1, 'position'=>10), - 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>-1, 'enabled'=>(empty($conf->projet->enabled) ? 0 : 1), 'position'=>20), - 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(empty($conf->projet->enabled) ? 0 : 1), 'position'=>25), + 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>-1, 'enabled'=>(!isModEnabled('project') ? 0 : 1), 'position'=>20), + 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(!isModEnabled('project') ? 0 : 1), 'position'=>25), 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1, 'position'=>30), 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>-1, 'position'=>31), + 's2.nom'=>array('label'=>'ParentCompany', 'position'=>32, 'checked'=>0), 's.town'=>array('label'=>"Town", 'checked'=>-1, 'position'=>35), 's.zip'=>array('label'=>"Zip", 'checked'=>-1, 'position'=>40), 'state.nom'=>array('label'=>"StateShort", 'checked'=>0, 'position'=>45), @@ -176,34 +188,35 @@ $arrayfields = array( 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>55), 'c.date_commande'=>array('label'=>"OrderDateShort", 'checked'=>1, 'position'=>60), 'c.date_delivery'=>array('label'=>"DateDeliveryPlanned", 'checked'=>1, 'enabled'=>empty($conf->global->ORDER_DISABLE_DELIVERY_DATE), 'position'=>65), - 'c.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>-1, 'position'=>66 , 'enabled'=>!empty($conf->expedition->enabled)), + 'c.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>-1, 'position'=>66 , 'enabled'=>isModEnabled("expedition")), 'c.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>-1, 'position'=>67), 'c.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>-1, 'position'=>68), 'c.fk_input_reason'=>array('label'=>"Channel", 'checked'=>-1, 'position'=>69), 'c.total_ht'=>array('label'=>"AmountHT", 'checked'=>1, 'position'=>75), 'c.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0, 'position'=>80), 'c.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0, 'position'=>85), - 'c.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>90), - 'c.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>95), - 'c.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>100), - 'c.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>105), - 'c.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>110), + 'c.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1), 'position'=>90), + 'c.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1), 'position'=>95), + 'c.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1), 'position'=>100), + 'c.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1), 'position'=>105), + 'c.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1), 'position'=>110), 'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>115), 'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>0, 'position'=>116), - 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), - 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), - 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), - 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), + 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") ? 0 : 1)), + 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") ? 0 : 1)), + 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), + 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), 'c.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>120), 'c.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>125), 'c.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>130), - 'c.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES)), 'position'=>135), - 'c.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES)), 'position'=>140), - 'shippable'=>array('label'=>"Shippable", 'checked'=>1,'enabled'=>(!empty($conf->expedition->enabled)), 'position'=>990), + 'c.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PUBLIC_NOTES')), 'position'=>135), + 'c.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PRIVATE_NOTES')), 'position'=>140), + 'shippable'=>array('label'=>"Shippable", 'checked'=>1,'enabled'=>(isModEnabled("expedition")), 'position'=>990), 'c.facture'=>array('label'=>"Billed", 'checked'=>1, 'enabled'=>(empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)), 'position'=>995), 'c.import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>999), 'c.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000) ); + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -223,7 +236,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid'=>$socid); +$parameters = array('socid'=>$socid, 'arrayfields'=>&$arrayfields); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -243,6 +256,7 @@ if (empty($reshook)) { $search_ref_customer = ''; $search_company = ''; $search_company_alias = ''; + $search_parent_name = ''; $search_town = ''; $search_zip = ""; $search_state = ""; @@ -285,19 +299,19 @@ if (empty($reshook)) { // Mass actions $objectclass = 'Commande'; $objectlabel = 'Orders'; - $permissiontoread = $user->rights->commande->lire; - $permissiontoadd = $user->rights->commande->creer; - $permissiontodelete = $user->rights->commande->supprimer; + $permissiontoread = $user->hasRight("commande", "lire"); + $permissiontoadd = $user->hasRight("commande", "creer"); + $permissiontodelete = $user->hasRight("commande", "supprimer"); if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { - $permissiontovalidate = $user->rights->commande->order_advance->validate; - $permissiontoclose = $user->rights->commande->order_advance->close; - $permissiontocancel = $user->rights->commande->order_advance->annuler; - $permissiontosendbymail = $user->rights->commande->order_advance->send; + $permissiontovalidate = $user->hasRight("commande", "order_advance", "validate"); + $permissiontoclose = $user->hasRight("commande", "order_advance", "close"); + $permissiontocancel = $user->hasRight("commande", "order_advance", "annuler"); + $permissiontosendbymail = $user->hasRight("commande", "order_advance", "send"); } else { - $permissiontovalidate = $user->rights->commande->creer; - $permissiontoclose = $user->rights->commande->creer; - $permissiontocancel = $user->rights->commande->creer; - $permissiontosendbymail = $user->rights->commande->creer; + $permissiontovalidate = $user->hasRight("commande", "creer"); + $permissiontoclose = $user->hasRight("commande", "creer"); + $permissiontocancel = $user->hasRight("commande", "creer"); + $permissiontosendbymail = $user->hasRight("commande", "creer"); } $uploaddir = $conf->commande->multidir_output[$conf->entity]; $triggersendname = 'ORDER_SENTBYMAIL'; @@ -320,6 +334,8 @@ if (empty($reshook)) { $db->begin(); + $nbOrders = is_array($orders) ? count($orders) : 1; + foreach ($orders as $id_order) { $cmd = new Commande($db); if ($cmd->fetch($id_order) <= 0) { @@ -455,10 +471,11 @@ if (empty($reshook)) { $objecttmp->context['createfromclone']; - $rang = $lines[$i]->rang; + $rang = ($nbOrders > 1) ? -1 : $lines[$i]->rang; //there may already be rows from previous orders - if (!empty($createbills_onebythird)) + if (!empty($createbills_onebythird)) { $rang = $TFactThirdNbLines[$cmd->socid]; + } $result = $objecttmp->addline( $desc, @@ -562,6 +579,9 @@ if (empty($reshook)) { // Make a redirect to avoid to bill twice if we make a refresh or back $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -663,14 +683,14 @@ if ($action == 'validate' && $permissiontoadd) { $idwarehouse = 0; } if ($objecttmp->valid($user, $idwarehouse)) { - setEventMessage($langs->trans('hasBeenValidated', $objecttmp->ref), 'mesgs'); + setEventMessages($langs->trans('hasBeenValidated', $objecttmp->ref), null, 'mesgs'); } else { - setEventMessage($objecttmp->error, $objecttmp->errors, 'errors'); + setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); $error++; } } else { $langs->load("errors"); - setEventMessage($langs->trans('ErrorIsNotADraft', $objecttmp->ref), 'errors'); + setEventMessages($langs->trans('ErrorIsNotADraft', $objecttmp->ref), null, 'errors'); $error++; } } else { @@ -694,14 +714,14 @@ if ($action == 'shipped' && $permissiontoadd) { if ($objecttmp->fetch($checked)) { if ($objecttmp->statut == 1 || $objecttmp->statut == 2) { if ($objecttmp->cloture($user)) { - setEventMessage($langs->trans('PassedInClosedStatus', $objecttmp->ref), 'mesgs'); + setEventMessages($langs->trans('PassedInClosedStatus', $objecttmp->ref), null, 'mesgs'); } else { - setEventMessage($langs->trans('CantBeClosed'), 'errors'); + setEventMessages($langs->trans('CantBeClosed'), null, 'errors'); $error++; } } else { $langs->load("errors"); - setEventMessage($langs->trans('ErrorIsNotADraft', $objecttmp->ref), 'errors'); + setEventMessages($langs->trans('ErrorIsNotADraft', $objecttmp->ref), null, 'errors'); $error++; } } else { @@ -716,6 +736,7 @@ if ($action == 'shipped' && $permissiontoadd) { } } } + // Closed records if (!$error && $massaction === 'setbilled' && $permissiontoclose) { $db->begin(); @@ -752,32 +773,39 @@ if (!$error && $massaction === 'setbilled' && $permissiontoclose) { } } + /* * View */ + $now = dol_now(); $form = new Form($db); $formother = new FormOther($db); $formfile = new FormFile($db); $formmargin = null; -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { $formmargin = new FormMargin($db); } $companystatic = new Societe($db); +$company_url_list = array(); $formcompany = new FormCompany($db); $projectstatic = new Project($db); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $title = $langs->trans("Orders"); $help_url = "EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; -// llxHeader('',$title,$help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0 || $search_user > 0) { +if ($sall || $search_user > 0) { $sql = 'SELECT DISTINCT'; } -$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; +$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client,'; +$sql .= " s.parent as fk_parent,"; +$sql .= " s2.nom as name2,"; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; $sql .= " country.code as country_code,"; @@ -792,17 +820,23 @@ $sql .= ' c.fk_input_reason, c.import_key'; if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { $sql .= ", cc.fk_categorie, cc.fk_soc"; } + // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); } } + // Add fields from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s'; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s2 ON s2.rowid = s.parent"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; @@ -813,12 +847,9 @@ $sql .= ', '.MAIN_DB_PREFIX.'commande as c'; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."commande_extrafields as ef on (c.rowid = ef.fk_object)"; } -if ($sall || $search_product_category > 0) { +if ($sall) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet as pd ON c.rowid=pd.fk_commande'; } -if ($search_product_category > 0) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; -} $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = c.fk_projet"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON c.fk_user_author = u.rowid'; @@ -833,14 +864,11 @@ if ($search_user > 0) { // Add table from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; $sql .= ' WHERE c.fk_soc = s.rowid'; $sql .= ' AND c.entity IN ('.getEntity('commande').')'; -if ($search_product_category > 0) { - $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); -} if ($socid > 0) { $sql .= ' AND s.rowid = '.((int) $socid); } @@ -914,11 +942,18 @@ if ($search_country) { if ($search_type_thirdparty && $search_type_thirdparty != '-1') { $sql .= " AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).')'; } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); +if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } -if ($search_company_alias) { - $sql .= natural_search('s.name_alias', $search_company_alias); +if ($search_parent_name) { + $sql .= natural_search('s2.nom', $search_parent_name); } if ($search_sale > 0) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); @@ -980,34 +1015,73 @@ if ($search_fk_mode_reglement > 0) { if ($search_fk_input_reason > 0) { $sql .= " AND c.fk_input_reason = ".((int) $search_fk_input_reason); } - +// Search for tag/category ($searchCategoryProductList is an array of ID) +$searchCategoryProductOperator = -1; +$searchCategoryProductList = array($search_product_category); +if (!empty($searchCategoryProductList)) { + $searchCategoryProductSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."commandedet as cd WHERE cd.fk_commande = c.rowid AND cd.fk_product = ck.fk_product)"; + } elseif (intval($searchCategoryProduct) > 0) { + if ($searchCategoryProductOperator == 0) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."commandedet as cd WHERE cd.fk_commande = c.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProduct); + } + } + } + if ($listofcategoryid) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."commandedet as cd WHERE cd.fk_commande = c.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProductOperator == 1) { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } + } else { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; // Add HAVING from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); @@ -1061,7 +1135,9 @@ if ($resql) { llxHeader('', $title, $help_url); $param = ''; - + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -1104,6 +1180,9 @@ if ($resql) { if ($search_company_alias) { $param .= '&search_company_alias='.urlencode($search_company_alias); } + if ($search_parent_name != '') { + $param .= '&search_parent_name='.urlencode($search_parent_name); + } if ($search_ref_customer) { $param .= '&search_ref_customer='.urlencode($search_ref_customer); } @@ -1194,7 +1273,7 @@ if ($resql) { // Add $param from hooks $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $param .= $hookmanager->resPrint; // List of mass actions available @@ -1214,7 +1293,7 @@ if ($resql) { if ($permissiontocancel) { $arrayofmassactions['cancelorders'] = img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Cancel"); } - if ($user->rights->facture->creer) { + if (isModEnabled('facture') && $user->hasRight("facture", "creer")) { $arrayofmassactions['createbills'] = img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans("CreateInvoiceForThisCustomer"); } if ($permissiontoclose) { @@ -1232,7 +1311,10 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.$socid; } - $newcardbutton = dolGetButtonTitle($langs->trans('NewOrder'), '', 'fa fa-plus-circle', $url, '', $contextpage == 'orderlist' && $permissiontoadd); + $newcardbutton = ''; + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('NewOrder'), '', 'fa fa-plus-circle', $url, '', $contextpage == 'orderlist' && $permissiontoadd); // Lines of title fields print '
    '; @@ -1247,6 +1329,8 @@ if ($resql) { print ''; print ''; print ''; + print ''; + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'order', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -1266,9 +1350,9 @@ if ($resql) { if ($massaction == 'createbills') { print ''; - print ''; + print '
    '; print ''; - print ''; print ''; print ''; print '
    '; + print ''; print $langs->trans('DateInvoice'); print ''; @@ -1288,9 +1372,10 @@ if ($resql) { print $langs->trans('ValidateInvoices'); print ''; - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_BILL)) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_BILL)) { print $form->selectyesno('validate_invoices', 0, 1, 1); - print ' ('.$langs->trans("AutoValidationNotPossibleWhenStockIsDecreasedOnInvoiceValidation").')'; + $langs->load("errors"); + print ' ('.$langs->trans("WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal").')'; } else { print $form->selectyesno('validate_invoices', 0, 1); } @@ -1303,12 +1388,11 @@ if ($resql) { print '
    '; - print '
    '; print '
    '; print ' '; print ''; print '
    '; - print '
    '; + print '

    '; } if ($sall) { @@ -1320,8 +1404,8 @@ if ($resql) { $moreforfilter = ''; - // If the user can view prospects other than his' - if ($user->rights->user->user->lire) { + // If the user can view prospects? sales other than his own + if ($user->hasRight("user", "user", "lire")) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -1329,14 +1413,15 @@ if ($resql) { $moreforfilter .= '
    '; } // If the user can view other users - if ($user->rights->user->user->lire) { + if ($user->hasRight("user", "user", "lire")) { $moreforfilter .= '
    '; $tmptitle = $langs->trans('LinkedToSpecificUsers'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250 widthcentpercentminusx'); $moreforfilter .= '
    '; } - // If the user can view prospects other than his' - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + + // If the user can view other products/services than his own + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire") && ($user->hasRight("produit", "lire") || $user->hasRight("service", "lire"))) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('IncludingProductWithTag'); @@ -1344,14 +1429,16 @@ if ($resql) { $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1); $moreforfilter .= '
    '; } - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + // If Categories are enabled & user has rights to see + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire")) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle, 'maxwidth300 widthcentpercentminusx'); $moreforfilter .= '
    '; } - if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + // If Stock is enabled + if (isModEnabled('stock') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); $moreforfilter .= '
    '; @@ -1360,7 +1447,7 @@ if ($resql) { $moreforfilter .= '
    '; } $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $moreforfilter .= $hookmanager->resPrint; } else { @@ -1374,7 +1461,7 @@ if ($resql) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); if (GETPOST('autoselectall', 'int')) { @@ -1391,6 +1478,14 @@ if ($resql) { print ''."\n"; print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + // Ref if (!empty($arrayfields['c.ref']['checked'])) { print ''; } + // Parent company + if (!empty($arrayfields['s2.nom']['checked'])) { + print ''; + } // Town if (!empty($arrayfields['s.town']['checked'])) { print ''; @@ -1479,13 +1580,13 @@ if ($resql) { // Payment term if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { print ''; } // Payment mode if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { print ''; } // Channel @@ -1494,60 +1595,61 @@ if ($resql) { $form->selectInputReason($search_fk_input_reason, 'search_fk_input_reason', '', 1, '', 1); print ''; } + // Amount HT / net if (!empty($arrayfields['c.total_ht']['checked'])) { - // Amount print ''; } + // Amount of VAT if (!empty($arrayfields['c.total_vat']['checked'])) { - // Amount print ''; } + // Total Amount (TTC / gross) if (!empty($arrayfields['c.total_ttc']['checked'])) { - // Amount print ''; } + // Currency if (!empty($arrayfields['c.multicurrency_code']['checked'])) { - // Currency print ''; } + // Currency rate if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { - // Currency rate print ''; } + // Amount HT/net in foreign currency if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { - // Amount print ''; } + // VAT in foreign currency if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { - // Amount VAT print ''; } + // Amount/Total (TTC / gross) in foreign currency if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { - // Amount print ''; } + // Author if (!empty($arrayfields['u.login']['checked'])) { - // Author print ''; } + // Sales Representative if (!empty($arrayfields['sale_representative']['checked'])) { print ''; } @@ -1567,12 +1669,15 @@ if ($resql) { print ''; } + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; + // Fields from hook $parameters = array('arrayfields'=>$arrayfields); - $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; + // Date creation if (!empty($arrayfields['c.datec']['checked'])) { print ''; } // Action column - print ''; - + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } print "\n"; // Fields title print ''; + + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + } if (!empty($arrayfields['c.ref']['checked'])) { print_liste_field_titre($arrayfields['c.ref']['label'], $_SERVER["PHP_SELF"], 'c.ref', '', $param, '', $sortfield, $sortorder); } @@ -1670,6 +1780,9 @@ if ($resql) { if (!empty($arrayfields['s.name_alias']['checked'])) { print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], 's.name_alias', '', $param, '', $sortfield, $sortorder); } + if (!empty($arrayfields['s2.nom']['checked'])) { + print_liste_field_titre($arrayfields['s2.nom']['label'], $_SERVER['PHP_SELF'], 's2.nom', '', $param, '', $sortfield, $sortorder); + } if (!empty($arrayfields['s.town']['checked'])) { print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); } @@ -1755,8 +1868,10 @@ if ($resql) { ), 'pos' => array(), ); + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; + // Hook fields $parameters = array( 'arrayfields' => $arrayfields, @@ -1765,7 +1880,7 @@ if ($resql) { 'sortorder' => $sortorder, 'totalarray' => &$totalarray, ); - $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; if (!empty($arrayfields['c.datec']['checked'])) { print_liste_field_titre($arrayfields['c.datec']['label'], $_SERVER["PHP_SELF"], "c.date_creation", "", $param, '', $sortfield, $sortorder, 'center nowrap '); @@ -1794,7 +1909,9 @@ if ($resql) { if (!empty($arrayfields['c.fk_statut']['checked'])) { print_liste_field_titre($arrayfields['c.fk_statut']['label'], $_SERVER["PHP_SELF"], "c.fk_statut", "", $param, '', $sortfield, $sortorder, 'center '); } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + } print ''."\n"; $total = 0; @@ -1809,7 +1926,7 @@ if ($resql) { $i = 0; $with_margin_info = false; - if (!empty($conf->margin->enabled) && ( + if (isModEnabled('margin') && ( !empty($arrayfields['total_pa']['checked']) || !empty($arrayfields['total_margin']['checked']) || !empty($arrayfields['total_margin_rate']['checked']) @@ -1821,8 +1938,10 @@ if ($resql) { $total_ht = 0; $total_margin = 0; + $savnbfield = $totalarray['nbfield']; + $totalarray = array(); + $totalarray['nbfield'] = 0; $imaxinloop = ($limit ? min($num, $limit) : $num); - $last_num = min($num, $limit); while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); @@ -1836,6 +1955,7 @@ if ($resql) { $companystatic->name = $obj->name; $companystatic->name_alias = $obj->alias; $companystatic->client = $obj->client; + $companystatic->fournisseur = $obj->fournisseur; $companystatic->code_client = $obj->code_client; $companystatic->email = $obj->email; $companystatic->phone = $obj->phone; @@ -1844,7 +1964,7 @@ if ($resql) { $companystatic->town = $obj->town; $companystatic->country_code = $obj->country_code; if (!isset($getNomUrl_cache[$obj->socid])) { - $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1, 'customer'); + $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1, 'customer', 100, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); } $generic_commande->id = $obj->rowid; @@ -1852,7 +1972,6 @@ if ($resql) { $generic_commande->statut = $obj->fk_statut; $generic_commande->billed = $obj->billed; $generic_commande->date = $db->jdate($obj->date_commande); - $generic_commande->date_livraison = $db->jdate($obj->date_delivery); // deprecated $generic_commande->delivery_date = $db->jdate($obj->date_delivery); $generic_commande->ref_client = $obj->ref_client; $generic_commande->total_ht = $obj->total_ht; @@ -1861,6 +1980,9 @@ if ($resql) { $generic_commande->note_public = $obj->note_public; $generic_commande->note_private = $obj->note_private; + $generic_commande->thirdparty = $companystatic; + + $projectstatic->id = $obj->project_id; $projectstatic->ref = $obj->project_ref; $projectstatic->title = $obj->project_label; @@ -1873,585 +1995,669 @@ if ($resql) { $total_margin += $marginInfo['total_margin']; } - print ''; - - // Ref - if (!empty($arrayfields['c.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } + print $generic_commande->getKanbanView(''); - // Project ref - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } + } else { + print ''; - // Project label - if (!empty($arrayfields['p.title']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; + } + + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Alias name - if (!empty($arrayfields['s.name_alias']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Order date - if (!empty($arrayfields['c.date_commande']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Plannned date of delivery - if (!empty($arrayfields['c.date_delivery']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Shipping Method - if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment terms - if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment mode - if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Channel - if (!empty($arrayfields['c.fk_input_reason']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['c.total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ht'; - } - if (isset($totalarray['val']['c.total_ht'])) { - $totalarray['val']['c.total_ht'] += $obj->total_ht; - } else { - $totalarray['val']['c.total_ht'] = $obj->total_ht; - } - } - // Amount VAT - if (!empty($arrayfields['c.total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'c.total_tva'; - } - $totalarray['val']['c.total_tva'] += $obj->total_tva; - } - // Amount TTC - if (!empty($arrayfields['c.total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ttc'; - } - $totalarray['val']['c.total_ttc'] += $obj->total_ttc; - } - - // Currency - if (!empty($arrayfields['c.multicurrency_code']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency rate - if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT - if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC - if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - $userstatic->id = $obj->fk_user_author; - $userstatic->login = $obj->login; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_statut; - $userstatic->entity = $obj->entity; - $userstatic->photo = $obj->photo; - $userstatic->office_phone = $obj->office_phone; - $userstatic->office_fax = $obj->office_fax; - $userstatic->user_mobile = $obj->user_mobile; - $userstatic->job = $obj->job; - $userstatic->gender = $obj->gender; - - // Author - if (!empty($arrayfields['u.login']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['sale_representative']['checked'])) { - // Sales representatives - print ''; + if (!$i) { + $totalarray['nbfield']++; } - $nbofsalesrepresentative = count($listsalesrepresentatives); - if ($nbofsalesrepresentative > 6) { - // We print only number - print $nbofsalesrepresentative; - } elseif ($nbofsalesrepresentative > 0) { - $j = 0; - foreach ($listsalesrepresentatives as $val) { - $userstatic->id = $val['id']; - $userstatic->lastname = $val['lastname']; - $userstatic->firstname = $val['firstname']; - $userstatic->email = $val['email']; - $userstatic->statut = $val['statut']; - $userstatic->entity = $val['entity']; - $userstatic->photo = $val['photo']; - $userstatic->login = $val['login']; - $userstatic->office_phone = $val['office_phone']; - $userstatic->office_fax = $val['office_fax']; - $userstatic->user_mobile = $val['user_mobile']; - $userstatic->job = $val['job']; - $userstatic->gender = $val['gender']; - //print '
    ': - print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); - $j++; - if ($j < $nbofsalesrepresentative) { - print ' '; + } + + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print '
    '; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project label + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total buying or cost price - if (!empty($arrayfields['total_pa']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Alias name + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Total margin - if (!empty($arrayfields['total_margin']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Parent company + if (!empty($arrayfields['s2.nom']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - $totalarray['val']['total_margin'] += $marginInfo['total_margin']; - } - // Total margin rate - if (!empty($arrayfields['total_margin_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Total mark rate - if (!empty($arrayfields['total_mark_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - if ($i >= $last_num - 1) { - if (!empty($total_ht)) { - $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Order date + if (!empty($arrayfields['c.date_commande']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Plannned date of delivery + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Shipping Method + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Payment terms + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Payment mode + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Channel + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Amount HT/net + if (!empty($arrayfields['c.total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ht'; + } + if (isset($totalarray['val']['c.total_ht'])) { + $totalarray['val']['c.total_ht'] += $obj->total_ht; } else { - $totalarray['val']['total_mark_rate'] = ''; + $totalarray['val']['c.total_ht'] = $obj->total_ht; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - // Date creation - if (!empty($arrayfields['c.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Amount VAT + if (!empty($arrayfields['c.total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'c.total_tva'; + } + if (isset($totalarray['val']['c.total_tva'])) { + $totalarray['val']['c.total_tva'] += $obj->total_tva; + } else { + $totalarray['val']['c.total_tva'] = $obj->total_tva; + } } - } - // Date modification - if (!empty($arrayfields['c.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Amount TTC / gross + if (!empty($arrayfields['c.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ttc'; + } + if (isset($totalarray['val']['c.total_ttc'])) { + $totalarray['val']['c.total_ttc'] += $obj->total_ttc; + } else { + $totalarray['val']['c.total_ttc'] = $obj->total_ttc; + } } - } - // Date cloture - if (!empty($arrayfields['c.date_cloture']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Currency + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Note public - if (!empty($arrayfields['c.note_public']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Currency rate + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Note private - if (!empty($arrayfields['c.note_private']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Amount HT/net in foreign currency + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT in foreign currency + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC / gross in foreign currency + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Show shippable Icon (this creates subloops, so may be slow) - if (!empty($arrayfields['shippable']['checked'])) { - print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } - if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0) { // If line is a product and not a service - $nbprod++; // order contains real products - $generic_product->id = $generic_commande->lines[$lig]->fk_product; - - // Get local and virtual stock and store it into cache - if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) { - $generic_product->load_stock('nobatch'); // ->load_virtual_stock() is already included into load_stock() - $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_reel; - $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; - } else { - $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel']; - $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; - } - - if ($reliquat > $generic_product->stock_reel) { - $notshippable++; - } - if (empty($conf->global->SHIPPABLE_ORDER_ICON_IN_LIST)) { // Default code. Default should be this case. - $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->product_ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); - $text_info .= ' - '.$langs->trans("Stock").': '.$generic_product->stock_reel.''; - $text_info .= ' - '.$langs->trans("VirtualStock").': '.$generic_product->stock_theorique.''; - $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); - $text_info .= '
    '; - } else { // BUGGED CODE. - // DOES NOT TAKE INTO ACCOUNT MANUFACTURING. THIS CODE SHOULD BE USELESS. PREVIOUS CODE SEEMS COMPLETE. - // COUNT STOCK WHEN WE SHOULD ALREADY HAVE VALUE - // Detailed virtual stock, looks bugged, uncomplete and need heavy load. - // stock order and stock order_supplier - $stock_order = 0; - $stock_order_supplier = 0; - if (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { // What about other options ? - if (!empty($conf->commande->enabled)) { - if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'])) { - $generic_product->load_stats_commande(0, '1,2'); - $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'] = $generic_product->stats_commande['qty']; - } else { - $generic_product->stats_commande['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer']; - } - $stock_order = $generic_product->stats_commande['qty']; - } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { - if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) { - $generic_product->load_stats_commande_fournisseur(0, '3'); - $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty']; - } else { - $generic_product->stats_commande_fournisseur['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier']; - } - $stock_order_supplier = $generic_product->stats_commande_fournisseur['qty']; - } - } - $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); - $text_stock_reel = $generic_product->stock_reel.'/'.$stock_order; - if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) { - $warning++; - $text_warning .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; - } - if ($reliquat > $generic_product->stock_reel) { - $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; - } else { - $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; - } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { - $text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier; - } - $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); - $text_info .= '
    '; + // Sales representatives + if (!empty($arrayfields['sale_representative']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total buying or cost price + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total margin + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + } + $totalarray['val']['total_margin'] += $marginInfo['total_margin']; + } + + // Total margin rate + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total mark rate + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + } + if ($i >= $imaxinloop - 1) { + if (!empty($total_ht)) { + $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); } else { - $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); - $text_info = $text_icon.' '.$langs->trans('NonShippable').'
    '.$text_info; + $totalarray['val']['total_mark_rate'] = ''; } } + } - if ($nbprod) { - print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); - } - if ($warning) { // Always false in default mode - print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
    '.$text_warning, 2, 1, img_picto('', 'error'), '', 2); + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Billed - if (!empty($arrayfields['c.facture']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Import key - if (!empty($arrayfields['c.import_key']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['c.fk_statut']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Action column - print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - print "\n"; + // Note public + if (!empty($arrayfields['c.note_public']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } - $total += $obj->total_ht; - $subtotal += $obj->total_ht; + // Note private + if (!empty($arrayfields['c.note_private']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Show shippable Icon (this creates subloops, so may be slow) + if (!empty($arrayfields['shippable']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Billed + if (!empty($arrayfields['c.facture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Import key + if (!empty($arrayfields['c.import_key']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Status + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + print "\n"; + + $total += $obj->total_ht; + $subtotal += $obj->total_ht; + } $i++; } @@ -2472,7 +2678,7 @@ if ($resql) { $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); - $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -1423,6 +1518,12 @@ if ($resql) { print ''; print ''; + print ''; + print ''; - $form->select_conditions_paiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1); + print $form->getSelectConditionsPaiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1); print ''; - $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1); + print $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1, '', 1); print ''; print ''; print ''; print ''; print ''; print ''; print ''; print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1); print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; @@ -1629,7 +1734,7 @@ if ($resql) { } // Status if (!empty($arrayfields['c.fk_statut']['checked'])) { - print ''; + print ''; $liststatus = array( Commande::STATUS_DRAFT=>$langs->trans("StatusOrderDraftShort"), Commande::STATUS_VALIDATED=>$langs->trans("StatusOrderValidated"), @@ -1639,19 +1744,24 @@ if ($resql) { -2=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"), Commande::STATUS_CANCELED=>$langs->trans("StatusOrderCanceledShort") ); - print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'maxwidth125', 1); + print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; - print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1); - - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->commande->multidir_output[$conf->entity].'/'.dol_sanitizeFileName($obj->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; - print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); - - print '
    '; + print '
    '; } - } - // Ref customer - if (!empty($arrayfields['c.ref_client']['checked'])) { - print '
    '.$obj->ref_client.''; - if ($obj->project_id > 0) { - print $projectstatic->getNomUrl(1); + if ($i == ($imaxinloop - 1)) { + print ''; + print '
    '; - if ($obj->project_id > 0) { - print $projectstatic->title; - } - print ''; - print $getNomUrl_cache[$obj->socid]; - - // If module invoices enabled and user with invoice creation permissions - if (isModEnabled('facture') && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { - if ($user->rights->facture->creer) { - if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) { - print ' '; - print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + print ''; + print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1); + + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->commande->multidir_output[$conf->entity].'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); + + print ''; - print $obj->alias; - print ''; - print $obj->town; - print ''; - print $obj->zip; - print '".$obj->state_name."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (empty($typenArray)) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - print dol_print_date($db->jdate($obj->date_commande), 'day'); - // Warning late icon and note - if ($generic_commande->hasDelay()) { - print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); - } - print ''; - print dol_print_date($db->jdate($obj->date_delivery), 'dayhour'); - print ''; - $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); - print ''; - $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); - print ''; - $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); - print ''; - $form->formInputReason($_SERVER['PHP_SELF'], $obj->fk_input_reason, 'none', ''); - print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; - if ($userstatic->id) { - print $userstatic->getNomUrl(-1); - } else { - print ' '; - } - print "'; - if ($obj->socid > 0) { - $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); - if ($listsalesrepresentatives < 0) { - dol_print_error($db); + // Ref customer + if (!empty($arrayfields['c.ref_client']['checked'])) { + print ''.$obj->ref_client.''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if ($obj->project_id > 0) { + print $projectstatic->title; + } + print ''; + print $getNomUrl_cache[$obj->socid]; + + // If module invoices enabled and user with invoice creation permissions + if (isModEnabled('facture') && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { + if ($user->rights->facture->creer) { + if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) { + print ' '; + print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').''; } - //print ''; } } - //else print $langs->trans("NoSalesRepresentativeAffected"); - } else { - print ' '; + print ''.price($marginInfo['pa_total']).''; + print $obj->alias; + print ''.price($marginInfo['total_margin']).''; + if ($obj->fk_parent > 0) { + if (!isset($company_url_list[$obj->fk_parent])) { + $companyparent = new Societe($db); + $res = $companyparent->fetch($obj->fk_parent); + if ($res > 0) { + $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1); + } + } + if (isset($company_url_list[$obj->fk_parent])) { + print $company_url_list[$obj->fk_parent]; + } + } + print "'; + print $obj->town; + print ''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''; + print $obj->zip; + print ''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').'".$obj->state_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + print dol_print_date($db->jdate($obj->date_commande), 'day'); + // Warning late icon and note + if ($generic_commande->hasDelay()) { + print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); + } + print ''; + print dol_print_date($db->jdate($obj->date_delivery), 'dayhour'); + print ''; + $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); + print ''; + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); + print ''; + $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); + print ''; + $form->formInputReason($_SERVER['PHP_SELF'], $obj->fk_input_reason, 'none', ''); + print ''.price($obj->total_ht)."'; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''.price($obj->total_tva)."'; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''.price($obj->total_ttc)."'; - print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); - print ''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; - print dol_string_nohtmltag($obj->note_public); - print ''; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'; - print dol_string_nohtmltag($obj->note_private); - print ''.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; - if (!empty($show_shippable_command) && !empty($conf->stock->enabled)) { - if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) { - $generic_commande->getLinesArray(); // Load array ->lines - $generic_commande->loadExpeditions(); // Load array ->expeditions + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; - $numlines = count($generic_commande->lines); // Loop on each line of order - for ($lig = 0; $lig < $numlines; $lig++) { - $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id]; + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print ''; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } else { + print ' '; + } + print "'; + if ($obj->socid > 0) { + $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->office_phone = $val['office_phone']; + $userstatic->office_fax = $val['office_fax']; + $userstatic->user_mobile = $val['user_mobile']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + //print '
    ': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; } + //print '
    '; } } - if ($notshippable == 0) { - $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); - $text_info = $text_icon.' '.$langs->trans('Shippable').'
    '.$text_info; + //else print $langs->trans("NoSalesRepresentativeAffected"); + } else { + print ' '; + } + print '
    '.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''.yn($obj->billed).''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''.$obj->import_key.''.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Date cloture + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); + print '
    '; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; + if (!empty($show_shippable_command) && isModEnabled('stock')) { + if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) { + $generic_commande->getLinesArray(); // Load array ->lines + $generic_commande->loadExpeditions(); // Load array ->expeditions + + $numlines = count($generic_commande->lines); // Loop on each line of order + for ($lig = 0; $lig < $numlines; $lig++) { + if (isset($generic_commande->expeditions[$generic_commande->lines[$lig]->id])) { + $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id]; + } else { + $reliquat = $generic_commande->lines[$lig]->qty; + } + if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0) { // If line is a product and not a service + $nbprod++; // order contains real products + $generic_product->id = $generic_commande->lines[$lig]->fk_product; + + // Get local and virtual stock and store it into cache + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) { + $generic_product->load_stock('nobatch,warehouseopen'); // ->load_virtual_stock() is already included into load_stock() + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_reel; + $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } else { + $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel']; + $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } + + if ($reliquat > $generic_product->stock_reel) { + $notshippable++; + } + if (empty($conf->global->SHIPPABLE_ORDER_ICON_IN_LIST)) { // Default code. Default should be this case. + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->product_ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_info .= ' - '.$langs->trans("Stock").': '.$generic_product->stock_reel.''; + $text_info .= ' - '.$langs->trans("VirtualStock").': '.$generic_product->stock_theorique.''; + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
    '; + } else { // BUGGED CODE. + // DOES NOT TAKE INTO ACCOUNT MANUFACTURING. THIS CODE SHOULD BE USELESS. PREVIOUS CODE SEEMS COMPLETE. + // COUNT STOCK WHEN WE SHOULD ALREADY HAVE VALUE + // Detailed virtual stock, looks bugged, uncomplete and need heavy load. + // stock order and stock order_supplier + $stock_order = 0; + $stock_order_supplier = 0; + if (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { // What about other options ? + if (isModEnabled('commande')) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'])) { + $generic_product->load_stats_commande(0, '1,2'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'] = $generic_product->stats_commande['qty']; + } else { + $generic_product->stats_commande['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer']; + } + $stock_order = $generic_product->stats_commande['qty']; + } + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) { + $generic_product->load_stats_commande_fournisseur(0, '3'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty']; + } else { + $generic_product->stats_commande_fournisseur['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier']; + } + $stock_order_supplier = $generic_product->stats_commande_fournisseur['qty']; + } + } + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_stock_reel = $generic_product->stock_reel.'/'.$stock_order; + if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) { + $warning++; + $text_warning .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ($reliquat > $generic_product->stock_reel) { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } else { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { + $text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier; + } + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
    '; + } + } + } + if ($notshippable == 0) { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); + $text_info = $text_icon.' '.$langs->trans('Shippable').'
    '.$text_info; + } else { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); + $text_info = $text_icon.' '.$langs->trans('NonShippable').'
    '.$text_info; + } + } + + if ($nbprod) { + print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); + } + if ($warning) { // Always false in default mode + print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
    '.$text_warning, 2, 1, img_picto('', 'error'), '', 2); + } + } + print '
    '.yn($obj->billed).''.$obj->import_key.''.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    '."\n"; diff --git a/htdocs/commande/list_det.php b/htdocs/commande/list_det.php new file mode 100644 index 00000000000..fd36f229e5c --- /dev/null +++ b/htdocs/commande/list_det.php @@ -0,0 +1,2168 @@ + + * Copyright (C) 2004-2019 Laurent Destailleur + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2013 Christophe Battarel + * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2015-2018 Frédéric France + * Copyright (C) 2015 Marcos García + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2016-2021 Ferran Marcet + * Copyright (C) 2018 Charlene Benke + * Copyright (C) 2021-2022 Anthony Berton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/commande/list.php + * \ingroup commande + * \brief Page to list orders + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +if (!empty($conf->margin->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php'; +} +require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("orders", 'sendings', 'deliveries', 'companies', 'compta', 'bills', 'stocks', 'products')); + +$action = GETPOST('action', 'aZ09'); +$massaction = GETPOST('massaction', 'alpha'); +$show_files = GETPOST('show_files', 'int'); +$confirm = GETPOST('confirm', 'alpha'); +$toselect = GETPOST('toselect', 'array'); +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'orderlistdet'; +$productobuy = GETPOST('productobuy', 'alpha'); +$productonly = GETPOST('productonly', 'alpha'); +$disablelinefree = GETPOST('disablelinefree', 'alpha'); + +$search_datecloture_start = GETPOST('search_datecloture_start', 'int'); +if (empty($search_datecloture_start)) { + $search_datecloture_start = dol_mktime(0, 0, 0, GETPOST('search_datecloture_startmonth', 'int'), GETPOST('search_datecloture_startday', 'int'), GETPOST('search_datecloture_startyear', 'int')); +} +$search_datecloture_end = GETPOST('search_datecloture_end', 'int'); +if (empty($search_datecloture_end)) { + $search_datecloture_end = dol_mktime(23, 59, 59, GETPOST('search_datecloture_endmonth', 'int'), GETPOST('search_datecloture_endday', 'int'), GETPOST('search_datecloture_endyear', 'int')); +} +$search_dateorder_start = dol_mktime(0, 0, 0, GETPOST('search_dateorder_start_month', 'int'), GETPOST('search_dateorder_start_day', 'int'), GETPOST('search_dateorder_start_year', 'int')); +$search_dateorder_end = dol_mktime(23, 59, 59, GETPOST('search_dateorder_end_month', 'int'), GETPOST('search_dateorder_end_day', 'int'), GETPOST('search_dateorder_end_year', 'int')); +$search_datedelivery_start = dol_mktime(0, 0, 0, GETPOST('search_datedelivery_start_month', 'int'), GETPOST('search_datedelivery_start_day', 'int'), GETPOST('search_datedelivery_start_year', 'int')); +$search_datedelivery_end = dol_mktime(23, 59, 59, GETPOST('search_datedelivery_end_month', 'int'), GETPOST('search_datedelivery_end_day', 'int'), GETPOST('search_datedelivery_end_year', 'int')); +$search_product_category = GETPOST('search_product_category', 'int'); + +// Détail commande +$search_refProduct = GETPOST('search_refProduct', 'alpha'); +$search_descProduct = GETPOST('search_descProduct', 'alpha'); + +$search_ref = GETPOST('search_ref', 'alpha') != '' ?GETPOST('search_ref', 'alpha') : GETPOST('sref', 'alpha'); +$search_ref_customer = GETPOST('search_ref_customer', 'alpha'); +$search_company = GETPOST('search_company', 'alpha'); +$search_company_alias = GETPOST('search_company_alias', 'alpha'); +$search_town = GETPOST('search_town', 'alpha'); +$search_zip = GETPOST('search_zip', 'alpha'); +$search_state = GETPOST("search_state", 'alpha'); +$search_country = GETPOST("search_country", 'int'); +$search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); +$sall = trim((GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); +$socid = GETPOST('socid', 'int'); +$search_user = GETPOST('search_user', 'int'); +$search_sale = GETPOST('search_sale', 'int'); +$search_total_ht = GETPOST('search_total_ht', 'alpha'); +$search_total_vat = GETPOST('search_total_vat', 'alpha'); +$search_total_ttc = GETPOST('search_total_ttc', 'alpha'); +$search_warehouse = GETPOST('search_warehouse', 'int'); +$search_multicurrency_code = GETPOST('search_multicurrency_code', 'alpha'); +$search_multicurrency_tx = GETPOST('search_multicurrency_tx', 'alpha'); +$search_multicurrency_montant_ht = GETPOST('search_multicurrency_montant_ht', 'alpha'); +$search_multicurrency_montant_vat = GETPOST('search_multicurrency_montant_vat', 'alpha'); +$search_multicurrency_montant_ttc = GETPOST('search_multicurrency_montant_ttc', 'alpha'); +$search_login = GETPOST('search_login', 'alpha'); +$search_categ_cus = GETPOST("search_categ_cus", 'int'); +$optioncss = GETPOST('optioncss', 'alpha'); +$search_billed = GETPOSTISSET('search_billed') ? GETPOST('search_billed', 'int') : GETPOST('billed', 'int'); +$search_status = GETPOST('search_status', 'int'); +$search_btn = GETPOST('button_search', 'alpha'); +$search_remove_btn = GETPOST('button_removefilter', 'alpha'); +$search_project_ref = GETPOST('search_project_ref', 'alpha'); +$search_project = GETPOST('search_project', 'alpha'); +$search_shippable = GETPOST('search_shippable', 'aZ09'); +$search_fk_cond_reglement = GETPOST("search_fk_cond_reglement", 'int'); +$search_fk_shipping_method = GETPOST("search_fk_shipping_method", 'int'); +$search_fk_mode_reglement = GETPOST("search_fk_mode_reglement", 'int'); +$search_fk_input_reason = GETPOST("search_fk_input_reason", 'int'); + +// Security check +$id = (GETPOST('orderid') ?GETPOST('orderid', 'int') : GETPOST('id', 'int')); +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'commande', $id, ''); + +$diroutputmassaction = $conf->commande->multidir_output[$conf->entity].'/temp/massgeneration/'.$user->id; + +// Load variable for pagination +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + $page = 0; +} // If $page is not defined, or '' or -1 or if we click on clear filters +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortfield) { + $sortfield = 'c.ref'; +} +if (!$sortorder) { + $sortorder = 'DESC'; +} + +$show_shippable_command = GETPOST('show_shippable_command', 'aZ09'); + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$object = new Commande($db); +$hookmanager->initHooks(array('orderlistdetail')); +$extrafields = new ExtraFields($db); + +// fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array( + 'c.ref'=>'Ref', + 'c.ref_client'=>'RefCustomerOrder', + 'pd.description'=>'Description', + 's.nom'=>"ThirdParty", + 's.name_alias'=>"AliasNameShort", + 's.zip'=>"Zip", + 's.town'=>"Town", + 'c.note_public'=>'NotePublic', +); +if (empty($user->socid)) { + $fieldstosearchall["c.note_private"] = "NotePrivate"; +} + +$checkedtypetiers = 0; +$arrayfields = array( + // Détail commande + 'pr.ref'=> array('label'=>'ProductRef', 'checked'=>1, 'position'=>1), + 'pr.desc'=> array('label'=>'ProductDescription', 'checked'=>1, 'position'=>1), + 'cdet.qty'=> array('label'=>'QtyOrdered', 'checked'=>1, 'position'=>1), + 'c.ref'=>array('label'=>"Ref", 'checked'=>1, 'position'=>5), + 'c.ref_client'=>array('label'=>"RefCustomerOrder", 'checked'=>-1, 'position'=>10), + 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>-1, 'enabled'=>(empty($conf->project->enabled) ? 0 : 1), 'position'=>20), + 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(empty($conf->project->enabled) ? 0 : 1), 'position'=>25), + 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1, 'position'=>30), + 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>-1, 'position'=>31), + 's.town'=>array('label'=>"Town", 'checked'=>-1, 'position'=>35), + 's.zip'=>array('label'=>"Zip", 'checked'=>-1, 'position'=>40), + 'state.nom'=>array('label'=>"StateShort", 'checked'=>0, 'position'=>45), + 'country.code_iso'=>array('label'=>"Country", 'checked'=>0, 'position'=>50), + 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>55), + 'c.date_commande'=>array('label'=>"OrderDateShort", 'checked'=>1, 'position'=>60), + 'c.date_delivery'=>array('label'=>"DateDeliveryPlanned", 'checked'=>1, 'enabled'=>empty($conf->global->ORDER_DISABLE_DELIVERY_DATE), 'position'=>65), + 'c.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>-1, 'position'=>66 , 'enabled'=>!empty($conf->expedition->enabled)), + 'c.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>-1, 'position'=>67), + 'c.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>-1, 'position'=>68), + 'c.fk_input_reason'=>array('label'=>"Channel", 'checked'=>-1, 'position'=>69), + 'cdet.total_ht'=>array('label'=>"AmountHT", 'checked'=>1, 'position'=>75), + 'c.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0, 'position'=>80), + 'cdet.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0, 'position'=>85), + 'c.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>90), + 'c.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>95), + 'c.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>100), + 'c.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>105), + 'c.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>110), + 'c.fk_warehouse'=>array('label'=>'Warehouse', 'checked'=>0, 'enabled'=>(empty($conf->stock->enabled) && empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER) ? 0 : 1), 'position'=>110), + 'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>115), + 'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>0, 'position'=>116), + 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), + 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), + 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), + 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), + 'c.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>120), + 'c.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>125), + 'c.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>130), + 'c.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES)), 'position'=>135), + 'c.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES)), 'position'=>140), + 'shippable'=>array('label'=>"Shippable", 'checked'=>1,'enabled'=>(!empty($conf->expedition->enabled)), 'position'=>990), + 'c.facture'=>array('label'=>"Billed", 'checked'=>1, 'enabled'=>(empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)), 'position'=>995), + 'c.import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>999), + 'c.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000) +); + +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; + +$object->fields = dol_sort_array($object->fields, 'position'); +$arrayfields = dol_sort_array($arrayfields, 'position'); + + + +/* + * Actions + */ + +if (GETPOST('cancel', 'alpha')) { + $action = 'list'; $massaction = ''; +} +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { + $massaction = ''; +} + +$parameters = array('socid'=>$socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + $productobuy = ''; + $productonly = ''; + $disablelinefree = ''; + $search_categ = ''; + $search_user = ''; + $search_sale = ''; + $search_product_category = ''; + $search_refProduct = ''; + $search_descProduct = ''; + $search_ref = ''; + $search_ref_customer = ''; + $search_company = ''; + $search_company_alias = ''; + $search_town = ''; + $search_zip = ""; + $search_state = ""; + $search_type = ''; + $search_country = ''; + $search_type_thirdparty = ''; + $search_total_ht = ''; + $search_total_vat = ''; + $search_total_ttc = ''; + $search_warehouse = ''; + $search_multicurrency_code = ''; + $search_multicurrency_tx = ''; + $search_multicurrency_montant_ht = ''; + $search_multicurrency_montant_vat = ''; + $search_multicurrency_montant_ttc = ''; + $search_login = ''; + $search_dateorder_start = ''; + $search_dateorder_end = ''; + $search_datedelivery_start = ''; + $search_datedelivery_end = ''; + $search_project_ref = ''; + $search_project = ''; + $search_status = ''; + $search_billed = ''; + $toselect = array(); + $search_array_options = array(); + $search_categ_cus = 0; + $search_datecloture_start = ''; + $search_datecloture_end = ''; + $search_fk_cond_reglement = ''; + $search_fk_shipping_method = ''; + $search_fk_mode_reglement = ''; + $search_fk_input_reason = ''; + } + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') + || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) { + $massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass = 'Commande'; + $objectlabel = 'Orders'; + $permissiontoread = $user->rights->commande->lire; + $permissiontoadd = $user->rights->commande->creer; + $permissiontodelete = $user->rights->commande->supprimer; + if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { + $permissiontovalidate = $user->rights->commande->order_advance->validate; + $permissiontoclose = $user->rights->commande->order_advance->close; + $permissiontocancel = $user->rights->commande->order_advance->annuler; + $permissiontosendbymail = $user->rights->commande->order_advance->send; + } else { + $permissiontovalidate = $user->rights->commande->creer; + $permissiontoclose = $user->rights->commande->creer; + $permissiontocancel = $user->rights->commande->creer; + $permissiontosendbymail = $user->rights->commande->creer; + } + $uploaddir = $conf->commande->multidir_output[$conf->entity]; + $triggersendname = 'ORDER_SENTBYMAIL'; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + +// Closed records +// if (!$error && $massaction === 'setbilled' && $permissiontoclose) { + +// } + +/* + * View + */ + +$now = dol_now(); + +$form = new Form($db); +$formother = new FormOther($db); +$formfile = new FormFile($db); +$formmargin = null; +if (!empty($conf->margin->enabled)) { + $formmargin = new FormMargin($db); +} +$companystatic = new Societe($db); +$formcompany = new FormCompany($db); +$projectstatic = new Project($db); + +$title = $langs->trans("Orders"); +$help_url = "EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; +// llxHeader('',$title,$help_url); + +$sql = 'SELECT'; +if ($sall || $search_product_category > 0 || $search_user > 0) { + $sql = 'SELECT DISTINCT'; +} +$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; +$sql .= " typent.code as typent_code,"; +$sql .= " state.code_departement as state_code, state.nom as state_name,"; +$sql .= " country.code as country_code,"; +$sql .= ' c.rowid as c_rowid, c.ref, c.ref_client, c.fk_user_author,'; +$sql .= ' c.fk_multicurrency, c.multicurrency_code, c.multicurrency_tx, c.multicurrency_total_ht, c.multicurrency_total_tva as multicurrency_total_vat, c.multicurrency_total_ttc,'; +$sql .= ' c.total_ht as c_total_ht, c.total_tva as c_total_tva, c.total_ttc as c_total_ttc, c.fk_warehouse as warehouse,'; +$sql .= ' c.date_valid, c.date_commande, c.note_public, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as billed,'; +$sql .= ' c.date_creation as date_creation, c.tms as date_update, c.date_cloture as date_cloture,'; +$sql .= ' p.rowid as project_id, p.ref as project_ref, p.title as project_label,'; +$sql .= ' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender,'; +$sql .= ' c.fk_cond_reglement,c.deposit_percent,c.fk_mode_reglement,c.fk_shipping_method,'; +$sql .= ' c.fk_input_reason, c.import_key'; + +// Détail commande +$sql .= ', cdet.rowid, cdet.description, cdet.qty, cdet.product_type, cdet.fk_product, cdet.total_ht, cdet.total_tva, cdet.total_ttc, '; +$sql .= ' pr.rowid as product_rowid, pr.ref as product_ref, pr.label as product_label, pr.barcode as product_barcode, pr.tobatch as product_batch, pr.tosell as product_status, pr.tobuy as product_status_buy'; + +if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { + $sql .= ", cc.fk_categorie, cc.fk_soc"; +} +// Add fields from extrafields +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); + } +} +// Add fields from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; +$sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s'; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; +if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ +} + +// Détail commande +$sql .= ', '.MAIN_DB_PREFIX.'commandedet as cdet'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commande as c ON cdet.fk_commande=c.rowid'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as pr ON pr.rowid=cdet.fk_product'; + +if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."commande_extrafields as ef on (c.rowid = ef.fk_object)"; +} +if ($sall || $search_product_category > 0) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet as pd ON c.rowid=pd.fk_commande'; +} +if ($search_product_category > 0) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; +} +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = c.fk_projet"; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON c.fk_user_author = u.rowid'; + +// We'll need this table joined to the select in order to filter by sale +if ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +} +if ($search_user > 0) { + $sql .= ", ".MAIN_DB_PREFIX."element_contact as ec"; + $sql .= ", ".MAIN_DB_PREFIX."c_type_contact as tc"; +} + +// Add table from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + +$sql .= ' WHERE c.fk_soc = s.rowid'; +$sql .= ' AND c.entity IN ('.getEntity('commande').')'; +$sql .= ' AND cdet.product_type <> 9'; + +if (!empty($productobuy)) { + $sql .= " AND pr.tobuy = 1"; +} +if (!empty($productonly)) { + $sql .= " AND (cdet.product_type = 0 OR cdet.product_type = 1)"; +} +if (!empty($disablelinefree)) { + $sql .= " AND cdet.fk_product IS NOT NULL"; +} +if ($search_product_category > 0) { + $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); +} +if ($socid > 0) { + $sql .= ' AND s.rowid = '.((int) $socid); +} +if (empty($user->rights->societe->client->voir) && !$socid) { + $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); +} +if ($search_refProduct) { + $sql .= natural_search('pr.ref', $search_refProduct); +} +if ($search_descProduct) { + $sql .= natural_search('pr.label', $search_descProduct); + $sql .= natural_search('cdet.description', $search_descProduct); +} +if ($search_ref) { + $sql .= natural_search('c.ref', $search_ref); +} +if ($search_ref_customer) { + $sql .= natural_search('c.ref_client', $search_ref_customer); +} +if ($sall) { + $sql .= natural_search(array_keys($fieldstosearchall), $sall); +} +if ($search_billed != '' && $search_billed >= 0) { + $sql .= ' AND c.facture = '.((int) $search_billed); +} +if ($search_status <> '') { + if ($search_status <= 3 && $search_status >= -1) { // status from -1 to 3 are real status (other are virtual combination) + if ($search_status == 1 && empty($conf->expedition->enabled)) { + $sql .= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated' + } else { + $sql .= ' AND c.fk_statut = '.((int) $search_status); // brouillon, validee, en cours, annulee + } + } + if ($search_status == -2) { // To process + //$sql.= ' AND c.fk_statut IN (1,2,3) AND c.facture = 0'; + $sql .= " AND ((c.fk_statut IN (1,2)) OR (c.fk_statut = 3 AND c.facture = 0))"; // If status is 2 and facture=1, it must be selected + } + if ($search_status == -3) { // To bill + //$sql.= ' AND c.fk_statut in (1,2,3)'; + //$sql.= ' AND c.facture = 0'; // invoice not created + $sql .= ' AND ((c.fk_statut IN (1,2)) OR (c.fk_statut = 3 AND c.facture = 0))'; // validated, in process or closed but not billed + } + if ($search_status == -4) { // "validate and in progress" + $sql .= ' AND (c.fk_statut IN (1,2))'; // validated, in process + } +} + +if ($search_datecloture_start) { + $sql .= " AND c.date_cloture >= '".$db->idate($search_datecloture_start)."'"; +} +if ($search_datecloture_end) { + $sql .= " AND c.date_cloture <= '".$db->idate($search_datecloture_end)."'"; +} +if ($search_dateorder_start) { + $sql .= " AND c.date_commande >= '".$db->idate($search_dateorder_start)."'"; +} +if ($search_dateorder_end) { + $sql .= " AND c.date_commande <= '".$db->idate($search_dateorder_end)."'"; +} +if ($search_datedelivery_start) { + $sql .= " AND c.date_livraison >= '".$db->idate($search_datedelivery_start)."'"; +} +if ($search_datedelivery_end) { + $sql .= " AND c.date_livraison <= '".$db->idate($search_datedelivery_end)."'"; +} +if ($search_town) { + $sql .= natural_search('s.town', $search_town); +} +if ($search_zip) { + $sql .= natural_search("s.zip", $search_zip); +} +if ($search_state) { + $sql .= natural_search("state.nom", $search_state); +} +if ($search_country) { + $sql .= " AND s.fk_pays IN (".$db->sanitize($search_country).')'; +} +if ($search_type_thirdparty && $search_type_thirdparty != '-1') { + $sql .= " AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).')'; +} +if ($search_company) { + $sql .= natural_search('s.nom', $search_company); +} +if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); +} +if ($search_sale > 0) { + $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); +} +if ($search_user > 0) { + $sql .= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".((int) $search_user); +} +if ($search_total_ht != '') { + $sql .= natural_search('cdet.total_ht', $search_total_ht, 1); +} +if ($search_total_vat != '') { + $sql .= natural_search('cdet.total_tva', $search_total_vat, 1); +} +if ($search_total_ttc != '') { + $sql .= natural_search('cdet.total_ttc', $search_total_ttc, 1); +} +if ($search_warehouse != '' && $search_warehouse > 0) { + $sql .= natural_search('c.fk_warehouse', $search_warehouse, 1); +} +if ($search_multicurrency_code != '') { + $sql .= " AND c.multicurrency_code = '".$db->escape($search_multicurrency_code)."'"; +} +if ($search_multicurrency_tx != '') { + $sql .= natural_search('c.multicurrency_tx', $search_multicurrency_tx, 1); +} +if ($search_multicurrency_montant_ht != '') { + $sql .= natural_search('c.multicurrency_total_ht', $search_multicurrency_montant_ht, 1); +} +if ($search_multicurrency_montant_vat != '') { + $sql .= natural_search('c.multicurrency_total_tva', $search_multicurrency_montant_vat, 1); +} +if ($search_multicurrency_montant_ttc != '') { + $sql .= natural_search('c.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1); +} +if ($search_login) { + $sql .= natural_search(array("u.login", "u.firstname", "u.lastname"), $search_login); +} +if ($search_project_ref != '') { + $sql .= natural_search("p.ref", $search_project_ref); +} +if ($search_project != '') { + $sql .= natural_search("p.title", $search_project); +} +if ($search_categ_cus > 0) { + $sql .= " AND cc.fk_categorie = ".((int) $search_categ_cus); +} +if ($search_categ_cus == -2) { + $sql .= " AND cc.fk_categorie IS NULL"; +} +if ($search_fk_cond_reglement > 0) { + $sql .= " AND c.fk_cond_reglement = ".((int) $search_fk_cond_reglement); +} +if ($search_fk_shipping_method > 0) { + $sql .= " AND c.fk_shipping_method = ".((int) $search_fk_shipping_method); +} +if ($search_fk_mode_reglement > 0) { + $sql .= " AND c.fk_mode_reglement = ".((int) $search_fk_mode_reglement); +} +if ($search_fk_input_reason > 0) { + $sql .= " AND c.fk_input_reason = ".((int) $search_fk_input_reason); +} + +// Add where from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; +// Add where from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + +// Add HAVING from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; + +$sql .= $db->order($sortfield, $sortorder); + +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + $result = $db->query($sql); + $nbtotalofrecords = $db->num_rows($result); + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 + $page = 0; + $offset = 0; + } +} + +$sql .= $db->plimit($limit + 1, $offset); +//print $sql; + +$resql = $db->query($sql); +if ($resql) { + if ($socid > 0) { + $soc = new Societe($db); + $soc->fetch($socid); + $title = $langs->trans('ListOrderLigne').' - '.$soc->name; + if (empty($search_company)) { + $search_company = $soc->name; + } + } else { + $title = $langs->trans('ListOrderLigne'); + } + if (strval($search_status) == '0') { + $title .= ' - '.$langs->trans('StatusOrderDraftShort'); + } + if ($search_status == 1) { + $title .= ' - '.$langs->trans('StatusOrderValidatedShort'); + } + if ($search_status == 2) { + $title .= ' - '.$langs->trans('StatusOrderSentShort'); + } + if ($search_status == 3) { + $title .= ' - '.$langs->trans('StatusOrderToBillShort'); + } + if ($search_status == -1) { + $title .= ' - '.$langs->trans('StatusOrderCanceledShort'); + } + if ($search_status == -2) { + $title .= ' - '.$langs->trans('StatusOrderToProcessShort'); + } + if ($search_status == -3) { + $title .= ' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled) ? '' : $langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill'); + } + if ($search_status == -4) { + $title .= ' - '.$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"); + } + + $num = $db->num_rows($resql); + + $arrayofselected = is_array($toselect) ? $toselect : array(); + + if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) { + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".DOL_URL_ROOT.'/commande/card.php?id='.$id); + exit; + } + + llxHeader('', $title, $help_url); + + $param = ''; + + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); + } + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); + } + if ($sall) { + $param .= '&sall='.urlencode($sall); + } + if ($socid > 0) { + $param .= '&socid='.urlencode($socid); + } + if ($search_status != '') { + $param .= '&search_status='.urlencode($search_status); + } + if ($search_datecloture_start) { + $param .= '&search_datecloture_startday='.dol_print_date($search_datecloture_start, '%d').'&search_datecloture_startmonth='.dol_print_date($search_datecloture_start, '%m').'&search_datecloture_startyear='.dol_print_date($search_datecloture_start, '%Y'); + } + if ($search_datecloture_end) { + $param .= '&search_datecloture_endday='.dol_print_date($search_datecloture_end, '%d').'&search_datecloture_endmonth='.dol_print_date($search_datecloture_end, '%m').'&search_datecloture_endyear='.dol_print_date($search_datecloture_end, '%Y'); + } + if ($search_dateorder_start) { + $param .= '&search_dateorder_start_day='.dol_print_date($search_dateorder_start, '%d').'&search_dateorder_start_month='.dol_print_date($search_dateorder_start, '%m').'&search_dateorder_start_year='.dol_print_date($search_dateorder_start, '%Y'); + } + if ($search_dateorder_end) { + $param .= '&search_dateorder_end_day='.dol_print_date($search_dateorder_end, '%d').'&search_dateorder_end_month='.dol_print_date($search_dateorder_end, '%m').'&search_dateorder_end_year='.dol_print_date($search_dateorder_end, '%Y'); + } + if ($search_datedelivery_start) { + $param .= '&search_datedelivery_start_day='.dol_print_date($search_datedelivery_start, '%d').'&search_datedelivery_start_month='.dol_print_date($search_datedelivery_start, '%m').'&search_datedelivery_start_year='.dol_print_date($search_datedelivery_start, '%Y'); + } + if ($search_datedelivery_end) { + $param .= '&search_datedelivery_end_day='.dol_print_date($search_datedelivery_end, '%d').'&search_datedelivery_end_month='.dol_print_date($search_datedelivery_end, '%m').'&search_datedelivery_end_year='.dol_print_date($search_datedelivery_end, '%Y'); + } + if ($search_ref) { + $param .= '&search_ref='.urlencode($search_ref); + } + if ($search_company) { + $param .= '&search_company='.urlencode($search_company); + } + if ($search_company_alias) { + $param .= '&search_company_alias='.urlencode($search_company_alias); + } + if ($search_ref_customer) { + $param .= '&search_ref_customer='.urlencode($search_ref_customer); + } + if ($search_user > 0) { + $param .= '&search_user='.urlencode($search_user); + } + if ($search_sale > 0) { + $param .= '&search_sale='.urlencode($search_sale); + } + if ($search_total_ht != '') { + $param .= '&search_total_ht='.urlencode($search_total_ht); + } + if ($search_total_vat != '') { + $param .= '&search_total_vat='.urlencode($search_total_vat); + } + if ($search_total_ttc != '') { + $param .= '&search_total_ttc='.urlencode($search_total_ttc); + } + if ($search_warehouse != '') { + $param .= '&search_warehouse='.urlencode($search_warehouse); + } + if ($search_login) { + $param .= '&search_login='.urlencode($search_login); + } + if ($search_multicurrency_code != '') { + $param .= '&search_multicurrency_code='.urlencode($search_multicurrency_code); + } + if ($search_multicurrency_tx != '') { + $param .= '&search_multicurrency_tx='.urlencode($search_multicurrency_tx); + } + if ($search_multicurrency_montant_ht != '') { + $param .= '&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht); + } + if ($search_multicurrency_montant_vat != '') { + $param .= '&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat); + } + if ($search_multicurrency_montant_ttc != '') { + $param .= '&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc); + } + if ($search_project_ref >= 0) { + $param .= "&search_project_ref=".urlencode($search_project_ref); + } + if ($search_town != '') { + $param .= '&search_town='.urlencode($search_town); + } + if ($search_zip != '') { + $param .= '&search_zip='.urlencode($search_zip); + } + if ($search_state != '') { + $param .= '&search_state='.urlencode($search_state); + } + if ($search_country != '') { + $param .= '&search_country='.urlencode($search_country); + } + if ($search_type_thirdparty && $search_type_thirdparty != '-1') { + $param .= '&search_type_thirdparty='.urlencode($search_type_thirdparty); + } + if ($search_product_category != '') { + $param .= '&search_product_category='.urlencode($search_product_category); + } + if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { + $param .= '&search_categ_cus='.urlencode($search_categ_cus); + } + if ($show_files) { + $param .= '&show_files='.urlencode($show_files); + } + if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); + } + if ($search_billed != '') { + $param .= '&search_billed='.urlencode($search_billed); + } + if ($search_fk_cond_reglement > 0) { + $param .= '&search_fk_cond_reglement='.urlencode($search_fk_cond_reglement); + } + if ($search_fk_shipping_method > 0) { + $param .= '&search_fk_shipping_method='.urlencode($search_fk_shipping_method); + } + if ($search_fk_mode_reglement > 0) { + $param .= '&search_fk_mode_reglement='.urlencode($search_fk_mode_reglement); + } + if ($search_fk_input_reason > 0) { + $param .= '&search_fk_input_reason='.urlencode($search_fk_input_reason); + } + + // Add $param from extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; + + // Add $param from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook + $param .= $hookmanager->resPrint; + + // List of mass actions available + $arrayofmassactions = array( + 'GenerateOrdersSuppliers'=>img_picto('', 'doc', 'class="pictofixedwidth"').$langs->trans("GenerateOrdersSupplie"), + ); + $massactionbutton = $form->selectMassAction('', $arrayofmassactions); + + $url = DOL_URL_ROOT.'/commande/card.php?action=create'; + if (!empty($socid)) { + $url .= '&socid='.$socid; + } + $newcardbutton = '';//dolGetButtonTitle($langs->trans('NewOrder'), '', 'fa fa-plus-circle', $url, '', $contextpage == 'orderlistdet' && $permissiontoadd); + + // Lines of title fields + print ''; + if ($optioncss != '') { + print ''; + } + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'order', 0, $newcardbutton, '', $limit, 0, 0, 1); + + print ''; + print ''; + print ''; + + $topicmail = "SendOrderRef"; + $modelmail = "order_send"; + $objecttmp = new Commande($db); + $trackid = 'ord'.$object->id; + include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + + if ($sall) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + } + print '
    '.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
    '; + } + + $moreforfilter = ''; + + // If the user can view prospects other than his' + if ($user->rights->user->user->lire) { + $langs->load("commercial"); + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= '
    '; + } + // If the user can view other users + if ($user->rights->user->user->lire) { + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('LinkedToSpecificUsers'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= '
    '; + } + // If the user can view prospects other than his' + if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('IncludingProductWithTag'); + $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1); + $moreforfilter .= '
    '; + } + if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle, 'maxwidth300 widthcentpercentminusx'); + $moreforfilter .= '
    '; + } + if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('Warehouse'); + $moreforfilter .= img_picto($tmptitle, 'stock', 'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse, 'search_warehouse', '', 1, 0, 0, $tmptitle, 0, 0, array(), 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= '
    '; + } + $parameters = array(); + $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; + } else { + $moreforfilter = $hookmanager->resPrint; + } + + if (!empty($moreforfilter)) { + print '
    '; + print $moreforfilter; + print '
    '; + } + + $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields + $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); + + if (GETPOST('autoselectall', 'int')) { + $selectedfields .= ''; + } + + print '
    '; + print ''."\n"; + + print ''; + + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + + // Détail commande + if (!empty($arrayfields['pr.ref']['checked'])) { + print ''; + } + // Product Description + if (!empty($arrayfields['pr.desc']['checked'])) { + print ''; + } + // Product QtyOrdered + if (!empty($arrayfields['cdet.qty']['checked'])) { + print ''; + } + + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + } + // Ref customer + if (!empty($arrayfields['c.ref_client']['checked'])) { + print ''; + } + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + } + // Project title + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + } + // Thirpdarty + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print ''; + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + } + // Company type + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + } + // Date order + if (!empty($arrayfields['c.date_commande']['checked'])) { + print ''; + } + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print ''; + } + // Shipping Method + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print ''; + } + // Payment term + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print ''; + } + // Payment mode + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print ''; + } + // Channel + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print ''; + } + if (!empty($arrayfields['cdet.total_ht']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['c.total_vat']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['cdet.total_ttc']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['c.fk_warehouse']['checked'])) { + // Warehouse + print ''; + } + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + // Currency + print ''; + } + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + // Currency rate + print ''; + } + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + // Amount VAT + print ''; + } + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['u.login']['checked'])) { + // Author + print ''; + } + if (!empty($arrayfields['sale_representative']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields); + $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + } + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + } + // Date cloture + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print ''; + } + // Note public + if (!empty($arrayfields['c.note_public']['checked'])) { + print ''; + } + // Note private + if (!empty($arrayfields['c.note_private']['checked'])) { + print ''; + } + // Shippable + if (!empty($arrayfields['shippable']['checked'])) { + print ''; + } + // Status billed + if (!empty($arrayfields['c.facture']['checked'])) { + print ''; + } + // Import key + if (!empty($arrayfields['c.import_key']['checked'])) { + print ''; + } + // Status + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print ''; + } + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + print "\n"; + + // Fields title + print ''; + + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + } + + // Détail commande + if (!empty($arrayfields['pr.ref']['checked'])) { + print_liste_field_titre($arrayfields['pr.ref']['label'], $_SERVER["PHP_SELF"], 'pr.ref', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['pr.desc']['checked'])) { + print_liste_field_titre($arrayfields['pr.desc']['label'], $_SERVER["PHP_SELF"], 'pr.desc', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['cdet.qty']['checked'])) { + print_liste_field_titre($arrayfields['cdet.qty']['label'], $_SERVER["PHP_SELF"], 'cdet.qty', '', $param, '', $sortfield, $sortorder); + } + + if (!empty($arrayfields['c.ref']['checked'])) { + print_liste_field_titre($arrayfields['c.ref']['label'], $_SERVER["PHP_SELF"], 'c.ref', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.ref_client']['checked'])) { + print_liste_field_titre($arrayfields['c.ref_client']['label'], $_SERVER["PHP_SELF"], 'c.ref_client', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['p.ref']['checked'])) { + print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['p.title']['checked'])) { + print_liste_field_titre($arrayfields['p.title']['label'], $_SERVER["PHP_SELF"], "p.title", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.nom']['checked'])) { + print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], 's.nom', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], 's.name_alias', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.town']['checked'])) { + print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.zip']['checked'])) { + print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['state.nom']['checked'])) { + print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['country.code_iso']['checked'])) { + print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['typent.code']['checked'])) { + print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.date_commande']['checked'])) { + print_liste_field_titre($arrayfields['c.date_commande']['label'], $_SERVER["PHP_SELF"], 'c.date_commande', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print_liste_field_titre($arrayfields['c.date_delivery']['label'], $_SERVER["PHP_SELF"], 'c.date_livraison', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_shipping_method']['label'], $_SERVER["PHP_SELF"], "c.fk_shipping_method", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "c.fk_cond_reglement", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "c.fk_mode_reglement", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_input_reason']['label'], $_SERVER["PHP_SELF"], "c.fk_input_reason", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['cdet.total_ht']['checked'])) { + print_liste_field_titre($arrayfields['cdet.total_ht']['label'], $_SERVER["PHP_SELF"], 'cdet.total_ht', '', $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['c.total_vat']['checked'])) { + print_liste_field_titre($arrayfields['c.total_vat']['label'], $_SERVER["PHP_SELF"], 'cdet.total_tva', '', $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['cdet.total_ttc']['checked'])) { + print_liste_field_titre($arrayfields['cdet.total_ttc']['label'], $_SERVER["PHP_SELF"], 'cdet.total_ttc', '', $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['c.fk_warehouse']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_warehouse']['label'], "", '', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_code']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_code', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_tx']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_tx', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_total_ht']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_total_ht', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_total_vat']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_total_tva', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_total_ttc']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_total_ttc', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['u.login']['checked'])) { + print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'align="center"', $sortfield, $sortorder); + } + if (!empty($arrayfields['sale_representative']['checked'])) { + print_liste_field_titre($arrayfields['sale_representative']['label'], $_SERVER["PHP_SELF"], "", "", "$param", '', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_pa']['checked'])) { + print_liste_field_titre($arrayfields['total_pa']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_margin']['checked'])) { + print_liste_field_titre($arrayfields['total_margin']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print_liste_field_titre($arrayfields['total_margin_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print_liste_field_titre($arrayfields['total_mark_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + + $totalarray = array( + 'nbfield' => 0, + 'val' => array( + 'cdet.total_ht' => 0, + 'cdet.total_tva' => 0, + 'cdet.total_ttc' => 0, + ), + 'pos' => array(), + ); + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; + // Hook fields + $parameters = array( + 'arrayfields' => $arrayfields, + 'param' => $param, + 'sortfield' => $sortfield, + 'sortorder' => $sortorder, + 'totalarray' => &$totalarray, + ); + $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + if (!empty($arrayfields['c.datec']['checked'])) { + print_liste_field_titre($arrayfields['c.datec']['label'], $_SERVER["PHP_SELF"], "c.date_creation", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + } + if (!empty($arrayfields['c.tms']['checked'])) { + print_liste_field_titre($arrayfields['c.tms']['label'], $_SERVER["PHP_SELF"], "c.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + } + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print_liste_field_titre($arrayfields['c.date_cloture']['label'], $_SERVER["PHP_SELF"], "c.date_cloture", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + } + if (!empty($arrayfields['c.note_public']['checked'])) { + print_liste_field_titre($arrayfields['c.note_public']['label'], $_SERVER["PHP_SELF"], "c.note_public", "", $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['c.note_private']['checked'])) { + print_liste_field_titre($arrayfields['c.note_private']['label'], $_SERVER["PHP_SELF"], "c.note_private", "", $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['shippable']['checked'])) { + print_liste_field_titre($arrayfields['shippable']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.facture']['checked'])) { + print_liste_field_titre($arrayfields['c.facture']['label'], $_SERVER["PHP_SELF"], 'c.facture', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.import_key']['checked'])) { + print_liste_field_titre($arrayfields['c.import_key']['label'], $_SERVER["PHP_SELF"], "c.import_key", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_statut']['label'], $_SERVER["PHP_SELF"], "c.fk_statut", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + } + print ''."\n"; + + $total = 0; + $subtotal = 0; + $productstat_cache = array(); + $productstat_cachevirtual = array(); + $getNomUrl_cache = array(); + + $generic_commande = new Commande($db); + $generic_product = new Product($db); + $userstatic = new User($db); + $i = 0; + + $with_margin_info = false; + if (!empty($conf->margin->enabled) && ( + !empty($arrayfields['total_pa']['checked']) + || !empty($arrayfields['total_margin']['checked']) + || !empty($arrayfields['total_margin_rate']['checked']) + || !empty($arrayfields['total_mark_rate']['checked']) + ) + ) { + $with_margin_info = true; + } + $total_ht = 0; + $total_margin = 0; + + // Détail commande + $totalqty = 0; + + $totalarray = array(); + $totalarray['nbfield'] = 0; + $totalarray['val']['cdet.total_tva'] = 0; + $totalarray['val']['cdet.total_ttc'] = 0; + $imaxinloop = ($limit ? min($num, $limit) : $num); + while ($i < $imaxinloop) { + $obj = $db->fetch_object($resql); + + $notshippable = 0; + $warning = 0; + $text_info = ''; + $text_warning = ''; + $nbprod = 0; + + $companystatic->id = $obj->socid; + $companystatic->name = $obj->name; + $companystatic->name_alias = $obj->alias; + $companystatic->client = $obj->client; + $companystatic->code_client = $obj->code_client; + $companystatic->email = $obj->email; + $companystatic->phone = $obj->phone; + $companystatic->address = $obj->address; + $companystatic->zip = $obj->zip; + $companystatic->town = $obj->town; + $companystatic->country_code = $obj->country_code; + if (!isset($getNomUrl_cache[$obj->socid])) { + $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1, 'customer'); + } + + $generic_commande->id = $obj->c_rowid; + $generic_commande->ref = $obj->ref; + $generic_commande->statut = $obj->fk_statut; + $generic_commande->billed = $obj->billed; + $generic_commande->date = $db->jdate($obj->date_commande); + $generic_commande->date_livraison = $db->jdate($obj->date_delivery); // deprecated + $generic_commande->delivery_date = $db->jdate($obj->date_delivery); + $generic_commande->ref_client = $obj->ref_client; + $generic_commande->total_ht = $obj->c_total_ht; + $generic_commande->total_tva = $obj->c_total_tva; + $generic_commande->total_ttc = $obj->c_total_ttc; + $generic_commande->note_public = $obj->note_public; + $generic_commande->note_private = $obj->note_private; + + $projectstatic->id = $obj->project_id; + $projectstatic->ref = $obj->project_ref; + $projectstatic->title = $obj->project_label; + + $marginInfo = array(); + if ($with_margin_info === true) { + $generic_commande->fetch_lines(); + $marginInfo = $formmargin->getMarginInfosArray($generic_commande); + $total_ht += $obj->total_ht; + $total_margin += $marginInfo['total_margin']; + } + + print ''; + + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Détail commande + // Product Ref + if (!empty($arrayfields['pr.ref']['checked'])) { + if (!empty($obj->product_rowid)) { + $generic_product->id = $obj->product_rowid; + $generic_product->ref = $obj->product_ref; + $generic_product->label = $obj->product_label; + $generic_product->status = $obj->product_status; + $generic_product->status_buy = $obj->product_status_buy; + $generic_product->status_batch = $obj->product_batch; + $generic_product->barcode = $obj->product_barcode; + print ''; + } else { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + } + // Product Description + if (!empty($arrayfields['pr.desc']['checked'])) { + // print ''; + !empty($obj->product_label) ? $labelproduct = $obj->product_label : $labelproduct = $obj->description; + print ''; + + if (!$i) { + $totalarray['nbfield']++; + } + } + // Product QtyOrdered + if (!empty($arrayfields['cdet.qty']['checked'])) { + print ''; + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.qty'; + } + if (isset($totalarray['val']['cdet.qty'])) { + $totalarray['val']['cdet.qty'] += $obj->qty; + } else { + $totalarray['val']['cdet.qty'] = $obj->qty; + } + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Ref customer + if (!empty($arrayfields['c.ref_client']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project label + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias name + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Order date + if (!empty($arrayfields['c.date_commande']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Plannned date of delivery + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Shipping Method + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment terms + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment mode + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Channel + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['cdet.total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.total_ht'; + } + if (isset($totalarray['val']['cdet.total_ht'])) { + $totalarray['val']['cdet.total_ht'] += $obj->total_ht; + } else { + $totalarray['val']['cdet.total_ht'] = $obj->total_ht; + } + } + // Amount VAT + if (!empty($arrayfields['c.total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.total_tva'; + } + $totalarray['val']['cdet.total_tva'] += $obj->total_tva; + } + // Amount TTC + if (!empty($arrayfields['cdet.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.total_ttc'; + } + $totalarray['val']['cdet.total_ttc'] += $obj->total_ttc; + } + // Warehouse + if (!empty($arrayfields['c.fk_warehouse']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Currency + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; + + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['sale_representative']['checked'])) { + // Sales representatives + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total buying or cost price + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total margin + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + } + $totalarray['val']['total_margin'] += $marginInfo['total_margin']; + } + // Total margin rate + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total mark rate + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + } + if ($i >= $imaxinloop - 1) { + if (!empty($total_ht)) { + $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + } else { + $totalarray['val']['total_mark_rate'] = ''; + } + } + } + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date cloture + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note public + if (!empty($arrayfields['c.note_public']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note private + if (!empty($arrayfields['c.note_private']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Show shippable Icon (this creates subloops, so may be slow) + if (!empty($arrayfields['shippable']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Billed + if (!empty($arrayfields['c.facture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Import key + if (!empty($arrayfields['c.import_key']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // $totalarray['nbfield']--; + // $totalarray['nbfield']--; + print "\n"; + + $total += $obj->total_ht; + $subtotal += $obj->total_ht; + $i++; + } + + // Show total line + include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + + // If no record found + if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; + } + + $db->free($resql); + + $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); + $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100'); + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), '', 1); + print ''; + print '
    '; + print $form->selectDate($search_dateorder_start ? $search_dateorder_start : -1, 'search_dateorder_start_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_dateorder_end ? $search_dateorder_end : -1, 'search_dateorder_end_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; + print '
    '; + print '
    '; + print $form->selectDate($search_datedelivery_start ? $search_datedelivery_start : -1, 'search_datedelivery_start_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_datedelivery_end ? $search_datedelivery_end : -1, 'search_datedelivery_end_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; + print '
    '; + $form->selectShippingMethod($search_fk_shipping_method, 'search_fk_shipping_method', '', 1, '', 1); + print ''; + $form->select_conditions_paiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1); + print ''; + $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1); + print ''; + $form->selectInputReason($search_fk_input_reason, 'search_fk_input_reason', '', 1, '', 1); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
    '; + print $form->selectDate($search_datecloture_start ? $search_datecloture_start : -1, 'search_datecloture_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_datecloture_end ? $search_datecloture_end : -1, 'search_datecloture_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; + print '
    '; + print ''; + print ''; + //print $form->selectyesno('search_shippable', $search_shippable, 1, 0, 1, 1); + if (!empty($conf->global->ORDER_SHIPABLE_STATUS_DISABLED_BY_DEFAULT)) { + print ''; + print $langs->trans('ShowShippableStatus'); + } else { + $show_shippable_command = 1; + } + print ''; + print $form->selectyesno('search_billed', $search_billed, 1, 0, 1, 1); + print ''; + print ''; + $liststatus = array( + Commande::STATUS_DRAFT=>$langs->trans("StatusOrderDraftShort"), + Commande::STATUS_VALIDATED=>$langs->trans("StatusOrderValidated"), + Commande::STATUS_SHIPMENTONPROCESS=>$langs->trans("StatusOrderSentShort"), + Commande::STATUS_CLOSED=>$langs->trans("StatusOrderDelivered"), + -3=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort").'+'.$langs->trans("StatusOrderDelivered"), + -2=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"), + Commande::STATUS_CANCELED=>$langs->trans("StatusOrderCanceledShort") + ); + print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'maxwidth125', 1); + print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''.$generic_product->getNomUrl(1).'Ligne libre'.$obj->description.''.dol_escape_htmltag($labelproduct).''.$obj->qty.''; + print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1); + + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->commande->multidir_output[$conf->entity].'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); + + print ''.$obj->ref_client.''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if ($obj->project_id > 0) { + print $projectstatic->title; + } + print ''; + print $getNomUrl_cache[$obj->socid]; + + // If module invoices enabled and user with invoice creation permissions + if (isModEnabled('facture') && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { + if ($user->rights->facture->creer) { + if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) { + print ' '; + print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').''; + } + } + } + print ''; + print $obj->alias; + print ''; + print $obj->town; + print ''; + print $obj->zip; + print '".$obj->state_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + print dol_print_date($db->jdate($obj->date_commande), 'day'); + // Warning late icon and note + if ($generic_commande->hasDelay()) { + print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); + } + print ''; + print dol_print_date($db->jdate($obj->date_delivery), 'dayhour'); + print ''; + $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); + print ''; + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); + print ''; + $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); + print ''; + $form->formInputReason($_SERVER['PHP_SELF'], $obj->fk_input_reason, 'none', ''); + print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'; + if ($obj->warehouse > 0) { + print img_picto('', 'stock', 'class="paddingrightonly"'); + } + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'], $obj->warehouse, 'none'); + print "'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } else { + print ' '; + } + print "'; + if ($obj->socid > 0) { + $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->office_phone = $val['office_phone']; + $userstatic->office_fax = $val['office_fax']; + $userstatic->user_mobile = $val['user_mobile']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + //print '
    ': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; + } + //print '
    '; + } + } + //else print $langs->trans("NoSalesRepresentativeAffected"); + } else { + print ' '; + } + print '
    '.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); + print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; + if (!empty($show_shippable_command) && !empty($conf->stock->enabled)) { + if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) { + $generic_commande->getLinesArray(); // Load array ->lines + $generic_commande->loadExpeditions(); // Load array ->expeditions + + $numlines = count($generic_commande->lines); // Loop on each line of order + for ($lig = 0; $lig < $numlines; $lig++) { + if (isset($generic_commande->expeditions[$generic_commande->lines[$lig]->id])) { + $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id]; + } else { + $reliquat = $generic_commande->lines[$lig]->qty; + } + if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0) { // If line is a product and not a service + $nbprod++; // order contains real products + $generic_product->id = $generic_commande->lines[$lig]->fk_product; + + // Get local and virtual stock and store it into cache + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) { + $generic_product->load_stock('nobatch'); // ->load_virtual_stock() is already included into load_stock() + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_reel; + $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } else { + $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel']; + $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } + + if ($reliquat > $generic_product->stock_reel) { + $notshippable++; + } + if (empty($conf->global->SHIPPABLE_ORDER_ICON_IN_LIST)) { // Default code. Default should be this case. + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->product_ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_info .= ' - '.$langs->trans("Stock").': '.$generic_product->stock_reel.''; + $text_info .= ' - '.$langs->trans("VirtualStock").': '.$generic_product->stock_theorique.''; + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
    '; + } else { // BUGGED CODE. + // DOES NOT TAKE INTO ACCOUNT MANUFACTURING. THIS CODE SHOULD BE USELESS. PREVIOUS CODE SEEMS COMPLETE. + // COUNT STOCK WHEN WE SHOULD ALREADY HAVE VALUE + // Detailed virtual stock, looks bugged, uncomplete and need heavy load. + // stock order and stock order_supplier + $stock_order = 0; + $stock_order_supplier = 0; + if (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { // What about other options ? + if (!empty($conf->commande->enabled)) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'])) { + $generic_product->load_stats_commande(0, '1,2'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'] = $generic_product->stats_commande['qty']; + } else { + $generic_product->stats_commande['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer']; + } + $stock_order = $generic_product->stats_commande['qty']; + } + if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) { + $generic_product->load_stats_commande_fournisseur(0, '3'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty']; + } else { + $generic_product->stats_commande_fournisseur['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier']; + } + $stock_order_supplier = $generic_product->stats_commande_fournisseur['qty']; + } + } + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_stock_reel = $generic_product->stock_reel.'/'.$stock_order; + if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) { + $warning++; + $text_warning .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ($reliquat > $generic_product->stock_reel) { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } else { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { + $text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier; + } + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
    '; + } + } + } + if ($notshippable == 0) { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); + $text_info = $text_icon.' '.$langs->trans('Shippable').'
    '.$text_info; + } else { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); + $text_info = $text_icon.' '.$langs->trans('NonShippable').'
    '.$text_info; + } + } + + if ($nbprod) { + print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); + } + if ($warning) { // Always false in default mode + print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
    '.$text_warning, 2, 1, img_picto('', 'error'), '', 2); + } + } + print '
    '.yn($obj->billed).''.$obj->import_key.''.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    '.$langs->trans("NoRecordFound").'
    '."\n"; + print '
    '; + + print ''."\n"; + + $hidegeneratedfilelistifempty = 1; + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { + $hidegeneratedfilelistifempty = 0; + } + + // Show list of available documents + $urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource .= str_replace('&', '&', $param); + + $filedir = $diroutputmassaction; + $genallowed = $permissiontoread; + $delallowed = $permissiontoadd; + + print $formfile->showdocuments('massfilesarea_orders', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); +} else { + dol_print_error($db); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/commande/note.php b/htdocs/commande/note.php index 55140c30ae2..e84dd5ad6e1 100644 --- a/htdocs/commande/note.php +++ b/htdocs/commande/note.php @@ -25,10 +25,11 @@ * \brief Fiche de notes sur une commande */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -51,6 +52,10 @@ $hookmanager->initHooks(array('ordernote')); $result = restrictedArea($user, 'commande', $id, ''); +$usercancreate = $user->hasRight("commande", "creer"); + +$permissionnote = $user->rights->commande->creer; // Used by the include of actions_setnotes.inc.php + $object = new Commande($db); if (!$object->fetch($id, $ref) > 0) { @@ -58,8 +63,6 @@ if (!$object->fetch($id, $ref) > 0) { exit; } -$permissionnote = $user->rights->commande->creer; // Used by the include of actions_setnotes.inc.php - /* * Actions @@ -77,7 +80,7 @@ if (empty($reshook)) { /* * View */ -$title = $langs->trans('Order')." - ".$langs->trans('Notes'); +$title = $object->ref." - ".$langs->trans('Notes'); $help_url = 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes|DE:Modul_Kundenaufträge'; llxHeader('', $title, $help_url); @@ -100,37 +103,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->commande->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php index 3e33ddedf57..9052ed7ab27 100644 --- a/htdocs/commande/stats/index.php +++ b/htdocs/commande/stats/index.php @@ -26,6 +26,7 @@ * \brief Page with customers or suppliers orders statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commandestats.class.php'; @@ -64,7 +65,7 @@ if ($user->socid > 0) { $socid = $user->socid; } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php index 8c1df906ab7..a6a1fde3851 100644 --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php @@ -46,14 +46,14 @@ foreach ($linkedObjectBlock as $key => $objectlink) { $trclass .= ' liste_sub_total'; } echo '
    '.$langs->trans("CustomerOrder"); + echo ''.$langs->trans("CustomerOrder"); if (!empty($showImportButton) && !empty($conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES)) { print ' '; - echo ''.$objectlink->getNomUrl(1).''.$objectlink->getNomUrl(1).''.$objectlink->ref_client.''.dol_print_date($objectlink->date, 'day').''.dol_print_date($objectlink->date, 'day').''; if ($user->rights->commande->lire) { $total = $total + $objectlink->total_ht; diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 996ad22fbce..2f2f5816ae1 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -1,9 +1,10 @@ - * Copyright (C) 2004-2019 Laurent Destailleur - * Copyright (C) 2017 Pierre-Henry Favre - * Copyright (C) 2020 Maxime DEMAREST - * Copyright (C) 2021 Gauthier VERDOL +/* Copyright (C) 2001-2006 Rodolphe Quiedeville + * Copyright (C) 2004-2019 Laurent Destailleur + * Copyright (C) 2017 Pierre-Henry Favre + * Copyright (C) 2020 Maxime DEMAREST + * Copyright (C) 2021 Gauthier VERDOL + * Copyright (C) 2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,6 +32,7 @@ if ((array_key_exists('action', $_GET) && $_GET['action'] == 'dl') || (array_key } } +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -47,6 +49,11 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/paymentloan.class.php'; +if (isModEnabled('project')) { + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +} + // Constant to define payment sens const PAY_DEBIT = 0; const PAY_CREDIT = 1; @@ -64,6 +71,7 @@ $date_stopMonth = GETPOST('date_stopmonth', 'int'); $date_stopYear = GETPOST('date_stopyear', 'int'); $date_stop = dol_mktime(23, 59, 59, $date_stopMonth, $date_stopDay, $date_stopYear, 'tzuserrel'); $action = GETPOST('action', 'aZ09'); +$projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : 0); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('comptafileslist', 'globallist')); @@ -101,7 +109,7 @@ $arrayfields = array( ); // Security check -if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled)) { +if (!isModEnabled('comptabilite') && !isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -110,12 +118,12 @@ if ($user->socid > 0) { // Define $arrayofentities if multientity is set. $arrayofentities = array(); -if (!empty($conf->multicompany->enabled) && is_object($mc)) { +if (isModEnabled('multicompany') && is_object($mc)) { $arrayofentities = $mc->getEntitiesList(); } $entity = (GETPOSTISSET('entity') ? GETPOST('entity', 'int') : (GETPOSTISSET('search_entity') ? GETPOST('search_entity', 'int') : $conf->entity)); -if (!empty($conf->multicompany->enabled) && is_object($mc)) { +if (isModEnabled('multicompany') && is_object($mc)) { if (empty($entity) && !empty($conf->global->MULTICOMPANY_ALLOW_EXPORT_ACCOUNTING_DOC_FOR_ALL_ENTITIES)) { $entity = '0,'.join(',', array_keys($arrayofentities)); } @@ -128,13 +136,13 @@ $error = 0; $listofchoices = array( 'selectinvoices'=>array('label'=>'Invoices', 'lang'=>'bills', 'enabled' => isModEnabled('facture'), 'perms' => !empty($user->rights->facture->lire)), - 'selectsupplierinvoices'=>array('label'=>'BillsSuppliers', 'lang'=>'bills', 'enabled' => !empty($conf->supplier_invoice->enabled), 'perms' => !empty($user->rights->fournisseur->facture->lire)), - 'selectexpensereports'=>array('label'=>'ExpenseReports', 'lang'=>'trips', 'enabled' => !empty($conf->expensereport->enabled), 'perms' => !empty($user->rights->expensereport->lire)), - 'selectdonations'=>array('label'=>'Donations', 'lang'=>'donation', 'enabled' => !empty($conf->don->enabled), 'perms' => !empty($user->rights->don->lire)), - 'selectsocialcontributions'=>array('label'=>'SocialContributions', 'enabled' => !empty($conf->tax->enabled), 'perms' => !empty($user->rights->tax->charges->lire)), - 'selectpaymentsofsalaries'=>array('label'=>'SalariesPayments', 'lang'=>'salaries', 'enabled' => !empty($conf->salaries->enabled), 'perms' => !empty($user->rights->salaries->read)), - 'selectvariouspayment'=>array('label'=>'VariousPayment', 'enabled' => !empty($conf->banque->enabled), 'perms' => !empty($user->rights->banque->lire)), - 'selectloanspayment'=>array('label'=>'PaymentLoan', 'enabled' => !empty($conf->loan->enabled), 'perms' => !empty($user->rights->loan->read)), + 'selectsupplierinvoices'=>array('label'=>'BillsSuppliers', 'lang'=>'bills', 'enabled' => isModEnabled('supplier_invoice'), 'perms' => !empty($user->rights->fournisseur->facture->lire)), + 'selectexpensereports'=>array('label'=>'ExpenseReports', 'lang'=>'trips', 'enabled' => isModEnabled('expensereport'), 'perms' => !empty($user->rights->expensereport->lire)), + 'selectdonations'=>array('label'=>'Donations', 'lang'=>'donation', 'enabled' => isModEnabled('don'), 'perms' => !empty($user->rights->don->lire)), + 'selectsocialcontributions'=>array('label'=>'SocialContributions', 'enabled' => isModEnabled('tax'), 'perms' => !empty($user->rights->tax->charges->lire)), + 'selectpaymentsofsalaries'=>array('label'=>'SalariesPayments', 'lang'=>'salaries', 'enabled' => isModEnabled('salaries'), 'perms' => !empty($user->rights->salaries->read)), + 'selectvariouspayment'=>array('label'=>'VariousPayment', 'enabled' => isModEnabled('banque'), 'perms' => !empty($user->rights->banque->lire)), + 'selectloanspayment'=>array('label'=>'PaymentLoan', 'enabled' => isModEnabled('don'), 'perms' => !empty($user->rights->loan->read)), ); @@ -175,6 +183,7 @@ if (($action == 'searchfiles' || $action == 'dl')) { $sql .= " WHERE datef between ".$wheretail; $sql .= " AND t.entity IN (".$db->sanitize($entity == 1 ? '0,1' : $entity).')'; $sql .= " AND t.fk_statut <> ".Facture::STATUS_DRAFT; + if (!empty($projectid)) $sql .= " AND fk_projet = ".((int) $projectid); } // Vendor invoices if (GETPOST('selectsupplierinvoices') && !empty($listofchoices['selectsupplierinvoices']['perms'])) { @@ -186,9 +195,10 @@ if (($action == 'searchfiles' || $action == 'dl')) { $sql .= " WHERE datef between ".$wheretail; $sql .= " AND t.entity IN (".$db->sanitize($entity == 1 ? '0,1' : $entity).')'; $sql .= " AND t.fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + if (!empty($projectid)) $sql .= " AND fk_projet = ".((int) $projectid); } // Expense reports - if (GETPOST('selectexpensereports') && !empty($listofchoices['selectexpensereports']['perms'])) { + if (GETPOST('selectexpensereports') && !empty($listofchoices['selectexpensereports']['perms']) && empty($projectid)) { if (!empty($sql)) { $sql .= " UNION ALL"; } @@ -208,6 +218,7 @@ if (($action == 'searchfiles' || $action == 'dl')) { $sql .= " WHERE datedon between ".$wheretail; $sql .= " AND t.entity IN (".$db->sanitize($entity == 1 ? '0,1' : $entity).')'; $sql .= " AND t.fk_statut <> ".Don::STATUS_DRAFT; + if (!empty($projectid)) $sql .= " AND fk_projet = ".((int) $projectid); } // Payments of salaries if (GETPOST('selectpaymentsofsalaries') && !empty($listofchoices['selectpaymentsofsalaries']['perms'])) { @@ -219,6 +230,7 @@ if (($action == 'searchfiles' || $action == 'dl')) { $sql .= " WHERE datep between ".$wheretail; $sql .= " AND t.entity IN (".$db->sanitize($entity == 1 ? '0,1' : $entity).')'; //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; + if (!empty($projectid)) $sql .= " AND fk_projet = ".((int) $projectid); } // Social contributions if (GETPOST('selectsocialcontributions') && !empty($listofchoices['selectsocialcontributions']['perms'])) { @@ -230,6 +242,7 @@ if (($action == 'searchfiles' || $action == 'dl')) { $sql .= " WHERE t.date_ech between ".$wheretail; $sql .= " AND t.entity IN (".$db->sanitize($entity == 1 ? '0,1' : $entity).')'; //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; + if (!empty($projectid)) $sql .= " AND fk_projet = ".((int) $projectid); } // Various payments if (GETPOST('selectvariouspayment') && !empty($listofchoices['selectvariouspayment']['perms'])) { @@ -240,9 +253,10 @@ if (($action == 'searchfiles' || $action == 'dl')) { $sql .= " FROM ".MAIN_DB_PREFIX."payment_various as t"; $sql .= " WHERE datep between ".$wheretail; $sql .= " AND t.entity IN (".$db->sanitize($entity == 1 ? '0,1' : $entity).')'; + if (!empty($projectid)) $sql .= " AND fk_projet = ".((int) $projectid); } // Loan payments - if (GETPOST('selectloanspayment') && !empty($listofchoices['selectloanspayment']['perms'])) { + if (GETPOST('selectloanspayment') && !empty($listofchoices['selectloanspayment']['perms']) && empty($projectid)) { if (!empty($sql)) { $sql .= " UNION ALL"; } @@ -437,79 +451,86 @@ if (empty($dirfortmpfile)) { if ($result && $action == "dl" && !$error) { if (!extension_loaded('zip')) { setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); - exit; - } + } else { + dol_mkdir($dirfortmpfile); - dol_mkdir($dirfortmpfile); - - $log = $langs->transnoentitiesnoconv("Type"); - if (!empty($conf->multicompany->enabled) && is_object($mc)) { - $log .= ','.$langs->transnoentitiesnoconv("Entity"); - } - $log .= ','.$langs->transnoentitiesnoconv("Date"); - $log .= ','.$langs->transnoentitiesnoconv("DateDue"); - $log .= ','.$langs->transnoentitiesnoconv("Ref"); - $log .= ','.$langs->transnoentitiesnoconv("TotalHT"); - $log .= ','.$langs->transnoentitiesnoconv("TotalTTC"); - $log .= ','.$langs->transnoentitiesnoconv("TotalVAT"); - $log .= ','.$langs->transnoentitiesnoconv("Paid"); - $log .= ','.$langs->transnoentitiesnoconv("Document"); - $log .= ','.$langs->transnoentitiesnoconv("ItemID"); - $log .= ','.$langs->transnoentitiesnoconv("ThirdParty"); - $log .= ','.$langs->transnoentitiesnoconv("Code"); - $log .= ','.$langs->transnoentitiesnoconv("Country"); - $log .= ','.$langs->transnoentitiesnoconv("VATIntra"); - $log .= ','.$langs->transnoentitiesnoconv("Sens")."\n"; - $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc', 'tzuserrel')."-".dol_print_date($date_stop, 'dayrfc', 'tzuserrel').'_export.zip'; - - dol_delete_file($zipname); - - $zip = new ZipArchive; - $res = $zip->open($zipname, ZipArchive::OVERWRITE | ZipArchive::CREATE); - if ($res) { - foreach ($filesarray as $key => $file) { - if (!empty($file['files'])) { - foreach ($file['files'] as $filecursor) { - if (file_exists($filecursor["fullname"])) { - $zip->addFile($filecursor["fullname"], $filecursor["relpathnamelang"]); - } - } - } - - $log .= '"'.$langs->trans($file['item']).'"'; - if (!empty($conf->multicompany->enabled) && is_object($mc)) { - $log .= ',"'.(empty($arrayofentities[$file['entity']]) ? $file['entity'] : $arrayofentities[$file['entity']]).'"'; - } - $log .= ','.dol_print_date($file['date'], 'dayrfc'); - $log .= ','.dol_print_date($file['date_due'], 'dayrfc'); - $log .= ',"'.$file['ref'].'"'; - $log .= ','.$file['amount_ht']; - $log .= ','.$file['amount_ttc']; - $log .= ','.$file['amount_vat']; - $log .= ','.$file['paid']; - $log .= ',"'.$file["name"].'"'; - $log .= ','.$file['fk']; - $log .= ',"'.$file['thirdparty_name'].'"'; - $log .= ',"'.$file['thirdparty_code'].'"'; - $log .= ',"'.$file['country_code'].'"'; - $log .= ',"'.$file['vatnum'].'"'; - $log .= ',"'.$file['sens'].'"'; - $log .= "\n"; + $log = $langs->transnoentitiesnoconv("Type"); + if (isModEnabled('multicompany') && is_object($mc)) { + $log .= ','.$langs->transnoentitiesnoconv("Entity"); } - $zip->addFromString('transactions.csv', $log); - $zip->close(); - - // Then download the zipped file. - header('Content-Type: application/zip'); - header('Content-disposition: attachment; filename='.basename($zipname)); - header('Content-Length: '.filesize($zipname)); - readfile($zipname); + $log .= ','.$langs->transnoentitiesnoconv("Date"); + $log .= ','.$langs->transnoentitiesnoconv("DateDue"); + $log .= ','.$langs->transnoentitiesnoconv("Ref"); + $log .= ','.$langs->transnoentitiesnoconv("TotalHT"); + $log .= ','.$langs->transnoentitiesnoconv("TotalTTC"); + $log .= ','.$langs->transnoentitiesnoconv("TotalVAT"); + $log .= ','.$langs->transnoentitiesnoconv("Paid"); + $log .= ','.$langs->transnoentitiesnoconv("Document"); + $log .= ','.$langs->transnoentitiesnoconv("ItemID"); + $log .= ','.$langs->transnoentitiesnoconv("ThirdParty"); + $log .= ','.$langs->transnoentitiesnoconv("Code"); + $log .= ','.$langs->transnoentitiesnoconv("Country"); + $log .= ','.$langs->transnoentitiesnoconv("VATIntra"); + $log .= ','.$langs->transnoentitiesnoconv("Sens")."\n"; + $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc', 'tzuserrel')."-".dol_print_date($date_stop, 'dayrfc', 'tzuserrel'); + if (!empty($projectid)) { + $project = new Project($db); + $project->fetch($projectid); + if ($project->ref) { + $zipname .= '_'.$project->ref; + } + } + $zipname .='_export.zip'; dol_delete_file($zipname); - exit(); - } else { - setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors'); + $zip = new ZipArchive; + $res = $zip->open($zipname, ZipArchive::OVERWRITE | ZipArchive::CREATE); + if ($res) { + foreach ($filesarray as $key => $file) { + if (!empty($file['files'])) { + foreach ($file['files'] as $filecursor) { + if (file_exists($filecursor["fullname"])) { + $zip->addFile($filecursor["fullname"], $filecursor["relpathnamelang"]); + } + } + } + + $log .= '"'.$langs->trans($file['item']).'"'; + if (isModEnabled('multicompany') && is_object($mc)) { + $log .= ',"'.(empty($arrayofentities[$file['entity']]) ? $file['entity'] : $arrayofentities[$file['entity']]).'"'; + } + $log .= ','.dol_print_date($file['date'], 'dayrfc'); + $log .= ','.dol_print_date($file['date_due'], 'dayrfc'); + $log .= ',"'.$file['ref'].'"'; + $log .= ','.$file['amount_ht']; + $log .= ','.$file['amount_ttc']; + $log .= ','.$file['amount_vat']; + $log .= ','.$file['paid']; + $log .= ',"'.$file["name"].'"'; + $log .= ','.$file['fk']; + $log .= ',"'.$file['thirdparty_name'].'"'; + $log .= ',"'.$file['thirdparty_code'].'"'; + $log .= ',"'.$file['country_code'].'"'; + $log .= ',"'.$file['vatnum'].'"'; + $log .= ',"'.$file['sens'].'"'; + $log .= "\n"; + } + $zip->addFromString('transactions.csv', $log); + $zip->close(); + + // Then download the zipped file. + header('Content-Type: application/zip'); + header('Content-disposition: attachment; filename='.basename($zipname)); + header('Content-Length: '.filesize($zipname)); + readfile($zipname); + + dol_delete_file($zipname); + + exit(); + } else { + setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors'); + } } } @@ -548,7 +569,7 @@ print '
    '."\n print ''; print ''.$langs->trans("ExportAccountingSourceDocHelp"); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { print ' '.$langs->trans("ExportAccountingSourceDocHelp2", $langs->transnoentitiesnoconv("Accounting"), $langs->transnoentitiesnoconv("Journals")); } print '
    '; @@ -561,11 +582,13 @@ print $form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0, '', '', ' print "\n"; // Export is for current company only -if (!empty($conf->multicompany->enabled) && is_object($mc)) { +$socid = 0; +if (isModEnabled('multicompany') && is_object($mc)) { $mc->getInfo($conf->entity); print '('.$langs->trans("Entity").' : '; print "
    "; if (!empty($conf->global->MULTICOMPANY_ALLOW_EXPORT_ACCOUNTING_DOC_FOR_ALL_ENTITIES)) { + $socid = $mc->id; print $mc->select_entities(GETPOSTISSET('search_entity') ? GETPOST('search_entity', 'int') : $mc->id, 'search_entity', '', false, false, false, false, true); } else { print $mc->label; @@ -576,6 +599,16 @@ if (!empty($conf->multicompany->enabled) && is_object($mc)) { print '
    '; +// Project filter +if (isModEnabled('projet')) { + $formproject = new FormProjets($db); + $langs->load('projects'); + print ''.$langs->trans('Project').":"; + print img_picto('', 'project').$formproject->select_projects(($socid > 0 ? $socid : -1), $projectid, 'projectid', 0, 0, 1, 0, 0, 0, 0, '', 1, 0, ''); + print ''; + print '
    '; +} + foreach ($listofchoices as $choice => $val) { if (empty($val['enabled'])) { continue; // list not qualified @@ -594,6 +627,7 @@ print ''."\n"; print dol_get_fiche_end(); +$param = ''; if (!empty($date_start) && !empty($date_stop)) { $param .= '&date_startday='.GETPOST('date_startday', 'int'); $param .= '&date_startmonth='.GETPOST('date_startmonth', 'int'); @@ -614,7 +648,7 @@ if (!empty($date_start) && !empty($date_stop)) { echo dol_print_date($date_start, 'day', 'tzuserrel')." - ".dol_print_date($date_stop, 'day', 'tzuserrel'); - print ''.$langs->trans("Document").'
    '.$langs->trans("Paid").''.$langs->trans("TotalHT").($conf->multicurrency->enabled ? ' ('.$conf->currency.')' : '').''.$langs->trans("TotalTTC").($conf->multicurrency->enabled ? ' ('.$conf->currency.')' : '').''.$langs->trans("TotalVAT").($conf->multicurrency->enabled ? ' ('.$conf->currency.')' : '').''.$langs->trans("TotalHT").(isModEnabled('multicurrency') ? ' ('.$conf->currency.')' : '').''.$langs->trans("TotalTTC").(isModEnabled('multicurrency') ? ' ('.$conf->currency.')' : '').''.$langs->trans("TotalVAT").(isModEnabled('multicurrency') ? ' ('.$conf->currency.')' : '').''.$langs->trans("ThirdParty").''.$langs->trans("Code").''.$langs->trans("Country").''.$langs->trans("VATIntra").''.$langs->trans("Currency").'
    '.$langs->trans("NoRecordFound").'
    '.$data['currency']."'.price(price2num($totalIT_credit, 'MT')).''.price(price2num($totalVAT_credit, 'MT')).'
    '.price(price2num($totalIT_debit, 'MT')).''.price(price2num($totalVAT_debit, 'MT')).'
    '.price(price2num($totalIT_credit + $totalIT_debit, 'MT')).''.price(price2num($totalVAT_credit + $totalVAT_debit, 'MT')).'
    ".dol_print_date(dol_mktime(1, 1, 1, $mois, 1, 2000), "%B")." '; diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index fba2d05897c..6c961e85af9 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -31,6 +31,7 @@ * \brief List of bank transactions */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; @@ -235,8 +236,12 @@ if (empty($reshook)) { include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } +$rowids = GETPOST('rowid', 'array'); + // Conciliation -if ((GETPOST('confirm_savestatement', 'alpha') || GETPOST('confirm_reconcile', 'alpha')) && !empty($user->rights->banque->consolidate) +if ((GETPOST('confirm_savestatement', 'alpha') || GETPOST('confirm_reconcile', 'alpha')) + && (GETPOST("num_releve", "alpha") || !empty($rowids)) + && !empty($user->rights->banque->consolidate) && (!GETPOSTISSET('pageplusone') || (GETPOST('pageplusone') == GETPOST('pageplusoneold')))) { $error = 0; @@ -357,11 +362,11 @@ if (GETPOST('save') && !$cancel && !empty($user->rights->banque->modifier)) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors'); } - if (!$bankaccountid > 0) { + if (!($bankaccountid > 0)) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors'); } - /*if (! empty($conf->accounting->enabled) && (empty($search_accountancy_code) || $search_accountancy_code == '-1')) + /*if (isModEnabled('accounting') && (empty($search_accountancy_code) || $search_accountancy_code == '-1')) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("AccountAccounting")), null, 'errors'); $error++; @@ -512,10 +517,16 @@ $buttonreconcile = ''; $morehtmlref = ''; if ($id > 0 || !empty($ref)) { - $title = $langs->trans("FinancialAccount").' - '.$langs->trans("Transactions"); - $helpurl = ""; - llxHeader('', $title, $helpurl); + $title = $object->ref.' - '.$langs->trans("Transactions"); +} else { + $title = $langs->trans("BankTransactions"); +} +$help_url = ''; +llxHeader('', $title, $help_url, '', 0, 0, array(), array(), $param); + + +if ($id > 0 || !empty($ref)) { // Load bank groups require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php'; $bankcateg = new BankCateg($db); @@ -570,11 +581,8 @@ if ($id > 0 || !empty($ref)) { } } } -} else { - llxHeader('', $langs->trans("BankTransactions"), '', '', 0, 0, array(), array(), $param); } - $sql = "SELECT b.rowid, b.dateo as do, b.datev as dv, b.amount, b.label, b.rappro as conciliated, b.num_releve, b.num_chq,"; $sql .= " b.fk_account, b.fk_type, b.fk_bordereau,"; $sql .= " ba.rowid as bankid, ba.ref as bankref"; @@ -875,7 +883,7 @@ if ($resql) { print ''.$langs->trans("BankAccount").''.$langs->trans("Debit").''.$langs->trans("Credit").''; print $langs->trans("AccountAccounting"); @@ -910,7 +918,7 @@ if ($resql) { //} print ''; print $formaccounting->select_account($search_accountancy_code, 'search_accountancy_code', 1, null, 1, 1, ''); @@ -1019,9 +1027,9 @@ if ($resql) { $moreforfilter .= ''; $moreforfilter .= ''; - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { $langs->load('categories'); // Bank line @@ -1077,7 +1085,7 @@ if ($resql) { } if (!empty($arrayfields['type']['checked'])) { print ''; - $form->select_types_paiements(empty($search_type) ? '' : $search_type, 'search_type', '', 2, 1, 1, 0, 1, 'maxwidth100'); + print $form->select_types_paiements(empty($search_type) ? '' : $search_type, 'search_type', '', 2, 1, 1, 0, 1, 'maxwidth100', 1); print ''; - print $form->selectyesno('search_conciliated', $search_conciliated, 1, false, 1, 1); + print ''; + print $form->selectyesno('search_conciliated', $search_conciliated, 1, false, 1, 1, 'search_status onrightofpage maxwidth75'); print '
    '.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACCOUNT, '', 'parent', 64, 0, 1); @@ -506,6 +515,7 @@ if ($action == 'create') { // Show fields of bank account $sizecss = ''; foreach ($object->getFieldsToShow() as $val) { + $content = ''; if ($val == 'BankCode') { $name = 'code_banque'; $sizecss = 'minwidth100'; @@ -525,7 +535,7 @@ if ($action == 'create') { } print ''.$langs->trans($val).'
    '.$langs->trans($ibankey).'
    '.$langs->trans($bickey).'
    '.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'
    '.$langs->trans("BankAccountDomiciliation").''; print '
    '.$langs->trans("BankAccountOwner").'
    '.$langs->trans("AccountancyCode").''; print $formaccounting->select_account($object->account_number, 'account_number', 1, '', 1, 1); @@ -584,7 +594,7 @@ if ($action == 'create') { } // Accountancy journal - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print '
    '.$langs->trans("AccountancyJournal").''; print $formaccounting->select_journal($object->fk_accountancy_journal, 'fk_accountancy_journal', 4, 1, 0, 0); @@ -599,22 +609,8 @@ if ($action == 'create') { print ''; } else { - /* ************************************************************************** */ - /* */ - /* Visu et edition */ - /* */ - /* ************************************************************************** */ - + // View and edit mode if ((GETPOST("id", 'int') || GETPOST("ref")) && $action != 'edit') { - $object = new Account($db); - if (GETPOST("id", 'int')) { - $object->fetch(GETPOST("id", 'int')); - } - if (GETPOST("ref")) { - $object->fetch(0, GETPOST("ref")); - $_GET["id"] = $object->id; - } - // Show tabs $head = bank_prepare_head($object); print dol_get_fiche_head($head, 'bankname', $langs->trans("FinancialAccount"), -1, 'account'); @@ -677,7 +673,7 @@ if ($action == 'create') { // Accountancy code print '
    '.$langs->trans("AccountancyCode").''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $object->account_number, 1); @@ -688,7 +684,7 @@ if ($action == 'create') { print '
    '.$langs->trans("AccountancyJournal").''; @@ -714,7 +710,7 @@ if ($action == 'create') { print ''; // Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { print '"; @@ -735,6 +731,7 @@ if ($action == 'create') { // Show fields of bank account foreach ($object->getFieldsToShow() as $val) { + $content = ''; if ($val == 'BankCode') { $content = $object->code_banque; } elseif ($val == 'DeskCode') { @@ -757,7 +754,7 @@ if ($action == 'create') { } print ''; - print ''; // Tags-Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { print ''; @@ -1013,9 +1007,9 @@ if ($action == 'create') { $tdextra = ' class="fieldrequired titlefieldcreate"'; } - print ''.$langs->trans("AccountancyCode").''; + print ''.$langs->trans("AccountancyCode").''; print ''; // Accountancy journal - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print ''; print ''; - print ''; + print ''; print ''; // Show fields of bank account foreach ($object->getFieldsToShow() as $val) { + $content = ''; if ($val == 'BankCode') { $name = 'code_banque'; - $size = 8; + $css = 'with100'; $content = $object->code_banque; } elseif ($val == 'DeskCode') { $name = 'code_guichet'; - $size = 8; + $css = 'with100'; $content = $object->code_guichet; } elseif ($val == 'BankAccountNumber') { $name = 'number'; - $size = 18; + $css = 'with200'; $content = $object->number; } elseif ($val == 'BankAccountNumberKey') { $name = 'cle_rib'; - $size = 3; + $css = 'with50'; $content = $object->cle_rib; } print ''; - print ''; + print ''; print ''; } @@ -1088,7 +1083,7 @@ if ($action == 'create') { print ''; } - if (!empty(isModEnabled('paymentbybanktransfer'))) { + if (isModEnabled('paymentbybanktransfer')) { print ''; print ''; diff --git a/htdocs/compta/bank/categ.php b/htdocs/compta/bank/categ.php index aa60c1ddf41..fbb52fe4a58 100644 --- a/htdocs/compta/bank/categ.php +++ b/htdocs/compta/bank/categ.php @@ -21,29 +21,38 @@ */ /** - * \file htdocs/compta/bank/categ.php - * \ingroup compta - * \brief Page ajout de categories bancaires + * \file htdocs/compta/bank/categ.php + * \ingroup compta/bank + * \brief Page to manage Bank Categories */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php'; + // Load translation files required by the page $langs->loadLangs(array('banks', 'categories')); + +// Get Parameters $action = GETPOST('action', 'aZ09'); $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$categid = GETPOST('categid'); +$label = GETPOST("label"); + +// Initialize technical objects +$bankcateg = new BankCateg($db); + + +// Security Check Access Control if (!$user->rights->banque->configurer) { accessforbidden(); } -$bankcateg = new BankCateg($db); -$categid = GETPOST('categid'); -$label = GETPOST("label"); - /* diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index cee2874d8c5..4aea92a510e 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -9,6 +9,7 @@ * Copyright (C) 2015-2017 Alexandre Spangaro * Copyright (C) 2016 Ferran Marcet * Copyright (C) 2019 JC Prieto + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -315,7 +316,7 @@ class Account extends CommonObject 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>157), 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-1, 'position'=>160), 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>165), - 'note_public' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>170), + 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>170), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>1, 'visible'=>0, 'position'=>175), 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>180), 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>185), @@ -618,7 +619,7 @@ class Account extends CommonObject $this->error = $this->db->lasterror(); $this->db->rollback(); - return -3; + return -4; } } @@ -630,7 +631,7 @@ class Account extends CommonObject $this->errors = $accline->errors; $this->db->rollback(); - return -2; + return -5; } } @@ -852,7 +853,7 @@ class Account extends CommonObject $sql .= ",min_allowed = ".($this->min_allowed != '' ? price2num($this->min_allowed) : "null"); $sql .= ",min_desired = ".($this->min_desired != '' ? price2num($this->min_desired) : "null"); - $sql .= ",comment = '".$this->db->escape($this->comment)."'"; + $sql .= ",comment = '".$this->db->escape($this->comment)."'"; $sql .= ",state_id = ".($this->state_id > 0 ? ((int) $this->state_id) : "null"); $sql .= ",fk_pays = ".($this->country_id > 0 ? ((int) $this->country_id) : "null"); @@ -1059,8 +1060,8 @@ class Account extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { @@ -1206,7 +1207,7 @@ class Account extends CommonObject * Return current sold * * @param int $option 1=Exclude future operation date (this is to exclude input made in advance and have real account sold) - * @param tms $date_end Date until we want to get bank account sold + * @param int $date_end Date until we want to get bank account sold * @param string $field dateo or datev * @return int current sold (value date <= today) */ @@ -1381,6 +1382,7 @@ class Account extends CommonObject public function getNomUrl($withpicto = 0, $mode = '', $option = '', $save_lastsearch_value = -1, $notooltip = 0) { global $conf, $langs, $user; + include_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; $result = ''; $label = img_picto('', $this->picto).' '.$langs->trans("BankAccount").''; @@ -1389,7 +1391,7 @@ class Account extends CommonObject } $label .= '
    '.$langs->trans('Label').': '.$this->label; $label .= '
    '.$langs->trans('AccountNumber').': '.$this->number; - $label .= '
    '.$langs->trans('IBAN').': '.$this->iban; + $label .= '
    '.$langs->trans('IBAN').': '.getIbanHumanReadable($this); $label .= '
    '.$langs->trans('BIC').': '.$this->bic; $label .= '
    '.$langs->trans("AccountCurrency").': '.$this->currency_code; @@ -1397,7 +1399,7 @@ class Account extends CommonObject $option = 'nolink'; } - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; $langs->load("accountancy"); $label .= '
    '.$langs->trans('AccountAccounting').': '.length_accountg($this->account_number); @@ -1707,19 +1709,20 @@ class Account extends CommonObject */ public function initAsSpecimen() { + // Example of IBAN FR7630001007941234567890185 $this->specimen = 1; $this->ref = 'MBA'; $this->label = 'My Big Company Bank account'; $this->bank = 'MyBank'; $this->courant = Account::TYPE_CURRENT; $this->clos = Account::STATUS_OPEN; - $this->code_banque = '123'; - $this->code_guichet = '456'; - $this->number = 'ABC12345'; - $this->cle_rib = '50'; + $this->code_banque = '30001'; + $this->code_guichet = '00794'; + $this->number = '12345678901'; + $this->cle_rib = '85'; $this->bic = 'AA12'; - $this->iban = 'FR999999999'; - $this->domiciliation = 'My bank address'; + $this->iban = 'FR7630001007941234567890185'; + $this->domiciliation = 'Banque de France'; $this->proprio = 'Owner'; $this->owner_address = 'Owner address'; $this->country_id = 1; @@ -1924,18 +1927,18 @@ class AccountLine extends CommonObject $obj = $this->db->fetch_object($result); if ($obj) { $this->id = $obj->rowid; - $this->rowid = $obj->rowid; + $this->rowid = $obj->rowid; $this->ref = $obj->rowid; - $this->datec = $obj->datec; - $this->datev = $obj->datev; - $this->dateo = $obj->dateo; + $this->datec = $obj->datec; + $this->datev = $obj->datev; + $this->dateo = $obj->dateo; $this->amount = $obj->amount; - $this->label = $obj->label; - $this->note = $obj->note; + $this->label = $obj->label; + $this->note = $obj->note; - $this->fk_user_author = $obj->fk_user_author; - $this->fk_user_rappro = $obj->fk_user_rappro; + $this->fk_user_author = $obj->fk_user_author; + $this->fk_user_rappro = $obj->fk_user_rappro; $this->fk_type = $obj->fk_type; // Type of transaction $this->rappro = $obj->rappro; @@ -1946,9 +1949,13 @@ class AccountLine extends CommonObject $this->fk_bordereau = $obj->fk_bordereau; $this->fk_account = $obj->fk_account; - $this->bank_account_ref = $obj->bank_account_ref; + $this->bank_account_ref = $obj->bank_account_ref; $this->bank_account_label = $obj->bank_account_label; + // Retrieve all extrafield + // fetch optionals attributes and labels + $this->fetch_optionals(); + $ret = 1; } $this->db->free($result); @@ -1965,6 +1972,10 @@ class AccountLine extends CommonObject */ public function insert() { + $error = 0; + + $this->db->begin(); + $sql = "INSERT INTO ".MAIN_DB_PREFIX."bank ("; $sql .= "datec"; $sql .= ", dateo"; @@ -2000,15 +2011,26 @@ class AccountLine extends CommonObject dol_syslog(get_class($this)."::insert", LOG_DEBUG); $resql = $this->db->query($sql); - - if (!$resql) { + if ($resql) { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.'bank'); + // Actions on extra fields (by external module or standard code) + $result = $this->insertExtraFields(); + if ($result < 0) { + $error++; + } + } else { + $error++; $this->error = $this->db->lasterror(); - return -1; + dol_print_error($this->db); } - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.'bank'); - - return $this->id; + if (!$error) { + $this->db->commit(); + return $this->id; + } else { + $this->db->rollback(); + return -1 * $error; + } } /** @@ -2062,6 +2084,12 @@ class AccountLine extends CommonObject $nbko++; } + $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_extrafields WHERE fk_object=".(int) $this->rowid; + $result = $this->db->query($sql); + if (!$result) { + $nbko++; + } + $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".(int) $this->rowid; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $result = $this->db->query($sql); @@ -2389,7 +2417,7 @@ class AccountLine extends CommonObject $result = ''; - $label = img_picto('', $this->picto).' '.$langs->trans("Transaction").':
    '; + $label = img_picto('', $this->picto).' '.$langs->trans("BankTransactionLine").':
    '; $label .= ''.$langs->trans("Ref").': '.$this->ref; $linkstart = ''; diff --git a/htdocs/compta/bank/class/api_bankaccounts.class.php b/htdocs/compta/bank/class/api_bankaccounts.class.php index 8e38d1ffe78..537c7c9acb6 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -122,8 +122,8 @@ class BankAccounts extends DolibarrApi /** * Get account by ID. * - * @param int $id ID of account - * @return array Account object + * @param int $id ID of account + * @return Object Object with cleaned properties * * @throws RestException */ @@ -313,9 +313,9 @@ class BankAccounts extends DolibarrApi /** * Update account * - * @param int $id ID of account - * @param array $request_data data - * @return int + * @param int $id ID of account + * @param array $request_data data + * @return Object Object with cleaned properties */ public function put($id, $request_data = null) { @@ -471,7 +471,7 @@ class BankAccounts extends DolibarrApi * Add a line to an account * * @param int $id ID of account - * @param int $date Payment date (timestamp) {@from body} {@type timestamp} + * @param string $date Payment date (timestamp) {@from body} {@type timestamp} * @param string $type Payment mode (TYP,VIR,PRE,LIQ,VAD,CB,CHQ...) {@from body} * @param string $label Label {@from body} * @param float $amount Amount (may be 0) {@from body} @@ -480,7 +480,7 @@ class BankAccounts extends DolibarrApi * @param string $cheque_writer Name of cheque writer {@from body} * @param string $cheque_bank Bank of cheque writer {@from body} * @param string $accountancycode Accountancy code {@from body} - * @param int $datev Payment date value (timestamp) {@from body} {@type timestamp} + * @param string $datev Payment date value (timestamp) {@from body} {@type timestamp} * @param string $num_releve Bank statement numero {@from body} * @return int ID of line * diff --git a/htdocs/compta/bank/class/bankcateg.class.php b/htdocs/compta/bank/class/bankcateg.class.php index 1795704d4ff..581bc5fd1da 100644 --- a/htdocs/compta/bank/class/bankcateg.class.php +++ b/htdocs/compta/bank/class/bankcateg.class.php @@ -80,7 +80,7 @@ class BankCateg // extends CommonObject $sql .= "label"; $sql .= ", entity"; $sql .= ") VALUES ("; - $sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").""; + $sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'"); $sql .= ", ".((int) $conf->entity); $sql .= ")"; @@ -169,7 +169,7 @@ class BankCateg // extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."bank_categ SET"; - $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").""; + $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); $sql .= " AND entity = ".$conf->entity; diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 8bad5dbebd0..3d07c280559 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -423,11 +423,11 @@ class PaymentVarious extends CommonObject $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")); return -5; } - if (!empty($conf->banque->enabled) && (empty($this->fk_account) || $this->fk_account <= 0)) { + if (isModEnabled("banque") && (empty($this->fk_account) || $this->fk_account <= 0)) { $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("BankAccount")); return -6; } - if (!empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0)) { + if (isModEnabled("banque") && (empty($this->type_payment) || $this->type_payment <= 0)) { $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode")); return -7; } @@ -481,7 +481,7 @@ class PaymentVarious extends CommonObject $this->ref = $this->id; if ($this->id > 0) { - if (!empty($conf->banque->enabled) && !empty($this->amount)) { + if (isModEnabled("banque") && !empty($this->amount)) { // Insert into llx_bank require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -606,45 +606,20 @@ class PaymentVarious extends CommonObject public function LibStatut($status, $mode = 0) { // phpcs:enable - global $langs; - - if ($mode == 0) { - return $langs->trans($this->statuts[$status]); - } elseif ($mode == 1) { - return $langs->trans($this->statuts_short[$status]); - } elseif ($mode == 2) { - if ($status == 0) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts_short[$status]); - } elseif ($status == 1) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); - } elseif ($status == 2) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts_short[$status]); - } - } elseif ($mode == 3) { - if ($status == 0 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - } elseif ($status == 1 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - } elseif ($status == 2 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); - } - } elseif ($mode == 4) { - if ($status == 0 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts[$status]); - } elseif ($status == 1 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); - } elseif ($status == 2 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts[$status]); - } - } elseif ($mode == 5) { - if ($status == 0 && !empty($this->statuts_short[$status])) { - return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - } elseif ($status == 1 && !empty($this->statuts_short[$status])) { - return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - } elseif ($status == 2 && !empty($this->statuts_short[$status])) { - return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); - } + if (empty($this->labelStatus) || empty($this->labelStatusShort)) { + global $langs; + //$langs->load("mymodule@mymodule"); + /*$this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); + $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); + $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); + $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled');*/ } + + $statusType = 'status'.$status; + + return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); } diff --git a/htdocs/compta/bank/document.php b/htdocs/compta/bank/document.php index 78d45beadf3..0960b984c04 100644 --- a/htdocs/compta/bank/document.php +++ b/htdocs/compta/bank/document.php @@ -1,5 +1,4 @@ * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005 Marc Barilley / Ocebo @@ -39,6 +38,9 @@ $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('bankaccountdocuments', 'globalcard')); + // Security check if ($user->socid) { $action = ''; @@ -93,8 +95,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; * View */ -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("Documents"); - +$title = $object->ref.' - '.$langs->trans("Documents"); $help_url = "EN:Module_Banks_and_Cash|FR:Module_Banques_et_Caisses"; llxHeader("", $title, $help_url); diff --git a/htdocs/compta/bank/graph.php b/htdocs/compta/bank/graph.php index 459134dc68a..490107e4893 100644 --- a/htdocs/compta/bank/graph.php +++ b/htdocs/compta/bank/graph.php @@ -23,6 +23,7 @@ * \brief Page graph des transactions bancaires */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -34,6 +35,9 @@ $langs->loadLangs(array('banks', 'categories')); $WIDTH = DolGraph::getDefaultGraphSizeForStats('width', 768); $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height', 200); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('bankstats', 'globalcard')); + // Security check if (GETPOST('account') || GETPOST('ref')) { $id = GETPOST('account') ? GETPOST('account') : GETPOST('ref'); @@ -55,11 +59,6 @@ $error = 0; /* * View */ - -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("Graph"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $form = new Form($db); $datetime = dol_now(); @@ -83,6 +82,10 @@ if (GETPOST("ref")) { $account = $object->id; } +$title = $object->ref.' - '.$langs->trans("Graph"); +$helpurl = ""; +llxHeader('', $title, $helpurl); + $result = dol_mkdir($conf->bank->dir_temp); if ($result < 0) { $langs->load("errors"); @@ -455,7 +458,7 @@ if ($result < 0) { if ($day > ($max + 86400)) { $datas[$i] = ''; // Valeur speciale permettant de ne pas tracer le graph } else { - $datas[$i] = 0 + $solde + $subtotal; + $datas[$i] = $solde + $subtotal; } $datamin[$i] = $object->min_desired; $dataall[$i] = $object->min_allowed; diff --git a/htdocs/compta/bank/info.php b/htdocs/compta/bank/info.php index 1bbab933e7b..729ccc53fdc 100644 --- a/htdocs/compta/bank/info.php +++ b/htdocs/compta/bank/info.php @@ -16,23 +16,29 @@ */ /** - * \file htdocs/compta/bank/info.php - * \ingroup banque - * \brief Onglet info d'une ecriture bancaire + * \file htdocs/compta/bank/info.php + * \ingroup compta/bank + * \brief Info tab of bank statement */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; + // Load translation files required by the page $langs->loadLangs(array('banks', 'categories', 'companies')); + +// Get Parameters $id = GETPOST("rowid", 'int'); $accountid = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('account', 'int')); $ref = GETPOST('ref', 'alpha'); + // Security check $fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); diff --git a/htdocs/compta/bank/line.php b/htdocs/compta/bank/line.php index 3cde5212e2d..7c775b6e95c 100644 --- a/htdocs/compta/bank/line.php +++ b/htdocs/compta/bank/line.php @@ -30,23 +30,25 @@ * \brief Page to edit a bank transaction record */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Load translation files required by the page $langs->loadLangs(array('banks', 'categories', 'compta', 'bills', 'other')); -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { $langs->load("members"); } -if (!empty($conf->don->enabled)) { +if (isModEnabled('don')) { $langs->load("donations"); } -if (!empty($conf->loan->enabled)) { +if (isModEnabled('loan')) { $langs->load("loan"); } -if (!empty($conf->salaries->enabled)) { +if (isModEnabled('salaries')) { $langs->load("salaries"); } @@ -76,7 +78,9 @@ if (empty($user->rights->banque->lire) && empty($user->rights->banque->consolida } $hookmanager->initHooks(array('bankline')); - +$object = new AccountLine($db); +$extrafields = new ExtraFields($db); +$extrafields->fetch_name_optionals_label($object->element); /* * Actions @@ -124,18 +128,17 @@ if ($action == 'confirm_delete_categ' && $confirm == "yes" && $user->rights->ban if ($user->rights->banque->modifier && $action == "update") { $error = 0; - $acline = new AccountLine($db); - $result = $acline->fetch($rowid); + $result = $object->fetch($rowid); if ($result <= 0) { dol_syslog('Failed to read bank line with id '.$rowid, LOG_WARNING); // This happens due to old bug that has set fk_account to null. - $acline->id = $rowid; + $object->id = $rowid; } $acsource = new Account($db); $acsource->fetch($accountoldid); $actarget = new Account($db); - if (GETPOST('accountid', 'int') > 0 && !$acline->rappro && !$acline->getVentilExportCompta()) { // We ask to change bank account + if (GETPOST('accountid', 'int') > 0 && !$object->rappro && !$object->getVentilExportCompta()) { // We ask to change bank account $actarget->fetch(GETPOST('accountid', 'int')); } else { $actarget->fetch($accountoldid); @@ -172,7 +175,7 @@ if ($user->rights->banque->modifier && $action == "update") { $sql .= " emetteur='".$db->escape(GETPOST("emetteur"))."',"; } // Blocked when conciliated - if (!$acline->rappro) { + if (!$object->rappro) { if (GETPOSTISSET('label')) { $sql .= " label = '".$db->escape(GETPOST("label"))."',"; } @@ -187,7 +190,7 @@ if ($user->rights->banque->modifier && $action == "update") { } } $sql .= " fk_account = ".((int) $actarget->id); - $sql .= " WHERE rowid = ".((int) $acline->id); + $sql .= " WHERE rowid = ".((int) $object->id); $result = $db->query($sql); if (!$result) { @@ -213,6 +216,11 @@ if ($user->rights->banque->modifier && $action == "update") { } } + if (!$error) { + $extrafields->setOptionalsFromPost(null, $object, '@GETPOSTISSET'); + $object->insertExtraFields(); + } + if (!$error) { setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); $db->commit(); @@ -580,7 +588,7 @@ if ($result) { print ""; // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { $langs->load('categories'); // Bank line @@ -600,6 +608,13 @@ if ($result) { print ""; } + // Other attributes + $parameters = array(); + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $bankline, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + if (empty($reshook)) { + print $bankline->showOptionals($extrafields, ($objp->rappro ? 'view' : 'create'), $parameters); + } print "
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_ACCOUNT, 1); print "
    '.$langs->trans($ibankey).''.$object->iban.' '; + print ''.getIbanHumanReadable($object).' '; if (!empty($object->iban)) { if (!checkIbanForAccount($object)) { print img_picto($langs->trans("IbanNotValid"), 'warning'); @@ -842,9 +839,6 @@ if ($action == 'create') { /* ************************************************************************** */ if (GETPOST('id', 'int') && $action == 'edit' && $user->rights->banque->configurer) { - $object = new Account($db); - $object->fetch(GETPOST('id', 'int')); - print load_fiche_titre($langs->trans("EditFinancialAccount"), '', 'bank_account'); if ($conf->use_javascript_ajax) { @@ -967,7 +961,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACCOUNT, '', 'parent', 64, 0, 1); $c = new Categorie($db); @@ -986,7 +980,7 @@ if ($action == 'create') { print ''; // Editor wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('account_comment', (GETPOST("account_comment") ?GETPOST("account_comment") : $object->comment), '', 90, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_4, '95%'); + $doleditor = new DolEditor('account_comment', (GETPOST("account_comment") ?GETPOST("account_comment") : $object->comment), '', 90, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_4, '95%'); $doleditor->Create(); print '
    '; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account($object->account_number, 'account_number', 1, '', 1, 1); } else { print 'account_number).'">'; @@ -1023,7 +1017,7 @@ if ($action == 'create') { print '
    '.$langs->trans("AccountancyJournal").''; print $formaccounting->select_journal($object->fk_accountancy_journal, 'fk_accountancy_journal', 4, 1, 0, 0); @@ -1042,31 +1036,32 @@ if ($action == 'create') { // If bank account print '
    '.$langs->trans("BankName").'
    '.$langs->trans($val).'
    '.$form->textwithpicto($langs->trans("IDS"), $langs->trans("IDS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("BankTransfer")).')').'
    "; // Code to adjust value date with plus and less picto using an Ajax call instead of a full reload of page @@ -656,13 +671,13 @@ if ($result) { if ($user->rights->banque->consolidate) { print '
    '; if ($objp->rappro) { - print 'rappro ? ' disabled' : '').'>'; - print ''; + print 'rappro ? ' disabled' : '').'>'; + print ''; } else { - print 'rappro ? ' disabled' : '').'>'; + print 'rappro ? ' disabled' : '').'>'; } if ($objp->num_releve) { - print '   ('.$langs->trans("AccountStatement").' '.$objp->num_releve.')'; + print '   ('.$langs->trans("AccountStatement").' '.$objp->num_releve.')'; } print ''; print 'rappro ? ' checked="checked"' : '')).'">'; + + print ' + + '; + print ''.yn($objp->rappro).'
    '; - +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} // Ref if (!empty($arrayfields['b.ref']['checked'])) { print ''; } // Balance @@ -449,15 +496,20 @@ if (!empty($arrayfields['balance']['checked'])) { print ''; } // Action column -print ''; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} print ''."\n"; // Fields title label // -------------------------------------------------------------------- print ''; +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} if (!empty($arrayfields['b.ref']['checked'])) { print_liste_field_titre($arrayfields['b.ref']['label'], $_SERVER["PHP_SELF"], 'b.ref', '', $param, '', $sortfield, $sortorder); } @@ -486,7 +538,7 @@ if (!empty($arrayfields['toreconcile']['checked'])) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); -$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; if (!empty($arrayfields['b.datec']['checked'])) { print_liste_field_titre($arrayfields['b.datec']['label'], $_SERVER["PHP_SELF"], "b.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); @@ -500,7 +552,9 @@ if (!empty($arrayfields['b.clos']['checked'])) { if (!empty($arrayfields['balance']['checked'])) { print_liste_field_titre($arrayfields['balance']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} print "\n"; @@ -531,7 +585,18 @@ foreach ($accounts as $key => $type) { } print ''; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } // Ref if (!empty($arrayfields['b.ref']['checked'])) { print ''; @@ -569,7 +634,7 @@ foreach ($accounts as $key => $type) { // Account number if (!empty($arrayfields['b.account_number']['checked'])) { print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index d424a3a8fef..2e532984d99 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -27,6 +27,7 @@ * \brief Page to show a bank statement report */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; @@ -61,6 +62,9 @@ $newbankreceipt = GETPOST('newbankreceipt', 'alpha'); $rel = GETPOST("rel", 'alphanohtml'); $backtopage = GETPOST('backtopage', 'alpha'); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('bankaccountstatement', 'globalcard')); + // Security check $fieldid = (!empty($ref) ? $ref : $id); $fieldname = (!empty($ref) ? 'ref' : 'rowid'); @@ -197,11 +201,6 @@ if ($action == 'confirm_editbankreceipt' && !empty($oldbankreceipt) && !empty($n /* * View */ - -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("AccountStatements"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $form = new Form($db); $societestatic = new Societe($db); $chargestatic = new ChargeSociales($db); @@ -228,6 +227,17 @@ if ($id > 0) { $param .= '&id='.urlencode($id); } +if (empty($numref)) { + $title = $object->ref.' - '.$langs->trans("AccountStatements"); + $helpurl = ""; +} else { + $title = $langs->trans("FinancialAccount").' - '.$langs->trans("AccountStatements"); + $helpurl = ""; +} + + +llxHeader('', $title, $helpurl); + if (empty($numref)) { $sortfield = 'numr'; diff --git a/htdocs/compta/bank/transfer.php b/htdocs/compta/bank/transfer.php index f728dc74f4e..d896c3e6069 100644 --- a/htdocs/compta/bank/transfer.php +++ b/htdocs/compta/bank/transfer.php @@ -22,17 +22,20 @@ */ /** - * \file htdocs/compta/bank/transfer.php - * \ingroup banque - * \brief Page de saisie d'un virement + * \file htdocs/compta/bank/transfer.php + * \ingroup bank + * \brief Page for entering a bank transfer */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page -$langs->loadLangs(array("banks", "categories", "multicurrency")); +$langs->loadLangs(array('banks', 'categories', 'multicurrency')); + + $socid = 0; if ($user->socid > 0) { $socid = $user->socid; @@ -270,12 +273,12 @@ print ''; print '"; print "\n"; print ""; print ""; - if ($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED) { + if (getDolGlobalString("MULTICOMPANY_INVOICE_SHARING_ENABLED")) { if ($tmpobj->family == 'invoice') { $mc->getInfo($tmpobj->entity); print ""; @@ -306,10 +353,10 @@ if (GETPOST("account") || GETPOST("ref")) { print ""; if ($tmpobj->total_ttc < 0) { print '"; - }; + } if ($tmpobj->total_ttc >= 0) { print '"; - }; + } print ''; print ""; } diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index ab4b24e3889..79f338cef85 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -22,6 +22,7 @@ * \brief Page of various expenses */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -30,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -52,7 +53,7 @@ $amount = price2num(GETPOST("amount", "alpha")); $paymenttype = GETPOST("paymenttype", "aZ09"); $accountancy_code = GETPOST("accountancy_code", "alpha"); $projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : GETPOST('fk_project', 'int')); -if (!empty($conf->accounting->enabled) && !empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { +if (isModEnabled('accounting') && !empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { $subledger_account = GETPOST("subledger_account", "alpha") > 0 ? GETPOST("subledger_account", "alpha") : ''; } else { $subledger_account = GETPOST("subledger_account", "alpha"); @@ -139,7 +140,7 @@ if (empty($reshook)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors'); $error++; } - if (!empty($conf->banque->enabled) && !$object->accountid > 0) { + if (isModEnabled("banque") && !$object->accountid > 0) { $langs->load('errors'); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors'); $error++; @@ -149,7 +150,7 @@ if (empty($reshook)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("PaymentMode")), null, 'errors'); $error++; } - if (!empty($conf->accounting->enabled) && !$object->accountancy_code) { + if (isModEnabled('accounting') && !$object->accountancy_code) { $langs->load('errors'); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("AccountAccounting")), null, 'errors'); $error++; @@ -304,14 +305,11 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->rights->banque->m /* * View */ - -llxHeader("", $langs->trans("VariousPayment")); - $form = new Form($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -324,6 +322,13 @@ if ($id) { } } +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("NewVariousPayment"); +} +$help_url = 'EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores|DE:Modul_Lieferantenrechnungen'; +llxHeader('', $title, $help_url); + $options = array(); // Load bank groups @@ -405,11 +410,11 @@ if ($action == 'create') { // Amount print ''; // Bank - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; // Number - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; @@ -444,7 +449,7 @@ if ($action == 'create') { } // Accountancy account - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { // TODO Remove the fieldrequired and allow instead to edit a various payment to enter accounting code print ''; print ''; print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); // Associated project @@ -553,7 +558,7 @@ if ($id) { $morehtmlref = '
    '; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->banque->modifier) { @@ -584,6 +589,8 @@ if ($id) { $morehtmlref .= '
    '; $linkback = ''.$langs->trans("BackToList").''; + $morehtmlright = ''; + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright); print '
    '; @@ -613,13 +620,13 @@ if ($id) { } print '
    '; - print ''; + print ''; // Accountancy code print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { if ($object->fk_account > 0) { $bankline = new AccountLine($db); $bankline->fetch($object->fk_bank); diff --git a/htdocs/compta/bank/various_payment/document.php b/htdocs/compta/bank/various_payment/document.php index ad199caaf5a..611d516613b 100644 --- a/htdocs/compta/bank/various_payment/document.php +++ b/htdocs/compta/bank/various_payment/document.php @@ -22,6 +22,7 @@ * \brief Page of linked files onto various payment */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -97,7 +98,7 @@ if ($object->id) { $morehtmlref = '
    '; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' : '; if ($user->rights->banque->modifier && 0) { diff --git a/htdocs/compta/bank/various_payment/info.php b/htdocs/compta/bank/various_payment/info.php index e50dc10ff7f..7cca5c7b4ec 100644 --- a/htdocs/compta/bank/various_payment/info.php +++ b/htdocs/compta/bank/various_payment/info.php @@ -21,6 +21,7 @@ * \brief Page with info about various payment */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; @@ -57,7 +58,7 @@ print dol_get_fiche_head($head, 'info', $langs->trans("VariousPayment"), -1, $ob $morehtmlref = '
    '; // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' : '; if ($user->rights->banque->modifier && 0) { diff --git a/htdocs/compta/bank/various_payment/list.php b/htdocs/compta/bank/various_payment/list.php index 98cb0e27804..5adde527f34 100644 --- a/htdocs/compta/bank/various_payment/list.php +++ b/htdocs/compta/bank/various_payment/list.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2017-2022 Alexandre Spangaro * Copyright (C) 2017 Laurent Destailleur * Copyright (C) 2018 Frédéric France * Copyright (C) 2020 Tobias Sekan @@ -24,10 +24,12 @@ * \brief List of various payments */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; @@ -35,6 +37,8 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Load translation files required by the page $langs->loadLangs(array("compta", "banks", "bills", "accountancy")); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'directdebitcredittransferlist'; // To manage different context of search + // Security check $socid = GETPOST("socid", "int"); if ($user->socid) { @@ -75,6 +79,7 @@ if (empty($search_datev_start)) { if (empty($search_datev_end)) { $search_datev_end = GETPOST("search_datev_end", 'int'); } +$search_type_id = GETPOST('search_type_id', 'int'); $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -94,19 +99,6 @@ if (!$sortorder) { $filtre = GETPOST("filtre", 'alpha'); -if (!GETPOST('typeid')) { - $newfiltre = str_replace('filtre=', '', $filtre); - $filterarray = explode('-', $newfiltre); - foreach ($filterarray as $val) { - $part = explode(':', $val); - if ($part[0] == 'v.fk_typepayment') { - $typeid = $part[1]; - } - } -} else { - $typeid = GETPOST('typeid'); -} - if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers $search_ref = ''; $search_label = ''; @@ -120,7 +112,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_bank_entry = ''; $search_accountancy_account = ''; $search_accountancy_subledger = ''; - $typeid = ''; + $search_type_id = ''; } $search_all = GETPOSTISSET("search_all") ? trim(GETPOST("search_all", 'alpha')) : trim(GETPOST('sall')); @@ -161,11 +153,11 @@ $arrayfields = array( 'datep' =>array('label'=>"DatePayment", 'checked'=>1, 'position'=>120), 'datev' =>array('label'=>"DateValue", 'checked'=>-1, 'position'=>130), 'type' =>array('label'=>"PaymentMode", 'checked'=>1, 'position'=>140), - 'project' =>array('label'=>"Project", 'checked'=>1, 'position'=>200, "enabled"=>!empty($conf->projet->enabled)), - 'bank' =>array('label'=>"BankAccount", 'checked'=>1, 'position'=>300, "enabled"=>!empty($conf->banque->enabled)), - 'entry' =>array('label'=>"BankTransactionLine", 'checked'=>1, 'position'=>310, "enabled"=>!empty($conf->banque->enabled)), - 'account' =>array('label'=>"AccountAccountingShort", 'checked'=>1, 'position'=>400, "enabled"=>!empty($conf->accounting->enabled)), - 'subledger' =>array('label'=>"SubledgerAccount", 'checked'=>1, 'position'=>410, "enabled"=>!empty($conf->accounting->enabled)), + 'project' =>array('label'=>"Project", 'checked'=>1, 'position'=>200, "enabled"=>isModEnabled('project')), + 'bank' =>array('label'=>"BankAccount", 'checked'=>1, 'position'=>300, "enabled"=>isModEnabled("banque")), + 'entry' =>array('label'=>"BankTransactionLine", 'checked'=>1, 'position'=>310, "enabled"=>isModEnabled("banque")), + 'account' =>array('label'=>"AccountAccountingShort", 'checked'=>1, 'position'=>400, "enabled"=>isModEnabled('accounting')), + 'subledger' =>array('label'=>"SubledgerAccount", 'checked'=>1, 'position'=>410, "enabled"=>isModEnabled('accounting')), 'debit' =>array('label'=>"Debit", 'checked'=>1, 'position'=>500), 'credit' =>array('label'=>"Credit", 'checked'=>1, 'position'=>510), ); @@ -200,7 +192,7 @@ $form = new Form($db); if ($arrayfields['account']['checked'] || $arrayfields['subledger']['checked']) { $formaccounting = new FormAccounting($db); } -if ($arrayfields['bank']['checked'] && !empty($conf->accounting->enabled)) { +if ($arrayfields['bank']['checked'] && isModEnabled('accounting')) { $accountingjournal = new AccountingJournal($db); } if ($arrayfields['ref']['checked']) { @@ -222,6 +214,9 @@ if ($arrayfields['account']['checked']) { $sql = "SELECT v.rowid, v.sens, v.amount, v.label, v.datep as datep, v.datev as datev, v.fk_typepayment as type, v.num_payment, v.fk_bank, v.accountancy_code, v.subledger_account, v.fk_projet as fk_project,"; $sql .= " ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number as bank_account_number, ba.fk_accountancy_journal as accountancy_journal, ba.label as blabel,"; $sql .= " pst.code as payment_code"; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."payment_various as v"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON v.fk_typepayment = pst.id"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON v.fk_bank = b.rowid"; @@ -265,21 +260,39 @@ if ($search_accountancy_account > 0) { if ($search_accountancy_subledger > 0) { $sql .= " AND v.subledger_account = ".((int) $search_accountancy_subledger); } -if ($typeid > 0) { - $sql .= " AND v.fk_typepayment=".((int) $typeid); +if ($search_type_id > 0) { + $sql .= " AND v.fk_typepayment=".((int) $search_type_id); } if ($search_all) { $sql .= natural_search(array_keys($fieldstosearchall), $search_all); } -$sql .= $db->order($sortfield, $sortorder); +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } -$totalnboflines = 0; -$resql = $db->query($sql); -if ($resql) { - $totalnboflines = $db->num_rows($resql); + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 + $page = 0; + $offset = 0; + } + $db->free($resql); +} + +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); } -$sql .= $db->plimit($limit + 1, $offset); $resql = $db->query($sql); if ($resql) { @@ -294,7 +307,7 @@ if ($resql) { } // must be place behind the last "header(...)" call - llxHeader(); + llxHeader('', $langs->trans("VariousPayments")); $i = 0; $total = 0; @@ -324,8 +337,8 @@ if ($resql) { if ($search_datev_end) { $param .= '&search_datev_end='.urlencode($search_datev_end); } - if ($typeid > 0) { - $param .= '&typeid='.urlencode($typeid); + if ($search_type_id > 0) { + $param .= '&search_type_id='.urlencode($search_type_id); } if ($search_amount_deb) { $param .= '&search_amount_deb='.urlencode($search_amount_deb); @@ -364,7 +377,7 @@ if ($resql) { print ''; print ''; - print_barre_liste($langs->trans("MenuVariousPayment"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'object_payment', 0, $newcardbutton, '', $limit, 0, 0, 1); + print_barre_liste($langs->trans("MenuVariousPayment"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'object_payment', 0, $newcardbutton, '', $limit, 0, 0, 1); if ($search_all) { foreach ($fieldstosearchall as $key => $val) { @@ -375,6 +388,7 @@ if ($resql) { $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $moreforfilter= ''; print '
    '; print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -422,7 +469,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; // Fields from hook $parameters = array('arrayfields'=>$arrayfields); -$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['b.datec']['checked'])) { @@ -436,12 +483,12 @@ if (!empty($arrayfields['b.tms']['checked'])) { } // Status if (!empty($arrayfields['b.clos']['checked'])) { - print ''; + print ''; $array = array( 'opened'=>$langs->trans("Opened"), 'closed'=>$langs->trans("Closed") ); - print $form->selectarray("search_status", $array, $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1); + print $form->selectarray("search_status", $array, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status maxwidth125 onrightofpage', 1); print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($objecttmp->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''.$objecttmp->getNomUrl(1).''; - if (!empty($conf->accounting->enabled) && !empty($objecttmp->account_number)) { + if (isModEnabled('accounting') && !empty($objecttmp->account_number)) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $objecttmp->account_number, 1); print ''; @@ -587,7 +652,7 @@ foreach ($accounts as $key => $type) { // Accountancy journal if (!empty($arrayfields['b.fk_accountancy_journal']['checked'])) { print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { if (empty($objecttmp->fk_accountancy_journal)) { print img_warning($langs->trans("Mandatory")); } else { @@ -636,7 +701,7 @@ foreach ($accounts as $key => $type) { print ''.$langs->trans("ConciliationDisabled").''; } else { $result = $objecttmp->load_board($user, $objecttmp->id); - if ($result < 0) { + if (is_numeric($result) && $result < 0) { setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); } else { print ''; @@ -668,7 +733,7 @@ foreach ($accounts as $key => $type) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; // Fields from hook $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $objecttmp); // Note that $action and $objecttmpect may have been modified by hook + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $objecttmp, $action); // Note that $action and $objecttmpect may have been modified by hook print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['b.datec']['checked'])) { @@ -714,15 +779,17 @@ foreach ($accounts as $key => $type) { } // Action column - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($objecttmp->id, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($objecttmp->id, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '; print img_picto('', 'bank_account', 'class="paddingright"'); -$form->select_comptes($account_from, 'account_from', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1); +$form->select_comptes($account_from, 'account_from', 0, '', 1, '', !isModEnabled('multicurrency') ? 0 : 1); print "\n"; print img_picto('', 'bank_account', 'class="paddingright"'); -$form->select_comptes($account_to, 'account_to', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1); +$form->select_comptes($account_to, 'account_to', 0, '', 1, '', !isModEnabled('multicurrency') ? 0 : 1); print ""; diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php index 71e5cf37c87..e75402ba429 100644 --- a/htdocs/compta/bank/treso.php +++ b/htdocs/compta/bank/treso.php @@ -4,6 +4,7 @@ * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2015 Marcos García + * Copyright (C) 2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,16 +26,20 @@ * \brief Page to estimate future balance */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; +require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page -$langs->loadLangs(array('banks', 'categories', 'bills', 'companies')); +$langs->loadLangs(array('banks', 'bills', 'categories', 'companies', 'salaries')); // Security check if (GETPOSTISSET("account") || GETPOSTISSET("ref")) { @@ -57,15 +62,13 @@ $hookmanager->initHooks(array('banktreso', 'globalcard')); /* * View */ - -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("PlannedTransactions"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $societestatic = new Societe($db); +$userstatic = new User($db); $facturestatic = new Facture($db); $facturefournstatic = new FactureFournisseur($db); $socialcontribstatic = new ChargeSociales($db); +$salarystatic = new Salary($db); +$vatstatic = new TVA($db); $form = new Form($db); @@ -85,6 +88,9 @@ if (GETPOST("account") || GETPOST("ref")) { $_GET["account"] = $object->id; } + $title = $object->ref.' - '.$langs->trans("PlannedTransactions"); + $helpurl = ""; + llxHeader('', $title, $helpurl); // Onglets $head = bank_prepare_head($object); @@ -135,6 +141,27 @@ if (GETPOST("account") || GETPOST("ref")) { $sql .= " ORDER BY dlr ASC"; $sqls[] = $sql; + // Salaries + $sql = " SELECT 'salary' as family, sa.rowid as objid, sa.label as ref, (-1*sa.amount) as total_ttc, sa.dateep as dlr,"; + $sql .= " s.rowid as socid, CONCAT(s.firstname, ' ', s.lastname) as name, 0 as fournisseur"; + $sql .= " FROM ".MAIN_DB_PREFIX."salary as sa"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as s ON sa.fk_user = s.rowid"; + $sql .= " WHERE sa.entity = ".$conf->entity; + $sql .= " AND sa.paye = 0"; // Not paid + $sql .= " AND (sa.fk_account IN (0, ".$object->id.") OR sa.fk_account IS NULL)"; // Id bank account of salary + $sql .= " ORDER BY dlr ASC"; + $sqls[] = $sql; + + // VAT + $sql = " SELECT 'vat' as family, t.rowid as objid, t.label as ref, (-1*t.amount) as total_ttc, t.datev as dlr,"; + $sql .= " 0 as socid, 'noname' as name, 0 as fournisseur"; + $sql .= " FROM ".MAIN_DB_PREFIX."tva as t"; + $sql .= " WHERE t.entity = ".$conf->entity; + $sql .= " AND t.paye = 0"; // Not paid + $sql .= " AND (t.fk_account IN (-1, 0, ".$object->id.") OR t.fk_account IS NULL)"; // Id bank account of vat + $sql .= " ORDER BY dlr ASC"; + $sqls[] = $sql; + // others sql $parameters = array(); $reshook = $hookmanager->executeHooks('addMoreSQL', $parameters, $object, $action); // Note that $action and $object may have been modified by hook @@ -268,6 +295,26 @@ if (GETPOST("account") || GETPOST("ref")) { $totalpayment = -1 * $socialcontribstatic->getSommePaiement(); // Payment already done } + if ($tmpobj->family == 'salary') { + $salarystatic->ref = $tmpobj->ref; + $salarystatic->id = $tmpobj->objid; + $salarystatic->label = $langs->trans("SalaryPayment"); + $ref = $salarystatic->getNomUrl(1, ''); + + $userstatic->id = $tmpobj->socid; + $userstatic->name = $tmpobj->name; + $refcomp = $userstatic->getNomUrl(1); + + $totalpayment = -1 * $salarystatic->getSommePaiement(); // Payment already done + } + if ($tmpobj->family == 'vat') { + $vatstatic->ref = $tmpobj->ref; + $vatstatic->id = $tmpobj->objid; + $vatstatic->type = $tmpobj->type; + $ref = $vatstatic->getNomUrl(1, ''); + + $totalpayment = -1 * $vatstatic->getSommePaiement(); // Payment already done + } $parameters = array('obj' => $tmpobj, 'ref' => $ref, 'refcomp' => $refcomp, 'totalpayment' => $totalpayment); $reshook = $hookmanager->executeHooks('moreFamily', $parameters, $tmpobject, $action); // Note that $action and $tmpobject may have been modified by hook @@ -295,7 +342,7 @@ if (GETPOST("account") || GETPOST("ref")) { } print "".$ref."".$mc->label."".$refcomp."'.price(abs($total_ttc))."  '.price($total_ttc)."'.price($solde).'
    '; print $form->editfieldkey('Amount', 'amount', '', $object, 0, 'string', '', 1).''; - print ''; + print ''; print '
    '; print $form->editfieldkey('BankAccount', 'selectaccountid', '', $object, 0, 'string', '', 1).''; print img_picto('', 'bank_account', 'class="pictofixedwidth"'); @@ -424,7 +429,7 @@ if ($action == 'create') { print '
    '.$langs->trans("AccountAccounting").''; @@ -457,7 +462,7 @@ if ($action == 'create') { } // Subledger account - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print '
    '.$langs->trans("SubledgerAccount").''; if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { @@ -481,7 +486,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Sens").''.$sens.'
    '.$langs->trans("Amount").''.price($object->amount, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("Amount").''.price($object->amount, 0, $langs, 1, -1, -1, $conf->currency).'
    '; print $langs->trans("AccountAccounting"); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $object->accountancy_code, 1); @@ -636,7 +643,7 @@ if ($id) { print $form->editfieldval('SubledgerAccount', 'subledger_account', $object->subledger_account, $object, (!$alreadyaccounted && $user->rights->banque->modifier), 'string', '', 0); print '
    '; @@ -427,7 +441,7 @@ if ($resql) { // Payment type if ($arrayfields['type']['checked']) { print ''; } @@ -453,7 +467,7 @@ if ($resql) { } // Accounting account - if ($arrayfields['account']['checked']) { + if (!empty($arrayfields['account']['checked'])) { print ''; @@ -491,6 +505,7 @@ if ($resql) { print ''; + print ''; if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { @@ -521,10 +536,10 @@ if ($resql) { if ($arrayfields['entry']['checked']) { print_liste_field_titre($arrayfields['entry']['label'], $_SERVER["PHP_SELF"], 'ba.label', '', $param, '', $sortfield, $sortorder); } - if ($arrayfields['account']['checked']) { + if (!empty($arrayfields['account']['checked'])) { print_liste_field_titre($arrayfields['account']['label'], $_SERVER["PHP_SELF"], 'v.accountancy_code', '', $param, '', $sortfield, $sortorder, 'left '); } - if ($arrayfields['subledger']['checked']) { + if (!empty($arrayfields['subledger']['checked'])) { print_liste_field_titre($arrayfields['subledger']['label'], $_SERVER["PHP_SELF"], 'v.subledger_account', '', $param, '', $sortfield, $sortorder, 'left '); } if ($arrayfields['debit']['checked']) { @@ -544,6 +559,10 @@ if ($resql) { $totalarray = array(); + $totalarray['nbfield'] = 0; + $totalarray['val']['total_cred'] = 0; + $totalarray['val']['total_deb'] = 0; + while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); @@ -626,7 +645,7 @@ if ($resql) { $accountstatic->ref = $obj->bref; $accountstatic->number = $obj->bnumber; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountstatic->account_number = $obj->bank_account_number; $accountingjournal->fetch($obj->accountancy_journal); $accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); @@ -653,17 +672,17 @@ if ($resql) { } // Accounting account - if ($arrayfields['account']['checked']) { + if (!empty($arrayfields['account']['checked'])) { $accountingaccount->fetch('', $obj->accountancy_code, 1); - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } } // Accounting subledger account - if ($arrayfields['subledger']['checked']) { + if (!empty($arrayfields['subledger']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; diff --git a/htdocs/compta/cashcontrol/cashcontrol_card.php b/htdocs/compta/cashcontrol/cashcontrol_card.php index 2b6b027d7ce..dfc8564b34c 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_card.php +++ b/htdocs/compta/cashcontrol/cashcontrol_card.php @@ -27,6 +27,7 @@ * \brief Page to show a cash fence */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -70,10 +71,10 @@ if ($contextpage == 'takepos') { $arrayofpaymentmode = array('cash'=>'Cash', 'cheque'=>'Cheque', 'card'=>'CreditCard'); $arrayofposavailable = array(); -if (!empty($conf->cashdesk->enabled)) { +if (isModEnabled('cashdesk')) { $arrayofposavailable['cashdesk'] = $langs->trans('CashDesk').' (cashdesk)'; } -if (!empty($conf->takepos->enabled)) { +if (isModEnabled('takepos')) { $arrayofposavailable['takepos'] = $langs->trans('TakePOS').' (takepos)'; } // TODO Add hook here to allow other POS to add themself @@ -95,7 +96,7 @@ if ($user->socid > 0) { // Protection if external user //$socid = $user->socid; accessforbidden(); } -if (!$user->rights->cashdesk->run && !$user->rights->takepos->run) { +if (!$user->hasRight("cashdesk", "run") && !$user->hasRight("takepos", "run")) { accessforbidden(); } @@ -104,10 +105,10 @@ if (!$user->rights->cashdesk->run && !$user->rights->takepos->run) { * Actions */ -$permissiontoadd = ($user->rights->cashdesk->run || $user->rights->takepos->run); -$permissiontodelete = ($user->rights->cashdesk->run || $user->rights->takepos->run) || ($permissiontoadd && $object->status == 0); +$permissiontoadd = ($user->hasRight("cashdesk", "run") || $user->hasRight("takepos", "run")); +$permissiontodelete = ($user->hasRight("cashdesk", "run") || $user->hasRight("takepos", "run")) || ($permissiontoadd && $object->status == 0); if (empty($backtopage)) { - $backtopage = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.($id > 0 ? $id : '__ID__'); + $backtopage = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.(!empty($id) && $id > 0 ? $id : '__ID__'); } $backurlforlist = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_list.php'; $triggermodname = 'CACHCONTROL_MODIFY'; // Name of trigger action code to execute when we modify record @@ -128,7 +129,7 @@ if (GETPOST('cancel', 'alpha')) { if ($action == "reopen") { $result = $object->setStatut($object::STATUS_DRAFT, null, '', 'CASHFENCE_REOPEN'); if ($result < 0) { - setEventMessages($object->error, $object->error, 'errors'); + setEventMessages($object->error, $object->errors, 'errors'); } $action = 'view'; @@ -265,6 +266,10 @@ $initialbalanceforterminal = array(); $theoricalamountforterminal = array(); $theoricalnbofinvoiceforterminal = array(); + +llxHeader('', $langs->trans("CashControl")); + + if ($action == "create" || $action == "start" || $action == 'close') { if ($action == 'close') { $posmodule = $object->posmodule; @@ -376,8 +381,6 @@ if ($action == "create" || $action == "start" || $action == 'close') { //var_dump($theoricalamountforterminal); var_dump($theoricalnbofinvoiceforterminal); if ($action != 'close') { - llxHeader('', $langs->trans("NewCashFence")); - print load_fiche_titre($langs->trans("CashControl")." - ".$langs->trans("New"), '', 'cash-register'); print ''; @@ -597,8 +600,6 @@ if ($action == "create" || $action == "start" || $action == 'close') { if (empty($action) || $action == "view" || $action == "close") { $result = $object->fetch($id); - llxHeader('', $langs->trans("CashControl")); - if ($result <= 0) { print $langs->trans("ErrorRecordNotFound"); } else { diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php index 2315f12757a..7d433282367 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_list.php +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php @@ -17,11 +17,12 @@ */ /** - * \file cashcontrol_list.php + * \file htdocs/compta/cashcontrol/cashcontrol_list.php * \ingroup cashdesk|takepos * \brief List page for cashcontrol */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -49,8 +50,9 @@ $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { + // If $page is not defined, or '' or -1 or if we click on clear filters $page = 0; -} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action +} $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -104,11 +106,11 @@ $arrayfields = array(); foreach ($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field if (!empty($val['visible'])) { - $visible = (int) dol_eval($val['visible'], 1, 1, '1'); + $visible = (int) dol_eval($val['visible'], 1); $arrayfields['t.'.$key] = array( 'label'=>$val['label'], 'checked'=>(($visible < 0) ? 0 : 1), - 'enabled'=>($visible != 3 && dol_eval($val['enabled'], 1, 1, '1')), + 'enabled'=>(abs($visible) != 3 && dol_eval($val['enabled'], 1)), 'position'=>$val['position'], 'help'=> isset($val['help']) ? $val['help'] : '' ); @@ -193,7 +195,8 @@ $now = dol_now(); //$help_url="EN:Module_pos_cash_fence|FR:Module_pos_cash_fence_FR|ES:Módulo_pos_cash_fence"; $help_url = ''; $title = $langs->trans('CashControl'); - +$morejs = array(); +$morecss = array(); // Build and execute select // -------------------------------------------------------------------- @@ -210,6 +213,9 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; @@ -236,17 +242,17 @@ foreach ($search as $key => $val) { $mode_search = 2; } if ($search[$key] != '') { - $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); + $sql .= natural_search("t.".$db->escape($key), $search[$key], (($key == 'status') ? 2 : $mode_search)); } } else { if (preg_match('/(_dtstart|_dtend)$/', $key) && $search[$key] != '') { $columnName=preg_replace('/(_dtstart|_dtend)$/', '', $key); if (preg_match('/^(date|timestamp|datetime)/', $object->fields[$columnName]['type'])) { if (preg_match('/_dtstart$/', $key)) { - $sql .= " AND t." . $columnName . " >= '" . $db->idate($search[$key]) . "'"; + $sql .= " AND t.".$db->escape($columnName)." >= '".$db->idate($search[$key])."'"; } if (preg_match('/_dtend$/', $key)) { - $sql .= " AND t." . $columnName . " <= '" . $db->idate($search[$key]) . "'"; + $sql .= " AND t.".$db->escape($columnName)." <= '".$db->idate($search[$key])."'"; } } } @@ -266,11 +272,13 @@ $sql .= $hookmanager->resPrint; /* If a group by is required $sql.= " GROUP BY "; foreach($object->fields as $key => $val) { - $sql .= "t.".$key.", "; + $sql .= "t.".$db->escape($key).", "; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); + } } // Add where from hooks $parameters=array(); @@ -279,35 +287,43 @@ $sql.=$hookmanager->resPrint; $sql=preg_replace('/,\s*$/','', $sql); */ -$sql .= $db->order($sortfield, $sortorder); // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) { - $num = $nbtotalofrecords; -} else { - if ($limit) { - $sql .= $db->plimit($limit + 1, $offset); - } - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - exit; - } - - $num = $db->num_rows($resql); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); } +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + + // Direct jump if only one record found if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) { $obj = $db->fetch_object($resql); @@ -325,6 +341,9 @@ llxHeader('', $title, $help_url, '', 0, 0, '', '', '', 'classforhorizontalscroll $arrayofselected = is_array($toselect) ? $toselect : array(); $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -332,11 +351,17 @@ if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } foreach ($search as $key => $val) { - if (is_array($search[$key]) && count($search[$key])) { + if (is_array($search[$key])) { foreach ($search[$key] as $skey) { - $param .= '&search_'.$key.'[]='.urlencode($skey); + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } } - } else { + } elseif (preg_match('/(_dtstart|_dtend)$/', $key) && !empty($val)) { + $param .= '&search_'.$key.'month='.((int) GETPOST('search_'.$key.'month', 'int')); + $param .= '&search_'.$key.'day='.((int) GETPOST('search_'.$key.'day', 'int')); + $param .= '&search_'.$key.'year='.((int) GETPOST('search_'.$key.'year', 'int')); + } elseif ($search[$key] != '') { $param .= '&search_'.$key.'='.urlencode($search[$key]); } } @@ -372,6 +397,7 @@ print ''; print ''; print ''; +print ''; print ''; $permforcashfence = 1; @@ -388,10 +414,13 @@ $trackid = 'cashfence'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; if ($search_all) { + $setupstring = ''; foreach ($fieldstosearchall as $key => $val) { $fieldstosearchall[$key] = $langs->trans($val); + $setupstring .= $key."=".$val.";"; } - print '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '; + print ''."\n"; + print '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '."\n"; } $moreforfilter = ''; @@ -432,13 +461,13 @@ foreach ($object->fields as $key => $val) { $cssforfield .= ($cssforfield ? ' ' : '').'center'; } elseif (in_array($val['type'], array('timestamp'))) { $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { print ''; + $j = 0; + print ''; foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { @@ -545,7 +575,11 @@ while ($i < ($limit ? min($num, $limit) : $num)) { //if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100'; if (!empty($arrayfields['t.'.$key]['checked'])) { - print ''; + print ''; if ($key == 'status') { print $object->getLibStatut(5); } elseif ($key == 'rowid') { @@ -608,13 +642,13 @@ if ($num == 0) { $colspan++; } } - print ''; + print ''; } $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); -$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print '
    '; - $form->select_types_paiements($typeid, 'typeid', '', 0, 1, 1, 16, 1, 'maxwidth100'); + print $form->select_types_paiements($search_type_id, 'search_type_id', '', 0, 1, 1, 16, 1, 'maxwidth100', 1); print ''; print '
    '; print $formaccounting->select_account($search_accountancy_account, 'search_accountancy_account', 1, array(), 1, 1, 'maxwidth200'); @@ -462,7 +476,7 @@ if ($resql) { } // Subledger account - if ($arrayfields['subledger']['checked']) { + if (!empty($arrayfields['subledger']['checked'])) { print '
    '; print '
    '; print $formaccounting->select_auxaccount($search_accountancy_subledger, 'search_accountancy_subledger', 1, 'maxwidth200'); @@ -471,7 +485,7 @@ if ($resql) { } // Debit - if ($arrayfields['debit']['checked']) { + if (!empty($arrayfields['debit']['checked'])) { print '
    '; print ''; print '
    '.$accountingaccount->getNomUrl(0, 1, 1, '', 1).''.$accountingaccount->getNomUrl(0, 1, 1, '', 1).''.length_accounta($obj->subledger_account).'
    '; if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { - print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); + print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status onrightofpage' : ''), 1); } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:')=== 0)) { print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', 'maxwidth125', 1); } elseif (!preg_match('/^(date|timestamp|datetime)/', $val['type'])) { @@ -524,7 +553,8 @@ while ($i < ($limit ? min($num, $limit) : $num)) { $object->setVarsFromFetchObj($obj); // Show here line of result - print '
    '.$langs->trans("NoRecordFound").'
    '.$langs->trans("NoRecordFound").'
    '."\n"; diff --git a/htdocs/compta/cashcontrol/class/cashcontrol.class.php b/htdocs/compta/cashcontrol/class/cashcontrol.class.php index d7744f777fe..bc45f3b417d 100644 --- a/htdocs/compta/cashcontrol/class/cashcontrol.class.php +++ b/htdocs/compta/cashcontrol/class/cashcontrol.class.php @@ -258,7 +258,7 @@ class CashControl extends CommonObject /* $posmodule = $this->posmodule; - if (! empty($user->rights->$posmodule->use)) + if (!empty($user->rights->$posmodule->use)) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); diff --git a/htdocs/compta/cashcontrol/report.php b/htdocs/compta/cashcontrol/report.php index af61af5e836..c3d625c01e4 100644 --- a/htdocs/compta/cashcontrol/report.php +++ b/htdocs/compta/cashcontrol/report.php @@ -38,6 +38,7 @@ if (!defined('NOBROWSERNOTIF')) { $_GET['optioncss'] = "print"; +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -359,21 +360,21 @@ if ($resql) { print '
    '; print '

    '; - print $langs->trans("Cash").($transactionspertype['CASH'] ? ' ('.$transactionspertype['CASH'].')' : '').' :
    '.price($cash).'
    '; + print $langs->trans("Cash").(!empty($transactionspertype['CASH']) ? ' ('.$transactionspertype['CASH'].')' : '').' :
    '.price($cash).'
    '; if ($object->status == $object::STATUS_VALIDATED && $cash != $object->cash) { print ' <>
    '.$langs->trans("Declared").': '.price($object->cash).'
    '; } print "
    "; //print '
    '; - print $langs->trans("PaymentTypeCHQ").($transactionspertype['CHQ'] ? ' ('.$transactionspertype['CHQ'].')' : '').' :
    '.price($cheque).'
    '; + print $langs->trans("PaymentTypeCHQ").(!empty($transactionspertype['CHQ']) ? ' ('.$transactionspertype['CHQ'].')' : '').' :
    '.price($cheque).'
    '; if ($object->status == $object::STATUS_VALIDATED && $cheque != $object->cheque) { print ' <>
    '.$langs->trans("Declared").' : '.price($object->cheque).'
    '; } print "
    "; //print '
    '; - print $langs->trans("PaymentTypeCB").($transactionspertype['CB'] ? ' ('.$transactionspertype['CB'].')' : '').' :
    '.price($bank).'
    '; + print $langs->trans("PaymentTypeCB").(!empty($transactionspertype['CB']) ? ' ('.$transactionspertype['CB'].')' : '').' :
    '.price($bank).'
    '; if ($object->status == $object::STATUS_VALIDATED && $bank != $object->card) { print ' <>
    '.$langs->trans("Declared").': '.price($object->card).'
    '; } diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php index c16b6523d1f..b5fdd0da597 100644 --- a/htdocs/compta/charges/index.php +++ b/htdocs/compta/charges/index.php @@ -1,12 +1,12 @@ - * Copyright (C) 2004-2016 Laurent Destailleur - * Copyright (C) 2005-2010 Regis Houssin - * Copyright (C) 2011-2016 Alexandre Spangaro - * Copyright (C) 2011-2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2019 Nicolas ZABOURI - * Copyright (C) 2021 Gauthier VERDOL +/* Copyright (C) 2001-2003 Rodolphe Quiedeville + * Copyright (C) 2004-2016 Laurent Destailleur + * Copyright (C) 2005-2010 Regis Houssin + * Copyright (C) 2011-2022 Alexandre Spangaro + * Copyright (C) 2011-2014 Juanjo Menent + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2019 Nicolas ZABOURI + * Copyright (C) 2021 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,6 +28,7 @@ * \brief Page to list payments of special expenses */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/paymentvat.class.php'; @@ -58,6 +59,7 @@ $filtre = GETPOST("filtre", 'alpha'); if (!$year) { $year = date("Y", time()); } +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $search_account = GETPOST('search_account', 'int'); @@ -132,7 +134,7 @@ if ($year) { print ''.$langs->trans("DescTaxAndDividendsArea").'
    '; print "
    "; -if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { +if (isModEnabled('tax') && $user->rights->tax->charges->lire) { // Social contributions only print load_fiche_titre($langs->trans("SocialContributions").($year ? ' ('.$langs->trans("Year").' '.$year.')' : ''), '', ''); @@ -145,7 +147,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print_liste_field_titre("RefPayment", $_SERVER["PHP_SELF"], "pc.rowid", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("DatePayment", $_SERVER["PHP_SELF"], "pc.datep", "", $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("Type", $_SERVER["PHP_SELF"], "pct.code", "", $param, '', $sortfield, $sortorder); - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "ba.label", "", $param, "", $sortfield, $sortorder); } print_liste_field_titre("PayedByThisPayment", $_SERVER["PHP_SELF"], "pc.amount", "", $param, 'class="right"', $sortfield, $sortorder); @@ -184,7 +186,6 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { $num = $db->num_rows($resql); $i = 0; $total = 0; - $totalnb = 0; $totalpaid = 0; while ($i < min($num, $limit)) { @@ -204,7 +205,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print $socialcontrib->getNomUrl(1, '20'); print '

    '.$obj->label.''.$obj->label.''.price($obj->total).''; if ($obj->fk_bank > 0) { //$accountstatic->fetch($obj->fk_bank); @@ -246,7 +247,6 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print '
       '.price($totalpaid)."'; if ($obj->fk_bank > 0) { //$accountstatic->fetch($obj->fk_bank); diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php index bc1d3790280..8db4516d3dd 100644 --- a/htdocs/compta/clients.php +++ b/htdocs/compta/clients.php @@ -23,6 +23,7 @@ * \brief Show list of customers to add an new invoice */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; @@ -132,7 +133,7 @@ if ($resql) { $langs->load('commercial'); - print_barre_liste($langs->trans("ListOfCustomers"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num); + print_barre_liste($langs->trans("Customers"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num); print ''; diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php index 33b453cd0b4..e7929a12697 100644 --- a/htdocs/compta/deplacement/card.php +++ b/htdocs/compta/deplacement/card.php @@ -25,11 +25,12 @@ * \brief Page to show a trip card */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/trip.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -84,7 +85,7 @@ if ($action == 'validate' && $user->rights->deplacement->creer) { } } } elseif ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->deplacement->supprimer) { - $result = $object->delete($id); + $result = $object->delete($user); if ($result >= 0) { header("Location: index.php"); exit; @@ -422,7 +423,7 @@ if ($action == 'create') { print '
    '; @@ -491,11 +492,8 @@ if ($action == 'create') { } } - if ($user->rights->deplacement->supprimer) { - print ''.$langs->trans('Delete').''; - } else { - print ''.$langs->trans('Delete').''; - } + $permissiontodelete = $user->rights->deplacement->supprimer; + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); print ''; } diff --git a/htdocs/compta/deplacement/class/deplacement.class.php b/htdocs/compta/deplacement/class/deplacement.class.php index c09943540bc..fa812a14c3d 100644 --- a/htdocs/compta/deplacement/class/deplacement.class.php +++ b/htdocs/compta/deplacement/class/deplacement.class.php @@ -100,6 +100,8 @@ class Deplacement extends CommonObject public $statuts = array(); public $statuts_short = array(); + public $statuts_logo = array(); + /** * Draft status @@ -127,6 +129,7 @@ class Deplacement extends CommonObject $this->statuts_short = array(0 => 'Draft', 1 => 'Validated', 2 => 'Refunded'); $this->statuts = array(0 => 'Draft', 1 => 'Validated', 2 => 'Refunded'); + $this->statuts_logo = array(0 => 'status0', 1=>'status4', 2 => 'status1', 4 => 'status6', 5 => 'status4', 6 => 'status6', 99 => 'status5'); } /** @@ -310,13 +313,15 @@ class Deplacement extends CommonObject /** * Delete record * - * @param int $id Id of record to delete + * @param User $user USer that Delete * @return int <0 if KO, >0 if OK */ - public function delete($id) + public function delete($user) { $this->db->begin(); + $id = $this->id; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."deplacement WHERE rowid = ".((int) $id); dol_syslog(get_class($this)."::delete", LOG_DEBUG); @@ -356,43 +361,12 @@ class Deplacement extends CommonObject // phpcs:enable global $langs; - if ($mode == 0) { - return $langs->trans($this->statuts[$status]); - } elseif ($mode == 1) { - return $langs->trans($this->statuts_short[$status]); - } elseif ($mode == 2) { - if ($status == 0) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts_short[$status]); - } elseif ($status == 1) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); - } elseif ($status == 2) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts_short[$status]); - } - } elseif ($mode == 3) { - if ($status == 0 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - } elseif ($status == 1 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - } elseif ($status == 2 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); - } - } elseif ($mode == 4) { - if ($status == 0 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts[$status]); - } elseif ($status == 1 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); - } elseif ($status == 2 && !empty($this->statuts_short[$status])) { - return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts[$status]); - } - } elseif ($mode == 5) { - if ($status == 0 && !empty($this->statuts_short[$status])) { - return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - } elseif ($status == 1 && !empty($this->statuts_short[$status])) { - return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - } elseif ($status == 2 && !empty($this->statuts_short[$status])) { - return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); - } - } + $labelStatus = $langs->transnoentitiesnoconv($this->statuts[$status]); + $labelStatusShort = $langs->transnoentitiesnoconv($this->statuts_short[$status]); + + $statusType = $this->statuts_logo[$status]; + + return dolGetStatus($labelStatus, $labelStatusShort, '', $statusType, $mode); } /** @@ -469,7 +443,7 @@ class Deplacement extends CommonObject public function info($id) { $sql = 'SELECT c.rowid, c.datec, c.fk_user_author, c.fk_user_modif,'; - $sql .= ' c.tms'; + $sql .= ' c.tms as datem'; $sql .= ' FROM '.MAIN_DB_PREFIX.'deplacement as c'; $sql .= ' WHERE c.rowid = '.((int) $id); @@ -480,18 +454,11 @@ class Deplacement extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_modif) { - $muser = new User($this->db); - $muser->fetch($obj->fk_user_modif); - $this->user_modification = $muser; - } + + $this->user_creation_id = $obj->fk_user_author; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->tms); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); } else { diff --git a/htdocs/compta/deplacement/document.php b/htdocs/compta/deplacement/document.php index 2a16d6e4f49..77e8b695bf2 100644 --- a/htdocs/compta/deplacement/document.php +++ b/htdocs/compta/deplacement/document.php @@ -27,6 +27,7 @@ * \brief Page of linked files onto trip and expenses */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; diff --git a/htdocs/compta/deplacement/index.php b/htdocs/compta/deplacement/index.php index 8af897378f5..6f4613097d9 100644 --- a/htdocs/compta/deplacement/index.php +++ b/htdocs/compta/deplacement/index.php @@ -23,6 +23,7 @@ * \brief Page list of expenses */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; @@ -67,7 +68,7 @@ $childids[] = $user->id; //$help_url='EN:Module_Donations|FR:Module_Dons|ES:Módulo_Donaciones'; $help_url = ''; -llxHeader('', $langs->trans("ListOfFees"), $help_url); +llxHeader('', $langs->trans("TripsAndExpenses"), $help_url); diff --git a/htdocs/compta/deplacement/info.php b/htdocs/compta/deplacement/info.php index e180e104eb4..cfbbf33ab22 100644 --- a/htdocs/compta/deplacement/info.php +++ b/htdocs/compta/deplacement/info.php @@ -22,6 +22,7 @@ * \brief Page to show a trip information */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/trip.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php index 2aa03441e9b..c1c5e5cb851 100644 --- a/htdocs/compta/deplacement/list.php +++ b/htdocs/compta/deplacement/list.php @@ -25,6 +25,7 @@ * \brief Page to list trips and expenses */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; @@ -130,7 +131,7 @@ $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - print_barre_liste($langs->trans("ListOfFees"), $page, $_SERVER["PHP_SELF"], "&socid=$socid", $sortfield, $sortorder, '', $num); + print_barre_liste($langs->trans("TripsAndExpenses"), $page, $_SERVER["PHP_SELF"], "&socid=$socid", $sortfield, $sortorder, '', $num); $i = 0; print ''."\n"; diff --git a/htdocs/compta/deplacement/stats/index.php b/htdocs/compta/deplacement/stats/index.php index 7da90915b18..1bf7706bf87 100644 --- a/htdocs/compta/deplacement/stats/index.php +++ b/htdocs/compta/deplacement/stats/index.php @@ -23,6 +23,7 @@ * \brief Page for statistics of module trips and expenses */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacementstats.class.php'; @@ -61,7 +62,7 @@ if ($userid > 0) { } } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; diff --git a/htdocs/compta/facture/admin/facture_cust_extrafields.php b/htdocs/compta/facture/admin/facture_cust_extrafields.php index 42fb64738e1..67f3becb6b5 100644 --- a/htdocs/compta/facture/admin/facture_cust_extrafields.php +++ b/htdocs/compta/facture/admin/facture_cust_extrafields.php @@ -25,6 +25,7 @@ * \brief Page to setup extra fields of customer invoice */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,18 +81,8 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* - * * Creation of an optional field - * */ if ($action == 'create') { @@ -102,9 +93,7 @@ if ($action == 'create') { } /* - * * Edition of an optional field - * */ if ($action == 'edit' && !empty($attrname)) { $langs->load("members"); diff --git a/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php b/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php index 1c834134f6d..fb5282352fc 100644 --- a/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php +++ b/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of customer invoice */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,19 +81,8 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); - -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* - * * Creation of an optional field - * */ if ($action == 'create') { @@ -103,9 +93,7 @@ if ($action == 'create') { } /* - * * Edition of an optional field - * */ if ($action == 'edit' && !empty($attrname)) { $langs->load("members"); diff --git a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php index 7b7f62ed94c..5bd66c4f0f7 100644 --- a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php +++ b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of customer invoice */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -81,18 +82,8 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* - * * Creation of an optional field - * */ if ($action == 'create') { @@ -103,9 +94,7 @@ if ($action == 'create') { } /* - * * Edition of an optional field - * */ if ($action == 'edit' && !empty($attrname)) { print "
    "; diff --git a/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php index 900aab1e10b..01c6abc310a 100644 --- a/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php +++ b/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of customer invoice */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -81,18 +82,8 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* - * * Creation of an optional field - * */ if ($action == 'create') { @@ -103,9 +94,7 @@ if ($action == 'create') { } /* - * * Edition of an optional field - * */ if ($action == 'edit' && !empty($attrname)) { print "
    "; diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php index e8346a11896..7896b26e8b0 100644 --- a/htdocs/compta/facture/card-rec.php +++ b/htdocs/compta/facture/card-rec.php @@ -30,11 +30,12 @@ * \brief Page to show predefined invoice */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; //include_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; } @@ -141,7 +142,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid' => $socid); +$parameters = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -270,7 +271,7 @@ if (empty($reshook)) { } // Delete - if ($action == 'confirm_deleteinvoice' && $confirm == 'yes' && $user->rights->facture->supprimer) { + if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->facture->supprimer) { $object->delete($user); header("Location: ".DOL_URL_ROOT.'/compta/facture/invoicetemplate_list.php'); @@ -541,7 +542,7 @@ if (empty($reshook)) { $desc = ''; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -566,7 +567,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (!empty($prod->customcode) || !empty($prod->country_code))) { $tmptxt = '('; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'alpha')) { @@ -650,9 +651,9 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } @@ -799,8 +800,10 @@ if (empty($reshook)) { $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); + $typeinvoice = Facture::TYPE_STANDARD; + // Check price is not lower than minimum (check is done only for standard or replacement invoices) - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) { + if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (($typeinvoice == Facture::TYPE_STANDARD || $typeinvoice == Facture::TYPE_REPLACEMENT) && $price_min && ((float) price2num($pu_ht) * (1 - (float) $remise_percent / 100) < (float) price2num($price_min)))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); $error++; } @@ -857,11 +860,11 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } @@ -924,7 +927,7 @@ llxHeader('', $langs->trans("RepeatableInvoices"), $help_url); $form = new Form($db); $formother = new FormOther($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } $companystatic = new Societe($db); @@ -954,7 +957,7 @@ if ($action == 'create') { print dol_get_fiche_head(null, '', '', 0); $rowspan = 4; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $rowspan++; } if ($object->fk_account > 0) { @@ -990,8 +993,8 @@ if ($action == 'create') { $substitutionarray['__INVOICE_YEAR__'] = $langs->trans("YearOfInvoice").' ('.$langs->trans("Example").': '.dol_print_date($object->date, '%Y').')'; $substitutionarray['__INVOICE_NEXT_YEAR__'] = $langs->trans("NextYearOfInvoice").' ('.$langs->trans("Example").': '.dol_print_date(dol_time_plus_duree($object->date, 1, 'y'), '%Y').')'; // Only on template invoices - $substitutionarray['__INVOICE_DATE_NEXT_INVOICE_BEFORE_GEN__'] = $langs->trans("DateNextInvoiceBeforeGen").' ('.$langs->trans("Example").': '.dol_print_date($object->date_when, 'dayhour').')'; - $substitutionarray['__INVOICE_DATE_NEXT_INVOICE_AFTER_GEN__'] = $langs->trans("DateNextInvoiceAfterGen").' ('.$langs->trans("Example").': '.dol_print_date(dol_time_plus_duree($object->date_when, $object->frequency, $object->unit_frequency), 'dayhour').')'; + $substitutionarray['__INVOICE_DATE_NEXT_INVOICE_BEFORE_GEN__'] = $langs->trans("DateNextInvoiceBeforeGen").' ('.$langs->trans("Example").': '.dol_print_date(dol_time_plus_duree($object->date, 1, 'm'), 'dayhour').')'; + $substitutionarray['__INVOICE_DATE_NEXT_INVOICE_AFTER_GEN__'] = $langs->trans("DateNextInvoiceAfterGen").' ('.$langs->trans("Example").': '.dol_print_date(dol_time_plus_duree($object->date, 2, 'm'), 'dayhour').')'; $substitutionarray['__INVOICE_COUNTER_CURRENT__'] = $langs->trans("Count"); $substitutionarray['__INVOICE_COUNTER_MAX__'] = $langs->trans("MaxPeriodNumber"); @@ -1047,7 +1050,7 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled) && is_object($object->thirdparty) && $object->thirdparty->id > 0) { + if (isModEnabled('project') && is_object($object->thirdparty) && $object->thirdparty->id > 0) { $projectid = GETPOST('projectid') ?GETPOST('projectid') : $object->fk_project; $langs->load('projects'); print '
    '.$langs->trans('Project').''; @@ -1117,9 +1120,9 @@ if ($action == 'create') { $title = $langs->trans("ProductsAndServices"); - if (empty($conf->service->enabled)) { + if (!isModEnabled('service')) { $title = $langs->trans("Products"); - } elseif (empty($conf->product->enabled)) { + } elseif (!isModEnabled('product')) { $title = $langs->trans("Services"); } @@ -1172,8 +1175,17 @@ if ($action == 'create') { } // Confirm delete of repeatable invoice - if ($action == 'ask_deleteinvoice') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteRepeatableInvoice'), $langs->trans('ConfirmDeleteRepeatableInvoice'), 'confirm_deleteinvoice', '', 'no', 1); + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteRepeatableInvoice'), $langs->trans('ConfirmDeleteRepeatableInvoice'), 'confirm_delete', '', 'no', 1); + } + + // Call Hook formConfirm + $parameters = array('formConfirm' => $formconfirm); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $formconfirm .= $hookmanager->resPrint; + } elseif ($reshook > 0) { + $formconfirm = $hookmanager->resPrint; } print $formconfirm; @@ -1203,7 +1215,7 @@ if ($action == 'create') { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->facture->creer) { @@ -1310,7 +1322,7 @@ if ($action == 'create') { print '
    '; @@ -1573,7 +1585,7 @@ if ($action == 'create') { if ($object->frequency > 0) { print '
    '; - if (empty($conf->cron->enabled)) { + if (!isModEnabled('cron')) { print info_admin($langs->trans("EnableAndSetupModuleCron", $langs->transnoentitiesnoconv("Module2300Name"))); } @@ -1623,7 +1635,7 @@ if ($action == 'create') { // Show object lines if (!empty($object->lines)) { $canchangeproduct = 1; - $ret = $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice + $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice } // Form to add new line @@ -1652,35 +1664,41 @@ if ($action == 'create') { */ print '
    '; - if (empty($object->suspended)) { - if ($user->rights->facture->creer) { - if (!empty($object->frequency) && $object->nb_gen_max > 0 && ($object->nb_gen_done >= $object->nb_gen_max)) { - print ''; - } else { - if (empty($object->frequency) || $object->date_when <= $nowlasthour) { - print ''; - } else { - print ''; - } - } - } else { - print ''; - } - } - - if ($user->rights->facture->creer) { + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $params = array( + 'attr' => array( + 'class' => 'classfortooltip', + ), + ); if (empty($object->suspended)) { - print ''; - } else { - print ''; + if ($user->rights->facture->creer) { + if (!empty($object->frequency) && $object->nb_gen_max > 0 && ($object->nb_gen_done >= $object->nb_gen_max)) { + print ''; + } else { + if (empty($object->frequency) || $object->date_when <= $nowlasthour) { + print ''; + } else { + print ''; + } + } + } else { + print ''; + } } - } - //if ($object->statut == Facture::STATUS_DRAFT && $user->rights->facture->supprimer) - if ($user->rights->facture->supprimer) { - print ''; - } + if ($user->rights->facture->creer) { + if (empty($object->suspended)) { + print ''; + } else { + print ''; + } + } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=delete&token=' . newToken(), 'delete', $user->rights->facture->supprimer); + } print '
    '; diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 0fefbbab118..cc6b92f72cb 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -37,11 +37,13 @@ * \brief Page to create/see an invoice */ +// Libraries require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; + require_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -51,34 +53,36 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (!empty($conf->commande->enabled)) { + +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -if (!empty($conf->variants->enabled)) { +if (isModEnabled('variants')) { require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } // Load translation files required by the page $langs->loadLangs(array('bills', 'companies', 'compta', 'products', 'banks', 'main', 'withdrawals')); -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { $langs->load('margins'); } +// General $Variables $projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : 0); -$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility +$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility $ref = GETPOST('ref', 'alpha'); $socid = GETPOST('socid', 'int'); $action = GETPOST('action', 'aZ09'); @@ -102,7 +106,7 @@ $hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : $hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); $hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); -// Nombre de ligne pour choix de produit/service predefinis +// Number of lines for predefined product/service choices $NBLINES = 4; $usehm = (!empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? $conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE : 0); @@ -128,11 +132,14 @@ if ($id > 0 || !empty($ref)) { // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('invoicecard', 'globalcard')); -$usercanread = $user->rights->facture->lire; -$usercancreate = $user->rights->facture->creer; -$usercanissuepayment = $user->rights->facture->paiement; -$usercandelete = $user->rights->facture->supprimer; -$usercancreatecontract = $user->rights->contrat->creer; +// Permissions +$usercanread = $user->hasRight("facture", "lire"); +$usercancreate = $user->hasRight("facture", "creer"); +$usercanissuepayment = $user->hasRight("facture", "paiement"); +$usercandelete = $user->hasRight("facture", "supprimer"); +$usercancreatecontract = $user->hasRight("contrat", "creer"); + +// Advanced Permissions $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->validate))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->send))); $usercanreopen = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->reopen))); @@ -141,7 +148,7 @@ if (!empty($conf->global->INVOICE_DISALLOW_REOPEN)) { } $usercanunvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->unvalidate))); -$usercanproductignorepricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); +$usermustrespectpricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); $usercancreatemargin = (!empty($user->rights->margins->creer) ? $user->rights->margins->creer : 0); $usercanreadallmargin = (!empty($user->rights->margins->liretous) ? $user->rights->margins->liretous : 0); $usercancreatewithdrarequest = (!empty($user->rights->prelevement->bons->creer) ? $user->rights->prelevement->bons->creer : 0); @@ -272,10 +279,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id')) { $newlang = GETPOST('lang_id'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -520,10 +527,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -540,7 +547,7 @@ if (empty($reshook)) { } } } - } elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) { // Set incoterm + } elseif ($action == 'set_incoterms' && isModEnabled('incoterm')) { // Set incoterm $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); } elseif ($action == 'setbankaccount' && $usercancreate) { // bank account $result = $object->setBankAccount(GETPOST('fk_account', 'int')); @@ -604,10 +611,10 @@ if (empty($reshook)) { if (empty($error) && empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -659,10 +666,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -749,10 +756,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1030,7 +1037,7 @@ if (empty($reshook)) { $object->date = $dateinvoice; $object->date_pointoftax = $date_pointoftax; $object->note_public = trim(GETPOST('note_public', 'restricthtml')); - // We do not copy the private note + $object->note_private = trim(GETPOST('note_private', 'restricthtml')); $object->ref_client = GETPOST('ref_client', 'alphanohtml'); $object->model_pdf = GETPOST('model', 'alphanohtml'); $object->fk_project = GETPOST('projectid', 'int'); @@ -1083,7 +1090,7 @@ if (empty($reshook)) { $object->date = $dateinvoice; $object->date_pointoftax = $date_pointoftax; $object->note_public = trim(GETPOST('note_public', 'restricthtml')); - // We do not copy the private note + $object->note_private = trim(GETPOST('note_private', 'restricthtml')); $object->ref_client = GETPOST('ref_client'); $object->model_pdf = GETPOST('model'); $object->fk_project = GETPOST('projectid', 'int'); @@ -1244,7 +1251,7 @@ if (empty($reshook)) { $object->lines[] = $line; // insert new line in current object // Defined the new fk_parent_line - if ($result > 0) { + if ($result > 0 && $line->product_type == 9) { $fk_parent_line = $result; } } @@ -1378,6 +1385,7 @@ if (empty($reshook)) { $object->note_public = trim(GETPOST('note_public', 'restricthtml')); $object->note_private = trim(GETPOST('note_private', 'restricthtml')); $object->ref_client = GETPOST('ref_client'); + $object->ref_customer = GETPOST('ref_client'); $object->model_pdf = GETPOST('model'); $object->fk_project = GETPOST('projectid', 'int'); $object->cond_reglement_id = (GETPOST('type') == 3 ? 1 : GETPOST('cond_reglement_id')); @@ -1765,7 +1773,7 @@ if (empty($reshook)) { } // Defined the new fk_parent_line - if ($result > 0) { + if ($result > 0 && $lines[$i]->product_type == 9) { $fk_parent_line = $result; } } @@ -1780,7 +1788,7 @@ if (empty($reshook)) { // Now we create same links to contact than the ones found on origin object /* Useless, already into the create - if (! empty($conf->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN)) + if (!empty($conf->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN)) { $originforcontact = $object->origin; $originidforcontact = $object->origin_id; @@ -1956,10 +1964,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE) && count($object->lines)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -2008,19 +2016,39 @@ if (empty($reshook)) { // Set if we used free entry or predefined product $predef = ''; $product_desc =(GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); - $price_ht = price2num(GETPOST('price_ht'), 'MU', 2); - $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); - $prod_entry_mode = GETPOST('prod_entry_mode', 'alpha'); + + $price_ht = ''; + $price_ht_devise = ''; + $price_ttc = ''; + $price_ttc_devise = ''; + + if (GETPOST('price_ht') !== '') { + $price_ht = price2num(GETPOST('price_ht'), 'MU', 2); + } + if (GETPOST('multicurrency_price_ht') !== '') { + $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); + } + if (GETPOST('price_ttc') !== '') { + $price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2); + } + if (GETPOST('multicurrency_price_ttc') !== '') { + $price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2); + } + + $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); if ($prod_entry_mode == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx', 'alpha') ? GETPOST('tva_tx', 'alpha') : 0); + $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); $tva_tx = ''; } - $qty = price2num(GETPOST('qty'.$predef), 'MS', 2); - $remise_percent = price2num(GETPOST('remise_percent'.$predef), '', 2); + $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS', 2); + $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha'), '', 2) : 0); + if (empty($remise_percent)) { + $remise_percent = 0; + } // Extrafields $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); @@ -2047,8 +2075,8 @@ if (empty($reshook)) { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), null, 'errors'); $error++; } - if (($prod_entry_mode == 'free' && (empty($idprod) || $idprod < 0) && (($price_ht < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) || $price_ht == '') && $price_ht_devise == '') && $object->type != Facture::TYPE_CREDIT_NOTE) { // Unit price can be 0 but not '' - if ($price_ht < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) { + if ($prod_entry_mode == 'free' && (empty($idprod) || $idprod < 0) && (($price_ht < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) || $price_ht == '') && (($price_ht_devise < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) || $price_ht_devise == '') && $price_ttc === '' && $price_ttc_devise === '' && $object->type != Facture::TYPE_CREDIT_NOTE) { // Unit price can be 0 but not '' + if (($price_ht < 0 || $price_ttc < 0) && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) { $langs->load("errors"); if ($object->type == $object::TYPE_DEPOSIT) { // Using negative lines on deposit lead to headach and blocking problems when you want to consume them. @@ -2076,7 +2104,7 @@ if (empty($reshook)) { $error++; } - if (!$error && !empty($conf->variants->enabled) && $prod_entry_mode != 'free') { + if (!$error && isModEnabled('variants') && $prod_entry_mode != 'free') { if ($combinations = GETPOST('combinations', 'array')) { //Check if there is a product with the given combination $prodcomb = new ProductCombination($db); @@ -2126,20 +2154,24 @@ if (empty($reshook)) { $pu_ht = $datapriceofproduct['pu_ht']; $pu_ttc = $datapriceofproduct['pu_ttc']; $price_min = $datapriceofproduct['price_min']; + $price_min_ttc = $datapriceofproduct['price_min_ttc']; $price_base_type = $datapriceofproduct['price_base_type']; + $tva_tx = $datapriceofproduct['tva_tx']; $tva_npr = $datapriceofproduct['tva_npr']; $tmpvat = price2num(preg_replace('/\s*\(.*\)/', '', $tva_tx)); $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); - // if price ht was forced (ie: from gui when calculated by margin rate and cost price). TODO Why this ? + // Set unit price to use if (!empty($price_ht) || $price_ht === '0') { $pu_ht = price2num($price_ht, 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); + } elseif (!empty($price_ttc) || $price_ttc === '0') { + $pu_ttc = price2num($price_ttc, 'MU'); + $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); } elseif ($tmpvat != $tmpprodvat) { - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + // Is this still used ? if ($price_base_type != 'HT') { $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); } else { @@ -2150,7 +2182,7 @@ if (empty($reshook)) { $desc = ''; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -2185,7 +2217,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (!empty($prod->customcode) || !empty($prod->country_code))) { $tmptxt = '('; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'alpha')) { @@ -2227,7 +2259,7 @@ if (empty($reshook)) { $fk_unit = $prod->fk_unit; } else { $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); + $pu_ttc = price2num($price_ttc, 'MU'); $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); $tva_tx = str_replace('*', '', $tva_tx); if (empty($tva_tx)) { @@ -2237,9 +2269,17 @@ if (empty($reshook)) { $desc = $product_desc; $type = GETPOST('type'); $fk_unit = GETPOST('units', 'alpha'); + $pu_ht_devise = price2num($price_ht_devise, 'MU'); + $pu_ttc_devise = price2num($price_ttc_devise, 'MU'); + + if ($pu_ttc && !$pu_ht) { + $price_base_type = 'TTC'; + } } + $pu_ht_devise = price2num($price_ht_devise, 'MU'); + // Margin $fournprice = price2num(GETPOST('fournprice'.$predef) ? GETPOST('fournprice'.$predef) : ''); $buyingprice = price2num(GETPOST('buying_price'.$predef) != '' ? GETPOST('buying_price'.$predef) : ''); // If buying_price is '0', we must keep this value @@ -2256,6 +2296,7 @@ if (empty($reshook)) { $price2num_pu_ht = price2num($pu_ht); $price2num_remise_percent = price2num($remise_percent); $price2num_price_min = price2num($price_min); + $price2num_price_min_ttc = price2num($price_min_ttc); if (empty($price2num_pu_ht)) { $price2num_pu_ht = 0; } @@ -2265,13 +2306,26 @@ if (empty($reshook)) { if (empty($price2num_price_min)) { $price2num_price_min = 0; } + if (empty($price2num_price_min_ttc)) { + $price2num_price_min_ttc = 0; + } - if ($usercanproductignorepricemin && (!empty($price_min) && ($price2num_pu_ht * (1 - $price2num_remise_percent / 100) < $price2num_price_min))) { - $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); - setEventMessages($mesg, null, 'errors'); - } else { + // Check price is not lower than minimum (check is done only for standard or replacement invoices) + if ($usermustrespectpricemin && ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT)) { + if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + } elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + } + } + + if (!$error) { // Add batchinfo if the detail_batch array is defined - if (!empty($conf->productbatch->enabled) && !empty($lines[$i]->detail_batch) && is_array($lines[$i]->detail_batch) && !empty($conf->global->INVOICE_INCUDE_DETAILS_OF_LOTS_SERIALS)) { + if (isModEnabled('productbatch') && !empty($lines[$i]->detail_batch) && is_array($lines[$i]->detail_batch) && !empty($conf->global->INVOICE_INCUDE_DETAILS_OF_LOTS_SERIALS)) { $langs->load('productbatch'); foreach ($lines[$i]->detail_batch as $batchline) { $desc .= ' '.$langs->trans('Batch').' '.$batchline->batch.' '.$langs->trans('printQty', $batchline->qty).' '; @@ -2286,10 +2340,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -2360,10 +2414,16 @@ if (empty($reshook)) { $date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml') ? GETPOST('product_desc', 'restricthtml') : GETPOST('desc', 'restricthtml')); - $pu_ht = price2num(GETPOST('price_ht'), '', 2); $vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); - $qty = GETPOST('qty'); + $vat_rate = str_replace('*', '', $vat_rate); + + $pu_ht = price2num(GETPOST('price_ht'), '', 2); + $pu_ttc = price2num(GETPOST('price_ttc'), '', 2); + $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2); + $pu_ttc_devise = price2num(GETPOST('multicurrency_subprice_ttc'), '', 2); + + $qty = price2num(GETPOST('qty', 'alpha'), 'MS'); // Define info_bits $info_bits = 0; @@ -2434,15 +2494,28 @@ if (empty($reshook)) { $price_min = $product->price_min; if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) { - $price_min = $product->multiprices_min [$object->thirdparty->price_level]; + $price_min = $product->multiprices_min[$object->thirdparty->price_level]; + } + $price_min_ttc = $product->price_min_ttc; + if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) { + $price_min_ttc = $product->multiprices_min_ttc[$object->thirdparty->price_level]; } $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); // Check price is not lower than minimum (check is done only for standard or replacement invoices) - if ($usercanproductignorepricemin && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) { - setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); - $error++; + if ($usermustrespectpricemin && ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT)) { + if ($pu_ht && $price_min && (((float) price2num($pu_ht) * (1 - (float) $remise_percent / 100)) < (float) price2num($price_min))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + $action = 'editline'; + } elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - (float) $remise_percent / 100)) < price2num($price_min_ttc))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + $error++; + $action = 'editline'; + } } } else { $type = GETPOST('type'); @@ -2459,8 +2532,8 @@ if (empty($reshook)) { setEventMessages($langs->trans('ErrorQtyForCustomerInvoiceCantBeNegative'), null, 'errors'); $error++; } - if ((empty($productid) && (($pu_ht < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) || $pu_ht == '') && $pu_ht_devise == '') && $object->type != Facture::TYPE_CREDIT_NOTE) { // Unit price can be 0 but not '' - if ($pu_ht < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) { + if (empty($productid) && (($pu_ht < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) || $pu_ht == '') && (($pu_ht_devise < 0 && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) || $pu_ht_devise == '') && $pu_ttc === '' && $pu_ttc_devise === '' && $object->type != Facture::TYPE_CREDIT_NOTE) { // Unit price can be 0 but not '' + if (($pu_ht < 0 || $pu_ttc < 0) && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES)) { $langs->load("errors"); if ($object->type == $object::TYPE_DEPOSIT) { // Using negative lines on deposit lead to headach and blocking problems when you want to consume them. @@ -2488,10 +2561,17 @@ if (empty($reshook)) { } } + $price_base_type = 'HT'; + $pu = $pu_ht; + if (empty($pu) && !empty($pu_ttc)) { + $pu = $pu_ttc; + $price_base_type = 'TTC'; + } + $result = $object->updateline( GETPOST('lineid', 'int'), $description, - $pu_ht, + $pu, $qty, $remise_percent, $date_start, @@ -2499,7 +2579,7 @@ if (empty($reshook)) { $vat_rate, $localtax1_rate, $localtax2_rate, - 'HT', + $price_base_type, $info_bits, $type, GETPOST('fk_parent_line', 'int'), @@ -2519,10 +2599,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -2683,7 +2763,7 @@ if (empty($reshook)) { } if (!$errors) { - setEventMessages($langs->trans('Updated'), '', 'mesgs'); + setEventMessages($langs->trans('Updated'), null, 'mesgs'); header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); } else { setEventMessages($langs->trans('ErrorOutingSituationInvoiceCreditNote'), array(), 'errors'); @@ -2874,14 +2954,16 @@ $formmargin = new FormMargin($db); $soc = new Societe($db); $paymentstatic = new Paiement($db); $bankaccountstatic = new Account($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } $now = dol_now(); -$title = $langs->trans('InvoiceCustomer')." - ".$langs->trans('Card'); - +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("NewBill"); +} $help_url = "EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes"; llxHeader('', $title, $help_url); @@ -2984,6 +3066,11 @@ if ($action == 'create') { $remise_percent = (!empty($expesrc->remise_percent) ? $expesrc->remise_percent : (!empty($soc->remise_percent) ? $soc->remise_percent : 0)); $remise_absolue = (!empty($expesrc->remise_absolue) ? $expesrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0)); + if (isModEnabled('multicurrency')) { + $currency_code = (!empty($expesrc->multicurrency_code) ? $expesrc->multicurrency_code : (!empty($soc->multicurrency_code) ? $soc->multicurrency_code : $objectsrc->multicurrency_code)); + $currency_tx = (!empty($expesrc->multicurrency_tx) ? $expesrc->multicurrency_tx : (!empty($soc->multicurrency_tx) ? $soc->multicurrency_tx : $objectsrc->multicurrency_tx)); + } + //Replicate extrafields $expesrc->fetch_optionals(); $object->array_options = $expesrc->array_options; @@ -2994,7 +3081,7 @@ if ($action == 'create') { $remise_percent = (!empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (!empty($soc->remise_percent) ? $soc->remise_percent : 0)); $remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0)); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { if (!empty($objectsrc->multicurrency_code)) { $currency_code = $objectsrc->multicurrency_code; } @@ -3016,7 +3103,7 @@ if ($action == 'create') { $remise_absolue = 0; $dateinvoice = (empty($dateinvoice) ? (empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '') : $dateinvoice); // Do not set 0 here (0 for a date is 1970) - if (!empty($conf->multicurrency->enabled) && !empty($soc->multicurrency_code)) { + if (isModEnabled('multicurrency') && !empty($soc->multicurrency_code)) { $currency_code = $soc->multicurrency_code; } } @@ -3093,7 +3180,7 @@ if ($action == 'create') { // If thirdparty known and not a predefined invoiced without a recurring rule print '
    '.$langs->trans('Customer').''; - print $soc->getNomUrl(1); + print $soc->getNomUrl(1, 'customer'); print ''; // Outstanding Bill $arrayoutstandingbills = $soc->getOutstandingBills(); @@ -3111,7 +3198,7 @@ if ($action == 'create') { } else { print '
    '.$langs->trans('Customer').''; - print img_picto('', 'company').$form->select_company($soc->id, 'socid', '((s.client = 1 OR s.client = 3) AND s.status=1)', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 widthcentpercentminusxx maxwidth500'); + print img_picto('', 'company').$form->select_company($soc->id, 'socid', '((s.client = 1 OR s.client = 3) AND s.status = 1)', 'SelectThirdParty', 1, 0, null, 0, 'minwidth300 widthcentpercentminusxx maxwidth500'); // Option to reload page to retrieve customer informations. if (empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE_DISABLED)) { print ''; @@ -3289,13 +3376,13 @@ if ($action == 'create') { ); $typedeposit = GETPOST('typedeposit', 'aZ09'); $valuedeposit = GETPOST('valuedeposit', 'int'); - if (empty($typedeposit) && ! empty($objectsrc->deposit_percent)) { + if (empty($typedeposit) && !empty($objectsrc->deposit_percent)) { $origin_payment_conditions_deposit_percent = getDictionaryValue('c_payment_term', 'deposit_percent', $objectsrc->cond_reglement_id); - if (! empty($origin_payment_conditions_deposit_percent)) { + if (!empty($origin_payment_conditions_deposit_percent)) { $typedeposit = 'variable'; } } - if (empty($valuedeposit) && $typedeposit == 'variable' && ! empty($objectsrc->deposit_percent)) { + if (empty($valuedeposit) && $typedeposit == 'variable' && !empty($objectsrc->deposit_percent)) { $valuedeposit = $objectsrc->deposit_percent; } print $form->selectarray('typedeposit', $arraylist, $typedeposit, 0, 0, 0, '', 1); @@ -3589,7 +3676,7 @@ if ($action == 'create') { // Payment term print '
    '.$langs->trans('PaymentConditionsShort').''; - $form->select_conditions_paiements(GETPOSTISSET('cond_reglement_id') ? GETPOST('cond_reglement_id', 'int') : $cond_reglement_id, 'cond_reglement_id'); + print $form->getSelectConditionsPaiements(GETPOSTISSET('cond_reglement_id') ? GETPOST('cond_reglement_id', 'int') : $cond_reglement_id, 'cond_reglement_id'); print '
    '; - $max = $conf->global->MAIN_UPLOAD_DOC; // In Kb - $maxphp = @ini_get('upload_max_filesize'); // In unknown - if (preg_match('/k$/i', $maxphp)) { - $maxphp = preg_replace('/k$/i', '', $maxphp); - $maxphp = $maxphp * 1; - } - if (preg_match('/m$/i', $maxphp)) { - $maxphp = preg_replace('/m$/i', '', $maxphp); - $maxphp = $maxphp * 1024; - } - if (preg_match('/g$/i', $maxphp)) { - $maxphp = preg_replace('/g$/i', '', $maxphp); - $maxphp = $maxphp * 1024 * 1024; - } - if (preg_match('/t$/i', $maxphp)) { - $maxphp = preg_replace('/t$/i', '', $maxphp); - $maxphp = $maxphp * 1024 * 1024 * 1024; - } - $maxphp2 = @ini_get('post_max_size'); // In unknown - if (preg_match('/k$/i', $maxphp2)) { - $maxphp2 = preg_replace('/k$/i', '', $maxphp2); - $maxphp2 = $maxphp2 * 1; - } - if (preg_match('/m$/i', $maxphp2)) { - $maxphp2 = preg_replace('/m$/i', '', $maxphp2); - $maxphp2 = $maxphp2 * 1024; - } - if (preg_match('/g$/i', $maxphp2)) { - $maxphp2 = preg_replace('/g$/i', '', $maxphp2); - $maxphp2 = $maxphp2 * 1024 * 1024; - } - if (preg_match('/t$/i', $maxphp2)) { - $maxphp2 = preg_replace('/t$/i', '', $maxphp2); - $maxphp2 = $maxphp2 * 1024 * 1024 * 1024; - } - // Now $max and $maxphp and $maxphp2 are in Kb - $maxmin = $max; - $maxphptoshow = $maxphptoshowparam = ''; - if ($maxphp > 0) { - $maxmin = min($max, $maxphp); - $maxphptoshow = $maxphp; - $maxphptoshowparam = 'upload_max_filesize'; - } - if ($maxphp2 > 0) { - $maxmin = min($max, $maxphp2); - if ($maxphp2 < $maxphp) { - $maxphptoshow = $maxphp2; - $maxphptoshowparam = 'post_max_size'; - } - } - + $maxfilesizearray = getMaxFileSizeArray(); + $max = $maxfilesizearray['max']; + $maxmin = $maxfilesizearray['maxmin']; + $maxphptoshow = $maxfilesizearray['maxphptoshow']; + $maxphptoshowparam = $maxfilesizearray['maxphptoshowparam']; if ($maxmin > 0) { - // MAX_FILE_SIZE doit précéder le champ input de type file - $out .= ''; + $out .= ''; // MAX_FILE_SIZE must precede the field type=file } - $out .= 'global->MAIN_DISABLE_MULTIPLE_FILEUPLOAD) || $conf->browser->layout != 'classic') ? ' name="userfile"' : ' name="userfile[]" multiple'); $out .= ((!empty($conf->global->MAIN_DISABLE_MULTIPLE_FILEUPLOAD) || $disablemulti) ? ' name="userfile"' : ' name="userfile[]" multiple'); $out .= (empty($conf->global->MAIN_UPLOAD_DOC) || empty($perm) ? ' disabled' : ''); $out .= (!empty($accept) ? ' accept="'.$accept.'"' : ' accept=""'); @@ -227,7 +179,7 @@ class FormFile if (!empty($conf->global->MAIN_UPLOAD_DOC)) { if ($perm) { - $menudolibarrsetupmax = $langs->transnoentitiesnoconv("Home").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("Security"); + $menudolibarrsetupmax = $langs->transnoentitiesnoconv("Home").' - '.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Security"); $langs->load('other'); $out .= ' '; $out .= info_admin($langs->trans("ThisLimitIsDefinedInSetupAt", $menudolibarrsetupmax, $max, $maxphptoshowparam, $maxphptoshow), 1); @@ -776,7 +728,7 @@ class FormFile } // Language code (if multilang) - if (($allowgenifempty || (is_array($modellist) && count($modellist) > 0)) && !empty($conf->global->MAIN_MULTILANGS) && !$forcenomultilang && (!empty($modellist) || $showempty)) { + if (($allowgenifempty || (is_array($modellist) && count($modellist) > 0)) && getDolGlobalInt('MAIN_MULTILANGS') && !$forcenomultilang && (!empty($modellist) || $showempty)) { include_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; $formadmin = new FormAdmin($this->db); $defaultlang = ($codelang && $codelang != 'auto') ? $codelang : $langs->getDefaultLang(); @@ -885,18 +837,27 @@ class FormFile } // Show file name with link to download + $imgpreview = $this->showPreview($file, $modulepart, $relativepath, 0, $param); + $out .= ''; - $out .= 'trans("File").': '.$file["name"]); - $out .= dol_trunc($file["name"], 40); - $out .= ''."\n"; - $out .= $this->showPreview($file, $modulepart, $relativepath, 0, $param); + $out .= dol_trunc($file["name"], 150); + $out .= ''; + $out .= ''."\n"; + $out .= $imgpreview; $out .= '
    '; if ($i > 0) { - print 'id.'">'.img_up('default', 0, 'imgupforline').''; + print 'id.'">'.img_up('default', 0, 'imgupforline').''; } if ($i < ($nboffiles - 1)) { - print 'id.'">'.img_down('default', 0, 'imgdownforline').''; + print 'id.'">'.img_down('default', 0, 'imgdownforline').''; } print ''; print ''; - print ''; - print ''; + print ''; + print ''; print '
    '; + $out .= ''; $out .= $form->textwithpicto($langs->trans('MailText'), $helpforsubstitution, 1, 'help', '', 0, 2, 'substittooltipfrombody'); $out .= ''; + $out .= '
    '; if ($this->withbodyreadonly) { $out .= nl2br($defaultmessage); $out .= ''; } else { if (!isset($this->ckeditortoolbar)) { - $this->ckeditortoolbar = 'dolibarr_notes'; + $this->ckeditortoolbar = 'dolibarr_mailings'; } // Editor wysiwyg @@ -1061,6 +1072,7 @@ class FormMail extends Form // multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time $tmparray = $this->withto; foreach ($tmparray as $key => $val) { + $tmparray[$key] = str_replace(array('<', '>'), array('(', ')'), $tmparray[$key]); $tmparray[$key] = dol_htmlentities($tmparray[$key], null, 'UTF-8', true); } @@ -1069,6 +1081,7 @@ class FormMail extends Form if (empty($withtoselected) && count($tmparray) == 1 && GETPOST('action', 'aZ09') == 'presend') { $withtoselected = array_keys($tmparray); } + $out .= $form->multiselectarray("receiver", $tmparray, $withtoselected, null, null, 'inline-block minwidth500', null, ""); } } @@ -1096,6 +1109,7 @@ class FormMail extends Form // multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time $tmparray = $this->withtocc; foreach ($tmparray as $key => $val) { + $tmparray[$key] = str_replace(array('<', '>'), array('(', ')'), $tmparray[$key]); $tmparray[$key] = dol_htmlentities($tmparray[$key], null, 'UTF-8', true); } $withtoccselected = GETPOST("receivercc", 'array'); // Array of selected value @@ -1171,7 +1185,7 @@ class FormMail extends Form { global $conf, $langs; //if (! $this->errorstomail) $this->errorstomail=$this->frommail; - $errorstomail = (!empty($conf->global->MAIN_MAIL_ERRORS_TO) ? $conf->global->MAIN_MAIL_ERRORS_TO : $this->errorstomail); + $errorstomail = getDolGlobalString('MAIN_MAIL_ERRORS_TO', (!empty($this->errorstomail) ? $this->errorstomail : '')); if ($this->witherrorstoreadonly) { $out = '
    '.$langs->trans("MailErrorsTo").''; $out .= ''; @@ -1179,7 +1193,7 @@ class FormMail extends Form $out .= "
    '.$langs->trans("MailErrorsTo").''; - $out .= ''; + $out .= ''; $out .= "
    '.$langs->trans("DeliveryReceipt").''; + global $conf, $langs; + $out = '
    '; if (!empty($this->withdeliveryreceiptreadonly)) { $out .= yn($this->withdeliveryreceipt); @@ -1214,7 +1228,8 @@ class FormMail extends Form if (!empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_SUPPLIER_ORDER) && !empty($this->param['models']) && $this->param['models'] == 'order_supplier_send') { $defaultvaluefordeliveryreceipt = 1; } - $out .= $form->selectyesno('deliveryreceipt', (GETPOSTISSET("deliveryreceipt") ? GETPOST("deliveryreceipt") : $defaultvaluefordeliveryreceipt), 1); + //$out .= $form->selectyesno('deliveryreceipt', (GETPOSTISSET("deliveryreceipt") ? GETPOST("deliveryreceipt") : $defaultvaluefordeliveryreceipt), 1); + $out .= ''; } $out .= "
    '; + print '
    '; print ''; print ''; print ''; @@ -254,7 +254,7 @@ class FormMargin } print ''; - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { //if ($marginInfo['margin_on_products'] != 0 && $marginInfo['margin_on_services'] != 0) { print ''; print ''; @@ -270,7 +270,7 @@ class FormMargin print ''; } - if (!empty($conf->service->enabled)) { + if (isModEnabled("service")) { print ''; print ''; print ''; @@ -285,7 +285,7 @@ class FormMargin print ''; } - if (!empty($conf->product->enabled) && !empty($conf->service->enabled)) { + if (isModEnabled("product") && isModEnabled("service")) { print ''; print ''; print ''; diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 4e0d3da467e..7e14474bc96 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -429,8 +429,7 @@ class FormOther if (!is_numeric($showempty)) { $textforempty = $showempty; } - $moreforfilter .= ''."\n"; - //$moreforfilter .= ''; // Should use -1 to say nothing + $moreforfilter .= ''."\n"; } if (is_array($tab_categs)) { @@ -439,6 +438,7 @@ class FormOther if ($categ['id'] == $selected) { $moreforfilter .= ' selected'; } + $moreforfilter .= ' data-html="'.dol_escape_htmltag(img_picto('', 'category', 'class="pictofixedwidth" style="color: #'.$categ['color'].'"').dol_trunc($categ['fulllabel'], 50, 'middle')).'"'; $moreforfilter .= '>'.dol_trunc($categ['fulllabel'], 50, 'middle').''; } } @@ -700,11 +700,14 @@ class FormOther print ' selected'; } - $labeltoshow = $langs->trans("Project").' '.$lines[$i]->projectref; + $labeltoshow = $lines[$i]->projectref; + //$labeltoshow .= ' '.$lines[$i]->projectlabel; if (empty($lines[$i]->public)) { - $labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("PrivateProject").')'; + //$labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("PrivateProject").')'; + $labeltoshow = img_picto($lines[$i]->projectlabel, 'project', 'class="pictofixedwidth"').$labeltoshow; } else { - $labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("SharedProject").')'; + //$labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("SharedProject").')'; + $labeltoshow = img_picto($lines[$i]->projectlabel, 'projectpub', 'class="pictofixedwidth"').$labeltoshow; } print ' data-html="'.dol_escape_htmltag($labeltoshow).'"'; @@ -738,12 +741,14 @@ class FormOther print ' disabled'; } - $labeltoshow = $langs->trans("Project").' '.$lines[$i]->projectref; - $labeltoshow .= ' '.$lines[$i]->projectlabel; + $labeltoshow = $lines[$i]->projectref; + //$labeltoshow .= ' '.$lines[$i]->projectlabel; if (empty($lines[$i]->public)) { - $labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("PrivateProject").')'; + //$labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("PrivateProject").')'; + $labeltoshow = img_picto($lines[$i]->projectlabel, 'project', 'class="pictofixedwidth"').$labeltoshow; } else { - $labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("SharedProject").')'; + //$labeltoshow .= ' ('.$langs->trans("Visibility").': '.$langs->trans("SharedProject").')'; + $labeltoshow = img_picto($lines[$i]->projectlabel, 'projectpub', 'class="pictofixedwidth"').$labeltoshow; } if ($lines[$i]->id) { $labeltoshow .= ' > '; @@ -1508,9 +1513,10 @@ class FormOther * @param array $search_xaxis Array of preselected fields * @param array $arrayofxaxis Array of groupby to fill * @param string $showempty '1' or 'text' + * @param string $morecss More css * @return string HTML string component */ - public function selectXAxisField($object, $search_xaxis, &$arrayofxaxis, $showempty = '1') + public function selectXAxisField($object, $search_xaxis, &$arrayofxaxis, $showempty = '1', $morecss = 'minwidth250 maxwidth500') { global $form; @@ -1518,7 +1524,7 @@ class FormOther foreach ($arrayofxaxis as $key => $val) { $arrayofxaxislabel[$key] = $val['label']; } - $result = $form->selectarray('search_xaxis', $arrayofxaxislabel, $search_xaxis, $showempty, 0, 0, '', 0, 0, 0, '', 'minwidth250 maxwidth500', 1); + $result = $form->selectarray('search_xaxis', $arrayofxaxislabel, $search_xaxis, $showempty, 0, 0, '', 0, 0, 0, '', $morecss, 1); return $result; } diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index 47bbdec0fb2..e9d38796589 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -66,14 +66,15 @@ class FormProjets * @param int $forcefocus Force focus on field (works with javascript only) * @param int $disabled Disabled * @param int $mode 0 for HTML mode and 1 for JSON mode - * @param string $filterkey Key to filter + * @param string $filterkey Key to filter on ref or title * @param int $nooutput No print output. Return it only. * @param int $forceaddid Force to add project id in list, event if not qualified * @param string $morecss More css * @param int $htmlid Html id to use instead of htmlname + * @param string $morefilter More filters (Must be a sql sanitized string) * @return string Return html content */ - public function select_projects($socid = -1, $selected = '', $htmlname = 'projectid', $maxlength = 16, $option_only = 0, $show_empty = 1, $discard_closed = 0, $forcefocus = 0, $disabled = 0, $mode = 0, $filterkey = '', $nooutput = 0, $forceaddid = 0, $morecss = '', $htmlid = '') + public function select_projects($socid = -1, $selected = '', $htmlname = 'projectid', $maxlength = 16, $option_only = 0, $show_empty = 1, $discard_closed = 0, $forcefocus = 0, $disabled = 0, $mode = 0, $filterkey = '', $nooutput = 0, $forceaddid = 0, $morecss = '', $htmlid = '', $morefilter = '') { // phpcs:enable global $langs, $conf, $form; @@ -96,16 +97,14 @@ class FormProjets $selected_input_value = $project->ref; } $urloption = 'socid='.((int) $socid).'&htmlname='.urlencode($htmlname).'&discardclosed='.((int) $discard_closed); - + if ($morefilter == 'usage_organize_event=1') { + $urloption .= '&usage_organize_event=1'; + } $out .= ''; - $out .= ajax_autocompleter($selected, $htmlname, DOL_URL_ROOT.'/projet/ajax/projects.php', $urloption, $conf->global->PROJECT_USE_SEARCH_TO_SELECT, 0, array( - // 'update' => array( - // 'projectid' => 'id' - // ) - )); + $out .= ajax_autocompleter($selected, $htmlname, DOL_URL_ROOT.'/projet/ajax/projects.php', $urloption, $conf->global->PROJECT_USE_SEARCH_TO_SELECT, 0, array()); } else { - $out .= $this->select_projects_list($socid, $selected, $htmlname, $maxlength, $option_only, $show_empty, abs($discard_closed), $forcefocus, $disabled, 0, $filterkey, 1, $forceaddid, $htmlid, $morecss); + $out .= $this->select_projects_list($socid, $selected, $htmlname, $maxlength, $option_only, $show_empty, abs($discard_closed), $forcefocus, $disabled, 0, $filterkey, 1, $forceaddid, $htmlid, $morecss, $morefilter); } if ($discard_closed > 0) { if (!empty($form)) { @@ -135,14 +134,15 @@ class FormProjets * @param int $forcefocus Force focus on field (works with javascript only) * @param int $disabled Disabled * @param int $mode 0 for HTML mode and 1 for array return (to be used by json_encode for example) - * @param string $filterkey Key to filter + * @param string $filterkey Key to filter on title or ref * @param int $nooutput No print output. Return it only. * @param int $forceaddid Force to add project id in list, event if not qualified * @param int $htmlid Html id to use instead of htmlname * @param string $morecss More CSS + * @param string $morefilter More filters (Must be a sql sanitized string) * @return int Nb of project if OK, <0 if KO */ - public function select_projects_list($socid = -1, $selected = '', $htmlname = 'projectid', $maxlength = 24, $option_only = 0, $show_empty = 1, $discard_closed = 0, $forcefocus = 0, $disabled = 0, $mode = 0, $filterkey = '', $nooutput = 0, $forceaddid = 0, $htmlid = '', $morecss = 'maxwidth500') + public function select_projects_list($socid = -1, $selected = '', $htmlname = 'projectid', $maxlength = 24, $option_only = 0, $show_empty = 1, $discard_closed = 0, $forcefocus = 0, $disabled = 0, $mode = 0, $filterkey = '', $nooutput = 0, $forceaddid = 0, $htmlid = '', $morecss = 'maxwidth500', $morefilter = '') { // phpcs:enable global $user, $conf, $langs; @@ -187,6 +187,9 @@ class FormProjets if (!empty($filterkey)) { $sql .= natural_search(array('p.title', 'p.ref'), $filterkey); } + if ($morefilter) { + $sql .= ' AND ('.$this->db->sanitize($morefilter, 0, 1).')'; + } $sql .= " ORDER BY p.ref ASC"; $resql = $this->db->query($sql); @@ -206,7 +209,7 @@ class FormProjets while ($i < $num) { $obj = $this->db->fetch_object($resql); // If we ask to filter on a company and user has no permission to see all companies and project is linked to another company, we hide project. - if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && empty($user->rights->societe->lire)) { + if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && !$user->hasRight('societe', 'lire')) { // Do nothing } else { if ($discard_closed == 1 && $obj->fk_statut == 2 && $obj->rowid != $selected) { // We discard closed except if selected @@ -264,7 +267,7 @@ class FormProjets 'value' => $obj->ref, 'ref' => $obj->ref, 'labelx' => $labeltoshow, - 'label' => ((bool) $disabled) ? ''.$labeltoshow.'' : $labeltoshow, + 'label' => ($disabled ? ''.$labeltoshow.'' : $labeltoshow), 'disabled' => (bool) $disabled ); } @@ -372,7 +375,7 @@ class FormProjets include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; $comboenhancement = ajax_combobox($htmlname, '', 0, $forcefocus); $out .= $comboenhancement; - $morecss = 'minwidth200 maxwidth500'; + $morecss .= ' minwidth200 maxwidth500'; } if (empty($option_only)) { @@ -381,9 +384,9 @@ class FormProjets if (!empty($show_empty)) { $out .= ''; } if ($showallnone) { - $sellist .= ''; - $sellist .= ''; - $sellist .= ''; - $sellist .= ''; + $sellist .= ''; + $sellist .= ''; + $sellist .= ''; + $sellist .= ''; } while ($i < $num) { $obj = $this->db->fetch_object($resql); diff --git a/htdocs/core/class/html.formpropal.class.php b/htdocs/core/class/html.formpropal.class.php index 87919141727..894bedebe00 100644 --- a/htdocs/core/class/html.formpropal.class.php +++ b/htdocs/core/class/html.formpropal.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2022 Josep Lluís Amador * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -132,8 +133,18 @@ class FormPropal print ''; $i++; } + // Option for Signed+Billed + if ($mode == 'customer') { + if ($selected != '' && $selected == "2,4") { + print ''; + } print ''; - print ajax_combobox($htmlname); + print ajax_combobox($htmlname, array(), 0, 0, 'resolve', ($showempty < 0 ? (string) $showempty : '-1'), $morecss); } } diff --git a/htdocs/core/class/html.formsetup.class.php b/htdocs/core/class/html.formsetup.class.php index 1cfddb588fd..60499845de0 100644 --- a/htdocs/core/class/html.formsetup.class.php +++ b/htdocs/core/class/html.formsetup.class.php @@ -339,8 +339,8 @@ class FormSetup /** * Method used to test module builder convertion to this form usage * - * @param array $params an array of arrays of params from old modulBuilder params - * @return null + * @param array $params an array of arrays of params from old modulBuilder params + * @return void */ public function addItemsFromParamsArray($params) { @@ -662,7 +662,7 @@ class FormSetupItem { global $conf; if (isset($conf->global->{$this->confKey})) { - $this->fieldValue = $conf->global->{$this->confKey}; + $this->fieldValue = getDolGlobalString($this->confKey); return true; } else { $this->fieldValue = null; @@ -683,7 +683,8 @@ class FormSetupItem /** * Save const value based on htdocs/core/actions_setmoduleoptions.inc.php - * @return int -1 if KO, 1 if OK + * + * @return int -1 if KO, 1 if OK */ public function saveConfValue() { @@ -714,10 +715,13 @@ class FormSetupItem return 1; } } + + return 0; } /** * Set an override function for saving data + * * @param callable $callBack a callable function * @return void */ @@ -758,6 +762,8 @@ class FormSetupItem $val = GETPOST($this->confKey, 'array'); if ($val && is_array($val)) { $val_const = implode(',', $val); + } else { + $val_const = ''; } } elseif ($this->type == 'html') { $val_const = GETPOST($this->confKey, 'restricthtml'); @@ -835,7 +841,11 @@ class FormSetupItem } elseif ($this->type== 'color') { $out.= $this->generateInputFieldColor(); } elseif ($this->type == 'yesno') { - $out.= $this->form->selectyesno($this->confKey, $this->fieldValue, 1); + if (!empty($conf->use_javascript_ajax)) { + $out.= ajax_constantonoff($this->confKey); + } else { + $out.= $this->form->selectyesno($this->confKey, $this->fieldValue, 1); + } } elseif (preg_match('/emailtemplate:/', $this->type)) { $out.= $this->generateInputFieldEmailTemplate(); } elseif (preg_match('/category:/', $this->type)) { @@ -847,7 +857,7 @@ class FormSetupItem } elseif ($this->type == 'securekey') { $out.= $this->generateInputFieldSecureKey(); } elseif ($this->type == 'product') { - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { $selected = (empty($this->fieldValue) ? '' : $this->fieldValue); $out.= $this->form->select_produits($selected, $this->confKey, '', 0, 0, 1, 2, '', 0, array(), 0, '1', 0, $this->cssClass, 0, '', null, 1); } @@ -952,21 +962,11 @@ class FormSetupItem if (!empty($conf->use_javascript_ajax)) { $out.= ' '.img_picto($this->langs->trans('Generate'), 'refresh', 'id="generate_token'.$this->confKey.'" class="linkobject"'); } - if (!empty($conf->use_javascript_ajax)) { - $out .= "\n" . ''; - } + + // Add button to autosuggest a key + include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; + $out .= dolJSToSetRandomPassword($this->confKey, 'generate_token'.$this->confKey); + return $out; } @@ -1009,6 +1009,7 @@ class FormSetupItem * set the type from string : used for old module builder setup conf style conversion and tests * because this two class will quickly evolve it's important to not set directly $this->type (will be protected) so this method exist * to be sure we can manage evolution easily + * * @param string $type possible values based on old module builder setup : 'string', 'textarea', 'category:'.Categorie::TYPE_CUSTOMER', 'emailtemplate', 'thirdparty_type' * @deprecated yes this setTypeFromTypeString came deprecated because it exists only for manage setup convertion * @return bool @@ -1016,11 +1017,13 @@ class FormSetupItem public function setTypeFromTypeString($type) { $this->type = $type; + return true; } /** * Add error + * * @param array|string $errors the error text * @return null */ @@ -1038,11 +1041,13 @@ class FormSetupItem } /** - * @return bool|string Generate the output html for this item + * generateOutputField + * + * @return bool|string Generate the output html for this item */ public function generateOutputField() { - global $conf, $user; + global $conf, $user, $langs; if (!empty($this->fieldOverride)) { return $this->fieldOverride; @@ -1067,7 +1072,15 @@ class FormSetupItem } elseif ($this->type== 'color') { $out.= $this->generateOutputFieldColor(); } elseif ($this->type == 'yesno') { - $out.= ajax_constantonoff($this->confKey); + if (!empty($conf->use_javascript_ajax)) { + $out.= ajax_constantonoff($this->confKey); + } else { + if ($this->fieldValue == 1) { + $out.= $langs->trans('yes'); + } else { + $out.= $langs->trans('no'); + } + } } elseif (preg_match('/emailtemplate:/', $this->type)) { include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; $formmail = new FormMail($this->db); @@ -1075,7 +1088,7 @@ class FormSetupItem $tmp = explode(':', $this->type); $template = $formmail->getEMailTemplate($this->db, $tmp[1], $user, $this->langs, $this->fieldValue); - if ($template<0) { + if (is_numeric($template) && $template < 0) { $this->setErrors($formmail->errors); } $out.= $this->langs->trans($template->label); @@ -1103,6 +1116,7 @@ class FormSetupItem $out.= $this->langs->trans("NorProspectNorCustomer"); } } elseif ($this->type == 'product') { + require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $product = new Product($this->db); $resprod = $product->fetch($this->fieldValue); if ($resprod > 0) { diff --git a/htdocs/core/class/html.formsms.class.php b/htdocs/core/class/html.formsms.class.php index 68b8410e647..28092a72da6 100644 --- a/htdocs/core/class/html.formsms.class.php +++ b/htdocs/core/class/html.formsms.class.php @@ -250,7 +250,7 @@ function limitChars(textarea, limit, infodiv) if ($this->withtoreadonly) { print (!is_array($this->withto) && !is_numeric($this->withto)) ? $this->withto : ""; } else { - print "withto) && $this->withto != '1' ? (isset($_REQUEST["sendto"]) ?GETPOST("sendto") : $this->withto) : "+")."\">"; + print 'withto) : "+").'">'; if (!empty($this->withtosocid) && $this->withtosocid > 0) { $liste = array(); foreach ($soc->thirdparty_and_contact_phone_array() as $key => $value) { @@ -285,7 +285,7 @@ function limitChars(textarea, limit, infodiv) print ''; } else { print ''; - print '
    '.$langs->trans("SmsInfoCharRemain").': '.(160 - dol_strlen($defaultmessage)).'
    '; + print '
    '.$langs->trans("SmsInfoCharRemain").': '.(160 - dol_strlen($defaultmessage)).'
    '; } print "
    \n"; } diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 957026c2180..a34861e17d6 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -20,13 +20,14 @@ */ /** - * \file htdocs/core/class/html.formticket.class.php - * \ingroup ticket - * \brief File of class to generate the form for creating a new ticket. + * \file htdocs/core/class/html.formticket.class.php + * \ingroup ticket + * \brief File of class to generate the form for creating a new ticket. */ -require_once DOL_DOCUMENT_ROOT."/core/class/html.form.class.php"; -require_once DOL_DOCUMENT_ROOT."/core/class/html.formmail.class.php"; -require_once DOL_DOCUMENT_ROOT."/core/class/html.formprojet.class.php"; + +require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; if (!class_exists('FormCompany')) { include DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -35,8 +36,8 @@ if (!class_exists('FormCompany')) { /** * Class to generate the form for creating a new ticket. * Usage: $formticket = new FormTicket($db) - * $formticket->proprietes=1 ou chaine ou tableau de valeurs - * $formticket->show_form() affiche le formulaire + * $formticket->proprietes = 1 or string or array of values + * $formticket->show_form() shows the form * * @package Ticket */ @@ -47,6 +48,9 @@ class FormTicket */ public $db; + /** + * @var string The track_id of the ticket. Used also for the $keytoavoidconflict to name session vars to upload files. + */ public $track_id; /** @@ -61,8 +65,8 @@ class FormTicket public $withtopic; public $withemail; + /** - * * @var int $withsubstit Show substitution array */ public $withsubstit; @@ -70,18 +74,22 @@ class FormTicket public $withfile; public $withfilereadonly; - public $ispublic; // To show information or not into public form + public $backtopage; + + public $ispublic; // to show information or not into public form public $withtitletopic; public $withtopicreadonly; - public $withcompany; // affiche liste déroulante company + public $withreadid; + + public $withcompany; // to show company drop-down list public $withfromsocid; public $withfromcontactid; public $withnotifytiersatcreate; - public $withusercreate; // Show name of creating user in form + public $withusercreate; // to show name of creating user in form public $withcreatereadonly; - public $withref; // Show ref field + public $withref; // to show ref field public $withcancel; @@ -101,6 +109,7 @@ class FormTicket * @var string Error code (or message) */ public $error; + public $errors = array(); /** @@ -116,17 +125,17 @@ class FormTicket $this->action = 'add'; - $this->withcompany = $conf->societe->enabled ? 1 : 0; + $this->withcompany = isModEnabled("societe"); $this->withfromsocid = 0; $this->withfromcontactid = 0; - //$this->withreadid=0; + $this->withreadid=0; //$this->withtitletopic=''; $this->withnotifytiersatcreate = 0; $this->withusercreate = 1; $this->withcreatereadonly = 1; $this->withemail = 0; $this->withref = 0; - $this->withextrafields = 0; // Show extrafields or not + $this->withextrafields = 0; // to show extrafields or not //$this->withtopicreadonly=0; } @@ -137,9 +146,10 @@ class FormTicket * @param string $mode Mode ('create' or 'edit') * @param int $public 1=If we show the form for the public interface * @param Contact|null $with_contact [=NULL] Contact to link to this ticket if exists + * @param string $action [=''] Action in card * @return void */ - public function showForm($withdolfichehead = 0, $mode = 'edit', $public = 0, Contact $with_contact = null) + public function showForm($withdolfichehead = 0, $mode = 'edit', $public = 0, Contact $with_contact = null, $action = '') { global $conf, $langs, $user, $hookmanager; @@ -166,7 +176,7 @@ class FormTicket print dol_get_fiche_head(null, 'card', '', 0, ''); } - print ''; + print 'param["returnurl"] : $_SERVER['PHP_SELF']).'">'; print ''; print ''; foreach ($this->param as $key => $value) { @@ -310,40 +320,40 @@ class FormTicket print ''; } - // Type + // Type of Ticket print ''; - // Group + // Group => Category print ''; - // Severity + // Severity => Priority print ''; // Subject if ($this->withtitletopic) { print ''; } else { - if ($this->withreadid > 0) { - $subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withreadid.' : '.$this->topic_title.''; + if (isset($this->withreadid) && $this->withreadid > 0) { + $subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withreadid.' : '.$this->topic_title; + } else { + $subject = GETPOST('subject', 'alpha'); } - print ''; - print ''; + print ''; } + print ''; } if (!empty($conf->knowledgemanagement->enabled)) { @@ -352,7 +362,7 @@ class FormTicket print ''; } @@ -1093,16 +1112,16 @@ class FormTicket } /** - * Return html list of ticket severitys + * Return html list of ticket severitys (priorities) * - * @param string $selected Id severity pre-selectionnée - * @param string $htmlname Nom de la zone select - * @param string $filtertype To filter on field type in llx_c_ticket_severity (array('code'=>xx,'label'=>zz)) - * @param int $format 0=id+libelle, 1=code+code, 2=code+libelle, 3=id+code - * @param int $empty 1=peut etre vide, 0 sinon - * @param int $noadmininfo 0=Add admin info, 1=Disable admin info - * @param int $maxlength Max length of label - * @param string $morecss More CSS + * @param string $selected Id severity pre-selected + * @param string $htmlname Name of the select area + * @param string $filtertype To filter on field type in llx_c_ticket_severity (array('code'=>xx,'label'=>zz)) + * @param int $format 0 = id+label, 1 = code+code, 2 = code+label, 3 = id+code + * @param int $empty 1 = can be empty, 0 = or not + * @param int $noadmininfo 0 = add admin info, 1 = disable admin info + * @param int $maxlength Max length of label + * @param string $morecss More CSS * @return void */ public function selectSeveritiesTickets($selected = '', $htmlname = 'ticketseverity', $filtertype = '', $format = 0, $empty = 0, $noadmininfo = 0, $maxlength = 0, $morecss = '') @@ -1154,7 +1173,7 @@ class FormTicket print '
    ' . $langs->trans('Margins') . '' . $langs->trans('SellingPrice') . '
    ' . $langs->trans('MarginOnProducts') . '
    ' . $langs->trans('MarginOnServices') . '' . price($marginInfo['pv_services']) . '
    ' . $langs->trans('TotalMargin') . '' . price($marginInfo['pv_total']) . '
    '.$langs->trans($newclassname).''.$objectsrc->getNomUrl(1).'
    '; - $this->selectTypesTickets((GETPOST('type_code', 'alpha') ? GETPOST('type_code', 'alpha') : $this->type_code), 'type_code', '', 2, 0, 0, 0, 'minwidth200'); + $this->selectTypesTickets((GETPOST('type_code', 'alpha') ? GETPOST('type_code', 'alpha') : $this->type_code), 'type_code', '', 2, 1, 0, 0, 'minwidth200'); print '
    '; $filter = ''; if ($public) { $filter = 'public=1'; } - $this->selectGroupTickets((GETPOST('category_code') ? GETPOST('category_code') : $this->category_code), 'category_code', $filter, 2, 0, 0, 0, 'minwidth200'); + $this->selectGroupTickets((GETPOST('category_code') ? GETPOST('category_code') : $this->category_code), 'category_code', $filter, 2, 1, 0, 0, 'minwidth200'); print '
    '; - $this->selectSeveritiesTickets((GETPOST('severity_code') ? GETPOST('severity_code') : $this->severity_code), 'severity_code', '', 2, 0); + $this->selectSeveritiesTickets((GETPOST('severity_code') ? GETPOST('severity_code') : $this->severity_code), 'severity_code', '', 2, 1); print '
    '; - - // Réponse à un ticket : affichage du titre du thread en readonly + // Answer to a ticket : display of the thread title in readonly if ($this->withtopicreadonly) { print $langs->trans('SubjectAnswerToTicket').' '.$this->topic_title; - print '
    '; // External users can't send message email - if ($user->rights->ticket->write && !$user->socid) { + if ($user->hasRight("ticket", "write") && !$user->socid) { $ticketstat = new Ticket($this->db); $res = $ticketstat->fetch('', '', $this->track_id); @@ -1379,8 +1417,21 @@ class FormTicket $checkbox_selected = (GETPOST('send_email') == "1" ? ' checked' : ($conf->global->TICKETS_MESSAGE_FORCE_MAIL?'checked':'')); print ' '; print ''; + $texttooltip = $langs->trans("TicketMessageSendEmailHelp", '{s1}'); + $texttooltip = str_replace('{s1}', $langs->trans('MarkMessageAsPrivate'), $texttooltip); + print ' '.$form->textwithpicto('', $texttooltip, 1, 'help'); print ''; + // Private message (not visible by customer/external user) + if (!$user->socid) { + print ''; + } + // Zone to select its email template if (count($modelmail_array) > 0) { print ''; } - // Private message (not visible by customer/external user) - if (!$user->socid) { - print ''; - } - // Subject print ''; print ''; - // Destinataires + // Recipients / adressed-to print ''; } - - // MESSAGE - - $defaultmessage = ""; - if (is_object($arraydefaultmessage) && $arraydefaultmessage->content) { - $defaultmessage = $arraydefaultmessage->content; - } - $defaultmessage = str_replace('\n', "\n", $defaultmessage); - - // Deal with format differences between message and signature (text / HTML) - if (dol_textishtml($defaultmessage) && !dol_textishtml($this->substit['__USER_SIGNATURE__'])) { - $this->substit['__USER_SIGNATURE__'] = dol_nl2br($this->substit['__USER_SIGNATURE__']); - } elseif (!dol_textishtml($defaultmessage) && dol_textishtml($this->substit['__USER_SIGNATURE__'])) { - $defaultmessage = dol_nl2br($defaultmessage); - } - if (GETPOSTISSET("message") && !GETPOST('modelselected')) { - $defaultmessage = GETPOST('message', 'restricthtml'); - } else { - $defaultmessage = make_substitutions($defaultmessage, $this->substit); - // Clean first \n and br (to avoid empty line when CONTACTCIVNAME is empty) - $defaultmessage = preg_replace("/^(
    )+/", "", $defaultmessage); - $defaultmessage = preg_replace("/^\n+/", "", $defaultmessage); - } - - print ''; - - // Signature - // External users can't send message email - if ($user->rights->ticket->write && !$user->socid) { - $mail_signature = GETPOST('mail_signature') ? GETPOST('mail_signature') : $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE; - print ''; - } + */ // Attached files if (!empty($this->withfile)) { @@ -1535,6 +1530,7 @@ class FormTicket $out .= ' });'; $out .= '})'; $out .= ''."\n"; + if (count($listofpaths)) { foreach ($listofpaths as $key => $val) { $out .= '
    '; @@ -1545,7 +1541,7 @@ class FormTicket $out .= '
    '; } } else { - $out .= $langs->trans("NoAttachedFiles").'
    '; + //$out .= $langs->trans("NoAttachedFiles").'
    '; } if ($this->withfile == 2) { // Can add other files $out .= ''; @@ -1557,10 +1553,72 @@ class FormTicket print $out; } + // MESSAGE + + $defaultmessage = ""; + if (is_object($arraydefaultmessage) && $arraydefaultmessage->content) { + $defaultmessage = $arraydefaultmessage->content; + } + $defaultmessage = str_replace('\n', "\n", $defaultmessage); + + // Deal with format differences between message and signature (text / HTML) + if (dol_textishtml($defaultmessage) && !dol_textishtml($this->substit['__USER_SIGNATURE__'])) { + $this->substit['__USER_SIGNATURE__'] = dol_nl2br($this->substit['__USER_SIGNATURE__']); + } elseif (!dol_textishtml($defaultmessage) && isset($this->substit['__USER_SIGNATURE__']) && dol_textishtml($this->substit['__USER_SIGNATURE__'])) { + $defaultmessage = dol_nl2br($defaultmessage); + } + if (GETPOSTISSET("message") && !GETPOST('modelselected')) { + $defaultmessage = GETPOST('message', 'restricthtml'); + } else { + $defaultmessage = make_substitutions($defaultmessage, $this->substit); + // Clean first \n and br (to avoid empty line when CONTACTCIVNAME is empty) + $defaultmessage = preg_replace("/^(
    )+/", "", $defaultmessage); + $defaultmessage = preg_replace("/^\n+/", "", $defaultmessage); + } + + print ''; + + + print ''; + + // Footer + // External users can't send message email + /*if ($user->rights->ticket->write && !$user->socid && !empty($conf->global->TICKET_MESSAGE_MAIL_SIGNATURE)) { + $mail_signature = GETPOST('mail_signature') ? GETPOST('mail_signature') : $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE; + print ''; + } + */ + print '
    '; + $checkbox_selected = (GETPOST('private_message', 'alpha') == "1" ? ' checked' : ''); + print ' '; + print ''; + print ' '.$form->textwithpicto('', $langs->trans("TicketMessagePrivateHelp"), 1, 'help'); + print '
    '; - $checkbox_selected = (GETPOST('private_message', 'alpha') == "1" ? ' checked' : ''); - print ' '; - print ''; - print ' '.$form->textwithpicto('', $langs->trans("TicketMessagePrivateHelp"), 1, 'help'); - print '
    '; - //$toolbarname = 'dolibarr_details'; - $toolbarname = 'dolibarr_notes'; - include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('message', $defaultmessage, '100%', 200, $toolbarname, '', false, $uselocalbrowser, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_5, 70); - $doleditor->Create(); - print '
    '; + //$toolbarname = 'dolibarr_details'; + $toolbarname = 'dolibarr_notes'; + include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor = new DolEditor('message', $defaultmessage, '100%', 200, $toolbarname, '', false, $uselocalbrowser, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_5, 70); + $doleditor->Create(); + print '
    '; print '

    '; - print ''; + print ''; if ($this->withcancel) { print "     "; print ''; diff --git a/htdocs/core/class/html.formwebsite.class.php b/htdocs/core/class/html.formwebsite.class.php index 083e571cf35..ed4b56be831 100644 --- a/htdocs/core/class/html.formwebsite.class.php +++ b/htdocs/core/class/html.formwebsite.class.php @@ -165,9 +165,10 @@ class FormWebsite * @param int $useempty 1=Add an empty value in list * @param string $moreattrib More attributes on HTML select tag * @param int $addjscombo Add js combo + * @param string $morecss More css * @return string HTML select component with list of type of containers */ - public function selectSampleOfContainer($htmlname, $selected = '', $useempty = 0, $moreattrib = '', $addjscombo = 0) + public function selectSampleOfContainer($htmlname, $selected = '', $useempty = 0, $moreattrib = '', $addjscombo = 0, $morecss = 'minwidth200') { global $langs, $conf, $user; @@ -190,7 +191,7 @@ class FormWebsite } $out = ''; - $out .= ''; if ($useempty == 1 || $useempty == 2) { $out .= ''; @@ -230,6 +231,8 @@ class FormWebsite */ public function selectContainer($website, $htmlname = 'pageid', $pageid = 0, $showempty = 0, $action = '', $morecss = 'minwidth200', $excludeids = null) { + global $conf, $langs; + $this->num = 0; $atleastonepage = (is_array($website->lines) && count($website->lines) > 0); @@ -238,13 +241,18 @@ class FormWebsite if ($atleastonepage && $action != 'editsource') { $out .= ''; + $out .= '\n"; + $rightCell = $leftCell = ''; + // loop over the lines in the diff $index = 0; $nbdiff = count($diff); diff --git a/htdocs/core/class/validate.class.php b/htdocs/core/class/validate.class.php index ac4c14f7937..31cf6300aff 100644 --- a/htdocs/core/class/validate.class.php +++ b/htdocs/core/class/validate.class.php @@ -191,7 +191,7 @@ class Validate */ public function isMinLength($string, $length) { - if (!strlen($string) < $length) { + if (strlen($string) < $length) { $this->error = $this->outputLang->trans('RequireMinLength', $length); return false; } @@ -300,13 +300,13 @@ class Validate /** * Check for all values in db * - * @param array $values Boolean to validate + * @param integer $id of element * @param string $classname the class name * @param string $classpath the class path * @return boolean Validity is ok or not * @throws Exception */ - public function isFetchable($values, $classname, $classpath) + public function isFetchable($id, $classname, $classpath) { if (!empty($classpath)) { if (dol_include_once($classpath)) { @@ -319,7 +319,7 @@ class Validate return false; } - if (!empty($object->table_element) && $object->isExistingObject($object->table_element, $values)) { + if (!empty($object->table_element) && $object->isExistingObject($object->table_element, $id)) { return true; } else { $this->error = $this->outputLang->trans('RequireValidExistingElement'); } } else { $this->error = $this->outputLang->trans('BadSetupOfFieldClassNotFoundForValidation'); } diff --git a/htdocs/core/class/vcard.class.php b/htdocs/core/class/vcard.class.php index d513262b871..8a62c0aea5e 100644 --- a/htdocs/core/class/vcard.class.php +++ b/htdocs/core/class/vcard.class.php @@ -100,14 +100,14 @@ class vCard /** * @var string encoding */ - public $encoding = "ISO-8859-1;ENCODING=QUOTED-PRINTABLE"; + public $encoding = "ENCODING=QUOTED-PRINTABLE"; /** * mise en forme du numero de telephone * * @param int $number numero de telephone - * @param string $type Type + * @param string $type Type ('cell') * @return void */ public function setPhoneNumber($number, $type = "") @@ -117,22 +117,22 @@ class vCard if ($type != "") { $key .= ";".$type; } - $key .= ";CHARSET=".$this->encoding; - $this->properties[$key] = encode($number); + $key .= ";".$this->encoding; + $this->properties[$key] = 'VALUE=uri:tel:'.encode($number); } /** * mise en forme de la photo * warning NON TESTE ! * - * @param string $type Type + * @param string $type Type 'image/gif' * @param string $photo Photo * @return void */ public function setPhoto($type, $photo) { // $type = "GIF" | "JPEG" - $this->properties["PHOTO;TYPE=$type;ENCODING=BASE64"] = base64_encode($photo); + $this->properties["PHOTO;MEDIATYPE=$type;ENCODING=BASE64"] = base64_encode($photo); } /** @@ -143,7 +143,7 @@ class vCard */ public function setFormattedName($name) { - $this->properties["FN;CHARSET=".$this->encoding] = encode($name); + $this->properties["FN;".$this->encoding] = encode($name); } /** @@ -158,7 +158,7 @@ class vCard */ public function setName($family = "", $first = "", $additional = "", $prefix = "", $suffix = "") { - $this->properties["N;CHARSET=".$this->encoding] = encode($family).";".encode($first).";".encode($additional).";".encode($prefix).";".encode($suffix); + $this->properties["N;".$this->encoding] = encode($family).";".encode($first).";".encode($additional).";".encode($prefix).";".encode($suffix); $this->filename = "$first%20$family.vcf"; if (empty($this->properties["FN"])) { $this->setFormattedName(trim("$prefix $first $additional $family $suffix")); @@ -188,21 +188,25 @@ class vCard * @param string $zip Zip * @param string $country Country * @param string $type Type + * @param string $label Label * @return void */ - public function setAddress($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME;POSTAL") + public function setAddress($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME", $label = '') { // $type may be DOM | INTL | POSTAL | PARCEL | HOME | WORK or any combination of these: e.g. "WORK;PARCEL;POSTAL" $key = "ADR"; if ($type != "") { - $key .= ";$type"; + $key .= ";".$type; } - $key .= ";CHARSET=".$this->encoding; + if ($label != "") { + $key .= ';LABEL="'.encode($label).'"'; + } + $key .= ";".$this->encoding; $this->properties[$key] = ";".encode($extended).";".encode($street).";".encode($city).";".encode($region).";".encode($zip).";".encode($country); - if ($this->properties["LABEL;$type;CHARSET=".$this->encoding] == "") { + //if ($this->properties["LABEL;".$type.";".$this->encoding] == '') { //$this->setLabel($postoffice, $extended, $street, $city, $region, $zip, $country, $type); - } + //} } /** @@ -218,7 +222,7 @@ class vCard * @param string $type Type * @return void */ - public function setLabel($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME;POSTAL") + public function setLabel($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME") { $label = ""; if ($postoffice != "") { @@ -243,7 +247,7 @@ class vCard $country .= "$country\r\n"; } - $this->properties["LABEL;$type;CHARSET=".$this->encoding] = encode($label); + $this->properties["LABEL;$type;".$this->encoding] = encode($label); } /** @@ -253,7 +257,7 @@ class vCard * @param string $type (optional) The type of the e-mail (typical "PREF;INTERNET" or "INTERNET") * @return void */ - public function setEmail($address, $type = "TYPE=INTERNET;PREF") + public function setEmail($address, $type = "") { $key = "EMAIL"; if ($type != "") { @@ -270,7 +274,7 @@ class vCard */ public function setNote($note) { - $this->properties["NOTE;CHARSET=".$this->encoding] = encode($note); + $this->properties["NOTE;".$this->encoding] = encode($note); } /** @@ -281,7 +285,7 @@ class vCard */ public function setTitle($title) { - $this->properties["TITLE;CHARSET=".$this->encoding] = encode($title); + $this->properties["TITLE;".$this->encoding] = encode($title); } @@ -293,7 +297,7 @@ class vCard */ public function setOrg($org) { - $this->properties["ORG;CHARSET=".$this->encoding] = encode($org); + $this->properties["ORG;".$this->encoding] = encode($org); } @@ -305,7 +309,7 @@ class vCard */ public function setProdId($prodid) { - $this->properties["PRODID;CHARSET=".$this->encoding] = encode($prodid); + $this->properties["PRODID;".$this->encoding] = encode($prodid); } @@ -317,7 +321,7 @@ class vCard */ public function setUID($uid) { - $this->properties["UID;CHARSET=".$this->encoding] = encode($uid); + $this->properties["UID;".$this->encoding] = encode($uid); } @@ -346,13 +350,13 @@ class vCard public function getVCard() { $text = "BEGIN:VCARD\r\n"; - $text .= "VERSION:3.0\r\n"; + $text .= "VERSION:4.0\r\n"; // With V4, all encoding are UTF-8 //$text.= "VERSION:2.1\r\n"; foreach ($this->properties as $key => $value) { - $text .= "$key:$value\r\n"; + $text .= $key.":".$value."\r\n"; } $text .= "REV:".date("Y-m-d")."T".date("H:i:s")."Z\r\n"; - $text .= "MAILER: Dolibarr\r\n"; + //$text .= "MAILER: Dolibarr\r\n"; $text .= "END:VCARD\r\n"; return $text; } @@ -367,6 +371,97 @@ class vCard return $this->filename; } + /** + * Return a VCARD string + * + * @param Object $object Object (User, Contact) + * @param Societe $company Company + * @param Translate $langs Lang object + * @return string String + */ + public function buildVCardString($object, $company, $langs) + { + global $dolibarr_main_instance_unique_id; + + $this->setProdId('Dolibarr '.DOL_VERSION); + + $this->setUid('DOLIBARR-USERID-'.dol_trunc(md5('vcard'.$dolibarr_main_instance_unique_id), 8, 'right', 'UTF-8', 1).'-'.$object->id); + $this->setName($object->lastname, $object->firstname, "", $object->civility_code, ""); + $this->setFormattedName($object->getFullName($langs, 1)); + + $this->setPhoneNumber($object->office_phone, "TYPE=WORK,VOICE"); + $this->setPhoneNumber($object->personal_mobile, "TYPE=HOME,VOICE"); + $this->setPhoneNumber($object->user_mobile, "TYPE=CELL,VOICE"); + $this->setPhoneNumber($object->office_fax, "TYPE=WORK,FAX"); + + $country = $object->country_code ? $object->country : ''; + + $this->setAddress("", "", $object->address, $object->town, $object->state, $object->zip, $country, "TYPE=WORK"); + //$this->setLabel("", "", $object->address, $object->town, $object->state, $object->zip, $country, "TYPE=WORK"); + + $this->setEmail($object->email, "TYPE=WORK"); + $this->setNote($object->note_public); + $this->setTitle($object->job); + + // For user, type=home + // For contact, this is not defined + $this->setURL($object->url, "TYPE=HOME"); + + if (is_object($company)) { + $this->setURL($company->url, "TYPE=WORK"); + + if (!$object->office_phone) { + $this->setPhoneNumber($company->phone, "TYPE=WORK,VOICE"); + } + if (!$object->office_fax) { + $this->setPhoneNumber($company->fax, "TYPE=WORK,FAX"); + } + if (!$object->zip) { + $this->setAddress("", "", $company->address, $company->town, $company->state, $company->zip, $company->country, "TYPE=WORK"); + } + + // when company e-mail is empty, use only user e-mail + if (empty(trim($company->email))) { + // was set before, don't set twice + } elseif (empty(trim($object->email))) { + // when user e-mail is empty, use only company e-mail + $this->setEmail($company->email, "TYPE=WORK"); + } else { + $tmpuser2 = explode("@", trim($object->email)); + $tmpcompany = explode("@", trim($company->email)); + + if (strtolower(end($tmpuser2)) == strtolower(end($tmpcompany))) { + // when e-mail domain of user and company are the same, use user e-mail at first (and company e-mail at second) + $this->setEmail($object->email, "TYPE=WORK"); + + // support by Microsoft Outlook (2019 and possible earlier) + $this->setEmail($company->email, ''); + } else { + // when e-mail of user and company complete different use company e-mail at first (and user e-mail at second) + $this->setEmail($company->email, "TYPE=WORK"); + + // support by Microsoft Outlook (2019 and possible earlier) + $this->setEmail($object->email, ''); + } + } + + // Si user lie a un tiers non de type "particulier" + if ($company->typent_code != 'TE_PRIVATE') { + $this->setOrg($company->name); + } + } + + // Personal informations + $this->setPhoneNumber($object->personal_mobile, "TYPE=HOME,VOICE"); + if ($object->birth) { + $this->setBirthday($object->birth); + } + + // Return VCard string + return $this->getVCard(); + } + + /* Example from Microsoft Outlook 2019 BEGIN:VCARD diff --git a/htdocs/core/class/workboardresponse.class.php b/htdocs/core/class/workboardresponse.class.php index ac1d8fe9676..0df05a04027 100644 --- a/htdocs/core/class/workboardresponse.class.php +++ b/htdocs/core/class/workboardresponse.class.php @@ -1,5 +1,4 @@ * Copyright (C) 2018 Charlene Benke * diff --git a/htdocs/core/customreports.php b/htdocs/core/customreports.php index 46b885bd60a..fefdc5880c8 100644 --- a/htdocs/core/customreports.php +++ b/htdocs/core/customreports.php @@ -12,7 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . * * Note: This tool can be included into a list page with : * define('USE_CUSTOM_REPORT_AS_INCLUDE', 1); @@ -93,19 +93,19 @@ $object = null; $ObjectClassName = ''; // Objects available by default $arrayoftype = array( - 'thirdparty' => array('label' => 'ThirdParties', 'ObjectClassName' => 'Societe', 'enabled' => $conf->societe->enabled, 'ClassPath' => "/societe/class/societe.class.php"), - 'contact' => array('label' => 'Contacts', 'ObjectClassName' => 'Contact', 'enabled' => $conf->societe->enabled, 'ClassPath' => "/contact/class/contact.class.php"), - 'proposal' => array('label' => 'Proposals', 'ObjectClassName' => 'Propal', 'enabled' => $conf->propal->enabled, 'ClassPath' => "/comm/propal/class/propal.class.php"), - 'order' => array('label' => 'Orders', 'ObjectClassName' => 'Commande', 'enabled' => $conf->commande->enabled, 'ClassPath' => "/commande/class/commande.class.php"), - 'invoice' => array('label' => 'Invoices', 'ObjectClassName' => 'Facture', 'enabled' => $conf->facture->enabled, 'ClassPath' => "/compta/facture/class/facture.class.php"), - 'invoice_template'=>array('label' => 'PredefinedInvoices', 'ObjectClassName' => 'FactureRec', 'enabled' => $conf->facture->enabled, 'ClassPath' => "/compta/class/facturerec.class.php", 'langs'=>'bills'), - 'contract' => array('label' => 'Contracts', 'ObjectClassName' => 'Contrat', 'enabled' => $conf->contrat->enabled, 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'), - 'contractdet' => array('label' => 'ContractLines', 'ObjectClassName' => 'ContratLigne', 'enabled' => $conf->contrat->enabled, 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'), - 'bom' => array('label' => 'BOM', 'ObjectClassName' => 'Bom', 'enabled' => $conf->bom->enabled), - 'mo' => array('label' => 'MO', 'ObjectClassName' => 'Mo', 'enabled' => $conf->mrp->enabled, 'ClassPath' => "/mrp/class/mo.class.php"), - 'ticket' => array('label' => 'Ticket', 'ObjectClassName' => 'Ticket', 'enabled' => $conf->ticket->enabled), - 'member' => array('label' => 'Adherent', 'ObjectClassName' => 'Adherent', 'enabled' => $conf->adherent->enabled, 'ClassPath' => "/adherents/class/adherent.class.php", 'langs'=>'members'), - 'cotisation' => array('label' => 'Subscriptions', 'ObjectClassName' => 'Subscription', 'enabled' => $conf->adherent->enabled, 'ClassPath' => "/adherents/class/subscription.class.php", 'langs'=>'members'), + 'thirdparty' => array('label' => 'ThirdParties', 'ObjectClassName' => 'Societe', 'enabled' => isModEnabled('societe'), 'ClassPath' => "/societe/class/societe.class.php"), + 'contact' => array('label' => 'Contacts', 'ObjectClassName' => 'Contact', 'enabled' => isModEnabled('societ'), 'ClassPath' => "/contact/class/contact.class.php"), + 'proposal' => array('label' => 'Proposals', 'ObjectClassName' => 'Propal', 'enabled' => isModEnabled('propal'), 'ClassPath' => "/comm/propal/class/propal.class.php"), + 'order' => array('label' => 'Orders', 'ObjectClassName' => 'Commande', 'enabled' => isModEnabled('commande'), 'ClassPath' => "/commande/class/commande.class.php"), + 'invoice' => array('label' => 'Invoices', 'ObjectClassName' => 'Facture', 'enabled' => isModEnabled('facture'), 'ClassPath' => "/compta/facture/class/facture.class.php"), + 'invoice_template'=>array('label' => 'PredefinedInvoices', 'ObjectClassName' => 'FactureRec', 'enabled' => isModEnabled('facture'), 'ClassPath' => "/compta/class/facturerec.class.php", 'langs'=>'bills'), + 'contract' => array('label' => 'Contracts', 'ObjectClassName' => 'Contrat', 'enabled' => isModEnabled('contrat'), 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'), + 'contractdet' => array('label' => 'ContractLines', 'ObjectClassName' => 'ContratLigne', 'enabled' => isModEnabled('contrat'), 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'), + 'bom' => array('label' => 'BOM', 'ObjectClassName' => 'Bom', 'enabled' => isModEnabled('bom')), + 'mo' => array('label' => 'MO', 'ObjectClassName' => 'Mo', 'enabled' => isModEnabled('mrp'), 'ClassPath' => "/mrp/class/mo.class.php"), + 'ticket' => array('label' => 'Ticket', 'ObjectClassName' => 'Ticket', 'enabled' => isModEnabled('ticket')), + 'member' => array('label' => 'Adherent', 'ObjectClassName' => 'Adherent', 'enabled' => isModEnabled('adherent'), 'ClassPath' => "/adherents/class/adherent.class.php", 'langs'=>'members'), + 'cotisation' => array('label' => 'Subscriptions', 'ObjectClassName' => 'Subscription', 'enabled' => isModEnabled('adherent'), 'ClassPath' => "/adherents/class/subscription.class.php", 'langs'=>'members'), ); // Complete $arrayoftype by external modules @@ -217,7 +217,7 @@ foreach ($arrayoftype as $key => $val) { if (dol_eval($val['enabled'], 1, 1, '1')) { $newarrayoftype[$key] = $arrayoftype[$key]; } - if ($val['langs']) { + if (!empty($val['langs'])) { $langs->load($val['langs']); } } @@ -363,17 +363,35 @@ if (is_array($search_groupby) && count($search_groupby)) { // Add a protection/error to refuse the request if number of differentr values for the group by is higher than $MAXUNIQUEVALFORGROUP if (count($arrayofvaluesforgroupby['g_'.$gkey]) > $MAXUNIQUEVALFORGROUP) { $langs->load("errors"); - if (strpos($fieldtocount, 'te.') === 0) { + if (strpos($fieldtocount, 'te.') === 0) { // This is an extrafield //if (!empty($extrafields->attributes[$object->table_element]['langfile'][$gvalwithoutprefix])) { // $langs->load($extrafields->attributes[$object->table_element]['langfile'][$gvalwithoutprefix]); //} $keyforlabeloffield = $extrafields->attributes[$object->table_element]['label'][$gvalwithoutprefix]; - } else { - $keyforlabeloffield = $object->fields[$gvalwithoutprefix]['label']; + $labeloffield = $langs->transnoentitiesnoconv($keyforlabeloffield); + } elseif (strpos($fieldtocount, 't__') === 0) { // This is a field of a foreign key + $reg = array(); + if (preg_match('/^(.*)\.(.*)/', $gvalwithoutprefix, $reg)) { + $gvalwithoutprefix = preg_replace('/\..*$/', '', $gvalwithoutprefix); + $gvalwithoutprefix = preg_replace('/t__/', '', $gvalwithoutprefix); + $keyforlabeloffield = $object->fields[$gvalwithoutprefix]['label']; + $labeloffield = $langs->transnoentitiesnoconv($keyforlabeloffield).'-'.$reg[2]; + } else { + $labeloffield = $langs->transnoentitiesnoconv($keyforlabeloffield); + } + } else { // This is a common field + $reg = array(); + if (preg_match('/^(.*)\-(year|month|day)/', $gvalwithoutprefix, $reg)) { + $gvalwithoutprefix = preg_replace('/\-(year|month|day)/', '', $gvalwithoutprefix); + $keyforlabeloffield = $object->fields[$gvalwithoutprefix]['label']; + $labeloffield = $langs->transnoentitiesnoconv($keyforlabeloffield).'-'.$reg[2]; + } else { + $keyforlabeloffield = $object->fields[$gvalwithoutprefix]['label']; + $labeloffield = $langs->transnoentitiesnoconv($keyforlabeloffield); + } } - //var_dump($gkey.' '.$gval.' '.$gvalwithoutprefix); - $gvalwithoutprefix = preg_replace('/\-(year|month|day)/', '', $gvalwithoutprefix); - $labeloffield = $langs->transnoentitiesnoconv($keyforlabeloffield); + //var_dump($gkey.' '.$gval.' '.$gvalwithoutprefix.' '.$fieldtocount.' '.$keyforlabeloffield); + //var_dump($object->fields); setEventMessages($langs->trans("ErrorTooManyDifferentValueForSelectedGroupBy", $MAXUNIQUEVALFORGROUP, $labeloffield), null, 'warnings'); $search_groupby = array(); } @@ -450,7 +468,7 @@ $simplearrayofmesures = array(); foreach ($arrayofmesures as $key => $val) { $simplearrayofmesures[$key] = $arrayofmesures[$key]['label']; } -print $form->multiselectarray('search_measures', $simplearrayofmesures, $search_measures, 0, 0, 'minwidth400', 1, 0, '', '', $langs->trans("Measures")); // Fill the array $arrayofmeasures with possible fields +print $form->multiselectarray('search_measures', $simplearrayofmesures, $search_measures, 0, 0, 'minwidth300', 1, 0, '', '', $langs->trans("Measures")); // Fill the array $arrayofmeasures with possible fields print ''; // XAxis @@ -458,7 +476,7 @@ $count = 0; print '
    '; print '
    '; //var_dump($arrayofxaxis); -print $formother->selectXAxisField($object, $search_xaxis, $arrayofxaxis, $langs->trans("XAxis")); // Fill the array $arrayofxaxis with possible fields +print $formother->selectXAxisField($object, $search_xaxis, $arrayofxaxis, $langs->trans("XAxis"), 'minwidth300 maxwidth400'); // Fill the array $arrayofxaxis with possible fields print '
    '; // Group by @@ -970,31 +988,31 @@ function fillArrayOfMeasures($object, $tablealias, $labelofobject, &$arrayofmesu // Add main fields of object foreach ($object->fields as $key => $val) { if (!empty($val['isameasure']) && (!isset($val['enabled']) || dol_eval($val['enabled'], 1, 1, '1'))) { - $position = (!empty($val['position']) ? $val['position'] : 0); + $position = (empty($val['position']) ? 0 : intVal($val['position'])); $arrayofmesures[$tablealias.'.'.$key.'-sum'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$langs->trans("Sum").')', - 'position' => ($position+($count * 100000)).'.1', + 'position' => ($position + ($count * 100000)).'.1', 'table' => $object->table_element ); $arrayofmesures[$tablealias.'.'.$key.'-average'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$langs->trans("Average").')', - 'position' => ($position+($count * 100000)).'.2', + 'position' => ($position + ($count * 100000)).'.2', 'table' => $object->table_element ); $arrayofmesures[$tablealias.'.'.$key.'-min'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$langs->trans("Minimum").')', - 'position' => ($position+($count * 100000)).'.3', + 'position' => ($position + ($count * 100000)).'.3', 'table' => $object->table_element ); $arrayofmesures[$tablealias.'.'.$key.'-max'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$langs->trans("Maximum").')', - 'position' => ($position+($count * 100000)).'.4', + 'position' => ($position + ($count * 100000)).'.4', 'table' => $object->table_element ); } } // Add extrafields to Measures - if ($object->isextrafieldmanaged) { + if (!empty($object->isextrafieldmanaged)) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { if (!empty($extrafields->attributes[$object->table_element]['totalizable'][$key]) && (!isset($extrafields->attributes[$object->table_element]['enabled'][$key]) || dol_eval($extrafields->attributes[$object->table_element]['enabled'][$key], 1, 1, '1'))) { $position = (!empty($val['position']) ? $val['position'] : 0); @@ -1078,7 +1096,7 @@ function fillArrayOfXAxis($object, $tablealias, $labelofobject, &$arrayofxaxis, foreach ($object->fields as $key => $val) { if (empty($val['measure'])) { if (in_array($key, array( - 'id', 'ref_int', 'ref_ext', 'rowid', 'entity', 'last_main_doc', 'logo', 'logo_squarred', 'extraparams', + 'id', 'ref_ext', 'rowid', 'entity', 'last_main_doc', 'logo', 'logo_squarred', 'extraparams', 'parent', 'photo', 'socialnetworks', 'webservices_url', 'webservices_key'))) { continue; } @@ -1098,26 +1116,27 @@ function fillArrayOfXAxis($object, $tablealias, $labelofobject, &$arrayofxaxis, continue; } if (in_array($val['type'], array('timestamp', 'date', 'datetime'))) { - $position = (!empty($val['position']) ? $val['position'] : 0); + $position = (empty($val['position']) ? 0 : intVal($val['position'])); $arrayofxaxis[$tablealias.'.'.$key.'-year'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.')', - 'position' => ($position+($count * 100000)).'.1', + 'position' => ($position + ($count * 100000)).'.1', 'table' => $object->table_element ); $arrayofxaxis[$tablealias.'.'.$key.'-month'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.'-'.$MM.')', - 'position' => ($position+($count * 100000)).'.2', + 'position' => ($position + ($count * 100000)).'.2', 'table' => $object->table_element ); $arrayofxaxis[$tablealias.'.'.$key.'-day'] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.'-'.$MM.'-'.$DD.')', - 'position' => ($position+($count * 100000)).'.3', + 'position' => ($position + ($count * 100000)).'.3', 'table' => $object->table_element ); } else { + $position = (empty($val['position']) ? 0 : intVal($val['position'])); $arrayofxaxis[$tablealias.'.'.$key] = array( 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']), - 'position' => ($position+($count * 100000)), + 'position' => ($position + ($count * 100000)), 'table' => $object->table_element ); } @@ -1125,7 +1144,7 @@ function fillArrayOfXAxis($object, $tablealias, $labelofobject, &$arrayofxaxis, } // Add extrafields to X-Axis - if ($object->isextrafieldmanaged) { + if (!empty($object->isextrafieldmanaged)) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { if ($extrafields->attributes[$object->table_element]['type'][$key] == 'separate') { continue; @@ -1196,9 +1215,9 @@ function fillArrayOfGroupBy($object, $tablealias, $labelofobject, &$arrayofgroup // Add main fields of object foreach ($object->fields as $key => $val) { - if (!$val['isameasure']) { + if (empty($val['isameasure'])) { if (in_array($key, array( - 'id', 'ref_int', 'ref_ext', 'rowid', 'entity', 'last_main_doc', 'logo', 'logo_squarred', 'extraparams', + 'id', 'ref_ext', 'rowid', 'entity', 'last_main_doc', 'logo', 'logo_squarred', 'extraparams', 'parent', 'photo', 'socialnetworks', 'webservices_url', 'webservices_key'))) { continue; } @@ -1218,26 +1237,27 @@ function fillArrayOfGroupBy($object, $tablealias, $labelofobject, &$arrayofgroup continue; } if (in_array($val['type'], array('timestamp', 'date', 'datetime'))) { - $position = (!empty($val['position']) ? $val['position'] : 0); + $position = (empty($val['position']) ? 0 : intVal($val['position'])); $arrayofgroupby[$tablealias.'.'.$key.'-year'] = array( 'label' => img_picto('', $object->picto, - 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.')', 'position' => ($position+($count * 100000)).'.1', + 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.')', 'position' => ($position + ($count * 100000)).'.1', 'table' => $object->table_element ); $arrayofgroupby[$tablealias.'.'.$key.'-month'] = array( 'label' => img_picto('', $object->picto, - 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.'-'.$MM.')', 'position' => ($position+($count * 100000)).'.2', + 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.'-'.$MM.')', 'position' => ($position + ($count * 100000)).'.2', 'table' => $object->table_element ); $arrayofgroupby[$tablealias.'.'.$key.'-day'] = array( 'label' => img_picto('', $object->picto, - 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.'-'.$MM.'-'.$DD.')', 'position' => ($position+($count * 100000)).'.3', + 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).' ('.$YYYY.'-'.$MM.'-'.$DD.')', 'position' => ($position + ($count * 100000)).'.3', 'table' => $object->table_element ); } else { + $position = (empty($val['position']) ? 0 : intVal($val['position'])); $arrayofgroupby[$tablealias.'.'.$key] = array( 'label' => img_picto('', $object->picto, - 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']), 'position' => ($position+($count * 100000)), + 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']), 'position' => ($position + ($count * 100000)), 'table' => $object->table_element ); } @@ -1245,7 +1265,7 @@ function fillArrayOfGroupBy($object, $tablealias, $labelofobject, &$arrayofgroup } // Add extrafields to Group by - if ($object->isextrafieldmanaged) { + if (!empty($object->isextrafieldmanaged)) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { if ($extrafields->attributes[$object->table_element]['type'][$key] == 'separate') { continue; diff --git a/htdocs/core/db/Database.interface.php b/htdocs/core/db/Database.interface.php index 1d24b058614..180f928eac0 100644 --- a/htdocs/core/db/Database.interface.php +++ b/htdocs/core/db/Database.interface.php @@ -64,9 +64,10 @@ interface Database /** * Start transaction * - * @return int 1 if transaction successfuly opened or already opened, 0 if error + * @param string $textinlog Add a small text into log. '' by default. + * @return int 1 if transaction successfuly opened or already opened, 0 if error */ - public function begin(); + public function begin($textinlog = ''); // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** @@ -172,18 +173,18 @@ interface Database /** * Escape a string to insert data * - * @param string $stringtoencode String to escape - * @return string String escaped + * @param string $stringtoencode String to escape + * @return string String escaped */ public function escape($stringtoencode); /** - * Escape a string to insert data + * Escape a string to insert data into a like * - * @param string $stringtoencode String to escape - * @return string String escaped + * @param string $stringtoencode String to escape + * @return string String escaped */ - public function escapeunderscore($stringtoencode); + public function escapeforlike($stringtoencode); /** * Sanitize a string for SQL forging diff --git a/htdocs/core/db/DoliDB.class.php b/htdocs/core/db/DoliDB.class.php index aae315ec992..30b3ea76975 100644 --- a/htdocs/core/db/DoliDB.class.php +++ b/htdocs/core/db/DoliDB.class.php @@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/db/Database.interface.php'; */ abstract class DoliDB implements Database { - /** @var bool|resource|SQLite3 Database handler */ + /** @var bool|resource|mysqli|SQLite3|PgSql\connection Database handler */ public $db; /** @var string Database type */ public $type; @@ -37,8 +37,10 @@ abstract class DoliDB implements Database public $forcecharset = 'utf8'; /** @var string Collate used to force collate when creating database */ public $forcecollate = 'utf8_unicode_ci'; + /** @var resource Resultset of last query */ private $_results; + /** @var bool true if connected, else false */ public $connected; /** @var bool true if database selected, else false */ @@ -73,7 +75,8 @@ abstract class DoliDB implements Database /** - * Return the DB prefix + * Return the DB prefix found into prefix_db (if it was set manually by doing $dbhandler->prefix_db=...). + * Otherwise return MAIN_DB_PREFIX (common use). * * @return string The DB prefix */ @@ -107,6 +110,25 @@ abstract class DoliDB implements Database return ''; } + + /** + * Format a SQL REGEXP + * + * @param string $subject string tested + * @param string $pattern SQL pattern to match + * @param string $sqlstring whether or not the string being tested is an SQL expression + * @return string SQL string + */ + public function regexpsql($subject, $pattern, $sqlstring = false) + { + if ($sqlstring) { + return "(". $subject ." REGEXP '" . $pattern . "')"; + } + + return "('". $subject ."' REGEXP '" . $pattern . "')"; + } + + /** * Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field. * Function to use to build INSERT, UPDATE or WHERE predica @@ -136,29 +158,27 @@ abstract class DoliDB implements Database * * @param string $stringtosanitize String to escape * @param int $allowsimplequote 1=Allow simple quotes in string. When string is used as a list of SQL string ('aa', 'bb', ...) + * @param string $allowsequals 1=Allow equals sign * @return string String escaped */ - public function sanitize($stringtosanitize, $allowsimplequote = 0) + public function sanitize($stringtosanitize, $allowsimplequote = 0, $allowsequals = 0) { - if ($allowsimplequote) { - return preg_replace('/[^a-z0-9_\-\.,\']/i', '', $stringtosanitize); - } else { - return preg_replace('/[^a-z0-9_\-\.,]/i', '', $stringtosanitize); - } + return preg_replace('/[^a-z0-9_\-\.,'.($allowsequals ? '=' : '').($allowsimplequote ? "\'" : '').']/i', '', $stringtosanitize); } /** * Start transaction * - * @return int 1 if transaction successfuly opened or already opened, 0 if error + * @param string $textinlog Add a small text into log. '' by default. + * @return int 1 if transaction successfuly opened or already opened, 0 if error */ - public function begin() + public function begin($textinlog = '') { if (!$this->transaction_opened) { $ret = $this->query("BEGIN"); if ($ret) { $this->transaction_opened++; - dol_syslog("BEGIN Transaction", LOG_DEBUG); + dol_syslog("BEGIN Transaction".($textinlog ? ' '.$textinlog : ''), LOG_DEBUG); dol_syslog('', 0, 1); } return $ret; diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 582fd08811f..d34aca48ed9 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -36,10 +36,12 @@ class DoliDBMysqli extends DoliDB public $db; //! Database type public $type = 'mysqli'; + //! Database label const LABEL = 'MySQL or MariaDB'; //! Version min database const VERSIONMIN = '5.0.3'; + /** @var bool|mysqli_result Resultset of last query */ private $_results; @@ -92,14 +94,14 @@ class DoliDBMysqli extends DoliDB // We do not try to connect to database, only to server. Connect to database is done later in constrcutor $this->db = $this->connect($host, $user, $pass, '', $port); - if ($this->db->connect_errno) { - $this->connected = false; - $this->ok = false; - $this->error = $this->db->connect_error; - dol_syslog(get_class($this)."::DoliDBMysqli Connect error: ".$this->error, LOG_ERR); - } else { + if ($this->db && empty($this->db->connect_errno)) { $this->connected = true; $this->ok = true; + } else { + $this->connected = false; + $this->ok = false; + $this->error = empty($this->db) ? 'Failed to connect' : $this->db->connect_error; + dol_syslog(get_class($this)."::DoliDBMysqli Connect error: ".$this->error, LOG_ERR); } // If server connection is ok, we try to connect to the database @@ -204,7 +206,13 @@ class DoliDBMysqli extends DoliDB { // phpcs:enable dol_syslog(get_class($this)."::select_db database=".$database, LOG_DEBUG); - return $this->db->select_db($database); + $result = false; + try { + $result = $this->db->select_db($database); + } catch (Exception $e) { + // Nothing done on error + } + return $result; } @@ -216,7 +224,7 @@ class DoliDBMysqli extends DoliDB * @param string $passwd Password * @param string $name Name of database (not used for mysql, used for pgsql) * @param integer $port Port of database server - * @return mysqli Database access object + * @return mysqli|null Database access object * @see close() */ public function connect($host, $login, $passwd, $name, $port = 0) @@ -228,7 +236,13 @@ class DoliDBMysqli extends DoliDB // Can also be // mysqli::init(); mysql::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0'); mysqli::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5); // return mysqli::real_connect($host, $user, $pass, $db, $port); - return new mysqli($host, $login, $passwd, $name, $port); + $tmp = false; + try { + $tmp = new mysqli($host, $login, $passwd, $name, $port); + } catch (Exception $e) { + dol_syslog(get_class($this)."::connect failed", LOG_DEBUG); + } + return $tmp; } /** @@ -409,7 +423,7 @@ class DoliDBMysqli extends DoliDB if (!is_object($resultset)) { $resultset = $this->_results; } - return $resultset->num_rows; + return isset($resultset->num_rows) ? $resultset->num_rows : 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -459,18 +473,18 @@ class DoliDBMysqli extends DoliDB */ public function escape($stringtoencode) { - return $this->db->real_escape_string($stringtoencode); + return $this->db->real_escape_string((string) $stringtoencode); } /** - * Escape a string to insert data + * Escape a string to insert data into a like * * @param string $stringtoencode String to escape * @return string String escaped */ - public function escapeunderscore($stringtoencode) + public function escapeforlike($stringtoencode) { - return str_replace('_', '\_', $stringtoencode); + return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode); } /** @@ -746,6 +760,9 @@ class DoliDBMysqli extends DoliDB // phpcs:enable // FIXME: $fulltext_keys parameter is unused + $pk = ''; + $sqluq = $sqlk = array(); + // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra // ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment'); $sql = "CREATE TABLE ".$table."("; diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 5a2a1c1b753..069afeca4ff 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -419,7 +419,11 @@ class DoliDBPgsql extends DoliDB // try first Unix domain socket (local) if ((!empty($host) && $host == "socket") && !defined('NOLOCALSOCKETPGCONNECT')) { $con_string = "dbname='".$name."' user='".$login."' password='".$passwd."'"; // $name may be empty - $this->db = @pg_connect($con_string); + try { + $this->db = @pg_connect($con_string); + } catch (Exception $e) { + // No message + } } // if local connection failed or not requested, use TCP/IP @@ -718,14 +722,14 @@ class DoliDBPgsql extends DoliDB } /** - * Escape a string to insert data + * Escape a string to insert data into a like * * @param string $stringtoencode String to escape * @return string String escaped */ - public function escapeunderscore($stringtoencode) + public function escapeforlike($stringtoencode) { - return str_replace('_', '\_', $stringtoencode); + return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode); } /** @@ -741,6 +745,24 @@ class DoliDBPgsql extends DoliDB return '(CASE WHEN '.$test.' THEN '.$resok.' ELSE '.$resko.' END)'; } + /** + * Format a SQL REGEXP + * + * @param string $subject string tested + * @param string $pattern SQL pattern to match + * @param string $sqlstring whether or not the string being tested is an SQL expression + * @return string SQL string + */ + public function regexpsql($subject, $pattern, $sqlstring = false) + { + if ($sqlstring) { + return "(". $subject ." ~ '" . $pattern . "')"; + } + + return "('". $subject ."' ~ '" . $pattern . "')"; + } + + /** * Renvoie le code erreur generique de l'operation precedente. * @@ -871,10 +893,10 @@ class DoliDBPgsql extends DoliDB global $conf; // Type of encryption (2: AES (recommended), 1: DES , 0: no encryption) - $cryptType = ($conf->db->dolibarr_main_db_encryption ? $conf->db->dolibarr_main_db_encryption : 0); + //$cryptType = ($conf->db->dolibarr_main_db_encryption ? $conf->db->dolibarr_main_db_encryption : 0); //Encryption key - $cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey) ? $conf->db->dolibarr_main_db_cryptkey : ''); + //$cryptKey = (!empty($conf->db->dolibarr_main_db_cryptkey) ? $conf->db->dolibarr_main_db_cryptkey : ''); $return = $value; return $return; @@ -1204,7 +1226,7 @@ class DoliDBPgsql extends DoliDB // phpcs:enable $sql = "ALTER TABLE ".$table; $sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type']; - if (in_array($field_desc['type'], array('double', 'tinyint', 'int', 'varchar')) && $field_desc['value']) { + if (in_array($field_desc['type'], array('double', 'varchar')) && $field_desc['value']) { $sql .= "(".$field_desc['value'].")"; } diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php index 8d0141e8ca6..8c10c26d464 100644 --- a/htdocs/core/db/sqlite3.class.php +++ b/htdocs/core/db/sqlite3.class.php @@ -650,14 +650,14 @@ class DoliDBSqlite3 extends DoliDB } /** - * Escape a string to insert data + * Escape a string to insert data into a like * * @param string $stringtoencode String to escape * @return string String escaped */ - public function escapeunderscore($stringtoencode) + public function escapeforlike($stringtoencode) { - return str_replace('_', '\_', $stringtoencode); + return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode); } /** diff --git a/htdocs/core/doxygen.php b/htdocs/core/doxygen.php index ac66362a89f..1e66b348ef8 100644 --- a/htdocs/core/doxygen.php +++ b/htdocs/core/doxygen.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2008-2022 Laurent Destailleur * Copyright (C) 2009 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -20,10 +20,10 @@ /** * \file htdocs/core/doxygen.php * \ingroup core - * \mainpage Dolibarr project + * \mainpage Dolibarr documentation of source code * * This is source documentation for Dolibarr ERP/CRM.
    - * This documentation can be built or updated running the script dolibarr-doxygen-build.pl or from Eclipse with Doxygen plugin.
    + * This documentation can be built or updated running the script build/doxygen/dolibarr-doxygen-build.pl or from Eclipse with Doxygen plugin.
    *
    * Dolibarr official web site: www.dolibarr.org
    *
    diff --git a/htdocs/core/filemanagerdol/browser/default/browser.php b/htdocs/core/filemanagerdol/browser/default/browser.php index b5bce100d39..0c1b29d12b2 100644 --- a/htdocs/core/filemanagerdol/browser/default/browser.php +++ b/htdocs/core/filemanagerdol/browser/default/browser.php @@ -21,10 +21,12 @@ //define('NOTOKENRENEWAL',1); // Disables token renewal //require '../../../../main.inc.php'; -require '../../connectors/php/config.php'; // This include the define('NOTOKENRENEWAL',1) and the require main.in.php +require '../../connectors/php/config.inc.php'; // This include the define('NOTOKENRENEWAL',1) and the require main.in.php global $Config; +top_httphead(); + ?> diff --git a/htdocs/core/filemanagerdol/browser/default/frmactualfolder.php b/htdocs/core/filemanagerdol/browser/default/frmactualfolder.php index c66187ee433..1304afa1754 100644 --- a/htdocs/core/filemanagerdol/browser/default/frmactualfolder.php +++ b/htdocs/core/filemanagerdol/browser/default/frmactualfolder.php @@ -21,8 +21,11 @@ define('NOTOKENRENEWAL', 1); // Disables token renewal +// Load Dolibarr environment require '../../../../main.inc.php'; +top_httphead(); + ?> diff --git a/htdocs/core/filemanagerdol/browser/default/frmresourceslist.php b/htdocs/core/filemanagerdol/browser/default/frmresourceslist.php index 027d0588298..16ad0d426d6 100644 --- a/htdocs/core/filemanagerdol/browser/default/frmresourceslist.php +++ b/htdocs/core/filemanagerdol/browser/default/frmresourceslist.php @@ -21,8 +21,11 @@ define('NOTOKENRENEWAL', 1); // Disables token renewal +// Load Dolibarr environment require '../../../../main.inc.php'; +top_httphead(); + ?> - '; - $out .= ''.img_picto($langs->trans($text_off), 'switch_off').''; - $out .= ''.img_picto($langs->trans($text_on), 'switch_on').''; + $out .= ''.img_picto($langs->trans($text_off), 'switch_off').''; + $out .= ''.img_picto($langs->trans($text_on), 'switch_on').''; return $out; } diff --git a/htdocs/core/lib/asset.lib.php b/htdocs/core/lib/asset.lib.php index 9d71e2b38f1..be31f995657 100644 --- a/htdocs/core/lib/asset.lib.php +++ b/htdocs/core/lib/asset.lib.php @@ -1,5 +1,6 @@ + * Copyright (C) 2022 Frédéric France * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,7 +29,11 @@ */ function assetAdminPrepareHead() { - global $langs, $conf; + global $langs, $conf, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('asset'); + $extrafields->fetch_name_optionals_label('asset_model'); $langs->load("assets"); @@ -52,11 +57,19 @@ function assetAdminPrepareHead() $head[$h][0] = DOL_URL_ROOT.'/asset/admin/asset_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['asset']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ' '.$nbExtrafields.''; + } $head[$h][2] = 'asset_extrafields'; $h++; $head[$h][0] = DOL_URL_ROOT.'/asset/admin/assetmodel_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsAssetModel"); + $nbExtrafields = $extrafields->attributes['asset_model']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'assetmodel_extrafields'; $h++; diff --git a/htdocs/core/lib/bank.lib.php b/htdocs/core/lib/bank.lib.php index 563f0be8665..98da571c138 100644 --- a/htdocs/core/lib/bank.lib.php +++ b/htdocs/core/lib/bank.lib.php @@ -27,6 +27,7 @@ * \brief Ensemble de fonctions de base pour le module banque */ + /** * Prepare array with list of tabs * @@ -130,7 +131,12 @@ function bank_prepare_head(Account $object) */ function bank_admin_prepare_head($object) { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('bank_account'); + $extrafields->fetch_name_optionals_label('bank'); + $h = 0; $head = array(); @@ -152,10 +158,23 @@ function bank_admin_prepare_head($object) complete_head_from_modules($conf, $langs, $object, $head, $h, 'bank_admin'); $head[$h][0] = DOL_URL_ROOT.'/admin/bank_extrafields.php'; - $head[$h][1] = $langs->trans("ExtraFields"); + $head[$h][1] = $langs->trans("ExtraFields").' ('.$langs->trans("BankAccounts").')'; + $nbExtrafields = $extrafields->attributes['bank_account']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes'; $h++; + $head[$h][0] = DOL_URL_ROOT.'/admin/bankline_extrafields.php'; + $head[$h][1] = $langs->trans("ExtraFields").' ('.$langs->trans("BankTransactions").')'; + $nbExtrafields = $extrafields->attributes['bank']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } + $head[$h][2] = 'bankline_extrafields'; + $h++; + complete_head_from_modules($conf, $langs, $object, $head, $h, 'bank_admin', 'remove'); @@ -273,13 +292,13 @@ function checkSwiftForAccount($account) * @param Account $account A bank account * @return boolean True if informations are valid, false otherwise */ -function checkIbanForAccount($account) +function checkIbanForAccount(Account $account) { require_once DOL_DOCUMENT_ROOT.'/includes/php-iban/oophp-iban.php'; $ibantocheck = ($account->iban ? $account->iban : $account->iban_prefix); // iban or iban_prefix for backward compatibility - $iban = new IBAN($ibantocheck); + $iban = new PHP_IBAN\IBAN($ibantocheck); $check = $iban->Verify(); if ($check) { @@ -289,6 +308,24 @@ function checkIbanForAccount($account) } } +/** + * Returns the iban human readable + * + * @param Account $account Account object + * @return string + */ +function getIbanHumanReadable(Account $account) +{ + if ($account->getCountryCode() == 'FR') { + require_once DOL_DOCUMENT_ROOT.'/includes/php-iban/oophp-iban.php'; + $ibantoprint = preg_replace('/[^a-zA-Z0-9]/', '', $account->iban); + $iban = new PHP_IBAN\IBAN($ibantoprint); + return $iban->HumanFormat(); + } + + return $account->iban; +} + /** * Check account number informations for a bank account * @@ -323,7 +360,7 @@ function checkBanForAccount($account) for ($i = 0, $s = 0; $i < 3; $i++) { $code = substr($rib, 7 * $i, 7); - $s += (0 + (int) $code) * $coef[$i]; + $s += ((int) $code) * $coef[$i]; } // Soustraction du modulo 97 de $s a 97 pour obtenir la cle $cle_rib = 97 - ($s % 97); diff --git a/htdocs/core/lib/categories.lib.php b/htdocs/core/lib/categories.lib.php index 8ff1dbb97ae..5ee8ac517a8 100644 --- a/htdocs/core/lib/categories.lib.php +++ b/htdocs/core/lib/categories.lib.php @@ -49,7 +49,7 @@ function categories_prepare_head(Categorie $object, $type) $head[$h][2] = 'photos'; $h++; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $head[$h][0] = DOL_URL_ROOT.'/categories/traduction.php?id='.$object->id.'&type='.$type; $head[$h][1] = $langs->trans("Translation"); $head[$h][2] = 'translation'; @@ -80,7 +80,10 @@ function categories_prepare_head(Categorie $object, $type) */ function categoriesadmin_prepare_head() { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('categorie'); $langs->load("categories"); @@ -94,6 +97,10 @@ function categoriesadmin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/categories/admin/categorie_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsCategories"); + $nbExtrafields = $extrafields->attributes['categorie']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes_categories'; $h++; diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 896921ac436..d49538f41dc 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -128,7 +128,7 @@ function societe_prepare_head(Societe $object) } } $supplier_module_enabled = 0; - if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_proposal->enabled) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_proposal') || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $supplier_module_enabled = 1; } if ($supplier_module_enabled == 1 && $object->fournisseur && !empty($user->rights->fournisseur->lire)) { @@ -138,7 +138,7 @@ function societe_prepare_head(Societe $object) $h++; } - if (!empty($conf->projet->enabled) && (!empty($user->rights->projet->lire))) { + if (isModEnabled('project') && (!empty($user->rights->projet->lire))) { $nbProject = 0; // Enable caching of thirdrparty count projects require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; @@ -179,7 +179,7 @@ function societe_prepare_head(Societe $object) } // Related items - if ((isModEnabled('commande') || isModEnabled('propal') || isModEnabled('facture') || isModEnabled('ficheinter') || (isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) + if ((isModEnabled('commande') || isModEnabled('propal') || isModEnabled('facture') || isModEnabled('ficheinter') || (isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && empty($conf->global->THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB)) { $head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id; $head[$h][1] = $langs->trans("Referers"); @@ -242,7 +242,7 @@ function societe_prepare_head(Societe $object) $h++; } - if (isModEnabled('website') && (!empty($conf->global->WEBSITE_USE_WEBSITE_ACCOUNTS)) && (!empty($user->rights->societe->lire))) { + if (isModEnabled('website') && (!empty($conf->global->WEBSITE_USE_WEBSITE_ACCOUNTS)) && ($user->hasRight('societe', 'lire'))) { $head[$h][0] = DOL_URL_ROOT.'/societe/website.php?id='.urlencode($object->id); $head[$h][1] = $langs->trans("WebSiteAccounts"); $nbNote = 0; @@ -267,9 +267,23 @@ function societe_prepare_head(Societe $object) if (!empty($user->rights->partnership->read)) { $langs->load("partnership"); $nbPartnership = is_array($object->partnerships) ? count($object->partnerships) : 0; - $head[$h][0] = DOL_URL_ROOT.'/societe/partnership.php?socid='.$object->id; - $head[$h][1] = $langs->trans("Partnership"); - $head[$h][2] = 'partnership'; + $head[$h][0] = DOL_URL_ROOT.'/partnership/partnership_list.php?socid='.$object->id; + $head[$h][1] = $langs->trans("Partnerships"); + $nbNote = 0; + $sql = "SELECT COUNT(n.rowid) as nb"; + $sql .= " FROM ".MAIN_DB_PREFIX."partnership as n"; + $sql .= " WHERE fk_soc = ".((int) $object->id); + $resql = $db->query($sql); + if ($resql) { + $obj = $db->fetch_object($resql); + $nbNote = $obj->nb; + } else { + dol_print_error($db); + } + if ($nbNote > 0) { + $head[$h][1] .= ''.$nbNote.''; + } + $head[$h][2] = 'partnerships'; if ($nbPartnership > 0) { $head[$h][1] .= ''.$nbPartnership.''; } @@ -281,7 +295,7 @@ function societe_prepare_head(Societe $object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'thirdparty'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'thirdparty', 'add', 'core'); if ($user->socid == 0) { // Notifications @@ -392,11 +406,11 @@ function societe_prepare_head(Societe $object) $head[$h][2] = 'agenda'; $h++; - // Log - /*$head[$h][0] = DOL_URL_ROOT.'/societe/info.php?socid='.$object->id; - $head[$h][1] = $langs->trans("Info"); - $head[$h][2] = 'info'; - $h++;*/ + // Show more tabs from modules + // Entries must be declared in modules descriptor with line + // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab + // $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab + complete_head_from_modules($conf, $langs, $object, $head, $h, 'thirdparty', 'add', 'external'); complete_head_from_modules($conf, $langs, $object, $head, $h, 'thirdparty', 'remove'); @@ -438,7 +452,11 @@ function societe_prepare_head2($object) */ function societe_admin_prepare_head() { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('societe'); + $extrafields->fetch_name_optionals_label('socpeople'); $h = 0; $head = array(); @@ -456,11 +474,19 @@ function societe_admin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/societe/admin/societe_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsThirdParties"); + $nbExtrafields = $extrafields->attributes['societe']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes'; $h++; $head[$h][0] = DOL_URL_ROOT.'/societe/admin/contact_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsContacts"); + $nbExtrafields = $extrafields->attributes['socpeople']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes_contacts'; $h++; @@ -626,6 +652,8 @@ function getState($id, $withcode = '', $dbtouse = 0, $withregion = 0, $outputlan } else { dol_print_error($dbtouse, ''); } + + return ''; } /** @@ -777,22 +805,23 @@ function isInEEC($object) */ function show_projects($conf, $langs, $db, $object, $backtopage = '', $nocreatelink = 0, $morehtmlright = '') { - global $user; + global $user, $action, $hookmanager; $i = -1; - if (!empty($conf->projet->enabled) && $user->rights->projet->lire) { + if (isModEnabled('project') && $user->hasRight('projet', 'lire')) { $langs->load("projects"); $newcardbutton = ''; - if (!empty($conf->projet->enabled) && $user->rights->projet->creer && empty($nocreatelink)) { + if (isModEnabled('project') && $user->hasRight('projet', 'creer') && empty($nocreatelink)) { $newcardbutton .= dolGetButtonTitle($langs->trans('AddProject'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/projet/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage)); } print "\n"; print load_fiche_titre($langs->trans("ProjectsDedicatedToThisThirdParty"), $newcardbutton.$morehtmlright, ''); - print '
    '; - print "\n".'
    '; + + print '
    '."\n"; + print '
    '; $sql = "SELECT p.rowid as id, p.entity, p.title, p.ref, p.public, p.dateo as do, p.datee as de, p.fk_statut as status, p.fk_opp_status, p.opp_amount, p.opp_percent, p.tms as date_update, p.budget_amount"; $sql .= ", cls.code as opp_status_code"; @@ -835,12 +864,12 @@ function show_projects($conf, $langs, $db, $object, $backtopage = '', $nocreatel print ''; // Ref - print ''; // Label - print ''; + print ''; // Date start print ''; // Date end @@ -877,6 +906,11 @@ function show_projects($conf, $langs, $db, $object, $backtopage = '', $nocreatel } else { dol_print_error($db); } + + $parameters = array('sql'=>$sql, 'function'=>'show_projects'); + $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print "
    '; + print ''; print $projecttmp->getNomUrl(1); print ''.$obj->title.''.dol_escape_htmltag($obj->title).''.dol_print_date($db->jdate($obj->do), "day").'
    "; print ''; @@ -890,14 +924,15 @@ function show_projects($conf, $langs, $db, $object, $backtopage = '', $nocreatel /** * Show html area for list of contacts * - * @param Conf $conf Object conf - * @param Translate $langs Object langs - * @param DoliDB $db Database handler - * @param Societe $object Third party object - * @param string $backtopage Url to go once contact is created + * @param Conf $conf Object conf + * @param Translate $langs Object langs + * @param DoliDB $db Database handler + * @param Societe $object Third party object + * @param string $backtopage Url to go once contact is created + * @param int $showuserlogin 1=Show also user login if it exists * @return int */ -function show_contacts($conf, $langs, $db, $object, $backtopage = '') +function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserlogin = 0) { global $user, $conf, $extrafields, $hookmanager; global $contextpage; @@ -916,9 +951,11 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $search_status = 1; // always display active customer first } + $search_rowid = GETPOST("search_rowid", 'int'); $search_name = GETPOST("search_name", 'alpha'); $search_address = GETPOST("search_address", 'alpha'); $search_poste = GETPOST("search_poste", 'alpha'); + $search_note_private = GETPOST('search_note_private', 'alphanohtml'); $search_roles = GETPOST("search_roles", 'array'); $socialnetworks = getArrayOfSocialNetworks(); @@ -954,7 +991,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $sortfield = "t.lastname"; } - if (!empty($conf->clicktodial->enabled)) { + if (isModEnabled('clicktodial')) { $user->fetch_clicktodial(); // lecture des infos de clicktodial du user } @@ -964,9 +1001,11 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $extrafields->fetch_name_optionals_label($contactstatic->table_element); $contactstatic->fields = array( + 'rowid' =>array('type'=>'integer', 'label'=>"TechnicalID", 'enabled'=>(!empty($conf->global->MAIN_SHOW_TECHNICAL_ID) ? 1 : 0), 'visible'=>(!empty($conf->global->MAIN_SHOW_TECHNICAL_ID) ? 1 : 0), 'position'=>1), 'name' =>array('type'=>'varchar(128)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1), 'poste' =>array('type'=>'varchar(128)', 'label'=>'PostOrFunction', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>2, 'index'=>1, 'position'=>20), 'address' =>array('type'=>'varchar(128)', 'label'=>'Address', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>3, 'index'=>1, 'position'=>30), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PRIVATE_NOTES')), 'visible'=>3, 'position'=>35), 'role' =>array('type'=>'checkbox', 'label'=>'Role', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>4, 'index'=>1, 'position'=>40), 'statut' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'default'=>0, 'index'=>1, 'position'=>50, 'arrayofkeyval'=>array(0=>$contactstatic->LibStatut(0, 1), 1=>$contactstatic->LibStatut(1, 1))), ); @@ -977,6 +1016,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') 't.name'=>array('label'=>"Name", 'checked'=>1, 'position'=>10), 't.poste'=>array('label'=>"PostOrFunction", 'checked'=>1, 'position'=>20), 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), + 't.note_private' => array('label' => 'NotePrivate', 'checked' => 0, 'position'=>35), 'sc.role'=>array('label'=>"ContactByDefaultFor", 'checked'=>1, 'position'=>40), 't.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>50, 'class'=>'center'), ); @@ -1005,11 +1045,13 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') // Purge search criteria if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + $search_rowid = ''; $search_status = ''; $search_name = ''; $search_roles = array(); $search_address = ''; $search_poste = ''; + $search_note_private = ''; $search = array(); $search_array_options = array(); @@ -1022,7 +1064,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $arrayfields = dol_sort_array($arrayfields, 'position'); $newcardbutton = ''; - if ($user->rights->societe->contact->creer) { + if ($user->hasRight('societe', 'contact', 'creer')) { $addcontact = (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("AddContact") : $langs->trans("AddContactAddress")); $newcardbutton .= dolGetButtonTitle($addcontact, '', 'fa fa-plus-circle', DOL_URL_ROOT.'/contact/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage)); } @@ -1048,6 +1090,9 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') print "\n".''."\n"; $param = "socid=".urlencode($object->id); + if ($search_rowid != '') { + $param .= '&search_rowid='.urlencode($search_rowid); + } if ($search_status != '') { $param .= '&search_status='.urlencode($search_status); } @@ -1063,6 +1108,9 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if ($search_address != '') { $param .= '&search_address='.urlencode($search_address); } + if ($search_note_private != '') { + $param .= '&search_note_private='.urlencode($search_note_private); + } if ($optioncss != '') { $param .= '&optioncss='.urlencode($optioncss); } @@ -1071,11 +1119,16 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $extrafieldsobjectkey = $contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; - $sql = "SELECT t.rowid, t.lastname, t.firstname, t.fk_pays as country_id, t.civility, t.poste, t.phone as phone_pro, t.phone_mobile, t.phone_perso, t.fax, t.email, t.socialnetworks, t.statut, t.photo,"; + $sql = "SELECT t.rowid, t.entity, t.lastname, t.firstname, t.fk_pays as country_id, t.civility, t.poste, t.phone as phone_pro, t.phone_mobile, t.phone_perso, t.fax, t.email, t.socialnetworks, t.statut, t.photo,"; $sql .= " t.civility as civility_id, t.address, t.zip, t.town"; + $sql .= ", t.note_private"; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as t"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople_extrafields as ef on (t.rowid = ef.fk_object)"; $sql .= " WHERE t.fk_soc = ".((int) $object->id); + $sql .= " AND ((t.fk_user_creat = ".((int) $user->id)." AND t.priv = 1) OR t.priv = 0)"; + if ($search_rowid) { + $sql .= natural_search('t.rowid', $search_rowid); + } if ($search_status != '' && $search_status != '-1') { $sql .= " AND t.statut = ".((int) $search_status); } @@ -1088,6 +1141,9 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if ($search_address) { $sql .= natural_search($searchAddressPhoneDBFields, $search_address); } + if ($search_note_private) { + $sql .= natural_search('t.note_private', $search_note_private); + } if (count($search_roles) > 0) { $sql .= " AND t.rowid IN (SELECT sc.fk_socpeople FROM ".MAIN_DB_PREFIX."societe_contacts as sc WHERE sc.fk_c_type_contact IN (".$db->sanitize(implode(',', $search_roles))."))"; } @@ -1129,15 +1185,18 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (!empty($arrayfields['t.'.$key]['checked']) || !empty($arrayfields['sc.'.$key]['checked'])) { print ''; } } + if ($showuserlogin) { + print ''; + } // Extra fields $extrafieldsobjectkey = $contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; @@ -1177,6 +1236,9 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') print getTitleFieldOfList($arrayfields['sc.'.$key]['label'], 0, $_SERVER['PHP_SELF'], '', '', $param, ($align ? 'class="'.$align.'"' : ''), $sortfield, $sortorder, $align.' ')."\n"; } } + if ($showuserlogin) { + print ''; + } // Extra fields $extrafieldsobjectkey = $contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; @@ -1212,6 +1274,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $contactstatic->email = $obj->email; $contactstatic->socialnetworks = $obj->socialnetworks; $contactstatic->photo = $obj->photo; + $contactstatic->entity = $obj->entity; $country_code = getCountry($obj->country_id, 2); $contactstatic->country_code = $country_code; @@ -1263,6 +1326,15 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') print ''; } + // Note private + if (!empty($arrayfields['t.note_private']['checked'])) { + print ''; + } + // Role if (!empty($arrayfields['sc.role']['checked'])) { print ''; } + if ($showuserlogin) { + print ''; + } + // Extra fields $extrafieldsobjectkey = $contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; @@ -1283,14 +1365,14 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') print ''; $out .= ''; $out .= ''; $out .= ''; $out .= '\n"; $i++; } + if (empty($histo)) { + $colspan = 9; + $out .= ''; + } + $out .= "
    '; if (in_array($key, array('statut'))) { - print $form->selectarray('search_status', array('-1'=>'', '0'=>$contactstatic->LibStatut(0, 1), '1'=>$contactstatic->LibStatut(1, 1)), $search_status); + print $form->selectarray('search_status', array('-1'=>'', '0'=>$contactstatic->LibStatut(0, 1), '1'=>$contactstatic->LibStatut(1, 1)), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'onrightofpage'); } elseif (in_array($key, array('role'))) { - print $formcompany->showRoles("search_roles", $contactstatic, 'edit', $search_roles); + print $formcompany->showRoles("search_roles", $contactstatic, 'edit', $search_roles, 'minwidth200 maxwidth300'); } else { print ''; } print ''.$langs->trans("DolibarrLogin").''; + if ($obj->note_private) { + print dol_string_nohtmltag($obj->note_private); + } + print ''; @@ -1275,6 +1347,16 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') print ''.$contactstatic->getLibStatut(5).''; + $tmpuser= new User($db); + $resfetch = $tmpuser->fetch(0, '', '', 0, -1, '', $contactstatic->id); + if ($resfetch > 0) { + print $tmpuser->getNomUrl(1, '', 0, 0, 24, 1); + } + print ''; // Add to agenda - if (isModEnabled('agenda')&& $user->rights->agenda->myactions->create) { + if (isModEnabled('agenda')&& $user->hasRight('agenda', 'myactions', 'create')) { print ''; print img_object($langs->trans("Event"), "action"); print '   '; } // Edit - if ($user->rights->societe->contact->creer) { + if ($user->hasRight('societe', 'contact', 'creer')) { print ''; print img_edit(); print ''; @@ -1411,6 +1493,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin $sql = ''; if (isModEnabled('agenda')) { + require_once DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($db); + // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context + $hookmanager->initHooks(array('agendadao')); + // Recherche histo sur actioncomm if (is_object($objcon) && $objcon->id > 0) { $sql = "SELECT DISTINCT a.id, a.label as label,"; @@ -1450,6 +1537,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin } } + // Fields from hook + $parameters = array('sql' => &$sql, 'filterobj' => $filterobj, 'objcon' => $objcon); + $reshook = $hookmanager->executeHooks('showActionsDoneListSelect', $parameters); // Note that $action and $object may have been modified by hook + if (!empty($hookmanager->resPrint)) $sql.= $hookmanager->resPrint; + $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_action"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action = c.id"; @@ -1461,6 +1553,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin $sql .= " AND r.element_type = '".$db->escape($objcon->table_element)."' AND r.fk_element = ".((int) $objcon->id); } + // Fields from hook + $parameters = array('sql' => &$sql, 'filterobj' => $filterobj, 'objcon' => $objcon); + $reshook = $hookmanager->executeHooks('showActionsDoneListFrom', $parameters); // Note that $action and $object may have been modified by hook + if (!empty($hookmanager->resPrint)) $sql.= $hookmanager->resPrint; + if (is_object($filterobj) && in_array(get_class($filterobj), array('Societe', 'Client', 'Fournisseur'))) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; } elseif (is_object($filterobj) && get_class($filterobj) == 'Dolresource') { @@ -1482,7 +1579,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin $sql .= ", ".MAIN_DB_PREFIX."bom_bom as o"; } elseif (is_object($filterobj) && get_class($filterobj) == 'Contrat') { $sql .= ", ".MAIN_DB_PREFIX."contrat as o"; - } elseif (is_object($filterobj) && is_array($filterobj->fields) && is_array($filterobj->fields['rowid']) && (is_array($filterobj->fields['ref']) || is_array($filterobj->fields['label'])) && $filterobj->table_element && $filterobj->element) { + } elseif (is_object($filterobj) && is_array($filterobj->fields) && is_array($filterobj->fields['rowid']) && (!empty($filterobj->fields['ref']) && is_array($filterobj->fields['ref']) || $filterobj->fields['label'] && is_array($filterobj->fields['label'])) && $filterobj->table_element && $filterobj->element) { $sql .= ", ".MAIN_DB_PREFIX.$filterobj->table_element." as o"; } @@ -1524,7 +1621,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin if ($filterobj->id) { $sql .= " AND a.fk_element = ".((int) $filterobj->id); } - } elseif (is_object($filterobj) && is_array($filterobj->fields) && is_array($filterobj->fields['rowid']) && (is_array($filterobj->fields['ref']) || is_array($filterobj->fields['label'])) && $filterobj->table_element && $filterobj->element) { + } elseif (is_object($filterobj) && is_array($filterobj->fields) && is_array($filterobj->fields['rowid']) && (!empty($filterobj->fields['ref']) && is_array($filterobj->fields['ref']) || $filterobj->fields['label'] && is_array($filterobj->fields['label'])) && $filterobj->table_element && $filterobj->element) { // Generic case $sql .= " AND a.fk_element = o.rowid AND a.elementtype = '".$db->escape($filterobj->element).($module ? "@".$module : "")."'"; if ($filterobj->id) { @@ -1561,6 +1658,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin addOtherFilterSQL($sql, $donetodo, $now, $filters); + // Fields from hook + $parameters = array('sql' => &$sql, 'filterobj' => $filterobj, 'objcon' => $objcon, 'module' => $module); + $reshook = $hookmanager->executeHooks('showActionsDoneListWhere', $parameters); // Note that $action and $object may have been modified by hook + if (!empty($hookmanager->resPrint)) $sql.= $hookmanager->resPrint; + if (is_array($actioncode)) { foreach ($actioncode as $code) { $sql2 = addMailingEventTypeSQL($code, $objcon, $filterobj); @@ -1705,7 +1807,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin $out .= ''; - $out .= $formactions->select_type_actions($actioncode, "actioncode", '', empty($conf->global->AGENDA_USE_EVENT_TYPE) ? 1 : -1, 0, (empty($conf->global->AGENDA_USE_MULTISELECT_TYPE) ? 0 : 1), 1, 'minwidth200'); + $out .= $formactions->select_type_actions($actioncode, "actioncode", '', empty($conf->global->AGENDA_USE_EVENT_TYPE) ? 1 : -1, 0, (empty($conf->global->AGENDA_USE_MULTISELECT_TYPE) ? 0 : 1), 1, 'minwidth100 maxwidth150'); $out .= ''; @@ -1798,7 +1900,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin if (empty($conf->global->AGENDA_USE_EVENT_TYPE) && empty($arraylist[$labeltype])) { $labeltype = 'AC_OTH'; } - if ($actionstatic->type_code == 'AC_OTH' && $actionstatic->code == 'TICKET_MSG') { + if (preg_match('/^TICKET_MSG/', $actionstatic->code)) { $labeltype = $langs->trans("Message"); } else { if (!empty($arraylist[$labeltype])) { @@ -1888,7 +1990,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin if (isset($histo[$key]['socpeopleassigned']) && is_array($histo[$key]['socpeopleassigned']) && count($histo[$key]['socpeopleassigned']) > 0) { $out .= ''; $contact = new Contact($db); - foreach ($histo[$key]['socpeopleassigned'] as $cid => $value) { + foreach ($histo[$key]['socpeopleassigned'] as $cid => $cvalue) { $result = $contact->fetch($cid); if ($result < 0) { @@ -1925,6 +2027,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin $out .= "
    '.$langs->trans("NoRecordFound").'
    \n"; $out .= "\n"; diff --git a/htdocs/core/lib/contact.lib.php b/htdocs/core/lib/contact.lib.php index 8ade2200724..2dbf97d4785 100644 --- a/htdocs/core/lib/contact.lib.php +++ b/htdocs/core/lib/contact.lib.php @@ -57,7 +57,7 @@ function contact_prepare_head(Contact $object) $head[$tab][2] = 'perso'; $tab++; - if (!empty($conf->projet->enabled) && (!empty($user->rights->projet->lire))) { + if (isModEnabled('project') && $user->hasRight('project', 'lire')) { $nbProject = 0; // Enable caching of thirdrparty count projects require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; @@ -70,9 +70,10 @@ function contact_prepare_head(Contact $object) $sql = 'SELECT COUNT(n.rowid) as nb'; $sql .= ' FROM '.MAIN_DB_PREFIX.'projet as n'; $sql .= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact as cc ON (n.rowid = cc.element_id)'; - $sql .= ' WHERE cc.fk_socpeople = '.((int) $object->id); - $sql .= ' AND cc.fk_c_type_contact IN (SELECT rowid FROM '.MAIN_DB_PREFIX.'c_type_contact WHERE element="project" AND source="external")'; - $sql .= ' AND n.entity IN ('.getEntity('project').')'; + $sql .= " WHERE cc.fk_socpeople = ".((int) $object->id); + $sql .= " AND cc.fk_c_type_contact IN (SELECT rowid FROM ".MAIN_DB_PREFIX."c_type_contact WHERE element='project' AND source='external')"; + $sql .= " AND n.entity IN (".getEntity('project').")"; + $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); @@ -92,7 +93,7 @@ function contact_prepare_head(Contact $object) } // Related items - if (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || isModEnabled('facture') || !empty($conf->ficheinter->enabled) || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || isModEnabled('ficheinter') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $head[$tab][0] = DOL_URL_ROOT.'/contact/consumption.php?id='.$object->id; $head[$tab][1] = $langs->trans("Referers"); $head[$tab][2] = 'consumption'; @@ -103,7 +104,7 @@ function contact_prepare_head(Contact $object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $tab, 'contact'); + complete_head_from_modules($conf, $langs, $object, $head, $tab, 'contact', 'add', 'core'); // Notes if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { @@ -147,6 +148,8 @@ function contact_prepare_head(Contact $object) $head[$tab][2] = 'info'; $tab++;*/ + complete_head_from_modules($conf, $langs, $object, $head, $tab, 'contact', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $tab, 'contact', 'remove'); return $head; @@ -170,11 +173,11 @@ function show_contacts_projects($conf, $langs, $db, $object, $backtopage = '', $ $i = -1; - if (!empty($conf->projet->enabled) && $user->rights->projet->lire) { + if (isModEnabled('project') && $user->rights->projet->lire) { $langs->load("projects"); $newcardbutton = ''; - if (!empty($conf->projet->enabled) && $user->rights->projet->creer && empty($nocreatelink)) { + if (isModEnabled('project') && $user->rights->projet->creer && empty($nocreatelink)) { $newcardbutton .= dolGetButtonTitle($langs->trans('AddProject'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/projet/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage)); } @@ -189,10 +192,10 @@ function show_contacts_projects($conf, $langs, $db, $object, $backtopage = '', $ $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_lead_status as cls on p.fk_opp_status = cls.rowid'; $sql .= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact as cc ON (p.rowid = cc.element_id)'; $sql .= ' INNER JOIN '.MAIN_DB_PREFIX.'c_type_contact as ctc ON (ctc.rowid = cc.fk_c_type_contact)'; - $sql .= ' WHERE cc.fk_socpeople = '.((int) $object->id); - $sql .= ' AND ctc.element="project" AND ctc.source="external"'; - $sql .= ' AND p.entity IN ('.getEntity('project').')'; - $sql .= ' ORDER BY p.dateo DESC'; + $sql .= " WHERE cc.fk_socpeople = ".((int) $object->id); + $sql .= " AND ctc.element='project' AND ctc.source='external'"; + $sql .= " AND p.entity IN (".getEntity('project').")"; + $sql .= " ORDER BY p.dateo DESC"; $result = $db->query($sql); if ($result) { diff --git a/htdocs/core/lib/contract.lib.php b/htdocs/core/lib/contract.lib.php index 2d627532010..64040757397 100644 --- a/htdocs/core/lib/contract.lib.php +++ b/htdocs/core/lib/contract.lib.php @@ -55,7 +55,7 @@ function contract_prepare_head(Contrat $object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'contract'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'contract', 'add', 'core'); if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; @@ -88,7 +88,7 @@ function contract_prepare_head(Contrat $object) $h++; $head[$h][0] = DOL_URL_ROOT.'/contrat/agenda.php?id='.$object->id; - $head[$h][1] .= $langs->trans("Events"); + $head[$h][1] = $langs->trans("Events"); if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $head[$h][1] .= '/'; $head[$h][1] .= $langs->trans("Agenda"); @@ -96,6 +96,8 @@ function contract_prepare_head(Contrat $object) $head[$h][2] = 'agenda'; $h++; + complete_head_from_modules($conf, $langs, $object, $head, $h, 'contract', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'contract', 'remove'); return $head; @@ -108,7 +110,11 @@ function contract_prepare_head(Contrat $object) */ function contract_admin_prepare_head() { - global $langs, $conf; + global $langs, $conf, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('contrat'); + $extrafields->fetch_name_optionals_label('contratdet'); $h = 0; $head = array(); @@ -122,18 +128,28 @@ function contract_admin_prepare_head() // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab - complete_head_from_modules($conf, $langs, null, $head, $h, 'contract_admin'); + complete_head_from_modules($conf, $langs, null, $head, $h, 'contract_admin', 'add', 'core'); $head[$h][0] = DOL_URL_ROOT.'/contrat/admin/contract_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['contrat']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes'; $h++; $head[$h][0] = DOL_URL_ROOT.'/contrat/admin/contractdet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); + $nbExtrafields = $extrafields->attributes['contratdet']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributeslines'; $h++; + complete_head_from_modules($conf, $langs, null, $head, $h, 'contract_admin', 'add', 'external'); + complete_head_from_modules($conf, $langs, null, $head, $h, 'contract_admin', 'remove'); return $head; diff --git a/htdocs/core/lib/cron.lib.php b/htdocs/core/lib/cron.lib.php index b4c728fd611..ccce2ec7f94 100644 --- a/htdocs/core/lib/cron.lib.php +++ b/htdocs/core/lib/cron.lib.php @@ -100,13 +100,22 @@ function dol_print_cron_urls() print '
    '; print $langs->trans("URLToLaunchCronJobs").':
    '; $url = $urlwithroot.'/public/cron/cron_run_jobs_by_url.php?'.(empty($conf->global->CRON_KEY) ? '' : 'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login; - print img_picto('', 'globe').' '.$url."
    \n"; - print ' '.$langs->trans("OrToLaunchASpecificJob").'
    '; + print ''; + print '
    '.$langs->trans("OrToLaunchASpecificJob").'
    '; $url = $urlwithroot.'/public/cron/cron_run_jobs_by_url.php?'.(empty($conf->global->CRON_KEY) ? '' : 'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login.'&id=cronjobid'; - print img_picto('', 'globe').' '.$url."
    \n"; + print ''; print '
    '; print '
    '; + print ajax_autoselect("publicurlmember"); + print ajax_autoselect("publicurlmemberall"); + $logintouse = 'firstadmin'; if ($user->admin) { $logintouse = $user->login; @@ -119,7 +128,7 @@ function dol_print_cron_urls() $pathtoscript = $conf->global->MAIN_DOL_SCRIPTS_ROOT; } - $file = $pathtoscript.'/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' [cronjobid]'; + $file = $pathtoscript.'/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY).' '.$logintouse.' [cronjobid]'; print '
    \n"; print '
    '; @@ -136,7 +145,7 @@ function dol_print_cron_urls() if ($linuxlike) { print $langs->trans("CronExplainHowToRunUnix"); print '
    '; - print '
    '; + print '
    '; } else { print $langs->trans("CronExplainHowToRunWin"); } diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 237adc9447a..03223a7b65a 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -121,7 +121,9 @@ function getServerTimeZoneInt($refgmtdate = 'now') function dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforendofmonth = 0) { global $conf; - + if ($duration_unit == 's') { + return $time + ($duration_value); + } if ($duration_value == 0) { return $time; } @@ -167,7 +169,7 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforend } else { $date->add($interval); } - //Change the behavior of PHP over data-interval when the result of this function is Feb 29 (non-leap years), 30 or Feb 31 (php returns March 1, 2 or 3 respectively) + //Change the behavior of PHP over data-interval when the result of this function is Feb 29 (non-leap years), 30 or Feb 31 (so php returns March 1, 2 or 3 respectively) if ($ruleforendofmonth == 1 && $duration_unit == 'm') { $timeyear = dol_print_date($time, '%Y'); $timemonth = dol_print_date($time, '%m'); @@ -207,7 +209,7 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforend */ function convertTime2Seconds($iHours = 0, $iMinutes = 0, $iSeconds = 0) { - $iResult = ($iHours * 3600) + ($iMinutes * 60) + $iSeconds; + $iResult = ((int) $iHours * 3600) + ((int) $iMinutes * 60) + (int) $iSeconds; return $iResult; } @@ -243,6 +245,7 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l if (empty($lengthOfWeek)) { $lengthOfWeek = 7; // 1 week = 7 days } + $nbHbyDay = $lengthOfDay / 3600; if ($format == 'all' || $format == 'allwithouthour' || $format == 'allhour' || $format == 'allhourmin' || $format == 'allhourminsec') { if ((int) $iSecond === 0) { @@ -290,11 +293,11 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l $sTime .= dol_print_date($iSecond, 'hourduration', true); } } elseif ($format == 'allhourminsec') { - return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))).':'.sprintf("%02d", ((int) ($iSecond % 60))); + return sprintf("%02d", ($sWeek * $lengthOfWeek * $nbHbyDay + $sDay * $nbHbyDay + (int) floor($iSecond/3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))).':'.sprintf("%02d", ((int) ($iSecond % 60))); } elseif ($format == 'allhourmin') { - return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))); + return sprintf("%02d", ($sWeek * $lengthOfWeek * $nbHbyDay + $sDay * $nbHbyDay + (int) floor($iSecond/3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600)/60))); } elseif ($format == 'allhour') { - return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))); + return sprintf("%02d", ($sWeek * $lengthOfWeek * $nbHbyDay + $sDay * $nbHbyDay + (int) floor($iSecond/3600))); } } elseif ($format == 'hour') { // only hour part $sTime = dol_print_date($iSecond, '%H', true); @@ -318,24 +321,53 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l } +/** Convert duration to hour + * + * @param int $duration_value Duration value + * @param int $duration_unit Duration unit + * @return int $result + */ +function convertDurationtoHour($duration_value, $duration_unit) +{ + $result = 0; + + if ($duration_unit == 's') $result = $duration_value / 3600; + if ($duration_unit == 'i') $result = $duration_value / 60; + if ($duration_unit == 'h') $result = $duration_value; + if ($duration_unit == 'd') $result = $duration_value * 24; + if ($duration_unit == 'w') $result = $duration_value * 24 * 7; + if ($duration_unit == 'm') $result = $duration_value * 730.484; + if ($duration_unit == 'y') $result = $duration_value * 365 * 24; + + return $result; +} + /** * Generate a SQL string to make a filter into a range (for second of date until last second of date). * This method allows to maje SQL request that will deal correctly the timezone of server. * - * @param string $datefield Name of SQL field where apply sql date filter - * @param int $day_date Day date - * @param int $month_date Month date - * @param int $year_date Year date - * @param int $excludefirstand Exclude first and - * @param mixed $gm False or 0 or 'tzserver' = Input date fields are date info in the server TZ. True or 1 or 'gmt' = Input are date info in GMT TZ. - * Note: In database, dates are always fot the server TZ. - * @return string $sqldate String with SQL filter + * @param string $datefield Name of SQL field where apply sql date filter + * @param int|string $day_date Day date (Can be 0 or '' for filter on a month) + * @param int|string $month_date Month date (Can be 0 or '' for filter on a year) + * @param int|string $year_date Year date + * @param int $excludefirstand Exclude first and + * @param mixed $gm False or 0 or 'tzserver' = Input date fields are date info in the server TZ. True or 1 or 'gmt' = Input are date info in GMT TZ. + * Note: In database, dates are always fot the server TZ. + * @return string $sqldate String with SQL filter */ function dolSqlDateFilter($datefield, $day_date, $month_date, $year_date, $excludefirstand = 0, $gm = false) { global $db; - $sqldate = ""; + $sqldate = ''; + + $day_date = intval($day_date); + $month_date = intval($month_date); + $year_date = intval($year_date); + if ($month_date > 0) { + if ($month_date > 12) { // protection for bad value of month + return " AND 1 = 2"; + } if ($year_date > 0 && empty($day_date)) { $sqldate .= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, $month_date, $gm)); $sqldate .= "' AND '".$db->idate(dol_get_last_day($year_date, $month_date, $gm))."'"; @@ -891,6 +923,15 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', } // Fronleichnam } + + if (in_array('genevafast', $specialdayrule)) { + // Geneva fast in Switzerland (Thursday after the first sunday in September) + $date_1sunsept = strtotime('next thursday', strtotime('next sunday', mktime(0, 0, 0, 9, 1, $annee))); + $jour_1sunsept = date("d", $date_1sunsept); + $mois_1sunsept = date("m", $date_1sunsept); + if ($jour_1sunsept == $jour && $mois_1sunsept == $mois) $ferie=true; + // Geneva fast in Switzerland + } } //print "ferie=".$ferie."\n"; diff --git a/htdocs/core/lib/doc.lib.php b/htdocs/core/lib/doc.lib.php index d1a7cea5d9a..f71c4231038 100644 --- a/htdocs/core/lib/doc.lib.php +++ b/htdocs/core/lib/doc.lib.php @@ -57,7 +57,7 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu if ($idprod) { $prodser->fetch($idprod); // If a predefined product and multilang and on other lang, we renamed label with label translated - if (!empty($conf->global->MAIN_MULTILANGS) && ($outputlangs->defaultlang != $langs->defaultlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && ($outputlangs->defaultlang != $langs->defaultlang)) { if (!empty($prodser->multilangs[$outputlangs->defaultlang]["label"]) && $label == $prodser->label) { $label = $prodser->multilangs[$outputlangs->defaultlang]["label"]; } @@ -78,12 +78,12 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu if ($desc == '(CREDIT_NOTE)' && $line->fk_remise_except) { $discount = new DiscountAbsolute($db); $discount->fetch($line->fk_remise_except); - $sourceref = !empty($discount->discount_type) ? $discount->ref_invoive_supplier_source : $discount->ref_facture_source; + $sourceref = !empty($discount->discount_type) ? $discount->ref_invoice_supplier_source : $discount->ref_facture_source; $libelleproduitservice = $outputlangs->transnoentitiesnoconv("DiscountFromCreditNote", $sourceref); } elseif ($desc == '(DEPOSIT)' && $line->fk_remise_except) { $discount = new DiscountAbsolute($db); $discount->fetch($line->fk_remise_except); - $sourceref = !empty($discount->discount_type) ? $discount->ref_invoive_supplier_source : $discount->ref_facture_source; + $sourceref = !empty($discount->discount_type) ? $discount->ref_invoice_supplier_source : $discount->ref_facture_source; $libelleproduitservice = $outputlangs->transnoentitiesnoconv("DiscountFromDeposit", $sourceref); // Add date of deposit if (!empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) { diff --git a/htdocs/core/lib/doleditor.lib.php b/htdocs/core/lib/doleditor.lib.php index fecf10f48fe..c2e1955d8de 100644 --- a/htdocs/core/lib/doleditor.lib.php +++ b/htdocs/core/lib/doleditor.lib.php @@ -49,12 +49,7 @@ function show_skin($fuser, $edit = 0) $dirskins = array_unique($dirskins); // Now dir_themes=array('/themes') or dir_themes=array('/theme','/mymodule/theme') - $selected_theme = ''; - if (empty($conf->global->FCKEDITOR_SKIN)) { - $selected_theme = 'moono-lisa'; - } else { - $selected_theme = $conf->global->FCKEDITOR_SKIN; - } + $selected_theme = getDolGlobalString('FCKEDITOR_SKIN', 'moono-lisa'); $colspan = 2; diff --git a/htdocs/core/lib/donation.lib.php b/htdocs/core/lib/donation.lib.php index e60b7ee3bc6..52ab3df958b 100644 --- a/htdocs/core/lib/donation.lib.php +++ b/htdocs/core/lib/donation.lib.php @@ -28,7 +28,10 @@ */ function donation_admin_prepare_head() { - global $langs, $conf; + global $langs, $conf, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('don'); $h = 0; $head = array(); @@ -46,6 +49,10 @@ function donation_admin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/don/admin/donation_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['don']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes'; $h++; @@ -76,7 +83,7 @@ function donation_prepare_head($object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'donation'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'donation', 'add', 'core'); require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; @@ -111,6 +118,8 @@ function donation_prepare_head($object) $head[$h][2] = 'info'; $h++; + complete_head_from_modules($conf, $langs, $object, $head, $h, 'donation', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'donation', 'remove'); return $head; diff --git a/htdocs/core/lib/ecm.lib.php b/htdocs/core/lib/ecm.lib.php index 97eeffd4337..2a9b9a766a3 100644 --- a/htdocs/core/lib/ecm.lib.php +++ b/htdocs/core/lib/ecm.lib.php @@ -1,5 +1,6 @@ + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +18,9 @@ */ /** - * \file htdocs/core/lib/ecm.lib.php - * \brief Ensemble de fonctions de base pour le module ecm - * \ingroup ecm + * \file htdocs/core/lib/ecm.lib.php + * \brief Ensemble de fonctions de base pour le module ecm + * \ingroup ecm */ @@ -32,25 +33,41 @@ function ecm_prepare_dasboard_head($object) { global $langs, $conf, $user, $form; - global $helptext1, $helptext2; $h = 0; $head = array(); + + $showmediasection = 0; + if (isModEnabled('mailing') || isModEnabled('website')) { + $showmediasection = 1; + } + $helptext = $langs->trans("ECMAreaDesc").'
    '; - $helptext .= $langs->trans("ECMAreaDesc2"); + $helptext .= $langs->trans("ECMAreaDesc2a").'
    '; + $helptext .= $langs->trans("ECMAreaDesc2b"); + if ($showmediasection) { + $helptext .= '
    '.$langs->trans("ECMAreaDesc3"); + } $head[$h][0] = DOL_URL_ROOT.'/ecm/index.php'; $head[$h][1] = $langs->trans("ECMSectionsManual").$form->textwithpicto('', $helptext, 1, 'info', '', 0, 3); $head[$h][2] = 'index'; $h++; - if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { + if (empty($conf->global->ECM_AUTO_TREE_HIDEN)) { $head[$h][0] = DOL_URL_ROOT.'/ecm/index_auto.php'; $head[$h][1] = $langs->trans("ECMSectionsAuto").$form->textwithpicto('', $helptext, 1, 'info', '', 0, 3); $head[$h][2] = 'index_auto'; $h++; } + if ($showmediasection && getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { + $head[$h][0] = DOL_URL_ROOT.'/ecm/index_medias.php?file_manager=1'; + $head[$h][1] = $langs->trans("ECMSectionsMedias").$form->textwithpicto('', $helptext, 1, 'info', '', 0, 3); + $head[$h][2] = 'index_medias'; + $h++; + } + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab @@ -160,7 +177,12 @@ function ecm_prepare_head_fm($object) */ function ecm_admin_prepare_head() { - global $langs, $conf; + global $langs, $conf, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('ecm_files'); + $extrafields->fetch_name_optionals_label('ecm_directories'); + $langs->load("ecm"); $h = 0; @@ -173,11 +195,19 @@ function ecm_admin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/admin/ecm_files_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsEcmFiles"); + $nbExtrafields = $extrafields->attributes['ecm_files']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes_ecm_files'; $h++; $head[$h][0] = DOL_URL_ROOT.'/admin/ecm_directories_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsEcmDirectories"); + $nbExtrafields = $extrafields->attributes['ecm_directories']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes_ecm_directories'; $h++; diff --git a/htdocs/core/lib/expedition.lib.php b/htdocs/core/lib/expedition.lib.php index 99118197174..21076122903 100644 --- a/htdocs/core/lib/expedition.lib.php +++ b/htdocs/core/lib/expedition.lib.php @@ -35,7 +35,7 @@ function expedition_prepare_head(Expedition $object) { global $langs, $conf, $user; - if (!empty($conf->expedition->enabled)) { + if (isModEnabled("expedition")) { $langs->load("sendings"); } $langs->load("orders"); @@ -73,57 +73,73 @@ function expedition_prepare_head(Expedition $object) */ function expedition_admin_prepare_head() { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; $langs->load("sendings"); + $extrafields = new ExtraFields($db); + $h = 0; $head = array(); + /* $head[$h][0] = DOL_URL_ROOT."/admin/confexped.php"; $head[$h][1] = $langs->trans("Setup"); $head[$h][2] = 'general'; $h++; - + */ if (!empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { + $extrafields->fetch_name_optionals_label('expedition'); + $extrafields->fetch_name_optionals_label('expeditiondet'); + $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php"; $head[$h][1] = $langs->trans("Shipment"); $head[$h][2] = 'shipment'; $h++; - } - - if (!empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { $head[$h][0] = DOL_URL_ROOT.'/admin/expedition_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['expedition']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes_shipment'; $h++; - } - if (!empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { $head[$h][0] = DOL_URL_ROOT.'/admin/expeditiondet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); + $nbExtrafields = $extrafields->attributes['expeditiondet']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributeslines_shipment'; $h++; } - if (!empty($conf->global->MAIN_SUBMODULE_DELIVERY)) { - $head[$h][0] = DOL_URL_ROOT."/admin/delivery.php"; - $head[$h][1] = $langs->trans("Receivings"); - $head[$h][2] = 'receivings'; - $h++; - } + $head[$h][0] = DOL_URL_ROOT."/admin/delivery.php"; + $head[$h][1] = $langs->trans("Receivings"); + $head[$h][2] = 'receivings'; + $h++; if (!empty($conf->global->MAIN_SUBMODULE_DELIVERY)) { + $extrafields->fetch_name_optionals_label('delivery'); + $extrafields->fetch_name_optionals_label('deliverydet'); + $head[$h][0] = DOL_URL_ROOT.'/admin/delivery_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['delivery']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes_receivings'; $h++; - } - if (!empty($conf->global->MAIN_SUBMODULE_DELIVERY)) { $head[$h][0] = DOL_URL_ROOT.'/admin/deliverydet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); + $nbExtrafields = $extrafields->attributes['deliverydet']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributeslines_receivings'; $h++; } diff --git a/htdocs/core/lib/expensereport.lib.php b/htdocs/core/lib/expensereport.lib.php index 3287227a05d..ae9ca936c47 100644 --- a/htdocs/core/lib/expensereport.lib.php +++ b/htdocs/core/lib/expensereport.lib.php @@ -1,5 +1,6 @@ + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,7 +44,7 @@ function expensereport_prepare_head($object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'expensereport'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'expensereport', 'add', 'core'); require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; @@ -80,6 +81,8 @@ function expensereport_prepare_head($object) $head[$h][2] = 'info'; $h++; + complete_head_from_modules($conf, $langs, $object, $head, $h, 'donation', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'expensereport', 'remove'); return $head; @@ -128,11 +131,14 @@ function payment_expensereport_prepare_head(PaymentExpenseReport $object) */ function expensereport_admin_prepare_head() { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; $h = 0; $head = array(); + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('expensereport'); + $h = 0; $head[$h][0] = DOL_URL_ROOT."/admin/expensereport.php"; @@ -160,6 +166,10 @@ function expensereport_admin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/admin/expensereport_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['expensereport']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes'; $h++; diff --git a/htdocs/core/lib/fichinter.lib.php b/htdocs/core/lib/fichinter.lib.php index 6bfb7f717de..87c9ce4a3fc 100644 --- a/htdocs/core/lib/fichinter.lib.php +++ b/htdocs/core/lib/fichinter.lib.php @@ -61,7 +61,7 @@ function fichinter_prepare_head($object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'intervention'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'intervention', 'add', 'core'); // Tab to link resources if (isModEnabled('resource')) { @@ -125,6 +125,8 @@ function fichinter_prepare_head($object) $head[$h][2] = 'info'; $h++; + complete_head_from_modules($conf, $langs, $object, $head, $h, 'intervention', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'intervention', 'remove'); return $head; @@ -137,7 +139,11 @@ function fichinter_prepare_head($object) */ function fichinter_admin_prepare_head() { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('fichinter'); + $extrafields->fetch_name_optionals_label('fichinterdet'); $h = 0; $head = array(); @@ -157,19 +163,25 @@ function fichinter_admin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/fichinter/admin/fichinter_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['fichinter']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributes'; $h++; $head[$h][0] = DOL_URL_ROOT.'/fichinter/admin/fichinterdet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); + $nbExtrafields = $extrafields->attributes['fichinterdet']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'attributesdet'; $h++; - - complete_head_from_modules($conf, $langs, null, $head, $h, 'fichinter_admin', 'remove'); - return $head; + return $head; } /** diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 76948308c70..ad7d7cecfa5 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -54,10 +54,11 @@ function dol_basename($pathfile) * @param int $nohook Disable all hooks * @param string $relativename For recursive purpose only. Must be "" at first call. * @param string $donotfollowsymlinks Do not follow symbolic links + * @param string $nbsecondsold Only files older than $nbsecondsold * @return array Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file',...) * @see dol_dir_list_in_database() */ -function dol_dir_list($path, $types = "all", $recursive = 0, $filter = "", $excludefilter = null, $sortcriteria = "name", $sortorder = SORT_ASC, $mode = 0, $nohook = 0, $relativename = "", $donotfollowsymlinks = 0) +function dol_dir_list($path, $types = "all", $recursive = 0, $filter = "", $excludefilter = null, $sortcriteria = "name", $sortorder = SORT_ASC, $mode = 0, $nohook = 0, $relativename = "", $donotfollowsymlinks = 0, $nbsecondsold = 0) { global $db, $hookmanager; global $object; @@ -67,13 +68,14 @@ function dol_dir_list($path, $types = "all", $recursive = 0, $filter = "", $excl //print 'xxx'."files.lib.php::dol_dir_list path=".$path." types=".$types." recursive=".$recursive." filter=".$filter." excludefilter=".json_encode($excludefilter); } - $loaddate = ($mode == 1 || $mode == 2) ?true:false; - $loadsize = ($mode == 1 || $mode == 3) ?true:false; - $loadperm = ($mode == 1 || $mode == 4) ?true:false; + $loaddate = ($mode == 1 || $mode == 2 || $nbsecondsold) ? true : false; + $loadsize = ($mode == 1 || $mode == 3) ?true : false; + $loadperm = ($mode == 1 || $mode == 4) ?true : false; // Clean parameters $path = preg_replace('/([\\/]+)$/i', '', $path); $newpath = dol_osencode($path); + $now = dol_now(); $reshook = 0; $file_list = array(); @@ -170,7 +172,7 @@ function dol_dir_list($path, $types = "all", $recursive = 0, $filter = "", $excl if ($recursive > 0) { if (empty($donotfollowsymlinks) || !is_link($path."/".$file)) { //var_dump('eee '. $path."/".$file. ' '.is_dir($path."/".$file).' '.is_link($path."/".$file)); - $file_list = array_merge($file_list, dol_dir_list($path."/".$file, $types, $recursive + 1, $filter, $excludefilter, $sortcriteria, $sortorder, $mode, $nohook, ($relativename != '' ? $relativename.'/' : '').$file, $donotfollowsymlinks)); + $file_list = array_merge($file_list, dol_dir_list($path."/".$file, $types, $recursive + 1, $filter, $excludefilter, $sortcriteria, $sortorder, $mode, $nohook, ($relativename != '' ? $relativename.'/' : '').$file, $donotfollowsymlinks, $nbsecondsold)); } } } elseif (!$isdir && (($types == "files") || ($types == "all"))) { @@ -183,18 +185,20 @@ function dol_dir_list($path, $types = "all", $recursive = 0, $filter = "", $excl } if (!$filter || preg_match('/'.$filter.'/i', $file)) { // We do not search key $filter into $path, only into $file - preg_match('/([^\/]+)\/[^\/]+$/', $path.'/'.$file, $reg); - $level1name = (isset($reg[1]) ? $reg[1] : ''); - $file_list[] = array( - "name" => $file, - "path" => $path, - "level1name" => $level1name, - "relativename" => ($relativename ? $relativename.'/' : '').$file, - "fullname" => $path.'/'.$file, - "date" => $filedate, - "size" => $filesize, - "type" => 'file' - ); + if (empty($nbsecondsold) || $filedate <= ($now - $nbsecondsold)) { + preg_match('/([^\/]+)\/[^\/]+$/', $path.'/'.$file, $reg); + $level1name = (isset($reg[1]) ? $reg[1] : ''); + $file_list[] = array( + "name" => $file, + "path" => $path, + "level1name" => $level1name, + "relativename" => ($relativename ? $relativename.'/' : '').$file, + "fullname" => $path.'/'.$file, + "date" => $filedate, + "size" => $filesize, + "type" => 'file' + ); + } } } } @@ -315,10 +319,10 @@ function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir) // TODO Remove this when PRODUCT_USE_OLD_PATH_FOR_PHOTO will be removed global $modulepart; - if ($modulepart == 'produit' && !empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if ($modulepart == 'produit' && getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { global $object; if (!empty($object->id)) { - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { $upload_dirold = $conf->product->multidir_output[$object->entity].'/'.substr(substr("000".$object->id, -2), 1, 1).'/'.substr(substr("000".$object->id, -2), 0, 1).'/'.$object->id."/photos"; } else { $upload_dirold = $conf->service->multidir_output[$object->entity].'/'.substr(substr("000".$object->id, -2), 1, 1).'/'.substr(substr("000".$object->id, -2), 0, 1).'/'.$object->id."/photos"; @@ -397,8 +401,8 @@ function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir) /** * Fast compare of 2 files identified by their properties ->name, ->date and ->size * - * @param string $a File 1 - * @param string $b File 2 + * @param object $a File 1 + * @param object $b File 2 * @return int 1, 0, 1 */ function dol_compare_file($a, $b) @@ -637,6 +641,12 @@ function dolReplaceInFile($srcfile, $arrayreplacement, $destfile = '', $newmask return 0; } + $srcexists = dol_is_file($srcfile); + if (!$srcexists) { + dol_syslog("files.lib.php::dolReplaceInFile failed to read src file", LOG_WARNING); + return -3; + } + $tmpdestfile = $destfile.'.tmp'; $newpathofsrcfile = dol_osencode($srcfile); @@ -755,10 +765,11 @@ function dol_copy($srcfile, $destfile, $newmask = 0, $overwriteifexists = 1) * @param int $overwriteifexists Overwrite file if exists (1 by default) * @param array $arrayreplacement Array to use to replace filenames with another one during the copy (works only on file names, not on directory names). * @param int $excludesubdir 0=Do not exclude subdirectories, 1=Exclude subdirectories, 2=Exclude subdirectories if name is not a 2 chars (used for country codes subdirectories). + * @param array $excludefileext Exclude some file extensions * @return int <0 if error, 0 if nothing done (all files already exists and overwriteifexists=0), >0 if OK * @see dol_copy() */ -function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayreplacement = null, $excludesubdir = 0) +function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayreplacement = null, $excludesubdir = 0, $excludefileext = null) { global $conf; @@ -802,10 +813,19 @@ function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayrep } } //var_dump("xxx dolCopyDir $srcfile/$file, $destfile/$file, $newmask, $overwriteifexists"); - $tmpresult = dolCopyDir($srcfile."/".$file, $destfile."/".$newfile, $newmask, $overwriteifexists, $arrayreplacement, $excludesubdir); + $tmpresult = dolCopyDir($srcfile."/".$file, $destfile."/".$newfile, $newmask, $overwriteifexists, $arrayreplacement, $excludesubdir, $excludefileext); } } else { $newfile = $file; + + if (is_array($excludefileext)) { + $extension = pathinfo($file, PATHINFO_EXTENSION); + if (in_array($extension, $excludefileext)) { + //print "We exclude the file ".$file." because its extension is inside list ".join(', ', $excludefileext); exit; + continue; + } + } + // Replace destination filename with a new one if (is_array($arrayreplacement)) { foreach ($arrayreplacement as $key => $val) { @@ -1251,7 +1271,6 @@ function dol_delete_file($file, $disableglob = 0, $nophperrors = 0, $nohook = 0, $hookmanager->initHooks(array('fileslib')); $parameters = array( - 'GET' => $_GET, 'file' => $file, 'disableglob'=> $disableglob, 'nophperrors' => $nophperrors @@ -1359,7 +1378,7 @@ function dol_delete_dir($dir, $nophperrors = 0) // Security: // We refuse transversal using .. and pipes into filenames. if (preg_match('/\.\./', $dir) || preg_match('/[<>|]/', $dir)) { - dol_syslog("Refused to delete dir ".$dir, LOG_WARNING); + dol_syslog("Refused to delete dir ".$dir.' (contains invalid char sequence)', LOG_WARNING); return false; } @@ -1443,7 +1462,7 @@ function dol_delete_preview($object) } elseif ($object->element == 'invoice_supplier') { $dir = $conf->fournisseur->facture->dir_output; } elseif ($object->element == 'project') { - $dir = $conf->projet->dir_output; + $dir = $conf->project->dir_output; } elseif ($object->element == 'shipping') { $dir = $conf->expedition->dir_output.'/sending'; } elseif ($object->element == 'delivery') { @@ -1525,7 +1544,7 @@ function dol_meta_create($object) } elseif ($object->element == 'invoice_supplier') { $dir = $conf->fournisseur->dir_output.'/facture'; } elseif ($object->element == 'project') { - $dir = $conf->projet->dir_output; + $dir = $conf->project->dir_output; } elseif ($object->element == 'shipping') { $dir = $conf->expedition->dir_output.'/sending'; } elseif ($object->element == 'delivery') { @@ -1548,7 +1567,9 @@ function dol_meta_create($object) } if (is_dir($dir)) { - $nblines = count($object->lines); + if (is_countable($object->lines) && count($object->lines) > 0) { + $nblines = count($object->lines); + } $client = $object->thirdparty->name." ".$object->thirdparty->address." ".$object->thirdparty->zip." ".$object->thirdparty->town; $meta = "REFERENCE=\"".$object->ref."\" DATE=\"" . dol_print_date($object->date, '')."\" @@ -1632,13 +1653,19 @@ function dol_init_file_process($pathtoscan = '', $trackid = '') */ function dol_add_file_process($upload_dir, $allowoverwrite = 0, $donotupdatesession = 0, $varfiles = 'addedfile', $savingdocmask = '', $link = null, $trackid = '', $generatethumbs = 1, $object = null) { + global $db, $user, $conf, $langs; $res = 0; if (!empty($_FILES[$varfiles])) { // For view $_FILES[$varfiles]['error'] dol_syslog('dol_add_file_process upload_dir='.$upload_dir.' allowoverwrite='.$allowoverwrite.' donotupdatesession='.$donotupdatesession.' savingdocmask='.$savingdocmask, LOG_DEBUG); - + $maxfilesinform = getDolGlobalInt("MAIN_SECURITY_MAX_ATTACHMENT_ON_FORMS", 10); + if (is_array($_FILES[$varfiles]["name"]) && count($_FILES[$varfiles]["name"]) > $maxfilesinform) { + $langs->load("errors"); // key must be loaded because we can't rely on loading during output, we need var substitution to be done now. + setEventMessages($langs->trans("ErrorTooMuchFileInForm", $maxfilesinform), null, "errors"); + return -1; + } $result = dol_mkdir($upload_dir); // var_dump($result);exit; if ($result >= 0) { @@ -1717,12 +1744,14 @@ function dol_add_file_process($upload_dir, $allowoverwrite = 0, $donotupdatesess // Update index table of files (llx_ecm_files) if ($donotupdatesession == 1) { - $result = addFileIntoDatabaseIndex($upload_dir, basename($destfile).($resupload == 2 ? '.noexe' : ''), $TFile['name'][$i], 'uploaded', 0, $object); + $sharefile = 0; + if ($TFile['type'][$i] == 'application/pdf' && strpos($_SERVER["REQUEST_URI"], 'product') !== false && !empty($conf->global->PRODUCT_ALLOW_EXTERNAL_DOWNLOAD)) $sharefile = 1; + $result = addFileIntoDatabaseIndex($upload_dir, basename($destfile).($resupload == 2 ? '.noexe' : ''), $TFile['name'][$i], 'uploaded', $sharefile, $object); if ($result < 0) { if ($allowoverwrite) { // Do not show error message. We can have an error due to DB_ERROR_RECORD_ALREADY_EXISTS } else { - setEventMessages('WarningFailedToAddFileIntoDatabaseIndex', '', 'warnings'); + setEventMessages('WarningFailedToAddFileIntoDatabaseIndex', null, 'warnings'); } } } @@ -1962,7 +1991,6 @@ function deleteFilesIntoDatabaseIndex($dir, $file, $mode = 'uploaded') */ function dol_convert_file($fileinput, $ext = 'png', $fileoutput = '', $page = '') { - global $langs; if (class_exists('Imagick')) { $image = new Imagick(); try { @@ -2018,6 +2046,7 @@ function dol_convert_file($fileinput, $ext = 'png', $fileoutput = '', $page = '' * @param string $mode 'gz' or 'bz' or 'zip' * @param string $errorstring Error string * @return int <0 if KO, >0 if OK + * @see dol_uncompress(), dol_compress_dir() */ function dol_compress_file($inputfile, $outputfile, $mode = "gz", &$errorstring = null) { @@ -2144,6 +2173,7 @@ function dol_compress_file($inputfile, $outputfile, $mode = "gz", &$errorstring * @param string $inputfile File to uncompress * @param string $outputdir Target dir name * @return array array('error'=>'Error code') or array() if no error + * @see dol_compress_file(), dol_compress_dir() */ function dol_uncompress($inputfile, $outputdir) { @@ -2267,10 +2297,14 @@ function dol_uncompress($inputfile, $outputdir) * @param string $mode 'zip' * @param string $excludefiles A regex pattern. For example: '/\.log$|\/temp\//' * @param string $rootdirinzip Add a root dir level in zip file + * @param string $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666' * @return int <0 if KO, >0 if OK + * @see dol_uncompress(), dol_compress_file() */ -function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles = '', $rootdirinzip = '') +function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles = '', $rootdirinzip = '', $newmask = 0) { + global $conf; + $foundhandler = 0; dol_syslog("Try to zip dir ".$inputdir." into ".$outputfile." mode=".$mode); @@ -2299,7 +2333,8 @@ function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles = return 1; } else*/ - //if (class_exists('ZipArchive') && ! empty($conf->global->MAIN_USE_ZIPARCHIVE_FOR_ZIP_COMPRESS)) + //if (class_exists('ZipArchive') && !empty($conf->global->MAIN_USE_ZIPARCHIVE_FOR_ZIP_COMPRESS)) + if (class_exists('ZipArchive')) { $foundhandler = 1; @@ -2344,6 +2379,16 @@ function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles = // Zip archive will be created only after closing object $zip->close(); + if (empty($newmask) && !empty($conf->global->MAIN_UMASK)) { + $newmask = $conf->global->MAIN_UMASK; + } + if (empty($newmask)) { // This should no happen + dol_syslog("Warning: dol_copy called with empty value for newmask and no default value defined", LOG_WARNING); + $newmask = '0664'; + } + + @chmod($outputfile, octdec($newmask)); + return 1; } } @@ -2359,7 +2404,7 @@ function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles = $langs->load("errors"); dol_syslog("Failed to open file ".$outputfile, LOG_ERR); dol_syslog($e->getMessage(), LOG_ERR); - $errormsg = $langs->trans("ErrorFailedToWriteInDir", $outputfile); + $errormsg = $langs->trans("ErrorFailedToBuildArchive", $outputfile).' - '.$e->getMessage(); return -1; } } @@ -2374,7 +2419,7 @@ function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles = * @param array $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview.*\.png)$','^\.')). This regex value must be escaped for '/', since this char is used for preg_match function * @param int $nohook Disable all hooks * @param int $mode 0=Return array minimum keys loaded (faster), 1=Force all keys like date and size to be loaded (slower), 2=Force load of date only, 3=Force load of size only - * @return string Full path to most recent file + * @return array Array with properties (full path, date, ...) of to most recent file */ function dol_most_recent_file($dir, $regexfilter = '', $excludefilter = array('(\.meta|_preview.*\.png)$', '^\.'), $nohook = false, $mode = '') { @@ -2409,7 +2454,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, return 'ErrorBadParameter'; } if (empty($entity)) { - if (empty($conf->multicompany->enabled)) { + if (!isModEnabled('multicompany')) { $entity = 1; } else { $entity = 0; @@ -2435,7 +2480,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, if (empty($refname)) { $refname = basename(dirname($original_file)."/"); if ($refname == 'thumbs') { - // If we get the thumbns directory, we must go one step higher. For example original_file='10/thumbs/myfile_small.jpg' -> refname='10' + // If we get the thumbs directory, we must go one step higher. For example original_file='10/thumbs/myfile_small.jpg' -> refname='10' $refname = basename(dirname(dirname($original_file))."/"); } } @@ -2482,14 +2527,37 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $accessallowed = 1; $original_file = $conf->mycompany->dir_output.'/'.$original_file; } elseif ($modulepart == 'userphoto' && !empty($conf->user->dir_output)) { - // Wrapping for users photos + // Wrapping for users photos (user photos are allowed to any connected users) $accessallowed = 0; if (preg_match('/^\d+\/photos\//', $original_file)) { $accessallowed = 1; } $original_file = $conf->user->dir_output.'/'.$original_file; + } elseif ($modulepart == 'userphotopublic' && !empty($conf->user->dir_output)) { + // Wrapping for users photos that were set to public by their owner (public user photos can be read with the public link and securekey) + $accessok = false; + $reg = array(); + if (preg_match('/^(\d+)\/photos\//', $original_file, $reg)) { + if ($reg[0]) { + $tmpobject = new User($db); + $tmpobject->fetch($reg[0], '', '', 1); + if (getDolUserInt('USER_ENABLE_PUBLIC', 0, $tmpobject)) { + $securekey = GETPOST('securekey', 'alpha', 1); + // Security check + global $dolibarr_main_instance_unique_id; + $encodedsecurekey = dol_hash($dolibarr_main_instance_unique_id.'uservirtualcard'.$tmpobject->id.'-'.$tmpobject->login, 'md5'); + if ($encodedsecurekey == $securekey) { + $accessok = true; + } + } + } + } + if ($accessok) { + $accessallowed = 1; + } + $original_file = $conf->user->dir_output.'/'.$original_file; } elseif (($modulepart == 'companylogo') && !empty($conf->mycompany->dir_output)) { - // Wrapping for users logos + // Wrapping for company logos (company logos are allowed to anyboby, they are public) $accessallowed = 1; $original_file = $conf->mycompany->dir_output.'/logos/'.$original_file; } elseif ($modulepart == 'memberphoto' && !empty($conf->adherent->dir_output)) { @@ -2500,14 +2568,14 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, } $original_file = $conf->adherent->dir_output.'/'.$original_file; } elseif ($modulepart == 'apercufacture' && !empty($conf->facture->multidir_output[$entity])) { - // Wrapping pour les apercu factures + // Wrapping for invoices (user need permission to read invoices) if ($fuser->rights->facture->{$lire}) { $accessallowed = 1; } $original_file = $conf->facture->multidir_output[$entity].'/'.$original_file; } elseif ($modulepart == 'apercupropal' && !empty($conf->propal->multidir_output[$entity])) { // Wrapping pour les apercu propal - if ($fuser->rights->propale->{$lire}) { + if ($fuser->rights->propal->{$lire}) { $accessallowed = 1; } $original_file = $conf->propal->multidir_output[$entity].'/'.$original_file; @@ -2579,7 +2647,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $original_file = $conf->expensereport->dir_output.'/'.$original_file; } elseif ($modulepart == 'propalstats' && !empty($conf->propal->multidir_temp[$entity])) { // Wrapping pour les images des stats propales - if ($fuser->rights->propale->{$lire}) { + if ($fuser->rights->propal->{$lire}) { $accessallowed = 1; } $original_file = $conf->propal->multidir_temp[$entity].'/'.$original_file; @@ -2653,11 +2721,11 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, } $original_file = $conf->agenda->dir_output.'/'.$original_file; } elseif ($modulepart == 'category' && !empty($conf->categorie->multidir_output[$entity])) { - // Wrapping for categories + // Wrapping for categories (categories are allowed if user has permission to read categories or to work on TakePos) if (empty($entity) || empty($conf->categorie->multidir_output[$entity])) { return array('accessallowed'=>0, 'error'=>'Value entity must be provided'); } - if ($fuser->rights->categorie->{$lire} || $fuser->rights->takepos->run) { + if ($fuser->hasRight("categorie", $lire) || $fuser->hasRight("takepos", "run")) { $accessallowed = 1; } $original_file = $conf->categorie->multidir_output[$entity].'/'.$original_file; @@ -2800,7 +2868,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, //$sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."fichinter WHERE ref='".$db->escape($refname)."' AND entity=".$conf->entity; } elseif (($modulepart == 'propal' || $modulepart == 'propale') && !empty($conf->propal->multidir_output[$entity])) { // Wrapping pour les propales - if ($fuser->rights->propale->{$lire} || preg_match('/^specimen/i', $original_file)) { + if ($fuser->rights->propal->{$lire} || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; } $original_file = $conf->propal->multidir_output[$entity].'/'.$original_file; @@ -2812,7 +2880,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, } $original_file = $conf->commande->multidir_output[$entity].'/'.$original_file; $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."commande WHERE ref='".$db->escape($refname)."' AND entity IN (".getEntity('order').")"; - } elseif ($modulepart == 'project' && !empty($conf->projet->dir_output)) { + } elseif ($modulepart == 'project' && !empty($conf->project->dir_output)) { // Wrapping pour les projets if ($fuser->rights->projet->{$lire} || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; @@ -2824,9 +2892,9 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $accessallowed = checkUserAccessToObject($user, array('projet'), $tmpproject->id, 'projet&project', '', '', 'rowid', ''); } } - $original_file = $conf->projet->dir_output.'/'.$original_file; + $original_file = $conf->project->dir_output.'/'.$original_file; $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."projet WHERE ref='".$db->escape($refname)."' AND entity IN (".getEntity('project').")"; - } elseif ($modulepart == 'project_task' && !empty($conf->projet->dir_output)) { + } elseif ($modulepart == 'project_task' && !empty($conf->project->dir_output)) { if ($fuser->rights->projet->{$lire} || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; // If we known $id of project, call checkUserAccessToObject to check permission on properties and contact of project @@ -2837,7 +2905,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $accessallowed = checkUserAccessToObject($user, array('projet_task'), $tmptask->id, 'projet_task&project', '', '', 'rowid', ''); } } - $original_file = $conf->projet->dir_output.'/'.$original_file; + $original_file = $conf->project->dir_output.'/'.$original_file; $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."projet WHERE ref='".$db->escape($refname)."' AND entity IN (".getEntity('project').")"; } elseif (($modulepart == 'commande_fournisseur' || $modulepart == 'order_supplier') && !empty($conf->fournisseur->commande->dir_output)) { // Wrapping pour les commandes fournisseurs @@ -2909,9 +2977,9 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, if (($fuser->rights->produit->{$lire} || $fuser->rights->service->{$lire}) || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; } - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { $original_file = $conf->product->multidir_output[$entity].'/'.$original_file; - } elseif (!empty($conf->service->enabled)) { + } elseif (isModEnabled("service")) { $original_file = $conf->service->multidir_output[$entity].'/'.$original_file; } } elseif ($modulepart == 'product_batch' || $modulepart == 'produitlot') { @@ -2922,7 +2990,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, if (($fuser->rights->produit->{$lire} ) || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $original_file = $conf->productbatch->multidir_output[$entity].'/'.$original_file; } } elseif ($modulepart == 'movement' || $modulepart == 'mouvement') { @@ -2933,7 +3001,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, if (($fuser->rights->stock->{$lire} || $fuser->rights->stock->movement->{$lire} || $fuser->rights->stock->mouvement->{$lire}) || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $original_file = $conf->stock->multidir_output[$entity].'/movement/'.$original_file; } } elseif ($modulepart == 'contract' && !empty($conf->contrat->multidir_output[$entity])) { @@ -2955,7 +3023,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $accessallowed = 1; } $original_file = $conf->resource->dir_output.'/'.$original_file; - } elseif ($modulepart == 'remisecheque' && !empty($conf->bank->dir_output)) { + } elseif (($modulepart == 'remisecheque' || $modulepart == 'chequereceipt') && !empty($conf->bank->dir_output)) { // Wrapping pour les remises de cheques if ($fuser->rights->banque->{$lire} || preg_match('/^specimen/i', $original_file)) { $accessallowed = 1; @@ -2977,6 +3045,10 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, // Wrapping for import module $accessallowed = $user->rights->import->run; $original_file = $conf->import->dir_temp.'/'.$original_file; + } elseif ($modulepart == 'recruitment' && !empty($conf->recruitment->dir_output)) { + // Wrapping for recruitment module + $accessallowed = $user->rights->recruitment->recruitmentjobposition->read; + $original_file = $conf->recruitment->dir_output.'/'.$original_file; } elseif ($modulepart == 'editor' && !empty($conf->fckeditor->dir_output)) { // Wrapping for wysiwyg editor $accessallowed = 1; diff --git a/htdocs/core/lib/fourn.lib.php b/htdocs/core/lib/fourn.lib.php index 2fd4ce3799a..c658916e359 100644 --- a/htdocs/core/lib/fourn.lib.php +++ b/htdocs/core/lib/fourn.lib.php @@ -3,6 +3,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2006 Marc Barilley * Copyright (C) 2011-2013 Philippe Grand + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -58,7 +59,7 @@ function facturefourn_prepare_head($object) if (!empty($conf->paymentbybanktransfer->enabled)) { $nbStandingOrders = 0; $sql = "SELECT COUNT(pfd.rowid) as nb"; - $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; + $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pfd"; $sql .= " WHERE pfd.fk_facture_fourn = ".((int) $object->id); $sql .= " AND pfd.ext_payment_id IS NULL"; $resql = $db->query($sql); @@ -83,7 +84,7 @@ function facturefourn_prepare_head($object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_invoice'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_invoice', 'add', 'core'); if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; @@ -120,6 +121,8 @@ function facturefourn_prepare_head($object) $head[$h][2] = 'info'; $h++; + complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_invoice', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_invoice', 'remove'); return $head; @@ -155,7 +158,7 @@ function ordersupplier_prepare_head(CommandeFournisseur $object) $h++; } - if (!empty($conf->stock->enabled) && (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))) { + if (isModEnabled('stock') && (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))) { $langs->load("stocks"); $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/dispatch.php?id='.$object->id; $head[$h][1] = $langs->trans("OrderDispatch"); @@ -176,7 +179,10 @@ function ordersupplier_prepare_head(CommandeFournisseur $object) $sumQtyAllreadyDispatched = $sumQtyAllreadyDispatched + $dispachedLines[$line]['qty']; } for ($line = 0 ; $line < $nbLinesOrdered; $line++) { - $sumQtyOrdered = $sumQtyOrdered + $object->lines[$line]->qty; + //If line is a product of conf to manage stocks for services + if ($object->lines[$line]->product_type == 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { + $sumQtyOrdered = $sumQtyOrdered + $object->lines[$line]->qty; + } } $head[$h][1] .= ''.price2num($sumQtyAllreadyDispatched, 'MS').' / '.price2num($sumQtyOrdered, 'MS').''; } @@ -189,7 +195,7 @@ function ordersupplier_prepare_head(CommandeFournisseur $object) // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_order'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_order', 'add', 'core'); if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; @@ -222,14 +228,18 @@ function ordersupplier_prepare_head(CommandeFournisseur $object) $h++; $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/info.php?id='.$object->id; - $head[$h][1] .= $langs->trans("Events"); + $head[$h][1] = $langs->trans("Events"); if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $head[$h][1] .= '/'; $head[$h][1] .= $langs->trans("Agenda"); } $head[$h][2] = 'info'; $h++; + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_order', 'add', 'external'); + complete_head_from_modules($conf, $langs, $object, $head, $h, 'supplier_order', 'remove'); + return $head; } @@ -240,7 +250,13 @@ function ordersupplier_prepare_head(CommandeFournisseur $object) */ function supplierorder_admin_prepare_head() { - global $langs, $conf, $user; + global $langs, $conf, $user, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('commande_fournisseur'); + $extrafields->fetch_name_optionals_label('commande_fournisseurdet'); + $extrafields->fetch_name_optionals_label('facture_fourn'); + $extrafields->fetch_name_optionals_label('facture_fourn_det'); $h = 0; $head = array(); @@ -264,21 +280,37 @@ function supplierorder_admin_prepare_head() $head[$h][0] = DOL_URL_ROOT.'/admin/supplierorder_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsSupplierOrders"); + $nbExtrafields = $extrafields->attributes['commande_fournisseur']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'supplierorder'; $h++; $head[$h][0] = DOL_URL_ROOT.'/admin/supplierorderdet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsSupplierOrdersLines"); + $nbExtrafields = $extrafields->attributes['commande_fournisseurdet']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'supplierorderdet'; $h++; $head[$h][0] = DOL_URL_ROOT.'/admin/supplierinvoice_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsSupplierInvoices"); + $nbExtrafields = $extrafields->attributes['facture_fourn']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'supplierinvoice'; $h++; $head[$h][0] = DOL_URL_ROOT.'/admin/supplierinvoicedet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsSupplierInvoicesLines"); + $nbExtrafields = $extrafields->attributes['facture_fourn_det']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'supplierinvoicedet'; $h++; diff --git a/htdocs/core/lib/ftp.lib.php b/htdocs/core/lib/ftp.lib.php new file mode 100644 index 00000000000..1b7cfc7ca73 --- /dev/null +++ b/htdocs/core/lib/ftp.lib.php @@ -0,0 +1,300 @@ + + * Copyright (C) 2022 Anthony Berton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file htdocs/core/lib/ftp.lib.php + * \brief Set of functions used for FTP + * \ingroup core + */ + + + + +/** + * Connect to FTP server + * + * @param string $ftp_server Server name + * @param string $ftp_port Server port + * @param string $ftp_user FTP user + * @param string $ftp_password FTP password + * @param string $section Directory + * @param integer $ftp_passive Use a passive mode + * @return array Result of connect + */ +function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $section, $ftp_passive = 0) +{ + global $langs, $conf; + + $ok = 1; + $error = 0; + $connect_id = null; + $newsectioniso = ''; + $mesg=""; + + if (!is_numeric($ftp_port)) { + $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServer", $ftp_server, $ftp_port); + $ok = 0; + } + + if ($ok) { + $connecttimeout = (empty($conf->global->FTP_CONNECT_TIMEOUT) ? 40 : $conf->global->FTP_CONNECT_TIMEOUT); + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + dol_syslog('Try to connect with ssh2_connect'); + $tmp_conn_id = ssh2_connect($ftp_server, $ftp_port); + } elseif (!empty($conf->global->FTP_CONNECT_WITH_SSL)) { + dol_syslog('Try to connect with ftp_ssl_connect'); + $connect_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout); + } else { + dol_syslog('Try to connect with ftp_connect'); + $connect_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout); + } + if (!empty($connect_id) || !empty($tmp_conn_id)) { + if ($ftp_user) { + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + dol_syslog('Try to authenticate with ssh2_auth_password'); + if (ssh2_auth_password($tmp_conn_id, $ftp_user, $ftp_password)) { + // Turn on passive mode transfers (must be after a successful login + //if ($ftp_passive) ftp_pasv($connect_id, true); + + // Change the dir + $newsectioniso = utf8_decode($section); + //ftp_chdir($connect_id, $newsectioniso); + $connect_id = ssh2_sftp($tmp_conn_id); + if (!$connect_id) { + dol_syslog('Failed to connect to SFTP after sssh authentication', LOG_DEBUG); + $mesg = $langs->transnoentitiesnoconv("FailedToConnectToSFTPAfterSSHAuthentication"); + $ok = 0; + $error++; + } + } else { + dol_syslog('Failed to connect to FTP with login '.$ftp_user, LOG_DEBUG); + $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials"); + $ok = 0; + $error++; + } + } else { + if (ftp_login($connect_id, $ftp_user, $ftp_password)) { + // Turn on passive mode transfers (must be after a successful login + if ($ftp_passive) { + ftp_pasv($connect_id, true); + } + + // Change the dir + $newsectioniso = utf8_decode($section); + ftp_chdir($connect_id, $newsectioniso); + } else { + $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials"); + $ok = 0; + $error++; + } + } + } + } else { + dol_syslog('FailedToConnectToFTPServer '.$ftp_server.' '.$ftp_port, LOG_ERR); + $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServer", $ftp_server, $ftp_port); + $ok = 0; + } + } + + $arrayresult = array('conn_id'=>$connect_id, 'ok'=>$ok, 'mesg'=>$mesg, 'curdir'=>$section, 'curdiriso'=>$newsectioniso); + return $arrayresult; +} + + +/** + * Tell if an entry is a FTP directory + * + * @param resource $connect_id Connection handler + * @param string $dir Directory + * @return int 1=directory, 0=not a directory + */ +function ftp_isdir($connect_id, $dir) +{ + if (@ftp_chdir($connect_id, $dir)) { + ftp_cdup($connect_id); + return 1; + } else { + return 0; + } +} + +/** + * Tell if an entry is a FTP directory + * + * @param resource $connect_id Connection handler + * @return boolean Result of closing + */ +function dol_ftp_close($connect_id) +{ + global $conf; + + // Close FTP connection + if ($connect_id) { + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + } elseif (!empty($conf->global->FTP_CONNECT_WITH_SSL)) { + return ftp_close($connect_id); + } else { + return ftp_close($connect_id); + } + } +} + +/** + * Delete a FTP file + * + * @param resource $connect_id Connection handler + * @param string $file File + * @param string $newsection $newsection + * @return bool + */ +function dol_ftp_delete($connect_id, $file, $newsection) +{ + global $conf; + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + $newsection = ssh2_sftp_realpath($connect_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 + } + + // Remote file + $filename = $file; + $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; + $newremotefileiso = utf8_decode($remotefile); + + //print "x".$newremotefileiso; + dol_syslog("ftp/index.php ftp_delete ".$newremotefileiso); + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + return ssh2_sftp_unlink($connect_id, $newremotefileiso); + } else { + return @ftp_delete($connect_id, $newremotefileiso); + } +} + +/** + * Download a FTP file + * + * @param resource $connect_id Connection handler + * @param string $localfile The local file path + * @param string $file The remote file path + * @param string $newsection $newsection + * @return bool|resource + */ +function dol_ftp_get($connect_id, $localfile, $file, $newsection) +{ + global $conf; + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + $newsection = ssh2_sftp_realpath($connect_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 + } + + // Remote file + $filename = $file; + $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; + $newremotefileiso = utf8_decode($remotefile); + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + return fopen('ssh2.sftp://'.intval($connect_id).$newremotefileiso, 'r'); + } else { + return ftp_get($connect_id, $localfile, $newremotefileiso, FTP_BINARY); + } +} + +/** + * Upload a FTP file + * + * @param resource $connect_id Connection handler + * @param string $file File name + * @param string $localfile The path to the local file + * @param string $newsection $newsection + * @return bool + */ +function dol_ftp_put($connect_id, $file, $localfile, $newsection) +{ + global $conf; + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + $newsection = ssh2_sftp_realpath($connect_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 + } + + // Remote file + $filename = $file; + $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; + $newremotefileiso = utf8_decode($remotefile); + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + return ssh2_scp_send($connect_id, $localfile, $newremotefileiso, 0644); + } else { + return ftp_put($connect_id, $newremotefileiso, $localfile, FTP_BINARY); + } +} + +/** + * Remove FTP directory + * + * @param resource $connect_id Connection handler + * @param string $file File + * @param string $newsection $newsection + * @return bool + */ +function dol_ftp_rmdir($connect_id, $file, $newsection) +{ + global $conf; + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + $newsection = ssh2_sftp_realpath($connect_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 + } + + // Remote file + $filename = $file; + $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; + $newremotefileiso = utf8_decode($remotefile); + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + return ssh2_sftp_rmdir($connect_id, $newremotefileiso); + } else { + return @ftp_rmdir($connect_id, $newremotefileiso); + } +} + + +/** + * Remove FTP directory + * + * @param resource $connect_id Connection handler + * @param string $newdir Dir create + * @param string $newsection $newsection + * @return bool|string + */ +function dol_ftp_mkdir($connect_id, $newdir, $newsection) +{ + global $conf; + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + $newsection = ssh2_sftp_realpath($connect_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 + } + + // Remote file + $newremotefileiso = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$newdir; + $newremotefileiso = utf8_decode($newremotefileiso); + + if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { + return ssh2_sftp_mkdir($connect_id, $newremotefileiso, 0777); + } else { + return @ftp_mkdir($connect_id, $newremotefileiso); + } +} diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index ecb45a33280..e9c1dbc546a 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1,7 +1,7 @@ * Copyright (C) 2003 Jean-Louis Bergamo - * Copyright (C) 2004-2018 Laurent Destailleur + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Christophe Combelles @@ -14,10 +14,12 @@ * Copyright (C) 2014-2015 Marcos García * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2018-2022 Frédéric France - * Copyright (C) 2019 Thibault Foucart + * Copyright (C) 2019-2022 Thibault Foucart * Copyright (C) 2020 Open-Dsi * Copyright (C) 2021 Gauthier VERDOL * Copyright (C) 2022 Anthony Berton + * Copyright (C) 2022 Ferran Marcet + * Copyright (C) 2022 Charlene Benke * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,10 +44,39 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; + +if (!function_exists('utf8_encode')) { + /** + * Implement utf8_encode for PHP that does not support it. + * + * @param mixed $elements PHP Object to json encode + * @return string Json encoded string + */ + function utf8_encode($elements) + { + return mb_convert_encoding($elements, 'UTF-8', 'ISO-8859-1'); + } +} + +if (!function_exists('utf8_decode')) { + /** + * Implement utf8_decode for PHP that does not support it. + * + * @param mixed $elements PHP Object to json encode + * @return string Json encoded string + */ + function utf8_decode($elements) + { + return mb_convert_encoding($elements, 'ISO-8859-1', 'UTF-8'); + } +} + + /** * Return dolibarr global constant string value - * @param string $key key to return value, return '' if not set - * @param string $default value to return + * + * @param string $key key to return value, return '' if not set + * @param string $default value to return * @return string */ function getDolGlobalString($key, $default = '') @@ -57,8 +88,9 @@ function getDolGlobalString($key, $default = '') /** * Return dolibarr global constant int value - * @param string $key key to return value, return 0 if not set - * @param int $default value to return + * + * @param string $key key to return value, return 0 if not set + * @param int $default value to return * @return int */ function getDolGlobalInt($key, $default = 0) @@ -68,8 +100,47 @@ function getDolGlobalInt($key, $default = 0) return (int) (empty($conf->global->$key) ? $default : $conf->global->$key); } +/** + * Return Dolibarr user constant string value + * + * @param string $key key to return value, return '' if not set + * @param string $default value to return + * @param User $tmpuser To get another user than current user + * @return string + */ +function getDolUserString($key, $default = '', $tmpuser = null) +{ + if (empty($tmpuser)) { + global $user; + $tmpuser = $user; + } + + // return $conf->global->$key ?? $default; + return (string) (empty($tmpuser->conf->$key) ? $default : $$tmpuser->conf->$key); +} + +/** + * Return Dolibarr user constant int value + * + * @param string $key key to return value, return 0 if not set + * @param int $default value to return + * @param User $tmpuser To get another user than current user + * @return int + */ +function getDolUserInt($key, $default = 0, $tmpuser = null) +{ + if (empty($tmpuser)) { + global $user; + $tmpuser = $user; + } + + // return $conf->global->$key ?? $default; + return (int) (empty($tmpuser->conf->$key) ? $default : $tmpuser->conf->$key); +} + /** * Is Dolibarr module enabled + * * @param string $module module name to check * @return int */ @@ -132,6 +203,9 @@ function getEntity($element, $shared = 1, $currentobject = null) case 'order_supplier': $element = 'supplier_order'; break; // "/fourn/class/fournisseur.commande.class.php" + case 'invoice_supplier': + $element = 'supplier_invoice'; + break; // "/fourn/class/fournisseur.facture.class.php" } if (is_object($mc)) { @@ -276,13 +350,13 @@ function getBrowserInfo($user_agent) $reg = array(); if (preg_match('/firefox(\/|\s)([\d\.]*)/i', $user_agent, $reg)) { $name = 'firefox'; - $version = $reg[2]; + $version = empty($reg[2]) ? '' : $reg[2]; } elseif (preg_match('/edge(\/|\s)([\d\.]*)/i', $user_agent, $reg)) { $name = 'edge'; - $version = $reg[2]; + $version = empty($reg[2]) ? '' : $reg[2]; } elseif (preg_match('/chrome(\/|\s)([\d\.]+)/i', $user_agent, $reg)) { $name = 'chrome'; - $version = $reg[2]; + $version = empty($reg[2]) ? '' : $reg[2]; } elseif (preg_match('/chrome/i', $user_agent, $reg)) { // we can have 'chrome (Mozilla...) chrome x.y' in one string $name = 'chrome'; @@ -292,11 +366,11 @@ function getBrowserInfo($user_agent) $name = 'epiphany'; } elseif (preg_match('/safari(\/|\s)([\d\.]*)/i', $user_agent, $reg)) { $name = 'safari'; - $version = $reg[2]; + $version = empty($reg[2]) ? '' : $reg[2]; } elseif (preg_match('/opera(\/|\s)([\d\.]*)/i', $user_agent, $reg)) { // Safari is often present in string for mobile but its not. $name = 'opera'; - $version = $reg[2]; + $version = empty($reg[2]) ? '' : $reg[2]; } elseif (preg_match('/(MSIE\s([0-9]+\.[0-9]))|.*(Trident\/[0-9]+.[0-9];.*rv:([0-9]+\.[0-9]+))/i', $user_agent, $reg)) { $name = 'ie'; $version = end($reg); @@ -304,10 +378,10 @@ function getBrowserInfo($user_agent) // MS products at end $name = 'ie'; $version = end($reg); - } elseif (preg_match('/l(i|y)n(x|ks)(\(|\/|\s)*([\d\.]+)/i', $user_agent, $reg)) { + } elseif (preg_match('/l[iy]n(x|ks)(\(|\/|\s)*([\d\.]+)/i', $user_agent, $reg)) { // MS products at end $name = 'lynxlinks'; - $version = $reg[4]; + $version = empty($reg[3]) ? '' : $reg[3]; } if ($tablet) { @@ -401,8 +475,8 @@ function GETPOSTISSET($paramname) * Can be used before GETPOST to know if the $check param of GETPOST need to check an array or a string * * @param string $paramname Name or parameter to test - * @param int $method Type of method (0 = get then post, 1 = only get, 2 = only post, 3 = post then get) - * @return bool True if we have just submit a POST or GET request with the parameter provided (even if param is empty) + * @param int $method Type of method (0 = get then post, 1 = only get, 2 = only post, 3 = post then get) + * @return bool True if we have just submit a POST or GET request with the parameter provided (even if param is empty) */ function GETPOSTISARRAY($paramname, $method = 0) { @@ -439,6 +513,7 @@ function GETPOSTISARRAY($paramname, $method = 0) * 'alphanohtml'=check there is no html content and no " and no ../ * 'aZ'=check it's a-z only * 'aZ09'=check it's simple alpha string (recommended for keys) + * 'aZ09comma'=check it's a string for a sortfield or sortorder * 'san_alpha'=Use filter_var with FILTER_SANITIZE_STRING (do not use this for free text string) * 'nohtml'=check there is no html content and no " and no ../ * 'restricthtml'=check html content is restricted to some tags only @@ -742,7 +817,7 @@ function GETPOST($paramname, $check = 'alphanohtml', $method = 0, $filter = null // - posted value not empty, or // - if posted value is empty and a default value exists that is not empty (it means we did a filter to an empty value when default was not). - if ($out != '') { // $out = '0' or 'abc', it is a search criteria to keep + if ($out != '' && isset($user)) {// $out = '0' or 'abc', it is a search criteria to keep $user->lastsearch_values_tmp[$relativepathstring][$paramname] = $out; } } @@ -875,61 +950,18 @@ function sanitizeVal($out = '', $check = 'alphanohtml', $filter = null, $options break; case 'restricthtml': // Recommended for most html textarea case 'restricthtmlallowunvalid': - do { - $oldstringtoclean = $out; - - if (!empty($out) && !empty($conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML) && $check != 'restricthtmlallowunvalid') { - try { - $dom = new DOMDocument; - // Add a trick to solve pb with text without parent tag - // like '

    Foo

    bar

    ' that ends up with '

    Foo

    bar

    ' - // like 'abc' that ends up with '

    abc

    ' - $out = '
    '.$out.'
    '; - - $dom->loadHTML($out, LIBXML_ERR_NONE|LIBXML_HTML_NOIMPLIED|LIBXML_HTML_NODEFDTD|LIBXML_NONET|LIBXML_NOWARNING|LIBXML_NOXMLDECL); - $out = trim($dom->saveHTML()); - - // Remove the trick added to solve pb with text without parent tag - $out = preg_replace('/^
    /', '', $out); - $out = preg_replace('/<\/div>$/', '', $out); - } catch (Exception $e) { - //print $e->getMessage(); - return 'InvalidHTMLString'; - } - } - - // Ckeditor use the numeric entitic for apostrophe so we force it to text entity (all other special chars are - // encoded using text entities) so we can then exclude all numeric entities. - $out = preg_replace('/'/i', ''', $out); - - // We replace chars from a/A to z/Z encoded with numeric HTML entities with the real char so we won't loose the chars at the next step (preg_replace). - // No need to use a loop here, this step is not to sanitize (this is done at next step, this is to try to save chars, even if they are - // using a non coventionnel way to be encoded, to not have them sanitized just after) - //$out = preg_replace_callback('/&#(x?[0-9][0-9a-f]+;?)/i', 'realCharForNumericEntities', $out); - $out = preg_replace_callback('/&#(x?[0-9][0-9a-f]+;?)/i', function ($m) { - return realCharForNumericEntities($m); }, $out); - - - // Now we remove all remaining HTML entities starting with a number. We don't want such entities. - $out = preg_replace('/&#x?[0-9]+/i', '', $out); // For example if we have javascript with an entities without the ; to hide the 'a' of 'javascript'. - - $out = dol_string_onlythesehtmltags($out, 0, 1, 1); - - // We should also exclude non expected HTML attributes and clean content of some attributes. - if (!empty($conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES)) { - // Warning, the function may add a LF so we are forced to trim to compare with old $out without having always a difference and an infinit loop. - $out = dol_string_onlythesehtmlattributes($out); - } - - // Restore entity ' into ' (restricthtml is for html content so we can use html entity) - $out = preg_replace('/'/i', "'", $out); - } while ($oldstringtoclean != $out); + $out = dol_htmlwithnojs($out, 1, $check); break; case 'custom': - if (empty($filter)) { - return 'BadFourthParameterForGETPOST'; + if (!empty($out)) { + if (empty($filter)) { + return 'BadParameterForGETPOST - Param 3 of sanitizeVal()'; + } + /*if (empty($options)) { + return 'BadParameterForGETPOST - Param 4 of sanitizeVal()'; + }*/ + $out = filter_var($out, $filter, $options); } - $out = filter_var($out, $filter, $options); break; } @@ -1113,19 +1145,43 @@ function dol_buildpath($path, $type = 0, $returnemptyifnotfound = 0) } /** - * Create a clone of instance of object (new instance with same value for properties) - * With native = 0: Property that are reference are also new object (full isolation clone). This means $this->db of new object is not valid. + * Create a clone of instance of object (new instance with same value for each properties) + * With native = 0: Property that are reference are different memory area in the new object (full isolation clone). This means $this->db of new object may not be valid. * With native = 1: Use PHP clone. Property that are reference are same pointer. This means $this->db of new object is still valid but point to same this->db than original object. + * With native = 2: Property that are reference are different memory area in the new object (full isolation clone). Only scalar and array values are cloned. This means $this->db of new object is not valid. * * @param object $object Object to clone - * @param int $native 0=Full isolation method, 1=Native PHP method + * @param int $native 0=Full isolation method, 1=Native PHP method, 2=Full isolation method keeping only scalar and array properties (recommended) * @return object Clone object * @see https://php.net/manual/language.oop5.cloning.php */ function dol_clone($object, $native = 0) { - if (empty($native)) { - $myclone = unserialize(serialize($object)); // serialize then unserialize is hack to be sure to have a new object for all fields + if ($native == 0) { + // deprecated method, use the method with native = 2 instead + $tmpsavdb = null; + if (isset($object->db) && isset($object->db->db) && is_object($object->db->db) && get_class($object->db->db) == 'PgSql\Connection') { + $tmpsavdb = $object->db; + unset($object->db); // Such property can not be serialized with pgsl (when object->db->db = 'PgSql\Connection') + } + + $myclone = unserialize(serialize($object)); // serialize then unserialize is a hack to be sure to have a new object for all fields + + if (!empty($tmpsavdb)) { + $object->db = $tmpsavdb; + } + } elseif ($native == 2) { + // recommended method to have a full isolated cloned object + $myclone = new stdClass(); + $tmparray = get_object_vars($object); // return only public properties + + if (is_array($tmparray)) { + foreach ($tmparray as $propertykey => $propertyval) { + if (is_scalar($propertyval) || is_array($propertyval)) { + $myclone->$propertykey = $propertyval; + } + } + } } else { $myclone = clone $object; // PHP clone is a shallow copy only, not a real clone, so properties of references will keep the reference (refering to the same target/variable) } @@ -1177,6 +1233,7 @@ function dol_sanitizeFileName($str, $newstr = '_', $unaccent = 1) $tmp = dol_string_nospecial($unaccent ? dol_string_unaccent($str) : $str, $newstr, $filesystem_forbidden_chars); $tmp = preg_replace('/\-\-+/', '_', $tmp); $tmp = preg_replace('/\s+\-([^\s])/', ' _$1', $tmp); + $tmp = preg_replace('/\s+\-$/', '', $tmp); $tmp = str_replace('..', '', $tmp); return $tmp; } @@ -1201,6 +1258,7 @@ function dol_sanitizePathName($str, $newstr = '_', $unaccent = 1) $tmp = dol_string_nospecial($unaccent ? dol_string_unaccent($str) : $str, $newstr, $filesystem_forbidden_chars); $tmp = preg_replace('/\-\-+/', '_', $tmp); $tmp = preg_replace('/\s+\-([^\s])/', ' _$1', $tmp); + $tmp = preg_replace('/\s+\-$/', '', $tmp); $tmp = str_replace('..', '', $tmp); return $tmp; } @@ -1242,6 +1300,22 @@ function dol_sanitizeUrl($stringtoclean, $type = 1) return $stringtoclean; } +/** + * Clean a string to use it as an Email. + * + * @param string $stringtoclean String to clean. Example 'abc@mycompany.com ' + * @return string Escaped string. + */ +function dol_sanitizeEmail($stringtoclean) +{ + do { + $oldstringtoclean = $stringtoclean; + $stringtoclean = str_ireplace(array('"', ':', '[', ']',"\n", "\r", '\\', '\/'), '', $stringtoclean); + } while ($oldstringtoclean != $stringtoclean); + + return $stringtoclean; +} + /** * Clean a string from all accent characters to be used as ref, login or by dol_sanitizeFileName * @@ -1404,7 +1478,7 @@ function dol_escape_json($stringtoescape) * @param string $stringtoescape String to escape * @param int $keepb 1=Keep b tags, 0=remove them completely * @param int $keepn 1=Preserve \r\n strings (otherwise, replace them with escaped value). Set to 1 when escaping for a '; $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= '
    '; // Scan directories @@ -176,12 +176,20 @@ class doc_generic_order_odt extends ModelePDFCommandes $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -271,10 +279,10 @@ class doc_generic_order_odt extends ModelePDFCommandes if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -283,11 +291,11 @@ class doc_generic_order_odt extends ModelePDFCommandes if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -295,8 +303,8 @@ class doc_generic_order_odt extends ModelePDFCommandes dol_mkdir($conf->commande->dir_temp); if (!is_writable($conf->commande->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->commande->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->commande->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index bdda6f26862..6fe07506958 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -74,9 +74,9 @@ class pdf_einstein extends ModelePDFCommandes /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -149,10 +149,10 @@ class pdf_einstein extends ModelePDFCommandes $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -173,7 +173,7 @@ class pdf_einstein extends ModelePDFCommandes // Define position of columns $this->posxdesc = $this->marge_gauche + 1; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->posxtva = 101; $this->posxup = 118; $this->posxqty = 135; @@ -237,8 +237,8 @@ class pdf_einstein extends ModelePDFCommandes $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries")); // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - $this->watermark = $conf->global->COMMANDE_DRAFT_WATERMARK; + if ($object->statut == $object::STATUS_DRAFT && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + $this->watermark = getDolGlobalString('COMMANDE_DRAFT_WATERMARK'); } global $outputlangsbis; @@ -323,7 +323,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfOrderTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -359,11 +359,11 @@ class pdf_einstein extends ModelePDFCommandes $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -456,7 +456,7 @@ class pdf_einstein extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -509,7 +509,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->MultiCell($this->posxunit - $this->posxqty - 0.8, 4, $qty, 0, 'R'); // Enough for 6 chars // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); $pdf->SetXY($this->posxunit, $curY); $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 4, $unit, 0, 'L'); @@ -529,7 +529,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 3, $total_excl_tax, 0, 'R', 0); // Collection of totals by value of vat in $this->vat["rate"] = total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -608,9 +608,12 @@ class pdf_einstein extends ModelePDFCommandes $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -625,7 +628,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -771,7 +774,7 @@ class pdf_einstein extends ModelePDFCommandes } */ /* TODO - else if (! empty($object->availability_code)) + else if (!empty($object->availability_code)) { $pdf->SetXY($this->marge_gauche, $posy); $pdf->SetTextColor(200,0,0); @@ -868,7 +871,7 @@ class pdf_einstein extends ModelePDFCommandes // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if ($object->fk_account > 0 || $object->fk_bank > 0 || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if ($object->fk_account > 0 || $object->fk_bank > 0 || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = ($object->fk_account <= 0 ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if ($object->fk_bank > 0) { $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank @@ -932,17 +935,17 @@ class pdf_einstein extends ModelePDFCommandes // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("TotalHT") : ''), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { @@ -951,7 +954,7 @@ class pdf_einstein extends ModelePDFCommandes // Nothing to do } else { //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -981,7 +984,7 @@ class pdf_einstein extends ModelePDFCommandes } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1041,7 +1044,7 @@ class pdf_einstein extends ModelePDFCommandes } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1072,7 +1075,7 @@ class pdf_einstein extends ModelePDFCommandes } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1235,7 +1238,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->MultiCell($this->posxunit - $this->posxqty - 1, 2, $outputlangs->transnoentities("Qty"), '', 'C'); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxunit - 1, $tab_top + 1); @@ -1301,13 +1304,13 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1532,8 +1535,7 @@ class pdf_einstein extends ModelePDFCommandes protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { // phpcs:enable - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } } diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index b2d0c1c0f30..8614238c2c7 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -74,9 +74,9 @@ class pdf_eratosthene extends ModelePDFCommandes /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -154,10 +154,10 @@ class pdf_eratosthene extends ModelePDFCommandes $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -221,8 +221,8 @@ class pdf_eratosthene extends ModelePDFCommandes $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries")); // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - $this->watermark = $conf->global->COMMANDE_DRAFT_WATERMARK; + if ($object->statut == $object::STATUS_DRAFT && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + $this->watermark = getDolGlobalString('COMMANDE_DRAFT_WATERMARK'); } global $outputlangsbis; @@ -253,7 +253,7 @@ class pdf_eratosthene extends ModelePDFCommandes $objphoto->fetch($object->lines[$i]->fk_product); //var_dump($objphoto->ref);exit; - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -271,7 +271,7 @@ class pdf_eratosthene extends ModelePDFCommandes } foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -365,7 +365,7 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfOrderTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -392,13 +392,13 @@ class pdf_eratosthene extends ModelePDFCommandes $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -466,7 +466,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -524,7 +524,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -546,7 +546,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -642,7 +642,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -754,7 +754,7 @@ class pdf_eratosthene extends ModelePDFCommandes // Collection of totals by value of vat in $this->tva["rate"] = total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -832,9 +832,12 @@ class pdf_eratosthene extends ModelePDFCommandes $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == $pageposafter) { @@ -849,7 +852,7 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -989,7 +992,7 @@ class pdf_eratosthene extends ModelePDFCommandes } */ /* TODO - else if (! empty($object->availability_code)) + else if (!empty($object->availability_code)) { $pdf->SetXY($this->marge_gauche, $posy); $pdf->SetTextColor(200,0,0); @@ -1085,7 +1088,7 @@ class pdf_eratosthene extends ModelePDFCommandes // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if ($object->fk_account > 0 || $object->fk_bank > 0 || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if ($object->fk_account > 0 || $object->fk_bank > 0 || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = ($object->fk_account <= 0 ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if ($object->fk_bank > 0) { $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank @@ -1147,16 +1150,16 @@ class pdf_eratosthene extends ModelePDFCommandes // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("TotalHT") : ''), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { @@ -1165,7 +1168,7 @@ class pdf_eratosthene extends ModelePDFCommandes // Nothing to do } else { //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1194,7 +1197,7 @@ class pdf_eratosthene extends ModelePDFCommandes } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1254,7 +1257,7 @@ class pdf_eratosthene extends ModelePDFCommandes } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1285,7 +1288,7 @@ class pdf_eratosthene extends ModelePDFCommandes } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1468,13 +1471,13 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1717,8 +1720,7 @@ class pdf_eratosthene extends ModelePDFCommandes protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { // phpcs:enable - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } @@ -1864,7 +1866,7 @@ class pdf_eratosthene extends ModelePDFCommandes ), 'border-left' => true, // add left line separator ); - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->cols['unit']['status'] = true; } diff --git a/htdocs/core/modules/commande/mod_commande_marbre.php b/htdocs/core/modules/commande/mod_commande_marbre.php index 8c9ef0385eb..71a41d0b3c4 100644 --- a/htdocs/core/modules/commande/mod_commande_marbre.php +++ b/htdocs/core/modules/commande/mod_commande_marbre.php @@ -20,12 +20,12 @@ /** * \file htdocs/core/modules/commande/mod_commande_marbre.php * \ingroup commande - * \brief File of class to manage customer order numbering rules Marbre + * \brief File of class to manage Sales Order numbering rules Marbre */ require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; /** - * Class to manage customer order numbering rules Marbre + * Class to manage Sales Order numbering rules Marbre */ class mod_commande_marbre extends ModeleNumRefCommandes { diff --git a/htdocs/core/modules/commande/mod_commande_saphir.php b/htdocs/core/modules/commande/mod_commande_saphir.php index 36efdcc1d88..b62124f7652 100644 --- a/htdocs/core/modules/commande/mod_commande_saphir.php +++ b/htdocs/core/modules/commande/mod_commande_saphir.php @@ -23,14 +23,14 @@ /** * \file htdocs/core/modules/commande/mod_commande_saphir.php * \ingroup commande - * \brief Fichier contenant la classe du modele de numerotation de reference de commande Saphir + * \brief File of class to manage Sales Order numbering rules Saphir */ require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; /** - * Class to manage customer order numbering rules Saphir + * Class to manage Sales Order numbering rules Saphir */ class mod_commande_saphir extends ModeleNumRefCommandes { @@ -54,7 +54,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -79,7 +79,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; + $texte .= '
    '; // List of directories area $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -161,12 +160,33 @@ class doc_generic_contract_odt extends ModelePDFContract $texte .= '
    '; // Scan directories - if (count($listofdir)) { - $texte .= $langs->trans("NumberOfModelFilesFound").': '.count($listoffiles).''; + $nbofiles = count($listoffiles); + if (!empty($conf->global->CONTRACT_ADDON_PDF_ODT_PATH)) { + $texte .= $langs->trans("NumberOfModelFilesFound").': '; + //$texte.=$nbofiles?'':''; + $texte .= count($listoffiles); + //$texte.=$nbofiles?'':''; + $texte .= ''; } + if ($nbofiles) { + $texte .= '
    '; + // Show list of found files + foreach ($listoffiles as $file) { + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; + } + $texte .= '
    '; + } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -222,7 +242,7 @@ class doc_generic_contract_odt extends ModelePDFContract $sav_charset_output = $outputlangs->charset_output; $outputlangs->charset_output = 'UTF-8'; - // Load traductions files required by page + // Load translation files required by page $outputlangs->loadLangs(array("main", "dict", "companies", "bills")); if ($conf->contrat->multidir_output[$object->entity]) { @@ -256,11 +276,11 @@ class doc_generic_contract_odt extends ModelePDFContract if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -269,11 +289,11 @@ class doc_generic_contract_odt extends ModelePDFContract if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -281,8 +301,8 @@ class doc_generic_contract_odt extends ModelePDFContract dol_mkdir($conf->contrat->dir_temp); if (!is_writable($conf->contrat->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->contrat->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->contrat->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } @@ -376,16 +396,21 @@ class doc_generic_contract_odt extends ModelePDFContract dol_syslog($e->getMessage(), LOG_INFO); } + // Call the ODTSubstitution hook + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray); + $reshook = $hookmanager->executeHooks('ODTSubstitution', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + foreach ($tmparray as $key => $value) { try { - if (preg_match('/logo$/', $key)) { // Image + if (preg_match('/logo$/', $key)) { + // Image if (file_exists($value)) { $odfHandler->setImage($key, $value); } else { $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8'); } - } else // Text - { + } else { + // Text $odfHandler->setVars($key, $value, true, 'UTF-8'); } } catch (OdfException $e) { @@ -442,7 +467,7 @@ class doc_generic_contract_odt extends ModelePDFContract } // Call the beforeODTSave hook - $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs); + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray); $reshook = $hookmanager->executeHooks('beforeODTSave', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks // Write new file @@ -451,6 +476,7 @@ class doc_generic_contract_odt extends ModelePDFContract $odfHandler->exportAsAttachedPDF($file); } catch (Exception $e) { $this->error = $e->getMessage(); + dol_syslog($e->getMessage(), LOG_INFO); return -1; } } else { @@ -458,10 +484,12 @@ class doc_generic_contract_odt extends ModelePDFContract $odfHandler->saveToDisk($file); } catch (Exception $e) { $this->error = $e->getMessage(); + dol_syslog($e->getMessage(), LOG_INFO); return -1; } } + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray); $reshook = $hookmanager->executeHooks('afterODTCreation', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if (!empty($conf->global->MAIN_UMASK)) { diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index 4dbad109cf4..bc938accc92 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -67,9 +67,9 @@ class pdf_strato extends ModelePDFContract /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -145,10 +145,10 @@ class pdf_strato extends ModelePDFContract $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 0; // Manage the vat option FACTURE_TVAOPTION @@ -256,7 +256,7 @@ class pdf_strato extends ModelePDFContract $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("ContractCard")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -274,7 +274,7 @@ class pdf_strato extends ModelePDFContract $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); // Display notes if (!empty($object->note_public)) { @@ -390,7 +390,7 @@ class pdf_strato extends ModelePDFContract if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -437,6 +437,9 @@ class pdf_strato extends ModelePDFContract $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { @@ -780,8 +783,7 @@ class pdf_strato extends ModelePDFContract */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'CONTRACT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/contract/mod_contract_magre.php b/htdocs/core/modules/contract/mod_contract_magre.php index e0c54c1d022..e88d2c46b32 100644 --- a/htdocs/core/modules/contract/mod_contract_magre.php +++ b/htdocs/core/modules/contract/mod_contract_magre.php @@ -85,7 +85,7 @@ class mod_contract_magre extends ModelNumRefContracts $tooltip .= $langs->trans("GenericMaskCodes5"); $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; @@ -127,7 +127,7 @@ class mod_contract_magre extends ModelNumRefContracts require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $mask = $conf->global->CONTRACT_MAGRE_MASK; + $mask = getDolGlobalString("CONTRACT_MAGRE_MASK"); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/contract/modules_contract.php b/htdocs/core/modules/contract/modules_contract.php index 8e296f626fb..577ec4be5d9 100644 --- a/htdocs/core/modules/contract/modules_contract.php +++ b/htdocs/core/modules/contract/modules_contract.php @@ -54,8 +54,6 @@ abstract class ModelePDFContract extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'contract'; $list = array(); diff --git a/htdocs/core/modules/delivery/doc/pdf_storm.modules.php b/htdocs/core/modules/delivery/doc/pdf_storm.modules.php index 9c588fdf55e..3db75e6ca9b 100644 --- a/htdocs/core/modules/delivery/doc/pdf_storm.modules.php +++ b/htdocs/core/modules/delivery/doc/pdf_storm.modules.php @@ -66,9 +66,9 @@ class pdf_storm extends ModelePDFDeliveryOrder /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -140,10 +140,10 @@ class pdf_storm extends ModelePDFDeliveryOrder $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -238,7 +238,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -252,7 +252,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $dir = $conf->product->dir_output.'/'.$midir; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -324,7 +324,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("DeliveryOrder")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -343,7 +343,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -351,7 +351,7 @@ class pdf_storm extends ModelePDFDeliveryOrder // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -445,7 +445,7 @@ class pdf_storm extends ModelePDFDeliveryOrder if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposbefore + 1); $curY = $tab_top_newpage; @@ -485,7 +485,7 @@ class pdf_storm extends ModelePDFDeliveryOrder if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -571,9 +571,12 @@ class pdf_storm extends ModelePDFDeliveryOrder $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -588,7 +591,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -749,8 +752,8 @@ class pdf_storm extends ModelePDFDeliveryOrder pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->COMMANDE_DRAFT_WATERMARK); + if ($object->statut == 0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); } $pdf->SetTextColor(0, 0, 60); @@ -918,8 +921,7 @@ class pdf_storm extends ModelePDFDeliveryOrder */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'DELIVERY_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } diff --git a/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php b/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php index a9537b324f1..281dbf65026 100644 --- a/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php @@ -65,9 +65,9 @@ class pdf_typhon extends ModelePDFDeliveryOrder /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -139,10 +139,10 @@ class pdf_typhon extends ModelePDFDeliveryOrder $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -284,7 +284,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("DeliveryOrder")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -322,13 +322,13 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -401,7 +401,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -495,9 +495,12 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -512,7 +515,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -748,8 +751,8 @@ class pdf_typhon extends ModelePDFDeliveryOrder pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->COMMANDE_DRAFT_WATERMARK); + if ($object->statut == 0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); } $pdf->SetTextColor(0, 0, 60); @@ -917,8 +920,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'DELIVERY_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/delivery/mod_delivery_jade.php b/htdocs/core/modules/delivery/mod_delivery_jade.php index 605265fde00..d348957afd3 100644 --- a/htdocs/core/modules/delivery/mod_delivery_jade.php +++ b/htdocs/core/modules/delivery/mod_delivery_jade.php @@ -63,7 +63,7 @@ class mod_delivery_jade extends ModeleNumRefDeliveryOrder /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -174,7 +174,7 @@ class mod_delivery_jade extends ModeleNumRefDeliveryOrder * * @param Societe $objsoc Object thirdparty * @param Object $object Object livraison - * @return string Texte descriptif + * @return string Descriptive text */ public function delivery_get_num($objsoc = 0, $object = '') { diff --git a/htdocs/core/modules/delivery/mod_delivery_saphir.php b/htdocs/core/modules/delivery/mod_delivery_saphir.php index 7fc9b2e6e52..68da925e62b 100644 --- a/htdocs/core/modules/delivery/mod_delivery_saphir.php +++ b/htdocs/core/modules/delivery/mod_delivery_saphir.php @@ -58,7 +58,7 @@ class mod_delivery_saphir extends ModeleNumRefDeliveryOrder /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -162,7 +162,7 @@ class mod_delivery_saphir extends ModeleNumRefDeliveryOrder * * @param Societe $objsoc Object thirdparty * @param Object $object Objet livraison - * @return string Texte descripif + * @return string Descriptive text */ public function delivery_get_num($objsoc = 0, $object = '') { diff --git a/htdocs/core/modules/delivery/modules_delivery.php b/htdocs/core/modules/delivery/modules_delivery.php index 5bd3bd33866..9f7b6805f73 100644 --- a/htdocs/core/modules/delivery/modules_delivery.php +++ b/htdocs/core/modules/delivery/modules_delivery.php @@ -52,8 +52,6 @@ abstract class ModelePDFDeliveryOrder extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'delivery'; $list = array(); @@ -88,9 +86,9 @@ abstract class ModeleNumRefDeliveryOrder } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/dons/html_cerfafr.modules.php b/htdocs/core/modules/dons/html_cerfafr.modules.php index 792c8434ba4..d859ae0ca56 100644 --- a/htdocs/core/modules/dons/html_cerfafr.modules.php +++ b/htdocs/core/modules/dons/html_cerfafr.modules.php @@ -120,18 +120,18 @@ class html_cerfafr extends ModeleDon // This is not the proper way to do it but $formclass->form_modes_reglement // prints the translation instead of returning it - if ($don->modepaiementid) { - $formclass->load_cache_types_paiements(); - $paymentmode = $formclass->cache_types_paiements[$don->modepaiementid]['label']; + $formclass->load_cache_types_paiements(); + if ($don->modepaymentid) { + $paymentmode = $formclass->cache_types_paiements[$don->modepaymentid]['label']; } else { $paymentmode = ''; } - - if ($don->modepaymentcode == 'CHQ') { + $modepaymentcode = !empty($formclass->cache_types_paiements[$don->modepaymentid]['code']) ? $formclass->cache_types_paiements[$don->modepaymentid]['code'] : ""; + if ($modepaymentcode == 'CHQ') { $ModePaiement = '
    Remise d\'espèces Chèque Virement, prélèvement, carte bancaire Remise d\'espèces Chèque Virement, prélèvement, carte bancaire Remise d\'espèces Chèque Virement, prélèvement, carte bancaire Remise d\'espèces Chèque Virement, prélèvement, carte bancaire
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; @@ -125,9 +125,9 @@ class mod_expedition_ribera extends ModelNumRefExpedition require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $mask = $conf->global->EXPEDITION_RIBERA_MASK; + $mask = getDolGlobalString('EXPEDITION_RIBERA_MASK'); - if (!$mask) { + if (empty($mask)) { $this->error = 'NotConfigured'; return 0; } diff --git a/htdocs/core/modules/expedition/modules_expedition.php b/htdocs/core/modules/expedition/modules_expedition.php index ce210d6a958..2ca5613af48 100644 --- a/htdocs/core/modules/expedition/modules_expedition.php +++ b/htdocs/core/modules/expedition/modules_expedition.php @@ -53,8 +53,6 @@ abstract class ModelePdfExpedition extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'shipping'; $list = array(); diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index 907688b4878..f365173ddbe 100644 --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php @@ -1,7 +1,7 @@ * Copyright (C) 2015 Alexandre Spangaro - * Copyright (C) 2016-2021 Philippe Grand + * Copyright (C) 2016-2022 Philippe Grand * Copyright (C) 2018-2020 Frédéric France * Copyright (C) 2018 Francis Appels * Copyright (C) 2019 Markus Welters @@ -71,9 +71,9 @@ class pdf_standard extends ModeleExpenseReport /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -119,10 +119,10 @@ class pdf_standard extends ModeleExpenseReport $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -152,7 +152,7 @@ class pdf_standard extends ModeleExpenseReport $this->posxqty = 150; $this->postotalht = 160; $this->postotalttc = 180; - // if (empty($conf->projet->enabled)) { + // if (!isModEnabled('project')) { // $this->posxtva-=20; // $this->posxup-=20; // $this->posxqty-=20; @@ -268,7 +268,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Trips")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -286,7 +286,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->SetTextColor(0, 0, 0); $tab_top = 95; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 65 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 65 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -361,7 +361,7 @@ class pdf_standard extends ModeleExpenseReport if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -390,7 +390,7 @@ class pdf_standard extends ModeleExpenseReport if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -447,9 +447,12 @@ class pdf_standard extends ModeleExpenseReport $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -464,7 +467,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -581,7 +584,7 @@ class pdf_standard extends ModeleExpenseReport if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { $nextColumnPosX = $this->posxtva; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $nextColumnPosX = $this->posxprojet; } @@ -597,7 +600,7 @@ class pdf_standard extends ModeleExpenseReport //$pdf->MultiCell($nextColumnPosX-$this->posxtype-0.8, 4, $expensereporttypecodetoshow, 0, 'C'); // Project - //if (! empty($conf->projet->enabled)) + //if (isModEnabled('project')) //{ // $pdf->SetFont('','', $default_font_size - 1); // $pdf->SetXY($this->posxprojet, $curY); @@ -955,7 +958,7 @@ class pdf_standard extends ModeleExpenseReport // $pdf->MultiCell($this->posxprojet-$this->posxtype - 1, 2, $outputlangs->transnoentities("Type"), '', 'C'); //} - //if (!empty($conf->projet->enabled)) + //if (isModEnabled('project')) //{ // // Project // $pdf->line($this->posxprojet - 1, $tab_top, $this->posxprojet - 1, $tab_top + $tab_height); @@ -1040,7 +1043,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->MultiCell(15, 3, $outputlangs->transnoentities("Amount"), 0, 'C', 0); $pdf->SetXY($tab3_posx + 35, $tab3_top + 1); $pdf->MultiCell(30, 3, $outputlangs->transnoentities("Type"), 0, 'L', 0); - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $pdf->SetXY($tab3_posx + 65, $tab3_top + 1); $pdf->MultiCell(25, 3, $outputlangs->transnoentities("BankAccount"), 0, 'L', 0); } @@ -1080,7 +1083,7 @@ class pdf_standard extends ModeleExpenseReport $oper = $outputlangs->transnoentitiesnoconv("PaymentTypeShort".$row->p_code); $pdf->MultiCell(40, 3, $oper, 0, 'L', 0); - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $pdf->SetXY($tab3_posx + 65, $tab3_top + $y + 1); $pdf->MultiCell(30, 3, $row->baref, 0, 'L', 0); } @@ -1126,8 +1129,7 @@ class pdf_standard extends ModeleExpenseReport */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'EXPENSEREPORT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/expensereport/mod_expensereport_sand.php b/htdocs/core/modules/expensereport/mod_expensereport_sand.php index c403aa8c228..920861f2b3e 100644 --- a/htdocs/core/modules/expensereport/mod_expensereport_sand.php +++ b/htdocs/core/modules/expensereport/mod_expensereport_sand.php @@ -57,7 +57,7 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -82,7 +82,8 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("Evaluation"), $langs->transnoentities("Evaluation")); @@ -79,9 +79,9 @@ class mod_evaluation_advanced extends ModeleNumRefEvaluation // Parametrage du prefix $texte .= ''; - $texte .= ''; + $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -132,7 +132,7 @@ class mod_evaluation_advanced extends ModeleNumRefEvaluation require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->HRM_EVALUATION_ADVANCED_MASK; + $mask = getDolGlobalString('HRM_EVALUATION_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/hrm/mod_evaluation_standard.php b/htdocs/core/modules/hrm/mod_evaluation_standard.php index 4c5bb083870..b6b517b8fb9 100644 --- a/htdocs/core/modules/hrm/mod_evaluation_standard.php +++ b/htdocs/core/modules/hrm/mod_evaluation_standard.php @@ -26,7 +26,7 @@ dol_include_once('/core/modules/hrm/modules_evaluation.php'); /** - * Class to manage customer order numbering rules standard + * Class to manage the Standard numbering rule for HR evaluation */ class mod_evaluation_standard extends ModeleNumRefEvaluation { diff --git a/htdocs/core/modules/hrm/modules_evaluation.php b/htdocs/core/modules/hrm/modules_evaluation.php index 36fc7e26d81..06276ca8474 100644 --- a/htdocs/core/modules/hrm/modules_evaluation.php +++ b/htdocs/core/modules/hrm/modules_evaluation.php @@ -49,8 +49,6 @@ abstract class ModelePDFEvaluation extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'evaluation'; $list = array(); @@ -86,7 +84,7 @@ abstract class ModeleNumRefEvaluation /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index 8c3e5bfeab9..a9a82e7cb00 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -115,7 +115,7 @@ class ImportCsv extends ModeleImports $this->datatoimport = $datatoimport; if (preg_match('/^societe_/', $datatoimport)) { - $this->thirpartyobject = new Societe($this->db); + $this->thirdpartyobject = new Societe($this->db); } } @@ -458,21 +458,31 @@ class ImportCsv extends ModeleImports $param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart. } - call_user_func_array(array($classinstance, $method), $param_array); + $result = call_user_func_array(array($classinstance, $method), $param_array); + + // If duplicate record found + if (!($classinstance->id != '') && $result == -2) { + $this->errors[$error]['lib'] = $langs->trans('ErrorMultipleRecordFoundFromRef', $newval); + $this->errors[$error]['type'] = 'FOREIGNKEY'; + $errorforthistable++; + $error++; + } + // If not found, try the fetch from label if (!($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule'] == 'fetchidfromcodeorlabel') { $param_array = array('', '', $newval); call_user_func_array(array($classinstance, $method), $param_array); } $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'][$newval] = $classinstance->id; + //print 'We have made a '.$class.'->'.$method.' to get id from code '.$newval.'. '; if ($classinstance->id != '') { // id may be 0, it is a found value $newval = $classinstance->id; - } else { + } elseif (! $error) { if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) { - $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', num2Alpha($key - 1), $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); } elseif (!empty($objimport->array_import_convertvalue[0][$val]['element'])) { - $this->errors[$error]['lib'] = $langs->trans('ErrorFieldRefNotIn', $key, $newval, $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['element'])); + $this->errors[$error]['lib'] = $langs->trans('ErrorFieldRefNotIn', num2Alpha($key - 1), $newval, $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['element'])); } else { $this->errors[$error]['lib'] = 'ErrorBadDefinitionOfImportProfile'; } @@ -512,7 +522,7 @@ class ImportCsv extends ModeleImports $newval = $classinstance->id; } else { if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) { - $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', num2Alpha($key - 1), $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); } else { $this->errors[$error]['lib'] = 'ErrorFieldValueNotIn'; } @@ -549,7 +559,7 @@ class ImportCsv extends ModeleImports $newval = $scaleorid ? $scaleorid : 0; } else { if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) { - $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', num2Alpha($key - 1), $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); } else { $this->errors[$error]['lib'] = 'ErrorFieldValueNotIn'; } @@ -560,8 +570,8 @@ class ImportCsv extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getcustomercodeifauto') { if (strtolower($newval) == 'auto') { - $this->thirpartyobject->get_codeclient(0, 0); - $newval = $this->thirpartyobject->code_client; + $this->thirdpartyobject->get_codeclient(0, 0); + $newval = $this->thirdpartyobject->code_client; //print 'code_client='.$newval; } if (empty($newval)) { @@ -569,8 +579,8 @@ class ImportCsv extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getsuppliercodeifauto') { if (strtolower($newval) == 'auto') { - $newval = $this->thirpartyobject->get_codefournisseur(0, 1); - $newval = $this->thirpartyobject->code_fournisseur; + $this->thirdpartyobject->get_codefournisseur(0, 1); + $newval = $this->thirdpartyobject->code_fournisseur; //print 'code_fournisseur='.$newval; } if (empty($newval)) { @@ -578,8 +588,8 @@ class ImportCsv extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getcustomeraccountancycodeifauto') { if (strtolower($newval) == 'auto') { - $this->thirpartyobject->get_codecompta('customer'); - $newval = $this->thirpartyobject->code_compta; + $this->thirdpartyobject->get_codecompta('customer'); + $newval = $this->thirdpartyobject->code_compta; //print 'code_compta='.$newval; } if (empty($newval)) { @@ -587,8 +597,8 @@ class ImportCsv extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getsupplieraccountancycodeifauto') { if (strtolower($newval) == 'auto') { - $this->thirpartyobject->get_codecompta('supplier'); - $newval = $this->thirpartyobject->code_compta_fournisseur; + $this->thirdpartyobject->get_codecompta('supplier'); + $newval = $this->thirdpartyobject->code_compta_fournisseur; if (empty($newval)) { $arrayrecord[($key - 1)]['type'] = -1; // If we get empty value, we will use "null" } @@ -697,7 +707,7 @@ class ImportCsv extends ModeleImports if (!empty($filter)) { $tableforerror .= ':'.$filter; } - $this->errors[$error]['lib'] = $langs->transnoentitiesnoconv('ErrorFieldValueNotIn', $key, $newval, $field, $tableforerror); + $this->errors[$error]['lib'] = $langs->transnoentitiesnoconv('ErrorFieldValueNotIn', num2Alpha($key - 1), $newval, $field, $tableforerror); $this->errors[$error]['type'] = 'FOREIGNKEY'; $errorforthistable++; $error++; @@ -705,24 +715,37 @@ class ImportCsv extends ModeleImports } elseif (!preg_match('/'.$objimport->array_import_regex[0][$val].'/i', $newval)) { // If test is just a static regex //if ($key == 19) print "xxx".$newval."zzz".$objimport->array_import_regex[0][$val]."
    "; - $this->errors[$error]['lib'] = $langs->transnoentitiesnoconv('ErrorWrongValueForField', $key, $newval, $objimport->array_import_regex[0][$val]); + $this->errors[$error]['lib'] = $langs->transnoentitiesnoconv('ErrorWrongValueForField', num2Alpha($key - 1), $newval, $objimport->array_import_regex[0][$val]); $this->errors[$error]['type'] = 'REGEX'; $errorforthistable++; $error++; } } + // Check HTML injection + $inj = testSqlAndScriptInject($newval, 0); + if ($inj) { + $this->errors[$error]['lib'] = $langs->transnoentitiesnoconv('ErrorHtmlInjectionForField', num2Alpha($key - 1), dol_trunc($newval, 100)); + $this->errors[$error]['type'] = 'HTMLINJECTION'; + $errorforthistable++; + $error++; + } + // Other tests // ... } // Define $listfields and $listvalues to build SQL request - if ($conf->socialnetworks->enabled && strpos($fieldname, "socialnetworks") !== false) { + if (isModEnabled("socialnetworks") && strpos($fieldname, "socialnetworks") !== false) { if (!in_array("socialnetworks", $listfields)) { $listfields[] = "socialnetworks"; + $socialkey = array_search("socialnetworks", $listfields); // Return position of 'socialnetworks' key in array + $listvalues[$socialkey] = ''; } + //var_dump($newval); var_dump($arrayrecord[($key - 1)]['type']); if (!empty($newval) && $arrayrecord[($key - 1)]['type'] > 0) { - $socialkey = array_search("socialnetworks", $listfields); + $socialkey = array_search("socialnetworks", $listfields); // Return position of 'socialnetworks' key in array + //var_dump('sk='.$socialkey); // socialkey=19 $socialnetwork = explode("_", $fieldname)[1]; if (empty($listvalues[$socialkey]) || $listvalues[$socialkey] == "null") { $json = new stdClass(); @@ -824,21 +847,24 @@ class ImportCsv extends ModeleImports if (empty($lastinsertid)) { // No insert done yet for a parent table $sqlSelect = "SELECT ".$fname." FROM ".$tablename; - $data = array_combine($listfields, $listvalues); - $where = array(); - $filters = array(); + $where = array(); // filters to forge SQL request + $filters = array(); // filters to forge output error message foreach ($updatekeys as $key) { $col = $objimport->array_import_updatekeys[0][$key]; $key = preg_replace('/^.*\./i', '', $key); - if ($conf->socialnetworks->enabled && strpos($key, "socialnetworks") !== false) { + if (isModEnabled("socialnetworks") && strpos($key, "socialnetworks") !== false) { $tmp = explode("_", $key); $key = $tmp[0]; $socialnetwork = $tmp[1]; $jsondata = $data[$key]; $json = json_decode($jsondata); - $where[] = $key." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'"; - $filters[] = $col." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'"; + $stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork); + //var_dump($stringtosearch); + //var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like) + $where[] = $key." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'"; + $filters[] = $col." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'"; + //var_dump($where[1]); // This provide a value for sql string inside a like } else { $where[] = $key.' = '.$data[$key]; $filters[] = $col.' = '.$data[$key]; @@ -968,7 +994,9 @@ class ImportCsv extends ModeleImports if ($sql) { $resql = $this->db->query($sql); if ($resql) { - $last_insert_id_array[$tablename] = $this->db->last_insert_id($tablename); // store the last inserted auto_increment id for each table, so that child tables can be inserted with the appropriate id. This must be done just after the INSERT request, else we risk losing the id (because another sql query will be issued somewhere in Dolibarr). + if (!$is_table_category_link) { + $last_insert_id_array[$tablename] = $this->db->last_insert_id($tablename); // store the last inserted auto_increment id for each table, so that child tables can be inserted with the appropriate id. This must be done just after the INSERT request, else we risk losing the id (because another sql query will be issued somewhere in Dolibarr). + } $insertdone = true; } else { //print 'E'; @@ -1011,4 +1039,4 @@ class ImportCsv extends ModeleImports function cleansep($value) { return str_replace(array(',', ';'), '/', $value); -}; +} diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 4740f7d3390..0854a0f56c5 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -133,7 +133,7 @@ class ImportXlsx extends ModeleImports $this->datatoimport = $datatoimport; if (preg_match('/^societe_/', $datatoimport)) { - $this->thirpartyobject = new Societe($this->db); + $this->thirdpartyobject = new Societe($this->db); } } @@ -502,17 +502,28 @@ class ImportXlsx extends ModeleImports }*/ $param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart. } - call_user_func_array(array($classinstance, $method), $param_array); + + $result = call_user_func_array(array($classinstance, $method), $param_array); + + // If duplicate record found + if (!($classinstance->id != '') && $result == -2) { + $this->errors[$error]['lib'] = $langs->trans('ErrorMultipleRecordFoundFromRef', $newval); + $this->errors[$error]['type'] = 'FOREIGNKEY'; + $errorforthistable++; + $error++; + } + // If not found, try the fetch from label if (!($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule'] == 'fetchidfromcodeorlabel') { $param_array = array('', '', $newval); call_user_func_array(array($classinstance, $method), $param_array); } $this->cacheconvert[$file . '_' . $class . '_' . $method . '_'][$newval] = $classinstance->id; + //print 'We have made a '.$class.'->'.$method.' to get id from code '.$newval.'. '; if ($classinstance->id != '') { // id may be 0, it is a found value $newval = $classinstance->id; - } else { + } elseif (! $error) { if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) { $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); } elseif (!empty($objimport->array_import_convertvalue[0][$val]['element'])) { @@ -604,8 +615,8 @@ class ImportXlsx extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getcustomercodeifauto') { if (strtolower($newval) == 'auto') { - $this->thirpartyobject->get_codeclient(0, 0); - $newval = $this->thirpartyobject->code_client; + $this->thirdpartyobject->get_codeclient(0, 0); + $newval = $this->thirdpartyobject->code_client; //print 'code_client='.$newval; } if (empty($newval)) { @@ -613,8 +624,8 @@ class ImportXlsx extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getsuppliercodeifauto') { if (strtolower($newval) == 'auto') { - $newval = $this->thirpartyobject->get_codefournisseur(0, 1); - $newval = $this->thirpartyobject->code_fournisseur; + $this->thirdpartyobject->get_codefournisseur(0, 1); + $newval = $this->thirdpartyobject->code_fournisseur; //print 'code_fournisseur='.$newval; } if (empty($newval)) { @@ -622,8 +633,8 @@ class ImportXlsx extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getcustomeraccountancycodeifauto') { if (strtolower($newval) == 'auto') { - $this->thirpartyobject->get_codecompta('customer'); - $newval = $this->thirpartyobject->code_compta; + $this->thirdpartyobject->get_codecompta('customer'); + $newval = $this->thirdpartyobject->code_compta; //print 'code_compta='.$newval; } if (empty($newval)) { @@ -631,8 +642,8 @@ class ImportXlsx extends ModeleImports } } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'getsupplieraccountancycodeifauto') { if (strtolower($newval) == 'auto') { - $this->thirpartyobject->get_codecompta('supplier'); - $newval = $this->thirpartyobject->code_compta_fournisseur; + $this->thirdpartyobject->get_codecompta('supplier'); + $newval = $this->thirdpartyobject->code_compta_fournisseur; if (empty($newval)) { $arrayrecord[($key)]['type'] = -1; // If we get empty value, we will use "null" } @@ -756,17 +767,28 @@ class ImportXlsx extends ModeleImports } } + // Check HTML injection + $inj = testSqlAndScriptInject($newval, 0); + if ($inj) { + $this->errors[$error]['lib'] = $langs->transnoentitiesnoconv('ErrorHtmlInjectionForField', $key, dol_trunc($newval, 100)); + $this->errors[$error]['type'] = 'HTMLINJECTION'; + $errorforthistable++; + $error++; + } + // Other tests // ... } // Define $listfields and $listvalues to build SQL request - if ($conf->socialnetworks->enabled && strpos($fieldname, "socialnetworks") !== false) { + if (isModEnabled("socialnetworks") && strpos($fieldname, "socialnetworks") !== false) { if (!in_array("socialnetworks", $listfields)) { $listfields[] = "socialnetworks"; + $socialkey = array_search("socialnetworks", $listfields); // Return position of 'socialnetworks' key in array. Example socialkey=19 + $listvalues[$socialkey] = ''; } if (!empty($newval) && $arrayrecord[($key)]['type'] > 0) { - $socialkey = array_search("socialnetworks", $listfields); + $socialkey = array_search("socialnetworks", $listfields); // Return position of 'socialnetworks' key in array. Example socialkey=19 $socialnetwork = explode("_", $fieldname)[1]; if (empty($listvalues[$socialkey]) || $listvalues[$socialkey] == "null") { $json = new stdClass(); @@ -788,7 +810,7 @@ class ImportXlsx extends ModeleImports } elseif (empty($newval) && $arrayrecord[($key)]['type'] == 0) { $listvalues[] = "''"; } else { - $listvalues[] = "'" . $this->db->escape($newval) . "'"; + $listvalues[] = "'".$this->db->escape($newval)."'"; } } } @@ -801,7 +823,7 @@ class ImportXlsx extends ModeleImports if (!empty($listfields) && is_array($objimport->array_import_fieldshidden[0])) { // Loop on each hidden fields to add them into listfields/listvalues foreach ($objimport->array_import_fieldshidden[0] as $key => $val) { - if (!preg_match('/^' . preg_quote($alias, '/') . '\./', $key)) { + if (!preg_match('/^'.preg_quote($alias, '/').'\./', $key)) { continue; // Not a field of current table } if ($val == 'user->id') { @@ -871,19 +893,24 @@ class ImportXlsx extends ModeleImports $sqlSelect = "SELECT ".$fname." FROM " . $tablename; $data = array_combine($listfields, $listvalues); - $where = array(); - $filters = array(); + + $where = array(); // filters to forge SQL request + $filters = array(); // filters to forge output error message foreach ($updatekeys as $key) { $col = $objimport->array_import_updatekeys[0][$key]; $key = preg_replace('/^.*\./i', '', $key); - if ($conf->socialnetworks->enabled && strpos($key, "socialnetworks") !== false) { + if (isModEnabled("socialnetworks") && strpos($key, "socialnetworks") !== false) { $tmp = explode("_", $key); $key = $tmp[0]; $socialnetwork = $tmp[1]; $jsondata = $data[$key]; $json = json_decode($jsondata); - $where[] = $key." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'"; - $filters[] = $col." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'"; + $stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork); + //var_dump($stringtosearch); + //var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like) + $where[] = $key." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'"; + $filters[] = $col." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'"; + //var_dump($where[1]); // This provide a value for sql string inside a like } else { $where[] = $key.' = '.$data[$key]; $filters[] = $col.' = '.$data[$key]; @@ -920,6 +947,7 @@ class ImportXlsx extends ModeleImports // Note: For extrafield tablename, we have in importfieldshidden_array an enty 'extra.fk_object'=>'lastrowid-tableparent' so $keyfield is 'fk_object' $sqlSelect = "SELECT rowid FROM " . $tablename; + if (empty($keyfield)) { $keyfield = 'rowid'; } @@ -1013,7 +1041,9 @@ class ImportXlsx extends ModeleImports if ($sql) { $resql = $this->db->query($sql); if ($resql) { - $last_insert_id_array[$tablename] = $this->db->last_insert_id($tablename); // store the last inserted auto_increment id for each table, so that child tables can be inserted with the appropriate id. This must be done just after the INSERT request, else we risk losing the id (because another sql query will be issued somewhere in Dolibarr). + if (!$is_table_category_link) { + $last_insert_id_array[$tablename] = $this->db->last_insert_id($tablename); // store the last inserted auto_increment id for each table, so that child tables can be inserted with the appropriate id. This must be done just after the INSERT request, else we risk losing the id (because another sql query will be issued somewhere in Dolibarr). + } $insertdone = true; } else { //print 'E'; diff --git a/htdocs/core/modules/import/modules_import.php b/htdocs/core/modules/import/modules_import.php index d875afc5c4f..fa4a5ad3692 100644 --- a/htdocs/core/modules/import/modules_import.php +++ b/htdocs/core/modules/import/modules_import.php @@ -155,18 +155,16 @@ class ModeleImports } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Charge en memoire et renvoie la liste des modeles actifs + * Load into memory list of available import format * * @param DoliDB $db Database handler * @param integer $maxfilenamelength Max length of value to show * @return array List of templates */ - public function liste_modeles($db, $maxfilenamelength = 0) + public function listOfAvailableImportFormat($db, $maxfilenamelength = 0) { - // phpcs:enable - dol_syslog(get_class($this)."::liste_modeles"); + dol_syslog(get_class($this)."::listOfAvailableImportFormat"); $dir = DOL_DOCUMENT_ROOT."/core/modules/import/"; $handle = opendir($dir); diff --git a/htdocs/core/modules/mailings/advthirdparties.modules.php b/htdocs/core/modules/mailings/advthirdparties.modules.php index 688db8b8e7f..7649c255d04 100644 --- a/htdocs/core/modules/mailings/advthirdparties.modules.php +++ b/htdocs/core/modules/mailings/advthirdparties.modules.php @@ -42,7 +42,7 @@ class mailing_advthirdparties extends MailingTargets */ public $db; - public $enabled = '$conf->societe->enabled'; + public $enabled = 'isModEnabled("societe")'; /** diff --git a/htdocs/core/modules/mailings/contacts1.modules.php b/htdocs/core/modules/mailings/contacts1.modules.php index e3e349d2a17..3787874bdad 100644 --- a/htdocs/core/modules/mailings/contacts1.modules.php +++ b/htdocs/core/modules/mailings/contacts1.modules.php @@ -38,7 +38,7 @@ class mailing_contacts1 extends MailingTargets public $require_module = array("societe"); // Module mailing actif si modules require_module actifs public $require_admin = 0; // Module mailing actif pour user admin ou non - public $enabled = '$conf->societe->enabled'; + public $enabled = 'isModEnabled("societe")'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png @@ -99,8 +99,6 @@ class mailing_contacts1 extends MailingTargets */ public function getNbOfRecipients($sql = '') { - global $conf; - $sql = "SELECT count(distinct(c.email)) as nb"; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc"; @@ -122,7 +120,7 @@ class mailing_contacts1 extends MailingTargets */ public function formFilter() { - global $langs; + global $conf,$langs; // Load translation files required by the page $langs->loadLangs(array("commercial", "companies", "suppliers", "categories")); @@ -307,11 +305,13 @@ class mailing_contacts1 extends MailingTargets $s .= ajax_combobox("filter_category_supplier_contact"); - // Choose language - require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; - $formadmin = new FormAdmin($this->db); - $s .= $langs->trans("DefaultLang").': '; - $s .= $formadmin->select_language($langs->getDefaultLang(1), 'filter_lang', 0, 0, 1, 0, 0, '', 0, 0, 0, null, 1); + if (getDolGlobalInt('MAIN_MULTILANGS')) { + // Choose language + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; + $formadmin = new FormAdmin($this->db); + $s .= ''.$langs->trans("DefaultLang").': '; + $s .= $formadmin->select_language($langs->getDefaultLang(1), 'filter_lang', 0, null, 1, 0, 0, '', 0, 0, 0, null, 1); + } return $s; } @@ -388,6 +388,7 @@ class mailing_contacts1 extends MailingTargets } $sql .= " WHERE sp.entity IN (".getEntity('contact').")"; $sql .= " AND sp.email <> ''"; + $sql .= " AND (SELECT count(*) FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE email = sp.email) = 0"; // Exclude unsubscribed email adresses $sql .= " AND sp.statut = 1"; @@ -408,8 +409,8 @@ class mailing_contacts1 extends MailingTargets } // Filter on language - if ($filter_lang != '') { - $sql .= " AND sp.default_lang = '".$this->db->escape($filter_lang)."'"; + if (!empty($filter_lang)) { + $sql .= " AND sp.default_lang LIKE '".$this->db->escape($filter_lang)."%'"; } // Filter on nature @@ -417,7 +418,7 @@ class mailing_contacts1 extends MailingTargets //print "xx".$key; if ($key == 'prospects') { - $sql .= " AND s.client=2"; + $sql .= " AND s.client = 2"; } foreach ($prospectlevel as $codelevel => $valuelevel) { if ($key == 'prospectslevel'.$codelevel) { @@ -425,10 +426,10 @@ class mailing_contacts1 extends MailingTargets } } if ($key == 'customers') { - $sql .= " AND s.client=1"; + $sql .= " AND s.client = 1"; } if ($key == 'suppliers') { - $sql .= " AND s.fournisseur=1"; + $sql .= " AND s.fournisseur = 1"; } // Filter on job position @@ -439,7 +440,6 @@ class mailing_contacts1 extends MailingTargets $sql .= " ORDER BY sp.email"; // print "wwwwwwx".$sql; - // Stocke destinataires dans cibles $result = $this->db->query($sql); if ($result) { diff --git a/htdocs/core/modules/mailings/eventorganization.modules.php b/htdocs/core/modules/mailings/eventorganization.modules.php new file mode 100644 index 00000000000..0d0ffb63c3a --- /dev/null +++ b/htdocs/core/modules/mailings/eventorganization.modules.php @@ -0,0 +1,212 @@ + + * Copyright (C) 2005-2010 Laurent Destailleur + * Copyright (C) 2005-2009 Regis Houssin + * + * This file is an example to follow to add your own email selector inside + * the Dolibarr email tool. + * Follow instructions given in README file to know what to change to build + * your own emailing list selector. + * Code that need to be changed in this file are marked by "CHANGE THIS" tag. + */ + +/** + * \file htdocs/core/modules/mailings/eventorganization.modules.php + * \ingroup mailing + * \brief Example file to provide a list of recipients for mailing module + */ + + +// Load Dolibarr Environment +include_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php'; + + +/** + * Class to manage a list of personalised recipients for mailing feature + */ +class mailing_eventorganization extends MailingTargets +{ + // This label is used if no translation is found for key XXX neither MailingModuleDescXXX where XXX=name is found + public $name = 'AttendeesOfOrganizedEvent'; + public $desc = "Attendees of an organized event"; + + public $require_admin = 0; + + public $require_module = array(); // This module allows to select by categories must be also enabled if category module is not activated + + /** + * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png + */ + public $picto = 'conferenceorbooth'; + + /** + * @var DoliDB Database handler. + */ + public $db; + + public $enabled = 'isModEnabled("eventorganization")'; + + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $conf, $langs; + $langs->load('companies'); + + $this->db = $db; + } + + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * This is the main function that returns the array of emails + * + * @param int $mailing_id Id of mailing. No need to use it. + * @return int <0 if error, number of emails added if ok + */ + public function add_to_target($mailing_id) + { + // phpcs:enable + global $conf, $langs; + + $cibles = array(); + $addDescription = ''; + + $sql = "SELECT p.ref, p.entity, e.rowid as id, e.fk_project, e.email as email, e.email_company as company_name, e.firstname as firstname, e.lastname as lastname,"; + $sql .= " 'eventorganizationattendee' as source"; + $sql .= " FROM ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee as e,"; + $sql .= " ".MAIN_DB_PREFIX."projet as p"; + $sql .= " WHERE e.email <> ''"; + $sql .= " AND e.fk_project = p.rowid"; + $sql .= " AND p.entity IN (".getEntity('project').")"; + $sql .= " AND e.email NOT IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE fk_mailing=".((int) $mailing_id).")"; + $sql .= " AND e.fk_project = ".((int) GETPOST('filter_eventorganization', 'int')); + $sql .= " ORDER BY e.email"; + + // Stock recipients emails into targets table + $result = $this->db->query($sql); + if ($result) { + $num = $this->db->num_rows($result); + $i = 0; + $j = 0; + + dol_syslog(get_class($this)."::add_to_target mailing ".$num." targets found"); + + $old = ''; + while ($i < $num) { + $obj = $this->db->fetch_object($result); + if ($old <> $obj->email) { + $otherTxt = ($obj->ref ? $langs->transnoentities("Project").'='.$obj->ref : ''); + if (strlen($addDescription) > 0 && strlen($otherTxt) > 0) { + $otherTxt .= ";"; + } + $otherTxt .= $addDescription; + $cibles[$j] = array( + 'email' => $obj->email, + 'fk_project' => $obj->fk_project, + 'lastname' => $obj->lastname, + 'firstname' => $obj->firstname, + 'other' => $otherTxt, + 'source_url' => $this->url($obj->id, $obj->source), + 'source_id' => $obj->id, + 'source_type' => $obj->source + ); + $old = $obj->email; + $j++; + } + + $i++; + } + } else { + dol_syslog($this->db->error()); + $this->error = $this->db->error(); + return -1; + } + + return parent::addTargetsToDatabase($mailing_id, $cibles); + } + + + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests + */ + public function getSqlArrayForStats() + { + // CHANGE THIS: Optionnal + + //var $statssql=array(); + //$this->statssql[0]="SELECT field1 as label, count(distinct(email)) as nb FROM mytable WHERE email IS NOT NULL"; + return array(); + } + + + /** + * Return here number of distinct emails returned by your selector. + * For example if this selector is used to extract 500 different + * emails from a text file, this function must return 500. + * + * @param string $sql Requete sql de comptage + * @return int|string Nb of recipient, or <0 if error, or '' if NA + */ + public function getNbOfRecipients($sql = '') + { + global $conf; + + $sql = "SELECT COUNT(DISTINCT(e.email)) as nb"; + $sql .= " FROM ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee as e, "; + $sql .= " ".MAIN_DB_PREFIX."projet as p"; + $sql .= " WHERE e.email <> ''"; + $sql .= " AND e.fk_project = p.rowid"; + $sql .= " AND p.entity IN (".getEntity('project').")"; + + //print $sql; + + // La requete doit retourner un champ "nb" pour etre comprise par parent::getNbOfRecipients + return parent::getNbOfRecipients($sql); + } + + /** + * This is to add a form filter to provide variant of selector + * If used, the HTML select must be called "filter" + * + * @return string A html select zone + */ + public function formFilter() + { + global $conf, $langs; + + $langs->load("companies"); + + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; + $formproject = new FormProjets($this->db); + $s = $formproject->select_projects(-1, 0, "filter_eventorganization", 0, 0, 1, 1, 0, 0, 0, '', 1, 0, '', '', 'usage_organize_event=1'); + + return $s; + } + + + /** + * Can include an URL link on each record provided by selector shown on target page. + * + * @param int $id ID + * @param string $sourcetype Source type + * @return string Url link + */ + public function url($id, $sourcetype = 'thirdparty') + { + if ($sourcetype == 'project') { + return ''.img_object('', "eventorganization").''; + } + + return ''; + } +} diff --git a/htdocs/core/modules/mailings/example.modules.php b/htdocs/core/modules/mailings/example.modules.php deleted file mode 100644 index 739ab773196..00000000000 --- a/htdocs/core/modules/mailings/example.modules.php +++ /dev/null @@ -1,154 +0,0 @@ - - * - * This file is an example to follow to add your own email selector inside - * the Dolibarr email tool. - * Follow instructions given in README file to know what to change to build - * your own emailing list selector. - * Code that need to be changed in this file are marked by "CHANGE THIS" tag. - */ - -/** - * \file htdocs/core/modules/mailings/example.modules.php - * \ingroup mailing - * \brief Example file to provide a list of recipients for mailing module - */ - -include_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php'; - - -// CHANGE THIS: Class name must be called mailing_xxx with xxx=name of your selector - -/** - \class mailing_example - \brief Class to manage a list of personalised recipients for mailing feature -*/ -class mailing_example extends MailingTargets -{ - // CHANGE THIS: Put here a name not already used - public $name = 'example'; - // CHANGE THIS: Put here a description of your selector module. - // This label is used if no translation is found for key MailingModuleDescXXX where XXX=name is found - public $desc = 'Put here a description'; - // CHANGE THIS: Set to 1 if selector is available for admin users only - public $require_admin = 0; - // CHANGE THIS: Add a tooltip language key to add a tooltip help icon after the email target selector - public $tooltip = 'MyTooltipLangKey'; - - public $require_module = array(); - - /** - * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png - */ - public $picto = ''; - - /** - * @var DoliDB Database handler. - */ - public $db; - - - // CHANGE THIS: Constructor name must be called mailing_xxx with xxx=name of your selector - /** - * Constructor - * - * @param DoliDB $db Database handler - */ - public function __construct($db) - { - $this->db = $db; - } - - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * This is the main function that returns the array of emails - * - * @param int $mailing_id Id of mailing. No need to use it. - * @return int <0 if error, number of emails added if ok - */ - public function add_to_target($mailing_id) - { - // phpcs:enable - $target = array(); - - // CHANGE THIS - // ----- Your code start here ----- - - // You must fill the $target array with record like this - // $target[0]=array('email'=>'email_0','name'=>'name_0','firstname'=>'firstname_0', 'other'=>'other_0'); - // ... - // $target[n]=array('email'=>'email_n','name'=>'name_n','firstname'=>'firstname_n', 'other'=>'other_n'); - - // Example: $target[0]=array('email'=>'myemail@example.com', 'name'=>'Doe', 'firstname'=>'John', 'other'=>'Other information'); - - // ----- Your code end here ----- - - return parent::addTargetsToDatabase($mailing_id, $target); - } - - - /** - * On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * - * @return array Array with SQL requests - */ - public function getSqlArrayForStats() - { - // CHANGE THIS: Optionnal - - //var $statssql=array(); - //$this->statssql[0]="SELECT field1 as label, count(distinct(email)) as nb FROM mytable WHERE email IS NOT NULL"; - return array(); - } - - - /** - * Return here number of distinct emails returned by your selector. - * For example if this selector is used to extract 500 different - * emails from a text file, this function must return 500. - * - * @param string $sql Requete sql de comptage - * @return int|string Nb of recipient, or <0 if error, or '' if NA - */ - public function getNbOfRecipients($sql = '') - { - // CHANGE THIS: Optionnal - - // Example: return parent::getNbOfRecipients("SELECT count(*) as nb from dolibarr_table"); - // Example: return 500; - return '?'; - } - - /** - * This is to add a form filter to provide variant of selector - * If used, the HTML select must be called "filter" - * - * @return string A html select zone - */ - public function formFilter() - { - // CHANGE THIS: Optionnal - - $s = ''; - return $s; - } - - - /** - * Can include an URL link on each record provided by selector - * shown on target page. - * - * @param int $id ID - * @return string Url link - */ - public function url($id) - { - // CHANGE THIS: Optionnal - - return ''; - } -} diff --git a/htdocs/core/modules/mailings/fraise.modules.php b/htdocs/core/modules/mailings/fraise.modules.php index 992539cc303..9fe6a615f5d 100644 --- a/htdocs/core/modules/mailings/fraise.modules.php +++ b/htdocs/core/modules/mailings/fraise.modules.php @@ -41,7 +41,7 @@ class mailing_fraise extends MailingTargets public $require_module = array('adherent'); - public $enabled = '$conf->adherent->enabled'; + public $enabled = 'isModEnabled("adherent")'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png diff --git a/htdocs/core/modules/mailings/partnership.modules.php b/htdocs/core/modules/mailings/partnership.modules.php index 7813d93f54d..b4a8e9d8fd9 100644 --- a/htdocs/core/modules/mailings/partnership.modules.php +++ b/htdocs/core/modules/mailings/partnership.modules.php @@ -16,6 +16,8 @@ * \brief Example file to provide a list of recipients for mailing module */ + +// Load Dolibarr Environment include_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php'; @@ -24,9 +26,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php'; */ class mailing_partnership extends MailingTargets { - public $name = 'PartnershipThirdartiesOrMembers'; // This label is used if no translation is found for key XXX neither MailingModuleDescXXX where XXX=name is found + public $name = 'PartnershipThirdpartiesOrMembers'; public $desc = "Thirdparties or members included into a partnership program"; + public $require_admin = 0; public $require_module = array(); // This module allows to select by categories must be also enabled if category module is not activated @@ -41,7 +44,7 @@ class mailing_partnership extends MailingTargets */ public $db; - public $enabled = '$conf->partnership->enabled'; + public $enabled = 'isModEnabled("partnership")'; /** @@ -52,7 +55,7 @@ class mailing_partnership extends MailingTargets public function __construct($db) { global $conf, $langs; - $langs->load("companies"); + $langs->load('companies'); $this->db = $db; } @@ -218,7 +221,7 @@ class mailing_partnership extends MailingTargets $num = $this->db->num_rows($resql); if (empty($conf->partnership->enabled)) { - $num = 0; // Force empty list if category module is not enabled + $num = 0; // Force empty list if category module is not enabled } if ($num) { @@ -253,7 +256,7 @@ class mailing_partnership extends MailingTargets */ public function url($id, $sourcetype = 'thirdparty') { - if ($sourcetype == 'thirparty') { + if ($sourcetype == 'thirdparty') { return ''.img_object('', "societe").''; } if ($sourcetype == 'member') { diff --git a/htdocs/core/modules/mailings/thirdparties.modules.php b/htdocs/core/modules/mailings/thirdparties.modules.php index 073d45439eb..2f8040d4b75 100644 --- a/htdocs/core/modules/mailings/thirdparties.modules.php +++ b/htdocs/core/modules/mailings/thirdparties.modules.php @@ -31,7 +31,7 @@ class mailing_thirdparties extends MailingTargets public $require_module = array("societe"); // This module allows to select by categories must be also enabled if category module is not activated - public $enabled = '$conf->societe->enabled'; + public $enabled = 'isModEnabled("societe")'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png @@ -117,6 +117,10 @@ class mailing_thirdparties extends MailingTargets $addFilter .= " AND s.default_lang LIKE '".$this->db->escape(GETPOST('default_lang', 'alpha'))."%'"; $addDescription = $langs->trans('DefaultLang')."="; } + if (GETPOST('filter_lang_thirdparties', 'alpha')) { + $addFilter .= " AND s.default_lang LIKE '".$this->db->escape(GETPOST('filter_lang_thirdparties', 'alpha'))."%'"; + $addDescription = $langs->trans('DefaultLang')."="; + } $sql = "SELECT s.rowid as id, s.email as email, s.nom as name, null as fk_contact, null as firstname, c.label as label"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."categorie_societe as cs, ".MAIN_DB_PREFIX."categorie as c"; @@ -222,7 +226,7 @@ class mailing_thirdparties extends MailingTargets $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " WHERE s.email <> ''"; $sql .= " AND s.entity IN (".getEntity('societe').")"; - + $sql .= " AND NOT EXISTS (SELECT rowid FROM ".MAIN_DB_PREFIX."mailing_unsubscribe as mu WHERE mu.email = s.email and mu.entity = ".((int) $conf->entity).")"; // La requete doit retourner un champ "nb" pour etre comprise par parent::getNbOfRecipients return parent::getNbOfRecipients($sql); } @@ -312,11 +316,13 @@ class mailing_thirdparties extends MailingTargets $s .= ''; $s .= ajax_combobox("filter_status_thirdparties"); - // Choose language - require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; - $formadmin = new FormAdmin($this->db); - $s .= $langs->trans("DefaultLang").': '; - $s .= $formadmin->select_language($langs->getDefaultLang(1), 'filter_lang', 0, 0, 1, 0, 0, '', 0, 0, 0, null, 1); + if (getDolGlobalInt('MAIN_MULTILANGS')) { + // Choose language + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; + $formadmin = new FormAdmin($this->db); + $s .= ''.$langs->trans("DefaultLang").': '; + $s .= $formadmin->select_language($langs->getDefaultLang(1), 'filter_lang_thirdparties', 0, null, 1, 0, 0, '', 0, 0, 0, null, 1); + } return $s; } diff --git a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php index b5dec9cbbe0..9fc43e37388 100644 --- a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php +++ b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php @@ -29,7 +29,7 @@ class mailing_thirdparties_services_expired extends MailingTargets public $require_module = array('contrat'); - public $enabled = '$conf->societe->enabled'; + public $enabled = 'isModEnabled("societe")'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png @@ -108,7 +108,7 @@ class mailing_thirdparties_services_expired extends MailingTargets $now = dol_now(); // La requete doit retourner: id, email, name - $sql = "SELECT s.rowid as id, s.email, s.nom as name, cd.rowid as cdid, cd.date_ouverture, cd.date_fin_validite, cd.fk_contrat"; + $sql = "SELECT s.rowid as id, s.email, s.nom as name, cd.rowid as cdid, cd.date_ouverture as date_start_real, cd.date_fin_validite as date_end, cd.fk_contrat"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c"; $sql .= ", ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."product as p"; $sql .= " WHERE s.entity IN (".getEntity('societe').")"; @@ -135,8 +135,8 @@ class mailing_thirdparties_services_expired extends MailingTargets 'lastname' => $obj->name, // For thirdparties, lastname must be name 'firstname' => '', // For thirdparties, firstname is '' 'other' => - ('DateStart='.dol_print_date($this->db->jdate($obj->date_ouverture), 'day')).';'. - ('DateEnd='.dol_print_date($this->db->jdate($obj->date_fin_validite), 'day')).';'. + ('DateStart='.dol_print_date($this->db->jdate($obj->date_start_real), 'day')).';'. // date start real + ('DateEnd='.dol_print_date($this->db->jdate($obj->date_end), 'day')).';'. // date end planned ('Contract='.$obj->fk_contrat).';'. ('ContactLine='.$obj->cdid), 'source_url' => $this->url($obj->id), @@ -217,8 +217,9 @@ class mailing_thirdparties_services_expired extends MailingTargets { global $langs; - $s .= ''; if (count($this->arrayofproducts)) { + $langs->loadLangs(array("products")); $s .= ''; } else { $s .= ''; @@ -228,6 +229,7 @@ class mailing_thirdparties_services_expired extends MailingTargets } $s .= ''; $s .= ajax_combobox("filter_services_expired"); + return $s; } diff --git a/htdocs/core/modules/mailings/xinputfile.modules.php b/htdocs/core/modules/mailings/xinputfile.modules.php index 77044ddb29e..d698a646371 100644 --- a/htdocs/core/modules/mailings/xinputfile.modules.php +++ b/htdocs/core/modules/mailings/xinputfile.modules.php @@ -110,6 +110,11 @@ class mailing_xinputfile extends MailingTargets global $langs; $s = ''; + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $s .= ''; // MAX_FILE_SIZE must precede the field type=file + } $s .= ''; return $s; } @@ -151,10 +156,12 @@ class mailing_xinputfile extends MailingTargets $cpt++; $buffer = trim(fgets($handle)); $tab = explode(';', $buffer, 4); - $email = $tab[0]; - $name = $tab[1]; - $firstname = $tab[2]; - $other = $tab[3]; + + $email = dol_string_nohtmltag($tab[0]); + $name = dol_string_nohtmltag(empty($tab[1]) ? '' : $tab[1]); + $firstname = dol_string_nohtmltag(empty($tab[2]) ? '' : $tab[2]); + $other = dol_string_nohtmltag(empty($tab[3]) ? '' : $tab[3]); + if (!empty($buffer)) { //print 'xx'.dol_strlen($buffer).empty($buffer)."
    \n"; if (isValidEMail($email)) { diff --git a/htdocs/core/modules/mailings/xinputuser.modules.php b/htdocs/core/modules/mailings/xinputuser.modules.php index 117a5722c3c..74ed18ba91f 100644 --- a/htdocs/core/modules/mailings/xinputuser.modules.php +++ b/htdocs/core/modules/mailings/xinputuser.modules.php @@ -127,10 +127,11 @@ class mailing_xinputuser extends MailingTargets require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $tmparray = explode(';', GETPOST('xinputuser')); + $email = $tmparray[0]; - $lastname = $tmparray[1]; - $firstname = $tmparray[2]; - $other = $tmparray[3]; + $lastname = empty($tmparray[1]) ? '' : $tmparray[1]; + $firstname = empty($tmparray[2]) ? '' : $tmparray[2]; + $other = empty($tmparray[3]) ? '' : $tmparray[3]; $cibles = array(); if (!empty($email)) { diff --git a/htdocs/core/modules/member/doc/doc_generic_member_odt.class.php b/htdocs/core/modules/member/doc/doc_generic_member_odt.class.php index fb084f312fe..2d125d2743a 100644 --- a/htdocs/core/modules/member/doc/doc_generic_member_odt.class.php +++ b/htdocs/core/modules/member/doc/doc_generic_member_odt.class.php @@ -43,9 +43,9 @@ class doc_generic_member_odt extends ModelePDFMember /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -125,7 +125,7 @@ class doc_generic_member_odt extends ModelePDFMember // List of directories area $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -129,7 +129,7 @@ class mod_mo_advanced extends ModeleNumRefMos require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->MRP_MO_ADVANCED_MASK; + $mask = getDolGlobalString('MRP_MO_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/mrp/modules_mo.php b/htdocs/core/modules/mrp/modules_mo.php index 454df89bcde..c178a5d3eaf 100644 --- a/htdocs/core/modules/mrp/modules_mo.php +++ b/htdocs/core/modules/mrp/modules_mo.php @@ -50,8 +50,6 @@ abstract class ModelePDFMo extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'mrp'; $list = array(); @@ -87,7 +85,7 @@ abstract class ModeleNumRefMos /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/oauth/generic_oauthcallback.php b/htdocs/core/modules/oauth/generic_oauthcallback.php new file mode 100644 index 00000000000..34422111d5d --- /dev/null +++ b/htdocs/core/modules/oauth/generic_oauthcallback.php @@ -0,0 +1,194 @@ + + * Copyright (C) 2015 Frederic France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/core/modules/oauth/generic_oauthcallback.php + * \ingroup oauth + * \brief Page to get oauth callback + */ + +// Load Dolibarr environment +require '../../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; +use OAuth\Common\Storage\DoliStorage; +use OAuth\Common\Consumer\Credentials; +use OAuth\OAuth2\Service\GitHub; + +// Define $urlwithroot +$urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); +$urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file +//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current + + +$action = GETPOST('action', 'aZ09'); +$backtourl = GETPOST('backtourl', 'alpha'); +$keyforprovider = GETPOST('keyforprovider', 'aZ09'); +if (empty($keyforprovider) && !empty($_SESSION["oauthkeyforproviderbeforeoauthjump"]) && (GETPOST('code') || $action == 'delete')) { + $keyforprovider = $_SESSION["oauthkeyforproviderbeforeoauthjump"]; +} +$genericstring = 'OTHER'; + + +/** + * Create a new instance of the URI class with the current URI, stripping the query string + */ +$uriFactory = new \OAuth\Common\Http\Uri\UriFactory(); +//$currentUri = $uriFactory->createFromSuperGlobalArray($_SERVER); +//$currentUri->setQuery(''); +$currentUri = $uriFactory->createFromAbsolute($urlwithroot.'/core/modules/oauth/generic_oauthcallback.php'); + + +/** + * Load the credential for the service + */ + +/** @var $serviceFactory \OAuth\ServiceFactory An OAuth service factory. */ +$serviceFactory = new \OAuth\ServiceFactory(); +$httpClient = new \OAuth\Common\Http\Client\CurlClient(); +// TODO Set options for proxy and timeout +// $params=array('CURLXXX'=>value, ...) +//$httpClient->setCurlParameters($params); +$serviceFactory->setHttpClient($httpClient); + +// Dolibarr storage +$storage = new DoliStorage($db, $conf); + +// Setup the credentials for the requests +$keyforparamid = 'OAUTH_'.$genericstring.($keyforprovider ? '-'.$keyforprovider : '').'_ID'; +$keyforparamsecret = 'OAUTH_'.$genericstring.($keyforprovider ? '-'.$keyforprovider : '').'_SECRET'; +$credentials = new Credentials( + getDolGlobalString($keyforparamid), + getDolGlobalString($keyforparamsecret), + $currentUri->getAbsoluteUri() +); + +$requestedpermissionsarray = array(); +if (GETPOST('state')) { + $requestedpermissionsarray = explode(',', GETPOST('state')); // Example: 'user'. 'state' parameter is standard to retrieve some parameters back +} +if ($action != 'delete' && empty($requestedpermissionsarray)) { + print 'Error, parameter state is not defined'; + exit; +} +//var_dump($requestedpermissionsarray);exit; + +// Instantiate the Api service using the credentials, http client and storage mechanism for the token +$apiService = $serviceFactory->createService($genericstring, $credentials, $storage, $requestedpermissionsarray); + +/* +var_dump($genericstring.($keyforprovider ? '-'.$keyforprovider : '')); +var_dump($credentials); +var_dump($storage); +var_dump($requestedpermissionsarray); +*/ + +if (empty($apiService)) { + print 'Error, failed to create serviceFactory'; + exit; +} + +// access type needed to have oauth provider refreshing token +//$apiService->setAccessType('offline'); + +$langs->load("oauth"); + +if (!getDolGlobalString($keyforparamid)) { + accessforbidden('Setup of service is not complete. Customer ID is missing'); +} +if (!getDolGlobalString($keyforparamsecret)) { + accessforbidden('Setup of service is not complete. Secret key is missing'); +} + + +/* + * Actions + */ + +if ($action == 'delete') { + $storage->clearToken($genericstring); + + setEventMessages($langs->trans('TokenDeleted'), null, 'mesgs'); + + header('Location: '.$backtourl); + exit(); +} + +if (GETPOST('code')) { // We are coming from oauth provider page + // We should have + //$_GET=array('code' => string 'aaaaaaaaaaaaaa' (length=20), 'state' => string 'user,public_repo' (length=16)) + + dol_syslog("We are coming from the oauth provider page"); + //llxHeader('',$langs->trans("OAuthSetup")); + + //$linkback=''.$langs->trans("BackToModuleList").''; + //print load_fiche_titre($langs->trans("OAuthSetup"),$linkback,'title_setup'); + + //print dol_get_fiche_head(); + // retrieve the CSRF state parameter + $state = GETPOSTISSET('state') ? GETPOST('state') : null; + //print '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'   
    '; $texttitle = $langs->trans("ListOfDirectories"); - $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim($conf->global->MEMBER_ADDON_PDF_ODT_PATH))); + $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim(getDolGlobalString('MEMBER_ADDON_PDF_ODT_PATH')))); $listoffiles = array(); foreach ($listofdir as $key => $tmpdir) { $tmpdir = trim($tmpdir); @@ -151,7 +151,7 @@ class doc_generic_member_odt extends ModelePDFMember $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); $texte .= '
    '; $texte .= ''; $texte .= '
    '; $texte .= ''; @@ -164,12 +164,20 @@ class doc_generic_member_odt extends ModelePDFMember $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -258,11 +266,11 @@ class doc_generic_member_odt extends ModelePDFMember if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -271,11 +279,11 @@ class doc_generic_member_odt extends ModelePDFMember if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -283,8 +291,8 @@ class doc_generic_member_odt extends ModelePDFMember dol_mkdir($conf->adherent->dir_temp); if (!is_writable($conf->adherent->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->adherent->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->adherent->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/member/doc/pdf_standard.class.php b/htdocs/core/modules/member/doc/pdf_standard.class.php index 0fc13cbe134..5a038e67c6d 100644 --- a/htdocs/core/modules/member/doc/pdf_standard.class.php +++ b/htdocs/core/modules/member/doc/pdf_standard.class.php @@ -173,14 +173,14 @@ class pdf_standard extends CommonStickerGenerator $widthtouse = $maxwidthtouse; $heighttouse = 0; // old value for image $tmp = dol_getImageSize($photo, false); - if ($tmp['height']) { + if (isset($tmp['height'])) { $imgratio = $tmp['width'] / $tmp['height']; if ($imgratio >= $defaultratio) { $widthtouse = $maxwidthtouse; $heighttouse = round($widthtouse / $imgratio); } else { - $heightouse = $maxheighttouse; - $widthtouse = round($heightouse * $imgratio); + $heighttouse = $maxheighttouse; + $widthtouse = round($heighttouse * $imgratio); } } //var_dump($this->_Width.'x'.$this->_Height.' with border and scale '.$imgscale.' => max '.$maxwidthtouse.'x'.$maxheighttouse.' => We use '.$widthtouse.'x'.$heighttouse);exit; @@ -314,10 +314,10 @@ class pdf_standard extends CommonStickerGenerator complete_substitutions_array($substitutionarray, $langs); // For business cards - $textleft = make_substitutions($conf->global->ADHERENT_CARD_TEXT, $substitutionarray); - $textheader = make_substitutions($conf->global->ADHERENT_CARD_HEADER_TEXT, $substitutionarray); - $textfooter = make_substitutions($conf->global->ADHERENT_CARD_FOOTER_TEXT, $substitutionarray); - $textright = make_substitutions($conf->global->ADHERENT_CARD_TEXT_RIGHT, $substitutionarray); + $textleft = make_substitutions(getDolGlobalString("ADHERENT_CARD_TEXT"), $substitutionarray); + $textheader = make_substitutions(getDolGlobalString("ADHERENT_CARD_HEADER_TEXT"), $substitutionarray); + $textfooter = make_substitutions(getDolGlobalString("ADHERENT_CARD_FOOTER_TEXT"), $substitutionarray); + $textright = make_substitutions(getDolGlobalString("ADHERENT_CARD_TEXT_RIGHT"), $substitutionarray); $nb = $_Avery_Labels[$this->code]['NX'] * $_Avery_Labels[$this->code]['NY']; if ($nb <= 0) { @@ -330,8 +330,8 @@ class pdf_standard extends CommonStickerGenerator 'textheader'=>$textheader, 'textfooter'=>$textfooter, 'textright'=>$textright, - 'id'=>$object->rowid, - 'photo'=>$object->photo + 'id'=>(isset($object->rowid) ? $object->rowid : ""), + 'photo'=>(isset($object->photo) ? $object->photo : "") ); } @@ -412,7 +412,7 @@ class pdf_standard extends CommonStickerGenerator $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($keywords); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } diff --git a/htdocs/core/modules/member/mod_member_advanced.php b/htdocs/core/modules/member/mod_member_advanced.php new file mode 100644 index 00000000000..3edb86030e8 --- /dev/null +++ b/htdocs/core/modules/member/mod_member_advanced.php @@ -0,0 +1,165 @@ + + * Copyright (C) 2022 Frédéric France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file htdocs/core/modules/member/mod_member_advanced.php + * \ingroup member + * \brief File with class to manage the numbering module Advanced for member references + */ + +require_once DOL_DOCUMENT_ROOT.'/core/modules/member/modules_member.class.php'; + + +/** + * Class to manage the numbering module Advanced for member references + */ +class mod_member_advanced extends ModeleNumRefMembers +{ + /** + * Dolibarr version of the loaded document + * @var string + */ + public $version = 'dolibarr'; + + /** + * prefix + * + * @var string + */ + public $prefix = 'MEM'; + + /** + * @var string Error code (or message) + */ + public $error = ''; + + /** + * @var string model name + */ + public $name = 'Advanced'; + + /** + * @var int Automatic numbering + */ + public $code_auto = 1; + + /** + * Return description of numbering module + * + * @return string Text with description + */ + public function info() + { + global $langs; + return $langs->trans("AdvancedNumRefModelDesc", $this->prefix); + } + + + /** + * Return an example of numbering module values + * + * @return string Example + */ + public function getExample() + { + return $this->prefix."2301-0001"; + } + + + /** + * Checks if the numbers already in the database do not + * cause conflicts that would prevent this numbering working. + * + * @return boolean false if conflict, true if ok + */ + public function canBeActivated() + { + global $conf, $langs, $db; + + $coyymm = ''; + $max = ''; + + $posindice = strlen($this->prefix) + 6; + $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent"; + $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; + $sql .= " AND entity = ".$conf->entity; + $resql = $db->query($sql); + if ($resql) { + $row = $db->fetch_row($resql); + if ($row) { + $coyymm = substr($row[0], 0, 6); + $max = $row[0]; + } + } + if (!$coyymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i', $coyymm)) { + return true; + } else { + $langs->load("errors"); + $this->error = $langs->trans('ErrorNumRefModel', $max); + return false; + } + } + + + /** + * Return next value + * + * @param Societe $objsoc Object third party + * @param Member $object Object we need next value for + * @return string Value if OK, 0 if KO + */ + public function getNextValue($objsoc, $object) + { + global $db, $conf; + + // First, we get the max value + $posindice = strlen($this->prefix) + 6; + $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent"; + $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; + $sql .= " AND entity = ".$conf->entity; + + $resql = $db->query($sql); + if ($resql) { + $obj = $db->fetch_object($resql); + if ($obj) { + $max = intval($obj->max); + } else { + $max = 0; + } + } else { + dol_syslog("mod_member_advanced::getNextValue", LOG_DEBUG); + return -1; + } + + $date = empty($object->datec) ? dol_now() : $object->datec; + + $yymm = dol_print_date($date, '%y%m', 'gmt'); + + if ($max >= (pow(10, 4) - 1)) { + $num = $max + 1; // If counter > 9999, we do not format on 4 chars, we take number as it is + } else { + $num = sprintf("%04s", $max + 1); + } + + dol_syslog("mod_member_advanced::getNextValue return ".$this->prefix.$yymm."-".$num, LOG_INFO); + return $this->prefix.$yymm."-".$num; + } +} diff --git a/htdocs/core/modules/member/mod_member_simple.php b/htdocs/core/modules/member/mod_member_simple.php index 50eccd0f244..c45738c85cb 100644 --- a/htdocs/core/modules/member/mod_member_simple.php +++ b/htdocs/core/modules/member/mod_member_simple.php @@ -1,5 +1,6 @@ + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,27 +35,29 @@ class mod_member_simple extends ModeleNumRefMembers * Dolibarr version of the loaded document * @var string */ - public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr' + public $version = 'dolibarr'; - public $prefix = 'MEM'; + /** + * prefix + * + * @var string + */ + public $prefix = ''; /** * @var string Error code (or message) */ public $error = ''; - /** - * @var string Nom du modele - * @deprecated - * @see $name - */ - public $nom = 'Simple'; - /** * @var string model name */ public $name = 'Simple'; + /** + * @var int Automatic numbering + */ + public $code_auto = 1; /** * Return description of numbering module @@ -64,7 +67,7 @@ class mod_member_simple extends ModeleNumRefMembers public function info() { global $langs; - return $langs->trans("SimpleNumRefModelDesc", $this->prefix); + return $langs->trans("SimpleRefNumRefModelDesc"); } @@ -75,7 +78,7 @@ class mod_member_simple extends ModeleNumRefMembers */ public function getExample() { - return $this->prefix."0501-0001"; + return "1"; } @@ -92,11 +95,9 @@ class mod_member_simple extends ModeleNumRefMembers $coyymm = ''; $max = ''; - $posindice = strlen($this->prefix) + 6; - $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; + $sql = "SELECT MAX(CAST(ref AS SIGNED)) as max"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent"; - $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; - $sql .= " AND entity = ".$conf->entity; + $sql .= " WHERE entity = ".$conf->entity; $resql = $db->query($sql); if ($resql) { $row = $db->fetch_row($resql); @@ -105,7 +106,7 @@ class mod_member_simple extends ModeleNumRefMembers $max = $row[0]; } } - if (!$coyymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i', $coyymm)) { + if (!$coyymm || preg_match('/[0-9][0-9][0-9][0-9]/i', $coyymm)) { return true; } else { $langs->load("errors"); @@ -119,65 +120,31 @@ class mod_member_simple extends ModeleNumRefMembers * Return next value * * @param Societe $objsoc Object third party - * @param Object $object Object we need next value for + * @param Member $object Object we need next value for * @return string Value if OK, 0 if KO */ public function getNextValue($objsoc, $object) { - global $db, $conf; + global $conf, $db; - /* - // First, we get the max value - $posindice = strlen($this->prefix) + 6; - $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; + // the ref of a member is the rowid + $sql = "SELECT MAX(CAST(ref AS SIGNED)) as max"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent"; - $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; - $sql .= " AND entity = ".$conf->entity; + $sql .= " WHERE entity = ".(int) $conf->entity; $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); if ($obj) { - $max = intval($obj->max); + $max = intval($obj->max) + 1; } else { - $max = 0; + $max = 1; } } else { dol_syslog("mod_member_simple::getNextValue", LOG_DEBUG); return -1; } - - $date = empty($object->date_c) ? dol_now() : $object->date_c; - - //$yymm = strftime("%y%m",time()); - $yymm = strftime("%y%m", $date); - - if ($max >= (pow(10, 4) - 1)) { - $num = $max + 1; // If counter > 9999, we do not format on 4 chars, we take number as it is - } else { - $num = sprintf("%04s", $max + 1); - } - - dol_syslog("mod_member_simple::getNextValue return ".$this->prefix.$yymm."-".$num); - return $this->prefix.$yymm."-".$num; - */ - - // For the moment, the ref of a member is the rowid - $sql = "SELECT MAX(rowid) as max"; - $sql .= " FROM ".MAIN_DB_PREFIX."adherent"; - - $resql = $db->query($sql); - if ($resql) { - $obj = $db->fetch_object($resql); - if ($obj) { - $max = intval($obj->max); - } else { - $max = 0; - } - } else { - dol_syslog("mod_member_simple::getNextValue", LOG_DEBUG); - return -1; - } - return ($max + 1); + $max = str_pad((string) $max, getDolGlobalInt('MEMBER_MOD_SIMPLE_LPAD'), "0", STR_PAD_LEFT); + return $max; } } diff --git a/htdocs/core/modules/member/modules_cards.php b/htdocs/core/modules/member/modules_cards.php index b37b9144d3e..0147f42f6c7 100644 --- a/htdocs/core/modules/member/modules_cards.php +++ b/htdocs/core/modules/member/modules_cards.php @@ -51,8 +51,6 @@ class ModelePDFCards public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'member'; $list = array(); diff --git a/htdocs/core/modules/member/modules_member.class.php b/htdocs/core/modules/member/modules_member.class.php index cdc37231901..77ab5621915 100644 --- a/htdocs/core/modules/member/modules_member.class.php +++ b/htdocs/core/modules/member/modules_member.class.php @@ -51,7 +51,6 @@ abstract class ModelePDFMember extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - $type = 'member'; $list = array(); @@ -84,9 +83,9 @@ abstract class ModeleNumRefMembers } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -95,6 +94,16 @@ abstract class ModeleNumRefMembers return $langs->trans("NoDescription"); } + /** + * Return name of module + * + * @return string Module name + */ + public function getName() + { + return $this->name; + } + /** * Return an example of numbering * @@ -153,4 +162,50 @@ abstract class ModeleNumRefMembers return $langs->trans("NotAvailable"); } } + + /** + * Return description of module parameters + * + * @param Translate $langs Output language + * @param Societe $soc Third party object + * @return string HTML translated description + */ + public function getToolTip($langs, $soc) + { + global $conf; + + $langs->loadLangs(array("admin", "companies")); + + $strikestart = ''; + $strikeend = ''; + if (!empty($conf->global->MAIN_MEMBER_CODE_ALWAYS_REQUIRED) && !empty($this->code_null)) { + $strikestart = ''; + $strikeend = ' '.yn(1, 1, 2).' ('.$langs->trans("ForcedToByAModule", $langs->transnoentities("yes")).')'; + } + + $s = ''; + $s .= $langs->trans("Name").': '.$this->getName().'
    '; + $s .= $langs->trans("Version").': '.$this->getVersion().'
    '; + $s .= $langs->trans("MemberCodeDesc").'
    '; + $s .= $langs->trans("ValidityControledByModule").': '.$this->getName().'
    '; + $s .= '
    '; + $s .= ''.$langs->trans("ThisIsModuleRules").':
    '; + + $s .= $langs->trans("Required").': '.$strikestart; + $s .= yn(!$this->code_null, 1, 2).$strikeend; + $s .= '
    '; + $s .= $langs->trans("CanBeModifiedIfOk").': '; + $s .= yn($this->code_modifiable, 1, 2); + $s .= '
    '; + $s .= $langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide, 1, 2).'
    '; + $s .= $langs->trans("AutomaticCode").': '.yn($this->code_auto, 1, 2).'
    '; + $s .= '
    '; + $nextval = $this->getNextValue($soc, 0); + if (empty($nextval)) { + $nextval = $langs->trans("Undefined"); + } + $s .= $langs->trans("NextValue").' ('.$langs->trans("Member").'): '.$nextval.'
    '; + + return $s; + } } diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 5e30978693e..e5cff7e9301 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -66,7 +66,7 @@ class modAccounting extends DolibarrModules $this->depends = array("modFacture", "modBanque", "modTax"); // List of modules id that must be enabled if this module is enabled $this->requiredby = array(); // List of modules id to disable if this one is disabled $this->conflictwith = array("modComptabilite"); // List of modules are in conflict with this module - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 9); // Minimum version of Dolibarr required by module $this->langfiles = array("accountancy", "compta"); @@ -258,20 +258,40 @@ class modAccounting extends DolibarrModules $this->export_label[$r] = 'Chartofaccounts'; $this->export_icon[$r] = $this->picto; $this->export_permission[$r] = array(array("accounting", "chartofaccount")); - $this->export_fields_array[$r] = array('ac.rowid'=>'ChartofaccountsId', 'ac.pcg_version'=>'Chartofaccounts', 'aa.rowid'=>'ID', 'aa.account_number'=>"AccountAccounting", 'aa.label'=>"Label", 'aa.account_parent'=>"Accountparent", 'aa.pcg_type'=>"Pcgtype", 'aa.active'=>'Status'); - $this->export_TypeFields_array[$r] = array('ac.rowid'=>'List:accounting_system:pcg_version', 'ac.pcg_version'=>'Text', 'aa.rowid'=>'Numeric', 'aa.account_number'=>"Text", 'aa.label'=>"Text", 'aa.account_parent'=>"Text", 'aa.pcg_type'=>'Text', 'aa.active'=>'Status'); - $this->export_entities_array[$r] = array('ac.rowid'=>"Accounting", 'ac.pcg_version'=>"Accounting", 'aa.rowid'=>'Accounting', 'aa.account_number'=>"Accounting", 'aa.label'=>"Accounting", 'aa.accountparent'=>"Accounting", 'aa.pcg_type'=>"Accounting", 'aa_active'=>"Accounting"); + $this->export_fields_array[$r] = array('ac.rowid'=>'ChartofaccountsId', 'ac.pcg_version'=>'Chartofaccounts', 'aa.rowid'=>'ID', 'aa.account_number'=>"AccountAccounting", 'aa.label'=>"Label", 'aa2.account_number'=>"Accountparent", 'aa.pcg_type'=>"Pcgtype", 'aa.active'=>'Status'); + $this->export_TypeFields_array[$r] = array('ac.rowid'=>'List:accounting_system:pcg_version', 'ac.pcg_version'=>'Text', 'aa.rowid'=>'Numeric', 'aa.account_number'=>"Text", 'aa.label'=>"Text", 'aa2.account_number'=>"Text", 'aa.pcg_type'=>'Text', 'aa.active'=>'Status'); + $this->export_entities_array[$r] = array(); // We define here only fields that use another picto $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'accounting_account as aa'; $this->export_sql_end[$r] .= ' ,'.MAIN_DB_PREFIX.'accounting_system as ac'; - $this->export_sql_end[$r] .= ' WHERE ac.pcg_version = aa.fk_pcg_version AND aa.entity IN ('.getEntity('accounting').') '; + $this->export_sql_end[$r] .= ' ,'.MAIN_DB_PREFIX.'accounting_account as aa2'; + $this->export_sql_end[$r] .= ' WHERE ac.pcg_version = aa.fk_pcg_version AND aa.entity IN ('.getEntity('accounting').')'; + $this->export_sql_end[$r] .= ' AND aa2.rowid = aa.account_parent AND aa2.active = 1 AND ac.pcg_version = aa2.fk_pcg_version AND aa2.entity IN ('.getEntity('accounting').')'; // Imports //-------- $r = 0; + // Chart of accounts + $r++; + $this->import_code[$r] = $this->rights_class.'_'.$r; + $this->import_label[$r] = "Chartofaccounts"; // Translation key + $this->import_icon[$r] = $this->picto; + $this->import_entities_array[$r] = array(); // We define here only fields that use another icon that the one defined into import_icon + $this->import_tables_array[$r] = array('aa'=>MAIN_DB_PREFIX.'accounting_account'); + $this->import_tables_creator_array[$r] = array('aa'=>'fk_user_author'); // Fields to store import user id + $this->import_fields_array[$r] = array('aa.fk_pcg_version'=>"Chartofaccounts*", 'aa.account_number'=>"AccountAccounting*", 'aa.label'=>"Label*", 'aa.account_parent'=>"Accountparent", "aa.fk_accounting_category"=>"AccountingCategory", "aa.pcg_type"=>"Pcgtype*", 'aa.active'=>'Status*', 'aa.datec'=>"DateCreation"); + $this->import_regex_array[$r] = array('aa.fk_pcg_version'=>'pcg_version@'.MAIN_DB_PREFIX.'accounting_system', 'aa.account_number'=>'^.{1,32}$', 'aa.label'=>'^.{1,255}$', 'aa.account_parent'=>'^.{0,32}$', 'aa.fk_accounting_category'=>'rowid@'.MAIN_DB_PREFIX.'c_accounting_category', 'aa.pcg_type'=>'^.{1,20}$', 'aa.active'=>'^0|1$', 'aa.datec'=>'^\d{4}-\d{2}-\d{2}$'); + $this->import_convertvalue_array[$r] = array( + 'aa.account_number'=>array('rule'=>'accountingaccount'), + 'aa.account_parent'=>array('rule'=>'fetchidfromref', 'classfile'=>'/accountancy/class/accountingaccount.class.php', 'class'=>'AccountingAccount', 'method'=>'fetch', 'element'=>'AccountingAccount'), + 'aa.fk_accounting_category'=>array('rule'=>'fetchidfromcodeorlabel', 'classfile'=>'/accountancy/class/accountancycategory.class.php', 'class'=>'AccountancyCategory', 'method'=>'fetch', 'dict'=>'DictionaryAccountancyCategory'), + ); + $this->import_examplevalues_array[$r] = array('aa.fk_pcg_version'=>"PCG99-ABREGE", 'aa.account_number'=>"707", 'aa.label'=>"Product sales", 'aa.account_parent'=>"ref:7 or id:1407", "aa.fk_accounting_category"=>"", "aa.pcg_type"=>"PROD", 'aa.active'=>'1', 'aa.datec'=>"2017-04-28"); + $this->import_updatekeys_array[$r] = array('aa.fk_pcg_version'=>'Chartofaccounts', 'aa.account_number'=>'AccountAccounting'); + // General ledger $r++; $this->import_code[$r] = $this->rights_class.'_'.$r; @@ -393,23 +413,5 @@ class modAccounting extends DolibarrModules 'b.multicurrency_amount'=>"90 (Necessary if devise is different than EUR)", 'b.multicurrency_code'=>"US (Necessary if devise is different than EUR)", ); - - // Chart of accounts - $r++; - $this->import_code[$r] = $this->rights_class.'_'.$r; - $this->import_label[$r] = "Chartofaccounts"; // Translation key - $this->import_icon[$r] = $this->picto; - $this->import_entities_array[$r] = array(); // We define here only fields that use another icon that the one defined into import_icon - $this->import_tables_array[$r] = array('aa'=>MAIN_DB_PREFIX.'accounting_account'); - $this->import_tables_creator_array[$r] = array('aa'=>'fk_user_author'); // Fields to store import user id - $this->import_fields_array[$r] = array('aa.fk_pcg_version'=>"Chartofaccounts*", 'aa.account_number'=>"AccountAccounting*", 'aa.label'=>"Label*", 'aa.account_parent'=>"Accountparent", "aa.fk_accounting_category"=>"AccountingCategory", "aa.pcg_type"=>"Pcgtype*", 'aa.active'=>'Status*', 'aa.datec'=>"DateCreation"); - $this->import_regex_array[$r] = array('aa.fk_pcg_version'=>'pcg_version@'.MAIN_DB_PREFIX.'accounting_system', 'aa.account_number'=>'^.{1,32}$', 'aa.label'=>'^.{1,255}$', 'aa.account_parent'=>'^.{0,32}$', 'aa.fk_accounting_category'=>'rowid@'.MAIN_DB_PREFIX.'c_accounting_category', 'aa.pcg_type'=>'^.{1,20}$', 'aa.active'=>'^0|1$', 'aa.datec'=>'^\d{4}-\d{2}-\d{2}$'); - $this->import_convertvalue_array[$r] = array( - 'aa.account_number'=>array('rule'=>'accountingaccount'), - 'aa.account_parent'=>array('rule'=>'fetchidfromref', 'classfile'=>'/accountancy/class/accountingaccount.class.php', 'class'=>'AccountingAccount', 'method'=>'fetch', 'element'=>'AccountingAccount'), - 'aa.fk_accounting_category'=>array('rule'=>'fetchidfromcodeorlabel', 'classfile'=>'/accountancy/class/accountancycategory.class.php', 'class'=>'AccountancyCategory', 'method'=>'fetch', 'dict'=>'DictionaryAccountancyCategory'), - ); - $this->import_examplevalues_array[$r] = array('aa.fk_pcg_version'=>"PCG99-ABREGE", 'aa.account_number'=>"707", 'aa.label'=>"Product sales", 'aa.account_parent'=>"ref:7 or id:1407", "aa.fk_accounting_category"=>"", "aa.pcg_type"=>"PROD", 'aa.active'=>'1', 'aa.datec'=>"2017-04-28"); - $this->import_updatekeys_array[$r] = array('aa.fk_pcg_version'=>'Chartofaccounts', 'aa.account_number'=>'AccountAccounting'); } } diff --git a/htdocs/core/modules/modAdherent.class.php b/htdocs/core/modules/modAdherent.class.php index 0d4a85e00ae..2422cead7bb 100644 --- a/htdocs/core/modules/modAdherent.class.php +++ b/htdocs/core/modules/modAdherent.class.php @@ -74,7 +74,7 @@ class modAdherent extends DolibarrModules $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array('modMailmanSpip'); // List of module class names as string this module is in conflict with $this->langfiles = array("members", "companies"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Constants $this->const = array(); @@ -145,7 +145,7 @@ class modAdherent extends DolibarrModules $this->const[$r][4] = 0; $r++; - $this->const[$r][0] = "ADHERENT_MAILMAN_ADMINPW"; + $this->const[$r][0] = "ADHERENT_MAILMAN_ADMIN_PASSWORD"; $this->const[$r][1] = "chaine"; $this->const[$r][2] = ""; $this->const[$r][3] = "Mot de passe Admin des liste mailman"; @@ -250,7 +250,7 @@ class modAdherent extends DolibarrModules $r++; $this->rights[$r][0] = 78; - $this->rights[$r][1] = 'Read subscriptions'; + $this->rights[$r][1] = 'Read membership fees'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'cotisation'; @@ -258,7 +258,7 @@ class modAdherent extends DolibarrModules $r++; $this->rights[$r][0] = 79; - $this->rights[$r][1] = 'Create/modify/remove subscriptions'; + $this->rights[$r][1] = 'Create/modify/remove membership fees'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'cotisation'; @@ -286,8 +286,8 @@ class modAdherent extends DolibarrModules $this->export_label[$r] = 'MembersAndSubscriptions'; $this->export_permission[$r] = array(array("adherent", "export")); $this->export_fields_array[$r] = array( - 'a.rowid'=>'Id', 'a.civility'=>"UserTitle", 'a.lastname'=>"Lastname", 'a.firstname'=>"Firstname", 'a.login'=>"Login", 'a.gender'=>"Gender", 'a.morphy'=>'MemberNature', - 'a.societe'=>'Company', 'a.address'=>"Address", 'a.zip'=>"Zip", 'a.town'=>"Town", 'd.nom'=>"State", 'co.code'=>"CountryCode", 'co.label'=>"Country", + 'a.rowid'=>'MemberId', 'a.ref'=>'MemberRef', 'a.civility'=>"UserTitle", 'a.lastname'=>"Lastname", 'a.firstname'=>"Firstname", 'a.login'=>"Login", 'a.gender'=>"Gender", 'a.morphy'=>'MemberNature', + 'a.societe'=>'Company', 'a.address'=>"Address", 'a.zip'=>"Zip", 'a.town'=>"Town", 'd.code_departement'=>'StateCode', 'd.nom'=>"State", 'co.code'=>"CountryCode", 'co.label'=>"Country", 'a.phone'=>"PhonePro", 'a.phone_perso'=>"PhonePerso", 'a.phone_mobile'=>"PhoneMobile", 'a.email'=>"Email", 'a.birth'=>"Birthday", 'a.statut'=>"Status", 'a.photo'=>"Photo", 'a.note_public'=>"NotePublic", 'a.note_private'=>"NotePrivate", 'a.datec'=>'DateCreation', 'a.datevalid'=>'DateValidation', 'a.tms'=>'DateLastModification', 'a.datefin'=>'DateEndSubscription', 'ta.rowid'=>'MemberTypeId', 'ta.libelle'=>'MemberTypeLabel', @@ -301,7 +301,7 @@ class modAdherent extends DolibarrModules 'c.rowid'=>'Numeric', 'c.dateadh'=>'Date', 'c.datef'=>'Date', 'c.subscription'=>'Numeric' ); $this->export_entities_array[$r] = array( - 'a.rowid'=>'member', 'a.civility'=>"member", 'a.lastname'=>"member", 'a.firstname'=>"member", 'a.login'=>"member", 'a.gender'=>'member', 'a.morphy'=>'member', + 'a.rowid'=>'member', 'a.ref'=>'member', 'a.civility'=>"member", 'a.lastname'=>"member", 'a.firstname'=>"member", 'a.login'=>"member", 'a.gender'=>'member', 'a.morphy'=>'member', 'a.societe'=>'member', 'a.address'=>"member", 'a.zip'=>"member", 'a.town'=>"member", 'd.nom'=>"member", 'co.code'=>"member", 'co.label'=>"member", 'a.phone'=>"member", 'a.phone_perso'=>"member", 'a.phone_mobile'=>"member", 'a.email'=>"member", 'a.birth'=>"member", 'a.statut'=>"member", 'a.photo'=>"member", 'a.note_public'=>"member", 'a.note_private'=>"member", 'a.datec'=>'member', 'a.datevalid'=>'member', 'a.tms'=>'member', @@ -338,14 +338,14 @@ class modAdherent extends DolibarrModules $this->import_tables_array[$r] = array('a'=>MAIN_DB_PREFIX.'adherent', 'extra'=>MAIN_DB_PREFIX.'adherent_extrafields'); $this->import_tables_creator_array[$r] = array('a'=>'fk_user_author'); // Fields to store import user id $this->import_fields_array[$r] = array( - 'a.ref' => 'Member Ref*', + 'a.ref' => 'MemberRef*', 'a.civility'=>"UserTitle", 'a.lastname'=>"Lastname*", 'a.firstname'=>"Firstname", 'a.gender'=>"Gender", 'a.login'=>"Login*", "a.pass"=>"Password", - "a.fk_adherent_type"=>"MemberType*", 'a.morphy'=>'MemberNature*', 'a.societe'=>'Company', 'a.address'=>"Address", 'a.zip'=>"Zip", 'a.town'=>"Town", - 'a.state_id'=>'StateId', 'a.country'=>"CountryId", 'a.phone'=>"PhonePro", 'a.phone_perso'=>"PhonePerso", 'a.phone_mobile'=>"PhoneMobile", + "a.fk_adherent_type"=>"MemberTypeId*", 'a.morphy'=>'MemberNature*', 'a.societe'=>'Company', 'a.address'=>"Address", 'a.zip'=>"Zip", 'a.town'=>"Town", + 'a.state_id'=>'StateId|StateCode', 'a.country'=>"CountryId|CountryCode", 'a.phone'=>"PhonePro", 'a.phone_perso'=>"PhonePerso", 'a.phone_mobile'=>"PhoneMobile", 'a.email'=>"Email", 'a.birth'=>"Birthday", 'a.statut'=>"Status*", 'a.photo'=>"Photo", 'a.note_public'=>"NotePublic", 'a.note_private'=>"NotePrivate", 'a.datec'=>'DateCreation', 'a.datefin'=>'DateEndSubscription' ); - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $this->import_fields_array[$r]['a.fk_soc'] = "ThirdParty"; } // Add extra fields @@ -380,7 +380,7 @@ class modAdherent extends DolibarrModules 'dict' => 'DictionaryCountry' ) ); - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $this->import_convertvalue_array[$r]['a.fk_soc'] = array('rule'=>'fetchidfromref', 'classfile'=>'/societe/class/societe.class.php', 'class'=>'Societe', 'method'=>'fetch', 'element'=>'ThirdParty'); } $this->import_fieldshidden_array[$r] = array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'adherent'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent) @@ -394,10 +394,10 @@ class modAdherent extends DolibarrModules 'a.email'=>'jsmith@example.com', 'a.birth'=>'1972-10-10', 'a.statut'=>"0 or 1", 'a.note_public'=>"This is a public comment on member", 'a.note_private'=>"This is private comment on member", 'a.datec'=>dol_print_date($now, '%Y-%m__%d'), 'a.datefin'=>dol_print_date(dol_time_plus_duree($now, 1, 'y'), '%Y-%m-%d') ); - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $this->import_examplevalues_array[$r]['a.fk_soc'] = "rowid or name"; } - $this->import_updatekeys_array[$r] = array('a.ref'=>'Member Ref', 'a.login'=>'Login'); + $this->import_updatekeys_array[$r] = array('a.ref'=>'MemberRef', 'a.login'=>'Login'); // Cronjobs $arraydate = dol_getdate(dol_now()); diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php index cac9047e56e..38debb8633a 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -73,7 +73,7 @@ class modAgenda extends DolibarrModules $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->langfiles = array("companies"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Module parts $this->module_parts = array(); @@ -241,7 +241,7 @@ class modAgenda extends DolibarrModules 'url'=>'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create', 'langs'=>'commercial', 'position'=>101, - 'perms'=>'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)', + 'perms'=>'($user->hasRight("agenda", "myactions", "create")||$user->hasRight("agenda", "allactions", "create"))', 'enabled'=>'$conf->agenda->enabled', 'target'=>'', 'user'=>2 diff --git a/htdocs/core/modules/modApi.class.php b/htdocs/core/modules/modApi.class.php index 6ad632c944e..30751fc5222 100644 --- a/htdocs/core/modules/modApi.class.php +++ b/htdocs/core/modules/modApi.class.php @@ -83,7 +83,7 @@ class modApi extends DolibarrModules $this->depends = array(); // List of modules id that must be enabled if this module is enabled $this->requiredby = array('modZapier'); // List of modules id to disable if this one is disabled $this->conflictwith = array(); // List of modules id this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("other"); // Constants @@ -107,7 +107,7 @@ class modApi extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -152,37 +152,20 @@ class modApi extends DolibarrModules $this->menu = array(); // List of menus to add $r = 0; - // Add here entries to declare new menus - // - // Example to declare a new Top Menu entry and its Left menu entry: - // $this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu - // 'type'=>'top', // This is a Top menu entry - // 'titre'=>'Api top menu', - // 'mainmenu'=>'api', - // 'leftmenu'=>'api', - // 'url'=>'/api/pagetop.php', - // 'langs'=>'mylangfile@api', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - // 'position'=>100, - // 'enabled'=>'$conf->api->enabled', // Define condition to show or hide menu entry. Use '$conf->api->enabled' if entry must be visible if module is enabled. - // 'perms'=>'1', // Use 'perms'=>'$user->rights->api->level1->level2' if you want your menu with a permission rules - // 'target'=>'', - // 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - // $r++; - // - // Example to declare a Left Menu entry into an existing Top menu entry: - // $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=xxx', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode - // 'type'=>'left', // This is a Left menu entry - // 'titre'=>'Api left menu', - // 'mainmenu'=>'xxx', - // 'leftmenu'=>'api', - // 'url'=>'/api/pagelevel2.php', - // 'langs'=>'mylangfile@api', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - // 'position'=>100, - // 'enabled'=>'$conf->api->enabled', // Define condition to show or hide menu entry. Use '$conf->api->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. - // 'perms'=>'1', // Use 'perms'=>'$user->rights->api->level1->level2' if you want your menu with a permission rules - // 'target'=>'', - // 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - // $r++; + $this->menu[$r] = array('fk_menu'=>'fk_mainmenu=tools', + 'type'=>'left', + 'titre'=>'ApiExplorer', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth"'), + 'mainmenu'=>'tools', + 'leftmenu'=>'devtools_api', + 'url'=>'/api/index.php/explorer', + 'langs'=>'modulebuilder', + 'position'=>100, + 'perms'=>'1', + //'enabled'=>'isModEnabled("api") && preg_match(\'/^(devtools)/\',$leftmenu)', + 'enabled'=>'isModEnabled("api")', + 'target'=>'_apiexplorer', + 'user'=>0); // Exports diff --git a/htdocs/core/modules/modAsset.class.php b/htdocs/core/modules/modAsset.class.php index a217cb8d72c..a0fb405887e 100644 --- a/htdocs/core/modules/modAsset.class.php +++ b/htdocs/core/modules/modAsset.class.php @@ -90,7 +90,7 @@ class modAsset extends DolibarrModules $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->langfiles = array("assets"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(7, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -137,7 +137,7 @@ class modAsset extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modBanque.class.php b/htdocs/core/modules/modBanque.class.php index e44d8b59374..0cf58098967 100644 --- a/htdocs/core/modules/modBanque.class.php +++ b/htdocs/core/modules/modBanque.class.php @@ -162,7 +162,7 @@ class modBanque extends DolibarrModules "s.nom"=>"company", "s.code_compta"=>"company", "s.code_compta_fournisseur"=>"company" ); $this->export_special_array[$r] = array('-b.amount'=>'NULLIFNEG', 'b.amount'=>'NULLIFNEG'); - if ((empty($conf->fournisseur->enabled) && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_order->enabled) || empty($conf->supplier_invoice->enabled)) { + if ((!isModEnabled('fournisseur') && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !isModEnabled('supplier_order') || !isModEnabled('supplier_invoice')) { unset($this->export_fields_array[$r]['s.code_compta_fournisseur']); unset($this->export_entities_array[$r]['s.code_compta_fournisseur']); } diff --git a/htdocs/core/modules/modBarcode.class.php b/htdocs/core/modules/modBarcode.class.php index ced58f9b6c4..ef0f1b7166a 100644 --- a/htdocs/core/modules/modBarcode.class.php +++ b/htdocs/core/modules/modBarcode.class.php @@ -77,18 +77,28 @@ class modBarcode extends DolibarrModules // Permissions $this->rights = array(); $this->rights_class = 'barcode'; + $r = 0; - $this->rights[1][0] = 301; // id de la permission - $this->rights[1][1] = 'Read barcodes'; // libelle de la permission - $this->rights[1][2] = 'r'; // type de la permission (deprecie a ce jour) - $this->rights[1][3] = 1; // La permission est-elle une permission par defaut - $this->rights[1][4] = 'lire_advance'; + $this->rights[$r][0] = 301; // id de la permission + $this->rights[$r][1] = 'Generate PDF sheets of barcodes'; // libelle de la permission + $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 1; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'read'; + $r++; - $this->rights[2][0] = 302; // id de la permission - $this->rights[2][1] = 'Create/modify barcodes'; // libelle de la permission - $this->rights[2][2] = 'w'; // type de la permission (deprecie a ce jour) - $this->rights[2][3] = 0; // La permission est-elle une permission par defaut - $this->rights[2][4] = 'creer_advance'; + $this->rights[$r][0] = 304; // id de la permission + $this->rights[$r][1] = 'Read barcodes'; // libelle de la permission + $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 1; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'lire_advance'; + $r++; + + $this->rights[$r][0] = 305; // id de la permission + $this->rights[$r][1] = 'Create/modify barcodes'; // libelle de la permission + $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'creer_advance'; + $r++; // Main menu entries $r = 0; @@ -104,8 +114,8 @@ class modBarcode extends DolibarrModules 'url'=>'/barcode/printsheet.php?mainmenu=tools&leftmenu=barcodeprint', 'langs'=>'products', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>200, - 'enabled'=>'$conf->barcode->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. - 'perms'=>'($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->lire_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules + 'enabled'=>'isModEnabled("barcode")', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->hasRight("barcode", "read")', 'target'=>'', 'user'=>0, // 0=Menu for internal users, 1=external users, 2=both ); @@ -119,8 +129,8 @@ class modBarcode extends DolibarrModules 'url'=>'/barcode/codeinit.php?mainmenu=home&leftmenu=admintools', 'langs'=>'products', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>300, - 'enabled'=>'$conf->barcode->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. - 'perms'=>'($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->creer_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules + 'enabled'=>'isModEnabled("barcode") && preg_match(\'/^(admintools|all)/\',$leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->admin', 'target'=>'', 'user'=>0, // 0=Menu for internal users, 1=external users, 2=both ); diff --git a/htdocs/core/modules/modBlockedLog.class.php b/htdocs/core/modules/modBlockedLog.class.php index 0c645099f56..830f9f0f8b1 100644 --- a/htdocs/core/modules/modBlockedLog.class.php +++ b/htdocs/core/modules/modBlockedLog.class.php @@ -79,7 +79,7 @@ class modBlockedLog extends DolibarrModules // Currently, activation is not automatic because only companies (in France) making invoices to non business customers must // enable this module. - /*if (! empty($conf->global->BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY)) + /*if (!empty($conf->global->BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY)) { $tmp=explode(',', $conf->global->BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY); $this->automatic_activation = array(); @@ -183,7 +183,7 @@ class modBlockedLog extends DolibarrModules $result = $b->setObjectData($object, 'MODULE_SET', 0); if ($result < 0) { $this->error = $b->error; - $this->errors = $b->erros; + $this->errors = $b->errors; return 0; } @@ -226,7 +226,7 @@ class modBlockedLog extends DolibarrModules $result = $b->setObjectData($object, 'MODULE_RESET', 0); if ($result < 0) { $this->error = $b->error; - $this->errors = $b->erros; + $this->errors = $b->errors; return 0; } diff --git a/htdocs/core/modules/modBom.class.php b/htdocs/core/modules/modBom.class.php index 2e92d3baeaf..6f2cc7ac4b2 100644 --- a/htdocs/core/modules/modBom.class.php +++ b/htdocs/core/modules/modBom.class.php @@ -109,7 +109,7 @@ class modBom extends DolibarrModules $this->requiredby = array('modMrp'); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) $this->langfiles = array("mrp"); - //$this->phpmin = array(5, 6)); // Minimum version of PHP required by module + //$this->phpmin = array(7, 0)); // Minimum version of PHP required by module $this->need_dolibarr_version = array(9, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -156,7 +156,7 @@ class modBom extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modBookCal.class.php b/htdocs/core/modules/modBookCal.class.php new file mode 100644 index 00000000000..c3066dbd2e0 --- /dev/null +++ b/htdocs/core/modules/modBookCal.class.php @@ -0,0 +1,536 @@ + + * Copyright (C) 2018-2019 Nicolas ZABOURI + * Copyright (C) 2019-2022 Frédéric France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \defgroup bookcal Module BookCal + * \brief BookCal module descriptor. + * + * \file htdocs/bookcal/core/modules/modBookCal.class.php + * \ingroup bookcal + * \brief Description and activation file for module BookCal + */ +include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; + +/** + * Description and activation class for module BookCal + */ +class modBookCal extends DolibarrModules +{ + /** + * Constructor. Define names, constants, directories, boxes, permissions + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $langs, $conf; + $this->db = $db; + + // Id for module (must be unique). + // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id). + $this->numero = 500000; // TODO Go on page https://wiki.dolibarr.org/index.php/List_of_modules_id to reserve an id number for your module + + // Key text used to identify module (for permissions, menus, etc...) + $this->rights_class = 'bookcal'; + + // Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...' + // It is used to group modules by family in module setup page + $this->family = "projects"; + + // Module position in the family on 2 digits ('01', '10', '20', ...) + $this->module_position = '50'; + + // Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this) + //$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily"))); + // Module label (no space allowed), used if translation string 'ModuleBookCalName' not found (BookCal is name of module). + $this->name = preg_replace('/^mod/i', '', get_class($this)); + + // Module description, used if translation string 'ModuleBookCalDesc' not found (BookCal is name of module). + $this->description = "BookCalDescription"; + // Used only if file README.md and README-LL.md not found. + $this->descriptionlong = "BookCalDescription"; + + // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z' + $this->version = 'development'; + + // Key used in llx_const table to save module status enabled/disabled (where BOOKCAL is value of property name of module in uppercase) + $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); + + // Name of image file used for this module. + // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue' + // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' + // To use a supported fa-xxx css style of font awesome, use this->picto='xxx' + $this->picto = 'fa-generic'; + + // Define some features supported by module (triggers, login, substitutions, menus, css, etc...) + $this->module_parts = array( + // Set this to 1 if module has its own trigger directory (core/triggers) + 'triggers' => 0, + // Set this to 1 if module has its own login method file (core/login) + 'login' => 0, + // Set this to 1 if module has its own substitution function file (core/substitutions) + 'substitutions' => 0, + // Set this to 1 if module has its own menus handler directory (core/menus) + 'menus' => 0, + // Set this to 1 if module overwrite template dir (core/tpl) + 'tpl' => 0, + // Set this to 1 if module has its own barcode directory (core/modules/barcode) + 'barcode' => 0, + // Set this to 1 if module has its own models directory (core/modules/xxx) + 'models' => 0, + // Set this to 1 if module has its own printing directory (core/modules/printing) + 'printing' => 0, + // Set this to 1 if module has its own theme directory (theme) + 'theme' => 0, + // Set this to relative path of css file if module has its own css file + 'css' => array( + // '/bookcal/css/bookcal.css.php', + ), + // Set this to relative path of js file if module must load a js on all pages + 'js' => array( + // '/bookcal/js/bookcal.js.php', + ), + // Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context to 'all' + 'hooks' => array( + // 'data' => array( + // 'hookcontext1', + // 'hookcontext2', + // ), + // 'entity' => '0', + ), + // Set this to 1 if features of module are opened to external users + 'moduleforexternal' => 0, + ); + + // Data directories to create when module is enabled. + // Example: this->dirs = array("/bookcal/temp","/bookcal/subdir"); + $this->dirs = array("/bookcal/temp"); + + // Config pages. Put here list of php page, stored into bookcal/admin directory, to use to setup module. + $this->config_page_url = array("setup.php@bookcal"); + + // Dependencies + // A condition to hide module + $this->hidden = false; + // List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...) + $this->depends = array(); + $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) + $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) + + // The language file dedicated to your module + $this->langfiles = array("bookcal@bookcal"); + + // Prerequisites + $this->phpmin = array(7, 0); // Minimum version of PHP required by module + + // Messages at activation + $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','MX'='textmx'...) + $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','MX'='textmx'...) + //$this->automatic_activation = array('FR'=>'BookCalWasAutomaticallyActivatedBecauseOfYourCountryChoice'); + //$this->always_enabled = true; // If true, can't be disabled + + // Constants + // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) + // Example: $this->const=array(1 => array('BOOKCAL_MYNEWCONST1', 'chaine', 'myvalue', 'This is a constant to add', 1), + // 2 => array('BOOKCAL_MYNEWCONST2', 'chaine', 'myvalue', 'This is another constant to add', 0, 'current', 1) + // ); + $this->const = array(); + + // Some keys to add into the overwriting translation tables + /*$this->overwrite_translation = array( + 'en_US:ParentCompany'=>'Parent company or reseller', + 'fr_FR:ParentCompany'=>'Maison mère ou revendeur' + )*/ + + if (!isset($conf->bookcal) || !isset($conf->bookcal->enabled)) { + $conf->bookcal = new stdClass(); + $conf->bookcal->enabled = 0; + } + + // Array to add new pages in new tabs + $this->tabs = array(); + // Example: + // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@bookcal:$user->rights->bookcal->read:/bookcal/mynewtab1.php?id=__ID__'); // To add a new tab identified by code tabname1 + // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@bookcal:$user->rights->othermodule->read:/bookcal/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key. + // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove'); // To remove an existing tab identified by code tabname + // + // Where objecttype can be + // 'categories_x' to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member) + // 'contact' to add a tab in contact view + // 'contract' to add a tab in contract view + // 'group' to add a tab in group view + // 'intervention' to add a tab in intervention view + // 'invoice' to add a tab in customer invoice view + // 'invoice_supplier' to add a tab in supplier invoice view + // 'member' to add a tab in fundation member view + // 'opensurveypoll' to add a tab in opensurvey poll view + // 'order' to add a tab in customer order view + // 'order_supplier' to add a tab in supplier order view + // 'payment' to add a tab in payment view + // 'payment_supplier' to add a tab in supplier payment view + // 'product' to add a tab in product view + // 'propal' to add a tab in propal view + // 'project' to add a tab in project view + // 'stock' to add a tab in stock view + // 'thirdparty' to add a tab in third party view + // 'user' to add a tab in user view + + // Dictionaries + $this->dictionaries = array(); + /* Example: + $this->dictionaries=array( + 'langs'=>'bookcal@bookcal', + // List of tables we want to see into dictonnary editor + 'tabname'=>array("table1", "table2", "table3"), + // Label of tables + 'tablib'=>array("Table1", "Table2", "Table3"), + // Request to select fields + 'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f', 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f', 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'), + // Sort order + 'tabsqlsort'=>array("label ASC", "label ASC", "label ASC"), + // List of fields (result of select to show dictionary) + 'tabfield'=>array("code,label", "code,label", "code,label"), + // List of fields (list of fields to edit a record) + 'tabfieldvalue'=>array("code,label", "code,label", "code,label"), + // List of fields (list of fields for insert) + 'tabfieldinsert'=>array("code,label", "code,label", "code,label"), + // Name of columns with primary key (try to always name it 'rowid') + 'tabrowid'=>array("rowid", "rowid", "rowid"), + // Condition to show each dictionary + 'tabcond'=>array($conf->bookcal->enabled, $conf->bookcal->enabled, $conf->bookcal->enabled) + // Help tooltip for each fields of the dictionary + 'tabhelp'=>array(array('code'=>$langs->trans('CodeTooltipHelp'))) + ); + */ + + // Boxes/Widgets + // Add here list of php file(s) stored in bookcal/core/boxes that contains a class to show a widget. + $this->boxes = array( + // 0 => array( + // 'file' => 'bookcalwidget1.php@bookcal', + // 'note' => 'Widget provided by BookCal', + // 'enabledbydefaulton' => 'Home', + // ), + // ... + ); + + // Cronjobs (List of cron jobs entries to add when module is enabled) + // unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week + $this->cronjobs = array( + // 0 => array( + // 'label' => 'MyJob label', + // 'jobtype' => 'method', + // 'class' => '/bookcal/class/availabilities.class.php', + // 'objectname' => 'Availabilities', + // 'method' => 'doScheduledJob', + // 'parameters' => '', + // 'comment' => 'Comment', + // 'frequency' => 2, + // 'unitfrequency' => 3600, + // 'status' => 0, + // 'test' => '$conf->bookcal->enabled', + // 'priority' => 50, + // ), + ); + // Example: $this->cronjobs=array( + // 0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->bookcal->enabled', 'priority'=>50), + // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>'$conf->bookcal->enabled', 'priority'=>50) + // ); + + // Permissions provided by this module + $this->rights = array(); + $r = 0; + // Add here entries to declare new permissions + /* BEGIN MODULEBUILDER PERMISSIONS */ + $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) + $this->rights[$r][1] = 'Read objects of BookCal'; // Permission label + $this->rights[$r][4] = 'availabilities'; + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->bookcal->availabilities->read) + $r++; + $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) + $this->rights[$r][1] = 'Create/Update objects of BookCal'; // Permission label + $this->rights[$r][4] = 'availabilities'; + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->bookcal->availabilities->write) + $r++; + $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) + $this->rights[$r][1] = 'Delete objects of BookCal'; // Permission label + $this->rights[$r][4] = 'availabilities'; + $this->rights[$r][5] = 'delete'; // In php code, permission will be checked by test if ($user->rights->bookcal->availabilities->delete) + $r++; + /* END MODULEBUILDER PERMISSIONS */ + + // Main menu entries to add + $this->menu = array(); + $r = 0; + // Add here entries to declare new menus + /* BEGIN MODULEBUILDER TOPMENU */ + $this->menu[$r++] = array( + 'fk_menu'=>'', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'top', // This is a Top menu entry + 'titre'=>'ModuleBookCalName', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'), + 'mainmenu'=>'bookcal', + 'leftmenu'=>'', + 'url'=>'/bookcal/bookcalindex.php', + 'langs'=>'bookcal@bookcal', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000 + $r, + 'enabled'=>'$conf->bookcal->enabled', // Define condition to show or hide menu entry. Use '$conf->bookcal->enabled' if entry must be visible if module is enabled. + 'perms'=>'1', // Use 'perms'=>'$user->rights->bookcal->availabilities->read' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + /* END MODULEBUILDER TOPMENU */ + /* BEGIN MODULEBUILDER LEFTMENU AVAILABILITIES + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=bookcal', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'left', // This is a Left menu entry + 'titre'=>'Availabilities', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'), + 'mainmenu'=>'bookcal', + 'leftmenu'=>'availabilities', + 'url'=>'/bookcal/bookcalindex.php', + 'langs'=>'bookcal@bookcal', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->bookcal->enabled', // Define condition to show or hide menu entry. Use '$conf->bookcal->enabled' if entry must be visible if module is enabled. + 'perms'=>'$user->rights->bookcal->availabilities->read', // Use 'perms'=>'$user->rights->bookcal->level1->level2' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=bookcal,fk_leftmenu=availabilities', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'left', // This is a Left menu entry + 'titre'=>'List_Availabilities', + 'mainmenu'=>'bookcal', + 'leftmenu'=>'bookcal_availabilities_list', + 'url'=>'/bookcal/availabilities_list.php', + 'langs'=>'bookcal@bookcal', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->bookcal->enabled', // Define condition to show or hide menu entry. Use '$conf->bookcal->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->rights->bookcal->availabilities->read', // Use 'perms'=>'$user->rights->bookcal->level1->level2' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=bookcal,fk_leftmenu=availabilities', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'left', // This is a Left menu entry + 'titre'=>'New_Availabilities', + 'mainmenu'=>'bookcal', + 'leftmenu'=>'bookcal_availabilities_new', + 'url'=>'/bookcal/availabilities_card.php?action=create', + 'langs'=>'bookcal@bookcal', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->bookcal->enabled', // Define condition to show or hide menu entry. Use '$conf->bookcal->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->rights->bookcal->availabilities->write', // Use 'perms'=>'$user->rights->bookcal->level1->level2' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + */ + + $this->menu[$r++]=array( + // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu=bookcal', + // This is a Left menu entry + 'type'=>'left', + 'titre'=>'List Availabilities', + 'mainmenu'=>'bookcal', + 'leftmenu'=>'bookcal_availabilities', + 'url'=>'/bookcal/availabilities_list.php', + // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'langs'=>'bookcal@bookcal', + 'position'=>1100+$r, + // Define condition to show or hide menu entry. Use '$conf->bookcal->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'enabled'=>'$conf->bookcal->enabled', + // Use 'perms'=>'$user->rights->bookcal->level1->level2' if you want your menu with a permission rules + 'perms'=>'1', + 'target'=>'', + // 0=Menu for internal users, 1=external users, 2=both + 'user'=>2, + ); + $this->menu[$r++]=array( + // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu=bookcal,fk_leftmenu=bookcal_availabilities', + // This is a Left menu entry + 'type'=>'left', + 'titre'=>'New Availabilities', + 'mainmenu'=>'bookcal', + 'leftmenu'=>'bookcal_availabilities', + 'url'=>'/bookcal/availabilities_card.php?action=create', + // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'langs'=>'bookcal@bookcal', + 'position'=>1100+$r, + // Define condition to show or hide menu entry. Use '$conf->bookcal->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'enabled'=>'$conf->bookcal->enabled', + // Use 'perms'=>'$user->rights->bookcal->level1->level2' if you want your menu with a permission rules + 'perms'=>'1', + 'target'=>'', + // 0=Menu for internal users, 1=external users, 2=both + 'user'=>2 + ); + + /* END MODULEBUILDER LEFTMENU AVAILABILITIES */ + // Exports profiles provided by this module + $r = 1; + /* BEGIN MODULEBUILDER EXPORT AVAILABILITIES */ + /* + $langs->load("bookcal@bookcal"); + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='AvailabilitiesLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='availabilities@bookcal'; + // Define $this->export_fields_array, $this->export_TypeFields_array and $this->export_entities_array + $keyforclass = 'Availabilities'; $keyforclassfile='/bookcal/class/availabilities.class.php'; $keyforelement='availabilities@bookcal'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + //$this->export_fields_array[$r]['t.fieldtoadd']='FieldToAdd'; $this->export_TypeFields_array[$r]['t.fieldtoadd']='Text'; + //unset($this->export_fields_array[$r]['t.fieldtoremove']); + //$keyforclass = 'AvailabilitiesLine'; $keyforclassfile='/bookcal/class/availabilities.class.php'; $keyforelement='availabilitiesline@bookcal'; $keyforalias='tl'; + //include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + $keyforselect='availabilities'; $keyforaliasextra='extra'; $keyforelement='availabilities@bookcal'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$keyforselect='availabilitiesline'; $keyforaliasextra='extraline'; $keyforelement='availabilitiesline@bookcal'; + //include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r] = array('availabilitiesline'=>array('tl.rowid','tl.ref')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields) + //$this->export_special_array[$r] = array('t.field'=>'...'); + //$this->export_examplevalues_array[$r] = array('t.field'=>'Example'); + //$this->export_help_array[$r] = array('t.field'=>'FieldDescHelp'); + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'availabilities as t'; + //$this->export_sql_end[$r] =' LEFT JOIN '.MAIN_DB_PREFIX.'availabilities_line as tl ON tl.fk_availabilities = t.rowid'; + $this->export_sql_end[$r] .=' WHERE 1 = 1'; + $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('availabilities').')'; + $r++; */ + /* END MODULEBUILDER EXPORT AVAILABILITIES */ + + // Imports profiles provided by this module + $r = 1; + /* BEGIN MODULEBUILDER IMPORT AVAILABILITIES */ + /* + $langs->load("bookcal@bookcal"); + $this->import_code[$r]=$this->rights_class.'_'.$r; + $this->import_label[$r]='AvailabilitiesLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->import_icon[$r]='availabilities@bookcal'; + $this->import_tables_array[$r] = array('t' => MAIN_DB_PREFIX.'bookcal_availabilities', 'extra' => MAIN_DB_PREFIX.'bookcal_availabilities_extrafields'); + $this->import_tables_creator_array[$r] = array('t' => 'fk_user_author'); // Fields to store import user id + $import_sample = array(); + $keyforclass = 'Availabilities'; $keyforclassfile='/bookcal/class/availabilities.class.php'; $keyforelement='availabilities@bookcal'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinimport.inc.php'; + $import_extrafield_sample = array(); + $keyforselect='availabilities'; $keyforaliasextra='extra'; $keyforelement='availabilities@bookcal'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinimport.inc.php'; + $this->import_fieldshidden_array[$r] = array('extra.fk_object' => 'lastrowid-'.MAIN_DB_PREFIX.'bookcal_availabilities'); + $this->import_regex_array[$r] = array(); + $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); + $this->import_updatekeys_array[$r] = array('t.ref' => 'Ref'); + $this->import_convertvalue_array[$r] = array( + 't.ref' => array( + 'rule'=>'getrefifauto', + 'class'=>(empty($conf->global->BOOKCAL_AVAILABILITIES_ADDON) ? 'mod_availabilities_standard' : $conf->global->BOOKCAL_AVAILABILITIES_ADDON), + 'path'=>"/core/modules/commande/".(empty($conf->global->BOOKCAL_AVAILABILITIES_ADDON) ? 'mod_availabilities_standard' : $conf->global->BOOKCAL_AVAILABILITIES_ADDON).'.php' + 'classobject'=>'Availabilities', + 'pathobject'=>'/bookcal/class/availabilities.class.php', + ), + 't.fk_soc' => array('rule' => 'fetchidfromref', 'file' => '/societe/class/societe.class.php', 'class' => 'Societe', 'method' => 'fetch', 'element' => 'ThirdParty'), + 't.fk_user_valid' => array('rule' => 'fetchidfromref', 'file' => '/user/class/user.class.php', 'class' => 'User', 'method' => 'fetch', 'element' => 'user'), + 't.fk_mode_reglement' => array('rule' => 'fetchidfromcodeorlabel', 'file' => '/compta/paiement/class/cpaiement.class.php', 'class' => 'Cpaiement', 'method' => 'fetch', 'element' => 'cpayment'), + ); + $r++; */ + /* END MODULEBUILDER IMPORT AVAILABILITIES */ + } + + /** + * Function called when module is enabled. + * The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. + * It also creates data directories + * + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO + */ + public function init($options = '') + { + global $conf, $langs; + + //$result = $this->_load_tables('/install/mysql/', 'bookcal'); + $result = $this->_load_tables('/bookcal/sql/'); + if ($result < 0) { + return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') + } + + // Create extrafields during init + //include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + //$extrafields = new ExtraFields($this->db); + //$result1=$extrafields->addExtraField('bookcal_myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'bookcal@bookcal', '$conf->bookcal->enabled'); + //$result2=$extrafields->addExtraField('bookcal_myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'bookcal@bookcal', '$conf->bookcal->enabled'); + //$result3=$extrafields->addExtraField('bookcal_myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'bookcal@bookcal', '$conf->bookcal->enabled'); + //$result4=$extrafields->addExtraField('bookcal_myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'bookcal@bookcal', '$conf->bookcal->enabled'); + //$result5=$extrafields->addExtraField('bookcal_myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'bookcal@bookcal', '$conf->bookcal->enabled'); + + // Permissions + $this->remove($options); + + $sql = array(); + + // Document templates + $moduledir = dol_sanitizeFileName('bookcal'); + $myTmpObjects = array(); + $myTmpObjects['Availabilities'] = array('includerefgeneration'=>0, 'includedocgeneration'=>0); + + foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { + if ($myTmpObjectKey == 'Availabilities') { + continue; + } + if ($myTmpObjectArray['includerefgeneration']) { + $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/'.$moduledir.'/template_availabilitiess.odt'; + $dirodt = DOL_DATA_ROOT.'/doctemplates/'.$moduledir; + $dest = $dirodt.'/template_availabilitiess.odt'; + + if (file_exists($src) && !file_exists($dest)) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + dol_mkdir($dirodt); + $result = dol_copy($src, $dest, 0, 0); + if ($result < 0) { + $langs->load("errors"); + $this->error = $langs->trans('ErrorFailToCopyFile', $src, $dest); + return 0; + } + } + + $sql = array_merge($sql, array( + "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'standard_".strtolower($myTmpObjectKey)."' AND type = '".$this->db->escape(strtolower($myTmpObjectKey))."' AND entity = ".((int) $conf->entity), + "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('standard_".strtolower($myTmpObjectKey)."', '".$this->db->escape(strtolower($myTmpObjectKey))."', ".((int) $conf->entity).")", + "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'generic_".strtolower($myTmpObjectKey)."_odt' AND type = '".$this->db->escape(strtolower($myTmpObjectKey))."' AND entity = ".((int) $conf->entity), + "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('generic_".strtolower($myTmpObjectKey)."_odt', '".$this->db->escape(strtolower($myTmpObjectKey))."', ".((int) $conf->entity).")" + )); + } + } + + return $this->_init($sql, $options); + } + + /** + * Function called when module is disabled. + * Remove from database constants, boxes and permissions from Dolibarr database. + * Data directories are not deleted + * + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO + */ + public function remove($options = '') + { + $sql = array(); + return $this->_remove($sql, $options); + } +} diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index c9a28863c97..4a8680502ae 100644 --- a/htdocs/core/modules/modCategorie.class.php +++ b/htdocs/core/modules/modCategorie.class.php @@ -127,25 +127,25 @@ class modCategorie extends DolibarrModules $this->export_permission[$r] = array(array("categorie", "lire")); $typeexample = ""; - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { $typeexample .= ($typeexample ? " / " : "")."0=Product-Service"; } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $typeexample .= ($typeexample ? "/" : "")."1=Supplier"; } - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $typeexample .= ($typeexample ? " / " : "")."2=Customer-Prospect"; } - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $typeexample .= ($typeexample ? " / " : "")."3=Member"; } - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $typeexample .= ($typeexample ? " / " : "")."4=Contact"; } if (!empty($conf->bank->enabled)) { $typeexample .= ($typeexample ? " / " : "")."5=Bank account"; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $typeexample .= ($typeexample ? " / " : "")."6=Project"; } if (!empty($conf->user->enabled)) { @@ -154,18 +154,19 @@ class modCategorie extends DolibarrModules if (!empty($conf->bank->enabled)) { $typeexample .= ($typeexample ? " / " : "")."8=Bank line"; } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $typeexample .= ($typeexample ? " / " : "")."9=Warehouse"; } if (isModEnabled('agenda')) { $typeexample .= ($typeexample ? " / " : "")."10=Agenda event"; } - if (!empty($conf->website->enabled)) { + if (isModEnabled('website')) { $typeexample .= ($typeexample ? " / " : "")."11=Website page"; } - $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.type'=>"Type", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel"); - $this->export_TypeFields_array[$r] = array('cat.label'=>"Text", 'cat.type'=>"Numeric", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', 'pcat.label'=>'Text'); + // Definition of vars + $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.type'=>"Type", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel"); + $this->export_TypeFields_array[$r] = array('cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.type'=>"Numeric", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text'); $this->export_entities_array[$r] = array(); // We define here only fields that use another picto $this->export_help_array[$r] = array('cat.type'=>$typeexample); @@ -179,10 +180,10 @@ class modCategorie extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_0_'.Categorie::$MAP_ID_TO_CODE[0]; $this->export_label[$r] = 'CatProdList'; $this->export_icon[$r] = $this->picto; - $this->export_enabled[$r] = '!empty($conf->product->enabled) || !empty($conf->service->abled)'; + $this->export_enabled[$r] = 'isModEnabled("product") || isModEnabled("service")'; $this->export_permission[$r] = array(array("categorie", "lire"), array("produit", "export")); - $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'p.rowid'=>'ProductId', 'p.ref'=>'Ref', 'p.label'=>'Label'); - $this->export_TypeFields_array[$r] = array('cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', 'p.ref'=>'Text', 'p.label'=>'Text'); + $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'ProductId', 'p.ref'=>'Ref', 'p.label'=>'Label'); + $this->export_TypeFields_array[$r] = array('cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.rowid'=>'Numeric', 'p.ref'=>'Text', 'p.label'=>'Text'); $this->export_entities_array[$r] = array('p.rowid'=>'product', 'p.ref'=>'product', 'p.label'=>'product'); // We define here only fields that use another picto $keyforselect = 'product'; @@ -192,6 +193,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'product as p ON p.rowid = cp.fk_product'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON extra.fk_object = p.rowid'; @@ -203,10 +205,10 @@ class modCategorie extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_1_'.Categorie::$MAP_ID_TO_CODE[1]; $this->export_label[$r] = 'CatSupList'; $this->export_icon[$r] = $this->picto; - $this->export_enabled[$r] = '!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)'; + $this->export_enabled[$r] = 'isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")'; $this->export_permission[$r] = array(array("categorie", "lire"), array("fournisseur", "lire")); $this->export_fields_array[$r] = array( - 'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", + 'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 's.rowid'=>'IdThirdParty', 's.nom'=>'Name', 's.prefix_comm'=>"Prefix", 's.fournisseur'=>"Supplier", 's.datec'=>"DateCreation", 's.tms'=>"DateLastModification", 's.code_fournisseur'=>"SupplierCode", 's.address'=>"Address", 's.zip'=>"Zip", 's.town'=>"Town", 'c.label'=>"Country", 'c.code'=>"CountryCode", 's.phone'=>"Phone", 's.fax'=>"Fax", 's.url'=>"Url", 's.email'=>"Email", @@ -214,7 +216,7 @@ class modCategorie extends DolibarrModules 't.libelle'=>'ThirdPartyType' ); $this->export_TypeFields_array[$r] = array( - 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', + 'cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 's.rowid'=>'List:societe:nom', 's.nom'=>'Text', 's.prefix_comm'=>"Text", 's.fournisseur'=>"Text", 's.datec'=>"Date", 's.tms'=>"Date", 's.code_fournisseur'=>"Text", 's.address'=>"Text", 's.zip'=>"Text", 's.town'=>"Text", 'c.label'=>"List:c_country:label:label", 'c.code'=>"Text", 's.phone'=>"Text", 's.fax'=>"Text", 's.url'=>"Text", 's.email'=>"Text", @@ -236,6 +238,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_fournisseur as cf ON cf.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'societe as s ON s.rowid = cf.fk_soc'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_extrafields as extra ON s.rowid = extra.fk_object'; @@ -249,10 +252,10 @@ class modCategorie extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_2_'.Categorie::$MAP_ID_TO_CODE[2]; $this->export_label[$r] = 'CatCusList'; $this->export_icon[$r] = $this->picto; - $this->export_enabled[$r] = '!empty($conf->societe->enabled)'; + $this->export_enabled[$r] = 'isModEnabled("societe")'; $this->export_permission[$r] = array(array("categorie", "lire"), array("societe", "export")); $this->export_fields_array[$r] = array( - 'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", + 'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 's.rowid'=>'IdThirdParty', 's.nom'=>'Name', 's.prefix_comm'=>"Prefix", 's.client'=>"Customer", 's.datec'=>"DateCreation", 's.tms'=>"DateLastModification", 's.code_client'=>"CustomerCode", 's.address'=>"Address", 's.zip'=>"Zip", 's.town'=>"Town", 'c.label'=>"Country", 'c.code'=>"CountryCode", 's.phone'=>"Phone", 's.fax'=>"Fax", 's.url'=>"Url", 's.email'=>"Email", @@ -260,7 +263,7 @@ class modCategorie extends DolibarrModules 't.libelle'=>'ThirdPartyType', 'pl.code'=>'ProspectLevel', 'st.code'=>'ProspectStatus' ); $this->export_TypeFields_array[$r] = array( - 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', + 'cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 's.rowid'=>'List:societe:nom', 's.nom'=>'Text', 's.prefix_comm'=>"Text", 's.client'=>"Text", 's.datec'=>"Date", 's.tms'=>"Date", 's.code_client'=>"Text", 's.address'=>"Text", 's.zip'=>"Text", 's.town'=>"Text", 'c.label'=>"List:c_country:label:label", 'c.code'=>"Text", 's.phone'=>"Text", 's.fax'=>"Text", 's.url'=>"Text", 's.email'=>"Text", @@ -282,6 +285,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_societe as cs ON cs.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'societe as s ON s.rowid = cs.fk_soc'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_extrafields as extra ON s.rowid = extra.fk_object'; @@ -297,10 +301,10 @@ class modCategorie extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_3_'.Categorie::$MAP_ID_TO_CODE[3]; $this->export_label[$r] = 'CatMemberList'; $this->export_icon[$r] = $this->picto; - $this->export_enabled[$r] = '!empty($conf->adherent->enabled)'; + $this->export_enabled[$r] = 'isModEnabled("adherent")'; $this->export_permission[$r] = array(array("categorie", "lire"), array("adherent", "export")); - $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'p.rowid'=>'MemberId', 'p.lastname'=>'LastName', 'p.firstname'=>'Firstname'); - $this->export_TypeFields_array[$r] = array('cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', 'p.lastname'=>'Text', 'p.firstname'=>'Text'); + $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'MemberId', 'p.lastname'=>'LastName', 'p.firstname'=>'Firstname'); + $this->export_TypeFields_array[$r] = array('cat.rowid'=>"Numeric", 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.lastname'=>'Text', 'p.firstname'=>'Text'); $this->export_entities_array[$r] = array('p.rowid'=>'member', 'p.lastname'=>'member', 'p.firstname'=>'member'); // We define here only fields that use another picto $keyforselect = 'adherent'; @@ -310,6 +314,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_member as cm ON cm.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'adherent as p ON p.rowid = cm.fk_member'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'adherent_extrafields as extra ON cat.rowid = extra.fk_object '; @@ -321,10 +326,10 @@ class modCategorie extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_4_'.Categorie::$MAP_ID_TO_CODE[4]; $this->export_label[$r] = 'CatContactList'; $this->export_icon[$r] = $this->picto; - $this->export_enabled[$r] = '!empty($conf->societe->enabled)'; + $this->export_enabled[$r] = 'isModEnabled("societe")'; $this->export_permission[$r] = array(array("categorie", "lire"), array("societe", "contact", "export")); $this->export_fields_array[$r] = array( - 'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", + 'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid' => 'ContactId', 'civ.label' => 'UserTitle', 'p.lastname' => 'LastName', 'p.firstname' => 'Firstname', 'p.address' => 'Address', 'p.zip' => 'Zip', 'p.town' => 'Town', 'c.code' => 'CountryCode', 'c.label' => 'Country', 'p.birthday' => 'DateOfBirth', 'p.poste' => 'PostOrFunction', @@ -335,8 +340,8 @@ class modCategorie extends DolibarrModules 's.phone'=>"Phone", 's.fax'=>"Fax", 's.url'=>"Url", 's.email'=>"Email" ); $this->export_TypeFields_array[$r] = array( - 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', - 'civ.label' => 'List:c_civility:label:label', 'p.lastname' => 'Text', 'p.firstname' => 'Text', + 'cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', + 'civ.label' => 'List:c_civility:label:label', 'p.rowid'=>'Numeric', 'p.lastname' => 'Text', 'p.firstname' => 'Text', 'p.address' => 'Text', 'p.zip' => 'Text', 'p.town' => 'Text', 'c.code' => 'Text', 'c.label' => 'List:c_country:label:label', 'p.birthday' => 'Date', 'p.poste' => 'Text', 'p.phone' => 'Text', 'p.phone_perso' => 'Text', 'p.phone_mobile' => 'Text', 'p.fax' => 'Text', 'p.email' => 'Text', @@ -363,6 +368,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_contact as cc ON cc.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'socpeople as p ON p.rowid = cc.fk_socpeople'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'socpeople_extrafields as extra ON extra.fk_object = p.rowid'; @@ -379,10 +385,10 @@ class modCategorie extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_6_'.Categorie::$MAP_ID_TO_CODE[6]; $this->export_label[$r] = 'CatProjectsList'; $this->export_icon[$r] = $this->picto; - $this->export_enabled[$r] = '!empty($conf->projet->enabled)'; + $this->export_enabled[$r] = "isModEnabled('project')"; $this->export_permission[$r] = array(array("categorie", "lire"), array("projet", "export")); - $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'p.rowid'=>'ProjectId', 'p.ref'=>'Ref', 's.rowid'=>"IdThirdParty", 's.nom'=>"Name"); - $this->export_TypeFields_array[$r] = array('cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', 'p.ref'=>'Text', 's.rowid'=>"Numeric", 's.nom'=>"Text"); + $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'ProjectId', 'p.ref'=>'Ref', 's.rowid'=>"IdThirdParty", 's.nom'=>"Name"); + $this->export_TypeFields_array[$r] = array('cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.rowid'=>'Numeric', 'p.ref'=>'Text', 's.rowid'=>"Numeric", 's.nom'=>"Text"); $this->export_entities_array[$r] = array('p.rowid'=>'project', 'p.ref'=>'project', 's.rowid'=>"company", 's.nom'=>"company"); // We define here only fields that use another picto $keyforselect = 'projet'; @@ -392,6 +398,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_project as cp ON cp.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'projet as p ON p.rowid = cp.fk_project'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'projet_extrafields as extra ON extra.fk_object = p.rowid'; @@ -406,8 +413,8 @@ class modCategorie extends DolibarrModules $this->export_icon[$r] = $this->picto; $this->export_enabled[$r] = '!empty($conf->user->enabled)'; $this->export_permission[$r] = array(array("categorie", "lire"), array("user", "export")); - $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'p.rowid'=>'TechnicalID', 'p.login'=>'Login', 'p.lastname'=>'Lastname', 'p.firstname'=>'Firstname'); - $this->export_TypeFields_array[$r] = array('cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'List:categorie:label:rowid', 'p.login'=>'Text', 'p.lastname'=>'Text', 'p.firstname'=>'Text'); + $this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'UserID', 'p.login'=>'Login', 'p.lastname'=>'Lastname', 'p.firstname'=>'Firstname'); + $this->export_TypeFields_array[$r] = array('cat.rowid'=>"Numeric", 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.rowid'=>'Numeric', 'p.login'=>'Text', 'p.lastname'=>'Text', 'p.firstname'=>'Text'); $this->export_entities_array[$r] = array('p.rowid'=>'user', 'p.login'=>'user', 'p.lastname'=>'user', 'p.firstname'=>'user'); // We define here only fields that use another picto $keyforselect = 'user'; @@ -417,6 +424,7 @@ class modCategorie extends DolibarrModules $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'categorie as cat'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie as pcat ON pcat.rowid = cat.fk_parent'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'categorie_user as cu ON cu.fk_categorie = cat.rowid'; $this->export_sql_end[$r] .= ' INNER JOIN '.MAIN_DB_PREFIX.'user as p ON p.rowid = cu.fk_user'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user_extrafields as extra ON extra.fk_object = p.rowid'; @@ -466,7 +474,7 @@ class modCategorie extends DolibarrModules $this->import_updatekeys_array[$r] = array('ca.label'=>'Label'); // 0 Products - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { $r++; $this->import_code[$r] = $this->rights_class.'_0_'.Categorie::$MAP_ID_TO_CODE[0]; $this->import_label[$r] = "CatProdLinks"; // Translation key @@ -485,7 +493,7 @@ class modCategorie extends DolibarrModules } // 1 Suppliers - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $r++; $this->import_code[$r] = $this->rights_class.'_1_'.Categorie::$MAP_ID_TO_CODE[1]; $this->import_label[$r] = "CatSupLinks"; // Translation key @@ -506,7 +514,7 @@ class modCategorie extends DolibarrModules } // 2 Customers - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $r++; $this->import_code[$r] = $this->rights_class.'_2_'.Categorie::$MAP_ID_TO_CODE[2]; $this->import_label[$r] = "CatCusLinks"; // Translation key @@ -527,7 +535,7 @@ class modCategorie extends DolibarrModules } // 3 Members - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $r++; $this->import_code[$r] = $this->rights_class.'_3_'.Categorie::$MAP_ID_TO_CODE[3]; $this->import_label[$r] = "CatMembersLinks"; // Translation key @@ -545,7 +553,7 @@ class modCategorie extends DolibarrModules } // 4 Contacts/Addresses - if (!empty($conf->societe->enabled)) { + if (isModEnabled("societe")) { $r++; $this->import_code[$r] = $this->rights_class.'_4_'.Categorie::$MAP_ID_TO_CODE[4]; $this->import_label[$r] = "CatContactsLinks"; // Translation key @@ -568,7 +576,7 @@ class modCategorie extends DolibarrModules // 5 Bank accounts, TODO ? // 6 Projects - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $r++; $this->import_code[$r] = $this->rights_class.'_6_'.Categorie::$MAP_ID_TO_CODE[6]; $this->import_label[$r] = "CatProjectsLinks"; // Translation key diff --git a/htdocs/core/modules/modCommande.class.php b/htdocs/core/modules/modCommande.class.php index e75147ba78a..38b81cdb4fb 100644 --- a/htdocs/core/modules/modCommande.class.php +++ b/htdocs/core/modules/modCommande.class.php @@ -34,11 +34,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; /** - * Class to describe module customer orders + * Class to describe module Sales Orders */ class modCommande extends DolibarrModules { - /** * Constructor. Define names, constants, directories, boxes, permissions * @@ -139,9 +138,17 @@ class modCommande extends DolibarrModules $this->rights[$r][4] = 'order_advance'; $this->rights[$r][5] = 'validate'; + $r++; + $this->rights[$r][0] = 85; + $this->rights[$r][1] = 'Generate the documents sales orders'; + $this->rights[$r][2] = 'd'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'order_advance'; + $this->rights[$r][5] = 'generetedoc'; + $r++; $this->rights[$r][0] = 86; - $this->rights[$r][1] = 'Send sale orders by email'; + $this->rights[$r][1] = 'Send sales orders by email'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'order_advance'; @@ -197,13 +204,13 @@ class modCommande extends DolibarrModules 'co.code'=>"CountryCode", 's.phone'=>'Phone', 's.siren'=>'ProfId1', 's.siret'=>'ProfId2', 's.ape'=>'ProfId3', 's.idprof4'=>'ProfId4', 'c.rowid'=>"Id", 'c.ref'=>"Ref", 'c.ref_client'=>"RefCustomer", 'c.fk_soc'=>"IdCompany", 'c.date_creation'=>"DateCreation", 'c.date_commande'=>"OrderDate", 'c.date_livraison'=>"DateDeliveryPlanned", 'c.amount_ht'=>"Amount", 'c.total_ht'=>"TotalHT", - 'c.total_ttc'=>"TotalTTC", 'c.facture'=>"Billed", 'c.fk_statut'=>'Status', 'c.note_public'=>"Note", 'c.date_livraison'=>'DeliveryDate', + 'c.total_ttc'=>"TotalTTC", 'c.facture'=>"Billed", 'c.fk_statut'=>'Status', 'c.note_public'=>"Note", 'c.fk_user_author'=>'CreatedById', 'uc.login'=>'CreatedByLogin', 'c.fk_user_valid'=>'ValidatedById', 'uv.login'=>'ValidatedByLogin', 'pj.ref'=>'ProjectRef', 'cd.rowid'=>'LineId', 'cd.description'=>"LineDescription", 'cd.product_type'=>'TypeOfLineServiceOrProduct', 'cd.tva_tx'=>"LineVATRate", 'cd.qty'=>"LineQty", 'cd.total_ht'=>"LineTotalHT", 'cd.total_tva'=>"LineTotalVAT", 'cd.total_ttc'=>"LineTotalTTC", 'p.rowid'=>'ProductId', 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['c.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['c.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['c.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -213,7 +220,7 @@ class modCommande extends DolibarrModules // Add multicompany field if (!empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { $nbofallowedentities = count(explode(',', getEntity('commande'))); - if (!empty($conf->multicompany->enabled) && $nbofallowedentities > 1) { + if (isModEnabled('multicompany') && $nbofallowedentities > 1) { $this->export_fields_array[$r]['c.entity'] = 'Entity'; } } @@ -229,7 +236,7 @@ class modCommande extends DolibarrModules 's.nom'=>'Text', 'ps.nom'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 'co.label'=>'List:c_country:label:label', 'co.code'=>'Text', 's.phone'=>'Text', 's.siren'=>'Text', 's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 'c.ref'=>"Text", 'c.ref_client'=>"Text", 'c.date_creation'=>"Date", 'c.date_commande'=>"Date", 'c.date_livraison'=>"Date", 'c.amount_ht'=>"Numeric", 'c.total_ht'=>"Numeric", - 'c.total_ttc'=>"Numeric", 'c.facture'=>"Boolean", 'c.fk_statut'=>'Status', 'c.note_public'=>"Text", 'c.date_livraison'=>'Date', 'pj.ref'=>'Text', + 'c.total_ttc'=>"Numeric", 'c.facture'=>"Boolean", 'c.fk_statut'=>'Status', 'c.note_public'=>"Text", 'pj.ref'=>'Text', 'cd.description'=>"Text", 'cd.product_type'=>'Boolean', 'cd.tva_tx'=>"Numeric", 'cd.qty'=>"Numeric", 'cd.total_ht'=>"Numeric", 'cd.total_tva'=>"Numeric", 'cd.total_ttc'=>"Numeric", 'p.rowid'=>'List:product:ref::product', 'p.ref'=>'Text', 'p.label'=>'Text', 'd.nom'=>'Text', 'c.entity'=>'List:entity:label:rowid', @@ -320,7 +327,7 @@ class modCommande extends DolibarrModules 'c.fk_statut' => 'Status*' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['c.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['c.multicurrency_tx'] = 'CurrencyRate'; $this->import_fields_array[$r]['c.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -397,7 +404,7 @@ class modCommande extends DolibarrModules 'cd.rang' => 'LinePosition' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['cd.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['cd.multicurrency_subprice'] = 'CurrencyRate'; $this->import_fields_array[$r]['cd.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; diff --git a/htdocs/core/modules/modContrat.class.php b/htdocs/core/modules/modContrat.class.php index 89081551ddc..8154c3f8902 100644 --- a/htdocs/core/modules/modContrat.class.php +++ b/htdocs/core/modules/modContrat.class.php @@ -162,17 +162,17 @@ class modContrat extends DolibarrModules $this->export_icon[$r] = 'contract'; $this->export_permission[$r] = array(array("contrat", "export")); $this->export_fields_array[$r] = array('s.rowid'=>"IdCompany", 's.nom'=>'CompanyName', 's.address'=>'Address', 's.zip'=>'Zip', 's.town'=>'Town', 'c.code'=>'CountryCode', - 's.phone'=>'Phone', 's.siren'=>'ProfId1', 's.siret'=>'ProfId2', 's.ape'=>'ProfId3', 's.idprof4'=>'ProfId4', 's.code_compta'=>'CustomerAccountancyCode', + 's.email'=>'Email', 's.phone'=>'Phone', 's.siren'=>'ProfId1', 's.siret'=>'ProfId2', 's.ape'=>'ProfId3', 's.idprof4'=>'ProfId4', 's.code_compta'=>'CustomerAccountancyCode', 's.code_compta_fournisseur'=>'SupplierAccountancyCode', 's.tva_intra'=>'VATIntra', 'co.rowid'=>"Id", 'co.ref'=>"Ref", 'co.datec'=>"DateCreation", 'co.date_contrat'=>"DateContract", - 'co.fin_validite'=>"ContractEndDate", 'co.date_cloture'=>"Closing", 'co.note_private'=>"NotePrivate", 'co.note_public'=>"NotePublic", + 'co.fin_validite'=>"ContractEndDate", 'co.date_cloture'=>"DateClosing", 'co.note_private'=>"NotePrivate", 'co.note_public'=>"NotePublic", 'cod.rowid'=>'LineId', 'cod.label'=>"LineLabel", 'cod.description'=>"LineDescription", 'cod.price_ht'=>"LineUnitPrice", 'cod.tva_tx'=>"LineVATRate", 'cod.qty'=>"LineQty", 'cod.total_ht'=>"LineTotalHT", 'cod.total_tva'=>"LineTotalVAT", 'cod.total_ttc'=>"LineTotalTTC", 'cod.date_ouverture'=>"DateStart", 'cod.date_ouverture_prevue'=>"DateStartPlanned", 'cod.date_fin_validite'=>"DateEndPlanned", 'cod.date_cloture'=>"DateEnd", 'p.rowid'=>'ProductId', 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel'); $this->export_entities_array[$r] = array('s.rowid'=>"company", 's.nom'=>'company', 's.address'=>'company', 's.zip'=>'company', - 's.town'=>'company', 'c.code'=>'company', 's.phone'=>'company', 's.siren'=>'company', 's.siret'=>'company', 's.ape'=>'company', + 's.town'=>'company', 'c.code'=>'company', 's.email'=>'company', 's.phone'=>'company', 's.siren'=>'company', 's.siret'=>'company', 's.ape'=>'company', 's.idprof4'=>'company', 's.code_compta'=>'company', 's.code_compta_fournisseur'=>'company', 's.tva_intra'=>'company', 'co.rowid'=>"contract", 'co.ref'=>"contract", 'co.datec'=>"contract", 'co.date_contrat'=>"contract", 'co.fin_validite'=>"contract", 'co.date_cloture'=>"contract", 'co.note_private'=>"contract", 'co.note_public'=>"contract", @@ -182,7 +182,7 @@ class modContrat extends DolibarrModules 'p.rowid'=>'product', 'p.ref'=>'product', 'p.label'=>'product'); $this->export_TypeFields_array[$r] = array('s.rowid'=>"Numeric", 's.nom'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 'c.code'=>'Text', - 's.phone'=>'Text', 's.siren'=>'Text', 's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 's.code_compta'=>'Text', + 's.email'=>'Text', 's.phone'=>'Text', 's.siren'=>'Text', 's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 's.code_compta'=>'Text', 's.code_compta_fournisseur'=>'Text', 's.tva_intra'=>'Text', 'co.ref'=>"Text", 'co.datec'=>"Date", 'co.date_contrat'=>"Date", 'co.fin_validite'=>"Date", 'co.date_cloture'=>"Date", 'co.note_private'=>"Text", 'co.note_public'=>"Text", diff --git a/htdocs/core/modules/modCron.class.php b/htdocs/core/modules/modCron.class.php index 290eea449f5..93b243625f4 100644 --- a/htdocs/core/modules/modCron.class.php +++ b/htdocs/core/modules/modCron.class.php @@ -99,8 +99,9 @@ class modCron extends DolibarrModules // Cronjobs $this->cronjobs = array( 0=>array('entity'=>0, 'label'=>'PurgeDeleteTemporaryFilesShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'purgeFiles', 'parameters'=>'tempfilesold+logfiles', 'comment'=>'PurgeDeleteTemporaryFiles', 'frequency'=>2, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>50, 'status'=>1, 'test'=>true), - 1=>array('entity'=>0, 'label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>90, 'status'=>0, 'test'=>'in_array($conf->db->type, array(\'mysql\', \'mysqli\'))'), - 2=>array('entity'=>0, 'label'=>'MakeSendLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'sendDumpDatabase', 'parameters'=>',,,,,sql', 'comment'=>'MakeSendLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>604800, 'priority'=>91, 'status'=>0, 'test'=>'!empty($conf->global->MAIN_ALLOW_BACKUP_BY_EMAIL) && in_array($conf->db->type, array(\'mysql\', \'mysqli\'))'), + 1=>array('entity'=>0, 'label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10,0,0', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>90, 'status'=>0, 'test'=>'in_array($conf->db->type, array(\'mysql\', \'mysqli\'))'), + 2=>array('entity'=>0, 'label'=>'MakeSendLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'sendBackup', 'parameters'=>',,,,,sql', 'comment'=>'MakeSendLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>604800, 'priority'=>91, 'status'=>0, 'test'=>'!empty($conf->global->MAIN_ALLOW_BACKUP_BY_EMAIL) && in_array($conf->db->type, array(\'mysql\', \'mysqli\'))'), + 3=>array('entity'=>0, 'label'=>'CleanUnfinishedCronjobShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'cleanUnfinishedCronjob', 'parameters'=>'', 'comment'=>'CleanUnfinishedCronjob', 'frequency'=>5, 'unitfrequency'=>60, 'priority'=>10, 'status'=>0, 'test'=>'getDolGlobalInt("MAIN_FEATURES_LEVEL") >= 2'), // 1=>array('entity'=>0, 'label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24) ); @@ -140,7 +141,7 @@ class modCron extends DolibarrModules 'titre'=>'CronList', 'url'=>'/cron/list.php?leftmenu=admintools', 'langs'=>'cron', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>200, + 'position'=>500, 'enabled'=>'$conf->cron->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. 'perms'=>'$user->rights->cron->read', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules 'target'=>'', diff --git a/htdocs/core/modules/modDataPolicy.class.php b/htdocs/core/modules/modDataPolicy.class.php index 1b82334a95b..93f3e6f4024 100644 --- a/htdocs/core/modules/modDataPolicy.class.php +++ b/htdocs/core/modules/modDataPolicy.class.php @@ -1,5 +1,4 @@ * Copyright (C) 2018 Nicolas ZABOURI * @@ -106,9 +105,9 @@ class modDataPolicy extends DolibarrModules { $this->depends = array('always'=>'modCron'); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->langfiles = array("datapolicy@datapolicy"); + $this->langfiles = array("datapolicy"); $this->phpmin = array(5, 3); // Minimum version of PHP required by module - $this->need_dolibarr_version = array(4, 0); // Minimum version of Dolibarr required by module + $this->need_dolibarr_version = array(7, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) //$this->automatic_activation = array('FR'=>'datapolicyWasAutomaticallyActivatedBecauseOfYourCountryChoice'); @@ -163,7 +162,7 @@ class modDataPolicy extends DolibarrModules { // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -217,23 +216,23 @@ class modDataPolicy extends DolibarrModules { /* // Extrafield contact - $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); - $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); - $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); $result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0); $result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'thirdparty', 0, 0, '', '', 0, '', '0', 0); // Extrafield Tiers - $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); - $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); - $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); $result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'contact', 0, 0, '', '', 1, '', '3', 0); $result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'contact', 0, 0, '', '', 0, '', '0', 0); // Extrafield Adherent - $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); - $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); - $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); + $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled'); $result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0); $result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'adherent', 0, 0, '', '', 0, '', '0', 0); */ diff --git a/htdocs/core/modules/modDav.class.php b/htdocs/core/modules/modDav.class.php index 685158141e4..356f043cea0 100644 --- a/htdocs/core/modules/modDav.class.php +++ b/htdocs/core/modules/modDav.class.php @@ -91,7 +91,7 @@ class modDav extends DolibarrModules $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->langfiles = array("admin"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(7, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -131,7 +131,7 @@ class modDav extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modECM.class.php b/htdocs/core/modules/modECM.class.php index 8b846089a03..09556b43cd8 100644 --- a/htdocs/core/modules/modECM.class.php +++ b/htdocs/core/modules/modECM.class.php @@ -74,12 +74,6 @@ class modECM extends DolibarrModules $this->const = array(); // List of parameters $r = 0; - $this->const[$r][0] = "ECM_AUTO_TREE_ENABLED"; - $this->const[$r][1] = "chaine"; - $this->const[$r][2] = "1"; - $this->const[$r][3] = 'Auto tree is enabled by default'; - $this->const[$r][4] = 0; - // Boxes $this->boxes = array(); // List of boxes $r = 0; @@ -182,7 +176,22 @@ class modECM extends DolibarrModules 'langs'=>'ecm', 'position'=>103, 'perms'=>'$user->rights->ecm->read || $user->rights->ecm->upload', - 'enabled'=>'($user->rights->ecm->read || $user->rights->ecm->upload) && ! empty($conf->global->ECM_AUTO_TREE_ENABLED)', + 'enabled'=>'($user->rights->ecm->read || $user->rights->ecm->upload) && !getDolGlobalInt("ECM_AUTO_TREE_HIDEN")', + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + $r++; + + $this->menu[$r] = array( + 'fk_menu'=>'fk_mainmenu=ecm,fk_leftmenu=ecm', + 'type'=>'left', + 'titre'=>'ECMSectionsMedias', + 'mainmenu'=>'ecm', + 'url'=>'/ecm/index_medias.php?action=file_manager&mainmenu=ecm&leftmenu=ecm', + 'langs'=>'ecm', + 'position'=>104, + 'perms'=>'$user->rights->ecm->read || $user->rights->ecm->upload', + 'enabled'=>'($user->rights->ecm->read || $user->rights->ecm->upload) && getDolGlobalInt("MAIN_FEATURES_LEVEL") == 2', 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); diff --git a/htdocs/core/modules/modEmailCollector.class.php b/htdocs/core/modules/modEmailCollector.class.php index 145dd966044..514fe1be667 100644 --- a/htdocs/core/modules/modEmailCollector.class.php +++ b/htdocs/core/modules/modEmailCollector.class.php @@ -91,7 +91,7 @@ class modEmailCollector extends DolibarrModules $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->langfiles = array("admin"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(7, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -131,7 +131,7 @@ class modEmailCollector extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -175,7 +175,7 @@ class modEmailCollector extends DolibarrModules 'titre'=>'EmailCollectors', 'url'=>'/admin/emailcollector_list.php?leftmenu=admintools', 'langs'=>'admin', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>201, + 'position'=>400, 'enabled'=>'$conf->emailcollector->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. 'perms'=>'$user->admin', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules 'target'=>'', diff --git a/htdocs/core/modules/modEventOrganization.class.php b/htdocs/core/modules/modEventOrganization.class.php index 93318bb952e..f037f26176c 100644 --- a/htdocs/core/modules/modEventOrganization.class.php +++ b/htdocs/core/modules/modEventOrganization.class.php @@ -24,6 +24,7 @@ * \brief Description and activation file for the EventOrganization */ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; /** * Description and activation class for module EventOrganization @@ -55,13 +56,13 @@ class modEventOrganization extends DolibarrModules $this->description = "EventOrganizationDescription"; $this->descriptionlong = "EventOrganizationDescriptionLong"; - $this->version = 'experimental'; + $this->version = 'dolibarr'; // Key used in llx_const table to save module status enabled/disabled (where EVENTORGANIZATION is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); - $this->picto = 'action'; + $this->picto = 'conferenceorbooth'; // Define some features supported by module (triggers, login, substitutions, menus, css, etc...) $this->module_parts = array( @@ -122,7 +123,7 @@ class modEventOrganization extends DolibarrModules $this->langfiles = array("eventorganization"); // Prerequisites - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(13, -3); // Minimum version of Dolibarr required by module // Messages at activation @@ -168,7 +169,7 @@ class modEventOrganization extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -257,7 +258,7 @@ class modEventOrganization extends DolibarrModules 'fk_menu'=>'fk_mainmenu=project,fk_leftmenu=eventorganization', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'New', - 'url'=>'/projet/card.php?leftmenu=projects&action=create&usage_organize_event=1', + 'url'=>'/projet/card.php?leftmenu=projects&action=create&usage_organize_event=1&usage_opportunity=0', 'langs'=>'eventorganization@eventorganization', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'$conf->eventorganization->enabled', // Define condition to show or hide menu entry. Use '$conf->eventorganization->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. @@ -326,7 +327,7 @@ class modEventOrganization extends DolibarrModules */ public function init($options = '') { - global $conf, $langs; + global $conf, $langs, $user; // Permissions $this->remove($options); @@ -367,7 +368,31 @@ class modEventOrganization extends DolibarrModules } } - return $this->_init($sql, $options); + $init = $this->_init($sql, $options); + + + // Insert some vars + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($this->db); + + $template = $formmail->getEMailTemplate($this->db, 'conferenceorbooth', $user, $langs, 0, 1, '(EventOrganizationEmailAskConf)'); + if ($template->id > 0) { + dolibarr_set_const($this->db, 'EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF', $template->id, 'chaine', 0, '', $conf->entity); + } + $template = $formmail->getEMailTemplate($this->db, 'conferenceorbooth', $user, $langs, 0, 1, '(EventOrganizationEmailAskBooth)'); + if ($template->id > 0) { + dolibarr_set_const($this->db, 'EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH', $template->id, 'chaine', 0, '', $conf->entity); + } + $template = $formmail->getEMailTemplate($this->db, 'conferenceorbooth', $user, $langs, 0, 1, '(EventOrganizationEmailBoothPayment)'); + if ($template->id > 0) { + dolibarr_set_const($this->db, 'EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH', $template->id, 'chaine', 0, '', $conf->entity); + } + $template = $formmail->getEMailTemplate($this->db, 'conferenceorbooth', $user, $langs, 0, 1, '(EventOrganizationEmailRegistrationPayment)'); + if ($template->id > 0) { + dolibarr_set_const($this->db, 'EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT', $template->id, 'chaine', 0, '', $conf->entity); + } + + return $init; } /** diff --git a/htdocs/core/modules/modExpedition.class.php b/htdocs/core/modules/modExpedition.class.php index 80625817b22..2ff117404ee 100644 --- a/htdocs/core/modules/modExpedition.class.php +++ b/htdocs/core/modules/modExpedition.class.php @@ -70,7 +70,7 @@ class modExpedition extends DolibarrModules ); // Config pages - $this->config_page_url = array("confexped.php"); + $this->config_page_url = array("expedition.php"); // Dependencies $this->depends = array("modCommande"); diff --git a/htdocs/core/modules/modExpenseReport.class.php b/htdocs/core/modules/modExpenseReport.class.php index 53708ece3dd..698a3f4a141 100644 --- a/htdocs/core/modules/modExpenseReport.class.php +++ b/htdocs/core/modules/modExpenseReport.class.php @@ -65,7 +65,7 @@ class modExpenseReport extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled // $this->conflictwith = array("modDeplacement"); // Deactivate for access on old information $this->requiredby = array(); // List of modules id to disable if this one is disabled - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 7); // Minimum version of Dolibarr required by module $this->langfiles = array("companies", "trips"); diff --git a/htdocs/core/modules/modExport.class.php b/htdocs/core/modules/modExport.class.php index 278a70e6339..df996a312bf 100644 --- a/htdocs/core/modules/modExport.class.php +++ b/htdocs/core/modules/modExport.class.php @@ -62,8 +62,9 @@ class modExport extends DolibarrModules // Dependencies $this->depends = array(); $this->requiredby = array(); - $this->phpmin = array(4, 2, 0); + $this->phpmin = array(7, 0); $this->phpmax = array(); + $this->enabled_bydefault = true; // Will be enabled during install // Constants $this->const = array(); diff --git a/htdocs/core/modules/modExternalRss.class.php b/htdocs/core/modules/modExternalRss.class.php index d7710687ca6..e60c79e2deb 100644 --- a/htdocs/core/modules/modExternalRss.class.php +++ b/htdocs/core/modules/modExternalRss.class.php @@ -63,7 +63,7 @@ class modExternalRss extends DolibarrModules // Dependencies $this->depends = array(); $this->requiredby = array(); - $this->phpmin = array(4, 2, 0); + $this->phpmin = array(7, 0); $this->phpmax = array(); // Constants diff --git a/htdocs/core/modules/modFTP.class.php b/htdocs/core/modules/modFTP.class.php index 3e2ccd7d049..ae2de933bb6 100644 --- a/htdocs/core/modules/modFTP.class.php +++ b/htdocs/core/modules/modFTP.class.php @@ -54,11 +54,11 @@ class modFTP extends DolibarrModules // Module description used if translation string 'ModuleXXXDesc' not found (XXX is id value) $this->description = "FTP Client"; // Possible values for version are: 'development', 'experimental', 'dolibarr' or version - $this->version = 'dolibarr'; + $this->version = 'dolibarr_deprecated'; // Key used in llx_const table to save module status enabled/disabled (XXX is id value) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Name of png file (without png) used for this module - $this->picto = 'dir'; + $this->picto = 'folder'; // Data directories to create when module is enabled $this->dirs = array("/ftp/temp"); @@ -114,6 +114,7 @@ class modFTP extends DolibarrModules $this->menu[$r] = array('fk_menu'=>0, 'type'=>'top', 'titre'=>'FTP', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth em092"'), 'mainmenu'=>'ftp', 'url'=>'/ftp/index.php', 'langs'=>'ftp', diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php index 80a6ff1a805..a7089037abe 100644 --- a/htdocs/core/modules/modFacture.class.php +++ b/htdocs/core/modules/modFacture.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2021 Alexandre Spangaro + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -87,7 +88,7 @@ class modFacture extends DolibarrModules $this->const[$r][0] = "FACTURE_ADDON_PDF"; $this->const[$r][1] = "chaine"; - $this->const[$r][2] = "crabe"; + $this->const[$r][2] = "sponge"; $this->const[$r][3] = 'Name of PDF model of invoice'; $this->const[$r][4] = 0; $r++; @@ -134,7 +135,7 @@ class modFacture extends DolibarrModules 'objectname'=>'Facture', 'method'=>'sendEmailsRemindersOnInvoiceDueDate', 'parameters'=>"10,all,EmailTemplateCode", - 'comment'=>'Send an emails when the unpaid invoices reach a due date + n days = today. First param is the offset n of days, second parameter is "all" or a payment mode code, last parameter is the code of email template to use (an email template with EmailTemplateCode must exists. the version in the language of the thirdparty will be used in priority).', + 'comment'=>'Send an emails when the unpaid invoices reach a due date + n days = today. First param is the offset n of days, second parameter is "all" or a payment mode code, last parameter is the code of email template to use (an email template with EmailTemplateCode must exists. The version in the language of the thirdparty will be used in priority to update the PDF of the sent invoice).', 'frequency'=>1, 'unitfrequency'=>3600 * 24, 'priority'=>50, @@ -238,8 +239,7 @@ class modFacture extends DolibarrModules $this->import_fields_array[$r] = array( 'f.ref' => 'InvoiceRef*', 'f.ref_ext' => 'ExternalRef', - 'f.ref_int' => 'ExternalRef', - 'f.ref_client' => 'CutomerRef', + 'f.ref_client' => 'CustomerRef', 'f.type' => 'Type*', 'f.fk_soc' => 'Customer*', 'f.datec' => 'InvoiceDateCreation', @@ -267,7 +267,7 @@ class modFacture extends DolibarrModules 'f.note_private' => 'NotePrivate', 'f.model_pdf' => 'Model' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->import_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -292,7 +292,6 @@ class modFacture extends DolibarrModules $import_sample = array( 'f.ref' => '(PROV0001)', 'f.ref_ext' => '', - 'f.ref_int' => '', 'f.ref_client' => '', 'f.type' => '0', 'f.fk_soc' => '80LIMIT', @@ -352,7 +351,7 @@ class modFacture extends DolibarrModules ) ); - //Import Supplier Invoice Lines + // Import Invoice Lines $r++; $this->import_code[$r] = $this->rights_class.'_'.$r; $this->import_label[$r] = "InvoiceLine"; // Translation key @@ -399,7 +398,7 @@ class modFacture extends DolibarrModules // fk_user_modif // ref_ext ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['fd.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['fd.multicurrency_subprice'] = 'CurrencyRate'; $this->import_fields_array[$r]['fd.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -497,10 +496,12 @@ class modFacture extends DolibarrModules $r = 1; $alias_product_perentity = empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED) ? "p" : "ppe"; + $this->export_code[$r] = $this->rights_class.'_'.$r; $this->export_label[$r] = 'CustomersInvoicesAndInvoiceLines'; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_icon[$r] = 'invoice'; $this->export_permission[$r] = array(array("facture", "facture", "export", "other")); + $this->export_fields_array[$r] = array( 's.rowid'=>"IdCompany", 's.nom'=>'CompanyName', 'ps.nom' => 'ParentCompany', 's.code_client'=>'CustomerCode', 's.address'=>'Address', 's.zip'=>'Zip', 's.town'=>'Town', 'c.code'=>'CountryCode', 'cd.nom'=>'State', 's.phone'=>'Phone', @@ -508,60 +509,74 @@ class modFacture extends DolibarrModules 's.code_compta'=>'CustomerAccountancyCode', 's.code_compta_fournisseur'=>'SupplierAccountancyCode', 's.tva_intra'=>'VATIntra', + 't.libelle'=>"ThirdPartyType", // 'ce.code'=>"Staff", "cfj.libelle"=>"JuridicalStatus", 'f.rowid'=>"InvoiceId", 'f.ref'=>"InvoiceRef", 'f.ref_client'=>'RefCustomer', 'f.type'=>"Type", 'f.datec'=>"InvoiceDateCreation", 'f.datef'=>"DateInvoice", 'f.date_lim_reglement'=>"DateDue", 'f.total_ht'=>"TotalHT", 'f.total_ttc'=>"TotalTTC", 'f.total_tva'=>"TotalVAT", 'f.localtax1'=>'LT1', 'f.localtax2'=>'LT2', 'f.paye'=>"InvoicePaidCompletely", 'f.fk_statut'=>'InvoiceStatus', 'f.close_code'=>'EarlyClosingReason', 'f.close_note'=>'EarlyClosingComment', 'none.rest'=>'Rest', - 'f.note_private'=>"NotePrivate", 'f.note_public'=>"NotePublic", 'f.fk_user_author'=>'CreatedById', 'uc.login'=>'CreatedByLogin', - 'f.fk_user_valid'=>'ValidatedById', 'uv.login'=>'ValidatedByLogin', 'pj.ref'=>'ProjectRef', 'pj.title'=>'ProjectLabel', 'fd.rowid'=>'LineId', 'fd.description'=>"LineDescription", - 'fd.subprice'=>"LineUnitPrice", 'fd.tva_tx'=>"LineVATRate", 'fd.qty'=>"LineQty", 'fd.total_ht'=>"LineTotalHT", 'fd.total_tva'=>"LineTotalVAT", - 'fd.total_ttc'=>"LineTotalTTC", 'fd.date_start'=>"DateStart", 'fd.date_end'=>"DateEnd", 'fd.special_code'=>'SpecialCode', - 'fd.product_type'=>"TypeOfLineServiceOrProduct", 'fd.fk_product'=>'ProductId', 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', - $alias_product_perentity . '.accountancy_code_sell'=>'ProductAccountancySellCode' + 'f.note_private'=>"NotePrivate", 'f.note_public'=>"NotePublic" ); - if (!empty($conf->multicurrency->enabled)) { + // Add multicurrency fields + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; $this->export_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT'; $this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; } + // Add POS fields if (!empty($conf->cashdesk->enabled) || !empty($conf->takepos->enabled) || !empty($conf->global->INVOICE_SHOW_POS)) { $this->export_fields_array[$r]['f.module_source'] = 'Module'; $this->export_fields_array[$r]['f.pos_source'] = 'POSTerminal'; } + $this->export_fields_array[$r] = $this->export_fields_array[$r] + array( + 'f.fk_user_author'=>'CreatedById', 'uc.login'=>'CreatedByLogin', + 'f.fk_user_valid'=>'ValidatedById', 'uv.login'=>'ValidatedByLogin', + 'pj.ref'=>'ProjectRef', 'pj.title'=>'ProjectLabel' + ); // Add multicompany field if (!empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { $nbofallowedentities = count(explode(',', getEntity('invoice'))); - if (!empty($conf->multicompany->enabled) && $nbofallowedentities > 1) { + if (isModEnabled('multicompany') && $nbofallowedentities > 1) { $this->export_fields_array[$r]['f.entity'] = 'Entity'; } } + $this->export_fields_array[$r] = $this->export_fields_array[$r] + array( + 'fd.rowid'=>'LineId', 'fd.description'=>"LineDescription", + 'fd.subprice'=>"LineUnitPrice", 'fd.tva_tx'=>"LineVATRate", 'fd.qty'=>"LineQty", 'fd.total_ht'=>"LineTotalHT", 'fd.total_tva'=>"LineTotalVAT", + 'fd.total_ttc'=>"LineTotalTTC", 'fd.date_start'=>"DateStart", 'fd.date_end'=>"DateEnd", 'fd.special_code'=>'SpecialCode', + 'fd.product_type'=>"TypeOfLineServiceOrProduct", 'fd.fk_product'=>'ProductId', 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', + $alias_product_perentity . '.accountancy_code_sell'=>'ProductAccountancySellCode', + 'aa.account_number' => 'AccountingAffectation' + ); $this->export_TypeFields_array[$r] = array( 's.rowid'=>'Numeric', 's.nom'=>'Text', 'ps.nom'=>'Text', 's.code_client'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 'c.code'=>'Text', 'cd.nom'=>'Text', 's.phone'=>'Text', 's.siren'=>'Text', 's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 's.code_compta'=>'Text', 's.code_compta_fournisseur'=>'Text', 's.tva_intra'=>'Text', + 't.libelle'=>"Text", // 'ce.code'=>"List:c_effectif:libelle:code", "cfj.libelle"=>"Text", 'f.rowid'=>'Numeric', 'f.ref'=>"Text", 'f.ref_client'=>'Text', 'f.type'=>"Numeric", 'f.datec'=>"Date", 'f.datef'=>"Date", 'f.date_lim_reglement'=>"Date", 'f.fk_mode_reglement'=>'Numeric', 'f.total_ht'=>"Numeric", 'f.total_ttc'=>"Numeric", 'f.total_tva'=>"Numeric", 'f.localtax1'=>'Numeric', 'f.localtax2'=>'Numeric', 'f.paye'=>"Boolean", 'f.fk_statut'=>'Numeric', 'f.close_code'=>'Text', 'f.close_note'=>'Text', 'none.rest'=>"NumericCompute", - 'f.note_private'=>"Text", 'f.note_public'=>"Text", 'f.fk_user_author'=>'Numeric', 'uc.login'=>'Text', 'f.fk_user_valid'=>'Numeric', 'uv.login'=>'Text', + 'f.note_private'=>"Text", 'f.note_public'=>"Text", + 'f.module_source' => 'Text', + 'f.pos_source' => 'Text', + 'f.entity'=>'List:entity:label:rowid', + 'f.fk_user_author'=>'Numeric', 'uc.login'=>'Text', 'f.fk_user_valid'=>'Numeric', 'uv.login'=>'Text', 'pj.ref'=>'Text', 'pj.title'=>'Text', 'fd.rowid'=>'Numeric', 'fd.description'=>"Text", 'fd.subprice'=>"Numeric", 'fd.tva_tx'=>"Numeric", 'fd.qty'=>"Numeric", 'fd.total_ht'=>"Numeric", 'fd.total_tva'=>"Numeric", 'fd.total_ttc'=>"Numeric", 'fd.date_start'=>"Date", 'fd.date_end'=>"Date", 'fd.special_code'=>'Numeric', 'fd.product_type'=>"Numeric", 'fd.fk_product'=>'List:product:label', 'p.ref'=>'Text', 'p.label'=>'Text', $alias_product_perentity . '.accountancy_code_sell'=>'Text', - 'f.entity'=>'List:entity:label:rowid', + 'aa.account_number' => 'Text' ); - if (!empty($conf->cashdesk->enabled) || !empty($conf->takepos->enabled) || !empty($conf->global->INVOICE_SHOW_POS)) { - $this->export_TypeFields_array[$r]['f.module_source'] = 'Text'; - $this->export_TypeFields_array[$r]['f.pos_source'] = 'Text'; - } $this->export_entities_array[$r] = array( 's.rowid'=>"company", 's.nom'=>'company', 'ps.nom'=>'company', 's.code_client'=>'company', 's.address'=>'company', 's.zip'=>'company', 's.town'=>'company', 'c.code'=>'company', 'cd.nom'=>'company', 's.phone'=>'company', - 's.siren'=>'company', 's.siret'=>'company', 's.ape'=>'company', 's.idprof4'=>'company', 's.code_compta'=>'company', 's.code_compta_fournisseur'=>'company', - 's.tva_intra'=>'company', 'pj.ref'=>'project', 'pj.title'=>'project', 'fd.rowid'=>'invoice_line', 'fd.description'=>"invoice_line", + 's.siren'=>'company', 's.siret'=>'company', 's.ape'=>'company', 's.idprof4'=>'company', 's.code_compta'=>'company', 's.code_compta_fournisseur'=>'company', 's.tva_intra'=>'company', + 't.libelle'=>'company', // 'ce.code'=>'company', 'cfj.libelle'=>'company' + 'pj.ref'=>'project', 'pj.title'=>'project', 'fd.rowid'=>'invoice_line', 'fd.description'=>"invoice_line", 'fd.subprice'=>"invoice_line", 'fd.total_ht'=>"invoice_line", 'fd.total_tva'=>"invoice_line", 'fd.total_ttc'=>"invoice_line", 'fd.tva_tx'=>"invoice_line", 'fd.qty'=>"invoice_line", 'fd.date_start'=>"invoice_line", 'fd.date_end'=>"invoice_line", 'fd.special_code'=>'invoice_line', 'fd.product_type'=>'invoice_line', 'fd.fk_product'=>'product', 'p.ref'=>'product', 'p.label'=>'product', $alias_product_perentity . '.accountancy_code_sell'=>'product', - 'f.fk_user_author'=>'user', 'uc.login'=>'user', 'f.fk_user_valid'=>'user', 'uv.login'=>'user' + 'f.fk_user_author'=>'user', 'uc.login'=>'user', 'f.fk_user_valid'=>'user', 'uv.login'=>'user', + 'aa.account_number' => "invoice_line", ); $this->export_special_array[$r] = array('none.rest'=>'getRemainToPay'); $this->export_dependencies_array[$r] = array('invoice_line'=>'fd.rowid', 'product'=>'fd.rowid', 'none.rest'=>array('f.rowid', 'f.total_ttc', 'f.close_code')); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them @@ -585,6 +600,7 @@ class modFacture extends DolibarrModules $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'societe as s'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_extrafields as extra4 ON s.rowid = extra4.fk_object'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe as ps ON ps.rowid = s.parent'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_typent as t ON s.fk_typent = t.id'; if (empty($user->rights->societe->client->voir)) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_commerciaux as sc ON sc.fk_soc = s.rowid'; } @@ -602,6 +618,7 @@ class modFacture extends DolibarrModules $this->export_sql_end[$r] .= " LEFT JOIN " . MAIN_DB_PREFIX . "product_perentity as ppe ON ppe.fk_product = p.rowid AND ppe.entity = " . ((int) $conf->entity); } $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'accounting_account as aa on fd.fk_code_ventilation = aa.rowid'; $this->export_sql_end[$r] .= ' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture'; $this->export_sql_end[$r] .= ' AND f.entity IN ('.getEntity('invoice').')'; if (empty($user->rights->societe->client->voir)) { @@ -629,7 +646,7 @@ class modFacture extends DolibarrModules 'pt.code'=>'CodePaymentMode', 'pt.libelle'=>'LabelPaymentMode', 'p.note'=>'PaymentNote', 'p.fk_bank'=>'IdTransaction', 'ba.ref'=>'AccountRef' ); $this->export_help_array[$r] = array('f.paye'=>'InvoicePaidCompletelyHelp'); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; diff --git a/htdocs/core/modules/modFckeditor.class.php b/htdocs/core/modules/modFckeditor.class.php index 8c30d8a0a51..9dd3fce7fcd 100644 --- a/htdocs/core/modules/modFckeditor.class.php +++ b/htdocs/core/modules/modFckeditor.class.php @@ -66,16 +66,15 @@ class modFckeditor extends DolibarrModules $this->disabled = in_array(constant('JS_CKEDITOR'), array('disabled', 'disabled/')); $this->depends = array(); $this->requiredby = array('modWebsites'); + $this->enabled_bydefault = true; // Will be enabled during install // Constants $this->const = array(); $this->const[0] = array("FCKEDITOR_ENABLE_SOCIETE", "yesno", "1", "WYSIWIG for the fields descriptions of elements (except products/services)"); - $this->const[1] = array("FCKEDITOR_ENABLE_PRODUCTDESC", "yesno", "1", "WYSIWIG for the fields description of products/services"); - $this->const[2] = array("FCKEDITOR_ENABLE_MAILING", "yesno", "1", "WYSIWIG for mass emailings"); - $this->const[3] = array("FCKEDITOR_ENABLE_DETAILS", "yesno", "1", "WYSIWIG for products details lines for all entities"); - $this->const[4] = array("FCKEDITOR_ENABLE_USERSIGN", "yesno", "1", "WYSIWIG for user signature"); + $this->const[2] = array("FCKEDITOR_ENABLE_DETAILS", "yesno", "1", "WYSIWIG for products details lines for all entities"); + $this->const[3] = array("FCKEDITOR_ENABLE_USERSIGN", "yesno", "1", "WYSIWIG for user signature"); + $this->const[4] = array("FCKEDITOR_ENABLE_MAILING", "yesno", "1", "WYSIWIG for mass emailings"); $this->const[5] = array("FCKEDITOR_ENABLE_MAIL", "yesno", "1", "WYSIWIG for products details lines for all entities"); - $this->const[6] = array("FCKEDITOR_SKIN", "string", "moono-lisa", "Skin by default for fckeditor"); // Boxes $this->boxes = array(); diff --git a/htdocs/core/modules/modFournisseur.class.php b/htdocs/core/modules/modFournisseur.class.php index afc6fec4fc6..b6286c35162 100644 --- a/htdocs/core/modules/modFournisseur.class.php +++ b/htdocs/core/modules/modFournisseur.class.php @@ -111,6 +111,7 @@ class modFournisseur extends DolibarrModules $this->const[$r][4] = 0; $r++; + // Add ability ODT for Supplier orders $this->const[$r][0] = "SUPPLIER_ORDER_ADDON_PDF_ODT_PATH"; $this->const[$r][1] = "chaine"; $this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/supplier_orders"; @@ -118,6 +119,14 @@ class modFournisseur extends DolibarrModules $this->const[$r][4] = 0; $r++; + // Add ability ODT for Supplier Invoices + $this->const[$r][0] = "SUPPLIER_INVOICE_ADDON_PDF_ODT_PATH"; + $this->const[$r][1] = "chaine"; + $this->const[$r][2] = ""; + $this->const[$r][3] = ""; + $this->const[$r][4] = 0; + $r++; + // Boxes $this->boxes = array( 0=>array('file'=>'box_graph_invoices_supplier_permonth.php', 'enabledbydefaulton'=>'Home'), @@ -317,7 +326,7 @@ class modFournisseur extends DolibarrModules 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', 'p.accountancy_code_buy'=>'ProductAccountancyBuyCode', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -391,7 +400,7 @@ class modFournisseur extends DolibarrModules 'f.fk_statut'=>'InvoiceStatus', 'f.note_public'=>"InvoiceNote", 'p.rowid'=>'PaymentId', 'pf.amount'=>'AmountPayment', 'p.datep'=>'DatePayment', 'p.num_paiement'=>'PaymentNumber', 'p.fk_bank'=>'IdTransaction', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -458,7 +467,7 @@ class modFournisseur extends DolibarrModules 'fd.product_type'=>'TypeOfLineServiceOrProduct', 'fd.ref'=>'RefSupplier', 'fd.fk_product'=>'ProductId', 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -557,7 +566,7 @@ class modFournisseur extends DolibarrModules 'f.model_pdf' => 'Model', 'f.date_valid' => 'Validation Date' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['f.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate'; $this->import_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -578,6 +587,9 @@ class modFournisseur extends DolibarrModules } // End add extra fields $this->import_fieldshidden_array[$r] = array('extra.fk_object' => 'lastrowid-'.MAIN_DB_PREFIX.'facture_fourn'); + if (empty($conf->multicurrency->enabled)) { + $this->import_fieldshidden_array[$r]['f.multicurrency_code'] = 'const-'.$conf->currency; + } $this->import_regex_array[$r] = array('f.ref' => '(SI\d{4}-\d{4}|PROV.{1,32}$)', 'f.multicurrency_code' => 'code@'.MAIN_DB_PREFIX.'multicurrency'); $import_sample = array( 'f.ref' => '(PROV001)', @@ -649,7 +661,7 @@ class modFournisseur extends DolibarrModules 'fd.date_end' => 'End Date', 'fd.fk_unit' => 'Unit' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['fd.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['fd.multicurrency_subprice'] = 'CurrencyRate'; $this->import_fields_array[$r]['fd.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -735,7 +747,7 @@ class modFournisseur extends DolibarrModules 'c.model_pdf' => 'Model' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['c.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['c.multicurrency_tx'] = 'CurrencyRate'; $this->import_fields_array[$r]['c.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -817,7 +829,7 @@ class modFournisseur extends DolibarrModules 'cd.fk_unit' => 'Unit' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['cd.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['cd.multicurrency_subprice'] = 'CurrencyRate'; $this->import_fields_array[$r]['cd.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -872,7 +884,7 @@ class modFournisseur extends DolibarrModules $this->remove($options); - //ODT template + //ODT template for Supplier Orders $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/supplier_orders/template_supplier_order.odt'; $dirodt = DOL_DATA_ROOT.'/doctemplates/supplier_orders'; $dest = $dirodt.'/template_supplier_order.odt'; @@ -888,11 +900,38 @@ class modFournisseur extends DolibarrModules } } - $sql = array( - "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[0][2])."' AND type = 'order_supplier' AND entity = ".((int) $conf->entity), - "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."', 'order_supplier', ".((int) $conf->entity).")", + $sql_order = array( + "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[0][2])."' AND type = 'order_supplier' AND entity = ".((int) $conf->entity), + "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."', 'order_supplier', ".((int) $conf->entity).")", ); + //ODT template for Supplier Invoice + $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/supplier_invoices/template_supplier_invoices.odt'; + $dirodt = DOL_DATA_ROOT.'/doctemplates/supplier_invoices'; + $dest = $dirodt.'/template_supplier_invoices.odt'; + + if (file_exists($src) && !file_exists($dest)) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + dol_mkdir($dirodt); + $result = dol_copy($src, $dest, 0, 0); + if ($result < 0) { + $langs->load("errors"); + $this->error = $langs->trans('ErrorFailToCopyFile', $src, $dest); + return 0; + } + } + + /* + $sql_invoice = array( + "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[2][2])."' AND type = 'invoice_supplier' AND entity = ".((int) $conf->entity), + "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[2][2])."', 'invoice_supplier', ".((int) $conf->entity).")", + ); + + $sql = array_merge($sql_order, $sql_invoice); + */ + + $sql = $sql_order; + return $this->_init($sql, $options); } } diff --git a/htdocs/core/modules/modGeoIPMaxmind.class.php b/htdocs/core/modules/modGeoIPMaxmind.class.php index 41c3d8517d8..092315f65f2 100644 --- a/htdocs/core/modules/modGeoIPMaxmind.class.php +++ b/htdocs/core/modules/modGeoIPMaxmind.class.php @@ -69,7 +69,7 @@ class modGeoIPMaxmind extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); + $this->phpmin = array(7, 0); $this->phpmax = array(); $this->need_dolibarr_version = array(2, 7, -1); // Minimum version of Dolibarr required by module $this->need_javascript_ajax = 1; diff --git a/htdocs/core/modules/modGravatar.class.php b/htdocs/core/modules/modGravatar.class.php index 25163a766bd..b39d4921918 100644 --- a/htdocs/core/modules/modGravatar.class.php +++ b/htdocs/core/modules/modGravatar.class.php @@ -77,7 +77,7 @@ class modGravatar extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(2, 7); // Minimum version of Dolibarr required by module $this->langfiles = array(); diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index 7df3bcc6dcf..78c0bde14f6 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -56,7 +56,7 @@ class modHRM extends DolibarrModules // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module) $this->description = "HRM"; // Possible values for version are: 'development', 'experimental', 'dolibarr' or version - $this->version = 'experimental'; + $this->version = 'dolibarr'; // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Name of image file used for this module. @@ -105,7 +105,7 @@ class modHRM extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(11, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("hrm"); @@ -141,7 +141,7 @@ class modHRM extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -265,6 +265,14 @@ class modHRM extends DolibarrModules $this->rights[$r][4] = 'write_personal_information'; $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_personal_information->write) $r++; + + // Evaluation + $this->rights[$r][0] = 4033; // Permission id (must not be already used) + $this->rights[$r][1] = 'Read all evaluations'; // Permission label + $this->rights[$r][3] = 0; // Permission by default for new user (0/1) + $this->rights[$r][4] = 'evaluation'; + $this->rights[$r][5] = 'readall'; // In php code, permission will be checked by test if ($user->rights->hrm->evaluation->read) + $r++; } /** diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php index 53f69dfefaf..57ffe62e005 100644 --- a/htdocs/core/modules/modHoliday.class.php +++ b/htdocs/core/modules/modHoliday.class.php @@ -78,16 +78,12 @@ class modHoliday extends DolibarrModules // Config pages $this->config_page_url = array("holiday.php"); - - // Config pages. Put here list of php page names stored in admmin directory used to setup module. - // $this->config_page_url = array("holiday.php?leftmenu=setup@holiday"); - // Dependencies $this->hidden = false; // A condition to hide module $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("holiday"); @@ -140,7 +136,7 @@ class modHoliday extends DolibarrModules $datestart = dol_mktime(4, 0, 0, $arraydate['mon'], $arraydate['mday'], $arraydate['year']); $this->cronjobs = array( 0 => array( - 'label' => 'HolidayBalanceMonthlyUpdate', + 'label' => 'HolidayBalanceMonthlyUpdate:holiday', 'jobtype' => 'method', 'class' => 'holiday/class/holiday.class.php', 'objectname' => 'Holiday', diff --git a/htdocs/core/modules/modImport.class.php b/htdocs/core/modules/modImport.class.php index b70806af82a..63f0ca5189f 100644 --- a/htdocs/core/modules/modImport.class.php +++ b/htdocs/core/modules/modImport.class.php @@ -64,10 +64,10 @@ class modImport extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module - Need auto_detect_line_endings php option to solve MAC pbs. + $this->phpmin = array(7, 0); // Minimum version of PHP required by module - Need auto_detect_line_endings php option to solve MAC pbs. $this->phpmax = array(); $this->need_dolibarr_version = array(2, 7, -1); // Minimum version of Dolibarr required by module - $this->need_javascript_ajax = 1; + $this->enabled_bydefault = true; // Will be enabled during install // Constants $this->const = array(); diff --git a/htdocs/core/modules/modIncoterm.class.php b/htdocs/core/modules/modIncoterm.class.php index ffbd14a88fb..1a4717e9d44 100644 --- a/htdocs/core/modules/modIncoterm.class.php +++ b/htdocs/core/modules/modIncoterm.class.php @@ -68,7 +68,7 @@ class modIncoterm extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("incoterm"); @@ -93,7 +93,8 @@ class modIncoterm extends DolibarrModules 'tabfieldvalue'=>array("code,libelle"), // List of fields (list of fields to edit a record) 'tabfieldinsert'=>array("code,libelle"), // List of fields (list of fields for insert) 'tabrowid'=>array("rowid"), // Name of columns with primary key (try to always name it 'rowid') - 'tabcond'=>array($conf->incoterm->enabled) + 'tabcond'=>array($conf->incoterm->enabled), + 'tabhelp' => array(array()) ); $this->boxes = array(); // List of boxes diff --git a/htdocs/core/modules/modIntracommreport.class.php b/htdocs/core/modules/modIntracommreport.class.php index 25f26050ed0..4df6a50183e 100644 --- a/htdocs/core/modules/modIntracommreport.class.php +++ b/htdocs/core/modules/modIntracommreport.class.php @@ -15,7 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -65,7 +65,7 @@ class modIntracommreport extends DolibarrModules $this->depends = array("modFacture", "modTax", "modCategorie"); // List of modules id that must be enabled if this module is enabled $this->requiredby = array(); // List of modules id to disable if this one is disabled $this->conflictwith = array(); // List of modules id this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(13, 0, -5); // Minimum version of Dolibarr required by module $this->langfiles = array("intracommreport"); diff --git a/htdocs/core/modules/modKnowledgeManagement.class.php b/htdocs/core/modules/modKnowledgeManagement.class.php index 0df2f20992f..b331c56a917 100644 --- a/htdocs/core/modules/modKnowledgeManagement.class.php +++ b/htdocs/core/modules/modKnowledgeManagement.class.php @@ -140,7 +140,7 @@ class modKnowledgeManagement extends DolibarrModules $this->langfiles = array("knowledgemanagement"); // Prerequisites - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(11, -3); // Minimum version of Dolibarr required by module // Messages at activation @@ -184,7 +184,7 @@ class modKnowledgeManagement extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modLabel.class.php b/htdocs/core/modules/modLabel.class.php index 8c8756c60c7..dff42653c3c 100644 --- a/htdocs/core/modules/modLabel.class.php +++ b/htdocs/core/modules/modLabel.class.php @@ -61,7 +61,7 @@ class modLabel extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Config pages // $this->config_page_url = array("label.php"); diff --git a/htdocs/core/modules/modLdap.class.php b/htdocs/core/modules/modLdap.class.php index 0774f71a583..2b02a1b58c1 100644 --- a/htdocs/core/modules/modLdap.class.php +++ b/htdocs/core/modules/modLdap.class.php @@ -67,7 +67,7 @@ class modLdap extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Constants $this->const = array( diff --git a/htdocs/core/modules/modLoan.class.php b/htdocs/core/modules/modLoan.class.php index 8f9de88b83f..36919bc38af 100644 --- a/htdocs/core/modules/modLoan.class.php +++ b/htdocs/core/modules/modLoan.class.php @@ -67,7 +67,7 @@ class modLoan extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("loan"); // Constants @@ -82,7 +82,7 @@ class modLoan extends DolibarrModules "chaine", "6611" ); - $this->const[1] = array( + $this->const[2] = array( "LOAN_ACCOUNTING_ACCOUNT_INSURANCE", "chaine", "6162" diff --git a/htdocs/core/modules/modMailing.class.php b/htdocs/core/modules/modMailing.class.php index 7e3d4b6aeb1..bb0a409ae36 100644 --- a/htdocs/core/modules/modMailing.class.php +++ b/htdocs/core/modules/modMailing.class.php @@ -66,7 +66,7 @@ class modMailing extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("mails"); // Config pages diff --git a/htdocs/core/modules/modMailmanSpip.class.php b/htdocs/core/modules/modMailmanSpip.class.php index 2a8d97484e7..86061608d33 100644 --- a/htdocs/core/modules/modMailmanSpip.class.php +++ b/htdocs/core/modules/modMailmanSpip.class.php @@ -66,7 +66,7 @@ class modMailmanSpip extends DolibarrModules $this->depends = array('modAdherent'); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Config pages $this->config_page_url = array('mailman.php'); diff --git a/htdocs/core/modules/modMargin.class.php b/htdocs/core/modules/modMargin.class.php index cb7b4d5e602..55f2a5ed927 100644 --- a/htdocs/core/modules/modMargin.class.php +++ b/htdocs/core/modules/modMargin.class.php @@ -72,7 +72,7 @@ class modMargin extends DolibarrModules $this->depends = array("modPropale", "modProduct"); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 2); // Minimum version of Dolibarr required by module $this->langfiles = array("margins"); diff --git a/htdocs/core/modules/modModuleBuilder.class.php b/htdocs/core/modules/modModuleBuilder.class.php index 99c32e48bbd..8e1fa8bac06 100644 --- a/htdocs/core/modules/modModuleBuilder.class.php +++ b/htdocs/core/modules/modModuleBuilder.class.php @@ -48,7 +48,7 @@ class modModuleBuilder extends DolibarrModules $this->module_position = '90'; // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i', '', get_class($this)); - $this->description = "A RAD (Rapid Application Development) tool to help developers to build their own module."; + $this->description = "A RAD (Rapid Application Development - low-code and no-code) tool to help developers or advanced users to build their own module/application."; // Possible values for version are: 'development', 'experimental', 'dolibarr' or version $this->version = 'dolibarr'; // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) @@ -102,16 +102,18 @@ class modModuleBuilder extends DolibarrModules //------------------ $this->menu = array(); - $this->menu[$r] = array('fk_menu'=>'fk_mainmenu=home,fk_leftmenu=admintools', + $this->menu[$r] = array('fk_menu'=>'fk_mainmenu=tools', 'type'=>'left', 'titre'=>'ModuleBuilder', - 'mainmenu'=>'home', - 'leftmenu'=>'admintools_modulebuilder', - 'url'=>'/modulebuilder/index.php?mainmenu=home&leftmenu=admintools', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth"'), + 'mainmenu'=>'tools', + 'leftmenu'=>'devtools_modulebuilder', + 'url'=>'/modulebuilder/index.php?mainmenu=tools&leftmenu=devtools', 'langs'=>'modulebuilder', 'position'=>100, - 'perms'=>'1', - 'enabled'=>'$conf->modulebuilder->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu) && ($user->admin || $conf->global->MODULEBUILDER_FOREVERYONE)', + 'perms'=>'$user->hasRight("modulebuilder", "run")', + //'enabled'=>'isModEnabled("modulebuilder") && preg_match(\'/^(devtools|all)/\',$leftmenu)', + 'enabled'=>'isModEnabled("modulebuilder")', 'target'=>'_modulebuilder', 'user'=>0); } diff --git a/htdocs/core/modules/modMrp.class.php b/htdocs/core/modules/modMrp.class.php index ff09c7570f6..58e7791845a 100644 --- a/htdocs/core/modules/modMrp.class.php +++ b/htdocs/core/modules/modMrp.class.php @@ -2,7 +2,7 @@ /* Copyright (C) 2004-2018 Laurent Destailleur * Copyright (C) 2018-2019 Nicolas ZABOURI * Copyright (C) 2019 Frédéric France - * Copyright (C) 2019 Alicealalalamdskfldmjgdfgdfhfghgfh Adminson + * Copyright (C) 2019 Destailleur Laurent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -122,7 +122,7 @@ class modMrp extends DolibarrModules $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) $this->langfiles = array("mrp"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(8, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -168,7 +168,7 @@ class modMrp extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modMultiCurrency.class.php b/htdocs/core/modules/modMultiCurrency.class.php index 73c58100ea5..f08c9a4b021 100644 --- a/htdocs/core/modules/modMultiCurrency.class.php +++ b/htdocs/core/modules/modMultiCurrency.class.php @@ -88,7 +88,7 @@ class modMultiCurrency extends DolibarrModules $this->depends = array(); // List of modules id that must be enabled if this module is enabled $this->requiredby = array(); // List of modules id to disable if this one is disabled $this->conflictwith = array(); // List of modules id this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("multicurrency"); @@ -113,7 +113,7 @@ class modMultiCurrency extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -286,7 +286,7 @@ class modMultiCurrency extends DolibarrModules $multicurrency = new MultiCurrency($this->db); - if (!$multicurrency->checkCodeAlreadyExists($conf->currency)) { + if (! $multicurrency->checkCodeAlreadyExists($conf->currency)) { $langs->loadCacheCurrencies(''); $multicurrency->code = $conf->currency; diff --git a/htdocs/core/modules/modNotification.class.php b/htdocs/core/modules/modNotification.class.php index 072e0607b60..63086fd9112 100644 --- a/htdocs/core/modules/modNotification.class.php +++ b/htdocs/core/modules/modNotification.class.php @@ -63,7 +63,7 @@ class modNotification extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("mails"); // Config pages diff --git a/htdocs/core/modules/modOauth.class.php b/htdocs/core/modules/modOauth.class.php index f66ba404c7e..d93a715f1e7 100644 --- a/htdocs/core/modules/modOauth.class.php +++ b/htdocs/core/modules/modOauth.class.php @@ -71,7 +71,7 @@ class modOauth extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 7, -2); // Minimum version of Dolibarr required by module $this->conflictwith = array(); $this->langfiles = array("oauth"); diff --git a/htdocs/core/modules/modOpenSurvey.class.php b/htdocs/core/modules/modOpenSurvey.class.php index 04a8cd54082..26a49337888 100644 --- a/htdocs/core/modules/modOpenSurvey.class.php +++ b/htdocs/core/modules/modOpenSurvey.class.php @@ -76,7 +76,7 @@ class modOpenSurvey extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 4, 0); // Minimum version of Dolibarr required by module // Constants diff --git a/htdocs/core/modules/modPartnership.class.php b/htdocs/core/modules/modPartnership.class.php index 7ba10ca4536..8e8421540c7 100644 --- a/htdocs/core/modules/modPartnership.class.php +++ b/htdocs/core/modules/modPartnership.class.php @@ -147,7 +147,7 @@ class modPartnership extends DolibarrModules $this->langfiles = array("partnership"); // Prerequisites - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(11, -3); // Minimum version of Dolibarr required by module // Messages at activation @@ -199,7 +199,7 @@ class modPartnership extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modPaybox.class.php b/htdocs/core/modules/modPaybox.class.php index 24af8a3c953..cf6ef512873 100644 --- a/htdocs/core/modules/modPaybox.class.php +++ b/htdocs/core/modules/modPaybox.class.php @@ -73,7 +73,7 @@ class modPayBox extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(2, 6); // Minimum version of Dolibarr required by module $this->langfiles = array("paybox"); diff --git a/htdocs/core/modules/modPaymentByBankTransfer.class.php b/htdocs/core/modules/modPaymentByBankTransfer.class.php index 6b51e25cdc2..27c43a9b3da 100644 --- a/htdocs/core/modules/modPaymentByBankTransfer.class.php +++ b/htdocs/core/modules/modPaymentByBankTransfer.class.php @@ -68,7 +68,7 @@ class modPaymentByBankTransfer extends DolibarrModules $this->depends = array("modFournisseur", "modBanque"); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Config pages $this->config_page_url = array("paymentbybanktransfer.php"); diff --git a/htdocs/core/modules/modPaypal.class.php b/htdocs/core/modules/modPaypal.class.php index a1e979715fe..02caa6c3388 100644 --- a/htdocs/core/modules/modPaypal.class.php +++ b/htdocs/core/modules/modPaypal.class.php @@ -74,7 +74,7 @@ class modPaypal extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array('modPaypalPlus'); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("paypal"); diff --git a/htdocs/core/modules/modPrelevement.class.php b/htdocs/core/modules/modPrelevement.class.php index a42d3c8b5a0..dd6ccd484fa 100644 --- a/htdocs/core/modules/modPrelevement.class.php +++ b/htdocs/core/modules/modPrelevement.class.php @@ -67,7 +67,7 @@ class modPrelevement extends DolibarrModules $this->depends = array("modFacture", "modBanque"); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Config pages $this->config_page_url = array("prelevement.php"); diff --git a/htdocs/core/modules/modPrinting.class.php b/htdocs/core/modules/modPrinting.class.php index c9e99b3d933..6638d16e201 100644 --- a/htdocs/core/modules/modPrinting.class.php +++ b/htdocs/core/modules/modPrinting.class.php @@ -69,7 +69,7 @@ class modPrinting extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 7, -2); // Minimum version of Dolibarr required by module $this->conflictwith = array(); $this->langfiles = array("printing"); diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index b18d10a29b1..16906c95f86 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -70,7 +70,7 @@ class modProduct extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array("modStock", "modBarcode", "modProductBatch", "modVariants"); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Config pages $this->config_page_url = array("product.php@product"); @@ -127,6 +127,14 @@ class modProduct extends DolibarrModules $this->rights[$r][4] = 'creer'; $r++; + $this->rights[$r][0] = 33; // id de la permission + $this->rights[$r][1] = 'Read prices products'; // libelle de la permission + $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'product_advance'; + $this->rights[$r][5] = 'read_prices'; + $r++; + $this->rights[$r][0] = 34; // id de la permission $this->rights[$r][1] = 'Delete products'; // libelle de la permission $this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour) @@ -203,29 +211,29 @@ class modProduct extends DolibarrModules if (is_object($mysoc) && $usenpr) { $this->export_fields_array[$r]['p.recuperableonly'] = 'NPR'; } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled) || !empty($conf->margin->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('e.ref'=>'DefaultWarehouse', 'p.tobatch'=>'ManageLotSerial', 'p.stock'=>'Stock', 'p.seuil_stock_alerte'=>'StockLimit', 'p.desiredstock'=>'DesiredStock', 'p.pmp'=>'PMPValue')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); } $keyforselect = 'product'; $keyforelement = 'product'; $keyforaliasextra = 'extra'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier', 'pf.ref_fourn'=>'SupplierRef', 'pf.quantity'=>'QtyMin', 'pf.remise_percent'=>'DiscountQtyMin', 'pf.unitprice'=>'BuyingPrice', 'pf.delivery_time_days'=>'NbDaysToDelivery')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('group_concat(cat.label)'=>'Categories')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel', 'l.description'=>'TranslatedDescription', 'l.note'=>'TranslatedNote')); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->export_fields_array[$r]['p.fk_unit'] = 'Unit'; } $this->export_TypeFields_array[$r] = array( @@ -244,16 +252,16 @@ class modProduct extends DolibarrModules 'p.tva_tx'=>'Numeric', 'p.datec'=>'Date', 'p.tms'=>'Date' ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('e.ref'=>'Text', 'p.tobatch'=>'Numeric', 'p.stock'=>'Numeric', 'p.seuil_stock_alerte'=>'Numeric', 'p.desiredstock'=>'Numeric', 'p.pmp'=>'Numeric', 'p.cost_price'=>'Numeric')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text', 'pf.ref_fourn'=>'Text', 'pf.unitprice'=>'Numeric', 'pf.quantity'=>'Numeric', 'pf.remise_percent'=>'Numeric', 'pf.delivery_time_days'=>'Numeric')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('l.lang'=>'Text', 'l.label'=>'Text', 'l.description'=>'Text', 'l.note'=>'Text')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { @@ -263,31 +271,31 @@ class modProduct extends DolibarrModules if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array("group_concat(cat.label)"=>'category')); } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.stock'=>'product', 'p.pmp'=>'product')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product')); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('l.lang'=>'translation', 'l.label'=>'translation', 'l.description'=>'translation', 'l.note'=>'translation')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_dependencies_array[$r] = array('category'=>'p.rowid'); } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.stock'=>'product', 'p.pmp'=>'product')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product')); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('l.lang'=>'translation', 'l.label'=>'translation', 'l.description'=>'translation', 'l.note'=>'translation')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { @@ -301,14 +309,14 @@ class modProduct extends DolibarrModules if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'categorie as cat ON cp.fk_categorie = cat.rowid'; } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_lang as l ON l.fk_product = p.rowid'; } $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object'; - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc'; } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'entrepot as e ON e.rowid = p.fk_default_warehouse'; } $this->export_sql_end[$r] .= ' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity('product').')'; @@ -401,10 +409,10 @@ class modProduct extends DolibarrModules 'p.price_base_type'=>"PriceBase", 'p.price'=>"UnitPriceHT", 'p.price_ttc'=>"UnitPriceTTC", 'p.tva_tx'=>'VATRate', 'p.tosell'=>"OnSell", 'p.tobuy'=>"OnBuy", 'p.datec'=>'DateCreation', 'p.tms'=>'DateModification' ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.stock'=>'Stock', 'p.seuil_stock_alerte'=>'StockLimit', 'p.desiredstock'=>'DesiredStock', 'p.pmp'=>'PMPValue')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); } $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('pa.qty'=>'Qty', 'pa.incdec'=>'ComposedProductIncDecStock')); @@ -417,10 +425,10 @@ class modProduct extends DolibarrModules 'p.price_base_type'=>"Text", 'p.price'=>"Numeric", 'p.price_ttc'=>"Numeric", 'p.tva_tx'=>'Numeric', 'p.tosell'=>"Boolean", 'p.tobuy'=>"Boolean", 'p.datec'=>'Date', 'p.tms'=>'Date' ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric', 'p.seuil_stock_alerte'=>'Numeric', 'p.desiredstock'=>'Numeric', 'p.pmp'=>'Numeric', 'p.cost_price'=>'Numeric')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); } $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('pa.qty'=>'Numeric')); @@ -433,10 +441,10 @@ class modProduct extends DolibarrModules 'p.price_base_type'=>"virtualproduct", 'p.price'=>"virtualproduct", 'p.price_ttc'=>"virtualproduct", 'p.tva_tx'=>"virtualproduct", 'p.tosell'=>"virtualproduct", 'p.tobuy'=>"virtualproduct", 'p.datec'=>"virtualproduct", 'p.tms'=>"virtualproduct" ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.stock'=>'virtualproduct', 'p.seuil_stock_alerte'=>'virtualproduct', 'p.desiredstock'=>'virtualproduct', 'p.pmp'=>'virtualproduct')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'virtualproduct')); } $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('pa.qty'=>"subproduct", 'pa.incdec'=>'subproduct')); @@ -593,7 +601,7 @@ class modProduct extends DolibarrModules 'p.recuperableonly' => '^[0|1]$', ); - if (!empty($conf->stock->enabled)) {//if Stock module enabled + if (isModEnabled('stock')) {//if Stock module enabled $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array( 'p.fk_default_warehouse'=>'DefaultWarehouse', 'p.tobatch'=>'ManageLotSerial', @@ -617,7 +625,7 @@ class modProduct extends DolibarrModules )); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled) || !empty($conf->margin->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); } if (is_object($mysoc) && $usenpr) { @@ -629,10 +637,10 @@ class modProduct extends DolibarrModules if (is_object($mysoc) && $mysoc->useLocalTax(2)) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.localtax2_tx'=>'LT2', 'p.localtax2_type'=>'LT2Type')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.barcode'=>'BarCode')); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->import_fields_array[$r]['p.fk_unit'] = 'Unit'; } @@ -650,16 +658,7 @@ class modProduct extends DolibarrModules } // End add extra fields $this->import_fieldshidden_array[$r] = array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'product'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent) - $this->import_regex_array[$r] = array( - 'p.ref'=>'[^ ]', - 'p.price_base_type' => 'HT|TTC', - 'p.tosell'=>'^[0|1]$', - 'p.tobuy'=>'^[0|1]$', - 'p.fk_product_type'=>'^[0|1]$', - 'p.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$', - 'p.recuperableonly' => '^[0|1]$', - 'p.finished' => '^[0|1]$' - ); + // field order as per structure of table llx_product $import_sample = array( 'p.ref' => "ref:PREF123456", @@ -702,7 +701,7 @@ class modProduct extends DolibarrModules 'p.finished' => '0 (raw material) / 1 (finished goods), matches field "code" in dictionary table "'.MAIN_DB_PREFIX.'c_product_nature"' ); //clauses copied from import_fields_array - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $import_sample = array_merge($import_sample, array( 'p.tobatch'=>"0 (don't use) / 1 (use batch) / 2 (use serial number)", 'p.seuil_stock_alerte' => '', @@ -710,7 +709,7 @@ class modProduct extends DolibarrModules 'p.desiredstock' => '' )); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled) || !empty($conf->margin->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) { $import_sample = array_merge($import_sample, array('p.cost_price'=>'90')); } if (is_object($mysoc) && $usenpr) { @@ -722,10 +721,10 @@ class modProduct extends DolibarrModules if (is_object($mysoc) && $mysoc->useLocalTax(2)) { $import_sample = array_merge($import_sample, array('p.localtax2_tx'=>'', 'p.localtax2_type'=>'')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $import_sample = array_merge($import_sample, array('p.barcode'=>'')); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $import_sample = array_merge( $import_sample, array( @@ -745,11 +744,11 @@ class modProduct extends DolibarrModules } $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); $this->import_updatekeys_array[$r] = array('p.ref'=>'Ref'); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->import_updatekeys_array[$r] = array_merge($this->import_updatekeys_array[$r], array('p.barcode'=>'BarCode')); //only show/allow barcode as update key if Barcode module enabled } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { // Import suppliers prices (note: this code is duplicated in module Service) $r++; $this->import_code[$r] = $this->rights_class.'_supplierprices'; @@ -783,7 +782,7 @@ class modProduct extends DolibarrModules 'sp.remise_percent'=>'DiscountQtyMin' )); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array( 'sp.fk_multicurrency'=>'CurrencyCodeId', //ideally this should be automatically obtained from the CurrencyCode on the next line 'sp.multicurrency_code'=>'CurrencyCode', @@ -845,7 +844,7 @@ class modProduct extends DolibarrModules // TODO Make this field not required and calculate it from price and qty 'sp.remise_percent' => '20' )); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_examplevalues_array[$r] = array_merge($this->import_examplevalues_array[$r], array( 'sp.fk_multicurrency'=>'eg: 2, rowid for code of multicurrency currency', 'sp.multicurrency_code'=>'GBP', @@ -861,7 +860,7 @@ class modProduct extends DolibarrModules )); } - $this->import_updatekeys_array[$r] = array('sp.fk_product'=>'ProductOrService', 'sp.ref_fourn'=>'SupplierRef', 'sp.fk_soc'=>'Supplier'); + $this->import_updatekeys_array[$r] = array('sp.fk_product'=>'ProductOrService', 'sp.ref_fourn'=>'SupplierRef', 'sp.fk_soc'=>'Supplier', 'sp.quantity'=>"QtyMin"); } if (!empty($conf->global->PRODUIT_MULTIPRICES)) { @@ -897,7 +896,7 @@ class modProduct extends DolibarrModules 'pr.date_price'=>'2020-12-31'); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { // Import translations of product names and descriptions $r++; $this->import_code[$r] = $this->rights_class.'_languages'; diff --git a/htdocs/core/modules/modProductBatch.class.php b/htdocs/core/modules/modProductBatch.class.php index 4b508d79d7c..6bebb7af25d 100644 --- a/htdocs/core/modules/modProductBatch.class.php +++ b/htdocs/core/modules/modProductBatch.class.php @@ -72,7 +72,7 @@ class modProductBatch extends DolibarrModules $this->depends = array("modProduct", "modStock", "modExpedition", "modFournisseur"); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("productbatch"); diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index ebfba5d95b9..8bc8e03adb2 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -68,7 +68,7 @@ class modProjet extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array('modEventOrganization'); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array('projects'); // Constants @@ -214,7 +214,7 @@ class modProjet extends DolibarrModules $this->menu = 1; // This module add menu entries. They are coded into menu manager. - //Exports + // Exports //-------- $r = 1; @@ -246,7 +246,7 @@ class modProjet extends DolibarrModules // Add multicompany field if (!empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { $nbofallowedentities = count(explode(',', getEntity('project'))); // If project are shared, nb will be > 1 - if (!empty($conf->multicompany->enabled) && $nbofallowedentities > 1) { + if (isModEnabled('multicompany') && $nbofallowedentities > 1) { $this->export_fields_array[$r] += array('p.entity'=>'Entity'); } } @@ -291,6 +291,40 @@ class modProjet extends DolibarrModules } $this->export_sql_end[$r] .= " WHERE p.entity IN (".getEntity('project').")"; + // Import project/opportunities + $r++; + $this->import_code[$r] = 'projects'; + $this->import_label[$r] = 'ImportDatasetProjects'; + $this->import_icon[$r] = 'project'; + $this->import_entities_array[$r] = array(); // We define here only fields that use another icon that the one defined into import_icon + $this->import_tables_array[$r] = array('t'=>MAIN_DB_PREFIX.'projet', 'extra'=>MAIN_DB_PREFIX.'projet_extrafields'); // List of tables to insert into (insert done in same order) + $this->import_fields_array[$r] = array('t.ref'=>'ProjectRef*', 't.title'=>'Label*', 't.description'=>"Description", 't.fk_soc' => 'ThirdPartyName', 't.public'=>"Public", 't.fk_statut'=>"Status"); + $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('t.fk_opp_status'=>"OpportunityStatus", 't.opp_percent'=>"OpportunityProbability", 't.opp_amount'=>"OpportunityAmount", 't.note_public'=>"NotePublic", 't.note_private'=>"NotePrivate", 't.budget_amount'=>"Budget", 't.dateo'=>"DateStart", 't.datee'=>"DateEnd")); + // Add extra fields + $sql = "SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE type <> 'separate' AND elementtype = 'projet' AND entity IN (0,".$conf->entity.")"; + $resql = $this->db->query($sql); + if ($resql) { // This can fail when class is used on old database (during migration for example) + while ($obj = $this->db->fetch_object($resql)) { + $fieldname = 'extra.'.$obj->name; + $fieldlabel = ucfirst($obj->label); + $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ? '*' : ''); + } + } + // End add extra fields + $this->import_fieldshidden_array[$r] = array('t.fk_user_creat'=>'user->id', 'extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'projet'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent) + $this->import_convertvalue_array[$r] = array( + 't.ref'=>array('rule'=>'getrefifauto', 'class'=>(empty($conf->global->PROJECT_ADDON) ? 'mod_project_simple' : $conf->global->PROJECT_ADDON), 'path'=>"/core/modules/project/".(empty($conf->global->PROJECT_ADDON) ? 'mod_project_simple' : $conf->global->PROJECT_ADDON).'.php'), + 't.fk_soc' => array( + 'rule' => 'fetchidfromref', + 'file' => '/societe/class/societe.class.php', + 'class' => 'Societe', + 'method' => 'fetch', + 'element' => 'ThirdParty' + ), + ); + //$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t'); + $this->import_regex_array[$r] = array('t.dateo'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$', 't.datee'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$', 't.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$'); + $this->import_examplevalues_array[$r] = array('t.fk_soc'=>'ThirdParty', 't.ref'=>"auto or PJ2010-1234", 't.title'=>"My project", 't.fk_statut'=>'0,1 or 2', 't.datec'=>'1972-10-10', 't.note_private'=>"My private note", 't.note_public'=>"My public note"); // Import list of tasks if (empty($conf->global->PROJECT_HIDE_TASKS)) { diff --git a/htdocs/core/modules/modPropale.class.php b/htdocs/core/modules/modPropale.class.php index f6443e6c992..c3ca77e9a0c 100644 --- a/htdocs/core/modules/modPropale.class.php +++ b/htdocs/core/modules/modPropale.class.php @@ -68,7 +68,7 @@ class modPropale extends DolibarrModules $this->depends = array("modSociete"); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->config_page_url = array("propal.php"); $this->langfiles = array("propal", "bills", "companies", "deliveries", "products"); @@ -78,7 +78,7 @@ class modPropale extends DolibarrModules $this->const[$r][0] = "PROPALE_ADDON_PDF"; $this->const[$r][1] = "chaine"; - $this->const[$r][2] = "azur"; + $this->const[$r][2] = "cyan"; $this->const[$r][3] = 'Name of the proposal generation manager in PDF format'; $this->const[$r][4] = 0; $r++; @@ -197,7 +197,7 @@ class modPropale extends DolibarrModules 'cd.tva_tx'=>"LineVATRate", 'cd.qty'=>"LineQty", 'cd.total_ht'=>"LineTotalHT", 'cd.total_tva'=>"LineTotalVAT", 'cd.total_ttc'=>"LineTotalTTC", 'p.rowid'=>'ProductId', 'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->export_fields_array[$r]['c.multicurrency_code'] = 'Currency'; $this->export_fields_array[$r]['c.multicurrency_tx'] = 'CurrencyRate'; $this->export_fields_array[$r]['c.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -207,7 +207,7 @@ class modPropale extends DolibarrModules // Add multicompany field if (!empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { $nbofallowedentities = count(explode(',', getEntity('propal'))); - if (!empty($conf->multicompany->enabled) && $nbofallowedentities > 1) { + if (isModEnabled('multicompany') && $nbofallowedentities > 1) { $this->export_fields_array[$r]['c.entity'] = 'Entity'; } } @@ -300,7 +300,7 @@ class modPropale extends DolibarrModules 'c.date_livraison' => 'DeliveryDate', 'c.fk_user_valid' => 'ValidatedById' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['c.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['c.multicurrency_tx'] = 'CurrencyRate'; $this->import_fields_array[$r]['c.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; @@ -388,7 +388,7 @@ class modPropale extends DolibarrModules 'cd.date_end' => 'End Date', 'cd.buy_price_ht' => 'LineBuyPriceHT' ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r]['cd.multicurrency_code'] = 'Currency'; $this->import_fields_array[$r]['cd.multicurrency_subprice'] = 'CurrencyRate'; $this->import_fields_array[$r]['cd.multicurrency_total_ht'] = 'MulticurrencyAmountHT'; diff --git a/htdocs/core/modules/modReceiptPrinter.class.php b/htdocs/core/modules/modReceiptPrinter.class.php index 1e26de93bcb..4741bc48197 100644 --- a/htdocs/core/modules/modReceiptPrinter.class.php +++ b/htdocs/core/modules/modReceiptPrinter.class.php @@ -71,7 +71,7 @@ class modReceiptPrinter extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 9, -2); // Minimum version of Dolibarr required by module $this->conflictwith = array(); $this->langfiles = array("receiptprinter"); diff --git a/htdocs/core/modules/modRecruitment.class.php b/htdocs/core/modules/modRecruitment.class.php index 1d2d614b9ea..8b2db1a115a 100644 --- a/htdocs/core/modules/modRecruitment.class.php +++ b/htdocs/core/modules/modRecruitment.class.php @@ -122,7 +122,7 @@ class modRecruitment extends DolibarrModules $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) $this->langfiles = array("recruitment"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(11, -3); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -177,7 +177,7 @@ class modRecruitment extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -261,7 +261,7 @@ class modRecruitment extends DolibarrModules 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth"'), 'mainmenu'=>'hrm', 'leftmenu'=>'recruitmentjobposition', - 'url'=>'/recruitment/recruitmentindex.php', + 'url'=>'/recruitment/index.php', 'langs'=>'recruitment', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000 + $r, 'enabled'=>'$conf->recruitment->enabled', // Define condition to show or hide menu entry. Use '$conf->recruitment->enabled' if entry must be visible if module is enabled. diff --git a/htdocs/core/modules/modResource.class.php b/htdocs/core/modules/modResource.class.php index b43ead29e7f..59dc7878161 100644 --- a/htdocs/core/modules/modResource.class.php +++ b/htdocs/core/modules/modResource.class.php @@ -95,7 +95,7 @@ class modResource extends DolibarrModules // List of modules id to disable if this one is disabled $this->requiredby = array('modPlace'); // Minimum version of PHP required by module - $this->phpmin = array(5, 6); + $this->phpmin = array(7, 0); $this->langfiles = array("resource"); // langfiles@resource // Constants @@ -120,7 +120,7 @@ class modResource extends DolibarrModules // 'order_supplier' to add a tab in supplier order view // 'invoice_supplier' to add a tab in supplier invoice view // 'invoice' to add a tab in customer invoice view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'product' to add a tab in product view // 'stock' to add a tab in stock view // 'propal' to add a tab in propal view @@ -239,22 +239,26 @@ class modResource extends DolibarrModules $this->export_code[$r] = $this->rights_class.'_'.$r; $this->export_label[$r] = "ResourceSingular"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r] = array(array("resource", "read")); - $this->export_fields_array[$r] = array('r.rowid'=>'IdResource', 'r.ref'=>'ResourceFormLabel_ref', 'c.code'=>'ResourceTypeCode', 'c.label'=>'ResourceType', 'r.description'=>'ResourceFormLabel_description', 'r.note_private'=>"NotePrivate", 'r.note_public'=>"NotePublic", 'r.asset_number'=>'AssetNumber', 'r.datec'=>"DateCreation", 'r.tms'=>"DateLastModification"); + + $this->export_fields_array[$r] = array('r.rowid'=>'IdResource', 'r.ref'=>'ResourceFormLabel_ref', 'c.rowid'=>'ResourceTypeID', 'c.code'=>'ResourceTypeCode', 'c.label'=>'ResourceTypeLabel', 'r.description'=>'ResourceFormLabel_description', 'r.note_private'=>"NotePrivate", 'r.note_public'=>"NotePublic", 'r.asset_number'=>'AssetNumber', 'r.datec'=>"DateCreation", 'r.tms'=>"DateLastModification"); $this->export_TypeFields_array[$r] = array('r.rowid'=>'List:resource:ref', 'r.ref'=>'Text', 'r.asset_number'=>'Text', 'r.description'=>'Text', 'c.code'=>'Text', 'c.label'=>'List:c_type_resource:label', 'r.datec'=>'Date', 'r.tms'=>'Date', 'r.note_private'=>'Text', 'r.note_public'=>'Text'); $this->export_entities_array[$r] = array('r.rowid'=>'resource', 'r.ref'=>'resource', 'c.code'=>'resource', 'c.label'=>'resource', 'r.description'=>'resource', 'r.note_private'=>"resource", 'r.resource'=>"resource", 'r.asset_number'=>'resource', 'r.datec'=>"resource", 'r.tms'=>"resource"); + $keyforselect = 'resource'; $keyforelement = 'resource'; $keyforaliasextra = 'extra'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; $this->export_dependencies_array[$r] = array('resource'=>array('r.rowid')); // We must keep this until the aggregate_array is used. To add unique key if we ask a field of a child to avoid the DISTINCT to discard them. $this->export_sql_start[$r] = 'SELECT DISTINCT '; $this->export_sql_end[$r] = ' FROM '.MAIN_DB_PREFIX.'resource as r'; - $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_type_resource as c ON c.rowid=r.fk_code_type_resource'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_type_resource as c ON c.code = r.fk_code_type_resource'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'resource_extrafields as extra ON extra.fk_object = r.rowid'; $this->export_sql_end[$r] .= ' WHERE r.entity IN ('.getEntity('resource').')'; + // Imports //-------- $r = 0; diff --git a/htdocs/core/modules/modSalaries.class.php b/htdocs/core/modules/modSalaries.class.php index 3464a5e14b3..bfb99e34de4 100644 --- a/htdocs/core/modules/modSalaries.class.php +++ b/htdocs/core/modules/modSalaries.class.php @@ -75,7 +75,7 @@ class modSalaries extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("salaries", "bills"); // Constants diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index bdc3388da5c..a316c746acb 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -68,7 +68,7 @@ class modService extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Config pages $this->config_page_url = array("product.php@product"); @@ -102,6 +102,14 @@ class modService extends DolibarrModules $this->rights[$r][4] = 'creer'; $r++; + $this->rights[$r][0] = 533; // id de la permission + $this->rights[$r][1] = 'Read prices services'; // libelle de la permission + $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'service_advance'; + $this->rights[$r][5] = 'read_prices'; + $r++; + $this->rights[$r][0] = 534; // id de la permission $this->rights[$r][1] = 'Delete les services'; // libelle de la permission $this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour) @@ -168,29 +176,29 @@ class modService extends DolibarrModules if (is_object($mysoc) && $usenpr) { $this->export_fields_array[$r]['p.recuperableonly'] = 'NPR'; } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled) || !empty($conf->margin->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.stock'=>'Stock', 'p.seuil_stock_alerte'=>'StockLimit', 'p.desiredstock'=>'DesiredStock', 'p.pmp'=>'PMPValue')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); } $keyforselect = 'product'; $keyforelement = 'product'; $keyforaliasextra = 'extra'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier', 'pf.ref_fourn'=>'SupplierRef', 'pf.quantity'=>'QtyMin', 'pf.remise_percent'=>'DiscountQtyMin', 'pf.unitprice'=>'BuyingPrice', 'pf.delivery_time_days'=>'NbDaysToDelivery')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('group_concat(cat.label)'=>'Categories')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel', 'l.description'=>'TranslatedDescription', 'l.note'=>'TranslatedNote')); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->export_fields_array[$r]['p.fk_unit'] = 'Unit'; } $this->export_TypeFields_array[$r] = array( @@ -207,16 +215,16 @@ class modService extends DolibarrModules 'p.price_base_type'=>"Text", 'p.price'=>"Numeric", 'p.price_ttc'=>"Numeric", 'p.tva_tx'=>'Numeric', 'p.datec'=>'Date', 'p.tms'=>'Date' ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric', 'p.seuil_stock_alerte'=>'Numeric', 'p.desiredstock'=>'Numeric', 'p.pmp'=>'Numeric', 'p.cost_price'=>'Numeric')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text', 'pf.ref_fourn'=>'Text', 'pf.unitprice'=>'Numeric', 'pf.quantity'=>'Numeric', 'pf.remise_percent'=>'Numeric', 'pf.delivery_time_days'=>'Numeric')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('l.lang'=>'Text', 'l.label'=>'Text', 'l.description'=>'Text', 'l.note'=>'Text')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { @@ -226,31 +234,31 @@ class modService extends DolibarrModules if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array("group_concat(cat.label)"=>'category')); } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.stock'=>'product', 'p.pmp'=>'product')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product')); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('l.lang'=>'translation', 'l.label'=>'translation', 'l.description'=>'translation', 'l.note'=>'translation')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_dependencies_array[$r] = array('category'=>'p.rowid'); } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.stock'=>'product', 'p.pmp'=>'product')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product')); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref')); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('l.lang'=>'translation', 'l.label'=>'translation', 'l.description'=>'translation', 'l.note'=>'translation')); } if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { @@ -264,11 +272,11 @@ class modService extends DolibarrModules if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'categorie as cat ON cp.fk_categorie = cat.rowid'; } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_lang as l ON l.fk_product = p.rowid'; } $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object'; - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc'; } $this->export_sql_end[$r] .= ' WHERE p.fk_product_type = 1 AND p.entity IN ('.getEntity('product').')'; @@ -360,10 +368,10 @@ class modService extends DolibarrModules 'p.price_base_type'=>"PriceBase", 'p.price'=>"UnitPriceHT", 'p.price_ttc'=>"UnitPriceTTC", 'p.tva_tx'=>'VATRate', 'p.tosell'=>"OnSell", 'p.tobuy'=>"OnBuy", 'p.datec'=>'DateCreation', 'p.tms'=>'DateModification' ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.stock'=>'Stock', 'p.seuil_stock_alerte'=>'StockLimit', 'p.desiredstock'=>'DesiredStock', 'p.pmp'=>'PMPValue')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); } $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('pa.qty'=>'Qty', 'pa.incdec'=>'ComposedProductIncDecStock')); @@ -376,10 +384,10 @@ class modService extends DolibarrModules 'p.price_base_type'=>"Text", 'p.price'=>"Numeric", 'p.price_ttc'=>"Numeric", 'p.tva_tx'=>'Numeric', 'p.tosell'=>"Boolean", 'p.tobuy'=>"Boolean", 'p.datec'=>'Date', 'p.tms'=>'Date' ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric', 'p.seuil_stock_alerte'=>'Numeric', 'p.desiredstock'=>'Numeric', 'p.pmp'=>'Numeric', 'p.cost_price'=>'Numeric')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); } $this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('pa.qty'=>'Numeric')); @@ -392,10 +400,10 @@ class modService extends DolibarrModules 'p.price_base_type'=>"virtualproduct", 'p.price'=>"virtualproduct", 'p.price_ttc'=>"virtualproduct", 'p.tva_tx'=>"virtualproduct", 'p.tosell'=>"virtualproduct", 'p.tobuy'=>"virtualproduct", 'p.datec'=>"virtualproduct", 'p.tms'=>"virtualproduct" ); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.stock'=>'virtualproduct', 'p.seuil_stock_alerte'=>'virtualproduct', 'p.desiredstock'=>'virtualproduct', 'p.pmp'=>'virtualproduct')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'virtualproduct')); } $this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('pa.qty'=>"subproduct", 'pa.incdec'=>'subproduct')); @@ -540,7 +548,7 @@ class modService extends DolibarrModules 'p.recuperableonly' => '^[0|1]$', ); - if (!empty($conf->stock->enabled)) {//if Stock module enabled + if (isModEnabled('stock')) {//if Stock module enabled $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array( 'p.fk_default_warehouse'=>'DefaultWarehouse', 'p.tobatch'=>'ManageLotSerial', @@ -564,7 +572,7 @@ class modService extends DolibarrModules )); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled) || !empty($conf->margin->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); } if (is_object($mysoc) && $usenpr) { @@ -576,10 +584,10 @@ class modService extends DolibarrModules if (is_object($mysoc) && $mysoc->useLocalTax(2)) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.localtax2_tx'=>'LT2', 'p.localtax2_type'=>'LT2Type')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.barcode'=>'BarCode')); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->import_fields_array[$r]['p.fk_unit'] = 'Unit'; } // Add extra fields @@ -648,14 +656,14 @@ class modService extends DolibarrModules 'p.finished' => '0 (raw material) / 1 (finished goods), matches field "code" in dictionary table "'.MAIN_DB_PREFIX.'c_product_nature"' ); //clauses copied from import_fields_array - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $import_sample = array_merge($import_sample, array( 'p.seuil_stock_alerte' => '', 'p.pmp' => '0', 'p.desiredstock' => '' )); } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled) || !empty($conf->margin->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) { $import_sample = array_merge($import_sample, array('p.cost_price'=>'90')); } if (is_object($mysoc) && $usenpr) { @@ -667,10 +675,10 @@ class modService extends DolibarrModules if (is_object($mysoc) && $mysoc->useLocalTax(2)) { $import_sample = array_merge($import_sample, array('p.localtax2_tx'=>'', 'p.localtax2_type'=>'')); } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $import_sample = array_merge($import_sample, array('p.barcode'=>'')); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $import_sample = array_merge( $import_sample, array( @@ -693,12 +701,12 @@ class modService extends DolibarrModules } $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); $this->import_updatekeys_array[$r] = array('p.ref'=>'Ref'); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->import_updatekeys_array[$r] = array_merge($this->import_updatekeys_array[$r], array('p.barcode'=>'BarCode')); //only show/allow barcode as update key if Barcode module enabled } if (empty($conf->product->enabled)) { // We enable next import templates only if module product not already enabled (to avoid duplicate entries) - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { // Import suppliers prices (note: this code is duplicated in module Service) $r++; $this->import_code[$r] = $this->rights_class.'_supplierprices'; @@ -732,7 +740,7 @@ class modService extends DolibarrModules 'sp.remise_percent'=>'DiscountQtyMin' )); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array( 'sp.fk_multicurrency'=>'CurrencyCodeId', //ideally this should be automatically obtained from the CurrencyCode on the next line 'sp.multicurrency_code'=>'CurrencyCode', @@ -774,7 +782,7 @@ class modService extends DolibarrModules // TODO Make this field not required and calculate it from price and qty 'sp.remise_percent' => '20' )); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $this->import_examplevalues_array[$r] = array_merge($this->import_examplevalues_array[$r], array( 'sp.fk_multicurrency'=>'eg: 2, rowid for code of multicurrency currency', 'sp.multicurrency_code'=>'GBP', @@ -826,7 +834,7 @@ class modService extends DolibarrModules 'pr.date_price'=>'2013-04-10'); } - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { // Import translations of product names and descriptions $r++; $this->import_code[$r] = $this->rights_class.'_languages'; diff --git a/htdocs/core/modules/modSocialNetworks.class.php b/htdocs/core/modules/modSocialNetworks.class.php index 3949de6c691..e2b110a383a 100644 --- a/htdocs/core/modules/modSocialNetworks.class.php +++ b/htdocs/core/modules/modSocialNetworks.class.php @@ -69,7 +69,7 @@ class modSocialNetworks extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array(); // Constants diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 327262ce39f..d63084ac5b5 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -71,7 +71,7 @@ class modSociete extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array("modExpedition", "modFacture", "modFournisseur", "modFicheinter", "modPropale", "modContrat", "modCommande"); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("companies", 'bills', "compta", "admin", "banks"); // Constants @@ -148,7 +148,7 @@ class modSociete extends DolibarrModules $this->rights[$r][1] = 'Read thirdparties customers'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; - $this->rights[$r][4] = 'thirparty_customer_advance'; // Visible if option MAIN_USE_ADVANCED_PERMS is on + $this->rights[$r][4] = 'thirdparty_customer_advance'; // Visible if option MAIN_USE_ADVANCED_PERMS is on $this->rights[$r][5] = 'read'; $r++; @@ -172,7 +172,7 @@ class modSociete extends DolibarrModules $this->rights[$r][1] = 'Create thirdparties customers'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; - $this->rights[$r][4] = 'thirparty_customer_advance'; // Visible if option MAIN_USE_ADVANCED_PERMS is on + $this->rights[$r][4] = 'thirdparty_customer_advance'; // Visible if option MAIN_USE_ADVANCED_PERMS is on $this->rights[$r][5] = 'read'; $r++; @@ -295,7 +295,7 @@ class modSociete extends DolibarrModules // Add multicompany field if (!empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { $nbofallowedentities = count(explode(',', getEntity('societe'))); // If project are shared, nb will be > 1 - if (!empty($conf->multicompany->enabled) && $nbofallowedentities > 1) { + if (isModEnabled('multicompany') && $nbofallowedentities > 1) { $this->export_fields_array[$r] += array('s.entity'=>'Entity'); } } @@ -378,8 +378,8 @@ class modSociete extends DolibarrModules 't.libelle'=>"ThirdPartyType" ); // Add multicompany field - if (! empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { - if (!empty($conf->multicompany->enabled)) { + if (!empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { + if (isModEnabled('multicompany')) { $nbofallowedentities = count(explode(',', getEntity('contact'))); if ($nbofallowedentities > 1) { $this->export_fields_array[$r]['c.entity'] = 'Entity'; @@ -413,7 +413,7 @@ class modSociete extends DolibarrModules 't.libelle'=>"company", 's.entity'=>'company', ); // We define here only fields that use another picto - if (empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if (!isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { unset($this->export_fields_array[$r]['s.code_fournisseur']); unset($this->export_entities_array[$r]['s.code_fournisseur']); } @@ -464,7 +464,7 @@ class modSociete extends DolibarrModules 'extra' => MAIN_DB_PREFIX.'societe_extrafields' ); // List of tables to insert into (insert done in same order) $this->import_fields_array[$r] = array(//field order as per structure of table llx_societe - 's.nom' => "Name*", + 's.nom' => "ThirdPartyName*", 's.name_alias' => "AliasNameShort", 's.parent' => "ParentCompany", 's.status' => "Status*", @@ -520,7 +520,7 @@ class modSociete extends DolibarrModules $this->import_fields_array[$r] += array('s.accountancy_code_sell'=>'ProductAccountancySellCode', 's.accountancy_code_buy'=>'ProductAccountancyBuyCode'); } // Add social networks fields - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { $sql = "SELECT code, label FROM ".MAIN_DB_PREFIX."c_socialnetworks WHERE active = 1"; $resql = $this->db->query($sql); while ($obj = $this->db->fetch_object($resql)) { @@ -571,7 +571,6 @@ class modSociete extends DolibarrModules 'dict' => 'DictionaryCompanyType' ), 's.capital' => array('rule' => 'numeric'), - 's.fk_stcomm' => array('rule' => 'zeroifnull'), 's.parent' => array( 'rule' => 'fetchidfromref', 'file' => '/societe/class/societe.class.php', @@ -685,7 +684,7 @@ class modSociete extends DolibarrModules 's.accountancy_code_buy' => '607', ); $this->import_updatekeys_array[$r] = array( - 's.nom' => 'Name', + 's.nom' => 'ThirdPartyName', 's.zip' => 'Zip', 's.email' => 'Email', 's.code_client' => 'CustomerCode', @@ -693,7 +692,7 @@ class modSociete extends DolibarrModules 's.code_compta' => 'CustomerAccountancyCode', 's.code_compta_fournisseur' => 'SupplierAccountancyCode' ); - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { $sql = "SELECT code, label FROM ".MAIN_DB_PREFIX."c_socialnetworks WHERE active = 1"; $resql = $this->db->query($sql); while ($obj = $this->db->fetch_object($resql)) { @@ -724,7 +723,7 @@ class modSociete extends DolibarrModules $i++; } - // Import list of contacts/additional addresses and attributes + // Import list of contacts/addresses of thirparties and attributes $r++; $this->import_code[$r] = $this->rights_class.'_'.$r; $this->import_label[$r] = 'ImportDataset_company_2'; @@ -747,7 +746,7 @@ class modSociete extends DolibarrModules 's.fk_departement' => "StateCode", 's.fk_pays' => "CountryCode", 's.birthday' => "DateOfBirth", - 's.poste' => "Role", + 's.poste' => "PostOrFunction", 's.phone' => "Phone", 's.phone_perso' => "PhonePerso", 's.phone_mobile' => "PhoneMobile", @@ -757,7 +756,7 @@ class modSociete extends DolibarrModules 's.note_public' => "NotePublic" ); // Add social networks fields - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { $sql = "SELECT code, label FROM ".MAIN_DB_PREFIX."c_socialnetworks WHERE active = 1"; $resql = $this->db->query($sql); while ($obj = $this->db->fetch_object($resql)) { @@ -767,7 +766,7 @@ class modSociete extends DolibarrModules } } // Add extra fields - $sql = "SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE type != 'separate' AND elementtype = 'socpeople' AND entity IN (0, ".$conf->entity.")"; + $sql = "SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE type <> 'separate' AND elementtype = 'socpeople' AND entity IN (0, ".$conf->entity.")"; $resql = $this->db->query($sql); if ($resql) { // This can fail when class is used on an old database (during a migration for example) while ($obj = $this->db->fetch_object($resql)) { @@ -794,7 +793,7 @@ class modSociete extends DolibarrModules 'classfile' => '/core/class/cstate.class.php', 'class' => 'Cstate', 'method' => 'fetch', - 'dict' => 'DictionaryStateCode' + 'dict' => 'DictionaryCanton' ), 's.fk_pays' => array( 'rule' => 'fetchidfromcodeid', @@ -835,7 +834,7 @@ class modSociete extends DolibarrModules 's.rowid' => 'Id', 's.lastname' => "Lastname", ); - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { $sql = "SELECT code, label FROM ".MAIN_DB_PREFIX."c_socialnetworks WHERE active = 1"; $resql = $this->db->query($sql); while ($obj = $this->db->fetch_object($resql)) { diff --git a/htdocs/core/modules/modStock.class.php b/htdocs/core/modules/modStock.class.php index 7aa9abb3bff..e99742a14c4 100644 --- a/htdocs/core/modules/modStock.class.php +++ b/htdocs/core/modules/modStock.class.php @@ -69,7 +69,7 @@ class modStock extends DolibarrModules $this->depends = array("modProduct"); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array("modProductBatch"); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("stocks"); // Constants @@ -266,7 +266,7 @@ class modStock extends DolibarrModules $this->export_sql_end[$r] .= ' AND e.entity IN ('.getEntity('stock').')'; // Export stock including batch number - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $langs->load("productbatch"); // This request is same than previous but without field ps.stock (real stock in warehouse) and with link to subtable productbatch @@ -340,7 +340,7 @@ class modStock extends DolibarrModules 'p.rowid'=>"product", 'p.ref'=>"product", 'p.fk_product_type'=>"product", 'p.label'=>"product", 'p.description'=>"product", 'p.note'=>"product", 'p.price'=>"product", 'p.tva_tx'=>'product', 'p.tosell'=>"product", 'p.tobuy'=>"product", 'p.duration'=>"product", 'p.datec'=>'product', 'p.tms'=>'product' ); // We define here only fields that use another icon that the one defined into export_icon - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $this->export_fields_array[$r]['sm.batch'] = 'Batch'; $this->export_TypeFields_array[$r]['sm.batch'] = 'Text'; $this->export_entities_array[$r]['sm.batch'] = 'movement'; diff --git a/htdocs/core/modules/modStockTransfer.class.php b/htdocs/core/modules/modStockTransfer.class.php index 376cf9409f2..279add98bad 100644 --- a/htdocs/core/modules/modStockTransfer.class.php +++ b/htdocs/core/modules/modStockTransfer.class.php @@ -1,8 +1,7 @@ * Copyright (C) 2018-2019 Nicolas ZABOURI - * Copyright (C) 2019-2020 Frédéric France - * Copyright (C) 2021 SuperAdmin + * Copyright (C) 2019-2022 Frédéric France * Copyright (C) 2021 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify @@ -52,7 +51,7 @@ class modStockTransfer extends DolibarrModules $this->rights_class = 'stocktransfer'; // Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...' // It is used to group modules by family in module setup page - $this->family = "other"; + $this->family = "products"; // Module position in the family on 2 digits ('01', '10', '20', ...) $this->module_position = '90'; // Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this) @@ -63,10 +62,8 @@ class modStockTransfer extends DolibarrModules $this->description = $langs->trans("ModuleStockTransferDesc"); // Used only if file README.md and README-LL.md not found. $this->descriptionlong = "StockTransfer description (Long)"; - $this->editor_name = 'Editor name'; - $this->editor_url = 'https://www.example.com'; // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z' - $this->version = 'development'; + $this->version = 'experimental'; // Url to the file with your last numberversion of this module //$this->url_last_version = 'http://www.example.com/versionmodule.txt'; @@ -127,8 +124,7 @@ class modStockTransfer extends DolibarrModules $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) $this->langfiles = array("stocktransfer@stocktransfer"); - $this->phpmin = array(5, 5); // Minimum version of PHP required by module - $this->need_dolibarr_version = array(11, -3); // Minimum version of Dolibarr required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) //$this->automatic_activation = array('FR'=>'StockTransferWasAutomaticallyActivatedBecauseOfYourCountryChoice'); @@ -141,12 +137,6 @@ class modStockTransfer extends DolibarrModules // ); $this->const = array(); - // Some keys to add into the overwriting translation tables - /*$this->overwrite_translation = array( - 'en_US:ParentCompany'=>'Parent company or reseller', - 'fr_FR:ParentCompany'=>'Maison mère ou revendeur' - )*/ - if (!isset($conf->stocktransfer) || !isset($conf->stocktransfer->enabled)) { $conf->stocktransfer = new stdClass(); $conf->stocktransfer->enabled = 0; @@ -169,7 +159,7 @@ class modStockTransfer extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view @@ -438,15 +428,6 @@ class modStockTransfer extends DolibarrModules $result = $this->_load_tables('/install/mysql/tables/', 'stocktransfer'); if ($result < 0) return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') - // Create extrafields during init - //include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; - //$extrafields = new ExtraFields($this->db); - //$result1=$extrafields->addExtraField('stocktransfer_myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'stocktransfer@stocktransfer', '$conf->stocktransfer->enabled'); - //$result2=$extrafields->addExtraField('stocktransfer_myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'stocktransfer@stocktransfer', '$conf->stocktransfer->enabled'); - //$result3=$extrafields->addExtraField('stocktransfer_myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'stocktransfer@stocktransfer', '$conf->stocktransfer->enabled'); - //$result4=$extrafields->addExtraField('stocktransfer_myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'stocktransfer@stocktransfer', '$conf->stocktransfer->enabled'); - //$result5=$extrafields->addExtraField('stocktransfer_myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'stocktransfer@stocktransfer', '$conf->stocktransfer->enabled'); - // Permissions $this->remove($options); diff --git a/htdocs/core/modules/modStripe.class.php b/htdocs/core/modules/modStripe.class.php index 2677d3e3fa3..4c5d3deea44 100644 --- a/htdocs/core/modules/modStripe.class.php +++ b/htdocs/core/modules/modStripe.class.php @@ -72,7 +72,7 @@ class modStripe extends DolibarrModules $this->hidden = false; // A condition to hide module $this->depends = array(); // List of modules id that must be enabled if this module is enabled $this->requiredby = array(); // List of modules id to disable if this one is disabled - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(5, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("stripe"); diff --git a/htdocs/core/modules/modSupplierProposal.class.php b/htdocs/core/modules/modSupplierProposal.class.php index 36df0dd27bd..c775744c6e7 100644 --- a/htdocs/core/modules/modSupplierProposal.class.php +++ b/htdocs/core/modules/modSupplierProposal.class.php @@ -70,7 +70,7 @@ class modSupplierProposal extends DolibarrModules $this->depends = array('modFournisseur'); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("supplier_proposal"); // Constants diff --git a/htdocs/core/modules/modSyslog.class.php b/htdocs/core/modules/modSyslog.class.php index 1d85dc2115d..0fa0da9dcdb 100644 --- a/htdocs/core/modules/modSyslog.class.php +++ b/htdocs/core/modules/modSyslog.class.php @@ -71,7 +71,7 @@ class modSyslog extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module // Constants $this->const = array(); diff --git a/htdocs/core/modules/modTakePos.class.php b/htdocs/core/modules/modTakePos.class.php index e0ee972e7ca..b06bf0fe8b0 100644 --- a/htdocs/core/modules/modTakePos.class.php +++ b/htdocs/core/modules/modTakePos.class.php @@ -102,7 +102,7 @@ class modTakePos extends DolibarrModules $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->langfiles = array("cashdesk"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(4, 0); // Minimum version of Dolibarr required by module $this->warnings_activation = array('FR'=>'WarningNoteModulePOSForFrenchLaw'); // Warning to show when we activate module. array('always'='text') or array('FR'='text') $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -142,7 +142,7 @@ class modTakePos extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modTax.class.php b/htdocs/core/modules/modTax.class.php index 222b1c775c1..3f3b5730564 100644 --- a/htdocs/core/modules/modTax.class.php +++ b/htdocs/core/modules/modTax.class.php @@ -71,7 +71,7 @@ class modTax extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("compta", "bills"); // Constants diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php index 13967fc4096..37e6552af2f 100644 --- a/htdocs/core/modules/modTicket.class.php +++ b/htdocs/core/modules/modTicket.class.php @@ -97,14 +97,14 @@ class modTicket extends DolibarrModules $this->depends = array('modAgenda'); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("ticket"); // Constants // List of particular constants to add when module is enabled // (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) // Example: - $default_signature = $langs->trans('TicketMessageMailSignatureText', getDolGlobalString('MAIN_INFO_SOCIETE_NOM')); + $default_footer = $langs->trans('TicketMessageMailFooterText', getDolGlobalString('MAIN_INFO_SOCIETE_NOM')); $this->const = array( 1 => array('TICKET_ENABLE_PUBLIC_INTERFACE', 'chaine', '0', 'Enable ticket public interface', 0), 2 => array('TICKET_ADDON', 'chaine', 'mod_ticket_simple', 'Ticket ref module', 0), @@ -116,14 +116,15 @@ class modTicket extends DolibarrModules 8 => array('TICKET_PRODUCT_CATEGORY', 'chaine', 0, 'The category of product that is being used for ticket accounting', 0), 9 => array('TICKET_NOTIFICATION_EMAIL_FROM', 'chaine', getDolGlobalString('MAIN_MAIL_EMAIL_FROM'), 'Email to use by default as sender for messages sent from Dolibarr', 0), 10 => array('TICKET_MESSAGE_MAIL_INTRO', 'chaine', $langs->trans('TicketMessageMailIntroText'), 'Introduction text of ticket replies sent from Dolibarr', 0), - 11 => array('TICKET_MESSAGE_MAIL_SIGNATURE', 'chaine', $default_signature, 'Signature to use by default for messages sent from Dolibarr', 0), - 12 => array('MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER', 'chaine', "1", 'Disable the rendering of headers in tickets', 0) + 11 => array('TICKET_MESSAGE_MAIL_SIGNATURE', 'chaine', $default_footer, 'Signature to use by default for messages sent from Dolibarr', 0), + 12 => array('MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER', 'chaine', "1", 'Disable the rendering of headers in tickets', 0), + 13 => array('MAIN_SECURITY_ENABLECAPTCHA_TICKET', 'chaine', getDolGlobalInt('MAIN_SECURITY_ENABLECAPTCHA_TICKET'), 'Enable captcha code by default', 0), + 14 => array('TICKET_SHOW_COMPANY_LOGO', 'chaine', getDolGlobalInt('TICKET_SHOW_COMPANY_LOGO'), 'Enable logo header on ticket public page', 0) ); $this->tabs = array( - 'thirdparty:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__', - 'project:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?projectid=__ID__', + 'thirdparty:+ticket:Tickets:ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__', ); // Dictionaries diff --git a/htdocs/core/modules/modUser.class.php b/htdocs/core/modules/modUser.class.php index 719c90c6dab..de7bb6feecf 100644 --- a/htdocs/core/modules/modUser.class.php +++ b/htdocs/core/modules/modUser.class.php @@ -68,7 +68,7 @@ class modUser extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("main", "users", "companies", "members", "salaries", "hrm"); $this->always_enabled = true; // Can't be disabled @@ -225,7 +225,7 @@ class modUser extends DolibarrModules 'u.accountancy_code'=>"UserAccountancyCode", 'u.address'=>"Address", 'u.zip'=>"Zip", 'u.town'=>"Town", 'u.office_phone'=>'Phone', 'u.user_mobile'=>"Mobile", 'u.office_fax'=>'Fax', - 'u.email'=>"Email", 'u.note'=>"Note", 'u.signature'=>'Signature', + 'u.email'=>"Email", 'u.note_public'=>"NotePublic", 'u.note_private'=>"NotePrivate", 'u.signature'=>'Signature', 'u.fk_user'=>'HierarchicalResponsible', 'u.thm'=>'THM', 'u.tjm'=>'TJM', 'u.weeklyhours'=>'WeeklyHours', 'u.dateemployment'=>'DateEmploymentStart', 'u.dateemploymentend'=>'DateEmploymentEnd', 'u.salary'=>'Salary', 'u.color'=>'Color', 'u.api_key'=>'ApiKey', 'u.birth'=>'DateOfBirth', @@ -242,7 +242,7 @@ class modUser extends DolibarrModules 'u.accountancy_code'=>'Text', 'u.address'=>"Text", 'u.zip'=>"Text", 'u.town'=>"Text", 'u.office_phone'=>'Text', 'u.user_mobile'=>'Text', 'u.office_fax'=>'Text', - 'u.email'=>'Text', 'u.datec'=>"Date", 'u.tms'=>"Date", 'u.admin'=>"Boolean", 'u.statut'=>'Status', 'u.note'=>"Text", 'u.signature'=>"Text", 'u.datelastlogin'=>'Date', + 'u.email'=>'Text', 'u.datec'=>"Date", 'u.tms'=>"Date", 'u.admin'=>"Boolean", 'u.statut'=>'Status', 'u.note_public'=>"Text", 'u.note_private'=>"Text", 'u.signature'=>"Text", 'u.datelastlogin'=>'Date', 'u.fk_user'=>"FormSelect:select_dolusers", 'u.birth'=>'Date', 'u.datepreviouslogin'=>'Date', @@ -261,7 +261,7 @@ class modUser extends DolibarrModules 'u.accountancy_code'=>'user', 'u.address'=>"user", 'u.zip'=>"user", 'u.town'=>"user", 'u.office_phone'=>'user', 'u.user_mobile'=>'user', 'u.office_fax'=>'user', - 'u.email'=>'user', 'u.note'=>"user", 'u.signature'=>'user', + 'u.email'=>'user', 'u.note_public'=>"user", 'u.note_private'=>"user", 'u.signature'=>'user', 'u.fk_user'=>'user', 'u.thm'=>'user', 'u.tjm'=>'user', 'u.weeklyhours'=>'user', 'u.dateemployment'=>'user', 'u.dateemploymentend'=>'user', 'u.salary'=>'user', 'u.color'=>'user', 'u.api_key'=>'user', 'u.birth'=>'user', @@ -303,7 +303,7 @@ class modUser extends DolibarrModules 'u.pass_crypted'=>"Password", 'u.admin'=>"Administrator", 'u.fk_soc'=>"Company*", 'u.address'=>"Address", 'u.zip'=>"Zip", 'u.town'=>"Town", 'u.fk_state'=>"StateId", 'u.fk_country'=>"CountryCode", 'u.office_phone'=>"Phone", 'u.user_mobile'=>"Mobile", 'u.office_fax'=>"Fax", - 'u.email'=>"Email", 'u.note'=>"Note", 'u.signature'=>'Signature', + 'u.email'=>"Email", 'u.note_public'=>"NotePublic", 'u.note_private'=>"NotePrivate", 'u.signature'=>'Signature', 'u.fk_user'=>'HierarchicalResponsible', 'u.thm'=>'THM', 'u.tjm'=>'TJM', 'u.weeklyhours'=>'WeeklyHours', 'u.dateemployment'=>'DateEmploymentStart', 'u.dateemploymentend'=>'DateEmploymentEnd', 'u.salary'=>'Salary', 'u.color'=>'Color', 'u.api_key'=>'ApiKey', 'u.birth'=>'DateOfBirth', @@ -337,9 +337,9 @@ class modUser extends DolibarrModules $this->import_examplevalues_array[$r] = array( 'u.lastname'=>"Doe", 'u.firstname'=>'John', 'u.login'=>'jdoe', 'u.employee'=>'0 or 1', 'u.job'=>'CTO', 'u.gender'=>'man or woman', 'u.pass_crypted'=>'Encrypted password', - 'u.fk_soc'=>'0 (internal user) or company name (external user)', 'u.datec'=>dol_print_date(dol_now(), '%Y-%m-%d'), 'u.address'=>"61 jump street", + 'u.fk_soc'=>'0 (internal user) or company name (external user)', 'u.address'=>"61 jump street", 'u.zip'=>"123456", 'u.town'=>"Big town", 'u.fk_country'=>'US, FR, DE...', 'u.office_phone'=>"0101010101", 'u.office_fax'=>"0101010102", - 'u.email'=>"test@mycompany.com", 'u.salary'=>"10000", 'u.note'=>"This is an example of note for record", 'u.datec'=>"2015-01-01 or 2015-01-01 12:30:00", + 'u.email'=>"test@mycompany.com", 'u.salary'=>"10000", 'u.note_public'=>"This is an example of public note for record", 'u.note_private'=>"This is an example of private note for record", 'u.datec'=>"2015-01-01 or 2015-01-01 12:30:00", 'u.statut'=>"0 (closed) or 1 (active)", ); $this->import_updatekeys_array[$r] = array('u.lastname'=>'Lastname', 'u.firstname'=>'Firstname', 'u.login'=>'Login'); diff --git a/htdocs/core/modules/modVariants.class.php b/htdocs/core/modules/modVariants.class.php index e1364fd845e..9dda6194b32 100644 --- a/htdocs/core/modules/modVariants.class.php +++ b/htdocs/core/modules/modVariants.class.php @@ -1,5 +1,4 @@ * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin @@ -84,7 +83,7 @@ class modVariants extends DolibarrModules $this->depends = array('modProduct'); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module $this->langfiles = array("products"); diff --git a/htdocs/core/modules/modWebServices.class.php b/htdocs/core/modules/modWebServices.class.php index a88db3dee26..6f2e8e21c3e 100644 --- a/htdocs/core/modules/modWebServices.class.php +++ b/htdocs/core/modules/modWebServices.class.php @@ -63,7 +63,7 @@ class modWebServices extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("other"); // Constants diff --git a/htdocs/core/modules/modWebServicesClient.class.php b/htdocs/core/modules/modWebServicesClient.class.php index d44d48ef13a..8acd5647c76 100644 --- a/htdocs/core/modules/modWebServicesClient.class.php +++ b/htdocs/core/modules/modWebServicesClient.class.php @@ -46,7 +46,7 @@ class modWebServicesClient extends DolibarrModules $this->name = preg_replace('/^mod/i', '', get_class($this)); $this->description = "Enable the web service client to call external supplier web services"; // Possible values for version are: 'development', 'experimental', 'dolibarr' or version - $this->version = 'experimental'; + $this->version = 'experimental_deprecated'; // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Name of image file used for this module. @@ -63,7 +63,7 @@ class modWebServicesClient extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("other"); // Constants diff --git a/htdocs/core/modules/modWebhook.class.php b/htdocs/core/modules/modWebhook.class.php new file mode 100644 index 00000000000..f29131cae89 --- /dev/null +++ b/htdocs/core/modules/modWebhook.class.php @@ -0,0 +1,537 @@ + + * Copyright (C) 2018-2019 Nicolas ZABOURI + * Copyright (C) 2019-2020 Frédéric France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \defgroup webhook Module Webhook + * \brief Webhook module descriptor. + * + * \file htdocs/webhook/core/modules/modWebhook.class.php + * \ingroup webhook + * \brief Description and activation file for module Webhook + */ +include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; + +/** + * Description and activation class for module Webhook + */ +class modWebhook extends DolibarrModules +{ + /** + * Constructor. Define names, constants, directories, boxes, permissions + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $langs, $conf; + $this->db = $db; + + // Id for module (must be unique). + // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id). + $this->numero = 68305; // TODO Go on page https://wiki.dolibarr.org/index.php/List_of_modules_id to reserve an id number for your module + + // Key text used to identify module (for permissions, menus, etc...) + $this->rights_class = 'webhook'; + + // Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...' + // It is used to group modules by family in module setup page + $this->family = "interface"; + + // Module position in the family on 2 digits ('01', '10', '20', ...) + $this->module_position = '90'; + + // Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this) + //$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily"))); + // Module label (no space allowed), used if translation string 'ModuleWebhookName' not found (Webhook is name of module). + $this->name = preg_replace('/^mod/i', '', get_class($this)); + + // Module description, used if translation string 'ModuleWebhookDesc' not found (Webhook is name of module). + $this->description = "WebhookDescription"; + // Used only if file README.md and README-LL.md not found. + $this->descriptionlong = "WebhookDescription"; + + // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z' + $this->version = 'experimental'; + // Url to the file with your last numberversion of this module + //$this->url_last_version = 'http://www.example.com/versionmodule.txt'; + + // Key used in llx_const table to save module status enabled/disabled (where WEBHOOK is value of property name of module in uppercase) + $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); + + // Name of image file used for this module. + // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue' + // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' + // To use a supported fa-xxx css style of font awesome, use this->picto='xxx' + $this->picto = 'webhook'; + + // Define some features supported by module (triggers, login, substitutions, menus, css, etc...) + $this->module_parts = array( + // Set this to 1 if module has its own trigger directory (core/triggers) + 'triggers' => 1, + // Set this to 1 if module has its own login method file (core/login) + 'login' => 0, + // Set this to 1 if module has its own substitution function file (core/substitutions) + 'substitutions' => 0, + // Set this to 1 if module has its own menus handler directory (core/menus) + 'menus' => 0, + // Set this to 1 if module overwrite template dir (core/tpl) + 'tpl' => 0, + // Set this to 1 if module has its own barcode directory (core/modules/barcode) + 'barcode' => 0, + // Set this to 1 if module has its own models directory (core/modules/xxx) + 'models' => 1, + // Set this to 1 if module has its own printing directory (core/modules/printing) + 'printing' => 0, + // Set this to 1 if module has its own theme directory (theme) + 'theme' => 0, + // Set this to relative path of css file if module has its own css file + 'css' => array( + // '/webhook/css/webhook.css.php', + ), + // Set this to relative path of js file if module must load a js on all pages + 'js' => array( + // '/webhook/js/webhook.js.php', + ), + // Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context to 'all' + 'hooks' => array( + // 'data' => array( + // 'hookcontext1', + // 'hookcontext2', + // ), + // 'entity' => '0', + ), + // Set this to 1 if features of module are opened to external users + 'moduleforexternal' => 0, + ); + + // Data directories to create when module is enabled. + // Example: this->dirs = array("/webhook/temp","/webhook/subdir"); + $this->dirs = array("/webhook/temp"); + + // Config pages. Put here list of php page, stored into webhook/admin directory, to use to setup module. + $this->config_page_url = array("webhook.php"); + + // Dependencies + // A condition to hide module + $this->hidden = false; + // List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...) + $this->depends = array(); + $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) + $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) + + // The language file dedicated to your module + $this->langfiles = array(); + + // Prerequisites + $this->phpmin = array(7, 0); // Minimum version of PHP required by module + $this->need_dolibarr_version = array(11, -3); // Minimum version of Dolibarr required by module + + // Messages at activation + $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','MX'='textmx'...) + $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','MX'='textmx'...) + //$this->automatic_activation = array('FR'=>'WebhookWasAutomaticallyActivatedBecauseOfYourCountryChoice'); + //$this->always_enabled = true; // If true, can't be disabled + + // Constants + // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) + // Example: $this->const=array(1 => array('WEBHOOK_MYNEWCONST1', 'chaine', 'myvalue', 'This is a constant to add', 1), + // 2 => array('WEBHOOK_MYNEWCONST2', 'chaine', 'myvalue', 'This is another constant to add', 0, 'current', 1) + // ); + $this->const = array(); + + // Some keys to add into the overwriting translation tables + /*$this->overwrite_translation = array( + 'en_US:ParentCompany'=>'Parent company or reseller', + 'fr_FR:ParentCompany'=>'Maison mère ou revendeur' + )*/ + + if (!isset($conf->webhook) || !isset($conf->webhook->enabled)) { + $conf->webhook = new stdClass(); + $conf->webhook->enabled = 0; + } + + // Array to add new pages in new tabs + $this->tabs = array(); + // Example: + // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@webhook:$user->rights->webhook->read:/webhook/mynewtab1.php?id=__ID__'); // To add a new tab identified by code tabname1 + // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@webhook:$user->rights->othermodule->read:/webhook/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key. + // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove'); // To remove an existing tab identified by code tabname + // + // Where objecttype can be + // 'categories_x' to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member) + // 'contact' to add a tab in contact view + // 'contract' to add a tab in contract view + // 'group' to add a tab in group view + // 'intervention' to add a tab in intervention view + // 'invoice' to add a tab in customer invoice view + // 'invoice_supplier' to add a tab in supplier invoice view + // 'member' to add a tab in fundation member view + // 'opensurveypoll' to add a tab in opensurvey poll view + // 'order' to add a tab in sales order view + // 'order_supplier' to add a tab in supplier order view + // 'payment' to add a tab in payment view + // 'payment_supplier' to add a tab in supplier payment view + // 'product' to add a tab in product view + // 'propal' to add a tab in propal view + // 'project' to add a tab in project view + // 'stock' to add a tab in stock view + // 'thirdparty' to add a tab in third party view + // 'user' to add a tab in user view + + // Dictionaries + $this->dictionaries = array(); + /* Example: + $this->dictionaries=array( + 'langs'=>'webhook@webhook', + // List of tables we want to see into dictonnary editor + 'tabname'=>array(MAIN_DB_PREFIX."table1", MAIN_DB_PREFIX."table2", MAIN_DB_PREFIX."table3"), + // Label of tables + 'tablib'=>array("Table1", "Table2", "Table3"), + // Request to select fields + 'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f', 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f', 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'), + // Sort order + 'tabsqlsort'=>array("label ASC", "label ASC", "label ASC"), + // List of fields (result of select to show dictionary) + 'tabfield'=>array("code,label", "code,label", "code,label"), + // List of fields (list of fields to edit a record) + 'tabfieldvalue'=>array("code,label", "code,label", "code,label"), + // List of fields (list of fields for insert) + 'tabfieldinsert'=>array("code,label", "code,label", "code,label"), + // Name of columns with primary key (try to always name it 'rowid') + 'tabrowid'=>array("rowid", "rowid", "rowid"), + // Condition to show each dictionary + 'tabcond'=>array($conf->webhook->enabled, $conf->webhook->enabled, $conf->webhook->enabled) + ); + */ + + // Boxes/Widgets + // Add here list of php file(s) stored in webhook/core/boxes that contains a class to show a widget. + $this->boxes = array( + // 0 => array( + // 'file' => 'webhookwidget1.php@webhook', + // 'note' => 'Widget provided by Webhook', + // 'enabledbydefaulton' => 'Home', + // ), + // ... + ); + + // Cronjobs (List of cron jobs entries to add when module is enabled) + // unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week + $this->cronjobs = array( + // 0 => array( + // 'label' => 'MyJob label', + // 'jobtype' => 'method', + // 'class' => '/webhook/class/webhook_target.class.php', + // 'objectname' => 'Webhook_target', + // 'method' => 'doScheduledJob', + // 'parameters' => '', + // 'comment' => 'Comment', + // 'frequency' => 2, + // 'unitfrequency' => 3600, + // 'status' => 0, + // 'test' => '$conf->webhook->enabled', + // 'priority' => 50, + // ), + ); + // Example: $this->cronjobs=array( + // 0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->webhook->enabled', 'priority'=>50), + // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>'$conf->webhook->enabled', 'priority'=>50) + // ); + + // Permissions provided by this module + $this->rights = array(); + $r = 0; + // Add here entries to declare new permissions + /* BEGIN MODULEBUILDER PERMISSIONS */ + $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) + $this->rights[$r][1] = 'Read objects of Webhook'; // Permission label + $this->rights[$r][4] = 'webhook_target'; + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->webhook->webhook_target->read) + $r++; + $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) + $this->rights[$r][1] = 'Create/Update objects of Webhook'; // Permission label + $this->rights[$r][4] = 'webhook_target'; + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->webhook->webhook_target->write) + $r++; + $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) + $this->rights[$r][1] = 'Delete objects of Webhook'; // Permission label + $this->rights[$r][4] = 'webhook_target'; + $this->rights[$r][5] = 'delete'; // In php code, permission will be checked by test if ($user->rights->webhook->webhook_target->delete) + $r++; + /* END MODULEBUILDER PERMISSIONS */ + + // Main menu entries to add + $this->menu = array(); + $r = 0; + // Add here entries to declare new menus + /* BEGIN MODULEBUILDER TOPMENU */ + /*$this->menu[$r++] = array( + 'fk_menu'=>'', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'top', // This is a Top menu entry + 'titre'=>'ModuleWebhookName', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'), + 'mainmenu'=>'webhook', + 'leftmenu'=>'', + 'url'=>'/webhook/webhookindex.php', + 'langs'=>'webhook@webhook', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000 + $r, + 'enabled'=>'$conf->webhook->enabled', // Define condition to show or hide menu entry. Use '$conf->webhook->enabled' if entry must be visible if module is enabled. + 'perms'=>'1', // Use 'perms'=>'$user->rights->webhook->webhook_target->read' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + );*/ + /* END MODULEBUILDER TOPMENU */ + /* BEGIN MODULEBUILDER LEFTMENU WEBHOOK_TARGET + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=webhook', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'left', // This is a Left menu entry + 'titre'=>'Webhook_target', + 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'), + 'mainmenu'=>'webhook', + 'leftmenu'=>'webhook_target', + 'url'=>'/webhook/webhookindex.php', + 'langs'=>'webhook@webhook', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->webhook->enabled', // Define condition to show or hide menu entry. Use '$conf->webhook->enabled' if entry must be visible if module is enabled. + 'perms'=>'$user->rights->webhook->webhook_target->read', // Use 'perms'=>'$user->rights->webhook->level1->level2' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=webhook,fk_leftmenu=webhook_target', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'left', // This is a Left menu entry + 'titre'=>'List_Webhook_target', + 'mainmenu'=>'webhook', + 'leftmenu'=>'webhook_webhook_target_list', + 'url'=>'/webhook/webhook_target_list.php', + 'langs'=>'webhook@webhook', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->webhook->enabled', // Define condition to show or hide menu entry. Use '$conf->webhook->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->rights->webhook->webhook_target->read', // Use 'perms'=>'$user->rights->webhook->level1->level2' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=webhook,fk_leftmenu=webhook_target', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'type'=>'left', // This is a Left menu entry + 'titre'=>'New_Webhook_target', + 'mainmenu'=>'webhook', + 'leftmenu'=>'webhook_webhook_target_new', + 'url'=>'/webhook/webhook_target_card.php?action=create', + 'langs'=>'webhook@webhook', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->webhook->enabled', // Define condition to show or hide menu entry. Use '$conf->webhook->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->rights->webhook->webhook_target->write', // Use 'perms'=>'$user->rights->webhook->level1->level2' if you want your menu with a permission rules + 'target'=>'', + 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both + ); + */ + + /*$this->menu[$r++]=array( + // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu=webhook', + // This is a Left menu entry + 'type'=>'left', + 'titre'=>'List Webhook_target', + 'mainmenu'=>'webhook', + 'leftmenu'=>'webhook_webhook_target', + 'url'=>'/webhook/webhook_target_list.php', + // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'langs'=>'webhook@webhook', + 'position'=>1100+$r, + // Define condition to show or hide menu entry. Use '$conf->webhook->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'enabled'=>'$conf->webhook->enabled', + // Use 'perms'=>'$user->rights->webhook->level1->level2' if you want your menu with a permission rules + 'perms'=>'1', + 'target'=>'', + // 0=Menu for internal users, 1=external users, 2=both + 'user'=>2, + ); + $this->menu[$r++]=array( + // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu=webhook,fk_leftmenu=webhook_webhook_target', + // This is a Left menu entry + 'type'=>'left', + 'titre'=>'New Webhook_target', + 'mainmenu'=>'webhook', + 'leftmenu'=>'webhook_webhook_target', + 'url'=>'/webhook/webhook_target_card.php?action=create', + // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'langs'=>'webhook@webhook', + 'position'=>1100+$r, + // Define condition to show or hide menu entry. Use '$conf->webhook->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'enabled'=>'$conf->webhook->enabled', + // Use 'perms'=>'$user->rights->webhook->level1->level2' if you want your menu with a permission rules + 'perms'=>'1', + 'target'=>'', + // 0=Menu for internal users, 1=external users, 2=both + 'user'=>2 + );*/ + + /* END MODULEBUILDER LEFTMENU WEBHOOK_TARGET */ + // Exports profiles provided by this module + $r = 1; + /* BEGIN MODULEBUILDER EXPORT WEBHOOK_TARGET */ + /* + $langs->load("webhook@webhook"); + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='Webhook_targetLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='webhook_target@webhook'; + // Define $this->export_fields_array, $this->export_TypeFields_array and $this->export_entities_array + $keyforclass = 'Webhook_target'; $keyforclassfile='/webhook/class/webhook_target.class.php'; $keyforelement='webhook_target@webhook'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + //$this->export_fields_array[$r]['t.fieldtoadd']='FieldToAdd'; $this->export_TypeFields_array[$r]['t.fieldtoadd']='Text'; + //unset($this->export_fields_array[$r]['t.fieldtoremove']); + //$keyforclass = 'Webhook_targetLine'; $keyforclassfile='/webhook/class/webhook_target.class.php'; $keyforelement='webhook_targetline@webhook'; $keyforalias='tl'; + //include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + $keyforselect='webhook_target'; $keyforaliasextra='extra'; $keyforelement='webhook_target@webhook'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$keyforselect='webhook_targetline'; $keyforaliasextra='extraline'; $keyforelement='webhook_targetline@webhook'; + //include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r] = array('webhook_targetline'=>array('tl.rowid','tl.ref')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields) + //$this->export_special_array[$r] = array('t.field'=>'...'); + //$this->export_examplevalues_array[$r] = array('t.field'=>'Example'); + //$this->export_help_array[$r] = array('t.field'=>'FieldDescHelp'); + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'webhook_target as t'; + //$this->export_sql_end[$r] =' LEFT JOIN '.MAIN_DB_PREFIX.'webhook_target_line as tl ON tl.fk_webhook_target = t.rowid'; + $this->export_sql_end[$r] .=' WHERE 1 = 1'; + $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('webhook_target').')'; + $r++; */ + /* END MODULEBUILDER EXPORT WEBHOOK_TARGET */ + + // Imports profiles provided by this module + $r = 1; + /* BEGIN MODULEBUILDER IMPORT WEBHOOK_TARGET */ + /* + $langs->load("webhook@webhook"); + $this->import_code[$r]=$this->rights_class.'_'.$r; + $this->import_label[$r]='Webhook_targetLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->import_icon[$r]='webhook_target@webhook'; + $this->import_tables_array[$r] = array('t' => MAIN_DB_PREFIX.'webhook_webhook_target', 'extra' => MAIN_DB_PREFIX.'webhook_webhook_target_extrafields'); + $this->import_tables_creator_array[$r] = array('t' => 'fk_user_author'); // Fields to store import user id + $import_sample = array(); + $keyforclass = 'Webhook_target'; $keyforclassfile='/webhook/class/webhook_target.class.php'; $keyforelement='webhook_target@webhook'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinimport.inc.php'; + $import_extrafield_sample = array(); + $keyforselect='webhook_target'; $keyforaliasextra='extra'; $keyforelement='webhook_target@webhook'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinimport.inc.php'; + $this->import_fieldshidden_array[$r] = array('extra.fk_object' => 'lastrowid-'.MAIN_DB_PREFIX.'webhook_webhook_target'); + $this->import_regex_array[$r] = array(); + $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); + $this->import_updatekeys_array[$r] = array('t.ref' => 'Ref'); + $this->import_convertvalue_array[$r] = array( + 't.ref' => array( + 'rule'=>'getrefifauto', + 'class'=>(empty($conf->global->WEBHOOK_WEBHOOK_TARGET_ADDON) ? 'mod_webhook_target_standard' : $conf->global->WEBHOOK_WEBHOOK_TARGET_ADDON), + 'path'=>"/core/modules/commande/".(empty($conf->global->WEBHOOK_WEBHOOK_TARGET_ADDON) ? 'mod_webhook_target_standard' : $conf->global->WEBHOOK_WEBHOOK_TARGET_ADDON).'.php' + 'classobject'=>'Webhook_target', + 'pathobject'=>'/webhook/class/webhook_target.class.php', + ), + 't.fk_soc' => array('rule' => 'fetchidfromref', 'file' => '/societe/class/societe.class.php', 'class' => 'Societe', 'method' => 'fetch', 'element' => 'ThirdParty'), + 't.fk_user_valid' => array('rule' => 'fetchidfromref', 'file' => '/user/class/user.class.php', 'class' => 'User', 'method' => 'fetch', 'element' => 'user'), + 't.fk_mode_reglement' => array('rule' => 'fetchidfromcodeorlabel', 'file' => '/compta/paiement/class/cpaiement.class.php', 'class' => 'Cpaiement', 'method' => 'fetch', 'element' => 'cpayment'), + ); + $r++; */ + /* END MODULEBUILDER IMPORT WEBHOOK_TARGET */ + } + + /** + * Function called when module is enabled. + * The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. + * It also creates data directories + * + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO + */ + public function init($options = '') + { + global $conf, $langs; + + $result = $this->_load_tables('/install/mysql/tables/', 'webhook'); + //$result = $this->_load_tables('/webhook/sql/'); + if ($result < 0) { + return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') + } + + // Create extrafields during init + //include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + //$extrafields = new ExtraFields($this->db); + //$result1=$extrafields->addExtraField('webhook_myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'webhook@webhook', '$conf->webhook->enabled'); + //$result2=$extrafields->addExtraField('webhook_myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'webhook@webhook', '$conf->webhook->enabled'); + //$result3=$extrafields->addExtraField('webhook_myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'webhook@webhook', '$conf->webhook->enabled'); + //$result4=$extrafields->addExtraField('webhook_myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'webhook@webhook', '$conf->webhook->enabled'); + //$result5=$extrafields->addExtraField('webhook_myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'webhook@webhook', '$conf->webhook->enabled'); + + // Permissions + $this->remove($options); + + $sql = array(); + + // Document templates + $moduledir = dol_sanitizeFileName('webhook'); + $myTmpObjects = array(); + $myTmpObjects['Webhook_target'] = array('includerefgeneration'=>0, 'includedocgeneration'=>0); + + foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { + if ($myTmpObjectKey == 'Webhook_target') { + continue; + } + if ($myTmpObjectArray['includerefgeneration']) { + $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/'.$moduledir.'/template_webhook_targets.odt'; + $dirodt = DOL_DATA_ROOT.'/doctemplates/'.$moduledir; + $dest = $dirodt.'/template_webhook_targets.odt'; + + if (file_exists($src) && !file_exists($dest)) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + dol_mkdir($dirodt); + $result = dol_copy($src, $dest, 0, 0); + if ($result < 0) { + $langs->load("errors"); + $this->error = $langs->trans('ErrorFailToCopyFile', $src, $dest); + return 0; + } + } + + $sql = array_merge($sql, array( + "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'standard_".strtolower($myTmpObjectKey)."' AND type = '".$this->db->escape(strtolower($myTmpObjectKey))."' AND entity = ".((int) $conf->entity), + "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('standard_".strtolower($myTmpObjectKey)."', '".$this->db->escape(strtolower($myTmpObjectKey))."', ".((int) $conf->entity).")", + "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'generic_".strtolower($myTmpObjectKey)."_odt' AND type = '".$this->db->escape(strtolower($myTmpObjectKey))."' AND entity = ".((int) $conf->entity), + "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('generic_".strtolower($myTmpObjectKey)."_odt', '".$this->db->escape(strtolower($myTmpObjectKey))."', ".((int) $conf->entity).")" + )); + } + } + + return $this->_init($sql, $options); + } + + /** + * Function called when module is disabled. + * Remove from database constants, boxes and permissions from Dolibarr database. + * Data directories are not deleted + * + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO + */ + public function remove($options = '') + { + $sql = array(); + return $this->_remove($sql, $options); + } +} diff --git a/htdocs/core/modules/modWebsite.class.php b/htdocs/core/modules/modWebsite.class.php index e27e7a2f6b0..6c87d1d799e 100644 --- a/htdocs/core/modules/modWebsite.class.php +++ b/htdocs/core/modules/modWebsite.class.php @@ -68,7 +68,7 @@ class modWebsite extends DolibarrModules $this->depends = array('modFckeditor'); // List of modules id that must be enabled if this module is enabled $this->requiredby = array(); // List of modules id to disable if this one is disabled $this->conflictwith = array(); // List of modules id this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->langfiles = array("website"); // Constants @@ -164,6 +164,8 @@ class modWebsite extends DolibarrModules { global $conf, $langs; + $error = 0; + $result = $this->_load_tables('/install/mysql/', 'website'); if ($result < 0) { return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') @@ -185,17 +187,23 @@ class modWebsite extends DolibarrModules if ($result < 0) { $langs->load("errors"); $this->error = $langs->trans('ErrorFailToCopyDir', $src, $dest); - return 0; + $this->errors[] = $langs->trans('ErrorFailToCopyDir', $src, $dest); + $error++; } } } + if ($error) { + return 0; + } + // Website templates $srcroot = DOL_DOCUMENT_ROOT.'/install/doctemplates/websites'; $destroot = DOL_DATA_ROOT.'/doctemplates/websites'; dol_mkdir($destroot); + // Copy templates in zip format (old) $docs = dol_dir_list($srcroot, 'files', 0, 'website_.*(\.zip|\.jpg)$'); foreach ($docs as $cursorfile) { $src = $srcroot.'/'.$cursorfile['name']; @@ -205,9 +213,33 @@ class modWebsite extends DolibarrModules if ($result < 0) { $langs->load("errors"); $this->error = $langs->trans('ErrorFailToCopyFile', $src, $dest); + $this->errors[] = $langs->trans('ErrorFailToCopyFile', $src, $dest); + $error++; } } + // Copy templates in dir format (recommended) + $docs = dol_dir_list($srcroot, 'directories', 0, 'website_.*$'); + + foreach ($docs as $cursorfile) { + $src = $srcroot.'/'.$cursorfile['name']; + $dest = $destroot.'/'.$cursorfile['name']; + + // Compress it + global $errormsg; + $errormsg = ''; + $result = dol_compress_dir($src, $dest.'.zip', 'zip'); + if ($result < 0) { + $error++; + $this->error = ($errormsg ? $errormsg : $langs->trans('ErrorFailToCreateZip', $dest)); + $this->errors[] = ($errormsg ? $errormsg : $langs->trans('ErrorFailToCreateZip', $dest)); + } + } + + if ($error) { + return 0; + } + $sql = array(); return $this->_init($sql, $options); diff --git a/htdocs/core/modules/modWorkflow.class.php b/htdocs/core/modules/modWorkflow.class.php index 248d3c006ce..1fd6a89e66a 100644 --- a/htdocs/core/modules/modWorkflow.class.php +++ b/htdocs/core/modules/modWorkflow.class.php @@ -72,7 +72,7 @@ class modWorkflow extends DolibarrModules $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(2, 8); // Minimum version of Dolibarr required by module $this->langfiles = array("@workflow"); @@ -93,10 +93,9 @@ class modWorkflow extends DolibarrModules 6=>array('WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION', 'chaine', '1', 'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION', 0, 'current', 0), 7=>array('WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED', 'chaine', '1', 'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED', 0, 'current', 0), 8=>array('WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER', 'chaine', '1', 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER', 0, 'current', 0), - 9=>array('WORKFLOW_BILL_ON_RECEPTION', 'chaine', '1', 'WORKFLOW_BILL_ON_RECEPTION', 0, 'current', 0), 10=>array('WORKFLOW_TICKET_LINK_CONTRACT', 'chaine', '0', 'Automatically link a ticket to available contracts', 0, 'current', 0), 11=>array('WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS', 'chaine', '0', 'Search among parent companies contracts when automatically linking a ticket to available contracts', 0, 'current', 0), - 11=>array('WORKFLOW_TICKET_CREATE_INTERVENTION', 'chaine', '1', 'WORKFLOW_TICKET_CREATE_INTERVENTION', 0, 'current', 0) + 12=>array('WORKFLOW_TICKET_CREATE_INTERVENTION', 'chaine', '0', 'WORKFLOW_TICKET_CREATE_INTERVENTION', 0, 'current', 0) ); // Boxes diff --git a/htdocs/core/modules/modWorkstation.class.php b/htdocs/core/modules/modWorkstation.class.php index da1aca4f770..a8be0f23226 100644 --- a/htdocs/core/modules/modWorkstation.class.php +++ b/htdocs/core/modules/modWorkstation.class.php @@ -124,7 +124,7 @@ class modWorkstation extends DolibarrModules $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) $this->langfiles = array("mrp"); - $this->phpmin = array(5, 6); // Minimum version of PHP required by module + $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(11, -3); // Minimum version of Dolibarr required by module $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -166,7 +166,7 @@ class modWorkstation extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/modZapier.class.php b/htdocs/core/modules/modZapier.class.php index c92de9d5909..b14419e0982 100644 --- a/htdocs/core/modules/modZapier.class.php +++ b/htdocs/core/modules/modZapier.class.php @@ -13,8 +13,9 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ + /** * \defgroup zapier Module Zapier * \brief Zapier module descriptor. @@ -23,7 +24,8 @@ * \ingroup zapier * \brief Description and activation file for the module Zapier */ -include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; /** * Description and activation class for module Zapier @@ -123,7 +125,7 @@ class modZapier extends DolibarrModules $this->conflictwith = array(); $this->langfiles = array("zapier"); // Minimum version of PHP required by module - //$this->phpmin = array(5, 6); + //$this->phpmin = array(7, 0); // Minimum version of Dolibarr required by module $this->need_dolibarr_version = array(10, 0); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -170,7 +172,7 @@ class modZapier extends DolibarrModules // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view - // 'order' to add a tab in customer order view + // 'order' to add a tab in sales order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view diff --git a/htdocs/core/modules/movement/doc/pdf_standard.modules.php b/htdocs/core/modules/movement/doc/pdf_standard.modules.php index f597f580b47..d42dbaa0666 100644 --- a/htdocs/core/modules/movement/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/movement/doc/pdf_standard.modules.php @@ -64,9 +64,9 @@ class pdf_standard extends ModelePDFMovement /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -116,10 +116,10 @@ class pdf_standard extends ModelePDFMovement $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_codestockservice = 0; // Display stock-service code @@ -314,7 +314,7 @@ class pdf_standard extends ModelePDFMovement $sql .= natural_search('p.label', $search_product); } if ($search_warehouse > 0) { - $sql .= " AND e.rowid = ".((int) $this->db->escape($search_warehouse)); + $sql .= " AND e.rowid = ".((int) $search_warehouse); } if (!empty($search_user)) { $sql .= natural_search('u.login', $search_user); @@ -447,7 +447,7 @@ class pdf_standard extends ModelePDFMovement $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Stock")." ".$outputlangs->convToOutputCharset($object->label)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -466,7 +466,7 @@ class pdf_standard extends ModelePDFMovement $pdf->SetTextColor(0, 0, 0); $tab_top = 42; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -491,7 +491,7 @@ class pdf_standard extends ModelePDFMovement $objp = $this->db->fetch_object($resql); // Multilangs - if (!empty($conf->global->MAIN_MULTILANGS)) { // si l'option est active + if (getDolGlobalInt('MAIN_MULTILANGS')) { // si l'option est active $sql = "SELECT label"; $sql .= " FROM ".MAIN_DB_PREFIX."product_lang"; $sql .= " WHERE fk_product = ".((int) $objp->rowid); @@ -537,7 +537,7 @@ class pdf_standard extends ModelePDFMovement if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -672,9 +672,12 @@ class pdf_standard extends ModelePDFMovement $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -689,7 +692,7 @@ class pdf_standard extends ModelePDFMovement $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -938,7 +941,7 @@ class pdf_standard extends ModelePDFMovement * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output * @param string $titlekey Translation key to show as title of document - * @return void + * @return int Return topshift value */ protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") { @@ -958,8 +961,8 @@ class pdf_standard extends ModelePDFMovement pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->COMMANDE_DRAFT_WATERMARK); + if ($object->statut == 0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); } $pdf->SetTextColor(0, 0, 60); @@ -1105,8 +1108,13 @@ class pdf_standard extends ModelePDFMovement $posy += 2; + $top_shift = 0; // Show list of linked objects + $current_y = $pdf->getY(); //$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size); + //if ($current_y < $pdf->getY()) { + // $top_shift = $pdf->getY() - $current_y; + //} if ($showaddress) { /* @@ -1116,7 +1124,7 @@ class pdf_standard extends ModelePDFMovement // Show sender $posy=42; $posx=$this->marge_gauche; - if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80; + if (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80; $hautcadre=40; // Show sender frame @@ -1143,6 +1151,7 @@ class pdf_standard extends ModelePDFMovement } $pdf->SetTextColor(0, 0, 0); + return $top_shift; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore @@ -1157,8 +1166,7 @@ class pdf_standard extends ModelePDFMovement */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PRODUCT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/movement/modules_movement.php b/htdocs/core/modules/movement/modules_movement.php index 1af966faf22..a058d685114 100644 --- a/htdocs/core/modules/movement/modules_movement.php +++ b/htdocs/core/modules/movement/modules_movement.php @@ -85,8 +85,6 @@ abstract class ModelePDFMovement extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'movement'; $list = array(); diff --git a/htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php b/htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php index 7463ed995d0..90d1f2f8d6b 100644 --- a/htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php +++ b/htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php @@ -48,9 +48,9 @@ class doc_generic_mo_odt extends ModelePDFMo /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * @var string Dolibarr version of the loaded document @@ -175,7 +175,9 @@ class doc_generic_mo_odt extends ModelePDFMo $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } @@ -264,10 +266,10 @@ class doc_generic_mo_odt extends ModelePDFMo if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -276,11 +278,11 @@ class doc_generic_mo_odt extends ModelePDFMo if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -288,8 +290,8 @@ class doc_generic_mo_odt extends ModelePDFMo dol_mkdir($conf->mrp->dir_temp); if (!is_writable($conf->mrp->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->mrp->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->mrp->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php b/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php index af37f6bbfcd..8e3eeeafa33 100644 --- a/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php +++ b/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php @@ -69,9 +69,9 @@ class pdf_vinci extends ModelePDFMo /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -144,10 +144,10 @@ class pdf_vinci extends ModelePDFMo $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_multilang = 1; //Available in several languages @@ -286,7 +286,7 @@ class pdf_vinci extends ModelePDFMo $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Mo")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -306,7 +306,7 @@ class pdf_vinci extends ModelePDFMo $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -350,7 +350,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -408,7 +408,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -430,7 +430,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -486,7 +486,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -532,7 +532,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } else { // We found a page break @@ -584,7 +584,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } else { // We found a page break @@ -816,11 +816,11 @@ class pdf_vinci extends ModelePDFMo // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, 'R', 1); // Show VAT by rates and total @@ -875,7 +875,7 @@ class pdf_vinci extends ModelePDFMo $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax2), $useborder, 'R', 1); } } else { - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ //Local tax 1 foreach ($this->localtax1 as $localtax_type => $localtax_rate) { @@ -905,7 +905,7 @@ class pdf_vinci extends ModelePDFMo } } - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ //Local tax 2 foreach ($this->localtax2 as $localtax_type => $localtax_rate) { @@ -943,7 +943,7 @@ class pdf_vinci extends ModelePDFMo $pdf->SetFillColor(224, 224, 224); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc), $useborder, 'R', 1); $pdf->SetFont('', '', $default_font_size - 1); @@ -1085,9 +1085,9 @@ class pdf_vinci extends ModelePDFMo //pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); //Affiche le filigrane brouillon - Print Draft Watermark - /*if($object->statut==0 && (! empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) + /*if($object->statut==0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { - pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); + pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); }*/ //Print content @@ -1353,8 +1353,7 @@ class pdf_vinci extends ModelePDFMo */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } @@ -1406,14 +1405,13 @@ class pdf_vinci extends ModelePDFMo $rank = 0; $this->cols['code'] = array( 'rank' => $rank, - 'status' => false, + 'status' => true, 'width' => 35, // in mm 'title' => array( 'textkey' => 'Ref' ), 'border-left' => true, // add left line separator ); - $this->cols['code']['status'] = true; $rank = 1; // do not use negative rank $this->cols['desc'] = array( @@ -1456,14 +1454,13 @@ class pdf_vinci extends ModelePDFMo $rank = $rank + 10; $this->cols['dim'] = array( 'rank' => $rank, - 'status' => false, + 'status' => true, 'width' => 25, // in mm 'title' => array( 'textkey' => 'Size' ), 'border-left' => true, // add left line separator ); - $this->cols['dim']['status'] = true; $rank = $rank + 10; $this->cols['qty'] = array( @@ -1475,7 +1472,6 @@ class pdf_vinci extends ModelePDFMo ), 'border-left' => true, // add left line separator ); - $this->cols['qty']['status'] = true; $rank = $rank + 10; $this->cols['qtytot'] = array( @@ -1487,7 +1483,6 @@ class pdf_vinci extends ModelePDFMo ), 'border-left' => true, // add left line separator ); - $this->cols['qtytot']['status'] = true; // Add extrafields cols if (!empty($object->lines)) { diff --git a/htdocs/core/modules/mrp/mod_mo_advanced.php b/htdocs/core/modules/mrp/mod_mo_advanced.php index ba518159dbf..cd134537ea2 100644 --- a/htdocs/core/modules/mrp/mod_mo_advanced.php +++ b/htdocs/core/modules/mrp/mod_mo_advanced.php @@ -55,7 +55,7 @@ class mod_mo_advanced extends ModeleNumRefMos /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -80,7 +80,7 @@ class mod_mo_advanced extends ModeleNumRefMos // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; + + // This was a callback request from service, get the token + try { + //var_dump($_GET['code']); + //var_dump($state); + //var_dump($apiService); // OAuth\OAuth2\Service\GitHub + + //$token = $apiService->requestAccessToken(GETPOST('code'), $state); + $token = $apiService->requestAccessToken(GETPOST('code')); + // Github is a service that does not need state to be stored. + // Into constructor of GitHub, the call + // parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri) + // has not the ending parameter to true like the Google class constructor. + + setEventMessages($langs->trans('NewTokenStored'), null, 'mesgs'); // Stored into object managed by class DoliStorage so into table oauth_token + + $backtourl = $_SESSION["backtourlsavedbeforeoauthjump"]; + unset($_SESSION["backtourlsavedbeforeoauthjump"]); + + header('Location: '.$backtourl); + exit(); + } catch (Exception $e) { + print $e->getMessage(); + } +} else { // If entry on page with no parameter, we arrive here + $_SESSION["backtourlsavedbeforeoauthjump"] = $backtourl; + $_SESSION["oauthkeyforproviderbeforeoauthjump"] = $keyforprovider; + $_SESSION['oauthstateanticsrf'] = $state; + + // This may create record into oauth_state before the header redirect. + // Creation of record with state in this tables depend on the Provider used (see its constructor). + if (GETPOST('state')) { + $url = $apiService->getAuthorizationUri(array('state' => GETPOST('state'))); + } else { + $url = $apiService->getAuthorizationUri(); // Parameter state will be randomly generated + } + + // we go on oauth provider authorization page + header('Location: '.$url); + exit(); +} + + +/* + * View + */ + +// No view at all, just actions + +$db->close(); diff --git a/htdocs/core/modules/oauth/github_oauthcallback.php b/htdocs/core/modules/oauth/github_oauthcallback.php index 496a2c988fa..24140718880 100644 --- a/htdocs/core/modules/oauth/github_oauthcallback.php +++ b/htdocs/core/modules/oauth/github_oauthcallback.php @@ -1,5 +1,5 @@ * Copyright (C) 2015 Frederic France * * This program is free software; you can redistribute it and/or modify @@ -22,6 +22,7 @@ * \brief Page to get oauth callback */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; use OAuth\Common\Storage\DoliStorage; @@ -34,9 +35,12 @@ $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domai //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - $action = GETPOST('action', 'aZ09'); $backtourl = GETPOST('backtourl', 'alpha'); +$keyforprovider = GETPOST('keyforprovider', 'aZ09'); +if (empty($keyforprovider) && !empty($_SESSION["oauthkeyforproviderbeforeoauthjump"]) && (GETPOST('code') || $action == 'delete')) { + $keyforprovider = $_SESSION["oauthkeyforproviderbeforeoauthjump"]; +} /** @@ -64,9 +68,11 @@ $serviceFactory->setHttpClient($httpClient); $storage = new DoliStorage($db, $conf); // Setup the credentials for the requests +$keyforparamid = 'OAUTH_GITHUB'.($keyforprovider ? '-'.$keyforprovider : '').'_ID'; +$keyforparamsecret = 'OAUTH_GITHUB'.($keyforprovider ? '-'.$keyforprovider : '').'_SECRET'; $credentials = new Credentials( - $conf->global->OAUTH_GITHUB_ID, - $conf->global->OAUTH_GITHUB_SECRET, + getDolGlobalString($keyforparamid), + getDolGlobalString($keyforparamsecret), $currentUri->getAbsoluteUri() ); @@ -88,6 +94,13 @@ $apiService = $serviceFactory->createService('GitHub', $credentials, $storage, $ $langs->load("oauth"); +if (!getDolGlobalString($keyforparamid)) { + accessforbidden('Setup of service is not complete. Customer ID is missing'); +} +if (!getDolGlobalString($keyforparamsecret)) { + accessforbidden('Setup of service is not complete. Secret key is missing'); +} + /* * Actions @@ -140,14 +153,15 @@ if (!empty($_GET['code'])) { // We are coming from oauth provider page } catch (Exception $e) { print $e->getMessage(); } -} else // If entry on page with no parameter, we arrive here -{ +} else { // If entry on page with no parameter, we arrive here $_SESSION["backtourlsavedbeforeoauthjump"] = $backtourl; + $_SESSION["oauthkeyforproviderbeforeoauthjump"] = $keyforprovider; + $_SESSION['oauthstateanticsrf'] = $state; // This may create record into oauth_state before the header redirect. // Creation of record with state in this tables depend on the Provider used (see its constructor). if (GETPOST('state')) { - $url = $apiService->getAuthorizationUri(array('state'=>GETPOST('state'))); + $url = $apiService->getAuthorizationUri(array('state' => GETPOST('state'))); } else { $url = $apiService->getAuthorizationUri(); // Parameter state will be randomly generated } diff --git a/htdocs/core/modules/oauth/google_oauthcallback.php b/htdocs/core/modules/oauth/google_oauthcallback.php index 9fbc38ef156..ed0caa1a4ff 100644 --- a/htdocs/core/modules/oauth/google_oauthcallback.php +++ b/htdocs/core/modules/oauth/google_oauthcallback.php @@ -1,5 +1,5 @@ * Copyright (C) 2015 Frederic France * * This program is free software; you can redistribute it and/or modify @@ -25,6 +25,7 @@ * \brief Page to get oauth callback */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; use OAuth\Common\Storage\DoliStorage; @@ -40,6 +41,11 @@ $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domai $action = GETPOST('action', 'aZ09'); $backtourl = GETPOST('backtourl', 'alpha'); +$keyforprovider = GETPOST('keyforprovider', 'aZ09'); +if (!GETPOSTISSET('keyforprovider') && !empty($_SESSION["oauthkeyforproviderbeforeoauthjump"]) && (GETPOST('code') || $action == 'delete')) { + // If we are coming from the Oauth page + $keyforprovider = $_SESSION["oauthkeyforproviderbeforeoauthjump"]; +} /** @@ -63,31 +69,38 @@ $httpClient = new \OAuth\Common\Http\Client\CurlClient(); //$httpClient->setCurlParameters($params); $serviceFactory->setHttpClient($httpClient); -// Dolibarr storage -$storage = new DoliStorage($db, $conf); - // Setup the credentials for the requests +$keyforparamid = 'OAUTH_GOOGLE'.($keyforprovider ? '-'.$keyforprovider : '').'_ID'; +$keyforparamsecret = 'OAUTH_GOOGLE'.($keyforprovider ? '-'.$keyforprovider : '').'_SECRET'; $credentials = new Credentials( - $conf->global->OAUTH_GOOGLE_ID, - $conf->global->OAUTH_GOOGLE_SECRET, + getDolGlobalString($keyforparamid), + getDolGlobalString($keyforparamsecret), $currentUri->getAbsoluteUri() ); $state = GETPOST('state'); +$statewithscopeonly = ''; +$statewithanticsrfonly = ''; $requestedpermissionsarray = array(); if ($state) { // 'state' parameter is standard to store a hash value and can be used to retrieve some parameters back $statewithscopeonly = preg_replace('/\-.*$/', '', $state); $requestedpermissionsarray = explode(',', $statewithscopeonly); // Example: 'userinfo_email,userinfo_profile,openid,email,profile,cloud_print'. + $statewithanticsrfonly = preg_replace('/^.*\-/', '', $state); } -if ($action != 'delete' && empty($requestedpermissionsarray)) { - print 'Error, parameter state is not defined'; - exit; + +if ($action != 'delete' && (empty($statewithscopeonly) || empty($requestedpermissionsarray))) { + setEventMessages($langs->trans('ScopeUndefined'), null, 'errors'); + header('Location: '.$backtourl); + exit(); } + //var_dump($requestedpermissionsarray);exit; +// Dolibarr storage +$storage = new DoliStorage($db, $conf, $keyforprovider); // Instantiate the Api service using the credentials, http client and storage mechanism for the token // $requestedpermissionsarray contains list of scopes. @@ -101,6 +114,13 @@ $apiService->setAccessType('offline'); $langs->load("oauth"); +if (!getDolGlobalString($keyforparamid)) { + accessforbidden('Setup of service is not complete. Customer ID is missing'); +} +if (!getDolGlobalString($keyforparamsecret)) { + accessforbidden('Setup of service is not complete. Secret key is missing'); +} + /* * Actions @@ -117,7 +137,7 @@ if ($action == 'delete') { } if (GETPOST('code')) { // We are coming from oauth provider page. - dol_syslog("We are coming from the oauth provider page"); + dol_syslog("We are coming from the oauth provider page keyforprovider=".$keyforprovider); // We must validate that the $state is the same than the one into $_SESSION['oauthstateanticsrf'], return error if not. if (isset($_SESSION['oauthstateanticsrf']) && $state != $_SESSION['oauthstateanticsrf']) { @@ -174,8 +194,10 @@ if (GETPOST('code')) { // We are coming from oauth provider page. } } else { // If we enter this page without 'code' parameter, we arrive here. this is the case when we want to get the redirect - // to the OAuth provider login page + // to the OAuth provider login page. $_SESSION["backtourlsavedbeforeoauthjump"] = $backtourl; + $_SESSION["oauthkeyforproviderbeforeoauthjump"] = $keyforprovider; + $_SESSION['oauthstateanticsrf'] = $state; if (!preg_match('/^forlogin/', $state)) { $apiService->setApprouvalPrompt('force'); diff --git a/htdocs/core/modules/oauth/stripelive_oauthcallback.php b/htdocs/core/modules/oauth/stripelive_oauthcallback.php index 77ef3ebde1a..ef35b6573cc 100644 --- a/htdocs/core/modules/oauth/stripelive_oauthcallback.php +++ b/htdocs/core/modules/oauth/stripelive_oauthcallback.php @@ -1,5 +1,5 @@ * Copyright (C) 2019 Thibault FOUCART * * This program is free software; you can redistribute it and/or modify @@ -22,6 +22,7 @@ * \brief Page to get oauth callback */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; use OAuth\Common\Storage\DoliStorage; @@ -34,9 +35,12 @@ $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domai //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - $action = GETPOST('action', 'aZ09'); $backtourl = GETPOST('backtourl', 'alpha'); +$keyforprovider = GETPOST('keyforprovider', 'aZ09'); +if (empty($keyforprovider) && !empty($_SESSION["oauthkeyforproviderbeforeoauthjump"]) && (GETPOST('code') || $action == 'delete')) { + $keyforprovider = $_SESSION["oauthkeyforproviderbeforeoauthjump"]; +} /** @@ -64,9 +68,11 @@ $serviceFactory->setHttpClient($httpClient); $storage = new DoliStorage($db, $conf); // Setup the credentials for the requests +$keyforparamid = 'OAUTH_STRIPE_LIVE'.($keyforprovider ? '-'.$keyforprovider : '').'_ID'; +$keyforparamsecret = 'OAUTH_STRIPE_LIVE'.($keyforprovider ? '-'.$keyforprovider : '').'_SECRET'; $credentials = new Credentials( - $conf->global->OAUTH_STRIPE_LIVE_ID, - $conf->global->STRIPE_LIVE_SECRET_KEY, + getDolGlobalString($keyforparamid), + getDolGlobalString($keyforparamsecret), $currentUri->getAbsoluteUri() ); @@ -84,7 +90,8 @@ if (GETPOST('state')) { // Instantiate the Api service using the credentials, http client and storage mechanism for the token //$apiService = $serviceFactory->createService('StripeTest', $credentials, $storage, $requestedpermissionsarray); -$sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token set service='StripeLive', entity=".$conf->entity; +$servicesuffix = ($keyforprovider ? '-'.$keyforprovider : ''); +$sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token SET service = 'StripeLive".$db->escape($servicesuffix)."', entity = ".((int) $conf->entity); $db->query($sql); // access type needed to have oauth provider refreshing token @@ -92,6 +99,13 @@ $db->query($sql); $langs->load("oauth"); +if (!getDolGlobalString($keyforparamid)) { + accessforbidden('Setup of service is not complete. Customer ID is missing'); +} +if (!getDolGlobalString($keyforparamsecret)) { + accessforbidden('Setup of service is not complete. Secret key is missing'); +} + /* * Actions @@ -148,6 +162,8 @@ if (!empty($_GET['code'])) { // We are coming from oauth provider page } else // If entry on page with no parameter, we arrive here { $_SESSION["backtourlsavedbeforeoauthjump"] = $backtourl; + $_SESSION["oauthkeyforproviderbeforeoauthjump"] = $keyforprovider; + $_SESSION['oauthstateanticsrf'] = $state; // This may create record into oauth_state before the header redirect. // Creation of record with state in this tables depend on the Provider used (see its constructor). @@ -156,7 +172,7 @@ if (!empty($_GET['code'])) { // We are coming from oauth provider page } else { //$url = $apiService->getAuthorizationUri(); // Parameter state will be randomly generated //https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_AX27ut70tJ1j6eyFCV3ObEXhNOo2jY6V&scope=read_write - $url = 'https://connect.stripe.com/oauth/authorize?response_type=code&client_id='.$conf->global->OAUTH_STRIPE_LIVE_ID.'&scope=read_write'; + $url = 'https://connect.stripe.com/oauth/authorize?response_type=code&client_id='.$conf->global->$keyforparamid.'&scope=read_write'; } // we go on oauth provider authorization page diff --git a/htdocs/core/modules/oauth/stripetest_oauthcallback.php b/htdocs/core/modules/oauth/stripetest_oauthcallback.php index a31f0f43db4..a5d481dbef5 100644 --- a/htdocs/core/modules/oauth/stripetest_oauthcallback.php +++ b/htdocs/core/modules/oauth/stripetest_oauthcallback.php @@ -1,5 +1,5 @@ * Copyright (C) 2015 Frederic France * * This program is free software; you can redistribute it and/or modify @@ -22,6 +22,7 @@ * \brief Page to get oauth callback */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; use OAuth\Common\Storage\DoliStorage; @@ -34,9 +35,12 @@ $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domai //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - $action = GETPOST('action', 'aZ09'); $backtourl = GETPOST('backtourl', 'alpha'); +$keyforprovider = GETPOST('keyforprovider', 'aZ09'); +if (empty($keyforprovider) && !empty($_SESSION["oauthkeyforproviderbeforeoauthjump"]) && (GETPOST('code') || $action == 'delete')) { + $keyforprovider = $_SESSION["oauthkeyforproviderbeforeoauthjump"]; +} /** @@ -64,9 +68,11 @@ $serviceFactory->setHttpClient($httpClient); $storage = new DoliStorage($db, $conf); // Setup the credentials for the requests +$keyforparamid = 'OAUTH_STRIPE_TEST'.($keyforprovider ? '-'.$keyforprovider : '').'_ID'; +$keyforparamsecret = 'OAUTH_STRIPE_TEST'.($keyforprovider ? '-'.$keyforprovider : '').'_SECRET'; $credentials = new Credentials( - $conf->global->OAUTH_STRIPE_TEST_ID, - $conf->global->STRIPE_TEST_SECRET_KEY, + getDolGlobalString($keyforparamid), + getDolGlobalString($keyforparamsecret), $currentUri->getAbsoluteUri() ); @@ -84,7 +90,8 @@ if (GETPOST('state')) { // Instantiate the Api service using the credentials, http client and storage mechanism for the token //$apiService = $serviceFactory->createService('StripeTest', $credentials, $storage, $requestedpermissionsarray); -$sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token set service='StripeTest', entity=".$conf->entity; +$servicesuffix = ($keyforprovider ? '-'.$keyforprovider : ''); +$sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token SET service = 'StripeTest".$db->escape($servicesuffix)."', entity = ".((int) $conf->entity); $db->query($sql); // access type needed to have oauth provider refreshing token @@ -92,6 +99,13 @@ $db->query($sql); $langs->load("oauth"); +if (!getDolGlobalString($keyforparamid)) { + accessforbidden('Setup of service is not complete. Customer ID is missing'); +} +if (!getDolGlobalString($keyforparamsecret)) { + accessforbidden('Setup of service is not complete. Secret key is missing'); +} + /* * Actions @@ -148,6 +162,8 @@ if (!empty($_GET['code'])) { // We are coming from oauth provider page } else // If entry on page with no parameter, we arrive here { $_SESSION["backtourlsavedbeforeoauthjump"] = $backtourl; + $_SESSION["oauthkeyforproviderbeforeoauthjump"] = $keyforprovider; + $_SESSION['oauthstateanticsrf'] = $state; // This may create record into oauth_state before the header redirect. // Creation of record with state in this tables depend on the Provider used (see its constructor). @@ -156,7 +172,7 @@ if (!empty($_GET['code'])) { // We are coming from oauth provider page } else { //$url = $apiService->getAuthorizationUri(); // Parameter state will be randomly generated //https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_AX27ut70tJ1j6eyFCV3ObEXhNOo2jY6V&scope=read_write - $url = 'https://connect.stripe.com/oauth/authorize?response_type=code&client_id='.$conf->global->OAUTH_STRIPE_TEST_ID.'&scope=read_write'; + $url = 'https://connect.stripe.com/oauth/authorize?response_type=code&client_id='.$conf->global->$keyforparamid.'&scope=read_write'; } // we go on oauth provider authorization page diff --git a/htdocs/core/modules/payment/mod_payment_ant.php b/htdocs/core/modules/payment/mod_payment_ant.php index 958074202fe..03a6109bd67 100644 --- a/htdocs/core/modules/payment/mod_payment_ant.php +++ b/htdocs/core/modules/payment/mod_payment_ant.php @@ -57,7 +57,7 @@ class mod_payment_ant extends ModeleNumRefPayments /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/payment/modules_payment.php b/htdocs/core/modules/payment/modules_payment.php index f19e80dd3d2..68b864fe94d 100644 --- a/htdocs/core/modules/payment/modules_payment.php +++ b/htdocs/core/modules/payment/modules_payment.php @@ -41,7 +41,7 @@ abstract class ModeleNumRefPayments /** * Return the default description of numbering module * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/printing/modules_printing.php b/htdocs/core/modules/printing/modules_printing.php index fa86d832b73..26268e7c183 100644 --- a/htdocs/core/modules/printing/modules_printing.php +++ b/htdocs/core/modules/printing/modules_printing.php @@ -67,7 +67,11 @@ class PrintingDriver $list = array(); $listoffiles = array(); - $dirmodels = array_merge(array('/core/modules/printing/'), (array) $conf->modules_parts['printing']); + if (!empty($conf->modules_parts['printing'])) { + $dirmodels = array_merge(array('/core/modules/printing/'), (array) $conf->modules_parts['printing']); + } else { + $dirmodels = array('/core/modules/printing/'); + } foreach ($dirmodels as $dir) { $tmpfiles = dol_dir_list(dol_buildpath($dir, 0), 'all', 0, '\.modules.php', '', 'name', SORT_ASC, 0); if (!empty($tmpfiles)) { diff --git a/htdocs/core/modules/printing/printgcp.modules.php b/htdocs/core/modules/printing/printgcp.modules.php index 226ed6c43cd..c04d3ac9ca5 100644 --- a/htdocs/core/modules/printing/printgcp.modules.php +++ b/htdocs/core/modules/printing/printgcp.modules.php @@ -116,8 +116,8 @@ class printing_printgcp extends PrintingDriver 'type'=>'info', ); } else { - $this->google_id = $conf->global->OAUTH_GOOGLE_ID; - $this->google_secret = $conf->global->OAUTH_GOOGLE_SECRET; + $this->google_id = getDolGlobalString('OAUTH_GOOGLE_ID'); + $this->google_secret = getDolGlobalString('OAUTH_GOOGLE_SECRET'); // Token storage $storage = new DoliStorage($this->db, $this->conf); //$storage->clearToken($this->OAUTH_SERVICENAME_GOOGLE); @@ -137,7 +137,6 @@ class printing_printgcp extends PrintingDriver $this->errors[] = $e->getMessage(); $token_ok = false; } - //var_dump($this->errors);exit; $expire = false; // Is token expired or will token expire in the next 30 seconds @@ -333,6 +332,7 @@ class printing_printgcp extends PrintingDriver } $fileprint .= '/'.$file; $mimetype = dol_mimetype($fileprint); + $printer_id = ''; // select printer uri for module order, propal,... $sql = "SELECT rowid, printer_id, copy FROM ".MAIN_DB_PREFIX."printing WHERE module='".$this->db->escape($module)."' AND driver='printgcp' AND userid=".((int) $user->id); $result = $this->db->query($sql); diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php index bf1da990923..0e9eefa1e45 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php @@ -141,8 +141,8 @@ class pdf_standardlabel extends CommonStickerGenerator $widthtouse = $maxwidthtouse; $heighttouse = round($widthtouse / $imgratio); } else { - $heightouse = $maxheighttouse; - $widthtouse = round($heightouse * $imgratio); + $heighttouse = $maxheighttouse; + $widthtouse = round($heighttouse * $imgratio); } } //var_dump($this->_Width.'x'.$this->_Height.' with border and scale '.$imgscale.' => max '.$maxwidthtouse.'x'.$maxheighttouse.' => We use '.$widthtouse.'x'.$heighttouse);exit; @@ -294,7 +294,7 @@ class pdf_standardlabel extends CommonStickerGenerator $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($keywords); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index 907b18daef3..0d380ce1537 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -317,7 +317,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($keywords); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } diff --git a/htdocs/core/modules/printsheet/modules_labels.php b/htdocs/core/modules/printsheet/modules_labels.php index ae4c6888a6c..b80710dc1f6 100644 --- a/htdocs/core/modules/printsheet/modules_labels.php +++ b/htdocs/core/modules/printsheet/modules_labels.php @@ -51,8 +51,6 @@ class ModelePDFLabels public function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'members_labels'; $list = array(); diff --git a/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php b/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php index 090a45f4b3f..6fde0ce16c4 100644 --- a/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php +++ b/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php @@ -45,9 +45,9 @@ class doc_generic_product_odt extends ModelePDFProduct /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -153,7 +153,7 @@ class doc_generic_product_odt extends ModelePDFProduct $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); $texte .= '
    '; $texte .= ''; $texte .= '
    '; $texte .= ''; @@ -177,7 +177,13 @@ class doc_generic_product_odt extends ModelePDFProduct $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -268,11 +274,11 @@ class doc_generic_product_odt extends ModelePDFProduct if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -281,11 +287,11 @@ class doc_generic_product_odt extends ModelePDFProduct if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -293,8 +299,8 @@ class doc_generic_product_odt extends ModelePDFProduct dol_mkdir($conf->product->dir_temp); if (!is_writable($conf->product->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->product->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->product->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } @@ -328,7 +334,7 @@ class doc_generic_product_odt extends ModelePDFProduct '__FROM_EMAIL__' => $this->emetteur->email, '__TOTAL_TTC__' => $object->total_ttc, '__TOTAL_HT__' => $object->total_ht, - '__TOTAL_VAT__' => $object->total_vat + '__TOTAL_VAT__' => $object->total_tva ); complete_substitutions_array($substitutionarray, $langs, $object); // Call the ODTSubstitution hook diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php index ea52b9c3c70..8baef2ffa75 100644 --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php @@ -58,9 +58,9 @@ class pdf_standard extends ModelePDFProduct /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -97,10 +97,10 @@ class pdf_standard extends ModelePDFProduct $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_multilang = 1; // Available in several languages @@ -213,7 +213,7 @@ class pdf_standard extends ModelePDFProduct $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Order")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -233,7 +233,7 @@ class pdf_standard extends ModelePDFProduct $tab_top = 42; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -351,8 +351,8 @@ class pdf_standard extends ModelePDFProduct if ($i == ($nblines-1)) // No more lines, and no space left to show total, so we create a new page { $pdf->AddPage('','',true); - if (! empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter+1); } } @@ -421,7 +421,7 @@ class pdf_standard extends ModelePDFProduct $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalht, 3, $total_excl_tax, 0, 'R', 0); // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; else $tvaligne=$object->lines[$i]->total_tva; $localtax1ligne=$object->lines[$i]->total_localtax1; @@ -439,7 +439,7 @@ class pdf_standard extends ModelePDFProduct // Retrieve type from database for backward compatibility with old records if ((! isset($localtax1_type) || $localtax1_type=='' || ! isset($localtax2_type) || $localtax2_type=='') // if tax type not defined - && (! empty($localtax1_rate) || ! empty($localtax2_rate))) // and there is local tax + && (!empty($localtax1_rate) || !empty($localtax2_rate))) // and there is local tax { $localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$object->thirdparty,$mysoc); $localtax1_type = isset($localtaxtmp_array[0]) ? $localtaxtmp_array[0] : ''; @@ -457,7 +457,7 @@ class pdf_standard extends ModelePDFProduct $this->tva[$vatrate] += $tvaligne; // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblines - 1)) + if (!empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblines - 1)) { $pdf->setPage($pageposafter); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); @@ -484,7 +484,7 @@ class pdf_standard extends ModelePDFProduct $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak) { @@ -499,9 +499,9 @@ class pdf_standard extends ModelePDFProduct $this->_pagefoot($pdf,$object,$outputlangs,1); // New page $pdf->AddPage(); - if (! empty($tplidx)) $pdf->useTemplate($tplidx); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -687,8 +687,8 @@ class pdf_standard extends ModelePDFProduct pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->COMMANDE_DRAFT_WATERMARK); + if ($object->statut == 0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); } $pdf->SetTextColor(0, 0, 60); @@ -775,7 +775,7 @@ class pdf_standard extends ModelePDFProduct // Show sender $posy=42; $posx=$this->marge_gauche; - if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80; + if (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80; $hautcadre=40; // Show sender frame @@ -816,8 +816,7 @@ class pdf_standard extends ModelePDFProduct */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PRODUCT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/product/mod_codeproduct_elephant.php b/htdocs/core/modules/product/mod_codeproduct_elephant.php index b2164e80175..c883de79c5e 100644 --- a/htdocs/core/modules/product/mod_codeproduct_elephant.php +++ b/htdocs/core/modules/product/mod_codeproduct_elephant.php @@ -139,7 +139,7 @@ class mod_codeproduct_elephant extends ModeleProductCode * Return an example of result returned by getNextValue * * @param Translate $langs Object langs - * @param product $objproduct Object product + * @param Product $objproduct Object product * @param int $type Type of third party (1:customer, 2:supplier, -1:autodetect) * @return string Return string example */ diff --git a/htdocs/core/modules/product/mod_codeproduct_leopard.php b/htdocs/core/modules/product/mod_codeproduct_leopard.php index f7578d696f6..5819821f814 100644 --- a/htdocs/core/modules/product/mod_codeproduct_leopard.php +++ b/htdocs/core/modules/product/mod_codeproduct_leopard.php @@ -33,10 +33,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/product/modules_product.class.php' class mod_codeproduct_leopard extends ModeleProductCode { /* - * Attention ce module est utilise par defaut si aucun module n'a - * ete definit dans la configuration + * Please note this module is used by default if no module has been defined in the configuration * - * Le fonctionnement de celui-ci doit donc rester le plus ouvert possible + * Its operation must therefore remain as open as possible */ /** @@ -100,7 +99,7 @@ class mod_codeproduct_leopard extends ModeleProductCode /** * Return an example of result returned by getNextValue * - * @param product $objproduct Object product + * @param Product $objproduct Object product * @param int $type Type of third party (1:customer, 2:supplier, -1:autodetect) * @return string Return next value */ diff --git a/htdocs/core/modules/product/modules_product.class.php b/htdocs/core/modules/product/modules_product.class.php index 6c47847ef60..3a856763144 100644 --- a/htdocs/core/modules/product/modules_product.class.php +++ b/htdocs/core/modules/product/modules_product.class.php @@ -104,10 +104,10 @@ abstract class ModeleProductCode */ public $error = ''; - /** Renvoi la description par defaut du modele de numerotation + /** Returns the default description of the numbering pattern * * @param Translate $langs Object langs - * @return string Texte descripif + * @return string Descriptive text */ public function info($langs) { diff --git a/htdocs/core/modules/product_batch/mod_lot_advanced.php b/htdocs/core/modules/product_batch/mod_lot_advanced.php index d56178697f5..27cc509ea02 100644 --- a/htdocs/core/modules/product_batch/mod_lot_advanced.php +++ b/htdocs/core/modules/product_batch/mod_lot_advanced.php @@ -55,7 +55,7 @@ class mod_lot_advanced extends ModeleNumRefBatch /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -65,6 +65,9 @@ class mod_lot_advanced extends ModeleNumRefBatch $form = new Form($db); + // We get cursor rule + $mask = getDolGlobalString('LOT_ADVANCED_MASK'); + $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; $texte .= ''; $texte .= ''; @@ -80,13 +83,13 @@ class mod_lot_advanced extends ModeleNumRefBatch // Parametrage du prefix $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; // Option to enable custom masks per product $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; // Option to enable custom masks per product $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -133,7 +133,7 @@ class mod_stocktransfer_advanced extends ModeleNumRefStockTransfer require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->STOCKTRANSFER_STOCKTRANSFER_ADVANCED_MASK; + $mask = getDolGlobalString('STOCKTRANSFER_STOCKTRANSFER_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php b/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php index 6a6c7c556e6..fc647d3135c 100644 --- a/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php +++ b/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php @@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/modules/stocktransfer/modules_stocktrans /** - * Class to manage customer order numbering rules standard + * Class to manage the Standard numbering rule for Stock */ class mod_stocktransfer_standard extends ModeleNumRefStockTransfer { diff --git a/htdocs/core/modules/stocktransfer/modules_stocktransfer.php b/htdocs/core/modules/stocktransfer/modules_stocktransfer.php index 3da0a0ae644..2a7218543e7 100644 --- a/htdocs/core/modules/stocktransfer/modules_stocktransfer.php +++ b/htdocs/core/modules/stocktransfer/modules_stocktransfer.php @@ -50,8 +50,6 @@ abstract class ModelePDFStockTransfer extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'stocktransfer'; $list = array(); @@ -87,7 +85,7 @@ abstract class ModeleNumRefStockTransfer /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php b/htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php new file mode 100644 index 00000000000..c9e18e7c4ab --- /dev/null +++ b/htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php @@ -0,0 +1,503 @@ + + * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2014 Marcos García + * Copyright (C) 2016 Charlie Benke + * Copyright (C) 2018-2019 Philippe Grand + * Copyright (C) 2018-2019 Frédéric France + * Copyright (C) 2019 Tim Otte + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file htdocs/core/modules/supplier_invoce/doc/doc_generic_supplier_invoice_odt.modules.php + * \ingroup facture + * \brief File of class to build ODT documents for supplier invoices + */ + +require_once DOL_DOCUMENT_ROOT.'/core/modules/supplier_invoice/modules_facturefournisseur.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php'; + + +/** + * Class to build documents using ODF templates generator + */ +class doc_generic_supplier_invoice_odt extends ModelePDFSuppliersInvoices +{ + /** + * Issuer + * @var Societe + */ + public $issuer; + + /** + * @var array Minimum version of PHP required by module. + * e.g.: PHP ≥ 5.6 = array(5, 6) + */ + public $phpmin = array(5, 6); + + /** + * @var string Dolibarr version of the loaded document + */ + public $version = 'dolibarr'; + + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $conf, $langs, $mysoc; + + // Load translation files required by the page + $langs->loadLangs(array("main", "companies")); + + $this->db = $db; + $this->name = "ODT templates"; + $this->description = $langs->trans("DocumentModelOdt"); + $this->scandir = 'SUPPLIER_INVOICE_ADDON_PDF_ODT_PATH'; // Name of constant that is used to save list of directories to scan + // Page size for A4 format + $this->type = 'odt'; + $this->page_largeur = 0; + $this->page_hauteur = 0; + $this->format = array($this->page_largeur, $this->page_hauteur); + $this->marge_gauche = 0; + $this->marge_droite = 0; + $this->marge_haute = 0; + $this->marge_basse = 0; + + $this->option_logo = 1; // Display logo + $this->option_tva = 0; // Manage the vat option FACTURE_TVAOPTION + $this->option_modereg = 0; // Display payment mode + $this->option_condreg = 0; // Display payment terms + $this->option_codeproduitservice = 0; // Display product-service code + $this->option_multilang = 1; // Available in several languages + $this->option_escompte = 0; // Displays if there has been a discount + $this->option_credit_note = 0; // Support credit notes + $this->option_freetext = 1; // Support add of a personalised text + $this->option_draft_watermark = 0; // Support add of a watermark on drafts + + // Recupere issuer + $this->issuer = $mysoc; + if (!$this->issuer->country_code) { + $this->issuer->country_code = substr($langs->defaultlang, -2); // By default if not defined + } + } + + + /** + * Return description of a module + * + * @param Translate $langs Lang object to use for output + * @return string Description + */ + public function info($langs) + { + global $conf, $langs; + + // Load translation files required by the page + $langs->loadLangs(array("errors", "companies")); + + $form = new Form($this->db); + + $texte = $this->description.".
    \n"; + $texte .= '
    '; + $texte .= ''; + $texte .= ''; + $texte .= ''; + $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'  '; - if ($conf->global->PRODUCTBATCH_LOT_USE_PRODUCT_MASKS) { + if (!empty($conf->global->PRODUCTBATCH_LOT_USE_PRODUCT_MASKS)) { $texte .= ''.img_picto($langs->trans("Enabled"), 'on').''; } else { $texte .= ''.img_picto($langs->trans("Disabled"), 'off').''; @@ -129,7 +132,7 @@ class mod_lot_advanced extends ModeleNumRefBatch * Return next free value * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Value if KO, <0 if KO */ public function getNextValue($objsoc, $object) @@ -139,7 +142,16 @@ class mod_lot_advanced extends ModeleNumRefBatch require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->LOT_ADVANCED_MASK; + $mask = getDolGlobalString('LOT_ADVANCED_MASK'); + $filter = ''; + if (getDolGlobalString('PRODUCTBATCH_LOT_USE_PRODUCT_MASKS') && !empty($object->fk_product)) { + $product = new Product($db); + $res = $product->fetch($object->fk_product); + if ($res > 0 && !empty($product->batch_mask)) { + $mask = $product->batch_mask; + $filter = ''; + } + } if (!$mask) { $this->error = 'NotConfigured'; @@ -148,7 +160,7 @@ class mod_lot_advanced extends ModeleNumRefBatch $date = dol_now(); - $numFinal = get_next_value($db, $mask, 'product_lot', 'batch', '', null, $date); + $numFinal = get_next_value($db, $mask, 'product_lot', 'batch', $filter, null, $date); return $numFinal; } diff --git a/htdocs/core/modules/product_batch/mod_lot_free.php b/htdocs/core/modules/product_batch/mod_lot_free.php index d6b24945ab0..8d14a25374f 100644 --- a/htdocs/core/modules/product_batch/mod_lot_free.php +++ b/htdocs/core/modules/product_batch/mod_lot_free.php @@ -1,6 +1,7 @@ * Copyright (C) 2006-2009 Laurent Destailleur + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,16 +27,15 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/product_batch/modules_product_batch.class.php'; /** - * \class mod_codeproduct_leopard - * \brief Classe permettant la gestion leopard des codes produits + * \class mod_lot_free + * \brief Class allowing lot_free management of batch numbers */ class mod_lot_free extends ModeleNumRefBatch { /* - * Attention ce module est utilise par defaut si aucun module n'a - * ete definit dans la configuration + * Please note this module is used by default if no module has been defined in the configuration * - * Le fonctionnement de celui-ci doit donc rester le plus ouvert possible + * Its operation must therefore remain as open as possible */ @@ -44,7 +44,10 @@ class mod_lot_free extends ModeleNumRefBatch */ public $name = 'lot_free'; - public $code_modifiable; // Code modifiable + /** + * @var string Code modifiable + */ + public $code_modifiable; public $code_modifiable_invalide; // Code modifiable si il est invalide @@ -94,12 +97,11 @@ class mod_lot_free extends ModeleNumRefBatch * Return an example of result returned by getNextValue * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Return next value */ public function getNextValue($objsoc, $object) { - global $langs; return ''; } } diff --git a/htdocs/core/modules/product_batch/mod_lot_standard.php b/htdocs/core/modules/product_batch/mod_lot_standard.php index fc8d1389a00..ef3918fd167 100644 --- a/htdocs/core/modules/product_batch/mod_lot_standard.php +++ b/htdocs/core/modules/product_batch/mod_lot_standard.php @@ -112,7 +112,7 @@ class mod_lot_standard extends ModeleNumRefBatch * Return next free value * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Value if KO, <0 if KO */ public function getNextValue($objsoc, $object) diff --git a/htdocs/core/modules/product_batch/mod_sn_advanced.php b/htdocs/core/modules/product_batch/mod_sn_advanced.php index 6ee931d51a9..91fc99a1363 100644 --- a/htdocs/core/modules/product_batch/mod_sn_advanced.php +++ b/htdocs/core/modules/product_batch/mod_sn_advanced.php @@ -55,7 +55,7 @@ class mod_sn_advanced extends ModeleNumRefBatch /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -65,6 +65,9 @@ class mod_sn_advanced extends ModeleNumRefBatch $form = new Form($db); + // We get cursor rule + $mask = getDolGlobalString('SN_ADVANCED_MASK'); + $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; $texte .= ''; $texte .= ''; @@ -80,13 +83,13 @@ class mod_sn_advanced extends ModeleNumRefBatch // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'  '; - if ($conf->global->PRODUCTBATCH_SN_USE_PRODUCT_MASKS) { + if (!empty($conf->global->PRODUCTBATCH_SN_USE_PRODUCT_MASKS)) { $texte .= ''.img_picto($langs->trans("Enabled"), 'on').''; } else { $texte .= ''.img_picto($langs->trans("Disabled"), 'off').''; @@ -129,7 +132,7 @@ class mod_sn_advanced extends ModeleNumRefBatch * Return next free value * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Value if KO, <0 if KO */ public function getNextValue($objsoc, $object) @@ -139,7 +142,17 @@ class mod_sn_advanced extends ModeleNumRefBatch require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->SN_ADVANCED_MASK; + $mask = getDolGlobalString('SN_ADVANCED_MASK'); + + $filter = ''; + if (getDolGlobalString('PRODUCTBATCH_SN_USE_PRODUCT_MASKS') && !empty($object->fk_product)) { + $product = new Product($db); + $res = $product->fetch($object->fk_product); + if ($res > 0 && !empty($product->batch_mask)) { + $mask = $product->batch_mask; + $filter = ''; + } + } if (!$mask) { $this->error = 'NotConfigured'; @@ -148,7 +161,7 @@ class mod_sn_advanced extends ModeleNumRefBatch $date = dol_now(); - $numFinal = get_next_value($db, $mask, 'product_lot', 'batch', '', null, $date); + $numFinal = get_next_value($db, $mask, 'product_lot', 'batch', $filter, null, $date); return $numFinal; } diff --git a/htdocs/core/modules/product_batch/mod_sn_free.php b/htdocs/core/modules/product_batch/mod_sn_free.php index f6b2417d34b..8ada51fb93b 100644 --- a/htdocs/core/modules/product_batch/mod_sn_free.php +++ b/htdocs/core/modules/product_batch/mod_sn_free.php @@ -93,7 +93,7 @@ class mod_sn_free extends ModeleNumRefBatch * Return an example of result returned by getNextValue * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Return next value */ public function getNextValue($objsoc, $object) diff --git a/htdocs/core/modules/product_batch/mod_sn_standard.php b/htdocs/core/modules/product_batch/mod_sn_standard.php index d6c109cff81..ccd49d03b8f 100644 --- a/htdocs/core/modules/product_batch/mod_sn_standard.php +++ b/htdocs/core/modules/product_batch/mod_sn_standard.php @@ -112,7 +112,7 @@ class mod_sn_standard extends ModeleNumRefBatch * Return next free value * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Value if KO, <0 if KO */ public function getNextValue($objsoc, $object) diff --git a/htdocs/core/modules/product_batch/modules_product_batch.class.php b/htdocs/core/modules/product_batch/modules_product_batch.class.php index 42d4d052bfe..d596ffeb111 100644 --- a/htdocs/core/modules/product_batch/modules_product_batch.class.php +++ b/htdocs/core/modules/product_batch/modules_product_batch.class.php @@ -55,8 +55,6 @@ abstract class ModelePDFProductBatch extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'product_batch'; $list = array(); @@ -89,7 +87,7 @@ abstract class ModeleNumRefBatch /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -125,7 +123,7 @@ abstract class ModeleNumRefBatch * Returns next assigned value * * @param Societe $objsoc Object thirdparty - * @param Object $object Object we need next value for + * @param Productlot $object Object we need next value for * @return string Valeur */ public function getNextValue($objsoc, $object) diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php index 10b78673cf5..f08a93b4339 100644 --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } if (isModEnabled('facture')) { @@ -46,28 +46,30 @@ if (isModEnabled('facture')) { if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; } -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; } -if (!empty($conf->deplacement->enabled)) { +if (isModEnabled('deplacement')) { require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; } if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } - +if (isModEnabled('expedition')) { + require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; +} /** * Class to build documents using ODF templates generator @@ -82,9 +84,9 @@ class doc_generic_project_odt extends ModelePDFProjects /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -132,8 +134,8 @@ class doc_generic_project_odt extends ModelePDFProjects // Get source company $this->emetteur = $mysoc; - if (!$this->emetteur->pays_code) { - $this->emetteur->pays_code = substr($langs->defaultlang, -2); // Par defaut, si n'etait pas defini + if (!$this->emetteur->country_code) { + $this->emetteur->country_code = substr($langs->defaultlang, -2); // Par defaut, si n'etait pas defini } } @@ -466,7 +468,9 @@ class doc_generic_project_odt extends ModelePDFProjects $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } @@ -522,7 +526,7 @@ class doc_generic_project_odt extends ModelePDFProjects // Load translation files required by the page $outputlangs->loadLangs(array("main", "dict", "companies", "projects")); - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { // If $object is id instead of object if (!is_object($object)) { $id = $object; @@ -536,7 +540,7 @@ class doc_generic_project_odt extends ModelePDFProjects $object->fetch_thirdparty(); - $dir = $conf->projet->dir_output; + $dir = $conf->project->dir_output; $objectref = dol_sanitizeFileName($object->ref); if (!preg_match('/specimen/i', $objectref)) { $dir .= "/".$objectref; @@ -553,10 +557,10 @@ class doc_generic_project_odt extends ModelePDFProjects if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -565,20 +569,20 @@ class doc_generic_project_odt extends ModelePDFProjects if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; //print "conf->societe->dir_temp=".$conf->societe->dir_temp; - dol_mkdir($conf->projet->dir_temp); - if (!is_writable($conf->projet->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->projet->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + dol_mkdir($conf->project->dir_temp); + if (!is_writable($conf->project->dir_temp)) { + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->project->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } @@ -615,7 +619,7 @@ class doc_generic_project_odt extends ModelePDFProjects $odfHandler = new odf( $srctemplatepath, array( - 'PATH_TO_TMP' => $conf->projet->dir_temp, + 'PATH_TO_TMP' => $conf->project->dir_temp, 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'DELIMITER_LEFT' => '{', 'DELIMITER_RIGHT' => '}' @@ -826,7 +830,7 @@ class doc_generic_project_odt extends ModelePDFProjects // Replace tags of project files $listtasksfiles = $listlines->__get('tasksfiles'); - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($object->ref).'/'.dol_sanitizeFileName($task->ref); + $upload_dir = $conf->project->dir_output.'/'.dol_sanitizeFileName($object->ref).'/'.dol_sanitizeFileName($task->ref); $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', 'name', SORT_ASC, 1); @@ -861,7 +865,7 @@ class doc_generic_project_odt extends ModelePDFProjects try { $listlines = $odfHandler->setSegment('projectfiles'); - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($object->ref); + $upload_dir = $conf->project->dir_output.'/'.dol_sanitizeFileName($object->ref); $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', 'name', SORT_ASC, 1); foreach ($filearray as $filedetail) { @@ -941,7 +945,7 @@ class doc_generic_project_odt extends ModelePDFProjects 'title' => "ListProposalsAssociatedProject", 'class' => 'Propal', 'table' => 'propal', - 'test' => $conf->propal->enabled && $user->rights->propale->lire + 'test' => $conf->propal->enabled && $user->rights->propal->lire ), 'order' => array( 'title' => "ListOrdersAssociatedProject", @@ -971,13 +975,13 @@ class doc_generic_project_odt extends ModelePDFProjects 'title' => "ListSupplierOrdersAssociatedProject", 'table' => 'commande_fournisseur', 'class' => 'CommandeFournisseur', - 'test' => (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->commande->lire) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire) + 'test' => (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->commande->lire) || (isModEnabled("supplier_order") && $user->rights->supplier_order->lire) ), 'invoice_supplier' => array( 'title' => "ListSupplierInvoicesAssociatedProject", 'table' => 'facture_fourn', 'class' => 'FactureFournisseur', - 'test' => (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire) || (!empty($conf->supplier_invoice->enabled) && $user->rights->supplier_invoice->lire) + 'test' => (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire) || (isModEnabled("supplier_invoice") && $user->rights->supplier_invoice->lire) ), 'contract' => array( 'title' => "ListContractAssociatedProject", diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php index cf9e84a3deb..b5c3c6d215b 100644 --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php @@ -65,9 +65,9 @@ class pdf_baleine extends ModelePDFProjects /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -139,10 +139,10 @@ class pdf_baleine extends ModelePDFProjects $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -195,11 +195,11 @@ class pdf_baleine extends ModelePDFProjects // Load traductions files required by page $outputlangs->loadLangs(array("main", "dict", "companies", "projects")); - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { //$nblines = count($object->lines); // This is set later with array of tasks $objectref = dol_sanitizeFileName($object->ref); - $dir = $conf->projet->dir_output; + $dir = $conf->project->dir_output; if (!preg_match('/specimen/i', $objectref)) { $dir .= "/".$objectref; } @@ -266,7 +266,7 @@ class pdf_baleine extends ModelePDFProjects $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Project")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -284,7 +284,7 @@ class pdf_baleine extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $tab_top = 50; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -360,7 +360,7 @@ class pdf_baleine extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -385,7 +385,7 @@ class pdf_baleine extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -467,9 +467,12 @@ class pdf_baleine extends ModelePDFProjects $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -484,7 +487,7 @@ class pdf_baleine extends ModelePDFProjects $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -692,8 +695,7 @@ class pdf_baleine extends ModelePDFProjects */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PROJECT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index abd05f63651..7cf7c96aef2 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -81,9 +81,9 @@ class pdf_beluga extends ModelePDFProjects /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -130,7 +130,7 @@ class pdf_beluga extends ModelePDFProjects * Page orientation * @var string 'P' or 'Portait' (default), 'L' or 'Landscape' */ - private $orientation = ''; + private $orientation; /** * Issuer @@ -175,10 +175,10 @@ class pdf_beluga extends ModelePDFProjects $this->page_hauteur = $formatarray['height']; } $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -242,11 +242,11 @@ class pdf_beluga extends ModelePDFProjects // Load traductions files required by page $outputlangs->loadLangs(array("main", "dict", "companies", "projects")); - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { //$nblines = count($object->lines); // This is set later with array of tasks $objectref = dol_sanitizeFileName($object->ref); - $dir = $conf->projet->dir_output; + $dir = $conf->project->dir_output; if (!preg_match('/specimen/i', $objectref)) { $dir .= "/".$objectref; } @@ -315,7 +315,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Project")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -333,7 +333,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $tab_top = 50; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -374,7 +374,7 @@ class pdf_beluga extends ModelePDFProjects 'class'=>'Propal', 'table'=>'propal', 'datefieldname'=>'datep', - 'test'=>$conf->propal->enabled && $user->rights->propale->lire, + 'test'=>$conf->propal->enabled && $user->rights->propal->lire, 'lang'=>'propal'), 'order'=>array( 'name'=>"CustomersOrders", @@ -407,7 +407,7 @@ class pdf_beluga extends ModelePDFProjects 'class'=>'CommandeFournisseur', 'table'=>'commande_fournisseur', 'datefieldname'=>'date_commande', - 'test'=>(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->commande->lire) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire), + 'test'=>(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->commande->lire) || (isModEnabled("supplier_order") && $user->rights->supplier_order->lire), 'lang'=>'orders'), 'invoice_supplier'=>array( 'name'=>"BillsSuppliers", @@ -416,7 +416,7 @@ class pdf_beluga extends ModelePDFProjects 'margin'=>'minus', 'table'=>'facture_fourn', 'datefieldname'=>'datef', - 'test'=>(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire) || (!empty($conf->supplier_invoice->enabled) && $user->rights->supplier_invoice->lire), + 'test'=>(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire) || (isModEnabled("supplier_invoice") && $user->rights->supplier_invoice->lire), 'lang'=>'bills'), 'contract'=>array( 'name'=>"Contracts", @@ -587,7 +587,7 @@ class pdf_beluga extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -612,7 +612,7 @@ class pdf_beluga extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -740,9 +740,12 @@ class pdf_beluga extends ModelePDFProjects $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation($this->orientation, 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } } @@ -892,8 +895,7 @@ class pdf_beluga extends ModelePDFProjects */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PROJECT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/project/doc/pdf_timespent.modules.php b/htdocs/core/modules/project/doc/pdf_timespent.modules.php index cb7430c3011..7af10dd170d 100644 --- a/htdocs/core/modules/project/doc/pdf_timespent.modules.php +++ b/htdocs/core/modules/project/doc/pdf_timespent.modules.php @@ -64,9 +64,9 @@ class pdf_timespent extends ModelePDFProjects /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -138,10 +138,10 @@ class pdf_timespent extends ModelePDFProjects $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -195,11 +195,11 @@ class pdf_timespent extends ModelePDFProjects // Load traductions files required by page $outputlangs->loadLangs(array("main", "dict", "companies", "projects")); - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { //$nblines = count($object->lines); // This is set later with array of tasks $objectref = dol_sanitizeFileName($object->ref); - $dir = $conf->projet->dir_output; + $dir = $conf->project->dir_output; if (!preg_match('/specimen/i', $objectref)) { $dir .= "/".$objectref; } @@ -266,7 +266,7 @@ class pdf_timespent extends ModelePDFProjects $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Project")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -284,7 +284,7 @@ class pdf_timespent extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $tab_top = 50; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -364,7 +364,7 @@ class pdf_timespent extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -389,7 +389,7 @@ class pdf_timespent extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -470,9 +470,12 @@ class pdf_timespent extends ModelePDFProjects $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -487,7 +490,7 @@ class pdf_timespent extends ModelePDFProjects $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -688,8 +691,7 @@ class pdf_timespent extends ModelePDFProjects */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PROJECT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/project/mod_project_universal.php b/htdocs/core/modules/project/mod_project_universal.php index 47fd83842ed..889164fbfe5 100644 --- a/htdocs/core/modules/project/mod_project_universal.php +++ b/htdocs/core/modules/project/mod_project_universal.php @@ -30,6 +30,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/project/modules_project.php'; */ class mod_project_universal extends ModeleNumRefProjects { + /** + * @var DoliDB $db + */ + public $db; + /** * Dolibarr version of the loaded document * @var string @@ -57,7 +62,7 @@ class mod_project_universal extends ModeleNumRefProjects /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/project/modules_project.php b/htdocs/core/modules/project/modules_project.php index dc3f19d72fd..9f8e0e977c7 100644 --- a/htdocs/core/modules/project/modules_project.php +++ b/htdocs/core/modules/project/modules_project.php @@ -103,8 +103,6 @@ abstract class ModelePDFProjects extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'project'; $list = array(); @@ -127,6 +125,11 @@ abstract class ModeleNumRefProjects */ public $error = ''; + /** + * @var string $version + */ + public $version; + /** * Return if a module can be used or not * @@ -138,9 +141,9 @@ abstract class ModeleNumRefProjects } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php index 3702b1c8452..a7f3eab4a30 100644 --- a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php +++ b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } if (isModEnabled('facture')) { @@ -47,22 +47,22 @@ if (isModEnabled('facture')) { if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; } -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; } -if (!empty($conf->deplacement->enabled)) { +if (isModEnabled('deplacement')) { require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; } if (isModEnabled('agenda')) { @@ -83,9 +83,9 @@ class doc_generic_task_odt extends ModelePDFTask /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -133,8 +133,8 @@ class doc_generic_task_odt extends ModelePDFTask // Get source company $this->emetteur = $mysoc; - if (!$this->emetteur->pays_code) { - $this->emetteur->pays_code = substr($langs->defaultlang, -2); // By default, if was not defined + if (!$this->emetteur->country_code) { + $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default, if was not defined } } @@ -433,7 +433,9 @@ class doc_generic_task_odt extends ModelePDFTask $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } @@ -481,7 +483,7 @@ class doc_generic_task_odt extends ModelePDFTask // Load translation files required by the page $outputlangs->loadLangs(array("main", "dict", "companies", "projects")); - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { // If $object is id instead of object if (!is_object($object)) { $id = $object; @@ -496,7 +498,7 @@ class doc_generic_task_odt extends ModelePDFTask $project->fetch($object->fk_project); $project->fetch_thirdparty(); - $dir = $conf->projet->dir_output."/".$project->ref."/"; + $dir = $conf->project->dir_output."/".$project->ref."/"; $objectref = dol_sanitizeFileName($object->ref); if (!preg_match('/specimen/i', $objectref)) { $dir .= "/".$objectref; @@ -517,18 +519,18 @@ class doc_generic_task_odt extends ModelePDFTask $newfiletmp = preg_replace('/\.(ods|odt)/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; - $file = $dir.'/'.$newfiletmp.'.odt'; + $file = $dir . '/' . $newfiletmp . '.odt'; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; //print "conf->societe->dir_temp=".$conf->societe->dir_temp; - dol_mkdir($conf->projet->dir_temp); - if (!is_writable($conf->projet->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->projet->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + dol_mkdir($conf->project->dir_temp); + if (!is_writable($conf->project->dir_temp)) { + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->project->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } @@ -550,7 +552,7 @@ class doc_generic_task_odt extends ModelePDFTask $odfHandler = new odf( $srctemplatepath, array( - 'PATH_TO_TMP' => $conf->projet->dir_temp, + 'PATH_TO_TMP' => $conf->project->dir_temp, 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'DELIMITER_LEFT' => '{', 'DELIMITER_RIGHT' => '}' @@ -708,7 +710,7 @@ class doc_generic_task_odt extends ModelePDFTask // Replace tags of project files $listtasksfiles = $odfHandler->setSegment('tasksfiles'); - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($project->ref).'/'.dol_sanitizeFileName($object->ref); + $upload_dir = $conf->project->dir_output.'/'.dol_sanitizeFileName($project->ref).'/'.dol_sanitizeFileName($object->ref); $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', 'name', SORT_ASC, 1); @@ -741,7 +743,7 @@ class doc_generic_task_odt extends ModelePDFTask try { $listlines = $odfHandler->setSegment('projectfiles'); - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($object->ref); + $upload_dir = $conf->project->dir_output.'/'.dol_sanitizeFileName($object->ref); $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', 'name', SORT_ASC, 1); diff --git a/htdocs/core/modules/project/task/mod_task_universal.php b/htdocs/core/modules/project/task/mod_task_universal.php index 6de02dcaf99..55c1a3ff89d 100644 --- a/htdocs/core/modules/project/task/mod_task_universal.php +++ b/htdocs/core/modules/project/task/mod_task_universal.php @@ -57,7 +57,7 @@ class mod_task_universal extends ModeleNumRefTask /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/project/task/modules_task.php b/htdocs/core/modules/project/task/modules_task.php index 09ba33332f1..97e31d5d24c 100644 --- a/htdocs/core/modules/project/task/modules_task.php +++ b/htdocs/core/modules/project/task/modules_task.php @@ -49,8 +49,6 @@ abstract class ModelePDFTask extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'project_task'; $list = array(); @@ -84,9 +82,9 @@ abstract class ModeleNumRefTask } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php index 39ffd92ac5e..ac95786cdd2 100644 --- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php +++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php @@ -46,9 +46,9 @@ class doc_generic_proposal_odt extends ModelePDFPropales /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * @var string Dolibarr version of the loaded document @@ -71,6 +71,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales $this->db = $db; $this->name = "ODT templates"; $this->description = $langs->trans("DocumentModelOdt"); + $this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template $this->scandir = 'PROPALE_ADDON_PDF_ODT_PATH'; // Name of constant that is used to save list of directories to scan // Page size for A4 format @@ -122,7 +123,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales $texte .= ''; $texte .= ''; $texte .= ''; - if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) { + if (getDolGlobalInt("MAIN_PROPAL_CHOOSE_ODT_DOCUMENT") > 0) { $texte .= ''; $texte .= ''; $texte .= ''; @@ -186,24 +187,24 @@ class doc_generic_proposal_odt extends ModelePDFPropales $texte .= ''; // Set default template for different status of proposal - if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) { + if (getDolGlobalInt("MAIN_PROPAL_CHOOSE_ODT_DOCUMENT") > 0) { // Model for creation $list = ModelePDFPropales::liste_modeles($this->db); - $texte .= ''; + $texte .= '
    '; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= '"; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= '"; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= '"; @@ -211,7 +212,13 @@ class doc_generic_proposal_odt extends ModelePDFPropales } } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -300,11 +307,11 @@ class doc_generic_proposal_odt extends ModelePDFPropales if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -313,11 +320,11 @@ class doc_generic_proposal_odt extends ModelePDFPropales if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -325,8 +332,8 @@ class doc_generic_proposal_odt extends ModelePDFPropales dol_mkdir($conf->propal->multidir_temp[$object->entity]); if (!is_writable($conf->propal->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->propal->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->propal->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 511677d742b..eac6e0261ee 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -70,9 +70,9 @@ class pdf_azur extends ModelePDFPropales /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -145,10 +145,10 @@ class pdf_azur extends ModelePDFPropales $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -169,7 +169,7 @@ class pdf_azur extends ModelePDFPropales // Define position of columns $this->posxdesc = $this->marge_gauche + 1; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->posxtva = 101; $this->posxup = 118; $this->posxqty = 135; @@ -243,8 +243,8 @@ class pdf_azur extends ModelePDFPropales } // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->PROPALE_DRAFT_WATERMARK))) { - $this->watermark = $conf->global->PROPALE_DRAFT_WATERMARK; + if ($object->statut == $object::STATUS_DRAFT && getDolGlobalString('PROPALE_DRAFT_WATERMARK')) { + $this->watermark = getDolGlobalString('PROPALE_DRAFT_WATERMARK'); } $nblines = count($object->lines); @@ -262,7 +262,7 @@ class pdf_azur extends ModelePDFPropales $objphoto->fetch($object->lines[$i]->fk_product); //var_dump($objphoto->ref);exit; - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -280,7 +280,7 @@ class pdf_azur extends ModelePDFPropales $dir = $conf->product->dir_output.'/'.$midir; //Check repertory of the current product } foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -373,7 +373,7 @@ class pdf_azur extends ModelePDFPropales $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfCommercialProposalTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -419,11 +419,11 @@ class pdf_azur extends ModelePDFPropales $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -522,7 +522,7 @@ class pdf_azur extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -566,7 +566,7 @@ class pdf_azur extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -620,7 +620,7 @@ class pdf_azur extends ModelePDFPropales $pdf->MultiCell($this->posxunit - $this->posxqty - 0.8, 4, $qty, 0, 'R'); // Enough for 6 chars // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); $pdf->SetXY($this->posxunit, $curY); $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 4, $unit, 0, 'L'); @@ -640,7 +640,7 @@ class pdf_azur extends ModelePDFPropales $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 3, $total_excl_tax, 0, 'R', 0); // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -723,9 +723,12 @@ class pdf_azur extends ModelePDFPropales $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -740,7 +743,7 @@ class pdf_azur extends ModelePDFPropales $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -790,7 +793,7 @@ class pdf_azur extends ModelePDFPropales // Find the desire PDF $filetomerge = new Propalmergepdfproduct($this->db); - if ($conf->global->MAIN_MULTILANGS) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $filetomerge->fetch_by_product($line->fk_product, $outputlangs->defaultlang); } else { $filetomerge->fetch_by_product($line->fk_product); @@ -811,16 +814,16 @@ class pdf_azur extends ModelePDFPropales if (count($filetomerge->lines) > 0) { foreach ($filetomerge->lines as $linefile) { if (!empty($linefile->id) && !empty($linefile->file_name)) { - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { - if (!empty($conf->product->enabled)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { + if (isModEnabled("product")) { $filetomerge_dir = $conf->product->multidir_output[$entity_product_file].'/'.get_exdir($product->id, 2, 0, 0, $product, 'product').$product->id."/photos"; - } elseif (!empty($conf->service->enabled)) { + } elseif (isModEnabled("service")) { $filetomerge_dir = $conf->service->multidir_output[$entity_product_file].'/'.get_exdir($product->id, 2, 0, 0, $product, 'product').$product->id."/photos"; } } else { - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { $filetomerge_dir = $conf->product->multidir_output[$entity_product_file].'/'.get_exdir(0, 0, 0, 0, $product, 'product'); - } elseif (!empty($conf->service->enabled)) { + } elseif (isModEnabled("service")) { $filetomerge_dir = $conf->service->multidir_output[$entity_product_file].'/'.get_exdir(0, 0, 0, 0, $product, 'product'); } } @@ -904,7 +907,7 @@ class pdf_azur extends ModelePDFPropales * @param Propal $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object - * @return void + * @return int */ protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { @@ -958,8 +961,33 @@ class pdf_azur extends ModelePDFPropales $posy = $pdf->GetY() + 1; } + // Show delivery mode + if (empty($conf->global->PROPOSAL_PDF_HIDE_DELIVERYMODE) && $object->shipping_method_id > 0) { + $outputlangs->load("sendings"); + + $shipping_method_id = $object->shipping_method_id; + if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD) && !empty($this->emetteur->shipping_method_id)) { + $shipping_method_id = $this->emetteur->shipping_method_id; + } + $shipping_method_code = dol_getIdFromCode($this->db, $shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + $shipping_method_label = dol_getIdFromCode($this->db, $shipping_method_id, 'c_shipment_mode', 'rowid', 'libelle'); + + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $titre = $outputlangs->transnoentities("SendingMethod").':'; + $pdf->MultiCell(43, 4, $titre, 0, 'L'); + + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $lib_condition_paiement = ($outputlangs->transnoentities("SendingMethod".strtoupper($shipping_method_code)) != "SendingMethod".strtoupper($shipping_method_code)) ? $outputlangs->trans("SendingMethod".strtoupper($shipping_method_code)) : $shipping_method_label; + $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); + + $posy = $pdf->GetY() + 1; + } + // Show payments conditions - if (empty($conf->global->PROPOSAL_PDF_HIDE_PAYMENTTERM) && ($object->cond_reglement_code || $object->cond_reglement)) { + if (empty($conf->global->PROPOSAL_PDF_HIDE_PAYMENTTERM) && $object->cond_reglement_code) { $pdf->SetFont('', 'B', $default_font_size - 2); $pdf->SetXY($this->marge_gauche, $posy); $titre = $outputlangs->transnoentities("PaymentConditions").':'; @@ -978,22 +1006,6 @@ class pdf_azur extends ModelePDFPropales } if (empty($conf->global->PROPOSAL_PDF_HIDE_PAYMENTMODE)) { - // Check a payment mode is defined - /* Not required on a proposal - if (empty($object->mode_reglement_code) - && ! $conf->global->FACTURE_CHQ_NUMBER - && ! $conf->global->FACTURE_RIB_NUMBER) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->MultiCell(90, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0); - $pdf->SetTextColor(0,0,0); - - $posy=$pdf->GetY()+1; - } - */ - // Show payment mode if ($object->mode_reglement_code && $object->mode_reglement_code != 'CHQ' @@ -1050,7 +1062,7 @@ class pdf_azur extends ModelePDFPropales // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if (!empty($object->fk_account) || !empty($object->fk_bank) || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if (!empty($object->fk_account) || !empty($object->fk_bank) || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = (empty($object->fk_account) ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if (!empty($object->fk_bank)) { $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank @@ -1107,17 +1119,17 @@ class pdf_azur extends ModelePDFPropales // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { @@ -1126,7 +1138,7 @@ class pdf_azur extends ModelePDFPropales // Nothing to do } else { //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1156,7 +1168,7 @@ class pdf_azur extends ModelePDFPropales } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1218,7 +1230,7 @@ class pdf_azur extends ModelePDFPropales } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1248,7 +1260,7 @@ class pdf_azur extends ModelePDFPropales } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1296,7 +1308,7 @@ class pdf_azur extends ModelePDFPropales /* $resteapayer = $object->total_ttc - $deja_regle; - if (! empty($object->paye)) $resteapayer=0; + if (!empty($object->paye)) $resteapayer=0; */ if ($deja_regle > 0) { @@ -1425,7 +1437,7 @@ class pdf_azur extends ModelePDFPropales $pdf->MultiCell($this->posxunit - $this->posxqty - 1, 2, $outputlangs->transnoentities("Qty"), '', 'C'); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxunit - 1, $tab_top + 1); @@ -1489,13 +1501,13 @@ class pdf_azur extends ModelePDFPropales $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1728,8 +1740,7 @@ class pdf_azur extends ModelePDFPropales */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } @@ -1758,7 +1769,7 @@ class pdf_azur extends ModelePDFPropales $index = 0; // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($posx, $tab_top + 0); + $pdf->SetXY($posx, $tab_top); $pdf->SetFont('', '', $default_font_size - 2); $pdf->MultiCell($largcol, $tab_hl, $outputlangs->transnoentities("ProposalCustomerSignature"), 0, 'L', 1); diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 47af81d8aa2..88b56eb8fa6 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -68,9 +68,9 @@ class pdf_cyan extends ModelePDFPropales /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -148,10 +148,10 @@ class pdf_cyan extends ModelePDFPropales $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -217,8 +217,8 @@ class pdf_cyan extends ModelePDFPropales $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "propal")); // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->PROPALE_DRAFT_WATERMARK))) { - $this->watermark = $conf->global->PROPALE_DRAFT_WATERMARK; + if ($object->statut == $object::STATUS_DRAFT && getDolGlobalString('PROPALE_DRAFT_WATERMARK')) { + $this->watermark = getDolGlobalString('PROPALE_DRAFT_WATERMARK'); } global $outputlangsbis; @@ -249,7 +249,7 @@ class pdf_cyan extends ModelePDFPropales $objphoto->fetch($object->lines[$i]->fk_product); //var_dump($objphoto->ref);exit; - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -267,7 +267,7 @@ class pdf_cyan extends ModelePDFPropales } foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -360,7 +360,7 @@ class pdf_cyan extends ModelePDFPropales $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfCommercialProposalTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -394,12 +394,12 @@ class pdf_cyan extends ModelePDFPropales $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -481,7 +481,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -539,7 +539,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -561,7 +561,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -764,7 +764,7 @@ class pdf_cyan extends ModelePDFPropales // Collection of totals by value of vat in $this->tva["rate"] = total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -847,9 +847,12 @@ class pdf_cyan extends ModelePDFPropales $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { @@ -865,7 +868,7 @@ class pdf_cyan extends ModelePDFPropales $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -915,7 +918,7 @@ class pdf_cyan extends ModelePDFPropales // Find the desire PDF $filetomerge = new Propalmergepdfproduct($this->db); - if ($conf->global->MAIN_MULTILANGS) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $filetomerge->fetch_by_product($line->fk_product, $outputlangs->defaultlang); } else { $filetomerge->fetch_by_product($line->fk_product); @@ -936,16 +939,16 @@ class pdf_cyan extends ModelePDFPropales if (count($filetomerge->lines) > 0) { foreach ($filetomerge->lines as $linefile) { if (!empty($linefile->id) && !empty($linefile->file_name)) { - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { - if (!empty($conf->product->enabled)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { + if (isModEnabled("product")) { $filetomerge_dir = $conf->product->multidir_output[$entity_product_file].'/'.get_exdir($product->id, 2, 0, 0, $product, 'product').$product->id."/photos"; - } elseif (!empty($conf->service->enabled)) { + } elseif (isModEnabled("service")) { $filetomerge_dir = $conf->service->multidir_output[$entity_product_file].'/'.get_exdir($product->id, 2, 0, 0, $product, 'product').$product->id."/photos"; } } else { - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { $filetomerge_dir = $conf->product->multidir_output[$entity_product_file].'/'.get_exdir(0, 0, 0, 0, $product, 'product'); - } elseif (!empty($conf->service->enabled)) { + } elseif (isModEnabled("service")) { $filetomerge_dir = $conf->service->multidir_output[$entity_product_file].'/'.get_exdir(0, 0, 0, 0, $product, 'product'); } } @@ -1077,8 +1080,33 @@ class pdf_cyan extends ModelePDFPropales $posy = $pdf->GetY() + 1; } + // Show delivery mode + if (empty($conf->global->PROPOSAL_PDF_HIDE_DELIVERYMODE) && $object->shipping_method_id > 0) { + $outputlangs->load("sendings"); + + $shipping_method_id = $object->shipping_method_id; + if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD) && !empty($this->emetteur->shipping_method_id)) { + $shipping_method_id = $this->emetteur->shipping_method_id; + } + $shipping_method_code = dol_getIdFromCode($this->db, $shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + $shipping_method_label = dol_getIdFromCode($this->db, $shipping_method_id, 'c_shipment_mode', 'rowid', 'libelle'); + + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $titre = $outputlangs->transnoentities("SendingMethod").':'; + $pdf->MultiCell(43, 4, $titre, 0, 'L'); + + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $lib_condition_paiement = ($outputlangs->transnoentities("SendingMethod".strtoupper($shipping_method_code)) != "SendingMethod".strtoupper($shipping_method_code)) ? $outputlangs->trans("SendingMethod".strtoupper($shipping_method_code)) : $shipping_method_label; + $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); + + $posy = $pdf->GetY() + 1; + } + // Show payments conditions - if (empty($conf->global->PROPOSAL_PDF_HIDE_PAYMENTTERM) && ($object->cond_reglement_code || $object->cond_reglement)) { + if (empty($conf->global->PROPOSAL_PDF_HIDE_PAYMENTTERM) && $object->cond_reglement_code) { $pdf->SetFont('', 'B', $default_font_size - 2); $pdf->SetXY($this->marge_gauche, $posy); $titre = $outputlangs->transnoentities("PaymentConditions").':'; @@ -1097,22 +1125,6 @@ class pdf_cyan extends ModelePDFPropales } if (empty($conf->global->PROPOSAL_PDF_HIDE_PAYMENTMODE)) { - // Check a payment mode is defined - /* Not required on a proposal - if (empty($object->mode_reglement_code) - && ! $conf->global->FACTURE_CHQ_NUMBER - && ! $conf->global->FACTURE_RIB_NUMBER) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->MultiCell(90, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0); - $pdf->SetTextColor(0,0,0); - - $posy=$pdf->GetY()+1; - } - */ - // Show payment mode if ($object->mode_reglement_code && $object->mode_reglement_code != 'CHQ' @@ -1169,7 +1181,7 @@ class pdf_cyan extends ModelePDFPropales // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if ($object->fk_account > 0 || $object->fk_bank > 0 || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if ($object->fk_account > 0 || $object->fk_bank > 0 || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = ($object->fk_account <= 0 ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if ($object->fk_bank > 0) { $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank @@ -1232,17 +1244,17 @@ class pdf_cyan extends ModelePDFPropales // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("TotalHT") : ''), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { @@ -1251,7 +1263,7 @@ class pdf_cyan extends ModelePDFPropales // Nothing to do } else { //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1282,7 +1294,7 @@ class pdf_cyan extends ModelePDFPropales } //} //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('1', '3', '5'))) { @@ -1339,7 +1351,7 @@ class pdf_cyan extends ModelePDFPropales } //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ foreach ($this->localtax1 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1370,7 +1382,7 @@ class pdf_cyan extends ModelePDFPropales } //} //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ foreach ($this->localtax2 as $localtax_type => $localtax_rate) { if (in_array((string) $localtax_type, array('2', '4', '6'))) { @@ -1420,7 +1432,7 @@ class pdf_cyan extends ModelePDFPropales $resteapayer = 0; /* $resteapayer = $object->total_ttc - $deja_regle; - if (! empty($object->paye)) $resteapayer=0; + if (!empty($object->paye)) $resteapayer=0; */ if ($deja_regle > 0) { @@ -1562,13 +1574,13 @@ class pdf_cyan extends ModelePDFPropales $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1816,8 +1828,7 @@ class pdf_cyan extends ModelePDFPropales */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } @@ -1843,7 +1854,7 @@ class pdf_cyan extends ModelePDFPropales $index = 0; // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($posx, $tab_top + 0); + $pdf->SetXY($posx, $tab_top); $pdf->SetFont('', '', $default_font_size - 2); $pdf->MultiCell($largcol, $tab_hl, $outputlangs->transnoentities("ProposalCustomerSignature"), 0, 'L', 1); @@ -1937,6 +1948,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE) && !empty($this->atleastonephoto)) { $this->cols['photo']['status'] = true; + $this->cols['photo']['border-left'] = true; } @@ -1998,7 +2010,7 @@ class pdf_cyan extends ModelePDFPropales ), 'border-left' => true, // add left line separator ); - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->cols['unit']['status'] = true; } diff --git a/htdocs/core/modules/propale/mod_propale_marbre.php b/htdocs/core/modules/propale/mod_propale_marbre.php index 28d66dfc40a..54dd0096b2e 100644 --- a/htdocs/core/modules/propale/mod_propale_marbre.php +++ b/htdocs/core/modules/propale/mod_propale_marbre.php @@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/propale/modules_propale.php'; /** - * Class to manage customer order numbering rules Marbre + * Class to manage business proposition rules Marbre */ class mod_propale_marbre extends ModeleNumRefPropales { diff --git a/htdocs/core/modules/propale/mod_propale_saphir.php b/htdocs/core/modules/propale/mod_propale_saphir.php index af7579fb142..74395dcc599 100644 --- a/htdocs/core/modules/propale/mod_propale_saphir.php +++ b/htdocs/core/modules/propale/mod_propale_saphir.php @@ -60,7 +60,7 @@ class mod_propale_saphir extends ModeleNumRefPropales /** * Return description of module * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -85,7 +85,8 @@ class mod_propale_saphir extends ModeleNumRefPropales // Parametrage du prefix $texte .= '
    '; - $texte .= ''; + $mask = empty($conf->global->PROPALE_SAPHIR_MASK) ? '' : $conf->global->PROPALE_SAPHIR_MASK; + $texte .= ''; $texte .= ''; @@ -134,7 +135,7 @@ class mod_propale_saphir extends ModeleNumRefPropales require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // On defini critere recherche compteur - $mask = $conf->global->PROPALE_SAPHIR_MASK; + $mask = empty($conf->global->PROPALE_SAPHIR_MASK) ? '' : $conf->global->PROPALE_SAPHIR_MASK; if (!$mask) { $this->error = 'NotConfigured'; @@ -144,7 +145,7 @@ class mod_propale_saphir extends ModeleNumRefPropales // Get entities $entity = getEntity('proposalnumber', 1, $propal); - $date = $propal->date; + $date = empty($propal->date) ? dol_now() : $propal->date; $numFinal = get_next_value($db, $mask, 'propal', 'ref', '', $objsoc, $date, 'next', false, null, $entity); diff --git a/htdocs/core/modules/propale/modules_propale.php b/htdocs/core/modules/propale/modules_propale.php index ee7df804c59..f69fd5e763e 100644 --- a/htdocs/core/modules/propale/modules_propale.php +++ b/htdocs/core/modules/propale/modules_propale.php @@ -53,8 +53,6 @@ abstract class ModelePDFPropales extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'propal'; $list = array(); @@ -67,7 +65,7 @@ abstract class ModelePDFPropales extends CommonDocGenerator /** - * Classe mere des modeles de numerotation des references de propales + * Parent class for numbering rules of proposals */ abstract class ModeleNumRefPropales { @@ -87,9 +85,9 @@ abstract class ModeleNumRefPropales } /** - * Renvoi la description par defaut du modele de numerotation + * Returns the default description of the numbering pattern * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/modules/rapport/pdf_paiement.class.php b/htdocs/core/modules/rapport/pdf_paiement.class.php index 215987054ce..5440c8e1201 100644 --- a/htdocs/core/modules/rapport/pdf_paiement.class.php +++ b/htdocs/core/modules/rapport/pdf_paiement.class.php @@ -54,10 +54,10 @@ class pdf_paiement $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->tab_top = 30; @@ -185,14 +185,14 @@ class pdf_paiement $sql .= ", c.code as paiement_code, p.num_paiement as num_payment"; $sql .= ", p.amount as paiement_amount, f.total_ttc as facture_amount"; $sql .= ", pf.amount as pf_amount"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql .= ", ba.ref as bankaccount"; } $sql .= ", p.rowid as prowid"; $sql .= " FROM ".MAIN_DB_PREFIX."paiement as p LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as c ON p.fk_paiement = c.id"; $sql .= ", ".MAIN_DB_PREFIX."facture as f,"; $sql .= " ".MAIN_DB_PREFIX."paiement_facture as pf,"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql .= " ".MAIN_DB_PREFIX."bank as b, ".MAIN_DB_PREFIX."bank_account as ba,"; } $sql .= " ".MAIN_DB_PREFIX."societe as s"; @@ -200,7 +200,7 @@ class pdf_paiement $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } $sql .= " WHERE f.fk_soc = s.rowid AND pf.fk_facture = f.rowid AND pf.fk_paiement = p.rowid"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql .= " AND p.fk_bank = b.rowid AND b.fk_account = ba.rowid "; } $sql .= " AND f.entity IN (".getEntity('invoice').")"; @@ -223,14 +223,14 @@ class pdf_paiement $sql .= ", c.code as paiement_code, p.num_paiement as num_payment"; $sql .= ", p.amount as paiement_amount, f.total_ttc as facture_amount"; $sql .= ", pf.amount as pf_amount"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql .= ", ba.ref as bankaccount"; } $sql .= ", p.rowid as prowid"; $sql .= " FROM ".MAIN_DB_PREFIX."paiementfourn as p LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as c ON p.fk_paiement = c.id"; $sql .= ", ".MAIN_DB_PREFIX."facture_fourn as f,"; $sql .= " ".MAIN_DB_PREFIX."paiementfourn_facturefourn as pf,"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql .= " ".MAIN_DB_PREFIX."bank as b, ".MAIN_DB_PREFIX."bank_account as ba,"; } $sql .= " ".MAIN_DB_PREFIX."societe as s"; @@ -238,7 +238,7 @@ class pdf_paiement $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } $sql .= " WHERE f.fk_soc = s.rowid AND pf.fk_facturefourn = f.rowid AND pf.fk_paiementfourn = p.rowid"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $sql .= " AND p.fk_bank = b.rowid AND b.fk_account = ba.rowid "; } $sql .= " AND f.entity IN (".getEntity('invoice').")"; @@ -303,7 +303,7 @@ class pdf_paiement $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); //$pdf->SetKeyWords(); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } diff --git a/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php b/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php index 3e48aaf18bc..84d95a5036c 100644 --- a/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php +++ b/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php @@ -43,9 +43,9 @@ class doc_generic_reception_odt extends ModelePdfReception /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * @var string Dolibarr version of the loaded document @@ -168,12 +168,20 @@ class doc_generic_reception_odt extends ModelePdfReception $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -262,10 +270,10 @@ class doc_generic_reception_odt extends ModelePdfReception if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -274,11 +282,11 @@ class doc_generic_reception_odt extends ModelePdfReception if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -286,8 +294,8 @@ class doc_generic_reception_odt extends ModelePdfReception dol_mkdir($conf->reception->dir_temp); if (!is_writable($conf->reception->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->reception->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->reception->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php index 7d234e6bd95..127cc790e0c 100644 --- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php @@ -57,10 +57,10 @@ class pdf_squille extends ModelePdfReception $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_draft_watermark = 1; // Support add of a watermark on drafts @@ -152,7 +152,7 @@ class pdf_squille extends ModelePdfReception $objphoto = new Product($this->db); $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($object->lines[$i]->fk_product, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -163,7 +163,7 @@ class pdf_squille extends ModelePdfReception $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; @@ -251,7 +251,7 @@ class pdf_squille extends ModelePdfReception $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Reception")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -269,13 +269,13 @@ class pdf_squille extends ModelePdfReception $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; // Incoterm $height_incoterms = 0; - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -353,6 +353,8 @@ class pdf_squille extends ModelePdfReception $nexY = $tab_top + 7; $fk_commandefourndet = 0; $totalOrdered = 0; + $totalAmount = 0; + // Loop on each lines for ($i = 0; $i < $nblines; $i++) { $curY = $nexY; @@ -379,7 +381,7 @@ class pdf_squille extends ModelePdfReception if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -437,7 +439,7 @@ class pdf_squille extends ModelePdfReception if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -479,19 +481,21 @@ class pdf_squille extends ModelePdfReception $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut + // Description $pdf->SetXY($this->posxweightvol, $curY); $weighttxt = ''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->weight) { - $weighttxt = round($object->lines[$i]->product->weight * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "weight", $object->lines[$i]->product->weight_units); + $weighttxt = round($object->lines[$i]->product->weight * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "weight", $object->lines[$i]->product->weight_units, 1); } $voltxt = ''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->volume) { - $voltxt = round($object->lines[$i]->product->volume * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "volume", $object->lines[$i]->product->volume_units ? $object->lines[$i]->product->volume_units : 0); + $voltxt = round($object->lines[$i]->product->volume * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "volume", $object->lines[$i]->product->volume_units ? $object->lines[$i]->product->volume_units : 0, 1); } $pdf->writeHTMLCell($this->posxqtyordered - $this->posxweightvol + 2, 3, $this->posxweightvol - 1, $curY, $weighttxt.(($weighttxt && $voltxt) ? '
    ' : '').$voltxt, 0, 0, false, true, 'C'); //$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 3, $weighttxt.(($weighttxt && $voltxt)?'
    ':'').$voltxt,'','C'); + // Qty ordered if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED)) { $pdf->SetXY($this->posxqtyordered, $curY); if ($object->lines[$i]->fk_commandefourndet != $fk_commandefourndet) { @@ -501,15 +505,20 @@ class pdf_squille extends ModelePdfReception $fk_commandefourndet = $object->lines[$i]->fk_commandefourndet; } + // Qty received $pdf->SetXY($this->posxqtytoship, $curY); $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 3, $object->lines[$i]->qty, '', 'C'); + // Amount if (!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) { $pdf->SetXY($this->posxpuht, $curY); $pdf->MultiCell(($this->posxtotalht - $this->posxpuht - 1), 3, price($object->lines[$i]->subprice, 0, $outputlangs), '', 'R'); + $amountreceived = price2num($object->lines[$i]->subprice * $object->lines[$i]->qty, 'MT'); $pdf->SetXY($this->posxtotalht, $curY); - $pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxtotalht), 3, price($object->lines[$i]->total_ht, 0, $outputlangs), '', 'R'); + $pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxtotalht), 3, price($amountreceived, 0, $outputlangs), '', 'R'); + + $totalAmount += $amountreceived; } $nexY += 3; @@ -538,6 +547,9 @@ class pdf_squille extends ModelePdfReception $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -565,7 +577,7 @@ class pdf_squille extends ModelePdfReception } // Affiche zone totaux - $posy = $this->_tableau_tot($pdf, $object, 0, $bottomlasttab, $outputlangs, $totalOrdered); + $posy = $this->_tableau_tot($pdf, $object, 0, $bottomlasttab, $outputlangs, $totalOrdered, $totalAmount); // Pied de page $this->_pagefoot($pdf, $object, $outputlangs); @@ -613,9 +625,10 @@ class pdf_squille extends ModelePdfReception * @param int $posy Position depart * @param Translate $outputlangs Objet langs * @param int $totalOrdered Total ordered + * @param int $totalAmount Total amount * @return int Position pour suite */ - protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs, $totalOrdered) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs, $totalOrdered, $totalAmount = 0) { // phpcs:enable global $conf, $mysoc; @@ -661,57 +674,62 @@ class pdf_squille extends ModelePdfReception } if ($totalWeight != '') { - $totalWeighttoshow = showDimensionInBestUnit($totalWeight, 0, "weight", $outputlangs); + $totalWeighttoshow = showDimensionInBestUnit($totalWeight, 0, "weight", $outputlangs, -1, 'no', 1); } if ($totalVolume != '') { - $totalVolumetoshow = showDimensionInBestUnit($totalVolume, 0, "volume", $outputlangs); + $totalVolumetoshow = showDimensionInBestUnit($totalVolume, 0, "volume", $outputlangs, -1, 'no', 1); } if ($object->trueWeight) { - $totalWeighttoshow = showDimensionInBestUnit($object->trueWeight, $object->weight_units, "weight", $outputlangs); + $totalWeighttoshow = showDimensionInBestUnit($object->trueWeight, $object->weight_units, "weight", $outputlangs, -1, 'no', 1); } if ($object->trueVolume) { - $totalVolumetoshow = showDimensionInBestUnit($object->trueVolume, $object->volume_units, "volume", $outputlangs); + $totalVolumetoshow = showDimensionInBestUnit($object->trueVolume, $object->volume_units, "volume", $outputlangs, -1, 'no', 1); } $pdf->SetFillColor(255, 255, 255); $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("Total"), 0, 'L', 1); + $index2 = 0; + + // Total Weight + if ($totalWeighttoshow) { + $pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * ($index + $index2)); + $pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalWeighttoshow, 0, 'C', 1); + $index2++; + } + if ($totalVolumetoshow) { + $pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * ($index + $index2)); + $pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalVolumetoshow, 0, 'C', 1); + $index2++; + } + + // Total qty ordered if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED)) { $pdf->SetXY($this->posxqtyordered, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($this->posxqtytoship - $this->posxqtyordered, $tab2_hl, $totalOrdered, 0, 'C', 1); } + // Total received $pdf->SetXY($this->posxqtytoship, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($this->posxpuht - $this->posxqtytoship, $tab2_hl, $totalToShip, 0, 'C', 1); + // Amount if (!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) { $pdf->SetXY($this->posxpuht, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($this->posxtotalht - $this->posxpuht, $tab2_hl, '', 0, 'C', 1); $pdf->SetXY($this->posxtotalht, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxtotalht, $tab2_hl, price($object->total_ht, 0, $outputlangs), 0, 'C', 1); - } - - // Total Weight - if ($totalWeighttoshow) { - $pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalWeighttoshow, 0, 'C', 1); - - $index++; - } - if ($totalVolumetoshow) { - $pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalVolumetoshow, 0, 'C', 1); - - $index++; - } - if (!$totalWeighttoshow && !$totalVolumetoshow) { - $index++; + $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxtotalht, $tab2_hl, price($totalAmount, 0, $outputlangs), 0, 'C', 1); } $pdf->SetTextColor(0, 0, 0); + $index++; + if ($index2) { + $index++; + } + return ($tab2_top + ($tab2_hl * $index)); } @@ -751,6 +769,7 @@ class pdf_squille extends ModelePdfReception $pdf->SetDrawColor(128, 128, 128); $pdf->SetFont('', '', $default_font_size - 1); + // Description if (empty($hidetop)) { $pdf->line($this->marge_gauche, $tab_top + 5, $this->page_largeur - $this->marge_droite, $tab_top + 5); @@ -758,12 +777,14 @@ class pdf_squille extends ModelePdfReception $pdf->MultiCell($this->posxqtyordered - $this->posxdesc, 2, $outputlangs->transnoentities("Description"), '', 'L'); } + // Volume / Weight $pdf->line($this->posxweightvol - 1, $tab_top, $this->posxweightvol - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxweightvol - 1, $tab_top + 1); $pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 2, $outputlangs->transnoentities("WeightVolShort"), '', 'C'); } + // Qty ordered if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED)) { $pdf->line($this->posxqtyordered - 1, $tab_top, $this->posxqtyordered - 1, $tab_top + $tab_height); if (empty($hidetop)) { @@ -772,6 +793,7 @@ class pdf_squille extends ModelePdfReception } } + // Qty reception $pdf->line($this->posxqtytoship - 1, $tab_top, $this->posxqtytoship - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxqtytoship, $tab_top + 1); @@ -789,6 +811,7 @@ class pdf_squille extends ModelePdfReception } } + // Amount if (!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) { $pdf->line($this->posxpuht - 1, $tab_top, $this->posxpuht - 1, $tab_top + $tab_height); if (empty($hidetop)) { @@ -853,20 +876,20 @@ class pdf_squille extends ModelePdfReception } // Show barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $posx = 105; } else { $posx = $this->marge_gauche + 3; } //$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for reception ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); } $pdf->SetDrawColor(128, 128, 128); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for reception ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); @@ -914,7 +937,7 @@ class pdf_squille extends ModelePdfReception $origin_id = $object->origin_id; // TODO move to external function - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { // commonly $origin='commande' + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { // commonly $origin='commande' $outputlangs->load('orders'); $classname = 'CommandeFournisseur'; @@ -1055,8 +1078,7 @@ class pdf_squille extends ModelePdfReception */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'RECEPTION_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext, $this->page_largeur, $this->watermark); } } diff --git a/htdocs/core/modules/reception/mod_reception_moonstone.php b/htdocs/core/modules/reception/mod_reception_moonstone.php index e1a5669dc09..40aaa63a7a8 100644 --- a/htdocs/core/modules/reception/mod_reception_moonstone.php +++ b/htdocs/core/modules/reception/mod_reception_moonstone.php @@ -61,7 +61,7 @@ class mod_reception_moonstone extends ModelNumRefReception $tooltip .= $langs->trans("GenericMaskCodes5"); $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= '
    '.$langs->trans("DefaultModelPropalCreate").''.$langs->trans("DefaultModelPropalCreate").''; $texte .= $form->selectarray('value2', $list, $conf->global->PROPALE_ADDON_PDF_ODT_DEFAULT); $texte .= "
    '.$langs->trans("DefaultModelPropalToBill").''.$langs->trans("DefaultModelPropalToBill").''; $texte .= $form->selectarray('value3', $list, $conf->global->PROPALE_ADDON_PDF_ODT_TOBILL); $texte .= "
    '.$langs->trans("DefaultModelPropalClosed").''.$langs->trans("DefaultModelPropalClosed").''; $texte .= $form->selectarray('value4', $list, $conf->global->PROPALE_ADDON_PDF_ODT_CLOSED); $texte .= "
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; @@ -106,7 +106,7 @@ class mod_reception_moonstone extends ModelNumRefReception require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $mask = $conf->global->RECEPTION_MOONSTONE_MASK; + $mask = getDolGlobalString("RECEPTION_MOONSTONE_MASK"); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/reception/modules_reception.php b/htdocs/core/modules/reception/modules_reception.php index f519974382b..0dba62ee646 100644 --- a/htdocs/core/modules/reception/modules_reception.php +++ b/htdocs/core/modules/reception/modules_reception.php @@ -43,8 +43,6 @@ abstract class ModelePdfReception extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'reception'; $list = array(); diff --git a/htdocs/core/modules/security/generate/modGeneratePassNone.class.php b/htdocs/core/modules/security/generate/modGeneratePassNone.class.php index c6cfb733f73..3ec764c6ab2 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassNone.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassNone.class.php @@ -35,6 +35,8 @@ class modGeneratePassNone extends ModeleGenPassword */ public $id; + public $picto = 'fa-keyboard'; + /** * Minimum length (text visible by end user) * diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php index baa818aa63b..491ab9757e8 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php @@ -37,6 +37,8 @@ class modGeneratePassPerso extends ModeleGenPassword */ public $id; + public $picto = 'fa-shield-alt'; + /** * Minimum length (text visible by end user) * @@ -98,8 +100,8 @@ class modGeneratePassPerso extends ModeleGenPassword $this->user = $user; if (empty($conf->global->USER_PASSWORD_PATTERN)) { - // default value at auto generation (12 chars, 1 upercase, 1 digit, 1 special char, 3 repeat, exclude ambiguous characters). - dolibarr_set_const($db, "USER_PASSWORD_PATTERN", '12;1;1;1;3;1', 'chaine', 0, '', $conf->entity); + // default value at auto generation (12 chars, 1 uppercase, 1 digit, 0 special char, 3 repeat max, exclude ambiguous characters). + dolibarr_set_const($db, "USER_PASSWORD_PATTERN", '12;1;1;0;3;1', 'chaine', 0, '', $conf->entity); } $this->Maj = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; @@ -210,7 +212,7 @@ class modGeneratePassPerso extends ModeleGenPassword $password_a = preg_split('//u', $password, null, PREG_SPLIT_NO_EMPTY); $maj = preg_split('//u', $this->Maj, null, PREG_SPLIT_NO_EMPTY); - $num = preg_split('//u', $this->Nb, null, PREG_SPLIT_NO_EMPTY);; + $num = preg_split('//u', $this->Nb, null, PREG_SPLIT_NO_EMPTY); $spe = preg_split('//u', $this->Spe, null, PREG_SPLIT_NO_EMPTY); /* $password_a = str_split($password); diff --git a/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php b/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php index f0e6fcf2a7f..b2d0b260ccb 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php @@ -35,6 +35,8 @@ class modGeneratePassStandard extends ModeleGenPassword */ public $id; + public $picto = 'fa-shield-alt'; + /** * Minimum length (text visible by end user) * diff --git a/htdocs/core/modules/security/generate/modules_genpassword.php b/htdocs/core/modules/security/generate/modules_genpassword.php index 4d397605240..bb1e02774c6 100644 --- a/htdocs/core/modules/security/generate/modules_genpassword.php +++ b/htdocs/core/modules/security/generate/modules_genpassword.php @@ -29,6 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; */ abstract class ModeleGenPassword { + public $picto = 'generic'; + /** * Flag to 1 if we must clean ambiguous charaters for the autogeneration of password (List of ambiguous char is in $this->Ambi) * diff --git a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php index 3a62eb22937..d6804c3a397 100644 --- a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php +++ b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php @@ -44,9 +44,9 @@ class doc_generic_odt extends ModeleThirdPartyDoc /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** @@ -169,7 +169,13 @@ class doc_generic_odt extends ModeleThirdPartyDoc $texte .= ''; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -250,7 +256,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); if (!empty($conf->global->MAIN_DOC_USE_OBJECT_THIRDPARTY_NAME)) { - $newfiletmp = dol_sanitizeFileName(dol_string_nospecial($object->name)).'-'.$newfiletmp; + $newfiletmp = dol_sanitizeFileName(dol_string_nospecial($object->name)) . '-' . $newfiletmp; $newfiletmp = preg_replace('/__+/', '_', $newfiletmp); // Replace repeated _ into one _ (to avoid string with substitution syntax) } if (!empty($conf->global->MAIN_DOC_USE_TIMING)) { @@ -258,11 +264,11 @@ class doc_generic_odt extends ModeleThirdPartyDoc if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; $object->builddoc_filename = $filename; // For triggers //print "newfileformat=".$newfileformat; //print "newdir=".$dir; @@ -273,8 +279,8 @@ class doc_generic_odt extends ModeleThirdPartyDoc dol_mkdir($conf->societe->multidir_temp[$object->entity]); if (!is_writable($conf->societe->multidir_temp[$object->entity])) { - $this->error = "Failed to write in temp directory ".$conf->societe->multidir_temp[$object->entity]; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->societe->multidir_temp[$object->entity]); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/societe/mod_codeclient_elephant.php b/htdocs/core/modules/societe/mod_codeclient_elephant.php index 0142457cd40..100799dff95 100644 --- a/htdocs/core/modules/societe/mod_codeclient_elephant.php +++ b/htdocs/core/modules/societe/mod_codeclient_elephant.php @@ -161,31 +161,44 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode */ public function getExample($langs, $objsoc = 0, $type = -1) { + $error = 0; $examplecust = ''; $examplesup = ''; $errmsg = array( "ErrorBadMask", "ErrorCantUseRazIfNoYearInMask", "ErrorCantUseRazInStartedYearIfNoYearMonthInMask", + "ErrorCounterMustHaveMoreThan3Digits", + "ErrorBadMaskBadRazMonth", + "ErrorCantUseRazWithYearOnOneDigit", ); + + $cssforerror = (getDolGlobalString('SOCIETE_CODECLIENT_ADDON') == 'mod_codeclient_elephant' ? 'error' : 'opacitymedium'); + if ($type != 1) { $examplecust = $this->getNextValue($objsoc, 0); - if (!$examplecust) { - $examplecust = $langs->trans('NotConfigured'); + if (!$examplecust && ($cssforerror == 'error' || $this->error != 'NotConfigured')) { + $langs->load("errors"); + $examplecust = ''.$langs->trans('ErrorBadMask').''; + $error = 1; } if (in_array($examplecust, $errmsg)) { $langs->load("errors"); - $examplecust = $langs->trans($examplecust); + $examplecust = ''.$langs->trans($examplecust).''; + $error = 1; } } if ($type != 0) { $examplesup = $this->getNextValue($objsoc, 1); - if (!$examplesup) { - $examplesup = $langs->trans('NotConfigured'); + if (!$examplesup && ($cssforerror == 'error' || $this->error != 'NotConfigured')) { + $langs->load("errors"); + $examplesup = ''.$langs->trans('ErrorBadMask').''; + $error = 1; } if (in_array($examplesup, $errmsg)) { $langs->load("errors"); - $examplesup = $langs->trans($examplesup); + $examplesup = ''.$langs->trans($examplesup).''; + $error = 1; } } diff --git a/htdocs/core/modules/societe/mod_codeclient_monkey.php b/htdocs/core/modules/societe/mod_codeclient_monkey.php index a7ae44323a1..19a5309a374 100644 --- a/htdocs/core/modules/societe/mod_codeclient_monkey.php +++ b/htdocs/core/modules/societe/mod_codeclient_monkey.php @@ -151,7 +151,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode } $date = dol_now(); - $yymm = strftime("%y%m", $date); + $yymm = dol_print_date($date, "%y%m", 'tzuserrel'); if ($max >= (pow(10, 5) - 1)) { $num = $max + 1; // If counter > 99999, we do not format on 5 chars, we take number as it is diff --git a/htdocs/core/modules/societe/mod_codecompta_aquarium.php b/htdocs/core/modules/societe/mod_codecompta_aquarium.php index 4d1d01db682..257bdf55e52 100644 --- a/htdocs/core/modules/societe/mod_codecompta_aquarium.php +++ b/htdocs/core/modules/societe/mod_codecompta_aquarium.php @@ -98,7 +98,7 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode if (!isset($conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL) || !empty($conf->global->$conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL)) { $texte .= $langs->trans('RemoveSpecialChars').' = '.yn(1)."
    \n"; } - //if (! empty($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA)) $texte.=$langs->trans('COMPANY_AQUARIUM_REMOVE_ALPHA').' = '.yn($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA)."
    \n"; + //if (!empty($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA)) $texte.=$langs->trans('COMPANY_AQUARIUM_REMOVE_ALPHA').' = '.yn($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA)."
    \n"; if (!empty($conf->global->COMPANY_AQUARIUM_CLEAN_REGEX)) { $texte .= $langs->trans('COMPANY_AQUARIUM_CLEAN_REGEX').' = '.$conf->global->COMPANY_AQUARIUM_CLEAN_REGEX."
    \n"; } diff --git a/htdocs/core/modules/societe/mod_codecompta_digitaria.php b/htdocs/core/modules/societe/mod_codecompta_digitaria.php index dddd01a602d..2ff2313c998 100644 --- a/htdocs/core/modules/societe/mod_codecompta_digitaria.php +++ b/htdocs/core/modules/societe/mod_codecompta_digitaria.php @@ -102,7 +102,8 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode $texte .= ''; $texte .= ''; $texte .= ''; - $texte .= ''; + $texte .= ''; + $texte .= '
    '; $s1 = $form->textwithpicto('', $tooltip, 1, 1); $s2 = $form->textwithpicto('', $tooltip, 1, 1); $s3 = $form->textwithpicto('', $tooltip, 1, 1); @@ -127,7 +128,23 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode } $texte .= ''; $texte .= ''; + $texte .= ''; + + $texte .= '
    '; + $texte .= "
    \n"; + + $texthelp = $langs->trans("RemoveSpecialWordsHelp"); + $texttitle = $langs->trans("RemoveSpecialWords"); + + $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); + $texte .= "
    \n"; + $texte .= ''; $texte .= '
    '; + $texte .= ''; return $texte; @@ -192,6 +209,11 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode return -1; } + // Clean declared words + if (!empty($conf->global->COMPANY_DIGITARIA_CLEAN_WORDS)) { + $cleanWords = explode(";", $conf->global->COMPANY_DIGITARIA_CLEAN_WORDS); + $codetouse = str_replace($cleanWords, "", $codetouse); + } // Remove special char if COMPANY_DIGITARIA_REMOVE_SPECIAL is set to 1 or not set (default) if (!isset($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL) || !empty($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL)) { $codetouse = preg_replace('/([^a-z0-9])/i', '', $codetouse); @@ -202,7 +224,7 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode } $this->code = $prefix.strtoupper(substr($codetouse, 0, $width)); - dol_syslog("mod_codecompta_digitaria::get_code search code proposed=".$this->code); + dol_syslog("mod_codecompta_digitaria::get_code search code proposed=".$this->code, LOG_DEBUG); // Unique index on code if COMPANY_DIGITARIA_UNIQUE_CODE is set to 1 or not set (default) if (!isset($conf->global->COMPANY_DIGITARIA_UNIQUE_CODE) || !empty($conf->global->COMPANY_DIGITARIA_UNIQUE_CODE)) { @@ -279,6 +301,7 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode $sql = "SELECT " . $typethirdparty . " FROM " . MAIN_DB_PREFIX . "societe"; $sql .= " WHERE " . $typethirdparty . " = '" . $db->escape($code) . "'"; } + $sql .= " AND entity IN (".getEntity('societe').")"; $resql = $db->query($sql); if ($resql) { diff --git a/htdocs/core/modules/societe/modules_societe.class.php b/htdocs/core/modules/societe/modules_societe.class.php index e8b0fbe9193..105333d815b 100644 --- a/htdocs/core/modules/societe/modules_societe.class.php +++ b/htdocs/core/modules/societe/modules_societe.class.php @@ -48,7 +48,6 @@ abstract class ModeleThirdPartyDoc extends CommonDocGenerator public static function liste_modeles($dbs, $maxfilenamelength = 0) { // phpcs:enable - $type = 'company'; $list = array(); @@ -75,10 +74,10 @@ abstract class ModeleThirdPartyCode public $errors; - /** Renvoi la description par defaut du modele de numerotation + /** Returns the default description of the numbering pattern * * @param Translate $langs Object langs - * @return string Texte descripif + * @return string Descriptive text */ public function info($langs) { diff --git a/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php b/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php index f8733a8a8ff..358369d1f43 100644 --- a/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php +++ b/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php @@ -45,9 +45,9 @@ class doc_generic_stock_odt extends ModelePDFStock /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * @var string Dolibarr version of the loaded document @@ -172,12 +172,20 @@ class doc_generic_stock_odt extends ModelePDFStock $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } + $texte .= ' '; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -269,11 +277,11 @@ class doc_generic_stock_odt extends ModelePDFStock if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -282,11 +290,11 @@ class doc_generic_stock_odt extends ModelePDFStock if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -294,8 +302,8 @@ class doc_generic_stock_odt extends ModelePDFStock dol_mkdir($conf->product->dir_temp); if (!is_writable($conf->product->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->product->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->product->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/stock/doc/pdf_standard.modules.php b/htdocs/core/modules/stock/doc/pdf_standard.modules.php index ecbeccb5a61..ac0bf98b0f3 100644 --- a/htdocs/core/modules/stock/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_standard.modules.php @@ -60,9 +60,9 @@ class pdf_standard extends ModelePDFStock /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -111,10 +111,10 @@ class pdf_standard extends ModelePDFStock $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_codestockservice = 0; // Display product-service code @@ -251,7 +251,7 @@ class pdf_standard extends ModelePDFStock $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Stock")." ".$outputlangs->convToOutputCharset($object->label)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -270,7 +270,7 @@ class pdf_standard extends ModelePDFStock $pdf->SetTextColor(0, 0, 0); $tab_top = 65 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -306,7 +306,7 @@ class pdf_standard extends ModelePDFStock $objp = $this->db->fetch_object($resql); // Multilangs - if (!empty($conf->global->MAIN_MULTILANGS)) { // si l'option est active + if (getDolGlobalInt('MAIN_MULTILANGS')) { // si l'option est active $sql = "SELECT label"; $sql .= " FROM ".MAIN_DB_PREFIX."product_lang"; $sql .= " WHERE fk_product = ".((int) $objp->rowid); @@ -353,7 +353,7 @@ class pdf_standard extends ModelePDFStock if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -402,7 +402,7 @@ class pdf_standard extends ModelePDFStock // Label $pdf->SetXY($this->posxlabel + 0.8, $curY); - $pdf->MultiCell($this->posxqty - $this->posxlabel - 0.8, 3, dol_trunc($objp->produit, 24), 0, 'L'); + $pdf->MultiCell($this->posxqty - $this->posxlabel - 0.8, 3, dol_trunc($productstatic->label, 24), 0, 'L'); // Quantity $valtoshow = price2num($objp->value, 'MS'); @@ -457,9 +457,12 @@ class pdf_standard extends ModelePDFStock $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -474,7 +477,7 @@ class pdf_standard extends ModelePDFStock $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -888,8 +891,7 @@ class pdf_standard extends ModelePDFStock */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'PRODUCT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/stock/modules_stock.php b/htdocs/core/modules/stock/modules_stock.php index 73092bb0bf6..d1dc684d1d2 100644 --- a/htdocs/core/modules/stock/modules_stock.php +++ b/htdocs/core/modules/stock/modules_stock.php @@ -75,8 +75,6 @@ abstract class ModelePDFStock extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'stock'; $list = array(); diff --git a/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php b/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php index c00bf34621e..35a52f35bd8 100644 --- a/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php +++ b/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php @@ -63,7 +63,7 @@ class pdf_eagle extends ModelePdfStockTransfer * @var array Minimum version of PHP required by module. * e.g.: PHP ≥ 5.5 = array(5, 5) */ - public $phpmin = array(5, 5); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -131,10 +131,10 @@ class pdf_eagle extends ModelePdfStockTransfer $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo @@ -219,7 +219,7 @@ class pdf_eagle extends ModelePdfStockTransfer $objphoto = new Product($this->db); $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($object->lines[$i]->fk_product, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -230,7 +230,7 @@ class pdf_eagle extends ModelePdfStockTransfer $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; @@ -319,7 +319,9 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Shipment")); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { + $pdf->SetCompression(false); + } $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right @@ -333,7 +335,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = 130; $tab_height_newpage = 150; @@ -438,7 +440,7 @@ class pdf_eagle extends ModelePdfStockTransfer if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + $heightforinfotot))) { // If photo too high, we moved completely on new page $pdf->AddPage('', '', true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposbefore + 1); $curY = $tab_top_newpage; @@ -494,7 +496,7 @@ class pdf_eagle extends ModelePdfStockTransfer if ($i == ($nblines - 1)) { // No more lines, and no space left to show total, so we create a new page $pdf->AddPage('', '', true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -531,7 +533,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut // Lot / série - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $pdf->SetXY($this->posxlot, $curY); $pdf->MultiCell(($this->posxweightvol - $this->posxlot), 3, $object->lines[$i]->batch, '', 'C'); } @@ -610,7 +612,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -623,7 +625,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->AddPage(); if (!empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -813,7 +815,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->MultiCell($this->posxlot - $this->posxdesc, 2, $outputlangs->transnoentities("Description"), '', 'L'); } - if (!empty($conf->productbatch->enabled) && $this->atLeastOneBatch) { + if (isModEnabled('productbatch') && $this->atLeastOneBatch) { $pdf->line($this->posxlot - 1, $tab_top, $this->posxlot - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxlot, $tab_top + 1); @@ -893,7 +895,7 @@ class pdf_eagle extends ModelePdfStockTransfer /** * Show top header of page. * - * @param PDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -944,20 +946,20 @@ class pdf_eagle extends ModelePdfStockTransfer } // Show barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $posx = 105; } else { $posx = $this->marge_gauche + 3; } //$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); } $pdf->SetDrawColor(128, 128, 128); - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref //$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3); //$pdf->Image($logo,10, 5, 0, 24); @@ -1167,8 +1169,7 @@ class pdf_eagle extends ModelePdfStockTransfer protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { // phpcs:enable - global $conf; - $showdetails = $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SHIPPING_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php b/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php index 5bff26a9d1d..ed8b46c7746 100644 --- a/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php +++ b/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php @@ -72,7 +72,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes * @var array Minimum version of PHP required by module. * e.g.: PHP ≥ 5.5 = array(5, 5) */ - public $phpmin = array(5, 5); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -145,10 +145,10 @@ class pdf_eagle_proforma extends ModelePDFCommandes $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -227,7 +227,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $objphoto->fetch($object->lines[$i]->fk_product); //var_dump($objphoto->ref);exit; - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -241,7 +241,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $dir = $conf->product->dir_output.'/'.$midir; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -326,7 +326,9 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfOrderTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { + $pdf->SetCompression(false); + } $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right @@ -350,7 +352,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm if ($conf->incoterm->enabled) { @@ -417,7 +419,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pdf->AddPage(); $pagenb++; if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); // $this->_pagefoot($pdf,$object,$outputlangs,1); $pdf->setTopMargin($tab_top_newpage); // The only function to edit the bottom margin of current page to set it. @@ -471,7 +473,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes // apply note frame to last page $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $height_note = $posyafter - $tab_top_newpage; $pdf->Rect($this->marge_gauche, $tab_top_newpage - 1, $tab_width, $height_note + 1); } else // No pagebreak @@ -489,7 +491,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pageposafternote++; $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $posyafter = $tab_top_newpage; } @@ -580,7 +582,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes if ($i == ($nblines - 1)) { // No more lines, and no space left to show total, so we create a new page $pdf->AddPage('', '', true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -682,7 +684,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes // Collection of totals by value of vat in $this->tva["rate"] = total_tva - if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne = $object->lines[$i]->multicurrency_total_tva; + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) $tvaligne = $object->lines[$i]->multicurrency_total_tva; else $tvaligne = $object->lines[$i]->total_tva; $localtax1ligne = $object->lines[$i]->total_localtax1; @@ -738,7 +740,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == $pageposafter) { @@ -751,7 +753,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pdf->AddPage(); if (!empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -882,7 +884,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes } */ /* TODO - else if (! empty($object->availability_code)) + else if (!empty($object->availability_code)) { $pdf->SetXY($this->marge_gauche, $posy); $pdf->SetTextColor(200,0,0); @@ -976,7 +978,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes // If payment mode not forced or forced to VIR, show payment with BAN if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') { - if (!empty($object->fk_account) || !empty($object->fk_bank) || !empty($conf->global->FACTURE_RIB_NUMBER)) { + if (!empty($object->fk_account) || !empty($object->fk_bank) || getDolGlobalInt('FACTURE_RIB_NUMBER')) { $bankid = (empty($object->fk_account) ? $conf->global->FACTURE_RIB_NUMBER : $object->fk_account); if (!empty($object->fk_bank)) $bankid = $object->fk_bank; // For backward compatibility when object->fk_account is forced with object->fk_bank $account = new Account($this->db); @@ -1033,10 +1035,10 @@ class pdf_eagle_proforma extends ModelePDFCommandes // Total HT /*$pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("TotalHT") : ''), 0, 'L', 1); - $total_ht = (($conf->multicurrency->enabled && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0), 0, $outputlangs), 0, 'R', 1);*/ // Show VAT by rates and total @@ -1171,8 +1173,8 @@ class pdf_eagle_proforma extends ModelePDFCommandes pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->COMMANDE_DRAFT_WATERMARK); + if ($object->statut == 0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); } $pdf->SetTextColor(0, 0, 60); @@ -1184,11 +1186,11 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity]; - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1432,8 +1434,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { // phpcs:enable - global $conf; - $showdetails = $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } diff --git a/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php b/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php index fab0952e894..c19067c019d 100644 --- a/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php +++ b/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php @@ -55,7 +55,7 @@ class mod_stocktransfer_advanced extends ModeleNumRefStockTransfer /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -80,7 +80,7 @@ class mod_stocktransfer_advanced extends ModeleNumRefStockTransfer // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; + + // List of directories area + $texte .= ''; + + + $texte .= ''; + $texte .= ''; + + $texte .= '
    '; + $texttitle = $langs->trans("ListOfDirectories"); + $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim($conf->global->SUPPLIER_INVOICE_ADDON_PDF_ODT_PATH))); + + + $listoffiles = array(); + foreach ($listofdir as $key => $tmpdir) { + $tmpdir = trim($tmpdir); + $tmpdir = preg_replace('/DOL_DATA_ROOT/', DOL_DATA_ROOT, $tmpdir); + if (!$tmpdir) { + unset($listofdir[$key]); + continue; + } + if (!is_dir($tmpdir)) { + $texttitle .= img_warning($langs->trans("ErrorDirNotFound", $tmpdir), 0); + } else { + $tmpfiles = dol_dir_list($tmpdir, 'files', 0, '\.(ods|odt)'); + if (count($tmpfiles)) { + $listoffiles = array_merge($listoffiles, $tmpfiles); + } + } + } + + $texthelp = $langs->trans("ListOfDirectoriesForModelGenODT"); + // Add list of substitution keys + $texthelp .= '
    '.$langs->trans("FollowingSubstitutionKeysCanBeUsed").'
    '; + $texthelp .= $langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it + + $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); + $texte .= '
    '; + $texte .= ''; + $texte .= '
    '; + $texte .= ''; + $texte .= '
    '; + + // Scan directories + $nbofiles = count($listoffiles); + if (!empty($conf->global->SUPPLIER_INVOICE_ADDON_PDF_ODT_PATH)) { + $texte .= $langs->trans("NumberOfModelFilesFound").': '; + //$texte.=$nbofiles?'':''; + $texte .= count($listoffiles); + //$texte.=$nbofiles?'':''; + $texte .= ''; + } + + if ($nbofiles) { + $texte .= '
    '; + // Show list of found files + foreach ($listoffiles as $file) { + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + } + $texte .= '
    '; + } + // Add input to upload a new template file. + $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= ''; + $texte .= ''; + $texte .= '
    '; + $texte .= '
    '; + $texte .= $langs->trans("ExampleOfDirectoriesForModelGen"); + $texte .= '
    '; + $texte .= ''; + + return $texte; + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Function to build a document on disk using the generic odt module. + * + * @param Commande $object Object source to build document + * @param Translate $outputlangs Lang output object + * @param string $srctemplatepath Full path of source filename for generator using a template file + * @param int $hidedetails Do not show line details + * @param int $hidedesc Do not show desc + * @param int $hideref Do not show ref + * @return int 1 if OK, <=0 if KO + */ + public function write_file($object, $outputlangs, $srctemplatepath, $hidedetails = 0, $hidedesc = 0, $hideref = 0) + { + // phpcs:enable + global $user, $langs, $conf, $mysoc, $hookmanager; + + if (empty($srctemplatepath)) { + dol_syslog("doc_generic_odt::write_file parameter srctemplatepath empty", LOG_WARNING); + return -1; + } + + // Add odtgeneration hook + if (!is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($this->db); + } + $hookmanager->initHooks(array('odtgeneration')); + global $action; + + if (!is_object($outputlangs)) { + $outputlangs = $langs; + } + $sav_charset_output = $outputlangs->charset_output; + $outputlangs->charset_output = 'UTF-8'; + + $outputlangs->loadLangs(array("main", "dict", "companies", "bills")); + + if ($conf->fournisseur->facture->dir_output) { + $object->fetch_thirdparty(); + + if ($object->specimen) { + $dir = $conf->fournisseur->facture->dir_output; + $file = $dir."/SPECIMEN.pdf"; + } else { + $objectref = dol_sanitizeFileName($object->ref); + $objectrefsupplier = dol_sanitizeFileName($object->ref_supplier); + //$dir = $conf->fournisseur->facture->dir_output.'/'.$objectref; + $dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id, 2, 0, 0, $object, 'invoice_supplier').$objectref; + $file = $dir."/".$objectref.".pdf"; + if (!empty($conf->global->SUPPLIER_REF_IN_NAME)) { + $file = $dir."/".$objectref.($objectrefsupplier ? "_".$objectrefsupplier : "").".pdf"; + } + } + + if (!file_exists($dir)) { + if (dol_mkdir($dir) < 0) { + $this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir); + return -1; + } + } + + if (file_exists($dir)) { + //print "srctemplatepath=".$srctemplatepath; // Src filename + $newfile = basename($srctemplatepath); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); + $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); + $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); + $newfiletmp = $objectref.'_'.$newfiletmp; + //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; + // Get extension (ods or odt) + $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); + if (!empty($conf->global->MAIN_DOC_USE_TIMING)) { + $format = $conf->global->MAIN_DOC_USE_TIMING; + if ($format == '1') { + $format = '%Y%m%d%H%M%S'; + } + $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + } else { + $filename = $newfiletmp.'.'.$newfileformat; + } + $file = $dir.'/'.$filename; + //print "newdir=".$dir; + //print "newfile=".$newfile; + //print "file=".$file; + //print "conf->societe->dir_temp=".$conf->societe->dir_temp; + + dol_mkdir($conf->fournisseur->facture->dir_temp); + if (!is_writable($conf->fournisseur->facture->dir_temp)) { + $this->error = "Failed to write in temp directory ".$conf->fournisseur->facture->dir_temp; + dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + return -1; + } + + // If CUSTOMER contact defined on invoice, we use it + $usecontact = false; + $arrayidcontact = $object->getIdContact('external', 'CUSTOMER'); + if (count($arrayidcontact) > 0) { + $usecontact = true; + $result = $object->fetch_contact($arrayidcontact[0]); + } + + // Recipient name + $contactobject = null; + if (!empty($usecontact)) { + // We can use the company of contact instead of thirdparty company + if ($object->contact->socid != $object->thirdparty->id && (!isset($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT) || !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT))) { + $object->contact->fetch_thirdparty(); + $socobject = $object->contact->thirdparty; + $contactobject = $object->contact; + } else { + $socobject = $object->thirdparty; + // if we have a CUSTOMER contact and we dont use it as thirdparty recipient we store the contact object for later use + $contactobject = $object->contact; + } + } else { + $socobject = $object->thirdparty; + } + + // Make substitution + $substitutionarray = array( + '__FROM_NAME__' => $this->issuer->name, + '__FROM_EMAIL__' => $this->issuer->email, + '__TOTAL_TTC__' => $object->total_ttc, + '__TOTAL_HT__' => $object->total_ht, + '__TOTAL_VAT__' => $object->total_tva + ); + complete_substitutions_array($substitutionarray, $langs, $object); + // Call the ODTSubstitution hook + $parameters = array('file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$substitutionarray); + $reshook = $hookmanager->executeHooks('ODTSubstitution', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + + // Line of free text + $newfreetext = ''; + $paramfreetext = 'INVOICE_FREE_TEXT'; + if (!empty($conf->global->$paramfreetext)) { + $newfreetext = make_substitutions($conf->global->$paramfreetext, $substitutionarray); + } + + // Open and load template + require_once ODTPHP_PATH.'odf.php'; + try { + $odfHandler = new odf( + $srctemplatepath, + array( + 'PATH_TO_TMP' => $conf->fournisseur->dir_temp, + 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. + 'DELIMITER_LEFT' => '{', + 'DELIMITER_RIGHT' => '}' + ) + ); + } catch (Exception $e) { + $this->error = $e->getMessage(); + dol_syslog($e->getMessage(), LOG_INFO); + return -1; + } + // After construction $odfHandler->contentXml contains content and + // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by + // [!-- BEGIN lines --]*[!-- END lines --] + //print html_entity_decode($odfHandler->__toString()); + //print exit; + + + // Make substitutions into odt of freetext + try { + $odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8'); + } catch (OdfException $e) { + dol_syslog($e->getMessage(), LOG_INFO); + } + + // Define substitution array + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + $array_object_from_properties = $this->get_substitutionarray_each_var_object($object, $outputlangs); + $array_objet = $this->get_substitutionarray_object($object, $outputlangs); + $array_user = $this->get_substitutionarray_user($user, $outputlangs); + $array_soc = $this->get_substitutionarray_mysoc($mysoc, $outputlangs); + $array_thirdparty = $this->get_substitutionarray_thirdparty($socobject, $outputlangs); + $array_other = $this->get_substitutionarray_other($outputlangs); + // retrieve contact information for use in object as contact_xxx tags + $array_thirdparty_contact = array(); + if ($usecontact && is_object($contactobject)) { + $array_thirdparty_contact = $this->get_substitutionarray_contact($contactobject, $outputlangs, 'contact'); + } + + $tmparray = array_merge($substitutionarray, $array_object_from_properties, $array_user, $array_soc, $array_thirdparty, $array_objet, $array_other, $array_thirdparty_contact); + complete_substitutions_array($tmparray, $outputlangs, $object); + + // Call the ODTSubstitution hook + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray); + $reshook = $hookmanager->executeHooks('ODTSubstitution', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + + foreach ($tmparray as $key => $value) { + try { + if (preg_match('/logo$/', $key)) { // Image + if (file_exists($value)) { + $odfHandler->setImage($key, $value); + } else { + $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8'); + } + } else // Text + { + $odfHandler->setVars($key, $value, true, 'UTF-8'); + } + } catch (OdfException $e) { + dol_syslog($e->getMessage(), LOG_INFO); + } + } + // Replace tags of lines + try { + $foundtagforlines = 1; + try { + $listlines = $odfHandler->setSegment('lines'); + } catch (OdfException $e) { + // We may arrive here if tags for lines not present into template + $foundtagforlines = 0; + dol_syslog($e->getMessage(), LOG_INFO); + } + if ($foundtagforlines) { + $linenumber = 0; + foreach ($object->lines as $line) { + $linenumber++; + $tmparray = $this->get_substitutionarray_lines($line, $outputlangs, $linenumber); + complete_substitutions_array($tmparray, $outputlangs, $object, $line, "completesubstitutionarray_lines"); + // Call the ODTSubstitutionLine hook + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray, 'line'=>$line); + $reshook = $hookmanager->executeHooks('ODTSubstitutionLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + foreach ($tmparray as $key => $val) { + try { + $listlines->setVars($key, $val, true, 'UTF-8'); + } catch (OdfException $e) { + dol_syslog($e->getMessage(), LOG_INFO); + } catch (SegmentException $e) { + dol_syslog($e->getMessage(), LOG_INFO); + } + } + $listlines->merge(); + } + $odfHandler->mergeSegment($listlines); + } + } catch (OdfException $e) { + $this->error = $e->getMessage(); + dol_syslog($this->error, LOG_WARNING); + return -1; + } + + // Replace labels translated + $tmparray = $outputlangs->get_translations_for_substitutions(); + foreach ($tmparray as $key => $value) { + try { + $odfHandler->setVars($key, $value, true, 'UTF-8'); + } catch (OdfException $e) { + dol_syslog($e->getMessage(), LOG_INFO); + } + } + + // Call the beforeODTSave hook + + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray); + $reshook = $hookmanager->executeHooks('beforeODTSave', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + + // Write new file + if (!empty($conf->global->MAIN_ODT_AS_PDF)) { + try { + $odfHandler->exportAsAttachedPDF($file); + } catch (Exception $e) { + $this->error = $e->getMessage(); + dol_syslog($e->getMessage(), LOG_INFO); + return -1; + } + } else { + try { + $odfHandler->saveToDisk($file); + } catch (Exception $e) { + $this->error = $e->getMessage(); + dol_syslog($e->getMessage(), LOG_INFO); + return -1; + } + } + + $parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs, 'substitutionarray'=>&$tmparray); + $reshook = $hookmanager->executeHooks('afterODTCreation', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + + if (!empty($conf->global->MAIN_UMASK)) { + @chmod($file, octdec($conf->global->MAIN_UMASK)); + } + + $odfHandler = null; // Destroy object + + $this->result = array('fullpath'=>$file); + + return 1; // Success + } else { + $this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir); + return -1; + } + } + + return -1; + } +} diff --git a/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php index 76c0ed56851..802abd6a184 100644 --- a/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php @@ -65,9 +65,9 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -141,10 +141,10 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -161,13 +161,13 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $this->posxdiscount = 162; $this->postotalht = 174; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->posxtva = 99; $this->posxup = 114; $this->posxqty = 130; $this->posxunit = 147; } - //if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup; + //if (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup; $this->posxpicture = $this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images if ($this->page_largeur < 210) { // To work with US executive format $this->posxpicture -= 20; @@ -232,9 +232,9 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $nblines = count($object->lines); if ($conf->fournisseur->facture->dir_output) { - $deja_regle = $object->getSommePaiement((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); - $amount_credit_notes_included = $object->getSumCreditNotesUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); - $amount_deposits_included = $object->getSumDepositsUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); + $deja_regle = $object->getSommePaiement((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); + $amount_credit_notes_included = $object->getSumCreditNotesUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); + $amount_deposits_included = $object->getSumDepositsUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); // Definition of $dir and $file if ($object->specimen) { @@ -307,7 +307,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -342,10 +342,10 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -428,7 +428,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -480,7 +480,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->MultiCell($this->posxunit - $this->posxqty - 0.8, 4, $qty, 0, 'R'); // Enough for 6 chars // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); $pdf->SetXY($this->posxunit, $curY); $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 4, $unit, 0, 'L'); @@ -499,7 +499,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 3, $total_excl_tax, 0, 'R', 0); // Collection of totals by VAT value in $this->tva["taux"]=total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -559,7 +559,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -576,7 +576,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -680,17 +680,17 @@ class pdf_canelle extends ModelePDFSuppliersInvoices // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, $outputlangs), 0, 'R', 1); // Show VAT by rates and total $pdf->SetFillColor(248, 248, 248); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $this->atleastoneratenotnull = 0; foreach ($this->tva as $tvakey => $tvaval) { @@ -740,7 +740,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax2, 0, $outputlangs), 0, 'R', 1); } } else { - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ //Local tax 1 foreach ($this->localtax1 as $tvakey => $tvaval) { @@ -765,7 +765,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices } //} - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ //Local tax 2 foreach ($this->localtax2 as $tvakey => $tvaval) { @@ -802,8 +802,8 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->MultiCell($largcol2, $tab2_hl, price($sign * $total_ttc, 0, $outputlangs), $useborder, 'R', 1); $pdf->SetTextColor(0, 0, 0); - $creditnoteamount = $object->getSumCreditNotesUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); // Warning, this also include excess received - $depositsamount = $object->getSumDepositsUsed((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? 1 : 0); + $creditnoteamount = $object->getSumCreditNotesUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); // Warning, this also include excess received + $depositsamount = $object->getSumDepositsUsed((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? 1 : 0); //print "x".$creditnoteamount."-".$depositsamount;exit; $resteapayer = price2num($total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT'); if (!empty($object->paye)) { @@ -932,7 +932,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->MultiCell($this->posxunit - $this->posxqty - 1, 2, $outputlangs->transnoentities("Qty"), '', 'C'); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxunit - 1, $tab_top + 1); @@ -1036,7 +1036,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->SetXY($tab3_posx, $tab3_top + $y); $pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($row->date), 'day', false, $outputlangs, true), 0, 'L', 0); $pdf->SetXY($tab3_posx + 21, $tab3_top + $y); - $pdf->MultiCell(20, 3, price($sign * ((!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount)), 0, 'L', 0); + $pdf->MultiCell(20, 3, price($sign * ((isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount)), 0, 'L', 0); $pdf->SetXY($tab3_posx + 40, $tab3_top + $y); $oper = $outputlangs->transnoentitiesnoconv("PaymentTypeShort".$row->code); @@ -1295,8 +1295,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_INVOICE_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php index e6838b9c4c4..0aacecc69da 100644 --- a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php +++ b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php @@ -67,12 +67,12 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices */ public function info() { - global $conf, $langs; + global $conf, $langs, $db; // Load translation files required by the page $langs->loadLangs(array("bills", "admin")); - $form = new Form($this->db); + $form = new Form($db); $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; $texte .= '
    '; @@ -93,7 +93,7 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices // Setting the prefix $texte .= '
    '.$langs->trans("Mask").' ('.$langs->trans("InvoiceStandard").')'; $texte .= ':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'
    '.$langs->trans("Mask").' ('.$langs->trans("InvoiceReplacement").'):'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'
    '.$langs->trans("Mask").' ('.$langs->trans("InvoiceDeposit").'):'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'
    '; @@ -159,16 +159,16 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices // Get Mask value $mask = ''; if (is_object($object) && $object->type == 1) { - $mask = $conf->global->SUPPLIER_REPLACEMENT_TULIP_MASK; + $mask = getDolGlobalString("SUPPLIER_REPLACEMENT_TULIP_MASK"); if (!$mask) { - $mask = $conf->global->SUPPLIER_INVOICE_TULIP_MASK; + $mask = getDolGlobalString("SUPPLIER_INVOICE_TULIP_MASK"); } } elseif (is_object($object) && $object->type == 2) { - $mask = $conf->global->SUPPLIER_CREDIT_TULIP_MASK; + $mask = getDolGlobalString("SUPPLIER_CREDIT_TULIP_MASK"); } elseif (is_object($object) && $object->type == 3) { - $mask = $conf->global->SUPPLIER_DEPOSIT_TULIP_MASK; + $mask = getDolGlobalString("SUPPLIER_DEPOSIT_TULIP_MASK"); } else { - $mask = $conf->global->SUPPLIER_INVOICE_TULIP_MASK; + $mask = getDolGlobalString("SUPPLIER_INVOICE_TULIP_MASK"); } if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php index 546596ab640..de56773eae2 100644 --- a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php +++ b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php @@ -51,8 +51,6 @@ abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'invoice_supplier'; $list = array(); diff --git a/htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php b/htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php index a9a8f612578..ca7d1b3d61b 100644 --- a/htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php +++ b/htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php @@ -49,9 +49,9 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * @var string Dolibarr version of the loaded document @@ -163,7 +163,7 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders // Scan directories $nbofiles = count($listoffiles); - if (!empty($conf->global->COMMANDE_ADDON_PDF_ODT_PATH)) { + if (!empty($conf->global->SUPPLIER_ORDER_ADDON_PDF_ODT_PATH)) { $texte .= $langs->trans("NumberOfModelFilesFound").': '; //$texte.=$nbofiles?'':''; $texte .= count($listoffiles); @@ -175,7 +175,9 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders $texte .= ''; } @@ -259,10 +261,10 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -271,11 +273,11 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -283,8 +285,8 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders dol_mkdir($conf->fournisseur->commande->dir_temp); if (!is_writable($conf->fournisseur->commande->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->fournisseur->commande->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->fournisseur->commande->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php b/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php index da8c1f4ac26..186ea465568 100644 --- a/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php +++ b/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php @@ -5,7 +5,7 @@ * Copyright (C) 2010-2014 Juanjo Menent * Copyright (C) 2015 Marcos García * Copyright (C) 2017 Ferran Marcet - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -68,9 +68,9 @@ class pdf_cornas extends ModelePDFSuppliersOrders /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -143,10 +143,10 @@ class pdf_cornas extends ModelePDFSuppliersOrders $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -230,7 +230,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $objphoto = new Product($this->db); $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -240,7 +240,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -335,7 +335,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Order")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -361,12 +361,12 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; // Incoterm - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -423,7 +423,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -481,7 +481,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -503,7 +503,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -592,7 +592,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -693,7 +693,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -774,9 +774,12 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == $pageposafter) { @@ -791,7 +794,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -969,11 +972,11 @@ class pdf_cornas extends ModelePDFSuppliersOrders // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, 'R', 1); // Show VAT by rates and total @@ -1028,7 +1031,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax2), $useborder, 'R', 1); } } else { - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ //Local tax 1 foreach ($this->localtax1 as $localtax_type => $localtax_rate) { @@ -1058,7 +1061,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders } } - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ //Local tax 2 foreach ($this->localtax2 as $localtax_type => $localtax_rate) { @@ -1096,7 +1099,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->SetFillColor(224, 224, 224); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc), $useborder, 'R', 1); $pdf->SetFont('', '', $default_font_size - 1); @@ -1238,9 +1241,9 @@ class pdf_cornas extends ModelePDFSuppliersOrders //pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); //Affiche le filigrane brouillon - Print Draft Watermark - /*if($object->statut==0 && (! empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) + /*if($object->statut==0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { - pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); + pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); }*/ //Print content @@ -1253,13 +1256,13 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1481,8 +1484,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } @@ -1565,7 +1567,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders 'border-left' => false, // remove left line separator ); - if (!empty($conf->global->MAIN_GENERATE_ORDERS_WITH_PICTURE)) { + if (!empty($conf->global->MAIN_GENERATE_SUPPLIER_ORDER_WITH_PICTURE)) { $this->cols['photo']['status'] = true; } @@ -1621,7 +1623,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders ), 'border-left' => true, // add left line separator ); - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->cols['unit']['status'] = true; } diff --git a/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php index c7dc161330c..226c9dc6efa 100644 --- a/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php @@ -68,9 +68,9 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -143,10 +143,10 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -169,7 +169,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $this->posxdiscount = 162; $this->postotalht = 174; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->posxtva = 95; $this->posxup = 114; $this->posxqty = 132; @@ -245,7 +245,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $objphoto = new Product($this->db); $objphoto->fetch($object->lines[$i]->fk_product); - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$object->lines[$i]->fk_product."/photos/"; $dir = $conf->product->dir_output.'/'.$pdir; } else { @@ -254,7 +254,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders } $realpath = ''; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) { // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo if ($obj['photo_vignette']) { $filename = $obj['photo_vignette']; } else { @@ -350,7 +350,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PurchaseOrder")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -385,10 +385,10 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $desc_incoterms = $object->getIncotermsForPDF(); if ($desc_incoterms) { $tab_top -= 2; @@ -452,7 +452,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -499,7 +499,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -552,7 +552,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->MultiCell($this->posxunit - $this->posxqty - 0.8, 4, $qty, 0, 'R'); // Enough for 6 chars // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); $pdf->SetXY($this->posxunit, $curY); $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 4, $unit, 0, 'L'); @@ -573,7 +573,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders } // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - if (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) { + if (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) { $tvaligne = $object->lines[$i]->multicurrency_total_tva; } else { $tvaligne = $object->lines[$i]->total_tva; @@ -656,9 +656,12 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -673,7 +676,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -850,11 +853,11 @@ class pdf_muscadet extends ModelePDFSuppliersOrders // Total HT $pdf->SetFillColor(255, 255, 255); - $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->SetXY($col1x, $tab2_top); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - $total_ht = ((!empty($conf->multicurrency->enabled) && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); - $pdf->SetXY($col2x, $tab2_top + 0); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); + $pdf->SetXY($col2x, $tab2_top); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, 'R', 1); // Show VAT by rates and total @@ -909,7 +912,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax2), $useborder, 'R', 1); } } else { - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ //Local tax 1 foreach ($this->localtax1 as $localtax_type => $localtax_rate) { @@ -939,7 +942,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders } } - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') + //if (!empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') //{ //Local tax 2 foreach ($this->localtax2 as $localtax_type => $localtax_rate) { @@ -977,7 +980,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetFillColor(224, 224, 224); $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1); - $total_ttc = (!empty($conf->multicurrency->enabled) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; + $total_ttc = (isModEnabled("multicurrency") && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc; $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc), $useborder, 'R', 1); $pdf->SetFont('', '', $default_font_size - 1); @@ -1094,7 +1097,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->MultiCell($this->posxunit - $this->posxqty - 1, 2, $outputlangs->transnoentities("Qty"), '', 'C'); } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxunit - 1, $tab_top + 1); @@ -1147,9 +1150,9 @@ class pdf_muscadet extends ModelePDFSuppliersOrders //pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); //Affiche le filigrane brouillon - Print Draft Watermark - /*if($object->statut==0 && (! empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) + /*if($object->statut==0 && getDolGlobalString('COMMANDE_DRAFT_WATERMARK')) { - pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); + pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',getDolGlobalString('COMMANDE_DRAFT_WATERMARK')); }*/ //Print content @@ -1162,13 +1165,13 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; @@ -1389,8 +1392,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders */ protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { - global $conf; - $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + $showdetails = getDolGlobalInt('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', 0); return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } } diff --git a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php index 5aa92995c4c..7ebc035ef61 100644 --- a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php +++ b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php @@ -178,7 +178,7 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders * * @param Societe $objsoc Object third party * @param Object $object Object - * @return string Texte descripif + * @return string Descriptive text */ public function commande_get_num($objsoc = 0, $object = '') { diff --git a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php index 473664cb44c..f829048e623 100644 --- a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php +++ b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php @@ -59,7 +59,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -85,7 +85,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).'   
    '; $texttitle = $langs->trans("ListOfDirectories"); - $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim($conf->global->TICKET_ADDON_PDF_ODT_PATH))); + $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim(getDolGlobalString('TICKET_ADDON_PDF_ODT_PATH')))); $listoffiles = array(); foreach ($listofdir as $key => $tmpdir) { $tmpdir = trim($tmpdir); @@ -148,7 +148,7 @@ class doc_generic_ticket_odt extends ModelePDFTicket $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); $texte .= '
    '; $texte .= ''; $texte .= '
    '; $texte .= ''; @@ -161,12 +161,20 @@ class doc_generic_ticket_odt extends ModelePDFTicket $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').''; + $texte .= '   '.img_picto('', 'delete').''; + $texte .= '
    '; } $texte .= '
    '; } // Add input to upload a new template file. - $texte .= '
    '.$langs->trans("UploadNewTemplate").' '; + $texte .= '
    '.$langs->trans("UploadNewTemplate"); + $texte .= ' '; + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $texte .= ''; // MAX_FILE_SIZE must precede the field type=file + } $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -256,11 +264,11 @@ class doc_generic_ticket_odt extends ModelePDFTicket if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -269,11 +277,11 @@ class doc_generic_ticket_odt extends ModelePDFTicket if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -281,8 +289,8 @@ class doc_generic_ticket_odt extends ModelePDFTicket dol_mkdir($conf->ticket->dir_temp); if (!is_writable($conf->ticket->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->ticket->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->ticket->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/ticket/mod_ticket_universal.php b/htdocs/core/modules/ticket/mod_ticket_universal.php index 2c46376eea1..8cd2cd6f614 100644 --- a/htdocs/core/modules/ticket/mod_ticket_universal.php +++ b/htdocs/core/modules/ticket/mod_ticket_universal.php @@ -55,7 +55,7 @@ class mod_ticket_universal extends ModeleNumRefTicket /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -81,7 +81,7 @@ class mod_ticket_universal extends ModeleNumRefTicket // Parametrage du prefix $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; @@ -277,11 +277,11 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); - $newfiletmp = $objectref.'_'.$newfiletmp; + $newfiletmp = $objectref . '_' . $newfiletmp; // Get extension (ods or odt) $newfileformat = substr($newfile, strrpos($newfile, '.') + 1); @@ -290,11 +290,11 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup if ($format == '1') { $format = '%Y%m%d%H%M%S'; } - $filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat; + $filename = $newfiletmp . '-' . dol_print_date(dol_now(), $format) . '.' . $newfileformat; } else { - $filename = $newfiletmp.'.'.$newfileformat; + $filename = $newfiletmp . '.' . $newfileformat; } - $file = $dir.'/'.$filename; + $file = $dir . '/' . $filename; //print "newdir=".$dir; //print "newfile=".$newfile; //print "file=".$file; @@ -302,8 +302,8 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup dol_mkdir($conf->user->dir_temp); if (!is_writable($conf->user->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->user->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->user->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/core/modules/usergroup/modules_usergroup.class.php b/htdocs/core/modules/usergroup/modules_usergroup.class.php index 99ee232fdf2..2c4aebe1e6f 100644 --- a/htdocs/core/modules/usergroup/modules_usergroup.class.php +++ b/htdocs/core/modules/usergroup/modules_usergroup.class.php @@ -55,8 +55,6 @@ abstract class ModelePDFUserGroup extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'group'; $list = array(); diff --git a/htdocs/core/modules/workstation/mod_workstation_advanced.php b/htdocs/core/modules/workstation/mod_workstation_advanced.php index 6611f8d926e..253e4224b64 100644 --- a/htdocs/core/modules/workstation/mod_workstation_advanced.php +++ b/htdocs/core/modules/workstation/mod_workstation_advanced.php @@ -55,7 +55,7 @@ class mod_workstation_advanced extends ModeleNumRefWorkstation /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -80,7 +80,7 @@ class mod_workstation_advanced extends ModeleNumRefWorkstation // Parametrage du prefix $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -133,7 +133,7 @@ class mod_workstation_advanced extends ModeleNumRefWorkstation require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->WORKSTATION_WORKSTATION_ADVANCED_MASK; + $mask = getDolGlobalString('WORKSTATION_WORKSTATION_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/workstation/mod_workstation_standard.php b/htdocs/core/modules/workstation/mod_workstation_standard.php index 7bef21a8599..758783316e4 100644 --- a/htdocs/core/modules/workstation/mod_workstation_standard.php +++ b/htdocs/core/modules/workstation/mod_workstation_standard.php @@ -26,7 +26,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/modules/workstation/modules_workstation.php'; /** - * Class to manage customer order numbering rules standard + * Class to manage the Standard numbering rule for Workstation */ class mod_workstation_standard extends ModeleNumRefWorkstation { diff --git a/htdocs/core/modules/workstation/modules_workstation.php b/htdocs/core/modules/workstation/modules_workstation.php index c8052ed4ff8..b72d34f5812 100644 --- a/htdocs/core/modules/workstation/modules_workstation.php +++ b/htdocs/core/modules/workstation/modules_workstation.php @@ -50,8 +50,6 @@ abstract class ModelePDFWorkstation extends CommonDocGenerator public static function liste_modeles($db, $maxfilenamelength = 0) { // phpcs:enable - global $conf; - $type = 'workstation'; $list = array(); @@ -87,7 +85,7 @@ abstract class ModeleNumRefWorkstation /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/core/multicompany_page.php b/htdocs/core/multicompany_page.php index 4a3bcba51fb..690c971fd23 100644 --- a/htdocs/core/multicompany_page.php +++ b/htdocs/core/multicompany_page.php @@ -92,7 +92,7 @@ print '
    '; //print '
    '; -if (empty($conf->multicompany->enabled)) { +if (!isModEnabled('multicompany')) { $langs->load("admin"); $bookmarkList .= '
    '.$langs->trans("WarningModuleNotActive", $langs->transnoentitiesnoconv("MultiCompany")).''; $bookmarkList .= '

    '; diff --git a/htdocs/core/photos_resize.php b/htdocs/core/photos_resize.php index 65a3275dab7..efbb3ba9c19 100644 --- a/htdocs/core/photos_resize.php +++ b/htdocs/core/photos_resize.php @@ -24,6 +24,7 @@ * \brief File of page to resize photos */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; @@ -33,7 +34,7 @@ $langs->loadLangs(array("products", "other")); $id = GETPOST('id', 'int'); $action = GETPOST('action', 'aZ09'); -$modulepart = GETPOST('modulepart', 'alpha') ?GETPOST('modulepart', 'alpha') : 'produit|service'; +$modulepart = GETPOST('modulepart', 'alpha') ? GETPOST('modulepart', 'alpha') : 'produit|service'; $original_file = GETPOST("file"); $backtourl = GETPOST('backtourl'); $cancel = GETPOST('cancel', 'alpha'); @@ -56,13 +57,13 @@ if ($modulepart == 'produit' || $modulepart == 'product' || $modulepart == 'serv $accessallowed = 1; } elseif ($modulepart == 'project') { $result = restrictedArea($user, 'projet', $id); - if (!$user->rights->projet->lire) { + if (empty($user->rights->projet->lire)) { accessforbidden(); } $accessallowed = 1; } elseif ($modulepart == 'bom') { $result = restrictedArea($user, $modulepart, $id, 'bom_bom'); - if (!$user->rights->bom->read) { + if (empty($user->rights->bom->read)) { accessforbidden(); } $accessallowed = 1; @@ -73,14 +74,14 @@ if ($modulepart == 'produit' || $modulepart == 'product' || $modulepart == 'serv } $accessallowed = 1; } elseif ($modulepart == 'user') { - $result = restrictedArea($user, $modulepart, $id, $modulepart); - if (!$user->rights->user->user->lire) { + $result = restrictedArea($user, $modulepart, $id, $modulepart, $modulepart); + if (empty($user->rights->user->user->lire)) { accessforbidden(); } $accessallowed = 1; } elseif ($modulepart == 'tax') { $result = restrictedArea($user, $modulepart, $id, 'chargesociales', 'charges'); - if (!$user->rights->tax->charges->lire) { + if (empty($user->rights->tax->charges->lire)) { accessforbidden(); } $accessallowed = 1; @@ -284,45 +285,45 @@ if (empty($backtourl)) { $regs = array(); if (in_array($modulepart, array('product', 'produit', 'service', 'produit|service'))) { - $backtourl = DOL_URL_ROOT."/product/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/product/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('expensereport'))) { - $backtourl = DOL_URL_ROOT."/expensereport/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/expensereport/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('holiday'))) { - $backtourl = DOL_URL_ROOT."/holiday/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/holiday/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('member'))) { - $backtourl = DOL_URL_ROOT."/adherents/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/adherents/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('project'))) { - $backtourl = DOL_URL_ROOT."/projet/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/projet/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('propal'))) { - $backtourl = DOL_URL_ROOT."/comm/propal/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/comm/propal/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('societe'))) { - $backtourl = DOL_URL_ROOT."/societe/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/societe/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('tax'))) { - $backtourl = DOL_URL_ROOT."/compta/sociales/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/compta/sociales/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('ticket'))) { - $backtourl = DOL_URL_ROOT."/ticket/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/ticket/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('user'))) { - $backtourl = DOL_URL_ROOT."/user/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/user/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('facture'))) { - $backtourl = DOL_URL_ROOT."/compta/facture/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/compta/facture/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('facture_fourn', 'facture_fournisseur'))) { - $backtourl = DOL_URL_ROOT."/fourn/facture/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/fourn/facture/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('bank')) && preg_match('/\/statement\/([^\/]+)\//', $file, $regs)) { $num = $regs[1]; - $backtourl = DOL_URL_ROOT."/compta/bank/account_statement_document.php?id=".$id.'&num='.urlencode($num).'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/compta/bank/account_statement_document.php?id=".((int) $id).'&num='.urlencode($num).'&file='.urlencode($file); } elseif (in_array($modulepart, array('bank'))) { - $backtourl = DOL_URL_ROOT."/compta/bank/document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/compta/bank/document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('mrp'))) { - $backtourl = DOL_URL_ROOT."/mrp/mo_document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/mrp/mo_document.php?id=".((int) $id).'&file='.urlencode($file); } elseif (in_array($modulepart, array('medias'))) { $section_dir = dirname($file); if (!preg_match('/\/$/', $section_dir)) { $section_dir .= '/'; } - $backtourl = DOL_URL_ROOT."/website/index.php?action=file_manager&website=".$website.'§ion_dir='.urlencode($section_dir); + $backtourl = DOL_URL_ROOT.'/website/index.php?action=file_manager'.($website ? '&website='.urlencode($website) : '').'§ion_dir='.urlencode($section_dir); } else { // Generic case that should work for everybody else - $backtourl = DOL_URL_ROOT."/".$modulepart."/".$modulepart."_document.php?id=".$id.'&file='.urldecode($file); + $backtourl = DOL_URL_ROOT."/".$modulepart."/".$modulepart."_document.php?id=".((int) $id).'&file='.urlencode($file); } } @@ -474,6 +475,7 @@ if ($action == 'confirm_crop') { * View */ +$head = ''; $title = $langs->trans("ImageEditor"); $morejs = array('/includes/jquery/plugins/jcrop/js/jquery.Jcrop.min.js', '/core/js/lib_photosresize.js'); $morecss = array('/includes/jquery/plugins/jcrop/css/jquery.Jcrop.css'); @@ -499,14 +501,15 @@ print '
    '."\n"; */ print ''."\n"; -print ''; +print ''; print ''; +print ''; print '
    '; print ''.$langs->trans("Resize").''; print $langs->trans("ResizeDesc").'
    '; -print $langs->trans("NewLength").': px   '.$langs->trans("or").'   '; -print $langs->trans("NewHeight").': px  
    '; +print $langs->trans("NewLength").': px   '.$langs->trans("or").'   '; +print $langs->trans("NewHeight").': px  
    '; print ''; print ''; @@ -519,6 +522,7 @@ print ' '; print ''; print '
    '."\n"; print ''; + print '
    '."\n"; @@ -559,17 +563,18 @@ if (!empty($conf->use_javascript_ajax)) { print '
    '; print '
    '; - print ''; + print ''; print ''; + print ''; print '
    '.$langs->trans("NewSizeAfterCropping").': - - - - - - +   +   +   +   +   +  
    diff --git a/htdocs/core/search.php b/htdocs/core/search.php index 321fc94a925..333cb218e58 100644 --- a/htdocs/core/search.php +++ b/htdocs/core/search.php @@ -50,6 +50,7 @@ if (!defined('NOREQUIREMENU')) { require_once '../main.inc.php'; + /* * Actions */ @@ -128,11 +129,11 @@ if (GETPOST('search_task') != '') { } if (GETPOST('search_user') != '') { - header("Location: ".DOL_URL_ROOT.'/user/list.php?mode=search&sall='.urlencode(GETPOST('search_user'))); + header("Location: ".DOL_URL_ROOT.'/user/list.php?search_all='.urlencode(GETPOST('search_user'))); exit; } if (GETPOST('search_group') != '') { - header("Location: ".DOL_URL_ROOT.'/user/group/list.php?mode=search&sall='.urlencode(GETPOST('search_group'))); + header("Location: ".DOL_URL_ROOT.'/user/group/list.php?search_all='.urlencode(GETPOST('search_group'))); exit; } diff --git a/htdocs/core/tools.php b/htdocs/core/tools.php index 3c55f1a1e37..86b1dfc8875 100644 --- a/htdocs/core/tools.php +++ b/htdocs/core/tools.php @@ -22,6 +22,7 @@ * \brief Home page for top menu tools */ +// Load Dolibarr environment require '../main.inc.php'; // Load translation files required by the page diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php index 1dbc0861adb..d44c73129da 100644 --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php @@ -97,6 +97,7 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con else if (type == 'password') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); required.val('').prop('disabled', true); default_value.val('').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helppassword").show();} else if (type == 'boolean') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide();} else if (type == 'price') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide();} + else if (type == 'pricecy') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide();} else if (type == 'select') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helpselect").show();} else if (type == 'sellist') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helpsellist").show();} else if (type == 'radio') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helpselect").show();} @@ -134,6 +135,12 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con jQuery("#computed_value").keyup(function() { init_typeoffields(jQuery('#type').val()); }); + + /* Autofill the code with label */ + jQuery("#label").keyup(function() { + console.log("Update new field"); + $("#attrname").val( $(this).val().replace(/[^a-zA-Z0-9_]/g, '').toLowerCase() ); + }); }); @@ -145,7 +152,7 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    - + @@ -192,9 +199,9 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con - + - + @@ -203,9 +210,15 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con + + + + + + -multicompany->enabled)) { ?> + diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php index c055dd1d3b5..2e8511acf8e 100644 --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php @@ -96,6 +96,7 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con else if (type == 'password') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); required.val('').prop('disabled', true); default_value.val('').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helppassword").show();} else if (type == 'boolean') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide(); jQuery("#helpchkbxlst").hide();} else if (type == 'price') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide(); jQuery("#helpchkbxlst").hide();} + else if (type == 'pricecy') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide(); jQuery("#helpchkbxlst").hide();} else if (type == 'select') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helpselect").show();} else if (type == 'sellist') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helpsellist").show();} else if (type == 'radio') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show(); jQuery(".spanforparamtooltip").hide(); jQuery("#helpselect").show();} @@ -167,6 +168,9 @@ $help = $extrafields->attributes[$elementtype]['help'][$attrname]; $entitycurrentorall = $extrafields->attributes[$elementtype]['entityid'][$attrname]; $printable = $extrafields->attributes[$elementtype]['printable'][$attrname]; $enabled = $extrafields->attributes[$elementtype]['enabled'][$attrname]; +$css = $extrafields->attributes[$elementtype]['css'][$attrname]; +$cssview = $extrafields->attributes[$elementtype]['cssview'][$attrname]; +$csslist = $extrafields->attributes[$elementtype]['csslist'][$attrname]; if ((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_array($param)) { $param_chain = ''; @@ -191,16 +195,17 @@ if ((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_a array('varchar', 'phone', 'mail', 'url', 'select', 'password', 'text', 'html'), + 'varchar'=>array('varchar', 'phone', 'mail', 'url', 'ip', 'select', 'password', 'text', 'html'), 'double'=>array('double', 'price'), 'price'=>array('double', 'price'), 'text'=>array('text', 'html'), 'html'=>array('text', 'html'), 'password'=>array('password', 'varchar'), - 'mail'=>array('varchar', 'phone', 'mail', 'url', 'select'), - 'url'=>array('varchar', 'phone', 'mail', 'url', 'select'), - 'phone'=>array('varchar', 'phone', 'mail', 'url', 'select'), - 'select'=>array('varchar', 'phone', 'mail', 'url', 'select'), + 'mail'=>array('varchar', 'phone', 'mail', 'url', 'ip', 'select'), + 'url'=>array('varchar', 'phone', 'mail', 'url', 'ip', 'select'), + 'phone'=>array('varchar', 'phone', 'mail', 'url', 'ip', 'select'), + 'ip'=>array('varchar', 'phone', 'mail', 'url', 'ip', 'select'), + 'select'=>array('varchar', 'phone', 'mail', 'url', 'ip', 'select'), 'date'=>array('date', 'datetime') ); /* Disabled because text is text on several lines, when varchar is text on 1 line, we should not be able to convert @@ -278,10 +283,10 @@ if (in_array($type, array_keys($typewecanchangeinto))) { - + - + + + + + + + + + + + + -multicompany->enabled)) { ?> + diff --git a/htdocs/core/tpl/admin_extrafields_view.tpl.php b/htdocs/core/tpl/admin_extrafields_view.tpl.php index 369f60ea201..c93501ead18 100644 --- a/htdocs/core/tpl/admin_extrafields_view.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_view.tpl.php @@ -38,14 +38,25 @@ $langs->load("modulebuilder"); '.$langs->trans("DefineHereComplementaryAttributes", $textobject).'
    '."\n"; -print '
    '; +$title = ''.$langs->trans("DefineHereComplementaryAttributes", empty($textobject) ? '': $textobject).'
    '."\n"; +//if ($action != 'create' && $action != 'edit') { +$newcardbutton = dolGetButtonTitle($langs->trans('NewAttribute'), '', 'fa fa-plus-circle', $_SERVER["PHP_SELF"].'?action=create', '', (($action != 'create' && $action != 'edit') ? 1 : 1)); +/*} else { + $newcardbutton = ''; +}*/ + +print '
    '; +print '
    '; +print '
    '.$title.'
    '; +print '
    '.$newcardbutton.'
    '; +print '
    '; +print '
    '; // Load $extrafields->attributes $extrafields->fetch_name_optionals_label($elementtype); print '
    '; -print '
    trans("LabelOrTranslationKey"); ?>
    trans("LabelOrTranslationKey"); ?>
    trans("AttributeCode"); ?> (trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)
    trans("Unique"); ?>>
    trans("Required"); ?>>
    trans("Mandatory"); ?>>
    trans("AlwaysEditable"); ?>>
    textwithpicto($langs->trans("AlwaysEditable"), $langs->trans("EditableWhenDraftOnly")); ?>>
    textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
    trans("Totalizable"); ?>>
    textwithpicto($langs->trans("CssOnEdit"), $langs->trans("HelpCssOnEditDesc")); ?>
    textwithpicto($langs->trans("CssOnView"), $langs->trans("HelpCssOnViewDesc")); ?>
    textwithpicto($langs->trans("CssOnList"), $langs->trans("HelpCssOnListDesc")); ?>
    textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?>
    trans("AllEntities"); ?>>
    trans("Unique"); ?>>
    trans("Required"); ?>>
    trans("Mandatory"); ?>>
    trans("AlwaysEditable"); ?>>
    textwithpicto($langs->trans("AlwaysEditable"), $langs->trans("EditableWhenDraftOnly")); ?>>
    textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?> @@ -290,12 +295,23 @@ if (in_array($type, array_keys($typewecanchangeinto))) {
    textwithpicto($langs->trans("DisplayOnPdf"), $langs->trans("DisplayOnPdfDesc")); ?>
    textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")); ?>>
    textwithpicto($langs->trans("CssOnEdit"), $langs->trans("HelpCssOnEditDesc")); ?>
    textwithpicto($langs->trans("CssOnView"), $langs->trans("HelpCssOnViewDesc")); ?>
    textwithpicto($langs->trans("CssOnList"), $langs->trans("HelpCssOnListDesc")); ?>
    textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?>
    trans("AllEntities"); ?>>
    '; +print '
    '; print ''; print ''; print ''; print ''; print ''; -print ''; -print ''; -print ''; +print ''; +print ''; +print ''; print ''; print ''; -if (!empty($conf->multicompany->enabled)) { +print ''; +print ''; +print ''; +if (isModEnabled('multicompany')) { print ''; } print ''; @@ -87,14 +101,14 @@ if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafiel // Position print "\n"; // Label - print "\n"; // We don't translate here, we want admin to know what is the key not translated value + print '\n"; // We don't translate here, we want admin to know what is the key not translated value // Label translated print '\n"; // Key - print "\n"; + print '\n"; // Type $typetoshow = $type2label[$extrafields->attributes[$elementtype]['type'][$key]]; - print '\n"; // Size @@ -113,7 +127,14 @@ if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafiel print '\n"; // Summable print '\n"; - if (!empty($conf->multicompany->enabled)) { + // CSS + print '\n"; + // CSS view + print '\n"; + // CSS list + print '\n"; + // Multicompany + if (isModEnabled('multicompany')) { print ''; } + // Actions print '"; } } else { - $colspan = 14; - if (!empty($conf->multicompany->enabled)) { + $colspan = 17; + if (isModEnabled('multicompany')) { $colspan++; } diff --git a/htdocs/core/tpl/advtarget.tpl.php b/htdocs/core/tpl/advtarget.tpl.php index 86292ec0ff4..55d5c5ed24a 100644 --- a/htdocs/core/tpl/advtarget.tpl.php +++ b/htdocs/core/tpl/advtarget.tpl.php @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } @@ -198,7 +198,7 @@ if (!empty($array_query['cust_prospect_status'])) { print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing'); } print ''."\n"; @@ -243,7 +243,7 @@ print ''."\n"; // Customer Default Langauge -if (!empty($conf->global->MAIN_MULTILANGS)) { +if (getDolGlobalInt('MAIN_MULTILANGS')) { print ''."\n"; } -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { // Customer Categories print '
    '.$langs->trans("Position"); @@ -60,12 +71,15 @@ print ''.$langs->trans("Type").''.$langs->trans("Size").''.$langs->trans("ComputedFormula").''.$langs->trans("Unique").''.$langs->trans("Required").''.$langs->trans("AlwaysEditable").''.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).''.$langs->trans("Mandatory").''.$form->textwithpicto($langs->trans("AlwaysEditable"), $langs->trans("EditableWhenDraftOnly")).''.$form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")).''.$form->textwithpicto($langs->trans("DisplayOnPdf"), $langs->trans("DisplayOnPdfDesc")).''.$form->textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")).''.$form->textwithpicto($langs->trans("CssOnEdit"), $langs->trans("HelpCssOnEditDesc")).''.$form->textwithpicto($langs->trans("CssOnView"), $langs->trans("HelpCssOnViewDesc")).''.$form->textwithpicto($langs->trans("CssOnList"), $langs->trans("HelpCssOnListDesc")).''.$langs->trans("Entity").' ".dol_escape_htmltag($extrafields->attributes[$elementtype]['pos'][$key])."".dol_escape_htmltag($extrafields->attributes[$elementtype]['label'][$key])."'.dol_escape_htmltag($extrafields->attributes[$elementtype]['label'][$key])."'.dol_escape_htmltag($langs->transnoentitiesnoconv($extrafields->attributes[$elementtype]['label'][$key]))."".dol_escape_htmltag($key)."'.dol_escape_htmltag($key)."'; + print ''; print dol_escape_htmltag($typetoshow); print "'.dol_escape_htmltag($extrafields->attributes[$elementtype]['printable'][$key])."'.yn($extrafields->attributes[$elementtype]['totalizable'][$key])."'.dol_escape_htmltag($extrafields->attributes[$elementtype]['css'][$key])."'.dol_escape_htmltag($extrafields->attributes[$elementtype]['cssview'][$key])."'.dol_escape_htmltag($extrafields->attributes[$elementtype]['csslist'][$key])."'; if (empty($extrafields->attributes[$elementtype]['entityid'][$key])) { print $langs->trans("All"); @@ -131,6 +152,7 @@ if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafiel } print ''; print ''.img_edit().''; print '  '.img_delete().''; @@ -138,8 +160,8 @@ if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafiel print "
    '; -print $formadvtargetemaling->multiselectProspectionStatus($array_query['cust_prospect_status'], 'cust_prospect_status', 1); +print $formadvtargetemaling->multiselectProspectionStatus($array_query['cust_prospect_status'], 'cust_prospect_status'); print ''."\n"; print '
    '."\n"; print '
    '.$langs->trans("DefaultLang"); if (!empty($array_query['cust_language'])) { print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing'); @@ -254,7 +254,7 @@ if (!empty($conf->global->MAIN_MULTILANGS)) { print '
    '.$langs->trans("CustomersCategoryShort"); if (!empty($array_query['cust_categ'])) { @@ -451,7 +451,7 @@ print '
    '; print '
    '."\n"; print '
    '.$langs->trans("ContactCategoriesShort"); if (!empty($array_query['contact_categ'])) { diff --git a/htdocs/core/tpl/ajax/fileupload_main.tpl.php b/htdocs/core/tpl/ajax/fileupload_main.tpl.php deleted file mode 100644 index 8be24f7450f..00000000000 --- a/htdocs/core/tpl/ajax/fileupload_main.tpl.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// Protection to avoid direct call of template -if (empty($conf) || !is_object($conf)) { - print "Error, template page can't be called as URL"; - exit; -} - -?> - - - - diff --git a/htdocs/core/tpl/ajax/fileupload_view.tpl.php b/htdocs/core/tpl/ajax/fileupload_view.tpl.php deleted file mode 100644 index 70182a17dbc..00000000000 --- a/htdocs/core/tpl/ajax/fileupload_view.tpl.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// Protection to avoid direct call of template -if (empty($conf) || !is_object($conf)) { - print "Error, template page can't be called as URL"; - exit; -} - -?> - - - - - - - - - -
    -
    - - - - trans('AddFiles'); ?> - - - - - -
    - -
    - - - -
     
    -
    -
    - -
    -
    - - - - - - - - - - -
    - diff --git a/htdocs/core/tpl/card_presend.tpl.php b/htdocs/core/tpl/card_presend.tpl.php index 7b47c4676a6..84b051d24f3 100644 --- a/htdocs/core/tpl/card_presend.tpl.php +++ b/htdocs/core/tpl/card_presend.tpl.php @@ -41,16 +41,20 @@ if ($action == 'presend') { $object->fetch_projet(); - if (!in_array($object->element, array('societe', 'user', 'member'))) { - // TODO get also the main_lastdoc field of $object. If not found, try to guess with following code - - $ref = dol_sanitizeFileName($object->ref); - include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - // Special case - if ($object->element == 'invoice_supplier') { - $fileparams = dol_most_recent_file($diroutput.'/'.get_exdir($object->id, 2, 0, 0, $object, $object->element).$ref, preg_quote($ref, '/').'([^\-])+'); + $ref = dol_sanitizeFileName($object->ref); + if (!in_array($object->element, array('user', 'member'))) { + //$fileparams['fullname'] can be filled from the card + //Get also the main_lastdoc field of $object. If not found, try to guess with following code + if (!empty($object->last_main_doc) && is_readable(DOL_DATA_ROOT.'/'.$object->last_main_doc) && is_file(DOL_DATA_ROOT.'/'.$object->last_main_doc)) { + $fileparams['fullname'] = DOL_DATA_ROOT.'/'.$object->last_main_doc; } else { - $fileparams = dol_most_recent_file($diroutput.'/'.$ref, preg_quote($ref, '/').'[^\-]+'); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + // Special case + if ($object->element == 'invoice_supplier') { + $fileparams = dol_most_recent_file($diroutput.'/'.get_exdir($object->id, 2, 0, 0, $object, $object->element).$ref, preg_quote($ref, '/').'([^\-])+'); + } else { + $fileparams = dol_most_recent_file($diroutput.'/'.$ref, preg_quote($ref, '/').'[^\-]+'); + } } $file = $fileparams['fullname']; @@ -59,7 +63,7 @@ if ($action == 'presend') { // Define output language $outputlangs = $langs; $newlang = ''; - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; if (GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); @@ -70,7 +74,7 @@ if ($action == 'presend') { $outputlangs = new Translate('', $conf); $outputlangs->setDefaultLang($newlang); // Load traductions files required by page - $outputlangs->loadLangs(array('commercial', 'bills', 'orders', 'contracts', 'members', 'propal', 'products', 'supplier_proposal', 'interventions', 'receptions')); + $outputlangs->loadLangs(array('commercial', 'bills', 'orders', 'contracts', 'members', 'propal', 'products', 'supplier_proposal', 'interventions', 'receptions', 'sendings')); } $topicmail = ''; @@ -82,12 +86,15 @@ if ($action == 'presend') { // Build document if it not exists $forcebuilddoc = true; - if (in_array($object->element, array('societe', 'user', 'member'))) { + if (in_array($object->element, array('user', 'member'))) { $forcebuilddoc = false; } if ($object->element == 'invoice_supplier' && empty($conf->global->INVOICE_SUPPLIER_ADDON_PDF)) { $forcebuilddoc = false; } + if ($object->element == 'societe' && empty($conf->global->COMPANY_ADDON_PDF)) { + $forcebuilddoc = false; + } if ($forcebuilddoc) { // If there is no default value for supplier invoice, we do not generate file, even if modelpdf was set by a manual generation if ((!$file || !is_readable($file)) && method_exists($object, 'generateDocument')) { $result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref); @@ -143,11 +150,33 @@ if ($action == 'presend') { $formmail->fromname = (!empty($conf->global->ORDER_SUPPLIER_EMAIL_SENDER_NAME) ? $conf->global->ORDER_SUPPLIER_EMAIL_SENDER_NAME : ''); $formmail->fromtype = 'special'; } + if ($object->element === 'recruitmentcandidature' ) { + $formmail->frommail = (!empty($conf->global->RECRUITMENT_EMAIL_SENDER) ? $conf->global->RECRUITMENT_EMAIL_SENDER : $recruitermail); + $formmail->fromname = (!empty($conf->global->RECRUITMENT_EMAIL_SENDER_NAME) ? $conf->global->RECRUITMENT_EMAIL_SENDER_NAME : (!empty($recruitername) ? $recruitername : '')); + $formmail->fromtype = 'special'; + } - $formmail->trackid = $trackid; + // Set the default "From" + $defaultfrom = ''; + if (GETPOSTISSET('fromtype')) { + $defaultfrom = GETPOST('fromtype'); + } else { + $parameters = array(); + $reshook = $hookmanager->executeHooks('getDefaultFromEmail', $parameters, $formmail); + if (empty($reshook)) { + $defaultfrom = $formmail->fromtype; + } + if (!empty($hookmanager->resArray['defaultfrom'])) { + $defaultfrom = $hookmanager->resArray['defaultfrom']; + } + } + $formmail->fromtype = $defaultfrom; + + $formmail->trackid = empty($trackid) ? '' : $trackid; + $formmail->inreplyto = empty($inreplyto) ? '' : $inreplyto; $formmail->withfrom = 1; - // Fill list of recipient with email inside <>. + // Define $liste, a list of recipients with email inside <>. $liste = array(); if ($object->element == 'expensereport') { $fuser = new User($db); @@ -193,26 +222,39 @@ if ($action == 'presend') { } } - $formmail->withto = $liste; - $formmail->withtofree = (GETPOSTISSET('sendto') ? (GETPOST('sendto', 'alphawithlgt') ? GETPOST('sendto', 'alphawithlgt') : '1') : '1'); - $formmail->withtocc = $liste; - $formmail->withtoccc = getDolGlobalString('MAIN_EMAIL_USECCC'); - $formmail->withtopic = $topicmail; - $formmail->withfile = 2; - $formmail->withbody = 1; - $formmail->withdeliveryreceipt = 1; - $formmail->withcancel = 1; - //$arrayoffamiliestoexclude=array('system', 'mycompany', 'object', 'objectamount', 'date', 'user', ...); if (!isset($arrayoffamiliestoexclude)) { $arrayoffamiliestoexclude = null; } // Make substitution in email content - if ($object) { + if (!empty($object)) { + // First we set ->substit (useless, it will be erased later) and ->substit_lines $formmail->setSubstitFromObject($object, $langs); } $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, $arrayoffamiliestoexclude, $object); + + // Overwrite __SENDEREMAIL_SIGNATURE__ with value select into form + if ($formmail->fromtype) { + $reg = array(); + if (preg_match('/user/', $formmail->fromtype, $reg)) { + $emailsendersignature = $user->signature; + } elseif (preg_match('/company/', $formmail->fromtype, $reg)) { + $emailsendersignature = ''; + } elseif (preg_match('/senderprofile_(\d+)/', $formmail->fromtype, $reg)) { + $sql = "SELECT rowid, label, email, signature FROM ".$db->prefix()."c_email_senderprofile"; + $sql .= " WHERE rowid = ".((int) $reg[1]); + $resql = $db->query($sql); + if ($resql) { + $obj = $db->fetch_object($resql); + if ($obj) { + $emailsendersignature = $obj->signature; + } + } + } + } + $substitutionarray['__SENDEREMAIL_SIGNATURE__'] = $emailsendersignature; + $substitutionarray['__CHECK_READ__'] = ""; if (is_object($object) && is_object($object->thirdparty)) { $checkRead= 'email ? $contactstatic->email : $langs->transnoentitiesnoconv("NoEMail")) .">"; + $liste[$contact['id']] = $contacttoshow; + } } } + $formmail->withto = $liste; + $formmail->withtofree = (GETPOST('sendto', 'alphawithlgt') ? GETPOST('sendto', 'alphawithlgt') : '1'); + $formmail->withtocc = $liste; + $formmail->withtoccc = getDolGlobalString('MAIN_EMAIL_USECCC'); + $formmail->withtopic = $topicmail; + $formmail->withfile = 2; + $formmail->withbody = 1; + $formmail->withdeliveryreceipt = 1; + $formmail->withcancel = 1; + // Array of substitutions $formmail->substit = $substitutionarray; diff --git a/htdocs/core/tpl/commonfields_add.tpl.php b/htdocs/core/tpl/commonfields_add.tpl.php index be91d7b28a5..24fddc2fda4 100644 --- a/htdocs/core/tpl/commonfields_add.tpl.php +++ b/htdocs/core/tpl/commonfields_add.tpl.php @@ -35,7 +35,7 @@ if (empty($conf) || !is_object($conf)) { $object->fields = dol_sort_array($object->fields, 'position'); foreach ($object->fields as $key => $val) { - // Discard if extrafield is a hidden field on form + // Discard if field is a hidden field on form if (abs($val['visible']) != 1 && abs($val['visible']) != 3) { continue; } diff --git a/htdocs/core/tpl/commonfields_view.tpl.php b/htdocs/core/tpl/commonfields_view.tpl.php index 42ead1573f4..48642f29135 100644 --- a/htdocs/core/tpl/commonfields_view.tpl.php +++ b/htdocs/core/tpl/commonfields_view.tpl.php @@ -64,15 +64,23 @@ foreach ($object->fields as $key => $val) { print ' tdtop'; } print '">'; + + $labeltoshow = ''; if (!empty($val['help'])) { - print $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); + $labeltoshow .= $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); } else { if (isset($val['copytoclipboard']) && $val['copytoclipboard'] == 1) { - print showValueWithClipboardCPButton($value, 0, $langs->transnoentitiesnoconv($val['label'])); + $labeltoshow .= showValueWithClipboardCPButton($value, 0, $langs->transnoentitiesnoconv($val['label'])); } else { - print $langs->trans($val['label']); + $labeltoshow .= $langs->trans($val['label']); } } + if (empty($val['alwayseditable'])) { + print $labeltoshow; + } else { + print $form->editfieldkey($labeltoshow, $key, $value, $object, 1, $val['type']); + } + print '
    '; - if (in_array($val['type'], array('text', 'html'))) { - print '
    '; - } - if ($key == 'lang') { - $langs->load("languages"); - $labellang = ($value ? $langs->trans('Language_'.$value) : ''); - print picto_from_langcode($value, 'class="paddingrightonly saturatemedium opacitylow"'); - print $labellang; - } else { - if (isset($val['copytoclipboard']) && $val['copytoclipboard'] == 2) { - $out = $object->showOutputField($val, $key, $value, '', '', '', 0); - print showValueWithClipboardCPButton($out, 0, $out); - } else { - print $object->showOutputField($val, $key, $value, '', '', '', 0); + if (empty($val['alwayseditable'])) { + if (preg_match('/^(text|html)/', $val['type'])) { + print '
    '; } - } - //print dol_escape_htmltag($object->$key, 1, 1); - if (in_array($val['type'], array('text', 'html'))) { - print '
    '; + if ($key == 'lang') { + $langs->load("languages"); + $labellang = ($value ? $langs->trans('Language_'.$value) : ''); + print picto_from_langcode($value, 'class="paddingrightonly saturatemedium opacitylow"'); + print $labellang; + } else { + if (isset($val['copytoclipboard']) && $val['copytoclipboard'] == 2) { + $out = $object->showOutputField($val, $key, $value, '', '', '', 0); + print showValueWithClipboardCPButton($out, 0, $out); + } else { + print $object->showOutputField($val, $key, $value, '', '', '', 0); + } + } + //print dol_escape_htmltag($object->$key, 1, 1); + if (preg_match('/^(text|html)/', $val['type'])) { + print '
    '; + } + } else { + print $form->editfieldval($labeltoshow, $key, $value, $object, 1, $val['type']); } print '
    '; - if (in_array($val['type'], array('text', 'html'))) { - $rightpart .= '
    '; - } - $rightpart .= $object->showOutputField($val, $key, $value, '', '', '', 0); - //$rightpart .= dol_escape_htmltag($object->$key, 1, 1); - if (in_array($val['type'], array('text', 'html'))) { - $rightpart .= '
    '; + + if (empty($val['alwayseditable'])) { + if (preg_match('/^(text|html)/', $val['type'])) { + $rightpart .= '
    '; + } + if ($key == 'lang') { + $langs->load("languages"); + $labellang = ($value ? $langs->trans('Language_'.$value) : ''); + $rightpart .= picto_from_langcode($value, 'class="paddingrightonly saturatemedium opacitylow"'); + $rightpart .= $labellang; + } else { + if (isset($val['copytoclipboard']) && $val['copytoclipboard'] == 2) { + $out = $object->showOutputField($val, $key, $value, '', '', '', 0); + $rightpart .= showValueWithClipboardCPButton($out, 0, $out); + } else { + $rightpart.= $object->showOutputField($val, $key, $value, '', '', '', 0); + } + } + if (preg_match('/^(text|html)/', $val['type'])) { + $rightpart .= '
    '; + } + } else { + $rightpart .= $form->editfieldval($labeltoshow, $key, $value, $object, 1, $val['type']); } + $rightpart .= '
    '; -//print ''; -//print ''; - print ''; print_liste_field_titre($arrayfields['thirdparty']['label'], $_SERVER["PHP_SELF"], "thirdparty_name", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($arrayfields['contact']['label'], $_SERVER["PHP_SELF"], "contact_name", "", $param, "", $sortfield, $sortorder); @@ -316,7 +313,17 @@ foreach ($list as $entry) { print ""; } - +if (empty($list)) { + $colspan = 5 + ($permission ? 1 : 0); + print ''; +} print "
    '; + if (is_object($object) && !empty($object->thirdparty)) { + print $form->textwithpicto($langs->trans("NoSpecificContactAddress"), $langs->trans("NoSpecificContactAddressBis")); + } else { + print $langs->trans("NoSpecificContactAddress"); + } + print ''; + print '
    "; print ''; diff --git a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php index aeafac07962..267ca6803c9 100644 --- a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php +++ b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php @@ -23,7 +23,7 @@ if (!empty($extrafieldsobjectkey) && !empty($extrafields->attributes[$extrafield $tmpkey = 'options_'.$key; - if (in_array($extrafields->attributes[$extrafieldsobjectkey]['type'][$key], array('date', 'datetime', 'timestamp')) && !is_numeric($obj->$tmpkey)) { + if (in_array($extrafields->attributes[$extrafieldsobjectkey]['type'][$key], array('date', 'datetime', 'timestamp')) && isset($obj->$tmpkey) && !is_numeric($obj->$tmpkey)) { $datenotinstring = $obj->$tmpkey; if (!is_numeric($obj->$tmpkey)) { // For backward compatibility $datenotinstring = $db->jdate($datenotinstring); @@ -67,7 +67,10 @@ if (!empty($extrafieldsobjectkey) && !empty($extrafields->attributes[$extrafield // we keep position for the first line $totalarray['totalizable'][$key]['pos'] = $totalarray['nbfield']; } - if (is_numeric($obj->$tmpkey)) { + if (isset($obj->$tmpkey) && is_numeric($obj->$tmpkey)) { + if (!isset($totalarray['totalizable'][$key]['total'])) { + $totalarray['totalizable'][$key]['total'] = 0; + } $totalarray['totalizable'][$key]['total'] += $obj->$tmpkey; } } diff --git a/htdocs/core/tpl/extrafields_list_search_input.tpl.php b/htdocs/core/tpl/extrafields_list_search_input.tpl.php index aec66108d66..f57101b81e6 100644 --- a/htdocs/core/tpl/extrafields_list_search_input.tpl.php +++ b/htdocs/core/tpl/extrafields_list_search_input.tpl.php @@ -29,9 +29,9 @@ if (!empty($extrafieldsobjectkey)) { // $extrafieldsobject is the $object->table print '
    '; $tmpkey = preg_replace('/'.$search_options_pattern.'/', '', $key); - if (in_array($typeofextrafield, array('varchar', 'int', 'double')) && empty($extrafields->attributes[$extrafieldsobjectkey]['computed'][$key])) { + if (in_array($typeofextrafield, array('varchar', 'mail', 'ip', 'url', 'int', 'double')) && empty($extrafields->attributes[$extrafieldsobjectkey]['computed'][$key])) { $searchclass = ''; - if (in_array($typeofextrafield, array('varchar'))) { + if (in_array($typeofextrafield, array('varchar', 'mail', 'ip', 'url'))) { $searchclass = 'searchstring'; } if (in_array($typeofextrafield, array('int', 'double'))) { diff --git a/htdocs/core/tpl/extrafields_list_search_title.tpl.php b/htdocs/core/tpl/extrafields_list_search_title.tpl.php index 53a12e2d73d..8d24c81c2e4 100644 --- a/htdocs/core/tpl/extrafields_list_search_title.tpl.php +++ b/htdocs/core/tpl/extrafields_list_search_title.tpl.php @@ -36,7 +36,7 @@ if (!empty($extrafieldsobjectkey)) { // $extrafieldsobject is the $object->table $tooltip = empty($extrafields->attributes[$extrafieldsobjectkey]['help'][$key]) ? '' : $extrafields->attributes[$extrafieldsobjectkey]['help'][$key]; - print getTitleFieldOfList($extrafields->attributes[$extrafieldsobjectkey]['label'][$key], 0, $_SERVER["PHP_SELF"], $sortonfield, "", $param, ($cssclass ? 'class="'.$cssclass.'" data-titlekey="'.$key.'"' : 'data-titlekey="'.$key.'"'), $sortfield, $sortorder, '', $disablesortlink, $tooltip)."\n"; + print getTitleFieldOfList($extrafields->attributes[$extrafieldsobjectkey]['label'][$key], 0, $_SERVER["PHP_SELF"], $sortonfield, "", $param, 'data-titlekey="'.$key.'"', $sortfield, $sortorder, $cssclass.' ', $disablesortlink, $tooltip)."\n"; if (isset($totalarray) && isset($totalarray['nbfield'])) { $totalarray['nbfield']++; } diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php index 3db65e198c5..7d99a021f69 100644 --- a/htdocs/core/tpl/extrafields_view.tpl.php +++ b/htdocs/core/tpl/extrafields_view.tpl.php @@ -99,9 +99,9 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l $langs->load($extrafields->attributes[$object->table_element]['langfile'][$tmpkeyextra]); } if ($action == 'edit_extras') { - $value = (GETPOSTISSET("options_".$tmpkeyextra) ? GETPOST("options_".$tmpkeyextra) : $object->array_options["options_".$tmpkeyextra]); + $value = (GETPOSTISSET("options_".$tmpkeyextra) ? GETPOST("options_".$tmpkeyextra) : (isset($object->array_options["options_".$tmpkeyextra]) ? $object->array_options["options_".$tmpkeyextra] : '')); } else { - $value = (!empty($object->array_options["options_".$tmpkeyextra]) ? $object->array_options["options_".$tmpkeyextra] : ''); + $value = (isset($object->array_options["options_".$tmpkeyextra]) ? $object->array_options["options_".$tmpkeyextra] : ''); //var_dump($tmpkeyextra.' - '.$value); } @@ -237,7 +237,7 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l if ($object->table_element == 'societe') { $fieldid = 'socid'; } - print '
    '; + print ''; print ''; print ''; print ''; diff --git a/htdocs/core/tpl/filemanager.tpl.php b/htdocs/core/tpl/filemanager.tpl.php index ddcb23da891..b3edcb7984f 100644 --- a/htdocs/core/tpl/filemanager.tpl.php +++ b/htdocs/core/tpl/filemanager.tpl.php @@ -44,17 +44,19 @@ $permtoadd = 0; $permtoupload = 0; $showroot = 0; if ($module == 'ecm') { - $permtoadd = $user->rights->ecm->setup; - $permtoupload = $user->rights->ecm->upload; + $permtoadd = $user->hasRight("ecm", "setup"); + $permtoupload = $user->hasRight("ecm", "upload"); $showroot = 0; } if ($module == 'medias') { - $permtoadd = ($user->rights->mailing->creer || $user->rights->website->write); - $permtoupload = ($user->rights->mailing->creer || $user->rights->website->write); + $permtoadd = ($user->hasRight("mailing", "creer") || $user->hasRight("website", "write")); + $permtoupload = ($user->hasRight("mailing", "creer") || $user->hasRight("website", "write")); $showroot = 1; } - +if (!isset($section)) { + $section = 0; +} // Confirm remove file (for non javascript users) if (($action == 'delete' || $action == 'file_manager_delete') && empty($conf->use_javascript_ajax)) { @@ -106,12 +108,26 @@ $('#acreatedir').on('click', function() { try{ section_dir = $('.directory.expanded')[$('.directory.expanded').length-1].children[0].rel; section = $('.directory.expanded')[$('.directory.expanded').length-1].children[0].id.split('_')[2]; + catParent = "; +if ($module == 'ecm') { + print "section;"; +} else { + print "section_dir.substring(0, section_dir.length - 1);"; +} +print " } catch{ section_dir = '/'; section = 0; + catParent = "; +if ($module == 'ecm') { + print "section;"; +} else { + print "section_dir;"; +} +print " } console.log('We click to create a new directory, we set current section_dir='+section_dir+' into href url of button acreatedir'); - $('#acreatedir').attr('href', $('#acreatedir').attr('href')+'§ion_dir='+encodeURI(section_dir)+'§ion='+encodeURI(section)); + $('#acreatedir').attr('href', $('#acreatedir').attr('href')+'%26section_dir%3D'+encodeURI(section_dir)+'%26section%3D'+encodeURI(section)+'§ion_dir='+encodeURI(section_dir)+'§ion='+encodeURI(section)+'&catParent='+encodeURI(catParent)); console.log($('#acreatedir').attr('href')); }); $('#agenerateimgwebp').on('click', function() { @@ -248,12 +264,13 @@ if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg $showonrightsize = ''; // Manual section - $htmltooltip = $langs->trans("ECMAreaDesc2"); + $htmltooltip = $langs->trans("ECMAreaDesc2a"); + $htmltooltip .= '
    '.$langs->trans("ECMAreaDesc2b"); if (!empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS)) { // Show the link to "Root" if ($showroot) { - print '
    '; + print '
    '; // Show filemanager tree (will be filled by a call of ajax /ecm/tpl/enablefiletreeajax.tpl.php, later, that executes ajaxdirtree.php) print '
    '; @@ -272,7 +289,8 @@ if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg } print '
    '; $_POST['modulepart'] = $module; @@ -309,10 +327,15 @@ if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg $valtotalizable) { $totalarray['pos'][$valtotalizable['pos']] = $keytotalizable; - $totalarray['val'][$keytotalizable] = $valtotalizable['total']; + $totalarray['val'][$keytotalizable] = isset($valtotalizable['total']) ? $valtotalizable['total'] : 0; } } // Show total line diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index 5965132d68c..7f97e751ded 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -33,10 +33,8 @@ if (empty($conf) || !is_object($conf)) { // DDOS protection $size = (empty($_SERVER['CONTENT_LENGTH']) ? 0 : (int) $_SERVER['CONTENT_LENGTH']); if ($size > 10000) { - http_response_code(413); $langs->loadLangs(array("errors", "install")); - accessforbidden('
    '.$langs->trans("ErrorRequestTooLarge").'.
    '.$langs->trans("ClickHereToGoToApp").'
    ', 0, 0, 1); - exit; + httponly_accessforbidden('
    '.$langs->trans("ErrorRequestTooLarge").'.
    '.$langs->trans("ClickHereToGoToApp").'
    ', 413, 1); } require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -100,7 +98,7 @@ if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $disablenofollow = 0; } -print top_htmlhead('', $titleofloginpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); +top_htmlhead('', $titleofloginpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); $colorbackhmenu1 = '60,70,100'; // topmenu @@ -139,9 +137,11 @@ $(document).ready(function () {
    +
    trans('AddNewLine'); ?>
    trans('VAT'); ?> trans('PriceUHT'); ?>trans('PriceUHTCurrency'); ?> trans('Qty'); ?> '; print ''; print $langs->trans('Unit'); @@ -175,15 +176,14 @@ if ($nolinesbefore) { } $coldisplay++; ?> - - + global->MAIN_DISABLE_FREE_LINES)) { $freelines = true; $forceall = 1; // We always force all type for free lines (module product or service means we use predefined product or service) if ($object->element == 'contrat') { - if (empty($conf->product->enabled) && empty($conf->service->enabled) && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) { + if (!isModEnabled('product') && !isModEnabled('service') && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) { $forceall = -1; // With contract, by default, no choice at all, except if CONTRACT_SUPPORT_PRODUCTS is set } elseif (empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) { $forceall = 3; @@ -192,10 +192,10 @@ if ($nolinesbefore) { // Free line echo ''; // Show radio free line - if ($forceall >= 0 && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) { + if ($forceall >= 0 && (isModEnabled("product") || isModEnabled("service"))) { echo ''; } // Predefined product/service - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { if ($forceall >= 0 && $freelines) { echo '
    '; } else { @@ -229,17 +229,17 @@ if ($nolinesbefore) { $labelforradio = ''; if (empty($conf->dol_optimize_smallscreen)) { if (empty($senderissupplier)) { - if (!empty($conf->product->enabled) && empty($conf->service->enabled)) { + if (isModEnabled("product") && !isModEnabled('service')) { $labelforradio = $langs->trans('PredefinedProductsToSell'); - } elseif ((empty($conf->product->enabled) && !empty($conf->service->enabled)) || ($object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS))) { + } elseif ((!isModEnabled('product') && isModEnabled('service')) || ($object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS))) { $labelforradio = $langs->trans('PredefinedServicesToSell'); } else { $labelforradio = $langs->trans('PredefinedProductsAndServicesToSell'); } } else { - if (!empty($conf->product->enabled) && empty($conf->service->enabled)) { + if (isModEnabled("product") && !isModEnabled('service')) { $labelforradio = $langs->trans('PredefinedProductsToPurchase'); - } elseif (empty($conf->product->enabled) && !empty($conf->service->enabled)) { + } elseif (!isModEnabled('product') && isModEnabled('service')) { $labelforradio = $langs->trans('PredefinedServicesToPurchase'); } else { $labelforradio = $langs->trans('PredefinedProductsAndServicesToPurchase'); @@ -257,9 +257,11 @@ if ($nolinesbefore) { } if (empty($senderissupplier)) { $statustoshow = 1; + $statuswarehouse = 'warehouseopen,warehouseinternal'; + if (!empty($conf->global->ENTREPOT_WAREHOUSEINTERNAL_NOT_SELL)) $statuswarehouse = 'warehouseopen'; if (!empty($conf->global->ENTREPOT_EXTRA_STATUS)) { // hide products in closed warehouse, but show products for internal transfer - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, $statuswarehouse, GETPOST('combinations', 'array')); } else { $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); } @@ -291,7 +293,9 @@ if ($nolinesbefore) { $alsoproductwithnosupplierprice = 0; } else { $ajaxoptions = array( - 'update' => array('remise_percent' => 'discount', 'price_ht' => 'price_ht') // html id tags that will be edited with each ajax json response key + // Disabled: This is useless because setting discount and price_ht after a selection is already managed + // by ths page itself with a .change on the combolist '#idprodfournprice' + //'update' => array('remise_percent' => 'discount', 'price_ht' => 'price_ht') // html id tags that will be edited with each ajax json response key ); $alsoproductwithnosupplierprice = 1; } @@ -335,9 +339,9 @@ if ($nolinesbefore) { print $hookmanager->resPrint; } } - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { echo '
    '; - if (!empty($conf->variants->enabled)) { + if (isModEnabled('variants')) { echo '
    '; } } @@ -355,9 +359,13 @@ if ($nolinesbefore) { $doleditor = new DolEditor('dp_desc', GETPOST('dp_desc', 'restricthtml'), '', (empty($conf->global->MAIN_DOLEDITOR_HEIGHT) ? 100 : $conf->global->MAIN_DOLEDITOR_HEIGHT), $toolbarname, '', false, true, $enabled, $nbrows, '98%'); $doleditor->Create(); // Show autofill date for recurring invoices - if (!empty($conf->service->enabled) && ($object->element == 'facturerec' || $object->element == 'invoice_supplier_rec')) { + if (isModEnabled("service") && ($object->element == 'facturerec' || $object->element == 'invoice_supplier_rec')) { echo '

    '; echo $langs->trans('AutoFillDateFrom').' '; + if (!empty($conf->global->INVOICE_REC_DATE_TO_YES)) { + $line->date_start_fill = 1; + $line->date_end_fill = 1; + } echo $form->selectyesno('date_start_fill', $line->date_start_fill, 1); echo ' - '; echo $langs->trans('AutoFillDateTo').' '; @@ -377,7 +385,7 @@ if ($nolinesbefore) { if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier' || $object->element == 'invoice_supplier_rec') { // We must have same test in printObjectLines $coldisplay++; ?> -
    ">"> @@ -406,16 +414,17 @@ if ($nolinesbefore) { $coldisplay++; ?> - "> + "> "> + + "> '; print $form->selectUnits(empty($line->fk_unit) ? $conf->global->PRODUCT_USE_UNITS : $line->fk_unit, "units"); @@ -427,11 +436,12 @@ if ($nolinesbefore) { } $coldisplay++; ?> - ">%">% %% - product->enabled) || !empty($conf->service->enabled)) { ?> + @@ -449,11 +459,11 @@ if ($nolinesbefore) { %%%%
    '.$form->load_tva('tva_tx', GETPOSTISSET('tva_tx') ? GETPOST('tva_tx', 'alpha') : ($line->tva_tx.($line->vat_src_code ? (' ('.$line->vat_src_code.')') : '')), $seller, $buyer, 0, $line->info_bits, $line->product_type, false, 1).''; + print $form->load_tva('tva_tx', GETPOSTISSET('tva_tx') ? GETPOST('tva_tx', 'alpha') : ($line->tva_tx.($line->vat_src_code ? (' ('.$line->vat_src_code.')') : '')), $seller, $buyer, 0, $line->info_bits, $line->product_type, false, 1); + print '% - info_bits & 2) != 2) { - print '%'; + print '>%'; } else { ?>   % - product->enabled) || !empty($conf->service->enabled)) { ?> + @@ -303,9 +312,9 @@ $coldisplay++; $margin_rate = (GETPOSTISSET("np_marginRate") ? GETPOST("np_marginRate", "alpha", 2) : (($line->pa_ht == 0) ? '' : price($line->marge_tx))); // if credit note, dont allow to modify margin if ($line->subprice < 0) { - echo ''.$margin_rate.'%'.$margin_rate.'%%%'.$mark_rate.'%'.$mark_rate.'%%% - ">
    - "> + ">
    + ">
      '.$langs->trans('Description').''.$langs->trans('Description').''.$langs->trans("SupplierRef").''.$langs->trans("SupplierRef").''; +print ''; if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || !empty($conf->global->FACTURE_LOCAL_TAX2_OPTION)) { print $langs->trans('Taxes'); } else { print $langs->trans('VAT'); } -if (in_array($object->element, array('propal', 'commande', 'facture')) && $object->status == $object::STATUS_DRAFT) { +if (in_array($object->element, array('propal', 'commande', 'facture', 'supplier_proposal', 'order_supplier', 'invoice_supplier')) && $object->status == $object::STATUS_DRAFT) { global $mysoc; if (empty($disableedit)) { @@ -82,30 +82,30 @@ if (in_array($object->element, array('propal', 'commande', 'facture')) && $objec print ''; } } -print ''; +print ''.$langs->trans('PriceUHT').''.$langs->trans('PriceUHT').''.$langs->trans('PriceUHTCurrency', $this->multicurrency_code).''.$langs->trans('PriceUHTCurrency', $this->multicurrency_code).''.$langs->trans('PriceUTTC').''.$langs->trans('PriceUTTC').''.$langs->trans('Qty').''.$langs->trans('Qty').''.$langs->trans('Unit').''.$langs->trans('Unit').''; +print ''; print $langs->trans('ReductionShort'); if (in_array($object->element, array('propal', 'commande', 'facture')) && $object->status == $object::STATUS_DRAFT) { @@ -122,59 +122,59 @@ if (in_array($object->element, array('propal', 'commande', 'facture')) && $objec print ''; } } -print ''; +print ''.$langs->trans('Progress').''.$form->textwithpicto($langs->trans('TotalHT100Short'), $langs->trans('UnitPriceXQtyLessDiscount')).''.$langs->trans('Progress').''.$form->textwithpicto($langs->trans('TotalHT100Short'), $langs->trans('UnitPriceXQtyLessDiscount')).''.$langs->trans('BuyingPrice').''.$langs->trans('BuyingPrice').''.$langs->trans('CostPrice').''.$langs->trans('CostPrice').''.$langs->trans('MarginRate').''.$langs->trans('MarginRate').''.$langs->trans('MarkRate').''.$langs->trans('MarkRate').''.$langs->trans('TotalHTShort').''.$langs->trans('TotalHTShort').''.$langs->trans('TotalHTShortCurrency', $this->multicurrency_code).''.$langs->trans('TotalHTShortCurrency', $this->multicurrency_code).''.$langs->trans('TotalTTCShort').''.$langs->trans('TotalTTCShort').''; + print ''; print ''; print ''; - print ''; + print '
    '; print ($line->ref_fourn ? $line->ref_fourn : $line->ref_supplier); print ''; $coldisplay++; @@ -276,21 +313,22 @@ if (price2num($line->total_localtax2)) { if (empty($positiverates)) { $positiverates = '0'; } +print $tooltiponprice; print vatrate($positiverates.($line->vat_src_code ? ' ('.$line->vat_src_code.')' : ''), '%', $line->info_bits); -//print vatrate($line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''), '%', $line->info_bits); +print $tooltiponpriceend; ?>subprice); ?>subprice); ?>multicurrency_subprice); ?>multicurrency_subprice); ?> pu_ttc) ? price($sign * $line->pu_ttc) : price($sign * $line->subprice)); ?>pu_ttc) ? price($sign * $line->pu_ttc) : price($sign * $line->subprice)); ?> + info_bits & 2) != 2) && $line->special_code != 3) { // I comment this because it shows info even when not required @@ -333,7 +371,7 @@ if (isset($this->situation_cycle_ref) && $this->situation_cycle_ref) { print ''.price($sign * $tmp[0]).'pa_ht); ?> marque_tx, 'MT')).'%'; ?> trans('Option'); ?> '.price($sign * $line->multicurrency_total_ht).''.price($sign * $line->total_ttc).''; $coldisplay++; if (!empty($product_static->accountancy_code_buy) || @@ -418,7 +436,7 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin print 'Error SQL: ' . $this->db->lasterror(); } elseif ($obj = $this->db->fetch_object($resql_asset)) { if (!empty($obj->found)) { - print ''; + print ''; print img_edit_add() . ''; } } @@ -426,15 +444,17 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin print ''; $coldisplay++; if (($line->info_bits & 2) == 2 || !empty($disableedit)) { } else { ?> - id.'#line_'.$line->id; ?>"> + id; ?>"> '; } print ''; $coldisplay++; if (!$situationinvoicelinewithparent && empty($disableremove)) { // For situation invoice, deletion is not possible if there is a parent company. @@ -444,6 +464,7 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin } print ''; $coldisplay++; diff --git a/htdocs/core/tpl/ajax/objectlinked_lineimport.tpl.php b/htdocs/core/tpl/objectlinked_lineimport.tpl.php similarity index 100% rename from htdocs/core/tpl/ajax/objectlinked_lineimport.tpl.php rename to htdocs/core/tpl/objectlinked_lineimport.tpl.php diff --git a/htdocs/core/tpl/onlinepaymentlinks.tpl.php b/htdocs/core/tpl/onlinepaymentlinks.tpl.php index e40f360051e..3693c818112 100644 --- a/htdocs/core/tpl/onlinepaymentlinks.tpl.php +++ b/htdocs/core/tpl/onlinepaymentlinks.tpl.php @@ -30,7 +30,7 @@ print ''.$langs->trans("FollowingUrlAreAvailableToMakePayments").':
    '.$langs->trans("ToOfferALinkForOnlinePaymentOnFreeAmount", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'free')."

    \n"; -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { print '
    '; print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnOrder", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'order')."
    \n"; @@ -43,10 +43,10 @@ if (!empty($conf->commande->enabled)) { print ''; print ''; if (GETPOST('generate_order_ref', 'alpha')) { - print '
    -> '; $url = getOnlinePaymentUrl(0, 'order', GETPOST('generate_order_ref', 'alpha')); + print ''."\n"; } print ''; } @@ -54,7 +54,7 @@ if (!empty($conf->commande->enabled)) { } if (isModEnabled('facture')) { print '
    '; - print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnInvoice", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnInvoice", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'invoice')."
    \n"; if (!empty($conf->global->PAYMENT_SECURITY_TOKEN) && !empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { $langs->load("bills"); @@ -65,18 +65,18 @@ if (isModEnabled('facture')) { print ''; print ''; if (GETPOST('generate_invoice_ref', 'alpha')) { - print '
    -> '; $url = getOnlinePaymentUrl(0, 'invoice', GETPOST('generate_invoice_ref', 'alpha')); + print ''."\n"; } print ''; } print '
    '; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { print '
    '; - print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnContractLine", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnContractLine", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'contractline')."
    \n"; if (!empty($conf->global->PAYMENT_SECURITY_TOKEN) && !empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { $langs->load("contracts"); @@ -87,18 +87,18 @@ if (!empty($conf->contrat->enabled)) { print ''; print ''; if (GETPOST('generate_contract_ref')) { - print '
    -> '; $url = getOnlinePaymentUrl(0, 'contractline', GETPOST('generate_contract_ref', 'alpha')); + print ''."\n"; } print ''; } print '
    '; } -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { print '
    '; - print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnMemberSubscription", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnMemberSubscription", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'membersubscription')."
    \n"; if (!empty($conf->global->PAYMENT_SECURITY_TOKEN) && !empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { $langs->load("members"); @@ -109,18 +109,18 @@ if (!empty($conf->adherent->enabled)) { print ''; print ''; if (GETPOST('generate_member_ref')) { - print '
    -> '; $url = getOnlinePaymentUrl(0, 'membersubscription', GETPOST('generate_member_ref', 'alpha')); + print ''."\n"; } print ''; } print '
    '; } -if (!empty($conf->don->enabled)) { +if (isModEnabled('don')) { print '
    '; - print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnDonation", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnDonation", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'donation')."
    \n"; if (!empty($conf->global->PAYMENT_SECURITY_TOKEN) && !empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { $langs->load("members"); @@ -131,31 +131,21 @@ if (!empty($conf->don->enabled)) { print ''; print ''; if (GETPOST('generate_donation_ref')) { - print '
    -> '; + print ''."\n"; } print ''; } print '
    '; } -if (!empty($conf->use_javascript_ajax)) { - print "\n".''; -} +$constname = 'PAYMENT_SECURITY_TOKEN'; + +// Add button to autosuggest a key +include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; +print dolJSToSetRandomPassword($constname); print info_admin($langs->trans("YouCanAddTagOnUrl")); diff --git a/htdocs/core/tpl/originproductline.tpl.php b/htdocs/core/tpl/originproductline.tpl.php index 25c799ffbfd..090ba834ba1 100644 --- a/htdocs/core/tpl/originproductline.tpl.php +++ b/htdocs/core/tpl/originproductline.tpl.php @@ -32,7 +32,7 @@ print '
    '.$this->tpl['label'].''.$this->tpl['description'].''.$this->tpl['vat_rate'].''.$this->tpl['price'].''.$this->tpl['multicurrency_price'].'
    '; print $langs->trans('CronLabel')."label."\" /> "; + print ' '; print ""; print "
    '; print $langs->trans('CronModule').""; - print "module_name."\" /> "; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronModuleHelp"), 1, 'help'); @@ -362,7 +365,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronClassFile').""; - print ' '; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronClassFileHelp"), 1, 'help'); @@ -371,7 +374,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronObject').""; - print "objectname."\" /> "; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronObjectHelp"), 1, 'help'); @@ -380,7 +383,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronMethod').""; - print ' '; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronMethodHelp"), 1, 'help'); @@ -389,7 +392,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronArgs').""; - print "params."\" /> "; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronArgsHelp"), 1, 'help'); @@ -398,7 +401,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronCommand').""; - print "command."\" /> "; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronCommandHelp"), 1, 'help'); @@ -414,6 +417,15 @@ if (($action == "create") || ($action == "edit")) { print "
    '; + print $langs->trans('EmailIfError').""; + print ' '; + print ""; + //print $form->textwithpicto('', $langs->trans("CronCommandHelp"), 1, 'help'); + print "
    '; print $langs->trans('CronEvery').""; @@ -461,6 +473,16 @@ if (($action == "create") || ($action == "edit")) { } $input .= ""; print $input; + + $input = " unitfrequency == "2678400") { + $input .= ' checked />'; + } else { + $input .= ' />'; + } + $input .= ""; + print $input; + print ""; print ""; @@ -496,7 +518,7 @@ if (($action == "create") || ($action == "edit")) { if (!empty($object->priority)) { $priority = $object->priority; } - print " "; + print ' '; print ""; print " "; + print ' '; print ""; print "
    '; + print '
    '; print $langs->trans('CronDtNextLaunch'); - print ' ('.$langs->trans('CronFrom').')'; + //print ' ('.$langs->trans('CronFrom').')'; print ""; if (!empty($object->datenextrun)) { print $form->selectDate($object->datenextrun, 'datenextrun', 1, 1, '', "cronform"); } else { - print $form->selectDate(-1, 'datenextrun', 1, 1, '', "cronform"); + print $form->selectDate(-1, 'datenextrun', 1, 1, '', "cronform", 1, 1); } print ""; @@ -545,8 +567,15 @@ if (($action == "create") || ($action == "edit")) { $linkback = ''.$langs->trans("BackToList").''; + $reg = array(); + if (preg_match('/:(.*)$/', $object->label, $reg)) { + $langs->load($reg[1]); + } + + $labeltoshow = preg_replace('/:.*$/', '', $object->label); + $morehtmlref = '
    '; - $morehtmlref .= $langs->trans($object->label); + $morehtmlref .= $langs->trans($labeltoshow); $morehtmlref .= '
    '; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); @@ -570,32 +599,32 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronModule').""; - print $object->module_name; + print dol_escape_htmltag($object->module_name); print "
    '; print $langs->trans('CronClassFile').""; - print $object->classesname; + print dol_escape_htmltag($object->classesname); print "
    '; print $langs->trans('CronObject').""; - print $object->objectname; + print dol_escape_htmltag($object->objectname); print "
    '; print $langs->trans('CronMethod').""; - print $object->methodename; + print dol_escape_htmltag($object->methodename); print "
    '; print $langs->trans('CronArgs').""; - print $object->params; + print dol_escape_htmltag($object->params); print "
    '; print $langs->trans('CronCommand').""; - print $object->command; + print dol_escape_htmltag($object->command); print "
    '; @@ -605,7 +634,12 @@ if (($action == "create") || ($action == "edit")) { } print "
    '; + print $langs->trans('EmailIfError').""; + print dol_escape_htmltag($object->email_alert); + print "
    '; print $langs->trans('Entity').""; if (empty($object->entity)) { @@ -640,6 +674,9 @@ if (($action == "create") || ($action == "edit")) { if ($object->unitfrequency == "604800") { print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Weeks'); } + if ($object->unitfrequency == "2678400") { + print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Month'); + } print "
    '; @@ -716,7 +753,11 @@ if (($action == "create") || ($action == "edit")) { if (!empty($object->datelastresult)) { print $form->textwithpicto(dol_print_date($object->datelastresult, 'dayhoursec'), $langs->trans("CurrentTimeZone")); } else { - print $langs->trans('CronNone'); + if (empty($object->datelastrun)) { + print $langs->trans('CronNone'); + } else { + // In progress + } } print "
    '; print $langs->trans('CronLastOutput').""; - print nl2br($object->lastoutput); + print ''.nl2br($object->lastoutput).''; print "
    '; @@ -746,7 +787,7 @@ if (($action == "create") || ($action == "edit")) { print dol_get_fiche_end(); - print "\n\n
    \n"; + print "\n\n".'
    '."\n"; if (!$user->rights->cron->create) { print ''.$langs->trans("Edit").''; } else { @@ -764,7 +805,7 @@ if (($action == "create") || ($action == "edit")) { if (!$user->rights->cron->create) { print ''.$langs->trans("CronStatusActiveBtn").'/'.$langs->trans("CronStatusInactiveBtn").''; } else { - print ''.$langs->trans("Clone").''; + print ''.$langs->trans("ToClone").''; if (empty($object->status)) { print ''.$langs->trans("CronStatusActiveBtn").''; diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php index 44564e1b0ab..b12a2b909cf 100644 --- a/htdocs/cron/class/cronjob.class.php +++ b/htdocs/cron/class/cronjob.class.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2007-2022 Laurent Destailleur * Copyright (C) 2013 Florian Henry * * This program is free software; you can redistribute it and/or modify @@ -23,6 +23,7 @@ // Put here all includes required by your class file require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; /** @@ -108,65 +109,81 @@ class Cronjob extends CommonObject public $datelastresult = ''; /** - * @var string Last result from end job execution + * @var string Last result from end job execution */ public $lastresult; /** - * @var string Last output from end job execution + * @var string Last output from end job execution */ public $lastoutput; /** - * @var string Unit frequency of job execution + * @var string Unit frequency of job execution */ public $unitfrequency; /** - * @var int Frequency of job execution + * @var int Frequency of job execution */ public $frequency; /** - * @var int Status + * @var int Status */ public $status; /** - * @var int Is job processing + * @var int Is job running ? */ public $processing; /** - * @var int ID + * @var int The job current PID + */ + public $pid; + + /** + * @var string Email when an error occurs + */ + public $email_alert; + + /** + * @var int User ID of creation */ public $fk_user_author; /** - * @var int ID + * @var int User ID of last modification */ public $fk_user_mod; /** - * @var int Number of run job execution + * @var int Number of run job execution */ public $nbrun; /** - * @var int Maximum run job execution + * @var int Maximum run job execution */ public $maxrun; /** - * @var string Libname + * @var string Libname */ public $libname; /** - * @var string A test condition to know if job is visible/qualified + * @var string A test condition to know if job is visible/qualified */ public $test; + /** + * @var string Autodelete + */ + public $autodelete; + + const STATUS_DISABLED = 0; const STATUS_ENABLED = 1; const STATUS_ARCHIVED = 2; @@ -262,8 +279,8 @@ class Cronjob extends CommonObject // Check parameters // Put here code to add a control on parameters values - if (dol_strlen($this->datestart) == 0) { - $this->errors[] = $langs->trans('CronFieldMandatory', $langs->transnoentitiesnoconv('CronDtStart')); + if (dol_strlen($this->datenextrun) == 0) { + $this->errors[] = $langs->trans('CronFieldMandatory', $langs->transnoentitiesnoconv('CronDtNextLaunch')); $error++; } if (empty($this->label)) { @@ -351,15 +368,15 @@ class Cronjob extends CommonObject $sql .= " ".(!isset($this->datelastresult) || dol_strlen($this->datelastresult) == 0 ? 'NULL' : "'".$this->db->idate($this->datelastresult)."'").","; $sql .= " ".(!isset($this->lastoutput) ? 'NULL' : "'".$this->db->escape($this->lastoutput)."'").","; $sql .= " ".(!isset($this->unitfrequency) ? 'NULL' : "'".$this->db->escape($this->unitfrequency)."'").","; - $sql .= " ".(!isset($this->frequency) ? '0' : $this->frequency).","; - $sql .= " ".(!isset($this->status) ? '0' : $this->status).","; - $sql .= " ".$user->id.","; - $sql .= " ".$user->id.","; + $sql .= " ".(!isset($this->frequency) ? '0' : ((int) $this->frequency)).","; + $sql .= " ".(!isset($this->status) ? '0' : ((int) $this->status)).","; + $sql .= " ".((int) $user->id).","; + $sql .= " ".((int) $user->id).","; $sql .= " ".(!isset($this->note_private) ? 'NULL' : "'".$this->db->escape($this->note_private)."'").","; - $sql .= " ".(!isset($this->nbrun) ? '0' : $this->db->escape($this->nbrun)).","; - $sql .= " ".(empty($this->maxrun) ? '0' : $this->db->escape($this->maxrun)).","; + $sql .= " ".(!isset($this->nbrun) ? '0' : ((int) $this->nbrun)).","; + $sql .= " ".(empty($this->maxrun) ? '0' : ((int) $this->maxrun)).","; $sql .= " ".(!isset($this->libname) ? 'NULL' : "'".$this->db->escape($this->libname)."'").","; - $sql .= " ".(!isset($this->test) ? 'NULL' : "'".$this->db->escape($this->test)."'").""; + $sql .= " ".(!isset($this->test) ? 'NULL' : "'".$this->db->escape($this->test)."'"); $sql .= ")"; $this->db->begin(); @@ -377,10 +394,6 @@ class Cronjob extends CommonObject // Commit or rollback if ($error) { - foreach ($this->errors as $errmsg) { - dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR); - $this->error .= ($this->error ? ', '.$errmsg : $errmsg); - } $this->db->rollback(); return -1 * $error; } else { @@ -426,6 +439,8 @@ class Cronjob extends CommonObject $sql .= " t.frequency,"; $sql .= " t.status,"; $sql .= " t.processing,"; + $sql .= " t.pid,"; + $sql .= " t.email_alert,"; $sql .= " t.fk_user_author,"; $sql .= " t.fk_user_mod,"; $sql .= " t.note as note_private,"; @@ -474,6 +489,8 @@ class Cronjob extends CommonObject $this->frequency = $obj->frequency; $this->status = $obj->status; $this->processing = $obj->processing; + $this->pid = $obj->pid; + $this->email_alert = $obj->email_alert; $this->fk_user_author = $obj->fk_user_author; $this->fk_user_mod = $obj->fk_user_mod; $this->note_private = $obj->note_private; @@ -491,9 +508,9 @@ class Cronjob extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Load object in memory from the database + * Load list of cron jobs in a memory array from the database + * @TODO Use object CronJob and not CronJobLine. * * @param string $sortorder sort order * @param string $sortfield sort field @@ -504,11 +521,8 @@ class Cronjob extends CommonObject * @param int $processing Processing or not * @return int <0 if KO, >0 if OK */ - public function fetch_all($sortorder = 'DESC', $sortfield = 't.rowid', $limit = 0, $offset = 0, $status = 1, $filter = '', $processing = -1) + public function fetchAll($sortorder = 'DESC', $sortfield = 't.rowid', $limit = 0, $offset = 0, $status = 1, $filter = '', $processing = -1) { - // phpcs:enable - global $langs; - $this->lines = array(); $sql = "SELECT"; @@ -537,6 +551,8 @@ class Cronjob extends CommonObject $sql .= " t.frequency,"; $sql .= " t.status,"; $sql .= " t.processing,"; + $sql .= " t.pid,"; + $sql .= " t.email_alert,"; $sql .= " t.fk_user_author,"; $sql .= " t.fk_user_mod,"; $sql .= " t.note as note_private,"; @@ -575,7 +591,7 @@ class Cronjob extends CommonObject $sql .= " WHERE ".implode(' AND ', $sqlwhere); } - dol_syslog(get_class($this)."::fetch_all", LOG_DEBUG); + dol_syslog(get_class($this)."::fetchAll", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -613,6 +629,8 @@ class Cronjob extends CommonObject $line->frequency = $obj->frequency; $line->status = $obj->status; $line->processing = $obj->processing; + $line->pid = $obj->pid; + $line->email_alert = $obj->email_alert; $line->fk_user_author = $obj->fk_user_author; $line->fk_user_mod = $obj->fk_user_mod; $line->note_private = $obj->note_private; @@ -714,11 +732,17 @@ class Cronjob extends CommonObject if (empty($this->processing)) { $this->processing = 0; } + if (empty($this->pid)) { + $this->pid = null; + } + if (empty($this->email_alert)) { + $this->email_alert = ''; + } // Check parameters // Put here code to add a control on parameters values - if (dol_strlen($this->datestart) == 0) { - $this->errors[] = $langs->trans('CronFieldMandatory', $langs->transnoentitiesnoconv('CronDtStart')); + if (dol_strlen($this->datenextrun) == 0) { + $this->errors[] = $langs->trans('CronFieldMandatory', $langs->transnoentitiesnoconv('CronDtNextLaunch')); $error++; } if ((dol_strlen($this->datestart) != 0) && (dol_strlen($this->dateend) != 0) && ($this->dateend < $this->datestart)) { @@ -758,7 +782,7 @@ class Cronjob extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."cronjob SET"; - $sql .= " entity=".(isset($this->entity) ? $this->db->escape($this->entity) : $conf->entity).","; + $sql .= " entity=".(isset($this->entity) ? ((int) $this->entity) : $conf->entity).","; $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").","; $sql .= " jobtype=".(isset($this->jobtype) ? "'".$this->db->escape($this->jobtype)."'" : "null").","; $sql .= " command=".(isset($this->command) ? "'".$this->db->escape($this->command)."'" : "null").","; @@ -768,7 +792,7 @@ class Cronjob extends CommonObject $sql .= " params=".(isset($this->params) ? "'".$this->db->escape($this->params)."'" : "null").","; $sql .= " md5params=".(isset($this->md5params) ? "'".$this->db->escape($this->md5params)."'" : "null").","; $sql .= " module_name=".(isset($this->module_name) ? "'".$this->db->escape($this->module_name)."'" : "null").","; - $sql .= " priority=".(isset($this->priority) ? $this->priority : "null").","; + $sql .= " priority=".(isset($this->priority) ? ((int) $this->priority) : "null").","; $sql .= " datelastrun=".(dol_strlen($this->datelastrun) != 0 ? "'".$this->db->idate($this->datelastrun)."'" : 'null').","; $sql .= " datenextrun=".(dol_strlen($this->datenextrun) != 0 ? "'".$this->db->idate($this->datenextrun)."'" : 'null').","; $sql .= " dateend=".(dol_strlen($this->dateend) != 0 ? "'".$this->db->idate($this->dateend)."'" : 'null').","; @@ -780,7 +804,9 @@ class Cronjob extends CommonObject $sql .= " frequency=".(isset($this->frequency) ? $this->frequency : "null").","; $sql .= " status=".(isset($this->status) ? $this->status : "null").","; $sql .= " processing=".((isset($this->processing) && $this->processing > 0) ? $this->processing : "0").","; - $sql .= " fk_user_mod=".$user->id.","; + $sql .= " pid=".(isset($this->pid) ? ((int) $this->pid) : "null").","; + $sql .= " email_alert = ".(isset($this->email_alert) ? "'".$this->db->escape($this->email_alert)."'" : "null").","; + $sql .= " fk_user_mod = ".((int) $user->id).","; $sql .= " note=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " nbrun=".((isset($this->nbrun) && $this->nbrun > 0) ? $this->nbrun : "null").","; $sql .= " maxrun=".((isset($this->maxrun) && $this->maxrun > 0) ? $this->maxrun : "0").","; @@ -873,7 +899,7 @@ class Cronjob extends CommonObject // Clear fields $object->status = self::STATUS_DISABLED; - $object->label = $langs->trans("CopyOf").' '.$object->label; + $object->label = $langs->trans("CopyOf").' '.$langs->trans($object->label); // Create clone $object->context['createfromclone'] = 'createfromclone'; @@ -932,6 +958,8 @@ class Cronjob extends CommonObject $this->frequency = ''; $this->status = 0; $this->processing = 0; + $this->pid = null; + $this->email_alert = ''; $this->fk_user_author = 0; $this->fk_user_mod = 0; $this->note_private = ''; @@ -968,7 +996,16 @@ class Cronjob extends CommonObject $label .= ' '.$this->getLibStatut(5); } $label .= '
    '.$langs->trans('Ref').': '.$this->ref; - $label .= '
    '.$langs->trans('Title').': '.$this->label; + $label .= '
    '.$langs->trans('Title').': '.$langs->trans($this->label); + if ($this->label != $langs->trans($this->label)) { + $label .= ' ('.$this->label.')'; + } + if (!empty($this->datestart)) { + $label .= '
    '.$langs->trans('CronDtStart').': '.dol_print_date($this->datestart, 'dayhour', 'tzuserrel'); + } + if (!empty($this->dateend)) { + $label .= '
    '.$langs->trans('CronDtEnd').': '.dol_print_date($this->dateend, 'dayhour', 'tzuserrel'); + } $url = DOL_URL_ROOT.'/cron/card.php?id='.$this->id; @@ -1032,10 +1069,11 @@ class Cronjob extends CommonObject if ($this->db->num_rows($resql)) { $obj = $this->db->fetch_object($resql); $this->id = $obj->rowid; + + $this->user_modification_id = $obj->fk_user_mod; + $this->user_creation_id = $obj->fk_user_author; $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->tms); - $this->user_modification = $obj->fk_user_mod; - $this->user_creation = $obj->fk_user_author; } $this->db->free($resql); @@ -1112,6 +1150,7 @@ class Cronjob extends CommonObject @set_time_limit($ExecTimeLimit); // Need more than 240 on Windows 7/64 error_reporting($err); } + $MemoryLimit = 0; if (!empty($MemoryLimit)) { @ini_set('memory_limit', $MemoryLimit); } @@ -1122,6 +1161,7 @@ class Cronjob extends CommonObject $this->lastoutput = ''; $this->lastresult = ''; $this->processing = 1; // To know job was started + $this->pid = function_exists('getmypid') ? getmypid() : null; // Avoid dol_getmypid to get null if the function is not available $this->nbrun = $this->nbrun + 1; $result = $this->update($user); // This include begin/commit if ($result < 0) { @@ -1188,7 +1228,8 @@ class Cronjob extends CommonObject dol_syslog(get_class($this)."::run_jobs START ".$this->objectname."->".$this->methodename."(".$this->params.");", LOG_DEBUG); // Create Object for the called module - $object = new $this->objectname($this->db); + $nameofclass = $this->objectname; + $object = new $nameofclass($this->db); if ($this->entity > 0) { $object->entity = $this->entity; // We work on a dedicated entity } @@ -1221,13 +1262,13 @@ class Cronjob extends CommonObject dol_syslog(get_class($this)."::run_jobs END result=".$result." error=".$errmsg, LOG_ERR); $this->error = $errmsg; - $this->lastoutput = ($object->output ? $object->output."\n" : "").$errmsg; + $this->lastoutput = (!empty($object->output) ? $object->output."\n" : "").$errmsg; $this->lastresult = is_numeric($result) ? $result : -1; $retval = $this->lastresult; $error++; } else { dol_syslog(get_class($this)."::run_jobs END"); - $this->lastoutput = $object->output; + $this->lastoutput = (!empty($object->output) ? $object->output : ""); $this->lastresult = var_export($result, true); $retval = $this->lastresult; } @@ -1313,6 +1354,7 @@ class Cronjob extends CommonObject $this->datelastresult = dol_now(); $this->processing = 0; + $this->pid = null; $result = $this->update($user); // This include begin/commit if ($result < 0) { dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); @@ -1321,6 +1363,16 @@ class Cronjob extends CommonObject } $conf->setEntityValues($this->db, $savcurrententity); + + if ($error && !empty($this->email_alert)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $subject = $langs->trans("ErrorInBatch", $this->label); + $msg = $langs->trans("ErrorInBatch", $this->label); + $from = getDolGlobalString('MAIN_MAIL_EMAIL_FROM'); + $cmailfile = new CMailFile($subject, $this->email_alert, $from, $msg); + $result = $cmailfile->sendfile(); // Do not test result + } + return $error ?-1 : 1; } @@ -1357,21 +1409,30 @@ class Cronjob extends CommonObject if (empty($this->datenextrun)) { if (empty($this->datestart)) { - $this->datenextrun = $now + ($this->frequency * $this->unitfrequency); + if ($this->unitfrequency == 2678400) { + $this->datenextrun = dol_time_plus_duree($now, $this->frequency, 'm'); + } else { + $this->datenextrun = $now + ($this->frequency * $this->unitfrequency); + } } else { - $this->datenextrun = $this->datestart + ($this->frequency * $this->unitfrequency); + if ($this->unitfrequency == 2678400) { + $this->datenextrun = dol_time_plus_duree($this->datestart, $this->frequency, 'm'); + } else { + $this->datenextrun = $this->datestart + ($this->frequency * $this->unitfrequency); + } } } if ($this->datenextrun < $now && $this->frequency > 0 && $this->unitfrequency > 0) { // Loop until date is after future while ($this->datenextrun < $now) { - $this->datenextrun += ($this->frequency * $this->unitfrequency); - - // TODO For exact frequency (every month, every year, ...), use instead a dol_time_plus_duree($time, $duration_value, $duration_unit) + if ($this->unitfrequency == 2678400) { + $this->datenextrun = dol_time_plus_duree($this->datenextrun, $this->frequency, 'm'); + } else { + $this->datenextrun += ($this->frequency * $this->unitfrequency); + } } } else { - //$this->datenextrun=$this->datenextrun + ($this->frequency * $this->unitfrequency); dol_syslog(get_class($this)."::reprogram_jobs datenextrun is already in future, we do not change it"); } @@ -1465,6 +1526,8 @@ class Cronjobline */ public $id; + public $entity; + /** * @var string Ref */ @@ -1491,10 +1554,12 @@ class Cronjobline public $datenextrun = ''; public $dateend = ''; public $datestart = ''; + public $datelastresult = ''; public $lastresult = ''; public $lastoutput; public $unitfrequency; public $frequency; + public $processing; /** * @var int Status @@ -1512,8 +1577,10 @@ class Cronjobline public $fk_user_mod; public $note; + public $note_private; public $nbrun; public $libname; + public $test; /** * Constructor diff --git a/htdocs/cron/info.php b/htdocs/cron/info.php index 689daf8eff5..aff0a6919d0 100644 --- a/htdocs/cron/info.php +++ b/htdocs/cron/info.php @@ -20,6 +20,7 @@ * \brief Page of info of a cron job */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php"; diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php index 1072f68b48f..aaccb39e68e 100644 --- a/htdocs/cron/list.php +++ b/htdocs/cron/list.php @@ -24,6 +24,7 @@ * \brief Lists Jobs */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/cron/class/cronjob.class.php'; @@ -33,10 +34,6 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Load translation files required by the page $langs->loadLangs(array("admin", "cron", "bills", "members")); -if (!$user->rights->cron->read) { - accessforbidden(); -} - $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $confirm = GETPOST('confirm', 'alpha'); @@ -68,6 +65,7 @@ $search_status = (GETPOSTISSET('search_status') ?GETPOST('search_status', 'int') $search_label = GETPOST("search_label", 'alpha'); $search_module_name = GETPOST("search_module_name", 'alpha'); $search_lastresult = GETPOST("search_lastresult", "alphawithlgt"); +$search_processing = GETPOST("search_processing", "int"); $securitykey = GETPOST('securitykey', 'alpha'); $outputdir = $conf->cron->dir_output; @@ -87,6 +85,15 @@ $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); +// Security +if (!$user->rights->cron->read) { + accessforbidden(); +} + +$permissiontoread = $user->rights->cron->read; +$permissiontoadd = $user->rights->cron->create ? $user->rights->cron->create : $user->rights->cron->write; +$permissiontodelete = $user->rights->cron->delete; +$permissiontoexecute = $user->rights->cron->execute; /* @@ -129,7 +136,7 @@ if (empty($reshook)) { } // Delete jobs - if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete) { + if ($action == 'confirm_delete' && $confirm == "yes" && $permissiontodelete) { //Delete cron task $object = new Cronjob($db); $object->id = $id; @@ -141,7 +148,7 @@ if (empty($reshook)) { } // Execute jobs - if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute) { + if ($action == 'confirm_execute' && $confirm == "yes" && $permissiontoexecute) { if (!empty($conf->global->CRON_KEY) && $conf->global->CRON_KEY != $securitykey) { setEventMessages('Security key '.$securitykey.' is wrong', null, 'errors'); $action = ''; @@ -196,9 +203,6 @@ if (empty($reshook)) { // Mass actions $objectclass = 'CronJob'; $objectlabel = 'CronJob'; - $permissiontoread = $user->rights->cron->read; - $permissiontoadd = $user->rights->cron->create ? $user->rights->cron->create : $user->rights->cron->write; - $permissiontodelete = $user->rights->cron->delete; $uploaddir = $conf->cron->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; if ($massaction && $permissiontoadd) { @@ -275,18 +279,17 @@ if ($search_status >= 0 && $search_status < 2 && $search_status != '') { if ($search_lastresult != '') { $sql .= natural_search("t.lastresult", $search_lastresult, 1); } +if (GETPOSTISSET('search_processing')) { + $sql .= " AND t.processing = ".((int) $search_processing); +} //Manage filter if (is_array($filter) && count($filter) > 0) { foreach ($filter as $key => $value) { $sql .= " AND ".$key." LIKE '%".$db->escape($value)."%'"; } } -$sqlwhere = array(); if (!empty($search_module_name)) { - $sqlwhere[] = "(t.module_name = '".$db->escape($search_module_name)."')"; -} -if (count($sqlwhere) > 0) { - $sql .= " WHERE ".implode(' AND ', $sqlwhere); + $sql .= natural_search("t.module_name", $search_module_name); } // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -353,6 +356,10 @@ if ($action == 'execute') { print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&securitykey='.$securitykey.$param, $langs->trans("CronExecute"), $langs->trans("CronConfirmExecute"), "confirm_execute", '', '', 1); } +if ($action == 'delete' && empty($toselect)) { // Used when we make a delete on 1 line (not used for mass delete) + print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.$param, $langs->trans("CronDelete"), $langs->trans("CronConfirmDelete"), "confirm_delete", '', '', 1); +} + // List of mass actions available $arrayofmassactions = array( //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), @@ -382,7 +389,6 @@ if ($optioncss != '') { } print ''; print ''; -print ''; print ''; print ''; print ''; @@ -414,7 +420,7 @@ if (!empty($conf->global->CRON_WARNING_DELAY_HOURS)) { $text .= $langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS); } print info_admin($text); -print '
    '; +//print '
    '; //$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = ''; @@ -430,18 +436,19 @@ print '
    '; print ''; print '            '; -print $form->selectarray('search_status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Scheduled")), $search_status, 1); +print ''; +print $form->selectarray('search_status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Scheduled")), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print ''; $searchpicto = $form->showFilterButtons(); print $searchpicto; @@ -449,21 +456,22 @@ print '
    '; - if (!empty($obj->label)) { - $object->ref = $langs->trans($obj->label); - print ''.$object->getNomUrl(0, '', 1).''; + if (!empty($object->label)) { + $object->ref = $langs->trans($object->label); + print ''.$object->getNomUrl(0, '', 1).''; $object->ref = $obj->rowid; } else { //print $langs->trans('CronNone'); @@ -517,9 +533,15 @@ if ($num > 0) { // Priority print ''; - print $object->priority; + print dol_escape_htmltag($object->priority); print ''; + print dol_escape_htmltag($object->module_name); + print ''; if ($obj->jobtype == 'method') { $text = $langs->trans("CronClass"); @@ -538,21 +560,23 @@ if ($num > 0) { print $form->textwithpicto($text, $texttoshow, 1); print ''; + $s = ''; if ($obj->unitfrequency == "60") { - print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Minutes'); - } - if ($obj->unitfrequency == "3600") { - print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Hours'); - } - if ($obj->unitfrequency == "86400") { - print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Days'); - } - if ($obj->unitfrequency == "604800") { - print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Weeks'); + $s = ($obj->frequency)." ".($obj->frequency > 1 ? $langs->trans('Minutes') : $langs->trans('Minute')); + } elseif ($obj->unitfrequency == "3600") { + $s = ($obj->frequency)." ".($obj->frequency > 1 ? $langs->trans('Hours') : $langs->trans('Hour')); + } elseif ($obj->unitfrequency == "86400") { + $s = ($obj->frequency)." ".($obj->frequency > 1 ? $langs->trans('Days') : $langs->trans('Day')); + } elseif ($obj->unitfrequency == "604800") { + $s = ($obj->frequency)." ".($obj->frequency > 1 ? $langs->trans('Weeks') : $langs->trans('Week')); + } elseif ($obj->unitfrequency == "2678400") { + $s = ($obj->frequency)." ".($obj->frequency > 1 ? $langs->trans('Months') : $langs->trans('Month')); } + print ''; + print $s; print ''; if (!empty($obj->datestart)) { print dol_print_date($db->jdate($obj->datestart), 'dayhour', 'tzserver'); @@ -564,15 +588,16 @@ if ($num > 0) { print dol_print_date($db->jdate($obj->dateend), 'dayhour', 'tzserver'); } print ''; if (!empty($obj->nbrun)) { - print $obj->nbrun; + print dol_escape_htmltag($obj->nbrun); } else { print '0'; } if (!empty($obj->maxrun)) { - print ' / '.$obj->maxrun.''; + print ' / '.dol_escape_htmltag($obj->maxrun).''; } print ''; + print ''; if ($obj->lastresult != '') { if (empty($obj->lastresult)) { - print $obj->lastresult; + print $obj->lastresult; // Print '0' } else { - print ''.dol_trunc($obj->lastresult).''; + print ''.dol_escape_htmltag(dol_trunc($obj->lastresult)).''; } } print ''; + print ''; if (!empty($obj->lastoutput)) { - print dol_trunc(nl2br($obj->lastoutput), 50); + print '
    '; + print dol_trunc(dolGetFirstLineOfText($obj->lastoutput, 2), 100); + print '
    '; } print '
    '; + // Next run + print ''; if (!empty($obj->datenextrun)) { $datenextrun = $db->jdate($obj->datenextrun); if (empty($obj->status)) { diff --git a/htdocs/datapolicy/mailing.php b/htdocs/datapolicy/admin/mailing.php similarity index 62% rename from htdocs/datapolicy/mailing.php rename to htdocs/datapolicy/admin/mailing.php index 7e2dccaf7d4..80597987df1 100644 --- a/htdocs/datapolicy/mailing.php +++ b/htdocs/datapolicy/admin/mailing.php @@ -17,25 +17,57 @@ */ /** - * \file htdocs/datapolicy/mailing.php + * \file htdocs/datapolicy/admin/mailing.php * \ingroup datapolicy - * \brief datapolicy mailing page. + * \brief Page called by the setupmail.php page to send agreements by email. */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php'; -$idcontact = GETPOST('idc'); +$idcontact = GETPOST('idc', 'int'); +$idcompany = GETPOST('ids', 'int'); +$idmember = GETPOST('ida', 'int'); + +// Security +if (!isModEnabled("datapolicy")) { + accessforbidden(); +} +if (!$user->admin) { + accessforbidden(); +} + + +/* + * Actions + */ if (!empty($idcontact)) { $contact = new Contact($db); $contact->fetch($idcontact); DataPolicy::sendMailDataPolicyContact($contact); +} elseif (!empty($idcompany)) { + $company = new Societe($db); + $company->fetch($idcompany); + DataPolicy::sendMailDataPolicyCompany($company); +} elseif (!empty($idmember)) { + $member = new Adherent($db); + $member->fetch($idmember); + DataPolicy::sendMailDataPolicyAdherent($member); } else { $contacts = new DataPolicy($db); + + // Send email to all contacts where email was not already sent $contacts->getAllContactNotInformed(); $contacts->getAllCompaniesNotInformed(); $contacts->getAllAdherentsNotInformed(); - echo $langs->trans('AllAgreementSend'); } + + +/* + * View + */ + +echo $langs->trans('AllAgreementSend'); diff --git a/htdocs/datapolicy/admin/setup.php b/htdocs/datapolicy/admin/setup.php index 8f25461eb64..518adf75d5d 100644 --- a/htdocs/datapolicy/admin/setup.php +++ b/htdocs/datapolicy/admin/setup.php @@ -19,15 +19,16 @@ /** * \file htdocs/datapolicy/admin/setup.php * \ingroup datapolicy - * \brief datapolicy setup page. + * \brief Datapolicy setup page to define duration of data keeping. */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; -require_once '../lib/datapolicy.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/datapolicy/lib/datapolicy.lib.php'; // Translations -$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy@datapolicy')); +$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy')); // Parameters $action = GETPOST('action', 'aZ09'); @@ -50,7 +51,7 @@ if (!empty($conf->global->DATAPOLICY_USE_SPECIFIC_DELAY_FOR_CONTACT)) { 'DATAPOLICY_CONTACT_FOURNISSEUR'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'contact', 'class="pictofixedwidth"')), ); } -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { $arrayofparameters['Member'] = array( 'DATAPOLICY_ADHERENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'member', 'class="pictofixedwidth"')), ); @@ -69,7 +70,10 @@ $valTab = array( '240' => $langs->trans('NB_YEARS', 20), ); -// Access control +// Security +if (!isModEnabled("datapolicy")) { + accessforbidden(); +} if (!$user->admin) { accessforbidden(); } @@ -137,7 +141,7 @@ if ($action == 'edit') { foreach ($tab as $key => $val) { print '
    '; print $val['picto']; - print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip')); + print $form->textwithpicto($langs->trans($key), $langs->trans('DATAPOLICY_Tooltip_SETUP')); print ''; print ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($expedition->socid, $expedition->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$expedition->id, $expedition->socid, $expedition->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - $morehtmlref .= ' : '; if (!empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } $morehtmlref .= ''; - $morehtmlright = $langs->trans("StatusReceipt").' : '.$object->getLibStatut(6).'

    '; + $morehtmlstatus = $langs->trans("StatusReceipt").' : '.$object->getLibStatut(6).'

    '; - dol_banner_tab($expedition, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', $morehtmlright); + dol_banner_tab($expedition, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); print '
    '; @@ -400,7 +390,7 @@ if ($action == 'create') { // Create. Seems to no be used */ // Document origine - if ($typeobject == 'commande' && $expedition->origin_id && !empty($conf->commande->enabled)) { + if ($typeobject == 'commande' && $expedition->origin_id && isModEnabled('commande')) { print '
    '.$langs->trans("RefOrder").'
    '.$langs->trans("RefProposal").'
    '; print '\n"; print '';*/ - if (!$conf->expedition_bon->enabled && !empty($conf->stock->enabled)) { + if (!$conf->expedition_bon->enabled && isModEnabled('stock')) { // Entrepot $entrepot = new Entrepot($db); $entrepot->fetch($object->entrepot_id); @@ -545,7 +535,7 @@ if ($action == 'create') { // Create. Seems to no be used $product->fetch($object->lines[$i]->fk_product); // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -575,11 +565,11 @@ if ($action == 'create') { // Create. Seems to no be used } $text .= ' '.$object->lines[$i]->product_ref.''; $text .= ' - '.$label; - $description = (!empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($object->lines[$i]->description)); + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($object->lines[$i]->description)); //print $description; print $form->textwithtooltip($text, $description, 3, '', '', $i); print_date_range($object->lines[$i]->date_start, $object->lines[$i]->date_end); - if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { print (!empty($object->lines[$i]->description) && $object->lines[$i]->description != $object->lines[$i]->product_label) ? '
    '.dol_htmlentitiesbr($object->lines[$i]->description) : ''; } } else { diff --git a/htdocs/delivery/class/delivery.class.php b/htdocs/delivery/class/delivery.class.php index 2c43cd715a3..3b560ce1026 100644 --- a/htdocs/delivery/class/delivery.class.php +++ b/htdocs/delivery/class/delivery.class.php @@ -31,10 +31,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } @@ -106,6 +106,8 @@ class Delivery extends CommonObject */ public $model_pdf; + public $commande_id; + public $lines = array(); @@ -636,7 +638,7 @@ class Delivery extends CommonObject $sql .= " WHERE rowid = ".((int) $lineid); if ($this->db->query($sql)) { - $this->update_price(); + $this->update_price(1); return 1; } else { @@ -971,7 +973,7 @@ class Delivery extends CommonObject $sqlSourceLine .= ", p.ref, p.label"; $sqlSourceLine .= " FROM ".MAIN_DB_PREFIX.$this->linkedObjectsIds[0]['type']."det as st"; $sqlSourceLine .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON st.fk_product = p.rowid"; - $sqlSourceLine .= " WHERE fk_".$this->linked_object[0]['type']." = ".((int) $this->linked_object[0]['linkid']); + $sqlSourceLine .= " WHERE fk_".$this->linked_objects[0]['type']." = ".((int) $this->linked_objects[0]['linkid']); $resultSourceLine = $this->db->query($sqlSourceLine); if ($resultSourceLine) { @@ -984,12 +986,12 @@ class Delivery extends CommonObject // Get lines of sources alread delivered $sql = "SELECT ld.fk_origin_line, sum(ld.qty) as qty"; $sql .= " FROM ".MAIN_DB_PREFIX."deliverydet as ld, ".MAIN_DB_PREFIX."delivery as l,"; - $sql .= " ".MAIN_DB_PREFIX.$this->linked_object[0]['type']." as c"; - $sql .= ", ".MAIN_DB_PREFIX.$this->linked_object[0]['type']."det as cd"; + $sql .= " ".MAIN_DB_PREFIX.$this->linked_objects[0]['type']." as c"; + $sql .= ", ".MAIN_DB_PREFIX.$this->linked_objects[0]['type']."det as cd"; $sql .= " WHERE ld.fk_delivery = l.rowid"; $sql .= " AND ld.fk_origin_line = cd.rowid"; - $sql .= " AND cd.fk_".$this->linked_object[0]['type']." = c.rowid"; - $sql .= " AND cd.fk_".$this->linked_object[0]['type']." = ".((int) $this->linked_object[0]['linkid']); + $sql .= " AND cd.fk_".$this->linked_objects[0]['type']." = c.rowid"; + $sql .= " AND cd.fk_".$this->linked_objects[0]['type']." = ".((int) $this->linked_objects[0]['linkid']); $sql .= " AND ld.fk_origin_line = ".((int) $objSourceLine->rowid); $sql .= " GROUP BY ld.fk_origin_line"; @@ -1083,18 +1085,18 @@ class Delivery extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'delivery' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/document.php b/htdocs/document.php index a33708e3e77..4f6652fafda 100644 --- a/htdocs/document.php +++ b/htdocs/document.php @@ -104,10 +104,10 @@ $entity = GETPOST('entity', 'int') ?GETPOST('entity', 'int') : $conf->entity; // Security check if (empty($modulepart) && empty($hashp)) { - accessforbidden('Bad link. Bad value for parameter modulepart', 0, 0, 1); + httponly_accessforbidden('Bad link. Bad value for parameter modulepart', 400); } if (empty($original_file) && empty($hashp)) { - accessforbidden('Bad link. Missing identification to find file (original_file or hashp)', 0, 0, 1); + httponly_accessforbidden('Bad link. Missing identification to find file (original_file or hashp)', 400); } if ($modulepart == 'fckeditor') { $modulepart = 'medias'; // For backward compatibility @@ -120,7 +120,7 @@ if ($user->socid > 0) { // For some module part, dir may be privates if (in_array($modulepart, array('facture_paiement', 'unpaid'))) { - if (empty($user->rights->societe->client->voir) || $socid) { + if (!$user->hasRight('societe', 'client', 'voir') || $socid) { $original_file = 'private/'.$user->id.'/'.$original_file; // If user has no permission to see all, output dir is specific to user } } @@ -158,7 +158,7 @@ if (!empty($hashp)) { $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir //var_dump($original_file); exit; } else { - accessforbidden('Bad link. File is from another module part.', 0, 0, 1); + httponly_accessforbidden('Bad link. File is from another module part.', 403); } } else { $modulepart = $moduleparttocheck; @@ -171,7 +171,7 @@ if (!empty($hashp)) { } } else { $langs->load("errors"); - accessforbidden($langs->trans("ErrorFileNotFoundWithSharedLink"), 0, 0, 1); + httponly_accessforbidden($langs->trans("ErrorFileNotFoundWithSharedLink"), 403, 1); } } diff --git a/htdocs/don/admin/donation.php b/htdocs/don/admin/donation.php index c56effea73a..a78935c74fd 100644 --- a/htdocs/don/admin/donation.php +++ b/htdocs/don/admin/donation.php @@ -30,7 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; } @@ -169,7 +169,7 @@ if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { $dir = "../../core/modules/dons/"; $form = new Form($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -310,7 +310,7 @@ print '\n"; print ''; print "\n"; -if (!empty($conf->societe->enabled)) { +if (isModEnabled("societe")) { print ''; print ''; print ''; // Company - if (!empty($conf->societe->enabled) && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { + if (isModEnabled("societe") && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { // Thirdparty if ($soc->id > 0) { print ''; @@ -460,7 +466,7 @@ if ($action == 'create') { print $form->selectyesno("public", $public_donation, 1); print "\n"; - if (empty($conf->societe->enabled) || empty($conf->global->DONATION_USE_THIRDPARTIES)) { + if (!isModEnabled('societe') || empty($conf->global->DONATION_USE_THIRDPARTIES)) { print "".''; print "".''; print "".''; @@ -488,14 +494,17 @@ if ($action == 'create') { // Payment mode print "\n"; // Public note print ''; print ''; print ''; @@ -505,15 +514,18 @@ if ($action == 'create') { print ''; print ''; print ''; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print "\n"; } @@ -591,7 +603,7 @@ if (!empty($id) && $action == 'edit') { print ""; print "\n"; - if (!empty($conf->societe->enabled) && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { + if (isModEnabled("societe") && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { $company = new Societe($db); print '".''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load('projects'); @@ -673,6 +685,7 @@ if (!empty($id) && $action == 'edit') { /* */ /* ************************************************************ */ if (!empty($id) && $action != 'edit') { + $formconfirm = ""; // Confirmation delete if ($action == 'delete') { $text = $langs->trans("ConfirmDeleteADonation"); @@ -700,7 +713,7 @@ if (!empty($id) && $action != 'edit') { $morehtmlref = '
    '; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { @@ -756,7 +769,7 @@ if (!empty($id) && $action != 'edit') { print yn($object->public); print ''; - if (!empty($conf->societe->enabled) && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { + if (isModEnabled("societe") && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { $company = new Societe($db); print '
    '; + print ''; + print dol_get_fiche_end(); @@ -2498,7 +2528,7 @@ if ($action == 'create') { // Create bill if (isModEnabled('facture') && ($object->statut == Expedition::STATUS_VALIDATED || $object->statut == Expedition::STATUS_CLOSED)) { if ($user->rights->facture->creer) { - // TODO show button only if (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) + // TODO show button only if (!empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) // If we do that, we must also make this option official. print dolGetButtonAction('', $langs->trans('CreateBill'), 'default', DOL_URL_ROOT.'/compta/facture/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, ''); } @@ -2558,8 +2588,8 @@ if ($action == 'create') { // Show links to link elements - //$linktoelem = $form->showLinkToObjectBlock($object, null, array('order')); - $somethingshown = $form->showLinkedObjectBlock($object, ''); + $linktoelem = $form->showLinkToObjectBlock($object, null, array('shipping')); + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); print '
    '; diff --git a/htdocs/expedition/class/api_shipments.class.php b/htdocs/expedition/class/api_shipments.class.php index 357683ef35a..450fe943d7e 100644 --- a/htdocs/expedition/class/api_shipments.class.php +++ b/htdocs/expedition/class/api_shipments.class.php @@ -686,6 +686,11 @@ class Shipments extends DolibarrApi if (!empty($object->lines) && is_array($object->lines)) { foreach ($object->lines as $line) { + if (is_array($line->detail_batch)) { + foreach ($line->detail_batch as $keytmp2 => $valtmp2) { + unset($line->detail_batch[$keytmp2]->db); + } + } unset($line->tva_tx); unset($line->vat_src_code); unset($line->total_ht); diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 5b033fc11f7..dd6dfee55b1 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -37,10 +37,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; require_once DOL_DOCUMENT_ROOT."/core/class/commonobjectline.class.php"; require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php'; -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionlinebatch.class.php'; @@ -84,6 +84,13 @@ class Expedition extends CommonObject */ public $picto = 'dolly'; + + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields = array(); + + public $socid; /** @@ -98,12 +105,6 @@ class Expedition extends CommonObject */ public $ref_customer; - /** - * @var string internal ref - * @deprecated - */ - public $ref_int; - public $brouillon; /** @@ -217,11 +218,11 @@ class Expedition extends CommonObject $this->statuts[2] = 'StatusSendingProcessed'; // List of short language codes for status - $this->statutshorts = array(); - $this->statutshorts[-1] = 'StatusSendingCanceledShort'; - $this->statutshorts[0] = 'StatusSendingDraftShort'; - $this->statutshorts[1] = 'StatusSendingValidatedShort'; - $this->statutshorts[2] = 'StatusSendingProcessedShort'; + $this->statuts_short = array(); + $this->statuts_short[-1] = 'StatusSendingCanceledShort'; + $this->statuts_short[0] = 'StatusSendingDraftShort'; + $this->statuts_short[1] = 'StatusSendingValidatedShort'; + $this->statuts_short[2] = 'StatusSendingProcessedShort'; } /** @@ -304,7 +305,6 @@ class Expedition extends CommonObject $sql .= "ref"; $sql .= ", entity"; $sql .= ", ref_customer"; - $sql .= ", ref_int"; $sql .= ", ref_ext"; $sql .= ", date_creation"; $sql .= ", fk_user_author"; @@ -329,7 +329,6 @@ class Expedition extends CommonObject $sql .= "'(PROV)'"; $sql .= ", ".((int) $conf->entity); $sql .= ", ".($this->ref_customer ? "'".$this->db->escape($this->ref_customer)."'" : "null"); - $sql .= ", ".($this->ref_int ? "'".$this->db->escape($this->ref_int)."'" : "null"); $sql .= ", ".($this->ref_ext ? "'".$this->db->escape($this->ref_ext)."'" : "null"); $sql .= ", '".$this->db->idate($now)."'"; $sql .= ", ".((int) $user->id); @@ -527,7 +526,7 @@ class Expedition extends CommonObject return -1; } - $sql = "SELECT e.rowid, e.entity, e.ref, e.fk_soc as socid, e.date_creation, e.ref_customer, e.ref_ext, e.ref_int, e.fk_user_author, e.fk_statut, e.fk_projet as fk_project, e.billed"; + $sql = "SELECT e.rowid, e.entity, e.ref, e.fk_soc as socid, e.date_creation, e.ref_customer, e.ref_ext, e.fk_user_author, e.fk_statut, e.fk_projet as fk_project, e.billed"; $sql .= ", e.date_valid"; $sql .= ", e.weight, e.weight_units, e.size, e.size_units, e.width, e.height"; $sql .= ", e.date_expedition as date_expedition, e.model_pdf, e.fk_address, e.date_delivery"; @@ -551,9 +550,6 @@ class Expedition extends CommonObject if ($ref_ext) { $sql .= " AND e.ref_ext='".$this->db->escape($ref_ext)."'"; } - if ($notused) { - $sql .= " AND e.ref_int='".$this->db->escape($notused)."'"; - } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $result = $this->db->query($sql); @@ -567,7 +563,6 @@ class Expedition extends CommonObject $this->socid = $obj->socid; $this->ref_customer = $obj->ref_customer; $this->ref_ext = $obj->ref_ext; - $this->ref_int = $obj->ref_int; $this->statut = $obj->fk_statut; $this->user_author_id = $obj->fk_user_author; $this->date_creation = $this->db->jdate($obj->date_creation); @@ -625,7 +620,7 @@ class Expedition extends CommonObject $this->fetch_optionals(); // Fix Get multicurrency param for transmited - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { if (!empty($this->multicurrency_code)) { $this->multicurrency_code = $this->thirdparty->multicurrency_code; } @@ -719,7 +714,7 @@ class Expedition extends CommonObject } // If stock increment is done on sending (recommanded choice) - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -745,21 +740,22 @@ class Expedition extends CommonObject } else { $qty = $obj->edbqty; } - if ($qty <= 0) { + + if ($qty == 0 || ($qty < 0 && !getDolGlobalInt('SHIPMENT_ALLOW_NEGATIVE_QTY'))) { continue; } dol_syslog(get_class($this)."::valid movement index ".$i." ed.rowid=".$obj->rowid." edb.rowid=".$obj->edbrowid); //var_dump($this->lines[$i]); $mouvS = new MouvementStock($this->db); - //$mouvS->origin = dol_clone($this, 1); + $mouvS->setOrigin($this->element, $this->id); if (empty($obj->edbrowid)) { // line without batch detail // We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record. - $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ShipmentValidatedInDolibarr", $numref)); + $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ShipmentValidatedInDolibarr", $numref), '', '', '', '', 0, '', 1); if ($result < 0) { $error++; @@ -771,8 +767,8 @@ class Expedition extends CommonObject // line with batch detail // We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record. - // Note: ->fk_origin_stock = id into table llx_product_batch (may be rename into llx_product_stock_batch in another version) - $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ShipmentValidatedInDolibarr", $numref), '', $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, $obj->fk_origin_stock); + // Note: ->fk_origin_stock = id into table llx_product_batch (may be renamed into llx_product_stock_batch in another version) + $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ShipmentValidatedInDolibarr", $numref), '', $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, $obj->fk_origin_stock, '', 1); if ($result < 0) { $error++; $this->error = $mouvS->error; @@ -781,6 +777,12 @@ class Expedition extends CommonObject } } } + + // If some stock lines are now 0, we can remove entry into llx_product_stock, but only if there is no child lines into llx_product_batch (detail of batch, because we can imagine + // having a lot1/qty=X and lot2/qty=-X, so 0 but we must not loose repartition of different lot. + $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_stock WHERE reel = 0 AND rowid NOT IN (SELECT fk_product_stock FROM ".MAIN_DB_PREFIX."product_batch as pb)"; + $resql = $this->db->query($sql); + // We do not test error, it can fails if there is child in batch details } else { $this->db->rollback(); $this->error = $this->db->error(); @@ -892,6 +894,7 @@ class Expedition extends CommonObject * Add an expedition line. * If STOCK_WAREHOUSE_NOT_REQUIRED_FOR_SHIPMENTS is set, you can add a shipment line, with no stock source defined * If STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT is not set, you can add a shipment line, even if not enough into stock + * Note: For product that need a batch number, you must use addline_batch() * * @param int $entrepot_id Id of warehouse * @param int $id Id of source line (order line) @@ -918,7 +921,7 @@ class Expedition extends CommonObject $line->rang = $orderline->rang; $line->product_type = $orderline->product_type; - if (!empty($conf->stock->enabled) && !empty($orderline->fk_product)) { + if (isModEnabled('stock') && !empty($orderline->fk_product)) { $fk_product = $orderline->fk_product; if (!($entrepot_id > 0) && empty($conf->global->STOCK_WAREHOUSE_NOT_REQUIRED_FOR_SHIPMENTS)) { @@ -927,7 +930,7 @@ class Expedition extends CommonObject return -1; } - if ($conf->global->STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT) { + if (!empty($conf->global->STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT)) { $product = new Product($this->db); $product->fetch($fk_product); @@ -958,8 +961,9 @@ class Expedition extends CommonObject } // If product need a batch number, we should not have called this function but addline_batch instead. - if (!empty($conf->productbatch->enabled) && !empty($orderline->fk_product) && !empty($orderline->product_tobatch)) { - $this->error = 'ADDLINE_WAS_CALLED_INSTEAD_OF_ADDLINEBATCH'; + // If this happen, we may have a bug in card.php page + if (isModEnabled('productbatch') && !empty($orderline->fk_product) && !empty($orderline->product_tobatch)) { + $this->error = 'ADDLINE_WAS_CALLED_INSTEAD_OF_ADDLINEBATCH '.$orderline->id.' '.$orderline->fk_product; // return -4; } @@ -1214,7 +1218,7 @@ class Expedition extends CommonObject } // Stock control - if (!$error && $conf->stock->enabled && + if (!$error && isModEnabled('stock') && (($conf->global->STOCK_CALCULATE_ON_SHIPMENT && $this->statut > self::STATUS_DRAFT) || ($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE && $this->statut == self::STATUS_CLOSED && $also_update_stock))) { require_once DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php"; @@ -1244,7 +1248,7 @@ class Expedition extends CommonObject $mouvS->origin = null; // get lot/serial $lotArray = null; - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { $lotArray = $shipmentlinebatch->fetchAll($obj->expeditiondet_id); if (!is_array($lotArray)) { $error++; @@ -1284,7 +1288,7 @@ class Expedition extends CommonObject } // delete batch expedition line - if (!$error && $conf->productbatch->enabled) { + if (!$error && isModEnabled('productbatch')) { $shipmentlinebatch = new ExpeditionLineBatch($this->db); if ($shipmentlinebatch->deleteFromShipment($this->id) < 0) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); @@ -1405,7 +1409,7 @@ class Expedition extends CommonObject } // Stock control - if (!$error && $conf->stock->enabled && + if (!$error && isModEnabled('stock') && (($conf->global->STOCK_CALCULATE_ON_SHIPMENT && $this->statut > self::STATUS_DRAFT) || ($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE && $this->statut == self::STATUS_CLOSED && $also_update_stock))) { require_once DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php"; @@ -1709,7 +1713,7 @@ class Expedition extends CommonObject } // Detail of batch - if (!empty($conf->productbatch->enabled) && $obj->line_id > 0 && $obj->product_tobatch > 0) { + if (isModEnabled('productbatch') && $obj->line_id > 0 && $obj->product_tobatch > 0) { $newdetailbatch = $shipmentlinebatch->fetchAll($obj->line_id, $obj->fk_product); if (is_array($newdetailbatch)) { @@ -1876,7 +1880,7 @@ class Expedition extends CommonObject global $langs; $labelStatus = $langs->transnoentitiesnoconv($this->statuts[$status]); - $labelStatusShort = $langs->transnoentitiesnoconv($this->statutshorts[$status]); + $labelStatusShort = $langs->transnoentitiesnoconv($this->statuts_short[$status]); $statusType = 'status'.$status; if ($status == self::STATUS_VALIDATED) { @@ -1907,23 +1911,6 @@ class Expedition extends CommonObject dol_syslog(get_class($this)."::initAsSpecimen"); - // Load array of products prodids - $num_prods = 0; - $prodids = array(); - $sql = "SELECT rowid"; - $sql .= " FROM ".MAIN_DB_PREFIX."product"; - $sql .= " WHERE entity IN (".getEntity('product').")"; - $resql = $this->db->query($sql); - if ($resql) { - $num_prods = $this->db->num_rows($resql); - $i = 0; - while ($i < $num_prods) { - $i++; - $row = $this->db->fetch_row($resql); - $prodids[$i] = $row[0]; - } - } - $order = new Commande($this->db); $order->initAsSpecimen(); @@ -1936,7 +1923,7 @@ class Expedition extends CommonObject $this->date = $now; $this->date_creation = $now; $this->date_valid = $now; - $this->date_delivery = $now; + $this->date_delivery = $now + 24 * 3600; $this->date_expedition = $now + 24 * 3600; $this->entrepot_id = 0; @@ -2145,8 +2132,9 @@ class Expedition extends CommonObject } } if ($shipments_match_order) { - dol_syslog("Qty for the ".count($order->lines)." lines of order have same value for shipments with status Expedition::STATUS_CLOSED=".self::STATUS_CLOSED.', so we close order'); - $order->cloture($user); + dol_syslog("Qty for the ".count($order->lines)." lines of the origin order is same than qty for lines in the shipment we close (shipments_match_order is true), with new status Expedition::STATUS_CLOSED=".self::STATUS_CLOSED.', so we close order'); + // We close the order + $order->cloture($user); // Note this may also create an invoice if module workflow ask it } } @@ -2154,7 +2142,7 @@ class Expedition extends CommonObject $this->status = self::STATUS_CLOSED; // Will be revert to STATUS_VALIDATED at end if there is a rollback // If stock increment is done on closing - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -2246,21 +2234,6 @@ class Expedition extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Classify the shipping as invoiced (used when WORKFLOW_BILL_ON_SHIPMENT is on) - * - * @deprecated - * @see setBilled() - * @return int <0 if ko, >0 if ok - */ - public function set_billed() - { - // phpcs:enable - dol_syslog(get_class($this)."::set_billed is deprecated, use setBilled instead", LOG_NOTICE); - return $this->setBilled(); - } - /** * Classify the shipping as invoiced (used when WORKFLOW_BILL_ON_SHIPMENT is on) * @@ -2331,7 +2304,7 @@ class Expedition extends CommonObject $this->billed = 0; // If stock increment is done on closing - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -2460,18 +2433,18 @@ class Expedition extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'expedition' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } @@ -2491,12 +2464,28 @@ class ExpeditionLigne extends CommonObjectLine */ public $table_element = 'expeditiondet'; + + /** + * Id of the line. Duplicate of $id. + * + * @var int + * @deprecated + */ + public $line_id; // deprecated + /** * @deprecated * @see $fk_origin_line */ public $origin_line_id; + /** + * Code of object line that is origin of the shipment line. + * + * @var string + */ + public $fk_origin; // Example: 'orderline' + /** * @var int ID */ @@ -2526,8 +2515,16 @@ class ExpeditionLigne extends CommonObjectLine * @var int Id of product */ public $fk_product; + + // detail of lot and qty = array(id in llx_expeditiondet_batch, fk_expeditiondet, batch, qty, fk_origin_stock) + // We can use this to know warehouse planned to be used for each lot. public $detail_batch; + // detail of warehouses and qty + // We can use this to know warehouse when there is no lot. + public $details_entrepot; + + /** * @var int Id of warehouse */ @@ -2781,7 +2778,7 @@ class ExpeditionLigne extends CommonObjectLine $this->db->begin(); // delete batch expedition line - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch"; $sql .= " WHERE fk_expeditiondet = ".((int) $this->id); @@ -2894,7 +2891,7 @@ class ExpeditionLigne extends CommonObjectLine // update lot - if (!empty($batch) && $conf->productbatch->enabled) { + if (!empty($batch) && isModEnabled('productbatch')) { dol_syslog(get_class($this)."::update expedition batch id=$expedition_batch_id, batch_id=$batch_id, batch=$batch"); if (empty($batch_id) || empty($this->fk_product)) { diff --git a/htdocs/expedition/class/expeditionlinebatch.class.php b/htdocs/expedition/class/expeditionlinebatch.class.php index b2562734447..ab1d9123830 100644 --- a/htdocs/expedition/class/expeditionlinebatch.class.php +++ b/htdocs/expedition/class/expeditionlinebatch.class.php @@ -44,7 +44,7 @@ class ExpeditionLineBatch extends CommonObject public $qty; public $dluo_qty; // deprecated, use qty public $entrepot_id; - public $fk_origin_stock; + public $fk_origin_stock; // rowid in llx_product_batch table public $fk_expeditiondet; @@ -194,7 +194,7 @@ class ExpeditionLineBatch extends CommonObject } $sql .= " WHERE fk_expeditiondet=".(int) $id_line_expdet; - dol_syslog(__METHOD__."", LOG_DEBUG); + dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); diff --git a/htdocs/expedition/class/expeditionstats.class.php b/htdocs/expedition/class/expeditionstats.class.php index 8eb31896f38..aa4e40fcb8f 100644 --- a/htdocs/expedition/class/expeditionstats.class.php +++ b/htdocs/expedition/class/expeditionstats.class.php @@ -131,6 +131,54 @@ class ExpeditionStats extends Stats return $this->_getNbByYear($sql); } + /** + * Return the orders amount by month for a year + * + * @param int $year Year to scan + * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month + * @return array Array with amount by month + */ + public function getAmountByMonth($year, $format = 0) + { + global $user; + + $sql = "SELECT date_format(c.date_valid,'%m') as dm, SUM(c.".$this->field.")"; + $sql .= " FROM ".$this->from; + if (empty($user->rights->societe->client->voir) && !$this->socid) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + } + $sql .= $this->join; + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + $res = $this->_getAmountByMonth($year, $sql, $format); + return $res; + } + + /** + * Return the orders amount average by month for a year + * + * @param int $year year for stats + * @return array array with number by month + */ + public function getAverageByMonth($year) + { + global $user; + + $sql = "SELECT date_format(c.date_valid,'%m') as dm, AVG(c.".$this->field.")"; + $sql .= " FROM ".$this->from; + if (empty($user->rights->societe->client->voir) && !$this->socid) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + } + $sql .= $this->join; + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAverageByMonth($year, $sql); + } + /** * Return nb, total and average * diff --git a/htdocs/expedition/contact.php b/htdocs/expedition/contact.php index 944f76266d2..48822121fa3 100644 --- a/htdocs/expedition/contact.php +++ b/htdocs/expedition/contact.php @@ -23,13 +23,14 @@ * \brief Onglet de gestion des contacts de expedition */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -53,11 +54,11 @@ if ($id > 0 || !empty($ref)) { } // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { $objectsrc = new Commande($db); $objectsrc->fetch($object->$typeobject->id); } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { $objectsrc = new Propal($db); $objectsrc->fetch($object->$typeobject->id); } @@ -147,39 +148,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if (0) { // Do not change on shipment + $morehtmlref .= '
    '; + if (0) { // Do not change on shipment + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on shipment, so we will use the project or source object instead - // TODO Add project on shipment - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -196,7 +183,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans('IncotermLabel'); @@ -489,7 +479,7 @@ if ($action == 'create') { // Create. Seems to no be used print ''.$object->getLibStatut(4)."
    '.$langs->trans("Value")."
    '; print $langs->trans("DonationUseThirdparties"); @@ -335,7 +335,7 @@ print ''; $label = $langs->trans("AccountAccounting"); print ''; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { print $formaccounting->select_account($conf->global->DONATION_ACCOUNTINGACCOUNT, 'DONATION_ACCOUNTINGACCOUNT', 1, '', 1, 1); } else { print ''; diff --git a/htdocs/don/admin/donation_extrafields.php b/htdocs/don/admin/donation_extrafields.php index 1fc28065a5c..a0454ea08d7 100644 --- a/htdocs/don/admin/donation_extrafields.php +++ b/htdocs/don/admin/donation_extrafields.php @@ -22,6 +22,7 @@ * \brief Page to setup extra fields of donations */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -77,13 +78,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - /* ************************************************************************** */ /* */ diff --git a/htdocs/don/card.php b/htdocs/don/card.php index 960ff7e7b2d..459c892a1d9 100644 --- a/htdocs/don/card.php +++ b/htdocs/don/card.php @@ -27,6 +27,7 @@ * \brief Page of donation card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/dons/modules_don.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; @@ -38,15 +39,16 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -$langs->loadLangs(array("bills", "companies", "donations", "users")); +$langs->loadLangs(array('bills', 'companies', 'donations', 'users')); $id = GETPOST('rowid') ?GETPOST('rowid', 'int') : GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); @@ -57,10 +59,11 @@ $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); $public_donation = (int) GETPOST("public", 'int'); $object = new Don($db); -$extrafields = new ExtraFields($db); +if ($id > 0 || $ref) { + $object->fetch($id, $ref); +} -// Security check -$result = restrictedArea($user, 'don', $id); +$extrafields = new ExtraFields($db); // fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -70,6 +73,11 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen $hookmanager->initHooks(array('doncard', 'globalcard')); $upload_dir = $conf->don->dir_output; + + +// Security check +$result = restrictedArea($user, 'don', $object->id); + $permissiontoadd = $user->rights->don->creer; @@ -119,10 +127,10 @@ if (empty($reshook)) { if (method_exists($object, 'generateDocument')) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -181,8 +189,6 @@ if (empty($reshook)) { $object->date = $donation_date; $object->public = $public_donation; $object->fk_project = (int) GETPOST("fk_project", 'int'); - $object->note_private = (string) GETPOST("note_private", 'restricthtml'); - $object->note_public = (string) GETPOST("note_public", 'restricthtml'); $object->modepaymentid = (int) GETPOST('modepayment', 'int'); // Fill array 'array_options' with data from add form @@ -211,7 +217,7 @@ if (empty($reshook)) { $error = 0; - if (!empty($conf->societe->enabled) && !empty($conf->global->DONATION_USE_THIRDPARTIES) && !(GETPOST("socid", 'int') > 0)) { + if (isModEnabled("societe") && !empty($conf->global->DONATION_USE_THIRDPARTIES) && !(GETPOST("socid", 'int') > 0)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ThirdParty")), null, 'errors'); $action = "create"; $error++; @@ -351,9 +357,9 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang=''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->thirdparty->default_lang; - if (! empty($newlang)) + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && !empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) $newlang=$object->thirdparty->default_lang; + if (!empty($newlang)) { $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); @@ -382,7 +388,7 @@ llxHeader('', $title, $help_url); $form = new Form($db); $formfile = new FormFile($db); $formcompany = new FormCompany($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -402,7 +408,7 @@ if ($action == 'create') { print '
    '.$langs->trans('Ref').''.$langs->trans('Draft').'
    '.$langs->trans('ThirdParty').'
    '.$langs->trans("Company").'
    '.$langs->trans("Lastname").'
    '.$langs->trans("Firstname").'
    ".$langs->trans("PaymentMode")."\n"; $selected = GETPOST('modepayment', 'int'); - $form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1); + print img_picto('', 'payment', 'class="pictofixedwidth"'); + print $form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1, 0, 0, 1, 'maxwidth200 widthcentpercentminusx', 1); print "
    '.$langs->trans('NotePublic').''; - + if (!isset($note_public)) { + $note_public = $object->getDefaultCreateValueFor('note_public'); + } $doleditor = new DolEditor('note_public', $note_public, '', 80, 'dolibarr_notes', 'In', 0, false, empty($conf->global->FCKEDITOR_ENABLE_NOTE_PUBLIC) ? 0 : 1, ROWS_3, '90%'); print $doleditor->Create(1); print '
    '.$langs->trans('NotePrivate').''; - + if (!isset($note_private)) { + $note_private = $object->getDefaultCreateValueFor('note_private'); + } $doleditor = new DolEditor('note_private', $note_private, '', 80, 'dolibarr_notes', 'In', 0, false, empty($conf->global->FCKEDITOR_ENABLE_NOTE_PRIVATE) ? 0 : 1, ROWS_3, '90%'); print $doleditor->Create(1); print '
    ".$langs->trans("Project").""; - $formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth500'); + print img_picto('', 'project', 'class="pictofixedwidth"'); + print $formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500'); print "
    '.$langs->trans("ThirdParty").''; @@ -639,7 +651,7 @@ if (!empty($id) && $action == 'edit') { print "
    '.$langs->trans("Status").''.$object->getLibStatut(4).'
    '.$langs->trans("ThirdParty").''; @@ -803,7 +816,7 @@ if (!empty($id) && $action != 'edit') { $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - $i = 0; $total = 0; + $i = 0; $total = 0; $totalpaid = 0; print ''; print ''; print ''; @@ -833,7 +846,7 @@ if (!empty($id) && $action != 'edit') { $remaintopay = $object->amount - $totalpaid; print ""; - print '\n"; + print '\n"; } print "
    '.$langs->trans("RefPayment").'
    ".$langs->trans("RemainderToPay")." :'.price($remaintopay)."
    '.price($remaintopay)."
    "; $db->free($resql); @@ -915,7 +928,7 @@ if (!empty($id) && $action != 'edit') { $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); // Show online payment link - $useonlinepayment = (!empty($conf->paypal->enabled) || !empty($conf->stripe->enabled) || !empty($conf->paybox->enabled)); + $useonlinepayment = (isModEnabled('paypal') || isModEnabled('stripe') || isModEnabled('paybox')); if ($useonlinepayment) { //$object->statut != Facture::STATUS_DRAFT && print '
    '."\n"; diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php index 0ce92f44e1b..158c96cb441 100644 --- a/htdocs/don/class/don.class.php +++ b/htdocs/don/class/don.class.php @@ -206,7 +206,7 @@ class Don extends CommonObject */ public function initAsSpecimen() { - global $conf, $user, $langs; + global $conf; $now = dol_now(); @@ -224,10 +224,10 @@ class Don extends CommonObject $num_socs = $this->db->num_rows($resql); $i = 0; while ($i < $num_socs) { - $i++; - $row = $this->db->fetch_row($resql); $socids[$i] = $row[0]; + + $i++; } } @@ -237,7 +237,7 @@ class Don extends CommonObject $this->specimen = 1; $this->lastname = 'Doe'; $this->firstname = 'John'; - $this->socid = 1; + $this->socid = empty($socids[0]) ? 0 : $socids[0]; $this->date = $now; $this->date_valid = $now; $this->amount = 100.90; @@ -406,9 +406,9 @@ class Don extends CommonObject $sql .= ", ".((int) $user->id); $sql .= ", null"; $sql .= ", '".$this->db->idate($this->date)."'"; - $sql .= ", '".$this->db->escape(trim($this->email))."'"; - $sql .= ", '".$this->db->escape(trim($this->phone))."'"; - $sql .= ", '".$this->db->escape(trim($this->phone_mobile))."'"; + $sql .= ", '".(!empty($this->email) ? $this->db->escape(trim($this->email)) : "")."'"; + $sql .= ", '".(!empty($this->phone) ? $this->db->escape(trim($this->phone)) : "")."'"; + $sql .= ", '".(!empty($this->phone_mobile) ? $this->db->escape(trim($this->phone_mobile)) : "")."'"; $sql .= ")"; $resql = $this->db->query($sql); @@ -832,8 +832,8 @@ class Don extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->bom->bom_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -974,7 +974,7 @@ class Don extends CommonObject public function info($id) { $sql = 'SELECT d.rowid, d.datec, d.fk_user_author, d.fk_user_valid,'; - $sql .= ' d.tms'; + $sql .= ' d.tms as datem'; $sql .= ' FROM '.MAIN_DB_PREFIX.'don as d'; $sql .= ' WHERE d.rowid = '.((int) $id); @@ -985,18 +985,11 @@ class Don extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_modification = $vuser; - } + + $this->user_creation_id = $obj->fk_user_author; + $this->user_validation_id = $obj->fk_user_valid; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->tms); + $this->date_modification = (!empty($obj->tms) ? $this->db->jdate($obj->tms) : ""); } $this->db->free($result); } else { @@ -1108,18 +1101,18 @@ class Don extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old third-party id - * @param int $dest_id New third-party id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'don' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/don/class/donstats.class.php b/htdocs/don/class/donstats.class.php index 07eb6d6588e..bd52f10dbc4 100644 --- a/htdocs/don/class/donstats.class.php +++ b/htdocs/don/class/donstats.class.php @@ -68,10 +68,11 @@ class DonationStats extends Stats */ public function __construct($db, $socid, $mode, $userid = 0) { - global $user, $conf; + global $conf; $this->db = $db; + $this->field = 'amount'; $this->socid = ($socid > 0 ? $socid : 0); $this->userid = $userid; $this->cachefilesuffix = $mode; @@ -98,8 +99,6 @@ class DonationStats extends Stats */ public function getNbByMonth($year, $format = 0) { - global $user; - $sql = "SELECT date_format(d.datedon,'%m') as dm, COUNT(*) as nb"; $sql .= " FROM ".$this->from; $sql .= " WHERE d.datedon BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -119,8 +118,6 @@ class DonationStats extends Stats */ public function getNbByYear() { - global $user; - $sql = "SELECT date_format(d.datedon,'%Y') as dm, COUNT(*) as nb, SUM(d.".$this->field.")"; $sql .= " FROM ".$this->from; $sql .= " WHERE ".$this->where; @@ -130,6 +127,45 @@ class DonationStats extends Stats return $this->_getNbByYear($sql); } + /** + * Return the number of subscriptions by month for a given year + * + * @param int $year Year + * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month + * @return array Array of amount each month + */ + public function getAmountByMonth($year, $format = 0) + { + $sql = "SELECT date_format(d.datedon,'%m') as dm, sum(d.".$this->field.")"; + $sql .= " FROM ".$this->from; + //if (empty($user->rights->societe->client->voir) && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE ".dolSqlDateFilter('d.datedon', 0, 0, (int) $year, 1); + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAmountByMonth($year, $sql, $format); + } + + /** + * Return average amount each month + * + * @param int $year Year + * @return array Array of average each month + */ + public function getAverageByMonth($year) + { + $sql = "SELECT date_format(d.datedon,'%m') as dm, avg(d.".$this->field.")"; + $sql .= " FROM ".$this->from; + //if (empty($user->rights->societe->client->voir) && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE ".dolSqlDateFilter('d.datedon', 0, 0, (int) $year, 1); + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAverageByMonth($year, $sql); + } + /** * Return nb, total and average * @@ -137,8 +173,6 @@ class DonationStats extends Stats */ public function getAllByYear() { - global $user; - $sql = "SELECT date_format(d.datedon,'%Y') as year, COUNT(*) as nb, SUM(d.".$this->field.") as total, AVG(".$this->field.") as avg"; $sql .= " FROM ".$this->from; $sql .= " WHERE ".$this->where; diff --git a/htdocs/don/class/paymentdonation.class.php b/htdocs/don/class/paymentdonation.class.php index 6de83f5570e..657a1d32d1a 100644 --- a/htdocs/don/class/paymentdonation.class.php +++ b/htdocs/don/class/paymentdonation.class.php @@ -65,7 +65,7 @@ class PaymentDonation extends CommonObject public $amounts = array(); // Array of amounts public $fk_typepayment; // Payment mode ID - public $paymenttype; // Payment mode ID + public $paymenttype; // Payment mode ID or Code. TODO Use only the code in this field. public $num_payment; @@ -188,12 +188,12 @@ class PaymentDonation extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_donation (fk_donation, datec, datep, amount,"; $sql .= " fk_typepayment, num_payment, note, ext_payment_id, ext_payment_site,"; $sql .= " fk_user_creat, fk_bank)"; - $sql .= " VALUES ($this->chid, '".$this->db->idate($now)."',"; + $sql .= " VALUES (".((int) $this->chid).", '".$this->db->idate($now)."',"; $sql .= " '".$this->db->idate($this->datepaid)."',"; - $sql .= " ".price2num($totalamount).","; + $sql .= " ".((float) price2num($totalamount)).","; $sql .= " ".((int) $this->paymenttype).", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note_public)."', "; $sql .= " ".($this->ext_payment_id ? "'".$this->db->escape($this->ext_payment_id)."'" : "null").", ".($this->ext_payment_site ? "'".$this->db->escape($this->ext_payment_site)."'" : "null").","; - $sql .= " ".$user->id.", 0)"; + $sql .= " ".((int) $user->id).", 0)"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $resql = $this->db->query($sql); @@ -269,8 +269,8 @@ class PaymentDonation extends CommonObject $this->tms = $this->db->jdate($obj->tms); $this->datep = $this->db->jdate($obj->datep); $this->amount = $obj->amount; - $this->fk_typepayment = $obj->fk_typepayment; // For backward compatibility - $this->paymenttype = $obj->fk_typepayment; + $this->fk_typepayment = $obj->fk_typepayment; // Id on type of payent + $this->paymenttype = $obj->fk_typepayment; // Id on type of payment. We should store the code into paymenttype. $this->num_payment = $obj->num_payment; $this->note_public = $obj->note_public; $this->fk_bank = $obj->fk_bank; @@ -347,7 +347,7 @@ class PaymentDonation extends CommonObject $sql .= " note=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null"); $sql .= " WHERE rowid=".(int) $this->id; $this->db->begin(); @@ -574,7 +574,7 @@ class PaymentDonation extends CommonObject $error = 0; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $acc = new Account($this->db); diff --git a/htdocs/don/document.php b/htdocs/don/document.php index ab99ba3df1d..a5aa3984202 100644 --- a/htdocs/don/document.php +++ b/htdocs/don/document.php @@ -29,18 +29,19 @@ * \brief Page of linked files onto donation */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("companies", "other", "donations")); +$langs->loadLangs(array('companies', 'other', 'donations')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -48,13 +49,6 @@ $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); -// Security check -if ($user->socid) { - $socid = $user->socid; -} -$result = restrictedArea($user, 'don', $id, ''); - - // Get parameters $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -73,13 +67,20 @@ if (!$sortfield) { $sortfield = "name"; } - $object = new Don($db); -$object->fetch($id, $ref); +if ($id > 0 || $ref) { + $object->fetch($id, $ref); +} -$upload_dir = $conf->don->dir_output.'/'.get_exdir($filename, 0, 0, 0, $object, 'donation').'/'.dol_sanitizeFileName($object->ref); +$upload_dir = $conf->don->dir_output.'/'.get_exdir($id, 0, 0, 0, $object, 'donation').'/'.dol_sanitizeFileName($object->ref); $modulepart = 'don'; +// Security check +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'don', $object->id); + $permissiontoadd = $user->rights->don->creer; // Used by the include of actions_dellink.inc.php @@ -99,7 +100,7 @@ if ($action == 'classin' && $user->rights->don->creer) { */ $form = new Form($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -129,7 +130,7 @@ if ($object->id) { $morehtmlref = '
    '; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { diff --git a/htdocs/don/index.php b/htdocs/don/index.php index 85e2eb3e48f..c402ecd6f0e 100644 --- a/htdocs/don/index.php +++ b/htdocs/don/index.php @@ -24,6 +24,7 @@ * \brief Home page of donation module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; @@ -34,11 +35,11 @@ $hookmanager->initHooks(array('donationindex')); $langs->load("donations"); +$donation_static = new Don($db); + // Security check $result = restrictedArea($user, 'don'); -$donation_static = new Don($db); - /* * Actions @@ -90,7 +91,7 @@ print load_fiche_titre($langs->trans("DonationsArea"), '', 'object_donation'); print '
    '; if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) { // TODO Add a search into global search combo so we can remove this - if (!empty($conf->don->enabled) && $user->rights->don->lire) { + if (isModEnabled('don') && $user->rights->don->lire) { $listofsearchfields['search_donation'] = array('text'=>'Donation'); } diff --git a/htdocs/don/info.php b/htdocs/don/info.php index 0057bf87dce..ad67cceb30c 100644 --- a/htdocs/don/info.php +++ b/htdocs/don/info.php @@ -21,41 +21,50 @@ * \brief Page to show a donation information */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } -$langs->load("donations"); +$langs->load('donations'); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); +$object = new Don($db); +if ($id > 0 || $ref) { + $object->fetch($id, $ref); +} + // Security check if ($user->socid) { $socid = $user->socid; } -$result = restrictedArea($user, 'don', $id, ''); +$result = restrictedArea($user, 'don', $object->id); + + -$object = new Don($db); -$object->fetch($id); /* * Actions */ + if ($action == 'classin' && $user->rights->don->creer) { $object->fetch($id); $object->setProject($projectid); } + /* * View */ + $title = $langs->trans('Donation')." - ".$langs->trans('Info'); $help_url = 'EN:Module_Donations|FR:Module_Dons|ES:Módulo_Donaciones|DE:Modul_Spenden'; @@ -63,7 +72,7 @@ $help_url = 'EN:Module_Donations|FR:Module_Dons|ES:Módulo_Donaciones|DE:M llxHeader('', $title, $help_url); $form = new Form($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -77,7 +86,7 @@ $linkback = ''; // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { diff --git a/htdocs/don/list.php b/htdocs/don/list.php index d7697dba43d..386a4bc2f6b 100644 --- a/htdocs/don/list.php +++ b/htdocs/don/list.php @@ -25,14 +25,15 @@ * \brief List of donations */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("companies", "donations")); +$langs->loadLangs(array('companies', 'donations')); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'sclist'; @@ -40,6 +41,7 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +$type = GETPOST('type', 'aZ'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 @@ -60,7 +62,7 @@ $search_company = GETPOST('search_company', 'alpha'); $search_name = GETPOST('search_name', 'alpha'); $search_amount = GETPOST('search_amount', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); - +$moreforfilter = GETPOST('moreforfilter', 'alpha'); if (!$user->rights->don->lire) { accessforbidden(); } @@ -86,6 +88,11 @@ $fieldstosearchall = array( 'd.firstname'=>'Firstname', ); +// Security check +$result = restrictedArea($user, 'don'); + + + /* * View @@ -93,7 +100,7 @@ $fieldstosearchall = array( $donationstatic = new Don($db); $form = new Form($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $projectstatic = new Project($db); } @@ -197,7 +204,7 @@ if ($resql) { } print '
    '; - print ''."\n"; + print '
    '."\n"; // Filters lines print ''; @@ -219,20 +226,20 @@ if ($resql) { print ''; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } print ''; - print ''; print '"; print ''; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print "'; // Bank account -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { if ($object->bank_account) { $bankline = new AccountLine($db); $bankline->fetch($object->bank_line); @@ -180,7 +181,7 @@ if ($resql) { // Expected to pay print ''; // Status - print ''; + print ''; // Amount paid print ''; print "\n"; @@ -213,9 +214,9 @@ print '
    '; if (empty($action)) { if ($user->rights->don->supprimer) { if (!$disable_delete) { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), '', 1); } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("CantRemovePaymentWithOneInvoicePaid"), $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), '', 1); } } } diff --git a/htdocs/don/payment/payment.php b/htdocs/don/payment/payment.php index 6cc37303346..358c0b208e9 100644 --- a/htdocs/don/payment/payment.php +++ b/htdocs/don/payment/payment.php @@ -22,6 +22,7 @@ * \brief Page to add payment of a donation */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php'; @@ -66,7 +67,7 @@ if ($action == 'add_payment') { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors'); $error++; } - if (!empty($conf->banque->enabled) && !(GETPOST("accountid", 'int') > 0)) { + if (isModEnabled("banque") && !(GETPOST("accountid", 'int') > 0)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToCredit")), null, 'errors'); $error++; } @@ -94,7 +95,7 @@ if ($action == 'add_payment') { // Create a line of payments $payment = new PaymentDonation($db); $payment->chid = $chid; - $payment->datepaid = $datepaid; + $payment->datep = $datepaid; $payment->amounts = $amounts; // Tableau de montant $payment->paymenttype = GETPOST("paymenttype", 'int'); $payment->num_payment = GETPOST("num_payment", 'alphanohtml'); @@ -111,7 +112,7 @@ if ($action == 'add_payment') { if (!$error) { $result = $payment->addPaymentToBank($user, 'payment_donation', '(DonationPayment)', GETPOST('accountid', 'int'), '', ''); - if (!$result > 0) { + if (!($result > 0)) { $errmsg = $payment->error; setEventMessages($errmsg, null, 'errors'); $error++; @@ -191,14 +192,14 @@ if ($action == 'create') { print ''; print '
    \n"; print ''; print ''; print ''; print ''; // Number diff --git a/htdocs/don/stats/index.php b/htdocs/don/stats/index.php index f56bdcd15ac..866cd25eef1 100644 --- a/htdocs/don/stats/index.php +++ b/htdocs/don/stats/index.php @@ -24,6 +24,7 @@ * \brief Page with donations statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/donstats.class.php'; @@ -40,7 +41,7 @@ if ($user->socid > 0) { $socid = $user->socid; } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; @@ -57,7 +58,7 @@ $form = new Form($db); llxHeader(); -print load_fiche_titre($langs->trans("StatisticsOfSendings"), $mesg); +print load_fiche_titre($langs->trans("StatisticsOfDonations"), $mesg); dol_mkdir($dir); @@ -71,9 +72,9 @@ $data = $stats->getNbByMonthWithPrevYear($endyear, $startyear); if (empty($user->rights->societe->client->voir) || $user->socid) { - $filenamenb = $dir.'/shipmentsnbinyear-'.$user->id.'-'.$year.'.png'; + $filenamenb = $dir.'/donationnbinyear-'.$user->id.'-'.$year.'.png'; } else { - $filenamenb = $dir.'/shipmentsnbinyear-'.$year.'.png'; + $filenamenb = $dir.'/donationnbinyear-'.$year.'.png'; } $px1 = new DolGraph(); @@ -90,11 +91,11 @@ if (!$mesg) { $px1->SetMinValue(min(0, $px1->GetFloorMinValue())); $px1->SetWidth($WIDTH); $px1->SetHeight($HEIGHT); - $px1->SetYLabel($langs->trans("NbOfSendings")); + $px1->SetYLabel($langs->trans("NbOfDonations")); $px1->SetShading(3); $px1->SetHorizTickIncrement(1); $px1->mode = 'depth'; - $px1->SetTitle($langs->trans("NumberOfShipmentsByMonth")); + $px1->SetTitle($langs->trans("NumberOfDonationsByMonth")); $px1->draw($filenamenb, $fileurlnb); } @@ -244,7 +245,7 @@ print '
    '; print '
    '; print ' '; print ''; print ' '; print ''; + print ''; $liststatus = array( Don::STATUS_DRAFT=>$langs->trans("DonationStatusPromiseNotValidated"), Don::STATUS_VALIDATED=>$langs->trans("DonationStatusPromiseValidated"), Don::STATUS_PAID=>$langs->trans("DonationStatusPaid"), Don::STATUS_CANCELED=>$langs->trans("Canceled") ); - print $form->selectarray('search_status', $liststatus, $search_status, -4, 0, 0, '', 0, 0, 0, '', 'maxwidth100'); + print $form->selectarray('search_status', $liststatus, $search_status, -4, 0, 0, '', 0, 0, 0, '', 'search_status maxwidth100 onrightofpage'); print ''; $searchpicto = $form->showFilterAndCheckAddButtons(0); @@ -249,7 +256,7 @@ if ($resql) { } print_liste_field_titre("Name", $_SERVER["PHP_SELF"], "d.lastname", "", $param, "", $sortfield, $sortorder); print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "d.datedon", "", $param, '', $sortfield, $sortorder, 'center '); - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); print_liste_field_titre("Project", $_SERVER["PHP_SELF"], "d.fk_projet", "", $param, "", $sortfield, $sortorder); } @@ -280,7 +287,7 @@ if ($resql) { } print "".$donationstatic->getFullName($langs)."'.dol_print_date($db->jdate($objp->datedon), 'day').'"; if ($objp->pid) { $projectstatic->id = $objp->pid; diff --git a/htdocs/don/note.php b/htdocs/don/note.php index 1629aa0f28f..dd3f4e176ce 100644 --- a/htdocs/don/note.php +++ b/htdocs/don/note.php @@ -25,34 +25,37 @@ * \brief Page to show a donation notes */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("companies", "bills", "donations")); +$langs->loadLangs(array('companies', 'bills', 'donations')); $id = (GETPOST('id', 'int') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); +$hookmanager->initHooks(array('donnote')); + +$object = new Don($db); +if ($id > 0 || $ref) { + $object->fetch($id, $ref); +} + // Security check $socid = 0; if ($user->socid) { $socid = $user->socid; } -$hookmanager->initHooks(array('donnote')); - -$result = restrictedArea($user, 'don', $id, ''); - -$object = new Don($db); -$object->fetch($id); +$result = restrictedArea($user, 'don', $object->id, ''); $permissionnote = $user->rights->don->creer; // Used by the include of actions_setnotes.inc.php @@ -60,6 +63,7 @@ $permissionnote = $user->rights->don->creer; // Used by the include of actions_s /* * Actions */ + $reshook = $hookmanager->executeHooks('doActions', array(), $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -73,6 +77,7 @@ if ($action == 'classin' && $user->rights->don->creer) { $object->setProject($projectid); } + /* * View */ @@ -84,7 +89,7 @@ $help_url = 'EN:Module_Donations|FR:Module_Dons|ES:Módulo_Donaciones|DE:M llxHeader('', $title, $help_url); $form = new Form($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -100,7 +105,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref = '
    '; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { diff --git a/htdocs/don/payment/card.php b/htdocs/don/payment/card.php index 363ef6d34ef..416e848d271 100644 --- a/htdocs/don/payment/card.php +++ b/htdocs/don/payment/card.php @@ -22,12 +22,13 @@ * \brief Tab payment of a donation */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php'; -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; } @@ -124,7 +125,7 @@ print '
    '.$langs->trans('Amount').''.price($object->amount, 0, $ print '
    '.$langs->trans('Note').''.nl2br($object->note_public).'
    '.price($objp->d_amount).''.$don->getLibStatut(4, $objp->amount).''.$don->getLibStatut(4).''.price($objp->amount).'
    '.$langs->trans("PaymentMode").''; - $form->select_types_paiements(GETPOSTISSET("paymenttype") ? GETPOST("paymenttype") : $object->paymenttype, "paymenttype"); + $form->select_types_paiements(GETPOSTISSET("paymenttype") ? GETPOST("paymenttype") : $object->fk_typepayment, "paymenttype"); print "
    '.$langs->trans('AccountToCredit').''; - $form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid") : $object->accountid, "accountid", 0, '', 2); // Show open bank account list + $form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid") : "0", "accountid", 0, '', 2); // Show open bank account list print '
    '; print ''; print ''; -print ''; +print ''; /*print ''; print '';*/ print ''; @@ -333,7 +334,7 @@ print '
    '.$langs->trans("Year").''.$langs->trans("NbOfSendings").''.$langs->trans("NbOfDonations").''.$langs->trans("AmountTotal").''.$langs->trans("AmountAverage").'
    '; */ print '
    '; -print ''.$langs->trans("StatsOnShipmentsOnlyValidated").''; +print ''.$langs->trans("StatsOnDonationsOnlyValidated").''; llxFooter(); diff --git a/htdocs/ecm/ajax/ecmdatabase.php b/htdocs/ecm/ajax/ecmdatabase.php index 2ce35973483..475e22754b0 100644 --- a/htdocs/ecm/ajax/ecmdatabase.php +++ b/htdocs/ecm/ajax/ecmdatabase.php @@ -33,6 +33,7 @@ if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; diff --git a/htdocs/ecm/class/ecmfiles.class.php b/htdocs/ecm/class/ecmfiles.class.php index d70f5c863d7..ab7b13aba90 100644 --- a/htdocs/ecm/class/ecmfiles.class.php +++ b/htdocs/ecm/class/ecmfiles.class.php @@ -407,7 +407,7 @@ class EcmFiles extends CommonObject $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; $sql .= ' WHERE 1 = 1'; /* Fetching this table depends on filepath+filename, it must not depends on entity because filesystem on disk does not know what is Dolibarr entities - if (! empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $sql .= " AND entity IN (" . getEntity('ecmfiles') . ")"; }*/ if ($relativepath) { @@ -546,7 +546,7 @@ class EcmFiles extends CommonObject } $sql .= ' WHERE 1 = 1'; /* Fetching this table depends on filepath+filename, it must not depends on entity - if (! empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $sql .= " AND entity IN (" . getEntity('ecmfiles') . ")"; }*/ if (count($sqlwhere) > 0) { @@ -751,7 +751,13 @@ class EcmFiles extends CommonObject } // If you need to delete child tables to, you can insert them here - + if (!$error) { + $result = $this->deleteExtraFields(); + if (!$result) { + dol_syslog(get_class($this)."::delete error ".$this->error, LOG_ERR); + $error++; + } + } if (!$error) { $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element; $sql .= ' WHERE rowid='.((int) $this->id); diff --git a/htdocs/ecm/dir_add_card.php b/htdocs/ecm/dir_add_card.php index d7de6acc727..acdc6c2990a 100644 --- a/htdocs/ecm/dir_add_card.php +++ b/htdocs/ecm/dir_add_card.php @@ -25,6 +25,7 @@ if (! defined('DISABLE_JS_GRAHP')) define('DISABLE_JS_GRAPH', 1); +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/htmlecm.form.class.php'; @@ -85,25 +86,25 @@ if (!$sortfield) { $ecmdir = new EcmDirectory($db); if (!empty($section)) { $result = $ecmdir->fetch($section); - if (!$result > 0) { + if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } } // Permissions -$permtoadd = 0; -$permtoupload = 0; +$permissiontoadd = 0; +$permissiontoupload = 0; if ($module == 'ecm') { - $permtoadd = $user->rights->ecm->setup; - $permtoupload = $user->rights->ecm->upload; + $permissiontoadd = $user->rights->ecm->setup; + $permissiontoupload = $user->rights->ecm->upload; } if ($module == 'medias') { - $permtoadd = ($user->rights->mailing->creer || $user->rights->website->write); - $permtoupload = ($user->rights->mailing->creer || $user->rights->website->write); + $permissiontoadd = ($user->rights->mailing->creer || $user->rights->website->write); + $permissiontoupload = ($user->rights->mailing->creer || $user->rights->website->write); } -if (!$permtoadd) { +if (!$permissiontoadd) { accessforbidden(); } @@ -114,7 +115,7 @@ if (!$permtoadd) { */ // Action ajout d'un produit ou service -if ($action == 'add' && $permtoadd) { +if ($action == 'add' && $permissiontoadd) { if ($cancel) { if (!empty($backtopage)) { header("Location: ".$backtopage); @@ -188,7 +189,7 @@ if ($action == 'add' && $permtoadd) { exit; } } -} elseif ($action == 'confirm_deletesection' && $confirm == 'yes' && $permtoadd) { +} elseif ($action == 'confirm_deletesection' && $confirm == 'yes' && $permissiontoadd) { // Deleting file $result = $ecmdir->delete($user); setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); @@ -230,7 +231,7 @@ if ($action == 'create') { print ''; // Label - print ''."\n"; + print ''."\n"; print ''; - print ''; } + // TODO Show also lines ordered but not delivered + + print "
    '.$langs->trans("Label").'
    '.$langs->trans("Label").'label).'" autofocus>
    '.$langs->trans("AddIn").''; print $formecm->selectAllSections((GETPOST("catParent", 'alpha') ? GETPOST("catParent", 'alpha') : $ecmdir->fk_parent), 'catParent', $module); @@ -282,11 +283,10 @@ if (empty($action) || $action == 'delete_section') { // Actions buttons print '
    '; - if ($user->rights->ecm->setup) { - print ''.$langs->trans('Delete').''; - } else { - print ''.$langs->trans('Delete').''; - } + + // Delete + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), '', $user->rights->ecm->setup); + print '
    '; } diff --git a/htdocs/ecm/dir_card.php b/htdocs/ecm/dir_card.php index 930575d1778..e45175bb5c7 100644 --- a/htdocs/ecm/dir_card.php +++ b/htdocs/ecm/dir_card.php @@ -22,6 +22,7 @@ * \brief Card of a directory for ECM module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; @@ -89,21 +90,21 @@ if ($module == 'ecm') { } // Permissions -$permtoread = 0; -$permtoadd = 0; -$permtoupload = 0; +$permissiontoread = 0; +$permissiontoadd = 0; +$permissiontoupload = 0; if ($module == 'ecm') { - $permtoread = $user->rights->ecm->read; - $permtoadd = $user->rights->ecm->setup; - $permtoupload = $user->rights->ecm->upload; + $permissiontoread = $user->hasRight("ecm", "read"); + $permissiontoadd = $user->hasRight("ecm", "setup"); + $permissiontoupload = $user->hasRight("ecm", "upload"); } if ($module == 'medias') { - $permtoread = ($user->rights->mailing->lire || $user->rights->website->read); - $permtoadd = ($user->rights->mailing->creer || $user->rights->website->write); - $permtoupload = ($user->rights->mailing->creer || $user->rights->website->write); + $permissiontoread = ($user->hasRight("mailing", "lire") || $user->hasRight("website", "read")); + $permissiontoadd = ($user->hasRight("mailing", "creer") || $user->hasRight("website", "write")); + $permissiontoupload = ($user->hasRight("mailing", "creer") || $user->hasRight("website", "write")); } -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } @@ -113,7 +114,7 @@ if (!$permtoread) { */ // Upload file -if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC) && $permtoupload) { +if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC) && $permissiontoupload) { if (dol_mkdir($upload_dir) >= 0) { $resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir."/".dol_unescapefile($_FILES['userfile']['name']), 0, 0, $_FILES['userfile']['error']); if (is_numeric($resupload) && $resupload > 0) { @@ -138,7 +139,7 @@ if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC) && $permtoupload } // Remove file -if ($action == 'confirm_deletefile' && $confirm == 'yes' && $permtoupload) { +if ($action == 'confirm_deletefile' && $confirm == 'yes' && $permissiontoupload) { $langs->load("other"); $file = $upload_dir."/".GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). $ret = dol_delete_file($file); @@ -152,7 +153,7 @@ if ($action == 'confirm_deletefile' && $confirm == 'yes' && $permtoupload) { } // Remove dir -if ($action == 'confirm_deletedir' && $confirm == 'yes' && $permtoupload) { +if ($action == 'confirm_deletedir' && $confirm == 'yes' && $permissiontoupload) { $backtourl = DOL_URL_ROOT."/ecm/index.php"; if ($module == 'medias') { $backtourl = DOL_URL_ROOT."/website/index.php?file_manager=1"; @@ -188,7 +189,7 @@ if ($action == 'confirm_deletedir' && $confirm == 'yes' && $permtoupload) { } // Update dirname or description -if ($action == 'update' && !GETPOST('cancel', 'alpha') && $permtoadd) { +if ($action == 'update' && !GETPOST('cancel', 'alpha') && $permissiontoadd) { $error = 0; if ($module == 'ecm') { @@ -453,41 +454,29 @@ print dol_get_fiche_end(); if ($action != 'edit' && $action != 'delete' && $action != 'deletefile') { print '
    '; - if ($permtoadd) { + if ($permissiontoadd) { print ''.$langs->trans('Edit').''; } - if ($permtoadd) { + if ($permissiontoadd) { print ''.$langs->trans('ECMAddSection').''; } else { print ''.$langs->trans('ECMAddSection').''; } - //if (count($filearrayall) == 0) - //{ - if ($permtoadd) { - print ''.$langs->trans('Delete').''; - } else { - print ''.$langs->trans('Delete').''; - } - /*} - else - { - if (count($filearray) > 0) - print ''.$langs->trans('Delete').''; - else - print ''.$langs->trans('Delete').''; - }*/ + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken().($module ? '&module='.urlencode($module) : '').'§ion='.urlencode($section).($backtopage ? '&backtopage='.urlencode($backtopage) : ''), '', $permissiontoadd); + print '
    '; } + // Confirm remove file if ($action == 'deletefile') { print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.urlencode(GETPOST("section", 'alpha')).'&urlfile='.urlencode(GETPOST("urlfile")).($backtopage ? '&backtopage='.urlencode($backtopage) : ''), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile'); } -// Confirm remove file -if ($action == 'delete_dir') { +// Confirm remove dir +if ($action == 'delete' || $action == 'delete_dir') { $relativepathwithoutslash = preg_replace('/[\/]$/', '', $relativepath); //Form to close proposal (signed or not) diff --git a/htdocs/ecm/file_card.php b/htdocs/ecm/file_card.php index c44fab4702e..e1443974bf7 100644 --- a/htdocs/ecm/file_card.php +++ b/htdocs/ecm/file_card.php @@ -21,6 +21,7 @@ * \brief Card of a file for ECM module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; @@ -76,7 +77,7 @@ if (!$urlfile) { // Load ecm object $ecmdir = new EcmDirectory($db); $result = $ecmdir->fetch(GETPOST("section", 'alpha')); -if (!$result > 0) { +if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } @@ -102,11 +103,11 @@ if ($result < 0) { } // Permissions -$permtoread = $user->rights->ecm->read; -$permtoadd = $user->rights->ecm->setup; -$permtoupload = $user->rights->ecm->upload; +$permissiontoread = $user->rights->ecm->read; +$permissiontoadd = $user->rights->ecm->setup; +$permissiontoupload = $user->rights->ecm->upload; -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } @@ -127,7 +128,7 @@ if ($cancel) { } // Rename file -if ($action == 'update' && $permtoadd) { +if ($action == 'update' && $permissiontoadd) { $error = 0; $oldlabel = GETPOST('urlfile', 'alpha'); @@ -341,7 +342,7 @@ $rellink .= '&file='.urlencode($filepath); $fulllink = $urlwithroot.$rellink; print img_picto('', 'globe').' '; if ($action != 'edit') { - print ''; + print ''; } else { print $fulllink; } @@ -371,8 +372,8 @@ if (!empty($object->share)) { } $fulllink = $urlwithroot.'/document.php'.($paramlink ? '?'.$paramlink : ''); - //if (! empty($object->ref)) $fulllink.='&hashn='.$object->ref; // Hash of file path - //elseif (! empty($object->label)) $fulllink.='&hashc='.$object->label; // Hash of file content + //if (!empty($object->ref)) $fulllink.='&hashn='.$object->ref; // Hash of file path + //elseif (!empty($object->label)) $fulllink.='&hashc='.$object->label; // Hash of file content print img_picto('', 'globe').' '; if ($action != 'edit') { @@ -423,16 +424,9 @@ if ($action != 'edit') { if ($user->rights->ecm->setup) { print ''.$langs->trans('Edit').''; } - /* - if ($user->rights->ecm->setup) - { - print ''.$langs->trans('Delete').''; - } - else - { - print ''.$langs->trans('Delete').''; - } - */ + + //print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $user->rights->ecm->setup); + print ''; } diff --git a/htdocs/ecm/file_note.php b/htdocs/ecm/file_note.php index 41367cf2894..6804714757c 100644 --- a/htdocs/ecm/file_note.php +++ b/htdocs/ecm/file_note.php @@ -25,6 +25,7 @@ * \brief Tab for notes on an ECM file */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; @@ -80,7 +81,7 @@ if (!$urlfile) { // Load ecm object $ecmdir = new EcmDirectory($db); $result = $ecmdir->fetch(GETPOST("section", 'alpha')); -if (!$result > 0) { +if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } @@ -107,9 +108,9 @@ if ($result < 0) { $permissionnote = $user->rights->ecm->setup; // Used by the include of actions_setnotes.inc.php -$permtoread = $user->rights->ecm->read; +$permissiontoread = $user->rights->ecm->read; -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index 11ac3bf95c1..6edf59dcbed 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -24,6 +24,7 @@ * \brief Main page for ECM section area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; @@ -32,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; // Load translation files required by the page -$langs->loadLangs(array("ecm", "companies", "other", "users", "orders", "propal", "bills", "contracts")); +$langs->loadLangs(array('ecm', 'companies', 'other', 'users', 'orders', 'propal', 'bills', 'contracts')); // Get parameters $socid = GETPOST('socid', 'int'); @@ -64,7 +65,7 @@ if (!$sortfield) { $ecmdir = new EcmDirectory($db); if ($section > 0) { $result = $ecmdir->fetch($section); - if (!$result > 0) { + if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } @@ -321,12 +322,15 @@ $moreheadjs .= ''."\n"; llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $morejs, '', 0, 0); -$head = ecm_prepare_dasboard_head(''); +$head = ecm_prepare_dasboard_head(null); print dol_get_fiche_head($head, 'index', '', -1, ''); // Add filemanager component $module = 'ecm'; +if (empty($url)) { + $url = DOL_URL_ROOT.'/ecm/index.php'; // Must be an url without param +} include DOL_DOCUMENT_ROOT.'/core/tpl/filemanager.tpl.php'; // End of page diff --git a/htdocs/ecm/index_auto.php b/htdocs/ecm/index_auto.php index 51a3f7ced7b..3944e869da0 100644 --- a/htdocs/ecm/index_auto.php +++ b/htdocs/ecm/index_auto.php @@ -23,6 +23,7 @@ * \brief Main page for ECM section area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; @@ -74,7 +75,7 @@ if ($module == 'invoice_supplier' && $sortfield == "fullname") { $ecmdir = new EcmDirectory($db); if ($section) { $result = $ecmdir->fetch($section); - if (!$result > 0) { + if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } @@ -308,73 +309,73 @@ llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $m // Add sections to manage $rowspan = 0; $sectionauto = array(); -if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { +if (empty($conf->global->ECM_AUTO_TREE_HIDEN)) { + if (isModEnabled("product") || isModEnabled("service")) { $langs->load("products"); - $rowspan++; $sectionauto[] = array('position'=>10, 'level'=>1, 'module'=>'product', 'test'=>(!empty($conf->product->enabled) || !empty($conf->service->enabled)), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); + $rowspan++; $sectionauto[] = array('position'=>10, 'level'=>1, 'module'=>'product', 'test'=>(isModEnabled("product") || isModEnabled("service")), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } - if (!empty($conf->societe->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>20, 'level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ThirdParties"))); + if (isModEnabled("societe")) { + $rowspan++; $sectionauto[] = array('position'=>20, 'level'=>1, 'module'=>'company', 'test'=>isModEnabled('societe'), 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ThirdParties"))); } - if (!empty($conf->propal->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>30, 'level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Proposals"))); + if (isModEnabled("propal")) { + $rowspan++; $sectionauto[] = array('position'=>30, 'level'=>1, 'module'=>'propal', 'test'=>isModEnabled('propal'), 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Proposals"))); } - if (!empty($conf->contrat->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>40, 'level'=>1, 'module'=>'contract', 'test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Contracts"))); + if (isModEnabled('contrat')) { + $rowspan++; $sectionauto[] = array('position'=>40, 'level'=>1, 'module'=>'contract', 'test'=>isModEnabled('contrat'), 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Contracts"))); } - if (!empty($conf->commande->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>50, 'level'=>1, 'module'=>'order', 'test'=>$conf->commande->enabled, 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Orders"))); + if (isModEnabled('commande')) { + $rowspan++; $sectionauto[] = array('position'=>50, 'level'=>1, 'module'=>'order', 'test'=>isModEnabled('commande'), 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Orders"))); } if (isModEnabled('facture')) { - $rowspan++; $sectionauto[] = array('position'=>60, 'level'=>1, 'module'=>'invoice', 'test'=>$conf->facture->enabled, 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Invoices"))); + $rowspan++; $sectionauto[] = array('position'=>60, 'level'=>1, 'module'=>'invoice', 'test'=>isModEnabled('facture'), 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Invoices"))); } - if (!empty($conf->supplier_proposal->enabled)) { + if (isModEnabled('supplier_proposal')) { $langs->load("supplier_proposal"); - $rowspan++; $sectionauto[] = array('position'=>70, 'level'=>1, 'module'=>'supplier_proposal', 'test'=>$conf->supplier_proposal->enabled, 'label'=>$langs->trans("SupplierProposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierProposals"))); + $rowspan++; $sectionauto[] = array('position'=>70, 'level'=>1, 'module'=>'supplier_proposal', 'test'=>isModEnabled('supplier_proposal'), 'label'=>$langs->trans("SupplierProposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierProposals"))); } - if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>80, 'level'=>1, 'module'=>'order_supplier', 'test'=>(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled)), 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("PurchaseOrders"))); + if (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order")) { + $rowspan++; $sectionauto[] = array('position'=>80, 'level'=>1, 'module'=>'order_supplier', 'test'=>(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order")), 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("PurchaseOrders"))); } - if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>90, 'level'=>1, 'module'=>'invoice_supplier', 'test'=>(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)), 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierInvoices"))); + if (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) { + $rowspan++; $sectionauto[] = array('position'=>90, 'level'=>1, 'module'=>'invoice_supplier', 'test'=>(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")), 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierInvoices"))); } - if (!empty($conf->tax->enabled)) { + if (isModEnabled('tax')) { $langs->load("compta"); - $rowspan++; $sectionauto[] = array('position'=>100, 'level'=>1, 'module'=>'tax', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SocialContributions"))); - $rowspan++; $sectionauto[] = array('position'=>110, 'level'=>1, 'module'=>'tax-vat', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("VAT"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("VAT"))); + $rowspan++; $sectionauto[] = array('position'=>100, 'level'=>1, 'module'=>'tax', 'test'=>isModEnabled('tax'), 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SocialContributions"))); + $rowspan++; $sectionauto[] = array('position'=>110, 'level'=>1, 'module'=>'tax-vat', 'test'=>isModEnabled('tax'), 'label'=>$langs->trans("VAT"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("VAT"))); } if (!empty($conf->salaries->enabled)) { $langs->load("compta"); - $rowspan++; $sectionauto[] = array('position'=>120, 'level'=>1, 'module'=>'salaries', 'test'=>$conf->salaries->enabled, 'label'=>$langs->trans("Salaries"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Salaries"))); + $rowspan++; $sectionauto[] = array('position'=>120, 'level'=>1, 'module'=>'salaries', 'test'=>isModEnabled('salaries'), 'label'=>$langs->trans("Salaries"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Salaries"))); } - if (!empty($conf->projet->enabled)) { - $rowspan++; $sectionauto[] = array('position'=>130, 'level'=>1, 'module'=>'project', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Projects"))); - $rowspan++; $sectionauto[] = array('position'=>140, 'level'=>1, 'module'=>'project_task', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Tasks"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Tasks"))); + if (isModEnabled('project')) { + $rowspan++; $sectionauto[] = array('position'=>130, 'level'=>1, 'module'=>'project', 'test'=>isModEnabled('project'), 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Projects"))); + $rowspan++; $sectionauto[] = array('position'=>140, 'level'=>1, 'module'=>'project_task', 'test'=>isModEnabled('project'), 'label'=>$langs->trans("Tasks"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Tasks"))); } - if (!empty($conf->ficheinter->enabled)) { + if (isModEnabled('ficheinter')) { $langs->load("interventions"); - $rowspan++; $sectionauto[] = array('position'=>150, 'level'=>1, 'module'=>'fichinter', 'test'=>$conf->ficheinter->enabled, 'label'=>$langs->trans("Interventions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Interventions"))); + $rowspan++; $sectionauto[] = array('position'=>150, 'level'=>1, 'module'=>'fichinter', 'test'=>isModEnabled('ficheinter'), 'label'=>$langs->trans("Interventions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Interventions"))); } - if (!empty($conf->expensereport->enabled)) { + if (isModEnabled('expensereport')) { $langs->load("trips"); - $rowspan++; $sectionauto[] = array('position'=>160, 'level'=>1, 'module'=>'expensereport', 'test'=>$conf->expensereport->enabled, 'label'=>$langs->trans("ExpenseReports"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ExpenseReports"))); + $rowspan++; $sectionauto[] = array('position'=>160, 'level'=>1, 'module'=>'expensereport', 'test'=>isModEnabled('expensereport'), 'label'=>$langs->trans("ExpenseReports"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ExpenseReports"))); } - if (!empty($conf->holiday->enabled)) { + if (isModEnabled('holiday')) { $langs->load("holiday"); - $rowspan++; $sectionauto[] = array('position'=>170, 'level'=>1, 'module'=>'holiday', 'test'=>$conf->holiday->enabled, 'label'=>$langs->trans("Holidays"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Holidays"))); + $rowspan++; $sectionauto[] = array('position'=>170, 'level'=>1, 'module'=>'holiday', 'test'=>isModEnabled('holiday'), 'label'=>$langs->trans("Holidays"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Holidays"))); } - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $langs->load("banks"); - $rowspan++; $sectionauto[] = array('position'=>180, 'level'=>1, 'module'=>'banque', 'test'=>$conf->banque->enabled, 'label'=>$langs->trans("BankAccount"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("BankAccount"))); - $rowspan++; $sectionauto[] = array('position'=>190, 'level'=>1, 'module'=>'chequereceipt', 'test'=>$conf->banque->enabled, 'label'=>$langs->trans("CheckReceipt"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("CheckReceipt"))); + $rowspan++; $sectionauto[] = array('position'=>180, 'level'=>1, 'module'=>'banque', 'test'=>isModEnabled('banque'), 'label'=>$langs->trans("BankAccount"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("BankAccount"))); + $rowspan++; $sectionauto[] = array('position'=>190, 'level'=>1, 'module'=>'chequereceipt', 'test'=>isModEnabled('banque'), 'label'=>$langs->trans("CheckReceipt"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("CheckReceipt"))); } - if (!empty($conf->mrp->enabled)) { + if (isModEnabled('mrp')) { $langs->load("mrp"); - $rowspan++; $sectionauto[] = array('position'=>200, 'level'=>1, 'module'=>'mrp-mo', 'test'=>$conf->mrp->enabled, 'label'=>$langs->trans("MOs"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ManufacturingOrders"))); + $rowspan++; $sectionauto[] = array('position'=>200, 'level'=>1, 'module'=>'mrp-mo', 'test'=>isModEnabled('mrp'), 'label'=>$langs->trans("MOs"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ManufacturingOrders"))); } - if (!empty($conf->recruitment->enabled)) { + if (isModEnabled('recruitment')) { $langs->load("recruitment"); - $rowspan++; $sectionauto[] = array('position'=>210, 'level'=>1, 'module'=>'recruitment-recruitmentcandidature', 'test'=>$conf->recruitment->enabled, 'label'=>$langs->trans("Candidatures"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("JobApplications"))); + $rowspan++; $sectionauto[] = array('position'=>210, 'level'=>1, 'module'=>'recruitment-recruitmentcandidature', 'test'=>isModEnabled('recruitment'), 'label'=>$langs->trans("Candidatures"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("JobApplications"))); } $rowspan++; $sectionauto[] = array('position'=>220, 'level'=>1, 'module'=>'user', 'test'=>1, 'label'=>$langs->trans("Users"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Users"))); @@ -386,7 +387,7 @@ if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { } } -$head = ecm_prepare_dasboard_head(''); +$head = ecm_prepare_dasboard_head(null); print dol_get_fiche_head($head, 'index_auto', '', -1, ''); @@ -442,6 +443,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i', $act // Auto section if (count($sectionauto)) { $htmltooltip = $langs->trans("ECMAreaDesc2"); + $htmltooltip .= '
    '.$langs->trans("ECMAreaDesc2b"); $sectionauto = dol_sort_array($sectionauto, 'label', 'ASC', true, false); @@ -475,6 +477,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i', $act $htmltooltip .= ''.$langs->trans("Description").': '.$val['desc']; print $form->textwithpicto('', $htmltooltip, 1, 'info'); print ''; + print ''; $nbofentries++; diff --git a/htdocs/ecm/index_medias.php b/htdocs/ecm/index_medias.php new file mode 100644 index 00000000000..39118774430 --- /dev/null +++ b/htdocs/ecm/index_medias.php @@ -0,0 +1,314 @@ + + * Copyright (C) 2008-2010 Regis Houssin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * You can call this page with param module=medias to get a filemanager for medias. + */ + +/** + * \file htdocs/ecm/index_medias.php + * \ingroup ecm + * \brief Main page for ECM section of public media directories area + */ + +// Load Dolibarr environment +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array('ecm', 'companies', 'other', 'users', 'orders', 'propal', 'bills', 'contracts')); + +// Get parameters +$action = GETPOST('action', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +$socid = GETPOST('socid', 'int'); +$file_manager = GETPOST('file_manager', 'alpha'); +$section = GETPOST('section', 'int') ? GETPOST('section', 'int') : GETPOST('section_id', 'int'); +if (!$section) { + $section = 0; +} +$section_dir = GETPOST('section_dir', 'alpha'); +$overwritefile = GETPOST('overwritefile', 'int'); + +if (empty($action) && $file_manager) { + $action = 'file_manager'; +} +$pageid = GETPOST('pageid', 'int'); + +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortorder) { + $sortorder = "ASC"; +} +if (!$sortfield) { + $sortfield = "name"; +} + + +$ecmdir = new EcmDirectory($db); +if ($section > 0) { + $result = $ecmdir->fetch($section); + if (!($result > 0)) { + dol_print_error($db, $ecmdir->error); + exit; + } +} + +$form = new Form($db); +$ecmdirstatic = new EcmDirectory($db); +$userstatic = new User($db); + +$error = 0; + +// Security check +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'ecm', 0); + +$permissiontouploadfile = ($user->hasRight('ecm', 'setup') || $user->hasRight('mailing', 'creer') || $user->hasRight('website', 'write')); +$diroutput = $conf->medias->multidir_output[$conf->entity]; + +$relativepath = $section_dir; +$upload_dir = preg_replace('/\/$/', '', $diroutput).'/'.preg_replace('/^\//', '', $relativepath); + +$websitekey = ''; + +$permissiontoadd = $permissiontouploadfile; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles + + +/* + * Actions + */ + +$savbacktopage = $backtopage; +$backtopage = $_SERVER["PHP_SELF"].'?file_manager=1&website='.urlencode($websitekey).'&pageid='.urlencode($pageid).(GETPOST('section_dir', 'alpha') ? '§ion_dir='.urlencode(GETPOST('section_dir', 'alpha')) : ''); // used after a confirm_deletefile into actions_linkedfiles.inc.php +if ($sortfield) { + $backtopage .= '&sortfield='.urlencode($sortfield); +} +if ($sortorder) { + $backtopage .= '&sortorder='.urlencode($sortorder); +} +include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; // This manage 'sendit', 'confirm_deletefile', 'renamefile' action when submitting new file. + +$backtopage = $savbacktopage; + +if ($action == 'renamefile') { // Must be after include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; If action were renamefile, we set it to 'file_manager' + $action = 'file_manager'; +} + + +// Add directory +if ($action == 'add' && $permissiontouploadfile) { + $ecmdir->ref = 'NOTUSEDYET'; + $ecmdir->label = GETPOST("label"); + $ecmdir->description = GETPOST("desc"); + + $id = $ecmdir->create($user); + if ($id > 0) { + header("Location: ".$_SERVER["PHP_SELF"]); + exit; + } else { + setEventMessages('Error '.$langs->trans($ecmdir->error), null, 'errors'); + $action = "create"; + } + + clearstatcache(); +} + +// Remove directory +if ($action == 'confirm_deletesection' && GETPOST('confirm', 'alpha') == 'yes') { + $result = $ecmdir->delete($user); + setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); + + clearstatcache(); +} + +// Refresh directory view +// This refresh list of dirs, not list of files (for preformance reason). List of files is refresh only if dir was not synchronized. +// To refresh content of dir with cache, just open the dir in edit mode. +if ($action == 'refreshmanual') { + $ecmdirtmp = new EcmDirectory($db); + + // This part of code is same than into file ecm/ajax/ecmdatabase.php TODO Remove duplicate + clearstatcache(); + + $diroutputslash = str_replace('\\', '/', $conf->ecm->dir_output); + $diroutputslash .= '/'; + + // Scan directory tree on disk + $disktree = dol_dir_list($conf->ecm->dir_output, 'directories', 1, '', '^temp$', '', '', 0); + + // Scan directory tree in database + $sqltree = $ecmdirstatic->get_full_arbo(0); + + $adirwascreated = 0; + + // Now we compare both trees to complete missing trees into database + //var_dump($disktree); + //var_dump($sqltree); + foreach ($disktree as $dirdesc) { // Loop on tree onto disk + $dirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { + if ($conf->ecm->dir_output.'/'.$dirsqldesc['fullrelativename'] == $dirdesc['fullname']) { + $dirisindatabase = 1; + break; + } + } + + if (!$dirisindatabase) { + $txt = "Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; + dol_syslog($txt); + //print $txt."
    \n"; + + // We must first find the fk_parent of directory to create $dirdesc['fullname'] + $fk_parent = -1; + $relativepathmissing = str_replace($diroutputslash, '', $dirdesc['fullname']); + $relativepathtosearchparent = $relativepathmissing; + //dol_syslog("Try to find parent id for directory ".$relativepathtosearchparent); + if (preg_match('/\//', $relativepathtosearchparent)) { + //while (preg_match('/\//',$relativepathtosearchparent)) + $relativepathtosearchparent = preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); + $txt = "Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; + dol_syslog($txt); + //print $txt." -> "; + $parentdirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { + if ($dirsqldesc['fullrelativename'] == $relativepathtosearchparent) { + $parentdirisindatabase = $dirsqldesc['id']; + break; + } + } + if ($parentdirisindatabase > 0) { + dol_syslog("Yes with id ".$parentdirisindatabase); + //print "Yes with id ".$parentdirisindatabase."
    \n"; + $fk_parent = $parentdirisindatabase; + //break; // We found parent, we can stop the while loop + } else { + dol_syslog("No"); + //print "No
    \n"; + } + } else { + dol_syslog("Parent is root"); + $fk_parent = 0; // Parent is root + } + + if ($fk_parent >= 0) { + $ecmdirtmp->ref = 'NOTUSEDYET'; + $ecmdirtmp->label = dol_basename($dirdesc['fullname']); + $ecmdirtmp->description = ''; + $ecmdirtmp->fk_parent = $fk_parent; + + $txt = "We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; + dol_syslog($txt); + //print $ecmdirtmp->cachenbofdoc."
    \n";exit; + $id = $ecmdirtmp->create($user); + if ($id > 0) { + $newdirsql = array('id'=>$id, + 'id_mere'=>$ecmdirtmp->fk_parent, + 'label'=>$ecmdirtmp->label, + 'description'=>$ecmdirtmp->description, + 'fullrelativename'=>$relativepathmissing); + $sqltree[] = $newdirsql; // We complete fulltree for following loops + //var_dump($sqltree); + $adirwascreated = 1; + } else { + dol_syslog("Failed to create directory ".$ecmdirtmp->label, LOG_ERR); + } + } else { + $txt = "Parent of ".$dirdesc['fullname']." not found"; + dol_syslog($txt); + //print $txt."
    \n"; + } + } + } + + // Loop now on each sql tree to check if dir exists + foreach ($sqltree as $dirdesc) { // Loop on each sqltree to check dir is on disk + $dirtotest = $conf->ecm->dir_output.'/'.$dirdesc['fullrelativename']; + if (!dol_is_dir($dirtotest)) { + $ecmdirtmp->id = $dirdesc['id']; + $ecmdirtmp->delete($user, 'databaseonly'); + //exit; + } + } + + $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" + dol_syslog("sql = ".$sql); + $db->query($sql); + + // If a directory was added, the fulltree array is not correctly completed and sorted, so we clean + // it to be sure that fulltree array is not used without reloading it. + if ($adirwascreated) { + $sqltree = null; + } +} + + + +/* + * View + */ + +// Define height of file area (depends on $_SESSION["dol_screenheight"]) +//print $_SESSION["dol_screenheight"]; +$maxheightwin = (isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 466) ? ($_SESSION["dol_screenheight"] - 136) : 660; // Also into index_auto.php file + +$moreheadcss = ''; +$moreheadjs = ''; + +//$morejs=array(); +$morejs = array('includes/jquery/plugins/blockUI/jquery.blockUI.js', 'core/js/blockUI.js'); // Used by ecm/tpl/enabledfiletreeajax.tpl.pgp +if (empty($conf->global->MAIN_ECM_DISABLE_JS)) { + $morejs[] = "includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js"; +} + +$moreheadjs .= ''."\n"; + +llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $morejs, '', 0, 0); + +$head = ecm_prepare_dasboard_head(null); +print dol_get_fiche_head($head, 'index_medias', '', -1, ''); + + +// Add filemanager component +$module = 'medias'; +if (empty($url)) { + $url = DOL_URL_ROOT.'/ecm/index_medias.php'; // Must be an url without param +} +include DOL_DOCUMENT_ROOT.'/core/tpl/filemanager.tpl.php'; + +// End of page +print dol_get_fiche_end(); + +llxFooter(); + +$db->close(); diff --git a/htdocs/ecm/search.php b/htdocs/ecm/search.php index a6782317802..c43428fae8e 100644 --- a/htdocs/ecm/search.php +++ b/htdocs/ecm/search.php @@ -22,6 +22,7 @@ * \brief Page to make advanced search into ECM */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ecm.lib.php'; @@ -78,15 +79,15 @@ if (!$sortfield) { $ecmdir = new EcmDirectory($db); if (!empty($section)) { $result = $ecmdir->fetch($section); - if (!$result > 0) { + if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } } -$permtoread = $user->rights->ecm->read; +$permissiontoread = $user->rights->ecm->read; -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } @@ -113,56 +114,56 @@ $userstatic = new User($db); // Ajout rubriques automatiques $rowspan = 0; $sectionauto = array(); -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { - $langs->load("products"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'product', 'test'=>(!empty($conf->product->enabled) || !empty($conf->service->enabled)), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); +if (isModEnabled("product") || isModEnabled("service")) { + $langs->load("products"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'product', 'test'=>(isModEnabled("product") || isModEnabled("service")), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } -if (!empty($conf->societe->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ThirdParties"))); +if (isModEnabled("societe")) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'company', 'test'=>isModEnabled('societe'), 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ThirdParties"))); } -if (!empty($conf->propal->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Proposals"))); +if (isModEnabled("propal")) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'propal', 'test'=>isModEnabled('propal'), 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Proposals"))); } -if (!empty($conf->contrat->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'contract', 'test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Contracts"))); +if (isModEnabled('contrat')) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'contract', 'test'=>isModEnabled('contrat'), 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Contracts"))); } -if (!empty($conf->commande->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order', 'test'=>$conf->commande->enabled, 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Orders"))); +if (isModEnabled('commande')) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order', 'test'=>isModEnabled('commande'), 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Orders"))); } if (isModEnabled('facture')) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'invoice', 'test'=>$conf->facture->enabled, 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Invoices"))); + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'invoice', 'test'=>isModEnabled('facture'), 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Invoices"))); } -if (!empty($conf->supplier_proposal->enabled)) { - $langs->load("supplier_proposal"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'supplier_proposal', 'test'=>$conf->supplier_proposal->enabled, 'label'=>$langs->trans("SupplierProposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierProposals"))); +if (isModEnabled('supplier_proposal')) { + $langs->load("supplier_proposal"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'supplier_proposal', 'test'=>isModEnabled('supplier_proposal'), 'label'=>$langs->trans("SupplierProposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierProposals"))); } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order_supplier', 'test'=>((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)), 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("PurchaseOrders"))); +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order_supplier', 'test'=>((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")), 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("PurchaseOrders"))); } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'invoice_supplier', 'test'=>((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)), 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierInvoices"))); +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'invoice_supplier', 'test'=>((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")), 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SupplierInvoices"))); } -if (!empty($conf->tax->enabled)) { - $langs->load("compta"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'tax', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SocialContributions"))); +if (isModEnabled('tax')) { + $langs->load("compta"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'tax', 'test'=>isModEnabled('tax'), 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("SocialContributions"))); } -if (!empty($conf->projet->enabled)) { - $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'project', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Projects"))); +if (isModEnabled('project')) { + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'project', 'test'=>isModEnabled('project'), 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Projects"))); } -if (!empty($conf->ficheinter->enabled)) { - $langs->load("interventions"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'fichinter', 'test'=>$conf->ficheinter->enabled, 'label'=>$langs->trans("Interventions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Interventions"))); +if (isModEnabled('ficheinter')) { + $langs->load("interventions"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'fichinter', 'test'=>isModEnabled('ficheinter'), 'label'=>$langs->trans("Interventions"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Interventions"))); } -if (!empty($conf->expensereport->enabled)) { - $langs->load("trips"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'expensereport', 'test'=>$conf->expensereport->enabled, 'label'=>$langs->trans("ExpenseReports"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ExpenseReports"))); +if (isModEnabled('expensereport')) { + $langs->load("trips"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'expensereport', 'test'=>isModEnabled('expensereport'), 'label'=>$langs->trans("ExpenseReports"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ExpenseReports"))); } -if (!empty($conf->holiday->enabled)) { - $langs->load("holiday"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'holiday', 'test'=>$conf->holiday->enabled, 'label'=>$langs->trans("Holidays"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Holidays"))); +if (isModEnabled('holiday')) { + $langs->load("holiday"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'holiday', 'test'=>isModEnabled('holiday'), 'label'=>$langs->trans("Holidays"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Holidays"))); } -if (!empty($conf->banque->enabled)) { - $langs->load("banks"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'banque', 'test'=>$conf->banque->enabled, 'label'=>$langs->trans("BankAccount"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("BankAccount"))); +if (isModEnabled("banque")) { + $langs->load("banks"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'banque', 'test'=>isModEnabled('banque'), 'label'=>$langs->trans("BankAccount"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("BankAccount"))); } -if (!empty($conf->mrp->enabled)) { - $langs->load("mrp"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'mrp-mo', 'test'=>$conf->mrp->enabled, 'label'=>$langs->trans("MOs"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ManufacturingOrders"))); +if (isModEnabled('mrp')) { + $langs->load("mrp"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'mrp-mo', 'test'=>isModEnabled('mrp'), 'label'=>$langs->trans("MOs"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("ManufacturingOrders"))); } -if (!empty($conf->recruitment->enabled)) { - $langs->load("recruitment"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'recruitment-recruitmentcandidature', 'test'=>$conf->recruitment->enabled, 'label'=>$langs->trans("Candidatures"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("JobApplications"))); +if (isModEnabled('recruitment')) { + $langs->load("recruitment"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'recruitment-recruitmentcandidature', 'test'=>isModEnabled('recruitment'), 'label'=>$langs->trans("Candidatures"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("JobApplications"))); } @@ -171,13 +172,10 @@ if (!empty($conf->recruitment->enabled)) { //*********************** print load_fiche_titre($langs->trans("ECMArea").' - '.$langs->trans("Search")); -//print $langs->trans("ECMAreaDesc")."
    "; -//print $langs->trans("ECMAreaDesc2")."
    "; -//print "
    \n"; print $langs->trans("FeatureNotYetAvailable").'.

    '; // Tool bar -$head = ecm_prepare_head_fm($ecmdir, $module, $section); +$head = ecm_prepare_head_fm($ecmdir); //print dol_get_fiche_head($head, 'search_form', '', 1); diff --git a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php index 1f5e52e4577..a7e601bf053 100644 --- a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php +++ b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php @@ -24,6 +24,7 @@ if (empty($conf) || !is_object($conf)) { print "Error, template enablefiletreeajax.tpl.php can't be called as URL"; exit; } +// Must have set $module, $nameforformuserfile, $preopened ?> @@ -57,7 +58,7 @@ $(document).ready(function() { multiFolder: false }, // Called if we click on a file (not a dir) function(file) { - console.log("We click on a file"); + console.log("We click on a file "+file); $("#mesg").hide(); loadandshowpreview(file,0); }, @@ -65,7 +66,7 @@ $(document).ready(function() { function(elem) { id=elem.attr('id').substr(12); // We get id that is 'fmdirlia_id_xxx' (id we want is xxx) rel=elem.attr('rel') - console.log("We click on a dir, we call the ajaxdirtree.php with modulepart=, param="); + console.log("We click on a dir id="+id+", we call the ajaxdirtree.php with modulepart=, param="); console.log("We also save id and dir name into _section_id|dir (vars into form to attach new file in filemanager.tpl.php) with id="+id+" and rel="+rel); jQuery("#_section_dir").val(rel); jQuery("#_section_id").val(id); diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php index a0a1db6056e..7dae5bbb6e5 100644 --- a/htdocs/emailcollector/class/emailcollector.class.php +++ b/htdocs/emailcollector/class/emailcollector.class.php @@ -16,31 +16,44 @@ */ /** - * \file emailcollector/class/emailcollector.class.php - * \ingroup emailcollector - * \brief This file is a CRUD class file for EmailCollector (Create/Read/Update/Delete) + * \file htdocs/emailcollector/class/emailcollector.class.php + * \ingroup emailcollector + * \brief This file is a CRUD class file for EmailCollector (Create/Read/Update/Delete) */ // Put here all includes required by your class file -require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php'; -require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; +include_once DOL_DOCUMENT_ROOT .'/emailcollector/lib/emailcollector.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; // customer proposal -require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; // customer order -require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; // Shipment -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; // supplier invoice -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; // supplier order -require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; // supplier proposal -require_once DOL_DOCUMENT_ROOT."/reception/class/reception.class.php"; // reception -include_once DOL_DOCUMENT_ROOT.'/emailcollector/lib/emailcollector.lib.php'; -//require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; // Holidays (leave request) -//require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; // expernse report +require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php'; + +require_once DOL_DOCUMENT_ROOT .'/comm/propal/class/propal.class.php'; // Customer Proposal +require_once DOL_DOCUMENT_ROOT .'/commande/class/commande.class.php'; // Sale Order +require_once DOL_DOCUMENT_ROOT .'/compta/facture/class/facture.class.php'; // Customer Invoice +require_once DOL_DOCUMENT_ROOT .'/contact/class/contact.class.php'; // Contact / Address +require_once DOL_DOCUMENT_ROOT .'/expedition/class/expedition.class.php'; // Shipping / Delivery +require_once DOL_DOCUMENT_ROOT .'/fourn/class/fournisseur.commande.class.php'; // Purchase Order +require_once DOL_DOCUMENT_ROOT .'/fourn/class/fournisseur.facture.class.php'; // Purchase Invoice +require_once DOL_DOCUMENT_ROOT .'/projet/class/project.class.php'; // Project +require_once DOL_DOCUMENT_ROOT .'/reception/class/reception.class.php'; // Reception +require_once DOL_DOCUMENT_ROOT .'/recruitment/class/recruitmentcandidature.class.php'; // Recruiting +require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; // Third-Party +require_once DOL_DOCUMENT_ROOT .'/supplier_proposal/class/supplier_proposal.class.php'; // Supplier Proposal +require_once DOL_DOCUMENT_ROOT .'/ticket/class/ticket.class.php'; // Ticket +//require_once DOL_DOCUMENT_ROOT .'/expensereport/class/expensereport.class.php'; // Expense Report +//require_once DOL_DOCUMENT_ROOT .'/holiday/class/holiday.class.php'; // Holidays (leave request) + + +// use Webklex\PHPIMAP; +require DOL_DOCUMENT_ROOT .'/includes/webklex/php-imap/vendor/autoload.php'; + +use Webklex\PHPIMAP\ClientManager; +use Webklex\PHPIMAP\Exceptions\ConnectionFailedException; +use Webklex\PHPIMAP\Exceptions\InvalidWhereQueryCriteriaException; +use Webklex\PHPIMAP\Exceptions\GetMessagesFailedException; + +use OAuth\Common\Storage\DoliStorage; +use OAuth\Common\Consumer\Credentials; /** @@ -52,14 +65,17 @@ class EmailCollector extends CommonObject * @var string ID to identify managed object */ public $element = 'emailcollector'; + /** * @var string Name of table without prefix where object is stored */ public $table_element = 'emailcollector_emailcollector'; + /** * @var int Does emailcollector support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe */ public $ismultientitymanaged = 1; + /** * @var int Does emailcollector support extrafields ? 0=No, 1=Yes */ @@ -79,6 +95,7 @@ class EmailCollector extends CommonObject * @var array List of child tables. To test if we can delete object. */ protected $childtables = array(); + /** * @var array List of child tables. To know object to delete on cascade. */ @@ -111,14 +128,17 @@ class EmailCollector extends CommonObject public $fields = array( 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), - 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'help'=>'Example: MyCollector1', 'csslist'=>'tdoverflowmax250'), + 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'help'=>'Example: MyCollector1', 'csslist'=>'tdoverflowmax150'), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1, 'help'=>'Example: My Email collector', 'csslist'=>'tdoverflowmax150'), 'description' => array('type'=>'text', 'label'=>'Description', 'visible'=>-1, 'enabled'=>1, 'position'=>60, 'notnull'=>-1, 'csslist'=>'small'), - 'host' => array('type'=>'varchar(255)', 'label'=>'EMailHost', 'visible'=>1, 'enabled'=>1, 'position'=>90, 'notnull'=>1, 'searchall'=>1, 'comment'=>"IMAP server", 'help'=>'Example: imap.gmail.com', 'csslist'=>'tdoverflow125'), - 'hostcharset' => array('type'=>'varchar(16)', 'label'=>'HostCharset', 'visible'=>-1, 'enabled'=>1, 'position'=>91, 'notnull'=>0, 'searchall'=>0, 'comment'=>"IMAP server charset", 'help'=>'Example: "UTF-8" (May be "US-ASCII" with some Office365)'), - 'login' => array('type'=>'varchar(128)', 'label'=>'Login', 'visible'=>1, 'enabled'=>1, 'position'=>101, 'notnull'=>-1, 'index'=>1, 'comment'=>"IMAP login", 'help'=>'Example: myaccount@gmail.com'), - 'password' => array('type'=>'password', 'label'=>'Password', 'visible'=>-1, 'enabled'=>1, 'position'=>102, 'notnull'=>-1, 'comment'=>"IMAP password", 'help'=>'WithGMailYouCanCreateADedicatedPassword'), - 'source_directory' => array('type'=>'varchar(255)', 'label'=>'MailboxSourceDirectory', 'visible'=>-1, 'enabled'=>1, 'position'=>103, 'notnull'=>1, 'default' => 'Inbox', 'help'=>'Example: INBOX'), + 'host' => array('type'=>'varchar(255)', 'label'=>'EMailHost', 'visible'=>1, 'enabled'=>1, 'position'=>90, 'notnull'=>1, 'searchall'=>1, 'comment'=>"IMAP server", 'help'=>'Example: imap.gmail.com', 'csslist'=>'tdoverflowmax125'), + 'port' => array('type'=>'varchar(10)', 'label'=>'EMailHostPort', 'visible'=>1, 'enabled'=>1, 'position'=>91, 'notnull'=>1, 'searchall'=>0, 'comment'=>"IMAP server port", 'help'=>'Example: 993', 'csslist'=>'tdoverflowmax50', 'default'=>'993'), + 'hostcharset' => array('type'=>'varchar(16)', 'label'=>'HostCharset', 'visible'=>-1, 'enabled'=>1, 'position'=>92, 'notnull'=>0, 'searchall'=>0, 'comment'=>"IMAP server charset", 'help'=>'Example: "UTF-8" (May be "US-ASCII" with some Office365)', 'default'=>'UTF-8'), + 'acces_type' => array('type'=>'integer', 'label'=>'accessType', 'visible'=>-1, 'enabled'=>"getDolGlobalInt('MAIN_IMAP_USE_PHPIMAP')", 'position'=>101, 'notnull'=>1, 'index'=>1, 'comment'=>"IMAP login type", 'arrayofkeyval'=>array('0'=>'loginPassword', '1'=>'oauthToken'), 'default'=>'0', 'help'=>''), + 'login' => array('type'=>'varchar(128)', 'label'=>'Login', 'visible'=>-1, 'enabled'=>1, 'position'=>102, 'notnull'=>-1, 'index'=>1, 'comment'=>"IMAP login", 'help'=>'Example: myaccount@gmail.com'), + 'password' => array('type'=>'password', 'label'=>'Password', 'visible'=>-1, 'enabled'=>"1", 'position'=>103, 'notnull'=>-1, 'comment'=>"IMAP password", 'help'=>'WithGMailYouCanCreateADedicatedPassword'), + 'oauth_service' => array('type'=>'varchar(128)', 'label'=>'oauthService', 'visible'=>-1, 'enabled'=>"getDolGlobalInt('MAIN_IMAP_USE_PHPIMAP')", 'position'=>104, 'notnull'=>0, 'index'=>1, 'comment'=>"IMAP login oauthService", 'arrayofkeyval'=>array(), 'help'=>'TokenMustHaveBeenCreated'), + 'source_directory' => array('type'=>'varchar(255)', 'label'=>'MailboxSourceDirectory', 'visible'=>-1, 'enabled'=>1, 'position'=>104, 'notnull'=>1, 'default' => 'Inbox', 'help'=>'Example: INBOX'), //'filter' => array('type'=>'text', 'label'=>'Filter', 'visible'=>1, 'enabled'=>1, 'position'=>105), //'actiontodo' => array('type'=>'varchar(255)', 'label'=>'ActionToDo', 'visible'=>1, 'enabled'=>1, 'position'=>106), 'target_directory' => array('type'=>'varchar(255)', 'label'=>'MailboxTargetDirectory', 'visible'=>1, 'enabled'=>1, 'position'=>110, 'notnull'=>0, 'help'=>"EmailCollectorTargetDir"), @@ -191,11 +211,13 @@ class EmailCollector extends CommonObject */ public $import_key; - public $host; + public $port; public $hostcharset; public $login; public $password; + public $acces_type; + public $oauth_service; public $source_directory; public $target_directory; public $maxemailpercollect; @@ -233,10 +255,31 @@ class EmailCollector extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } + // List of oauth services + $oauthservices = array(); + + foreach ($conf->global as $key => $val) { + if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) { + $key = preg_replace('/^OAUTH_/', '', $key); + $key = preg_replace('/_ID$/', '', $key); + if (preg_match('/^.*-/', $key)) { + $name = preg_replace('/^.*-/', '', $key); + } else { + $name = $langs->trans("NoName"); + } + $provider = preg_replace('/-.*$/', '', $key); + $provider = ucfirst(strtolower($provider)); + + $oauthservices[$key] = $name." (".$provider.")"; + } + } + + $this->fields['oauth_service']['arrayofkeyval'] = $oauthservices; + // Unset fields that are disabled foreach ($this->fields as $key => $val) { if (isset($val['enabled']) && empty($val['enabled'])) { @@ -272,8 +315,13 @@ class EmailCollector extends CommonObject return -1; } + include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; + $this->password = dolEncrypt($this->password); + $id = $this->createCommon($user, $notrigger); + $this->password = dolDecrypt($this->password); + if (is_array($this->filters) && count($this->filters)) { $emailcollectorfilter = new EmailCollectorFilter($this->db); @@ -332,6 +380,7 @@ class EmailCollector extends CommonObject unset($object->id); unset($object->fk_user_creat); unset($object->import_key); + unset($object->password); // Clear fields $object->ref = "copy_of_".$object->ref; @@ -383,7 +432,11 @@ class EmailCollector extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + + include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; + $this->password = dolDecrypt($this->password); + + //if ($result > 0 && !empty($this->table_element_line)) $this->fetchLines(); return $result; } @@ -478,7 +531,14 @@ class EmailCollector extends CommonObject return -1; } - return $this->updateCommon($user, $notrigger); + include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; + $this->password = dolEncrypt($this->password); + + $result = $this->updateCommon($user, $notrigger); + + $this->password = dolDecrypt($this->password); + + return $result; } /** @@ -615,7 +675,7 @@ class EmailCollector extends CommonObject */ public function info($id) { - $sql = 'SELECT rowid, date_creation as datec, tms as datem,'; + $sql = 'SELECT rowid, date_creation as datec, tms as datem,'; $sql .= ' fk_user_creat, fk_user_modif'; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; $sql .= ' WHERE t.rowid = '.((int) $id); @@ -624,27 +684,11 @@ class EmailCollector extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -762,7 +806,7 @@ class EmailCollector extends CommonObject $flags .= '/authuser='.$partofauth[0].'/user='.$partofauth[1]; } - $connectstringserver = '{'.$this->host.':993'.$flags.'}'; + $connectstringserver = '{'.$this->host.':'.$this->port.$flags.'}'; return $connectstringserver; } @@ -811,7 +855,7 @@ class EmailCollector extends CommonObject // Loop on each collector foreach ($arrayofcollectors as $emailcollector) { - $result = $emailcollector->doCollectOneCollector(); + $result = $emailcollector->doCollectOneCollector(0); dol_syslog("doCollect result = ".$result." for emailcollector->id = ".$emailcollector->id); $this->error .= 'EmailCollector ID '.$emailcollector->id.':'.$emailcollector->error.'
    '; @@ -832,12 +876,29 @@ class EmailCollector extends CommonObject * @param string $messagetext Body * @param string $subject Subject * @param string $header Header + * @param string $operationslog String with logs of operations done * @return int 0=OK, Nb of error if error */ - private function overwritePropertiesOfObject(&$object, $actionparam, $messagetext, $subject, $header) + private function overwritePropertiesOfObject(&$object, $actionparam, $messagetext, $subject, $header, &$operationslog) { + global $conf, $langs; + $errorforthisaction = 0; + // set output lang + $outputlangs = $langs; + $newlang = ''; + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + $newlang = GETPOST('lang_id', 'aZ09'); + } + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { + $newlang = $object->thirdparty->default_lang; + } + if (!empty($newlang)) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($newlang); + } + // Overwrite values with values extracted from source email // $this->actionparam = 'opportunity_status=123;abc=EXTRACT:BODY:....' $arrayvaluetouse = dolExplodeIntoArray($actionparam, ';', '='); @@ -869,6 +930,7 @@ class EmailCollector extends CommonObject $sourcefield = $regforregex[1]; $regexstring = $regforregex[2]; } + if (!empty($sourcefield) && !empty($regexstring)) { if (strtolower($sourcefield) == 'body') { $sourcestring = $messagetext; @@ -890,7 +952,6 @@ class EmailCollector extends CommonObject //var_dump($tmpproperty.' - '.$regexstring.' - '.$regexoptions.' - '.$sourcestring); if (preg_match('/'.$regexstring.'/'.$regexoptions, $sourcestring, $regforval)) { - //var_dump($regforval[count($regforval)-1]);exit; // Overwrite param $tmpproperty $valueextracted = isset($regforval[count($regforval) - 1]) ?trim($regforval[count($regforval) - 1]) : null; if (strtolower($sourcefield) == 'header') { @@ -906,9 +967,16 @@ class EmailCollector extends CommonObject $object->$tmpproperty = $this->decodeSMTPSubject($valueextracted); } } + if (preg_match('/^options_/', $tmpproperty)) { + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/'.dol_escape_htmltag($regexoptions).' into '.strtolower($sourcefield).' -> found '.dol_escape_htmltag(dol_trunc($object->array_options[preg_replace('/^options_/', '', $tmpproperty)], 128)); + } else { + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/'.dol_escape_htmltag($regexoptions).' into '.strtolower($sourcefield).' -> found '.dol_escape_htmltag(dol_trunc($object->$tmpproperty, 128)); + } } else { // Regex not found $object->$tmpproperty = null; + + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/'.dol_escape_htmltag($regexoptions).' into '.strtolower($sourcefield).' -> not found, so property '.dol_escape_htmltag($tmpproperty).' is set to null.'; } } else { // Nothing can be done for this param @@ -926,7 +994,8 @@ class EmailCollector extends CommonObject if ($regforregex[1] == 'SET' || empty($valuecurrent)) { $valuetouse = $regforregex[2]; - $substitutionarray = array(); + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); $matcharray = array(); preg_match_all('/__([a-z0-9]+(?:_[a-z0-9]+)?)__/i', $valuetouse, $matcharray); //var_dump($tmpproperty.' - '.$object->$tmpproperty.' - '.$valuetouse); var_dump($matcharray); @@ -946,6 +1015,8 @@ class EmailCollector extends CommonObject } else { $object->$tmpproperty = $valuetouse; } + + $operationslog .= '
    Set value '.dol_escape_htmltag($valuetouse).' into variable '.dol_escape_htmltag($tmpproperty); } } else { $errorforthisaction++; @@ -961,11 +1032,12 @@ class EmailCollector extends CommonObject /** * Execute collect for current collector loaded previously with fetch. * - * @return int <0 if KO, >0 if OK + * @param int $mode 0=Mode production, 1=Mode test (read IMAP and try SQL update then rollback), 2=Mode test with no SQL updates + * @return int <0 if KO, >0 if OK */ - public function doCollectOneCollector() + public function doCollectOneCollector($mode = 0) { - global $conf, $langs, $user; + global $db, $conf, $langs, $user; global $hookmanager; //$conf->global->SYSLOG_FILE = 'DOL_DATA_ROOT/dolibarr_mydedicatedlofile.log'; @@ -979,9 +1051,19 @@ class EmailCollector extends CommonObject $error = 0; $this->output = ''; $this->error = ''; + $this->debuginfo = ''; + + $search = ''; + $searchhead = ''; + $searchfilterdoltrackid = 0; + $searchfilternodoltrackid = 0; + $searchfilterisanswer = 0; + $searchfilterisnotanswer = 0; + $operationslog = ''; $now = dol_now(); + if (empty($this->host)) { $this->error = $langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('EMailHost')); return -1; @@ -994,149 +1076,375 @@ class EmailCollector extends CommonObject $this->error = $langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('MailboxSourceDirectory')); return -1; } - if (!function_exists('imap_open')) { - $this->error = 'IMAP function not enabled on your PHP'; - return -2; - } $this->fetchFilters(); $this->fetchActions(); - $sourcedir = $this->source_directory; - $targetdir = ($this->target_directory ? $this->target_directory : ''); // Can be '[Gmail]/Trash' or 'mytag' + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + if ($this->acces_type == 1) { + // Mode OAUth2 with PHP-IMAP + require_once DOL_DOCUMENT_ROOT.'/core/lib/oauth.lib.php'; // define $supportedoauth2array + $keyforsupportedoauth2array = $this->oauth_service; + if (preg_match('/^.*-/', $keyforsupportedoauth2array)) { + $keyforprovider = preg_replace('/^.*-/', '', $keyforsupportedoauth2array); + } else { + $keyforprovider = ''; + } + $keyforsupportedoauth2array = preg_replace('/-.*$/', '', $keyforsupportedoauth2array); + $keyforsupportedoauth2array = 'OAUTH_'.$keyforsupportedoauth2array.'_NAME'; - $connectstringserver = $this->getConnectStringIMAP(); - $connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir); - $connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir); + $OAUTH_SERVICENAME = (empty($supportedoauth2array[$keyforsupportedoauth2array]['name']) ? 'Unknown' : $supportedoauth2array[$keyforsupportedoauth2array]['name'].($keyforprovider ? '-'.$keyforprovider : '')); - $connection = imap_open($connectstringsource, $this->login, $this->password); - if (!$connection) { - $this->error = 'Failed to open IMAP connection '.$connectstringsource; - return -3; - } - imap_errors(); // Clear stack of errors. + require_once DOL_DOCUMENT_ROOT.'/includes/OAuth/bootstrap.php'; + //$debugtext = "Host: ".$this->host."
    Port: ".$this->port."
    Login: ".$this->login."
    Password: ".$this->password."
    access type: ".$this->acces_type."
    oauth service: ".$this->oauth_service."
    Max email per collect: ".$this->maxemailpercollect; + //dol_syslog($debugtext); - $host = dol_getprefix('email'); - //$host = '123456'; + $storage = new DoliStorage($db, $conf); - // Define the IMAP search string - // See https://tools.ietf.org/html/rfc3501#section-6.4.4 for IMAPv4 (PHP not yet compatible) - // See https://tools.ietf.org/html/rfc1064 page 13 for IMAPv2 - //$search='ALL'; - $search = 'UNDELETED'; // Seems not supported by some servers - $searchhead = ''; - $searchfilterdoltrackid = 0; - $searchfilternodoltrackid = 0; - $searchfilterisanswer = 0; - $searchfilterisnotanswer = 0; - foreach ($this->filters as $rule) { - if (empty($rule['status'])) { - continue; + try { + $tokenobj = $storage->retrieveAccessToken($OAUTH_SERVICENAME); + $expire = true; + // Is token expired or will token expire in the next 30 seconds + // if (is_object($tokenobj)) { + // $expire = ($tokenobj->getEndOfLife() !== -9002 && $tokenobj->getEndOfLife() !== -9001 && time() > ($tokenobj->getEndOfLife() - 30)); + // } + // Token expired so we refresh it + if (is_object($tokenobj) && $expire) { + $credentials = new Credentials( + getDolGlobalString('OAUTH_'.$this->oauth_service.'_ID'), + getDolGlobalString('OAUTH_'.$this->oauth_service.'_SECRET'), + getDolGlobalString('OAUTH_'.$this->oauth_service.'_URLAUTHORIZE') + ); + $serviceFactory = new \OAuth\ServiceFactory(); + $oauthname = explode('-', $OAUTH_SERVICENAME); + // ex service is Google-Emails we need only the first part Google + $apiService = $serviceFactory->createService($oauthname[0], $credentials, $storage, array()); + // We have to save the token because Google give it only once + $refreshtoken = $tokenobj->getRefreshToken(); + $tokenobj = $apiService->refreshAccessToken($tokenobj); + $tokenobj->setRefreshToken($refreshtoken); + $storage->storeAccessToken($OAUTH_SERVICENAME, $tokenobj); + } + $tokenobj = $storage->retrieveAccessToken($OAUTH_SERVICENAME); + if (is_object($tokenobj)) { + $token = $tokenobj->getAccessToken(); + } else { + $this->error = "Token not found"; + return -1; + } + } catch (Exception $e) { + // Return an error if token not found + $this->error = $e->getMessage(); + dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR); + return -1; + } + + + $cm = new ClientManager(); + $client = $cm->make([ + 'host' => $this->host, + 'port' => $this->port, + 'encryption' => 'ssl', + 'validate_cert' => true, + 'protocol' => 'imap', + 'username' => $this->login, + 'password' => $token, + 'authentication' => "oauth", + ]); + } else { + // Mode login/pass with PHP-IMAP + $cm = new ClientManager(); + $client = $cm->make([ + 'host' => $this->host, + 'port' => $this->port, + 'encryption' => 'ssl', + 'validate_cert' => true, + 'protocol' => 'imap', + 'username' => $this->login, + 'password' => $this->password, + 'authentication' => "login", + ]); } - if ($rule['type'] == 'to') { - $tmprulevaluearray = explode('*', $rule['rulevalue']); - if (count($tmprulevaluearray) >= 2) { - foreach ($tmprulevaluearray as $tmprulevalue) { - $search .= ($search ? ' ' : '').'TO "'.str_replace('"', '', $tmprulevalue).'"'; + try { + $client->connect(); + } catch (ConnectionFailedException $e) { + $this->error = $e->getMessage(); + $this->errors[] = $this->error; + dol_syslog("EmailCollector::doCollectOneCollector ".$this->error, LOG_ERR); + return -1; + } + + $host = dol_getprefix('email'); + } else { + // Use native IMAP functions + if (!function_exists('imap_open')) { + $this->error = 'IMAP function not enabled on your PHP'; + return -2; + } + $sourcedir = $this->source_directory; + $targetdir = ($this->target_directory ? $this->target_directory : ''); // Can be '[Gmail]/Trash' or 'mytag' + + $connectstringserver = $this->getConnectStringIMAP(); + $connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir); + $connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir); + + $connection = imap_open($connectstringsource, $this->login, $this->password); + if (!$connection) { + $this->error = 'Failed to open IMAP connection '.$connectstringsource.' '.imap_last_error(); + return -3; + } + imap_errors(); // Clear stack of errors. + + $host = dol_getprefix('email'); + //$host = '123456'; + + // Define the IMAP search string + // See https://tools.ietf.org/html/rfc3501#section-6.4.4 for IMAPv4 (PHP not yet compatible) + // See https://tools.ietf.org/html/rfc1064 page 13 for IMAPv2 + //$search='ALL'; + } + + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + $criteria = array(array('UNDELETED')); // Seems not supported by some servers + foreach ($this->filters as $rule) { + if (empty($rule['status'])) { + continue; + } + if ($rule['type'] == 'to') { + $tmprulevaluearray = explode('*', $rule['rulevalue']); + if (count($tmprulevaluearray) >= 2) { + foreach ($tmprulevaluearray as $tmprulevalue) { + array_push($criteria, array("TO" => $tmprulevalue)); + } + } else { + array_push($criteria, array("TO" => $rule['rulevalue'])); } - } else { - $search .= ($search ? ' ' : '').'TO "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + if ($rule['type'] == 'bcc') { + array_push($criteria, array("BCC" => $rule['rulevalue'])); + } + if ($rule['type'] == 'cc') { + array_push($criteria, array("CC" => $rule['rulevalue'])); + } + if ($rule['type'] == 'from') { + array_push($criteria, array("FROM" => $rule['rulevalue'])); + } + if ($rule['type'] == 'subject') { + array_push($criteria, array("SUBJECT" => $rule['rulevalue'])); + } + if ($rule['type'] == 'body') { + array_push($criteria, array("BODY" => $rule['rulevalue'])); + } + if ($rule['type'] == 'header') { + array_push($criteria, array("HEADER" => $rule['rulevalue'])); + } + + if ($rule['type'] == 'notinsubject') { + array_push($criteria, array("SUBJECT NOT" => $rule['rulevalue'])); + } + if ($rule['type'] == 'notinbody') { + array_push($criteria, array("BODY NOT" => $rule['rulevalue'])); + } + + if ($rule['type'] == 'seen') { + array_push($criteria, array("SEEN")); + } + if ($rule['type'] == 'unseen') { + array_push($criteria, array("UNSEEN")); + } + if ($rule['type'] == 'unanswered') { + array_push($criteria, array("UNANSWERED")); + } + if ($rule['type'] == 'answered') { + array_push($criteria, array("ANSWERED")); + } + if ($rule['type'] == 'smaller') { + array_push($criteria, array("SMALLER")); + } + if ($rule['type'] == 'larger') { + array_push($criteria, array("LARGER")); + } + + // Rules to filter after the search imap + if ($rule['type'] == 'withtrackingidinmsgid') { + $searchfilterdoltrackid++; $searchhead .= '/Message-ID.*@'.preg_quote($host, '/').'/'; + } + if ($rule['type'] == 'withouttrackingidinmsgid') { + $searchfilterdoltrackid++; $searchhead .= '/Message-ID.*@'.preg_quote($host, '/').'/'; + } + if ($rule['type'] == 'withtrackingid') { + $searchfilterdoltrackid++; $searchhead .= '/References.*@'.preg_quote($host, '/').'/'; + } + if ($rule['type'] == 'withouttrackingid') { + $searchfilternodoltrackid++; $searchhead .= '! /References.*@'.preg_quote($host, '/').'/'; + } + + if ($rule['type'] == 'isanswer') { + $searchfilterisanswer++; $searchhead .= '/References.*@.*/'; + } + if ($rule['type'] == 'isnotanswer') { + $searchfilterisnotanswer++; $searchhead .= '! /References.*@.*/'; } } - if ($rule['type'] == 'bcc') { - $search .= ($search ? ' ' : '').'BCC'; - } - if ($rule['type'] == 'cc') { - $search .= ($search ? ' ' : '').'CC'; - } - if ($rule['type'] == 'from') { - $search .= ($search ? ' ' : '').'FROM "'.str_replace('"', '', $rule['rulevalue']).'"'; - } - if ($rule['type'] == 'subject') { - $search .= ($search ? ' ' : '').'SUBJECT "'.str_replace('"', '', $rule['rulevalue']).'"'; - } - if ($rule['type'] == 'body') { - $search .= ($search ? ' ' : '').'BODY "'.str_replace('"', '', $rule['rulevalue']).'"'; - } - if ($rule['type'] == 'header') { - $search .= ($search ? ' ' : '').'HEADER '.$rule['rulevalue']; + + if (empty($targetdir)) { // Use last date as filter if there is no targetdir defined. + $fromdate = 0; + if ($this->datelastok) { + $fromdate = $this->datelastok; + } + if ($fromdate > 0) { + // $search .= ($search ? ' ' : '').'SINCE '.date('j-M-Y', $fromdate - 1); // SENTSINCE not supported. Date must be X-Abc-9999 (X on 1 digit if < 10) + array_push($criteria, array("SINCE" => date('j-M-Y', $fromdate - 1))); + } + //$search.=($search?' ':'').'SINCE 8-Apr-2022'; } - if ($rule['type'] == 'notinsubject') { - $search .= ($search ? ' ' : '').'SUBJECT NOT "'.str_replace('"', '', $rule['rulevalue']).'"'; - } - if ($rule['type'] == 'notinbody') { - $search .= ($search ? ' ' : '').'BODY NOT "'.str_replace('"', '', $rule['rulevalue']).'"'; + dol_syslog("IMAP search string = ".var_export($criteria, true)); + $search = var_export($criteria, true); + } else { + $search = 'UNDELETED'; // Seems not supported by some servers + foreach ($this->filters as $rule) { + if (empty($rule['status'])) { + continue; + } + + if ($rule['type'] == 'to') { + $tmprulevaluearray = explode('*', $rule['rulevalue']); + if (count($tmprulevaluearray) >= 2) { + foreach ($tmprulevaluearray as $tmprulevalue) { + $search .= ($search ? ' ' : '').'TO "'.str_replace('"', '', $tmprulevalue).'"'; + } + } else { + $search .= ($search ? ' ' : '').'TO "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + } + if ($rule['type'] == 'bcc') { + $search .= ($search ? ' ' : '').'BCC'; + } + if ($rule['type'] == 'cc') { + $search .= ($search ? ' ' : '').'CC'; + } + if ($rule['type'] == 'from') { + $search .= ($search ? ' ' : '').'FROM "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + if ($rule['type'] == 'subject') { + $search .= ($search ? ' ' : '').'SUBJECT "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + if ($rule['type'] == 'body') { + $search .= ($search ? ' ' : '').'BODY "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + if ($rule['type'] == 'header') { + $search .= ($search ? ' ' : '').'HEADER '.$rule['rulevalue']; + } + + if ($rule['type'] == 'notinsubject') { + $search .= ($search ? ' ' : '').'SUBJECT NOT "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + if ($rule['type'] == 'notinbody') { + $search .= ($search ? ' ' : '').'BODY NOT "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + + if ($rule['type'] == 'seen') { + $search .= ($search ? ' ' : '').'SEEN'; + } + if ($rule['type'] == 'unseen') { + $search .= ($search ? ' ' : '').'UNSEEN'; + } + if ($rule['type'] == 'unanswered') { + $search .= ($search ? ' ' : '').'UNANSWERED'; + } + if ($rule['type'] == 'answered') { + $search .= ($search ? ' ' : '').'ANSWERED'; + } + if ($rule['type'] == 'smaller') { + $search .= ($search ? ' ' : '').'SMALLER "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + if ($rule['type'] == 'larger') { + $search .= ($search ? ' ' : '').'LARGER "'.str_replace('"', '', $rule['rulevalue']).'"'; + } + + // Rules to filter after the search imap + if ($rule['type'] == 'withtrackingidinmsgid') { + $searchfilterdoltrackid++; $searchhead .= '/Message-ID.*@'.preg_quote($host, '/').'/'; + } + if ($rule['type'] == 'withouttrackingidinmsgid') { + $searchfilterdoltrackid++; $searchhead .= '/Message-ID.*@'.preg_quote($host, '/').'/'; + } + if ($rule['type'] == 'withtrackingid') { + $searchfilterdoltrackid++; $searchhead .= '/References.*@'.preg_quote($host, '/').'/'; + } + if ($rule['type'] == 'withouttrackingid') { + $searchfilternodoltrackid++; $searchhead .= '! /References.*@'.preg_quote($host, '/').'/'; + } + + if ($rule['type'] == 'isanswer') { + $searchfilterisanswer++; $searchhead .= '/References.*@.*/'; + } + if ($rule['type'] == 'isnotanswer') { + $searchfilterisnotanswer++; $searchhead .= '! /References.*@.*/'; + } } - if ($rule['type'] == 'seen') { - $search .= ($search ? ' ' : '').'SEEN'; - } - if ($rule['type'] == 'unseen') { - $search .= ($search ? ' ' : '').'UNSEEN'; - } - if ($rule['type'] == 'unanswered') { - $search .= ($search ? ' ' : '').'UNANSWERED'; - } - if ($rule['type'] == 'answered') { - $search .= ($search ? ' ' : '').'ANSWERED'; - } - if ($rule['type'] == 'smaller') { - $search .= ($search ? ' ' : '').'SMALLER "'.str_replace('"', '', $rule['rulevalue']).'"'; - } - if ($rule['type'] == 'larger') { - $search .= ($search ? ' ' : '').'LARGER "'.str_replace('"', '', $rule['rulevalue']).'"'; + if (empty($targetdir)) { // Use last date as filter if there is no targetdir defined. + $fromdate = 0; + if ($this->datelastok) { + $fromdate = $this->datelastok; + } + if ($fromdate > 0) { + $search .= ($search ? ' ' : '').'SINCE '.date('j-M-Y', $fromdate - 1); // SENTSINCE not supported. Date must be X-Abc-9999 (X on 1 digit if < 10) + } + //$search.=($search?' ':'').'SINCE 8-Apr-2018'; } - if ($rule['type'] == 'withtrackingidinmsgid') { - $searchfilterdoltrackid++; $searchhead .= '/Message-ID.*@'.preg_quote($host, '/').'/'; - } - if ($rule['type'] == 'withouttrackingidinmsgid') { - $searchfilterdoltrackid++; $searchhead .= '/Message-ID.*@'.preg_quote($host, '/').'/'; - } - if ($rule['type'] == 'withtrackingid') { - $searchfilterdoltrackid++; $searchhead .= '/References.*@'.preg_quote($host, '/').'/'; - } - if ($rule['type'] == 'withouttrackingid') { - $searchfilternodoltrackid++; $searchhead .= '! /References.*@'.preg_quote($host, '/').'/'; - } - - if ($rule['type'] == 'isanswer') { - $searchfilterisanswer++; $searchhead .= '/References.*@.*/'; - } - if ($rule['type'] == 'isnotanswer') { - $searchfilterisnotanswer++; $searchhead .= '! /References.*@.*/'; - } + dol_syslog("IMAP search string = ".$search); + //var_dump($search); } - if (empty($targetdir)) { // Use last date as filter if there is no targetdir defined. - $fromdate = 0; - if ($this->datelastok) { - $fromdate = $this->datelastok; - } - if ($fromdate > 0) { - $search .= ($search ? ' ' : '').'SINCE '.date('j-M-Y', $fromdate - 1); // SENTSINCE not supported. Date must be X-Abc-9999 (X on 1 digit if < 10) - } - //$search.=($search?' ':'').'SINCE 8-Apr-2018'; - } - dol_syslog("IMAP search string = ".$search); - //var_dump($search); - $nbemailprocessed = 0; $nbemailok = 0; $nbactiondone = 0; $charset = ($this->hostcharset ? $this->hostcharset : "UTF-8"); - // Scan IMAP inbox - $arrayofemail = imap_search($connection, $search, null, $charset); - if ($arrayofemail === false) { - // Nothing found or search string not understood - $mapoferrrors = imap_errors(); - if ($mapoferrrors !== false) { - $error++; - $this->error = "Search string not understood - ".join(',', $mapoferrrors); + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + try { + //$criteria = [['ALL']]; + //$Query = $client->getFolders()[0]->messages()->where($criteria); + $f = $client->getFolders(false, $this->source_directory); + $Query = $f[0]->messages()->where($criteria); + } catch (InvalidWhereQueryCriteriaException $e) { + $this->error = $e->getMessage(); $this->errors[] = $this->error; + dol_syslog("EmailCollector::doCollectOneCollector ".$this->error, LOG_ERR); + return -1; + } catch (Exception $e) { + $this->error = $e->getMessage(); + $this->errors[] = $this->error; + dol_syslog("EmailCollector::doCollectOneCollector ".$this->error, LOG_ERR); + return -1; + } + + try { + //var_dump($Query->count()); + $arrayofemail = $Query->limit($this->maxemailpercollect)->setFetchOrder("asc")->get(); + //var_dump($arrayofemail); + } catch (Exception $e) { + $this->error = $e->getMessage(); + $this->errors[] = $this->error; + dol_syslog("EmailCollector::doCollectOneCollector ".$this->error, LOG_ERR); + return -1; + } + } else { + // Scan IMAP inbox + $arrayofemail = imap_search($connection, $search, null, $charset); + if ($arrayofemail === false) { + // Nothing found or search string not understood + $mapoferrrors = imap_errors(); + if ($mapoferrrors !== false) { + $error++; + $this->error = "Search string not understood - ".join(',', $mapoferrrors); + $this->errors[] = $this->error; + } } } @@ -1144,77 +1452,20 @@ class EmailCollector extends CommonObject if (!$error && !empty($arrayofemail) && count($arrayofemail) > 0) { // Loop to get part html and plain /* - 0 multipart/mixed - 1 multipart/alternative - 1.1 text/plain - 1.2 text/html - 2 message/rfc822 - 2 multipart/mixed - 2.1 multipart/alternative - 2.1.1 text/plain - 2.1.2 text/html - 2.2 message/rfc822 - 2.2 multipart/alternative - 2.2.1 text/plain - 2.2.2 text/html + 0 multipart/mixed + 1 multipart/alternative + 1.1 text/plain + 1.2 text/html + 2 message/rfc822 + 2 multipart/mixed + 2.1 multipart/alternative + 2.1.1 text/plain + 2.1.2 text/html + 2.2 message/rfc822 + 2.2 multipart/alternative + 2.2.1 text/plain + 2.2.2 text/html */ - /** - * create_part_array - * - * @param Object $structure Structure - * @param string $prefix prefix - * @return array Array with number and object - */ - /*function createPartArray($structure, $prefix = "") - { - //print_r($structure); - $part_array=array(); - if (count($structure->parts) > 0) { // There some sub parts - foreach ($structure->parts as $count => $part) { - addPartToArray($part, $prefix.($count+1), $part_array); - } - }else{ // Email does not have a seperate mime attachment for text - $part_array[] = array('part_number' => $prefix.'1', 'part_object' => $structure); - } - return $part_array; - }*/ - - /** - * Sub function for createPartArray(). Only called by createPartArray() and itself. - * - * @param Object $obj Structure - * @param string $partno Part no - * @param array $part_array array - * @return void - */ - /*function addPartToArray($obj, $partno, &$part_array) - { - $part_array[] = array('part_number' => $partno, 'part_object' => $obj); - if ($obj->type == 2) { // Check to see if the part is an attached email message, as in the RFC-822 type - //print_r($obj); - if (array_key_exists('parts', $obj)) { // Check to see if the email has parts - foreach ($obj->parts as $count => $part) { - // Iterate here again to compensate for the broken way that imap_fetchbody() handles attachments - if (count($part->parts) > 0) { - foreach ($part->parts as $count2 => $part2) { - addPartToArray($part2, $partno.".".($count2+1), $part_array); - } - }else{ // Attached email does not have a seperate mime attachment for text - $part_array[] = array('part_number' => $partno.'.'.($count+1), 'part_object' => $obj); - } - } - }else{ // Not sure if this is possible - $part_array[] = array('part_number' => $partno.'.1', 'part_object' => $obj); - } - }else{ // If there are more sub-parts, expand them out. - if (array_key_exists('parts', $obj)) { - foreach ($obj->parts as $count => $p) { - addPartToArray($p, $partno.".".($count+1), $part_array); - } - } - } - }*/ - dol_syslog("Start of loop on email", LOG_INFO, 1); $iforemailloop = 0; @@ -1222,23 +1473,25 @@ class EmailCollector extends CommonObject if ($nbemailprocessed > 1000) { break; // Do not process more than 1000 email per launch (this is a different protection than maxnbcollectedpercollect) } - $iforemailloop++; + // GET header and overview datas + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + $header = $imapemail->getHeader()->raw; + $overview = $imapemail->getAttributes(); + } else { + //$header = imap_headerinfo($connection, $imapemail); + $header = imap_fetchheader($connection, $imapemail, 0); + $overview = imap_fetch_overview($connection, $imapemail, 0); + } - $header = imap_fetchheader($connection, $imapemail, 0); - $overview = imap_fetch_overview($connection, $imapemail, 0); - - // print $header; - // var_dump($overview); - - // Process $header of email $header = preg_replace('/\r\n\s+/m', ' ', $header); // When a header line is on several lines, merge lines $matches = array(); preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $header, $matches); $headers = array_combine($matches[1], $matches[2]); + //var_dump($headers);exit; if (!empty($headers['in-reply-to']) && empty($headers['In-Reply-To'])) { $headers['In-Reply-To'] = $headers['in-reply-to']; @@ -1249,25 +1502,44 @@ class EmailCollector extends CommonObject if (!empty($headers['message-id']) && empty($headers['Message-ID'])) { $headers['Message-ID'] = $headers['message-id']; } + if (!empty($headers['subject']) && empty($headers['Subject'])) { + $headers['Subject'] = $headers['subject']; + } $headers['Subject'] = $this->decodeSMTPSubject($headers['Subject']); + $emailto = $this->decodeSMTPSubject($overview[0]->to); + $operationslog .= '
    Process email '.dol_escape_htmltag($iforemailloop)." - References: ".dol_escape_htmltag($headers['References'])." - Subject: ".dol_escape_htmltag($headers['Subject']); dol_syslog("** Process email ".$iforemailloop." References: ".$headers['References']." Subject: ".$headers['Subject']); - //print "Process mail ".$iforemailloop." Subject: ".dol_escape_htmltag($headers['Subject'])." References: ".dol_escape_htmltag($headers['References'])." In-Reply-To: ".dol_escape_htmltag($headers['In-Reply-To'])."
    \n"; + + + $trackidfoundintorecipienttype = ''; + $trackidfoundintorecipientid = 0; + $reg = array(); + // See also later list of all supported tags... + if (preg_match('/\+(thi|ctc|use|mem|sub|proj|tas|con|tic|pro|ord|inv|spro|sor|sin|leav|stockinv|job|surv|salary)([0-9]+)@/', $emailto, $reg)) { + $trackidfoundintorecipienttype = $reg[1]; + $trackidfoundintorecipientid = $reg[2]; + } elseif (preg_match('/\+emailing-(\w+)@/', $emailto, $reg)) { // Can be 'emailing-test' or 'emailing-IdMailing-IdRecipient' + $trackidfoundintorecipienttype = 'emailing'; + $trackidfoundintorecipientid = $reg[1]; + } // If there is a filter on trackid if ($searchfilterdoltrackid > 0) { - if (empty($headers['References']) || !preg_match('/@'.preg_quote($host, '/').'/', $headers['References'])) { - $nbemailprocessed++; - dol_syslog(" Discarded - No header References found"); - continue; // Exclude email + if (empty($trackidfoundintorecipienttype)) { + if (empty($headers['References']) || !preg_match('/@'.preg_quote($host, '/').'/', $headers['References'])) { + $nbemailprocessed++; + dol_syslog(" Discarded - No suffix in email recipient and no Header References found matching signature of application so with a trackid"); + continue; // Exclude email + } } } if ($searchfilternodoltrackid > 0) { - if (!empty($headers['References']) && preg_match('/@'.preg_quote($host, '/').'/', $headers['References'])) { + if (!empty($trackidfoundintorecipienttype) || (!empty($headers['References']) && preg_match('/@'.preg_quote($host, '/').'/', $headers['References']))) { $nbemailprocessed++; - dol_syslog(" Discarded - Header References found and matching signature of application"); + dol_syslog(" Discarded - Suffix found into email or Header References found and matching signature of application so with a trackid"); continue; // Exclude email } } @@ -1329,21 +1601,40 @@ class EmailCollector extends CommonObject $this->db->begin(); - dol_syslog("msgid=".$overview[0]->message_id." date=".dol_print_date($overview[0]->udate, 'dayrfc', 'gmt')." from=".$overview[0]->from." to=".$overview[0]->to." subject=".$overview[0]->subject); + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + dol_syslog("msgid=".$overview['message_id']." date=".dol_print_date($overview['date'], 'dayrfc', 'gmt')." from=".$overview['from']." to=".$overview['to']." subject=".$overview['subject']); - $overview[0]->subject = $this->decodeSMTPSubject($overview[0]->subject); + // Removed emojis + $overview['subject'] = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $overview['subject']); + } else { + dol_syslog("msgid=".$overview[0]->message_id." date=".dol_print_date($overview[0]->udate, 'dayrfc', 'gmt')." from=".$overview[0]->from." to=".$overview[0]->to." subject=".$overview[0]->subject); - $overview[0]->from = $this->decodeSMTPSubject($overview[0]->from); + $overview[0]->subject = $this->decodeSMTPSubject($overview[0]->subject); - // Removed emojis - $overview[0]->subject = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $overview[0]->subject); + $overview[0]->from = $this->decodeSMTPSubject($overview[0]->from); + // Removed emojis + $overview[0]->subject = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $overview[0]->subject); + } // GET IMAP email structure/content global $htmlmsg, $plainmsg, $charset, $attachments; - $this->getmsg($connection, $imapemail); - + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + if ($imapemail->hasHTMLBody()) { + $htmlmsg = $imapemail->getHTMLBody(); + } + if ($imapemail->hasTextBody()) { + $plainmsg = $imapemail->getTextBody(); + } + if ($imapemail->hasAttachments()) { + $attachments = $imapemail->getAttachments()->all(); + } else { + $attachments = []; + } + } else { + $this->getmsg($connection, $imapemail); + } //print $plainmsg; //var_dump($plainmsg); exit; @@ -1407,16 +1698,29 @@ class EmailCollector extends CommonObject //print $messagetext; //exit; - $fromstring = $overview[0]->from; + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + $fromstring = $overview['from']; + + $sender = $overview['sender']; + $to = $overview['to']; + $sendtocc = empty($overview['cc']) ? '' : $overview['cc']; + $sendtobcc = empty($overview['bcc']) ? '' : $overview['bcc']; + $date = $overview['date']; + $msgid = str_replace(array('<', '>'), '', $overview['message_id']); + $subject = $overview['subject']; + } else { + $fromstring = $overview[0]->from; + + $sender = $overview[0]->sender; + $to = $overview[0]->to; + $sendtocc = $overview[0]->cc; + $sendtobcc = $overview[0]->bcc; + $date = $overview[0]->udate; + $msgid = str_replace(array('<', '>'), '', $overview[0]->message_id); + $subject = $overview[0]->subject; + //var_dump($msgid);exit; + } - $sender = $overview[0]->sender; - $to = $overview[0]->to; - $sendtocc = $overview[0]->cc; - $sendtobcc = $overview[0]->bcc; - $date = $overview[0]->udate; - $msgid = str_replace(array('<', '>'), '', $overview[0]->message_id); - $subject = $overview[0]->subject; - //var_dump($msgid);exit; $reg = array(); if (preg_match('/^(.*)<(.*)>$/', $fromstring, $reg)) { @@ -1447,72 +1751,78 @@ class EmailCollector extends CommonObject foreach ($arrayofreferences as $reference) { //print "Process mail ".$iforemailloop." email_msgid ".$msgid.", date ".dol_print_date($date, 'dayhour').", subject ".$subject.", reference ".dol_escape_htmltag($reference)."
    \n"; - $resultsearchtrackid = preg_match('/dolibarr-([a-z]+)([0-9]+)@'.preg_quote($host, '/').'/', $reference, $reg); - if (empty($resultsearchtrackid) && getDolGlobalString('EMAIL_ALTERNATIVE_HOST_SIGNATURE')) { - $resultsearchtrackid = preg_match('/dolibarr-([a-z]+)([0-9]+)@'.preg_quote(getDolGlobalString('EMAIL_ALTERNATIVE_HOST_SIGNATURE'), '/').'/', $reference, $reg); + if (!empty($trackidfoundintorecipienttype)) { + $resultsearchtrackid = -1; + $reg[1] = $trackidfoundintorecipienttype; + $reg[2] = $trackidfoundintorecipientid; + } else { + $resultsearchtrackid = preg_match('/dolibarr-([a-z]+)([0-9]+)@'.preg_quote($host, '/').'/', $reference, $reg); + if (empty($resultsearchtrackid) && getDolGlobalString('EMAIL_ALTERNATIVE_HOST_SIGNATURE')) { + $resultsearchtrackid = preg_match('/dolibarr-([a-z]+)([0-9]+)@'.preg_quote(getDolGlobalString('EMAIL_ALTERNATIVE_HOST_SIGNATURE'), '/').'/', $reference, $reg); + } } - if ($resultsearchtrackid) { - // This is a Dolibarr reference of the server + if (!empty($resultsearchtrackid)) { + // We found a tracker (in recipient email or into a Reference matching the Dolibarr server) $trackid = $reg[1].$reg[2]; $objectid = $reg[2]; // See also list into interface_50_modAgenda_ActionsAuto - if ($reg[1] == 'thi') { + if ($reg[1] == 'thi') { // Third-party $objectemail = new Societe($this->db); } - if ($reg[1] == 'ctc') { + if ($reg[1] == 'ctc') { // Contact $objectemail = new Contact($this->db); } - if ($reg[1] == 'inv') { // customer invoices + if ($reg[1] == 'inv') { // Customer Invoice $objectemail = new Facture($this->db); } - if ($reg[1] == 'sinv') { // supplier invoices + if ($reg[1] == 'sinv') { // Supplier Invoice $objectemail = new FactureFournisseur($this->db); } - if ($reg[1] == 'pro') { // customer proposals + if ($reg[1] == 'pro') { // Customer Proposal $objectemail = new Propal($this->db); } - if ($reg[1] == 'ord') { // customer orders + if ($reg[1] == 'ord') { // Sale Order $objectemail = new Commande($this->db); } - if ($reg[1] == 'shi') { // shipments + if ($reg[1] == 'shi') { // Shipment $objectemail = new Expedition($this->db); } - if ($reg[1] == 'spro') { // supplier proposal + if ($reg[1] == 'spro') { // Supplier Proposal $objectemail = new SupplierProposal($this->db); } - if ($reg[1] == 'sord') { // supplier order + if ($reg[1] == 'sord') { // Supplier Order $objectemail = new CommandeFournisseur($this->db); } - if ($reg[1] == 'rec') { // Reception + if ($reg[1] == 'rec') { // Reception $objectemail = new Reception($this->db); } - if ($reg[1] == 'proj') { + if ($reg[1] == 'proj') { // Project $objectemail = new Project($this->db); } - if ($reg[1] == 'tas') { + if ($reg[1] == 'tas') { // Task $objectemail = new Task($this->db); } - if ($reg[1] == 'con') { + if ($reg[1] == 'con') { // Contact $objectemail = new Contact($this->db); } - if ($reg[1] == 'use') { + if ($reg[1] == 'use') { // User $objectemail = new User($this->db); } - if ($reg[1] == 'tic') { + if ($reg[1] == 'tic') { // Ticket $objectemail = new Ticket($this->db); } - if ($reg[1] == 'recruitmentcandidature') { + if ($reg[1] == 'recruitmentcandidature') { // Recruiting Candidate $objectemail = new RecruitmentCandidature($this->db); } - if ($reg[1] == 'mem') { + if ($reg[1] == 'mem') { // Member $objectemail = new Adherent($this->db); } - /*if ($reg[1] == 'leav') { + /*if ($reg[1] == 'leav') { // Leave / Holiday $objectemail = new Holiday($db); } - if ($reg[1] == 'exp') { + if ($reg[1] == 'exp') { // ExpenseReport $objectemail = new ExpenseReport($db); }*/ } elseif (preg_match('/<(.*@.*)>/', $reference, $reg)) { @@ -1670,267 +1980,287 @@ class EmailCollector extends CommonObject } // Do operations - foreach ($this->actions as $operation) { - $errorforthisaction = 0; + if ($mode < 2) { + foreach ($this->actions as $operation) { + $errorforthisaction = 0; - if ($errorforactions) { - break; - } - if (empty($operation['status'])) { - continue; - } - - // Make Operation - dol_syslog("Execute action ".$operation['type']." actionparam=".$operation['actionparam'].' thirdpartystatic->id='.$thirdpartystatic->id.' contactstatic->id='.$contactstatic->id.' projectstatic->id='.$projectstatic->id); - dol_syslog("Execute action fk_element_id=".$fk_element_id." fk_element_type=".$fk_element_type); // If a Dolibarr tracker id is found, we should now the id of object - - $actioncode = 'EMAIL_IN'; - // If we scan the Sent box, we use the code for out email - if ($this->source_directory == 'Sent') { - $actioncode = 'EMAIL_OUT'; - } - - $description = $descriptiontitle = $descriptionmeta = $descriptionfull = ''; - - $descriptiontitle = $langs->trans("RecordCreatedByEmailCollector", $this->ref, $msgid); - - $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailTopic").' : '.dol_escape_htmltag($subject)); - $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailFrom").($langs->trans("MailFrom") != 'From' ? ' (From)' : '').' : '.dol_escape_htmltag($fromstring)); - if ($sender) { - $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("Sender").($langs->trans("Sender") != 'Sender' ? ' (Sender)' : '').' : '.dol_escape_htmltag($sender)); - } - $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailTo").($langs->trans("MailTo") != 'To' ? ' (To)' : '').' : '.dol_escape_htmltag($to)); - if ($sendtocc) { - $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailCC").($langs->trans("MailCC") != 'CC' ? ' (CC)' : '').' : '.dol_escape_htmltag($sendtocc)); - } - - // Search and create thirdparty - if ($operation['type'] == 'loadthirdparty' || $operation['type'] == 'loadandcreatethirdparty') { - if (empty($operation['actionparam'])) { - $errorforactions++; - $this->error = "Action loadthirdparty or loadandcreatethirdparty has empty parameter. Must be a rule like 'name=HEADER:^From:(.*);' or 'name=SET:xxx' or 'name=EXTRACT:(body|subject):regex where 'name' can be replaced with 'id' or 'email' to define how to set or extract data. More properties can also be set, for example client=SET:2;"; - $this->errors[] = $this->error; - } else { - $actionparam = $operation['actionparam']; - $idtouseforthirdparty = ''; - $nametouseforthirdparty = ''; - $emailtouseforthirdparty = ''; - - // $actionparam = 'param=SET:aaa' or 'param=EXTRACT:BODY:....' - $arrayvaluetouse = dolExplodeIntoArray($actionparam, ';', '='); - foreach ($arrayvaluetouse as $propertytooverwrite => $valueforproperty) { - $sourcestring = ''; - $sourcefield = ''; - $regexstring = ''; - $regforregex = array(); - - if (preg_match('/^EXTRACT:([a-zA-Z0-9_]+):(.*)$/', $valueforproperty, $regforregex)) { - $sourcefield = $regforregex[1]; - $regexstring = $regforregex[2]; - } - - if (!empty($sourcefield) && !empty($regexstring)) { - if (strtolower($sourcefield) == 'body') { - $sourcestring = $messagetext; - } elseif (strtolower($sourcefield) == 'subject') { - $sourcestring = $subject; - } elseif (strtolower($sourcefield) == 'header') { - $sourcestring = $header; - } - - if ($sourcestring) { - $regforval = array(); - //var_dump($regexstring);var_dump($sourcestring); - if (preg_match('/'.$regexstring.'/ms', $sourcestring, $regforval)) { - //var_dump($regforval[count($regforval)-1]);exit; - // Overwrite param $tmpproperty - if ($propertytooverwrite == 'id') { - $idtouseforthirdparty = isset($regforval[count($regforval) - 1]) ? trim($regforval[count($regforval) - 1]) : null; - } elseif ($propertytooverwrite == 'email') { - $emailtouseforthirdparty = isset($regforval[count($regforval) - 1]) ? trim($regforval[count($regforval) - 1]) : null; - } else { - $nametouseforthirdparty = isset($regforval[count($regforval) - 1]) ? trim($regforval[count($regforval) - 1]) : null; - } - } else { - // Regex not found - $idtouseforthirdparty = null; - $nametouseforthirdparty = null; - $emailtouseforthirdparty = null; - } - //var_dump($object->$tmpproperty);exit; - } else { - // Nothing can be done for this param - $errorforactions++; - $this->error = 'The extract rule to use to load thirdparty has on an unknown source (must be HEADER, SUBJECT or BODY)'; - $this->errors[] = $this->error; - } - } elseif (preg_match('/^(SET|SETIFEMPTY):(.*)$/', $valueforproperty, $reg)) { - //if (preg_match('/^options_/', $tmpproperty)) $object->array_options[preg_replace('/^options_/', '', $tmpproperty)] = $reg[1]; - //else $object->$tmpproperty = $reg[1]; - if ($propertytooverwrite == 'id') { - $idtouseforthirdparty = $reg[2]; - } elseif ($propertytooverwrite == 'email') { - $emailtouseforthirdparty = $reg[2]; - } else { - $nametouseforthirdparty = $reg[2]; - } - } else { - $errorforactions++; - $this->error = 'Bad syntax for description of action parameters: '.$actionparam; - $this->errors[] = $this->error; - break; - } - } - - if (!$errorforactions && ($idtouseforthirdparty || $emailtouseforthirdparty || $nametouseforthirdparty)) { - $result = $thirdpartystatic->fetch($idtouseforthirdparty, $nametouseforthirdparty, '', '', '', '', '', '', '', '', $emailtouseforthirdparty); - if ($result < 0) { - $errorforactions++; - $this->error = 'Error when getting thirdparty with name '.$nametouseforthirdparty.' (may be 2 record exists with same name ?)'; - $this->errors[] = $this->error; - break; - } elseif ($result == 0) { - if ($operation['type'] == 'loadthirdparty') { - dol_syslog("Third party with id=".$idtouseforthirdparty." email=".$emailtouseforthirdparty." name=".$nametouseforthirdparty." was not found"); - - $errorforactions++; - $this->error = 'ErrorFailedToLoadThirdParty'; - $this->errors[] = 'ErrorFailedToLoadThirdParty'; - } elseif ($operation['type'] == 'loadandcreatethirdparty') { - dol_syslog("Third party with id=".$idtouseforthirdparty." email=".$emailtouseforthirdparty." name=".$nametouseforthirdparty." was not found. We try to create it."); - - // Create thirdparty - $thirdpartystatic->name = $nametouseforthirdparty; - if ($fromtext != $nametouseforthirdparty) { - $thirdpartystatic->name_alias = $fromtext; - } - $thirdpartystatic->email = ($emailtouseforthirdparty ? $emailtouseforthirdparty : $from); - - // Overwrite values with values extracted from source email - $errorforthisaction = $this->overwritePropertiesOfObject($thirdpartystatic, $operation['actionparam'], $messagetext, $subject, $header); - - if ($thirdpartystatic->client && empty($thirdpartystatic->code_client)) { - $thirdpartystatic->code_client = 'auto'; - } - if ($thirdpartystatic->fournisseur && empty($thirdpartystatic->code_fournisseur)) { - $thirdpartystatic->code_fournisseur = 'auto'; - } - - if ($errorforthisaction) { - $errorforactions++; - } else { - $result = $thirdpartystatic->create($user); - if ($result <= 0) { - $errorforactions++; - $this->error = $thirdpartystatic->error; - $this->errors = $thirdpartystatic->errors; - } - } - } - } - } + if ($errorforactions) { + break; + } + if (empty($operation['status'])) { + continue; } - } elseif ($operation['type'] == 'recordevent') { - // Create event - $actioncomm = new ActionComm($this->db); - $alreadycreated = $actioncomm->fetch(0, '', '', $msgid); - if ($alreadycreated == 0) { - if ($projectstatic->id > 0) { - if ($projectfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Project found from '.$projectfoundby); - } - } - if ($thirdpartystatic->id > 0) { - if ($thirdpartyfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); - } - } - if ($contactstatic->id > 0) { - if ($contactfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); - } - } + // Make Operation + dol_syslog("Execute action ".$operation['type']." actionparam=".$operation['actionparam'].' thirdpartystatic->id='.$thirdpartystatic->id.' contactstatic->id='.$contactstatic->id.' projectstatic->id='.$projectstatic->id); + dol_syslog("Execute action fk_element_id=".$fk_element_id." fk_element_type=".$fk_element_type); // If a Dolibarr tracker id is found, we should now the id of object - $description = $descriptiontitle; - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $descriptionmeta); - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $messagetext); + $actioncode = 'EMAIL_IN'; + // If we scan the Sent box, we use the code for out email + if ($this->source_directory == 'Sent') { + $actioncode = 'EMAIL_OUT'; + } - $descriptionfull = $description; - if (empty($conf->global->MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER)) { - $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); - $descriptionfull = dol_concatdesc($descriptionfull, $header); - } + $description = $descriptiontitle = $descriptionmeta = $descriptionfull = ''; - // Insert record of emails sent - $actioncomm->type_code = 'AC_OTH_AUTO'; // Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...) - $actioncomm->code = 'AC_'.$actioncode; - $actioncomm->label = $langs->trans("ActionAC_".$actioncode).' - '.$langs->trans("MailFrom").' '.$from; - $actioncomm->note_private = $descriptionfull; - $actioncomm->fk_project = $projectstatic->id; - $actioncomm->datep = $date; - $actioncomm->datef = $date; - $actioncomm->percentage = -1; // Not applicable - $actioncomm->socid = $thirdpartystatic->id; - $actioncomm->contact_id = $contactstatic->id; - $actioncomm->socpeopleassigned = (!empty($contactstatic->id) ? array($contactstatic->id => '') : array()); - $actioncomm->authorid = $user->id; // User saving action - $actioncomm->userownerid = $user->id; // Owner of action - // Fields when action is an email (content should be added into note) - $actioncomm->email_msgid = $msgid; - $actioncomm->email_from = $fromstring; - $actioncomm->email_sender = $sender; - $actioncomm->email_to = $to; - $actioncomm->email_tocc = $sendtocc; - $actioncomm->email_tobcc = $sendtobcc; - $actioncomm->email_subject = $subject; - $actioncomm->errors_to = ''; + $descriptiontitle = $langs->trans("RecordCreatedByEmailCollector", $this->ref, $msgid); - if (!in_array($fk_element_type, array('societe', 'contact', 'project', 'user'))) { - $actioncomm->fk_element = $fk_element_id; - $actioncomm->elementid = $fk_element_id; - $actioncomm->elementtype = $fk_element_type; - if (is_object($objectemail) && $objectemail->module) { - $actioncomm->elementtype .= '@'.$objectemail->module; - } - } + $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailTopic").' : '.dol_escape_htmltag($subject)); + $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailFrom").($langs->trans("MailFrom") != 'From' ? ' (From)' : '').' : '.dol_escape_htmltag($fromstring)); + if ($sender) { + $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("Sender").($langs->trans("Sender") != 'Sender' ? ' (Sender)' : '').' : '.dol_escape_htmltag($sender)); + } + $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailTo").($langs->trans("MailTo") != 'To' ? ' (To)' : '').' : '.dol_escape_htmltag($to)); + if ($sendtocc) { + $descriptionmeta = dol_concatdesc($descriptionmeta, $langs->trans("MailCC").($langs->trans("MailCC") != 'CC' ? ' (CC)' : '').' : '.dol_escape_htmltag($sendtocc)); + } - //$actioncomm->extraparams = $extraparams; - - // Overwrite values with values extracted from source email - $errorforthisaction = $this->overwritePropertiesOfObject($actioncomm, $operation['actionparam'], $messagetext, $subject, $header); - - //var_dump($fk_element_id); - //var_dump($fk_element_type); - //var_dump($alreadycreated); - //var_dump($operation['type']); - //var_dump($actioncomm); - //exit; - - if ($errorforthisaction) { + // Search and create thirdparty + if ($operation['type'] == 'loadthirdparty' || $operation['type'] == 'loadandcreatethirdparty') { + if (empty($operation['actionparam'])) { $errorforactions++; + $this->error = "Action loadthirdparty or loadandcreatethirdparty has empty parameter. Must be a rule like 'name=HEADER:^From:(.*);' or 'name=SET:xxx' or 'name=EXTRACT:(body|subject):regex where 'name' can be replaced with 'id' or 'email' to define how to set or extract data. More properties can also be set, for example client=SET:2;"; + $this->errors[] = $this->error; } else { - $result = $actioncomm->create($user); - if ($result <= 0) { - $errorforactions++; - $this->errors = $actioncomm->errors; + $actionparam = $operation['actionparam']; + $idtouseforthirdparty = ''; + $nametouseforthirdparty = ''; + $emailtouseforthirdparty = ''; + + // $actionparam = 'param=SET:aaa' or 'param=EXTRACT:BODY:....' + $arrayvaluetouse = dolExplodeIntoArray($actionparam, ';', '='); + foreach ($arrayvaluetouse as $propertytooverwrite => $valueforproperty) { + $sourcestring = ''; + $sourcefield = ''; + $regexstring = ''; + $regforregex = array(); + + if (preg_match('/^EXTRACT:([a-zA-Z0-9_]+):(.*)$/', $valueforproperty, $regforregex)) { + $sourcefield = $regforregex[1]; + $regexstring = $regforregex[2]; + } + + if (!empty($sourcefield) && !empty($regexstring)) { + if (strtolower($sourcefield) == 'body') { + $sourcestring = $messagetext; + } elseif (strtolower($sourcefield) == 'subject') { + $sourcestring = $subject; + } elseif (strtolower($sourcefield) == 'header') { + $sourcestring = $header; + } + + if ($sourcestring) { + $regforval = array(); + //var_dump($regexstring);var_dump($sourcestring); + if (preg_match('/'.$regexstring.'/ms', $sourcestring, $regforval)) { + //var_dump($regforval[count($regforval)-1]);exit; + // Overwrite param $tmpproperty + if ($propertytooverwrite == 'id') { + $idtouseforthirdparty = isset($regforval[count($regforval) - 1]) ? trim($regforval[count($regforval) - 1]) : null; + + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/ms into '.strtolower($sourcefield).' -> Found idtouseforthirdparty='.dol_escape_htmltag($idtouseforthirdparty); + } elseif ($propertytooverwrite == 'email') { + $emailtouseforthirdparty = isset($regforval[count($regforval) - 1]) ? trim($regforval[count($regforval) - 1]) : null; + + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/ms into '.strtolower($sourcefield).' -> Found propertytooverwrite='.dol_escape_htmltag($propertytooverwrite); + } else { + $nametouseforthirdparty = isset($regforval[count($regforval) - 1]) ? trim($regforval[count($regforval) - 1]) : null; + + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/ms into '.strtolower($sourcefield).' -> Found nametouseforthirdparty='.dol_escape_htmltag($nametouseforthirdparty); + } + } else { + // Regex not found + $idtouseforthirdparty = null; + $nametouseforthirdparty = null; + $emailtouseforthirdparty = null; + + $operationslog .= '
    Regex /'.dol_escape_htmltag($regexstring).'/ms into '.strtolower($sourcefield).' -> Not found'; + } + //var_dump($object->$tmpproperty);exit; + } else { + // Nothing can be done for this param + $errorforactions++; + $this->error = 'The extract rule to use to load thirdparty has an unknown source (must be HEADER, SUBJECT or BODY)'; + $this->errors[] = $this->error; + } + } elseif (preg_match('/^(SET|SETIFEMPTY):(.*)$/', $valueforproperty, $reg)) { + //if (preg_match('/^options_/', $tmpproperty)) $object->array_options[preg_replace('/^options_/', '', $tmpproperty)] = $reg[1]; + //else $object->$tmpproperty = $reg[1]; + if ($propertytooverwrite == 'id') { + $idtouseforthirdparty = $reg[2]; + + $operationslog .= '
    We set property idtouseforthrdparty='.dol_escape_htmltag($idtouseforthirdparty); + } elseif ($propertytooverwrite == 'email') { + $emailtouseforthirdparty = $reg[2]; + + $operationslog .= '
    We set property emailtouseforthrdparty='.dol_escape_htmltag($emailtouseforthirdparty); + } else { + $nametouseforthirdparty = $reg[2]; + + $operationslog .= '
    We set property nametouseforthirdparty='.dol_escape_htmltag($nametouseforthirdparty); + } + } else { + $errorforactions++; + $this->error = 'Bad syntax for description of action parameters: '.$actionparam; + $this->errors[] = $this->error; + break; + } + } + + if (!$errorforactions && ($idtouseforthirdparty || $emailtouseforthirdparty || $nametouseforthirdparty)) { + $result = $thirdpartystatic->fetch($idtouseforthirdparty, $nametouseforthirdparty, '', '', '', '', '', '', '', '', $emailtouseforthirdparty); + if ($result < 0) { + $errorforactions++; + $this->error = 'Error when getting thirdparty with name '.$nametouseforthirdparty.' (may be 2 record exists with same name ?)'; + $this->errors[] = $this->error; + break; + } elseif ($result == 0) { + if ($operation['type'] == 'loadthirdparty') { + dol_syslog("Third party with id=".$idtouseforthirdparty." email=".$emailtouseforthirdparty." name=".$nametouseforthirdparty." was not found"); + + $errorforactions++; + $langs->load("errors"); + $this->error = $langs->trans('ErrorFailedToLoadThirdParty', $idtouseforthirdparty, $emailtouseforthirdparty, $nametouseforthirdparty); + $this->errors[] = $this->error; + } elseif ($operation['type'] == 'loadandcreatethirdparty') { + dol_syslog("Third party with id=".$idtouseforthirdparty." email=".$emailtouseforthirdparty." name=".$nametouseforthirdparty." was not found. We try to create it."); + + // Create thirdparty + $thirdpartystatic->name = $nametouseforthirdparty; + if ($fromtext != $nametouseforthirdparty) { + $thirdpartystatic->name_alias = $fromtext; + } + $thirdpartystatic->email = ($emailtouseforthirdparty ? $emailtouseforthirdparty : $from); + + // Overwrite values with values extracted from source email + $errorforthisaction = $this->overwritePropertiesOfObject($thirdpartystatic, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + + if ($thirdpartystatic->client && empty($thirdpartystatic->code_client)) { + $thirdpartystatic->code_client = 'auto'; + } + if ($thirdpartystatic->fournisseur && empty($thirdpartystatic->code_fournisseur)) { + $thirdpartystatic->code_fournisseur = 'auto'; + } + + if ($errorforthisaction) { + $errorforactions++; + } else { + $result = $thirdpartystatic->create($user); + if ($result <= 0) { + $errorforactions++; + $this->error = $thirdpartystatic->error; + $this->errors = $thirdpartystatic->errors; + } else { + $operationslog .= '
    Thirdparty created -> id = '.dol_escape_htmltag($thirdpartystatic->id); + } + } + } + } } } - } - } elseif ($operation['type'] == 'recordjoinpiece') { - $pj = getAttachments($imapemail, $connection); - foreach ($pj as $key => $val) { - $data[$val['filename']] = getFileData($imapemail, $val['pos'], $val['type'], $connection); - } - if (count($pj) > 0) { - $sql = "SELECT rowid as id FROM " . MAIN_DB_PREFIX . "user WHERE email LIKE '%" . $from . "%'"; - $resql = $this->db->query($sql); - if ($this->db->num_rows($resql) == 0) { - $this->errors[] = 'User Not allowed to add documents'; + } elseif ($operation['type'] == 'recordevent') { + // Create event + $actioncomm = new ActionComm($this->db); + + $alreadycreated = $actioncomm->fetch(0, '', '', $msgid); + if ($alreadycreated == 0) { + if ($projectstatic->id > 0) { + if ($projectfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Project found from '.$projectfoundby); + } + } + if ($thirdpartystatic->id > 0) { + if ($thirdpartyfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); + } + } + if ($contactstatic->id > 0) { + if ($contactfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); + } + } + + $description = $descriptiontitle; + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $descriptionmeta); + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $messagetext); + + $descriptionfull = $description; + if (empty($conf->global->MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER)) { + $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); + $descriptionfull = dol_concatdesc($descriptionfull, $header); + } + + // Insert record of emails sent + $actioncomm->type_code = 'AC_OTH_AUTO'; // Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...) + $actioncomm->code = 'AC_'.$actioncode; + $actioncomm->label = $langs->trans("ActionAC_".$actioncode).' - '.$langs->trans("MailFrom").' '.$from; + $actioncomm->note_private = $descriptionfull; + $actioncomm->fk_project = $projectstatic->id; + $actioncomm->datep = $date; // date of email + $actioncomm->datef = $date; // date of email + $actioncomm->percentage = -1; // Not applicable + $actioncomm->socid = $thirdpartystatic->id; + $actioncomm->contact_id = $contactstatic->id; + $actioncomm->socpeopleassigned = (!empty($contactstatic->id) ? array($contactstatic->id => '') : array()); + $actioncomm->authorid = $user->id; // User saving action + $actioncomm->userownerid = $user->id; // Owner of action + // Fields when action is an email (content should be added into note) + $actioncomm->email_msgid = $msgid; + $actioncomm->email_from = $fromstring; + $actioncomm->email_sender = $sender; + $actioncomm->email_to = $to; + $actioncomm->email_tocc = $sendtocc; + $actioncomm->email_tobcc = $sendtobcc; + $actioncomm->email_subject = $subject; + $actioncomm->errors_to = ''; + + if (!in_array($fk_element_type, array('societe', 'contact', 'project', 'user'))) { + $actioncomm->fk_element = $fk_element_id; + $actioncomm->elementid = $fk_element_id; + $actioncomm->elementtype = $fk_element_type; + if (is_object($objectemail) && $objectemail->module) { + $actioncomm->elementtype .= '@'.$objectemail->module; + } + } + + //$actioncomm->extraparams = $extraparams; + + // Overwrite values with values extracted from source email + $errorforthisaction = $this->overwritePropertiesOfObject($actioncomm, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + + //var_dump($fk_element_id); + //var_dump($fk_element_type); + //var_dump($alreadycreated); + //var_dump($operation['type']); + //var_dump($actioncomm); + //exit; + + if ($errorforthisaction) { + $errorforactions++; + } else { + $result = $actioncomm->create($user); + if ($result <= 0) { + $errorforactions++; + $this->errors = $actioncomm->errors; + } else { + $operationslog .= '
    Event created -> id='.dol_escape_htmltag($actioncomm->id); + } + } } - $arrayobject = array( + } elseif ($operation['type'] == 'recordjoinpiece') { + $pj = getAttachments($imapemail, $connection); + foreach ($pj as $key => $val) { + $data[$val['filename']] = getFileData($imapemail, $val['pos'], $val['type'], $connection); + } + if (count($pj) > 0) { + $sql = "SELECT rowid as id FROM ".MAIN_DB_PREFIX."user WHERE email LIKE '%".$this->db->escape($from)."%'"; + $resql = $this->db->query($sql); + if ($this->db->num_rows($resql) == 0) { + $this->errors[] = 'User Not allowed to add documents'; + } + $arrayobject = array( 'propale' => array('table' => 'propal', 'fields' => array('ref'), 'class' => 'comm/propal/class/propal.class.php', @@ -1947,7 +2277,7 @@ class EmailCollector extends CommonObject 'fields' => array('ref'), 'class' => 'recruitment/class/recruitmentjobposition.class.php', 'object' => 'RecruitmentJobPosition'), - 'recruitment/recruitmentjobposition' => array('table' => 'recruitment_recruitmentcandidature', + 'recruitment/recruitmentcandidature' => array('table' => 'recruitment_recruitmentcandidature', 'fields' => array('ref'), 'class' => 'recruitment/class/recruitmentcandidature.class.php', 'object' => ' RecruitmentCandidature'), @@ -1992,7 +2322,7 @@ class EmailCollector extends CommonObject 'class' => 'compta/facture/class/facture.class.php', 'object' => 'Facture'), 'fournisseur/facture' => array('table' => 'facture_fourn', - 'fields' => array('ref', ref_client), + 'fields' => array('ref', 'ref_client'), 'class' => 'fourn/class/fournisseur.facture.class.php', 'object' => 'FactureFournisseur'), 'produit' => array('table' => 'product', @@ -2023,325 +2353,359 @@ class EmailCollector extends CommonObject 'fields' => array('ref'), 'class' => 'mrp/class/mo.class.php', 'object' => 'Mo'), - ); + ); - if (!is_object($hookmanager)) { - include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; - $hookmanager = new HookManager($this->db); - } - $hookmanager->initHooks(array('emailcolector')); - $parameters = array('arrayobject' => $arrayobject); - $reshook = $hookmanager->executeHooks('addmoduletoeamailcollectorjoinpiece', $parameters); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) { - $arrayobject = $hookmanager->resArray; - } - - $resultobj = array(); - - foreach ($arrayobject as $key => $objectdesc) { - $sql = 'SELECT DISTINCT t.rowid '; - $sql .= ' FROM ' . MAIN_DB_PREFIX . $objectdesc['table'] . ' AS t'; - $sql .= ' WHERE '; - foreach ($objectdesc['fields'] as $field) { - $sql .= "'" .$this->db->escape($subject) . "' LIKE CONCAT('%', t." . $field . ", '%') OR "; + if (!is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($this->db); + } + $hookmanager->initHooks(array('emailcolector')); + $parameters = array('arrayobject' => $arrayobject); + $reshook = $hookmanager->executeHooks('addmoduletoeamailcollectorjoinpiece', $parameters); // Note that $action and $object may have been modified by some hooks + if ($reshook > 0) { + $arrayobject = $hookmanager->resArray; } - $sql = substr($sql, 0, -4); - $ressqlobj = $this->db->query($sql); - if ($ressqlobj) { - while ($obj = $this->db->fetch_object($ressqlobj)) { - $resultobj[$key][] = $obj->rowid; + $resultobj = array(); + + foreach ($arrayobject as $key => $objectdesc) { + $sql = 'SELECT DISTINCT t.rowid '; + $sql .= ' FROM ' . MAIN_DB_PREFIX . $objectdesc['table'] . ' AS t'; + $sql .= ' WHERE '; + foreach ($objectdesc['fields'] as $field) { + $sql .= "'" .$this->db->escape($subject) . "' LIKE CONCAT('%', t." . $field . ", '%') OR "; } - } - } - $dirs = array(); - foreach ($resultobj as $mod => $ids) { - $moddesc = $arrayobject[$mod]; - $elementpath = $mod; - dol_include_once($moddesc['class']); - $objectmanaged = new $moddesc['object']($this->db); - foreach ($ids as $val) { - $res = $objectmanaged->fetch($val); - if ($res) { - $path = ($objectmanaged->entity > 1 ? "/" . $objectmanaged->entity : ''); - $dirs[] = DOL_DATA_ROOT . $path . "/" . $elementpath . '/' . dol_sanitizeFileName($objectmanaged->ref) . '/'; - } else { - $this->errors[] = 'object not found'; - } - } - } - foreach ($dirs as $target) { - foreach ($data as $filename => $content) { - $prefix = $this->actions[$this->id]['actionparam']; + $sql = substr($sql, 0, -4); - $resr = saveAttachment($target, $prefix . '_' . $filename, $content); - if ($resr == -1) { - $this->errors[] = 'Doc not saved'; - } - } - } - } else { - $this->errors[] = 'no joined piece'; - } - } elseif ($operation['type'] == 'project') { - // Create project / lead - $projecttocreate = new Project($this->db); - - $alreadycreated = $projecttocreate->fetch(0, '', '', $msgid); - if ($alreadycreated == 0) { - if ($thirdpartystatic->id > 0) { - $projecttocreate->socid = $thirdpartystatic->id; - if ($thirdpartyfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); - } - } - if ($contactstatic->id > 0) { - $projecttocreate->contact_id = $contactstatic->id; - if ($contactfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); - } - } - - $description = $descriptiontitle; - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $descriptionmeta); - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $messagetext); - - $descriptionfull = $description; - if (empty($conf->global->MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER)) { - $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); - $descriptionfull = dol_concatdesc($descriptionfull, $header); - } - - $id_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'rowid'); - $percent_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'percent'); - - $projecttocreate->title = $subject; - $projecttocreate->date_start = $date; - $projecttocreate->date_end = ''; - $projecttocreate->opp_status = $id_opp_status; - $projecttocreate->opp_percent = $percent_opp_status; - $projecttocreate->description = dol_concatdesc(dolGetFirstLineOfText(dol_string_nohtmltag($description, 2), 10), '...'.$langs->transnoentities("SeePrivateNote").'...'); - $projecttocreate->note_private = $descriptionfull; - $projecttocreate->entity = $conf->entity; - $projecttocreate->email_msgid = $msgid; - - $savesocid = $projecttocreate->socid; - - // Overwrite values with values extracted from source email. - // This may overwrite any $projecttocreate->xxx properties. - $errorforthisaction = $this->overwritePropertiesOfObject($projecttocreate, $operation['actionparam'], $messagetext, $subject, $header); - - // Set project ref if not yet defined - if (empty($projecttocreate->ref)) { - // Get next Ref - $defaultref = ''; - $modele = empty($conf->global->PROJECT_ADDON) ? 'mod_project_simple' : $conf->global->PROJECT_ADDON; - - // Search template files - $file = ''; $classname = ''; $filefound = 0; $reldir = ''; - $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); - foreach ($dirmodels as $reldir) { - $file = dol_buildpath($reldir."core/modules/project/".$modele.'.php', 0); - if (file_exists($file)) { - $filefound = 1; - $classname = $modele; - break; - } - } - - if ($filefound) { - if ($savesocid > 0) { - if ($savesocid != $projecttocreate->socid) { - $errorforactions++; - setEventMessages('You loaded a thirdparty (id='.$savesocid.') and you force another thirdparty id (id='.$projecttocreate->socid.') by setting socid in operation with a different value', null, 'errors'); - } - } else { - if ($projecttocreate->socid > 0) { - $thirdpartystatic->fetch($projecttocreate->socid); + $ressqlobj = $this->db->query($sql); + if ($ressqlobj) { + while ($obj = $this->db->fetch_object($ressqlobj)) { + $resultobj[$key][] = $obj->rowid; } } - - $result = dol_include_once($reldir."core/modules/project/".$modele.'.php'); - $modModuleToUseForNextValue = new $classname; - $defaultref = $modModuleToUseForNextValue->getNextValue(($thirdpartystatic->id > 0 ? $thirdpartystatic : null), $projecttocreate); } - $projecttocreate->ref = $defaultref; - } + $dirs = array(); + foreach ($resultobj as $mod => $ids) { + $moddesc = $arrayobject[$mod]; + $elementpath = $mod; + dol_include_once($moddesc['class']); + $objectmanaged = new $moddesc['object']($this->db); + foreach ($ids as $val) { + $res = $objectmanaged->fetch($val); + if ($res) { + $path = ($objectmanaged->entity > 1 ? "/" . $objectmanaged->entity : ''); + $dirs[] = DOL_DATA_ROOT . $path . "/" . $elementpath . '/' . dol_sanitizeFileName($objectmanaged->ref) . '/'; + } else { + $this->errors[] = 'object not found'; + } + } + } + foreach ($dirs as $target) { + foreach ($data as $filename => $content) { + $prefix = $this->actions[$this->id]['actionparam']; - if ($errorforthisaction) { - $errorforactions++; + $resr = saveAttachment($target, $prefix . '_' . $filename, $content); + if ($resr == -1) { + $this->errors[] = 'Doc not saved'; + } + } + } + + $operationslog .= '
    Save attachment files on disk'; } else { - if (empty($projecttocreate->ref) || (is_numeric($projecttocreate->ref) && $projecttocreate->ref <= 0)) { + $this->errors[] = 'no joined piece'; + + $operationslog .= '
    No joinded files'; + } + } elseif ($operation['type'] == 'project') { + // Create project / lead + $projecttocreate = new Project($this->db); + $alreadycreated = $projecttocreate->fetch(0, '', '', $msgid); + if ($alreadycreated == 0) { + if ($thirdpartystatic->id > 0) { + $projecttocreate->socid = $thirdpartystatic->id; + if ($thirdpartyfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); + } + } + if ($contactstatic->id > 0) { + $projecttocreate->contact_id = $contactstatic->id; + if ($contactfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); + } + } + + $description = $descriptiontitle; + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $descriptionmeta); + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $messagetext); + + $descriptionfull = $description; + if (empty($conf->global->MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER)) { + $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); + $descriptionfull = dol_concatdesc($descriptionfull, $header); + } + + $id_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'rowid'); + $percent_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'percent'); + + $projecttocreate->title = $subject; + $projecttocreate->date_start = $date; // date of email + $projecttocreate->date_end = ''; + $projecttocreate->opp_status = $id_opp_status; + $projecttocreate->opp_percent = $percent_opp_status; + $projecttocreate->description = dol_concatdesc(dolGetFirstLineOfText(dol_string_nohtmltag($description, 2), 10), '...'.$langs->transnoentities("SeePrivateNote").'...'); + $projecttocreate->note_private = $descriptionfull; + $projecttocreate->entity = $conf->entity; + $projecttocreate->email_msgid = $msgid; + + $savesocid = $projecttocreate->socid; + + // Overwrite values with values extracted from source email. + // This may overwrite any $projecttocreate->xxx properties. + $errorforthisaction = $this->overwritePropertiesOfObject($projecttocreate, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + + // Set project ref if not yet defined + if (empty($projecttocreate->ref)) { + // Get next Ref + $defaultref = ''; + $modele = empty($conf->global->PROJECT_ADDON) ? 'mod_project_simple' : $conf->global->PROJECT_ADDON; + + // Search template files + $file = ''; $classname = ''; $filefound = 0; $reldir = ''; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { + $file = dol_buildpath($reldir."core/modules/project/".$modele.'.php', 0); + if (file_exists($file)) { + $filefound = 1; + $classname = $modele; + break; + } + } + + if ($filefound) { + if ($savesocid > 0) { + if ($savesocid != $projecttocreate->socid) { + $errorforactions++; + setEventMessages('You loaded a thirdparty (id='.$savesocid.') and you force another thirdparty id (id='.$projecttocreate->socid.') by setting socid in operation with a different value', null, 'errors'); + } + } else { + if ($projecttocreate->socid > 0) { + $thirdpartystatic->fetch($projecttocreate->socid); + } + } + + $result = dol_include_once($reldir."core/modules/project/".$modele.'.php'); + $modModuleToUseForNextValue = new $classname; + $defaultref = $modModuleToUseForNextValue->getNextValue(($thirdpartystatic->id > 0 ? $thirdpartystatic : null), $projecttocreate); + } + $projecttocreate->ref = $defaultref; + } + + + if ($errorforthisaction) { $errorforactions++; - $this->error = 'Failed to create project: Can\'t get a valid value for the field ref with numbering template = '.$modele.', thirdparty id = '.$thirdpartystatic->id; } else { - // Create project - $result = $projecttocreate->create($user); - if ($result <= 0) { + if (empty($projecttocreate->ref) || (is_numeric($projecttocreate->ref) && $projecttocreate->ref <= 0)) { $errorforactions++; - $this->error = 'Failed to create project: '.$langs->trans($projecttocreate->error); - $this->errors = $projecttocreate->errors; - } - } - } - } - } elseif ($operation['type'] == 'ticket') { - // Create ticket - $tickettocreate = new Ticket($this->db); - - $alreadycreated = $tickettocreate->fetch(0, '', '', $msgid); - if ($alreadycreated == 0) { - if ($thirdpartystatic->id > 0) { - $tickettocreate->socid = $thirdpartystatic->id; - $tickettocreate->fk_soc = $thirdpartystatic->id; - if ($thirdpartyfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); - } - } - if ($contactstatic->id > 0) { - $tickettocreate->contact_id = $contactstatic->id; - if ($contactfoundby) { - $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); - } - } - - $description = $descriptiontitle; - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $descriptionmeta); - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $messagetext); - - $descriptionfull = $description; - if (empty($conf->global->MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER)) { - $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); - $descriptionfull = dol_concatdesc($descriptionfull, $header); - } - - $tickettocreate->subject = $subject; - $tickettocreate->message = $description; - $tickettocreate->type_code = (!empty($conf->global->MAIN_EMAILCOLLECTOR_TICKET_TYPE_CODE) ? $conf->global->MAIN_EMAILCOLLECTOR_TICKET_TYPE_CODE : dol_getIdFromCode($this->db, 1, 'c_ticket_type', 'use_default', 'code', 1)); - $tickettocreate->category_code = (!empty($conf->global->MAIN_EMAILCOLLECTOR_TICKET_CATEGORY_CODE) ? $conf->global->MAIN_EMAILCOLLECTOR_TICKET_CATEGORY_CODE : dol_getIdFromCode($this->db, 1, 'c_ticket_category', 'use_default', 'code', 1)); - $tickettocreate->severity_code = (!empty($conf->global->MAIN_EMAILCOLLECTOR_TICKET_SEVERITY_CODE) ? $conf->global->MAIN_EMAILCOLLECTOR_TICKET_SEVERITY_CODE : dol_getIdFromCode($this->db, 1, 'c_ticket_severity', 'use_default', 'code', 1)); - $tickettocreate->origin_email = $from; - $tickettocreate->fk_user_create = $user->id; - $tickettocreate->datec = $date; - $tickettocreate->fk_project = $projectstatic->id; - $tickettocreate->notify_tiers_at_create = 0; - $tickettocreate->note_private = $descriptionfull; - $tickettocreate->entity = $conf->entity; - $tickettocreate->email_msgid = $msgid; - //$tickettocreate->fk_contact = $contactstatic->id; - - $savesocid = $tickettocreate->socid; - - // Overwrite values with values extracted from source email. - // This may overwrite any $projecttocreate->xxx properties. - $errorforthisaction = $this->overwritePropertiesOfObject($tickettocreate, $operation['actionparam'], $messagetext, $subject, $header); - - // Set ticket ref if not yet defined - if (empty($tickettocreate->ref)) { - // Get next Ref - $defaultref = ''; - $modele = empty($conf->global->TICKET_ADDON) ? 'mod_ticket_simple' : $conf->global->TICKET_ADDON; - - // Search template files - $file = ''; $classname = ''; $filefound = 0; $reldir = ''; - $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); - foreach ($dirmodels as $reldir) { - $file = dol_buildpath($reldir."core/modules/ticket/".$modele.'.php', 0); - if (file_exists($file)) { - $filefound = 1; - $classname = $modele; - break; - } - } - - if ($filefound) { - if ($savesocid > 0) { - if ($savesocid != $tickettocreate->socid) { + $this->error = 'Failed to create project: Can\'t get a valid value for the field ref with numbering template = '.$modele.', thirdparty id = '.$thirdpartystatic->id; + } else { + // Create project + $result = $projecttocreate->create($user); + if ($result <= 0) { $errorforactions++; - setEventMessages('You loaded a thirdparty (id='.$savesocid.') and you force another thirdparty id (id='.$tickettocreate->socid.') by setting socid in operation with a different value', null, 'errors'); - } - } else { - if ($tickettocreate->socid > 0) { - $thirdpartystatic->fetch($tickettocreate->socid); - } - } + $this->error = 'Failed to create project: '.$langs->trans($projecttocreate->error); + $this->errors = $projecttocreate->errors; + } else { + if ($attachments) { + $destdir = $conf->project->dir_output.'/'.$projecttocreate->ref; + if (!dol_is_dir($destdir)) { + dol_mkdir($destdir); + } + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + foreach ($attachments as $attachment) { + $attachment->save($destdir.'/'); + } + } else { + $this->getmsg($connection, $imapemail, $destdir); + } - $result = dol_include_once($reldir."core/modules/ticket/".$modele.'.php'); - $modModuleToUseForNextValue = new $classname; - $defaultref = $modModuleToUseForNextValue->getNextValue(($thirdpartystatic->id > 0 ? $thirdpartystatic : null), $tickettocreate); - } - $tickettocreate->ref = $defaultref; - } - - if ($errorforthisaction) { - $errorforactions++; - } else { - if (is_numeric($tickettocreate->ref) && $tickettocreate->ref <= 0) { - $errorforactions++; - $this->error = 'Failed to create ticket: Can\'t get a valid value for the field ref with numbering template = '.$modele.', thirdparty id = '.$thirdpartystatic->id; - } else { - // Create project - $result = $tickettocreate->create($user); - if ($result <= 0) { - $errorforactions++; - $this->error = 'Failed to create ticket: '.$langs->trans($tickettocreate->error); - $this->errors = $tickettocreate->errors; - } else { - if ($attachments) { - $destdir = $conf->ticket->dir_output.'/'.$tickettocreate->ref; - if (!dol_is_dir($destdir)) { - dol_mkdir($destdir); - $this->getmsg($connection, $imapemail, $destdir); + $operationslog .= '
    Project created with attachments -> id='.dol_escape_htmltag($projecttocreate->id); + } else { + $operationslog .= '
    Project created without attachments -> id='.dol_escape_htmltag($projecttocreate->id); } } } } } - } - } elseif ($operation['type'] == 'candidature') { - // Create candidature - $candidaturetocreate = new RecruitmentCandidature($this->db); + } elseif ($operation['type'] == 'ticket') { + // Create ticket + $tickettocreate = new Ticket($this->db); - $alreadycreated = $candidaturetocreate->fetch(0, '', $msgid); - if ($alreadycreated == 0) { - $description = $descriptiontitle; - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $descriptionmeta); - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $messagetext); + $alreadycreated = $tickettocreate->fetch(0, '', '', $msgid); + if ($alreadycreated == 0) { + if ($thirdpartystatic->id > 0) { + $tickettocreate->socid = $thirdpartystatic->id; + $tickettocreate->fk_soc = $thirdpartystatic->id; + if ($thirdpartyfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); + } + } + if ($contactstatic->id > 0) { + $tickettocreate->contact_id = $contactstatic->id; + if ($contactfoundby) { + $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); + } + } - $descriptionfull = $description; - $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); - $descriptionfull = dol_concatdesc($descriptionfull, $header); + $description = $descriptiontitle; + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $descriptionmeta); + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $messagetext); - $candidaturetocreate->subject = $subject; - $candidaturetocreate->message = $description; - $candidaturetocreate->type_code = 0; - $candidaturetocreate->category_code = null; - $candidaturetocreate->severity_code = null; - $candidaturetocreate->email = $from; - //$candidaturetocreate->lastname = $langs->trans("Anonymous").' - '.$from; - $candidaturetocreate->fk_user_creat = $user->id; - $candidaturetocreate->date_creation = $date; - $candidaturetocreate->fk_project = $projectstatic->id; - $candidaturetocreate->description = $description; - $candidaturetocreate->note_private = $descriptionfull; - $candidaturetocreate->entity = $conf->entity; - $candidaturetocreate->email_msgid = $msgid; - $candidaturetocreate->status = $candidaturetocreate::STATUS_DRAFT; - //$candidaturetocreate->fk_contact = $contactstatic->id; + $descriptionfull = $description; + if (empty($conf->global->MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER)) { + $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); + $descriptionfull = dol_concatdesc($descriptionfull, $header); + } - // Overwrite values with values extracted from source email. - // This may overwrite any $projecttocreate->xxx properties. - $errorforthisaction = $this->overwritePropertiesOfObject($candidaturetocreate, $operation['actionparam'], $messagetext, $subject, $header); + $tickettocreate->subject = $subject; + $tickettocreate->message = $description; + $tickettocreate->type_code = (!empty($conf->global->MAIN_EMAILCOLLECTOR_TICKET_TYPE_CODE) ? $conf->global->MAIN_EMAILCOLLECTOR_TICKET_TYPE_CODE : dol_getIdFromCode($this->db, 1, 'c_ticket_type', 'use_default', 'code', 1)); + $tickettocreate->category_code = (!empty($conf->global->MAIN_EMAILCOLLECTOR_TICKET_CATEGORY_CODE) ? $conf->global->MAIN_EMAILCOLLECTOR_TICKET_CATEGORY_CODE : dol_getIdFromCode($this->db, 1, 'c_ticket_category', 'use_default', 'code', 1)); + $tickettocreate->severity_code = (!empty($conf->global->MAIN_EMAILCOLLECTOR_TICKET_SEVERITY_CODE) ? $conf->global->MAIN_EMAILCOLLECTOR_TICKET_SEVERITY_CODE : dol_getIdFromCode($this->db, 1, 'c_ticket_severity', 'use_default', 'code', 1)); + $tickettocreate->origin_email = $from; + $tickettocreate->fk_user_create = $user->id; + $tickettocreate->datec = dol_now(); + $tickettocreate->fk_project = $projectstatic->id; + $tickettocreate->notify_tiers_at_create = 0; + $tickettocreate->note_private = $descriptionfull; + $tickettocreate->entity = $conf->entity; + $tickettocreate->email_msgid = $msgid; + $tickettocreate->email_date = $date; + //$tickettocreate->fk_contact = $contactstatic->id; - // Set candidature ref if not yet defined - /*if (empty($candidaturetocreate->ref)) We do not need this because we create object in draft status - { + $savesocid = $tickettocreate->socid; + + // Overwrite values with values extracted from source email. + // This may overwrite any $projecttocreate->xxx properties. + $errorforthisaction = $this->overwritePropertiesOfObject($tickettocreate, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + + // Set ticket ref if not yet defined + if (empty($tickettocreate->ref)) { + // Get next Ref + $defaultref = ''; + $modele = empty($conf->global->TICKET_ADDON) ? 'mod_ticket_simple' : $conf->global->TICKET_ADDON; + + // Search template files + $file = ''; $classname = ''; $filefound = 0; $reldir = ''; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { + $file = dol_buildpath($reldir."core/modules/ticket/".$modele.'.php', 0); + if (file_exists($file)) { + $filefound = 1; + $classname = $modele; + break; + } + } + + if ($filefound) { + if ($savesocid > 0) { + if ($savesocid != $tickettocreate->socid) { + $errorforactions++; + setEventMessages('You loaded a thirdparty (id='.$savesocid.') and you force another thirdparty id (id='.$tickettocreate->socid.') by setting socid in operation with a different value', null, 'errors'); + } + } else { + if ($tickettocreate->socid > 0) { + $thirdpartystatic->fetch($tickettocreate->socid); + } + } + + $result = dol_include_once($reldir."core/modules/ticket/".$modele.'.php'); + $modModuleToUseForNextValue = new $classname; + $defaultref = $modModuleToUseForNextValue->getNextValue(($thirdpartystatic->id > 0 ? $thirdpartystatic : null), $tickettocreate); + } + $tickettocreate->ref = $defaultref; + } + + if ($errorforthisaction) { + $errorforactions++; + } else { + if (is_numeric($tickettocreate->ref) && $tickettocreate->ref <= 0) { + $errorforactions++; + $this->error = 'Failed to create ticket: Can\'t get a valid value for the field ref with numbering template = '.$modele.', thirdparty id = '.$thirdpartystatic->id; + } else { + // Create project + $result = $tickettocreate->create($user); + if ($result <= 0) { + $errorforactions++; + $this->error = 'Failed to create ticket: '.$langs->trans($tickettocreate->error); + $this->errors = $tickettocreate->errors; + } else { + if ($attachments) { + $destdir = $conf->ticket->dir_output.'/'.$tickettocreate->ref; + if (!dol_is_dir($destdir)) { + dol_mkdir($destdir); + } + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + foreach ($attachments as $attachment) { + $attachment->save($destdir.'/'); + } + } else { + $this->getmsg($connection, $imapemail, $destdir); + } + + $operationslog .= '
    Ticket created with attachments -> id='.dol_escape_htmltag($tickettocreate->id); + } else { + $operationslog .= '
    Ticket created without attachments -> id='.dol_escape_htmltag($tickettocreate->id); + } + } + } + } + } + } elseif ($operation['type'] == 'candidature') { + // Create candidature + $candidaturetocreate = new RecruitmentCandidature($this->db); + + $alreadycreated = $candidaturetocreate->fetch(0, '', $msgid); + if ($alreadycreated == 0) { + $description = $descriptiontitle; + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $descriptionmeta); + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $messagetext); + + $descriptionfull = $description; + $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); + $descriptionfull = dol_concatdesc($descriptionfull, $header); + + $candidaturetocreate->subject = $subject; + $candidaturetocreate->message = $description; + $candidaturetocreate->type_code = 0; + $candidaturetocreate->category_code = null; + $candidaturetocreate->severity_code = null; + $candidaturetocreate->email = $from; + //$candidaturetocreate->lastname = $langs->trans("Anonymous").' - '.$from; + $candidaturetocreate->fk_user_creat = $user->id; + $candidaturetocreate->date_creation = dol_now(); + $candidaturetocreate->fk_project = $projectstatic->id; + $candidaturetocreate->description = $description; + $candidaturetocreate->note_private = $descriptionfull; + $candidaturetocreate->entity = $conf->entity; + $candidaturetocreate->email_msgid = $msgid; + $candidaturetocreate->email_date = $date; // date of email + $candidaturetocreate->status = $candidaturetocreate::STATUS_DRAFT; + //$candidaturetocreate->fk_contact = $contactstatic->id; + + // Overwrite values with values extracted from source email. + // This may overwrite any $projecttocreate->xxx properties. + $errorforthisaction = $this->overwritePropertiesOfObject($candidaturetocreate, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + + // Set candidature ref if not yet defined + /*if (empty($candidaturetocreate->ref)) We do not need this because we create object in draft status + { // Get next Ref $defaultref = ''; $modele = empty($conf->global->CANDIDATURE_ADDON) ? 'mod_candidature_simple' : $conf->global->CANDIDATURE_ADDON; @@ -2377,73 +2741,83 @@ class EmailCollector extends CommonObject $defaultref = $modModuleToUseForNextValue->getNextValue(($thirdpartystatic->id > 0 ? $thirdpartystatic : null), $tickettocreate); } $candidaturetocreate->ref = $defaultref; - }*/ + }*/ - if ($errorforthisaction) { - $errorforactions++; - } else { - // Create project - $result = $candidaturetocreate->create($user); - if ($result <= 0) { + if ($errorforthisaction) { $errorforactions++; - $this->error = 'Failed to create ticket: '.join(', ', $candidaturetocreate->errors); - $this->errors = $candidaturetocreate->errors; + } else { + // Create project + $result = $candidaturetocreate->create($user); + if ($result <= 0) { + $errorforactions++; + $this->error = 'Failed to create ticket: '.join(', ', $candidaturetocreate->errors); + $this->errors = $candidaturetocreate->errors; + } + + $operationslog .= '
    Candidature created without attachments -> id='.dol_escape_htmltag($candidaturetocreate->id); } } - } - } elseif (substr($operation['type'], 0, 4) == 'hook') { - // Create event specific on hook - // this code action is hook..... for support this call - if (!is_object($hookmanager)) { - include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; - $hookmanager = new HookManager($this->db); + } elseif (substr($operation['type'], 0, 4) == 'hook') { + // Create event specific on hook + // this code action is hook..... for support this call + if (!is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($this->db); + } + + $parameters = array( + 'connection'=> $connection, + 'imapemail'=>$imapemail, + 'overview'=>$overview, + + 'from' => $from, + 'fromtext' => $fromtext, + + 'actionparam'=> $operation['actionparam'], + + 'thirdpartyid' => $thirdpartyid, + 'objectid'=> $objectid, + 'objectemail'=> $objectemail, + + 'messagetext'=>$messagetext, + 'subject'=>$subject, + 'header'=>$header, + 'attachments'=>$attachments, + ); + $reshook = $hookmanager->executeHooks('doCollectImapOneCollector', $parameters, $this, $operation['type']); + + if ($reshook < 0) { + $errorforthisaction++; + $this->error = $hookmanager->resPrint; + } + if ($errorforthisaction) { + $errorforactions++; + $operationslog .= '
    Hook doCollectImapOneCollector executed with error'; + } else { + $operationslog .= '
    Hook doCollectImapOneCollector executed without error'; + } } - $parameters = array( - 'connection'=> $connection, - 'imapemail'=>$imapemail, - 'overview'=>$overview, - - 'from' => $from, - 'fromtext' => $fromtext, - - 'actionparam'=> $operation['actionparam'], - - 'thirdpartyid' => $thirdpartyid, - 'objectid'=> $objectid, - 'objectemail'=> $objectemail, - - 'messagetext'=>$messagetext, - 'subject'=>$subject, - 'header'=>$header, - 'attachments'=>$attachments, - ); - $reshook = $hookmanager->executeHooks('doCollectOneCollector', $parameters, $this, $operation['type']); - - if ($reshook < 0) { - $errorforthisaction++; - $this->error = $hookmanager->resPrint; + if (!$errorforactions) { + $nbactiondoneforemail++; } - if ($errorforthisaction) { - $errorforactions++; - } - } - - if (!$errorforactions) { - $nbactiondoneforemail++; } } // Error for email or not ? if (!$errorforactions) { - if ($targetdir) { - dol_syslog("EmailCollector::doCollectOneCollector move message ".$imapemail." to ".$connectstringtarget, LOG_DEBUG); - $res = imap_mail_move($connection, $imapemail, $targetdir, 0); - if ($res == false) { - $errorforemail++; - $this->error = imap_last_error(); - $this->errors[] = $this->error; - dol_syslog(imap_last_error()); + if ($targetdir && empty($mode)) { + if (empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + dol_syslog("EmailCollector::doCollectOneCollector move message ".$imapemail." to ".$connectstringtarget, LOG_DEBUG); + $res = imap_mail_move($connection, $imapemail, $targetdir, 0); + if ($res == false) { + $errorforemail++; + $this->error = imap_last_error(); + $this->errors[] = $this->error; + dol_syslog(imap_last_error()); + } + } else { + // TODO Move mail using PHP-IMAP } } else { dol_syslog("EmailCollector::doCollectOneCollector message ".$imapemail." to ".$connectstringtarget." was set to read", LOG_DEBUG); @@ -2452,6 +2826,7 @@ class EmailCollector extends CommonObject $errorforemail++; } + unset($objectemail); unset($projectstatic); unset($thirdpartystatic); @@ -2463,7 +2838,11 @@ class EmailCollector extends CommonObject $nbactiondone += $nbactiondoneforemail; $nbemailok++; - $this->db->commit(); + if (empty($mode)) { + $this->db->commit(); + } else { + $this->db->rollback(); + } // Stop the loop to process email if we reach maximum collected per collect if ($this->maxemailpercollect > 0 && $nbemailok >= $this->maxemailpercollect) { @@ -2484,30 +2863,41 @@ class EmailCollector extends CommonObject $output = $langs->trans('NoNewEmailToProcess'); } - imap_expunge($connection); // To validate any move - - imap_close($connection); + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + $client->disconnect(); + } else { + if (empty($mode)) { + imap_expunge($connection); // To validate any move + } + imap_close($connection); + } $this->datelastresult = $now; $this->lastresult = $output; - $this->debuginfo = 'IMAP search string used : '.$search; + $this->debuginfo .= 'IMAP search string used : '.$search; if ($searchhead) { - $this->debuginfo .= '
    Then search string into email header : '.$searchhead; + $this->debuginfo .= '
    Then search string into email header : '.dol_escape_htmltag($searchhead); + } + if ($operationslog) { + $this->debuginfo .= $operationslog; } - if (!$error) { + if (empty($error) && empty($mode)) { $this->datelastok = $now; } if (!empty($this->errors)) { - $this->lastresult .= " - ".join(" - ", $this->errors); + $this->lastresult .= "
    ".join("
    ", $this->errors); } $this->codelastresult = ($error ? 'KO' : 'OK'); - $this->update($user); + + if (empty($mode)) { + $this->update($user); + } dol_syslog("EmailCollector::doCollectOneCollector end", LOG_DEBUG); - return $error ?-1 : 1; + return $error ? -1 : 1; } @@ -2563,6 +2953,7 @@ class EmailCollector extends CommonObject 2.2.1 text/plain 2.2.2 text/html */ + /** * Sub function for getpart(). Only called by createPartArray() and itself. * @@ -2634,13 +3025,14 @@ class EmailCollector extends CommonObject * Check if the same file name already exists in the upload folder, * append increment number to the original filename */ - while (file_exists($destdir."/" . $file_name . "." . $extension)) { - $file_name = (string) $file_name_original . ' (' . $num . ')'; + while (file_exists($destdir."/".$file_name.".".$extension)) { + $file_name = $file_name_original . ' (' . $num . ')'; $file_name_complete = $file_name . "." . $extension; $destination = $destdir.'/'.$file_name_complete; $num++; } + $destination = dol_sanitizePathName($destination); file_put_contents($destination, $data); } @@ -2681,10 +3073,10 @@ class EmailCollector extends CommonObject /** * Converts a string from one encoding to another. * - * @param string $string String to convert - * @param string $fromEncoding String encoding - * @param string $toEncoding String return encoding - * @return string Converted string if conversion was successful, or the original string if not + * @param string $string String to convert + * @param string $fromEncoding String encoding + * @param string $toEncoding String return encoding + * @return string Converted string if conversion was successful, or the original string if not * @throws Exception */ protected function convertStringEncoding($string, $fromEncoding, $toEncoding = 'UTF-8') diff --git a/htdocs/emailcollector/class/emailcollectoraction.class.php b/htdocs/emailcollector/class/emailcollectoraction.class.php index 5ce35541a16..e43a86da515 100644 --- a/htdocs/emailcollector/class/emailcollectoraction.class.php +++ b/htdocs/emailcollector/class/emailcollectoraction.class.php @@ -85,7 +85,7 @@ class EmailCollectorAction extends CommonObject 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",), 'fk_emailcollector' => array('type'=>'integer', 'label'=>'Id of emailcollector', 'foreignkey'=>'emailcollector.rowid'), 'type' => array('type'=>'varchar(128)', 'label'=>'Type', 'enabled'=>1, 'visible'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1), - 'actionparam' => array('type'=>'varchar(255)', 'label'=>'ParamForAction', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'notnull'=>-1), + 'actionparam' => array('type'=>'text', 'label'=>'ParamForAction', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'notnull'=>-1), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500, 'notnull'=>1,), 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>1,), 'fk_user_creat' => array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'position'=>510, 'notnull'=>1, 'foreignkey'=>'llx_user.rowid',), @@ -158,7 +158,7 @@ class EmailCollectorAction extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -271,9 +271,9 @@ class EmailCollectorAction extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - if ($result > 0 && !empty($this->table_element_line)) { - $this->fetchLines(); - } + // if ($result > 0 && !empty($this->table_element_line)) { + // $this->fetchLinesCommon(); + // } return $result; } @@ -484,27 +484,11 @@ class EmailCollectorAction extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/emailcollector/class/emailcollectorfilter.class.php b/htdocs/emailcollector/class/emailcollectorfilter.class.php index ec42ce53a34..cff80aa4153 100644 --- a/htdocs/emailcollector/class/emailcollectorfilter.class.php +++ b/htdocs/emailcollector/class/emailcollectorfilter.class.php @@ -127,7 +127,7 @@ class EmailCollectorFilter extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -158,6 +158,7 @@ class EmailCollectorFilter extends CommonObject public function create(User $user, $notrigger = false) { global $langs; + if (empty($this->type)) { $langs->load("errors"); $this->errors[] = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")); @@ -169,6 +170,12 @@ class EmailCollectorFilter extends CommonObject return -2; } + if (in_array($this->type, array('to')) && strpos($this->rulevalue, '+') != false) { + $langs->load("errors"); + $this->errors[] = $langs->trans("ErrorCharPlusNotSupportedByImapForSearch"); + return -3; + } + return $this->createCommon($user, $notrigger); } @@ -458,27 +465,11 @@ class EmailCollectorFilter extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/eventorganization/class/conferenceorbooth.class.php b/htdocs/eventorganization/class/conferenceorbooth.class.php index 292b55d0dc9..556443a25e8 100644 --- a/htdocs/eventorganization/class/conferenceorbooth.class.php +++ b/htdocs/eventorganization/class/conferenceorbooth.class.php @@ -105,9 +105,9 @@ class ConferenceOrBooth extends ActionComm public $fields = array( 'id' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), 'ref' => array('type'=>'integer', 'label'=>'Ref', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>2, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), - 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>0, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax125', 'help'=>"Help text", 'showoncombobox'=>'1',), - 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'help'=>"LinkToThirparty", 'picto'=>'company', 'css'=>'tdoverflowmax150 maxwidth500'), - 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1:t.usage_organize_event=1', 'label'=>'Project', 'enabled'=>'$conf->projet->enabled', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'picto'=>'project', 'css'=>'tdoverflowmax150 maxwidth500'), + 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>0, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax125', 'help'=>"OrganizationEvenLabelName", 'showoncombobox'=>'1',), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'help'=>"OrganizationEventLinkToThirdParty", 'picto'=>'company', 'css'=>'tdoverflowmax150 maxwidth500'), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1:t.usage_organize_event=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'picto'=>'project', 'css'=>'tdoverflowmax150 maxwidth500'), 'note' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>1), 'fk_action' => array('type'=>'sellist:c_actioncomm:libelle:id::module LIKE (\'%@eventorganization\')', 'label'=>'Format', 'enabled'=>'1', 'position'=>60, 'notnull'=>1, 'visible'=>1, 'css'=>'width300'), 'datep' => array('type'=>'datetime', 'label'=>'DateStart', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'2',), @@ -152,7 +152,7 @@ class ConferenceOrBooth extends ActionComm if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['id']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -217,7 +217,6 @@ class ConferenceOrBooth extends ActionComm $this->socid = $this->fk_soc; $this->datef = $this->datep2; $this->note_private = $this->note; - $this->fk_user_author = $this->fk_user_author; } /** @@ -444,8 +443,8 @@ class ConferenceOrBooth extends ActionComm return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->eventorganization_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->eventorganization_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -468,8 +467,8 @@ class ConferenceOrBooth extends ActionComm return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->eventorganization_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->eventorganization_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -492,8 +491,8 @@ class ConferenceOrBooth extends ActionComm return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->eventorganization_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->eventorganization_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -679,14 +678,11 @@ class ConferenceOrBooth extends ActionComm if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -719,8 +715,8 @@ class ConferenceOrBooth extends ActionComm $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_conferenceorbooth = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/eventorganization/class/conferenceorboothattendee.class.php b/htdocs/eventorganization/class/conferenceorboothattendee.class.php index 533c9f4e8c0..abb0046606c 100644 --- a/htdocs/eventorganization/class/conferenceorboothattendee.class.php +++ b/htdocs/eventorganization/class/conferenceorboothattendee.class.php @@ -103,12 +103,13 @@ class ConferenceOrBoothAttendee extends CommonObject public $fields = array( 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'visible'=>2, 'index'=>1, 'comment'=>"Reference of object"), - 'fk_actioncomm' => array('type'=>'integer:ActionComm:comm/action/class/actioncomm.class.php:1', 'label'=>'ConferenceOrBooth', 'enabled'=>'1', 'position'=>55, 'notnull'=>0, 'visible'=>0, 'index'=>1, 'picto'=>'agenda'), - 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>'$conf->projet->enabled', 'position'=>20, 'notnull'=>1, 'visible'=>0, 'index'=>1, 'picto'=>'project', 'css'=>'tdoverflowmax150 maxwidth500'), + 'fk_actioncomm' => array('type'=>'integer:ActionComm:comm/action/class/actioncomm.class.php:1', 'label'=>'ConferenceOrBooth', 'enabled'=>'1', 'position'=>15, 'notnull'=>0, 'visible'=>0, 'index'=>1, 'picto'=>'agenda'), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'position'=>20, 'notnull'=>1, 'visible'=>0, 'index'=>1, 'picto'=>'project', 'css'=>'tdoverflowmax150 maxwidth500'), 'email' => array('type'=>'mail', 'label'=>'EmailAttendee', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'autofocusoncreate'=>1, 'searchall'=>1), 'firstname' => array('type'=>'varchar(100)', 'label'=>'Firstname', 'enabled'=>'1', 'position'=>31, 'notnull'=>0, 'visible'=>1, 'index'=>1, 'searchall'=>1), 'lastname' => array('type'=>'varchar(100)', 'label'=>'Lastname', 'enabled'=>'1', 'position'=>32, 'notnull'=>0, 'visible'=>1, 'index'=>1, 'searchall'=>1), 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status = 1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'position'=>40, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'help'=>"OrganizationEventLinkToThirdParty", 'picto'=>'company', 'css'=>'tdoverflowmax150 maxwidth500'), + 'email_company' => array('type'=>'mail', 'label'=>'EmailCompany', 'enabled'=>'1', 'position'=>41, 'notnull'=>0, 'visible'=>-2, 'searchall'=>1), 'date_subscription' => array('type'=>'datetime', 'label'=>'DateOfRegistration', 'enabled'=>'1', 'position'=>56, 'notnull'=>1, 'visible'=>1, 'showoncombobox'=>'1',), 'fk_invoice' => array('type'=>'integer:Facture:compta/facture/class/facture.class.php', 'label'=>'Invoice', 'enabled'=>'$conf->facture->enabled', 'position'=>57, 'notnull'=>0, 'visible'=>-1, 'index'=>0, 'picto'=>'bill', 'css'=>'tdoverflowmax150 maxwidth500'), 'amount' => array('type'=>'price', 'label'=>'AmountPaid', 'enabled'=>'1', 'position'=>57, 'notnull'=>0, 'visible'=>1, 'default'=>'null', 'isameasure'=>'1', 'help'=>"AmountOfSubscriptionPaid",), @@ -122,14 +123,17 @@ class ConferenceOrBoothAttendee extends CommonObject 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), 'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'default'=>0, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '9'=>'Canceled'),), + 'ip' => array('type'=>'varchar(250)', 'label'=>'Ip', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), ); public $rowid; public $ref; - public $fk_soc; public $fk_actioncomm; + public $fk_project; public $email; public $firstname; public $lastname; + public $fk_soc; + public $email_company; public $date_subscription; public $fk_invoice; public $amount; @@ -196,7 +200,7 @@ class ConferenceOrBoothAttendee extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -541,8 +545,8 @@ class ConferenceOrBoothAttendee extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->conferenceorboothattendee->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->conferenceorboothattendee->conferenceorboothattendee_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->conferenceorboothattendee->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->conferenceorboothattendee->conferenceorboothattendee_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -684,8 +688,8 @@ class ConferenceOrBoothAttendee extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->eventorganization_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->eventorganization_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -708,8 +712,8 @@ class ConferenceOrBoothAttendee extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->eventorganization_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->eventorganization_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -732,8 +736,8 @@ class ConferenceOrBoothAttendee extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->eventorganization->eventorganization_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->eventorganization->eventorganization_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -947,27 +951,11 @@ class ConferenceOrBoothAttendee extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -1114,18 +1102,18 @@ class ConferenceOrBoothAttendee extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'eventorganization_conferenceorboothattendee' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/eventorganization/conferenceorbooth_card.php b/htdocs/eventorganization/conferenceorbooth_card.php index 0d5991bb0ac..9928b8af33b 100644 --- a/htdocs/eventorganization/conferenceorbooth_card.php +++ b/htdocs/eventorganization/conferenceorbooth_card.php @@ -17,27 +17,29 @@ */ /** - * \file htdocs/eventorganization/conferenceorbooth_card.php - * \ingroup eventorganization - * \brief Page to create/edit/view conferenceorbooth + * \file htdocs/eventorganization/conferenceorbooth_card.php + * \ingroup eventorganization + * \brief Page to create/edit/view conferenceorbooth */ -require '../main.inc.php'; +// Load Dolibarr environment +require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; global $dolibarr_main_url_root; // Load translation files required by the page -$langs->loadLangs(array("eventorganization", "projects")); +$langs->loadLangs(array('eventorganization', 'projects')); +// Get parameters $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); @@ -45,7 +47,6 @@ $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'co $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -// Get parameters $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $withproject = GETPOST('withproject', 'int'); @@ -79,6 +80,7 @@ if (empty($action) && empty($id) && empty($ref)) { // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. +// Permissions $permissiontoread = $user->rights->eventorganization->read; $permissiontoadd = $user->rights->eventorganization->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $permissiontodelete = $user->rights->eventorganization->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); @@ -185,7 +187,9 @@ if (!empty($withproject)) { // Tabs for project $tab = 'eventorganisation'; $withProjectUrl = "&withproject=1"; + $head = project_prepare_head($projectstatic); + print dol_get_fiche_head($head, $tab, $langs->trans("Project"), -1, ($projectstatic->public ? 'projectpub' : 'project'), 0, '', ''); $param = ($mode == 'mine' ? '&mode=mine' : ''); @@ -199,7 +203,7 @@ if (!empty($withproject)) { $morehtmlref .= $projectstatic->title; // Thirdparty if (isset($projectstatic->thirdparty->id) && $projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -218,7 +222,7 @@ if (!empty($withproject)) { print ''; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -241,7 +245,7 @@ if (!empty($withproject)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -468,6 +472,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $res = $object->fetch_optionals(); $head = conferenceorboothPrepareHead($object, $withproject); + print dol_get_fiche_head($head, 'card', $langs->trans("ConferenceOrBooth"), -1, $object->picto); $formconfirm = ''; @@ -560,16 +565,16 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (empty($reshook)) { // Send if (empty($user->socid)) { - print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=presend&token='.newToken().'&mode=init#formmailbeforetitle'); + print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=presend&token='.newToken().'&mode=init#formmailbeforetitle'); } - print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=edit&token='.newToken().'', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=edit&token='.newToken(), '', $permissiontoadd); // Clone - print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&socid='.$object->socid.'&action=clone&token='.newToken().'&object=scrumsprint', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('ToClone'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&socid='.$object->socid.'&action=clone&token='.newToken().'&object=scrumsprint', '', $permissiontoadd); // Delete (need delete permission, or if draft, just need create/modify permission) - print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&action=delete&token='.newToken().'', '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&action=delete&token='.newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); } print ''."\n"; } diff --git a/htdocs/eventorganization/conferenceorbooth_contact.php b/htdocs/eventorganization/conferenceorbooth_contact.php index da6c0f8ee04..7810114aec1 100644 --- a/htdocs/eventorganization/conferenceorbooth_contact.php +++ b/htdocs/eventorganization/conferenceorbooth_contact.php @@ -22,21 +22,23 @@ * \brief Tab for contacts linked to ConferenceOrBooth */ + +// Load Dolibarr environment require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + // Load translation files required by the page -$langs->loadLangs(array("eventorganization", "projects", "companies", "other", "mails")); +$langs->loadLangs(array('companies', 'eventorganization', 'mails', 'others', 'projects')); +// Variables GET $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $lineid = GETPOST('lineid', 'int'); @@ -51,12 +53,14 @@ $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); $withproject = GETPOST('withproject', 'int'); + // Initialize technical objects $object = new ConferenceOrBooth($db); $extrafields = new ExtraFields($db); $projectstatic = new Project($db); $diroutputmassaction = $conf->eventorganization->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('conferenceorboothcontact', 'globalcard')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -69,6 +73,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ if ($user->socid > 0) { accessforbidden(); } + $isdraft = (($object->status== $object::STATUS_DRAFT) ? 1 : 0); $result = restrictedArea($user, 'eventorganization', $object->id, '', '', 'fk_soc', 'rowid', $isdraft); @@ -182,7 +187,7 @@ if (!empty($withproject)) { $morehtmlref .= $projectstatic->title; // Thirdparty if (isset($projectstatic->thirdparty->id) && $projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -201,7 +206,7 @@ if (!empty($withproject)) { print '
    '; print $langs->trans("Usage"); print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -224,7 +229,7 @@ if (!empty($withproject)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -392,7 +397,7 @@ if ($object->id) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -413,7 +418,7 @@ if ($object->id) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); diff --git a/htdocs/eventorganization/conferenceorbooth_document.php b/htdocs/eventorganization/conferenceorbooth_document.php index 739e6f81036..78f74ded42d 100644 --- a/htdocs/eventorganization/conferenceorbooth_document.php +++ b/htdocs/eventorganization/conferenceorbooth_document.php @@ -22,21 +22,25 @@ * \brief Tab for documents linked to ConferenceOrBooth */ +// Load Dolibarr environment require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; + +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + // Load translation files required by the page $langs->loadLangs(array("eventorganization", "projects", "companies", "other", "mails")); +// Get Parameters $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm'); $cancel = GETPOST('cancel', 'aZ09'); @@ -49,8 +53,6 @@ $ref = GETPOST('ref', 'alpha'); $withproject = GETPOST('withproject', 'int'); $project_ref = GETPOST('project_ref', 'alpha'); - -// Get parameters $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -58,7 +60,7 @@ $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("pa if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $liste_limit * $page; +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortorder) { @@ -88,6 +90,7 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->eventorganization->multidir_output[$object->entity ? $object->entity : $conf->entity]."/conferenceorbooth/".get_exdir(0, 0, 0, 1, $object); } +// Permissions $permissiontoread = $user->rights->eventorganization->read; $permissiontoadd = $user->rights->eventorganization->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $permissiontodelete = $user->rights->eventorganization->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); @@ -157,7 +160,7 @@ if (!empty($withproject)) { $morehtmlref .= $projectstatic->title; // Thirdparty if (isset($projectstatic->thirdparty->id) && $projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -176,7 +179,7 @@ if (!empty($withproject)) { print '
    '; print $langs->trans("Usage"); print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -199,7 +202,7 @@ if (!empty($withproject)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); diff --git a/htdocs/eventorganization/conferenceorbooth_list.php b/htdocs/eventorganization/conferenceorbooth_list.php index 958d1ab897d..dd7bfd93a47 100644 --- a/htdocs/eventorganization/conferenceorbooth_list.php +++ b/htdocs/eventorganization/conferenceorbooth_list.php @@ -17,21 +17,26 @@ */ /** - * \file conferenceorbooth_list.php - * \ingroup eventorganization - * \brief List page for conferenceorbooth + * \file htdocs/eventorganization/conferenceorbooth_list.php + * \ingroup eventorganization + * \brief List page for conferenceorbooth */ + +// Load Dolibarr environment require '../main.inc.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; +require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; +require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; + +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; global $dolibarr_main_url_root; @@ -41,6 +46,7 @@ global $dolibarr_main_url_root; // Load translation files required by the page $langs->loadLangs(array("eventorganization", "other", "projects", "companies")); +// Get Parameters $action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? @@ -251,7 +257,7 @@ if ($projectid > 0 || $projectref) { } $help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos"; - $title = $langs->trans("Project") . ' - ' . $langs->trans("ListOfConferencesOrBooths") . ' - ' . $project->ref . ' ' . $project->name; + $title = $langs->trans("Project") . ' - ' . $langs->trans("EventOrganizationConfOrBoothes") . ' - ' . $project->ref . ' ' . $project->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $project->name) { $title = $project->ref . ' ' . $project->name . ' - ' . $langs->trans("ListOfConferencesOrBooths"); } @@ -281,7 +287,7 @@ if ($projectid > 0) { $morehtmlref .= $project->title; // Thirdparty if (isset($project->thirdparty->id) && $project->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$project->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$project->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -300,7 +306,7 @@ if ($projectid > 0) { print '
    '; print $langs->trans("Usage"); print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -323,7 +329,7 @@ if ($projectid > 0) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '').'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -342,8 +348,15 @@ if ($projectid > 0) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; + // Location event + print ''; + // Other attributes $cols = 2; $objectconf = $object; @@ -652,7 +675,7 @@ print ''; print ''; print ''; -$title = $langs->trans("ListOfConferencesOrBooths"); +$title = $langs->trans("EventOrganizationConfOrBoothes"); $newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/eventorganization/conferenceorbooth_card.php?action=create'.(!empty($project->id)?'&withproject=1&fk_project='.$project->id:'').(!empty($project->socid)?'&fk_soc='.$project->socid:'').'&backtopage='.urlencode($_SERVER['PHP_SELF']).(!empty($project->id)?'?projectid='.$project->id:''), '', $permissiontoadd); diff --git a/htdocs/eventorganization/conferenceorboothattendee_card.php b/htdocs/eventorganization/conferenceorboothattendee_card.php index b02edfc4a34..9bab2a7f49d 100644 --- a/htdocs/eventorganization/conferenceorboothattendee_card.php +++ b/htdocs/eventorganization/conferenceorboothattendee_card.php @@ -16,20 +16,23 @@ */ /** - * \file conferenceorboothattendee_card.php - * \ingroup eventorganization - * \brief Page to create/edit/view conferenceorboothattendee + * \file htdocs/eventorganization/conferenceorboothattendee_card.php + * \ingroup eventorganization + * \brief Page to create/edit/view conferenceorboothattendee */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Load translation files required by the page @@ -108,6 +111,7 @@ if ($object->fk_project > 0) { $fk_project = $object->fk_project; } +// Permissions $permissiontoread = $user->rights->eventorganization->read; $permissiontoadd = $user->rights->eventorganization->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $permissiontodelete = $user->rights->eventorganization->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); @@ -230,7 +234,7 @@ if (!empty($withproject)) { $morehtmlref .= $projectstatic->title; // Thirdparty if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -249,7 +253,7 @@ if (!empty($withproject)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($project->budget_amount, '')) { + print ''.price($project->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; + } + print '
    '.$langs->trans("Dates").' ('.$langs->trans("Project").')'; $start = dol_print_date($project->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($project->date_end, 'day'); @@ -354,13 +367,23 @@ if ($projectid > 0) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($project->budget_amount, '')) { - print price($project->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + // Date start - end of event + print '
    '.$langs->trans("Dates").' ('.$langs->trans("Event").')'; + $start = dol_print_date($project->date_start_event, 'day'); + print ($start ? $start : '?'); + $end = dol_print_date($project->date_end_event, 'day'); + print ' - '; + print ($end ? $end : '?'); + if ($object->hasDelay()) { + print img_warning("Late"); } print '
    '.$langs->trans("Location").''; + print $project->location; + print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -272,7 +276,7 @@ if (!empty($withproject)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -601,15 +605,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (empty($reshook)) { // Send if (empty($user->socid)) { - print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.(!empty($confOrBooth->id)?'&conforboothid='.$confOrBooth->id:'').(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:'').'&action=presend&token='.newToken().'&mode=init#formmailbeforetitle'); + print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.(!empty($confOrBooth->id)?'&conforboothid='.$confOrBooth->id:'').(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:'').'&action=presend&token='.newToken().'&mode=init#formmailbeforetitle'); } - print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.(!empty($confOrBooth->id)?'&conforboothid='.$confOrBooth->id:'').(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:'').'&action=edit&token='.newToken(), '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.(!empty($confOrBooth->id)?'&conforboothid='.$confOrBooth->id:'').(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:'').'&action=edit&token='.newToken(), '', $permissiontoadd); // Clone - print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&socid='.$object->socid.'&action=clone&token='.newToken().(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:''), '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('ToClone'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&socid='.$object->socid.'&action=clone&token='.newToken().(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:''), '', $permissiontoadd); // Delete (need delete permission, or if draft, just need create/modify permission) - print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=delete&token='.newToken().(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:''), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); + print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=delete&token='.newToken().(!empty($projectstatic->id)?'&fk_project='.$projectstatic->id:''), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); } print ''."\n"; } diff --git a/htdocs/eventorganization/conferenceorboothattendee_list.php b/htdocs/eventorganization/conferenceorboothattendee_list.php index 972e546255f..1bc9c12d4f6 100644 --- a/htdocs/eventorganization/conferenceorboothattendee_list.php +++ b/htdocs/eventorganization/conferenceorboothattendee_list.php @@ -17,21 +17,24 @@ */ /** - * \file conferenceorboothattendee_list.php - * \ingroup eventorganization - * \brief List page for conferenceorboothattendee + * \file htdocs/eventorganization/conferenceorboothattendee_list.php + * \ingroup eventorganization + * \brief List page for conferenceorboothattendee */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; +require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } @@ -44,15 +47,16 @@ global $dolibarr_main_url_root; // Load translation files required by the page $langs->loadLangs(array("eventorganization", "other", "projects")); -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... -$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) -$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? -$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation -$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button -$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list -$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'conferenceorboothattendeelist'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +// Get Paramters +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) +$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'conferenceorboothattendeelist'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $id = GETPOST('id', 'int'); $conf_or_booth_id = GETPOST('conforboothid', 'int'); @@ -139,6 +143,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); +// Permissions $permissiontoread = $user->rights->eventorganization->read; $permissiontoadd = $user->rights->eventorganization->write; $permissiontodelete = $user->rights->eventorganization->delete; @@ -408,7 +413,7 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { $morehtmlref .= $projectstatic->title; // Thirdparty if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -427,7 +432,7 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { print '
    '; print $langs->trans("Usage"); print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -450,7 +455,7 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -469,8 +474,15 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; + // Location event + print ''; + // Other attributes $cols = 2; $objectconf = $object; @@ -947,7 +969,7 @@ if ($num == 0) { $colspan++; } } - print ''; + print ''; } diff --git a/htdocs/eventorganization/conferenceorboothattendee_note.php b/htdocs/eventorganization/conferenceorboothattendee_note.php index b8fb87d39fa..ea186041602 100644 --- a/htdocs/eventorganization/conferenceorboothattendee_note.php +++ b/htdocs/eventorganization/conferenceorboothattendee_note.php @@ -17,9 +17,9 @@ */ /** - * \file conferenceorboothattendee_note.php - * \ingroup eventorganization - * \brief Tab for notes on ConferenceOrBoothAttendee + * \file htdocs/eventorganization/conferenceorboothattendee_note.php + * \ingroup eventorganization + * \brief Tab for notes on ConferenceOrBoothAttendee */ //if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db @@ -28,7 +28,6 @@ //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN', '1'); // Do not load object $langs //if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION', '1'); // Do not check injection attack on GET parameters //if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION', '1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). //if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) //if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data //if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu @@ -38,10 +37,10 @@ //if (! defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip //if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT', 'auto'); // Force lang to a particular value //if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE', 'aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN', 1); // The main.inc.php does not make a redirect if not logged, instead show simple error message //if (! defined('CSRFCHECK_WITH_TOKEN')) define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET //if (! defined('NOBROWSERNOTIF')) define('NOBROWSERNOTIF', '1'); // Disable browser notification + // Load Dolibarr environment $res = 0; // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) @@ -77,7 +76,7 @@ dol_include_once('/eventorganization/class/conferenceorboothattendee.class.php') dol_include_once('/eventorganization/lib/eventorganization_conferenceorboothattendee.lib.php'); // Load translation files required by the page -$langs->loadLangs(array("eventorganization@eventorganization", "companies")); +$langs->loadLangs(array('eventorganization', 'companies')); // Get parameters $id = GETPOST('id', 'int'); @@ -105,6 +104,7 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->eventorganization->multidir_output[$object->entity]."/".$object->id; } +// Permissions $permissionnote = $user->rights->eventorganization->conferenceorboothattendee->write; // Used by the include of actions_setnotes.inc.php $permissiontoadd = $user->rights->eventorganization->conferenceorboothattendee->write; // Used by the include of actions_addupdatedelete.inc.php @@ -151,7 +151,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -172,7 +172,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); diff --git a/htdocs/eventorganization/core/actions_massactions_mail.inc.php b/htdocs/eventorganization/core/actions_massactions_mail.inc.php index cda9274e6d6..5398291e69f 100644 --- a/htdocs/eventorganization/core/actions_massactions_mail.inc.php +++ b/htdocs/eventorganization/core/actions_massactions_mail.inc.php @@ -31,7 +31,7 @@ // $parameters, $object, $action must be defined for the hook. // $permissiontoread, $permissiontoadd, $permissiontodelete, $permissiontoclose may be defined -// $uploaddir may be defined (example to $conf->projet->dir_output."/";) +// $uploaddir may be defined (example to $conf->project->dir_output."/";) // $toselect may be defined // $diroutputmassaction may be defined @@ -42,18 +42,6 @@ if (empty($objectclass) || empty($uploaddir)) { exit; } -// For backward compatibility -if (!empty($permtoread) && empty($permissiontoread)) { - $permissiontoread = $permtoread; -} -if (!empty($permtocreate) && empty($permissiontoadd)) { - $permissiontoadd = $permtocreate; -} -if (!empty($permtodelete) && empty($permissiontodelete)) { - $permissiontodelete = $permtodelete; -} - - // Mass actions. Controls on number of lines checked. $maxformassaction = (empty($conf->global->MAIN_LIMIT_FOR_MASS_ACTIONS) ? 1000 : $conf->global->MAIN_LIMIT_FOR_MASS_ACTIONS); if (!empty($massaction) && is_array($toselect) && count($toselect) < 1) { diff --git a/htdocs/eventorganization/eventorganizationindex.php b/htdocs/eventorganization/eventorganizationindex.php index 77c2ec512f4..60f5beefd70 100644 --- a/htdocs/eventorganization/eventorganizationindex.php +++ b/htdocs/eventorganization/eventorganizationindex.php @@ -71,7 +71,7 @@ print '
    '; /* BEGIN MODULEBUILDER DRAFT MYOBJECT // Draft MyObject -if (! empty($conf->eventorganization->enabled) && $user->rights->eventorganization->read) +if (isModEnabled('eventorganization') && $user->rights->eventorganization->read) { $langs->load("orders"); @@ -152,7 +152,7 @@ $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; /* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT // Last modified myobject -if (! empty($conf->eventorganization->enabled) && $user->rights->eventorganization->read) +if (isModEnabled('eventorganization') && $user->rights->eventorganization->read) { $sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms"; $sql.= " FROM ".MAIN_DB_PREFIX."eventorganization_myobject as s"; diff --git a/htdocs/eventorganization/lib/eventorganization_conferenceorbooth.lib.php b/htdocs/eventorganization/lib/eventorganization_conferenceorbooth.lib.php index 6a76a14a38c..8d0f442e900 100644 --- a/htdocs/eventorganization/lib/eventorganization_conferenceorbooth.lib.php +++ b/htdocs/eventorganization/lib/eventorganization_conferenceorbooth.lib.php @@ -47,12 +47,12 @@ function conferenceorboothPrepareHead($object, $with_project = 0) $head[$h][2] = 'card'; $h++; - /* - $head[$h][0] = DOL_URL_ROOT.'/eventorganization/conferenceorbooth_contact.php?id='.$object->id.$withProjectUrl; - $head[$h][1] = $langs->trans("ContactsAddresses"); - $head[$h][2] = 'contact'; - $h++; - */ + if (!empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { + $head[$h][0] = DOL_URL_ROOT.'/eventorganization/conferenceorbooth_contact.php?id='.$object->id.$withProjectUrl; + $head[$h][1] = $langs->trans("ContactsAddresses"); + $head[$h][2] = 'contact'; + $h++; + } /* $head[$h][0] = DOL_URL_ROOT.'/eventorganization/conferenceorboothattendee_list.php?conforboothid='.$object->id.$withProjectUrl; diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index af508cf3291..3e096bcc55d 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -11,7 +11,7 @@ * Copyright (C) 2015 Claudio Aschieri * Copyright (C) 2016-2018 Ferran Marcet * Copyright (C) 2016 Yasser Carreón - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * Copyright (C) 2020 Lenin Rivas * Copyright (C) 2022 Josep Lluís Amador * @@ -35,6 +35,7 @@ * \brief Card of a shipment */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; @@ -47,16 +48,16 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { +if (isModEnabled("product") || isModEnabled("service")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; } -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php'; } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -64,10 +65,10 @@ if (!empty($conf->projet->enabled)) { // Load translation files required by the page $langs->loadLangs(array("sendings", "companies", "bills", 'deliveries', 'orders', 'stocks', 'other', 'propal')); -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { $langs->load('productbatch'); } @@ -163,7 +164,7 @@ if (empty($reshook)) { } // Set incoterm - if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) { + if ($action == 'set_incoterms' && isModEnabled('incoterm')) { $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); } @@ -213,16 +214,18 @@ if (empty($reshook)) { $db->begin(); $object->note = GETPOST('note', 'alpha'); - $object->origin = $origin; + $object->origin = $origin; $object->origin_id = $origin_id; $object->fk_project = GETPOST('projectid', 'int'); - $object->weight = GETPOST('weight', 'int') == '' ? "NULL" : GETPOST('weight', 'int'); - $object->sizeH = GETPOST('sizeH', 'int') == '' ? "NULL" : GETPOST('sizeH', 'int'); - $object->sizeW = GETPOST('sizeW', 'int') == '' ? "NULL" : GETPOST('sizeW', 'int'); - $object->sizeS = GETPOST('sizeS', 'int') == '' ? "NULL" : GETPOST('sizeS', 'int'); + $object->weight = GETPOST('weight', 'int') == '' ? "NULL" : GETPOST('weight', 'int'); + $object->sizeH = GETPOST('sizeH', 'int') == '' ? "NULL" : GETPOST('sizeH', 'int'); + $object->sizeW = GETPOST('sizeW', 'int') == '' ? "NULL" : GETPOST('sizeW', 'int'); + $object->sizeS = GETPOST('sizeS', 'int') == '' ? "NULL" : GETPOST('sizeS', 'int'); $object->size_units = GETPOST('size_units', 'int'); $object->weight_units = GETPOST('weight_units', 'int'); + $product = new Product($db); + // We will loop on each line of the original document to complete the shipping object with various info and quantity to deliver $classname = ucfirst($object->origin); $objectsrc = new $classname($db); @@ -232,8 +235,8 @@ if (empty($reshook)) { $object->ref_customer = GETPOST('ref_customer', 'alpha'); $object->model_pdf = GETPOST('model'); $object->date_delivery = $date_delivery; // Date delivery planed - $object->fk_delivery_address = $objectsrc->fk_delivery_address; - $object->shipping_method_id = GETPOST('shipping_method_id', 'int'); + $object->fk_delivery_address = $objectsrc->fk_delivery_address; + $object->shipping_method_id = GETPOST('shipping_method_id', 'int'); $object->tracking_number = GETPOST('tracking_number', 'alpha'); $object->note_private = GETPOST('note_private', 'restricthtml'); $object->note_public = GETPOST('note_public', 'restricthtml'); @@ -258,13 +261,23 @@ if (empty($reshook)) { $stockLocation = "ent1".$i."_0"; $qty = "qtyl".$i; - if (!empty($conf->productbatch->enabled) && $objectsrc->lines[$i]->product_tobatch) { // If product need a batch number + $is_batch_or_serial=0; + if (!empty($objectsrc->lines[$i]->fk_product)) { + $resultFetch = $product->fetch($objectsrc->lines[$i]->fk_product, '', '', '', 1, 1, 1); + if ($resultFetch < 0) { + setEventMessages($product->error, $product->errors, 'errors'); + } + $is_batch_or_serial = $product->status_batch; + } + + // If product need a batch or serial number + if (isModEnabled('productbatch') && $objectsrc->lines[$i]->product_tobatch) { if (GETPOSTISSET($batch)) { //shipment line with batch-enable product $qty .= '_'.$j; while (GETPOSTISSET($batch)) { // save line of detail into sub_qty - $sub_qty[$j]['q'] = GETPOST($qty, 'int'); // the qty we want to move for this stock record + $sub_qty[$j]['q'] = price2num(GETPOST($qty, 'alpha'), 'MS'); // the qty we want to move for this stock record $sub_qty[$j]['id_batch'] = GETPOST($batch, 'int'); // the id into llx_product_batch of stock record to move $subtotalqty += $sub_qty[$j]['q']; @@ -273,6 +286,12 @@ if (empty($reshook)) { //var_dump($sub_qty[$j]['q']); //var_dump($sub_qty[$j]['id_batch']); + //var_dump($qty);var_dump($batch);var_dump($sub_qty[$j]['q']);var_dump($sub_qty[$j]['id_batch']); + if ($is_batch_or_serial==2 && $sub_qty[$j]['q']>1) { + setEventMessages($langs->trans("TooManyQtyForSerialNumber", $product->ref, ''), null, 'errors'); + $totalqty=0; + break 2; + } $j++; $batch = "batchl".$i."_".$j; $qty = "qtyl".$i.'_'.$j; @@ -284,12 +303,13 @@ if (empty($reshook)) { $totalqty += $subtotalqty; } else { - // No detail were provided for lots, so if a qty was provided, we can show an error. + // No detail were provided for lots, so if a qty was provided, we can throw an error. if (GETPOST($qty)) { // We try to set an amount // Case we dont use the list of available qty for each warehouse/lot // GUI does not allow this yet - setEventMessages($langs->trans("StockIsRequiredToChooseWhichLotToUse"), null, 'errors'); + setEventMessages($langs->trans("StockIsRequiredToChooseWhichLotToUse").' ('.$langs->trans("Line").' '.GETPOST($idl, 'int').')', null, 'errors'); + $error++; } } } elseif (GETPOSTISSET($stockLocation)) { @@ -326,8 +346,7 @@ if (empty($reshook)) { } //var_dump($batch_line[2]); - - if ($totalqty > 0) { // There is at least one thing to ship + if ($totalqty > 0 && !$error) { // There is at least one thing to ship and no error for ($i = 0; $i < $num; $i++) { $qty = "qtyl".$i; if (!isset($batch_line[$i])) { @@ -387,9 +406,9 @@ if (empty($reshook)) { $error++; } } - } else { + } elseif (!$error) { $labelfieldmissing = $langs->transnoentitiesnoconv("QtyToShip"); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $labelfieldmissing .= '/'.$langs->transnoentitiesnoconv("Warehouse"); } setEventMessages($langs->trans("ErrorFieldRequired", $labelfieldmissing), null, 'errors'); @@ -407,11 +426,17 @@ if (empty($reshook)) { } } elseif ($action == 'create_delivery' && $conf->delivery_note->enabled && $user->rights->expedition->delivery->creer) { // Build a receiving receipt + $db->begin(); + $result = $object->create_delivery($user); if ($result > 0) { + $db->commit(); + header("Location: ".DOL_URL_ROOT.'/delivery/card.php?action=create_delivery&id='.$result); exit; } else { + $db->rollback(); + setEventMessages($object->error, $object->errors, 'errors'); } } elseif ($action == 'confirm_valid' && $confirm == 'yes' && @@ -429,10 +454,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -466,7 +491,7 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } // TODO add alternative status - //} elseif ($action == 'reopen' && (! empty($user->rights->expedition->creer) || ! empty($user->rights->expedition->shipping_advance->validate))) + //} elseif ($action == 'reopen' && (!empty($user->rights->expedition->creer) || !empty($user->rights->expedition->shipping_advance->validate))) //{ // $result = $object->setStatut(0); // if ($result < 0) @@ -474,7 +499,7 @@ if (empty($reshook)) { // setEventMessages($object->error, $object->errors, 'errors'); // } //} - } elseif ($action == 'setdate_livraison' && $user->rights->expedition->creer) { + } elseif ($action == 'setdate_livraison' && !empty($user->rights->expedition->creer)) { $datedelivery = dol_mktime(GETPOST('liv_hour', 'int'), GETPOST('liv_min', 'int'), 0, GETPOST('liv_month', 'int'), GETPOST('liv_day', 'int'), GETPOST('liv_year', 'int')); $object->fetch($id); @@ -548,6 +573,7 @@ if (empty($reshook)) { $object->fetch($id); $lines = $object->lines; $line = new ExpeditionLigne($db); + $line->fk_expedition = $object->id; $num_prod = count($lines); for ($i = 0; $i < $num_prod; $i++) { @@ -589,6 +615,7 @@ if (empty($reshook)) { for ($i = 0; $i < $num_prod; $i++) { if ($lines[$i]->id == $line_id) { // we have found line to update $line = new ExpeditionLigne($db); + $line->fk_expedition = $object->id; // Extrafields Lines $line->array_options = $extrafields->getOptionalsFromPost($object->table_element_line); @@ -729,7 +756,7 @@ if (empty($reshook)) { unset($_POST[$qty]); } } - } elseif (empty($conf->stock->enabled) && empty($conf->productbatch->enabled)) { // both product batch and stock are not activated. + } elseif (!isModEnabled('stock') && empty($conf->productbatch->enabled)) { // both product batch and stock are not activated. $qty = "qtyl".$line_id; $line->id = $line_id; $line->qty = GETPOST($qty, 'int'); @@ -763,10 +790,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -804,9 +831,13 @@ if (empty($reshook)) { * View */ +$title = $langs->trans("Shipment"); +if ($action == 'create2') { + $title = $langs->trans("CreateShipment"); +} $help_url = 'EN:Module_Shipments|FR:Module_Expéditions|ES:Módulo_Expediciones|DE:Modul_Lieferungen'; -llxHeader('', $langs->trans('Shipment'), 'Expedition', $help_url); +llxHeader('', $title, 'Expedition', $help_url); if (empty($action)) { $action = 'view'; @@ -815,7 +846,7 @@ if (empty($action)) { $form = new Form($db); $formfile = new FormFile($db); $formproduct = new FormProduct($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -851,7 +882,7 @@ if ($action == 'create') { $author = new User($db); $author->fetch($object->user_author_id); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $entrepot = new Entrepot($db); } @@ -860,7 +891,6 @@ if ($action == 'create') { print ''; print ''; print ''; - print ''; if (GETPOST('entrepot_id', 'int')) { print ''; } @@ -871,10 +901,10 @@ if ($action == 'create') { // Ref print '
    '; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $projectid = GETPOST('projectid', 'int') ?GETPOST('projectid', 'int') : 0; if (empty($projectid) && !empty($object->fk_project)) { $projectid = $object->fk_project; @@ -982,7 +1012,7 @@ if ($action == 'create') { print "\n"; // Other attributes - $parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"', 'cols' => '3', 'socid' => $socid); + $parameters = array('objectsrc' => isset($objectsrc) ? $objectsrc : '', 'colspan' => ' colspan="3"', 'cols' => '3', 'socid' => $socid); $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $expe, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; @@ -996,7 +1026,7 @@ if ($action == 'create') { // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; print ''; print ''; - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { if (empty($conf->productbatch->enabled)) { print ''; } else { @@ -1107,12 +1137,15 @@ if ($action == 'create') { $type = 1; } - print ''."\n"; - print ''."\n"; + print ''."\n"; + print ''."\n"; // Product label if ($line->fk_product > 0) { // If predefined product - $product->fetch($line->fk_product); + $res = $product->fetch($line->fk_product); + if ($res < 0) { + dol_print_error($db, $product->error, $product->errors); + } $product->load_stock('warehouseopen'); // Load all $product->stock_warehouse[idwarehouse]->detail_batch //var_dump($product->stock_warehouse[1]); @@ -1127,7 +1160,7 @@ if ($action == 'create') { $product_static->status_buy = $line->product_tobuy; $product_static->status_batch = $line->product_tobatch; - $showdescinproductdesc = (getDolGlobalString('PRODUIT_DESC_IN_FORM') == 2 ? 1 : 0); + $showdescinproductdesc = getDolGlobalString('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE'); $text = $product_static->getNomUrl(1); $text .= ' - '.(!empty($line->label) ? $line->label : $line->product_label); @@ -1178,7 +1211,7 @@ if ($action == 'create') { // Qty already shipped print ''; @@ -1188,14 +1221,18 @@ if ($action == 'create') { if ($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES)) { $quantityToBeDelivered = 0; } else { - $quantityToBeDelivered = $quantityAsked - $quantityDelivered; + if (is_numeric($quantityDelivered)) { + $quantityToBeDelivered = $quantityAsked - $quantityDelivered; + } else { + $quantityToBeDelivered = $quantityAsked; + } } $warehouseObject = null; - if (count($warehousePicking) == 1 || !($line->fk_product > 0) || empty($conf->stock->enabled)) { // If warehouse was already selected or if product is not a predefined, we go into this part with no multiwarehouse selection + if (count($warehousePicking) == 1 || !($line->fk_product > 0) || !isModEnabled('stock')) { // If warehouse was already selected or if product is not a predefined, we go into this part with no multiwarehouse selection print ''; //ship from preselected location - $stock = + $product->stock_warehouse[$warehouse_id]->real; // Convert to number + $stock = + (isset($product->stock_warehouse[$warehouse_id]->real) ? $product->stock_warehouse[$warehouse_id]->real : 0); // Convert to number $deliverableQty = min($quantityToBeDelivered, $stock); if ($deliverableQty < 0) { $deliverableQty = 0; @@ -1210,7 +1247,7 @@ if ($action == 'create') { print ''; print ''; } else { - if (! empty($conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS)) { + if (!empty($conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS)) { print ''; print ''; } @@ -1220,7 +1257,7 @@ if ($action == 'create') { print ''; // Stock - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { print ''; // Stock - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { print ''; - print '
    '; - print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print ''.price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; + } + print '
    '.$langs->trans("Dates").' ('.$langs->trans("Project").')'; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -481,13 +493,23 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + // Date start - end of event + print '
    '.$langs->trans("Dates").' ('.$langs->trans("Event").')'; + $start = dol_print_date($projectstatic->date_start_event, 'day'); + print ($start ? $start : '?'); + $end = dol_print_date($projectstatic->date_end_event, 'day'); + print ' - '; + print ($end ? $end : '?'); + if ($projectstatic->hasDelay()) { + print img_warning("Late"); } print '
    '.$langs->trans("Location").''; + print $projectstatic->location; + print '
    '.$langs->trans("NoRecordFound").'
    '.$langs->trans("NoRecordFound").'
    '; - if ($origin == 'commande' && !empty($conf->commande->enabled)) { + if ($origin == 'commande' && isModEnabled('commande')) { print $langs->trans("RefOrder"); } - if ($origin == 'propal' && !empty($conf->propal->enabled)) { + if ($origin == 'propal' && isModEnabled("propal")) { print $langs->trans("RefProposal"); } print ''; @@ -902,7 +932,7 @@ if ($action == 'create') { print '
    '; @@ -1029,7 +1059,7 @@ if ($action == 'create') { $i = 0; while ($i < $numAsked) { print 'jQuery("#qtyl'.$i.'").val(jQuery("#qtyasked'.$i.'").val() - jQuery("#qtydelivered'.$i.'").val());'."\n"; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print 'jQuery("#qtyl'.$i.'_'.$i.'").val(jQuery("#qtyasked'.$i.'").val() - jQuery("#qtydelivered'.$i.'").val());'."\n"; } $i++; @@ -1064,7 +1094,7 @@ if ($action == 'create') { } print ''.img_picto($langs->trans("Reset"), 'eraser').''; print ''.$langs->trans("Warehouse").' ('.$langs->trans("Stock").')
    '; - $quantityDelivered = $object->expeditions[$line->id]; + $quantityDelivered = isset($object->expeditions[$line->id]) ? $object->expeditions[$line->id] : ''; print $quantityDelivered; print ''; print ''.$unit_order.''; if ($line->product_type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { // Type of product need stock change ? // Show warehouse combo list @@ -1307,10 +1344,10 @@ if ($action == 'create') { $detail = ''; $detail .= $langs->trans("Batch").': '.$dbatch->batch; - if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { + if (empty($conf->global->PRODUCT_DISABLE_SELLBY) && !empty($dbatch->sellby)) { $detail .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby, "day"); } - if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { + if (empty($conf->global->PRODUCT_DISABLE_EATBY) && !empty($dbatch->eatby)) { $detail .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby, "day"); } $detail .= ' - '.$langs->trans("Qty").': '.$dbatch->qty; @@ -1391,10 +1428,10 @@ if ($action == 'create') { $deliverableQty = GETPOST($inputName, 'int'); } - print ''; + print ''; print ''; } else { - if (! empty($conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS)) { + if (!empty($conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS)) { print ''; } @@ -1403,7 +1440,7 @@ if ($action == 'create') { print ''; if ($line->product_type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { print $tmpwarehouseObject->getNomUrl(0).' '; @@ -1518,6 +1555,12 @@ if ($action == 'create') { } else { print 'TableLotIncompleteRunRepairWithParamStandardEqualConfirmed'; } + if (empty($conf->global->PRODUCT_DISABLE_SELLBY) && !empty($dbatch->sellby)) { + print ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby, "day"); + } + if (empty($conf->global->PRODUCT_DISABLE_EATBY) && !empty($dbatch->eatby)) { + print ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby, "day"); + } print ' ('.$dbatch->qty.')'; $quantityToBeDelivered -= $deliverableQty; if ($quantityToBeDelivered < 0) { @@ -1538,7 +1581,7 @@ if ($action == 'create') { if ($line->product_type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { $disabled = ''; - if (!empty($conf->productbatch->enabled) && $product->hasbatch()) { + if (isModEnabled('productbatch') && $product->hasbatch()) { $disabled = 'disabled="disabled"'; } if ($warehouse_selected_id <= 0) { // We did not force a given warehouse, so we won't have no warehouse to change qty. @@ -1571,7 +1614,8 @@ if ($action == 'create') { } } - // Line extrafield + // Display lines for extrafields of the Shipment line + // $line is a 'Order line' if (!empty($extrafields)) { //var_dump($line); $colspan = 5; @@ -1580,6 +1624,7 @@ if ($action == 'create') { $srcLine = new OrderLine($db); $srcLine->id = $line->id; $srcLine->fetch_optionals(); // fetch extrafields also available in orderline + $expLine->array_options = array_merge($expLine->array_options, $srcLine->array_options); print $expLine->showOptionals($extrafields, 'edit', array('style'=>'class="drag drop oddeven"', 'colspan'=>$colspan), $indiceAsked, '', 1); @@ -1602,7 +1647,7 @@ if ($action == 'create') { dol_print_error($db); } } -} elseif ($id || $ref) { +} elseif ($object->id > 0) { /* *************************************************************************** */ /* */ /* Edit and view mode */ @@ -1612,841 +1657,826 @@ if ($action == 'create') { $num_prod = count($lines); - if ($object->id > 0) { - if (!empty($object->origin) && $object->origin_id > 0) { - $typeobject = $object->origin; - $origin = $object->origin; - $origin_id = $object->origin_id; - $object->fetch_origin(); // Load property $object->commande, $object->propal, ... + if (!empty($object->origin) && $object->origin_id > 0) { + $typeobject = $object->origin; + $origin = $object->origin; + $origin_id = $object->origin_id; + $object->fetch_origin(); // Load property $object->commande, $object->propal, ... + } + + $soc = new Societe($db); + $soc->fetch($object->socid); + + $res = $object->fetch_optionals(); + + $head = shipping_prepare_head($object); + print dol_get_fiche_head($head, 'shipping', $langs->trans("Shipment"), -1, $object->picto); + + $formconfirm = ''; + + // Confirm deleteion + if ($action == 'delete') { + $formquestion = array(); + if ($object->statut == Expedition::STATUS_CLOSED && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { + $formquestion = array( + array( + 'label' => $langs->trans('ShipmentIncrementStockOnDelete'), + 'name' => 'alsoUpdateStock', + 'type' => 'checkbox', + 'value' => 0 + ), + ); } + $formconfirm = $form->formconfirm( + $_SERVER['PHP_SELF'].'?id='.$object->id, + $langs->trans('DeleteSending'), + $langs->trans("ConfirmDeleteSending", $object->ref), + 'confirm_delete', + $formquestion, + 0, + 1 + ); + } - $soc = new Societe($db); - $soc->fetch($object->socid); - - $res = $object->fetch_optionals(); - - $head = shipping_prepare_head($object); - print dol_get_fiche_head($head, 'shipping', $langs->trans("Shipment"), -1, $object->picto); - - $formconfirm = ''; - - // Confirm deleteion - if ($action == 'delete') { - $formquestion = array(); - if ($object->statut == Expedition::STATUS_CLOSED && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { - $formquestion = array( - array( - 'label' => $langs->trans('ShipmentIncrementStockOnDelete'), - 'name' => 'alsoUpdateStock', - 'type' => 'checkbox', - 'value' => 0 - ), - ); - } - $formconfirm = $form->formconfirm( - $_SERVER['PHP_SELF'].'?id='.$object->id, - $langs->trans('DeleteSending'), - $langs->trans("ConfirmDeleteSending", $object->ref), - 'confirm_delete', - $formquestion, - 0, - 1 - ); - } - - // Confirmation validation - if ($action == 'valid') { - $objectref = substr($object->ref, 1, 4); - if ($objectref == 'PROV') { - $numref = $object->getNextNumRef($soc); - } else { - $numref = $object->ref; - } - - $text = $langs->trans("ConfirmValidateSending", $numref); - - if (!empty($conf->notification->enabled)) { - require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; - $notify = new Notify($db); - $text .= '
    '; - $text .= $notify->confirmMessage('SHIPPING_VALIDATE', $object->socid, $object); - } - - $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('ValidateSending'), $text, 'confirm_valid', '', 0, 1); - } - // Confirm cancelation - if ($action == 'cancel') { - $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('CancelSending'), $langs->trans("ConfirmCancelSending", $object->ref), 'confirm_cancel', '', 0, 1); - } - - // Call Hook formConfirm - $parameters = array('formConfirm' => $formconfirm); - $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - if (empty($reshook)) { - $formconfirm .= $hookmanager->resPrint; - } elseif ($reshook > 0) { - $formconfirm = $hookmanager->resPrint; - } - - // Print form confirm - print $formconfirm; - - // Calculate totalWeight and totalVolume for all products - // by adding weight and volume of each product line. - $tmparray = $object->getTotalWeightVolume(); - $totalWeight = $tmparray['weight']; - $totalVolume = $tmparray['volume']; - - - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { - $objectsrc = new Commande($db); - $objectsrc->fetch($object->$typeobject->id); - } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { - $objectsrc = new Propal($db); - $objectsrc->fetch($object->$typeobject->id); - } - - // Shipment card - $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref = '
    '; - // Ref customer shipment - $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1); - // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); - // Project - if (!empty($conf->projet->enabled)) { - $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if (0) { // Do not change on shipment - if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); - } - } else { - // We don't have project on shipment, so we will use the project or source object instead - // TODO Add project on shipment - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { - $proj = new Project($db); - $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); - if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; - } - } else { - $morehtmlref .= ''; - } - } - } - $morehtmlref .= '
    '; - - - dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - - - print '
    '; - print '
    '; - print '
    '; - - print ''; - - // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { - print ''; - print '\n"; - print ''; - } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { - print ''; - print '\n"; - print ''; - } - - // Date creation - print ''; - print '\n"; - print ''; - - // Delivery date planned - print ''; - print ''; - // Weight + $text = $langs->trans("ConfirmValidateSending", $numref); + + if (isModEnabled('notification')) { + require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
    '; + $text .= $notify->confirmMessage('SHIPPING_VALIDATE', $object->socid, $object); + } + + $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('ValidateSending'), $text, 'confirm_valid', '', 0, 1); + } + // Confirm cancelation + if ($action == 'cancel') { + $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('CancelSending'), $langs->trans("ConfirmCancelSending", $object->ref), 'confirm_cancel', '', 0, 1); + } + + // Call Hook formConfirm + $parameters = array('formConfirm' => $formconfirm); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $formconfirm .= $hookmanager->resPrint; + } elseif ($reshook > 0) { + $formconfirm = $hookmanager->resPrint; + } + + // Print form confirm + print $formconfirm; + + // Calculate totalWeight and totalVolume for all products + // by adding weight and volume of each product line. + $tmparray = $object->getTotalWeightVolume(); + $totalWeight = $tmparray['weight']; + $totalVolume = $tmparray['volume']; + + + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { + $objectsrc = new Commande($db); + $objectsrc->fetch($object->$typeobject->id); + } + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { + $objectsrc = new Propal($db); + $objectsrc->fetch($object->$typeobject->id); + } + + // Shipment card + $linkback = ''.$langs->trans("BackToList").''; + $morehtmlref = '
    '; + // Ref customer shipment + $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); + $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string'.(isset($conf->global->THIRDPARTY_REF_INPUT_SIZE) ? ':'.$conf->global->THIRDPARTY_REF_INPUT_SIZE : ''), '', null, null, '', 1); + // Thirdparty + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); + // Project + if (isModEnabled('project')) { + $langs->load("projects"); + $morehtmlref .= '
    '; + if (0) { // Do not change on shipment + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify') { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; + } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + } else { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { + $proj = new Project($db); + $proj->fetch($objectsrc->fk_project); + $morehtmlref .= $proj->getNomUrl(1); + if ($proj->title) { + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; + } + } + } + } + $morehtmlref .= '
    '; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
    '; + print '
    '; + print '
    '; + + print '
    '; - print $langs->trans("RefOrder").''; - print $objectsrc->getNomUrl(1, 'commande'); - print "
    '; - print $langs->trans("RefProposal").''; - print $objectsrc->getNomUrl(1, 'expedition'); - print "
    '.$langs->trans("DateCreation").''.dol_print_date($object->date_creation, "dayhour")."
    '; - print ''; - - if ($action != 'editdate_livraison') { - print ''; - } - print '
    '; - print $langs->trans('DateDeliveryPlanned'); - print 'id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'
    '; - print '
    '; - if ($action == 'editdate_livraison') { - print '
    '; - print ''; - print ''; - print $form->selectDate($object->date_delivery ? $object->date_delivery : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0); - print ''; - print '
    '; + // Confirmation validation + if ($action == 'valid') { + $objectref = substr($object->ref, 1, 4); + if ($objectref == 'PROV') { + $numref = $object->getNextNumRef($soc); } else { - print $object->date_delivery ? dol_print_date($object->date_delivery, 'dayhour') : ' '; + $numref = $object->ref; } - print '
    '; + + // Linked documents + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { print ''; - - // Width - print ''; - - // Height - print ''; - - // Depth - print ''; - - // Volume - print ''; + print $langs->trans("RefOrder").''; print '\n"; print ''; - - // Other attributes - $cols = 2; - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; - - print '
    '; - print $form->editfieldkey("Weight", 'trueWeight', $object->trueWeight, $object, $user->rights->expedition->creer); - print ''; - - if ($action == 'edittrueWeight') { - print '
    '; - print ''; - print ''; - print ''; - print ''; - print $formproduct->selectMeasuringUnits("weight_units", "weight", $object->weight_units, 0, 2); - print ' '; - print ' '; - print '
    '; - } else { - print $object->trueWeight; - print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; - } - - // Calculated - if ($totalWeight > 0) { - if (!empty($object->trueWeight)) { - print ' ('.$langs->trans("SumOfProductWeights").': '; - } - print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); - if (!empty($object->trueWeight)) { - print ')'; - } - } - print '
    '.$form->editfieldkey("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer).''; - print $form->editfieldval("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer); - print ($object->trueWidth && $object->width_units != '') ? ' '.measuringUnitString(0, "size", $object->width_units) : ''; - print '
    '.$form->editfieldkey("Height", 'trueHeight', $object->trueHeight, $object, $user->rights->expedition->creer).''; - if ($action == 'edittrueHeight') { - print '
    '; - print ''; - print ''; - print ''; - print ''; - print $formproduct->selectMeasuringUnits("size_units", "size", $object->size_units, 0, 2); - print ' '; - print ' '; - print '
    '; - } else { - print $object->trueHeight; - print ($object->trueHeight && $object->height_units != '') ? ' '.measuringUnitString(0, "size", $object->height_units) : ''; - } - - print '
    '.$form->editfieldkey("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer).''; - print $form->editfieldval("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer); - print ($object->trueDepth && $object->depth_units != '') ? ' '.measuringUnitString(0, "size", $object->depth_units) : ''; - print '
    '; - print $langs->trans("Volume"); - print ''; - $calculatedVolume = 0; - $volumeUnit = 0; - if ($object->trueWidth && $object->trueHeight && $object->trueDepth) { - $calculatedVolume = ($object->trueWidth * $object->trueHeight * $object->trueDepth); - $volumeUnit = $object->size_units * 3; - } - // If sending volume not defined we use sum of products - if ($calculatedVolume > 0) { - if ($volumeUnit < 50) { - print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); - } else { - print $calculatedVolume.' '.measuringUnitString(0, "volume", $volumeUnit); - } - } - if ($totalVolume > 0) { - if ($calculatedVolume) { - print ' ('.$langs->trans("SumOfProductVolumes").': '; - } - print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); - //if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')'; - if ($calculatedVolume) { - print ')'; - } - } + print $objectsrc->getNomUrl(1, 'commande'); print "
    '; - - print '
    '; - print '
    '; - print '
    '; - - print ''; - - // Sending method - print ''; + } + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { + print ''; + print '\n"; print ''; + } - // Tracking Number - print ''; + // Date creation + print ''; + print '\n"; + print ''; - // Incoterms - if (!empty($conf->incoterm->enabled)) { - print ''; - print ''; + // Delivery date planned + print ''; + print ''; + + // Weight + print '
    '; - print ''; - - if ($action != 'editshipping_method_id') { - print ''; - } - print '
    '; - print $langs->trans('SendingMethod'); - print 'id.'">'.img_edit($langs->trans('SetSendingMethod'), 1).'
    '; - print '
    '; - if ($action == 'editshipping_method_id') { - print '
    '; - print ''; - print ''; - $object->fetch_delivery_methods(); - print $form->selectarray("shipping_method_id", $object->meths, $object->shipping_method_id, 1, 0, 0, "", 1); - if ($user->admin) { - print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - } - print ''; - print '
    '; - } else { - if ($object->shipping_method_id > 0) { - // Get code using getLabelFromKey - $code = $langs->getLabelFromKey($db, $object->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); - print $langs->trans("SendingMethod".strtoupper($code)); - } - } - print '
    '; + print $langs->trans("RefProposal").''; + print $objectsrc->getNomUrl(1, 'expedition'); + print "
    '.$form->editfieldkey("TrackingNumber", 'tracking_number', $object->tracking_number, $object, $user->rights->expedition->creer).''; - print $form->editfieldval("TrackingNumber", 'tracking_number', $object->tracking_url, $object, $user->rights->expedition->creer, 'safehtmlstring', $object->tracking_number); - print '
    '.$langs->trans("DateCreation").''.dol_print_date($object->date_creation, "dayhour")."
    '; - print '
    '; - print $langs->trans('IncotermLabel'); - print ''; - if ($user->rights->expedition->creer) { - print ''.img_edit().''; - } else { - print ' '; - } - print '
    '; - print '
    '; - if ($action != 'editincoterm') { - print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); - } else { - print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms) ? $object->location_incoterms : ''), $_SERVER['PHP_SELF'].'?id='.$object->id); - } - print '
    '; + print ''; + + if ($action != 'editdate_livraison') { + print ''; + } + print '
    '; + print $langs->trans('DateDeliveryPlanned'); + print 'id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'
    '; + print '
    '; + if ($action == 'editdate_livraison') { + print '
    '; + print ''; + print ''; + print $form->selectDate($object->date_delivery ? $object->date_delivery : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0); + print ''; + print '
    '; + } else { + print $object->date_delivery ? dol_print_date($object->date_delivery, 'dayhour') : ' '; + } + print '
    '; + print $form->editfieldkey("Weight", 'trueWeight', $object->trueWeight, $object, $user->rights->expedition->creer); + print ''; + + if ($action == 'edittrueWeight') { + print '
    '; + print ''; + print ''; + print ''; + print ''; + print $formproduct->selectMeasuringUnits("weight_units", "weight", $object->weight_units, 0, 2); + print ' '; + print ' '; + print '
    '; + } else { + print $object->trueWeight; + print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; + } + + // Calculated + if ($totalWeight > 0) { + if (!empty($object->trueWeight)) { + print ' ('.$langs->trans("SumOfProductWeights").': '; } - - // Other attributes - $parameters = array('colspan' => ' colspan="3"', 'cols' => '3'); - $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - print "
    "; - - print '
    '; - print '
    '; - - print '
    '; - - - // Lines of products - - if ($action == 'editline') { - print '
    - - - - - '; + print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); + if (!empty($object->trueWeight)) { + print ')'; } - print '
    '; + } + print '
    '; - print ''; - print ''; - // Adds a line numbering column - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { - print ''; - } - // Product/Service - print ''; - // Qty - print ''; - if ($origin && $origin_id > 0) { - print ''; - } - if ($action == 'editline') { - $editColspan = 3; - if (empty($conf->stock->enabled)) { - $editColspan--; - } - if (empty($conf->productbatch->enabled)) { - $editColspan--; - } - print ''; + // Width + print ''; + + // Height + print ''; + + // Depth + print ''; + + // Volume + print ''; + print ''; - } else { - print ''; - } - if (!empty($conf->stock->enabled)) { - print ''; - } - - if (!empty($conf->productbatch->enabled)) { - print ''; - } + print $calculatedVolume.' '.measuringUnitString(0, "volume", $volumeUnit); } - print ''; - print ''; - //print ''; - if ($object->statut == 0) { - print ''; - print ''; + } + if ($totalVolume > 0) { + if ($calculatedVolume) { + print ' ('.$langs->trans("SumOfProductVolumes").': '; } - print "\n"; - print ''; + print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); + //if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')'; + if ($calculatedVolume) { + print ')'; + } + } + print "\n"; + print ''; - $outputlangs = $langs; + // Other attributes + $cols = 2; + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $object->fetch_thirdparty(); - $newlang = ''; - if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { - $newlang = GETPOST('lang_id', 'aZ09'); - } - if (empty($newlang)) { - $newlang = $object->thirdparty->default_lang; - } - if (!empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } + print '
     '.$langs->trans("Products").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyInOtherShipments").''; - if ($object->statut <= 1) { - print $langs->trans("QtyToShip").' - '; - } else { - print $langs->trans("QtyShipped").' - '; - } - if (!empty($conf->stock->enabled)) { - print $langs->trans("WarehouseSource").' - '; - } - if (!empty($conf->productbatch->enabled)) { - print $langs->trans("Batch"); - } - print '
    '.$form->editfieldkey("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer).''; + print $form->editfieldval("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer); + print ($object->trueWidth && $object->width_units != '') ? ' '.measuringUnitString(0, "size", $object->width_units) : ''; + print '
    '.$form->editfieldkey("Height", 'trueHeight', $object->trueHeight, $object, $user->rights->expedition->creer).''; + if ($action == 'edittrueHeight') { + print ''; + print ''; + print ''; + print ''; + print ''; + print $formproduct->selectMeasuringUnits("size_units", "size", $object->size_units, 0, 2); + print ' '; + print ' '; + print ''; + } else { + print $object->trueHeight; + print ($object->trueHeight && $object->height_units != '') ? ' '.measuringUnitString(0, "size", $object->height_units) : ''; + } + + print '
    '.$form->editfieldkey("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer).''; + print $form->editfieldval("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer); + print ($object->trueDepth && $object->depth_units != '') ? ' '.measuringUnitString(0, "size", $object->depth_units) : ''; + print '
    '; + print $langs->trans("Volume"); + print ''; + $calculatedVolume = 0; + $volumeUnit = 0; + if ($object->trueWidth && $object->trueHeight && $object->trueDepth) { + $calculatedVolume = ($object->trueWidth * $object->trueHeight * $object->trueDepth); + $volumeUnit = $object->size_units * 3; + } + // If sending volume not defined we use sum of products + if ($calculatedVolume > 0) { + if ($volumeUnit < 50) { + print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); } else { - if ($object->statut <= 1) { - print ''.$langs->trans("QtyToShip").''.$langs->trans("QtyShipped").''.$langs->trans("WarehouseSource").''.$langs->trans("Batch").''.$langs->trans("CalculatedWeight").''.$langs->trans("CalculatedVolume").''.$langs->trans("Size").'
    '; + + print ''; + print '
    '; + print '
    '; + + print ''; + + // Sending method + print ''; + print ''; + + // Tracking Number + print ''; + + // Incoterms + if (isModEnabled('incoterm')) { + print ''; + print ''; + } + + // Other attributes + $parameters = array('colspan' => ' colspan="3"', 'cols' => '3'); + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print "
    '; + print ''; + + if ($action != 'editshipping_method_id') { + print ''; + } + print '
    '; + print $langs->trans('SendingMethod'); + print 'id.'">'.img_edit($langs->trans('SetSendingMethod'), 1).'
    '; + print '
    '; + if ($action == 'editshipping_method_id') { + print '
    '; + print ''; + print ''; + $object->fetch_delivery_methods(); + print $form->selectarray("shipping_method_id", $object->meths, $object->shipping_method_id, 1, 0, 0, "", 1); + if ($user->admin) { + print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); + } + print ''; + print '
    '; + } else { + if ($object->shipping_method_id > 0) { + // Get code using getLabelFromKey + $code = $langs->getLabelFromKey($db, $object->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + print $langs->trans("SendingMethod".strtoupper($code)); + } + } + print '
    '.$form->editfieldkey("TrackingNumber", 'tracking_number', $object->tracking_number, $object, $user->rights->expedition->creer).''; + print $form->editfieldval("TrackingNumber", 'tracking_number', $object->tracking_url, $object, $user->rights->expedition->creer, 'safehtmlstring', $object->tracking_number); + print '
    '; + print '
    '; + print $langs->trans('IncotermLabel'); + print ''; + if ($user->rights->expedition->creer) { + print ''.img_edit().''; + } else { + print ' '; + } + print '
    '; + print '
    '; + if ($action != 'editincoterm') { + print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); + } else { + print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms) ? $object->location_incoterms : ''), $_SERVER['PHP_SELF'].'?id='.$object->id); + } + print '
    "; + + print '
    '; + print ''; + + print '
    '; + + + // Lines of products + + if ($action == 'editline') { + print '
    + + + + + '; + } + print '
    '; + + print '
    '; + print ''; + print ''; + print ''; + // Adds a line numbering column + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { + print ''; + } + // Product/Service + print ''; + // Qty + print ''; + if ($origin && $origin_id > 0) { + print ''; + } + if ($action == 'editline') { + $editColspan = 3; + if (!isModEnabled('stock')) { + $editColspan--; + } + if (empty($conf->productbatch->enabled)) { + $editColspan--; + } + print ''; + } else { + if ($object->statut <= 1) { + print ''; + } else { + print ''; + } + if (isModEnabled('stock')) { + print ''; } - // Get list of products already sent for same source object into $alreadysent - $alreadysent = array(); - if ($origin && $origin_id > 0) { - $sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.fk_unit, obj.date_start, obj.date_end"; - $sql .= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot"; - $sql .= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition"; - //if ($conf->delivery_note->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received"; - $sql .= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch'; - $sql .= ', p.description as product_desc'; - $sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed"; - $sql .= ", ".MAIN_DB_PREFIX."expedition as e"; - $sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj"; - //if ($conf->delivery_note->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."deliverydet as ld ON ld.fk_delivery = l.rowid AND obj.rowid = ld.fk_origin_line"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid"; - $sql .= " WHERE e.entity IN (".getEntity('expedition').")"; - $sql .= " AND obj.fk_".$origin." = ".((int) $origin_id); - $sql .= " AND obj.rowid = ed.fk_origin_line"; - $sql .= " AND ed.fk_expedition = e.rowid"; - //if ($filter) $sql.= $filter; - $sql .= " ORDER BY obj.fk_product"; + if (isModEnabled('productbatch')) { + print ''; + } + } + print ''; + print ''; + //print ''; + if ($object->statut == 0) { + print ''; + print ''; + } + print "\n"; + print ''; - dol_syslog("get list of shipment lines", LOG_DEBUG); - $resql = $db->query($sql); - if ($resql) { - $num = $db->num_rows($resql); - $i = 0; + $outputlangs = $langs; - while ($i < $num) { - $obj = $db->fetch_object($resql); - if ($obj) { - // $obj->rowid is rowid in $origin."det" table - $alreadysent[$obj->rowid][$obj->shipmentline_id] = array( - 'shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped, - 'product_tosell'=>$obj->product_tosell, 'product_tobuy'=>$obj->product_tobuy, 'product_tobatch'=>$obj->product_tobatch, - 'date_valid'=>$db->jdate($obj->date_valid), 'date_delivery'=>$db->jdate($obj->date_delivery)); - } - $i++; + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $object->fetch_thirdparty(); + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { + $newlang = GETPOST('lang_id', 'aZ09'); + } + if (empty($newlang)) { + $newlang = $object->thirdparty->default_lang; + } + if (!empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + } + + // Get list of products already sent for same source object into $alreadysent + $alreadysent = array(); + if ($origin && $origin_id > 0) { + $sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.fk_unit, obj.date_start, obj.date_end"; + $sql .= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot"; + $sql .= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition"; + //if ($conf->delivery_note->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received"; + $sql .= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch'; + $sql .= ', p.description as product_desc'; + $sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed"; + $sql .= ", ".MAIN_DB_PREFIX."expedition as e"; + $sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj"; + //if ($conf->delivery_note->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."deliverydet as ld ON ld.fk_delivery = l.rowid AND obj.rowid = ld.fk_origin_line"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid"; + $sql .= " WHERE e.entity IN (".getEntity('expedition').")"; + $sql .= " AND obj.fk_".$origin." = ".((int) $origin_id); + $sql .= " AND obj.rowid = ed.fk_origin_line"; + $sql .= " AND ed.fk_expedition = e.rowid"; + //if ($filter) $sql.= $filter; + $sql .= " ORDER BY obj.fk_product"; + + dol_syslog("expedition/card.php get list of shipment lines", LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + + while ($i < $num) { + $obj = $db->fetch_object($resql); + if ($obj) { + // $obj->rowid is rowid in $origin."det" table + $alreadysent[$obj->rowid][$obj->shipmentline_id] = array( + 'shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped, + 'product_tosell'=>$obj->product_tosell, 'product_tobuy'=>$obj->product_tobuy, 'product_tobatch'=>$obj->product_tobatch, + 'date_valid'=>$db->jdate($obj->date_valid), 'date_delivery'=>$db->jdate($obj->date_delivery)); } + $i++; } - //var_dump($alreadysent); + } + //var_dump($alreadysent); + } + + print ''; + + // Loop on each product to send/sent + for ($i = 0; $i < $num_prod; $i++) { + $parameters = array('i' => $i, 'line' => $lines[$i], 'line_id' => $line_id, 'num' => $num_prod, 'alreadysent' => $alreadysent, 'editColspan' => !empty($editColspan) ? $editColspan : 0, 'outputlangs' => $outputlangs); + $reshook = $hookmanager->executeHooks('printObjectLine', $parameters, $object, $action); + if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } - print ''; + if (empty($reshook)) { + print ''; // id of order line + print ''; - // Loop on each product to send/sent - for ($i = 0; $i < $num_prod; $i++) { - $parameters = array('i' => $i, 'line' => $lines[$i], 'line_id' => $line_id, 'num' => $num_prod, 'alreadysent' => $alreadysent, 'editColspan' => !empty($editColspan) ? $editColspan : 0, 'outputlangs' => $outputlangs); - $reshook = $hookmanager->executeHooks('printObjectLine', $parameters, $object, $action); - if ($reshook < 0) { - setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + // # + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { + print ''; } - if (empty($reshook)) { - print ''; // id of order line - print ''; - - // # - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { - print ''; - } - - // Predefined product or service - if ($lines[$i]->fk_product > 0) { - // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $prod = new Product($db); - $prod->fetch($lines[$i]->fk_product); - $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product_label; - } else { - $label = (!empty($lines[$i]->label) ? $lines[$i]->label : $lines[$i]->product_label); - } - - print '\n"; + // Predefined product or service + if ($lines[$i]->fk_product > 0) { + // Define output language + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $prod = new Product($db); + $prod->fetch($lines[$i]->fk_product); + $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product_label; } else { - print '\n"; + $label = (!empty($lines[$i]->label) ? $lines[$i]->label : $lines[$i]->product_label); } - $unit_order = ''; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { - $unit_order = measuringUnitString($lines[$i]->fk_unit); + print '\n"; + } else { + print ''; + if (!empty($lines[$i]->label)) { + $text .= ' '.$lines[$i]->label.''; + print $form->textwithtooltip($text, $lines[$i]->description, 3, '', '', $i); + } else { + print $text.' '.nl2br($lines[$i]->description); + } - // Qty in other shipments (with shipment and warehouse used) - if ($origin && $origin_id > 0) { - print '\n"; + } - $j++; - if ($j > 1) { - print '
    '; - } - $shipment_static->fetch($shipmentline_var['shipment_id']); - print $shipment_static->getNomUrl(1); - print ' - '.$shipmentline_var['qty_shipped']; - $htmltext = $langs->trans("DateValidation").' : '.(empty($shipmentline_var['date_valid']) ? $langs->trans("Draft") : dol_print_date($shipmentline_var['date_valid'], 'dayhour')); - if (!empty($conf->stock->enabled) && $shipmentline_var['warehouse'] > 0) { - $warehousestatic->fetch($shipmentline_var['warehouse']); - $htmltext .= '
    '.$langs->trans("FromLocation").' : '.$warehousestatic->getNomUrl(1, '', 0, 1); - } - print ' '.$form->textwithpicto('', $htmltext, 1); + $unit_order = ''; + if (!empty($conf->global->PRODUCT_USE_UNITS)) { + $unit_order = measuringUnitString($lines[$i]->fk_unit); + } + + // Qty ordered + print ''; + + // Qty in other shipments (with shipment and warehouse used) + if ($origin && $origin_id > 0) { + print ''; } + print ''; + } - if ($action == 'editline' && $lines[$i]->id == $line_id) { - // edit mode - print ''; + } else { + // Qty to ship or shipped + print ''; + + // Warehouse source + if (isModEnabled('stock')) { + print ''; + } + + // Batch number managment + if (isModEnabled('productbatch')) { + if (isset($lines[$i]->detail_batch)) { + print ''; + print ''; - } - - // Batch number managment - if (!empty($conf->productbatch->enabled)) { - if (isset($lines[$i]->detail_batch)) { - print ''; - print ''; - } else { - print ''; - } - } - } - - // Weight - print ''; - - // Volume - print ''; - - // Size - //print ''; - - if ($action == 'editline' && $lines[$i]->id == $line_id) { - print ''; - } elseif ($object->statut == Expedition::STATUS_DRAFT) { - // edit-delete buttons - print ''; - print ''; - - // Display lines extrafields - if (!empty($rowExtrafieldsStart)) { - print $rowExtrafieldsStart; - print $rowExtrafieldsView; - print $rowEnd; - } - } - print ""; - - // Display lines extrafields - if (!empty($extrafields)) { - $colspan = 6; - if ($origin && $origin_id > 0) { - $colspan++; - } - if (!empty($conf->productbatch->enabled)) { - $colspan++; - } - if (!empty($conf->stock->enabled)) { - $colspan++; - } - - $line = $lines[$i]; - $line->fetch_optionals(); - - // TODO Show all in same line by setting $display_type = 'line' - if ($action == 'editline' && $line->id == $line_id) { - print $lines[$i]->showOptionals($extrafields, 'edit', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); } else { - print $lines[$i]->showOptionals($extrafields, 'view', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); + print ''; } } } + + // Weight + print ''; + + // Volume + print ''; + + // Size + //print ''; + + if ($action == 'editline' && $lines[$i]->id == $line_id) { + print ''; + } elseif ($object->statut == Expedition::STATUS_DRAFT) { + // edit-delete buttons + print ''; + print ''; + + // Display lines extrafields + if (!empty($rowExtrafieldsStart)) { + print $rowExtrafieldsStart; + print $rowExtrafieldsView; + print $rowEnd; + } + } + print ""; + + // Display lines extrafields. + // $line is a line of shipment + if (!empty($extrafields)) { + $colspan = 6; + if ($origin && $origin_id > 0) { + $colspan++; + } + if (isModEnabled('productbatch')) { + $colspan++; + } + if (isModEnabled('stock')) { + $colspan++; + } + + $line = $lines[$i]; + $line->fetch_optionals(); + + // TODO Show all in same line by setting $display_type = 'line' + if ($action == 'editline' && $line->id == $line_id) { + print $lines[$i]->showOptionals($extrafields, 'edit', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); + } else { + print $lines[$i]->showOptionals($extrafields, 'view', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); + } + } } - - // TODO Show also lines ordered but not delivered - - print "
     '.$langs->trans("Products").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyInOtherShipments").''; + if ($object->statut <= 1) { + print $langs->trans("QtyToShip").' - '; + } else { + print $langs->trans("QtyShipped").' - '; + } + if (isModEnabled('stock')) { + print $langs->trans("WarehouseSource").' - '; + } + if (isModEnabled('productbatch')) { + print $langs->trans("Batch"); + } + print ''.$langs->trans("QtyToShip").''.$langs->trans("QtyShipped").''.$langs->trans("WarehouseSource").''.$langs->trans("Batch").''.$langs->trans("CalculatedWeight").''.$langs->trans("CalculatedVolume").''.$langs->trans("Size").'
    '.($i + 1).'
    '.($i + 1).''; - - // Show product and description - $product_static->type = $lines[$i]->fk_product_type; - $product_static->id = $lines[$i]->fk_product; - $product_static->ref = $lines[$i]->ref; - $product_static->status = $lines[$i]->product_tosell; - $product_static->status_buy = $lines[$i]->product_tobuy; - $product_static->status_batch = $lines[$i]->product_tobatch; - - $product_static->weight = $lines[$i]->weight; - $product_static->weight_units = $lines[$i]->weight_units; - $product_static->length = $lines[$i]->length; - $product_static->length_units = $lines[$i]->length_units; - $product_static->width = !empty($lines[$i]->width) ? $lines[$i]->width : 0; - $product_static->width_units = !empty($lines[$i]->width_units) ? $lines[$i]->width_units : 0; - $product_static->height = !empty($lines[$i]->height) ? $lines[$i]->height : 0; - $product_static->height_units = !empty($lines[$i]->height_units) ? $lines[$i]->height_units : 0; - $product_static->surface = $lines[$i]->surface; - $product_static->surface_units = $lines[$i]->surface_units; - $product_static->volume = $lines[$i]->volume; - $product_static->volume_units = $lines[$i]->volume_units; - - $text = $product_static->getNomUrl(1); - $text .= ' - '.$label; - $description = (!empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($lines[$i]->description)); - print $form->textwithtooltip($text, $description, 3, '', '', $i); - print_date_range(!empty($lines[$i]->date_start) ? $lines[$i]->date_start : '', !empty($lines[$i]->date_end) ? $lines[$i]->date_end : ''); - if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { - print (!empty($lines[$i]->description) && $lines[$i]->description != $lines[$i]->product) ? '
    '.dol_htmlentitiesbr($lines[$i]->description) : ''; - } - print "
    '; - if ($lines[$i]->product_type == Product::TYPE_SERVICE) { - $text = img_object($langs->trans('Service'), 'service'); - } else { - $text = img_object($langs->trans('Product'), 'product'); - } - - if (!empty($lines[$i]->label)) { - $text .= ' '.$lines[$i]->label.''; - print $form->textwithtooltip($text, $lines[$i]->description, 3, '', '', $i); - } else { - print $text.' '.nl2br($lines[$i]->description); - } - - print_date_range($lines[$i]->date_start, $lines[$i]->date_end); - print "'; + + // Show product and description + $product_static->type = $lines[$i]->fk_product_type; + $product_static->id = $lines[$i]->fk_product; + $product_static->ref = $lines[$i]->ref; + $product_static->status = $lines[$i]->product_tosell; + $product_static->status_buy = $lines[$i]->product_tobuy; + $product_static->status_batch = $lines[$i]->product_tobatch; + + $product_static->weight = $lines[$i]->weight; + $product_static->weight_units = $lines[$i]->weight_units; + $product_static->length = $lines[$i]->length; + $product_static->length_units = $lines[$i]->length_units; + $product_static->width = !empty($lines[$i]->width) ? $lines[$i]->width : 0; + $product_static->width_units = !empty($lines[$i]->width_units) ? $lines[$i]->width_units : 0; + $product_static->height = !empty($lines[$i]->height) ? $lines[$i]->height : 0; + $product_static->height_units = !empty($lines[$i]->height_units) ? $lines[$i]->height_units : 0; + $product_static->surface = $lines[$i]->surface; + $product_static->surface_units = $lines[$i]->surface_units; + $product_static->volume = $lines[$i]->volume; + $product_static->volume_units = $lines[$i]->volume_units; + + $text = $product_static->getNomUrl(1); + $text .= ' - '.$label; + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($lines[$i]->description)); + print $form->textwithtooltip($text, $description, 3, '', '', $i); + print_date_range(!empty($lines[$i]->date_start) ? $lines[$i]->date_start : '', !empty($lines[$i]->date_end) ? $lines[$i]->date_end : ''); + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { + print (!empty($lines[$i]->description) && $lines[$i]->description != $lines[$i]->product) ? '
    '.dol_htmlentitiesbr($lines[$i]->description) : ''; + } + print "
    '; + if ($lines[$i]->product_type == Product::TYPE_SERVICE) { + $text = img_object($langs->trans('Service'), 'service'); + } else { + $text = img_object($langs->trans('Product'), 'product'); } - // Qty ordered - print ''.$lines[$i]->qty_asked.' '.$unit_order.''; - foreach ($alreadysent as $key => $val) { - if ($lines[$i]->fk_origin_line == $key) { - $j = 0; - foreach ($val as $shipmentline_id => $shipmentline_var) { - if ($shipmentline_var['shipment_id'] == $lines[$i]->fk_expedition) { - continue; // We want to show only "other shipments" - } + print_date_range($lines[$i]->date_start, $lines[$i]->date_end); + print "'.$lines[$i]->qty_asked.' '.$unit_order.''; + foreach ($alreadysent as $key => $val) { + if ($lines[$i]->fk_origin_line == $key) { + $j = 0; + foreach ($val as $shipmentline_id => $shipmentline_var) { + if ($shipmentline_var['shipment_id'] == $lines[$i]->fk_expedition) { + continue; // We want to show only "other shipments" } + + $j++; + if ($j > 1) { + print '
    '; + } + $shipment_static->fetch($shipmentline_var['shipment_id']); + print $shipment_static->getNomUrl(1); + print ' - '.$shipmentline_var['qty_shipped']; + $htmltext = $langs->trans("DateValidation").' : '.(empty($shipmentline_var['date_valid']) ? $langs->trans("Draft") : dol_print_date($shipmentline_var['date_valid'], 'dayhour')); + if (isModEnabled('stock') && $shipmentline_var['warehouse'] > 0) { + $warehousestatic->fetch($shipmentline_var['warehouse']); + $htmltext .= '
    '.$langs->trans("FromLocation").' : '.$warehousestatic->getNomUrl(1, '', 0, 1); + } + print ' '.$form->textwithpicto('', $htmltext, 1); } } - print '
    '; - if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0) { - print ''; - $line = new ExpeditionLigne($db); - foreach ($lines[$i]->detail_batch as $detail_batch) { - print ''; - // Qty to ship or shipped - print ''; - // Batch number managment - if ($lines[$i]->entrepot_id == 0) { - // only show lot numbers from src warehouse when shipping from multiple warehouses - $line->fetch($detail_batch->fk_expeditiondet); - } - $entrepot_id = !empty($detail_batch->entrepot_id)?$detail_batch->entrepot_id:$lines[$i]->entrepot_id; - print ''; - print ''; - } - // add a 0 qty lot row to be able to add a lot + if ($action == 'editline' && $lines[$i]->id == $line_id) { + // edit mode + print ''; - } else { + } elseif (!isModEnabled('stock') && empty($conf->productbatch->enabled)) { // both product batch and stock are not activated. + print ''; + print ''; // Qty to ship or shipped - print ''; - + print ''; // Warehouse source - if (!empty($conf->stock->enabled)) { - print ''; + // Batch number managment + print ''; + print ''; + } + + print '
    '.$formproduct->selectLotStock($detail_batch->fk_origin_stock, 'batchl'.$detail_batch->fk_expeditiondet.'_'.$detail_batch->fk_origin_stock, '', 1, 0, $lines[$i]->fk_product, $entrepot_id).'
    '; + if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0) { + print ''; + $line = new ExpeditionLigne($db); + foreach ($lines[$i]->detail_batch as $detail_batch) { print ''; // Qty to ship or shipped - print ''; + print ''; // Batch number managment - print ''; + if ($lines[$i]->entrepot_id == 0) { + // only show lot numbers from src warehouse when shipping from multiple warehouses + $line->fetch($detail_batch->fk_expeditiondet); + } + $entrepot_id = !empty($detail_batch->entrepot_id)?$detail_batch->entrepot_id:$lines[$i]->entrepot_id; + print ''; print ''; - } elseif (!empty($conf->stock->enabled)) { - if ($lines[$i]->fk_product > 0) { - if ($lines[$i]->entrepot_id > 0) { - print ''; - print ''; - // Qty to ship or shipped - print ''; - // Warehouse source - print ''; - // Batch number managment - print ''; - print ''; - } elseif (count($lines[$i]->details_entrepot) > 1) { - print ''; - foreach ($lines[$i]->details_entrepot as $detail_entrepot) { - print ''; - // Qty to ship or shipped - print ''; - // Warehouse source - print ''; - // Batch number managment - print ''; - print ''; - } - } else { - print ''; - print ''; - } - } else { - print ''; + } + // add a 0 qty lot row to be able to add a lot + print ''; + // Qty to ship or shipped + print ''; + // Batch number managment + print ''; + print ''; + } elseif (isModEnabled('stock')) { + if ($lines[$i]->fk_product > 0) { + if ($lines[$i]->entrepot_id > 0) { + print ''; print ''; // Qty to ship or shipped print ''; // Warehouse source - print ''; + print ''; // Batch number managment - print ''; + print ''; print ''; + } elseif (count($lines[$i]->details_entrepot) > 1) { + print ''; + foreach ($lines[$i]->details_entrepot as $detail_entrepot) { + print ''; + // Qty to ship or shipped + print ''; + // Warehouse source + print ''; + // Batch number managment + print ''; + print ''; + } + } else { + print ''; + print ''; } - } elseif (empty($conf->stock->enabled) && empty($conf->productbatch->enabled)) { // both product batch and stock are not activated. - print ''; + } else { + print ''; print ''; // Qty to ship or shipped - print ''; + print ''; // Warehouse source print ''; // Batch number managment print ''; print ''; } - - print '
    '.$formproduct->selectLotStock('', 'batchl'.$line_id.'_0', '', 1, 0, $lines[$i]->fk_product).''.$formproduct->selectLotStock($detail_batch->fk_origin_stock, 'batchl'.$detail_batch->fk_expeditiondet.'_'.$detail_batch->fk_origin_stock, '', 1, 0, $lines[$i]->fk_product, $entrepot_id).'
    '.$unit_order.''.$formproduct->selectWarehouses($lines[$i]->entrepot_id, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
    '.$unit_order.''.$formproduct->selectWarehouses($detail_entrepot->entrepot_id, 'entl'.$detail_entrepot->line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
    '.$langs->trans("NotEnoughStock").'
    '.$formproduct->selectLotStock('', 'batchl'.$line_id.'_0', '', 1, 0, $lines[$i]->fk_product).'
    '.$unit_order.''.$formproduct->selectWarehouses($lines[$i]->entrepot_id, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
    '.$unit_order.''.$formproduct->selectWarehouses($detail_entrepot->entrepot_id, 'entl'.$detail_entrepot->line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
    '.$langs->trans("NotEnoughStock").'
    '.$unit_order.'
    '.$lines[$i]->qty_shipped.' '.$unit_order.''; - if ($lines[$i]->entrepot_id > 0) { - $entrepot = new Entrepot($db); - $entrepot->fetch($lines[$i]->entrepot_id); - print $entrepot->getNomUrl(1); - } elseif (count($lines[$i]->details_entrepot) > 1) { - $detail = ''; - foreach ($lines[$i]->details_entrepot as $detail_entrepot) { - if ($detail_entrepot->entrepot_id > 0) { - $entrepot = new Entrepot($db); - $entrepot->fetch($detail_entrepot->entrepot_id); - $detail .= $langs->trans("DetailWarehouseFormat", $entrepot->libelle, $detail_entrepot->qty_shipped).'
    '; - } + print '
    '.$lines[$i]->qty_shipped.' '.$unit_order.''; + if ($lines[$i]->entrepot_id > 0) { + $entrepot = new Entrepot($db); + $entrepot->fetch($lines[$i]->entrepot_id); + print $entrepot->getNomUrl(1); + } elseif (count($lines[$i]->details_entrepot) > 1) { + $detail = ''; + foreach ($lines[$i]->details_entrepot as $detail_entrepot) { + if ($detail_entrepot->entrepot_id > 0) { + $entrepot = new Entrepot($db); + $entrepot->fetch($detail_entrepot->entrepot_id); + $detail .= $langs->trans("DetailWarehouseFormat", $entrepot->libelle, $detail_entrepot->qty_shipped).'
    '; } - print $form->textwithtooltip(img_picto('', 'object_stock').' '.$langs->trans("DetailWarehouseNumber"), $detail); + } + print $form->textwithtooltip(img_picto('', 'object_stock').' '.$langs->trans("DetailWarehouseNumber"), $detail); + } + print '
    '; + if ($lines[$i]->product_tobatch) { + $detail = ''; + foreach ($lines[$i]->detail_batch as $dbatch) { // $dbatch is instance of ExpeditionLineBatch + $detail .= $langs->trans("Batch").': '.$dbatch->batch; + if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { + $detail .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby, "day"); + } + if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { + $detail .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby, "day"); + } + $detail .= ' - '.$langs->trans("Qty").': '.$dbatch->qty; + $detail .= '
    '; + } + print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"), $detail); + } else { + print $langs->trans("NA"); } print '
    '; - if ($lines[$i]->product_tobatch) { - $detail = ''; - foreach ($lines[$i]->detail_batch as $dbatch) { // $dbatch is instance of ExpeditionLineBatch - $detail .= $langs->trans("Batch").': '.$dbatch->batch; - if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { - $detail .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby, "day"); - } - if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { - $detail .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby, "day"); - } - $detail .= ' - '.$langs->trans("Qty").': '.$dbatch->qty; - $detail .= '
    '; - } - print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"), $detail); - } else { - print $langs->trans("NA"); - } - print '
    '; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { - print $lines[$i]->weight * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "weight", $lines[$i]->weight_units); - } else { - print ' '; - } - print ''; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { - print $lines[$i]->volume * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units); - } else { - print ' '; - } - print ''.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units).''; - print '
    '; - print '
    '; - print '
    '; - print 'id.'">'.img_edit().''; - print ''; - print 'id.'">'.img_delete().''; - print '
    '; + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { + print $lines[$i]->weight * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "weight", $lines[$i]->weight_units); + } else { + print ' '; + } + print ''; + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { + print $lines[$i]->volume * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units); + } else { + print ' '; + } + print ''.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units).''; + print '
    '; + print '
    '; + print '
    '; + print 'id.'">'.img_edit().''; + print ''; + print 'id.'">'.img_delete().''; + print '
    \n"; - print '
    \n"; + print '
    '; // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { print '\n"; print ''; } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { print ''; // Warehouse - if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + if (isModEnabled('stock') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); print ''; } print '
    '; $objectsrc = new Commande($db); $objectsrc->fetch($object->$typeobject->id); @@ -206,7 +193,7 @@ if ($id > 0 || !empty($ref)) { print "
    '; $objectsrc = new Propal($db); $objectsrc->fetch($object->$typeobject->id); diff --git a/htdocs/expedition/document.php b/htdocs/expedition/document.php index 68336e8dbf6..517c1cea8d2 100644 --- a/htdocs/expedition/document.php +++ b/htdocs/expedition/document.php @@ -26,6 +26,7 @@ * \brief Management page of documents attached to an expedition */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -33,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -65,8 +66,26 @@ if (!$sortfield) { $object = new Expedition($db); -if ($object->fetch($id, $ref)) { +if ($id > 0 || !empty($ref)) { + $object->fetch($id, $ref); $object->fetch_thirdparty(); + + if (!empty($object->origin)) { + $typeobject = $object->origin; + $origin = $object->origin; + $object->fetch_origin(); + } + + // Linked documents + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { + $objectsrc = new Commande($db); + $objectsrc->fetch($object->$typeobject->id); + } + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { + $objectsrc = new Propal($db); + $objectsrc->fetch($object->$typeobject->id); + } + $upload_dir = $conf->expedition->dir_output."/sending/".dol_sanitizeFileName($object->ref); } @@ -117,43 +136,29 @@ if ($id > 0 || !empty($ref)) { $morehtmlref = '
    '; // Ref customer - $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, 0, 'string', '', 0, 1); + $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if (0) { // Do not change on shipment + $morehtmlref .= '
    '; + if (0) { // Do not change on shipment + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on shipment, so we will use the project or source object instead - // TODO Add project on shipment - $morehtmlref .= ' : '; if (!empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/expedition/index.php b/htdocs/expedition/index.php index 8a992e0c7ec..a644aeedbad 100644 --- a/htdocs/expedition/index.php +++ b/htdocs/expedition/index.php @@ -25,6 +25,7 @@ * \brief Home page of shipping area. */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index 6b67f419da5..26cafe14b5d 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -26,6 +26,7 @@ * \brief Page to list all shipments */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -77,6 +78,7 @@ $search_sale = GETPOST('search_sale', 'int'); $search_categ_cus = GETPOST("search_categ_cus", 'int'); $search_product_category = GETPOST('search_product_category', 'int'); $optioncss = GETPOST('optioncss', 'alpha'); +$mode = GETPOST('mode', 'alpha'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -257,11 +259,14 @@ $helpurl = 'EN:Module_Shipments|FR:Module_Expéditions|ES:Módulo_Ex llxHeader('', $langs->trans('ListOfSendings'), $helpurl); $sql = 'SELECT'; -if ($sall || $search_product_category > 0 || $search_user > 0) { +if ($sall || $search_user > 0) { $sql = 'SELECT DISTINCT'; } $sql .= " e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.weight, e.weight_units, e.date_delivery as delivery_date, e.fk_statut, e.billed, e.tracking_number, e.fk_shipping_method,"; -$sql .= " l.date_delivery as date_reception,"; +if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) { + // Link for delivery fields ref and date. Does not duplicate the line because we should always have ony 1 link or 0 per shipment + $sql .= " l.date_delivery as date_reception,"; +} $sql .= " s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, "; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; @@ -280,17 +285,17 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."expedition as e"; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (e.rowid = ef.fk_object)"; } -if ($sall || $search_product_category > 0) { +if ($sall) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'expeditiondet as ed ON e.rowid=ed.fk_expedition'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet as pd ON pd.rowid=ed.fk_origin_line'; } -if ($search_product_category > 0) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; -} $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ @@ -298,8 +303,11 @@ if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; -$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as ee ON e.rowid = ee.fk_source AND ee.sourcetype = 'shipping' AND ee.targettype = 'delivery'"; -$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.rowid = ee.fk_target"; +if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) { + // Link for delivery fields ref and date. Does not duplicate the line because we should always have ony 1 link or 0 per shipment + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as ee ON e.rowid = ee.fk_source AND ee.sourcetype = 'shipping' AND ee.targettype = 'delivery'"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.rowid = ee.fk_target"; +} $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON e.fk_user_author = u.rowid'; if ($search_user > 0) { // Get link to order to get the order id in eesource.fk_source $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as eesource ON eesource.fk_target = e.rowid AND eesource.targettype = 'shipping' AND eesource.sourcetype = 'commande'"; @@ -319,9 +327,7 @@ $reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object $sql .= $hookmanager->resPrint; $sql .= " WHERE e.entity IN (".getEntity('expedition').")"; -if ($search_product_category > 0) { - $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); -} + if ($socid > 0) { $sql .= " AND s.rowid = ".((int) $socid); } @@ -369,26 +375,28 @@ if ($search_user > 0) { // The contact on a shipment is also the contact of the order. $sql .= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = eesource.fk_source AND ec.fk_socpeople = ".((int) $search_user); } -if ($search_ref_exp) { - $sql .= natural_search('e.ref', $search_ref_exp); -} -if ($search_ref_liv) { - $sql .= natural_search('l.ref', $search_ref_liv); -} if ($search_company) { $sql .= natural_search('s.nom', $search_company); } +if ($search_ref_exp) { + $sql .= natural_search('e.ref', $search_ref_exp); +} if ($search_datedelivery_start) { $sql .= " AND e.date_delivery >= '".$db->idate($search_datedelivery_start)."'"; } if ($search_datedelivery_end) { $sql .= " AND e.date_delivery <= '".$db->idate($search_datedelivery_end)."'"; } -if ($search_datereceipt_start) { - $sql .= " AND l.date_delivery >= '".$db->idate($search_datereceipt_start)."'"; -} -if ($search_datereceipt_end) { - $sql .= " AND l.date_delivery <= '".$db->idate($search_datereceipt_end)."'"; +if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) { + if ($search_ref_liv) { + $sql .= natural_search('l.ref', $search_ref_liv); + } + if ($search_datereceipt_start) { + $sql .= " AND l.date_delivery >= '".$db->idate($search_datereceipt_start)."'"; + } + if ($search_datereceipt_end) { + $sql .= " AND l.date_delivery <= '".$db->idate($search_datereceipt_end)."'"; + } } if ($sall) { $sql .= natural_search(array_keys($fieldstosearchall), $sall); @@ -399,7 +407,36 @@ if ($search_categ_cus > 0) { if ($search_categ_cus == -2) { $sql .= " AND cc.fk_categorie IS NULL"; } - +// Search for tag/category ($searchCategoryProductList is an array of ID) +$searchCategoryProductOperator = -1; +$searchCategoryProductList = array($search_product_category); +if (!empty($searchCategoryProductList)) { + $searchCategoryProductSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."expeditiondet as ed, ".MAIN_DB_PREFIX."commandedet as cd WHERE ed.fk_expedition = e.rowid AND ed.fk_origin_line = cd.rowid AND cd.fk_product = ck.fk_product)"; + } elseif (intval($searchCategoryProduct) > 0) { + if ($searchCategoryProductOperator == 0) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."expeditiondet as ed, ".MAIN_DB_PREFIX."commandedet as cd WHERE ed.fk_expedition = e.rowid AND ed.fk_origin_line = cd.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProduct); + } + } + } + if ($listofcategoryid) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."expeditiondet as ed, ".MAIN_DB_PREFIX."commandedet as cd WHERE ed.fk_expedition = e.rowid AND ed.fk_origin_line = cd.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProductOperator == 1) { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } + } else { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -413,19 +450,31 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); @@ -441,6 +490,9 @@ $arrayofselected = is_array($toselect) ? $toselect : array(); $expedition = new Expedition($db); $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -517,7 +569,7 @@ $param .= $hookmanager->resPrint; $arrayofmassactions = array( 'builddoc' => img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), - 'classifyclose'=>$langs->trans("Close"), + 'classifyclose' => img_picto('', 'stop-circle', 'class="pictofixedwidth"').$langs->trans("Close"), 'presend' => img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), ); if (in_array($massaction, array('presend'))) { @@ -529,7 +581,10 @@ $massactionbutton = $form->selectMassAction('', $arrayofmassactions); // $url = DOL_URL_ROOT.'/expedition/card.php?action=create'; // if (!empty($socid)) $url .= '&socid='.$socid; // $newcardbutton = dolGetButtonTitle($langs->trans('NewSending'), '', 'fa fa-plus-circle', $url, '', $user->rights->expedition->creer); -$newcardbutton = dolGetButtonTitle($langs->trans('NewSending'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/expedition/card.php?action=create2', '', $user->rights->expedition->creer); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewSending'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/expedition/card.php?action=create2', '', $user->rights->expedition->creer); $i = 0; print '
    '."\n"; @@ -541,6 +596,7 @@ print ''; print ''; print ''; +print ''; print_barre_liste($langs->trans('ListOfSendings'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'dolly', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -577,18 +633,18 @@ if ($user->rights->user->user->lire) { $moreforfilter .= '
    '; } // If the user can view prospects other than his' -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { +if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('IncludingProductWithTag'); $moreforfilter .= img_picto($tmptitle, 'category'); //$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); //$moreforfilter .= $form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1); - $moreforfilter .= $formother->select_categories(Categorie::TYPE_PRODUCT, $search_product_category, 'parent', 1, $tmptitle); + $moreforfilter .= $formother->select_categories(Categorie::TYPE_PRODUCT, $search_product_category, 'search_product_category', 1, $tmptitle); $moreforfilter .= '
    '; } -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); @@ -611,7 +667,7 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); if ($massactionbutton) { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); // This also change content of $arrayfields } @@ -621,6 +677,13 @@ print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} // Ref if (!empty($arrayfields['e.ref']['checked'])) { print '\n"; } // Tracking number @@ -731,8 +794,8 @@ if (!empty($arrayfields['e.tms']['checked'])) { } // Status if (!empty($arrayfields['e.fk_statut']['checked'])) { - print ''; } // Status billed @@ -742,13 +805,18 @@ if (!empty($arrayfields['e.billed']['checked'])) { print ''; } // Action column -print ''; +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} print "\n"; print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} if (!empty($arrayfields['e.ref']['checked'])) { print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, '', $sortfield, $sortorder); } @@ -809,7 +877,9 @@ if (!empty($arrayfields['e.fk_statut']['checked'])) { if (!empty($arrayfields['e.billed']['checked'])) { print_liste_field_titre($arrayfields['e.billed']['label'], $_SERVER["PHP_SELF"], "e.billed", "", $param, '', $sortfield, $sortorder, 'center '); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} print "\n"; $typenArray = $formcompany->typent_array(1); @@ -830,199 +900,227 @@ while ($i < min($num, $limit)) { $object = new Expedition($db); $object->fetch($obj->rowid); - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + print ''; - // Ref - if (!empty($arrayfields['e.ref']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Ref customer - if (!empty($arrayfields['e.ref_customer']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Weight - if (!empty($arrayfields['e.weight']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date delivery planed - if (!empty($arrayfields['e.date_delivery']['checked'])) { - print '\n"; - } - if (!empty($arrayfields['e.fk_shipping_method']['checked'])) { - // Get code using getLabelFromKey - $code=$langs->getLabelFromKey($db, $shipment->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); - print ''; - } - // Tracking number - if (!empty($arrayfields['e.tracking_number']['checked'])) { - $shipment->getUrlTrackingStatus($obj->tracking_number); - print '\n"; - //print $form->editfieldval("TrackingNumber", 'tracking_number', $obj->tracking_url, $obj, $user->rights->expedition->creer, 'string', $obj->tracking_number); - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['l.ref']['checked']) || !empty($arrayfields['l.date_delivery']['checked'])) { - $shipment->fetchObjectLinked($shipment->id, $shipment->element); - $receiving = ''; - if (is_array($shipment->linkedObjects['delivery']) && count($shipment->linkedObjects['delivery']) > 0) { - $receiving = reset($shipment->linkedObjects['delivery']); - } - - if (!empty($arrayfields['l.ref']['checked'])) { - // Ref - print ''; } + // Ref + if (!empty($arrayfields['e.ref']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } - if (!empty($arrayfields['l.date_delivery']['checked'])) { - // Date received + // Ref customer + if (!empty($arrayfields['e.ref_customer']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { print ''."\n"; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Weight + if (!empty($arrayfields['e.weight']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date delivery planed + if (!empty($arrayfields['e.date_delivery']['checked'])) { + print '\n"; + } + if (!empty($arrayfields['e.fk_shipping_method']['checked'])) { + // Get code using getLabelFromKey + $code=$langs->getLabelFromKey($db, $shipment->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + print ''; + } + // Tracking number + if (!empty($arrayfields['e.tracking_number']['checked'])) { + $shipment->getUrlTrackingStatus($obj->tracking_number); + print '\n"; + //print $form->editfieldval("TrackingNumber", 'tracking_number', $obj->tracking_url, $obj, $user->rights->expedition->creer, 'string', $obj->tracking_number); + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['e.datec']['checked'])) { - print ''; + if (!empty($arrayfields['l.ref']['checked']) || !empty($arrayfields['l.date_delivery']['checked'])) { + $shipment->fetchObjectLinked($shipment->id, $shipment->element); + $receiving = ''; + if (is_array($shipment->linkedObjects['delivery']) && count($shipment->linkedObjects['delivery']) > 0) { + $receiving = reset($shipment->linkedObjects['delivery']); + } + + if (!empty($arrayfields['l.ref']['checked'])) { + // Ref + print ''; + } + + if (!empty($arrayfields['l.date_delivery']['checked'])) { + // Date received + print ''."\n"; + } + } + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['e.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['e.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['e.fk_statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Billed + if (!empty($arrayfields['e.billed']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } if (!$i) { $totalarray['nbfield']++; } - } - // Date modification - if (!empty($arrayfields['e.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['e.fk_statut']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Billed - if (!empty($arrayfields['e.billed']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Action column - print '\n"; } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - - print "\n"; - $i++; } diff --git a/htdocs/expedition/note.php b/htdocs/expedition/note.php index d8d70b3cc49..4401af0b20c 100644 --- a/htdocs/expedition/note.php +++ b/htdocs/expedition/note.php @@ -24,10 +24,11 @@ * \brief Note card expedition */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -51,11 +52,11 @@ if ($id > 0 || !empty($ref)) { } // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { $objectsrc = new Commande($db); $objectsrc->fetch($object->$typeobject->id); } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { $objectsrc = new Propal($db); $objectsrc->fetch($object->$typeobject->id); } @@ -108,39 +109,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if (0) { // Do not change on shipment + $morehtmlref .= '
    '; + if (0) { // Do not change on shipment + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on shipment, so we will use the project or source object instead - // TODO Add project on shipment - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/expedition/shipment.php b/htdocs/expedition/shipment.php index 2919a42bdb7..2adf16e4c35 100644 --- a/htdocs/expedition/shipment.php +++ b/htdocs/expedition/shipment.php @@ -4,7 +4,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012-2015 Juanjo Menent * Copyright (C) 2018-2021 Frédéric France - * Copyright (C) 2018 Philippe Grand + * Copyright (C) 2018-2022 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,6 +26,7 @@ * \brief Tab shipments/delivery receipts on the order */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; @@ -33,17 +34,17 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } -if (!empty($conf->stock->enabled)) { +if (isModEnabled('stock')) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; } -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { +if (isModEnabled("product") || isModEnabled("service")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; } @@ -160,7 +161,7 @@ if (empty($reshook)) { if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } - } elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) { + } elseif ($action == 'set_incoterms' && isModEnabled('incoterm')) { // Set incoterm $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); if ($result < 0) { @@ -227,11 +228,11 @@ if (empty($reshook)) { $form = new Form($db); $formfile = new FormFile($db); $formproduct = new FormProduct($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } -$title = $langs->trans('Order')." - ".$langs->trans('Shipments'); +$title = $object->ref." - ".$langs->trans('Shipments'); $help_url = 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes|DE:Modul_Kundenaufträge'; llxHeader('', $title, $help_url); @@ -282,39 +283,28 @@ if ($id > 0 || !empty($ref)) { $morehtmlref = '
    '; // Ref customer - $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', null, null, '', 1); + $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', 0, 1); + $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$soc->getNomUrl(1); + $morehtmlref .= '
    '.$soc->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->commande->creer) { + $morehtmlref .= '
    '; + if (0) { // Do not change on shipment + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - if (!empty($object->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); - $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $proj->fetch($objectsrc->fk_project); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -339,7 +329,7 @@ if ($id > 0 || !empty($ref)) { $filtercreditnote = "fk_facture_source IS NOT NULL AND (description NOT LIKE '(DEPOSIT)%' OR description LIKE '(EXCESS RECEIVED)%')"; } - print '
    '; } print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -686,7 +749,7 @@ if (!empty($arrayfields['e.fk_shipping_method']['checked'])) { // Delivery method print ''; $shipment->fetch_delivery_methods(); - print $form->selectarray("search_shipping_method_id", $shipment->meths, $search_shipping_method_id, 1, 0, 0, "", 1); + print $form->selectarray("search_shipping_method_id", $shipment->meths, $search_shipping_method_id, 1, 0, 0, "", 1, 0, 0, '', 'maxwidth150'); print "'; - print $form->selectarray('search_status', array('0'=>$langs->trans('StatusSendingDraftShort'), '1'=>$langs->trans('StatusSendingValidatedShort'), '2'=>$langs->trans('StatusSendingProcessedShort')), $search_status, 1); + print ''; + print $form->selectarray('search_status', array('0'=>$langs->trans('StatusSendingDraftShort'), '1'=>$langs->trans('StatusSendingValidatedShort'), '2'=>$langs->trans('StatusSendingProcessedShort')), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print ''; -$searchpicto = $form->showFilterAndCheckAddButtons(0); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterAndCheckAddButtons(0); + print $searchpicto; + print '
    '; + print '
    '; + } + $object->socid = $companystatic->getNomUrl(1); + $object->date_delivery = $obj->delivery_date; + $object->town = $obj->town; + print $object->getKanbanView(''); + if ($i == min($num, $limit) - 1) { + print '
    '; + print '
    '; - print $shipment->getNomUrl(1); - print ""; - print $obj->ref_customer; - print "'; - print $companystatic->getNomUrl(1); - print ''; - print $obj->town; - print ''; - print $obj->zip; - print ''.$obj->state_name."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (isset($typenArray[$obj->typent_code])) { - print $typenArray[$obj->typent_code]; - } - print ''; - if (empty($object->trueWeight)) { - $tmparray = $object->getTotalWeightVolume(); - print showDimensionInBestUnit($tmparray['weight'], 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); - print $form->textwithpicto('', $langs->trans('EstimatedWeight'), 1); - } else { - print $object->trueWeight; - print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; - } - print ''; - print dol_print_date($db->jdate($obj->delivery_date), "dayhour"); - print "'; - if ($shipment->shipping_method_id > 0) print $langs->trans("SendingMethod".strtoupper($code)); - print ''.$shipment->tracking_url."'; - print !empty($receiving) ? $receiving->getNomUrl($db) : ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } print ''; + print $shipment->getNomUrl(1); + print ""; + print $obj->ref_customer; + print "'; + print $companystatic->getNomUrl(1); + print ''; + print $obj->town; + print ''; + print $obj->zip; + print ''.$obj->state_name."'; - print dol_print_date($db->jdate($obj->date_reception), "day"); - print ''; + if (isset($typenArray[$obj->typent_code])) { + print $typenArray[$obj->typent_code]; + } + print ''; + if (empty($object->trueWeight)) { + $tmparray = $object->getTotalWeightVolume(); + print showDimensionInBestUnit($tmparray['weight'], 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); + print $form->textwithpicto('', $langs->trans('EstimatedWeight'), 1); + } else { + print $object->trueWeight; + print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; + } + print ''; + print dol_print_date($db->jdate($obj->delivery_date), "dayhour"); + print "'; + if ($shipment->shipping_method_id > 0) print $langs->trans("SendingMethod".strtoupper($code)); + print ''.$shipment->tracking_url."'; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; + print !empty($receiving) ? $receiving->getNomUrl($db) : ''; + print ''; + print dol_print_date($db->jdate($obj->date_reception), "day"); + print ''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''.$shipment->LibStatut($obj->fk_statut, 5).''.yn($obj->billed).''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''.$shipment->LibStatut($obj->fk_statut, 5).''.yn($obj->billed).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; - } - print ''; + print "
    '.$langs->trans('Discounts').''; + print '
    '.$langs->trans('Discounts').''; $absolute_discount = $soc->getAvailableDiscounts('', $filterabsolutediscount); $absolute_creditnote = $soc->getAvailableDiscounts('', $filtercreditnote); @@ -403,7 +393,7 @@ if ($id > 0 || !empty($ref)) { print 'id.'">'.img_edit($langs->trans('SetAvailability'), 1).'
    '; - print '
    '; + print ''; if ($action == 'editavailability') { $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id, $object->availability_id, 'availability_id', 1); } else { @@ -430,7 +420,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; @@ -460,7 +450,7 @@ if ($id > 0 || !empty($ref)) { print 'id.'">'.img_edit($langs->trans('SetDemandReason'), 1).'
    '; - print '
    '; + print ''; if ($action == 'editdemandreason') { $form->formInputReason($_SERVER['PHP_SELF'].'?id='.$object->id, $object->demand_reason_id, 'demand_reason_id', 1); } else { @@ -510,11 +500,11 @@ if ($id > 0 || !empty($ref)) { $totalVolume = $tmparray['volume']; if ($totalWeight || $totalVolume) { print '
    '.$langs->trans("CalculatedWeight").''; + print ''; print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); print '
    '.$langs->trans("CalculatedVolume").''; + print ''; print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); print '
    '; print '
    '; print $langs->trans('IncotermLabel'); @@ -534,7 +524,7 @@ if ($id > 0 || !empty($ref)) { } print '
    '; print '
    '; + print ''; if ($action != 'editincoterm') { print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); } else { @@ -558,7 +548,7 @@ if ($id > 0 || !empty($ref)) { print ''; - if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency)) { + if (isModEnabled("multicurrency") && ($object->multicurrency_code != $conf->currency)) { // Multicurrency Amount HT print ''; print ''; @@ -610,7 +600,7 @@ if ($id > 0 || !empty($ref)) { * Lines or orders with quantity shipped and remain to ship * Note: Qty shipped are already available into $object->expeditions[fk_product] */ - print '
    '.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '; + print '
    '; $sql = "SELECT cd.rowid, cd.fk_product, cd.product_type as type, cd.label, cd.description,"; $sql .= " cd.price, cd.tva_tx, cd.subprice,"; @@ -635,18 +625,19 @@ if ($id > 0 || !empty($ref)) { if ($resql) { $num = $db->num_rows($resql); $i = 0; - + print ''; print ''; - print ''; - print ''; - print ''; - print ''; - if (!empty($conf->stock->enabled)) { - print ''; + print ''; + print ''; + print ''; + print ''; + if (isModEnabled('stock')) { + print ''; } else { - print ''; + print ''; } print "\n"; + print ''; $toBeShipped = array(); $toBeShippedTotal = 0; @@ -677,7 +668,7 @@ if ($id > 0 || !empty($ref)) { // Product label if ($objp->fk_product > 0) { // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $object->fetch_thirdparty(); $prod = new Product($db); @@ -731,7 +722,7 @@ if ($id > 0 || !empty($ref)) { $text = $product_static->getNomUrl(1); $text .= ' - '.$label; - $description = ($conf->global->PRODUIT_DESC_IN_FORM ? '' : dol_htmlentitiesbr($objp->description)).'
    '; + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($objp->description)).'
    '; $description .= $product_static->show_photos('product', $conf->product->multidir_output[$product_static->entity], 1, 1, 0, 0, 0, 80); print $form->textwithtooltip($text, $description, 3, '', '', $i); @@ -739,7 +730,7 @@ if ($id > 0 || !empty($ref)) { print_date_range($db->jdate($objp->date_start), $db->jdate($objp->date_end)); // Add description in form - if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { print ($objp->description && $objp->description != $objp->product_label) ? '
    '.dol_htmlentitiesbr($objp->description) : ''; } @@ -792,11 +783,15 @@ if ($id > 0 || !empty($ref)) { $product->load_stock('warehouseopen'); } - if ($objp->fk_product > 0 && ($type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) && !empty($conf->stock->enabled)) { + if ($objp->fk_product > 0 && ($type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) && isModEnabled('stock')) { print ''; } else { @@ -852,7 +847,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; // Bouton expedier sans gestion des stocks - if (empty($conf->stock->enabled) && ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED)) { + if (!isModEnabled('stock') && ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED)) { if ($user->rights->expedition->creer) { print ''.$langs->trans("CreateShipment").''; if ($toBeShippedTotal <= 0) { @@ -868,11 +863,11 @@ if ($id > 0 || !empty($ref)) { // Bouton expedier avec gestion des stocks - if (!empty($conf->stock->enabled) && $object->statut == Commande::STATUS_DRAFT) { + if (isModEnabled('stock') && $object->statut == Commande::STATUS_DRAFT) { print $langs->trans("ValidateOrderFirstBeforeShipment"); } - if (!empty($conf->stock->enabled) && ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED)) { + if (isModEnabled('stock') && ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED)) { if ($user->rights->expedition->creer) { //print load_fiche_titre($langs->trans("CreateShipment")); print '
    '; @@ -890,7 +885,7 @@ if ($id > 0 || !empty($ref)) { //print '
    '; - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { //print ''; diff --git a/htdocs/expedition/stats/index.php b/htdocs/expedition/stats/index.php index b97af33cb6e..3e8cba9def2 100644 --- a/htdocs/expedition/stats/index.php +++ b/htdocs/expedition/stats/index.php @@ -23,6 +23,7 @@ * \brief Page with shipment statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionstats.class.php'; diff --git a/htdocs/expedition/stats/month.php b/htdocs/expedition/stats/month.php index 254fd9aad90..398bc381715 100644 --- a/htdocs/expedition/stats/month.php +++ b/htdocs/expedition/stats/month.php @@ -22,6 +22,7 @@ * \brief Page des stats expeditions par mois */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionstats.class.php'; @@ -46,11 +47,12 @@ $WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); $mesg = ''; +$mode = ''; print load_fiche_titre($langs->trans("StatisticsOfSendings").' '.$year, $mesg); -$stats = new ExpeditionStats($db); -$data = $stats->getNbExpeditionByMonth($year); +$stats = new ExpeditionStats($db, $socid, $mode); +$data = $stats->getNbByMonth($year); dol_mkdir($conf->expedition->dir_temp); diff --git a/htdocs/expedition/tpl/linkedobjectblock.tpl.php b/htdocs/expedition/tpl/linkedobjectblock.tpl.php index 2305b0d4fac..8825cde4b67 100644 --- a/htdocs/expedition/tpl/linkedobjectblock.tpl.php +++ b/htdocs/expedition/tpl/linkedobjectblock.tpl.php @@ -60,8 +60,7 @@ foreach ($linkedObjectBlock as $key => $objectlink) { // For now, shipments must stay linked to order, so link is not deletable if ($object->element != 'commande') { ?> - ">transnoentitiesnoconv("RemoveLink"), 'unlink'); ?> - id.'&token='.newToken().'&action=dellink&dellinkid='.$key; ?>">transnoentitiesnoconv("RemoveLink"), 'unlink'); ?> diff --git a/htdocs/expensereport/ajax/ajaxik.php b/htdocs/expensereport/ajax/ajaxik.php index 9abd767e1f9..209eb3cdde7 100644 --- a/htdocs/expensereport/ajax/ajaxik.php +++ b/htdocs/expensereport/ajax/ajaxik.php @@ -37,9 +37,6 @@ if (!defined('NOREQUIREAJAX')) { if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} $res = 0; require '../../main.inc.php'; diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 818b3d564a6..75c5b02de10 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003 Rodolphe Quiedeville * Copyright (C) 2004-2020 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2015-2021 Alexandre Spangaro + * Copyright (C) 2015-2022 Alexandre Spangaro * Copyright (C) 2017 Ferran Marcet * Copyright (C) 2018 Frédéric France * @@ -26,6 +26,7 @@ * \brief Page for trip and expense report card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formexpensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -44,7 +45,7 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -68,7 +69,7 @@ $socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('socid_id', $childids = $user->getAllChildIds(1); -if (! empty($conf->global->EXPENSEREPORT_PREFILL_DATES_WITH_CURRENT_MONTH)) { +if (!empty($conf->global->EXPENSEREPORT_PREFILL_DATES_WITH_CURRENT_MONTH)) { if (empty($date_start)) { $date_start = dol_mktime(0, 0, 0, (int) dol_print_date(dol_now(), '%m'), 1, (int) dol_print_date(dol_now(), '%Y')); } @@ -83,7 +84,7 @@ if (! empty($conf->global->EXPENSEREPORT_PREFILL_DATES_WITH_CURRENT_MONTH)) { $rootfordata = DOL_DATA_ROOT; $rootforuser = DOL_DATA_ROOT; // If multicompany module is enabled, we redefine the root of data -if (!empty($conf->multicompany->enabled) && !empty($conf->entity) && $conf->entity > 1) { +if (isModEnabled('multicompany') && !empty($conf->entity) && $conf->entity > 1) { $rootfordata .= '/'.$conf->entity; } $conf->expensereport->dir_output = $rootfordata.'/expensereport'; @@ -117,7 +118,7 @@ $permissiontoadd = $user->rights->expensereport->creer; // Used by the include o $upload_dir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($object->ref); -$projectRequired = $conf->projet->enabled && ! empty($conf->global->EXPENSEREPORT_PROJECT_IS_REQUIRED); +$projectRequired = isModEnabled('project') && !empty($conf->global->EXPENSEREPORT_PROJECT_IS_REQUIRED); $fileRequired = !empty($conf->global->EXPENSEREPORT_FILE_IS_REQUIRED); if ($object->id > 0) { @@ -138,7 +139,7 @@ $candelete = 0; if (!empty($user->rights->expensereport->supprimer)) { $candelete = 1; } -if ($object->statut == ExpenseReport::STATUS_DRAFT && $user->rights->expensereport->write && in_array($object->fk_user_author, $childids)) { +if ($object->statut == ExpenseReport::STATUS_DRAFT && $user->hasRight('expensereport', 'write') && in_array($object->fk_user_author, $childids)) { $candelete = 1; } @@ -154,6 +155,9 @@ $permissiontoadd = $user->rights->expensereport->creer; // Used by the include o /* * Actions */ +$value_unit_ht = price2num(GETPOST('value_unit_ht', 'alpha'), 'MU'); +$value_unit = price2num(GETPOST('value_unit', 'alpha'), 'MU'); +$qty = price2num(GETPOST('qty', 'alpha')); $parameters = array('socid' => $socid); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks @@ -263,7 +267,7 @@ if (empty($reshook)) { if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->expensereport->creer)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->expensereport->creer) && empty($user->rights->expensereport->writeall_advance))) { $error++; - setEventMessages($langs->trans("NotEnoughPermission"), null, 'errors'); + setEventMessages($langs->trans("NotEnoughPermissions"), null, 'errors'); } if (!$error) { if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->expensereport->writeall_advance)) { @@ -291,7 +295,7 @@ if (empty($reshook)) { } if (!$error && empty($conf->global->EXPENSEREPORT_ALLOW_OVERLAPPING_PERIODS)) { - $overlappingExpenseReportID = $object->periode_existe($fuser, $object->date_debut, $object->date_fin, true); + $overlappingExpenseReportID = $object->periode_existe($fuser, $object->date_debut, $object->date_fin); if ($overlappingExpenseReportID > 0) { $error++; @@ -383,10 +387,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -414,7 +418,7 @@ if (empty($reshook)) { // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_author); - $emailFrom = $expediteur->email; + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($emailTo && $emailFrom) { $filename = array(); $filedir = array(); $mimetype = array(); @@ -493,10 +497,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -521,7 +525,7 @@ if (empty($reshook)) { // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_author); - $emailFrom = $expediteur->email; + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($emailFrom && $emailTo) { $filename = array(); $filedir = array(); $mimetype = array(); @@ -603,10 +607,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -637,7 +641,7 @@ if (empty($reshook)) { // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_approve > 0 ? $object->fk_user_approve : $object->fk_user_validator); - $emailFrom = $expediteur->email; + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($emailFrom && $emailTo) { $filename = array(); $filedir = array(); $mimetype = array(); @@ -717,10 +721,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -745,7 +749,7 @@ if (empty($reshook)) { // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_refuse); - $emailFrom = $expediteur->email; + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($emailFrom && $emailTo) { $filename = array(); $filedir = array(); $mimetype = array(); @@ -831,10 +835,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -859,7 +863,7 @@ if (empty($reshook)) { // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_cancel); - $emailFrom = $expediteur->email; + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($emailFrom && $emailTo) { $filename = array(); $filedir = array(); $mimetype = array(); @@ -943,10 +947,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -967,7 +971,7 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } } else { - setEventMessages("NOT_AUTHOR", '', 'errors'); + setEventMessages("NOT_AUTHOR", null, 'errors'); } } @@ -982,10 +986,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1011,10 +1015,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1039,7 +1043,7 @@ if (empty($reshook)) { // FROM $expediteur = new User($db); $expediteur->fetch($user->id); - $emailFrom = $expediteur->email; + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; if ($emailFrom && $emailTo) { $filename = array(); $filedir = array(); $mimetype = array(); @@ -1185,7 +1189,7 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = GETPOST('lang_id', 'alpha'); - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1229,10 +1233,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1321,10 +1325,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1467,6 +1471,8 @@ if ($action == 'create') { } // Public note + $note_public = GETPOSTISSET('note_public') ? GETPOST('note_public', 'restricthtml') : ''; + print ''; print ''; print ''; // Private note + $note_private = GETPOSTISSET('note_private') ? GETPOST('note_private', 'restricthtml') : ''; + if (empty($user->socid)) { print ''; print ''; @@ -1620,10 +1628,12 @@ if ($action == 'create') { print ''; } else { - $taxlessUnitPriceDisabled = ! empty($conf->global->EXPENSEREPORT_FORCE_LINE_AMOUNTS_INCLUDING_TAXES_ONLY) ? ' disabled' : ''; + $taxlessUnitPriceDisabled = !empty($conf->global->EXPENSEREPORT_FORCE_LINE_AMOUNTS_INCLUDING_TAXES_ONLY) ? ' disabled' : ''; print dol_get_fiche_head($head, 'card', $langs->trans("ExpenseReport"), -1, 'trip'); + $formconfirm = ''; + // Clone confirmation if ($action == 'clone') { // Create an array for form @@ -1684,44 +1694,6 @@ if ($action == 'create') { $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; - /* - // Ref customer - $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', null, null, '', 1); - // Thirdparty - $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); - // Project - if (! empty($conf->projet->enabled)) - { - $langs->load("projects"); - $morehtmlref.='
    '.$langs->trans('Project') . ' '; - if ($user->rights->commande->creer) - { - if ($action != 'classify') - $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; - } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); - } - } else { - if (! empty($object->fk_project)) { - $proj = new Project($db); - $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; - } else { - $morehtmlref.=''; - } - } - }*/ $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); @@ -1923,7 +1895,8 @@ if ($action == 'create') { // List of payments already done $nbcols = 3; - if (!empty($conf->banque->enabled)) { + $nbrows = 0; + if (isModEnabled("banque")) { $nbrows++; $nbcols++; } @@ -1934,7 +1907,7 @@ if ($action == 'create') { print ''; print ''; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } print ''; @@ -1943,7 +1916,7 @@ if ($action == 'create') { // Payments already done (from payment on this expensereport) $sql = "SELECT p.rowid, p.num_payment, p.datep as dp, p.amount, p.fk_bank,"; - $sql .= "c.code as p_code, c.libelle as payment_type,"; + $sql .= "c.code as payment_code, c.libelle as payment_type,"; $sql .= "ba.rowid as baid, ba.ref as baref, ba.label, ba.number as banumber, ba.account_number, ba.fk_accountancy_journal"; $sql .= " FROM ".MAIN_DB_PREFIX."expensereport as e, ".MAIN_DB_PREFIX."payment_expensereport as p"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as c ON p.fk_typepayment = c.id"; @@ -1962,25 +1935,27 @@ if ($action == 'create') { $objp = $db->fetch_object($resql); $paymentexpensereportstatic->id = $objp->rowid; - $paymentexpensereportstatic->datepaye = $db->jdate($objp->dp); + $paymentexpensereportstatic->datep = $db->jdate($objp->dp); $paymentexpensereportstatic->ref = $objp->rowid; $paymentexpensereportstatic->num_payment = $objp->num_payment; - $paymentexpensereportstatic->payment_code = $objp->payment_code; + $paymentexpensereportstatic->type_code = $objp->payment_code; + $paymentexpensereportstatic->type_label = $objp->payment_type; print ''; print ''; print '\n"; - $labeltype = $langs->trans("PaymentType".$objp->p_code) != ("PaymentType".$objp->p_code) ? $langs->trans("PaymentType".$objp->p_code) : $objp->payment_type; + $labeltype = $langs->trans("PaymentType".$objp->payment_code) != ("PaymentType".$objp->payment_code) ? $langs->trans("PaymentType".$objp->payment_code) : $objp->payment_type; print "\n"; - if (!empty($conf->banque->enabled)) { + // Bank account + if (isModEnabled("banque")) { $bankaccountstatic->id = $objp->baid; $bankaccountstatic->ref = $objp->baref; $bankaccountstatic->label = $objp->baref; $bankaccountstatic->number = $objp->banumber; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $bankaccountstatic->account_number = $objp->account_number; $accountingjournal = new AccountingJournal($db); @@ -2055,7 +2030,7 @@ if ($action == 'create') { print ''; //print ''; print ''; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } print ''; @@ -2100,7 +2075,7 @@ if ($action == 'create') { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; // Select project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; @@ -2360,14 +2335,14 @@ if ($action == 'create') { print ''; // VAT - $selectedvat = price2num($line->vatrate).($line->vat_src_code ? ' ('.$line->vat_src_code.')' : ''); + $selectedvat = price2num($line->vatrate).(!empty($line->vat_src_code) ? ' ('.$line->vat_src_code.')' : ''); print ''; // Unit price print ''; // Unit price with tax @@ -2409,7 +2384,7 @@ if ($action == 'create') { if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) { $colspan++; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $colspan++; } if ($action != 'editline') { @@ -2452,12 +2427,14 @@ if ($action == 'create') { } else { jQuery("input[name=\"senditdisabled\"]").prop("name", "sendit"); } + // TODO Switch css fa-chevron-dow and add fa-chevron-up return false; }); $( ".aattachtodoc" ).click(function() { console.log("We click on toggle of aattachtodoc"); jQuery(".trattachnewfilenow").toggle(); jQuery(".truploadnewfilenow").hide(); + // TODO Switch css fa-chevron-dow and add fa-chevron-up return false; });'."\n"; if (is_array(GETPOST('attachfile', 'array')) && count(GETPOST('attachfile', 'array')) && $action != 'updateline') { @@ -2480,13 +2457,14 @@ if ($action == 'create') { print ''."\n"; print ''; + $tredited = ''; // Case the addfile and linkto file is used for edit (used by following tpl) include DOL_DOCUMENT_ROOT.'/expensereport/tpl/expensereport_linktofile.tpl.php'; include DOL_DOCUMENT_ROOT.'/expensereport/tpl/expensereport_addfile.tpl.php'; print ''; print ''; print ''; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } print ''; @@ -2511,19 +2489,19 @@ if ($action == 'create') { // Select date print ''; // Select project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } // Select type print ''; if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) { @@ -2535,31 +2513,32 @@ if ($action == 'create') { // Add comments print ''; // Select VAT print ''; // Unit price net print ''; // Unit price with tax print ''; // Quantity print ''; // Picture @@ -2758,7 +2737,7 @@ if ($action != 'create' && $action != 'edit' && $action != 'editline') { } // If bank module is used - if ($user->rights->expensereport->to_paid && !empty($conf->banque->enabled) && $object->status == ExpenseReport::STATUS_APPROVED) { + if ($user->rights->expensereport->to_paid && isModEnabled("banque") && $object->status == ExpenseReport::STATUS_APPROVED) { // Pay if ($remaintopay == 0) { print '
    '.$langs->trans('DoPayment').'
    '; diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index da93c26ceaa..63cbeaad67b 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -129,6 +129,10 @@ class ExpenseReport extends CommonObject public $localtax1; // for backward compatibility (real field should be total_localtax1 defined into CommonObject) public $localtax2; // for backward compatibility (real field should be total_localtax2 defined into CommonObject) + public $statuts = array(); + public $statuts_short = array(); + public $statuts_logo; + /** * Draft status @@ -363,7 +367,7 @@ class ExpenseReport extends CommonObject } if (!$error) { - $result = $this->update_price(); + $result = $this->update_price(1); if ($result > 0) { if (!$notrigger) { // Call trigger @@ -767,6 +771,7 @@ class ExpenseReport extends CommonObject $sql .= " f.date_valid as datev,"; $sql .= " f.date_approve as datea,"; $sql .= " f.fk_user_creat as fk_user_creation,"; + $sql .= " f.fk_user_author as fk_user_author,"; $sql .= " f.fk_user_modif as fk_user_modification,"; $sql .= " f.fk_user_valid,"; $sql .= " f.fk_user_approve"; @@ -980,6 +985,8 @@ class ExpenseReport extends CommonObject return -1; } } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1323,8 +1330,6 @@ class ExpenseReport extends CommonObject public function set_save_from_refuse($fuser) { // phpcs:enable - global $conf, $langs; - // Sélection de la date de début de la NDF $sql = 'SELECT date_debut'; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element; @@ -1352,6 +1357,8 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::set_save_from_refuse expensereport already with save status", LOG_WARNING); } + + return 0; } /** @@ -1460,6 +1467,8 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::setDeny expensereport already with refuse status", LOG_WARNING); } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1526,6 +1535,8 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::set_unpaid expensereport already with unpaid status", LOG_WARNING); } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1548,7 +1559,7 @@ class ExpenseReport extends CommonObject $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql .= " SET fk_statut = ".self::STATUS_CANCELED.", fk_user_cancel = ".((int) $fuser->id); $sql .= ", date_cancel='".$this->db->idate($this->date_cancel)."'"; - $sql .= " ,detail_cancel='".$this->db->escape($detail)."'"; + $sql .= ", detail_cancel='".$this->db->escape($detail)."'"; $sql .= " WHERE rowid = ".((int) $this->id); dol_syslog(get_class($this)."::set_cancel", LOG_DEBUG); @@ -1580,6 +1591,7 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::set_cancel expensereport already with cancel status", LOG_WARNING); } + return 0; } /** @@ -1728,9 +1740,9 @@ class ExpenseReport extends CommonObject /** * Update total of an expense report when you add a line. * - * @param string $ligne_total_ht Amount without taxes + * @param string $ligne_total_ht Amount without taxes * @param string $ligne_total_tva Amount of all taxes - * @return void + * @return int */ public function update_totaux_add($ligne_total_ht, $ligne_total_tva) { @@ -1853,7 +1865,7 @@ class ExpenseReport extends CommonObject $result = $this->line->insert(0, true); if ($result > 0) { - $result = $this->update_price(); // This method is designed to add line from user input so total calculation must be done using 'auto' mode. + $result = $this->update_price(1); // This method is designed to add line from user input so total calculation must be done using 'auto' mode. if ($result > 0) { $this->db->commit(); return $this->line->id; @@ -1879,7 +1891,7 @@ class ExpenseReport extends CommonObject * * @param int $type Type of line * @param string $seller Seller, but actually he is unknown - * @return true or false + * @return boolean true or false */ public function checkRules($type = 0, $seller = '') { @@ -2065,6 +2077,7 @@ class ExpenseReport extends CommonObject if ($this->status == self::STATUS_DRAFT || $this->status == self::STATUS_REFUSED) { $this->db->begin(); + $error = 0; $type = 0; // TODO What if type is service ? // We don't know seller and buyer for expense reports @@ -2148,10 +2161,13 @@ class ExpenseReport extends CommonObject $this->applyOffset(); $this->checkRules(); - $error = 0; - $result = $this->line->update($user); - if ($result > 0 && !$notrigger) { + $result = $this->line->update($user); + if ($result < 0) { + $error++; + } + + if (!$error && !$notrigger) { // Call triggers $result = $this->call_trigger('EXPENSE_REPORT_DET_MODIFY', $user); if ($result < 0) { @@ -2160,7 +2176,7 @@ class ExpenseReport extends CommonObject // End call triggers } - if ($result > 0 && $error == 0) { + if (!$error) { $this->db->commit(); return 1; } else { @@ -2170,6 +2186,8 @@ class ExpenseReport extends CommonObject return -2; } } + + return 0; } /** @@ -2208,7 +2226,7 @@ class ExpenseReport extends CommonObject return -1; } - $this->update_price(); + $this->update_price(1); $this->db->commit(); @@ -2563,14 +2581,13 @@ class ExpenseReport extends CommonObject * \brief Compute the cost of the kilometers expense based on the number of kilometers and the vehicule category * * @param int $fk_cat Category of the vehicule used - * @param real $qty Number of kilometers - * @param real $tva VAT rate + * @param float $qty Number of kilometers + * @param float $tva VAT rate * @return int <0 if KO, total ttc if OK */ public function computeTotalKm($fk_cat, $qty, $tva) { - global $langs,$user,$db,$conf; - + global $langs, $db, $conf; $cumulYearQty = 0; $ranges = array(); @@ -2805,8 +2822,11 @@ class ExpenseReportLine extends CommonObjectLine $this->rule_warning_message = $objp->rule_warning_message; $this->db->free($result); + + return $this->id; } else { dol_print_error($this->db); + return -1; } } @@ -2819,7 +2839,7 @@ class ExpenseReportLine extends CommonObjectLine */ public function insert($notrigger = 0, $fromaddline = false) { - global $langs, $user, $conf; + global $user, $conf; $error = 0; @@ -2887,7 +2907,7 @@ class ExpenseReportLine extends CommonObjectLine if (!$fromaddline) { $tmpparent = new ExpenseReport($this->db); $tmpparent->fetch($this->fk_expensereport); - $result = $tmpparent->update_price(); + $result = $tmpparent->update_price(1); if ($result < 0) { $error++; $this->error = $tmpparent->error; @@ -3014,7 +3034,7 @@ class ExpenseReportLine extends CommonObjectLine $tmpparent = new ExpenseReport($this->db); $result = $tmpparent->fetch($this->fk_expensereport); if ($result > 0) { - $result = $tmpparent->update_price(); + $result = $tmpparent->update_price(1); if ($result < 0) { $error++; $this->error = $tmpparent->error; diff --git a/htdocs/expensereport/class/expensereport_ik.class.php b/htdocs/expensereport/class/expensereport_ik.class.php index 0d374f1c722..503fa92b108 100644 --- a/htdocs/expensereport/class/expensereport_ik.class.php +++ b/htdocs/expensereport/class/expensereport_ik.class.php @@ -120,13 +120,12 @@ class ExpenseReportIk extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - if ($result > 0 && !empty($this->table_element_line)) { - $this->fetchLines(); - } + return $result; } + /** * Update object into database * diff --git a/htdocs/expensereport/class/expensereport_rule.class.php b/htdocs/expensereport/class/expensereport_rule.class.php index 02bf8b8ce5c..d695359229d 100644 --- a/htdocs/expensereport/class/expensereport_rule.class.php +++ b/htdocs/expensereport/class/expensereport_rule.class.php @@ -171,6 +171,19 @@ class ExpenseReportRule extends CommonObject } + /** + * Load object lines in memory from the database + * + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetchLines() + { + $this->lines = array(); + + $result = $this->fetchLinesCommon(); + return $result; + } + /** * Update object into database * diff --git a/htdocs/expensereport/class/paymentexpensereport.class.php b/htdocs/expensereport/class/paymentexpensereport.class.php index 5f9e9f17e6f..c0ba86d55ff 100644 --- a/htdocs/expensereport/class/paymentexpensereport.class.php +++ b/htdocs/expensereport/class/paymentexpensereport.class.php @@ -137,14 +137,17 @@ class PaymentExpenseReport extends CommonObject if (isset($this->note_public)) { $this->note_public = trim($this->note_public); } + if (isset($this->note_private)) { + $this->note_private = trim($this->note_private); + } if (isset($this->fk_bank)) { - $this->fk_bank = trim($this->fk_bank); + $this->fk_bank = ((int) $this->fk_bank); } if (isset($this->fk_user_creat)) { - $this->fk_user_creat = trim($this->fk_user_creat); + $this->fk_user_creat = ((int) $this->fk_user_creat); } if (isset($this->fk_user_modif)) { - $this->fk_user_modif = trim($this->fk_user_modif); + $this->fk_user_modif = ((int) $this->fk_user_modif); } $totalamount = 0; @@ -170,7 +173,7 @@ class PaymentExpenseReport extends CommonObject $sql .= " '".$this->db->idate($this->datepaid)."',"; $sql .= " ".price2num($totalamount).","; $sql .= " ".((int) $this->fk_typepayment).", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note_public)."', ".((int) $user->id).","; - $sql .= " 0)"; + $sql .= " 0)"; // fk_bank is ID of transaction into ll_bank dol_syslog(get_class($this)."::create", LOG_DEBUG); $resql = $this->db->query($sql); @@ -314,7 +317,7 @@ class PaymentExpenseReport extends CommonObject $sql .= " note=".(isset($this->note) ? "'".$this->db->escape($this->note)."'" : "null").","; $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null"); $sql .= " WHERE rowid=".((int) $this->id); @@ -513,7 +516,7 @@ class PaymentExpenseReport extends CommonObject $error = 0; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $acc = new Account($this->db); @@ -540,7 +543,7 @@ class PaymentExpenseReport extends CommonObject ); // Update fk_bank in llx_paiement. - // On connait ainsi le paiement qui a genere l'ecriture bancaire + // So we wil know the payment that have generated the bank transaction if ($bank_line_id > 0) { $result = $this->update_fk_bank($bank_line_id); if ($result <= 0) { @@ -585,6 +588,7 @@ class PaymentExpenseReport extends CommonObject } } else { $this->error = $acc->error; + $this->errors = $acc->errors; $error++; } } diff --git a/htdocs/expensereport/document.php b/htdocs/expensereport/document.php index 8c3b5f56549..a4572c9a169 100644 --- a/htdocs/expensereport/document.php +++ b/htdocs/expensereport/document.php @@ -28,6 +28,7 @@ * \brief Page of linked files onto trip and expens reports */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; diff --git a/htdocs/expensereport/index.php b/htdocs/expensereport/index.php index 504101a1720..c8048e78621 100644 --- a/htdocs/expensereport/index.php +++ b/htdocs/expensereport/index.php @@ -28,6 +28,7 @@ * \brief Page list of expenses */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; @@ -77,7 +78,7 @@ $childids[] = $user->id; $help_url = "EN:Module_Expense_Reports|FR:Module_Notes_de_frais"; -llxHeader('', $langs->trans("ListOfFees"), $help_url); +llxHeader('', $langs->trans("TripsAndExpenses"), $help_url); $label = $somme = $nb = array(); diff --git a/htdocs/expensereport/info.php b/htdocs/expensereport/info.php index 605197d14ac..c2216185b5c 100644 --- a/htdocs/expensereport/info.php +++ b/htdocs/expensereport/info.php @@ -23,6 +23,7 @@ * \brief Page to show a trip information */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 24432cb7cf1..ad16d5fb09f 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -29,6 +29,7 @@ * \brief list of expense reports */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -253,7 +254,7 @@ $formexpensereport = new FormExpenseReport($db); $fuser = new User($db); -$title = $langs->trans("ListOfTrips"); +$title = $langs->trans("TripsAndExpenses"); llxHeader('', $title); $max_year = 5; @@ -284,6 +285,9 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."expensereport as d"; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (d.rowid = ef.fk_object)"; @@ -339,20 +343,32 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); @@ -482,7 +498,7 @@ if ($resql) { if ($canedit) { print ''.$langs->trans("AddTrip").''; } else { - print ''.$langs->trans("AddTrip").''; + print ''.$langs->trans("AddTrip").''; } print ''; @@ -531,7 +547,7 @@ if ($resql) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
    '; @@ -539,6 +555,13 @@ if ($resql) { // Filters print '
    '; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['d.ref']['checked'])) { print ''; } // Action column - print ''; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } print "\n"; print ''; + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); + } if (!empty($arrayfields['d.ref']['checked'])) { print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], "d.ref", "", $param, '', $sortfield, $sortorder); } @@ -675,7 +703,9 @@ if ($resql) { if (!empty($arrayfields['d.fk_statut']['checked'])) { print_liste_field_titre($arrayfields['d.fk_statut']['label'], $_SERVER["PHP_SELF"], "d.fk_statut", "", $param, 'align="right"', $sortfield, $sortorder); } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); + } print "\n"; $total_total_ht = 0; @@ -711,6 +741,18 @@ if ($resql) { print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } // Ref if (!empty($arrayfields['d.ref']['checked'])) { print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/expensereport/note.php b/htdocs/expensereport/note.php index 5649f2144e4..18c99dfd229 100644 --- a/htdocs/expensereport/note.php +++ b/htdocs/expensereport/note.php @@ -24,6 +24,7 @@ * \brief Tab for notes on expense reports */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/expensereport/payment/card.php b/htdocs/expensereport/payment/card.php index 847c059a9c6..bdc7b51312a 100644 --- a/htdocs/expensereport/payment/card.php +++ b/htdocs/expensereport/payment/card.php @@ -21,12 +21,13 @@ * \brief Tab payment of an expense report */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/expensereport/modules_expensereport.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; } @@ -120,7 +121,7 @@ print ''; // Status - print ''; + print ''; print "\n"; @@ -237,12 +238,13 @@ if ($resql) { */ print '
    '; +// Delete if ($action == '') { if ($user->rights->expensereport->supprimer) { if (!$disable_delete) { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 1); } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($title_button, $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 0); } } } diff --git a/htdocs/expensereport/payment/info.php b/htdocs/expensereport/payment/info.php index a654c77b6cd..c1e00ffa0fb 100644 --- a/htdocs/expensereport/payment/info.php +++ b/htdocs/expensereport/payment/info.php @@ -24,6 +24,7 @@ * \brief Tab payment info */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; @@ -51,7 +52,7 @@ $confirm = GETPOST('confirm', 'alpha'); llxHeader('', $langs->trans("Payment")); $object = new PaymentExpenseReport($db); -$object->fetch($id, $ref); +$object->fetch($id); $object->info($object->id); $head = payment_expensereport_prepare_head($object); diff --git a/htdocs/expensereport/payment/list.php b/htdocs/expensereport/payment/list.php index 3f3e017612d..cb93aae4ff0 100644 --- a/htdocs/expensereport/payment/list.php +++ b/htdocs/expensereport/payment/list.php @@ -33,6 +33,7 @@ * \brief Payment list for expense reports */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -103,7 +104,7 @@ $arrayfields = array( 'u.login' =>array('label'=>"User", 'checked'=>1, 'position'=>30), 'c.libelle' =>array('label'=>"Type", 'checked'=>1, 'position'=>40), 'pndf.num_payment' =>array('label'=>"Numero", 'checked'=>1, 'position'=>50, 'tooltip'=>"ChequeOrTransferNumber"), - 'ba.label' =>array('label'=>"Account", 'checked'=>1, 'position'=>60, 'enable'=>(!empty($conf->banque->enabled))), + 'ba.label' =>array('label'=>"Account", 'checked'=>1, 'position'=>60, 'enable'=>(isModEnabled("banque"))), 'pndf.amount' =>array('label'=>"Amount", 'checked'=>1, 'position'=>70), ); $arrayfields = dol_sort_array($arrayfields, 'position'); diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php index 185b3cdc139..6456bf80d7f 100644 --- a/htdocs/expensereport/payment/payment.php +++ b/htdocs/expensereport/payment/payment.php @@ -23,6 +23,7 @@ * \brief Page to add payment of an expense report */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; @@ -75,7 +76,8 @@ if ($action == 'add_payment') { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors'); $error++; } - if (!empty($conf->banque->enabled) && !($accountid > 0)) { + + if (isModEnabled("banque") && !($accountid > 0)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToDebit")), null, 'errors'); $error++; } @@ -87,14 +89,16 @@ if ($action == 'add_payment') { // Read possible payments foreach ($_POST as $key => $value) { if (substr($key, 0, 7) == 'amount_') { - $amounts[$expensereport->fk_user_author] = price2num(GETPOST($key)); - $total += price2num(GETPOST($key)); + if (GETPOST($key)) { + $amounts[$expensereport->fk_user_author] = price2num(GETPOST($key)); + $total += price2num(GETPOST($key)); + } } } if (count($amounts) <= 0) { $error++; - $errmsg = 'ErrorNoPaymentDefined'; + setEventMessages('ErrorNoPaymentDefined', null, 'errors'); } if (!$error) { @@ -109,6 +113,7 @@ if ($action == 'add_payment') { $payment->fk_typepayment = GETPOST("fk_typepayment", 'int'); $payment->num_payment = GETPOST("num_payment", 'alphanothtml'); $payment->note_public = GETPOST("note_public", 'restricthtml'); + $payment->fk_bank = $accountid; if (!$error) { $paymentid = $payment->create($user); @@ -120,7 +125,7 @@ if ($action == 'add_payment') { if (!$error) { $result = $payment->addPaymentToBank($user, 'payment_expensereport', '(ExpenseReportPayment)', $accountid, '', ''); - if (!$result > 0) { + if ($result <= 0) { setEventMessages($payment->error, $payment->errors, 'errors'); $error++; } @@ -130,7 +135,7 @@ if ($action == 'add_payment') { $payment->fetch($paymentid); if ($expensereport->total_ttc - $payment->amount == 0) { $result = $expensereport->setPaid($expensereport->id, $user); - if (!$result > 0) { + if (!($result > 0)) { setEventMessages($payment->error, $payment->errors, 'errors'); $error++; } @@ -202,7 +207,7 @@ if ($action == 'create' || empty($action)) { print '
    '.$langs->trans("Description").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyShipped").''.$langs->trans("KeepToShip").''.$langs->trans("RealStock").''.$langs->trans("Description").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyShipped").''.$langs->trans("KeepToShip").''.$langs->trans("RealStock").'  
    '; print $product->stock_reel; if ($product->stock_reel < $toBeShipped[$objp->fk_product]) { print ' '.img_warning($langs->trans("StockTooLow")); + if (!empty($conf->global->STOCK_CORRECT_STOCK_IN_SHIPMENT)) { + $nbPiece = $toBeShipped[$objp->fk_product] - $product->stock_reel; + print '   '.$langs->trans("GoTo").' '.$langs->trans("CorrectStock").''; + } } print '
    '; print $langs->trans("WarehouseSource"); //print '
    '.$langs->trans('NotePublic').''; @@ -1476,6 +1482,8 @@ if ($action == 'create') { print '
    '.$langs->trans('NotePrivate').''.$langs->trans('Payments').''.$langs->trans('Date').''.$langs->trans('Type').''.$langs->trans('BankAccount').''.$langs->trans('Amount').'
    '; print $paymentexpensereportstatic->getNomUrl(1); print ''.dol_print_date($db->jdate($objp->dp), 'day')."".$labeltype.' '.$objp->num_payment."'.$langs->trans('LineNb').''.$langs->trans('Piece').''.$langs->trans('Date').''.$langs->trans('Project').''.$langs->trans('Type').''.dol_print_date($db->jdate($line->date), 'day').''; if ($line->fk_project > 0) { $projecttmp->id = $line->fk_project; @@ -2112,7 +2087,7 @@ if ($action == 'create') { } $titlealt = ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; $accountingaccount = new AccountingAccount($db); $resaccountingaccount = $accountingaccount->fetch(0, $line->type_fees_accountancy_code, 1); @@ -2261,7 +2236,7 @@ if ($action == 'create') { if ($action == 'editline' && $line->rowid == GETPOST('rowid', 'int')) { // Add line with link to add new file or attach line to an existing file $colspan = 11; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $colspan++; } if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) { @@ -2322,7 +2297,7 @@ if ($action == 'create') { } } - $tredited = 'tredited'; + $tredited = 'tredited'; // Case the addfile and linkto file is used for edit (used by following tpl) include DOL_DOCUMENT_ROOT.'/expensereport/tpl/expensereport_addfile.tpl.php'; include DOL_DOCUMENT_ROOT.'/expensereport/tpl/expensereport_linktofile.tpl.php'; @@ -2336,7 +2311,7 @@ if ($action == 'create') { print ''; $formproject->select_projects(-1, $line->fk_project, 'fk_project', 0, 0, $projectRequired ? 0 : 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth300'); print ''; print $form->load_tva('vatrate', (GETPOSTISSET("vatrate") ? GETPOST("vatrate") : $selectedvat), $mysoc, '', 0, 0, '', false, 1); print ''; - print ''; + print ''; print '
    '.$langs->trans('Date').''.$form->textwithpicto($langs->trans('Project'), $langs->trans("ClosedProjectsAreHidden")).''.$langs->trans('Type').''; - print $form->selectDate($date ? $date : -1, 'date', 0, 0, 0, '', 1, 1); + print $form->selectDate(!empty($date) ? $date : -1, 'date', 0, 0, 0, '', 1, 1); print ''; - $formproject->select_projects(-1, $fk_project, 'fk_project', 0, 0, $projectRequired ? 0 : 1, -1, 0, 0, 0, '', 0, 0, 'maxwidth300'); + $formproject->select_projects(-1, !empty($fk_project) ? $fk_project : 0, 'fk_project', 0, 0, $projectRequired ? 0 : 1, -1, 0, 0, 0, '', 0, 0, 'maxwidth300'); print ''; - print $formexpensereport->selectTypeExpenseReport($fk_c_type_fees, 'fk_c_type_fees', 1); + print $formexpensereport->selectTypeExpenseReport(!empty($fk_c_type_fees) ? $fk_c_type_fees : "", 'fk_c_type_fees', 1); print ''; - print ''; + print ''; print ''; $defaultvat = -1; if (!empty($conf->global->EXPENSEREPORT_NO_DEFAULT_VAT)) { + // If option to have no default VAT on expense report is on, we force MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS = 'none'; } - print $form->load_tva('vatrate', ($vatrate != '' ? $vatrate : $defaultvat), $mysoc, '', 0, 0, '', false, 1); + print $form->load_tva('vatrate', (!empty($vatrate) ? $vatrate : $defaultvat), $mysoc, '', 0, 0, '', false, 1); print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; // We must be able to enter decimal qty + print ''; // We must be able to enter decimal qty print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -625,14 +648,19 @@ if ($resql) { print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -855,15 +897,17 @@ if ($resql) { } } // Action column - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '.$langs->trans('Note').''.nl2 $disable_delete = 0; // Bank account -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { if ($object->bank_account) { $bankline = new AccountLine($db); $bankline->fetch($object->bank_line); @@ -208,7 +209,7 @@ if ($resql) { print ''.price($objp->total_ttc - $objp->amount).''.$expensereport->getLibStatut(4, $objp->amount).''.$expensereport->getLibStatut(4).'
    '."\n"; print ''; - print ''; + print ''; $sql = "SELECT sum(p.amount) as total"; $sql .= " FROM ".MAIN_DB_PREFIX."payment_expensereport as p, ".MAIN_DB_PREFIX."expensereport as e"; @@ -214,8 +219,8 @@ if ($action == 'create' || empty($action)) { $sumpaid = $obj->total; $db->free($resql); } - print ''; - print ''; + print ''; + print ''; print '
    '.$langs->trans("Period").''.get_date_range($expensereport->date_debut, $expensereport->date_fin, "", $langs, 0).'
    '.$langs->trans("Amount").''.price($expensereport->total_ttc, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("Amount").''.price($expensereport->total_ttc, 0, $langs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("AlreadyPaid").''.price($sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("RemainderToPay").''.price($total - $sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("AlreadyPaid").''.price($sumpaid, 0, $langs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("RemainderToPay").''.price($total - $sumpaid, 0, $langs, 1, -1, -1, $conf->currency).'
    '; @@ -223,6 +228,8 @@ if ($action == 'create' || empty($action)) { print dol_get_fiche_end(); + print '
    '; + print dol_get_fiche_head(); print ''."\n"; @@ -239,11 +246,12 @@ if ($action == 'create' || empty($action)) { print "\n"; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; print ''; print ''; } @@ -277,7 +285,7 @@ if ($action == 'create' || empty($action)) { print ''; print "\n"; - $total = 0; + $total_ttc = 0; $totalrecu = 0; while ($i < $num) { @@ -298,7 +306,7 @@ if ($action == 'create' || empty($action)) { } $remaintopay = $objp->total_ttc - $sumpaid; // autofill remainder amount print ''; // autofill remainder amount - print ''; + print ''; } else { print '-'; } @@ -306,9 +314,8 @@ if ($action == 'create' || empty($action)) { print "\n"; - $total += $objp->total; $total_ttc += $objp->total_ttc; - $totalrecu += $objp->am; + $totalrecu += $sumpaid; $i++; } if ($i > 1) { diff --git a/htdocs/expensereport/stats/index.php b/htdocs/expensereport/stats/index.php index ded5a7a3805..e9fdd03a2be 100644 --- a/htdocs/expensereport/stats/index.php +++ b/htdocs/expensereport/stats/index.php @@ -24,6 +24,7 @@ * \brief Page for statistics of module trips and expenses */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereportstats.class.php'; @@ -53,7 +54,7 @@ if ($user->socid) { } $result = restrictedArea($user, 'expensereport', $id, ''); -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ? GETPOST('year', 'int') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; diff --git a/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php b/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php index 3835740dd40..fd25a1fff4b 100644 --- a/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php +++ b/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php @@ -136,8 +136,18 @@ if (empty($conf->global->EXPENSEREPORT_DISABLE_ATTACHMENT_ON_LINES)) { print ''; } else { - print 'global->MAIN_OPTIMIZEFORTEXTBROWSER) ? ' style="display: none"' : '').'>'; - print 'global->MAIN_OPTIMIZEFORTEXTBROWSER) ? ' style="display: none"' : '').'>'; + if (!empty($tredited)) { + print ''; + } + print ''; } diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index 883ba7ea11e..4b8be1dc74d 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -175,21 +175,21 @@ class Export $this->array_export_perms[$i] = $bool; // Icon $this->array_export_icon[$i] = (isset($module->export_icon[$r]) ? $module->export_icon[$r] : $module->picto); - // Code du dataset export + // Code of the export dataset / Code du dataset export $this->array_export_code[$i] = $module->export_code[$r]; // Define a key for sort $this->array_export_code_for_sort[$i] = $module->module_position.'_'.$module->export_code[$r]; // Add a key into the module - // Libelle du dataset export + // Export Dataset Label / Libelle du dataset export $this->array_export_label[$i] = $module->getExportDatasetLabel($r); - // Tableau des champ a exporter (cle=champ, valeur=libelle) + // Table of fields to export / Tableau des champ a exporter (cle=champ, valeur=libelle) $this->array_export_fields[$i] = $module->export_fields_array[$r]; - // Tableau des champs a filtrer (cle=champ, valeur1=type de donnees) on verifie que le module a des filtres + // Table of fields to be filtered / Tableau des champs a filtrer (cle=champ, valeur1=type de donnees) on verifie que le module a des filtres $this->array_export_TypeFields[$i] = (isset($module->export_TypeFields_array[$r]) ? $module->export_TypeFields_array[$r] : ''); - // Tableau des entites a exporter (cle=champ, valeur=entite) + // Table of entities for export / Tableau des entites a exporter (cle=champ, valeur=entite) $this->array_export_entities[$i] = $module->export_entities_array[$r]; // Tableau des entites qui requiert abandon du DISTINCT (cle=entite, valeur=champ id child records) $this->array_export_dependencies[$i] = (!empty($module->export_dependencies_array[$r]) ? $module->export_dependencies_array[$r] : ''); - // Tableau des operations speciales sur champ + // Table of special field operations / Tableau des operations speciales sur champ $this->array_export_special[$i] = (!empty($module->export_special_array[$r]) ? $module->export_special_array[$r] : ''); // Array of examples $this->array_export_examplevalues[$i] = (!empty($module->export_examplevalues_array[$r]) ? $module->export_examplevalues_array[$r] : null); @@ -461,9 +461,9 @@ class Export } break; case 'List': - // 0 : Type du champ - // 1 : Nom de la table - // 2 : Nom du champ contenant le libelle + // 0 : Type of the field / Type du champ + // 1 : Name of the table / Nom de la table + // 2 : Name of the field containing the label / Nom du champ contenant le libelle // 3 : Name of field with key (if it is not "rowid"). Used this field as key for combo list. // 4 : Name of element for getEntity(). @@ -700,7 +700,7 @@ class Export // Export of compute field does not work. $obj contains $obj->alias_field and formula may contains $obj->field // Also the formula may contains objects of class that are not loaded. $computestring = $this->array_export_special[$indice][$key]; - //$tmp = dol_eval($computestring, 1, 0); + //$tmp = dol_eval($computestring, 1, 0, '1'); //$obj->$alias = $tmp; $this->error = "ERROPNOTSUPPORTED. Operation ".$computestring." not supported. Export of 'computed' extrafields is not yet supported, please remove field."; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 4f001238134..f35ae3a3121 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -451,7 +451,7 @@ if ($step == 1 || !$datatoexport) { print $label; print ''; $htmltabloflibs .= ''."\n"; - $liste = $objmodelexport->liste_modeles($db); + $liste = $objmodelexport->listOfAvailableExportFormat($db); $listeall = $liste; foreach ($listeall as $key => $val) { if (preg_match('/__\(Disabled\)__/', $listeall[$key])) { diff --git a/htdocs/exports/index.php b/htdocs/exports/index.php index 3ba5e0a3591..6039a9c447a 100644 --- a/htdocs/exports/index.php +++ b/htdocs/exports/index.php @@ -41,7 +41,7 @@ $result = restrictedArea($user, 'export'); $form = new Form($db); -$help_url = 'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones'; +$help_url = 'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones|DE:Modul_DatenExporte'; llxHeader('', $langs->trans("ExportsArea"), $help_url); @@ -72,7 +72,7 @@ print ''; include_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; $model = new ModeleExports($db); -$liste = $model->liste_modeles($db); // This is not a static method for exports because method load non static properties +$liste = $model->listOfAvailableExportFormat($db); // This is not a static method for exports because method load non static properties foreach ($liste as $key => $val) { if (preg_match('/__\(Disabled\)__/', $liste[$key])) { diff --git a/htdocs/externalsite/admin/index.php b/htdocs/externalsite/admin/index.php index 0b55a297be9..deb05ade024 100644 --- a/htdocs/externalsite/admin/index.php +++ b/htdocs/externalsite/admin/index.php @@ -30,6 +30,7 @@ if (!defined('NOSCANPOSTFORINJECTION')) { define('NOSCANPOSTFORINJECTION', '1'); // Do not check anti CSRF attack test } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; diff --git a/htdocs/externalsite/frames.php b/htdocs/externalsite/frames.php index 7462dd82c35..6b958a15a67 100644 --- a/htdocs/externalsite/frames.php +++ b/htdocs/externalsite/frames.php @@ -26,10 +26,11 @@ * /externalsite/frames.php?keyforcontent=EXTERNAL_SITE_URL_abc to show URL defined into $conf->global->EXTERNAL_SITE_URL_abc */ +// Load Dolibarr environment require '../main.inc.php'; // Load translation files required by the page -$langs->load("externalsite"); +$langs->load("other"); $mainmenu = GETPOST('mainmenu', "aZ09"); diff --git a/htdocs/externalsite/frametop.php b/htdocs/externalsite/frametop.php index 7aac7955262..f774d89d0c6 100644 --- a/htdocs/externalsite/frametop.php +++ b/htdocs/externalsite/frametop.php @@ -25,7 +25,7 @@ require "../main.inc.php"; // Load translation files required by the page -$langs->load("externalsite"); +$langs->load("other"); top_htmlhead("", ""); diff --git a/htdocs/fichinter/admin/fichinter_extrafields.php b/htdocs/fichinter/admin/fichinter_extrafields.php index 31459b22b5d..2a6a8d603d1 100644 --- a/htdocs/fichinter/admin/fichinter_extrafields.php +++ b/htdocs/fichinter/admin/fichinter_extrafields.php @@ -26,6 +26,7 @@ */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,13 +81,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print '
    '; diff --git a/htdocs/fichinter/admin/fichinterdet_extrafields.php b/htdocs/fichinter/admin/fichinterdet_extrafields.php index 5fb1567efe4..ddc34952dc0 100644 --- a/htdocs/fichinter/admin/fichinterdet_extrafields.php +++ b/htdocs/fichinter/admin/fichinterdet_extrafields.php @@ -26,6 +26,7 @@ */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -81,13 +82,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print '
    '; diff --git a/htdocs/fichinter/card-rec.php b/htdocs/fichinter/card-rec.php index 1a289e61e2e..22f77546090 100644 --- a/htdocs/fichinter/card-rec.php +++ b/htdocs/fichinter/card-rec.php @@ -30,6 +30,7 @@ * \brief Page to show predefined fichinter */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinterrec.class.php'; @@ -37,11 +38,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcontract.class.php'; } @@ -51,7 +52,12 @@ $langs->loadLangs(array("interventions", "admin", "compta", "bills")); // Security check $id = (GETPOST('fichinterid', 'int') ?GETPOST('fichinterid', 'int') : GETPOST('id', 'int')); +$ref = GETPOST('ref', 'alpha'); +$date_next_execution = GETPOST('date_next_execution', 'alpha'); $action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); +$socid = GETPOST('socid', 'int'); if ($user->socid) { $socid = $user->socid; } @@ -61,12 +67,19 @@ if ($action == "create" || $action == "add") { } $result = restrictedArea($user, 'ficheinter', $id, $objecttype); -if ($page == -1) { +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters $page = 0; } - -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + $sortorder = GETPOST('sortorder', 'aZ09comma'); $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -101,6 +114,17 @@ $arrayfields = array( * Actions */ +if ($cancel) { + /*var_dump($cancel);var_dump($backtopage);var_dump($backtopageforcancel);exit;*/ + if (!empty($backtopageforcancel)) { + header("Location: ".$backtopageforcancel); + exit; + } elseif (!empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + $action = ''; +} // Create predefined intervention if ($action == 'add') { @@ -129,6 +153,8 @@ if ($action == 'add') { setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("Date")), null, 'errors'); $action = "create"; $error++; + } else { + $date_next_execution = dol_mktime($rehour, $remin, 0, $remonth, $reday, $reyear); } if ($nb_gen_max === '') { setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("MaxPeriodNumber")), null, 'errors'); @@ -150,7 +176,6 @@ if ($action == 'add') { $object->nb_gen_max = $nb_gen_max; $object->auto_validate = GETPOST('auto_validate', 'int'); - $date_next_execution = dol_mktime($rehour, $remin, 0, $remonth, $reday, $reyear); $object->date_when = $date_next_execution; if ($object->create($user) > 0) { @@ -178,7 +203,6 @@ if ($action == 'add') { $newinter->entity = $object->entity; $newinter->duree = $object->duree; - $newinter->datei = $object->date; $newinter->description = $object->description; $newinter->note_private = $object->note_private; @@ -210,7 +234,7 @@ if ($action == 'add') { } elseif ($action == 'delete' && $user->rights->ficheinter->supprimer) { // delete modele $object->fetch($id); - $object->delete(); + $object->delete($user); $id = 0; header('Location: '.$_SERVER["PHP_SELF"]); exit; @@ -242,10 +266,10 @@ llxHeader('', $langs->trans("RepeatableIntervention"), $help_url); $form = new Form($db); $companystatic = new Societe($db); -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $contratstatic = new Contrat($db); } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $projectstatic = new Project($db); } @@ -268,15 +292,16 @@ if ($action == 'create') { print ''; print ''; print ''; + print ''; print ''; print dol_get_fiche_head(); $rowspan = 4; - if (!empty($conf->projet->enabled) && $object->fk_project > 0) { + if (isModEnabled('project') && $object->fk_project > 0) { $rowspan++; } - if (!empty($conf->contrat->enabled) && $object->fk_contrat > 0) { + if (isModEnabled('contrat') && $object->fk_contrat > 0) { $rowspan++; } @@ -315,7 +340,7 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); print ""; } @@ -357,7 +382,7 @@ if ($action == 'create') { // First date of execution for cron print ""; // Contract - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { $langs->load('contracts'); print ''; print ''; print_liste_field_titre("Ref", $_SERVER['PHP_SELF'], "f.titre", "", "", 'width="200px"', $sortfield, $sortorder, 'left '); print_liste_field_titre("Company", $_SERVER['PHP_SELF'], "s.nom", "", "", 'width="200px"', $sortfield, $sortorder, 'left '); - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { print_liste_field_titre("Contract", $_SERVER['PHP_SELF'], "f.fk_contrat", "", "", 'width="100px"', $sortfield, $sortorder, 'left '); } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print_liste_field_titre("Project", $_SERVER['PHP_SELF'], "f.fk_project", "", "", 'width="100px"', $sortfield, $sortorder, 'left '); } print_liste_field_titre("Duration", $_SERVER['PHP_SELF'], 'f.duree', '', '', 'width="50px"', $sortfield, $sortorder, 'right '); @@ -835,7 +858,7 @@ if ($action == 'create') { print ''; } - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { print ''; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load("project"); @@ -998,7 +1000,7 @@ if ($action == 'create') { print '"; - if (!empty($conf->multicurrency->enabled)) + if (isModEnabled("multicurrency")) { print ''; print '"; @@ -1062,9 +1064,7 @@ if ($action == 'create') { print ''; } } elseif ($id > 0 || !empty($ref)) { - /* - * Affichage en mode visu - */ + // View mode $object->fetch($id, $ref); $object->fetch_thirdparty(); @@ -1159,9 +1159,9 @@ if ($action == 'create') { $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->ficheinter->creer, 'string', '', 0, 1); $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->ficheinter->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'customer'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'customer'); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->ficheinter->creer) { @@ -1201,7 +1201,7 @@ if ($action == 'create') { print '
    '; print '
    '; - print '
    '.$langs->trans('AccountToDebit').''; - $form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid", "int") : $expensereport->accountid, "accountid", 0, '', 2); // Show open bank account list + print img_picto('', 'bank_account', 'class="pictofixedwidth"'); + $form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid", "int") : 0, "accountid", 0, '', 2); // Show open bank account list print '
    '.$langs->trans("Amount").'
    '; + if (empty($tredited)) { + $css = 'oddeven nohover trattachnewfilenow'; + $newcolspan = $colspan; + } else { + $css = 'trattachnewfilenow tredited'; + $newcolspan = $colspan - 1; + } + print '
    '; print ''.$langs->trans("NoFilesUploadedYet").''; print '
    '; if ($objexport->array_export_perms[$key]) { - print ''.img_picto($langs->trans("NewExport"), 'next', 'class="fa-15x"').''; + print ''.img_picto($langs->trans("NewExport"), 'next', 'class="fa-15"').''; } else { print ''.$langs->trans("NotEnoughPermissions").''; } @@ -883,9 +883,9 @@ if ($step == 4 && $datatoexport) { if (isset($objexport->array_export_fields[0][$code])) { $list .= ($list ? ', ' : ''); if (isset($array_filtervalue[$code]) && preg_match('/^\s*[<>]/', $array_filtervalue[$code])) { - $list .= $langs->trans($objexport->array_export_fields[0][$code]).(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : ''); + $list .= ''.$langs->trans($objexport->array_export_fields[0][$code]).''.(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : ''); } else { - $list .= $langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : '')."'"; + $list .= ''.$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : '')."'"; } } } @@ -1163,9 +1163,9 @@ if ($step == 5 && $datatoexport) { if (isset($objexport->array_export_fields[0][$code])) { $list .= ($list ? ', ' : ''); if (isset($array_filtervalue[$code]) && preg_match('/^\s*[<>]/', $array_filtervalue[$code])) { - $list .= $langs->trans($objexport->array_export_fields[0][$code]).(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : ''); + $list .= ''.$langs->trans($objexport->array_export_fields[0][$code]).''.(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : ''); } else { - $list .= $langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : '')."'"; + $list .= ''.$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] : '')."'"; } } } @@ -1187,7 +1187,7 @@ if ($step == 5 && $datatoexport) { $htmltabloflibs .= ''.$langs->trans("LibraryVersion").'
    ".$langs->trans("Project").""; $projectid = GETPOST('projectid') ?GETPOST('projectid') : $object->fk_project; @@ -329,10 +354,10 @@ if ($action == 'create') { } // Contrat - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { $formcontract = new FormContract($db); print "
    ".$langs->trans("Contract").""; - $contractid = GETPOST('contractid') ?GETPOST('contractid') : $object->fk_contract; + $contractid = GETPOST('contractid') ? GETPOST('contractid') : (!empty($object->fk_contract) ? $object->fk_contract : 0) ; $numcontract = $formcontract->select_contract($object->thirdparty->id, $contractid, 'contracttid'); print "
    ".$langs->trans('NextDateToExecution').""; - if ($date_next_execution != "") { + if (empty($date_next_execution)) { $date_next_execution = (GETPOST('remonth') ? dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')) : -1); } print $form->selectDate($date_next_execution, '', 1, 1, '', "add", 1, 1); @@ -485,7 +510,7 @@ if ($action == 'create') { $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; @@ -540,7 +565,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Description").''.nl2br($object->description)."
    '; @@ -736,16 +761,14 @@ if ($action == 'create') { if ($user->rights->ficheinter->creer) { print ''; } - if ($user->rights->ficheinter->supprimer) { - print ''; - } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $user->rights->ficheinter->supprimer); + print ''; } else { print $langs->trans("ErrorRecordNotFound"); @@ -765,22 +788,22 @@ if ($action == 'create') { } $sql .= " WHERE f.fk_soc = s.rowid"; $sql .= " AND f.entity = ".$conf->entity; - if ($socid) { + if (!empty($socid)) { $sql .= " AND s.rowid = ".((int) $socid); } if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } - if ($search_ref) { + if (!empty($search_ref)) { $sql .= natural_search('f.titre', $search_ref); } - if ($search_societe) { + if (!empty($search_societe)) { $sql .= natural_search('s.nom', $search_societe); } - if ($search_frequency == '1') { + if (!empty($search_frequency) && $search_frequency == '1') { $sql .= ' AND f.frequency > 0'; } - if ($search_frequency == '0') { + if (isset($search_frequency) && (string) $search_frequency == '0') { $sql .= ' AND (f.frequency IS NULL or f.frequency = 0)'; } @@ -801,10 +824,10 @@ if ($action == 'create') { print '
    '.$langs->trans("None").''; if ($objp->fk_contrat > 0) { $contratstatic->fetch($objp->fk_contrat); @@ -843,7 +866,7 @@ if ($action == 'create') { } print ''; if ($objp->fk_project > 0) { $projectstatic->fetch($objp->fk_project); diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 4b7686449c7..aff1076eda5 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -7,7 +7,7 @@ * Copyright (C) 2014-2018 Ferran Marcet * Copyright (C) 2014-2022 Charlene Benke * Copyright (C) 2015-2016 Abbes Bahfir - * Copyright (C) 2018 Philippe Grand + * Copyright (C) 2018-2022 Philippe Grand * Copyright (C) 2020 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -30,13 +30,14 @@ * \ingroup ficheinter */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/fichinter/modules_fichinter.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -103,6 +104,7 @@ $result = restrictedArea($user, 'ficheinter', $id, 'fichinter'); $permissionnote = $user->rights->ficheinter->creer; // Used by the include of actions_setnotes.inc.php $permissiondellink = $user->rights->ficheinter->creer; // Used by the include of actions_dellink.inc.php +$permissiontodelete = (($object->statut == Fichinter::STATUS_DRAFT && $user->rights->ficheinter->creer) || $user->rights->ficheinter->supprimer); /* @@ -173,10 +175,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -198,10 +200,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -310,7 +312,7 @@ if (empty($reshook)) { $prod->id = $lines[$i]->fk_product; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $prod->getMultiLangs(); // We show if duration is present on service (so we get it) $prod->fetch($lines[$i]->fk_product); @@ -516,10 +518,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -612,10 +614,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -645,10 +647,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -665,10 +667,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -687,10 +689,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -784,10 +786,10 @@ if (empty($reshook)) { $form = new Form($db); $formfile = new FormFile($db); -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $formcontract = new FormContract($db); } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -908,7 +910,7 @@ if ($action == 'create') { print '
    ' . $langs->trans('AmountTTC') . '' . price($objectsrc->total_ttc) . "
    ' . $langs->trans('MulticurrencyAmountHT') . '' . price($objectsrc->multicurrency_total_ht) . '
    ' . $langs->trans('MulticurrencyAmountVAT') . '' . price($objectsrc->multicurrency_total_tva) . "
    '; + print '
    '; if (!empty($conf->global->FICHINTER_USE_PLANNED_AND_DONE_DATES)) { // Date Start @@ -1230,12 +1230,12 @@ if ($action == 'create') { print ''; print ''; // Contract - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { $langs->load('contracts'); print ''; print ''; print ''; - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)) { print ''; print ''; print ''; @@ -385,7 +431,7 @@ if ($object->id > 0) { $boxstat .= '
    '; print $form->editfieldkey("Description", 'description', $object->description, $object, $user->rights->ficheinter->creer, 'textarea'); print ''; - print $form->editfieldval("Description", 'description', $object->description, $object, $user->rights->ficheinter->creer, 'textarea:8:80'); + print $form->editfieldval("Description", 'description', $object->description, $object, $user->rights->ficheinter->creer, 'textarea:8'); print '
    '; @@ -1435,7 +1435,7 @@ if ($action == 'create') { // Editeur wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('np_desc', $objp->description, '', 164, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, '90%'); + $doleditor = new DolEditor('np_desc', $objp->description, '', 164, 'dolibarr_details', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_DETAILS'), ROWS_2, '90%'); $doleditor->Create(); $objectline = new FichinterLigne($db); @@ -1642,12 +1642,12 @@ if ($action == 'create') { // Create intervention model if ($conf->global->MAIN_FEATURES_LEVEL >= 1 && $object->statut == Fichinter::STATUS_DRAFT && $user->rights->ficheinter->creer && (count($object->lines) > 0)) { print ''; } // Proposal - if ($conf->service->enabled && !empty($conf->propal->enabled) && $object->statut > Fichinter::STATUS_DRAFT) { + if ($conf->service->enabled && isModEnabled("propal") && $object->statut > Fichinter::STATUS_DRAFT) { $langs->load("propal"); if ($object->statut < Fichinter::STATUS_BILLED) { if ($user->rights->propal->creer) { @@ -1689,10 +1689,7 @@ if ($action == 'create') { } // Delete - if (($object->statut == Fichinter::STATUS_DRAFT && $user->rights->ficheinter->creer) || $user->rights->ficheinter->supprimer) { - print ''; - } + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } } } @@ -1716,6 +1713,19 @@ if ($action == 'create') { $linktoelem = $form->showLinkToObjectBlock($object, null, array('fichinter')); $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + // Show direct download link + if ($object->statut != Fichinter::STATUS_DRAFT && !empty($conf->global->FICHINTER_ALLOW_EXTERNAL_DOWNLOAD)) { + print '
    '."\n"; + print showDirectDownloadLink($object).'
    '; + } + + // Show online signature link + if ($object->statut != Fichinter::STATUS_DRAFT && !empty($conf->global->FICHINTER_ALLOW_ONLINE_SIGN)) { + print '
    '; + require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php'; + + print showOnlineSignatureUrl('fichinter', $object->ref).'
    '; + } print '
    '; diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index ac0f47ee4b3..b072f4c756d 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -36,36 +36,36 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; */ class Fichinter extends CommonObject { - public $fields = array( - 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>15), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>'$conf->projet->enabled', 'visible'=>-1, 'position'=>20), - 'fk_contrat' =>array('type'=>'integer', 'label'=>'Fk contrat', 'enabled'=>'$conf->contrat->enabled', 'visible'=>-1, 'position'=>25), - 'ref' =>array('type'=>'varchar(30)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'showoncombobox'=>1, 'position'=>30), - 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'Ref ext', 'enabled'=>1, 'visible'=>0, 'position'=>35), - 'ref_client' =>array('type'=>'varchar(255)', 'label'=>'RefCustomer', 'enabled'=>1, 'visible'=>-1, 'position'=>36), - 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>40, 'index'=>1), - 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>45), - 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>50), - 'date_valid' =>array('type'=>'datetime', 'label'=>'DateValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>55), - 'datei' =>array('type'=>'date', 'label'=>'Datei', 'enabled'=>1, 'visible'=>-1, 'position'=>60), - 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-1, 'position'=>65), - 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>70), - 'fk_user_valid' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>75), - 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Fk statut', 'enabled'=>1, 'visible'=>-1, 'position'=>500), - 'dateo' =>array('type'=>'date', 'label'=>'Dateo', 'enabled'=>1, 'visible'=>-1, 'position'=>85), - 'datee' =>array('type'=>'date', 'label'=>'Datee', 'enabled'=>1, 'visible'=>-1, 'position'=>90), - 'datet' =>array('type'=>'date', 'label'=>'Datet', 'enabled'=>1, 'visible'=>-1, 'position'=>95), - 'duree' =>array('type'=>'double', 'label'=>'Duree', 'enabled'=>1, 'visible'=>-1, 'position'=>100), - 'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>105, 'showoncombobox'=>2), - 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>110), - 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>115), - 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>1, 'visible'=>0, 'position'=>120), - 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'Last main doc', 'enabled'=>1, 'visible'=>-1, 'position'=>125), - 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>130), - 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>135), + 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>15), + 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>'isModEnabled("project")', 'visible'=>-1, 'position'=>20), + 'fk_contrat' =>array('type'=>'integer', 'label'=>'Fk contrat', 'enabled'=>'$conf->contrat->enabled', 'visible'=>-1, 'position'=>25), + 'ref' =>array('type'=>'varchar(30)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'showoncombobox'=>1, 'position'=>30), + 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'Ref ext', 'enabled'=>1, 'visible'=>0, 'position'=>35), + 'ref_client' =>array('type'=>'varchar(255)', 'label'=>'RefCustomer', 'enabled'=>1, 'visible'=>-1, 'position'=>36), + 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>40, 'index'=>1), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>45), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>50), + 'date_valid' =>array('type'=>'datetime', 'label'=>'DateValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>55), + 'datei' =>array('type'=>'date', 'label'=>'Datei', 'enabled'=>1, 'visible'=>-1, 'position'=>60), + 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-1, 'position'=>65), + 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>70), + 'fk_user_valid' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>75), + 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Fk statut', 'enabled'=>1, 'visible'=>-1, 'position'=>500), + 'dateo' =>array('type'=>'date', 'label'=>'Dateo', 'enabled'=>1, 'visible'=>-1, 'position'=>85), + 'datee' =>array('type'=>'date', 'label'=>'Datee', 'enabled'=>1, 'visible'=>-1, 'position'=>90), + 'datet' =>array('type'=>'date', 'label'=>'Datet', 'enabled'=>1, 'visible'=>-1, 'position'=>95), + 'duree' =>array('type'=>'double', 'label'=>'Duree', 'enabled'=>1, 'visible'=>-1, 'position'=>100), + 'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>105, 'showoncombobox'=>2), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>110), + 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>115), + 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>1, 'visible'=>0, 'position'=>120), + 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'Last main doc', 'enabled'=>1, 'visible'=>-1, 'position'=>125), + 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>130), + 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>135), ); + /** * @var string ID to identify managed object */ @@ -442,7 +442,7 @@ class Fichinter extends CommonObject $sql .= " f.datec, f.dateo, f.datee, f.datet, f.fk_user_author,"; $sql .= " f.date_valid as datev,"; $sql .= " f.tms as datem,"; - $sql .= " f.duree, f.fk_projet as fk_project, f.note_public, f.note_private, f.model_pdf, f.extraparams, fk_contrat, f.entity as entity"; + $sql .= " f.duree, f.fk_projet as fk_project, f.note_public, f.note_private, f.model_pdf, f.last_main_doc, f.extraparams, fk_contrat, f.entity as entity"; $sql .= " FROM ".MAIN_DB_PREFIX."fichinter as f"; if ($ref) { $sql .= " WHERE f.entity IN (".getEntity('intervention').")"; @@ -482,6 +482,8 @@ class Fichinter extends CommonObject $this->extraparams = (array) json_decode($obj->extraparams, true); + $this->last_main_doc = $obj->last_main_doc; + if ($this->statut == 0) { $this->brouillon = 1; } @@ -499,6 +501,8 @@ class Fichinter extends CommonObject $this->db->free($resql); return 1; } + + return 0; } else { $this->error = $this->db->lasterror(); return -1; @@ -513,8 +517,6 @@ class Fichinter extends CommonObject */ public function setDraft($user) { - global $langs, $conf; - $error = 0; // Protection @@ -524,6 +526,8 @@ class Fichinter extends CommonObject dol_syslog(get_class($this)."::setDraft", LOG_DEBUG); + $this->oldcopy = dol_clone($this); + $this->db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter"; @@ -532,10 +536,6 @@ class Fichinter extends CommonObject $resql = $this->db->query($sql); if ($resql) { - if (!$error) { - $this->oldcopy = clone $this; - } - if (!$error) { // Call trigger $result = $this->call_trigger('FICHINTER_UNVALIDATE', $user); @@ -590,7 +590,7 @@ class Fichinter extends CommonObject $sql .= " SET fk_statut = 1"; $sql .= ", ref = '".$this->db->escape($num)."'"; $sql .= ", date_valid = '".$this->db->idate($now)."'"; - $sql .= ", fk_user_valid = ".((int) $user->id); + $sql .= ", fk_user_valid = ".($user->id > 0 ? (int) $user->id : "null"); $sql .= " WHERE rowid = ".((int) $this->id); $sql .= " AND entity = ".((int) $conf->entity); $sql .= " AND fk_statut = 0"; @@ -664,6 +664,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } /** @@ -904,8 +906,6 @@ class Fichinter extends CommonObject */ public function info($id) { - global $conf; - $sql = "SELECT f.rowid,"; $sql .= " f.datec,"; $sql .= " f.tms as date_modification,"; @@ -955,7 +955,7 @@ class Fichinter extends CommonObject * @param int $notrigger Disable trigger * @return int <0 if KO, >0 if OK */ - public function delete($user, $notrigger = 0) + public function delete(User $user, $notrigger = 0) { global $conf, $langs; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -1074,13 +1074,11 @@ class Fichinter extends CommonObject * * @param User $user Object user who define * @param integer $date_delivery date of delivery - * @return int <0 if ko, >0 if ok + * @return int <0 if KO, >0 if OK */ public function set_date_delivery($user, $date_delivery) { // phpcs:enable - global $conf; - if ($user->rights->ficheinter->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter "; $sql .= " SET datei = '".$this->db->idate($date_delivery)."'"; @@ -1096,6 +1094,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1109,8 +1109,6 @@ class Fichinter extends CommonObject public function set_description($user, $description) { // phpcs:enable - global $conf; - if ($user->rights->ficheinter->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter "; $sql .= " SET description = '".$this->db->escape($description)."',"; @@ -1126,6 +1124,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } @@ -1135,13 +1135,11 @@ class Fichinter extends CommonObject * * @param User $user Object user who modify * @param int $contractid Description - * @return int <0 if ko, >0 if ok + * @return int <0 if KO, >0 if OK */ public function set_contrat($user, $contractid) { // phpcs:enable - global $conf; - if ($user->rights->ficheinter->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter "; $sql .= " SET fk_contrat = ".((int) $contractid); @@ -1155,6 +1153,7 @@ class Fichinter extends CommonObject return -1; } } + return -2; } @@ -1189,8 +1188,8 @@ class Fichinter extends CommonObject if ($objsoc->fetch($socid) > 0) { $this->socid = $objsoc->id; - //$this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); - //$this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); + //$this->cond_reglement_id = (!empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + //$this->mode_reglement_id = (!empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); $this->fk_project = ''; $this->fk_delivery_address = ''; } @@ -1204,7 +1203,7 @@ class Fichinter extends CommonObject // Clear fields $this->user_author_id = $user->id; - $this->user_valid = ''; + $this->user_valid = 0; $this->date_creation = ''; $this->date_validation = ''; $this->ref_client = ''; @@ -1219,7 +1218,7 @@ class Fichinter extends CommonObject if (!$error) { // Add lines because it is not included into create function foreach ($this->lines as $line) { - $this->addline($user, $this->id, $line->desc, $line->datei, $line->duration); + $this->addline($user, $this->id, $line->desc, $line->datei, $line->duration, $line->array_options); } // Hook of thirdparty module @@ -1261,7 +1260,7 @@ class Fichinter extends CommonObject { dol_syslog(get_class($this)."::addline $fichinterid, $desc, $date_intervention, $duration"); - if ($this->statut == 0) { + if ($this->statut == self::STATUS_DRAFT) { $this->db->begin(); // Insertion ligne @@ -1269,7 +1268,8 @@ class Fichinter extends CommonObject $line->fk_fichinter = $fichinterid; $line->desc = $desc; - $line->datei = $date_intervention; + $line->date = $date_intervention; + $line->datei = $date_intervention; // For backward compatibility $line->duration = $duration; if (is_array($array_options) && count($array_options) > 0) { @@ -1287,6 +1287,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } @@ -1299,7 +1301,7 @@ class Fichinter extends CommonObject */ public function initAsSpecimen() { - global $user, $langs, $conf; + global $langs; $now = dol_now(); @@ -1318,7 +1320,8 @@ class Fichinter extends CommonObject while ($xnbp < $nbp) { $line = new FichinterLigne($this->db); $line->desc = $langs->trans("Description")." ".$xnbp; - $line->datei = ($now - 3600 * (1 + $xnbp)); + $line->date = ($now - 3600 * (1 + $xnbp)); + $line->datei = ($now - 3600 * (1 + $xnbp)); // For backward compatibility $line->duration = 600; $line->fk_fichinter = 0; $this->lines[$xnbp] = $line; @@ -1361,7 +1364,7 @@ class Fichinter extends CommonObject //For invoicing we calculing hours $line->qty = round($objp->duree / 3600, 2); $line->date = $this->db->jdate($objp->date); - $line->datei = $this->db->jdate($objp->date); + $line->datei = $this->db->jdate($objp->date); // For backward compatibility $line->rang = $objp->rang; $line->product_type = 1; $line->fetch_optionals(); @@ -1381,18 +1384,18 @@ class Fichinter extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'fichinter' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -1411,6 +1414,8 @@ class Fichinter extends CommonObject $this->db->begin(); + $this->oldcopy = dol_clone($this); + $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET ref_client = ".(empty($ref_client) ? 'NULL' : "'".$this->db->escape($ref_client)."'"); $sql .= " WHERE rowid = ".((int) $this->id); @@ -1422,7 +1427,6 @@ class Fichinter extends CommonObject } if (!$error) { - $this->oldcopy = clone $this; $this->ref_client = $ref_client; } @@ -1473,10 +1477,22 @@ class FichinterLigne extends CommonObjectLine */ public $fk_fichinter; - public $desc; // Description ligne - public $datei; // Date intervention - public $duration; // Duree de l'intervention + public $desc; // Description ligne + + /** + * @var int Date of intervention + */ + public $date; // Date intervention + /** + * @var int Date of intervention + * @deprecated + */ + public $datei; // Date intervention + + public $duration; // Duration of intervention public $rang = 0; + public $tva_tx; + public $subprice; /** * @var string ID to identify managed object @@ -1513,8 +1529,7 @@ class FichinterLigne extends CommonObjectLine */ public function fetch($rowid) { - $sql = 'SELECT ft.rowid, ft.fk_fichinter, ft.description, ft.duree, ft.rang,'; - $sql .= ' ft.date as datei'; + $sql = 'SELECT ft.rowid, ft.fk_fichinter, ft.description, ft.duree, ft.rang, ft.date'; $sql .= ' FROM '.MAIN_DB_PREFIX.'fichinterdet as ft'; $sql .= ' WHERE ft.rowid = '.((int) $rowid); @@ -1525,7 +1540,8 @@ class FichinterLigne extends CommonObjectLine $this->rowid = $objp->rowid; $this->id = $objp->rowid; $this->fk_fichinter = $objp->fk_fichinter; - $this->datei = $this->db->jdate($objp->datei); + $this->date = $this->db->jdate($objp->date); + $this->datei = $this->db->jdate($objp->date); // For backward compatibility $this->desc = $objp->description; $this->duration = $objp->duree; $this->rang = $objp->rang; @@ -1553,6 +1569,10 @@ class FichinterLigne extends CommonObjectLine dol_syslog("FichinterLigne::insert rang=".$this->rang); + if (empty($this->date) && !empty($this->datei)) { // For backward compatibility + $this->date = $this->datei; + } + $this->db->begin(); $rangToUse = $this->rang; @@ -1576,7 +1596,7 @@ class FichinterLigne extends CommonObjectLine $sql .= ' (fk_fichinter, description, date, duree, rang)'; $sql .= " VALUES (".((int) $this->fk_fichinter).","; $sql .= " '".$this->db->escape($this->desc)."',"; - $sql .= " '".$this->db->idate($this->datei)."',"; + $sql .= " '".$this->db->idate($this->date)."',"; $sql .= " ".((int) $this->duration).","; $sql .= ' '.((int) $rangToUse); $sql .= ')'; @@ -1638,14 +1658,18 @@ class FichinterLigne extends CommonObjectLine $error = 0; + if (empty($this->date) && !empty($this->datei)) { // For backward compatibility + $this->date = $this->datei; + } + $this->db->begin(); // Mise a jour ligne en base $sql = "UPDATE ".MAIN_DB_PREFIX."fichinterdet SET"; - $sql .= " description='".$this->db->escape($this->desc)."'"; - $sql .= ",date='".$this->db->idate($this->datei)."'"; - $sql .= ",duree=".$this->duration; - $sql .= ",rang='".$this->db->escape($this->rang)."'"; + $sql .= " description = '".$this->db->escape($this->desc)."',"; + $sql .= " date = '".$this->db->idate($this->date)."',"; + $sql .= " duree = ".((int) $this->duration).","; + $sql .= " rang = ".((int) $this->rang); $sql .= " WHERE rowid = ".((int) $this->id); dol_syslog("FichinterLigne::update", LOG_DEBUG); diff --git a/htdocs/fichinter/class/fichinterrec.class.php b/htdocs/fichinter/class/fichinterrec.class.php index b128bba60f8..44dd63abcd2 100644 --- a/htdocs/fichinter/class/fichinterrec.class.php +++ b/htdocs/fichinter/class/fichinterrec.class.php @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -64,7 +64,6 @@ class FichinterRec extends Fichinter public $number; public $date; public $amount; - public $remise; public $tva; public $total; @@ -151,7 +150,7 @@ class FichinterRec extends Fichinter $fichintsrc = new Fichinter($this->db); $result = $fichintsrc->fetch($this->id_origin); - $result = $fichintsrc->fetch_lines(1); // to get all lines + $result = $fichintsrc->fetch_lines(); // to get all lines if ($result > 0) { @@ -222,7 +221,7 @@ class FichinterRec extends Fichinter $result_insert = $this->addline( $fichintsrc->lines[$i]->desc, $fichintsrc->lines[$i]->duration, - $fichintsrc->lines[$i]->datei, + $fichintsrc->lines[$i]->date, $fichintsrc->lines[$i]->rang, $fichintsrc->lines[$i]->subprice, $fichintsrc->lines[$i]->qty, @@ -235,7 +234,7 @@ class FichinterRec extends Fichinter 0, $fichintsrc->lines[$i]->product_type, $fichintsrc->lines[$i]->special_code, - $fichintsrc->lines[$i]->label, + !empty($fichintsrc->lines[$i]->label) ? $fichintsrc->lines[$i]->label : "", $fichintsrc->lines[$i]->fk_unit ); @@ -305,10 +304,10 @@ class FichinterRec extends Fichinter $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->user_author = $obj->fk_user_author; - $this->model_pdf = $obj->model_pdf; - $this->modelpdf = $obj->model_pdf; // deprecated - $this->rang = $obj->rang; - $this->special_code = $obj->special_code; + $this->model_pdf = !empty($obj->model_pdf) ? $obj->model_pdf : ""; + $this->modelpdf = !empty($obj->model_pdf) ? $obj->model_pdf : ""; // deprecated + $this->rang = !empty($obj->rang) ? $obj->rang : ""; + $this->special_code = !empty($obj->special_code) ? $obj->special_code : ""; $this->frequency = $obj->frequency; $this->unit_frequency = $obj->unit_frequency; $this->date_when = $this->db->jdate($obj->date_when); @@ -350,8 +349,8 @@ class FichinterRec extends Fichinter // phpcs:enable $this->lines = array(); - $sql = 'SELECT l.rowid, l.fk_product, l.product_type as product_type, l.label as custom_label, l.description, '; - $sql .= ' l.price, l.qty, l.tva_tx, l.remise_percent, l.subprice, l.duree, '; + $sql = 'SELECT l.rowid, l.fk_product, l.product_type as product_type, l.label as custom_label, l.description,'; + $sql .= ' l.price, l.qty, l.tva_tx, l.remise_percent, l.subprice, l.duree, l.date,'; $sql .= ' l.total_ht, l.total_tva, l.total_ttc,'; $sql .= ' l.rang, l.special_code,'; $sql .= ' l.fk_unit, p.ref as product_ref, p.fk_product_type as fk_product_type,'; @@ -381,19 +380,16 @@ class FichinterRec extends Fichinter $line->qty = $objp->qty; $line->duree = $objp->duree; $line->duration = $objp->duree; - $line->datei = $objp->date; + $line->date = $objp->date; $line->subprice = $objp->subprice; $line->tva_tx = $objp->tva_tx; $line->remise_percent = $objp->remise_percent; - $line->fk_remise_except = $objp->fk_remise_except; + $line->fk_remise_except = !empty($objp->fk_remise_except) ? $objp->fk_remise_except : ""; $line->fk_product = $objp->fk_product; - $line->date_start = $objp->date_start; - $line->date_end = $objp->date_end; - $line->info_bits = $objp->info_bits; + $line->info_bits = !empty($objp->info_bits) ? $objp->info_bits : ""; $line->total_ht = $objp->total_ht; $line->total_tva = $objp->total_tva; $line->total_ttc = $objp->total_ttc; - $line->code_ventilation = $objp->fk_code_ventilation; $line->rang = $objp->rang; $line->special_code = $objp->special_code; $line->fk_unit = $objp->fk_unit; @@ -415,16 +411,13 @@ class FichinterRec extends Fichinter /** * Delete template fichinter rec * - * @param int $rowid Id of fichinter rec to delete. If empty, we delete current instance of fichinter rec - * @param int $notrigger 1=Does not execute triggers, 0= execute triggers - * @param int $idwarehouse Id warehouse to use for stock change. + * @param User $user Object user who delete + * @param int $notrigger Disable trigger * @return int <0 if KO, >0 if OK */ - public function delete($rowid = 0, $notrigger = 0, $idwarehouse = -1) + public function delete(User $user, $notrigger = 0) { - if (empty($rowid)) { - $rowid = $this->id; - } + $rowid = $this->id; dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG); @@ -460,7 +453,7 @@ class FichinterRec extends Fichinter * * @param string $desc Description de la ligne * @param integer $duration Durée - * @param string $datei Date + * @param string $date Date * @param int $rang Position of line * @param double $pu_ht Unit price without tax (> 0 even for credit note) * @param double $qty Quantity @@ -477,7 +470,7 @@ class FichinterRec extends Fichinter * @param string $fk_unit Unit * @return int <0 if KO, Id of line if OK */ - public function addline($desc, $duration, $datei, $rang = -1, $pu_ht = 0, $qty = 0, $txtva = 0, $fk_product = 0, $remise_percent = 0, $price_base_type = 'HT', $info_bits = 0, $fk_remise_except = '', $pu_ttc = 0, $type = 0, $special_code = 0, $label = '', $fk_unit = null) + public function addline($desc, $duration, $date, $rang = -1, $pu_ht = 0, $qty = 0, $txtva = 0, $fk_product = 0, $remise_percent = 0, $price_base_type = 'HT', $info_bits = 0, $fk_remise_except = '', $pu_ttc = 0, $type = 0, $special_code = 0, $label = '', $fk_unit = null) { global $mysoc; @@ -520,6 +513,8 @@ class FichinterRec extends Fichinter $total_tva = $tabprice[1]; $total_ttc = $tabprice[2]; + $pu_ht = $tabprice[3]; + $product_type = $type; if ($fk_product) { $product = new Product($this->db); @@ -539,8 +534,7 @@ class FichinterRec extends Fichinter $sql .= ", fk_product"; $sql .= ", product_type"; $sql .= ", remise_percent"; - //$sql.= ", subprice"; - $sql .= ", remise"; + $sql .= ", subprice"; $sql .= ", total_ht"; $sql .= ", total_tva"; $sql .= ", total_ttc"; @@ -551,7 +545,7 @@ class FichinterRec extends Fichinter $sql .= (int) $this->id; $sql .= ", ".(!empty($label) ? "'".$this->db->escape($label)."'" : "null"); $sql .= ", ".(!empty($desc) ? "'".$this->db->escape($desc)."'" : "null"); - $sql .= ", ".(!empty($datei) ? "'".$this->db->idate($datei)."'" : "null"); + $sql .= ", ".(!empty($date) ? "'".$this->db->idate($date)."'" : "null"); $sql .= ", ".$duration; //$sql.= ", ".price2num($pu_ht); //$sql.= ", ".(!empty($qty)? $qty :(!empty($duration)? $duration :"null")); @@ -559,8 +553,7 @@ class FichinterRec extends Fichinter $sql .= ", ".(!empty($fk_product) ? $fk_product : "null"); $sql .= ", ".$product_type; $sql .= ", ".(!empty($remise_percent) ? $remise_percent : "null"); - //$sql.= ", '".price2num($pu_ht)."'"; - $sql .= ", null"; + $sql.= ", '".price2num($pu_ht)."'"; $sql .= ", '".price2num($total_ht)."'"; $sql .= ", '".price2num($total_tva)."'"; $sql .= ", '".price2num($total_ttc)."'"; @@ -668,18 +661,15 @@ class FichinterRec extends Fichinter * Used to build previews or test instances. * id must be 0 if object instance is a specimen. * - * @param string $option ''=Create a specimen fichinter with lines, 'nolines'=No lines * @return void */ - public function initAsSpecimen($option = '') + public function initAsSpecimen() { - global $user, $langs, $conf; + //$now = dol_now(); + //$arraynow = dol_getdate($now); + //$nownotime = dol_mktime(0, 0, 0, $arraynow['mon'], $arraynow['mday'], $arraynow['year']); - $now = dol_now(); - $arraynow = dol_getdate($now); - $nownotime = dol_mktime(0, 0, 0, $arraynow['mon'], $arraynow['mday'], $arraynow['year']); - - parent::initAsSpecimen($option); + parent::initAsSpecimen(); $this->usenewprice = 1; } @@ -687,16 +677,16 @@ class FichinterRec extends Fichinter /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array('fichinter_rec'); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/fichinter/contact.php b/htdocs/fichinter/contact.php index f2f50963287..02099d959c7 100644 --- a/htdocs/fichinter/contact.php +++ b/htdocs/fichinter/contact.php @@ -23,6 +23,7 @@ * \brief Onglet de gestion des contacts de fiche d'intervention */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -123,7 +124,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->ficheinter->creer) { diff --git a/htdocs/fichinter/document.php b/htdocs/fichinter/document.php index 7fdcaa151a0..1b388763c02 100644 --- a/htdocs/fichinter/document.php +++ b/htdocs/fichinter/document.php @@ -28,13 +28,14 @@ * \brief Page des documents joints sur les contrats */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -123,7 +124,7 @@ if ($object->id) { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->commande->creer) { diff --git a/htdocs/fichinter/index.php b/htdocs/fichinter/index.php index 0f0fc0acc99..c7b150b7d2d 100644 --- a/htdocs/fichinter/index.php +++ b/htdocs/fichinter/index.php @@ -25,6 +25,7 @@ * \brief Home page of interventional module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; @@ -89,7 +90,6 @@ $sql .= " GROUP BY f.fk_statut"; $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - $i = 0; $total = 0; $totalinprocess = 0; @@ -97,38 +97,28 @@ if ($resql) { $vals = array(); $bool = false; // -1=Canceled, 0=Draft, 1=Validated, 2=Accepted/On process, 3=Closed (Sent/Received, billed or not) - while ($i < $num) { - $row = $db->fetch_row($resql); - if ($row) { - //if ($row[1]!=-1 && ($row[1]!=3 || $row[2]!=1)) - { - $bool = (!empty($row[2]) ?true:false); - if (!isset($vals[$row[1].$bool])) { - $vals[$row[1].$bool] = 0; - } - $vals[$row[1].$bool] += $row[0]; - $totalinprocess += $row[0]; + if ($num>0) { + while ($row = $db->fetch_row($resql)) { + if (!isset($vals[$row[1]])) { + $vals[$row[1]] = 0; } + $vals[$row[1]] += $row[0]; + $totalinprocess += $row[0]; + $total += $row[0]; } - $i++; } $db->free($resql); - include DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php'; print '
    '; print ''; print ''."\n"; - $listofstatus = array(0, 1, 3); - $bool = false; + $listofstatus = array(Fichinter::STATUS_DRAFT, Fichinter::STATUS_VALIDATED); + if (!empty($conf->global->FICHINTER_CLASSIFY_BILLED)) $listofstatus[] = Fichinter::STATUS_BILLED; + foreach ($listofstatus as $status) { - $dataseries[] = array($fichinterstatic->LibStatut($status, $bool, 1), (isset($vals[$status.$bool]) ? (int) $vals[$status.$bool] : 0)); - if ($status == 3 && !$bool) { - $bool = true; - } else { - $bool = false; - } + $dataseries[] = array($fichinterstatic->LibStatut($status, 1), (isset($vals[$status]) ? (int) $vals[$status] : 0)); if ($status == Fichinter::STATUS_DRAFT) { $colorseries[$status] = '-'.$badgeStatus0; @@ -139,10 +129,8 @@ if ($resql) { if ($status == Fichinter::STATUS_BILLED) { $colorseries[$status] = $badgeStatus4; } - if ($status == Fichinter::STATUS_CLOSED) { - $colorseries[$status] = $badgeStatus6; - } } + if ($conf->use_javascript_ajax) { print ''; } - $bool = false; foreach ($listofstatus as $status) { if (!$conf->use_javascript_ajax) { print ''; - print ''; - print ''; + print ''; print "\n"; - if ($status == 3 && !$bool) { - $bool = true; - } else { - $bool = false; - } } } //if ($totalinprocess != $total) @@ -188,7 +170,7 @@ if ($resql) { /* * Draft orders */ -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { $sql = "SELECT f.rowid, f.ref, s.nom as name, s.rowid as socid"; $sql .= " FROM ".MAIN_DB_PREFIX."fichinter as f"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -311,7 +293,7 @@ if ($resql) { * interventions to process */ -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { $sql = "SELECT f.rowid, f.ref, f.fk_statut, s.nom as name, s.rowid as socid"; $sql .= " FROM ".MAIN_DB_PREFIX."fichinter as f"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; diff --git a/htdocs/fichinter/info.php b/htdocs/fichinter/info.php index e5eea9f846c..c556ba022e0 100644 --- a/htdocs/fichinter/info.php +++ b/htdocs/fichinter/info.php @@ -24,11 +24,12 @@ * \brief Page d'affichage des infos d'une fiche d'intervention */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -78,7 +79,7 @@ $morehtmlref = '
    '; // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->commande->creer) { diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 125b88c5b8e..89be444d4af 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -29,24 +29,25 @@ * \ingroup ficheinter */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; } // Load translation files required by the page $langs->loadLangs(array('companies', 'bills', 'interventions')); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $langs->load("contracts"); } @@ -120,13 +121,13 @@ $arrayfields = array( 'f.ref'=>array('label'=>'Ref', 'checked'=>1), 'f.ref_client'=>array('label'=>'RefCustomer', 'checked'=>1), 's.nom'=>array('label'=>'ThirdParty', 'checked'=>1), - 'pr.ref'=>array('label'=>'Project', 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled) ? 0 : 1)), + 'pr.ref'=>array('label'=>'Project', 'checked'=>1, 'enabled'=>(!isModEnabled('project') ? 0 : 1)), 'c.ref'=>array('label'=>'Contract', 'checked'=>1, 'enabled'=>(empty($conf->contrat->enabled) ? 0 : 1)), 'f.description'=>array('label'=>'Description', 'checked'=>1), 'f.datec'=>array('label'=>'DateCreation', 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>'DateModificationShort', 'checked'=>0, 'position'=>500), - 'f.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'position'=>510, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES))), - 'f.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'position'=>511, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES))), + 'f.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'position'=>510, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PUBLIC_NOTES'))), + 'f.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'position'=>511, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PRIVATE_NOTES'))), 'f.fk_statut'=>array('label'=>'Status', 'checked'=>1, 'position'=>1000), 'fd.description'=>array('label'=>"DescriptionOfLine", 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS) ? 1 : 0), 'fd.date'=>array('label'=>'DateOfLine', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS) ? 1 : 0), @@ -202,17 +203,17 @@ $form = new Form($db); $formfile = new FormFile($db); $objectstatic = new Fichinter($db); $companystatic = new Societe($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $projetstatic = new Project($db); } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $contratstatic = new Contrat($db); } $now = dol_now(); $help_url = ''; -$title = $langs->trans("ListOfInterventions"); +$title = $langs->trans("Interventions"); $morejs = array(); $morecss = array(); @@ -234,10 +235,10 @@ if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql .= " fd.rowid as lineid, fd.description as descriptiondetail, fd.date as dp, fd.duree,"; } $sql .= " s.nom as name, s.rowid as socid, s.client, s.fournisseur, s.email, s.status as thirdpartystatus"; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $sql .= ", pr.rowid as projet_id, pr.ref as projet_ref, pr.title as projet_title"; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $sql .= ", c.rowid as contrat_id, c.ref as contrat_ref, c.ref_customer as contrat_ref_customer, c.ref_supplier as contrat_ref_supplier"; } // Add fields from extrafields @@ -248,13 +249,16 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { } // Add fields from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."fichinter as f"; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as pr on f.fk_projet = pr.rowid"; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."contrat as c on f.fk_contrat = c.rowid"; } if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { @@ -316,27 +320,25 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; // Add GroupBy from hooks -$parameters = array('all' => $all, 'fieldstosearchall' => $fieldstosearchall); +$parameters = array('search_all' => $sall, 'fieldstosearchall' => $fieldstosearchall); $reshook = $hookmanager->executeHooks('printFieldListGroupBy', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - /* This old and fast method to get and count full list returns all record so use a high amount of memory. */ - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); /* The fast and low memory method to get and count full list converts the sql into a sql count */ - /*$sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); $resql = $db->query($sqlforcount); if ($resql) { $objforcount = $db->fetch_object($resql); $nbtotalofrecords = $objforcount->nbtotalofrecords; } else { dol_print_error($db); - }*/ + } - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } @@ -492,17 +494,17 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
    '; -print '
    '.$langs->trans("Statistics").' - '.$langs->trans("Interventions").'
    '; @@ -159,21 +147,15 @@ if ($resql) { print '
    '.$fichinterstatic->LibStatut($status, $bool, 0).''.(isset($vals[$status.$bool]) ? $vals[$status.$bool] : 0).' '; - print $fichinterstatic->LibStatut($status, $bool, 3); + print ''.$fichinterstatic->LibStatut($status, 0).''.(isset($vals[$status]) ? $vals[$status] : 0).' '; + print $fichinterstatic->LibStatut($status, 3); print ''; print '
    '."\n"; +print '
    '."\n"; // Fields title search // -------------------------------------------------------------------- print ''; // Action column -if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print ''; } // Fields of detail line @@ -587,7 +589,7 @@ if (!empty($arrayfields['fd.duree']['checked'])) { print ''; } // Action column -if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} if (!empty($arrayfields['f.ref']['checked'])) { print_liste_field_titre($arrayfields['f.ref']['label'], $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); } @@ -649,7 +655,11 @@ if (!empty($arrayfields['fd.date']['checked'])) { if (!empty($arrayfields['fd.duree']['checked'])) { print_liste_field_titre($arrayfields['fd.duree']['label'], $_SERVER["PHP_SELF"], "fd.duree", "", $param, '', $sortfield, $sortorder, 'right '); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + +// Action column +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} print "\n"; @@ -686,13 +696,24 @@ while ($i < $imaxinloop) { $companystatic->status = $obj->thirdpartystatus; print ''; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['f.ref']['checked'])) { print ""; print ''; - // Mode de reglement par defaut + // Default payment mode print '"; print ''; + if (isModEnabled("banque")) { + // Default bank account for payments + print '"; + print ''; + } + // Relative discounts (Discounts-Drawbacks-Rebates) print '
    '; $searchpicto = $form->showFilterButtons('left'); print $searchpicto; @@ -567,13 +569,13 @@ if (!empty($arrayfields['f.note_private']['checked'])) { } // Status if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; + print ''; $tmp = $objectstatic->LibStatut(0); // To load $this->statuts_short $liststatus = $objectstatic->statuts_short; if (empty($conf->global->FICHINTER_CLASSIFY_BILLED)) { unset($liststatus[2]); // Option deprecated. In a future, billed must be managed with a dedicated field to 0 or 1 } - print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 1); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 1, 0, 0, '', 'search_status width100 onrightofpage'); print ' '; $searchpicto = $form->showFilterButtons(); print $searchpicto; @@ -601,6 +603,10 @@ $totalarray['nbfield'] = 0; // Fields title label // -------------------------------------------------------------------- print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '"; print ''; // Picto + Ref - print ''; // Warning @@ -726,7 +747,7 @@ while ($i < $imaxinloop) { if (!empty($arrayfields['f.ref_client']['checked'])) { // Customer ref print ''; if (!$i) { $totalarray['nbfield']++; @@ -801,7 +822,7 @@ while ($i < $imaxinloop) { // Note public if (!empty($arrayfields['f.note_public']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -810,7 +831,7 @@ while ($i < $imaxinloop) { // Note private if (!empty($arrayfields['f.note_private']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -844,10 +865,13 @@ while ($i < $imaxinloop) { if (!$i) { $totalarray['type'][$totalarray['nbfield']] = 'duration'; } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'fd.duree'; + } $totalarray['val']['fd.duree'] += $obj->duree; } // Action column - if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; $oldyear = $year; } diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index e5b7c62aae4..aca15e9d7a3 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -34,7 +34,7 @@ if (!defined('DOL_APPLICATION_TITLE')) { define('DOL_APPLICATION_TITLE', 'Dolibarr'); } if (!defined('DOL_VERSION')) { - define('DOL_VERSION', '16.0.0-beta'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c + define('DOL_VERSION', '18.0.0-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c } if (!defined('EURO')) { @@ -179,6 +179,9 @@ if (empty($dolibarr_mailing_limit_sendbyweb)) { if (empty($dolibarr_mailing_limit_sendbycli)) { $dolibarr_mailing_limit_sendbycli = 0; } +if (empty($dolibarr_mailing_limit_sendbyday)) { + $dolibarr_mailing_limit_sendbyday = 0; +} if (empty($dolibarr_strict_mode)) { $dolibarr_strict_mode = 0; // For debug in php strict mode } @@ -250,7 +253,7 @@ if (empty($dolibarr_main_data_root)) { // Define some constants define('DOL_CLASS_PATH', 'class/'); // Filesystem path to class dir (defined only for some code that want to be compatible with old versions without this parameter) define('DOL_DATA_ROOT', $dolibarr_main_data_root); // Filesystem data (documents) -// Try to autodetect DOL_MAIN_URL_ROOT and DOL_URL_ROOT. +// Try to autodetect DOL_MAIN_URL_ROOT and DOL_URL_ROOT when root is not directly the main domain. // Note: autodetect works only in case 1, 2, 3 and 4 of phpunit test CoreTest.php. For case 5, 6, only setting value into conf.php will works. $tmp = ''; $found = 0; @@ -280,7 +283,8 @@ foreach ($paths as $tmppath) { // We check to find (B+start of C)=A } //print "found=".$found." dolibarr_main_url_root=".$dolibarr_main_url_root."\n"; if (!$found) { - $tmp = $dolibarr_main_url_root; // If autodetect fails (Ie: when using apache alias that point outside default DOCUMENT_ROOT). + // There is no subdir that compose the main url root or autodetect fails (Ie: when using apache alias that point outside default DOCUMENT_ROOT). + $tmp = $dolibarr_main_url_root; } else { $tmp = 'http'.(((empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') && (empty($_SERVER["SERVER_PORT"]) || $_SERVER["SERVER_PORT"] != 443)) ? '' : 's').'://'.$_SERVER["SERVER_NAME"].((empty($_SERVER["SERVER_PORT"]) || $_SERVER["SERVER_PORT"] == 80 || $_SERVER["SERVER_PORT"] == 443) ? '' : ':'.$_SERVER["SERVER_PORT"]).($tmp3 ? (preg_match('/^\//', $tmp3) ? '' : '/').$tmp3 : ''); } @@ -308,9 +312,6 @@ define('MAIN_DB_PREFIX', $dolibarr_main_db_prefix); * To use other version than embeded libraries, define here constant to path. Use '' to use include class path autodetect. */ // Path to root libraries -if (!defined('ADODB_PATH')) { - define('ADODB_PATH', (!isset($dolibarr_lib_ADODB_PATH)) ?DOL_DOCUMENT_ROOT.'/includes/adodbtime/' : (empty($dolibarr_lib_ADODB_PATH) ? '' : $dolibarr_lib_ADODB_PATH.'/')); -} if (!defined('TCPDF_PATH')) { define('TCPDF_PATH', (empty($dolibarr_lib_TCPDF_PATH)) ?DOL_DOCUMENT_ROOT.'/includes/tecnickcom/tcpdf/' : $dolibarr_lib_TCPDF_PATH.'/'); } @@ -351,10 +352,6 @@ if (!defined('DOL_DEFAULT_TTF_BOLD')) { * Include functions */ -if (!defined('ADODB_DATE_VERSION')) { - include_once ADODB_PATH.'adodb-time.inc.php'; -} - // If password is encoded, we decode it. Note: When page is called for install, $dolibarr_main_db_pass may not be defined yet. if ((!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) || !empty($dolibarr_main_db_encrypted_pass)) { if (!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) { diff --git a/htdocs/fourn/ajax/getSupplierPrices.php b/htdocs/fourn/ajax/getSupplierPrices.php index 6cfc4fbe7b9..66001ccc5a6 100644 --- a/htdocs/fourn/ajax/getSupplierPrices.php +++ b/htdocs/fourn/ajax/getSupplierPrices.php @@ -35,6 +35,7 @@ if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; @@ -87,12 +88,12 @@ if ($idprod > 0) { $label .= ' ('.$productSupplier->fourn_ref.')'; } - $prices[] = array("id" => $productSupplier->product_fourn_price_id, "price" => price2num($price, 0, '', 0), "label" => $label, "title" => $title); // For price field, we must use price2num(), for label or title, price() + $prices[] = array("id" => $productSupplier->product_fourn_price_id, "price" => price2num($price, '', 0), "label" => $label, "title" => $title); // For price field, we must use price2num(), for label or title, price() } } // After best supplier prices and before costprice - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { // Add price for pmp $price = $producttmp->pmp; if (empty($price) && !empty($conf->global->PRODUCT_USE_SUB_COST_PRICES_IF_COST_PRICE_EMPTY)) { @@ -114,7 +115,7 @@ if ($idprod > 0) { // Add price for costprice (at end) $price = $producttmp->cost_price; - if (empty($price) && ! empty($conf->global->PRODUCT_USE_SUB_COST_PRICES_IF_COST_PRICE_EMPTY)) { + if (empty($price) && !empty($conf->global->PRODUCT_USE_SUB_COST_PRICES_IF_COST_PRICE_EMPTY)) { // get costprice for subproducts if any $producttmp->get_sousproduits_arbo(); $prods_arbo=$producttmp->get_arbo_each_prod(); diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 2d649589282..19335656f51 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -29,6 +29,7 @@ * \brief Page for supplier third party card (view, edit) */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; @@ -36,10 +37,10 @@ require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } @@ -70,7 +71,7 @@ $extrafields = new ExtraFields($db); $extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('suppliercard', 'globalcard')); +$hookmanager->initHooks(array('thirdpartysupplier', 'globalcard')); // Security check $result = restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); @@ -97,7 +98,8 @@ if (empty($reshook)) { $action = ""; } - if ($action == 'setsupplieraccountancycode') { + // Set supplier accounting account + if ($action == 'setsupplieraccountancycode' && $user->hasRight('societe', 'creer')) { $result = $object->fetch($id); $object->code_compta_fournisseur = GETPOST("supplieraccountancycode"); $result = $object->update($object->id, $user, 1, 0, 1); @@ -105,16 +107,25 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } } - // terms of the settlement - if ($action == 'setconditions' && $user->rights->societe->creer) { + // Set vat number accounting account + if ($action == 'settva_intra' && $user->hasRight('societe', 'creer')) { + $result = $object->fetch($id); + $object->tva_intra = GETPOST("tva_intra"); + $result = $object->update($object->id, $user, 1, 0, 0); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + // Set payment terms of the settlement + if ($action == 'setconditions' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $result = $object->setPaymentTerms(GETPOST('cond_reglement_supplier_id', 'int')); if ($result < 0) { dol_print_error($db, $object->error); } } - // mode de reglement - if ($action == 'setmode' && $user->rights->societe->creer) { + // Payment mode + if ($action == 'setmode' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $result = $object->setPaymentMethods(GETPOST('mode_reglement_supplier_id', 'int')); if ($result < 0) { @@ -122,8 +133,17 @@ if (empty($reshook)) { } } + // Bank account + if ($action == 'setbankaccount' && $user->hasRight('societe', 'creer')) { + $object->fetch($id); + $result = $object->setBankAccount(GETPOST('fk_account', 'int')); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + // update supplier order min amount - if ($action == 'setsupplier_order_min_amount') { + if ($action == 'setsupplier_order_min_amount' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $object->supplier_order_min_amount = price2num(GETPOST('supplier_order_min_amount', 'alpha')); $result = $object->update($object->id, $user); @@ -132,7 +152,7 @@ if (empty($reshook)) { } } - if ($action == 'update_extras') { + if ($action == 'update_extras' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $object->oldcopy = dol_clone($object); @@ -147,6 +167,7 @@ if (empty($reshook)) { if (!$error) { $result = $object->insertExtraFields('COMPANY_MODIFY'); if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); $error++; } } @@ -170,6 +191,7 @@ if ($id > 0 && empty($object->id)) { $res = $object->fetch($id); if ($object->id <= 0) { dol_print_error($db, $object->error); + exit(-1); } } @@ -220,9 +242,9 @@ if ($object->id > 0) { $langs->load('compta'); print ''; print ''; print ''; } @@ -249,8 +271,12 @@ if ($object->id > 0) { } // TVA Intra - print ''; // Default terms of the settlement @@ -260,7 +286,7 @@ if ($object->id > 0) { print '
    '; + print ''; print $objectstatic->getNomUrl(1); print ''; - print $obj->ref_client; + print dol_escape_htmltag($obj->ref_client); print ''; - print dol_escape_htmltag($obj->note_public); + print dol_string_nohtmltag($obj->note_public); print ''; - print dol_escape_htmltag($obj->note_private); + print dol_string_nohtmltag($obj->note_private); print ''; if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined $selected = 0; diff --git a/htdocs/fichinter/note.php b/htdocs/fichinter/note.php index 579760cf55f..5b246e55eb7 100644 --- a/htdocs/fichinter/note.php +++ b/htdocs/fichinter/note.php @@ -24,10 +24,11 @@ * \brief Fiche d'information sur une fiche d'intervention */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -88,7 +89,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->commande->creer) { diff --git a/htdocs/fichinter/stats/index.php b/htdocs/fichinter/stats/index.php index 9e49d9bc4b5..59c3ba83ee1 100644 --- a/htdocs/fichinter/stats/index.php +++ b/htdocs/fichinter/stats/index.php @@ -21,6 +21,7 @@ * \brief Page with interventions statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinterstats.class.php'; @@ -42,7 +43,7 @@ if ($user->socid > 0) { $socid = $user->socid; } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ? GETPOST('year', 'int') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; @@ -287,11 +288,11 @@ foreach ($data as $val) { print '
    0 ? '&userid='.$userid : '').'">'.$year.''.$val['nb'].''.round($val['nb_diff']).''.(isset($val['nb_diff']) ? round($val['nb_diff']): "0").'%'.price(price2num($val['total'], 'MT'), 1).''.round($val['total_diff']).''.(isset($val['total_diff']) ? round($val['total_diff']) : "0").'%'.price(price2num($val['avg'], 'MT'), 1).''.round($val['avg_diff']).''.(isset($val['avg_diff']) ? round($val['avg_diff']) : "0").'%
    '; - print $form->editfieldkey("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->rights->societe->creer); + print $form->editfieldkey("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->hasRight('societe', 'creer')); print ''; - print $form->editfieldval("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->rights->societe->creer); + print $form->editfieldval("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->hasRight('societe', 'creer')); print '
    '.$langs->trans('VATIntra').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($object->tva_intra)); + print '
    '; + //print $langs->trans('VATIntra').''; + $vattoshow = ($object->tva_intra ? showValueWithClipboardCPButton(dol_escape_htmltag($object->tva_intra)) : ''); + print $form->editfieldkey("VATIntra", 'tva_intra', $object->tva_intra, $object, $user->hasRight('societe', 'creer')); + print ''; + print $form->editfieldval("VATIntra", 'tva_intra', $vattoshow, $object, $user->hasRight('societe', 'creer'), 'string', $object->tva_intra, null, null, '', 1, '', 'id', 'auto', array('valuealreadyhtmlescaped'=>1)); print '
    '; } print '
    '; print $langs->trans('PaymentConditions'); print ''; - if (($action != 'editconditions') && $user->rights->societe->creer) { + if (($action != 'editconditions') && $user->hasRight('societe', 'creer')) { print 'id.'">'.img_edit($langs->trans('SetConditions'), 1).'
    '; @@ -273,12 +299,12 @@ if ($object->id > 0) { print "
    '; print ''; } print '
    '; print $langs->trans('PaymentMode'); print ''; - if (($action != 'editmode') && $user->rights->societe->creer) { + if (($action != 'editmode') && $user->hasRight('societe', 'creer')) { print 'id.'">'.img_edit($langs->trans('SetMode'), 1).'
    '; @@ -291,12 +317,32 @@ if ($object->id > 0) { print "
    '; + print ''; + } + print '
    '; + print $langs->trans('PaymentBankAccount'); + print ''; + if (($action != 'editbankaccount') && $user->hasRight('societe', 'creer')) { + print 'id.'">'.img_edit($langs->trans('SetBankAccount'), 1).'
    '; + print '
    '; + if ($action == 'editbankaccount') { + $form->formSelectAccount($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->fk_account, 'fk_account', 1); + } else { + $form->formSelectAccount($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->fk_account, 'none'); + } + print "
    '; print '
    '; print $langs->trans("CustomerRelativeDiscountShort"); print ''; - if ($user->rights->societe->creer && !$user->socid > 0) { + if ($user->hasRight('societe', 'creer') && !$user->socid > 0) { print ''.img_edit($langs->trans("Modify")).''; } print '
    '; @@ -309,7 +355,7 @@ if ($object->id > 0) { print '
    '; print $langs->trans("CustomerAbsoluteDiscountShort"); print ''; - if ($user->rights->societe->creer && !$user->socid > 0) { + if ($user->hasRight('societe', 'creer') && !$user->socid > 0) { print ''.img_edit($langs->trans("Modify")).''; } print '
    '; @@ -326,7 +372,7 @@ if ($object->id > 0) { print '
    '; print $form->editfieldkey("OrderMinAmount", 'supplier_order_min_amount', $object->supplier_order_min_amount, $object, $user->rights->societe->creer); @@ -338,7 +384,7 @@ if ($object->id > 0) { } // Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { $langs->load("categories"); print '
    '.$langs->trans("SuppliersCategoriesShort").''; @@ -351,7 +397,7 @@ if ($object->id > 0) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; // Module Adherent - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $langs->load("members"); $langs->load("users"); print '
    '.$langs->trans("LinkedToDolibarrMember").'
    '; $boxstat .= '
    '; - if (!empty($conf->supplier_proposal->enabled)) { + if (isModEnabled('supplier_proposal')) { // Box proposals $tmp = $object->getOutstandingProposals('supplier'); $outstandingOpened = $tmp['opened']; @@ -406,7 +452,7 @@ if ($object->id > 0) { } } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { // Box proposals $tmp = $object->getOutstandingOrders('supplier'); $outstandingOpened = $tmp['opened']; @@ -427,7 +473,7 @@ if ($object->id > 0) { } } - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) { $warn = ''; $tmp = $object->getOutstandingBills('supplier'); $outstandingOpened = $tmp['opened']; @@ -512,7 +558,7 @@ if ($object->id > 0) { /* * List of products */ - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { $langs->load("products"); //Query from product/liste.php $sql = 'SELECT p.rowid, p.ref, p.label, p.fk_product_type, p.entity, p.tosell as status, p.tobuy as status_buy, p.tobatch as status_batch,'; @@ -840,16 +886,16 @@ if ($object->id > 0) { print dolGetButtonAction($langs->trans('ThirdPartyIsClosed'), $langs->trans('ThirdPartyIsClosed'), 'default', $_SERVER['PHP_SELF'].'#', '', false); } - if (!empty($conf->supplier_proposal->enabled) && !empty($user->rights->supplier_proposal->creer)) { + if (isModEnabled('supplier_proposal') && !empty($user->rights->supplier_proposal->creer)) { $langs->load("supplier_proposal"); if ($object->status == 1) { print dolGetButtonAction('', $langs->trans('AddSupplierProposal'), 'default', DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&socid='.$object->id, ''); } else { - print dolGetButtonAction($langs->trans('ThirdPartyIsClosed'), $langs->trans('AddSupplierProposalGR'), 'default', $_SERVER['PHP_SELF'].'#', '', false); + print dolGetButtonAction($langs->trans('ThirdPartyIsClosed'), $langs->trans('AddSupplierProposal'), 'default', $_SERVER['PHP_SELF'].'#', '', false); } } - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { + if ($user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer')) { $langs->load("orders"); if ($object->status == 1) { print dolGetButtonAction('', $langs->trans('AddSupplierOrderShort'), 'default', DOL_URL_ROOT.'/fourn/commande/card.php?action=create&token='.newToken().'&socid='.$object->id, ''); @@ -858,11 +904,11 @@ if ($object->id > 0) { } } - if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { + if ($user->hasRight('fournisseur', 'facture', 'creer') || $user->hasRight('supplier_invoice', 'creer')) { if (!empty($orders2invoice) && $orders2invoice > 0) { if ($object->status == 1) { // Company is open - print dolGetButtonAction('', $langs->trans('CreateInvoiceForThisSupplierGR'), 'default', DOL_URL_ROOT.'/fourn/commande/list.php?socid='.$object->id.'&search_billed=0&autoselectall=1', ''); + print dolGetButtonAction('', $langs->trans('CreateInvoiceForThisSupplier'), 'default', DOL_URL_ROOT.'/fourn/commande/list.php?socid='.$object->id.'&search_billed=0&autoselectall=1', ''); } else { print dolGetButtonAction('', $langs->trans('CreateInvoiceForThisCustomer'), 'default', $_SERVER['PHP_SELF'].'#', '', false); } @@ -871,7 +917,7 @@ if ($object->id > 0) { } } - if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { + if ($user->hasRight('fournisseur', 'facture', 'creer') || $user->hasRight('supplier_invoice', 'creer')) { $langs->load("bills"); if ($object->status == 1) { print dolGetButtonAction('', $langs->trans('AddBill'), 'default', DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id, ''); diff --git a/htdocs/fourn/class/api_supplier_invoices.class.php b/htdocs/fourn/class/api_supplier_invoices.class.php index 418d8fa6600..5cc3e5592a2 100644 --- a/htdocs/fourn/class/api_supplier_invoices.class.php +++ b/htdocs/fourn/class/api_supplier_invoices.class.php @@ -433,7 +433,7 @@ class SupplierInvoices extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { if (empty($accountid)) { throw new RestException(400, 'Bank account ID is mandatory'); } @@ -473,7 +473,6 @@ class SupplierInvoices extends DolibarrApi $paiement->multicurrency_amounts = $multicurrency_amounts; // Array with all payments dispatching $paiement->paiementid = $payment_mode_id; $paiement->paiementcode = dol_getIdFromCode($this->db, $payment_mode_id, 'c_paiement', 'id', 'code', 1); - $paiement->oper = $paiement->paiementcode; // For backward compatibility $paiement->num_payment = $num_payment; $paiement->note_public = $comment; @@ -483,7 +482,7 @@ class SupplierInvoices extends DolibarrApi throw new RestException(400, 'Payment error : '.$paiement->error); } - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $result = $paiement->addPaymentToBank(DolibarrApiAccess::$user, 'payment_supplier', '(SupplierInvoicePayment)', $accountid, $chqemetteur, $chqbank); if ($result < 0) { $this->db->rollback(); diff --git a/htdocs/fourn/class/fournisseur.class.php b/htdocs/fourn/class/fournisseur.class.php index baed7051ef8..30dc5c17425 100644 --- a/htdocs/fourn/class/fournisseur.class.php +++ b/htdocs/fourn/class/fournisseur.class.php @@ -209,17 +209,17 @@ class Fournisseur extends Societe /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old third-party id - * @param int $dest_id New third-party id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_fourn' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 1d0e370355f..1ae5ffd04ce 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -35,11 +35,12 @@ */ require_once DOL_DOCUMENT_ROOT.'/core/class/commonorder.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -if (!empty($conf->productbatch->enabled)) { +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; +if (isModEnabled('productbatch')) { require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php'; } -require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; + /** * Class to manage predefined suppliers products @@ -191,7 +192,7 @@ class CommandeFournisseur extends CommonOrder * Note: Filter can be a string like "(t.ref:like:'SO-%') or (t.date_creation:<:'20160101') or (t.nature:is:NULL)" * 'label' the translation key. * 'picto' is code of a picto to show before value in forms - * 'enabled' is a condition when the field must be managed (Example: 1 or '$conf->global->MY_SETUP_PARAM' or '!empty($conf->multicurrency->enabled)' ...) + * 'enabled' is a condition when the field must be managed (Example: 1 or '$conf->global->MY_SETUP_PARAM' or 'isModEnabled("multicurrency")' ...) * 'position' is the sort order of field. * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). 5=Visible on list and view only (not create/not update). Using a negative value means field is not shown by default on list but can be selected for viewing) @@ -218,7 +219,7 @@ class CommandeFournisseur extends CommonOrder 'ref' =>array('type'=>'varchar(255)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'showoncombobox'=>1, 'position'=>25, 'searchall'=>1), 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'Ref ext', 'enabled'=>1, 'visible'=>0, 'position'=>35), 'ref_supplier' =>array('type'=>'varchar(255)', 'label'=>'RefOrderSupplierShort', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'searchall'=>1), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>'$conf->projet->enabled', 'visible'=>-1, 'position'=>45), + 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'visible'=>-1, 'position'=>45), 'date_valid' =>array('type'=>'datetime', 'label'=>'DateValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>60), 'date_approve' =>array('type'=>'datetime', 'label'=>'DateApprove', 'enabled'=>1, 'visible'=>-1, 'position'=>62), 'date_approve2' =>array('type'=>'datetime', 'label'=>'DateApprove2', 'enabled'=>1, 'visible'=>3, 'position'=>64), @@ -236,8 +237,8 @@ class CommandeFournisseur extends CommonOrder 'localtax2' =>array('type'=>'double(24,8)', 'label'=>'Localtax2', 'enabled'=>1, 'visible'=>3, 'position'=>140, 'isameasure'=>1), 'total_ht' =>array('type'=>'double(24,8)', 'label'=>'TotalHT', 'enabled'=>1, 'visible'=>1, 'position'=>145, 'isameasure'=>1), 'total_ttc' =>array('type'=>'double(24,8)', 'label'=>'TotalTTC', 'enabled'=>1, 'visible'=>-1, 'position'=>150, 'isameasure'=>1), - 'note_private' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>155), - 'note_public' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>160, 'searchall'=>1), + 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>155, 'searchall'=>1), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>160, 'searchall'=>1), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'ModelPDF', 'enabled'=>1, 'visible'=>0, 'position'=>165), 'fk_input_method' =>array('type'=>'integer', 'label'=>'OrderMode', 'enabled'=>1, 'visible'=>3, 'position'=>170), 'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'PaymentTerm', 'enabled'=>1, 'visible'=>3, 'position'=>175), @@ -247,11 +248,11 @@ class CommandeFournisseur extends CommonOrder 'fk_incoterms' =>array('type'=>'integer', 'label'=>'IncotermCode', 'enabled'=>1, 'visible'=>3, 'position'=>205), 'location_incoterms' =>array('type'=>'varchar(255)', 'label'=>'IncotermLocation', 'enabled'=>1, 'visible'=>3, 'position'=>210), 'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>1, 'visible'=>0, 'position'=>215), - 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'Currency', 'enabled'=>'!empty($conf->multicurrency->enabled)', 'visible'=>-1, 'position'=>220), - 'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'CurrencyRate', 'enabled'=>'!empty($conf->multicurrency->enabled)', 'visible'=>-1, 'position'=>225), - 'multicurrency_total_ht' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountHT', 'enabled'=>'!empty($conf->multicurrency->enabled)', 'visible'=>-1, 'position'=>230), - 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'!empty($conf->multicurrency->enabled)', 'visible'=>-1, 'position'=>235), - 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'!empty($conf->multicurrency->enabled)', 'visible'=>-1, 'position'=>240), + 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'Currency', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>220), + 'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'CurrencyRate', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>225), + 'multicurrency_total_ht' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountHT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>230), + 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>235), + 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>240), 'date_creation' =>array('type'=>'datetime', 'label'=>'Date creation', 'enabled'=>1, 'visible'=>-1, 'position'=>500), 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>1, 'notnull'=>1, 'position'=>46), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>1000, 'index'=>1), @@ -751,7 +752,7 @@ class CommandeFournisseur extends CommonOrder // phpcs:enable global $conf, $langs, $hookmanager; - if (empty($this->statuts) || empty($this->statutshort)) { + if (empty($this->statuts) || empty($this->statuts_short)) { $langs->load('orders'); $this->statuts[0] = 'StatusSupplierOrderDraft'; @@ -769,15 +770,15 @@ class CommandeFournisseur extends CommonOrder $this->statuts[9] = 'StatusSupplierOrderRefused'; // List of language codes for status - $this->statutshort[0] = 'StatusSupplierOrderDraftShort'; - $this->statutshort[1] = 'StatusSupplierOrderValidatedShort'; - $this->statutshort[2] = 'StatusSupplierOrderApprovedShort'; - $this->statutshort[3] = 'StatusSupplierOrderOnProcessShort'; - $this->statutshort[4] = 'StatusSupplierOrderReceivedPartiallyShort'; - $this->statutshort[5] = 'StatusSupplierOrderReceivedAllShort'; - $this->statutshort[6] = 'StatusSupplierOrderCanceledShort'; - $this->statutshort[7] = 'StatusSupplierOrderCanceledShort'; - $this->statutshort[9] = 'StatusSupplierOrderRefusedShort'; + $this->statuts_short[0] = 'StatusSupplierOrderDraftShort'; + $this->statuts_short[1] = 'StatusSupplierOrderValidatedShort'; + $this->statuts_short[2] = 'StatusSupplierOrderApprovedShort'; + $this->statuts_short[3] = 'StatusSupplierOrderOnProcessShort'; + $this->statuts_short[4] = 'StatusSupplierOrderReceivedPartiallyShort'; + $this->statuts_short[5] = 'StatusSupplierOrderReceivedAllShort'; + $this->statuts_short[6] = 'StatusSupplierOrderCanceledShort'; + $this->statuts_short[7] = 'StatusSupplierOrderCanceledShort'; + $this->statuts_short[9] = 'StatusSupplierOrderRefusedShort'; } $statustrans = array( @@ -806,7 +807,7 @@ class CommandeFournisseur extends CommonOrder } $statusLong = $langs->transnoentitiesnoconv($this->statuts[$status]).$billedtext; - $statusShort = $langs->transnoentitiesnoconv($this->statutshort[$status]); + $statusShort = $langs->transnoentitiesnoconv($this->statuts_short[$status]); $parameters = array('status' => $status, 'mode' => $mode, 'billed' => $billed); $reshook = $hookmanager->executeHooks('LibStatut', $parameters, $this); // Note that $action and $object may have been modified by hook @@ -836,7 +837,7 @@ class CommandeFournisseur extends CommonOrder $label = ''; - if ($user->rights->fournisseur->commande->lire) { + if ($user->hasRight("fournisseur", "commande", "read")) { $label = ''.$langs->trans("SupplierOrder").''; if (isset($this->statut)) { $label .= ' '.$this->getLibStatut(5); @@ -856,6 +857,9 @@ class CommandeFournisseur extends CommonOrder if (!empty($this->total_ttc)) { $label .= '
    '.$langs->trans('AmountTTC').': '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency); } + if (!empty($this->date)) { + $label .= '
    '.$langs->trans('Date').': '.dol_print_date($this->date, 'day'); + } if (!empty($this->delivery_date)) { $label .= '
    '.$langs->trans('DeliveryDate').': '.dol_print_date($this->delivery_date, 'dayhour'); } @@ -1094,7 +1098,7 @@ class CommandeFournisseur extends CommonOrder } // If stock is incremented on validate order, we must increment it - if (!$error && $movetoapprovestatus && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)) { + if (!$error && $movetoapprovestatus && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -1395,7 +1399,7 @@ class CommandeFournisseur extends CommonOrder $sql .= ", '".$this->db->escape($this->ref_supplier)."'"; $sql .= ", '".$this->db->escape($this->note_private)."'"; $sql .= ", '".$this->db->escape($this->note_public)."'"; - $sql .= ", ".((int) $conf->entity); + $sql .= ", ".setEntity($this); $sql .= ", ".((int) $this->socid); $sql .= ", ".($this->fk_project > 0 ? ((int) $this->fk_project) : "null"); $sql .= ", '".$this->db->idate($date)."'"; @@ -1429,7 +1433,7 @@ class CommandeFournisseur extends CommonOrder } - $this->special_code = $line->special_code; // TODO : remove this in 9.0 and add special_code param to addline() + //$this->special_code = $line->special_code; // TODO : remove this in 9.0 and add special_code param to addline() // This include test on qty if option SUPPLIER_ORDER_WITH_NOPRICEDEFINED is not set $result = $this->addline( @@ -1451,7 +1455,8 @@ class CommandeFournisseur extends CommonOrder $line->date_start, $line->date_end, $line->array_options, - $line->fk_unit + $line->fk_unit, + $line->special_code ); if ($result < 0) { dol_syslog(get_class($this)."::create ".$this->error, LOG_WARNING); // do not use dol_print_error here as it may be a functionnal error @@ -1578,7 +1583,7 @@ class CommandeFournisseur extends CommonOrder $sql .= " total_ttc=".(isset($this->total_ttc) ? $this->total_ttc : "null").","; $sql .= " fk_statut=".(isset($this->statut) ? $this->statut : "null").","; $sql .= " fk_user_author=".(isset($this->user_author_id) ? $this->user_author_id : "null").","; - $sql .= " fk_user_valid=".(isset($this->user_valid) ? $this->user_valid : "null").","; + $sql .= " fk_user_valid=".(isset($this->user_valid) && $this->user_valid > 0 ? $this->user_valid : "null").","; $sql .= " fk_projet=".(isset($this->fk_project) ? $this->fk_project : "null").","; $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? $this->cond_reglement_id : "null").","; $sql .= " fk_mode_reglement=".(isset($this->mode_reglement_id) ? $this->mode_reglement_id : "null").","; @@ -1589,7 +1594,7 @@ class CommandeFournisseur extends CommonOrder $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); @@ -1676,7 +1681,7 @@ class CommandeFournisseur extends CommonOrder // Clear fields $this->user_author_id = $user->id; - $this->user_valid = ''; + $this->user_valid = 0; $this->date_creation = ''; $this->date_validation = ''; $this->ref_supplier = ''; @@ -1742,9 +1747,10 @@ class CommandeFournisseur extends CommonOrder * @param string $origin 'order', ... * @param int $origin_id Id of origin object * @param int $rang Rank + * @param int $special_code Special code * @return int <=0 if KO, >0 if OK */ - public function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $fk_product = 0, $fk_prod_fourn_price = 0, $ref_supplier = '', $remise_percent = 0.0, $price_base_type = 'HT', $pu_ttc = 0.0, $type = 0, $info_bits = 0, $notrigger = false, $date_start = null, $date_end = null, $array_options = 0, $fk_unit = null, $pu_ht_devise = 0, $origin = '', $origin_id = 0, $rang = -1) + public function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $fk_product = 0, $fk_prod_fourn_price = 0, $ref_supplier = '', $remise_percent = 0.0, $price_base_type = 'HT', $pu_ttc = 0.0, $type = 0, $info_bits = 0, $notrigger = false, $date_start = null, $date_end = null, $array_options = 0, $fk_unit = null, $pu_ht_devise = 0, $origin = '', $origin_id = 0, $rang = -1, $special_code = 0) { global $langs, $mysoc, $conf; @@ -1815,10 +1821,10 @@ class CommandeFournisseur extends CommonOrder $label = ''; // deprecated if ($fk_product > 0) { - if (!empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY)) { + if (!empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY)) { // Not the common case // Check quantity is enough dol_syslog(get_class($this)."::addline we check supplier prices fk_product=".$fk_product." fk_prod_fourn_price=".$fk_prod_fourn_price." qty=".$qty." ref_supplier=".$ref_supplier); - $prod = new Product($this->db); + $prod = new ProductFournisseur($this->db); if ($prod->fetch($fk_product) > 0) { $product_type = $prod->type; $label = $prod->label; @@ -1827,7 +1833,7 @@ class CommandeFournisseur extends CommonOrder // If we want a dedicated supplier price, we must provide $fk_prod_fourn_price. $result = $prod->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', (isset($this->fk_soc) ? $this->fk_soc : $this->socid)); // Search on couple $fk_prod_fourn_price/$qty first, then on triplet $qty/$fk_product/$ref_supplier/$this->fk_soc - // If supplier order created from customer order, we take best supplier price + // If supplier order created from sales order, we take best supplier price // If $pu (defined previously from pu_ht or pu_ttc) is not defined at all, we also take the best supplier price if ($result > 0 && ($origin == 'commande' || $pu === '')) { $pu = $prod->fourn_pu; // Unit price supplier price set by get_buyprice @@ -1868,7 +1874,7 @@ class CommandeFournisseur extends CommonOrder // Predefine quantity according to packaging if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) { - $prod = new Product($this->db, $fk_product); + $prod = new Product($this->db); $prod->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', ($this->fk_soc ? $this->fk_soc : $this->socid)); if ($qty < $prod->packaging) { @@ -1877,19 +1883,20 @@ class CommandeFournisseur extends CommonOrder if (!empty($prod->packaging) && ($qty % $prod->packaging) > 0) { $coeff = intval($qty / $prod->packaging) + 1; $qty = $prod->packaging * $coeff; + setEventMessages($langs->trans('QtyRecalculatedWithPackaging'), null, 'mesgs'); } } - setEventMessage($langs->trans('QtyRecalculatedWithPackaging'), 'mesgs'); } } - if (!empty($conf->multicurrency->enabled) && $pu_ht_devise > 0) { + if (isModEnabled("multicurrency") && $pu_ht_devise > 0) { $pu = 0; } $localtaxes_type = getLocalTaxesFromRate($txtva, 0, $mysoc, $this->thirdparty); // Clean vat code + $reg = array(); $vat_src_code = ''; if (preg_match('/\((.*)\)/', $txtva, $reg)) { $vat_src_code = $reg[1]; @@ -1954,7 +1961,7 @@ class CommandeFournisseur extends CommonOrder $this->line->total_localtax2 = $total_localtax2; $this->line->total_ttc = $total_ttc; $this->line->product_type = $type; - $this->line->special_code = $this->special_code; + $this->line->special_code = (!empty($this->special_code) ? $this->special_code : 0); $this->line->origin = $origin; $this->line->origin_id = $origin_id; $this->line->fk_unit = $fk_unit; @@ -2051,6 +2058,8 @@ class CommandeFournisseur extends CommonOrder $now = dol_now(); + $inventorycode = dol_print_date(dol_now(), 'dayhourlog'); + if (($this->statut == self::STATUS_ORDERSENT || $this->statut == self::STATUS_RECEIVED_PARTIALLY || $this->statut == self::STATUS_RECEIVED_COMPLETELY)) { $this->db->begin(); @@ -2078,18 +2087,20 @@ class CommandeFournisseur extends CommonOrder } // If module stock is enabled and the stock increase is done on purchase order dispatching - if (!$error && $entrepot > 0 && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) { + if (!$error && $entrepot > 0 && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) { $mouv = new MouvementStock($this->db); if ($product > 0) { // $price should take into account discount (except if option STOCK_EXCLUDE_DISCOUNT_FOR_PMP is on) $mouv->origin = &$this; $mouv->setOrigin($this->element, $this->id); + // Method change if qty < 0 if (!empty($conf->global->SUPPLIER_ORDER_ALLOW_NEGATIVE_QTY_FOR_SUPPLIER_ORDER_RETURN) && $qty < 0) { - $result = $mouv->livraison($user, $product, $entrepot, $qty*(-1), $price, $comment, $now, $eatby, $sellby, $batch); + $result = $mouv->livraison($user, $product, $entrepot, $qty*(-1), $price, $comment, $now, $eatby, $sellby, $batch, 0, $inventorycode); } else { - $result = $mouv->reception($user, $product, $entrepot, $qty, $price, $comment, $eatby, $sellby, $batch); + $result = $mouv->reception($user, $product, $entrepot, $qty, $price, $comment, $eatby, $sellby, $batch, '', 0, $inventorycode); } + if ($result < 0) { $this->error = $mouv->error; $this->errors = $mouv->errors; @@ -2129,7 +2140,7 @@ class CommandeFournisseur extends CommonOrder } if ($line->delete($notrigger) > 0) { - $this->update_price(); + $this->update_price(1); return 1; } else { $this->error = $line->error; @@ -2373,7 +2384,7 @@ class CommandeFournisseur extends CommonOrder dol_syslog(get_class($this)."::Livraison"); $usercanreceive = 0; - if (empty($conf->reception->enabled)) { + if (!isModEnabled('reception')) { $usercanreceive = $user->rights->fournisseur->commande->receptionner; } else { $usercanreceive = $user->rights->reception->creer; @@ -2599,11 +2610,11 @@ class CommandeFournisseur extends CommonOrder } /** - * Update a supplier order from a customer order + * Update a supplier order from a sales order * * @param User $user User that create - * @param int $idc Id of supplier order to update - * @param int $comclientid Id of customer order to use as template + * @param int $idc Id of purchase order to update + * @param int $comclientid Id of sale order to use as template * @return int <0 if KO, >0 if OK */ public function updateFromCommandeClient($user, $idc, $comclientid) @@ -2632,7 +2643,7 @@ class CommandeFournisseur extends CommonOrder $sql .= ", ".price2num($comclient->lines[$i]->qty, 'MS').", ".price2num($comclient->lines[$i]->tva_tx, 5).", ".price2num($comclient->lines[$i]->localtax1_tx, 5).", ".price2num($comclient->lines[$i]->localtax2_tx, 5).", ".price2num($comclient->lines[$i]->remise_percent, 3); $sql .= ", '".price2num($comclient->lines[$i]->subprice, 'MT')."','0', '".$this->db->escape($ref)."');"; if ($this->db->query($sql)) { - $this->update_price(); + $this->update_price(1); } } @@ -2826,7 +2837,7 @@ class CommandeFournisseur extends CommonOrder if ($qty < $this->line->packaging) { $qty = $this->line->packaging; } else { - if (! empty($this->line->packaging) && ($qty % $this->line->packaging) > 0) { + if (!empty($this->line->packaging) && ($qty % $this->line->packaging) > 0) { $coeff = intval($qty / $this->line->packaging) + 1; $qty = $this->line->packaging * $coeff; setEventMessage($langs->trans('QtyRecalculatedWithPackaging'), 'mesgs'); @@ -2853,7 +2864,7 @@ class CommandeFournisseur extends CommonOrder $this->line->total_localtax2 = $total_localtax2; $this->line->total_ttc = $total_ttc; $this->line->product_type = $type; - $this->line->special_code = $this->special_code; + $this->line->special_code = (!empty($this->special_code) ? $this->special_code : 0); $this->line->origin = $this->origin; $this->line->fk_unit = $fk_unit; @@ -2885,7 +2896,7 @@ class CommandeFournisseur extends CommonOrder // Mise a jour info denormalisees au niveau facture if ($result >= 0) { - $this->update_price('', 'auto'); + $this->update_price('1', 'auto'); $this->db->commit(); return $result; } else { @@ -3178,26 +3189,28 @@ class CommandeFournisseur extends CommonOrder * @param int $hidedesc Hide description * @param int $hideref Hide ref * @param null|array $moreparams Array to provide more information - * @return int 0 if KO, 1 if OK + * @return int < 0 if KO, 0 = no doc generated, > 0 if OK */ public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null) { global $conf, $langs; - $langs->load("suppliers"); - $outputlangs->load("products"); - if (!dol_strlen($modele)) { - $modele = ''; - if ($this->model_pdf) { + $modele = ''; // No doc template/generation by default + + if (!empty($this->model_pdf)) { $modele = $this->model_pdf; } elseif (!empty($conf->global->COMMANDE_SUPPLIER_ADDON_PDF)) { $modele = $conf->global->COMMANDE_SUPPLIER_ADDON_PDF; } } + if (empty($modele)) { return 0; } else { + $langs->load("suppliers"); + $outputlangs->load("products"); + $modelpath = "core/modules/supplier_order/doc/"; return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); } @@ -3252,18 +3265,18 @@ class CommandeFournisseur extends CommonOrder /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'commande_fournisseur' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -3362,7 +3375,7 @@ class CommandeFournisseur extends CommonOrder { global $conf, $langs; - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; $qtydelivered = array(); @@ -3888,8 +3901,8 @@ class CommandeFournisseurLigne extends CommonOrderLine $sql .= ", vat_src_code = '".(empty($this->vat_src_code) ? '' : $this->vat_src_code)."'"; $sql .= ", tva_tx='".price2num($this->tva_tx)."'"; - $sql .= ", localtax1_tx='".price2num($this->total_localtax1)."'"; - $sql .= ", localtax2_tx='".price2num($this->total_localtax2)."'"; + $sql .= ", localtax1_tx='".price2num($this->localtax1_tx)."'"; + $sql .= ", localtax2_tx='".price2num($this->localtax2_tx)."'"; $sql .= ", localtax1_type='".$this->db->escape($this->localtax1_type)."'"; $sql .= ", localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= ", qty='".price2num($this->qty)."'"; @@ -3906,10 +3919,10 @@ class CommandeFournisseurLigne extends CommonOrderLine $sql .= ($this->fk_unit ? ", fk_unit='".$this->db->escape($this->fk_unit)."'" : ", fk_unit=null"); // Multicurrency - $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); diff --git a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php index 5bfafff57b5..02fbff5b363 100644 --- a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php +++ b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php @@ -75,10 +75,13 @@ class CommandeFournisseurDispatch extends CommonObjectLine public $fk_product; /** - * @var int ID + * @var int ID. Should be named fk_origin_line ? */ public $fk_commandefourndet; + public $fk_reception; + + public $qty; public $qty_asked; @@ -128,9 +131,9 @@ class CommandeFournisseurDispatch extends CommonObjectLine $this->statuts[0] = 'Received'; $this->statuts[1] = 'Verified'; $this->statuts[2] = 'Denied'; - $this->statutshort[0] = 'Received'; - $this->statutshort[1] = 'Verified'; - $this->statutshort[2] = 'Denied'; + $this->statuts_short[0] = 'Received'; + $this->statuts_short[1] = 'Verified'; + $this->statuts_short[2] = 'Denied'; } @@ -215,7 +218,7 @@ class CommandeFournisseurDispatch extends CommonObjectLine $sql .= " ".(!isset($this->eatby) || dol_strlen($this->eatby) == 0 ? 'NULL' : "'".$this->db->idate($this->eatby)."'").","; $sql .= " ".(!isset($this->sellby) || dol_strlen($this->sellby) == 0 ? 'NULL' : "'".$this->db->idate($this->sellby)."'").","; $sql .= " ".(!isset($this->fk_reception) ? 'NULL' : "'".$this->db->escape($this->fk_reception)."'").","; - $sql .= " ".(!isset($this->cost_price) ? '0' : "'".$this->db->escape($this->cost_price)."'").""; + $sql .= " ".(!isset($this->cost_price) ? '0' : "'".$this->db->escape($this->cost_price)."'"); $sql .= ")"; $this->db->begin(); @@ -393,7 +396,7 @@ class CommandeFournisseurDispatch extends CommonObjectLine $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; $sql .= " batch=".(isset($this->batch) ? "'".$this->db->escape($this->batch)."'" : "null").","; $sql .= " eatby=".(dol_strlen($this->eatby) != 0 ? "'".$this->db->idate($this->eatby)."'" : 'null').","; - $sql .= " sellby=".(dol_strlen($this->sellby) != 0 ? "'".$this->db->idate($this->sellby)."'" : 'null').""; + $sql .= " sellby=".(dol_strlen($this->sellby) != 0 ? "'".$this->db->idate($this->sellby)."'" : 'null'); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -577,7 +580,7 @@ class CommandeFournisseurDispatch extends CommonObjectLine if ($mode == 0) { return $langs->trans($this->statuts[$status]); } elseif ($mode == 1) { - return $langs->trans($this->statutshort[$status]); + return $langs->trans($this->statuts_short[$status]); } elseif ($mode == 2) { return $langs->trans($this->statuts[$status]); } elseif ($mode == 3) { @@ -598,11 +601,11 @@ class CommandeFournisseurDispatch extends CommonObjectLine } } elseif ($mode == 5) { if ($status == 0) { - return ''.$langs->trans($this->statutshort[$status]).' '.img_picto($langs->trans($this->statuts[$status]), 'statut0'); + return ''.$langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts[$status]), 'statut0'); } elseif ($status == 1) { - return ''.$langs->trans($this->statutshort[$status]).' '.img_picto($langs->trans($this->statuts[$status]), 'statut4'); + return ''.$langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts[$status]), 'statut4'); } elseif ($status == 2) { - return ''.$langs->trans($this->statutshort[$status]).' '.img_picto($langs->trans($this->statuts[$status]), 'statut8'); + return ''.$langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts[$status]), 'statut8'); } } } diff --git a/htdocs/fourn/class/fournisseur.facture-rec.class.php b/htdocs/fourn/class/fournisseur.facture-rec.class.php index 9464c06bd4c..1570f161582 100644 --- a/htdocs/fourn/class/fournisseur.facture-rec.class.php +++ b/htdocs/fourn/class/fournisseur.facture-rec.class.php @@ -195,7 +195,7 @@ class FactureFournisseurRec extends CommonInvoice 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-1, 'position'=>80), 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>210), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>'$conf->projet->enabled', 'visible'=>-1, 'position'=>85), + 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>"isModEnabled('project')", 'visible'=>-1, 'position'=>85), 'fk_account' =>array('type'=>'integer', 'label'=>'Fk account', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>175), 'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'Fk cond reglement', 'enabled'=>1, 'visible'=>-1, 'position'=>90), 'fk_mode_reglement' =>array('type'=>'integer', 'label'=>'Fk mode reglement', 'enabled'=>1, 'visible'=>-1, 'position'=>95), @@ -564,7 +564,7 @@ class FactureFournisseurRec extends CommonInvoice $sql .= ', f.vat_src_code, f.localtax1, f.localtax2'; $sql .= ', f.total_tva, f.total_ht, f.total_ttc'; $sql .= ', f.fk_user_author, f.fk_user_modif'; - $sql .= ', f.fk_projet, f.fk_account'; + $sql .= ', f.fk_projet as fk_project, f.fk_account'; $sql .= ', f.fk_mode_reglement, p.code as mode_reglement_code, p.libelle as mode_reglement_libelle'; $sql .= ', f.fk_cond_reglement, c.code as cond_reglement_code, c.libelle as cond_reglement_libelle, c.libelle_facture as cond_reglement_libelle_doc'; $sql .= ', f.date_lim_reglement'; @@ -610,7 +610,7 @@ class FactureFournisseurRec extends CommonInvoice $this->total_ttc = $obj->total_ttc; $this->user_author = $obj->fk_user_author; $this->user_modif = $obj->fk_user_modif; - $this->fk_project = $obj->fk_projet; + $this->fk_project = $obj->fk_project; $this->fk_account = $obj->fk_account; $this->mode_reglement_id = $obj->fk_mode_reglement; $this->mode_reglement_code = $obj->mode_reglement_code; @@ -982,9 +982,9 @@ class FactureFournisseurRec extends CommonInvoice $sql .= ', fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc'; $sql .= ') VALUES ('; $sql .= ' ' . (int) $facid; // source supplier invoie id - $sql .= ', ' . (! empty($fk_product) ? "'" . $this->db->escape($fk_product) . "'" : 'null'); - $sql .= ', ' . (! empty($ref) ? "'" . $this->db->escape($ref) . "'" : 'null'); - $sql .= ', ' . (! empty($label) ? "'" . $this->db->escape($label) . "'" : 'null'); + $sql .= ', ' . (!empty($fk_product) ? "'" . $this->db->escape($fk_product) . "'" : 'null'); + $sql .= ', ' . (!empty($ref) ? "'" . $this->db->escape($ref) . "'" : 'null'); + $sql .= ', ' . (!empty($label) ? "'" . $this->db->escape($label) . "'" : 'null'); $sql .= ", '" . $this->db->escape($desc) . "'"; $sql .= ', ' . price2num($pu_ht); $sql .= ', ' . price2num($pu_ttc); @@ -1737,18 +1737,18 @@ class FactureFournisseurRec extends CommonInvoice /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_rec' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -1771,7 +1771,7 @@ class FactureFournisseurRec extends CommonInvoice } $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; - $sql .= " SET frequency = ".($frequency ? ((int) $this->db->escape($frequency)) : "NULL"); + $sql .= " SET frequency = ".($frequency ? ((int) $frequency) : "NULL"); if (!empty($unit)) { $sql .= ", unit_frequency = '".$this->db->escape($unit)."'"; } @@ -2154,8 +2154,8 @@ class FactureFournisseurLigneRec extends CommonObjectLine $sql .= ' fk_facture_fourn = ' . (int) $this->fk_facture_fourn; $sql .= ', fk_parent_line = ' . (int) $this->fk_parent; $sql .= ', fk_product = ' . (int) $this->fk_product; - $sql .= ', ref = ' . (! empty($this->ref) ? "'" . $this->db->escape($this->ref) . "'" : 'NULL'); - $sql .= ", label = " . (! empty($this->label) ? "'" . $this->db->escape($this->label) . "'" : 'NULL'); + $sql .= ', ref = ' . (!empty($this->ref) ? "'" . $this->db->escape($this->ref) . "'" : 'NULL'); + $sql .= ", label = " . (!empty($this->label) ? "'" . $this->db->escape($this->label) . "'" : 'NULL'); $sql .= ", description = '" . $this->db->escape($this->description) . "'"; $sql .= ', pu_ht = ' . price2num($this->pu_ht); $sql .= ', pu_ttc = ' . price2num($this->pu_ttc); diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 948e1c01deb..4906ae21a09 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -38,12 +38,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/class/commoninvoice.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; -} -if (!empty($conf->accounting->enabled)) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; } @@ -297,13 +295,13 @@ class FactureFournisseur extends CommonInvoice 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>130), 'fk_user_valid' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>135), 'fk_facture_source' =>array('type'=>'integer', 'label'=>'Fk facture source', 'enabled'=>1, 'visible'=>-1, 'position'=>140), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>'$conf->projet->enabled', 'visible'=>-1, 'position'=>145), + 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'visible'=>-1, 'position'=>145), 'fk_account' =>array('type'=>'integer', 'label'=>'Account', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>150), 'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'PaymentTerm', 'enabled'=>1, 'visible'=>-1, 'position'=>155), 'fk_mode_reglement' =>array('type'=>'integer', 'label'=>'PaymentMode', 'enabled'=>1, 'visible'=>-1, 'position'=>160), 'date_lim_reglement' =>array('type'=>'date', 'label'=>'DateLimReglement', 'enabled'=>1, 'visible'=>-1, 'position'=>165), - 'note_private' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>170), - 'note_public' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>175), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>170), + 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>175), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'ModelPdf', 'enabled'=>1, 'visible'=>0, 'position'=>180), 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>190), 'fk_incoterms' =>array('type'=>'integer', 'label'=>'IncotermCode', 'enabled'=>1, 'visible'=>-1, 'position'=>195), @@ -433,7 +431,7 @@ class FactureFournisseur extends CommonInvoice $result = $_facrec->fetchObjectLinked(null, '', null, '', 'OR', 1, 'sourcetype', 0); // This load $_facrec->linkedObjectsIds // Define some dates - if (! empty($_facrec->frequency)) { + if (!empty($_facrec->frequency)) { $originaldatewhen = $_facrec->date_when; $nextdatewhen = dol_time_plus_duree($originaldatewhen, $_facrec->frequency, $_facrec->unit_frequency); $previousdaynextdatewhen = dol_time_plus_duree($nextdatewhen, -1, 'd'); @@ -443,7 +441,8 @@ class FactureFournisseur extends CommonInvoice $this->entity = $_facrec->entity; // Invoice created in same entity than template // Fields coming from GUI (priority on template). TODO Value of template should be used as default value on GUI so we can use here always value from GUI - $this->fk_projet = GETPOST('projectid', 'int') > 0 ? ((int) GETPOST('projectid', 'int')) : $_facrec->fk_projet; + $this->fk_project = GETPOST('projectid', 'int') > 0 ? ((int) GETPOST('projectid', 'int')) : $_facrec->fk_projet; + $this->fk_projet = $this->fk_project; $this->note_public = GETPOST('note_public', 'restricthtml') ? GETPOST('note_public', 'restricthtml') : $_facrec->note_public; $this->note_private = GETPOST('note_private', 'restricthtml') ? GETPOST('note_private', 'restricthtml') : $_facrec->note_private; $this->model_pdf = GETPOST('model', 'alpha') ? GETPOST('model', 'alpha') : $_facrec->model_pdf; @@ -463,7 +462,7 @@ class FactureFournisseur extends CommonInvoice if (! $this->type) { $this->type = self::TYPE_STANDARD; } - if (! empty(GETPOST('ref_supplier'))) { + if (!empty(GETPOST('ref_supplier'))) { $this->ref_supplier = trim($this->ref_supplier); } else { $this->ref_supplier = trim($this->ref_supplier . '_' . ($_facrec->nb_gen_done + 1)); @@ -503,13 +502,13 @@ class FactureFournisseur extends CommonInvoice $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($this->thirdparty->default_lang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && isset($this->thirdparty->default_lang)) { $newlang = $this->thirdparty->default_lang; // for proposal, order, invoice, ... } - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($this->default_lang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && isset($this->default_lang)) { $newlang = $this->default_lang; // for thirdparty } - if (! empty($newlang)) { + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } @@ -539,7 +538,7 @@ class FactureFournisseur extends CommonInvoice } // Define due date if not already defined - if (! empty($forceduedate)) { + if (!empty($forceduedate)) { $this->date_echeance = $forceduedate; } @@ -591,7 +590,7 @@ class FactureFournisseur extends CommonInvoice $sql .= ", ".(int) $this->fk_multicurrency; $sql .= ", '".$this->db->escape($this->multicurrency_code)."'"; $sql .= ", ".(double) $this->multicurrency_tx; - $sql .= ", ".(isset($this->fk_facture_source) ? $this->fk_facture_source : "NULL"); + $sql .= ", ".($this->fk_facture_source ? ((int) $this->fk_facture_source) : "null"); $sql .= ", ".(isset($this->fk_fac_rec_source) ? $this->fk_fac_rec_source : "NULL"); $sql .= ")"; @@ -759,9 +758,9 @@ class FactureFournisseur extends CommonInvoice // If margin module defined on costprice, we try the costprice // If not defined or if module margin defined and pmp and stock module enabled, we try pmp price // else we get the best supplier price - if ($conf->global->MARGIN_TYPE == 'costprice' && ! empty($producttmp->cost_price)) { + if ($conf->global->MARGIN_TYPE == 'costprice' && !empty($producttmp->cost_price)) { $buyprice = $producttmp->cost_price; - } elseif (! empty($conf->stock->enabled) && ($conf->global->MARGIN_TYPE == 'costprice' || $conf->global->MARGIN_TYPE == 'pmp') && ! empty($producttmp->pmp)) { + } elseif (isModEnabled('stock') && ($conf->global->MARGIN_TYPE == 'costprice' || $conf->global->MARGIN_TYPE == 'pmp') && !empty($producttmp->pmp)) { $buyprice = $producttmp->pmp; } else { if ($producttmp->find_min_price_product_fournisseur($_facrec->lines[$i]->fk_product) > 0) { @@ -808,7 +807,7 @@ class FactureFournisseur extends CommonInvoice // Update total price - $result = $this->update_price(); + $result = $this->update_price(1); if ($result > 0) { // Actions on extra fields if (!$error) { @@ -853,15 +852,18 @@ class FactureFournisseur extends CommonInvoice } /** - * Load object in memory from database + * Load object in memory from database * - * @param int $id Id supplier invoice - * @param string $ref Ref supplier invoice - * @return int <0 if KO, >0 if OK, 0 if not found + * @param int $id Id supplier invoice + * @param string $ref Ref supplier invoice + * @param string $ref_ext External reference of invoice + * @return int <0 if KO, >0 if OK, 0 if not found */ - public function fetch($id = '', $ref = '') + public function fetch($id = '', $ref = '', $ref_ext = '') { - global $langs; + if (empty($id) && empty($ref) && empty($ref_ext)) { + return -1; + } $sql = "SELECT"; $sql .= " t.rowid,"; @@ -912,10 +914,15 @@ class FactureFournisseur extends CommonInvoice $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as p ON t.fk_mode_reglement = p.id"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON t.fk_incoterms = i.rowid'; if ($id) { - $sql .= " WHERE t.rowid=".((int) $id); - } - if ($ref) { - $sql .= " WHERE t.ref='".$this->db->escape($ref)."' AND t.entity IN (".getEntity('supplier_invoice').")"; + $sql .= " WHERE t.rowid = ".((int) $id); + } else { + $sql .= ' WHERE t.entity IN ('.getEntity('supplier_invoice').')'; // Don't use entity if you use rowid + if ($ref) { + $sql .= " AND t.ref = '".$this->db->escape($ref)."'"; + } + if ($ref_ext) { + $sql .= " AND t.ref_ext = '".$this->db->escape($ref_ext)."'"; + } } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); @@ -1233,35 +1240,34 @@ class FactureFournisseur extends CommonInvoice $sql .= " ref=".(isset($this->ref) ? "'".$this->db->escape($this->ref)."'" : "null").","; $sql .= " ref_supplier=".(isset($this->ref_supplier) ? "'".$this->db->escape($this->ref_supplier)."'" : "null").","; $sql .= " ref_ext=".(isset($this->ref_ext) ? "'".$this->db->escape($this->ref_ext)."'" : "null").","; - $sql .= " entity=".(isset($this->entity) ? $this->entity : "null").","; - $sql .= " type=".(isset($this->type) ? $this->type : "null").","; - $sql .= " fk_soc=".(isset($this->fk_soc) ? $this->fk_soc : "null").","; + $sql .= " entity=".(isset($this->entity) ? ((int) $this->entity) : "null").","; + $sql .= " type=".(isset($this->type) ? ((int) $this->type) : "null").","; + $sql .= " fk_soc=".(isset($this->fk_soc) ? ((int) $this->fk_soc) : "null").","; $sql .= " datec=".(dol_strlen($this->datec) != 0 ? "'".$this->db->idate($this->datec)."'" : 'null').","; $sql .= " datef=".(dol_strlen($this->date) != 0 ? "'".$this->db->idate($this->date)."'" : 'null').","; if (dol_strlen($this->tms) != 0) { $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; } $sql .= " libelle=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").","; - $sql .= " paye=".(isset($this->paye) ? $this->paye : "null").","; + $sql .= " paye=".(isset($this->paye) ? ((int) $this->paye) : "null").","; $sql .= " close_code=".(isset($this->close_code) ? "'".$this->db->escape($this->close_code)."'" : "null").","; $sql .= " close_note=".(isset($this->close_note) ? "'".$this->db->escape($this->close_note)."'" : "null").","; - //$sql .= " tva=".(isset($this->tva) ? $this->tva : "null").","; - $sql .= " localtax1=".(isset($this->localtax1) ? $this->localtax1 : "null").","; - $sql .= " localtax2=".(isset($this->localtax2) ? $this->localtax2 : "null").","; - $sql .= " total_ht=".(isset($this->total_ht) ? $this->total_ht : "null").","; - $sql .= " total_tva=".(isset($this->total_tva) ? $this->total_tva : "null").","; - $sql .= " total_ttc=".(isset($this->total_ttc) ? $this->total_ttc : "null").","; - $sql .= " fk_statut=".(isset($this->status) ? $this->status : (isset($this->statut) ? $this->statut : "null")).","; - $sql .= " fk_user_author=".(isset($this->author) ? $this->author : "null").","; - $sql .= " fk_user_valid=".(isset($this->fk_user_valid) ? $this->fk_user_valid : "null").","; - $sql .= " fk_facture_source=".(isset($this->fk_facture_source) ? $this->fk_facture_source : "null").","; - $sql .= " fk_projet=".(isset($this->fk_project) ? $this->fk_project : "null").","; - $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? $this->cond_reglement_id : "null").","; + $sql .= " localtax1=".(isset($this->localtax1) ? ((float) $this->localtax1) : "null").","; + $sql .= " localtax2=".(isset($this->localtax2) ? ((float) $this->localtax2) : "null").","; + $sql .= " total_ht=".(isset($this->total_ht) ? ((float) $this->total_ht) : "null").","; + $sql .= " total_tva=".(isset($this->total_tva) ? ((float) $this->total_tva) : "null").","; + $sql .= " total_ttc=".(isset($this->total_ttc) ? ((float) $this->total_ttc) : "null").","; + $sql .= " fk_statut=".(isset($this->status) ? ((int) $this->status) : (isset($this->statut) ? ((int) $this->statut) : "null")).","; + $sql .= " fk_user_author=".(isset($this->author) ? ((int) $this->author) : "null").","; + $sql .= " fk_user_valid=".(isset($this->fk_user_valid) ? ((int) $this->fk_user_valid) : "null").","; + $sql .= " fk_facture_source=".($this->fk_facture_source ? ((int) $this->fk_facture_source) : "null").","; + $sql .= " fk_projet=".(isset($this->fk_project) ? ((int) $this->fk_project) : "null").","; + $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? ((int) $this->cond_reglement_id) : "null").","; $sql .= " date_lim_reglement=".(dol_strlen($this->date_echeance) != 0 ? "'".$this->db->idate($this->date_echeance)."'" : 'null').","; $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -1385,7 +1391,7 @@ class FactureFournisseur extends CommonInvoice $result = $this->update_price(1); if ($result > 0) { // Create link between discount and invoice line - $result = $remise->link_to_invoice($lineid, 0, 'supplier'); + $result = $remise->link_to_invoice($lineid, 0); if ($result < 0) { $this->error = $remise->error; $this->db->rollback(); @@ -1811,7 +1817,7 @@ class FactureFournisseur extends CommonInvoice $resql = $this->db->query($sql); if ($resql) { // Si on incrémente le produit principal et ses composants à la validation de facture fournisseur - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -1942,7 +1948,7 @@ class FactureFournisseur extends CommonInvoice } // Si on incremente le produit principal et ses composants a la validation de facture fournisseur, on decremente - if ($result >= 0 && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) { + if ($result >= 0 && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -2073,7 +2079,7 @@ class FactureFournisseur extends CommonInvoice if (!empty($conf->global->SUPPLIER_INVOICE_WITH_PREDEFINED_PRICES_ONLY)) { // Check quantity is enough dol_syslog(get_class($this)."::addline we check supplier prices fk_product=".$fk_product." qty=".$qty." ref_supplier=".$ref_supplier); - $prod = new Product($this->db, $fk_product); + $prod = new ProductFournisseur($this->db); if ($prod->fetch($fk_product) > 0) { $product_type = $prod->type; $label = $prod->label; @@ -2124,7 +2130,7 @@ class FactureFournisseur extends CommonInvoice $product_type = $type; } - if (!empty($conf->multicurrency->enabled) && $pu_devise > 0) { + if (isModEnabled("multicurrency") && $pu_devise > 0) { $pu = 0; } @@ -2424,7 +2430,7 @@ class FactureFournisseur extends CommonInvoice $this->errors[] = $line->error; } else { // Update total price into invoice record - $res = $this->update_price('', 'auto', 0, $this->thirdparty); + $res = $this->update_price('1', 'auto', 0, $this->thirdparty); } return $res; @@ -2471,7 +2477,7 @@ class FactureFournisseur extends CommonInvoice $this->db->rollback(); return -3; } else { - $res = $this->update_price(); + $res = $this->update_price(1); if ($res > 0) { $this->db->commit(); @@ -3059,7 +3065,7 @@ class FactureFournisseur extends CommonInvoice // Clear fields $object->ref_supplier = (empty($this->ref_supplier) ? $langs->trans("CopyOf").' '.$object->ref_supplier : $this->ref_supplier); $object->author = $user->id; - $object->user_valid = ''; + $object->user_valid = 0; $object->fk_facture_source = 0; $object->date_creation = ''; $object->date_validation = ''; @@ -3156,18 +3162,18 @@ class FactureFournisseur extends CommonInvoice /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_fourn' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -3694,10 +3700,10 @@ class SupplierInvoiceLine extends CommonObjectLine } // Multicurrency - $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); @@ -3860,7 +3866,7 @@ class SupplierInvoiceLine extends CommonObjectLine $sql .= ' '.((!empty($this->fk_product) && $this->fk_product > 0) ? $this->fk_product : "null").','; $sql .= " ".((int) $this->product_type).","; $sql .= " ".price2num($this->remise_percent).","; - $sql .= ' '.(! empty($this->fk_remise_except) ? ((int) $this->fk_remise_except) : "null").','; + $sql .= ' '.(!empty($this->fk_remise_except) ? ((int) $this->fk_remise_except) : "null").','; $sql .= " ".price2num($this->subprice).","; $sql .= " ".(!empty($this->qty) ?price2num($this->total_ttc / $this->qty) : price2num($this->total_ttc)).","; $sql .= " ".(!empty($this->date_start) ? "'".$this->db->idate($this->date_start)."'" : "null").","; diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index d113eadd8a7..a01c8ec00d3 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -31,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/productfournisseurprice.class.php'; /** @@ -256,9 +256,10 @@ class ProductFournisseur extends Product * @param string $desc_fourn Custom description for product_fourn_price * @param string $barcode Barcode * @param int $fk_barcode_type Barcode type + * @param array $options Extrafields of product fourn price * @return int <0 if KO, >=0 if OK */ - public function update_buyprice($qty, $buyprice, $user, $price_base_type, $fourn, $availability, $ref_fourn, $tva_tx, $charges = 0, $remise_percent = 0, $remise = 0, $newnpr = 0, $delivery_time_days = 0, $supplier_reputation = '', $localtaxes_array = array(), $newdefaultvatcode = '', $multicurrency_buyprice = 0, $multicurrency_price_base_type = 'HT', $multicurrency_tx = 1, $multicurrency_code = '', $desc_fourn = '', $barcode = '', $fk_barcode_type = '') + public function update_buyprice($qty, $buyprice, $user, $price_base_type, $fourn, $availability, $ref_fourn, $tva_tx, $charges = 0, $remise_percent = 0, $remise = 0, $newnpr = 0, $delivery_time_days = 0, $supplier_reputation = '', $localtaxes_array = array(), $newdefaultvatcode = '', $multicurrency_buyprice = 0, $multicurrency_price_base_type = 'HT', $multicurrency_tx = 1, $multicurrency_code = '', $desc_fourn = '', $barcode = '', $fk_barcode_type = '', $options = array()) { // phpcs:enable global $conf, $langs; @@ -294,7 +295,7 @@ class ProductFournisseur extends Product // Multicurrency $multicurrency_unitBuyPrice = null; $fk_multicurrency = null; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (empty($multicurrency_tx)) { $multicurrency_tx = 1; } @@ -407,7 +408,25 @@ class ProductFournisseur extends Product $sql .= ", packaging = ".(empty($packaging) ? 1 : $packaging); } $sql .= " WHERE rowid = ".((int) $this->product_fourn_price_id); - //print $sql;exit; + + if (!$error) { + if (!empty($options) && is_array($options)) { + $productfournisseurprice = new ProductFournisseurPrice($this->db); + $res = $productfournisseurprice->fetch($this->product_fourn_price_id); + if ($res > 0) { + foreach ($options as $key=>$value) { + $productfournisseurprice->array_options[$key] = $value; + } + $res = $productfournisseurprice->update($user); + if ($res < 0) { + $this->error = $productfournisseurprice->error; + $this->errors = $productfournisseurprice->errors; + $error++; + } + } + } + } + // TODO Add price_base_type and price_ttc dol_syslog(get_class($this).'::update_buyprice update knowing id of line = product_fourn_price_id = '.$this->product_fourn_price_id, LOG_DEBUG); @@ -490,9 +509,28 @@ class ProductFournisseur extends Product if ($resql) { $this->product_fourn_price_id = $this->db->last_insert_id(MAIN_DB_PREFIX."product_fournisseur_price"); } else { + $this->error = $this->db->lasterror(); $error++; } + if (!$error) { + if (!empty($options) && is_array($options)) { + $productfournisseurprice = new ProductFournisseurPrice($this->db); + $res = $productfournisseurprice->fetch($this->product_fourn_price_id); + if ($res > 0) { + foreach ($options as $key=>$value) { + $productfournisseurprice->array_options[$key] = $value; + } + $res = $productfournisseurprice->update($user); + if ($res < 0) { + $this->error = $productfournisseurprice->error; + $this->errors = $productfournisseurprice->errors; + $error++; + } + } + } + } + if (!$error && empty($conf->global->PRODUCT_PRICE_SUPPLIER_NO_LOG)) { // Add record into log table // $this->product_fourn_price_id must be set @@ -548,7 +586,7 @@ class ProductFournisseur extends Product $sql .= " pfp.supplier_reputation, pfp.fk_user, pfp.datec,"; $sql .= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code,"; $sql .= " pfp.barcode, pfp.fk_barcode_type, pfp.packaging,"; - $sql .= " p.ref as product_ref"; + $sql .= " p.ref as product_ref, p.tosell as status, p.tobuy as status_buy"; $sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp, ".MAIN_DB_PREFIX."product as p"; $sql .= " WHERE pfp.rowid = ".(int) $rowid; $sql .= " AND pfp.fk_product = p.rowid"; @@ -564,7 +602,8 @@ class ProductFournisseur extends Product $this->fk_product = $obj->fk_product; $this->product_id = $obj->fk_product; $this->product_ref = $obj->product_ref; - + $this->status = $obj->status; + $this->status_buy = $obj->status_buy; $this->fourn_id = $obj->fk_soc; $this->fourn_ref = $obj->ref_fourn; // deprecated $this->ref_supplier = $obj->ref_fourn; @@ -590,7 +629,7 @@ class ProductFournisseur extends Product $this->fourn_multicurrency_tx = $obj->multicurrency_tx; $this->fourn_multicurrency_id = $obj->fk_multicurrency; $this->fourn_multicurrency_code = $obj->multicurrency_code; - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $this->fourn_barcode = $obj->barcode; // deprecated $this->fourn_fk_barcode_type = $obj->fk_barcode_type; // deprecated $this->supplier_barcode = $obj->barcode; @@ -598,7 +637,8 @@ class ProductFournisseur extends Product } $this->packaging = $obj->packaging; - if (empty($ignore_expression) && !empty($this->fk_supplier_price_expression)) { + if (isModEnabled('dynamicprices') && empty($ignore_expression) && !empty($this->fk_supplier_price_expression)) { + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($this); if ($price_result >= 0) { @@ -640,7 +680,7 @@ class ProductFournisseur extends Product // phpcs:enable global $conf; - $sql = "SELECT s.nom as supplier_name, s.rowid as fourn_id, p.ref as product_ref,"; + $sql = "SELECT s.nom as supplier_name, s.rowid as fourn_id, p.ref as product_ref, p.tosell as status, p.tobuy as status_buy, "; $sql .= " pfp.rowid as product_fourn_pri_id, pfp.entity, pfp.ref_fourn, pfp.desc_fourn, pfp.fk_product as product_fourn_id, pfp.fk_supplier_price_expression,"; $sql .= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.info_bits, pfp.delivery_time_days, pfp.supplier_reputation,"; $sql .= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code, pfp.datec, pfp.tms,"; @@ -669,6 +709,8 @@ class ProductFournisseur extends Product $prodfourn->product_ref = $record["product_ref"]; $prodfourn->product_fourn_price_id = $record["product_fourn_pri_id"]; + $prodfourn->status = $record["status"]; + $prodfourn->status_buy = $record["status_buy"]; $prodfourn->product_fourn_id = $record["product_fourn_id"]; $prodfourn->product_fourn_entity = $record["entity"]; $prodfourn->ref_supplier = $record["ref_fourn"]; @@ -700,12 +742,13 @@ class ProductFournisseur extends Product $prodfourn->packaging = $record["packaging"]; - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $prodfourn->supplier_barcode = $record["barcode"]; $prodfourn->supplier_fk_barcode_type = $record["fk_barcode_type"]; } - if (!empty($conf->dynamicprices->enabled) && !empty($prodfourn->fk_supplier_price_expression)) { + if (isModEnabled('dynamicprices') && !empty($prodfourn->fk_supplier_price_expression)) { + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($prodfourn); if ($price_result >= 0) { @@ -778,7 +821,7 @@ class ProductFournisseur extends Product $sql .= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."product_fournisseur_price as pfp"; $sql .= " WHERE s.entity IN (".getEntity('societe').")"; - $sql .= " AND pfp.entity = ".$conf->entity; // only current entity + $sql .= " AND pfp.entity IN (".getEntity('productsupplierprice').")"; $sql .= " AND pfp.fk_product = ".((int) $prodid); $sql .= " AND pfp.fk_soc = s.rowid"; $sql .= " AND s.status = 1"; // only enabled society @@ -811,13 +854,15 @@ class ProductFournisseur extends Product $fourn_unitprice = $record["unitprice"]; $fourn_unitprice_with_discount = $record["unitprice"] * (1 - $record["remise_percent"] / 100); - if (!empty($conf->dynamicprices->enabled) && !empty($record["fk_supplier_price_expression"])) { + if (isModEnabled('dynamicprices') && !empty($record["fk_supplier_price_expression"])) { $prod_supplier = new ProductFournisseur($this->db); $prod_supplier->product_fourn_price_id = $record["product_fourn_price_id"]; $prod_supplier->id = $prodid; $prod_supplier->fourn_qty = $record["quantity"]; $prod_supplier->fourn_tva_tx = $record["tva_tx"]; $prod_supplier->fk_supplier_price_expression = $record["fk_supplier_price_expression"]; + + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($prod_supplier); if ($price_result >= 0) { @@ -930,7 +975,7 @@ class ProductFournisseur extends Product public function display_price_product_fournisseur($showunitprice = 1, $showsuptitle = 1, $maxlen = 0, $notooltip = 0, $productFournList = array()) { // phpcs:enable - global $langs; + global $conf, $langs; $out = ''; $langs->load("suppliers"); @@ -948,7 +993,7 @@ class ProductFournisseur extends Product } $out .= '
    '; } else { - $out = ($showunitprice ? price($this->fourn_unitprice * (1 - $this->fourn_remise_percent / 100) + $this->fourn_remise).' '.$langs->trans("HT").'   (' : ''); + $out = ($showunitprice ? price($this->fourn_unitprice * (1 - $this->fourn_remise_percent / 100) + $this->fourn_remise, 0, $langs, 1, -1, -1, $conf->currency).' '.$langs->trans("HT").'   (' : ''); $out .= ($showsuptitle ? ''.$langs->trans("Supplier").': ' : '').$this->getSocNomUrl(1, 'supplier', $maxlen, $notooltip).' / '.$langs->trans("SupplierRef").': '.$this->ref_supplier; $out .= ($showunitprice ? ')' : ''); } @@ -958,35 +1003,35 @@ class ProductFournisseur extends Product /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'product_fournisseur_price' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** * Function used to replace a product id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old product id - * @param int $dest_id New product id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceProduct(DoliDB $db, $origin_id, $dest_id) + public static function replaceProduct(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'product_fournisseur_price' ); - return CommonObject::commonReplaceProduct($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceProduct($dbs, $origin_id, $dest_id, $tables); } /** @@ -1091,12 +1136,15 @@ class ProductFournisseur extends Product * * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) * @param string $option On what the link point to ('nolink', ...) - * @param int $notooltip 1=Disable tooltip - * @param string $morecss Add more css on link + * @param int $maxlength Maxlength of ref * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking + * @param int $notooltip No tooltip + * @param string $morecss ''=Add more css on link + * @param int $add_label 0=Default, 1=Add label into string, >1=Add first chars into string + * @param string $sep ' - '=Separator between ref and label if option 'add_label' is set * @return string String with URL */ - public function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) + public function getNomUrl($withpicto = 0, $option = '', $maxlength = 0, $save_lastsearch_value = -1, $notooltip = 0, $morecss = '', $add_label = 0, $sep = ' - ') { global $db, $conf, $langs, $hookmanager; @@ -1107,6 +1155,11 @@ class ProductFournisseur extends Product $result = ''; $label = ''; + $newref = $this->ref; + if ($maxlength) { + $newref = dol_trunc($newref, $maxlength, 'middle'); + } + if (!empty($this->entity)) { $tmpphoto = $this->show_photos('product', $conf->product->multidir_output[$this->entity], 1, 1, 0, 0, 0, 80); if ($this->nbphoto > 0) { @@ -1135,12 +1188,12 @@ class ProductFournisseur extends Product $label .= '
    '.$langs->trans('RefSupplier').': '.$this->ref_supplier; if ($this->type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $langs->load("productbatch"); $label .= "
    ".$langs->trans("ManageLotSerial").': '.$this->getLibStatut(0, 2); } } - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $label .= '
    '.$langs->trans('BarCode').': '.$this->barcode; } @@ -1174,13 +1227,13 @@ class ProductFournisseur extends Product } } - if (!empty($conf->accounting->enabled) && $this->status) { + if (isModEnabled('accounting') && $this->status) { include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; $label .= '
    '.$langs->trans('ProductAccountancySellCode').': '.length_accountg($this->accountancy_code_sell); $label .= '
    '.$langs->trans('ProductAccountancySellIntraCode').': '.length_accountg($this->accountancy_code_sell_intra); $label .= '
    '.$langs->trans('ProductAccountancySellExportCode').': '.length_accountg($this->accountancy_code_sell_export); } - if (!empty($conf->accounting->enabled) && $this->status_buy) { + if (isModEnabled('accounting') && $this->status_buy) { include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; $label .= '
    '.$langs->trans('ProductAccountancyBuyCode').': '.length_accountg($this->accountancy_code_buy); $label .= '
    '.$langs->trans('ProductAccountancyBuyIntraCode').': '.length_accountg($this->accountancy_code_buy_intra); @@ -1228,10 +1281,12 @@ class ProductFournisseur extends Product $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); } if ($withpicto != 2) { - $result .= $this->ref.($this->ref_supplier ? ' ('.$this->ref_supplier.')' : ''); + $result .= $newref.($this->ref_supplier ? ' ('.$this->ref_supplier.')' : ''); } $result .= $linkend; - //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); + if ($withpicto != 2) { + $result .= (($add_label && $this->label) ? $sep.dol_trunc($this->label, ($add_label > 1 ? $add_label : 0)) : ''); + } global $action; $hookmanager->initHooks(array($this->element . 'dao')); diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php index 8fc181e18e0..bdf4f8aa457 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -349,7 +349,7 @@ class PaiementFourn extends Paiement if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $newlang = ''; $outputlangs = $langs; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $invoice->thirdparty->default_lang; } if (!empty($newlang)) { @@ -862,7 +862,7 @@ class PaiementFourn extends Paiement global $conf; $way = 'dolibarr'; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { foreach ($this->multicurrency_amounts as $value) { if (!empty($value)) { // one value found then payment is in invoice currency $way = 'customer'; diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 0417554f8fd..644469a257d 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -4,7 +4,7 @@ * Copyright (C) 2005 Eric Seigne * Copyright (C) 2005-2016 Regis Houssin * Copyright (C) 2010-2015 Juanjo Menent - * Copyright (C) 2011-2018 Philippe Grand + * Copyright (C) 2011-2022 Philippe Grand * Copyright (C) 2012-2016 Marcos García * Copyright (C) 2013 Florian Henry * Copyright (C) 2014 Ion Agorria @@ -28,60 +28,66 @@ */ /** - * \file htdocs/fourn/commande/card.php - * \ingroup supplier, order - * \brief Card supplier order + * \file htdocs/fourn/commande/card.php + * \ingroup supplier, order + * \brief Card supplier order */ + +// Load Dolibarr environment require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formorder.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/supplier_order/modules_commandefournisseur.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -if (!empty($conf->supplier_proposal->enabled)) { + +if (isModEnabled('supplier_proposal')) { require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; } -if (!empty($conf->product->enabled)) { +if (isModEnabled("product")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } require_once NUSOAP_PATH.'/nusoap.php'; // Include SOAP -if (!empty($conf->variants->enabled)) { +if (isModEnabled('variants')) { require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; } + +// Load translation files required by the page $langs->loadLangs(array('admin', 'orders', 'sendings', 'companies', 'bills', 'propal', 'receptions', 'supplier_proposal', 'deliveries', 'products', 'stocks', 'productbatch')); -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } + +// Get Parameters $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'alpha'); -$confirm = GETPOST('confirm', 'alpha'); +$action = GETPOST('action', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'purchaseordercard'; // To manage different context of search - $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -$socid = GETPOST('socid', 'int'); +$socid = GETPOST('socid', 'int'); $projectid = GETPOST('projectid', 'int'); -$cancel = GETPOST('cancel', 'alpha'); -$lineid = GETPOST('lineid', 'int'); -$origin = GETPOST('origin', 'alpha'); -$originid = (GETPOST('originid', 'int') ? GETPOST('originid', 'int') : GETPOST('origin_id', 'int')); // For backward compatibility -$rank = (GETPOST('rank', 'int') > 0) ? GETPOST('rank', 'int') : -1; +$cancel = GETPOST('cancel', 'alpha'); +$lineid = GETPOST('lineid', 'int'); +$origin = GETPOST('origin', 'alpha'); +$originid = (GETPOST('originid', 'int') ? GETPOST('originid', 'int') : GETPOST('origin_id', 'int')); // For backward compatibility +$rank = (GETPOST('rank', 'int') > 0) ? GETPOST('rank', 'int') : -1; -//PDF +// PDF $hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); $hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); $hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); @@ -118,12 +124,7 @@ if ($id > 0 || !empty($ref)) { dol_print_error($db, $object->error); } } elseif (!empty($socid) && $socid > 0) { - $fourn = new Fournisseur($db); - $ret = $fourn->fetch($socid); - if ($ret < 0) { - dol_print_error($db, $object->error); - } - $object->socid = $fourn->id; + $object->socid = $socid; $ret = $object->fetch_thirdparty(); if ($ret < 0) { dol_print_error($db, $object->error); @@ -160,7 +161,7 @@ $permissiontoadd = $usercancreate; // Used by the include of actions_addupdatede // Project permission $caneditproject = false; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $caneditproject = empty($conf->global->SUPPLIER_ORDER_FORBID_EDIT_PROJECT) || ($object->statut == CommandeFournisseur::STATUS_DRAFT && preg_match('/^[\(]?PROV/i', $object->ref)); } @@ -405,7 +406,16 @@ if (empty($reshook)) { } // Add a product line - if ($action == 'addline' && $usercancreate) { + if ($action == 'addline' && GETPOST('submitforalllines', 'aZ09') && GETPOST('vatforalllines', 'alpha') && $usercancreate) { + // Define new vat_rate for all lines + $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); + $vat_rate = str_replace('*', '', $vat_rate); + $localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc); + $localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc); + foreach ($object->lines as $line) { + $result = $object->updateline($line->id, $line->desc, $line->subprice, $line->qty, $line->remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $line->info_bits, $line->product_type, 0, $line->date_start, $line->date_end, $line->array_options, $line->fk_unit, $line->multicurrency_subprice, $line->ref_supplier); + } + } elseif ($action == 'addline' && $usercancreate) { $db->begin(); $langs->load('errors'); @@ -469,7 +479,7 @@ if (empty($reshook)) { $error++; } - if (!$error && !empty($conf->variants->enabled) && $prod_entry_mode != 'free') { + if (!$error && isModEnabled('variants') && $prod_entry_mode != 'free') { if ($combinations = GETPOST('combinations', 'array')) { //Check if there is a product with the given combination $prodcomb = new ProductCombination($db); @@ -518,7 +528,7 @@ if (empty($reshook)) { $label = $productsupplier->label; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -555,13 +565,15 @@ if (empty($reshook)) { $ref_supplier = $productsupplier->ref_supplier; // Get vat rate + $tva_npr = 0; if (!GETPOSTISSET('tva_tx')) { // If vat rate not provided from the form (the form has the priority) $tva_tx = get_default_tva($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice', 'alpha')); $tva_npr = get_default_npr($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice', 'alpha')); + if (empty($tva_tx)) { + $tva_npr = 0; + } } - if (empty($tva_tx)) { - $tva_npr = 0; - } + $localtax1_tx = get_localtax($tva_tx, 1, $mysoc, $object->thirdparty, $tva_npr); $localtax2_tx = get_localtax($tva_tx, 2, $mysoc, $object->thirdparty, $tva_npr); @@ -597,7 +609,7 @@ if (empty($reshook)) { $localtax1_tx, $localtax2_tx, $idprod, - 0, // We already have the $idprod always defined + $productsupplier->product_fourn_price_id, $ref_supplier, $remise_percent, $price_base_type, @@ -667,11 +679,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { - $newlang = GETPOST('lang_id', 'aZ09'); - } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; + if (GETPOST('lang_id', 'aZ09')) + $newlang = GETPOST('lang_id', 'aZ09'); } if (!empty($newlang)) { $outputlangs = new Translate("", $conf); @@ -844,10 +855,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -882,10 +893,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -924,10 +935,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -973,7 +984,7 @@ if (empty($reshook)) { } // Check parameters - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $qualified_for_stock_change) { // warning name of option should be STOCK_CALCULATE_ON_SUPPLIER_APPROVE_ORDER + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $qualified_for_stock_change) { // warning name of option should be STOCK_CALCULATE_ON_SUPPLIER_APPROVE_ORDER if (!$idwarehouse || $idwarehouse == -1) { $error++; setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); @@ -987,10 +998,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1048,10 +1059,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1224,7 +1235,7 @@ if (empty($reshook)) { $object->fk_incoterms = GETPOST('incoterm_id', 'int'); $object->location_incoterms = GETPOST('location_incoterms', 'alpha'); $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); - $object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int'); + $object->multicurrency_tx = price2num(GETPOST('originmulticurrency_tx', 'alpha')); $object->fk_project = GETPOST('projectid', 'int'); // Fill array 'array_options' with data from add form @@ -1534,11 +1545,14 @@ $form = new Form($db); $formfile = new FormFile($db); $formorder = new FormOrder($db); $productstatic = new Product($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } -$title = $langs->trans('SupplierOrder')." - ".$langs->trans('Card'); +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("NewOrderSupplier"); +} $help_url = 'EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; llxHeader('', $title, $help_url); @@ -1612,7 +1626,7 @@ if ($action == 'create') { $datedelivery = (!empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : (!empty($objectsrc->delivery_date) ? $objectsrc->delivery_date : '')); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (!empty($objectsrc->multicurrency_code)) { $currency_code = $objectsrc->multicurrency_code; } @@ -1630,7 +1644,7 @@ if ($action == 'create') { $cond_reglement_id = !empty($societe->cond_reglement_supplier_id) ? $societe->cond_reglement_supplier_id : 0; $mode_reglement_id = !empty($societe->mode_reglement_supplier_id) ? $societe->mode_reglement_supplier_id : 0; - if (!empty($conf->multicurrency->enabled) && !empty($societe->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($societe->multicurrency_code)) { $currency_code = $societe->multicurrency_code; } @@ -1678,19 +1692,19 @@ if ($action == 'create') { print $societe->getNomUrl(1, 'supplier'); print ''; } else { - print img_picto('', 'company').$form->select_company((empty($socid) ? '' : $socid), 'socid', 's.fournisseur=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); + print img_picto('', 'company').$form->select_company((empty($socid) ? '' : $socid), 'socid', '(s.fournisseur=1 AND s.status=1)', 'SelectThirdParty', 1, 0, null, 0, 'minwidth175 maxwidth500 widthcentpercentminusxx'); // reload page to retrieve customer informations if (!empty($conf->global->RELOAD_PAGE_ON_SUPPLIER_CHANGE)) { - print ''; + '; } print ' '; } @@ -1716,7 +1730,7 @@ if ($action == 'create') { // Payment term print '
    '.$langs->trans('PaymentConditionsShort').''; - $form->select_conditions_paiements(GETPOSTISSET('cond_reglement_id') ? GETPOST('cond_reglement_id') : $cond_reglement_id, 'cond_reglement_id'); + print $form->getSelectConditionsPaiements(GETPOSTISSET('cond_reglement_id') ? GETPOST('cond_reglement_id') : $cond_reglement_id, 'cond_reglement_id'); print '
    '.$langs->trans('BankAccount').''; print img_picto('', 'bank_account', 'class="paddingrightonly"'); @@ -1746,7 +1760,7 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load('projects'); @@ -1757,7 +1771,7 @@ if ($action == 'create') { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $fkincoterms = (!empty($object->fk_incoterms) ? $object->fk_incoterms : ($socid > 0 ? $societe->fk_incoterms : '')); $locincoterms = (!empty($object->location_incoterms) ? $object->location_incoterms : ($socid > 0 ? $societe->location_incoterms : '')); print '
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; @@ -1815,7 +1829,7 @@ if ($action == 'create') { print '
    '.$langs->trans('AmountTTC').''.price($objectsrc->total_ttc)."
    '.$langs->trans('MulticurrencyAmountHT').''.price($objectsrc->multicurrency_total_ht).'
    '.$langs->trans('MulticurrencyAmountVAT').''.price($objectsrc->multicurrency_total_tva).'
    '.$langs->trans('MulticurrencyAmountTTC').''.price($objectsrc->multicurrency_total_ttc).'
    '.$langs->trans("Date").''; - print $object->date_commande ? dol_print_date($object->date_commande, $usehourmin) : ''; + print $object->date_commande ? dol_print_date($object->date_commande, $usehourmin ? 'dayhour' : 'day') : ''; if ($object->hasDelay() && !empty($object->date_delivery) && !empty($object->date_commande)) { print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning"); } @@ -2097,7 +2097,7 @@ if ($action == 'create') { print '
    '; @@ -2207,7 +2207,7 @@ if ($action == 'create') { } // Bank Account - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER) && !empty($conf->banque->enabled)) { + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER) && isModEnabled("banque")) { print '
    '; print ''; // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; - print ''; + print ''; + print ''; - print ''; + print ''; print ''; //Remote User - print ''; + print ''; //Remote Password - print ''; + print ''; //Submit button print ''; print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { print ''; @@ -754,7 +735,7 @@ if ($id > 0 || !empty($ref)) { print ''; if (!empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { - if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { + if (!isModEnabled("multicurrency") && empty($conf->dynamicprices->enabled)) { print ''; print ''; print ''; @@ -801,7 +782,8 @@ if ($id > 0 || !empty($ref)) { if (!$objp->fk_product > 0) { $nbfreeproduct++; } else { - $remaintodispatch = price2num($objp->qty - ((float) $products_dispatched[$objp->rowid]), 5); // Calculation of dispatched + $alreadydispatched = isset($products_dispatched[$objp->rowid])?$products_dispatched[$objp->rowid]:0; + $remaintodispatch = price2num($objp->qty - ((float) $alreadydispatched), 5); // Calculation of dispatched if ($remaintodispatch < 0 && empty($conf->global->SUPPLIER_ORDER_ALLOW_NEGATIVE_QTY_FOR_SUPPLIER_ORDER_RETURN)) { $remaintodispatch = 0; } @@ -818,7 +800,7 @@ if ($id > 0 || !empty($ref)) { print ''."\n"; // hidden fields for js function print ''; - print ''; + print ''; print ''; if (empty($conf->cache['product'][$objp->fk_product])) { @@ -832,7 +814,7 @@ if ($id > 0 || !empty($ref)) { $linktoprod = $tmpproduct->getNomUrl(1); $linktoprod .= ' - '.$objp->label."\n"; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if ($objp->tobatch) { // Product print ''; // Already dispatched - print ''; + print ''; - if (!empty($conf->productbatch->enabled) && $objp->tobatch > 0) { + if (isModEnabled('productbatch') && $objp->tobatch > 0) { $type = 'batch'; print ''; // Qty to dispatch @@ -892,10 +874,11 @@ if ($id > 0 || !empty($ref)) { // Enable hooks to append additional columns $parameters = array( - 'is_information_row' => true, // allows hook to distinguish between the - // rows with information and the rows with - // dispatch form input - 'objp' => $objp + // allows hook to distinguish between the rows with information and the rows with dispatch form input + 'is_information_row' => true, + 'i' => $i, + 'suffix' => $suffix, + 'objp' => $objp, ); $reshook = $hookmanager->executeHooks( 'printFieldListValue', @@ -954,10 +937,11 @@ if ($id > 0 || !empty($ref)) { // Enable hooks to append additional columns $parameters = array( - 'is_information_row' => true, // allows hook to distinguish between the - // rows with information and the rows with - // dispatch form input - 'objp' => $objp + // allows hook to distinguish between the rows with information and the rows with dispatch form input + 'is_information_row' => true, + 'i' => $i, + 'suffix' => $suffix, + 'objp' => $objp, ); $reshook = $hookmanager->executeHooks( 'printFieldListValue', @@ -993,7 +977,7 @@ if ($id > 0 || !empty($ref)) { print ''; print ''; if (!empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { - if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { + if (!isModEnabled("multicurrency") && empty($conf->dynamicprices->enabled)) { // Price print ''; // Discount @@ -1035,7 +1019,10 @@ if ($id > 0 || !empty($ref)) { // Enable hooks to append additional columns $parameters = array( - 'is_information_row' => false // this is a dispatch form row + 'is_information_row' => false, // this is a dispatch form row + 'i' => $i, + 'suffix' => $suffix, + 'objp' => $objp, ); $reshook = $hookmanager->executeHooks( 'printFieldListValue', @@ -1172,9 +1159,9 @@ if ($id > 0 || !empty($ref)) { } // Product print ''; - print ''; - print ''; - if (!empty($conf->productbatch->enabled)) { + print ''; + print ''; + if (isModEnabled('productbatch')) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { print ''; @@ -1190,7 +1177,7 @@ if ($id > 0 || !empty($ref)) { // Status if (!empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS) && empty($reception->rowid)) { print ''; - } elseif (!empty($conf->reception->enabled)) { + } elseif (isModEnabled("reception")) { print ''; } @@ -1202,10 +1189,6 @@ if ($id > 0 || !empty($ref)) { while ($i < $num) { $objp = $db->fetch_object($resql); - $tmpproduct->id = $objp->fk_product; - $tmpproduct->ref = $objp->ref; - $tmpproduct->label = $objp->label; - if ($action == 'editline' && $lineid == $objp->dispatchlineid) { print ' @@ -1217,8 +1200,8 @@ if ($id > 0 || !empty($ref)) { print ''; // Reception ref - if (!empty($conf->reception->enabled)) { - print '\n"; - print ''; - print ''; - if (!empty($conf->productbatch->enabled)) { + // Date creation + print ''; + + // Date delivery + print ''; + + // Batch / Eat by / Sell by + if (isModEnabled('productbatch')) { if ($objp->batch) { include_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php'; $lot = new Productlot($db); @@ -1277,7 +1265,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Warehouse - print ''; - } elseif (!empty($conf->reception->enabled)) { + } elseif (isModEnabled("reception")) { print ''; } + + // Action if ($action != 'editline' || $lineid != $objp->dispatchlineid) { if (empty($reception->id) || ($reception->statut == Reception::STATUS_DRAFT)) { // only allow edit on draft reception print '",i.document[0]).appendTo(t)):"tr"===n?i._createTrPlaceholder(i.currentItem,t):"img"===n&&t.attr("src",i.currentItem.attr("src")),s||t.css("visibility","hidden"),t},update:function(t,e){s&&!o.forcePlaceholderSize||(e.height()&&(!o.forcePlaceholderSize||"tbody"!==n&&"tr"!==n)||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10)))}}),i.placeholder=V(o.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),o.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){V("",i.document[0]).attr("colspan",V(this).attr("colspan")||1).appendTo(e)})},_contactContainers:function(t){for(var e,i,s,n,o,a,r,l,h,c=null,u=null,d=this.containers.length-1;0<=d;d--)V.contains(this.currentItem[0],this.containers[d].element[0])||(this._intersectsWith(this.containers[d].containerCache)?c&&V.contains(this.containers[d].element[0],c.element[0])||(c=this.containers[d],u=d):this.containers[d].containerCache.over&&(this.containers[d]._trigger("out",t,this._uiHash(this)),this.containers[d].containerCache.over=0));if(c)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger("over",t,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,s=null,n=(l=c.floating||this._isFloating(this.currentItem))?"left":"top",o=l?"width":"height",h=l?"pageX":"pageY",e=this.items.length-1;0<=e;e--)V.contains(this.containers[u].element[0],this.items[e].item[0])&&this.items[e].item[0]!==this.currentItem[0]&&(a=this.items[e].item.offset()[n],r=!1,t[h]-a>this.items[e][o]/2&&(r=!0),Math.abs(t[h]-a)this.containment[2]&&(i=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),e.grid&&(t=this.originalPageY+Math.round((s-this.originalPageY)/e.grid[1])*e.grid[1],s=!this.containment||t-this.offset.click.top>=this.containment[1]&&t-this.offset.click.top<=this.containment[3]?t:t-this.offset.click.top>=this.containment[1]?t-e.grid[1]:t+e.grid[1],t=this.originalPageX+Math.round((i-this.originalPageX)/e.grid[0])*e.grid[0],i=!this.containment||t-this.offset.click.left>=this.containment[0]&&t-this.offset.click.left<=this.containment[2]?t:t-this.offset.click.left>=this.containment[0]?t-e.grid[0]:t+e.grid[0])),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function n(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;0<=i;i--)e||s.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var s=this._super(),n=this.element;return V.each(["min","max","step"],function(t,e){var i=n.attr(e);null!=i&&i.length&&(s[e]=i)}),s},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t))},mousewheel:function(t,e){var i=V.ui.safeActiveElement(this.document[0]);if(this.element[0]===i&&e){if(!this.spinning&&!this._start(t))return!1;this._spin((0").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&0e.max?e.max:null!==e.min&&t"},_buttonHtml:function(){return""}});var ct;V.ui.spinner;V.widget("ui.tabs",{version:"1.13.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(ct=/#.*$/,function(t){var e=t.href.replace(ct,""),i=location.href.replace(ct,"");try{e=decodeURIComponent(e)}catch(t){}try{i=decodeURIComponent(i)}catch(t){}return 1?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,e=this.tablist.children(":has(a[href])");t.disabled=V.map(e.filter(".ui-state-disabled"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!V.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=V()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=V()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var l=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(t){V(this).is(".ui-state-disabled")&&t.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){V(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return V("a",this)[0]}).attr({tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=V(),this.anchors.each(function(t,e){var i,s,n,o=V(e).uniqueId().attr("id"),a=V(e).closest("li"),r=a.attr("aria-controls");l._isLocal(e)?(n=(i=e.hash).substring(1),s=l.element.find(l._sanitizeSelector(i))):(n=a.attr("aria-controls")||V({}).uniqueId()[0].id,(s=l.element.find(i="#"+n)).length||(s=l._createPanel(n)).insertAfter(l.panels[t-1]||l.tablist),s.attr("aria-live","polite")),s.length&&(l.panels=l.panels.add(s)),r&&a.data("ui-tabs-aria-controls",r),a.attr({"aria-controls":n,"aria-labelledby":o}),s.attr("aria-labelledby",o)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return V("
    ").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var e,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;e=this.tabs[i];i++)e=V(e),!0===t||-1!==V.inArray(i,t)?(e.attr("aria-disabled","true"),this._addClass(e,null,"ui-state-disabled")):(e.removeAttr("aria-disabled"),this._removeClass(e,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var i={};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();"fill"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=V(this).outerHeight(!0)}),this.panels.each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,V(this).height("").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget).closest("li"),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():this._getPanelForTab(s),r=i.length?this._getPanelForTab(i):V(),i={oldTab:i,oldPanel:r,newTab:o?V():s,newPanel:a};t.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||n&&!e.collapsible||!1===this._trigger("beforeActivate",t,i)||(e.active=!o&&this.tabs.index(s),this.active=n?V():s,this.xhr&&this.xhr.abort(),r.length||a.length||V.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,i))},_toggle:function(t,e){var i=this,s=e.newPanel,n=e.oldPanel;function o(){i.running=!1,i._trigger("activate",t,e)}function a(){i._addClass(e.newTab.closest("li"),"ui-tabs-active","ui-state-active"),s.length&&i.options.show?i._show(s,i.options.show,o):(s.show(),o())}this.running=!0,n.length&&this.options.hide?this._hide(n,this.options.hide,function(){i._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),a()}):(this._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n.hide(),a()),n.attr("aria-hidden","true"),e.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),s.length&&n.length?e.oldTab.attr("tabIndex",-1):s.length&&this.tabs.filter(function(){return 0===V(this).attr("tabIndex")}).attr("tabIndex",-1),s.attr("aria-hidden","false"),e.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var t=this._findActive(t);t[0]!==this.active[0]&&(t=(t=!t.length?this.active:t).find(".ui-tabs-anchor")[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return!1===t?V():this.tabs.eq(t)},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+V.escapeSelector(t)+"']")):t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){V.data(this,"ui-tabs-destroy")?V(this).remove():V(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var t=V(this),e=t.data("ui-tabs-aria-controls");e?t.attr("aria-controls",e).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),Array.isArray(t)?V.map(t,function(t){return t!==i?t:null}):V.map(this.tabs,function(t,e){return e!==i?e:null})),this._setOptionDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==V.inArray(t,e))return;e=Array.isArray(e)?V.merge([t],e).sort():[t]}this._setOptionDisabled(e)}},load:function(t,s){t=this._getIndex(t);function n(t,e){"abort"===e&&o.panels.stop(!1,!0),o._removeClass(i,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===o.xhr&&delete o.xhr}var o=this,i=this.tabs.eq(t),t=i.find(".ui-tabs-anchor"),a=this._getPanelForTab(i),r={tab:i,panel:a};this._isLocal(t[0])||(this.xhr=V.ajax(this._ajaxSettings(t,s,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(i,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,i){setTimeout(function(){a.html(t),o._trigger("load",s,r),n(i,e)},1)}).fail(function(t,e){setTimeout(function(){n(t,e)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href").replace(/#.*$/,""),beforeSend:function(t,e){return n._trigger("beforeLoad",i,V.extend({jqXHR:t,ajaxSettings:e},s))}}},_getPanelForTab:function(t){t=V(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+t))}}),!1!==V.uiBackCompat&&V.widget("ui.tabs",V.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}});V.ui.tabs;V.widget("ui.tooltip",{version:"1.13.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=V(this).attr("title");return V("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(t,e){var i=(t.attr("aria-describedby")||"").split(/\s+/);i.push(e),t.data("ui-tooltip-id",e).attr("aria-describedby",String.prototype.trim.call(i.join(" ")))},_removeDescribedBy:function(t){var e=t.data("ui-tooltip-id"),i=(t.attr("aria-describedby")||"").split(/\s+/),e=V.inArray(e,i);-1!==e&&i.splice(e,1),t.removeData("ui-tooltip-id"),(i=String.prototype.trim.call(i.join(" ")))?t.attr("aria-describedby",i):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=V("
    ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=V([])},_setOption:function(t,e){var i=this;this._super(t,e),"content"===t&&V.each(this.tooltips,function(t,e){i._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur");i.target=i.currentTarget=e.element[0],s.close(i,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var t=V(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")}))},_enable:function(){this.disabledTitles.each(function(){var t=V(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))}),this.disabledTitles=V([])},open:function(t){var i=this,e=V(t?t.target:this.element).closest(this.options.items);e.length&&!e.data("ui-tooltip-id")&&(e.attr("title")&&e.data("ui-tooltip-title",e.attr("title")),e.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&e.parents().each(function(){var t,e=V(this);e.data("ui-tooltip-open")&&((t=V.Event("blur")).target=t.currentTarget=this,i.close(t,!0)),e.attr("title")&&(e.uniqueId(),i.parents[this.id]={element:this,title:e.attr("title")},e.attr("title",""))}),this._registerCloseHandlers(t,e),this._updateContent(e,t))},_updateContent:function(e,i){var t=this.options.content,s=this,n=i?i.type:null;if("string"==typeof t||t.nodeType||t.jquery)return this._open(i,e,t);(t=t.call(e[0],function(t){s._delay(function(){e.data("ui-tooltip-open")&&(i&&(i.type=n),this._open(i,e,t))})}))&&this._open(i,e,t)},_open:function(t,e,i){var s,n,o,a=V.extend({},this.options.position);function r(t){a.of=t,n.is(":hidden")||n.position(a)}i&&((s=this._find(e))?s.tooltip.find(".ui-tooltip-content").html(i):(e.is("[title]")&&(t&&"mouseover"===t.type?e.attr("title",""):e.removeAttr("title")),s=this._tooltip(e),n=s.tooltip,this._addDescribedBy(e,n.attr("id")),n.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),(i=V("
    ").html(n.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),i.removeAttr("id").find("[id]").removeAttr("id"),i.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:r}),r(t)):n.position(V.extend({of:e},this.options.position)),n.hide(),this._show(n,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(o=this.delayedShow=setInterval(function(){n.is(":visible")&&(r(a.of),clearInterval(o))},13)),this._trigger("open",t,{tooltip:n})))},_registerCloseHandlers:function(t,e){var i={keyup:function(t){t.keyCode===V.ui.keyCode.ESCAPE&&((t=V.Event(t)).currentTarget=e[0],this.close(t,!0))}};e[0]!==this.element[0]&&(i.remove=function(){var t=this._find(e);t&&this._removeTooltip(t.tooltip)}),t&&"mouseover"!==t.type||(i.mouseleave="close"),t&&"focusin"!==t.type||(i.focusout="close"),this._on(!0,e,i)},close:function(t){var e,i=this,s=V(t?t.currentTarget:this.element),n=this._find(s);n?(e=n.tooltip,n.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.hiding=!0,e.stop(!0),this._hide(e,this.options.hide,function(){i._removeTooltip(V(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&V.each(this.parents,function(t,e){V(e.element).attr("title",e.title),delete i.parents[t]}),n.closing=!0,this._trigger("close",t,{tooltip:e}),n.hiding||(n.closing=!1))):s.removeData("ui-tooltip-open")},_tooltip:function(t){var e=V("
    ").attr("role","tooltip"),i=V("
    ").appendTo(e),s=e.uniqueId().attr("id");return this._addClass(i,"ui-tooltip-content"),this._addClass(e,"ui-tooltip","ui-widget ui-widget-content"),e.appendTo(this._appendTo(t)),this.tooltips[s]={element:t,tooltip:e}},_find:function(t){t=t.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(t){clearInterval(this.delayedShow),t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){t=t.closest(".ui-front, dialog");return t=!t.length?this.document[0].body:t},_destroy:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur"),e=e.element;i.target=i.currentTarget=e[0],s.close(i,!0),V("#"+t).remove(),e.data("ui-tooltip-title")&&(e.attr("title")||e.attr("title",e.data("ui-tooltip-title")),e.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),!1!==V.uiBackCompat&&V.widget("ui.tooltip",V.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}});V.ui.tooltip}); \ No newline at end of file +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict";V.ui=V.ui||{};V.ui.version="1.13.2";var n,i=0,a=Array.prototype.hasOwnProperty,r=Array.prototype.slice;V.cleanData=(n=V.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=V._data(i,"events"))&&e.remove&&V(i).triggerHandler("remove");n(t)}),V.widget=function(t,i,e){var s,n,o,a={},r=t.split(".")[0],l=r+"-"+(t=t.split(".")[1]);return e||(e=i,i=V.Widget),Array.isArray(e)&&(e=V.extend.apply(null,[{}].concat(e))),V.expr.pseudos[l.toLowerCase()]=function(t){return!!V.data(t,l)},V[r]=V[r]||{},s=V[r][t],n=V[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},V.extend(n,s,{version:e.version,_proto:V.extend({},e),_childConstructors:[]}),(o=new i).options=V.widget.extend({},o.options),V.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=V.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(V.each(s._childConstructors,function(t,e){var i=e.prototype;V.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),V.widget.bridge(t,n),n},V.widget.extend=function(t){for(var e,i,s=r.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=V(e||this.defaultElement||this)[0],this.element=V(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=V(),this.hoverable=V(),this.focusable=V(),this.classesElementLookup={},e!==this&&(V.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=V(e.style?e.ownerDocument:e.document||e),this.window=V(this.document[0].defaultView||this.document[0].parentWindow)),this.options=V.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:V.noop,_create:V.noop,_init:V.noop,destroy:function(){var i=this;this._destroy(),V.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:V.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return V.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=V.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return V("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(k(s),k(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})},V.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,a=s-o,r=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0")[0],w=d.each;function P(t){return null==t?t+"":"object"==typeof t?p[e.call(t)]||"object":typeof t}function M(t,e,i){var s=v[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:Math.min(s.max,Math.max(0,t)))}function S(s){var n=m(),o=n._rgba=[];return s=s.toLowerCase(),w(g,function(t,e){var i=e.re.exec(s),i=i&&e.parse(i),e=e.space||"rgba";if(i)return i=n[e](i),n[_[e].cache]=i[_[e].cache],o=n._rgba=i._rgba,!1}),o.length?("0,0,0,0"===o.join()&&d.extend(o,B.transparent),n):B[s]}function H(t,e,i){return 6*(i=(i+1)%1)<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}y.style.cssText="background-color:rgba(1,1,1,.5)",b.rgba=-1o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=M((n-s)*a+s,e)))}),this[e](l)},blend:function(t){if(1===this._rgba[3])return this;var e=this._rgba.slice(),i=e.pop(),s=m(t)._rgba;return m(d.map(e,function(t,e){return(1-i)*s[e]+i*t}))},toRgbaString:function(){var t="rgba(",e=d.map(this._rgba,function(t,e){return null!=t?t:2
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.13.2",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,e="vertical"!==i?(e||100)/100:1;return{height:t.height()*e,width:t.width()*s,outerHeight:t.outerHeight()*e,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(j+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=j+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0
    ");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-r,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(o,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=G(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},Y={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){Y[t]=function(t){return Math.pow(t,e+2)}}),V.extend(Y,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(Y,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});y=V.effects,V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,r="show"===o,l=t.direction||"up",h=t.distance,c=t.times||5,o=2*c+(r||a?1:0),u=t.duration/o,d=t.easing,p="up"===l||"down"===l?"top":"left",f="up"===l||"left"===l,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),l=n.css(p),h=h||n["top"==p?"outerHeight":"outerWidth"]()/3,r&&((s={opacity:1})[p]=l,n.css("opacity",0).css(p,f?2*-h:2*h).animate(s,u,d)),a&&(h/=Math.pow(2,c-1)),(s={})[p]=l;g
    ").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,o="hide"===s,a=e.size||15,r=/([0-9]+)%/.exec(a),l=!!e.horizFirst?["right","bottom"]:["bottom","right"],h=e.duration/2,c=V.effects.createPlaceholder(i),u=i.cssClip(),d={clip:V.extend({},u)},p={clip:V.extend({},u)},f=[u[l[0]],u[l[1]]],s=i.queue().length;r&&(a=parseInt(r[1],10)/100*f[o?0:1]),d.clip[l[0]]=a,p.clip[l[0]]=a,p.clip[l[1]]=0,n&&(i.cssClip(p.clip),c&&c.css(V.effects.clipToBox(p)),p.clip=u),i.queue(function(t){c&&c.animate(V.effects.clipToBox(d),h,e.easing).animate(V.effects.clipToBox(p),h,e.easing),t()}).animate(d,h,e.easing).animate(p,h,e.easing).queue(t),V.effects.unshift(i,s,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(c=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*c.y+d.top,f.left=(p.outerWidth-f.outerWidth)*c.x+d.left,g.top=(p.outerHeight-g.outerHeight)*c.y+d.top,g.left=(p.outerWidth-g.outerWidth)*c.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),s=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(s.from.opacity=1,s.to.opacity=0),V.effects.effect.size.call(this,s,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l li > :first-child").add(t.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"!==t?("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons())):this._activate(e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),a={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,a)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(a),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(i=i.children(".ui-accordion-header-icon"),this._removeClass(i,null,e.icons.activeHeader)._addClass(i,null,e.icons.header)),n||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(n=s.children(".ui-accordion-header-icon"),this._removeClass(n,null,e.icons.header)._addClass(n,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,l=t.css("box-sizing"),h=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(V.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],V.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("
    '; print $langs->trans('BankAccount'); @@ -2266,7 +2266,7 @@ if ($action == 'create') { print '
    '; print ''; - print ''; + print ''; print ''; // Multicurrency Amount VAT print ''; - print ''; + print ''; print ''; // Multicurrency Amount TTC print ''; - print ''; + print ''; print ''; } @@ -2321,33 +2321,35 @@ if ($action == 'create') { $alert = ' '.img_warning($langs->trans('OrderMinAmount').': '.price($object->thirdparty->supplier_order_min_amount)); } print ''; - print ''; + print ''; print ''; // Total VAT - print ''; + print ''; + print ''; print ''; // Amount Local Taxes if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) { //Localtax1 print ''; - print ''; + print ''; print ''; } if ($mysoc->localtax2_assuj == "1" || $object->total_localtax2 != 0) { //Localtax2 print ''; - print ''; + print ''; print ''; } // Total TTC - print ''; + print ''; + print ''; print ''; print '
    '; print $langs->trans('IncotermLabel'); @@ -2301,17 +2301,17 @@ if ($action == 'create') { if ($object->multicurrency_code != $conf->currency || $object->multicurrency_tx != 1) { // Multicurrency Amount HT print '
    '.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$langs->trans("AmountHT").''.price($object->total_ht, '', $langs, 1, -1, -1, $conf->currency).$alert.''.price($object->total_ht, '', $langs, 1, -1, -1, $conf->currency).$alert.'
    '.$langs->trans("AmountVAT").''.price($object->total_tva, '', $langs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("AmountVAT").''.price($object->total_tva, '', $langs, 1, -1, -1, $conf->currency).'
    '.$langs->transcountry("AmountLT1", $mysoc->country_code).''.price($object->total_localtax1, '', $langs, 1, -1, -1, $conf->currency).''.price($object->total_localtax1, '', $langs, 1, -1, -1, $conf->currency).'
    '.$langs->transcountry("AmountLT2", $mysoc->country_code).''.price($object->total_localtax2, '', $langs, 1, -1, -1, $conf->currency).''.price($object->total_localtax2, '', $langs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("AmountTTC").''.price($object->total_ttc, '', $langs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("AmountTTC").''.price($object->total_ttc, '', $langs, 1, -1, -1, $conf->currency).'
    '; // Margin Infos - /*if (! empty($conf->margin->enabled)) { + /*if (isModEnabled('margin')) { $formmargin->displayMarginInfos($object); }*/ @@ -2401,7 +2403,7 @@ if ($action == 'create') { // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $societe, $mysoc, $lineid, 1); + $object->printObjectLines($action, $object->thirdparty, $mysoc, $lineid, 1); } $num = count($object->lines); @@ -2428,206 +2430,206 @@ if ($action == 'create') { * Buttons for actions */ - if ($user->socid == 0 && $action != 'editline' && $action != 'delete') { - print '
    '; + if ($user->socid == 0 && $action != 'delete') { + if ($action != 'makeorder' && $action != 'presend' && $action != 'editline') { + print '
    '; - $parameters = array(); - $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been - // modified by hook - if (empty($reshook)) { - $object->fetchObjectLinked(); // Links are used to show or not button, so we load them now. + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been + // modified by hook + if (empty($reshook)) { + $object->fetchObjectLinked(); // Links are used to show or not button, so we load them now. - // Validate - if ($object->statut == 0 && $num > 0) { - if ($usercanvalidate) { - $tmpbuttonlabel = $langs->trans('Validate'); - if ($usercanapprove && empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE)) { - $tmpbuttonlabel = $langs->trans("ValidateAndApprove"); + // Validate + if ($object->statut == 0 && $num > 0) { + if ($usercanvalidate) { + $tmpbuttonlabel = $langs->trans('Validate'); + if ($usercanapprove && empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE)) { + $tmpbuttonlabel = $langs->trans("ValidateAndApprove"); + } + + print ''; + print $tmpbuttonlabel; + print ''; } - - print ''; - print $tmpbuttonlabel; - print ''; } - } - // Create event - /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. - { - print ''; - }*/ + // Create event + /*if ($conf->agenda->enabled && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. + { + print ''; + }*/ - // Modify - if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { - if ($usercanorder) { - print ''.$langs->trans("Modify").''; - } - } - - // Approve - if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { - if ($usercanapprove) { - if (!empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED && !empty($object->user_approve_id)) { - print ''.$langs->trans("ApproveOrder").''; - } else { - print ''.$langs->trans("ApproveOrder").''; - } - } else { - print ''.$langs->trans("ApproveOrder").''; - } - } - - // Second approval (if option SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED is set) - if (!empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) { + // Modify if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { - if ($usercanapprovesecond) { - if (!empty($object->user_approve_id2)) { - print ''.$langs->trans("Approve2Order").''; + if ($usercanorder) { + print ''.$langs->trans("Modify").''; + } + } + + // Approve + if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { + if ($usercanapprove) { + if (!empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED && !empty($object->user_approve_id)) { + print ''.$langs->trans("ApproveOrder").''; } else { - print ''.$langs->trans("Approve2Order").''; + print ''.$langs->trans("ApproveOrder").''; } } else { - print ''.$langs->trans("Approve2Order").''; + print ''.$langs->trans("ApproveOrder").''; } } - } - // Refuse - if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { - if ($usercanapprove || $usercanapprovesecond) { - print ''.$langs->trans("RefuseOrder").''; - } else { - print ''.$langs->trans("RefuseOrder").''; + // Second approval (if option SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED is set) + if (!empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) { + if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { + if ($usercanapprovesecond) { + if (!empty($object->user_approve_id2)) { + print ''.$langs->trans("Approve2Order").''; + } else { + print ''.$langs->trans("Approve2Order").''; + } + } else { + print ''.$langs->trans("Approve2Order").''; + } + } } - } - // Send - if (empty($user->socid)) { - if (in_array($object->statut, array(CommandeFournisseur::STATUS_ACCEPTED, 3, 4, 5)) || !empty($conf->global->SUPPLIER_ORDER_SENDBYEMAIL_FOR_ALL_STATUS)) { + // Refuse + if ($object->statut == CommandeFournisseur::STATUS_VALIDATED) { + if ($usercanapprove || $usercanapprovesecond) { + print ''.$langs->trans("RefuseOrder").''; + } else { + print ''.$langs->trans("RefuseOrder").''; + } + } + + // Send + if (empty($user->socid)) { + if (in_array($object->statut, array(CommandeFournisseur::STATUS_ACCEPTED, 3, 4, 5)) || !empty($conf->global->SUPPLIER_ORDER_SENDBYEMAIL_FOR_ALL_STATUS)) { + if ($usercanorder) { + print ''.$langs->trans('SendMail').''; + } + } + } + + // Reopen + if (in_array($object->statut, array(CommandeFournisseur::STATUS_ACCEPTED))) { + $buttonshown = 0; + if (!$buttonshown && $usercanapprove) { + if (empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER_ONLY) + || (!empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER_ONLY) && $user->id == $object->user_approve_id)) { + print ''.$langs->trans("Disapprove").''; + $buttonshown++; + } + } + if (!$buttonshown && $usercanapprovesecond && !empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED)) { + if (empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER2_ONLY) + || (!empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER2_ONLY) && $user->id == $object->user_approve_id2)) { + print ''.$langs->trans("Disapprove").''; + } + } + } + if (in_array($object->statut, array(3, 4, 5, 6, 7, 9))) { if ($usercanorder) { - print ''.$langs->trans('SendMail').''; + print ''.$langs->trans("ReOpen").''; } } - } - // Reopen - if (in_array($object->statut, array(CommandeFournisseur::STATUS_ACCEPTED))) { - $buttonshown = 0; - if (!$buttonshown && $usercanapprove) { - if (empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER_ONLY) - || (!empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER_ONLY) && $user->id == $object->user_approve_id)) { - print ''.$langs->trans("Disapprove").''; - $buttonshown++; - } - } - if (!$buttonshown && $usercanapprovesecond && !empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED)) { - if (empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER2_ONLY) - || (!empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER2_ONLY) && $user->id == $object->user_approve_id2)) { - print ''.$langs->trans("Disapprove").''; - } - } - } - if (in_array($object->statut, array(3, 4, 5, 6, 7, 9))) { - if ($usercanorder) { - print ''.$langs->trans("ReOpen").''; - } - } - - // Ship - $hasreception = 0; - if (!empty($conf->stock->enabled) && (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))) { - $labelofbutton = $langs->trans('ReceiveProducts'); - if ($conf->reception->enabled) { - $labelofbutton = $langs->trans("CreateReception"); - if (!empty($object->linkedObjects['reception'])) { - foreach ($object->linkedObjects['reception'] as $element) { - if ($element->statut >= 0) { - $hasreception = 1; - break; + // Ship + $hasreception = 0; + if (isModEnabled('stock') && (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))) { + $labelofbutton = $langs->trans('ReceiveProducts'); + if ($conf->reception->enabled) { + $labelofbutton = $langs->trans("CreateReception"); + if (!empty($object->linkedObjects['reception'])) { + foreach ($object->linkedObjects['reception'] as $element) { + if ($element->statut >= 0) { + $hasreception = 1; + break; + } } } } - } - if (in_array($object->statut, array(3, 4, 5))) { - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) && $usercanreceive) { - print ''; - } else { - print ''; - } - } - } - - if ($object->statut == CommandeFournisseur::STATUS_ACCEPTED) { - if ($usercanorder) { - print ''; - } else { - print ''; - } - } - - // Classify received (this does not record reception) - if ($object->statut == CommandeFournisseur::STATUS_ORDERSENT || $object->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY) { - if ($usercanreceive) { - print ''; - } - } - - // Create bill - //if (isModEnabled('facture')) - //{ - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) && ($object->statut >= 2 && $object->statut != 7 && $object->billed != 1)) { // statut 2 means approved, 7 means canceled - if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { - print ''.$langs->trans("CreateBill").''; - } - } - //} - - // Classify billed manually (need one invoice if module invoice is on, no condition on invoice if not) - if ($usercancreate && $object->statut >= 2 && $object->statut != 7 && $object->billed != 1) { // statut 2 means approved - if (!isModEnabled('facture')) { - print ''.$langs->trans("ClassifyBilled").''; - } else { - if (!empty($object->linkedObjectsIds['invoice_supplier'])) { - if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { - print ''.$langs->trans("ClassifyBilled").''; + if (in_array($object->statut, array(3, 4, 5))) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && $usercanreceive) { + print ''; + } else { + print ''; } + } + } + + if ($object->statut == CommandeFournisseur::STATUS_ACCEPTED) { + if ($usercanorder) { + print ''; } else { - print ''.$langs->trans("ClassifyBilled").''; + print ''; + } + } + + // Classify received (this does not record reception) + if ($object->statut == CommandeFournisseur::STATUS_ORDERSENT || $object->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY) { + if ($usercanreceive) { + print ''; + } + } + + // Create bill + //if (isModEnabled('facture')) + //{ + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) && ($object->statut >= 2 && $object->statut != 7 && $object->billed != 1)) { // statut 2 means approved, 7 means canceled + if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { + print ''.$langs->trans("CreateBill").''; + } + } + //} + + // Classify billed manually (need one invoice if module invoice is on, no condition on invoice if not) + if ($usercancreate && $object->statut >= 2 && $object->statut != 7 && $object->billed != 1) { // statut 2 means approved + if (!isModEnabled('facture')) { + print ''.$langs->trans("ClassifyBilled").''; + } else { + if (!empty($object->linkedObjectsIds['invoice_supplier'])) { + if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { + print ''.$langs->trans("ClassifyBilled").''; + } + } else { + print ''.$langs->trans("ClassifyBilled").''; + } + } + } + + // Create a remote order using WebService only if module is activated + if (!empty($conf->syncsupplierwebservices->enabled) && $object->statut >= 2) { // 2 means accepted + print ''.$langs->trans('CreateRemoteOrder').''; + } + + // Clone + if ($usercancreate) { + print ''.$langs->trans("ToClone").''; + } + + // Cancel + if ($object->statut == CommandeFournisseur::STATUS_ACCEPTED) { + if ($usercanorder) { + print ''.$langs->trans("CancelOrder").''; + } + } + + // Delete + if (!empty($usercandelete)) { + if ($hasreception) { + print ''.$langs->trans("Delete").''; + } else { + print ''.$langs->trans("Delete").''; } } } - // Create a remote order using WebService only if module is activated - if (!empty($conf->syncsupplierwebservices->enabled) && $object->statut >= 2) { // 2 means accepted - print ''.$langs->trans('CreateRemoteOrder').''; - } - - // Clone - if ($usercancreate) { - print ''.$langs->trans("ToClone").''; - } - - // Cancel - if ($object->statut == CommandeFournisseur::STATUS_ACCEPTED) { - if ($usercanorder) { - print ''.$langs->trans("CancelOrder").''; - } - } - - // Delete - if (!empty($usercandelete)) { - if ($hasreception) { - print ''.$langs->trans("Delete").''; - } else { - print ''.$langs->trans("Delete").''; - } - } + print "
    "; } - print "
    "; - - - if ($usercanorder && $object->statut == CommandeFournisseur::STATUS_ACCEPTED && $action == 'makeorder') { // Set status to ordered (action=commande) print ''."\n"; @@ -2651,7 +2653,8 @@ if ($action == 'create') { $formorder->selectInputMethod(GETPOST('methodecommande'), "methodecommande", 1); print '
    '.$langs->trans("Comment").'
    '.$langs->trans("Comment").'
    '; print ''; print '     '; @@ -2663,7 +2666,12 @@ if ($action == 'create') { print "
    "; } - if ($action != 'makeorder') { + // Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + if ($action != 'makeorder' && $action != 'presend' ) { print '
    '; // Generated documents @@ -2676,7 +2684,7 @@ if ($action == 'create') { $delallowed = $usercancreate; $modelpdf = (!empty($object->model_pdf) ? $object->model_pdf : (empty($conf->global->COMMANDE_SUPPLIER_ADDON_PDF) ? '' : $conf->global->COMMANDE_SUPPLIER_ADDON_PDF)); - print $formfile->showdocuments('commande_fournisseur', $objref, $filedir, $urlsource, $genallowed, $delallowed, $modelpdf, 1, 0, 0, 0, 0, '', '', '', $object->thirdparty->default_lang); + print $formfile->showdocuments('commande_fournisseur', $objref, $filedir, $urlsource, $genallowed, $delallowed, $modelpdf, 1, 0, 0, 0, 0, '', '', '', $object->thirdparty->default_lang, '', $object); $somethingshown = $formfile->numoffiles; // Show links to link elements @@ -2712,7 +2720,7 @@ if ($action == 'create') { print $form->selectarray("type", $liv); print '
    '.$langs->trans("Comment").'
    '.$langs->trans("Comment").'
    '; print ''; print '     '; @@ -2776,13 +2784,12 @@ if ($action == 'create') { print "
    ".$langs->trans("ErrorOccurredReviseAndRetry")."
    "; print ''; } else { - $textinput_size = "50"; // Webservice url print '
    '.$langs->trans("WebServiceURL").''.dol_print_url($ws_url).'
    '.$langs->trans("User").'
    '.$langs->trans("User").'
    '.$langs->trans("Password").'
    '.$langs->trans("Password").'
    '; print ''; @@ -2912,11 +2919,6 @@ if ($action == 'create') { } } - // Select mail models is same action as presend - if (GETPOST('modelselected')) { - $action = 'presend'; - } - // Presend form $modelmail = 'order_supplier_send'; $defaulttopic = 'SendOrderRef'; diff --git a/htdocs/fourn/commande/contact.php b/htdocs/fourn/commande/contact.php index e521caf1080..3ca1eca77bf 100644 --- a/htdocs/fourn/commande/contact.php +++ b/htdocs/fourn/commande/contact.php @@ -24,12 +24,13 @@ * \brief Onglet de gestion des contacts de commande */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -49,9 +50,12 @@ $hookmanager->initHooks(array('ordersuppliercardcontact')); $object = new CommandeFournisseur($db); +$usercancreate = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$permissiontoadd = $usercancreate; // Used by the include of actions_addupdatedelete.inc.php + /* - * Add a new contact + * Actions */ if ($action == 'addcontact' && ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer)) { @@ -99,9 +103,6 @@ if ($action == 'addcontact' && ($user->rights->fournisseur->commande->creer || $ /* * View */ -$title = $langs->trans('SupplierOrder')." - ".$langs->trans('ContactsAddresses'); -$help_url = 'EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; -llxHeader('', $title, $help_url); $form = new Form($db); $formcompany = new FormCompany($db); @@ -121,6 +122,10 @@ if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref) > 0) { $object->fetch_thirdparty(); + $title = $object->ref." - ".$langs->trans('ContactsAddresses'); + $help_url = 'EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; + llxHeader('', $title, $help_url); + $head = ordersupplier_prepare_head($object); print dol_get_fiche_head($head, 'contact', $langs->trans("SupplierOrder"), -1, 'order'); @@ -133,37 +138,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { - if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $caneditproject) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 362741e1641..504336f0a6e 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -7,7 +7,7 @@ * Copyright (C) 2014 Cedric Gross * Copyright (C) 2016 Florian Henry * Copyright (C) 2017-2022 Ferran Marcet - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * Copyright (C) 2019-2020 Christophe Battarel * * This program is free software; you can redistribute it and/or modify @@ -30,6 +30,7 @@ * \brief Page to dispatch receiving */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/supplier_order/modules_commandefournisseur.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; @@ -39,14 +40,14 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page $langs->loadLangs(array("bills", "orders", "sendings", "companies", "deliveries", "products", "stocks", "receptions")); -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { $langs->load('productbatch'); } @@ -67,7 +68,7 @@ $hookmanager->initHooks(array('ordersupplierdispatch')); // Recuperation de l'id de projet $projectid = 0; -if ($_GET["projectid"]) { +if (GETPOSTISSET("projectid")) { $projectid = GETPOST("projectid", 'int'); } @@ -95,10 +96,13 @@ if (empty($conf->reception->enabled)) { // $id is id of a purchase order. $result = restrictedArea($user, 'fournisseur', $id, 'commande_fournisseur', 'commande'); -if (empty($conf->stock->enabled)) { +if (!isModEnabled('stock')) { accessforbidden(); } +$usercancreate = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$permissiontoadd = $usercancreate; // Used by the include of actions_addupdatedelete.inc.php + /* * Actions @@ -221,6 +225,7 @@ if ($action == 'denydispatchline' && $permissiontocontrol) { if ($action == 'dispatch' && $permissiontoreceive) { $error = 0; + $notrigger = 0; $db->begin(); @@ -243,7 +248,7 @@ if ($action == 'dispatch' && $permissiontoreceive) { $fk_commandefourndet = "fk_commandefourndet_".$reg[1].'_'.$reg[2]; if (!empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { - if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { + if (!isModEnabled("multicurrency") && empty($conf->dynamicprices->enabled)) { $dto = GETPOST("dto_".$reg[1].'_'.$reg[2], 'int'); if (!empty($dto)) { $unit_price = price2num(GETPOST("pu_".$reg[1]) * (100 - $dto) / 100, 'MU'); @@ -269,7 +274,7 @@ if ($action == 'dispatch' && $permissiontoreceive) { } if (!$error && !empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { - if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { + if (!isModEnabled("multicurrency") && empty($conf->dynamicprices->enabled)) { $dto = price2num(GETPOST("dto_".$reg[1].'_'.$reg[2], 'int'), ''); if (empty($dto)) { $dto = 0; @@ -311,7 +316,7 @@ if ($action == 'dispatch' && $permissiontoreceive) { $fk_commandefourndet = 'fk_commandefourndet_'.$reg[1].'_'.$reg[2]; if (!empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { - if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { + if (!isModEnabled("multicurrency") && empty($conf->dynamicprices->enabled)) { $dto = GETPOST("dto_".$reg[1].'_'.$reg[2], 'int'); if (!empty($dto)) { $unit_price = price2num(GETPOST("pu_".$reg[1]) * (100 - $dto) / 100, 'MU'); @@ -344,7 +349,7 @@ if ($action == 'dispatch' && $permissiontoreceive) { } if (!$error && !empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { - if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { + if (!isModEnabled("multicurrency") && empty($conf->dynamicprices->enabled)) { $dto = GETPOST("dto_".$reg[1].'_'.$reg[2], 'int'); //update supplier price if (GETPOSTISSET($saveprice)) { @@ -373,19 +378,6 @@ if ($action == 'dispatch' && $permissiontoreceive) { } } - if (!$error) { - global $conf, $langs, $user; - // Call trigger - - $result = $object->call_trigger('ORDER_SUPPLIER_DISPATCH', $user); - // End call triggers - - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - $error++; - } - } - if ($result >= 0 && !$error) { $db->commit(); @@ -419,7 +411,7 @@ if ($action == 'confirm_deleteline' && $confirm == 'yes' && $permissiontoreceive $error++; } else { // If module stock is enabled and the stock increase is done on purchase order dispatching - if ($entrepot > 0 && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) && empty($supplierorderdispatch->fk_reception)) { + if ($entrepot > 0 && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) && empty($supplierorderdispatch->fk_reception)) { $mouv = new MouvementStock($db); if ($product > 0) { $mouv->origin = &$object; @@ -466,7 +458,7 @@ if ($action == 'updateline' && $permissiontoreceive) { $errors = $supplierorderdispatch->errors; } else { // If module stock is enabled and the stock increase is done on purchase order dispatching - if ($entrepot > 0 && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) { + if ($entrepot > 0 && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) { $mouv = new MouvementStock($db); if ($product > 0) { $mouv->origin = &$object; @@ -505,10 +497,11 @@ $formproduct = new FormProduct($db); $warehouse_static = new Entrepot($db); $supplierorderdispatch = new CommandeFournisseurDispatch($db); +$title = $object->ref." - ".$langs->trans('OrderDispatch'); $help_url = 'EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; $morejs = array('/fourn/js/lib_dispatch.js.php'); -llxHeader('', $langs->trans("OrderDispatch"), $help_url, '', 0, 0, $morejs); +llxHeader('', $title, $help_url, '', 0, 0, $morejs); if ($id > 0 || !empty($ref)) { $soc = new Societe($db); @@ -551,37 +544,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { - if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $caneditproject) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -733,7 +714,7 @@ if ($id > 0 || !empty($ref)) { print '
    '.$langs->trans("Description").''.$langs->trans("batch_number").''.$langs->trans("SellByDate").''.$langs->trans("Price").''.$langs->trans("ReductionShort").' (%)'.$langs->trans("UpdatePrice").'
    '; @@ -879,9 +861,9 @@ if ($id > 0 || !empty($ref)) { print ''.$objp->qty.''.$products_dispatched[$objp->rowid].''.$alreadydispatched.''; print ''; - if (!empty($conf->productbatch->enabled) && $objp->tobatch > 0) { + if (isModEnabled('productbatch') && $objp->tobatch > 0) { $type = 'batch'; print img_picto($langs->trans('AddStockLocationLine'), 'split.png', 'class="splitbutton" onClick="addDispatchLine('.$i.', \''.$type.'\')"'); } else { @@ -1003,10 +987,10 @@ if ($id > 0 || !empty($ref)) { print ''; - print ''; + print ''; print ''.$langs->trans("Product").''.$langs->trans("DateCreation").''.$langs->trans("DateDeliveryPlanned").''.$langs->trans("DateCreation").''.$langs->trans("DateDeliveryPlanned").''.$langs->trans("batch_number").''.$langs->trans("SellByDate").''.$langs->trans("Status").'
    '; + if (isModEnabled("reception")) { + print ''; if (!empty($objp->fk_reception)) { $reception = new Reception($db); $reception->fetch($objp->fk_reception); @@ -1229,7 +1212,7 @@ if ($id > 0 || !empty($ref)) { } // Product - print ''; + print ''; if (empty($conf->cache['product'][$objp->fk_product])) { $tmpproduct = new Product($db); $tmpproduct->fetch($objp->fk_product); @@ -1240,10 +1223,15 @@ if ($id > 0 || !empty($ref)) { print $tmpproduct->getNomUrl(1); print ' - '.$objp->label; print "'.dol_print_date($db->jdate($objp->datec), 'day').''.dol_print_date($db->jdate($objp->date_delivery), 'day').''.dol_print_date($db->jdate($objp->datec), 'day').''.dol_print_date($db->jdate($objp->date_delivery), 'day').''; + print ''; if ($action == 'editline' && $lineid == $objp->dispatchlineid) { if (count($listwarehouses) > 1) { print $formproduct->selectWarehouses(GETPOST("fk_entrepot") ?GETPOST("fk_entrepot") : ($objp->warehouse_id ? $objp->warehouse_id : ''), "fk_entrepot", '', 1, 0, $objp->fk_product, '', 1, 1, null, 'csswarehouse'); @@ -1334,13 +1322,15 @@ if ($id > 0 || !empty($ref)) { } } print ''; if (!empty($reception->id)) { print $reception->getLibStatut(5); } print ''; diff --git a/htdocs/fourn/commande/document.php b/htdocs/fourn/commande/document.php index d54d5553efb..b3dfb8b9ece 100644 --- a/htdocs/fourn/commande/document.php +++ b/htdocs/fourn/commande/document.php @@ -27,6 +27,7 @@ * \brief Management page of attached documents to a supplier order */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -34,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -98,7 +99,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; $form = new Form($db); -$title = $langs->trans('SupplierOrder')." - ".$langs->trans('Documents'); +$title = $object->ref." - ".$langs->trans('Documents'); $help_url = 'EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; llxHeader('', $title, $help_url); @@ -129,37 +130,25 @@ if ($object->id > 0) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { - if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $caneditproject) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/fourn/commande/index.php b/htdocs/fourn/commande/index.php index 7d6b3b6936a..dc30d1296f9 100644 --- a/htdocs/fourn/commande/index.php +++ b/htdocs/fourn/commande/index.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012 Vinicius Nogueira - * Copyright (C) 2019 Nicolas ZABOURI + * Copyright (C) 2019 Nicolas ZABOURI * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,15 +20,22 @@ */ /** - * \file htdocs/fourn/commande/index.php - * \ingroup commande fournisseur - * \brief Home page of supplier's orders area + * \file htdocs/fourn/commande/index.php + * \ingroup commande fournisseur + * \brief Home page of supplier's orders area */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; + + +// Load translation files required by the page +$langs->loadLangs(array("suppliers", "orders")); + // Security check $orderid = GETPOST('orderid'); @@ -42,8 +49,6 @@ $hookmanager = new HookManager($db); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('orderssuppliersindex')); -// Load translation files required by the page -$langs->loadLangs(array("suppliers", "orders")); /* @@ -172,7 +177,7 @@ if ($resql) { * Draft orders */ -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { $sql = "SELECT c.rowid, c.ref, s.nom as name, s.rowid as socid"; $sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -219,12 +224,12 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU */ $sql = "SELECT"; -if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { +if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= " DISTINCT"; } $sql .= " u.rowid, u.lastname, u.firstname, u.email, u.statut"; $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; -if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { +if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= ",".MAIN_DB_PREFIX."usergroup_user as ug"; $sql .= " WHERE ((ug.fk_user = u.rowid"; $sql .= " AND ug.entity IN (".getEntity('usergroup')."))"; diff --git a/htdocs/fourn/commande/info.php b/htdocs/fourn/commande/info.php index 728986f5a88..2ec9450bcfa 100644 --- a/htdocs/fourn/commande/info.php +++ b/htdocs/fourn/commande/info.php @@ -19,25 +19,28 @@ */ /** - * \file htdocs/fourn/commande/info.php - * \ingroup commande - * \brief Fiche commande + * \file htdocs/fourn/commande/info.php + * \ingroup commande + * \brief Info page for Purchase Order / Supplier Order */ + +// Load Dolibarr environment require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page $langs->loadLangs(array("suppliers", "orders", "companies", "stocks")); -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +// Get Paramters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; @@ -78,8 +81,11 @@ if (empty($user->rights->fournisseur->commande->lire)) { accessforbidden(); } +// Init Hooks $hookmanager->initHooks(array('ordersuppliercardinfo')); +$usercancreate = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$permissiontoadd = $usercancreate; // Used by the include of actions_addupdatedelete.inc.php /* @@ -113,7 +119,7 @@ if ($id > 0 || !empty($ref)) { $object->info($object->id); } -$title = $langs->trans("SupplierOrder").' - '.$langs->trans('Info').' - '.$object->ref.' '.$object->name; +$title = $object->ref.' - '.$langs->trans('Info').' - '.$object->ref.' '.$object->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->ref.' '.$object->name.' - '.$langs->trans("Info"); } @@ -137,37 +143,25 @@ $morehtmlref = '
    '; $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty -$morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); +$morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { - if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $caneditproject) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -202,7 +196,7 @@ if ($permok) { print '
    '; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 22c4921b5b1..1b8dbed46e2 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -7,7 +7,7 @@ * Copyright (C) 2014 Juanjo Menent * Copyright (C) 2016 Ferran Marcet * Copyright (C) 2018-2021 Frédéric France - * Copyright (C) 2018-2020 Charlene Benke + * Copyright (C) 2018-2022 Charlene Benke * Copyright (C) 2019 Nicolas Zabouri * Copyright (C) 2021 Alexandre Spangaro * @@ -26,26 +26,30 @@ */ /** - * \file htdocs/fourn/commande/list.php - * \ingroup fournisseur - * \brief List of purchase orders + * \file htdocs/fourn/commande/list.php + * \ingroup fournisseur + * \brief List of purchase orders */ + +// Load Dolibarr environment require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formorder.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formorder.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +// Load translation files required by the page $langs->loadLangs(array("orders", "sendings", 'deliveries', 'companies', 'compta', 'bills', 'projects', 'suppliers', 'products')); +// Get Parameters $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); @@ -53,6 +57,7 @@ $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'supplierorderlist'; +// Search Criteria $search_date_order_startday = GETPOST('search_date_order_startday', 'int'); $search_date_order_startmonth = GETPOST('search_date_order_startmonth', 'int'); $search_date_order_startyear = GETPOST('search_date_order_startyear', 'int'); @@ -61,6 +66,7 @@ $search_date_order_endmonth = GETPOST('search_date_order_endmonth', 'int'); $search_date_order_endyear = GETPOST('search_date_order_endyear', 'int'); $search_date_order_start = dol_mktime(0, 0, 0, $search_date_order_startmonth, $search_date_order_startday, $search_date_order_startyear); // Use tzserver $search_date_order_end = dol_mktime(23, 59, 59, $search_date_order_endmonth, $search_date_order_endday, $search_date_order_endyear); + $search_date_delivery_startday = GETPOST('search_date_delivery_startday', 'int'); $search_date_delivery_startmonth = GETPOST('search_date_delivery_startmonth', 'int'); $search_date_delivery_startyear = GETPOST('search_date_delivery_startyear', 'int'); @@ -78,6 +84,7 @@ $search_date_valid_endmonth = GETPOST('search_date_valid_endmonth', 'int'); $search_date_valid_endyear = GETPOST('search_date_valid_endyear', 'int'); $search_date_valid_start = dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear); // Use tzserver $search_date_valid_end = dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear); + $search_date_approve_startday = GETPOST('search_date_approve_startday', 'int'); $search_date_approve_startmonth = GETPOST('search_date_approve_startmonth', 'int'); $search_date_approve_startyear = GETPOST('search_date_approve_startyear', 'int'); @@ -93,6 +100,7 @@ $search_product_category = GETPOST('search_product_category', 'int'); $search_ref = GETPOST('search_ref', 'alpha'); $search_refsupp = GETPOST('search_refsupp', 'alpha'); $search_company = GETPOST('search_company', 'alpha'); +$search_company_alias = GETPOST('search_company_alias', 'alpha'); $search_town = GETPOST('search_town', 'alpha'); $search_zip = GETPOST('search_zip', 'alpha'); $search_state = GETPOST("search_state", 'alpha'); @@ -119,7 +127,7 @@ $search_project_ref = GETPOST('search_project_ref', 'alpha'); $search_btn = GETPOST('button_search', 'alpha'); $search_remove_btn = GETPOST('button_removefilter', 'alpha'); -if (is_array(GETPOST('search_status', 'none'))) { // 'none' because we want to know type before sanitizing +if (GETPOSTISARRAY('search_status')) { $search_status = join(',', GETPOST('search_status', 'array:intcomma')); } else { $search_status = (GETPOST('search_status', 'intcomma') != '' ? GETPOST('search_status', 'intcomma') : GETPOST('statut', 'intcomma')); @@ -181,12 +189,15 @@ $checkedtypetiers = 0; // Definition of array of fields for columns $arrayfields = array( + 's.name_alias'=>array('label'=>"AliasNameShort", 'position'=>47, 'checked'=>0), 's.town'=>array('label'=>"Town", 'enabled'=>1, 'position'=>47, 'checked'=>1), 's.zip'=>array('label'=>"Zip", 'enabled'=>1, 'position'=>47, 'checked'=>1), 'state.nom'=>array('label'=>"StateShort", 'enabled'=>1, 'position'=>48), 'country.code_iso'=>array('label'=>"Country", 'enabled'=>1, 'position'=>49), 'typent.code'=>array('label'=>"ThirdPartyType", 'enabled'=>$checkedtypetiers, 'position'=>50), - 'u.login'=>array('label'=>"AuthorRequest", 'enabled'=>1, 'position'=>51) + 'u.login'=>array('label'=>"AuthorRequest", 'enabled'=>1, 'position'=>51), + 'cf.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PUBLIC_NOTES')), 'position'=>100), + 'cf.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(!getDolGlobalInt('MAIN_LIST_HIDE_PRIVATE_NOTES')), 'position'=>110), ); foreach ($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field @@ -246,6 +257,7 @@ if (empty($reshook)) { $search_ref = ''; $search_refsupp = ''; $search_company = ''; + $search_company_alias = ''; $search_town = ''; $search_zip = ""; $search_state = ""; @@ -515,7 +527,7 @@ if (empty($reshook)) { } } - $cmd->classifyBilled($user); // TODO Move this in workflow like done for customer orders + $cmd->classifyBilled($user); // TODO Move this in workflow like done for sales orders if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) { $TFactThird[$cmd->socid] = $objecttmp; @@ -657,6 +669,9 @@ if (empty($reshook)) { if ($search_company) { $param .= '&search_company='.urlencode($search_company); } + if ($search_company_alias) { + $param .= '&search_company_alias='.urlencode($search_company_alias); + } //if ($search_ref_customer) $param .= '&search_ref_customer='.urlencode($search_ref_customer); if ($search_user > 0) { $param .= '&search_user='.urlencode($search_user); @@ -735,13 +750,15 @@ if ($search_billed > 0) { //$help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; $help_url = ''; -// llxHeader('',$title,$help_url); + +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields $sql = 'SELECT'; -if ($sall || $search_product_category > 0) { +if ($sall) { $sql = 'SELECT DISTINCT'; } -$sql .= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, s.email,'; +$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.email,'; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; $sql .= " cf.rowid, cf.ref, cf.ref_supplier, cf.fk_statut, cf.billed, cf.total_ht, cf.total_tva, cf.total_ttc, cf.fk_user_author, cf.date_commande as date_commande, cf.date_livraison as date_livraison,cf.date_valid, cf.date_approve,"; @@ -760,6 +777,9 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; @@ -768,12 +788,9 @@ $sql .= ", ".MAIN_DB_PREFIX."commande_fournisseur as cf"; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (cf.rowid = ef.fk_object)"; } -if ($sall || $search_product_category > 0) { +if ($sall) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseurdet as pd ON cf.rowid=pd.fk_commande'; } -if ($search_product_category > 0) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; -} $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON cf.fk_user_author = u.rowid"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = cf.fk_projet"; // We'll need this table joined to the select in order to filter by sale @@ -800,8 +817,15 @@ if ($search_refsupp) { if ($sall) { $sql .= natural_search(array_keys($fieldstosearchall), $sall); } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); +if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } if ($search_request_author) { $sql .= natural_search(array('u.lastname', 'u.firstname', 'u.login'), $search_request_author); @@ -809,9 +833,6 @@ if ($search_request_author) { if ($search_billed != '' && $search_billed >= 0) { $sql .= " AND cf.billed = ".((int) $search_billed); } -if ($search_product_category > 0) { - $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); -} //Required triple check because statut=0 means draft filter if (GETPOST('statut', 'intcomma') !== '') { $sql .= " AND cf.fk_statut IN (".$db->sanitize($db->escape($db->escape(GETPOST('statut', 'intcomma')))).")"; @@ -858,9 +879,6 @@ if ($search_country) { if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { $sql .= " AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).')'; } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); -} if ($search_sale > 0) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); } @@ -900,6 +918,36 @@ if ($search_multicurrency_montant_ttc != '') { if ($search_project_ref != '') { $sql .= natural_search("p.ref", $search_project_ref); } +// Search for tag/category ($searchCategoryProductList is an array of ID) +$searchCategoryProductOperator = -1; +$searchCategoryProductList = array($search_product_category); +if (!empty($searchCategoryProductList)) { + $searchCategoryProductSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product)"; + } elseif (intval($searchCategoryProduct) > 0) { + if ($searchCategoryProductOperator == 0) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProduct); + } + } + } + if ($listofcategoryid) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProductOperator == 1) { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } + } else { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks @@ -907,20 +955,31 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); @@ -1032,6 +1091,9 @@ if ($resql) { if ($search_company) { $param .= '&search_company='.urlencode($search_company); } + if ($search_company_alias) { + $param .= '&search_company_alias='.urlencode($search_company_alias); + } if ($search_user > 0) { $param .= '&search_user='.urlencode($search_user); } @@ -1122,7 +1184,7 @@ if ($resql) { $url .= '&socid='.((int) $socid); $url .= '&backtopage='.urlencode(DOL_URL_ROOT.'/fourn/commande/list.php?socid='.((int) $socid)); } - $newcardbutton = dolGetButtonTitle($langs->trans('NewSupplierOrderShort'), '', 'fa fa-plus-circle', $url, '', $permissitiontoadd); + $newcardbutton = dolGetButtonTitle($langs->trans('NewSupplierOrderShort'), '', 'fa fa-plus-circle', $url, '', $permissiontoadd); // Lines of title fields print '
    '; @@ -1141,12 +1203,12 @@ if ($resql) { $topicmail = "SendOrderRef"; $modelmail = "order_supplier_send"; - $objecttmp = new CommandeFournisseur($db); + $objecttmp = new CommandeFournisseur($db); // in case $object is not the good object $trackid = 'sord'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; if ($massaction == 'prevalidate') { - print $form->formconfirm($_SERVER["PHP_SELF"].$fieldstosearchall, $langs->trans("ConfirmMassValidation"), $langs->trans("ConfirmMassValidationQuestion"), "validate", null, '', 0, 200, 500, 1); + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassValidation"), $langs->trans("ConfirmMassValidationQuestion"), "validate", null, '', 0, 200, 500, 1); } if ($massaction == 'createbills') { @@ -1213,7 +1275,7 @@ if ($resql) { $moreforfilter .= '
    '; } // If the user can view prospects other than his' - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('IncludingProductWithTag'); @@ -1236,7 +1298,7 @@ if ($resql) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); if (GETPOST('autoselectall', 'int')) { @@ -1253,6 +1315,13 @@ if ($resql) { print ''."\n"; print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } // Ref if (!empty($arrayfields['cf.ref']['checked'])) { print ''; @@ -1275,6 +1344,10 @@ if ($resql) { if (!empty($arrayfields['cf.fk_soc']['checked'])) { print ''; } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } // Town if (!empty($arrayfields['s.town']['checked'])) { print ''; @@ -1396,8 +1469,8 @@ if ($resql) { } // Status billed if (!empty($arrayfields['cf.billed']['checked'])) { - print ''; } // Date valid @@ -1422,16 +1495,31 @@ if ($resql) { print ''; print ''; } + // Note public + if (!empty($arrayfields['cf.note_public']['checked'])) { + print ''; + } + // Note private + if (!empty($arrayfields['cf.note_private']['checked'])) { + print ''; + } // Action column - print ''; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } print "\n"; // Fields title print ''; + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + } if (!empty($arrayfields['cf.ref']['checked'])) { print_liste_field_titre($arrayfields['cf.ref']['label'], $_SERVER["PHP_SELF"], "cf.ref", "", $param, '', $sortfield, $sortorder); } @@ -1447,6 +1535,9 @@ if ($resql) { if (!empty($arrayfields['cf.fk_soc']['checked'])) { print_liste_field_titre($arrayfields['cf.fk_soc']['label'], $_SERVER["PHP_SELF"], "s.nom", "", $param, '', $sortfield, $sortorder); } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], "s.name_alias", "", $param, '', $sortfield, $sortorder); + } if (!empty($arrayfields['s.town']['checked'])) { print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); } @@ -1519,7 +1610,15 @@ if ($resql) { if (!empty($arrayfields['cf.date_approve']['checked'])) { print_liste_field_titre($arrayfields['cf.date_approve']['label'], $_SERVER["PHP_SELF"], 'cf.date_approve', '', $param, '', $sortfield, $sortorder, 'center '); } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + if (!empty($arrayfields['cf.note_public']['checked'])) { + print_liste_field_titre($arrayfields['cf.note_public']['label'], $_SERVER["PHP_SELF"], "cf.note_public", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['cf.note_private']['checked'])) { + print_liste_field_titre($arrayfields['cf.note_private']['label'], $_SERVER["PHP_SELF"], "cf.note_private", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + } print "\n"; @@ -1535,6 +1634,7 @@ if ($resql) { $totalarray = array('nbfield' => 0, 'val' => array(), 'pos' => array()); $totalarray['val']['cf.total_ht'] = 0; $totalarray['val']['cf.total_ttc'] = 0; + $totalarray['val']['cf.total_tva'] = 0; $imaxinloop = ($limit ? min($num, $limit) : $num); while ($i < $imaxinloop) { @@ -1561,7 +1661,18 @@ if ($resql) { $objectstatic->statut = $obj->fk_statut; print ''; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } // Ref if (!empty($arrayfields['cf.ref']['checked'])) { print ''."\n"; + print ''."\n"; if (!$i) { $totalarray['nbfield']++; } @@ -1623,7 +1734,19 @@ if ($resql) { $thirdpartytmp->id = $obj->socid; $thirdpartytmp->name = $obj->name; $thirdpartytmp->email = $obj->email; - print $thirdpartytmp->getNomUrl(1, 'supplier'); + $thirdpartytmp->name_alias = $obj->alias; + $thirdpartytmp->client = $obj->client; + $thirdpartytmp->fournisseur = $obj->fournisseur; + print $thirdpartytmp->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + print ''."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + //alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''."\n"; if (!$i) { $totalarray['nbfield']++; @@ -1835,17 +1958,38 @@ if ($resql) { $totalarray['nbfield']++; } } + // Note public + if (!empty($arrayfields['cf.note_public']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note private + if (!empty($arrayfields['cf.note_private']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/fourn/commande/note.php b/htdocs/fourn/commande/note.php index 1c67c03d727..33648dd9817 100644 --- a/htdocs/fourn/commande/note.php +++ b/htdocs/fourn/commande/note.php @@ -20,21 +20,24 @@ */ /** - * \file htdocs/fourn/commande/note.php - * \ingroup commande - * \brief Fiche note commande + * \file htdocs/fourn/commande/note.php + * \ingroup commande + * \brief page for notes on supplier orders */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page $langs->loadLangs(array("suppliers", "orders", "companies", "stocks")); +// Get Parameters $id = GETPOST('facid', 'int') ?GETPOST('facid', 'int') : GETPOST('id', 'int'); $ref = GETPOST('ref'); $action = GETPOST('action', 'aZ09'); @@ -44,13 +47,17 @@ if ($user->socid) { $socid = $user->socid; } +// Init Objects $hookmanager->initHooks(array('ordersuppliercardnote')); $result = restrictedArea($user, 'fournisseur', $id, 'commande_fournisseur', 'commande'); $object = new CommandeFournisseur($db); $object->fetch($id, $ref); +// Permissions $permissionnote = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); // Used by the include of actions_setnotes.inc.php +$usercancreate = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$permissiontoadd = $usercancreate; // Used by the include of actions_addupdatedelete.inc.php /* @@ -69,7 +76,8 @@ if (empty($reshook)) { /* * View */ -$title = $langs->trans('SupplierOrder')." - ".$langs->trans('Notes'); + +$title = $object->ref." - ".$langs->trans('Notes'); $help_url = 'EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; llxHeader('', $title, $help_url); @@ -104,37 +112,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { - if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $caneditproject) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/fourn/contact.php b/htdocs/fourn/contact.php index 9d6e3abd4cf..6ffb734f175 100644 --- a/htdocs/fourn/contact.php +++ b/htdocs/fourn/contact.php @@ -23,6 +23,7 @@ * \brief Liste des contacts fournisseurs */ +// Load Dolibarr environment require '../main.inc.php'; $langs->load("companies"); diff --git a/htdocs/fourn/facture/card-rec.php b/htdocs/fourn/facture/card-rec.php index cefc46599c4..fcfaaf2d3d6 100644 --- a/htdocs/fourn/facture/card-rec.php +++ b/htdocs/fourn/facture/card-rec.php @@ -30,12 +30,13 @@ * \brief Page to show predefined invoice */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture-rec.class.php'; require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.product.class.php'; require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php'; -if (! empty($conf->projet->enabled)) { +if (isModEnabled('project')) { include_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; } require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; @@ -106,16 +107,16 @@ $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); $permissionnote = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer;; // Used by the include of actions_dellink.inc.php -$permissiontoedit = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer;; // Used by the include of actions_lineupdonw.inc.php +$permissiondellink = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; // Used by the include of actions_dellink.inc.php +$permissiontoedit = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; // Used by the include of actions_lineupdonw.inc.php $usercanread = $user->rights->fournisseur->facture->lire || $user->rights->supplier_invoice->lire; $usercancreate = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; $usercandelete = $user->rights->fournisseur->facture->supprimer || $user->rights->supplier_invoice->supprimer; -$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($usercancreate)) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->fournisseur->supplier_invoice_advance->validate))); +$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->supplier_invoice_advance->validate))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->fournisseur->supplier_invoice_advance->send); -$usercanproductignorepricemin = ((! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); +$usercanproductignorepricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); $usercancreatemargin = $user->rights->margins->creer; $usercanreadallmargin = $user->rights->margins->liretous; $usercancreatewithdrarequest = $user->rights->prelevement->bons->creer; @@ -301,7 +302,7 @@ if (empty($reshook)) { } elseif ($action == 'setdate_when' && $usercancreate) { // Set next date of execution $date = dol_mktime(GETPOST('date_whenhour'), GETPOST('date_whenmin'), 0, GETPOST('date_whenmonth'), GETPOST('date_whenday'), GETPOST('date_whenyear')); - if (! empty($date)) { + if (!empty($date)) { $object->setNextDate($date); } } elseif ($action == 'setnb_gen_max' && $usercancreate) { @@ -484,7 +485,7 @@ if (empty($reshook)) { $res = $productsupplier->fetch($idprod); // Load product from its id // Call to init some price properties of $productsupplier // So if a supplier price already exists for another thirdparty (first one found), we use it as reference price - if (! empty($conf->global->SUPPLIER_TAKE_FIRST_PRICE_IF_NO_PRICE_FOR_CURRENT_SUPPLIER)) { + if (!empty($conf->global->SUPPLIER_TAKE_FIRST_PRICE_IF_NO_PRICE_FOR_CURRENT_SUPPLIER)) { $fksoctosearch = 0; $productsupplier->get_buyprice(0, -1, $idprod, 'none', $fksoctosearch); // We force qty to -1 to be sure to find if a supplier price exist if ($productsupplier->fourn_socid != $socid) { // The price we found is for another supplier, so we clear supplier price @@ -502,7 +503,7 @@ if (empty($reshook)) { } } - if (! $error && ($qty >= 0) && (! empty($product_desc) || (! empty($idprod) && $idprod > 0))) { + if (! $error && ($qty >= 0) && (!empty($product_desc) || (!empty($idprod) && $idprod > 0))) { $ret = $object->fetch($id); if ($ret < 0) { dol_print_error($db, $object->error); @@ -524,7 +525,7 @@ if (empty($reshook)) { // Ecrase $tva_tx par celui du produit // Ecrase $base_price_type par celui du produit // Replaces $fk_unit with the product's - if (! empty($idprod) && $idprod > 0) { + if (!empty($idprod) && $idprod > 0) { $prod = new Product($db); $prod->fetch($idprod); @@ -553,7 +554,7 @@ if (empty($reshook)) { $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); // if price ht was forced (ie: from gui when calculated by margin rate and cost price). TODO Why this ? - if (! empty($price_ht)) { + if (!empty($price_ht)) { $pu_ht = price2num($price_ht, 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); } elseif ($tmpvat != $tmpprodvat) { @@ -569,7 +570,7 @@ if (empty($reshook)) { $desc = ''; // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -578,12 +579,12 @@ if (empty($reshook)) { if (empty($newlang)) { $newlang = $object->thirdparty->default_lang; } - if (! empty($newlang)) { + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } - $desc = (! empty($prod->multilangs [$outputlangs->defaultlang] ["description"])) ? $prod->multilangs [$outputlangs->defaultlang] ["description"] : $prod->description; + $desc = (!empty($prod->multilangs [$outputlangs->defaultlang] ["description"])) ? $prod->multilangs [$outputlangs->defaultlang] ["description"] : $prod->description; } else { $desc = $prod->description; } @@ -591,10 +592,10 @@ if (empty($reshook)) { $desc = dol_concatdesc($desc, $product_desc); // Add custom code and origin country into description - if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) { + if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (!empty($prod->customcode) || !empty($prod->country_code))) { $tmptxt = '('; // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'alpha')) { @@ -603,28 +604,28 @@ if (empty($reshook)) { if (empty($newlang)) { $newlang = $object->thirdparty->default_lang; } - if (! empty($newlang)) { + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); $outputlangs->load('products'); } - if (! empty($prod->customcode)) { + if (!empty($prod->customcode)) { $tmptxt .= $outputlangs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; } - if (! empty($prod->customcode) && ! empty($prod->country_code)) { + if (!empty($prod->customcode) && !empty($prod->country_code)) { $tmptxt .= ' - '; } - if (! empty($prod->country_code)) { + if (!empty($prod->country_code)) { $tmptxt .= $outputlangs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $outputlangs, 0); } } else { - if (! empty($prod->customcode)) { + if (!empty($prod->customcode)) { $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; } - if (! empty($prod->customcode) && ! empty($prod->country_code)) { + if (!empty($prod->customcode) && !empty($prod->country_code)) { $tmptxt .= ' - '; } - if (! empty($prod->country_code)) { + if (!empty($prod->country_code)) { $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); } } @@ -647,8 +648,8 @@ if (empty($reshook)) { $fk_unit = GETPOST('units', 'alpha'); } - $date_start_fill = ! empty(GETPOST('date_start_fill', 'int')) ? GETPOST('date_start_fill', 'int') : null; - $date_end_fill = ! empty(GETPOST('date_end_fill', 'int')) ? GETPOST('date_end_fill', 'int') : null; + $date_start_fill = !empty(GETPOST('date_start_fill', 'int')) ? GETPOST('date_start_fill', 'int') : null; + $date_end_fill = !empty(GETPOST('date_end_fill', 'int')) ? GETPOST('date_end_fill', 'int') : null; // Margin $fournprice = price2num(GETPOST('fournprice' . $predef) ? GETPOST('fournprice' . $predef) : ''); @@ -667,7 +668,7 @@ if (empty($reshook)) { $remise_percent = (float) price2num($remise_percent); $price_min = (float) price2num($price_min); - if ($usercanproductignorepricemin && (! empty($price_min) && ($pu_ht * (1 - $remise_percent / 100) < $price_min))) { + if ($usercanproductignorepricemin && (!empty($price_min) && ($pu_ht * (1 - $remise_percent / 100) < $price_min))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); } else { @@ -778,21 +779,21 @@ if (empty($reshook)) { // Check minimum price $productid = GETPOST('productid', 'int'); - if (! empty($productid)) { + if (!empty($productid)) { $product = new Product($db); $product->fetch($productid); $type = $product->type; $price_min = $product->price_min; - if (! empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($object->thirdparty->price_level)) { + if (!empty($conf->global->PRODUIT_MULTIPRICES) && !empty($object->thirdparty->price_level)) { $price_min = $product->multiprices_min[$object->thirdparty->price_level]; } $label = $product->label; // Check price is not lower than minimum (check is done only for standard or replacement invoices) - if (((! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && $price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min))) { + if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && $price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)), null, 'errors'); $error++; } @@ -812,8 +813,8 @@ if (empty($reshook)) { $error++; } - $date_start_fill = ! empty(GETPOST('date_start_fill', 'int')) ? GETPOST('date_start_fill', 'int') : 'NULL'; - $date_end_fill = ! empty(GETPOST('date_end_fill', 'int')) ? GETPOST('date_end_fill', 'int') : 'NULL'; + $date_start_fill = !empty(GETPOST('date_start_fill', 'int')) ? GETPOST('date_start_fill', 'int') : 'NULL'; + $date_end_fill = !empty(GETPOST('date_end_fill', 'int')) ? GETPOST('date_end_fill', 'int') : 'NULL'; // Update line if (! $error) { @@ -869,7 +870,7 @@ llxHeader('', $langs->trans("RepeatableSupplierInvoice"), $help_url); $form = new Form($db); $formother = new FormOther($db); -if (! empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } $companystatic = new Societe($db); @@ -898,7 +899,7 @@ if ($action == 'create') { print dol_get_fiche_head(null, '', '', 0); $rowspan = 4; - if (! empty($conf->projet->enabled)) $rowspan++; + if (isModEnabled('project')) $rowspan++; if ($object->fk_account > 0) $rowspan++; print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; - print $form->selectyesno('search_billed', $search_billed, 1, 0, 1, 1); + print ''; + print $form->selectyesno('search_billed', $search_billed, 1, false, 1, 1, 'search_status width100 onrightofpage'); print ''; + print ''; + print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -1580,7 +1691,7 @@ if ($resql) { } // Ref Supplier if (!empty($arrayfields['cf.ref_supplier']['checked'])) { - print ''.$obj->ref_supplier.''.dol_escape_htmltag($obj->ref_supplier).''; + print $obj->alias; print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '; @@ -986,12 +987,12 @@ if ($action == 'create') { print ""; // Project - if (! empty($conf->projet->enabled) && is_object($object->thirdparty) && $object->thirdparty->id > 0) { + if (isModEnabled('project') && is_object($object->thirdparty) && $object->thirdparty->id > 0) { $projectid = GETPOST('projectid') ? GETPOST('projectid') : $object->fk_project; $langs->load('projects'); print ''; } @@ -1044,7 +1045,7 @@ if ($action == 'create') { print ""; // Auto generate document - if (! empty($conf->global->INVOICE_REC_CAN_DISABLE_DOCUMENT_FILE_GENERATION)) { + if (!empty($conf->global->INVOICE_REC_CAN_DISABLE_DOCUMENT_FILE_GENERATION)) { print "'; include_once DOL_DOCUMENT_ROOT.'/core/modules/import/modules_import.php'; $model = new ModeleImports(); -$list = $model->liste_modeles($db); +$list = $model->listOfAvailableImportFormat($db); foreach ($list as $key) { print ''; diff --git a/htdocs/includes/OAuth/Common/Storage/DoliStorage.php b/htdocs/includes/OAuth/Common/Storage/DoliStorage.php index b2a79dc4751..0ca8dee700b 100644 --- a/htdocs/includes/OAuth/Common/Storage/DoliStorage.php +++ b/htdocs/includes/OAuth/Common/Storage/DoliStorage.php @@ -29,257 +29,302 @@ use OAuth\Common\Storage\Exception\TokenNotFoundException; use OAuth\Common\Storage\Exception\AuthorizationStateNotFoundException; use DoliDB; + + +/** + * Class to manage storage of OAUTH2 in Dolibarr + */ class DoliStorage implements TokenStorageInterface { - /** - * @var DoliDB Database handler - */ - protected $db; + /** + * @var DoliDB Database handler + */ + protected $db; - /** - * @var object|TokenInterface - */ - protected $tokens; + /** + * @var object|TokenInterface + */ + protected $tokens; - /** - * @var string Error code (or message) - */ - public $error; - /** - * @var string[] Several error codes (or messages) - */ - public $errors = array(); + /** + * @var string Error code (or message) + */ + public $error; + /** + * @var string[] Several error codes (or messages) + */ + public $errors = array(); - private $conf; - private $key; - private $stateKey; + private $conf; + private $key; + //private $stateKey; + private $keyforprovider; - /** - * @param Conf $conf - * @param string $key - * @param string $stateKey - */ - public function __construct(DoliDB $db, $conf) - { - $this->db = $db; - $this->conf = $conf; - $this->tokens = array(); - $this->states = array(); - //$this->key = $key; - //$this->stateKey = $stateKey; - } + public $state; + public $date_creation; + public $date_modification; - /** - * {@inheritDoc} - */ - public function retrieveAccessToken($service) - { - if ($this->hasAccessToken($service)) { - return $this->tokens[$service]; - } - throw new TokenNotFoundException('Token not found in db, are you sure you stored it?'); - } + /** + * @param DoliDB $db Database handler + * @param \Conf $conf Conf object + * @param string $keyforprovider Key to manage several providers of the same type. For example 'abc' will be added to 'Google' to defined storage key. + */ + public function __construct(DoliDB $db, \Conf $conf, $keyforprovider = '') + { + $this->db = $db; + $this->conf = $conf; + $this->keyforprovider = $keyforprovider; + $this->tokens = array(); + $this->states = array(); + //$this->key = $key; + //$this->stateKey = $stateKey; + } - /** - * {@inheritDoc} - */ - public function storeAccessToken($service, TokenInterface $token) - { - //var_dump("storeAccessToken"); - //var_dump($token); - dol_syslog("storeAccessToken"); - - $serializedToken = serialize($token); - $this->tokens[$service] = $token; + /** + * {@inheritDoc} + */ + public function retrieveAccessToken($service) + { + dol_syslog("retrieveAccessToken service=".$service); - if (!is_array($this->tokens)) { - $this->tokens = array(); - } - $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."oauth_token"; - $sql.= " WHERE service='".$this->db->escape($service)."' AND entity=1"; - $resql = $this->db->query($sql); - if (! $resql) - { - dol_print_error($this->db); - } - $obj = $this->db->fetch_array($resql); - if ($obj) { - // update - $sql = "UPDATE ".MAIN_DB_PREFIX."oauth_token"; - $sql.= " SET token='".$this->db->escape($serializedToken)."'"; - $sql.= " WHERE rowid='".$obj['rowid']."'"; - $resql = $this->db->query($sql); - } else { - // save - $sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token (service, token, entity)"; - $sql.= " VALUES ('".$this->db->escape($service)."', '".$this->db->escape($serializedToken)."', 1)"; - $resql = $this->db->query($sql); - } - //print $sql; - - // allow chaining - return $this; - } + if ($this->hasAccessToken($service)) { + return $this->tokens[$service]; + } - /** - * {@inheritDoc} - */ - public function hasAccessToken($service) - { - // get from db - dol_syslog("hasAccessToken service=".$service); - $sql = "SELECT token FROM ".MAIN_DB_PREFIX."oauth_token"; - $sql.= " WHERE service='".$this->db->escape($service)."'"; - $resql = $this->db->query($sql); - if (! $resql) - { - dol_print_error($this->db); - } - $result = $this->db->fetch_array($resql); - $token = unserialize($result['token']); - - $this->tokens[$service] = $token; + throw new TokenNotFoundException('Token not found in db, are you sure you stored it?'); + } - return is_array($this->tokens) - && isset($this->tokens[$service]) - && $this->tokens[$service] instanceof TokenInterface; - } + /** + * {@inheritDoc} + */ + public function storeAccessToken($service, TokenInterface $token) + { + global $conf; - /** - * {@inheritDoc} - */ - public function clearToken($service) - { - // TODO - // get previously saved tokens - //$tokens = $this->retrieveAccessToken($service); + //var_dump("storeAccessToken"); + //var_dump($token); + dol_syslog("storeAccessToken service=".$service); - //if (is_array($tokens) && array_key_exists($service, $tokens)) { - // unset($tokens[$service]); + include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; + $serializedToken = dolEncrypt(serialize($token)); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."oauth_token"; - $sql.= " WHERE service='".$this->db->escape($service)."'"; - $resql = $this->db->query($sql); - //} + $this->tokens[$service] = $token; - // allow chaining - return $this; - } + if (!is_array($this->tokens)) { + $this->tokens = array(); + } + $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."oauth_token"; + $sql .= " WHERE service = '".$this->db->escape($service.($this->keyforprovider?'-'.$this->keyforprovider:''))."'"; + $sql .= " AND entity IN (".getEntity('oauth_token').")"; + $resql = $this->db->query($sql); + if (! $resql) { + dol_print_error($this->db); + } + $obj = $this->db->fetch_array($resql); + if ($obj) { + // update + $sql = "UPDATE ".MAIN_DB_PREFIX."oauth_token"; + $sql.= " SET token = '".$this->db->escape($serializedToken)."'"; + $sql.= " WHERE rowid = ".((int) $obj['rowid']); + $resql = $this->db->query($sql); + } else { + // save + $sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token (service, token, entity, datec)"; + $sql .= " VALUES ('".$this->db->escape($service.($this->keyforprovider?'-'.$this->keyforprovider:''))."', '".$this->db->escape($serializedToken)."', ".((int) $conf->entity).", "; + $sql .= " '".$this->db->idate(dol_now())."'"; + $sql .= ")"; + $resql = $this->db->query($sql); + } + //print $sql; - /** - * {@inheritDoc} - */ - public function clearAllTokens() - { - // TODO - $this->conf->remove($this->key); + // allow chaining + return $this; + } - // allow chaining - return $this; - } + /** + * {@inheritDoc} + */ + public function hasAccessToken($service) + { + // get from db + dol_syslog("hasAccessToken service=".$service); - /** - * {@inheritDoc} - */ - public function retrieveAuthorizationState($service) - { - if ($this->hasAuthorizationState($service)) { - return $this->states[$service]; + $sql = "SELECT token, datec, tms, state FROM ".MAIN_DB_PREFIX."oauth_token"; + $sql .= " WHERE service = '".$this->db->escape($service.(empty($this->keyforprovider) ? '' : '-'.$this->keyforprovider))."'"; + $sql .= " AND entity IN (".getEntity('oauth_token').")"; + $resql = $this->db->query($sql); + if (! $resql) { + dol_print_error($this->db); + } + $result = $this->db->fetch_array($resql); + if ($result) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; + $token = unserialize(dolDecrypt($result['token'])); + $this->date_creation = $this->db->jdate($result['datec']); + $this->date_modification = $this->db->jdate($result['tms']); + $this->state = $result['state']; + } else { + $token = ''; + $this->date_creation = null; + $this->date_modification = null; + $this->state = ''; + } - } + $this->tokens[$service] = $token; - throw new AuthorizationStateNotFoundException('State not found in db, are you sure you stored it?'); - } + return is_array($this->tokens) + && isset($this->tokens[$service]) + && $this->tokens[$service] instanceof TokenInterface; + } - /** - * {@inheritDoc} - */ - public function storeAuthorizationState($service, $state) - { - // TODO save or update + /** + * {@inheritDoc} + */ + public function clearToken($service) + { + dol_syslog("clearToken service=".$service); - if (!is_array($states)) { - $states = array(); - } + // TODO + // get previously saved tokens + //$tokens = $this->retrieveAccessToken($service); - $states[$service] = $state; - $this->states[$service] = $state; + //if (is_array($tokens) && array_key_exists($service, $tokens)) { + // unset($tokens[$service]); - $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."oauth_state"; - $sql.= " WHERE service='".$this->db->escape($service)."' AND entity=1"; - $resql = $this->db->query($sql); - if (! $resql) - { - dol_print_error($this->db); - } - $obj = $this->db->fetch_array($resql); - if ($obj) { - // update - $sql = "UPDATE ".MAIN_DB_PREFIX."oauth_state"; - $sql.= " SET state='".$this->db->escape($state)."'"; - $sql.= " WHERE rowid='".$obj['rowid']."'"; - $resql = $this->db->query($sql); - } else { - // save - $sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_state (service, state, entity)"; - $sql.= " VALUES ('".$this->db->escape($service)."', '".$this->db->escape($state)."', 1)"; - $resql = $this->db->query($sql); - } + $sql = "DELETE FROM ".MAIN_DB_PREFIX."oauth_token"; + $sql .= " WHERE service = '".$this->db->escape($service.($this->keyforprovider?'-'.$this->keyforprovider:''))."'"; + $sql .= " AND entity IN (".getEntity('oauth_token').")"; + $resql = $this->db->query($sql); + //} - // allow chaining - return $this; - } + // allow chaining + return $this; + } - /** - * {@inheritDoc} - */ - public function hasAuthorizationState($service) - { - // get state from db - dol_syslog("get state from db"); - $sql = "SELECT state FROM ".MAIN_DB_PREFIX."oauth_state"; - $sql.= " WHERE service='".$this->db->escape($service)."'"; - $resql = $this->db->query($sql); - $result = $this->db->fetch_array($resql); - $states[$service] = $result['state']; - $this->states[$service] = $states[$service]; + /** + * {@inheritDoc} + */ + public function clearAllTokens() + { + // TODO + $this->conf->remove($this->key); - return is_array($states) - && isset($states[$service]) - && null !== $states[$service]; - } + // allow chaining + return $this; + } - /** - * {@inheritDoc} - */ - public function clearAuthorizationState($service) - { - // TODO - // get previously saved tokens - //$states = $this->conf->get($this->stateKey); + /** + * {@inheritDoc} + */ + public function retrieveAuthorizationState($service) + { + if ($this->hasAuthorizationState($service)) { + return $this->states[$service]; + } - if (is_array($states) && array_key_exists($service, $states)) { - unset($states[$service]); + dol_syslog('State not found in db, are you sure you stored it?', LOG_WARNING); + throw new AuthorizationStateNotFoundException('State not found in db, are you sure you stored it?'); + } - // Replace the stored tokens array - //$this->conf->set($this->stateKey, $states); - } + /** + * {@inheritDoc} + */ + public function storeAuthorizationState($service, $state) + { + global $conf; - // allow chaining - return $this; - } + dol_syslog("storeAuthorizationState service=".$service." state=".$state); - /** - * {@inheritDoc} - */ - public function clearAllAuthorizationStates() - { - // TODO - //$this->conf->remove($this->stateKey); + if (!isset($this->states) || !is_array($this->states)) { + $this->states = array(); + } - // allow chaining - return $this; - } + //$states[$service] = $state; + $this->states[$service] = $state; + //$newstate = preg_replace('/\-.*$/', '', $state); + $newstate = $state; + + $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."oauth_token"; + $sql .= " WHERE service = '".$this->db->escape($service.($this->keyforprovider?'-'.$this->keyforprovider:''))."'"; + $sql .= " AND entity IN (".getEntity('oauth_token').")"; + $resql = $this->db->query($sql); + if (! $resql) { + dol_print_error($this->db); + } + $obj = $this->db->fetch_array($resql); + if ($obj) { + // update + $sql = "UPDATE ".MAIN_DB_PREFIX."oauth_token"; + $sql.= " SET state = '".$this->db->escape($newstate)."'"; + $sql.= " WHERE rowid = ".((int) $obj['rowid']); + $resql = $this->db->query($sql); + } else { + // insert (should not happen) + $sql = "INSERT INTO ".MAIN_DB_PREFIX."oauth_token (service, state, entity)"; + $sql.= " VALUES ('".$this->db->escape($service.($this->keyforprovider?'-'.$this->keyforprovider:''))."', '".$this->db->escape($newstate)."', ".((int) $conf->entity).")"; + $resql = $this->db->query($sql); + } + + // allow chaining + return $this; + } + + /** + * {@inheritDoc} + */ + public function hasAuthorizationState($service) + { + // get state from db + dol_syslog("hasAuthorizationState service=".$service); + + $sql = "SELECT state FROM ".MAIN_DB_PREFIX."oauth_token"; + $sql .= " WHERE service = '".$this->db->escape($service.($this->keyforprovider?'-'.$this->keyforprovider:''))."'"; + $sql .= " AND entity IN (".getEntity('oauth_token').")"; + + $resql = $this->db->query($sql); + + $result = $this->db->fetch_array($resql); + + $states = array(); + $states[$service] = $result['state']; + $this->states[$service] = $states[$service]; + + return is_array($states) + && isset($states[$service]) + && null !== $states[$service]; + } + + /** + * {@inheritDoc} + */ + public function clearAuthorizationState($service) + { + // TODO + // get previously saved tokens + //$states = $this->conf->get($this->stateKey); + + if (is_array($this->states) && array_key_exists($service, $this->states)) { + unset($this->states[$service]); + + // Replace the stored tokens array + //$this->conf->set($this->stateKey, $states); + } + + // allow chaining + return $this; + } + + /** + * {@inheritDoc} + */ + public function clearAllAuthorizationStates() + { + // TODO + //$this->conf->remove($this->stateKey); + + // allow chaining + return $this; + } } diff --git a/htdocs/includes/OAuth/OAuth2/Service/WordPress.php b/htdocs/includes/OAuth/OAuth2/Service/WordPress.php old mode 100755 new mode 100644 diff --git a/htdocs/includes/adodbtime/README.txt b/htdocs/includes/adodbtime/README.txt deleted file mode 100644 index 3e2969a2868..00000000000 --- a/htdocs/includes/adodbtime/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -README -====== - -ADOdb Date Library, part of the ADOdb abstraction library - -See Wiki: https://adodb.org/dokuwiki/doku.php?id=v5:datetime:datetime_index -Download: https://github.com/ADOdb/ADOdb/blob/master/adodb-time.inc.php diff --git a/htdocs/includes/adodbtime/adodb-time.inc.php b/htdocs/includes/adodbtime/adodb-time.inc.php deleted file mode 100644 index 030196db275..00000000000 --- a/htdocs/includes/adodbtime/adodb-time.inc.php +++ /dev/null @@ -1,1459 +0,0 @@ - 4 digit year conversion. The maximum is billions of years in the -future, but this is a theoretical limit as the computation of that year -would take too long with the current implementation of adodb_mktime(). - -This library replaces native functions as follows: - -
    -	getdate()  with  adodb_getdate()
    -	date()     with  adodb_date()
    -	gmdate()   with  adodb_gmdate()
    -	mktime()   with  adodb_mktime()
    -	gmmktime() with  adodb_gmmktime()
    -	strftime() with  adodb_strftime()
    -	strftime() with  adodb_gmstrftime()
    -
    - -The parameters are identical, except that adodb_date() accepts a subset -of date()'s field formats. Mktime() will convert from local time to GMT, -and date() will convert from GMT to local time, but daylight savings is -not handled currently. - -This library is independant of the rest of ADOdb, and can be used -as standalone code. - -PERFORMANCE - -For high speed, this library uses the native date functions where -possible, and only switches to PHP code when the dates fall outside -the 32-bit signed integer range. - -GREGORIAN CORRECTION - -Pope Gregory shortened October of A.D. 1582 by ten days. Thursday, -October 4, 1582 (Julian) was followed immediately by Friday, October 15, -1582 (Gregorian). - -Since 0.06, we handle this correctly, so: - -adodb_mktime(0,0,0,10,15,1582) - adodb_mktime(0,0,0,10,4,1582) - == 24 * 3600 (1 day) - -============================================================================= - -COPYRIGHT - -(c) 2003-2014 John Lim and released under BSD-style license except for code by -jackbbs, which includes adodb_mktime, adodb_get_gmt_diff, adodb_is_leap_year -and originally found at http://www.php.net/manual/en/function.mktime.php - -============================================================================= - -BUG REPORTS - -These should be posted to the ADOdb forums at - - http://phplens.com/lens/lensforum/topics.php?id=4 - -============================================================================= - -FUNCTION DESCRIPTIONS - -** FUNCTION adodb_time() - -Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) as an unsigned integer. - -** FUNCTION adodb_getdate($date=false) - -Returns an array containing date information, as getdate(), but supports -dates greater than 1901 to 2038. The local date/time format is derived from a -heuristic the first time adodb_getdate is called. - - -** FUNCTION adodb_date($fmt, $timestamp = false) - -Convert a timestamp to a formatted local date. If $timestamp is not defined, the -current timestamp is used. Unlike the function date(), it supports dates -outside the 1901 to 2038 range. - -The format fields that adodb_date supports: - -
    -	a - "am" or "pm"
    -	A - "AM" or "PM"
    -	d - day of the month, 2 digits with leading zeros; i.e. "01" to "31"
    -	D - day of the week, textual, 3 letters; e.g. "Fri"
    -	F - month, textual, long; e.g. "January"
    -	g - hour, 12-hour format without leading zeros; i.e. "1" to "12"
    -	G - hour, 24-hour format without leading zeros; i.e. "0" to "23"
    -	h - hour, 12-hour format; i.e. "01" to "12"
    -	H - hour, 24-hour format; i.e. "00" to "23"
    -	i - minutes; i.e. "00" to "59"
    -	j - day of the month without leading zeros; i.e. "1" to "31"
    -	l (lowercase 'L') - day of the week, textual, long; e.g. "Friday"
    -	L - boolean for whether it is a leap year; i.e. "0" or "1"
    -	m - month; i.e. "01" to "12"
    -	M - month, textual, 3 letters; e.g. "Jan"
    -	n - month without leading zeros; i.e. "1" to "12"
    -	O - Difference to Greenwich time in hours; e.g. "+0200"
    -	Q - Quarter, as in 1, 2, 3, 4
    -	r - RFC 2822 formatted date; e.g. "Thu, 21 Dec 2000 16:01:07 +0200"
    -	s - seconds; i.e. "00" to "59"
    -	S - English ordinal suffix for the day of the month, 2 characters;
    -	   			i.e. "st", "nd", "rd" or "th"
    -	t - number of days in the given month; i.e. "28" to "31"
    -	T - Timezone setting of this machine; e.g. "EST" or "MDT"
    -	U - seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
    -	w - day of the week, numeric, i.e. "0" (Sunday) to "6" (Saturday)
    -	Y - year, 4 digits; e.g. "1999"
    -	y - year, 2 digits; e.g. "99"
    -	z - day of the year; i.e. "0" to "365"
    -	Z - timezone offset in seconds (i.e. "-43200" to "43200").
    -	   			The offset for timezones west of UTC is always negative,
    -				and for those east of UTC is always positive.
    -
    - -Unsupported: -
    -	B - Swatch Internet time
    -	I (capital i) - "1" if Daylight Savings Time, "0" otherwise.
    -	W - ISO-8601 week number of year, weeks starting on Monday
    -
    -
    - - -** FUNCTION adodb_date2($fmt, $isoDateString = false) -Same as adodb_date, but 2nd parameter accepts iso date, eg. - - adodb_date2('d-M-Y H:i','2003-12-25 13:01:34'); - - -** FUNCTION adodb_gmdate($fmt, $timestamp = false) - -Convert a timestamp to a formatted GMT date. If $timestamp is not defined, the -current timestamp is used. Unlike the function date(), it supports dates -outside the 1901 to 2038 range. - - -** FUNCTION adodb_mktime($hr, $min, $sec[, $month, $day, $year]) - -Converts a local date to a unix timestamp. Unlike the function mktime(), it supports -dates outside the 1901 to 2038 range. All parameters are optional. - - -** FUNCTION adodb_gmmktime($hr, $min, $sec [, $month, $day, $year]) - -Converts a gmt date to a unix timestamp. Unlike the function gmmktime(), it supports -dates outside the 1901 to 2038 range. Differs from gmmktime() in that all parameters -are currently compulsory. - -** FUNCTION adodb_gmstrftime($fmt, $timestamp = false) -Convert a timestamp to a formatted GMT date. - -** FUNCTION adodb_strftime($fmt, $timestamp = false) - -Convert a timestamp to a formatted local date. Internally converts $fmt into -adodb_date format, then echo result. - -For best results, you can define the local date format yourself. Define a global -variable $ADODB_DATE_LOCALE which is an array, 1st element is date format using -adodb_date syntax, and 2nd element is the time format, also in adodb_date syntax. - - eg. $ADODB_DATE_LOCALE = array('d/m/Y','H:i:s'); - - Supported format codes: - -
    -	%a - abbreviated weekday name according to the current locale
    -	%A - full weekday name according to the current locale
    -	%b - abbreviated month name according to the current locale
    -	%B - full month name according to the current locale
    -	%c - preferred date and time representation for the current locale
    -	%d - day of the month as a decimal number (range 01 to 31)
    -	%D - same as %m/%d/%y
    -	%e - day of the month as a decimal number, a single digit is preceded by a space (range ' 1' to '31')
    -	%h - same as %b
    -	%H - hour as a decimal number using a 24-hour clock (range 00 to 23)
    -	%I - hour as a decimal number using a 12-hour clock (range 01 to 12)
    -	%m - month as a decimal number (range 01 to 12)
    -	%M - minute as a decimal number
    -	%n - newline character
    -	%p - either `am' or `pm' according to the given time value, or the corresponding strings for the current locale
    -	%r - time in a.m. and p.m. notation
    -	%R - time in 24 hour notation
    -	%S - second as a decimal number
    -	%t - tab character
    -	%T - current time, equal to %H:%M:%S
    -	%x - preferred date representation for the current locale without the time
    -	%X - preferred time representation for the current locale without the date
    -	%y - year as a decimal number without a century (range 00 to 99)
    -	%Y - year as a decimal number including the century
    -	%Z - time zone or name or abbreviation
    -	%% - a literal `%' character
    -
    - - Unsupported codes: -
    -	%C - century number (the year divided by 100 and truncated to an integer, range 00 to 99)
    -	%g - like %G, but without the century.
    -	%G - The 4-digit year corresponding to the ISO week number (see %V).
    -	     This has the same format and value as %Y, except that if the ISO week number belongs
    -		 to the previous or next year, that year is used instead.
    -	%j - day of the year as a decimal number (range 001 to 366)
    -	%u - weekday as a decimal number [1,7], with 1 representing Monday
    -	%U - week number of the current year as a decimal number, starting
    -	    with the first Sunday as the first day of the first week
    -	%V - The ISO 8601:1988 week number of the current year as a decimal number,
    -	     range 01 to 53, where week 1 is the first week that has at least 4 days in the
    -		 current year, and with Monday as the first day of the week. (Use %G or %g for
    -		 the year component that corresponds to the week number for the specified timestamp.)
    -	%w - day of the week as a decimal, Sunday being 0
    -	%W - week number of the current year as a decimal number, starting with the
    -	     first Monday as the first day of the first week
    -
    - -============================================================================= - -NOTES - -Useful url for generating test timestamps: - http://www.4webhelp.net/us/timestamp.php - -Possible future optimizations include - -a. Using an algorithm similar to Plauger's in "The Standard C Library" -(page 428, xttotm.c _Ttotm() function). Plauger's algorithm will not -work outside 32-bit signed range, so i decided not to implement it. - -b. Implement daylight savings, which looks awfully complicated, see - http://webexhibits.org/daylightsaving/ - - -CHANGELOG -- 16 Jan 2011 0.36 -Added adodb_time() which returns current time. If > 2038, will return as float - -- 7 Feb 2011 0.35 -Changed adodb_date to be symmetric with adodb_mktime. See $jan1_71. fix for bc. - -- 13 July 2010 0.34 -Changed adodb_get_gm_diff to use DateTimeZone(). - -- 11 Feb 2008 0.33 -* Bug in 0.32 fix for hour handling. Fixed. - -- 1 Feb 2008 0.32 -* Now adodb_mktime(0,0,0,12+$m,20,2040) works properly. - -- 10 Jan 2008 0.31 -* Now adodb_mktime(0,0,0,24,1,2037) works correctly. - -- 15 July 2007 0.30 -Added PHP 5.2.0 compatability fixes. - * gmtime behaviour for 1970 has changed. We use the actual date if it is between 1970 to 2038 to get the - * timezone, otherwise we use the current year as the baseline to retrieve the timezone. - * Also the timezone's in php 5.2.* support historical data better, eg. if timezone today was +8, but - in 1970 it was +7:30, then php 5.2 return +7:30, while this library will use +8. - * - -- 19 March 2006 0.24 -Changed strftime() locale detection, because some locales prepend the day of week to the date when %c is used. - -- 10 Feb 2006 0.23 -PHP5 compat: when we detect PHP5, the RFC2822 format for gmt 0000hrs is changed from -0000 to +0000. - In PHP4, we will still use -0000 for 100% compat with PHP4. - -- 08 Sept 2005 0.22 -In adodb_date2(), $is_gmt not supported properly. Fixed. - -- 18 July 2005 0.21 -In PHP 4.3.11, the 'r' format has changed. Leading 0 in day is added. Changed for compat. -Added support for negative months in adodb_mktime(). - -- 24 Feb 2005 0.20 -Added limited strftime/gmstrftime support. x10 improvement in performance of adodb_date(). - -- 21 Dec 2004 0.17 -In adodb_getdate(), the timestamp was accidentally converted to gmt when $is_gmt is false. -Also adodb_mktime(0,0,0) did not work properly. Both fixed thx Mauro. - -- 17 Nov 2004 0.16 -Removed intval typecast in adodb_mktime() for secs, allowing: - adodb_mktime(0,0,0 + 2236672153,1,1,1934); -Suggested by Ryan. - -- 18 July 2004 0.15 -All params in adodb_mktime were formerly compulsory. Now only the hour, min, secs is compulsory. -This brings it more in line with mktime (still not identical). - -- 23 June 2004 0.14 - -Allow you to define your own daylights savings function, adodb_daylight_sv. -If the function is defined (somewhere in an include), then you can correct for daylights savings. - -In this example, we apply daylights savings in June or July, adding one hour. This is extremely -unrealistic as it does not take into account time-zone, geographic location, current year. - -function adodb_daylight_sv(&$arr, $is_gmt) -{ - if ($is_gmt) return; - $m = $arr['mon']; - if ($m == 6 || $m == 7) $arr['hours'] += 1; -} - -This is only called by adodb_date() and not by adodb_mktime(). - -The format of $arr is -Array ( - [seconds] => 0 - [minutes] => 0 - [hours] => 0 - [mday] => 1 # day of month, eg 1st day of the month - [mon] => 2 # month (eg. Feb) - [year] => 2102 - [yday] => 31 # days in current year - [leap] => # true if leap year - [ndays] => 28 # no of days in current month - ) - - -- 28 Apr 2004 0.13 -Fixed adodb_date to properly support $is_gmt. Thx to Dimitar Angelov. - -- 20 Mar 2004 0.12 -Fixed month calculation error in adodb_date. 2102-June-01 appeared as 2102-May-32. - -- 26 Oct 2003 0.11 -Because of daylight savings problems (some systems apply daylight savings to -January!!!), changed adodb_get_gmt_diff() to ignore daylight savings. - -- 9 Aug 2003 0.10 -Fixed bug with dates after 2038. -See http://phplens.com/lens/lensforum/msgs.php?id=6980 - -- 1 July 2003 0.09 -Added support for Q (Quarter). -Added adodb_date2(), which accepts ISO date in 2nd param - -- 3 March 2003 0.08 -Added support for 'S' adodb_date() format char. Added constant ADODB_ALLOW_NEGATIVE_TS -if you want PHP to handle negative timestamps between 1901 to 1969. - -- 27 Feb 2003 0.07 -All negative numbers handled by adodb now because of RH 7.3+ problems. -See http://bugs.php.net/bug.php?id=20048&edit=2 - -- 4 Feb 2003 0.06 -Fixed a typo, 1852 changed to 1582! This means that pre-1852 dates -are now correctly handled. - -- 29 Jan 2003 0.05 - -Leap year checking differs under Julian calendar (pre 1582). Also -leap year code optimized by checking for most common case first. - -We also handle month overflow correctly in mktime (eg month set to 13). - -Day overflow for less than one month's days is supported. - -- 28 Jan 2003 0.04 - -Gregorian correction handled. In PHP5, we might throw an error if -mktime uses invalid dates around 5-14 Oct 1582. Released with ADOdb 3.10. -Added limbo 5-14 Oct 1582 check, when we set to 15 Oct 1582. - -- 27 Jan 2003 0.03 - -Fixed some more month problems due to gmt issues. Added constant ADODB_DATE_VERSION. -Fixed calculation of days since start of year for <1970. - -- 27 Jan 2003 0.02 - -Changed _adodb_getdate() to inline leap year checking for better performance. -Fixed problem with time-zones west of GMT +0000. - -- 24 Jan 2003 0.01 - -First implementation. -*/ - - -/* Initialization */ - -/* - Version Number -*/ -define('ADODB_DATE_VERSION',0.35); - -$ADODB_DATETIME_CLASS = (PHP_VERSION >= 5.2); - -/* - This code was originally for windows. But apparently this problem happens - also with Linux, RH 7.3 and later! - - glibc-2.2.5-34 and greater has been changed to return -1 for dates < - 1970. This used to work. The problem exists with RedHat 7.3 and 8.0 - echo (mktime(0, 0, 0, 1, 1, 1960)); // prints -1 - - References: - http://bugs.php.net/bug.php?id=20048&edit=2 - http://lists.debian.org/debian-glibc/2002/debian-glibc-200205/msg00010.html -*/ - -if (!defined('ADODB_ALLOW_NEGATIVE_TS')) define('ADODB_NO_NEGATIVE_TS',1); - -function adodb_date_test_date($y1,$m,$d=13) -{ - $h = round(rand()% 24); - $t = adodb_mktime($h,0,0,$m,$d,$y1); - $rez = adodb_date('Y-n-j H:i:s',$t); - if ($h == 0) $h = '00'; - else if ($h < 10) $h = '0'.$h; - if ("$y1-$m-$d $h:00:00" != $rez) { - print "$y1 error, expected=$y1-$m-$d $h:00:00, adodb=$rez
    "; - return false; - } - return true; -} - -function adodb_date_test_strftime($fmt) -{ - $s1 = strftime($fmt); - $s2 = adodb_strftime($fmt); - - if ($s1 == $s2) return true; - - echo "error for $fmt, strftime=$s1, adodb=$s2
    "; - return false; -} - -/** - Test Suite -*/ -function adodb_date_test() -{ - - for ($m=-24; $m<=24; $m++) - echo "$m :",adodb_date('d-m-Y',adodb_mktime(0,0,0,1+$m,20,2040)),"
    "; - - error_reporting(E_ALL); - print "

    Testing adodb_date and adodb_mktime. version=".ADODB_DATE_VERSION.' PHP='.PHP_VERSION."

    "; - @set_time_limit(0); - $fail = false; - - // This flag disables calling of PHP native functions, so we can properly test the code - if (!defined('ADODB_TEST_DATES')) define('ADODB_TEST_DATES',1); - - $t = time(); - - - $fmt = 'Y-m-d H:i:s'; - echo '
    ';
    -	echo 'adodb: ',adodb_date($fmt,$t),'
    '; - echo 'php : ',date($fmt,$t),'
    '; - echo '
    '; - - adodb_date_test_strftime('%Y %m %x %X'); - adodb_date_test_strftime("%A %d %B %Y"); - adodb_date_test_strftime("%H %M S"); - - $t = adodb_mktime(0,0,0); - if (!(adodb_date('Y-m-d') == date('Y-m-d'))) print 'Error in '.adodb_mktime(0,0,0).'
    '; - - $t = adodb_mktime(0,0,0,6,1,2102); - if (!(adodb_date('Y-m-d',$t) == '2102-06-01')) print 'Error in '.adodb_date('Y-m-d',$t).'
    '; - - $t = adodb_mktime(0,0,0,2,1,2102); - if (!(adodb_date('Y-m-d',$t) == '2102-02-01')) print 'Error in '.adodb_date('Y-m-d',$t).'
    '; - - - print "

    Testing gregorian <=> julian conversion

    "; - $t = adodb_mktime(0,0,0,10,11,1492); - //http://www.holidayorigins.com/html/columbus_day.html - Friday check - if (!(adodb_date('D Y-m-d',$t) == 'Fri 1492-10-11')) print 'Error in Columbus landing
    '; - - $t = adodb_mktime(0,0,0,2,29,1500); - if (!(adodb_date('Y-m-d',$t) == '1500-02-29')) print 'Error in julian leap years
    '; - - $t = adodb_mktime(0,0,0,2,29,1700); - if (!(adodb_date('Y-m-d',$t) == '1700-03-01')) print 'Error in gregorian leap years
    '; - - print adodb_mktime(0,0,0,10,4,1582).' '; - print adodb_mktime(0,0,0,10,15,1582); - $diff = (adodb_mktime(0,0,0,10,15,1582) - adodb_mktime(0,0,0,10,4,1582)); - if ($diff != 3600*24) print " Error in gregorian correction = ".($diff/3600/24)." days
    "; - - print " 15 Oct 1582, Fri=".(adodb_dow(1582,10,15) == 5 ? 'Fri' : 'Error')."
    "; - print " 4 Oct 1582, Thu=".(adodb_dow(1582,10,4) == 4 ? 'Thu' : 'Error')."
    "; - - print "

    Testing overflow

    "; - - $t = adodb_mktime(0,0,0,3,33,1965); - if (!(adodb_date('Y-m-d',$t) == '1965-04-02')) print 'Error in day overflow 1
    '; - $t = adodb_mktime(0,0,0,4,33,1971); - if (!(adodb_date('Y-m-d',$t) == '1971-05-03')) print 'Error in day overflow 2
    '; - $t = adodb_mktime(0,0,0,1,60,1965); - if (!(adodb_date('Y-m-d',$t) == '1965-03-01')) print 'Error in day overflow 3 '.adodb_date('Y-m-d',$t).'
    '; - $t = adodb_mktime(0,0,0,12,32,1965); - if (!(adodb_date('Y-m-d',$t) == '1966-01-01')) print 'Error in day overflow 4 '.adodb_date('Y-m-d',$t).'
    '; - $t = adodb_mktime(0,0,0,12,63,1965); - if (!(adodb_date('Y-m-d',$t) == '1966-02-01')) print 'Error in day overflow 5 '.adodb_date('Y-m-d',$t).'
    '; - $t = adodb_mktime(0,0,0,13,3,1965); - if (!(adodb_date('Y-m-d',$t) == '1966-01-03')) print 'Error in mth overflow 1
    '; - - print "Testing 2-digit => 4-digit year conversion

    "; - if (adodb_year_digit_check(00) != 2000) print "Err 2-digit 2000
    "; - if (adodb_year_digit_check(10) != 2010) print "Err 2-digit 2010
    "; - if (adodb_year_digit_check(20) != 2020) print "Err 2-digit 2020
    "; - if (adodb_year_digit_check(30) != 2030) print "Err 2-digit 2030
    "; - if (adodb_year_digit_check(40) != 1940) print "Err 2-digit 1940
    "; - if (adodb_year_digit_check(50) != 1950) print "Err 2-digit 1950
    "; - if (adodb_year_digit_check(90) != 1990) print "Err 2-digit 1990
    "; - - // Test string formating - print "

    Testing date formating

    "; - - $fmt = '\d\a\t\e T Y-m-d H:i:s a A d D F g G h H i j l L m M n O \R\F\C2822 r s t U w y Y z Z 2003'; - $s1 = date($fmt,0); - $s2 = adodb_date($fmt,0); - if ($s1 != $s2) { - print " date() 0 failed
    $s1
    $s2
    "; - } - flush(); - for ($i=100; --$i > 0; ) { - - $ts = 3600.0*((rand()%60000)+(rand()%60000))+(rand()%60000); - $s1 = date($fmt,$ts); - $s2 = adodb_date($fmt,$ts); - //print "$s1
    $s2

    "; - $pos = strcmp($s1,$s2); - - if (($s1) != ($s2)) { - for ($j=0,$k=strlen($s1); $j < $k; $j++) { - if ($s1[$j] != $s2[$j]) { - print substr($s1,$j).' '; - break; - } - } - print "Error date(): $ts

    -  \"$s1\" (date len=".strlen($s1).")
    -  \"$s2\" (adodb_date len=".strlen($s2).")

    "; - $fail = true; - } - - $a1 = getdate($ts); - $a2 = adodb_getdate($ts); - $rez = array_diff($a1,$a2); - if (sizeof($rez)>0) { - print "Error getdate() $ts
    "; - print_r($a1); - print "
    "; - print_r($a2); - print "

    "; - $fail = true; - } - } - - // Test generation of dates outside 1901-2038 - print "

    Testing random dates between 100 and 4000

    "; - adodb_date_test_date(100,1); - for ($i=100; --$i >= 0;) { - $y1 = 100+rand(0,1970-100); - $m = rand(1,12); - adodb_date_test_date($y1,$m); - - $y1 = 3000-rand(0,3000-1970); - adodb_date_test_date($y1,$m); - } - print '

    '; - $start = 1960+rand(0,10); - $yrs = 12; - $i = 365.25*86400*($start-1970); - $offset = 36000+rand(10000,60000); - $max = 365*$yrs*86400; - $lastyear = 0; - - // we generate a timestamp, convert it to a date, and convert it back to a timestamp - // and check if the roundtrip broke the original timestamp value. - print "Testing $start to ".($start+$yrs).", or $max seconds, offset=$offset: "; - $cnt = 0; - for ($max += $i; $i < $max; $i += $offset) { - $ret = adodb_date('m,d,Y,H,i,s',$i); - $arr = explode(',',$ret); - if ($lastyear != $arr[2]) { - $lastyear = $arr[2]; - print " $lastyear "; - flush(); - } - $newi = adodb_mktime($arr[3],$arr[4],$arr[5],$arr[0],$arr[1],$arr[2]); - if ($i != $newi) { - print "Error at $i, adodb_mktime returned $newi ($ret)"; - $fail = true; - break; - } - $cnt += 1; - } - echo "Tested $cnt dates
    "; - if (!$fail) print "

    Passed !

    "; - else print "

    Failed :-(

    "; -} - -function adodb_time() -{ - $d = new DateTime(); - return $d->format('U'); -} - -/** - Returns day of week, 0 = Sunday,... 6=Saturday. - Algorithm from PEAR::Date_Calc -*/ -function adodb_dow($year, $month, $day) -{ -/* -Pope Gregory removed 10 days - October 5 to October 14 - from the year 1582 and -proclaimed that from that time onwards 3 days would be dropped from the calendar -every 400 years. - -Thursday, October 4, 1582 (Julian) was followed immediately by Friday, October 15, 1582 (Gregorian). -*/ - if ($year <= 1582) { - if ($year < 1582 || - ($year == 1582 && ($month < 10 || ($month == 10 && $day < 15)))) $greg_correction = 3; - else - $greg_correction = 0; - } else - $greg_correction = 0; - - if($month > 2) - $month -= 2; - else { - $month += 10; - $year--; - } - - $day = floor((13 * $month - 1) / 5) + - $day + ($year % 100) + - floor(($year % 100) / 4) + - floor(($year / 100) / 4) - 2 * - floor($year / 100) + 77 + $greg_correction; - - return $day - 7 * floor($day / 7); -} - - -/** - Checks for leap year, returns true if it is. No 2-digit year check. Also - handles julian calendar correctly. -*/ -function _adodb_is_leap_year($year) -{ - if ($year % 4 != 0) return false; - - if ($year % 400 == 0) { - return true; - // if gregorian calendar (>1582), century not-divisible by 400 is not leap - } else if ($year > 1582 && $year % 100 == 0 ) { - return false; - } - - return true; -} - - -/** - checks for leap year, returns true if it is. Has 2-digit year check -*/ -function adodb_is_leap_year($year) -{ - return _adodb_is_leap_year(adodb_year_digit_check($year)); -} - -/** - Fix 2-digit years. Works for any century. - Assumes that if 2-digit is more than 30 years in future, then previous century. -*/ -function adodb_year_digit_check($y) -{ - if ($y < 100) { - - $yr = (integer) date("Y"); - $century = (integer) ($yr /100); - - if ($yr%100 > 50) { - $c1 = $century + 1; - $c0 = $century; - } else { - $c1 = $century; - $c0 = $century - 1; - } - $c1 *= 100; - // if 2-digit year is less than 30 years in future, set it to this century - // otherwise if more than 30 years in future, then we set 2-digit year to the prev century. - if (($y + $c1) < $yr+30) $y = $y + $c1; - else $y = $y + $c0*100; - } - return $y; -} - -function adodb_get_gmt_diff_ts($ts) -{ - if (0 <= $ts && $ts <= 0x7FFFFFFF) { // check if number in 32-bit signed range) { - $arr = getdate($ts); - $y = $arr['year']; - $m = $arr['mon']; - $d = $arr['mday']; - return adodb_get_gmt_diff($y,$m,$d); - } else { - return adodb_get_gmt_diff(false,false,false); - } - -} - -/** - get local time zone offset from GMT. Does not handle historical timezones before 1970. -*/ -function adodb_get_gmt_diff($y,$m,$d) -{ -static $TZ,$tzo; -global $ADODB_DATETIME_CLASS; - - if (!defined('ADODB_TEST_DATES')) $y = false; - else if ($y < 1970 || $y >= 2038) $y = false; - - if ($ADODB_DATETIME_CLASS && $y !== false) { - $dt = new DateTime(); - $dt->setISODate($y,$m,$d); - if (empty($tzo)) { - $tzo = new DateTimeZone(date_default_timezone_get()); - # $tzt = timezone_transitions_get( $tzo ); - } - return -$tzo->getOffset($dt); - } else { - if (isset($TZ)) return $TZ; - $y = date('Y'); - /* - if (function_exists('date_default_timezone_get') && function_exists('timezone_offset_get')) { - $tzonename = date_default_timezone_get(); - if ($tzonename) { - $tobj = new DateTimeZone($tzonename); - $TZ = -timezone_offset_get($tobj,new DateTime("now",$tzo)); - } - } - */ - if (empty($TZ)) $TZ = mktime(0,0,0,12,2,$y) - gmmktime(0,0,0,12,2,$y); - } - return $TZ; -} - -/** - Returns an array with date info. -*/ -function adodb_getdate($d=false,$fast=false) -{ - if ($d === false) return getdate(); - if (!defined('ADODB_TEST_DATES')) { - if ((abs($d) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range - if (!defined('ADODB_NO_NEGATIVE_TS') || $d >= 0) // if windows, must be +ve integer - return @getdate($d); - } - } - return _adodb_getdate($d); -} - -/* -// generate $YRS table for _adodb_getdate() -function adodb_date_gentable($out=true) -{ - - for ($i=1970; $i >= 1600; $i-=10) { - $s = adodb_gmmktime(0,0,0,1,1,$i); - echo "$i => $s,
    "; - } -} -adodb_date_gentable(); - -for ($i=1970; $i > 1500; $i--) { - -echo "
    $i "; - adodb_date_test_date($i,1,1); -} - -*/ - - -$_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31); -$_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31); - -function adodb_validdate($y,$m,$d) -{ -global $_month_table_normal,$_month_table_leaf; - - if (_adodb_is_leap_year($y)) $marr = $_month_table_leaf; - else $marr = $_month_table_normal; - - if ($m > 12 || $m < 1) return false; - - if ($d > 31 || $d < 1) return false; - - if ($marr[$m] < $d) return false; - - if ($y < 1000 && $y > 3000) return false; - - return true; -} - -/** - Low-level function that returns the getdate() array. We have a special - $fast flag, which if set to true, will return fewer array values, - and is much faster as it does not calculate dow, etc. -*/ -function _adodb_getdate($origd=false,$fast=false,$is_gmt=false) -{ -static $YRS; -global $_month_table_normal,$_month_table_leaf; - - $d = $origd - ($is_gmt ? 0 : adodb_get_gmt_diff_ts($origd)); - $_day_power = 86400; - $_hour_power = 3600; - $_min_power = 60; - - if ($d < -12219321600) $d -= 86400*10; // if 15 Oct 1582 or earlier, gregorian correction - - $_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31); - $_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31); - - $d366 = $_day_power * 366; - $d365 = $_day_power * 365; - - if ($d < 0) { - - if (empty($YRS)) $YRS = array( - 1970 => 0, - 1960 => -315619200, - 1950 => -631152000, - 1940 => -946771200, - 1930 => -1262304000, - 1920 => -1577923200, - 1910 => -1893456000, - 1900 => -2208988800, - 1890 => -2524521600, - 1880 => -2840140800, - 1870 => -3155673600, - 1860 => -3471292800, - 1850 => -3786825600, - 1840 => -4102444800, - 1830 => -4417977600, - 1820 => -4733596800, - 1810 => -5049129600, - 1800 => -5364662400, - 1790 => -5680195200, - 1780 => -5995814400, - 1770 => -6311347200, - 1760 => -6626966400, - 1750 => -6942499200, - 1740 => -7258118400, - 1730 => -7573651200, - 1720 => -7889270400, - 1710 => -8204803200, - 1700 => -8520336000, - 1690 => -8835868800, - 1680 => -9151488000, - 1670 => -9467020800, - 1660 => -9782640000, - 1650 => -10098172800, - 1640 => -10413792000, - 1630 => -10729324800, - 1620 => -11044944000, - 1610 => -11360476800, - 1600 => -11676096000); - - if ($is_gmt) $origd = $d; - // The valid range of a 32bit signed timestamp is typically from - // Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT - // - - # old algorithm iterates through all years. new algorithm does it in - # 10 year blocks - - /* - # old algo - for ($a = 1970 ; --$a >= 0;) { - $lastd = $d; - - if ($leaf = _adodb_is_leap_year($a)) $d += $d366; - else $d += $d365; - - if ($d >= 0) { - $year = $a; - break; - } - } - */ - - $lastsecs = 0; - $lastyear = 1970; - foreach($YRS as $year => $secs) { - if ($d >= $secs) { - $a = $lastyear; - break; - } - $lastsecs = $secs; - $lastyear = $year; - } - - $d -= $lastsecs; - if (!isset($a)) $a = $lastyear; - - //echo ' yr=',$a,' ', $d,'.'; - - for (; --$a >= 0;) { - $lastd = $d; - - if ($leaf = _adodb_is_leap_year($a)) $d += $d366; - else $d += $d365; - - if ($d >= 0) { - $year = $a; - break; - } - } - /**/ - - $secsInYear = 86400 * ($leaf ? 366 : 365) + $lastd; - - $d = $lastd; - $mtab = ($leaf) ? $_month_table_leaf : $_month_table_normal; - for ($a = 13 ; --$a > 0;) { - $lastd = $d; - $d += $mtab[$a] * $_day_power; - if ($d >= 0) { - $month = $a; - $ndays = $mtab[$a]; - break; - } - } - - $d = $lastd; - $day = $ndays + ceil(($d+1) / ($_day_power)); - - $d += ($ndays - $day+1)* $_day_power; - $hour = floor($d/$_hour_power); - - } else { - for ($a = 1970 ;; $a++) { - $lastd = $d; - - if ($leaf = _adodb_is_leap_year($a)) $d -= $d366; - else $d -= $d365; - if ($d < 0) { - $year = $a; - break; - } - } - $secsInYear = $lastd; - $d = $lastd; - $mtab = ($leaf) ? $_month_table_leaf : $_month_table_normal; - for ($a = 1 ; $a <= 12; $a++) { - $lastd = $d; - $d -= $mtab[$a] * $_day_power; - if ($d < 0) { - $month = $a; - $ndays = $mtab[$a]; - break; - } - } - $d = $lastd; - $day = ceil(($d+1) / $_day_power); - $d = $d - ($day-1) * $_day_power; - $hour = floor($d /$_hour_power); - } - - $d -= $hour * $_hour_power; - $min = floor($d/$_min_power); - $secs = $d - $min * $_min_power; - if ($fast) { - return array( - 'seconds' => $secs, - 'minutes' => $min, - 'hours' => $hour, - 'mday' => $day, - 'mon' => $month, - 'year' => $year, - 'yday' => floor($secsInYear/$_day_power), - 'leap' => $leaf, - 'ndays' => $ndays - ); - } - - - $dow = adodb_dow($year,$month,$day); - - return array( - 'seconds' => $secs, - 'minutes' => $min, - 'hours' => $hour, - 'mday' => $day, - 'wday' => $dow, - 'mon' => $month, - 'year' => $year, - 'yday' => floor($secsInYear/$_day_power), - 'weekday' => gmdate('l',$_day_power*(3+$dow)), - 'month' => gmdate('F',mktime(0,0,0,$month,2,1971)), - 0 => $origd - ); -} -/* - if ($isphp5) - $dates .= sprintf('%s%04d',($gmt<=0)?'+':'-',abs($gmt)/36); - else - $dates .= sprintf('%s%04d',($gmt<0)?'+':'-',abs($gmt)/36); - break;*/ -function adodb_tz_offset($gmt,$isphp5) -{ - $zhrs = abs($gmt)/3600; - $hrs = floor($zhrs); - if ($isphp5) - return sprintf('%s%02d%02d',($gmt<=0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); - else - return sprintf('%s%02d%02d',($gmt<0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); -} - - -function adodb_gmdate($fmt,$d=false) -{ - return adodb_date($fmt,$d,true); -} - -// accepts unix timestamp and iso date format in $d -function adodb_date2($fmt, $d=false, $is_gmt=false) -{ - if ($d !== false) { - if (!preg_match( - "|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})[ -]?(([0-9]{1,2}):?([0-9]{1,2}):?([0-9\.]{1,4}))?|", - ($d), $rr)) return adodb_date($fmt,false,$is_gmt); - - if ($rr[1] <= 100 && $rr[2]<= 1) return adodb_date($fmt,false,$is_gmt); - - // h-m-s-MM-DD-YY - if (!isset($rr[5])) $d = adodb_mktime(0,0,0,$rr[2],$rr[3],$rr[1],false,$is_gmt); - else $d = @adodb_mktime($rr[5],$rr[6],$rr[7],$rr[2],$rr[3],$rr[1],false,$is_gmt); - } - - return adodb_date($fmt,$d,$is_gmt); -} - - -/** - Return formatted date based on timestamp $d -*/ -function adodb_date($fmt,$d=false,$is_gmt=false) -{ -static $daylight; -global $ADODB_DATETIME_CLASS; -static $jan1_1971; - - - if (!isset($daylight)) { - $daylight = function_exists('adodb_daylight_sv'); - if (empty($jan1_1971)) $jan1_1971 = mktime(0,0,0,1,1,1971); // we only use date() when > 1970 as adodb_mktime() only uses mktime() when > 1970 - } - - if ($d === false) return ($is_gmt)? @gmdate($fmt): @date($fmt); - if (!defined('ADODB_TEST_DATES')) { - if ((abs($d) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range - - if (!defined('ADODB_NO_NEGATIVE_TS') || $d >= $jan1_1971) // if windows, must be +ve integer - return ($is_gmt)? @gmdate($fmt,$d): @date($fmt,$d); - - } - } - $_day_power = 86400; - - $arr = _adodb_getdate($d,true,$is_gmt); - - if ($daylight) adodb_daylight_sv($arr, $is_gmt); - - $year = $arr['year']; - $month = $arr['mon']; - $day = $arr['mday']; - $hour = $arr['hours']; - $min = $arr['minutes']; - $secs = $arr['seconds']; - - $max = strlen($fmt); - $dates = ''; - - $isphp5 = PHP_VERSION >= 5; - - /* - at this point, we have the following integer vars to manipulate: - $year, $month, $day, $hour, $min, $secs - */ - for ($i=0; $i < $max; $i++) { - switch($fmt[$i]) { - case 'e': - $dates .= date('e'); - break; - case 'T': - if ($ADODB_DATETIME_CLASS) { - $dt = new DateTime(); - $dt->SetDate($year,$month,$day); - $dates .= $dt->Format('T'); - } else - $dates .= date('T'); - break; - // YEAR - case 'L': $dates .= $arr['leap'] ? '1' : '0'; break; - case 'r': // Thu, 21 Dec 2000 16:01:07 +0200 - - // 4.3.11 uses '04 Jun 2004' - // 4.3.8 uses ' 4 Jun 2004' - $dates .= gmdate('D',$_day_power*(3+adodb_dow($year,$month,$day))).', ' - . ($day<10?'0'.$day:$day) . ' '.date('M',mktime(0,0,0,$month,2,1971)).' '.$year.' '; - - if ($hour < 10) $dates .= '0'.$hour; else $dates .= $hour; - - if ($min < 10) $dates .= ':0'.$min; else $dates .= ':'.$min; - - if ($secs < 10) $dates .= ':0'.$secs; else $dates .= ':'.$secs; - - $gmt = adodb_get_gmt_diff($year,$month,$day); - - $dates .= ' '.adodb_tz_offset($gmt,$isphp5); - break; - - case 'Y': $dates .= $year; break; - case 'y': $dates .= substr($year,strlen($year)-2,2); break; - // MONTH - case 'm': if ($month<10) $dates .= '0'.$month; else $dates .= $month; break; - case 'Q': $dates .= ($month+3)>>2; break; - case 'n': $dates .= $month; break; - case 'M': $dates .= date('M',mktime(0,0,0,$month,2,1971)); break; - case 'F': $dates .= date('F',mktime(0,0,0,$month,2,1971)); break; - // DAY - case 't': $dates .= $arr['ndays']; break; - case 'z': $dates .= $arr['yday']; break; - case 'w': $dates .= adodb_dow($year,$month,$day); break; - case 'l': $dates .= gmdate('l',$_day_power*(3+adodb_dow($year,$month,$day))); break; - case 'D': $dates .= gmdate('D',$_day_power*(3+adodb_dow($year,$month,$day))); break; - case 'j': $dates .= $day; break; - case 'd': if ($day<10) $dates .= '0'.$day; else $dates .= $day; break; - case 'S': - $d10 = $day % 10; - if ($d10 == 1) $dates .= 'st'; - else if ($d10 == 2 && $day != 12) $dates .= 'nd'; - else if ($d10 == 3) $dates .= 'rd'; - else $dates .= 'th'; - break; - - // HOUR - case 'Z': - $dates .= ($is_gmt) ? 0 : -adodb_get_gmt_diff($year,$month,$day); break; - case 'O': - $gmt = ($is_gmt) ? 0 : adodb_get_gmt_diff($year,$month,$day); - - $dates .= adodb_tz_offset($gmt,$isphp5); - break; - - case 'H': - if ($hour < 10) $dates .= '0'.$hour; - else $dates .= $hour; - break; - case 'h': - if ($hour > 12) $hh = $hour - 12; - else { - if ($hour == 0) $hh = '12'; - else $hh = $hour; - } - - if ($hh < 10) $dates .= '0'.$hh; - else $dates .= $hh; - break; - - case 'G': - $dates .= $hour; - break; - - case 'g': - if ($hour > 12) $hh = $hour - 12; - else { - if ($hour == 0) $hh = '12'; - else $hh = $hour; - } - $dates .= $hh; - break; - // MINUTES - case 'i': if ($min < 10) $dates .= '0'.$min; else $dates .= $min; break; - // SECONDS - case 'U': $dates .= $d; break; - case 's': if ($secs < 10) $dates .= '0'.$secs; else $dates .= $secs; break; - // AM/PM - // Note 00:00 to 11:59 is AM, while 12:00 to 23:59 is PM - case 'a': - if ($hour>=12) $dates .= 'pm'; - else $dates .= 'am'; - break; - case 'A': - if ($hour>=12) $dates .= 'PM'; - else $dates .= 'AM'; - break; - default: - $dates .= $fmt[$i]; break; - // ESCAPE - case "\\": - $i++; - if ($i < $max) $dates .= $fmt[$i]; - break; - } - } - return $dates; -} - -/** - Returns a timestamp given a GMT/UTC time. - Note that $is_dst is not implemented and is ignored. -*/ -function adodb_gmmktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=false) -{ - return adodb_mktime($hr,$min,$sec,$mon,$day,$year,$is_dst,true); -} - -/** - Return a timestamp given a local time. Originally by jackbbs. - Note that $is_dst is not implemented and is ignored. - - Not a very fast algorithm - O(n) operation. Could be optimized to O(1). -*/ -function adodb_mktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=false,$is_gmt=false) -{ - if (!defined('ADODB_TEST_DATES')) { - - if ($mon === false) { - return $is_gmt? @gmmktime($hr,$min,$sec): @mktime($hr,$min,$sec); - } - - // for windows, we don't check 1970 because with timezone differences, - // 1 Jan 1970 could generate negative timestamp, which is illegal - $usephpfns = (1970 < $year && $year < 2038 - || !defined('ADODB_NO_NEGATIVE_TS') && (1901 < $year && $year < 2038) - ); - - - if ($usephpfns && ($year + $mon/12+$day/365.25+$hr/(24*365.25) >= 2038)) $usephpfns = false; - - if ($usephpfns) { - return $is_gmt ? - @gmmktime($hr,$min,$sec,$mon,$day,$year): - @mktime($hr,$min,$sec,$mon,$day,$year); - } - } - - $gmt_different = ($is_gmt) ? 0 : adodb_get_gmt_diff($year,$mon,$day); - - /* - # disabled because some people place large values in $sec. - # however we need it for $mon because we use an array... - $hr = intval($hr); - $min = intval($min); - $sec = intval($sec); - */ - $mon = intval($mon); - $day = intval($day); - $year = intval($year); - - - $year = adodb_year_digit_check($year); - - if ($mon > 12) { - $y = floor(($mon-1)/ 12); - $year += $y; - $mon -= $y*12; - } else if ($mon < 1) { - $y = ceil((1-$mon) / 12); - $year -= $y; - $mon += $y*12; - } - - $_day_power = 86400; - $_hour_power = 3600; - $_min_power = 60; - - $_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31); - $_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31); - - $_total_date = 0; - if ($year >= 1970) { - for ($a = 1970 ; $a <= $year; $a++) { - $leaf = _adodb_is_leap_year($a); - if ($leaf == true) { - $loop_table = $_month_table_leaf; - $_add_date = 366; - } else { - $loop_table = $_month_table_normal; - $_add_date = 365; - } - if ($a < $year) { - $_total_date += $_add_date; - } else { - for($b=1;$b<$mon;$b++) { - $_total_date += $loop_table[$b]; - } - } - } - $_total_date +=$day-1; - $ret = $_total_date * $_day_power + $hr * $_hour_power + $min * $_min_power + $sec + $gmt_different; - - } else { - for ($a = 1969 ; $a >= $year; $a--) { - $leaf = _adodb_is_leap_year($a); - if ($leaf == true) { - $loop_table = $_month_table_leaf; - $_add_date = 366; - } else { - $loop_table = $_month_table_normal; - $_add_date = 365; - } - if ($a > $year) { $_total_date += $_add_date; - } else { - for($b=12;$b>$mon;$b--) { - $_total_date += $loop_table[$b]; - } - } - } - $_total_date += $loop_table[$mon] - $day; - - $_day_time = $hr * $_hour_power + $min * $_min_power + $sec; - $_day_time = $_day_power - $_day_time; - $ret = -( $_total_date * $_day_power + $_day_time - $gmt_different); - if ($ret < -12220185600) $ret += 10*86400; // if earlier than 5 Oct 1582 - gregorian correction - else if ($ret < -12219321600) $ret = -12219321600; // if in limbo, reset to 15 Oct 1582. - } - //print " dmy=$day/$mon/$year $hr:$min:$sec => " .$ret; - return $ret; -} - -function adodb_gmstrftime($fmt, $ts=false) -{ - return adodb_strftime($fmt,$ts,true); -} - -// hack - convert to adodb_date -function adodb_strftime($fmt, $ts=false,$is_gmt=false) -{ -global $ADODB_DATE_LOCALE; - - if (!defined('ADODB_TEST_DATES')) { - if ((abs($ts) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range - if (!defined('ADODB_NO_NEGATIVE_TS') || $ts >= 0) // if windows, must be +ve integer - return ($is_gmt)? @gmstrftime($fmt,$ts): @strftime($fmt,$ts); - - } - } - - if (empty($ADODB_DATE_LOCALE)) { - /* - $tstr = strtoupper(gmstrftime('%c',31366800)); // 30 Dec 1970, 1 am - $sep = substr($tstr,2,1); - $hasAM = strrpos($tstr,'M') !== false; - */ - # see http://phplens.com/lens/lensforum/msgs.php?id=14865 for reasoning, and changelog for version 0.24 - $dstr = gmstrftime('%x',31366800); // 30 Dec 1970, 1 am - $sep = substr($dstr,2,1); - $tstr = strtoupper(gmstrftime('%X',31366800)); // 30 Dec 1970, 1 am - $hasAM = strrpos($tstr,'M') !== false; - - $ADODB_DATE_LOCALE = array(); - $ADODB_DATE_LOCALE[] = strncmp($tstr,'30',2) == 0 ? 'd'.$sep.'m'.$sep.'y' : 'm'.$sep.'d'.$sep.'y'; - $ADODB_DATE_LOCALE[] = ($hasAM) ? 'h:i:s a' : 'H:i:s'; - - } - $inpct = false; - $fmtdate = ''; - for ($i=0,$max = strlen($fmt); $i < $max; $i++) { - $ch = $fmt[$i]; - if ($ch == '%') { - if ($inpct) { - $fmtdate .= '%'; - $inpct = false; - } else - $inpct = true; - } else if ($inpct) { - - $inpct = false; - switch($ch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'E': - case 'O': - /* ignore format modifiers */ - $inpct = true; - break; - - case 'a': $fmtdate .= 'D'; break; - case 'A': $fmtdate .= 'l'; break; - case 'h': - case 'b': $fmtdate .= 'M'; break; - case 'B': $fmtdate .= 'F'; break; - case 'c': $fmtdate .= $ADODB_DATE_LOCALE[0].$ADODB_DATE_LOCALE[1]; break; - case 'C': $fmtdate .= '\C?'; break; // century - case 'd': $fmtdate .= 'd'; break; - case 'D': $fmtdate .= 'm/d/y'; break; - case 'e': $fmtdate .= 'j'; break; - case 'g': $fmtdate .= '\g?'; break; //? - case 'G': $fmtdate .= '\G?'; break; //? - case 'H': $fmtdate .= 'H'; break; - case 'I': $fmtdate .= 'h'; break; - case 'j': $fmtdate .= '?z'; $parsej = true; break; // wrong as j=1-based, z=0-basd - case 'm': $fmtdate .= 'm'; break; - case 'M': $fmtdate .= 'i'; break; - case 'n': $fmtdate .= "\n"; break; - case 'p': $fmtdate .= 'a'; break; - case 'r': $fmtdate .= 'h:i:s a'; break; - case 'R': $fmtdate .= 'H:i:s'; break; - case 'S': $fmtdate .= 's'; break; - case 't': $fmtdate .= "\t"; break; - case 'T': $fmtdate .= 'H:i:s'; break; - case 'u': $fmtdate .= '?u'; $parseu = true; break; // wrong strftime=1-based, date=0-based - case 'U': $fmtdate .= '?U'; $parseU = true; break;// wrong strftime=1-based, date=0-based - case 'x': $fmtdate .= $ADODB_DATE_LOCALE[0]; break; - case 'X': $fmtdate .= $ADODB_DATE_LOCALE[1]; break; - case 'w': $fmtdate .= '?w'; $parseu = true; break; // wrong strftime=1-based, date=0-based - case 'W': $fmtdate .= '?W'; $parseU = true; break;// wrong strftime=1-based, date=0-based - case 'y': $fmtdate .= 'y'; break; - case 'Y': $fmtdate .= 'Y'; break; - case 'Z': $fmtdate .= 'T'; break; - } - } else if (('A' <= ($ch) && ($ch) <= 'Z' ) || ('a' <= ($ch) && ($ch) <= 'z' )) - $fmtdate .= "\\".$ch; - else - $fmtdate .= $ch; - } - //echo "fmt=",$fmtdate,"
    "; - if ($ts === false) $ts = time(); - $ret = adodb_date($fmtdate, $ts, $is_gmt); - return $ret; -} diff --git a/htdocs/includes/ckeditor/ckeditor/adapters/jquery.js b/htdocs/includes/ckeditor/ckeditor/adapters/jquery.js deleted file mode 100644 index 0defc720496..00000000000 --- a/htdocs/includes/ckeditor/ckeditor/adapters/jquery.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a}, -ckeditor:function(g,e){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if("function"!==typeof g){var m=e;e=g;g=m}var k=[];e=e||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function d(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(d,100)},0)},null,null, -9999);else{if(e.autoUpdateElement||"undefined"==typeof e.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)e.autoUpdateElementJquery=!0;e.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,e):CKEDITOR.inline(h,e);b.data("ckeditorInstance",c);c.on("instanceReady",function(e){var d=e.editor;setTimeout(function n(){if(d.element){e.removeListener();d.on("dataReady",function(){b.trigger("dataReady.ckeditor",[d])});d.on("setData",function(a){b.trigger("setData.ckeditor", -[d,a.data])});d.on("getData",function(a){b.trigger("getData.ckeditor",[d,a.data])},999);d.on("destroy",function(){b.trigger("destroy.ckeditor",[d])});d.on("save",function(){a(h.form).trigger("submit");return!1},null,null,20);if(d.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){d.updateElement()})};a(h.form).on("submit",c);a(h.form).on("form-pre-serialize",c);b.on("destroy.ckeditor",function(){a(h.form).off("submit",c);a(h.form).off("form-pre-serialize", -c)})}d.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[d]);g&&g.apply(d,[h]);l.resolve()}else setTimeout(n,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(e){if(arguments.length){var m= -this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(e,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,e)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery); \ No newline at end of file diff --git a/htdocs/includes/jquery/js/jquery-ui.js b/htdocs/includes/jquery/js/jquery-ui.js index 5d9bfa2f1b1..1a613bf2f94 100644 --- a/htdocs/includes/jquery/js/jquery-ui.js +++ b/htdocs/includes/jquery/js/jquery-ui.js @@ -1,4 +1,4 @@ -/*! jQuery UI - v1.13.1 - 2022-01-20 +/*! jQuery UI - v1.13.2 - 2022-07-14 * http://jqueryui.com * Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ @@ -20,11 +20,11 @@ $.ui = $.ui || {}; -var version = $.ui.version = "1.13.1"; +var version = $.ui.version = "1.13.2"; /*! - * jQuery UI Widget 1.13.1 + * jQuery UI Widget 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -766,7 +766,7 @@ var widget = $.widget; /*! - * jQuery UI Position 1.13.1 + * jQuery UI Position 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1263,7 +1263,7 @@ var position = $.ui.position; /*! - * jQuery UI :data 1.13.1 + * jQuery UI :data 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1292,7 +1292,7 @@ var data = $.extend( $.expr.pseudos, { } ); /*! - * jQuery UI Disable Selection 1.13.1 + * jQuery UI Disable Selection 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -2047,7 +2047,7 @@ colors = jQuery.Color.names = { /*! - * jQuery UI Effects 1.13.1 + * jQuery UI Effects 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -2431,7 +2431,7 @@ if ( $.uiBackCompat !== false ) { } $.extend( $.effects, { - version: "1.13.1", + version: "1.13.2", define: function( name, mode, effect ) { if ( !effect ) { @@ -2999,7 +2999,7 @@ var effect = $.effects; /*! - * jQuery UI Effects Blind 1.13.1 + * jQuery UI Effects Blind 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3054,7 +3054,7 @@ var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, d /*! - * jQuery UI Effects Bounce 1.13.1 + * jQuery UI Effects Bounce 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3149,7 +3149,7 @@ var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) /*! - * jQuery UI Effects Clip 1.13.1 + * jQuery UI Effects Clip 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3199,7 +3199,7 @@ var effectsEffectClip = $.effects.define( "clip", "hide", function( options, don /*! - * jQuery UI Effects Drop 1.13.1 + * jQuery UI Effects Drop 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3253,7 +3253,7 @@ var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, don /*! - * jQuery UI Effects Explode 1.13.1 + * jQuery UI Effects Explode 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3349,7 +3349,7 @@ var effectsEffectExplode = $.effects.define( "explode", "hide", function( option /*! - * jQuery UI Effects Fade 1.13.1 + * jQuery UI Effects Fade 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3381,7 +3381,7 @@ var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, d /*! - * jQuery UI Effects Fold 1.13.1 + * jQuery UI Effects Fold 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3455,7 +3455,7 @@ var effectsEffectFold = $.effects.define( "fold", "hide", function( options, don /*! - * jQuery UI Effects Highlight 1.13.1 + * jQuery UI Effects Highlight 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3497,7 +3497,7 @@ var effectsEffectHighlight = $.effects.define( "highlight", "show", function( op /*! - * jQuery UI Effects Size 1.13.1 + * jQuery UI Effects Size 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3675,7 +3675,7 @@ var effectsEffectSize = $.effects.define( "size", function( options, done ) { /*! - * jQuery UI Effects Scale 1.13.1 + * jQuery UI Effects Scale 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3715,7 +3715,7 @@ var effectsEffectScale = $.effects.define( "scale", function( options, done ) { /*! - * jQuery UI Effects Puff 1.13.1 + * jQuery UI Effects Puff 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3741,7 +3741,7 @@ var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, don /*! - * jQuery UI Effects Pulsate 1.13.1 + * jQuery UI Effects Pulsate 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3790,7 +3790,7 @@ var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( option /*! - * jQuery UI Effects Shake 1.13.1 + * jQuery UI Effects Shake 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3849,7 +3849,7 @@ var effectsEffectShake = $.effects.define( "shake", function( options, done ) { /*! - * jQuery UI Effects Slide 1.13.1 + * jQuery UI Effects Slide 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3910,7 +3910,7 @@ var effectsEffectSlide = $.effects.define( "slide", "show", function( options, d /*! - * jQuery UI Effects Transfer 1.13.1 + * jQuery UI Effects Transfer 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3935,7 +3935,7 @@ var effectsEffectTransfer = effect; /*! - * jQuery UI Focusable 1.13.1 + * jQuery UI Focusable 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4017,7 +4017,7 @@ var form = $.fn._form = function() { /*! - * jQuery UI Form Reset Mixin 1.13.1 + * jQuery UI Form Reset Mixin 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4079,7 +4079,7 @@ var formResetMixin = $.ui.formResetMixin = { /*! - * jQuery UI Support for jQuery core 1.8.x and newer 1.13.1 + * jQuery UI Support for jQuery core 1.8.x and newer 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4154,7 +4154,7 @@ if ( !$.fn.even || !$.fn.odd ) { ; /*! - * jQuery UI Keycode 1.13.1 + * jQuery UI Keycode 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4189,7 +4189,7 @@ var keycode = $.ui.keyCode = { /*! - * jQuery UI Labels 1.13.1 + * jQuery UI Labels 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4244,7 +4244,7 @@ var labels = $.fn.labels = function() { /*! - * jQuery UI Scroll Parent 1.13.1 + * jQuery UI Scroll Parent 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4278,7 +4278,7 @@ var scrollParent = $.fn.scrollParent = function( includeHidden ) { /*! - * jQuery UI Tabbable 1.13.1 + * jQuery UI Tabbable 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4302,7 +4302,7 @@ var tabbable = $.extend( $.expr.pseudos, { /*! - * jQuery UI Unique ID 1.13.1 + * jQuery UI Unique ID 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4340,7 +4340,7 @@ var uniqueId = $.fn.extend( { /*! - * jQuery UI Accordion 1.13.1 + * jQuery UI Accordion 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4361,7 +4361,7 @@ var uniqueId = $.fn.extend( { var widgetsAccordion = $.widget( "ui.accordion", { - version: "1.13.1", + version: "1.13.2", options: { active: 0, animate: {}, @@ -4972,7 +4972,7 @@ var safeActiveElement = $.ui.safeActiveElement = function( document ) { /*! - * jQuery UI Menu 1.13.1 + * jQuery UI Menu 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4991,7 +4991,7 @@ var safeActiveElement = $.ui.safeActiveElement = function( document ) { var widgetsMenu = $.widget( "ui.menu", { - version: "1.13.1", + version: "1.13.2", defaultElement: "
      ", delay: 300, options: { @@ -5663,7 +5663,7 @@ var widgetsMenu = $.widget( "ui.menu", { /*! - * jQuery UI Autocomplete 1.13.1 + * jQuery UI Autocomplete 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -5682,7 +5682,7 @@ var widgetsMenu = $.widget( "ui.menu", { $.widget( "ui.autocomplete", { - version: "1.13.1", + version: "1.13.2", defaultElement: "", options: { appendTo: null, @@ -6319,7 +6319,7 @@ var widgetsAutocomplete = $.ui.autocomplete; /*! - * jQuery UI Controlgroup 1.13.1 + * jQuery UI Controlgroup 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -6340,7 +6340,7 @@ var widgetsAutocomplete = $.ui.autocomplete; var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g; var widgetsControlgroup = $.widget( "ui.controlgroup", { - version: "1.13.1", + version: "1.13.2", defaultElement: "
      ", options: { direction: "horizontal", @@ -6604,7 +6604,7 @@ var widgetsControlgroup = $.widget( "ui.controlgroup", { } ); /*! - * jQuery UI Checkboxradio 1.13.1 + * jQuery UI Checkboxradio 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -6624,7 +6624,7 @@ var widgetsControlgroup = $.widget( "ui.controlgroup", { $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { - version: "1.13.1", + version: "1.13.2", options: { disabled: null, label: null, @@ -6636,8 +6636,7 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { }, _getCreateOptions: function() { - var disabled, labels; - var that = this; + var disabled, labels, labelContents; var options = this._super() || {}; // We read the type here, because it makes more sense to throw a element type error first, @@ -6657,12 +6656,18 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { // We need to get the label text but this may also need to make sure it does not contain the // input itself. - this.label.contents().not( this.element[ 0 ] ).each( function() { + // The label contents could be text, html, or a mix. We wrap all elements + // and read the wrapper's `innerHTML` to get a string representation of + // the label, without the input as part of it. + labelContents = this.label.contents().not( this.element[ 0 ] ); - // The label contents could be text, html, or a mix. We concat each element to get a - // string representation of the label, without the input as part of it. - that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML; - } ); + if ( labelContents.length ) { + this.originalLabel += labelContents + .clone() + .wrapAll( "
      " ) + .parent() + .html(); + } // Set the label option if we found label text if ( this.originalLabel ) { @@ -6870,7 +6875,7 @@ var widgetsCheckboxradio = $.ui.checkboxradio; /*! - * jQuery UI Button 1.13.1 + * jQuery UI Button 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -6889,7 +6894,7 @@ var widgetsCheckboxradio = $.ui.checkboxradio; $.widget( "ui.button", { - version: "1.13.1", + version: "1.13.2", defaultElement: "
      "),i=e.children()[0];return V("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(k(s),k(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})},V.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,a=s-o,r=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0")[0],w=d.each;function P(t){return null==t?t+"":"object"==typeof t?p[e.call(t)]||"object":typeof t}function M(t,e,i){var s=v[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:Math.min(s.max,Math.max(0,t)))}function S(s){var n=m(),o=n._rgba=[];return s=s.toLowerCase(),w(g,function(t,e){var i=e.re.exec(s),i=i&&e.parse(i),e=e.space||"rgba";if(i)return i=n[e](i),n[_[e].cache]=i[_[e].cache],o=n._rgba=i._rgba,!1}),o.length?("0,0,0,0"===o.join()&&d.extend(o,B.transparent),n):B[s]}function H(t,e,i){return 6*(i=(i+1)%1)<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}y.style.cssText="background-color:rgba(1,1,1,.5)",b.rgba=-1o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=M((n-s)*a+s,e)))}),this[e](l)},blend:function(t){if(1===this._rgba[3])return this;var e=this._rgba.slice(),i=e.pop(),s=m(t)._rgba;return m(d.map(e,function(t,e){return(1-i)*s[e]+i*t}))},toRgbaString:function(){var t="rgba(",e=d.map(this._rgba,function(t,e){return null!=t?t:2").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.13.1",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,e="vertical"!==i?(e||100)/100:1;return{height:t.height()*e,width:t.width()*s,outerHeight:t.outerHeight()*e,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(j+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=j+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-r,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(o,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=G(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},Y={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){Y[t]=function(t){return Math.pow(t,e+2)}}),V.extend(Y,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(Y,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});y=V.effects,V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,r="show"===o,l=t.direction||"up",h=t.distance,c=t.times||5,o=2*c+(r||a?1:0),u=t.duration/o,d=t.easing,p="up"===l||"down"===l?"top":"left",f="up"===l||"left"===l,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),l=n.css(p),h=h||n["top"==p?"outerHeight":"outerWidth"]()/3,r&&((s={opacity:1})[p]=l,n.css("opacity",0).css(p,f?2*-h:2*h).animate(s,u,d)),a&&(h/=Math.pow(2,c-1)),(s={})[p]=l;g").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,o="hide"===s,a=e.size||15,r=/([0-9]+)%/.exec(a),l=!!e.horizFirst?["right","bottom"]:["bottom","right"],h=e.duration/2,c=V.effects.createPlaceholder(i),u=i.cssClip(),d={clip:V.extend({},u)},p={clip:V.extend({},u)},f=[u[l[0]],u[l[1]]],s=i.queue().length;r&&(a=parseInt(r[1],10)/100*f[o?0:1]),d.clip[l[0]]=a,p.clip[l[0]]=a,p.clip[l[1]]=0,n&&(i.cssClip(p.clip),c&&c.css(V.effects.clipToBox(p)),p.clip=u),i.queue(function(t){c&&c.animate(V.effects.clipToBox(d),h,e.easing).animate(V.effects.clipToBox(p),h,e.easing),t()}).animate(d,h,e.easing).animate(p,h,e.easing).queue(t),V.effects.unshift(i,s,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(c=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*c.y+d.top,f.left=(p.outerWidth-f.outerWidth)*c.x+d.left,g.top=(p.outerHeight-g.outerHeight)*c.y+d.top,g.left=(p.outerWidth-g.outerWidth)*c.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),s=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(s.from.opacity=1,s.to.opacity=0),V.effects.effect.size.call(this,s,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l li > :first-child").add(t.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"!==t?("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons())):this._activate(e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),a={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,a)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(a),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(i=i.children(".ui-accordion-header-icon"),this._removeClass(i,null,e.icons.activeHeader)._addClass(i,null,e.icons.header)),n||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(n=s.children(".ui-accordion-header-icon"),this._removeClass(n,null,e.icons.header)._addClass(n,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,l=t.css("box-sizing"),h=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(V.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],V.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("
        ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){V(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(V("
        ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==V.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=V("
        ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||V.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(V.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=V.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(V("
        ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),V.extend(V.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(V.ui.autocomplete.escapeRegex(e),"i");return V.grep(t,function(t){return i.test(t.label||t.value||t)})}}),V.widget("ui.autocomplete",V.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});V.ui.autocomplete;var tt=/ui-corner-([a-z]){2,6}/g;V.widget("ui.controlgroup",{version:"1.13.1",defaultElement:"
        ",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var o=this,a=[];V.each(this.options.items,function(s,t){var e,n={};if(t)return"controlgroupLabel"===s?((e=o.element.find(t)).each(function(){var t=V(this);t.children(".ui-controlgroup-label-contents").length||t.contents().wrapAll("")}),o._addClass(e,null,"ui-widget ui-widget-content ui-state-default"),void(a=a.concat(e.get()))):void(V.fn[s]&&(n=o["_"+s+"Options"]?o["_"+s+"Options"]("middle"):{classes:{}},o.element.find(t).each(function(){var t=V(this),e=t[s]("instance"),i=V.widget.extend({},n);"button"===s&&t.parent(".ui-spinner").length||((e=e||t[s]()[s]("instance"))&&(i.classes=o._resolveClassesValues(i.classes,e)),t[s](i),i=t[s]("widget"),V.data(i[0],"ui-controlgroup-data",e||t[s]("instance")),a.push(i[0]))})))}),this.childWidgets=V(V.uniqueSort(a)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var t=V(this).data("ui-controlgroup-data");t&&t[e]&&t[e]()})},_updateCornerClass:function(t,e){e=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(t,null,e)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){t=this._buildSimpleOptions(t,"ui-spinner");return t.classes["ui-spinner-up"]="",t.classes["ui-spinner-down"]="",t},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(i,s){var n={};return V.each(i,function(t){var e=s.options.classes[t]||"",e=String.prototype.trim.call(e.replace(tt,""));n[t]=(e+" "+i[t]).replace(/\s+/g," ")}),n},_setOption:function(t,e){"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"!==t?this.refresh():this._callChildMethod(e?"disable":"enable")},refresh:function(){var n,o=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),n=this.childWidgets,(n=this.options.onlyVisible?n.filter(":visible"):n).length&&(V.each(["first","last"],function(t,e){var i,s=n[e]().data("ui-controlgroup-data");s&&o["_"+s.widgetName+"Options"]?((i=o["_"+s.widgetName+"Options"](1===n.length?"only":e)).classes=o._resolveClassesValues(i.classes,s),s.element[s.widgetName](i)):o._updateCornerClass(n[e](),e)}),this._callChildMethod("refresh"))}});V.widget("ui.checkboxradio",[V.ui.formResetMixin,{version:"1.13.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var t,e=this,i=this._super()||{};return this._readType(),t=this.element.labels(),this.label=V(t[t.length-1]),this.label.length||V.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){e.originalLabel+=3===this.nodeType?V(this).text():this.outerHTML}),this.originalLabel&&(i.label=this.originalLabel),null!=(t=this.element[0].disabled)&&(i.disabled=t),i},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var t=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===t&&/radio|checkbox/.test(this.type)||V.error("Can't create checkboxradio on element.nodeName="+t+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var t=this.element[0].name,e="input[name='"+V.escapeSelector(t)+"']";return t?(this.form.length?V(this.form[0].elements).filter(e):V(e).filter(function(){return 0===V(this)._form().length})).not(this.element):V([])},_toggleClasses:function(){var t=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",t)._toggleClass(this.icon,null,"ui-icon-blank",!t),"radio"===this.type&&this._getRadioGroup().each(function(){var t=V(this).checkboxradio("instance");t&&t._removeClass(t.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){if("label"!==t||e){if(this._super(t,e),"disabled"===t)return this._toggleClass(this.label,null,"ui-state-disabled",e),void(this.element[0].disabled=e);this.refresh()}},_updateIcon:function(t){var e="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=V(""),this.iconSpace=V(" "),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(e+=t?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,t?"ui-icon-blank":"ui-icon-check")):e+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",e),t||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),(t=this.iconSpace?t.not(this.iconSpace[0]):t).remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]);var et;V.ui.checkboxradio;V.widget("ui.button",{version:"1.13.1",defaultElement:"
    ' . $langs->trans('Project') . ''; $numprojet = $formproject->select_projects($object->thirdparty->id, $projectid, 'projectid', 0, 0, 1, 0, 0, 0, 0, '', 0, 0, ''); - print '   thirdparty->id . (! empty($id) ? '&id=' . $id : '')) . '">' . $langs->trans("AddProject") . ''; + print '   thirdparty->id . (!empty($id) ? '&id=' . $id : '')) . '">' . $langs->trans("AddProject") . ''; print '
    " . $langs->trans("StatusOfGeneratedDocuments") . ""; $select = array('0' => $langs->trans('DoNotGenerateDoc'), '1' => $langs->trans('AutoGenerateDoc')); print $form->selectarray('generate_pdf', $select, GETPOST('generate_pdf')); @@ -1072,7 +1073,7 @@ if ($action == 'create') { print '
    '; print ''; // Show object lines - if (! empty($object->lines)) { + if (!empty($object->lines)) { $disableedit = 1; $disablemove = 1; $disableremove = 1; @@ -1119,7 +1120,7 @@ if ($action == 'create') { // Recurring invoice content - $linkback = '' . $langs->trans('BackToList') . ''; + $linkback = '' . $langs->trans('BackToList') . ''; $morehtmlref = ''; if ($action != 'edittitle') { @@ -1135,7 +1136,7 @@ if ($action == 'create') { $morehtmlref .= '
    ' . $langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load('projects'); $morehtmlref .= '
    ' . $langs->trans('Project') . ' '; if ($usercancreate) { @@ -1153,7 +1154,7 @@ if ($action == 'create') { $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $project = new Project($db); $project->fetch($object->fk_project); $morehtmlref .= ' : ' . $project->getNomUrl(1); @@ -1243,14 +1244,14 @@ if ($action == 'create') { print ''; // Multicurrency - if (! empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print ''; // Auto generate documents - if (! empty($conf->global->INVOICE_REC_CAN_DISABLE_DOCUMENT_FILE_GENERATION)) { + if (!empty($conf->global->INVOICE_REC_CAN_DISABLE_DOCUMENT_FILE_GENERATION)) { print ''; print '
    '; print ''; - if ($usercancreate && $action != 'editmulticurrencycode' && ! empty($object->brouillon)) { + if ($usercancreate && $action != 'editmulticurrencycode' && !empty($object->brouillon)) { print ''; } print '
    '; print $form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0); print '' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '
    '; @@ -1266,7 +1267,7 @@ if ($action == 'create') { print ''; - if ($usercancreate && $action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency) { + if ($usercancreate && $action != 'editmulticurrencyrate' && !empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency) { print ''; } print '
    '; print $form->editfieldkey('CurrencyRate', 'multicurrency_tx', '', $object, 0); print '' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '
    '; @@ -1290,7 +1291,7 @@ if ($action == 'create') { // Help of substitution key $dateexample = dol_now(); - if (! empty($object->frequency) && ! empty($object->date_when)) { + if (!empty($object->frequency) && !empty($object->date_when)) { $dateexample = $object->date_when; } @@ -1478,7 +1479,7 @@ if ($action == 'create') { } print '
    '; if ($action == 'generate_pdf' || $object->frequency > 0) { @@ -1544,7 +1545,7 @@ if ($action == 'create') { '; - if (! empty($conf->use_javascript_ajax) && $object->statut == 0) { + if (!empty($conf->use_javascript_ajax) && $object->statut == 0) { include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php'; } @@ -1552,7 +1553,7 @@ if ($action == 'create') { print ''; $object->fetch_lines(); // Show object lines - if (! empty($object->lines)) { + if (!empty($object->lines)) { $canchangeproduct = 1; // To set ref for getNomURL function foreach ($object->lines as $line) { @@ -1598,7 +1599,7 @@ if ($action == 'create') { if (empty($object->suspended)) { if ($usercancreate) { - if (! empty($object->frequency) && $object->nb_gen_max > 0 && ($object->nb_gen_done >= $object->nb_gen_max)) { + if (!empty($object->frequency) && $object->nb_gen_max > 0 && ($object->nb_gen_done >= $object->nb_gen_max)) { print ''; } else { if (empty($object->frequency) || $object->date_when <= $nowlasthour) { @@ -1620,10 +1621,8 @@ if ($action == 'create') { } } - //if ($object->statut == Facture::STATUS_DRAFT && ($user->rights->fournisseur->facture->supprimer || $user->rights->supplier_invoice->supprimer)) - if (($user->rights->fournisseur->facture->supprimer || $user->rights->supplier_invoice->supprimer)) { - print ''; - } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=ask_deleteinvoice&token='.newToken(), 'delete', ($user->rights->fournisseur->facture->supprimer || $user->rights->supplier_invoice->supprimer)); print ''; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 4ad8555ba24..cdd07fa99ab 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -5,13 +5,13 @@ * Copyright (C) 2005 Marc Barilley * Copyright (C) 2005-2013 Regis Houssin * Copyright (C) 2010-2019 Juanjo Menent - * Copyright (C) 2013-2015 Philippe Grand + * Copyright (C) 2013-2022 Philippe Grand * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2016 Marcos García - * Copyright (C) 2016-2021 Alexandre Spangaro + * Copyright (C) 2016-2022 Alexandre Spangaro * Copyright (C) 2018-2021 Frédéric France * Copyright (C) 2019 Ferran Marcet - * Copyright (C) 2022 Gauthier VERDOL + * Copyright (C) 2022 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,6 +33,7 @@ * \brief Page for supplier invoice card (view, edit, validate) */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; @@ -45,25 +46,25 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -if (!empty($conf->product->enabled)) { +if (isModEnabled("product")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } -if (!empty($conf->variants->enabled)) { +if (isModEnabled('variants')) { require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } $langs->loadLangs(array('bills', 'compta', 'suppliers', 'companies', 'products', 'banks', 'admin')); -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } @@ -211,7 +212,7 @@ if (empty($reshook)) { } // Check parameters - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { $langs->load("stocks"); if (!$idwarehouse || $idwarehouse == -1) { $error++; @@ -229,10 +230,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -273,11 +274,11 @@ if (empty($reshook)) { // Define output language /*$outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } @@ -342,10 +343,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -398,7 +399,7 @@ if (empty($reshook)) { } else { $db->commit(); } - } elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) { + } elseif ($action == 'set_incoterms' && isModEnabled('incoterm')) { // Set incoterm $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); } elseif ($action == 'setmode' && $usercancreate) { @@ -501,10 +502,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1171,7 +1172,28 @@ if (empty($reshook)) { if (!empty($conf->global->MAIN_DEPOSIT_MULTI_TVA) && $diff != 0) { $object->fetch_lines(); $subprice_diff = $object->lines[0]->subprice - $diff / (1 + $object->lines[0]->tva_tx / 100); - $object->updateline($object->lines[0]->id, $object->lines[0]->desc, $subprice_diff, $object->lines[0]->qty, $object->lines[0]->remise_percent, $object->lines[0]->date_start, $object->lines[0]->date_end, $object->lines[0]->tva_tx, 0, 0, 'HT', $object->lines[0]->info_bits, $object->lines[0]->product_type, 0, 0, 0, $object->lines[0]->pa_ht, $object->lines[0]->label, 0, array(), 100); + $object->updateline( + $object->lines[0]->id, + $object->lines[0]->desc, + $subprice_diff, + $object->lines[0]->tva_tx, + $object->lines[0]->localtax1_tx, + $object->lines[0]->localtax2_tx, + $object->lines[0]->qty, + $object->lines[0]->fk_product, + 'HT', + $object->lines[0]->info_bits, + $object->lines[0]->product_type, + $object->lines[0]->remise_percent, + 0, + $object->lines[0]->date_start, + $object->lines[0]->date_end, + 0, + 0, + 0, + '', + 100 + ); } } elseif ($result > 0) { $lines = $srcobject->lines; @@ -1298,10 +1320,13 @@ if (empty($reshook)) { // Edit line $db->begin(); - if (! $object->fetch($id) > 0) dol_print_error($db); + if (! $object->fetch($id) > 0) { + dol_print_error($db); + } $object->fetch_thirdparty(); $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); + $tva_tx = str_replace('*', '', $tva_tx); if (GETPOST('price_ht') != '' || GETPOST('multicurrency_subprice') != '') { $up = price2num(GETPOST('price_ht'), '', 2); @@ -1359,7 +1384,27 @@ if (empty($reshook)) { } } - $result = $object->updateline(GETPOST('lineid', 'int'), $label, $up, $tva_tx, $localtax1_tx, $localtax2_tx, price2num(GETPOST('qty'), 'MS'), GETPOST('productid', 'int'), $price_base_type, $info_bits, $type, $remise_percent, 0, $date_start, $date_end, $array_options, GETPOST('units'), $pu_devise, GETPOST('fourn_ref', 'alpha')); + $result = $object->updateline( + GETPOST('lineid', 'int'), + $label, + $up, + $tva_tx, + $localtax1_tx, + $localtax2_tx, + price2num(GETPOST('qty'), 'MS'), + GETPOST('productid', 'int'), + $price_base_type, + $info_bits, + $type, + $remise_percent, + 0, + $date_start, + $date_end, + $array_options, + GETPOST('units', 'alpha'), + $pu_devise, + GETPOST('fourn_ref', 'alpha') + ); if ($result >= 0) { unset($_POST['label']); unset($_POST['fourn_ref']); @@ -1383,6 +1428,15 @@ if (empty($reshook)) { $db->rollback(); setEventMessages($object->error, $object->errors, 'errors'); } + } elseif ($action == 'addline' && GETPOST('submitforalllines', 'aZ09') && GETPOST('vatforalllines', 'alpha') && $usercancreate) { + // Define vat_rate + $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); + $vat_rate = str_replace('*', '', $vat_rate); + $localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc); + $localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc); + foreach ($object->lines as $line) { + $result = $object->updateline($line->id, $line->desc, $line->subprice, $vat_rate, $localtax1_rate, $localtax2_rate, $line->qty, $line->fk_product, 'HT', $line->info_bits, $line->product_type, $line->remise_percent, 0, $line->date_start, $line->date_end, $line->array_options, $line->fk_unit, $line->multicurrency_subprice, $line->ref_supplier, $line->rang); + } } elseif ($action == 'addline' && $usercancreate) { // Add a product line $db->begin(); @@ -1455,7 +1509,7 @@ if (empty($reshook)) { $error++; } - if (!$error && !empty($conf->variants->enabled) && $prod_entry_mode != 'free') { + if (!$error && isModEnabled('variants') && $prod_entry_mode != 'free') { if ($combinations = GETPOST('combinations', 'array')) { //Check if there is a product with the given combination $prodcomb = new ProductCombination($db); @@ -1503,7 +1557,7 @@ if (empty($reshook)) { if ($idprod > 0) { $label = $productsupplier->label; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -1594,7 +1648,7 @@ if (empty($reshook)) { $productsupplier->fk_unit, 0, $pu_devise, - $ref_supplier, + GETPOST('fourn_ref', 'alpha'), '' ); } @@ -1648,10 +1702,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1733,7 +1787,7 @@ if (empty($reshook)) { } // Check parameters - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { $langs->load("stocks"); if (!$idwarehouse || $idwarehouse == -1) { $error++; @@ -1748,10 +1802,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1888,13 +1942,16 @@ $form = new Form($db); $formfile = new FormFile($db); $bankaccountstatic = new Account($db); $paymentstatic = new PaiementFourn($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } $now = dol_now(); -$title = $langs->trans('SupplierInvoice')." - ".$langs->trans('Card'); +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("NewSupplierInvoice"); +} $help_url = 'EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores|DE:Modul_Lieferantenrechnungen'; llxHeader('', $title, $help_url); @@ -1902,7 +1959,7 @@ llxHeader('', $title, $help_url); if ($action == 'create') { $facturestatic = new FactureFournisseur($db); - print load_fiche_titre($langs->trans('NewBill'), '', 'supplier_invoice'); + print load_fiche_titre($langs->trans('NewSupplierInvoice'), '', 'supplier_invoice'); dol_htmloutput_events(); @@ -1912,7 +1969,7 @@ if ($action == 'create') { if (GETPOST('socid', 'int') > 0) { $societe = new Societe($db); $societe->fetch(GETPOST('socid', 'int')); - if (!empty($conf->multicurrency->enabled) && !empty($societe->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($societe->multicurrency_code)) { $currency_code = $societe->multicurrency_code; } } @@ -1961,7 +2018,7 @@ if ($action == 'create') { $dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : ''; $transport_mode_id = (!empty($objectsrc->transport_mode_id) ? $objectsrc->transport_mode_id : (!empty($soc->transport_mode_id) ? $soc->transport_mode_id : 0)); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (!empty($objectsrc->multicurrency_code)) { $currency_code = $objectsrc->multicurrency_code; } @@ -1988,7 +2045,7 @@ if ($action == 'create') { $datetmp = dol_mktime(12, 0, 0, GETPOST('echmonth', 'int'), GETPOST('echday', 'int'), GETPOST('echyear', 'int')); $datedue = ($datetmp == '' ?-1 : $datetmp); - if (!empty($conf->multicurrency->enabled) && !empty($soc->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($soc->multicurrency_code)) { $currency_code = $soc->multicurrency_code; } } @@ -2040,18 +2097,19 @@ if ($action == 'create') { print $societe->getNomUrl(1, 'supplier'); print ''; } else { - print img_picto('', 'company').$form->select_company(!empty($societe->id) ? $societe->id : 0, 'socid', 's.fournisseur=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 widthcentpercentminusxx maxwidth500'); + print img_picto('', 'company').$form->select_company(empty($societe->id) ? 0 : $societe->id, 'socid', '(s.fournisseur = 1 AND s.status = 1)', 'SelectThirdParty', 1, 0, null, 0, 'minwidth175 widthcentpercentminusxx maxwidth500'); // reload page to retrieve supplier informations if (!empty($conf->global->RELOAD_PAGE_ON_SUPPLIER_CHANGE)) { print ''; + '; } if ($fac_recid <= 0) { print ' '; @@ -2176,7 +2234,7 @@ if ($action == 'create') { jQuery(".checkforselect").prop("disabled", false); jQuery(".checkforselect").prop("checked", true); } - }; + } }); '; @@ -2301,7 +2359,7 @@ if ($action == 'create') { print '
    '; $tmp = 'global->INVOICE_CREDIT_NOTE_STANDALONE)) { $tmp .= ' disabled'; } $tmp .= '> '; @@ -2348,7 +2406,11 @@ if ($action == 'create') { } } else { print '
    '; - $tmp = ' '; + if (empty($conf->global->INVOICE_CREDIT_NOTE_STANDALONE)) { + $tmp = ' '; + } else { + $tmp=' '; + } $text = $tmp.$langs->trans("InvoiceAvoir").' '; $text .= '('.$langs->trans("YouMustCreateInvoiceFromSupplierThird").') '; $desc = $form->textwithpicto($text, $langs->transnoentities("InvoiceAvoirDesc"), 1, 'help', '', 0, 3); @@ -2388,7 +2450,7 @@ if ($action == 'create') { // Payment term print '
    '; // Payment mode @@ -2398,14 +2460,14 @@ if ($action == 'create') { print ''; // Bank Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load('projects'); @@ -2416,7 +2478,7 @@ if ($action == 'create') { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; print ''; print ''; print ''; print '"; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print '"; print '"; @@ -2575,7 +2637,6 @@ if ($action == 'create') { // // View or edit mode // - $now = dol_now(); $productstatic = new Product($db); @@ -2610,13 +2671,16 @@ if ($action == 'create') { $resteapayer = price2num($object->total_ttc - $totalpaid - $totalcreditnotes - $totaldeposits, 'MT'); // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + $multicurrency_resteapayer = 0; + if (isModEnabled("multicurrency")) { $multicurrency_totalpaid = $object->getSommePaiement(1); $multicurrency_totalcreditnotes = $object->getSumCreditNotesUsed(1); $multicurrency_totaldeposits = $object->getSumDepositsUsed(1); $multicurrency_resteapayer = price2num($object->multicurrency_total_ttc - $multicurrency_totalpaid - $multicurrency_totalcreditnotes - $multicurrency_totaldeposits, 'MT'); // Code to fix case of corrupted data - if ($resteapayer == 0 && $multicurrency_resteapayer != 0) { + // TODO We should not need this. Also data comes from not reliable value of $object->multicurrency_total_ttc that may be wrong if it was + // calculated by summing lines that were in a currency for some of them and into another for others (lines from discount/down payment into another currency for example) + if ($resteapayer == 0 && $multicurrency_resteapayer != 0 && $object->multicurrency_code != $conf->currency) { $resteapayer = price2num($multicurrency_resteapayer / $object->multicurrency_tx, 'MT'); } } @@ -2626,7 +2690,7 @@ if ($action == 'create') { } $resteapayeraffiche = $resteapayer; - if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { // Never use this + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { // Never use this $filterabsolutediscount = "fk_invoice_supplier_source IS NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice $filtercreditnote = "fk_invoice_supplier_source IS NOT NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice } else { @@ -2642,6 +2706,8 @@ if ($action == 'create') { /* * View card */ + $objectidnext = $object->getIdReplacingInvoice(); + $head = facturefourn_prepare_head($object); $titre = $langs->trans('SupplierInvoice'); @@ -2651,6 +2717,7 @@ if ($action == 'create') { // Confirmation de la conversion de l'avoir en reduc if ($action == 'converttoreduc') { + $type_fac = ''; if ($object->type == FactureFournisseur::TYPE_STANDARD) { $type_fac = 'ExcessPaid'; } elseif ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) { @@ -2689,7 +2756,7 @@ if ($action == 'create') { $action = ''; } else { $text = $langs->trans('ConfirmValidateBill', $numref); - /*if (! empty($conf->notification->enabled)) + /*if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT .'/core/class/notify.class.php'; $notify=new Notify($db); @@ -2705,7 +2772,7 @@ if ($action == 'create') { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { $langs->load("stocks"); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2737,7 +2804,7 @@ if ($action == 'create') { } else { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) { $langs->load("stocks"); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2856,39 +2923,28 @@ if ($action == 'create') { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreate, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreate, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'supplier'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'supplier'); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherBills").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($usercancreate) { + $morehtmlref .= '
    '; + if ($permissiontoadd) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects((empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -2902,7 +2958,7 @@ if ($action == 'create') { print '
    '; print '
    '; - print '
    '.$langs->trans('PaymentConditionsShort').''; - $form->select_conditions_paiements(GETPOSTISSET('cond_reglement_id') ?GETPOST('cond_reglement_id', 'int') : $cond_reglement_id, 'cond_reglement_id'); + print $form->getSelectConditionsPaiements(GETPOSTISSET('cond_reglement_id') ?GETPOST('cond_reglement_id', 'int') : $cond_reglement_id, 'cond_reglement_id'); print '
    '.$langs->trans('BankAccount').''; print img_picto('', 'bank_account', 'class="pictofixedwidth"').$form->select_comptes((GETPOSTISSET('fk_account') ?GETPOST('fk_account', 'alpha') : $fk_account), 'fk_account', 0, '', 1, '', 0, 'maxwidth200 widthcentpercentminusx', 1); print '
    '; @@ -2425,7 +2487,7 @@ if ($action == 'create') { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print '
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; @@ -2462,7 +2524,7 @@ if ($action == 'create') { } // Intracomm report - if (!empty($conf->intracommreport->enabled)) { + if (isModEnabled('intracommreport')) { $langs->loadLangs(array("intracommreport")); print '
    '.$langs->trans('IntracommReportTransportMode').''; $form->selectTransportMode(GETPOSTISSET('transport_mode_id') ? GETPOST('transport_mode_id') : $transport_mode_id, 'transport_mode_id'); @@ -2534,7 +2596,7 @@ if ($action == 'create') { } print '
    '.$langs->trans('AmountTTC').''.price($objectsrc->total_ttc)."
    '.$langs->trans('MulticurrencyAmountHT').''.price($objectsrc->multicurrency_total_ht).'
    '.$langs->trans('MulticurrencyAmountVAT').''.price($objectsrc->multicurrency_total_tva)."
    '.$langs->trans('MulticurrencyAmountTTC').''.price($objectsrc->multicurrency_total_ttc)."
    '; + print '
    '; // Type print ''; print ''; - $form_permission = ($object->statut < FactureFournisseur::STATUS_CLOSED) && $usercancreate && ($object->getSommePaiement() <= 0); - $form_permission2 = ($object->statut < FactureFournisseur::STATUS_CLOSED) && $usercancreate; + //$form_permission = ($object->statut < FactureFournisseur::STATUS_CLOSED) && $usercancreate && ($object->getSommePaiement() <= 0); + $form_permission = ($object->statut < FactureFournisseur::STATUS_CLOSED) && $usercancreate; // Date print ''; - $list = $objmodelimport->liste_modeles($db); + $list = $objmodelimport->listOfAvailableImportFormat($db); foreach ($list as $key) { print ''; print ''; $text = $objmodelimport->getDriverDescForKey($key); print ''; print ''; // Action button print ''; print ''; } @@ -526,7 +529,7 @@ if ($step == 3 && $datatoimport) { $param .= '&enclosure='.urlencode($enclosure); } - $list = $objmodelimport->liste_modeles($db); + $list = $objmodelimport->listOfAvailableImportFormat($db); llxHeader('', $langs->trans("NewImport"), $help_url); @@ -581,7 +584,8 @@ if ($step == 3 && $datatoimport) { $text = $objmodelimport->getDriverDescForKey($format); print $form->textwithpicto($objmodelimport->getDriverLabelForKey($format), $text); print ''; // Action button print ''; print ''; } @@ -740,8 +747,8 @@ if ($step == 3 && $datatoimport) { if ($step == 4 && $datatoimport) { //var_dump($_SESSION["dol_array_match_file_to_database_select"]); $serialized_array_match_file_to_database = isset($_SESSION["dol_array_match_file_to_database_select"]) ? $_SESSION["dol_array_match_file_to_database_select"] : ''; - $array_match_file_to_database = array(); $fieldsarray = explode(',', $serialized_array_match_file_to_database); + $array_match_file_to_database = array(); // Same than $fieldsarray but with mapped value only (col1 => 's.fielda', col2 => 's.fieldb'...) foreach ($fieldsarray as $elem) { $tabelem = explode('=', $elem, 2); $key = $tabelem[0]; @@ -750,8 +757,13 @@ if ($step == 4 && $datatoimport) { $array_match_file_to_database[$key] = $val; } } + + //var_dump($serialized_array_match_file_to_database); + //var_dump($fieldsarray); + //var_dump($array_match_file_to_database); + $model = $format; - $list = $objmodelimport->liste_modeles($db); + $list = $objmodelimport->listOfAvailableImportFormat($db); if (empty($separator)) { $separator = (empty($conf->global->IMPORT_CSV_SEPARATOR_TO_USE) ? ',' : $conf->global->IMPORT_CSV_SEPARATOR_TO_USE); @@ -805,18 +817,22 @@ if ($step == 4 && $datatoimport) { $array_match_file_to_database = array(); } - // Load source fields in input file + // Load the source fields from input file into variable $arrayrecord $fieldssource = array(); $result = $obj->import_open_file($conf->import->dir_temp.'/'.$filetoimport, $langs); if ($result >= 0) { // Read first line $arrayrecord = $obj->import_read_record(); - // Put into array fieldssource starting with 1. + + // Create array $fieldssource starting with 1 with values found of first line. $i = 1; foreach ($arrayrecord as $key => $val) { if ($val["type"] != -1) { $fieldssource[$i]['example1'] = dol_trunc($val['val'], 128); $i++; + } else { + $fieldssource[$i]['example1'] = $langs->trans('Empty'); + $i++; } } $obj->import_close_file(); @@ -851,20 +867,15 @@ if ($step == 4 && $datatoimport) { } // We found the key of targets that is at position pos $array_match_file_to_database[$pos] = $key; - if ($serialized_array_match_file_to_database) { - $serialized_array_match_file_to_database .= ','; - } - $serialized_array_match_file_to_database .= ($pos.'='.$key); break; } } $pos++; } - // Save the match array in session. We now will use the array in session. - $_SESSION["dol_array_match_file_to_database_select"] = $serialized_array_match_file_to_database; } $array_match_database_to_file = array_flip($array_match_file_to_database); - + //var_dump($array_match_database_to_file); + //var_dump($_SESSION["dol_array_match_file_to_database_select"]); $fieldstarget_tmp = array(); $arraykeysfieldtarget = array_keys($fieldstarget); @@ -873,9 +884,9 @@ if ($step == 4 && $datatoimport) { $isrequired = preg_match('/\*$/', $label); if (!empty($isrequired)) { $newlabel = substr($label, 0, -1); - $fieldstarget_tmp[$key] = array("label"=>$newlabel,"required"=>true); + $fieldstarget_tmp[$key] = array("label"=>$newlabel, "required"=>true); } else { - $fieldstarget_tmp[$key] = array("label"=>$label,"required"=>false); + $fieldstarget_tmp[$key] = array("label"=>$label, "required"=>false); } if (!empty($array_match_database_to_file[$key])) { $fieldstarget_tmp[$key]["imported"] = true; @@ -1061,6 +1072,7 @@ if ($step == 4 && $datatoimport) { print '
    '."\n"; // List of source fields + $var = false; $lefti = 1; foreach ($fieldssource as $key => $val) { @@ -1083,12 +1095,18 @@ if ($step == 4 && $datatoimport) { print '
    '; $nameofimportprofile = str_replace(' ', '-', $langs->trans("ImportProfile").' '.$titleofmodule.' '.dol_print_date(dol_now('gmt'), 'dayxcard')); - if (is_object($objimport) && !empty($objimport->model_name)) { - $nameofimportprofile = $objimport->model_name; + if (GETPOST('import_name')) { // If we have submited a form, we take value used fot the update try + $nameofimportprofile = $import_name; } print ''; @@ -1484,7 +1515,7 @@ if ($step == 4 && $datatoimport) { print ''; - print '
    '.$langs->trans('Type').''; @@ -2912,15 +2968,15 @@ if ($action == 'create') { if ($object->type == FactureFournisseur::TYPE_REPLACEMENT) { $facreplaced = new FactureFournisseur($db); $facreplaced->fetch($object->fk_facture_source); - print '   '.$langs->transnoentities("ReplaceInvoice", $facreplaced->getNomUrl(1)); + print ' '.$langs->transnoentities("ReplaceInvoice", $facreplaced->getNomUrl(1)).''; } if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) { $facusing = new FactureFournisseur($db); if ($object->fk_facture_source > 0) { $facusing->fetch($object->fk_facture_source); - print '   '.$langs->transnoentities("CorrectInvoice", $facusing->getNomUrl(1)); + print ' '.$langs->transnoentities("CorrectInvoice", $facusing->getNomUrl(1)).''; } else { - print '   '.$langs->transnoentities("CorrectedInvoiceNotFound"); + print ' '.$langs->transnoentities("CorrectedInvoiceNotFound").''; } } @@ -2932,12 +2988,13 @@ if ($action == 'create') { $facavoir->fetch($id); $invoicecredits[] = $facavoir->getNomUrl(1); } - print ' ('.$langs->transnoentities("InvoiceHasAvoir") . (count($invoicecredits) ? ' ' : '') . implode(',', $invoicecredits) . ')'; + print ' '.$langs->transnoentities("InvoiceHasAvoir") . (count($invoicecredits) ? ' ' : '') . implode(',', $invoicecredits); + print ''; } - if (isset($facidnext) && $facidnext > 0) { + if (isset($objectidnext) && $objectidnext > 0) { $facthatreplace = new FactureFournisseur($db); $facthatreplace->fetch($facidnext); - print ' ('.$langs->transnoentities("ReplacedByInvoice", $facthatreplace->getNomUrl(1)).')'; + print ' '.str_replace('{s1}', $facthatreplace->getNomUrl(1), $langs->transnoentities("ReplacedByInvoice", '{s1}')).''; } if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT) { $discount = new DiscountAbsolute($db); @@ -2985,8 +3042,8 @@ if ($action == 'create') { print ''.$form->editfieldval("Label", 'label', $object->label, $object, $usercancreate).'
    '; @@ -2998,11 +3055,11 @@ if ($action == 'create') { // Default terms of the settlement $langs->load('bills'); print '
    '; - print ''; } diff --git a/htdocs/hrm/admin/evaluation_extrafields.php b/htdocs/hrm/admin/evaluation_extrafields.php index 771dfc46e99..8363829975e 100644 --- a/htdocs/hrm/admin/evaluation_extrafields.php +++ b/htdocs/hrm/admin/evaluation_extrafields.php @@ -21,39 +21,13 @@ */ /** - * \file admin/evaluation_extrafields.php - * \ingroup hrm - * \brief Page to setup extra fields of hrm + * \file htdocs/hrm/admin/evaluation_extrafields.php + * \ingroup hrm + * \brief Page to setup extra fields of hrm evaluation */ // Load Dolibarr environment -$res = 0; -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) -if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { - $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; -} -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME -$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; -while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { - $i--; $j--; -} -if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { - $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; -} -if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { - $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; -} -// Try main.inc.php using relative path -if (!$res && file_exists("../../main.inc.php")) { - $res = @include "../../main.inc.php"; -} -if (!$res && file_exists("../../../main.inc.php")) { - $res = @include "../../../main.inc.php"; -} -if (!$res) { - die("Include of main fails"); -} - +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once '../lib/hrm.lib.php'; @@ -70,10 +44,12 @@ foreach ($tmptype2label as $key => $val) { $type2label[$key] = $langs->transnoentitiesnoconv($val); } +// Get Parameters $action = GETPOST('action', 'aZ09'); $attrname = GETPOST('attrname', 'alpha'); $elementtype = 'hrm_evaluation'; //Must be the $table_element of the class that manage extrafield +// Security Check if (!$user->admin) { accessforbidden(); } @@ -105,21 +81,13 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); $head = hrmAdminPrepareHead(); -print dol_get_fiche_head($head, 'evaluationsAttributes', $langs->trans($page_name), -1, 'hrm@hrm'); +print dol_get_fiche_head($head, 'evaluationsAttributes', $langs->trans($page_name), -1, 'hrm'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* * Creation of an optional field */ diff --git a/htdocs/hrm/admin/job_extrafields.php b/htdocs/hrm/admin/job_extrafields.php index 467d94437b0..6ac0773c00f 100644 --- a/htdocs/hrm/admin/job_extrafields.php +++ b/htdocs/hrm/admin/job_extrafields.php @@ -21,39 +21,13 @@ */ /** - * \file admin/job_extrafields.php - * \ingroup hrm - * \brief Page to setup extra fields of hrm + * \file htdocs/hrm/admin/job_extrafields.php + * \ingroup hrm + * \brief Page to setup extra fields of hrm jobs */ // Load Dolibarr environment -$res = 0; -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) -if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { - $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; -} -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME -$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; -while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { - $i--; $j--; -} -if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { - $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; -} -if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { - $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; -} -// Try main.inc.php using relative path -if (!$res && file_exists("../../main.inc.php")) { - $res = @include "../../main.inc.php"; -} -if (!$res && file_exists("../../../main.inc.php")) { - $res = @include "../../../main.inc.php"; -} -if (!$res) { - die("Include of main fails"); -} - +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once '../lib/hrm.lib.php'; @@ -70,10 +44,12 @@ foreach ($tmptype2label as $key => $val) { $type2label[$key] = $langs->transnoentitiesnoconv($val); } +// Get Parameters $action = GETPOST('action', 'aZ09'); $attrname = GETPOST('attrname', 'alpha'); $elementtype = 'hrm_job'; //Must be the $table_element of the class that manage extrafield +// Security Check if (!$user->admin) { accessforbidden(); } @@ -91,7 +67,7 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject = $langs->transnoentitiesnoconv("Job"); +$textobject = $langs->transnoentitiesnoconv("JobPosition"); $help_url = ''; $page_name = "HrmSetup"; @@ -105,21 +81,13 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); $head = hrmAdminPrepareHead(); -print dol_get_fiche_head($head, 'jobsAttributes', $langs->trans($page_name), -1, 'hrm@job'); +print dol_get_fiche_head($head, 'jobsAttributes', $langs->trans($page_name), -1, 'hrm'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* * Creation of an optional field */ diff --git a/htdocs/hrm/admin/skill_extrafields.php b/htdocs/hrm/admin/skill_extrafields.php index 44042a0e30a..d2541af15fa 100644 --- a/htdocs/hrm/admin/skill_extrafields.php +++ b/htdocs/hrm/admin/skill_extrafields.php @@ -21,39 +21,13 @@ */ /** - * \file admin/skill_extrafields.php - * \ingroup hrm - * \brief Page to setup extra fields of hrm + * \file htdocs/hrm/admin/skill_extrafields.php + * \ingroup hrm + * \brief Page to setup extra fields of hrm skills */ // Load Dolibarr environment -$res = 0; -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) -if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { - $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; -} -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME -$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; -while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { - $i--; $j--; -} -if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { - $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; -} -if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { - $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; -} -// Try main.inc.php using relative path -if (!$res && file_exists("../../main.inc.php")) { - $res = @include "../../main.inc.php"; -} -if (!$res && file_exists("../../../main.inc.php")) { - $res = @include "../../../main.inc.php"; -} -if (!$res) { - die("Include of main fails"); -} - +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once '../lib/hrm.lib.php'; @@ -74,6 +48,7 @@ $action = GETPOST('action', 'aZ09'); $attrname = GETPOST('attrname', 'alpha'); $elementtype = 'hrm_skill'; //Must be the $table_element of the class that manage extrafield +// Security check if (!$user->admin) { accessforbidden(); } @@ -105,21 +80,13 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); $head = hrmAdminPrepareHead(); -print dol_get_fiche_head($head, 'skillsAttributes', $langs->trans($page_name), -1, 'hrm@skill'); +print dol_get_fiche_head($head, 'skillsAttributes', $langs->trans($page_name), -1, 'hrm'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* * Creation of an optional field */ diff --git a/htdocs/hrm/class/establishment.class.php b/htdocs/hrm/class/establishment.class.php index 2a2c4e4b3dd..6a37ba1e929 100644 --- a/htdocs/hrm/class/establishment.class.php +++ b/htdocs/hrm/class/establishment.class.php @@ -395,7 +395,7 @@ class Establishment extends CommonObject */ public function info($id) { - $sql = 'SELECT e.rowid, e.ref, e.datec, e.fk_user_author, e.tms, e.fk_user_mod, e.entity'; + $sql = 'SELECT e.rowid, e.ref, e.datec, e.fk_user_author, e.tms as datem, e.fk_user_mod, e.entity'; $sql .= ' FROM '.MAIN_DB_PREFIX.'establishment as e'; $sql .= ' WHERE e.rowid = '.((int) $id); @@ -407,19 +407,10 @@ class Establishment extends CommonObject $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - $this->date_creation = $this->db->jdate($obj->datec); - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_mod) { - $muser = new User($this->db); - $muser->fetch($obj->fk_user_mod); - $this->user_modification = $muser; - - $this->date_modification = $this->db->jdate($obj->tms); - } + $this->user_creation_id = $obj->fk_user_author; + $this->user_modification_id = $obj->fk_user_mod; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); } else { @@ -454,6 +445,9 @@ class Establishment extends CommonObject $label .= '
    '; $label .= ''.$langs->trans('Ref').': '.$this->ref; + $label .= '
    '; + $label .= ''.$langs->trans('Residence').': '.$this->address.', '.$this->zip.' '.$this->town; + $url = DOL_URL_ROOT.'/hrm/establishment/card.php?id='.$this->id; if ($option != 'nolink') { @@ -498,7 +492,7 @@ class Establishment extends CommonObject } if ($withpicto != 2) { - $result .= $this->ref; + $result .= $this->label; } $result .= $linkend; diff --git a/htdocs/hrm/class/evaluation.class.php b/htdocs/hrm/class/evaluation.class.php index 8050eb08ec9..4a41f1c8e0e 100644 --- a/htdocs/hrm/class/evaluation.class.php +++ b/htdocs/hrm/class/evaluation.class.php @@ -20,9 +20,9 @@ */ /** - * \file class/evaluation.class.php - * \ingroup hrm - * \brief This file is a CRUD class file for Evaluation (Create/Read/Update/Delete) + * \file htdocs/hrm/class/evaluation.class.php + * \ingroup hrm + * \brief This file is a CRUD class file for Evaluation (Create/Read/Update/Delete) */ // Put here all includes required by your class file @@ -118,8 +118,8 @@ class Evaluation extends CommonObject 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'notnull'=>1, 'default'=>0, 'visible'=>5, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '6' => 'Closed'),), 'date_eval' => array('type'=>'date', 'label'=>'DateEval', 'enabled'=>'1', 'position'=>502, 'notnull'=>1, 'visible'=>1,), - 'fk_user' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'User', 'enabled'=>'1', 'position'=>504, 'notnull'=>1, 'visible'=>1,), - 'fk_job' => array('type'=>'integer:Job:/hrm/class/job.class.php', 'label'=>'Job', 'enabled'=>'1', 'position'=>505, 'notnull'=>1, 'visible'=>1,), + 'fk_user' => array('type'=>'integer:User:user/class/user.class.php:0', 'label'=>'User', 'enabled'=>'1', 'position'=>504, 'notnull'=>1, 'visible'=>1,), + 'fk_job' => array('type'=>'integer:Job:/hrm/class/job.class.php', 'label'=>'JobPosition', 'enabled'=>'1', 'position'=>505, 'notnull'=>1, 'visible'=>1,), ); public $rowid; public $ref; @@ -182,17 +182,21 @@ class Evaluation extends CommonObject */ public function __construct(DoliDB $db) { - global $conf, $langs; + global $conf, $langs, $user; $this->db = $db; if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } + if (empty($user->rights->hrm->evaluation->readall)) { + $this->fields['fk_user']['type'].= ':rowid IN('.$this->db->sanitize(implode(", ", $user->getAllChildIds(1))).')'; + } + $this->date_eval = dol_now(); // Unset fields that are disabled @@ -849,7 +853,7 @@ class Evaluation extends CommonObject $this->labelStatus[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Closed'); $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated'); - $this->labelStatus[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Closed'); + $this->labelStatusShort[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Closed'); } $statusType = 'status'.$status; @@ -878,27 +882,11 @@ class Evaluation extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -935,8 +923,8 @@ class Evaluation extends CommonObject $result = $objectline->fetchAll('ASC', '', 0, 0, array('customsql'=>'fk_evaluation = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/hrm/class/evaluationdet.class.php b/htdocs/hrm/class/evaluationdet.class.php index 0ca56d84e60..5489065e52d 100644 --- a/htdocs/hrm/class/evaluationdet.class.php +++ b/htdocs/hrm/class/evaluationdet.class.php @@ -178,7 +178,7 @@ class Evaluationline extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -383,10 +383,10 @@ class Evaluationline extends CommonObject foreach ($filter as $key => $value) { if ($key == 't.rowid') { $sqlwhere[] = $key.'='.$value; - } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { - $sqlwhere[] = $key.' = \''.$this->db->idate($value).'\''; } elseif ($key == 'customsql') { $sqlwhere[] = $value; + } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { + $sqlwhere[] = $key.' = \''.$this->db->idate($value).'\''; } elseif (strpos($value, '%') === false) { $sqlwhere[] = $key.' IN ('.$this->db->sanitize($this->db->escape($value)).')'; } else { @@ -500,8 +500,8 @@ class Evaluationline extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->evaluationdet->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->evaluationdet->evaluationdet_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->evaluationdet->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->evaluationdet->evaluationdet_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -561,7 +561,8 @@ class Evaluationline extends CommonObject $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'evaluationline/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (!$resql) { - $error++; $this->error = $this->db->lasterror(); + $error++; + $this->error = $this->db->lasterror(); } // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments @@ -618,8 +619,8 @@ class Evaluationline extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -642,8 +643,8 @@ class Evaluationline extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -666,8 +667,8 @@ class Evaluationline extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -850,27 +851,11 @@ class Evaluationline extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -907,8 +892,8 @@ class Evaluationline extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_evaluationdet = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/hrm/class/job.class.php b/htdocs/hrm/class/job.class.php index c7f2e1a5f6b..93950979a1a 100644 --- a/htdocs/hrm/class/job.class.php +++ b/htdocs/hrm/class/job.class.php @@ -108,7 +108,7 @@ class Job extends CommonObject 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>21, 'notnull'=>0, 'visible'=>1,), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>2,), 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>2,), - 'deplacement' => array('type'=>'select', 'required'=> 1,'label'=> 'deplacement', 'enabled'=> 1, 'position'=> 90, 'notnull'=> 1, 'visible'=> 1, 'arrayofkeyval'=> array(0 =>"No", 1=>"Yes"), 'default'=>0), + 'deplacement' => array('type'=>'select', 'required'=> 1,'label'=> 'NeedBusinessTravels', 'enabled'=> 1, 'position'=> 90, 'notnull'=> 1, 'visible'=> 1, 'arrayofkeyval'=> array(0 =>"No", 1=>"Yes"), 'default'=>0), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>0,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>71, 'notnull'=>0, 'visible'=>0,), 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), @@ -177,7 +177,7 @@ class Job extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -496,8 +496,8 @@ class Job extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->job->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->job->job_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->job->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->job->job_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -600,30 +600,27 @@ class Job extends CommonObject } /** - * Get last job for user + * Get the last occupied position for a user * - * @param int $fk_user id of user we need to get last job - * @return mixed|string|null + * @param int $fk_user Id of user we need to get last job + * @return Position|string Last occupied position */ public function getLastJobForUser($fk_user) { - global $db; - - $j = new Job($db); - $Tab = $j->getForUser($fk_user); + $Tab = $this->getForUser($fk_user); if (empty($Tab)) return ''; - $job = array_shift($Tab); + $lastpos = array_shift($Tab); - return $job; + return $lastpos; } /** - * Get jobs for user + * Get array of occupied positions for a user * - * @param int $userid id of user we need to get job list - * @return array of jobs + * @param int $userid Id of user we need to get job list + * @return Position[] Array of occupied positions */ public function getForUser($userid) { @@ -652,8 +649,8 @@ class Job extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -676,8 +673,8 @@ class Job extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -700,8 +697,8 @@ class Job extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -884,27 +881,11 @@ class Job extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -941,8 +922,8 @@ class Job extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_job = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/hrm/class/position.class.php b/htdocs/hrm/class/position.class.php index f83fa5901d8..98b5fd89be9 100644 --- a/htdocs/hrm/class/position.class.php +++ b/htdocs/hrm/class/position.class.php @@ -110,10 +110,10 @@ class Position extends CommonObject 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2,), 'fk_contrat' => array('type'=>'integer:Contrat:contrat/class/contrat.class.php', 'label'=>'fk_contrat', 'enabled'=>'1', 'position'=>50, 'notnull'=>0, 'visible'=>0,), 'fk_user' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Employee', 'enabled'=>'1', 'position'=>55, 'notnull'=>1, 'visible'=>1, 'default'=>0), - 'fk_job' => array('type'=>'integer:Job:/hrm/class/job.class.php', 'label'=>'Job', 'enabled'=>'1', 'position'=>56, 'notnull'=>1, 'visible'=>1,), + 'fk_job' => array('type'=>'integer:Job:/hrm/class/job.class.php', 'label'=>'JobPosition', 'enabled'=>'1', 'position'=>56, 'notnull'=>1, 'visible'=>1,), 'date_start' => array('type'=>'date', 'label'=>'DateStart', 'enabled'=>'1', 'position'=>51, 'notnull'=>1, 'visible'=>1,), 'date_end' => array('type'=>'date', 'label'=>'DateEnd', 'enabled'=>'1', 'position'=>52, 'notnull'=>0, 'visible'=>1,), - 'abort_comment' => array('type'=>'varchar(255)', 'label'=>'AbandonmentComment', 'enabled'=>'1', 'position'=>502, 'notnull'=>0, 'visible'=>1,), + 'abort_comment' => array('type'=>'varchar(255)', 'label'=>'AbandonmentComment', 'enabled'=>'getDolGlobalInt("HRM_JOB_POSITON_ENDING_COMMENT")', 'position'=>502, 'notnull'=>0, 'visible'=>1,), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>0,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>71, 'notnull'=>0, 'visible'=>0,), 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), @@ -188,7 +188,7 @@ class Position extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { //$this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -507,8 +507,8 @@ class Position extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->position->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->position->position_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->position->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->position->position_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -626,8 +626,8 @@ class Position extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -650,8 +650,8 @@ class Position extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -674,8 +674,8 @@ class Position extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -930,27 +930,11 @@ class Position extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } - - $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -987,8 +971,8 @@ class Position extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql' => 'fk_position = ' . $this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1052,6 +1036,8 @@ class Position extends CommonObject } /** + * getForUser + * * @param int $userid id of user we need to get position list * @return array|int of positions of user with for each of them the job fetched into that array */ @@ -1065,7 +1051,7 @@ class Position extends CommonObject } /** - * Create a document onto disk according to template module. + * Create a document onto disk according to template module. * * @param string $modele Force template to use ('' to not force) * @param Translate $outputlangs objet lang a utiliser pour traduction diff --git a/htdocs/hrm/class/skill.class.php b/htdocs/hrm/class/skill.class.php index ececc70b4f1..3f56294a7b2 100644 --- a/htdocs/hrm/class/skill.class.php +++ b/htdocs/hrm/class/skill.class.php @@ -76,7 +76,7 @@ class Skill extends CommonObject const STATUS_DRAFT = 0; const STATUS_VALIDATED = 1; const STATUS_CANCELED = 9; - const DEFAULT_MAX_RANK_PER_SKILL = 5; + const DEFAULT_MAX_RANK_PER_SKILL = 3; /** * 'type' field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter]]', 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter]]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'text:none', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') @@ -119,7 +119,7 @@ class Skill extends CommonObject 'required_level' => array('type'=>'integer', 'label'=>'requiredLevel', 'enabled'=>'1', 'position'=>50, 'notnull'=>1, 'visible'=>0,), 'date_validite' => array('type'=>'integer', 'label'=>'date_validite', 'enabled'=>'1', 'position'=>52, 'notnull'=>1, 'visible'=>0,), 'temps_theorique' => array('type'=>'double(24,8)', 'label'=>'temps_theorique', 'enabled'=>'1', 'position'=>54, 'notnull'=>1, 'visible'=>0,), - 'skill_type' => array('type'=>'integer', 'label'=>'SkillType', 'enabled'=>'1', 'position'=>55, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'knowHow', '1'=>'HowToBe', '9'=>'knowledge'), 'default'=>0), + 'skill_type' => array('type'=>'integer', 'label'=>'SkillType', 'enabled'=>'1', 'position'=>55, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'css'=>'minwidth200', 'arrayofkeyval'=>array('0'=>'TypeKnowHow', '1'=>'TypeHowToBe', '9'=>'TypeKnowledge'), 'default'=>0), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>0,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>71, 'notnull'=>0, 'visible'=>0,), ); @@ -189,7 +189,7 @@ class Skill extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -251,7 +251,7 @@ class Skill extends CommonObject global $conf, $user, $langs; $MaxNumberSkill = isset($conf->global->HRM_MAXRANK) ? $conf->global->HRM_MAXRANK : self::DEFAULT_MAX_RANK_PER_SKILL; - $defaultSkillDesc = !empty($conf->global->HRM_DEFAULT_SKILL_DESCRIPTION) ? $conf->global->HRM_DEFAULT_SKILL_DESCRIPTION : 'no Description'; + $defaultSkillDesc = !empty($conf->global->HRM_DEFAULT_SKILL_DESCRIPTION) ? $conf->global->HRM_DEFAULT_SKILL_DESCRIPTION : $langs->trans("NoDescription"); $error = 0; @@ -521,7 +521,7 @@ class Skill extends CommonObject */ public function delete(User $user, $notrigger = false) { - return $this->deleteCommon($user, $notrigger);; + return $this->deleteCommon($user, $notrigger); } /** @@ -564,8 +564,8 @@ class Skill extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->skill->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->skill->skill_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->skill->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->skill->skill_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -682,8 +682,8 @@ class Skill extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -706,8 +706,8 @@ class Skill extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -730,8 +730,8 @@ class Skill extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -924,27 +924,11 @@ class Skill extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -981,8 +965,8 @@ class Skill extends CommonObject $result = $objectline->fetchAll('ASC', 'rankorder', 0, 0, array('customsql'=>'fk_skill = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1123,9 +1107,9 @@ class Skill extends CommonObject global $langs; $result = ''; switch ($code) { - case 0 : $result = $langs->trans("knowHow"); break; //"Savoir Faire" - case 1 : $result = $langs->trans("HowToBe"); break; // "Savoir être" - case 9 : $result = $langs->trans("knowledge"); break; //"Savoir" + case 0 : $result = $langs->trans("TypeKnowHow"); break; //"Savoir Faire" + case 1 : $result = $langs->trans("TypeHowToBe"); break; // "Savoir être" + case 9 : $result = $langs->trans("TypeKnowledge"); break; //"Savoir" } return $result; } diff --git a/htdocs/hrm/class/skilldet.class.php b/htdocs/hrm/class/skilldet.class.php index ac91e2ef21a..4dface42230 100644 --- a/htdocs/hrm/class/skilldet.class.php +++ b/htdocs/hrm/class/skilldet.class.php @@ -169,7 +169,7 @@ class Skilldet extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -376,10 +376,10 @@ class Skilldet extends CommonObject foreach ($filter as $key => $value) { if ($key == 't.rowid') { $sqlwhere[] = $key.'='.$value; - } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { - $sqlwhere[] = $key." = '".$this->db->idate($value)."'"; } elseif ($key == 'customsql') { $sqlwhere[] = $value; + } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { + $sqlwhere[] = $key." = '".$this->db->idate($value)."'"; } elseif (strpos($value, '%') === false) { $sqlwhere[] = $key." IN (".$this->db->sanitize($this->db->escape($value)).")"; } else { @@ -488,8 +488,8 @@ class Skilldet extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->skilldet->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->skilldet->skilldet_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->skilldet->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->skilldet->skilldet_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -606,8 +606,8 @@ class Skilldet extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -630,8 +630,8 @@ class Skilldet extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -654,8 +654,8 @@ class Skilldet extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -838,27 +838,11 @@ class Skilldet extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/hrm/class/skillrank.class.php b/htdocs/hrm/class/skillrank.class.php index 51768171049..2d75425823e 100644 --- a/htdocs/hrm/class/skillrank.class.php +++ b/htdocs/hrm/class/skillrank.class.php @@ -177,7 +177,7 @@ class SkillRank extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -527,8 +527,8 @@ class SkillRank extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->skillrank->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->skillrank->skillrank_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->skillrank->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->skillrank->skillrank_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -645,8 +645,8 @@ class SkillRank extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -669,8 +669,8 @@ class SkillRank extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -693,8 +693,8 @@ class SkillRank extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->hrm->hrm_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->hrm->hrm_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -877,27 +877,11 @@ class SkillRank extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -935,8 +919,8 @@ class SkillRank extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_skillrank = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/hrm/compare.php b/htdocs/hrm/compare.php index c8bb01d85e5..6365dd51d25 100644 --- a/htdocs/hrm/compare.php +++ b/htdocs/hrm/compare.php @@ -1,9 +1,9 @@ - * Copyright (C) 2021 Gauthier VERDOL - * Copyright (C) 2021 Greg Rastklan - * Copyright (C) 2021 Jean-Pascal BOUDET - * Copyright (C) 2021 Grégory BLEMAND + * Copyright (C) 2021 Gauthier VERDOL + * Copyright (C) 2021 Greg Rastklan + * Copyright (C) 2021 Jean-Pascal BOUDET + * Copyright (C) 2021 Grégory BLEMAND * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,7 +18,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * \file class/compare.php + * \file htdocs/hrm/compare.php * \ingroup hrm * \brief This file compares skills of user groups * @@ -28,35 +28,39 @@ * 2- the central part displays the skills. display of the maximum score for this group and the number of occurrences. * * 3- the right part displays the members of group 2 or the job to be compared - * - * - * */ + +// Load Dolibarr environment require_once '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/class/skill.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/class/job.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/class/evaluation.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/class/position.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm.lib.php'; -$permissiontoread = $user->rights->hrm->evaluation->read || $user->rights->hrm->compare_advance->read; -$permissiontoadd = 0; -if (empty($conf->hrm->enabled)) accessforbidden(); -if (!$permissiontoread || ($action === 'create' && !$permissiontoadd)) accessforbidden(); +// Load translation files required by the page $langs->load('hrm'); +$job = new Job($db); + +// Permissions +$permissiontoread = $user->rights->hrm->evaluation->read || $user->rights->hrm->compare_advance->read; +$permissiontoadd = 0; + +if (empty($conf->hrm->enabled)) accessforbidden(); +if (!$permissiontoread || ($action === 'create' && !$permissiontoadd)) accessforbidden(); /* * View */ -$css = array(); -$css[] = '/hrm/css/style.css'; +$css = array('/hrm/css/style.css'); + llxHeader('', $langs->trans('SkillComparison'), '', '', 0, 0, '', $css); $head = array(); @@ -68,8 +72,6 @@ $head[$h][2] = 'compare'; print dol_get_fiche_head($head, 'compare', '', 1); -//$PDOdb = new TPDOdb; -$form = new Form($db); ?> '; - $arrayofselected = is_array($toselect) ? $toselect : array(); $param = ''; diff --git a/htdocs/hrm/skill_note.php b/htdocs/hrm/skill_note.php index 45a0690f176..287861300d7 100644 --- a/htdocs/hrm/skill_note.php +++ b/htdocs/hrm/skill_note.php @@ -20,9 +20,9 @@ */ /** - * \file skill_note.php - * \ingroup hrm - * \brief Tab for notes on skill + * \file htdocs/hrm/skill_note.php + * \ingroup hrm + * \brief Tab for notes on skill */ @@ -33,12 +33,12 @@ require_once DOL_DOCUMENT_ROOT . '/hrm/class/skill.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_skill.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("hrm", "companies")); +$langs->loadLangs(array('hrm', 'companies')); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -53,10 +53,11 @@ $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { - $upload_dir = $conf->hrm->multidir_output[$object->entity]."/".$object->id; + $upload_dir = $conf->hrm->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; } -$permissionnote = $user->rights->hrm->all->write; +// Permissions +$permissionnote = $user->rights->hrm->all->write; $permissiontoread = $user->rights->hrm->all->read; // Used by the include of actions_addupdatedelete.inc.php // Security check (enable the most restrictive one) diff --git a/htdocs/hrm/skill_tab.php b/htdocs/hrm/skill_tab.php index 11dcf9a5172..b30484de54f 100644 --- a/htdocs/hrm/skill_tab.php +++ b/htdocs/hrm/skill_tab.php @@ -20,13 +20,12 @@ */ /** - * \file skill_tab.php - * \ingroup hrm - * \brief Page to add/delete/view skill to jobs/users + * \file htdocs/hrm/skill_tab.php + * \ingroup hrm + * \brief Page to add/delete/view skill to jobs/users */ - // Load Dolibarr environment require '../main.inc.php'; @@ -34,13 +33,15 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php'; +require_once DOL_DOCUMENT_ROOT . '/hrm/class/job.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/class/skill.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/class/skillrank.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_skill.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("hrm", "other")); +$langs->loadLangs(array('hrm', 'other')); +// Get Parameters $id = GETPOST('id', 'int'); $TSkillsToAdd = GETPOST('fk_skill', 'array'); $objecttype = GETPOST('objecttype', 'alpha'); @@ -59,20 +60,22 @@ $skill = new SkillRank($db); // Initialize technical objects if (in_array($objecttype, $TAuthorizedObjects)) { if ($objecttype == 'job') { - require_once DOL_DOCUMENT_ROOT . '/hrm/class/job.class.php'; $object = new Job($db); } elseif ($objecttype == "user") { $object = new User($db); } -} else accessforbidden($langs->trans('ErrorBadObjectType')); +} else { + accessforbidden('ErrorBadObjectType'); +} $hookmanager->initHooks(array('skilltab', 'globalcard')); // Note that conf->hooks_modules contains array // Load object include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php'; // Must be include, not include_once. -$permissiontoread = $user->rights->hrm->all->read; -$permissiontoadd = $user->rights->hrm->all->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +// Permissions +$permissiontoread = $user->hasRight('hrm', 'all', 'read'); +$permissiontoadd = $user->hasRight('hrm', 'all', 'write'); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php // Security check (enable the most restrictive one) if ($user->socid > 0) accessforbidden(); @@ -152,8 +155,6 @@ if (empty($reshook)) { /* * View - * - * Put here all code to build page */ $form = new Form($db); @@ -214,14 +215,23 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Object card // ------------------------------------------------------------ - $linkback = '' . $langs->trans("BackToList") . ''; + if ($objecttype == 'job') { + $linkback = '' . $langs->trans("BackToList") . ''; - $morehtmlref = '
    '; - if (isset($object->label)) $morehtmlref.= $object->label; - $morehtmlref .= '
    '; + $morehtmlref = '
    '; + $morehtmlref.= $object->label; + $morehtmlref .= '
    '; - dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'rowid', $morehtmlref, '&objecttype='.$objecttype); + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'rowid', $morehtmlref); + } else { + $linkback = '' . $langs->trans("BackToList") . ''; + $morehtmlref = ''; + $morehtmlref .= img_picto($langs->trans("Download").' '.$langs->trans("VCard"), 'vcard.png', 'class="valignmiddle marginleftonly paddingrightonly"'); + $morehtmlref .= ''; + + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'rowid', $morehtmlref, '&objecttype='.$objecttype); + } // Get all available skills $static_skill = new Skill($db); @@ -249,59 +259,59 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
    '; print '
    '; - print '
    '; + print ''; + print ''; } print '
    '; print $langs->trans('PaymentConditions'); print ''; if ($action != 'editconditions' && $form_permission) { - print 'id.'">'.img_edit($langs->trans('SetConditions'), 1).'id.'">'.img_edit($langs->trans('SetConditions'), 1).'
    '; print '
    '; @@ -3016,9 +3073,9 @@ if ($action == 'create') { // Due date print '
    '; - print $form->editfieldkey("DateMaxPayment", 'date_lim_reglement', $object->date_echeance, $object, $form_permission2, 'datepicker'); + print $form->editfieldkey("DateMaxPayment", 'date_lim_reglement', $object->date_echeance, $object, $form_permission, 'datepicker'); print ''; - print $form->editfieldval("DateMaxPayment", 'date_lim_reglement', $object->date_echeance, $object, $form_permission2, 'datepicker'); + print $form->editfieldval("DateMaxPayment", 'date_lim_reglement', $object->date_echeance, $object, $form_permission, 'datepicker'); if ($action != 'editdate_lim_reglement' && $object->hasDelay()) { print img_warning($langs->trans('Late')); } @@ -3027,10 +3084,10 @@ if ($action == 'create') { // Mode of payment $langs->load('bills'); print '
    '; - print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print ''; // User - print ''; + print ''; // Supervisor print ''; // Type of leave request @@ -289,6 +339,7 @@ if (count($typeleaves) == 0) { print ''; } print ''; + print ''; // Action column print ''; $usersupervisor = new User($db); foreach ($listUsers as $users) { + $arrayofselected = is_array($toselect) ? $toselect : array(); + // If user has not permission to edit/read all, we must see only subordinates if (empty($user->rights->holiday->readall)) { if (($users['rowid'] != $user->id) && (!in_array($users['rowid'], $userchilds))) { @@ -380,11 +439,21 @@ if (count($typeleaves) == 0) { print ''; // Button modify - print ''."\n"; + print ''; print ''; $i++; diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php index 25646e78046..c47b47634d7 100644 --- a/htdocs/holiday/document.php +++ b/htdocs/holiday/document.php @@ -6,7 +6,7 @@ * Copyright (C) 2005 Simon TOSSER * Copyright (C) 2011-2012 Juanjo Menent * Copyright (C) 2013 Cédric Salvador - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,6 +28,7 @@ * \brief Page des documents joints sur les contrats */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -124,8 +125,6 @@ $title = $langs->trans("Leave").' - '.$langs->trans("Files"); llxHeader('', $title); -$edit = false; - if ($object->id) { $valideur = new User($db); $valideur->fetch($object->fk_validator); @@ -176,51 +175,25 @@ if ($object->id) { $starthalfday = ($object->halfday == -1 || $object->halfday == 2) ? 'afternoon' : 'morning'; $endhalfday = ($object->halfday == 1 || $object->halfday == 2) ? 'morning' : 'afternoon'; - if (!$edit) { - print ''; - print ''; - print ''; - print ''; - } else { - print ''; - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; + print ''; - if (!$edit) { - print ''; - print ''; - print ''; - print ''; - } else { - print ''; - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; + print ''; // Nb days consumed print ''; @@ -247,17 +220,10 @@ if ($object->id) { } // Description - if (!$edit) { - print ''; - print ''; - print ''; - print ''; - } else { - print ''; - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; + print ''; print ''; print ''; @@ -274,8 +240,7 @@ if ($object->id) { print '
    '; + print ''; - if ($action != 'editmode' && $form_permission2) { + if ($action != 'editmode' && $form_permission) { print ''; } print '
    '; print $langs->trans('PaymentMode'); print 'id.'">'.img_edit($langs->trans('SetMode'), 1).'
    '; @@ -3043,7 +3100,7 @@ if ($action == 'create') { print '
    '; @@ -3092,7 +3149,7 @@ if ($action == 'create') { } // Bank Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print '
    '; print ''; + print ''; + print ''; + print ''; + + print '

    '; + + print load_fiche_titre($langs->trans("AddFolder"), null, null); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } } else { $foundsetup = false; $MAXFTP = 20; @@ -662,124 +676,14 @@ if (!function_exists('ftp_connect')) { print '
    '; -// Close FTP connection -if ($conn_id) { - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - } elseif (!empty($conf->global->FTP_CONNECT_WITH_SSL)) { - ftp_close($conn_id); - } else { - ftp_close($conn_id); +if (!empty($conn_id)) { + $disconnect = dol_ftp_close($conn_id); + + if (!$disconnect) { + setEventMessages($langs->trans("ErrorFTPNodisconnect"), null, 'errors'); } } // End of page llxFooter(); $db->close(); - - - -/** - * Connect to FTP server - * - * @param string $ftp_server Server name - * @param string $ftp_port Server port - * @param string $ftp_user FTP user - * @param string $ftp_password FTP password - * @param string $section Directory - * @param integer $ftp_passive Use a passive mode - * @return int <0 if OK, >0 if KO - */ -function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $section, $ftp_passive = 0) -{ - global $langs, $conf; - - $ok = 1; - $conn_id = null; - - if (!is_numeric($ftp_port)) { - $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServer", $ftp_server, $ftp_port); - $ok = 0; - } - - if ($ok) { - $connecttimeout = (empty($conf->global->FTP_CONNECT_TIMEOUT) ? 40 : $conf->global->FTP_CONNECT_TIMEOUT); - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - dol_syslog('Try to connect with ssh2_ftp'); - $tmp_conn_id = ssh2_connect($ftp_server, $ftp_port); - } elseif (!empty($conf->global->FTP_CONNECT_WITH_SSL)) { - dol_syslog('Try to connect with ftp_ssl_connect'); - $conn_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout); - } else { - dol_syslog('Try to connect with ftp_connect'); - $conn_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout); - } - if ($conn_id || $tmp_conn_id) { - if ($ftp_user) { - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - dol_syslog('Try to authenticate with ssh2_auth_password'); - if (ssh2_auth_password($tmp_conn_id, $ftp_user, $ftp_password)) { - // Turn on passive mode transfers (must be after a successful login - //if ($ftp_passive) ftp_pasv($conn_id, true); - - // Change the dir - $newsectioniso = utf8_decode($section); - //ftp_chdir($conn_id, $newsectioniso); - $conn_id = ssh2_sftp($tmp_conn_id); - if (!$conn_id) { - dol_syslog('Failed to connect to SFTP after sssh authentication', LOG_DEBUG); - $mesg = $langs->transnoentitiesnoconv("FailedToConnectToSFTPAfterSSHAuthentication"); - $ok = 0; - $error++; - } - } else { - dol_syslog('Failed to connect to FTP with login '.$ftp_user, LOG_DEBUG); - $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials"); - $ok = 0; - $error++; - } - } else { - if (ftp_login($conn_id, $ftp_user, $ftp_password)) { - // Turn on passive mode transfers (must be after a successful login - if ($ftp_passive) { - ftp_pasv($conn_id, true); - } - - // Change the dir - $newsectioniso = utf8_decode($section); - ftp_chdir($conn_id, $newsectioniso); - } else { - $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials"); - $ok = 0; - $error++; - } - } - } - } else { - dol_syslog('FailedToConnectToFTPServer '.$ftp_server.' '.$ftp_port, LOG_ERR); - $mesg = $langs->transnoentitiesnoconv("FailedToConnectToFTPServer", $ftp_server, $ftp_port); - $ok = 0; - } - } - - $arrayresult = array('conn_id'=>$conn_id, 'ok'=>$ok, 'mesg'=>$mesg, 'curdir'=>$section, 'curdiriso'=>$newsectioniso); - return $arrayresult; -} - - -/** - * Tell if an entry is a FTP directory - * - * @param resource $connect_id Connection handler - * @param string $dir Directory - * @return int 1=directory, 0=not a directory - */ -function ftp_isdir($connect_id, $dir) -{ - if (@ftp_chdir($connect_id, $dir)) { - ftp_cdup($connect_id); - return 1; - } else { - return 0; - } -} - diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 383d3577a8e..3e800760606 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -5,7 +5,7 @@ * Copyright (C) 2013 Juanjo Menent * Copyright (C) 2017 Alexandre Spangaro * Copyright (C) 2014-2017 Ferran Marcet - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * Copyright (C) 2020-2021 Udo Tamm * Copyright (C) 2022 Anthony Berton * @@ -29,6 +29,7 @@ * \brief Form and file creation of paid holiday. */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; @@ -254,6 +255,18 @@ if (empty($reshook)) { $error++; } + $approverslist = $object->fetch_users_approver_holiday(); + if (!in_array($approverid, $approverslist)) { + setEventMessages($langs->transnoentitiesnoconv('InvalidValidator'), null, 'errors'); + $error++; + } + + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost(null, $object); + if ($ret < 0) { + $error++; + } + $result = 0; if (!$error) { @@ -284,7 +297,7 @@ if (empty($reshook)) { } } - // If this is an update and we are an approver, we can update to change the approver + // If this is an update and we are an approver, we can update to change the expected approver with another one (including himself) if ($action == 'update' && GETPOSTISSET('savevalidator') && !empty($user->rights->holiday->approve)) { $object->fetch($id); @@ -432,7 +445,7 @@ if (empty($reshook)) { } } - // Action validate (+ send email for approval) + // Action validate (+ send email for approval to the expected approver) if ($action == 'confirm_send') { $object->fetch($id); @@ -558,9 +571,10 @@ if (empty($reshook)) { if ($object->statut == Holiday::STATUS_VALIDATED && $user->id == $object->fk_validator) { $object->oldcopy = dol_clone($object); - $object->date_valid = dol_now(); - $object->fk_user_valid = $user->id; + $object->date_approval = dol_now(); + $object->fk_user_approve = $user->id; $object->statut = Holiday::STATUS_APPROVED; + $object->status = Holiday::STATUS_APPROVED; $db->begin(); @@ -572,7 +586,7 @@ if (empty($reshook)) { // If no SQL error, we redirect to the request form if (!$error) { - // Calculcate number of days consummed + // Calculcate number of days consumed $nbopenedday = num_open_day($object->date_debut_gmt, $object->date_fin_gmt, 0, 1, $object->halfday); $soldeActuel = $object->getCpforUser($object->fk_user, $object->fk_type); $newSolde = ($soldeActuel - $nbopenedday); @@ -660,9 +674,10 @@ if (empty($reshook)) { // If status pending validation and validator = user if ($object->statut == Holiday::STATUS_VALIDATED && $user->id == $object->fk_validator) { - $object->date_refuse = dol_print_date('dayhour', dol_now()); + $object->date_refuse = dol_now(); $object->fk_user_refuse = $user->id; $object->statut = Holiday::STATUS_REFUSED; + $object->status = Holiday::STATUS_REFUSED; $object->detail_refuse = GETPOST('detail_refuse', 'alphanohtml'); $db->begin(); @@ -751,6 +766,7 @@ if (empty($reshook)) { $oldstatus = $object->statut; $object->statut = Holiday::STATUS_DRAFT; + $object->status = Holiday::STATUS_DRAFT; $result = $object->update($user); if ($result < 0) { @@ -783,6 +799,7 @@ if (empty($reshook)) { $object->date_cancel = dol_now(); $object->fk_user_cancel = $user->id; $object->statut = Holiday::STATUS_CANCELED; + $object->status = Holiday::STATUS_CANCELED; $result = $object->update($user); @@ -793,7 +810,7 @@ if (empty($reshook)) { $error++; } - // Calculcate number of days consummed + // Calculcate number of days consumed $nbopenedday = num_open_day($object->date_debut_gmt, $object->date_fin_gmt, 0, 1, $object->halfday); $soldeActuel = $object->getCpforUser($object->fk_user, $object->fk_type); @@ -910,7 +927,7 @@ $edit = false; if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { // If user has no permission to create a leave - if ((in_array($fuserid, $childids) && empty($user->rights->holiday->write)) || (!in_array($fuserid, $childids) && (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->holiday->writeall_advance)))) { + if ((in_array($fuserid, $childids) && empty($user->rights->holiday->write)) || (!in_array($fuserid, $childids) && ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->holiday->writeall_advance) || empty($user->rights->holiday->writeall))))) { $errors[] = $langs->trans('CantCreateCP'); } else { // Form to add a leave request @@ -923,7 +940,7 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { $errors[] = $langs->trans('ErrorEndDateCP'); break; case 'SQL_Create': - $errors[] = $langs->trans('ErrorSQLCreateCP').' '.htmlentities($_GET['msg']).''; + $errors[] = $langs->trans('ErrorSQLCreateCP'); break; case 'CantCreate': $errors[] = $langs->trans('CantCreateCP'); @@ -1139,7 +1156,7 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { $result = $object->fetch($id, $ref); $approverexpected = new User($db); - $approverexpected->fetch($object->fk_validator); + $approverexpected->fetch($object->fk_validator); // Use that should be the approver $userRequest = new User($db); $userRequest->fetch($object->fk_user); @@ -1153,7 +1170,7 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { $errors[] = $langs->transnoentitiesnoconv('ErrorEndDateCP'); break; case 'SQL_Create': - $errors[] = $langs->transnoentitiesnoconv('ErrorSQLCreateCP').' '.$_GET['msg']; + $errors[] = $langs->transnoentitiesnoconv('ErrorSQLCreateCP'); break; case 'CantCreate': $errors[] = $langs->transnoentitiesnoconv('CantCreateCP'); @@ -1174,7 +1191,7 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { $errors[] = $langs->transnoentitiesnoconv('NoMotifRefuseCP'); break; case 'mail': - $errors[] = $langs->transnoentitiesnoconv('ErrorMailNotSend')."\n".$_GET['error_content']; + $errors[] = $langs->transnoentitiesnoconv('ErrorMailNotSend'); break; } @@ -1353,21 +1370,23 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { print ''; print ''; print ''; } else { print ''; - print ''; + print ''; // Will be approved by print ''; print ''; - print ''; // warning: date_valid is approval date on holiday module + print ''; // warning: date_valid is approval date on holiday module print ''; } if ($object->statut == Holiday::STATUS_CANCELED) { @@ -1480,8 +1499,8 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { if ($object->statut == Holiday::STATUS_VALIDATED) { // If validated // Button Approve / Refuse if ($user->id == $object->fk_validator) { - print ''.$langs->trans("Approve").''; - print ''.$langs->trans("ActionRefuseCP").''; + print ''.$langs->trans("Approve").''; + print ''.$langs->trans("ActionRefuseCP").''; } else { print ''.$langs->trans("Approve").''; print ''.$langs->trans("ActionRefuseCP").''; @@ -1497,8 +1516,8 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { } } if ($object->statut == Holiday::STATUS_APPROVED) { // If validated and approved - if ($user->id == $object->fk_validator || $cancreate || $cancreateall) { - if (($object->date_debut > dol_now()) || !empty($user->admin)) { + if ($user->id == $object->fk_validator || $user->id == $object->fk_user_approve || $cancreate || $cancreateall) { + if (($object->date_debut > dol_now()) || !empty($user->admin) || $user->id == $object->fk_user_approve) { print ''.$langs->trans("ActionCancelCP").''; } else { print 'trans("NotAllowed").'">'.$langs->trans("ActionCancelCP").''; diff --git a/htdocs/holiday/card_group.php b/htdocs/holiday/card_group.php new file mode 100644 index 00000000000..8ebddf045a7 --- /dev/null +++ b/htdocs/holiday/card_group.php @@ -0,0 +1,792 @@ + + * Copyright (C) 2012-2016 Laurent Destailleur + * Copyright (C) 2012-2016 Regis Houssin + * Copyright (C) 2013 Juanjo Menent + * Copyright (C) 2017 Alexandre Spangaro + * Copyright (C) 2014-2017 Ferran Marcet + * Copyright (C) 2018 Frédéric France + * Copyright (C) 2020-2021 Udo Tamm + * Copyright (C) 2022 Anthony Berton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, orwrite + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/holiday/card.php + * \ingroup holiday + * \brief Form and file creation of paid holiday. + */ + +// Load Dolibarr environment +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + +// Get parameters +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$fuserid = (GETPOST('fuserid', 'int') ?GETPOST('fuserid', 'int') : $user->id); +$users = (GETPOST('users', 'array') ?GETPOST('users', 'array') : array($user->id)); +$groups = GETPOST('groups', 'array'); +$socid = GETPOST('socid', 'int'); +$autoValidation = GETPOST('autoValidation', 'int'); +$AutoSendMail = GETPOST('AutoSendMail', 'int'); +// Load translation files required by the page +$langs->loadLangs(array("other", "holiday", "mails", "trips")); + +$error = 0; + +$now = dol_now(); + +$childids = $user->getAllChildIds(1); + +$morefilter = ''; +if (!empty($conf->global->HOLIDAY_HIDE_FOR_NON_SALARIES)) { + $morefilter = 'AND employee = 1'; +} + +$object = new Holiday($db); + +$extrafields = new ExtraFields($db); + +// fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +if (($id > 0) || $ref) { + $object->fetch($id, $ref); + + // Check current user can read this leave request + $canread = 0; + if (!empty($user->rights->holiday->readall)) { + $canread = 1; + } + if (!empty($user->rights->holiday->read) && in_array($object->fk_user, $childids)) { + $canread = 1; + } + if (!$canread) { + accessforbidden(); + } +} + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('holidaycard', 'globalcard')); + +$cancreate = 0; +$cancreateall = 0; +if (!empty($user->rights->holiday->write) && in_array($fuserid, $childids)) { + $cancreate = 1; +} +if (!empty($user->rights->holiday->writeall)) { + $cancreate = 1; + $cancreateall = 1; +} + +$candelete = 0; +if (!empty($user->rights->holiday->delete)) { + $candelete = 1; +} +if ($object->statut == Holiday::STATUS_DRAFT && $user->rights->holiday->write && in_array($object->fk_user, $childids)) { + $candelete = 1; +} + +// Protection if external user +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'holiday', $object->id, 'holiday', '', '', 'rowid', $object->statut); + + +/* + * Actions + */ + +$parameters = array('socid' => $socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + $backurlforlist = DOL_URL_ROOT.'/holiday/list.php'; + + if (empty($backtopage) || ($cancel && empty($id))) { + if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) { + if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) { + $backtopage = $backurlforlist; + } else { + $backtopage = DOL_URL_ROOT.'/holiday/card_group.php?id='.((!empty($id) && $id > 0) ? $id : '__ID__'); + } + } + } + + if ($cancel) { + if (!empty($backtopageforcancel)) { + header("Location: ".$backtopageforcancel); + exit; + } elseif (!empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + $action = ''; + } + + // Add leave request + if ($action == 'add') { + // If no right to create a request + if (!$cancreate) { + $error++; + setEventMessages($langs->trans('CantCreateCP'), null, 'errors'); + $action = 'create'; + } + + if (!$error) { + $users = GETPOST('users', 'array'); + $groups = GETPOST('groups', 'array'); + + $date_debut = dol_mktime(0, 0, 0, GETPOST('date_debut_month'), GETPOST('date_debut_day'), GETPOST('date_debut_year')); + $date_fin = dol_mktime(0, 0, 0, GETPOST('date_fin_month'), GETPOST('date_fin_day'), GETPOST('date_fin_year')); + $date_debut_gmt = dol_mktime(0, 0, 0, GETPOST('date_debut_month'), GETPOST('date_debut_day'), GETPOST('date_debut_year'), 1); + $date_fin_gmt = dol_mktime(0, 0, 0, GETPOST('date_fin_month'), GETPOST('date_fin_day'), GETPOST('date_fin_year'), 1); + $starthalfday = GETPOST('starthalfday'); + $endhalfday = GETPOST('endhalfday'); + $type = GETPOST('type'); + + $halfday = 0; + if ($starthalfday == 'afternoon' && $endhalfday == 'morning') { + $halfday = 2; + } elseif ($starthalfday == 'afternoon') { + $halfday = -1; + } elseif ($endhalfday == 'morning') { + $halfday = 1; + } + + $approverid = GETPOST('valideur', 'int'); + $description = trim(GETPOST('description', 'restricthtml')); + + // Check that leave is for a user inside the hierarchy or advanced permission for all is set + if (!$cancreateall) { + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { + if (empty($user->rights->holiday->write)) { + $error++; + setEventMessages($langs->trans("NotEnoughPermissions"), null, 'errors'); + } elseif (!in_array($fuserid, $childids)) { + $error++; + setEventMessages($langs->trans("UserNotInHierachy"), null, 'errors'); + $action = 'create'; + } + } else { + if (empty($user->rights->holiday->write) && empty($user->rights->holiday->writeall_advance)) { + $error++; + setEventMessages($langs->trans("NotEnoughPermissions"), null, 'errors'); + } elseif (empty($user->rights->holiday->writeall_advance) && !in_array($fuserid, $childids)) { + $error++; + setEventMessages($langs->trans("UserNotInHierachy"), null, 'errors'); + $action = 'create'; + } + } + } + // If no groups and no users + if (empty($groups) && empty($users)) { + setEventMessages($langs->trans("ErrorFieldRequiredUserOrGroup"), null, 'errors'); + //setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("UserOrGroup")), null, 'errors'); + //setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Group")), null, 'errors'); + $error++; + $action = 'create'; + } + // If no type + if ($type <= 0) { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); + $error++; + $action = 'create'; + } + + // If no start date + if (empty($date_debut)) { + setEventMessages($langs->trans("NoDateDebut"), null, 'errors'); + $error++; + $action = 'create'; + } + // If no end date + if (empty($date_fin)) { + setEventMessages($langs->trans("NoDateFin"), null, 'errors'); + $error++; + $action = 'create'; + } + // If start date after end date + if ($date_debut > $date_fin) { + setEventMessages($langs->trans("ErrorEndDateCP"), null, 'errors'); + $error++; + $action = 'create'; + } + + // If there is no Business Days within request + $nbopenedday = num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday); + if ($nbopenedday < 0.5) { + setEventMessages($langs->trans("ErrorDureeCP"), null, 'errors'); // No working day + $error++; + $action = 'create'; + } + + // If no validator designated + if ($approverid < 1) { + setEventMessages($langs->transnoentitiesnoconv('InvalidValidatorCP'), null, 'errors'); + $error++; + } + + $result = 0; + + + if (!$error) { + $TusersToProcess = array(); + // usergroup select + // better perf on single sql + /** GROUPS */ + $sql = ' SELECT DISTINCT u.rowid,u.lastname,u.firstname from ' . MAIN_DB_PREFIX . 'user as u'; + $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'usergroup_user as ug on ug.fk_user = u.rowid '; + $sql .= ' WHERE fk_usergroup in (' .$db->sanitize(implode(',', $groups)) . ')'; + $resql = $db->query($sql); + + if ($resql) { + while ($obj = $db->fetch_object($resql)) { + $TusersToProcess[$obj->rowid] = $obj->rowid; + } + } + /** USERS */ + if (is_array($users) && count($users) > 0) { + foreach ($users as $u) { + $TusersToProcess[$u] = $u; + } + } + foreach ($TusersToProcess as $u) { + // Check if there is already holiday for this period pour chaque user + $verifCP = $object->verifDateHolidayCP($u, $date_debut, $date_fin, $halfday); + if (!$verifCP) { + //setEventMessages($langs->trans("alreadyCPexist"), null, 'errors'); + + $userError = new User($db); + $result = $userError->fetch($u); + + if ($result) { + setEventMessages($langs->trans("UseralreadyCPexist", $userError->firstname . ' '. $userError->lastname), null, 'errors'); + } else { + setEventMessages($langs->trans("ErrorUserFetch", $u), null, 'errors'); + } + + $error++; + $action = 'create'; + } + } + + if (!$error) { + $db->begin(); + // non errors we can insert all + foreach ($TusersToProcess as $u) { + $object = new Holiday($db); + $object->fk_user = $u; + $object->description = $description; + $object->fk_validator = $approverid; + $object->fk_type = $type; + $object->date_debut = $date_debut; + $object->date_fin = $date_fin; + $object->halfday = $halfday; + + $result = $object->create($user); + + if ($result <= 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + } else { + //@TODO changer le nom si validated + if ($autoValidation) { + $htemp = new Holiday($db); + $htemp->fetch($result); + + $htemp->statut = Holiday::STATUS_VALIDATED; + $resultValidated = $htemp->update($approverid); + + if ($resultValidated < 0 ) { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + } + // we can auto send mail if we are in auto validation behavior + + if ($AutoSendMail && !$error) { + // send a mail to the user + $returnSendMail = sendMail($result, $cancreate, $now, $autoValidation); + if (!empty($returnSendMail->msg)) setEventMessage($returnSendMail->msg, $returnSendMail->style); + } + } + } + } + } + // If no SQL error we redirect to the request card + if (!$error) { + $db->commit(); + header('Location: '.DOL_URL_ROOT.'/holiday/list.php'); + exit; + } else { + $db->rollback(); + } + } + } + } +} + + + +/* + * View + */ + +$form = new Form($db); +$object = new Holiday($db); + +$listhalfday = array('morning'=>$langs->trans("Morning"), "afternoon"=>$langs->trans("Afternoon")); + +$title = $langs->trans('Leave'); +$help_url = 'EN:Module_Holiday'; + +llxHeader('', $title, $help_url); + +if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { + // If user has no permission to create a leave + if ((in_array($fuserid, $childids) && empty($user->rights->holiday->writeall)) || (!in_array($fuserid, $childids) && (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->holiday->writeall_advance)))) { + $errors[] = $langs->trans('CantCreateCP'); + } else { + // Form to add a leave request + print load_fiche_titre($langs->trans('MenuCollectiveAddCP'), '', 'title_hrm.png'); + + // Error management + if (GETPOST('error')) { + switch (GETPOST('error')) { + case 'datefin': + $errors[] = $langs->trans('ErrorEndDateCP'); + break; + case 'SQL_Create': + $errors[] = $langs->trans('ErrorSQLCreateCP'); + break; + case 'CantCreate': + $errors[] = $langs->trans('CantCreateCP'); + break; + case 'Valideur': + $errors[] = $langs->trans('InvalidValidatorCP'); + break; + case 'nodatedebut': + $errors[] = $langs->trans('NoDateDebut'); + break; + case 'nodatefin': + $errors[] = $langs->trans('NoDateFin'); + break; + case 'DureeHoliday': + $errors[] = $langs->trans('ErrorDureeCP'); + break; + case 'alreadyCP': + $errors[] = $langs->trans('alreadyCPexist'); + break; + } + + setEventMessages($errors, null, 'errors'); + } + + + print ''."\n"; + + + // Formulaire de demande + print '
    '."\n"; + print ''."\n"; + print ''."\n"; + + print dol_get_fiche_head(); + + print '
    '; print $langs->trans('BankAccount'); @@ -3112,7 +3169,7 @@ if ($action == 'create') { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print '
    '; print ''; // Label @@ -197,13 +190,13 @@ if ($object->id > 0) { // Amount Local Taxes //TODO: Place into a function to control showing by country or study better option - if ($societe->localtax1_assuj == "1") { //Localtax1 - print ''; + if ($mysoc->localtax1_assuj == "1") { //Localtax1 + print ''; print ''; print ''; } - if ($societe->localtax2_assuj == "1") { //Localtax2 - print ''; + if ($mysoc->localtax2_assuj == "1") { //Localtax2 + print ''; print ''; print ''; } diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index 6e9e73c8d27..bad8d19bd28 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -33,6 +33,7 @@ * \brief Payment page for supplier invoices */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; @@ -199,7 +200,7 @@ if (empty($reshook)) { if ($result <= 0) { dol_print_error($db); } - $multicurrency_amountsresttopay[$cursorfacid] = price2num($tmpinvoice->total_ttc - $tmpinvoice->getSommePaiement(1)); + $multicurrency_amountsresttopay[$cursorfacid] = price2num($tmpinvoice->multicurrency_total_ttc - $tmpinvoice->getSommePaiement(1)); if ($multicurrency_amounts[$cursorfacid]) { // Check amount if ($multicurrency_amounts[$cursorfacid] && (abs($multicurrency_amounts[$cursorfacid]) > abs($multicurrency_amountsresttopay[$cursorfacid]))) { @@ -224,7 +225,7 @@ if (empty($reshook)) { $error++; } - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { // If bank module is on, account is required to enter a payment if (GETPOST('accountid') <= 0) { setEventMessages($langs->transnoentities('ErrorFieldRequired', $langs->transnoentities('AccountToCredit')), null, 'errors'); @@ -430,7 +431,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie json["amountPayment"] = $("#amountpayment").attr("value"); json["amounts"] = _elemToJson(form.find("input.amount")); json["remains"] = _elemToJson(form.find("input.remain")); - + json["token"] = "'.currentToken().'"; if (imgId != null) { json["imgClicked"] = imgId; } @@ -504,7 +505,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print ''; @@ -612,7 +613,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie $remaintopay = price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits, 'MT'); // Multicurrency Price - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $multicurrency_payment = $invoice->getSommePaiement(1); $multicurrency_creditnotes = $invoice->getSumCreditNotesUsed(1); $multicurrency_deposits = $invoice->getSumDepositsUsed(1); @@ -653,7 +654,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Currency print '\n"; @@ -717,7 +718,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie $numdirectdebitopen = 0; $totaldirectdebit = 0; $sql = "SELECT COUNT(pfd.rowid) as nb, SUM(pfd.amount) as amount"; - $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; + $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pfd"; $sql .= " WHERE fk_facture_fourn = ".((int) $objp->facid); $sql .= " AND pfd.traite = 0"; $sql .= " AND pfd.ext_payment_id IS NULL"; @@ -767,7 +768,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie // Print total print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print ''; diff --git a/htdocs/fourn/facture/rapport.php b/htdocs/fourn/facture/rapport.php index f46871b03e9..b2840362d47 100644 --- a/htdocs/fourn/facture/rapport.php +++ b/htdocs/fourn/facture/rapport.php @@ -22,6 +22,7 @@ * \brief Payment reports page */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/rapport/pdf_paiement_fourn.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; diff --git a/htdocs/fourn/index.php b/htdocs/fourn/index.php index 1dc3e963db7..18d86da67e7 100644 --- a/htdocs/fourn/index.php +++ b/htdocs/fourn/index.php @@ -23,6 +23,7 @@ * \brief Home page of suppliers area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; @@ -99,7 +100,7 @@ if ($resql) { // Draft orders -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { $langs->load("orders"); $sql = "SELECT cf.rowid, cf.ref, cf.total_ttc,"; @@ -157,7 +158,7 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU } // Draft invoices -if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) && $user->rights->fournisseur->facture->lire) { +if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) && $user->rights->fournisseur->facture->lire) { $sql = "SELECT ff.ref_supplier, ff.rowid, ff.total_ttc, ff.type"; $sql .= ", s.nom as name, s.rowid as socid"; $sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as ff"; diff --git a/htdocs/fourn/paiement/card.php b/htdocs/fourn/paiement/card.php index 3c2c864346a..a11cf769204 100644 --- a/htdocs/fourn/paiement/card.php +++ b/htdocs/fourn/paiement/card.php @@ -19,26 +19,34 @@ */ /** - * \file htdocs/fourn/paiement/card.php - * \ingroup facture, fournisseur - * \brief Tab to show a payment of a supplier invoice - * \remarks Fichier presque identique a compta/paiement/card.php + * \file htdocs/fourn/paiement/card.php + * \ingroup facture, fournisseur + * \brief Tab to show a payment of a supplier invoice + * \remarks Fichier presque identique a compta/paiement/card.php */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; -$langs->loadLangs(array('bills', 'banks', 'companies', 'suppliers')); -$id = GETPOST('id', 'int'); +// Load translation files required by the page +$langs->loadLangs(array('banks', 'bills', 'companies', 'suppliers')); + + +// Get Parameters +$id = GETPOST('id', 'int'); $action = GETPOST('action', 'alpha'); -$confirm = GETPOST('confirm', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +// Initialize objects $object = new PaiementFourn($db); + // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('supplierpaymentcard', 'globalcard')); @@ -220,7 +228,7 @@ if ($result > 0) { $allow_delete = 1; // Bank account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { if ($object->fk_account) { $bankline = new AccountLine($db); $bankline->fetch($object->bank_line); @@ -366,9 +374,9 @@ if ($result > 0) { if ($user->socid == 0 && $action == '') { if ($user->rights->fournisseur->facture->supprimer) { if ($allow_delete) { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 1); } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($title_button, $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 0); } } } diff --git a/htdocs/fourn/paiement/document.php b/htdocs/fourn/paiement/document.php index e1b0ce6f581..2e61322997a 100644 --- a/htdocs/fourn/paiement/document.php +++ b/htdocs/fourn/paiement/document.php @@ -23,30 +23,36 @@ */ /** - * \file htdocs/fourn/paiement/document.php - * \ingroup facture, fournisseur - * \brief Management page of attached documents to a payment + * \file htdocs/fourn/paiement/document.php + * \ingroup facture, fournisseur + * \brief Management page of attached documents to a payment */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; -if (!empty($conf->projet->enabled)) { +require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } -// Load translation files required by the page -$langs->loadLangs(array('bills', 'banks', 'companies', 'suppliers', 'other')); +// Load translation files required by the page +$langs->loadLangs(array('banks', 'bills', 'companies', 'suppliers', 'other')); + + +// Get Parameters $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); + // Security check if ($user->socid) { $socid = $user->socid; @@ -117,14 +123,14 @@ if ($object->id > 0) { $morehtmlref .= $object->num_payment ? ' - '.$object->num_payment : ''; // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Amount $morehtmlref .= '
    '.$langs->trans('Amount').' : '. price($object->amount, '', $langs, 0, 0, -1, $conf->currency); $allow_delete = 1; // Bank account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { if ($object->fk_account) { $bankline = new AccountLine($db); $bankline->fetch($object->bank_line); diff --git a/htdocs/fourn/paiement/info.php b/htdocs/fourn/paiement/info.php index 8032b2b418f..5979c2ff1ee 100644 --- a/htdocs/fourn/paiement/info.php +++ b/htdocs/fourn/paiement/info.php @@ -18,20 +18,26 @@ */ /** - * \file htdocs/fourn/paiement/info.php - * \ingroup facture - * \brief Onglet info d'un paiement fournisseur + * \file htdocs/fourn/paiement/info.php + * \ingroup facture, fournisseur + * \brief Tab for Supplier Payment Information */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; + +// Load translation files required by the page $langs->loadLangs(array("bills", "suppliers", "companies")); +// Get Parameters $id = GETPOST('id', 'int'); +// Initialize Objects $object = new PaiementFourn($db); // Load object diff --git a/htdocs/fourn/paiement/list.php b/htdocs/fourn/paiement/list.php index 13812e3595f..c19fc90e5d7 100644 --- a/htdocs/fourn/paiement/list.php +++ b/htdocs/fourn/paiement/list.php @@ -33,6 +33,7 @@ * \brief Payment list for supplier invoices */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -103,7 +104,7 @@ $arrayfields = array( 's.nom' =>array('label'=>"ThirdParty", 'checked'=>1, 'position'=>30), 'c.libelle' =>array('label'=>"Type", 'checked'=>1, 'position'=>40), 'p.num_paiement' =>array('label'=>"Numero", 'checked'=>1, 'position'=>50, 'tooltip'=>"ChequeOrTransferNumber"), - 'ba.label' =>array('label'=>"Account", 'checked'=>1, 'position'=>60, 'enable'=>(!empty($conf->banque->enabled))), + 'ba.label' =>array('label'=>"Account", 'checked'=>1, 'position'=>60, 'enable'=>(isModEnabled("banque"))), 'p.amount' =>array('label'=>"Amount", 'checked'=>1, 'position'=>70), ); $arrayfields = dol_sort_array($arrayfields, 'position'); @@ -123,8 +124,8 @@ if ($user->socid) { // require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; // $object = new PaiementFourn($db); // restrictedArea($user, $object->element); -if ((empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) - || (empty($conf->supplier_invoice->enabled) && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD))) { +if ((!isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) + || (!isModEnabled('supplier_invoice') && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD))) { accessforbidden(); } if ((empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php index a89b25c2201..10c3c0bae78 100644 --- a/htdocs/fourn/product/list.php +++ b/htdocs/fourn/product/list.php @@ -21,18 +21,24 @@ */ /** - * \file htdocs/fourn/product/list.php - * \ingroup produit - * \brief Page to list supplier products and services + * \file htdocs/fourn/product/list.php + * \ingroup product + * \brief Page to list supplier products and services */ + +// Load Dolibarr environment require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; +require_once DOL_DOCUMENT_ROOT .'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT .'/fourn/class/fournisseur.class.php'; -$langs->loadLangs(array("products", "suppliers")); +// Load translation files required by the page +$langs->loadLangs(array('products', 'suppliers')); + + +// Get Parameters $sref = GETPOST('sref', 'alphanohtml'); $sRefSupplier = GETPOST('srefsupplier'); $snom = GETPOST('snom', 'alphanohtml'); @@ -72,7 +78,8 @@ if (empty($user->rights->produit->lire) && empty($user->rights->service->lire)) accessforbidden(); } -$permissiontoadd = ($user->hasRight('produit', 'lire') || $user->hasRight('service', 'lire')); +// Permissions +$permissiontoadd = ($user->hasRight('product', 'read') || $user->hasRight('service', 'read')); /* @@ -111,6 +118,7 @@ if (empty($reshook)) { } } + /* * View */ @@ -152,6 +160,9 @@ if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."product as p"; if ($catid) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid"; @@ -186,20 +197,32 @@ if ($reshook < 0) { } $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - -// Count total nb of records without orderby and limit +// Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} dol_syslog("fourn/product/list.php:", LOG_DEBUG); $resql = $db->query($sql); diff --git a/htdocs/fourn/recap-fourn.php b/htdocs/fourn/recap-fourn.php index 993d772a641..3ef2ef6116e 100644 --- a/htdocs/fourn/recap-fourn.php +++ b/htdocs/fourn/recap-fourn.php @@ -23,6 +23,7 @@ * \brief Page de fiche recap supplier */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; @@ -63,7 +64,7 @@ if ($socid > 0) { dol_banner_tab($societe, 'socid', '', ($user->socid ? 0 : 1), 'rowid', 'nom'); print dol_get_fiche_end(); - if ((!empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_invoice->enabled) && $user->rights->supplier_invoice->lire)) { + if ((isModEnabled("fournisseur") && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_invoice") && $user->rights->supplier_invoice->lire)) { // Invoice list print load_fiche_titre($langs->trans("SupplierPreview")); @@ -92,8 +93,8 @@ if ($socid > 0) { print ''; print ''; - if (!$num > 0) { - print ''; + if ($num <= 0) { + print ''; } $solde = 0; diff --git a/htdocs/ftp/admin/ftpclient.php b/htdocs/ftp/admin/ftpclient.php index cd24a3a881a..42c326b8a9d 100644 --- a/htdocs/ftp/admin/ftpclient.php +++ b/htdocs/ftp/admin/ftpclient.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2011 Juanjo Menent * * This program is free software; you can redistribute it and/or modify @@ -22,15 +22,11 @@ * \brief Admin page to setup FTP client module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -$langs->loadLangs(array("admin", "ftp")); - -// Security check -if (!$user->admin) { - accessforbidden(); -} +$langs->loadLangs(array("admin", "other")); $def = array(); $lastftpentry = 0; @@ -38,6 +34,11 @@ $lastftpentry = 0; $action = GETPOST('action', 'aZ09'); $entry = GETPOST('numero_entry', 'alpha'); +// Security check +if (!$user->admin) { + accessforbidden(); +} + /* * Action @@ -49,8 +50,9 @@ $sql .= " WHERE name like 'FTP_SERVER_%'"; $result = $db->query($sql); if ($result) { $obj = $db->fetch_object($result); + $reg = array(); preg_match('/([0-9]+)$/i', $obj->name, $reg); - if ($reg[1]) { + if (!empty($reg[1])) { $lastftpentry = $reg[1]; } } else { @@ -63,12 +65,12 @@ if ($action == 'add' || GETPOST('modify', 'alpha')) { $error = 0; - if (!GETPOST("$ftp_name", 'alpha')) { + if (!GETPOST($ftp_name, 'alpha')) { $error = 1; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Label")), null, 'errors'); } - if (!GETPOST("$ftp_server", 'alpha')) { + if (!GETPOST($ftp_server, 'alpha')) { $error = 1; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Server")), null, 'errors'); } @@ -170,37 +172,37 @@ if (!function_exists('ftp_connect')) { print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; $defaultpassive = GETPOST("FTP_PASSIVE_".($lastftpentry + 1)); if (!GETPOSTISSET("FTP_PASSIVE_".($lastftpentry + 1))) { @@ -213,11 +215,13 @@ if (!function_exists('ftp_connect')) { print '
    '; print $langs->trans('IncotermLabel'); @@ -3134,10 +3191,10 @@ if ($action == 'create') { } // Intracomm report - if (!empty($conf->intracommreport->enabled)) { + if (isModEnabled('intracommreport')) { $langs->loadLangs(array("intracommreport")); print '
    '; - print ''; +} + +$db->free($resql); + +$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); +$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +print "
    '; + print ''; if ($action != 'editmode' && ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer)) { @@ -3166,26 +3223,31 @@ if ($action == 'create') { print '
    '; print $langs->trans('IntracommReportTransportMode'); print '
    '; - if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency)) { + if (isModEnabled("multicurrency") && ($object->multicurrency_code != $conf->currency)) { // Multicurrency Amount HT print ''; - print ''; + print ''; print ''; // Multicurrency Amount VAT print ''; - print ''; + print ''; print ''; // Multicurrency Amount TTC print ''; - print ''; + print ''; print ''; } // Amount - print ''; - print ''; + print ''; + print ''; + + // VAT + print ''; + print ''; // Amount Local Taxes //TODO: Place into a function to control showing by country or study better option if ($societe->localtax1_assuj == "1") { //Localtax1 print ''; - print ''; + print ''; print ''; } if ($societe->localtax2_assuj == "1") { //Localtax2 print ''; - print ''; + print ''; print ''; } - print ''; + print ''; + print ''; + print ''; print '
    '.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$langs->trans('AmountHT').''.price($object->total_ht, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->trans('AmountVAT').''.price($object->total_tva, 1, $langs, 0, -1, -1, $conf->currency); + print '
    '.$langs->trans('AmountHT').''.price($object->total_ht, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->trans('AmountVAT').''; if (GETPOST('calculationrule')) { $calculationrule = GETPOST('calculationrule', 'alpha'); } else { @@ -3203,25 +3265,28 @@ if ($action == 'create') { $s .= ' / '; $s .= ''.$langs->trans("Mode2").''; print '
    '; - print '         '; print $form->textwithtooltip($s, $langs->trans("CalculationRuleDesc", $calculationrulenum).'
    '.$langs->trans("CalculationRuleDescSupplier"), 2, 1, img_picto('', 'help'), '', 3, '', 0, 'recalculate'); + print '       '; print '
    '; } + print price($object->total_tva, 1, $langs, 0, -1, -1, $conf->currency); print '
    '.$langs->transcountry("AmountLT1", $societe->country_code).''.price($object->total_localtax1, 1, $langs, 0, -1, -1, $conf->currency).''.price($object->total_localtax1, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->transcountry("AmountLT2", $societe->country_code).''.price($object->total_localtax2, 1, $langs, 0, -1, -1, $conf->currency).''.price($object->total_localtax2, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->trans('AmountTTC').''.price($object->total_ttc, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->trans('AmountTTC').''.price($object->total_ttc, 1, $langs, 0, -1, -1, $conf->currency).'
    '; @@ -3236,16 +3301,16 @@ if ($action == 'create') { } $nbrows = 9; $nbcols = 3; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $nbrows++; } - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $nbrows++; $nbcols++; } - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $nbrows++; } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $nbrows += 5; } @@ -3258,7 +3323,7 @@ if ($action == 'create') { } $sql = 'SELECT p.datep as dp, p.ref, p.num_paiement as num_payment, p.rowid, p.fk_bank,'; - $sql .= ' c.id as paiement_type,'; + $sql .= ' c.id as paiement_type, c.code as payment_code,'; $sql .= ' pf.amount,'; $sql .= ' ba.rowid as baid, ba.ref as baref, ba.label, ba.number as banumber, ba.account_number, ba.fk_accountancy_journal'; $sql .= ' FROM '.MAIN_DB_PREFIX.'paiementfourn as p'; @@ -3275,12 +3340,12 @@ if ($action == 'create') { $i = 0; print '
    '; - print ''; + print '
    '; print ''; print ''; print ''; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } print ''; @@ -3295,23 +3360,27 @@ if ($action == 'create') { $paymentstatic->datepaye = $db->jdate($objp->dp); $paymentstatic->ref = ($objp->ref ? $objp->ref : $objp->rowid); $paymentstatic->num_payment = $objp->num_payment; - $paymentstatic->payment_code = $objp->payment_code; + + $paymentstatic->paiementcode = $objp->payment_code; + $paymentstatic->type_code = $objp->payment_code; + $paymentstatic->type_label = $objp->payment_type; print ''; - print ''; print ''; - print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $bankaccountstatic->id = $objp->baid; $bankaccountstatic->ref = $objp->baref; $bankaccountstatic->label = $objp->baref; $bankaccountstatic->number = $objp->banumber; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $bankaccountstatic->account_number = $objp->account_number; $accountingjournal = new AccountingJournal($db); @@ -3481,7 +3550,7 @@ if ($action == 'create') { print ''; // Remainder to pay Multicurrency - if ($object->multicurrency_code != $conf->currency || $object->multicurrency_tx != 1) { + if (isModEnabled('multicurreny') && $object->multicurrency_code != $conf->currency || $object->multicurrency_tx != 1) { print ''; - print ''; + print ''; } - } else // Credit note - { + } else { // Credit note $cssforamountpaymentcomplete = 'amountpaymentneutral'; // Total already paid back @@ -3516,7 +3584,7 @@ if ($action == 'create') { print ''; // Remainder to pay back Multicurrency - if ($object->multicurrency_code != $conf->currency || $object->multicurrency_tx != 1) { + if (isModEnabled('multicurreny') && $object->multicurrency_code != $conf->currency || $object->multicurrency_tx != 1) { print '"; } if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { // Payment mode print ''; } if (!empty($arrayfields['recurring']['checked'])) { diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index e63c8794aad..8783fc59ed7 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -10,7 +10,7 @@ * Copyright (C) 2015 Abbes Bahfir * Copyright (C) 2015-2016 Ferran Marcet * Copyright (C) 2017 Josep Lluís Amador - * Copyright (C) 2018 Charlene Benke + * Copyright (C) 2018-2022 Charlene Benke * Copyright (C) 2018-2020 Frédéric France * Copyright (C) 2019-2021 Alexandre Spangaro * @@ -34,6 +34,7 @@ * \brief List of suppliers invoices */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; @@ -71,12 +72,12 @@ $search_all = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search $search_label = GETPOST("search_label", "alpha"); $search_amount_no_tax = GETPOST("search_amount_no_tax", "alpha"); $search_amount_all_tax = GETPOST("search_amount_all_tax", "alpha"); -$search_product_category = GETPOST('search_product_category', 'int'); $search_ref = GETPOST('sf_ref') ?GETPOST('sf_ref', 'alpha') : GETPOST('search_ref', 'alpha'); $search_refsupplier = GETPOST('search_refsupplier', 'alpha'); $search_type = GETPOST('search_type', 'int'); $search_project = GETPOST('search_project', 'alpha'); $search_company = GETPOST('search_company', 'alpha'); +$search_company_alias = GETPOST('search_company_alias', 'alpha'); $search_montant_ht = GETPOST('search_montant_ht', 'alpha'); $search_montant_vat = GETPOST('search_montant_vat', 'alpha'); $search_montant_localtax1 = GETPOST('search_montant_localtax1', 'alpha'); @@ -108,10 +109,10 @@ $search_datelimit_endmonth = GETPOST('search_datelimit_endmonth', 'int'); $search_datelimit_endyear = GETPOST('search_datelimit_endyear', 'int'); $search_datelimit_start = dol_mktime(0, 0, 0, $search_datelimit_startmonth, $search_datelimit_startday, $search_datelimit_startyear); $search_datelimit_end = dol_mktime(23, 59, 59, $search_datelimit_endmonth, $search_datelimit_endday, $search_datelimit_endyear); -$toselect = GETPOST('toselect', 'array'); $search_btn = GETPOST('button_search', 'alpha'); $search_remove_btn = GETPOST('button_removefilter', 'alpha'); $search_categ_sup = trim(GETPOST("search_categ_sup", 'int')); +$search_product_category = GETPOST('search_product_category', 'int'); $option = GETPOST('search_option'); if ($option == 'late') { @@ -154,9 +155,9 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen $fieldstosearchall = array( 'f.ref'=>'Ref', 'f.ref_supplier'=>'RefSupplier', - 'pd.description'=>'Description', - 's.nom'=>"ThirdParty", 'f.note_public'=>'NotePublic', + 's.nom'=>"ThirdParty", + 'pd.description'=>'Description', ); if (empty($user->socid)) { $fieldstosearchall["f.note_private"] = "NotePrivate"; @@ -172,6 +173,7 @@ $arrayfields = array( 'f.date_lim_reglement'=>array('label'=>"DateDue", 'checked'=>1), 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>0), 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1), + 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>0), 's.town'=>array('label'=>"Town", 'checked'=>-1), 's.zip'=>array('label'=>"Zip", 'checked'=>1), 'state.nom'=>array('label'=>"StateShort", 'checked'=>0), @@ -184,18 +186,18 @@ $arrayfields = array( 'f.total_localtax1'=>array('label'=>$langs->transcountry("AmountLT1", $mysoc->country_code), 'checked'=>0, 'enabled'=>$mysoc->localtax1_assuj == "1", 'position'=>95), 'f.total_localtax2'=>array('label'=>$langs->transcountry("AmountLT2", $mysoc->country_code), 'checked'=>0, 'enabled'=>$mysoc->localtax2_assuj == "1", 'position'=>100), 'f.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0, 'position'=>115), - 'u.login'=>array('label'=>"Author", 'checked'=>1), - 'dynamount_payed'=>array('label'=>"Paid", 'checked'=>0), - 'rtp'=>array('label'=>"Rest", 'checked'=>0), - 'f.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'f.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'f.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'f.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'f.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'multicurrency_dynamount_payed'=>array('label'=>'MulticurrencyAlreadyPaid', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'multicurrency_rtp'=>array('label'=>'MulticurrencyRemainderToPay', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), // Not enabled by default because slow - 'f.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500), - 'f.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), + 'dynamount_payed'=>array('label'=>"Paid", 'checked'=>0, 'position'=>116), + 'rtp'=>array('label'=>"Rest", 'checked'=>0, 'position'=>117), + 'f.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'f.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'f.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'f.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'f.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'multicurrency_dynamount_payed'=>array('label'=>'MulticurrencyAlreadyPaid', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'multicurrency_rtp'=>array('label'=>'MulticurrencyRemainderToPay', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), // Not enabled by default because slow + 'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>500), + 'f.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>501), + 'f.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>502), 'f.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), ); // Extra fields @@ -204,8 +206,8 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); -if ((empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) - || (empty($conf->supplier_invoice->enabled) && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD))) { +if ((!isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) + || (!isModEnabled('supplier_invoice') && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD))) { accessforbidden(); } if ((empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) @@ -246,6 +248,7 @@ if (empty($reshook)) { $search_label = ""; $search_project = ''; $search_company = ""; + $search_company_alias = ""; $search_amount_no_tax = ""; $search_amount_all_tax = ""; $search_montant_ht = ''; @@ -280,10 +283,10 @@ if (empty($reshook)) { $search_datelimit_end = ''; $toselect = array(); $search_array_options = array(); + $search_categ_sup = 0; $filter = ''; $option = ''; $socid = ""; - $search_categ_sup = 0; } // Mass actions @@ -330,7 +333,7 @@ if (empty($reshook)) { $rsql .= " , pfd.date_traite as date_traite"; $rsql .= " , pfd.amount"; $rsql .= " , u.rowid as user_id, u.lastname, u.firstname, u.login"; - $rsql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; + $rsql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pfd"; $rsql .= " , ".MAIN_DB_PREFIX."user as u"; $rsql .= " WHERE fk_facture_fourn = ".((int) $objecttmp->id); $rsql .= " AND pfd.fk_user_demande = u.rowid"; @@ -389,10 +392,11 @@ $facturestatic = new FactureFournisseur($db); $formcompany = new FormCompany($db); $thirdparty = new Societe($db); -// llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores'); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields $sql = "SELECT"; -if ($search_all || $search_product_category > 0) { +if ($search_all) { $sql = 'SELECT DISTINCT'; } $sql .= " f.rowid as facid, f.ref, f.ref_supplier, f.type, f.datef, f.date_lim_reglement as datelimite, f.fk_mode_reglement, f.fk_cond_reglement,"; @@ -401,15 +405,12 @@ $sql .= " f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,"; $sql .= ' f.fk_multicurrency, f.multicurrency_code, f.multicurrency_tx, f.multicurrency_total_ht, f.multicurrency_total_tva as multicurrency_total_vat, f.multicurrency_total_ttc,'; $sql .= " f.note_public, f.note_private,"; $sql .= " f.fk_user_author,"; -$sql .= " s.rowid as socid, s.nom as name, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta as code_compta_client, s.code_compta_fournisseur,"; +$sql .= " s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta as code_compta_client, s.code_compta_fournisseur,"; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; $sql .= " country.code as country_code,"; $sql .= " p.rowid as project_id, p.ref as project_ref, p.title as project_label,"; $sql .= ' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender'; -if ($search_categ_sup && $search_categ_sup != '-1') { - $sql .= ", cs.fk_categorie, cs.fk_soc"; -} // We need dynamount_payed to be able to sort on status (value is surely wrong because we can count several lines several times due to other left join or link with contacts. But what we need is just 0 or > 0) // TODO Better solution to be able to sort on already payed or remain to pay is to store amount_payed in a denormalized field. if (!$search_all) { @@ -423,16 +424,15 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { } // Add fields from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; -if (!empty($search_categ_sup) && $search_categ_supplier != '-1') { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_fournisseur as cs ON s.rowid = cs.fk_soc"; -} - $sql .= ', '.MAIN_DB_PREFIX.'facture_fourn as f'; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (f.rowid = ef.fk_object)"; @@ -440,12 +440,9 @@ if (isset($extrafields->attributes[$object->table_element]['label']) && is_array if (!$search_all) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid'; } -if ($search_all || $search_product_category > 0) { +if ($search_all) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det as pd ON f.rowid=pd.fk_facture_fourn'; } -if ($search_product_category > 0) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; -} $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user AS u ON f.fk_user_author = u.rowid'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = f.fk_projet"; // We'll need this table joined to the select in order to filter by sale @@ -465,9 +462,6 @@ $sql .= ' AND f.entity IN ('.getEntity('facture_fourn').')'; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } -if ($search_product_category > 0) { - $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); -} if ($socid > 0) { $sql .= ' AND s.rowid = '.((int) $socid); } @@ -503,8 +497,15 @@ if ($search_type != '' && $search_type >= 0) { if ($search_project) { $sql .= natural_search('p.ref', $search_project); } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); +if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } if ($search_town) { $sql .= natural_search('s.town', $search_town); @@ -581,11 +582,65 @@ if ($option == 'late') { if ($search_label) { $sql .= natural_search('f.libelle', $search_label); } -if ($search_categ_sup > 0) { - $sql .= " AND cs.fk_categorie = ".((int) $search_categ_sup); +$searchCategorySupplierList = $search_categ_sup ? array($search_categ_sup) : array(); +$searchCategorySupplierOperator = 0; +// Search for tag/category ($searchCategorySupplierList is an array of ID) +if (!empty($searchCategorySupplierList)) { + $searchCategorySupplierSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategorySupplierList as $searchCategorySupplier) { + if (intval($searchCategorySupplier) == -2) { + $searchCategorySupplierSqlList[] = "NOT EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_fournisseur as ck WHERE s.rowid = ck.fk_soc)"; + } elseif (intval($searchCategorySupplier) > 0) { + if ($searchCategorySupplierOperator == 0) { + $searchCategorySupplierSqlList[] = " EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_fournisseur as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie = ".((int) $searchCategorySupplier).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategorySupplier); + } + } + } + if ($listofcategoryid) { + $searchCategorySupplierSqlList[] = " EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_fournisseur as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategorySupplierOperator == 1) { + if (!empty($searchCategorySupplierSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategorySupplierSqlList).")"; + } + } else { + if (!empty($searchCategorySupplierSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategorySupplierSqlList).")"; + } + } } -if ($search_categ_sup == -2) { - $sql .= " AND cs.fk_categorie IS NULL"; +// Search for tag/category ($searchCategoryProductList is an array of ID) +$searchCategoryProductList = $search_product_category ? array($search_product_category) : array(); +$searchCategoryProductOperator = 0; +if (!empty($searchCategoryProductList)) { + $searchCategoryProductSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."facture_fourn_det as fd WHERE fd.fk_facture_fourn = f.rowid AND p.rowid = ck.fk_product)"; + } elseif (intval($searchCategoryProduct) > 0) { + if ($searchCategoryProductOperator == 0) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."facture_fourn_det as fd WHERE fd.fk_facture_fourn = f.rowid AND p.rowid = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProduct); + } + } + } + if ($listofcategoryid) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."facture_fourn_det as fd WHERE fd.fk_facture_fourn = f.rowid AND p.rowid = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProductOperator == 1) { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } + } else { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } + } } if ($search_status != '' && $search_status >= 0) { $sql .= " AND f.fk_statut = ".((int) $search_status); @@ -607,7 +662,7 @@ if ($search_user > 0) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; if (!$search_all) { @@ -617,15 +672,12 @@ if (!$search_all) { $sql .= ' f.fk_multicurrency, f.multicurrency_code, f.multicurrency_tx, f.multicurrency_total_ht, f.multicurrency_total_tva, f.multicurrency_total_ttc,'; $sql .= " f.note_public, f.note_private,"; $sql .= " f.fk_user_author,"; - $sql .= ' s.rowid, s.nom, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,'; + $sql .= ' s.rowid, s.nom, s.name_alias, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,'; $sql .= " typent.code,"; $sql .= " state.code_departement, state.nom,"; $sql .= ' country.code,'; $sql .= " p.rowid, p.ref, p.title,"; $sql .= " u.login, u.lastname, u.firstname, u.email, u.statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender"; - if ($search_categ_sup && $search_categ_sup != '-1') { - $sql .= ", cs.fk_categorie, cs.fk_soc"; - } if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { //prevent error with sql_mode=only_full_group_by @@ -633,8 +685,8 @@ if (!$search_all) { } } // Add GroupBy from hooks - $parameters = array('all' => $all, 'fieldstosearchall' => $fieldstosearchall); - $reshook = $hookmanager->executeHooks('printFieldListGroupBy', $parameters, $object); // Note that $action and $object may have been modified by hook + $parameters = array('all' => $search_all, 'fieldstosearchall' => $fieldstosearchall); + $reshook = $hookmanager->executeHooks('printFieldListGroupBy', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; } else { $sql .= natural_search(array_keys($fieldstosearchall), $search_all); @@ -642,1028 +694,722 @@ if (!$search_all) { // Add HAVING from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - +// Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); -if ($resql) { - $num = $db->num_rows($resql); +if (!$resql) { + dol_print_error($db); +} - $arrayofselected = is_array($toselect) ? $toselect : array(); +$num = $db->num_rows($resql); - if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) { - $obj = $db->fetch_object($resql); - $id = $obj->facid; +$arrayofselected = is_array($toselect) ? $toselect : array(); - header("Location: ".DOL_URL_ROOT.'/fourn/facture/card.php?facid='.$id); - exit; +if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all) { + $obj = $db->fetch_object($resql); + $id = $obj->facid; + + header("Location: ".DOL_URL_ROOT.'/fourn/facture/card.php?facid='.$id); + exit; +} + +llxHeader('', $langs->trans("SuppliersInvoices"), 'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores'); + +if ($socid) { + $soc = new Societe($db); + $soc->fetch($socid); + if (empty($search_company)) { + $search_company = $soc->name; + $search_company_alias = $soc->name_alias; } +} - llxHeader('', $langs->trans("SuppliersInvoices"), 'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores'); - - if ($socid) { - $soc = new Societe($db); - $soc->fetch($socid); - if (empty($search_company)) { - $search_company = $soc->name; - } - } - - $param = '&socid='.$socid; - if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { - $param .= '&contextpage='.urlencode($contextpage); - } - if ($limit > 0 && $limit != $conf->liste_limit) { - $param .= '&limit='.urlencode($limit); - } - if ($search_all) { - $param .= '&search_all='.urlencode($search_all); - } +$param = '&socid='.$socid; +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +if ($search_all) { + $param .= '&search_all='.urlencode($search_all); +} if ($search_date_start) { $param .= buildParamDate('search_date_start', null, '', 'tzserver'); - } +} if ($search_date_end) { $param .= buildParamDate('search_date_end', null, '', 'tzserver'); - } - if ($search_datelimit_startday) { - $param .= '&search_datelimit_startday='.urlencode($search_datelimit_startday); - } - if ($search_datelimit_startmonth) { - $param .= '&search_datelimit_startmonth='.urlencode($search_datelimit_startmonth); - } - if ($search_datelimit_startyear) { - $param .= '&search_datelimit_startyear='.urlencode($search_datelimit_startyear); - } - if ($search_datelimit_endday) { - $param .= '&search_datelimit_endday='.urlencode($search_datelimit_endday); - } - if ($search_datelimit_endmonth) { - $param .= '&search_datelimit_endmonth='.urlencode($search_datelimit_endmonth); - } - if ($search_datelimit_endyear) { - $param .= '&search_datelimit_endyear='.urlencode($search_datelimit_endyear); - } - if ($search_ref) { - $param .= '&search_ref='.urlencode($search_ref); - } - if ($search_refsupplier) { - $param .= '&search_refsupplier='.urlencode($search_refsupplier); - } - if ($search_type != '') { - $param .= '&search_type='.urlencode($search_type); - } - if ($search_label) { - $param .= '&search_label='.urlencode($search_label); - } - if ($search_company) { - $param .= '&search_company='.urlencode($search_company); - } - if ($search_login) { - $param .= '&search_login='.urlencode($search_login); - } - if ($search_montant_ht != '') { - $param .= '&search_montant_ht='.urlencode($search_montant_ht); - } - if ($search_montant_vat != '') { - $param .= '&search_montant_vat='.urlencode($search_montant_vat); - } - if ($search_montant_localtax1 != '') { - $param .= '&search_montant_localtax1='.urlencode($search_montant_localtax1); - } - if ($search_montant_localtax2 != '') { - $param .= '&search_montant_localtax2='.urlencode($search_montant_localtax2); - } - if ($search_montant_ttc != '') { - $param .= '&search_montant_ttc='.urlencode($search_montant_ttc); - } - if ($search_multicurrency_code != '') { - $param .= '&search_multicurrency_code='.urlencode($search_multicurrency_code); - } - if ($search_multicurrency_tx != '') { - $param .= '&search_multicurrency_tx='.urlencode($search_multicurrency_tx); - } - if ($search_multicurrency_montant_ht != '') { - $param .= '&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht); - } - if ($search_multicurrency_montant_vat != '') { - $param .= '&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat); - } - if ($search_multicurrency_montant_ttc != '') { - $param .= '&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc); - } - if ($search_amount_no_tax) { - $param .= '&search_amount_no_tax='.urlencode($search_amount_no_tax); - } - if ($search_amount_all_tax) { - $param .= '&search_amount_all_tax='.urlencode($search_amount_all_tax); - } - if ($search_status >= 0) { - $param .= "&search_status=".urlencode($search_status); - } - if ($show_files) { - $param .= '&show_files='.urlencode($show_files); - } - if ($option) { - $param .= "&search_option=".urlencode($option); - } - if ($optioncss != '') { - $param .= '&optioncss='.urlencode($optioncss); - } - if ($search_categ_sup > 0) { - $param .= '&search_categ_sup='.urlencode($search_categ_sup); - } - if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { - $param .= '&search_type_thirdparty='.urlencode($search_type_thirdparty); - } +} +if ($search_datelimit_startday) { + $param .= '&search_datelimit_startday='.urlencode($search_datelimit_startday); +} +if ($search_datelimit_startmonth) { + $param .= '&search_datelimit_startmonth='.urlencode($search_datelimit_startmonth); +} +if ($search_datelimit_startyear) { + $param .= '&search_datelimit_startyear='.urlencode($search_datelimit_startyear); +} +if ($search_datelimit_endday) { + $param .= '&search_datelimit_endday='.urlencode($search_datelimit_endday); +} +if ($search_datelimit_endmonth) { + $param .= '&search_datelimit_endmonth='.urlencode($search_datelimit_endmonth); +} +if ($search_datelimit_endyear) { + $param .= '&search_datelimit_endyear='.urlencode($search_datelimit_endyear); +} +if ($search_ref) { + $param .= '&search_ref='.urlencode($search_ref); +} +if ($search_refsupplier) { + $param .= '&search_refsupplier='.urlencode($search_refsupplier); +} +if ($search_type != '') { + $param .= '&search_type='.urlencode($search_type); +} +if ($search_label) { + $param .= '&search_label='.urlencode($search_label); +} +if ($search_company) { + $param .= '&search_company='.urlencode($search_company); +} +if ($search_company_alias) { + $param .= '&search_company_alias='.urlencode($search_company_alias); +} +if ($search_login) { + $param .= '&search_login='.urlencode($search_login); +} +if ($search_montant_ht != '') { + $param .= '&search_montant_ht='.urlencode($search_montant_ht); +} +if ($search_montant_vat != '') { + $param .= '&search_montant_vat='.urlencode($search_montant_vat); +} +if ($search_montant_localtax1 != '') { + $param .= '&search_montant_localtax1='.urlencode($search_montant_localtax1); +} +if ($search_montant_localtax2 != '') { + $param .= '&search_montant_localtax2='.urlencode($search_montant_localtax2); +} +if ($search_montant_ttc != '') { + $param .= '&search_montant_ttc='.urlencode($search_montant_ttc); +} +if ($search_multicurrency_code != '') { + $param .= '&search_multicurrency_code='.urlencode($search_multicurrency_code); +} +if ($search_multicurrency_tx != '') { + $param .= '&search_multicurrency_tx='.urlencode($search_multicurrency_tx); +} +if ($search_multicurrency_montant_ht != '') { + $param .= '&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht); +} +if ($search_multicurrency_montant_vat != '') { + $param .= '&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat); +} +if ($search_multicurrency_montant_ttc != '') { + $param .= '&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc); +} +if ($search_amount_no_tax) { + $param .= '&search_amount_no_tax='.urlencode($search_amount_no_tax); +} +if ($search_amount_all_tax) { + $param .= '&search_amount_all_tax='.urlencode($search_amount_all_tax); +} +if ($search_status >= 0) { + $param .= "&search_status=".urlencode($search_status); +} +if ($show_files) { + $param .= '&show_files='.urlencode($show_files); +} +if ($option) { + $param .= "&search_option=".urlencode($option); +} +if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); +} +if ($search_categ_sup > 0) { + $param .= '&search_categ_sup='.urlencode($search_categ_sup); +} +if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { + $param .= '&search_type_thirdparty='.urlencode($search_type_thirdparty); +} - // Add $param from extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; - // Add $param from hooks - $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook - $param .= $hookmanager->resPrint; +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// Add $param from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +$param .= $hookmanager->resPrint; - // List of mass actions available - $arrayofmassactions = array( - 'validate'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate"), - 'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), - //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), - //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), +// List of mass actions available +$arrayofmassactions = array( + 'validate'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate"), + 'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), + //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), + //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), +); + +if (isModEnabled('paymentbybanktransfer') && !empty($user->rights->paymentbybanktransfer->create)) { + $langs->load('withdrawals'); + $arrayofmassactions['banktransfertrequest'] = img_picto('', 'payment', 'class="pictofixedwidth"').$langs->trans("MakeBankTransferOrder"); +} +if ($user->rights->fournisseur->facture->supprimer) { + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} +if (in_array($massaction, array('presend', 'predelete'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); + +$url = DOL_URL_ROOT.'/fourn/facture/card.php?action=create'; +if (!empty($socid)) { + $url .= '&socid='.urlencode($socid); +} +$newcardbutton = dolGetButtonTitle($langs->trans('NewBill'), '', 'fa fa-plus-circle', $url, '', ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer)); + +$i = 0; +print '
    '."\n"; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +print_barre_liste($langs->trans("BillsSuppliers").($socid ? ' '.$soc->name : ''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'supplier_invoice', 0, $newcardbutton, '', $limit, 0, 0, 1); + +$topicmail = "SendBillRef"; +$modelmail = "invoice_supplier_send"; +$objecttmp = new FactureFournisseur($db); +$trackid = 'sinv'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + +if ($search_all) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + } + print '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '; +} + +// If the user can view prospects other than his' +$moreforfilter = ''; +if ($user->rights->user->user->lire) { + $langs->load("commercial"); + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth200'); + $moreforfilter .= '
    '; +} +// If the user can view prospects other than his' +if ($user->rights->user->user->lire) { + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('LinkedToSpecificUsers'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200'); + $moreforfilter .= '
    '; +} +// If the user can view prospects other than his' +if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('IncludingProductWithTag'); + $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1); + $moreforfilter .= '
    '; +} + +if (isModEnabled('categorie')) { + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $moreforfilter .= '
    '; + $tmptitle = $langs->trans('SuppliersCategoriesShort'); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('supplier', $search_categ_sup, 'search_categ_sup', 1, $tmptitle); + $moreforfilter .= '
    '; +} +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; +} else { + $moreforfilter = $hookmanager->resPrint; +} + +if ($moreforfilter) { + print '
    '; + print $moreforfilter; + print '
    '; +} + +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields +if ($massactionbutton) { + $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); +} + +print '
    '; +print '
    '.($object->type == FactureFournisseur::TYPE_CREDIT_NOTE ? $langs->trans("PaymentsBack") : $langs->trans('Payments')).''.$langs->trans('Date').''.$langs->trans('Type').''.$langs->trans('BankAccount').''.$langs->trans('Amount').'
    '; + print ''; print $paymentstatic->getNomUrl(1); print ''.dol_print_date($db->jdate($objp->dp), 'day').''; - print $form->form_modes_reglement(null, $objp->paiement_type, 'none').' '.$objp->num_payment; + $s = $form->form_modes_reglement(null, $objp->paiement_type, 'none', '', 1, 0, '', 1).' '.$objp->num_payment; + print ''; + print $s; print ''.price($resteapayeraffiche).' 
    '; print ''; print $langs->trans('RemainderToPayMulticurrency'); @@ -3490,10 +3559,9 @@ if ($action == 'create') { } print ''; print ''.(!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency).' '.price(price2num($object->multicurrency_tx*$resteapayeraffiche, 'MT')).' 
    '.(!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency).' '.price(price2num($multicurrency_resteapayer, 'MT')).' 
    '.price($sign * $resteapayeraffiche).' 
    '; print ''; print $langs->trans('RemainderToPayBackMulticurrency'); @@ -3559,7 +3627,7 @@ if ($action == 'create') { /* * Lines */ - print '
    '; + print ''; print ''; print ''; print ''; @@ -3577,14 +3645,14 @@ if ($action == 'create') { global $forceall, $senderissupplier, $dateSelector, $inputalsopricewithtax; $forceall = 1; $dateSelector = 0; $inputalsopricewithtax = 1; $senderissupplier = 2; // $senderissupplier=2 is same than 1 but disable test on minimum qty and disable autofill qty with minimum. - //if (! empty($conf->global->SUPPLIER_INVOICE_WITH_NOPRICEDEFINED)) $senderissupplier=2; + //if (!empty($conf->global->SUPPLIER_INVOICE_WITH_NOPRICEDEFINED)) $senderissupplier=2; if (!empty($conf->global->SUPPLIER_INVOICE_WITH_PREDEFINED_PRICES_ONLY)) { $senderissupplier = 1; } // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $societe, $mysoc, $lineid, 1); + $object->printObjectLines($action, $societe, $mysoc, $lineid, 1); } $num = count($object->lines); @@ -3640,7 +3708,7 @@ if ($action == 'create') { || ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && empty($discount->id)) || ($object->type == FactureFournisseur::TYPE_DEPOSIT && empty($discount->id))) && ($object->statut == FactureFournisseur::STATUS_CLOSED || $object->statut == FactureFournisseur::STATUS_ABANDONED)) { // A paid invoice (partially or completely) - if (!$facidnext && $object->close_code != 'replaced' && $usercancreate) { // Not replaced by another invoice + if (!$objectidnext && $object->close_code != 'replaced' && $usercancreate) { // Not replaced by another invoice print ''.$langs->trans('ReOpen').''; } else { if ($usercancreate) { @@ -3730,7 +3798,7 @@ if ($action == 'create') { } // Create event - /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. + /*if ($conf->agenda->enabled && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. { print ''; }*/ @@ -3756,21 +3824,26 @@ if ($action == 'create') { // Delete $isErasable = $object->is_erasable(); - if ($action != 'confirm_edit' && ($user->rights->fournisseur->facture->supprimer || ($usercancreate && $isErasable == 1))) { // isErasable = 1 means draft with temporary ref (draft can always be deleted with no need of permissions) - //var_dump($isErasable); + if ($action != 'confirm_edit' && ($usercandelete || ($usercancreate && $isErasable == 1))) { // isErasable = 1 means draft with temporary ref (draft can always be deleted with no need of permissions) + $enableDelete = false; + $htmltooltip = ''; + $params = (empty($conf->use_javascript_ajax) ? array() : array('attr' => array('class' => 'reposition'))); + //var_dump($isErasable); var_dump($params); if ($isErasable == -4) { - print ''.$langs->trans('Delete').''; + $htmltooltip = $langs->trans("DisabledBecausePayments"); } elseif ($isErasable == -3) { // Should never happen with supplier invoice - print ''.$langs->trans('Delete').''; + $htmltooltip = $langs->trans("DisabledBecauseNotLastSituationInvoice"); } elseif ($isErasable == -2) { // Should never happen with supplier invoice - print ''.$langs->trans('Delete').''; + $htmltooltip = $langs->trans("DisabledBecauseNotLastInvoice"); } elseif ($isErasable == -1) { - print ''.$langs->trans('Delete').''; + $htmltooltip = $langs->trans("DisabledBecauseDispatchedInBookkeeping"); } elseif ($isErasable <= 0) { // Any other cases - print ''.$langs->trans('Delete').''; + $htmltooltip = $langs->trans("DisabledBecauseNotErasable"); } else { - print ''.$langs->trans('Delete').''; + $enableDelete = true; + $htmltooltip = ''; } + print dolGetButtonAction($htmltooltip, $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), $object->id, $enableDelete, $params); } print ''; diff --git a/htdocs/fourn/facture/contact.php b/htdocs/fourn/facture/contact.php index faa852d7984..542b37db092 100644 --- a/htdocs/fourn/facture/contact.php +++ b/htdocs/fourn/facture/contact.php @@ -25,13 +25,14 @@ * \brief Onglet de gestion des contacts des factures */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -50,6 +51,9 @@ $hookmanager->initHooks(array('invoicesuppliercardcontact')); $object = new FactureFournisseur($db); +$usercancreate = ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer); +$permissiontoadd = $usercancreate; + /* * Ajout d'un nouveau contact @@ -99,11 +103,6 @@ if ($action == 'addcontact' && ($user->rights->fournisseur->facture->creer || $u /* * View */ - -$title = $langs->trans('SupplierInvoice')." - ".$langs->trans('ContactsAddresses'); -$helpurl = "EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores"; -llxHeader('', $title, $helpurl); - $form = new Form($db); $formcompany = new FormCompany($db); $contactstatic = new Contact($db); @@ -122,6 +121,10 @@ if ($id > 0 || !empty($ref)) { $alreadypaid = $object->getSommePaiement(); + $title = $object->ref." - ".$langs->trans('ContactsAddresses'); + $helpurl = "EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores"; + llxHeader('', $title, $helpurl); + $head = facturefourn_prepare_head($object); print dol_get_fiche_head($head, 'contact', $langs->trans('SupplierInvoice'), -1, 'supplier_invoice'); @@ -133,40 +136,28 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherBills").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->facture->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php index 5b7d797a02f..03012acbcaf 100644 --- a/htdocs/fourn/facture/document.php +++ b/htdocs/fourn/facture/document.php @@ -28,6 +28,7 @@ * \brief Page to manage documents joined to vendor invoices */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; @@ -35,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -94,7 +95,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; $form = new Form($db); -$title = $langs->trans('SupplierInvoice')." - ".$langs->trans('Documents'); +$title = $object->ref." - ".$langs->trans('Documents'); $helpurl = "EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores"; llxHeader('', $title, $helpurl); @@ -111,40 +112,28 @@ if ($object->id > 0) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherBills").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->facture->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/fourn/facture/index.php b/htdocs/fourn/facture/index.php index 9546d434bb9..0b6baf3dbb2 100644 --- a/htdocs/fourn/facture/index.php +++ b/htdocs/fourn/facture/index.php @@ -21,6 +21,7 @@ * \brief Home page of customer invoices area */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; diff --git a/htdocs/fourn/facture/info.php b/htdocs/fourn/facture/info.php index 0cbf0f17512..9223d47b791 100644 --- a/htdocs/fourn/facture/info.php +++ b/htdocs/fourn/facture/info.php @@ -25,12 +25,13 @@ * \brief Page des informations d'une facture fournisseur */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -48,24 +49,24 @@ $hookmanager->initHooks(array('invoicesuppliercardinfo')); $object = new FactureFournisseur($db); +$usercancreate = ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer); +$permissiontoadd = $usercancreate; + /* * View */ $form = new Form($db); - -$title = $langs->trans('SupplierInvoice')." - ".$langs->trans('Info'); -$helpurl = "EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores"; -llxHeader('', $title, $helpurl); - $object->fetch($id, $ref); $object->fetch_thirdparty(); - $object->info($object->id); - $alreadypaid = $object->getSommePaiement(); +$title = $object->ref." - ".$langs->trans('Info'); +$helpurl = "EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores"; +llxHeader('', $title, $helpurl); + $head = facturefourn_prepare_head($object); $titre = $langs->trans('SupplierInvoice'); print dol_get_fiche_head($head, 'info', $langs->trans('SupplierInvoice'), -1, 'supplier_invoice'); @@ -77,40 +78,28 @@ $morehtmlref = '
    '; $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty -$morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); +$morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherBills").')'; } // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->facture->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/fourn/facture/list-rec.php b/htdocs/fourn/facture/list-rec.php index 7da3a224d4f..e77000b45d3 100644 --- a/htdocs/fourn/facture/list-rec.php +++ b/htdocs/fourn/facture/list-rec.php @@ -29,6 +29,7 @@ * \brief Page to show list of template/recurring invoices */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture-rec.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; @@ -248,7 +249,7 @@ llxHeader('', $langs->trans("RepeatableSupplierInvoices"), $help_url); $form = new Form($db); $formother = new FormOther($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } $companystatic = new Societe($db); @@ -521,13 +522,13 @@ if ($resql) { if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { // Payment term print '
    '; - $form->select_conditions_paiements($search_payment_term, 'search_payment_term', -1, 1, 1, 'maxwidth100'); + print $form->getSelectConditionsPaiements($search_payment_term, 'search_payment_term', -1, 1, 1, 'maxwidth100'); print "'; - $form->select_types_paiements($search_payment_mode, 'search_payment_mode', '', 0, 1, 1, 0, 1, 'maxwidth100'); + print $form->select_types_paiements($search_payment_mode, 'search_payment_mode', '', 0, 1, 1, 0, 1, 'maxwidth100', 1); print '
    '."\n"; + +// Line for filters +print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} +// Ref +if (!empty($arrayfields['f.ref']['checked'])) { + print ''; +} +// Ref supplier +if (!empty($arrayfields['f.ref_supplier']['checked'])) { + print ''; +} +// Type +if (!empty($arrayfields['f.type']['checked'])) { + print ''; +} +// Label +if (!empty($arrayfields['f.label']['checked'])) { + print ''; +} +// Date invoice +if (!empty($arrayfields['f.datef']['checked'])) { + print ''; +} +// Date due +if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { + print ''; +} +// Project +if (!empty($arrayfields['p.ref']['checked'])) { + print ''; +} +// Thirpdarty +if (!empty($arrayfields['s.nom']['checked'])) { + print ''; +} +// Alias +if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; +} +// Town +if (!empty($arrayfields['s.town']['checked'])) { + print ''; +} +// Zip +if (!empty($arrayfields['s.zip']['checked'])) { + print ''; +} +// State +if (!empty($arrayfields['state.nom']['checked'])) { + print ''; +} +// Country +if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; +} +// Company type +if (!empty($arrayfields['typent.code']['checked'])) { + print ''; +} +// Condition of payment +if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { + print ''; +} +// Payment mode +if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { + print ''; +} +if (!empty($arrayfields['f.total_ht']['checked'])) { + // Amount without tax + print ''; +} +if (!empty($arrayfields['f.total_vat']['checked'])) { + // Amount vat + print ''; +} +if (!empty($arrayfields['f.total_localtax1']['checked'])) { + // Amount tax 1 + print ''; +} +if (!empty($arrayfields['f.total_localtax2']['checked'])) { + // Amount tax 2 + print ''; +} +if (!empty($arrayfields['f.total_ttc']['checked'])) { + // Amount inc tac + print ''; +} +if (!empty($arrayfields['u.login']['checked'])) { + // Author + print ''; +} +if (!empty($arrayfields['dynamount_payed']['checked'])) { + print ''; +} +if (!empty($arrayfields['rtp']['checked'])) { + print ''; +} +if (!empty($arrayfields['f.multicurrency_code']['checked'])) { + // Currency + print ''; +} +if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { + // Currency rate + print ''; +} +if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { + // Amount + print ''; +} +if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { + // Amount + print ''; +} +if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { + // Amount + print ''; +} +if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { + print ''; +} +if (!empty($arrayfields['multicurrency_rtp']['checked'])) { + print ''; +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; - if (!empty($conf->paymentbybanktransfer->enabled) && !empty($user->rights->paymentbybanktransfer->create)) { - $langs->load('withdrawals'); - $arrayofmassactions['banktransfertrequest'] = img_picto('', 'payment', 'class="pictofixedwidth"').$langs->trans("MakeBankTransferOrder"); - } - if ($user->rights->fournisseur->facture->supprimer) { - $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); - } - if (in_array($massaction, array('presend', 'predelete'))) { - $arrayofmassactions = array(); - } - $massactionbutton = $form->selectMassAction('', $arrayofmassactions); - - $url = DOL_URL_ROOT.'/fourn/facture/card.php?action=create'; - if (!empty($socid)) { - $url .= '&socid='.urlencode($socid); - } - $newcardbutton = dolGetButtonTitle($langs->trans('NewBill'), '', 'fa fa-plus-circle', $url, '', ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer)); - - $i = 0; - print ''."\n"; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print_barre_liste($langs->trans("BillsSuppliers").($socid ? ' '.$soc->name : ''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'supplier_invoice', 0, $newcardbutton, '', $limit, 0, 0, 1); - - $topicmail = "SendBillRef"; - $modelmail = "invoice_supplier_send"; - $objecttmp = new FactureFournisseur($db); - $trackid = 'sinv'.$object->id; - include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; - - if ($search_all) { - foreach ($fieldstosearchall as $key => $val) { - $fieldstosearchall[$key] = $langs->trans($val); - } - print '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '; - } - - // If the user can view prospects other than his' - $moreforfilter = ''; - if ($user->rights->user->user->lire) { - $langs->load("commercial"); - $moreforfilter .= '
    '; - $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); - $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth200'); - $moreforfilter .= '
    '; - } - // If the user can view prospects other than his' - if ($user->rights->user->user->lire) { - $moreforfilter .= '
    '; - $tmptitle = $langs->trans('LinkedToSpecificUsers'); - $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200'); - $moreforfilter .= '
    '; - } - // If the user can view prospects other than his' - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { - include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; - $moreforfilter .= '
    '; - $tmptitle = $langs->trans('IncludingProductWithTag'); - $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); - $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1); - $moreforfilter .= '
    '; - } - - if (!empty($conf->categorie->enabled)) { - require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; - $moreforfilter .= '
    '; - $tmptitle = $langs->trans('SuppliersCategoriesShort'); - $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('supplier', $search_categ_sup, 'search_categ_sup', 1, $tmptitle); - $moreforfilter .= '
    '; - } - $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook - if (empty($reshook)) { - $moreforfilter .= $hookmanager->resPrint; - } else { - $moreforfilter = $hookmanager->resPrint; - } - - if ($moreforfilter) { - print '
    '; - print $moreforfilter; - print '
    '; - } - - $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields - if ($massactionbutton) { - $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); - } - - print '
    '; - print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + print ''; + print ''; + print ''; + print ''; + $listtype = array( + FactureFournisseur::TYPE_STANDARD=>$langs->trans("InvoiceStandard"), + FactureFournisseur::TYPE_REPLACEMENT=>$langs->trans("InvoiceReplacement"), + FactureFournisseur::TYPE_CREDIT_NOTE=>$langs->trans("InvoiceAvoir"), + FactureFournisseur::TYPE_DEPOSIT=>$langs->trans("InvoiceDeposit"), ); + /* + if (!empty($conf->global->INVOICE_USE_SITUATION)) + { + $listtype[Facture::TYPE_SITUATION] = $langs->trans("InvoiceSituation"); + } + */ + //$listtype[Facture::TYPE_PROFORMA]=$langs->trans("InvoiceProForma"); // A proformat invoice is not an invoice but must be an order. + print $form->selectarray('search_type', $listtype, $search_type, 1, 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth100'); + print ''; + print ''; + print ''; + print '
    '; + print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_date_end ? $search_date_end : -1, 'search_date_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; + print '
    '; + print '
    '; + /* + print $langs->trans('From').' '; + print $form->selectDate($search_datelimit_start ? $search_datelimit_start : -1, 'search_datelimit_start', 0, 0, 1); + print '
    '; + print '
    '; + print $langs->trans('to').' ';*/ + print $form->selectDate($search_datelimit_end ? $search_datelimit_end : -1, 'search_datelimit_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("Before")); + print '
    '.$langs->trans("Alert"); + print '
    '; + print '
    0 ? " disabled" : "").'>'; + print ''; + print ''; + print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100'); + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), '', 1); + print ''; + print $form->getSelectConditionsPaiements($search_paymentcond, 'search_paymentcond', -1, 1, 1, 'maxwidth100'); + print ''; + print $form->select_types_paiements($search_paymentmode, 'search_paymentmode', '', 0, 1, 1, 20, 1, 'maxwidth100', 1); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
    '."\n"; - - // Line for filters - print ''; - // Ref - if (!empty($arrayfields['f.ref']['checked'])) { - print ''; - } - // Ref supplier - if (!empty($arrayfields['f.ref_supplier']['checked'])) { - print ''; - } - // Type - if (!empty($arrayfields['f.type']['checked'])) { - print ''; - } - // Label - if (!empty($arrayfields['f.label']['checked'])) { - print ''; - } - // Date invoice - if (!empty($arrayfields['f.datef']['checked'])) { - print ''; - } - // Date due - if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { - print ''; - } - // Project - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; - } - // Thirpdarty - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print ''; - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - } - // Company type - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - } - // Condition of payment - if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { - print ''; - } - // Payment mode - if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { - print ''; - } - if (!empty($arrayfields['f.total_ht']['checked'])) { - // Amount without tax - print ''; - } - if (!empty($arrayfields['f.total_vat']['checked'])) { - // Amount vat - print ''; - } - if (!empty($arrayfields['f.total_localtax1']['checked'])) { - // Amount tax 1 - print ''; - } - if (!empty($arrayfields['f.total_localtax2']['checked'])) { - // Amount tax 2 - print ''; - } - if (!empty($arrayfields['f.total_ttc']['checked'])) { - // Amount inc tac - print ''; - } - if (!empty($arrayfields['u.login']['checked'])) { - // Author - print ''; - } - if (!empty($arrayfields['dynamount_payed']['checked'])) { - print ''; - } - if (!empty($arrayfields['rtp']['checked'])) { - print ''; - } - if (!empty($arrayfields['f.multicurrency_code']['checked'])) { - // Currency - print ''; - } - if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { - // Currency rate - print ''; - } - if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { - // Amount - print ''; - } - if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { - // Amount - print ''; - } - if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { - // Amount - print ''; - } - if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { - print ''; - } - if (!empty($arrayfields['multicurrency_rtp']['checked'])) { - print ''; - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; - - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields); - $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['f.datec']['checked'])) { - print ''; - } - // Date modification - if (!empty($arrayfields['f.tms']['checked'])) { - print ''; - } - // Status - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; - } - // Action column +// Fields from hook +$parameters = array('arrayfields'=>$arrayfields); +$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Date creation +if (!empty($arrayfields['f.datec']['checked'])) { + print ''; +} +// Date modification +if (!empty($arrayfields['f.tms']['checked'])) { + print ''; +} +// Status +if (!empty($arrayfields['f.fk_statut']['checked'])) { + print ''; +} +// Action column +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print ''; +} - print "\n"; +print "\n"; - print ''; - if (!empty($arrayfields['f.ref']['checked'])) { - print_liste_field_titre($arrayfields['f.ref']['label'], $_SERVER['PHP_SELF'], 'f.ref,f.rowid', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.ref_supplier']['checked'])) { - print_liste_field_titre($arrayfields['f.ref_supplier']['label'], $_SERVER["PHP_SELF"], 'f.ref_supplier', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.type']['checked'])) { - print_liste_field_titre($arrayfields['f.type']['label'], $_SERVER["PHP_SELF"], 'f.type', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.label']['checked'])) { - print_liste_field_titre($arrayfields['f.label']['label'], $_SERVER['PHP_SELF'], "f.libelle,f.rowid", '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.datef']['checked'])) { - print_liste_field_titre($arrayfields['f.datef']['label'], $_SERVER['PHP_SELF'], 'f.datef,f.rowid', '', $param, '', $sortfield, $sortorder, 'center '); - } - if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { - print_liste_field_titre($arrayfields['f.date_lim_reglement']['label'], $_SERVER['PHP_SELF'], "f.date_lim_reglement", '', $param, '', $sortfield, $sortorder, 'center '); - } - if (!empty($arrayfields['p.ref']['checked'])) { - print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER['PHP_SELF'], "p.ref", '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['s.nom']['checked'])) { - print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER['PHP_SELF'], 's.nom', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['s.town']['checked'])) { - print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['s.zip']['checked'])) { - print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder, 'center '); - } - if (!empty($arrayfields['state.nom']['checked'])) { - print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['country.code_iso']['checked'])) { - print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center '); - } - if (!empty($arrayfields['typent.code']['checked'])) { - print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, '', $sortfield, $sortorder, 'center '); - } - if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { - print_liste_field_titre($arrayfields['f.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "f.fk_cond_reglement", "", $param, "", $sortfield, $sortorder); - } - if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { - print_liste_field_titre($arrayfields['f.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "f.fk_mode_reglement", "", $param, "", $sortfield, $sortorder); - } - if (!empty($arrayfields['f.total_ht']['checked'])) { - print_liste_field_titre($arrayfields['f.total_ht']['label'], $_SERVER['PHP_SELF'], 'f.total_ht', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['f.total_vat']['checked'])) { - print_liste_field_titre($arrayfields['f.total_vat']['label'], $_SERVER['PHP_SELF'], 'f.total_tva', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['f.total_localtax1']['checked'])) { - print_liste_field_titre($arrayfields['f.total_localtax1']['label'], $_SERVER['PHP_SELF'], 'f.localtax1', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['f.total_localtax2']['checked'])) { - print_liste_field_titre($arrayfields['f.total_localtax2']['label'], $_SERVER['PHP_SELF'], 'f.localtax2', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['f.total_ttc']['checked'])) { - print_liste_field_titre($arrayfields['f.total_ttc']['label'], $_SERVER['PHP_SELF'], 'f.total_ttc', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['u.login']['checked'])) { - print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'align="center"', $sortfield, $sortorder); - } - if (!empty($arrayfields['dynamount_payed']['checked'])) { - print_liste_field_titre($arrayfields['dynamount_payed']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['rtp']['checked'])) { - print_liste_field_titre($arrayfields['rtp']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right '); - } - if (!empty($arrayfields['f.multicurrency_code']['checked'])) { - print_liste_field_titre($arrayfields['f.multicurrency_code']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_code', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { - print_liste_field_titre($arrayfields['f.multicurrency_tx']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_tx', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { - print_liste_field_titre($arrayfields['f.multicurrency_total_ht']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_total_ht', '', $param, 'class="right"', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { - print_liste_field_titre($arrayfields['f.multicurrency_total_vat']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_total_tva', '', $param, 'class="right"', $sortfield, $sortorder); - } - if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { - print_liste_field_titre($arrayfields['f.multicurrency_total_ttc']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_total_ttc', '', $param, 'class="right"', $sortfield, $sortorder); - } - if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { - print_liste_field_titre($arrayfields['multicurrency_dynamount_payed']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); - } - if (!empty($arrayfields['multicurrency_rtp']['checked'])) { - print_liste_field_titre($arrayfields['multicurrency_rtp']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; - // Hook fields - $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); - $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (!empty($arrayfields['f.datec']['checked'])) { - print_liste_field_titre($arrayfields['f.datec']['label'], $_SERVER["PHP_SELF"], "f.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); - } - if (!empty($arrayfields['f.tms']['checked'])) { - print_liste_field_titre($arrayfields['f.tms']['label'], $_SERVER["PHP_SELF"], "f.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); - } - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print_liste_field_titre($arrayfields['f.fk_statut']['label'], $_SERVER["PHP_SELF"], "fk_statut,paye,type", "", $param, '', $sortfield, $sortorder, 'right '); - } +print ''; +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); - print "\n"; +} +if (!empty($arrayfields['f.ref']['checked'])) { + print_liste_field_titre($arrayfields['f.ref']['label'], $_SERVER['PHP_SELF'], 'f.ref,f.rowid', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.ref_supplier']['checked'])) { + print_liste_field_titre($arrayfields['f.ref_supplier']['label'], $_SERVER["PHP_SELF"], 'f.ref_supplier', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.type']['checked'])) { + print_liste_field_titre($arrayfields['f.type']['label'], $_SERVER["PHP_SELF"], 'f.type', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.label']['checked'])) { + print_liste_field_titre($arrayfields['f.label']['label'], $_SERVER['PHP_SELF'], "f.libelle,f.rowid", '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.datef']['checked'])) { + print_liste_field_titre($arrayfields['f.datef']['label'], $_SERVER['PHP_SELF'], 'f.datef,f.rowid', '', $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { + print_liste_field_titre($arrayfields['f.date_lim_reglement']['label'], $_SERVER['PHP_SELF'], "f.date_lim_reglement", '', $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['p.ref']['checked'])) { + print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER['PHP_SELF'], "p.ref", '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['s.nom']['checked'])) { + print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER['PHP_SELF'], 's.nom', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER['PHP_SELF'], 's.name_alias', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['s.town']['checked'])) { + print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['s.zip']['checked'])) { + print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['state.nom']['checked'])) { + print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.name_alias", "", $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['state.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['state.name_alias']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['country.code_iso']['checked'])) { + print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['typent.code']['checked'])) { + print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { + print_liste_field_titre($arrayfields['f.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "f.fk_cond_reglement", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { + print_liste_field_titre($arrayfields['f.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "f.fk_mode_reglement", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['f.total_ht']['checked'])) { + print_liste_field_titre($arrayfields['f.total_ht']['label'], $_SERVER['PHP_SELF'], 'f.total_ht', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['f.total_vat']['checked'])) { + print_liste_field_titre($arrayfields['f.total_vat']['label'], $_SERVER['PHP_SELF'], 'f.total_tva', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['f.total_localtax1']['checked'])) { + print_liste_field_titre($arrayfields['f.total_localtax1']['label'], $_SERVER['PHP_SELF'], 'f.localtax1', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['f.total_localtax2']['checked'])) { + print_liste_field_titre($arrayfields['f.total_localtax2']['label'], $_SERVER['PHP_SELF'], 'f.localtax2', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['f.total_ttc']['checked'])) { + print_liste_field_titre($arrayfields['f.total_ttc']['label'], $_SERVER['PHP_SELF'], 'f.total_ttc', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['u.login']['checked'])) { + print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'align="center"', $sortfield, $sortorder); +} +if (!empty($arrayfields['dynamount_payed']['checked'])) { + print_liste_field_titre($arrayfields['dynamount_payed']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['rtp']['checked'])) { + print_liste_field_titre($arrayfields['rtp']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['f.multicurrency_code']['checked'])) { + print_liste_field_titre($arrayfields['f.multicurrency_code']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_code', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { + print_liste_field_titre($arrayfields['f.multicurrency_tx']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_tx', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { + print_liste_field_titre($arrayfields['f.multicurrency_total_ht']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_total_ht', '', $param, 'class="right"', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { + print_liste_field_titre($arrayfields['f.multicurrency_total_vat']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_total_tva', '', $param, 'class="right"', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { + print_liste_field_titre($arrayfields['f.multicurrency_total_ttc']['label'], $_SERVER['PHP_SELF'], 'f.multicurrency_total_ttc', '', $param, 'class="right"', $sortfield, $sortorder); +} +if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { + print_liste_field_titre($arrayfields['multicurrency_dynamount_payed']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); +} +if (!empty($arrayfields['multicurrency_rtp']['checked'])) { + print_liste_field_titre($arrayfields['multicurrency_rtp']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +// Hook fields +$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); +$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +if (!empty($arrayfields['f.datec']['checked'])) { + print_liste_field_titre($arrayfields['f.datec']['label'], $_SERVER["PHP_SELF"], "f.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['f.tms']['checked'])) { + print_liste_field_titre($arrayfields['f.tms']['label'], $_SERVER["PHP_SELF"], "f.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['f.fk_statut']['checked'])) { + print_liste_field_titre($arrayfields['f.fk_statut']['label'], $_SERVER["PHP_SELF"], "fk_statut,paye,type", "", $param, '', $sortfield, $sortorder, 'right '); +} +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} +print "\n"; - $facturestatic = new FactureFournisseur($db); - $supplierstatic = new Fournisseur($db); - $projectstatic = new Project($db); - $userstatic = new User($db); +$facturestatic = new FactureFournisseur($db); +$supplierstatic = new Fournisseur($db); +$projectstatic = new Project($db); +$userstatic = new User($db); - if ($num > 0) { - $i = 0; - $totalarray = array(); - while ($i < min($num, $limit)) { - $obj = $db->fetch_object($resql); +if ($num > 0) { + $i = 0; + $totalarray = array(); + $totalarray['nbfield']=0; + $totalarray['val'] = array(); + $totalarray['val']['f.total_ht']=0; + $totalarray['val']['f.total_vat']=0; + $totalarray['val']['f.total_localtax1']=0; + $totalarray['val']['f.total_localtax1']=0; + $totalarray['val']['f.total_ttc']=0; - $datelimit = $db->jdate($obj->datelimite); - $facturestatic->id = $obj->facid; - $facturestatic->ref = $obj->ref; - $facturestatic->type = $obj->type; - $facturestatic->ref_supplier = $obj->ref_supplier; - $facturestatic->date_echeance = $db->jdate($obj->datelimite); - $facturestatic->statut = $obj->fk_statut; - $facturestatic->note_public = $obj->note_public; - $facturestatic->note_private = $obj->note_private; - $facturestatic->multicurrency_code = $obj->multicurrency_code; - $facturestatic->multicurrency_tx = $obj->multicurrency_tx; - $facturestatic->multicurrency_total_ht = $obj->multicurrency_total_ht; - $facturestatic->multicurrency_total_tva = $obj->multicurrency_total_vat; - $facturestatic->multicurrency_total_ttc = $obj->multicurrency_total_ttc; + while ($i < min($num, $limit)) { + $obj = $db->fetch_object($resql); - $thirdparty->id = $obj->socid; - $thirdparty->name = $obj->name; - $thirdparty->client = $obj->client; - $thirdparty->fournisseur = $obj->fournisseur; - $thirdparty->code_client = $obj->code_client; - $thirdparty->code_compta_client = $obj->code_compta_client; - $thirdparty->code_fournisseur = $obj->code_fournisseur; - $thirdparty->code_compta_fournisseur = $obj->code_compta_fournisseur; - $thirdparty->email = $obj->email; - $thirdparty->country_code = $obj->country_code; + $datelimit = $db->jdate($obj->datelimite); + $facturestatic->id = $obj->facid; + $facturestatic->ref = $obj->ref; + $facturestatic->type = $obj->type; + $facturestatic->ref_supplier = $obj->ref_supplier; + $facturestatic->date_echeance = $db->jdate($obj->datelimite); + $facturestatic->statut = $obj->fk_statut; + $facturestatic->note_public = $obj->note_public; + $facturestatic->note_private = $obj->note_private; + $facturestatic->multicurrency_code = $obj->multicurrency_code; + $facturestatic->multicurrency_tx = $obj->multicurrency_tx; + $facturestatic->multicurrency_total_ht = $obj->multicurrency_total_ht; + $facturestatic->multicurrency_total_tva = $obj->multicurrency_total_vat; + $facturestatic->multicurrency_total_ttc = $obj->multicurrency_total_ttc; - $paiement = $facturestatic->getSommePaiement(); - $totalcreditnotes = $facturestatic->getSumCreditNotesUsed(); - $totaldeposits = $facturestatic->getSumDepositsUsed(); - $totalpay = $paiement + $totalcreditnotes + $totaldeposits; - $remaintopay = $obj->total_ttc - $totalpay; - $multicurrency_paiement = $facturestatic->getSommePaiement(1); - $multicurrency_totalcreditnotes = $facturestatic->getSumCreditNotesUsed(1); - $multicurrency_totaldeposits = $facturestatic->getSumDepositsUsed(1); - $multicurrency_totalpay = $multicurrency_paiement + $multicurrency_totalcreditnotes + $multicurrency_totaldeposits; - $multicurrency_remaintopay = price2num($facturestatic->multicurrency_total_ttc - $multicurrency_totalpay); + $thirdparty->id = $obj->socid; + $thirdparty->name = $obj->name; + $thirdparty->name_alias = $obj->alias; + $thirdparty->client = $obj->client; + $thirdparty->fournisseur = $obj->fournisseur; + $thirdparty->code_client = $obj->code_client; + $thirdparty->code_compta_client = $obj->code_compta_client; + $thirdparty->code_fournisseur = $obj->code_fournisseur; + $thirdparty->code_compta_fournisseur = $obj->code_compta_fournisseur; + $thirdparty->email = $obj->email; + $thirdparty->country_code = $obj->country_code; - $facturestatic->alreadypaid = ($paiement ? $paiement : 0); - $facturestatic->paye = $obj->paye; - $facturestatic->statut = $obj->fk_statut; - $facturestatic->type = $obj->type; + $paiement = $facturestatic->getSommePaiement(); + $totalcreditnotes = $facturestatic->getSumCreditNotesUsed(); + $totaldeposits = $facturestatic->getSumDepositsUsed(); + $totalpay = $paiement + $totalcreditnotes + $totaldeposits; + $remaintopay = $obj->total_ttc - $totalpay; + $multicurrency_paiement = $facturestatic->getSommePaiement(1); + $multicurrency_totalcreditnotes = $facturestatic->getSumCreditNotesUsed(1); + $multicurrency_totaldeposits = $facturestatic->getSumDepositsUsed(1); + $multicurrency_totalpay = $multicurrency_paiement + $multicurrency_totalcreditnotes + $multicurrency_totaldeposits; + $multicurrency_remaintopay = price2num($facturestatic->multicurrency_total_ttc - $multicurrency_totalpay); + + $facturestatic->alreadypaid = ($paiement ? $paiement : 0); + $facturestatic->paye = $obj->paye; + $facturestatic->statut = $obj->fk_statut; + $facturestatic->type = $obj->type; - //If invoice has been converted and the conversion has been used, we dont have remain to pay on invoice - if ($facturestatic->type == FactureFournisseur::TYPE_CREDIT_NOTE) { - if ($facturestatic->isCreditNoteUsed()) { - $remaintopay = -$facturestatic->getSumFromThisCreditNotesNotUsed(); - } + //If invoice has been converted and the conversion has been used, we dont have remain to pay on invoice + if ($facturestatic->type == FactureFournisseur::TYPE_CREDIT_NOTE) { + if ($facturestatic->isCreditNoteUsed()) { + $remaintopay = -$facturestatic->getSumFromThisCreditNotesNotUsed(); } + } - print ''; - if (!empty($arrayfields['f.ref']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Supplier ref - if (!empty($arrayfields['f.ref_supplier']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Type - if (!empty($arrayfields['f.type']['checked'])) { - print '"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Label - if (!empty($arrayfields['f.label']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date - if (!empty($arrayfields['f.datef']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date limit - if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Payment condition - if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment mode - if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount HT - if (!empty($arrayfields['f.total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ht'; - } - $totalarray['val']['f.total_ht'] += $obj->total_ht; - } - // Amount VAT - if (!empty($arrayfields['f.total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_vat'; - } - $totalarray['val']['f.total_vat'] += $obj->total_vat; - } - // Amount LocalTax1 - if (!empty($arrayfields['f.total_localtax1']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax1'; - } - $totalarray['val']['f.total_localtax1'] += $obj->total_localtax1; - } - // Amount LocalTax2 - if (!empty($arrayfields['f.total_localtax2']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax2'; - } - $totalarray['val']['f.total_localtax2'] += $obj->total_localtax2; - } - // Amount TTC - if (!empty($arrayfields['f.total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ttc'; - } - $totalarray['val']['f.total_ttc'] += $obj->total_ttc; - } - - $userstatic->id = $obj->fk_user_author; - $userstatic->login = $obj->login; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_statut; - $userstatic->entity = $obj->entity; - $userstatic->photo = $obj->photo; - $userstatic->office_phone = $obj->office_phone; - $userstatic->office_fax = $obj->office_fax; - $userstatic->user_mobile = $obj->user_mobile; - $userstatic->job = $obj->job; - $userstatic->gender = $obj->gender; - - // Author - if (!empty($arrayfields['u.login']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['dynamount_payed']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'totalam'; - } - $totalarray['val']['totalam'] += $totalpay; - } - - if (!empty($arrayfields['rtp']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'rtp'; - } - $totalarray['val']['rtp'] += $remaintopay; - } - - // Currency - if (!empty($arrayfields['f.multicurrency_code']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency rate - if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT - if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC - if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Pending amount - if (!empty($arrayfields['multicurrency_rtp']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - } - - - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - // Date creation - if (!empty($arrayfields['f.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['f.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print '"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Action column + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print ''; + } + if (!empty($arrayfields['f.ref']['checked'])) { + print '\n"; if (!$i) { $totalarray['nbfield']++; } - - print "\n"; - - $i++; } - // Show total line - include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + // Supplier ref + if (!empty($arrayfields['f.ref_supplier']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Type + if (!empty($arrayfields['f.type']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Label + if (!empty($arrayfields['f.label']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['f.datef']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date limit + if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Payment condition + if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { + $s = $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 1, '', -1, -1, 1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment mode + if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { + $s = $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1, 0, '', 1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Amount HT + if (!empty($arrayfields['f.total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ht'; + } + $totalarray['val']['f.total_ht'] += $obj->total_ht; + } + // Amount VAT + if (!empty($arrayfields['f.total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_vat'; + } + $totalarray['val']['f.total_vat'] += $obj->total_vat; + } + // Amount LocalTax1 + if (!empty($arrayfields['f.total_localtax1']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax1'; + } + $totalarray['val']['f.total_localtax1'] += $obj->total_localtax1; + } + // Amount LocalTax2 + if (!empty($arrayfields['f.total_localtax2']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax2'; + } + $totalarray['val']['f.total_localtax2'] += $obj->total_localtax2; + } + // Amount TTC + if (!empty($arrayfields['f.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ttc'; + } + $totalarray['val']['f.total_ttc'] += $obj->total_ttc; + } + + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; + + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['dynamount_payed']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'totalam'; + } + $totalarray['val']['totalam'] += $totalpay; + } + + if (!empty($arrayfields['rtp']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'rtp'; + } + $totalarray['val']['rtp'] += $remaintopay; + } + + // Currency + if (!empty($arrayfields['f.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Pending amount + if (!empty($arrayfields['multicurrency_rtp']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + } + + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Date creation + if (!empty($arrayfields['f.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['f.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['f.fk_statut']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; + + $i++; } - $db->free($resql); - - $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); - $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - print "
    '; - print ''; - print ''; - print ''; - print ''; - $listtype = array( - FactureFournisseur::TYPE_STANDARD=>$langs->trans("InvoiceStandard"), - FactureFournisseur::TYPE_REPLACEMENT=>$langs->trans("InvoiceReplacement"), - FactureFournisseur::TYPE_CREDIT_NOTE=>$langs->trans("InvoiceAvoir"), - FactureFournisseur::TYPE_DEPOSIT=>$langs->trans("InvoiceDeposit"), - ); - /* - if (! empty($conf->global->INVOICE_USE_SITUATION)) - { - $listtype[Facture::TYPE_SITUATION] = $langs->trans("InvoiceSituation"); - } - */ - //$listtype[Facture::TYPE_PROFORMA]=$langs->trans("InvoiceProForma"); // A proformat invoice is not an invoice but must be an order. - print $form->selectarray('search_type', $listtype, $search_type, 1, 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth100'); - print ''; - print ''; - print ''; - print '
    '; - print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); - print '
    '; - print '
    '; - print $form->selectDate($search_date_end ? $search_date_end : -1, 'search_date_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); - print '
    '; - print '
    '; - print '
    '; - /* - print $langs->trans('From').' '; - print $form->selectDate($search_datelimit_start ? $search_datelimit_start : -1, 'search_datelimit_start', 0, 0, 1); - print '
    '; - print '
    '; - print $langs->trans('to').' ';*/ - print $form->selectDate($search_datelimit_end ? $search_datelimit_end : -1, 'search_datelimit_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("Before")); - print '
    '.$langs->trans("Alert"); - print '
    '; - print '
    '; - print ''; - print ''; - print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100'); - print ''; - print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), '', 1); - print ''; - $form->select_conditions_paiements($search_paymentcond, 'search_paymentcond', -1, 1, 1, 'maxwidth100'); - print ''; - $form->select_types_paiements($search_paymentmode, 'search_paymentmode', '', 0, 1, 1, 20, 1, 'maxwidth100'); - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1); - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - $liststatus = array('0'=>$langs->trans("Draft"), '1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid")); - print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1); - print ''; + print ''; + print ''; + $liststatus = array('0'=>$langs->trans("Draft"), '1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid")); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); + print ''; $searchpicto = $form->showFilterButtons(); print $searchpicto; print '
    '; - - print ''; - // Picto + Ref - print '
    '; - print $facturestatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1); - - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); - $subdir = get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); - print $formfile->getDocumentsLink('facture_fournisseur', $subdir, $filedir); - print '
    '; - - print "
    '; - print $obj->ref_supplier; - print ''; - print $facturestatic->getLibType(); - print "'; - print $obj->label; - print ''; - print dol_print_date($db->jdate($obj->datef), 'day'); - print ''.dol_print_date($datelimit, 'day'); - if ($facturestatic->hasDelay()) { - print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); - } - print ''; - if ($obj->project_id > 0) { - $projectstatic->id = $obj->project_id; - $projectstatic->ref = $obj->project_ref; - $projectstatic->title = $obj->project_label; - print $projectstatic->getNomUrl(1); - } - print ''; - print $thirdparty->getNomUrl(1, 'supplier'); - print ''; - print $obj->town; - print ''; - print $obj->zip; - print '".$obj->state_name."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (empty($typenArray)) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 1); - print ''; - $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); - print ''.price($obj->total_ht)."'.price($obj->total_vat)."'.price($obj->total_localtax1)."'.price($obj->total_localtax2)."'.price($obj->total_ttc)."'; - if ($userstatic->id) { - print $userstatic->getLoginUrl(-1); - } else { - print ' '; - } - print "'.(!empty($totalpay) ?price($totalpay, 0, $langs) : '').''.(!empty($remaintopay) ?price($remaintopay, 0, $langs) : ' ').''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'.(!empty($multicurrency_totalpay) ?price($multicurrency_totalpay, 0, $langs) : '').''; - print (!empty($multicurrency_remaintopay) ? price($multicurrency_remaintopay, 0, $langs) : ''); - print ''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - print $facturestatic->LibStatut($obj->paye, $obj->fk_statut, 5, $paiement, $obj->type); - print "
    '; if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined $selected = 0; @@ -1673,49 +1419,441 @@ if ($resql) { print ''; } print ''; + + print ''; + // Picto + Ref + print '
    '; + print $facturestatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1); + + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); + $subdir = get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); + print $formfile->getDocumentsLink('facture_fournisseur', $subdir, $filedir); + print '
    '; + + print "
    '; + print $obj->ref_supplier; + print ''; + print $facturestatic->getLibType(); + print "'; + print $obj->label; + print ''; + print dol_print_date($db->jdate($obj->datef), 'day'); + print ''.dol_print_date($datelimit, 'day'); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); + } + print ''; + if ($obj->project_id > 0) { + $projectstatic->id = $obj->project_id; + $projectstatic->ref = $obj->project_ref; + $projectstatic->title = $obj->project_label; + print $projectstatic->getNomUrl(1); + } + print ''; + print $thirdparty->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + print ''; + print $thirdparty->name_alias; + print ''; + print $obj->town; + print ''; + print dol_escape_htmltag($obj->zip); + print '".$obj->state_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + print dol_escape_htmltag($s); + print ''; + print dol_escape_htmltag($s); + print ''.price($obj->total_ht)."'.price($obj->total_vat)."'.price($obj->total_localtax1)."'.price($obj->total_localtax2)."'.price($obj->total_ttc)."'; + if ($userstatic->id) { + print $userstatic->getLoginUrl(-1); + } else { + print ' '; + } + print "'.(!empty($totalpay) ?price($totalpay, 0, $langs) : '').''.(!empty($remaintopay) ?price($remaintopay, 0, $langs) : ' ').''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'.(!empty($multicurrency_totalpay) ?price($multicurrency_totalpay, 0, $langs) : '').''; + print (!empty($multicurrency_remaintopay) ? price($multicurrency_remaintopay, 0, $langs) : ''); + print ''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print $facturestatic->LibStatut($obj->paye, $obj->fk_statut, 5, $paiement, $obj->type); + print "'; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->facid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    \n"; - print '
    '; - - print "\n"; - - $hidegeneratedfilelistifempty = 1; - if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { - $hidegeneratedfilelistifempty = 0; - } - - // Show list of available documents - $urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; - $urlsource .= str_replace('&', '&', $param); - - $filedir = $diroutputmassaction; - $genallowed = $user->rights->facture->lire; - $delallowed = $user->rights->facture->creer; - $title = ''; - - print $formfile->showdocuments('massfilesarea_supplier_invoice', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); -} else { - dol_print_error($db); + // Show total line + include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; } +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print '
    '.$langs->trans("NoRecordFound").'
    \n"; +print ''; + +print "\n"; + +$hidegeneratedfilelistifempty = 1; +if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { + $hidegeneratedfilelistifempty = 0; +} + +// Show list of available documents +$urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; +$urlsource .= str_replace('&', '&', $param); + +$filedir = $diroutputmassaction; +$genallowed = $user->rights->facture->lire; +$delallowed = $user->rights->facture->creer; +$title = ''; + +print $formfile->showdocuments('massfilesarea_supplier_invoice', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); + // End of page llxFooter(); $db->close(); diff --git a/htdocs/fourn/facture/note.php b/htdocs/fourn/facture/note.php index 59902947cef..1c61fdc8e07 100644 --- a/htdocs/fourn/facture/note.php +++ b/htdocs/fourn/facture/note.php @@ -26,11 +26,12 @@ * \brief Fiche de notes sur une facture fournisseur */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -52,6 +53,8 @@ $result = restrictedArea($user, 'fournisseur', $id, 'facture_fourn', 'facture'); $object = new FactureFournisseur($db); $object->fetch($id, $ref); +$usercancreate = ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer); +$permissiontoadd = $usercancreate; $permissionnote = ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer); // Used by the include of actions_setnotes.inc.php @@ -83,7 +86,7 @@ if ($action == 'setlabel' && ($user->rights->fournisseur->facture->creer || $use $form = new Form($db); -$title = $langs->trans('SupplierInvoice')." - ".$langs->trans('Notes'); +$title = $object->ref." - ".$langs->trans('Notes'); $helpurl = "EN:Module_Suppliers_Invoices|FR:Module_Fournisseurs_Factures|ES:Módulo_Facturas_de_proveedores"; llxHeader('', $title, $helpurl); @@ -105,40 +108,28 @@ if ($object->id > 0) { $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherBills").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - // $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -179,11 +170,13 @@ if ($object->id > 0) { } print ' ('.$langs->transnoentities("InvoiceHasAvoir") . implode(',', $invoicecredits) . ')'; } + /* if ($facidnext > 0) { $facthatreplace = new FactureFournisseur($db); $facthatreplace->fetch($facidnext); print ' ('.$langs->transnoentities("ReplacedByInvoice", $facthatreplace->getNomUrl(1)).')'; } + */ print '
    '.$langs->transcountry("AmountLT1", $societe->country_code).'
    '.$langs->transcountry("AmountLT1", $mysoc->country_code).''.price($object->total_localtax1, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->transcountry("AmountLT2", $societe->country_code).'
    '.$langs->transcountry("AmountLT2", $mysoc->country_code).''.price($object->total_localtax2, 1, $langs, 0, -1, -1, $conf->currency).'
    '.$langs->trans('PaymentMode').''; $form->select_types_paiements(!GETPOST('paiementid') ? $obj->fk_mode_reglement : GETPOST('paiementid'), 'paiementid'); print '
    '.$langs->trans('Account').''; print img_picto('', 'bank_account', 'class="pictofixedwidth"'); print $form->select_comptes(empty($accountid) ? $obj->fk_account : $accountid, 'accountid', 0, '', 2, '', 0, 'widthcentpercentminusx maxwidth500', 1); @@ -575,7 +576,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print ''.$langs->trans('RefSupplier').''.$langs->trans('Date').''.$langs->trans('DateMaxPayment').''.$langs->trans('Currency').''.$langs->trans('MulticurrencyAmountTTC').''.$langs->trans('MulticurrencyAlreadyPaid').''.$objp->multicurrency_code."
    '.$langs->trans('TotalTTC').':    
    '.$langs->trans("NoInvoice").'
    '.$langs->trans("NoInvoice").'
    '.$langs->trans("Example").'
    '.$langs->trans("Label").'My FTP access
    '.$langs->trans("Server").'localhost
    '.$langs->trans("Port").'21 for pure non crypted FTP or if option FTP_CONNECT_WITH_SSL (See Home-Setup-Other) is on (FTPS)
    22 if option FTP_CONNECT_WITH_SFTP (See Home-Setup-Other) is on (SFTP)
    '.$langs->trans("User").'myftplogin
    '.$langs->trans("Password").'myftppassword
    '.$langs->trans("FTPPassiveMode").'
    '; ?> -
    ">
    +
    + ">
    '; + print '
    '; ?>
    @@ -242,10 +246,12 @@ if (!function_exists('ftp_connect')) { $idrss = $reg[0]; //print "x".join(',',$reg)."=".$obj->name."=".$idrss; - print "
    "; + print '
    '; + print ''; print ''; print ''; + print '
    '; print ''."\n"; print ''; @@ -262,51 +268,50 @@ if (!function_exists('ftp_connect')) { print ''; print ""; - print ""; + print ""; print ""; print ''; print ""; - print ""; + print ""; print ""; print ''; print ""; - print ""; + print ""; print ""; print ''; print ""; - print ""; + print ""; print ""; print ''; print ""; - print ""; + print ""; print ""; print ''; print ""; - print ''; - print ""; - - print ""; - print ""; + print ''; print ""; print '
    ".$langs->trans("Name")."global->$keyforname."\" size=\"64\">
    ".$langs->trans("Server")."global->$keyforserver."\" size=\"64\">
    ".$langs->trans("Port")."global->$keyforport."\" size=\"64\">
    ".$langs->trans("User")."global->$keyforuser."\" size=\"24\">
    ".$langs->trans("Password")."global->$keyforpassword."\" size=\"24\">
    ".$langs->trans("FTPPassiveMode")."'.$form->selectyesno('FTP_PASSIVE_'.$idrss, $conf->global->$keyforpassive, 1).'
    "; - print "trans("Modify")."\">"; - print "   "; - print "trans("Delete")."\">"; - print "'.$form->selectyesno('FTP_PASSIVE_'.$idrss, getDolGlobalString($keyforpassive), 1).'
    '; + print '
    '; + + print '
    '; + print ''; + print "   "; + print ''; + print ''; print ""; - print '
    '; + print '

    '; $i++; } diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php index bbf01bb4fbe..e6c1aac1372 100644 --- a/htdocs/ftp/index.php +++ b/htdocs/ftp/index.php @@ -23,13 +23,15 @@ * \brief Main page for FTP section area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/ftp.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('ftp', 'companies', 'other')); +$langs->loadLangs(array('companies', 'other')); // Security check if ($user->socid) { @@ -40,6 +42,7 @@ $result = restrictedArea($user, 'ftp', ''); // Get parameters $action = GETPOST('action', 'aZ09'); $section = GETPOST('section'); +$newfolder = GETPOST('newfolder'); if (!$section) { $section = '/'; } @@ -74,14 +77,15 @@ $s_ftp_port = 'FTP_PORT_'.$numero_ftp; $s_ftp_user = 'FTP_USER_'.$numero_ftp; $s_ftp_password = 'FTP_PASSWORD_'.$numero_ftp; $s_ftp_passive = 'FTP_PASSIVE_'.$numero_ftp; -$ftp_name = $conf->global->$s_ftp_name; -$ftp_server = $conf->global->$s_ftp_server; -$ftp_port = $conf->global->$s_ftp_port; if (empty($ftp_port)) { +$ftp_name = getDolGlobalString($s_ftp_name); +$ftp_server = getDolGlobalString($s_ftp_server); +$ftp_port = getDolGlobalString($s_ftp_port); +if (empty($ftp_port)) { $ftp_port = 21; } -$ftp_user = $conf->global->$s_ftp_user; -$ftp_password = $conf->global->$s_ftp_password; -$ftp_passive = $conf->global->$s_ftp_passive; +$ftp_user = getDolGlobalString($s_ftp_user); +$ftp_password = getDolGlobalString($s_ftp_password); +$ftp_passive = getDolGlobalString($s_ftp_passive); // For result on connection $ok = 0; @@ -94,43 +98,63 @@ $mesg = ''; * ACTIONS */ -// Submit file -if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC)) { - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - - $result = $ecmdir->fetch(GETPOST("section", 'int')); - if (!$result > 0) { - dol_print_error($db, $ecmdir->error); - exit; +if ($action == 'uploadfile') { + // set up a connection or die + if (!$conn_id) { + $newsectioniso = utf8_decode($section); + $resultarray = dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $newsectioniso, $ftp_passive); + $conn_id = $resultarray['conn_id']; + $ok = $resultarray['ok']; + $mesg = $resultarray['mesg']; } - $relativepath = $ecmdir->getRelativePath(); - $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; + if ($conn_id && $ok && !$mesg) { + $nbfile = count($_FILES['userfile']['name']); + for ($i = 0; $i < $nbfile; $i++) { + $newsection = $newsectioniso; + $fileupload = $_FILES['userfile']['name'][$i]; + $fileuploadpath = $_FILES['userfile']['tmp_name'][$i]; + $result = dol_ftp_put($conn_id, $fileupload, $fileuploadpath, $newsection); - if (dol_mkdir($upload_dir) >= 0) { - $resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir."/".dol_unescapefile($_FILES['userfile']['name']), 0); - if (is_numeric($resupload) && $resupload > 0) { - $result = $ecmdir->changeNbOfFiles('+'); - } else { - $langs->load("errors"); - if ($resupload < 0) { // Unknown error - setEventMessages($langs->trans("ErrorFileNotUploaded"), null, 'errors'); - } elseif (preg_match('/ErrorFileIsInfectedWithAVirus/', $resupload)) { - // Files infected by a virus - setEventMessages($langs->trans("ErrorFileIsInfectedWithAVirus"), null, 'errors'); - } else // Known error - { - setEventMessages($langs->trans($resupload), null, 'errors'); + if ($result) { + setEventMessages($langs->trans("FileWasUpload", $fileupload), null, 'mesgs'); + } else { + dol_syslog("ftp/index.php ftp_delete", LOG_ERR); + setEventMessages($langs->trans("FTPFailedToUploadFile", $fileupload), null, 'errors'); } } + $action = ''; } else { - // Transfer failure (file exceeding the limit ?) - $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailToCreateDir", $upload_dir), null, 'errors'); + dol_print_error('', $mesg); + } +} + +if ($action == 'addfolder') { + // set up a connection or die + if (!$conn_id) { + $newsectioniso = utf8_decode($section); + $resultarray = dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $newsectioniso, $ftp_passive); + $conn_id = $resultarray['conn_id']; + $ok = $resultarray['ok']; + $mesg = $resultarray['mesg']; + } + if ($conn_id && $ok && !$mesg) { + $result = dol_ftp_mkdir($conn_id, $newfolder, $newsectioniso); + + if ($result) { + setEventMessages($langs->trans("FileWasCreateFolder", $newfolder), null, 'mesgs'); + } else { + dol_syslog("ftp/index.php ftp_delete", LOG_ERR); + setEventMessages($langs->trans("FTPFailedToCreateFolder", $newfolder), null, 'errors'); + } + $action = ''; + } else { + dol_print_error('', $mesg); } } // Action ajout d'un rep if ($action == 'add' && $user->rights->ftp->setup) { + $ecmdir = new EcmDirectory($db); $ecmdir->ref = GETPOST("ref"); $ecmdir->label = GETPOST("label"); $ecmdir->description = GETPOST("desc"); @@ -158,24 +182,8 @@ if ($action == 'confirm_deletefile' && GETPOST('confirm') == 'yes') { if ($conn_id && $ok && !$mesg) { $newsection = $section; - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $newsection = ssh2_sftp_realpath($conn_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 - } + $result = dol_ftp_delete($conn_id, $file, $newsection); - $langs->load("other"); - - // Remote file - $filename = $file; - $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; - $newremotefileiso = utf8_decode($remotefile); - - //print "x".$newremotefileiso; - dol_syslog("ftp/index.php ftp_delete ".$newremotefileiso); - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $result = ssh2_sftp_unlink($conn_id, $newremotefileiso); - } else { - $result = @ftp_delete($conn_id, $newremotefileiso); - } if ($result) { setEventMessages($langs->trans("FileWasRemoved", $file), null, 'mesgs'); } else { @@ -183,8 +191,6 @@ if ($action == 'confirm_deletefile' && GETPOST('confirm') == 'yes') { setEventMessages($langs->trans("FTPFailedToRemoveFile", $file), null, 'errors'); } - //ftp_close($conn_id); Close later - $action = ''; } else { dol_print_error('', $mesg); @@ -204,25 +210,15 @@ if (GETPOST("const", 'array') && GETPOST("delete") && GETPOST("delete") == $lang if ($conn_id && $ok && !$mesg) { foreach (GETPOST('const', 'array') as $const) { - if ($const["check"]) { // Is checkbox checked + if (isset($const["check"])) { // Is checkbox checked $langs->load("other"); // Remote file $file = $const["file"]; $newsection = $const["section"]; - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $newsection = ssh2_sftp_realpath($conn_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 - } - $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; - $newremotefileiso = utf8_decode($remotefile); - //print "x".$newremotefileiso; - dol_syslog("ftp/index.php ftp_delete n files for ".$newremotefileiso); - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $result = ssh2_sftp_unlink($conn_id, $newremotefileiso); - } else { - $result = @ftp_delete($conn_id, $newremotefileiso); - } + $result = dol_ftp_delete($conn_id, $file, $newsection); + if ($result) { setEventMessages($langs->trans("FileWasRemoved", $file), null, 'mesgs'); } else { @@ -253,20 +249,9 @@ if ($action == 'confirm_deletesection' && $confirm == 'yes') { if ($conn_id && $ok && !$mesg) { $newsection = $section; - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $newsection = ssh2_sftp_realpath($conn_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 - } - // Remote file - $filename = $file; - $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; - $newremotefileiso = utf8_decode($remotefile); + $result = dol_ftp_rmdir($conn_id, $file, $newsection); - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $result = ssh2_sftp_rmdir($conn_id, $newremotefileiso); - } else { - $result = @ftp_rmdir($conn_id, $newremotefileiso); - } if ($result) { setEventMessages($langs->trans("DirWasRemoved", $file), null, 'mesgs'); } else { @@ -297,20 +282,10 @@ if ($action == 'download') { $localfile = tempnam($download_dir, 'dol_'); $newsection = $section; - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $newsection = ssh2_sftp_realpath($conn_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 - } - // Remote file - $filename = $file; - $remotefile = $newsection.(preg_match('@[\\\/]$@', $newsection) ? '' : '/').$file; - $newremotefileiso = utf8_decode($remotefile); + $result = dol_ftp_get($conn_id, $localfile, $file, $newsection); + - if (!empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - $result = fopen('ssh2.sftp://'.intval($conn_id).$newremotefileiso, 'r'); - } else { - $result = ftp_get($conn_id, $localfile, $newremotefileiso, FTP_BINARY); - } if ($result) { if (!empty($conf->global->MAIN_UMASK)) { @chmod($localfile, octdec($conf->global->MAIN_UMASK)); @@ -332,9 +307,9 @@ if ($action == 'download') { header('Content-Type: '.$type); } if ($attachment) { - header('Content-Disposition: attachment; filename="'.$filename.'"'); + header('Content-Disposition: attachment; filename="'.$file.'"'); } else { - header('Content-Disposition: inline; filename="'.$filename.'"'); + header('Content-Disposition: inline; filename="'.$file.'"'); } // Ajout directives pour resoudre bug IE @@ -343,11 +318,9 @@ if ($action == 'download') { readfile($localfile); - ftp_close($conn_id); - exit; } else { - setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile', $remotefile), null, 'errors'); + setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile', $file), null, 'errors'); } } else { dol_print_error('', $mesg); @@ -408,12 +381,12 @@ if (!function_exists('ftp_connect')) { if (!empty($ftp_server)) { // Confirm remove file if ($action == 'delete') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode(GETPOST('section')).'&file='.urlencode(GETPOST('file')), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', '', 1); + print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode(GETPOST('section')).'&file='.urlencode(GETPOST('file')), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile', GETPOST('file')), 'confirm_deletefile', '', '', 1); } // Confirmation de la suppression d'une ligne categorie if ($action == 'delete_section') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode(GETPOST('section')).'&file='.urlencode(GETPOST('file')), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection', $ecmdir->label), 'confirm_deletesection', '', '', 1); + print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode(GETPOST('section')).'&file='.urlencode(GETPOST('file')), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection', GETPOST('file')), 'confirm_deletesection', '', '', 1); } print $langs->trans("Server").': '.$ftp_server.'
    '; @@ -492,28 +465,42 @@ if (!function_exists('ftp_connect')) { //$newsection = '/./'; $newsection = ssh2_sftp_realpath($conn_id, ".").'/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 } + //$newsection='/'; //$dirHandle = opendir("ssh2.sftp://$conn_id".$newsection); //$dirHandle = opendir("ssh2.sftp://".intval($conn_id).ssh2_sftp_realpath($conn_id, ".").'/./'); + $contents = scandir('ssh2.sftp://'.intval($conn_id).$newsection); $buff = array(); foreach ($contents as $i => $key) { $buff[$i] = "---------- - root root 1234 Aug 01 2000 ".$key; } + + //$i = 0; + //$handle = opendir('ssh2.sftp://'.intval($conn_id).$newsection); + //$buff=array(); + //while (false !== ($file = readdir($handle))) { + // if (substr("$file", 0, 1) != "."){ + // if (is_dir($file)) { + // $buff[$i]="d--------- - root root 1234 Aug 01 2000 ".$file; + // } else { + // $buff[$i]="---------- - root root 1234 Aug 01 2000 ".$file; + // } + // } + // $i++; + //} } else { $buff = ftp_rawlist($conn_id, $newsectioniso); $contents = ftp_nlist($conn_id, $newsectioniso); // Sometimes rawlist fails but never nlist - //var_dump($contents); - //var_dump($buff); } $nboflines = count($contents); $rawlisthasfailed = false; $i = 0; + $nbofentries = 0; while ($i < $nboflines && $i < 1000) { $vals = preg_split('@ +@', utf8_encode($buff[$i]), 9); //$vals=preg_split('@ +@','drwxr-xr-x 2 root root 4096 Aug 30 2008 backup_apollon1',9); - //var_dump($vals); $file = $vals[8]; if (empty($file)) { $rawlisthasfailed = true; @@ -527,6 +514,7 @@ if (!function_exists('ftp_connect')) { // Is it a directory ? $is_directory = 0; + $is_link = 0; if ($file == '..') { $is_directory = 1; } elseif (!$rawlisthasfailed) { @@ -626,7 +614,7 @@ if (!function_exists('ftp_connect')) { // Actions /* - if ($user->rights->ftp->write && ! empty($section)) + if ($user->rights->ftp->write && !empty($section)) { $formfile->form_attach_new_file(DOL_URL_ROOT.'/ftp/index.php','',0,$section,1); } @@ -639,6 +627,32 @@ if (!function_exists('ftp_connect')) { print '
    '; print ""; + + if ($user->hasRight('ftp', 'write')) { + print load_fiche_titre($langs->trans("AttachANewFile"), null, null); + print '
    '; + print ''; + print ''; + print ''; + print ''; + print '
    '; if ($object->statut == Holiday::STATUS_APPROVED || $object->statut == Holiday::STATUS_CANCELED) { - $approverdone = new User($db); - $approverdone->fetch($object->fk_user_valid); - print $approverdone->getNomUrl(-1); + if ($object->fk_user_approve > 0) { + $approverdone = new User($db); + $approverdone->fetch($object->fk_user_approve); + print $approverdone->getNomUrl(-1); + } } else { print $approverexpected->getNomUrl(-1); } $include_users = $object->fetch_users_approver_holiday(); if (is_array($include_users) && in_array($user->id, $include_users) && $object->statut == Holiday::STATUS_VALIDATED) { - print ''.img_edit($langs->trans("Edit")).''; + print ''.img_edit($langs->trans("Edit")).''; } print '
    '.$langs->trans('ReviewedByCP').''.$langs->trans('ReviewedByCP').''; $include_users = $object->fetch_users_approver_holiday(); if (!in_array($object->fk_validator, $include_users)) { // Add the current validator to the list to not lose it when editing. @@ -1395,7 +1414,7 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { if ($object->statut == Holiday::STATUS_APPROVED || $object->statut == Holiday::STATUS_CANCELED) { print '
    '.$langs->trans('DateValidCP').''.dol_print_date($object->date_valid, 'dayhour', 'tzuser').''.dol_print_date($object->date_approval, 'dayhour', 'tzuser').'
    '; + print ''; + + // groupe + print ''; + print ''; + + print ''; + + // users + print ''; + print ''; + + + + // Type + print ''; + print ''; + print ''; + print ''; + + // Date start + print ''; + print ''; + print ''; + print ''; + + // Date end + print ''; + print ''; + print ''; + print ''; + + // Approver + print ''; + print ''; + print ''; + print ''; + + //auto validation ON CREATE + print ''."\n"; + + + //no auto SEND MAIL + print ''."\n"; + + // Description + print ''; + print ''; + print ''; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; + + print ''; + print '
    '; + print $form->textwithpicto($langs->trans("groups"), $langs->trans("fusionGroupsUsers")); + + print ''; + //@todo ajouter entity ! + $sql =' SELECT rowid, nom from '.MAIN_DB_PREFIX.'usergroup '; + + $resql = $db->query($sql); + $Tgroup = array(); + while ($obj = $db->fetch_object($resql)) { + $Tgroup[$obj->rowid] = $obj->nom; + } + print $form->multiselectarray('groups', $Tgroup, GETPOST('groups', 'array'), '', 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); + + print '
    '; + print $form->textwithpicto($langs->trans("users"), $langs->trans("fusionGroupsUsers")); + print ''; + + $sql = ' SELECT DISTINCT u.rowid,u.lastname,u.firstname from '.MAIN_DB_PREFIX.'user as u'; + $sql .= ' WHERE 1=1 '; + $sql .= !empty($morefilter) ? $morefilter : ''; + + $resql = $db->query($sql); + if ($resql) { + while ($obj = $db->fetch_object($resql)) { + $userlist[$obj->rowid] = $obj->firstname . ' '. $obj->lastname; + } + } + + print img_picto('', 'users') . $form->multiselectarray('users', $userlist, GETPOST('users', 'array'), '', 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); + print '
    '.$langs->trans("Type").''; + $typeleaves = $object->getTypes(1, -1); + $arraytypeleaves = array(); + foreach ($typeleaves as $key => $val) { + $labeltoshow = ($langs->trans($val['code']) != $val['code'] ? $langs->trans($val['code']) : $val['label']); + $labeltoshow .= ($val['delay'] > 0 ? ' ('.$langs->trans("NoticePeriod").': '.$val['delay'].' '.$langs->trans("days").')' : ''); + $arraytypeleaves[$val['rowid']] = $labeltoshow; + } + print $form->selectarray('type', $arraytypeleaves, (GETPOST('type', 'alpha') ?GETPOST('type', 'alpha') : ''), 1, 0, 0, '', 0, 0, 0, '', '', true); + if ($user->admin) { + print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); + } + print '
    '; + print $form->textwithpicto($langs->trans("DateDebCP"), $langs->trans("FirstDayOfHoliday")); + print ''; + // Si la demande ne vient pas de l'agenda + if (!GETPOST('date_debut_')) { + print $form->selectDate(-1, 'date_debut_', 0, 0, 0, '', 1, 1); + } else { + $tmpdate = dol_mktime(0, 0, 0, GETPOST('date_debut_month', 'int'), GETPOST('date_debut_day', 'int'), GETPOST('date_debut_year', 'int')); + print $form->selectDate($tmpdate, 'date_debut_', 0, 0, 0, '', 1, 1); + } + print '     '; + print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday', 'alpha') ?GETPOST('starthalfday', 'alpha') : 'morning')); + print '
    '; + print $form->textwithpicto($langs->trans("DateFinCP"), $langs->trans("LastDayOfHoliday")); + print ''; + if (!GETPOST('date_fin_')) { + print $form->selectDate(-1, 'date_fin_', 0, 0, 0, '', 1, 1); + } else { + $tmpdate = dol_mktime(0, 0, 0, GETPOST('date_fin_month', 'int'), GETPOST('date_fin_day', 'int'), GETPOST('date_fin_year', 'int')); + print $form->selectDate($tmpdate, 'date_fin_', 0, 0, 0, '', 1, 1); + } + print '     '; + print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday', 'alpha') ?GETPOST('endhalfday', 'alpha') : 'afternoon')); + print '
    '.$langs->trans("ReviewedByCP").''; + + $object = new Holiday($db); + $include_users = $object->fetch_users_approver_holiday(); + if (empty($include_users)) { + print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateHolidays"); + } else { + // Defined default approver (the forced approved of user or the supervisor if no forced value defined) + // Note: This use will be set only if the deinfed approvr has permission to approve so is inside include_users + $defaultselectuser = (empty($user->fk_user_holiday_validator) ? $user->fk_user : $user->fk_user_holiday_validator); + if (!empty($conf->global->HOLIDAY_DEFAULT_VALIDATOR)) { + $defaultselectuser = $conf->global->HOLIDAY_DEFAULT_VALIDATOR; // Can force default approver + } + if (GETPOST('valideur', 'int') > 0) { + $defaultselectuser = GETPOST('valideur', 'int'); + } + $s = $form->select_dolusers($defaultselectuser, "valideur", 1, '', 0, $include_users, '', '0,'.$conf->entity, 0, 0, '', 0, '', 'minwidth200 maxwidth500'); + print img_picto('', 'user').$form->textwithpicto($s, $langs->trans("AnyOtherInThisListCanValidate")); + } + + + print '
    '.$langs->trans("AutoValidationOnCreate").''; + print ''; + print '
    '.$langs->trans("AutoSendMail").''; + print ''; + print '
    '.$langs->trans("DescCP").''; + $doleditor = new DolEditor('description', GETPOST('description', 'restricthtml'), '', 80, 'dolibarr_notes', 'In', 0, false, empty($conf->fckeditor->enabled) ? false : $conf->fckeditor->enabled, ROWS_3, '90%'); + print $doleditor->Create(1); + print '
    '; + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel("SendRequestCollectiveCP"); + + print ''."\n"; + } +} else { + if ($error) { + print '
    '; + print $error; + print '

    '; + print '
    '; + } +} + +// End of page +llxFooter(); + +if (is_object($db)) { + $db->close(); +} +/** + * send email to validator for current leave represented by (id) + * + * @param int $id validator for current leave represented by (id) + * @param int $cancreate flag for user right + * @param int $now date + * @param int $autoValidation boolean flag on autovalidation + * + * @return stdClass + * @throws Exception + */ +function sendMail($id, $cancreate, $now, $autoValidation) +{ + $objStd = new stdClass(); + $objStd->msg = ''; + $objStd->status = 'success'; + $objStd->error = 0; + $objStd->style = ''; + + global $db, $user, $conf, $langs; + + $object = new Holiday($db); + + $result = $object->fetch($id); + + if ($result) { + // If draft and owner of leave + if ($object->statut == Holiday::STATUS_VALIDATED && $cancreate) { + $object->oldcopy = dol_clone($object); + + //if ($autoValidation) $object->statut = Holiday::STATUS_VALIDATED; + + $verif = $object->validate($user); + + if ($verif > 0) { + // To + $destinataire = new User($db); + $destinataire->fetch($object->fk_validator); + $emailTo = $destinataire->email; + + + if (!$emailTo) { + dol_syslog("Expected validator has no email, so we redirect directly to finished page without sending email"); + + $objStd->error++; + $objStd->msg = $langs->trans('ErroremailTo'); + $objStd->status = 'error'; + $objStd->style="warnings"; + return $objStd; + } + + // From + $expediteur = new User($db); + $expediteur->fetch($object->fk_user); + //$emailFrom = $expediteur->email; Email of user can be an email into another company. Sending will fails, we must use the generic email. + $emailFrom = $conf->global->MAIN_MAIL_EMAIL_FROM; + + // Subject + $societeName = $conf->global->MAIN_INFO_SOCIETE_NOM; + if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { + $societeName = $conf->global->MAIN_APPLICATION_TITLE; + } + + $subject = $societeName." - ".$langs->transnoentitiesnoconv("HolidaysToValidate"); + + // Content + $message = "

    ".$langs->transnoentitiesnoconv("Hello")." ".$destinataire->firstname.",

    \n"; + + $message .= "

    ".$langs->transnoentities("HolidaysToValidateBody")."

    \n"; + + + // option to warn the validator in case of too short delay + if (empty($conf->global->HOLIDAY_HIDE_APPROVER_ABOUT_TOO_LOW_DELAY)) { + $delayForRequest = 0; // TODO Set delay depending of holiday leave type + if ($delayForRequest) { + $nowplusdelay = dol_time_plus_duree($now, $delayForRequest, 'd'); + + if ($object->date_debut < $nowplusdelay) { + $message = "

    ".$langs->transnoentities("HolidaysToValidateDelay", $delayForRequest)."

    \n"; + } + } + } + + // option to notify the validator if the balance is less than the request + if (empty($conf->global->HOLIDAY_HIDE_APPROVER_ABOUT_NEGATIVE_BALANCE)) { + $nbopenedday = num_open_day($object->date_debut_gmt, $object->date_fin_gmt, 0, 1, $object->halfday); + + if ($nbopenedday > $object->getCPforUser($object->fk_user, $object->fk_type)) { + $message .= "

    ".$langs->transnoentities("HolidaysToValidateAlertSolde")."

    \n"; + } + } + + $link = dol_buildpath("/holiday/card.php", 3) . '?id='.$object->id; + + $message .= "
      "; + $message .= "
    • ".$langs->transnoentitiesnoconv("Name")." : ".dolGetFirstLastname($expediteur->firstname, $expediteur->lastname)."
    • \n"; + $message .= "
    • ".$langs->transnoentitiesnoconv("Period")." : ".dol_print_date($object->date_debut, 'day')." ".$langs->transnoentitiesnoconv("To")." ".dol_print_date($object->date_fin, 'day')."
    • \n"; + $message .= "
    • ".$langs->transnoentitiesnoconv("Link").' : '.$link."
    • \n"; + $message .= "
    \n"; + + $trackid = 'leav'.$object->id; + + $mail = new CMailFile($subject, $emailTo, $emailFrom, $message, array(), array(), array(), '', '', 0, 1, '', '', $trackid); + + // Sending the email + $result = $mail->sendfile(); + + if (!$result) { + $objStd->error++; + $objStd->msg = $langs->trans('ErroreSendmail'); + $objStd->style="warnings"; + $objStd->status = 'error'; + } else { + $objStd->msg = $langs->trans('mailSended'); + } + + return $objStd; + } else { + $objStd->error++; + $objStd->msg = $langs->trans('ErroreVerif'); + $objStd->status = 'error'; + $objStd->style="errors"; + return $objStd; + } + } + } else { + $objStd->error++; + $objStd->msg = $langs->trans('ErrorloadUserOnSendingMail'); + $objStd->status = 'error'; + $objStd->style="warnings"; + return $objStd; + } + + return $objStd; +} diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 5e0f12d98a8..9b3f0a1ce16 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -59,12 +59,6 @@ class Holiday extends CommonObject */ public $picto = 'holiday'; - /** - * @deprecated - * @see $id - */ - public $rowid; - /** * @var int User ID */ @@ -85,24 +79,29 @@ class Holiday extends CommonObject public $statut = ''; // 1=draft, 2=validated, 3=approved /** - * @var int ID of user that must approve. TODO: there is no date for validation (date_valid is used for approval), add one. + * @var int ID of user that must approve. Real user for approval is fk_user_valid (old version) or fk_user_approve (new versions) */ public $fk_validator; /** - * @var int Date of approval. TODO: Add a field for approval date and use date_valid instead for validation. + * @var int Date of validation or approval. TODO: Use date_valid instead for validation. */ public $date_valid = ''; /** - * @var int ID of user that has approved (empty if not approved) + * @var int ID of user that has validated */ public $fk_user_valid; /** - * @var int Date approbation + * @var int Date approval */ - public $date_approbation; + public $date_approval; + + /** + * @var int ID of user that has approved + */ + public $fk_user_approve; /** * @var int Date for refuse @@ -383,6 +382,8 @@ class Holiday extends CommonObject $sql .= " cp.fk_validator,"; $sql .= " cp.date_valid,"; $sql .= " cp.fk_user_valid,"; + $sql .= " cp.date_approval,"; + $sql .= " cp.fk_user_approve,"; $sql .= " cp.date_refuse,"; $sql .= " cp.fk_user_refuse,"; $sql .= " cp.date_cancel,"; @@ -420,6 +421,9 @@ class Holiday extends CommonObject $this->fk_validator = $obj->fk_validator; $this->date_valid = $this->db->jdate($obj->date_valid); $this->fk_user_valid = $obj->fk_user_valid; + $this->user_validation_id = $obj->fk_user_valid; + $this->date_approval = $this->db->jdate($obj->date_approval); + $this->fk_user_approve = $obj->fk_user_approve; $this->date_refuse = $this->db->jdate($obj->date_refuse); $this->fk_user_refuse = $obj->fk_user_refuse; $this->date_cancel = $this->db->jdate($obj->date_cancel); @@ -473,6 +477,8 @@ class Holiday extends CommonObject $sql .= " cp.fk_validator,"; $sql .= " cp.date_valid,"; $sql .= " cp.fk_user_valid,"; + $sql .= " cp.date_approval,"; + $sql .= " cp.fk_user_approve,"; $sql .= " cp.date_refuse,"; $sql .= " cp.fk_user_refuse,"; $sql .= " cp.date_cancel,"; @@ -525,6 +531,7 @@ class Holiday extends CommonObject $obj = $this->db->fetch_object($resql); $tab_result[$i]['rowid'] = $obj->rowid; + $tab_result[$i]['id'] = $obj->rowid; $tab_result[$i]['ref'] = ($obj->ref ? $obj->ref : $obj->rowid); $tab_result[$i]['fk_user'] = $obj->fk_user; @@ -540,6 +547,8 @@ class Holiday extends CommonObject $tab_result[$i]['fk_validator'] = $obj->fk_validator; $tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid); $tab_result[$i]['fk_user_valid'] = $obj->fk_user_valid; + $tab_result[$i]['date_approval'] = $this->db->jdate($obj->date_approval); + $tab_result[$i]['fk_user_approve'] = $obj->fk_user_approve; $tab_result[$i]['date_refuse'] = $this->db->jdate($obj->date_refuse); $tab_result[$i]['fk_user_refuse'] = $obj->fk_user_refuse; $tab_result[$i]['date_cancel'] = $this->db->jdate($obj->date_cancel); @@ -598,6 +607,8 @@ class Holiday extends CommonObject $sql .= " cp.fk_validator,"; $sql .= " cp.date_valid,"; $sql .= " cp.fk_user_valid,"; + $sql .= " cp.date_approval,"; + $sql .= " cp.fk_user_approve,"; $sql .= " cp.date_refuse,"; $sql .= " cp.fk_user_refuse,"; $sql .= " cp.date_cancel,"; @@ -649,7 +660,9 @@ class Holiday extends CommonObject $obj = $this->db->fetch_object($resql); $tab_result[$i]['rowid'] = $obj->rowid; + $tab_result[$i]['id'] = $obj->rowid; $tab_result[$i]['ref'] = ($obj->ref ? $obj->ref : $obj->rowid); + $tab_result[$i]['fk_user'] = $obj->fk_user; $tab_result[$i]['fk_type'] = $obj->fk_type; $tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create); @@ -664,6 +677,8 @@ class Holiday extends CommonObject $tab_result[$i]['fk_validator'] = $obj->fk_validator; $tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid); $tab_result[$i]['fk_user_valid'] = $obj->fk_user_valid; + $tab_result[$i]['date_approval'] = $this->db->jdate($obj->date_approval); + $tab_result[$i]['fk_user_approve'] = $obj->fk_user_approve; $tab_result[$i]['date_refuse'] = $obj->date_refuse; $tab_result[$i]['fk_user_refuse'] = $obj->fk_user_refuse; $tab_result[$i]['date_cancel'] = $obj->date_cancel; @@ -729,9 +744,12 @@ class Holiday extends CommonObject // Update status $sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET"; + $sql .= " fk_user_valid = ".((int) $user->id).","; + $sql .= " date_valid = '".$this->db->idate(dol_now())."',"; if (!empty($this->statut) && is_numeric($this->statut)) { $sql .= " statut = ".((int) $this->statut).","; } else { + $this->error = 'Property status must be a numeric value'; $error++; } $sql .= " ref = '".$this->db->escape($num)."'"; @@ -854,7 +872,7 @@ class Holiday extends CommonObject $error++; } if (!empty($this->fk_validator)) { - $sql .= " fk_validator = '".$this->db->escape($this->fk_validator)."',"; + $sql .= " fk_validator = ".((int) $this->fk_validator).","; } else { $error++; } @@ -864,17 +882,27 @@ class Holiday extends CommonObject $sql .= " date_valid = NULL,"; } if (!empty($this->fk_user_valid)) { - $sql .= " fk_user_valid = '".$this->db->escape($this->fk_user_valid)."',"; + $sql .= " fk_user_valid = ".((int) $this->fk_user_valid).","; } else { $sql .= " fk_user_valid = NULL,"; } + if (!empty($this->date_approval)) { + $sql .= " date_approval = '".$this->db->idate($this->date_approval)."',"; + } else { + $sql .= " date_approval = NULL,"; + } + if (!empty($this->fk_user_approve)) { + $sql .= " fk_user_approve = ".((int) $this->fk_user_approve).","; + } else { + $sql .= " fk_user_approve = NULL,"; + } if (!empty($this->date_refuse)) { $sql .= " date_refuse = '".$this->db->idate($this->date_refuse)."',"; } else { $sql .= " date_refuse = NULL,"; } if (!empty($this->fk_user_refuse)) { - $sql .= " fk_user_refuse = '".$this->db->escape($this->fk_user_refuse)."',"; + $sql .= " fk_user_refuse = ".((int) $this->fk_user_refuse).","; } else { $sql .= " fk_user_refuse = NULL,"; } @@ -884,7 +912,7 @@ class Holiday extends CommonObject $sql .= " date_cancel = NULL,"; } if (!empty($this->fk_user_cancel)) { - $sql .= " fk_user_cancel = '".$this->db->escape($this->fk_user_cancel)."',"; + $sql .= " fk_user_cancel = ".((int) $this->fk_user_cancel).","; } else { $sql .= " fk_user_cancel = NULL,"; } @@ -983,17 +1011,27 @@ class Holiday extends CommonObject $sql .= " date_valid = NULL,"; } if (!empty($this->fk_user_valid)) { - $sql .= " fk_user_valid = '".$this->db->escape($this->fk_user_valid)."',"; + $sql .= " fk_user_valid = ".((int) $this->fk_user_valid).","; } else { $sql .= " fk_user_valid = NULL,"; } + if (!empty($this->date_approval)) { + $sql .= " date_approval = '".$this->db->idate($this->date_approval)."',"; + } else { + $sql .= " date_approval = NULL,"; + } + if (!empty($this->fk_user_approve)) { + $sql .= " fk_user_approve = ".((int) $this->fk_user_approve).","; + } else { + $sql .= " fk_user_approve = NULL,"; + } if (!empty($this->date_refuse)) { $sql .= " date_refuse = '".$this->db->idate($this->date_refuse)."',"; } else { $sql .= " date_refuse = NULL,"; } if (!empty($this->fk_user_refuse)) { - $sql .= " fk_user_refuse = '".$this->db->escape($this->fk_user_refuse)."',"; + $sql .= " fk_user_refuse = ".((int) $this->fk_user_refuse).","; } else { $sql .= " fk_user_refuse = NULL,"; } @@ -1003,7 +1041,7 @@ class Holiday extends CommonObject $sql .= " date_cancel = NULL,"; } if (!empty($this->fk_user_cancel)) { - $sql .= " fk_user_cancel = '".$this->db->escape($this->fk_user_cancel)."',"; + $sql .= " fk_user_cancel = ".((int) $this->fk_user_cancel).","; } else { $sql .= " fk_user_cancel = NULL,"; } @@ -1115,11 +1153,11 @@ class Holiday extends CommonObject $this->fetchByUser($fk_user, '', ''); foreach ($this->holiday as $infos_CP) { - if ($infos_CP['statut'] == 4) { + if ($infos_CP['statut'] == Holiday::STATUS_CANCELED) { continue; // ignore not validated holidays } - if ($infos_CP['statut'] == 5) { - continue; // ignore not validated holidays + if ($infos_CP['statut'] == Holiday::STATUS_REFUSED) { + continue; // ignore refused holidays } //var_dump("--"); //var_dump("old: ".dol_print_date($infos_CP['date_debut'],'dayhour').' '.dol_print_date($infos_CP['date_fin'],'dayhour').' '.$infos_CP['halfday']); @@ -1432,7 +1470,7 @@ class Holiday extends CommonObject $sql .= " value = '".$this->db->escape($value)."'"; $sql .= " WHERE name = '".$this->db->escape($name)."'"; - dol_syslog(get_class($this).'::updateConfCP name='.$name.'', LOG_DEBUG); + dol_syslog(get_class($this).'::updateConfCP name='.$name, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { return true; @@ -1442,7 +1480,7 @@ class Holiday extends CommonObject } /** - * Return value of a conf parameterfor leave module + * Return value of a conf parameter for leave module * TODO Move this into llx_const table * * @param string $name Name of parameter @@ -1542,7 +1580,7 @@ class Holiday extends CommonObject // We add a log for each user $this->addLogCP($user->id, $userCounter['rowid'], $langs->trans('HolidaysMonthlyUpdate'), $newSolde, $userCounter['type']); - $result = $this->updateSoldeCP($userCounter['rowid'], $newSolde, $userCounter['type'], $langs->trans('HolidaysMonthlyUpdate')); + $result = $this->updateSoldeCP($userCounter['rowid'], $newSolde, $userCounter['type']); if ($result < 0) { $error++; @@ -1731,13 +1769,13 @@ class Holiday extends CommonObject if ($type) { // If user of Dolibarr $sql = "SELECT"; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= " DISTINCT"; } $sql .= " u.rowid"; $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql .= " WHERE ((ug.fk_user = u.rowid"; $sql .= " AND ug.entity IN (".getEntity('usergroup')."))"; @@ -1821,13 +1859,13 @@ class Holiday extends CommonObject if ($type) { // If we need users of Dolibarr $sql = "SELECT"; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= " DISTINCT"; } $sql .= " u.rowid, u.lastname, u.firstname, u.gender, u.photo, u.employee, u.statut, u.fk_user"; $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql .= " WHERE ((ug.fk_user = u.rowid"; $sql .= " AND ug.entity IN (".getEntity('usergroup')."))"; @@ -1855,6 +1893,7 @@ class Holiday extends CommonObject $obj = $this->db->fetch_object($resql); $tab_result[$i]['rowid'] = $obj->rowid; // rowid of user + $tab_result[$i]['id'] = $obj->rowid; // id of user $tab_result[$i]['name'] = $obj->lastname; // deprecated $tab_result[$i]['lastname'] = $obj->lastname; $tab_result[$i]['firstname'] = $obj->firstname; @@ -1897,6 +1936,7 @@ class Holiday extends CommonObject $obj = $this->db->fetch_object($resql); $tab_result[$i]['rowid'] = $obj->rowid; // rowid of user + $tab_result[$i]['id'] = $obj->rowid; // id of user $tab_result[$i]['name'] = $obj->lastname; // deprecated $tab_result[$i]['lastname'] = $obj->lastname; $tab_result[$i]['firstname'] = $obj->firstname; @@ -2131,6 +2171,7 @@ class Holiday extends CommonObject $obj = $this->db->fetch_object($resql); $tab_result[$i]['rowid'] = $obj->rowid; + $tab_result[$i]['id'] = $obj->rowid; $tab_result[$i]['date_action'] = $obj->date_action; $tab_result[$i]['fk_user_action'] = $obj->fk_user_action; $tab_result[$i]['fk_user_update'] = $obj->fk_user_update; @@ -2179,7 +2220,7 @@ class Holiday extends CommonObject $num = $this->db->num_rows($result); if ($num) { while ($obj = $this->db->fetch_object($result)) { - $types[$obj->rowid] = array('rowid'=> $obj->rowid, 'code'=> $obj->code, 'label'=>$obj->label, 'affect'=>$obj->affect, 'delay'=>$obj->delay, 'newbymonth'=>$obj->newbymonth); + $types[$obj->rowid] = array('id'=> $obj->rowid, 'rowid'=> $obj->rowid, 'code'=> $obj->code, 'label'=>$obj->label, 'affect'=>$obj->affect, 'delay'=>$obj->delay, 'newbymonth'=>$obj->newbymonth); } return $types; @@ -2206,12 +2247,13 @@ class Holiday extends CommonObject $sql .= " f.date_create as datec,"; $sql .= " f.tms as date_modification,"; $sql .= " f.date_valid as datev,"; - $sql .= " f.date_approve as datea,"; + $sql .= " f.date_approval as datea,"; $sql .= " f.date_refuse as dater,"; $sql .= " f.fk_user_create as fk_user_creation,"; $sql .= " f.fk_user_modif as fk_user_modification,"; - $sql .= " f.fk_user_valid as fk_user_approve_done,"; - $sql .= " f.fk_validator as fk_user_approve_expected,"; + $sql .= " f.fk_user_valid as fk_user_validation,"; + $sql .= " f.fk_user_approve as fk_user_approval_done,"; + $sql .= " f.fk_validator as fk_user_approval_expected,"; $sql .= " f.fk_user_refuse as fk_user_refuse"; $sql .= " FROM ".MAIN_DB_PREFIX."holiday as f"; $sql .= " WHERE f.rowid = ".((int) $id); @@ -2227,16 +2269,16 @@ class Holiday extends CommonObject $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->date_modification); $this->date_validation = $this->db->jdate($obj->datev); - $this->date_approbation = $this->db->jdate($obj->datea); + $this->date_approval = $this->db->jdate($obj->datea); if (!empty($obj->fk_user_creation)) { $cuser = new User($this->db); $cuser->fetch($obj->fk_user_creation); $this->user_creation = $cuser; } - if (!empty($obj->fk_user_approve_done)) { + if (!empty($obj->fk_user_valid)) { $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_approve_done); + $vuser->fetch($obj->fk_user_valid); $this->user_validation = $vuser; } if (!empty($obj->fk_user_modification)) { @@ -2246,15 +2288,9 @@ class Holiday extends CommonObject } if ($obj->status == Holiday::STATUS_APPROVED || $obj->status == Holiday::STATUS_CANCELED) { - if ($obj->fk_user_approve_done) { + if ($obj->fk_user_approval_done) { $auser = new User($this->db); - $auser->fetch($obj->fk_user_approve_done); - $this->user_approve = $auser; - } - } else { - if (!empty($obj->fk_user_approve_expected)) { - $auser = new User($this->db); - $auser->fetch($obj->fk_user_approve_expected); + $auser->fetch($obj->fk_user_approval_done); $this->user_approve = $auser; } } diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index 0a557b0db76..2eb69145254 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2007-2022 Laurent Destailleur * Copyright (C) 2011 Dimitri Mouillard * Copyright (C) 2013 Marcos García * Copyright (C) 2016 Regis Houssin @@ -26,6 +26,7 @@ * \brief File that defines the balance of paid holiday of users. */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; @@ -45,6 +46,9 @@ $search_supervisor = GETPOST('search_supervisor', 'int'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$confirm = GETPOST('confirm', 'alpha'); + $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page == -1) { $page = 0; @@ -60,6 +64,17 @@ if (!$sortorder) { } +// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array +$hookmanager->initHooks(array('defineholidaylist')); +$extrafields = new ExtraFields($db); + +$holiday = new Holiday($db); + + +if (empty($conf->holiday->enabled)) { + accessforbidden('Module not enabled'); +} + // Protection if external user if ($user->socid > 0) { accessforbidden(); @@ -71,23 +86,6 @@ if (empty($user->rights->holiday->read)) { } -// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array -$hookmanager->initHooks(array('defineholidaylist')); -$extrafields = new ExtraFields($db); - -$holiday = new Holiday($db); - -if (empty($conf->holiday->enabled)) { - llxHeader('', $langs->trans('CPTitreMenu')); - print '
    '; - print ''.$langs->trans('NotActiveModCP').''; - print '
    '; - llxFooter(); - exit(); -} - - - /* * Actions */ @@ -118,24 +116,26 @@ if (empty($reshook)) { } // Mass actions - /* - $objectclass='Skeleton'; - $objectlabel='Skeleton'; - $permissiontoread = $user->rights->skeleton->read; - $permissiontodelete = $user->rights->skeleton->delete; - $uploaddir = $conf->skeleton->dir_output; + $objectclass = 'Holiday'; + $objectlabel = 'Holiday'; + $permissiontoread = $user->hasRight('holiday', 'read'); + $permissiontodelete = $user->hasRight('holiday', 'delete'); + $permissiontoapprove = $user->hasRight('holiday', 'approve'); + $uploaddir = $conf->holiday->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; - */ - // Si il y a une action de mise à jour + // If there is an update action if ($action == 'update' && GETPOSTISSET('update_cp')) { $error = 0; + $nbok = 0; $typeleaves = $holiday->getTypes(1, 1); $userID = array_keys(GETPOST('update_cp')); $userID = $userID[0]; + $db->begin(); + foreach ($typeleaves as $key => $val) { $userValue = GETPOST('nb_holiday_'.$val['rowid']); $userValue = $userValue[$userID]; @@ -150,20 +150,26 @@ if (empty($reshook)) { $note_holiday = GETPOST('note_holiday'); $comment = ((isset($note_holiday[$userID]) && !empty($note_holiday[$userID])) ? ' ('.$note_holiday[$userID].')' : ''); - //print 'holiday: '.$val['rowid'].'-'.$userValue; + //print 'holiday: '.$val['rowid'].'-'.$userValue;exit; if ($userValue != '') { - // We add the modification to the log (must be before update of sold because we read current value of sold) + // We add the modification to the log (must be done before the update of balance because we read current value of balance inside this method) $result = $holiday->addLogCP($user->id, $userID, $langs->transnoentitiesnoconv('ManualUpdate').$comment, $userValue, $val['rowid']); if ($result < 0) { setEventMessages($holiday->error, $holiday->errors, 'errors'); $error++; + } elseif ($result == 0) { + setEventMessages($langs->trans("HolidayQtyNotModified", $user->login), null, 'warnings'); } // Update of the days of the employee - $result = $holiday->updateSoldeCP($userID, $userValue, $val['rowid']); - if ($result < 0) { - setEventMessages($holiday->error, $holiday->errors, 'errors'); - $error++; + if ($result > 0) { + $nbok++; + + $result = $holiday->updateSoldeCP($userID, $userValue, $val['rowid']); + if ($result < 0) { + setEventMessages($holiday->error, $holiday->errors, 'errors'); + $error++; + } } // If it first update of balance, we set date to avoid to have sold incremented by new month @@ -179,7 +185,13 @@ if (empty($reshook)) { } if (!$error) { - setEventMessages('UpdateConfCPOK', '', 'mesgs'); + $db->commit(); + + if ($nbok > 0) { + setEventMessages('UpdateConfCPOK', null, 'mesgs'); + } + } else { + $db->rollback(); } } } @@ -197,13 +209,23 @@ $title = $langs->trans('CPTitreMenu'); llxHeader('', $title); - $typeleaves = $holiday->getTypes(1, 1); $result = $holiday->updateBalance(); // Create users into table holiday if they don't exists. TODO Remove this whif we use field into table user. if ($result < 0) { setEventMessages($holiday->error, $holiday->errors, 'errors'); } +// List of mass actions available +$arrayofmassactions = array( + //'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), + //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), + //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), +); +if ($user->hasRight("holiday", "approve")) { + $arrayofmassactions['preincreaseholiday'] = img_picto('', 'add', 'class="pictofixedwidth"').$langs->trans("IncreaseHolidays"); +} +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); + print ''; if ($optioncss != '') { @@ -217,7 +239,33 @@ print ''; print ''; print ''; -print load_fiche_titre($langs->trans('MenuConfCP'), '', 'title_hrm.png'); +$title = $langs->trans("MenuConfCP"); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $massactionbutton, '', '', 'title_hrm', 0, '', '', $limit, 0, 0, 1); + +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + +if ($massaction == 'preincreaseholiday') { + $langs->load("holiday", "hrm"); + require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; + $staticholiday = new Holiday($db); + $arraytypeholidays = $staticholiday->getTypes(1, 1); + $formquestion[] = array(); + $labeltypes = array(); + foreach ($typeleaves as $key => $val) { + $labeltypes[$val['id']] = ($langs->trans($val['code']) != $val['code']) ? $langs->trans($val['code']) : $langs->trans($val['label']); + } + $formquestion [] = array( 'type' => 'other', + 'name' => 'typeofholiday', + 'label' => $langs->trans("Type"), + 'value' => $form->selectarray('typeholiday', $labeltypes, GETPOST('typeholiday', 'alpha'), 1) + ); + $formquestion [] = array( 'type' => 'other', + 'name' => 'nbdaysholydays', + 'label' => $langs->trans("NumberDayAddMass"), + 'value' => '' + ); + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassIncreaseHoliday"), $langs->trans("ConfirmMassIncreaseHolidayQuestion", count($toselect)), "increaseholiday", $formquestion, 1, 0, 200, 500, 1); +} print '
    '.$langs->trans('LastUpdateCP').': '."\n"; $lastUpdate = $holiday->getConfCP('lastUpdate'); @@ -273,11 +321,13 @@ if (count($typeleaves) == 0) { print '
    '; + print ''; + print ''; - print $form->select_dolusers($search_supervisor, 'search_supervisor', 1, null, 0, null, null, 0, 0, 0, '', 0, '', 'maxwidth200'); + print $form->select_dolusers($search_supervisor, 'search_supervisor', 1, null, 0, null, null, 0, 0, 0, '', 0, '', 'maxwidth150'); print ''; @@ -311,11 +362,19 @@ if (count($typeleaves) == 0) { } print_liste_field_titre((empty($user->rights->holiday->define_holiday) ? '' : 'Note'), $_SERVER["PHP_SELF"]); print_liste_field_titre(''); + + if ($massactionbutton) { + $selectedfields = $form->showCheckAddButtons('checkforselect', 1); + } + + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print '
    '; + print ''; if (!empty($user->rights->holiday->define_holiday)) { // Allowed to set the balance of any user print ''; } print ''; + + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($userstatic->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    '; - print $form->textwithpicto($langs->trans('DateDebCP'), $langs->trans("FirstDayOfHoliday")); - print ''.dol_print_date($object->date_debut, 'day'); - print '     '; - print ''.$langs->trans($listhalfday[$starthalfday]).''; - print '
    '; - print $form->textwithpicto($langs->trans('DateDebCP'), $langs->trans("FirstDayOfHoliday")); - print ''; - print $form->selectDate($object->date_debut, 'date_debut_'); - print '     '; - print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday') ?GETPOST('starthalfday') : $starthalfday)); - print '
    '; + print $form->textwithpicto($langs->trans('DateDebCP'), $langs->trans("FirstDayOfHoliday")); + print ''.dol_print_date($object->date_debut, 'day'); + print '     '; + print ''.$langs->trans($listhalfday[$starthalfday]).''; + print '
    '; - print $form->textwithpicto($langs->trans('DateFinCP'), $langs->trans("LastDayOfHoliday")); - print ''.dol_print_date($object->date_fin, 'day'); - print '     '; - print ''.$langs->trans($listhalfday[$endhalfday]).''; - print '
    '; - print $form->textwithpicto($langs->trans('DateFinCP'), $langs->trans("LastDayOfHoliday")); - print ''; - print $form->selectDate($object->date_fin, 'date_fin_'); - print '     '; - print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday') ?GETPOST('endhalfday') : $endhalfday)); - print '
    '; + print $form->textwithpicto($langs->trans('DateFinCP'), $langs->trans("LastDayOfHoliday")); + print ''.dol_print_date($object->date_fin, 'day'); + print '     '; + print ''.$langs->trans($listhalfday[$endhalfday]).''; + print '
    '.$langs->trans('DescCP').''.nl2br($object->description).'
    '.$langs->trans('DescCP').'
    '.$langs->trans('DescCP').''.nl2br($object->description).'
    '.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
    '.$langs->trans("TotalSizeOfAttachedFiles").''.dol_print_size($totalsize, 1, 1).'
    '."\n"; print ''; - if (! empty($object->fk_user_create)) - { + if (!empty($object->fk_user_create)) { $userCreate=new User($db); $userCreate->fetch($object->fk_user_create); print ''; @@ -284,19 +249,10 @@ if ($object->id) { print ''; } - if (!$edit) { - print ''; - print ''; - print ''; - print ''; - } else { - print ''; - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; + print ''; print ''; print ''; diff --git a/htdocs/holiday/info.php b/htdocs/holiday/info.php index 5df3a5069de..a1aea0720a5 100644 --- a/htdocs/holiday/info.php +++ b/htdocs/holiday/info.php @@ -23,6 +23,7 @@ * \brief Page to show a leave information */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 5978b6a31be..564fb8a2a96 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -3,7 +3,7 @@ * Copyright (C) 2013-2020 Laurent Destailleur * Copyright (C) 2012-2016 Regis Houssin * Copyright (C) 2018 Charlene Benke - * Copyright (C) 2019-2021 Frédéric France + * Copyright (C) 2019-2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ * \brief List of holiday */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; @@ -59,29 +60,6 @@ $id = GETPOST('id', 'int'); $childids = $user->getAllChildIds(1); -// Security check -$socid = 0; -if ($user->socid > 0) { // Protection if external user - //$socid = $user->socid; - accessforbidden(); -} -$result = restrictedArea($user, 'holiday', '', ''); -// If we are on the view of a specific user -if ($id > 0) { - $canread = 0; - if ($id == $user->id) { - $canread = 1; - } - if (!empty($user->rights->holiday->readall)) { - $canread = 1; - } - if (!empty($user->rights->holiday->read) && in_array($id, $childids)) { - $canread = 1; - } - if (!$canread) { - accessforbidden(); - } -} $diroutputmassaction = $conf->holiday->dir_output.'/temp/massgeneration/'.$user->id; @@ -148,7 +126,7 @@ $arrayfields = array( 'cp.date_debut'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>40), 'cp.date_fin'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>42), 'cp.date_valid'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1, 'position'=>60), - 'cp.date_approve'=>array('label'=>$langs->trans("DateApprove"), 'checked'=>1, 'position'=>70), + 'cp.date_approval'=>array('label'=>$langs->trans("DateApprove"), 'checked'=>1, 'position'=>70), 'cp.date_create'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), 'cp.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>501), 'cp.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000), @@ -156,15 +134,36 @@ $arrayfields = array( // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; -if (empty($conf->holiday->enabled)) { - llxHeader('', $langs->trans('CPTitreMenu')); - print '
    '; - print ''.$langs->trans('NotActiveModCP').''; - print '
    '; - llxFooter(); - exit(); + +// Security check +$socid = 0; +if ($user->socid > 0) { // Protection if external user + //$socid = $user->socid; + accessforbidden(); } +if (empty($conf->holiday->enabled)) accessforbidden('Module not enabled'); + +$result = restrictedArea($user, 'holiday', '', ''); +// If we are on the view of a specific user +if ($id > 0) { + $canread = 0; + if ($id == $user->id) { + $canread = 1; + } + if (!empty($user->rights->holiday->readall)) { + $canread = 1; + } + if (!empty($user->rights->holiday->read) && in_array($id, $childids)) { + $canread = 1; + } + if (!$canread) { + accessforbidden(); + } +} + + + /* * Actions @@ -211,9 +210,9 @@ if (empty($reshook)) { // Mass actions $objectclass = 'Holiday'; $objectlabel = 'Holiday'; - $permissiontoread = $user->rights->holiday->read; - $permissiontodelete = $user->rights->holiday->delete; - $permissiontoapprove = $user->rights->holiday->approve; + $permissiontoread = $user->hasRight('holiday', 'read'); + $permissiontodelete = $user->hasRight('holiday', 'delete'); + $permissiontoapprove = $user->hasRight('holiday', 'approve'); $uploaddir = $conf->holiday->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -272,6 +271,8 @@ $sql .= " cp.statut as status,"; $sql .= " cp.fk_validator,"; $sql .= " cp.date_valid,"; $sql .= " cp.fk_user_valid,"; +$sql .= " cp.date_approval,"; +$sql .= " cp.fk_user_approve,"; $sql .= " cp.date_refuse,"; $sql .= " cp.fk_user_refuse,"; $sql .= " cp.date_cancel,"; @@ -303,6 +304,9 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."holiday as cp"; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (cp.rowid = ef.fk_object)"; @@ -355,21 +359,32 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); - +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); @@ -539,7 +554,7 @@ if ($resql) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); @@ -554,7 +569,13 @@ if ($resql) { // Filters print '
    '; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['cp.ref']['checked'])) { print ''; } - // End date + // Date validation if (!empty($arrayfields['cp.date_valid']['checked'])) { print ''; } + // Date appoval + if (!empty($arrayfields['cp.date_approval']['checked'])) { + print ''; + } + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; // Fields from hook @@ -674,14 +701,19 @@ if ($resql) { } // Action column - print ''; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } print "\n"; print ''; + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'maxwidthsearch center '); + } if (!empty($arrayfields['cp.ref']['checked'])) { print_liste_field_titre($arrayfields['cp.ref']['label'], $_SERVER["PHP_SELF"], "cp.ref", "", $param, '', $sortfield, $sortorder); } @@ -706,6 +738,9 @@ if ($resql) { if (!empty($arrayfields['cp.date_valid']['checked'])) { print_liste_field_titre($arrayfields['cp.date_valid']['label'], $_SERVER["PHP_SELF"], "cp.date_valid", "", $param, '', $sortfield, $sortorder, 'center '); } + if (!empty($arrayfields['cp.date_approval']['checked'])) { + print_liste_field_titre($arrayfields['cp.date_approval']['label'], $_SERVER["PHP_SELF"], "cp.date_approval", "", $param, '', $sortfield, $sortorder, 'center '); + } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields @@ -721,7 +756,9 @@ if ($resql) { if (!empty($arrayfields['cp.statut']['checked'])) { print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "cp.statut", "", $param, '', $sortfield, $sortorder, 'right '); } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'maxwidthsearch center '); + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'maxwidthsearch center '); + } print "\n"; $listhalfday = array('morning'=>$langs->trans("Morning"), "afternoon"=>$langs->trans("Afternoon")); @@ -779,7 +816,18 @@ if ($resql) { $endhalfday = ($obj->halfday == 1 || $obj->halfday == 2) ? 'morning' : 'afternoon'; print ''; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['cp.ref']['checked'])) { print ''; if (!$i) $totalarray['nbfield']++; } - /*if (!empty($arrayfields['cp.date_approve']['checked'])) { - print ''; - if (!$i) $totalarray['nbfield']++; - }*/ + // Date approval + if (!empty($arrayfields['cp.date_approval']['checked'])) { + print ''; + if (!$i) $totalarray['nbfield']++; + } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; @@ -881,15 +931,17 @@ if ($resql) { } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } @@ -911,6 +963,8 @@ if ($resql) { } } } + // status + print ''; print ''; } } diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php index bfde7e34191..a1a23715126 100644 --- a/htdocs/holiday/month_report.php +++ b/htdocs/holiday/month_report.php @@ -24,6 +24,7 @@ * \brief Monthly report of leave requests. */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; @@ -117,16 +118,16 @@ if (empty($reshook)) { } $arrayfields = array( - 'cp.ref'=>array('label'=>$langs->trans('Ref'), 'checked'=>1), - 'cp.fk_user'=>array('label'=>$langs->trans('Employee'), 'checked'=>1), - 'cp.fk_type'=>array('label'=>$langs->trans('Type'), 'checked'=>1), - 'cp.date_debut'=>array('label'=>$langs->trans('DateDebCP'), 'checked'=>1), - 'cp.date_fin'=>array('label'=>$langs->trans('DateFinCP'), 'checked'=>1), - 'used_days'=>array('label'=>$langs->trans('NbUseDaysCPShort'), 'checked'=>1), - 'date_start_month'=>array('label'=>$langs->trans('DateStartInMonth'), 'checked'=>1), - 'date_end_month'=>array('label'=>$langs->trans('DateEndInMonth'), 'checked'=>1), - 'used_days_month'=>array('label'=>$langs->trans('NbUseDaysCPShortInMonth'), 'checked'=>1), - 'cp.description'=>array('label'=>$langs->trans('DescCP'), 'checked'=>1), + 'cp.ref'=>array('label' => 'Ref', 'checked'=>1), + 'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1), + 'cp.fk_type'=>array('label' => 'Type', 'checked'=>1), + 'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1), + 'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1), + 'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1), + 'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1), + 'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1), + 'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1), + 'cp.description'=>array('label' => 'DescCP', 'checked'=>1), ); @@ -245,7 +246,7 @@ if (!empty($arrayfields['cp.ref']['checked'])) { // Filter: Employee if (!empty($arrayfields['cp.fk_user']['checked'])) { print ''; } @@ -310,22 +311,22 @@ if (!empty($arrayfields['ct.label']['checked'])) { print_liste_field_titre($arrayfields['ct.label']['label'], $_SERVER["PHP_SELF"], 'ct.label', '', '', '', $sortfield, $sortorder); } if (!empty($arrayfields['cp.date_debut']['checked'])) { - print_liste_field_titre($arrayfields['cp.date_debut']['label'], $_SERVER["PHP_SELF"], 'cp.date_debut', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['cp.date_debut']['label'], $_SERVER["PHP_SELF"], 'cp.date_debut', '', '', '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['cp.date_fin']['checked'])) { - print_liste_field_titre($arrayfields['cp.date_fin']['label'], $_SERVER["PHP_SELF"], 'cp.date_fin', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['cp.date_fin']['label'], $_SERVER["PHP_SELF"], 'cp.date_fin', '', '', '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['used_days']['checked'])) { - print_liste_field_titre($arrayfields['used_days']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['used_days']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'maxwidth125 right '); } if (!empty($arrayfields['date_start_month']['checked'])) { - print_liste_field_titre($arrayfields['date_start_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['date_start_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['date_end_month']['checked'])) { - print_liste_field_titre($arrayfields['date_end_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['date_end_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['used_days_month']['checked'])) { - print_liste_field_titre($arrayfields['used_days_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['used_days_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'maxwidth125 right '); } if (!empty($arrayfields['cp.description']['checked'])) { print_liste_field_titre($arrayfields['cp.description']['label'], $_SERVER["PHP_SELF"], 'cp.description', '', '', '', $sortfield, $sortorder); @@ -334,7 +335,7 @@ print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', print ''; if ($num == 0) { - print ''; + print ''; } else { while ($obj = $db->fetch_object($resql)) { $user = new User($db); @@ -386,7 +387,7 @@ if ($num == 0) { print ''; if (!empty($arrayfields['cp.ref']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['cp.fk_user']['checked'])) { print ''; diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php index 57bcd134745..9bd55252a43 100644 --- a/htdocs/holiday/view_log.php +++ b/htdocs/holiday/view_log.php @@ -24,6 +24,7 @@ * \ingroup holiday */ +// Load Dolibarr environment require '../main.inc.php'; // Security check (access forbidden for external user too) @@ -74,11 +75,6 @@ if (!$sortorder) { $sortorder = "DESC"; } -// Si l'utilisateur n'a pas le droit de lire cette page -if (!$user->rights->holiday->readall) { - accessforbidden(); -} - // Load translation files required by the page $langs->loadLangs(array('users', 'other', 'holiday')); @@ -92,12 +88,12 @@ $arrayfields = array(); $arrayofmassactions = array(); if (empty($conf->holiday->enabled)) { - llxHeader('', $langs->trans('CPTitreMenu')); - print '
    '; - print ''.$langs->trans('NotActiveModCP').''; - print '
    '; - llxFooter(); - exit(); + accessforbidden('Module not enabled'); +} + +// Si l'utilisateur n'a pas le droit de lire cette page +if (!$user->rights->holiday->readall) { + accessforbidden(); } @@ -159,15 +155,15 @@ if (empty($reshook)) { // Definition of fields for lists $arrayfields = array( - 'cpl.rowid'=>array('label'=>$langs->trans("ID"), 'checked'=>1), - 'cpl.date_action'=>array('label'=>$langs->trans("Date"), 'checked'=>1), - 'cpl.fk_user_action'=>array('label'=>$langs->trans("ActionByCP"), 'checked'=>1), - 'cpl.fk_user_update'=>array('label'=>$langs->trans("UserUpdateCP"), 'checked'=>1), - 'cpl.type_action'=>array('label'=>$langs->trans("Description"), 'checked'=>1), - 'cpl.fk_type'=>array('label'=>$langs->trans("Type"), 'checked'=>1), - 'cpl.prev_solde'=>array('label'=>$langs->trans("PrevSoldeCP"), 'checked'=>1), - 'variation'=>array('label'=>$langs->trans("Variation"), 'checked'=>1), - 'cpl.new_solde'=>array('label'=>$langs->trans("NewSoldeCP"), 'checked'=>1), + 'cpl.rowid'=>array('label'=>"ID", 'checked'=>1), + 'cpl.date_action'=>array('label'=>"Date", 'checked'=>1), + 'cpl.fk_user_action'=>array('label'=>"ActionByCP", 'checked'=>1), + 'cpl.fk_user_update'=>array('label'=>"UserUpdateCP", 'checked'=>1), + 'cpl.type_action'=>array('label'=>"Description", 'checked'=>1), + 'cpl.fk_type'=>array('label'=>"Type", 'checked'=>1), + 'cpl.prev_solde'=>array('label'=>"PrevSoldeCP", 'checked'=>1), + 'variation'=>array('label'=>"Variation", 'checked'=>1), + 'cpl.new_solde'=>array('label'=>"NewSoldeCP", 'checked'=>1), ); @@ -287,7 +283,7 @@ print ''; print ''; print ''; -$newcardbutton = dolGetButtonTitle($langs->trans('MenuAddCP'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/holiday/card.php?action=request', '', $user->rights->holiday->write); +$newcardbutton = dolGetButtonTitle($langs->trans('MenuAddCP'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/holiday/card.php?action=create', '', $user->rights->holiday->write); print_barre_liste($langs->trans('LogCP'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_hrm', 0, $newcardbutton, '', $limit, 0, 0, 1); print '
    '.$langs->trans('LastUpdateCP').': '; @@ -403,7 +399,7 @@ print '
    '; print ''; if (!empty($arrayfields['cpl.rowid']['checked'])) { - print_liste_field_titre($arrayfields['cpl.rowid']['label'], $_SERVER["PHP_SELF"], 'rowid', '', '', '', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['cpl.rowid']['label'], $_SERVER["PHP_SELF"], 'cpl.rowid', '', '', '', $sortfield, $sortorder); } if (!empty($arrayfields['cpl.date_action']['checked'])) { print_liste_field_titre($arrayfields['cpl.date_action']['label'], $_SERVER["PHP_SELF"], 'date_action', '', '', '', $sortfield, $sortorder, 'center '); @@ -484,11 +480,12 @@ while ($i < min($num, $limit)) { // Description if (!empty($arrayfields['cpl.type_action']['checked'])) { - print ''; + print ''; } // Type if (!empty($arrayfields['cpl.fk_type']['checked'])) { + $label = ''; if (!empty($alltypeleaves[$holidaylogstatic->type])) { if ($alltypeleaves[$holidaylogstatic->type]['code'] && $langs->trans($alltypeleaves[$holidaylogstatic->type]['code']) != $alltypeleaves[$holidaylogstatic->type]['code']) { $label = $langs->trans($alltypeleaves[$holidaylogstatic->type]['code']); @@ -510,8 +507,13 @@ while ($i < min($num, $limit)) { // Variation if (!empty($arrayfields['variation']['checked'])) { $delta = price2num($holidaylogstatic->balance_new - $holidaylogstatic->balance_previous, 5); - $detasign = ($delta > 0 ? '+' : ''); - print ''; + print ''; } // New Balance diff --git a/htdocs/hrm/admin/admin_establishment.php b/htdocs/hrm/admin/admin_establishment.php index bf1886f4bca..59192bc5ca5 100644 --- a/htdocs/hrm/admin/admin_establishment.php +++ b/htdocs/hrm/admin/admin_establishment.php @@ -16,10 +16,12 @@ */ /** - * \file htdocs/hrm/admin/admin_establishment.php - * \ingroup HRM - * \brief HRM Establishment module setup page + * \file htdocs/hrm/admin/admin_establishment.php + * \ingroup HRM + * \brief HRM Establishment module setup page */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/hrm/lib/hrm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php'; @@ -29,17 +31,36 @@ $langs->loadLangs(array('admin', 'hrm')); $error = 0; +// Permissions $permissiontoread = $user->admin; -$permissiontoadd = $user->admin; +$permissiontoadd = $user->admin; // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); //restrictedArea($user, $object->element, $object->id, '', '', 'fk_soc', 'rowid', 0); -if (empty($conf->hrm->enabled)) accessforbidden(); +if (!isModEnabled('hrm')) accessforbidden(); if (empty($permissiontoread)) accessforbidden(); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$sortfield = GETPOST('sortfield', 'aZ09comma'); +if (!$sortorder) { + $sortorder = "DESC"; +} +if (!$sortfield) { + $sortfield = "e.rowid"; +} + +if (empty($page) || $page == -1) { + $page = 0; +} + +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + /* * Actions @@ -59,46 +80,50 @@ $title = $langs->trans('Establishments'); llxHeader('', $title, ''); -$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; -$sortorder = GETPOST('sortorder', 'aZ09comma'); -$sortfield = GETPOST('sortfield', 'aZ09comma'); -if (!$sortorder) { - $sortorder = "DESC"; -} -if (!$sortfield) { - $sortfield = "e.rowid"; -} - -if (empty($page) || $page == -1) { - $page = 0; -} - -$offset = $limit * $page; -$pageprev = $page - 1; -$pagenext = $page + 1; -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; // Subheader $linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("HRMSetup"), $linkback, 'title_setup'); -$newcardbutton = dolGetButtonTitle($langs->trans('NewEstablishment'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/hrm/establishment/card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permissiontoadd); // Configuration header $head = hrmAdminPrepareHead(); -print dol_get_fiche_head($head, 'establishments', $langs->trans("HRM"), -1, "user", 0, $newcardbutton); +print dol_get_fiche_head($head, 'establishments', $langs->trans("HRM"), -1, "hrm", 0, ''); + +$param = ''; $sql = "SELECT e.rowid, e.rowid as ref, e.label, e.address, e.zip, e.town, e.status"; $sql .= " FROM ".MAIN_DB_PREFIX."establishment as e"; $sql .= " WHERE e.entity IN (".getEntity('establishment').')'; + +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + + if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + $page = 0; + $offset = 0; + } + $db->free($resql); +} + $sql .= $db->order($sortfield, $sortorder); $sql .= $db->plimit($limit + 1, $offset); + +$newcardbutton = dolGetButtonTitle($langs->trans('NewEstablishment'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/hrm/establishment/card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permissiontoadd); + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', 0, $nbtotalofrecords, '', 0, $newcardbutton, '', $limit, 0, 0, 1); + + $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; + print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '
    '.$langs->trans('ReviewedByCP').''.$valideur->getNomUrl(-1).'
    '.$langs->trans('ReviewedByCP').''; - print $form->select_dolusers($object->fk_user, "valideur", 1, ($user->admin ? '' : array($user->id))); // By default, hierarchical parent - print '
    '.$langs->trans('ReviewedByCP').''.$valideur->getNomUrl(-1).'
    '.$langs->trans('DateCreation').'
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -582,7 +603,7 @@ if ($resql) { // Approver if (!empty($arrayfields['cp.fk_validator']['checked'])) { - if ($user->rights->holiday->readall) { + if ($user->hasRight('holiday', 'readall')) { print ''; $validator = new UserGroup($db); $excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id; @@ -637,12 +658,18 @@ if ($resql) { print ''; print ''; + print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; print $holidaystatic->getNomUrl(1, 1); @@ -840,18 +888,20 @@ if ($resql) { $totalarray['nbfield']++; } } + // Date validation if (!empty($arrayfields['cp.date_valid']['checked'])) { // date_valid is both date_valid but also date_approval - print ''; + print ''; print dol_print_date($db->jdate($obj->date_valid), 'day'); print ''; - print dol_print_date($db->jdate($obj->date_approve), 'day'); - print ''; + print dol_print_date($db->jdate($obj->date_approval), 'day'); + print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '; - print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200'); + print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth100'); print '
    '.$langs->trans('None').'
    '.$langs->trans('None').'
    '.$holidaystatic->getNomUrl(1, 1).''.$holidaystatic->getNomUrl(1, 1).''.$user->getFullName($langs).'
    '.$holidaylogstatic->description.''.dol_escape_htmltag($holidaylogstatic->description).''.$detasign.$delta.''; + if ($delta > 0) { + print '+'.$delta.''; + } else { + print ''.$delta.''; + } + print '
    '; print ''; print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.ref", "", "", "", $sortfield, $sortorder); @@ -120,13 +145,12 @@ if ($result) { $establishmentstatic->label = $obj->label; $establishmentstatic->status = $obj->status; - print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''; @@ -135,10 +159,11 @@ if ($result) { $i++; } } else { - print ''; + print ''; } print '
    '.$establishmentstatic->getNomUrl(1).''.$obj->label.''.$obj->address.''.$obj->zip.''.$obj->town.''.dol_escape_htmltag($obj->label).''.dol_escape_htmltag($obj->address).''.dol_escape_htmltag($obj->zip).''.dol_escape_htmltag($obj->town).''; print $establishmentstatic->getLibStatut(5); print '
    '.$langs->trans("None").'
    '.$langs->trans("None").'
    '; + print ''; } else { dol_print_error($db); } diff --git a/htdocs/hrm/admin/admin_hrm.php b/htdocs/hrm/admin/admin_hrm.php index 810c0da870d..ece067ce072 100644 --- a/htdocs/hrm/admin/admin_hrm.php +++ b/htdocs/hrm/admin/admin_hrm.php @@ -16,10 +16,12 @@ */ /** - * \file htdocs/hrm/admin/admin_hrm.php - * \ingroup HRM - * \brief HRM module setup page + * \file htdocs/hrm/admin/admin_hrm.php + * \ingroup HRM + * \brief HRM module setup page */ + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -27,6 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'hrm')); +// Get Parameters $action = GETPOST('action', 'aZ09'); // Other parameters HRM_* @@ -34,15 +37,16 @@ $list = array( // 'HRM_EMAIL_EXTERNAL_SERVICE' // To prevent your public accountant for example ); +// Permissions $permissiontoread = $user->admin; -$permissiontoadd = $user->admin; +$permissiontoadd = $user->admin; // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); //restrictedArea($user, $object->element, $object->id, '', '', 'fk_soc', 'rowid', 0); -if (empty($conf->hrm->enabled)) accessforbidden(); +if (!isModEnabled('hrm')) accessforbidden(); if (empty($permissiontoread)) accessforbidden(); @@ -109,7 +113,7 @@ foreach ($list as $key) { // Value print '
    '; - print ''; + print ''; print '
    '; + print '
    '."\n"; - // Login - print ''; - if (!empty($object->ldap_sid) && $object->statut == 0) { - print ''; + if ($objecttype == 'job') { + // Common attributes + //$keyforbreak='fieldkeytoswitchonsecondcolumn'; // We change column just before this field + //unset($object->fields['fk_project']); // Hide field already shown in banner + //unset($object->fields['fk_soc']); // Hide field already shown in banner + $object->fields['label']['visible']=0; // Already in banner + include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; + + // Other attributes. Fields from hook formObjectOptions and Extrafields. + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; } else { - print ''; + if (!empty($object->ldap_sid) && $object->statut == 0) { + print ''; + } else { + print ''; } - print showValueWithClipboardCPButton($object->login).$addadmin; + print ''."\n"; + + $object->fields['label']['visible']=0; // Already in banner + $object->fields['firstname']['visible']=0; // Already in banner + $object->fields['lastname']['visible']=0; // Already in banner + //include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; + + // Ref employee + print ''; + print ''; + print ''."\n"; + + // National Registration Number + print ''; + print ''; + print ''."\n"; } - print ''."\n"; - - $object->fields['label']['visible']=0; // Already in banner - $object->fields['firstname']['visible']=0; // Already in banner - $object->fields['lastname']['visible']=0; // Already in banner - //include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; - - // Ref employee - print ''; - print ''; - print ''."\n"; - - // National Registration Number - print ''; - print ''; - print ''."\n"; - - /*print ''; // Notification for this thirdparty - print '';*/ print '
    '.$langs->trans("Login").''; - print $langs->trans("LoginAccountDisableInDolibarr"); - print ''; - $addadmin = ''; - if (property_exists($object, 'admin')) { - if (!empty($conf->multicompany->enabled) && !empty($object->admin) && empty($object->entity)) { - $addadmin .= img_picto($langs->trans("SuperAdministratorDesc"), "redstar", 'class="paddingleft"'); - } elseif (!empty($object->admin)) { - $addadmin .= img_picto($langs->trans("AdministratorDesc"), "star", 'class="paddingleft"'); + // Login + print '
    '.$langs->trans("Login").''; + print $langs->trans("LoginAccountDisableInDolibarr"); + print ''; + $addadmin = ''; + if (property_exists($object, 'admin')) { + if (isModEnabled('multicompany') && !empty($object->admin) && empty($object->entity)) { + $addadmin .= img_picto($langs->trans("SuperAdministratorDesc"), "redstar", 'class="paddingleft"'); + } elseif (!empty($object->admin)) { + $addadmin .= img_picto($langs->trans("AdministratorDesc"), "star", 'class="paddingleft"'); + } } + print showValueWithClipboardCPButton(!empty($object->login) ? $object->login : '').$addadmin; + print '
    '.$langs->trans("RefEmployee").''; + print showValueWithClipboardCPButton(!empty($object->ref_employee) ? $object->ref_employee : ''); print '
    '.$langs->trans("NationalRegistrationNumber").''; + print showValueWithClipboardCPButton(!empty($object->national_registration_number) ? $object->national_registration_number : ''); + print '
    '.$langs->trans("RefEmployee").''; - print showValueWithClipboardCPButton($object->ref_employee); - print '
    '.$langs->trans("NationalRegistrationNumber").''; - print showValueWithClipboardCPButton($object->national_registration_number); - print '
    '.$langs->trans("NbOfActiveNotifications").''; - $nbofrecipientemails=0; - $notify=new Notify($db); - $tmparray = $notify->getNotificationsArray('', 0, null, $object->id, array('user')); - foreach($tmparray as $tmpkey => $tmpval) - { - $nbofrecipientemails++; - } - print $nbofrecipientemails; - print '
    '; @@ -317,11 +327,14 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; print ''; + print ''; print '
    '; print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print '
    ' . $langs->trans('AddSkill') . '
    ' . $form->multiselectarray('fk_skill', array_diff_key($TAllSkillsFormatted, $TAlreadyUsedSkill), array(), 0, 0, '', 0, '100%') . ''; + print img_picto('', 'shapes', 'class="pictofixedwidth"'); + print $form->multiselectarray('fk_skill', array_diff_key($TAllSkillsFormatted, $TAlreadyUsedSkill), array(), 0, 0, 'widthcentpercentminusx') . '
    '; @@ -336,6 +349,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; print ''; + print ''; print ''; } print '
    '; diff --git a/htdocs/imports/emptyexample.php b/htdocs/imports/emptyexample.php index 6435f91241c..6d8b3f2d647 100644 --- a/htdocs/imports/emptyexample.php +++ b/htdocs/imports/emptyexample.php @@ -48,6 +48,7 @@ function llxFooter() print ''; } +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/imports/class/import.class.php'; diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index c625b97e6a6..4ba13d01cf0 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -2,6 +2,7 @@ /* Copyright (C) 2005-2016 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2012 Christophe Battarel + * Copyright (C) 2022 Charlene Benke * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -167,6 +168,7 @@ if (empty($array_match_file_to_database)) { } } + /* * Actions */ @@ -196,15 +198,15 @@ if ($action=='downfield' || $action=='upfield') } } */ -if ($action == 'builddoc') { - // Build import file - $result = $objimport->build_file($user, GETPOST('model', 'alpha'), $datatoimport, $array_match_file_to_database); - if ($result < 0) { - setEventMessages($objimport->error, $objimport->errors, 'errors'); - } else { - setEventMessages($langs->trans("FileSuccessfullyBuilt"), null, 'mesgs'); - } -} +// if ($action == 'builddoc') { +// // Build import file +// $result = $objimport->build_file($user, GETPOST('model', 'alpha'), $datatoimport, $array_match_file_to_database); +// if ($result < 0) { +// setEventMessages($objimport->error, $objimport->errors, 'errors'); +// } else { +// setEventMessages($langs->trans("FileSuccessfullyBuilt"), null, 'mesgs'); +// } +// } if ($action == 'deleteprof') { if (GETPOST("id", 'int')) { @@ -233,6 +235,7 @@ if ($action == 'add_import_model') { $result = $objimport->create($user); if ($result >= 0) { setEventMessages($langs->trans("ImportModelSaved", $objimport->model_name), null, 'mesgs'); + $import_name = ''; } else { $langs->load("errors"); if ($objimport->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS') { @@ -392,7 +395,7 @@ if ($step == 1 || !$datatoimport) { print $objimport->array_import_label[$key]; print '
    '; if ($objimport->array_import_perms[$key]) { - print ''.img_picto($langs->trans("NewImport"), 'next', 'class="fa-15x"').''; + print ''.img_picto($langs->trans("NewImport"), 'next', 'class="fa-15"').''; } else { print $langs->trans("NotEnoughPermissions"); } @@ -462,7 +465,6 @@ if ($step == 2 && $datatoimport) { print ''; print ''; - print ''; print '
    '; @@ -483,14 +485,15 @@ if ($step == 2 && $datatoimport) { print '
    '; print $langs->trans("FileMustHaveOneOfFollowingFormat"); print '
    '.img_picto_common($key, $objmodelimport->getPictoForKey($key)).''.$form->textwithpicto($objmodelimport->getDriverLabelForKey($key), $text).''; - print ''; + $filename = $langs->trans("ExampleOfImportFile").'_'.$datatoimport.'.'.$key; + print ''; print img_picto('', 'download', 'class="paddingright opacitymedium"'); print $langs->trans("DownloadEmptyExampleShort"); print ''; @@ -498,7 +501,7 @@ if ($step == 2 && $datatoimport) { print ''; - print ''.img_picto($langs->trans("SelectFormat"), 'next', 'class="fa-15x"').''; + print ''.img_picto($langs->trans("SelectFormat"), 'next', 'class="fa-15"').''; print '
    '; - print ''; + $filename = $langs->trans("ExampleOfImportFile").'_'.$datatoimport.'.'.$format; + print ''; print img_picto('', 'download', 'class="paddingright opacitymedium"'); print $langs->trans("DownloadEmptyExampleShort"); print ''; @@ -604,8 +608,6 @@ if ($step == 3 && $datatoimport) { print ''; print ''; - print ''; - print ''; print ''; print ''; @@ -624,6 +626,11 @@ if ($step == 3 && $datatoimport) { // Input file name box print '
    '; + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + print ''; // MAX_FILE_SIZE must precede the field type=file + } print '     '; $out = (empty($conf->global->MAIN_UPLOAD_DOC) ? ' disabled' : ''); print ''; @@ -632,29 +639,29 @@ if ($step == 3 && $datatoimport) { $max = $conf->global->MAIN_UPLOAD_DOC; // In Kb $maxphp = @ini_get('upload_max_filesize'); // In unknown if (preg_match('/k$/i', $maxphp)) { - $maxphp = $maxphp * 1; + $maxphp = (int) substr($maxphp, 0, -1); } if (preg_match('/m$/i', $maxphp)) { - $maxphp = $maxphp * 1024; + $maxphp = (int) substr($maxphp, 0, -1) * 1024; } if (preg_match('/g$/i', $maxphp)) { - $maxphp = $maxphp * 1024 * 1024; + $maxphp = (int) substr($maxphp, 0, -1) * 1024 * 1024; } if (preg_match('/t$/i', $maxphp)) { - $maxphp = $maxphp * 1024 * 1024 * 1024; + $maxphp = (int) substr($maxphp, 0, -1) * 1024 * 1024 * 1024; } $maxphp2 = @ini_get('post_max_size'); // In unknown if (preg_match('/k$/i', $maxphp2)) { - $maxphp2 = $maxphp2 * 1; + $maxphp2 = (int) substr($maxphp2, 0, -1); } if (preg_match('/m$/i', $maxphp2)) { - $maxphp2 = $maxphp2 * 1024; + $maxphp2 = (int) substr($maxphp2, 0, -1) * 1024; } if (preg_match('/g$/i', $maxphp2)) { - $maxphp2 = $maxphp2 * 1024 * 1024; + $maxphp2 = (int) substr($maxphp2, 0, -1) * 1024 * 1024; } if (preg_match('/t$/i', $maxphp2)) { - $maxphp2 = $maxphp2 * 1024 * 1024 * 1024; + $maxphp2 = (int) substr($maxphp2, 0, -1) * 1024 * 1024 * 1024; } // Now $max and $maxphp and $maxphp2 are in Kb $maxmin = $max; @@ -723,7 +730,7 @@ if ($step == 3 && $datatoimport) { print '">'.img_delete().'
    '; - print ''.img_picto($langs->trans("NewImport"), 'next', 'class="fa-15x"').''; + print ''.img_picto($langs->trans("NewImport"), 'next', 'class="fa-15"').''; print '
    '; // Set the list of all possible target fields in Dolibarr. + $optionsall = array(); foreach ($fieldstarget as $code => $line) { //var_dump($line); - $labeltoshow = $langs->trans($line["label"]); - $optionsall[$code] = array('label'=>$labeltoshow, 'required'=>(empty($line["required"]) ? 0 : 1), 'position'=>!empty($line['position']) ? $line['position'] : 0); - // TODO Get type from an new array into module descriptor. + + $tmparray = explode('|', $line["label"]); // If label of field is several translation keys separated with | + $labeltoshow = ''; + foreach ($tmparray as $tmpkey => $tmpval) { + $labeltoshow .= ($labeltoshow ? ' '.$langs->trans('or').' ' : '').$langs->transnoentities($tmpval); + } + $optionsall[$code] = array('labelkey'=>$line['label'], 'labelkeyarray'=>$tmparray, 'label'=>$labeltoshow, 'required'=>(empty($line["required"]) ? 0 : 1), 'position'=>!empty($line['position']) ? $line['position'] : 0); + // TODO Get type from a new array into module descriptor. //$picto = 'email'; $picto = ''; if ($picto) { @@ -1100,17 +1118,23 @@ if ($step == 4 && $datatoimport) { $height = '32px'; //needs px for css height attribute below $i = 0; $mandatoryfieldshavesource = true; - $more = ""; + //var_dump($fieldstarget); //var_dump($optionsall); //exit; - /* - var_dump($_SESSION['dol_array_match_file_to_database']); - var_dump($_SESSION['dol_array_match_file_to_database_select']); - var_dump($optionsall); - var_dump($fieldssource); - var_dump($fieldstarget); - */ + + //var_dump($_SESSION['dol_array_match_file_to_database']); + //var_dump($_SESSION['dol_array_match_file_to_database_select']); + //exit; + //var_dump($optionsall); + //var_dump($fieldssource); + //var_dump($fieldstarget); + + $modetoautofillmapping = 'session'; // Use setup in session + if ($initialloadofstep4) { + $modetoautofillmapping = 'guess'; + } + //var_dump($modetoautofillmapping); print ''; foreach ($fieldssource as $code => $line) { // $fieldssource is an array code=column num, line=content on first line for column in source file. @@ -1120,33 +1144,25 @@ if ($step == 4 && $datatoimport) { print ''; $entity = (!empty($objimport->array_import_entities[0][$code]) ? $objimport->array_import_entities[0][$code] : $objimport->array_import_icon[0]); - $tablealias = preg_replace('/(\..*)$/i', '', $code); - $tablename = !empty($objimport->array_import_tables[0][$tablealias]) ? $objimport->array_import_tables[0][$tablealias] : ""; - $entityicon = !empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity; // $entityicon must string name of picto of the field like 'project', 'company', 'contact', 'modulename', ... $entitylang = $entitytolang[$entity] ? $entitytolang[$entity] : $objimport->array_import_label[0]; // $entitylang must be a translation key to describe object the field is related to, like 'Company', 'Contact', 'MyModyle', ... - //print ''; - print ''; + print ''; print '"; + $selectforline .= ''; + $selectforline .= ajax_combobox('selectorderimport_'.($i+1)); + print $selectforline; + + print ''; + + // Tooltip at end of line print ''; print ''; $i++; } @@ -1270,7 +1295,7 @@ if ($step == 4 && $datatoimport) { print ''; // Lines for remark - print ''; + print ''; print ''; print '
    => '.img_object('', $entityicon).' '.$langs->trans($entitylang).'=> => '; - $modetoautofillmapping = 'session'; // Use setup in session - if ($initialloadofstep4) { - $modetoautofillmapping = 'guess'; - } //var_dump($_SESSION['dol_array_match_file_to_database_select']); - //var_dump($modetoautofillmapping); //var_dump($_SESSION['dol_array_match_file_to_database']); - //var_dump($modetoautofillmapping); - print ''; if (!empty($line["imported"])) { - print ''; + $selectforline .= ''; } else { - print ''; + $selectforline .= ''; } $j = 0; + $codeselectedarray = array(); foreach ($optionsall as $tmpcode => $tmpval) { // Loop on each entry to add into each combo list. $label = ''; if (!empty($tmpval['picto'])) { @@ -1156,112 +1172,121 @@ if ($step == 4 && $datatoimport) { $label .= $tmpval['label']; $label .= $tmpval['required'] ? '*' : ''; - // If we must guess how to fill the preselected value, and we can't because input value are not string - if ($modetoautofillmapping == 'guess' && $j == 0 && is_numeric($tmpval)) { - $modetoautofillmapping = 'orderoftargets'; + $tablealias = preg_replace('/(\..*)$/i', '', $tmpcode); + $tablename = !empty($objimport->array_import_tables[0][$tablealias]) ? $objimport->array_import_tables[0][$tablealias] : ""; + + $htmltext = ''; + + $filecolumn = ($i + 1); + // Source field info + if (empty($objimport->array_import_convertvalue[0][$tmpcode])) { // If source file does not need convertion + $filecolumntoshow = num2Alpha($i); + } else { + if ($objimport->array_import_convertvalue[0][$tmpcode]['rule'] == 'fetchidfromref') { + $htmltext .= $langs->trans("DataComeFromIdFoundFromRef", $langs->transnoentitiesnoconv($entitylang)).'
    '; + } + if ($objimport->array_import_convertvalue[0][$tmpcode]['rule'] == 'fetchidfromcodeid') { + $htmltext .= $langs->trans("DataComeFromIdFoundFromCodeId", $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$tmpcode]['dict'])).'
    '; + } + } + // Source required + $example = !empty($objimport->array_import_examplevalues[0][$tmpcode])?$objimport->array_import_examplevalues[0][$tmpcode]:""; + // Example + if (empty($objimport->array_import_convertvalue[0][$tmpcode])) { // If source file does not need convertion + if ($example) { + $htmltext .= $langs->trans("SourceExample").': '.str_replace('"', '', $example).'
    '; + } + } else { + if ($objimport->array_import_convertvalue[0][$tmpcode]['rule'] == 'fetchidfromref') { + $htmltext .= $langs->trans("SourceExample").': '.$langs->transnoentitiesnoconv("ExampleAnyRefFoundIntoElement", $entitylang).($example ? ' ('.$langs->transnoentitiesnoconv("Example").': '.str_replace('"', '', $example).')' : '').'
    '; + } elseif ($objimport->array_import_convertvalue[0][$tmpcode]['rule'] == 'fetchidfromcodeid') { + $htmltext .= $langs->trans("SourceExample").': '.$langs->trans("ExampleAnyCodeOrIdFoundIntoDictionary", $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$tmpcode]['dict'])).($example ? ' ('.$langs->transnoentitiesnoconv("Example").': '.str_replace('"', '', $example).')' : '').'
    '; + } elseif ($example) { + $htmltext .= $langs->trans("SourceExample").': '.str_replace('"', '', $example).'
    '; + } + } + // Format control rule + if (!empty($objimport->array_import_regex[0][$tmpcode])) { + $htmltext .= $langs->trans("FormatControlRule").': '.str_replace('"', '', $objimport->array_import_regex[0][$tmpcode]).'
    '; } - print '
    '; - $filecolumn = ($i + 1); + // Source field info $htmltext = ''.$langs->trans("FieldSource").'
    '; - if ($filecolumn > count($fieldssource)) { - $htmltext .= $langs->trans("DataComeFromNoWhere").'
    '; - } else { - if (empty($objimport->array_import_convertvalue[0][$code])) { // If source file does not need convertion - $filecolumntoshow = num2Alpha($i); - $htmltext .= $langs->trans("DataComeFromFileFieldNb", $filecolumntoshow).'
    '; - } else { - if ($objimport->array_import_convertvalue[0][$code]['rule'] == 'fetchidfromref') { - $htmltext .= $langs->trans("DataComeFromIdFoundFromRef", $filecolumn, $langs->transnoentitiesnoconv($entitylang)).'
    '; - } - if ($objimport->array_import_convertvalue[0][$code]['rule'] == 'fetchidfromcodeid') { - $htmltext .= $langs->trans("DataComeFromIdFoundFromCodeId", $filecolumn, $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$code]['dict'])).'
    '; - } - } - } - // Source required - $example = !empty($objimport->array_import_examplevalues[0][$code])?$objimport->array_import_examplevalues[0][$code]:""; - // Example - if (empty($objimport->array_import_convertvalue[0][$code])) { // If source file does not need convertion - if ($example) { - $htmltext .= $langs->trans("SourceExample").': '.$example.'
    '; - } - } else { - if ($objimport->array_import_convertvalue[0][$code]['rule'] == 'fetchidfromref') { - $htmltext .= $langs->trans("SourceExample").': '.$langs->transnoentitiesnoconv("ExampleAnyRefFoundIntoElement", $entitylang).($example ? ' ('.$langs->transnoentitiesnoconv("Example").': '.$example.')' : '').'
    '; - } elseif ($objimport->array_import_convertvalue[0][$code]['rule'] == 'fetchidfromcodeid') { - $htmltext .= $langs->trans("SourceExample").': '.$langs->trans("ExampleAnyCodeOrIdFoundIntoDictionary", $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$code]['dict'])).($example ? ' ('.$langs->transnoentitiesnoconv("Example").': '.$example.')' : '').'
    '; - } elseif ($example) { - $htmltext .= $langs->trans("SourceExample").': '.$example.'
    '; - } - } - // Format control rule - if (!empty($objimport->array_import_regex[0][$code])) { - $htmltext .= $langs->trans("FormatControlRule").': '.$objimport->array_import_regex[0][$code].'
    '; - } - $htmltext .= '
    '; - // Target field info - $htmltext .= ''.$langs->trans("FieldTarget").'
    '; - //$htmltext .= $langs->trans("SourceRequired").': '.yn($line["label"]).'
    '; - if (empty($objimport->array_import_convertvalue[0][$code])) { // If source file does not need convertion - $htmltext .= $langs->trans("DataIsInsertedInto").'
    '; - } else { - if ($objimport->array_import_convertvalue[0][$code]['rule'] == 'fetchidfromref') { - $htmltext .= $langs->trans("DataIDSourceIsInsertedInto").'
    '; - } - if ($objimport->array_import_convertvalue[0][$code]['rule'] == 'fetchidfromcodeid') { - $htmltext .= $langs->trans("DataCodeIDSourceIsInsertedInto").'
    '; - } - } - $htmltext .= $langs->trans("FieldTitle").": ".$langs->trans($fieldstarget[$arraykeysfieldtarget[$code-1]]["label"])."
    "; - $htmltext .= $langs->trans("Table")." -> ".$langs->trans("Field").': '.$tablename." -> ".preg_replace('/^.*\./', '', $code)."
    "; - print $form->textwithpicto($more, $htmltext); + $filecolumntoshow = num2Alpha($i); + $htmltext .= $langs->trans("DataComeFromFileFieldNb", $filecolumntoshow).'
    '; + + print $form->textwithpicto('', $htmltext); + + print '
    '.$langs->trans("Remark").'
    '.$langs->trans("Note").'
    '; @@ -1315,33 +1340,37 @@ if ($step == 4 && $datatoimport) { print ' console.log("Remove the disabled flag everywhere");'."\n"; print ' $("select.targetselectchange").not($( this )).find(\'option\').prop("disabled", false);'."\n"; // Enable all options print ' arrayofselectedvalues = [];'."\n"; + print ' $("select.targetselectchange").each(function(){'."\n"; print ' id = $(this).attr(\'id\')'."\n"; print ' value = $(this).val()'."\n"; - //print ' console.log("a selected value has been found for component "+id+" = "+value);'."\n"; + print ' console.log("a selected value has been found for component "+id+" = "+value);'."\n"; print ' arrayofselectedvalues.push(value);'."\n"; print ' });'."\n"; - print ' console.log("List of all selected values");'."\n"; + + print ' console.log("List of all selected values arrayofselectedvalues");'."\n"; print ' console.log(arrayofselectedvalues);'."\n"; print ' console.log("Set the option to disabled for every entry that is currently selected somewhere else (so into arrayofselectedvalues)");'."\n"; - print ' $.each( arrayofselectedvalues, function( key, value ) {'."\n"; // Loop on each selected value + + print ' $.each(arrayofselectedvalues, function(key, value) {'."\n"; // Loop on each selected value print ' if (value != -1) {'."\n"; - //print ' console.log("Process key="+key+" value="+value+" to disable.");'."\n"; + print ' console.log("Process key="+key+" value="+value+" to disable.");'."\n"; print ' $("select.targetselectchange").find(\'option[value="\'+value+\'"]:not(:selected)\').prop("disabled", true);'."\n"; // Set to disabled except if currently selected print ' }'."\n"; print ' });'."\n"; - print '};'."\n"; + print '}'."\n"; // Function to save the selection in database print 'function saveSelection() {'."\n"; //print ' console.log(arrayofselectedvalues);'."\n"; print ' arrayselectedfields = [];'."\n"; - print ' arrayselectedfields.push("0");'."\n"; + print ' arrayselectedfields.push(0);'."\n"; + print ' $.each( arrayofselectedvalues, function( key, value ) {'."\n"; print ' if (value != -1) {'."\n"; - print ' arrayselectedfields.push(value);'."\n"; + print ' arrayselectedfields.push(value);'."\n"; print ' } else {'."\n"; - print ' arrayselectedfields.push(0);'."\n"; + print ' arrayselectedfields.push(0);'."\n"; print ' }'."\n"; print ' });'."\n"; @@ -1351,12 +1380,14 @@ if ($step == 4 && $datatoimport) { print " url: '".dol_escape_js($_SERVER["PHP_SELF"])."?action=saveselectorder&token=".newToken()."',\n"; print " data: 'selectorder='+arrayselectedfields.toString(),\n"; print " success: function(){\n"; - print " console.log('Select order saved');\n"; + print " console.log('The selected fields have been saved into '+arrayselectedfields.toString());\n"; print " },\n"; print ' });'."\n"; // Now we loop on all target fields that are mandatory to show if they are not mapped yet. + print ' console.log("arrayselectedfields");'; print ' console.log(arrayselectedfields);'; + print ' console.log("arrayoftargetmandatoryfields");'; print ' console.log(arrayoftargetmandatoryfields);'; print " listtoshow = '';"; print " nbelement = arrayoftargetmandatoryfields.length @@ -1375,7 +1406,7 @@ if ($step == 4 && $datatoimport) { } "; - print '};'."\n"; + print '}'."\n"; // If we make a change on a selectbox print '$(".targetselectchange").change(function(){'."\n"; @@ -1448,8 +1479,8 @@ if ($step == 4 && $datatoimport) { print '
    '; print $obj->label; print ''; + print ''; if (empty($obj->fk_user)) { print $langs->trans("Everybody"); } else { @@ -1520,7 +1551,7 @@ if ($step == 5 && $datatoimport) { } $model = $format; - $list = $objmodelimport->liste_modeles($db); + $list = $objmodelimport->listOfAvailableImportFormat($db); // Create classe to use for import $dir = DOL_DOCUMENT_ROOT."/core/modules/import/"; @@ -1563,7 +1594,7 @@ if ($step == 5 && $datatoimport) { $param .= '&updatekeys[]='.implode('&updatekeys[]=', $updatekeys); } - llxHeader('', $langs->trans("NewImport"), 'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); + llxHeader('', $langs->trans("NewImport"), $help_url); $head = import_prepare_head($param, 5); @@ -1797,7 +1828,7 @@ if ($step == 5 && $datatoimport) { // Actions print '
    '; - if ($user->rights->import->run) { + if ($user->hasRight('import', 'run')) { print ''; } else { print ''.$langs->trans("RunSimulateImportFile").''; @@ -1834,7 +1865,7 @@ if ($step == 5 && $datatoimport) { //dol_syslog("line ".$sourcelinenb.' - '.$nboflines.' - '.$excludefirstline.' - '.$endatlinenb); $arrayrecord = $obj->import_read_record(); if ($arrayrecord === false) { - $arrayofwarnings[$sourcelinenb][0] = array('lib'=>'File has '.$nboflines.' lines. However we reach end of file after record '.$sourcelinenb.'. This may occurs when some records are split onto several lines. Ensure the complete string is delimited correctly when there is a separator character in the text string.', 'type'=>'EOF_RECORD_ON_SEVERAL_LINES'); + $arrayofwarnings[$sourcelinenb][0] = array('lib'=>'File has '.$nboflines.' lines. However we reach the end of file or an empty line at record '.$sourcelinenb.'. This may occurs when some records are split onto several lines and not correctly delimited by the "Char delimiter", or if there is line with no data on all fields.', 'type'=>'EOF_RECORD_ON_SEVERAL_LINES'); $endoffile++; continue; } @@ -1884,16 +1915,17 @@ if ($step == 5 && $datatoimport) { // Show OK if (!count($arrayoferrors) && !count($arrayofwarnings)) { - print '
    '.img_picto($langs->trans("OK"), 'tick').' '.$langs->trans("NoError").'


    '; - print '
    '; - print $langs->trans("NbInsert", empty($obj->nbinsert) ? 0 : $obj->nbinsert).'
    '; - print $langs->trans("NbUpdate", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'
    '; + print '
    '; + print '
    '; + print '
    '.$langs->trans("ResultOfSimulationNoError").'
    '; + print $langs->trans("NbInsertSim", empty($obj->nbinsert) ? 0 : $obj->nbinsert).'
    '; + print $langs->trans("NbUpdateSim", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'
    '; print '
    '; print '
    '; } else { print '
    '; - print '
    '; - print $langs->trans("NbOfLinesOK", $nbok).'
    '; + print '
    '; + print $langs->trans("NbOfLinesOK", $nbok).'...
    '; print '
    '; print '
    '; } @@ -1909,9 +1941,9 @@ if ($step == 5 && $datatoimport) { print $langs->trans("TooMuchErrors", (count($arrayoferrors) - $nboferrors))."
    "; break; } - print '* '.$langs->trans("Line").' '.$key.'
    '; + print '* '.$langs->trans("Line").' '.dol_escape_htmltag($key).'
    '; foreach ($val as $i => $err) { - print '     > '.$err['lib'].'
    '; + print '     > '.dol_escape_htmltag($err['lib']).'
    '; } } print '
    '; @@ -1929,9 +1961,9 @@ if ($step == 5 && $datatoimport) { print $langs->trans("TooMuchWarnings", (count($arrayofwarnings) - $nbofwarnings))."
    "; break; } - print ' * '.$langs->trans("Line").' '.$key.'
    '; + print ' * '.$langs->trans("Line").' '.dol_escape_htmltag($key).'
    '; foreach ($val as $i => $err) { - print '     > '.$err['lib'].'
    '; + print '     > '.dol_escape_htmltag($err['lib']).'
    '; } } print '
    '; @@ -1943,16 +1975,16 @@ if ($step == 5 && $datatoimport) { print '
    '; print ''.$langs->trans("NowClickToRunTheImport", $langs->transnoentitiesnoconv("RunImportFile")).'
    '; - if (empty($nboferrors)) { + /*if (empty($nboferrors)) { print $langs->trans("DataLoadedWithId", $importid).'
    '; - } + }*/ print '
    '; print '
    '; // Actions print '
    '; - if ($user->rights->import->run) { + if ($user->hasRight('import', 'run')) { if (empty($nboferrors)) { print ''.$langs->trans("RunImportFile").''; } else { @@ -1982,7 +2014,7 @@ if ($step == 6 && $datatoimport) { } $model = $format; - $list = $objmodelimport->liste_modeles($db); + $list = $objmodelimport->listOfAvailableImportFormat($db); $importid = GETPOST("importid", 'alphanohtml'); @@ -2028,7 +2060,7 @@ if ($step == 6 && $datatoimport) { $param .= '&enclosure='.urlencode($enclosure); } - llxHeader('', $langs->trans("NewImport"), 'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); + llxHeader('', $langs->trans("NewImport"), $help_url); $head = import_prepare_head($param, 6); @@ -2218,7 +2250,7 @@ if ($step == 6 && $datatoimport) { $sourcelinenb++; $arrayrecord = $obj->import_read_record(); if ($arrayrecord === false) { - $arrayofwarnings[$sourcelinenb][0] = array('lib'=>'File has '.$nboflines.' lines. However we reach end of file after record '.$sourcelinenb.'. This may occurs when some records are split onto several lines.', 'type'=>'EOF_RECORD_ON_SEVERAL_LINES'); + $arrayofwarnings[$sourcelinenb][0] = array('lib'=>'File has '.$nboflines.' lines. However we reach the end of file or an empty line at record '.$sourcelinenb.'. This may occurs when some records are split onto several lines and not correctly delimited by the "Char delimiter", or if there is line with no data on all fields.', 'type'=>'EOF_RECORD_ON_SEVERAL_LINES'); $endoffile++; continue; } @@ -2279,10 +2311,10 @@ if ($step == 6 && $datatoimport) { // Show result print '
    '; - print '
    '; + print '
    '; print $langs->trans("NbOfLinesImported", $nbok).'
    '; print $langs->trans("NbInsert", empty($obj->nbinsert) ? 0 : $obj->nbinsert).'
    '; - print $langs->trans("NbUpdate", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'

    '; + print $langs->trans("NbUpdate", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'
    '; print '
    '; print '
    '; print $langs->trans("FileWasImported", $importid).'
    '; @@ -2311,7 +2343,7 @@ $db->close(); */ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '') { - global $langs; + global $conf, $langs; $height = '32px'; @@ -2357,7 +2389,7 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '') if (isset($fieldssource[$pos]['imported']) && $fieldssource[$pos]['imported'] == false) { print '
    '; } else { - print ''; + print ''; } print $langs->trans("Column").' '.num2Alpha($pos - 1).' (#'.$pos.')'; if (empty($fieldssource[$pos]['example1'])) { @@ -2369,7 +2401,12 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '') if (!utf8_check($example)) { $example = utf8_encode($example); } - print ' - '; + if (!empty($conf->dol_optimize_smallscreen)) { + //print '
    '; + print ' - '; + } else { + print ' - '; + } //print ''.$langs->trans("ExampleOnFirstLine").': '; print ''.$example.''; } diff --git a/htdocs/imports/index.php b/htdocs/imports/index.php index ac3d2b23f69..e90f58aa8e1 100644 --- a/htdocs/imports/index.php +++ b/htdocs/imports/index.php @@ -68,7 +68,7 @@ print '
    ",x=o?"":"",g=0;g<7;g++)x+="";for(w+=x+"",D=this._getDaysInMonth(U,K),U===t.selectedYear&&K===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,D)),C=(this._getFirstDayOfMonth(U,K)-n+7)%7,D=Math.ceil((C+D)/7),I=Y&&this.maxRows>D?this.maxRows:D,this.maxRows=I,T=this._daylightSavingAdjust(new Date(U,K,1-C)),P=0;P",M=o?"":"",g=0;g<7;g++)S=c?c.apply(t.input?t.input[0]:null,[T]):[!0,""],z=(H=T.getMonth()!==K)&&!d||!S[0]||j&&T"+(H&&!u?" ":z?""+T.getDate()+"":""+T.getDate()+"")+"",T.setDate(T.getDate()+1),T=this._daylightSavingAdjust(T);w+=M+""}11<++K&&(K=0,U++),_+=w+="
    "+this._get(t,"weekHeader")+""+r[k]+"
    "+this._get(t,"calculateWeek")(T)+"
    "+(Y?"
    "+(0
    ":""):"")}f+=_}return f+=F,t._keyEvent=!1,f},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l,h,c,u,d,p,f=this._get(t,"changeMonth"),g=this._get(t,"changeYear"),m=this._get(t,"showMonthAfterYear"),_=this._get(t,"selectMonthLabel"),v=this._get(t,"selectYearLabel"),b="
    ",y="";if(o||!f)y+=""+a[e]+"";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+=""}if(m||(b+=y+(!o&&f&&g?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!g)b+=""+i+"";else{for(a=this._get(t,"yearRange").split(":"),u=(new Date).getFullYear(),d=(_=function(t){t=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?u+parseInt(t,10):parseInt(t,10);return isNaN(t)?u:t})(a[0]),p=Math.max(d,_(a[1]||"")),d=s?Math.max(d,s.getFullYear()):d,p=n?Math.min(p,n.getFullYear()):p,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),m&&(b+=(!o&&f&&g?"":" ")+y),b+="
    "},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),e=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=e.getDate(),t.drawMonth=t.selectedMonth=e.getMonth(),t.drawYear=t.selectedYear=e.getFullYear(),"M"!==i&&"Y"!==i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),t=this._getMinMaxDate(t,"max"),e=i&&e=i.getTime())&&(!s||e.getTime()<=s.getTime())&&(!n||e.getFullYear()>=n)&&(!o||e.getFullYear()<=o)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);e=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),e,this._getFormatConfig(t))}}),V.fn.datepicker=function(t){if(!this.length)return this;V.datepicker.initialized||(V(document).on("mousedown",V.datepicker._checkExternalClick),V.datepicker.initialized=!0),0===V("#"+V.datepicker._mainDivId).length&&V("body").append(V.datepicker.dpDiv);var e=Array.prototype.slice.call(arguments,1);return"string"==typeof t&&("isDisabled"===t||"getDate"===t||"widget"===t)||"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this].concat(e)):V.datepicker._attachDatepicker(this,t)})},V.datepicker=new st,V.datepicker.initialized=!1,V.datepicker.uuid=(new Date).getTime(),V.datepicker.version="1.13.1";V.datepicker,V.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var rt=!1;V(document).on("mouseup",function(){rt=!1});V.widget("ui.mouse",{version:"1.13.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(t){if(!0===V.data(t.target,e.widgetName+".preventClickEvent"))return V.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!rt){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&V(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===V.data(t.target,this.widgetName+".preventClickEvent")&&V.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),rt=!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(V.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&V.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,rt=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),V.ui.plugin={add:function(t,e,i){var s,n=V.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=V.ui.safeActiveElement(this.document[0]);V(t.target).closest(e).length||V.ui.safeBlur(e)},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),V.ui.ddmanager&&(V.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0i[2]&&(o=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(a=i[3]+this.offset.click.top)),s.grid&&(t=s.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,a=!i||t-this.offset.click.top>=i[1]||t-this.offset.click.top>i[3]?t:t-this.offset.click.top>=i[1]?t-s.grid[1]:t+s.grid[1],t=s.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,o=!i||t-this.offset.click.left>=i[0]||t-this.offset.click.left>i[2]?t:t-this.offset.click.left>=i[0]?t-s.grid[0]:t+s.grid[0]),"y"===s.axis&&(o=this.originalPageX),"x"===s.axis&&(a=this.originalPageY)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,e,i){return i=i||this._uiHash(),V.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),V.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),V.ui.plugin.add("draggable","connectToSortable",{start:function(e,t,i){var s=V.extend({},t,{item:i.element});i.sortables=[],V(i.options.connectToSortable).each(function(){var t=V(this).sortable("instance");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger("activate",e,s))})},stop:function(e,t,i){var s=V.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,V.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(i,s,n){V.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,V.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,t=this!==e&&this._intersectsWith(this.containerCache)&&V.contains(e.element[0],this.element[0])?!1:t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data("ui-sortable-item",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger("toSortable",i),n.dropped=e.element,V.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger("out",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger("fromSortable",i),n.dropped=!1,V.each(n.sortables,function(){this.refreshPositions()}))})}}),V.ui.plugin.add("draggable","cursor",{start:function(t,e,i){var s=V("body"),i=i.options;s.css("cursor")&&(i._cursor=s.css("cursor")),s.css("cursor",i.cursor)},stop:function(t,e,i){i=i.options;i._cursor&&V("body").css("cursor",i._cursor)}}),V.ui.plugin.add("draggable","opacity",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css("opacity")&&(i._opacity=e.css("opacity")),e.css("opacity",i.opacity)},stop:function(t,e,i){i=i.options;i._opacity&&V(e.helper).css("opacity",i._opacity)}}),V.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&V(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){V(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,a=this;if(this.handles=o.handles||(V(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=V(),this._addedHandles=V(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=V(this.handles[e]),this._on(this.handles[e],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=V(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=V(this.handles[e])[0])!==t.target&&!V.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=V(s.containment).scrollLeft()||0,i+=V(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=V(".ui-resizable-"+this.axis).css("cursor"),V("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),V.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(V.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),V("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){V.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),V.ui.plugin.add("resizable","animate",{stop:function(e){var i=V(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,a=n?0:i.sizeDiff.width,n={width:i.size.width-a,height:i.size.height-o},a=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(V.extend(n,o&&a?{top:o,left:a}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&V(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),V.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=V(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,a=o instanceof V?o.get(0):/parent/.test(o)?e.parent().get(0):o;a&&(n.containerElement=V(a),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:V(document),left:0,top:0,width:V(document).width(),height:V(document).height()||document.body.parentNode.scrollHeight}):(i=V(a),s=[],V(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(a,"left")?a.scrollWidth:o,e=n._hasScroll(a)?a.scrollHeight:e,n.parentData={element:a,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=V(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,a={top:0,left:0},r=e.containerElement,t=!0;r[0]!==document&&/static/.test(r.css("position"))&&(a=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-a.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-a.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-a.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=V(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=V(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o})}}),V.ui.plugin.add("resizable","alsoResize",{start:function(){var t=V(this).resizable("instance").options;V(t.alsoResize).each(function(){var t=V(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=V(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,a={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};V(s.alsoResize).each(function(){var t=V(this),s=V(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];V.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){V(this).removeData("ui-resizable-alsoresize")}}),V.ui.plugin.add("resizable","ghost",{start:function(){var t=V(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==V.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=V(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=V(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),V.ui.plugin.add("resizable","grid",{resize:function(){var t,e=V(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=r[0]||1,h=r[1]||1,c=Math.round((s.width-n.width)/l)*l,u=Math.round((s.height-n.height)/h)*h,d=n.width+c,p=n.height+u,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=l),s&&(p+=h),f&&(d-=l),g&&(p-=h),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):((p-h<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),i=!0),i&&!e&&this._trigger("focus",t),i},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=V(V.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;(t=!(t=!(t=!(t=!(t=t||this.element.find("[autofocus]")).length?this.element.find(":tabbable"):t).length?this.uiDialogButtonPane.find(":tabbable"):t).length?this.uiDialogTitlebarClose.filter(":tabbable"):t).length?this.uiDialog:t).eq(0).trigger("focus")},_restoreTabbableFocus:function(){var t=V.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===t||V.contains(this.uiDialog[0],t)||this._focusTabbable()},_keepFocus:function(t){t.preventDefault(),this._restoreTabbableFocus(),this._delay(this._restoreTabbableFocus)},_createWrapper:function(){this.uiDialog=V("
    ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===V.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);var e,i,s;t.keyCode!==V.ui.keyCode.TAB||t.isDefaultPrevented()||(e=this.uiDialog.find(":tabbable"),i=e.first(),s=e.last(),t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){s.trigger("focus")}),t.preventDefault()):(this._delay(function(){i.trigger("focus")}),t.preventDefault()))},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=V("
    "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(t){V(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=V("").button({label:V("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),t=V("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(t,"ui-dialog-title"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=V("
    "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=V("
    ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var s=this,t=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),V.isEmptyObject(t)||Array.isArray(t)&&!t.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(V.each(t,function(t,e){var i;e=V.extend({type:"button"},e="function"==typeof e?{click:e,text:t}:e),i=e.click,t={icon:e.icon,iconPosition:e.iconPosition,showLabel:e.showLabel,icons:e.icons,text:e.text},delete e.click,delete e.icon,delete e.iconPosition,delete e.showLabel,delete e.icons,"boolean"==typeof e.text&&delete e.text,V("",e).button(t).appendTo(s.uiButtonSet).on("click",function(){i.apply(s.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var n=this,o=this.options;function a(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){n._addClass(V(this),"ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",t,a(e))},drag:function(t,e){n._trigger("drag",t,a(e))},stop:function(t,e){var i=e.offset.left-n.document.scrollLeft(),s=e.offset.top-n.document.scrollTop();o.position={my:"left top",at:"left"+(0<=i?"+":"")+i+" top"+(0<=s?"+":"")+s,of:n.window},n._removeClass(V(this),"ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",t,a(e))}})},_makeResizable:function(){var n=this,o=this.options,t=o.resizable,e=this.uiDialog.css("position"),t="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";function a(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:o.maxWidth,maxHeight:o.maxHeight,minWidth:o.minWidth,minHeight:this._minHeight(),handles:t,start:function(t,e){n._addClass(V(this),"ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",t,a(e))},resize:function(t,e){n._trigger("resize",t,a(e))},stop:function(t,e){var i=n.uiDialog.offset(),s=i.left-n.document.scrollLeft(),i=i.top-n.document.scrollTop();o.height=n.uiDialog.height(),o.width=n.uiDialog.width(),o.position={my:"left top",at:"left"+(0<=s?"+":"")+s+" top"+(0<=i?"+":"")+i,of:n.window},n._removeClass(V(this),"ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",t,a(e))}}).css("position",e)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=V(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),e=V.inArray(this,t);-1!==e&&t.splice(e,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||this.document.data("ui-dialog-instances",t=[]),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};V.each(t,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(t,e){var i,s=this.uiDialog;"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:V("").text(""+this.options.closeText).html()}),"draggable"===t&&((i=s.is(":data(ui-draggable)"))&&!e&&s.draggable("destroy"),!i&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&((i=s.is(":data(ui-resizable)"))&&!e&&s.resizable("destroy"),i&&"string"==typeof e&&s.resizable("option","handles",e),i||!1===e||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=V(this);return V("
    ").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!V(t.target).closest(".ui-dialog").length||!!V(t.target).closest(".ui-datepicker").length},_createOverlay:function(){var i,s;this.options.modal&&(i=V.fn.jquery.substring(0,4),s=!0,this._delay(function(){s=!1}),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(t){var e;s||((e=this._trackingInstances()[0])._allowInteraction(t)||(t.preventDefault(),e._focusTabbable(),"3.4."!==i&&"3.5."!==i||e._delay(e._restoreTabbableFocus)))}.bind(this)),this.overlay=V("
    ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1))},_destroyOverlay:function(){var t;this.options.modal&&this.overlay&&((t=this.document.data("ui-dialog-overlays")-1)?this.document.data("ui-dialog-overlays",t):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null)}}),!1!==V.uiBackCompat&&V.widget("ui.dialog",V.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}});V.ui.dialog;function lt(t,e,i){return e<=t&&t").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){if(void 0===t)return this.options.value;this.options.value=this._constrainedValue(t),this._refreshValue()},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,"number"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,e=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(e.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,t===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=V("
    ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),V.widget("ui.selectable",V.ui.mouse,{version:"1.13.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var i=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){i.elementPos=V(i.element[0]).offset(),i.selectees=V(i.options.filter,i.element[0]),i._addClass(i.selectees,"ui-selectee"),i.selectees.each(function(){var t=V(this),e=t.offset(),e={left:e.left-i.elementPos.left,top:e.top-i.elementPos.top};V.data(this,"selectable-item",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=V("
    "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.elementPos=V(this.element[0]).offset(),this.options.disabled||(this.selectees=V(t.filter,this.element[0]),this._trigger("start",i),V(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=V.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(s._removeClass(t.$element,"ui-selected"),t.selected=!1,s._addClass(t.$element,"ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),V(i.target).parents().addBack().each(function(){var t,e=V.data(this,"selectable-item");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),s._removeClass(e.$element,t?"ui-unselecting":"ui-selected")._addClass(e.$element,t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1}))},_mouseDrag:function(s){if(this.dragged=!0,!this.options.disabled){var t,n=this,o=this.options,a=this.opos[0],r=this.opos[1],l=s.pageX,h=s.pageY;return ll||i.righth||i.bottoma&&i.rightr&&i.bottom",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=V()},_drawButton:function(){var t,e=this,i=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.trigger("focus"),t.preventDefault()}}),this.element.hide(),this.button=V("",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),t=V("").appendTo(this.button),this._addClass(t,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(i).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){e._rendered||e._refreshMenu()})},_drawMenu:function(){var i=this;this.menu=V("
      ",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=V("
      ").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,e){t.preventDefault(),i._setSelection(),i._select(e.item.data("ui-selectmenu-item"),t)},focus:function(t,e){e=e.item.data("ui-selectmenu-item");null!=i.focusIndex&&e.index!==i.focusIndex&&(i._trigger("focus",t,{item:e}),i.isOpen||i._select(e,t)),i.focusIndex=e.index,i.button.attr("aria-activedescendant",i.menuItems.eq(e.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t=this.element.find("option");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,t.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(V.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var e=V("");return this._setText(e,t.label),this._addClass(e,"ui-selectmenu-text"),e},_renderMenu:function(s,t){var n=this,o="";V.each(t,function(t,e){var i;e.optgroup!==o&&(i=V("
    • ",{text:e.optgroup}),n._addClass(i,"ui-selectmenu-optgroup","ui-menu-divider"+(e.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),i.appendTo(s),o=e.optgroup),n._renderItemData(s,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(t,e){var i=V("
    • "),s=V("
      ",{title:e.element.attr("title")});return e.disabled&&this._addClass(i,null,"ui-state-disabled"),this._setText(s,e.label),i.append(s).appendTo(t)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),s+=":not(.ui-state-disabled)"),(s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](s).eq(-1):i[t+"All"](s).eq(0)).length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?((t=window.getSelection()).removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(V(t.target).closest(".ui-selectmenu-menu, #"+V.escapeSelector(this.ids.button)).length||this.close(t))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection()).rangeCount&&(this.range=t.getRangeAt(0)):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(t){var e=!0;switch(t.keyCode){case V.ui.keyCode.TAB:case V.ui.keyCode.ESCAPE:this.close(t),e=!1;break;case V.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case V.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case V.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case V.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case V.ui.keyCode.LEFT:this._move("prev",t);break;case V.ui.keyCode.RIGHT:this._move("next",t);break;case V.ui.keyCode.HOME:case V.ui.keyCode.PAGE_UP:this._move("first",t);break;case V.ui.keyCode.END:case V.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),e=!1}e&&t.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){t=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(t,e){var i;"icons"===t&&(i=this.button.find("span.ui-icon"),this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;!1!==t?(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)):this.button.css("width","")},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(t){var i=this,s=[];t.each(function(t,e){e.hidden||s.push(i._parseOption(V(e),t))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),V.widget("ui.slider",V.ui.mouse,{version:"1.13.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,e=this.options,i=this.element.find(".ui-slider-handle"),s=[],n=e.values&&e.values.length||1;for(i.length>n&&(i.slice(n).remove(),i=i.slice(0,n)),t=i.length;t");this.handles=i.add(V(s.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(t){V(this).data("ui-slider-handle-index",t).attr("tabIndex",0)})},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:Array.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=V("
      ").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==t.range&&"max"!==t.range||this._addClass(this.range,"ui-slider-range-"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,o,e,a,r=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),a={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(a),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var e=Math.abs(i-r.values(t));(e=this._valueMax())return this._valueMax();var e=0=e&&(t+=0this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var e=t.toString(),t=e.indexOf(".");return-1===t?0:e.length-t-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,t,s,n,o=this.options.range,a=this.options,r=this,l=!this._animateOff&&a.animate,h={};this._hasMultipleValues()?this.handles.each(function(t){i=(r.values(t)-r._valueMin())/(r._valueMax()-r._valueMin())*100,h["horizontal"===r.orientation?"left":"bottom"]=i+"%",V(this).stop(1,1)[l?"animate":"css"](h,a.animate),!0===r.options.range&&("horizontal"===r.orientation?(0===t&&r.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:a.animate})):(0===t&&r.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:a.animate}))),e=i}):(t=this.value(),s=this._valueMin(),n=this._valueMax(),i=n!==s?(t-s)/(n-s)*100:0,h["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](h,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},a.animate),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},a.animate))},_handleEvents:{keydown:function(t){var e,i,s,n=V(t.target).data("ui-slider-handle-index");switch(t.keyCode){case V.ui.keyCode.HOME:case V.ui.keyCode.END:case V.ui.keyCode.PAGE_UP:case V.ui.keyCode.PAGE_DOWN:case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(V(t.target),null,"ui-state-active"),!1===this._start(t,n)))return}switch(s=this.options.step,e=i=this._hasMultipleValues()?this.values(n):this.value(),t.keyCode){case V.ui.keyCode.HOME:i=this._valueMin();break;case V.ui.keyCode.END:i=this._valueMax();break;case V.ui.keyCode.PAGE_UP:i=this._trimAlignValue(e+(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(e-(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:if(e===this._valueMax())return;i=this._trimAlignValue(e+s);break;case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(e===this._valueMin())return;i=this._trimAlignValue(e-s)}this._slide(t,n,i)},keyup:function(t){var e=V(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,e),this._change(t,e),this._removeClass(V(t.target),null,"ui-state-active"))}}}),V.widget("ui.sortable",V.ui.mouse,{version:"1.13.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t*{ cursor: "+o.cursor+" !important; }").appendTo(n)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return V.ui.ddmanager&&(V.ui.ddmanager.current=this),V.ui.ddmanager&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(t),!0},_scroll:function(t){var e=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageYt[this.floating?"width":"height"]?h&&c:o",i.document[0]);return i._addClass(t,"ui-sortable-placeholder",s||i.currentItem[0].className)._removeClass(t,"ui-sortable-helper"),"tbody"===n?i._createTrPlaceholder(i.currentItem.find("tr").eq(0),V("
     
    ",x=o?"":"",g=0;g<7;g++)x+="";for(w+=x+"",D=this._getDaysInMonth(U,K),U===t.selectedYear&&K===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,D)),C=(this._getFirstDayOfMonth(U,K)-n+7)%7,D=Math.ceil((C+D)/7),I=Y&&this.maxRows>D?this.maxRows:D,this.maxRows=I,T=this._daylightSavingAdjust(new Date(U,K,1-C)),P=0;P",M=o?"":"",g=0;g<7;g++)S=c?c.apply(t.input?t.input[0]:null,[T]):[!0,""],z=(H=T.getMonth()!==K)&&!d||!S[0]||j&&T"+(H&&!u?" ":z?""+T.getDate()+"":""+T.getDate()+"")+"",T.setDate(T.getDate()+1),T=this._daylightSavingAdjust(T);w+=M+""}11<++K&&(K=0,U++),_+=w+="
    "+this._get(t,"weekHeader")+""+r[k]+"
    "+this._get(t,"calculateWeek")(T)+"
    "+(Y?""+(0":""):"")}f+=_}return f+=F,t._keyEvent=!1,f},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l,h,c,u,d,p,f=this._get(t,"changeMonth"),g=this._get(t,"changeYear"),m=this._get(t,"showMonthAfterYear"),_=this._get(t,"selectMonthLabel"),v=this._get(t,"selectYearLabel"),b="
    ",y="";if(o||!f)y+=""+a[e]+"";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+=""}if(m||(b+=y+(!o&&f&&g?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!g)b+=""+i+"";else{for(a=this._get(t,"yearRange").split(":"),u=(new Date).getFullYear(),d=(_=function(t){t=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?u+parseInt(t,10):parseInt(t,10);return isNaN(t)?u:t})(a[0]),p=Math.max(d,_(a[1]||"")),d=s?Math.max(d,s.getFullYear()):d,p=n?Math.min(p,n.getFullYear()):p,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),m&&(b+=(!o&&f&&g?"":" ")+y),b+="
    "},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),e=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=e.getDate(),t.drawMonth=t.selectedMonth=e.getMonth(),t.drawYear=t.selectedYear=e.getFullYear(),"M"!==i&&"Y"!==i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),t=this._getMinMaxDate(t,"max"),e=i&&e=i.getTime())&&(!s||e.getTime()<=s.getTime())&&(!n||e.getFullYear()>=n)&&(!o||e.getFullYear()<=o)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);e=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),e,this._getFormatConfig(t))}}),V.fn.datepicker=function(t){if(!this.length)return this;V.datepicker.initialized||(V(document).on("mousedown",V.datepicker._checkExternalClick),V.datepicker.initialized=!0),0===V("#"+V.datepicker._mainDivId).length&&V("body").append(V.datepicker.dpDiv);var e=Array.prototype.slice.call(arguments,1);return"string"==typeof t&&("isDisabled"===t||"getDate"===t||"widget"===t)||"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this].concat(e)):V.datepicker._attachDatepicker(this,t)})},V.datepicker=new st,V.datepicker.initialized=!1,V.datepicker.uuid=(new Date).getTime(),V.datepicker.version="1.13.2";V.datepicker,V.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var rt=!1;V(document).on("mouseup",function(){rt=!1});V.widget("ui.mouse",{version:"1.13.2",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(t){if(!0===V.data(t.target,e.widgetName+".preventClickEvent"))return V.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!rt){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&V(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===V.data(t.target,this.widgetName+".preventClickEvent")&&V.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),rt=!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(V.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&V.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,rt=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),V.ui.plugin={add:function(t,e,i){var s,n=V.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=V.ui.safeActiveElement(this.document[0]);V(t.target).closest(e).length||V.ui.safeBlur(e)},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),V.ui.ddmanager&&(V.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0i[2]&&(o=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(a=i[3]+this.offset.click.top)),s.grid&&(t=s.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,a=!i||t-this.offset.click.top>=i[1]||t-this.offset.click.top>i[3]?t:t-this.offset.click.top>=i[1]?t-s.grid[1]:t+s.grid[1],t=s.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,o=!i||t-this.offset.click.left>=i[0]||t-this.offset.click.left>i[2]?t:t-this.offset.click.left>=i[0]?t-s.grid[0]:t+s.grid[0]),"y"===s.axis&&(o=this.originalPageX),"x"===s.axis&&(a=this.originalPageY)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,e,i){return i=i||this._uiHash(),V.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),V.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),V.ui.plugin.add("draggable","connectToSortable",{start:function(e,t,i){var s=V.extend({},t,{item:i.element});i.sortables=[],V(i.options.connectToSortable).each(function(){var t=V(this).sortable("instance");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger("activate",e,s))})},stop:function(e,t,i){var s=V.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,V.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(i,s,n){V.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,V.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,t=this!==e&&this._intersectsWith(this.containerCache)&&V.contains(e.element[0],this.element[0])?!1:t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data("ui-sortable-item",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger("toSortable",i),n.dropped=e.element,V.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger("out",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger("fromSortable",i),n.dropped=!1,V.each(n.sortables,function(){this.refreshPositions()}))})}}),V.ui.plugin.add("draggable","cursor",{start:function(t,e,i){var s=V("body"),i=i.options;s.css("cursor")&&(i._cursor=s.css("cursor")),s.css("cursor",i.cursor)},stop:function(t,e,i){i=i.options;i._cursor&&V("body").css("cursor",i._cursor)}}),V.ui.plugin.add("draggable","opacity",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css("opacity")&&(i._opacity=e.css("opacity")),e.css("opacity",i.opacity)},stop:function(t,e,i){i=i.options;i._opacity&&V(e.helper).css("opacity",i._opacity)}}),V.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&V(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){V(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,a=this;if(this.handles=o.handles||(V(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=V(),this._addedHandles=V(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=V(this.handles[e]),this._on(this.handles[e],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=V(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=V(this.handles[e])[0])!==t.target&&!V.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=V(s.containment).scrollLeft()||0,i+=V(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=V(".ui-resizable-"+this.axis).css("cursor"),V("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),V.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(V.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),V("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){V.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),V.ui.plugin.add("resizable","animate",{stop:function(e){var i=V(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,a=n?0:i.sizeDiff.width,n={width:i.size.width-a,height:i.size.height-o},a=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(V.extend(n,o&&a?{top:o,left:a}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&V(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),V.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=V(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,a=o instanceof V?o.get(0):/parent/.test(o)?e.parent().get(0):o;a&&(n.containerElement=V(a),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:V(document),left:0,top:0,width:V(document).width(),height:V(document).height()||document.body.parentNode.scrollHeight}):(i=V(a),s=[],V(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(a,"left")?a.scrollWidth:o,e=n._hasScroll(a)?a.scrollHeight:e,n.parentData={element:a,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=V(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,a={top:0,left:0},r=e.containerElement,t=!0;r[0]!==document&&/static/.test(r.css("position"))&&(a=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-a.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-a.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-a.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=V(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=V(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o})}}),V.ui.plugin.add("resizable","alsoResize",{start:function(){var t=V(this).resizable("instance").options;V(t.alsoResize).each(function(){var t=V(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=V(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,a={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};V(s.alsoResize).each(function(){var t=V(this),s=V(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];V.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){V(this).removeData("ui-resizable-alsoresize")}}),V.ui.plugin.add("resizable","ghost",{start:function(){var t=V(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==V.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=V(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=V(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),V.ui.plugin.add("resizable","grid",{resize:function(){var t,e=V(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=r[0]||1,h=r[1]||1,c=Math.round((s.width-n.width)/l)*l,u=Math.round((s.height-n.height)/h)*h,d=n.width+c,p=n.height+u,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=l),s&&(p+=h),f&&(d-=l),g&&(p-=h),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):((p-h<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),i=!0),i&&!e&&this._trigger("focus",t),i},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=V(V.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;(t=!(t=!(t=!(t=!(t=t||this.element.find("[autofocus]")).length?this.element.find(":tabbable"):t).length?this.uiDialogButtonPane.find(":tabbable"):t).length?this.uiDialogTitlebarClose.filter(":tabbable"):t).length?this.uiDialog:t).eq(0).trigger("focus")},_restoreTabbableFocus:function(){var t=V.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===t||V.contains(this.uiDialog[0],t)||this._focusTabbable()},_keepFocus:function(t){t.preventDefault(),this._restoreTabbableFocus(),this._delay(this._restoreTabbableFocus)},_createWrapper:function(){this.uiDialog=V("
    ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===V.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);var e,i,s;t.keyCode!==V.ui.keyCode.TAB||t.isDefaultPrevented()||(e=this.uiDialog.find(":tabbable"),i=e.first(),s=e.last(),t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){s.trigger("focus")}),t.preventDefault()):(this._delay(function(){i.trigger("focus")}),t.preventDefault()))},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=V("
    "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(t){V(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=V("").button({label:V("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),t=V("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(t,"ui-dialog-title"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=V("
    "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=V("
    ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var s=this,t=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),V.isEmptyObject(t)||Array.isArray(t)&&!t.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(V.each(t,function(t,e){var i;e=V.extend({type:"button"},e="function"==typeof e?{click:e,text:t}:e),i=e.click,t={icon:e.icon,iconPosition:e.iconPosition,showLabel:e.showLabel,icons:e.icons,text:e.text},delete e.click,delete e.icon,delete e.iconPosition,delete e.showLabel,delete e.icons,"boolean"==typeof e.text&&delete e.text,V("",e).button(t).appendTo(s.uiButtonSet).on("click",function(){i.apply(s.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var n=this,o=this.options;function a(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){n._addClass(V(this),"ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",t,a(e))},drag:function(t,e){n._trigger("drag",t,a(e))},stop:function(t,e){var i=e.offset.left-n.document.scrollLeft(),s=e.offset.top-n.document.scrollTop();o.position={my:"left top",at:"left"+(0<=i?"+":"")+i+" top"+(0<=s?"+":"")+s,of:n.window},n._removeClass(V(this),"ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",t,a(e))}})},_makeResizable:function(){var n=this,o=this.options,t=o.resizable,e=this.uiDialog.css("position"),t="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";function a(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:o.maxWidth,maxHeight:o.maxHeight,minWidth:o.minWidth,minHeight:this._minHeight(),handles:t,start:function(t,e){n._addClass(V(this),"ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",t,a(e))},resize:function(t,e){n._trigger("resize",t,a(e))},stop:function(t,e){var i=n.uiDialog.offset(),s=i.left-n.document.scrollLeft(),i=i.top-n.document.scrollTop();o.height=n.uiDialog.height(),o.width=n.uiDialog.width(),o.position={my:"left top",at:"left"+(0<=s?"+":"")+s+" top"+(0<=i?"+":"")+i,of:n.window},n._removeClass(V(this),"ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",t,a(e))}}).css("position",e)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=V(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),e=V.inArray(this,t);-1!==e&&t.splice(e,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||this.document.data("ui-dialog-instances",t=[]),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};V.each(t,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(t,e){var i,s=this.uiDialog;"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:V("").text(""+this.options.closeText).html()}),"draggable"===t&&((i=s.is(":data(ui-draggable)"))&&!e&&s.draggable("destroy"),!i&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&((i=s.is(":data(ui-resizable)"))&&!e&&s.resizable("destroy"),i&&"string"==typeof e&&s.resizable("option","handles",e),i||!1===e||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=V(this);return V("
    ").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!V(t.target).closest(".ui-dialog").length||!!V(t.target).closest(".ui-datepicker").length},_createOverlay:function(){var i,s;this.options.modal&&(i=V.fn.jquery.substring(0,4),s=!0,this._delay(function(){s=!1}),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(t){var e;s||((e=this._trackingInstances()[0])._allowInteraction(t)||(t.preventDefault(),e._focusTabbable(),"3.4."!==i&&"3.5."!==i||e._delay(e._restoreTabbableFocus)))}.bind(this)),this.overlay=V("
    ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1))},_destroyOverlay:function(){var t;this.options.modal&&this.overlay&&((t=this.document.data("ui-dialog-overlays")-1)?this.document.data("ui-dialog-overlays",t):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null)}}),!1!==V.uiBackCompat&&V.widget("ui.dialog",V.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}});V.ui.dialog;function lt(t,e,i){return e<=t&&t").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){if(void 0===t)return this.options.value;this.options.value=this._constrainedValue(t),this._refreshValue()},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,"number"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,e=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(e.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,t===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=V("
    ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),V.widget("ui.selectable",V.ui.mouse,{version:"1.13.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var i=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){i.elementPos=V(i.element[0]).offset(),i.selectees=V(i.options.filter,i.element[0]),i._addClass(i.selectees,"ui-selectee"),i.selectees.each(function(){var t=V(this),e=t.offset(),e={left:e.left-i.elementPos.left,top:e.top-i.elementPos.top};V.data(this,"selectable-item",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=V("
    "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.elementPos=V(this.element[0]).offset(),this.options.disabled||(this.selectees=V(t.filter,this.element[0]),this._trigger("start",i),V(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=V.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(s._removeClass(t.$element,"ui-selected"),t.selected=!1,s._addClass(t.$element,"ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),V(i.target).parents().addBack().each(function(){var t,e=V.data(this,"selectable-item");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),s._removeClass(e.$element,t?"ui-unselecting":"ui-selected")._addClass(e.$element,t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1}))},_mouseDrag:function(s){if(this.dragged=!0,!this.options.disabled){var t,n=this,o=this.options,a=this.opos[0],r=this.opos[1],l=s.pageX,h=s.pageY;return ll||i.righth||i.bottoma&&i.rightr&&i.bottom",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=V()},_drawButton:function(){var t,e=this,i=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.trigger("focus"),t.preventDefault()}}),this.element.hide(),this.button=V("",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),t=V("").appendTo(this.button),this._addClass(t,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(i).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){e._rendered||e._refreshMenu()})},_drawMenu:function(){var i=this;this.menu=V("
      ",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=V("
      ").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,e){t.preventDefault(),i._setSelection(),i._select(e.item.data("ui-selectmenu-item"),t)},focus:function(t,e){e=e.item.data("ui-selectmenu-item");null!=i.focusIndex&&e.index!==i.focusIndex&&(i._trigger("focus",t,{item:e}),i.isOpen||i._select(e,t)),i.focusIndex=e.index,i.button.attr("aria-activedescendant",i.menuItems.eq(e.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t=this.element.find("option");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,t.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(V.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var e=V("");return this._setText(e,t.label),this._addClass(e,"ui-selectmenu-text"),e},_renderMenu:function(s,t){var n=this,o="";V.each(t,function(t,e){var i;e.optgroup!==o&&(i=V("
    • ",{text:e.optgroup}),n._addClass(i,"ui-selectmenu-optgroup","ui-menu-divider"+(e.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),i.appendTo(s),o=e.optgroup),n._renderItemData(s,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(t,e){var i=V("
    • "),s=V("
      ",{title:e.element.attr("title")});return e.disabled&&this._addClass(i,null,"ui-state-disabled"),this._setText(s,e.label),i.append(s).appendTo(t)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),s+=":not(.ui-state-disabled)"),(s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](s).eq(-1):i[t+"All"](s).eq(0)).length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?((t=window.getSelection()).removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.trigger("focus"))},_documentClick:{mousedown:function(t){this.isOpen&&(V(t.target).closest(".ui-selectmenu-menu, #"+V.escapeSelector(this.ids.button)).length||this.close(t))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection()).rangeCount&&(this.range=t.getRangeAt(0)):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(t){var e=!0;switch(t.keyCode){case V.ui.keyCode.TAB:case V.ui.keyCode.ESCAPE:this.close(t),e=!1;break;case V.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case V.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case V.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case V.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case V.ui.keyCode.LEFT:this._move("prev",t);break;case V.ui.keyCode.RIGHT:this._move("next",t);break;case V.ui.keyCode.HOME:case V.ui.keyCode.PAGE_UP:this._move("first",t);break;case V.ui.keyCode.END:case V.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),e=!1}e&&t.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){t=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(t,e){var i;"icons"===t&&(i=this.button.find("span.ui-icon"),this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;!1!==t?(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)):this.button.css("width","")},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(t){var i=this,s=[];t.each(function(t,e){e.hidden||s.push(i._parseOption(V(e),t))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),V.widget("ui.slider",V.ui.mouse,{version:"1.13.2",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,e=this.options,i=this.element.find(".ui-slider-handle"),s=[],n=e.values&&e.values.length||1;for(i.length>n&&(i.slice(n).remove(),i=i.slice(0,n)),t=i.length;t");this.handles=i.add(V(s.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(t){V(this).data("ui-slider-handle-index",t).attr("tabIndex",0)})},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:Array.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=V("
      ").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==t.range&&"max"!==t.range||this._addClass(this.range,"ui-slider-range-"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,o,e,a,r=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),a={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(a),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var e=Math.abs(i-r.values(t));(e=this._valueMax())return this._valueMax();var e=0=e&&(t+=0this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var e=t.toString(),t=e.indexOf(".");return-1===t?0:e.length-t-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,t,s,n,o=this.options.range,a=this.options,r=this,l=!this._animateOff&&a.animate,h={};this._hasMultipleValues()?this.handles.each(function(t){i=(r.values(t)-r._valueMin())/(r._valueMax()-r._valueMin())*100,h["horizontal"===r.orientation?"left":"bottom"]=i+"%",V(this).stop(1,1)[l?"animate":"css"](h,a.animate),!0===r.options.range&&("horizontal"===r.orientation?(0===t&&r.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:a.animate})):(0===t&&r.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:a.animate}))),e=i}):(t=this.value(),s=this._valueMin(),n=this._valueMax(),i=n!==s?(t-s)/(n-s)*100:0,h["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](h,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},a.animate),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},a.animate))},_handleEvents:{keydown:function(t){var e,i,s,n=V(t.target).data("ui-slider-handle-index");switch(t.keyCode){case V.ui.keyCode.HOME:case V.ui.keyCode.END:case V.ui.keyCode.PAGE_UP:case V.ui.keyCode.PAGE_DOWN:case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(V(t.target),null,"ui-state-active"),!1===this._start(t,n)))return}switch(s=this.options.step,e=i=this._hasMultipleValues()?this.values(n):this.value(),t.keyCode){case V.ui.keyCode.HOME:i=this._valueMin();break;case V.ui.keyCode.END:i=this._valueMax();break;case V.ui.keyCode.PAGE_UP:i=this._trimAlignValue(e+(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(e-(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:if(e===this._valueMax())return;i=this._trimAlignValue(e+s);break;case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(e===this._valueMin())return;i=this._trimAlignValue(e-s)}this._slide(t,n,i)},keyup:function(t){var e=V(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,e),this._change(t,e),this._removeClass(V(t.target),null,"ui-state-active"))}}}),V.widget("ui.sortable",V.ui.mouse,{version:"1.13.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t*{ cursor: "+o.cursor+" !important; }").appendTo(n)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return V.ui.ddmanager&&(V.ui.ddmanager.current=this),V.ui.ddmanager&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(t),!0},_scroll:function(t){var e=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageYt[this.floating?"width":"height"]?h&&c:o",i.document[0]);return i._addClass(t,"ui-sortable-placeholder",s||i.currentItem[0].className)._removeClass(t,"ui-sortable-helper"),"tbody"===n?i._createTrPlaceholder(i.currentItem.find("tr").eq(0),V("
     
    ","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/index.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/index.php new file mode 100644 index 00000000000..5ac34065524 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/index.php @@ -0,0 +1,11 @@ + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/javascript.js.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/javascript.js.php new file mode 100644 index 00000000000..f58102cf00b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/javascript.js.php @@ -0,0 +1,13 @@ + +/* JS content (all pages) */ + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/manifest.json.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/manifest.json.php new file mode 100644 index 00000000000..b61531d6c11 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/manifest.json.php @@ -0,0 +1,13 @@ + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/our-team.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/our-team.php new file mode 100644 index 00000000000..1afe5d1523d --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/our-team.php @@ -0,0 +1,5 @@ +ref.'/page190.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page179.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page179.tpl.php new file mode 100644 index 00000000000..7a474b5595e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page179.tpl.php @@ -0,0 +1,99 @@ + + + +Blog + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    The latest news... +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +

    + + load("main"); + $fuser = new User($db); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', 5, 0, array('type_container'=>'blogpost', 'status'=>1, 'lang'=>'null,'.$websitepage->lang)); + foreach($arrayofblogs as $blog) + { + print ''; + } + ?> +
    +
    + +

    + + + +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page180.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page180.tpl.php new file mode 100644 index 00000000000..538fc1764e4 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page180.tpl.php @@ -0,0 +1,84 @@ + + + +Our company is now on Dolibarr ERP CRM + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    title; ?> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +


    + Like several thousands of companies, our company (name ?>) has moved all its information system to Dolibarr ERP CRM. More than 20 applications have been replaced by only one, easier to use and fully integrated. + This is an important step in improving all of our services. + +


    + +
    + +

    +
    Screenshot of our new Open Source solution
    +
    + + + +





    +
    + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page181.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page181.tpl.php new file mode 100644 index 00000000000..a8a484ccf44 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page181.tpl.php @@ -0,0 +1,85 @@ + + + +Our new web site has been launched + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    title; ?> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +





    + + + Our new website, based on Dolibarr CMS, has been launched.
    + Now it is modern and directly integrated with the internal management tools of the company. Many new online services will be available for our customers... + + +


    + +
    + +

    +
    Theme of our new web site
    +
    + + +





    +
    + + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page182.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page182.tpl.php new file mode 100644 index 00000000000..49735b4f21a --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page182.tpl.php @@ -0,0 +1,129 @@ + + + +Careers + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page183.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page183.tpl.php new file mode 100644 index 00000000000..bf4d4c92682 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page183.tpl.php @@ -0,0 +1,84 @@ + + + +Carrière + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Offres d'emploi +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +Nous n'avons pas d'offres d'emploi ouvertes en ce moment...
    +
    +
    +
    +
    +
    +
    + + +

    + + + +
    + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page184.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page184.tpl.php new file mode 100644 index 00000000000..fca2346bede --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page184.tpl.php @@ -0,0 +1,78 @@ + + + +Clients Testimonials + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Testimonials +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +

    +

    What they say about us

    +



    + Send us your testimonial (by email to email; ?>) +



    +

    +
    + +

    + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page185.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page185.tpl.php new file mode 100644 index 00000000000..f478da7021f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page185.tpl.php @@ -0,0 +1,84 @@ + + + +Contact + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Contact +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +

    Contact us:



    + email ?>
    + getFullAddress() ?>
    +
    +
    + + + +
    +
    + +
    + +


    + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page186.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page186.tpl.php new file mode 100644 index 00000000000..111e4615774 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page186.tpl.php @@ -0,0 +1,91 @@ + + + +FAQ + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    FAQs +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +


    Frequently Asked Questions

    +
    +
    +
    +

    How can I contact you ?


    +You can contact us by using this page. +
    +
    +
    +

    What is your privacy policy ?


    +You may find information about our privacy policy on this page. + + +



    + +
    +
    + + +

    + + + +
    + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page187.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page187.tpl.php new file mode 100644 index 00000000000..615a2214885 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page187.tpl.php @@ -0,0 +1,132 @@ + + + +Footer + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    + +
    + +
    +
    + +
    +
    + + componentSelectLang('auto', $weblangs, 'margin-top-10'); ?> +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    getFullAddress(1, '
    ', 1); ?>
    +
    +
    +
    +

    Follow Us:

    +
      + socialnetworks as $key => $value) { + print '
    • '; + } ?> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Website generated and powered by Dolibarr ERP & CRM +
    +
    + +
    + + + +
    + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page188.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page188.tpl.php new file mode 100644 index 00000000000..99e9ddd3e9f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page188.tpl.php @@ -0,0 +1,134 @@ + + + +Header and Top Menu + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page189.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page189.tpl.php new file mode 100644 index 00000000000..8e0d8fbbea5 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page189.tpl.php @@ -0,0 +1,576 @@ + + + +Home + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Boost your business +
    +
    +

    We provide powerful solutions for all businesses

    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
     Best prices on the market  +
    +
    +

    Our optimized processes allows us to provide you very competitive prices

    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Our sales representative are also technicians.

    +
    +
    +
    +
    +
    + +
    +

    Take a look at our offers...

    +
    +
    +
    +
    +
    + +
    +

    Our customer-supplier relationship is very appreciated by our customers

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    We continue to follow and assist you after the sale. Contact us at any time.

    +
    +
    +
    +
    +
    + + + +
    +
    +

    Looking for

    +

    a high quality service?

    +

    With a lot of experience, hiring us is a security for your business!

    +
    +
    +
    11
    +
    Years of Experience
    +
    +
    +
    + query($sql); $obj = $db->fetch_object($resql); print $obj->nb; ?> +
    +
    Experts
    +
    +
    +
    + query($sql); $obj = $db->fetch_object($resql); print $obj->nb; ?> +
    +
    Trusted Clients
    +
    +
    +
    + +
    +
    +
    + + + + +
    +
    + +
    +
    + + + +
    +
    +

    our team

    +
    +
    + +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +

    Request a callback

    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +

    successful cases

    + +
    +
    +
    +
    +
    + + + +
    +
    +

    Latest News

    +
    + fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, array('type_container'=>'blogpost', 'status'=>1, 'lang'=>'null,'.$websitepage->lang)); + foreach($arrayofblogs as $blog) + { + ?> + + + +
    +
    +
    + + + + + +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page190.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page190.tpl.php new file mode 100644 index 00000000000..63255c34db5 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page190.tpl.php @@ -0,0 +1,115 @@ + + + +Our team + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Our team +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +

    +

    The crew...




    + query($sql); + if (! $resql) dol_print_error($db); + while ($obj = $db->fetch_object($resql)) + { + $arrayofusers[]=$obj->rowid; + } + + print '
    '; + foreach($arrayofusers as $id) + { + $fuser->fetch($id); + + print '
    '; + print '
    '; + print '
    '; + if ($fuser->photo) print Form::showphoto('userphoto', $fuser, 100, 0, 0, 'photowithmargin', '', 0); + //print ''; + else print ''; + print '
    '; + print '
    '; + print '
    '.$fuser->firstname.'
    '; + print '
      '; + //print '
    • September 24, 2018
    • '; + if ($fuser->job) print '
    • '.$fuser->job.'
    • '; + else print '
    • '; + print '
    '; + print '
    '; + print '
    '; + print '
    '; + } + print '
    '; + + ?> +
    +
    + +

    + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page191.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page191.tpl.php new file mode 100644 index 00000000000..b52ee75825e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page191.tpl.php @@ -0,0 +1,110 @@ + + + +Partners + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Partners +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +

    Our partners...

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +

    + + + +
    + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page192.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page192.tpl.php new file mode 100644 index 00000000000..4f17f5da805 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page192.tpl.php @@ -0,0 +1,186 @@ + + + +Pricing + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Our plans +
    +
    +
    +
    +
    +
    +
    +
    + + + + + +
    +
    + +
    +
    + + + +

    + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page193.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page193.tpl.php new file mode 100644 index 00000000000..4e6f65e80a5 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page193.tpl.php @@ -0,0 +1,100 @@ + + + +Privacy Policies + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Privacy Policy +
    +
    +
    +
    +
    +
    +
    +
    + +


    + +
    +
    +

    Information collected and used


    +

    * Your customer information (email, phone, business name, first and last name of contact, address, postal code, country and VAT number) are stored when you become a customer. This information allows us to bill you. +

    * If you paid using our online service, we also store the last 4 digits of your card. The full details of your credit card is stored by our payment provider Stripe (the world leader in online payment).

    +

    * You have the option to request the deletion of your data and the above information at any time (except data required y fiscal tracking rules, like your invoices).

    +

    * The Privacy Policies and GDPR referral contact for our services is: global->MAIN_INFO_GDPR; ?>

    +


    +

    Data Storage and Backups


    +

    * The storage of collected data (see 'Information collected and used') is done in a database.

    +

    * We made one backup every week. Only 4 weeks are kept.

    +


    +

    Subcontractor


    +

    * Our services relies on the following subcontractors and service:
    +** The host of computer servers, which is ABC company. These servers are hosted in US. No customer information is communicated to this subcontractor who only provides the hardware and network layer, the installation and operation being carried out by us directly.
    +** The online payment service Stripe, which is used, to ensure regular payment of subscription or your invoices paid online.

    +


    +

    Software Protection


    +

    * Our services runs on Linux Ubuntu systems and software. They benefit from regular security updates when the operating system editor (Ubuntu Canonical) publishes them.

    +

    * Our services are accessible in HTTPS (HTTP encrypted) only, encrypted with SHA256 certificates.

    +

    * Our technical platform are protected by various solutions.

    +


    +

    Data theft


    +

    * In case of suspicion of a theft of the data we have collected (see first point 'Information collected and used'), customers will be informed by email, at email corresponding to their customer account

    +

     

    +
    +
    + + + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page194.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page194.tpl.php new file mode 100644 index 00000000000..e4aa79e1291 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page194.tpl.php @@ -0,0 +1,84 @@ + + + +Product P + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Product P +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +This is a description page of our product P...
    +
    +
    +
    +
    +
    +
    + + +

    + + + +
    + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page195.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page195.tpl.php new file mode 100644 index 00000000000..0e1774d931b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page195.tpl.php @@ -0,0 +1,112 @@ + + + +Search Page + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Search +
    +
    +
    +
    +
    +
    +
    +
    + +


    + +
    + +
    + +
    +
    + + load("main"); + + if (function_exists('getPagesFromSearchCriterias')) + { + if (GETPOSTISSET('s')) + { + $listofpages = getPagesFromSearchCriterias('page', 'meta', GETPOST('s', 'alphanohtml')); + if ($listofpages['code'] == 'OK') + { + foreach($listofpages['list'] as $websitepagefound) + { + print '
    '.$websitepagefound->title.' - '.$websitepagefound->description.'
    '; + } + } + else + { + // If error, show message + print $listofpages['message']; + } + } + } + else + { + print $weblangs->trans("FeatureNotYetAvailable"); + } + ?> + +





    +
    + + + +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/page196.tpl.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page196.tpl.php new file mode 100644 index 00000000000..d52718bcfc8 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/page196.tpl.php @@ -0,0 +1,82 @@ + + + +Service S + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    Service S +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +This is a description page of our service S...
    +
    +
    +
    +
    +
    +
    + + +

    + + + +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/partners.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/partners.php new file mode 100644 index 00000000000..44e501d9f4d --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/partners.php @@ -0,0 +1,5 @@ +ref.'/page191.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/pricing.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/pricing.php new file mode 100644 index 00000000000..d2866cadf43 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/pricing.php @@ -0,0 +1,5 @@ +ref.'/page192.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/privacy-policies.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/privacy-policies.php new file mode 100644 index 00000000000..59dc87944fe --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/privacy-policies.php @@ -0,0 +1,5 @@ +ref.'/page193.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/product-p.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/product-p.php new file mode 100644 index 00000000000..beac94b27c8 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/product-p.php @@ -0,0 +1,5 @@ +ref.'/page194.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/robots.txt b/htdocs/install/doctemplates/websites/website_template-corporate/containers/robots.txt new file mode 100644 index 00000000000..2b844f479d6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/robots.txt @@ -0,0 +1,4 @@ +# Robot file. Generated with Dolibarr +User-agent: * +Allow: /public/ +Disallow: /administrator/ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/search.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/search.php new file mode 100644 index 00000000000..359c5bf3b26 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/search.php @@ -0,0 +1,5 @@ +ref.'/page195.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/service-s.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/service-s.php new file mode 100644 index 00000000000..f69f6e7a13e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/service-s.php @@ -0,0 +1,5 @@ +ref.'/page196.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/styles.css.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/styles.css.php new file mode 100644 index 00000000000..3307c499765 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/styles.css.php @@ -0,0 +1,20608 @@ + +/* CSS content (all pages) */ +body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; } +.bodywebsite h1 { margin-top: 0; margin-bottom: 0; padding: 10px;} +.bodywebsite a:focus, +.bodywebsite button:focus { + outline: none !important; +} +.bodywebsite button::-moz-focus-inner { + border: 0; +} +.bodywebsite :focus { + outline: none; +} +.bodywebsite input, +.bodywebsite select, +.bodywebsite textarea { + outline: 0; +} +.bodywebsite p { + margin: 0; +} +.bodywebsite q { + font-size: 18px; + color: #fff; +} +.bodywebsite dl { + margin-bottom: 0; +} +.bodywebsite dt { + font-weight: 400; +} +html .bodywebsite p a:hover { + text-decoration: none; +} +.bodywebsite form { + margin-bottom: 0; +} +.bodywebsite .text-left { + text-align: left; +} +.bodywebsite .text-center { + text-align: center; +} +.bodywebsite .text-right { + text-align: right; +} +.bodywebsite .page .text-middle { + vertical-align: middle; +} +.bodywebsite .centpercent { + width: 100%; +} +.bodywebsite .page-head { + position: relative; + z-index: 90; + /* must be lower than 100 */ + background-color: #fff; +} +.bodywebsite .page-content { + position: relative; + z-index: 1; +} +.bodywebsite .page-foot { + background-color: #000; +} +.bodywebsite input, +.bodywebsite button, +.bodywebsite select, +.bodywebsite textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +.bodywebsite a { + display: inline-block; + text-decoration: none; + transition: 0.33s all ease-out; +} +.bodywebsite a, +.bodywebsite a:active, +.bodywebsite a:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite h3 a, +.bodywebsite h3 a:active +{ + font-weight: normal !important; +} +.bodywebsite a:hover, +.bodywebsite a:focus { + color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; + text-decoration: none; +} +.bodywebsite a:focus { + outline: 0; +} +.bodywebsite a[href*='callto'], +.bodywebsite a[href*='mailto'] { + white-space: nowrap; +} +.bodywebsite img { + vertical-align: middle; + max-width: 100%; +} +.bodywebsite .img-responsive { + max-width: 100%; + height: auto; +} +.bodywebsite .img-circle { + border-radius: 50%; +} +.bodywebsite hr { + margin-top: 0; + margin-bottom: 0; + border: 0; + border-top: 1px solid #2a2b2b; +} +.bodywebsite .margin-lr-30 { + margin-left: 30px !important; + margin-right: 30px !important; +} +.bodywebsite .unit-left, +.bodywebsite .unit-body { + white-space: nowrap; + display: inline-block; + vertical-align: middle; +} +.bodywebsite .unit-left { + padding-right: 10px; +} +.bodywebsite [role="button"] { + cursor: pointer; +} +.bodywebsite #sectionnews .nohover { + color: #000; +} +.bodywebsite .blog-box { + box-shadow: -1px -1px 12px 5px rgba(85, 85, 85, 0.1) !important; +} +.bodywebsite .blog-box:hover { + box-shadow: -1px -1px 12px 5px rgba(65, 65, 65, 0.3) !important; +} +.bodywebsite .margin-top-5 { + margin-top: 5px !important; +} +.bodywebsite .margin-top-10 { + margin-top: 10px !important; +} +.bodywebsite .rights { + display: inline-block; + margin: 0; + line-height: 1.5; + letter-spacing: .025em; + vertical-align: baseline; +} +.bodywebsite .rights * { + display: inline; + margin-right: .25em; +} +.bodywebsite .page-foot-default .rights { + color: #fff; + font-weight: 300; +} +.bodywebsite .page-foot .brand + * { + margin-top: 22px; +} +.bodywebsite .page-foot * + .link-block { + margin-top: 15px; +} +.bodywebsite .page-foot .footer-title + * { + margin-top: 30px; +} +.bodywebsite .page-foot .contact-info * + .unit { + margin-top: 15px; +} +.bodywebsite .privacy-link { + margin-top: 30px; +} +.bodywebsite .one-page-section * + .group-xl { + margin-top: 40px; +} +@media (min-width: 768px) { + .bodywebsite .one-page-section * + .group-xl { + margin-top: 60px; + } +} +@media (min-width: 1200px) { + .bodywebsite .one-page-section * + .group-xl { + margin-top: 100px; + } +} +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6, +.bodywebsite .h1, +.bodywebsite .h2, +.bodywebsite .h3, +.bodywebsite .h4, +.bodywebsite .h5, +.bodywebsite .h6 { + margin-top: 0; + margin-bottom: 0; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-weight: 700; + color: #000; +} +.bodywebsite h1 > span, +.bodywebsite h2 > span, +.bodywebsite h3 > span, +.bodywebsite h4 > span, +.bodywebsite h5 > span, +.bodywebsite h6 > span, +.bodywebsite .h1 > span, +.bodywebsite .h2 > span, +.bodywebsite .h3 > span, +.bodywebsite .h4 > span, +.bodywebsite .h5 > span, +.bodywebsite .h6 > span { + display: inline-block; + font-size: inherit; +} +.bodywebsite h1 a, +.bodywebsite h2 a, +.bodywebsite h3 a, +.bodywebsite h4 a, +.bodywebsite h5 a, +.bodywebsite h6 a, +.bodywebsite .h1 a, +.bodywebsite .h2 a, +.bodywebsite .h3 a, +.bodywebsite .h4 a, +.bodywebsite .h5 a, +.bodywebsite .h6 a { + display: inline; + font: inherit; + letter-spacing: inherit; + transition: .33s all ease; +} +.bodywebsite h1 a:hover, +.bodywebsite h2 a:hover, +.bodywebsite h3 a:hover, +.bodywebsite h4 a:hover, +.bodywebsite h5 a:hover, +.bodywebsite h6 a:hover, +.bodywebsite .h1 a:hover, +.bodywebsite .h2 a:hover, +.bodywebsite .h3 a:hover, +.bodywebsite .h4 a:hover, +.bodywebsite .h5 a:hover, +.bodywebsite .h6 a:hover { + color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; +} +.bodywebsite h1, +.bodywebsite .h1 { + font-size: 18px; + line-height: 1.35; + text-transform: uppercase; +} +@media (min-width: 1200px) { + .bodywebsite h1, + .bodywebsite .h1 { + line-height: 1.2; + font-size: 33px; + } +} +.bodywebsite h1.small, +.bodywebsite .h1.small { + font-size: 40px; +} +@media (min-width: 768px) { + .bodywebsite h1.small, + .bodywebsite .h1.small { + font-size: 40px; + } +} +@media (min-width: 992px) { + .bodywebsite h1.small, + .bodywebsite .h1.small { + font-size: 60px; + } +} +@media (min-width: 1200px) { + .bodywebsite h1.small, + .bodywebsite .h1.small { + font-size: 72px; + line-height: 1.2; + } +} +.bodywebsite h2, +.bodywebsite .h2 { + font-weight: 500; + font-size: 15px; + line-height: 1.2; +} +@media (min-width: 576px) { + .bodywebsite h2, + .bodywebsite .h2 { + line-height: 1.33333; + font-size: 18px; + } +} +.bodywebsite .text-big-18 { + font-size: 18px; +} +.bodywebsite .text-big-19 { + font-size: 19px; +} +.bodywebsite .text-small { + font-size: 12px; +} +.bodywebsite .text-small-16 { + font-size: 16px; +} +.bodywebsite small, +.bodywebsite .small { + font-size: 12px; + line-height: 18px; +} +.bodywebsite code { + padding: 5px 7px; + font-size: 75%; + color: #fe4a21; + background-color: #f9f9f9; + border-radius: 2px; +} +.bodywebsite em { + font-family: Helvetica, Arial, sans-serif; + font-size: inherit; + font-style: italic; + font-weight: 700; + line-height: inherit; + color: #767877; +} +.bodywebsite address { + margin-top: 0; + margin-bottom: 0; +} +.bodywebsite .context-dark, +.bodywebsite .bg-black, +.bodywebsite .bg-accent { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .context-dark a, +.bodywebsite .bg-black a, +.bodywebsite .bg-accent a, +.bodywebsite .bg-black a:active, +.bodywebsite .bg-accent a:active, +.bodywebsite .context-dark a:focus, +.bodywebsite .bg-black a:focus, +.bodywebsite .bg-accent a:focus, +.bodywebsite .bg-cello a:focus { + color: #fff; +} +.bodywebsite .context-dark a:hover, +.bodywebsite .bg-black a:hover, +.bodywebsite .bg-accent a:hover +{ + color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; +} +.bodywebsite .context-dark .text-extra-large-bordered, +.bodywebsite .bg-black .text-extra-large-bordered, +.bodywebsite .bg-gray-darker .text-extra-large-bordered, +.bodywebsite .bg-gray-dark .text-extra-large-bordered, +.bodywebsite .bg-mine-shaft .text-extra-large-bordered, +.bodywebsite .bg-cod-gray .text-extra-large-bordered, +.bodywebsite .bg-accent .text-extra-large-bordered, +.bodywebsite .bg-cello .text-extra-large-bordered { + color: #fff; +} +.bodywebsite .bg-black { + background: #000; + fill: #000; +} +.bodywebsite .bg-accent { + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + fill: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .bg-accent.bg-default-outline-btn .btn-white-outline:hover { + background: #3a3c3e; + border-color: #3a3c3e; +} +.bodywebsite .bg-porcelain { + background: #e5e7e9; + fill: #e5e7e9; +} +.bodywebsite .bg-cape-cod { + background: #444; + fill: #3a3c3e; +} +.bodywebsite #sectionfirstclass .bg-cape-cod { + background: #fff; + fill: #3a3c3e; +} +.bodywebsite .page .text-primary { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?> !important; +} +.bodywebsite .page a.text-primary:focus, +.bodywebsite .page a.text-primary:hover { + color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; +} +.bodywebsite .page .text-secondary { + color: #00030a !important; +} +.bodywebsite .page a.text-secondary:focus, +.bodywebsite .page a.text-secondary:hover { + color: black !important; +} +.bodywebsite .page .text-red-orange { + color: #ff4b22 !important; +} +.bodywebsite .page a.text-red-orange:focus, +.bodywebsite .page a.text-red-orange:hover { + color: #ee2c00 !important; +} +.bodywebsite .page .text-black { + color: #000 !important; +} +.bodywebsite .page a.text-black:focus, +.bodywebsite .page a.text-black:hover { + color: black !important; +} +.bodywebsite .page .text-silver { + color: #cdcdcd !important; +} +.bodywebsite .page a.text-silver:focus, +.bodywebsite .page a.text-silver:hover { + color: #b4b4b4 !important; +} +.bodywebsite .page .text-dark { + color: #2a2b2b !important; +} +.bodywebsite .page a.text-dark:focus, +.bodywebsite .page a.text-dark:hover { + color: #111111 !important; +} +.bodywebsite .page .text-gray { + color: #9f9f9f !important; +} +.bodywebsite .page a.text-gray:focus, +.bodywebsite .page a.text-gray:hover { + color: #868686 !important; +} +.bodywebsite .page .text-gray-light { + color: #dedede !important; +} +.bodywebsite .page a.text-gray-light:focus, +.bodywebsite .page a.text-gray-light:hover { + color: #c5c5c5 !important; +} +.bodywebsite .page .text-white { + color: #fff !important; + text-shadow: 1px 1px 8px #222; +} +.bodywebsite .page a.text-white:focus, +.bodywebsite .page a.text-white:hover { + color: #e6e6e6 !important; +} +.bodywebsite .page .text-white-05 { + color: rgba(255, 255, 255, 0.5) !important; +} +.bodywebsite .page a.text-white-05:focus, +.bodywebsite .page a.text-white-05:hover { + color: rgba(230, 230, 230, 0.5) !important; +} +.bodywebsite .page .text-white-03 { + color: rgba(255, 255, 255, 0.3) !important; +} +.bodywebsite .page a.text-white-03:focus, +.bodywebsite .page a.text-white-03:hover { + color: rgba(230, 230, 230, 0.3) !important; +} +.bodywebsite .page .text-white-08 { + color: rgba(255, 255, 255, 0.8) !important; +} +.bodywebsite .page a.text-white-08:focus, +.bodywebsite .page a.text-white-08:hover { + color: rgba(230, 230, 230, 0.8) !important; +} +.bodywebsite .page .text-tundora { + color: #414141 !important; +} +.bodywebsite .page a.text-tundora:focus, +.bodywebsite .page a.text-tundora:hover { + color: #282828 !important; +} +.bodywebsite .page .text-black-05 { + color: rgba(0, 0, 0, 0.5) !important; +} +.bodywebsite .page a.text-black-05:focus, +.bodywebsite .page a.text-black-05:hover { + color: rgba(0, 0, 0, 0.5) !important; +} +.bodywebsite .page .text-bismark { + color: #496a8a !important; +} +.bodywebsite .page a.text-bismark:focus, +.bodywebsite .page a.text-bismark:hover { + color: #375069 !important; +} +.bodywebsite .page .text-black-08 { + color: rgba(0, 0, 0, 0.8) !important; +} +.bodywebsite .page a.text-black-08:focus, +.bodywebsite .page a.text-black-08:hover { + color: rgba(0, 0, 0, 0.8) !important; +} +.bodywebsite .page .text-gray-darker { + color: #00030a !important; +} +.bodywebsite .page a.text-gray-darker:focus, +.bodywebsite .page a.text-gray-darker:hover { + color: black !important; +} +.bodywebsite .page .text-abbey { + color: #464a4d !important; +} +.bodywebsite .page a.text-abbey:focus, +.bodywebsite .page a.text-abbey:hover { + color: #2e3032 !important; +} +.bodywebsite .page .text-rolling-stone { + color: #74787C !important; +} +.bodywebsite .page a.text-rolling-stone:focus, +.bodywebsite .page a.text-rolling-stone:hover { + color: #5b5f62 !important; +} +.bodywebsite .page .text-fuel-yellow { + color: #F0B922 !important; +} +.bodywebsite .page a.text-fuel-yellow:focus, +.bodywebsite .page a.text-fuel-yellow:hover { + color: #d19d0e !important; +} +.bodywebsite .hidden { + display: none; +} +.bodywebsite .text-italic { + font-style: italic; +} +.bodywebsite .text-normal { + font-style: normal; +} +.bodywebsite .text-none { + text-transform: none; +} +.bodywebsite .text-underline { + text-decoration: underline; +} +.bodywebsite .text-strike { + text-decoration: line-through; +} +.bodywebsite .text-thin { + font-weight: 100; +} +.bodywebsite .text-light { + font-weight: 300; +} +.bodywebsite .text-regular { + font-weight: 400; +} +.bodywebsite .text-medium { + font-weight: 500; +} +.bodywebsite .text-sbold { + font-weight: 600; +} +.bodywebsite .text-bold, +.bodywebsite strong { + font-weight: 700; +} +.bodywebsite .text-ubold { + font-weight: 900; +} +.bodywebsite .text-spacing-0 { + letter-spacing: 0; +} +.bodywebsite .text-spacing-40 { + letter-spacing: 0.04em; +} +.bodywebsite .text-spacing-inverse-20 { + letter-spacing: -0.02em; +} +.bodywebsite .text-spacing-120 { + letter-spacing: 0.12em; +} +.bodywebsite .btn { + max-width: 100%; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: 700; + border-radius: 0; + border: 2px solid; + text-transform: uppercase; + transition: 0.3s ease-out; + padding: 11px 15px; +} +@media (min-width: 992px) { + .bodywebsite .btn { + padding: 12px 35px; + } +} +.bodywebsite .btn:focus, +.bodywebsite .btn:active, +.bodywebsite .btn:active:focus { + outline: none; +} +.bodywebsite .btn:active, +.bodywebsite .btn.active { + box-shadow: none; +} +.bodywebsite .btn-smaller { + padding: 8px 25px; +} +.bodywebsite .btn-small { + padding-left: 20px; + padding-right: 20px; +} +@media (min-width: 768px) { + .bodywebsite .btn { + min-width: 190px; + } +} +html .bodywebsite .btn-default, +html .bodywebsite .btn-default:active, +html .bodywebsite .btn-default.active, +html .bodywebsite .btn-default:active:focus, +html .bodywebsite .btn-default.active:focus, +html .bodywebsite .btn-default:focus:active, +html .bodywebsite .btn-default:focus { + color: #fff; + background-color: #464a4d; + border-color: #464a4d; +} +.bodywebsite .open > html .btn-default.dropdown-toggle, +html .bodywebsite .btn-default:hover { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +html .bodywebsite .btn-default.disabled, +html .bodywebsite .btn-default[disabled], +.bodywebsite fieldset[disabled] html .btn-default { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-default .badge { + color: #464a4d; + background-color: #fff; +} +html .bodywebsite .btn-primary, +html .bodywebsite .btn-primary:active, +html .bodywebsite .btn-primary.active, +html .bodywebsite .btn-primary:active:focus, +html .bodywebsite .btn-primary.active:focus, +html .bodywebsite .btn-primary:focus:active, +html .bodywebsite .btn-primary:focus { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + /* border: 0; */ +} +.bodywebsite .open > html .btn-primary.dropdown-toggle { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + /* border: none; */ +} +html .bodywebsite .btn-primary:hover { + color: #fff; + box-shadow: 1px 1px 8px #aaa; +} +html .bodywebsite .btn-primary.disabled, +html .bodywebsite .btn-primary[disabled], +.bodywebsite fieldset[disabled] html .btn-primary { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-primary .badge { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background-color: #fff; +} +html .bodywebsite .btn-primary-contrast, +html .bodywebsite .btn-primary-contrast:active, +html .bodywebsite .btn-primary-contrast.active, +html .bodywebsite .btn-primary-contrast:active:focus, +html .bodywebsite .btn-primary-contrast.active:focus, +html .bodywebsite .btn-primary-contrast:focus:active, +html .bodywebsite .btn-primary-contrast:focus { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .open > html .btn-primary-contrast.dropdown-toggle, +html .bodywebsite .btn-primary-contrast:hover { + color: #fff; + background-color: #42b294; + border-color: #42b294; +} +html .bodywebsite .btn-primary-contrast.disabled, +html .bodywebsite .btn-primary-contrast[disabled], +.bodywebsite fieldset[disabled] html .btn-primary-contrast { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-primary-contrast .badge { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background-color: #fff; +} +html .bodywebsite .btn-primary-outline, +html .bodywebsite .btn-primary-outline:active, +html .bodywebsite .btn-primary-outline.active, +html .bodywebsite .btn-primary-outline:active:focus, +html .bodywebsite .btn-primary-outline.active:focus, +html .bodywebsite .btn-primary-outline:focus:active, +html .bodywebsite .btn-primary-outline:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background-color: transparent; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .open > html .btn-primary-outline.dropdown-toggle, +html .bodywebsite .btn-primary-outline:hover { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +html .bodywebsite .btn-primary-outline.disabled, +html .bodywebsite .btn-primary-outline[disabled], +.bodywebsite fieldset[disabled] html .btn-primary-outline { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-primary-outline .badge { + color: transparent; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +html .bodywebsite .btn-cello-outline, +html .bodywebsite .btn-cello-outline:active, +html .bodywebsite .btn-cello-outline.active, +html .bodywebsite .btn-cello-outline:active:focus, +html .bodywebsite .btn-cello-outline.active:focus, +html .bodywebsite .btn-cello-outline:focus:active, +html .bodywebsite .btn-cello-outline:focus { + color: #1e3953; + background-color: transparent; + border-color: #1e3953; +} +.bodywebsite .open > html .btn-cello-outline.dropdown-toggle, +html .bodywebsite .btn-cello-outline:hover { + color: #fff; + background-color: #1e3953; + border-color: #1e3953; +} +html .bodywebsite .btn-cello-outline.disabled, +html .bodywebsite .btn-cello-outline[disabled], +.bodywebsite fieldset[disabled] html .btn-cello-outline { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-cello-outline .badge { + color: transparent; + background-color: #1e3953; +} +html .bodywebsite .btn-white-outline, +html .bodywebsite .btn-white-outline:active, +html .bodywebsite .btn-white-outline.active, +html .bodywebsite .btn-white-outline:active:focus, +html .bodywebsite .btn-white-outline.active:focus, +html .bodywebsite .btn-white-outline:focus:active, +html .bodywebsite .btn-white-outline:focus { + color: #fff; + background-color: transparent; + border-color: #fff; +} +.bodywebsite .open > html .btn-white-outline.dropdown-toggle, +html .bodywebsite .btn-white-outline:hover { + color: #fff; + background-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; + border-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; +} +html .bodywebsite .btn-white-outline.disabled, +html .bodywebsite .btn-white-outline[disabled], +.bodywebsite fieldset[disabled] html .btn-white-outline { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-white-outline .badge { + color: transparent; + background-color: #fff; +} +html .bodywebsite .btn-white-outline-variant-1, +html .bodywebsite .btn-white-outline-variant-1:active, +html .bodywebsite .btn-white-outline-variant-1.active, +html .bodywebsite .btn-white-outline-variant-1:active:focus, +html .bodywebsite .btn-white-outline-variant-1.active:focus, +html .bodywebsite .btn-white-outline-variant-1:focus:active, +html .bodywebsite .btn-white-outline-variant-1:focus { + color: #fff; + background-color: transparent; + border-color: #fff; +} +.bodywebsite .open > html .btn-white-outline-variant-1.dropdown-toggle, +html .bodywebsite .btn-white-outline-variant-1:hover { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +html .bodywebsite .btn-white-outline-variant-1.disabled, +html .bodywebsite .btn-white-outline-variant-1[disabled], +.bodywebsite fieldset[disabled] html .btn-white-outline-variant-1 { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-white-outline-variant-1 .badge { + color: transparent; + background-color: #fff; +} +html .bodywebsite .btn-silver-outline, +html .bodywebsite .btn-silver-outline:active, +html .bodywebsite .btn-silver-outline.active, +html .bodywebsite .btn-silver-outline:active:focus, +html .bodywebsite .btn-silver-outline.active:focus, +html .bodywebsite .btn-silver-outline:focus:active, +html .bodywebsite .btn-silver-outline:focus { + color: #000; + background-color: transparent; + border-color: #cdcdcd; +} +.bodywebsite .open > html .btn-silver-outline.dropdown-toggle, +html .bodywebsite .btn-silver-outline:hover { + color: #fff; + background-color: #cdcdcd; + border-color: #cdcdcd; +} +html .bodywebsite .btn-silver-outline.disabled, +html .bodywebsite .btn-silver-outline[disabled], +.bodywebsite fieldset[disabled] html .btn-silver-outline { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-silver-outline .badge { + color: transparent; + background-color: #000; +} +html .bodywebsite .btn-black-outline, +html .bodywebsite .btn-black-outline:active, +html .bodywebsite .btn-black-outline.active, +html .bodywebsite .btn-black-outline:active:focus, +html .bodywebsite .btn-black-outline.active:focus, +html .bodywebsite .btn-black-outline:focus:active, +html .bodywebsite .btn-black-outline:focus { + color: #000; + background-color: transparent; + border-color: #000; +} +.bodywebsite .open > html .btn-black-outline.dropdown-toggle, +html .bodywebsite .btn-black-outline:hover { + color: #fff; + background-color: #000; + border-color: #000; +} +html .bodywebsite .btn-black-outline.disabled, +html .bodywebsite .btn-black-outline[disabled], +.bodywebsite fieldset[disabled] html .btn-black-outline { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-black-outline .badge { + color: transparent; + background-color: #000; +} +html .bodywebsite .btn-cello, +html .bodywebsite .btn-cello:active, +html .bodywebsite .btn-cello.active, +html .bodywebsite .btn-cello:active:focus, +html .bodywebsite .btn-cello.active:focus, +html .bodywebsite .btn-cello:focus:active, +html .bodywebsite .btn-cello:focus { + color: #fff; + background-color: #1e3953; + border-color: #1e3953; +} +.bodywebsite .open > html .btn-cello.dropdown-toggle, +html .bodywebsite .btn-cello:hover { + color: #fff; + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +html .bodywebsite .btn-cello.disabled, +html .bodywebsite .btn-cello[disabled], +.bodywebsite fieldset[disabled] html .btn-cello { + pointer-events: none; + opacity: .5; +} +html .bodywebsite .btn-cello .badge { + color: #1e3953; + background-color: #fff; +} +.bodywebsite .btn-xs { + padding: 12px 25px; + font-size: 11px; + line-height: 1.71429; + border-radius: 0; +} +@media (min-width: 768px) { + .bodywebsite .btn-xs { + min-width: 165px; + } +} +.bodywebsite .btn-sm { + padding: 10px 20px; + font-size: 13px; + line-height: 1.71429; + border-radius: 0; +} +@media (min-width: 768px) { + .bodywebsite .btn-sm { + min-width: 170px; + } +} +.bodywebsite .btn-lg { + padding: 14px 30px; + font-size: 14px; + line-height: 1.71429; + border-radius: 0; +} +@media (min-width: 768px) { + .bodywebsite .btn-lg { + min-width: 270px; + padding: 18px 40px; + } +} +@media (min-width: 992px) { + .bodywebsite .btn-lg-bigger { + padding-top: 28px; + padding-bottom: 28px; + } +} +.bodywebsite .btn-xl { + padding: 20px 35px; + font-size: 15px; + line-height: 1.71429; + border-radius: 0; +} +@media (min-width: 768px) { + .bodywebsite .btn-xl { + padding: 21px 50px; + } +} +@media (min-width: 992px) { + .bodywebsite .btn-xl { + min-width: 270px; + } +} +.bodywebsite .btn-min-width-0 { + min-width: 0; +} +.bodywebsite .btn-block { + min-width: 30px; + max-width: 100%; +} +.bodywebsite .btn-rect { + border-radius: 0; +} +.bodywebsite .btn-round { + border-radius: 12px; +} +.bodywebsite .btn-circle { + border-radius: 35px; +} +.bodywebsite .btn-round-bottom { + border-radius: 0 0 5px 5px; +} +.bodywebsite .btn-shadow { + box-shadow: -3px 3px 3px 0 rgba(0, 0, 0, 0.14); +} +.bodywebsite .btn.btn-icon { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + vertical-align: middle; +} +.bodywebsite .btn.btn-icon .icon { + position: relative; + top: 1px; + display: inline-block; + width: auto; + height: auto; + line-height: 0; + vertical-align: middle; + transition: 0s; +} +.bodywebsite .btn.btn-icon-left .icon { + margin-right: 10px; +} +.bodywebsite .btn.btn-icon-right { + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; +} +.bodywebsite .btn.btn-icon-right .icon { + margin-left: 10px; +} +.bodywebsite .btn-icon-only { + background: none; + border: none; + display: inline-block; + padding: 0; + outline: none; + outline-offset: 0; + cursor: pointer; + -webkit-appearance: none; + font-size: 0; + line-height: 0; + transition: .33s all ease; +} +.bodywebsite .btn-icon-only::-moz-focus-inner { + border: none; + padding: 0; +} +.bodywebsite .btn-icon-only.btn-icon-only-primary, +.bodywebsite .btn-icon-only.btn-icon-only-primary:active, +.bodywebsite .btn-icon-only.btn-icon-only-primary:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .btn-icon-only.btn-icon-only-primary:hover { + color: #000; +} +.bodywebsite .btn-icon-only { + padding: 9px 18px; +} +.bodywebsite .btn-icon-single { + display: inline-block; + padding: 0; + min-width: 0; +} +.bodywebsite .btn-icon-default { + color: #000; +} +.bodywebsite .btn-icon-default:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .btn-cello-outline.btn-icon .icon { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + transition: .33s all ease; +} +.bodywebsite .btn-cello-outline.btn-icon:hover.btn-icon .icon { + color: #fff; +} +.bodywebsite .button-block * + .btn { + margin-top: 0; +} +.bodywebsite .icon { + display: inline-block; + text-align: center; +} +.bodywebsite .icon:before { + display: inline-block; + font-style: normal; + speak: none; + text-transform: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.bodywebsite [class*='icon-circle'] { + border-radius: 50%; + overflow: hidden; +} +.bodywebsite [class*='icon-round'] { + border-radius: 4px; + overflow: hidden; +} +.bodywebsite .page .icon-default { + color: #9f9f9f; +} +.bodywebsite .page .icon-black { + color: #000; +} +.bodywebsite .page .icon-primary { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .icon-gunsmoke { + color: #767877; +} +.bodywebsite .page .icon-tundora { + color: #414141; +} +.bodywebsite .page .icon-gray-dark-filled { + color: #fff; + background: #2a2b2b; +} +.bodywebsite .page .icon-san-juan-filled { + color: #fff; + background: #2e5275; +} +.bodywebsite .page .icon-silver-chalice-filled { + color: #fff; + background: #ababab; +} +.bodywebsite .page .icon-abbey-filled { + color: #fff; + background: #464a4d; +} +.bodywebsite .page .icon-white { + color: #fff; +} +.bodywebsite .page a.icon-default, +.bodywebsite .page a.icon-default:active, +.bodywebsite .page a.icon-default:focus { + color: #9f9f9f; +} +.bodywebsite .page a.icon-default:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page a.icon-primary, +.bodywebsite .page a.icon-primary:active, +.bodywebsite .page a.icon-primary:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page a.icon-primary:hover { + color: #fff; +} +.bodywebsite .page a.icon-abbey-filled:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page a.icon-tundora-inverse, +.bodywebsite .page a.icon-tundora-inverse:active, +.bodywebsite .page a.icon-tundora-inverse:focus { + color: #414141; +} +.bodywebsite .page a.icon-tundora-inverse:hover { + color: #fff; +} +.bodywebsite .page a.icon-gray-dark-filled, +.bodywebsite .page a.icon-gray-dark-filled:active, +.bodywebsite .page a.icon-gray-dark-filled:focus { + color: #fff; + background: #2a2b2b; +} +.bodywebsite .page a.icon-gray-dark-filled:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page a.icon-silver-chalice-filled, +.bodywebsite .page a.icon-silver-chalice-filled:active, +.bodywebsite .page a.icon-silver-chalice-filled:focus { + color: #fff; + background: #ababab; +} +.bodywebsite .page a.icon-silver-chalice-filled:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page a.icon-san-juan-filled, +.bodywebsite .page a.icon-san-juan-filled:active, +.bodywebsite .page a.icon-san-juan-filled:focus { + color: #fff; + background: #2e5275; +} +.bodywebsite .page a.icon-san-juan-filled:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .icon-xxs { + width: 18px; + height: 18px; + font-size: 18px; + line-height: 18px; +} +.bodywebsite .page .icon-xxs-small { + width: 16px; + height: 16px; + font-size: 16px; + line-height: 16px; +} +.bodywebsite .page .icon-xxs-smaller { + width: 14px; + height: 14px; + font-size: 14px; + line-height: 14px; +} +.bodywebsite .page .icon-xxs-smallest { + width: 12px; + height: 12px; + font-size: 12px; + line-height: 12px; +} +.bodywebsite .page .icon-xs { + width: 22px; + height: 22px; + font-size: 22px; + line-height: 22px; +} +.bodywebsite .page .icon-xs-smaller { + width: 20px; + height: 20px; + font-size: 20px; + line-height: 20px; +} +.bodywebsite .page .icon-sm { + width: 24px; + height: 24px; + font-size: 24px; + line-height: 24px; +} +.bodywebsite .page .icon-sm-custom { + width: 24px; + height: 24px; + font-size: 24px; + line-height: 24px; +} +@media (min-width: 992px) { + .bodywebsite .page .icon-sm-custom { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 30px; + } +} +.bodywebsite .page .icon-md { + width: 36px; + height: 36px; + font-size: 36px; + line-height: 36px; +} +.bodywebsite .page .icon-md-custom { + width: 26px; + height: 26px; + font-size: 26px; + line-height: 26px; +} +@media (min-width: 992px) { + .bodywebsite .page .icon-md-custom { + width: 36px; + height: 36px; + font-size: 36px; + line-height: 36px; + } +} +.bodywebsite .page .icon-md-smaller { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 30px; +} +.bodywebsite .page .icon-lg { + width: 45px; + height: 45px; + font-size: 45px; + line-height: 45px; +} +.bodywebsite .page .icon-lg-variant-1 { + width: 42px; + height: 42px; + font-size: 42px; + line-height: 42px; +} +.bodywebsite .page .icon-lg-variant-2 { + width: 44px; + height: 44px; + font-size: 44px; + line-height: 44px; +} +.bodywebsite .page .icon-lg-bigger { + width: 50px; + height: 50px; + font-size: 50px; + line-height: 50px; +} +.bodywebsite .page .icon-xl { + width: 60px; + height: 60px; + font-size: 60px; + line-height: 60px; +} +.bodywebsite .page [class*='icon-round'].icon-xxs-smallest, +.bodywebsite .page [class*='icon-circle'].icon-xxs-smallest { + width: 26px; + height: 26px; + line-height: 26px; +} +.bodywebsite .icon-shift-1 { + position: relative; + top: 2px; +} +.bodywebsite .icon-shift-2 { + position: relative; + top: 2px; +} +@media (min-width: 992px) { + .bodywebsite .icon-shift-2 { + top: 4px; + } +} +.bodywebsite .icon-1:before, +.bodywebsite .icon-2:before, +.bodywebsite .icon-4:before, +.bodywebsite .icon-5:before, +.bodywebsite .icon-6:before, +.bodywebsite .icon-3:before { + content: ''; + display: inline-block; + width: 40px; + height: 40px; +} +.bodywebsite .thumbnail { + position: relative; + z-index: 1; + width: 100%; + max-height: 100%; + overflow: hidden; + padding: 0; + margin: 0; + border: none; + border-radius: 0; + background-color: transparent; +} +.bodywebsite .thumbnail .caption { + padding: 0; +} +.bodywebsite .thumbnail { + box-shadow: none; +} +.bodywebsite .thumbnail-variant-1 { + background-color: transparent; + text-align: center; +} +.bodywebsite .thumbnail-variant-1 .thumbnail-image { + position: relative; + display: inline-block; + overflow: hidden; + pointer-events: none; +} +.bodywebsite .thumbnail-variant-1 .thumbnail-image, +.bodywebsite .thumbnail-variant-1 .thumbnail-image > img { + border-radius: 600px; +} +.bodywebsite .thumbnail-variant-1 .thumbnail-image > img { + width: auto; + pointer-events: auto; +} +.bodywebsite .thumbnail-variant-1 .thumbnail-image-inner { + position: absolute; + top: 0; + right: 1px; + bottom: 0; + left: 1px; + z-index: 2; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + padding: 20px 5px 5px; + background: rgba(0, 0, 0, 0.4); + border-radius: 600px; +} +.bodywebsite .thumbnail-variant-1 .thumbnail-image-inner * { + pointer-events: auto; +} +.bodywebsite .thumbnail-variant-1 .thumbnail-image-inner > * + * { + margin-top: 0; + margin-left: 20px; +} +.bodywebsite .thumbnail-variant-1 .header { + line-height: 1.2; +} +.bodywebsite .thumbnail-variant-1 * + p { + margin-top: 0; +} +.bodywebsite .thumbnail-variant-1 * + .thumbnail-caption { + margin-top: 18px; +} +@media (min-width: 992px) { + .bodywebsite .desktop .thumbnail-variant-1 .thumbnail-image-inner { + opacity: 0; + visibility: hidden; + transform: rotate3d(0, 1, 0, 60deg); + transition: .55s all ease; + background: rgba(0, 0, 0, 0.6); + } + .bodywebsite .desktop .thumbnail-variant-1 .thumbnail-image:hover .thumbnail-image-inner { + opacity: 1; + visibility: visible; + transform: rotate3d(0, 1, 0, 0deg); + } +} +@media (min-width: 1200px) { + .bodywebsite .thumbnail-variant-1 * + .thumbnail-caption { + margin-top: 30px; + } +} +.bodywebsite .thumbnail-variant-2 { + min-height: 300px; + padding: 30px 0 0; + overflow: visible; + text-align: center; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; +} +.bodywebsite .thumbnail-variant-2-wrap { + padding-bottom: 25px; +} +.bodywebsite .thumbnail-variant-2 .thumbnail-image { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + height: 100%; + width: 100%; + overflow: hidden; +} +.bodywebsite .thumbnail-variant-2 .thumbnail-image > img { + position: absolute; + top: 20%; + left: 50%; + transform: translate(-50%, -20%); + width: auto; + min-width: 101%; + max-width: none; + height: auto; + min-height: 100%; + max-height: none; +} +.bodywebsite .thumbnail-variant-2:before { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + background: rgba(0, 0, 0, 0.5); +} +.bodywebsite .thumbnail-variant-2 .thumbnail-inner { + position: relative; + z-index: 2; + padding: 30px 10px; +} +.bodywebsite .thumbnail-variant-2 .thumbnail-caption { + position: relative; + z-index: 3; + width: calc(66%); + padding: 17px 8px 25px; + margin: 31px 17px -25px 17px; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .thumbnail-variant-2 .thumbnail-caption * { + color: #fff; +} +.bodywebsite .thumbnail-variant-2 .thumbnail-caption a, +.bodywebsite .thumbnail-variant-2 .thumbnail-caption a:active, +.bodywebsite .thumbnail-variant-2 .thumbnail-caption a:focus { + color: #fff; +} +.bodywebsite .thumbnail-variant-2 .thumbnail-caption a:hover { + color: #9f9f9f; +} +.bodywebsite .thumbnail-variant-2 .text-header { + font-size: 18px; + font-weight: 700; +} +.bodywebsite .thumbnail-variant-2 .text-caption { + font-style: italic; + line-height: 1.3; + font-family: "Roboto", Helvetica, Arial, sans-serif; +} +@media (min-width: 768px) { + .bodywebsite .thumbnail-variant-2 .text-caption { + font-size: 16px; + } +} +@media (min-width: 992px) { + .bodywebsite .desktop .thumbnail-variant-2:before { + top: 40px; + } + .bodywebsite .desktop .thumbnail-variant-2 .thumbnail-inner > * { + position: relative; + transform: translateY(14px); + transition: 0.4s all ease-in-out; + } + .bodywebsite .desktop .thumbnail-variant-2:before, + .bodywebsite .desktop .thumbnail-variant-2 .thumbnail-inner { + opacity: 0; + visibility: hidden; + transition: 0.33s all ease-out; + } + .bodywebsite .desktop .thumbnail-variant-2:hover:before { + top: 0; + left: 0; + right: 0; + } + .bodywebsite .desktop .thumbnail-variant-2:hover .thumbnail-inner > * { + transform: translateY(0); + } + .bodywebsite .desktop .thumbnail-variant-2:hover:before, + .bodywebsite .desktop .thumbnail-variant-2:hover .thumbnail-inner { + opacity: 1; + visibility: visible; + } +} +@media (min-width: 992px) { + .bodywebsite .thumbnail-variant-2 .thumbnail-caption { + width: calc(84%); + margin: 31px 8px -25px 8px; + } +} +@media (min-width: 1200px) { + .bodywebsite .thumbnail-variant-2 { + width: calc(78%); + margin: 0 11px 0; + } + .bodywebsite .thumbnail-variant-2 .thumbnail-caption { + width: calc(66%); + margin: 31px 17px -25px 17px; + } +} +.bodywebsite .ie-11 .thumbnail-variant-2 { + min-height: 0; +} +.bodywebsite .thumbnail-variant-3 { + width: 100.025%; + text-align: center; +} +.bodywebsite .thumbnail-variant-3 img { + position: relative; + left: 50%; + transform: translateX(-50%); + width: auto; + max-width: none; + min-width: 100.5%; +} +.bodywebsite .thumbnail-variant-3 .link-external { + position: absolute; + top: -30px; + right: -30px; + z-index: 1; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + width: 200px; + height: 110px; + padding: 55px 15px 5px; + vertical-align: bottom; + line-height: 40px; + background: #fafafa; + transform-origin: 74% 110%; + transform: rotate(45deg); + will-change: transform; + text-align: center; + /** + @bugfix: color flickering in child objects on hover + @affected: IE Edge + */ + transition: top 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86), right 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86), opacity 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86), visibility 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86); +} +.bodywebsite .thumbnail-variant-3 .link-external .icon { + transition: none; + transform: rotate(-45deg); + color: #000; + vertical-align: bottom; +} +.bodywebsite .thumbnail-variant-3 .link-external:hover { + top: -12px; + right: -12px; +} +.bodywebsite .thumbnail-variant-3 .link-original { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.bodywebsite .thumbnail-variant-3 .link-original, +.bodywebsite .thumbnail-variant-3 .link-original:active, +.bodywebsite .thumbnail-variant-3 .link-original:focus, +.bodywebsite .thumbnail-variant-3 .link-original:hover { + color: #fff; +} +.bodywebsite .thumbnail-variant-3 .link-original:before { + content: '\e8ff'; + position: relative; + left: 20px; + bottom: 30px; + z-index: 3; + font-family: 'Material Icons'; + font-size: 140px; + line-height: 1; + opacity: .2; + transition: .33s all ease; +} +.bodywebsite .thumbnail-variant-3 .caption { + position: absolute; + top: -2px; + right: 0; + bottom: -2px; + left: 0; + padding: 15px; + transition: 0.33s all ease-in-out; + background: rgba(0, 0, 0, 0.6); +} +@media (min-width: 992px) { + .bodywebsite .desktop .thumbnail-variant-3 figure img { + will-change: transform; + transition: 0.4s ease-out; + } + .bodywebsite .desktop .thumbnail-variant-3 .caption, + .bodywebsite .desktop .thumbnail-variant-3 .link-external { + opacity: 0; + visibility: hidden; + } + .bodywebsite .desktop .thumbnail-variant-3 .link-external { + right: -50px; + top: -50px; + } + .bodywebsite .desktop .thumbnail-variant-3:hover .caption, + .bodywebsite .desktop .thumbnail-variant-3:hover .link-external { + opacity: 1; + visibility: visible; + } + .bodywebsite .desktop .thumbnail-variant-3:hover figure img { + transform: translateX(-50%) scale(1.08); + } + .bodywebsite .desktop .thumbnail-variant-3:hover .link-external { + right: -30px; + top: -30px; + } + .bodywebsite .desktop .thumbnail-variant-3:hover .link-external:hover { + top: -20px; + right: -20px; + } +} +.bodywebsite .thumbnail-variant-3 > * + * { + margin-top: 0; +} +@media (min-width: 768px) { + .bodywebsite .thumbnail-wrap { + padding: 0 5px; + } +} +@media (min-width: 1200px) { + .bodywebsite .thumbnail-wrap { + padding: 0 9px; + } +} +.bodywebsite .thumbnail-variant-4 { + position: relative; + overflow: hidden; + box-shadow: 0px 0px 13px 0px rgba(1, 3, 4, 0.15); +} +.bodywebsite .thumbnail-variant-4 .thumbnail-image { + background: #000; +} +.bodywebsite .thumbnail-variant-4 .thumbnail-image img { + opacity: .92; +} +.bodywebsite .thumbnail-variant-4 .caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 16px 15px; + text-align: center; + color: #000; + background: #fff; +} +.bodywebsite .thumbnail-variant-4 .text-light { + color: #0d0d0d; +} +@media (min-width: 992px) { + .bodywebsite .desktop .thumbnail-variant-4 .thumbnail-image img { + position: relative; + will-change: transform; + opacity: 1; + transition: opacity .7s, transform .7s; + transform: scale3d(1.0001, 1.0001, 1); + } + .bodywebsite .desktop .thumbnail-variant-4 .caption, + .bodywebsite .desktop .thumbnail-variant-4 .caption-header { + transition: transform 0.55s; + transform: translate3d(0, 200%, 0); + } + .bodywebsite .desktop .thumbnail-variant-4 .caption-header { + transition-delay: 0.05s; + } + .bodywebsite .desktop .thumbnail-variant-4:hover .thumbnail-image img { + opacity: .9; + transform: scale3d(1.07, 1.07, 1); + } + .bodywebsite .desktop .thumbnail-variant-4:hover .caption, + .bodywebsite .desktop .thumbnail-variant-4:hover .caption-header { + transform: translate3d(0, 0, 0); + } +} +@media (min-width: 992px) { + .bodywebsite .thumbnail-variant-4 .caption { + padding: 20px 15px; + } +} +.bodywebsite .thumbnail-profile .thumbnail-image img { + width: 100%; +} +.bodywebsite .thumbnail-profile .thumbnail-caption { + padding: 20px; + background: #f2f3f7; +} +.bodywebsite .thumbnail-profile .thumbnail-caption-inner { + margin-bottom: -12px; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + transform: translateY(-12px); + text-align: center; +} +.bodywebsite .thumbnail-profile .thumbnail-caption-inner > * { + display: inline-block; + margin-top: 12px; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} +.bodywebsite .thumbnail-profile .thumbnail-caption-inner, +.bodywebsite .thumbnail-profile .thumbnail-caption-inner > ul { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.bodywebsite .thumbnail-profile .thumbnail-caption-inner ul { + position: relative; + margin-bottom: -3px; + transform: translateY(-3px); + -webkit-flex-grow: 2; + -ms-flex-positive: 2; + flex-grow: 2; +} +.bodywebsite .thumbnail-profile .thumbnail-caption-inner ul > li { + display: inline-block; + margin-top: 3px; + padding: 0 7px; +} +.bodywebsite .thumbnail-profile .thumbnail-caption-inner .btn-wrap { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +@media (min-width: 576px) { + .bodywebsite .thumbnail-profile .thumbnail-caption-inner, + .bodywebsite .thumbnail-profile .thumbnail-caption-inner ul { + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } +} +@media (min-width: 992px) { + .bodywebsite .thumbnail-profile .thumbnail-caption-inner ul { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; + } +} +@media (min-width: 1200px) { + .bodywebsite .thumbnail-profile .thumbnail-caption-inner { + text-align: left; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + } + .bodywebsite .thumbnail-profile .thumbnail-caption-inner .btn-wrap { + text-align: right; + } +} +@media (max-width: 767px) { + .bodywebsite .thumbnail-variant-2 { + max-width: 300px; + margin-left: auto; + margin-right: auto; + } + .bodywebsite .thumbnail-variant-3, + .bodywebsite .thumbnail-profile { + max-width: 370px; + margin-left: auto; + margin-right: auto; + } +} +.bodywebsite .thumbnail-block { + display: block; +} +.bodywebsite .thumbnail-block > img, +.bodywebsite .thumbnail-block a > img { + width: 100%; + height: auto; +} +.bodywebsite .thumbnail-variant-5 { + padding: 40px 20px; + display: inline-block; +} +.bodywebsite .thumbnail-variant-5, +.bodywebsite .thumbnail-variant-5 img { + transition: 0.2s ease-in-out; +} +@media (min-width: 992px) { + .bodywebsite .thumbnail-variant-5 { + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + } + .bodywebsite .thumbnail-variant-5 .thumbnail-variant-5-img-wrap { + position: relative; + display: inline-block; + } + .bodywebsite .thumbnail-variant-5 .thumbnail-variant-5-img-wrap:before { + content: ''; + position: absolute; + top: 0; + right: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + background: rgba(0, 0, 0, 0.4); + transition: 0.2s ease-in-out; + } + .bodywebsite .thumbnail-variant-5 { + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15); + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + } + .bodywebsite .thumbnail-variant-5:hover .thumbnail-variant-5-img-wrap:before { + opacity: 0; + } + .bodywebsite .thumbnail-variant-5:hover img { + will-change: transform; + -webkit-transform: scale(1.18); + transform: scale(1.18); + } +} +@media (min-width: 992px) { + .bodywebsite .thumbnail-variant-5 { + padding: 40px 50px; + } +} +@media (min-width: 1200px) { + .bodywebsite .thumbnail-variant-5 { + padding: 65px 50px; + } +} +.bodywebsite .thumbnail-variant-5 * + h2 { + margin-top: 36px; +} +.bodywebsite .thumbnail-variant-5 h2 + * { + margin-top: 0; +} +.bodywebsite .thumbnail-variant-5 .link-group + .link-group { + margin-top: 7px; +} +.bodywebsite .thumbnail-variant-5 .divider-fullwidth { + margin-top: 12px; + margin-bottom: 17px; +} +.bodywebsite .thumbnail-with-img * + .thumbnail-title { + margin-top: 22px; +} +.bodywebsite .thumbnail-with-img .thumbnail-title + * { + margin-top: 10px; +} +.bodywebsite .thumbnail-profile-info h4 + * { + margin-top: 0; +} +.bodywebsite .thumbnail-profile-info * + .profile-quote { + margin-top: 15px; +} +.bodywebsite .thumbnail-profile-info .profile-quote + * { + margin-top: 15px; +} +.bodywebsite .thumbnail-profile-info * + .list-progress { + margin-top: 35px; +} +@media (min-width: 992px) { + .bodywebsite .thumbnail-profile-info * + .profile-quote { + margin-top: 0; + } + .bodywebsite .thumbnail-profile-info .profile-quote + * { + margin-top: 0; + } +} +.bodywebsite figure img { + margin: 18px; + border: 1px solid #ccc; + box-shadow: 1px 1px 25px #aaa; + max-width: calc(44%); +} +.bodywebsite figure img { + width: 100%; + height: auto; + max-width: none; +} +.bodywebsite .figure .caption { + padding: 15px; +} +.bodywebsite .rd-mailform { + position: relative; +} +.bodywebsite label { + margin-bottom: 0; +} +.bodywebsite input::-webkit-autofill + .form-label { + display: none; + transition: none; +} +.bodywebsite .form-label, +.bodywebsite .form-input { + font-weight: 400; +} +.bodywebsite .input-sm, +.bodywebsite .input-lg, +.bodywebsite .form-input { + font-size: 14px; +} +.bodywebsite .input-sm, +.bodywebsite .input-sm:focus, +.bodywebsite .input-lg, +.bodywebsite .input-lg:focus, +.bodywebsite .form-input, +.bodywebsite .form-input:focus { + box-shadow: none; +} +.bodywebsite textarea.form-input { + height: 166px; + min-height: 52px; + max-height: 249px; + resize: vertical; +} +.bodywebsite .form-input { + height: auto; + min-height: 20px; + border: 0px solid #dedede; + border-radius: 0; + -webkit-appearance: none; + line-height: 24px; +} +.bodywebsite .form-input:focus { + outline: 0; +} +.bodywebsite .form-wrap { + position: relative; + margin-bottom: 0; +} +.bodywebsite .form-wrap + .form-wrap { + margin-top: 10px; +} +.bodywebsite .form-label { + position: absolute; + top: 26px; + left: 19px; + font-size: 14px; + color: #9f9f9f; + pointer-events: none; + z-index: 9; + transition: .3s; + transform: translateY(-50%); + will-change: transform; +} +.bodywebsite .form-label.focus { + opacity: 0; +} +.bodywebsite .form-label.auto-fill { + color: #9f9f9f; +} +@media (min-width: 768px) { + .bodywebsite .form-label-outside { + position: static; + margin-bottom: 8px; + } + .bodywebsite .form-label-outside, + .bodywebsite .form-label-outside.focus, + .bodywebsite .form-label-outside.auto-fill { + transform: none; + color: #9f9f9f; + font-size: 14px; + } +} +.bodywebsite .form-wrap-outside { + margin-top: 10px; +} +.bodywebsite .form-wrap-outside .form-label-outside { + position: absolute; + top: -15px; + left: 0; +} +.bodywebsite .form-wrap-outside .form-label-outside.focus { + opacity: 1; +} +@media (min-width: 768px) { + .bodywebsite .form-wrap-outside .form-label-outside { + top: -30px; + } +} +.bodywebsite .form-border-bottom { + border-bottom: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .form-validation { + position: absolute; + right: 10px; + top: 2px; + font-size: 11px; + line-height: 11px; + color: #fe4a21; + margin-top: 2px; + transition: .3s; +} +.bodywebsite form.label-outside .form-validation { + top: 12px; +} +.bodywebsite .has-error .help-block, +.bodywebsite .has-error .control-label, +.bodywebsite .has-error .radio, +.bodywebsite .has-error .checkbox, +.bodywebsite .has-error .radio-inline, +.bodywebsite .has-error .checkbox-inline, +.bodywebsite .has-error.radio label, +.bodywebsite .has-error.checkbox label, +.bodywebsite .has-error.radio-inline label, +.bodywebsite .has-error.checkbox-inline label { + color: #fe4a21; +} +.bodywebsite .has-error .form-input:not(.form-input-impressed), +.bodywebsite .has-error .form-input:not(.form-input-impressed):focus { + border-color: #fe4a21; + box-shadow: none; +} +.bodywebsite .has-error .form-input-impressed, +.bodywebsite .has-error .form-input-impressed:focus { + box-shadow: inset 0 0 0 1px #fe4a21; +} +.bodywebsite .has-error .input-group-addon { + color: #fff; + border-color: #fe4a21; + background-color: #fe4a21; +} +.bodywebsite .form-inline .has-error ~ button[type='submit'] { + border-color: #fe4a21; + background: #fe4a21; +} +.bodywebsite .has-error .form-validation { + color: #fe4a21; +} +.bodywebsite .has-success .help-block, +.bodywebsite .has-success .control-label, +.bodywebsite .has-success .radio, +.bodywebsite .has-success .checkbox, +.bodywebsite .has-success .radio-inline, +.bodywebsite .has-success .checkbox-inline, +.bodywebsite .has-success.radio label, +.bodywebsite .has-success.checkbox label, +.bodywebsite .has-success.radio-inline label, +.bodywebsite .has-success.checkbox-inline label { + color: #58c476; +} +.bodywebsite .has-success .form-input:not(.form-input-impressed), +.bodywebsite .has-success .form-input:not(.form-input-impressed):focus { + border-color: #dff0d8; + box-shadow: none; +} +.bodywebsite .has-success .form-input-impressed, +.bodywebsite .has-success .form-input-impressed:focus { + box-shadow: inset 0 0 0 1px #dff0d8; +} +.bodywebsite .has-success .input-group-addon { + color: #fff; + border-color: #dff0d8; + background-color: #dff0d8; +} +.bodywebsite .form-inline .has-success ~ button[type='submit'] { + border-color: #dff0d8; + background: #dff0d8; +} +.bodywebsite .has-success .form-validation { + color: #58c476; +} +.bodywebsite .has-warning .help-block, +.bodywebsite .has-warning .control-label, +.bodywebsite .has-warning .radio, +.bodywebsite .has-warning .checkbox, +.bodywebsite .has-warning .radio-inline, +.bodywebsite .has-warning .checkbox-inline, +.bodywebsite .has-warning.radio label, +.bodywebsite .has-warning.checkbox label, +.bodywebsite .has-warning.radio-inline label, +.bodywebsite .has-warning.checkbox-inline label { + color: #c49558; +} +.bodywebsite .has-warning .form-input:not(.form-input-impressed), +.bodywebsite .has-warning .form-input:not(.form-input-impressed):focus { + border-color: #fcf8e3; + box-shadow: none; +} +.bodywebsite .has-warning .form-input-impressed, +.bodywebsite .has-warning .form-input-impressed:focus { + box-shadow: inset 0 0 0 1px #fcf8e3; +} +.bodywebsite .has-warning .input-group-addon { + color: #fff; + border-color: #fcf8e3; + background-color: #fcf8e3; +} +.bodywebsite .form-inline .has-warning ~ button[type='submit'] { + border-color: #fcf8e3; + background: #fcf8e3; +} +.bodywebsite .has-warning .form-validation { + color: #c49558; +} +.bodywebsite .has-info .help-block, +.bodywebsite .has-info .control-label, +.bodywebsite .has-info .radio, +.bodywebsite .has-info .checkbox, +.bodywebsite .has-info .radio-inline, +.bodywebsite .has-info .checkbox-inline, +.bodywebsite .has-info.radio label, +.bodywebsite .has-info.checkbox label, +.bodywebsite .has-info.radio-inline label, +.bodywebsite .has-info.checkbox-inline label { + color: #3e9cf6; +} +.bodywebsite .has-info .form-input:not(.form-input-impressed), +.bodywebsite .has-info .form-input:not(.form-input-impressed):focus { + border-color: #d9edf7; + box-shadow: none; +} +.bodywebsite .has-info .form-input-impressed, +.bodywebsite .has-info .form-input-impressed:focus { + box-shadow: inset 0 0 0 1px #d9edf7; +} +.bodywebsite .has-info .input-group-addon { + color: #fff; + border-color: #d9edf7; + background-color: #d9edf7; +} +.bodywebsite .form-inline .has-info ~ button[type='submit'] { + border-color: #d9edf7; + background: #d9edf7; +} +.bodywebsite .has-info .form-validation { + color: #3e9cf6; +} +.bodywebsite #form-output-global { + position: fixed; + bottom: 30px; + left: 15px; + visibility: hidden; + transform: translateX(-500px); + transition: .3s all ease; + z-index: 9999999; +} +.bodywebsite #form-output-global.active { + transform: translateX(0); + visibility: visible; +} +@media (min-width: 576px) { + .bodywebsite #form-output-global { + left: 30px; + } +} +.bodywebsite .form-output { + position: absolute; + top: 100%; + left: 0; + font-size: 14px; + line-height: 1.5; + margin-top: 2px; + transition: .3s; + opacity: 0; + visibility: hidden; +} +.bodywebsite .form-output.active { + opacity: 1; + visibility: visible; +} +.bodywebsite .form-output.error { + color: #fe4a21; +} +.bodywebsite .form-output.success { + color: #58c476; +} +.bodywebsite .radio .radio-custom, +.bodywebsite .radio-inline .radio-custom, +.bodywebsite .checkbox .checkbox-custom, +.bodywebsite .checkbox-inline .checkbox-custom { + opacity: 0; +} +.bodywebsite .radio .radio-custom, +.bodywebsite .radio .radio-custom-dummy, +.bodywebsite .radio-inline .radio-custom, +.bodywebsite .radio-inline .radio-custom-dummy, +.bodywebsite .checkbox .checkbox-custom, +.bodywebsite .checkbox .checkbox-custom-dummy, +.bodywebsite .checkbox-inline .checkbox-custom, +.bodywebsite .checkbox-inline .checkbox-custom-dummy { + position: absolute; + width: 18px; + height: 18px; + margin-left: -20px; + margin-top: 3px; + outline: none; + cursor: pointer; +} +.bodywebsite .radio .radio-custom-dummy, +.bodywebsite .radio-inline .radio-custom-dummy, +.bodywebsite .checkbox .checkbox-custom-dummy, +.bodywebsite .checkbox-inline .checkbox-custom-dummy { + pointer-events: none; +} +.bodywebsite .radio .radio-custom-dummy:after, +.bodywebsite .radio-inline .radio-custom-dummy:after, +.bodywebsite .checkbox .checkbox-custom-dummy:after, +.bodywebsite .checkbox-inline .checkbox-custom-dummy:after { + position: absolute; + opacity: 0; + transition: .22s; +} +.bodywebsite .radio .radio-custom:focus, +.bodywebsite .radio-inline .radio-custom:focus, +.bodywebsite .checkbox .checkbox-custom:focus, +.bodywebsite .checkbox-inline .checkbox-custom:focus { + outline: none; +} +.bodywebsite .radio-custom:checked + .radio-custom-dummy:after, +.bodywebsite .checkbox-custom:checked + .checkbox-custom-dummy:after { + opacity: 1; +} +.bodywebsite .radio, +.bodywebsite .radio-inline { + padding-left: 30px; +} +.bodywebsite .radio .radio-custom-dummy, +.bodywebsite .radio-inline .radio-custom-dummy { + margin-top: 2px; + border-radius: 50%; + margin-left: -30px; + background: transparent; + border: 2px solid #000; +} +.bodywebsite .radio .radio-custom-dummy:after, +.bodywebsite .radio-inline .radio-custom-dummy:after { + content: ''; + top: 3px; + right: 3px; + bottom: 3px; + left: 3px; + background: #00030a; + border-radius: 50%; +} +.bodywebsite .form-wrap-color .radio-inline, +.bodywebsite .form-wrap-size .radio-inline { + padding-left: 0; +} +.bodywebsite .form-wrap-color .radio-control, +.bodywebsite .form-wrap-size .radio-control { + position: relative; + display: block; + width: 24px; + height: 24px; + border-radius: 50%; + margin-top: 23px; + margin-bottom: 23px; +} +.bodywebsite .form-wrap-color .radio-control:after, +.bodywebsite .form-wrap-size .radio-control:after { + bottom: 0; +} +.bodywebsite .form-wrap-color .radio-control:after, +.bodywebsite .form-wrap-size .radio-control:after { + content: ''; + position: absolute; + left: 50%; + bottom: -23px; + transform: translateX(-50%); + width: 0; + max-width: 100%; + height: 3px; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + visibility: hidden; + transition: .2s; +} +.bodywebsite .form-wrap-color .radio-custom:checked ~ .radio-control:after, +.bodywebsite .form-wrap-size .radio-custom:checked ~ .radio-control:after { + visibility: visible; + width: 100%; +} +.bodywebsite .form-wrap-color .radio-custom-dummy, +.bodywebsite .form-wrap-size .radio-custom-dummy { + display: none; +} +.bodywebsite .form-wrap-size .radio-inline { + padding-left: 2px; + padding-right: 2px; +} +.bodywebsite .form-wrap-size .radio-inline + .radio-inline { + margin-left: 1px; +} +.bodywebsite .form-wrap-size .radio-control { + color: #9f9f9f; + text-align: center; + text-transform: uppercase; + transition: .2s; +} +.bodywebsite .form-wrap-size .radio-control:hover { + color: #000; +} +.bodywebsite .form-wrap-size .radio-custom:checked ~ .radio-control { + color: #000; +} +.bodywebsite .checkbox, +.bodywebsite .checkbox-inline { + padding-left: 38px; + color: #000; +} +.bodywebsite .checkbox .checkbox-custom-dummy, +.bodywebsite .checkbox-inline .checkbox-custom-dummy { + pointer-events: none; + border-radius: 2px; + margin-left: 0; + left: 0; + background: #fff; + box-shadow: none; + border: 2px solid #dedede; +} +.bodywebsite .checkbox .checkbox-custom-dummy:after, +.bodywebsite .checkbox-inline .checkbox-custom-dummy:after { + content: '\e5ca'; + font-family: 'Material Icons'; + font-size: 22px; + line-height: 10px; + position: absolute; + top: 0; + left: -1px; + color: #2a2b2b; +} +.bodywebsite .checkbox-small { + padding-left: 26px; +} +.bodywebsite .checkbox-small .checkbox-custom-dummy { + margin-top: 6px; + width: 12px; + height: 12px; + border-width: 1px; + border-radius: 1px; +} +.bodywebsite .checkbox-small .checkbox-custom-dummy:after { + top: -1px; + left: -2px; + font-size: 18px; +} +.bodywebsite .textarea-lined-wrap { + position: relative; + line-height: 2.39; +} +.bodywebsite .textarea-lined-wrap textarea { + height: 203px; + resize: none; + overflow: hidden; + line-height: 2.39; + background-color: transparent; +} +.bodywebsite .textarea-lined-wrap-xs textarea { + height: 68px; +} +.bodywebsite .page .form-classic-bordered .form-label, +.bodywebsite .page .form-classic-bordered .form-label-outside, +.bodywebsite .page .form-classic-bordered .form-input { + color: #000; +} +.bodywebsite .page .form-classic-bordered .form-input { + border: 1px solid #dedede; +} +.bodywebsite .page .form-modern .form-input, +.bodywebsite .page .form-modern .form-label { + color: #9f9f9f; +} +.bodywebsite .page .form-modern input { + height: auto; + min-height: 20px; +} +.bodywebsite .page .form-modern .form-input:focus { + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .form-modern .form-input { + padding: 6px 0; + border-radius: 0; + border-width: 0 0 1px 0; + border-color: #dedede; + background-color: transparent; +} +.bodywebsite .page .form-modern .form-label { + left: 0; + top: 18px; +} +.bodywebsite .page .form-modern .form-validation { + top: auto; + left: auto; + right: 0; + bottom: -12px; + font-style: italic; +} +.bodywebsite .page .form-modern .has-error .help-block, +.bodywebsite .page .form-modern .has-error .control-label, +.bodywebsite .page .form-modern .has-error .radio, +.bodywebsite .page .form-modern .has-error .checkbox, +.bodywebsite .page .form-modern .has-error .radio-inline, +.bodywebsite .page .form-modern .has-error .checkbox-inline, +.bodywebsite .page .form-modern .has-error.radio label, +.bodywebsite .page .form-modern .has-error.checkbox label, +.bodywebsite .page .form-modern .has-error.radio-inline label, +.bodywebsite .page .form-modern .has-error.checkbox-inline label { + color: #fe4a21; +} +.bodywebsite .page .form-modern .has-error .form-input:not(.form-input-impressed), +.bodywebsite .page .form-modern .has-error .form-input:not(.form-input-impressed):focus { + border-color: #fe4a21; + box-shadow: none; +} +.bodywebsite .page .form-modern .has-error .form-input-impressed, +.bodywebsite .page .form-modern .has-error .form-input-impressed:focus { + box-shadow: inset 0 0 0 1px #fe4a21; +} +.bodywebsite .page .form-modern .has-error .input-group-addon { + color: #fff; + border-color: #fe4a21; + background-color: #fe4a21; +} +.bodywebsite .form-inline .page .form-modern .has-error ~ button[type='submit'] { + border-color: #fe4a21; + background: #fe4a21; +} +.bodywebsite .page .form-modern .has-error .form-validation { + color: #fe4a21; +} +.bodywebsite .page .form-modern.form-darker .form-input, +.bodywebsite .page .form-modern.form-darker .form-label { + color: #000; +} +.bodywebsite .page .form-modern.form-darker .form-label:not(.focus) + .form-input { + border-color: #cdcdcd; +} +.bodywebsite .page .form-modern.form-inverse .form-label, +.bodywebsite .page .form-modern.form-inverse .form-input { + color: #9f9f9f; + background-color: transparent; +} +.bodywebsite .page .form-modern.form-inverse .form-label.text-white-05, +.bodywebsite .page .form-modern.form-inverse .form-input.text-white-05 { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .stacktable { + width: 100%; + text-align: left; +} +.bodywebsite .st-head-row { + padding-top: 1em; +} +.bodywebsite .st-head-row.st-head-row-main { + font-size: 1.5em; + padding-top: 0; +} +.bodywebsite .st-key { + width: 49%; + text-align: right; + padding-right: 1%; +} +.bodywebsite .st-val { + width: 49%; + padding-left: 1%; +} +.bodywebsite .stacktable.large-only { + display: none; +} +.bodywebsite .stacktable.small-only { + display: table; +} +@media (min-width: 768px) { + .bodywebsite .stacktable.large-only { + display: table; + } + .bodywebsite .stacktable.small-only { + display: none; + } +} +.bodywebsite .section-relative { + position: relative; +} +.bodywebsite #sectionfooter h4, +.bodywebsite #sectiontestimonies h1 { + color: #fff; +} +@media (min-width: 768px) { + .bodywebsite .section-with-counters { + padding-top: 1px; + padding-bottom: 1px; + } + .bodywebsite .section-with-counters > div { + position: relative; + box-shadow: 2px 2px 27px 0px rgba(1, 3, 4, 0.35); + z-index: 2; + margin-top: -30px; + margin-bottom: -30px; + } +} +@media (min-width: 768px) { + .bodywebsite .section-image-aside { + position: relative; + } +} +.bodywebsite .section-image-aside-img { + position: absolute; + top: 0; + bottom: 0; + width: 190%; + -webkit-background-size: cover; + background-size: cover; +} +@media (min-width: 768px) { + .bodywebsite .section-image-aside-img { + width: 50vw; + } +} +.bodywebsite .section-image-aside-left .section-image-aside-img { + right: -50%; +} +@media (min-width: 768px) { + .bodywebsite .section-image-aside-left .section-image-aside-img { + right: 0; + } +} +.bodywebsite .section-image-aside-right .section-image-aside-img { + left: -50%; +} +@media (min-width: 768px) { + .bodywebsite .section-image-aside-right .section-image-aside-img { + left: 0; + } +} +.bodywebsite .section-15 { + padding-top: 15px; + padding-bottom: 15px; +} +.bodywebsite .section-30 { + padding-top: 30px; + padding-bottom: 30px; +} +.bodywebsite .section-35 { + padding-top: 35px; + padding-bottom: 35px; +} +.bodywebsite .section-40 { + padding-top: 40px; + padding-bottom: 40px; +} +.bodywebsite .section-45 { + padding-top: 45px; + padding-bottom: 45px; +} +.bodywebsite .section-50 { + padding-top: 50px; + padding-bottom: 50px; +} +.bodywebsite .section-60 { + padding-top: 60px; + padding-bottom: 60px; +} +.bodywebsite .section-66 { + padding-top: 66px; + padding-bottom: 66px; +} +.bodywebsite .section-75 { + padding-top: 75px; + padding-bottom: 75px; +} +.bodywebsite .section-90 { + padding-top: 90px; + padding-bottom: 90px; +} +.bodywebsite .section-100 { + padding-top: 100px; + padding-bottom: 100px; +} +.bodywebsite .section-120 { + padding-top: 120px; + padding-bottom: 120px; +} +.bodywebsite .section-130 { + padding-top: 130px; + padding-bottom: 130px; +} +.bodywebsite .section-145 { + padding-top: 145px; + padding-bottom: 145px; +} +.bodywebsite .section-165 { + padding-top: 165px; + padding-bottom: 165px; +} +@media (min-width: 576px) { + .bodywebsite .section-sm-15 { + padding-top: 15px; + padding-bottom: 15px; + } + .bodywebsite .section-sm-30 { + padding-top: 30px; + padding-bottom: 30px; + } + .bodywebsite .section-sm-35 { + padding-top: 35px; + padding-bottom: 35px; + } + .bodywebsite .section-sm-40 { + padding-top: 40px; + padding-bottom: 40px; + } + .bodywebsite .section-sm-45 { + padding-top: 45px; + padding-bottom: 45px; + } + .bodywebsite .section-sm-50 { + padding-top: 50px; + padding-bottom: 50px; + } + .bodywebsite .section-sm-60 { + padding-top: 60px; + padding-bottom: 60px; + } + .bodywebsite .section-sm-66 { + padding-top: 66px; + padding-bottom: 66px; + } + .bodywebsite .section-sm-75 { + padding-top: 75px; + padding-bottom: 75px; + } + .bodywebsite .section-sm-90 { + padding-top: 90px; + padding-bottom: 90px; + } + .bodywebsite .section-sm-100 { + padding-top: 100px; + padding-bottom: 100px; + } + .bodywebsite .section-sm-120 { + padding-top: 120px; + padding-bottom: 120px; + } + .bodywebsite .section-sm-130 { + padding-top: 130px; + padding-bottom: 130px; + } + .bodywebsite .section-sm-145 { + padding-top: 145px; + padding-bottom: 145px; + } + .bodywebsite .section-sm-165 { + padding-top: 165px; + padding-bottom: 165px; + } +} +@media (min-width: 768px) { + .bodywebsite .section-md-15 { + padding-top: 15px; + padding-bottom: 15px; + } + .bodywebsite .section-md-30 { + padding-top: 30px; + padding-bottom: 30px; + } + .bodywebsite .section-md-35 { + padding-top: 35px; + padding-bottom: 35px; + } + .bodywebsite .section-md-40 { + padding-top: 40px; + padding-bottom: 40px; + } + .bodywebsite .section-md-45 { + padding-top: 45px; + padding-bottom: 45px; + } + .bodywebsite .section-md-50 { + padding-top: 50px; + padding-bottom: 50px; + } + .bodywebsite .section-md-60 { + padding-top: 60px; + padding-bottom: 60px; + } + .bodywebsite .section-md-66 { + padding-top: 66px; + padding-bottom: 66px; + } + .bodywebsite .section-md-75 { + padding-top: 75px; + padding-bottom: 75px; + } + .bodywebsite .section-md-90 { + padding-top: 90px; + padding-bottom: 90px; + } + .bodywebsite .section-md-100 { + padding-top: 100px; + padding-bottom: 100px; + } + .bodywebsite .section-md-120 { + padding-top: 120px; + padding-bottom: 120px; + } + .bodywebsite .section-md-130 { + padding-top: 130px; + padding-bottom: 130px; + } + .bodywebsite .section-md-145 { + padding-top: 145px; + padding-bottom: 145px; + } + .bodywebsite .section-md-165 { + padding-top: 165px; + padding-bottom: 165px; + } +} +@media (min-width: 992px) { + .bodywebsite .section-lg-15 { + padding-top: 15px; + padding-bottom: 15px; + } + .bodywebsite .section-lg-30 { + padding-top: 30px; + padding-bottom: 30px; + } + .bodywebsite .section-lg-35 { + padding-top: 35px; + padding-bottom: 35px; + } + .bodywebsite .section-lg-40 { + padding-top: 40px; + padding-bottom: 40px; + } + .bodywebsite .section-lg-45 { + padding-top: 45px; + padding-bottom: 45px; + } + .bodywebsite .section-lg-50 { + padding-top: 50px; + padding-bottom: 50px; + } + .bodywebsite .section-lg-60 { + padding-top: 60px; + padding-bottom: 60px; + } + .bodywebsite .section-lg-66 { + padding-top: 66px; + padding-bottom: 66px; + } + .bodywebsite .section-lg-75 { + padding-top: 75px; + padding-bottom: 75px; + } + .bodywebsite .section-lg-90 { + padding-top: 90px; + padding-bottom: 90px; + } + .bodywebsite .section-lg-100 { + padding-top: 100px; + padding-bottom: 100px; + } + .bodywebsite .section-lg-120 { + padding-top: 120px; + padding-bottom: 120px; + } + .bodywebsite .section-lg-130 { + padding-top: 130px; + padding-bottom: 130px; + } + .bodywebsite .section-lg-145 { + padding-top: 145px; + padding-bottom: 145px; + } + .bodywebsite .section-lg-165 { + padding-top: 165px; + padding-bottom: 165px; + } +} +@media (min-width: 1200px) { + .bodywebsite .section-xl-15 { + padding-top: 15px; + padding-bottom: 15px; + } + .bodywebsite .section-xl-30 { + padding-top: 30px; + padding-bottom: 30px; + } + .bodywebsite .section-xl-35 { + padding-top: 35px; + padding-bottom: 35px; + } + .bodywebsite .section-xl-40 { + padding-top: 40px; + padding-bottom: 40px; + } + .bodywebsite .section-xl-45 { + padding-top: 45px; + padding-bottom: 45px; + } + .bodywebsite .section-xl-50 { + padding-top: 50px; + padding-bottom: 50px; + } + .bodywebsite .section-xl-60 { + padding-top: 60px; + padding-bottom: 60px; + } + .bodywebsite .section-xl-66 { + padding-top: 66px; + padding-bottom: 66px; + } + .bodywebsite .section-xl-75 { + padding-top: 75px; + padding-bottom: 75px; + } + .bodywebsite .section-xl-90 { + padding-top: 90px; + padding-bottom: 90px; + } + .bodywebsite .section-xl-100 { + padding-top: 100px; + padding-bottom: 100px; + } + .bodywebsite .section-xl-120 { + padding-top: 120px; + padding-bottom: 120px; + } + .bodywebsite .section-xl-130 { + padding-top: 130px; + padding-bottom: 130px; + } + .bodywebsite .section-xl-145 { + padding-top: 145px; + padding-bottom: 145px; + } + .bodywebsite .section-xl-165 { + padding-top: 165px; + padding-bottom: 165px; + } +} +@media (min-width: 1800px) { + .bodywebsite .section-xxl-15 { + padding-top: 15px; + padding-bottom: 15px; + } + .bodywebsite .section-xxl-30 { + padding-top: 30px; + padding-bottom: 30px; + } + .bodywebsite .section-xxl-35 { + padding-top: 35px; + padding-bottom: 35px; + } + .bodywebsite .section-xxl-40 { + padding-top: 40px; + padding-bottom: 40px; + } + .bodywebsite .section-xxl-45 { + padding-top: 45px; + padding-bottom: 45px; + } + .bodywebsite .section-xxl-50 { + padding-top: 50px; + padding-bottom: 50px; + } + .bodywebsite .section-xxl-60 { + padding-top: 60px; + padding-bottom: 60px; + } + .bodywebsite .section-xxl-66 { + padding-top: 66px; + padding-bottom: 66px; + } + .bodywebsite .section-xxl-75 { + padding-top: 75px; + padding-bottom: 75px; + } + .bodywebsite .section-xxl-90 { + padding-top: 90px; + padding-bottom: 90px; + } + .bodywebsite .section-xxl-100 { + padding-top: 100px; + padding-bottom: 100px; + } + .bodywebsite .section-xxl-120 { + padding-top: 120px; + padding-bottom: 120px; + } + .bodywebsite .section-xxl-130 { + padding-top: 130px; + padding-bottom: 130px; + } + .bodywebsite .section-xxl-145 { + padding-top: 145px; + padding-bottom: 145px; + } + .bodywebsite .section-xxl-165 { + padding-top: 165px; + padding-bottom: 165px; + } +} +.bodywebsite .section-top-15 { + padding-top: 15px; +} +.bodywebsite .section-top-30 { + padding-top: 30px; +} +.bodywebsite .section-top-35 { + padding-top: 35px; +} +.bodywebsite .section-top-40 { + padding-top: 40px; +} +.bodywebsite .section-top-45 { + padding-top: 45px; +} +.bodywebsite .section-top-50 { + padding-top: 50px; +} +.bodywebsite .section-top-60 { + padding-top: 60px; +} +.bodywebsite .section-top-66 { + padding-top: 66px; +} +.bodywebsite .section-top-75 { + padding-top: 75px; +} +.bodywebsite .section-top-90 { + padding-top: 90px; +} +.bodywebsite .section-top-100 { + padding-top: 100px; +} +.bodywebsite .section-top-120 { + padding-top: 120px; +} +.bodywebsite .section-top-130 { + padding-top: 130px; +} +.bodywebsite .section-top-145 { + padding-top: 145px; +} +.bodywebsite .section-top-165 { + padding-top: 165px; +} +@media (min-width: 576px) { + .bodywebsite .section-sm-top-15 { + padding-top: 15px; + } + .bodywebsite .section-sm-top-30 { + padding-top: 30px; + } + .bodywebsite .section-sm-top-35 { + padding-top: 35px; + } + .bodywebsite .section-sm-top-40 { + padding-top: 40px; + } + .bodywebsite .section-sm-top-45 { + padding-top: 45px; + } + .bodywebsite .section-sm-top-50 { + padding-top: 50px; + } + .bodywebsite .section-sm-top-60 { + padding-top: 60px; + } + .bodywebsite .section-sm-top-66 { + padding-top: 66px; + } + .bodywebsite .section-sm-top-75 { + padding-top: 75px; + } + .bodywebsite .section-sm-top-90 { + padding-top: 90px; + } + .bodywebsite .section-sm-top-100 { + padding-top: 100px; + } + .bodywebsite .section-sm-top-120 { + padding-top: 120px; + } + .bodywebsite .section-sm-top-130 { + padding-top: 130px; + } + .bodywebsite .section-sm-top-145 { + padding-top: 145px; + } + .bodywebsite .section-sm-top-165 { + padding-top: 165px; + } +} +@media (min-width: 768px) { + .bodywebsite .section-md-top-15 { + padding-top: 15px; + } + .bodywebsite .section-md-top-30 { + padding-top: 30px; + } + .bodywebsite .section-md-top-35 { + padding-top: 35px; + } + .bodywebsite .section-md-top-40 { + padding-top: 40px; + } + .bodywebsite .section-md-top-45 { + padding-top: 45px; + } + .bodywebsite .section-md-top-50 { + padding-top: 50px; + } + .bodywebsite .section-md-top-60 { + padding-top: 60px; + } + .bodywebsite .section-md-top-66 { + padding-top: 66px; + } + .bodywebsite .section-md-top-75 { + padding-top: 75px; + } + .bodywebsite .section-md-top-90 { + padding-top: 90px; + } + .bodywebsite .section-md-top-100 { + padding-top: 100px; + } + .bodywebsite .section-md-top-120 { + padding-top: 120px; + } + .bodywebsite .section-md-top-130 { + padding-top: 130px; + } + .bodywebsite .section-md-top-145 { + padding-top: 145px; + } + .bodywebsite .section-md-top-165 { + padding-top: 165px; + } +} +@media (min-width: 992px) { + .bodywebsite .section-lg-top-15 { + padding-top: 15px; + } + .bodywebsite .section-lg-top-30 { + padding-top: 30px; + } + .bodywebsite .section-lg-top-35 { + padding-top: 35px; + } + .bodywebsite .section-lg-top-40 { + padding-top: 40px; + } + .bodywebsite .section-lg-top-45 { + padding-top: 45px; + } + .bodywebsite .section-lg-top-50 { + padding-top: 50px; + } + .bodywebsite .section-lg-top-60 { + padding-top: 60px; + } + .bodywebsite .section-lg-top-66 { + padding-top: 66px; + } + .bodywebsite .section-lg-top-75 { + padding-top: 75px; + } + .bodywebsite .section-lg-top-90 { + padding-top: 90px; + } + .bodywebsite .section-lg-top-100 { + padding-top: 100px; + } + .bodywebsite .section-lg-top-120 { + padding-top: 120px; + } + .bodywebsite .section-lg-top-130 { + padding-top: 130px; + } + .bodywebsite .section-lg-top-145 { + padding-top: 145px; + } + .bodywebsite .section-lg-top-165 { + padding-top: 165px; + } +} +@media (min-width: 1200px) { + .bodywebsite .section-xl-top-15 { + padding-top: 15px; + } + .bodywebsite .section-xl-top-30 { + padding-top: 30px; + } + .bodywebsite .section-xl-top-35 { + padding-top: 35px; + } + .bodywebsite .section-xl-top-40 { + padding-top: 40px; + } + .bodywebsite .section-xl-top-45 { + padding-top: 45px; + } + .bodywebsite .section-xl-top-50 { + padding-top: 50px; + } + .bodywebsite .section-xl-top-60 { + padding-top: 60px; + } + .bodywebsite .section-xl-top-66 { + padding-top: 66px; + } + .bodywebsite .section-xl-top-75 { + padding-top: 75px; + } + .bodywebsite .section-xl-top-90 { + padding-top: 90px; + } + .bodywebsite .section-xl-top-100 { + padding-top: 100px; + } + .bodywebsite .section-xl-top-120 { + padding-top: 120px; + } + .bodywebsite .section-xl-top-130 { + padding-top: 130px; + } + .bodywebsite .section-xl-top-145 { + padding-top: 145px; + } + .bodywebsite .section-xl-top-165 { + padding-top: 165px; + } +} +@media (min-width: 1800px) { + .bodywebsite .section-xxl-top-15 { + padding-top: 15px; + } + .bodywebsite .section-xxl-top-30 { + padding-top: 30px; + } + .bodywebsite .section-xxl-top-35 { + padding-top: 35px; + } + .bodywebsite .section-xxl-top-40 { + padding-top: 40px; + } + .bodywebsite .section-xxl-top-45 { + padding-top: 45px; + } + .bodywebsite .section-xxl-top-50 { + padding-top: 50px; + } + .bodywebsite .section-xxl-top-60 { + padding-top: 60px; + } + .bodywebsite .section-xxl-top-66 { + padding-top: 66px; + } + .bodywebsite .section-xxl-top-75 { + padding-top: 75px; + } + .bodywebsite .section-xxl-top-90 { + padding-top: 90px; + } + .bodywebsite .section-xxl-top-100 { + padding-top: 100px; + } + .bodywebsite .section-xxl-top-120 { + padding-top: 120px; + } + .bodywebsite .section-xxl-top-130 { + padding-top: 130px; + } + .bodywebsite .section-xxl-top-145 { + padding-top: 145px; + } + .bodywebsite .section-xxl-top-165 { + padding-top: 165px; + } +} +.bodywebsite .section-bottom-15 { + padding-bottom: 15px; +} +.bodywebsite .section-bottom-30 { + padding-bottom: 30px; +} +.bodywebsite .section-bottom-35 { + padding-bottom: 35px; +} +.bodywebsite .section-bottom-40 { + padding-bottom: 40px; +} +.bodywebsite .section-bottom-45 { + padding-bottom: 45px; +} +.bodywebsite .section-bottom-50 { + padding-bottom: 50px; +} +.bodywebsite .section-bottom-60 { + padding-bottom: 60px; +} +.bodywebsite .section-bottom-66 { + padding-bottom: 66px; +} +.bodywebsite .section-bottom-75 { + padding-bottom: 75px; +} +.bodywebsite .section-bottom-90 { + padding-bottom: 90px; +} +.bodywebsite .section-bottom-100 { + padding-bottom: 100px; +} +.bodywebsite .section-bottom-120 { + padding-bottom: 120px; +} +.bodywebsite .section-bottom-130 { + padding-bottom: 130px; +} +.bodywebsite .section-bottom-145 { + padding-bottom: 145px; +} +.bodywebsite .section-bottom-165 { + padding-bottom: 165px; +} +@media (min-width: 576px) { + .bodywebsite .section-sm-bottom-15 { + padding-bottom: 15px; + } + .bodywebsite .section-sm-bottom-30 { + padding-bottom: 30px; + } + .bodywebsite .section-sm-bottom-35 { + padding-bottom: 35px; + } + .bodywebsite .section-sm-bottom-40 { + padding-bottom: 40px; + } + .bodywebsite .section-sm-bottom-45 { + padding-bottom: 45px; + } + .bodywebsite .section-sm-bottom-50 { + padding-bottom: 50px; + } + .bodywebsite .section-sm-bottom-60 { + padding-bottom: 60px; + } + .bodywebsite .section-sm-bottom-66 { + padding-bottom: 66px; + } + .bodywebsite .section-sm-bottom-75 { + padding-bottom: 75px; + } + .bodywebsite .section-sm-bottom-90 { + padding-bottom: 90px; + } + .bodywebsite .section-sm-bottom-100 { + padding-bottom: 100px; + } + .bodywebsite .section-sm-bottom-120 { + padding-bottom: 120px; + } + .bodywebsite .section-sm-bottom-130 { + padding-bottom: 130px; + } + .bodywebsite .section-sm-bottom-145 { + padding-bottom: 145px; + } + .bodywebsite .section-sm-bottom-165 { + padding-bottom: 165px; + } +} +@media (min-width: 768px) { + .bodywebsite .section-md-bottom-15 { + padding-bottom: 15px; + } + .bodywebsite .section-md-bottom-30 { + padding-bottom: 30px; + } + .bodywebsite .section-md-bottom-35 { + padding-bottom: 35px; + } + .bodywebsite .section-md-bottom-40 { + padding-bottom: 40px; + } + .bodywebsite .section-md-bottom-45 { + padding-bottom: 45px; + } + .bodywebsite .section-md-bottom-50 { + padding-bottom: 50px; + } + .bodywebsite .section-md-bottom-60 { + padding-bottom: 60px; + } + .bodywebsite .section-md-bottom-66 { + padding-bottom: 66px; + } + .bodywebsite .section-md-bottom-75 { + padding-bottom: 75px; + } + .bodywebsite .section-md-bottom-90 { + padding-bottom: 90px; + } + .bodywebsite .section-md-bottom-100 { + padding-bottom: 100px; + } + .bodywebsite .section-md-bottom-120 { + padding-bottom: 120px; + } + .bodywebsite .section-md-bottom-130 { + padding-bottom: 130px; + } + .bodywebsite .section-md-bottom-145 { + padding-bottom: 145px; + } + .bodywebsite .section-md-bottom-165 { + padding-bottom: 165px; + } +} +@media (min-width: 992px) { + .bodywebsite .section-lg-bottom-15 { + padding-bottom: 15px; + } + .bodywebsite .section-lg-bottom-30 { + padding-bottom: 30px; + } + .bodywebsite .section-lg-bottom-35 { + padding-bottom: 35px; + } + .bodywebsite .section-lg-bottom-40 { + padding-bottom: 40px; + } + .bodywebsite .section-lg-bottom-45 { + padding-bottom: 45px; + } + .bodywebsite .section-lg-bottom-50 { + padding-bottom: 50px; + } + .bodywebsite .section-lg-bottom-60 { + padding-bottom: 60px; + } + .bodywebsite .section-lg-bottom-66 { + padding-bottom: 66px; + } + .bodywebsite .section-lg-bottom-75 { + padding-bottom: 75px; + } + .bodywebsite .section-lg-bottom-90 { + padding-bottom: 90px; + } + .bodywebsite .section-lg-bottom-100 { + padding-bottom: 100px; + } + .bodywebsite .section-lg-bottom-120 { + padding-bottom: 120px; + } + .bodywebsite .section-lg-bottom-130 { + padding-bottom: 130px; + } + .bodywebsite .section-lg-bottom-145 { + padding-bottom: 145px; + } + .bodywebsite .section-lg-bottom-165 { + padding-bottom: 165px; + } +} +@media (min-width: 1200px) { + .bodywebsite .section-xl-bottom-15 { + padding-bottom: 15px; + } + .bodywebsite .section-xl-bottom-30 { + padding-bottom: 30px; + } + .bodywebsite .section-xl-bottom-35 { + padding-bottom: 35px; + } + .bodywebsite .section-xl-bottom-40 { + padding-bottom: 40px; + } + .bodywebsite .section-xl-bottom-45 { + padding-bottom: 45px; + } + .bodywebsite .section-xl-bottom-50 { + padding-bottom: 50px; + } + .bodywebsite .section-xl-bottom-60 { + padding-bottom: 60px; + } + .bodywebsite .section-xl-bottom-66 { + padding-bottom: 66px; + } + .bodywebsite .section-xl-bottom-75 { + padding-bottom: 75px; + } + .bodywebsite .section-xl-bottom-90 { + padding-bottom: 90px; + } + .bodywebsite .section-xl-bottom-100 { + padding-bottom: 100px; + } + .bodywebsite .section-xl-bottom-120 { + padding-bottom: 120px; + } + .bodywebsite .section-xl-bottom-130 { + padding-bottom: 130px; + } + .bodywebsite .section-xl-bottom-145 { + padding-bottom: 145px; + } + .bodywebsite .section-xl-bottom-165 { + padding-bottom: 165px; + } +} +@media (min-width: 1800px) { + .bodywebsite .section-xxl-bottom-15 { + padding-bottom: 15px; + } + .bodywebsite .section-xxl-bottom-30 { + padding-bottom: 30px; + } + .bodywebsite .section-xxl-bottom-35 { + padding-bottom: 35px; + } + .bodywebsite .section-xxl-bottom-40 { + padding-bottom: 40px; + } + .bodywebsite .section-xxl-bottom-45 { + padding-bottom: 45px; + } + .bodywebsite .section-xxl-bottom-50 { + padding-bottom: 50px; + } + .bodywebsite .section-xxl-bottom-60 { + padding-bottom: 60px; + } + .bodywebsite .section-xxl-bottom-66 { + padding-bottom: 66px; + } + .bodywebsite .section-xxl-bottom-75 { + padding-bottom: 75px; + } + .bodywebsite .section-xxl-bottom-90 { + padding-bottom: 90px; + } + .bodywebsite .section-xxl-bottom-100 { + padding-bottom: 100px; + } + .bodywebsite .section-xxl-bottom-120 { + padding-bottom: 120px; + } + .bodywebsite .section-xxl-bottom-130 { + padding-bottom: 130px; + } + .bodywebsite .section-xxl-bottom-145 { + padding-bottom: 145px; + } + .bodywebsite .section-xxl-bottom-165 { + padding-bottom: 165px; + } +} +html .bodywebsite .group { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + margin-bottom: -15px; + margin-left: -15px; +} +html .bodywebsite .group > *, +html .bodywebsite .group > *:first-child { + display: inline-block; + margin-top: 15px; + margin-left: 15px; +} +html .bodywebsite .group-xs { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + margin-bottom: -5px; + margin-left: -5px; +} +html .bodywebsite .group-xs > *, +html .bodywebsite .group-xs > *:first-child { + display: inline-block; + margin-top: 5px; + margin-left: 5px; +} +html .bodywebsite .group-sm { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + margin-bottom: -10px; + margin-left: -10px; +} +html .bodywebsite .group-sm > *, +html .bodywebsite .group-sm > *:first-child { + display: inline-block; + margin-top: 10px; + margin-left: 10px; +} +html .bodywebsite .group-md { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + margin-bottom: -15px; + margin-left: -15px; +} +html .bodywebsite .group-md > *, +html .bodywebsite .group-md > *:first-child { + display: inline-block; + margin-top: 15px; + margin-left: 15px; +} +html .bodywebsite .group-lg { + -webkit-transform: translateY(-20px); + transform: translateY(-20px); + margin-bottom: -20px; + margin-left: -20px; +} +html .bodywebsite .group-lg > *, +html .bodywebsite .group-lg > *:first-child { + display: inline-block; + margin-top: 20px; + margin-left: 20px; +} +html .bodywebsite .group-xl { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + margin-bottom: -30px; + margin-left: -30px; +} +html .bodywebsite .group-xl > *, +html .bodywebsite .group-xl > *:first-child { + display: inline-block; + margin-top: 30px; + margin-left: 30px; +} +html .bodywebsite .group-top > *, +html .bodywebsite .group-top > *:first-child { + vertical-align: top; +} +html .bodywebsite .group-middle > *, +html .bodywebsite .group-middle > *:first-child { + vertical-align: middle; +} +html .bodywebsite .group-bottom > *, +html .bodywebsite .group-bottom > *:first-child { + vertical-align: bottom; +} +html .bodywebsite .group-inline > * { + display: inline; +} +html .bodywebsite .group-inline > *:not(:last-child) { + margin-right: .25em; +} +html .bodywebsite .group-xl-responsive { + -webkit-transform: translateY(-18px); + transform: translateY(-18px); + margin-bottom: -18px; + margin-left: -18px; +} +html .bodywebsite .group-xl-responsive > *, +html .bodywebsite .group-xl-responsive > *:first-child { + display: inline-block; + margin-top: 18px; + margin-left: 18px; +} +@media (min-width: 768px) { + html .bodywebsite .group-xl-responsive { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + margin-bottom: -30px; + margin-left: -30px; + } + html .bodywebsite .group-xl-responsive > *, + html .bodywebsite .group-xl-responsive > *:first-child { + display: inline-block; + margin-top: 30px; + margin-left: 30px; + } +} +.bodywebsite .group-flex-center { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} +.bodywebsite .relative { + position: relative; +} +.bodywebsite .static { + position: static; +} +.bodywebsite .block-top-level { + position: relative; + z-index: 3; +} +.bodywebsite .height-fill { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} +.bodywebsite .height-fill > * { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.bodywebsite .centered { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} +.bodywebsite .align-bottom { + -webkit-align-self: flex-end; + -ms-flex-item-align: end; + align-self: flex-end; +} +.bodywebsite .block-centered { + margin-left: auto; + margin-right: auto; +} +@media (max-width: 767px) { + .bodywebsite .responsive-centered { + margin-left: auto; + margin-right: auto; + } +} +.bodywebsite .overflow-hidden { + overflow: hidden; +} +.bodywebsite .page .white-space-normal { + white-space: normal; +} +.bodywebsite * + h1, +.bodywebsite * + .h1 { + margin-top: 20px; +} +@media (min-width: 768px) { + .bodywebsite * + h1, + .bodywebsite * + .h1 { + margin-top: 27px; + } +} +@media (min-width: 992px) { + .bodywebsite * + h1, + .bodywebsite * + .h1 { + margin-top: 34px; + } +} +.bodywebsite * + h2, +.bodywebsite * + .h2 { + margin-top: 25px; +} +.bodywebsite * + h3, +.bodywebsite * + .h3 { + margin-top: 17px; +} +.bodywebsite * + h4, +.bodywebsite * + .h4 { + margin-top: 15px; +} +.bodywebsite h1 + *, +.bodywebsite .h1 + * { + margin-top: 25px; +} +.bodywebsite h2 + *, +.bodywebsite .h2 + * { + margin-top: 18px; +} +.bodywebsite h3 + *, +.bodywebsite .h3 + * { + margin-top: 19px; +} +.bodywebsite h4 + *, +.bodywebsite .h4 + * { + margin-top: 18px; +} +.bodywebsite * + p, +.bodywebsite * + p { + margin-top: 14px; +} +.bodywebsite * + .text-big { + margin-top: 20px; +} +.bodywebsite hr + * { + margin-top: 18px; +} +@media (min-width: 1200px) { + .bodywebsite hr + * { + margin-top: 26px; + } +} +.bodywebsite * + .big { + margin-top: 6px; +} +.bodywebsite * + .text-large { + margin-top: 10px; +} +.bodywebsite * + .text-bigger { + margin-top: 28px; +} +.bodywebsite * + .btn { + margin-top: 30px; +} +@media (min-width: 1200px) { + .bodywebsite * + .btn { + margin-top: 44px; + } +} +.bodywebsite * + .link { + margin-top: 18px; +} +.bodywebsite * + .contact-info { + margin-top: 16px; +} +.bodywebsite * + .list-inline { + margin-top: 32px; +} +.bodywebsite * + .list-terms { + margin-top: 42px; +} +@media (min-width: 1200px) { + .bodywebsite * + .list-terms { + margin-top: 62px; + } +} +.bodywebsite * + .list-marked, +.bodywebsite * + .list-ordered { + margin-top: 22px; +} +.bodywebsite * + .link-wrap { + margin-top: 8px; +} +.bodywebsite * + .link-iconed { + margin-top: 2px; +} +.bodywebsite .contact-info { + vertical-align: baseline; +} +.bodywebsite .contact-info a { + display: inline-block; +} +.bodywebsite .contact-info dl dt, +.bodywebsite .contact-info dl dd { + display: inline-block; +} +.bodywebsite .contact-info dl dt:after { + content: ':'; + display: inline-block; + text-align: center; +} +.bodywebsite .contact-info .dl-inline dt { + padding-right: 0; +} +.bodywebsite .grid-system p { + color: #00030a; +} +@media (max-width: 1199px) { + .bodywebsite .grid-system p { + width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } +} +.bodywebsite .object-inline, +.bodywebsite .object-inline-baseline { + white-space: nowrap; +} +.bodywebsite .object-inline > * + *, +.bodywebsite .object-inline-baseline > * + * { + margin-top: 0; + margin-left: 5px; +} +.bodywebsite .object-inline { + vertical-align: middle; +} +.bodywebsite .object-inline > * { + display: inline-block; + vertical-align: middle; +} +.bodywebsite .object-inline-baseline { + vertical-align: baseline; +} +.bodywebsite .object-inline-baseline > * { + display: inline-block; + vertical-align: baseline; +} +.bodywebsite .row-no-gutter { + margin-left: 0; + margin-right: 0; +} +.bodywebsite .row-no-gutter [class*='col'] { + padding: 0; +} +.bodywebsite .text-width-1 { + max-width: 400px; +} +@media (min-width: 992px) { + .bodywebsite .text-width-1 { + max-width: 310px; + } +} +.bodywebsite .min-width-1 { + min-width: 100%; +} +@media (min-width: 576px) { + .bodywebsite .min-width-1 { + min-width: 270px; + } +} +.bodywebsite .img-shadow { + box-shadow: -3px 2px 4px 0px rgba(0, 0, 0, 0.58); +} +@media (min-width: 768px) { + .bodywebsite .img-shadow { + box-shadow: -5px 4px 8px 0px rgba(0, 0, 0, 0.58); + } +} +.bodywebsite .box { + box-shadow: 0 5px 23px 0 rgba(0, 0, 0, 0.3); + padding: 50px 30px; + margin-top: 10px; + margin-bottom: 10px; +} +@media (min-width: 992px) { + .bodywebsite .box { + padding: 55px 30px 65px 44px; + } +} +@media (min-width: 1200px) { + .bodywebsite .box { + padding: 54px 40px 85px 54px; + } +} +.bodywebsite .box-xs { + padding: 38px 20px; +} +.bodywebsite .page .box-list-xs { + box-shadow: 0 5px 13px 0 rgba(0, 0, 0, 0.2); +} +.bodywebsite .page .box-list-xs .box-xs + .box-xs { + border-top: 1px solid #1c2e3f; +} +@media (min-width: 768px) { + .bodywebsite .page .box-list-xs { + max-width: 170px; + } +} +.bodywebsite .group-item { + width: 100%; + max-width: 220px; + margin-left: auto; + margin-right: auto; +} +@media (min-width: 576px) { + .bodywebsite .group-item { + max-width: 300px; + } +} +@media (min-width: 768px) { + .bodywebsite .group-item { + min-width: 40%; + max-width: 0; + } +} +@media (min-width: 1200px) { + .bodywebsite .group-item { + min-width: 272px; + } + .bodywebsite .group-item-sm { + min-width: 195px; + } +} +@media (min-width: 1200px) { + .bodywebsite .border-modern { + position: relative; + } + .bodywebsite .border-modern .border-modern-item-1, + .bodywebsite .border-modern .border-modern-item-2, + .bodywebsite .border-modern .border-modern-item-3, + .bodywebsite .border-modern .border-modern-item-4 { + position: absolute; + width: 45px; + height: 45px; + border-left: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-top: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + } + .bodywebsite .border-modern .border-modern-item-1, + .bodywebsite .border-modern .border-modern-item-2 { + top: -27px; + } + .bodywebsite .border-modern .border-modern-item-3, + .bodywebsite .border-modern .border-modern-item-4 { + bottom: -68px; + } + .bodywebsite .border-modern .border-modern-item-1, + .bodywebsite .border-modern .border-modern-item-3 { + left: 0px; + } + .bodywebsite .border-modern .border-modern-item-2, + .bodywebsite .border-modern .border-modern-item-4 { + right: 0px; + } + .bodywebsite .border-modern .border-modern-item-2 { + transform: rotate(90deg); + } + .bodywebsite .border-modern .border-modern-item-3 { + transform: rotate(-90deg); + } + .bodywebsite .border-modern .border-modern-item-4 { + transform: rotate(180deg); + } +} +.bodywebsite .pagination-custom { + display: inline-block; + position: relative; + transform: translateY(-4px); + margin-bottom: -4px; +} +.bodywebsite .pagination-custom > * { + margin-top: 4px; +} +.bodywebsite .pagination-custom > *:not(:last-child) { + margin-right: 4px; +} +.bodywebsite .pagination-custom .page-item { + display: inline-block; + line-height: 1; +} +.bodywebsite .pagination-custom .page-item:first-child .page-link, +.bodywebsite .pagination-custom .page-item:last-child .page-link { + padding-left: 25px; + padding-right: 25px; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .pagination-custom .page-item .page-link { + display: block; + width: auto; + min-width: 52px; + height: 52px; + padding: 10px 20px; + border: 2px solid; + border-radius: 0; + font: 700 14px/14px "Roboto", Helvetica, Arial, sans-serif; + text-transform: uppercase; + vertical-align: middle; +} +.bodywebsite .pagination-custom .page-item .page-link:after { + content: ''; + height: 108%; + width: 0; + display: inline-block; + vertical-align: middle; +} +.bodywebsite .pagination-custom .page-item .page-link, +.bodywebsite .pagination-custom .page-item .page-link:active, +.bodywebsite .pagination-custom .page-item .page-link:focus { + color: #000; + background: transparent; + border-color: #cdcdcd; +} +.bodywebsite .pagination-custom .page-item .page-link:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .pagination-custom .page-item.disabled, +.bodywebsite .pagination-custom .page-item.active { + pointer-events: none; +} +.bodywebsite .pagination-custom .page-item.active .page-link { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .pagination-custom .page-item.disabled .page-link { + color: #f9f9f9; + background: #cdcdcd; + border-color: #cdcdcd; +} +.bodywebsite .label-custom { + padding: .35em .3em .25em; + font-weight: 400; + font-size: 70%; + text-transform: uppercase; +} +.bodywebsite .mac .label-custom { + padding-top: .4em; +} +.bodywebsite .label-custom.label-danger { + color: #fff; + background: #fe4a21; + box-shadow: inset 0 8px 12px rgba(0, 0, 0, 0.25); +} +.bodywebsite .label-custom.label-info { + color: #fff; + background: #3e9cf6; + box-shadow: inset 0 8px 12px rgba(0, 0, 0, 0.25); +} +.bodywebsite blockquote { + font: inherit; + padding: 0; + margin: 0; + border: 0; +} +.bodywebsite blockquote q:before, +.bodywebsite blockquote q:after { + content: none; +} +.bodywebsite blockquote cite { + font-style: normal; +} +.bodywebsite .quote-default { + position: relative; + padding: 43px 0 43px 6px; + color: #00030a; +} +.bodywebsite .quote-default svg { + fill: #ddd; +} +.bodywebsite .quote-default .quote-open, +.bodywebsite .quote-default .quote-close { + position: absolute; + left: 30px; +} +.bodywebsite .quote-default .quote-open { + top: 0; +} +.bodywebsite .quote-default .quote-close { + bottom: 0; +} +.bodywebsite .quote-bordered { + padding-top: 14px; +} +.bodywebsite .quote-bordered .quote-body { + position: relative; + padding-bottom: 10px; +} +.bodywebsite .quote-bordered h6 { + font-size: 18px; +} +.bodywebsite .quote-bordered .quote-body-inner { + position: relative; + padding: 37px 22px 29px 34px; + border-style: solid; + border-width: 1px 1px 0 1px; + border-color: #e5e7e9; +} +.bodywebsite .quote-bordered .quote-body-inner:before, +.bodywebsite .quote-bordered .quote-body-inner:after { + content: ''; + position: absolute; + bottom: -10px; + height: 10px; + border-style: solid; + border-color: #e5e7e9; + background-color: transparent; +} +.bodywebsite .quote-bordered .quote-body-inner:before { + left: 10px; + width: 46px; + border-width: 1px 1px 0 0; + transform: skew(45deg); + transform-origin: 100% 100%; +} +.bodywebsite .quote-bordered .quote-body-inner:after { + right: 10px; + width: calc(34%); + border-width: 1px 0 0 1px; + transform: skew(-45deg); + transform-origin: 0 100%; +} +.bodywebsite .quote-bordered .quote-open { + position: absolute; + top: -10px; + left: 34px; + z-index: 2; +} +.bodywebsite .quote-bordered .quote-open > svg { + fill: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .quote-bordered .quote-footer { + padding-left: 25px; +} +.bodywebsite .quote-bordered cite { + font-size: 17px; + font-weight: 900; + line-height: 21px; + color: #fff; +} +.bodywebsite .quote-bordered * + .quote-footer { + margin-top: 9px; +} +.bodywebsite .quote-bordered cite + p { + margin-top: 0; +} +.bodywebsite .quote-bordered-inverse cite, +.bodywebsite .quote-bordered-inverse q { + color: #000; +} +.bodywebsite .quote-minimal-bordered { + position: relative; + padding: 16px 0 26px; + text-align: center; +} +.bodywebsite .quote-minimal-bordered q { + font: 400 20px "Roboto", Helvetica, Arial, sans-serif; + font-style: italic; + color: #464a4d; +} +.bodywebsite .quote-minimal-bordered q:before, +.bodywebsite .quote-minimal-bordered q:after { + content: '"'; +} +.bodywebsite .quote-minimal-bordered:before, +.bodywebsite .quote-minimal-bordered:after { + content: ''; + position: absolute; + left: 50%; + width: 270px; + height: 1px; + transform: translateX(-50%); + background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #dedede 50%, rgba(0, 0, 0, 0) 100%); + background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #dedede 50%, rgba(0, 0, 0, 0) 100%); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #dedede 50%, rgba(0, 0, 0, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#00000000', GradientType=1); +} +.bodywebsite .quote-minimal-bordered:before { + top: 0; +} +.bodywebsite .quote-minimal-bordered:after { + bottom: 0; +} +@media (min-width: 768px) { + .bodywebsite .quote-minimal-bordered q { + font-size: 24px; + line-height: 1.55; + } +} +@media (min-width: 1200px) { + .bodywebsite .quote-minimal-bordered q { + font-size: 30px; + } +} +.bodywebsite .quote-minimal q { + font-size: 18px; + font-weight: 300; + font-style: italic; + line-height: 1.2; + color: #000; +} +.bodywebsite .quote-minimal cite { + font: 700 15px "Roboto", Helvetica, Arial, sans-serif; + line-height: 1.1; + color: #000; +} +.bodywebsite .quote-minimal .caption { + color: #9f9f9f; +} +.bodywebsite .quote-minimal.quote-minimal-inverse q { + color: #fff; +} +.bodywebsite .quote-minimal.quote-minimal-inverse cite { + color: #fff; +} +.bodywebsite .quote-minimal.quote-minimal-inverse .caption { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .quote-minimal * + .caption { + margin-top: 0; +} +.bodywebsite .quote-minimal * + .quote-meta { + margin-top: 20px; +} +.bodywebsite .quote-strict q, +.bodywebsite .quote-strict cite { + color: #000; +} +.bodywebsite .quote-strict q { + font-size: 19px; + font-weight: 300; + font-style: italic; + line-height: 28px; +} +.bodywebsite .quote-strict cite { + display: block; + font: 700 16px/21px "Roboto", Helvetica, Arial, sans-serif; + text-transform: uppercase; +} +.bodywebsite .quote-strict * + cite { + margin-top: 20px; +} +.bodywebsite .quote-strict.quote-strict-inverse q, +.bodywebsite .quote-strict.quote-strict-inverse cite { + color: #fff; +} +.bodywebsite .quote-vertical { + max-width: 360px; + margin-left: auto; + margin-right: auto; + text-align: center; +} +.bodywebsite .quote-vertical q { + font-size: 16px; + line-height: 1.57895; + font-weight: 100; + color: rgba(0, 0, 0, 0.5); +} +.bodywebsite .quote-vertical cite { + display: block; + color: #000; + font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; +} +.bodywebsite .quote-vertical .quote-open > svg { + fill: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .quote-vertical .quote-image, +.bodywebsite .quote-vertical .quote-image > img { + border-radius: 600px; +} +.bodywebsite .quote-vertical .quote-image > img { + width: auto; +} +.bodywebsite .quote-vertical * + cite { + margin-top: 16px; +} +.bodywebsite .quote-vertical * + .caption { + margin-top: 0; +} +.bodywebsite .quote-vertical * + .quote-text { + margin-top: 25px; +} +.bodywebsite .quote-vertical * + .quote-meta { + margin-top: 25px; +} +.bodywebsite .quote-vertical.quote-vertical-inverse q, +.bodywebsite .quote-vertical.quote-vertical-inverse cite { + color: #fff; +} +.bodywebsite .quote-vertical.quote-vertical-inverse .cite { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .quote-vertical.quote-vertical-inverse .quote-open > svg { + fill: #fff; +} +.bodywebsite .quote-review cite { + font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; + text-transform: uppercase; + letter-spacing: -0.025em; + color: #000; +} +.bodywebsite .quote-review .quote-header { + position: relative; + transform: translateY(-2px); + margin-bottom: -2px; +} +.bodywebsite .quote-review .quote-header > * { + margin-top: 2px; +} +.bodywebsite .quote-review .quote-header > *:not(:last-child) { + margin-right: 10px; +} +.bodywebsite .quote-review .quote-header > * { + display: inline-block; + vertical-align: middle; +} +.bodywebsite .quote-review * + .quote-body { + margin-top: 10px; +} +.bodywebsite * + .quote-review { + margin-top: 35px; +} +@media (min-width: 768px) { + .bodywebsite .quote-minimal q { + font-size: 22px; + } + .bodywebsite .quote-minimal cite { + font-size: 19px; + } + .bodywebsite .quote-minimal * + .quote-meta { + margin-top: 37px; + } + .bodywebsite * + .quote-review { + margin-top: 45px; + } +} +@media (min-width: 992px) { + .bodywebsite .quote-minimal q { + font-size: 24px; + } + .bodywebsite .quote-vertical q { + font-size: 19px; + } +} +.bodywebsite .quote-left .divider-fullwidth { + margin-top: 20px; + background: #bcd; +} +.bodywebsite .quote-left .quote-name { + font-size: 18px; + font-weight: 500; + color: #fff; +} +@media (min-width: 992px) { + .bodywebsite .quote-left .quote-name { + font-size: 24px; + } +} +.bodywebsite .quote-left .quote-desc-text { + font-size: 26px; + line-height: 1; + font-style: italic; + font-weight: 700; +} +@media (min-width: 992px) { + .bodywebsite .quote-left .quote-desc-text { + font-size: 36px; + } +} +.bodywebsite .quote-left .quote-body { + margin-top: 27px; + padding-left: 75px; + position: relative; + text-align: left; +} +.bodywebsite .quote-left .quote-body:before { + content: ''; + position: absolute; + top: 6px; + left: 0; + width: 50px; + height: 36px; + background: url("medias/image/ref; ?>/icon-quote.png") no-repeat top left; + opacity: .5; +} +.bodywebsite .quote-left .quote-body q { + color: #fff; +} +.bodywebsite .quote-left .h4 + *, +.bodywebsite .quote-left h5 + * { + margin-top: 0; +} +.bodywebsite .page .box-text > * { + display: inline; + margin: 0 .25em 0 0; +} +.bodywebsite .icon-box-horizontal .unit-left { + min-width: 48px; +} +.bodywebsite .icon-box-horizontal [class*='icon-md'] { + margin-top: -2px; +} +.bodywebsite .icon-box-horizontal [class*='icon-lg'] { + margin-top: -5px; +} +.bodywebsite .icon-box-horizontal * + p { + margin-top: 9px; +} +.bodywebsite .icon-box-vertical * + p { + margin-top: 9px; +} +.bodywebsite .icon-box-vertical-sm { + max-width: 370px; +} +@media (max-width: 767px) { + .bodywebsite .icon-box-vertical-sm { + margin-left: auto; + margin-right: auto; + } +} +.bodywebsite .icon-box { + position: relative; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + width: 100%; + padding: 35px 30px; + text-align: center; + cursor: default; +} +@media (min-width: 768px) { + .bodywebsite .icon-box:before, + .bodywebsite .icon-box:after { + content: ''; + position: absolute; + width: 100%; + height: 100%; + border: 1px solid #e5e7e9; + pointer-events: none; + transition: .33s all ease; + } + .bodywebsite .icon-box.icon-box-top-line:before { + border-width: 1px 0 0 0; + } + .bodywebsite .icon-box:before { + top: 0; + left: 0; + border-width: 0 0 0 0; + } + .bodywebsite .icon-box:after { + bottom: 0; + right: 0; + border-width: 0 1px 1px 0; + } +} +.bodywebsite .icon-box .icon:after { + opacity: 0; +} +.bodywebsite .icon-box .btn:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .icon-box .box-top, +.bodywebsite .icon-box .box-body { + position: relative; + will-change: transform; + transition: .33s all ease; + -webkit-filter: blur(0); +} +.bodywebsite .icon-box .box-top { + top: 0; +} +.bodywebsite .icon-box .box-body { + max-width: 100%; +} +.bodywebsite .icon-box .box-header { + bottom: 0; +} +.bodywebsite .icon-box .box-icon { + min-height: 46px; + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} +.bodywebsite .icon-box * + .box-header { + margin-top: 10px; +} +.bodywebsite .icon-box * + .box-body { + margin-top: 22px; +} +.bodywebsite .icon-box .box-body + .btn { + margin-top: 18px; +} +.bodywebsite .icon-box.hover .box-top, +.bodywebsite .icon-box:hover .box-top { + -webkit-transform: translateY(-7px); + transform: translateY(-7px); +} +.bodywebsite .icon-box.hover .btn, +.bodywebsite .icon-box.hover .box-body, +.bodywebsite .icon-box:hover .btn, +.bodywebsite .icon-box:hover .box-body { + -webkit-transform: translateY(7px); + transform: translateY(7px); +} +@media (min-width: 992px) { + .bodywebsite .desktop .icon-box .icon-box-overlay { + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 0; + opacity: 0; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + transition: 0.2s ease-in-out; + } + .bodywebsite .desktop .icon-box:hover .icon-box-overlay { + opacity: 1; + z-index: 5; + -webkit-transform: scale(1.05); + transform: scale(1.05); + } + .bodywebsite .desktop .icon-box:hover .btn { + z-index: 6; + } + .bodywebsite .desktop .icon-box:hover .box-body, + .bodywebsite .desktop .icon-box:hover .box-top { + z-index: 6; + } +} +@media (min-width: 768px) { + .bodywebsite .icon-box { + padding: 67px 37px 61px; + margin-left: auto; + margin-right: auto; + } +} +@media (min-width: 1400px) { + .bodywebsite .icon-box { + padding: 67px 110px 61px; + } +} +@media (min-width: 1800px) { + .bodywebsite .icon-box { + padding: 90px 165px 82px; + } +} +.bodywebsite .list-blocks { + counter-reset: li; +} +.bodywebsite .list-blocks > li { + display: block; +} +.bodywebsite .list-blocks .block-list-counter:before { + position: relative; + content: counter(li, decimal-leading-zero); + counter-increment: li; + font: 700 30px/30px "Roboto", Helvetica, Arial, sans-serif; + letter-spacing: -0.025em; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-blocks > li + li { + margin-top: 50px; +} +.bodywebsite .block-image-plate { + display: block; + width: 100%; +} +.bodywebsite .block-image-plate .block-header { + max-width: 400px; +} +.bodywebsite .block-image-plate .block-inner { + position: relative; + padding: 45px 30px; +} +.bodywebsite .block-image-plate .block-inner:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 0; + background: rgba(0, 0, 0, 0.7); +} +.bodywebsite .block-image-plate .block-inner > * { + position: relative; + z-index: 2; +} +.bodywebsite .block-image-plate * + .block-text { + margin-top: 18px; +} +.bodywebsite .block-image-plate * + .block-body { + margin-top: 22px; +} +@media (max-width: 767px) { + .bodywebsite .block-image-plate { + margin-left: -16px; + margin-right: -15px; + width: calc(132%); + } +} +@media (min-width: 768px) { + .bodywebsite .block-image-plate .block-header { + max-width: 340px; + } + .bodywebsite .block-image-plate .block-header h3 { + line-height: 1.2; + } + .bodywebsite .block-image-plate .block-inner { + padding: 60px 12.5% 60px 8.33333%; + } + .bodywebsite .block-image-plate .block-body { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + .bodywebsite .block-image-plate .block-left { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-flex-basis: 11.11111%; + -ms-flex-preferred-size: 11.11111%; + flex-basis: 11.11111%; + max-width: 11.11111%; + max-width: 100px; + } + .bodywebsite .block-image-plate .block-body { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + } + .bodywebsite .block-image-plate * + .block-text { + margin-top: 0; + } +} +@media (min-width: 992px) { + .bodywebsite .block-image-plate .block-header { + max-width: 410px; + } + .bodywebsite .block-image-plate .block-inner { + padding-right: 16%; + padding-top: 90px; + padding-bottom: 95px; + } +} +.bodywebsite .block-vacation { + position: relative; + width: 100%; + padding: 39px 9% 45px; + border-radius: 4px; + background: #fff; + box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); +} +.bodywebsite .block-vacation, +.bodywebsite .block-vacation:active, +.bodywebsite .block-vacation:focus, +.bodywebsite .block-vacation:hover { + color: #9f9f9f; +} +.bodywebsite .block-vacation:hover { + box-shadow: -3px 5px 12px 0px rgba(65, 65, 65, 0.16); +} +.bodywebsite .block-vacation * + .block-meta { + margin-top: 14px; +} +@media (min-width: 1200px) { + .bodywebsite .block-vacation * + .block-meta { + margin-top: 5px; + } +} +.bodywebsite .block-shadow { + position: relative; + width: 100%; + padding-top: 30px; + overflow: hidden; + border-radius: 0; + background: #fff; + box-shadow: 0px 1px 10px 0px rgba(65, 65, 65, 0.12); + text-align: center; +} +.bodywebsite .block-shadow .block-inner { + padding: 0 40px; +} +.bodywebsite .block-shadow * + .block-footer { + margin-top: 32px; +} +.bodywebsite .block-shadow * + .icon-block { + margin-top: 40px; +} +@media (min-width: 768px) { + .bodywebsite .block-shadow { + padding-top: 38px; + } + .bodywebsite .block-shadow .block-inner { + padding: 0 70px; + } + .bodywebsite .block-shadow * + .icon-block { + margin-top: 60px; + } +} +.bodywebsite .box-counter { + text-align: center; +} +.bodywebsite .box-counter .box-header { + text-transform: uppercase; +} +.bodywebsite .box-counter * + .box-header { + margin-top: 10px; +} +@media (min-width: 768px) and (max-width: 1199px) { + .bodywebsite .box-counter .box-header { + font-size: 15px; + } +} +.bodywebsite .box-counter-inverse .box-header { + color: rgba(255, 255, 255, 0.2); +} +.bodywebsite .box-counter-inverse .counter { + color: #dedede; +} +.bodywebsite .box-counter-inverse-lighter .box-header { + color: rgba(255, 255, 255, 0.35); +} +.bodywebsite .box-counter-inverse-lighter .counter { + color: #dedede; +} +.bodywebsite .box-container-small { + display: inline-block; + width: 100%; + max-width: 280px; +} +.bodywebsite .post-single .post-footer { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + position: relative; + transform: translateY(-10px); + margin-bottom: -10px; +} +.bodywebsite .post-single .post-footer > * { + margin-top: 10px; +} +.bodywebsite .post-single .post-footer > *:not(:last-child) { + margin-right: 20px; +} +.bodywebsite .post-single * + .post-header { + margin-top: 15px; +} +.bodywebsite .post-single * + .post-meta { + margin-top: 20px; +} +.bodywebsite .post-single * + .post-body { + margin-top: 20px; +} +.bodywebsite .post-single * + .post-footer { + margin-top: 42px; +} +.bodywebsite .post-single + * { + margin-top: 40px; +} +@media (min-width: 768px) { + .bodywebsite .post-single * + .post-header { + margin-top: 22px; + } + .bodywebsite .post-single * + .post-meta { + margin-top: 10px; + } +} +.bodywebsite .post-info * + .post-main { + margin-top: 30px; +} +.bodywebsite .post-info * + .post-body { + margin-top: 20px; +} +@media (min-width: 768px) { + .bodywebsite .post-info .post-main { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .bodywebsite .post-info .post-left { + -webkit-flex-basis: 33.33333%; + -ms-flex-preferred-size: 33.33333%; + flex-basis: 33.33333%; + max-width: 33.33333%; + padding-right: 25px; + } + .bodywebsite .post-info .post-body { + -webkit-flex-basis: 66.66667%; + -ms-flex-preferred-size: 66.66667%; + flex-basis: 66.66667%; + max-width: 66.66667%; + } + .bodywebsite .post-info * + .post-body { + margin-top: 0; + } +} +.bodywebsite .post-minimal { + position: relative; + border-radius: 4px; + overflow: hidden; + background: #fff; + box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); +} +.bodywebsite .post-minimal .post-body { + padding: 20px; +} +.bodywebsite .post-minimal * + p { + margin-top: 8px; +} +.bodywebsite .post-minimal * + .post-meta { + margin-top: 5px; +} +@media (max-width: 575px) { + .bodywebsite .post-minimal { + display: inline-block; + width: 100%; + max-width: 300px; + } +} +@media (min-width: 576px) { + .bodywebsite .post-minimal { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + .bodywebsite .post-minimal .post-left { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; + width: 220px; + } + .bodywebsite .post-minimal .post-image { + position: relative; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + overflow: hidden; + } + .bodywebsite .post-minimal .post-image img { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + height: auto; + width: auto; + min-height: 100%; + min-width: 100%; + z-index: 1; + } + .bodywebsite .post-minimal .post-body { + padding: 30px 24px 30px 27px; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + } +} +@media (min-width: 1200px) { + .bodywebsite .post-minimal .post-body { + padding: 40px 26px 40px 50px; + } +} +.bodywebsite .post-preview { + max-width: 320px; +} +.bodywebsite .post-preview a { + display: block; +} +.bodywebsite .post-preview .post-image, +.bodywebsite .post-preview .post-image img { + border-radius: 5px; +} +.bodywebsite .post-preview .post-image img { + width: auto; +} +.bodywebsite .post-preview .post-header { + line-height: 1.5; + color: #000; + transition: .33s all ease; +} +.bodywebsite .post-preview .list-meta > li { + display: inline-block; + font-size: 12px; + font-style: italic; + color: #9b9b9b; +} +.bodywebsite .post-preview .list-meta > li:not(:last-child):after { + content: '/'; +} +.bodywebsite .post-preview:hover .post-header { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .post-preview * + .post-meta { + margin-top: 5px; +} +.bodywebsite .post-preview.post-preview-inverse > li { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .post-preview.post-preview-inverse .post-header { + color: #fff; +} +.bodywebsite .post-preview.post-preview-inverse:hover .post-header { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .blog-timeline > dt { + font: 700 25px "Roboto", Helvetica, Arial, sans-serif; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .blog-timeline > dd { + margin-top: 20px; +} +@media (min-width: 768px) { + .bodywebsite .blog-timeline { + word-spacing: 0; + white-space: nowrap; + } + .bodywebsite .blog-timeline > * { + display: inline-block; + } + .bodywebsite .blog-timeline > dt { + min-width: 65px; + padding-right: 20px; + margin-top: -0.15em; + vertical-align: top; + } + .bodywebsite .blog-timeline > dd { + margin-top: 0; + width: calc(0%); + } +} +@media (min-width: 992px) { + .bodywebsite .blog-timeline > dt { + min-width: 100px; + padding-right: 30px; + } +} +.bodywebsite .post-boxed { + max-width: 330px; + margin-right: auto; + margin-left: auto; + padding-top: 10px; + text-align: center; + box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); + transition: .3s all ease; +} +.bodywebsite .post-boxed-img-wrap a { + display: block; +} +.bodywebsite .post-boxed-title { + font: 500 18px/28px "Roboto", Helvetica, Arial, sans-serif; +} +.bodywebsite .post-boxed-title { + color: #000; +} +.bodywebsite .post-boxed-title a { + display: inline; + color: #000; +} +.bodywebsite .post-boxed-title a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .post-boxed img { + max-width: 75%; +} +.bodywebsite .post-boxed .list-inline { + font-size: 12px; + letter-spacing: .05em; +} +.bodywebsite .post-boxed-caption { + padding: 20px; +} +.bodywebsite #sectionteam .post-boxed-caption { + height: 140px; +} +.bodywebsite .post-boxed .post-boxed-title + * { + margin-top: 5px; +} +@media (min-width: 768px) { + .bodywebsite .post-boxed .post-boxed-caption { + padding: 28px 42px 36px 28px; + } +} +@media (min-width: 1200px) { + .bodywebsite .post-boxed:hover { + box-shadow: -3px 5px 12px 0px rgba(65, 65, 65, 0.16); + } +} +.bodywebsite .post-minimal .post-image { + height: 100%; +} +.bodywebsite .post-minimal .post-image img { + width: 100%; + height: 100%; + object-fit: cover; +} +.bodywebsite * + .post-blockquote { + margin-top: 30px; +} +.bodywebsite .post-blockquote + * { + margin-top: 30px; +} +@media (min-width: 768px) { + .bodywebsite * + .post-blockquote { + margin-top: 50px; + } + .bodywebsite .post-blockquote + * { + margin-top: 50px; + } +} +.bodywebsite * + .post-comment-block, +.bodywebsite * + .post-comment-form { + margin-top: 40px; +} +.bodywebsite .post-comment-form h4 + * { + margin-top: 15px; +} +.bodywebsite .comment figure, +.bodywebsite .comment figure img { + border-radius: 50%; + max-width: 71px; +} +.bodywebsite .comment time { + font-size: 12px; + line-height: 1; + color: #9b9b9b; +} +.bodywebsite .comment .user { + font-size: 16px; + line-height: 1.33333; + font-weight: 700; + text-transform: uppercase; + color: #000; +} +.bodywebsite .comment .list-icon-meta { + position: relative; + transform: translateY(0); + margin-bottom: 0; +} +.bodywebsite .comment .list-icon-meta > * { + margin-top: 0; +} +.bodywebsite .comment .list-icon-meta > *:not(:last-child) { + margin-right: 8px; +} +.bodywebsite .comment .list-icon-meta > li { + display: inline-block; +} +.bodywebsite .comment .list-icon-meta li { + font-size: 12px; + line-height: 1; + font-weight: 400; +} +.bodywebsite .comment .comment-body { + padding: 17px 22px; + border: 1px solid #dedede; + border-radius: 7px; +} +.bodywebsite .comment .comment-body-header { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + position: relative; + transform: translateY(-5px); + margin-bottom: -5px; +} +.bodywebsite .comment .comment-body-header > * { + margin-top: 5px; +} +.bodywebsite .comment .comment-body-header > *:not(:last-child) { + margin-right: 5px; +} +@media (min-width: 768px) { + .bodywebsite .comment .comment-body-header { + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } +} +.bodywebsite .comment .comment-body-header > * { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} +.bodywebsite .comment .comment-meta { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + position: relative; + transform: translateY(-5px); + margin-bottom: -5px; +} +.bodywebsite .comment .comment-meta > * { + margin-top: 5px; +} +.bodywebsite .comment .comment-meta > *:not(:last-child) { + margin-right: 10px; +} +@media (min-width: 768px) { + .bodywebsite .comment .comment-meta > * { + display: inline-block; + vertical-align: baseline; + } +} +.bodywebsite .comment .comment-body-text { + margin-top: 10px; +} +.bodywebsite .comment-minimal .author { + font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; + text-transform: uppercase; + letter-spacing: -0.025em; + color: #000; +} +.bodywebsite .comment-minimal * + .comment-body { + margin-top: 10px; +} +.bodywebsite * + .comment-minimal { + margin-top: 35px; +} +.bodywebsite .comment-group-reply { + padding-left: 12%; +} +.bodywebsite .comment + * { + margin-top: 21px; +} +.bodywebsite * + .comment-group { + margin-top: 30px; +} +@media (min-width: 768px) { + .bodywebsite .comment > .unit > .unit-left { + margin-top: 16px; + } + .bodywebsite * + .comment-minimal { + margin-top: 45px; + } +} +@media (min-width: 992px) { + .bodywebsite * + .post-comment { + margin-top: 80px; + } +} +.bodywebsite .page-title { + text-align: center; +} +.bodywebsite .page-title > * { + letter-spacing: 0; + text-transform: uppercase; +} +.bodywebsite .page-title .page-title-inner { + position: relative; + display: inline-block; +} +.bodywebsite .page-title .page-title-left, +.bodywebsite .page-title .page-title-right { + position: absolute; + top: 50%; + width: auto; + overflow: hidden; + white-space: nowrap; + vertical-align: middle; +} +.bodywebsite .page-title .page-title-left *, +.bodywebsite .page-title .page-title-right * { + display: inline; + white-space: nowrap; +} +.bodywebsite .page-title .page-title-left { + left: 0; + text-align: right; + transform: translate(-100%, -50%); +} +.bodywebsite .page-title .page-title-left * { + padding-right: .85em; +} +.bodywebsite .page-title .page-title-left *:nth-last-child(odd) { + color: rgba(255, 255, 255, 0.1); +} +.bodywebsite .page-title .page-title-left *:nth-last-child(even) { + color: rgba(255, 255, 255, 0.2); +} +.bodywebsite .page-title .page-title-right { + right: 0; + text-align: left; + transform: translate(100%, -50%); +} +.bodywebsite .page-title .page-title-right * { + padding-left: .85em; +} +.bodywebsite .page-title .page-title-right *:nth-child(odd) { + color: rgba(255, 255, 255, 0.1); +} +.bodywebsite .page-title .page-title-right *:nth-child(even) { + color: rgba(255, 255, 255, 0.2); +} +.bodywebsite .page-title-wrap { + background: #000; + background-attachment: fixed; + -webkit-background-size: cover; + background-size: cover; + background-position: center 80%; +} +@media (min-width: 768px) { + .bodywebsite .page-title { + text-align: left; + } +} +.bodywebsite .preloader { + position: fixed; + left: 0; + top: 0; + bottom: 0; + right: 0; + z-index: 10000; + display: flex; + justify-content: center; + align-items: center; + padding: 20px; + background: #fff; + transition: .3s all ease; +} +.bodywebsite .preloader.loaded { + opacity: 0; + visibility: hidden; +} +.bodywebsite .preloader-body { + text-align: center; +} +.bodywebsite .preloader-body p { + position: relative; + right: -8px; +} +.bodywebsite .cssload-container { + width: 100%; + height: 36px; + text-align: center; +} +.bodywebsite .cssload-speeding-wheel { + width: 36px; + height: 36px; + margin: 0 auto; + border: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-radius: 50%; + border-left-color: transparent; + border-bottom-color: transparent; + animation: cssload-spin 0.88s infinite linear; +} +@-webkit-keyframes cssload-spin { + 100% { + transform: rotate(360deg); + } +} +@keyframes cssload-spin { + 100% { + transform: rotate(360deg); + } +} +.bodywebsite .pricing-table { + overflow: hidden; + background: #fff; + text-align: center; + box-shadow: -1px 2px 5px 0 rgba(65, 65, 65, 0.12); +} +.bodywebsite .pricing-table-header { + font-size: 18px; + text-transform: uppercase; + letter-spacing: .05em; + color: #464a4d; +} +.bodywebsite .pricing-table-body { + padding: 35px 30px; +} +.bodywebsite .pricing-table-label { + padding: 17px 15px; + text-align: center; + background: #3a3c3e; +} +.bodywebsite .pricing-table-label p { + font: 700 14px "Roboto", Helvetica, Arial, sans-serif; + letter-spacing: .05em; + text-transform: uppercase; + color: #fff; +} +.bodywebsite .pricing-table .pricing-list { + font-size: 16px; + font-weight: 300; + color: #00030a; +} +.bodywebsite .pricing-table .pricing-list span { + display: inline-block; + margin-right: .25em; +} +.bodywebsite .pricing-table .pricing-list > li + li { + margin-top: 12px; +} +.bodywebsite .pricing-table * + .price-object { + margin-top: 22px; +} +.bodywebsite .pricing-table * + .pricing-list { + margin-top: 22px; +} +.bodywebsite .pricing-object { + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-weight: 900; + font-size: 0; + line-height: 0; + color: #000; +} +.bodywebsite .pricing-object > * { + margin-top: 0; +} +.bodywebsite .pricing-object .price { + font-family: Helvetica, Arial, sans-serif; + font-weight: 900; +} +.bodywebsite .pricing-object .small { + position: relative; + font: 700 10px "Roboto", Helvetica, Arial, sans-serif; + color: inherit; + text-transform: uppercase; +} +.bodywebsite .pricing-object .small-middle { + vertical-align: middle; +} +.bodywebsite .pricing-object .small-bottom { + vertical-align: bottom; +} +.bodywebsite .pricing-object-sm { + font-size: 32px; + line-height: .8; +} +.bodywebsite .pricing-object-sm .small { + font-size: 12px; +} +.bodywebsite .pricing-object-sm .small-middle { + margin-right: 3px; +} +.bodywebsite .pricing-object-sm .small-bottom { + margin-left: 1px; + vertical-align: bottom; +} +.bodywebsite .price-irrelevant { + color: #9f9f9f; + text-decoration: line-through; +} +.bodywebsite .pricing-object-md { + font-size: 53px; + line-height: 1; +} +.bodywebsite .pricing-object-md .price { + line-height: .5; +} +.bodywebsite .pricing-object-md .small { + font-size: 17px; + font-weight: 400; +} +.bodywebsite .pricing-object-md .small-middle { + font-size: 23px; +} +.bodywebsite .pricing-object-md .small-bottom { + bottom: -0.25em; +} +.bodywebsite .pricing-object-lg, +.bodywebsite .pricing-object-xl { + font-size: 64px; + line-height: .7; +} +.bodywebsite .pricing-object-lg .small, +.bodywebsite .pricing-object-xl .small { + font-size: 9px; +} +.bodywebsite .pricing-object-lg .small-top, +.bodywebsite .pricing-object-xl .small-top { + top: 11px; + margin-right: 5px; + font-size: 14px; + vertical-align: top; + font-weight: 700; +} +.bodywebsite .pricing-object-lg .small-bottom, +.bodywebsite .pricing-object-xl .small-bottom { + bottom: -10px; + margin-left: -2px; + font-weight: 700; + vertical-align: bottom; +} +.bodywebsite .price-current .small { + position: relative; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-weight: 400; +} +.bodywebsite .price-current .small-middle { + vertical-align: middle; + top: -0.3em; +} +.bodywebsite .price-current .small-bottom { + top: .3em; +} +@media (min-width: 768px) { + .bodywebsite .pricing-object-lg { + font-size: 72px; + } + .bodywebsite .pricing-object-xl { + font-size: 54px; + } + .bodywebsite .pricing-object-xl .small-middle { + font-size: 30px; + } + .bodywebsite .pricing-object-xl .small-bottom { + font-size: 25px; + } +} +@media (min-width: 992px) { + .bodywebsite .pricing-object-xl { + font-size: 76px; + } +} +.bodywebsite .panel.bg-accent.bg-default-outline-btn.text-center { + background: transparent; +} +.bodywebsite .product .product-label { + padding: 7px 11px; + min-width: 90px; + font: 700 12px/16px "Roboto", Helvetica, Arial, sans-serif; + letter-spacing: .05em; + text-align: center; + border-radius: 0 0 7px 7px; +} +.bodywebsite .product .product-rating { + position: relative; + transform: translateY(-2px); + margin-bottom: -2px; +} +.bodywebsite .product .product-rating > * { + margin-top: 2px; +} +.bodywebsite .product .product-rating > *:not(:last-child) { + margin-right: 5px; +} +.bodywebsite .product .product-rating > * { + display: inline-block; + vertical-align: middle; +} +.bodywebsite .product .product-color { + display: inline-block; + width: 24px; + height: 24px; + font-size: 0; + line-height: 0; + border-radius: 50%; + background: #000; + vertical-align: middle; +} +.bodywebsite .product .product-size { + font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; + color: #000; +} +.bodywebsite .product * + .product-brand, +.bodywebsite .product .product-brand + * { + margin-top: 0; +} +.bodywebsite .one-screen-page .page { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} +.bodywebsite .one-screen-page .page-inner { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + min-height: 100vh; + text-align: center; +} +.bodywebsite .one-screen-page .page-inner, +.bodywebsite .one-screen-page .page-inner > * { + width: 100%; +} +.bodywebsite .one-screen-page .page-head, +.bodywebsite .one-screen-page .page-foot { + padding: 0; + background: transparent; +} +.bodywebsite .one-screen-page .page-head-inner { + padding: calc(5em) 0 calc(3em); +} +.bodywebsite .one-screen-page .page-content { + padding: calc(5em) 0; +} +.bodywebsite .one-screen-page .page-foot-inner { + padding: calc(3em) 0 calc(5em); +} +.bodywebsite .one-screen-page .rights { + color: #fff; +} +.bodywebsite .one-screen-page .rights a, +.bodywebsite .one-screen-page .rights a:active, +.bodywebsite .one-screen-page .rights a:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .one-screen-page .rights a:hover { + color: #ababab; +} +@media (min-width: 576px) { + .bodywebsite .one-screen-page .page-inner { + text-align: left; + } +} +@media (min-width: 1800px) { + .bodywebsite .one-screen-page .page-head-inner { + padding: 50px 0 10px; + } + .bodywebsite .one-screen-page .page-content { + padding: 30px 0; + } + .bodywebsite .one-screen-page .page-foot-inner { + padding: 50px 0 23px; + } +} +.bodywebsite .ie-10 .one-screen-page, +.bodywebsite .ie-11 .one-screen-page { + overflow-x: hidden; + overflow-y: auto; +} +.bodywebsite .inset-left-0 { + padding-left: 0; +} +.bodywebsite .inset-left-10 { + padding-left: 10px; +} +.bodywebsite .inset-left-15 { + padding-left: 15px; +} +.bodywebsite .inset-left-20 { + padding-left: 20px; +} +.bodywebsite .inset-left-30 { + padding-left: 30px; +} +.bodywebsite .inset-left-40 { + padding-left: 40px; +} +.bodywebsite .inset-left-50 { + padding-left: 50px; +} +.bodywebsite .inset-left-60 { + padding-left: 60px; +} +.bodywebsite .inset-left-70 { + padding-left: 70px; +} +.bodywebsite .inset-left-85 { + padding-left: 85px; +} +.bodywebsite .inset-left-100 { + padding-left: 100px; +} +@media (min-width: 576px) { + .bodywebsite .inset-sm-left-0 { + padding-left: 0; + } + .bodywebsite .inset-sm-left-10 { + padding-left: 10px; + } + .bodywebsite .inset-sm-left-15 { + padding-left: 15px; + } + .bodywebsite .inset-sm-left-20 { + padding-left: 20px; + } + .bodywebsite .inset-sm-left-30 { + padding-left: 30px; + } + .bodywebsite .inset-sm-left-40 { + padding-left: 40px; + } + .bodywebsite .inset-sm-left-50 { + padding-left: 50px; + } + .bodywebsite .inset-sm-left-60 { + padding-left: 60px; + } + .bodywebsite .inset-sm-left-70 { + padding-left: 70px; + } + .bodywebsite .inset-sm-left-85 { + padding-left: 85px; + } + .bodywebsite .inset-sm-left-100 { + padding-left: 100px; + } +} +@media (min-width: 768px) { + .bodywebsite .inset-md-left-0 { + padding-left: 0; + } + .bodywebsite .inset-md-left-10 { + padding-left: 10px; + } + .bodywebsite .inset-md-left-15 { + padding-left: 15px; + } + .bodywebsite .inset-md-left-20 { + padding-left: 20px; + } + .bodywebsite .inset-md-left-30 { + padding-left: 30px; + } + .bodywebsite .inset-md-left-40 { + padding-left: 40px; + } + .bodywebsite .inset-md-left-50 { + padding-left: 50px; + } + .bodywebsite .inset-md-left-60 { + padding-left: 60px; + } + .bodywebsite .inset-md-left-70 { + padding-left: 70px; + } + .bodywebsite .inset-md-left-85 { + padding-left: 85px; + } + .bodywebsite .inset-md-left-100 { + padding-left: 100px; + } +} +@media (min-width: 992px) { + .bodywebsite .inset-lg-left-0 { + padding-left: 0; + } + .bodywebsite .inset-lg-left-10 { + padding-left: 10px; + } + .bodywebsite .inset-lg-left-15 { + padding-left: 15px; + } + .bodywebsite .inset-lg-left-20 { + padding-left: 20px; + } + .bodywebsite .inset-lg-left-30 { + padding-left: 30px; + } + .bodywebsite .inset-lg-left-40 { + padding-left: 40px; + } + .bodywebsite .inset-lg-left-50 { + padding-left: 50px; + } + .bodywebsite .inset-lg-left-60 { + padding-left: 60px; + } + .bodywebsite .inset-lg-left-70 { + padding-left: 70px; + } + .bodywebsite .inset-lg-left-85 { + padding-left: 85px; + } + .bodywebsite .inset-lg-left-100 { + padding-left: 100px; + } +} +@media (min-width: 1200px) { + .bodywebsite .inset-xl-left-0 { + padding-left: 0; + } + .bodywebsite .inset-xl-left-10 { + padding-left: 10px; + } + .bodywebsite .inset-xl-left-15 { + padding-left: 15px; + } + .bodywebsite .inset-xl-left-20 { + padding-left: 20px; + } + .bodywebsite .inset-xl-left-30 { + padding-left: 30px; + } + .bodywebsite .inset-xl-left-40 { + padding-left: 40px; + } + .bodywebsite .inset-xl-left-50 { + padding-left: 50px; + } + .bodywebsite .inset-xl-left-60 { + padding-left: 60px; + } + .bodywebsite .inset-xl-left-70 { + padding-left: 70px; + } + .bodywebsite .inset-xl-left-85 { + padding-left: 85px; + } + .bodywebsite .inset-xl-left-100 { + padding-left: 100px; + } +} +@media (min-width: 1800px) { + .bodywebsite .inset-xxl-left-0 { + padding-left: 0; + } + .bodywebsite .inset-xxl-left-10 { + padding-left: 10px; + } + .bodywebsite .inset-xxl-left-15 { + padding-left: 15px; + } + .bodywebsite .inset-xxl-left-20 { + padding-left: 20px; + } + .bodywebsite .inset-xxl-left-30 { + padding-left: 30px; + } + .bodywebsite .inset-xxl-left-40 { + padding-left: 40px; + } + .bodywebsite .inset-xxl-left-50 { + padding-left: 50px; + } + .bodywebsite .inset-xxl-left-60 { + padding-left: 60px; + } + .bodywebsite .inset-xxl-left-70 { + padding-left: 70px; + } + .bodywebsite .inset-xxl-left-85 { + padding-left: 85px; + } + .bodywebsite .inset-xxl-left-100 { + padding-left: 100px; + } +} +.bodywebsite .inset-right-0 { + padding-right: 0; +} +.bodywebsite .inset-right-10 { + padding-right: 10px; +} +.bodywebsite .inset-right-15 { + padding-right: 15px; +} +.bodywebsite .inset-right-20 { + padding-right: 20px; +} +.bodywebsite .inset-right-30 { + padding-right: 30px; +} +.bodywebsite .inset-right-40 { + padding-right: 40px; +} +.bodywebsite .inset-right-50 { + padding-right: 50px; +} +.bodywebsite .inset-right-60 { + padding-right: 60px; +} +.bodywebsite .inset-right-70 { + padding-right: 70px; +} +.bodywebsite .inset-right-85 { + padding-right: 85px; +} +.bodywebsite .inset-right-100 { + padding-right: 100px; +} +@media (min-width: 576px) { + .bodywebsite .inset-sm-right-0 { + padding-right: 0; + } + .bodywebsite .inset-sm-right-10 { + padding-right: 10px; + } + .bodywebsite .inset-sm-right-15 { + padding-right: 15px; + } + .bodywebsite .inset-sm-right-20 { + padding-right: 20px; + } + .bodywebsite .inset-sm-right-30 { + padding-right: 30px; + } + .bodywebsite .inset-sm-right-40 { + padding-right: 40px; + } + .bodywebsite .inset-sm-right-50 { + padding-right: 50px; + } + .bodywebsite .inset-sm-right-60 { + padding-right: 60px; + } + .bodywebsite .inset-sm-right-70 { + padding-right: 70px; + } + .bodywebsite .inset-sm-right-85 { + padding-right: 85px; + } + .bodywebsite .inset-sm-right-100 { + padding-right: 100px; + } +} +@media (min-width: 768px) { + .bodywebsite .inset-md-right-0 { + padding-right: 0; + } + .bodywebsite .inset-md-right-10 { + padding-right: 10px; + } + .bodywebsite .inset-md-right-15 { + padding-right: 15px; + } + .bodywebsite .inset-md-right-20 { + padding-right: 20px; + } + .bodywebsite .inset-md-right-30 { + padding-right: 30px; + } + .bodywebsite .inset-md-right-40 { + padding-right: 40px; + } + .bodywebsite .inset-md-right-50 { + padding-right: 50px; + } + .bodywebsite .inset-md-right-60 { + padding-right: 60px; + } + .bodywebsite .inset-md-right-70 { + padding-right: 70px; + } + .bodywebsite .inset-md-right-85 { + padding-right: 85px; + } + .bodywebsite .inset-md-right-100 { + padding-right: 100px; + } +} +@media (min-width: 992px) { + .bodywebsite .inset-lg-right-0 { + padding-right: 0; + } + .bodywebsite .inset-lg-right-10 { + padding-right: 10px; + } + .bodywebsite .inset-lg-right-15 { + padding-right: 15px; + } + .bodywebsite .inset-lg-right-20 { + padding-right: 20px; + } + .bodywebsite .inset-lg-right-30 { + padding-right: 30px; + } + .bodywebsite .inset-lg-right-40 { + padding-right: 40px; + } + .bodywebsite .inset-lg-right-50 { + padding-right: 50px; + } + .bodywebsite .inset-lg-right-60 { + padding-right: 60px; + } + .bodywebsite .inset-lg-right-70 { + padding-right: 70px; + } + .bodywebsite .inset-lg-right-85 { + padding-right: 85px; + } + .bodywebsite .inset-lg-right-100 { + padding-right: 100px; + } +} +@media (min-width: 1200px) { + .bodywebsite .inset-xl-right-0 { + padding-right: 0; + } + .bodywebsite .inset-xl-right-10 { + padding-right: 10px; + } + .bodywebsite .inset-xl-right-15 { + padding-right: 15px; + } + .bodywebsite .inset-xl-right-20 { + padding-right: 20px; + } + .bodywebsite .inset-xl-right-30 { + padding-right: 30px; + } + .bodywebsite .inset-xl-right-40 { + padding-right: 40px; + } + .bodywebsite .inset-xl-right-50 { + padding-right: 50px; + } + .bodywebsite .inset-xl-right-60 { + padding-right: 60px; + } + .bodywebsite .inset-xl-right-70 { + padding-right: 70px; + } + .bodywebsite .inset-xl-right-85 { + padding-right: 85px; + } + .bodywebsite .inset-xl-right-100 { + padding-right: 100px; + } +} +@media (min-width: 1800px) { + .bodywebsite .inset-xxl-right-0 { + padding-right: 0; + } + .bodywebsite .inset-xxl-right-10 { + padding-right: 10px; + } + .bodywebsite .inset-xxl-right-15 { + padding-right: 15px; + } + .bodywebsite .inset-xxl-right-20 { + padding-right: 20px; + } + .bodywebsite .inset-xxl-right-30 { + padding-right: 30px; + } + .bodywebsite .inset-xxl-right-40 { + padding-right: 40px; + } + .bodywebsite .inset-xxl-right-50 { + padding-right: 50px; + } + .bodywebsite .inset-xxl-right-60 { + padding-right: 60px; + } + .bodywebsite .inset-xxl-right-70 { + padding-right: 70px; + } + .bodywebsite .inset-xxl-right-85 { + padding-right: 85px; + } + .bodywebsite .inset-xxl-right-100 { + padding-right: 100px; + } +} +.bodywebsite .container + .container { + margin-top: 60px; +} +.bodywebsite h3.section-title { + color: #000; +} +.bodywebsite h4 + .section-title { + margin-top: 2px; +} +.bodywebsite h4 + .comment-list { + margin-top: 30px; +} +.bodywebsite h3 + p { + margin-top: 15px; +} +.bodywebsite h3 + p.h4 { + margin-top: 2px; +} +.bodywebsite h3 + .row { + margin-top: 40px; +} +.bodywebsite h3 + * { + margin-top: 40px; +} +.bodywebsite .row + .row { + margin-top: 60px; +} +.bodywebsite * + .row.list-md-dashed { + margin-top: 60px; +} +.bodywebsite .row + .button-block { + margin-top: 60px; +} +.bodywebsite .slick-slider + .slick-slider.carousel-parent { + margin-top: 35px; +} +.bodywebsite .quote-left + .button-block { + margin-top: 22px; +} +.bodywebsite .aside-title + * { + margin-top: 22px; +} +.bodywebsite * + .button-group { + margin-top: 25px; +} +html .bodywebsite .page .offset-top-0 { + margin-top: 0; +} +html .bodywebsite .page .offset-top-2 { + margin-top: 2px; +} +html .bodywebsite .page .offset-top-5 { + margin-top: 5px; +} +html .bodywebsite .page .offset-top-10 { + margin-top: 10px; +} +html .bodywebsite .page .offset-top-15 { + margin-top: 15px; +} +html .bodywebsite .page .offset-top-22 { + margin-top: 22px; +} +html .bodywebsite .page .offset-top-27 { + margin-top: 27px; +} +html .bodywebsite .page .offset-top-30 { + margin-top: 30px; +} +html .bodywebsite .page .offset-top-35 { + margin-top: 35px; +} +html .bodywebsite .page .offset-top-40 { + margin-top: 40px; +} +html .bodywebsite .page .offset-top-45 { + margin-top: 45px; +} +html .bodywebsite .page .offset-top-50 { + margin-top: 50px; +} +html .bodywebsite .page .offset-top-60 { + margin-top: 60px; +} +html .bodywebsite .page .offset-top-75 { + margin-top: 75px; +} +html .bodywebsite .page .offset-top-90 { + margin-top: 90px; +} +html .bodywebsite .page .offset-top-100 { + margin-top: 100px; +} +html .bodywebsite .page .offset-top-120 { + margin-top: 120px; +} +@media (min-width: 576px) { + html .bodywebsite .page .offset-sm-top-0 { + margin-top: 0; + } + html .bodywebsite .page .offset-sm-top-2 { + margin-top: 2px; + } + html .bodywebsite .page .offset-sm-top-5 { + margin-top: 5px; + } + html .bodywebsite .page .offset-sm-top-10 { + margin-top: 10px; + } + html .bodywebsite .page .offset-sm-top-15 { + margin-top: 15px; + } + html .bodywebsite .page .offset-sm-top-22 { + margin-top: 22px; + } + html .bodywebsite .page .offset-sm-top-27 { + margin-top: 27px; + } + html .bodywebsite .page .offset-sm-top-30 { + margin-top: 30px; + } + html .bodywebsite .page .offset-sm-top-35 { + margin-top: 35px; + } + html .bodywebsite .page .offset-sm-top-40 { + margin-top: 40px; + } + html .bodywebsite .page .offset-sm-top-45 { + margin-top: 45px; + } + html .bodywebsite .page .offset-sm-top-50 { + margin-top: 50px; + } + html .bodywebsite .page .offset-sm-top-60 { + margin-top: 60px; + } + html .bodywebsite .page .offset-sm-top-75 { + margin-top: 75px; + } + html .bodywebsite .page .offset-sm-top-90 { + margin-top: 90px; + } + html .bodywebsite .page .offset-sm-top-100 { + margin-top: 100px; + } + html .bodywebsite .page .offset-sm-top-120 { + margin-top: 120px; + } +} +@media (min-width: 768px) { + html .bodywebsite .page .offset-md-top-0 { + margin-top: 0; + } + html .bodywebsite .page .offset-md-top-2 { + margin-top: 2px; + } + html .bodywebsite .page .offset-md-top-5 { + margin-top: 5px; + } + html .bodywebsite .page .offset-md-top-10 { + margin-top: 10px; + } + html .bodywebsite .page .offset-md-top-15 { + margin-top: 15px; + } + html .bodywebsite .page .offset-md-top-22 { + margin-top: 22px; + } + html .bodywebsite .page .offset-md-top-27 { + margin-top: 27px; + } + html .bodywebsite .page .offset-md-top-30 { + margin-top: 30px; + } + html .bodywebsite .page .offset-md-top-35 { + margin-top: 35px; + } + html .bodywebsite .page .offset-md-top-40 { + margin-top: 40px; + } + html .bodywebsite .page .offset-md-top-45 { + margin-top: 45px; + } + html .bodywebsite .page .offset-md-top-50 { + margin-top: 50px; + } + html .bodywebsite .page .offset-md-top-60 { + margin-top: 60px; + } + html .bodywebsite .page .offset-md-top-75 { + margin-top: 75px; + } + html .bodywebsite .page .offset-md-top-90 { + margin-top: 90px; + } + html .bodywebsite .page .offset-md-top-100 { + margin-top: 100px; + } + html .bodywebsite .page .offset-md-top-120 { + margin-top: 120px; + } +} +@media (min-width: 992px) { + html .bodywebsite .page .offset-lg-top-0 { + margin-top: 0; + } + html .bodywebsite .page .offset-lg-top-2 { + margin-top: 2px; + } + html .bodywebsite .page .offset-lg-top-5 { + margin-top: 5px; + } + html .bodywebsite .page .offset-lg-top-10 { + margin-top: 10px; + } + html .bodywebsite .page .offset-lg-top-15 { + margin-top: 15px; + } + html .bodywebsite .page .offset-lg-top-22 { + margin-top: 22px; + } + html .bodywebsite .page .offset-lg-top-27 { + margin-top: 27px; + } + html .bodywebsite .page .offset-lg-top-30 { + margin-top: 30px; + } + html .bodywebsite .page .offset-lg-top-35 { + margin-top: 35px; + } + html .bodywebsite .page .offset-lg-top-40 { + margin-top: 40px; + } + html .bodywebsite .page .offset-lg-top-45 { + margin-top: 45px; + } + html .bodywebsite .page .offset-lg-top-50 { + margin-top: 50px; + } + html .bodywebsite .page .offset-lg-top-60 { + margin-top: 60px; + } + html .bodywebsite .page .offset-lg-top-75 { + margin-top: 75px; + } + html .bodywebsite .page .offset-lg-top-90 { + margin-top: 90px; + } + html .bodywebsite .page .offset-lg-top-100 { + margin-top: 100px; + } + html .bodywebsite .page .offset-lg-top-120 { + margin-top: 120px; + } +} +@media (min-width: 1200px) { + html .bodywebsite .page .offset-xl-top-0 { + margin-top: 0; + } + html .bodywebsite .page .offset-xl-top-2 { + margin-top: 2px; + } + html .bodywebsite .page .offset-xl-top-5 { + margin-top: 5px; + } + html .bodywebsite .page .offset-xl-top-10 { + margin-top: 10px; + } + html .bodywebsite .page .offset-xl-top-15 { + margin-top: 15px; + } + html .bodywebsite .page .offset-xl-top-22 { + margin-top: 22px; + } + html .bodywebsite .page .offset-xl-top-27 { + margin-top: 27px; + } + html .bodywebsite .page .offset-xl-top-30 { + margin-top: 30px; + } + html .bodywebsite .page .offset-xl-top-35 { + margin-top: 35px; + } + html .bodywebsite .page .offset-xl-top-40 { + margin-top: 40px; + } + html .bodywebsite .page .offset-xl-top-45 { + margin-top: 45px; + } + html .bodywebsite .page .offset-xl-top-50 { + margin-top: 50px; + } + html .bodywebsite .page .offset-xl-top-60 { + margin-top: 60px; + } + html .bodywebsite .page .offset-xl-top-75 { + margin-top: 75px; + } + html .bodywebsite .page .offset-xl-top-90 { + margin-top: 90px; + } + html .bodywebsite .page .offset-xl-top-100 { + margin-top: 100px; + } + html .bodywebsite .page .offset-xl-top-120 { + margin-top: 120px; + } +} +@media (min-width: 1800px) { + html .bodywebsite .page .offset-xxl-top-0 { + margin-top: 0; + } + html .bodywebsite .page .offset-xxl-top-2 { + margin-top: 2px; + } + html .bodywebsite .page .offset-xxl-top-5 { + margin-top: 5px; + } + html .bodywebsite .page .offset-xxl-top-10 { + margin-top: 10px; + } + html .bodywebsite .page .offset-xxl-top-15 { + margin-top: 15px; + } + html .bodywebsite .page .offset-xxl-top-22 { + margin-top: 22px; + } + html .bodywebsite .page .offset-xxl-top-27 { + margin-top: 27px; + } + html .bodywebsite .page .offset-xxl-top-30 { + margin-top: 30px; + } + html .bodywebsite .page .offset-xxl-top-35 { + margin-top: 35px; + } + html .bodywebsite .page .offset-xxl-top-40 { + margin-top: 40px; + } + html .bodywebsite .page .offset-xxl-top-45 { + margin-top: 45px; + } + html .bodywebsite .page .offset-xxl-top-50 { + margin-top: 50px; + } + html .bodywebsite .page .offset-xxl-top-60 { + margin-top: 60px; + } + html .bodywebsite .page .offset-xxl-top-75 { + margin-top: 75px; + } + html .bodywebsite .page .offset-xxl-top-90 { + margin-top: 90px; + } + html .bodywebsite .page .offset-xxl-top-100 { + margin-top: 100px; + } + html .bodywebsite .page .offset-xxl-top-120 { + margin-top: 120px; + } +} +@media (min-width: 768px) { + .bodywebsite .shift-sm-top-1 { + margin-top: -18px; + } +} +@media (min-width: 992px) { + .bodywebsite .shift-sm-top-1 { + margin-top: -23px; + } +} +@media (min-width: 992px) { + .bodywebsite .shift-md-top-1 { + margin-top: -33px; + } +} +@media (min-width: 1200px) { + .bodywebsite .shift-md-top-1 { + margin-top: -43px; + } +} +.bodywebsite .row-0 { + margin-bottom: 0px; +} +.bodywebsite .row-0:empty { + margin-bottom: 0; +} +.bodywebsite .row-0 > * { + margin-bottom: 0px; +} +.bodywebsite .row-15 { + margin-bottom: -15px; +} +.bodywebsite .row-15:empty { + margin-bottom: 0; +} +.bodywebsite .row-15 > * { + margin-bottom: 15px; +} +.bodywebsite .row-20 { + margin-bottom: -20px; +} +.bodywebsite .row-20:empty { + margin-bottom: 0; +} +.bodywebsite .row-20 > * { + margin-bottom: 20px; +} +.bodywebsite .row-30 { + margin-bottom: -30px; +} +.bodywebsite .row-30:empty { + margin-bottom: 0; +} +.bodywebsite .row-30 > * { + margin-bottom: 30px; +} +.bodywebsite .row-40 { + margin-bottom: -40px; +} +.bodywebsite .row-40:empty { + margin-bottom: 0; +} +.bodywebsite .row-40 > * { + margin-bottom: 40px; +} +.bodywebsite .row-50 { + margin-bottom: -50px; +} +.bodywebsite .row-50:empty { + margin-bottom: 0; +} +.bodywebsite .row-50 > * { + margin-bottom: 50px; +} +.bodywebsite .row-60 { + margin-bottom: -60px; +} +.bodywebsite .row-60:empty { + margin-bottom: 0; +} +.bodywebsite .row-60 > * { + margin-bottom: 60px; +} +@media (min-width: 576px) { + .bodywebsite .row-sm-50 { + margin-bottom: -50px; + } + .bodywebsite .row-sm-50:empty { + margin-bottom: 0; + } + .bodywebsite .row-sm-50 > * { + margin-bottom: 50px; + } + .bodywebsite .row-sm-0 { + margin-bottom: 0px; + } + .bodywebsite .row-sm-0:empty { + margin-bottom: 0; + } + .bodywebsite .row-sm-0 > * { + margin-bottom: 0px; + } +} +@media (min-width: 768px) { + .bodywebsite .row-md-60 { + margin-bottom: -60px; + } + .bodywebsite .row-md-60:empty { + margin-bottom: 0; + } + .bodywebsite .row-md-60 > * { + margin-bottom: 60px; + } +} +@media (min-width: 992px) { + .bodywebsite .row-md-30 { + margin-bottom: -30px; + } + .bodywebsite .row-md-30:empty { + margin-bottom: 0; + } + .bodywebsite .row-md-30 > * { + margin-bottom: 30px; + } +} +@media (min-width: 1200px) { + .bodywebsite .row-xl-100 { + margin-bottom: -100px; + } + .bodywebsite .row-xl-100:empty { + margin-bottom: 0; + } + .bodywebsite .row-xl-100 > * { + margin-bottom: 100px; + } + .bodywebsite .row-xl-90 { + margin-bottom: -90px; + } + .bodywebsite .row-xl-90:empty { + margin-bottom: 0; + } + .bodywebsite .row-xl-90 > * { + margin-bottom: 90px; + } +} +.bodywebsite .link { + display: inline-block; +} +.bodywebsite .link-inline { + font: inherit; + line-height: inherit; + text-decoration: underline; +} +.bodywebsite .link-underline, +.bodywebsite .link-underline:active, +.bodywebsite .link-underline:focus { + text-decoration: underline; +} +.bodywebsite .link-underline:hover { + text-decoration: none; +} +.bodywebsite .link-circle { + border-radius: 50%; +} +.bodywebsite .link-circle .icon, +.bodywebsite .link-circle .icon:before { + position: static; +} +.bodywebsite .link-bold { + font: 700 18px/22px "Roboto", Helvetica, Arial, sans-serif; +} +.bodywebsite .link-group { + white-space: nowrap; +} +.bodywebsite .link-group * { + vertical-align: middle; +} +.bodywebsite .link-group span { + display: inline-block; +} +.bodywebsite .link-group span + *, +.bodywebsite .link-group * + span { + margin-left: 5px; +} +.bodywebsite .link-group.link-group-animated .icon { + position: relative; + right: 0; + transition: .22s; +} +.bodywebsite .link-group.link-group-animated:hover .icon { + right: -5px; +} +.bodywebsite .link-group-baseline * { + vertical-align: baseline; +} +.bodywebsite .link-icon, +.bodywebsite .link-icon * { + vertical-align: middle; +} +.bodywebsite .link-icon .icon { + margin-right: 5px; +} +.bodywebsite .link-icon-mod .icon { + position: relative; + top: -3px; +} +.bodywebsite .link-image img { + width: auto; + transition: .44s all ease; + opacity: .5; +} +.bodywebsite .link-image:hover img { + opacity: 1; +} +.bodywebsite .link-image-wrap { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + min-height: 126px; +} +.bodywebsite * + .link-image-wrap { + margin-top: 13px; +} +.bodywebsite .page .link-primary-inline { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-primary-inline.active, +.bodywebsite .page .link-primary-inline:active, +.bodywebsite .page .link-primary-inline:focus { + color: #9b9b9b; +} +.bodywebsite .page .link-primary-inline.hover, +.bodywebsite .page .link-primary-inline:hover { + color: #42b294; +} +.bodywebsite .page .link-default, +.bodywebsite .page .link-default:active, +.bodywebsite .page .link-default:focus { + color: #9f9f9f; +} +.bodywebsite .page .link-default:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-primary, +.bodywebsite .page .link-primary:active, +.bodywebsite .page .link-primary:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-primary:hover { + color: #00030a; +} +.bodywebsite .page .link-primary-inverse, +.bodywebsite .page .link-primary-inverse:active, +.bodywebsite .page .link-primary-inverse:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-primary-inverse:hover { + color: #ddd; +} +.bodywebsite .page .link-primary-inverse-v2, +.bodywebsite .page .link-primary-inverse-v2:active, +.bodywebsite .page .link-primary-inverse-v2:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-primary-inverse-v2:hover { + color: #fff; +} +.bodywebsite .page .link-secondary, +.bodywebsite .page .link-secondary:active, +.bodywebsite .page .link-secondary:focus { + color: #00030a; +} +.bodywebsite .page .link-secondary:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-tundora, +.bodywebsite .page .link-tundora:active, +.bodywebsite .page .link-tundora:focus { + color: #414141; +} +.bodywebsite .page .link-tundora:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-tundora-inverse, +.bodywebsite .page .link-tundora-inverse:active, +.bodywebsite .page .link-tundora-inverse:focus { + color: #414141; +} +.bodywebsite .page .link-tundora-inverse:hover { + color: #fff; +} +.bodywebsite .page .link-secondary, +.bodywebsite .page .link-secondary:active, +.bodywebsite .page .link-secondary:focus { + color: #000; +} +.bodywebsite .page .link-secondary:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-gray-light, +.bodywebsite .page .link-gray-light:active, +.bodywebsite .page .link-gray-light:focus { + color: #dedede; +} +.bodywebsite .page .link-gray-light:hover { + color: #000; +} +.bodywebsite .page .link-white, +.bodywebsite .page .link-white:active, +.bodywebsite .page .link-white:focus { + color: #fff; +} +.bodywebsite .page .link-white:hover { + color: #fff; +} +.bodywebsite .page .link-black, +.bodywebsite .page .link-black:active, +.bodywebsite .page .link-black:focus { + color: #000; +} +.bodywebsite .page .link-black:hover { + color: maincolorbis) ? 'rgb(50, 120, 180)' : '#'.$website->maincolorbis; ?>; +} +.bodywebsite .page .link-black:hover { + text-decoration: underline; +} +.bodywebsite .page .link-gray-dark-filled, +.bodywebsite .page .link-gray-dark-filled:active, +.bodywebsite .page .link-gray-dark-filled:focus { + color: #fff; + background: #2a2b2b; +} +.bodywebsite .page .link-gray-dark-filled:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .page .link-shop { + width: 25px; + height: 25px; + font-size: 25px; + line-height: 25px; +} +.bodywebsite .page .link-shop, +.bodywebsite .page .link-shop:active, +.bodywebsite .page .link-shop:focus { + color: #00030a; +} +.bodywebsite .page .link-shop:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite ul, +.bodywebsite ol { + list-style: none; + padding: 0; + margin: 0; +} +.bodywebsite dl { + margin: 0; +} +.bodywebsite dt { + font-weight: inherit; +} +.bodywebsite .list > li + li { + margin-top: 5px; +} +.bodywebsite .list-xl > li + li { + margin-top: 44px; +} +.bodywebsite .list-inline { + margin-left: -5px; + margin-right: -5px; + vertical-align: baseline; +} +.bodywebsite .list-inline > li { + display: inline-block; + padding-left: 8px; + padding-right: 8px; +} +.bodywebsite .list-inline-xs { + margin-left: -6px; + margin-right: -6px; +} +.bodywebsite .list-inline-xs > li { + display: inline-block; + padding-left: 6px; + padding-right: 6px; +} +.bodywebsite .list-inline-sm { + margin-left: -10px; + margin-right: -10px; +} +.bodywebsite .list-inline-sm > li { + display: inline-block; + padding-left: 10px; + padding-right: 10px; +} +.bodywebsite .list-inline-md { + margin-left: -15px; + margin-right: -15px; +} +.bodywebsite .list-inline-md > li { + display: inline-block; + padding-left: 15px; + padding-right: 15px; +} +.bodywebsite .list-objects-inline { + margin-bottom: -4px; + margin-left: -22px; + transform: translateY(-4px); +} +.bodywebsite .list-objects-inline > *, +.bodywebsite .list-objects-inline > *:first-child { + display: inline-block; + vertical-align: middle; + margin-top: 4px; + margin-left: 22px; +} +.bodywebsite .list-objects-inline > li > * { + display: inline-block; + vertical-align: middle; +} +.bodywebsite .list-objects-inline > li > * + * { + margin-left: 5px; +} +.bodywebsite .list-terms dt + dd { + margin-top: 10px; +} +.bodywebsite .list-terms dd + dt { + margin-top: 31px; +} +.bodywebsite .list-terms-variant-1 dt { + font: 700 16px/22px "Roboto", Helvetica, Arial, sans-serif; + letter-spacing: -0.025em; + color: #000; +} +.bodywebsite .list-terms-variant-1 dt + dd { + margin-top: 18px; +} +.bodywebsite .list-terms-variant-1 dd + dt { + margin-top: 40px; +} +@media (min-width: 1200px) { + .bodywebsite .list-terms-variant-1 dt { + font-size: 24px; + line-height: 1.2; + } + .bodywebsite .list-terms-variant-1 dd + dt { + margin-top: 50px; + } +} +.bodywebsite .list-inline-dashed { + margin-left: -15px; +} +.bodywebsite .list-inline-dashed li { + padding-left: 15px; + padding-right: 10px; +} +.bodywebsite .list-inline-dashed li:after { + content: '|'; + position: relative; + right: -12.5px; + color: #e5e7e9; +} +.bodywebsite .list-inline-dashed li:last-child { + padding-right: 0; +} +.bodywebsite .list-inline-dashed li:last-child:after { + display: none; +} +@media (min-width: 992px) { + .bodywebsite .list-md-dashed > * { + position: relative; + } + .bodywebsite .list-md-dashed > *:after { + content: ''; + position: absolute; + font-weight: 100; + top: 0; + right: -6%; + height: 73px; + -webkit-transform: translateX(-50%) skew(-21deg); + transform: translateX(-50%) skew(-21deg); + width: 1px; + background: #48494a; + } +} +@media (min-width: 992px) and (min-width: 1200px) { + .bodywebsite .list-md-dashed > *:after { + right: -3%; + height: 120px; + } +} +@media (min-width: 992px) { + .bodywebsite .list-md-dashed > *:last-child::after { + display: none; + } +} +.bodywebsite .dl-inline { + vertical-align: middle; +} +.bodywebsite .dl-inline dt, +.bodywebsite .dl-inline dd { + display: inline-block; + vertical-align: middle; +} +.bodywebsite .dl-inline dt { + padding-right: 5px; +} +.bodywebsite .dl-inline dt:after { + content: ':'; +} +.bodywebsite .dl-inline .pricing-object-sm { + position: relative; + top: -5px; +} +.bodywebsite .list-terms-inline dt, +.bodywebsite .list-terms-inline dd { + display: inline-block; +} +.bodywebsite .list-terms-inline dt { + color: #000; +} +.bodywebsite .list-terms-inline dd { + color: #9f9f9f; +} +.bodywebsite .list-terms-inline dt:after { + content: ':'; +} +.bodywebsite .list-index { + counter-reset: li; +} +.bodywebsite .list-index > li .list-index-counter:before { + content: counter(li, decimal-leading-zero); + counter-increment: li; +} +.bodywebsite .list-marked li { + color: #000; + position: relative; + padding-left: 32px; +} +.bodywebsite .list-marked li:before { + position: absolute; + top: 1px; + left: 0; + content: '\e005'; + font-family: "fl-flat-icons-set-2"; + display: inline-block; + margin-right: 11px; + font-size: 13px; + line-height: inherit; + vertical-align: middle; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-marked li:not(:last-child):after { + content: ';'; +} +.bodywebsite .list-marked li:last-child:after { + content: '.'; +} +.bodywebsite .list-marked li + li { + margin-top: 11px; +} +.bodywebsite .list-marked-spacing-lg li { + padding-left: 26px; +} +@media (min-width: 992px) and (max-width: 1799px) { + .bodywebsite .list-marked li { + padding-left: 24px; + font-size: 13px; + } + .bodywebsite .list-marked li:before { + font-size: 11px; + } +} +.bodywebsite .list-marked-variant-2 > li > a { + position: relative; + display: inline-block; +} +.bodywebsite .list-marked-variant-2 > li > a:hover:before { + left: 4px; +} +.bodywebsite .list-marked-variant-2 > li + li { + margin-top: 14px; +} +.bodywebsite .list-ordered { + counter-reset: li; +} +.bodywebsite .list-ordered li { + color: #000; +} +.bodywebsite .list-ordered li:before { + display: inline-block; + margin-right: 13px; + width: 15px; + content: counter(li, decimal) "."; + counter-increment: li; +} +.bodywebsite .list-ordered li:not(:last-child):after { + content: ';'; +} +.bodywebsite .list-ordered li:last-child:after { + content: '.'; +} +.bodywebsite .list-ordered li + li { + margin-top: 11px; +} +.bodywebsite .list-tags > li { + display: inline-block; + font-style: italic; +} +.bodywebsite .list-tags > li a, +.bodywebsite .list-tags > li a:active, +.bodywebsite .list-tags > li a:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-tags > li a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-tags > li:after { + content: ','; + display: inline-block; + color: #f9f9f9; +} +.bodywebsite .list-tags > li:last-child:after { + display: none; +} +.bodywebsite .list-numbered { + counter-reset: li; +} +.bodywebsite .list-numbered > li { + position: relative; + padding-left: 30px; +} +.bodywebsite .list-numbered > li:before { + position: absolute; + top: 0; + left: 0; + content: counter(li, decimal) "."; + counter-increment: li; +} +.bodywebsite .list-numbered > li + li { + margin-top: 10px; +} +.bodywebsite .list-icon-pack { + margin-top: 6px; +} +.bodywebsite .list-icon-pack > li { + margin-top: 25px; +} +.bodywebsite .list-icon-pack > li span { + display: block; +} +.bodywebsite .list-icon-pack > li span + span { + margin-left: .25em; +} +.bodywebsite .list-icon-pack h6 + *, +.bodywebsite .list-icon-pack .h6 + * { + margin-top: 2px; +} +.bodywebsite .list-links > li { + display: inline-block; +} +.bodywebsite .list-links > li:after { + content: ';'; +} +.bodywebsite .list-links > li:last-child:after { + display: none; +} +.bodywebsite .list-hashtags > li { + display: inline-block; +} +.bodywebsite .list-hashtags > li a { + color: inherit; +} +.bodywebsite .list-hashtags > li a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-hashtags > li > a:before { + content: '#'; +} +.bodywebsite .list-marked-bordered { + color: #000; +} +.bodywebsite .list-marked-bordered li a { + display: block; + padding: 10px 7px; + border-bottom: 1px solid #f9f9f9; +} +.bodywebsite .list-marked-bordered li a:before { + position: relative; + display: inline-block; + padding-right: 10px; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + line-height: inherit; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + content: '\f105'; +} +.bodywebsite .list-marked-bordered li a span { + color: inherit; + transition: color .33s; +} +.bodywebsite .list-marked-bordered li a span:first-child { + color: #000; +} +.bodywebsite .list-marked-bordered li a:hover, +.bodywebsite .list-marked-bordered li a:hover span:nth-child(n) { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-marked-bordered li span:not(:last-child) { + margin-right: .25em; +} +.bodywebsite .list-bordered-horizontal { + position: relative; + transform: translateY(-7px); + margin-bottom: -7px; +} +.bodywebsite .list-bordered-horizontal > * { + margin-top: 7px; +} +.bodywebsite .list-bordered-horizontal > *:not(:last-child) { + margin-right: 35px; +} +@media (min-width: 768px) { + .bodywebsite .list-bordered-horizontal > li { + display: inline-block; + } + .bodywebsite .list-bordered-horizontal > li:not(:last-child) { + position: relative; + } + .bodywebsite .list-bordered-horizontal > li:not(:last-child):after { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + right: -20px; + width: 1px; + height: 22px; + background: #dedede; + } +} +.bodywebsite .list-tag-blocks { + position: relative; + transform: translateY(-6px); + margin-bottom: -6px; +} +.bodywebsite .list-tag-blocks > * { + margin-top: 6px; +} +.bodywebsite .list-tag-blocks > *:not(:last-child) { + margin-right: 6px; +} +.bodywebsite .list-tag-blocks li { + display: inline-block; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; +} +.bodywebsite .list-tag-blocks li a { + display: inline-block; + padding: 6px 19px; + border-radius: 0; + border: 1px solid transparent; +} +.bodywebsite .list-tag-blocks li a, +.bodywebsite .list-tag-blocks li a:active, +.bodywebsite .list-tag-blocks li a:focus { + color: #000; + background: #fff; +} +.bodywebsite .list-tag-blocks li a:hover { + background: transparent; + border-color: #cdcdcd; +} +.bodywebsite .list-progress { + font-family: "Roboto", Helvetica, Arial, sans-serif; + color: #00030a; +} +.bodywebsite .list-progress li + li { + margin-top: 23px; +} +.bodywebsite .list-progress p { + padding-right: 40px; +} +.bodywebsite .list-tags-inline > li { + display: inline; +} +.bodywebsite .list-tags-inline > li a { + color: inherit; +} +.bodywebsite .list-tags-inline > li a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .list-tags-inline > li:not(:last-child):after { + content: ','; +} +.bodywebsite .list-rating { + font-size: 0; + line-height: 0; +} +.bodywebsite .list-rating > li { + display: inline-block; +} +.bodywebsite .list-rating .icon { + color: #ffd400; +} +.bodywebsite .list-wide-bordered { + color: #00030a; + font: 400 14px/22px "Roboto", Helvetica, Arial, sans-serif; + border-top: 1px solid #dedede; +} +.bodywebsite .list-wide-bordered dl { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + width: 100%; + font-weight: 700; +} +.bodywebsite .list-wide-bordered dl dt { + padding-right: 15px; +} +.bodywebsite .list-wide-bordered dl dd { + font-weight: 700; + font-size: 14px; +} +.bodywebsite .list-wide-bordered li { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + min-height: 54px; + padding: 10px 20px; + border-bottom: 1px solid #dedede; +} +.bodywebsite .list-wide-bordered + .list-wide-bordered { + border-top: 0; +} +@media (min-width: 768px) { + .bodywebsite .list-wide-bordered { + font-size: 16px; + } + .bodywebsite .list-wide-bordered li { + min-height: 73px; + padding: 20px 30px; + } +} +.bodywebsite .object-wrap { + position: relative; + overflow: hidden; +} +.bodywebsite .object-wrap-right > .object-wrap-body { + right: 0; +} +.bodywebsite .object-wrap-left > .object-wrap-body { + left: 0; +} +@media (min-width: 768px) { + .bodywebsite .object-wrap-sm-right > .object-wrap-body { + right: 0; + } + .bodywebsite .object-wrap-sm-left > .object-wrap-body { + left: 0; + } +} + +@media (max-width: 767px) { + .bodywebsite .object-wrap-body { + position: relative; + overflow: hidden; + min-height: 300px; + width: 100%; + } + .bodywebsite .object-wrap-body > img { + position: absolute; + min-width: 100%; + max-width: none; + height: auto; + max-height: none; + top: 20%; + left: 50%; + transform: translate(-50%, -20%); + } + .bodywebsite .page .text-primary { + word-break: break-all; + } + .bodywebsite figure img { + margin: unset; + } +} + +@media (min-width: 768px) { + .bodywebsite .object-wrap-body { + overflow: hidden; + position: absolute; + top: 0; + bottom: 0; + width: 100vw; + min-width: 1px; + max-width: none; + height: 100%; + min-height: 100%; + max-height: none; + margin: 0; + background: inherit; + z-index: 0; + } + .bodywebsite .object-wrap-body > img { + position: relative; + height: auto; + min-height: 100.5%; + width: auto; + min-width: 102%; + max-width: none; + left: 50%; + transform: translateX(-50%); + } + .bodywebsite .object-wrap-body + * { + margin-top: 0; + } +} +@media (min-width: 768px) { + .bodywebsite .sm-width-c6 { + width: calc(50vw); + } +} +@media (min-width: 992px) { + .bodywebsite .md-width-c7d20 { + width: calc(150vw); + } +} +@media (min-width: 1200px) { + .bodywebsite .md-width-c7d20 { + width: calc(167.5vw); + } +} +@media (min-width: 992px) { + .bodywebsite .md-width-c5dm20 { + width: calc(-50vw); + } +} +@media (min-width: 1200px) { + .bodywebsite .md-width-c5dm20 { + width: calc(-67.5vw); + } +} +.bodywebsite .bg-wrap { + position: relative; +} +.bodywebsite .bg-wrap:before { + content: ''; + position: absolute; + top: 0; + bottom: 0; + width: 120vw; + left: 50%; + transform: translateX(-50%); + background: inherit; + z-index: -1; +} +.bodywebsite .bg-wrap-sm-left { + z-index: 1; +} +@media (min-width: 992px) { + .bodywebsite .bg-wrap-sm-left:before { + width: 100vw; + right: 0; + transform: none; + } +} +.bodywebsite .bg-wrap-sm-right { + z-index: 1; +} +@media (min-width: 992px) { + .bodywebsite .bg-wrap-sm-right:before { + width: 100vw; + left: 0; + transform: none; + } +} +@media (min-width: 576px) { + .bodywebsite .wrap-justify { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; + } + .bodywebsite .wrap-justify > * + * { + margin-top: 0; + } +} +@media (min-width: 768px) { + .bodywebsite .wrap-justify { + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + } +} +@media (min-width: 1200px) { + .bodywebsite .wrap-justify { + padding-right: 30px; + } +} +.bodywebsite .link-wrap { + line-height: 1; +} +.bodywebsite .link-wrap a { + display: inline; + line-height: 1; +} +.bodywebsite [class*='bg-decoration-wrap'] { + position: relative; + overflow: hidden; +} +.bodywebsite [class*='bg-decoration-wrap'] .bg-decoration-content { + position: relative; + z-index: 2; +} +.bodywebsite [class*='bg-decoration-wrap'] .bg-decoration-object { + top: 0; + bottom: auto; +} +.bodywebsite .bg-decoration-bottom .bg-decoration-object { + top: auto; + bottom: 0; +} +@media (min-width: 768px) { + .bodywebsite .bg-decoration-wrap-sm .bg-decoration-object { + height: 50%; + position: absolute; + right: 0; + left: 0; + } + .bodywebsite .bg-decoration-bottom-sm .bg-decoration-object { + height: 34%; + } +} +@media (min-width: 1200px) { + .bodywebsite .bg-decoration-object { + height: 50%; + position: absolute; + right: 0; + left: 0; + } + .bodywebsite .bg-decoration-bottom-mod .bg-decoration-object { + height: 45%; + } +} +.bodywebsite .divider-fullwidth { + height: 1px; + width: 100%; +} +.bodywebsite .hr { + border: none; + height: 1px; + width: 100%; +} +.bodywebsite .tabs-custom .nav-tabs { + display: block; + word-spacing: 0; + border: 0; +} +.bodywebsite .tabs-custom .nav-tabs:before, +.bodywebsite .tabs-custom .nav-tabs:after { + display: none; +} +.bodywebsite .tabs-custom .nav-tabs .nav-item { + float: none; + border: 0; + cursor: pointer; + transition: .33s all ease; +} +.bodywebsite .tabs-custom .nav-tabs .nav-item .nav-link.active { + cursor: default; + border: 0; +} +.bodywebsite .tabs-custom .nav-tabs .nav-link { + margin: 0; + border: 0; +} +.bodywebsite * + .tabs-custom { + margin-top: 35px; +} +@media (min-width: 992px) { + .bodywebsite * + .tabs-custom { + margin-top: 50px; + } +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs, +.bodywebsite .tabs-custom.tabs-line .nav-tabs, +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs { + font-size: 0; + line-height: 0; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs { + border: 1px solid #dedede; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs li { + margin: -1px 0; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link { + padding: 8px 10px; + font: 700 11px/18px "Roboto", Helvetica, Arial, sans-serif; + color: #000; + background: transparent; + border-bottom: 1px solid #dedede; + text-align: center; + vertical-align: middle; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:after { + font: 400 17px 'Material Design Icons'; + color: transparent; + position: relative; + top: -12px; + display: inline-block; + margin-left: 5px; + content: '\f236'; + vertical-align: middle; + transition: .33s all ease; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:first-child { + border-top: 1px solid #dedede; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .active.nav-link { + color: #fff; + background: #3a3c3e; + border-color: #3a3c3e; +} +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:hover:after, +.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .active.nav-link:after { + top: -1px; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .tabs-custom.tabs-corporate .tab-content { + padding: 22px 0 0; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item, +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item { + margin: 0; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item + .nav-item, +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item + .nav-item { + margin-top: -1px; +} +.bodywebsite .tabs-custom.tabs-line .tab-content, +.bodywebsite .tabs-custom.tabs-minimal .tab-content { + padding: 22px 0 0; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link { + font: 400 11px/16px "Roboto", Helvetica, Arial, sans-serif; + letter-spacing: -0.05em; + text-transform: uppercase; + color: #9b9b9b; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .active.nav-link { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link { + font: 700 11px/24px "Roboto", Helvetica, Arial, sans-serif; + color: #000; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .active.nav-link { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs { + text-align: center; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item { + display: block; + margin: 0 -1px; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link { + padding: 8px 15px; + border: 1px solid #e5e7e9; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link:last-child { + margin-right: 0; + border-bottom-width: 1px; +} +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .active.nav-link { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs { + text-align: center; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item { + display: block; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link { + padding: 7px 15px; + border: 1px solid #e5e7e9; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link:last-child { + border-bottom-width: 1px; +} +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .active.nav-link { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +@media (min-width: 768px) { + .bodywebsite .tabs-custom.tabs-line .nav-item, + .bodywebsite .tabs-custom.tabs-minimal .nav-item { + margin: 0; + } + .bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link { + font-size: 14px; + line-height: 24px; + } + .bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link { + font-size: 14px; + line-height: 24px; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + text-align: left; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link { + position: relative; + z-index: 10; + display: inline-block; + border: 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item + .nav-item, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item + .nav-item { + margin-top: 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .tab-content, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .tab-content { + padding: 40px 0 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-item, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-link { + display: block; + border: 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs { + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + border-bottom: 2px solid #e5e7e9; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link { + padding: 8px 0 8px 0; + margin: 0 30px 0 0; + font-weight: 700; + background: transparent; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link:after { + content: ''; + position: absolute; + left: 0; + right: 100%; + bottom: -1px; + border-bottom: 2px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + opacity: 0; + visibility: hidden; + transition: .33s all ease; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link:hover, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .active.nav-link { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .active.nav-link:after { + right: 0; + opacity: 1; + visibility: visible; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs { + margin-top: -10px; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item { + display: inline-block; + margin: 10px 15px 0 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link { + position: relative; + bottom: -1px; + z-index: 10; + display: inline-block; + padding: 0 0 5px 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link:after { + content: ''; + position: absolute; + left: 0; + right: 100%; + bottom: 0; + border-bottom: 2px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + opacity: 0; + visibility: hidden; + transition: .33s all ease; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link:last-child { + margin-right: 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link:hover, + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .active.nav-link { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .active.nav-link:after { + right: 0; + opacity: 1; + visibility: visible; + } +} +.bodywebsite .tabs-vertical .nav-tabs { + position: relative; +} +.bodywebsite .tabs-vertical .nav-tabs > .nav-item { + z-index: 10; + display: block; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs { + width: 100%; +} +.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item { + display: block; +} +.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link { + position: relative; + padding: 8px 10px; +} +.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item .active.nav-link { + border-color: #3a3c3e; +} +.bodywebsite .tabs-vertical.tabs-corporate .tab-content { + padding: 30px 0 0; +} +.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs { + border-right: 1px solid #ddd; +} +.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item .nav-link { + position: relative; + right: -1px; + padding: 0 16px 0 0; + text-align: right; + border-right: 1px solid transparent; + background-color: transparent; +} +.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item .nav-link:hover, +.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item .nav-link.resp-tab-active { + border-right-color: #00030a; +} +.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item + .nav-item { + margin-top: 16px; +} +@media (min-width: 768px) { + .bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link { + font-size: 16px; + line-height: 26px; + } + .bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:after { + font-size: 25px; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs { + position: relative; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-item { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-item .nav-link { + display: block; + padding: 21px 10px 19px; + } + .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .tab-content { + padding: 30px 0 0; + } + .bodywebsite .tabs-custom.tabs-vertical { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + } + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + max-width: 50%; + } + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item { + width: 100%; + } + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .nav-link { + text-align: left; + } + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .nav-link:hover, + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .active.nav-link { + border-color: #3a3c3e; + } + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .nav-link:hover:after, + .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .active.nav-link:after { + right: 15px; + } + .bodywebsite .tabs-custom.tabs-vertical .tab-content { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs { + width: auto; + min-width: 240px; + border-width: 0 0 1px 0; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item { + margin: 0; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link { + padding: 23px 44px 22px 30px; + border-width: 1px 0 0 0; + text-align: left; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link:after { + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 26px; + content: '\f238'; + transition: .33s all ease; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link:hover:after, + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .active.nav-link:after { + right: 15px; + top: 50%; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .tab-content { + padding: 0 0 0 30px; + margin-top: -5px; + } +} +@media (min-width: 992px) { + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs { + min-width: 300px; + } + .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .tab-content { + padding: 0 0 0 44px; + } +} +.bodywebsite .card-group.card-group-custom { + margin-bottom: 0; +} +.bodywebsite .card-group.card-group-custom .card-heading + .card-collapse > .card-body, +.bodywebsite .card-group.card-group-custom .card-heading + .card-collapse > .list-group { + border-top: 0; +} +.bodywebsite .card-group.card-group-custom .card + .card { + margin-top: 0; +} +.bodywebsite .card-group.card-group-corporate .card + .card { + margin-top: 30px; +} +.bodywebsite .card-custom { + margin: 0; + background: inherit; + border: 0; + border-radius: 0; + box-shadow: none; +} +.bodywebsite .card-custom a { + display: block; +} +.bodywebsite .card-custom .card-heading { + padding: 0; + border-bottom: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.bodywebsite .card-custom .card-body { + padding: 0; + border: 0; +} +.bodywebsite * + .card-group-custom { + margin-top: 35px; +} +@media (min-width: 768px) { + .bodywebsite * + .card-group-custom { + margin-top: 50px; + } +} +.bodywebsite .card-light:first-child .card-title { + border-top: 1px solid #dedede; +} +.bodywebsite .card-light .card-title { + border-bottom: 1px solid #dedede; +} +.bodywebsite .card-light .card-title:nth-child(n + 2) { + margin-top: -1px; +} +.bodywebsite .card-light .card-title a { + position: relative; + padding: 24px 55px 22px 32px; + font: 500 18px/24px "Roboto", Helvetica, Arial, sans-serif; + color: #000; + transition: 1.5s all ease; +} +.bodywebsite .card-light .card-title a .card-arrow:after { + opacity: 0; + visibility: hidden; +} +.bodywebsite .card-light .card-title a.collapsed .card-arrow:after { + opacity: 1; + visibility: visible; +} +.bodywebsite .card-light .card-arrow { + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 26px; + transition: .33s; + will-change: transform; +} +.bodywebsite .card-light .card-arrow:before, +.bodywebsite .card-light .card-arrow:after { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .card-light .card-arrow:before { + width: 14px; + height: 2px; + right: 0; +} +.bodywebsite .card-light .card-arrow:after { + width: 2px; + height: 14px; + right: 6px; + transition: .2s all ease; +} +.bodywebsite .card-light .card-collapse { + position: relative; + margin-top: -1px; + border-bottom: 1px solid #dedede; + color: #9f9f9f; + will-change: transform; +} +.bodywebsite .card-light .card-body { + padding: 25px 44px 25px 32px; +} +@media (max-width: 767px) { + .bodywebsite .card-light .card-title a, + .bodywebsite .card-light .card-body { + padding-left: 15px; + } +} +.bodywebsite .card-corporate .card-title a, +.bodywebsite .card-corporate .card-collapse { + background: #fff; + box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); +} +.bodywebsite .card-corporate .card-collapse.in { + box-shadow: -1px 0 5px 0 rgba(65, 65, 65, 0.12); +} +.bodywebsite .card-corporate .card-collapse.in:before { + content: ''; + position: absolute; + top: -1px; + height: 1px; + background: #ededed; + left: 0; + width: 100%; +} +.bodywebsite .card-corporate .card-title a { + position: relative; + z-index: 1; + padding: 24px 82px 22px 32px; + font: 500 18px/24px "Roboto", Helvetica, Arial, sans-serif; + color: #000; + transition: 1.3s all ease; + letter-spacing: -0.025em; + border-radius: 6px 6px 0 0; +} +.bodywebsite .card-corporate .card-title a .card-arrow:after { + opacity: 0; + visibility: hidden; +} +.bodywebsite .card-corporate .card-title a.collapsed { + border-radius: 6px; +} +.bodywebsite .card-corporate .card-title a.collapsed .card-arrow { + border-radius: 0 6px 6px 0; +} +.bodywebsite .card-corporate .card-title a.collapsed .card-arrow:after { + opacity: 1; + visibility: visible; +} +.bodywebsite .card-corporate .card-arrow { + position: absolute; + top: 0; + bottom: 0; + right: 0; + z-index: 2; + width: 70px; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-radius: 0 6px 0 0; + transition: 1.3s all ease; +} +.bodywebsite .card-corporate .card-arrow:before, +.bodywebsite .card-corporate .card-arrow:after { + content: ''; + position: absolute; + top: 50%; + z-index: 4; + transform: translateY(-50%); + background: #fff; +} +.bodywebsite .card-corporate .card-arrow:before { + width: 14px; + height: 2px; + right: 28px; +} +.bodywebsite .card-corporate .card-arrow:after { + width: 2px; + height: 14px; + right: 34px; +} +.bodywebsite .card-corporate .card-collapse { + position: relative; + z-index: 2; + color: #9f9f9f; + border-radius: 0 0 6px 6px; +} +.bodywebsite .card-corporate .card-body { + padding: 25px 44px 25px 32px; +} +@media (max-width: 767px) { + .bodywebsite .card-corporate .card-title a, + .bodywebsite .card-corporate .card-body { + padding-left: 25px; + } +} +.bodywebsite .card-lg { + position: relative; + padding: 50px 15px; +} +.bodywebsite .card-lg:before { + content: ''; + position: absolute; + top: -45px; + left: 50%; + width: 55px; + height: 55px; + margin-left: -10px; + background: #fff; + transform: translateX(-50%) rotate(-45deg); +} +@media (min-width: 768px) { + .bodywebsite .card-lg { + padding: 90px 35px 100px; + } +} +.bodywebsite table { + background-color: transparent; +} +.bodywebsite caption { + padding-top: 17px 25px 18px; + padding-bottom: 17px 25px 18px; + color: #dedede; + text-align: left; +} +.bodywebsite th { + text-align: left; +} +.bodywebsite .table { + width: 100%; + max-width: 100%; + margin-bottom: 0; + color: #00030a; +} +.bodywebsite .table > thead > tr > th, +.bodywebsite .table > thead > tr > td, +.bodywebsite .table > tbody > tr > th, +.bodywebsite .table > tbody > tr > td, +.bodywebsite .table > tfoot > tr > th, +.bodywebsite .table > tfoot > tr > td { + line-height: 1.71429; + vertical-align: top; + border-top: 0; +} +.bodywebsite .table > tbody > tr > th, +.bodywebsite .table > tbody > tr > td, +.bodywebsite .table > tfoot > tr > th, +.bodywebsite .table > tfoot > tr > td { + padding: 17px 25px 18px; + line-height: 1.71429; + vertical-align: top; + border-bottom: 1px solid #d9d9d9; +} +.bodywebsite .table > thead > tr > th { + font-family: "Playfair Display", Helvetica, Arial, sans-serif; + font-size: 16px; + font-weight: 700; + padding: 26px 25px; + vertical-align: bottom; + background: #f6f7fa; + border-bottom: 0; +} +@media (min-width: 576px) { + .bodywebsite .table > thead > tr > th { + padding: 34px 25px 29px; + } +} +.bodywebsite .table > tfoot > tr > td { + font-weight: 700; +} +.bodywebsite .table > caption + thead > tr:first-child > th, +.bodywebsite .table > caption + thead > tr:first-child > td, +.bodywebsite .table > colgroup + thead > tr:first-child > th, +.bodywebsite .table > colgroup + thead > tr:first-child > td, +.bodywebsite .table > thead:first-child > tr:first-child > th, +.bodywebsite .table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.bodywebsite .table > tbody + tbody { + border-top: 0; +} +.bodywebsite .table .table { + background-color: #fff; +} +.bodywebsite .table-condensed > thead > tr > th, +.bodywebsite .table-condensed > thead > tr > td, +.bodywebsite .table-condensed > tbody > tr > th, +.bodywebsite .table-condensed > tbody > tr > td, +.bodywebsite .table-condensed > tfoot > tr > th, +.bodywebsite .table-condensed > tfoot > tr > td { + padding: 5px; +} +.bodywebsite .table-bordered { + border: 1px solid #d9d9d9; +} +.bodywebsite .table-bordered > thead > tr > th, +.bodywebsite .table-bordered > thead > tr > td, +.bodywebsite .table-bordered > tbody > tr > th, +.bodywebsite .table-bordered > tbody > tr > td, +.bodywebsite .table-bordered > tfoot > tr > th, +.bodywebsite .table-bordered > tfoot > tr > td { + border: 1px solid #d9d9d9; +} +.bodywebsite .table-bordered > thead > tr > th, +.bodywebsite .table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.bodywebsite .table-primary { + background: #fff; +} +.bodywebsite .table-primary thead > tr > th { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .table-striped > tbody > tr:nth-of-type(even) { + background-color: #f6f7fa; +} +.bodywebsite .table-striped > tbody > tr:nth-of-type(odd) { + background-color: #fff; +} +.bodywebsite .table-striped > tbody > tr > td { + border-bottom: 0; +} +.bodywebsite .table-hover > tbody > tr:hover { + background-color: #f6f7fa; +} +.bodywebsite table col[class*="col-"] { + position: static; + float: none; + display: table-column; +} +.bodywebsite table td[class*="col-"], +.bodywebsite table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} +.bodywebsite .table-active, +.bodywebsite .table-active > th, +.bodywebsite .table-active > td { + background-color: #f6f7fa; +} +.bodywebsite .table-hover .table-active:hover { + background-color: #e6e8f1; +} +.bodywebsite .table-hover .table-active:hover > td, +.bodywebsite .table-hover .table-active:hover > th { + background-color: #e6e8f1; +} +.bodywebsite .table-success, +.bodywebsite .table-success > th, +.bodywebsite .table-success > td { + background-color: #dff0d8; +} +.bodywebsite .table-hover .table-success:hover { + background-color: #d0e9c6; +} +.bodywebsite .table-hover .table-success:hover > td, +.bodywebsite .table-hover .table-success:hover > th { + background-color: #d0e9c6; +} +.bodywebsite .table-info, +.bodywebsite .table-info > th, +.bodywebsite .table-info > td { + background-color: #d9edf7; +} +.bodywebsite .table-hover .table-info:hover { + background-color: #c4e3f3; +} +.bodywebsite .table-hover .table-info:hover > td, +.bodywebsite .table-hover .table-info:hover > th { + background-color: #c4e3f3; +} +.bodywebsite .table-warning, +.bodywebsite .table-warning > th, +.bodywebsite .table-warning > td { + background-color: #fcf8e3; +} +.bodywebsite .table-hover .table-warning:hover { + background-color: #faf2cc; +} +.bodywebsite .table-hover .table-warning:hover > td, +.bodywebsite .table-hover .table-warning:hover > th { + background-color: #faf2cc; +} +.bodywebsite .table-danger, +.bodywebsite .table-danger > th, +.bodywebsite .table-danger > td { + background-color: #fe4a21; +} +.bodywebsite .table-hover .table-danger:hover { + background-color: #fe3508; +} +.bodywebsite .table-hover .table-danger:hover > td, +.bodywebsite .table-hover .table-danger:hover > th { + background-color: #fe3508; +} +.bodywebsite .table-responsive { + overflow-x: auto; + min-height: 0.01%; +} +@media (max-width: 575px) { + .bodywebsite .table-responsive { + width: 100%; + margin-bottom: 1.28571; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #d9d9d9; + } + .bodywebsite .table-responsive > .table { + margin-bottom: 0; + } + .bodywebsite .table-responsive > .table > thead > tr > th, + .bodywebsite .table-responsive > .table > thead > tr > td, + .bodywebsite .table-responsive > .table > tbody > tr > th, + .bodywebsite .table-responsive > .table > tbody > tr > td, + .bodywebsite .table-responsive > .table > tfoot > tr > th, + .bodywebsite .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .bodywebsite .table-responsive > .table-bordered { + border: 0; + } + .bodywebsite .table-responsive > .table-bordered > thead > tr > th:first-child, + .bodywebsite .table-responsive > .table-bordered > thead > tr > td:first-child, + .bodywebsite .table-responsive > .table-bordered > tbody > tr > th:first-child, + .bodywebsite .table-responsive > .table-bordered > tbody > tr > td:first-child, + .bodywebsite .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .bodywebsite .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .bodywebsite .table-responsive > .table-bordered > thead > tr > th:last-child, + .bodywebsite .table-responsive > .table-bordered > thead > tr > td:last-child, + .bodywebsite .table-responsive > .table-bordered > tbody > tr > th:last-child, + .bodywebsite .table-responsive > .table-bordered > tbody > tr > td:last-child, + .bodywebsite .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .bodywebsite .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .bodywebsite .table-responsive > .table-bordered > tbody > tr:last-child > th, + .bodywebsite .table-responsive > .table-bordered > tbody > tr:last-child > td, + .bodywebsite .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .bodywebsite .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +.bodywebsite .jumbotron-custom { + font-weight: 900; + font-size: 35px; + line-height: 1.2; + letter-spacing: .01em; +} +.bodywebsite .jumbotron-custom > span { + font-size: 31px; + line-height: 1.2; +} +@media (min-width: 768px) { + .bodywebsite .jumbotron-custom { + font-size: 45px; + } + .bodywebsite .jumbotron-custom > span { + font-size: 41px; + } +} +@media (min-width: 992px) { + .bodywebsite .jumbotron-custom { + font-size: 55px; + } + .bodywebsite .jumbotron-custom > span { + font-size: 51px; + } +} +@media (min-width: 1200px) { + .bodywebsite .jumbotron-custom { + font-size: 65px; + } + .bodywebsite .jumbotron-custom > span { + font-size: 61px; + } +} +.bodywebsite [class^="thin-icon-"]:before, +.bodywebsite [class*=" thin-icon-"]:before, +.bodywebsite .thin-ico { + font-family: "Thin Regular"; + font-weight: 400; + font-style: normal; + font-size: inherit; + text-transform: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.bodywebsite .thin-icon-volume-on:before { + content: '\e800'; +} +.bodywebsite .thin-icon-gift:before { + content: '\e801'; +} +.bodywebsite .thin-icon-cup:before { + content: '\e802'; +} +.bodywebsite .thin-icon-folder:before { + content: '\e803'; +} +.bodywebsite .thin-icon-dublicate:before { + content: '\e804'; +} +.bodywebsite .thin-icon-tag:before { + content: '\e805'; +} +.bodywebsite .thin-icon-chat:before { + content: '\e806'; +} +.bodywebsite .thin-icon-clock:before { + content: '\e807'; +} +.bodywebsite .thin-icon-microphone:before { + content: '\e808'; +} +.bodywebsite .thin-icon-map-marker:before { + content: '\e809'; +} +.bodywebsite .thin-icon-mobile:before { + content: '\e80a'; +} +.bodywebsite .thin-icon-cloud-charge:before { + content: '\e80b'; +} +.bodywebsite .thin-icon-resize:before { + content: '\e80c'; +} +.bodywebsite .thin-icon-cake:before { + content: '\e80d'; +} +.bodywebsite .thin-icon-case:before { + content: '\e80e'; +} +.bodywebsite .thin-icon-address:before { + content: '\e80f'; +} +.bodywebsite .thin-icon-phone-support:before { + content: '\e810'; +} +.bodywebsite .thin-icon-fullscreen:before { + content: '\e811'; +} +.bodywebsite .thin-icon-db:before { + content: '\e812'; +} +.bodywebsite .thin-icon-music:before { + content: '\e813'; +} +.bodywebsite .thin-icon-network:before { + content: '\e814'; +} +.bodywebsite .thin-icon-db-network:before { + content: '\e815'; +} +.bodywebsite .thin-icon-dropbox-upload:before { + content: '\e816'; +} +.bodywebsite .thin-icon-phone-call:before { + content: '\e817'; +} +.bodywebsite .thin-icon-briefcase-2:before { + content: '\e818'; +} +.bodywebsite .thin-icon-card:before { + content: '\e819'; +} +.bodywebsite .thin-icon-support:before { + content: '\e81a'; +} +.bodywebsite .thin-icon-pull:before { + content: '\e81b'; +} +.bodywebsite .thin-icon-desktop:before { + content: '\e81c'; +} +.bodywebsite .thin-icon-pass:before { + content: '\e81d'; +} +.bodywebsite .thin-icon-picture:before { + content: '\e81e'; +} +.bodywebsite .thin-icon-email:before { + content: '\e81f'; +} +.bodywebsite .thin-icon-push:before { + content: '\e820'; +} +.bodywebsite .thin-icon-house:before { + content: '\e821'; +} +.bodywebsite .thin-icon-download:before { + content: '\e822'; +} +.bodywebsite .thin-icon-storage:before { + content: '\e823'; +} +.bodywebsite .thin-icon-milk:before { + content: '\e824'; +} +.bodywebsite .thin-icon-external-right:before { + content: '\e825'; +} +.bodywebsite .thin-icon-email-open:before { + content: '\e826'; +} +.bodywebsite .thin-icon-planet:before { + content: '\e827'; +} +.bodywebsite .thin-icon-pointer:before { + content: '\e828'; +} +.bodywebsite .thin-icon-email-search:before { + content: '\e829'; +} +.bodywebsite .thin-icon-external-left:before { + content: '\e82a'; +} +.bodywebsite .thin-icon-shirt:before { + content: '\e82b'; +} +.bodywebsite .thin-icon-document-edit:before { + content: '\e82c'; +} +.bodywebsite .thin-icon-document-delete:before { + content: '\e82d'; +} +.bodywebsite .thin-icon-money:before { + content: '\e82e'; +} +.bodywebsite .thin-icon-eye:before { + content: '\e82f'; +} +.bodywebsite .thin-icon-settings:before { + content: '\e830'; +} +.bodywebsite .thin-icon-arrow-bottom-right:before { + content: '\e831'; +} +.bodywebsite .thin-icon-arrow-right:before { + content: '\e832'; +} +.bodywebsite .thin-icon-flag:before { + content: '\e833'; +} +.bodywebsite .thin-icon-star:before { + content: '\e834'; +} +.bodywebsite .thin-icon-calculator:before { + content: '\e835'; +} +.bodywebsite .thin-icon-safe:before { + content: '\e836'; +} +.bodywebsite .thin-icon-cart:before { + content: '\e837'; +} +.bodywebsite .thin-icon-bullhorn:before { + content: '\e838'; +} +.bodywebsite .thin-icon-anchor:before { + content: '\e839'; +} +.bodywebsite .thin-icon-globe:before { + content: '\e83a'; +} +.bodywebsite .thin-icon-statistics:before { + content: '\e83b'; +} +.bodywebsite .thin-icon-thumb-up:before { + content: '\e83c'; +} +.bodywebsite .thin-icon-headphones:before { + content: '\e83d'; +} +.bodywebsite .thin-icon-bell:before { + content: '\e83e'; +} +.bodywebsite .thin-icon-study:before { + content: '\e83f'; +} +.bodywebsite .thin-icon-cart-add:before { + content: '\e840'; +} +.bodywebsite .thin-icon-cart-delete:before { + content: '\e841'; +} +.bodywebsite .thin-icon-satelite:before { + content: '\e842'; +} +.bodywebsite .thin-icon-home:before { + content: '\e843'; +} +.bodywebsite .thin-icon-time:before { + content: '\e844'; +} +.bodywebsite .thin-icon-book:before { + content: '\e845'; +} +.bodywebsite .thin-icon-bookmark:before { + content: '\e846'; +} +.bodywebsite .thin-icon-key:before { + content: '\e847'; +} +.bodywebsite .thin-icon-timer:before { + content: '\e848'; +} +.bodywebsite .thin-icon-saturn:before { + content: '\e849'; +} +.bodywebsite .thin-icon-notes:before { + content: '\e84a'; +} +.bodywebsite .thin-icon-ambulance:before { + content: '\e84b'; +} +.bodywebsite .thin-icon-briefcase:before { + content: '\e84c'; +} +.bodywebsite .thin-icon-layers:before { + content: '\e84d'; +} +.bodywebsite .thin-icon-delivery:before { + content: '\e84e'; +} +.bodywebsite .thin-icon-tint:before { + content: '\e84f'; +} +.bodywebsite .thin-icon-trash:before { + content: '\e850'; +} +.bodywebsite .thin-icon-lightbulb:before { + content: '\e851'; +} +.bodywebsite .thin-icon-calendar:before { + content: '\e852'; +} +.bodywebsite .thin-icon-chart:before { + content: '\e853'; +} +.bodywebsite .thin-icon-documents:before { + content: '\e854'; +} +.bodywebsite .thin-icon-checklist:before { + content: '\e855'; +} +.bodywebsite .thin-icon-camera-web:before { + content: '\e856'; +} +.bodywebsite .thin-icon-camera:before { + content: '\e857'; +} +.bodywebsite .thin-icon-lock:before { + content: '\e858'; +} +.bodywebsite .thin-icon-umbrella:before { + content: '\e859'; +} +.bodywebsite .thin-icon-user:before { + content: '\e85a'; +} +.bodywebsite .thin-icon-love:before { + content: '\e85b'; +} +.bodywebsite .thin-icon-hanger:before { + content: '\e85c'; +} +.bodywebsite .thin-icon-car:before { + content: '\e85d'; +} +.bodywebsite .thin-icon-cloth:before { + content: '\e85e'; +} +.bodywebsite .thin-icon-box:before { + content: '\e85f'; +} +.bodywebsite .thin-icon-attachment:before { + content: '\e860'; +} +.bodywebsite .thin-icon-cd:before { + content: '\e861'; +} +.bodywebsite .thin-icon-love-broken:before { + content: '\e862'; +} +.bodywebsite .thin-icon-volume-off:before { + content: '\e863'; +} +.bodywebsite .slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} +.bodywebsite .counter { + font: 900 45px/45px "Roboto", Helvetica, Arial, sans-serif; + margin-bottom: 0; + color: #fff; +} +.bodywebsite .counter-bold { + font-weight: 700; +} +.bodywebsite .counter-k:after { + content: 'k'; +} +.bodywebsite * + .counter-title { + margin-top: 0; +} +.bodywebsite .countdown-default { + color: #000; +} +.bodywebsite .countdown-default .countdown-section { + position: relative; + display: inline-block; + min-width: 90px; + padding: 0 10px; + text-align: center; +} +.bodywebsite .countdown-default .countdown-section > * { + display: block; +} +.bodywebsite .countdown-default .countdown-section:after { + position: absolute; + top: 35%; + transform: translateY(-35%); + border-radius: 20px; + background: #000; +} +.bodywebsite .countdown-default .countdown-section:nth-last-child(n + 3):after { + content: ''; + right: -2px; + width: 5px; + height: 5px; +} +@media (max-width: 767px) { + .bodywebsite .countdown-default .countdown-section:last-child { + display: none; + } +} +.bodywebsite .countdown-default .countdown-amount { + font-family: Helvetica, Arial, sans-serif; + font-size: 30px; + font-weight: 900; + line-height: 1; +} +.bodywebsite .countdown-default .countdown-period { + margin-top: 10px; + font-size: 12px; + text-transform: uppercase; + letter-spacing: -0.025em; + color: rgba(0, 0, 0, 0.4); +} +.bodywebsite .countdown-default.countdown-inverse .countdown-section:after { + background: #fff; +} +.bodywebsite .countdown-default.countdown-inverse .countdown-period { + color: rgba(255, 255, 255, 0.4); +} +@media (min-width: 768px) { + .bodywebsite .countdown-default .countdown-section { + min-width: 150px; + } + .bodywebsite .countdown-default .countdown-section:not(:last-child):after { + content: ''; + top: 50%; + right: -5px; + transform: translateY(-50%); + width: 10px; + height: 10px; + } + .bodywebsite .countdown-default .countdown-amount { + font-size: 50px; + } + .bodywebsite .countdown-default .countdown-period { + font-size: 14px; + } +} +@media (min-width: 992px) { + .bodywebsite .countdown-default .countdown-section { + min-width: 200px; + } + .bodywebsite .countdown-default .countdown-amount { + font-size: 72px; + } +} +.bodywebsite .countdown-inverse { + color: #fff; +} +.bodywebsite .owl-carousel .animated { + -webkit-animation-duration: 1000ms; + animation-duration: 1000ms; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.bodywebsite .owl-carousel .owl-animated-in { + z-index: 0; +} +.bodywebsite .owl-carousel .owl-animated-out { + z-index: 1; +} +.bodywebsite .owl-carousel .fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +.bodywebsite .owl-height { + -webkit-transition: height 500ms ease-in-out; + -moz-transition: height 500ms ease-in-out; + -ms-transition: height 500ms ease-in-out; + -o-transition: height 500ms ease-in-out; + transition: height 500ms ease-in-out; +} +.bodywebsite .owl-carousel { + display: none; + width: 100%; + -webkit-tap-highlight-color: transparent; + /* position relative and z-index fix webkit rendering fonts issue */ + position: relative; + z-index: 1; +} +.bodywebsite .owl-carousel .owl-stage { + position: relative; + -ms-touch-action: pan-Y; +} +.bodywebsite .owl-carousel .owl-stage:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} +.bodywebsite .owl-carousel .owl-stage-outer { + position: relative; + overflow: hidden; + /* fix for flashing background */ + -webkit-transform: translate3d(0px, 0px, 0px); +} +.bodywebsite .owl-carousel .owl-controls .owl-nav .owl-prev, +.bodywebsite .owl-carousel .owl-controls .owl-nav .owl-next, +.bodywebsite .owl-carousel .owl-controls .owl-dot { + cursor: pointer; + cursor: hand; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.bodywebsite .owl-carousel.owl-loaded { + display: block; +} +.bodywebsite .owl-carousel.owl-loading { + opacity: 0; + display: block; +} +.bodywebsite .owl-carousel.owl-hidden { + opacity: 0; +} +.bodywebsite .owl-carousel .owl-refresh .owl-item { + display: none; +} +.bodywebsite .owl-carousel .owl-item { + position: relative; + min-height: 1px; + float: left; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.bodywebsite .owl-carousel.owl-text-select-on .owl-item { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.bodywebsite .owl-carousel .owl-grab { + cursor: move; + cursor: -webkit-grab; + cursor: grab; +} +.bodywebsite .owl-carousel.owl-rtl { + direction: rtl; +} +.bodywebsite .owl-carousel.owl-rtl .owl-item { + float: right; +} +.bodywebsite .no-js .owl-carousel { + display: block; +} +.bodywebsite .owl-carousel .owl-item .owl-lazy { + opacity: 0; + -webkit-transition: opacity 400ms ease; + -moz-transition: opacity 400ms ease; + -ms-transition: opacity 400ms ease; + -o-transition: opacity 400ms ease; + transition: opacity 400ms ease; +} +.bodywebsite .owl-carousel .owl-video-wrapper { + position: relative; + height: 100%; + background: #000; +} +.bodywebsite .owl-carousel .owl-video-play-icon { + position: absolute; + height: 80px; + width: 80px; + left: 50%; + top: 50%; + margin-left: -40px; + margin-top: -40px; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + cursor: pointer; + z-index: 1; + -webkit-transition: scale 100ms ease; + -moz-transition: scale 100ms ease; + -ms-transition: scale 100ms ease; + -o-transition: scale 100ms ease; + transition: scale 100ms ease; +} +.bodywebsite .owl-carousel .owl-video-play-icon:before { + content: '\f144'; +} +.bodywebsite .owl-carousel .owl-video-play-icon:hover { + -webkit-transform: scale(1.3); + transform: scale(1.3); +} +.bodywebsite .owl-carousel .owl-video-playing .owl-video-tn, +.bodywebsite .owl-carousel .owl-video-playing .owl-video-play-icon { + display: none; +} +.bodywebsite .owl-carousel .owl-video-tn { + opacity: 0; + height: 100%; + background-position: center center; + background-repeat: no-repeat; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + -webkit-transition: opacity 400ms ease; + -moz-transition: opacity 400ms ease; + -ms-transition: opacity 400ms ease; + -o-transition: opacity 400ms ease; + transition: opacity 400ms ease; +} +.bodywebsite .owl-carousel .owl-video-frame { + position: relative; + z-index: 1; +} +.bodywebsite .owl-carousel .owl-stage { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} +.bodywebsite .owl-carousel .owl-item { + float: none; + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} +.bodywebsite .owl-carousel .item { + width: 100%; +} +.bodywebsite .owl-carousel-center .owl-item { + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} +.bodywebsite .owl-carousel-center .owl-stage { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; +} +.bodywebsite .owl-prev, +.bodywebsite .owl-next { + position: absolute; + top: 50%; + transform: translateY(-50%); + color: #000; + transition: .22s; +} +.bodywebsite .owl-prev.disabled, +.bodywebsite .owl-next.disabled { + opacity: 0; +} +.bodywebsite .owl-prev:hover, +.bodywebsite .owl-next:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .owl-prev { + left: 0; +} +.bodywebsite .owl-prev:before { + content: '\e5c4'; +} +.bodywebsite .owl-next { + right: 0; +} +.bodywebsite .owl-next:before { + content: '\e5c8'; +} +.bodywebsite .owl-dots { + text-align: center; +} +.bodywebsite .owl-dot { + display: inline-block; +} +.bodywebsite .owl-numbering-default { + padding-bottom: 15px; +} +.bodywebsite .owl-numbering-default > * { + display: inline-block; +} +.bodywebsite .owl-numbering-default .numbering-current { + min-width: 16px; + font: 700 25px "Roboto", Helvetica, Arial, sans-serif; + color: #000; + transition: .33s all ease; +} +.bodywebsite .owl-numbering-default .numbering-separator { + position: relative; + display: inline-block; + margin: 0 10px; +} +.bodywebsite .owl-numbering-default .numbering-separator:after { + position: absolute; + top: -23px; + left: -12px; + content: ''; + width: 2px; + height: 51px; + transform-origin: 50% 75%; + transform: rotate(30deg); + background: rgba(0, 0, 0, 0.3); +} +.bodywebsite .owl-numbering-default .numbering-count { + position: relative; + top: 19px; + left: -7px; + font: 400 18px "Roboto", Helvetica, Arial, sans-serif; + color: rgba(0, 0, 0, 0.3); +} +.bodywebsite .owl-carousel-inverse .owl-next, +.bodywebsite .owl-carousel-inverse .owl-prev { + color: #fff; +} +.bodywebsite .owl-carousel-inverse .owl-next:hover, +.bodywebsite .owl-carousel-inverse .owl-prev:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .owl-carousel-inverse .owl-numbering-default .numbering-current { + color: #fff; +} +.bodywebsite .owl-carousel-inverse .owl-numbering-default .numbering-separator:after { + background: rgba(255, 255, 255, 0.3); +} +.bodywebsite .owl-carousel-inverse .owl-numbering-default .numbering-count { + color: rgba(255, 255, 255, 0.3); +} +.bodywebsite .owl-carousel-dark .owl-next, +.bodywebsite .owl-carousel-dark .owl-prev { + color: #000; +} +.bodywebsite .owl-carousel-dark .owl-next:hover, +.bodywebsite .owl-carousel-dark .owl-prev:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .owl-nav-position-numbering .owl-next, +.bodywebsite .owl-nav-position-numbering .owl-prev { + top: auto; + bottom: -53px; + transform: none; +} +.bodywebsite .owl-nav-position-numbering .owl-prev { + left: auto; + right: calc(92%); +} +.bodywebsite .owl-nav-position-numbering .owl-next { + right: auto; + left: calc(92%); +} +.bodywebsite .owl-nav-position-numbering + .owl-numbering { + margin-top: 15px; +} +.bodywebsite .owl-nav-bottom-left .owl-nav { + margin-top: 15px; +} +.bodywebsite .owl-nav-bottom-left .owl-next, +.bodywebsite .owl-nav-bottom-left .owl-prev { + display: inline-block; + position: static; + top: auto; + transform: none; +} +.bodywebsite .owl-nav-bottom-left .owl-prev { + left: auto; +} +.bodywebsite .owl-nav-bottom-left .owl-next { + right: auto; + margin-left: 10px; +} +.bodywebsite .owl-style-minimal .item { + width: 100%; +} +.bodywebsite .owl-style-minimal .item img { + width: 100%; +} +.bodywebsite .owl-style-minimal .owl-dots { + margin-top: 10px; + text-align: center; +} +.bodywebsite .owl-style-minimal .owl-dot { + width: 8px; + height: 8px; + border-radius: 10px; + background: #dedede; + transition: .33s all ease; +} +.bodywebsite .owl-style-minimal .owl-dot.active, +.bodywebsite .owl-style-minimal .owl-dot:hover { + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .owl-style-minimal .owl-dot + .owl-dot { + margin-left: 8px; +} +.bodywebsite .owl-style-minimal-inverse .owl-dot { + background: #74787C; +} +@media (min-width: 992px) { + .bodywebsite .owl-spacing-1 { + padding-right: 60px; + padding-left: 60px; + } +} +@media (min-width: 1200px) { + .bodywebsite .owl-spacing-1 { + padding: 0; + } + .bodywebsite .owl-spacing-1 .owl-item { + padding-right: 41px; + padding-left: 41px; + } + .bodywebsite .owl-spacing-1 .owl-prev { + left: -6%; + } + .bodywebsite .owl-spacing-1 .owl-next { + right: -6%; + } +} +.bodywebsite .owl-nav-classic .owl-nav { + display: none; +} +@media (min-width: 992px) { + .bodywebsite .owl-nav-classic .owl-dots { + display: none !important; + } + .bodywebsite .owl-nav-classic .owl-nav { + display: block; + } + .bodywebsite .owl-nav-classic .owl-nav .owl-prev, + .bodywebsite .owl-nav-classic .owl-nav .owl-next { + top: 39%; + transform: translateY(-45%); + width: 45px; + height: 45px; + line-height: 45px; + color: #fff; + background: rgba(255, 255, 255, 0.2); + text-align: center; + font: 400 20px/45px 'fl-flat-icons-set-2'; + } + .bodywebsite .owl-nav-classic .owl-nav .owl-prev:hover, + .bodywebsite .owl-nav-classic .owl-nav .owl-next:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + } + .bodywebsite .owl-nav-classic .owl-nav .owl-prev { + padding-right: 3px; + } + .bodywebsite .owl-nav-classic .owl-nav .owl-prev:before { + position: relative; + display: inline-block; + content: '\e015'; + transform: scale(-1, 1); + } + .bodywebsite .owl-nav-classic .owl-nav .owl-next { + padding-left: 3px; + } + .bodywebsite .owl-nav-classic .owl-nav .owl-next:before { + content: '\e015'; + } +} +.bodywebsite .owl-nav-modern .owl-nav { + display: none; +} +@media (min-width: 1400px) { + .bodywebsite .owl-nav-modern .owl-dots { + display: none !important; + } + .bodywebsite .owl-nav-modern .owl-nav { + display: block; + } + .bodywebsite .owl-nav-modern .owl-nav .owl-prev:before, + .bodywebsite .owl-nav-modern .owl-nav .owl-next:before { + content: ''; + } + .bodywebsite .owl-nav-modern .owl-nav .owl-prev:hover, + .bodywebsite .owl-nav-modern .owl-nav .owl-next:hover { + opacity: 0.5; + } + .bodywebsite .owl-nav-modern .owl-nav .owl-prev { + left: -58px; + } + .bodywebsite .owl-nav-modern .owl-nav .owl-next { + right: -50px; + } + .bodywebsite .owl-nav-modern .owl-nav .owl-next { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + } +} +@-webkit-keyframes rd-navbar-slide-down { + 0% { + transform: translateY(-100%); + } + 100% { + transform: translateY(0); + } +} + +.rd-navbar-group.rd-navbar-search-wrap.toggle-original-elements.active { + overflow: hidden; +} + +.bodywebsite .rd-navbar-wrap, +.bodywebsite .rd-navbar-static .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu, +.bodywebsite .rd-navbar-static .rd-navbar-inner, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-wrap, +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu, +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-group, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search { + transition: 0.3s all cubic-bezier(0.785, 0.135, 0.15, 0.86); +} +.bodywebsite .rd-navbar, +.bodywebsite .rd-navbar.rd-navbar--is-clone { + display: none; +} +.bodywebsite .rd-navbar-fixed, +.bodywebsite .rd-navbar-static, +.bodywebsite .rd-navbar-fullwidth, +.bodywebsite .rd-navbar-sidebar { + display: block; +} +.bodywebsite .rd-navbar--no-transition, +.bodywebsite .rd-navbar--no-transition * { + transition: none !important; +} +.bodywebsite .rd-navbar-wrap { + position: relative; + z-index: 10; +} +.bodywebsite .rd-navbar-wrap, +.bodywebsite .rd-navbar, +.bodywebsite .rd-navbar-brand, +.bodywebsite .rd-navbar-slogan, +.bodywebsite .rd-navbar-dropdown, +.bodywebsite .rd-navbar-megamenu, +.bodywebsite .rd-navbar-collapse-items, +.bodywebsite .brand-name, +.bodywebsite .rd-navbar-nav, +.bodywebsite .rd-navbar-panel, +.bodywebsite .rd-navbar-search-form-input, +.bodywebsite .rd-navbar-search-form-submit, +.bodywebsite .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-live-search-results, +.bodywebsite .rd-navbar-search-form { + transition: 0.33s all ease-out; +} +.bodywebsite .rd-navbar-collapse-toggle { + display: inline-block; + position: relative; + width: 48px; + height: 48px; + line-height: 48px; + cursor: pointer; + color: #00030a; + display: none; +} +.bodywebsite .rd-navbar-collapse-toggle span { + top: 50%; + margin-top: -3px; +} +.bodywebsite .rd-navbar-collapse-toggle span, +.bodywebsite .rd-navbar-collapse-toggle span:before, +.bodywebsite .rd-navbar-collapse-toggle span:after { + position: absolute; + width: 6px; + height: 6px; + line-height: 6px; + text-align: center; + background: #00030a; + left: 50%; + margin-left: -3px; + border-radius: 50%; + transition: .3s all ease; +} +.bodywebsite .rd-navbar-collapse-toggle span:before, +.bodywebsite .rd-navbar-collapse-toggle span:after { + content: ''; +} +.bodywebsite .rd-navbar-collapse-toggle span:before { + bottom: 100%; + margin-bottom: 3px; +} +.bodywebsite .rd-navbar-collapse-toggle span:after { + top: 100%; + margin-top: 3px; +} +.bodywebsite .rd-navbar-collapse-toggle.active span { + transform: scale(0.7); +} +.bodywebsite .rd-navbar-collapse-toggle.active span:before { + transform: translateY(18px); +} +.bodywebsite .rd-navbar-collapse-toggle.active span:after { + transform: translateY(-18px); +} +.bodywebsite .rd-navbar--has-sidebar body { + padding-left: 270px; +} +.bodywebsite .rd-navbar--is-stuck { + border-bottom: 1px solid #e5e7e9; +} +.bodywebsite .rd-navbar.rd-navbar-fixed + .rd-navbar.rd-navbar--is-clone, +.bodywebsite .rd-navbar.rd-navbar-sidebar + .rd-navbar.rd-navbar--is-clone { + display: none; +} +.bodywebsite .rd-navbar { + display: none; + background: #fff; + box-shadow: none; +} +.bodywebsite .rd-navbar-toggle { + display: inline-block; + position: relative; + width: 48px; + height: 48px; + line-height: 48px; + cursor: pointer; + color: #000; + background-color: transparent; + border: none; + display: none; +} +.bodywebsite .rd-navbar-toggle span { + position: relative; + display: block; + margin: auto; + transition: .3s all ease; +} +.bodywebsite .rd-navbar-toggle span:after, +.bodywebsite .rd-navbar-toggle span:before { + content: ""; + position: absolute; + left: 0; + top: -8px; + transition: .3s all ease; +} +.bodywebsite .rd-navbar-toggle span:after { + top: 8px; +} +.bodywebsite .rd-navbar-toggle span:after, +.bodywebsite .rd-navbar-toggle span:before, +.bodywebsite .rd-navbar-toggle span { + width: 24px; + height: 4px; + background-color: #000; + backface-visibility: hidden; + border-radius: 2px; +} +.bodywebsite .rd-navbar-toggle span { + transform: rotate(180deg); +} +.bodywebsite .rd-navbar-toggle span:before, +.bodywebsite .rd-navbar-toggle span:after { + transform-origin: 1.71429px center; +} +.bodywebsite .rd-navbar-toggle.active span { + transform: rotate(360deg); +} +.bodywebsite .rd-navbar-toggle.active span:before, +.bodywebsite .rd-navbar-toggle.active span:after { + top: 0; + width: 15px; +} +.bodywebsite .rd-navbar-toggle.active span:before { + -webkit-transform: rotate3d(0, 0, 1, -40deg); + transform: rotate3d(0, 0, 1, -40deg); +} +.bodywebsite .rd-navbar-toggle.active span:after { + -webkit-transform: rotate3d(0, 0, 1, 40deg); + transform: rotate3d(0, 0, 1, 40deg); +} +.bodywebsite .rd-navbar-toggle:focus { + outline: none; +} +.bodywebsite .rd-navbar-brand { + transition: none !important; +} +.bodywebsite .rd-navbar-brand svg { + fill: #000; +} +.bodywebsite .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-search .rd-search-submit, +.bodywebsite .buttonwithnoborder { + background: none; + border: none; + display: inline-block; + padding: 0; + outline: none; + outline-offset: 0; + cursor: pointer; + -webkit-appearance: none; +} +.bodywebsite .rd-navbar-search .rd-navbar-search-toggle::-moz-focus-inner, +.bodywebsite .rd-navbar-search .rd-search-submit::-moz-focus-inner { + border: none; + padding: 0; +} +.bodywebsite .rd-navbar-search .form-input::-ms-clear { + display: none; +} +.bodywebsite .rd-navbar-search-toggle { + display: inline-block; + width: 36px; + height: 36px; + text-align: center; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; +} +.bodywebsite .rd-navbar-search-toggle:before { + content: '\f002'; + position: absolute; + left: 0; + top: 0; +} +.bodywebsite .rd-navbar-search-toggle:after { + display: none; +} +.bodywebsite .rd-navbar-aside { + pointer-events: none; +} +.bodywebsite .rd-navbar-aside > * { + pointer-events: auto; +} +.bodywebsite .rd-navbar-aside-toggle { + display: none; + pointer-events: auto; +} +.bodywebsite .rd-navbar-static .rd-navbar-search-form-input input, +.bodywebsite .rd-navbar-sidebar .rd-navbar-search-form-input input, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-search-form-input input { + width: 100%; + padding: 0 10px; + font-size: 16px; +} +.bodywebsite .rd-navbar-static:after, +.bodywebsite .rd-navbar-fullwidth:after { + content: ''; + background: #fff; +} +.bodywebsite .rd-navbar-static .rd-navbar-brand, +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-brand, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-search-toggle { + position: relative; + z-index: 2; +} +.bodywebsite .rd-navbar-static .rd-navbar-inner, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-inner { + position: relative; + max-width: 1200px; + padding-left: 15px; + padding-right: 15px; + margin-left: auto; + margin-right: auto; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a { + position: relative; + padding: 5px 0; + font-size: 13px; + line-height: 1.2; + color: #00030a; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a .label, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a .label { + position: absolute; + left: 0; + margin: -18px 0 0 0; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-static .rd-navbar-nav > li > a, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a { + font-size: 14px; + } +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li.active > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.active > a { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li.focus > a, +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.focus > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-megamenu { + opacity: 0; + visibility: hidden; + font-size: 14px; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav .rd-navbar-submenu.focus, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav .rd-navbar-submenu.focus { + opacity: 1; + visibility: visible; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-megamenu { + transform: translateY(30px); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-megamenu { + transform: translateY(0); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown { + transform: translateX(-20px); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown { + transform: translateX(0); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown { + display: block; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li { + display: inline-block; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav li.rd-navbar--has-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.rd-navbar--has-dropdown { + position: relative; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav li.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav li.focus > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-static .rd-navbar-nav li.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-nav li.opened > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.focus > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.focus > .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.opened > .rd-navbar-megamenu { + opacity: 1; + visibility: visible; + transform: translateY(0); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-dropdown { + position: absolute; + left: 0; + z-index: 5; + display: block; + margin-top: 27px; + text-align: left; + background: #fff; +} +.bodywebsite .rd-navbar-static .rd-navbar-list li, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list li { + padding-left: 5px; + padding-right: 5px; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a { + position: relative; + display: block; + width: 100%; + padding-left: 0; + padding-right: 14px; + font-size: 14px; + line-height: 1.3; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:before, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:before, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:before, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:before { + transition: .33s all ease; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:before, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:before, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:before, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:before { + position: absolute; + top: 0; + left: -6px; + content: '\f105'; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + line-height: inherit; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + opacity: 0; + visibility: hidden; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:hover { + padding-left: 14px; + padding-right: 0; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover:before, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:hover:before, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover:before, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:hover:before { + left: 0; + opacity: 1; + visibility: visible; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:focus, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:active, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:focus, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:active, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:focus, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:active, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:focus, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:active { + color: #9f9f9f; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover, +.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li + li, +.bodywebsite .rd-navbar-static .rd-navbar-list > li + li, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li + li, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li + li { + margin-top: 14px; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, + .bodywebsite .rd-navbar-static .rd-navbar-list > li > a, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a { + font-size: 16px; + } +} +@media (min-width: 1800px) { + .bodywebsite .rd-navbar-static .rd-navbar-dropdown > li + li, + .bodywebsite .rd-navbar-static .rd-navbar-list > li + li, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li + li, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li + li { + margin-top: 17px; + } +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown, +.bodywebsite .rd-navbar-static .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { + box-shadow: 0 0 13px 0 rgba(0, 0, 0, 0.13); + border-top: 2px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown { + width: 188px; + padding: 25px 25px 30px; + margin-left: -32px; + background: #fff; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-static .rd-navbar-dropdown, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown { + width: 235px; + } +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown .rd-navbar-dropdown { + position: absolute; + left: 100%; + margin-left: 91px; + top: -20px; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a { + display: block; + width: 100%; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:focus, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:active, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:focus, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:active { + color: #9f9f9f; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.focus > a, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.opened > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.focus > a, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.opened > a { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; +} +.bodywebsite .rd-navbar-static .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { + position: absolute; + z-index: 4; + display: table; + table-layout: fixed; + width: calc(70%); + left: 15px; + max-width: 1200px; + margin-top: 27px; + text-align: left; + background: #fff; +} +.bodywebsite .rd-navbar-static .rd-navbar-megamenu > li, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu > li { + position: relative; + display: table-cell; + padding: 34px 20px 30px 35px; +} +.bodywebsite .rd-navbar-static .rd-navbar-megamenu > li + li, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu > li + li { + border-left: 1px solid #ededed; +} +.bodywebsite .rd-navbar-static .rd-navbar-megamenu * + .rd-megamenu-header, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu * + .rd-megamenu-header { + margin-top: 40px; +} +.bodywebsite .rd-navbar-static .rd-navbar-megamenu * + .rd-navbar-list, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu * + .rd-navbar-list { + margin-top: 20px; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-static .rd-navbar-megamenu, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { + width: 1140px; + } + .bodywebsite .rd-navbar-static .rd-navbar-megamenu > li, + .bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu > li { + padding: 44px 25px 50px 45px; + } +} +.bodywebsite .rd-navbar-static .rd-navbar-submenu-toggle, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-submenu-toggle { + display: none; + cursor: pointer; + z-index: 100; +} +.bodywebsite .rd-navbar-static .rd-navbar-submenu-toggle:hover, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-submenu-toggle:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-submenu-toggle { + display: none; + -webkit-align-self: center; + -ms-flex-item-align: center; + align-self: center; + width: 24px; + text-align: center; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-submenu-toggle::after { + content: '\f107'; + position: relative; + display: inline-block; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + text-align: center; + transition: 0.4s all ease; + z-index: 2; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + will-change: transform; + -webkit-filter: blur(0); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-static .rd-navbar-nav > li li.opened > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-static .rd-navbar-nav > li li > a:hover + .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li li.opened > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li li > a:hover + .rd-navbar-submenu-toggle::after { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-static .rd-navbar-nav > li.opened > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a:hover + .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.opened > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a:hover + .rd-navbar-submenu-toggle::after { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown .rd-navbar-submenu-toggle, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown .rd-navbar-submenu-toggle { + display: none; + vertical-align: middle; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown .rd-navbar-submenu-toggle::after { + top: 1px; +} +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.opened > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover + .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.opened > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover + .rd-navbar-submenu-toggle::after { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-clone, +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone { + display: none; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-clone.rd-navbar--is-stuck, +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone.rd-navbar--is-stuck { + display: block; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-stuck, +.bodywebsite .rd-navbar-static.rd-navbar--is-clone, +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-stuck, +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone { + position: fixed; + left: 0; + top: 0; + right: 0; + z-index: 999; + background: #fff; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-megamenu, +.bodywebsite .rd-navbar-static.rd-navbar--is-clone .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-stuck .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone .rd-navbar-megamenu { + margin-top: 18px; +} +.bodywebsite .rd-navbar-static .rd-navbar-megamenu, +.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { + position: absolute; + transform: translateY(30px); + text-align: left; + visibility: hidden; + opacity: 0; +} +.bodywebsite .rd-navbar-static .rd-navbar--has-dropdown, +.bodywebsite .rd-navbar-fullwidth .rd-navbar--has-dropdown { + position: relative; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-toggle, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-toggle { + display: inline-block; + z-index: 9999; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-dropdown, +.bodywebsite .rd-navbar-sidebar .rd-navbar-dropdown { + display: block; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items { + position: absolute; + width: 260px; + padding: 25px 15px; + box-shadow: none; + color: #00030a; + background: #fff; + font-size: 16px; + line-height: 34px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items li > *, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items li > * { + vertical-align: middle; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items li + li, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items li + li { + margin-top: 10px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items .icon, +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items a, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items .icon, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items a { + display: inline-block; + font-size: 16px; + line-height: 30px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items .icon, +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items a[class*="fa"]:before, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items .icon, +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items a[class*="fa"]:before { + display: inline-block; + width: 30px; + height: 30px; + padding-right: 5px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav, +.bodywebsite .rd-navbar-sidebar { + width: 270px; + left: 0; + top: 0; + font-size: 16px; + line-height: 34px; + color: #00030a; + background: #fff; + z-index: 998; +} +.bodywebsite .rd-navbar-static-smooth .rd-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 9999; +} +.bodywebsite .rd-navbar-static { + display: block; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li { + display: inline-block; +} +.bodywebsite .rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 10px; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search { + position: static; + z-index: 2; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search { + position: absolute; + top: -1px; + right: 4px; + bottom: 0; + left: 0; + z-index: 5; + opacity: 0; + visibility: hidden; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search-submit, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit { + width: 39px; + height: 39px; + line-height: 38px; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search-results-live, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search-results-live { + padding: 0; + border: 0; + background: #fff; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search-results-live > *, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search-results-live > * { + display: none; + padding: 16px; + border: 1px solid #e5e7e9; + border-top: 0; + border-radius: 0 0 3px 3px; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .form-label, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .form-label { + border: 0; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search.active .rd-search, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search.active .rd-search { + opacity: 1; + visibility: visible; + transition: .22s; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search.active .rd-search-results-live > *, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search.active .rd-search-results-live > * { + display: block; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search-wrap.active .rd-navbar-nav-inner, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search-wrap.active .rd-navbar-nav-inner { + position: relative; +} +.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search.active + .rd-navbar-nav, +.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search.active + .rd-navbar-nav { + opacity: 0; + visibility: hidden; + pointer-events: none; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-clone { + display: block; + transform: translateY(-105%); + transition: .33s all ease; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-clone.rd-navbar--is-stuck { + transform: translateY(0); +} +.bodywebsite .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner, +.bodywebsite .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner { + padding: 13px 30px; +} +.bodywebsite .rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-wrap, +.bodywebsite .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-wrap { + margin-top: 0; +} +.bodywebsite .rd-navbar-fullwidth { + display: block; + text-align: center; +} +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav { + width: 100%; +} +.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li + li { + margin-left: 20px; +} +.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-stuck .rd-navbar-panel { + display: none; +} +.bodywebsite .rd-navbar-fixed { + display: block; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-brand { + /*position: fixed; */ + top: 10px; + left: 64px; + z-index: 17; + display: block; + overflow: hidden; + text-align: left; + white-space: nowrap; + text-overflow: ellipsis; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-brand .brand-slogan { + display: none; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-panel { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + /* position: fixed; */ + left: 0; + top: 0; + right: 0; + padding: 4px; + height: 56px; + color: #9f9f9f; + z-index: 999; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-panel:before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + right: 0; + box-shadow: none; + border-bottom: 1px solid #e5e7e9; + background: #fff; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-toggle { + display: inline-block; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-wrap { + position: fixed; + top: 56px; + left: 0; + bottom: -56px; + z-index: 998; + width: 270px; + padding: 0 0 56px; + color: #fff; + background: #fff; + border-right: 1px solid #e5e7e9; + transform: translateX(-105%); + pointer-events: none; + overflow: hidden; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-wrap.active { + transform: translateX(0); +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner { + position: relative; + z-index: 100000; + height: 100%; + padding: 10px 0 20px; + pointer-events: auto; + -webkit-overflow-scrolling: touch; + overflow-x: hidden; + overflow-y: auto; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner::-webkit-scrollbar { + width: 4px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner::-webkit-scrollbar-thumb { + background: white; + border: none; + border-radius: 0; + opacity: .2; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner::-webkit-scrollbar-track { + background: #fff; + border: none; + border-radius: 0; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav { + display: block; + font-size: 16px; + line-height: 26px; + text-align: left; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li > a { + display: block; + font-size: 16px; + padding: 14px 56px 14px 16px; + color: #464a4d; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li:hover > a, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li:hover > a:hover, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.focus > a, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.focus > a:hover, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.active > a, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.active > a:hover, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > a, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > a:hover { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li:hover > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.focus > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.active > .rd-navbar-submenu-toggle::after, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle::after { + color: #fff; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav > li + li { + margin-top: 4px; +} +.bodywebsite .rd-navbar-fixed .label-custom { + position: relative; + top: -1px; + display: inline-block; + margin: 0 0 0 8px; + font-size: 60%; + line-height: 1; + padding: 6px .5em 5px; + vertical-align: middle; +} +.bodywebsite .iphone .rd-navbar-fixed .label-custom, +.bodywebsite .ipad .rd-navbar-fixed .label-custom, +.bodywebsite .mac .rd-navbar-fixed .label-custom { + padding: 6px .5em 4px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-dropdown > li > a, +.bodywebsite .rd-navbar-fixed .rd-navbar-list > li > a { + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-size: 12px; + line-height: 1.2; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-header { + padding: 0 15px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu > li { + padding-top: 15px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-header { + margin-top: 15px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu * + .rd-navbar-list { + margin-top: 10px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu { + display: none; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu { + position: relative; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu li > a { + font-size: 14px; + padding-left: 30px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown li li > a, +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu .rd-navbar-megamenu ul li li > a { + padding-left: 48px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-megamenu { + display: block; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-search, +.bodywebsite .rd-navbar-fixed .rd-navbar-btn-wrap { + display: block; + padding: 16px 5px; +} +.bodywebsite .rd-navbar-fixed .rd-search .rd-search-results-live { + display: none; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-btn-wrap { + padding: 16px 10px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-btn-wrap .btn { + width: 100%; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li .rd-navbar-megamenu { + transition: opacity 0.3s, height 0.4s ease; + opacity: 0; + height: 0; + overflow: hidden; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-megamenu { + padding: 3px 0; + opacity: 1; + height: auto; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle { + color: #fff; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle::after { + transform: rotate(180deg); + margin-top: -24px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-submenu-toggle::after { + content: '\f107'; + position: absolute; + top: 24px; + right: 0; + margin-top: -18px; + width: 65px; + height: 44px; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + line-height: 42px; + text-align: center; + transition: 0.4s all ease; + z-index: 2; + cursor: pointer; + color: #000; + will-change: transform; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse, +.bodywebsite .rd-navbar-fixed .rd-navbar-search-toggle { + position: fixed; + top: 4px; + height: 48px; + z-index: 1000; + background-color: transparent; + border: none; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-collapse:focus, +.bodywebsite .rd-navbar-fixed .rd-navbar-search-toggle:focus { + outline: none; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside { + top: 0; + right: 0; + width: 100%; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside, +.bodywebsite .rd-navbar-fixed .rd-navbar-aside .rd-navbar-aside-toggle { + position: fixed; + z-index: 1000; + display: block; + height: 48px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside.active .rd-navbar-aside-content { + visibility: visible; + opacity: 1; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle { + top: 4px; + right: 4px; + display: inline-block; + position: relative; + width: 48px; + height: 48px; + line-height: 48px; + cursor: pointer; + color: #000; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span { + top: 50%; + margin-top: -3px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span, +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:before, +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:after { + position: absolute; + width: 6px; + height: 6px; + line-height: 6px; + text-align: center; + background: #000; + left: 50%; + margin-left: -3px; + border-radius: 50%; + transition: .3s all ease; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:before, +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:after { + content: ''; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:before { + bottom: 100%; + margin-bottom: 3px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:after { + top: 100%; + margin-top: 3px; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle.active span { + transform: scale(0.7); +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle.active span:before { + transform: translateY(18px); +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle.active span:after { + transform: translateY(-18px); +} +.bodywebsite .rd-navbar-fixed .rd-navbar-aside-content { + position: absolute; + top: calc(107%); + right: 0; + width: calc(102%); + padding: 20px 35px; + margin: 0 -1px; + pointer-events: auto; + opacity: 0; + visibility: hidden; + transition: 0.23s all ease-out; +} +@media (min-width: 768px) { + .bodywebsite .rd-navbar-fixed .rd-navbar-aside-content { + width: auto; + } +} +.bodywebsite .rd-navbar-fixed.rd-navbar--is-clone { + display: none; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-fixed--visible { + display: block; +} +.bodywebsite .rd-navbar-fixed .rd-navbar-fixed--hidden { + display: none; +} +.bodywebsite html.rd-navbar-fixed-linked .page { + padding-top: 56px; +} +.bodywebsite html.rd-navbar-sidebar-linked body { + padding-left: 270px; +} +.bodywebsite .rd-navbar-sidebar { + position: fixed; + display: block; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > a, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > a:hover, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > a, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + background: transparent; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > .rd-navbar-submenu-toggle, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > .rd-navbar-submenu-toggle { + color: #fff; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > .rd-navbar-submenu-toggle:hover, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > .rd-navbar-submenu-toggle:hover { + cursor: pointer; + color: #fff; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li .rd-navbar-dropdown, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li .rd-navbar-megamenu { + transition: opacity 0.3s, height 0.4s ease; + opacity: 0; + height: 0; + overflow: hidden; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-megamenu { + opacity: 1; + height: auto; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > a { + background: transparent; + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle { + color: #fff; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle::after { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-submenu-toggle::after { + content: '\f078'; + position: absolute; + top: 22px; + right: 0; + margin-top: -22px; + width: 65px; + height: 44px; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + line-height: 42px; + text-align: center; + transition: 0.4s all ease; + z-index: 2; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-brand { + text-align: center; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items { + top: 0; + left: 0; + padding-top: 45px; + transform: scale(0.7); + transform-origin: 0% 0%; + opacity: 0; + visibility: hidden; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse { + position: absolute; + top: 4px; + left: 4px; + display: inline-block; + z-index: 1; +} +.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse.active .rd-navbar-collapse-items { + opacity: 1; + visibility: visible; + transform: scale(1); +} +.bodywebsite .rd-navbar-default .rd-navbar-nav > li > a { + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-weight: 700; + line-height: 1.2; + text-transform: uppercase; + color: #00030a; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .form-input, +.bodywebsite .rd-navbar-default .rd-navbar-search .form-label { + font-size: 16px; + line-height: 1.3; + color: #9b9b9b; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .form-label { + top: 18px; + left: 22px; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .form-input { + padding: 7px 45px 10px 22px; + height: auto; + min-height: 20px; + border: 1px solid #e5e7e9; + border-radius: 3px; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit { + font-size: 25px; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:active, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:focus, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:active, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:focus { + color: #00030a; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:hover, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit, +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:before { + font-family: 'Material Icons'; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle { + position: relative; +} +.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:after { + content: '\e5cd'; +} +.bodywebsite .rd-navbar-default.rd-navbar-fixed .rd-navbar-shop { + position: fixed; + top: 15px; + right: 15px; + z-index: 1001; +} +.bodywebsite .rd-navbar-default.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle { + display: none; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-inner, +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-group { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-inner { + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 44px 15px 42px; + font-size: 0; + line-height: 0; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-panel { + min-width: 100px; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-group { + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav-inner { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-right: 12px; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav { + z-index: 0; + margin-right: 40px; + transition: .25s; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 32px; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav { + margin-right: 77px; + } + .bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 48px; + } +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-toggle .rd-navbar-nav > li .rd-navbar-toggle { + display: none; +} +.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-dropdown { + margin-top: 54px; +} +.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner, +.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner { + padding: 18px 15px; +} +.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > .rd-navbar-dropdown { + margin-top: 49px; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-nav > li > a { + font-weight: 700; + font-size: 14px; + letter-spacing: .05em; + text-transform: uppercase; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-input, +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-label { + font-size: 16px; + line-height: 1.3; + color: #9b9b9b; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-label { + top: 18px; + left: 22px; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-input { + padding: 7px 45px 7px 22px; + height: auto; + min-height: 20px; + border: 1px solid #e5e7e9; + border-radius: 3px; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit { + text-align: center; + color: #000; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit:before { + position: static; + display: inline-block; + font-family: 'fl-bigmug-line'; + font-size: 20px; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle:hover, +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle:after { + display: none; +} +.bodywebsite .rd-navbar-corporate-dark .rd-navbar-aside { + width: 100%; + font-size: 14px; + line-height: 1.71429; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside-content { + border-bottom: 1px solid #000; + border-left: 1px solid #000; + background: #111; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside .list-units > li + li { + margin-top: 10px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside * + .rd-navbar-aside-group { + margin-top: 14px; +} +@media (min-width: 576px) { + .bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside-content { + width: auto; + } +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-group { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-inner { + padding: 0; + font-size: 0; + line-height: 0; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-panel { + min-width: 100px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside { + position: relative; + z-index: 2; + background: #3a3c3e; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside:after { + content: ''; + position: absolute; + top: 0; + bottom: 0; + left: 50%; + transform: translateX(-50%); + background: inherit; + width: 102vw; + z-index: -1; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content, +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content { + padding: 12px 15px; + margin-bottom: -5px; + transform: translateY(-5px); + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:first-child { + margin-top: 7px; + -webkit-flex-grow: 8; + -ms-flex-positive: 8; + flex-grow: 8; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-right: 20px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:last-child { + margin-top: 5px; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .list-units li { + display: inline-block; + margin-top: 0; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .list-units li:not(:last-child) { + margin-right: 25px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-group { + /* padding: 35px 15px; */ + padding-top: 18px; + padding-bottom: 18px; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav-inner { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav { + margin-right: 23px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li { + padding-left: 5px; + padding-right: 5px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li > a { + font-size: 13px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li.rd-navbar-submenu { + margin-right: -18px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle { + display: inline-block; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 32px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav .rd-navbar-dropdown > li { + padding-left: 5px; + padding-right: 5px; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li > a { + font-size: 14px; + } + .bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 29px; + } + .bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .list-units li:not(:last-child) { + margin-right: 50px; + } +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search { + position: static; + z-index: 2; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search .rd-search { + position: absolute; + top: -2px; + /* right: -2px; */ + bottom: 0; + left: 0; + z-index: 5; + opacity: 0; + visibility: hidden; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search .rd-search-submit { + width: 39px; + height: 39px; + line-height: 38px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search-wrap.active .rd-navbar-nav-wrap { + position: relative; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search.active + .rd-navbar-nav { + opacity: 0; + visibility: hidden; + pointer-events: none; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-toggle .rd-navbar-nav > li .rd-navbar-toggle { + display: none; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside, +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside { + display: none; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-clone .rd-navbar-group, +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-group { + padding-top: 18px; + padding-bottom: 18px; +} +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > .rd-navbar-dropdown { + margin-top: 18px; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-nav > li > a { + font: 400 16px "Roboto", Helvetica, Arial, sans-serif; + letter-spacing: .025em; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-input, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-label { + font-size: 16px; + line-height: 1.3; + color: #9b9b9b; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-label { + top: 18px; + left: 22px; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-input { + padding: 7px 22px 10px; + height: auto; + min-height: 20px; + border: 1px solid #e5e7e9; + border-radius: 3px; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-search-submit { + text-align: center; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-search-submit:before { + font-family: 'fl-bigmug-line'; + position: static; + display: inline-block; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { + font-size: 20px; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before { + font-family: 'fl-bigmug-line'; + color: #000; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { + font-family: 'Material Icons'; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:hover:before { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { + width: 36px; + height: 36px; + text-align: center; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { + display: block; + position: absolute; + left: 0; + top: 0; +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before { + content: ""; + transform: scale(1) rotate(0deg); +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { + content: ""; + opacity: 0; + transform: scale(0) rotate(-90deg); +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle.active:before { + opacity: 0; + transform: scale(0) rotate(90deg); +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle.active:after { + opacity: 1; + transform: scale(1) rotate(0deg); +} +.bodywebsite .rd-navbar-corporate-light .rd-navbar-aside { + width: 100%; + font-size: 14px; + line-height: 1.71429; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search { + padding: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search { + opacity: 0; + visibility: hidden; + position: fixed; + width: 100%; + padding: 8px 10px; + transform: translateY(-80%); + background: #fff; + border: 1px solid #e5e7e9; + border-top: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search.active .rd-search { + opacity: 1; + visibility: visible; + transform: translateY(0); +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .form-input { + padding: 7px 46px 10px 22px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit { + font-size: 20px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle:active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle:focus, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit:active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit:focus { + color: #000; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle:hover, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle { + position: fixed; + right: 56px; + top: 10px; + z-index: 1000; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit { + right: 10px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside-content { + border: 1px solid #e5e7e9; + background: #fff; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside .list-units > li + li { + margin-top: 10px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside * + .rd-navbar-aside-group { + margin-top: 14px; +} +@media (min-width: 576px) { + .bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside-content { + width: auto; + } +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-btn-wrap { + padding: 16px 5px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-inner { + padding: 0; + font-size: 0; + line-height: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-panel { + min-width: 100px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside { + position: relative; + z-index: 100; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap { + position: relative; + z-index: 1001; + padding: 6px 20px 6px 10px; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap:after { + content: ''; + position: absolute; + top: 0; + bottom: 0; + left: 50%; + transform: translateX(-50%); + border-bottom: 1px solid #e5e7e9; + width: 101vw; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap > * + * { + margin-left: 10px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content { + margin-bottom: -5px; + transform: translateY(-5px); + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:first-child { + margin-top: 7px; + -webkit-flex-grow: 8; + -ms-flex-positive: 8; + flex-grow: 8; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-right: 20px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:last-child { + margin-top: 5px; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .list-units li { + display: inline-block; + margin-top: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .list-units li:not(:last-child) { + margin-right: 30px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group { + padding: 35px 15px; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav-inner { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav { + margin-right: 40px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > a { + font-size: 15px; + padding: 7px 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li.rd-navbar-submenu { + margin-right: -24px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle { + position: relative; + top: 2px; + display: inline-block; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 37px; +} +@media (min-width: 1200px) { + .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > a { + font-size: 16px; + } + .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li + li { + margin-left: 48px; + } +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search { + position: relative; + z-index: 1500; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-label { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-input, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-label { + color: #fff; + font-size: 30px; + font-weight: 700; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-label { + top: 24px; + left: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-input { + padding: 10px 50px 9px 0; + background-color: transparent; + border: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .btn { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1000; + opacity: 0; + visibility: hidden; + background: rgba(0, 0, 0, 0.96); +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-inner { + width: 540px; + margin-top: 75px; + margin-left: auto; + margin-right: auto; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 1px solid #fff; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit { + position: relative; + left: 0; + top: 0; + width: 39px; + height: 39px; + font-size: 25px; + line-height: 39px; + transform: none; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit:active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit:focus { + color: #fff; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit:hover { + color: #ababab; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live { + position: relative; + display: block; + top: auto; + right: auto; + bottom: auto; + left: auto; + margin-top: 60px; + margin-left: auto; + margin-right: auto; + width: 800px; + font-size: 20px; + background-color: transparent; + opacity: 1; + visibility: visible; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live > * { + display: block; + padding: 0; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .active .search_list li { + top: 0; + opacity: 1; + visibility: visible; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search-quick-result { + display: none; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list { + margin: 0; + background-color: transparent; + text-align: left; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li { + position: relative; + top: 30px; + display: inline-block; + width: 48%; + padding: 0 15px; + text-align: left; + transition: 0.5s all ease-in-out; + opacity: 0; + visibility: hidden; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list .search_all { + top: 0; + margin-top: 40px; + display: inline-block; + width: 100%; + text-align: right; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(0) { + transition-delay: 0s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(1) { + transition-delay: 0.15s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(2) { + transition-delay: 0.3s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(3) { + transition-delay: 0.45s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(4) { + transition-delay: 0.6s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(5) { + transition-delay: 0.75s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(6) { + transition-delay: 0.9s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(7) { + transition-delay: 1.05s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(8) { + transition-delay: 1.2s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(9) { + transition-delay: 1.35s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(10) { + transition-delay: 1.5s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(0) { + transition-delay: 0s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(1) { + transition-delay: 0.2s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(2) { + transition-delay: 0.4s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(3) { + transition-delay: 0.6s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(4) { + transition-delay: 0.8s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(5) { + transition-delay: 1s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(6) { + transition-delay: 1.2s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(7) { + transition-delay: 1.4s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(8) { + transition-delay: 1.6s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(9) { + transition-delay: 1.8s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(10) { + transition-delay: 2s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .result-item:only-child { + top: 0; + width: 100%; + text-align: center; + transition-delay: 0s; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .result-item:nth-child(n + 3) { + margin-top: 50px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title { + font: 700 30px/26px Helvetica, Arial, sans-serif; + font-style: italic; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a:active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a:focus { + color: #fff; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a:hover { + color: #ababab; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title + p { + margin-top: 16px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_error { + line-height: 1.35; + text-align: center; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit { + display: inline-block; + padding: 10px 35px; + border: 2px solid; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:active:focus, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.active:focus, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:focus:active, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:focus { + color: #fff; + background-color: transparent; + border-color: #fff; +} +.bodywebsite .open > .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.dropdown-toggle, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:hover { + color: #414141; + background-color: #fff; + border-color: #fff; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.disabled, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit[disabled], +.bodywebsite fieldset[disabled] .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit { + pointer-events: none; + opacity: .5; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit .badge { + color: transparent; + background-color: #fff; +} +@media (min-width: 1600px) and (min-height: 767px) { + .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-inner { + margin-top: 10%; + } +} +@media (max-height: 767px) { + .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-results-live .result-item:nth-child(5), + .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-results-live .result-item:nth-child(6) { + display: none; + } + .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-results-live .search_list > li.search_all { + transition-delay: 0.8s; + } +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-search { + display: block; + z-index: 10000; + margin: 0; + opacity: 1; + visibility: visible; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-navbar-search-toggle { + z-index: 10002; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-navbar-search-toggle:after { + color: #fff; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-navbar-search-toggle:hover:after { + color: #ababab; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-toggle .rd-navbar-nav > li .rd-navbar-toggle { + display: none; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside-wrap, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside-wrap { + position: absolute; + top: -60px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-clone .rd-navbar-group, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-group { + padding-top: 17px; + padding-bottom: 17px; +} +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li > .rd-navbar-dropdown, +.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > .rd-navbar-dropdown { + margin-top: 50px; +} +html .bodywebsite.boxed.rd-navbar--has-sidebar body { + padding-left: 300px; + padding-right: 30px; +} +html .bodywebsite.boxed .rd-navbar--is-clone { + max-width: 1920px; + margin-left: auto; + margin-right: auto; +} + + +.bodywebsite .rd-parallax-inner { + position: relative; + overflow: hidden; + -webkit-transform: translate3d(0px, 0px, 0px); + transform: translate3d(0px, 0px, 0px); + z-index: 1; +} +.bodywebsite .rd-parallax-layer[data-type="media"] { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + height: 100%; + pointer-events: none; +} +.bodywebsite .rd-parallax-layer[data-type="media"] iframe { + width: 100%; + height: 100%; +} +.bodywebsite .rd-parallax-layer[data-url] { + -webkit-background-size: cover; + background-size: cover; + background-position: center center; +} +.bodywebsite .rd-parallax[class*="rd-parallax-overlay"] { + background-color: #000; + color: #fff; +} +.bodywebsite .rd-parallax[class*="rd-parallax-overlay"] .rd-parallax-layer[data-type="media"] { + opacity: 0.2; +} +.bodywebsite .rd-parallax[class*="rd-parallax-overlay"] .rd-parallax-layer[data-type="media"] + * { + position: relative; +} +.bodywebsite .rd-parallax.rd-parallax-overlay-2 .rd-parallax-layer[data-type="media"] { + opacity: 0.8; +} +.bodywebsite .google-map-markers { + display: none; +} +.bodywebsite .google-map-container { + width: 100%; +} +.bodywebsite .google-map { + height: 250px; + color: #333; +} +.bodywebsite .google-map img { + max-width: none !important; +} +@media (min-width: 576px) { + .bodywebsite .google-map { + height: 250px; + } +} +@media (min-width: 768px) { + .bodywebsite .google-map { + height: 400px; + } +} +@media (min-width: 1200px) { + .bodywebsite .google-map { + height: 450px; + } +} +@media (min-width: 1800px) { + .bodywebsite .google-map { + height: 532px; + } +} +.bodywebsite .rd-search { + position: relative; +} +.bodywebsite .rd-search .form-wrap { + display: block; + margin: 0; + font-size: 0; +} +.bodywebsite .rd-search label * { + margin-top: 0; +} +.bodywebsite .rd-search .rd-search-submit { + top: 19px; + right: -4px; + background-color: transparent; + border: none; + transform: translateY(-50%); +} +.bodywebsite .rd-search .text-mobile { + display: block; +} +.bodywebsite .rd-search .text-default { + display: none; +} +@media (min-width: 768px) { + .bodywebsite .rd-search .text-mobile { + display: none; + } + .bodywebsite .rd-search .text-default { + display: block; + } +} +.bodywebsite .rd-search-submit { + background: none; + border: none; + padding: 0; + outline: none; + outline-offset: 0; + -webkit-appearance: none; + display: inline-block; + position: relative; + width: 48px; + height: 48px; + line-height: 48px; + cursor: pointer; + color: #00030a; + text-align: center; + font-size: 22px; + position: absolute; + right: 0; + transition: color .33s; +} +.bodywebsite .rd-search-submit::-moz-focus-inner { + border: none; + padding: 0; +} +.bodywebsite .rd-search-submit:before { + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; +} +.bodywebsite .rd-search-submit.active { + transform: scale(0.7); +} +.bodywebsite .rd-search-submit:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-search-minimal { + position: relative; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + padding-left: 40px; + border-bottom: 1px solid #dedede; +} +.bodywebsite .rd-search-minimal:before { + content: '\e8b6'; + position: absolute; + top: 50%; + transform: translateY(-50%); + left: 10px; + font: 400 21px 'Material Icons'; + color: #000; +} +.bodywebsite .rd-search-minimal .form-wrap { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.bodywebsite .rd-search-minimal .form-label, +.bodywebsite .rd-search-minimal .form-input { + font: 400 16px/24px "Roboto", Helvetica, Arial, sans-serif; + color: rgba(0, 0, 0, 0.2); + letter-spacing: -0.025em; +} +.bodywebsite .rd-search-minimal .form-label { + top: 29px; +} +.bodywebsite .rd-search-minimal .form-input { + padding: 17px 20px; +} +.bodywebsite .rd-search-minimal button[type='submit'] { + padding: 0 20px; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} +@media (min-width: 768px) { + .bodywebsite .rd-search-minimal .form-label, + .bodywebsite .rd-search-minimal .form-input { + font-size: 19px; + } +} +.bodywebsite .rd-search-classic { + overflow: hidden; + border: 1px solid #dedede; + border-radius: 0; +} +.bodywebsite .rd-search-classic .form-input { + min-height: 50px; + padding: 13px 50px 15px 19px; + border: 0; +} +.bodywebsite .rd-search-classic .rd-search-submit { + position: absolute; + right: 0; + top: 0; + bottom: 0; + width: 40px; + line-height: 0; + height: auto; + transform: none; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + text-align: left; +} +.bodywebsite .rd-search-classic .rd-search-submit:before { + font: 400 25px 'Material Icons'; +} +.bodywebsite .search_error { + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; +} +.bodywebsite .rd-search-results-live { + position: absolute; + left: 0; + right: 0; + top: 100%; + z-index: 998; + margin: -3px 0 0; + font-size: 14px; + line-height: 34px; + text-align: left; + color: #9f9f9f; + opacity: 0; + visibility: hidden; +} +.bodywebsite .rd-search-results-live > * { + padding: 16px; + border: 0px solid #dedede; + border-top: 0; +} +.bodywebsite .rd-search-results-live .search-quick-result { + font: 700 14px/24px "Roboto", Helvetica, Arial, sans-serif; + color: #000; + letter-spacing: .06em; + text-transform: uppercase; +} +.bodywebsite .rd-search-results-live .search_list { + margin-top: 10px; + font-size: 16px; + line-height: 30px; +} +.bodywebsite .rd-search-results-live .search_list li + li { + margin-top: 20px; +} +.bodywebsite .rd-search-results-live .search_list .search_error { + padding-bottom: 10px; + font-size: 14px; + line-height: 1.1; +} +.bodywebsite .rd-search-results-live .search_link, +.bodywebsite .rd-search-results-live .search_link:active, +.bodywebsite .rd-search-results-live .search_link:focus { + color: #464a4d; +} +.bodywebsite .rd-search-results-live .search_link:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-search-results-live p { + margin-top: 0; + font-size: 14px; + line-height: 1.6; +} +.bodywebsite .rd-search-results-live .search_title { + margin-bottom: 0; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: 700; + color: #000; +} +.bodywebsite .rd-search-results-live .search_submit { + display: block; + padding: 6px 20px; + font-size: 14px; + font-weight: 700; + text-align: center; + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + border-radius: 5px; + border: 0; + text-transform: uppercase; + transition: 0.3s ease-out; +} +.bodywebsite .rd-search-results-live .search_submit:hover { + color: #fff; + background: #3a3c3e; +} +.bodywebsite .rd-search-results-live .match { + display: none; +} +@media (min-width: 1200px) { + .bodywebsite .rd-search-results-live .search_link p { + display: block; + } +} +.bodywebsite .rd-navbar-fixed-linked .rd-search-results-live { + display: none; +} +.bodywebsite .rd-search-results-live.active.cleared { + opacity: 0; + visibility: hidden; + transition-delay: .08s; +} +.bodywebsite .active .rd-search-results-live { + display: block; + opacity: 1; + visibility: visible; +} +.bodywebsite .rd-search-results .search_list { + text-align: left; + padding-left: 0; + font-size: 14px; + list-style-type: none; + counter-reset: result; +} +.bodywebsite .rd-search-results .result-item { + position: relative; + padding-left: 40px; + color: #9f9f9f; +} +.bodywebsite .rd-search-results .result-item:before { + position: absolute; + top: -1px; + left: 0; + content: counter(result, decimal-leading-zero) "."; + counter-increment: result; + font: 500 19px "Roboto", Helvetica, Arial, sans-serif; + line-height: 1; + color: #cdcdcd; +} +.bodywebsite .rd-search-results .result-item:only-child:before { + display: none; +} +.bodywebsite .rd-search-results .search { + color: #fff; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .rd-search-results .search_error .search { + color: #9f9f9f; + background-color: transparent; +} +.bodywebsite .rd-search-results .match em { + font: 700 12px/16px "Roboto", Helvetica, Arial, sans-serif; + font-style: normal; + text-transform: uppercase; + color: #000; +} +.bodywebsite .rd-search-results * + p { + margin-top: 10px; +} +.bodywebsite .rd-search-results * + .match { + margin-top: 5px; +} +.bodywebsite .rd-search-results * + .result-item { + margin-top: 35px; +} +@media (min-width: 576px) { + .bodywebsite .rd-search-results .result-item { + padding-left: 60px; + } + .bodywebsite .rd-search-results .result-item:before { + left: 15px; + font-size: 19px; + } +} +@media (min-width: 768px) { + .bodywebsite .rd-search-results .result-item:before { + top: 0; + } +} +@media (min-width: 992px) { + .bodywebsite .rd-search-results .result-item { + padding-left: 85px; + } + .bodywebsite .rd-search-results .result-item:before { + top: 0; + left: 40px; + } +} +@media (min-width: 1200px) { + .bodywebsite .rd-search-results .result-item { + padding-left: 100px; + } + .bodywebsite .rd-search-results .result-item:before { + left: 44px; + } +} +.bodywebsite .twitter-item-minimal .tweet-user { + font-size: 16px; + font-weight: 700; +} +.bodywebsite .twitter-item-minimal .tweet-user a, +.bodywebsite .twitter-item-minimal .tweet-user a:active, +.bodywebsite .twitter-item-minimal .tweet-user a:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .twitter-item-minimal .tweet-user a:hover { + color: #000; +} +.bodywebsite .twitter-item-minimal .tweet-user a:before { + content: '-'; +} +.bodywebsite .twitter-item-minimal .tweet-text a, +.bodywebsite .twitter-item-minimal .tweet-text a:active, +.bodywebsite .twitter-item-minimal .tweet-text a:focus { + color: #000; +} +.bodywebsite .twitter-item-minimal .tweet-text a:hover { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .twitter-item-minimal * + .tweet-text { + margin-top: 0; +} +.bodywebsite .twitter-item-minimal * + .tweet-user { + margin-top: 10px; +} +.bodywebsite .twitter-item-minimal + .twitter-item-minimal { + margin-top: 25px; +} +.bodywebsite .twitter-widget { + overflow: hidden; + background: #fff; + border-radius: 6px; + box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); +} +.bodywebsite .twitter-widget > a { + display: block; + color: #9f9f9f; +} +.bodywebsite .twitter-widget .tweet-text a, +.bodywebsite .twitter-widget .tweet-text a:active, +.bodywebsite .twitter-widget .tweet-text a:focus { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .twitter-widget .tweet-text a:hover { + color: #000; +} +.bodywebsite .twitter-widget .twitter-widget-time { + color: #9f9f9f; +} +.bodywebsite .twitter-widget .twitter-widget-meta > * { + line-height: 1.1; +} +.bodywebsite .twitter-widget .twitter-widget-meta > * + * { + margin-top: 5px; +} +.bodywebsite .twitter-widget .twitter-widget-media { + position: relative; + z-index: 1; + overflow: hidden; +} +.bodywebsite .twitter-widget .twitter-widget-media > img { + position: absolute; + top: 0; + right: 0; + left: 0; + min-height: 101%; +} +.bodywebsite .twitter-widget .twitter-widget-media:empty { + display: none; +} +.bodywebsite .twitter-widget .twitter-widget-media:not(:empty) { + padding-bottom: 42.5170068%; +} +.bodywebsite .twitter-widget .tweet-avatar { + display: block; + width: 48px; + height: 48px; + background: #dedede; +} +.bodywebsite .twitter-widget .twitter-widget-header { + padding: 30px 30px 0 30px; +} +.bodywebsite .twitter-widget .twitter-widget-inset { + padding: 25px 30px 15px; +} +.bodywebsite .twitter-widget .twitter-widget-footer { + padding: 15px 30px; +} +.bodywebsite * + .twitter-widget { + margin-top: 30px; +} +.bodywebsite .swiper-container { + margin: 0 auto; + position: relative; + overflow: hidden; + /* Fix of Webkit flickering */ + z-index: 1; + height: auto; +} +.bodywebsite .swiper-container .swiper-wrapper { + height: auto; + min-height: 36.25vw; +} +@media (min-width: 1800px) { + .bodywebsite .swiper-container .swiper-wrapper { + height: auto; + min-height: 680px; + } +} +.bodywebsite .swiper-container-no-flexbox .swiper-slide { + float: left; +} +.bodywebsite .swiper-container-vertical > .swiper-wrapper { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-flex-direction: column; + -webkit-flex-direction: column; + flex-direction: column; +} +.bodywebsite .swiper-wrapper { + position: relative; + width: 100%; + z-index: 1; + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-transition-property: -webkit-transform; + -moz-transition-property: -moz-transform; + -o-transition-property: -o-transform; + -ms-transition-property: -ms-transform; + transition-property: transform; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} +.bodywebsite .swiper-container-android .swiper-slide, +.bodywebsite .swiper-wrapper { + -webkit-transform: translate3d(0px, 0, 0); + -moz-transform: translate3d(0px, 0, 0); + -o-transform: translate(0px, 0px); + -ms-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); +} +.bodywebsite .swiper-container-multirow > .swiper-wrapper { + -webkit-box-lines: multiple; + -moz-box-lines: multiple; + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; +} +.bodywebsite .swiper-container-free-mode > .swiper-wrapper { + -webkit-transition-timing-function: ease-out; + -moz-transition-timing-function: ease-out; + -ms-transition-timing-function: ease-out; + -o-transition-timing-function: ease-out; + transition-timing-function: ease-out; + margin: 0 auto; +} +.bodywebsite .swiper-slide { + position: relative; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-flex-shrink: 0; + -ms-flex: 0 0 auto; + flex-shrink: 0; + width: 100%; + min-height: inherit; +} +.bodywebsite .swiper-container .swiper-notification { + position: absolute; + left: 0; + top: 0; + pointer-events: none; + opacity: 0; + z-index: -1000; +} +.bodywebsite .swiper-wp8-horizontal { + -ms-touch-action: pan-y; + touch-action: pan-y; +} +.bodywebsite .swiper-wp8-vertical { + -ms-touch-action: pan-x; + touch-action: pan-x; +} +.bodywebsite .swiper-nav { + position: absolute; + top: 50%; + right: 0; + left: 0; + z-index: 10; + pointer-events: none; + transform: translateY(-50%); +} +.bodywebsite .swiper-button-prev, +.bodywebsite .swiper-button-next { + z-index: 10; + width: 48px; + height: 48px; + background-size: 48px 48px; + color: #fff; + transition: 180ms ease-in-out; + text-align: center; + cursor: pointer; + pointer-events: auto; +} +.bodywebsite .swiper-button-prev:hover, +.bodywebsite .swiper-button-next:hover { + opacity: .7; +} +.bodywebsite .swiper-button-prev.swiper-button-disabled, +.bodywebsite .swiper-button-next.swiper-button-disabled { + opacity: 0; + cursor: auto; + pointer-events: none; +} +.bodywebsite .swiper-button-next { + transform: rotate(180deg); +} +.bodywebsite .swiper-pagination-wrap { + position: absolute; + bottom: 20px; + left: 50%; + width: 100%; + transform: translate3d(-50%, 0, 0); + z-index: 10; +} +@media (min-width: 992px) { + .bodywebsite .swiper-pagination-wrap { + bottom: 35px; + } +} +@media (min-width: 1200px) { + .bodywebsite .swiper-pagination-wrap { + bottom: 55px; + } +} +.bodywebsite .swiper-pagination { + display: block; + width: 100%; + text-align: center; + transition: 300ms; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + z-index: 10; +} +@media (min-width: 768px) { + .bodywebsite .swiper-pagination { + text-align: left; + } +} +.bodywebsite .swiper-pagination.swiper-pagination-hidden { + opacity: 0; +} +.bodywebsite .swiper-pagination-bullet { + display: inline-block; + width: 6px; + height: 6px; + border-radius: 20px; + background: #cdcdcd; + pointer-events: none; + transition: all 0.2s ease-out; +} +.bodywebsite .swiper-pagination-bullet + * { + margin-left: 10px; +} +@media (min-width: 768px) { + .bodywebsite .swiper-pagination-bullet { + width: 12px; + height: 12px; + pointer-events: auto; + } + .bodywebsite .swiper-pagination-bullet + * { + margin-left: 20px; + } +} +.bodywebsite .swiper-pagination-clickable .swiper-pagination-bullet { + cursor: pointer; +} +.bodywebsite .swiper-pagination-white .swiper-pagination-bullet { + background: #fff; +} +.bodywebsite .swiper-pagination-bullet:hover, +.bodywebsite .swiper-pagination-bullet-active { + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .swiper-pagination-white .swiper-pagination-bullet-active { + background: #fff; +} +.bodywebsite .swiper-pagination-black .swiper-pagination-bullet-active { + background: #000; +} +.bodywebsite .swiper-container-vertical > .swiper-pagination { + right: 10px; + top: 50%; + -webkit-transform: translate3d(0px, -50%, 0); + -moz-transform: translate3d(0px, -50%, 0); + -o-transform: translate(0px, -50%); + -ms-transform: translate3d(0px, -50%, 0); + transform: translate3d(0px, -50%, 0); +} +.bodywebsite .swiper-container-vertical > .swiper-pagination .swiper-pagination-bullet { + margin: 5px 0; + display: block; +} +.bodywebsite .swiper-container-horizontal > .swiper-pagination { + bottom: 20px; + left: 0; + width: 100%; +} +.bodywebsite .swiper-container-horizontal > .swiper-pagination .swiper-pagination-bullet { + margin: 0 5px; +} + +.bodywebsite .swiper-container-coverflow .swiper-wrapper { + /* Windows 8 IE 10 fix */ + -ms-perspective: 1200px; +} +.bodywebsite .swiper-container-fade.swiper-container-free-mode .swiper-slide { + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} +.bodywebsite .swiper-container-fade .swiper-slide { + pointer-events: none; +} +.bodywebsite .swiper-container-fade .swiper-slide .swiper-slide { + pointer-events: none; +} +.bodywebsite .swiper-container-fade .swiper-slide-active, +.bodywebsite .swiper-container-fade .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.bodywebsite .swiper-container-cube { + overflow: visible; +} +.bodywebsite .swiper-container-cube .swiper-slide { + pointer-events: none; + visibility: hidden; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + width: 100%; + height: 100%; + z-index: 1; +} +.bodywebsite .swiper-container-cube.swiper-container-rtl .swiper-slide { + -webkit-transform-origin: 100% 0; + -moz-transform-origin: 100% 0; + -ms-transform-origin: 100% 0; + transform-origin: 100% 0; +} +.bodywebsite .swiper-container-cube .swiper-slide-active, +.bodywebsite .swiper-container-cube .swiper-slide-next, +.bodywebsite .swiper-container-cube .swiper-slide-prev, +.bodywebsite .swiper-container-cube .swiper-slide-next + .swiper-slide { + pointer-events: auto; + visibility: visible; +} +.bodywebsite .swiper-container-cube .swiper-slide-shadow-top, +.bodywebsite .swiper-container-cube .swiper-slide-shadow-bottom, +.bodywebsite .swiper-container-cube .swiper-slide-shadow-left, +.bodywebsite .swiper-container-cube .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; +} +.bodywebsite .swiper-container-cube .swiper-cube-shadow { + position: absolute; + left: 0; + bottom: 0px; + width: 100%; + height: 100%; + background: #000; + opacity: 0.6; + -webkit-filter: blur(50px); + filter: blur(50px); + z-index: 0; +} +.bodywebsite .swiper-scrollbar { + position: relative; + -ms-touch-action: none; +} +.bodywebsite .swiper-container-horizontal > .swiper-scrollbar { + position: absolute; + top: 0; + left: 0; + z-index: 50; + height: 5px; + width: 100%; +} +.bodywebsite .swiper-container-vertical > .swiper-scrollbar { + position: absolute; + right: 3px; + top: 1%; + z-index: 50; + width: 5px; + height: 98%; +} +.bodywebsite .swiper-scrollbar-drag { + height: 100%; + width: 100%; + position: relative; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; + left: 0; + top: 0; +} +.bodywebsite .swiper-scrollbar-cursor-drag { + cursor: move; +} +.bodywebsite .swiper-lazy-preloader { + width: 42px; + height: 42px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -21px; + margin-top: -21px; + z-index: 10; + -webkit-transform-origin: 50%; + -moz-transform-origin: 50%; + transform-origin: 50%; + -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite; + -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite; + animation: swiper-preloader-spin 1s steps(12, end) infinite; +} +.bodywebsite .swiper-lazy-preloader:after { + display: block; + content: ""; + width: 100%; + height: 100%; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-position: 50%; + -webkit-background-size: 100%; + background-size: 100%; + background-repeat: no-repeat; +} +.bodywebsite .swiper-lazy-preloader-white:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); +} +@-webkit-keyframes swiper-preloader-spin { + 100% { + -webkit-transform: rotate(360deg); + } +} +@keyframes swiper-preloader-spin { + 100% { + transform: rotate(360deg); + } +} +.bodywebsite .swiper-slide > .vide__body, +.bodywebsite .swiper-slide > .parallax_cnt { + height: 100%; +} +.bodywebsite .swiper-slide { + position: relative; + text-align: center; + white-space: nowrap; + background-position: center center; + overflow: hidden; +} +.bodywebsite .swiper-slide:not(.vide):not(.rd-parallax):before, +.bodywebsite .swiper-slide .parallax_cnt:before, +.bodywebsite .swiper-slide .vide__body:before { + content: ''; + display: inline-block; + height: 50%; +} +.bodywebsite .swiper-slide-caption { + display: inline-block; + width: 100%; + max-height: 100%; + margin-left: -0.25em; + vertical-align: middle; + white-space: normal; + z-index: 1; +} +.bodywebsite .swiper-variant-1, +.bodywebsite .swiper-variant-1 .swiper-wrapper { + height: auto; + min-height: calc(44vh); +} +.bodywebsite .swiper-variant-1 .swiper-slide-caption { + padding: 40px 0 40px; +} +.bodywebsite .swiper-variant-1 .swiper-button-prev, +.bodywebsite .swiper-variant-1 .swiper-button-next { + display: none; +} +.bodywebsite .swiper-variant-1 .slider-text { + display: none; +} +.bodywebsite .swiper-variant-1 .jumbotron-custom + * { + margin-top: 5px; +} +.bodywebsite .swiper-variant-1 * + .button-block { + margin-top: 27px; +} +@media (min-width: 768px) { + .bodywebsite .swiper-variant-1, + .bodywebsite .swiper-variant-1 .swiper-wrapper { + height: auto; + min-height: 36.25vw; + } + .bodywebsite .swiper-variant-1 .swiper-slide-caption { + padding: 60px 0 115px; + } + .bodywebsite .swiper-variant-1 .slider-header { + font-size: 50px; + } + .bodywebsite .swiper-variant-1 .slider-text { + display: block; + } +} +@media (min-width: 992px) { + .bodywebsite .swiper-variant-1 .swiper-slide-caption { + padding: 100px 0 155px; + } + .bodywebsite .swiper-variant-1 .swiper-button-prev, + .bodywebsite .swiper-variant-1 .swiper-button-next { + position: absolute; + top: 50%; + transform: translateY(-59%); + z-index: 10; + display: block; + transition: .3s all ease; + } + .bodywebsite .swiper-variant-1 .swiper-button-prev { + left: 5.1%; + transform: scale(-1, 1); + } + .bodywebsite .swiper-variant-1 .swiper-button-next { + right: 5.1%; + } +} +@media (min-width: 1200px) { + .bodywebsite .swiper-variant-1 .slider-header { + font-size: 59px; + } + .bodywebsite .swiper-variant-1 .swiper-button-prev { + left: 20px; + } + .bodywebsite .swiper-variant-1 .swiper-button-next { + right: 20px; + } +} +@media (min-width: 1599px) { + .bodywebsite .swiper-variant-1 .swiper-button-prev { + left: calc(50vw - 1170px / 2 - 170px + (1170px / 12) * 0); + } + .bodywebsite .swiper-variant-1 .swiper-button-next { + right: calc(50vw - 1170px / 2 - 170px + (1170px / 12) * 0); + } +} +@media (min-width: 1800px) { + .bodywebsite .swiper-variant-1, + .bodywebsite .swiper-variant-1 .swiper-wrapper { + height: auto; + min-height: 680px; + } +} +.bodywebsite .ui-to-top { + width: 40px; + height: 40px; + font-size: 18px; + line-height: 38px; + border-radius: 50%; + position: fixed; + right: 15px; + bottom: 15px; + overflow: hidden; + text-align: center; + text-decoration: none; + z-index: 20; + transition: .3s all ease; + box-shadow: 0 0 1px 0px rgba(55, 195, 134, 0.3); + transform: translateY(100px); +} +.bodywebsite .ui-to-top, +.bodywebsite .ui-to-top:active, +.bodywebsite .ui-to-top:focus { + color: #fff; + background: maincolor) ? 'rgb(150, 150, 150)' : '#'.$website->maincolor; ?>; + opacity: 0.6; +} +.bodywebsite .ui-to-top:hover { + color: #fff; + background: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; + box-shadow: 0 0 1px 0px rgba(0, 0, 0, 0.4); +} +.bodywebsite .ui-to-top:focus { + outline: 0; +} +.bodywebsite .ui-to-top.active { + transform: translateY(0); +} +.bodywebsite .mobile .ui-to-top, +.bodywebsite .tablet .ui-to-top { + display: none !important; +} +@media (min-width: 576px) { + .bodywebsite .ui-to-top { + right: 40px; + bottom: 40px; + } +} +.bodywebsite .progress-bar-wrap { + max-width: 100%; + width: 210px; +} +@media (min-width: 576px) and (max-width: 767px) { + .bodywebsite .progress-bar-wrap { + max-width: 120px; + } +} +@media (min-width: 768px) { + .bodywebsite .progress-bar-wrap { + max-width: 150px; + } +} +.bodywebsite .progress-bar { + position: relative; + width: 100%; + margin: 0; + font-family: "Roboto", Helvetica, Arial, sans-serif; +} +.bodywebsite .progress-bar .progress-bar__body { + position: absolute; + right: 50%; + width: 100%; + top: 50%; + padding: 0; + margin: 0; + white-space: nowrap; + font-size: 34px; + font-weight: 400; + line-height: 26px; + color: #00030a; + text-align: right; +} +.bodywebsite .progress-bar .progress-bar__body:after { + content: '%'; +} +.bodywebsite .progress-bar .progress-bar__stroke, +.bodywebsite .progress-bar .progress-bar__trail { + stroke-linejoin: round; +} +.bodywebsite .progress-bar-horizontal { + position: relative; + font-family: "Roboto", Helvetica, Arial, sans-serif; + text-align: right; +} +.bodywebsite .progress-bar-horizontal > svg { + margin-top: 3px; + border-radius: 3px; +} +.bodywebsite .progress-bar-horizontal .progress-bar__body { + position: absolute; + top: -27px; + margin-top: 0; + padding-right: 0; +} +.bodywebsite .progress-bar-horizontal .progress-bar__body:after { + content: '%'; +} +.bodywebsite .progress-bar-radial { + position: relative; + padding-bottom: 100%; +} +.bodywebsite .progress-bar-radial > svg { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + border-radius: 5px; + overflow: hidden; +} +.bodywebsite .progress-bar-radial .progress-bar__stroke, +.bodywebsite .progress-bar-radial .progress-bar__trail { + stroke-location: outside; +} +.bodywebsite .progress-bar-radial .progress-bar__body { + transform: translate(50%, -50%); +} +.bodywebsite .progress-bar-default .progress-bar__stroke { + stroke: #9f9f9f; +} +.bodywebsite .progress-bar-default .progress-bar__trail { + stroke: rgba(159, 159, 159, 0.05); +} +.bodywebsite .progress-bar-primary .progress-bar__stroke { + stroke: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .progress-bar-primary .progress-bar__trail { + stroke: #F8F9FB; +} +.bodywebsite .progress-bar-bermuda-gray .progress-bar__stroke { + stroke: #6f8fad; +} +.bodywebsite .progress-bar-bermuda-gray .progress-bar__trail { + stroke: #F8F9FB; +} +.bodywebsite .progress-bar-contessa .progress-bar__stroke { + stroke: #e76752; +} +.bodywebsite .progress-bar-contessa .progress-bar__trail { + stroke: #F8F9FB; +} +.bodywebsite .progress-bar-red-orange-1 .progress-bar__stroke { + stroke: #f8333c; +} +.bodywebsite .progress-bar-red-orange-1 .progress-bar__trail { + stroke: #ededed; +} +.bodywebsite .progress-bar-dodger-blue .progress-bar__stroke { + stroke: #45a4ff; +} +.bodywebsite .progress-bar-dodger-blue .progress-bar__trail { + stroke: #ededed; +} +.bodywebsite .progress-bar-gorse .progress-bar__stroke { + stroke: #fde74c; +} +.bodywebsite .progress-bar-gorse .progress-bar__trail { + stroke: #ededed; +} +.bodywebsite .progress-bar-old-gold .progress-bar__stroke { + stroke: #ecd746; +} +.bodywebsite .progress-bar-old-gold .progress-bar__trail { + stroke: #F8F9FB; +} +.bodywebsite .progress-bar-secondary-2 .progress-bar__stroke { + stroke: #dedede; +} +.bodywebsite .progress-bar-secondary-2 .progress-bar__trail { + stroke: gray; +} +.bodywebsite .progress-bar-secondary-1 .progress-bar__stroke { + stroke: #dedede; +} +.bodywebsite .progress-bar-secondary-1 .progress-bar__trail { + stroke: rgba(159, 159, 159, 0.05); +} +.bodywebsite .progress-bar-secondary-3 .progress-bar__stroke { + stroke: #c49558; +} +.bodywebsite .progress-bar-secondary-3 .progress-bar__trail { + stroke: rgba(159, 159, 159, 0.05); +} +.bodywebsite .progress-bar-secondary-4 .progress-bar__stroke { + stroke: #fe4a21; +} +.bodywebsite .progress-bar-secondary-4 .progress-bar__trail { + stroke: rgba(159, 159, 159, 0.05); +} +.bodywebsite .countdown-wrap { + max-width: 720px; + max-height: 134px; +} +.bodywebsite .countdown-wrap .time_circles > div { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + font-size: 0; + line-height: 0; +} +.bodywebsite .countdown-wrap div > h4 { + position: relative; + margin-top: -2px; + font: 500 12px "Roboto", Helvetica, Arial, sans-serif !important; + color: rgba(0, 0, 0, 0.2); + letter-spacing: -0.025em; + bottom: auto !important; + text-transform: uppercase; +} +@media (min-width: 576px) { + .bodywebsite .countdown-wrap div > h4 { + font-size: 14px !important; + } +} +.bodywebsite .countdown-wrap span { + font: 900 18px "Roboto", Helvetica, Arial, sans-serif !important; + font-style: normal; + color: #000; +} +@media (min-width: 576px) { + .bodywebsite .countdown-wrap span { + font-size: 40px !important; + } +} +@media (min-width: 768px) { + .bodywebsite .countdown-wrap span { + font-size: 45px !important; + line-height: 1; + } +} +.bodywebsite .slick-slider { + position: relative; + display: block; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-tap-highlight-color: transparent; +} +.bodywebsite .slick-list { + position: relative; + overflow: hidden; + display: block; + margin: 0; + padding: 0; +} +.bodywebsite .slick-list:focus { + outline: none; +} +.bodywebsite .slick-list.dragging { + cursor: pointer; + cursor: hand; +} +.bodywebsite .slick-slider .slick-track, +.bodywebsite .slick-slider .slick-list { + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.bodywebsite .slick-track { + position: relative; + left: 0; + top: 0; + display: block; +} +.bodywebsite .slick-track:before, +.bodywebsite .slick-track:after { + content: ""; + display: table; +} +.bodywebsite .slick-track:after { + clear: both; +} +.bodywebsite .slick-loading .slick-track { + visibility: hidden; +} +.bodywebsite .slick-slide { + float: left; + min-height: 1px; + display: none; +} +.bodywebsite [dir="rtl"] .slick-slide { + float: right; +} +.bodywebsite .slick-slide img { + display: block; +} +.bodywebsite .slick-slide.slick-loading img { + display: none; +} +.bodywebsite .slick-slide.dragging img { + pointer-events: none; +} +.bodywebsite .slick-initialized .slick-slide { + display: block; +} +.bodywebsite .slick-loading .slick-slide { + visibility: hidden; +} +.bodywebsite .slick-vertical .slick-slide { + display: block; + height: auto; + border: 1px solid transparent; +} +.bodywebsite .slick-arrow.slick-hidden { + display: none; +} +.bodywebsite .slick-loading .slick-list { + background: #fff url("medias/image/ref; ?>/ajax-loading.gif") center center no-repeat; +} +.bodywebsite .slick-prev, +.bodywebsite .slick-next { + position: absolute; + display: block; + height: 20px; + width: 20px; + line-height: 0; + font-size: 0; + cursor: pointer; + background: rgba(0, 0, 0, 0.6); + color: transparent; + top: 50%; + -webkit-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); + padding: 0; + border: none; + outline: none; + z-index: 999; +} +.bodywebsite .slick-prev:hover, +.bodywebsite .slick-prev:focus, +.bodywebsite .slick-next:hover, +.bodywebsite .slick-next:focus { + outline: none; + background: transparent; + color: transparent; +} +.bodywebsite .slick-prev:hover:before, +.bodywebsite .slick-prev:focus:before, +.bodywebsite .slick-next:hover:before, +.bodywebsite .slick-next:focus:before { + opacity: 1; +} +.bodywebsite .slick-prev.slick-disabled:before, +.bodywebsite .slick-next.slick-disabled:before { + opacity: 0.25; +} +.bodywebsite .slick-prev:before, +.bodywebsite .slick-next:before { + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-size: 20px; + line-height: 1; + color: white; + opacity: 0.75; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.bodywebsite .slick-prev { + left: 0; +} +.bodywebsite [dir="rtl"] .slick-prev { + left: auto; + right: 0; +} +.bodywebsite .slick-prev:before { + content: "←"; +} +.bodywebsite [dir="rtl"] .slick-prev:before { + content: "→"; +} +.bodywebsite .slick-next { + right: 0; +} +.bodywebsite [dir="rtl"] .slick-next { + left: 0; + right: auto; +} +.bodywebsite .slick-next:before { + content: "→"; +} +.bodywebsite [dir="rtl"] .slick-next:before { + content: "←"; +} +.bodywebsite .slick-slider { + margin-top: 30px; +} +.bodywebsite .slick-slider *:focus { + outline: 0; +} +.bodywebsite .slick-dots { + display: block; + margin-top: 20px; + list-style: none; + width: 100%; + padding: 0; + text-align: center; + font-size: 0; + line-height: 0; + word-spacing: 0; +} +.bodywebsite .slick-dots li { + position: relative; + display: inline-block; + height: 20px; + width: 20px; + margin: 0 5px; + padding: 0; + cursor: pointer; +} +.bodywebsite .slick-dots li button { + background: none; + border: none; + display: inline-block; + padding: 0; + outline: none; + outline-offset: 0; + cursor: pointer; + -webkit-appearance: none; + width: 8px; + height: 8px; + border-radius: 100px; + background: #ababab; +} +.bodywebsite .slick-dots li button::-moz-focus-inner { + border: none; + padding: 0; +} +.bodywebsite .slick-dots li.slick-active button, +.bodywebsite .slick-dots li:hover button { + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .slick-dots-variant-1 .slick-dots li button { + height: 12px; + width: 12px; + background: rgba(58, 60, 62, 0.5); + transition: .33s all ease; + position: relative; +} +.bodywebsite .slick-dots-variant-1 .slick-dots li button:after { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 19px; + height: 19px; + border: 4px solid #fff; + opacity: 0; + border-radius: 50%; + -webkit-transform: translate(-50%, -50%) scale(0); + transform: translate(-50%, -50%) scale(0); + transition: 180ms ease-in-out; +} +.bodywebsite .slick-dots-variant-1 .slick-dots li.slick-active button, +.bodywebsite .slick-dots-variant-1 .slick-dots li:hover button { + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .slick-dots-variant-1 .slick-dots li.slick-active button:after, +.bodywebsite .slick-dots-variant-1 .slick-dots li:hover button:after { + opacity: 1; + -webkit-transform: translate(-50%, -50%) scale(1); + transform: translate(-50%, -50%) scale(1); +} +.bodywebsite .slick-carousel-complex-variant-1 { + position: relative; + padding-bottom: 60px; +} +.bodywebsite .slick-carousel-complex-variant-1:after { + content: ''; + position: absolute; + top: 80px; + left: 50%; + bottom: 0; + transform: translateX(-50%); + width: 101vw; + background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .slick-carousel-complex-variant-1 > * { + position: relative; + z-index: 2; +} +.bodywebsite .slick-carousel-complex-variant-1 .slick-slider { + margin-bottom: 0; +} +.bodywebsite .slick-carousel-complex-variant-1 .slick-dots { + margin-top: 30px; +} +@media (min-width: 768px) { + .bodywebsite .slick-carousel-complex-variant-1 { + padding-bottom: 90px; + } +} +.bodywebsite .slick-slider-images .item { + padding: 0 15px; + text-align: right; +} +.bodywebsite .slick-slider-images .item img { + display: inline-block; + transform: scale(0.75); + transform-origin: 100% 50%; + will-change: transform; + cursor: pointer; + transition: .5s all ease; +} +.bodywebsite .slick-slider-images .item.slick-center { + text-align: center; +} +.bodywebsite .slick-slider-images .item.slick-center img { + transform-origin: 50% 50%; + transform: scale(1); +} +.bodywebsite .slick-slider-images .item.slick-center + * { + text-align: left; +} +.bodywebsite .slick-slider-images .item.slick-center + * img { + transform-origin: 0 50%; +} +.bodywebsite .slick-carousel-round-image .item img { + border-radius: 50%; +} +.bodywebsite .carousel-testimonials-home .slick-slide { + text-align: center; +} +.bodywebsite #sectiontestimonies.maincolorbackground { + background-image: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +@media (min-width: 576px) { + .bodywebsite .carousel-testimonials-home .slick-slide { + text-align: left; + } +} +.bodywebsite .carousel-testimonials-home .slick-dots li button { + background: rgba(246, 247, 250, 0.5); +} +.bodywebsite .carousel-testimonials-home .item { + padding-left: 10px; + padding-right: 10px; +} +@media (min-width: 1200px) { + .bodywebsite .carousel-testimonials-home .item { + padding-left: 0; + padding-right: 0; + } +} +@media (min-width: 576px) { + .bodywebsite .carousel-testimonials-home .slick-dots { + display: none !important; + } +} +.bodywebsite .carousel-testimonials-home .slick-images .item { + padding-left: 0; + padding-right: 0; +} +.bodywebsite .carousel-testimonials-home .slick-images .item .imp-wrap { + text-align: center; + position: relative; + padding: 10px; +} +.bodywebsite .carousel-testimonials-home .slick-images .item .imp-wrap:after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) scale(0); + content: ''; + display: inline-block; + margin-left: 0px; + border: 1px solid #fccb56; + width: 116px; + height: 116px; + border-radius: 50%; + transition: 200ms ease-in-out; + opacity: 0; + pointer-events: none; +} +.bodywebsite .carousel-testimonials-home .slick-images .item .imp-wrap img { + display: inline-block; + border-radius: 50%; + cursor: pointer; +} +.bodywebsite .carousel-testimonials-home .slick-images .item:hover .imp-wrap:after, +.bodywebsite .carousel-testimonials-home .slick-images .item.slick-current .imp-wrap:after { + transform: translate(-50%, -50%) scale(1); + opacity: 1; +} +.bodywebsite .carousel-testimonials-home .quote-desc { + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} +.bodywebsite .websitemaincolor { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .maincolor { + color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .maincolorbis { + color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; +} +.bodywebsite .maincolorbackground { + background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; +} +.bodywebsite .maincolorbisbackground { + background-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; + border-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; +} +.bodywebsite .maincolorbisbackground:hover { + box-shadow: 1px 1px 8px #aaa; +} +.bodywebsite textarea:focus, +.bodywebsite button:focus { + border: unset !important; +} +.bodywebsite .marginrightonly { + margin-right: 10px !important; +} +.bodywebsite .inline-block { + display: inline-block; +} +.bodywebsite .valignmiddle { + vertical-align: middle; +} +.bodywebsite .center { + text-align: center; +} +.bodywebsite button.buttonwithnoborder.toggle-original.active { + display: none; +} +.bodywebsite .rd-navbar-nav-wrap.active .toggle-original span.icon.icon-xs.icon-dusty-gray.fa.fa-search { + display: none; +} +.bodywebsite ul.rd-navbar-list { + padding-top: 20px; +} +.bodywebsite .photouser:hover, +.bodywebsite .photouser:active { + border: 2px solid #eee; +} +.bodywebsite .imp-wrap { + display: inline-block; +} +.bodywebsite .imp-wrap img { + border-radius: 50px; +} +.bodywebsite .text-green { + color: #6ca; +} +.bodywebsite .plan-tile .plan-title { + padding: 20px 0 0; + font-size: 20px; + font-weight: bold; + text-align: center; +} +.bodywebsite .plan-tile .plan-tag { + color: #687484; + text-align: center; + font-size: 16px; + padding: 0 5px 10px; + font-weight: 300; + min-height: 70px; +} +.bodywebsite .plan-tile .plan-pricer .plan-price-title { + display: block; + text-align: center; + color: #8492A6; + font-style: italic; + position: absolute; + top: 30px; + transform: translateX(-50%); + -webkit-transform: translateX(-50%); + left: 50%; + font-size: 16px; + width: 100%; + font-weight: 300; +} +.bodywebsite .plan-tile .plan-feat { + display: block; + font-size: 14px; + color: #3C4858; + text-align: center; + padding: 22px 10px; + min-height: 90px; +} +.bodywebsite .plan-tile .plan-pricer .plan-price { + border-bottom: 1px solid #d5dadf; + border-top: 1px solid #d5dadf; + padding: 20px 0 20px; + display: block; +} +.bodywebsite .plan-tile .plan-pricer .plan-price > span { + color: #3C4858; + font-size: 32px; +} +.bodywebsite .plan-tile .plan-pricer .plan-price > span > sup { + font-size: 13px; + top: -0.9em; +} +.bodywebsite .plan-tile .plan-pricer { + padding: 5px 0; + text-align: center; + max-width: 90%; + position: relative; + margin: auto; +} +.bodywebsite .pricing-plan-slider .plan-tile .plan-btn { + position: absolute; + bottom: 0px; + left: 0; + width: 100%; +} +.bodywebsite .plan-tile .plan-btn { + text-align: center; + padding: 0 15px 15px 15px; +} +.bodywebsite .plan-features { + padding-top: 20px; + padding-bottom: 20px; + padding-left: 20px; + padding-right: 20px; +} +.bodywebsite .formcontact div { + margin: 2px; +} +.bodywebsite section#sectionfooterdolibarr { + padding-left: 3px; + padding-right: 3px; + padding-bottom: 10px; +} +.bodywebsite button.buttonwithnoborder.toggle-original { + font-family: "Font Awesome 5 Free"; + font-weight: 600; + font-size: initial; + /* If removed, the search icon is not visible */ +} +.bodywebsite .rd-navbar-fixed .buttonsearchwhenstatic { + display: none; +} +.bodywebsite input[type="text"] { + display: block; + width: 100%; + padding: 11px 35px; + font-size: 14px; + line-height: 1.25; + background-image: none; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} +@media print { + .bodywebsite *, + .bodywebsite *::before, + .bodywebsite *::after { + text-shadow: none !important; + box-shadow: none !important; + } + .bodywebsite a, + .bodywebsite a:visited { + text-decoration: underline; + } + .bodywebsite abbr[title]::after { + content: " (" attr(title) ")"; + } + .bodywebsite pre { + white-space: pre-wrap !important; + } + .bodywebsite pre, + .bodywebsite blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + .bodywebsite thead { + display: table-header-group; + } + .bodywebsite tr, + .bodywebsite img { + page-break-inside: avoid; + } + .bodywebsite p, + .bodywebsite h2, + .bodywebsite h3 { + orphans: 3; + widows: 3; + } + .bodywebsite h2, + .bodywebsite h3 { + page-break-after: avoid; + } + .bodywebsite .navbar { + display: none; + } + .bodywebsite .badge { + border: 1px solid #000; + } + .bodywebsite .table { + border-collapse: collapse !important; + } + .bodywebsite .table td, + .bodywebsite .table th { + background-color: #fff !important; + } + .bodywebsite .table-bordered th, + .bodywebsite .table-bordered td { + border: 1px solid #ddd !important; + } +} +.bodywebsite *, +.bodywebsite *::before, +.bodywebsite *::after { + box-sizing: border-box; +} +html .bodywebsite { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +@-ms-viewport { + width: device-width; +} +.bodywebsite article, +.bodywebsite aside, +.bodywebsite dialog, +.bodywebsite figcaption, +.bodywebsite figure, +.bodywebsite footer, +.bodywebsite header, +.bodywebsite hgroup, +.bodywebsite main, +.bodywebsite nav, +.bodywebsite section { + display: block; +} +.bodywebsite { + margin: 0; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 1.71429; + text-align: left; + background-color: #fff; +} +.bodywebsite [tabindex="-1"]:focus { + outline: none !important; +} +.bodywebsite hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} +.bodywebsite abbr[title], +.bodywebsite abbr[data-original-title] { + text-decoration: underline; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} +.bodywebsite address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} +.bodywebsite ol, +.bodywebsite ul, +.bodywebsite dl { + margin-top: 0; +} +.bodywebsite ol ol, +.bodywebsite ul ul, +.bodywebsite ol ul, +.bodywebsite ul ol { + margin-bottom: 0; +} +.bodywebsite dt { + font-weight: inherit; +} +.bodywebsite dd { + margin-bottom: .5rem; + margin-left: 0; +} +.bodywebsite blockquote { + margin: 0 0 1rem; +} +.bodywebsite dfn { + font-style: italic; +} +.bodywebsite b, +.bodywebsite strong { + font-weight: bolder; +} +.bodywebsite small { + font-size: 80%; +} +.bodywebsite sub, +.bodywebsite sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +.bodywebsite sub { + bottom: -0.25em; +} +.bodywebsite sup { + top: -0.5em; +} +.bodywebsite a { + text-decoration: none; + -webkit-text-decoration-skip: objects; +} +.bodywebsite a:hover { + text-decoration: none; +} +.bodywebsite a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} +.bodywebsite a:not([href]):not([tabindex]):focus, +.bodywebsite a:not([href]):not([tabindex]):hover { + color: inherit; + text-decoration: none; +} +.bodywebsite a:not([href]):not([tabindex]):focus { + outline: 0; +} +.bodywebsite pre, +.bodywebsite code, +.bodywebsite kbd, +.bodywebsite samp { + font-family: monospace, monospace; + font-size: 1em; +} +.bodywebsite pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} +.bodywebsite figure { + margin: 0 0 1rem; +} +.bodywebsite img { + vertical-align: middle; + border-style: none; +} +.bodywebsite svg:not(:root) { + overflow: hidden; +} +.bodywebsite a, +.bodywebsite area, +.bodywebsite button, +.bodywebsite [role="button"], +.bodywebsite input:not([type="range"]), +.bodywebsite label, +.bodywebsite select, +.bodywebsite summary, +.bodywebsite textarea { + touch-action: manipulation; +} +.bodywebsite table { + border-collapse: collapse; +} +.bodywebsite caption { + padding-top: 17px 25px 18px; + padding-bottom: 17px 25px 18px; + color: #dedede; + text-align: left; + caption-side: bottom; +} +.bodywebsite th { + text-align: inherit; +} +.bodywebsite label { + display: inline-block; + margin-bottom: .5rem; +} +.bodywebsite button { + border-radius: 0; +} +.bodywebsite button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} +.bodywebsite input, +.bodywebsite button, +.bodywebsite select, +.bodywebsite optgroup, +.bodywebsite textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +.bodywebsite button, +.bodywebsite input { + overflow: visible; +} +.bodywebsite button, +.bodywebsite select { + text-transform: none; +} +.bodywebsite button, +html .bodywebsite [type="button"], +.bodywebsite [type="reset"], +.bodywebsite [type="submit"] { + -webkit-appearance: button; +} +.bodywebsite button::-moz-focus-inner, +.bodywebsite [type="button"]::-moz-focus-inner, +.bodywebsite [type="reset"]::-moz-focus-inner, +.bodywebsite [type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} +.bodywebsite input[type="radio"], +.bodywebsite input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} +.bodywebsite input[type="date"], +.bodywebsite input[type="time"], +.bodywebsite input[type="datetime-local"], +.bodywebsite input[type="month"] { + -webkit-appearance: listbox; +} +.bodywebsite textarea { + overflow: auto; + resize: vertical; +} +.bodywebsite fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +.bodywebsite legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} +.bodywebsite progress { + vertical-align: baseline; +} +.bodywebsite [type="number"]::-webkit-inner-spin-button, +.bodywebsite [type="number"]::-webkit-outer-spin-button { + height: auto; +} +.bodywebsite [type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} +.bodywebsite [type="search"]::-webkit-search-cancel-button, +.bodywebsite [type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +.bodywebsite ::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} +.bodywebsite output { + display: inline-block; +} +.bodywebsite summary { + display: list-item; +} +.bodywebsite template { + display: none; +} +.bodywebsite [hidden] { + display: none !important; +} +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6, +.bodywebsite .h1, +.bodywebsite .h2, +.bodywebsite .h3, +.bodywebsite .h4, +.bodywebsite .h5, +.bodywebsite .h6 { + margin-bottom: 0.5rem; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-weight: 700; + line-height: 1.1; + color: #000; +} +.bodywebsite h1, +.bodywebsite .h1 { + font-size: 45px; +} +.bodywebsite h2, +.bodywebsite .h2 { + font-size: 24px; +} +.bodywebsite h3, +.bodywebsite .h3 { + font-size: 33px; +} +.bodywebsite h4, +.bodywebsite .h4 { + font-size: 18px; +} +.bodywebsite .lead { + font-size: 24px; + font-weight: 300; +} +.bodywebsite hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid #2a2b2b; +} +.bodywebsite small, +.bodywebsite .small { + font-size: 80%; + font-weight: 400; +} +.bodywebsite mark, +.bodywebsite .mark { + padding: 5px 10px; + background-color: #37c386; +} +.bodywebsite .list-unstyled { + padding-left: 0; + list-style: none; +} +.bodywebsite .list-inline { + padding-left: 0; + list-style: none; +} +.bodywebsite .list-inline-item { + display: inline-block; +} +.bodywebsite .list-inline-item:not(:last-child) { + margin-right: 5px; +} +.bodywebsite .initialism { + font-size: 90%; + text-transform: uppercase; +} +.bodywebsite .blockquote { + margin-bottom: 1rem; + font-size: 17.5px; +} +.bodywebsite .blockquote-footer { + display: block; + font-size: 80%; + color: #dedede; +} +.bodywebsite .blockquote-footer::before { + content: "\2014 \00A0"; +} +.bodywebsite .img-fluid { + max-width: 100%; + height: auto; +} +.bodywebsite code, +.bodywebsite kbd, +.bodywebsite pre, +.bodywebsite samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +.bodywebsite code { + padding: 10px 5px; + font-size: 90%; + color: #00030a; + background-color: #edeff4; + border-radius: 0; +} +.bodywebsite a > code { + padding: 0; + color: inherit; + background-color: inherit; +} +.bodywebsite kbd { + padding: 10px 5px; + font-size: 90%; + color: #fff; + background-color: #212529; + border-radius: 3px; + box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25); +} +.bodywebsite kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + box-shadow: none; +} +.bodywebsite pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + font-size: 90%; + color: #212529; +} +.bodywebsite pre code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; +} +.bodywebsite .pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.bodywebsite .container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .bodywebsite .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .bodywebsite .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .bodywebsite .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .bodywebsite .container { + max-width: 1170px; + } +} +.bodywebsite .container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.bodywebsite .row { + display: flex; + flex-wrap: wrap; + /*margin-right: -15px; + margin-left: -15px; */ +} +.bodywebsite .no-gutters { + margin-right: 0; + margin-left: 0; +} +.bodywebsite .no-gutters > .col, +.bodywebsite .no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} +.bodywebsite .col-1, +.bodywebsite .col-2, +.bodywebsite .col-3, +.bodywebsite .col-4, +.bodywebsite .col-5, +.bodywebsite .col-6, +.bodywebsite .col-7, +.bodywebsite .col-8, +.bodywebsite .col-9, +.bodywebsite .col-10, +.bodywebsite .col-11, +.bodywebsite .col-12, +.bodywebsite .col, +.bodywebsite .col-auto, +.bodywebsite .col-sm-1, +.bodywebsite .col-sm-2, +.bodywebsite .col-sm-3, +.bodywebsite .col-sm-4, +.bodywebsite .col-sm-5, +.bodywebsite .col-sm-6, +.bodywebsite .col-sm-7, +.bodywebsite .col-sm-8, +.bodywebsite .col-sm-9, +.bodywebsite .col-sm-10, +.bodywebsite .col-sm-11, +.bodywebsite .col-sm-12, +.bodywebsite .col-sm, +.bodywebsite .col-sm-auto, +.bodywebsite .col-md-1, +.bodywebsite .col-md-2, +.bodywebsite .col-md-3, +.bodywebsite .col-md-4, +.bodywebsite .col-md-5, +.bodywebsite .col-md-6, +.bodywebsite .col-md-7, +.bodywebsite .col-md-8, +.bodywebsite .col-md-9, +.bodywebsite .col-md-10, +.bodywebsite .col-md-11, +.bodywebsite .col-md-12, +.bodywebsite .col-md, +.bodywebsite .col-md-auto, +.bodywebsite .col-lg-1, +.bodywebsite .col-lg-2, +.bodywebsite .col-lg-3, +.bodywebsite .col-lg-4, +.bodywebsite .col-lg-5, +.bodywebsite .col-lg-6, +.bodywebsite .col-lg-7, +.bodywebsite .col-lg-8, +.bodywebsite .col-lg-9, +.bodywebsite .col-lg-10, +.bodywebsite .col-lg-11, +.bodywebsite .col-lg-12, +.bodywebsite .col-lg, +.bodywebsite .col-lg-auto, +.bodywebsite .col-xl-1, +.bodywebsite .col-xl-2, +.bodywebsite .col-xl-3, +.bodywebsite .col-xl-4, +.bodywebsite .col-xl-5, +.bodywebsite .col-xl-6, +.bodywebsite .col-xl-7, +.bodywebsite .col-xl-8, +.bodywebsite .col-xl-9, +.bodywebsite .col-xl-10, +.bodywebsite .col-xl-11, +.bodywebsite .col-xl-12, +.bodywebsite .col-xl, +.bodywebsite .col-xl-auto, +.bodywebsite .col-xxl-1, +.bodywebsite .col-xxl-2, +.bodywebsite .col-xxl-3, +.bodywebsite .col-xxl-4, +.bodywebsite .col-xxl-5, +.bodywebsite .col-xxl-6, +.bodywebsite .col-xxl-7, +.bodywebsite .col-xxl-8, +.bodywebsite .col-xxl-9, +.bodywebsite .col-xxl-10, +.bodywebsite .col-xxl-11, +.bodywebsite .col-xxl-12, +.bodywebsite .col-xxl, +.bodywebsite .col-xxl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px +} +.bodywebsite .col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} +.bodywebsite .col-auto { + flex: 0 0 auto; + width: auto; + max-width: none; +} +.bodywebsite .col-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; +} +.bodywebsite .col-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; +} +.bodywebsite .col-3 { + flex: 0 0 25%; + max-width: 25%; +} +.bodywebsite .col-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; +} +.bodywebsite .col-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; +} +.bodywebsite .col-6 { + flex: 0 0 50%; + max-width: 50%; +} +.bodywebsite .col-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; +} +.bodywebsite .col-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; +} +.bodywebsite .col-9 { + flex: 0 0 75%; + max-width: 75%; +} +.bodywebsite .col-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; +} +.bodywebsite .col-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; +} +.bodywebsite .col-12 { + flex: 0 0 100%; + max-width: 100%; +} +.bodywebsite .order-first { + order: -1; +} +.bodywebsite .order-1 { + order: 1; +} +.bodywebsite .order-2 { + order: 2; +} +.bodywebsite .order-3 { + order: 3; +} +.bodywebsite .order-4 { + order: 4; +} +.bodywebsite .order-5 { + order: 5; +} +.bodywebsite .order-6 { + order: 6; +} +.bodywebsite .order-7 { + order: 7; +} +.bodywebsite .order-8 { + order: 8; +} +.bodywebsite .order-9 { + order: 9; +} +.bodywebsite .order-10 { + order: 10; +} +.bodywebsite .order-11 { + order: 11; +} +.bodywebsite .order-12 { + order: 12; +} +.bodywebsite .offset-1 { + margin-left: 8.33333%; +} +.bodywebsite .offset-2 { + margin-left: 16.66667%; +} +.bodywebsite .offset-3 { + margin-left: 25%; +} +.bodywebsite .offset-4 { + margin-left: 33.33333%; +} +.bodywebsite .offset-5 { + margin-left: 41.66667%; +} +.bodywebsite .offset-6 { + margin-left: 50%; +} +.bodywebsite .offset-7 { + margin-left: 58.33333%; +} +.bodywebsite .offset-8 { + margin-left: 66.66667%; +} +.bodywebsite .offset-9 { + margin-left: 75%; +} +.bodywebsite .offset-10 { + margin-left: 83.33333%; +} +.bodywebsite .offset-11 { + margin-left: 91.66667%; +} +@media (min-width: 576px) { + .bodywebsite .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .bodywebsite .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .bodywebsite .col-sm-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; + } + .bodywebsite .col-sm-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; + } + .bodywebsite .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .bodywebsite .col-sm-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; + } + .bodywebsite .col-sm-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; + } + .bodywebsite .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .bodywebsite .col-sm-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; + } + .bodywebsite .col-sm-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; + } + .bodywebsite .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .bodywebsite .col-sm-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; + } + .bodywebsite .col-sm-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; + } + .bodywebsite .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .bodywebsite .order-sm-first { + order: -1; + } + .bodywebsite .order-sm-1 { + order: 1; + } + .bodywebsite .order-sm-2 { + order: 2; + } + .bodywebsite .order-sm-3 { + order: 3; + } + .bodywebsite .order-sm-4 { + order: 4; + } + .bodywebsite .order-sm-5 { + order: 5; + } + .bodywebsite .order-sm-6 { + order: 6; + } + .bodywebsite .order-sm-7 { + order: 7; + } + .bodywebsite .order-sm-8 { + order: 8; + } + .bodywebsite .order-sm-9 { + order: 9; + } + .bodywebsite .order-sm-10 { + order: 10; + } + .bodywebsite .order-sm-11 { + order: 11; + } + .bodywebsite .order-sm-12 { + order: 12; + } + .bodywebsite .offset-sm-0 { + margin-left: 0; + } + .bodywebsite .offset-sm-1 { + margin-left: 8.33333%; + } + .bodywebsite .offset-sm-2 { + margin-left: 16.66667%; + } + .bodywebsite .offset-sm-3 { + margin-left: 25%; + } + .bodywebsite .offset-sm-4 { + margin-left: 33.33333%; + } + .bodywebsite .offset-sm-5 { + margin-left: 41.66667%; + } + .bodywebsite .offset-sm-6 { + margin-left: 50%; + } + .bodywebsite .offset-sm-7 { + margin-left: 58.33333%; + } + .bodywebsite .offset-sm-8 { + margin-left: 66.66667%; + } + .bodywebsite .offset-sm-9 { + margin-left: 75%; + } + .bodywebsite .offset-sm-10 { + margin-left: 83.33333%; + } + .bodywebsite .offset-sm-11 { + margin-left: 91.66667%; + } +} +@media (min-width: 768px) { + .bodywebsite .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .bodywebsite .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .bodywebsite .col-md-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; + } + .bodywebsite .col-md-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; + } + .bodywebsite .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .bodywebsite .col-md-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; + } + .bodywebsite .col-md-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; + } + .bodywebsite .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .bodywebsite .col-md-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; + } + .bodywebsite .col-md-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; + } + .bodywebsite .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .bodywebsite .col-md-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; + } + .bodywebsite .col-md-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; + } + .bodywebsite .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .bodywebsite .order-md-first { + order: -1; + } + .bodywebsite .order-md-1 { + order: 1; + } + .bodywebsite .order-md-2 { + order: 2; + } + .bodywebsite .order-md-3 { + order: 3; + } + .bodywebsite .order-md-4 { + order: 4; + } + .bodywebsite .order-md-5 { + order: 5; + } + .bodywebsite .order-md-6 { + order: 6; + } + .bodywebsite .order-md-7 { + order: 7; + } + .bodywebsite .order-md-8 { + order: 8; + } + .bodywebsite .order-md-9 { + order: 9; + } + .bodywebsite .order-md-10 { + order: 10; + } + .bodywebsite .order-md-11 { + order: 11; + } + .bodywebsite .order-md-12 { + order: 12; + } + .bodywebsite .offset-md-0 { + margin-left: 0; + } + .bodywebsite .offset-md-1 { + margin-left: 8.33333%; + } + .bodywebsite .offset-md-2 { + margin-left: 16.66667%; + } + .bodywebsite .offset-md-3 { + margin-left: 25%; + } + .bodywebsite .offset-md-4 { + margin-left: 33.33333%; + } + .bodywebsite .offset-md-5 { + margin-left: 41.66667%; + } + .bodywebsite .offset-md-6 { + margin-left: 50%; + } + .bodywebsite .offset-md-7 { + margin-left: 58.33333%; + } + .bodywebsite .offset-md-8 { + margin-left: 66.66667%; + } + .bodywebsite .offset-md-9 { + margin-left: 75%; + } + .bodywebsite .offset-md-10 { + margin-left: 83.33333%; + } + .bodywebsite .offset-md-11 { + margin-left: 91.66667%; + } +} +@media (min-width: 992px) { + .bodywebsite .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .bodywebsite .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .bodywebsite .col-lg-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; + } + .bodywebsite .col-lg-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; + } + .bodywebsite .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .bodywebsite .col-lg-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; + } + .bodywebsite .col-lg-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; + } + .bodywebsite .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .bodywebsite .col-lg-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; + } + .bodywebsite .col-lg-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; + } + .bodywebsite .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .bodywebsite .col-lg-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; + } + .bodywebsite .col-lg-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; + } + .bodywebsite .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .bodywebsite .order-lg-first { + order: -1; + } + .bodywebsite .order-lg-1 { + order: 1; + } + .bodywebsite .order-lg-2 { + order: 2; + } + .bodywebsite .order-lg-3 { + order: 3; + } + .bodywebsite .order-lg-4 { + order: 4; + } + .bodywebsite .order-lg-5 { + order: 5; + } + .bodywebsite .order-lg-6 { + order: 6; + } + .bodywebsite .order-lg-7 { + order: 7; + } + .bodywebsite .order-lg-8 { + order: 8; + } + .bodywebsite .order-lg-9 { + order: 9; + } + .bodywebsite .order-lg-10 { + order: 10; + } + .bodywebsite .order-lg-11 { + order: 11; + } + .bodywebsite .order-lg-12 { + order: 12; + } + .bodywebsite .offset-lg-0 { + margin-left: 0; + } + .bodywebsite .offset-lg-1 { + margin-left: 8.33333%; + } + .bodywebsite .offset-lg-2 { + margin-left: 16.66667%; + } + .bodywebsite .offset-lg-3 { + margin-left: 25%; + } + .bodywebsite .offset-lg-4 { + margin-left: 33.33333%; + } + .bodywebsite .offset-lg-5 { + margin-left: 41.66667%; + } + .bodywebsite .offset-lg-6 { + margin-left: 50%; + } + .bodywebsite .offset-lg-7 { + margin-left: 58.33333%; + } + .bodywebsite .offset-lg-8 { + margin-left: 66.66667%; + } + .bodywebsite .offset-lg-9 { + margin-left: 75%; + } + .bodywebsite .offset-lg-10 { + margin-left: 83.33333%; + } + .bodywebsite .offset-lg-11 { + margin-left: 91.66667%; + } +} +@media (min-width: 1200px) { + .bodywebsite .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .bodywebsite .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .bodywebsite .col-xl-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; + } + .bodywebsite .col-xl-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; + } + .bodywebsite .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .bodywebsite .col-xl-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; + } + .bodywebsite .col-xl-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; + } + .bodywebsite .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .bodywebsite .col-xl-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; + } + .bodywebsite .col-xl-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; + } + .bodywebsite .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .bodywebsite .col-xl-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; + } + .bodywebsite .col-xl-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; + } + .bodywebsite .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .bodywebsite .order-xl-first { + order: -1; + } + .bodywebsite .order-xl-1 { + order: 1; + } + .bodywebsite .order-xl-2 { + order: 2; + } + .bodywebsite .order-xl-3 { + order: 3; + } + .bodywebsite .order-xl-4 { + order: 4; + } + .bodywebsite .order-xl-5 { + order: 5; + } + .bodywebsite .order-xl-6 { + order: 6; + } + .bodywebsite .order-xl-7 { + order: 7; + } + .bodywebsite .order-xl-8 { + order: 8; + } + .bodywebsite .order-xl-9 { + order: 9; + } + .bodywebsite .order-xl-10 { + order: 10; + } + .bodywebsite .order-xl-11 { + order: 11; + } + .bodywebsite .order-xl-12 { + order: 12; + } + .bodywebsite .offset-xl-0 { + margin-left: 0; + } + .bodywebsite .offset-xl-1 { + margin-left: 8.33333%; + } + .bodywebsite .offset-xl-2 { + margin-left: 16.66667%; + } + .bodywebsite .offset-xl-3 { + margin-left: 25%; + } + .bodywebsite .offset-xl-4 { + margin-left: 33.33333%; + } + .bodywebsite .offset-xl-5 { + margin-left: 41.66667%; + } + .bodywebsite .offset-xl-6 { + margin-left: 50%; + } + .bodywebsite .offset-xl-7 { + margin-left: 58.33333%; + } + .bodywebsite .offset-xl-8 { + margin-left: 66.66667%; + } + .bodywebsite .offset-xl-9 { + margin-left: 75%; + } + .bodywebsite .offset-xl-10 { + margin-left: 83.33333%; + } + .bodywebsite .offset-xl-11 { + margin-left: 91.66667%; + } +} +@media (min-width: 1800px) { + .bodywebsite .col-xxl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .bodywebsite .col-xxl-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .bodywebsite .col-xxl-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; + } + .bodywebsite .col-xxl-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; + } + .bodywebsite .col-xxl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .bodywebsite .col-xxl-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; + } + .bodywebsite .col-xxl-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; + } + .bodywebsite .col-xxl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .bodywebsite .col-xxl-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; + } + .bodywebsite .col-xxl-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; + } + .bodywebsite .col-xxl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .bodywebsite .col-xxl-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; + } + .bodywebsite .col-xxl-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; + } + .bodywebsite .col-xxl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .bodywebsite .order-xxl-first { + order: -1; + } + .bodywebsite .order-xxl-1 { + order: 1; + } + .bodywebsite .order-xxl-2 { + order: 2; + } + .bodywebsite .order-xxl-3 { + order: 3; + } + .bodywebsite .order-xxl-4 { + order: 4; + } + .bodywebsite .order-xxl-5 { + order: 5; + } + .bodywebsite .order-xxl-6 { + order: 6; + } + .bodywebsite .order-xxl-7 { + order: 7; + } + .bodywebsite .order-xxl-8 { + order: 8; + } + .bodywebsite .order-xxl-9 { + order: 9; + } + .bodywebsite .order-xxl-10 { + order: 10; + } + .bodywebsite .order-xxl-11 { + order: 11; + } + .bodywebsite .order-xxl-12 { + order: 12; + } + .bodywebsite .offset-xxl-0 { + margin-left: 0; + } + .bodywebsite .offset-xxl-1 { + margin-left: 8.33333%; + } + .bodywebsite .offset-xxl-2 { + margin-left: 16.66667%; + } + .bodywebsite .offset-xxl-3 { + margin-left: 25%; + } + .bodywebsite .offset-xxl-4 { + margin-left: 33.33333%; + } + .bodywebsite .offset-xxl-5 { + margin-left: 41.66667%; + } + .bodywebsite .offset-xxl-6 { + margin-left: 50%; + } + .bodywebsite .offset-xxl-7 { + margin-left: 58.33333%; + } + .bodywebsite .offset-xxl-8 { + margin-left: 66.66667%; + } + .bodywebsite .offset-xxl-9 { + margin-left: 75%; + } + .bodywebsite .offset-xxl-10 { + margin-left: 83.33333%; + } + .bodywebsite .offset-xxl-11 { + margin-left: 91.66667%; + } +} +.bodywebsite .table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; +} +.bodywebsite .table th, +.bodywebsite .table td { + padding: 17px 25px 18px; + vertical-align: top; + border-top: 1px solid #d9d9d9; +} +.bodywebsite .table thead th { + vertical-align: bottom; + border-bottom: 2px solid #d9d9d9; +} +.bodywebsite .table tbody + tbody { + border-top: 2px solid #d9d9d9; +} +.bodywebsite .table .table { + background-color: #fff; +} +.bodywebsite .table-sm th, +.bodywebsite .table-sm td { + padding: 0.3rem; +} +.bodywebsite .table-bordered { + border: 1px solid #d9d9d9; +} +.bodywebsite .table-bordered th, +.bodywebsite .table-bordered td { + border: 1px solid #d9d9d9; +} +.bodywebsite .table-bordered thead th, +.bodywebsite .table-bordered thead td { + border-bottom-width: 2px; +} +.bodywebsite .table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} +.bodywebsite .table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); +} +.bodywebsite .table-primary, +.bodywebsite .table-primary > th, +.bodywebsite .table-primary > td { + background-color: #b8daff; +} +.bodywebsite .table-hover .table-primary:hover { + background-color: #9fcdff; +} +.bodywebsite .table-hover .table-primary:hover > td, +.bodywebsite .table-hover .table-primary:hover > th { + background-color: #9fcdff; +} +.bodywebsite .table-secondary, +.bodywebsite .table-secondary > th, +.bodywebsite .table-secondary > td { + background-color: #dddfe2; +} +.bodywebsite .table-hover .table-secondary:hover { + background-color: #cfd2d6; +} +.bodywebsite .table-hover .table-secondary:hover > td, +.bodywebsite .table-hover .table-secondary:hover > th { + background-color: #cfd2d6; +} +.bodywebsite .table-success, +.bodywebsite .table-success > th, +.bodywebsite .table-success > td { + background-color: #c3e6cb; +} +.bodywebsite .table-hover .table-success:hover { + background-color: #b1dfbb; +} +.bodywebsite .table-hover .table-success:hover > td, +.bodywebsite .table-hover .table-success:hover > th { + background-color: #b1dfbb; +} +.bodywebsite .table-info, +.bodywebsite .table-info > th, +.bodywebsite .table-info > td { + background-color: #bee5eb; +} +.bodywebsite .table-hover .table-info:hover { + background-color: #abdde5; +} +.bodywebsite .table-hover .table-info:hover > td, +.bodywebsite .table-hover .table-info:hover > th { + background-color: #abdde5; +} +.bodywebsite .table-warning, +.bodywebsite .table-warning > th, +.bodywebsite .table-warning > td { + background-color: #ffeeba; +} +.bodywebsite .table-hover .table-warning:hover { + background-color: #ffe8a1; +} +.bodywebsite .table-hover .table-warning:hover > td, +.bodywebsite .table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} +.bodywebsite .table-danger, +.bodywebsite .table-danger > th, +.bodywebsite .table-danger > td { + background-color: #f5c6cb; +} +.bodywebsite .table-hover .table-danger:hover { + background-color: #f1b0b7; +} +.bodywebsite .table-hover .table-danger:hover > td, +.bodywebsite .table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} +.bodywebsite .table-light, +.bodywebsite .table-light > th, +.bodywebsite .table-light > td { + background-color: #fdfdfe; +} +.bodywebsite .table-hover .table-light:hover { + background-color: #ececf6; +} +.bodywebsite .table-hover .table-light:hover > td, +.bodywebsite .table-hover .table-light:hover > th { + background-color: #ececf6; +} +.bodywebsite .table-dark, +.bodywebsite .table-dark > th, +.bodywebsite .table-dark > td { + background-color: #c6c8ca; +} +.bodywebsite .table-hover .table-dark:hover { + background-color: #b9bbbe; +} +.bodywebsite .table-hover .table-dark:hover > td, +.bodywebsite .table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} +.bodywebsite .table-active, +.bodywebsite .table-active > th, +.bodywebsite .table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} +.bodywebsite .table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} +.bodywebsite .table-hover .table-active:hover > td, +.bodywebsite .table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} +.bodywebsite .table .thead-dark th { + color: #fff; + background-color: #212529; + border-color: #32383e; +} +.bodywebsite .table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #d9d9d9; +} +.bodywebsite .table-dark { + color: #fff; + background-color: #212529; +} +.bodywebsite .table-dark th, +.bodywebsite .table-dark td, +.bodywebsite .table-dark thead th { + border-color: #32383e; +} +.bodywebsite .table-dark.table-bordered { + border: 0; +} +.bodywebsite .table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} +.bodywebsite .table-dark.table-hover tbody tr:hover { + background-color: rgba(255, 255, 255, 0.075); +} +@media (max-width: 575px) { + .bodywebsite .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .bodywebsite .table-responsive-sm.table-bordered { + border: 0; + } +} +@media (max-width: 767px) { + .bodywebsite .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .bodywebsite .table-responsive-md.table-bordered { + border: 0; + } +} +@media (max-width: 991px) { + .bodywebsite .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .bodywebsite .table-responsive-lg.table-bordered { + border: 0; + } +} +@media (max-width: 1199px) { + .bodywebsite .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .bodywebsite .table-responsive-xl.table-bordered { + border: 0; + } +} +@media (max-width: 1799px) { + .bodywebsite .table-responsive-xxl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .bodywebsite .table-responsive-xxl.table-bordered { + border: 0; + } +} +.bodywebsite .table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} +.bodywebsite .table-responsive.table-bordered { + border: 0; +} +.bodywebsite .form-input { + display: block; + width: 100%; + padding: 11px 35px; + font-size: 14px; + line-height: 1.25; + background-image: none; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} +.bodywebsite .form-input::-ms-expand { + background-color: transparent; + border: 0; +} +.bodywebsite .form-input:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: none; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.bodywebsite .form-input::placeholder { + color: #868e96; + opacity: 1; +} +.bodywebsite .form-input:disabled, +.bodywebsite .form-input[readonly] { + background-color: #e9ecef; + opacity: 1; +} +.bodywebsite select.form-input:not([size]):not([multiple]) { + height: calc(4.25rem); +} +.bodywebsite .form-input-file, +.bodywebsite .form-input-range { + display: block; +} +.bodywebsite .col-form-label { + padding-top: calc(12px); + padding-bottom: calc(12px); + margin-bottom: 0; + line-height: 1.25; +} +.bodywebsite .col-form-label-lg { + padding-top: calc(13px); + padding-bottom: calc(13px); + font-size: 18px; + line-height: 1.5; +} +.bodywebsite .col-form-label-sm { + padding-top: calc(6px); + padding-bottom: calc(6px); + font-size: 12px; + line-height: 1.5; +} +.bodywebsite .col-form-legend { + padding-top: 11px; + padding-bottom: 11px; + margin-bottom: 0; + font-size: 14px; +} +.bodywebsite .form-input-plaintext { + padding-top: 11px; + padding-bottom: 11px; + margin-bottom: 0; + line-height: 1.25; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.bodywebsite .form-input-plaintext.form-input-sm, +.bodywebsite .input-group-sm > .form-input-plaintext.form-input, +.bodywebsite .input-group-sm > .form-input-plaintext.input-group-addon, +.bodywebsite .input-group-sm > .input-group-btn > .form-input-plaintext.btn, +.bodywebsite .form-input-plaintext.form-input-lg, +.bodywebsite .input-group-lg > .form-input-plaintext.form-input, +.bodywebsite .input-group-lg > .form-input-plaintext.input-group-addon, +.bodywebsite .input-group-lg > .input-group-btn > .form-input-plaintext.btn { + padding-right: 0; + padding-left: 0; +} +.bodywebsite .form-input-sm, +.bodywebsite .input-group-sm > .form-input, +.bodywebsite .input-group-sm > .input-group-addon, +.bodywebsite .input-group-sm > .input-group-btn > .btn { + padding: 5px 25px; + font-size: 12px; + line-height: 1.5; + border-radius: 0.2rem; +} +.bodywebsite select.form-input-sm:not([size]):not([multiple]), +.bodywebsite .input-group-sm > select.form-input:not([size]):not([multiple]), +.bodywebsite .input-group-sm > select.input-group-addon:not([size]):not([multiple]), +.bodywebsite .input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: calc(3.8125rem); +} +.bodywebsite .form-input-lg, +.bodywebsite .input-group-lg > .form-input, +.bodywebsite .input-group-lg > .input-group-addon, +.bodywebsite .input-group-lg > .input-group-btn > .btn { + padding: 12px 50px; + font-size: 18px; + line-height: 1.5; + border-radius: 0.3rem; +} +.bodywebsite select.form-input-lg:not([size]):not([multiple]), +.bodywebsite .input-group-lg > select.form-input:not([size]):not([multiple]), +.bodywebsite .input-group-lg > select.input-group-addon:not([size]):not([multiple]), +.bodywebsite .input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: calc(4.875rem); +} +.bodywebsite .form-label { + margin-bottom: 1rem; +} +.bodywebsite .form-text { + display: block; + margin-top: 0.25rem; +} +.bodywebsite .form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} +.bodywebsite .form-row > .col, +.bodywebsite .form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} +.bodywebsite .form-check { + position: relative; + display: block; + margin-bottom: 0.5rem; +} +.bodywebsite .form-check.disabled .form-check-label { + color: #dedede; +} +.bodywebsite .form-check-label { + padding-left: 1.25rem; + margin-bottom: 0; +} +.bodywebsite .form-check-input { + position: absolute; + margin-top: 0.25rem; + margin-left: -1.25rem; +} +.bodywebsite .form-check-inline { + display: inline-block; + margin-right: 0.75rem; +} +.bodywebsite .form-check-inline .form-check-label { + vertical-align: middle; +} +.bodywebsite .was-validated .form-input:valid, +.bodywebsite .form-input.is-valid, +.bodywebsite .was-validated .custom-select:valid, +.bodywebsite .custom-select.is-valid { + border-color: #98bf44; +} +.bodywebsite .was-validated .form-input:valid:focus, +.bodywebsite .form-input.is-valid:focus, +.bodywebsite .was-validated .custom-select:valid:focus, +.bodywebsite .custom-select.is-valid:focus { + box-shadow: 0 0 0 0.2rem rgba(152, 191, 68, 0.25); +} +.bodywebsite .was-validated .form-check-input:valid + .form-check-label, +.bodywebsite .form-check-input.is-valid + .form-check-label { + color: #98bf44; +} +.bodywebsite .was-validated .custom-control-input:valid ~ .custom-control-indicator, +.bodywebsite .custom-control-input.is-valid ~ .custom-control-indicator { + background-color: rgba(152, 191, 68, 0.25); +} +.bodywebsite .was-validated .custom-control-input:valid ~ .custom-control-description, +.bodywebsite .custom-control-input.is-valid ~ .custom-control-description { + color: #98bf44; +} +.bodywebsite .was-validated .custom-file-input:valid ~ .custom-file-control, +.bodywebsite .custom-file-input.is-valid ~ .custom-file-control { + border-color: #98bf44; +} +.bodywebsite .was-validated .custom-file-input:valid ~ .custom-file-control::before, +.bodywebsite .custom-file-input.is-valid ~ .custom-file-control::before { + border-color: inherit; +} +.bodywebsite .was-validated .custom-file-input:valid:focus, +.bodywebsite .custom-file-input.is-valid:focus { + box-shadow: 0 0 0 0.2rem rgba(152, 191, 68, 0.25); +} +.bodywebsite .was-validated .form-input:invalid, +.bodywebsite .form-input.is-invalid, +.bodywebsite .was-validated .custom-select:invalid, +.bodywebsite .custom-select.is-invalid { + border-color: #f5543f; +} +.bodywebsite .was-validated .form-input:invalid:focus, +.bodywebsite .form-input.is-invalid:focus, +.bodywebsite .was-validated .custom-select:invalid:focus, +.bodywebsite .custom-select.is-invalid:focus { + box-shadow: 0 0 0 0.2rem rgba(245, 84, 63, 0.25); +} +.bodywebsite .was-validated .form-check-input:invalid + .form-check-label, +.bodywebsite .form-check-input.is-invalid + .form-check-label { + color: #f5543f; +} +.bodywebsite .was-validated .custom-control-input:invalid ~ .custom-control-indicator, +.bodywebsite .custom-control-input.is-invalid ~ .custom-control-indicator { + background-color: rgba(245, 84, 63, 0.25); +} +.bodywebsite .was-validated .custom-control-input:invalid ~ .custom-control-description, +.bodywebsite .custom-control-input.is-invalid ~ .custom-control-description { + color: #f5543f; +} +.bodywebsite .was-validated .custom-file-input:invalid ~ .custom-file-control, +.bodywebsite .custom-file-input.is-invalid ~ .custom-file-control { + border-color: #f5543f; +} +.bodywebsite .was-validated .custom-file-input:invalid ~ .custom-file-control::before, +.bodywebsite .custom-file-input.is-invalid ~ .custom-file-control::before { + border-color: inherit; +} +.bodywebsite .was-validated .custom-file-input:invalid:focus, +.bodywebsite .custom-file-input.is-invalid:focus { + box-shadow: 0 0 0 0.2rem rgba(245, 84, 63, 0.25); +} +.bodywebsite .form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} +.bodywebsite .form-inline .form-check { + width: 100%; +} +@media (min-width: 576px) { + .bodywebsite .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .bodywebsite .form-inline .form-label { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .bodywebsite .form-inline .form-input { + display: inline-block; + width: auto; + vertical-align: middle; + } + .bodywebsite .form-inline .form-input-plaintext { + display: inline-block; + } + .bodywebsite .form-inline .input-group { + width: auto; + } + .bodywebsite .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + margin-top: 0; + margin-bottom: 0; + } + .bodywebsite .form-inline .form-check-label { + padding-left: 0; + } + .bodywebsite .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .bodywebsite .form-inline .custom-control { + display: flex; + align-items: center; + justify-content: center; + padding-left: 0; + } + .bodywebsite .form-inline .custom-control-indicator { + position: static; + display: inline-block; + margin-right: 0.25rem; + vertical-align: text-bottom; + } + .bodywebsite .form-inline .has-feedback .form-input-feedback { + top: 0; + } +} +.bodywebsite .btn { + display: inline-block; + font-weight: 700; + text-align: center; + white-space: nowrap; + vertical-align: middle; + user-select: none; + border: 1px solid transparent; + padding: 11px 35px; + font-size: 14px; + line-height: 1.25; + border-radius: 5px; + transition: all 0.15s ease-in-out; +} +.bodywebsite .btn:focus, +.bodywebsite .btn:hover { + text-decoration: none; +} +.bodywebsite .btn:focus, +.bodywebsite .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.bodywebsite .btn.disabled, +.bodywebsite .btn:disabled { + opacity: .65; + box-shadow: none; +} +.bodywebsite .btn:not([disabled]):not(.disabled):active, +.bodywebsite .btn:not([disabled]):not(.disabled).active { + background-image: none; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25), 0; +} +.bodywebsite a.btn.disabled, +.bodywebsite fieldset[disabled] a.btn { + pointer-events: none; +} +.bodywebsite .btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; + box-shadow: 0; +} +.bodywebsite .btn-primary:focus, +.bodywebsite .btn-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.bodywebsite .btn-primary.maincolorbisbackground:focus, +.bodywebsite .btn-primary.maincolorbisbackground.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 255, 123, 0.5); +} +.bodywebsite .btn-primary.maincolorbisbackground:hover { + box-shadow: 1px 1px 8px #aaa; +} +.bodywebsite .btn-primary.disabled, +.bodywebsite .btn-primary:disabled { + background-color: #007bff; + border-color: #007bff; +} +.bodywebsite .btn-primary:not([disabled]):not(.disabled):active, +.bodywebsite .btn-primary:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.bodywebsite .btn-secondary { + color: #fff; + background-color: #868e96; + border-color: #868e96; + box-shadow: 0; +} +.bodywebsite .btn-secondary:hover { + color: #fff; + background-color: #727b84; + border-color: #6c757d; +} +.bodywebsite .btn-secondary:focus, +.bodywebsite .btn-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); +} +.bodywebsite .btn-secondary.disabled, +.bodywebsite .btn-secondary:disabled { + background-color: #868e96; + border-color: #868e96; +} +.bodywebsite .btn-secondary:not([disabled]):not(.disabled):active, +.bodywebsite .btn-secondary:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #666e76; + box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); +} +.bodywebsite .btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; + box-shadow: 0; +} +.bodywebsite .btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} +.bodywebsite .btn-success:focus, +.bodywebsite .btn-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.bodywebsite .btn-success.disabled, +.bodywebsite .btn-success:disabled { + background-color: #28a745; + border-color: #28a745; +} +.bodywebsite .btn-success:not([disabled]):not(.disabled):active, +.bodywebsite .btn-success:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.bodywebsite .btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; + box-shadow: 0; +} +.bodywebsite .btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} +.bodywebsite .btn-info:focus, +.bodywebsite .btn-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.bodywebsite .btn-info.disabled, +.bodywebsite .btn-info:disabled { + background-color: #17a2b8; + border-color: #17a2b8; +} +.bodywebsite .btn-info:not([disabled]):not(.disabled):active, +.bodywebsite .btn-info:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.bodywebsite .btn-warning { + color: #111; + background-color: #ffc107; + border-color: #ffc107; + box-shadow: 0; +} +.bodywebsite .btn-warning:hover { + color: #111; + background-color: #e0a800; + border-color: #d39e00; +} +.bodywebsite .btn-warning:focus, +.bodywebsite .btn-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.bodywebsite .btn-warning.disabled, +.bodywebsite .btn-warning:disabled { + background-color: #ffc107; + border-color: #ffc107; +} +.bodywebsite .btn-warning:not([disabled]):not(.disabled):active, +.bodywebsite .btn-warning:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-warning.dropdown-toggle { + color: #111; + background-color: #d39e00; + border-color: #c69500; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.bodywebsite .btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; + box-shadow: 0; +} +.bodywebsite .btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} +.bodywebsite .btn-danger:focus, +.bodywebsite .btn-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.bodywebsite .btn-danger.disabled, +.bodywebsite .btn-danger:disabled { + background-color: #dc3545; + border-color: #dc3545; +} +.bodywebsite .btn-danger:not([disabled]):not(.disabled):active, +.bodywebsite .btn-danger:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.bodywebsite .btn-light { + color: #111; + background-color: #f8f9fa; + border-color: #f8f9fa; + box-shadow: 0; +} +.bodywebsite .btn-light:hover { + color: #111; + background-color: #e2e6ea; + border-color: #dae0e5; +} +.bodywebsite .btn-light:focus, +.bodywebsite .btn-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.bodywebsite .btn-light.disabled, +.bodywebsite .btn-light:disabled { + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.bodywebsite .btn-light:not([disabled]):not(.disabled):active, +.bodywebsite .btn-light:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-light.dropdown-toggle { + color: #111; + background-color: #dae0e5; + border-color: #d3d9df; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.bodywebsite .btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; + box-shadow: 0; +} +.bodywebsite .btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} +.bodywebsite .btn-dark:focus, +.bodywebsite .btn-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.bodywebsite .btn-dark.disabled, +.bodywebsite .btn-dark:disabled { + background-color: #343a40; + border-color: #343a40; +} +.bodywebsite .btn-dark:not([disabled]):not(.disabled):active, +.bodywebsite .btn-dark:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.bodywebsite .btn-outline-primary { + color: #007bff; + background-color: transparent; + background-image: none; + border-color: #007bff; +} +.bodywebsite .btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.bodywebsite .btn-outline-primary:focus, +.bodywebsite .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.bodywebsite .btn-outline-primary.disabled, +.bodywebsite .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} +.bodywebsite .btn-outline-primary:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-primary:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.bodywebsite .btn-outline-secondary { + color: #868e96; + background-color: transparent; + background-image: none; + border-color: #868e96; +} +.bodywebsite .btn-outline-secondary:hover { + color: #fff; + background-color: #868e96; + border-color: #868e96; +} +.bodywebsite .btn-outline-secondary:focus, +.bodywebsite .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); +} +.bodywebsite .btn-outline-secondary.disabled, +.bodywebsite .btn-outline-secondary:disabled { + color: #868e96; + background-color: transparent; +} +.bodywebsite .btn-outline-secondary:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-secondary:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #868e96; + border-color: #868e96; + box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); +} +.bodywebsite .btn-outline-success { + color: #28a745; + background-color: transparent; + background-image: none; + border-color: #28a745; +} +.bodywebsite .btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.bodywebsite .btn-outline-success:focus, +.bodywebsite .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.bodywebsite .btn-outline-success.disabled, +.bodywebsite .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} +.bodywebsite .btn-outline-success:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-success:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.bodywebsite .btn-outline-info { + color: #17a2b8; + background-color: transparent; + background-image: none; + border-color: #17a2b8; +} +.bodywebsite .btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.bodywebsite .btn-outline-info:focus, +.bodywebsite .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.bodywebsite .btn-outline-info.disabled, +.bodywebsite .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} +.bodywebsite .btn-outline-info:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-info:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.bodywebsite .btn-outline-warning { + color: #ffc107; + background-color: transparent; + background-image: none; + border-color: #ffc107; +} +.bodywebsite .btn-outline-warning:hover { + color: #fff; + background-color: #ffc107; + border-color: #ffc107; +} +.bodywebsite .btn-outline-warning:focus, +.bodywebsite .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.bodywebsite .btn-outline-warning.disabled, +.bodywebsite .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} +.bodywebsite .btn-outline-warning:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-warning:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-warning.dropdown-toggle { + color: #fff; + background-color: #ffc107; + border-color: #ffc107; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.bodywebsite .btn-outline-danger { + color: #dc3545; + background-color: transparent; + background-image: none; + border-color: #dc3545; +} +.bodywebsite .btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.bodywebsite .btn-outline-danger:focus, +.bodywebsite .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.bodywebsite .btn-outline-danger.disabled, +.bodywebsite .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} +.bodywebsite .btn-outline-danger:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-danger:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.bodywebsite .btn-outline-light { + color: #f8f9fa; + background-color: transparent; + background-image: none; + border-color: #f8f9fa; +} +.bodywebsite .btn-outline-light:hover { + color: #00030a; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.bodywebsite .btn-outline-light:focus, +.bodywebsite .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.bodywebsite .btn-outline-light.disabled, +.bodywebsite .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} +.bodywebsite .btn-outline-light:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-light:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-light.dropdown-toggle { + color: #00030a; + background-color: #f8f9fa; + border-color: #f8f9fa; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.bodywebsite .btn-outline-dark { + color: #343a40; + background-color: transparent; + background-image: none; + border-color: #343a40; +} +.bodywebsite .btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.bodywebsite .btn-outline-dark:focus, +.bodywebsite .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.bodywebsite .btn-outline-dark.disabled, +.bodywebsite .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} +.bodywebsite .btn-outline-dark:not([disabled]):not(.disabled):active, +.bodywebsite .btn-outline-dark:not([disabled]):not(.disabled).active, +.bodywebsite .show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.bodywebsite .btn-link { + font-weight: 400; + color: #37c386; + background-color: transparent; +} +.bodywebsite .btn-link:hover { + color: #26875d; + text-decoration: none; + background-color: transparent; + border-color: transparent; +} +.bodywebsite .btn-link:focus, +.bodywebsite .btn-link.focus { + border-color: transparent; + box-shadow: none; +} +.bodywebsite .btn-link:disabled, +.bodywebsite .btn-link.disabled { + color: #dedede; +} +.bodywebsite .btn-lg, +.bodywebsite .btn-group-lg > .btn { + padding: 12px 50px; + font-size: 18px; + line-height: 1.5; + border-radius: 6px; +} +.bodywebsite .btn-sm, +.bodywebsite .btn-group-sm > .btn { + padding: 5px 25px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.bodywebsite .btn-block { + display: block; + width: 100%; +} +.bodywebsite .btn-block + .btn-block { + margin-top: 0.5rem; +} +.bodywebsite input[type="submit"].btn-block, +.bodywebsite input[type="reset"].btn-block, +.bodywebsite input[type="button"].btn-block { + width: 100%; +} +.bodywebsite .fade { + opacity: 0; + transition: opacity 0.15s linear; +} +.bodywebsite .fade.show { + opacity: 1; +} +.bodywebsite .collapse { + display: none; +} +.bodywebsite .collapse.show { + display: block; +} +.bodywebsite tr.collapse.show { + display: table-row; +} +.bodywebsite tbody.collapse.show { + display: table-row-group; +} +.bodywebsite .collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +.bodywebsite .dropup, +.bodywebsite .dropdown { + position: relative; +} +.bodywebsite .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.bodywebsite .dropdown-toggle:empty::after { + margin-left: 0; +} +.bodywebsite .dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175); +} +.bodywebsite .dropup .dropdown-menu { + margin-top: 0; + margin-bottom: 0.125rem; +} +.bodywebsite .dropup .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.bodywebsite .dropup .dropdown-toggle:empty::after { + margin-left: 0; +} +.bodywebsite .dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e5e5e5; +} +.bodywebsite .dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #2a2b2b; + text-align: inherit; + white-space: nowrap; + background: none; + border: 0; +} +.bodywebsite .dropdown-item:focus, +.bodywebsite .dropdown-item:hover { + color: #1d1e1e; + text-decoration: none; + background-color: #f5f5f5; +} +.bodywebsite .dropdown-item.active, +.bodywebsite .dropdown-item:active { + color: #2a2b2b; + text-decoration: none; + background-color: #37c386; +} +.bodywebsite .dropdown-item.disabled, +.bodywebsite .dropdown-item:disabled { + color: #dedede; + background-color: transparent; +} +.bodywebsite .dropdown-menu.show { + display: block; +} +.bodywebsite .dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 12px; + color: #dedede; + white-space: nowrap; +} +.bodywebsite .btn-group, +.bodywebsite .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.bodywebsite .btn-group > .btn, +.bodywebsite .btn-group-vertical > .btn { + position: relative; + flex: 0 1 auto; +} +.bodywebsite .btn-group > .btn:hover, +.bodywebsite .btn-group-vertical > .btn:hover { + z-index: 2; +} +.bodywebsite .btn-group > .btn:focus, +.bodywebsite .btn-group > .btn:active, +.bodywebsite .btn-group > .btn.active, +.bodywebsite .btn-group-vertical > .btn:focus, +.bodywebsite .btn-group-vertical > .btn:active, +.bodywebsite .btn-group-vertical > .btn.active { + z-index: 2; +} +.bodywebsite .btn-group .btn + .btn, +.bodywebsite .btn-group .btn + .btn-group, +.bodywebsite .btn-group .btn-group + .btn, +.bodywebsite .btn-group .btn-group + .btn-group, +.bodywebsite .btn-group-vertical .btn + .btn, +.bodywebsite .btn-group-vertical .btn + .btn-group, +.bodywebsite .btn-group-vertical .btn-group + .btn, +.bodywebsite .btn-group-vertical .btn-group + .btn-group { + margin-left: -1px; +} +.bodywebsite .btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.bodywebsite .btn-toolbar .input-group { + width: auto; +} +.bodywebsite .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.bodywebsite .btn-group > .btn:first-child { + margin-left: 0; +} +.bodywebsite .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.bodywebsite .btn-group > .btn:last-child:not(:first-child), +.bodywebsite .btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.bodywebsite .btn-group > .btn-group { + float: left; +} +.bodywebsite .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.bodywebsite .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.bodywebsite .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.bodywebsite .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.bodywebsite .btn + .dropdown-toggle-split { + padding-right: 26.25px; + padding-left: 26.25px; +} +.bodywebsite .btn + .dropdown-toggle-split::after { + margin-left: 0; +} +.bodywebsite .btn-sm + .dropdown-toggle-split, +.bodywebsite .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 18.75px; + padding-left: 18.75px; +} +.bodywebsite .btn-lg + .dropdown-toggle-split, +.bodywebsite .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 37.5px; + padding-left: 37.5px; +} +.bodywebsite .btn-group.show .dropdown-toggle { + box-shadow: 0; +} +.bodywebsite .btn-group.show .dropdown-toggle.btn-link { + box-shadow: none; +} +.bodywebsite .btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.bodywebsite .btn-group-vertical .btn, +.bodywebsite .btn-group-vertical .btn-group { + width: 100%; +} +.bodywebsite .btn-group-vertical > .btn + .btn, +.bodywebsite .btn-group-vertical > .btn + .btn-group, +.bodywebsite .btn-group-vertical > .btn-group + .btn, +.bodywebsite .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.bodywebsite .btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.bodywebsite .btn-group-vertical > .btn:first-child:not(:last-child) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.bodywebsite .btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.bodywebsite .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.bodywebsite .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.bodywebsite .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.bodywebsite .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.bodywebsite [data-toggle="buttons"] > .btn input[type="radio"], +.bodywebsite [data-toggle="buttons"] > .btn input[type="checkbox"], +.bodywebsite [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +.bodywebsite [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.bodywebsite .input-group { + position: relative; + display: flex; + align-items: stretch; + width: 100%; +} +.bodywebsite .input-group .form-input { + position: relative; + z-index: 2; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} +.bodywebsite .input-group .form-input:focus, +.bodywebsite .input-group .form-input:active, +.bodywebsite .input-group .form-input:hover { + z-index: 3; +} +.bodywebsite .input-group-addon, +.bodywebsite .input-group-btn, +.bodywebsite .input-group .form-input { + display: flex; + align-items: center; +} +.bodywebsite .input-group-addon:not(:first-child):not(:last-child), +.bodywebsite .input-group-btn:not(:first-child):not(:last-child), +.bodywebsite .input-group .form-input:not(:first-child):not(:last-child) { + border-radius: 0; +} +.bodywebsite .input-group-addon, +.bodywebsite .input-group-btn { + white-space: nowrap; +} +.bodywebsite .input-group-addon { + padding: 11px 35px; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + line-height: 1.25; + color: #495057; + text-align: center; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.bodywebsite .input-group-addon.form-input-sm, +.bodywebsite .input-group-sm > .input-group-addon, +.bodywebsite .input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 5px 25px; + font-size: 12px; + border-radius: 0.2rem; +} +.bodywebsite .input-group-addon.form-input-lg, +.bodywebsite .input-group-lg > .input-group-addon, +.bodywebsite .input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 12px 50px; + font-size: 18px; + border-radius: 0.3rem; +} +.bodywebsite .input-group-addon input[type="radio"], +.bodywebsite .input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.bodywebsite .input-group .form-input:not(:last-child), +.bodywebsite .input-group-addon:not(:last-child), +.bodywebsite .input-group-btn:not(:last-child) > .btn, +.bodywebsite .input-group-btn:not(:last-child) > .btn-group > .btn, +.bodywebsite .input-group-btn:not(:last-child) > .dropdown-toggle, +.bodywebsite .input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle), +.bodywebsite .input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.bodywebsite .input-group-addon:not(:last-child) { + border-right: 0; +} +.bodywebsite .input-group .form-input:not(:first-child), +.bodywebsite .input-group-addon:not(:first-child), +.bodywebsite .input-group-btn:not(:first-child) > .btn, +.bodywebsite .input-group-btn:not(:first-child) > .btn-group > .btn, +.bodywebsite .input-group-btn:not(:first-child) > .dropdown-toggle, +.bodywebsite .input-group-btn:not(:last-child) > .btn:not(:first-child), +.bodywebsite .input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.bodywebsite .form-input + .input-group-addon:not(:first-child) { + border-left: 0; +} +.bodywebsite .input-group-btn { + position: relative; + align-items: stretch; + font-size: 0; + white-space: nowrap; +} +.bodywebsite .input-group-btn > .btn { + position: relative; +} +.bodywebsite .input-group-btn > .btn + .btn { + margin-left: -1px; +} +.bodywebsite .input-group-btn > .btn:focus, +.bodywebsite .input-group-btn > .btn:active, +.bodywebsite .input-group-btn > .btn:hover { + z-index: 3; +} +.bodywebsite .input-group-btn:first-child > .btn + .btn { + margin-left: 0; +} +.bodywebsite .input-group-btn:not(:last-child) > .btn, +.bodywebsite .input-group-btn:not(:last-child) > .btn-group { + margin-right: -1px; +} +.bodywebsite .input-group-btn:not(:first-child) > .btn, +.bodywebsite .input-group-btn:not(:first-child) > .btn-group { + z-index: 2; + margin-left: 0; +} +.bodywebsite .input-group-btn:not(:first-child) > .btn:first-child, +.bodywebsite .input-group-btn:not(:first-child) > .btn-group:first-child { + margin-left: -1px; +} +.bodywebsite .input-group-btn:not(:first-child) > .btn:focus, +.bodywebsite .input-group-btn:not(:first-child) > .btn:active, +.bodywebsite .input-group-btn:not(:first-child) > .btn:hover, +.bodywebsite .input-group-btn:not(:first-child) > .btn-group:focus, +.bodywebsite .input-group-btn:not(:first-child) > .btn-group:active, +.bodywebsite .input-group-btn:not(:first-child) > .btn-group:hover { + z-index: 3; +} +.bodywebsite .custom-control { + position: relative; + display: inline-flex; + min-height: 1.71429rem; + padding-left: 1.5rem; + margin-right: 1rem; +} +.bodywebsite .custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; +} +.bodywebsite .custom-control-input:checked ~ .custom-control-indicator { + color: #fff; + background-color: #007bff; + box-shadow: none; +} +.bodywebsite .custom-control-input:focus ~ .custom-control-indicator { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.bodywebsite .custom-control-input:active ~ .custom-control-indicator { + color: #fff; + background-color: #b3d7ff; + box-shadow: none; +} +.bodywebsite .custom-control-input:disabled ~ .custom-control-indicator { + background-color: #e9ecef; +} +.bodywebsite .custom-control-input:disabled ~ .custom-control-description { + color: #868e96; +} +.bodywebsite .custom-control-indicator { + position: absolute; + top: 0.35714rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + user-select: none; + background-color: #ddd; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); +} +.bodywebsite .custom-checkbox .custom-control-indicator { + border-radius: 0.25rem; +} +.bodywebsite .custom-checkbox .custom-control-input:checked ~ .custom-control-indicator { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); +} +.bodywebsite .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator { + background-color: #007bff; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); + box-shadow: none; +} +.bodywebsite .custom-radio .custom-control-indicator { + border-radius: 50%; +} +.bodywebsite .custom-radio .custom-control-input:checked ~ .custom-control-indicator { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); +} +.bodywebsite .custom-controls-stacked { + display: flex; + flex-direction: column; +} +.bodywebsite .custom-controls-stacked .custom-control { + margin-bottom: 0.25rem; +} +.bodywebsite .custom-controls-stacked .custom-control + .custom-control { + margin-left: 0; +} +.bodywebsite .custom-select { + display: inline-block; + max-width: 100%; + height: calc(4.25rem); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + appearance: none; +} +.bodywebsite .custom-select:focus { + border-color: #80bdff; + outline: none; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); +} +.bodywebsite .custom-select[multiple] { + height: auto; + background-image: none; +} +.bodywebsite .custom-select:disabled { + color: #868e96; + background-color: #e9ecef; +} +.bodywebsite .custom-select::-ms-expand { + opacity: 0; +} +.bodywebsite .custom-select-sm { + height: calc(3.8125rem); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; +} +.bodywebsite .custom-file { + position: relative; + display: inline-block; + max-width: 100%; + height: calc(4.25rem); + margin-bottom: 0; +} +.bodywebsite .custom-file-input { + min-width: 14rem; + max-width: 100%; + height: calc(4.25rem); + margin: 0; + opacity: 0; +} +.bodywebsite .custom-file-input:focus ~ .custom-file-control { + box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #007bff; +} +.bodywebsite .custom-file-control { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 5; + height: calc(4.25rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + pointer-events: none; + user-select: none; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.bodywebsite .custom-file-control:lang(en):empty::after { + content: "Choose file..."; +} +.bodywebsite .custom-file-control::before { + position: absolute; + top: -1px; + right: -1px; + bottom: -1px; + z-index: 6; + display: block; + height: calc(4.25rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0 0.25rem 0.25rem 0; +} +.bodywebsite .custom-file-control:lang(en)::before { + content: "Browse"; +} +.bodywebsite .nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.bodywebsite .nav-link { + display: block; + padding: 0.5rem 1rem; +} +.bodywebsite .nav-link:focus, +.bodywebsite .nav-link:hover { + text-decoration: none; +} +.bodywebsite .nav-link.disabled { + color: #868e96; +} +.bodywebsite .nav-tabs { + border-bottom: 1px solid #ddd; +} +.bodywebsite .nav-tabs .nav-item { + margin-bottom: -1px; +} +.bodywebsite .nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.bodywebsite .nav-tabs .nav-link:focus, +.bodywebsite .nav-tabs .nav-link:hover { + border-color: #f9f9f9 #f9f9f9 #ddd; +} +.bodywebsite .nav-tabs .nav-link.disabled { + color: #868e96; + background-color: transparent; + border-color: transparent; +} +.bodywebsite .nav-tabs .nav-link.active, +.bodywebsite .nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #ddd #ddd #fff; +} +.bodywebsite .nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.bodywebsite .nav-pills .nav-link { + border-radius: 0; +} +.bodywebsite .nav-pills .nav-link.active, +.bodywebsite .nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} +.bodywebsite .nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} +.bodywebsite .nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} +.bodywebsite .tab-content > .tab-pane { + display: none; +} +.bodywebsite .tab-content > .active { + display: block; +} +.bodywebsite .navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0.5rem 1rem; +} +.bodywebsite .navbar > .container, +.bodywebsite .navbar > .container-fluid { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} +.bodywebsite .navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} +.bodywebsite .navbar-brand:focus, +.bodywebsite .navbar-brand:hover { + text-decoration: none; +} +.bodywebsite .navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.bodywebsite .navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.bodywebsite .navbar-nav .dropdown-menu { + position: static; + float: none; +} +.bodywebsite .navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.bodywebsite .navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} +.bodywebsite .navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.bodywebsite .navbar-toggler:focus, +.bodywebsite .navbar-toggler:hover { + text-decoration: none; +} +.bodywebsite .navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} +@media (max-width: 575px) { + .bodywebsite .navbar-expand-sm > .container, + .bodywebsite .navbar-expand-sm > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 576px) { + .bodywebsite .navbar-expand-sm { + flex-flow: row nowrap; + justify-content: flex-start; + } + .bodywebsite .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .bodywebsite .navbar-expand-sm .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; + } + .bodywebsite .navbar-expand-sm > .container, + .bodywebsite .navbar-expand-sm > .container-fluid { + flex-wrap: nowrap; + } + .bodywebsite .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .bodywebsite .navbar-expand-sm .navbar-toggler { + display: none; + } + .bodywebsite .navbar-expand-sm .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 767px) { + .bodywebsite .navbar-expand-md > .container, + .bodywebsite .navbar-expand-md > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 768px) { + .bodywebsite .navbar-expand-md { + flex-flow: row nowrap; + justify-content: flex-start; + } + .bodywebsite .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .bodywebsite .navbar-expand-md .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; + } + .bodywebsite .navbar-expand-md > .container, + .bodywebsite .navbar-expand-md > .container-fluid { + flex-wrap: nowrap; + } + .bodywebsite .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .bodywebsite .navbar-expand-md .navbar-toggler { + display: none; + } + .bodywebsite .navbar-expand-md .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 991px) { + .bodywebsite .navbar-expand-lg > .container, + .bodywebsite .navbar-expand-lg > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 992px) { + .bodywebsite .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + .bodywebsite .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .bodywebsite .navbar-expand-lg .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; + } + .bodywebsite .navbar-expand-lg > .container, + .bodywebsite .navbar-expand-lg > .container-fluid { + flex-wrap: nowrap; + } + .bodywebsite .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .bodywebsite .navbar-expand-lg .navbar-toggler { + display: none; + } + .bodywebsite .navbar-expand-lg .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 1199px) { + .bodywebsite .navbar-expand-xl > .container, + .bodywebsite .navbar-expand-xl > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 1200px) { + .bodywebsite .navbar-expand-xl { + flex-flow: row nowrap; + justify-content: flex-start; + } + .bodywebsite .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .bodywebsite .navbar-expand-xl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; + } + .bodywebsite .navbar-expand-xl > .container, + .bodywebsite .navbar-expand-xl > .container-fluid { + flex-wrap: nowrap; + } + .bodywebsite .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .bodywebsite .navbar-expand-xl .navbar-toggler { + display: none; + } + .bodywebsite .navbar-expand-xl .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +@media (max-width: 1799px) { + .bodywebsite .navbar-expand-xxl > .container, + .bodywebsite .navbar-expand-xxl > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 1800px) { + .bodywebsite .navbar-expand-xxl { + flex-flow: row nowrap; + justify-content: flex-start; + } + .bodywebsite .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + .bodywebsite .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; + } + .bodywebsite .navbar-expand-xxl > .container, + .bodywebsite .navbar-expand-xxl > .container-fluid { + flex-wrap: nowrap; + } + .bodywebsite .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .bodywebsite .navbar-expand-xxl .navbar-toggler { + display: none; + } + .bodywebsite .navbar-expand-xxl .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} +.bodywebsite .navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; +} +.bodywebsite .navbar-expand > .container, +.bodywebsite .navbar-expand > .container-fluid { + padding-right: 0; + padding-left: 0; +} +.bodywebsite .navbar-expand .navbar-nav { + flex-direction: row; +} +.bodywebsite .navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.bodywebsite .navbar-expand .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; +} +.bodywebsite .navbar-expand .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; +} +.bodywebsite .navbar-expand > .container, +.bodywebsite .navbar-expand > .container-fluid { + flex-wrap: nowrap; +} +.bodywebsite .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.bodywebsite .navbar-expand .navbar-toggler { + display: none; +} +.bodywebsite .navbar-expand .dropup .dropdown-menu { + top: auto; + bottom: 100%; +} +.bodywebsite .navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.bodywebsite .navbar-light .navbar-brand:focus, +.bodywebsite .navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, 0.9); +} +.bodywebsite .navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} +.bodywebsite .navbar-light .navbar-nav .nav-link:focus, +.bodywebsite .navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.7); +} +.bodywebsite .navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.bodywebsite .navbar-light .navbar-nav .show > .nav-link, +.bodywebsite .navbar-light .navbar-nav .active > .nav-link, +.bodywebsite .navbar-light .navbar-nav .nav-link.show, +.bodywebsite .navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.bodywebsite .navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} +.bodywebsite .navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} +.bodywebsite .navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} +.bodywebsite .navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} +.bodywebsite .navbar-light .navbar-text a:focus, +.bodywebsite .navbar-light .navbar-text a:hover { + color: rgba(0, 0, 0, 0.9); +} +.bodywebsite .navbar-dark .navbar-brand { + color: #fff; +} +.bodywebsite .navbar-dark .navbar-brand:focus, +.bodywebsite .navbar-dark .navbar-brand:hover { + color: #fff; +} +.bodywebsite .navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .navbar-dark .navbar-nav .nav-link:focus, +.bodywebsite .navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, 0.75); +} +.bodywebsite .navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.bodywebsite .navbar-dark .navbar-nav .show > .nav-link, +.bodywebsite .navbar-dark .navbar-nav .active > .nav-link, +.bodywebsite .navbar-dark .navbar-nav .nav-link.show, +.bodywebsite .navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.bodywebsite .navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} +.bodywebsite .navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} +.bodywebsite .navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .navbar-dark .navbar-text a { + color: #fff; +} +.bodywebsite .navbar-dark .navbar-text a:focus, +.bodywebsite .navbar-dark .navbar-text a:hover { + color: #fff; +} +.bodywebsite .jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 6px; +} +@media (min-width: 576px) { + .bodywebsite .jumbotron { + padding: 4rem 2rem; + } +} +.bodywebsite .jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} +.bodywebsite .alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.bodywebsite .alert-heading { + color: inherit; +} +.bodywebsite .alert-link { + font-weight: 700; +} +.bodywebsite .alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} +.bodywebsite .alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} +.bodywebsite .alert-primary hr { + border-top-color: #9fcdff; +} +.bodywebsite .alert-primary .alert-link { + color: #002752; +} +.bodywebsite .alert-secondary { + color: #464a4e; + background-color: #e7e8ea; + border-color: #dddfe2; +} +.bodywebsite .alert-secondary hr { + border-top-color: #cfd2d6; +} +.bodywebsite .alert-secondary .alert-link { + color: #2e3133; +} +.bodywebsite .alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} +.bodywebsite .alert-success hr { + border-top-color: #b1dfbb; +} +.bodywebsite .alert-success .alert-link { + color: #0b2e13; +} +.bodywebsite .alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} +.bodywebsite .alert-info hr { + border-top-color: #abdde5; +} +.bodywebsite .alert-info .alert-link { + color: #062c33; +} +.bodywebsite .alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} +.bodywebsite .alert-warning hr { + border-top-color: #ffe8a1; +} +.bodywebsite .alert-warning .alert-link { + color: #533f03; +} +.bodywebsite .alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} +.bodywebsite .alert-danger hr { + border-top-color: #f1b0b7; +} +.bodywebsite .alert-danger .alert-link { + color: #491217; +} +.bodywebsite .alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} +.bodywebsite .alert-light hr { + border-top-color: #ececf6; +} +.bodywebsite .alert-light .alert-link { + color: #686868; +} +.bodywebsite .alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} +.bodywebsite .alert-dark hr { + border-top-color: #b9bbbe; +} +.bodywebsite .alert-dark .alert-link { + color: #040505; +} +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} +.bodywebsite .progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} +.bodywebsite .progress-bar { + display: flex; + align-items: center; + justify-content: center; + color: #fff; + background-color: #007bff; +} +.bodywebsite .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} +.bodywebsite .progress-bar-animated { + animation: progress-bar-stripes 1s linear infinite; +} +.bodywebsite .media { + display: flex; + align-items: flex-start; +} +.bodywebsite .media-body { + flex: 1; +} +.bodywebsite .list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} +.bodywebsite .list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.bodywebsite .list-group-item-action:focus, +.bodywebsite .list-group-item-action:hover { + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.bodywebsite .list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} +.bodywebsite .list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.bodywebsite .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.bodywebsite .list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.bodywebsite .list-group-item:focus, +.bodywebsite .list-group-item:hover { + text-decoration: none; +} +.bodywebsite .list-group-item.disabled, +.bodywebsite .list-group-item:disabled { + color: #868e96; + background-color: #fff; +} +.bodywebsite .list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.bodywebsite .list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.bodywebsite .list-group-flush:first-child .list-group-item:first-child { + border-top: 0; +} +.bodywebsite .list-group-flush:last-child .list-group-item:last-child { + border-bottom: 0; +} +.bodywebsite .list-group-item-primary { + color: #004085; + background-color: #b8daff; +} +.bodywebsite a.list-group-item-primary, +.bodywebsite button.list-group-item-primary { + color: #004085; +} +.bodywebsite a.list-group-item-primary:focus, +.bodywebsite a.list-group-item-primary:hover, +.bodywebsite button.list-group-item-primary:focus, +.bodywebsite button.list-group-item-primary:hover { + color: #004085; + background-color: #9fcdff; +} +.bodywebsite a.list-group-item-primary.active, +.bodywebsite button.list-group-item-primary.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} +.bodywebsite .list-group-item-secondary { + color: #464a4e; + background-color: #dddfe2; +} +.bodywebsite a.list-group-item-secondary, +.bodywebsite button.list-group-item-secondary { + color: #464a4e; +} +.bodywebsite a.list-group-item-secondary:focus, +.bodywebsite a.list-group-item-secondary:hover, +.bodywebsite button.list-group-item-secondary:focus, +.bodywebsite button.list-group-item-secondary:hover { + color: #464a4e; + background-color: #cfd2d6; +} +.bodywebsite a.list-group-item-secondary.active, +.bodywebsite button.list-group-item-secondary.active { + color: #fff; + background-color: #464a4e; + border-color: #464a4e; +} +.bodywebsite .list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} +.bodywebsite a.list-group-item-success, +.bodywebsite button.list-group-item-success { + color: #155724; +} +.bodywebsite a.list-group-item-success:focus, +.bodywebsite a.list-group-item-success:hover, +.bodywebsite button.list-group-item-success:focus, +.bodywebsite button.list-group-item-success:hover { + color: #155724; + background-color: #b1dfbb; +} +.bodywebsite a.list-group-item-success.active, +.bodywebsite button.list-group-item-success.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} +.bodywebsite .list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} +.bodywebsite a.list-group-item-info, +.bodywebsite button.list-group-item-info { + color: #0c5460; +} +.bodywebsite a.list-group-item-info:focus, +.bodywebsite a.list-group-item-info:hover, +.bodywebsite button.list-group-item-info:focus, +.bodywebsite button.list-group-item-info:hover { + color: #0c5460; + background-color: #abdde5; +} +.bodywebsite a.list-group-item-info.active, +.bodywebsite button.list-group-item-info.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} +.bodywebsite .list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} +.bodywebsite a.list-group-item-warning, +.bodywebsite button.list-group-item-warning { + color: #856404; +} +.bodywebsite a.list-group-item-warning:focus, +.bodywebsite a.list-group-item-warning:hover, +.bodywebsite button.list-group-item-warning:focus, +.bodywebsite button.list-group-item-warning:hover { + color: #856404; + background-color: #ffe8a1; +} +.bodywebsite a.list-group-item-warning.active, +.bodywebsite button.list-group-item-warning.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} +.bodywebsite .list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} +.bodywebsite a.list-group-item-danger, +.bodywebsite button.list-group-item-danger { + color: #721c24; +} +.bodywebsite a.list-group-item-danger:focus, +.bodywebsite a.list-group-item-danger:hover, +.bodywebsite button.list-group-item-danger:focus, +.bodywebsite button.list-group-item-danger:hover { + color: #721c24; + background-color: #f1b0b7; +} +.bodywebsite a.list-group-item-danger.active, +.bodywebsite button.list-group-item-danger.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} +.bodywebsite .list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} +.bodywebsite a.list-group-item-light, +.bodywebsite button.list-group-item-light { + color: #818182; +} +.bodywebsite a.list-group-item-light:focus, +.bodywebsite a.list-group-item-light:hover, +.bodywebsite button.list-group-item-light:focus, +.bodywebsite button.list-group-item-light:hover { + color: #818182; + background-color: #ececf6; +} +.bodywebsite a.list-group-item-light.active, +.bodywebsite button.list-group-item-light.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} +.bodywebsite .list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} +.bodywebsite a.list-group-item-dark, +.bodywebsite button.list-group-item-dark { + color: #1b1e21; +} +.bodywebsite a.list-group-item-dark:focus, +.bodywebsite a.list-group-item-dark:hover, +.bodywebsite button.list-group-item-dark:focus, +.bodywebsite button.list-group-item-dark:hover { + color: #1b1e21; + background-color: #b9bbbe; +} +.bodywebsite a.list-group-item-dark.active, +.bodywebsite button.list-group-item-dark.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} +.bodywebsite .close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} +.bodywebsite .close:focus, +.bodywebsite .close:hover { + color: #000; + text-decoration: none; + opacity: .75; +} +.bodywebsite button.close { + padding: 0; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.bodywebsite .tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.71429; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 12px; + word-wrap: break-word; + opacity: 0; +} +.bodywebsite .tooltip.show { + opacity: 1; +} +.bodywebsite .tooltip .arrow { + position: absolute; + display: block; + width: 6px; + height: 6px; +} +.bodywebsite .tooltip .arrow::before { + position: absolute; + border-color: transparent; + border-style: solid; +} +.bodywebsite .tooltip.bs-tooltip-top, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="top"] { + padding: 6px 0; +} +.bodywebsite .tooltip.bs-tooltip-top .arrow, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} +.bodywebsite .tooltip.bs-tooltip-top .arrow::before, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before { + margin-left: -4px; + content: ""; + border-width: 6px 6px 0; + border-top-color: #37c386; +} +.bodywebsite .tooltip.bs-tooltip-right, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="right"] { + padding: 0 6px; +} +.bodywebsite .tooltip.bs-tooltip-right .arrow, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; +} +.bodywebsite .tooltip.bs-tooltip-right .arrow::before, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before { + margin-top: -4px; + content: ""; + border-width: 6px 6px 6px 0; + border-right-color: #37c386; +} +.bodywebsite .tooltip.bs-tooltip-bottom, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="bottom"] { + padding: 6px 0; +} +.bodywebsite .tooltip.bs-tooltip-bottom .arrow, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} +.bodywebsite .tooltip.bs-tooltip-bottom .arrow::before, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + margin-left: -4px; + content: ""; + border-width: 0 6px 6px; + border-bottom-color: #37c386; +} +.bodywebsite .tooltip.bs-tooltip-left, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="left"] { + padding: 0 6px; +} +.bodywebsite .tooltip.bs-tooltip-left .arrow, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; +} +.bodywebsite .tooltip.bs-tooltip-left .arrow::before, +.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before { + right: 0; + margin-top: -4px; + content: ""; + border-width: 6px 0 6px 6px; + border-left-color: #37c386; +} +.bodywebsite .tooltip-inner { + max-width: 200px; + padding: 6px 10px; + color: #fff; + text-align: center; + background-color: #37c386; + border-radius: 0; +} +.bodywebsite .popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: "Roboto", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.71429; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 12px; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2); +} +.bodywebsite .popover .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.bodywebsite .popover .arrow::before, +.bodywebsite .popover .arrow::after { + position: absolute; + display: block; + border-color: transparent; + border-style: solid; +} +.bodywebsite .popover .arrow::before { + content: ""; + border-width: 0.8rem; +} +.bodywebsite .popover .arrow::after { + content: ""; + border-width: 0.8rem; +} +.bodywebsite .popover.bs-popover-top, +.bodywebsite .popover.bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.8rem; +} +.bodywebsite .popover.bs-popover-top .arrow, +.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow { + bottom: 0; +} +.bodywebsite .popover.bs-popover-top .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::before, +.bodywebsite .popover.bs-popover-top .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::after { + border-bottom-width: 0; +} +.bodywebsite .popover.bs-popover-top .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::before { + bottom: -0.8rem; + margin-left: -0.8rem; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bodywebsite .popover.bs-popover-top .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::after { + bottom: calc(0.2rem); + margin-left: -0.8rem; + border-top-color: #fff; +} +.bodywebsite .popover.bs-popover-right, +.bodywebsite .popover.bs-popover-auto[x-placement^="right"] { + margin-left: 0.8rem; +} +.bodywebsite .popover.bs-popover-right .arrow, +.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow { + left: 0; +} +.bodywebsite .popover.bs-popover-right .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::before, +.bodywebsite .popover.bs-popover-right .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::after { + margin-top: -0.8rem; + border-left-width: 0; +} +.bodywebsite .popover.bs-popover-right .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::before { + left: -0.8rem; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bodywebsite .popover.bs-popover-right .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::after { + left: calc(0.2rem); + border-right-color: #fff; +} +.bodywebsite .popover.bs-popover-bottom, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.8rem; +} +.bodywebsite .popover.bs-popover-bottom .arrow, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow { + top: 0; +} +.bodywebsite .popover.bs-popover-bottom .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bodywebsite .popover.bs-popover-bottom .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after { + margin-left: -0.8rem; + border-top-width: 0; +} +.bodywebsite .popover.bs-popover-bottom .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before { + top: -0.8rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bodywebsite .popover.bs-popover-bottom .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after { + top: calc(0.2rem); + border-bottom-color: #fff; +} +.bodywebsite .popover.bs-popover-bottom .popover-header::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 20px; + margin-left: -10px; + content: ""; + border-bottom: 1px solid #f7f7f7; +} +.bodywebsite .popover.bs-popover-left, +.bodywebsite .popover.bs-popover-auto[x-placement^="left"] { + margin-right: 0.8rem; +} +.bodywebsite .popover.bs-popover-left .arrow, +.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow { + right: 0; +} +.bodywebsite .popover.bs-popover-left .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::before, +.bodywebsite .popover.bs-popover-left .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::after { + margin-top: -0.8rem; + border-right-width: 0; +} +.bodywebsite .popover.bs-popover-left .arrow::before, +.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::before { + right: -0.8rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bodywebsite .popover.bs-popover-left .arrow::after, +.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::after { + right: calc(0.2rem); + border-left-color: #fff; +} +.bodywebsite .popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 14px; + color: inherit; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(5px); + border-top-right-radius: calc(5px); +} +.bodywebsite .popover-header:empty { + display: none; +} +.bodywebsite .popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} +.bodywebsite .carousel { + position: relative; +} +.bodywebsite .carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.bodywebsite .carousel-item { + position: relative; + display: none; + align-items: center; + width: 100%; + transition: transform 0.6s ease; + backface-visibility: hidden; + perspective: 1000px; +} +.bodywebsite .carousel-item.active, +.bodywebsite .carousel-item-next, +.bodywebsite .carousel-item-prev { + display: block; +} +.bodywebsite .carousel-item-next, +.bodywebsite .carousel-item-prev { + position: absolute; + top: 0; +} +.bodywebsite .carousel-item-next.carousel-item-left, +.bodywebsite .carousel-item-prev.carousel-item-right { + transform: translateX(0); +} +@supports (transform-style: preserve-3d) { + .bodywebsite .carousel-item-next.carousel-item-left, + .bodywebsite .carousel-item-prev.carousel-item-right { + transform: translate3d(0, 0, 0); + } +} +.bodywebsite .carousel-item-next, +.bodywebsite .active.carousel-item-right { + transform: translateX(100%); +} +@supports (transform-style: preserve-3d) { + .bodywebsite .carousel-item-next, + .bodywebsite .active.carousel-item-right { + transform: translate3d(100%, 0, 0); + } +} +.bodywebsite .carousel-item-prev, +.bodywebsite .active.carousel-item-left { + transform: translateX(-100%); +} +@supports (transform-style: preserve-3d) { + .bodywebsite .carousel-item-prev, + .bodywebsite .active.carousel-item-left { + transform: translate3d(-100%, 0, 0); + } +} +.bodywebsite .carousel-control-prev, +.bodywebsite .carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; +} +.bodywebsite .carousel-control-prev:focus, +.bodywebsite .carousel-control-prev:hover, +.bodywebsite .carousel-control-next:focus, +.bodywebsite .carousel-control-next:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9; +} +.bodywebsite .carousel-control-prev { + left: 0; +} +.bodywebsite .carousel-control-next { + right: 0; +} +.bodywebsite .carousel-control-prev-icon, +.bodywebsite .carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; +} +.bodywebsite .carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); +} +.bodywebsite .carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); +} +.bodywebsite .carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} +.bodywebsite .carousel-indicators li { + position: relative; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + background-color: rgba(255, 255, 255, 0.5); +} +.bodywebsite .carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} +.bodywebsite .carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} +.bodywebsite .carousel-indicators .active { + background-color: #fff; +} +.bodywebsite .carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} +.bodywebsite .align-baseline { + vertical-align: baseline !important; +} +.bodywebsite .align-top { + vertical-align: top !important; +} +.bodywebsite .align-middle { + vertical-align: middle !important; +} +.bodywebsite .align-bottom { + vertical-align: bottom !important; +} +.bodywebsite .align-text-bottom { + vertical-align: text-bottom !important; +} +.bodywebsite .align-text-top { + vertical-align: text-top !important; +} +.bodywebsite .bg-primary { + background-color: #007bff !important; +} +.bodywebsite a.bg-primary:focus, +.bodywebsite a.bg-primary:hover { + background-color: #0062cc !important; +} +.bodywebsite .bg-secondary { + background-color: #868e96 !important; +} +.bodywebsite a.bg-secondary:focus, +.bodywebsite a.bg-secondary:hover { + background-color: #6c757d !important; +} +.bodywebsite .bg-success { + background-color: #28a745 !important; +} +.bodywebsite a.bg-success:focus, +.bodywebsite a.bg-success:hover { + background-color: #1e7e34 !important; +} +.bodywebsite .bg-info { + background-color: #17a2b8 !important; +} +.bodywebsite a.bg-info:focus, +.bodywebsite a.bg-info:hover { + background-color: #117a8b !important; +} +.bodywebsite .bg-warning { + background-color: #ffc107 !important; +} +.bodywebsite a.bg-warning:focus, +.bodywebsite a.bg-warning:hover { + background-color: #d39e00 !important; +} +.bodywebsite .bg-danger { + background-color: #dc3545 !important; +} +.bodywebsite a.bg-danger:focus, +.bodywebsite a.bg-danger:hover { + background-color: #bd2130 !important; +} +.bodywebsite .bg-light { + background-color: #f8f9fa !important; +} +.bodywebsite a.bg-light:focus, +.bodywebsite a.bg-light:hover { + background-color: #dae0e5 !important; +} +.bodywebsite .bg-dark { + background-color: #343a40 !important; +} +.bodywebsite a.bg-dark:focus, +.bodywebsite a.bg-dark:hover { + background-color: #1d2124 !important; +} +.bodywebsite .bg-default { + background-color: #fff !important; +} +.bodywebsite .bg-transparent { + background-color: transparent !important; +} +.bodywebsite .border { + border: 1px solid #e9ecef !important; +} +.bodywebsite .border-0 { + border: 0 !important; +} +.bodywebsite .border-top-0 { + border-top: 0 !important; +} +.bodywebsite .border-right-0 { + border-right: 0 !important; +} +.bodywebsite .border-bottom-0 { + border-bottom: 0 !important; +} +.bodywebsite .border-left-0 { + border-left: 0 !important; +} +.bodywebsite .border-primary { + border-color: #007bff !important; +} +.bodywebsite .border-secondary { + border-color: #868e96 !important; +} +.bodywebsite .border-success { + border-color: #28a745 !important; +} +.bodywebsite .border-info { + border-color: #17a2b8 !important; +} +.bodywebsite .border-warning { + border-color: #ffc107 !important; +} +.bodywebsite .border-danger { + border-color: #dc3545 !important; +} +.bodywebsite .border-light { + border-color: #f8f9fa !important; +} +.bodywebsite .border-dark { + border-color: #343a40 !important; +} +.bodywebsite .border-white { + border-color: #fff !important; +} +.bodywebsite .rounded { + border-radius: 0 !important; +} +.bodywebsite .rounded-top { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} +.bodywebsite .rounded-right { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} +.bodywebsite .rounded-bottom { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} +.bodywebsite .rounded-left { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} +.bodywebsite .rounded-circle { + border-radius: 50% !important; +} +.bodywebsite .rounded-0 { + border-radius: 0 !important; +} +.bodywebsite .clearfix::after { + display: block; + clear: both; + content: ""; +} +.bodywebsite .d-none { + display: none !important; +} +.bodywebsite .d-inline { + display: inline !important; +} +.bodywebsite .d-inline-block { + display: inline-block !important; +} +.bodywebsite .d-block { + display: block !important; +} +.bodywebsite .d-table { + display: table !important; +} +.bodywebsite .d-table-row { + display: table-row !important; +} +.bodywebsite .d-table-cell { + display: table-cell !important; +} +.bodywebsite .d-flex { + display: flex !important; +} +.bodywebsite .d-inline-flex { + display: inline-flex !important; +} +@media (min-width: 576px) { + .bodywebsite .d-sm-none { + display: none !important; + } + .bodywebsite .d-sm-inline { + display: inline !important; + } + .bodywebsite .d-sm-inline-block { + display: inline-block !important; + } + .bodywebsite .d-sm-block { + display: block !important; + } + .bodywebsite .d-sm-table { + display: table !important; + } + .bodywebsite .d-sm-table-row { + display: table-row !important; + } + .bodywebsite .d-sm-table-cell { + display: table-cell !important; + } + .bodywebsite .d-sm-flex { + display: flex !important; + } + .bodywebsite .d-sm-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 768px) { + .bodywebsite .d-md-none { + display: none !important; + } + .bodywebsite .d-md-inline { + display: inline !important; + } + .bodywebsite .d-md-inline-block { + display: inline-block !important; + } + .bodywebsite .d-md-block { + display: block !important; + } + .bodywebsite .d-md-table { + display: table !important; + } + .bodywebsite .d-md-table-row { + display: table-row !important; + } + .bodywebsite .d-md-table-cell { + display: table-cell !important; + } + .bodywebsite .d-md-flex { + display: flex !important; + } + .bodywebsite .d-md-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 992px) { + .bodywebsite .d-lg-none { + display: none !important; + } + .bodywebsite .d-lg-inline { + display: inline !important; + } + .bodywebsite .d-lg-inline-block { + display: inline-block !important; + } + .bodywebsite .d-lg-block { + display: block !important; + } + .bodywebsite .d-lg-table { + display: table !important; + } + .bodywebsite .d-lg-table-row { + display: table-row !important; + } + .bodywebsite .d-lg-table-cell { + display: table-cell !important; + } + .bodywebsite .d-lg-flex { + display: flex !important; + } + .bodywebsite .d-lg-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 1200px) { + .bodywebsite .d-xl-none { + display: none !important; + } + .bodywebsite .d-xl-inline { + display: inline !important; + } + .bodywebsite .d-xl-inline-block { + display: inline-block !important; + } + .bodywebsite .d-xl-block { + display: block !important; + } + .bodywebsite .d-xl-table { + display: table !important; + } + .bodywebsite .d-xl-table-row { + display: table-row !important; + } + .bodywebsite .d-xl-table-cell { + display: table-cell !important; + } + .bodywebsite .d-xl-flex { + display: flex !important; + } + .bodywebsite .d-xl-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 1800px) { + .bodywebsite .d-xxl-none { + display: none !important; + } + .bodywebsite .d-xxl-inline { + display: inline !important; + } + .bodywebsite .d-xxl-inline-block { + display: inline-block !important; + } + .bodywebsite .d-xxl-block { + display: block !important; + } + .bodywebsite .d-xxl-table { + display: table !important; + } + .bodywebsite .d-xxl-table-row { + display: table-row !important; + } + .bodywebsite .d-xxl-table-cell { + display: table-cell !important; + } + .bodywebsite .d-xxl-flex { + display: flex !important; + } + .bodywebsite .d-xxl-inline-flex { + display: inline-flex !important; + } +} +.bodywebsite .d-print-block { + display: none !important; +} +@media print { + .bodywebsite .d-print-block { + display: block !important; + } +} +.bodywebsite .d-print-inline { + display: none !important; +} +@media print { + .bodywebsite .d-print-inline { + display: inline !important; + } +} +.bodywebsite .d-print-inline-block { + display: none !important; +} +@media print { + .bodywebsite .d-print-inline-block { + display: inline-block !important; + } +} +@media print { + .bodywebsite .d-print-none { + display: none !important; + } +} +.bodywebsite .embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} +.bodywebsite .embed-responsive::before { + display: block; + content: ""; +} +.bodywebsite .embed-responsive .embed-responsive-item, +.bodywebsite .embed-responsive iframe, +.bodywebsite .embed-responsive embed, +.bodywebsite .embed-responsive object, +.bodywebsite .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.bodywebsite .embed-responsive-21by9::before { + padding-top: 42.85714%; +} +.bodywebsite .embed-responsive-16by9::before { + padding-top: 56.25%; +} +.bodywebsite .embed-responsive-4by3::before { + padding-top: 75%; +} +.bodywebsite .embed-responsive-1by1::before { + padding-top: 100%; +} +.bodywebsite .flex-row { + flex-direction: row !important; +} +.bodywebsite .flex-column { + flex-direction: column !important; +} +.bodywebsite .flex-row-reverse { + flex-direction: row-reverse !important; +} +.bodywebsite .flex-column-reverse { + flex-direction: column-reverse !important; +} +.bodywebsite .flex-wrap { + flex-wrap: wrap !important; +} +.bodywebsite .flex-nowrap { + flex-wrap: nowrap !important; +} +.bodywebsite .flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.bodywebsite .justify-content-start { + justify-content: flex-start !important; +} +.bodywebsite .justify-content-end { + justify-content: flex-end !important; +} +.bodywebsite .justify-content-center { + justify-content: center !important; +} +.bodywebsite .justify-content-between { + justify-content: space-between !important; +} +.bodywebsite .justify-content-around { + justify-content: space-around !important; +} +.bodywebsite .align-items-start { + align-items: flex-start !important; +} +.bodywebsite .align-items-end { + align-items: flex-end !important; +} +.bodywebsite .align-items-center { + align-items: center !important; +} +.bodywebsite .align-items-baseline { + align-items: baseline !important; +} +.bodywebsite .align-items-stretch { + align-items: stretch !important; +} +.bodywebsite .align-content-start { + align-content: flex-start !important; +} +.bodywebsite .align-content-end { + align-content: flex-end !important; +} +.bodywebsite .align-content-center { + align-content: center !important; +} +.bodywebsite .align-content-between { + align-content: space-between !important; +} +.bodywebsite .align-content-around { + align-content: space-around !important; +} +.bodywebsite .align-content-stretch { + align-content: stretch !important; +} +.bodywebsite .align-self-auto { + align-self: auto !important; +} +.bodywebsite .align-self-start { + align-self: flex-start !important; +} +.bodywebsite .align-self-end { + align-self: flex-end !important; +} +.bodywebsite .align-self-center { + align-self: center !important; +} +.bodywebsite .align-self-baseline { + align-self: baseline !important; +} +.bodywebsite .align-self-stretch { + align-self: stretch !important; +} +@media (min-width: 576px) { + .bodywebsite .flex-sm-row { + flex-direction: row !important; + } + .bodywebsite .flex-sm-column { + flex-direction: column !important; + } + .bodywebsite .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .bodywebsite .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .bodywebsite .flex-sm-wrap { + flex-wrap: wrap !important; + } + .bodywebsite .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .bodywebsite .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .bodywebsite .justify-content-sm-start { + justify-content: flex-start !important; + } + .bodywebsite .justify-content-sm-end { + justify-content: flex-end !important; + } + .bodywebsite .justify-content-sm-center { + justify-content: center !important; + } + .bodywebsite .justify-content-sm-between { + justify-content: space-between !important; + } + .bodywebsite .justify-content-sm-around { + justify-content: space-around !important; + } + .bodywebsite .align-items-sm-start { + align-items: flex-start !important; + } + .bodywebsite .align-items-sm-end { + align-items: flex-end !important; + } + .bodywebsite .align-items-sm-center { + align-items: center !important; + } + .bodywebsite .align-items-sm-baseline { + align-items: baseline !important; + } + .bodywebsite .align-items-sm-stretch { + align-items: stretch !important; + } + .bodywebsite .align-content-sm-start { + align-content: flex-start !important; + } + .bodywebsite .align-content-sm-end { + align-content: flex-end !important; + } + .bodywebsite .align-content-sm-center { + align-content: center !important; + } + .bodywebsite .align-content-sm-between { + align-content: space-between !important; + } + .bodywebsite .align-content-sm-around { + align-content: space-around !important; + } + .bodywebsite .align-content-sm-stretch { + align-content: stretch !important; + } + .bodywebsite .align-self-sm-auto { + align-self: auto !important; + } + .bodywebsite .align-self-sm-start { + align-self: flex-start !important; + } + .bodywebsite .align-self-sm-end { + align-self: flex-end !important; + } + .bodywebsite .align-self-sm-center { + align-self: center !important; + } + .bodywebsite .align-self-sm-baseline { + align-self: baseline !important; + } + .bodywebsite .align-self-sm-stretch { + align-self: stretch !important; + } +} +@media (min-width: 768px) { + .bodywebsite .flex-md-row { + flex-direction: row !important; + } + .bodywebsite .flex-md-column { + flex-direction: column !important; + } + .bodywebsite .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .bodywebsite .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .bodywebsite .flex-md-wrap { + flex-wrap: wrap !important; + } + .bodywebsite .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .bodywebsite .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .bodywebsite .justify-content-md-start { + justify-content: flex-start !important; + } + .bodywebsite .justify-content-md-end { + justify-content: flex-end !important; + } + .bodywebsite .justify-content-md-center { + justify-content: center !important; + } + .bodywebsite .justify-content-md-between { + justify-content: space-between !important; + } + .bodywebsite .justify-content-md-around { + justify-content: space-around !important; + } + .bodywebsite .align-items-md-start { + align-items: flex-start !important; + } + .bodywebsite .align-items-md-end { + align-items: flex-end !important; + } + .bodywebsite .align-items-md-center { + align-items: center !important; + } + .bodywebsite .align-items-md-baseline { + align-items: baseline !important; + } + .bodywebsite .align-items-md-stretch { + align-items: stretch !important; + } + .bodywebsite .align-content-md-start { + align-content: flex-start !important; + } + .bodywebsite .align-content-md-end { + align-content: flex-end !important; + } + .bodywebsite .align-content-md-center { + align-content: center !important; + } + .bodywebsite .align-content-md-between { + align-content: space-between !important; + } + .bodywebsite .align-content-md-around { + align-content: space-around !important; + } + .bodywebsite .align-content-md-stretch { + align-content: stretch !important; + } + .bodywebsite .align-self-md-auto { + align-self: auto !important; + } + .bodywebsite .align-self-md-start { + align-self: flex-start !important; + } + .bodywebsite .align-self-md-end { + align-self: flex-end !important; + } + .bodywebsite .align-self-md-center { + align-self: center !important; + } + .bodywebsite .align-self-md-baseline { + align-self: baseline !important; + } + .bodywebsite .align-self-md-stretch { + align-self: stretch !important; + } +} +@media (min-width: 992px) { + .bodywebsite .flex-lg-row { + flex-direction: row !important; + } + .bodywebsite .flex-lg-column { + flex-direction: column !important; + } + .bodywebsite .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .bodywebsite .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .bodywebsite .flex-lg-wrap { + flex-wrap: wrap !important; + } + .bodywebsite .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .bodywebsite .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .bodywebsite .justify-content-lg-start { + justify-content: flex-start !important; + } + .bodywebsite .justify-content-lg-end { + justify-content: flex-end !important; + } + .bodywebsite .justify-content-lg-center { + justify-content: center !important; + } + .bodywebsite .justify-content-lg-between { + justify-content: space-between !important; + } + .bodywebsite .justify-content-lg-around { + justify-content: space-around !important; + } + .bodywebsite .align-items-lg-start { + align-items: flex-start !important; + } + .bodywebsite .align-items-lg-end { + align-items: flex-end !important; + } + .bodywebsite .align-items-lg-center { + align-items: center !important; + } + .bodywebsite .align-items-lg-baseline { + align-items: baseline !important; + } + .bodywebsite .align-items-lg-stretch { + align-items: stretch !important; + } + .bodywebsite .align-content-lg-start { + align-content: flex-start !important; + } + .bodywebsite .align-content-lg-end { + align-content: flex-end !important; + } + .bodywebsite .align-content-lg-center { + align-content: center !important; + } + .bodywebsite .align-content-lg-between { + align-content: space-between !important; + } + .bodywebsite .align-content-lg-around { + align-content: space-around !important; + } + .bodywebsite .align-content-lg-stretch { + align-content: stretch !important; + } + .bodywebsite .align-self-lg-auto { + align-self: auto !important; + } + .bodywebsite .align-self-lg-start { + align-self: flex-start !important; + } + .bodywebsite .align-self-lg-end { + align-self: flex-end !important; + } + .bodywebsite .align-self-lg-center { + align-self: center !important; + } + .bodywebsite .align-self-lg-baseline { + align-self: baseline !important; + } + .bodywebsite .align-self-lg-stretch { + align-self: stretch !important; + } +} +@media (min-width: 1200px) { + .bodywebsite .flex-xl-row { + flex-direction: row !important; + } + .bodywebsite .flex-xl-column { + flex-direction: column !important; + } + .bodywebsite .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .bodywebsite .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .bodywebsite .flex-xl-wrap { + flex-wrap: wrap !important; + } + .bodywebsite .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .bodywebsite .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .bodywebsite .justify-content-xl-start { + justify-content: flex-start !important; + } + .bodywebsite .justify-content-xl-end { + justify-content: flex-end !important; + } + .bodywebsite .justify-content-xl-center { + justify-content: center !important; + } + .bodywebsite .justify-content-xl-between { + justify-content: space-between !important; + } + .bodywebsite .justify-content-xl-around { + justify-content: space-around !important; + } + .bodywebsite .align-items-xl-start { + align-items: flex-start !important; + } + .bodywebsite .align-items-xl-end { + align-items: flex-end !important; + } + .bodywebsite .align-items-xl-center { + align-items: center !important; + } + .bodywebsite .align-items-xl-baseline { + align-items: baseline !important; + } + .bodywebsite .align-items-xl-stretch { + align-items: stretch !important; + } + .bodywebsite .align-content-xl-start { + align-content: flex-start !important; + } + .bodywebsite .align-content-xl-end { + align-content: flex-end !important; + } + .bodywebsite .align-content-xl-center { + align-content: center !important; + } + .bodywebsite .align-content-xl-between { + align-content: space-between !important; + } + .bodywebsite .align-content-xl-around { + align-content: space-around !important; + } + .bodywebsite .align-content-xl-stretch { + align-content: stretch !important; + } + .bodywebsite .align-self-xl-auto { + align-self: auto !important; + } + .bodywebsite .align-self-xl-start { + align-self: flex-start !important; + } + .bodywebsite .align-self-xl-end { + align-self: flex-end !important; + } + .bodywebsite .align-self-xl-center { + align-self: center !important; + } + .bodywebsite .align-self-xl-baseline { + align-self: baseline !important; + } + .bodywebsite .align-self-xl-stretch { + align-self: stretch !important; + } +} +@media (min-width: 1800px) { + .bodywebsite .flex-xxl-row { + flex-direction: row !important; + } + .bodywebsite .flex-xxl-column { + flex-direction: column !important; + } + .bodywebsite .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .bodywebsite .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .bodywebsite .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .bodywebsite .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .bodywebsite .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .bodywebsite .justify-content-xxl-start { + justify-content: flex-start !important; + } + .bodywebsite .justify-content-xxl-end { + justify-content: flex-end !important; + } + .bodywebsite .justify-content-xxl-center { + justify-content: center !important; + } + .bodywebsite .justify-content-xxl-between { + justify-content: space-between !important; + } + .bodywebsite .justify-content-xxl-around { + justify-content: space-around !important; + } + .bodywebsite .align-items-xxl-start { + align-items: flex-start !important; + } + .bodywebsite .align-items-xxl-end { + align-items: flex-end !important; + } + .bodywebsite .align-items-xxl-center { + align-items: center !important; + } + .bodywebsite .align-items-xxl-baseline { + align-items: baseline !important; + } + .bodywebsite .align-items-xxl-stretch { + align-items: stretch !important; + } + .bodywebsite .align-content-xxl-start { + align-content: flex-start !important; + } + .bodywebsite .align-content-xxl-end { + align-content: flex-end !important; + } + .bodywebsite .align-content-xxl-center { + align-content: center !important; + } + .bodywebsite .align-content-xxl-between { + align-content: space-between !important; + } + .bodywebsite .align-content-xxl-around { + align-content: space-around !important; + } + .bodywebsite .align-content-xxl-stretch { + align-content: stretch !important; + } + .bodywebsite .align-self-xxl-auto { + align-self: auto !important; + } + .bodywebsite .align-self-xxl-start { + align-self: flex-start !important; + } + .bodywebsite .align-self-xxl-end { + align-self: flex-end !important; + } + .bodywebsite .align-self-xxl-center { + align-self: center !important; + } + .bodywebsite .align-self-xxl-baseline { + align-self: baseline !important; + } + .bodywebsite .align-self-xxl-stretch { + align-self: stretch !important; + } +} +.bodywebsite .float-left { + float: left !important; +} +.bodywebsite .float-right { + float: right !important; +} +.bodywebsite .float-none { + float: none !important; +} +@media (min-width: 576px) { + .bodywebsite .float-sm-left { + float: left !important; + } + .bodywebsite .float-sm-right { + float: right !important; + } + .bodywebsite .float-sm-none { + float: none !important; + } +} +@media (min-width: 768px) { + .bodywebsite .float-md-left { + float: left !important; + } + .bodywebsite .float-md-right { + float: right !important; + } + .bodywebsite .float-md-none { + float: none !important; + } +} +@media (min-width: 992px) { + .bodywebsite .float-lg-left { + float: left !important; + } + .bodywebsite .float-lg-right { + float: right !important; + } + .bodywebsite .float-lg-none { + float: none !important; + } +} +@media (min-width: 1200px) { + .bodywebsite .float-xl-left { + float: left !important; + } + .bodywebsite .float-xl-right { + float: right !important; + } + .bodywebsite .float-xl-none { + float: none !important; + } +} +@media (min-width: 1800px) { + .bodywebsite .float-xxl-left { + float: left !important; + } + .bodywebsite .float-xxl-right { + float: right !important; + } + .bodywebsite .float-xxl-none { + float: none !important; + } +} +.bodywebsite .position-static { + position: static !important; +} +.bodywebsite .position-relative { + position: relative !important; +} +.bodywebsite .position-absolute { + position: absolute !important; +} +.bodywebsite .position-fixed { + position: fixed !important; +} +.bodywebsite .position-sticky { + position: sticky !important; +} +.bodywebsite .dolsticky { + position: sticky; + top: 0; + z-index: 100; +} +.bodywebsite .fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.bodywebsite .fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} +@supports (position: sticky) { + .bodywebsite .sticky-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +.bodywebsite .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; +} +.bodywebsite .sr-only-focusable:active, +.bodywebsite .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; + clip-path: none; +} +.bodywebsite .w-25 { + width: 25% !important; +} +.bodywebsite .w-50 { + width: 50% !important; +} +.bodywebsite .w-75 { + width: 75% !important; +} +.bodywebsite .w-100 { + width: 100% !important; +} +.bodywebsite .h-25 { + height: 25% !important; +} +.bodywebsite .h-50 { + height: 50% !important; +} +.bodywebsite .h-75 { + height: 75% !important; +} +.bodywebsite .h-100 { + height: 100% !important; +} +.bodywebsite .mw-100 { + max-width: 100% !important; +} +.bodywebsite .mh-100 { + max-height: 100% !important; +} +.bodywebsite .m-0 { + margin: 0 !important; +} +.bodywebsite .mt-0, +.bodywebsite .my-0 { + margin-top: 0 !important; +} +.bodywebsite .mr-0, +.bodywebsite .mx-0 { + margin-right: 0 !important; +} +.bodywebsite .mb-0, +.bodywebsite .my-0 { + margin-bottom: 0 !important; +} +.bodywebsite .ml-0, +.bodywebsite .mx-0 { + margin-left: 0 !important; +} +.bodywebsite .m-1 { + margin: 0.25rem !important; +} +.bodywebsite .mt-1, +.bodywebsite .my-1 { + margin-top: 0.25rem !important; +} +.bodywebsite .mr-1, +.bodywebsite .mx-1 { + margin-right: 0.25rem !important; +} +.bodywebsite .mb-1, +.bodywebsite .my-1 { + margin-bottom: 0.25rem !important; +} +.bodywebsite .ml-1, +.bodywebsite .mx-1 { + margin-left: 0.25rem !important; +} +.bodywebsite .m-2 { + margin: 0.5rem !important; +} +.bodywebsite .mt-2, +.bodywebsite .my-2 { + margin-top: 0.5rem !important; +} +.bodywebsite .mr-2, +.bodywebsite .mx-2 { + margin-right: 0.5rem !important; +} +.bodywebsite .mb-2, +.bodywebsite .my-2 { + margin-bottom: 0.5rem !important; +} +.bodywebsite .ml-2, +.bodywebsite .mx-2 { + margin-left: 0.5rem !important; +} +.bodywebsite .m-3 { + margin: 1rem !important; +} +.bodywebsite .mt-3, +.bodywebsite .my-3 { + margin-top: 1rem !important; +} +.bodywebsite .mr-3, +.bodywebsite .mx-3 { + margin-right: 1rem !important; +} +.bodywebsite .mb-3, +.bodywebsite .my-3 { + margin-bottom: 1rem !important; +} +.bodywebsite .ml-3, +.bodywebsite .mx-3 { + margin-left: 1rem !important; +} +.bodywebsite .m-4 { + margin: 1.5rem !important; +} +.bodywebsite .mt-4, +.bodywebsite .my-4 { + margin-top: 1.5rem !important; +} +.bodywebsite .mr-4, +.bodywebsite .mx-4 { + margin-right: 1.5rem !important; +} +.bodywebsite .mb-4, +.bodywebsite .my-4 { + margin-bottom: 1.5rem !important; +} +.bodywebsite .ml-4, +.bodywebsite .mx-4 { + margin-left: 1.5rem !important; +} +.bodywebsite .m-5 { + margin: 3rem !important; +} +.bodywebsite .mt-5, +.bodywebsite .my-5 { + margin-top: 3rem !important; +} +.bodywebsite .mr-5, +.bodywebsite .mx-5 { + margin-right: 3rem !important; +} +.bodywebsite .mb-5, +.bodywebsite .my-5 { + margin-bottom: 3rem !important; +} +.bodywebsite .ml-5, +.bodywebsite .mx-5 { + margin-left: 3rem !important; +} +.bodywebsite .p-0 { + padding: 0 !important; +} +.bodywebsite .pt-0, +.bodywebsite .py-0 { + padding-top: 0 !important; +} +.bodywebsite .pr-0, +.bodywebsite .px-0 { + padding-right: 0 !important; +} +.bodywebsite .pb-0, +.bodywebsite .py-0 { + padding-bottom: 0 !important; +} +.bodywebsite .pl-0, +.bodywebsite .px-0 { + padding-left: 0 !important; +} +.bodywebsite .p-1 { + padding: 0.25rem !important; +} +.bodywebsite .pt-1, +.bodywebsite .py-1 { + padding-top: 0.25rem !important; +} +.bodywebsite .pr-1, +.bodywebsite .px-1 { + padding-right: 0.25rem !important; +} +.bodywebsite .pb-1, +.bodywebsite .py-1 { + padding-bottom: 0.25rem !important; +} +.bodywebsite .pl-1, +.bodywebsite .px-1 { + padding-left: 0.25rem !important; +} +.bodywebsite .p-2 { + padding: 0.5rem !important; +} +.bodywebsite .pt-2, +.bodywebsite .py-2 { + padding-top: 0.5rem !important; +} +.bodywebsite .pr-2, +.bodywebsite .px-2 { + padding-right: 0.5rem !important; +} +.bodywebsite .pb-2, +.bodywebsite .py-2 { + padding-bottom: 0.5rem !important; +} +.bodywebsite .pl-2, +.bodywebsite .px-2 { + padding-left: 0.5rem !important; +} +.bodywebsite .p-3 { + padding: 1rem !important; +} +.bodywebsite .pt-3, +.bodywebsite .py-3 { + padding-top: 1rem !important; +} +.bodywebsite .pr-3, +.bodywebsite .px-3 { + padding-right: 1rem !important; +} +.bodywebsite .pb-3, +.bodywebsite .py-3 { + padding-bottom: 1rem !important; +} +.bodywebsite .pl-3, +.bodywebsite .px-3 { + padding-left: 1rem !important; +} +.bodywebsite .p-4 { + padding: 1.5rem !important; +} +.bodywebsite .pt-4, +.bodywebsite .py-4 { + padding-top: 1.5rem !important; +} +.bodywebsite .pr-4, +.bodywebsite .px-4 { + padding-right: 1.5rem !important; +} +.bodywebsite .pb-4, +.bodywebsite .py-4 { + padding-bottom: 1.5rem !important; +} +.bodywebsite .pl-4, +.bodywebsite .px-4 { + padding-left: 1.5rem !important; +} +.bodywebsite .p-5 { + padding: 3rem !important; +} +.bodywebsite .pt-5, +.bodywebsite .py-5 { + padding-top: 3rem !important; +} +.bodywebsite .pr-5, +.bodywebsite .px-5 { + padding-right: 3rem !important; +} +.bodywebsite .pb-5, +.bodywebsite .py-5 { + padding-bottom: 3rem !important; +} +.bodywebsite .pl-5, +.bodywebsite .px-5 { + padding-left: 3rem !important; +} +.bodywebsite .m-auto { + margin: auto !important; +} +.bodywebsite .mt-auto, +.bodywebsite .my-auto { + margin-top: auto !important; +} +.bodywebsite .mr-auto, +.bodywebsite .mx-auto { + margin-right: auto !important; +} +.bodywebsite .mb-auto, +.bodywebsite .my-auto { + margin-bottom: auto !important; +} +.bodywebsite .ml-auto, +.bodywebsite .mx-auto { + margin-left: auto !important; +} +@media (min-width: 576px) { + .bodywebsite .m-sm-0 { + margin: 0 !important; + } + .bodywebsite .mt-sm-0, + .bodywebsite .my-sm-0 { + margin-top: 0 !important; + } + .bodywebsite .mr-sm-0, + .bodywebsite .mx-sm-0 { + margin-right: 0 !important; + } + .bodywebsite .mb-sm-0, + .bodywebsite .my-sm-0 { + margin-bottom: 0 !important; + } + .bodywebsite .ml-sm-0, + .bodywebsite .mx-sm-0 { + margin-left: 0 !important; + } + .bodywebsite .m-sm-1 { + margin: 0.25rem !important; + } + .bodywebsite .mt-sm-1, + .bodywebsite .my-sm-1 { + margin-top: 0.25rem !important; + } + .bodywebsite .mr-sm-1, + .bodywebsite .mx-sm-1 { + margin-right: 0.25rem !important; + } + .bodywebsite .mb-sm-1, + .bodywebsite .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .bodywebsite .ml-sm-1, + .bodywebsite .mx-sm-1 { + margin-left: 0.25rem !important; + } + .bodywebsite .m-sm-2 { + margin: 0.5rem !important; + } + .bodywebsite .mt-sm-2, + .bodywebsite .my-sm-2 { + margin-top: 0.5rem !important; + } + .bodywebsite .mr-sm-2, + .bodywebsite .mx-sm-2 { + margin-right: 0.5rem !important; + } + .bodywebsite .mb-sm-2, + .bodywebsite .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .bodywebsite .ml-sm-2, + .bodywebsite .mx-sm-2 { + margin-left: 0.5rem !important; + } + .bodywebsite .m-sm-3 { + margin: 1rem !important; + } + .bodywebsite .mt-sm-3, + .bodywebsite .my-sm-3 { + margin-top: 1rem !important; + } + .bodywebsite .mr-sm-3, + .bodywebsite .mx-sm-3 { + margin-right: 1rem !important; + } + .bodywebsite .mb-sm-3, + .bodywebsite .my-sm-3 { + margin-bottom: 1rem !important; + } + .bodywebsite .ml-sm-3, + .bodywebsite .mx-sm-3 { + margin-left: 1rem !important; + } + .bodywebsite .m-sm-4 { + margin: 1.5rem !important; + } + .bodywebsite .mt-sm-4, + .bodywebsite .my-sm-4 { + margin-top: 1.5rem !important; + } + .bodywebsite .mr-sm-4, + .bodywebsite .mx-sm-4 { + margin-right: 1.5rem !important; + } + .bodywebsite .mb-sm-4, + .bodywebsite .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .bodywebsite .ml-sm-4, + .bodywebsite .mx-sm-4 { + margin-left: 1.5rem !important; + } + .bodywebsite .m-sm-5 { + margin: 3rem !important; + } + .bodywebsite .mt-sm-5, + .bodywebsite .my-sm-5 { + margin-top: 3rem !important; + } + .bodywebsite .mr-sm-5, + .bodywebsite .mx-sm-5 { + margin-right: 3rem !important; + } + .bodywebsite .mb-sm-5, + .bodywebsite .my-sm-5 { + margin-bottom: 3rem !important; + } + .bodywebsite .ml-sm-5, + .bodywebsite .mx-sm-5 { + margin-left: 3rem !important; + } + .bodywebsite .p-sm-0 { + padding: 0 !important; + } + .bodywebsite .pt-sm-0, + .bodywebsite .py-sm-0 { + padding-top: 0 !important; + } + .bodywebsite .pr-sm-0, + .bodywebsite .px-sm-0 { + padding-right: 0 !important; + } + .bodywebsite .pb-sm-0, + .bodywebsite .py-sm-0 { + padding-bottom: 0 !important; + } + .bodywebsite .pl-sm-0, + .bodywebsite .px-sm-0 { + padding-left: 0 !important; + } + .bodywebsite .p-sm-1 { + padding: 0.25rem !important; + } + .bodywebsite .pt-sm-1, + .bodywebsite .py-sm-1 { + padding-top: 0.25rem !important; + } + .bodywebsite .pr-sm-1, + .bodywebsite .px-sm-1 { + padding-right: 0.25rem !important; + } + .bodywebsite .pb-sm-1, + .bodywebsite .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .bodywebsite .pl-sm-1, + .bodywebsite .px-sm-1 { + padding-left: 0.25rem !important; + } + .bodywebsite .p-sm-2 { + padding: 0.5rem !important; + } + .bodywebsite .pt-sm-2, + .bodywebsite .py-sm-2 { + padding-top: 0.5rem !important; + } + .bodywebsite .pr-sm-2, + .bodywebsite .px-sm-2 { + padding-right: 0.5rem !important; + } + .bodywebsite .pb-sm-2, + .bodywebsite .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .bodywebsite .pl-sm-2, + .bodywebsite .px-sm-2 { + padding-left: 0.5rem !important; + } + .bodywebsite .p-sm-3 { + padding: 1rem !important; + } + .bodywebsite .pt-sm-3, + .bodywebsite .py-sm-3 { + padding-top: 1rem !important; + } + .bodywebsite .pr-sm-3, + .bodywebsite .px-sm-3 { + padding-right: 1rem !important; + } + .bodywebsite .pb-sm-3, + .bodywebsite .py-sm-3 { + padding-bottom: 1rem !important; + } + .bodywebsite .pl-sm-3, + .bodywebsite .px-sm-3 { + padding-left: 1rem !important; + } + .bodywebsite .p-sm-4 { + padding: 1.5rem !important; + } + .bodywebsite .pt-sm-4, + .bodywebsite .py-sm-4 { + padding-top: 1.5rem !important; + } + .bodywebsite .pr-sm-4, + .bodywebsite .px-sm-4 { + padding-right: 1.5rem !important; + } + .bodywebsite .pb-sm-4, + .bodywebsite .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .bodywebsite .pl-sm-4, + .bodywebsite .px-sm-4 { + padding-left: 1.5rem !important; + } + .bodywebsite .p-sm-5 { + padding: 3rem !important; + } + .bodywebsite .pt-sm-5, + .bodywebsite .py-sm-5 { + padding-top: 3rem !important; + } + .bodywebsite .pr-sm-5, + .bodywebsite .px-sm-5 { + padding-right: 3rem !important; + } + .bodywebsite .pb-sm-5, + .bodywebsite .py-sm-5 { + padding-bottom: 3rem !important; + } + .bodywebsite .pl-sm-5, + .bodywebsite .px-sm-5 { + padding-left: 3rem !important; + } + .bodywebsite .m-sm-auto { + margin: auto !important; + } + .bodywebsite .mt-sm-auto, + .bodywebsite .my-sm-auto { + margin-top: auto !important; + } + .bodywebsite .mr-sm-auto, + .bodywebsite .mx-sm-auto { + margin-right: auto !important; + } + .bodywebsite .mb-sm-auto, + .bodywebsite .my-sm-auto { + margin-bottom: auto !important; + } + .bodywebsite .ml-sm-auto, + .bodywebsite .mx-sm-auto { + margin-left: auto !important; + } +} +@media (min-width: 768px) { + .bodywebsite .m-md-0 { + margin: 0 !important; + } + .bodywebsite .mt-md-0, + .bodywebsite .my-md-0 { + margin-top: 0 !important; + } + .bodywebsite .mr-md-0, + .bodywebsite .mx-md-0 { + margin-right: 0 !important; + } + .bodywebsite .mb-md-0, + .bodywebsite .my-md-0 { + margin-bottom: 0 !important; + } + .bodywebsite .ml-md-0, + .bodywebsite .mx-md-0 { + margin-left: 0 !important; + } + .bodywebsite .m-md-1 { + margin: 0.25rem !important; + } + .bodywebsite .mt-md-1, + .bodywebsite .my-md-1 { + margin-top: 0.25rem !important; + } + .bodywebsite .mr-md-1, + .bodywebsite .mx-md-1 { + margin-right: 0.25rem !important; + } + .bodywebsite .mb-md-1, + .bodywebsite .my-md-1 { + margin-bottom: 0.25rem !important; + } + .bodywebsite .ml-md-1, + .bodywebsite .mx-md-1 { + margin-left: 0.25rem !important; + } + .bodywebsite .m-md-2 { + margin: 0.5rem !important; + } + .bodywebsite .mt-md-2, + .bodywebsite .my-md-2 { + margin-top: 0.5rem !important; + } + .bodywebsite .mr-md-2, + .bodywebsite .mx-md-2 { + margin-right: 0.5rem !important; + } + .bodywebsite .mb-md-2, + .bodywebsite .my-md-2 { + margin-bottom: 0.5rem !important; + } + .bodywebsite .ml-md-2, + .bodywebsite .mx-md-2 { + margin-left: 0.5rem !important; + } + .bodywebsite .m-md-3 { + margin: 1rem !important; + } + .bodywebsite .mt-md-3, + .bodywebsite .my-md-3 { + margin-top: 1rem !important; + } + .bodywebsite .mr-md-3, + .bodywebsite .mx-md-3 { + margin-right: 1rem !important; + } + .bodywebsite .mb-md-3, + .bodywebsite .my-md-3 { + margin-bottom: 1rem !important; + } + .bodywebsite .ml-md-3, + .bodywebsite .mx-md-3 { + margin-left: 1rem !important; + } + .bodywebsite .m-md-4 { + margin: 1.5rem !important; + } + .bodywebsite .mt-md-4, + .bodywebsite .my-md-4 { + margin-top: 1.5rem !important; + } + .bodywebsite .mr-md-4, + .bodywebsite .mx-md-4 { + margin-right: 1.5rem !important; + } + .bodywebsite .mb-md-4, + .bodywebsite .my-md-4 { + margin-bottom: 1.5rem !important; + } + .bodywebsite .ml-md-4, + .bodywebsite .mx-md-4 { + margin-left: 1.5rem !important; + } + .bodywebsite .m-md-5 { + margin: 3rem !important; + } + .bodywebsite .mt-md-5, + .bodywebsite .my-md-5 { + margin-top: 3rem !important; + } + .bodywebsite .mr-md-5, + .bodywebsite .mx-md-5 { + margin-right: 3rem !important; + } + .bodywebsite .mb-md-5, + .bodywebsite .my-md-5 { + margin-bottom: 3rem !important; + } + .bodywebsite .ml-md-5, + .bodywebsite .mx-md-5 { + margin-left: 3rem !important; + } + .bodywebsite .p-md-0 { + padding: 0 !important; + } + .bodywebsite .pt-md-0, + .bodywebsite .py-md-0 { + padding-top: 0 !important; + } + .bodywebsite .pr-md-0, + .bodywebsite .px-md-0 { + padding-right: 0 !important; + } + .bodywebsite .pb-md-0, + .bodywebsite .py-md-0 { + padding-bottom: 0 !important; + } + .bodywebsite .pl-md-0, + .bodywebsite .px-md-0 { + padding-left: 0 !important; + } + .bodywebsite .p-md-1 { + padding: 0.25rem !important; + } + .bodywebsite .pt-md-1, + .bodywebsite .py-md-1 { + padding-top: 0.25rem !important; + } + .bodywebsite .pr-md-1, + .bodywebsite .px-md-1 { + padding-right: 0.25rem !important; + } + .bodywebsite .pb-md-1, + .bodywebsite .py-md-1 { + padding-bottom: 0.25rem !important; + } + .bodywebsite .pl-md-1, + .bodywebsite .px-md-1 { + padding-left: 0.25rem !important; + } + .bodywebsite .p-md-2 { + padding: 0.5rem !important; + } + .bodywebsite .pt-md-2, + .bodywebsite .py-md-2 { + padding-top: 0.5rem !important; + } + .bodywebsite .pr-md-2, + .bodywebsite .px-md-2 { + padding-right: 0.5rem !important; + } + .bodywebsite .pb-md-2, + .bodywebsite .py-md-2 { + padding-bottom: 0.5rem !important; + } + .bodywebsite .pl-md-2, + .bodywebsite .px-md-2 { + padding-left: 0.5rem !important; + } + .bodywebsite .p-md-3 { + padding: 1rem !important; + } + .bodywebsite .pt-md-3, + .bodywebsite .py-md-3 { + padding-top: 1rem !important; + } + .bodywebsite .pr-md-3, + .bodywebsite .px-md-3 { + padding-right: 1rem !important; + } + .bodywebsite .pb-md-3, + .bodywebsite .py-md-3 { + padding-bottom: 1rem !important; + } + .bodywebsite .pl-md-3, + .bodywebsite .px-md-3 { + padding-left: 1rem !important; + } + .bodywebsite .p-md-4 { + padding: 1.5rem !important; + } + .bodywebsite .pt-md-4, + .bodywebsite .py-md-4 { + padding-top: 1.5rem !important; + } + .bodywebsite .pr-md-4, + .bodywebsite .px-md-4 { + padding-right: 1.5rem !important; + } + .bodywebsite .pb-md-4, + .bodywebsite .py-md-4 { + padding-bottom: 1.5rem !important; + } + .bodywebsite .pl-md-4, + .bodywebsite .px-md-4 { + padding-left: 1.5rem !important; + } + .bodywebsite .p-md-5 { + padding: 3rem !important; + } + .bodywebsite .pt-md-5, + .bodywebsite .py-md-5 { + padding-top: 3rem !important; + } + .bodywebsite .pr-md-5, + .bodywebsite .px-md-5 { + padding-right: 3rem !important; + } + .bodywebsite .pb-md-5, + .bodywebsite .py-md-5 { + padding-bottom: 3rem !important; + } + .bodywebsite .pl-md-5, + .bodywebsite .px-md-5 { + padding-left: 3rem !important; + } + .bodywebsite .m-md-auto { + margin: auto !important; + } + .bodywebsite .mt-md-auto, + .bodywebsite .my-md-auto { + margin-top: auto !important; + } + .bodywebsite .mr-md-auto, + .bodywebsite .mx-md-auto { + margin-right: auto !important; + } + .bodywebsite .mb-md-auto, + .bodywebsite .my-md-auto { + margin-bottom: auto !important; + } + .bodywebsite .ml-md-auto, + .bodywebsite .mx-md-auto { + margin-left: auto !important; + } +} +@media (min-width: 992px) { + .bodywebsite .m-lg-0 { + margin: 0 !important; + } + .bodywebsite .mt-lg-0, + .bodywebsite .my-lg-0 { + margin-top: 0 !important; + } + .bodywebsite .mr-lg-0, + .bodywebsite .mx-lg-0 { + margin-right: 0 !important; + } + .bodywebsite .mb-lg-0, + .bodywebsite .my-lg-0 { + margin-bottom: 0 !important; + } + .bodywebsite .ml-lg-0, + .bodywebsite .mx-lg-0 { + margin-left: 0 !important; + } + .bodywebsite .m-lg-1 { + margin: 0.25rem !important; + } + .bodywebsite .mt-lg-1, + .bodywebsite .my-lg-1 { + margin-top: 0.25rem !important; + } + .bodywebsite .mr-lg-1, + .bodywebsite .mx-lg-1 { + margin-right: 0.25rem !important; + } + .bodywebsite .mb-lg-1, + .bodywebsite .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .bodywebsite .ml-lg-1, + .bodywebsite .mx-lg-1 { + margin-left: 0.25rem !important; + } + .bodywebsite .m-lg-2 { + margin: 0.5rem !important; + } + .bodywebsite .mt-lg-2, + .bodywebsite .my-lg-2 { + margin-top: 0.5rem !important; + } + .bodywebsite .mr-lg-2, + .bodywebsite .mx-lg-2 { + margin-right: 0.5rem !important; + } + .bodywebsite .mb-lg-2, + .bodywebsite .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .bodywebsite .ml-lg-2, + .bodywebsite .mx-lg-2 { + margin-left: 0.5rem !important; + } + .bodywebsite .m-lg-3 { + margin: 1rem !important; + } + .bodywebsite .mt-lg-3, + .bodywebsite .my-lg-3 { + margin-top: 1rem !important; + } + .bodywebsite .mr-lg-3, + .bodywebsite .mx-lg-3 { + margin-right: 1rem !important; + } + .bodywebsite .mb-lg-3, + .bodywebsite .my-lg-3 { + margin-bottom: 1rem !important; + } + .bodywebsite .ml-lg-3, + .bodywebsite .mx-lg-3 { + margin-left: 1rem !important; + } + .bodywebsite .m-lg-4 { + margin: 1.5rem !important; + } + .bodywebsite .mt-lg-4, + .bodywebsite .my-lg-4 { + margin-top: 1.5rem !important; + } + .bodywebsite .mr-lg-4, + .bodywebsite .mx-lg-4 { + margin-right: 1.5rem !important; + } + .bodywebsite .mb-lg-4, + .bodywebsite .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .bodywebsite .ml-lg-4, + .bodywebsite .mx-lg-4 { + margin-left: 1.5rem !important; + } + .bodywebsite .m-lg-5 { + margin: 3rem !important; + } + .bodywebsite .mt-lg-5, + .bodywebsite .my-lg-5 { + margin-top: 3rem !important; + } + .bodywebsite .mr-lg-5, + .bodywebsite .mx-lg-5 { + margin-right: 3rem !important; + } + .bodywebsite .mb-lg-5, + .bodywebsite .my-lg-5 { + margin-bottom: 3rem !important; + } + .bodywebsite .ml-lg-5, + .bodywebsite .mx-lg-5 { + margin-left: 3rem !important; + } + .bodywebsite .p-lg-0 { + padding: 0 !important; + } + .bodywebsite .pt-lg-0, + .bodywebsite .py-lg-0 { + padding-top: 0 !important; + } + .bodywebsite .pr-lg-0, + .bodywebsite .px-lg-0 { + padding-right: 0 !important; + } + .bodywebsite .pb-lg-0, + .bodywebsite .py-lg-0 { + padding-bottom: 0 !important; + } + .bodywebsite .pl-lg-0, + .bodywebsite .px-lg-0 { + padding-left: 0 !important; + } + .bodywebsite .p-lg-1 { + padding: 0.25rem !important; + } + .bodywebsite .pt-lg-1, + .bodywebsite .py-lg-1 { + padding-top: 0.25rem !important; + } + .bodywebsite .pr-lg-1, + .bodywebsite .px-lg-1 { + padding-right: 0.25rem !important; + } + .bodywebsite .pb-lg-1, + .bodywebsite .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .bodywebsite .pl-lg-1, + .bodywebsite .px-lg-1 { + padding-left: 0.25rem !important; + } + .bodywebsite .p-lg-2 { + padding: 0.5rem !important; + } + .bodywebsite .pt-lg-2, + .bodywebsite .py-lg-2 { + padding-top: 0.5rem !important; + } + .bodywebsite .pr-lg-2, + .bodywebsite .px-lg-2 { + padding-right: 0.5rem !important; + } + .bodywebsite .pb-lg-2, + .bodywebsite .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .bodywebsite .pl-lg-2, + .bodywebsite .px-lg-2 { + padding-left: 0.5rem !important; + } + .bodywebsite .p-lg-3 { + padding: 1rem !important; + } + .bodywebsite .pt-lg-3, + .bodywebsite .py-lg-3 { + padding-top: 1rem !important; + } + .bodywebsite .pr-lg-3, + .bodywebsite .px-lg-3 { + padding-right: 1rem !important; + } + .bodywebsite .pb-lg-3, + .bodywebsite .py-lg-3 { + padding-bottom: 1rem !important; + } + .bodywebsite .pl-lg-3, + .bodywebsite .px-lg-3 { + padding-left: 1rem !important; + } + .bodywebsite .p-lg-4 { + padding: 1.5rem !important; + } + .bodywebsite .pt-lg-4, + .bodywebsite .py-lg-4 { + padding-top: 1.5rem !important; + } + .bodywebsite .pr-lg-4, + .bodywebsite .px-lg-4 { + padding-right: 1.5rem !important; + } + .bodywebsite .pb-lg-4, + .bodywebsite .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .bodywebsite .pl-lg-4, + .bodywebsite .px-lg-4 { + padding-left: 1.5rem !important; + } + .bodywebsite .p-lg-5 { + padding: 3rem !important; + } + .bodywebsite .pt-lg-5, + .bodywebsite .py-lg-5 { + padding-top: 3rem !important; + } + .bodywebsite .pr-lg-5, + .bodywebsite .px-lg-5 { + padding-right: 3rem !important; + } + .bodywebsite .pb-lg-5, + .bodywebsite .py-lg-5 { + padding-bottom: 3rem !important; + } + .bodywebsite .pl-lg-5, + .bodywebsite .px-lg-5 { + padding-left: 3rem !important; + } + .bodywebsite .m-lg-auto { + margin: auto !important; + } + .bodywebsite .mt-lg-auto, + .bodywebsite .my-lg-auto { + margin-top: auto !important; + } + .bodywebsite .mr-lg-auto, + .bodywebsite .mx-lg-auto { + margin-right: auto !important; + } + .bodywebsite .mb-lg-auto, + .bodywebsite .my-lg-auto { + margin-bottom: auto !important; + } + .bodywebsite .ml-lg-auto, + .bodywebsite .mx-lg-auto { + margin-left: auto !important; + } +} +@media (min-width: 1200px) { + .bodywebsite .m-xl-0 { + margin: 0 !important; + } + .bodywebsite .mt-xl-0, + .bodywebsite .my-xl-0 { + margin-top: 0 !important; + } + .bodywebsite .mr-xl-0, + .bodywebsite .mx-xl-0 { + margin-right: 0 !important; + } + .bodywebsite .mb-xl-0, + .bodywebsite .my-xl-0 { + margin-bottom: 0 !important; + } + .bodywebsite .ml-xl-0, + .bodywebsite .mx-xl-0 { + margin-left: 0 !important; + } + .bodywebsite .m-xl-1 { + margin: 0.25rem !important; + } + .bodywebsite .mt-xl-1, + .bodywebsite .my-xl-1 { + margin-top: 0.25rem !important; + } + .bodywebsite .mr-xl-1, + .bodywebsite .mx-xl-1 { + margin-right: 0.25rem !important; + } + .bodywebsite .mb-xl-1, + .bodywebsite .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .bodywebsite .ml-xl-1, + .bodywebsite .mx-xl-1 { + margin-left: 0.25rem !important; + } + .bodywebsite .m-xl-2 { + margin: 0.5rem !important; + } + .bodywebsite .mt-xl-2, + .bodywebsite .my-xl-2 { + margin-top: 0.5rem !important; + } + .bodywebsite .mr-xl-2, + .bodywebsite .mx-xl-2 { + margin-right: 0.5rem !important; + } + .bodywebsite .mb-xl-2, + .bodywebsite .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .bodywebsite .ml-xl-2, + .bodywebsite .mx-xl-2 { + margin-left: 0.5rem !important; + } + .bodywebsite .m-xl-3 { + margin: 1rem !important; + } + .bodywebsite .mt-xl-3, + .bodywebsite .my-xl-3 { + margin-top: 1rem !important; + } + .bodywebsite .mr-xl-3, + .bodywebsite .mx-xl-3 { + margin-right: 1rem !important; + } + .bodywebsite .mb-xl-3, + .bodywebsite .my-xl-3 { + margin-bottom: 1rem !important; + } + .bodywebsite .ml-xl-3, + .bodywebsite .mx-xl-3 { + margin-left: 1rem !important; + } + .bodywebsite .m-xl-4 { + margin: 1.5rem !important; + } + .bodywebsite .mt-xl-4, + .bodywebsite .my-xl-4 { + margin-top: 1.5rem !important; + } + .bodywebsite .mr-xl-4, + .bodywebsite .mx-xl-4 { + margin-right: 1.5rem !important; + } + .bodywebsite .mb-xl-4, + .bodywebsite .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .bodywebsite .ml-xl-4, + .bodywebsite .mx-xl-4 { + margin-left: 1.5rem !important; + } + .bodywebsite .m-xl-5 { + margin: 3rem !important; + } + .bodywebsite .mt-xl-5, + .bodywebsite .my-xl-5 { + margin-top: 3rem !important; + } + .bodywebsite .mr-xl-5, + .bodywebsite .mx-xl-5 { + margin-right: 3rem !important; + } + .bodywebsite .mb-xl-5, + .bodywebsite .my-xl-5 { + margin-bottom: 3rem !important; + } + .bodywebsite .ml-xl-5, + .bodywebsite .mx-xl-5 { + margin-left: 3rem !important; + } + .bodywebsite .p-xl-0 { + padding: 0 !important; + } + .bodywebsite .pt-xl-0, + .bodywebsite .py-xl-0 { + padding-top: 0 !important; + } + .bodywebsite .pr-xl-0, + .bodywebsite .px-xl-0 { + padding-right: 0 !important; + } + .bodywebsite .pb-xl-0, + .bodywebsite .py-xl-0 { + padding-bottom: 0 !important; + } + .bodywebsite .pl-xl-0, + .bodywebsite .px-xl-0 { + padding-left: 0 !important; + } + .bodywebsite .p-xl-1 { + padding: 0.25rem !important; + } + .bodywebsite .pt-xl-1, + .bodywebsite .py-xl-1 { + padding-top: 0.25rem !important; + } + .bodywebsite .pr-xl-1, + .bodywebsite .px-xl-1 { + padding-right: 0.25rem !important; + } + .bodywebsite .pb-xl-1, + .bodywebsite .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .bodywebsite .pl-xl-1, + .bodywebsite .px-xl-1 { + padding-left: 0.25rem !important; + } + .bodywebsite .p-xl-2 { + padding: 0.5rem !important; + } + .bodywebsite .pt-xl-2, + .bodywebsite .py-xl-2 { + padding-top: 0.5rem !important; + } + .bodywebsite .pr-xl-2, + .bodywebsite .px-xl-2 { + padding-right: 0.5rem !important; + } + .bodywebsite .pb-xl-2, + .bodywebsite .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .bodywebsite .pl-xl-2, + .bodywebsite .px-xl-2 { + padding-left: 0.5rem !important; + } + .bodywebsite .p-xl-3 { + padding: 1rem !important; + } + .bodywebsite .pt-xl-3, + .bodywebsite .py-xl-3 { + padding-top: 1rem !important; + } + .bodywebsite .pr-xl-3, + .bodywebsite .px-xl-3 { + padding-right: 1rem !important; + } + .bodywebsite .pb-xl-3, + .bodywebsite .py-xl-3 { + padding-bottom: 1rem !important; + } + .bodywebsite .pl-xl-3, + .bodywebsite .px-xl-3 { + padding-left: 1rem !important; + } + .bodywebsite .p-xl-4 { + padding: 1.5rem !important; + } + .bodywebsite .pt-xl-4, + .bodywebsite .py-xl-4 { + padding-top: 1.5rem !important; + } + .bodywebsite .pr-xl-4, + .bodywebsite .px-xl-4 { + padding-right: 1.5rem !important; + } + .bodywebsite .pb-xl-4, + .bodywebsite .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .bodywebsite .pl-xl-4, + .bodywebsite .px-xl-4 { + padding-left: 1.5rem !important; + } + .bodywebsite .p-xl-5 { + padding: 3rem !important; + } + .bodywebsite .pt-xl-5, + .bodywebsite .py-xl-5 { + padding-top: 3rem !important; + } + .bodywebsite .pr-xl-5, + .bodywebsite .px-xl-5 { + padding-right: 3rem !important; + } + .bodywebsite .pb-xl-5, + .bodywebsite .py-xl-5 { + padding-bottom: 3rem !important; + } + .bodywebsite .pl-xl-5, + .bodywebsite .px-xl-5 { + padding-left: 3rem !important; + } + .bodywebsite .m-xl-auto { + margin: auto !important; + } + .bodywebsite .mt-xl-auto, + .bodywebsite .my-xl-auto { + margin-top: auto !important; + } + .bodywebsite .mr-xl-auto, + .bodywebsite .mx-xl-auto { + margin-right: auto !important; + } + .bodywebsite .mb-xl-auto, + .bodywebsite .my-xl-auto { + margin-bottom: auto !important; + } + .bodywebsite .ml-xl-auto, + .bodywebsite .mx-xl-auto { + margin-left: auto !important; + } +} +@media (min-width: 1800px) { + .bodywebsite .m-xxl-0 { + margin: 0 !important; + } + .bodywebsite .mt-xxl-0, + .bodywebsite .my-xxl-0 { + margin-top: 0 !important; + } + .bodywebsite .mr-xxl-0, + .bodywebsite .mx-xxl-0 { + margin-right: 0 !important; + } + .bodywebsite .mb-xxl-0, + .bodywebsite .my-xxl-0 { + margin-bottom: 0 !important; + } + .bodywebsite .ml-xxl-0, + .bodywebsite .mx-xxl-0 { + margin-left: 0 !important; + } + .bodywebsite .m-xxl-1 { + margin: 0.25rem !important; + } + .bodywebsite .mt-xxl-1, + .bodywebsite .my-xxl-1 { + margin-top: 0.25rem !important; + } + .bodywebsite .mr-xxl-1, + .bodywebsite .mx-xxl-1 { + margin-right: 0.25rem !important; + } + .bodywebsite .mb-xxl-1, + .bodywebsite .my-xxl-1 { + margin-bottom: 0.25rem !important; + } + .bodywebsite .ml-xxl-1, + .bodywebsite .mx-xxl-1 { + margin-left: 0.25rem !important; + } + .bodywebsite .m-xxl-2 { + margin: 0.5rem !important; + } + .bodywebsite .mt-xxl-2, + .bodywebsite .my-xxl-2 { + margin-top: 0.5rem !important; + } + .bodywebsite .mr-xxl-2, + .bodywebsite .mx-xxl-2 { + margin-right: 0.5rem !important; + } + .bodywebsite .mb-xxl-2, + .bodywebsite .my-xxl-2 { + margin-bottom: 0.5rem !important; + } + .bodywebsite .ml-xxl-2, + .bodywebsite .mx-xxl-2 { + margin-left: 0.5rem !important; + } + .bodywebsite .m-xxl-3 { + margin: 1rem !important; + } + .bodywebsite .mt-xxl-3, + .bodywebsite .my-xxl-3 { + margin-top: 1rem !important; + } + .bodywebsite .mr-xxl-3, + .bodywebsite .mx-xxl-3 { + margin-right: 1rem !important; + } + .bodywebsite .mb-xxl-3, + .bodywebsite .my-xxl-3 { + margin-bottom: 1rem !important; + } + .bodywebsite .ml-xxl-3, + .bodywebsite .mx-xxl-3 { + margin-left: 1rem !important; + } + .bodywebsite .m-xxl-4 { + margin: 1.5rem !important; + } + .bodywebsite .mt-xxl-4, + .bodywebsite .my-xxl-4 { + margin-top: 1.5rem !important; + } + .bodywebsite .mr-xxl-4, + .bodywebsite .mx-xxl-4 { + margin-right: 1.5rem !important; + } + .bodywebsite .mb-xxl-4, + .bodywebsite .my-xxl-4 { + margin-bottom: 1.5rem !important; + } + .bodywebsite .ml-xxl-4, + .bodywebsite .mx-xxl-4 { + margin-left: 1.5rem !important; + } + .bodywebsite .m-xxl-5 { + margin: 3rem !important; + } + .bodywebsite .mt-xxl-5, + .bodywebsite .my-xxl-5 { + margin-top: 3rem !important; + } + .bodywebsite .mr-xxl-5, + .bodywebsite .mx-xxl-5 { + margin-right: 3rem !important; + } + .bodywebsite .mb-xxl-5, + .bodywebsite .my-xxl-5 { + margin-bottom: 3rem !important; + } + .bodywebsite .ml-xxl-5, + .bodywebsite .mx-xxl-5 { + margin-left: 3rem !important; + } + .bodywebsite .p-xxl-0 { + padding: 0 !important; + } + .bodywebsite .pt-xxl-0, + .bodywebsite .py-xxl-0 { + padding-top: 0 !important; + } + .bodywebsite .pr-xxl-0, + .bodywebsite .px-xxl-0 { + padding-right: 0 !important; + } + .bodywebsite .pb-xxl-0, + .bodywebsite .py-xxl-0 { + padding-bottom: 0 !important; + } + .bodywebsite .pl-xxl-0, + .bodywebsite .px-xxl-0 { + padding-left: 0 !important; + } + .bodywebsite .p-xxl-1 { + padding: 0.25rem !important; + } + .bodywebsite .pt-xxl-1, + .bodywebsite .py-xxl-1 { + padding-top: 0.25rem !important; + } + .bodywebsite .pr-xxl-1, + .bodywebsite .px-xxl-1 { + padding-right: 0.25rem !important; + } + .bodywebsite .pb-xxl-1, + .bodywebsite .py-xxl-1 { + padding-bottom: 0.25rem !important; + } + .bodywebsite .pl-xxl-1, + .bodywebsite .px-xxl-1 { + padding-left: 0.25rem !important; + } + .bodywebsite .p-xxl-2 { + padding: 0.5rem !important; + } + .bodywebsite .pt-xxl-2, + .bodywebsite .py-xxl-2 { + padding-top: 0.5rem !important; + } + .bodywebsite .pr-xxl-2, + .bodywebsite .px-xxl-2 { + padding-right: 0.5rem !important; + } + .bodywebsite .pb-xxl-2, + .bodywebsite .py-xxl-2 { + padding-bottom: 0.5rem !important; + } + .bodywebsite .pl-xxl-2, + .bodywebsite .px-xxl-2 { + padding-left: 0.5rem !important; + } + .bodywebsite .p-xxl-3 { + padding: 1rem !important; + } + .bodywebsite .pt-xxl-3, + .bodywebsite .py-xxl-3 { + padding-top: 1rem !important; + } + .bodywebsite .pr-xxl-3, + .bodywebsite .px-xxl-3 { + padding-right: 1rem !important; + } + .bodywebsite .pb-xxl-3, + .bodywebsite .py-xxl-3 { + padding-bottom: 1rem !important; + } + .bodywebsite .pl-xxl-3, + .bodywebsite .px-xxl-3 { + padding-left: 1rem !important; + } + .bodywebsite .p-xxl-4 { + padding: 1.5rem !important; + } + .bodywebsite .pt-xxl-4, + .bodywebsite .py-xxl-4 { + padding-top: 1.5rem !important; + } + .bodywebsite .pr-xxl-4, + .bodywebsite .px-xxl-4 { + padding-right: 1.5rem !important; + } + .bodywebsite .pb-xxl-4, + .bodywebsite .py-xxl-4 { + padding-bottom: 1.5rem !important; + } + .bodywebsite .pl-xxl-4, + .bodywebsite .px-xxl-4 { + padding-left: 1.5rem !important; + } + .bodywebsite .p-xxl-5 { + padding: 3rem !important; + } + .bodywebsite .pt-xxl-5, + .bodywebsite .py-xxl-5 { + padding-top: 3rem !important; + } + .bodywebsite .pr-xxl-5, + .bodywebsite .px-xxl-5 { + padding-right: 3rem !important; + } + .bodywebsite .pb-xxl-5, + .bodywebsite .py-xxl-5 { + padding-bottom: 3rem !important; + } + .bodywebsite .pl-xxl-5, + .bodywebsite .px-xxl-5 { + padding-left: 3rem !important; + } + .bodywebsite .m-xxl-auto { + margin: auto !important; + } + .bodywebsite .mt-xxl-auto, + .bodywebsite .my-xxl-auto { + margin-top: auto !important; + } + .bodywebsite .mr-xxl-auto, + .bodywebsite .mx-xxl-auto { + margin-right: auto !important; + } + .bodywebsite .mb-xxl-auto, + .bodywebsite .my-xxl-auto { + margin-bottom: auto !important; + } + .bodywebsite .ml-xxl-auto, + .bodywebsite .mx-xxl-auto { + margin-left: auto !important; + } +} +.bodywebsite .text-justify { + text-align: justify !important; +} +.bodywebsite .text-nowrap { + white-space: nowrap !important; +} +.bodywebsite .text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.bodywebsite .text-left { + text-align: left !important; +} +.bodywebsite .text-right { + text-align: right !important; +} +.bodywebsite .text-center { + text-align: center !important; +} +@media (min-width: 576px) { + .bodywebsite .text-sm-left { + text-align: left !important; + } + .bodywebsite .text-sm-right { + text-align: right !important; + } + .bodywebsite .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .bodywebsite .text-md-left { + text-align: left !important; + } + .bodywebsite .text-md-right { + text-align: right !important; + } + .bodywebsite .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .bodywebsite .text-lg-left { + text-align: left !important; + } + .bodywebsite .text-lg-right { + text-align: right !important; + } + .bodywebsite .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .bodywebsite .text-xl-left { + text-align: left !important; + } + .bodywebsite .text-xl-right { + text-align: right !important; + } + .bodywebsite .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1800px) { + .bodywebsite .text-xxl-left { + text-align: left !important; + } + .bodywebsite .text-xxl-right { + text-align: right !important; + } + .bodywebsite .text-xxl-center { + text-align: center !important; + } +} +.bodywebsite .text-lowercase { + text-transform: lowercase !important; +} +.bodywebsite .text-uppercase { + text-transform: uppercase !important; +} +.bodywebsite .text-capitalize { + text-transform: capitalize !important; +} +.bodywebsite .font-weight-light { + font-weight: 300 !important; +} +.bodywebsite .font-weight-normal { + font-weight: 400 !important; +} +.bodywebsite .font-weight-bold { + font-weight: 700 !important; +} +.bodywebsite .font-italic { + font-style: italic !important; +} +.bodywebsite .text-white { + color: #fff !important; +} +.bodywebsite .text-primary { + color: #007bff !important; +} +.bodywebsite a.text-primary:focus, +.bodywebsite a.text-primary:hover { + color: #0062cc !important; +} +.bodywebsite .text-secondary { + color: #868e96 !important; +} +.bodywebsite a.text-secondary:focus, +.bodywebsite a.text-secondary:hover { + color: #6c757d !important; +} +.bodywebsite .text-success { + color: #28a745 !important; +} +.bodywebsite a.text-success:focus, +.bodywebsite a.text-success:hover { + color: #1e7e34 !important; +} +.bodywebsite .text-info { + color: #17a2b8 !important; +} +.bodywebsite a.text-info:focus, +.bodywebsite a.text-info:hover { + color: #117a8b !important; +} +.bodywebsite .text-warning { + color: #ffc107 !important; +} +.bodywebsite a.text-warning:focus, +.bodywebsite a.text-warning:hover { + color: #d39e00 !important; +} +.bodywebsite .text-danger { + color: #dc3545 !important; +} +.bodywebsite a.text-danger:focus, +.bodywebsite a.text-danger:hover { + color: #bd2130 !important; +} +.bodywebsite .text-light { + color: #f8f9fa !important; +} +.bodywebsite a.text-light:focus, +.bodywebsite a.text-light:hover { + color: #dae0e5 !important; +} +.bodywebsite .text-dark { + color: #343a40 !important; +} +.bodywebsite a.text-dark:focus, +.bodywebsite a.text-dark:hover { + color: #1d2124 !important; +} +.bodywebsite .text-muted { + color: #dedede !important; +} +.bodywebsite .text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.bodywebsite .visible { + visibility: visible !important; +} +.bodywebsite .invisible { + visibility: hidden !important; +} +.bodywebsite .animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + opacity: 1; +} +.bodywebsite .animated:not(.page) { + will-change: transform; +} +.bodywebsite .animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} +.bodywebsite .animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} +html .bodywebsite:not(.lt-ie10) .not-animated { + opacity: 0; +} +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.bodywebsite .fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.bodywebsite .fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/test2.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/test2.php new file mode 100644 index 00000000000..9939ba32bf6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/test2.php @@ -0,0 +1,4 @@ +ref.'/page126.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/containers/wrapper.php b/htdocs/install/doctemplates/websites/website_template-corporate/containers/wrapper.php new file mode 100644 index 00000000000..26adb3ef220 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/containers/wrapper.php @@ -0,0 +1,278 @@ +entity; +$original_file = GETPOST("file", "alpha"); +$l = GETPOST('l', 'aZ09'); +$limit = GETPOST('limit', 'int'); + +// Parameters for RSS +$rss = GETPOST('rss', 'aZ09'); +if ($rss) { + $original_file = 'blog.rss'; +} + +// If we have a hash public (hashp), we guess the original_file. +if (!empty($hashp)) { + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile = new EcmFiles($db); + $result = $ecmfile->fetch(0, '', '', '', $hashp); + if ($result > 0) { + $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory + // filepath can be 'users/X' or 'X/propale/PR11111' + if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part. + $tmp = explode('/', $tmp[1], 2); + } + $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path + + if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter. + if ($moduleparttocheck == $modulepart) { + // We remove first level of directory + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + //var_dump($original_file); exit; + } else { + print 'Bad link. File is from another module part.'; + } + } else { + $modulepart = $moduleparttocheck; + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + } + } else { + print "ErrorFileNotFoundWithSharedLink"; + exit; + } +} + +// Define attachment (attachment=true to force choice popup 'open'/'save as') +$attachment = true; +if (preg_match('/\.(html|htm)$/i', $original_file)) { + $attachment = false; +} +if (isset($_GET["attachment"])) { + $attachment = (GETPOST("attachment", 'alphanohtml') ? true : false); +} +if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) { + $attachment = false; +} + +// Define mime type +$type = 'application/octet-stream'; +if (GETPOSTISSET('type')) { + $type = GETPOST('type', 'alpha'); +} else { + $type = dol_mimetype($original_file); +} + +// Security: Delete string ../ into $original_file +$original_file = str_replace("../", "/", $original_file); + +// Cache or not +if (GETPOST("cache", 'aZ09') || image_format_supported($original_file) >= 0) { + // Important: Following code is to avoid page request by browser and PHP CPU at + // each Dolibarr page access. + header('Cache-Control: max-age=3600, public, must-revalidate'); + header('Pragma: cache'); // This is to avoid having Pragma: no-cache +} + +$refname = basename(dirname($original_file)."/"); + +// Get RSS news +if ($rss) { + $format = 'rss'; + $type = ''; + $cachedelay = 0; + $filename = $original_file; + $dir_temp = $conf->website->dir_temp; + + include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; + include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; + $website = new Website($db); + $websitepage = new WebsitePage($db); + + $website->fetch('', $websitekey); + + $filters = array('type_container'=>'blogpost', 'status'=>1); + if ($l) { + $filters['lang'] = $l; + } + + $MAXNEWS = ($limit ? $limit : 20); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, $filters); + $eventarray = array(); + if (is_array($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + $blog->fullpageurl = $website->virtualhost.'/'.$blog->pageurl.'.php'; + $eventarray[] = $blog; + } + } + + require_once DOL_DOCUMENT_ROOT."/core/lib/xcal.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + + dol_syslog("build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG); + + // Clean parameters + if (!$filename) { + $extension = 'rss'; + $filename = $format.'.'.$extension; + } + + // Create dir and define output file (definitive and temporary) + $result = dol_mkdir($dir_temp); + $outputfile = $dir_temp.'/'.$filename; + + $result = 0; + + $buildfile = true; + + if ($cachedelay) { + $nowgmt = dol_now(); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (dol_filemtime($outputfile) > ($nowgmt - $cachedelay)) { + dol_syslog("build_exportfile file ".$outputfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay."). Build is canceled"); + $buildfile = false; + } + } + + if ($buildfile) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($l); + $outputlangs->loadLangs(array("main", "other")); + $title = $desc = $outputlangs->transnoentities('LatestBlogPosts'); + + // Create temp file + $outputfiletmp = tempnam($dir_temp, 'tmp'); // Temporary file (allow call of function by different threads + @chmod($outputfiletmp, octdec($conf->global->MAIN_UMASK)); + + // Write file + $result = build_rssfile($format, $title, $desc, $eventarray, $outputfiletmp, '', $website->virtualhost.'/wrapper.php?rss=1'.($l ? '&l='.$l : ''), $l); + + if ($result >= 0) { + if (dol_move($outputfiletmp, $outputfile, 0, 1)) { + $result = 1; + } else { + $error = 'Failed to rename '.$outputfiletmp.' into '.$outputfile; + dol_syslog("build_exportfile ".$error, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + print $error; + exit(-1); + } + } else { + dol_syslog("build_exportfile build_xxxfile function fails to for format=".$format." outputfiletmp=".$outputfile, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + $langs->load("errors"); + print $langs->trans("ErrorFailToCreateFile", $outputfile); + exit(-1); + } + } + + if ($result >= 0) { + $attachment = false; + if (isset($_GET["attachment"])) { + $attachment = $_GET["attachment"]; + } + //$attachment = false; + $contenttype = 'application/rss+xml'; + if (isset($_GET["contenttype"])) { + $contenttype = $_GET["contenttype"]; + } + //$contenttype='text/plain'; + $outputencoding = 'UTF-8'; + + if ($contenttype) { + header('Content-Type: '.$contenttype.($outputencoding ? '; charset='.$outputencoding : '')); + } + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } + + // Ajout directives pour resoudre bug IE + //header('Cache-Control: Public, must-revalidate'); + //header('Pragma: public'); + if ($cachedelay) { + header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate'); + } else { + header('Cache-Control: private, must-revalidate'); + } + + // Clean parameters + $outputfile = $dir_temp.'/'.$filename; + $result = readfile($outputfile); + if (!$result) { + print 'File '.$outputfile.' was empty.'; + } + + // header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename)); + exit; + } +} elseif ($modulepart == "mycompany" && preg_match('/^\/?logos\//', $original_file)) { + // Get logos + readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); +} else { + // Find the subdirectory name as the reference + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); + $accessallowed = empty($check_access['accessallowed']) ? '' : $check_access['accessallowed']; + $sqlprotectagainstexternals = empty($check_access['sqlprotectagainstexternals']) ? '' : $check_access['sqlprotectagainstexternals']; + $fullpath_original_file = empty($check_access['original_file']) ? '' : $check_access['original_file']; // $fullpath_original_file is now a full path name + if ($hashp) { + $accessallowed = 1; // When using hashp, link is public so we force $accessallowed + $sqlprotectagainstexternals = ''; + } + + // Security: + // Limit access if permissions are wrong + if (!$accessallowed) { + print 'Access forbidden'; + exit; + } + + clearstatcache(); + + $filename = basename($fullpath_original_file); + + // Output file on browser + dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); + $fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset + + // This test if file exists should be useless. We keep it to find bug more easily + if (!file_exists($fullpath_original_file_osencoded)) { + print "ErrorFileDoesNotExists: ".$original_file; + exit; + } + + // Permissions are ok and file found, so we return it + //top_httphead($type); + header('Content-Type: '.$type); + header('Content-Description: File Transfer'); + if ($encoding) { + header('Content-Encoding: '.$encoding); + } + // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } else { + header('Content-Disposition: inline; filename="'.$filename.'"'); + } + header('Content-Length: '.dol_filesize($fullpath_original_file)); + + readfile($fullpath_original_file_osencoded); +} +if (is_object($db)) { + $db->close(); +} +// END PHP diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ajax-loading.gif b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ajax-loading.gif new file mode 100644 index 00000000000..f7e0378a8ca Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ajax-loading.gif differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/alberteinstein.jpg b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/alberteinstein.jpg new file mode 100644 index 00000000000..869d4762746 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/alberteinstein.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/apache.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/apache.png new file mode 100644 index 00000000000..73a380ba51c Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/apache.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_coder.webp b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_coder.webp new file mode 100644 index 00000000000..b2e8e72e9dd Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_coder.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_computer_coffee.webp b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_computer_coffee.webp new file mode 100644 index 00000000000..792fdadeeee Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_computer_coffee.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_dolibarr.webp b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_dolibarr.webp new file mode 100644 index 00000000000..66d7c020d21 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_dolibarr.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_rough-horn.webp b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_rough-horn.webp new file mode 100644 index 00000000000..7c9420b5591 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_rough-horn.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_sunset.webp b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_sunset.webp new file mode 100644 index 00000000000..a89a14fdec8 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/background_sunset.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/briefcase.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/briefcase.png new file mode 100644 index 00000000000..bf6fa1aa05c Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/briefcase.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/calendar.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/calendar.png new file mode 100644 index 00000000000..d065bdcf9f4 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/calendar.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/daviddoe.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/daviddoe.png new file mode 100644 index 00000000000..ec1fe6eacb9 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/daviddoe.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr.ico b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr.ico new file mode 100644 index 00000000000..611e4bf150e Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr.ico differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr_256x256.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr_256x256.png new file mode 100644 index 00000000000..970f841001b Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr_256x256.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr_logo.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr_logo.png new file mode 100644 index 00000000000..8edd0660e60 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/dolibarr_logo.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-5.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-5.png new file mode 100644 index 00000000000..319e564ed3c Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-5.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-6.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-6.png new file mode 100644 index 00000000000..6991f9b0e72 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-6.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-quote.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-quote.png new file mode 100644 index 00000000000..3e903027e37 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/icon-quote.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/light-bulb.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/light-bulb.png new file mode 100644 index 00000000000..deaa9cf4ae1 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/light-bulb.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/mariadb.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/mariadb.png new file mode 100644 index 00000000000..26caeaea837 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/mariadb.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/mariecurie.jpg b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/mariecurie.jpg new file mode 100644 index 00000000000..c6aab3154f1 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/mariecurie.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/organization.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/organization.png new file mode 100644 index 00000000000..c77120cefae Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/organization.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ovh.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ovh.png new file mode 100644 index 00000000000..c4036d82bed Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ovh.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/package.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/package.png new file mode 100644 index 00000000000..f6ca65c0447 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/package.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/php.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/php.png new file mode 100644 index 00000000000..7b3e8ce8f6f Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/php.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/pierrecurie.jpg b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/pierrecurie.jpg new file mode 100644 index 00000000000..8ea6696ba45 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/pierrecurie.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/apache_mini.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/apache_mini.png new file mode 100644 index 00000000000..438d91ed1f9 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/apache_mini.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/apache_small.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/apache_small.png new file mode 100644 index 00000000000..29580ebc5b0 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/apache_small.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/mariadb_mini.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/mariadb_mini.png new file mode 100644 index 00000000000..ed00343bf25 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/mariadb_mini.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/mariadb_small.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/mariadb_small.png new file mode 100644 index 00000000000..fd206b7d0c4 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/mariadb_small.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ovh_mini.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ovh_mini.png new file mode 100644 index 00000000000..a4f3dc65994 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ovh_mini.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ovh_small.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ovh_small.png new file mode 100644 index 00000000000..77dae0c33ac Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ovh_small.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/php_mini.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/php_mini.png new file mode 100644 index 00000000000..67b1977d1c5 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/php_mini.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/php_small.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/php_small.png new file mode 100644 index 00000000000..ee42122929d Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/php_small.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ubuntu_mini.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ubuntu_mini.png new file mode 100644 index 00000000000..8218af0ea05 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ubuntu_mini.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ubuntu_small.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ubuntu_small.png new file mode 100644 index 00000000000..0f5df4b61ae Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/thumbs/ubuntu_small.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ubuntu.png b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ubuntu.png new file mode 100644 index 00000000000..4bd8dbe0a0c Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate/medias/image/websitekey/ubuntu.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate/medias/js/websitekey/extlib.min.js b/htdocs/install/doctemplates/websites/website_template-corporate/medias/js/websitekey/extlib.min.js new file mode 100644 index 00000000000..7e0209f1df6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-corporate/medias/js/websitekey/extlib.min.js @@ -0,0 +1,853 @@ + + +/** + * @module Popper.js + * @author Federico Zivolo + * @see https://github.com/FezVrasta/popper.js + * @license MIT + * @version 1.11.0 + */ +(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var f=a.commonAncestorContainer;if(e!==f&&t!==f||i.contains(n))return p(f)?f:r(f);var l=s(e);return l.host?d(l.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),f=0i[e]&&!t.escapeWithReference&&(n=z(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=V,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var o=t.element;if('string'==typeof o){if(o=e.instance.popper.querySelector(o),!o)return e;}else if(!e.instance.popper.contains(o))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var i=e.placement.split('-')[0],n=e.offsets,r=n.popper,p=n.reference,s=-1!==['left','right'].indexOf(i),d=s?'height':'width',a=s?'top':'left',f=s?'left':'top',l=s?'bottom':'right',m=O(o)[d];p[l]-mr[l]&&(e.offsets.popper[a]+=p[a]+m-r[l]);var h=p[a]+p[d]/2-m/2,g=h-c(e.offsets.popper)[a];return g=_(z(r[d]-m,g),0),e.arrowElement=o,e.offsets.arrow={},e.offsets.arrow[a]=Math.round(g),e.offsets.arrow[f]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,f=e.offsets.reference,l=V,m='left'===i&&l(a.right)>l(f.left)||'right'===i&&l(a.left)l(f.top)||'bottom'===i&&l(a.top)l(o.right),g=l(a.top)l(o.bottom),b='left'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[t]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(s.BUTTON)),a._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,s.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(s.BUTTON)[0];e(n).toggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),h=function(){var t="carousel",n="bs.carousel",i="."+n,o=e.fn[t],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},c={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},u={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},d={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},f=function(){function o(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(d.INDICATORS)[0],this._addEventListeners()}var f=o.prototype;return f.next=function(){this._isSliding||this._slide(h.NEXT)},f.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},f.prev=function(){this._isSliding||this._slide(h.PREV)},f.pause=function(t){t||(this._isPaused=!0),e(this._element).find(d.NEXT_PREV)[0]&&s.supportsTransitionEnd()&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},f.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},f.to=function(t){var n=this;this._activeElement=e(this._element).find(d.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(c.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var s=t>i?h.NEXT:h.PREV;this._slide(s,this._items[t])}},f.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},f._getConfig=function(n){return n=e.extend({},a,n),s.typeCheckConfig(t,n,l),n},f._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(c.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(e(this._element).on(c.MOUSEENTER,function(e){return t.pause(e)}).on(c.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(c.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},f._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},f._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(d.ITEM)),this._items.indexOf(t)},f._getItemByDirection=function(t,e){var n=t===h.NEXT,i=t===h.PREV,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===h.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},f._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),s=this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]),r=e.Event(c.SLIDE,{relatedTarget:t,direction:n,from:s,to:i});return e(this._element).trigger(r),r},f._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(u.ACTIVE)}},f._slide=function(t,n){var i,r,o,a=this,l=e(this._element).find(d.ACTIVE_ITEM)[0],f=this._getItemIndex(l),_=n||l&&this._getItemByDirection(t,l),g=this._getItemIndex(_),m=Boolean(this._interval);if(t===h.NEXT?(i=u.LEFT,r=u.NEXT,o=h.LEFT):(i=u.RIGHT,r=u.PREV,o=h.RIGHT),_&&e(_).hasClass(u.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(_,o).isDefaultPrevented()&&l&&_){this._isSliding=!0,m&&this.pause(),this._setActiveIndicatorElement(_);var p=e.Event(c.SLID,{relatedTarget:_,direction:o,from:f,to:g});s.supportsTransitionEnd()&&e(this._element).hasClass(u.SLIDE)?(e(_).addClass(r),s.reflow(_),e(l).addClass(i),e(_).addClass(i),e(l).one(s.TRANSITION_END,function(){e(_).removeClass(i+" "+r).addClass(u.ACTIVE),e(l).removeClass(u.ACTIVE+" "+r+" "+i),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(p)},0)}).emulateTransitionEnd(600)):(e(l).removeClass(u.ACTIVE),e(_).addClass(u.ACTIVE),this._isSliding=!1,e(this._element).trigger(p)),m&&this.cycle()}},o._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},a,e(this).data());"object"==typeof t&&e.extend(s,t);var r="string"==typeof t?t:s.slide;if(i||(i=new o(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof r){if("undefined"==typeof i[r])throw new Error('No method named "'+r+'"');i[r]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(t){var i=s.getSelectorFromElement(this);if(i){var r=e(i)[0];if(r&&e(r).hasClass(u.CAROUSEL)){var a=e.extend({},e(r).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(e(r),a),l&&e(r).data(n).to(l),t.preventDefault()}}},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}}]),o}();return e(document).on(c.CLICK_DATA_API,d.DATA_SLIDE,f._dataApiClickHandler),e(window).on(c.LOAD_DATA_API,function(){e(d.DATA_RIDE).each(function(){var t=e(this);f._jQueryInterface.call(t,t.data())})}),e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=o,f._jQueryInterface},f}(),c=function(){var t="collapse",n="bs.collapse",i=e.fn[t],o={toggle:!0,parent:""},a={toggle:"boolean",parent:"(string|element)"},l={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},h={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},c={WIDTH:"width",HEIGHT:"height"},u={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},d=function(){function i(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(u.DATA_TOGGLE),r=0;r0&&this._triggerArray.push(o)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var d=i.prototype;return d.toggle=function(){e(this._element).hasClass(h.SHOW)?this.hide():this.show()},d.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(h.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._parent).children().children(u.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var a=e.Event(l.SHOW);if(e(this._element).trigger(a),!a.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||e(r).data(n,null));var c=this._getDimension();e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING),this._element.style[c]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var d=function(){e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW),t._element.style[c]="",t.setTransitioning(!1),e(t._element).trigger(l.SHOWN)};if(s.supportsTransitionEnd()){var f="scroll"+(c[0].toUpperCase()+c.slice(1));e(this._element).one(s.TRANSITION_END,d).emulateTransitionEnd(600),this._element.style[c]=this._element[f]+"px"}else d()}}}},d.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(h.SHOW)){var n=e.Event(l.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",s.reflow(this._element),e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW),this._triggerArray.length)for(var r=0;r0},g._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},a._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(i),s="object"==typeof t?t:null;if(n||(n=new a(this,s),e(this).data(i,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},a._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=e.makeArray(e(u.DATA_TOGGLE)),s=0;s0&&r--,40===t.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},u._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},u._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},u={SHOW:"show",OUT:"out"},d={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},f={FADE:"fade",SHOW:"show"},_={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},g={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},m=function(){function o(t,e){this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var m=o.prototype;return m.enable=function(){this._isEnabled=!0},m.disable=function(){this._isEnabled=!1},m.toggleEnabled=function(){this._isEnabled=!this._isEnabled},m.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},m.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},m.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var a=this.getTipElement(),l=s.getUID(this.constructor.NAME);a.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(a).addClass(f.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,c=this._getAttachment(h);this.addAttachmentClass(c);var d=!1===this.config.container?document.body:e(this.config.container);e(a).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(a).appendTo(d),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,a,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(a).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var g=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===u.OUT&&t._leave(null,t)};s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(s.TRANSITION_END,g).emulateTransitionEnd(o._TRANSITION_DURATION):g()}},m.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==u.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(s.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},m.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},m.isWithContent=function(){return Boolean(this.getTitle())},m.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},m.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},m.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(_.TOOLTIP_INNER),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},m.setElementContent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},m.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},m._getAttachment=function(t){return h[t.toUpperCase()]},m._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==g.MANUAL){var i=n===g.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,s=n===g.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(s,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(".modal").on("hide.bs.modal",function(){return t.hide()})}),this.config.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},m._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},m._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?g.FOCUS:g.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===u.SHOW?n._hoverState=u.SHOW:(clearTimeout(n._timeout),n._hoverState=u.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===u.SHOW&&n.show()},n.config.delay.show):n.show())},m._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=u.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===u.OUT&&n.hide()},n.config.delay.hide):n.hide())},m._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},m._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},m._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},m._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(a);null!==n&&n.length>0&&t.removeClass(n.join(""))},m._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},m._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,i),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return c}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return d}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}}]),o}();return e.fn[t]=m._jQueryInterface,e.fn[t].Constructor=m,e.fn[t].noConflict=function(){return e.fn[t]=o,m._jQueryInterface},m}(),_=function(){var t="popover",n=".bs.popover",i=e.fn[t],s=new RegExp("(^|\\s)bs-popover\\S+","g"),a=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),l=e.extend({},f.DefaultType,{content:"(string|element|function)"}),h={FADE:"fade",SHOW:"show"},c={TITLE:".popover-header",CONTENT:".popover-body"},u={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},d=function(i){function d(){return i.apply(this,arguments)||this}o(d,i);var f=d.prototype;return f.isWithContent=function(){return this.getTitle()||this._getContent()},f.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},f.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},f.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(c.TITLE),this.getTitle()),this.setElementContent(t.find(c.CONTENT),this._getContent()),t.removeClass(h.FADE+" "+h.SHOW)},f._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},f._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(s);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new d(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(d,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return u}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return l}}]),d}(f);return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),g=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},o={offset:"number",method:"string",target:"(string|element)"},a={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},l={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},h={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},c={OFFSET:"offset",POSITION:"position"},u=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+h.NAV_LINKS+","+this._config.target+" "+h.LIST_ITEMS+","+this._config.target+" "+h.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(a.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var u=n.prototype;return u.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?c.POSITION:c.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===c.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=s.getSelectorFromElement(t);if(o&&(n=e(o)[0]),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},u.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},u._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var r=e(n.target).attr("id");r||(r=s.getUID(t),e(n.target).attr("id",r)),n.target="#"+r}return s.typeCheckConfig(t,n,o),n},u._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},u._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},u._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},u._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;)this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},a=function(){function t(t){this._element=t}var a=t.prototype;return a.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var r,a,l=e(this._element).closest(o.NAV_LIST_GROUP)[0],h=s.getSelectorFromElement(this._element);if(l){var c="UL"===l.nodeName?o.ACTIVE_UL:o.ACTIVE;a=e.makeArray(e(l).find(c)),a=a[a.length-1]}var u=e.Event(n.HIDE,{relatedTarget:this._element}),d=e.Event(n.SHOW,{relatedTarget:a});if(a&&e(a).trigger(u),e(this._element).trigger(d),!d.isDefaultPrevented()&&!u.isDefaultPrevented()){h&&(r=e(h)[0]),this._activate(this._element,l);var f=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),s=e.Event(n.SHOWN,{relatedTarget:a});e(a).trigger(i),e(t._element).trigger(s)};r?this._activate(r,r.parentNode,f):f()}}},a.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},a._activate=function(t,n,r){var a,l=this,h=(a="UL"===n.nodeName?e(n).find(o.ACTIVE_UL):e(n).children(o.ACTIVE))[0],c=r&&s.supportsTransitionEnd()&&h&&e(h).hasClass(i.FADE),u=function(){return l._transitionComplete(t,h,c,r)};h&&c?e(h).one(s.TRANSITION_END,u).emulateTransitionEnd(150):u(),h&&e(h).removeClass(i.SHOW)},a._transitionComplete=function(t,n,r,a){if(n){e(n).removeClass(i.ACTIVE);var l=e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0];l&&e(l).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),r?(s.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var h=e(t).closest(o.DROPDOWN)[0];h&&e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}a&&a()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.tab");if(s||(s=new t(this),i.data("bs.tab",s)),"string"==typeof n){if("undefined"==typeof s[n])throw new Error('No method named "'+n+'"');s[n]()}})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,o.DATA_TOGGLE,function(t){t.preventDefault(),a._jQueryInterface.call(e(this),"show")}),e.fn.tab=a._jQueryInterface,e.fn.tab.Constructor=a,e.fn.tab.noConflict=function(){return e.fn.tab=t,a._jQueryInterface},a}();return function(){if("undefined"==typeof e)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=s,t.Alert=a,t.Button=l,t.Carousel=h,t.Collapse=c,t.Dropdown=u,t.Modal=d,t.Popover=_,t.Scrollspy=g,t.Tab=m,t.Tooltip=f,t}({},$,Popper); + + +/** + * @module Regula + * @description An annotation-based form-validation framework in Javascript + * @license BSD + * @version 1.3.4 + * @copyright Robert Nyman, http://www.robertnyman.com + */ +(function(e,t){typeof define=="function"&&define.amd?define("utils/MapUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.MapUtils=t())})(this,function(){return{iterateOverMap:function(e,t){var n=0;for(var r in e)e.hasOwnProperty(r)&&r!=="__size__"&&(t.call(e,r,e[r],n),n++)},exists:function(e,t){var n=!1,r=0;while(!n&&r0&&(typeof r=="undefined"||o&&o.test(a))&&s.push(u);return s}function n(e,t){var n=e.getAttribute&&e.getAttribute(t)||null;if(!n){var r=e.attributes;for(var i=0;i0)for(var s in e)e.hasOwnProperty(s)&&s!="__size__"&&t.put(i,s,e[s]);return i}function f(e,t,n,i){var s=o[y.constraintType],a=W(t,s,i),f={group:n,constraintName:e.constraintName,custom:u[s].custom,compound:u[s].compound,async:u[s].async,constraintParameters:y.params,failingElements:e.failingElements,message:a};return r.reportAsSingleViolation||(f.composingConstraintViolations=e.composingConstraintViolations||[]),f}var l=[],c=[];for(var h=0;h0){v=[];for(var h=0;h0){v===null&&(v=[]);var T=0;for(var h=0;h0)throw new r.Exception.IllegalArgumentException("No constraints have been bound to the specified elements: "+i.explode(p)+". "+r.explodeParameters(e));return n=M(n),D(n,e)}function N(e){var t=[],n={asyncContexts:[],syncContexts:[]};for(var s in a)if(a.hasOwnProperty(s)){var o=a[s];for(var u=0;u0)throw new r.Exception.IllegalArgumentException("No constraints have been bound to the specified elements: "+i.explode(t)+". "+r.explodeParameters(e));return n=M(n),D(n,e)}function C(e){var t=!1,n={groupedContexts:{}},i=0;while(i0)throw new r.Exception.IllegalArgumentException("The following elements: "+i.explode(n)+" were not found in one or more of the following group(s): ["+i.explode(t,",").replace(/,/g,", ")+"]. "+r.explodeParameters(e));var m=_(o);return e.groups=m.groups,o=m.uniqueConstraintsToValidate,P(e,o,s)}function A(e){var t=!1,n={groupedContexts:{}},r=0;while(r0&&(n=B(e));if(e.asyncContexts.length>0){if(!t.callback)throw new r.Exception.IllegalArgumentException("One or more constraints to be validated are asynchronous, but a callback has not been provided.");j(e,function(e){n.length>0?n=n.concat(e):n=e,t.callback(n)})}else t.callback&&t.callback(n);return n}function P(e,t,n){var i=F(e.groups,e.independent,t);if(n){if(!e.callback)throw new r.Exception.IllegalArgumentException("One or more constraints to be validated are asynchronous, but a callback has not been provided.");if(!e.independent&&i.length>0){var s=i[0].group,o=t.groupedContexts[s];t.groupedContexts={},t.groupedContexts[s]=o}I(e.groups,e.independent,t,function(t){i.length>0?i=i.concat(t):i=t,e.callback(i)})}else e.callback&&e.callback(i);return i}function H(e,t,n){var i=a[e];if(!i)throw new r.Exception.IllegalArgumentException("Undefined group in group list (group: "+e+", elementId: "+t+", constraint: "+n+")");var s=i[t];if(!s)throw new r.Exception.IllegalArgumentException("No constraints have been defined for the element with id: "+t+" in group "+e);var o=s[n];if(!o)throw new r.Exception.IllegalArgumentException("Constraint "+n+" in group "+e+" hasn't been bound to the element with id "+t);return{group:e,elementId:t,elementConstraint:n,params:o,async:u[n].async}}function B(e){var t=[],n=0;while(n0},max:function(e){var t=!0;return g(this,e)&&(t=parseFloat(this.value)<=parseFloat(e.value)),t},min:function(e){var t=!0;return g(this,e)&&(t=parseFloat(this.value)>=parseFloat(e.value)),t},range:function(e){var t=!0;return g(this,e)&&(t=this.value.replace(/\s/g,"")!=""&&parseFloat(this.value)<=parseFloat(e.max)&&parseFloat(this.value)>=parseFloat(e.min)),t},notBlank:function(e){return this.value.replace(/\s/g,"")!=""},blank:function(e){return this.value.replace(/\s/g,"")===""},matches:function(e){var t=!0;if(g(this,e)){var n,r;typeof e["regex"]=="string"?r=e.regex.replace(/^\//,"").replace(/\/$/,""):r=e.regex,typeof e["flags"]!="undefined"?n=new RegExp(r.toString().replace(/^\//,"").replace(/\/[^\/]*$/,""),e.flags):n=new RegExp(r),t=n.test(this.value)}return t},email:function(e){var t=!0;return g(this,e)&&(t=/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(this.value)),t},alpha:function(e){var t=!0;return g(this,e)&&(t=/^[A-Za-z]+$/.test(this.value)),t},numeric:function(e){var t=!0;return g(this,e)&&(t=/^[0-9]+$/.test(this.value)),t},integer:function(e){var t=!0;return g(this,e)&&(t=/^-?[0-9]+$/.test(this.value)),t},real:function(e){var t=!0;return g(this,e)&&(t=/^-?([0-9]+(\.[0-9]+)?|\.[0-9]+)$/.test(this.value)),t},alphaNumeric:function(e){var t=!0;return g(this,e)&&(t=/^[0-9A-Za-z]+$/.test(this.value)),t},completelyFilled:function(e){var t=[];for(var n=0;n=e.min&&this.value.length<=e.max),t},digits:function(e){var t=!0;if(g(this,e)){var n=this.value.replace(/\s/g,""),r=n.split(/\./);t=!1,n.length>0&&(r.length==1&&(r[1]=""),e.integer>0?t=r[0].length<=e.integer:t=!0,e.fraction>0&&(t=t&&r[1].length<=e.fraction))}return t},past:function(e){var t=!0;if(g(this,e)){var n=y.call(this,e);t=n.dateToValidaten.dateToTestAgainst}return t},url:function(e){var t=!0;return g(this,e)&&(t=/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(this.value)),t},step:function(e){var t=!0;if(g(this,e)){var n=parseFloat(this.value),r=parseFloat(e.max),i=parseFloat(e.min),s=parseFloat(e.value);t=n<=r&&n>=i&&n%s===0}return t},html5Required:function(e){return!this.validity.valueMissing},html5Email:w,html5URL:w,html5Number:w,html5DateTime:w,html5DateTimeLocal:w,html5Date:w,html5Month:w,html5Time:w,html5Week:w,html5Range:w,html5Tel:w,html5Color:w,html5Pattern:function(e){return!this.validity.patternMismatch},html5MaxLength:function(e){return!this.validity.tooLong},html5Min:function(e){return!this.validity.rowUnderflow},html5Max:function(e){return!this.validity.rowOverflow},html5Step:function(e){return!this.validity.stepMismatch}};return{Validator:d,init:p,wrapValidatorWithEmptyCheck:b,initializePublicValidators:h,compoundValidator:m,validate:E,runValidatorFor:U,interpolateConstraintDefaultMessage:W,createPublicValidator:v}}),function(e,t){typeof define=="function"&&define.amd?define("domain/CompositionGraph",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.CompositionGraph=t())}(this,function(){function n(n){var r=n.type,i=n.name,s=n.parent,o=typeof e[r]=="undefined"?{visited:!1,name:i,type:r,parents:[],children:[]}:e[r];s==null?t.children.push(o):(s.children.push(o),o.parents.push(s)),e[r]=o}function r(){var e={},n=function r(t,n){var i=typeof e[t.type]=="undefined"?{visited:t.visited,name:t.name,type:t.type,parents:[],children:[]}:e[t.type];n!==null&&i.parents.push(n);for(var s=0;s0&&(s={error:!0,message:n.generateExceptionMessage(e,o[t.constraintType],"You seem to have provided some optional or required parameters for @"+o[t.constraintType]+", but you are still missing the following "+u.length+" required parameter(s): "+i.explode(u,", ")),data:null}),s}function d(e,n){var r=t.getNodeByType(s[e]);r==null&&(t.addNode({type:s[e],name:e,parent:null}),r=t.getNodeByType(s[e]));for(var i=0;i0&&t.successful)t=c(e),n.push(t.data);return t.data=n,t}function c(e){var n={successful:!0,message:"",data:null},i=e.shift();return r(i).length==0&&(i=e.shift()),i=="@"?n=h(e):n={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid constraint. Constraint definitions need to start with '@'")+" "+n.message,data:null},n}function h(e){var r={Between:"Range",Matches:"Pattern",Empty:"Blank",NotEmpty:"NotBlank",IsAlpha:"Alpha",IsNumeric:"Integer",IsAlphaNumeric:"AlphaNumeric"},i=p(e);if(i.successful){a=i.data,a=r[a]?r[a]:a;if(n.constraintDefinitions[a]){i=m(e);if(i.successful){i=n.verifyConstraintDefinition(o,a,i.data);if(i.successful){var s=i.data;i.data={element:o,constraintName:a,definedParameters:s}}}}else i={successful:!1,message:t.generateExceptionMessage(o,a,"I cannot find the specified constraint name. If this is a custom constraint, you need to define it before you bind to it")+" "+i.message,data:null}}else i={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid constraint name in constraint definition")+" "+i.message,data:null};return i}function p(e){var n=r(e.shift()),i=d(n.charAt(0));if(i.successful){var s=1;while(s0&&i(n)==","&&s.successful)n.shift(),s=g(n),s.successful&&(e.put(u,s.data.name,s.data.value),r(i(n)).length==0&&n.shift());if(s.successful){var f=n.shift();r(f).length==0&&(f=n.shift()),f!=")"?s={successful:!1,message:t.generateExceptionMessage(o,a,"Cannot find matching closing ) in parameter list")+" "+s.message,data:null}:s.data=u}}else s={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid parameter definition")+" "+s.message,data:null}}}else i(n)!==undefined&&i(n)!="@"&&(s={successful:!1,message:t.generateExceptionMessage(o,a,"Unexpected character '"+i(n)+"'"+" after constraint definition")+" "+s.message,data:null});return s}function g(e){var n=y(e);if(n.successful){var r=n.data,i=e.shift();i=="="?(n=b(e),n.successful?n.data={name:r,value:n.data}:n={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid parameter value")+" "+n.message,data:null}):(e.unshift(i),n={successful:!1,message:t.generateExceptionMessage(o,a,"'=' expected after parameter name "+n.message),data:null})}else n={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid parameter name. You might have unmatched parentheses")+" "+n.message,data:null};return n}function y(e){var n=r(e.shift());n.length==0&&(n=e.shift());var i={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid starting character for parameter name. Can only include A-Z, a-z, and _"),data:null};if(typeof n!="undefined"){i=d(n.charAt(0));if(i.successful){var s=1;while(s0&&s.successful&&!u)i(e)=='"'?(u=!0,e.shift()):(s=k(e),r+=s.data);u||(s={successful:!1,message:t.generateExceptionMessage(o,a,"Unterminated string literal"),data:null})}else e.unshift(n),s={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid quoted string"),data:null};return s.successful=s.successful&&u,s.data=r,s}function k(e){var t="",n=e.shift();return n=="\\"&&(t=e.shift()),{successful:!0,message:"",data:n+t}}function L(e){var n="",r=e.shift(),s={successful:!0,message:"",data:null};if(r=="/"){n=r;var u=!1;while(e.length>0&&s.successful&&!u)i(e)=="/"?(n+=e.shift(),u=!0):(s=k(e),n+=s.data);u||(s={successful:!1,message:t.generateExceptionMessage(o,a,"Unterminated regex literal"),data:null})}else e.unshift(r),s={successful:!1,message:t.generateExceptionMessage(o,a,"Not a regular expression"),data:null};return s.successful=s.successful&&u,s.data=n,s}function A(e){var n=e.shift(),i={successful:!0,message:"",data:null};return r(n)=="true"||r(n)=="false"?i={successful:!0,message:"",data:n==="true"}:(e.unshift(n),i={successful:!1,message:t.generateExceptionMessage(o,a,"Not a boolean"),data:null}),i}function O(e){var n=[],s=e.shift(),u={successful:!0,message:"",data:null};if(s=="["){r(i(e)).length==0&&e.shift(),i(e)=="]"?u={successful:!0,message:"",data:""}:u=M(e);if(u.successful){n.push(u.data),r(i(e)).length==0&&e.shift();while(e.length>0&&i(e)==","&&u.successful)e.shift(),u=M(e),n.push(u.data),r(i(e)).length==0&&e.shift();u.data=n,s=e.shift(),r(s).length==0&&e.shift(),s!="]"&&(u={successful:!1,message:t.generateExceptionMessage(o,a,"Cannot find matching closing ] in group definition")+" "+u.message,data:null})}else u={successful:!1,message:t.generateExceptionMessage(o,a,"Invalid group definition")+" "+u.message,data:null}}else e.unshift(s),u={successful:!1,message:t.generateExceptionMessage(o,a,"Not a valid group definition"),data:null};return u}function M(e){var n={successful:!0,message:"",data:""},i=r(e.shift());i.length==0&&(i=e.shift()),n=d(i.charAt(0));if(n.successful){var s=1;while(s0){var o=0;while(o0?h=t.deletedGroupIndices.pop():h=t.firstCustomGroupIndex++,t.Group[c]=h,t.ReverseGroup[h]=c,o[c]={}}o[c][n.id]||(o[c][n.id]={}),o[c][n.id][r]=u}if(i.constraintDefinitions[r].html5)if(n.getAttribute("type")!==null&&i.constraintDefinitions[r].inputType!==null&&n.getAttribute("type")!==i.constraintDefinitions[r].inputType)a={successful:!1,message:s.generateExceptionMessage(n,r,"Element type of "+n.getAttribute("type")+" conflicts with type of constraint @"+r+": "+i.constraintDefinitions[r].inputType),data:null};else{var p=i.constraintDefinitions[r].attribute,d=i.constraintDefinitions[r].inputType;(p!==null&&n.getAttribute(p)===null||d!==null&&n.getAttribute("type")===null)&&y(n,r,u)}return a}function y(e,t,n){if(t===i.ReverseConstraint[i.Constraint.HTML5Required])e.setAttribute("required","true");else{var r=i.constraintDefinitions[t];for(var s=0;s0&&!t)throw new s.Exception.IllegalArgumentException("Element with id "+r+" does not have any constraints bound to it. "+s.explodeParameters(e))}function w(e){var n=e.elementId,r=e.group,s=e.constraint,u=typeof o[t.ReverseGroup[t.Group.Default]][n]!="undefined";if(u&&typeof r!="undefined"&&typeof s=="undefined"){var a=t.ReverseGroup[r];u=typeof a!="undefined"&&typeof o[a][n]!="undefined"}else if(u&&typeof r=="undefined"&&typeof s!="undefined"){var f=i.ReverseConstraint[s];u=typeof f!="undefined"&&typeof o[t.ReverseGroup[t.Group.Default]][n][f]!="undefined"}else if(u&&typeof r!="undefined"&&typeof s!="undefined"){var a=t.ReverseGroup[r],f=i.ReverseConstraint[s];u=typeof a!="undefined"&&typeof f!="undefined"&&typeof o[a][n]!="undefined"&&typeof o[a][n][f]!="undefined"}return u}var o=null,u={};return{initializeBoundConstraints:a,resetBoundConstraints:f,getBoundConstraints:l,removeElementAndGroupFromBoundConstraintsIfEmpty:c,bindAfterParsing:p,bindHTML5ValidationConstraints:d,bindFromOptions:v,unbind:b,isBound:w}}),function(e,t){typeof define=="function"&&define.amd?define("regula",["utils/MapUtils","utils/DOMUtils","service/BindingService","service/ExceptionService","service/ConstraintService","service/ValidationService","service/GroupService"],t):(e.regula=t(e.regulaModules.MapUtils,e.regulaModules.DOMUtils,e.regulaModules.BindingService,e.regulaModules.ExceptionService,e.regulaModules.ConstraintService,e.regulaModules.ValidationService,e.regulaModules.GroupService),e.regula._modules=e.regulaModules,e.regulaModules=undefined)}(this,function(e,t,n,r,i,s,o){function f(t){e.iterateOverMap(t,function(e,t,n){typeof u[e]!="undefined"&&(u[e]=t)})}function l(e){var i={successful:!0,message:"",data:null};if(typeof e=="undefined"||!e)n.resetBoundConstraints(),u.enableHTML5Validation&&t.supportsHTML5Validation()&&(i=n.bindHTML5ValidationConstraints({element:null})),i.successful&&(i=n.bindAfterParsing({element:null}));else{var s=e.elements;if(typeof s=="undefined"||!s)u.enableHTML5Validation&&t.supportsHTML5Validation()&&typeof e.element!="undefined"&&e.element!==null&&(i=n.bindHTML5ValidationConstraints({element:e.element})),i.successful&&(i=n.bindFromOptions(e));else{var o=0;while(i.successful&&o0&&n.extend(!0,t,{elements:this.get()})),regula.bind(t),this},unbind:function(t){return this instanceof e&&(t||(t={}),this.get().length>0&&n.extend(!0,t,{elements:this.get()})),regula.unbind(t),this},isBound:function(t){return this instanceof e&&(t||(t={}),this.get().length>0&&n.extend(!0,t,{element:this.get(0)})),regula.isBound(t),this},validate:function(t){return this instanceof e&&(t||(t={}),this.get().length>0&&n.extend(!0,t,{elements:this.get()})),regula.validate(t)},custom:function(e){return regula.custom(e),this},compound:function(e){return regula.compound(e),this},override:function(e){return regula.override(e),this}};i.on=i.bind,i.off=i.unbind,n.fn.regula=t,n.regula=t}); + + +/** + * @module jQuery Count To + * @author Matt Huggins + * @see https://github.com/mhuggins/jquery-countTo + * @license MIT + */ +!function(t){function e(t,e){return t.toFixed(e.decimals)}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,this.dataOptions(),i),this.init()};o.DEFAULTS={from:0,to:0,speed:1e3,refreshInterval:100,decimals:0,formatter:e,onUpdate:null,onComplete:null},o.prototype.init=function(){this.value=this.options.from,this.loops=Math.ceil(this.options.speed/this.options.refreshInterval),this.loopCount=0,this.increment=(this.options.to-this.options.from)/this.loops},o.prototype.dataOptions=function(){var t={from:this.$element.data("from"),to:this.$element.data("to"),speed:this.$element.data("speed"),refreshInterval:this.$element.data("refresh-interval"),decimals:this.$element.data("decimals")},e=Object.keys(t);for(var o in e){var i=e[o];"undefined"==typeof t[i]&&delete t[i]}return t},o.prototype.update=function(){this.value+=this.increment,this.loopCount++,this.render(),"function"==typeof this.options.onUpdate&&this.options.onUpdate.call(this.$element,this.value),this.loopCount>=this.loops&&(clearInterval(this.interval),this.value=this.options.to,"function"==typeof this.options.onComplete&&this.options.onComplete.call(this.$element,this.value))},o.prototype.render=function(){var t=this.options.formatter.call(this.$element,this.value,this.options);this.$element.text(t)},o.prototype.restart=function(){this.stop(),this.init(),this.start()},o.prototype.start=function(){this.stop(),this.render(),this.interval=setInterval(this.update.bind(this),this.options.refreshInterval)},o.prototype.stop=function(){this.interval&&clearInterval(this.interval)},o.prototype.toggle=function(){this.interval?this.stop():this.start()},t.fn.countTo=function(e){return this.each(function(){var i=t(this),n=i.data("countTo"),s=!n||"object"==typeof e,r="object"==typeof e?e:{},a="string"==typeof e?e:"start";s&&(n&&n.stop(),i.data("countTo",n=new o(this,r))),n[a].call(n)})}}(jQuery); + + +/** + * @module Swiper + * @description Most modern mobile touch slider and framework with hardware accelerated transitions + * @author Vladimir Kharlampidi + * @see http://www.idangero.us/swiper/ + * @licesne MIT + * @version 3.4.2 + */ +!function(){"use strict";var e,a=function(t,s){function r(e){return Math.floor(e)}function i(){var e=y.params.autoplay,a=y.slides.eq(y.activeIndex);a.attr("data-swiper-autoplay")&&(e=a.attr("data-swiper-autoplay")||y.params.autoplay),y.autoplayTimeoutId=setTimeout(function(){y.params.loop?(y.fixLoop(),y._slideNext(),y.emit("onAutoplay",y)):y.isEnd?s.autoplayStopOnLast?y.stopAutoplay():(y._slideTo(0),y.emit("onAutoplay",y)):(y._slideNext(),y.emit("onAutoplay",y))},e)}function n(a,t){var s=e(a.target);if(!s.is(t))if("string"==typeof t)s=s.parents(t);else if(t.nodeType){var r;return s.parents().each(function(e,a){a===t&&(r=t)}),r?t:void 0}if(0!==s.length)return s[0]}function o(e,a){a=a||{};var t=new(window.MutationObserver||window.WebkitMutationObserver)(function(e){e.forEach(function(e){y.onResize(!0),y.emit("onObserverUpdate",y,e)})});t.observe(e,{attributes:void 0===a.attributes||a.attributes,childList:void 0===a.childList||a.childList,characterData:void 0===a.characterData||a.characterData}),y.observers.push(t)}function l(e){e.originalEvent&&(e=e.originalEvent);var a=e.keyCode||e.charCode;if(!y.params.allowSwipeToNext&&(y.isHorizontal()&&39===a||!y.isHorizontal()&&40===a))return!1;if(!y.params.allowSwipeToPrev&&(y.isHorizontal()&&37===a||!y.isHorizontal()&&38===a))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===a||39===a||38===a||40===a){var t=!1;if(y.container.parents("."+y.params.slideClass).length>0&&0===y.container.parents("."+y.params.slideActiveClass).length)return;var s={left:window.pageXOffset,top:window.pageYOffset},r=window.innerWidth,i=window.innerHeight,n=y.container.offset();y.rtl&&(n.left=n.left-y.container[0].scrollLeft);for(var o=[[n.left,n.top],[n.left+y.width,n.top],[n.left,n.top+y.height],[n.left+y.width,n.top+y.height]],l=0;l=s.left&&p[0]<=s.left+r&&p[1]>=s.top&&p[1]<=s.top+i&&(t=!0)}if(!t)return}y.isHorizontal()?(37!==a&&39!==a||(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===a&&!y.rtl||37===a&&y.rtl)&&y.slideNext(),(37===a&&!y.rtl||39===a&&y.rtl)&&y.slidePrev()):(38!==a&&40!==a||(e.preventDefault?e.preventDefault():e.returnValue=!1),40===a&&y.slideNext(),38===a&&y.slidePrev()),y.emit("onKeyPress",y,a)}}function p(e){var a=0,t=0,s=0,r=0;return"detail"in e&&(t=e.detail),"wheelDelta"in e&&(t=-e.wheelDelta/120),"wheelDeltaY"in e&&(t=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(a=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(a=t,t=0),s=10*a,r=10*t,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(s=e.deltaX),(s||r)&&e.deltaMode&&(1===e.deltaMode?(s*=40,r*=40):(s*=800,r*=800)),s&&!a&&(a=s<1?-1:1),r&&!t&&(t=r<1?-1:1),{spinX:a,spinY:t,pixelX:s,pixelY:r}}function d(e){e.originalEvent&&(e=e.originalEvent);var a=0,t=y.rtl?-1:1,s=p(e);if(y.params.mousewheelForceToAxis)if(y.isHorizontal()){if(!(Math.abs(s.pixelX)>Math.abs(s.pixelY)))return;a=s.pixelX*t}else{if(!(Math.abs(s.pixelY)>Math.abs(s.pixelX)))return;a=s.pixelY}else a=Math.abs(s.pixelX)>Math.abs(s.pixelY)?-s.pixelX*t:-s.pixelY;if(0!==a){if(y.params.mousewheelInvert&&(a=-a),y.params.freeMode){var r=y.getWrapperTranslate()+a*y.params.mousewheelSensitivity,i=y.isBeginning,n=y.isEnd;if(r>=y.minTranslate()&&(r=y.minTranslate()),r<=y.maxTranslate()&&(r=y.maxTranslate()),y.setWrapperTransition(0),y.setWrapperTranslate(r),y.updateProgress(),y.updateActiveIndex(),(!i&&y.isBeginning||!n&&y.isEnd)&&y.updateClasses(),y.params.freeModeSticky?(clearTimeout(y.mousewheel.timeout),y.mousewheel.timeout=setTimeout(function(){y.slideReset()},300)):y.params.lazyLoading&&y.lazy&&y.lazy.load(),y.emit("onScroll",y,e),y.params.autoplay&&y.params.autoplayDisableOnInteraction&&y.stopAutoplay(),0===r||r===y.maxTranslate())return}else{if((new window.Date).getTime()-y.mousewheel.lastScrollTime>60)if(a<0)if(y.isEnd&&!y.params.loop||y.animating){if(y.params.mousewheelReleaseOnEdges)return!0}else y.slideNext(),y.emit("onScroll",y,e);else if(y.isBeginning&&!y.params.loop||y.animating){if(y.params.mousewheelReleaseOnEdges)return!0}else y.slidePrev(),y.emit("onScroll",y,e);y.mousewheel.lastScrollTime=(new window.Date).getTime()}return e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function m(a,t){a=e(a);var s,r,i,n=y.rtl?-1:1;s=a.attr("data-swiper-parallax")||"0",r=a.attr("data-swiper-parallax-x"),i=a.attr("data-swiper-parallax-y"),r||i?(r=r||"0",i=i||"0"):y.isHorizontal()?(r=s,i="0"):(i=s,r="0"),r=r.indexOf("%")>=0?parseInt(r,10)*t*n+"%":r*t*n+"px",i=i.indexOf("%")>=0?parseInt(i,10)*t+"%":i*t+"px",a.transform("translate3d("+r+", "+i+",0px)")}function u(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}if(!(this instanceof a))return new a(t,s);var c={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,autoplayStopOnLast:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},flip:{slideShadows:!0,limitRotation:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,zoom:!1,zoomMax:3,zoomMin:1,zoomToggle:!0,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,mousewheelEventsTarged:"container",hashnav:!1,hashnavWatchState:!1,history:!1,replaceState:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,uniqueNavElements:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,paginationProgressRender:null,paginationFractionRender:null,paginationCustomRender:null,paginationType:"bullets",resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingInPrevNextAmount:1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",normalizeSlideIndex:!0,allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationCurrentClass:"swiper-pagination-current",paginationTotalClass:"swiper-pagination-total",paginationHiddenClass:"swiper-pagination-hidden",paginationProgressbarClass:"swiper-pagination-progressbar",paginationClickableClass:"swiper-pagination-clickable",paginationModifierClass:"swiper-pagination-",lazyLoadingClass:"swiper-lazy",lazyStatusLoadingClass:"swiper-lazy-loading",lazyStatusLoadedClass:"swiper-lazy-loaded",lazyPreloaderClass:"swiper-lazy-preloader",notificationClass:"swiper-notification",preloaderClass:"preloader",zoomContainerClass:"swiper-zoom-container",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},g=s&&s.virtualTranslate;s=s||{};var h={};for(var v in s)if("object"!=typeof s[v]||null===s[v]||s[v].nodeType||s[v]===window||s[v]===document||"undefined"!=typeof Dom7&&s[v]instanceof Dom7||"undefined"!=typeof jQuery&&s[v]instanceof jQuery)h[v]=s[v];else{h[v]={};for(var f in s[v])h[v][f]=s[v][f]}for(var w in c)if(void 0===s[w])s[w]=c[w];else if("object"==typeof s[w])for(var x in c[w])void 0===s[w][x]&&(s[w][x]=c[w][x]);var y=this;if(y.params=s,y.originalParams=h,y.classNames=[],void 0!==e&&"undefined"!=typeof Dom7&&(e=Dom7),(void 0!==e||(e="undefined"==typeof Dom7?window.Dom7||window.Zepto||window.jQuery:Dom7))&&(y.$=e,y.currentBreakpoint=void 0,y.getActiveBreakpoint=function(){if(!y.params.breakpoints)return!1;var e,a=!1,t=[];for(e in y.params.breakpoints)y.params.breakpoints.hasOwnProperty(e)&&t.push(e);t.sort(function(e,a){return parseInt(e,10)>parseInt(a,10)});for(var s=0;s=window.innerWidth&&!a&&(a=e);return a||"max"},y.setBreakpoint=function(){var e=y.getActiveBreakpoint();if(e&&y.currentBreakpoint!==e){var a=e in y.params.breakpoints?y.params.breakpoints[e]:y.originalParams,t=y.params.loop&&a.slidesPerView!==y.params.slidesPerView;for(var s in a)y.params[s]=a[s];y.currentBreakpoint=e,t&&y.destroyLoop&&y.reLoop(!0)}},y.params.breakpoints&&y.setBreakpoint(),y.container=e(t),0!==y.container.length)){if(y.container.length>1){var T=[];return y.container.each(function(){T.push(new a(this,s))}),T}y.container[0].swiper=y,y.container.data("swiper",y),y.classNames.push(y.params.containerModifierClass+y.params.direction),y.params.freeMode&&y.classNames.push(y.params.containerModifierClass+"free-mode"),y.support.flexbox||(y.classNames.push(y.params.containerModifierClass+"no-flexbox"),y.params.slidesPerColumn=1),y.params.autoHeight&&y.classNames.push(y.params.containerModifierClass+"autoheight"),(y.params.parallax||y.params.watchSlidesVisibility)&&(y.params.watchSlidesProgress=!0),y.params.touchReleaseOnEdges&&(y.params.resistanceRatio=0),["cube","coverflow","flip"].indexOf(y.params.effect)>=0&&(y.support.transforms3d?(y.params.watchSlidesProgress=!0,y.classNames.push(y.params.containerModifierClass+"3d")):y.params.effect="slide"),"slide"!==y.params.effect&&y.classNames.push(y.params.containerModifierClass+y.params.effect),"cube"===y.params.effect&&(y.params.resistanceRatio=0,y.params.slidesPerView=1,y.params.slidesPerColumn=1,y.params.slidesPerGroup=1,y.params.centeredSlides=!1,y.params.spaceBetween=0,y.params.virtualTranslate=!0),"fade"!==y.params.effect&&"flip"!==y.params.effect||(y.params.slidesPerView=1,y.params.slidesPerColumn=1,y.params.slidesPerGroup=1,y.params.watchSlidesProgress=!0,y.params.spaceBetween=0,void 0===g&&(y.params.virtualTranslate=!0)),y.params.grabCursor&&y.support.touch&&(y.params.grabCursor=!1),y.wrapper=y.container.children("."+y.params.wrapperClass),y.params.pagination&&(y.paginationContainer=e(y.params.pagination),y.params.uniqueNavElements&&"string"==typeof y.params.pagination&&y.paginationContainer.length>1&&1===y.container.find(y.params.pagination).length&&(y.paginationContainer=y.container.find(y.params.pagination)),"bullets"===y.params.paginationType&&y.params.paginationClickable?y.paginationContainer.addClass(y.params.paginationModifierClass+"clickable"):y.params.paginationClickable=!1,y.paginationContainer.addClass(y.params.paginationModifierClass+y.params.paginationType)),(y.params.nextButton||y.params.prevButton)&&(y.params.nextButton&&(y.nextButton=e(y.params.nextButton),y.params.uniqueNavElements&&"string"==typeof y.params.nextButton&&y.nextButton.length>1&&1===y.container.find(y.params.nextButton).length&&(y.nextButton=y.container.find(y.params.nextButton))),y.params.prevButton&&(y.prevButton=e(y.params.prevButton),y.params.uniqueNavElements&&"string"==typeof y.params.prevButton&&y.prevButton.length>1&&1===y.container.find(y.params.prevButton).length&&(y.prevButton=y.container.find(y.params.prevButton)))),y.isHorizontal=function(){return"horizontal"===y.params.direction},y.rtl=y.isHorizontal()&&("rtl"===y.container[0].dir.toLowerCase()||"rtl"===y.container.css("direction")),y.rtl&&y.classNames.push(y.params.containerModifierClass+"rtl"),y.rtl&&(y.wrongRTL="-webkit-box"===y.wrapper.css("display")),y.params.slidesPerColumn>1&&y.classNames.push(y.params.containerModifierClass+"multirow"),y.device.android&&y.classNames.push(y.params.containerModifierClass+"android"),y.container.addClass(y.classNames.join(" ")),y.translate=0,y.progress=0,y.velocity=0,y.lockSwipeToNext=function(){y.params.allowSwipeToNext=!1,!1===y.params.allowSwipeToPrev&&y.params.grabCursor&&y.unsetGrabCursor()},y.lockSwipeToPrev=function(){y.params.allowSwipeToPrev=!1,!1===y.params.allowSwipeToNext&&y.params.grabCursor&&y.unsetGrabCursor()},y.lockSwipes=function(){y.params.allowSwipeToNext=y.params.allowSwipeToPrev=!1,y.params.grabCursor&&y.unsetGrabCursor()},y.unlockSwipeToNext=function(){y.params.allowSwipeToNext=!0,!0===y.params.allowSwipeToPrev&&y.params.grabCursor&&y.setGrabCursor()},y.unlockSwipeToPrev=function(){y.params.allowSwipeToPrev=!0,!0===y.params.allowSwipeToNext&&y.params.grabCursor&&y.setGrabCursor()},y.unlockSwipes=function(){y.params.allowSwipeToNext=y.params.allowSwipeToPrev=!0,y.params.grabCursor&&y.setGrabCursor()},y.setGrabCursor=function(e){y.container[0].style.cursor="move",y.container[0].style.cursor=e?"-webkit-grabbing":"-webkit-grab",y.container[0].style.cursor=e?"-moz-grabbin":"-moz-grab",y.container[0].style.cursor=e?"grabbing":"grab"},y.unsetGrabCursor=function(){y.container[0].style.cursor=""},y.params.grabCursor&&y.setGrabCursor(),y.imagesToLoad=[],y.imagesLoaded=0,y.loadImage=function(e,a,t,s,r,i){function n(){i&&i()}var o;e.complete&&r?n():a?(o=new window.Image,o.onload=n,o.onerror=n,s&&(o.sizes=s),t&&(o.srcset=t),a&&(o.src=a)):n()},y.preloadImages=function(){y.imagesToLoad=y.container.find("img");for(var e=0;e1)for(e=0;ey.slides.length)break;a.push(y.slides.eq(s)[0])}else a.push(y.slides.eq(y.activeIndex)[0]);for(e=0;et?r:t}t&&y.wrapper.css("height",t+"px")},y.updateContainerSize=function(){var e,a;e=void 0!==y.params.width?y.params.width:y.container[0].clientWidth,a=void 0!==y.params.height?y.params.height:y.container[0].clientHeight,0===e&&y.isHorizontal()||0===a&&!y.isHorizontal()||(e=e-parseInt(y.container.css("padding-left"),10)-parseInt(y.container.css("padding-right"),10),a=a-parseInt(y.container.css("padding-top"),10)-parseInt(y.container.css("padding-bottom"),10),y.width=e,y.height=a,y.size=y.isHorizontal()?y.width:y.height)},y.updateSlidesSize=function(){y.slides=y.wrapper.children("."+y.params.slideClass),y.snapGrid=[],y.slidesGrid=[],y.slidesSizesGrid=[];var e,a=y.params.spaceBetween,t=-y.params.slidesOffsetBefore,s=0,i=0;if(void 0!==y.size){"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(a.replace("%",""))/100*y.size),y.virtualSize=-a,y.rtl?y.slides.css({marginLeft:"",marginTop:""}):y.slides.css({marginRight:"",marginBottom:""});var n;y.params.slidesPerColumn>1&&(n=Math.floor(y.slides.length/y.params.slidesPerColumn)===y.slides.length/y.params.slidesPerColumn?y.slides.length:Math.ceil(y.slides.length/y.params.slidesPerColumn)*y.params.slidesPerColumn,"auto"!==y.params.slidesPerView&&"row"===y.params.slidesPerColumnFill&&(n=Math.max(n,y.params.slidesPerView*y.params.slidesPerColumn)));var o,l=y.params.slidesPerColumn,p=n/l,d=p-(y.params.slidesPerColumn*p-y.slides.length);for(e=0;e1){var u,c,g;"column"===y.params.slidesPerColumnFill?(c=Math.floor(e/l),g=e-c*l,(c>d||c===d&&g===l-1)&&++g>=l&&(g=0,c++),u=c+g*n/l,m.css({"-webkit-box-ordinal-group":u,"-moz-box-ordinal-group":u,"-ms-flex-order":u,"-webkit-order":u,order:u})):(g=Math.floor(e/p),c=e-g*p),m.css("margin-"+(y.isHorizontal()?"top":"left"),0!==g&&y.params.spaceBetween&&y.params.spaceBetween+"px").attr("data-swiper-column",c).attr("data-swiper-row",g)}"none"!==m.css("display")&&("auto"===y.params.slidesPerView?(o=y.isHorizontal()?m.outerWidth(!0):m.outerHeight(!0),y.params.roundLengths&&(o=r(o))):(o=(y.size-(y.params.slidesPerView-1)*a)/y.params.slidesPerView,y.params.roundLengths&&(o=r(o)),y.isHorizontal()?y.slides[e].style.width=o+"px":y.slides[e].style.height=o+"px"),y.slides[e].swiperSlideSize=o,y.slidesSizesGrid.push(o),y.params.centeredSlides?(t=t+o/2+s/2+a,0===s&&0!==e&&(t=t-y.size/2-a),0===e&&(t=t-y.size/2-a),Math.abs(t)<.001&&(t=0),i%y.params.slidesPerGroup==0&&y.snapGrid.push(t),y.slidesGrid.push(t)):(i%y.params.slidesPerGroup==0&&y.snapGrid.push(t),y.slidesGrid.push(t),t=t+o+a),y.virtualSize+=o+a,s=o,i++)}y.virtualSize=Math.max(y.virtualSize,y.size)+y.params.slidesOffsetAfter;var h;if(y.rtl&&y.wrongRTL&&("slide"===y.params.effect||"coverflow"===y.params.effect)&&y.wrapper.css({width:y.virtualSize+y.params.spaceBetween+"px"}),y.support.flexbox&&!y.params.setWrapperSize||(y.isHorizontal()?y.wrapper.css({width:y.virtualSize+y.params.spaceBetween+"px"}):y.wrapper.css({height:y.virtualSize+y.params.spaceBetween+"px"})),y.params.slidesPerColumn>1&&(y.virtualSize=(o+y.params.spaceBetween)*n,y.virtualSize=Math.ceil(y.virtualSize/y.params.slidesPerColumn)-y.params.spaceBetween,y.isHorizontal()?y.wrapper.css({width:y.virtualSize+y.params.spaceBetween+"px"}):y.wrapper.css({height:y.virtualSize+y.params.spaceBetween+"px"}),y.params.centeredSlides)){for(h=[],e=0;e1&&y.snapGrid.push(y.virtualSize-y.size)}0===y.snapGrid.length&&(y.snapGrid=[0]),0!==y.params.spaceBetween&&(y.isHorizontal()?y.rtl?y.slides.css({marginLeft:a+"px"}):y.slides.css({marginRight:a+"px"}):y.slides.css({marginBottom:a+"px"})),y.params.watchSlidesProgress&&y.updateSlidesOffset()}},y.updateSlidesOffset=function(){for(var e=0;ey.size&&(s=!0));for(a=y.activeIndex-1;a>=0;a--)y.slides[a]&&!s&&(r+=y.slides[a].swiperSlideSize,t++,r>y.size&&(s=!0))}else for(e=y.activeIndex+1;e=0&&i0&&n<=y.size||i<=0&&n>=y.size)&&y.slides.eq(t).addClass(y.params.slideVisibleClass)}s.progress=y.rtl?-r:r}}},y.updateProgress=function(e){void 0===e&&(e=y.translate||0);var a=y.maxTranslate()-y.minTranslate(),t=y.isBeginning,s=y.isEnd;0===a?(y.progress=0,y.isBeginning=y.isEnd=!0):(y.progress=(e-y.minTranslate())/a,y.isBeginning=y.progress<=0,y.isEnd=y.progress>=1),y.isBeginning&&!t&&y.emit("onReachBeginning",y),y.isEnd&&!s&&y.emit("onReachEnd",y),y.params.watchSlidesProgress&&y.updateSlidesProgress(e),y.emit("onProgress",y,y.progress)},y.updateActiveIndex=function(){var e,a,t,s=y.rtl?y.translate:-y.translate;for(a=0;a=y.slidesGrid[a]&&s=y.slidesGrid[a]&&s=y.slidesGrid[a]&&(e=a);y.params.normalizeSlideIndex&&(e<0||void 0===e)&&(e=0),(t=Math.floor(e/y.params.slidesPerGroup))>=y.snapGrid.length&&(t=y.snapGrid.length-1),e!==y.activeIndex&&(y.snapIndex=t,y.previousIndex=y.activeIndex,y.activeIndex=e,y.updateClasses(),y.updateRealIndex())},y.updateRealIndex=function(){y.realIndex=parseInt(y.slides.eq(y.activeIndex).attr("data-swiper-slide-index")||y.activeIndex,10)},y.updateClasses=function(){y.slides.removeClass(y.params.slideActiveClass+" "+y.params.slideNextClass+" "+y.params.slidePrevClass+" "+y.params.slideDuplicateActiveClass+" "+y.params.slideDuplicateNextClass+" "+y.params.slideDuplicatePrevClass);var a=y.slides.eq(y.activeIndex);a.addClass(y.params.slideActiveClass),s.loop&&(a.hasClass(y.params.slideDuplicateClass)?y.wrapper.children("."+y.params.slideClass+":not(."+y.params.slideDuplicateClass+')[data-swiper-slide-index="'+y.realIndex+'"]').addClass(y.params.slideDuplicateActiveClass):y.wrapper.children("."+y.params.slideClass+"."+y.params.slideDuplicateClass+'[data-swiper-slide-index="'+y.realIndex+'"]').addClass(y.params.slideDuplicateActiveClass));var t=a.next("."+y.params.slideClass).addClass(y.params.slideNextClass);y.params.loop&&0===t.length&&(t=y.slides.eq(0)).addClass(y.params.slideNextClass);var r=a.prev("."+y.params.slideClass).addClass(y.params.slidePrevClass);if(y.params.loop&&0===r.length&&(r=y.slides.eq(-1)).addClass(y.params.slidePrevClass),s.loop&&(t.hasClass(y.params.slideDuplicateClass)?y.wrapper.children("."+y.params.slideClass+":not(."+y.params.slideDuplicateClass+')[data-swiper-slide-index="'+t.attr("data-swiper-slide-index")+'"]').addClass(y.params.slideDuplicateNextClass):y.wrapper.children("."+y.params.slideClass+"."+y.params.slideDuplicateClass+'[data-swiper-slide-index="'+t.attr("data-swiper-slide-index")+'"]').addClass(y.params.slideDuplicateNextClass),r.hasClass(y.params.slideDuplicateClass)?y.wrapper.children("."+y.params.slideClass+":not(."+y.params.slideDuplicateClass+')[data-swiper-slide-index="'+r.attr("data-swiper-slide-index")+'"]').addClass(y.params.slideDuplicatePrevClass):y.wrapper.children("."+y.params.slideClass+"."+y.params.slideDuplicateClass+'[data-swiper-slide-index="'+r.attr("data-swiper-slide-index")+'"]').addClass(y.params.slideDuplicatePrevClass)),y.paginationContainer&&y.paginationContainer.length>0){var i,n=y.params.loop?Math.ceil((y.slides.length-2*y.loopedSlides)/y.params.slidesPerGroup):y.snapGrid.length;if(y.params.loop?((i=Math.ceil((y.activeIndex-y.loopedSlides)/y.params.slidesPerGroup))>y.slides.length-1-2*y.loopedSlides&&(i-=y.slides.length-2*y.loopedSlides),i>n-1&&(i-=n),i<0&&"bullets"!==y.params.paginationType&&(i=n+i)):i=void 0!==y.snapIndex?y.snapIndex:y.activeIndex||0,"bullets"===y.params.paginationType&&y.bullets&&y.bullets.length>0&&(y.bullets.removeClass(y.params.bulletActiveClass),y.paginationContainer.length>1?y.bullets.each(function(){e(this).index()===i&&e(this).addClass(y.params.bulletActiveClass)}):y.bullets.eq(i).addClass(y.params.bulletActiveClass)),"fraction"===y.params.paginationType&&(y.paginationContainer.find("."+y.params.paginationCurrentClass).text(i+1),y.paginationContainer.find("."+y.params.paginationTotalClass).text(n)),"progress"===y.params.paginationType){var o=(i+1)/n,l=o,p=1;y.isHorizontal()||(p=o,l=1),y.paginationContainer.find("."+y.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX("+l+") scaleY("+p+")").transition(y.params.speed)}"custom"===y.params.paginationType&&y.params.paginationCustomRender&&(y.paginationContainer.html(y.params.paginationCustomRender(y,i+1,n)),y.emit("onPaginationRendered",y,y.paginationContainer[0]))}y.params.loop||(y.params.prevButton&&y.prevButton&&y.prevButton.length>0&&(y.isBeginning?(y.prevButton.addClass(y.params.buttonDisabledClass),y.params.a11y&&y.a11y&&y.a11y.disable(y.prevButton)):(y.prevButton.removeClass(y.params.buttonDisabledClass),y.params.a11y&&y.a11y&&y.a11y.enable(y.prevButton))),y.params.nextButton&&y.nextButton&&y.nextButton.length>0&&(y.isEnd?(y.nextButton.addClass(y.params.buttonDisabledClass),y.params.a11y&&y.a11y&&y.a11y.disable(y.nextButton)):(y.nextButton.removeClass(y.params.buttonDisabledClass),y.params.a11y&&y.a11y&&y.a11y.enable(y.nextButton))))},y.updatePagination=function(){if(y.params.pagination&&y.paginationContainer&&y.paginationContainer.length>0){var e="";if("bullets"===y.params.paginationType){for(var a=y.params.loop?Math.ceil((y.slides.length-2*y.loopedSlides)/y.params.slidesPerGroup):y.snapGrid.length,t=0;t";y.paginationContainer.html(e),y.bullets=y.paginationContainer.find("."+y.params.bulletClass),y.params.paginationClickable&&y.params.a11y&&y.a11y&&y.a11y.initPagination()}"fraction"===y.params.paginationType&&(e=y.params.paginationFractionRender?y.params.paginationFractionRender(y,y.params.paginationCurrentClass,y.params.paginationTotalClass):' / ',y.paginationContainer.html(e)),"progress"===y.params.paginationType&&(e=y.params.paginationProgressRender?y.params.paginationProgressRender(y,y.params.paginationProgressbarClass):'',y.paginationContainer.html(e)),"custom"!==y.params.paginationType&&y.emit("onPaginationRendered",y,y.paginationContainer[0])}},y.update=function(e){function a(){y.rtl,y.translate,t=Math.min(Math.max(y.translate,y.maxTranslate()),y.minTranslate()),y.setWrapperTranslate(t),y.updateActiveIndex(),y.updateClasses()}if(y){y.updateContainerSize(),y.updateSlidesSize(),y.updateProgress(),y.updatePagination(),y.updateClasses(),y.params.scrollbar&&y.scrollbar&&y.scrollbar.set();var t;e?(y.controller&&y.controller.spline&&(y.controller.spline=void 0),y.params.freeMode?(a(),y.params.autoHeight&&y.updateAutoHeight()):(("auto"===y.params.slidesPerView||y.params.slidesPerView>1)&&y.isEnd&&!y.params.centeredSlides?y.slideTo(y.slides.length-1,0,!1,!0):y.slideTo(y.activeIndex,0,!1,!0))||a()):y.params.autoHeight&&y.updateAutoHeight()}},y.onResize=function(e){y.params.onBeforeResize&&y.params.onBeforeResize(y),y.params.breakpoints&&y.setBreakpoint();var a=y.params.allowSwipeToPrev,t=y.params.allowSwipeToNext;y.params.allowSwipeToPrev=y.params.allowSwipeToNext=!0,y.updateContainerSize(),y.updateSlidesSize(),("auto"===y.params.slidesPerView||y.params.freeMode||e)&&y.updatePagination(),y.params.scrollbar&&y.scrollbar&&y.scrollbar.set(),y.controller&&y.controller.spline&&(y.controller.spline=void 0);var s=!1;if(y.params.freeMode){var r=Math.min(Math.max(y.translate,y.maxTranslate()),y.minTranslate());y.setWrapperTranslate(r),y.updateActiveIndex(),y.updateClasses(),y.params.autoHeight&&y.updateAutoHeight()}else y.updateClasses(),s=("auto"===y.params.slidesPerView||y.params.slidesPerView>1)&&y.isEnd&&!y.params.centeredSlides?y.slideTo(y.slides.length-1,0,!1,!0):y.slideTo(y.activeIndex,0,!1,!0);y.params.lazyLoading&&!s&&y.lazy&&y.lazy.load(),y.params.allowSwipeToPrev=a,y.params.allowSwipeToNext=t,y.params.onAfterResize&&y.params.onAfterResize(y)},y.touchEventsDesktop={start:"mousedown",move:"mousemove",end:"mouseup"},window.navigator.pointerEnabled?y.touchEventsDesktop={start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled&&(y.touchEventsDesktop={start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}),y.touchEvents={start:y.support.touch||!y.params.simulateTouch?"touchstart":y.touchEventsDesktop.start,move:y.support.touch||!y.params.simulateTouch?"touchmove":y.touchEventsDesktop.move,end:y.support.touch||!y.params.simulateTouch?"touchend":y.touchEventsDesktop.end},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===y.params.touchEventsTarget?y.container:y.wrapper).addClass("swiper-wp8-"+y.params.direction),y.initEvents=function(e){var a=e?"off":"on",t=e?"removeEventListener":"addEventListener",r="container"===y.params.touchEventsTarget?y.container[0]:y.wrapper[0],i=y.support.touch?r:document,n=!!y.params.nested;if(y.browser.ie)r[t](y.touchEvents.start,y.onTouchStart,!1),i[t](y.touchEvents.move,y.onTouchMove,n),i[t](y.touchEvents.end,y.onTouchEnd,!1);else{if(y.support.touch){var o=!("touchstart"!==y.touchEvents.start||!y.support.passiveListener||!y.params.passiveListeners)&&{passive:!0,capture:!1};r[t](y.touchEvents.start,y.onTouchStart,o),r[t](y.touchEvents.move,y.onTouchMove,n),r[t](y.touchEvents.end,y.onTouchEnd,o)}(s.simulateTouch&&!y.device.ios&&!y.device.android||s.simulateTouch&&!y.support.touch&&y.device.ios)&&(r[t]("mousedown",y.onTouchStart,!1),document[t]("mousemove",y.onTouchMove,n),document[t]("mouseup",y.onTouchEnd,!1))}window[t]("resize",y.onResize),y.params.nextButton&&y.nextButton&&y.nextButton.length>0&&(y.nextButton[a]("click",y.onClickNext),y.params.a11y&&y.a11y&&y.nextButton[a]("keydown",y.a11y.onEnterKey)),y.params.prevButton&&y.prevButton&&y.prevButton.length>0&&(y.prevButton[a]("click",y.onClickPrev),y.params.a11y&&y.a11y&&y.prevButton[a]("keydown",y.a11y.onEnterKey)),y.params.pagination&&y.params.paginationClickable&&(y.paginationContainer[a]("click","."+y.params.bulletClass,y.onClickIndex),y.params.a11y&&y.a11y&&y.paginationContainer[a]("keydown","."+y.params.bulletClass,y.a11y.onEnterKey)),(y.params.preventClicks||y.params.preventClicksPropagation)&&r[t]("click",y.preventClicks,!0)},y.attachEvents=function(){y.initEvents()},y.detachEvents=function(){y.initEvents(!0)},y.allowClick=!0,y.preventClicks=function(e){y.allowClick||(y.params.preventClicks&&e.preventDefault(),y.params.preventClicksPropagation&&y.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},y.onClickNext=function(e){e.preventDefault(),y.isEnd&&!y.params.loop||y.slideNext()},y.onClickPrev=function(e){e.preventDefault(),y.isBeginning&&!y.params.loop||y.slidePrev()},y.onClickIndex=function(a){a.preventDefault();var t=e(this).index()*y.params.slidesPerGroup;y.params.loop&&(t+=y.loopedSlides),y.slideTo(t)},y.updateClickedSlide=function(a){var t=n(a,"."+y.params.slideClass),s=!1;if(t)for(var r=0;ry.slides.length-y.loopedSlides+l/2?(y.fixLoop(),o=y.wrapper.children("."+y.params.slideClass+'[data-swiper-slide-index="'+i+'"]:not(.'+y.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function(){y.slideTo(o)},0)):y.slideTo(o):o>y.slides.length-l?(y.fixLoop(),o=y.wrapper.children("."+y.params.slideClass+'[data-swiper-slide-index="'+i+'"]:not(.'+y.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function(){y.slideTo(o)},0)):y.slideTo(o)}else y.slideTo(o)}};var b,C,S,z,M,P,E,I,k,D,L="input, select, textarea, button, video",B=Date.now(),H=[];y.animating=!1,y.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0};var G,X;y.onTouchStart=function(a){if(a.originalEvent&&(a=a.originalEvent),(G="touchstart"===a.type)||!("which"in a)||3!==a.which){if(y.params.noSwiping&&n(a,"."+y.params.noSwipingClass))return void(y.allowClick=!0);if(!y.params.swipeHandler||n(a,y.params.swipeHandler)){var t=y.touches.currentX="touchstart"===a.type?a.targetTouches[0].pageX:a.pageX,s=y.touches.currentY="touchstart"===a.type?a.targetTouches[0].pageY:a.pageY;if(!(y.device.ios&&y.params.iOSEdgeSwipeDetection&&t<=y.params.iOSEdgeSwipeThreshold)){if(b=!0,C=!1,S=!0,M=void 0,X=void 0,y.touches.startX=t,y.touches.startY=s,z=Date.now(),y.allowClick=!0,y.updateContainerSize(),y.swipeDirection=void 0,y.params.threshold>0&&(I=!1),"touchstart"!==a.type){var r=!0;e(a.target).is(L)&&(r=!1),document.activeElement&&e(document.activeElement).is(L)&&document.activeElement.blur(),r&&a.preventDefault()}y.emit("onTouchStart",y,a)}}}},y.onTouchMove=function(a){if(a.originalEvent&&(a=a.originalEvent),!G||"mousemove"!==a.type){if(a.preventedByNestedSwiper)return y.touches.startX="touchmove"===a.type?a.targetTouches[0].pageX:a.pageX,void(y.touches.startY="touchmove"===a.type?a.targetTouches[0].pageY:a.pageY);if(y.params.onlyExternal)return y.allowClick=!1,void(b&&(y.touches.startX=y.touches.currentX="touchmove"===a.type?a.targetTouches[0].pageX:a.pageX,y.touches.startY=y.touches.currentY="touchmove"===a.type?a.targetTouches[0].pageY:a.pageY,z=Date.now()));if(G&&y.params.touchReleaseOnEdges&&!y.params.loop)if(y.isHorizontal()){if(y.touches.currentXy.touches.startX&&y.translate>=y.minTranslate())return}else if(y.touches.currentYy.touches.startY&&y.translate>=y.minTranslate())return;if(G&&document.activeElement&&a.target===document.activeElement&&e(a.target).is(L))return C=!0,void(y.allowClick=!1);if(S&&y.emit("onTouchMove",y,a),!(a.targetTouches&&a.targetTouches.length>1)){if(y.touches.currentX="touchmove"===a.type?a.targetTouches[0].pageX:a.pageX,y.touches.currentY="touchmove"===a.type?a.targetTouches[0].pageY:a.pageY,void 0===M){var t;y.isHorizontal()&&y.touches.currentY===y.touches.startY||!y.isHorizontal()&&y.touches.currentX===y.touches.startX?M=!1:(t=180*Math.atan2(Math.abs(y.touches.currentY-y.touches.startY),Math.abs(y.touches.currentX-y.touches.startX))/Math.PI,M=y.isHorizontal()?t>y.params.touchAngle:90-t>y.params.touchAngle)}if(M&&y.emit("onTouchMoveOpposite",y,a),void 0===X&&(y.touches.currentX===y.touches.startX&&y.touches.currentY===y.touches.startY||(X=!0)),b){if(M)return void(b=!1);if(X){y.allowClick=!1,y.emit("onSliderMove",y,a),a.preventDefault(),y.params.touchMoveStopPropagation&&!y.params.nested&&a.stopPropagation(),C||(s.loop&&y.fixLoop(),E=y.getWrapperTranslate(),y.setWrapperTransition(0),y.animating&&y.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),y.params.autoplay&&y.autoplaying&&(y.params.autoplayDisableOnInteraction?y.stopAutoplay():y.pauseAutoplay()),D=!1,!y.params.grabCursor||!0!==y.params.allowSwipeToNext&&!0!==y.params.allowSwipeToPrev||y.setGrabCursor(!0)),C=!0;var r=y.touches.diff=y.isHorizontal()?y.touches.currentX-y.touches.startX:y.touches.currentY-y.touches.startY;r*=y.params.touchRatio,y.rtl&&(r=-r),y.swipeDirection=r>0?"prev":"next",P=r+E;var i=!0;if(r>0&&P>y.minTranslate()?(i=!1,y.params.resistance&&(P=y.minTranslate()-1+Math.pow(-y.minTranslate()+E+r,y.params.resistanceRatio))):r<0&&PE&&(P=E),y.params.threshold>0){if(!(Math.abs(r)>y.params.threshold||I))return void(P=E);if(!I)return I=!0,y.touches.startX=y.touches.currentX,y.touches.startY=y.touches.currentY,P=E,void(y.touches.diff=y.isHorizontal()?y.touches.currentX-y.touches.startX:y.touches.currentY-y.touches.startY)}y.params.followFinger&&((y.params.freeMode||y.params.watchSlidesProgress)&&y.updateActiveIndex(),y.params.freeMode&&(0===H.length&&H.push({position:y.touches[y.isHorizontal()?"startX":"startY"],time:z}),H.push({position:y.touches[y.isHorizontal()?"currentX":"currentY"],time:(new window.Date).getTime()})),y.updateProgress(P),y.setWrapperTranslate(P))}}}}},y.onTouchEnd=function(a){if(a.originalEvent&&(a=a.originalEvent),S&&y.emit("onTouchEnd",y,a),S=!1,b){y.params.grabCursor&&C&&b&&(!0===y.params.allowSwipeToNext||!0===y.params.allowSwipeToPrev)&&y.setGrabCursor(!1);var t=Date.now(),s=t-z;if(y.allowClick&&(y.updateClickedSlide(a),y.emit("onTap",y,a),s<300&&t-B>300&&(k&&clearTimeout(k),k=setTimeout(function(){y&&(y.params.paginationHide&&y.paginationContainer.length>0&&!e(a.target).hasClass(y.params.bulletClass)&&y.paginationContainer.toggleClass(y.params.paginationHiddenClass),y.emit("onClick",y,a))},300)),s<300&&t-B<300&&(k&&clearTimeout(k),y.emit("onDoubleTap",y,a))),B=Date.now(),setTimeout(function(){y&&(y.allowClick=!0)},0),!b||!C||!y.swipeDirection||0===y.touches.diff||P===E)return void(b=C=!1);b=C=!1;var r;if(r=y.params.followFinger?y.rtl?y.translate:-y.translate:-P,y.params.freeMode){if(r<-y.minTranslate())return void y.slideTo(y.activeIndex);if(r>-y.maxTranslate())return void(y.slides.length1){var i=H.pop(),n=H.pop(),o=i.position-n.position,l=i.time-n.time;y.velocity=o/l,y.velocity=y.velocity/2,Math.abs(y.velocity)150||(new window.Date).getTime()-i.time>300)&&(y.velocity=0)}else y.velocity=0;y.velocity=y.velocity*y.params.freeModeMomentumVelocityRatio,H.length=0;var p=1e3*y.params.freeModeMomentumRatio,d=y.velocity*p,m=y.translate+d;y.rtl&&(m=-m);var u,c=!1,g=20*Math.abs(y.velocity)*y.params.freeModeMomentumBounceRatio;if(my.minTranslate())y.params.freeModeMomentumBounce?(m-y.minTranslate()>g&&(m=y.minTranslate()+g),u=y.minTranslate(),c=!0,D=!0):m=y.minTranslate();else if(y.params.freeModeSticky){var h,v=0;for(v=0;v-m){h=v;break}m=Math.abs(y.snapGrid[h]-m)=y.params.longSwipesMs)&&(y.updateProgress(),y.updateActiveIndex()))}var f,w=0,x=y.slidesSizesGrid[0];for(f=0;f=y.slidesGrid[f]&&r=y.slidesGrid[f]&&(w=f,x=y.slidesGrid[y.slidesGrid.length-1]-y.slidesGrid[y.slidesGrid.length-2]);var T=(r-y.slidesGrid[w])/x;if(s>y.params.longSwipesMs){if(!y.params.longSwipes)return void y.slideTo(y.activeIndex);"next"===y.swipeDirection&&(T>=y.params.longSwipesRatio?y.slideTo(w+y.params.slidesPerGroup):y.slideTo(w)),"prev"===y.swipeDirection&&(T>1-y.params.longSwipesRatio?y.slideTo(w+y.params.slidesPerGroup):y.slideTo(w))}else{if(!y.params.shortSwipes)return void y.slideTo(y.activeIndex);"next"===y.swipeDirection&&y.slideTo(w+y.params.slidesPerGroup),"prev"===y.swipeDirection&&y.slideTo(w)}}},y._slideTo=function(e,a){return y.slideTo(e,a,!0,!0)},y.slideTo=function(e,a,t,s){void 0===t&&(t=!0),void 0===e&&(e=0),e<0&&(e=0),y.snapIndex=Math.floor(e/y.params.slidesPerGroup),y.snapIndex>=y.snapGrid.length&&(y.snapIndex=y.snapGrid.length-1);var r=-y.snapGrid[y.snapIndex];if(y.params.autoplay&&y.autoplaying&&(s||!y.params.autoplayDisableOnInteraction?y.pauseAutoplay(a):y.stopAutoplay()),y.updateProgress(r),y.params.normalizeSlideIndex)for(var i=0;i=Math.floor(100*y.slidesGrid[i])&&(e=i);return!(!y.params.allowSwipeToNext&&ry.translate&&r>y.maxTranslate()&&(y.activeIndex||0)!==e||(void 0===a&&(a=y.params.speed),y.previousIndex=y.activeIndex||0,y.activeIndex=e,y.updateRealIndex(),y.rtl&&-r===y.translate||!y.rtl&&r===y.translate?(y.params.autoHeight&&y.updateAutoHeight(),y.updateClasses(),"slide"!==y.params.effect&&y.setWrapperTranslate(r),1):(y.updateClasses(),y.onTransitionStart(t),0===a||y.browser.lteIE9?(y.setWrapperTranslate(r),y.setWrapperTransition(0),y.onTransitionEnd(t)):(y.setWrapperTranslate(r),y.setWrapperTransition(a),y.animating||(y.animating=!0,y.wrapper.transitionEnd(function(){y&&y.onTransitionEnd(t)}))),0)))},y.onTransitionStart=function(e){void 0===e&&(e=!0),y.params.autoHeight&&y.updateAutoHeight(),y.lazy&&y.lazy.onTransitionStart(),e&&(y.emit("onTransitionStart",y),y.activeIndex!==y.previousIndex&&(y.emit("onSlideChangeStart",y),y.activeIndex>y.previousIndex?y.emit("onSlideNextStart",y):y.emit("onSlidePrevStart",y)))},y.onTransitionEnd=function(e){y.animating=!1,y.setWrapperTransition(0),void 0===e&&(e=!0),y.lazy&&y.lazy.onTransitionEnd(),e&&(y.emit("onTransitionEnd",y),y.activeIndex!==y.previousIndex&&(y.emit("onSlideChangeEnd",y),y.activeIndex>y.previousIndex?y.emit("onSlideNextEnd",y):y.emit("onSlidePrevEnd",y))),y.params.history&&y.history&&y.history.setHistory(y.params.history,y.activeIndex),y.params.hashnav&&y.hashnav&&y.hashnav.setHash()},y.slideNext=function(e,a,t){return y.params.loop?!y.animating&&(y.fixLoop(),y.container[0].clientLeft,y.slideTo(y.activeIndex+y.params.slidesPerGroup,a,e,t)):y.slideTo(y.activeIndex+y.params.slidesPerGroup,a,e,t)},y._slideNext=function(e){return y.slideNext(!0,e,!0)},y.slidePrev=function(e,a,t){return y.params.loop?!y.animating&&(y.fixLoop(),y.container[0].clientLeft,y.slideTo(y.activeIndex-1,a,e,t)):y.slideTo(y.activeIndex-1,a,e,t)},y._slidePrev=function(e){return y.slidePrev(!0,e,!0)},y.slideReset=function(e,a,t){return y.slideTo(y.activeIndex,a,e)},y.disableTouchControl=function(){return y.params.onlyExternal=!0,!0},y.enableTouchControl=function(){return y.params.onlyExternal=!1,!0},y.setWrapperTransition=function(e,a){y.wrapper.transition(e),"slide"!==y.params.effect&&y.effects[y.params.effect]&&y.effects[y.params.effect].setTransition(e),y.params.parallax&&y.parallax&&y.parallax.setTransition(e),y.params.scrollbar&&y.scrollbar&&y.scrollbar.setTransition(e),y.params.control&&y.controller&&y.controller.setTransition(e,a),y.emit("onSetTransition",y,e)},y.setWrapperTranslate=function(e,a,t){var s=0,i=0;y.isHorizontal()?s=y.rtl?-e:e:i=e,y.params.roundLengths&&(s=r(s),i=r(i)),y.params.virtualTranslate||(y.support.transforms3d?y.wrapper.transform("translate3d("+s+"px, "+i+"px, 0px)"):y.wrapper.transform("translate("+s+"px, "+i+"px)")),y.translate=y.isHorizontal()?s:i;var n=y.maxTranslate()-y.minTranslate();(0===n?0:(e-y.minTranslate())/n)!==y.progress&&y.updateProgress(e),a&&y.updateActiveIndex(),"slide"!==y.params.effect&&y.effects[y.params.effect]&&y.effects[y.params.effect].setTranslate(y.translate),y.params.parallax&&y.parallax&&y.parallax.setTranslate(y.translate),y.params.scrollbar&&y.scrollbar&&y.scrollbar.setTranslate(y.translate),y.params.control&&y.controller&&y.controller.setTranslate(y.translate,t),y.emit("onSetTranslate",y,y.translate)},y.getTranslate=function(e,a){var t,s,r,i;return void 0===a&&(a="x"),y.params.virtualTranslate?y.rtl?-y.translate:y.translate:(r=window.getComputedStyle(e,null),window.WebKitCSSMatrix?((s=r.transform||r.webkitTransform).split(",").length>6&&(s=s.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),i=new window.WebKitCSSMatrix("none"===s?"":s)):(i=r.MozTransform||r.OTransform||r.MsTransform||r.msTransform||r.transform||r.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),t=i.toString().split(",")),"x"===a&&(s=window.WebKitCSSMatrix?i.m41:16===t.length?parseFloat(t[12]):parseFloat(t[4])),"y"===a&&(s=window.WebKitCSSMatrix?i.m42:16===t.length?parseFloat(t[13]):parseFloat(t[5])),y.rtl&&s&&(s=-s),s||0)},y.getWrapperTranslate=function(e){return void 0===e&&(e=y.isHorizontal()?"x":"y"),y.getTranslate(y.wrapper[0],e)},y.observers=[],y.initObservers=function(){if(y.params.observeParents)for(var e=y.container.parents(),a=0;aa.length&&(y.loopedSlides=a.length);var t,s=[],r=[];for(a.each(function(t,i){var n=e(this);t=a.length-y.loopedSlides&&s.push(i),n.attr("data-swiper-slide-index",t)}),t=0;t=0;t--)y.wrapper.prepend(e(s[t].cloneNode(!0)).addClass(y.params.slideDuplicateClass))},y.destroyLoop=function(){y.wrapper.children("."+y.params.slideClass+"."+y.params.slideDuplicateClass).remove(),y.slides.removeAttr("data-swiper-slide-index")},y.reLoop=function(e){var a=y.activeIndex-y.loopedSlides;y.destroyLoop(),y.createLoop(),y.updateSlidesSize(),e&&y.slideTo(a+y.loopedSlides,0,!1)},y.fixLoop=function(){var e;y.activeIndex=2*y.loopedSlides||y.activeIndex>y.slides.length-2*y.params.slidesPerView)&&(e=-y.slides.length+y.activeIndex+y.loopedSlides,e+=y.loopedSlides,y.slideTo(e,0,!1,!0))},y.appendSlide=function(e){if(y.params.loop&&y.destroyLoop(),"object"==typeof e&&e.length)for(var a=0;a'),t.append(l)),0===p.length&&(p=e('
    '),t.append(p)),l.length&&(l[0].style.opacity=Math.max(-s,0)),p.length&&(p[0].style.opacity=Math.max(s,0))}t.transform("translate3d("+n+"px, "+o+"px, 0px) rotateX("+i+"deg) rotateY("+r+"deg)")}},setTransition:function(a){if(y.slides.transition(a).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(a),y.params.virtualTranslate&&0!==a){var t=!1;y.slides.eq(y.activeIndex).transitionEnd(function(){if(!t&&y&&e(this).hasClass(y.params.slideActiveClass)){t=!0,y.animating=!1;for(var a=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],s=0;s'),y.wrapper.append(a)),a.css({height:y.width+"px"})):0===(a=y.container.find(".swiper-cube-shadow")).length&&(a=e('
    '),y.container.append(a)));for(var s=0;s-1&&(t=90*s+90*o,y.rtl&&(t=90*-s-90*o)),r.transform(m),y.params.cube.slideShadows){var u=y.isHorizontal()?r.find(".swiper-slide-shadow-left"):r.find(".swiper-slide-shadow-top"),c=y.isHorizontal()?r.find(".swiper-slide-shadow-right"):r.find(".swiper-slide-shadow-bottom");0===u.length&&(u=e('
    '),r.append(u)),0===c.length&&(c=e('
    '),r.append(c)),u.length&&(u[0].style.opacity=Math.max(-o,0)),c.length&&(c[0].style.opacity=Math.max(o,0))}}if(y.wrapper.css({"-webkit-transform-origin":"50% 50% -"+y.size/2+"px","-moz-transform-origin":"50% 50% -"+y.size/2+"px","-ms-transform-origin":"50% 50% -"+y.size/2+"px","transform-origin":"50% 50% -"+y.size/2+"px"}),y.params.cube.shadow)if(y.isHorizontal())a.transform("translate3d(0px, "+(y.width/2+y.params.cube.shadowOffset)+"px, "+-y.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+y.params.cube.shadowScale+")");else{var g=Math.abs(t)-90*Math.floor(Math.abs(t)/90),h=1.5-(Math.sin(2*g*Math.PI/360)/2+Math.cos(2*g*Math.PI/360)/2),v=y.params.cube.shadowScale,f=y.params.cube.shadowScale/h,w=y.params.cube.shadowOffset;a.transform("scale3d("+v+", 1, "+f+") translate3d(0px, "+(y.height/2+w)+"px, "+-y.height/2/f+"px) rotateX(-90deg)")}var x=y.isSafari||y.isUiWebView?-y.size/2:0;y.wrapper.transform("translate3d(0px,0,"+x+"px) rotateX("+(y.isHorizontal()?0:t)+"deg) rotateY("+(y.isHorizontal()?-t:0)+"deg)")},setTransition:function(e){y.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),y.params.cube.shadow&&!y.isHorizontal()&&y.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var a=y.translate,t=y.isHorizontal()?-a+y.width/2:-a+y.height/2,s=y.isHorizontal()?y.params.coverflow.rotate:-y.params.coverflow.rotate,r=y.params.coverflow.depth,i=0,n=y.slides.length;i'),o.append(v)),0===f.length&&(f=e('
    '),o.append(f)),v.length&&(v[0].style.opacity=p>0?p:0),f.length&&(f[0].style.opacity=-p>0?-p:0)}}y.browser.ie&&(y.wrapper[0].style.perspectiveOrigin=t+"px 50%")},setTransition:function(e){y.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},y.lazy={initialImageLoaded:!1,loadImageInSlide:function(a,t){if(void 0!==a&&(void 0===t&&(t=!0),0!==y.slides.length)){var s=y.slides.eq(a),r=s.find("."+y.params.lazyLoadingClass+":not(."+y.params.lazyStatusLoadedClass+"):not(."+y.params.lazyStatusLoadingClass+")");!s.hasClass(y.params.lazyLoadingClass)||s.hasClass(y.params.lazyStatusLoadedClass)||s.hasClass(y.params.lazyStatusLoadingClass)||(r=r.add(s[0])),0!==r.length&&r.each(function(){var a=e(this);a.addClass(y.params.lazyStatusLoadingClass);var r=a.attr("data-background"),i=a.attr("data-src"),n=a.attr("data-srcset"),o=a.attr("data-sizes");y.loadImage(a[0],i||r,n,o,!1,function(){if(void 0!==y&&null!==y&&y){if(r?(a.css("background-image",'url("'+r+'")'),a.removeAttr("data-background")):(n&&(a.attr("srcset",n),a.removeAttr("data-srcset")),o&&(a.attr("sizes",o),a.removeAttr("data-sizes")),i&&(a.attr("src",i),a.removeAttr("data-src"))),a.addClass(y.params.lazyStatusLoadedClass).removeClass(y.params.lazyStatusLoadingClass),s.find("."+y.params.lazyPreloaderClass+", ."+y.params.preloaderClass).remove(),y.params.loop&&t){var e=s.attr("data-swiper-slide-index");if(s.hasClass(y.params.slideDuplicateClass)){var l=y.wrapper.children('[data-swiper-slide-index="'+e+'"]:not(.'+y.params.slideDuplicateClass+")");y.lazy.loadImageInSlide(l.index(),!1)}else{var p=y.wrapper.children("."+y.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');y.lazy.loadImageInSlide(p.index(),!1)}}y.emit("onLazyImageReady",y,s[0],a[0])}}),y.emit("onLazyImageLoad",y,s[0],a[0])})}},load:function(){var a,t=y.params.slidesPerView;if("auto"===t&&(t=0),y.lazy.initialImageLoaded||(y.lazy.initialImageLoaded=!0),y.params.watchSlidesVisibility)y.wrapper.children("."+y.params.slideVisibleClass).each(function(){y.lazy.loadImageInSlide(e(this).index())});else if(t>1)for(a=y.activeIndex;a1||y.params.lazyLoadingInPrevNextAmount&&y.params.lazyLoadingInPrevNextAmount>1){var s=y.params.lazyLoadingInPrevNextAmount,r=t,i=Math.min(y.activeIndex+r+Math.max(s,r),y.slides.length),n=Math.max(y.activeIndex-Math.max(r,s),0);for(a=y.activeIndex+t;a0&&y.lazy.loadImageInSlide(o.index());var l=y.wrapper.children("."+y.params.slidePrevClass);l.length>0&&y.lazy.loadImageInSlide(l.index())}},onTransitionStart:function(){y.params.lazyLoading&&(y.params.lazyLoadingOnTransitionStart||!y.params.lazyLoadingOnTransitionStart&&!y.lazy.initialImageLoaded)&&y.lazy.load()},onTransitionEnd:function(){y.params.lazyLoading&&!y.params.lazyLoadingOnTransitionStart&&y.lazy.load()}},y.scrollbar={isTouched:!1,setDragPosition:function(e){var a=y.scrollbar,t=(y.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-a.track.offset()[y.isHorizontal()?"left":"top"]-a.dragSize/2,s=-y.minTranslate()*a.moveDivider,r=-y.maxTranslate()*a.moveDivider;tr&&(t=r),t=-t/a.moveDivider,y.updateProgress(t),y.setWrapperTranslate(t,!0)},dragStart:function(e){var a=y.scrollbar;a.isTouched=!0,e.preventDefault(),e.stopPropagation(),a.setDragPosition(e),clearTimeout(a.dragTimeout),a.track.transition(0),y.params.scrollbarHide&&a.track.css("opacity",1),y.wrapper.transition(100),a.drag.transition(100),y.emit("onScrollbarDragStart",y)},dragMove:function(e){var a=y.scrollbar;a.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),y.wrapper.transition(0),a.track.transition(0),a.drag.transition(0),y.emit("onScrollbarDragMove",y))},dragEnd:function(e){var a=y.scrollbar;a.isTouched&&(a.isTouched=!1,y.params.scrollbarHide&&(clearTimeout(a.dragTimeout),a.dragTimeout=setTimeout(function(){a.track.css("opacity",0),a.track.transition(400)},1e3)),y.emit("onScrollbarDragEnd",y),y.params.scrollbarSnapOnRelease&&y.slideReset())},draggableEvents:!1!==y.params.simulateTouch||y.support.touch?y.touchEvents:y.touchEventsDesktop,enableDraggable:function(){var a=y.scrollbar,t=y.support.touch?a.track:document;e(a.track).on(a.draggableEvents.start,a.dragStart),e(t).on(a.draggableEvents.move,a.dragMove),e(t).on(a.draggableEvents.end,a.dragEnd)},disableDraggable:function(){var a=y.scrollbar,t=y.support.touch?a.track:document;e(a.track).off(a.draggableEvents.start,a.dragStart),e(t).off(a.draggableEvents.move,a.dragMove),e(t).off(a.draggableEvents.end,a.dragEnd)},set:function(){if(y.params.scrollbar){var a=y.scrollbar;a.track=e(y.params.scrollbar),y.params.uniqueNavElements&&"string"==typeof y.params.scrollbar&&a.track.length>1&&1===y.container.find(y.params.scrollbar).length&&(a.track=y.container.find(y.params.scrollbar)),a.drag=a.track.find(".swiper-scrollbar-drag"),0===a.drag.length&&(a.drag=e('
    '),a.track.append(a.drag)),a.drag[0].style.width="",a.drag[0].style.height="",a.trackSize=y.isHorizontal()?a.track[0].offsetWidth:a.track[0].offsetHeight,a.divider=y.size/y.virtualSize,a.moveDivider=a.divider*(a.trackSize/y.size),a.dragSize=a.trackSize*a.divider,y.isHorizontal()?a.drag[0].style.width=a.dragSize+"px":a.drag[0].style.height=a.dragSize+"px",a.divider>=1?a.track[0].style.display="none":a.track[0].style.display="",y.params.scrollbarHide&&(a.track[0].style.opacity=0)}},setTranslate:function(){if(y.params.scrollbar){var e,a=y.scrollbar,t=(y.translate,a.dragSize);e=(a.trackSize-a.dragSize)*y.progress,y.rtl&&y.isHorizontal()?(e=-e,e>0?(t=a.dragSize-e,e=0):-e+a.dragSize>a.trackSize&&(t=a.trackSize+e)):e<0?(t=a.dragSize+e,e=0):e+a.dragSize>a.trackSize&&(t=a.trackSize-e),y.isHorizontal()?(y.support.transforms3d?a.drag.transform("translate3d("+e+"px, 0, 0)"):a.drag.transform("translateX("+e+"px)"),a.drag[0].style.width=t+"px"):(y.support.transforms3d?a.drag.transform("translate3d(0px, "+e+"px, 0)"):a.drag.transform("translateY("+e+"px)"),a.drag[0].style.height=t+"px"),y.params.scrollbarHide&&(clearTimeout(a.timeout),a.track[0].style.opacity=1,a.timeout=setTimeout(function(){a.track[0].style.opacity=0,a.track.transition(400)},1e3))}},setTransition:function(e){y.params.scrollbar&&y.scrollbar.drag.transition(e)}},y.controller={LinearSpline:function(e,a){var t=function(){var e,a,t;return function(s,r){for(a=-1,e=s.length;e-a>1;)s[t=e+a>>1]<=r?a=t:e=t;return e}}();this.x=e,this.y=a,this.lastIndex=e.length-1;var s,r;this.x.length,this.interpolate=function(e){return e?(r=t(this.x,e),s=r-1,(e-this.x[s])*(this.y[r]-this.y[s])/(this.x[r]-this.x[s])+this.y[s]):0}},getInterpolateFunction:function(e){y.controller.spline||(y.controller.spline=y.params.loop?new y.controller.LinearSpline(y.slidesGrid,e.slidesGrid):new y.controller.LinearSpline(y.snapGrid,e.snapGrid))},setTranslate:function(e,t){function s(a){e=a.rtl&&"horizontal"===a.params.direction?-y.translate:y.translate,"slide"===y.params.controlBy&&(y.controller.getInterpolateFunction(a),i=-y.controller.spline.interpolate(-e)),i&&"container"!==y.params.controlBy||(r=(a.maxTranslate()-a.minTranslate())/(y.maxTranslate()-y.minTranslate()),i=(e-y.minTranslate())*r+a.minTranslate()),y.params.controlInverse&&(i=a.maxTranslate()-i),a.updateProgress(i),a.setWrapperTranslate(i,!1,y),a.updateActiveIndex()}var r,i,n=y.params.control;if(Array.isArray(n))for(var o=0;o-1?"DOMMouseScroll":function(){var e="onwheel"in document;if(!e){var a=document.createElement("div");a.setAttribute("onwheel","return;"),e="function"==typeof a.onwheel}return!e&&document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")&&(e=document.implementation.hasFeature("Events.wheel","3.0")),e}()?"wheel":"mousewheel"),y.disableMousewheelControl=function(){if(!y.mousewheel.event)return!1;var a=y.container;return"container"!==y.params.mousewheelEventsTarged&&(a=e(y.params.mousewheelEventsTarged)),a.off(y.mousewheel.event,d),y.params.mousewheelControl=!1,!0},y.enableMousewheelControl=function(){if(!y.mousewheel.event)return!1;var a=y.container;return"container"!==y.params.mousewheelEventsTarged&&(a=e(y.params.mousewheelEventsTarged)),a.on(y.mousewheel.event,d),y.params.mousewheelControl=!0,!0},y.parallax={setTranslate:function(){y.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){m(this,y.progress)}),y.slides.each(function(){var a=e(this);a.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){m(this,Math.min(Math.max(a[0].progress,-1),1))})})},setTransition:function(a){void 0===a&&(a=y.params.speed),y.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var t=e(this),s=parseInt(t.attr("data-swiper-parallax-duration"),10)||a;0===a&&(s=0),t.transition(s)})}},y.zoom={scale:1,currentScale:1,isScaling:!1,gesture:{slide:void 0,slideWidth:void 0,slideHeight:void 0,image:void 0,imageWrap:void 0,zoomMax:y.params.zoomMax},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0},getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var a=e.targetTouches[0].pageX,t=e.targetTouches[0].pageY,s=e.targetTouches[1].pageX,r=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(s-a,2)+Math.pow(r-t,2))},onGestureStart:function(a){var t=y.zoom;if(!y.support.gestures){if("touchstart"!==a.type||"touchstart"===a.type&&a.targetTouches.length<2)return;t.gesture.scaleStart=t.getDistanceBetweenTouches(a)}t.gesture.slide&&t.gesture.slide.length||(t.gesture.slide=e(this),0===t.gesture.slide.length&&(t.gesture.slide=y.slides.eq(y.activeIndex)),t.gesture.image=t.gesture.slide.find("img, svg, canvas"),t.gesture.imageWrap=t.gesture.image.parent("."+y.params.zoomContainerClass),t.gesture.zoomMax=t.gesture.imageWrap.attr("data-swiper-zoom")||y.params.zoomMax,0!==t.gesture.imageWrap.length)?(t.gesture.image.transition(0),t.isScaling=!0):t.gesture.image=void 0},onGestureChange:function(e){var a=y.zoom;if(!y.support.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;a.gesture.scaleMove=a.getDistanceBetweenTouches(e)}a.gesture.image&&0!==a.gesture.image.length&&(y.support.gestures?a.scale=e.scale*a.currentScale:a.scale=a.gesture.scaleMove/a.gesture.scaleStart*a.currentScale,a.scale>a.gesture.zoomMax&&(a.scale=a.gesture.zoomMax-1+Math.pow(a.scale-a.gesture.zoomMax+1,.5)),a.scalea.image.touchesStart.x)return void(a.image.isTouched=!1);if(!y.isHorizontal()&&Math.floor(a.image.minY)===Math.floor(a.image.startY)&&a.image.touchesCurrent.ya.image.touchesStart.y)return void(a.image.isTouched=!1)}e.preventDefault(),e.stopPropagation(),a.image.isMoved=!0,a.image.currentX=a.image.touchesCurrent.x-a.image.touchesStart.x+a.image.startX,a.image.currentY=a.image.touchesCurrent.y-a.image.touchesStart.y+a.image.startY,a.image.currentXa.image.maxX&&(a.image.currentX=a.image.maxX-1+Math.pow(a.image.currentX-a.image.maxX+1,.8)),a.image.currentYa.image.maxY&&(a.image.currentY=a.image.maxY-1+Math.pow(a.image.currentY-a.image.maxY+1,.8)),a.velocity.prevPositionX||(a.velocity.prevPositionX=a.image.touchesCurrent.x),a.velocity.prevPositionY||(a.velocity.prevPositionY=a.image.touchesCurrent.y),a.velocity.prevTime||(a.velocity.prevTime=Date.now()),a.velocity.x=(a.image.touchesCurrent.x-a.velocity.prevPositionX)/(Date.now()-a.velocity.prevTime)/2,a.velocity.y=(a.image.touchesCurrent.y-a.velocity.prevPositionY)/(Date.now()-a.velocity.prevTime)/2,Math.abs(a.image.touchesCurrent.x-a.velocity.prevPositionX)<2&&(a.velocity.x=0),Math.abs(a.image.touchesCurrent.y-a.velocity.prevPositionY)<2&&(a.velocity.y=0),a.velocity.prevPositionX=a.image.touchesCurrent.x,a.velocity.prevPositionY=a.image.touchesCurrent.y,a.velocity.prevTime=Date.now(),a.gesture.imageWrap.transform("translate3d("+a.image.currentX+"px, "+a.image.currentY+"px,0)")}}},onTouchEnd:function(e,a){var t=e.zoom;if(t.gesture.image&&0!==t.gesture.image.length){if(!t.image.isTouched||!t.image.isMoved)return t.image.isTouched=!1,void(t.image.isMoved=!1);t.image.isTouched=!1,t.image.isMoved=!1;var s=300,r=300,i=t.velocity.x*s,n=t.image.currentX+i,o=t.velocity.y*r,l=t.image.currentY+o;0!==t.velocity.x&&(s=Math.abs((n-t.image.currentX)/t.velocity.x)),0!==t.velocity.y&&(r=Math.abs((l-t.image.currentY)/t.velocity.y));var p=Math.max(s,r);t.image.currentX=n,t.image.currentY=l;var d=t.image.width*t.scale,m=t.image.height*t.scale;t.image.minX=Math.min(t.gesture.slideWidth/2-d/2,0),t.image.maxX=-t.image.minX,t.image.minY=Math.min(t.gesture.slideHeight/2-m/2,0),t.image.maxY=-t.image.minY,t.image.currentX=Math.max(Math.min(t.image.currentX,t.image.maxX),t.image.minX),t.image.currentY=Math.max(Math.min(t.image.currentY,t.image.maxY),t.image.minY),t.gesture.imageWrap.transition(p).transform("translate3d("+t.image.currentX+"px, "+t.image.currentY+"px,0)")}},onTransitionEnd:function(e){var a=e.zoom;a.gesture.slide&&e.previousIndex!==e.activeIndex&&(a.gesture.image.transform("translate3d(0,0,0) scale(1)"),a.gesture.imageWrap.transform("translate3d(0,0,0)"),a.gesture.slide=a.gesture.image=a.gesture.imageWrap=void 0,a.scale=a.currentScale=1)},toggleZoom:function(a,t){var s=a.zoom;if(s.gesture.slide||(s.gesture.slide=a.clickedSlide?e(a.clickedSlide):a.slides.eq(a.activeIndex),s.gesture.image=s.gesture.slide.find("img, svg, canvas"),s.gesture.imageWrap=s.gesture.image.parent("."+a.params.zoomContainerClass)),s.gesture.image&&0!==s.gesture.image.length){var r,i,n,o,l,p,d,m,u,c,g,h,v,f,w,x,y,T;void 0===s.image.touchesStart.x&&t?(r="touchend"===t.type?t.changedTouches[0].pageX:t.pageX,i="touchend"===t.type?t.changedTouches[0].pageY:t.pageY):(r=s.image.touchesStart.x,i=s.image.touchesStart.y),s.scale&&1!==s.scale?(s.scale=s.currentScale=1,s.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"),s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"),s.gesture.slide=void 0):(s.scale=s.currentScale=s.gesture.imageWrap.attr("data-swiper-zoom")||a.params.zoomMax,t?(y=s.gesture.slide[0].offsetWidth,T=s.gesture.slide[0].offsetHeight,n=s.gesture.slide.offset().left,o=s.gesture.slide.offset().top,l=n+y/2-r,p=o+T/2-i,u=s.gesture.image[0].offsetWidth,c=s.gesture.image[0].offsetHeight,g=u*s.scale,h=c*s.scale,v=Math.min(y/2-g/2,0),f=Math.min(T/2-h/2,0),w=-v,x=-f,d=l*s.scale,m=p*s.scale,dw&&(d=w),mx&&(m=x)):(d=0,m=0),s.gesture.imageWrap.transition(300).transform("translate3d("+d+"px, "+m+"px,0)"),s.gesture.image.transition(300).transform("translate3d(0,0,0) scale("+s.scale+")"))}},attachEvents:function(a){var t=a?"off":"on";if(y.params.zoom){var s=(y.slides,!("touchstart"!==y.touchEvents.start||!y.support.passiveListener||!y.params.passiveListeners)&&{passive:!0,capture:!1});y.support.gestures?(y.slides[t]("gesturestart",y.zoom.onGestureStart,s),y.slides[t]("gesturechange",y.zoom.onGestureChange,s),y.slides[t]("gestureend",y.zoom.onGestureEnd,s)):"touchstart"===y.touchEvents.start&&(y.slides[t](y.touchEvents.start,y.zoom.onGestureStart,s),y.slides[t](y.touchEvents.move,y.zoom.onGestureChange,s),y.slides[t](y.touchEvents.end,y.zoom.onGestureEnd,s)),y[t]("touchStart",y.zoom.onTouchStart),y.slides.each(function(a,s){e(s).find("."+y.params.zoomContainerClass).length>0&&e(s)[t](y.touchEvents.move,y.zoom.onTouchMove)}),y[t]("touchEnd",y.zoom.onTouchEnd),y[t]("transitionEnd",y.zoom.onTransitionEnd),y.params.zoomToggle&&y.on("doubleTap",y.zoom.toggleZoom)}},init:function(){y.zoom.attachEvents()},destroy:function(){y.zoom.attachEvents(!0)}},y._plugins=[];for(var Y in y.plugins){var A=y.plugins[Y](y,y.params[Y]);A&&y._plugins.push(A)}return y.callPlugins=function(e){for(var a=0;a'),notify:function(e){var a=y.a11y.liveRegion;0!==a.length&&(a.html(""),a.html(e))},init:function(){y.params.nextButton&&y.nextButton&&y.nextButton.length>0&&(y.a11y.makeFocusable(y.nextButton),y.a11y.addRole(y.nextButton,"button"),y.a11y.addLabel(y.nextButton,y.params.nextSlideMessage)),y.params.prevButton&&y.prevButton&&y.prevButton.length>0&&(y.a11y.makeFocusable(y.prevButton),y.a11y.addRole(y.prevButton,"button"),y.a11y.addLabel(y.prevButton,y.params.prevSlideMessage)),e(y.container).append(y.a11y.liveRegion)},initPagination:function(){y.params.pagination&&y.params.paginationClickable&&y.bullets&&y.bullets.length&&y.bullets.each(function(){var a=e(this);y.a11y.makeFocusable(a),y.a11y.addRole(a,"button"),y.a11y.addLabel(a,y.params.paginationBulletMessage.replace(/{{index}}/,a.index()+1))})},destroy:function(){y.a11y.liveRegion&&y.a11y.liveRegion.length>0&&y.a11y.liveRegion.remove()}},y.init=function(){y.params.loop&&y.createLoop(),y.updateContainerSize(),y.updateSlidesSize(),y.updatePagination(),y.params.scrollbar&&y.scrollbar&&(y.scrollbar.set(),y.params.scrollbarDraggable&&y.scrollbar.enableDraggable()),"slide"!==y.params.effect&&y.effects[y.params.effect]&&(y.params.loop||y.updateProgress(),y.effects[y.params.effect].setTranslate()),y.params.loop?y.slideTo(y.params.initialSlide+y.loopedSlides,0,y.params.runCallbacksOnInit):(y.slideTo(y.params.initialSlide,0,y.params.runCallbacksOnInit),0===y.params.initialSlide&&(y.parallax&&y.params.parallax&&y.parallax.setTranslate(),y.lazy&&y.params.lazyLoading&&(y.lazy.load(),y.lazy.initialImageLoaded=!0))),y.attachEvents(),y.params.observer&&y.support.observer&&y.initObservers(),y.params.preloadImages&&!y.params.lazyLoading&&y.preloadImages(),y.params.zoom&&y.zoom&&y.zoom.init(),y.params.autoplay&&y.startAutoplay(),y.params.keyboardControl&&y.enableKeyboardControl&&y.enableKeyboardControl(),y.params.mousewheelControl&&y.enableMousewheelControl&&y.enableMousewheelControl(),y.params.hashnavReplaceState&&(y.params.replaceState=y.params.hashnavReplaceState),y.params.history&&y.history&&y.history.init(),y.params.hashnav&&y.hashnav&&y.hashnav.init(),y.params.a11y&&y.a11y&&y.a11y.init(),y.emit("onInit",y)},y.cleanupStyles=function(){y.container.removeClass(y.classNames.join(" ")).removeAttr("style"),y.wrapper.removeAttr("style"),y.slides&&y.slides.length&&y.slides.removeClass([y.params.slideVisibleClass,y.params.slideActiveClass,y.params.slideNextClass,y.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),y.paginationContainer&&y.paginationContainer.length&&y.paginationContainer.removeClass(y.params.paginationHiddenClass),y.bullets&&y.bullets.length&&y.bullets.removeClass(y.params.bulletActiveClass),y.params.prevButton&&e(y.params.prevButton).removeClass(y.params.buttonDisabledClass),y.params.nextButton&&e(y.params.nextButton).removeClass(y.params.buttonDisabledClass),y.params.scrollbar&&y.scrollbar&&(y.scrollbar.track&&y.scrollbar.track.length&&y.scrollbar.track.removeAttr("style"),y.scrollbar.drag&&y.scrollbar.drag.length&&y.scrollbar.drag.removeAttr("style"))},y.destroy=function(e,a){y.detachEvents(),y.stopAutoplay(),y.params.scrollbar&&y.scrollbar&&y.params.scrollbarDraggable&&y.scrollbar.disableDraggable(),y.params.loop&&y.destroyLoop(),a&&y.cleanupStyles(),y.disconnectObservers(),y.params.zoom&&y.zoom&&y.zoom.destroy(),y.params.keyboardControl&&y.disableKeyboardControl&&y.disableKeyboardControl(),y.params.mousewheelControl&&y.disableMousewheelControl&&y.disableMousewheelControl(),y.params.a11y&&y.a11y&&y.a11y.destroy(),y.params.history&&!y.params.replaceState&&window.removeEventListener("popstate",y.history.setHistoryPopState),y.params.hashnav&&y.hashnav&&y.hashnav.destroy(),y.emit("onDestroy"),!1!==e&&(y=null)},y.init(),y}};a.prototype={isSafari:function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1,lteIE9:function(){var e=document.createElement("div");return e.innerHTML="\x3c!--[if lte IE 9]>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null})),window.Swiper=a}(),"undefined"!=typeof module?module.exports=window.Swiper:"function"==typeof define&&define.amd&&define([],function(){"use strict";return window.Swiper}); + + +/** + * @module WOW + * @author Matthieu Aussaguel + * @license MIT + * @version 1.1.3 + */ +(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a,b){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(b){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this); + + +/** + * @module Owl carousel + * @version 2.2.1 + * @author Bartosz Wojciechowski + * @license MIT + */ +!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g--;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.settings.center&&(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var b,c,e;b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&e<=0&&this.preloadAutoWidthImages(b)}this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('
    '),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.$element.is(":visible")&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),this.settings.responsive!==!1&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var d=-1,e=30,f=this.width(),g=this.coordinates();return this.settings.freeDrag||a.each(g,a.proxy(function(a,h){return"left"===c&&b>h-e&&bh-f-e&&b",g[a+1]||h-f)&&(d="left"===c?a+1:a),d===-1},this)),this.settings.loop||(this.op(b,">",g[this.minimum()])?d=b=this.minimum():this.op(b,"<",g[this.maximum()])&&(d=b=this.maximum())),d},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){for(b=this._items.length,c=this._items[--b].width(),d=this.$element.width();b--&&(c+=this._items[b].width()+this.settings.margin,!(c>d)););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=f*-1*g),a=c+e,d=((a-h)%g+g)%g+h,d!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.$element.is(":visible")&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),this.settings.responsive!==!1&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a":return d?ac;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&a.namespace.indexOf("owl")!==-1?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&e*-1||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);f++-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.$stage.children().toArray().slice(b,c),e=[],f=0;a.each(d,function(b,c){e.push(a(c).height())}),f=Math.max.apply(null,e),this._core.$stage.parent().height(f).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='
    ',d=k.lazyLoad?'
    ':'
    ',b.after(d),b.after(e)};if(b.wrap('
    "),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),"youtube"===f.type?c='':"vimeo"===f.type?c='':"vzaar"===f.type&&(c=''),a('
    '+c+"
    ").insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)}, + a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype.play=function(a,b){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},e.prototype._getNextTimeout=function(d,e){return this._timeout&&b.clearTimeout(this._timeout),b.setTimeout(a.proxy(function(){this._paused||this._core.is("busy")||this._core.is("interacting")||c.hidden||this._core.next(e||this._core.settings.autoplaySpeed)},this),d||this._core.settings.autoplayTimeout)},e.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},e.prototype.stop=function(){this._core.is("rotating")&&(b.clearTimeout(this._timeout),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&(this._paused=!0)},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
    '+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
    ")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("
    ").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a("
    ").addClass(c.dotClass).append(a("")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("
    ").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document); + + +/** + * @module RD Navbar + * @author Evgeniy Gusarov + * @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a + * @version 2.2.5 + */ +/** + * @module RD Navbar + * @author Evgeniy Gusarov + * @version 2.2.5 + */ +(function() { + var isTouch; + + isTouch = "ontouchstart" in window; + + (function($, document, window) { + + /** + * Creates a RDNavbar. + * @class RDNavbar. + * @public + * @param {HTMLElement} element - The element to create the RDNavbar for. + * @param {Object} [options] - The options + */ + var RDNavbar; + RDNavbar = (function() { + + /** + * Default options for RDNavbar. + * @protected + */ + RDNavbar.prototype.Defaults = { + layout: 'rd-navbar-static', + deviceLayout: 'rd-navbar-fixed', + focusOnHover: true, + focusOnHoverTimeout: 800, + linkedElements: ["html"], + domAppend: true, + stickUp: true, + stickUpClone: true, + stickUpOffset: '100%', + anchorNav: true, + anchorNavSpeed: 400, + anchorNavOffset: 0, + anchorNavEasing: 'swing', + autoHeight: true, + responsive: { + 0: { + layout: "rd-navbar-fixed", + deviceLayout: "rd-navbar-fixed", + focusOnHover: false, + stickUp: false + }, + 992: { + layout: "rd-navbar-static", + deviceLayout: "rd-navbar-static", + focusOnHover: true, + stickUp: true + } + }, + callbacks: { + onToggleSwitch: false, + onToggleClose: false, + onDomAppend: false, + onDropdownOver: false, + onDropdownOut: false, + onDropdownToggle: false, + onDropdownClose: false, + onStuck: false, + onUnstuck: false, + onAnchorChange: false + } + }; + + function RDNavbar(element, options) { + + /** + * Current options set + * @public + */ + this.options = $.extend(true, {}, this.Defaults, options); + + /** + * Plugin element + * @public + */ + this.$element = $(element); + + /** + * Plugin element clone + * @public + */ + this.$clone = null; + + /** + * Additional references + * @public + */ + this.$win = $(window); + this.$doc = $(document); + this.currentLayout = this.options.layout; + this.loaded = false; + this.focusOnHover = this.options.focusOnHover; + this.focusTimer = false; + this.cloneTimer = false; + this.isStuck = false; + this.initialize(); + } + + + /** + * Initializes the RDNavbar. + * @protected + */ + + RDNavbar.prototype.initialize = function() { + var ctx; + ctx = this; + ctx.$element.addClass("rd-navbar").addClass(ctx.options.layout); + if (isTouch) { + ctx.$element.addClass("rd-navbar--is-touch"); + } + if (ctx.options.domAppend) { + ctx.createNav(ctx); + } + if (ctx.options.stickUpClone) { + ctx.createClone(ctx); + } + ctx.$element.addClass('rd-navbar-original'); + ctx.addAdditionalClassToToggles('.rd-navbar-original', 'toggle-original', 'toggle-original-elements'); + ctx.applyHandlers(ctx); + ctx.offset = ctx.$element.offset().top; + ctx.height = ctx.$element.outerHeight(); + ctx.loaded = true; + return ctx; + }; + + + /** + * Changes {ctx.$element} layout basing on screen resolution + * @protected + */ + + RDNavbar.prototype.resize = function(ctx, e) { + var targetElement, targetLayout; + targetLayout = isTouch ? ctx.getOption('deviceLayout') : ctx.getOption('layout'); + targetElement = ctx.$element.add(ctx.$clone); + if (targetLayout !== ctx.currentLayout || !ctx.loaded) { + ctx.switchClass(targetElement, ctx.currentLayout, targetLayout); + if (ctx.options.linkedElements != null) { + $.grep(ctx.options.linkedElements, function(link, index) { + return ctx.switchClass(link, ctx.currentLayout + '-linked', targetLayout + '-linked'); + }); + } + ctx.currentLayout = targetLayout; + } + ctx.focusOnHover = ctx.getOption('focusOnHover'); + return ctx; + }; + + + /** + * Toggles bar stickup on scroll + * @protected + */ + + RDNavbar.prototype.stickUp = function(ctx, e) { + var scrollTop, stickUp, stickUpOffset, targetElement, threshold; + stickUp = ctx.getOption("stickUp"); + if ($('html').hasClass('ios') || ctx.$element.hasClass('rd-navbar-fixed')) { + stickUp = false; + } + scrollTop = ctx.$doc.scrollTop(); + targetElement = ctx.$clone != null ? ctx.$clone : ctx.$element; + stickUpOffset = ctx.getOption('stickUpOffset'); + threshold = (typeof stickUpOffset === 'string' ? (stickUpOffset.indexOf('%') > 0 ? parseFloat(stickUpOffset) * ctx.height / 100 : parseFloat(stickUpOffset)) : stickUpOffset); + if (stickUp) { + if ((scrollTop >= threshold && !ctx.isStuck) || (scrollTop < threshold && ctx.isStuck)) { + ctx.$element.add(ctx.$clone).find('[data-rd-navbar-toggle]').each(function() { + $.proxy(ctx.closeToggle, this)(ctx, false); + }).end().find('.rd-navbar-submenu').removeClass('opened').removeClass('focus'); + if (scrollTop >= threshold && !ctx.isStuck && !ctx.$element.hasClass('rd-navbar-fixed')) { + if (ctx.options.callbacks.onStuck) { + ctx.options.callbacks.onStuck.call(ctx); + } + + + setTimeout(function(){ + if (e.type === 'resize') { + ctx.switchClass(targetElement, '', 'rd-navbar--is-stuck'); + } else { + targetElement.addClass('rd-navbar--is-stuck'); + } + ctx.isStuck = true; + }, navigator.platform.match(/(Mac)/i) ? 10 : 0); + + } else { + if (e.type === 'resize') { + ctx.switchClass(targetElement, 'rd-navbar--is-stuck', ''); + } else { + targetElement.removeClass('rd-navbar--is-stuck').one('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', $.proxy(ctx.resizeWrap, ctx, e)); + } + ctx.isStuck = false; + if (ctx.options.callbacks.onUnstuck) { + ctx.options.callbacks.onUnstuck.call(ctx); + } + } + } + } else { + ctx.$element.find('.rd-navbar-submenu').removeClass('opened').removeClass('focus'); + if (ctx.isStuck) { + ctx.switchClass(targetElement, 'rd-navbar--is-stuck', ''); + ctx.isStuck = false; + ctx.resizeWrap(e); + } + } + return ctx; + }; + + + /** + * Resizes an external wrap of navbar + * @protected + */ + + RDNavbar.prototype.resizeWrap = function(e) { + var $wrap, ctx; + ctx = this; + if ((ctx.$clone == null) && !ctx.isStuck) { + $wrap = ctx.$element.parent(); + if (!ctx.getOption('autoHeight')) { + $wrap.css('height', 'auto'); + return; + } + ctx.height = ctx.$element.outerHeight(); + if (e.type === 'resize') { + $wrap.addClass('rd-navbar--no-transition').css('height', ctx.height); + $wrap[0].offsetHeight; + return $wrap.removeClass('rd-navbar--no-transition'); + } else { + return $wrap.css('height', ctx.height); + } + } + }; + + + /** + * Creates additional DOM for navigation functionality + * @protected + */ + + RDNavbar.prototype.createNav = function(ctx) { + ctx.$element.find('.rd-navbar-dropdown, .rd-navbar-megamenu').each(function() { + var $this, rect; + $this = $(this); + rect = this.getBoundingClientRect(); + if ($this.hasClass('rd-navbar-megamenu')) { + return $this.parent().addClass('rd-navbar--has-megamenu'); + } else { + return $this.parent().addClass('rd-navbar--has-dropdown'); + } + }).parents("li").addClass("rd-navbar-submenu"); + $('').insertAfter('.rd-navbar-nav li.rd-navbar-submenu > a'); + if (ctx.options.callbacks.onDomAppend) { + ctx.options.callbacks.onDomAppend.call(this); + } + return ctx; + }; + + + /** + * Creates navbar clone to stick up + * @protected + */ + + RDNavbar.prototype.createClone = function(ctx) { + ctx.$clone = ctx.$element.clone().insertAfter(ctx.$element).addClass('rd-navbar--is-clone'); + ctx.addAdditionalClassToToggles('.rd-navbar--is-clone', 'toggle-cloned', 'toggle-cloned-elements'); + return ctx; + }; + + + /** + * Closes all toggles on outside click of each item + * @protected + */ + + RDNavbar.prototype.closeToggle = function(ctx, e) { + var $items, $target, additionalToggleElClass, additionalToogleClass, collapse, linkedElements, needClose; + $target = $(e.target); + collapse = false; + linkedElements = this.getAttribute('data-rd-navbar-toggle'); + if (ctx.options.stickUpClone && ctx.isStuck) { + additionalToogleClass = '.toggle-cloned'; + additionalToggleElClass = '.toggle-cloned-elements'; + needClose = !$target.hasClass('toggle-cloned'); + } else { + additionalToogleClass = '.toggle-original'; + additionalToggleElClass = '.toggle-original-elements'; + needClose = !$target.hasClass('toggle-original'); + } + if (e.target !== this && !$target.parents(additionalToogleClass + '[data-rd-navbar-toggle]').length && !$target.parents(additionalToggleElClass).length && linkedElements && needClose) { + $items = $(this).parents('body').find(linkedElements).add($(this).parents('.rd-navbar')[0]); + $items.each(function() { + if (!collapse) { + return collapse = (e.target === this || $.contains(this, e.target)) === true; + } + }); + if (!collapse) { + $items.add(this).removeClass('active'); + if (ctx.options.callbacks.onToggleClose) { + ctx.options.callbacks.onToggleClose.call(this, ctx); + } + } + } + return this; + }; + + + /** + * Switches toggle + * @protected + */ + + RDNavbar.prototype.switchToggle = function(ctx, e) { + var additionalToggleElClass, linkedElements, navbarClass; + e.preventDefault(); + if ($(this).hasClass('toggle-cloned')) { + navbarClass = '.rd-navbar--is-clone'; + additionalToggleElClass = '.toggle-cloned-elements'; + } else { + navbarClass = '.rd-navbar-original'; + additionalToggleElClass = '.toggle-original-elements'; + } + if (linkedElements = this.getAttribute('data-rd-navbar-toggle')) { + $(navbarClass + ' [data-rd-navbar-toggle]').not(this).each(function() { + var deactivateElements; + if (deactivateElements = this.getAttribute('data-rd-navbar-toggle')) { + return $(this).parents('body').find(navbarClass + ' ' + deactivateElements + additionalToggleElClass).add(this).add($.inArray('.rd-navbar', deactivateElements.split(/\s*,\s*/i)) > -1 ? $(this).parents('body')[0] : false).removeClass('active'); + } + }); + $(this).parents('body').find(navbarClass + ' ' + linkedElements + additionalToggleElClass).add(this).add($.inArray('.rd-navbar', linkedElements.split(/\s*,\s*/i)) > -1 ? $(this).parents('.rd-navbar')[0] : false).toggleClass('active'); + } + if (ctx.options.callbacks.onToggleSwitch) { + ctx.options.callbacks.onToggleSwitch.call(this, ctx); + } + return this; + }; + + + /** + * Triggers submenu popup to be shown on mouseover + * @protected + */ + + RDNavbar.prototype.dropdownOver = function(ctx, timer) { + var $this; + if (ctx.focusOnHover) { + $this = $(this); + clearTimeout(timer); + if (ctx.options.callbacks.onDropdownOver) { + if (!ctx.options.callbacks.onDropdownOver.call(this, ctx)){ + return this; + } + } + + $this.addClass('focus').siblings().removeClass('opened').each(ctx.dropdownUnfocus); + } + return this; + }; + + + /** + * Triggers submenu popup to be shown on mouseover + * @protected + */ + + RDNavbar.prototype.dropdownTouch = function(ctx, timer) { + var $this, hasFocus; + $this = $(this); + clearTimeout(timer); + if (ctx.focusOnHover) { + hasFocus = false; + if ($this.hasClass('focus')) { + hasFocus = true; + } + if (!hasFocus) { + $this.addClass('focus').siblings().removeClass('opened').each(ctx.dropdownUnfocus); + return false; + } + if (ctx.options.callbacks.onDropdownOver) { + ctx.options.callbacks.onDropdownOver.call(this, ctx); + } + } + return this; + }; + + + /** + * Triggers submenu popop to be hidden on mouseout + * @protected + */ + + RDNavbar.prototype.dropdownOut = function(ctx, timer) { + var $this; + if (ctx.focusOnHover) { + $this = $(this); + $this.one('mouseenter.navbar', function() { + return clearTimeout(timer); + }); + + if (ctx.options.callbacks.onDropdownOut) { + ctx.options.callbacks.onDropdownOut.call(this, ctx); + } + clearTimeout(timer); + + timer = setTimeout($.proxy(ctx.dropdownUnfocus, this, ctx), ctx.options.focusOnHoverTimeout); + } + return this; + }; + + + /** + * Removes a focus from submenu + * @protected + */ + + RDNavbar.prototype.dropdownUnfocus = function(ctx) { + var $this; + $this = $(this); + $this.find('li.focus').add(this).removeClass('focus'); + return this; + }; + + + /** + * Closes submenu + * @protected + */ + + RDNavbar.prototype.dropdownClose = function(ctx, e) { + var $this; + if (e.target !== this && !$(e.target).parents('.rd-navbar-submenu').length) { + $this = $(this); + $this.find('li.focus').add(this).removeClass('focus').removeClass('opened'); + if (ctx.options.callbacks.onDropdownClose) { + ctx.options.callbacks.onDropdownClose.call(this, ctx); + } + } + return this; + }; + + + /** + * Toggles submenu popup to be shown on trigger click + * @protected + */ + + RDNavbar.prototype.dropdownToggle = function(ctx) { + $(this).toggleClass('opened').siblings().removeClass('opened'); + if (ctx.options.callbacks.onDropdownToggle) { + ctx.options.callbacks.onDropdownToggle.call(this, ctx); + } + return this; + }; + + + /** + * Scrolls the page to triggered anchor + * @protected + */ + + RDNavbar.prototype.goToAnchor = function(ctx, e) { + var $anchor, hash; + hash = this.hash; + $anchor = $(hash); + + if (!ctx.getOption('anchorNav')){ + return false; + } + + if ($anchor.length) { + e.preventDefault(); + $('html, body').stop().animate({ + 'scrollTop': $anchor.offset().top + ctx.getOption('anchorNavOffset') + 1 + }, ctx.getOption('anchorNavSpeed'), ctx.getOption('anchorNavEasing'), function() { + return ctx.changeAnchor(hash); + }); + } + return this; + }; + + + /** + * Highlight an active anchor + * @protected + */ + + RDNavbar.prototype.activateAnchor = function(e) { + var $anchor, $item, $link, ctx, docHeight, hash, i, link, links, navOffset, scrollTop, winHeight; + ctx = this; + scrollTop = ctx.$doc.scrollTop(); + winHeight = ctx.$win.height(); + docHeight = ctx.$doc.height(); + navOffset = ctx.getOption('anchorNavOffset'); + + if (!ctx.options.anchorNav){ + return false; + } + + if (scrollTop + winHeight > docHeight - 50) { + $anchor = $('[data-type="anchor"]').last(); + if ($anchor.length) { + if ($anchor.offset().top >= scrollTop) { + hash = '#' + $anchor.attr("id"); + $item = $('.rd-navbar-nav a[href^="' + hash + '"]').parent(); + if (!$item.hasClass('active')) { + $item.addClass('active').siblings().removeClass('active'); + if (ctx.options.callbacks.onAnchorChange) { + ctx.options.callbacks.onAnchorChange.call($anchor[0], ctx); + } + } + } + } + return $anchor; + } else { + links = $('.rd-navbar-nav a[href^="#"]').get(); + for (i in links) { + link = links[i]; + $link = $(link); + hash = $link.attr('href'); + // @CHANGE LDR + if (hash != '#') $anchor = $(hash); + else $anchor = ''; + //$anchor = $(hash); + if ($anchor.length) { + if ($anchor.offset().top + navOffset <= scrollTop && $anchor.offset().top + $anchor.outerHeight() > scrollTop) { + $link.parent().addClass('active').siblings().removeClass('active'); + if (ctx.options.callbacks.onAnchorChange) { + ctx.options.callbacks.onAnchorChange.call($anchor[0], ctx); + } + } + } + } + } + return null; + }; + + + /** + * Returns current anchor + * @protected + */ + + RDNavbar.prototype.getAnchor = function() { + if (history) { + if (history.state) { + return history.state.id; + } + } + return null; + }; + + + /** + * Changes current page anchor + * @protected + */ + + RDNavbar.prototype.changeAnchor = function(hash) { + if (history) { + if (history.state) { + if (history.state.id !== hash) { + history.replaceState({ + 'anchorId': hash + }, null, hash); + } else { + history.pushState({ + 'anchorId': hash + }, null, hash); + } + } else { + history.pushState({ + 'anchorId': hash + }, null, hash); + } + } + return this; + }; + + + /** + * Applies all JS event handlers + * @protected + */ + + RDNavbar.prototype.applyHandlers = function(ctx) { + if (ctx.options.responsive != null) { + ctx.$win.on('resize.navbar', $.proxy(ctx.resize, ctx.$win[0], ctx)).on('resize.navbar', $.proxy(ctx.resizeWrap, ctx)).on('resize.navbar', $.proxy(ctx.stickUp, (ctx.$clone != null ? ctx.$clone : ctx.$element), ctx)).on('orientationchange.navbar', $.proxy(ctx.resize, ctx.$win[0], ctx)).trigger('resize.navbar'); + } + ctx.$doc.on('scroll.navbar', $.proxy(ctx.stickUp, (ctx.$clone != null ? ctx.$clone : ctx.$element), ctx)).on('scroll.navbar', $.proxy(ctx.activateAnchor, ctx)); + ctx.$element.add(ctx.$clone).find('[data-rd-navbar-toggle]').each(function() { + var $this; + $this = $(this); + $this.on('click', $.proxy(ctx.switchToggle, this, ctx)); + return $this.parents('body').on('click', $.proxy(ctx.closeToggle, this, ctx)); + }); + ctx.$element.add(ctx.$clone).find('.rd-navbar-submenu').each(function() { + var $this, timer; + $this = $(this); + timer = $this.parents(".rd-navbar--is-clone").length ? ctx.cloneTimer : ctx.focusTimer; + $this.on('mouseleave.navbar', $.proxy(ctx.dropdownOut, this, ctx, timer)); + $this.find('> a').on('mouseenter.navbar', $.proxy(ctx.dropdownOver, this, ctx, timer)); + $this.find('> a').on('touchstart.navbar', $.proxy(ctx.dropdownTouch, this, ctx, timer)); + $this.find('> .rd-navbar-submenu-toggle').on('click', $.proxy(ctx.dropdownToggle, this, ctx)); + return $this.parents('body').on('click', $.proxy(ctx.dropdownClose, this, ctx)); + }); + ctx.$element.add(ctx.$clone).find('.rd-navbar-nav a[href^="#"]').each(function() { + return $(this).on('click', $.proxy(ctx.goToAnchor, this, ctx)); + }); + + ctx.$element.find('.rd-navbar-dropdown, .rd-navbar-megamenu').each(function() { + var $this, rect; + $this = $(this); + rect = this.getBoundingClientRect(); + if ((rect.left + $this.outerWidth()) >= window.innerWidth - 10) { + this.className += ' rd-navbar-open-left'; + } else if ((rect.left - $this.outerWidth()) <= 10) { + this.className += ' rd-navbar-open-right'; + } + }); + + return ctx; + }; + + + /** + * Switches classes of elements without transition + * @protected + */ + + RDNavbar.prototype.switchClass = function(element, before, after) { + var obj; + obj = element instanceof jQuery ? element : $(element); + obj.addClass('rd-navbar--no-transition').removeClass(before).addClass(after); + obj[0].offsetHeight; + return obj.removeClass('rd-navbar--no-transition'); + }; + + + /** + * Gets specific option of plugin + * @protected + */ + + RDNavbar.prototype.getOption = function(key) { + var point, targetPoint; + for (point in this.options.responsive) { + if (point <= window.innerWidth) { + targetPoint = point; + } + } + if ((this.options.responsive != null) && (this.options.responsive[targetPoint][key] != null)) { + return this.options.responsive[targetPoint][key]; + } else { + return this.options[key]; + } + }; + + + /** + * Add additional class to navbar toggles to identify it when navbar is cloned + * @protected + */ + + RDNavbar.prototype.addAdditionalClassToToggles = function(navbarClass, toggleAdditionalClass, toggleElAdditionalClass) { + return $(navbarClass).find('[data-rd-navbar-toggle]').each(function() { + var toggleElement; + $(this).addClass(toggleAdditionalClass); + toggleElement = this.getAttribute('data-rd-navbar-toggle'); + return $(this).parents('body').find(navbarClass).find(toggleElement).addClass(toggleElAdditionalClass); + }); + }; + + return RDNavbar; + + })(); + + /** + * The jQuery Plugin for the RD Navbar + * @public + */ + $.fn.extend({ + RDNavbar: function(options) { + var $this; + $this = $(this); + if (!$this.data('RDNavbar')) { + return $this.data('RDNavbar', new RDNavbar(this, options)); + } + } + + /** + * RD Navbar window export + * @public + */ + }); + return window.RDNavbar = RDNavbar; + })(window.jQuery, document, window); + + + /** + * The Plugin AMD export + * @public + */ + + if (typeof module !== "undefined" && module !== null) { + module.exports = window.RDNavbar; + } else if (typeof define === 'function' && define.amd) { + define(["jquery"], function() { + 'use strict'; + return window.RDNavbar; + }); + } + +}).call(this); + + +/** + * @module Device.js + * @see https://github.com/matthewhudson/device.js + * @license MIT + */ +(function(){var n,e,o,t,i,r,d,a,c,l;e=window.device,n={},window.device=n,t=window.document.documentElement,l=window.navigator.userAgent.toLowerCase(),n.ios=function(){return n.iphone()||n.ipod()||n.ipad()},n.iphone=function(){return!n.windows()&&i("iphone")},n.ipod=function(){return i("ipod")},n.ipad=function(){return i("ipad")},n.android=function(){return!n.windows()&&i("android")},n.androidPhone=function(){return n.android()&&i("mobile")},n.androidTablet=function(){return n.android()&&!i("mobile")},n.blackberry=function(){return i("blackberry")||i("bb10")||i("rim")},n.blackberryPhone=function(){return n.blackberry()&&!i("tablet")},n.blackberryTablet=function(){return n.blackberry()&&i("tablet")},n.windows=function(){return i("windows")},n.windowsPhone=function(){return n.windows()&&i("phone")},n.windowsTablet=function(){return n.windows()&&i("touch")&&!n.windowsPhone()},n.fxos=function(){return(i("(mobile;")||i("(tablet;"))&&i("; rv:")},n.fxosPhone=function(){return n.fxos()&&i("mobile")},n.fxosTablet=function(){return n.fxos()&&i("tablet")},n.meego=function(){return i("meego")},n.cordova=function(){return window.cordova&&"file:"===location.protocol},n.nodeWebkit=function(){return"object"==typeof window.process},n.mobile=function(){return n.androidPhone()||n.iphone()||n.ipod()||n.windowsPhone()||n.blackberryPhone()||n.fxosPhone()||n.meego()},n.tablet=function(){return n.ipad()||n.androidTablet()||n.blackberryTablet()||n.windowsTablet()||n.fxosTablet()},n.desktop=function(){return!n.tablet()&&!n.mobile()},n.television=function(){var n,e=["googletv","viera","smarttv","internet.tv","netcast","nettv","appletv","boxee","kylo","roku","dlnadoc","roku","pov_tv","hbbtv","ce-html"];for(n=0;n1},n.landscape=function(){return window.innerHeight/window.innerWidth<1},n.noConflict=function(){return window.device=e,this},i=function(n){return-1!==l.indexOf(n)},d=function(n){var e;return e=new RegExp(n,"i"),t.className.match(e)},o=function(n){var e=null;d(n)||(e=t.className.replace(/^\s+|\s+$/g,""),t.className=e+" "+n)},c=function(n){d(n)&&(t.className=t.className.replace(" "+n,""))},n.ios()?n.ipad()?o("ios ipad tablet"):n.iphone()?o("ios iphone mobile"):n.ipod()&&o("ios ipod mobile"):n.android()?o(n.androidTablet()?"android tablet":"android mobile"):n.blackberry()?o(n.blackberryTablet()?"blackberry tablet":"blackberry mobile"):n.windows()?o(n.windowsTablet()?"windows tablet":n.windowsPhone()?"windows mobile":"desktop"):n.fxos()?o(n.fxosTablet()?"fxos tablet":"fxos mobile"):n.meego()?o("meego mobile"):n.nodeWebkit()?o("node-webkit"):n.television()?o("television"):n.desktop()&&o("desktop"),n.cordova()&&o("cordova"),r=function(){n.landscape()?(c("portrait"),o("landscape")):(c("landscape"),o("portrait"))},a=Object.prototype.hasOwnProperty.call(window,"onorientationchange")?"orientationchange":"resize",window.addEventListener?window.addEventListener(a,r,!1):window.attachEvent?window.attachEvent(a,r):window[a]=r,r(),"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:window.device=n}).call(this); + + +/** + * @module UIToTop + * @author Matt Varone + * @see http://www.mattvarone.com/web-design/uitotop-jquery-plugin/ + * @license MIT + */ +!function(o){o.fn.UItoTop=function(n){var e={text:"",min:500,scrollSpeed:800,containerID:"ui-to-top",containerClass:"ui-to-top fa fa-angle-up",easingType:"easeIn"},t=o.extend(e,n),i="#"+t.containerID;o("body").append(''+t.text+""),o(i).click(function(){return o("html, body").stop().animate({scrollTop:0},t.scrollSpeed,t.easingType),!1}),o(window).scroll(function(){var n=o(window).scrollTop();"undefined"==typeof document.body.style.maxHeight&&o(i).css({position:"absolute",top:o(window).scrollTop()+o(window).height()-50}),n>t.min?o(i).stop(!0,!0).addClass("active"):o(i).removeClass("active")})}}(jQuery); + + +/** + * @module Abstract base class for collection plugins v1.0.1. + * @author Keith Wood + * @see http://keith-wood.name/countdown.html + * @license MIT + */ +(function(){var j=false;window.JQClass=function(){};JQClass.classes={};JQClass.extend=function extender(f){var g=this.prototype;j=true;var h=new this();j=false;for(var i in f){h[i]=typeof f[i]=='function'&&typeof g[i]=='function'?(function(d,e){return function(){var b=this._super;this._super=function(a){return g[d].apply(this,a||[])};var c=e.apply(this,arguments);this._super=b;return c}})(i,f[i]):f[i]}function JQClass(){if(!j&&this._init){this._init.apply(this,arguments)}}JQClass.prototype=h;JQClass.prototype.constructor=JQClass;JQClass.extend=extender;return JQClass}})();(function($){JQClass.classes.JQPlugin=JQClass.extend({name:'plugin',defaultOptions:{},regionalOptions:{},_getters:[],_getMarker:function(){return'is-'+this.name},_init:function(){$.extend(this.defaultOptions,(this.regionalOptions&&this.regionalOptions[''])||{});var c=camelCase(this.name);$[c]=this;$.fn[c]=function(a){var b=Array.prototype.slice.call(arguments,1);if($[c]._isNotChained(a,b)){return $[c][a].apply($[c],[this[0]].concat(b))}return this.each(function(){if(typeof a==='string'){if(a[0]==='_'||!$[c][a]){throw'Unknown method: '+a;}$[c][a].apply($[c],[this].concat(b))}else{$[c]._attach(this,a)}})}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_isNotChained:function(a,b){if(a==='option'&&(b.length===0||(b.length===1&&typeof b[0]==='string'))){return true}return $.inArray(a,this._getters)>-1},_attach:function(a,b){a=$(a);if(a.hasClass(this._getMarker())){return}a.addClass(this._getMarker());b=$.extend({},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c);this._postAttach(a,c);this.option(a,b)},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(d){try{var f=d.data(this.name.toLowerCase())||'';f=f.replace(/'/g,'"');f=f.replace(/([a-zA-Z0-9]+):/g,function(a,b,i){var c=f.substring(0,i).match(/"/g);return(!c||c.length%2===0?'"'+b+'":':b+':')});f=$.parseJSON('{'+f+'}');for(var g in f){var h=f[g];if(typeof h==='string'&&h.match(/^new Date\((.*)\)$/)){f[g]=eval(h)}}return f}catch(e){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name);if(!b||(typeof b==='string'&&c==null)){var e=(d||{}).options;return(e&&b?e[b]:e)}if(!a.hasClass(this._getMarker())){return}var e=b||{};if(typeof b==='string'){e={};e[b]=c}this._optionsChanged(a,d,e);$.extend(d.options,e)},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}this._preDestroy(a,this._getInst(a));a.removeData(this.name).removeClass(this._getMarker())},_preDestroy:function(a,b){}});function camelCase(c){return c.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}$.JQPlugin={createPlugin:function(a,b){if(typeof a==='object'){b=a;a='JQPlugin'}a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b);new JQClass.classes[c]()}}})(jQuery); + + +/** + * @module Moment JS + * @authors Tim Wood, Iskren Chernev, Moment.js contributors + * @see https://ua.linkedin.com/in/rafael-shayvolodyan-3a297b96 + * @version 2.12.0 + * @license MIT + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.moment=e()}(this,function(){"use strict";function t(){return Xn.apply(null,arguments)}function e(t){Xn=t}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function i(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var n,i=[];for(n=0;n0)for(n in Kn)i=Kn[n],s=e[i],c(s)||(t[i]=s);return t}function m(e){f(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),ti===!1&&(ti=!0,t.updateOffset(this),ti=!1)}function _(t){return t instanceof m||null!=t&&null!=t._isAMomentObject}function y(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=y(e)),n}function p(t,e,n){var i,s=Math.min(t.length,e.length),r=Math.abs(t.length-e.length),a=0;for(i=0;s>i;i++)(n&&t[i]!==e[i]||!n&&g(t[i])!==g(e[i]))&&a++;return a+r}function v(e){t.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function D(t,e){var n=!0;return a(function(){return n&&(v(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),n=!1),e.apply(this,arguments)},e)}function M(t,e){ei[t]||(v(e),ei[t]=!0)}function S(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function Y(t){return"[object Object]"===Object.prototype.toString.call(t)}function w(t){var e,n;for(n in t)e=t[n],S(e)?this[n]=e:this["_"+n]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function k(t,e){var n,i=a({},t);for(n in e)r(e,n)&&(Y(t[n])&&Y(e[n])?(i[n]={},a(i[n],t[n]),a(i[n],e[n])):null!=e[n]?i[n]=e[n]:delete i[n]);return i}function T(t){null!=t&&this.set(t)}function b(t){return t?t.toLowerCase().replace("_","-"):t}function O(t){for(var e,n,i,s,r=0;r0;){if(i=W(s.slice(0,e).join("-")))return i;if(n&&n.length>=e&&p(s,n,!0)>=e-1)break;e--}r++}return null}function W(t){var e=null;if(!ii[t]&&"undefined"!=typeof module&&module&&module.exports)try{e=ni._abbr,require("./locale/"+t),x(e)}catch(n){}return ii[t]}function x(t,e){var n;return t&&(n=c(e)?P(t):U(t,e),n&&(ni=n)),ni._abbr}function U(t,e){return null!==e?(e.abbr=t,null!=ii[t]?(M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),e=k(ii[t]._config,e)):null!=e.parentLocale&&(null!=ii[e.parentLocale]?e=k(ii[e.parentLocale]._config,e):M("parentLocaleUndefined","specified parentLocale is not defined yet")),ii[t]=new T(e),x(t),ii[t]):(delete ii[t],null)}function G(t,e){if(null!=e){var n;null!=ii[t]&&(e=k(ii[t]._config,e)),n=new T(e),n.parentLocale=ii[t],ii[t]=n,x(t)}else null!=ii[t]&&(null!=ii[t].parentLocale?ii[t]=ii[t].parentLocale:null!=ii[t]&&delete ii[t]);return ii[t]}function P(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return ni;if(!n(t)){if(e=W(t))return e;t=[t]}return O(t)}function C(){return Object.keys(ii)}function F(t,e){var n=t.toLowerCase();si[n]=si[n+"s"]=si[e]=t}function H(t){return"string"==typeof t?si[t]||si[t.toLowerCase()]:void 0}function L(t){var e,n,i={};for(n in t)r(t,n)&&(e=H(n),e&&(i[e]=t[n]));return i}function V(e,n){return function(i){return null!=i?(I(this,e,i),t.updateOffset(this,n),this):N(this,e)}}function N(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function I(t,e,n){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](n)}function A(t,e){var n;if("object"==typeof t)for(n in t)this.set(n,t[n]);else if(t=H(t),S(this[t]))return this[t](e);return this}function R(t,e,n){var i=""+Math.abs(t),s=e-i.length,r=t>=0;return(r?n?"+":"":"-")+Math.pow(10,Math.max(0,s)).toString().substr(1)+i}function E(t,e,n,i){var s=i;"string"==typeof i&&(s=function(){return this[i]()}),t&&(ui[t]=s),e&&(ui[e[0]]=function(){return R(s.apply(this,arguments),e[1],e[2])}),n&&(ui[n]=function(){return this.localeData().ordinal(s.apply(this,arguments),t)})}function j(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function z(t){var e,n,i=t.match(ri);for(e=0,n=i.length;n>e;e++)ui[i[e]]?i[e]=ui[i[e]]:i[e]=j(i[e]);return function(s){var r="";for(e=0;n>e;e++)r+=i[e]instanceof Function?i[e].call(s,t):i[e];return r}}function Z(t,e){return t.isValid()?(e=$(e,t.localeData()),oi[e]=oi[e]||z(e),oi[e](t)):t.localeData().invalidDate()}function $(t,e){function n(t){return e.longDateFormat(t)||t}var i=5;for(ai.lastIndex=0;i>=0&&ai.test(t);)t=t.replace(ai,n),ai.lastIndex=0,i-=1;return t}function q(t,e,n){Ti[t]=S(e)?e:function(t,i){return t&&n?n:e}}function J(t,e){return r(Ti,t)?Ti[t](e._strict,e._locale):new RegExp(B(t))}function B(t){return Q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,s){return e||n||i||s}))}function Q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function X(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(i=function(t,n){n[e]=g(t)}),n=0;ni;i++){if(s=o([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(s,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(s,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(r="^"+this.months(s,"")+"|^"+this.monthsShort(s,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}}function rt(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=g(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return n=Math.min(t.date(),et(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function at(e){return null!=e?(rt(this,e),t.updateOffset(this,!0),this):N(this,"Month")}function ot(){return et(this.year(),this.month())}function ut(t){return this._monthsParseExact?(r(this,"_monthsRegex")||lt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function dt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||lt.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function lt(){function t(t,e){return e.length-t.length}var e,n,i=[],s=[],r=[];for(e=0;12>e;e++)n=o([2e3,e]),i.push(this.monthsShort(n,"")),s.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(i.sort(t),s.sort(t),r.sort(t),e=0;12>e;e++)i[e]=Q(i[e]),s[e]=Q(s[e]),r[e]=Q(r[e]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+s.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")$","i")}function ht(t){var e,n=t._a;return n&&-2===d(t).overflow&&(e=n[Wi]<0||n[Wi]>11?Wi:n[xi]<1||n[xi]>et(n[Oi],n[Wi])?xi:n[Ui]<0||n[Ui]>24||24===n[Ui]&&(0!==n[Gi]||0!==n[Pi]||0!==n[Ci])?Ui:n[Gi]<0||n[Gi]>59?Gi:n[Pi]<0||n[Pi]>59?Pi:n[Ci]<0||n[Ci]>999?Ci:-1,d(t)._overflowDayOfYear&&(Oi>e||e>xi)&&(e=xi),d(t)._overflowWeeks&&-1===e&&(e=Fi),d(t)._overflowWeekday&&-1===e&&(e=Hi),d(t).overflow=e),t}function ct(t){var e,n,i,s,r,a,o=t._i,u=Ri.exec(o)||Ei.exec(o);if(u){for(d(t).iso=!0,e=0,n=zi.length;n>e;e++)if(zi[e][1].exec(u[1])){s=zi[e][0],i=zi[e][2]!==!1;break}if(null==s)return void(t._isValid=!1);if(u[3]){for(e=0,n=Zi.length;n>e;e++)if(Zi[e][1].exec(u[3])){r=(u[2]||" ")+Zi[e][0];break}if(null==r)return void(t._isValid=!1)}if(!i&&null!=r)return void(t._isValid=!1);if(u[4]){if(!ji.exec(u[4]))return void(t._isValid=!1);a="Z"}t._f=s+(r||"")+(a||""),bt(t)}else t._isValid=!1}function ft(e){var n=$i.exec(e._i);return null!==n?void(e._d=new Date(+n[1])):(ct(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function mt(t,e,n,i,s,r,a){var o=new Date(t,e,n,i,s,r,a);return 100>t&&t>=0&&isFinite(o.getFullYear())&&o.setFullYear(t),o}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function yt(t){return gt(t)?366:365}function gt(t){return t%4===0&&t%100!==0||t%400===0}function pt(){return gt(this.year())}function vt(t,e,n){var i=7+e-n,s=(7+_t(t,0,i).getUTCDay()-e)%7;return-s+i-1}function Dt(t,e,n,i,s){var r,a,o=(7+n-i)%7,u=vt(t,i,s),d=1+7*(e-1)+o+u;return 0>=d?(r=t-1,a=yt(r)+d):d>yt(t)?(r=t+1,a=d-yt(t)):(r=t,a=d),{year:r,dayOfYear:a}}function Mt(t,e,n){var i,s,r=vt(t.year(),e,n),a=Math.floor((t.dayOfYear()-r-1)/7)+1;return 1>a?(s=t.year()-1,i=a+St(s,e,n)):a>St(t.year(),e,n)?(i=a-St(t.year(),e,n),s=t.year()+1):(s=t.year(),i=a),{week:i,year:s}}function St(t,e,n){var i=vt(t,e,n),s=vt(t+1,e,n);return(yt(t)-i+s)/7}function Yt(t,e,n){return null!=t?t:null!=e?e:n}function wt(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function kt(t){var e,n,i,s,r=[];if(!t._d){for(i=wt(t),t._w&&null==t._a[xi]&&null==t._a[Wi]&&Tt(t),t._dayOfYear&&(s=Yt(t._a[Oi],i[Oi]),t._dayOfYear>yt(s)&&(d(t)._overflowDayOfYear=!0),n=_t(s,0,t._dayOfYear),t._a[Wi]=n.getUTCMonth(),t._a[xi]=n.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=r[e]=i[e];for(;7>e;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Ui]&&0===t._a[Gi]&&0===t._a[Pi]&&0===t._a[Ci]&&(t._nextDay=!0,t._a[Ui]=0),t._d=(t._useUTC?_t:mt).apply(null,r),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Ui]=24)}}function Tt(t){var e,n,i,s,r,a,o,u;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(r=1,a=4,n=Yt(e.GG,t._a[Oi],Mt(Ft(),1,4).year),i=Yt(e.W,1),s=Yt(e.E,1),(1>s||s>7)&&(u=!0)):(r=t._locale._week.dow,a=t._locale._week.doy,n=Yt(e.gg,t._a[Oi],Mt(Ft(),r,a).year),i=Yt(e.w,1),null!=e.d?(s=e.d,(0>s||s>6)&&(u=!0)):null!=e.e?(s=e.e+r,(e.e<0||e.e>6)&&(u=!0)):s=r),1>i||i>St(n,r,a)?d(t)._overflowWeeks=!0:null!=u?d(t)._overflowWeekday=!0:(o=Dt(n,i,s,r,a),t._a[Oi]=o.year,t._dayOfYear=o.dayOfYear)}function bt(e){if(e._f===t.ISO_8601)return void ct(e);e._a=[],d(e).empty=!0;var n,i,s,r,a,o=""+e._i,u=o.length,l=0;for(s=$(e._f,e._locale).match(ri)||[],n=0;n0&&d(e).unusedInput.push(a),o=o.slice(o.indexOf(i)+i.length),l+=i.length),ui[r]?(i?d(e).empty=!1:d(e).unusedTokens.push(r),tt(r,i,e)):e._strict&&!i&&d(e).unusedTokens.push(r);d(e).charsLeftOver=u-l,o.length>0&&d(e).unusedInput.push(o),d(e).bigHour===!0&&e._a[Ui]<=12&&e._a[Ui]>0&&(d(e).bigHour=void 0),e._a[Ui]=Ot(e._locale,e._a[Ui],e._meridiem),kt(e),ht(e)}function Ot(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&12>e&&(e+=12),i||12!==e||(e=0),e):e}function Wt(t){var e,n,i,s,r;if(0===t._f.length)return d(t).invalidFormat=!0,void(t._d=new Date(NaN));for(s=0;sr)&&(i=r,n=e));a(t,n||e)}function xt(t){if(!t._d){var e=L(t._i);t._a=s([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),kt(t)}}function Ut(t){var e=new m(ht(Gt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Gt(t){var e=t._i,s=t._f;return t._locale=t._locale||P(t._l),null===e||void 0===s&&""===e?h({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),_(e)?new m(ht(e)):(n(s)?Wt(t):s?bt(t):i(e)?t._d=e:Pt(t),l(t)||(t._d=null),t))}function Pt(e){var r=e._i;void 0===r?e._d=new Date(t.now()):i(r)?e._d=new Date(+r):"string"==typeof r?ft(e):n(r)?(e._a=s(r.slice(0),function(t){return parseInt(t,10)}),kt(e)):"object"==typeof r?xt(e):"number"==typeof r?e._d=new Date(r):t.createFromInputFallback(e)}function Ct(t,e,n,i,s){var r={};return"boolean"==typeof n&&(i=n,n=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=s,r._l=n,r._i=t,r._f=e,r._strict=i,Ut(r)}function Ft(t,e,n,i){return Ct(t,e,n,i,!1)}function Ht(t,e){var i,s;if(1===e.length&&n(e[0])&&(e=e[0]),!e.length)return Ft();for(i=e[0],s=1;st&&(t=-t,n="-"),n+R(~~(t/60),2)+e+R(~~t%60,2)})}function Rt(t,e){var n=(e||"").match(t)||[],i=n[n.length-1]||[],s=(i+"").match(Xi)||["-",0,0],r=+(60*s[1])+g(s[2]);return"+"===s[0]?r:-r}function Et(e,n){var s,r;return n._isUTC?(s=n.clone(),r=(_(e)||i(e)?+e:+Ft(e))-+s,s._d.setTime(+s._d+r),t.updateOffset(s,!1),s):Ft(e).local()}function jt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function zt(e,n){var i,s=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=Rt(Yi,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&n&&(i=jt(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),s!==e&&(!n||this._changeInProgress?ue(this,ne(e-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?s:jt(this):null!=e?this:NaN}function Zt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function $t(t){return this.utcOffset(0,t)}function qt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(jt(this),"m")),this}function Jt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Rt(Si,this._i)),this}function Bt(t){return this.isValid()?(t=t?Ft(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function Qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Xt(){if(!c(this._isDSTShifted))return this._isDSTShifted;var t={};if(f(t,this),t=Gt(t),t._a){var e=t._isUTC?o(t._a):Ft(t._a);this._isDSTShifted=this.isValid()&&p(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Kt(){return this.isValid()?!this._isUTC:!1}function te(){return this.isValid()?this._isUTC:!1}function ee(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ne(t,e){var n,i,s,a=t,o=null;return It(t)?a={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(a={},e?a[e]=t:a.milliseconds=t):(o=Ki.exec(t))?(n="-"===o[1]?-1:1,a={y:0,d:g(o[xi])*n,h:g(o[Ui])*n,m:g(o[Gi])*n,s:g(o[Pi])*n,ms:g(o[Ci])*n}):(o=ts.exec(t))?(n="-"===o[1]?-1:1,a={y:ie(o[2],n),M:ie(o[3],n),w:ie(o[4],n),d:ie(o[5],n),h:ie(o[6],n),m:ie(o[7],n),s:ie(o[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(s=re(Ft(a.from),Ft(a.to)),a={},a.ms=s.milliseconds,a.M=s.months),i=new Nt(a),It(t)&&r(t,"_locale")&&(i._locale=t._locale),i}function ie(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function se(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function re(t,e){var n;return t.isValid()&&e.isValid()?(e=Et(e,t),t.isBefore(e)?n=se(t,e):(n=se(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function ae(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function oe(t,e){return function(n,i){var s,r;return null===i||isNaN(+i)||(M(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),r=n,n=i,i=r),n="string"==typeof n?+n:n,s=ne(n,i),ue(this,s,t),this}}function ue(e,n,i,s){var r=n._milliseconds,a=ae(n._days),o=ae(n._months);e.isValid()&&(s=null==s?!0:s,r&&e._d.setTime(+e._d+r*i),a&&I(e,"Date",N(e,"Date")+a*i),o&&rt(e,N(e,"Month")+o*i),s&&t.updateOffset(e,a||o))}function de(t,e){var n=t||Ft(),i=Et(n,this).startOf("day"),s=this.diff(i,"days",!0),r=-6>s?"sameElse":-1>s?"lastWeek":0>s?"lastDay":1>s?"sameDay":2>s?"nextDay":7>s?"nextWeek":"sameElse",a=e&&(S(e[r])?e[r]():e[r]);return this.format(a||this.localeData().calendar(r,this,Ft(n)))}function le(){return new m(this)}function he(t,e){var n=_(t)?t:Ft(t);return this.isValid()&&n.isValid()?(e=H(c(e)?"millisecond":e),"millisecond"===e?+this>+n:+n<+this.clone().startOf(e)):!1}function ce(t,e){var n=_(t)?t:Ft(t);return this.isValid()&&n.isValid()?(e=H(c(e)?"millisecond":e),"millisecond"===e?+n>+this:+this.clone().endOf(e)<+n):!1}function fe(t,e,n){return this.isAfter(t,n)&&this.isBefore(e,n)}function me(t,e){var n,i=_(t)?t:Ft(t);return this.isValid()&&i.isValid()?(e=H(e||"millisecond"),"millisecond"===e?+this===+i:(n=+i,+this.clone().startOf(e)<=n&&n<=+this.clone().endOf(e))):!1}function _e(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ye(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ge(t,e,n){var i,s,r,a;return this.isValid()?(i=Et(t,this),i.isValid()?(s=6e4*(i.utcOffset()-this.utcOffset()),e=H(e),"year"===e||"month"===e||"quarter"===e?(a=pe(this,i),"quarter"===e?a/=3:"year"===e&&(a/=12)):(r=this-i,a="second"===e?r/1e3:"minute"===e?r/6e4:"hour"===e?r/36e5:"day"===e?(r-s)/864e5:"week"===e?(r-s)/6048e5:r),n?a:y(a)):NaN):NaN}function pe(t,e){var n,i,s=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(s,"months");return 0>e-r?(n=t.clone().add(s-1,"months"),i=(e-r)/(r-n)):(n=t.clone().add(s+1,"months"),i=(e-r)/(n-r)),-(s+i)}function ve(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function De(){var t=this.clone().utc();return 0r&&(e=r),Ze.call(this,t,e,n,i,s))}function Ze(t,e,n,i,s){var r=Dt(t,e,n,i,s),a=_t(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function $e(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function qe(t){return Mt(t,this._week.dow,this._week.doy).week}function Je(){return this._week.dow}function Be(){return this._week.doy}function Qe(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Xe(t){var e=Mt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ke(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function tn(t,e){return n(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function en(t){return this._weekdaysShort[t.day()]}function nn(t){return this._weekdaysMin[t.day()]}function sn(t,e,n){var i,s,r;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;7>i;i++){if(s=Ft([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(s,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(s,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(s,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(s,"")+"|^"+this.weekdaysShort(s,"")+"|^"+this.weekdaysMin(s,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function rn(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ke(t,this.localeData()),this.add(t-e,"d")):e}function an(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function on(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function un(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function dn(){return this.hours()%12||12}function ln(t,e){E(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function hn(t,e){return e._meridiemParse}function cn(t){return"p"===(t+"").toLowerCase().charAt(0)}function fn(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function mn(t,e){e[Ci]=g(1e3*("0."+t))}function _n(){return this._isUTC?"UTC":""}function yn(){return this._isUTC?"Coordinated Universal Time":""}function gn(t){return Ft(1e3*t)}function pn(){return Ft.apply(null,arguments).parseZone()}function vn(t,e,n){var i=this._calendar[t];return S(i)?i.call(e,n):i}function Dn(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function Mn(){return this._invalidDate}function Sn(t){return this._ordinal.replace("%d",t)}function Yn(t){return t}function wn(t,e,n,i){var s=this._relativeTime[n];return S(s)?s(t,e,n,i):s.replace(/%d/i,t)}function kn(t,e){var n=this._relativeTime[t>0?"future":"past"];return S(n)?n(e):n.replace(/%s/i,e)}function Tn(t,e,n,i){var s=P(),r=o().set(i,e);return s[n](r,t)}function bn(t,e,n,i,s){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Tn(t,e,n,s);var r,a=[];for(r=0;i>r;r++)a[r]=Tn(t,r,n,s);return a}function On(t,e){return bn(t,e,"months",12,"month")}function Wn(t,e){return bn(t,e,"monthsShort",12,"month")}function xn(t,e){return bn(t,e,"weekdays",7,"day")}function Un(t,e){return bn(t,e,"weekdaysShort",7,"day")}function Gn(t,e){return bn(t,e,"weekdaysMin",7,"day")}function Pn(){var t=this._data;return this._milliseconds=ws(this._milliseconds),this._days=ws(this._days),this._months=ws(this._months),t.milliseconds=ws(t.milliseconds),t.seconds=ws(t.seconds),t.minutes=ws(t.minutes),t.hours=ws(t.hours),t.months=ws(t.months),t.years=ws(t.years),this}function Cn(t,e,n,i){var s=ne(e,n);return t._milliseconds+=i*s._milliseconds,t._days+=i*s._days,t._months+=i*s._months,t._bubble()}function Fn(t,e){return Cn(this,t,e,1)}function Hn(t,e){return Cn(this,t,e,-1)}function Ln(t){return 0>t?Math.floor(t):Math.ceil(t)}function Vn(){var t,e,n,i,s,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||0>=r&&0>=a&&0>=o||(r+=864e5*Ln(In(o)+a),a=0,o=0),u.milliseconds=r%1e3,t=y(r/1e3),u.seconds=t%60,e=y(t/60),u.minutes=e%60,n=y(e/60),u.hours=n%24,a+=y(n/24),s=y(Nn(a)),o+=s,a-=Ln(In(s)),i=y(o/12),o%=12,u.days=a,u.months=o,u.years=i,this}function Nn(t){return 4800*t/146097}function In(t){return 146097*t/4800}function An(t){var e,n,i=this._milliseconds;if(t=H(t),"month"===t||"year"===t)return e=this._days+i/864e5,n=this._months+Nn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(In(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function Rn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function En(t){return function(){return this.as(t)}}function jn(t){return t=H(t),this[t+"s"]()}function zn(t){return function(){return this._data[t]}}function Zn(){return y(this.days()/7)}function $n(t,e,n,i,s){return s.relativeTime(e||1,!!n,t,i)}function qn(t,e,n){var i=ne(t).abs(),s=Is(i.as("s")),r=Is(i.as("m")),a=Is(i.as("h")),o=Is(i.as("d")),u=Is(i.as("M")),d=Is(i.as("y")),l=s=r&&["m"]||r=a&&["h"]||a=o&&["d"]||o=u&&["M"]||u=d&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=n,$n.apply(null,l)}function Jn(t,e){return void 0===As[t]?!1:void 0===e?As[t]:(As[t]=e,!0)}function Bn(t){var e=this.localeData(),n=qn(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function Qn(){var t,e,n,i=Rs(this._milliseconds)/1e3,s=Rs(this._days),r=Rs(this._months);t=y(i/60),e=y(t/60),i%=60,t%=60,n=y(r/12),r%=12;var a=n,o=r,u=s,d=e,l=t,h=i,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(a?a+"Y":"")+(o?o+"M":"")+(u?u+"D":"")+(d||l||h?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(h?h+"S":""):"P0D"}var Xn,Kn=t.momentProperties=[],ti=!1,ei={};t.suppressDeprecationWarnings=!1;var ni,ii={},si={},ri=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ai=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,oi={},ui={},di=/\d/,li=/\d\d/,hi=/\d{3}/,ci=/\d{4}/,fi=/[+-]?\d{6}/,mi=/\d\d?/,_i=/\d\d\d\d?/,yi=/\d\d\d\d\d\d?/,gi=/\d{1,3}/,pi=/\d{1,4}/,vi=/[+-]?\d{1,6}/,Di=/\d+/,Mi=/[+-]?\d+/,Si=/Z|[+-]\d\d:?\d\d/gi,Yi=/Z|[+-]\d\d(?::?\d\d)?/gi,wi=/[+-]?\d+(\.\d{1,3})?/,ki=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ti={},bi={},Oi=0,Wi=1,xi=2,Ui=3,Gi=4,Pi=5,Ci=6,Fi=7,Hi=8;E("M",["MM",2],"Mo",function(){return this.month()+1}),E("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),E("MMMM",0,0,function(t){return this.localeData().months(this,t)}),F("month","M"),q("M",mi),q("MM",mi,li),q("MMM",function(t,e){return e.monthsShortRegex(t)}),q("MMMM",function(t,e){return e.monthsRegex(t)}),X(["M","MM"],function(t,e){e[Wi]=g(t)-1}),X(["MMM","MMMM"],function(t,e,n,i){var s=n._locale.monthsParse(t,i,n._strict);null!=s?e[Wi]=s:d(n).invalidMonth=t});var Li=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Vi="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Ni="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ii=ki,Ai=ki,Ri=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Ei=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,ji=/Z|[+-]\d\d(?::?\d\d)?/,zi=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Zi=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],$i=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=D("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),E("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),E(0,["YY",2],0,function(){return this.year()%100}),E(0,["YYYY",4],0,"year"),E(0,["YYYYY",5],0,"year"),E(0,["YYYYYY",6,!0],0,"year"),F("year","y"),q("Y",Mi),q("YY",mi,li),q("YYYY",pi,ci),q("YYYYY",vi,fi),q("YYYYYY",vi,fi),X(["YYYYY","YYYYYY"],Oi),X("YYYY",function(e,n){n[Oi]=2===e.length?t.parseTwoDigitYear(e):g(e);}),X("YY",function(e,n){n[Oi]=t.parseTwoDigitYear(e)}),X("Y",function(t,e){e[Oi]=parseInt(t,10)}),t.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var qi=V("FullYear",!1);t.ISO_8601=function(){};var Ji=D("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Ft.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:h()}),Bi=D("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Ft.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:h()}),Qi=function(){return Date.now?Date.now():+new Date};At("Z",":"),At("ZZ",""),q("Z",Yi),q("ZZ",Yi),X(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Rt(Yi,t)});var Xi=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Ki=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,ts=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;ne.fn=Nt.prototype;var es=oe(1,"add"),ns=oe(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var is=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});E(0,["gg",2],0,function(){return this.weekYear()%100}),E(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ie("gggg","weekYear"),Ie("ggggg","weekYear"),Ie("GGGG","isoWeekYear"),Ie("GGGGG","isoWeekYear"),F("weekYear","gg"),F("isoWeekYear","GG"),q("G",Mi),q("g",Mi),q("GG",mi,li),q("gg",mi,li),q("GGGG",pi,ci),q("gggg",pi,ci),q("GGGGG",vi,fi),q("ggggg",vi,fi),K(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=g(t)}),K(["gg","GG"],function(e,n,i,s){n[s]=t.parseTwoDigitYear(e)}),E("Q",0,"Qo","quarter"),F("quarter","Q"),q("Q",di),X("Q",function(t,e){e[Wi]=3*(g(t)-1)}),E("w",["ww",2],"wo","week"),E("W",["WW",2],"Wo","isoWeek"),F("week","w"),F("isoWeek","W"),q("w",mi),q("ww",mi,li),q("W",mi),q("WW",mi,li),K(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=g(t)});var ss={dow:0,doy:6};E("D",["DD",2],"Do","date"),F("date","D"),q("D",mi),q("DD",mi,li),q("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),X(["D","DD"],xi),X("Do",function(t,e){e[xi]=g(t.match(mi)[0],10)});var rs=V("Date",!0);E("d",0,"do","day"),E("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),E("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),E("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),E("e",0,0,"weekday"),E("E",0,0,"isoWeekday"),F("day","d"),F("weekday","e"),F("isoWeekday","E"),q("d",mi),q("e",mi),q("E",mi),q("dd",ki),q("ddd",ki),q("dddd",ki),K(["dd","ddd","dddd"],function(t,e,n,i){var s=n._locale.weekdaysParse(t,i,n._strict);null!=s?e.d=s:d(n).invalidWeekday=t}),K(["d","e","E"],function(t,e,n,i){e[i]=g(t)});var as="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),os="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),us="Su_Mo_Tu_We_Th_Fr_Sa".split("_");E("DDD",["DDDD",3],"DDDo","dayOfYear"),F("dayOfYear","DDD"),q("DDD",gi),q("DDDD",hi),X(["DDD","DDDD"],function(t,e,n){n._dayOfYear=g(t)}),E("H",["HH",2],0,"hour"),E("h",["hh",2],0,dn),E("hmm",0,0,function(){return""+dn.apply(this)+R(this.minutes(),2)}),E("hmmss",0,0,function(){return""+dn.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),E("Hmm",0,0,function(){return""+this.hours()+R(this.minutes(),2)}),E("Hmmss",0,0,function(){return""+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),ln("a",!0),ln("A",!1),F("hour","h"),q("a",hn),q("A",hn),q("H",mi),q("h",mi),q("HH",mi,li),q("hh",mi,li),q("hmm",_i),q("hmmss",yi),q("Hmm",_i),q("Hmmss",yi),X(["H","HH"],Ui),X(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),X(["h","hh"],function(t,e,n){e[Ui]=g(t),d(n).bigHour=!0}),X("hmm",function(t,e,n){var i=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i)),d(n).bigHour=!0}),X("hmmss",function(t,e,n){var i=t.length-4,s=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i,2)),e[Pi]=g(t.substr(s)),d(n).bigHour=!0}),X("Hmm",function(t,e,n){var i=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i))}),X("Hmmss",function(t,e,n){var i=t.length-4,s=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i,2)),e[Pi]=g(t.substr(s))});var ds=/[ap]\.?m?\.?/i,ls=V("Hours",!0);E("m",["mm",2],0,"minute"),F("minute","m"),q("m",mi),q("mm",mi,li),X(["m","mm"],Gi);var hs=V("Minutes",!1);E("s",["ss",2],0,"second"),F("second","s"),q("s",mi),q("ss",mi,li),X(["s","ss"],Pi);var cs=V("Seconds",!1);E("S",0,0,function(){return~~(this.millisecond()/100)}),E(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),E(0,["SSS",3],0,"millisecond"),E(0,["SSSS",4],0,function(){return 10*this.millisecond()}),E(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),E(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),E(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),E(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),E(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),F("millisecond","ms"),q("S",gi,di),q("SS",gi,li),q("SSS",gi,hi);var fs;for(fs="SSSS";fs.length<=9;fs+="S")q(fs,Di);for(fs="S";fs.length<=9;fs+="S")X(fs,mn);var ms=V("Milliseconds",!1);E("z",0,0,"zoneAbbr"),E("zz",0,0,"zoneName");var _s=m.prototype;_s.add=es,_s.calendar=de,_s.clone=le,_s.diff=ge,_s.endOf=We,_s.format=Me,_s.from=Se,_s.fromNow=Ye,_s.to=we,_s.toNow=ke,_s.get=A,_s.invalidAt=Ve,_s.isAfter=he,_s.isBefore=ce,_s.isBetween=fe,_s.isSame=me,_s.isSameOrAfter=_e,_s.isSameOrBefore=ye,_s.isValid=He,_s.lang=is,_s.locale=Te,_s.localeData=be,_s.max=Bi,_s.min=Ji,_s.parsingFlags=Le,_s.set=A,_s.startOf=Oe,_s.subtract=ns,_s.toArray=Pe,_s.toObject=Ce,_s.toDate=Ge,_s.toISOString=De,_s.toJSON=Fe,_s.toString=ve,_s.unix=Ue,_s.valueOf=xe,_s.creationData=Ne,_s.year=qi,_s.isLeapYear=pt,_s.weekYear=Ae,_s.isoWeekYear=Re,_s.quarter=_s.quarters=$e,_s.month=at,_s.daysInMonth=ot,_s.week=_s.weeks=Qe,_s.isoWeek=_s.isoWeeks=Xe,_s.weeksInYear=je,_s.isoWeeksInYear=Ee,_s.date=rs,_s.day=_s.days=rn,_s.weekday=an,_s.isoWeekday=on,_s.dayOfYear=un,_s.hour=_s.hours=ls,_s.minute=_s.minutes=hs,_s.second=_s.seconds=cs,_s.millisecond=_s.milliseconds=ms,_s.utcOffset=zt,_s.utc=$t,_s.local=qt,_s.parseZone=Jt,_s.hasAlignedHourOffset=Bt,_s.isDST=Qt,_s.isDSTShifted=Xt,_s.isLocal=Kt,_s.isUtcOffset=te,_s.isUtc=ee,_s.isUTC=ee,_s.zoneAbbr=_n,_s.zoneName=yn,_s.dates=D("dates accessor is deprecated. Use date instead.",rs),_s.months=D("months accessor is deprecated. Use month instead",at),_s.years=D("years accessor is deprecated. Use year instead",qi),_s.zone=D("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Zt);var ys=_s,gs={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},ps={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},vs="Invalid date",Ds="%d",Ms=/\d{1,2}/,Ss={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ys=T.prototype;Ys._calendar=gs,Ys.calendar=vn,Ys._longDateFormat=ps,Ys.longDateFormat=Dn,Ys._invalidDate=vs,Ys.invalidDate=Mn,Ys._ordinal=Ds,Ys.ordinal=Sn,Ys._ordinalParse=Ms,Ys.preparse=Yn,Ys.postformat=Yn,Ys._relativeTime=Ss,Ys.relativeTime=wn,Ys.pastFuture=kn,Ys.set=w,Ys.months=nt,Ys._months=Vi,Ys.monthsShort=it,Ys._monthsShort=Ni,Ys.monthsParse=st,Ys._monthsRegex=Ai,Ys.monthsRegex=dt,Ys._monthsShortRegex=Ii,Ys.monthsShortRegex=ut,Ys.week=qe,Ys._week=ss,Ys.firstDayOfYear=Be,Ys.firstDayOfWeek=Je,Ys.weekdays=tn,Ys._weekdays=as,Ys.weekdaysMin=nn,Ys._weekdaysMin=us,Ys.weekdaysShort=en,Ys._weekdaysShort=os,Ys.weekdaysParse=sn,Ys.isPM=cn,Ys._meridiemParse=ds,Ys.meridiem=fn,x("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===g(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),t.lang=D("moment.lang is deprecated. Use moment.locale instead.",x),t.langData=D("moment.langData is deprecated. Use moment.localeData instead.",P);var ws=Math.abs,ks=En("ms"),Ts=En("s"),bs=En("m"),Os=En("h"),Ws=En("d"),xs=En("w"),Us=En("M"),Gs=En("y"),Ps=zn("milliseconds"),Cs=zn("seconds"),Fs=zn("minutes"),Hs=zn("hours"),Ls=zn("days"),Vs=zn("months"),Ns=zn("years"),Is=Math.round,As={s:45,m:45,h:22,d:26,M:11},Rs=Math.abs,Es=Nt.prototype;Es.abs=Pn,Es.add=Fn,Es.subtract=Hn,Es.as=An,Es.asMilliseconds=ks,Es.asSeconds=Ts,Es.asMinutes=bs,Es.asHours=Os,Es.asDays=Ws,Es.asWeeks=xs,Es.asMonths=Us,Es.asYears=Gs,Es.valueOf=Rn,Es._bubble=Vn,Es.get=jn,Es.milliseconds=Ps,Es.seconds=Cs,Es.minutes=Fs,Es.hours=Hs,Es.days=Ls,Es.weeks=Zn,Es.months=Vs,Es.years=Ns,Es.humanize=Bn,Es.toISOString=Qn,Es.toString=Qn,Es.toJSON=Qn,Es.locale=Te,Es.localeData=be,Es.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qn),Es.lang=is,E("X",0,0,"unix"),E("x",0,0,"valueOf"),q("x",Mi),q("X",wi),X("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),X("x",function(t,e,n){n._d=new Date(g(t))}),t.version="2.12.0",e(Ft),t.fn=ys,t.min=Lt,t.max=Vt,t.now=Qi,t.utc=o,t.unix=gn,t.months=On,t.isDate=i,t.locale=x,t.invalid=h,t.duration=ne,t.isMoment=_,t.weekdays=xn,t.parseZone=pn,t.localeData=P,t.isDuration=It,t.monthsShort=Wn,t.weekdaysMin=Gn,t.defineLocale=U,t.updateLocale=G,t.locales=C,t.weekdaysShort=Un,t.normalizeUnits=H,t.relativeTimeThreshold=Jn,t.prototype=ys;var js=t;return js}); + + +/** + * @module Slick + * @author Ken Wheeler + * @see http://kenwheeler.github.io/slick + * @version 1.6.0 + */ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('__N__ logo_squarred ? $mysoc->logo_squarred : $mysoc->logo, \'_small\') ?>\" alt=\"\" height=\"34\">__N__
    __N__
    __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__ __N____N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 189 -> 11__+MAX_llx_website_page__ - Aliases home --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(11__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'home', '', 'Home', 'Welcome', 'en', '', '', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N__ __N__ __N__ __N____N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Boost your business__N__
    __N__
    __N__

    We provide powerful solutions for all businesses

    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
     Best prices on the market __N__
    __N__
    __N__

    Our optimized processes allows us to provide you very competitive prices

    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N____N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    A competent team

    __N__
    __N__
    __N__
    __N__

    Our sales representative are also technicians.

    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__

    Take a look at our offers...

    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__

    Our customer-supplier relationship is very appreciated by our customers

    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    After Sale service

    __N__
    __N__
    __N__
    __N__

    We continue to follow and assist you after the sale. Contact us at any time.

    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__ __N__
    __N__
    __N__

    Looking for

    __N__

    a high quality service?

    __N__

    With a lot of experience, hiring us is a security for your business!

    __N__
    __N__
    __N__
    11
    __N__
    Years of Experience
    __N__
    __N__
    __N__
    __N__ query($sql); $obj = $db->fetch_object($resql); print $obj->nb; ?>__N__
    __N__
    Experts
    __N__
    __N__
    __N__
    __N__ query($sql); $obj = $db->fetch_object($resql); print $obj->nb; ?>__N__
    __N__
    Trusted Clients
    __N__
    __N__
    __N__
    __N__
    Contact us__N__   or  __N__ See our pricing
    __N__
    __N__
    __N__
    __N____N__ __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__
    __N__

    our plans

    __N____N__ __N__
    __N__ __N__
    __N__
    __N__
    __N__
    FREE
    __N__
    The best choice for personal use
    __N__
    The service 1 for free
    __N__
    __N__ 0/ month__N__
    __N__
    __N__ Available features are : __N__
      __N__
    • __N__ __N__ Service 1 __N__
    • __N__
    __N__
    __N__
    __N__ Subcribe__N__
    __N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    STARTER
    __N__
    For small companiess
    __N__
    The service 1 and product 1 at low price
    __N__
    __N__ 29/ month__N__
    __N__
    __N__ Available features are : __N__
      __N__
    • __N__ __N__ Service 1__N__
    • __N__
    • __N__ __N__ Product 1__N__
    • __N__
    __N__
    __N__
    __N__ Subscribe__N__
    __N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    PREMIUM
    __N__
    For large companies
    __N__
    The full option package for a one shot price__N__
    __N__
    __N__ 2499__N__
    __N__
    __N__ Available features are :__N__
      __N__
    • __N__ __N__ Service 1
    • __N__
    • __N__ __N__ Service 2
    • __N__
    • __N__ __N__ Product 1
    • __N__
    __N__
    __N__
    __N__ Buy__N__
    __N__
    __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N__

    our team

    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N____N____N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    Request a callback

    __N__
    __N__
    __N__ __N__
    __N__
    __N__ __N__
    __N__
    __N__ __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    successful cases

    __N__
    __N__
    __N__
    __N__
    __N__
    \"\"__N__
    __N__
    __N__
    __N__
    \"\"__N__
    __N__
    __N__
    __N__
    \"\"__N__
    __N__
    __N__
    __N__
    \"\"__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ Albert Einstein__N__
    __N__
    Scientist, www.emc2.org
    __N__
    __N__
    __N__
    __N__
    __N__
    -20%
    __N__
    Expenses
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__ They did everything, with almost no time or effort for me. The best part was that I could trust their team to represent our company professionally with our clients.__N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ Pierre Curie__N__
    __N__
    CEO “Cyclonic”
    __N__
    __N__
    __N__
    __N__
    __N__
    -30%
    __N__
    Expenses
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__ Their course gave me the confidence to implement new techniques in my work. I learn “how” to write – “what” and “why” also became much clearer.__N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ Marie Curie__N__
    __N__
    CTO \"Cyclonic\"
    __N__
    __N__
    __N__
    __N__
    __N__
    +22%
    __N__
    Turnover
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__ We were skeptical to work with a consultant to optimize our sales emails, but they were highly recommended by many other startups we knew. They helped us to reach our objective of 20% turnover increase, in 4 monthes.__N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ John Doe__N__
    __N__
    Sale representative
    __N__
    __N__
    __N__
    __N__
    __N__
    +40%
    __N__
    Quotes
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__ Their work on our website and Internet marketing has made a significant different to our business. We’ve seen a +40% increase in quote requests from our website.__N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N____N__ __N__
    __N__
    __N__

    Latest News

    __N__ __N__
    __N__
    __N____N____N__ __N____N____N__
    __N__', '', 0); +UPDATE llx_website SET fk_default_home = 11__+MAX_llx_website_page__ WHERE rowid = __WEBSITE_ID__; +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 190 -> 12__+MAX_llx_website_page__ - Aliases our-team --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(12__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'our-team', '', 'Our team', 'Our team', 'en', '', 'team', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N____N__ __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Our team__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__
    __N__

    __N__

    The crew...




    __N__ query($sql);__N__ if (! $resql) dol_print_error($db);__N__ while ($obj = $db->fetch_object($resql))__N__ {__N__ $arrayofusers[]=$obj->rowid;__N__ }__N__ __N__ print \'
    \';__N__ foreach($arrayofusers as $id)__N__ {__N__ $fuser->fetch($id);__N____N__ print \'
    \';__N__ print \'
    \';__N__ print \'
    \';__N__ if ($fuser->photo) print Form::showphoto(\'userphoto\', $fuser, 100, 0, 0, \'photowithmargin\', \'\', 0);__N__ //print \'photo.\'\" width=\"129\" height=\"129\" alt=\"\">\';__N__ else print \'\"\"\';__N__ print \'
    \';__N__ print \'
    \';__N__ print \'
    \'.$fuser->firstname.\'
    \';__N__ print \'
      \';__N__ //print \'
    • September 24, 2018
    • \';__N__ if ($fuser->job) print \'
    • \'.$fuser->job.\'
    • \';__N__ else print \'
    • \';__N__ print \'
    \';__N__ print \'
    \';__N__ print \'
    \';__N__ print \'
    \';__N__ }__N__ print \'
    \';__N____N__ ?>__N__
    __N__
    __N____N__

    __N____N__ __N____N__
    __N__ __N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 191 -> 13__+MAX_llx_website_page__ - Aliases partners --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(13__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'partners', '', 'Partners', 'Partners', 'en', '', 'partners', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N____N__ __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Partners__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__
    __N__
    __N__

    Our partners...

    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__

    __N____N__ __N____N__
    __N__ __N____N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 192 -> 14__+MAX_llx_website_page__ - Aliases pricing --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(14__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'pricing', '', 'Pricing', 'All the prices of our offers', 'en', '', 'pricing', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N____N__ __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Our plans__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N____N____N__ __N__
    __N__
    __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__
    __N____N__ __N__
    __N__ __N__
    __N__
    __N__
    __N__
    FREE
    __N__
    The best choice for personal use
    __N__
    The service 1 for free
    __N__
    __N__ 0/ month__N__
    __N__
    __N__ Available features are : __N__
      __N__
    • __N__ __N__ Service 1 __N__
    • __N__
    __N__
    __N__
    __N__ Subcribe__N__
    __N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    STARTER
    __N__
    For small companiess
    __N__
    The service 1 and product 1 at low price
    __N__
    __N__ 29/ month__N__
    __N__
    __N__ Available features are : __N__
      __N__
    • __N__ __N__ Service 1__N__
    • __N__
    • __N__ __N__ Product 1__N__
    • __N__
    __N__
    __N__
    __N__ Subscribe__N__
    __N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    PREMIUM
    __N__
    For large companies
    __N__
    The full option package for a one shot price__N__
    __N__
    __N__ 2499__N__
    __N__
    __N__ Available features are :__N__
      __N__
    • __N__ __N__ Service 1
    • __N__
    • __N__ __N__ Service 2
    • __N__
    • __N__ __N__ Product 1
    • __N__
    __N__
    __N__
    __N__ Buy__N__
    __N__
    __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__
    __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N__ __N__

    __N____N__ __N____N__
    __N__ __N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 193 -> 15__+MAX_llx_website_page__ - Aliases privacy-policies --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(15__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'privacy-policies', '', 'Privacy Policies', 'Privacy Policies', 'en', '', 'Privacy policies, GDPR', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N__ __N__ __N__ __N____N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Privacy Policy__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N__


    __N____N__
    __N__
    __N__

    Information collected and used


    __N__

    * Your customer information (email, phone, business name, first and last name of contact, address, postal code, country and VAT number) are stored when you become a customer. This information allows us to bill you. __N__

    * If you paid using our online service, we also store the last 4 digits of your card. The full details of your credit card is stored by our payment provider Stripe (the world leader in online payment).

    __N__

    * You have the option to request the deletion of your data and the above information at any time (except data required y fiscal tracking rules, like your invoices).

    __N__

    * The Privacy Policies and GDPR referral contact for our services is: global->MAIN_INFO_GDPR; ?>

    __N__


    __N__

    Data Storage and Backups


    __N__

    * The storage of collected data (see \'Information collected and used\') is done in a database.

    __N__

    * We made one backup every week. Only 4 weeks are kept.

    __N__


    __N__

    Subcontractor


    __N__

    * Our services relies on the following subcontractors and service:
    __N__** The host of computer servers, which is ABC company. These servers are hosted in US. No customer information is communicated to this subcontractor who only provides the hardware and network layer, the installation and operation being carried out by us directly.
    __N__** The online payment service Stripe, which is used, to ensure regular payment of subscription or your invoices paid online.

    __N__


    __N__

    Software Protection


    __N__

    * Our services runs on Linux Ubuntu systems and software. They benefit from regular security updates when the operating system editor (Ubuntu Canonical) publishes them.

    __N__

    * Our services are accessible in HTTPS (HTTP encrypted) only, encrypted with SHA256 certificates.

    __N__

    * Our technical platform are protected by various solutions.

    __N__


    __N__

    Data theft


    __N__

    * In case of suspicion of a theft of the data we have collected (see first point \'Information collected and used\'), customers will be informed by email, at email corresponding to their customer account

    __N__

     

    __N__
    __N__
    __N____N____N__ __N__ __N__ __N__
    __N__ __N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 194 -> 16__+MAX_llx_website_page__ - Aliases product-p --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(16__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'product-p', '', 'Product P', 'Product P', 'en', '', '', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N____N__ __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Product P__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__
    __N__
    __N__
    __N__
    __N__
    __N__This is a description page of our product P...
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__

    __N____N__ __N____N__
    __N__ __N____N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 195 -> 17__+MAX_llx_website_page__ - Aliases search --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(17__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'search', '', 'Search Page', 'Search Page', 'en', '', '', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N____N__ __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Search__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N__


    __N____N__
    __N__ __N__
    __N__
    __N__ \" />__N__
    __N__ \">__N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__ __N__ load(\"main\");__N__ __N__ if (function_exists(\'getPagesFromSearchCriterias\'))__N__ {__N__ if (GETPOSTISSET(\'s\'))__N__ {__N__ $listofpages = getPagesFromSearchCriterias(\'page\', \'meta\', GETPOST(\'s\', \'alphanohtml\'));__N__ if ($listofpages[\'code\'] == \'OK\')__N__ {__N__ foreach($listofpages[\'list\'] as $websitepagefound)__N__ {__N__ print \'
    ref.\'.php\">\'.$websitepagefound->title.\' - \'.$websitepagefound->description.\'
    \';__N__ }__N__ }__N__ else__N__ {__N__ // If error, show message__N__ print $listofpages[\'message\'];__N__ }__N__ }__N__ }__N__ else__N__ {__N__ print $weblangs->trans(\"FeatureNotYetAvailable\");__N__ }__N__ ?>__N__ __N__





    __N__
    __N____N__ __N____N__
    __N__', '', 0); +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-08 18:23:16 UTC --; +-- Page ID 196 -> 18__+MAX_llx_website_page__ - Aliases service-s --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(18__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'service-s', '', 'Service S', 'Service S', 'en', '', '', '1', '2020-10-07 13:13:26', '2022-07-12 11:17:55', null, '', 'page', '', '
    __N____N__ __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    Service S__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__
    __N__
    __N__
    __N__
    __N__
    __N__This is a description page of our service S...
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__

    __N____N__ __N____N__
    __N__', '', 0); + +-- For Dolibarr v14+ --; +UPDATE llx_website SET lang = 'en' WHERE rowid = __WEBSITE_ID__; +UPDATE llx_website SET otherlang = '' WHERE rowid = __WEBSITE_ID__; + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu.jpg b/htdocs/install/doctemplates/websites/website_template-homesubmenu.jpg new file mode 100644 index 00000000000..1479f08b5d9 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-homesubmenu.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/LICENSE b/htdocs/install/doctemplates/websites/website_template-homesubmenu/LICENSE new file mode 100644 index 00000000000..871ef743662 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/LICENSE @@ -0,0 +1,4 @@ +LICENSE +------- + +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/README.md b/htdocs/install/doctemplates/websites/website_template-homesubmenu/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/.dolibarr b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/.dolibarr new file mode 100644 index 00000000000..0ef9997b4ab --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/.dolibarr @@ -0,0 +1,2 @@ +# Some properties for Dolibarr web site CMS +param=value diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/.htaccess b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/.htaccess new file mode 100644 index 00000000000..ed27b33461f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/.htaccess @@ -0,0 +1,2 @@ +# Order allow,deny +# Deny from all diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/LICENSE b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/LICENSE new file mode 100644 index 00000000000..6ee68185103 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/LICENSE @@ -0,0 +1 @@ +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/README.md b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/htmlheader.html b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/htmlheader.html new file mode 100644 index 00000000000..0de0b36283f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/htmlheader.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/index.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/index.php new file mode 100644 index 00000000000..967c5deb878 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/index.php @@ -0,0 +1,5 @@ +ref.'/page202.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/javascript.js.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/javascript.js.php new file mode 100644 index 00000000000..f58102cf00b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/javascript.js.php @@ -0,0 +1,13 @@ + +/* JS content (all pages) */ + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/manifest.json.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/manifest.json.php new file mode 100644 index 00000000000..8f844114e48 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/manifest.json.php @@ -0,0 +1,13 @@ + + + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/master.inc.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/master.inc.php new file mode 100644 index 00000000000..bd25ba5895d --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/master.inc.php @@ -0,0 +1,7 @@ + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/page202.tpl.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/page202.tpl.php new file mode 100644 index 00000000000..f0c564c2d61 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/page202.tpl.php @@ -0,0 +1,315 @@ + + + +Home page + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + +email; + $message = GETPOST('message', 'alpha'); + $cmail = new CMailFile('Contact from website', $to, $from, $message); + if ($cmail->sendfile()) { + ?> + + trans("ErrorFailedToSendMail", $from, $to).'. '.$cmail->error; + } +} +?> +
    + + +
    +
    +
    +
    +

    Get Productive

    +

    + Lorem ipsum dolor, sit amet consectetur adipisicing + elit. Ab fuga nobis omnis alias, aliquid iste cumque + tempora nam reprehenderit quia itaque debitis, + nostrum labore rerum reiciendis laboriosam unde, + tempore corporis. +

    + landing-img +
    + + Learn More + +
    +
    +
    +
    +
    +
    +
    +

    + LOREM IPSUM DOLOR SIT AMET EZAJB +

    + article +
    +
    +

    Our Company

    +

    + Lorem ipsum dolor, sit amet consectetur adipisicing + elit. Ab fuga nobis omnis alias, aliquid iste cumque + tempora nam reprehenderit quia itaque debitis, + nostrum labore rerum reiciendis laboriosam unde, + tempore corporis. +

    +
    +
    +
    +
    +
    +
    +
    +
    +

    Founders

    +
      +
    • +

      Author One

      +
    • +
    • +

      Author Two

      +
    • +
    • +

      Author Three

      +
    • +
    • +

      Author Four

      +
    • +
    +
    +
    +

    About

    +

    + Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis accusantium earum sed odit velit laudantium ex libero quisquam consectetur, + dolorem vero ipsam perferendis quibusdam itaque omnis a consequatur error repellat. +

    +
    +
    +
    +
    + +
    +

    Contact us

    + +

    Do you have any questions? Please do not hesitate to contact us directly. Our team will come back to you within + a matter of hours to help you.

    + +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    + + +
    +
    +
      +
    • +

      getFullAddress() ?>

      +
    • + +
    • +

      phone ?>

      +
    • + +
    • +

      email ?>

      +
    • +
    +
    + +
    + + +
    +
    + +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/robots.txt b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/robots.txt new file mode 100644 index 00000000000..2b844f479d6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/robots.txt @@ -0,0 +1,4 @@ +# Robot file. Generated with Dolibarr +User-agent: * +Allow: /public/ +Disallow: /administrator/ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/styles.css.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/styles.css.php new file mode 100644 index 00000000000..d194541d6ea --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/styles.css.php @@ -0,0 +1,12508 @@ + +@charset "UTF-8"; + +.bodywebsite :root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +.bodywebsite *, + .bodywebsite *::before, + .bodywebsite *::after { + box-sizing: border-box; +} + +.bodywebsite .text-white{ + color: white; +} + +@media (prefers-reduced-motion: no-preference) { + .bodywebsite :root { + scroll-behavior: smooth; + } +} + +.bodywebsite body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +} + +.bodywebsite hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +.bodywebsite h6, .bodywebsite .h6, .bodywebsite h5, .bodywebsite .h5, .bodywebsite h4, .bodywebsite .h4, .bodywebsite h3, .bodywebsite .h3, .bodywebsite h2, .bodywebsite .h2, .bodywebsite h1, .bodywebsite .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +.bodywebsite h1, .bodywebsite .h1 { + font-size: calc(1.375rem + 1.5vw); +} + +@media (min-width: 1200px) { + .bodywebsite h1, .bodywebsite .h1 { + font-size: 2.5rem; + } +} + +.bodywebsite h2, .bodywebsite .h2 { + font-size: calc(1.325rem + 0.9vw); +} + +@media (min-width: 1200px) { + .bodywebsite h2, .bodywebsite .h2 { + font-size: 2rem; + } +} + +.bodywebsite h3, .bodywebsite .h3 { + font-size: calc(1.3rem + 0.6vw); +} + +@media (min-width: 1200px) { + .bodywebsite h3, .bodywebsite .h3 { + font-size: 1.75rem; + } +} + +.bodywebsite h4, .bodywebsite .h4 { + font-size: calc(1.275rem + 0.3vw); +} + +@media (min-width: 1200px) { + .bodywebsite h4, .bodywebsite .h4 { + font-size: 1.5rem; + } +} + +.bodywebsite h5, .bodywebsite .h5 { + font-size: 1.25rem; +} + +.bodywebsite h6, .bodywebsite .h6 { + font-size: 1rem; +} + +.bodywebsite p { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +.bodywebsite address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +.bodywebsite ol, + .bodywebsite ul { + padding-left: 2rem; +} + +.bodywebsite ol, + .bodywebsite ul, + .bodywebsite dl { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite ol ol, + .bodywebsite ul ul, + .bodywebsite ol ul, + .bodywebsite ul ol { + margin-bottom: 0; +} + +.bodywebsite dt { + font-weight: 700; +} + +.bodywebsite dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +.bodywebsite blockquote { + margin: 0 0 1rem; +} + +.bodywebsite b, + .bodywebsite strong { + font-weight: bolder; +} + +.bodywebsite small, .bodywebsite .small { + font-size: 0.875em; +} + +.bodywebsite mark, .bodywebsite .mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +.bodywebsite sub, + .bodywebsite sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +.bodywebsite sub { + bottom: -0.25em; +} + +.bodywebsite sup { + top: -0.5em; +} + +.bodywebsite a { + color: var(--bs-link-color); + text-decoration: underline; +} + +.bodywebsite a:hover { + color: var(--bs-link-hover-color); +} + +.bodywebsite a:not([href]):not([class]), .bodywebsite a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +.bodywebsite pre, + .bodywebsite code, + .bodywebsite kbd, + .bodywebsite samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +.bodywebsite pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} + +.bodywebsite pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.bodywebsite code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} + +.bodywebsite a > code { + color: inherit; +} + +.bodywebsite kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} + +.bodywebsite kbd kbd { + padding: 0; + font-size: 1em; +} + +.bodywebsite figure { + margin: 0 0 1rem; +} + +.bodywebsite img, + .bodywebsite svg { + vertical-align: middle; +} + +.bodywebsite table { + caption-side: bottom; + border-collapse: collapse; +} + +.bodywebsite caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +.bodywebsite th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +.bodywebsite thead, + .bodywebsite tbody, + .bodywebsite tfoot, + .bodywebsite tr, + .bodywebsite td, + .bodywebsite th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +.bodywebsite label { + display: inline-block; +} + +.bodywebsite button { + border-radius: 0; +} + +.bodywebsite button:focus:not(:focus-visible) { + outline: 0; +} + +.bodywebsite input, + .bodywebsite button, + .bodywebsite select, + .bodywebsite optgroup, + .bodywebsite textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.bodywebsite button, + .bodywebsite select { + text-transform: none; +} + +.bodywebsite [role=button] { + cursor: pointer; +} + +.bodywebsite select { + word-wrap: normal; +} + +.bodywebsite select:disabled { + opacity: 1; +} + +.bodywebsite [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +.bodywebsite button, + .bodywebsite [type=button], + .bodywebsite [type=reset], + .bodywebsite [type=submit] { + -webkit-appearance: button; +} + +.bodywebsite button:not(:disabled), + .bodywebsite [type=button]:not(:disabled), + .bodywebsite [type=reset]:not(:disabled), + .bodywebsite [type=submit]:not(:disabled) { + cursor: pointer; +} + +.bodywebsite ::-moz-focus-inner { + padding: 0; + border-style: none; +} + +.bodywebsite textarea { + resize: vertical; +} + +.bodywebsite fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +.bodywebsite legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} + +@media (min-width: 1200px) { + .bodywebsite legend { + font-size: 1.5rem; + } +} + +.bodywebsite legend + * { + clear: left; +} + +.bodywebsite ::-webkit-datetime-edit-fields-wrapper, + .bodywebsite ::-webkit-datetime-edit-text, + .bodywebsite ::-webkit-datetime-edit-minute, + .bodywebsite ::-webkit-datetime-edit-hour-field, + .bodywebsite ::-webkit-datetime-edit-day-field, + .bodywebsite ::-webkit-datetime-edit-month-field, + .bodywebsite ::-webkit-datetime-edit-year-field { + padding: 0; +} + +.bodywebsite ::-webkit-inner-spin-button { + height: auto; +} + +.bodywebsite [type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +.bodywebsite ::-webkit-search-decoration { + -webkit-appearance: none; +} + +.bodywebsite ::-webkit-color-swatch-wrapper { + padding: 0; +} + +.bodywebsite ::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite ::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite output { + display: inline-block; +} + +.bodywebsite iframe { + border: 0; +} + +.bodywebsite summary { + display: list-item; + cursor: pointer; +} + +.bodywebsite progress { + vertical-align: baseline; +} + +.bodywebsite [hidden] { + display: none !important; +} + +.bodywebsite .lead { + font-size: 1.25rem; + font-weight: 300; +} + +.bodywebsite .display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-1 { + font-size: 5rem; + } +} + +.bodywebsite .display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-2 { + font-size: 4.5rem; + } +} + +.bodywebsite .display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-3 { + font-size: 4rem; + } +} + +.bodywebsite .display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-4 { + font-size: 3.5rem; + } +} + +.bodywebsite .display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-5 { + font-size: 3rem; + } +} + +.bodywebsite .display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-6 { + font-size: 2.5rem; + } +} + +.bodywebsite .list-unstyled { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline-item { + display: inline-block; +} + +.bodywebsite .list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.bodywebsite .initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.bodywebsite .blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.bodywebsite .blockquote > :last-child { + margin-bottom: 0; +} + +.bodywebsite .blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .blockquote-footer::before { + content: "— "; +} + +.bodywebsite .img-fluid { + max-width: 100%; + height: auto; +} + +.bodywebsite .img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid var(--bs-border-color); + border-radius: 0.375rem; + max-width: 100%; + height: auto; +} + +.bodywebsite .figure { + display: inline-block; +} + +.bodywebsite .figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.bodywebsite .figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .container, + .bodywebsite .container-fluid, + .bodywebsite .container-xxl, + .bodywebsite .container-xl, + .bodywebsite .container-lg, + .bodywebsite .container-md, + .bodywebsite .container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .container-sm, .bodywebsite .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1140px; + } +} + +@media (min-width: 1400px) { + .bodywebsite .container-xxl, .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1320px; + } +} + +.bodywebsite .row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} + +.bodywebsite .row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.bodywebsite .col { + flex: 1 0 0%; +} + +.bodywebsite .row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.bodywebsite .row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.bodywebsite .row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.bodywebsite .col-auto { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.bodywebsite .col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.bodywebsite .col-3 { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.bodywebsite .col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.bodywebsite .col-6 { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.bodywebsite .col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.bodywebsite .col-9 { + flex: 0 0 auto; + width: 75%; +} + +.bodywebsite .col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.bodywebsite .col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.bodywebsite .col-12 { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .offset-1 { + margin-left: 8.33333333%; +} + +.bodywebsite .offset-2 { + margin-left: 16.66666667%; +} + +.bodywebsite .offset-3 { + margin-left: 25%; +} + +.bodywebsite .offset-4 { + margin-left: 33.33333333%; +} + +.bodywebsite .offset-5 { + margin-left: 41.66666667%; +} + +.bodywebsite .offset-6 { + margin-left: 50%; +} + +.bodywebsite .offset-7 { + margin-left: 58.33333333%; +} + +.bodywebsite .offset-8 { + margin-left: 66.66666667%; +} + +.bodywebsite .offset-9 { + margin-left: 75%; +} + +.bodywebsite .offset-10 { + margin-left: 83.33333333%; +} + +.bodywebsite .offset-11 { + margin-left: 91.66666667%; +} + +.bodywebsite .g-0, + .bodywebsite .gx-0 { + --bs-gutter-x: 0; +} + +.bodywebsite .g-0, + .bodywebsite .gy-0 { + --bs-gutter-y: 0; +} + +.bodywebsite .g-1, + .bodywebsite .gx-1 { + --bs-gutter-x: 0.25rem; +} + +.bodywebsite .g-1, + .bodywebsite .gy-1 { + --bs-gutter-y: 0.25rem; +} + +.bodywebsite .g-2, + .bodywebsite .gx-2 { + --bs-gutter-x: 0.5rem; +} + +.bodywebsite .g-2, + .bodywebsite .gy-2 { + --bs-gutter-y: 0.5rem; +} + +.bodywebsite .g-3, + .bodywebsite .gx-3 { + --bs-gutter-x: 1rem; +} + +.bodywebsite .g-3, + .bodywebsite .gy-3 { + --bs-gutter-y: 1rem; +} + +.bodywebsite .g-4, + .bodywebsite .gx-4 { + --bs-gutter-x: 1.5rem; +} + +.bodywebsite .g-4, + .bodywebsite .gy-4 { + --bs-gutter-y: 1.5rem; +} + +.bodywebsite .g-5, + .bodywebsite .gx-5 { + --bs-gutter-x: 3rem; +} + +.bodywebsite .g-5, + .bodywebsite .gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .bodywebsite .col-sm { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-sm-0 { + margin-left: 0; + } + + .bodywebsite .offset-sm-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-sm-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-sm-3 { + margin-left: 25%; + } + + .bodywebsite .offset-sm-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-sm-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-sm-6 { + margin-left: 50%; + } + + .bodywebsite .offset-sm-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-sm-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-sm-9 { + margin-left: 75%; + } + + .bodywebsite .offset-sm-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-sm-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gx-sm-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gy-sm-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 768px) { + .bodywebsite .col-md { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-md-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-md-0 { + margin-left: 0; + } + + .bodywebsite .offset-md-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-md-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-md-3 { + margin-left: 25%; + } + + .bodywebsite .offset-md-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-md-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-md-6 { + margin-left: 50%; + } + + .bodywebsite .offset-md-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-md-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-md-9 { + margin-left: 75%; + } + + .bodywebsite .offset-md-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-md-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-md-0, + .bodywebsite .gx-md-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-md-0, + .bodywebsite .gy-md-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-md-1, + .bodywebsite .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-md-1, + .bodywebsite .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gy-md-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 992px) { + .bodywebsite .col-lg { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-lg-0 { + margin-left: 0; + } + + .bodywebsite .offset-lg-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-lg-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-lg-3 { + margin-left: 25%; + } + + .bodywebsite .offset-lg-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-lg-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-lg-6 { + margin-left: 50%; + } + + .bodywebsite .offset-lg-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-lg-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-lg-9 { + margin-left: 75%; + } + + .bodywebsite .offset-lg-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-lg-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gx-lg-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gy-lg-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1200px) { + .bodywebsite .col-xl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gx-xl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gy-xl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1400px) { + .bodywebsite .col-xxl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xxl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xxl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xxl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xxl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} + +.bodywebsite .table { + --bs-table-color: var(--bs-body-color); + --bs-table-bg: transparent; + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-body-color); + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: var(--bs-body-color); + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: var(--bs-body-color); + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: var(--bs-table-color); + vertical-align: top; + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} + +.bodywebsite .table > tbody { + vertical-align: inherit; +} + +.bodywebsite .table > thead { + vertical-align: bottom; +} + +.bodywebsite .table-group-divider { + border-top: 2px solid currentcolor; +} + +.bodywebsite .caption-top { + caption-side: top; +} + +.bodywebsite .table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.bodywebsite .table-bordered > :not(caption) > * { + border-width: 1px 0; +} + +.bodywebsite .table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.bodywebsite .table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.bodywebsite .table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.bodywebsite .table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.bodywebsite .table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.bodywebsite .table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #bacbe6; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #cbccce; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #bcd0c7; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #badce3; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #e6dbb9; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #dfc2c4; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #dfe0e1; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #373b3e; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .bodywebsite .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +.bodywebsite .form-label { + margin-bottom: 0.5rem; +} + +.bodywebsite .col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.bodywebsite .col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.bodywebsite .col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.bodywebsite .form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control { + transition: none; + } +} + +.bodywebsite .form-control[type=file] { + overflow: hidden; +} + +.bodywebsite .form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-control::-webkit-date-and-time-value { + height: 1.5em; +} + +.bodywebsite .form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control:disabled { + background-color: #e9ecef; + opacity: 1; +} + +.bodywebsite .form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.bodywebsite .form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } + + .bodywebsite .form-control::file-selector-button { + transition: none; + } +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.bodywebsite .form-control-plaintext:focus { + outline: 0; +} + +.bodywebsite .form-control-plaintext.form-control-sm, .bodywebsite .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.bodywebsite .form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite .form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); +} + +.bodywebsite textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem; +} + +.bodywebsite .form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color::-webkit-color-swatch { + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite .form-control-color.form-control-lg { + height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-select { + transition: none; + } +} + +.bodywebsite .form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-select[multiple], .bodywebsite .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} + +.bodywebsite .form-select:disabled { + background-color: #e9ecef; +} + +.bodywebsite .form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.bodywebsite .form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} + +.bodywebsite .form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.bodywebsite .form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} + +.bodywebsite .form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.bodywebsite .form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} + +.bodywebsite .form-check-input[type=checkbox] { + border-radius: 0.25em; +} + +.bodywebsite .form-check-input[type=radio] { + border-radius: 50%; +} + +.bodywebsite .form-check-input:active { + filter: brightness(90%); +} + +.bodywebsite .form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} + +.bodywebsite .form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} + +.bodywebsite .form-check-input[disabled] ~ .form-check-label, .bodywebsite .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.bodywebsite .form-switch { + padding-left: 2.5em; +} + +.bodywebsite .form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-switch .form-check-input { + transition: none; + } +} + +.bodywebsite .form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} + +.bodywebsite .form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.bodywebsite .form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.bodywebsite .btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.bodywebsite .btn-check[disabled] + .btn, .bodywebsite .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +.bodywebsite .form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.bodywebsite .form-range:focus { + outline: 0; +} + +.bodywebsite .form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range::-moz-focus-outer { + border: 0; +} + +.bodywebsite .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range:disabled { + pointer-events: none; +} + +.bodywebsite .form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-floating { + position: relative; +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext, + .bodywebsite .form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} + +.bodywebsite .form-floating > label { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-floating > label { + transition: none; + } +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} + +.bodywebsite .form-floating > .form-control::-moz-placeholder, .bodywebsite .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control::placeholder, + .bodywebsite .form-floating > .form-control-plaintext::placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown), .bodywebsite .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:focus, .bodywebsite .form-floating > .form-control:not(:placeholder-shown), + .bodywebsite .form-floating > .form-control-plaintext:focus, + .bodywebsite .form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill, + .bodywebsite .form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:focus ~ label, + .bodywebsite .form-floating > .form-control:not(:placeholder-shown) ~ label, + .bodywebsite .form-floating > .form-control-plaintext ~ label, + .bodywebsite .form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} + +.bodywebsite .input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.bodywebsite .input-group > .form-control, + .bodywebsite .input-group > .form-select, + .bodywebsite .input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} + +.bodywebsite .input-group > .form-control:focus, + .bodywebsite .input-group > .form-select:focus, + .bodywebsite .input-group > .form-floating:focus-within { + z-index: 5; +} + +.bodywebsite .input-group .btn { + position: relative; + z-index: 2; +} + +.bodywebsite .input-group .btn:focus { + z-index: 5; +} + +.bodywebsite .input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.375rem; +} + +.bodywebsite .input-group-lg > .form-control, + .bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-lg > .input-group-text, + .bodywebsite .input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .input-group-sm > .form-control, + .bodywebsite .input-group-sm > .form-select, + .bodywebsite .input-group-sm > .input-group-text, + .bodywebsite .input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-sm > .form-select { + padding-right: 3rem; +} + +.bodywebsite .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .input-group > .form-floating:not(:first-child) > .form-control, + .bodywebsite .input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.bodywebsite .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :valid ~ .valid-feedback, + .bodywebsite .was-validated :valid ~ .valid-tooltip, + .bodywebsite .is-valid ~ .valid-feedback, + .bodywebsite .is-valid ~ .valid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:valid, .bodywebsite .form-control.is-valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:valid:focus, .bodywebsite .form-control.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:valid, .bodywebsite textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:valid, .bodywebsite .form-select.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-select:valid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:valid:not([multiple])[size="1"], .bodywebsite .form-select.is-valid:not([multiple]):not([size]), .bodywebsite .form-select.is-valid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:valid:focus, .bodywebsite .form-select.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-control-color:valid, .bodywebsite .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:valid, .bodywebsite .form-check-input.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:checked, .bodywebsite .form-check-input.is-valid:checked { + background-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:focus, .bodywebsite .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-check-input:valid ~ .form-check-label, .bodywebsite .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.bodywebsite .form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):valid, .bodywebsite .input-group > .form-control:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):valid, + .bodywebsite .input-group > .form-select:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):valid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.bodywebsite .invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.bodywebsite .invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :invalid ~ .invalid-feedback, + .bodywebsite .was-validated :invalid ~ .invalid-tooltip, + .bodywebsite .is-invalid ~ .invalid-feedback, + .bodywebsite .is-invalid ~ .invalid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:invalid, .bodywebsite .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:invalid:focus, .bodywebsite .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:invalid, .bodywebsite textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:invalid, .bodywebsite .form-select.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-select:invalid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:invalid:not([multiple])[size="1"], .bodywebsite .form-select.is-invalid:not([multiple]):not([size]), .bodywebsite .form-select.is-invalid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:invalid:focus, .bodywebsite .form-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-control-color:invalid, .bodywebsite .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:invalid, .bodywebsite .form-check-input.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:checked, .bodywebsite .form-check-input.is-invalid:checked { + background-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:focus, .bodywebsite .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-check-input:invalid ~ .form-check-label, .bodywebsite .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.bodywebsite .form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):invalid, .bodywebsite .input-group > .form-control:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):invalid, + .bodywebsite .input-group > .form-select:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):invalid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.bodywebsite .btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: #212529; + --bs-btn-bg: transparent; + --bs-btn-border-width: 1px; + --bs-btn-border-color: transparent; + --bs-btn-border-radius: 0.375rem; + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .btn { + transition: none; + } +} + +.bodywebsite :not(.btn-check) + .btn:hover, .bodywebsite .btn:first-child:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} + +.bodywebsite .btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:checked + .btn, .bodywebsite :not(.btn-check) + .btn:active, .bodywebsite .btn:first-child:active, .bodywebsite .btn.active, .bodywebsite .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} + +.bodywebsite .btn-check:checked + .btn:focus-visible, .bodywebsite :not(.btn-check) + .btn:active:focus-visible, .bodywebsite .btn:first-child:active:focus-visible, .bodywebsite .btn.active:focus-visible, .bodywebsite .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn:disabled, .bodywebsite .btn.disabled, .bodywebsite fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.bodywebsite .btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; +} + +.bodywebsite .btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; +} + +.bodywebsite .btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.bodywebsite .btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.bodywebsite .btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.bodywebsite .btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.bodywebsite .btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.bodywebsite .btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.bodywebsite .btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.bodywebsite .btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: none; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; +} + +.bodywebsite .btn-link:focus-visible { + color: var(--bs-btn-color); +} + +.bodywebsite .btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.bodywebsite .btn-lg, .bodywebsite .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: 0.5rem; +} + +.bodywebsite .btn-sm, .bodywebsite .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: 0.25rem; +} + +.bodywebsite .fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .fade { + transition: none; + } +} + +.bodywebsite .fade:not(.show) { + opacity: 0; +} + +.bodywebsite .collapse:not(.show) { + display: none; +} + +.bodywebsite .collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing { + transition: none; + } +} + +.bodywebsite .collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing.collapse-horizontal { + transition: none; + } +} + +.bodywebsite .dropup, + .bodywebsite .dropend, + .bodywebsite .dropdown, + .bodywebsite .dropstart, + .bodywebsite .dropup-center, + .bodywebsite .dropdown-center { + position: relative; +} + +.bodywebsite .dropdown-toggle { + white-space: nowrap; +} + +.bodywebsite .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: #212529; + --bs-dropdown-bg: #fff; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: 0.375rem; + --bs-dropdown-border-width: 1px; + --bs-dropdown-inner-border-radius: calc(0.375rem - 1px); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-dropdown-link-color: #212529; + --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-bg: #e9ecef; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); +} + +.bodywebsite .dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropdown-menu-start { + --bs-position: start; +} + +.bodywebsite .dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.bodywebsite .dropdown-menu-end { + --bs-position: end; +} + +.bodywebsite .dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .dropdown-menu-sm-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-sm-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .bodywebsite .dropdown-menu-md-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-md-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .bodywebsite .dropdown-menu-lg-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-lg-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .bodywebsite .dropdown-menu-xl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1400px) { + .bodywebsite .dropdown-menu-xxl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xxl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +.bodywebsite .dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.bodywebsite .dropend .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.bodywebsite .dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: none; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.bodywebsite .dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.bodywebsite .dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.bodywebsite .dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.bodywebsite .dropdown-item:hover, .bodywebsite .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} + +.bodywebsite .dropdown-item.active, .bodywebsite .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} + +.bodywebsite .dropdown-item.disabled, .bodywebsite .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.bodywebsite .dropdown-menu.show { + display: block; +} + +.bodywebsite .dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.bodywebsite .dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.bodywebsite .dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.bodywebsite .btn-group, + .bodywebsite .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.bodywebsite .btn-group > .btn, + .bodywebsite .btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.bodywebsite .btn-group > .btn-check:checked + .btn, + .bodywebsite .btn-group > .btn-check:focus + .btn, + .bodywebsite .btn-group > .btn:hover, + .bodywebsite .btn-group > .btn:focus, + .bodywebsite .btn-group > .btn:active, + .bodywebsite .btn-group > .btn.active, + .bodywebsite .btn-group-vertical > .btn-check:checked + .btn, + .bodywebsite .btn-group-vertical > .btn-check:focus + .btn, + .bodywebsite .btn-group-vertical > .btn:hover, + .bodywebsite .btn-group-vertical > .btn:focus, + .bodywebsite .btn-group-vertical > .btn:active, + .bodywebsite .btn-group-vertical > .btn.active { + z-index: 1; +} + +.bodywebsite .btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.bodywebsite .btn-toolbar .input-group { + width: auto; +} + +.bodywebsite .btn-group { + border-radius: 0.375rem; +} + +.bodywebsite .btn-group > :not(.btn-check:first-child) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.bodywebsite .btn-group > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group > .btn.dropdown-toggle-split:first-child, + .bodywebsite .btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .btn-group > .btn:nth-child(n+3), + .bodywebsite .btn-group > :not(.btn-check) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.bodywebsite .dropdown-toggle-split::after, .bodywebsite .dropup .dropdown-toggle-split::after, .bodywebsite .dropend .dropdown-toggle-split::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.bodywebsite .btn-sm + .dropdown-toggle-split, .bodywebsite .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.bodywebsite .btn-lg + .dropdown-toggle-split, .bodywebsite .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.bodywebsite .btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.bodywebsite .btn-group-vertical > .btn, + .bodywebsite .btn-group-vertical > .btn-group { + width: 100%; +} + +.bodywebsite .btn-group-vertical > .btn:not(:first-child), + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.bodywebsite .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .btn-group-vertical > .btn ~ .btn, + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .nav-link { + transition: none; + } +} + +.bodywebsite .nav-link:hover, .bodywebsite .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} + +.bodywebsite .nav-link.disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.bodywebsite .nav-tabs { + --bs-nav-tabs-border-width: 1px; + --bs-nav-tabs-border-color: #dee2e6; + --bs-nav-tabs-border-radius: 0.375rem; + --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6; + --bs-nav-tabs-link-active-color: #495057; + --bs-nav-tabs-link-active-bg: #fff; + --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff; + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} + +.bodywebsite .nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + background: none; + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} + +.bodywebsite .nav-tabs .nav-link:hover, .bodywebsite .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} + +.bodywebsite .nav-tabs .nav-link.disabled, .bodywebsite .nav-tabs .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-tabs .nav-link.active, + .bodywebsite .nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} + +.bodywebsite .nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav-pills { + --bs-nav-pills-border-radius: 0.375rem; + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} + +.bodywebsite .nav-pills .nav-link { + background: none; + border: 0; + border-radius: var(--bs-nav-pills-border-radius); +} + +.bodywebsite .nav-pills .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-pills .nav-link.active, + .bodywebsite .nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.bodywebsite .nav-fill > .nav-link, + .bodywebsite .nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.bodywebsite .nav-justified > .nav-link, + .bodywebsite .nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.bodywebsite .nav-fill .nav-item .nav-link, + .bodywebsite .nav-justified .nav-item .nav-link { + width: 100%; +} + +.bodywebsite .tab-content > .tab-pane { + display: none; +} + +.bodywebsite .tab-content > .active { + display: block; +} + +.bodywebsite .navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(0, 0, 0, 0.55); + --bs-navbar-hover-color: rgba(0, 0, 0, 0.7); + --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3); + --bs-navbar-active-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --bs-navbar-toggler-border-radius: 0.375rem; + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} + +.bodywebsite .navbar > .container, + .bodywebsite .navbar > .container-fluid, + .bodywebsite .navbar > .container-sm, + .bodywebsite .navbar > .container-md, + .bodywebsite .navbar > .container-lg, + .bodywebsite .navbar > .container-xl, + .bodywebsite .navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} + +.bodywebsite .navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; +} + +.bodywebsite .navbar-brand:hover, .bodywebsite .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.bodywebsite .navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .navbar-nav .show > .nav-link, + .bodywebsite .navbar-nav .nav-link.active { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-nav .dropdown-menu { + position: static; +} + +.bodywebsite .navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} + +.bodywebsite .navbar-text a, + .bodywebsite .navbar-text a:hover, + .bodywebsite .navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.bodywebsite .navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .navbar-toggler { + transition: none; + } +} + +.bodywebsite .navbar-toggler:hover { + text-decoration: none; +} + +.bodywebsite .navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.bodywebsite .navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.bodywebsite .navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .bodywebsite .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-sm .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-md .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-md .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-lg .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xxl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +.bodywebsite .navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} + +.bodywebsite .navbar-expand .navbar-nav { + flex-direction: row; +} + +.bodywebsite .navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.bodywebsite .navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} + +.bodywebsite .navbar-expand .navbar-nav-scroll { + overflow: visible; +} + +.bodywebsite .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.bodywebsite .navbar-expand .navbar-toggler { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-header { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.bodywebsite .navbar-dark { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.bodywebsite .card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-border-width: 1px; + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: 0.375rem; + --bs-card-inner-border-radius: calc(0.375rem - 1px); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(0, 0, 0, 0.03); + --bs-card-bg: #fff; + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); +} + +.bodywebsite .card > hr { + margin-right: 0; + margin-left: 0; +} + +.bodywebsite .card > .list-group { + border-top: inherit; + border-bottom: inherit; +} + +.bodywebsite .card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .card-header + .list-group, + .bodywebsite .card > .list-group + .card-footer { + border-top: 0; +} + +.bodywebsite .card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.bodywebsite .card-title { + margin-bottom: var(--bs-card-title-spacer-y); +} + +.bodywebsite .card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; +} + +.bodywebsite .card-text:last-child { + margin-bottom: 0; +} + +.bodywebsite .card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.bodywebsite .card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; +} + +.bodywebsite .card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} + +.bodywebsite .card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.bodywebsite .card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.bodywebsite .card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top, + .bodywebsite .card-img-bottom { + width: 100%; +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} + +@media (min-width: 576px) { + .bodywebsite .card-group { + display: flex; + flex-flow: row wrap; + } + + .bodywebsite .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + + .bodywebsite .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-top, + .bodywebsite .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-top, + .bodywebsite .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.bodywebsite .accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: #fff; + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: 1px; + --bs-accordion-border-radius: 0.375rem; + --bs-accordion-inner-border-radius: calc(0.375rem - 1px); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: #0c63e4; + --bs-accordion-active-bg: #e7f1ff; +} + +.bodywebsite .accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button { + transition: none; + } +} + +.bodywebsite .accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} + +.bodywebsite .accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button::after { + transition: none; + } +} + +.bodywebsite .accordion-button:hover { + z-index: 2; +} + +.bodywebsite .accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.bodywebsite .accordion-header { + margin-bottom: 0; +} + +.bodywebsite .accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:not(:first-of-type) { + border-top: 0; +} + +.bodywebsite .accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.bodywebsite .accordion-flush .accordion-collapse { + border-width: 0; +} + +.bodywebsite .accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.bodywebsite .accordion-flush .accordion-item:first-child { + border-top: 0; +} + +.bodywebsite .accordion-flush .accordion-item:last-child { + border-bottom: 0; +} + +.bodywebsite .accordion-flush .accordion-item .accordion-button, .bodywebsite .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +.bodywebsite .breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-divider-color: #6c757d; + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/"); +} + +.bodywebsite .breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.bodywebsite .pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: #fff; + --bs-pagination-border-width: 1px; + --bs-pagination-border-color: #dee2e6; + --bs-pagination-border-radius: 0.375rem; + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: #e9ecef; + --bs-pagination-hover-border-color: #dee2e6; + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: #e9ecef; + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: #6c757d; + --bs-pagination-disabled-bg: #fff; + --bs-pagination-disabled-border-color: #dee2e6; + display: flex; + padding-left: 0; + list-style: none; +} + +.bodywebsite .page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .page-link { + transition: none; + } +} + +.bodywebsite .page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} + +.bodywebsite .page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} + +.bodywebsite .page-link.active, .bodywebsite .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} + +.bodywebsite .page-link.disabled, .bodywebsite .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.bodywebsite .page-item:not(:first-child) .page-link { + margin-left: -1px; +} + +.bodywebsite .page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: 0.5rem; +} + +.bodywebsite .pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: 0.25rem; +} + +.bodywebsite .badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: 0.375rem; + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); +} + +.bodywebsite .badge:empty { + display: none; +} + +.bodywebsite .btn .badge { + position: relative; + top: -1px; +} + +.bodywebsite .alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: 1px solid var(--bs-alert-border-color); + --bs-alert-border-radius: 0.375rem; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.bodywebsite .alert-heading { + color: inherit; +} + +.bodywebsite .alert-link { + font-weight: 700; +} + +.bodywebsite .alert-dismissible { + padding-right: 3rem; +} + +.bodywebsite .alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.bodywebsite .alert-primary { + --bs-alert-color: #084298; + --bs-alert-bg: #cfe2ff; + --bs-alert-border-color: #b6d4fe; +} + +.bodywebsite .alert-primary .alert-link { + color: #06357a; +} + +.bodywebsite .alert-secondary { + --bs-alert-color: #41464b; + --bs-alert-bg: #e2e3e5; + --bs-alert-border-color: #d3d6d8; +} + +.bodywebsite .alert-secondary .alert-link { + color: #34383c; +} + +.bodywebsite .alert-success { + --bs-alert-color: #0f5132; + --bs-alert-bg: #d1e7dd; + --bs-alert-border-color: #badbcc; +} + +.bodywebsite .alert-success .alert-link { + color: #0c4128; +} + +.bodywebsite .alert-info { + --bs-alert-color: #055160; + --bs-alert-bg: #cff4fc; + --bs-alert-border-color: #b6effb; +} + +.bodywebsite .alert-info .alert-link { + color: #04414d; +} + +.bodywebsite .alert-warning { + --bs-alert-color: #664d03; + --bs-alert-bg: #fff3cd; + --bs-alert-border-color: #ffecb5; +} + +.bodywebsite .alert-warning .alert-link { + color: #523e02; +} + +.bodywebsite .alert-danger { + --bs-alert-color: #842029; + --bs-alert-bg: #f8d7da; + --bs-alert-border-color: #f5c2c7; +} + +.bodywebsite .alert-danger .alert-link { + color: #6a1a21; +} + +.bodywebsite .alert-light { + --bs-alert-color: #636464; + --bs-alert-bg: #fefefe; + --bs-alert-border-color: #fdfdfe; +} + +.bodywebsite .alert-light .alert-link { + color: #4f5050; +} + +.bodywebsite .alert-dark { + --bs-alert-color: #141619; + --bs-alert-bg: #d3d3d4; + --bs-alert-border-color: #bcbebf; +} + +.bodywebsite .alert-dark .alert-link { + color: #101214; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +.bodywebsite .progress { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: #e9ecef; + --bs-progress-border-radius: 0.375rem; + --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); +} + +.bodywebsite .progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar { + transition: none; + } +} + +.bodywebsite .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.bodywebsite .progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.bodywebsite .list-group { + --bs-list-group-color: #212529; + --bs-list-group-bg: #fff; + --bs-list-group-border-color: rgba(0, 0, 0, 0.125); + --bs-list-group-border-width: 1px; + --bs-list-group-border-radius: 0.375rem; + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: #495057; + --bs-list-group-action-hover-color: #495057; + --bs-list-group-action-hover-bg: #f8f9fa; + --bs-list-group-action-active-color: #212529; + --bs-list-group-action-active-bg: #e9ecef; + --bs-list-group-disabled-color: #6c757d; + --bs-list-group-disabled-bg: #fff; + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); +} + +.bodywebsite .list-group-numbered { + list-style-type: none; + counter-reset: section; +} + +.bodywebsite .list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.bodywebsite .list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} + +.bodywebsite .list-group-item-action:hover, .bodywebsite .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} + +.bodywebsite .list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.bodywebsite .list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} + +.bodywebsite .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.bodywebsite .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} + +.bodywebsite .list-group-item.disabled, .bodywebsite .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} + +.bodywebsite .list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} + +.bodywebsite .list-group-item + .list-group-item { + border-top-width: 0; +} + +.bodywebsite .list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-horizontal { + flex-direction: row; +} + +.bodywebsite .list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item.active { + margin-top: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .bodywebsite .list-group-horizontal-sm { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 768px) { + .bodywebsite .list-group-horizontal-md { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 992px) { + .bodywebsite .list-group-horizontal-lg { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1200px) { + .bodywebsite .list-group-horizontal-xl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1400px) { + .bodywebsite .list-group-horizontal-xxl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +.bodywebsite .list-group-flush { + border-radius: 0; +} + +.bodywebsite .list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.bodywebsite .list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} + +.bodywebsite .list-group-item-primary.list-group-item-action:hover, .bodywebsite .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} + +.bodywebsite .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} + +.bodywebsite .list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action:hover, .bodywebsite .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.bodywebsite .list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} + +.bodywebsite .list-group-item-success.list-group-item-action:hover, .bodywebsite .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} + +.bodywebsite .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.bodywebsite .list-group-item-info { + color: #055160; + background-color: #cff4fc; +} + +.bodywebsite .list-group-item-info.list-group-item-action:hover, .bodywebsite .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} + +.bodywebsite .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.bodywebsite .list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} + +.bodywebsite .list-group-item-warning.list-group-item-action:hover, .bodywebsite .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} + +.bodywebsite .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.bodywebsite .list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} + +.bodywebsite .list-group-item-danger.list-group-item-action:hover, .bodywebsite .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} + +.bodywebsite .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.bodywebsite .list-group-item-light { + color: #636464; + background-color: #fefefe; +} + +.bodywebsite .list-group-item-light.list-group-item-action:hover, .bodywebsite .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} + +.bodywebsite .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.bodywebsite .list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} + +.bodywebsite .list-group-item-dark.list-group-item-action:hover, .bodywebsite .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} + +.bodywebsite .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.bodywebsite .btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: 0.5; +} + +.bodywebsite .btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} + +.bodywebsite .btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} + +.bodywebsite .btn-close:disabled, .bodywebsite .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.bodywebsite .btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.bodywebsite .toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-bg: rgba(255, 255, 255, 0.85); + --bs-toast-border-width: 1px; + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: 0.375rem; + --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-toast-header-color: #6c757d; + --bs-toast-header-bg: rgba(255, 255, 255, 0.85); + --bs-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} + +.bodywebsite .toast.showing { + opacity: 0; +} + +.bodywebsite .toast:not(.show) { + display: none; +} + +.bodywebsite .toast-container { + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} + +.bodywebsite .toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.bodywebsite .toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} + +.bodywebsite .toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.bodywebsite .toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.bodywebsite .modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-bg: #fff; + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: 1px; + --bs-modal-border-radius: 0.5rem; + --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-modal-inner-border-radius: calc(0.5rem - 1px); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: 1px; + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: 1px; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.bodywebsite .modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} + +.bodywebsite .modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .modal.fade .modal-dialog { + transition: none; + } +} + +.bodywebsite .modal.show .modal-dialog { + transform: none; +} + +.bodywebsite .modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.bodywebsite .modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} + +.bodywebsite .modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.bodywebsite .modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.bodywebsite .modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} + +.bodywebsite .modal-backdrop.fade { + opacity: 0; +} + +.bodywebsite .modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.bodywebsite .modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.bodywebsite .modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.bodywebsite .modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.bodywebsite .modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .bodywebsite .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + + .bodywebsite .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + + .bodywebsite .modal-sm { + --bs-modal-width: 300px; + } +} + +@media (min-width: 992px) { + .bodywebsite .modal-lg, + .bodywebsite .modal-xl { + --bs-modal-width: 800px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .modal-xl { + --bs-modal-width: 1140px; + } +} + +.bodywebsite .modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} + +.bodywebsite .modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-header, + .bodywebsite .modal-fullscreen .modal-footer { + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .bodywebsite .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-header, + .bodywebsite .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-header, + .bodywebsite .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-header, + .bodywebsite .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-header, + .bodywebsite .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-header, + .bodywebsite .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} + +.bodywebsite .tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: #fff; + --bs-tooltip-bg: #000; + --bs-tooltip-border-radius: 0.375rem; + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + padding: var(--bs-tooltip-arrow-height); + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} + +.bodywebsite .tooltip.show { + opacity: var(--bs-tooltip-opacity); +} + +.bodywebsite .tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} + +.bodywebsite .tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +.bodywebsite .tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.bodywebsite .popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: #fff; + --bs-popover-border-width: 1px; + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: 0.5rem; + --bs-popover-inner-border-radius: calc(0.5rem - 1px); + --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-bg: #f0f0f0; + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: #212529; + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} + +.bodywebsite .popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} + +.bodywebsite .popover .popover-arrow::before, .bodywebsite .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-end > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom .popover-header::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +.bodywebsite .bs-popover-start > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +.bodywebsite .popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} + +.bodywebsite .popover-header:empty { + display: none; +} + +.bodywebsite .popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.bodywebsite .carousel { + position: relative; +} + +.bodywebsite .carousel.pointer-event { + touch-action: pan-y; +} + +.bodywebsite .carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.bodywebsite .carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-item { + transition: none; + } +} + +.bodywebsite .carousel-item.active, + .bodywebsite .carousel-item-next, + .bodywebsite .carousel-item-prev { + display: block; +} + +.bodywebsite .carousel-item-next:not(.carousel-item-start), + .bodywebsite .active.carousel-item-end { + transform: translateX(100%); +} + +.bodywebsite .carousel-item-prev:not(.carousel-item-end), + .bodywebsite .active.carousel-item-start { + transform: translateX(-100%); +} + +.bodywebsite .carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.bodywebsite .carousel-fade .carousel-item.active, + .bodywebsite .carousel-fade .carousel-item-next.carousel-item-start, + .bodywebsite .carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} + +.bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + transition: none; + } +} + +.bodywebsite .carousel-control-prev:hover, .bodywebsite .carousel-control-prev:focus, + .bodywebsite .carousel-control-next:hover, + .bodywebsite .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.bodywebsite .carousel-control-prev { + left: 0; +} + +.bodywebsite .carousel-control-next { + right: 0; +} + +.bodywebsite .carousel-control-prev-icon, + .bodywebsite .carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.bodywebsite .carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} + +.bodywebsite .carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-indicators [data-bs-target] { + transition: none; + } +} + +.bodywebsite .carousel-indicators .active { + opacity: 1; +} + +.bodywebsite .carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.bodywebsite .carousel-dark .carousel-control-prev-icon, + .bodywebsite .carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} + +.bodywebsite .carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} + +.bodywebsite .carousel-dark .carousel-caption { + color: #000; +} + +.bodywebsite .spinner-grow, + .bodywebsite .spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + -webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +.bodywebsite .spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.bodywebsite .spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +.bodywebsite .spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.bodywebsite .spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .spinner-border, + .bodywebsite .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} + +.bodywebsite .offcanvas, .bodywebsite .offcanvas-xxl, .bodywebsite .offcanvas-xl, .bodywebsite .offcanvas-lg, .bodywebsite .offcanvas-md, .bodywebsite .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-bg: #fff; + --bs-offcanvas-border-width: 1px; + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-sm { + transition: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.hiding, .bodywebsite .offcanvas-sm.show { + visibility: visible; + } +} + +@media (min-width: 576px) { + .bodywebsite .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-sm .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-md { + transition: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.hiding, .bodywebsite .offcanvas-md.show { + visibility: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-md .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-lg { + transition: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.hiding, .bodywebsite .offcanvas-lg.show { + visibility: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-lg .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xl { + transition: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.hiding, .bodywebsite .offcanvas-xl.show { + visibility: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xxl { + transition: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.hiding, .bodywebsite .offcanvas-xxl.show { + visibility: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xxl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.bodywebsite .offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas { + transition: none; + } +} + +.bodywebsite .offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} + +.bodywebsite .offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} + +.bodywebsite .offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} + +.bodywebsite .offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.show:not(.hiding) { + transform: none; +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.hiding, .bodywebsite .offcanvas.show { + visibility: visible; +} + +.bodywebsite .offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.bodywebsite .offcanvas-backdrop.fade { + opacity: 0; +} + +.bodywebsite .offcanvas-backdrop.show { + opacity: 0.5; +} + +.bodywebsite .offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} + +.bodywebsite .offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.bodywebsite .offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.bodywebsite .offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.bodywebsite .placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} + +.bodywebsite .placeholder.btn::before { + display: inline-block; + content: ""; +} + +.bodywebsite .placeholder-xs { + min-height: 0.6em; +} + +.bodywebsite .placeholder-sm { + min-height: 0.8em; +} + +.bodywebsite .placeholder-lg { + min-height: 1.2em; +} + +.bodywebsite .placeholder-glow .placeholder { + -webkit-animation: placeholder-glow 2s ease-in-out infinite; + animation: placeholder-glow 2s ease-in-out infinite; +} + +@-webkit-keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +.bodywebsite .placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-animation: placeholder-wave 2s linear infinite; + animation: placeholder-wave 2s linear infinite; +} + +@-webkit-keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +.bodywebsite .clearfix::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .text-bg-primary { + color: #fff !important; + background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-secondary { + color: #fff !important; + background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-success { + color: #fff !important; + background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-info { + color: #000 !important; + background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-warning { + color: #000 !important; + background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-danger { + color: #fff !important; + background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-light { + color: #000 !important; + background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-dark { + color: #fff !important; + background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .link-primary { + color: #0d6efd !important; +} + +.bodywebsite .link-primary:hover, .bodywebsite .link-primary:focus { + color: #0a58ca !important; +} + +.bodywebsite .link-secondary { + color: #6c757d !important; +} + +.bodywebsite .link-secondary:hover, .bodywebsite .link-secondary:focus { + color: #565e64 !important; +} + +.bodywebsite .link-success { + color: #198754 !important; +} + +.bodywebsite .link-success:hover, .bodywebsite .link-success:focus { + color: #146c43 !important; +} + +.bodywebsite .link-info { + color: #0dcaf0 !important; +} + +.bodywebsite .link-info:hover, .bodywebsite .link-info:focus { + color: #3dd5f3 !important; +} + +.bodywebsite .link-warning { + color: #ffc107 !important; +} + +.bodywebsite .link-warning:hover, .bodywebsite .link-warning:focus { + color: #ffcd39 !important; +} + +.bodywebsite .link-danger { + color: #dc3545 !important; +} + +.bodywebsite .link-danger:hover, .bodywebsite .link-danger:focus { + color: #b02a37 !important; +} + +.bodywebsite .link-light { + color: #f8f9fa !important; +} + +.bodywebsite .link-light:hover, .bodywebsite .link-light:focus { + color: #f9fafb !important; +} + +.bodywebsite .link-dark { + color: #212529 !important; +} + +.bodywebsite .link-dark:hover, .bodywebsite .link-dark:focus { + color: #1a1e21 !important; +} + +.bodywebsite .ratio { + position: relative; + width: 100%; +} + +.bodywebsite .ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} + +.bodywebsite .ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.bodywebsite .ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.bodywebsite .ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.bodywebsite .ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.bodywebsite .ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.bodywebsite .fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.bodywebsite .sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .bodywebsite .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 768px) { + .bodywebsite .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 992px) { + .bodywebsite .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1200px) { + .bodywebsite .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1400px) { + .bodywebsite .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +.bodywebsite .hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.bodywebsite .vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.bodywebsite .visually-hidden, + .bodywebsite .visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.bodywebsite .stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.bodywebsite .text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.bodywebsite .vr { + display: inline-block; + align-self: stretch; + width: 1px; + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.bodywebsite .align-baseline { + vertical-align: baseline !important; +} + +.bodywebsite .align-top { + vertical-align: top !important; +} + +.bodywebsite .align-middle { + vertical-align: middle !important; +} + +.bodywebsite .align-bottom { + vertical-align: bottom !important; +} + +.bodywebsite .align-text-bottom { + vertical-align: text-bottom !important; +} + +.bodywebsite .align-text-top { + vertical-align: text-top !important; +} + +.bodywebsite .float-start { + float: left !important; +} + +.bodywebsite .float-end { + float: right !important; +} + +.bodywebsite .float-none { + float: none !important; +} + +.bodywebsite .opacity-0 { + opacity: 0 !important; +} + +.bodywebsite .opacity-25 { + opacity: 0.25 !important; +} + +.bodywebsite .opacity-50 { + opacity: 0.5 !important; +} + +.bodywebsite .opacity-75 { + opacity: 0.75 !important; +} + +.bodywebsite .opacity-100 { + opacity: 1 !important; +} + +.bodywebsite .overflow-auto { + overflow: auto !important; +} + +.bodywebsite .overflow-hidden { + overflow: hidden !important; +} + +.bodywebsite .overflow-visible { + overflow: visible !important; +} + +.bodywebsite .overflow-scroll { + overflow: scroll !important; +} + +.bodywebsite .d-inline { + display: inline !important; +} + +.bodywebsite .d-inline-block { + display: inline-block !important; +} + +.bodywebsite .d-block { + display: block !important; +} + +.bodywebsite .d-grid { + display: grid !important; +} + +.bodywebsite .d-table { + display: table !important; +} + +.bodywebsite .d-table-row { + display: table-row !important; +} + +.bodywebsite .d-table-cell { + display: table-cell !important; +} + +.bodywebsite .d-flex { + display: flex !important; +} + +.bodywebsite .d-inline-flex { + display: inline-flex !important; +} + +.bodywebsite .d-none { + display: none !important; +} + +.bodywebsite .shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.bodywebsite .shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.bodywebsite .shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.bodywebsite .shadow-none { + box-shadow: none !important; +} + +.bodywebsite .position-static { + position: static !important; +} + +.bodywebsite .position-relative { + position: relative !important; +} + +.bodywebsite .position-absolute { + position: absolute !important; +} + +.bodywebsite .position-fixed { + position: fixed !important; +} + +.bodywebsite .position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.bodywebsite .top-0 { + top: 0 !important; +} + +.bodywebsite .top-50 { + top: 50% !important; +} + +.bodywebsite .top-100 { + top: 100% !important; +} + +.bodywebsite .bottom-0 { + bottom: 0 !important; +} + +.bodywebsite .bottom-50 { + bottom: 50% !important; +} + +.bodywebsite .bottom-100 { + bottom: 100% !important; +} + +.bodywebsite .start-0 { + left: 0 !important; +} + +.bodywebsite .start-50 { + left: 50% !important; +} + +.bodywebsite .start-100 { + left: 100% !important; +} + +.bodywebsite .end-0 { + right: 0 !important; +} + +.bodywebsite .end-50 { + right: 50% !important; +} + +.bodywebsite .end-100 { + right: 100% !important; +} + +.bodywebsite .translate-middle { + transform: translate(-50%, -50%) !important; +} + +.bodywebsite .translate-middle-x { + transform: translateX(-50%) !important; +} + +.bodywebsite .translate-middle-y { + transform: translateY(-50%) !important; +} + +.bodywebsite .border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-0 { + border: 0 !important; +} + +.bodywebsite .border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-top-0 { + border-top: 0 !important; +} + +.bodywebsite .border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-end-0 { + border-right: 0 !important; +} + +.bodywebsite .border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-bottom-0 { + border-bottom: 0 !important; +} + +.bodywebsite .border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-start-0 { + border-left: 0 !important; +} + +.bodywebsite .border-primary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-secondary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-success { + --bs-border-opacity: 1; +} + +.bodywebsite .border-info { + --bs-border-opacity: 1; +} + +.bodywebsite .border-warning { + --bs-border-opacity: 1; +} + +.bodywebsite .border-danger { + --bs-border-opacity: 1; +} + +.bodywebsite .border-light { + --bs-border-opacity: 1; +} + +.bodywebsite .border-dark { + --bs-border-opacity: 1; +} + +.bodywebsite .border-white { + --bs-border-opacity: 1; +} + +.bodywebsite .border-1 { + --bs-border-width: 1px; +} + +.bodywebsite .border-2 { + --bs-border-width: 2px; +} + +.bodywebsite .border-3 { + --bs-border-width: 3px; +} + +.bodywebsite .border-4 { + --bs-border-width: 4px; +} + +.bodywebsite .border-5 { + --bs-border-width: 5px; +} + +.bodywebsite .border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.bodywebsite .border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.bodywebsite .border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.bodywebsite .border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.bodywebsite .border-opacity-100 { + --bs-border-opacity: 1; +} + +.bodywebsite .w-25 { + width: 25% !important; +} + +.bodywebsite .w-50 { + width: 50% !important; +} + +.bodywebsite .w-75 { + width: 75% !important; +} + +.bodywebsite .w-100 { + width: 100% !important; +} + +.bodywebsite .w-auto { + width: auto !important; +} + +.bodywebsite .mw-100 { + max-width: 100% !important; +} + +.bodywebsite .vw-100 { + width: 100vw !important; +} + +.bodywebsite .min-vw-100 { + min-width: 100vw !important; +} + +.bodywebsite .h-25 { + height: 25% !important; +} + +.bodywebsite .h-50 { + height: 50% !important; +} + +.bodywebsite .h-75 { + height: 75% !important; +} + +.bodywebsite .h-100 { + height: 100% !important; +} + +.bodywebsite .h-auto { + height: auto !important; +} + +.bodywebsite .mh-100 { + max-height: 100% !important; +} + +.bodywebsite .vh-100 { + height: 100vh !important; +} + +.bodywebsite .min-vh-100 { + min-height: 100vh !important; +} + +.bodywebsite .flex-fill { + flex: 1 1 auto !important; +} + +.bodywebsite .flex-row { + flex-direction: row !important; +} + +.bodywebsite .flex-column { + flex-direction: column !important; +} + +.bodywebsite .flex-row-reverse { + flex-direction: row-reverse !important; +} + +.bodywebsite .flex-column-reverse { + flex-direction: column-reverse !important; +} + +.bodywebsite .flex-grow-0 { + flex-grow: 0 !important; +} + +.bodywebsite .flex-grow-1 { + flex-grow: 1 !important; +} + +.bodywebsite .flex-shrink-0 { + flex-shrink: 0 !important; +} + +.bodywebsite .flex-shrink-1 { + flex-shrink: 1 !important; +} + +.bodywebsite .flex-wrap { + flex-wrap: wrap !important; +} + +.bodywebsite .flex-nowrap { + flex-wrap: nowrap !important; +} + +.bodywebsite .flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.bodywebsite .justify-content-start { + justify-content: flex-start !important; +} + +.bodywebsite .justify-content-end { + justify-content: flex-end !important; +} + +.bodywebsite .justify-content-center { + justify-content: center !important; +} + +.bodywebsite .justify-content-between { + justify-content: space-between !important; +} + +.bodywebsite .justify-content-around { + justify-content: space-around !important; +} + +.bodywebsite .justify-content-evenly { + justify-content: space-evenly !important; +} + +.bodywebsite .align-items-start { + align-items: flex-start !important; +} + +.bodywebsite .align-items-end { + align-items: flex-end !important; +} + +.bodywebsite .align-items-center { + align-items: center !important; +} + +.bodywebsite .align-items-baseline { + align-items: baseline !important; +} + +.bodywebsite .align-items-stretch { + align-items: stretch !important; +} + +.bodywebsite .align-content-start { + align-content: flex-start !important; +} + +.bodywebsite .align-content-end { + align-content: flex-end !important; +} + +.bodywebsite .align-content-center { + align-content: center !important; +} + +.bodywebsite .align-content-between { + align-content: space-between !important; +} + +.bodywebsite .align-content-around { + align-content: space-around !important; +} + +.bodywebsite .align-content-stretch { + align-content: stretch !important; +} + +.bodywebsite .align-self-auto { + align-self: auto !important; +} + +.bodywebsite .align-self-start { + align-self: flex-start !important; +} + +.bodywebsite .align-self-end { + align-self: flex-end !important; +} + +.bodywebsite .align-self-center { + align-self: center !important; +} + +.bodywebsite .align-self-baseline { + align-self: baseline !important; +} + +.bodywebsite .align-self-stretch { + align-self: stretch !important; +} + +.bodywebsite .order-first { + order: -1 !important; +} + +.bodywebsite .order-0 { + order: 0 !important; +} + +.bodywebsite .order-1 { + order: 1 !important; +} + +.bodywebsite .order-2 { + order: 2 !important; +} + +.bodywebsite .order-3 { + order: 3 !important; +} + +.bodywebsite .order-4 { + order: 4 !important; +} + +.bodywebsite .order-5 { + order: 5 !important; +} + +.bodywebsite .order-last { + order: 6 !important; +} + +.bodywebsite .m-0 { + margin: 0 !important; +} + +.bodywebsite .m-1 { + margin: 0.25rem !important; +} + +.bodywebsite .m-2 { + margin: 0.5rem !important; +} + +.bodywebsite .m-3 { + margin: 1rem !important; +} + +.bodywebsite .m-4 { + margin: 1.5rem !important; +} + +.bodywebsite .m-5 { + margin: 3rem !important; +} + +.bodywebsite .m-auto { + margin: auto !important; +} + +.bodywebsite .mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.bodywebsite .mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.bodywebsite .mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.bodywebsite .mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.bodywebsite .mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.bodywebsite .mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.bodywebsite .mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.bodywebsite .my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.bodywebsite .my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.bodywebsite .my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.bodywebsite .my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.bodywebsite .my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.bodywebsite .my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.bodywebsite .my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.bodywebsite .mt-0 { + margin-top: 0 !important; +} + +.bodywebsite .mt-1 { + margin-top: 0.25rem !important; +} + +.bodywebsite .mt-2 { + margin-top: 0.5rem !important; +} + +.bodywebsite .mt-3 { + margin-top: 1rem !important; +} + +.bodywebsite .mt-4 { + margin-top: 1.5rem !important; +} + +.bodywebsite .mt-5 { + margin-top: 3rem !important; +} + +.bodywebsite .mt-auto { + margin-top: auto !important; +} + +.bodywebsite .me-0 { + margin-right: 0 !important; +} + +.bodywebsite .me-1 { + margin-right: 0.25rem !important; +} + +.bodywebsite .me-2 { + margin-right: 0.5rem !important; +} + +.bodywebsite .me-3 { + margin-right: 1rem !important; +} + +.bodywebsite .me-4 { + margin-right: 1.5rem !important; +} + +.bodywebsite .me-5 { + margin-right: 3rem !important; +} + +.bodywebsite .me-auto { + margin-right: auto !important; +} + +.bodywebsite .mb-0 { + margin-bottom: 0 !important; +} + +.bodywebsite .mb-1 { + margin-bottom: 0.25rem !important; +} + +.bodywebsite .mb-2 { + margin-bottom: 0.5rem !important; +} + +.bodywebsite .mb-3 { + margin-bottom: 1rem !important; +} + +.bodywebsite .mb-4 { + margin-bottom: 1.5rem !important; +} + +.bodywebsite .mb-5 { + margin-bottom: 3rem !important; +} + +.bodywebsite .mb-auto { + margin-bottom: auto !important; +} + +.bodywebsite .ms-0 { + margin-left: 0 !important; +} + +.bodywebsite .ms-1 { + margin-left: 0.25rem !important; +} + +.bodywebsite .ms-2 { + margin-left: 0.5rem !important; +} + +.bodywebsite .ms-3 { + margin-left: 1rem !important; +} + +.bodywebsite .ms-4 { + margin-left: 1.5rem !important; +} + +.bodywebsite .ms-5 { + margin-left: 3rem !important; +} + +.bodywebsite .ms-auto { + margin-left: auto !important; +} + +.bodywebsite .p-0 { + padding: 0 !important; +} + +.bodywebsite .p-1 { + padding: 0.25rem !important; +} + +.bodywebsite .p-2 { + padding: 0.5rem !important; +} + +.bodywebsite .p-3 { + padding: 1rem !important; +} + +.bodywebsite .p-4 { + padding: 1.5rem !important; +} + +.bodywebsite .p-5 { + padding: 3rem !important; +} + +.bodywebsite .px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.bodywebsite .px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.bodywebsite .px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.bodywebsite .px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.bodywebsite .px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.bodywebsite .px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.bodywebsite .py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.bodywebsite .py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.bodywebsite .py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.bodywebsite .py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.bodywebsite .py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.bodywebsite .py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.bodywebsite .pt-0 { + padding-top: 0 !important; +} + +.bodywebsite .pt-1 { + padding-top: 0.25rem !important; +} + +.bodywebsite .pt-2 { + padding-top: 0.5rem !important; +} + +.bodywebsite .pt-3 { + padding-top: 1rem !important; +} + +.bodywebsite .pt-4 { + padding-top: 1.5rem !important; +} + +.bodywebsite .pt-5 { + padding-top: 3rem !important; +} + +.bodywebsite .pe-0 { + padding-right: 0 !important; +} + +.bodywebsite .pe-1 { + padding-right: 0.25rem !important; +} + +.bodywebsite .pe-2 { + padding-right: 0.5rem !important; +} + +.bodywebsite .pe-3 { + padding-right: 1rem !important; +} + +.bodywebsite .pe-4 { + padding-right: 1.5rem !important; +} + +.bodywebsite .pe-5 { + padding-right: 3rem !important; +} + +.bodywebsite .pb-0 { + padding-bottom: 0 !important; +} + +.bodywebsite .pb-1 { + padding-bottom: 0.25rem !important; +} + +.bodywebsite .pb-2 { + padding-bottom: 0.5rem !important; +} + +.bodywebsite .pb-3 { + padding-bottom: 1rem !important; +} + +.bodywebsite .pb-4 { + padding-bottom: 1.5rem !important; +} + +.bodywebsite .pb-5 { + padding-bottom: 3rem !important; +} + +.bodywebsite .ps-0 { + padding-left: 0 !important; +} + +.bodywebsite .ps-1 { + padding-left: 0.25rem !important; +} + +.bodywebsite .ps-2 { + padding-left: 0.5rem !important; +} + +.bodywebsite .ps-3 { + padding-left: 1rem !important; +} + +.bodywebsite .ps-4 { + padding-left: 1.5rem !important; +} + +.bodywebsite .ps-5 { + padding-left: 3rem !important; +} + +.bodywebsite .gap-0 { + gap: 0 !important; +} + +.bodywebsite .gap-1 { + gap: 0.25rem !important; +} + +.bodywebsite .gap-2 { + gap: 0.5rem !important; +} + +.bodywebsite .gap-3 { + gap: 1rem !important; +} + +.bodywebsite .gap-4 { + gap: 1.5rem !important; +} + +.bodywebsite .gap-5 { + gap: 3rem !important; +} + +.bodywebsite .font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.bodywebsite .fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.bodywebsite .fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.bodywebsite .fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.bodywebsite .fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.bodywebsite .fs-5 { + font-size: 1.25rem !important; +} + +.bodywebsite .fs-6 { + font-size: 1rem !important; +} + +.bodywebsite .fst-italic { + font-style: italic !important; +} + +.bodywebsite .fst-normal { + font-style: normal !important; +} + +.bodywebsite .fw-light { + font-weight: 300 !important; +} + +.bodywebsite .fw-lighter { + font-weight: lighter !important; +} + +.bodywebsite .fw-normal { + font-weight: 400 !important; +} + +.bodywebsite .fw-bold { + font-weight: 700 !important; +} + +.bodywebsite .fw-semibold { + font-weight: 600 !important; +} + +.bodywebsite .fw-bolder { + font-weight: bolder !important; +} + +.bodywebsite .lh-1 { + line-height: 1 !important; +} + +.bodywebsite .lh-sm { + line-height: 1.25 !important; +} + +.bodywebsite .lh-base { + line-height: 1.5 !important; +} + +.bodywebsite .lh-lg { + line-height: 2 !important; +} + +.bodywebsite .text-start { + text-align: left !important; +} + +.bodywebsite .text-end { + text-align: right !important; +} + +.bodywebsite .text-center { + text-align: center !important; +} + +.bodywebsite .text-decoration-none { + text-decoration: none !important; +} + +.bodywebsite .text-decoration-underline { + text-decoration: underline !important; +} + +.bodywebsite .text-decoration-line-through { + text-decoration: line-through !important; +} + +.bodywebsite .text-lowercase { + text-transform: lowercase !important; +} + +.bodywebsite .text-uppercase { + text-transform: uppercase !important; +} + +.bodywebsite .text-capitalize { + text-transform: capitalize !important; +} + +.bodywebsite .text-wrap { + white-space: normal !important; +} + +.bodywebsite .text-nowrap { + white-space: nowrap !important; +} + +.bodywebsite .text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +.bodywebsite .text-primary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-secondary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-success { + --bs-text-opacity: 1; +} + +.bodywebsite .text-info { + --bs-text-opacity: 1; +} + +.bodywebsite .text-warning { + --bs-text-opacity: 1; +} + +.bodywebsite .text-danger { + --bs-text-opacity: 1; +} + +.bodywebsite .text-light { + --bs-text-opacity: 1; +} + +.bodywebsite .text-dark { + --bs-text-opacity: 1; +} + +.bodywebsite .text-black { + --bs-text-opacity: 1; +} + +.bodywebsite .text-white { + --bs-text-opacity: 1; +} + +.bodywebsite .text-body { + --bs-text-opacity: 1; +} + +.bodywebsite .text-muted { + --bs-text-opacity: 1; + color: #6c757d !important; +} + +.bodywebsite .text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.bodywebsite .text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.bodywebsite .text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.bodywebsite .text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.bodywebsite .text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.bodywebsite .text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.bodywebsite .text-opacity-100 { + --bs-text-opacity: 1; +} + +.bodywebsite .bg-primary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-secondary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-success { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-info { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-warning { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-danger { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-light { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-dark { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-black { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-white { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-body { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-transparent { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bodywebsite .bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bodywebsite .bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bodywebsite .bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bodywebsite .bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.bodywebsite .user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.bodywebsite .user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.bodywebsite .user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.bodywebsite .pe-none { + pointer-events: none !important; +} + +.bodywebsite .pe-auto { + pointer-events: auto !important; +} + +.bodywebsite .rounded { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-0 { + border-radius: 0 !important; +} + +.bodywebsite .rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.bodywebsite .rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.bodywebsite .rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.bodywebsite .rounded-5 { + border-radius: var(--bs-border-radius-2xl) !important; +} + +.bodywebsite .rounded-circle { + border-radius: 50% !important; +} + +.bodywebsite .rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.bodywebsite .rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .visible { + visibility: visible !important; +} + +.bodywebsite .invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .bodywebsite .float-sm-start { + float: left !important; + } + + .bodywebsite .float-sm-end { + float: right !important; + } + + .bodywebsite .float-sm-none { + float: none !important; + } + + .bodywebsite .d-sm-inline { + display: inline !important; + } + + .bodywebsite .d-sm-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-sm-block { + display: block !important; + } + + .bodywebsite .d-sm-grid { + display: grid !important; + } + + .bodywebsite .d-sm-table { + display: table !important; + } + + .bodywebsite .d-sm-table-row { + display: table-row !important; + } + + .bodywebsite .d-sm-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-sm-flex { + display: flex !important; + } + + .bodywebsite .d-sm-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-sm-none { + display: none !important; + } + + .bodywebsite .flex-sm-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-sm-row { + flex-direction: row !important; + } + + .bodywebsite .flex-sm-column { + flex-direction: column !important; + } + + .bodywebsite .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-sm-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-sm-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-sm-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-sm-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-sm-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-sm-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-sm-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-sm-center { + align-items: center !important; + } + + .bodywebsite .align-items-sm-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-sm-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-sm-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-sm-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-sm-center { + align-content: center !important; + } + + .bodywebsite .align-content-sm-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-sm-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-sm-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-sm-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-sm-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-sm-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-sm-center { + align-self: center !important; + } + + .bodywebsite .align-self-sm-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-sm-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-sm-first { + order: -1 !important; + } + + .bodywebsite .order-sm-0 { + order: 0 !important; + } + + .bodywebsite .order-sm-1 { + order: 1 !important; + } + + .bodywebsite .order-sm-2 { + order: 2 !important; + } + + .bodywebsite .order-sm-3 { + order: 3 !important; + } + + .bodywebsite .order-sm-4 { + order: 4 !important; + } + + .bodywebsite .order-sm-5 { + order: 5 !important; + } + + .bodywebsite .order-sm-last { + order: 6 !important; + } + + .bodywebsite .m-sm-0 { + margin: 0 !important; + } + + .bodywebsite .m-sm-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-sm-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-sm-3 { + margin: 1rem !important; + } + + .bodywebsite .m-sm-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-sm-5 { + margin: 3rem !important; + } + + .bodywebsite .m-sm-auto { + margin: auto !important; + } + + .bodywebsite .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-sm-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-sm-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-sm-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-sm-auto { + margin-top: auto !important; + } + + .bodywebsite .me-sm-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-sm-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-sm-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-sm-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-sm-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-sm-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-sm-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-sm-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-sm-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-sm-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-sm-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-sm-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-sm-auto { + margin-left: auto !important; + } + + .bodywebsite .p-sm-0 { + padding: 0 !important; + } + + .bodywebsite .p-sm-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-sm-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-sm-3 { + padding: 1rem !important; + } + + .bodywebsite .p-sm-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-sm-5 { + padding: 3rem !important; + } + + .bodywebsite .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-sm-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-sm-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-sm-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-sm-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-sm-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-sm-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-sm-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-sm-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-sm-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-sm-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-sm-0 { + gap: 0 !important; + } + + .bodywebsite .gap-sm-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-sm-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-sm-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-sm-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-sm-5 { + gap: 3rem !important; + } + + .bodywebsite .text-sm-start { + text-align: left !important; + } + + .bodywebsite .text-sm-end { + text-align: right !important; + } + + .bodywebsite .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .bodywebsite .float-md-start { + float: left !important; + } + + .bodywebsite .float-md-end { + float: right !important; + } + + .bodywebsite .float-md-none { + float: none !important; + } + + .bodywebsite .d-md-inline { + display: inline !important; + } + + .bodywebsite .d-md-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-md-block { + display: block !important; + } + + .bodywebsite .d-md-grid { + display: grid !important; + } + + .bodywebsite .d-md-table { + display: table !important; + } + + .bodywebsite .d-md-table-row { + display: table-row !important; + } + + .bodywebsite .d-md-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-md-flex { + display: flex !important; + } + + .bodywebsite .d-md-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-md-none { + display: none !important; + } + + .bodywebsite .flex-md-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-md-row { + flex-direction: row !important; + } + + .bodywebsite .flex-md-column { + flex-direction: column !important; + } + + .bodywebsite .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-md-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-md-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-md-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-md-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-md-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-md-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-md-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-md-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-md-center { + align-items: center !important; + } + + .bodywebsite .align-items-md-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-md-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-md-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-md-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-md-center { + align-content: center !important; + } + + .bodywebsite .align-content-md-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-md-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-md-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-md-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-md-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-md-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-md-center { + align-self: center !important; + } + + .bodywebsite .align-self-md-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-md-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-md-first { + order: -1 !important; + } + + .bodywebsite .order-md-0 { + order: 0 !important; + } + + .bodywebsite .order-md-1 { + order: 1 !important; + } + + .bodywebsite .order-md-2 { + order: 2 !important; + } + + .bodywebsite .order-md-3 { + order: 3 !important; + } + + .bodywebsite .order-md-4 { + order: 4 !important; + } + + .bodywebsite .order-md-5 { + order: 5 !important; + } + + .bodywebsite .order-md-last { + order: 6 !important; + } + + .bodywebsite .m-md-0 { + margin: 0 !important; + } + + .bodywebsite .m-md-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-md-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-md-3 { + margin: 1rem !important; + } + + .bodywebsite .m-md-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-md-5 { + margin: 3rem !important; + } + + .bodywebsite .m-md-auto { + margin: auto !important; + } + + .bodywebsite .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-md-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-md-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-md-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-md-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-md-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-md-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-md-auto { + margin-top: auto !important; + } + + .bodywebsite .me-md-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-md-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-md-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-md-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-md-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-md-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-md-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-md-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-md-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-md-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-md-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-md-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-md-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-md-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-md-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-md-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-md-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-md-auto { + margin-left: auto !important; + } + + .bodywebsite .p-md-0 { + padding: 0 !important; + } + + .bodywebsite .p-md-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-md-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-md-3 { + padding: 1rem !important; + } + + .bodywebsite .p-md-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-md-5 { + padding: 3rem !important; + } + + .bodywebsite .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-md-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-md-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-md-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-md-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-md-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-md-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-md-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-md-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-md-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-md-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-md-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-md-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-md-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-md-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-md-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-md-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-md-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-md-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-md-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-md-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-md-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-md-0 { + gap: 0 !important; + } + + .bodywebsite .gap-md-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-md-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-md-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-md-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-md-5 { + gap: 3rem !important; + } + + .bodywebsite .text-md-start { + text-align: left !important; + } + + .bodywebsite .text-md-end { + text-align: right !important; + } + + .bodywebsite .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .bodywebsite .float-lg-start { + float: left !important; + } + + .bodywebsite .float-lg-end { + float: right !important; + } + + .bodywebsite .float-lg-none { + float: none !important; + } + + .bodywebsite .d-lg-inline { + display: inline !important; + } + + .bodywebsite .d-lg-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-lg-block { + display: block !important; + } + + .bodywebsite .d-lg-grid { + display: grid !important; + } + + .bodywebsite .d-lg-table { + display: table !important; + } + + .bodywebsite .d-lg-table-row { + display: table-row !important; + } + + .bodywebsite .d-lg-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-lg-flex { + display: flex !important; + } + + .bodywebsite .d-lg-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-lg-none { + display: none !important; + } + + .bodywebsite .flex-lg-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-lg-row { + flex-direction: row !important; + } + + .bodywebsite .flex-lg-column { + flex-direction: column !important; + } + + .bodywebsite .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-lg-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-lg-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-lg-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-lg-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-lg-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-lg-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-lg-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-lg-center { + align-items: center !important; + } + + .bodywebsite .align-items-lg-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-lg-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-lg-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-lg-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-lg-center { + align-content: center !important; + } + + .bodywebsite .align-content-lg-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-lg-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-lg-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-lg-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-lg-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-lg-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-lg-center { + align-self: center !important; + } + + .bodywebsite .align-self-lg-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-lg-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-lg-first { + order: -1 !important; + } + + .bodywebsite .order-lg-0 { + order: 0 !important; + } + + .bodywebsite .order-lg-1 { + order: 1 !important; + } + + .bodywebsite .order-lg-2 { + order: 2 !important; + } + + .bodywebsite .order-lg-3 { + order: 3 !important; + } + + .bodywebsite .order-lg-4 { + order: 4 !important; + } + + .bodywebsite .order-lg-5 { + order: 5 !important; + } + + .bodywebsite .order-lg-last { + order: 6 !important; + } + + .bodywebsite .m-lg-0 { + margin: 0 !important; + } + + .bodywebsite .m-lg-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-lg-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-lg-3 { + margin: 1rem !important; + } + + .bodywebsite .m-lg-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-lg-5 { + margin: 3rem !important; + } + + .bodywebsite .m-lg-auto { + margin: auto !important; + } + + .bodywebsite .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-lg-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-lg-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-lg-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-lg-auto { + margin-top: auto !important; + } + + .bodywebsite .me-lg-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-lg-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-lg-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-lg-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-lg-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-lg-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-lg-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-lg-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-lg-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-lg-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-lg-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-lg-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-lg-auto { + margin-left: auto !important; + } + + .bodywebsite .p-lg-0 { + padding: 0 !important; + } + + .bodywebsite .p-lg-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-lg-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-lg-3 { + padding: 1rem !important; + } + + .bodywebsite .p-lg-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-lg-5 { + padding: 3rem !important; + } + + .bodywebsite .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-lg-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-lg-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-lg-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-lg-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-lg-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-lg-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-lg-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-lg-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-lg-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-lg-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-lg-0 { + gap: 0 !important; + } + + .bodywebsite .gap-lg-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-lg-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-lg-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-lg-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-lg-5 { + gap: 3rem !important; + } + + .bodywebsite .text-lg-start { + text-align: left !important; + } + + .bodywebsite .text-lg-end { + text-align: right !important; + } + + .bodywebsite .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .float-xl-start { + float: left !important; + } + + .bodywebsite .float-xl-end { + float: right !important; + } + + .bodywebsite .float-xl-none { + float: none !important; + } + + .bodywebsite .d-xl-inline { + display: inline !important; + } + + .bodywebsite .d-xl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xl-block { + display: block !important; + } + + .bodywebsite .d-xl-grid { + display: grid !important; + } + + .bodywebsite .d-xl-table { + display: table !important; + } + + .bodywebsite .d-xl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xl-flex { + display: flex !important; + } + + .bodywebsite .d-xl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xl-none { + display: none !important; + } + + .bodywebsite .flex-xl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xl-first { + order: -1 !important; + } + + .bodywebsite .order-xl-0 { + order: 0 !important; + } + + .bodywebsite .order-xl-1 { + order: 1 !important; + } + + .bodywebsite .order-xl-2 { + order: 2 !important; + } + + .bodywebsite .order-xl-3 { + order: 3 !important; + } + + .bodywebsite .order-xl-4 { + order: 4 !important; + } + + .bodywebsite .order-xl-5 { + order: 5 !important; + } + + .bodywebsite .order-xl-last { + order: 6 !important; + } + + .bodywebsite .m-xl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xl-start { + text-align: left !important; + } + + .bodywebsite .text-xl-end { + text-align: right !important; + } + + .bodywebsite .text-xl-center { + text-align: center !important; + } +} + +@media (min-width: 1400px) { + .bodywebsite .float-xxl-start { + float: left !important; + } + + .bodywebsite .float-xxl-end { + float: right !important; + } + + .bodywebsite .float-xxl-none { + float: none !important; + } + + .bodywebsite .d-xxl-inline { + display: inline !important; + } + + .bodywebsite .d-xxl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xxl-block { + display: block !important; + } + + .bodywebsite .d-xxl-grid { + display: grid !important; + } + + .bodywebsite .d-xxl-table { + display: table !important; + } + + .bodywebsite .d-xxl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xxl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xxl-flex { + display: flex !important; + } + + .bodywebsite .d-xxl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xxl-none { + display: none !important; + } + + .bodywebsite .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xxl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xxl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xxl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xxl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xxl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xxl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xxl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xxl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xxl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xxl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xxl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xxl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xxl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xxl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xxl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xxl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xxl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xxl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xxl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xxl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xxl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xxl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xxl-first { + order: -1 !important; + } + + .bodywebsite .order-xxl-0 { + order: 0 !important; + } + + .bodywebsite .order-xxl-1 { + order: 1 !important; + } + + .bodywebsite .order-xxl-2 { + order: 2 !important; + } + + .bodywebsite .order-xxl-3 { + order: 3 !important; + } + + .bodywebsite .order-xxl-4 { + order: 4 !important; + } + + .bodywebsite .order-xxl-5 { + order: 5 !important; + } + + .bodywebsite .order-xxl-last { + order: 6 !important; + } + + .bodywebsite .m-xxl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xxl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xxl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xxl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xxl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xxl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xxl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xxl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xxl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xxl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xxl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xxl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xxl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xxl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xxl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xxl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xxl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xxl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xxl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xxl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xxl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xxl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xxl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xxl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xxl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xxl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xxl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xxl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xxl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xxl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xxl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xxl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xxl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xxl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xxl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xxl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xxl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xxl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xxl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xxl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xxl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xxl-start { + text-align: left !important; + } + + .bodywebsite .text-xxl-end { + text-align: right !important; + } + + .bodywebsite .text-xxl-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .fs-1 { + font-size: 2.5rem !important; + } + + .bodywebsite .fs-2 { + font-size: 2rem !important; + } + + .bodywebsite .fs-3 { + font-size: 1.75rem !important; + } + + .bodywebsite .fs-4 { + font-size: 1.5rem !important; + } +} + +@media print { + .bodywebsite .d-print-inline { + display: inline !important; + } + + .bodywebsite .d-print-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-print-block { + display: block !important; + } + + .bodywebsite .d-print-grid { + display: grid !important; + } + + .bodywebsite .d-print-table { + display: table !important; + } + + .bodywebsite .d-print-table-row { + display: table-row !important; + } + + .bodywebsite .d-print-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-print-flex { + display: flex !important; + } + + .bodywebsite .d-print-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-print-none { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ + +.bodywebsite #mysection1 { + font-size: 1.2rem; + font-weight: bold; +} + +.bodywebsite .flex { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} + +.bodywebsite h1 h2 h3 h4 { + font-family: Anton; + font-weight: 900; +} + +.bodywebsite .btn-perso { + background-color: #50759e; + padding-left: 20px; + padding-right: 20px; + text-align: center; + color: #fff; + font-weight: bold; +} + +.bodywebsite .btn-perso:hover { + background-color: #fff; + color: #bb393c; +} + +.bodywebsite #landing { + background-color: #C84F37; + color: #fff; + min-height: 100vh; +} + +.bodywebsite #desc { + background-color: #292727; +} + +.bodywebsite nav { + padding-left: 30px; + padding-right: 30px; + background-color: rgba(12, 12, 12, 0.5) !important; + width: 100%; +} + +.bodywebsite #title { + font-size: 80px; + z-index: 11; +} + +.bodywebsite .img-landing { + position: relative; + top: 0%; + z-index: 10; +} + +.bodywebsite .pointed { + cursor: pointer; + background-color: #292727; + color: #fff; +} + +.bodywebsite #contact { + background-color: #C84F37; + color: white; +} + +.bodywebsite .container { + padding-top: 5%; + padding-bottom: 5%; +} + diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/wrapper.php b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/wrapper.php new file mode 100644 index 00000000000..26adb3ef220 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/containers/wrapper.php @@ -0,0 +1,278 @@ +entity; +$original_file = GETPOST("file", "alpha"); +$l = GETPOST('l', 'aZ09'); +$limit = GETPOST('limit', 'int'); + +// Parameters for RSS +$rss = GETPOST('rss', 'aZ09'); +if ($rss) { + $original_file = 'blog.rss'; +} + +// If we have a hash public (hashp), we guess the original_file. +if (!empty($hashp)) { + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile = new EcmFiles($db); + $result = $ecmfile->fetch(0, '', '', '', $hashp); + if ($result > 0) { + $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory + // filepath can be 'users/X' or 'X/propale/PR11111' + if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part. + $tmp = explode('/', $tmp[1], 2); + } + $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path + + if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter. + if ($moduleparttocheck == $modulepart) { + // We remove first level of directory + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + //var_dump($original_file); exit; + } else { + print 'Bad link. File is from another module part.'; + } + } else { + $modulepart = $moduleparttocheck; + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + } + } else { + print "ErrorFileNotFoundWithSharedLink"; + exit; + } +} + +// Define attachment (attachment=true to force choice popup 'open'/'save as') +$attachment = true; +if (preg_match('/\.(html|htm)$/i', $original_file)) { + $attachment = false; +} +if (isset($_GET["attachment"])) { + $attachment = (GETPOST("attachment", 'alphanohtml') ? true : false); +} +if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) { + $attachment = false; +} + +// Define mime type +$type = 'application/octet-stream'; +if (GETPOSTISSET('type')) { + $type = GETPOST('type', 'alpha'); +} else { + $type = dol_mimetype($original_file); +} + +// Security: Delete string ../ into $original_file +$original_file = str_replace("../", "/", $original_file); + +// Cache or not +if (GETPOST("cache", 'aZ09') || image_format_supported($original_file) >= 0) { + // Important: Following code is to avoid page request by browser and PHP CPU at + // each Dolibarr page access. + header('Cache-Control: max-age=3600, public, must-revalidate'); + header('Pragma: cache'); // This is to avoid having Pragma: no-cache +} + +$refname = basename(dirname($original_file)."/"); + +// Get RSS news +if ($rss) { + $format = 'rss'; + $type = ''; + $cachedelay = 0; + $filename = $original_file; + $dir_temp = $conf->website->dir_temp; + + include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; + include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; + $website = new Website($db); + $websitepage = new WebsitePage($db); + + $website->fetch('', $websitekey); + + $filters = array('type_container'=>'blogpost', 'status'=>1); + if ($l) { + $filters['lang'] = $l; + } + + $MAXNEWS = ($limit ? $limit : 20); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, $filters); + $eventarray = array(); + if (is_array($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + $blog->fullpageurl = $website->virtualhost.'/'.$blog->pageurl.'.php'; + $eventarray[] = $blog; + } + } + + require_once DOL_DOCUMENT_ROOT."/core/lib/xcal.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + + dol_syslog("build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG); + + // Clean parameters + if (!$filename) { + $extension = 'rss'; + $filename = $format.'.'.$extension; + } + + // Create dir and define output file (definitive and temporary) + $result = dol_mkdir($dir_temp); + $outputfile = $dir_temp.'/'.$filename; + + $result = 0; + + $buildfile = true; + + if ($cachedelay) { + $nowgmt = dol_now(); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (dol_filemtime($outputfile) > ($nowgmt - $cachedelay)) { + dol_syslog("build_exportfile file ".$outputfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay."). Build is canceled"); + $buildfile = false; + } + } + + if ($buildfile) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($l); + $outputlangs->loadLangs(array("main", "other")); + $title = $desc = $outputlangs->transnoentities('LatestBlogPosts'); + + // Create temp file + $outputfiletmp = tempnam($dir_temp, 'tmp'); // Temporary file (allow call of function by different threads + @chmod($outputfiletmp, octdec($conf->global->MAIN_UMASK)); + + // Write file + $result = build_rssfile($format, $title, $desc, $eventarray, $outputfiletmp, '', $website->virtualhost.'/wrapper.php?rss=1'.($l ? '&l='.$l : ''), $l); + + if ($result >= 0) { + if (dol_move($outputfiletmp, $outputfile, 0, 1)) { + $result = 1; + } else { + $error = 'Failed to rename '.$outputfiletmp.' into '.$outputfile; + dol_syslog("build_exportfile ".$error, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + print $error; + exit(-1); + } + } else { + dol_syslog("build_exportfile build_xxxfile function fails to for format=".$format." outputfiletmp=".$outputfile, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + $langs->load("errors"); + print $langs->trans("ErrorFailToCreateFile", $outputfile); + exit(-1); + } + } + + if ($result >= 0) { + $attachment = false; + if (isset($_GET["attachment"])) { + $attachment = $_GET["attachment"]; + } + //$attachment = false; + $contenttype = 'application/rss+xml'; + if (isset($_GET["contenttype"])) { + $contenttype = $_GET["contenttype"]; + } + //$contenttype='text/plain'; + $outputencoding = 'UTF-8'; + + if ($contenttype) { + header('Content-Type: '.$contenttype.($outputencoding ? '; charset='.$outputencoding : '')); + } + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } + + // Ajout directives pour resoudre bug IE + //header('Cache-Control: Public, must-revalidate'); + //header('Pragma: public'); + if ($cachedelay) { + header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate'); + } else { + header('Cache-Control: private, must-revalidate'); + } + + // Clean parameters + $outputfile = $dir_temp.'/'.$filename; + $result = readfile($outputfile); + if (!$result) { + print 'File '.$outputfile.' was empty.'; + } + + // header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename)); + exit; + } +} elseif ($modulepart == "mycompany" && preg_match('/^\/?logos\//', $original_file)) { + // Get logos + readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); +} else { + // Find the subdirectory name as the reference + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); + $accessallowed = empty($check_access['accessallowed']) ? '' : $check_access['accessallowed']; + $sqlprotectagainstexternals = empty($check_access['sqlprotectagainstexternals']) ? '' : $check_access['sqlprotectagainstexternals']; + $fullpath_original_file = empty($check_access['original_file']) ? '' : $check_access['original_file']; // $fullpath_original_file is now a full path name + if ($hashp) { + $accessallowed = 1; // When using hashp, link is public so we force $accessallowed + $sqlprotectagainstexternals = ''; + } + + // Security: + // Limit access if permissions are wrong + if (!$accessallowed) { + print 'Access forbidden'; + exit; + } + + clearstatcache(); + + $filename = basename($fullpath_original_file); + + // Output file on browser + dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); + $fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset + + // This test if file exists should be useless. We keep it to find bug more easily + if (!file_exists($fullpath_original_file_osencoded)) { + print "ErrorFileDoesNotExists: ".$original_file; + exit; + } + + // Permissions are ok and file found, so we return it + //top_httphead($type); + header('Content-Type: '.$type); + header('Content-Description: File Transfer'); + if ($encoding) { + header('Content-Encoding: '.$encoding); + } + // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } else { + header('Content-Disposition: inline; filename="'.$filename.'"'); + } + header('Content-Length: '.dol_filesize($fullpath_original_file)); + + readfile($fullpath_original_file_osencoded); +} +if (is_object($db)) { + $db->close(); +} +// END PHP diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/article.png b/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/article.png new file mode 100644 index 00000000000..4901fb27d6b Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/article.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/bg.png b/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/bg.png new file mode 100644 index 00000000000..33393041017 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/bg.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/happy-man.png b/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/happy-man.png new file mode 100644 index 00000000000..af36357a957 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-homesubmenu/medias/image/websitekey/happy-man.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-homesubmenu/website_pages.sql b/htdocs/install/doctemplates/websites/website_template-homesubmenu/website_pages.sql new file mode 100644 index 00000000000..bbcf00e3849 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-homesubmenu/website_pages.sql @@ -0,0 +1,9 @@ +-- File generated by Dolibarr 17.0.0-alpha -- 2022-10-09 10:36:48 UTC --; +-- Page ID 202 -> 1__+MAX_llx_website_page__ - Aliases index --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(1__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'index', '', 'Home page', '', '', '', '', '1', '2022-07-27 00:42:00', '2022-10-09 12:36:07', null, '', 'page', '', '__N__email;__N__ $message = GETPOST(\'message\', \'alpha\');__N__ $cmail = new CMailFile(\'Contact from website\', $to, $from, $message);__N__ if ($cmail->sendfile()) {__N__ ?>__N__ __N__ trans(\"ErrorFailedToSendMail\", $from, $to).\'. \'.$cmail->error;__N__ }__N__}__N__?>__N__
    __N__ __N__ __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    __N__ LOREM IPSUM DOLOR SIT AMET EZAJB__N__

    __N__ __N__
    __N__
    __N__

    Our Company

    __N__

    __N__ Lorem ipsum dolor, sit amet consectetur adipisicing__N__ elit. Ab fuga nobis omnis alias, aliquid iste cumque__N__ tempora nam reprehenderit quia itaque debitis,__N__ nostrum labore rerum reiciendis laboriosam unde,__N__ tempore corporis.__N__

    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    Founders

    __N__
      __N__
    • __N__

      Author One

      __N__
    • __N__
    • __N__

      Author Two

      __N__
    • __N__
    • __N__

      Author Three

      __N__
    • __N__
    • __N__

      Author Four

      __N__
    • __N__
    __N__
    __N__
    __N__

    About

    __N__

    __N__ Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis accusantium earum sed odit velit laudantium ex libero quisquam consectetur, __N__ dolorem vero ipsam perferendis quibusdam itaque omnis a consequatur error repellat.__N__

    __N__
    __N__
    __N__
    __N__
    __N____N__
    __N__

    Contact us

    __N__ __N__

    Do you have any questions? Please do not hesitate to contact us directly. Our team will come back to you within__N__ a matter of hours to help you.

    __N__ __N__
    __N__ __N__ __N__
    __N__
    __N__ \" />__N__ __N__
    __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__
      __N__
    • __N__

      getFullAddress() ?>

      __N__
    • __N__ __N__
    • __N__

      phone ?>

      __N__
    • __N__ __N__
    • __N__

      email ?>

      __N__
    • __N__
    __N__
    __N____N__
    __N__ __N__ __N__
    __N__
    __N__ __N__
    __N__', '', 0); +UPDATE llx_website SET fk_default_home = 1__+MAX_llx_website_page__ WHERE rowid = __WEBSITE_ID__; + +-- For Dolibarr v14+ --; +UPDATE llx_website SET lang = 'en' WHERE rowid = __WEBSITE_ID__; +UPDATE llx_website SET otherlang = '' WHERE rowid = __WEBSITE_ID__; + diff --git a/htdocs/install/doctemplates/websites/website_template-noimg.jpg b/htdocs/install/doctemplates/websites/website_template-noimg.jpg new file mode 100644 index 00000000000..5464bf5dd5d Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-noimg.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/LICENSE b/htdocs/install/doctemplates/websites/website_template-noimg/LICENSE new file mode 100644 index 00000000000..871ef743662 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/LICENSE @@ -0,0 +1,4 @@ +LICENSE +------- + +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/README.md b/htdocs/install/doctemplates/websites/website_template-noimg/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/.dolibarr b/htdocs/install/doctemplates/websites/website_template-noimg/containers/.dolibarr new file mode 100644 index 00000000000..0ef9997b4ab --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/.dolibarr @@ -0,0 +1,2 @@ +# Some properties for Dolibarr web site CMS +param=value diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/.htaccess b/htdocs/install/doctemplates/websites/website_template-noimg/containers/.htaccess new file mode 100644 index 00000000000..ed27b33461f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/.htaccess @@ -0,0 +1,2 @@ +# Order allow,deny +# Deny from all diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/README.md b/htdocs/install/doctemplates/websites/website_template-noimg/containers/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/htmlheader.html b/htdocs/install/doctemplates/websites/website_template-noimg/containers/htmlheader.html new file mode 100644 index 00000000000..a58ea695524 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/htmlheader.html @@ -0,0 +1,6 @@ + + + diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/index.php b/htdocs/install/doctemplates/websites/website_template-noimg/containers/index.php new file mode 100644 index 00000000000..64331a0ec08 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/index.php @@ -0,0 +1,4 @@ +ref.'/page80.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/javascript.js.php b/htdocs/install/doctemplates/websites/website_template-noimg/containers/javascript.js.php new file mode 100644 index 00000000000..f58102cf00b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/javascript.js.php @@ -0,0 +1,13 @@ + +/* JS content (all pages) */ + diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/manifest.json.php b/htdocs/install/doctemplates/websites/website_template-noimg/containers/manifest.json.php new file mode 100644 index 00000000000..b61531d6c11 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/manifest.json.php @@ -0,0 +1,13 @@ + + + + + +index + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + + + + Template + + + + + +email; + $message = GETPOST('message', 'alpha'); + $cmail = new CMailFile('Contact from website', $to, $from, $message); + if ($cmail->sendfile()) { + ?> + + trans("ErrorFailedToSendMail", $from, $to).'. '.$cmail->error; + } +} +?> +
    +
    + + +
    +
    + +
    +
    +
    +

    + Brand + Name +

    +

    + Hello fellows, here is a description of the + brand +

    + + + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Products

    +
    +
    +
    +
    +
    + +
    +

    Product 1

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + + + +
    +
    +
    +
    +
    + +
    +

    Product 2

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + + + +
    +
    +
    +
    +
    + +
    +

    Product 3

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + + + +
    +
    +
    +
    +
    + +
    +

    Product 4

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + + + +
    +
    +
    +
    +
    + +
    +

    Product 5

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + + + +
    +
    +
    +
    +
    + +
    +

    Product 6

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +

    Contact us

    +

    + Email: email ?> +

    +

    + Phone-number: phone ?> +

    +
    +
    +

    + Or complete the form +

    +
    +
    + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/robots.txt b/htdocs/install/doctemplates/websites/website_template-noimg/containers/robots.txt new file mode 100644 index 00000000000..2b844f479d6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/robots.txt @@ -0,0 +1,4 @@ +# Robot file. Generated with Dolibarr +User-agent: * +Allow: /public/ +Disallow: /administrator/ diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/styles.css.php b/htdocs/install/doctemplates/websites/website_template-noimg/containers/styles.css.php new file mode 100644 index 00000000000..92936be1175 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/styles.css.php @@ -0,0 +1,12528 @@ + +@charset "UTF-8"; + +.bodywebsite { + /*! + * Bootstrap v5.2.1 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + /* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ + /* rtl:begin:remove */ + /* rtl:end:remove */ + /*# sourceMappingURL=bootstrap.css.map */; +} + +.bodywebsite :root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +.bodywebsite *, + .bodywebsite *::before, + .bodywebsite *::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + .bodywebsite :root { + scroll-behavior: smooth; + } +} + +.bodywebsite body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +} + +.bodywebsite hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +.bodywebsite h6, .bodywebsite .h6, .bodywebsite h5, .bodywebsite .h5, .bodywebsite h4, .bodywebsite .h4, .bodywebsite h3, .bodywebsite .h3, .bodywebsite h2, .bodywebsite .h2, .bodywebsite h1, .bodywebsite .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +.bodywebsite .text-dark{ + color: black; +} + +.bodywebsite h1, .bodywebsite .h1 { + font-size: calc(1.375rem + 1.5vw); +} + +@media (min-width: 1200px) { + .bodywebsite h1, .bodywebsite .h1 { + font-size: 2.5rem; + } +} + +.bodywebsite h2, .bodywebsite .h2 { + font-size: calc(1.325rem + 0.9vw); +} + +@media (min-width: 1200px) { + .bodywebsite h2, .bodywebsite .h2 { + font-size: 2rem; + } +} + +.bodywebsite h3, .bodywebsite .h3 { + font-size: calc(1.3rem + 0.6vw); +} + +@media (min-width: 1200px) { + .bodywebsite h3, .bodywebsite .h3 { + font-size: 1.75rem; + } +} + +.bodywebsite h4, .bodywebsite .h4 { + font-size: calc(1.275rem + 0.3vw); +} + +@media (min-width: 1200px) { + .bodywebsite h4, .bodywebsite .h4 { + font-size: 1.5rem; + } +} + +.bodywebsite h5, .bodywebsite .h5 { + font-size: 1.25rem; +} + +.bodywebsite h6, .bodywebsite .h6 { + font-size: 1rem; +} + +.bodywebsite p { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +.bodywebsite address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +.bodywebsite ol, + .bodywebsite ul { + padding-left: 2rem; +} + +.bodywebsite ol, + .bodywebsite ul, + .bodywebsite dl { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite ol ol, + .bodywebsite ul ul, + .bodywebsite ol ul, + .bodywebsite ul ol { + margin-bottom: 0; +} + +.bodywebsite dt { + font-weight: 700; +} + +.bodywebsite dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +.bodywebsite blockquote { + margin: 0 0 1rem; +} + +.bodywebsite b, + .bodywebsite strong { + font-weight: bolder; +} + +.bodywebsite small, .bodywebsite .small { + font-size: 0.875em; +} + +.bodywebsite mark, .bodywebsite .mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +.bodywebsite sub, + .bodywebsite sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +.bodywebsite sub { + bottom: -0.25em; +} + +.bodywebsite sup { + top: -0.5em; +} + +.bodywebsite a { + color: var(--bs-link-color); + text-decoration: underline; +} + +.bodywebsite a:hover { + color: var(--bs-link-hover-color); +} + +.bodywebsite a:not([href]):not([class]), .bodywebsite a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +.bodywebsite pre, + .bodywebsite code, + .bodywebsite kbd, + .bodywebsite samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +.bodywebsite pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} + +.bodywebsite pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.bodywebsite code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} + +.bodywebsite a > code { + color: inherit; +} + +.bodywebsite kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} + +.bodywebsite kbd kbd { + padding: 0; + font-size: 1em; +} + +.bodywebsite figure { + margin: 0 0 1rem; +} + +.bodywebsite img, + .bodywebsite svg { + vertical-align: middle; +} + +.bodywebsite table { + caption-side: bottom; + border-collapse: collapse; +} + +.bodywebsite caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +.bodywebsite th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +.bodywebsite thead, + .bodywebsite tbody, + .bodywebsite tfoot, + .bodywebsite tr, + .bodywebsite td, + .bodywebsite th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +.bodywebsite label { + display: inline-block; +} + +.bodywebsite button { + border-radius: 0; +} + +.bodywebsite button:focus:not(:focus-visible) { + outline: 0; +} + +.bodywebsite input, + .bodywebsite button, + .bodywebsite select, + .bodywebsite optgroup, + .bodywebsite textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.bodywebsite button, + .bodywebsite select { + text-transform: none; +} + +.bodywebsite [role=button] { + cursor: pointer; +} + +.bodywebsite select { + word-wrap: normal; +} + +.bodywebsite select:disabled { + opacity: 1; +} + +.bodywebsite [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +.bodywebsite button, + .bodywebsite [type=button], + .bodywebsite [type=reset], + .bodywebsite [type=submit] { + -webkit-appearance: button; +} + +.bodywebsite button:not(:disabled), + .bodywebsite [type=button]:not(:disabled), + .bodywebsite [type=reset]:not(:disabled), + .bodywebsite [type=submit]:not(:disabled) { + cursor: pointer; +} + +.bodywebsite ::-moz-focus-inner { + padding: 0; + border-style: none; +} + +.bodywebsite textarea { + resize: vertical; +} + +.bodywebsite fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +.bodywebsite legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} + +@media (min-width: 1200px) { + .bodywebsite legend { + font-size: 1.5rem; + } +} + +.bodywebsite legend + * { + clear: left; +} + +.bodywebsite ::-webkit-datetime-edit-fields-wrapper, + .bodywebsite ::-webkit-datetime-edit-text, + .bodywebsite ::-webkit-datetime-edit-minute, + .bodywebsite ::-webkit-datetime-edit-hour-field, + .bodywebsite ::-webkit-datetime-edit-day-field, + .bodywebsite ::-webkit-datetime-edit-month-field, + .bodywebsite ::-webkit-datetime-edit-year-field { + padding: 0; +} + +.bodywebsite ::-webkit-inner-spin-button { + height: auto; +} + +.bodywebsite [type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +.bodywebsite ::-webkit-search-decoration { + -webkit-appearance: none; +} + +.bodywebsite ::-webkit-color-swatch-wrapper { + padding: 0; +} + +.bodywebsite ::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite ::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite output { + display: inline-block; +} + +.bodywebsite iframe { + border: 0; +} + +.bodywebsite summary { + display: list-item; + cursor: pointer; +} + +.bodywebsite progress { + vertical-align: baseline; +} + +.bodywebsite [hidden] { + display: none !important; +} + +.bodywebsite .lead { + font-size: 1.25rem; + font-weight: 300; +} + +.bodywebsite .display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-1 { + font-size: 5rem; + } +} + +.bodywebsite .display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-2 { + font-size: 4.5rem; + } +} + +.bodywebsite .display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-3 { + font-size: 4rem; + } +} + +.bodywebsite .display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-4 { + font-size: 3.5rem; + } +} + +.bodywebsite .display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-5 { + font-size: 3rem; + } +} + +.bodywebsite .display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-6 { + font-size: 2.5rem; + } +} + +.bodywebsite .list-unstyled { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline-item { + display: inline-block; +} + +.bodywebsite .list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.bodywebsite .initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.bodywebsite .blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.bodywebsite .blockquote > :last-child { + margin-bottom: 0; +} + +.bodywebsite .blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .blockquote-footer::before { + content: "— "; +} + +.bodywebsite .img-fluid { + max-width: 100%; + height: auto; +} + +.bodywebsite .img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid var(--bs-border-color); + border-radius: 0.375rem; + max-width: 100%; + height: auto; +} + +.bodywebsite .figure { + display: inline-block; +} + +.bodywebsite .figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.bodywebsite .figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .container, + .bodywebsite .container-fluid, + .bodywebsite .container-xxl, + .bodywebsite .container-xl, + .bodywebsite .container-lg, + .bodywebsite .container-md, + .bodywebsite .container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .container-sm, .bodywebsite .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1140px; + } +} + +@media (min-width: 1400px) { + .bodywebsite .container-xxl, .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1320px; + } +} + +.bodywebsite .row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} + +.bodywebsite .row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.bodywebsite .col { + flex: 1 0 0%; +} + +.bodywebsite .row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.bodywebsite .row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.bodywebsite .row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.bodywebsite .col-auto { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.bodywebsite .col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.bodywebsite .col-3 { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.bodywebsite .col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.bodywebsite .col-6 { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.bodywebsite .col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.bodywebsite .col-9 { + flex: 0 0 auto; + width: 75%; +} + +.bodywebsite .col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.bodywebsite .col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.bodywebsite .col-12 { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .offset-1 { + margin-left: 8.33333333%; +} + +.bodywebsite .offset-2 { + margin-left: 16.66666667%; +} + +.bodywebsite .offset-3 { + margin-left: 25%; +} + +.bodywebsite .offset-4 { + margin-left: 33.33333333%; +} + +.bodywebsite .offset-5 { + margin-left: 41.66666667%; +} + +.bodywebsite .offset-6 { + margin-left: 50%; +} + +.bodywebsite .offset-7 { + margin-left: 58.33333333%; +} + +.bodywebsite .offset-8 { + margin-left: 66.66666667%; +} + +.bodywebsite .offset-9 { + margin-left: 75%; +} + +.bodywebsite .offset-10 { + margin-left: 83.33333333%; +} + +.bodywebsite .offset-11 { + margin-left: 91.66666667%; +} + +.bodywebsite .g-0, + .bodywebsite .gx-0 { + --bs-gutter-x: 0; +} + +.bodywebsite .g-0, + .bodywebsite .gy-0 { + --bs-gutter-y: 0; +} + +.bodywebsite .g-1, + .bodywebsite .gx-1 { + --bs-gutter-x: 0.25rem; +} + +.bodywebsite .g-1, + .bodywebsite .gy-1 { + --bs-gutter-y: 0.25rem; +} + +.bodywebsite .g-2, + .bodywebsite .gx-2 { + --bs-gutter-x: 0.5rem; +} + +.bodywebsite .g-2, + .bodywebsite .gy-2 { + --bs-gutter-y: 0.5rem; +} + +.bodywebsite .g-3, + .bodywebsite .gx-3 { + --bs-gutter-x: 1rem; +} + +.bodywebsite .g-3, + .bodywebsite .gy-3 { + --bs-gutter-y: 1rem; +} + +.bodywebsite .g-4, + .bodywebsite .gx-4 { + --bs-gutter-x: 1.5rem; +} + +.bodywebsite .g-4, + .bodywebsite .gy-4 { + --bs-gutter-y: 1.5rem; +} + +.bodywebsite .g-5, + .bodywebsite .gx-5 { + --bs-gutter-x: 3rem; +} + +.bodywebsite .g-5, + .bodywebsite .gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .bodywebsite .col-sm { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-sm-0 { + margin-left: 0; + } + + .bodywebsite .offset-sm-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-sm-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-sm-3 { + margin-left: 25%; + } + + .bodywebsite .offset-sm-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-sm-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-sm-6 { + margin-left: 50%; + } + + .bodywebsite .offset-sm-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-sm-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-sm-9 { + margin-left: 75%; + } + + .bodywebsite .offset-sm-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-sm-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gx-sm-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gy-sm-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 768px) { + .bodywebsite .col-md { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-md-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-md-0 { + margin-left: 0; + } + + .bodywebsite .offset-md-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-md-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-md-3 { + margin-left: 25%; + } + + .bodywebsite .offset-md-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-md-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-md-6 { + margin-left: 50%; + } + + .bodywebsite .offset-md-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-md-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-md-9 { + margin-left: 75%; + } + + .bodywebsite .offset-md-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-md-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-md-0, + .bodywebsite .gx-md-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-md-0, + .bodywebsite .gy-md-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-md-1, + .bodywebsite .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-md-1, + .bodywebsite .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gy-md-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 992px) { + .bodywebsite .col-lg { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-lg-0 { + margin-left: 0; + } + + .bodywebsite .offset-lg-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-lg-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-lg-3 { + margin-left: 25%; + } + + .bodywebsite .offset-lg-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-lg-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-lg-6 { + margin-left: 50%; + } + + .bodywebsite .offset-lg-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-lg-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-lg-9 { + margin-left: 75%; + } + + .bodywebsite .offset-lg-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-lg-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gx-lg-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gy-lg-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1200px) { + .bodywebsite .col-xl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gx-xl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gy-xl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1400px) { + .bodywebsite .col-xxl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xxl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xxl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xxl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xxl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} + +.bodywebsite .table { + --bs-table-color: var(--bs-body-color); + --bs-table-bg: transparent; + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-body-color); + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: var(--bs-body-color); + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: var(--bs-body-color); + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: var(--bs-table-color); + vertical-align: top; + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} + +.bodywebsite .table > tbody { + vertical-align: inherit; +} + +.bodywebsite .table > thead { + vertical-align: bottom; +} + +.bodywebsite .table-group-divider { + border-top: 2px solid currentcolor; +} + +.bodywebsite .caption-top { + caption-side: top; +} + +.bodywebsite .table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.bodywebsite .table-bordered > :not(caption) > * { + border-width: 1px 0; +} + +.bodywebsite .table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.bodywebsite .table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.bodywebsite .table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.bodywebsite .table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.bodywebsite .table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.bodywebsite .table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #bacbe6; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #cbccce; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #bcd0c7; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #badce3; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #e6dbb9; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #dfc2c4; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #dfe0e1; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #373b3e; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .bodywebsite .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +.bodywebsite .form-label { + margin-bottom: 0.5rem; +} + +.bodywebsite .col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.bodywebsite .col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.bodywebsite .col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.bodywebsite .form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control { + transition: none; + } +} + +.bodywebsite .form-control[type=file] { + overflow: hidden; +} + +.bodywebsite .form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-control::-webkit-date-and-time-value { + height: 1.5em; +} + +.bodywebsite .form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control:disabled { + background-color: #e9ecef; + opacity: 1; +} + +.bodywebsite .form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.bodywebsite .form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } + + .bodywebsite .form-control::file-selector-button { + transition: none; + } +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.bodywebsite .form-control-plaintext:focus { + outline: 0; +} + +.bodywebsite .form-control-plaintext.form-control-sm, .bodywebsite .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.bodywebsite .form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite .form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); +} + +.bodywebsite textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem; +} + +.bodywebsite .form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color::-webkit-color-swatch { + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite .form-control-color.form-control-lg { + height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-select { + transition: none; + } +} + +.bodywebsite .form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-select[multiple], .bodywebsite .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} + +.bodywebsite .form-select:disabled { + background-color: #e9ecef; +} + +.bodywebsite .form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.bodywebsite .form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} + +.bodywebsite .form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.bodywebsite .form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} + +.bodywebsite .form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.bodywebsite .form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} + +.bodywebsite .form-check-input[type=checkbox] { + border-radius: 0.25em; +} + +.bodywebsite .form-check-input[type=radio] { + border-radius: 50%; +} + +.bodywebsite .form-check-input:active { + filter: brightness(90%); +} + +.bodywebsite .form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} + +.bodywebsite .form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} + +.bodywebsite .form-check-input[disabled] ~ .form-check-label, .bodywebsite .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.bodywebsite .form-switch { + padding-left: 2.5em; +} + +.bodywebsite .form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-switch .form-check-input { + transition: none; + } +} + +.bodywebsite .form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} + +.bodywebsite .form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.bodywebsite .form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.bodywebsite .btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.bodywebsite .btn-check[disabled] + .btn, .bodywebsite .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +.bodywebsite .form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.bodywebsite .form-range:focus { + outline: 0; +} + +.bodywebsite .form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range::-moz-focus-outer { + border: 0; +} + +.bodywebsite .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range:disabled { + pointer-events: none; +} + +.bodywebsite .form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-floating { + position: relative; +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext, + .bodywebsite .form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} + +.bodywebsite .form-floating > label { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-floating > label { + transition: none; + } +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} + +.bodywebsite .form-floating > .form-control::-moz-placeholder, .bodywebsite .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control::placeholder, + .bodywebsite .form-floating > .form-control-plaintext::placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown), .bodywebsite .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:focus, .bodywebsite .form-floating > .form-control:not(:placeholder-shown), + .bodywebsite .form-floating > .form-control-plaintext:focus, + .bodywebsite .form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill, + .bodywebsite .form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:focus ~ label, + .bodywebsite .form-floating > .form-control:not(:placeholder-shown) ~ label, + .bodywebsite .form-floating > .form-control-plaintext ~ label, + .bodywebsite .form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} + +.bodywebsite .input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.bodywebsite .input-group > .form-control, + .bodywebsite .input-group > .form-select, + .bodywebsite .input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} + +.bodywebsite .input-group > .form-control:focus, + .bodywebsite .input-group > .form-select:focus, + .bodywebsite .input-group > .form-floating:focus-within { + z-index: 5; +} + +.bodywebsite .input-group .btn { + position: relative; + z-index: 2; +} + +.bodywebsite .input-group .btn:focus { + z-index: 5; +} + +.bodywebsite .input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.375rem; +} + +.bodywebsite .input-group-lg > .form-control, + .bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-lg > .input-group-text, + .bodywebsite .input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .input-group-sm > .form-control, + .bodywebsite .input-group-sm > .form-select, + .bodywebsite .input-group-sm > .input-group-text, + .bodywebsite .input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-sm > .form-select { + padding-right: 3rem; +} + +.bodywebsite .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .input-group > .form-floating:not(:first-child) > .form-control, + .bodywebsite .input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.bodywebsite .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :valid ~ .valid-feedback, + .bodywebsite .was-validated :valid ~ .valid-tooltip, + .bodywebsite .is-valid ~ .valid-feedback, + .bodywebsite .is-valid ~ .valid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:valid, .bodywebsite .form-control.is-valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:valid:focus, .bodywebsite .form-control.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:valid, .bodywebsite textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:valid, .bodywebsite .form-select.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-select:valid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:valid:not([multiple])[size="1"], .bodywebsite .form-select.is-valid:not([multiple]):not([size]), .bodywebsite .form-select.is-valid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:valid:focus, .bodywebsite .form-select.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-control-color:valid, .bodywebsite .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:valid, .bodywebsite .form-check-input.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:checked, .bodywebsite .form-check-input.is-valid:checked { + background-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:focus, .bodywebsite .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-check-input:valid ~ .form-check-label, .bodywebsite .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.bodywebsite .form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):valid, .bodywebsite .input-group > .form-control:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):valid, + .bodywebsite .input-group > .form-select:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):valid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.bodywebsite .invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.bodywebsite .invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :invalid ~ .invalid-feedback, + .bodywebsite .was-validated :invalid ~ .invalid-tooltip, + .bodywebsite .is-invalid ~ .invalid-feedback, + .bodywebsite .is-invalid ~ .invalid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:invalid, .bodywebsite .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:invalid:focus, .bodywebsite .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:invalid, .bodywebsite textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:invalid, .bodywebsite .form-select.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-select:invalid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:invalid:not([multiple])[size="1"], .bodywebsite .form-select.is-invalid:not([multiple]):not([size]), .bodywebsite .form-select.is-invalid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:invalid:focus, .bodywebsite .form-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-control-color:invalid, .bodywebsite .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:invalid, .bodywebsite .form-check-input.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:checked, .bodywebsite .form-check-input.is-invalid:checked { + background-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:focus, .bodywebsite .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-check-input:invalid ~ .form-check-label, .bodywebsite .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.bodywebsite .form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):invalid, .bodywebsite .input-group > .form-control:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):invalid, + .bodywebsite .input-group > .form-select:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):invalid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.bodywebsite .btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: #212529; + --bs-btn-bg: transparent; + --bs-btn-border-width: 1px; + --bs-btn-border-color: transparent; + --bs-btn-border-radius: 0.375rem; + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .btn { + transition: none; + } +} + +.bodywebsite :not(.btn-check) + .btn:hover, .bodywebsite .btn:first-child:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} + +.bodywebsite .btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:checked + .btn, .bodywebsite :not(.btn-check) + .btn:active, .bodywebsite .btn:first-child:active, .bodywebsite .btn.active, .bodywebsite .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} + +.bodywebsite .btn-check:checked + .btn:focus-visible, .bodywebsite :not(.btn-check) + .btn:active:focus-visible, .bodywebsite .btn:first-child:active:focus-visible, .bodywebsite .btn.active:focus-visible, .bodywebsite .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn:disabled, .bodywebsite .btn.disabled, .bodywebsite fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.bodywebsite .btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; +} + +.bodywebsite .btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; +} + +.bodywebsite .btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.bodywebsite .btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.bodywebsite .btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.bodywebsite .btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.bodywebsite .btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.bodywebsite .btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.bodywebsite .btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.bodywebsite .btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: none; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; +} + +.bodywebsite .btn-link:focus-visible { + color: var(--bs-btn-color); +} + +.bodywebsite .btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.bodywebsite .btn-lg, .bodywebsite .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: 0.5rem; +} + +.bodywebsite .btn-sm, .bodywebsite .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: 0.25rem; +} + +.bodywebsite .fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .fade { + transition: none; + } +} + +.bodywebsite .fade:not(.show) { + opacity: 0; +} + +.bodywebsite .collapse:not(.show) { + display: none; +} + +.bodywebsite .collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing { + transition: none; + } +} + +.bodywebsite .collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing.collapse-horizontal { + transition: none; + } +} + +.bodywebsite .dropup, + .bodywebsite .dropend, + .bodywebsite .dropdown, + .bodywebsite .dropstart, + .bodywebsite .dropup-center, + .bodywebsite .dropdown-center { + position: relative; +} + +.bodywebsite .dropdown-toggle { + white-space: nowrap; +} + +.bodywebsite .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: #212529; + --bs-dropdown-bg: #fff; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: 0.375rem; + --bs-dropdown-border-width: 1px; + --bs-dropdown-inner-border-radius: calc(0.375rem - 1px); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-dropdown-link-color: #212529; + --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-bg: #e9ecef; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); +} + +.bodywebsite .dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropdown-menu-start { + --bs-position: start; +} + +.bodywebsite .dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.bodywebsite .dropdown-menu-end { + --bs-position: end; +} + +.bodywebsite .dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .dropdown-menu-sm-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-sm-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .bodywebsite .dropdown-menu-md-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-md-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .bodywebsite .dropdown-menu-lg-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-lg-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .bodywebsite .dropdown-menu-xl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1400px) { + .bodywebsite .dropdown-menu-xxl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xxl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +.bodywebsite .dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.bodywebsite .dropend .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.bodywebsite .dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: none; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.bodywebsite .dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.bodywebsite .dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.bodywebsite .dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.bodywebsite .dropdown-item:hover, .bodywebsite .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} + +.bodywebsite .dropdown-item.active, .bodywebsite .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} + +.bodywebsite .dropdown-item.disabled, .bodywebsite .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.bodywebsite .dropdown-menu.show { + display: block; +} + +.bodywebsite .dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.bodywebsite .dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.bodywebsite .dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.bodywebsite .btn-group, + .bodywebsite .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.bodywebsite .btn-group > .btn, + .bodywebsite .btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.bodywebsite .btn-group > .btn-check:checked + .btn, + .bodywebsite .btn-group > .btn-check:focus + .btn, + .bodywebsite .btn-group > .btn:hover, + .bodywebsite .btn-group > .btn:focus, + .bodywebsite .btn-group > .btn:active, + .bodywebsite .btn-group > .btn.active, + .bodywebsite .btn-group-vertical > .btn-check:checked + .btn, + .bodywebsite .btn-group-vertical > .btn-check:focus + .btn, + .bodywebsite .btn-group-vertical > .btn:hover, + .bodywebsite .btn-group-vertical > .btn:focus, + .bodywebsite .btn-group-vertical > .btn:active, + .bodywebsite .btn-group-vertical > .btn.active { + z-index: 1; +} + +.bodywebsite .btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.bodywebsite .btn-toolbar .input-group { + width: auto; +} + +.bodywebsite .btn-group { + border-radius: 0.375rem; +} + +.bodywebsite .btn-group > :not(.btn-check:first-child) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.bodywebsite .btn-group > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group > .btn.dropdown-toggle-split:first-child, + .bodywebsite .btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .btn-group > .btn:nth-child(n+3), + .bodywebsite .btn-group > :not(.btn-check) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.bodywebsite .dropdown-toggle-split::after, .bodywebsite .dropup .dropdown-toggle-split::after, .bodywebsite .dropend .dropdown-toggle-split::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.bodywebsite .btn-sm + .dropdown-toggle-split, .bodywebsite .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.bodywebsite .btn-lg + .dropdown-toggle-split, .bodywebsite .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.bodywebsite .btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.bodywebsite .btn-group-vertical > .btn, + .bodywebsite .btn-group-vertical > .btn-group { + width: 100%; +} + +.bodywebsite .btn-group-vertical > .btn:not(:first-child), + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.bodywebsite .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .btn-group-vertical > .btn ~ .btn, + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .nav-link { + transition: none; + } +} + +.bodywebsite .nav-link:hover, .bodywebsite .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} + +.bodywebsite .nav-link.disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.bodywebsite .nav-tabs { + --bs-nav-tabs-border-width: 1px; + --bs-nav-tabs-border-color: #dee2e6; + --bs-nav-tabs-border-radius: 0.375rem; + --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6; + --bs-nav-tabs-link-active-color: #495057; + --bs-nav-tabs-link-active-bg: #fff; + --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff; + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} + +.bodywebsite .nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + background: none; + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} + +.bodywebsite .nav-tabs .nav-link:hover, .bodywebsite .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} + +.bodywebsite .nav-tabs .nav-link.disabled, .bodywebsite .nav-tabs .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-tabs .nav-link.active, + .bodywebsite .nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} + +.bodywebsite .nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav-pills { + --bs-nav-pills-border-radius: 0.375rem; + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} + +.bodywebsite .nav-pills .nav-link { + background: none; + border: 0; + border-radius: var(--bs-nav-pills-border-radius); +} + +.bodywebsite .nav-pills .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-pills .nav-link.active, + .bodywebsite .nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.bodywebsite .nav-fill > .nav-link, + .bodywebsite .nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.bodywebsite .nav-justified > .nav-link, + .bodywebsite .nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.bodywebsite .nav-fill .nav-item .nav-link, + .bodywebsite .nav-justified .nav-item .nav-link { + width: 100%; +} + +.bodywebsite .tab-content > .tab-pane { + display: none; +} + +.bodywebsite .tab-content > .active { + display: block; +} + +.bodywebsite .navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(0, 0, 0, 0.55); + --bs-navbar-hover-color: rgba(0, 0, 0, 0.7); + --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3); + --bs-navbar-active-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --bs-navbar-toggler-border-radius: 0.375rem; + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} + +.bodywebsite .navbar > .container, + .bodywebsite .navbar > .container-fluid, + .bodywebsite .navbar > .container-sm, + .bodywebsite .navbar > .container-md, + .bodywebsite .navbar > .container-lg, + .bodywebsite .navbar > .container-xl, + .bodywebsite .navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} + +.bodywebsite .navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; +} + +.bodywebsite .navbar-brand:hover, .bodywebsite .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.bodywebsite .navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .navbar-nav .show > .nav-link, + .bodywebsite .navbar-nav .nav-link.active { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-nav .dropdown-menu { + position: static; +} + +.bodywebsite .navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} + +.bodywebsite .navbar-text a, + .bodywebsite .navbar-text a:hover, + .bodywebsite .navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.bodywebsite .navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .navbar-toggler { + transition: none; + } +} + +.bodywebsite .navbar-toggler:hover { + text-decoration: none; +} + +.bodywebsite .navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.bodywebsite .navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.bodywebsite .navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .bodywebsite .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-sm .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-md .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-md .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-lg .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xxl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +.bodywebsite .navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} + +.bodywebsite .navbar-expand .navbar-nav { + flex-direction: row; +} + +.bodywebsite .navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.bodywebsite .navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} + +.bodywebsite .navbar-expand .navbar-nav-scroll { + overflow: visible; +} + +.bodywebsite .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.bodywebsite .navbar-expand .navbar-toggler { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-header { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.bodywebsite .navbar-dark { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.bodywebsite .card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-border-width: 1px; + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: 0.375rem; + --bs-card-inner-border-radius: calc(0.375rem - 1px); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(0, 0, 0, 0.03); + --bs-card-bg: #fff; + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); +} + +.bodywebsite .card > hr { + margin-right: 0; + margin-left: 0; +} + +.bodywebsite .card > .list-group { + border-top: inherit; + border-bottom: inherit; +} + +.bodywebsite .card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .card-header + .list-group, + .bodywebsite .card > .list-group + .card-footer { + border-top: 0; +} + +.bodywebsite .card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.bodywebsite .card-title { + margin-bottom: var(--bs-card-title-spacer-y); +} + +.bodywebsite .card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; +} + +.bodywebsite .card-text:last-child { + margin-bottom: 0; +} + +.bodywebsite .card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.bodywebsite .card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; +} + +.bodywebsite .card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} + +.bodywebsite .card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.bodywebsite .card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.bodywebsite .card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top, + .bodywebsite .card-img-bottom { + width: 100%; +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} + +@media (min-width: 576px) { + .bodywebsite .card-group { + display: flex; + flex-flow: row wrap; + } + + .bodywebsite .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + + .bodywebsite .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-top, + .bodywebsite .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-top, + .bodywebsite .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.bodywebsite .accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: #fff; + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: 1px; + --bs-accordion-border-radius: 0.375rem; + --bs-accordion-inner-border-radius: calc(0.375rem - 1px); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: #0c63e4; + --bs-accordion-active-bg: #e7f1ff; +} + +.bodywebsite .accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button { + transition: none; + } +} + +.bodywebsite .accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} + +.bodywebsite .accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button::after { + transition: none; + } +} + +.bodywebsite .accordion-button:hover { + z-index: 2; +} + +.bodywebsite .accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.bodywebsite .accordion-header { + margin-bottom: 0; +} + +.bodywebsite .accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:not(:first-of-type) { + border-top: 0; +} + +.bodywebsite .accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.bodywebsite .accordion-flush .accordion-collapse { + border-width: 0; +} + +.bodywebsite .accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.bodywebsite .accordion-flush .accordion-item:first-child { + border-top: 0; +} + +.bodywebsite .accordion-flush .accordion-item:last-child { + border-bottom: 0; +} + +.bodywebsite .accordion-flush .accordion-item .accordion-button, .bodywebsite .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +.bodywebsite .breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-divider-color: #6c757d; + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/"); +} + +.bodywebsite .breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.bodywebsite .pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: #fff; + --bs-pagination-border-width: 1px; + --bs-pagination-border-color: #dee2e6; + --bs-pagination-border-radius: 0.375rem; + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: #e9ecef; + --bs-pagination-hover-border-color: #dee2e6; + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: #e9ecef; + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: #6c757d; + --bs-pagination-disabled-bg: #fff; + --bs-pagination-disabled-border-color: #dee2e6; + display: flex; + padding-left: 0; + list-style: none; +} + +.bodywebsite .page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .page-link { + transition: none; + } +} + +.bodywebsite .page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} + +.bodywebsite .page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} + +.bodywebsite .page-link.active, .bodywebsite .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} + +.bodywebsite .page-link.disabled, .bodywebsite .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.bodywebsite .page-item:not(:first-child) .page-link { + margin-left: -1px; +} + +.bodywebsite .page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: 0.5rem; +} + +.bodywebsite .pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: 0.25rem; +} + +.bodywebsite .badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: 0.375rem; + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); +} + +.bodywebsite .badge:empty { + display: none; +} + +.bodywebsite .btn .badge { + position: relative; + top: -1px; +} + +.bodywebsite .alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: 1px solid var(--bs-alert-border-color); + --bs-alert-border-radius: 0.375rem; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.bodywebsite .alert-heading { + color: inherit; +} + +.bodywebsite .alert-link { + font-weight: 700; +} + +.bodywebsite .alert-dismissible { + padding-right: 3rem; +} + +.bodywebsite .alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.bodywebsite .alert-primary { + --bs-alert-color: #084298; + --bs-alert-bg: #cfe2ff; + --bs-alert-border-color: #b6d4fe; +} + +.bodywebsite .alert-primary .alert-link { + color: #06357a; +} + +.bodywebsite .alert-secondary { + --bs-alert-color: #41464b; + --bs-alert-bg: #e2e3e5; + --bs-alert-border-color: #d3d6d8; +} + +.bodywebsite .alert-secondary .alert-link { + color: #34383c; +} + +.bodywebsite .alert-success { + --bs-alert-color: #0f5132; + --bs-alert-bg: #d1e7dd; + --bs-alert-border-color: #badbcc; +} + +.bodywebsite .alert-success .alert-link { + color: #0c4128; +} + +.bodywebsite .alert-info { + --bs-alert-color: #055160; + --bs-alert-bg: #cff4fc; + --bs-alert-border-color: #b6effb; +} + +.bodywebsite .alert-info .alert-link { + color: #04414d; +} + +.bodywebsite .alert-warning { + --bs-alert-color: #664d03; + --bs-alert-bg: #fff3cd; + --bs-alert-border-color: #ffecb5; +} + +.bodywebsite .alert-warning .alert-link { + color: #523e02; +} + +.bodywebsite .alert-danger { + --bs-alert-color: #842029; + --bs-alert-bg: #f8d7da; + --bs-alert-border-color: #f5c2c7; +} + +.bodywebsite .alert-danger .alert-link { + color: #6a1a21; +} + +.bodywebsite .alert-light { + --bs-alert-color: #636464; + --bs-alert-bg: #fefefe; + --bs-alert-border-color: #fdfdfe; +} + +.bodywebsite .alert-light .alert-link { + color: #4f5050; +} + +.bodywebsite .alert-dark { + --bs-alert-color: #141619; + --bs-alert-bg: #d3d3d4; + --bs-alert-border-color: #bcbebf; +} + +.bodywebsite .alert-dark .alert-link { + color: #101214; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +.bodywebsite .progress { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: #e9ecef; + --bs-progress-border-radius: 0.375rem; + --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); +} + +.bodywebsite .progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar { + transition: none; + } +} + +.bodywebsite .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.bodywebsite .progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.bodywebsite .list-group { + --bs-list-group-color: #212529; + --bs-list-group-bg: #fff; + --bs-list-group-border-color: rgba(0, 0, 0, 0.125); + --bs-list-group-border-width: 1px; + --bs-list-group-border-radius: 0.375rem; + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: #495057; + --bs-list-group-action-hover-color: #495057; + --bs-list-group-action-hover-bg: #f8f9fa; + --bs-list-group-action-active-color: #212529; + --bs-list-group-action-active-bg: #e9ecef; + --bs-list-group-disabled-color: #6c757d; + --bs-list-group-disabled-bg: #fff; + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); +} + +.bodywebsite .list-group-numbered { + list-style-type: none; + counter-reset: section; +} + +.bodywebsite .list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.bodywebsite .list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} + +.bodywebsite .list-group-item-action:hover, .bodywebsite .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} + +.bodywebsite .list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.bodywebsite .list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} + +.bodywebsite .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.bodywebsite .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} + +.bodywebsite .list-group-item.disabled, .bodywebsite .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} + +.bodywebsite .list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} + +.bodywebsite .list-group-item + .list-group-item { + border-top-width: 0; +} + +.bodywebsite .list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-horizontal { + flex-direction: row; +} + +.bodywebsite .list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item.active { + margin-top: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .bodywebsite .list-group-horizontal-sm { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 768px) { + .bodywebsite .list-group-horizontal-md { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 992px) { + .bodywebsite .list-group-horizontal-lg { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1200px) { + .bodywebsite .list-group-horizontal-xl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1400px) { + .bodywebsite .list-group-horizontal-xxl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +.bodywebsite .list-group-flush { + border-radius: 0; +} + +.bodywebsite .list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.bodywebsite .list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} + +.bodywebsite .list-group-item-primary.list-group-item-action:hover, .bodywebsite .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} + +.bodywebsite .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} + +.bodywebsite .list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action:hover, .bodywebsite .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.bodywebsite .list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} + +.bodywebsite .list-group-item-success.list-group-item-action:hover, .bodywebsite .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} + +.bodywebsite .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.bodywebsite .list-group-item-info { + color: #055160; + background-color: #cff4fc; +} + +.bodywebsite .list-group-item-info.list-group-item-action:hover, .bodywebsite .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} + +.bodywebsite .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.bodywebsite .list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} + +.bodywebsite .list-group-item-warning.list-group-item-action:hover, .bodywebsite .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} + +.bodywebsite .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.bodywebsite .list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} + +.bodywebsite .list-group-item-danger.list-group-item-action:hover, .bodywebsite .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} + +.bodywebsite .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.bodywebsite .list-group-item-light { + color: #636464; + background-color: #fefefe; +} + +.bodywebsite .list-group-item-light.list-group-item-action:hover, .bodywebsite .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} + +.bodywebsite .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.bodywebsite .list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} + +.bodywebsite .list-group-item-dark.list-group-item-action:hover, .bodywebsite .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} + +.bodywebsite .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.bodywebsite .btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: 0.5; +} + +.bodywebsite .btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} + +.bodywebsite .btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} + +.bodywebsite .btn-close:disabled, .bodywebsite .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.bodywebsite .btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.bodywebsite .toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-bg: rgba(255, 255, 255, 0.85); + --bs-toast-border-width: 1px; + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: 0.375rem; + --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-toast-header-color: #6c757d; + --bs-toast-header-bg: rgba(255, 255, 255, 0.85); + --bs-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} + +.bodywebsite .toast.showing { + opacity: 0; +} + +.bodywebsite .toast:not(.show) { + display: none; +} + +.bodywebsite .toast-container { + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} + +.bodywebsite .toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.bodywebsite .toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} + +.bodywebsite .toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.bodywebsite .toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.bodywebsite .modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-bg: #fff; + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: 1px; + --bs-modal-border-radius: 0.5rem; + --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-modal-inner-border-radius: calc(0.5rem - 1px); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: 1px; + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: 1px; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.bodywebsite .modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} + +.bodywebsite .modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .modal.fade .modal-dialog { + transition: none; + } +} + +.bodywebsite .modal.show .modal-dialog { + transform: none; +} + +.bodywebsite .modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.bodywebsite .modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} + +.bodywebsite .modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.bodywebsite .modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.bodywebsite .modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} + +.bodywebsite .modal-backdrop.fade { + opacity: 0; +} + +.bodywebsite .modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.bodywebsite .modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.bodywebsite .modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.bodywebsite .modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.bodywebsite .modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .bodywebsite .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + + .bodywebsite .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + + .bodywebsite .modal-sm { + --bs-modal-width: 300px; + } +} + +@media (min-width: 992px) { + .bodywebsite .modal-lg, + .bodywebsite .modal-xl { + --bs-modal-width: 800px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .modal-xl { + --bs-modal-width: 1140px; + } +} + +.bodywebsite .modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} + +.bodywebsite .modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-header, + .bodywebsite .modal-fullscreen .modal-footer { + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .bodywebsite .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-header, + .bodywebsite .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-header, + .bodywebsite .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-header, + .bodywebsite .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-header, + .bodywebsite .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-header, + .bodywebsite .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} + +.bodywebsite .tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: #fff; + --bs-tooltip-bg: #000; + --bs-tooltip-border-radius: 0.375rem; + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + padding: var(--bs-tooltip-arrow-height); + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} + +.bodywebsite .tooltip.show { + opacity: var(--bs-tooltip-opacity); +} + +.bodywebsite .tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} + +.bodywebsite .tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +.bodywebsite .tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.bodywebsite .popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: #fff; + --bs-popover-border-width: 1px; + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: 0.5rem; + --bs-popover-inner-border-radius: calc(0.5rem - 1px); + --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-bg: #f0f0f0; + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: #212529; + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} + +.bodywebsite .popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} + +.bodywebsite .popover .popover-arrow::before, .bodywebsite .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-end > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom .popover-header::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +.bodywebsite .bs-popover-start > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +.bodywebsite .popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} + +.bodywebsite .popover-header:empty { + display: none; +} + +.bodywebsite .popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.bodywebsite .carousel { + position: relative; +} + +.bodywebsite .carousel.pointer-event { + touch-action: pan-y; +} + +.bodywebsite .carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.bodywebsite .carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-item { + transition: none; + } +} + +.bodywebsite .carousel-item.active, + .bodywebsite .carousel-item-next, + .bodywebsite .carousel-item-prev { + display: block; +} + +.bodywebsite .carousel-item-next:not(.carousel-item-start), + .bodywebsite .active.carousel-item-end { + transform: translateX(100%); +} + +.bodywebsite .carousel-item-prev:not(.carousel-item-end), + .bodywebsite .active.carousel-item-start { + transform: translateX(-100%); +} + +.bodywebsite .carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.bodywebsite .carousel-fade .carousel-item.active, + .bodywebsite .carousel-fade .carousel-item-next.carousel-item-start, + .bodywebsite .carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} + +.bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + transition: none; + } +} + +.bodywebsite .carousel-control-prev:hover, .bodywebsite .carousel-control-prev:focus, + .bodywebsite .carousel-control-next:hover, + .bodywebsite .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.bodywebsite .carousel-control-prev { + left: 0; +} + +.bodywebsite .carousel-control-next { + right: 0; +} + +.bodywebsite .carousel-control-prev-icon, + .bodywebsite .carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.bodywebsite .carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} + +.bodywebsite .carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-indicators [data-bs-target] { + transition: none; + } +} + +.bodywebsite .carousel-indicators .active { + opacity: 1; +} + +.bodywebsite .carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.bodywebsite .carousel-dark .carousel-control-prev-icon, + .bodywebsite .carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} + +.bodywebsite .carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} + +.bodywebsite .carousel-dark .carousel-caption { + color: #000; +} + +.bodywebsite .spinner-grow, + .bodywebsite .spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + -webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +.bodywebsite .spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.bodywebsite .spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +.bodywebsite .spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.bodywebsite .spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .spinner-border, + .bodywebsite .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} + +.bodywebsite .offcanvas, .bodywebsite .offcanvas-xxl, .bodywebsite .offcanvas-xl, .bodywebsite .offcanvas-lg, .bodywebsite .offcanvas-md, .bodywebsite .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-bg: #fff; + --bs-offcanvas-border-width: 1px; + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-sm { + transition: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.hiding, .bodywebsite .offcanvas-sm.show { + visibility: visible; + } +} + +@media (min-width: 576px) { + .bodywebsite .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-sm .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-md { + transition: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.hiding, .bodywebsite .offcanvas-md.show { + visibility: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-md .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-lg { + transition: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.hiding, .bodywebsite .offcanvas-lg.show { + visibility: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-lg .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xl { + transition: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.hiding, .bodywebsite .offcanvas-xl.show { + visibility: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xxl { + transition: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.hiding, .bodywebsite .offcanvas-xxl.show { + visibility: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xxl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.bodywebsite .offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas { + transition: none; + } +} + +.bodywebsite .offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} + +.bodywebsite .offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} + +.bodywebsite .offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} + +.bodywebsite .offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.show:not(.hiding) { + transform: none; +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.hiding, .bodywebsite .offcanvas.show { + visibility: visible; +} + +.bodywebsite .offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.bodywebsite .offcanvas-backdrop.fade { + opacity: 0; +} + +.bodywebsite .offcanvas-backdrop.show { + opacity: 0.5; +} + +.bodywebsite .offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} + +.bodywebsite .offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.bodywebsite .offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.bodywebsite .offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.bodywebsite .placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} + +.bodywebsite .placeholder.btn::before { + display: inline-block; + content: ""; +} + +.bodywebsite .placeholder-xs { + min-height: 0.6em; +} + +.bodywebsite .placeholder-sm { + min-height: 0.8em; +} + +.bodywebsite .placeholder-lg { + min-height: 1.2em; +} + +.bodywebsite .placeholder-glow .placeholder { + -webkit-animation: placeholder-glow 2s ease-in-out infinite; + animation: placeholder-glow 2s ease-in-out infinite; +} + +@-webkit-keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +.bodywebsite .placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-animation: placeholder-wave 2s linear infinite; + animation: placeholder-wave 2s linear infinite; +} + +@-webkit-keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +.bodywebsite .clearfix::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .text-bg-primary { + color: #fff !important; + background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-secondary { + color: #fff !important; + background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-success { + color: #fff !important; + background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-info { + color: #000 !important; + background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-warning { + color: #000 !important; + background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-danger { + color: #fff !important; + background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-light { + color: #000 !important; + background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-dark { + color: #fff !important; + background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .link-primary { + color: #0d6efd !important; +} + +.bodywebsite .link-primary:hover, .bodywebsite .link-primary:focus { + color: #0a58ca !important; +} + +.bodywebsite .link-secondary { + color: #6c757d !important; +} + +.bodywebsite .link-secondary:hover, .bodywebsite .link-secondary:focus { + color: #565e64 !important; +} + +.bodywebsite .link-success { + color: #198754 !important; +} + +.bodywebsite .link-success:hover, .bodywebsite .link-success:focus { + color: #146c43 !important; +} + +.bodywebsite .link-info { + color: #0dcaf0 !important; +} + +.bodywebsite .link-info:hover, .bodywebsite .link-info:focus { + color: #3dd5f3 !important; +} + +.bodywebsite .link-warning { + color: #ffc107 !important; +} + +.bodywebsite .link-warning:hover, .bodywebsite .link-warning:focus { + color: #ffcd39 !important; +} + +.bodywebsite .link-danger { + color: #dc3545 !important; +} + +.bodywebsite .link-danger:hover, .bodywebsite .link-danger:focus { + color: #b02a37 !important; +} + +.bodywebsite .link-light { + color: #f8f9fa !important; +} + +.bodywebsite .link-light:hover, .bodywebsite .link-light:focus { + color: #f9fafb !important; +} + +.bodywebsite .link-dark { + color: #212529 !important; +} + +.bodywebsite .link-dark:hover, .bodywebsite .link-dark:focus { + color: #1a1e21 !important; +} + +.bodywebsite .ratio { + position: relative; + width: 100%; +} + +.bodywebsite .ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} + +.bodywebsite .ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.bodywebsite .ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.bodywebsite .ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.bodywebsite .ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.bodywebsite .ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.bodywebsite .fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.bodywebsite .sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .bodywebsite .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 768px) { + .bodywebsite .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 992px) { + .bodywebsite .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1200px) { + .bodywebsite .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1400px) { + .bodywebsite .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +.bodywebsite .hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.bodywebsite .vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.bodywebsite .visually-hidden, + .bodywebsite .visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.bodywebsite .stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.bodywebsite .text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.bodywebsite .vr { + display: inline-block; + align-self: stretch; + width: 1px; + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.bodywebsite .align-baseline { + vertical-align: baseline !important; +} + +.bodywebsite .align-top { + vertical-align: top !important; +} + +.bodywebsite .align-middle { + vertical-align: middle !important; +} + +.bodywebsite .align-bottom { + vertical-align: bottom !important; +} + +.bodywebsite .align-text-bottom { + vertical-align: text-bottom !important; +} + +.bodywebsite .align-text-top { + vertical-align: text-top !important; +} + +.bodywebsite .float-start { + float: left !important; +} + +.bodywebsite .float-end { + float: right !important; +} + +.bodywebsite .float-none { + float: none !important; +} + +.bodywebsite .opacity-0 { + opacity: 0 !important; +} + +.bodywebsite .opacity-25 { + opacity: 0.25 !important; +} + +.bodywebsite .opacity-50 { + opacity: 0.5 !important; +} + +.bodywebsite .opacity-75 { + opacity: 0.75 !important; +} + +.bodywebsite .opacity-100 { + opacity: 1 !important; +} + +.bodywebsite .overflow-auto { + overflow: auto !important; +} + +.bodywebsite .overflow-hidden { + overflow: hidden !important; +} + +.bodywebsite .overflow-visible { + overflow: visible !important; +} + +.bodywebsite .overflow-scroll { + overflow: scroll !important; +} + +.bodywebsite .d-inline { + display: inline !important; +} + +.bodywebsite .d-inline-block { + display: inline-block !important; +} + +.bodywebsite .d-block { + display: block !important; +} + +.bodywebsite .d-grid { + display: grid !important; +} + +.bodywebsite .d-table { + display: table !important; +} + +.bodywebsite .d-table-row { + display: table-row !important; +} + +.bodywebsite .d-table-cell { + display: table-cell !important; +} + +.bodywebsite .d-flex { + display: flex !important; +} + +.bodywebsite .d-inline-flex { + display: inline-flex !important; +} + +.bodywebsite .d-none { + display: none !important; +} + +.bodywebsite .shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.bodywebsite .shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.bodywebsite .shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.bodywebsite .shadow-none { + box-shadow: none !important; +} + +.bodywebsite .position-static { + position: static !important; +} + +.bodywebsite .position-relative { + position: relative !important; +} + +.bodywebsite .position-absolute { + position: absolute !important; +} + +.bodywebsite .position-fixed { + position: fixed !important; +} + +.bodywebsite .position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.bodywebsite .top-0 { + top: 0 !important; +} + +.bodywebsite .top-50 { + top: 50% !important; +} + +.bodywebsite .top-100 { + top: 100% !important; +} + +.bodywebsite .bottom-0 { + bottom: 0 !important; +} + +.bodywebsite .bottom-50 { + bottom: 50% !important; +} + +.bodywebsite .bottom-100 { + bottom: 100% !important; +} + +.bodywebsite .start-0 { + left: 0 !important; +} + +.bodywebsite .start-50 { + left: 50% !important; +} + +.bodywebsite .start-100 { + left: 100% !important; +} + +.bodywebsite .end-0 { + right: 0 !important; +} + +.bodywebsite .end-50 { + right: 50% !important; +} + +.bodywebsite .end-100 { + right: 100% !important; +} + +.bodywebsite .translate-middle { + transform: translate(-50%, -50%) !important; +} + +.bodywebsite .translate-middle-x { + transform: translateX(-50%) !important; +} + +.bodywebsite .translate-middle-y { + transform: translateY(-50%) !important; +} + +.bodywebsite .border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-0 { + border: 0 !important; +} + +.bodywebsite .border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-top-0 { + border-top: 0 !important; +} + +.bodywebsite .border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-end-0 { + border-right: 0 !important; +} + +.bodywebsite .border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-bottom-0 { + border-bottom: 0 !important; +} + +.bodywebsite .border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-start-0 { + border-left: 0 !important; +} + +.bodywebsite .border-primary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-secondary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-success { + --bs-border-opacity: 1; +} + +.bodywebsite .border-info { + --bs-border-opacity: 1; +} + +.bodywebsite .border-warning { + --bs-border-opacity: 1; +} + +.bodywebsite .border-danger { + --bs-border-opacity: 1; +} + +.bodywebsite .border-light { + --bs-border-opacity: 1; +} + +.bodywebsite .border-dark { + --bs-border-opacity: 1; +} + +.bodywebsite .border-white { + --bs-border-opacity: 1; +} + +.bodywebsite .border-1 { + --bs-border-width: 1px; +} + +.bodywebsite .border-2 { + --bs-border-width: 2px; +} + +.bodywebsite .border-3 { + --bs-border-width: 3px; +} + +.bodywebsite .border-4 { + --bs-border-width: 4px; +} + +.bodywebsite .border-5 { + --bs-border-width: 5px; +} + +.bodywebsite .border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.bodywebsite .border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.bodywebsite .border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.bodywebsite .border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.bodywebsite .border-opacity-100 { + --bs-border-opacity: 1; +} + +.bodywebsite .w-25 { + width: 25% !important; +} + +.bodywebsite .w-50 { + width: 50% !important; +} + +.bodywebsite .w-75 { + width: 75% !important; +} + +.bodywebsite .w-100 { + width: 100% !important; +} + +.bodywebsite .w-auto { + width: auto !important; +} + +.bodywebsite .mw-100 { + max-width: 100% !important; +} + +.bodywebsite .vw-100 { + width: 100vw !important; +} + +.bodywebsite .min-vw-100 { + min-width: 100vw !important; +} + +.bodywebsite .h-25 { + height: 25% !important; +} + +.bodywebsite .h-50 { + height: 50% !important; +} + +.bodywebsite .h-75 { + height: 75% !important; +} + +.bodywebsite .h-100 { + height: 100% !important; +} + +.bodywebsite .h-auto { + height: auto !important; +} + +.bodywebsite .mh-100 { + max-height: 100% !important; +} + +.bodywebsite .vh-100 { + height: 100vh !important; +} + +.bodywebsite .min-vh-100 { + min-height: 100vh !important; +} + +.bodywebsite .flex-fill { + flex: 1 1 auto !important; +} + +.bodywebsite .flex-row { + flex-direction: row !important; +} + +.bodywebsite .flex-column { + flex-direction: column !important; +} + +.bodywebsite .flex-row-reverse { + flex-direction: row-reverse !important; +} + +.bodywebsite .flex-column-reverse { + flex-direction: column-reverse !important; +} + +.bodywebsite .flex-grow-0 { + flex-grow: 0 !important; +} + +.bodywebsite .flex-grow-1 { + flex-grow: 1 !important; +} + +.bodywebsite .flex-shrink-0 { + flex-shrink: 0 !important; +} + +.bodywebsite .flex-shrink-1 { + flex-shrink: 1 !important; +} + +.bodywebsite .flex-wrap { + flex-wrap: wrap !important; +} + +.bodywebsite .flex-nowrap { + flex-wrap: nowrap !important; +} + +.bodywebsite .flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.bodywebsite .justify-content-start { + justify-content: flex-start !important; +} + +.bodywebsite .justify-content-end { + justify-content: flex-end !important; +} + +.bodywebsite .justify-content-center { + justify-content: center !important; +} + +.bodywebsite .justify-content-between { + justify-content: space-between !important; +} + +.bodywebsite .justify-content-around { + justify-content: space-around !important; +} + +.bodywebsite .justify-content-evenly { + justify-content: space-evenly !important; +} + +.bodywebsite .align-items-start { + align-items: flex-start !important; +} + +.bodywebsite .align-items-end { + align-items: flex-end !important; +} + +.bodywebsite .align-items-center { + align-items: center !important; +} + +.bodywebsite .align-items-baseline { + align-items: baseline !important; +} + +.bodywebsite .align-items-stretch { + align-items: stretch !important; +} + +.bodywebsite .align-content-start { + align-content: flex-start !important; +} + +.bodywebsite .align-content-end { + align-content: flex-end !important; +} + +.bodywebsite .align-content-center { + align-content: center !important; +} + +.bodywebsite .align-content-between { + align-content: space-between !important; +} + +.bodywebsite .align-content-around { + align-content: space-around !important; +} + +.bodywebsite .align-content-stretch { + align-content: stretch !important; +} + +.bodywebsite .align-self-auto { + align-self: auto !important; +} + +.bodywebsite .align-self-start { + align-self: flex-start !important; +} + +.bodywebsite .align-self-end { + align-self: flex-end !important; +} + +.bodywebsite .align-self-center { + align-self: center !important; +} + +.bodywebsite .align-self-baseline { + align-self: baseline !important; +} + +.bodywebsite .align-self-stretch { + align-self: stretch !important; +} + +.bodywebsite .order-first { + order: -1 !important; +} + +.bodywebsite .order-0 { + order: 0 !important; +} + +.bodywebsite .order-1 { + order: 1 !important; +} + +.bodywebsite .order-2 { + order: 2 !important; +} + +.bodywebsite .order-3 { + order: 3 !important; +} + +.bodywebsite .order-4 { + order: 4 !important; +} + +.bodywebsite .order-5 { + order: 5 !important; +} + +.bodywebsite .order-last { + order: 6 !important; +} + +.bodywebsite .m-0 { + margin: 0 !important; +} + +.bodywebsite .m-1 { + margin: 0.25rem !important; +} + +.bodywebsite .m-2 { + margin: 0.5rem !important; +} + +.bodywebsite .m-3 { + margin: 1rem !important; +} + +.bodywebsite .m-4 { + margin: 1.5rem !important; +} + +.bodywebsite .m-5 { + margin: 3rem !important; +} + +.bodywebsite .m-auto { + margin: auto !important; +} + +.bodywebsite .mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.bodywebsite .mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.bodywebsite .mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.bodywebsite .mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.bodywebsite .mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.bodywebsite .mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.bodywebsite .mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.bodywebsite .my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.bodywebsite .my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.bodywebsite .my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.bodywebsite .my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.bodywebsite .my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.bodywebsite .my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.bodywebsite .my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.bodywebsite .mt-0 { + margin-top: 0 !important; +} + +.bodywebsite .mt-1 { + margin-top: 0.25rem !important; +} + +.bodywebsite .mt-2 { + margin-top: 0.5rem !important; +} + +.bodywebsite .mt-3 { + margin-top: 1rem !important; +} + +.bodywebsite .mt-4 { + margin-top: 1.5rem !important; +} + +.bodywebsite .mt-5 { + margin-top: 3rem !important; +} + +.bodywebsite .mt-auto { + margin-top: auto !important; +} + +.bodywebsite .me-0 { + margin-right: 0 !important; +} + +.bodywebsite .me-1 { + margin-right: 0.25rem !important; +} + +.bodywebsite .me-2 { + margin-right: 0.5rem !important; +} + +.bodywebsite .me-3 { + margin-right: 1rem !important; +} + +.bodywebsite .me-4 { + margin-right: 1.5rem !important; +} + +.bodywebsite .me-5 { + margin-right: 3rem !important; +} + +.bodywebsite .me-auto { + margin-right: auto !important; +} + +.bodywebsite .mb-0 { + margin-bottom: 0 !important; +} + +.bodywebsite .mb-1 { + margin-bottom: 0.25rem !important; +} + +.bodywebsite .mb-2 { + margin-bottom: 0.5rem !important; +} + +.bodywebsite .mb-3 { + margin-bottom: 1rem !important; +} + +.bodywebsite .mb-4 { + margin-bottom: 1.5rem !important; +} + +.bodywebsite .mb-5 { + margin-bottom: 3rem !important; +} + +.bodywebsite .mb-auto { + margin-bottom: auto !important; +} + +.bodywebsite .ms-0 { + margin-left: 0 !important; +} + +.bodywebsite .ms-1 { + margin-left: 0.25rem !important; +} + +.bodywebsite .ms-2 { + margin-left: 0.5rem !important; +} + +.bodywebsite .ms-3 { + margin-left: 1rem !important; +} + +.bodywebsite .ms-4 { + margin-left: 1.5rem !important; +} + +.bodywebsite .ms-5 { + margin-left: 3rem !important; +} + +.bodywebsite .ms-auto { + margin-left: auto !important; +} + +.bodywebsite .p-0 { + padding: 0 !important; +} + +.bodywebsite .p-1 { + padding: 0.25rem !important; +} + +.bodywebsite .p-2 { + padding: 0.5rem !important; +} + +.bodywebsite .p-3 { + padding: 1rem !important; +} + +.bodywebsite .p-4 { + padding: 1.5rem !important; +} + +.bodywebsite .p-5 { + padding: 3rem !important; +} + +.bodywebsite .px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.bodywebsite .px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.bodywebsite .px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.bodywebsite .px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.bodywebsite .px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.bodywebsite .px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.bodywebsite .py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.bodywebsite .py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.bodywebsite .py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.bodywebsite .py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.bodywebsite .py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.bodywebsite .py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.bodywebsite .pt-0 { + padding-top: 0 !important; +} + +.bodywebsite .pt-1 { + padding-top: 0.25rem !important; +} + +.bodywebsite .pt-2 { + padding-top: 0.5rem !important; +} + +.bodywebsite .pt-3 { + padding-top: 1rem !important; +} + +.bodywebsite .pt-4 { + padding-top: 1.5rem !important; +} + +.bodywebsite .pt-5 { + padding-top: 3rem !important; +} + +.bodywebsite .pe-0 { + padding-right: 0 !important; +} + +.bodywebsite .pe-1 { + padding-right: 0.25rem !important; +} + +.bodywebsite .pe-2 { + padding-right: 0.5rem !important; +} + +.bodywebsite .pe-3 { + padding-right: 1rem !important; +} + +.bodywebsite .pe-4 { + padding-right: 1.5rem !important; +} + +.bodywebsite .pe-5 { + padding-right: 3rem !important; +} + +.bodywebsite .pb-0 { + padding-bottom: 0 !important; +} + +.bodywebsite .pb-1 { + padding-bottom: 0.25rem !important; +} + +.bodywebsite .pb-2 { + padding-bottom: 0.5rem !important; +} + +.bodywebsite .pb-3 { + padding-bottom: 1rem !important; +} + +.bodywebsite .pb-4 { + padding-bottom: 1.5rem !important; +} + +.bodywebsite .pb-5 { + padding-bottom: 3rem !important; +} + +.bodywebsite .ps-0 { + padding-left: 0 !important; +} + +.bodywebsite .ps-1 { + padding-left: 0.25rem !important; +} + +.bodywebsite .ps-2 { + padding-left: 0.5rem !important; +} + +.bodywebsite .ps-3 { + padding-left: 1rem !important; +} + +.bodywebsite .ps-4 { + padding-left: 1.5rem !important; +} + +.bodywebsite .ps-5 { + padding-left: 3rem !important; +} + +.bodywebsite .gap-0 { + gap: 0 !important; +} + +.bodywebsite .gap-1 { + gap: 0.25rem !important; +} + +.bodywebsite .gap-2 { + gap: 0.5rem !important; +} + +.bodywebsite .gap-3 { + gap: 1rem !important; +} + +.bodywebsite .gap-4 { + gap: 1.5rem !important; +} + +.bodywebsite .gap-5 { + gap: 3rem !important; +} + +.bodywebsite .font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.bodywebsite .fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.bodywebsite .fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.bodywebsite .fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.bodywebsite .fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.bodywebsite .fs-5 { + font-size: 1.25rem !important; +} + +.bodywebsite .fs-6 { + font-size: 1rem !important; +} + +.bodywebsite .fst-italic { + font-style: italic !important; +} + +.bodywebsite .fst-normal { + font-style: normal !important; +} + +.bodywebsite .fw-light { + font-weight: 300 !important; +} + +.bodywebsite .fw-lighter { + font-weight: lighter !important; +} + +.bodywebsite .fw-normal { + font-weight: 400 !important; +} + +.bodywebsite .fw-bold { + font-weight: 700 !important; +} + +.bodywebsite .fw-semibold { + font-weight: 600 !important; +} + +.bodywebsite .fw-bolder { + font-weight: bolder !important; +} + +.bodywebsite .lh-1 { + line-height: 1 !important; +} + +.bodywebsite .lh-sm { + line-height: 1.25 !important; +} + +.bodywebsite .lh-base { + line-height: 1.5 !important; +} + +.bodywebsite .lh-lg { + line-height: 2 !important; +} + +.bodywebsite .text-start { + text-align: left !important; +} + +.bodywebsite .text-end { + text-align: right !important; +} + +.bodywebsite .text-center { + text-align: center !important; +} + +.bodywebsite .text-decoration-none { + text-decoration: none !important; +} + +.bodywebsite .text-decoration-underline { + text-decoration: underline !important; +} + +.bodywebsite .text-decoration-line-through { + text-decoration: line-through !important; +} + +.bodywebsite .text-lowercase { + text-transform: lowercase !important; +} + +.bodywebsite .text-uppercase { + text-transform: uppercase !important; +} + +.bodywebsite .text-capitalize { + text-transform: capitalize !important; +} + +.bodywebsite .text-wrap { + white-space: normal !important; +} + +.bodywebsite .text-nowrap { + white-space: nowrap !important; +} + +.bodywebsite .text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +.bodywebsite .text-primary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-secondary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-success { + --bs-text-opacity: 1; +} + +.bodywebsite .text-info { + --bs-text-opacity: 1; +} + +.bodywebsite .text-warning { + --bs-text-opacity: 1; +} + +.bodywebsite .text-danger { + --bs-text-opacity: 1; +} + +.bodywebsite .text-light { + --bs-text-opacity: 1; +} + +.bodywebsite .text-dark { + --bs-text-opacity: 1; +} + +.bodywebsite .text-black { + --bs-text-opacity: 1; +} + +.bodywebsite .text-white { + --bs-text-opacity: 1; +} + +.bodywebsite .text-body { + --bs-text-opacity: 1; +} + +.bodywebsite .text-muted { + --bs-text-opacity: 1; + color: #6c757d !important; +} + +.bodywebsite .text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.bodywebsite .text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.bodywebsite .text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.bodywebsite .text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.bodywebsite .text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.bodywebsite .text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.bodywebsite .text-opacity-100 { + --bs-text-opacity: 1; +} + +.bodywebsite .bg-primary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-secondary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-success { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-info { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-warning { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-danger { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-light { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-dark { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-black { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-white { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-body { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-transparent { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bodywebsite .bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bodywebsite .bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bodywebsite .bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bodywebsite .bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.bodywebsite .user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.bodywebsite .user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.bodywebsite .user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.bodywebsite .pe-none { + pointer-events: none !important; +} + +.bodywebsite .pe-auto { + pointer-events: auto !important; +} + +.bodywebsite .rounded { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-0 { + border-radius: 0 !important; +} + +.bodywebsite .rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.bodywebsite .rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.bodywebsite .rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.bodywebsite .rounded-5 { + border-radius: var(--bs-border-radius-2xl) !important; +} + +.bodywebsite .rounded-circle { + border-radius: 50% !important; +} + +.bodywebsite .rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.bodywebsite .rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .visible { + visibility: visible !important; +} + +.bodywebsite .invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .bodywebsite .float-sm-start { + float: left !important; + } + + .bodywebsite .float-sm-end { + float: right !important; + } + + .bodywebsite .float-sm-none { + float: none !important; + } + + .bodywebsite .d-sm-inline { + display: inline !important; + } + + .bodywebsite .d-sm-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-sm-block { + display: block !important; + } + + .bodywebsite .d-sm-grid { + display: grid !important; + } + + .bodywebsite .d-sm-table { + display: table !important; + } + + .bodywebsite .d-sm-table-row { + display: table-row !important; + } + + .bodywebsite .d-sm-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-sm-flex { + display: flex !important; + } + + .bodywebsite .d-sm-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-sm-none { + display: none !important; + } + + .bodywebsite .flex-sm-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-sm-row { + flex-direction: row !important; + } + + .bodywebsite .flex-sm-column { + flex-direction: column !important; + } + + .bodywebsite .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-sm-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-sm-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-sm-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-sm-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-sm-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-sm-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-sm-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-sm-center { + align-items: center !important; + } + + .bodywebsite .align-items-sm-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-sm-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-sm-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-sm-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-sm-center { + align-content: center !important; + } + + .bodywebsite .align-content-sm-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-sm-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-sm-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-sm-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-sm-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-sm-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-sm-center { + align-self: center !important; + } + + .bodywebsite .align-self-sm-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-sm-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-sm-first { + order: -1 !important; + } + + .bodywebsite .order-sm-0 { + order: 0 !important; + } + + .bodywebsite .order-sm-1 { + order: 1 !important; + } + + .bodywebsite .order-sm-2 { + order: 2 !important; + } + + .bodywebsite .order-sm-3 { + order: 3 !important; + } + + .bodywebsite .order-sm-4 { + order: 4 !important; + } + + .bodywebsite .order-sm-5 { + order: 5 !important; + } + + .bodywebsite .order-sm-last { + order: 6 !important; + } + + .bodywebsite .m-sm-0 { + margin: 0 !important; + } + + .bodywebsite .m-sm-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-sm-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-sm-3 { + margin: 1rem !important; + } + + .bodywebsite .m-sm-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-sm-5 { + margin: 3rem !important; + } + + .bodywebsite .m-sm-auto { + margin: auto !important; + } + + .bodywebsite .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-sm-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-sm-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-sm-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-sm-auto { + margin-top: auto !important; + } + + .bodywebsite .me-sm-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-sm-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-sm-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-sm-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-sm-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-sm-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-sm-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-sm-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-sm-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-sm-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-sm-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-sm-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-sm-auto { + margin-left: auto !important; + } + + .bodywebsite .p-sm-0 { + padding: 0 !important; + } + + .bodywebsite .p-sm-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-sm-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-sm-3 { + padding: 1rem !important; + } + + .bodywebsite .p-sm-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-sm-5 { + padding: 3rem !important; + } + + .bodywebsite .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-sm-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-sm-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-sm-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-sm-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-sm-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-sm-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-sm-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-sm-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-sm-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-sm-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-sm-0 { + gap: 0 !important; + } + + .bodywebsite .gap-sm-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-sm-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-sm-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-sm-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-sm-5 { + gap: 3rem !important; + } + + .bodywebsite .text-sm-start { + text-align: left !important; + } + + .bodywebsite .text-sm-end { + text-align: right !important; + } + + .bodywebsite .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .bodywebsite .float-md-start { + float: left !important; + } + + .bodywebsite .float-md-end { + float: right !important; + } + + .bodywebsite .float-md-none { + float: none !important; + } + + .bodywebsite .d-md-inline { + display: inline !important; + } + + .bodywebsite .d-md-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-md-block { + display: block !important; + } + + .bodywebsite .d-md-grid { + display: grid !important; + } + + .bodywebsite .d-md-table { + display: table !important; + } + + .bodywebsite .d-md-table-row { + display: table-row !important; + } + + .bodywebsite .d-md-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-md-flex { + display: flex !important; + } + + .bodywebsite .d-md-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-md-none { + display: none !important; + } + + .bodywebsite .flex-md-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-md-row { + flex-direction: row !important; + } + + .bodywebsite .flex-md-column { + flex-direction: column !important; + } + + .bodywebsite .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-md-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-md-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-md-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-md-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-md-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-md-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-md-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-md-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-md-center { + align-items: center !important; + } + + .bodywebsite .align-items-md-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-md-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-md-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-md-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-md-center { + align-content: center !important; + } + + .bodywebsite .align-content-md-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-md-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-md-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-md-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-md-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-md-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-md-center { + align-self: center !important; + } + + .bodywebsite .align-self-md-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-md-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-md-first { + order: -1 !important; + } + + .bodywebsite .order-md-0 { + order: 0 !important; + } + + .bodywebsite .order-md-1 { + order: 1 !important; + } + + .bodywebsite .order-md-2 { + order: 2 !important; + } + + .bodywebsite .order-md-3 { + order: 3 !important; + } + + .bodywebsite .order-md-4 { + order: 4 !important; + } + + .bodywebsite .order-md-5 { + order: 5 !important; + } + + .bodywebsite .order-md-last { + order: 6 !important; + } + + .bodywebsite .m-md-0 { + margin: 0 !important; + } + + .bodywebsite .m-md-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-md-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-md-3 { + margin: 1rem !important; + } + + .bodywebsite .m-md-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-md-5 { + margin: 3rem !important; + } + + .bodywebsite .m-md-auto { + margin: auto !important; + } + + .bodywebsite .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-md-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-md-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-md-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-md-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-md-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-md-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-md-auto { + margin-top: auto !important; + } + + .bodywebsite .me-md-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-md-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-md-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-md-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-md-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-md-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-md-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-md-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-md-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-md-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-md-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-md-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-md-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-md-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-md-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-md-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-md-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-md-auto { + margin-left: auto !important; + } + + .bodywebsite .p-md-0 { + padding: 0 !important; + } + + .bodywebsite .p-md-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-md-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-md-3 { + padding: 1rem !important; + } + + .bodywebsite .p-md-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-md-5 { + padding: 3rem !important; + } + + .bodywebsite .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-md-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-md-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-md-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-md-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-md-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-md-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-md-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-md-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-md-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-md-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-md-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-md-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-md-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-md-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-md-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-md-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-md-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-md-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-md-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-md-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-md-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-md-0 { + gap: 0 !important; + } + + .bodywebsite .gap-md-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-md-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-md-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-md-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-md-5 { + gap: 3rem !important; + } + + .bodywebsite .text-md-start { + text-align: left !important; + } + + .bodywebsite .text-md-end { + text-align: right !important; + } + + .bodywebsite .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .bodywebsite .float-lg-start { + float: left !important; + } + + .bodywebsite .float-lg-end { + float: right !important; + } + + .bodywebsite .float-lg-none { + float: none !important; + } + + .bodywebsite .d-lg-inline { + display: inline !important; + } + + .bodywebsite .d-lg-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-lg-block { + display: block !important; + } + + .bodywebsite .d-lg-grid { + display: grid !important; + } + + .bodywebsite .d-lg-table { + display: table !important; + } + + .bodywebsite .d-lg-table-row { + display: table-row !important; + } + + .bodywebsite .d-lg-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-lg-flex { + display: flex !important; + } + + .bodywebsite .d-lg-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-lg-none { + display: none !important; + } + + .bodywebsite .flex-lg-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-lg-row { + flex-direction: row !important; + } + + .bodywebsite .flex-lg-column { + flex-direction: column !important; + } + + .bodywebsite .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-lg-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-lg-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-lg-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-lg-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-lg-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-lg-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-lg-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-lg-center { + align-items: center !important; + } + + .bodywebsite .align-items-lg-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-lg-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-lg-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-lg-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-lg-center { + align-content: center !important; + } + + .bodywebsite .align-content-lg-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-lg-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-lg-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-lg-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-lg-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-lg-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-lg-center { + align-self: center !important; + } + + .bodywebsite .align-self-lg-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-lg-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-lg-first { + order: -1 !important; + } + + .bodywebsite .order-lg-0 { + order: 0 !important; + } + + .bodywebsite .order-lg-1 { + order: 1 !important; + } + + .bodywebsite .order-lg-2 { + order: 2 !important; + } + + .bodywebsite .order-lg-3 { + order: 3 !important; + } + + .bodywebsite .order-lg-4 { + order: 4 !important; + } + + .bodywebsite .order-lg-5 { + order: 5 !important; + } + + .bodywebsite .order-lg-last { + order: 6 !important; + } + + .bodywebsite .m-lg-0 { + margin: 0 !important; + } + + .bodywebsite .m-lg-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-lg-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-lg-3 { + margin: 1rem !important; + } + + .bodywebsite .m-lg-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-lg-5 { + margin: 3rem !important; + } + + .bodywebsite .m-lg-auto { + margin: auto !important; + } + + .bodywebsite .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-lg-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-lg-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-lg-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-lg-auto { + margin-top: auto !important; + } + + .bodywebsite .me-lg-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-lg-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-lg-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-lg-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-lg-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-lg-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-lg-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-lg-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-lg-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-lg-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-lg-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-lg-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-lg-auto { + margin-left: auto !important; + } + + .bodywebsite .p-lg-0 { + padding: 0 !important; + } + + .bodywebsite .p-lg-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-lg-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-lg-3 { + padding: 1rem !important; + } + + .bodywebsite .p-lg-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-lg-5 { + padding: 3rem !important; + } + + .bodywebsite .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-lg-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-lg-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-lg-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-lg-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-lg-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-lg-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-lg-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-lg-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-lg-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-lg-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-lg-0 { + gap: 0 !important; + } + + .bodywebsite .gap-lg-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-lg-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-lg-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-lg-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-lg-5 { + gap: 3rem !important; + } + + .bodywebsite .text-lg-start { + text-align: left !important; + } + + .bodywebsite .text-lg-end { + text-align: right !important; + } + + .bodywebsite .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .float-xl-start { + float: left !important; + } + + .bodywebsite .float-xl-end { + float: right !important; + } + + .bodywebsite .float-xl-none { + float: none !important; + } + + .bodywebsite .d-xl-inline { + display: inline !important; + } + + .bodywebsite .d-xl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xl-block { + display: block !important; + } + + .bodywebsite .d-xl-grid { + display: grid !important; + } + + .bodywebsite .d-xl-table { + display: table !important; + } + + .bodywebsite .d-xl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xl-flex { + display: flex !important; + } + + .bodywebsite .d-xl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xl-none { + display: none !important; + } + + .bodywebsite .flex-xl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xl-first { + order: -1 !important; + } + + .bodywebsite .order-xl-0 { + order: 0 !important; + } + + .bodywebsite .order-xl-1 { + order: 1 !important; + } + + .bodywebsite .order-xl-2 { + order: 2 !important; + } + + .bodywebsite .order-xl-3 { + order: 3 !important; + } + + .bodywebsite .order-xl-4 { + order: 4 !important; + } + + .bodywebsite .order-xl-5 { + order: 5 !important; + } + + .bodywebsite .order-xl-last { + order: 6 !important; + } + + .bodywebsite .m-xl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xl-start { + text-align: left !important; + } + + .bodywebsite .text-xl-end { + text-align: right !important; + } + + .bodywebsite .text-xl-center { + text-align: center !important; + } +} + +@media (min-width: 1400px) { + .bodywebsite .float-xxl-start { + float: left !important; + } + + .bodywebsite .float-xxl-end { + float: right !important; + } + + .bodywebsite .float-xxl-none { + float: none !important; + } + + .bodywebsite .d-xxl-inline { + display: inline !important; + } + + .bodywebsite .d-xxl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xxl-block { + display: block !important; + } + + .bodywebsite .d-xxl-grid { + display: grid !important; + } + + .bodywebsite .d-xxl-table { + display: table !important; + } + + .bodywebsite .d-xxl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xxl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xxl-flex { + display: flex !important; + } + + .bodywebsite .d-xxl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xxl-none { + display: none !important; + } + + .bodywebsite .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xxl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xxl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xxl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xxl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xxl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xxl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xxl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xxl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xxl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xxl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xxl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xxl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xxl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xxl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xxl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xxl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xxl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xxl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xxl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xxl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xxl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xxl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xxl-first { + order: -1 !important; + } + + .bodywebsite .order-xxl-0 { + order: 0 !important; + } + + .bodywebsite .order-xxl-1 { + order: 1 !important; + } + + .bodywebsite .order-xxl-2 { + order: 2 !important; + } + + .bodywebsite .order-xxl-3 { + order: 3 !important; + } + + .bodywebsite .order-xxl-4 { + order: 4 !important; + } + + .bodywebsite .order-xxl-5 { + order: 5 !important; + } + + .bodywebsite .order-xxl-last { + order: 6 !important; + } + + .bodywebsite .m-xxl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xxl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xxl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xxl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xxl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xxl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xxl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xxl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xxl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xxl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xxl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xxl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xxl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xxl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xxl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xxl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xxl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xxl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xxl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xxl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xxl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xxl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xxl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xxl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xxl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xxl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xxl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xxl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xxl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xxl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xxl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xxl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xxl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xxl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xxl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xxl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xxl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xxl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xxl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xxl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xxl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xxl-start { + text-align: left !important; + } + + .bodywebsite .text-xxl-end { + text-align: right !important; + } + + .bodywebsite .text-xxl-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .fs-1 { + font-size: 2.5rem !important; + } + + .bodywebsite .fs-2 { + font-size: 2rem !important; + } + + .bodywebsite .fs-3 { + font-size: 1.75rem !important; + } + + .bodywebsite .fs-4 { + font-size: 1.5rem !important; + } +} + +@media print { + .bodywebsite .d-print-inline { + display: inline !important; + } + + .bodywebsite .d-print-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-print-block { + display: block !important; + } + + .bodywebsite .d-print-grid { + display: grid !important; + } + + .bodywebsite .d-print-table { + display: table !important; + } + + .bodywebsite .d-print-table-row { + display: table-row !important; + } + + .bodywebsite .d-print-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-print-flex { + display: flex !important; + } + + .bodywebsite .d-print-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-print-none { + display: none !important; + } +} + +/* CSS content (all pages) */ +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + font-family: 'Hurricane', cursive; +} + +.bodywebsite #title { + font-size: 100px; +} +.bodywebsite #mysection1{ + font-family: 'Inconsolata', monospace; + color: white; + height: 80%; +} + +.bodywebsite .full-height { + height: 100vh; +} +.bodywebsite .color { + color: #aefeff; +} + +.bodywebsite .btn-color { + font-weight: bold; + color: #35858b; + border-color: #35858b; +} + +.bodywebsite .btn-color:hover { + background-color: #35858b; + color: #fff; +} + +.bodywebsite .btn-color-filled { + background-color: #35858b; + color: #072227; +} +.bodywebsite #products { + background-color: whitesmoke; +} + +.bodywebsite #home, .bodywebsite #contact{ + background-color: #072227; +} + +.bodywebsite footer { + position: fixed; + bottom: 0; + left: 50%; + transform: translateX(-50%); +} + +/*# sourceMappingURL=bootstrap.css.map */ + diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/containers/wrapper.php b/htdocs/install/doctemplates/websites/website_template-noimg/containers/wrapper.php new file mode 100644 index 00000000000..26adb3ef220 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/containers/wrapper.php @@ -0,0 +1,278 @@ +entity; +$original_file = GETPOST("file", "alpha"); +$l = GETPOST('l', 'aZ09'); +$limit = GETPOST('limit', 'int'); + +// Parameters for RSS +$rss = GETPOST('rss', 'aZ09'); +if ($rss) { + $original_file = 'blog.rss'; +} + +// If we have a hash public (hashp), we guess the original_file. +if (!empty($hashp)) { + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile = new EcmFiles($db); + $result = $ecmfile->fetch(0, '', '', '', $hashp); + if ($result > 0) { + $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory + // filepath can be 'users/X' or 'X/propale/PR11111' + if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part. + $tmp = explode('/', $tmp[1], 2); + } + $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path + + if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter. + if ($moduleparttocheck == $modulepart) { + // We remove first level of directory + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + //var_dump($original_file); exit; + } else { + print 'Bad link. File is from another module part.'; + } + } else { + $modulepart = $moduleparttocheck; + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + } + } else { + print "ErrorFileNotFoundWithSharedLink"; + exit; + } +} + +// Define attachment (attachment=true to force choice popup 'open'/'save as') +$attachment = true; +if (preg_match('/\.(html|htm)$/i', $original_file)) { + $attachment = false; +} +if (isset($_GET["attachment"])) { + $attachment = (GETPOST("attachment", 'alphanohtml') ? true : false); +} +if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) { + $attachment = false; +} + +// Define mime type +$type = 'application/octet-stream'; +if (GETPOSTISSET('type')) { + $type = GETPOST('type', 'alpha'); +} else { + $type = dol_mimetype($original_file); +} + +// Security: Delete string ../ into $original_file +$original_file = str_replace("../", "/", $original_file); + +// Cache or not +if (GETPOST("cache", 'aZ09') || image_format_supported($original_file) >= 0) { + // Important: Following code is to avoid page request by browser and PHP CPU at + // each Dolibarr page access. + header('Cache-Control: max-age=3600, public, must-revalidate'); + header('Pragma: cache'); // This is to avoid having Pragma: no-cache +} + +$refname = basename(dirname($original_file)."/"); + +// Get RSS news +if ($rss) { + $format = 'rss'; + $type = ''; + $cachedelay = 0; + $filename = $original_file; + $dir_temp = $conf->website->dir_temp; + + include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; + include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; + $website = new Website($db); + $websitepage = new WebsitePage($db); + + $website->fetch('', $websitekey); + + $filters = array('type_container'=>'blogpost', 'status'=>1); + if ($l) { + $filters['lang'] = $l; + } + + $MAXNEWS = ($limit ? $limit : 20); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, $filters); + $eventarray = array(); + if (is_array($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + $blog->fullpageurl = $website->virtualhost.'/'.$blog->pageurl.'.php'; + $eventarray[] = $blog; + } + } + + require_once DOL_DOCUMENT_ROOT."/core/lib/xcal.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + + dol_syslog("build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG); + + // Clean parameters + if (!$filename) { + $extension = 'rss'; + $filename = $format.'.'.$extension; + } + + // Create dir and define output file (definitive and temporary) + $result = dol_mkdir($dir_temp); + $outputfile = $dir_temp.'/'.$filename; + + $result = 0; + + $buildfile = true; + + if ($cachedelay) { + $nowgmt = dol_now(); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (dol_filemtime($outputfile) > ($nowgmt - $cachedelay)) { + dol_syslog("build_exportfile file ".$outputfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay."). Build is canceled"); + $buildfile = false; + } + } + + if ($buildfile) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($l); + $outputlangs->loadLangs(array("main", "other")); + $title = $desc = $outputlangs->transnoentities('LatestBlogPosts'); + + // Create temp file + $outputfiletmp = tempnam($dir_temp, 'tmp'); // Temporary file (allow call of function by different threads + @chmod($outputfiletmp, octdec($conf->global->MAIN_UMASK)); + + // Write file + $result = build_rssfile($format, $title, $desc, $eventarray, $outputfiletmp, '', $website->virtualhost.'/wrapper.php?rss=1'.($l ? '&l='.$l : ''), $l); + + if ($result >= 0) { + if (dol_move($outputfiletmp, $outputfile, 0, 1)) { + $result = 1; + } else { + $error = 'Failed to rename '.$outputfiletmp.' into '.$outputfile; + dol_syslog("build_exportfile ".$error, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + print $error; + exit(-1); + } + } else { + dol_syslog("build_exportfile build_xxxfile function fails to for format=".$format." outputfiletmp=".$outputfile, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + $langs->load("errors"); + print $langs->trans("ErrorFailToCreateFile", $outputfile); + exit(-1); + } + } + + if ($result >= 0) { + $attachment = false; + if (isset($_GET["attachment"])) { + $attachment = $_GET["attachment"]; + } + //$attachment = false; + $contenttype = 'application/rss+xml'; + if (isset($_GET["contenttype"])) { + $contenttype = $_GET["contenttype"]; + } + //$contenttype='text/plain'; + $outputencoding = 'UTF-8'; + + if ($contenttype) { + header('Content-Type: '.$contenttype.($outputencoding ? '; charset='.$outputencoding : '')); + } + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } + + // Ajout directives pour resoudre bug IE + //header('Cache-Control: Public, must-revalidate'); + //header('Pragma: public'); + if ($cachedelay) { + header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate'); + } else { + header('Cache-Control: private, must-revalidate'); + } + + // Clean parameters + $outputfile = $dir_temp.'/'.$filename; + $result = readfile($outputfile); + if (!$result) { + print 'File '.$outputfile.' was empty.'; + } + + // header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename)); + exit; + } +} elseif ($modulepart == "mycompany" && preg_match('/^\/?logos\//', $original_file)) { + // Get logos + readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); +} else { + // Find the subdirectory name as the reference + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); + $accessallowed = empty($check_access['accessallowed']) ? '' : $check_access['accessallowed']; + $sqlprotectagainstexternals = empty($check_access['sqlprotectagainstexternals']) ? '' : $check_access['sqlprotectagainstexternals']; + $fullpath_original_file = empty($check_access['original_file']) ? '' : $check_access['original_file']; // $fullpath_original_file is now a full path name + if ($hashp) { + $accessallowed = 1; // When using hashp, link is public so we force $accessallowed + $sqlprotectagainstexternals = ''; + } + + // Security: + // Limit access if permissions are wrong + if (!$accessallowed) { + print 'Access forbidden'; + exit; + } + + clearstatcache(); + + $filename = basename($fullpath_original_file); + + // Output file on browser + dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); + $fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset + + // This test if file exists should be useless. We keep it to find bug more easily + if (!file_exists($fullpath_original_file_osencoded)) { + print "ErrorFileDoesNotExists: ".$original_file; + exit; + } + + // Permissions are ok and file found, so we return it + //top_httphead($type); + header('Content-Type: '.$type); + header('Content-Description: File Transfer'); + if ($encoding) { + header('Content-Encoding: '.$encoding); + } + // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } else { + header('Content-Disposition: inline; filename="'.$filename.'"'); + } + header('Content-Length: '.dol_filesize($fullpath_original_file)); + + readfile($fullpath_original_file_osencoded); +} +if (is_object($db)) { + $db->close(); +} +// END PHP diff --git a/htdocs/install/doctemplates/websites/website_template-noimg/website_pages.sql b/htdocs/install/doctemplates/websites/website_template-noimg/website_pages.sql new file mode 100644 index 00000000000..70d81b97f75 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-noimg/website_pages.sql @@ -0,0 +1,9 @@ +-- File generated by Dolibarr 17.0.0-alpha -- 2022-09-26 12:49:03 UTC --; +-- Page ID 80 -> 1__+MAX_llx_website_page__ - Aliases index --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(1__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'index', '', 'index', '', '', '', '', '1', '2022-07-04 15:13:49', '2022-09-26 14:48:51', null, '', 'page', '__N__ __N__ __N__ __N____N__ __N__ __N__ __N__ __N____N____N__ Template__N__ ', '__N__email;__N__ $message = GETPOST(\'message\', \'alpha\');__N__ $cmail = new CMailFile(\'Contact from website\', $to, $from, $message);__N__ if ($cmail->sendfile()) {__N__ ?>__N__ __N__ trans(\"ErrorFailedToSendMail\", $from, $to).\'. \'.$cmail->error;__N__ }__N__}__N__?>__N__
    __N__
    __N____N__
    __N__ __N__ __N__
    __N____N__
    __N__
    __N__
    __N__

    __N__ Brand__N__ Name__N__

    __N__

    __N__ Hello fellows, here is a description of the__N__ brand__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__

    Products

    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    Product 1

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    Product 2

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    Product 3

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    Product 4

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    Product 5

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    Product 6

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N__
    __N__
    __N__
    __N__

    Contact us

    __N__

    __N__ Email: email ?>__N__

    __N__

    __N__ Phone-number: phone ?>__N__

    __N__
    __N__
    __N__

    __N__ Or complete the form__N__

    __N__
    __N__
    __N__ \" />__N__ __N__
    __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N__
    __N__', '', 0); +UPDATE llx_website SET fk_default_home = 1__+MAX_llx_website_page__ WHERE rowid = __WEBSITE_ID__; + +-- For Dolibarr v14+ --; +UPDATE llx_website SET lang = 'en' WHERE rowid = __WEBSITE_ID__; +UPDATE llx_website SET otherlang = '' WHERE rowid = __WEBSITE_ID__; + diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple.jpg b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple.jpg new file mode 100644 index 00000000000..63622f3b1cd Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/LICENSE b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/LICENSE new file mode 100644 index 00000000000..871ef743662 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/LICENSE @@ -0,0 +1,4 @@ +LICENSE +------- + +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/README.md b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/.dolibarr b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/.dolibarr new file mode 100644 index 00000000000..0ef9997b4ab --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/.dolibarr @@ -0,0 +1,2 @@ +# Some properties for Dolibarr web site CMS +param=value diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/.htaccess b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/.htaccess new file mode 100644 index 00000000000..ed27b33461f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/.htaccess @@ -0,0 +1,2 @@ +# Order allow,deny +# Deny from all diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/README.md b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/htmlheader.html b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/htmlheader.html new file mode 100644 index 00000000000..a58ea695524 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/htmlheader.html @@ -0,0 +1,6 @@ + + + diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/index.php b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/index.php new file mode 100644 index 00000000000..b4e33361f1b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/index.php @@ -0,0 +1,4 @@ +ref.'/page148.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/javascript.js.php b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/javascript.js.php new file mode 100644 index 00000000000..f58102cf00b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/javascript.js.php @@ -0,0 +1,13 @@ + +/* JS content (all pages) */ + diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/manifest.json.php b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/manifest.json.php new file mode 100644 index 00000000000..b61531d6c11 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/manifest.json.php @@ -0,0 +1,13 @@ + + + + + +index + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + + + + Template + + + + + +
    +
    +
    +
    +
    +
    +

    Our company

    +

    + Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nostrum excepturi ipsa consequatur accusamus eveniet dignissimos necessitatibus provident dolore cupiditate. +

    +
    +

    + It uses utility classes for typography and spacing to space content out within the + larger container. +

    +

    + + + + + + +

    +
    +
    +
    + landingpage +
    +
    +
    +
    + +
    +
    +
    +
    +
    + ... +
    +

    LoremIpsum

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + +
    +
    +
    +
    +
    +
    +
    + ... +
    +

    LoremIpsum

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + +
    +
    +
    +
    +
    +
    +
    + ... +
    +

    LoremIpsum

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + +
    +
    +
    +
    +
    +
    +
    + ... +
    +

    LoremIpsum

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + +
    +
    +
    +
    +
    +
    +
    + ... +
    +

    LoremIpsum

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + +
    +
    +
    +
    +
    +
    +
    + ... +
    +

    LoremIpsum

    +

    + Some quick example text to build on the + card title and make up the bulk of the + card's content. +

    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    UNLIMITED FOR ALL

    +

    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Minus molestias voluptatibus voluptatem Lorem ipsum dolor, sit amet consectetur adipisicing elit. Veritatis officia voluptatem incidunt tempore esse porro sequi eveniet eum corrupti quo.

    +
    +
    +

    $79/month

    +
    +
    +

    WHAT YOU WILL GET

    +

    Lorem ipsum dolor sit, amet consectetur


    +

    Lorem ipsum dolor sit, amet consectetur


    +

    Lorem ipsum dolor sit, amet consectetur


    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Contact us

    +
    +
    + email ?>
    + getFullAddress() ?>
    +
    +
    + + +
    +
    + +
    + +


    + +
    +
    +
    +
    +
    +
    + +
    + +
    + socialnetworks as $key => $value) { + print ''; + } ?> + +
    + +
    + + + +
    + © 2022 Dolibarr: + Dolicloud.com +
    + +
    +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/robots.txt b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/robots.txt new file mode 100644 index 00000000000..2b844f479d6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/robots.txt @@ -0,0 +1,4 @@ +# Robot file. Generated with Dolibarr +User-agent: * +Allow: /public/ +Disallow: /administrator/ diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/styles.css.php b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/styles.css.php new file mode 100644 index 00000000000..acc30d70bfe --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/styles.css.php @@ -0,0 +1,12536 @@ + +/* CSS content (all pages) +body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; } +.bodywebsite h1 { margin-top: 0; margin-bottom: 0; padding: 10px;} +*/ + +@charset "UTF-8"; + +.bodywebsite { + /*! + * Bootstrap v5.2.1 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + /* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:begin:ignore */ + /* rtl:end:ignore */ + /* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ + /* rtl:begin:remove */ + /* rtl:end:remove */ + /*# sourceMappingURL=bootstrap.css.map */; +} + +.bodywebsite :root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +.bodywebsite *, + .bodywebsite *::before, + .bodywebsite *::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + .bodywebsite :root { + scroll-behavior: smooth; + } +} + +.bodywebsite .text-dark{ + color: black; +} + +.bodywebsite body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +} + +.bodywebsite hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +.bodywebsite h6, .bodywebsite .h6, .bodywebsite h5, .bodywebsite .h5, .bodywebsite h4, .bodywebsite .h4, .bodywebsite h3, .bodywebsite .h3, .bodywebsite h2, .bodywebsite .h2, .bodywebsite h1, .bodywebsite .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +.bodywebsite h1, .bodywebsite .h1 { + font-size: calc(1.375rem + 1.5vw); +} + +@media (min-width: 1200px) { + .bodywebsite h1, .bodywebsite .h1 { + font-size: 2.5rem; + } +} + +.bodywebsite h2, .bodywebsite .h2 { + font-size: calc(1.325rem + 0.9vw); +} + +@media (min-width: 1200px) { + .bodywebsite h2, .bodywebsite .h2 { + font-size: 2rem; + } +} + +.bodywebsite h3, .bodywebsite .h3 { + font-size: calc(1.3rem + 0.6vw); +} + +@media (min-width: 1200px) { + .bodywebsite h3, .bodywebsite .h3 { + font-size: 1.75rem; + } +} + +.bodywebsite h4, .bodywebsite .h4 { + font-size: calc(1.275rem + 0.3vw); +} + +@media (min-width: 1200px) { + .bodywebsite h4, .bodywebsite .h4 { + font-size: 1.5rem; + } +} + +.bodywebsite h5, .bodywebsite .h5 { + font-size: 1.25rem; +} + +.bodywebsite h6, .bodywebsite .h6 { + font-size: 1rem; +} + +.bodywebsite p { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +.bodywebsite address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +.bodywebsite ol, + .bodywebsite ul { + padding-left: 2rem; +} + +.bodywebsite ol, + .bodywebsite ul, + .bodywebsite dl { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite ol ol, + .bodywebsite ul ul, + .bodywebsite ol ul, + .bodywebsite ul ol { + margin-bottom: 0; +} + +.bodywebsite dt { + font-weight: 700; +} + +.bodywebsite dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +.bodywebsite blockquote { + margin: 0 0 1rem; +} + +.bodywebsite b, + .bodywebsite strong { + font-weight: bolder; +} + +.bodywebsite small, .bodywebsite .small { + font-size: 0.875em; +} + +.bodywebsite mark, .bodywebsite .mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +.bodywebsite sub, + .bodywebsite sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +.bodywebsite sub { + bottom: -0.25em; +} + +.bodywebsite sup { + top: -0.5em; +} + +.bodywebsite a { + color: var(--bs-link-color); + text-decoration: underline; +} + +.bodywebsite a:hover { + color: var(--bs-link-hover-color); +} + +.bodywebsite a:not([href]):not([class]), .bodywebsite a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +.bodywebsite pre, + .bodywebsite code, + .bodywebsite kbd, + .bodywebsite samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +.bodywebsite pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} + +.bodywebsite pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.bodywebsite code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} + +.bodywebsite a > code { + color: inherit; +} + +.bodywebsite kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} + +.bodywebsite kbd kbd { + padding: 0; + font-size: 1em; +} + +.bodywebsite figure { + margin: 0 0 1rem; +} + +.bodywebsite img, + .bodywebsite svg { + vertical-align: middle; +} + +.bodywebsite table { + caption-side: bottom; + border-collapse: collapse; +} + +.bodywebsite caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +.bodywebsite th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +.bodywebsite thead, + .bodywebsite tbody, + .bodywebsite tfoot, + .bodywebsite tr, + .bodywebsite td, + .bodywebsite th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +.bodywebsite label { + display: inline-block; +} + +.bodywebsite button { + border-radius: 0; +} + +.bodywebsite button:focus:not(:focus-visible) { + outline: 0; +} + +.bodywebsite input, + .bodywebsite button, + .bodywebsite select, + .bodywebsite optgroup, + .bodywebsite textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.bodywebsite button, + .bodywebsite select { + text-transform: none; +} + +.bodywebsite [role=button] { + cursor: pointer; +} + +.bodywebsite select { + word-wrap: normal; +} + +.bodywebsite select:disabled { + opacity: 1; +} + +.bodywebsite [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +.bodywebsite button, + .bodywebsite [type=button], + .bodywebsite [type=reset], + .bodywebsite [type=submit] { + -webkit-appearance: button; +} + +.bodywebsite button:not(:disabled), + .bodywebsite [type=button]:not(:disabled), + .bodywebsite [type=reset]:not(:disabled), + .bodywebsite [type=submit]:not(:disabled) { + cursor: pointer; +} + +.bodywebsite ::-moz-focus-inner { + padding: 0; + border-style: none; +} + +.bodywebsite textarea { + resize: vertical; +} + +.bodywebsite fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +.bodywebsite legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} + +@media (min-width: 1200px) { + .bodywebsite legend { + font-size: 1.5rem; + } +} + +.bodywebsite legend + * { + clear: left; +} + +.bodywebsite ::-webkit-datetime-edit-fields-wrapper, + .bodywebsite ::-webkit-datetime-edit-text, + .bodywebsite ::-webkit-datetime-edit-minute, + .bodywebsite ::-webkit-datetime-edit-hour-field, + .bodywebsite ::-webkit-datetime-edit-day-field, + .bodywebsite ::-webkit-datetime-edit-month-field, + .bodywebsite ::-webkit-datetime-edit-year-field { + padding: 0; +} + +.bodywebsite ::-webkit-inner-spin-button { + height: auto; +} + +.bodywebsite [type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +.bodywebsite ::-webkit-search-decoration { + -webkit-appearance: none; +} + +.bodywebsite ::-webkit-color-swatch-wrapper { + padding: 0; +} + +.bodywebsite ::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite ::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite output { + display: inline-block; +} + +.bodywebsite iframe { + border: 0; +} + +.bodywebsite summary { + display: list-item; + cursor: pointer; +} + +.bodywebsite progress { + vertical-align: baseline; +} + +.bodywebsite [hidden] { + display: none !important; +} + +.bodywebsite .lead { + font-size: 1.25rem; + font-weight: 300; +} + +.bodywebsite .display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-1 { + font-size: 5rem; + } +} + +.bodywebsite .display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-2 { + font-size: 4.5rem; + } +} + +.bodywebsite .display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-3 { + font-size: 4rem; + } +} + +.bodywebsite .display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-4 { + font-size: 3.5rem; + } +} + +.bodywebsite .display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-5 { + font-size: 3rem; + } +} + +.bodywebsite .display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-6 { + font-size: 2.5rem; + } +} + +.bodywebsite .list-unstyled { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline-item { + display: inline-block; +} + +.bodywebsite .list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.bodywebsite .initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.bodywebsite .blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.bodywebsite .blockquote > :last-child { + margin-bottom: 0; +} + +.bodywebsite .blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .blockquote-footer::before { + content: "— "; +} + +.bodywebsite .img-fluid { + max-width: 100%; + height: auto; +} + +.bodywebsite .img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid var(--bs-border-color); + border-radius: 0.375rem; + max-width: 100%; + height: auto; +} + +.bodywebsite .figure { + display: inline-block; +} + +.bodywebsite .figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.bodywebsite .figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .container, + .bodywebsite .container-fluid, + .bodywebsite .container-xxl, + .bodywebsite .container-xl, + .bodywebsite .container-lg, + .bodywebsite .container-md, + .bodywebsite .container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .container-sm, .bodywebsite .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1140px; + } +} + +@media (min-width: 1400px) { + .bodywebsite .container-xxl, .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1320px; + } +} + +.bodywebsite .row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} + +.bodywebsite .row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.bodywebsite .col { + flex: 1 0 0%; +} + +.bodywebsite .row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.bodywebsite .row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.bodywebsite .row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.bodywebsite .col-auto { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.bodywebsite .col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.bodywebsite .col-3 { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.bodywebsite .col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.bodywebsite .col-6 { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.bodywebsite .col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.bodywebsite .col-9 { + flex: 0 0 auto; + width: 75%; +} + +.bodywebsite .col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.bodywebsite .col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.bodywebsite .col-12 { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .offset-1 { + margin-left: 8.33333333%; +} + +.bodywebsite .offset-2 { + margin-left: 16.66666667%; +} + +.bodywebsite .offset-3 { + margin-left: 25%; +} + +.bodywebsite .offset-4 { + margin-left: 33.33333333%; +} + +.bodywebsite .offset-5 { + margin-left: 41.66666667%; +} + +.bodywebsite .offset-6 { + margin-left: 50%; +} + +.bodywebsite .offset-7 { + margin-left: 58.33333333%; +} + +.bodywebsite .offset-8 { + margin-left: 66.66666667%; +} + +.bodywebsite .offset-9 { + margin-left: 75%; +} + +.bodywebsite .offset-10 { + margin-left: 83.33333333%; +} + +.bodywebsite .offset-11 { + margin-left: 91.66666667%; +} + +.bodywebsite .g-0, + .bodywebsite .gx-0 { + --bs-gutter-x: 0; +} + +.bodywebsite .g-0, + .bodywebsite .gy-0 { + --bs-gutter-y: 0; +} + +.bodywebsite .g-1, + .bodywebsite .gx-1 { + --bs-gutter-x: 0.25rem; +} + +.bodywebsite .g-1, + .bodywebsite .gy-1 { + --bs-gutter-y: 0.25rem; +} + +.bodywebsite .g-2, + .bodywebsite .gx-2 { + --bs-gutter-x: 0.5rem; +} + +.bodywebsite .g-2, + .bodywebsite .gy-2 { + --bs-gutter-y: 0.5rem; +} + +.bodywebsite .g-3, + .bodywebsite .gx-3 { + --bs-gutter-x: 1rem; +} + +.bodywebsite .g-3, + .bodywebsite .gy-3 { + --bs-gutter-y: 1rem; +} + +.bodywebsite .g-4, + .bodywebsite .gx-4 { + --bs-gutter-x: 1.5rem; +} + +.bodywebsite .g-4, + .bodywebsite .gy-4 { + --bs-gutter-y: 1.5rem; +} + +.bodywebsite .g-5, + .bodywebsite .gx-5 { + --bs-gutter-x: 3rem; +} + +.bodywebsite .g-5, + .bodywebsite .gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .bodywebsite .col-sm { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-sm-0 { + margin-left: 0; + } + + .bodywebsite .offset-sm-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-sm-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-sm-3 { + margin-left: 25%; + } + + .bodywebsite .offset-sm-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-sm-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-sm-6 { + margin-left: 50%; + } + + .bodywebsite .offset-sm-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-sm-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-sm-9 { + margin-left: 75%; + } + + .bodywebsite .offset-sm-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-sm-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gx-sm-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gy-sm-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 768px) { + .bodywebsite .col-md { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-md-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-md-0 { + margin-left: 0; + } + + .bodywebsite .offset-md-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-md-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-md-3 { + margin-left: 25%; + } + + .bodywebsite .offset-md-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-md-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-md-6 { + margin-left: 50%; + } + + .bodywebsite .offset-md-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-md-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-md-9 { + margin-left: 75%; + } + + .bodywebsite .offset-md-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-md-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-md-0, + .bodywebsite .gx-md-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-md-0, + .bodywebsite .gy-md-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-md-1, + .bodywebsite .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-md-1, + .bodywebsite .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gy-md-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 992px) { + .bodywebsite .col-lg { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-lg-0 { + margin-left: 0; + } + + .bodywebsite .offset-lg-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-lg-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-lg-3 { + margin-left: 25%; + } + + .bodywebsite .offset-lg-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-lg-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-lg-6 { + margin-left: 50%; + } + + .bodywebsite .offset-lg-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-lg-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-lg-9 { + margin-left: 75%; + } + + .bodywebsite .offset-lg-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-lg-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gx-lg-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gy-lg-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1200px) { + .bodywebsite .col-xl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gx-xl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gy-xl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1400px) { + .bodywebsite .col-xxl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xxl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xxl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xxl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xxl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} + +.bodywebsite .table { + --bs-table-color: var(--bs-body-color); + --bs-table-bg: transparent; + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-body-color); + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: var(--bs-body-color); + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: var(--bs-body-color); + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: var(--bs-table-color); + vertical-align: top; + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} + +.bodywebsite .table > tbody { + vertical-align: inherit; +} + +.bodywebsite .table > thead { + vertical-align: bottom; +} + +.bodywebsite .table-group-divider { + border-top: 2px solid currentcolor; +} + +.bodywebsite .caption-top { + caption-side: top; +} + +.bodywebsite .table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.bodywebsite .table-bordered > :not(caption) > * { + border-width: 1px 0; +} + +.bodywebsite .table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.bodywebsite .table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.bodywebsite .table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.bodywebsite .table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.bodywebsite .table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.bodywebsite .table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #bacbe6; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #cbccce; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #bcd0c7; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #badce3; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #e6dbb9; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #dfc2c4; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #dfe0e1; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #373b3e; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .bodywebsite .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +.bodywebsite .form-label { + margin-bottom: 0.5rem; +} + +.bodywebsite .col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.bodywebsite .col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.bodywebsite .col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.bodywebsite .form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control { + transition: none; + } +} + +.bodywebsite .form-control[type=file] { + overflow: hidden; +} + +.bodywebsite .form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-control::-webkit-date-and-time-value { + height: 1.5em; +} + +.bodywebsite .form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control:disabled { + background-color: #e9ecef; + opacity: 1; +} + +.bodywebsite .form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.bodywebsite .form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } + + .bodywebsite .form-control::file-selector-button { + transition: none; + } +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.bodywebsite .form-control-plaintext:focus { + outline: 0; +} + +.bodywebsite .form-control-plaintext.form-control-sm, .bodywebsite .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.bodywebsite .form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite .form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); +} + +.bodywebsite textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem; +} + +.bodywebsite .form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color::-webkit-color-swatch { + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite .form-control-color.form-control-lg { + height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-select { + transition: none; + } +} + +.bodywebsite .form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-select[multiple], .bodywebsite .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} + +.bodywebsite .form-select:disabled { + background-color: #e9ecef; +} + +.bodywebsite .form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.bodywebsite .form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} + +.bodywebsite .form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.bodywebsite .form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} + +.bodywebsite .form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.bodywebsite .form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} + +.bodywebsite .form-check-input[type=checkbox] { + border-radius: 0.25em; +} + +.bodywebsite .form-check-input[type=radio] { + border-radius: 50%; +} + +.bodywebsite .form-check-input:active { + filter: brightness(90%); +} + +.bodywebsite .form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} + +.bodywebsite .form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} + +.bodywebsite .form-check-input[disabled] ~ .form-check-label, .bodywebsite .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.bodywebsite .form-switch { + padding-left: 2.5em; +} + +.bodywebsite .form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-switch .form-check-input { + transition: none; + } +} + +.bodywebsite .form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} + +.bodywebsite .form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.bodywebsite .form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.bodywebsite .btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.bodywebsite .btn-check[disabled] + .btn, .bodywebsite .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +.bodywebsite .form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.bodywebsite .form-range:focus { + outline: 0; +} + +.bodywebsite .form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range::-moz-focus-outer { + border: 0; +} + +.bodywebsite .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range:disabled { + pointer-events: none; +} + +.bodywebsite .form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-floating { + position: relative; +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext, + .bodywebsite .form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} + +.bodywebsite .form-floating > label { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-floating > label { + transition: none; + } +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} + +.bodywebsite .form-floating > .form-control::-moz-placeholder, .bodywebsite .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control::placeholder, + .bodywebsite .form-floating > .form-control-plaintext::placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown), .bodywebsite .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:focus, .bodywebsite .form-floating > .form-control:not(:placeholder-shown), + .bodywebsite .form-floating > .form-control-plaintext:focus, + .bodywebsite .form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill, + .bodywebsite .form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:focus ~ label, + .bodywebsite .form-floating > .form-control:not(:placeholder-shown) ~ label, + .bodywebsite .form-floating > .form-control-plaintext ~ label, + .bodywebsite .form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} + +.bodywebsite .input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.bodywebsite .input-group > .form-control, + .bodywebsite .input-group > .form-select, + .bodywebsite .input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} + +.bodywebsite .input-group > .form-control:focus, + .bodywebsite .input-group > .form-select:focus, + .bodywebsite .input-group > .form-floating:focus-within { + z-index: 5; +} + +.bodywebsite .input-group .btn { + position: relative; + z-index: 2; +} + +.bodywebsite .input-group .btn:focus { + z-index: 5; +} + +.bodywebsite .input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.375rem; +} + +.bodywebsite .input-group-lg > .form-control, + .bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-lg > .input-group-text, + .bodywebsite .input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .input-group-sm > .form-control, + .bodywebsite .input-group-sm > .form-select, + .bodywebsite .input-group-sm > .input-group-text, + .bodywebsite .input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-sm > .form-select { + padding-right: 3rem; +} + +.bodywebsite .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .input-group > .form-floating:not(:first-child) > .form-control, + .bodywebsite .input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.bodywebsite .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :valid ~ .valid-feedback, + .bodywebsite .was-validated :valid ~ .valid-tooltip, + .bodywebsite .is-valid ~ .valid-feedback, + .bodywebsite .is-valid ~ .valid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:valid, .bodywebsite .form-control.is-valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:valid:focus, .bodywebsite .form-control.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:valid, .bodywebsite textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:valid, .bodywebsite .form-select.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-select:valid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:valid:not([multiple])[size="1"], .bodywebsite .form-select.is-valid:not([multiple]):not([size]), .bodywebsite .form-select.is-valid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:valid:focus, .bodywebsite .form-select.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-control-color:valid, .bodywebsite .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:valid, .bodywebsite .form-check-input.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:checked, .bodywebsite .form-check-input.is-valid:checked { + background-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:focus, .bodywebsite .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-check-input:valid ~ .form-check-label, .bodywebsite .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.bodywebsite .form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):valid, .bodywebsite .input-group > .form-control:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):valid, + .bodywebsite .input-group > .form-select:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):valid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.bodywebsite .invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.bodywebsite .invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :invalid ~ .invalid-feedback, + .bodywebsite .was-validated :invalid ~ .invalid-tooltip, + .bodywebsite .is-invalid ~ .invalid-feedback, + .bodywebsite .is-invalid ~ .invalid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:invalid, .bodywebsite .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:invalid:focus, .bodywebsite .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:invalid, .bodywebsite textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:invalid, .bodywebsite .form-select.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-select:invalid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:invalid:not([multiple])[size="1"], .bodywebsite .form-select.is-invalid:not([multiple]):not([size]), .bodywebsite .form-select.is-invalid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:invalid:focus, .bodywebsite .form-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-control-color:invalid, .bodywebsite .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:invalid, .bodywebsite .form-check-input.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:checked, .bodywebsite .form-check-input.is-invalid:checked { + background-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:focus, .bodywebsite .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-check-input:invalid ~ .form-check-label, .bodywebsite .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.bodywebsite .form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):invalid, .bodywebsite .input-group > .form-control:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):invalid, + .bodywebsite .input-group > .form-select:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):invalid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.bodywebsite .btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: #212529; + --bs-btn-bg: transparent; + --bs-btn-border-width: 1px; + --bs-btn-border-color: transparent; + --bs-btn-border-radius: 0.375rem; + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .btn { + transition: none; + } +} + +.bodywebsite :not(.btn-check) + .btn:hover, .bodywebsite .btn:first-child:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} + +.bodywebsite .btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:checked + .btn, .bodywebsite :not(.btn-check) + .btn:active, .bodywebsite .btn:first-child:active, .bodywebsite .btn.active, .bodywebsite .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} + +.bodywebsite .btn-check:checked + .btn:focus-visible, .bodywebsite :not(.btn-check) + .btn:active:focus-visible, .bodywebsite .btn:first-child:active:focus-visible, .bodywebsite .btn.active:focus-visible, .bodywebsite .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn:disabled, .bodywebsite .btn.disabled, .bodywebsite fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.bodywebsite .btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; +} + +.bodywebsite .btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; +} + +.bodywebsite .btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.bodywebsite .btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.bodywebsite .btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.bodywebsite .btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.bodywebsite .btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.bodywebsite .btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.bodywebsite .btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.bodywebsite .btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: none; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; +} + +.bodywebsite .btn-link:focus-visible { + color: var(--bs-btn-color); +} + +.bodywebsite .btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.bodywebsite .btn-lg, .bodywebsite .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: 0.5rem; +} + +.bodywebsite .btn-sm, .bodywebsite .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: 0.25rem; +} + +.bodywebsite .fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .fade { + transition: none; + } +} + +.bodywebsite .fade:not(.show) { + opacity: 0; +} + +.bodywebsite .collapse:not(.show) { + display: none; +} + +.bodywebsite .collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing { + transition: none; + } +} + +.bodywebsite .collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing.collapse-horizontal { + transition: none; + } +} + +.bodywebsite .dropup, + .bodywebsite .dropend, + .bodywebsite .dropdown, + .bodywebsite .dropstart, + .bodywebsite .dropup-center, + .bodywebsite .dropdown-center { + position: relative; +} + +.bodywebsite .dropdown-toggle { + white-space: nowrap; +} + +.bodywebsite .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: #212529; + --bs-dropdown-bg: #fff; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: 0.375rem; + --bs-dropdown-border-width: 1px; + --bs-dropdown-inner-border-radius: calc(0.375rem - 1px); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-dropdown-link-color: #212529; + --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-bg: #e9ecef; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); +} + +.bodywebsite .dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropdown-menu-start { + --bs-position: start; +} + +.bodywebsite .dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.bodywebsite .dropdown-menu-end { + --bs-position: end; +} + +.bodywebsite .dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .dropdown-menu-sm-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-sm-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .bodywebsite .dropdown-menu-md-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-md-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .bodywebsite .dropdown-menu-lg-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-lg-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .bodywebsite .dropdown-menu-xl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1400px) { + .bodywebsite .dropdown-menu-xxl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xxl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +.bodywebsite .dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.bodywebsite .dropend .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.bodywebsite .dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: none; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.bodywebsite .dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.bodywebsite .dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.bodywebsite .dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.bodywebsite .dropdown-item:hover, .bodywebsite .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} + +.bodywebsite .dropdown-item.active, .bodywebsite .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} + +.bodywebsite .dropdown-item.disabled, .bodywebsite .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.bodywebsite .dropdown-menu.show { + display: block; +} + +.bodywebsite .dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.bodywebsite .dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.bodywebsite .dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.bodywebsite .btn-group, + .bodywebsite .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.bodywebsite .btn-group > .btn, + .bodywebsite .btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.bodywebsite .btn-group > .btn-check:checked + .btn, + .bodywebsite .btn-group > .btn-check:focus + .btn, + .bodywebsite .btn-group > .btn:hover, + .bodywebsite .btn-group > .btn:focus, + .bodywebsite .btn-group > .btn:active, + .bodywebsite .btn-group > .btn.active, + .bodywebsite .btn-group-vertical > .btn-check:checked + .btn, + .bodywebsite .btn-group-vertical > .btn-check:focus + .btn, + .bodywebsite .btn-group-vertical > .btn:hover, + .bodywebsite .btn-group-vertical > .btn:focus, + .bodywebsite .btn-group-vertical > .btn:active, + .bodywebsite .btn-group-vertical > .btn.active { + z-index: 1; +} + +.bodywebsite .btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.bodywebsite .btn-toolbar .input-group { + width: auto; +} + +.bodywebsite .btn-group { + border-radius: 0.375rem; +} + +.bodywebsite .btn-group > :not(.btn-check:first-child) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.bodywebsite .btn-group > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group > .btn.dropdown-toggle-split:first-child, + .bodywebsite .btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .btn-group > .btn:nth-child(n+3), + .bodywebsite .btn-group > :not(.btn-check) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.bodywebsite .dropdown-toggle-split::after, .bodywebsite .dropup .dropdown-toggle-split::after, .bodywebsite .dropend .dropdown-toggle-split::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.bodywebsite .btn-sm + .dropdown-toggle-split, .bodywebsite .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.bodywebsite .btn-lg + .dropdown-toggle-split, .bodywebsite .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.bodywebsite .btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.bodywebsite .btn-group-vertical > .btn, + .bodywebsite .btn-group-vertical > .btn-group { + width: 100%; +} + +.bodywebsite .btn-group-vertical > .btn:not(:first-child), + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.bodywebsite .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .btn-group-vertical > .btn ~ .btn, + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .nav-link { + transition: none; + } +} + +.bodywebsite .nav-link:hover, .bodywebsite .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} + +.bodywebsite .nav-link.disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.bodywebsite .nav-tabs { + --bs-nav-tabs-border-width: 1px; + --bs-nav-tabs-border-color: #dee2e6; + --bs-nav-tabs-border-radius: 0.375rem; + --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6; + --bs-nav-tabs-link-active-color: #495057; + --bs-nav-tabs-link-active-bg: #fff; + --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff; + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} + +.bodywebsite .nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + background: none; + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} + +.bodywebsite .nav-tabs .nav-link:hover, .bodywebsite .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} + +.bodywebsite .nav-tabs .nav-link.disabled, .bodywebsite .nav-tabs .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-tabs .nav-link.active, + .bodywebsite .nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} + +.bodywebsite .nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav-pills { + --bs-nav-pills-border-radius: 0.375rem; + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} + +.bodywebsite .nav-pills .nav-link { + background: none; + border: 0; + border-radius: var(--bs-nav-pills-border-radius); +} + +.bodywebsite .nav-pills .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-pills .nav-link.active, + .bodywebsite .nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.bodywebsite .nav-fill > .nav-link, + .bodywebsite .nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.bodywebsite .nav-justified > .nav-link, + .bodywebsite .nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.bodywebsite .nav-fill .nav-item .nav-link, + .bodywebsite .nav-justified .nav-item .nav-link { + width: 100%; +} + +.bodywebsite .tab-content > .tab-pane { + display: none; +} + +.bodywebsite .tab-content > .active { + display: block; +} + +.bodywebsite .navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(0, 0, 0, 0.55); + --bs-navbar-hover-color: rgba(0, 0, 0, 0.7); + --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3); + --bs-navbar-active-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --bs-navbar-toggler-border-radius: 0.375rem; + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} + +.bodywebsite .navbar > .container, + .bodywebsite .navbar > .container-fluid, + .bodywebsite .navbar > .container-sm, + .bodywebsite .navbar > .container-md, + .bodywebsite .navbar > .container-lg, + .bodywebsite .navbar > .container-xl, + .bodywebsite .navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} + +.bodywebsite .navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; +} + +.bodywebsite .navbar-brand:hover, .bodywebsite .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.bodywebsite .navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .navbar-nav .show > .nav-link, + .bodywebsite .navbar-nav .nav-link.active { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-nav .dropdown-menu { + position: static; +} + +.bodywebsite .navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} + +.bodywebsite .navbar-text a, + .bodywebsite .navbar-text a:hover, + .bodywebsite .navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.bodywebsite .navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .navbar-toggler { + transition: none; + } +} + +.bodywebsite .navbar-toggler:hover { + text-decoration: none; +} + +.bodywebsite .navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.bodywebsite .navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.bodywebsite .navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .bodywebsite .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-sm .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-md .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-md .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-lg .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xxl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +.bodywebsite .navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} + +.bodywebsite .navbar-expand .navbar-nav { + flex-direction: row; +} + +.bodywebsite .navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.bodywebsite .navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} + +.bodywebsite .navbar-expand .navbar-nav-scroll { + overflow: visible; +} + +.bodywebsite .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.bodywebsite .navbar-expand .navbar-toggler { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-header { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.bodywebsite .navbar-dark { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.bodywebsite .card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-border-width: 1px; + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: 0.375rem; + --bs-card-inner-border-radius: calc(0.375rem - 1px); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(0, 0, 0, 0.03); + --bs-card-bg: #fff; + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); +} + +.bodywebsite .card > hr { + margin-right: 0; + margin-left: 0; +} + +.bodywebsite .card > .list-group { + border-top: inherit; + border-bottom: inherit; +} + +.bodywebsite .card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .card-header + .list-group, + .bodywebsite .card > .list-group + .card-footer { + border-top: 0; +} + +.bodywebsite .card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.bodywebsite .card-title { + margin-bottom: var(--bs-card-title-spacer-y); +} + +.bodywebsite .card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; +} + +.bodywebsite .card-text:last-child { + margin-bottom: 0; +} + +.bodywebsite .card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.bodywebsite .card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; +} + +.bodywebsite .card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} + +.bodywebsite .card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.bodywebsite .card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.bodywebsite .card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top, + .bodywebsite .card-img-bottom { + width: 100%; +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} + +@media (min-width: 576px) { + .bodywebsite .card-group { + display: flex; + flex-flow: row wrap; + } + + .bodywebsite .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + + .bodywebsite .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-top, + .bodywebsite .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-top, + .bodywebsite .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.bodywebsite .accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: #fff; + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: 1px; + --bs-accordion-border-radius: 0.375rem; + --bs-accordion-inner-border-radius: calc(0.375rem - 1px); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: #0c63e4; + --bs-accordion-active-bg: #e7f1ff; +} + +.bodywebsite .accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button { + transition: none; + } +} + +.bodywebsite .accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} + +.bodywebsite .accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button::after { + transition: none; + } +} + +.bodywebsite .accordion-button:hover { + z-index: 2; +} + +.bodywebsite .accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.bodywebsite .accordion-header { + margin-bottom: 0; +} + +.bodywebsite .accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:not(:first-of-type) { + border-top: 0; +} + +.bodywebsite .accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.bodywebsite .accordion-flush .accordion-collapse { + border-width: 0; +} + +.bodywebsite .accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.bodywebsite .accordion-flush .accordion-item:first-child { + border-top: 0; +} + +.bodywebsite .accordion-flush .accordion-item:last-child { + border-bottom: 0; +} + +.bodywebsite .accordion-flush .accordion-item .accordion-button, .bodywebsite .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +.bodywebsite .breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-divider-color: #6c757d; + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/"); +} + +.bodywebsite .breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.bodywebsite .pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: #fff; + --bs-pagination-border-width: 1px; + --bs-pagination-border-color: #dee2e6; + --bs-pagination-border-radius: 0.375rem; + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: #e9ecef; + --bs-pagination-hover-border-color: #dee2e6; + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: #e9ecef; + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: #6c757d; + --bs-pagination-disabled-bg: #fff; + --bs-pagination-disabled-border-color: #dee2e6; + display: flex; + padding-left: 0; + list-style: none; +} + +.bodywebsite .page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .page-link { + transition: none; + } +} + +.bodywebsite .page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} + +.bodywebsite .page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} + +.bodywebsite .page-link.active, .bodywebsite .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} + +.bodywebsite .page-link.disabled, .bodywebsite .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.bodywebsite .page-item:not(:first-child) .page-link { + margin-left: -1px; +} + +.bodywebsite .page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: 0.5rem; +} + +.bodywebsite .pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: 0.25rem; +} + +.bodywebsite .badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: 0.375rem; + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); +} + +.bodywebsite .badge:empty { + display: none; +} + +.bodywebsite .btn .badge { + position: relative; + top: -1px; +} + +.bodywebsite .alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: 1px solid var(--bs-alert-border-color); + --bs-alert-border-radius: 0.375rem; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.bodywebsite .alert-heading { + color: inherit; +} + +.bodywebsite .alert-link { + font-weight: 700; +} + +.bodywebsite .alert-dismissible { + padding-right: 3rem; +} + +.bodywebsite .alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.bodywebsite .alert-primary { + --bs-alert-color: #084298; + --bs-alert-bg: #cfe2ff; + --bs-alert-border-color: #b6d4fe; +} + +.bodywebsite .alert-primary .alert-link { + color: #06357a; +} + +.bodywebsite .alert-secondary { + --bs-alert-color: #41464b; + --bs-alert-bg: #e2e3e5; + --bs-alert-border-color: #d3d6d8; +} + +.bodywebsite .alert-secondary .alert-link { + color: #34383c; +} + +.bodywebsite .alert-success { + --bs-alert-color: #0f5132; + --bs-alert-bg: #d1e7dd; + --bs-alert-border-color: #badbcc; +} + +.bodywebsite .alert-success .alert-link { + color: #0c4128; +} + +.bodywebsite .alert-info { + --bs-alert-color: #055160; + --bs-alert-bg: #cff4fc; + --bs-alert-border-color: #b6effb; +} + +.bodywebsite .alert-info .alert-link { + color: #04414d; +} + +.bodywebsite .alert-warning { + --bs-alert-color: #664d03; + --bs-alert-bg: #fff3cd; + --bs-alert-border-color: #ffecb5; +} + +.bodywebsite .alert-warning .alert-link { + color: #523e02; +} + +.bodywebsite .alert-danger { + --bs-alert-color: #842029; + --bs-alert-bg: #f8d7da; + --bs-alert-border-color: #f5c2c7; +} + +.bodywebsite .alert-danger .alert-link { + color: #6a1a21; +} + +.bodywebsite .alert-light { + --bs-alert-color: #636464; + --bs-alert-bg: #fefefe; + --bs-alert-border-color: #fdfdfe; +} + +.bodywebsite .alert-light .alert-link { + color: #4f5050; +} + +.bodywebsite .alert-dark { + --bs-alert-color: #141619; + --bs-alert-bg: #d3d3d4; + --bs-alert-border-color: #bcbebf; +} + +.bodywebsite .alert-dark .alert-link { + color: #101214; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +.bodywebsite .progress { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: #e9ecef; + --bs-progress-border-radius: 0.375rem; + --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); +} + +.bodywebsite .progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar { + transition: none; + } +} + +.bodywebsite .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.bodywebsite .progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.bodywebsite .list-group { + --bs-list-group-color: #212529; + --bs-list-group-bg: #fff; + --bs-list-group-border-color: rgba(0, 0, 0, 0.125); + --bs-list-group-border-width: 1px; + --bs-list-group-border-radius: 0.375rem; + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: #495057; + --bs-list-group-action-hover-color: #495057; + --bs-list-group-action-hover-bg: #f8f9fa; + --bs-list-group-action-active-color: #212529; + --bs-list-group-action-active-bg: #e9ecef; + --bs-list-group-disabled-color: #6c757d; + --bs-list-group-disabled-bg: #fff; + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); +} + +.bodywebsite .list-group-numbered { + list-style-type: none; + counter-reset: section; +} + +.bodywebsite .list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.bodywebsite .list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} + +.bodywebsite .list-group-item-action:hover, .bodywebsite .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} + +.bodywebsite .list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.bodywebsite .list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} + +.bodywebsite .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.bodywebsite .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} + +.bodywebsite .list-group-item.disabled, .bodywebsite .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} + +.bodywebsite .list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} + +.bodywebsite .list-group-item + .list-group-item { + border-top-width: 0; +} + +.bodywebsite .list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-horizontal { + flex-direction: row; +} + +.bodywebsite .list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item.active { + margin-top: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .bodywebsite .list-group-horizontal-sm { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 768px) { + .bodywebsite .list-group-horizontal-md { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 992px) { + .bodywebsite .list-group-horizontal-lg { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1200px) { + .bodywebsite .list-group-horizontal-xl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1400px) { + .bodywebsite .list-group-horizontal-xxl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +.bodywebsite .list-group-flush { + border-radius: 0; +} + +.bodywebsite .list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.bodywebsite .list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} + +.bodywebsite .list-group-item-primary.list-group-item-action:hover, .bodywebsite .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} + +.bodywebsite .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} + +.bodywebsite .list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action:hover, .bodywebsite .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.bodywebsite .list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} + +.bodywebsite .list-group-item-success.list-group-item-action:hover, .bodywebsite .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} + +.bodywebsite .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.bodywebsite .list-group-item-info { + color: #055160; + background-color: #cff4fc; +} + +.bodywebsite .list-group-item-info.list-group-item-action:hover, .bodywebsite .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} + +.bodywebsite .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.bodywebsite .list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} + +.bodywebsite .list-group-item-warning.list-group-item-action:hover, .bodywebsite .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} + +.bodywebsite .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.bodywebsite .list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} + +.bodywebsite .list-group-item-danger.list-group-item-action:hover, .bodywebsite .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} + +.bodywebsite .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.bodywebsite .list-group-item-light { + color: #636464; + background-color: #fefefe; +} + +.bodywebsite .list-group-item-light.list-group-item-action:hover, .bodywebsite .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} + +.bodywebsite .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.bodywebsite .list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} + +.bodywebsite .list-group-item-dark.list-group-item-action:hover, .bodywebsite .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} + +.bodywebsite .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.bodywebsite .btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: 0.5; +} + +.bodywebsite .btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} + +.bodywebsite .btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} + +.bodywebsite .btn-close:disabled, .bodywebsite .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.bodywebsite .btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.bodywebsite .toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-bg: rgba(255, 255, 255, 0.85); + --bs-toast-border-width: 1px; + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: 0.375rem; + --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-toast-header-color: #6c757d; + --bs-toast-header-bg: rgba(255, 255, 255, 0.85); + --bs-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} + +.bodywebsite .toast.showing { + opacity: 0; +} + +.bodywebsite .toast:not(.show) { + display: none; +} + +.bodywebsite .toast-container { + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} + +.bodywebsite .toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.bodywebsite .toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} + +.bodywebsite .toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.bodywebsite .toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.bodywebsite .modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-bg: #fff; + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: 1px; + --bs-modal-border-radius: 0.5rem; + --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-modal-inner-border-radius: calc(0.5rem - 1px); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: 1px; + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: 1px; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.bodywebsite .modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} + +.bodywebsite .modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .modal.fade .modal-dialog { + transition: none; + } +} + +.bodywebsite .modal.show .modal-dialog { + transform: none; +} + +.bodywebsite .modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.bodywebsite .modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} + +.bodywebsite .modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.bodywebsite .modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.bodywebsite .modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} + +.bodywebsite .modal-backdrop.fade { + opacity: 0; +} + +.bodywebsite .modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.bodywebsite .modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.bodywebsite .modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.bodywebsite .modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.bodywebsite .modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .bodywebsite .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + + .bodywebsite .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + + .bodywebsite .modal-sm { + --bs-modal-width: 300px; + } +} + +@media (min-width: 992px) { + .bodywebsite .modal-lg, + .bodywebsite .modal-xl { + --bs-modal-width: 800px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .modal-xl { + --bs-modal-width: 1140px; + } +} + +.bodywebsite .modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} + +.bodywebsite .modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-header, + .bodywebsite .modal-fullscreen .modal-footer { + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .bodywebsite .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-header, + .bodywebsite .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-header, + .bodywebsite .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-header, + .bodywebsite .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-header, + .bodywebsite .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-header, + .bodywebsite .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} + +.bodywebsite .tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: #fff; + --bs-tooltip-bg: #000; + --bs-tooltip-border-radius: 0.375rem; + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + padding: var(--bs-tooltip-arrow-height); + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} + +.bodywebsite .tooltip.show { + opacity: var(--bs-tooltip-opacity); +} + +.bodywebsite .tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} + +.bodywebsite .tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +.bodywebsite .tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.bodywebsite .popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: #fff; + --bs-popover-border-width: 1px; + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: 0.5rem; + --bs-popover-inner-border-radius: calc(0.5rem - 1px); + --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-bg: #f0f0f0; + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: #212529; + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} + +.bodywebsite .popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} + +.bodywebsite .popover .popover-arrow::before, .bodywebsite .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-end > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom .popover-header::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +.bodywebsite .bs-popover-start > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +.bodywebsite .popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} + +.bodywebsite .popover-header:empty { + display: none; +} + +.bodywebsite .popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.bodywebsite .carousel { + position: relative; +} + +.bodywebsite .carousel.pointer-event { + touch-action: pan-y; +} + +.bodywebsite .carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.bodywebsite .carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-item { + transition: none; + } +} + +.bodywebsite .carousel-item.active, + .bodywebsite .carousel-item-next, + .bodywebsite .carousel-item-prev { + display: block; +} + +.bodywebsite .carousel-item-next:not(.carousel-item-start), + .bodywebsite .active.carousel-item-end { + transform: translateX(100%); +} + +.bodywebsite .carousel-item-prev:not(.carousel-item-end), + .bodywebsite .active.carousel-item-start { + transform: translateX(-100%); +} + +.bodywebsite .carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.bodywebsite .carousel-fade .carousel-item.active, + .bodywebsite .carousel-fade .carousel-item-next.carousel-item-start, + .bodywebsite .carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} + +.bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + transition: none; + } +} + +.bodywebsite .carousel-control-prev:hover, .bodywebsite .carousel-control-prev:focus, + .bodywebsite .carousel-control-next:hover, + .bodywebsite .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.bodywebsite .carousel-control-prev { + left: 0; +} + +.bodywebsite .carousel-control-next { + right: 0; +} + +.bodywebsite .carousel-control-prev-icon, + .bodywebsite .carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.bodywebsite .carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} + +.bodywebsite .carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-indicators [data-bs-target] { + transition: none; + } +} + +.bodywebsite .carousel-indicators .active { + opacity: 1; +} + +.bodywebsite .carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.bodywebsite .carousel-dark .carousel-control-prev-icon, + .bodywebsite .carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} + +.bodywebsite .carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} + +.bodywebsite .carousel-dark .carousel-caption { + color: #000; +} + +.bodywebsite .spinner-grow, + .bodywebsite .spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + -webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +.bodywebsite .spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.bodywebsite .spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +.bodywebsite .spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.bodywebsite .spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .spinner-border, + .bodywebsite .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} + +.bodywebsite .offcanvas, .bodywebsite .offcanvas-xxl, .bodywebsite .offcanvas-xl, .bodywebsite .offcanvas-lg, .bodywebsite .offcanvas-md, .bodywebsite .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-bg: #fff; + --bs-offcanvas-border-width: 1px; + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-sm { + transition: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.hiding, .bodywebsite .offcanvas-sm.show { + visibility: visible; + } +} + +@media (min-width: 576px) { + .bodywebsite .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-sm .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-md { + transition: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.hiding, .bodywebsite .offcanvas-md.show { + visibility: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-md .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-lg { + transition: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.hiding, .bodywebsite .offcanvas-lg.show { + visibility: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-lg .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xl { + transition: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.hiding, .bodywebsite .offcanvas-xl.show { + visibility: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xxl { + transition: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.hiding, .bodywebsite .offcanvas-xxl.show { + visibility: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xxl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.bodywebsite .offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas { + transition: none; + } +} + +.bodywebsite .offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} + +.bodywebsite .offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} + +.bodywebsite .offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} + +.bodywebsite .offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.show:not(.hiding) { + transform: none; +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.hiding, .bodywebsite .offcanvas.show { + visibility: visible; +} + +.bodywebsite .offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.bodywebsite .offcanvas-backdrop.fade { + opacity: 0; +} + +.bodywebsite .offcanvas-backdrop.show { + opacity: 0.5; +} + +.bodywebsite .offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} + +.bodywebsite .offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.bodywebsite .offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.bodywebsite .offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.bodywebsite .placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} + +.bodywebsite .placeholder.btn::before { + display: inline-block; + content: ""; +} + +.bodywebsite .placeholder-xs { + min-height: 0.6em; +} + +.bodywebsite .placeholder-sm { + min-height: 0.8em; +} + +.bodywebsite .placeholder-lg { + min-height: 1.2em; +} + +.bodywebsite .placeholder-glow .placeholder { + -webkit-animation: placeholder-glow 2s ease-in-out infinite; + animation: placeholder-glow 2s ease-in-out infinite; +} + +@-webkit-keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +.bodywebsite .placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-animation: placeholder-wave 2s linear infinite; + animation: placeholder-wave 2s linear infinite; +} + +@-webkit-keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +.bodywebsite .clearfix::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .text-bg-primary { + color: #fff !important; + background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-secondary { + color: #fff !important; + background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-success { + color: #fff !important; + background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-info { + color: #000 !important; + background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-warning { + color: #000 !important; + background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-danger { + color: #fff !important; + background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-light { + color: #000 !important; + background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-dark { + color: #fff !important; + background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .link-primary { + color: #0d6efd !important; +} + +.bodywebsite .link-primary:hover, .bodywebsite .link-primary:focus { + color: #0a58ca !important; +} + +.bodywebsite .link-secondary { + color: #6c757d !important; +} + +.bodywebsite .link-secondary:hover, .bodywebsite .link-secondary:focus { + color: #565e64 !important; +} + +.bodywebsite .link-success { + color: #198754 !important; +} + +.bodywebsite .link-success:hover, .bodywebsite .link-success:focus { + color: #146c43 !important; +} + +.bodywebsite .link-info { + color: #0dcaf0 !important; +} + +.bodywebsite .link-info:hover, .bodywebsite .link-info:focus { + color: #3dd5f3 !important; +} + +.bodywebsite .link-warning { + color: #ffc107 !important; +} + +.bodywebsite .link-warning:hover, .bodywebsite .link-warning:focus { + color: #ffcd39 !important; +} + +.bodywebsite .link-danger { + color: #dc3545 !important; +} + +.bodywebsite .link-danger:hover, .bodywebsite .link-danger:focus { + color: #b02a37 !important; +} + +.bodywebsite .link-light { + color: #f8f9fa !important; +} + +.bodywebsite .link-light:hover, .bodywebsite .link-light:focus { + color: #f9fafb !important; +} + +.bodywebsite .link-dark { + color: #212529 !important; +} + +.bodywebsite .link-dark:hover, .bodywebsite .link-dark:focus { + color: #1a1e21 !important; +} + +.bodywebsite .ratio { + position: relative; + width: 100%; +} + +.bodywebsite .ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} + +.bodywebsite .ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.bodywebsite .ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.bodywebsite .ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.bodywebsite .ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.bodywebsite .ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.bodywebsite .fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.bodywebsite .sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .bodywebsite .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 768px) { + .bodywebsite .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 992px) { + .bodywebsite .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1200px) { + .bodywebsite .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1400px) { + .bodywebsite .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +.bodywebsite .hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.bodywebsite .vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.bodywebsite .visually-hidden, + .bodywebsite .visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.bodywebsite .stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.bodywebsite .text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.bodywebsite .vr { + display: inline-block; + align-self: stretch; + width: 1px; + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.bodywebsite .align-baseline { + vertical-align: baseline !important; +} + +.bodywebsite .align-top { + vertical-align: top !important; +} + +.bodywebsite .align-middle { + vertical-align: middle !important; +} + +.bodywebsite .align-bottom { + vertical-align: bottom !important; +} + +.bodywebsite .align-text-bottom { + vertical-align: text-bottom !important; +} + +.bodywebsite .align-text-top { + vertical-align: text-top !important; +} + +.bodywebsite .float-start { + float: left !important; +} + +.bodywebsite .float-end { + float: right !important; +} + +.bodywebsite .float-none { + float: none !important; +} + +.bodywebsite .opacity-0 { + opacity: 0 !important; +} + +.bodywebsite .opacity-25 { + opacity: 0.25 !important; +} + +.bodywebsite .opacity-50 { + opacity: 0.5 !important; +} + +.bodywebsite .opacity-75 { + opacity: 0.75 !important; +} + +.bodywebsite .opacity-100 { + opacity: 1 !important; +} + +.bodywebsite .overflow-auto { + overflow: auto !important; +} + +.bodywebsite .overflow-hidden { + overflow: hidden !important; +} + +.bodywebsite .overflow-visible { + overflow: visible !important; +} + +.bodywebsite .overflow-scroll { + overflow: scroll !important; +} + +.bodywebsite .d-inline { + display: inline !important; +} + +.bodywebsite .d-inline-block { + display: inline-block !important; +} + +.bodywebsite .d-block { + display: block !important; +} + +.bodywebsite .d-grid { + display: grid !important; +} + +.bodywebsite .d-table { + display: table !important; +} + +.bodywebsite .d-table-row { + display: table-row !important; +} + +.bodywebsite .d-table-cell { + display: table-cell !important; +} + +.bodywebsite .d-flex { + display: flex !important; +} + +.bodywebsite .d-inline-flex { + display: inline-flex !important; +} + +.bodywebsite .d-none { + display: none !important; +} + +.bodywebsite .shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.bodywebsite .shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.bodywebsite .shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.bodywebsite .shadow-none { + box-shadow: none !important; +} + +.bodywebsite .position-static { + position: static !important; +} + +.bodywebsite .position-relative { + position: relative !important; +} + +.bodywebsite .position-absolute { + position: absolute !important; +} + +.bodywebsite .position-fixed { + position: fixed !important; +} + +.bodywebsite .position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.bodywebsite .top-0 { + top: 0 !important; +} + +.bodywebsite .top-50 { + top: 50% !important; +} + +.bodywebsite .top-100 { + top: 100% !important; +} + +.bodywebsite .bottom-0 { + bottom: 0 !important; +} + +.bodywebsite .bottom-50 { + bottom: 50% !important; +} + +.bodywebsite .bottom-100 { + bottom: 100% !important; +} + +.bodywebsite .start-0 { + left: 0 !important; +} + +.bodywebsite .start-50 { + left: 50% !important; +} + +.bodywebsite .start-100 { + left: 100% !important; +} + +.bodywebsite .end-0 { + right: 0 !important; +} + +.bodywebsite .end-50 { + right: 50% !important; +} + +.bodywebsite .end-100 { + right: 100% !important; +} + +.bodywebsite .translate-middle { + transform: translate(-50%, -50%) !important; +} + +.bodywebsite .translate-middle-x { + transform: translateX(-50%) !important; +} + +.bodywebsite .translate-middle-y { + transform: translateY(-50%) !important; +} + +.bodywebsite .border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-0 { + border: 0 !important; +} + +.bodywebsite .border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-top-0 { + border-top: 0 !important; +} + +.bodywebsite .border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-end-0 { + border-right: 0 !important; +} + +.bodywebsite .border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-bottom-0 { + border-bottom: 0 !important; +} + +.bodywebsite .border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-start-0 { + border-left: 0 !important; +} + +.bodywebsite .border-primary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-secondary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-success { + --bs-border-opacity: 1; +} + +.bodywebsite .border-info { + --bs-border-opacity: 1; +} + +.bodywebsite .border-warning { + --bs-border-opacity: 1; +} + +.bodywebsite .border-danger { + --bs-border-opacity: 1; +} + +.bodywebsite .border-light { + --bs-border-opacity: 1; +} + +.bodywebsite .border-dark { + --bs-border-opacity: 1; +} + +.bodywebsite .border-white { + --bs-border-opacity: 1; +} + +.bodywebsite .border-1 { + --bs-border-width: 1px; +} + +.bodywebsite .border-2 { + --bs-border-width: 2px; +} + +.bodywebsite .border-3 { + --bs-border-width: 3px; +} + +.bodywebsite .border-4 { + --bs-border-width: 4px; +} + +.bodywebsite .border-5 { + --bs-border-width: 5px; +} + +.bodywebsite .border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.bodywebsite .border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.bodywebsite .border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.bodywebsite .border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.bodywebsite .border-opacity-100 { + --bs-border-opacity: 1; +} + +.bodywebsite .w-25 { + width: 25% !important; +} + +.bodywebsite .w-50 { + width: 50% !important; +} + +.bodywebsite .w-75 { + width: 75% !important; +} + +.bodywebsite .w-100 { + width: 100% !important; +} + +.bodywebsite .w-auto { + width: auto !important; +} + +.bodywebsite .mw-100 { + max-width: 100% !important; +} + +.bodywebsite .vw-100 { + width: 100vw !important; +} + +.bodywebsite .min-vw-100 { + min-width: 100vw !important; +} + +.bodywebsite .h-25 { + height: 25% !important; +} + +.bodywebsite .h-50 { + height: 50% !important; +} + +.bodywebsite .h-75 { + height: 75% !important; +} + +.bodywebsite .h-100 { + height: 100% !important; +} + +.bodywebsite .h-auto { + height: auto !important; +} + +.bodywebsite .mh-100 { + max-height: 100% !important; +} + +.bodywebsite .vh-100 { + height: 100vh !important; +} + +.bodywebsite .min-vh-100 { + min-height: 100vh !important; +} + +.bodywebsite .flex-fill { + flex: 1 1 auto !important; +} + +.bodywebsite .flex-row { + flex-direction: row !important; +} + +.bodywebsite .flex-column { + flex-direction: column !important; +} + +.bodywebsite .flex-row-reverse { + flex-direction: row-reverse !important; +} + +.bodywebsite .flex-column-reverse { + flex-direction: column-reverse !important; +} + +.bodywebsite .flex-grow-0 { + flex-grow: 0 !important; +} + +.bodywebsite .flex-grow-1 { + flex-grow: 1 !important; +} + +.bodywebsite .flex-shrink-0 { + flex-shrink: 0 !important; +} + +.bodywebsite .flex-shrink-1 { + flex-shrink: 1 !important; +} + +.bodywebsite .flex-wrap { + flex-wrap: wrap !important; +} + +.bodywebsite .flex-nowrap { + flex-wrap: nowrap !important; +} + +.bodywebsite .flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.bodywebsite .justify-content-start { + justify-content: flex-start !important; +} + +.bodywebsite .justify-content-end { + justify-content: flex-end !important; +} + +.bodywebsite .justify-content-center { + justify-content: center !important; +} + +.bodywebsite .justify-content-between { + justify-content: space-between !important; +} + +.bodywebsite .justify-content-around { + justify-content: space-around !important; +} + +.bodywebsite .justify-content-evenly { + justify-content: space-evenly !important; +} + +.bodywebsite .align-items-start { + align-items: flex-start !important; +} + +.bodywebsite .align-items-end { + align-items: flex-end !important; +} + +.bodywebsite .align-items-center { + align-items: center !important; +} + +.bodywebsite .align-items-baseline { + align-items: baseline !important; +} + +.bodywebsite .align-items-stretch { + align-items: stretch !important; +} + +.bodywebsite .align-content-start { + align-content: flex-start !important; +} + +.bodywebsite .align-content-end { + align-content: flex-end !important; +} + +.bodywebsite .align-content-center { + align-content: center !important; +} + +.bodywebsite .align-content-between { + align-content: space-between !important; +} + +.bodywebsite .align-content-around { + align-content: space-around !important; +} + +.bodywebsite .align-content-stretch { + align-content: stretch !important; +} + +.bodywebsite .align-self-auto { + align-self: auto !important; +} + +.bodywebsite .align-self-start { + align-self: flex-start !important; +} + +.bodywebsite .align-self-end { + align-self: flex-end !important; +} + +.bodywebsite .align-self-center { + align-self: center !important; +} + +.bodywebsite .align-self-baseline { + align-self: baseline !important; +} + +.bodywebsite .align-self-stretch { + align-self: stretch !important; +} + +.bodywebsite .order-first { + order: -1 !important; +} + +.bodywebsite .order-0 { + order: 0 !important; +} + +.bodywebsite .order-1 { + order: 1 !important; +} + +.bodywebsite .order-2 { + order: 2 !important; +} + +.bodywebsite .order-3 { + order: 3 !important; +} + +.bodywebsite .order-4 { + order: 4 !important; +} + +.bodywebsite .order-5 { + order: 5 !important; +} + +.bodywebsite .order-last { + order: 6 !important; +} + +.bodywebsite .m-0 { + margin: 0 !important; +} + +.bodywebsite .m-1 { + margin: 0.25rem !important; +} + +.bodywebsite .m-2 { + margin: 0.5rem !important; +} + +.bodywebsite .m-3 { + margin: 1rem !important; +} + +.bodywebsite .m-4 { + margin: 1.5rem !important; +} + +.bodywebsite .m-5 { + margin: 3rem !important; +} + +.bodywebsite .m-auto { + margin: auto !important; +} + +.bodywebsite .mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.bodywebsite .mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.bodywebsite .mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.bodywebsite .mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.bodywebsite .mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.bodywebsite .mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.bodywebsite .mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.bodywebsite .my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.bodywebsite .my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.bodywebsite .my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.bodywebsite .my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.bodywebsite .my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.bodywebsite .my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.bodywebsite .my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.bodywebsite .mt-0 { + margin-top: 0 !important; +} + +.bodywebsite .mt-1 { + margin-top: 0.25rem !important; +} + +.bodywebsite .mt-2 { + margin-top: 0.5rem !important; +} + +.bodywebsite .mt-3 { + margin-top: 1rem !important; +} + +.bodywebsite .mt-4 { + margin-top: 1.5rem !important; +} + +.bodywebsite .mt-5 { + margin-top: 3rem !important; +} + +.bodywebsite .mt-auto { + margin-top: auto !important; +} + +.bodywebsite .me-0 { + margin-right: 0 !important; +} + +.bodywebsite .me-1 { + margin-right: 0.25rem !important; +} + +.bodywebsite .me-2 { + margin-right: 0.5rem !important; +} + +.bodywebsite .me-3 { + margin-right: 1rem !important; +} + +.bodywebsite .me-4 { + margin-right: 1.5rem !important; +} + +.bodywebsite .me-5 { + margin-right: 3rem !important; +} + +.bodywebsite .me-auto { + margin-right: auto !important; +} + +.bodywebsite .mb-0 { + margin-bottom: 0 !important; +} + +.bodywebsite .mb-1 { + margin-bottom: 0.25rem !important; +} + +.bodywebsite .mb-2 { + margin-bottom: 0.5rem !important; +} + +.bodywebsite .mb-3 { + margin-bottom: 1rem !important; +} + +.bodywebsite .mb-4 { + margin-bottom: 1.5rem !important; +} + +.bodywebsite .mb-5 { + margin-bottom: 3rem !important; +} + +.bodywebsite .mb-auto { + margin-bottom: auto !important; +} + +.bodywebsite .ms-0 { + margin-left: 0 !important; +} + +.bodywebsite .ms-1 { + margin-left: 0.25rem !important; +} + +.bodywebsite .ms-2 { + margin-left: 0.5rem !important; +} + +.bodywebsite .ms-3 { + margin-left: 1rem !important; +} + +.bodywebsite .ms-4 { + margin-left: 1.5rem !important; +} + +.bodywebsite .ms-5 { + margin-left: 3rem !important; +} + +.bodywebsite .ms-auto { + margin-left: auto !important; +} + +.bodywebsite .p-0 { + padding: 0 !important; +} + +.bodywebsite .p-1 { + padding: 0.25rem !important; +} + +.bodywebsite .p-2 { + padding: 0.5rem !important; +} + +.bodywebsite .p-3 { + padding: 1rem !important; +} + +.bodywebsite .p-4 { + padding: 1.5rem !important; +} + +.bodywebsite .p-5 { + padding: 3rem !important; +} + +.bodywebsite .px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.bodywebsite .px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.bodywebsite .px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.bodywebsite .px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.bodywebsite .px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.bodywebsite .px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.bodywebsite .py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.bodywebsite .py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.bodywebsite .py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.bodywebsite .py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.bodywebsite .py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.bodywebsite .py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.bodywebsite .pt-0 { + padding-top: 0 !important; +} + +.bodywebsite .pt-1 { + padding-top: 0.25rem !important; +} + +.bodywebsite .pt-2 { + padding-top: 0.5rem !important; +} + +.bodywebsite .pt-3 { + padding-top: 1rem !important; +} + +.bodywebsite .pt-4 { + padding-top: 1.5rem !important; +} + +.bodywebsite .pt-5 { + padding-top: 3rem !important; +} + +.bodywebsite .pe-0 { + padding-right: 0 !important; +} + +.bodywebsite .pe-1 { + padding-right: 0.25rem !important; +} + +.bodywebsite .pe-2 { + padding-right: 0.5rem !important; +} + +.bodywebsite .pe-3 { + padding-right: 1rem !important; +} + +.bodywebsite .pe-4 { + padding-right: 1.5rem !important; +} + +.bodywebsite .pe-5 { + padding-right: 3rem !important; +} + +.bodywebsite .pb-0 { + padding-bottom: 0 !important; +} + +.bodywebsite .pb-1 { + padding-bottom: 0.25rem !important; +} + +.bodywebsite .pb-2 { + padding-bottom: 0.5rem !important; +} + +.bodywebsite .pb-3 { + padding-bottom: 1rem !important; +} + +.bodywebsite .pb-4 { + padding-bottom: 1.5rem !important; +} + +.bodywebsite .pb-5 { + padding-bottom: 3rem !important; +} + +.bodywebsite .ps-0 { + padding-left: 0 !important; +} + +.bodywebsite .ps-1 { + padding-left: 0.25rem !important; +} + +.bodywebsite .ps-2 { + padding-left: 0.5rem !important; +} + +.bodywebsite .ps-3 { + padding-left: 1rem !important; +} + +.bodywebsite .ps-4 { + padding-left: 1.5rem !important; +} + +.bodywebsite .ps-5 { + padding-left: 3rem !important; +} + +.bodywebsite .gap-0 { + gap: 0 !important; +} + +.bodywebsite .gap-1 { + gap: 0.25rem !important; +} + +.bodywebsite .gap-2 { + gap: 0.5rem !important; +} + +.bodywebsite .gap-3 { + gap: 1rem !important; +} + +.bodywebsite .gap-4 { + gap: 1.5rem !important; +} + +.bodywebsite .gap-5 { + gap: 3rem !important; +} + +.bodywebsite .font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.bodywebsite .fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.bodywebsite .fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.bodywebsite .fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.bodywebsite .fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.bodywebsite .fs-5 { + font-size: 1.25rem !important; +} + +.bodywebsite .fs-6 { + font-size: 1rem !important; +} + +.bodywebsite .fst-italic { + font-style: italic !important; +} + +.bodywebsite .fst-normal { + font-style: normal !important; +} + +.bodywebsite .fw-light { + font-weight: 300 !important; +} + +.bodywebsite .fw-lighter { + font-weight: lighter !important; +} + +.bodywebsite .fw-normal { + font-weight: 400 !important; +} + +.bodywebsite .fw-bold { + font-weight: 700 !important; +} + +.bodywebsite .fw-semibold { + font-weight: 600 !important; +} + +.bodywebsite .fw-bolder { + font-weight: bolder !important; +} + +.bodywebsite .lh-1 { + line-height: 1 !important; +} + +.bodywebsite .lh-sm { + line-height: 1.25 !important; +} + +.bodywebsite .lh-base { + line-height: 1.5 !important; +} + +.bodywebsite .lh-lg { + line-height: 2 !important; +} + +.bodywebsite .text-start { + text-align: left !important; +} + +.bodywebsite .text-end { + text-align: right !important; +} + +.bodywebsite .text-center { + text-align: center !important; +} + +.bodywebsite .text-decoration-none { + text-decoration: none !important; +} + +.bodywebsite .text-decoration-underline { + text-decoration: underline !important; +} + +.bodywebsite .text-decoration-line-through { + text-decoration: line-through !important; +} + +.bodywebsite .text-lowercase { + text-transform: lowercase !important; +} + +.bodywebsite .text-uppercase { + text-transform: uppercase !important; +} + +.bodywebsite .text-capitalize { + text-transform: capitalize !important; +} + +.bodywebsite .text-wrap { + white-space: normal !important; +} + +.bodywebsite .text-nowrap { + white-space: nowrap !important; +} + +.bodywebsite .text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +.bodywebsite .text-primary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-secondary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-success { + --bs-text-opacity: 1; +} + +.bodywebsite .text-info { + --bs-text-opacity: 1; +} + +.bodywebsite .text-warning { + --bs-text-opacity: 1; +} + +.bodywebsite .text-danger { + --bs-text-opacity: 1; +} + +.bodywebsite .text-light { + --bs-text-opacity: 1; +} + +.bodywebsite .text-dark { + --bs-text-opacity: 1; +} + +.bodywebsite .text-black { + --bs-text-opacity: 1; +} + +.bodywebsite .text-white { + --bs-text-opacity: 1; +} + +.bodywebsite .text-body { + --bs-text-opacity: 1; +} + +.bodywebsite .text-muted { + --bs-text-opacity: 1; + color: #6c757d !important; +} + +.bodywebsite .text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.bodywebsite .text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.bodywebsite .text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.bodywebsite .text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.bodywebsite .text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.bodywebsite .text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.bodywebsite .text-opacity-100 { + --bs-text-opacity: 1; +} + +.bodywebsite .bg-primary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-secondary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-success { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-info { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-warning { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-danger { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-light { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-dark { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-black { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-white { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-body { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-transparent { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bodywebsite .bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bodywebsite .bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bodywebsite .bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bodywebsite .bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.bodywebsite .user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.bodywebsite .user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.bodywebsite .user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.bodywebsite .pe-none { + pointer-events: none !important; +} + +.bodywebsite .pe-auto { + pointer-events: auto !important; +} + +.bodywebsite .rounded { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-0 { + border-radius: 0 !important; +} + +.bodywebsite .rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.bodywebsite .rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.bodywebsite .rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.bodywebsite .rounded-5 { + border-radius: var(--bs-border-radius-2xl) !important; +} + +.bodywebsite .rounded-circle { + border-radius: 50% !important; +} + +.bodywebsite .rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.bodywebsite .rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .visible { + visibility: visible !important; +} + +.bodywebsite .invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .bodywebsite .float-sm-start { + float: left !important; + } + + .bodywebsite .float-sm-end { + float: right !important; + } + + .bodywebsite .float-sm-none { + float: none !important; + } + + .bodywebsite .d-sm-inline { + display: inline !important; + } + + .bodywebsite .d-sm-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-sm-block { + display: block !important; + } + + .bodywebsite .d-sm-grid { + display: grid !important; + } + + .bodywebsite .d-sm-table { + display: table !important; + } + + .bodywebsite .d-sm-table-row { + display: table-row !important; + } + + .bodywebsite .d-sm-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-sm-flex { + display: flex !important; + } + + .bodywebsite .d-sm-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-sm-none { + display: none !important; + } + + .bodywebsite .flex-sm-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-sm-row { + flex-direction: row !important; + } + + .bodywebsite .flex-sm-column { + flex-direction: column !important; + } + + .bodywebsite .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-sm-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-sm-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-sm-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-sm-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-sm-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-sm-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-sm-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-sm-center { + align-items: center !important; + } + + .bodywebsite .align-items-sm-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-sm-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-sm-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-sm-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-sm-center { + align-content: center !important; + } + + .bodywebsite .align-content-sm-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-sm-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-sm-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-sm-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-sm-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-sm-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-sm-center { + align-self: center !important; + } + + .bodywebsite .align-self-sm-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-sm-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-sm-first { + order: -1 !important; + } + + .bodywebsite .order-sm-0 { + order: 0 !important; + } + + .bodywebsite .order-sm-1 { + order: 1 !important; + } + + .bodywebsite .order-sm-2 { + order: 2 !important; + } + + .bodywebsite .order-sm-3 { + order: 3 !important; + } + + .bodywebsite .order-sm-4 { + order: 4 !important; + } + + .bodywebsite .order-sm-5 { + order: 5 !important; + } + + .bodywebsite .order-sm-last { + order: 6 !important; + } + + .bodywebsite .m-sm-0 { + margin: 0 !important; + } + + .bodywebsite .m-sm-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-sm-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-sm-3 { + margin: 1rem !important; + } + + .bodywebsite .m-sm-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-sm-5 { + margin: 3rem !important; + } + + .bodywebsite .m-sm-auto { + margin: auto !important; + } + + .bodywebsite .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-sm-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-sm-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-sm-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-sm-auto { + margin-top: auto !important; + } + + .bodywebsite .me-sm-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-sm-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-sm-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-sm-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-sm-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-sm-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-sm-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-sm-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-sm-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-sm-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-sm-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-sm-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-sm-auto { + margin-left: auto !important; + } + + .bodywebsite .p-sm-0 { + padding: 0 !important; + } + + .bodywebsite .p-sm-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-sm-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-sm-3 { + padding: 1rem !important; + } + + .bodywebsite .p-sm-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-sm-5 { + padding: 3rem !important; + } + + .bodywebsite .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-sm-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-sm-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-sm-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-sm-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-sm-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-sm-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-sm-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-sm-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-sm-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-sm-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-sm-0 { + gap: 0 !important; + } + + .bodywebsite .gap-sm-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-sm-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-sm-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-sm-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-sm-5 { + gap: 3rem !important; + } + + .bodywebsite .text-sm-start { + text-align: left !important; + } + + .bodywebsite .text-sm-end { + text-align: right !important; + } + + .bodywebsite .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .bodywebsite .float-md-start { + float: left !important; + } + + .bodywebsite .float-md-end { + float: right !important; + } + + .bodywebsite .float-md-none { + float: none !important; + } + + .bodywebsite .d-md-inline { + display: inline !important; + } + + .bodywebsite .d-md-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-md-block { + display: block !important; + } + + .bodywebsite .d-md-grid { + display: grid !important; + } + + .bodywebsite .d-md-table { + display: table !important; + } + + .bodywebsite .d-md-table-row { + display: table-row !important; + } + + .bodywebsite .d-md-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-md-flex { + display: flex !important; + } + + .bodywebsite .d-md-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-md-none { + display: none !important; + } + + .bodywebsite .flex-md-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-md-row { + flex-direction: row !important; + } + + .bodywebsite .flex-md-column { + flex-direction: column !important; + } + + .bodywebsite .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-md-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-md-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-md-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-md-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-md-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-md-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-md-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-md-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-md-center { + align-items: center !important; + } + + .bodywebsite .align-items-md-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-md-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-md-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-md-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-md-center { + align-content: center !important; + } + + .bodywebsite .align-content-md-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-md-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-md-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-md-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-md-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-md-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-md-center { + align-self: center !important; + } + + .bodywebsite .align-self-md-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-md-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-md-first { + order: -1 !important; + } + + .bodywebsite .order-md-0 { + order: 0 !important; + } + + .bodywebsite .order-md-1 { + order: 1 !important; + } + + .bodywebsite .order-md-2 { + order: 2 !important; + } + + .bodywebsite .order-md-3 { + order: 3 !important; + } + + .bodywebsite .order-md-4 { + order: 4 !important; + } + + .bodywebsite .order-md-5 { + order: 5 !important; + } + + .bodywebsite .order-md-last { + order: 6 !important; + } + + .bodywebsite .m-md-0 { + margin: 0 !important; + } + + .bodywebsite .m-md-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-md-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-md-3 { + margin: 1rem !important; + } + + .bodywebsite .m-md-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-md-5 { + margin: 3rem !important; + } + + .bodywebsite .m-md-auto { + margin: auto !important; + } + + .bodywebsite .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-md-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-md-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-md-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-md-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-md-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-md-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-md-auto { + margin-top: auto !important; + } + + .bodywebsite .me-md-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-md-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-md-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-md-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-md-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-md-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-md-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-md-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-md-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-md-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-md-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-md-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-md-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-md-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-md-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-md-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-md-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-md-auto { + margin-left: auto !important; + } + + .bodywebsite .p-md-0 { + padding: 0 !important; + } + + .bodywebsite .p-md-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-md-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-md-3 { + padding: 1rem !important; + } + + .bodywebsite .p-md-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-md-5 { + padding: 3rem !important; + } + + .bodywebsite .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-md-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-md-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-md-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-md-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-md-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-md-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-md-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-md-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-md-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-md-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-md-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-md-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-md-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-md-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-md-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-md-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-md-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-md-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-md-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-md-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-md-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-md-0 { + gap: 0 !important; + } + + .bodywebsite .gap-md-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-md-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-md-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-md-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-md-5 { + gap: 3rem !important; + } + + .bodywebsite .text-md-start { + text-align: left !important; + } + + .bodywebsite .text-md-end { + text-align: right !important; + } + + .bodywebsite .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .bodywebsite .float-lg-start { + float: left !important; + } + + .bodywebsite .float-lg-end { + float: right !important; + } + + .bodywebsite .float-lg-none { + float: none !important; + } + + .bodywebsite .d-lg-inline { + display: inline !important; + } + + .bodywebsite .d-lg-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-lg-block { + display: block !important; + } + + .bodywebsite .d-lg-grid { + display: grid !important; + } + + .bodywebsite .d-lg-table { + display: table !important; + } + + .bodywebsite .d-lg-table-row { + display: table-row !important; + } + + .bodywebsite .d-lg-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-lg-flex { + display: flex !important; + } + + .bodywebsite .d-lg-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-lg-none { + display: none !important; + } + + .bodywebsite .flex-lg-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-lg-row { + flex-direction: row !important; + } + + .bodywebsite .flex-lg-column { + flex-direction: column !important; + } + + .bodywebsite .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-lg-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-lg-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-lg-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-lg-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-lg-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-lg-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-lg-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-lg-center { + align-items: center !important; + } + + .bodywebsite .align-items-lg-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-lg-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-lg-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-lg-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-lg-center { + align-content: center !important; + } + + .bodywebsite .align-content-lg-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-lg-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-lg-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-lg-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-lg-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-lg-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-lg-center { + align-self: center !important; + } + + .bodywebsite .align-self-lg-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-lg-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-lg-first { + order: -1 !important; + } + + .bodywebsite .order-lg-0 { + order: 0 !important; + } + + .bodywebsite .order-lg-1 { + order: 1 !important; + } + + .bodywebsite .order-lg-2 { + order: 2 !important; + } + + .bodywebsite .order-lg-3 { + order: 3 !important; + } + + .bodywebsite .order-lg-4 { + order: 4 !important; + } + + .bodywebsite .order-lg-5 { + order: 5 !important; + } + + .bodywebsite .order-lg-last { + order: 6 !important; + } + + .bodywebsite .m-lg-0 { + margin: 0 !important; + } + + .bodywebsite .m-lg-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-lg-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-lg-3 { + margin: 1rem !important; + } + + .bodywebsite .m-lg-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-lg-5 { + margin: 3rem !important; + } + + .bodywebsite .m-lg-auto { + margin: auto !important; + } + + .bodywebsite .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-lg-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-lg-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-lg-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-lg-auto { + margin-top: auto !important; + } + + .bodywebsite .me-lg-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-lg-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-lg-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-lg-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-lg-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-lg-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-lg-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-lg-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-lg-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-lg-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-lg-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-lg-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-lg-auto { + margin-left: auto !important; + } + + .bodywebsite .p-lg-0 { + padding: 0 !important; + } + + .bodywebsite .p-lg-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-lg-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-lg-3 { + padding: 1rem !important; + } + + .bodywebsite .p-lg-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-lg-5 { + padding: 3rem !important; + } + + .bodywebsite .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-lg-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-lg-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-lg-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-lg-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-lg-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-lg-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-lg-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-lg-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-lg-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-lg-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-lg-0 { + gap: 0 !important; + } + + .bodywebsite .gap-lg-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-lg-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-lg-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-lg-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-lg-5 { + gap: 3rem !important; + } + + .bodywebsite .text-lg-start { + text-align: left !important; + } + + .bodywebsite .text-lg-end { + text-align: right !important; + } + + .bodywebsite .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .float-xl-start { + float: left !important; + } + + .bodywebsite .float-xl-end { + float: right !important; + } + + .bodywebsite .float-xl-none { + float: none !important; + } + + .bodywebsite .d-xl-inline { + display: inline !important; + } + + .bodywebsite .d-xl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xl-block { + display: block !important; + } + + .bodywebsite .d-xl-grid { + display: grid !important; + } + + .bodywebsite .d-xl-table { + display: table !important; + } + + .bodywebsite .d-xl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xl-flex { + display: flex !important; + } + + .bodywebsite .d-xl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xl-none { + display: none !important; + } + + .bodywebsite .flex-xl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xl-first { + order: -1 !important; + } + + .bodywebsite .order-xl-0 { + order: 0 !important; + } + + .bodywebsite .order-xl-1 { + order: 1 !important; + } + + .bodywebsite .order-xl-2 { + order: 2 !important; + } + + .bodywebsite .order-xl-3 { + order: 3 !important; + } + + .bodywebsite .order-xl-4 { + order: 4 !important; + } + + .bodywebsite .order-xl-5 { + order: 5 !important; + } + + .bodywebsite .order-xl-last { + order: 6 !important; + } + + .bodywebsite .m-xl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xl-start { + text-align: left !important; + } + + .bodywebsite .text-xl-end { + text-align: right !important; + } + + .bodywebsite .text-xl-center { + text-align: center !important; + } +} + +@media (min-width: 1400px) { + .bodywebsite .float-xxl-start { + float: left !important; + } + + .bodywebsite .float-xxl-end { + float: right !important; + } + + .bodywebsite .float-xxl-none { + float: none !important; + } + + .bodywebsite .d-xxl-inline { + display: inline !important; + } + + .bodywebsite .d-xxl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xxl-block { + display: block !important; + } + + .bodywebsite .d-xxl-grid { + display: grid !important; + } + + .bodywebsite .d-xxl-table { + display: table !important; + } + + .bodywebsite .d-xxl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xxl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xxl-flex { + display: flex !important; + } + + .bodywebsite .d-xxl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xxl-none { + display: none !important; + } + + .bodywebsite .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xxl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xxl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xxl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xxl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xxl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xxl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xxl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xxl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xxl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xxl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xxl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xxl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xxl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xxl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xxl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xxl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xxl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xxl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xxl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xxl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xxl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xxl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xxl-first { + order: -1 !important; + } + + .bodywebsite .order-xxl-0 { + order: 0 !important; + } + + .bodywebsite .order-xxl-1 { + order: 1 !important; + } + + .bodywebsite .order-xxl-2 { + order: 2 !important; + } + + .bodywebsite .order-xxl-3 { + order: 3 !important; + } + + .bodywebsite .order-xxl-4 { + order: 4 !important; + } + + .bodywebsite .order-xxl-5 { + order: 5 !important; + } + + .bodywebsite .order-xxl-last { + order: 6 !important; + } + + .bodywebsite .m-xxl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xxl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xxl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xxl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xxl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xxl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xxl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xxl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xxl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xxl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xxl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xxl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xxl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xxl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xxl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xxl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xxl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xxl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xxl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xxl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xxl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xxl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xxl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xxl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xxl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xxl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xxl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xxl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xxl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xxl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xxl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xxl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xxl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xxl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xxl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xxl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xxl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xxl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xxl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xxl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xxl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xxl-start { + text-align: left !important; + } + + .bodywebsite .text-xxl-end { + text-align: right !important; + } + + .bodywebsite .text-xxl-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .fs-1 { + font-size: 2.5rem !important; + } + + .bodywebsite .fs-2 { + font-size: 2rem !important; + } + + .bodywebsite .fs-3 { + font-size: 1.75rem !important; + } + + .bodywebsite .fs-4 { + font-size: 1.5rem !important; + } +} + +@media print { + .bodywebsite .d-print-inline { + display: inline !important; + } + + .bodywebsite .d-print-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-print-block { + display: block !important; + } + + .bodywebsite .d-print-grid { + display: grid !important; + } + + .bodywebsite .d-print-table { + display: table !important; + } + + .bodywebsite .d-print-table-row { + display: table-row !important; + } + + .bodywebsite .d-print-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-print-flex { + display: flex !important; + } + + .bodywebsite .d-print-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-print-none { + display: none !important; + } +} + +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + font-family: Hurricane; +} + +.bodywebsite hr { + margin: 100px; +} + +.bodywebsite header { + align-items: center; + justify-content: center; +} +.bodywebsite .bg { + background-color: #010134; +} + +.bodywebsite #mysection1 { + color: white; + background-color: #010134; + font-family: Arial, Helvetica, sans-serif; + font-weight: bold; +} + +.bodywebsite #main { + padding-top: 15%; +} + +.bodywebsite .btn-perso { + margin: 20px 15px; + font-weight: bold; + background-color: #a600a9; +} +.bodywebsite .btn-perso:hover { + background-color: #79027b; + color: white; +} + +.bodywebsite .btn-perso2 { + font-weight: bold; + background-color: #7700ba; +} +.bodywebsite .btn-perso2:hover { + background-color: #3d0160; + color: white; +} + +.bodywebsite .product { + margin-bottom: 20px; +} + +.bodywebsite .flex { + display: flex; + flex-direction: column; + align-items: center; +} + diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/wrapper.php b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/wrapper.php new file mode 100644 index 00000000000..26adb3ef220 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/containers/wrapper.php @@ -0,0 +1,278 @@ +entity; +$original_file = GETPOST("file", "alpha"); +$l = GETPOST('l', 'aZ09'); +$limit = GETPOST('limit', 'int'); + +// Parameters for RSS +$rss = GETPOST('rss', 'aZ09'); +if ($rss) { + $original_file = 'blog.rss'; +} + +// If we have a hash public (hashp), we guess the original_file. +if (!empty($hashp)) { + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile = new EcmFiles($db); + $result = $ecmfile->fetch(0, '', '', '', $hashp); + if ($result > 0) { + $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory + // filepath can be 'users/X' or 'X/propale/PR11111' + if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part. + $tmp = explode('/', $tmp[1], 2); + } + $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path + + if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter. + if ($moduleparttocheck == $modulepart) { + // We remove first level of directory + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + //var_dump($original_file); exit; + } else { + print 'Bad link. File is from another module part.'; + } + } else { + $modulepart = $moduleparttocheck; + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + } + } else { + print "ErrorFileNotFoundWithSharedLink"; + exit; + } +} + +// Define attachment (attachment=true to force choice popup 'open'/'save as') +$attachment = true; +if (preg_match('/\.(html|htm)$/i', $original_file)) { + $attachment = false; +} +if (isset($_GET["attachment"])) { + $attachment = (GETPOST("attachment", 'alphanohtml') ? true : false); +} +if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) { + $attachment = false; +} + +// Define mime type +$type = 'application/octet-stream'; +if (GETPOSTISSET('type')) { + $type = GETPOST('type', 'alpha'); +} else { + $type = dol_mimetype($original_file); +} + +// Security: Delete string ../ into $original_file +$original_file = str_replace("../", "/", $original_file); + +// Cache or not +if (GETPOST("cache", 'aZ09') || image_format_supported($original_file) >= 0) { + // Important: Following code is to avoid page request by browser and PHP CPU at + // each Dolibarr page access. + header('Cache-Control: max-age=3600, public, must-revalidate'); + header('Pragma: cache'); // This is to avoid having Pragma: no-cache +} + +$refname = basename(dirname($original_file)."/"); + +// Get RSS news +if ($rss) { + $format = 'rss'; + $type = ''; + $cachedelay = 0; + $filename = $original_file; + $dir_temp = $conf->website->dir_temp; + + include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; + include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; + $website = new Website($db); + $websitepage = new WebsitePage($db); + + $website->fetch('', $websitekey); + + $filters = array('type_container'=>'blogpost', 'status'=>1); + if ($l) { + $filters['lang'] = $l; + } + + $MAXNEWS = ($limit ? $limit : 20); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, $filters); + $eventarray = array(); + if (is_array($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + $blog->fullpageurl = $website->virtualhost.'/'.$blog->pageurl.'.php'; + $eventarray[] = $blog; + } + } + + require_once DOL_DOCUMENT_ROOT."/core/lib/xcal.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + + dol_syslog("build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG); + + // Clean parameters + if (!$filename) { + $extension = 'rss'; + $filename = $format.'.'.$extension; + } + + // Create dir and define output file (definitive and temporary) + $result = dol_mkdir($dir_temp); + $outputfile = $dir_temp.'/'.$filename; + + $result = 0; + + $buildfile = true; + + if ($cachedelay) { + $nowgmt = dol_now(); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (dol_filemtime($outputfile) > ($nowgmt - $cachedelay)) { + dol_syslog("build_exportfile file ".$outputfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay."). Build is canceled"); + $buildfile = false; + } + } + + if ($buildfile) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($l); + $outputlangs->loadLangs(array("main", "other")); + $title = $desc = $outputlangs->transnoentities('LatestBlogPosts'); + + // Create temp file + $outputfiletmp = tempnam($dir_temp, 'tmp'); // Temporary file (allow call of function by different threads + @chmod($outputfiletmp, octdec($conf->global->MAIN_UMASK)); + + // Write file + $result = build_rssfile($format, $title, $desc, $eventarray, $outputfiletmp, '', $website->virtualhost.'/wrapper.php?rss=1'.($l ? '&l='.$l : ''), $l); + + if ($result >= 0) { + if (dol_move($outputfiletmp, $outputfile, 0, 1)) { + $result = 1; + } else { + $error = 'Failed to rename '.$outputfiletmp.' into '.$outputfile; + dol_syslog("build_exportfile ".$error, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + print $error; + exit(-1); + } + } else { + dol_syslog("build_exportfile build_xxxfile function fails to for format=".$format." outputfiletmp=".$outputfile, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + $langs->load("errors"); + print $langs->trans("ErrorFailToCreateFile", $outputfile); + exit(-1); + } + } + + if ($result >= 0) { + $attachment = false; + if (isset($_GET["attachment"])) { + $attachment = $_GET["attachment"]; + } + //$attachment = false; + $contenttype = 'application/rss+xml'; + if (isset($_GET["contenttype"])) { + $contenttype = $_GET["contenttype"]; + } + //$contenttype='text/plain'; + $outputencoding = 'UTF-8'; + + if ($contenttype) { + header('Content-Type: '.$contenttype.($outputencoding ? '; charset='.$outputencoding : '')); + } + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } + + // Ajout directives pour resoudre bug IE + //header('Cache-Control: Public, must-revalidate'); + //header('Pragma: public'); + if ($cachedelay) { + header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate'); + } else { + header('Cache-Control: private, must-revalidate'); + } + + // Clean parameters + $outputfile = $dir_temp.'/'.$filename; + $result = readfile($outputfile); + if (!$result) { + print 'File '.$outputfile.' was empty.'; + } + + // header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename)); + exit; + } +} elseif ($modulepart == "mycompany" && preg_match('/^\/?logos\//', $original_file)) { + // Get logos + readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); +} else { + // Find the subdirectory name as the reference + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); + $accessallowed = empty($check_access['accessallowed']) ? '' : $check_access['accessallowed']; + $sqlprotectagainstexternals = empty($check_access['sqlprotectagainstexternals']) ? '' : $check_access['sqlprotectagainstexternals']; + $fullpath_original_file = empty($check_access['original_file']) ? '' : $check_access['original_file']; // $fullpath_original_file is now a full path name + if ($hashp) { + $accessallowed = 1; // When using hashp, link is public so we force $accessallowed + $sqlprotectagainstexternals = ''; + } + + // Security: + // Limit access if permissions are wrong + if (!$accessallowed) { + print 'Access forbidden'; + exit; + } + + clearstatcache(); + + $filename = basename($fullpath_original_file); + + // Output file on browser + dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); + $fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset + + // This test if file exists should be useless. We keep it to find bug more easily + if (!file_exists($fullpath_original_file_osencoded)) { + print "ErrorFileDoesNotExists: ".$original_file; + exit; + } + + // Permissions are ok and file found, so we return it + //top_httphead($type); + header('Content-Type: '.$type); + header('Content-Description: File Transfer'); + if ($encoding) { + header('Content-Encoding: '.$encoding); + } + // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } else { + header('Content-Disposition: inline; filename="'.$filename.'"'); + } + header('Content-Length: '.dol_filesize($fullpath_original_file)); + + readfile($fullpath_original_file_osencoded); +} +if (is_object($db)) { + $db->close(); +} +// END PHP diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/medias/image/websitekey/bg.webp b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/medias/image/websitekey/bg.webp new file mode 100644 index 00000000000..bb1d49b7fb1 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/medias/image/websitekey/bg.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/medias/image/websitekey/icon.webp b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/medias/image/websitekey/icon.webp new file mode 100644 index 00000000000..76d28977fa3 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/medias/image/websitekey/icon.webp differ diff --git a/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/website_pages.sql b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/website_pages.sql new file mode 100644 index 00000000000..78e198a2223 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-onepageblackpurple/website_pages.sql @@ -0,0 +1,9 @@ +-- File generated by Dolibarr 17.0.0-alpha -- 2022-09-26 11:58:28 UTC --; +-- Page ID 148 -> 1__+MAX_llx_website_page__ - Aliases index --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(1__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'index', '', 'index', '', '', '', '', '1', '2022-07-21 14:41:41', '2022-09-26 13:57:58', null, '', 'page', '__N__ __N__ __N__ __N__ __N__ __N__ __N__ __N__ __N____N__ __N__ Template__N__ ', '__N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    Our company

    __N__

    __N__ Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nostrum excepturi ipsa consequatur accusamus eveniet dignissimos necessitatibus provident dolore cupiditate.__N__

    __N__
    __N__

    __N__ It uses utility classes for typography and spacing to space content out within the__N__ larger container.__N__

    __N__

    __N__ __N__ __N__ __N__ __N__ __N__ __N__

    __N__
    __N__
    __N__
    __N__ \"landingpage\"__N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    LoremIpsum

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    LoremIpsum

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    LoremIpsum

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    LoremIpsum

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    LoremIpsum

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__

    LoremIpsum

    __N__

    __N__ Some quick example text to build on the__N__ card title and make up the bulk of the__N__ card\'s content.__N__

    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    UNLIMITED FOR ALL

    __N__

    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Minus molestias voluptatibus voluptatem Lorem ipsum dolor, sit amet consectetur adipisicing elit. Veritatis officia voluptatem incidunt tempore esse porro sequi eveniet eum corrupti quo.

    __N__
    __N__
    __N__

    $79/month

    __N__
    __N__
    __N__

    WHAT YOU WILL GET

    __N__

    Lorem ipsum dolor sit, amet consectetur


    __N__

    Lorem ipsum dolor sit, amet consectetur


    __N__

    Lorem ipsum dolor sit, amet consectetur


    __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    Contact us

    __N__
    __N__
    __N__ email ?>
    __N__ getFullAddress() ?>
    __N__
    __N__
    __N__ __N__ __N__
    __N__
    __N__ __N__
    __N__ __N__


    __N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__ __N__
    __N__ __N__
    __N__ socialnetworks as $key => $value) {__N__ print \'\';__N__ } ?>__N____N__
    __N__ __N__
    __N__ __N__ __N__ __N__
    __N__ © 2022 Dolibarr:__N__ Dolicloud.com__N__
    __N__ __N__
    __N__
    __N__', '', 0); +UPDATE llx_website SET fk_default_home = 1__+MAX_llx_website_page__ WHERE rowid = __WEBSITE_ID__; + +-- For Dolibarr v14+ --; +UPDATE llx_website SET lang = 'en' WHERE rowid = __WEBSITE_ID__; +UPDATE llx_website SET otherlang = '' WHERE rowid = __WEBSITE_ID__; + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant.jpg new file mode 100644 index 00000000000..226737e4434 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/LICENSE b/htdocs/install/doctemplates/websites/website_template-restaurant/LICENSE new file mode 100644 index 00000000000..1143fd7823a --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/LICENSE @@ -0,0 +1,8 @@ +LICENSE +------- + +Images are provided under the license: +Unsplash+ License + +Rest of templates (HTML and PHP code) content are under license +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/README.md b/htdocs/install/doctemplates/websites/website_template-restaurant/README.md new file mode 100644 index 00000000000..a5b5c5abba9 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/README.md @@ -0,0 +1,2 @@ +Website generated by Dolibarr ERP CRM +This website template is an example of website for a restaurant diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/.dolibarr b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/.dolibarr new file mode 100644 index 00000000000..0ef9997b4ab --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/.dolibarr @@ -0,0 +1,2 @@ +# Some properties for Dolibarr web site CMS +param=value diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/.htaccess b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/.htaccess new file mode 100644 index 00000000000..ed27b33461f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/.htaccess @@ -0,0 +1,2 @@ +# Order allow,deny +# Deny from all diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/LICENSE b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/LICENSE new file mode 100644 index 00000000000..1143fd7823a --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/LICENSE @@ -0,0 +1,8 @@ +LICENSE +------- + +Images are provided under the license: +Unsplash+ License + +Rest of templates (HTML and PHP code) content are under license +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/README.md b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/README.md new file mode 100644 index 00000000000..a5b5c5abba9 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/README.md @@ -0,0 +1,2 @@ +Website generated by Dolibarr ERP CRM +This website template is an example of website for a restaurant diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/about.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/about.php new file mode 100644 index 00000000000..560719a4fda --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/about.php @@ -0,0 +1,5 @@ +ref.'/page248.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/contact.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/contact.php new file mode 100644 index 00000000000..e3a18e3b92d --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/contact.php @@ -0,0 +1,5 @@ +ref.'/page249.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/footer.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/footer.php new file mode 100644 index 00000000000..4052f2ff8e9 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/footer.php @@ -0,0 +1,5 @@ +ref.'/page252.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/header.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/header.php new file mode 100644 index 00000000000..530e4397e93 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/header.php @@ -0,0 +1,5 @@ +ref.'/page253.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/htmlheader.html b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/htmlheader.html new file mode 100644 index 00000000000..41e782b5934 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/htmlheader.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/index.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/index.php new file mode 100644 index 00000000000..08ce45517af --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/index.php @@ -0,0 +1,5 @@ +ref.'/page250.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/javascript.js.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/javascript.js.php new file mode 100644 index 00000000000..fe1f15266af --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/javascript.js.php @@ -0,0 +1,14 @@ + +/* JS content (all pages) */ +// test + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/manifest.json.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/manifest.json.php new file mode 100644 index 00000000000..8f844114e48 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/manifest.json.php @@ -0,0 +1,13 @@ + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/master.inc.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/master.inc.php new file mode 100644 index 00000000000..bd25ba5895d --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/master.inc.php @@ -0,0 +1,7 @@ + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/menu.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/menu.php new file mode 100644 index 00000000000..57315e4da18 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/menu.php @@ -0,0 +1,5 @@ +ref.'/page251.tpl.php'; +?> diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page248.tpl.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page248.tpl.php new file mode 100644 index 00000000000..9acf79aaec9 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page248.tpl.php @@ -0,0 +1,113 @@ + + + +About us + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + +
    +
    + + + +
    +
    +
    + +
    +

    Team Members

    +
    + +
    +
    + + +
    +

    Sophia

    + +

    CEO & Founder

    +
    +
    +
    + +
    +
    + + +

    Benjamin W.

    + +

    Restaurant Manager

    +
    +
    + +
    +
    + + +

    Muchen Jack

    + +

    Senior Chef

    +
    +
    + +
    +
    +
    + +
    + +
    + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page249.tpl.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page249.tpl.php new file mode 100644 index 00000000000..8742e231c27 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page249.tpl.php @@ -0,0 +1,368 @@ + + + +Contact us + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + +email; + $message = GETPOST('message', 'alpha'); + $cmail = new CMailFile('Contact from website', $to, $from, $message); + if ($cmail->sendfile()) { + ?> + + trans("ErrorFailedToSendMail", $from, $to).'. '.$cmail->error; + } +} +?> + + + + +
    +
    + + +
    + +
    +
    +
    +
    +

    Leave a message

    +
    + +
    +
    + + + +
    + + + +
    + +
    + + + +
    + +
    + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    Weekdays
    + +
    + $day : " .getDolGlobalString("MAIN_INFO_OPENINGHOURS_$day") ."

    "; + } + ?> +
    + +
    Weekends
    + +
    +

    Saturday and Sunday

    + +

    to be determined !

    +
    +
    + +
    +

    + +

    + getFullAddress() ?> +

    + + +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + +
    + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page250.tpl.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page250.tpl.php new file mode 100644 index 00000000000..ed509115c54 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page250.tpl.php @@ -0,0 +1,475 @@ + + + +index + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +

    + Delicious Steaks +

    + +
    +
    +
    + + + + + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + +
    + +
    + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page251.tpl.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page251.tpl.php new file mode 100644 index 00000000000..50fb446dd2e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page251.tpl.php @@ -0,0 +1,273 @@ + + + +Our menus + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    + +
    + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page252.tpl.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page252.tpl.php new file mode 100644 index 00000000000..568a538488b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page252.tpl.php @@ -0,0 +1,93 @@ + + + +Footer + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page253.tpl.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page253.tpl.php new file mode 100644 index 00000000000..10896678ceb --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/page253.tpl.php @@ -0,0 +1,98 @@ + + + +Header + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/robots.txt b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/robots.txt new file mode 100644 index 00000000000..2b844f479d6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/robots.txt @@ -0,0 +1,4 @@ +# Robot file. Generated with Dolibarr +User-agent: * +Allow: /public/ +Disallow: /administrator/ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/styles.css.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/styles.css.php new file mode 100644 index 00000000000..0c669a21a69 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/styles.css.php @@ -0,0 +1,13159 @@ + +@charset "UTF-8"; + +.bodywebsite :root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +.bodywebsite *, + .bodywebsite *::before, + .bodywebsite *::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + .bodywebsite :root { + scroll-behavior: smooth; + } +} + +.bodywebsite body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +} + +.bodywebsite .center { + text-align: center; +} + +.bodywebsite hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +.bodywebsite h6, .bodywebsite .h6, .bodywebsite h5, .bodywebsite .h5, .bodywebsite h4, .bodywebsite .h4, .bodywebsite h3, .bodywebsite .h3, .bodywebsite h2, .bodywebsite .h2, .bodywebsite h1, .bodywebsite .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +.bodywebsite h1, .bodywebsite .h1 { + font-size: calc(1.375rem + 1.5vw); +} + +@media (min-width: 1200px) { + .bodywebsite h1, .bodywebsite .h1 { + font-size: 2.5rem; + } +} + +.bodywebsite h2, .bodywebsite .h2 { + font-size: calc(1.325rem + 0.9vw); +} + +@media (min-width: 1200px) { + .bodywebsite h2, .bodywebsite .h2 { + font-size: 2rem; + } +} + +.bodywebsite h3, .bodywebsite .h3 { + font-size: calc(1.3rem + 0.6vw); +} + +@media (min-width: 1200px) { + .bodywebsite h3, .bodywebsite .h3 { + font-size: 1.75rem; + } +} + +.bodywebsite h4, .bodywebsite .h4 { + font-size: calc(1.275rem + 0.3vw); +} + +@media (min-width: 1200px) { + .bodywebsite h4, .bodywebsite .h4 { + font-size: 1.5rem; + } +} + +.bodywebsite h5, .bodywebsite .h5 { + font-size: 1.25rem; +} + +.bodywebsite h6, .bodywebsite .h6 { + font-size: 1rem; +} + +.bodywebsite p { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +.bodywebsite address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +.bodywebsite ol, + .bodywebsite ul { + padding-left: 2rem; +} + +.bodywebsite ol, + .bodywebsite ul, + .bodywebsite dl { + margin-top: 0; + margin-bottom: 1rem; +} + +.bodywebsite ol ol, + .bodywebsite ul ul, + .bodywebsite ol ul, + .bodywebsite ul ol { + margin-bottom: 0; +} + +.bodywebsite dt { + font-weight: 700; +} + +.bodywebsite dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +.bodywebsite blockquote { + margin: 0 0 1rem; +} + +.bodywebsite b, + .bodywebsite strong { + font-weight: bolder; +} + +.bodywebsite small, .bodywebsite .small { + font-size: 0.875em; +} + +.bodywebsite mark, .bodywebsite .mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +.bodywebsite sub, + .bodywebsite sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +.bodywebsite sub { + bottom: -0.25em; +} + +.bodywebsite sup { + top: -0.5em; +} + +.bodywebsite a { + color: var(--bs-link-color); + text-decoration: underline; +} + +.bodywebsite a:hover { + color: var(--bs-link-hover-color); +} + +.bodywebsite a:not([href]):not([class]), .bodywebsite a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +.bodywebsite pre, + .bodywebsite code, + .bodywebsite kbd, + .bodywebsite samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +.bodywebsite pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} + +.bodywebsite pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.bodywebsite code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} + +.bodywebsite a > code { + color: inherit; +} + +.bodywebsite kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} + +.bodywebsite kbd kbd { + padding: 0; + font-size: 1em; +} + +.bodywebsite figure { + margin: 0 0 1rem; +} + +.bodywebsite img, + .bodywebsite svg { + vertical-align: middle; +} + +.bodywebsite table { + caption-side: bottom; + border-collapse: collapse; +} + +.bodywebsite caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +.bodywebsite th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +.bodywebsite thead, + .bodywebsite tbody, + .bodywebsite tfoot, + .bodywebsite tr, + .bodywebsite td, + .bodywebsite th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +.bodywebsite label { + display: inline-block; +} + +.bodywebsite button { + border-radius: 0; +} + +.bodywebsite button:focus:not(:focus-visible) { + outline: 0; +} + +.bodywebsite input, + .bodywebsite button, + .bodywebsite select, + .bodywebsite optgroup, + .bodywebsite textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.bodywebsite button, + .bodywebsite select { + text-transform: none; +} + +.bodywebsite [role=button] { + cursor: pointer; +} + +.bodywebsite select { + word-wrap: normal; +} + +.bodywebsite select:disabled { + opacity: 1; +} + +.bodywebsite [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +.bodywebsite button, + .bodywebsite [type=button], + .bodywebsite [type=reset], + .bodywebsite [type=submit] { + -webkit-appearance: button; +} + +.bodywebsite button:not(:disabled), + .bodywebsite [type=button]:not(:disabled), + .bodywebsite [type=reset]:not(:disabled), + .bodywebsite [type=submit]:not(:disabled) { + cursor: pointer; +} + +.bodywebsite ::-moz-focus-inner { + padding: 0; + border-style: none; +} + +.bodywebsite textarea { + resize: vertical; +} + +.bodywebsite fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +.bodywebsite legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} + +@media (min-width: 1200px) { + .bodywebsite legend { + font-size: 1.5rem; + } +} + +.bodywebsite legend + * { + clear: left; +} + +.bodywebsite ::-webkit-datetime-edit-fields-wrapper, + .bodywebsite ::-webkit-datetime-edit-text, + .bodywebsite ::-webkit-datetime-edit-minute, + .bodywebsite ::-webkit-datetime-edit-hour-field, + .bodywebsite ::-webkit-datetime-edit-day-field, + .bodywebsite ::-webkit-datetime-edit-month-field, + .bodywebsite ::-webkit-datetime-edit-year-field { + padding: 0; +} + +.bodywebsite ::-webkit-inner-spin-button { + height: auto; +} + +.bodywebsite [type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +.bodywebsite ::-webkit-search-decoration { + -webkit-appearance: none; +} + +.bodywebsite ::-webkit-color-swatch-wrapper { + padding: 0; +} + +.bodywebsite ::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite ::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +.bodywebsite output { + display: inline-block; +} + +.bodywebsite iframe { + border: 0; +} + +.bodywebsite summary { + display: list-item; + cursor: pointer; +} + +.bodywebsite progress { + vertical-align: baseline; +} + +.bodywebsite [hidden] { + display: none !important; +} + +.bodywebsite .lead { + font-size: 1.25rem; + font-weight: 300; +} + +.bodywebsite .display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-1 { + font-size: 5rem; + } +} + +.bodywebsite .display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-2 { + font-size: 4.5rem; + } +} + +.bodywebsite .display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-3 { + font-size: 4rem; + } +} + +.bodywebsite .display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-4 { + font-size: 3.5rem; + } +} + +.bodywebsite .display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-5 { + font-size: 3rem; + } +} + +.bodywebsite .display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} + +@media (min-width: 1200px) { + .bodywebsite .display-6 { + font-size: 2.5rem; + } +} + +.bodywebsite .list-unstyled { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline { + padding-left: 0; + list-style: none; +} + +.bodywebsite .list-inline-item { + display: inline-block; +} + +.bodywebsite .list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.bodywebsite .initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.bodywebsite .blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.bodywebsite .blockquote > :last-child { + margin-bottom: 0; +} + +.bodywebsite .blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .blockquote-footer::before { + content: "— "; +} + +.bodywebsite .img-fluid { + max-width: 100%; + height: auto; +} + +.bodywebsite .img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid var(--bs-border-color); + border-radius: 0.375rem; + max-width: 100%; + height: auto; +} + +.bodywebsite .figure { + display: inline-block; +} + +.bodywebsite .figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.bodywebsite .figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .container, + .bodywebsite .container-fluid, + .bodywebsite .container-xxl, + .bodywebsite .container-xl, + .bodywebsite .container-lg, + .bodywebsite .container-md, + .bodywebsite .container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .container-sm, .bodywebsite .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1140px; + } +} + +@media (min-width: 1400px) { + .bodywebsite .container-xxl, .bodywebsite .container-xl, .bodywebsite .container-lg, .bodywebsite .container-md, .bodywebsite .container-sm, .bodywebsite .container { + max-width: 1320px; + } +} + +.bodywebsite .row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} + +.bodywebsite .row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.bodywebsite .col { + flex: 1 0 0%; +} + +.bodywebsite .row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.bodywebsite .row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.bodywebsite .row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.bodywebsite .col-auto { + flex: 0 0 auto; + width: auto; +} + +.bodywebsite .col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.bodywebsite .col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.bodywebsite .col-3 { + flex: 0 0 auto; + width: 25%; +} + +.bodywebsite .col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.bodywebsite .col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.bodywebsite .col-6 { + flex: 0 0 auto; + width: 50%; +} + +.bodywebsite .col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.bodywebsite .col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.bodywebsite .col-9 { + flex: 0 0 auto; + width: 75%; +} + +.bodywebsite .col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.bodywebsite .col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.bodywebsite .col-12 { + flex: 0 0 auto; + width: 100%; +} + +.bodywebsite .offset-1 { + margin-left: 8.33333333%; +} + +.bodywebsite .offset-2 { + margin-left: 16.66666667%; +} + +.bodywebsite .offset-3 { + margin-left: 25%; +} + +.bodywebsite .offset-4 { + margin-left: 33.33333333%; +} + +.bodywebsite .offset-5 { + margin-left: 41.66666667%; +} + +.bodywebsite .offset-6 { + margin-left: 50%; +} + +.bodywebsite .offset-7 { + margin-left: 58.33333333%; +} + +.bodywebsite .offset-8 { + margin-left: 66.66666667%; +} + +.bodywebsite .offset-9 { + margin-left: 75%; +} + +.bodywebsite .offset-10 { + margin-left: 83.33333333%; +} + +.bodywebsite .offset-11 { + margin-left: 91.66666667%; +} + +.bodywebsite .g-0, + .bodywebsite .gx-0 { + --bs-gutter-x: 0; +} + +.bodywebsite .g-0, + .bodywebsite .gy-0 { + --bs-gutter-y: 0; +} + +.bodywebsite .g-1, + .bodywebsite .gx-1 { + --bs-gutter-x: 0.25rem; +} + +.bodywebsite .g-1, + .bodywebsite .gy-1 { + --bs-gutter-y: 0.25rem; +} + +.bodywebsite .g-2, + .bodywebsite .gx-2 { + --bs-gutter-x: 0.5rem; +} + +.bodywebsite .g-2, + .bodywebsite .gy-2 { + --bs-gutter-y: 0.5rem; +} + +.bodywebsite .g-3, + .bodywebsite .gx-3 { + --bs-gutter-x: 1rem; +} + +.bodywebsite .g-3, + .bodywebsite .gy-3 { + --bs-gutter-y: 1rem; +} + +.bodywebsite .g-4, + .bodywebsite .gx-4 { + --bs-gutter-x: 1.5rem; +} + +.bodywebsite .g-4, + .bodywebsite .gy-4 { + --bs-gutter-y: 1.5rem; +} + +.bodywebsite .g-5, + .bodywebsite .gx-5 { + --bs-gutter-x: 3rem; +} + +.bodywebsite .g-5, + .bodywebsite .gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .bodywebsite .col-sm { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-sm-0 { + margin-left: 0; + } + + .bodywebsite .offset-sm-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-sm-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-sm-3 { + margin-left: 25%; + } + + .bodywebsite .offset-sm-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-sm-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-sm-6 { + margin-left: 50%; + } + + .bodywebsite .offset-sm-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-sm-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-sm-9 { + margin-left: 75%; + } + + .bodywebsite .offset-sm-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-sm-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gx-sm-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-sm-0, + .bodywebsite .gy-sm-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-sm-1, + .bodywebsite .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-sm-2, + .bodywebsite .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-sm-3, + .bodywebsite .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-sm-4, + .bodywebsite .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-sm-5, + .bodywebsite .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 768px) { + .bodywebsite .col-md { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-md-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-md-0 { + margin-left: 0; + } + + .bodywebsite .offset-md-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-md-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-md-3 { + margin-left: 25%; + } + + .bodywebsite .offset-md-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-md-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-md-6 { + margin-left: 50%; + } + + .bodywebsite .offset-md-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-md-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-md-9 { + margin-left: 75%; + } + + .bodywebsite .offset-md-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-md-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-md-0, + .bodywebsite .gx-md-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-md-0, + .bodywebsite .gy-md-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-md-1, + .bodywebsite .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-md-1, + .bodywebsite .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-md-2, + .bodywebsite .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-md-3, + .bodywebsite .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-md-4, + .bodywebsite .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-md-5, + .bodywebsite .gy-md-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 992px) { + .bodywebsite .col-lg { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-lg-0 { + margin-left: 0; + } + + .bodywebsite .offset-lg-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-lg-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-lg-3 { + margin-left: 25%; + } + + .bodywebsite .offset-lg-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-lg-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-lg-6 { + margin-left: 50%; + } + + .bodywebsite .offset-lg-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-lg-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-lg-9 { + margin-left: 75%; + } + + .bodywebsite .offset-lg-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-lg-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gx-lg-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-lg-0, + .bodywebsite .gy-lg-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-lg-1, + .bodywebsite .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-lg-2, + .bodywebsite .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-lg-3, + .bodywebsite .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-lg-4, + .bodywebsite .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-lg-5, + .bodywebsite .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1200px) { + .bodywebsite .col-xl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gx-xl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xl-0, + .bodywebsite .gy-xl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xl-1, + .bodywebsite .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xl-2, + .bodywebsite .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xl-3, + .bodywebsite .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xl-4, + .bodywebsite .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xl-5, + .bodywebsite .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1400px) { + .bodywebsite .col-xxl { + flex: 1 0 0%; + } + + .bodywebsite .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .bodywebsite .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .bodywebsite .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .bodywebsite .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + + .bodywebsite .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .bodywebsite .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .bodywebsite .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .bodywebsite .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .bodywebsite .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .bodywebsite .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .bodywebsite .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .bodywebsite .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .bodywebsite .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .bodywebsite .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .bodywebsite .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .bodywebsite .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .bodywebsite .offset-xxl-0 { + margin-left: 0; + } + + .bodywebsite .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .bodywebsite .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .bodywebsite .offset-xxl-3 { + margin-left: 25%; + } + + .bodywebsite .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .bodywebsite .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .bodywebsite .offset-xxl-6 { + margin-left: 50%; + } + + .bodywebsite .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .bodywebsite .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .bodywebsite .offset-xxl-9 { + margin-left: 75%; + } + + .bodywebsite .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .bodywebsite .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .bodywebsite .g-xxl-0, + .bodywebsite .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .bodywebsite .g-xxl-1, + .bodywebsite .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .bodywebsite .g-xxl-2, + .bodywebsite .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .bodywebsite .g-xxl-3, + .bodywebsite .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .bodywebsite .g-xxl-4, + .bodywebsite .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .bodywebsite .g-xxl-5, + .bodywebsite .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} + +.bodywebsite .table { + --bs-table-color: var(--bs-body-color); + --bs-table-bg: transparent; + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-body-color); + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: var(--bs-body-color); + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: var(--bs-body-color); + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: var(--bs-table-color); + vertical-align: top; + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} + +.bodywebsite .table > tbody { + vertical-align: inherit; +} + +.bodywebsite .table > thead { + vertical-align: bottom; +} + +.bodywebsite .table-group-divider { + border-top: 2px solid currentcolor; +} + +.bodywebsite .caption-top { + caption-side: top; +} + +.bodywebsite .table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.bodywebsite .table-bordered > :not(caption) > * { + border-width: 1px 0; +} + +.bodywebsite .table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.bodywebsite .table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.bodywebsite .table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.bodywebsite .table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.bodywebsite .table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.bodywebsite .table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.bodywebsite .table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #bacbe6; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #cbccce; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #bcd0c7; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #badce3; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #e6dbb9; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #dfc2c4; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #dfe0e1; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #373b3e; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.bodywebsite .table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .bodywebsite .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +.bodywebsite .form-label { + margin-bottom: 0.5rem; +} + +.bodywebsite .col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.bodywebsite .col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.bodywebsite .col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.bodywebsite .form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.bodywebsite .form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control { + transition: none; + } +} + +.bodywebsite .form-control[type=file] { + overflow: hidden; +} + +.bodywebsite .form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-control::-webkit-date-and-time-value { + height: 1.5em; +} + +.bodywebsite .form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.bodywebsite .form-control:disabled { + background-color: #e9ecef; + opacity: 1; +} + +.bodywebsite .form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.bodywebsite .form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } + + .bodywebsite .form-control::file-selector-button { + transition: none; + } +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} + +.bodywebsite .form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.bodywebsite .form-control-plaintext:focus { + outline: 0; +} + +.bodywebsite .form-control-plaintext.form-control-sm, .bodywebsite .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.bodywebsite .form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.bodywebsite .form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite .form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +.bodywebsite textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); +} + +.bodywebsite textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem; +} + +.bodywebsite .form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} + +.bodywebsite .form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color::-webkit-color-swatch { + border-radius: 0.375rem; +} + +.bodywebsite .form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); +} + +.bodywebsite .form-control-color.form-control-lg { + height: calc(1.5em + 1rem + 2px); +} + +.bodywebsite .form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-select { + transition: none; + } +} + +.bodywebsite .form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-select[multiple], .bodywebsite .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} + +.bodywebsite .form-select:disabled { + background-color: #e9ecef; +} + +.bodywebsite .form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.bodywebsite .form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} + +.bodywebsite .form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.bodywebsite .form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} + +.bodywebsite .form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.bodywebsite .form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} + +.bodywebsite .form-check-input[type=checkbox] { + border-radius: 0.25em; +} + +.bodywebsite .form-check-input[type=radio] { + border-radius: 50%; +} + +.bodywebsite .form-check-input:active { + filter: brightness(90%); +} + +.bodywebsite .form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} + +.bodywebsite .form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} + +.bodywebsite .form-check-input[disabled] ~ .form-check-label, .bodywebsite .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.bodywebsite .form-switch { + padding-left: 2.5em; +} + +.bodywebsite .form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-switch .form-check-input { + transition: none; + } +} + +.bodywebsite .form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.bodywebsite .form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} + +.bodywebsite .form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.bodywebsite .form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.bodywebsite .btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.bodywebsite .btn-check[disabled] + .btn, .bodywebsite .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +.bodywebsite .form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.bodywebsite .form-range:focus { + outline: 0; +} + +.bodywebsite .form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.bodywebsite .form-range::-moz-focus-outer { + border: 0; +} + +.bodywebsite .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.bodywebsite .form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} + +.bodywebsite .form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.bodywebsite .form-range:disabled { + pointer-events: none; +} + +.bodywebsite .form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.bodywebsite .form-floating { + position: relative; +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext, + .bodywebsite .form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} + +.bodywebsite .form-floating > label { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .form-floating > label { + transition: none; + } +} + +.bodywebsite .form-floating > .form-control, + .bodywebsite .form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} + +.bodywebsite .form-floating > .form-control::-moz-placeholder, .bodywebsite .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control::placeholder, + .bodywebsite .form-floating > .form-control-plaintext::placeholder { + color: transparent; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown), .bodywebsite .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:focus, .bodywebsite .form-floating > .form-control:not(:placeholder-shown), + .bodywebsite .form-floating > .form-control-plaintext:focus, + .bodywebsite .form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill, + .bodywebsite .form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} + +.bodywebsite .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:focus ~ label, + .bodywebsite .form-floating > .form-control:not(:placeholder-shown) ~ label, + .bodywebsite .form-floating > .form-control-plaintext ~ label, + .bodywebsite .form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.bodywebsite .form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} + +.bodywebsite .input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.bodywebsite .input-group > .form-control, + .bodywebsite .input-group > .form-select, + .bodywebsite .input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} + +.bodywebsite .input-group > .form-control:focus, + .bodywebsite .input-group > .form-select:focus, + .bodywebsite .input-group > .form-floating:focus-within { + z-index: 5; +} + +.bodywebsite .input-group .btn { + position: relative; + z-index: 2; +} + +.bodywebsite .input-group .btn:focus { + z-index: 5; +} + +.bodywebsite .input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.375rem; +} + +.bodywebsite .input-group-lg > .form-control, + .bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-lg > .input-group-text, + .bodywebsite .input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.bodywebsite .input-group-sm > .form-control, + .bodywebsite .input-group-sm > .form-select, + .bodywebsite .input-group-sm > .input-group-text, + .bodywebsite .input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.bodywebsite .input-group-lg > .form-select, + .bodywebsite .input-group-sm > .form-select { + padding-right: 3rem; +} + +.bodywebsite .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, + .bodywebsite .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), + .bodywebsite .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, + .bodywebsite .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .input-group > .form-floating:not(:first-child) > .form-control, + .bodywebsite .input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.bodywebsite .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :valid ~ .valid-feedback, + .bodywebsite .was-validated :valid ~ .valid-tooltip, + .bodywebsite .is-valid ~ .valid-feedback, + .bodywebsite .is-valid ~ .valid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:valid, .bodywebsite .form-control.is-valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:valid:focus, .bodywebsite .form-control.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:valid, .bodywebsite textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:valid, .bodywebsite .form-select.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-select:valid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:valid:not([multiple])[size="1"], .bodywebsite .form-select.is-valid:not([multiple]):not([size]), .bodywebsite .form-select.is-valid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:valid:focus, .bodywebsite .form-select.is-valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-control-color:valid, .bodywebsite .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:valid, .bodywebsite .form-check-input.is-valid { + border-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:checked, .bodywebsite .form-check-input.is-valid:checked { + background-color: #198754; +} + +.bodywebsite .was-validated .form-check-input:valid:focus, .bodywebsite .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.bodywebsite .was-validated .form-check-input:valid ~ .form-check-label, .bodywebsite .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.bodywebsite .form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):valid, .bodywebsite .input-group > .form-control:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):valid, + .bodywebsite .input-group > .form-select:not(:focus).is-valid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):valid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.bodywebsite .invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.bodywebsite .invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.375rem; +} + +.bodywebsite .was-validated :invalid ~ .invalid-feedback, + .bodywebsite .was-validated :invalid ~ .invalid-tooltip, + .bodywebsite .is-invalid ~ .invalid-feedback, + .bodywebsite .is-invalid ~ .invalid-tooltip { + display: block; +} + +.bodywebsite .was-validated .form-control:invalid, .bodywebsite .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-control:invalid:focus, .bodywebsite .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated textarea.form-control:invalid, .bodywebsite textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.bodywebsite .was-validated .form-select:invalid, .bodywebsite .form-select.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-select:invalid:not([multiple]):not([size]), .bodywebsite .was-validated .form-select:invalid:not([multiple])[size="1"], .bodywebsite .form-select.is-invalid:not([multiple]):not([size]), .bodywebsite .form-select.is-invalid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.bodywebsite .was-validated .form-select:invalid:focus, .bodywebsite .form-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-control-color:invalid, .bodywebsite .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.bodywebsite .was-validated .form-check-input:invalid, .bodywebsite .form-check-input.is-invalid { + border-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:checked, .bodywebsite .form-check-input.is-invalid:checked { + background-color: #dc3545; +} + +.bodywebsite .was-validated .form-check-input:invalid:focus, .bodywebsite .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.bodywebsite .was-validated .form-check-input:invalid ~ .form-check-label, .bodywebsite .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.bodywebsite .form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.bodywebsite .was-validated .input-group > .form-control:not(:focus):invalid, .bodywebsite .input-group > .form-control:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-select:not(:focus):invalid, + .bodywebsite .input-group > .form-select:not(:focus).is-invalid, + .bodywebsite .was-validated .input-group > .form-floating:not(:focus-within):invalid, + .bodywebsite .input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.bodywebsite .btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: #212529; + --bs-btn-bg: transparent; + --bs-btn-border-width: 1px; + --bs-btn-border-color: transparent; + --bs-btn-border-radius: 0.375rem; + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .btn { + transition: none; + } +} + +.bodywebsite :not(.btn-check) + .btn:hover, .bodywebsite .btn:first-child:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} + +.bodywebsite .btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn-check:checked + .btn, .bodywebsite :not(.btn-check) + .btn:active, .bodywebsite .btn:first-child:active, .bodywebsite .btn.active, .bodywebsite .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} + +.bodywebsite .btn-check:checked + .btn:focus-visible, .bodywebsite :not(.btn-check) + .btn:active:focus-visible, .bodywebsite .btn:first-child:active:focus-visible, .bodywebsite .btn.active:focus-visible, .bodywebsite .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} + +.bodywebsite .btn:disabled, .bodywebsite .btn.disabled, .bodywebsite fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.bodywebsite .btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; +} + +.bodywebsite .btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; +} + +.bodywebsite .btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.bodywebsite .btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.bodywebsite .btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.bodywebsite .btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.bodywebsite .btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.bodywebsite .btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.bodywebsite .btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.bodywebsite .btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.bodywebsite .btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: none; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; +} + +.bodywebsite .btn-link:focus-visible { + color: var(--bs-btn-color); +} + +.bodywebsite .btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.bodywebsite .btn-lg, .bodywebsite .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: 0.5rem; +} + +.bodywebsite .btn-sm, .bodywebsite .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: 0.25rem; +} + +.bodywebsite .fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .fade { + transition: none; + } +} + +.bodywebsite .fade:not(.show) { + opacity: 0; +} + +.bodywebsite .collapse:not(.show) { + display: none; +} + +.bodywebsite .collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing { + transition: none; + } +} + +.bodywebsite .collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .collapsing.collapse-horizontal { + transition: none; + } +} + +.bodywebsite .dropup, + .bodywebsite .dropend, + .bodywebsite .dropdown, + .bodywebsite .dropstart, + .bodywebsite .dropup-center, + .bodywebsite .dropdown-center { + position: relative; +} + +.bodywebsite .dropdown-toggle { + white-space: nowrap; +} + +.bodywebsite .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: #212529; + --bs-dropdown-bg: #fff; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: 0.375rem; + --bs-dropdown-border-width: 1px; + --bs-dropdown-inner-border-radius: calc(0.375rem - 1px); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-dropdown-link-color: #212529; + --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-bg: #e9ecef; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); +} + +.bodywebsite .dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropdown-menu-start { + --bs-position: start; +} + +.bodywebsite .dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.bodywebsite .dropdown-menu-end { + --bs-position: end; +} + +.bodywebsite .dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .bodywebsite .dropdown-menu-sm-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-sm-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .bodywebsite .dropdown-menu-md-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-md-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .bodywebsite .dropdown-menu-lg-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-lg-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .bodywebsite .dropdown-menu-xl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +@media (min-width: 1400px) { + .bodywebsite .dropdown-menu-xxl-start { + --bs-position: start; + } + + .bodywebsite .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .bodywebsite .dropdown-menu-xxl-end { + --bs-position: end; + } + + .bodywebsite .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} + +.bodywebsite .dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.bodywebsite .dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.bodywebsite .dropend .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.bodywebsite .dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.bodywebsite .dropstart .dropdown-toggle::after { + display: none; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.bodywebsite .dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.bodywebsite .dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.bodywebsite .dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.bodywebsite .dropdown-item:hover, .bodywebsite .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} + +.bodywebsite .dropdown-item.active, .bodywebsite .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} + +.bodywebsite .dropdown-item.disabled, .bodywebsite .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.bodywebsite .dropdown-menu.show { + display: block; +} + +.bodywebsite .dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.bodywebsite .dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.bodywebsite .dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.bodywebsite .btn-group, + .bodywebsite .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.bodywebsite .btn-group > .btn, + .bodywebsite .btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.bodywebsite .btn-group > .btn-check:checked + .btn, + .bodywebsite .btn-group > .btn-check:focus + .btn, + .bodywebsite .btn-group > .btn:hover, + .bodywebsite .btn-group > .btn:focus, + .bodywebsite .btn-group > .btn:active, + .bodywebsite .btn-group > .btn.active, + .bodywebsite .btn-group-vertical > .btn-check:checked + .btn, + .bodywebsite .btn-group-vertical > .btn-check:focus + .btn, + .bodywebsite .btn-group-vertical > .btn:hover, + .bodywebsite .btn-group-vertical > .btn:focus, + .bodywebsite .btn-group-vertical > .btn:active, + .bodywebsite .btn-group-vertical > .btn.active { + z-index: 1; +} + +.bodywebsite .btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.bodywebsite .btn-toolbar .input-group { + width: auto; +} + +.bodywebsite .btn-group { + border-radius: 0.375rem; +} + +.bodywebsite .btn-group > :not(.btn-check:first-child) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.bodywebsite .btn-group > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group > .btn.dropdown-toggle-split:first-child, + .bodywebsite .btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.bodywebsite .btn-group > .btn:nth-child(n+3), + .bodywebsite .btn-group > :not(.btn-check) + .btn, + .bodywebsite .btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.bodywebsite .dropdown-toggle-split::after, .bodywebsite .dropup .dropdown-toggle-split::after, .bodywebsite .dropend .dropdown-toggle-split::after { + margin-left: 0; +} + +.bodywebsite .dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.bodywebsite .btn-sm + .dropdown-toggle-split, .bodywebsite .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.bodywebsite .btn-lg + .dropdown-toggle-split, .bodywebsite .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.bodywebsite .btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.bodywebsite .btn-group-vertical > .btn, + .bodywebsite .btn-group-vertical > .btn-group { + width: 100%; +} + +.bodywebsite .btn-group-vertical > .btn:not(:first-child), + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.bodywebsite .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), + .bodywebsite .btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.bodywebsite .btn-group-vertical > .btn ~ .btn, + .bodywebsite .btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .nav-link { + transition: none; + } +} + +.bodywebsite .nav-link:hover, .bodywebsite .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} + +.bodywebsite .nav-link.disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.bodywebsite .nav-tabs { + --bs-nav-tabs-border-width: 1px; + --bs-nav-tabs-border-color: #dee2e6; + --bs-nav-tabs-border-radius: 0.375rem; + --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6; + --bs-nav-tabs-link-active-color: #495057; + --bs-nav-tabs-link-active-bg: #fff; + --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff; + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} + +.bodywebsite .nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + background: none; + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} + +.bodywebsite .nav-tabs .nav-link:hover, .bodywebsite .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} + +.bodywebsite .nav-tabs .nav-link.disabled, .bodywebsite .nav-tabs .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-tabs .nav-link.active, + .bodywebsite .nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} + +.bodywebsite .nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bodywebsite .nav-pills { + --bs-nav-pills-border-radius: 0.375rem; + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} + +.bodywebsite .nav-pills .nav-link { + background: none; + border: 0; + border-radius: var(--bs-nav-pills-border-radius); +} + +.bodywebsite .nav-pills .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} + +.bodywebsite .nav-pills .nav-link.active, + .bodywebsite .nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.bodywebsite .nav-fill > .nav-link, + .bodywebsite .nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.bodywebsite .nav-justified > .nav-link, + .bodywebsite .nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.bodywebsite .nav-fill .nav-item .nav-link, + .bodywebsite .nav-justified .nav-item .nav-link { + width: 100%; +} + +.bodywebsite .tab-content > .tab-pane { + display: none; +} + +.bodywebsite .tab-content > .active { + display: block; +} + +.bodywebsite .navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(0, 0, 0, 0.55); + --bs-navbar-hover-color: rgba(0, 0, 0, 0.7); + --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3); + --bs-navbar-active-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(0, 0, 0, 0.9); + --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --bs-navbar-toggler-border-radius: 0.375rem; + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} + +.bodywebsite .navbar > .container, + .bodywebsite .navbar > .container-fluid, + .bodywebsite .navbar > .container-sm, + .bodywebsite .navbar > .container-md, + .bodywebsite .navbar > .container-lg, + .bodywebsite .navbar > .container-xl, + .bodywebsite .navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} + +.bodywebsite .navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; +} + +.bodywebsite .navbar-brand:hover, .bodywebsite .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.bodywebsite .navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.bodywebsite .navbar-nav .show > .nav-link, + .bodywebsite .navbar-nav .nav-link.active { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-nav .dropdown-menu { + position: static; +} + +.bodywebsite .navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} + +.bodywebsite .navbar-text a, + .bodywebsite .navbar-text a:hover, + .bodywebsite .navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.bodywebsite .navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.bodywebsite .navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .navbar-toggler { + transition: none; + } +} + +.bodywebsite .navbar-toggler:hover { + text-decoration: none; +} + +.bodywebsite .navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.bodywebsite .navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.bodywebsite .navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .bodywebsite .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-sm .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-md .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-md .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-lg .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + + .bodywebsite .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + + .bodywebsite .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + + .bodywebsite .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .bodywebsite .navbar-expand-xxl .navbar-toggler { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + + .bodywebsite .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} + +.bodywebsite .navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} + +.bodywebsite .navbar-expand .navbar-nav { + flex-direction: row; +} + +.bodywebsite .navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.bodywebsite .navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} + +.bodywebsite .navbar-expand .navbar-nav-scroll { + overflow: visible; +} + +.bodywebsite .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.bodywebsite .navbar-expand .navbar-toggler { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-header { + display: none; +} + +.bodywebsite .navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.bodywebsite .navbar-dark { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.bodywebsite .card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-border-width: 1px; + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: 0.375rem; + --bs-card-inner-border-radius: calc(0.375rem - 1px); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(0, 0, 0, 0.03); + --bs-card-bg: #fff; + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); +} + +.bodywebsite .card > hr { + margin-right: 0; + margin-left: 0; +} + +.bodywebsite .card > .list-group { + border-top: inherit; + border-bottom: inherit; +} + +.bodywebsite .card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card > .card-header + .list-group, + .bodywebsite .card > .list-group + .card-footer { + border-top: 0; +} + +.bodywebsite .card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.bodywebsite .card-title { + margin-bottom: var(--bs-card-title-spacer-y); +} + +.bodywebsite .card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; +} + +.bodywebsite .card-text:last-child { + margin-bottom: 0; +} + +.bodywebsite .card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.bodywebsite .card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; +} + +.bodywebsite .card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} + +.bodywebsite .card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} + +.bodywebsite .card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.bodywebsite .card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.bodywebsite .card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top, + .bodywebsite .card-img-bottom { + width: 100%; +} + +.bodywebsite .card-img, + .bodywebsite .card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-img, + .bodywebsite .card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.bodywebsite .card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} + +@media (min-width: 576px) { + .bodywebsite .card-group { + display: flex; + flex-flow: row wrap; + } + + .bodywebsite .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + + .bodywebsite .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-top, + .bodywebsite .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:last-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-top, + .bodywebsite .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + + .bodywebsite .card-group > .card:not(:first-child) .card-img-bottom, + .bodywebsite .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.bodywebsite .accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: #fff; + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: 1px; + --bs-accordion-border-radius: 0.375rem; + --bs-accordion-inner-border-radius: calc(0.375rem - 1px); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: #0c63e4; + --bs-accordion-active-bg: #e7f1ff; +} + +.bodywebsite .accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button { + transition: none; + } +} + +.bodywebsite .accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} + +.bodywebsite .accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .accordion-button::after { + transition: none; + } +} + +.bodywebsite .accordion-button:hover { + z-index: 2; +} + +.bodywebsite .accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.bodywebsite .accordion-header { + margin-bottom: 0; +} + +.bodywebsite .accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} + +.bodywebsite .accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:not(:first-of-type) { + border-top: 0; +} + +.bodywebsite .accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} + +.bodywebsite .accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.bodywebsite .accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.bodywebsite .accordion-flush .accordion-collapse { + border-width: 0; +} + +.bodywebsite .accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.bodywebsite .accordion-flush .accordion-item:first-child { + border-top: 0; +} + +.bodywebsite .accordion-flush .accordion-item:last-child { + border-bottom: 0; +} + +.bodywebsite .accordion-flush .accordion-item .accordion-button, .bodywebsite .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +.bodywebsite .breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-divider-color: #6c757d; + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: #6c757d; + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} + +.bodywebsite .breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/"); +} + +.bodywebsite .breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.bodywebsite .pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: #fff; + --bs-pagination-border-width: 1px; + --bs-pagination-border-color: #dee2e6; + --bs-pagination-border-radius: 0.375rem; + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: #e9ecef; + --bs-pagination-hover-border-color: #dee2e6; + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: #e9ecef; + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: #6c757d; + --bs-pagination-disabled-bg: #fff; + --bs-pagination-disabled-border-color: #dee2e6; + display: flex; + padding-left: 0; + list-style: none; +} + +.bodywebsite .page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .page-link { + transition: none; + } +} + +.bodywebsite .page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} + +.bodywebsite .page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} + +.bodywebsite .page-link.active, .bodywebsite .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} + +.bodywebsite .page-link.disabled, .bodywebsite .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.bodywebsite .page-item:not(:first-child) .page-link { + margin-left: -1px; +} + +.bodywebsite .page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.bodywebsite .pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: 0.5rem; +} + +.bodywebsite .pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: 0.25rem; +} + +.bodywebsite .badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: 0.375rem; + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); +} + +.bodywebsite .badge:empty { + display: none; +} + +.bodywebsite .btn .badge { + position: relative; + top: -1px; +} + +.bodywebsite .alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: 1px solid var(--bs-alert-border-color); + --bs-alert-border-radius: 0.375rem; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.bodywebsite .alert-heading { + color: inherit; +} + +.bodywebsite .alert-link { + font-weight: 700; +} + +.bodywebsite .alert-dismissible { + padding-right: 3rem; +} + +.bodywebsite .alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.bodywebsite .alert-primary { + --bs-alert-color: #084298; + --bs-alert-bg: #cfe2ff; + --bs-alert-border-color: #b6d4fe; +} + +.bodywebsite .alert-primary .alert-link { + color: #06357a; +} + +.bodywebsite .alert-secondary { + --bs-alert-color: #41464b; + --bs-alert-bg: #e2e3e5; + --bs-alert-border-color: #d3d6d8; +} + +.bodywebsite .alert-secondary .alert-link { + color: #34383c; +} + +.bodywebsite .alert-success { + --bs-alert-color: #0f5132; + --bs-alert-bg: #d1e7dd; + --bs-alert-border-color: #badbcc; +} + +.bodywebsite .alert-success .alert-link { + color: #0c4128; +} + +.bodywebsite .alert-info { + --bs-alert-color: #055160; + --bs-alert-bg: #cff4fc; + --bs-alert-border-color: #b6effb; +} + +.bodywebsite .alert-info .alert-link { + color: #04414d; +} + +.bodywebsite .alert-warning { + --bs-alert-color: #664d03; + --bs-alert-bg: #fff3cd; + --bs-alert-border-color: #ffecb5; +} + +.bodywebsite .alert-warning .alert-link { + color: #523e02; +} + +.bodywebsite .alert-danger { + --bs-alert-color: #842029; + --bs-alert-bg: #f8d7da; + --bs-alert-border-color: #f5c2c7; +} + +.bodywebsite .alert-danger .alert-link { + color: #6a1a21; +} + +.bodywebsite .alert-light { + --bs-alert-color: #636464; + --bs-alert-bg: #fefefe; + --bs-alert-border-color: #fdfdfe; +} + +.bodywebsite .alert-light .alert-link { + color: #4f5050; +} + +.bodywebsite .alert-dark { + --bs-alert-color: #141619; + --bs-alert-bg: #d3d3d4; + --bs-alert-border-color: #bcbebf; +} + +.bodywebsite .alert-dark .alert-link { + color: #101214; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} + +.bodywebsite .progress { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: #e9ecef; + --bs-progress-border-radius: 0.375rem; + --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); +} + +.bodywebsite .progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar { + transition: none; + } +} + +.bodywebsite .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.bodywebsite .progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.bodywebsite .list-group { + --bs-list-group-color: #212529; + --bs-list-group-bg: #fff; + --bs-list-group-border-color: rgba(0, 0, 0, 0.125); + --bs-list-group-border-width: 1px; + --bs-list-group-border-radius: 0.375rem; + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: #495057; + --bs-list-group-action-hover-color: #495057; + --bs-list-group-action-hover-bg: #f8f9fa; + --bs-list-group-action-active-color: #212529; + --bs-list-group-action-active-bg: #e9ecef; + --bs-list-group-disabled-color: #6c757d; + --bs-list-group-disabled-bg: #fff; + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); +} + +.bodywebsite .list-group-numbered { + list-style-type: none; + counter-reset: section; +} + +.bodywebsite .list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.bodywebsite .list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} + +.bodywebsite .list-group-item-action:hover, .bodywebsite .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} + +.bodywebsite .list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.bodywebsite .list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} + +.bodywebsite .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.bodywebsite .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} + +.bodywebsite .list-group-item.disabled, .bodywebsite .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} + +.bodywebsite .list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} + +.bodywebsite .list-group-item + .list-group-item { + border-top-width: 0; +} + +.bodywebsite .list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-horizontal { + flex-direction: row; +} + +.bodywebsite .list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item.active { + margin-top: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} + +.bodywebsite .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .bodywebsite .list-group-horizontal-sm { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 768px) { + .bodywebsite .list-group-horizontal-md { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 992px) { + .bodywebsite .list-group-horizontal-lg { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1200px) { + .bodywebsite .list-group-horizontal-xl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +@media (min-width: 1400px) { + .bodywebsite .list-group-horizontal-xxl { + flex-direction: row; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + + .bodywebsite .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} + +.bodywebsite .list-group-flush { + border-radius: 0; +} + +.bodywebsite .list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} + +.bodywebsite .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.bodywebsite .list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} + +.bodywebsite .list-group-item-primary.list-group-item-action:hover, .bodywebsite .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} + +.bodywebsite .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} + +.bodywebsite .list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action:hover, .bodywebsite .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} + +.bodywebsite .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.bodywebsite .list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} + +.bodywebsite .list-group-item-success.list-group-item-action:hover, .bodywebsite .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} + +.bodywebsite .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.bodywebsite .list-group-item-info { + color: #055160; + background-color: #cff4fc; +} + +.bodywebsite .list-group-item-info.list-group-item-action:hover, .bodywebsite .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} + +.bodywebsite .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.bodywebsite .list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} + +.bodywebsite .list-group-item-warning.list-group-item-action:hover, .bodywebsite .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} + +.bodywebsite .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.bodywebsite .list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} + +.bodywebsite .list-group-item-danger.list-group-item-action:hover, .bodywebsite .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} + +.bodywebsite .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.bodywebsite .list-group-item-light { + color: #636464; + background-color: #fefefe; +} + +.bodywebsite .list-group-item-light.list-group-item-action:hover, .bodywebsite .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} + +.bodywebsite .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.bodywebsite .list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} + +.bodywebsite .list-group-item-dark.list-group-item-action:hover, .bodywebsite .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} + +.bodywebsite .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.bodywebsite .btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: 0.5; +} + +.bodywebsite .btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} + +.bodywebsite .btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} + +.bodywebsite .btn-close:disabled, .bodywebsite .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.bodywebsite .btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.bodywebsite .toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-bg: rgba(255, 255, 255, 0.85); + --bs-toast-border-width: 1px; + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: 0.375rem; + --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-toast-header-color: #6c757d; + --bs-toast-header-bg: rgba(255, 255, 255, 0.85); + --bs-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} + +.bodywebsite .toast.showing { + opacity: 0; +} + +.bodywebsite .toast:not(.show) { + display: none; +} + +.bodywebsite .toast-container { + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} + +.bodywebsite .toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.bodywebsite .toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} + +.bodywebsite .toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.bodywebsite .toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.bodywebsite .modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-bg: #fff; + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: 1px; + --bs-modal-border-radius: 0.5rem; + --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-modal-inner-border-radius: calc(0.5rem - 1px); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: 1px; + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: 1px; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.bodywebsite .modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} + +.bodywebsite .modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .modal.fade .modal-dialog { + transition: none; + } +} + +.bodywebsite .modal.show .modal-dialog { + transform: none; +} + +.bodywebsite .modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.bodywebsite .modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} + +.bodywebsite .modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.bodywebsite .modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.bodywebsite .modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.bodywebsite .modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} + +.bodywebsite .modal-backdrop.fade { + opacity: 0; +} + +.bodywebsite .modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.bodywebsite .modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.bodywebsite .modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.bodywebsite .modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.bodywebsite .modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} + +.bodywebsite .modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .bodywebsite .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + + .bodywebsite .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + + .bodywebsite .modal-sm { + --bs-modal-width: 300px; + } +} + +@media (min-width: 992px) { + .bodywebsite .modal-lg, + .bodywebsite .modal-xl { + --bs-modal-width: 800px; + } +} + +@media (min-width: 1200px) { + .bodywebsite .modal-xl { + --bs-modal-width: 1140px; + } +} + +.bodywebsite .modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} + +.bodywebsite .modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-header, + .bodywebsite .modal-fullscreen .modal-footer { + border-radius: 0; +} + +.bodywebsite .modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .bodywebsite .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-header, + .bodywebsite .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-header, + .bodywebsite .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-header, + .bodywebsite .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-header, + .bodywebsite .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-header, + .bodywebsite .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + + .bodywebsite .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} + +.bodywebsite .tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: #fff; + --bs-tooltip-bg: #000; + --bs-tooltip-border-radius: 0.375rem; + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + padding: var(--bs-tooltip-arrow-height); + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} + +.bodywebsite .tooltip.show { + opacity: var(--bs-tooltip-opacity); +} + +.bodywebsite .tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} + +.bodywebsite .tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} + +.bodywebsite .bs-tooltip-top .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-end .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} + +.bodywebsite .bs-tooltip-bottom .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} + +.bodywebsite .bs-tooltip-start .tooltip-arrow::before, .bodywebsite .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +.bodywebsite .tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.bodywebsite .popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: #fff; + --bs-popover-border-width: 1px; + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: 0.5rem; + --bs-popover-inner-border-radius: calc(0.5rem - 1px); + --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-bg: #f0f0f0; + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: #212529; + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} + +.bodywebsite .popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} + +.bodywebsite .popover .popover-arrow::before, .bodywebsite .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-top > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-top > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-end > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} + +.bodywebsite .bs-popover-end > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-end > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-bottom > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} + +.bodywebsite .bs-popover-bottom .popover-header::before, .bodywebsite .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +.bodywebsite .bs-popover-start > .popover-arrow, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} + +.bodywebsite .bs-popover-start > .popover-arrow::before, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} + +.bodywebsite .bs-popover-start > .popover-arrow::after, .bodywebsite .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +.bodywebsite .popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} + +.bodywebsite .popover-header:empty { + display: none; +} + +.bodywebsite .popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.bodywebsite .carousel { + position: relative; +} + +.bodywebsite .carousel.pointer-event { + touch-action: pan-y; +} + +.bodywebsite .carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.bodywebsite .carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-item { + transition: none; + } +} + +.bodywebsite .carousel-item.active, + .bodywebsite .carousel-item-next, + .bodywebsite .carousel-item-prev { + display: block; +} + +.bodywebsite .carousel-item-next:not(.carousel-item-start), + .bodywebsite .active.carousel-item-end { + transform: translateX(100%); +} + +.bodywebsite .carousel-item-prev:not(.carousel-item-end), + .bodywebsite .active.carousel-item-start { + transform: translateX(-100%); +} + +.bodywebsite .carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.bodywebsite .carousel-fade .carousel-item.active, + .bodywebsite .carousel-fade .carousel-item-next.carousel-item-start, + .bodywebsite .carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} + +.bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-fade .active.carousel-item-start, + .bodywebsite .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-control-prev, + .bodywebsite .carousel-control-next { + transition: none; + } +} + +.bodywebsite .carousel-control-prev:hover, .bodywebsite .carousel-control-prev:focus, + .bodywebsite .carousel-control-next:hover, + .bodywebsite .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.bodywebsite .carousel-control-prev { + left: 0; +} + +.bodywebsite .carousel-control-next { + right: 0; +} + +.bodywebsite .carousel-control-prev-icon, + .bodywebsite .carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.bodywebsite .carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.bodywebsite .carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} + +.bodywebsite .carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .carousel-indicators [data-bs-target] { + transition: none; + } +} + +.bodywebsite .carousel-indicators .active { + opacity: 1; +} + +.bodywebsite .carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.bodywebsite .carousel-dark .carousel-control-prev-icon, + .bodywebsite .carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} + +.bodywebsite .carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} + +.bodywebsite .carousel-dark .carousel-caption { + color: #000; +} + +.bodywebsite .spinner-grow, + .bodywebsite .spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + -webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +.bodywebsite .spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.bodywebsite .spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + + 50% { + opacity: 1; + transform: none; + } +} + +.bodywebsite .spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.bodywebsite .spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .spinner-border, + .bodywebsite .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} + +.bodywebsite .offcanvas, .bodywebsite .offcanvas-xxl, .bodywebsite .offcanvas-xl, .bodywebsite .offcanvas-lg, .bodywebsite .offcanvas-md, .bodywebsite .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-bg: #fff; + --bs-offcanvas-border-width: 1px; + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-sm { + transition: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 575.98px) { + .bodywebsite .offcanvas-sm.showing, .bodywebsite .offcanvas-sm.hiding, .bodywebsite .offcanvas-sm.show { + visibility: visible; + } +} + +@media (min-width: 576px) { + .bodywebsite .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-sm .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-md { + transition: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 767.98px) { + .bodywebsite .offcanvas-md.showing, .bodywebsite .offcanvas-md.hiding, .bodywebsite .offcanvas-md.show { + visibility: visible; + } +} + +@media (min-width: 768px) { + .bodywebsite .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-md .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-lg { + transition: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 991.98px) { + .bodywebsite .offcanvas-lg.showing, .bodywebsite .offcanvas-lg.hiding, .bodywebsite .offcanvas-lg.show { + visibility: visible; + } +} + +@media (min-width: 992px) { + .bodywebsite .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-lg .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xl { + transition: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1199.98px) { + .bodywebsite .offcanvas-xl.showing, .bodywebsite .offcanvas-xl.hiding, .bodywebsite .offcanvas-xl.show { + visibility: visible; + } +} + +@media (min-width: 1200px) { + .bodywebsite .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} + +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas-xxl { + transition: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} + +@media (max-width: 1399.98px) { + .bodywebsite .offcanvas-xxl.showing, .bodywebsite .offcanvas-xxl.hiding, .bodywebsite .offcanvas-xxl.show { + visibility: visible; + } +} + +@media (min-width: 1400px) { + .bodywebsite .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + + .bodywebsite .offcanvas-xxl .offcanvas-header { + display: none; + } + + .bodywebsite .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.bodywebsite .offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .bodywebsite .offcanvas { + transition: none; + } +} + +.bodywebsite .offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} + +.bodywebsite .offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} + +.bodywebsite .offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} + +.bodywebsite .offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.show:not(.hiding) { + transform: none; +} + +.bodywebsite .offcanvas.showing, .bodywebsite .offcanvas.hiding, .bodywebsite .offcanvas.show { + visibility: visible; +} + +.bodywebsite .offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.bodywebsite .offcanvas-backdrop.fade { + opacity: 0; +} + +.bodywebsite .offcanvas-backdrop.show { + opacity: 0.5; +} + +.bodywebsite .offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} + +.bodywebsite .offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.bodywebsite .offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.bodywebsite .offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.bodywebsite .placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} + +.bodywebsite .placeholder.btn::before { + display: inline-block; + content: ""; +} + +.bodywebsite .placeholder-xs { + min-height: 0.6em; +} + +.bodywebsite .placeholder-sm { + min-height: 0.8em; +} + +.bodywebsite .placeholder-lg { + min-height: 1.2em; +} + +.bodywebsite .placeholder-glow .placeholder { + -webkit-animation: placeholder-glow 2s ease-in-out infinite; + animation: placeholder-glow 2s ease-in-out infinite; +} + +@-webkit-keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +.bodywebsite .placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-animation: placeholder-wave 2s linear infinite; + animation: placeholder-wave 2s linear infinite; +} + +@-webkit-keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +.bodywebsite .clearfix::after { + display: block; + clear: both; + content: ""; +} + +.bodywebsite .text-bg-primary { + color: #fff !important; + background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-secondary { + color: #fff !important; + background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-success { + color: #fff !important; + background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-info { + color: #000 !important; + background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-warning { + color: #000 !important; + background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-danger { + color: #fff !important; + background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-light { + color: #000 !important; + background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .text-bg-dark { + color: #fff !important; + background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; +} + +.bodywebsite .link-primary { + color: #0d6efd !important; +} + +.bodywebsite .link-primary:hover, .bodywebsite .link-primary:focus { + color: #0a58ca !important; +} + +.bodywebsite .link-secondary { + color: #6c757d !important; +} + +.bodywebsite .link-secondary:hover, .bodywebsite .link-secondary:focus { + color: #565e64 !important; +} + +.bodywebsite .link-success { + color: #198754 !important; +} + +.bodywebsite .link-success:hover, .bodywebsite .link-success:focus { + color: #146c43 !important; +} + +.bodywebsite .link-info { + color: #0dcaf0 !important; +} + +.bodywebsite .link-info:hover, .bodywebsite .link-info:focus { + color: #3dd5f3 !important; +} + +.bodywebsite .link-warning { + color: #ffc107 !important; +} + +.bodywebsite .link-warning:hover, .bodywebsite .link-warning:focus { + color: #ffcd39 !important; +} + +.bodywebsite .link-danger { + color: #dc3545 !important; +} + +.bodywebsite .link-danger:hover, .bodywebsite .link-danger:focus { + color: #b02a37 !important; +} + +.bodywebsite .link-light { + color: #f8f9fa !important; +} + +.bodywebsite .link-light:hover, .bodywebsite .link-light:focus { + color: #f9fafb !important; +} + +.bodywebsite .link-dark { + color: #212529 !important; +} + +.bodywebsite .link-dark:hover, .bodywebsite .link-dark:focus { + color: #1a1e21 !important; +} + +.bodywebsite .ratio { + position: relative; + width: 100%; +} + +.bodywebsite .ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} + +.bodywebsite .ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.bodywebsite .ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.bodywebsite .ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.bodywebsite .ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.bodywebsite .ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.bodywebsite .fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.bodywebsite .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.bodywebsite .sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .bodywebsite .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 768px) { + .bodywebsite .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 992px) { + .bodywebsite .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1200px) { + .bodywebsite .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +@media (min-width: 1400px) { + .bodywebsite .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + + .bodywebsite .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} + +.bodywebsite .hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.bodywebsite .vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.bodywebsite .visually-hidden, + .bodywebsite .visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.bodywebsite .stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.bodywebsite .text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.bodywebsite .vr { + display: inline-block; + align-self: stretch; + width: 1px; + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.bodywebsite .align-baseline { + vertical-align: baseline !important; +} + +.bodywebsite .align-top { + vertical-align: top !important; +} + +.bodywebsite .align-middle { + vertical-align: middle !important; +} + +.bodywebsite .align-bottom { + vertical-align: bottom !important; +} + +.bodywebsite .align-text-bottom { + vertical-align: text-bottom !important; +} + +.bodywebsite .align-text-top { + vertical-align: text-top !important; +} + +.bodywebsite .float-start { + float: left !important; +} + +.bodywebsite .float-end { + float: right !important; +} + +.bodywebsite .float-none { + float: none !important; +} + +.bodywebsite .opacity-0 { + opacity: 0 !important; +} + +.bodywebsite .opacity-25 { + opacity: 0.25 !important; +} + +.bodywebsite .opacity-50 { + opacity: 0.5 !important; +} + +.bodywebsite .opacity-75 { + opacity: 0.75 !important; +} + +.bodywebsite .opacity-100 { + opacity: 1 !important; +} + +.bodywebsite .overflow-auto { + overflow: auto !important; +} + +.bodywebsite .overflow-hidden { + overflow: hidden !important; +} + +.bodywebsite .overflow-visible { + overflow: visible !important; +} + +.bodywebsite .overflow-scroll { + overflow: scroll !important; +} + +.bodywebsite .d-inline { + display: inline !important; +} + +.bodywebsite .d-inline-block { + display: inline-block !important; +} + +.bodywebsite .d-block { + display: block !important; +} + +.bodywebsite .d-grid { + display: grid !important; +} + +.bodywebsite .d-table { + display: table !important; +} + +.bodywebsite .d-table-row { + display: table-row !important; +} + +.bodywebsite .d-table-cell { + display: table-cell !important; +} + +.bodywebsite .d-flex { + display: flex !important; +} + +.bodywebsite .d-inline-flex { + display: inline-flex !important; +} + +.bodywebsite .d-none { + display: none !important; +} + +.bodywebsite .shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.bodywebsite .shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.bodywebsite .shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.bodywebsite .shadow-none { + box-shadow: none !important; +} + +.bodywebsite .position-static { + position: static !important; +} + +.bodywebsite .position-relative { + position: relative !important; +} + +.bodywebsite .position-absolute { + position: absolute !important; +} + +.bodywebsite .position-fixed { + position: fixed !important; +} + +.bodywebsite .position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.bodywebsite .top-0 { + top: 0 !important; +} + +.bodywebsite .top-50 { + top: 50% !important; +} + +.bodywebsite .top-100 { + top: 100% !important; +} + +.bodywebsite .bottom-0 { + bottom: 0 !important; +} + +.bodywebsite .bottom-50 { + bottom: 50% !important; +} + +.bodywebsite .bottom-100 { + bottom: 100% !important; +} + +.bodywebsite .start-0 { + left: 0 !important; +} + +.bodywebsite .start-50 { + left: 50% !important; +} + +.bodywebsite .start-100 { + left: 100% !important; +} + +.bodywebsite .end-0 { + right: 0 !important; +} + +.bodywebsite .end-50 { + right: 50% !important; +} + +.bodywebsite .end-100 { + right: 100% !important; +} + +.bodywebsite .translate-middle { + transform: translate(-50%, -50%) !important; +} + +.bodywebsite .translate-middle-x { + transform: translateX(-50%) !important; +} + +.bodywebsite .translate-middle-y { + transform: translateY(-50%) !important; +} + +.bodywebsite .border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-0 { + border: 0 !important; +} + +.bodywebsite .border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-top-0 { + border-top: 0 !important; +} + +.bodywebsite .border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-end-0 { + border-right: 0 !important; +} + +.bodywebsite .border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-bottom-0 { + border-bottom: 0 !important; +} + +.bodywebsite .border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.bodywebsite .border-start-0 { + border-left: 0 !important; +} + +.bodywebsite .border-primary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-secondary { + --bs-border-opacity: 1; +} + +.bodywebsite .border-success { + --bs-border-opacity: 1; +} + +.bodywebsite .border-info { + --bs-border-opacity: 1; +} + +.bodywebsite .border-warning { + --bs-border-opacity: 1; +} + +.bodywebsite .border-danger { + --bs-border-opacity: 1; +} + +.bodywebsite .border-light { + --bs-border-opacity: 1; +} + +.bodywebsite .border-dark { + --bs-border-opacity: 1; +} + +.bodywebsite .border-white { + --bs-border-opacity: 1; +} + +.bodywebsite .border-1 { + --bs-border-width: 1px; +} + +.bodywebsite .border-2 { + --bs-border-width: 2px; +} + +.bodywebsite .border-3 { + --bs-border-width: 3px; +} + +.bodywebsite .border-4 { + --bs-border-width: 4px; +} + +.bodywebsite .border-5 { + --bs-border-width: 5px; +} + +.bodywebsite .border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.bodywebsite .border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.bodywebsite .border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.bodywebsite .border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.bodywebsite .border-opacity-100 { + --bs-border-opacity: 1; +} + +.bodywebsite .w-25 { + width: 25% !important; +} + +.bodywebsite .w-50 { + width: 50% !important; +} + +.bodywebsite .w-75 { + width: 75% !important; +} + +.bodywebsite .w-100 { + width: 100% !important; +} + +.bodywebsite .w-auto { + width: auto !important; +} + +.bodywebsite .mw-100 { + max-width: 100% !important; +} + +.bodywebsite .vw-100 { + width: 100vw !important; +} + +.bodywebsite .min-vw-100 { + min-width: 100vw !important; +} + +.bodywebsite .h-25 { + height: 25% !important; +} + +.bodywebsite .h-50 { + height: 50% !important; +} + +.bodywebsite .h-75 { + height: 75% !important; +} + +.bodywebsite .h-100 { + height: 100% !important; +} + +.bodywebsite .h-auto { + height: auto !important; +} + +.bodywebsite .mh-100 { + max-height: 100% !important; +} + +.bodywebsite .vh-100 { + height: 100vh !important; +} + +.bodywebsite .min-vh-100 { + min-height: 100vh !important; +} + +.bodywebsite .flex-fill { + flex: 1 1 auto !important; +} + +.bodywebsite .flex-row { + flex-direction: row !important; +} + +.bodywebsite .flex-column { + flex-direction: column !important; +} + +.bodywebsite .flex-row-reverse { + flex-direction: row-reverse !important; +} + +.bodywebsite .flex-column-reverse { + flex-direction: column-reverse !important; +} + +.bodywebsite .flex-grow-0 { + flex-grow: 0 !important; +} + +.bodywebsite .flex-grow-1 { + flex-grow: 1 !important; +} + +.bodywebsite .flex-shrink-0 { + flex-shrink: 0 !important; +} + +.bodywebsite .flex-shrink-1 { + flex-shrink: 1 !important; +} + +.bodywebsite .flex-wrap { + flex-wrap: wrap !important; +} + +.bodywebsite .flex-nowrap { + flex-wrap: nowrap !important; +} + +.bodywebsite .flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.bodywebsite .justify-content-start { + justify-content: flex-start !important; +} + +.bodywebsite .justify-content-end { + justify-content: flex-end !important; +} + +.bodywebsite .justify-content-center { + justify-content: center !important; +} + +.bodywebsite .justify-content-between { + justify-content: space-between !important; +} + +.bodywebsite .justify-content-around { + justify-content: space-around !important; +} + +.bodywebsite .justify-content-evenly { + justify-content: space-evenly !important; +} + +.bodywebsite .align-items-start { + align-items: flex-start !important; +} + +.bodywebsite .align-items-end { + align-items: flex-end !important; +} + +.bodywebsite .align-items-center { + align-items: center !important; +} + +.bodywebsite .align-items-baseline { + align-items: baseline !important; +} + +.bodywebsite .align-items-stretch { + align-items: stretch !important; +} + +.bodywebsite .align-content-start { + align-content: flex-start !important; +} + +.bodywebsite .align-content-end { + align-content: flex-end !important; +} + +.bodywebsite .align-content-center { + align-content: center !important; +} + +.bodywebsite .align-content-between { + align-content: space-between !important; +} + +.bodywebsite .align-content-around { + align-content: space-around !important; +} + +.bodywebsite .align-content-stretch { + align-content: stretch !important; +} + +.bodywebsite .align-self-auto { + align-self: auto !important; +} + +.bodywebsite .align-self-start { + align-self: flex-start !important; +} + +.bodywebsite .align-self-end { + align-self: flex-end !important; +} + +.bodywebsite .align-self-center { + align-self: center !important; +} + +.bodywebsite .align-self-baseline { + align-self: baseline !important; +} + +.bodywebsite .align-self-stretch { + align-self: stretch !important; +} + +.bodywebsite .order-first { + order: -1 !important; +} + +.bodywebsite .order-0 { + order: 0 !important; +} + +.bodywebsite .order-1 { + order: 1 !important; +} + +.bodywebsite .order-2 { + order: 2 !important; +} + +.bodywebsite .order-3 { + order: 3 !important; +} + +.bodywebsite .order-4 { + order: 4 !important; +} + +.bodywebsite .order-5 { + order: 5 !important; +} + +.bodywebsite .order-last { + order: 6 !important; +} + +.bodywebsite .m-0 { + margin: 0 !important; +} + +.bodywebsite .m-1 { + margin: 0.25rem !important; + padding-left: 0px !important; +} + +.bodywebsite .m-2 { + margin: 0.5rem !important; +} + +.bodywebsite .m-3 { + margin: 1rem !important; +} + +.bodywebsite .m-4 { + margin: 1.5rem !important; +} + +.bodywebsite .m-5 { + margin: 3rem !important; +} + +.bodywebsite .m-auto { + margin: auto !important; +} + +.bodywebsite .mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.bodywebsite .mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.bodywebsite .mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.bodywebsite .mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.bodywebsite .mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.bodywebsite .mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.bodywebsite .mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.bodywebsite .my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.bodywebsite .my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.bodywebsite .my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.bodywebsite .my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.bodywebsite .my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.bodywebsite .my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.bodywebsite .my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.bodywebsite .mt-0 { + margin-top: 0 !important; +} + +.bodywebsite .mt-1 { + margin-top: 0.25rem !important; +} + +.bodywebsite .mt-2 { + margin-top: 0.5rem !important; +} + +.bodywebsite .mt-3 { + margin-top: 1rem !important; +} + +.bodywebsite .mt-4 { + margin-top: 1.5rem !important; +} + +.bodywebsite .mt-5 { + margin-top: 3rem !important; +} + +.bodywebsite .mt-auto { + margin-top: auto !important; +} + +.bodywebsite .me-0 { + margin-right: 0 !important; +} + +.bodywebsite .me-1 { + margin-right: 0.25rem !important; +} + +.bodywebsite .me-2 { + margin-right: 0.5rem !important; +} + +.bodywebsite .me-3 { + margin-right: 1rem !important; +} + +.bodywebsite .me-4 { + margin-right: 1.5rem !important; +} + +.bodywebsite .me-5 { + margin-right: 3rem !important; +} + +.bodywebsite .me-auto { + margin-right: auto !important; +} + +.bodywebsite .mb-0 { + margin-bottom: 0 !important; +} + +.bodywebsite .mb-1 { + margin-bottom: 0.25rem !important; +} + +.bodywebsite .mb-2 { + margin-bottom: 0.5rem !important; +} + +.bodywebsite .mb-3 { + margin-bottom: 1rem !important; +} + +.bodywebsite .mb-4 { + margin-bottom: 1.5rem !important; +} + +.bodywebsite .mb-5 { + margin-bottom: 3rem !important; +} + +.bodywebsite .mb-auto { + margin-bottom: auto !important; +} + +.bodywebsite .ms-0 { + margin-left: 0 !important; +} + +.bodywebsite .ms-1 { + margin-left: 0.25rem !important; +} + +.bodywebsite .ms-2 { + margin-left: 0.5rem !important; +} + +.bodywebsite .ms-3 { + margin-left: 1rem !important; +} + +.bodywebsite .ms-4 { + margin-left: 1.5rem !important; +} + +.bodywebsite .ms-5 { + margin-left: 3rem !important; +} + +.bodywebsite .ms-auto { + margin-left: auto !important; +} + +.bodywebsite .p-0 { + padding: 0 !important; +} + +.bodywebsite .p-1 { + padding: 0.25rem !important; +} + +.bodywebsite .p-2 { + padding: 0.5rem !important; +} + +.bodywebsite .p-3 { + padding: 1rem !important; +} + +.bodywebsite .p-4 { + padding: 1.5rem !important; +} + +.bodywebsite .p-5 { + padding: 3rem !important; +} + +.bodywebsite .px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.bodywebsite .px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.bodywebsite .px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.bodywebsite .px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.bodywebsite .px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.bodywebsite .px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.bodywebsite .py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.bodywebsite .py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.bodywebsite .py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.bodywebsite .py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.bodywebsite .py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.bodywebsite .py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.bodywebsite .pt-0 { + padding-top: 0 !important; +} + +.bodywebsite .pt-1 { + padding-top: 0.25rem !important; +} + +.bodywebsite .pt-2 { + padding-top: 0.5rem !important; +} + +.bodywebsite .pt-3 { + padding-top: 1rem !important; +} + +.bodywebsite .pt-4 { + padding-top: 1.5rem !important; +} + +.bodywebsite .pt-5 { + padding-top: 3rem !important; +} + +.bodywebsite .pe-0 { + padding-right: 0 !important; +} + +.bodywebsite .pe-1 { + padding-right: 0.25rem !important; +} + +.bodywebsite .pe-2 { + padding-right: 0.5rem !important; +} + +.bodywebsite .pe-3 { + padding-right: 1rem !important; +} + +.bodywebsite .pe-4 { + padding-right: 1.5rem !important; +} + +.bodywebsite .pe-5 { + padding-right: 3rem !important; +} + +.bodywebsite .pb-0 { + padding-bottom: 0 !important; +} + +.bodywebsite .pb-1 { + padding-bottom: 0.25rem !important; +} + +.bodywebsite .pb-2 { + padding-bottom: 0.5rem !important; +} + +.bodywebsite .pb-3 { + padding-bottom: 1rem !important; +} + +.bodywebsite .pb-4 { + padding-bottom: 1.5rem !important; +} + +.bodywebsite .pb-5 { + padding-bottom: 3rem !important; +} + +.bodywebsite .ps-0 { + padding-left: 0 !important; +} + +.bodywebsite .ps-1 { + padding-left: 0.25rem !important; +} + +.bodywebsite .ps-2 { + padding-left: 0.5rem !important; +} + +.bodywebsite .ps-3 { + padding-left: 1rem !important; +} + +.bodywebsite .ps-4 { + padding-left: 1.5rem !important; +} + +.bodywebsite .ps-5 { + padding-left: 3rem !important; +} + +.bodywebsite .gap-0 { + gap: 0 !important; +} + +.bodywebsite .gap-1 { + gap: 0.25rem !important; +} + +.bodywebsite .gap-2 { + gap: 0.5rem !important; +} + +.bodywebsite .gap-3 { + gap: 1rem !important; +} + +.bodywebsite .gap-4 { + gap: 1.5rem !important; +} + +.bodywebsite .gap-5 { + gap: 3rem !important; +} + +.bodywebsite .font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.bodywebsite .fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.bodywebsite .fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.bodywebsite .fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.bodywebsite .fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.bodywebsite .fs-5 { + font-size: 1.25rem !important; +} + +.bodywebsite .fs-6 { + font-size: 1rem !important; +} + +.bodywebsite .fst-italic { + font-style: italic !important; +} + +.bodywebsite .fst-normal { + font-style: normal !important; +} + +.bodywebsite .fw-light { + font-weight: 300 !important; +} + +.bodywebsite .fw-lighter { + font-weight: lighter !important; +} + +.bodywebsite .fw-normal { + font-weight: 400 !important; +} + +.bodywebsite .fw-bold { + font-weight: 700 !important; +} + +.bodywebsite .fw-semibold { + font-weight: 600 !important; +} + +.bodywebsite .fw-bolder { + font-weight: bolder !important; +} + +.bodywebsite .lh-1 { + line-height: 1 !important; +} + +.bodywebsite .lh-sm { + line-height: 1.25 !important; +} + +.bodywebsite .lh-base { + line-height: 1.5 !important; +} + +.bodywebsite .lh-lg { + line-height: 2 !important; +} + +.bodywebsite .text-start { + text-align: left !important; +} + +.bodywebsite .text-end { + text-align: right !important; +} + +.bodywebsite .text-center { + text-align: center !important; +} + +.bodywebsite .text-decoration-none { + text-decoration: none !important; +} + +.bodywebsite .text-decoration-underline { + text-decoration: underline !important; +} + +.bodywebsite .text-decoration-line-through { + text-decoration: line-through !important; +} + +.bodywebsite .text-lowercase { + text-transform: lowercase !important; +} + +.bodywebsite .text-uppercase { + text-transform: uppercase !important; +} + +.bodywebsite .text-capitalize { + text-transform: capitalize !important; +} + +.bodywebsite .text-wrap { + white-space: normal !important; +} + +.bodywebsite .text-nowrap { + white-space: nowrap !important; +} + +.bodywebsite .text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +.bodywebsite .text-primary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-secondary { + --bs-text-opacity: 1; +} + +.bodywebsite .text-success { + --bs-text-opacity: 1; +} + +.bodywebsite .text-info { + --bs-text-opacity: 1; +} + +.bodywebsite .text-warning { + --bs-text-opacity: 1; +} + +.bodywebsite .text-danger { + --bs-text-opacity: 1; +} + +.bodywebsite .text-light { + --bs-text-opacity: 1; +} + +.bodywebsite .text-dark { + --bs-text-opacity: 1; +} + +.bodywebsite .text-black { + --bs-text-opacity: 1; +} + +.bodywebsite .text-white { + --bs-text-opacity: 1; + color: var(--text-white); +} + +.bodywebsite .text-body { + --bs-text-opacity: 1; +} + +.bodywebsite .text-muted { + --bs-text-opacity: 1; + color: #6c757d !important; +} + +.bodywebsite .text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.bodywebsite .text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.bodywebsite .text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.bodywebsite .text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.bodywebsite .text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.bodywebsite .text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.bodywebsite .text-opacity-100 { + --bs-text-opacity: 1; +} + +.bodywebsite .bg-primary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-secondary { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-success { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-info { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-warning { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-danger { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-light { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-dark { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-black { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-white { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-body { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-transparent { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bodywebsite .bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bodywebsite .bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bodywebsite .bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bodywebsite .bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bodywebsite .bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.bodywebsite .user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.bodywebsite .user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.bodywebsite .user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.bodywebsite .pe-none { + pointer-events: none !important; +} + +.bodywebsite .pe-auto { + pointer-events: auto !important; +} + +.bodywebsite .rounded { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-0 { + border-radius: 0 !important; +} + +.bodywebsite .rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.bodywebsite .rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.bodywebsite .rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.bodywebsite .rounded-5 { + border-radius: var(--bs-border-radius-2xl) !important; +} + +.bodywebsite .rounded-circle { + border-radius: 50% !important; +} + +.bodywebsite .rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.bodywebsite .rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.bodywebsite .visible { + visibility: visible !important; +} + +.bodywebsite .invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .bodywebsite .float-sm-start { + float: left !important; + } + + .bodywebsite .float-sm-end { + float: right !important; + } + + .bodywebsite .float-sm-none { + float: none !important; + } + + .bodywebsite .d-sm-inline { + display: inline !important; + } + + .bodywebsite .d-sm-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-sm-block { + display: block !important; + } + + .bodywebsite .d-sm-grid { + display: grid !important; + } + + .bodywebsite .d-sm-table { + display: table !important; + } + + .bodywebsite .d-sm-table-row { + display: table-row !important; + } + + .bodywebsite .d-sm-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-sm-flex { + display: flex !important; + } + + .bodywebsite .d-sm-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-sm-none { + display: none !important; + } + + .bodywebsite .flex-sm-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-sm-row { + flex-direction: row !important; + } + + .bodywebsite .flex-sm-column { + flex-direction: column !important; + } + + .bodywebsite .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-sm-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-sm-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-sm-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-sm-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-sm-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-sm-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-sm-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-sm-center { + align-items: center !important; + } + + .bodywebsite .align-items-sm-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-sm-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-sm-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-sm-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-sm-center { + align-content: center !important; + } + + .bodywebsite .align-content-sm-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-sm-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-sm-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-sm-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-sm-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-sm-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-sm-center { + align-self: center !important; + } + + .bodywebsite .align-self-sm-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-sm-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-sm-first { + order: -1 !important; + } + + .bodywebsite .order-sm-0 { + order: 0 !important; + } + + .bodywebsite .order-sm-1 { + order: 1 !important; + } + + .bodywebsite .order-sm-2 { + order: 2 !important; + } + + .bodywebsite .order-sm-3 { + order: 3 !important; + } + + .bodywebsite .order-sm-4 { + order: 4 !important; + } + + .bodywebsite .order-sm-5 { + order: 5 !important; + } + + .bodywebsite .order-sm-last { + order: 6 !important; + } + + .bodywebsite .m-sm-0 { + margin: 0 !important; + } + + .bodywebsite .m-sm-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-sm-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-sm-3 { + margin: 1rem !important; + } + + .bodywebsite .m-sm-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-sm-5 { + margin: 3rem !important; + } + + .bodywebsite .m-sm-auto { + margin: auto !important; + } + + .bodywebsite .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-sm-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-sm-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-sm-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-sm-auto { + margin-top: auto !important; + } + + .bodywebsite .me-sm-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-sm-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-sm-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-sm-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-sm-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-sm-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-sm-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-sm-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-sm-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-sm-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-sm-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-sm-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-sm-auto { + margin-left: auto !important; + } + + .bodywebsite .p-sm-0 { + padding: 0 !important; + } + + .bodywebsite .p-sm-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-sm-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-sm-3 { + padding: 1rem !important; + } + + .bodywebsite .p-sm-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-sm-5 { + padding: 3rem !important; + } + + .bodywebsite .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-sm-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-sm-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-sm-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-sm-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-sm-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-sm-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-sm-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-sm-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-sm-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-sm-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-sm-0 { + gap: 0 !important; + } + + .bodywebsite .gap-sm-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-sm-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-sm-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-sm-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-sm-5 { + gap: 3rem !important; + } + + .bodywebsite .text-sm-start { + text-align: left !important; + } + + .bodywebsite .text-sm-end { + text-align: right !important; + } + + .bodywebsite .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .bodywebsite .float-md-start { + float: left !important; + } + + .bodywebsite .float-md-end { + float: right !important; + } + + .bodywebsite .float-md-none { + float: none !important; + } + + .bodywebsite .d-md-inline { + display: inline !important; + } + + .bodywebsite .d-md-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-md-block { + display: block !important; + } + + .bodywebsite .d-md-grid { + display: grid !important; + } + + .bodywebsite .d-md-table { + display: table !important; + } + + .bodywebsite .d-md-table-row { + display: table-row !important; + } + + .bodywebsite .d-md-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-md-flex { + display: flex !important; + } + + .bodywebsite .d-md-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-md-none { + display: none !important; + } + + .bodywebsite .flex-md-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-md-row { + flex-direction: row !important; + } + + .bodywebsite .flex-md-column { + flex-direction: column !important; + } + + .bodywebsite .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-md-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-md-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-md-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-md-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-md-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-md-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-md-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-md-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-md-center { + align-items: center !important; + } + + .bodywebsite .align-items-md-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-md-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-md-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-md-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-md-center { + align-content: center !important; + } + + .bodywebsite .align-content-md-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-md-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-md-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-md-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-md-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-md-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-md-center { + align-self: center !important; + } + + .bodywebsite .align-self-md-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-md-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-md-first { + order: -1 !important; + } + + .bodywebsite .order-md-0 { + order: 0 !important; + } + + .bodywebsite .order-md-1 { + order: 1 !important; + } + + .bodywebsite .order-md-2 { + order: 2 !important; + } + + .bodywebsite .order-md-3 { + order: 3 !important; + } + + .bodywebsite .order-md-4 { + order: 4 !important; + } + + .bodywebsite .order-md-5 { + order: 5 !important; + } + + .bodywebsite .order-md-last { + order: 6 !important; + } + + .bodywebsite .m-md-0 { + margin: 0 !important; + } + + .bodywebsite .m-md-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-md-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-md-3 { + margin: 1rem !important; + } + + .bodywebsite .m-md-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-md-5 { + margin: 3rem !important; + } + + .bodywebsite .m-md-auto { + margin: auto !important; + } + + .bodywebsite .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-md-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-md-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-md-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-md-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-md-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-md-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-md-auto { + margin-top: auto !important; + } + + .bodywebsite .me-md-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-md-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-md-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-md-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-md-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-md-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-md-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-md-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-md-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-md-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-md-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-md-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-md-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-md-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-md-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-md-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-md-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-md-auto { + margin-left: auto !important; + } + + .bodywebsite .p-md-0 { + padding: 0 !important; + } + + .bodywebsite .p-md-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-md-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-md-3 { + padding: 1rem !important; + } + + .bodywebsite .p-md-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-md-5 { + padding: 3rem !important; + } + + .bodywebsite .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-md-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-md-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-md-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-md-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-md-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-md-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-md-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-md-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-md-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-md-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-md-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-md-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-md-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-md-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-md-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-md-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-md-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-md-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-md-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-md-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-md-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-md-0 { + gap: 0 !important; + } + + .bodywebsite .gap-md-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-md-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-md-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-md-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-md-5 { + gap: 3rem !important; + } + + .bodywebsite .text-md-start { + text-align: left !important; + } + + .bodywebsite .text-md-end { + text-align: right !important; + } + + .bodywebsite .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .bodywebsite .float-lg-start { + float: left !important; + } + + .bodywebsite .float-lg-end { + float: right !important; + } + + .bodywebsite .float-lg-none { + float: none !important; + } + + .bodywebsite .d-lg-inline { + display: inline !important; + } + + .bodywebsite .d-lg-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-lg-block { + display: block !important; + } + + .bodywebsite .d-lg-grid { + display: grid !important; + } + + .bodywebsite .d-lg-table { + display: table !important; + } + + .bodywebsite .d-lg-table-row { + display: table-row !important; + } + + .bodywebsite .d-lg-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-lg-flex { + display: flex !important; + } + + .bodywebsite .d-lg-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-lg-none { + display: none !important; + } + + .bodywebsite .flex-lg-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-lg-row { + flex-direction: row !important; + } + + .bodywebsite .flex-lg-column { + flex-direction: column !important; + } + + .bodywebsite .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-lg-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-lg-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-lg-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-lg-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-lg-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-lg-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-lg-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-lg-center { + align-items: center !important; + } + + .bodywebsite .align-items-lg-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-lg-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-lg-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-lg-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-lg-center { + align-content: center !important; + } + + .bodywebsite .align-content-lg-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-lg-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-lg-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-lg-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-lg-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-lg-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-lg-center { + align-self: center !important; + } + + .bodywebsite .align-self-lg-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-lg-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-lg-first { + order: -1 !important; + } + + .bodywebsite .order-lg-0 { + order: 0 !important; + } + + .bodywebsite .order-lg-1 { + order: 1 !important; + } + + .bodywebsite .order-lg-2 { + order: 2 !important; + } + + .bodywebsite .order-lg-3 { + order: 3 !important; + } + + .bodywebsite .order-lg-4 { + order: 4 !important; + } + + .bodywebsite .order-lg-5 { + order: 5 !important; + } + + .bodywebsite .order-lg-last { + order: 6 !important; + } + + .bodywebsite .m-lg-0 { + margin: 0 !important; + } + + .bodywebsite .m-lg-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-lg-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-lg-3 { + margin: 1rem !important; + } + + .bodywebsite .m-lg-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-lg-5 { + margin: 3rem !important; + } + + .bodywebsite .m-lg-auto { + margin: auto !important; + } + + .bodywebsite .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-lg-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-lg-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-lg-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-lg-auto { + margin-top: auto !important; + } + + .bodywebsite .me-lg-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-lg-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-lg-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-lg-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-lg-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-lg-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-lg-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-lg-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-lg-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-lg-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-lg-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-lg-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-lg-auto { + margin-left: auto !important; + } + + .bodywebsite .p-lg-0 { + padding: 0 !important; + } + + .bodywebsite .p-lg-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-lg-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-lg-3 { + padding: 1rem !important; + } + + .bodywebsite .p-lg-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-lg-5 { + padding: 3rem !important; + } + + .bodywebsite .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-lg-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-lg-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-lg-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-lg-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-lg-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-lg-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-lg-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-lg-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-lg-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-lg-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-lg-0 { + gap: 0 !important; + } + + .bodywebsite .gap-lg-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-lg-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-lg-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-lg-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-lg-5 { + gap: 3rem !important; + } + + .bodywebsite .text-lg-start { + text-align: left !important; + } + + .bodywebsite .text-lg-end { + text-align: right !important; + } + + .bodywebsite .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .float-xl-start { + float: left !important; + } + + .bodywebsite .float-xl-end { + float: right !important; + } + + .bodywebsite .float-xl-none { + float: none !important; + } + + .bodywebsite .d-xl-inline { + display: inline !important; + } + + .bodywebsite .d-xl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xl-block { + display: block !important; + } + + .bodywebsite .d-xl-grid { + display: grid !important; + } + + .bodywebsite .d-xl-table { + display: table !important; + } + + .bodywebsite .d-xl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xl-flex { + display: flex !important; + } + + .bodywebsite .d-xl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xl-none { + display: none !important; + } + + .bodywebsite .flex-xl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xl-first { + order: -1 !important; + } + + .bodywebsite .order-xl-0 { + order: 0 !important; + } + + .bodywebsite .order-xl-1 { + order: 1 !important; + } + + .bodywebsite .order-xl-2 { + order: 2 !important; + } + + .bodywebsite .order-xl-3 { + order: 3 !important; + } + + .bodywebsite .order-xl-4 { + order: 4 !important; + } + + .bodywebsite .order-xl-5 { + order: 5 !important; + } + + .bodywebsite .order-xl-last { + order: 6 !important; + } + + .bodywebsite .m-xl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xl-start { + text-align: left !important; + } + + .bodywebsite .text-xl-end { + text-align: right !important; + } + + .bodywebsite .text-xl-center { + text-align: center !important; + } +} + +@media (min-width: 1400px) { + .bodywebsite .float-xxl-start { + float: left !important; + } + + .bodywebsite .float-xxl-end { + float: right !important; + } + + .bodywebsite .float-xxl-none { + float: none !important; + } + + .bodywebsite .d-xxl-inline { + display: inline !important; + } + + .bodywebsite .d-xxl-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-xxl-block { + display: block !important; + } + + .bodywebsite .d-xxl-grid { + display: grid !important; + } + + .bodywebsite .d-xxl-table { + display: table !important; + } + + .bodywebsite .d-xxl-table-row { + display: table-row !important; + } + + .bodywebsite .d-xxl-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-xxl-flex { + display: flex !important; + } + + .bodywebsite .d-xxl-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-xxl-none { + display: none !important; + } + + .bodywebsite .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .bodywebsite .flex-xxl-row { + flex-direction: row !important; + } + + .bodywebsite .flex-xxl-column { + flex-direction: column !important; + } + + .bodywebsite .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .bodywebsite .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .bodywebsite .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .bodywebsite .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .bodywebsite .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .bodywebsite .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .bodywebsite .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .bodywebsite .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .bodywebsite .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .bodywebsite .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .bodywebsite .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .bodywebsite .justify-content-xxl-center { + justify-content: center !important; + } + + .bodywebsite .justify-content-xxl-between { + justify-content: space-between !important; + } + + .bodywebsite .justify-content-xxl-around { + justify-content: space-around !important; + } + + .bodywebsite .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .bodywebsite .align-items-xxl-start { + align-items: flex-start !important; + } + + .bodywebsite .align-items-xxl-end { + align-items: flex-end !important; + } + + .bodywebsite .align-items-xxl-center { + align-items: center !important; + } + + .bodywebsite .align-items-xxl-baseline { + align-items: baseline !important; + } + + .bodywebsite .align-items-xxl-stretch { + align-items: stretch !important; + } + + .bodywebsite .align-content-xxl-start { + align-content: flex-start !important; + } + + .bodywebsite .align-content-xxl-end { + align-content: flex-end !important; + } + + .bodywebsite .align-content-xxl-center { + align-content: center !important; + } + + .bodywebsite .align-content-xxl-between { + align-content: space-between !important; + } + + .bodywebsite .align-content-xxl-around { + align-content: space-around !important; + } + + .bodywebsite .align-content-xxl-stretch { + align-content: stretch !important; + } + + .bodywebsite .align-self-xxl-auto { + align-self: auto !important; + } + + .bodywebsite .align-self-xxl-start { + align-self: flex-start !important; + } + + .bodywebsite .align-self-xxl-end { + align-self: flex-end !important; + } + + .bodywebsite .align-self-xxl-center { + align-self: center !important; + } + + .bodywebsite .align-self-xxl-baseline { + align-self: baseline !important; + } + + .bodywebsite .align-self-xxl-stretch { + align-self: stretch !important; + } + + .bodywebsite .order-xxl-first { + order: -1 !important; + } + + .bodywebsite .order-xxl-0 { + order: 0 !important; + } + + .bodywebsite .order-xxl-1 { + order: 1 !important; + } + + .bodywebsite .order-xxl-2 { + order: 2 !important; + } + + .bodywebsite .order-xxl-3 { + order: 3 !important; + } + + .bodywebsite .order-xxl-4 { + order: 4 !important; + } + + .bodywebsite .order-xxl-5 { + order: 5 !important; + } + + .bodywebsite .order-xxl-last { + order: 6 !important; + } + + .bodywebsite .m-xxl-0 { + margin: 0 !important; + } + + .bodywebsite .m-xxl-1 { + margin: 0.25rem !important; + } + + .bodywebsite .m-xxl-2 { + margin: 0.5rem !important; + } + + .bodywebsite .m-xxl-3 { + margin: 1rem !important; + } + + .bodywebsite .m-xxl-4 { + margin: 1.5rem !important; + } + + .bodywebsite .m-xxl-5 { + margin: 3rem !important; + } + + .bodywebsite .m-xxl-auto { + margin: auto !important; + } + + .bodywebsite .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .bodywebsite .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .bodywebsite .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .bodywebsite .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .bodywebsite .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .bodywebsite .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .bodywebsite .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .bodywebsite .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .bodywebsite .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .bodywebsite .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .bodywebsite .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .bodywebsite .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .bodywebsite .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .bodywebsite .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .bodywebsite .mt-xxl-0 { + margin-top: 0 !important; + } + + .bodywebsite .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .bodywebsite .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .bodywebsite .mt-xxl-3 { + margin-top: 1rem !important; + } + + .bodywebsite .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .bodywebsite .mt-xxl-5 { + margin-top: 3rem !important; + } + + .bodywebsite .mt-xxl-auto { + margin-top: auto !important; + } + + .bodywebsite .me-xxl-0 { + margin-right: 0 !important; + } + + .bodywebsite .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .bodywebsite .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .bodywebsite .me-xxl-3 { + margin-right: 1rem !important; + } + + .bodywebsite .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .bodywebsite .me-xxl-5 { + margin-right: 3rem !important; + } + + .bodywebsite .me-xxl-auto { + margin-right: auto !important; + } + + .bodywebsite .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .bodywebsite .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .bodywebsite .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .bodywebsite .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .bodywebsite .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .bodywebsite .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .bodywebsite .mb-xxl-auto { + margin-bottom: auto !important; + } + + .bodywebsite .ms-xxl-0 { + margin-left: 0 !important; + } + + .bodywebsite .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .bodywebsite .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .bodywebsite .ms-xxl-3 { + margin-left: 1rem !important; + } + + .bodywebsite .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .bodywebsite .ms-xxl-5 { + margin-left: 3rem !important; + } + + .bodywebsite .ms-xxl-auto { + margin-left: auto !important; + } + + .bodywebsite .p-xxl-0 { + padding: 0 !important; + } + + .bodywebsite .p-xxl-1 { + padding: 0.25rem !important; + } + + .bodywebsite .p-xxl-2 { + padding: 0.5rem !important; + } + + .bodywebsite .p-xxl-3 { + padding: 1rem !important; + } + + .bodywebsite .p-xxl-4 { + padding: 1.5rem !important; + } + + .bodywebsite .p-xxl-5 { + padding: 3rem !important; + } + + .bodywebsite .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .bodywebsite .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .bodywebsite .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .bodywebsite .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .bodywebsite .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .bodywebsite .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .bodywebsite .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .bodywebsite .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .bodywebsite .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .bodywebsite .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .bodywebsite .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .bodywebsite .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .bodywebsite .pt-xxl-0 { + padding-top: 0 !important; + } + + .bodywebsite .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .bodywebsite .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .bodywebsite .pt-xxl-3 { + padding-top: 1rem !important; + } + + .bodywebsite .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .bodywebsite .pt-xxl-5 { + padding-top: 3rem !important; + } + + .bodywebsite .pe-xxl-0 { + padding-right: 0 !important; + } + + .bodywebsite .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .bodywebsite .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .bodywebsite .pe-xxl-3 { + padding-right: 1rem !important; + } + + .bodywebsite .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .bodywebsite .pe-xxl-5 { + padding-right: 3rem !important; + } + + .bodywebsite .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .bodywebsite .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .bodywebsite .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .bodywebsite .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .bodywebsite .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .bodywebsite .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .bodywebsite .ps-xxl-0 { + padding-left: 0 !important; + } + + .bodywebsite .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .bodywebsite .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .bodywebsite .ps-xxl-3 { + padding-left: 1rem !important; + } + + .bodywebsite .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .bodywebsite .ps-xxl-5 { + padding-left: 3rem !important; + } + + .bodywebsite .gap-xxl-0 { + gap: 0 !important; + } + + .bodywebsite .gap-xxl-1 { + gap: 0.25rem !important; + } + + .bodywebsite .gap-xxl-2 { + gap: 0.5rem !important; + } + + .bodywebsite .gap-xxl-3 { + gap: 1rem !important; + } + + .bodywebsite .gap-xxl-4 { + gap: 1.5rem !important; + } + + .bodywebsite .gap-xxl-5 { + gap: 3rem !important; + } + + .bodywebsite .text-xxl-start { + text-align: left !important; + } + + .bodywebsite .text-xxl-end { + text-align: right !important; + } + + .bodywebsite .text-xxl-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .bodywebsite .fs-1 { + font-size: 2.5rem !important; + } + + .bodywebsite .fs-2 { + font-size: 2rem !important; + } + + .bodywebsite .fs-3 { + font-size: 1.75rem !important; + } + + .bodywebsite .fs-4 { + font-size: 1.5rem !important; + } +} + +@media print { + .bodywebsite .d-print-inline { + display: inline !important; + } + + .bodywebsite .d-print-inline-block { + display: inline-block !important; + } + + .bodywebsite .d-print-block { + display: block !important; + } + + .bodywebsite .d-print-grid { + display: grid !important; + } + + .bodywebsite .d-print-table { + display: table !important; + } + + .bodywebsite .d-print-table-row { + display: table-row !important; + } + + .bodywebsite .d-print-table-cell { + display: table-cell !important; + } + + .bodywebsite .d-print-flex { + display: flex !important; + } + + .bodywebsite .d-print-inline-flex { + display: inline-flex !important; + } + + .bodywebsite .d-print-none { + display: none !important; + } +} + + +body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; } +.bodywebsite h1 { margin-top: 0; margin-bottom: 0; padding: 10px;} + + +:root { + --text-white: #f0f0f0; + --white-color: #ffffff; + --primary-color: #d9534f; + --secondary-color: #f3af24; + --section-bg-color: #f9f9f9; + --dark-color: #000000; + --title-color: #565758; + --news-title-color: #292828; + --p-color: #717275; + --border-color: #eaeaea; + --border-radius-default: 0.25rem; + + --body-font-family: "Montserrat", sans-serif; + + --h1-font-size: 76px; + --h2-font-size: 56px; + --h3-font-size: 42px; + --h4-font-size: 28px; + --h5-font-size: 26px; + --h6-font-size: 22px; + + --p-font-size: 18px; + --menu-font-size: 18px; + --category-font-size: 14px; + + --font-weight-light: 300; + --font-weight-normal: 400; + --font-weight-semibold: 600; + --font-weight-bold: 700; +} + +.bodywebsite body { + background: var(--white-color); + font-family: var(--body-font-family); + position: relative; +} + +/*--------------------------------------- + TYPOGRAPHY +-----------------------------------------*/ + +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + color: var(--dark-color); + line-height: inherit; +} + +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + font-weight: var(--font-weight-semibold); +} + +.bodywebsite h1, +.bodywebsite h2 { + font-weight: var(--font-weight-bold); +} + +.bodywebsite h1 { + font-size: var(--h1-font-size); + line-height: normal; +} + +.bodywebsite h2 { + font-size: var(--h2-font-size); +} + +.bodywebsite h3 { + font-size: var(--h3-font-size); +} + +.bodywebsite h4 { + font-size: var(--h4-font-size); +} + +.bodywebsite h5 { + font-size: var(--h5-font-size); +} + +.bodywebsite h6 { + font-size: var(--h6-font-size); +} + +.bodywebsite p, +.bodywebsite .list .list-item { + color: var(--p-color); + font-size: var(--p-font-size); + font-weight: var(--font-weight-light); +} + +.bodywebsite a, +.bodywebsite button { + touch-action: manipulation; + transition: all 0.3s; +} + +.bodywebsite .form-label { + color: var(--p-color); + font-weight: var(--font-weight-semibold); +} + +.bodywebsite a { + color: var(--secondary-color); + text-decoration: none; +} + +.bodywebsite a:hover { + color: var(--primary-color); +} + +.bodywebsite ::selection { + background: var(--primary-color); + color: var(--white-color); +} + +.bodywebsite ::-moz-selection { + background: var(--primary-color); + color: var(--white-color); +} + +.bodywebsite .section-padding { + padding-top: 6rem; + padding-bottom: 6rem; +} + +.bodywebsite b, +.bodywebsite strong { + font-weight: var(--font-weight-bold); +} + +/*--------------------------------------- + CUSTOM BUTTON +-----------------------------------------*/ +.bodywebsite .custom-btn { + border: 0; + color: var(--white-color); + font-size: var(--menu-font-size); + padding: 10px 35px; +} + +/*--------------------------------------- + NAVIGATION +-----------------------------------------*/ +.bodywebsite .navbar { + background: var(--white-color); + padding-top: 20px; + padding-bottom: 20px; +} + +.bodywebsite .navbar-brand { + color: var(--dark-color); + font-size: var(--h5-font-size); + font-weight: var(--font-weight-bold); + margin-right: 0; +} + +.bodywebsite .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 1.5rem; + padding-left: 1.5rem; +} + +.bodywebsite .navbar-expand-lg .nav-link { + color: var(--p-color); + font-weight: var(--font-weight-normal); + font-size: var(--menu-font-size); + padding-top: 15px; + padding-bottom: 15px; +} + +.bodywebsite .navbar-nav .nav-link.active, +.bodywebsite .nav-link:focus, +.bodywebsite .nav-link:hover { + color: var(--primary-color); +} + +.bodywebsite .nav-link:focus { + color: var(--p-color); +} + +.bodywebsite .navbar-toggler { + border: 0; + padding: 0; + cursor: pointer; + margin: 0; + width: 30px; + height: 35px; + outline: none; +} + +.bodywebsite .navbar-toggler:focus { + outline: none; + box-shadow: none; +} + +.bodywebsite .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon { + background: transparent; +} + +.bodywebsite .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:before, +.bodywebsite .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:after { + transition: top 300ms 50ms ease, -webkit-transform 300ms 350ms ease; + transition: top 300ms 50ms ease, transform 300ms 350ms ease; + transition: top 300ms 50ms ease, transform 300ms 350ms ease, + -webkit-transform 300ms 350ms ease; + top: 0; +} + +.bodywebsite .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:before { + transform: rotate(45deg); +} + +.bodywebsite .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:after { + transform: rotate(-45deg); +} + +.bodywebsite .navbar-toggler .navbar-toggler-icon { + background: var(--dark-color); + transition: background 10ms 300ms ease; + display: block; + width: 30px; + height: 2px; + position: relative; +} + +.bodywebsite .navbar-toggler .navbar-toggler-icon:before, +.bodywebsite .navbar-toggler .navbar-toggler-icon:after { + transition: top 300ms 350ms ease, -webkit-transform 300ms 50ms ease; + transition: top 300ms 350ms ease, transform 300ms 50ms ease; + transition: top 300ms 350ms ease, transform 300ms 50ms ease, + -webkit-transform 300ms 50ms ease; + position: absolute; + right: 0; + left: 0; + background: var(--dark-color); + width: 30px; + height: 2px; + content: ""; +} + +.bodywebsite .navbar-toggler .navbar-toggler-icon:before { + top: -8px; +} + +.bodywebsite .navbar-toggler .navbar-toggler-icon:after { + top: 8px; +} + +/*--------------------------------------- + SITE HEADER +-----------------------------------------*/ +.bodywebsite .site-header { + background-repeat: no-repeat; + background-position: center; + background-size: cover; + padding-top: 10rem; + padding-bottom: 10rem; + text-align: center; + position: relative; +} + +.bodywebsite .site-header .container { + position: relative; + z-index: 2; +} + +.bodywebsite .site-news-detail-header { + background: transparent; + text-align: left; + padding-top: 6rem; + padding-bottom: 6rem; +} + +.bodywebsite .site-about-header { + background-image: url("/viewimage.php?modulepart=medias&file=image/__WEBSITE_KEY__/header/briana-tozour-V_Nkf1E-vYA-unsplash.jpg"); +} + +.bodywebsite .site-menu-header { + background-image: url("/viewimage.php?modulepart=medias&file=image/__WEBSITE_KEY__/header/luisa-brimble-aFzg83dvnAI-unsplash.jpg"); +} + +.bodywebsite .site-news-header { + background-image: url("/viewimage.php?modulepart=medias&file=image/__WEBSITE_KEY__/header/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg"); +} + +.bodywebsite .site-contact-header { + background-image: url("/viewimage.php?modulepart=medias&file=image/__WEBSITE_KEY__/header/rod-long-I79Pgmhmy5M-unsplash.jpg"); +} + +.bodywebsite .overlay { + background: linear-gradient(to top, var(--dark-color), transparent 100%); + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +/*--------------------------------------- + HERO +-----------------------------------------*/ +.bodywebsite .hero { + position: relative; + overflow: hidden; + padding-top: 20.542rem; + padding-bottom: 20.542rem; +} + +.bodywebsite .hero .container { + position: absolute; + z-index: 9; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 100%; +} + +.bodywebsite .video-wrap { + z-index: -100; +} + +.bodywebsite .custom-video { + position: absolute; + top: 0; + left: 0; + object-fit: cover; + width: 100%; + height: 100%; +} + +/*--------------------------------------- + HERO SLIDE +-----------------------------------------*/ +.bodywebsite .carousel-image { + width: 100%; + height: 100%; + object-fit: cover; +} + +.bodywebsite .carousel-thumb { + position: relative; +} + +.bodywebsite .carousel-caption { + background: linear-gradient(to top, var(--dark-color), transparent 90%); + text-align: left; + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 60px 40px; +} + +.bodywebsite .hero-carousel .reviews-text, +.bodywebsite .hero-text { + color: var(--white-color); +} + +.bodywebsite .price-tag { + background: var(--white-color); + border-radius: 100px; + color: var(--secondary-color); + font-size: var(--menu-font-size); + font-weight: var(--font-weight-semibold); + display: inline-block; + width: 84px; + height: 64px; + line-height: 64px; + text-align: center; +} + +.bodywebsite .hero-carousel .carousel-control-prev, +.bodywebsite .hero-carousel .carousel-control-next { + position: absolute; + top: auto; + bottom: 0; + opacity: 1; +} + +.bodywebsite .hero-carousel .carousel-control-prev, +.bodywebsite .hero-carousel .carousel-control-next { + background: var(--secondary-color); + width: 60px; + height: 60px; + text-align: center; +} + +.bodywebsite .hero-carousel .carousel-control-prev { + left: auto; + right: 60px; +} + +.bodywebsite .hero-carousel .carousel-control-next { + background: var(--primary-color); + right: 0; +} + +.bodywebsite .hero-carousel .carousel-control-prev:hover, +.bodywebsite .hero-carousel .carousel-control-next:hover { + background: var(--dark-color); +} + +.bodywebsite .hero-carousel .carousel-control-prev-icon, +.bodywebsite .hero-carousel .carousel-control-next-icon { + background-image: none; + width: inherit; + height: inherit; + line-height: 60px; +} + +.bodywebsite .hero-carousel .carousel-control-prev-icon::before, +.bodywebsite .hero-carousel .carousel-control-next-icon::before { + font-family: bootstrap-icons; + display: block; + margin: auto; + font-size: var(--h5-font-size); + color: var(--white-color); +} + +.bodywebsite .hero-carousel .carousel-control-prev-icon::before { + content: "\f13f"; +} + +.bodywebsite .hero-carousel .carousel-control-next-icon::before { + content: "\f144"; +} + +.bodywebsite .reviews-icon { + color: var(--secondary-color); +} + +/*--------------------------------------- + MENU +-----------------------------------------*/ +.bodywebsite .menu, +.bodywebsite .about, +.bodywebsite .related-news, +.bodywebsite .newsletter, +.bodywebsite .comments { + background: var(--section-bg-color); +} + +.bodywebsite .menu-thumb { + position: relative; + overflow: hidden; +} + +.bodywebsite .menu-info { + padding: 20px 20px 30px 20px; +} + +.bodywebsite .menu-image { + display: block; +} + +.bodywebsite .menu-image-wrap { + position: relative; +} + +.bodywebsite .menu-tag { + position: absolute; + top: 0; + right: 0; + margin: 20px; +} + +.bodywebsite .newsletter-image { + border-radius: 100%; + object-fit: cover; + display: block; + margin: 0 auto; + max-width: 450px; + max-height: 450px; +} + +.bodywebsite .category-tag, +.bodywebsite .menu-tag { + background: var(--dark-color); + border-radius: var(--border-radius-default); + color: var(--white-color); + font-size: var(--category-font-size); + display: inline-block; + padding: 4px 12px; +} + +.bodywebsite .category-tag { + margin-bottom: 5px; +} + +/*--------------------------------------- + CUSTOM FORM +-----------------------------------------*/ +.bodywebsite .custom-form .form-control { + margin-bottom: 20px; + padding: 14px 10px; + transition: all 0.3s; +} + +.bodywebsite .custom-form button[type="submit"] { + background: var(--dark-color); + border: 0; + color: var(--white-color); + text-transform: uppercase; +} + +.bodywebsite .custom-form button[type="submit"]:hover { + background: var(--primary-color); +} + +/*--------------------------------------- + SUBSCRIBE FORM +-----------------------------------------*/ +.bodywebsite .subscribe-form .form-control { + margin-top: 20px; + margin-bottom: 10px; +} + +.bodywebsite .booking-form .form-control { + font-weight: var(--font-weight-normal); + padding-top: 12px; + padding-bottom: 12px; + margin-bottom: 25px; + transition: all 0.3s; +} + +.bodywebsite .booking-form button[type="submit"] { + background: var(--dark-color); + border: 0; + font-weight: var(--font-weight-semibold); + color: var(--white-color); + text-transform: uppercase; + margin-bottom: 0; +} + +.bodywebsite .booking-form button[type="submit"]:hover { + background: var(--primary-color); +} +/*--------------------------------------- + FOOTER +-----------------------------------------*/ +.bodywebsite .site-footer { + background-image: url("../images/daan-evers-tKN1WXrzQ3s-unsplash.jpg"); + background-repeat: no-repeat; + background-position: center; + background-size: cover; + padding-top: 3rem; + padding-bottom: 3rem; + position: relative; +} + +.bodywebsite .site-footer::before { + content: ""; + background: linear-gradient(to top, var(--dark-color), transparent 200%); + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.bodywebsite .site-footer .container { + position: relative; +} + +.bodywebsite .tooplate-mt30 { + margin-top: 30px; +} +.bodywebsite .tooplate-mt60 { + margin-top: 60px; +} + +.bodywebsite .copyright-text { + font-size: var(--menu-font-size); +} + +.bodywebsite .tel-link { + color: var(--p-color); +} + +.bodywebsite .site-footer a:hover { + color: var(--white-color); +} + +.bodywebsite .site-footer a { + color: #aaa; +} + +.bodywebsite .site-footer p { + color: #aaa; +} + +/*--------------------------------------- + SOCIAL ICON +-----------------------------------------*/ +.bodywebsite .social-icon { + margin: 0; + padding: 0; +} + +.bodywebsite .social-icon li { + list-style: none; + display: inline-block; + vertical-align: top; + transition: all 0.3s; +} + +.bodywebsite .social-icon:hover li:not(:hover) { + opacity: 0.65; +} + +.bodywebsite .social-icon-link { + color: var(--p-color); + font-size: var(--p-font-size); + display: inline-block; + vertical-align: top; + margin-top: 4px; + margin-bottom: 4px; + margin-right: 15px; +} + +.bodywebsite .social-icon-link:hover { + color: var(--primary-color); +} + +/*--------------------------------------- + RESPONSIVE STYLES +-----------------------------------------*/ +@media screen and (max-width: 1180px) { + h1 { + font-size: 62px; + } +} + +@media screen and (max-width: 1170px) { + h1 { + font-size: 56px; + } +} + +@media screen and (max-width: 991px) { + .bodywebsite h1 { + font-size: 38px; + } + + .bodywebsite h2 { + font-size: 32px; + } + + .bodywebsite h3 { + font-size: 26px; + } + + .bodywebsite h4 { + font-size: 24px; + } + + .bodywebsite h5 { + font-size: 20px; + } + + .bodywebsite h6 { + font-size: 18px; + } + + .bodywebsite .site-header, + .bodywebsite .section-padding { + padding-top: 5rem; + padding-bottom: 5rem; + } + + .bodywebsite .navbar { + padding-top: 10px; + padding-bottom: 10px; + } + + .bodywebsite .navbar-nav .nav-link { + padding-top: 5px; + padding-bottom: 10px; + } + + .bodywebsite #BookingModal .modal-content { + padding-bottom: 200px; + } + + .bodywebsite #BookingModal .modal-content::before { + background-image: url("../images/sincerely-media-HoEYgBL_Gcs-unsplash-mobile.jpg"); + background-position: bottom; + top: auto; + left: 0; + bottom: 0; + width: 100%; + height: 200px; + transform: rotate(180deg); + } + + .bodywebsite #BookingModal .modal-body { + padding-top: 18px; + padding-right: 32px; + } +} + +@media screen and (max-width: 480px) { + .bodywebsite .newsletter-image { + max-width: 310px; + max-height: 310px; + } + + .bodywebsite .hero-carousel .carousel-control-prev, + .bodywebsite .hero-carousel .carousel-control-next { + width: 50px; + height: 50px; + } +} + diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/containers/wrapper.php b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/wrapper.php new file mode 100644 index 00000000000..26adb3ef220 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/containers/wrapper.php @@ -0,0 +1,278 @@ +entity; +$original_file = GETPOST("file", "alpha"); +$l = GETPOST('l', 'aZ09'); +$limit = GETPOST('limit', 'int'); + +// Parameters for RSS +$rss = GETPOST('rss', 'aZ09'); +if ($rss) { + $original_file = 'blog.rss'; +} + +// If we have a hash public (hashp), we guess the original_file. +if (!empty($hashp)) { + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile = new EcmFiles($db); + $result = $ecmfile->fetch(0, '', '', '', $hashp); + if ($result > 0) { + $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory + // filepath can be 'users/X' or 'X/propale/PR11111' + if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part. + $tmp = explode('/', $tmp[1], 2); + } + $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path + + if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter. + if ($moduleparttocheck == $modulepart) { + // We remove first level of directory + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + //var_dump($original_file); exit; + } else { + print 'Bad link. File is from another module part.'; + } + } else { + $modulepart = $moduleparttocheck; + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + } + } else { + print "ErrorFileNotFoundWithSharedLink"; + exit; + } +} + +// Define attachment (attachment=true to force choice popup 'open'/'save as') +$attachment = true; +if (preg_match('/\.(html|htm)$/i', $original_file)) { + $attachment = false; +} +if (isset($_GET["attachment"])) { + $attachment = (GETPOST("attachment", 'alphanohtml') ? true : false); +} +if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) { + $attachment = false; +} + +// Define mime type +$type = 'application/octet-stream'; +if (GETPOSTISSET('type')) { + $type = GETPOST('type', 'alpha'); +} else { + $type = dol_mimetype($original_file); +} + +// Security: Delete string ../ into $original_file +$original_file = str_replace("../", "/", $original_file); + +// Cache or not +if (GETPOST("cache", 'aZ09') || image_format_supported($original_file) >= 0) { + // Important: Following code is to avoid page request by browser and PHP CPU at + // each Dolibarr page access. + header('Cache-Control: max-age=3600, public, must-revalidate'); + header('Pragma: cache'); // This is to avoid having Pragma: no-cache +} + +$refname = basename(dirname($original_file)."/"); + +// Get RSS news +if ($rss) { + $format = 'rss'; + $type = ''; + $cachedelay = 0; + $filename = $original_file; + $dir_temp = $conf->website->dir_temp; + + include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; + include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; + $website = new Website($db); + $websitepage = new WebsitePage($db); + + $website->fetch('', $websitekey); + + $filters = array('type_container'=>'blogpost', 'status'=>1); + if ($l) { + $filters['lang'] = $l; + } + + $MAXNEWS = ($limit ? $limit : 20); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, $filters); + $eventarray = array(); + if (is_array($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + $blog->fullpageurl = $website->virtualhost.'/'.$blog->pageurl.'.php'; + $eventarray[] = $blog; + } + } + + require_once DOL_DOCUMENT_ROOT."/core/lib/xcal.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + + dol_syslog("build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG); + + // Clean parameters + if (!$filename) { + $extension = 'rss'; + $filename = $format.'.'.$extension; + } + + // Create dir and define output file (definitive and temporary) + $result = dol_mkdir($dir_temp); + $outputfile = $dir_temp.'/'.$filename; + + $result = 0; + + $buildfile = true; + + if ($cachedelay) { + $nowgmt = dol_now(); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (dol_filemtime($outputfile) > ($nowgmt - $cachedelay)) { + dol_syslog("build_exportfile file ".$outputfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay."). Build is canceled"); + $buildfile = false; + } + } + + if ($buildfile) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($l); + $outputlangs->loadLangs(array("main", "other")); + $title = $desc = $outputlangs->transnoentities('LatestBlogPosts'); + + // Create temp file + $outputfiletmp = tempnam($dir_temp, 'tmp'); // Temporary file (allow call of function by different threads + @chmod($outputfiletmp, octdec($conf->global->MAIN_UMASK)); + + // Write file + $result = build_rssfile($format, $title, $desc, $eventarray, $outputfiletmp, '', $website->virtualhost.'/wrapper.php?rss=1'.($l ? '&l='.$l : ''), $l); + + if ($result >= 0) { + if (dol_move($outputfiletmp, $outputfile, 0, 1)) { + $result = 1; + } else { + $error = 'Failed to rename '.$outputfiletmp.' into '.$outputfile; + dol_syslog("build_exportfile ".$error, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + print $error; + exit(-1); + } + } else { + dol_syslog("build_exportfile build_xxxfile function fails to for format=".$format." outputfiletmp=".$outputfile, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + $langs->load("errors"); + print $langs->trans("ErrorFailToCreateFile", $outputfile); + exit(-1); + } + } + + if ($result >= 0) { + $attachment = false; + if (isset($_GET["attachment"])) { + $attachment = $_GET["attachment"]; + } + //$attachment = false; + $contenttype = 'application/rss+xml'; + if (isset($_GET["contenttype"])) { + $contenttype = $_GET["contenttype"]; + } + //$contenttype='text/plain'; + $outputencoding = 'UTF-8'; + + if ($contenttype) { + header('Content-Type: '.$contenttype.($outputencoding ? '; charset='.$outputencoding : '')); + } + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } + + // Ajout directives pour resoudre bug IE + //header('Cache-Control: Public, must-revalidate'); + //header('Pragma: public'); + if ($cachedelay) { + header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate'); + } else { + header('Cache-Control: private, must-revalidate'); + } + + // Clean parameters + $outputfile = $dir_temp.'/'.$filename; + $result = readfile($outputfile); + if (!$result) { + print 'File '.$outputfile.' was empty.'; + } + + // header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename)); + exit; + } +} elseif ($modulepart == "mycompany" && preg_match('/^\/?logos\//', $original_file)) { + // Get logos + readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); +} else { + // Find the subdirectory name as the reference + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); + $accessallowed = empty($check_access['accessallowed']) ? '' : $check_access['accessallowed']; + $sqlprotectagainstexternals = empty($check_access['sqlprotectagainstexternals']) ? '' : $check_access['sqlprotectagainstexternals']; + $fullpath_original_file = empty($check_access['original_file']) ? '' : $check_access['original_file']; // $fullpath_original_file is now a full path name + if ($hashp) { + $accessallowed = 1; // When using hashp, link is public so we force $accessallowed + $sqlprotectagainstexternals = ''; + } + + // Security: + // Limit access if permissions are wrong + if (!$accessallowed) { + print 'Access forbidden'; + exit; + } + + clearstatcache(); + + $filename = basename($fullpath_original_file); + + // Output file on browser + dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); + $fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset + + // This test if file exists should be useless. We keep it to find bug more easily + if (!file_exists($fullpath_original_file_osencoded)) { + print "ErrorFileDoesNotExists: ".$original_file; + exit; + } + + // Permissions are ok and file found, so we return it + //top_httphead($type); + header('Content-Type: '.$type); + header('Content-Description: File Transfer'); + if ($encoding) { + header('Content-Encoding: '.$encoding); + } + // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) + if ($attachment) { + header('Content-Disposition: attachment; filename="'.$filename.'"'); + } else { + header('Content-Disposition: inline; filename="'.$filename.'"'); + } + header('Content-Length: '.dol_filesize($fullpath_original_file)); + + readfile($fullpath_original_file_osencoded); +} +if (is_object($db)) { + $db->close(); +} +// END PHP diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/alex-haney-CAhjZmVk5H4-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/alex-haney-CAhjZmVk5H4-unsplash.jpg new file mode 100644 index 00000000000..b560348e307 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/alex-haney-CAhjZmVk5H4-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg new file mode 100644 index 00000000000..ad6b019c9db Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg new file mode 100644 index 00000000000..86554c885ff Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/lucas-swennen-1W_MyJSRLuQ-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/lucas-swennen-1W_MyJSRLuQ-unsplash.jpg new file mode 100644 index 00000000000..c666b35e4ff Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/lucas-swennen-1W_MyJSRLuQ-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/luisa-brimble-aFzg83dvnAI-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/luisa-brimble-aFzg83dvnAI-unsplash.jpg new file mode 100644 index 00000000000..4935dc39ab8 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/luisa-brimble-aFzg83dvnAI-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg new file mode 100644 index 00000000000..2bfea3596c4 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/rod-long-I79Pgmhmy5M-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/rod-long-I79Pgmhmy5M-unsplash.jpg new file mode 100644 index 00000000000..8cd3d3d1e4a Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/breakfast/rod-long-I79Pgmhmy5M-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/charles-deluvio-FdDkfYFHqe4-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/charles-deluvio-FdDkfYFHqe4-unsplash.jpg new file mode 100644 index 00000000000..f226187380f Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/charles-deluvio-FdDkfYFHqe4-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/daan-evers-tKN1WXrzQ3s-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/daan-evers-tKN1WXrzQ3s-unsplash.jpg new file mode 100644 index 00000000000..8c2def33f78 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/daan-evers-tKN1WXrzQ3s-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg new file mode 100644 index 00000000000..acd46fc663f Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/farhad-ibrahimzade-isHUj3N0194-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/farhad-ibrahimzade-isHUj3N0194-unsplash.jpg new file mode 100644 index 00000000000..04a4f0fff90 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/farhad-ibrahimzade-isHUj3N0194-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg new file mode 100644 index 00000000000..e011d4d1e5b Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/briana-tozour-V_Nkf1E-vYA-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/briana-tozour-V_Nkf1E-vYA-unsplash.jpg new file mode 100644 index 00000000000..f1d8eddf578 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/briana-tozour-V_Nkf1E-vYA-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/luisa-brimble-aFzg83dvnAI-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/luisa-brimble-aFzg83dvnAI-unsplash.jpg new file mode 100644 index 00000000000..5d151a7d3fa Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/luisa-brimble-aFzg83dvnAI-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg new file mode 100644 index 00000000000..0433e1e8cea Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/priscilla-du-preez-W3SEyZODn8U-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/rod-long-I79Pgmhmy5M-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/rod-long-I79Pgmhmy5M-unsplash.jpg new file mode 100644 index 00000000000..5c980d4764c Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/header/rod-long-I79Pgmhmy5M-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/farhad-ibrahimzade-D5c9ZciQy_I-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/farhad-ibrahimzade-D5c9ZciQy_I-unsplash.jpg new file mode 100644 index 00000000000..93f2861f4ed Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/farhad-ibrahimzade-D5c9ZciQy_I-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg new file mode 100644 index 00000000000..0995f0b2110 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/louis-hansel-cH5IPjaAYyo-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/louis-hansel-cH5IPjaAYyo-unsplash.jpg new file mode 100644 index 00000000000..6dcd9a26bf4 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/louis-hansel-cH5IPjaAYyo-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/louis-hansel-rheOvfxOlOA-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/louis-hansel-rheOvfxOlOA-unsplash.jpg new file mode 100644 index 00000000000..df1868563d3 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/lunch/louis-hansel-rheOvfxOlOA-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg new file mode 100644 index 00000000000..bbf0fed93ea Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/jason-leung-O67LZfeyYBk-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/jason-leung-O67LZfeyYBk-unsplash.jpg new file mode 100644 index 00000000000..ea1ae5a96ab Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/jason-leung-O67LZfeyYBk-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/jay-wennington-N_Y88TWmGwA-unsplash.jpg b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/jay-wennington-N_Y88TWmGwA-unsplash.jpg new file mode 100644 index 00000000000..1b81640a322 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-restaurant/medias/image/websitekey/slide/jay-wennington-N_Y88TWmGwA-unsplash.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-restaurant/website_pages.sql b/htdocs/install/doctemplates/websites/website_template-restaurant/website_pages.sql new file mode 100644 index 00000000000..f088e50d33e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-restaurant/website_pages.sql @@ -0,0 +1,24 @@ +-- File generated by Dolibarr 17.0.0-beta -- 2022-11-20 14:10:56 UTC --; +-- Page ID 248 -> 1__+MAX_llx_website_page__ - Aliases about --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(1__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'about', '', 'About us', '', '', '', '', '1', '2022-08-09 16:40:13', '2022-11-20 14:15:19', null, '', 'page', '', '__N____N____N__
    __N__
    __N____N__
    __N__
    __N__
    __N____N__
    __N__

    About Us

    __N____N__ Get to know us more__N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N__
    __N____N__
    __N__

    Team Members

    __N__
    __N____N__
    __N__
    __N__ \"\"__N__ __N__
    __N__

    Sophia

    __N____N__

    CEO & Founder

    __N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ \"\"__N____N__

    Benjamin W.

    __N____N__

    Restaurant Manager

    __N__
    __N__
    __N____N__
    __N__
    __N__ \"\"__N__ __N__

    Muchen Jack

    __N____N__

    Senior Chef

    __N__
    __N__
    __N____N__
    __N__
    __N__
    __N__ __N__
    __N____N__
    __N____N____N____N____N__', '', 0); +-- File generated by Dolibarr 17.0.0-beta -- 2022-11-20 14:10:56 UTC --; +-- Page ID 249 -> 2__+MAX_llx_website_page__ - Aliases contact --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(2__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'contact', '', 'Contact us', '', '', '', '', '1', '2022-08-16 14:40:51', '2022-11-20 14:50:10', null, '', 'page', '', '__N__email;__N__ $message = GETPOST(\'message\', \'alpha\');__N__ $cmail = new CMailFile(\'Contact from website\', $to, $from, $message);__N__ if ($cmail->sendfile()) {__N__ ?>__N__ __N__ trans(\"ErrorFailedToSendMail\", $from, $to).\'. \'.$cmail->error;__N__ }__N__}__N__?>__N____N____N____N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    Say Hi

    __N____N__ We are happy to get in touch with you__N__
    __N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__

    Leave a message

    __N__
    __N____N__
    __N__ __N__ __N__ \">__N__ __N__
    __N__
    __N____N__
    __N__ trans(\"Phone\"); ?>__N____N__ __N__
    __N____N__
    __N__ trans(\"Email\"); ?>__N____N__ __N____N__ trans(\"Message\"); ?>__N____N__ __N__
    __N____N__
    __N__ __N__
    __N__ __N__
    __N____N__
    __N__
    Weekdays
    __N____N__
    __N__ $day : \" .getDolGlobalString(\"MAIN_INFO_OPENINGHOURS_$day\") .\"

    \"; __N__ }__N__ ?>__N__
    __N____N__
    Weekends
    __N____N__
    __N__

    Saturday and Sunday

    __N____N__

    to be determined !

    __N__
    __N__
    __N____N__
    __N__

    __N__ __N__

    __N__ getFullAddress() ?>__N__

    __N____N__ __N__
    __N__
    __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N____N____N__ __N__ __N__ __N__
    __N__
    __N__
    __N__

    Reserve a table

    __N____N__ __N__
    __N____N__ __N__
    __N__ __N__ \" />__N__ __N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__ __N__
    __N__ __N__
    __N__
    __N____N__
    __N__
    __N__ __N__ __N____N__
    __N____N____N____N____N__', '', 0); +-- File generated by Dolibarr 17.0.0-beta -- 2022-11-20 14:10:56 UTC --; +-- Page ID 252 -> 3__+MAX_llx_website_page__ - Aliases footer --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(3__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'footer', '', 'Footer', '', '', '', '', '1', '2022-11-20 12:51:50', '2022-11-20 14:07:39', null, '', 'other', '', '__N__
    __N__ __N__ __N__
    __N__', '', 0); +-- File generated by Dolibarr 17.0.0-beta -- 2022-11-20 14:10:56 UTC --; +-- Page ID 253 -> 4__+MAX_llx_website_page__ - Aliases header --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(4__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'header', '', 'Header', '', '', '', '', '1', '2022-11-20 13:12:33', '2022-11-20 14:21:25', null, '', 'menu', '', '
    __N__ __N__
    __N____N__', '', 0); +-- File generated by Dolibarr 17.0.0-beta -- 2022-11-20 14:10:56 UTC --; +-- Page ID 250 -> 5__+MAX_llx_website_page__ - Aliases index --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(5__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'index', '', 'index', '', '', '', '', '1', '2022-08-09 16:34:54', '2022-11-20 15:10:45', null, '', 'page', '', '__N____N____N____N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    __N__ Delicious Steaks__N__

    __N____N__
    __N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N____N__
    __N__ __N__
    __N__
    __N__
    __N__ __N__
    __N____N__
    __N__

    __N__ Fine Dining Restaurant__N__

    __N__
    __N__
    __N____N__
    __N__
    __N__ __N__
    __N____N__
    __N__ __N__

    Steak

    __N____N__ 26.50__N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ __N__
    __N____N__
    __N__ __N__

    __N__ Sausage Pasta__N__

    __N____N__ 18.25__N__
    __N__
    __N__
    __N__
    __N____N__ __N__ __N__ Previous__N__ __N____N__ __N__ __N__ Next__N__ __N__ __N__ __N__ __N__ __N____N__
    __N__
    __N____N__
    __N__
    __N__
    __N__
    __N__

    __N__ Special Menus__N__

    __N__
    __N____N__
    __N__
    __N__
    __N__ __N____N__ Breakfast__N__
    __N____N__ __N__

    Morning Fresh

    __N____N__ 12.50__N____N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__
    __N__
    __N____N__
    __N__
    __N__
    __N__ __N____N__ Lunch__N__
    __N____N__ __N__

    DoliCloud Soup

    __N____N__ 24.50__N____N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N____N__
    __N__
    __N__
    __N__ __N____N__ Dinner__N__
    __N____N__ __N__

    Premium Steak

    __N____N__ 45__N____N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N____N__
    __N__
    __N__
    __N__ __N____N__ Dinner__N__
    __N____N__ __N__

    Seafood Set

    __N____N__ 86__N____N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N____N__
    __N__
    __N__
    __N__ __N____N__ Breakfast__N__
    __N____N__ __N__

    Burger Set

    __N____N__ 20.50__N____N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N____N__
    __N__
    __N__
    __N__ __N____N__ Lunch__N__
    __N____N__ __N__

    Healthy Soup

    __N____N__ 34.20__N____N__ __N__
    __N__ __N__ __N__ __N__ __N__ __N__
    __N__
    __N__
    __N__ __N__ __N__ __N__ __N__
    __N__
    __N____N__
    __N____N____N____N__', '', 0); +UPDATE llx_website SET fk_default_home = 5__+MAX_llx_website_page__ WHERE rowid = __WEBSITE_ID__; +-- File generated by Dolibarr 17.0.0-beta -- 2022-11-20 14:10:56 UTC --; +-- Page ID 251 -> 6__+MAX_llx_website_page__ - Aliases menu --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(6__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'menu', '', 'Our menus', '', '', '', '', '1', '2022-08-16 14:37:03', '2022-11-20 14:30:03', null, '', 'page', '', '__N____N____N____N____N__
    __N__
    __N__
    __N__
    __N__
    __N__
    __N__

    Our Menus

    __N____N__ Perfect for all Breakfast, Lunch and__N__ Dinner__N__
    __N__
    __N__
    __N____N__
    __N__
    __N____N__
    __N__
    __N__
    __N__
    __N__

    Breakfast Menu

    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Fresh Start

    __N____N__ $24.50__N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Baked Creamy

    __N____N__ $16.50__N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Burger Set

    __N____N__ $24.50__N____N__ $36.50__N__
    __N__
    __N__ __N__ __N__ __N__
    __N____N__
    __N__
    __N__
    __N__
    __N__

    Lunch Menu

    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Super Steak Set

    __N____N__ $32.75__N____N__ $55__N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Bread & Steak Set

    __N____N__ $42.50__N__
    __N__
    __N__
    __N__ __N__ __N__
    __N____N__
    __N__
    __N__
    __N__
    __N__

    Dinner Menu

    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Seafood Set

    __N____N__ $65.50__N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Premium Steak

    __N____N__ $74.25__N__
    __N__
    __N__
    __N____N__
    __N__
    __N__ __N____N__ __N__

    Salmon Set

    __N____N__ $60__N__
    __N__
    __N__ __N__ __N__ __N__
    __N__
    __N____N__
    __N____N____N____N__', '', 0); + +-- For Dolibarr v14+ --; +UPDATE llx_website SET lang = 'en' WHERE rowid = __WEBSITE_ID__; +UPDATE llx_website SET otherlang = '' WHERE rowid = __WEBSITE_ID__; + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar.zip b/htdocs/install/doctemplates/websites/website_template-stellar.zip deleted file mode 100644 index 7607cb9bd8a..00000000000 Binary files a/htdocs/install/doctemplates/websites/website_template-stellar.zip and /dev/null differ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/LICENSE b/htdocs/install/doctemplates/websites/website_template-stellar/LICENSE new file mode 100644 index 00000000000..871ef743662 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/LICENSE @@ -0,0 +1,4 @@ +LICENSE +------- + +CC-BY-SA - https://creativecommons.org/licenses/by/4.0/ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/README.md b/htdocs/install/doctemplates/websites/website_template-stellar/README.md new file mode 100644 index 00000000000..3a656b8ddaf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/README.md @@ -0,0 +1 @@ +Website generated by Dolibarr ERP CRM diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/.dolibarr b/htdocs/install/doctemplates/websites/website_template-stellar/containers/.dolibarr new file mode 100644 index 00000000000..0ef9997b4ab --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/.dolibarr @@ -0,0 +1,2 @@ +# Some properties for Dolibarr web site CMS +param=value diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/.htaccess b/htdocs/install/doctemplates/websites/website_template-stellar/containers/.htaccess new file mode 100644 index 00000000000..ed27b33461f --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/.htaccess @@ -0,0 +1,2 @@ +# Order allow,deny +# Deny from all diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/README.md b/htdocs/install/doctemplates/websites/website_template-stellar/containers/README.md new file mode 100644 index 00000000000..06b47fbfb9d --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/README.md @@ -0,0 +1 @@ +Design provided by HTML5up unde CC license. See https://html5up.net/license. diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/credits.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/credits.php new file mode 100644 index 00000000000..9413220a642 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/credits.php @@ -0,0 +1,4 @@ +ref.'/page20.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/footer.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/footer.php new file mode 100644 index 00000000000..f49ea9820eb --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/footer.php @@ -0,0 +1,4 @@ +ref.'/page21.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/generic.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/generic.php new file mode 100644 index 00000000000..125a586cbbf --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/generic.php @@ -0,0 +1,4 @@ +ref.'/page22.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/home.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/home.php new file mode 100644 index 00000000000..17b2d2fcb5e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/home.php @@ -0,0 +1,4 @@ +ref.'/page23.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/htmlheader.html b/htdocs/install/doctemplates/websites/website_template-stellar/containers/htmlheader.html new file mode 100644 index 00000000000..7d92b6f479e --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/htmlheader.html @@ -0,0 +1,8 @@ + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/index.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/index.php new file mode 100644 index 00000000000..3f2d97e57ac --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/index.php @@ -0,0 +1,11 @@ + +/* JS content (all pages) */ + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/manifest.json.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/manifest.json.php new file mode 100644 index 00000000000..b61531d6c11 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/manifest.json.php @@ -0,0 +1,13 @@ + + +ref.'/page24.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/page20.tpl.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page20.tpl.php new file mode 100644 index 00000000000..ace3135f312 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page20.tpl.php @@ -0,0 +1,75 @@ + + + +Credits + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + +
    + + + + + + + + +
    + + +
    + +

    + +This site is edited by name; ?> + + +

    + +
    + +
    + + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/page21.tpl.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page21.tpl.php new file mode 100644 index 00000000000..9cbab5789c9 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page21.tpl.php @@ -0,0 +1,91 @@ + + + +Footer + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + +
    +
    +

    Aliquam sed mauris

    +

    Sed lorem ipsum dolor sit amet et nullam consequat feugiat consequat magna adipiscing tempus etiam dolore veroeros. eget dapibus mauris. Cras aliquet, nisl ut viverra sollicitudin, ligula erat egestas velit, vitae tincidunt odio.

    + +
    +
    +

    Etiam feugiat

    +
    +
    Address
    +
    getFullAddress(1, '
    '); ?>
    +
    Phone
    +
    phone; ?>
    +
    Email
    +
    email; ?>
    +
    +
    + +
    + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/page22.tpl.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page22.tpl.php new file mode 100644 index 00000000000..87bf7faf346 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page22.tpl.php @@ -0,0 +1,119 @@ + + + +Generic page + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + +
    + + + + + + + + +
    + + +
    + +

    Magna feugiat lorem

    +

    Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis fames ac ante ipsum primis in faucibus.

    +

    Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet.

    +

    Tempus veroeros

    +

    Cep risus aliquam gravida cep ut lacus amet. Adipiscing faucibus nunc placerat. Tempus adipiscing turpis non blandit accumsan eget lacinia nunc integer interdum amet aliquam ut orci non col ut ut praesent.

    +
    + + +
    +

    Latest Blog posts

    +
    + loadLangs(array("main","website")); + $fuser = new User($db); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', 5, 0, array('type_container'=>'blogpost', 'status'=>1, 'lang'=>'null,'.$websitepage->lang)); // , 'keywords'=>$keyword + if (is_numeric($arrayofblogs) && $arrayofblogs < 0) { + print '
    '.$weblangs->trans($websitepage->error).'
    '; + } elseif (is_array($arrayofblogs) && ! empty($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + print ''; + } + } else { + print '
    '; + print '
    '; + //print $weblangs->trans("NoArticlesFoundForTheKeyword", $keyword); + print $weblangs->trans("NoArticlesFound"); + print '
    '; + print '
    '; + } + ?> +
    +
    + +
    + + + + + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/page23.tpl.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page23.tpl.php new file mode 100644 index 00000000000..43664b7984b --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page23.tpl.php @@ -0,0 +1,163 @@ + + + +My personal blog + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + +
    + + + + + + + + +
    + + +
    +
    +
    +
    +

    Ipsum sed adipiscing

    +
    +

    Sed lorem ipsum dolor sit amet nullam consequat feugiat consequat magna + adipiscing magna etiam amet veroeros. Lorem ipsum dolor tempus sit cursus. + Tempus nisl et nullam lorem ipsum dolor sit amet aliquam.

    + +
    + +
    +
    + + +
    +
    +

    Magna veroeros

    +
    +
      +
    • + +

      Ipsum consequat

      +

      Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

      +
    • +
    • + +

      Amed sed feugiat

      +

      Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

      +
    • +
    • + +

      Dolor nullam

      +

      Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

      +
    • +
    + +
    + + +
    +
    +

    Ipsum consequat

    +

    Donec imperdiet consequat consequat. Suspendisse feugiat congue
    + posuere. Nulla massa urna, fermentum eget quam aliquet.

    +
    +
      +
    • + + 5,120 Etiam +
    • +
    • + + 8,192 Magna +
    • +
    • + + 2,048 Tempus +
    • +
    • + + 4,096 Aliquam +
    • +
    • + + 1,024 Nullam +
    • +
    +

    Nam elementum nisl et mi a commodo porttitor. Morbi sit amet nisl eu arcu faucibus hendrerit vel a risus. Nam a orci mi, elementum ac arcu sit amet, fermentum pellentesque et purus. Integer maximus varius lorem, sed convallis diam accumsan sed. Etiam porttitor placerat sapien, sed eleifend a enim pulvinar faucibus semper quis ut arcu. Ut non nisl a mollis est efficitur vestibulum. Integer eget purus nec nulla mattis et accumsan ut magna libero. Morbi auctor iaculis porttitor. Sed ut magna ac risus et hendrerit scelerisque. Praesent eleifend lacus in lectus aliquam porta. Cras eu ornare dui curabitur lacinia.

    + +
    + + +
    +
    +

    Congue imperdiet

    +

    Donec imperdiet consequat consequat. Suspendisse feugiat congue
    + posuere. Nulla massa urna, fermentum eget quam aliquet.

    +
    + +
    + +
    + + + +
    + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/page24.tpl.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page24.tpl.php new file mode 100644 index 00000000000..3ea7a55dbd5 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page24.tpl.php @@ -0,0 +1,48 @@ + + + +Menu + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/page25.tpl.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page25.tpl.php new file mode 100644 index 00000000000..ec9e02f4914 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/page25.tpl.php @@ -0,0 +1,44 @@ + + + +This is a Blog post + + + + + + + + + +use_manifest) { print ''."\n"; } ?> + + + + + + + + + + + + +
    + This is a blog post article... +
    + + + + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/robots.txt b/htdocs/install/doctemplates/websites/website_template-stellar/containers/robots.txt new file mode 100644 index 00000000000..2b844f479d6 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/robots.txt @@ -0,0 +1,4 @@ +# Robot file. Generated with Dolibarr +User-agent: * +Allow: /public/ +Disallow: /administrator/ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/styles.css.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/styles.css.php new file mode 100644 index 00000000000..80326972fd5 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/styles.css.php @@ -0,0 +1,2696 @@ + +/* CSS content (all pages) */ +div.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; } +.bodywebsite h1 { margin-top: 0; margin-bottom: 0; padding: 10px;} + +html { + scroll-behavior: smooth +} + +.bodywebsite .centpercent { + width: 100%; +} +.bodywebsite .center { + text-align: center; +} + +.bodywebsite span.icon.alt { + font-size: 0.5em; +} +.bodywebsite .fab.alt:before { + font-family: "Font Awesome 5 Brands" !important; +} + +.bodywebsite .logowebsite { + width: 128px; + height: 128px; + border-radius: 50%; + background-size: contain; + background-size: contain; +} + +.bodywebsite .blog-box { + box-shadow: -1px -1px 12px 5px rgba(85, 85, 85, 0.1) !important; +} + +html.bodywebsite, +.bodywebsite, +.bodywebsite div, +.bodywebsite span, +.bodywebsite applet, +.bodywebsite object, +.bodywebsite iframe, +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6, +.bodywebsite p, +.bodywebsite blockquote, +.bodywebsite pre, +.bodywebsite a, +.bodywebsite abbr, +.bodywebsite acronym, +.bodywebsite address, +.bodywebsite big, +.bodywebsite cite, +.bodywebsite code, +.bodywebsite del, +.bodywebsite dfn, +.bodywebsite em, +.bodywebsite img, +.bodywebsite ins, +.bodywebsite kbd, +.bodywebsite q, +.bodywebsite s, +.bodywebsite samp, +.bodywebsite small, +.bodywebsite strike, +.bodywebsite strong, +.bodywebsite sub, +.bodywebsite sup, +.bodywebsite tt, +.bodywebsite var, +.bodywebsite b, +.bodywebsite u, +.bodywebsite i, +.bodywebsite center, +.bodywebsite dl, +.bodywebsite dt, +.bodywebsite dd, +.bodywebsite ol, +.bodywebsite ul, +.bodywebsite li, +.bodywebsite fieldset, +.bodywebsite form, +.bodywebsite label, +.bodywebsite legend, +.bodywebsite table, +.bodywebsite caption, +.bodywebsite tbody, +.bodywebsite tfoot, +.bodywebsite thead, +.bodywebsite tr, +.bodywebsite th, +.bodywebsite td, +.bodywebsite article, +.bodywebsite aside, +.bodywebsite canvas, +.bodywebsite details, +.bodywebsite embed, +.bodywebsite figure, +.bodywebsite figcaption, +.bodywebsite footer, +.bodywebsite header, +.bodywebsite hgroup, +.bodywebsite menu, +.bodywebsite nav, +.bodywebsite output, +.bodywebsite ruby, +.bodywebsite section, +.bodywebsite summary, +.bodywebsite time, +.bodywebsite mark, +.bodywebsite audio, +.bodywebsite video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +.bodywebsite article, +.bodywebsite aside, +.bodywebsite details, +.bodywebsite figcaption, +.bodywebsite figure, +.bodywebsite footer, +.bodywebsite header, +.bodywebsite hgroup, +.bodywebsite menu, +.bodywebsite nav, +.bodywebsite section { + display: block; +} +.bodywebsite { + line-height: 1; + background-image: -moz-linear-gradient(45deg, #4376e2 15%, #5f4d93 85%); + background-image: -webkit-linear-gradient(45deg, #4376e2 15%, #5f4d93 85%); + background-image: -ms-linear-gradient(45deg, #4376e2 15%, #5f4d93 85%); + background-image: linear-gradient(45deg, #4376e2 15%, #5f4d93 85%); +} +.bodywebsite ol, +.bodywebsite ul { + list-style: none; +} +.bodywebsite blockquote, +.bodywebsite q { + quotes: none; +} +.bodywebsite blockquote:before, +.bodywebsite blockquote:after, +.bodywebsite q:before, +.bodywebsite q:after { + content: ''; + content: none; +} +.bodywebsite table { + border-collapse: collapse; + border-spacing: 0; +} +.bodywebsite { + -webkit-text-size-adjust: none; +} +.bodywebsite mark { + background-color: transparent; + color: inherit; +} +.bodywebsite input::-moz-focus-inner { + border: 0; + padding: 0; +} +.bodywebsite input, +.bodywebsite select, +.bodywebsite textarea { + -moz-appearance: none; + -webkit-appearance: none; + -ms-appearance: none; + appearance: none; +} +@-ms-viewport { + width: device-width; +} +.bodywebsite { + -ms-overflow-style: scrollbar; +} +@media screen and (max-width: 480px) { + .bodywebsite html, + .bodywebsite { + min-width: 320px; + } +} +.bodywebsite html { + box-sizing: border-box; +} +.bodywebsite *, +.bodywebsite *:before, +.bodywebsite *:after { + box-sizing: inherit; +} +.bodywebsite { + background-color: #935d8c; +} +.bodywebsite.is-preload *, +.bodywebsite.is-preload *:before, +.bodywebsite.is-preload *:after { + -moz-animation: none !important; + -webkit-animation: none !important; + -ms-animation: none !important; + animation: none !important; + -moz-transition: none !important; + -webkit-transition: none !important; + -ms-transition: none !important; + transition: none !important; +} +.bodywebsite { + background-color: #935d8c; + color: rgba(255, 255, 255, 0.65); +} +.bodywebsite { + font-family: "Source Sans", Helvetica, sans-serif; + font-weight: 300; + line-height: 1.65; +} +@media screen and (max-width: 1680px) { + .bodywebsite body, + .bodywebsite input, + .bodywebsite select, + .bodywebsite textarea { + font-size: 14pt; + } +} +@media screen and (max-width: 1280px) { + .bodywebsite body, + .bodywebsite input, + .bodywebsite select, + .bodywebsite textarea { + font-size: 12pt; + } +} +@media screen and (max-width: 360px) { + .bodywebsite body, + .bodywebsite input, + .bodywebsite select, + .bodywebsite textarea { + font-size: 11pt; + } +} +.bodywebsite a { + -moz-transition: color 0.2s ease, border-bottom 0.2s ease; + -webkit-transition: color 0.2s ease, border-bottom 0.2s ease; + -ms-transition: color 0.2s ease, border-bottom 0.2s ease; + transition: color 0.2s ease, border-bottom 0.2s ease; + text-decoration: none; + border-bottom: dotted 1px; + color: inherit; +} +.bodywebsite a:hover { + border-bottom-color: transparent; +} +.bodywebsite strong, +.bodywebsite b { + font-weight: 400; +} +.bodywebsite em, +.bodywebsite i { + font-style: italic; +} +.bodywebsite p { + margin: 0 0 2em 0; +} +.bodywebsite p.content { + -moz-columns: 20em 2; + -webkit-columns: 20em 2; + -ms-columns: 20em 2; + columns: 20em 2; + -moz-column-gap: 2em; + -webkit-column-gap: 2em; + -ms-column-gap: 2em; + column-gap: 2em; + text-align: justify; +} +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + font-weight: 300; + line-height: 1.5; + margin: 0 0 0.7em 0; + letter-spacing: -0.025em; +} +.bodywebsite h1 a, +.bodywebsite h2 a, +.bodywebsite h3 a, +.bodywebsite h4 a, +.bodywebsite h5 a, +.bodywebsite h6 a { + color: inherit; + text-decoration: none; +} +.bodywebsite h1 { + font-size: 2.5em; + line-height: 1.2; +} +.bodywebsite h2 { + font-size: 1.5em; +} +.bodywebsite h3 { + font-size: 1.25em; +} +.bodywebsite h4 { + font-size: 1.1em; +} +.bodywebsite h5 { + font-size: 0.9em; +} +.bodywebsite h6 { + font-size: 0.7em; +} +@media screen and (max-width: 736px) { + .bodywebsite h1 { + font-size: 2em; + } +} +.bodywebsite sub { + font-size: 0.8em; + position: relative; + top: 0.5em; +} +.bodywebsite sup { + font-size: 0.8em; + position: relative; + top: -0.5em; +} +.bodywebsite blockquote { + border-left: solid 4px; + font-style: italic; + margin: 0 0 2em 0; + padding: 0.5em 0 0.5em 2em; +} +.bodywebsite code { + border-radius: 8px; + border: solid 1px; + font-family: "Courier New", monospace; + font-size: 0.9em; + margin: 0 0.25em; + padding: 0.25em 0.65em; +} +.bodywebsite pre { + -webkit-overflow-scrolling: touch; + font-family: "Courier New", monospace; + font-size: 0.9em; + margin: 0 0 2em 0; +} +.bodywebsite pre code { + display: block; + line-height: 1.75; + padding: 1em 1.5em; + overflow-x: auto; +} +.bodywebsite hr { + border: 0; + border-bottom: solid 1px; + margin: 2em 0; +} +.bodywebsite hr.major { + margin: 3em 0; +} +.bodywebsite .align-left { + text-align: left; +} +.bodywebsite .align-center { + text-align: center; +} +.bodywebsite .align-right { + text-align: right; +} +.bodywebsite input, +.bodywebsite select, +.bodywebsite textarea { + color: #ffffff; +} +.bodywebsite a:hover { + color: #ffffff; +} +.bodywebsite strong, +.bodywebsite b { + color: #ffffff; +} +.bodywebsite h1, +.bodywebsite h2, +.bodywebsite h3, +.bodywebsite h4, +.bodywebsite h5, +.bodywebsite h6 { + color: #ffffff; +} +.bodywebsite blockquote { + border-left-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite code { + background: rgba(255, 255, 255, 0.075); + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite hr { + border-bottom-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite .row { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; + align-items: stretch; +} +.bodywebsite .row > * { + box-sizing: border-box; +} +.bodywebsite .row.aln-left { + justify-content: flex-start; +} +.bodywebsite .row.aln-center { + justify-content: center; +} +.bodywebsite .row.aln-right { + justify-content: flex-end; +} +.bodywebsite .row.aln-top { + align-items: flex-start; +} +.bodywebsite .row.aln-middle { + align-items: center; +} +.bodywebsite .row.aln-bottom { + align-items: flex-end; +} +.bodywebsite .row > .imp { + order: -1; +} +.bodywebsite .row > .col-1 { + width: 8.33333%; +} +.bodywebsite .row > .off-1 { + margin-left: 8.33333%; +} +.bodywebsite .row > .col-2 { + width: 16.66667%; +} +.bodywebsite .row > .off-2 { + margin-left: 16.66667%; +} +.bodywebsite .row > .col-3 { + width: 25%; +} +.bodywebsite .row > .off-3 { + margin-left: 25%; +} +.bodywebsite .row > .col-4 { + width: 33.33333%; +} +.bodywebsite .row > .off-4 { + margin-left: 33.33333%; +} +.bodywebsite .row > .col-5 { + width: 41.66667%; +} +.bodywebsite .row > .off-5 { + margin-left: 41.66667%; +} +.bodywebsite .row > .col-6 { + width: 50%; +} +.bodywebsite .row > .off-6 { + margin-left: 50%; +} +.bodywebsite .row > .col-7 { + width: 58.33333%; +} +.bodywebsite .row > .off-7 { + margin-left: 58.33333%; +} +.bodywebsite .row > .col-8 { + width: 66.66667%; +} +.bodywebsite .row > .off-8 { + margin-left: 66.66667%; +} +.bodywebsite .row > .col-9 { + width: 75%; +} +.bodywebsite .row > .off-9 { + margin-left: 75%; +} +.bodywebsite .row > .col-10 { + width: 83.33333%; +} +.bodywebsite .row > .off-10 { + margin-left: 83.33333%; +} +.bodywebsite .row > .col-11 { + width: 91.66667%; +} +.bodywebsite .row > .off-11 { + margin-left: 91.66667%; +} +.bodywebsite .row > .col-12 { + width: 100%; +} +.bodywebsite .row > .off-12 { + margin-left: 100%; +} +.bodywebsite .row { + margin-top: 0; +} +.bodywebsite .row > * { + padding: 0 0 0 0; +} +@media screen and (max-width: 1680px) { + .bodywebsite .row { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; + align-items: stretch; + } + .bodywebsite .row > * { + box-sizing: border-box; + } + .bodywebsite .row.aln-left { + justify-content: flex-start; + } + .bodywebsite .row.aln-center { + justify-content: center; + } + .bodywebsite .row.aln-right { + justify-content: flex-end; + } + .bodywebsite .row.aln-top { + align-items: flex-start; + } + .bodywebsite .row.aln-middle { + align-items: center; + } + .bodywebsite .row.aln-bottom { + align-items: flex-end; + } + .bodywebsite .row > .imp-xlarge { + order: -1; + } + .bodywebsite .row > .col-1-xlarge { + width: 8.33333%; + } + .bodywebsite .row > .off-1-xlarge { + margin-left: 8.33333%; + } + .bodywebsite .row > .col-2-xlarge { + width: 16.66667%; + } + .bodywebsite .row > .off-2-xlarge { + margin-left: 16.66667%; + } + .bodywebsite .row > .col-3-xlarge { + width: 25%; + } + .bodywebsite .row > .off-3-xlarge { + margin-left: 25%; + } + .bodywebsite .row > .col-4-xlarge { + width: 33.33333%; + } + .bodywebsite .row > .off-4-xlarge { + margin-left: 33.33333%; + } + .bodywebsite .row > .col-5-xlarge { + width: 41.66667%; + } + .bodywebsite .row > .off-5-xlarge { + margin-left: 41.66667%; + } + .bodywebsite .row > .col-6-xlarge { + width: 50%; + } + .bodywebsite .row > .off-6-xlarge { + margin-left: 50%; + } + .bodywebsite .row > .col-7-xlarge { + width: 58.33333%; + } + .bodywebsite .row > .off-7-xlarge { + margin-left: 58.33333%; + } + .bodywebsite .row > .col-8-xlarge { + width: 66.66667%; + } + .bodywebsite .row > .off-8-xlarge { + margin-left: 66.66667%; + } + .bodywebsite .row > .col-9-xlarge { + width: 75%; + } + .bodywebsite .row > .off-9-xlarge { + margin-left: 75%; + } + .bodywebsite .row > .col-10-xlarge { + width: 83.33333%; + } + .bodywebsite .row > .off-10-xlarge { + margin-left: 83.33333%; + } + .bodywebsite .row > .col-11-xlarge { + width: 91.66667%; + } + .bodywebsite .row > .off-11-xlarge { + margin-left: 91.66667%; + } + .bodywebsite .row > .col-12-xlarge { + width: 100%; + } + .bodywebsite .row > .off-12-xlarge { + margin-left: 100%; + } + .bodywebsite .row { + margin-top: 0; + margin-left: 0; + } + .bodywebsite .row > * { + padding: 0 0 0 0; + } +} +@media screen and (max-width: 1280px) { + .bodywebsite .row { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; + align-items: stretch; + } + .bodywebsite .row > * { + box-sizing: border-box; + } + .bodywebsite .row.aln-left { + justify-content: flex-start; + } + .bodywebsite .row.aln-center { + justify-content: center; + } + .bodywebsite .row.aln-right { + justify-content: flex-end; + } + .bodywebsite .row.aln-top { + align-items: flex-start; + } + .bodywebsite .row.aln-middle { + align-items: center; + } + .bodywebsite .row.aln-bottom { + align-items: flex-end; + } + .bodywebsite .row > .imp-large { + order: -1; + } + .bodywebsite .row > .col-1-large { + width: 8.33333%; + } + .bodywebsite .row > .off-1-large { + margin-left: 8.33333%; + } + .bodywebsite .row > .col-2-large { + width: 16.66667%; + } + .bodywebsite .row > .off-2-large { + margin-left: 16.66667%; + } + .bodywebsite .row > .col-3-large { + width: 25%; + } + .bodywebsite .row > .off-3-large { + margin-left: 25%; + } + .bodywebsite .row > .col-4-large { + width: 33.33333%; + } + .bodywebsite .row > .off-4-large { + margin-left: 33.33333%; + } + .bodywebsite .row > .col-5-large { + width: 41.66667%; + } + .bodywebsite .row > .off-5-large { + margin-left: 41.66667%; + } + .bodywebsite .row > .col-6-large { + width: 50%; + } + .bodywebsite .row > .off-6-large { + margin-left: 50%; + } + .bodywebsite .row > .col-7-large { + width: 58.33333%; + } + .bodywebsite .row > .off-7-large { + margin-left: 58.33333%; + } + .bodywebsite .row > .col-8-large { + width: 66.66667%; + } + .bodywebsite .row > .off-8-large { + margin-left: 66.66667%; + } + .bodywebsite .row > .col-9-large { + width: 75%; + } + .bodywebsite .row > .off-9-large { + margin-left: 75%; + } + .bodywebsite .row > .col-10-large { + width: 83.33333%; + } + .bodywebsite .row > .off-10-large { + margin-left: 83.33333%; + } + .bodywebsite .row > .col-11-large { + width: 91.66667%; + } + .bodywebsite .row > .off-11-large { + margin-left: 91.66667%; + } + .bodywebsite .row > .col-12-large { + width: 100%; + } + .bodywebsite .row > .off-12-large { + margin-left: 100%; + } + .bodywebsite .row { + margin-top: 0; + } + .bodywebsite .row > * { + padding: 0 0 0 1.5em; + } +} +@media screen and (max-width: 980px) { + .bodywebsite .row { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; + align-items: stretch; + } + .bodywebsite .row > * { + box-sizing: border-box; + } + .bodywebsite .row.aln-left { + justify-content: flex-start; + } + .bodywebsite .row.aln-center { + justify-content: center; + } + .bodywebsite .row.aln-right { + justify-content: flex-end; + } + .bodywebsite .row.aln-top { + align-items: flex-start; + } + .bodywebsite .row.aln-middle { + align-items: center; + } + .bodywebsite .row.aln-bottom { + align-items: flex-end; + } + .bodywebsite .row > .imp-medium { + order: -1; + } + .bodywebsite .row > .col-1-medium { + width: 8.33333%; + } + .bodywebsite .row > .off-1-medium { + margin-left: 8.33333%; + } + .bodywebsite .row > .col-2-medium { + width: 16.66667%; + } + .bodywebsite .row > .off-2-medium { + margin-left: 16.66667%; + } + .bodywebsite .row > .col-3-medium { + width: 25%; + } + .bodywebsite .row > .off-3-medium { + margin-left: 25%; + } + .bodywebsite .row > .col-4-medium { + width: 33.33333%; + } + .bodywebsite .row > .off-4-medium { + margin-left: 33.33333%; + } + .bodywebsite .row > .col-5-medium { + width: 41.66667%; + } + .bodywebsite .row > .off-5-medium { + margin-left: 41.66667%; + } + .bodywebsite .row > .col-6-medium { + width: 50%; + } + .bodywebsite .row > .off-6-medium { + margin-left: 50%; + } + .bodywebsite .row > .col-7-medium { + width: 58.33333%; + } + .bodywebsite .row > .off-7-medium { + margin-left: 58.33333%; + } + .bodywebsite .row > .col-8-medium { + width: 66.66667%; + } + .bodywebsite .row > .off-8-medium { + margin-left: 66.66667%; + } + .bodywebsite .row > .col-9-medium { + width: 75%; + } + .bodywebsite .row > .off-9-medium { + margin-left: 75%; + } + .bodywebsite .row > .col-10-medium { + width: 83.33333%; + } + .bodywebsite .row > .off-10-medium { + margin-left: 83.33333%; + } + .bodywebsite .row > .col-11-medium { + width: 91.66667%; + } + .bodywebsite .row > .off-11-medium { + margin-left: 91.66667%; + } + .bodywebsite .row > .col-12-medium { + width: 100%; + } + .bodywebsite .row > .off-12-medium { + margin-left: 100%; + } + .bodywebsite .row { + margin-top: 0; + } + .bodywebsite .row > * { + padding: 0 0 0 1.5em; + } +} +@media screen and (max-width: 736px) { + .bodywebsite .row { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; + align-items: stretch; + } + .bodywebsite .row > * { + box-sizing: border-box; + } + .bodywebsite .row.aln-left { + justify-content: flex-start; + } + .bodywebsite .row.aln-center { + justify-content: center; + } + .bodywebsite .row.aln-right { + justify-content: flex-end; + } + .bodywebsite .row.aln-top { + align-items: flex-start; + } + .bodywebsite .row.aln-middle { + align-items: center; + } + .bodywebsite .row.aln-bottom { + align-items: flex-end; + } + .bodywebsite .row > .imp-small { + order: -1; + } + .bodywebsite .row > .col-1-small { + width: 8.33333%; + } + .bodywebsite .row > .off-1-small { + margin-left: 8.33333%; + } + .bodywebsite .row > .col-2-small { + width: 16.66667%; + } + .bodywebsite .row > .off-2-small { + margin-left: 16.66667%; + } + .bodywebsite .row > .col-3-small { + width: 25%; + } + .bodywebsite .row > .off-3-small { + margin-left: 25%; + } + .bodywebsite .row > .col-4-small { + width: 33.33333%; + } + .bodywebsite .row > .off-4-small { + margin-left: 33.33333%; + } + .bodywebsite .row > .col-5-small { + width: 41.66667%; + } + .bodywebsite .row > .off-5-small { + margin-left: 41.66667%; + } + .bodywebsite .row > .col-6-small { + width: 50%; + } + .bodywebsite .row > .off-6-small { + margin-left: 50%; + } + .bodywebsite .row > .col-7-small { + width: 58.33333%; + } + .bodywebsite .row > .off-7-small { + margin-left: 58.33333%; + } + .bodywebsite .row > .col-8-small { + width: 66.66667%; + } + .bodywebsite .row > .off-8-small { + margin-left: 66.66667%; + } + .bodywebsite .row > .col-9-small { + width: 75%; + } + .bodywebsite .row > .off-9-small { + margin-left: 75%; + } + .bodywebsite .row > .col-10-small { + width: 83.33333%; + } + .bodywebsite .row > .off-10-small { + margin-left: 83.33333%; + } + .bodywebsite .row > .col-11-small { + width: 91.66667%; + } + .bodywebsite .row > .off-11-small { + margin-left: 91.66667%; + } + .bodywebsite .row > .col-12-small { + width: 100%; + } + .bodywebsite .row > .off-12-small { + margin-left: 100%; + } + .bodywebsite .row { + margin-top: 0; + } + .bodywebsite .row > * { + padding: 0 0 0 1em; + } +} +@media screen and (max-width: 480px) { + .bodywebsite .row { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; + align-items: stretch; + } + .bodywebsite .row > * { + box-sizing: border-box; + } + .bodywebsite .row.aln-left { + justify-content: flex-start; + } + .bodywebsite .row.aln-center { + justify-content: center; + } + .bodywebsite .row.aln-right { + justify-content: flex-end; + } + .bodywebsite .row.aln-top { + align-items: flex-start; + } + .bodywebsite .row.aln-middle { + align-items: center; + } + .bodywebsite .row.aln-bottom { + align-items: flex-end; + } + .bodywebsite .row > .imp-xsmall { + order: -1; + } + .bodywebsite .row > .col-1-xsmall { + width: 8.33333%; + } + .bodywebsite .row > .off-1-xsmall { + margin-left: 8.33333%; + } + .bodywebsite .row > .col-2-xsmall { + width: 16.66667%; + } + .bodywebsite .row > .off-2-xsmall { + margin-left: 16.66667%; + } + .bodywebsite .row > .col-3-xsmall { + width: 25%; + } + .bodywebsite .row > .off-3-xsmall { + margin-left: 25%; + } + .bodywebsite .row > .col-4-xsmall { + width: 33.33333%; + } + .bodywebsite .row > .off-4-xsmall { + margin-left: 33.33333%; + } + .bodywebsite .row > .col-5-xsmall { + width: 41.66667%; + } + .bodywebsite .row > .off-5-xsmall { + margin-left: 41.66667%; + } + .bodywebsite .row > .col-6-xsmall { + width: 50%; + } + .bodywebsite .row > .off-6-xsmall { + margin-left: 50%; + } + .bodywebsite .row > .col-7-xsmall { + width: 58.33333%; + } + .bodywebsite .row > .off-7-xsmall { + margin-left: 58.33333%; + } + .bodywebsite .row > .col-8-xsmall { + width: 66.66667%; + } + .bodywebsite .row > .off-8-xsmall { + margin-left: 66.66667%; + } + .bodywebsite .row > .col-9-xsmall { + width: 75%; + } + .bodywebsite .row > .off-9-xsmall { + margin-left: 75%; + } + .bodywebsite .row > .col-10-xsmall { + width: 83.33333%; + } + .bodywebsite .row > .off-10-xsmall { + margin-left: 83.33333%; + } + .bodywebsite .row > .col-11-xsmall { + width: 91.66667%; + } + .bodywebsite .row > .off-11-xsmall { + margin-left: 91.66667%; + } + .bodywebsite .row > .col-12-xsmall { + width: 100%; + } + .bodywebsite .row > .off-12-xsmall { + margin-left: 100%; + } + .bodywebsite .row { + margin-top: 0; + } + .bodywebsite .row > * { + padding: 0 0 0 1.25em; + } +} +.bodywebsite .box { + border-radius: 8px; + border: solid; + margin-bottom: 2em; + padding: 1.5em; +} +.bodywebsite .box > :last-child, +.bodywebsite .box > :last-child > :last-child, +.bodywebsite .box > :last-child > :last-child > :last-child { + margin-bottom: 0; +} +.bodywebsite .box.alt { + border: 0; + border-radius: 0; + padding: 0; +} +.bodywebsite .box { + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite input[type="submit"], +.bodywebsite input[type="reset"], +.bodywebsite input[type="button"], +.bodywebsite button, +.bodywebsite .buttonwebsite { + -moz-appearance: none; + -webkit-appearance: none; + -ms-appearance: none; + appearance: none; + -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + border-radius: 8px; + border: 0; + cursor: pointer; + display: inline-block; + font-weight: 300; + height: 2.75em; + line-height: 2.75em; + min-width: 9.25em; + padding: 0 1.5em; + text-align: center; + text-decoration: none; + white-space: nowrap; +} +.bodywebsite input[type="submit"].icon, +.bodywebsite input[type="reset"].icon, +.bodywebsite input[type="button"].icon, +.bodywebsite button.icon, +.bodywebsite .buttonwebsite.icon { + padding-left: 1.35em; +} +.bodywebsite input[type="submit"].icon:before, +.bodywebsite input[type="reset"].icon:before, +.bodywebsite input[type="button"].icon:before, +.bodywebsite button.icon:before, +.bodywebsite .buttonwebsite.icon:before { + margin-right: 0.5em; +} +.bodywebsite input[type="submit"].fit, +.bodywebsite input[type="reset"].fit, +.bodywebsite input[type="button"].fit, +.bodywebsite button.fit, +.bodywebsite .buttonwebsite.fit { + width: 100%; +} +.bodywebsite input[type="submit"].small, +.bodywebsite input[type="reset"].small, +.bodywebsite input[type="button"].small, +.bodywebsite button.small, +.bodywebsite .buttonwebsite.small { + font-size: 0.8em; +} +.bodywebsite input[type="submit"].large, +.bodywebsite input[type="reset"].large, +.bodywebsite input[type="button"].large, +.bodywebsite button.large, +.bodywebsite .buttonwebsite.large { + font-size: 1.35em; +} +.bodywebsite input[type="submit"].disabled, +.bodywebsite input[type="submit"]:disabled, +.bodywebsite input[type="reset"].disabled, +.bodywebsite input[type="reset"]:disabled, +.bodywebsite input[type="button"].disabled, +.bodywebsite input[type="button"]:disabled, +.bodywebsite button.disabled, +.bodywebsite button:disabled, +.bodywebsite .buttonwebsite.disabled, +.bodywebsite .buttonwebsite:disabled { + pointer-events: none; + opacity: 0.25; +} +@media screen and (max-width: 736px) { + .bodywebsite input[type="submit"], + .bodywebsite input[type="reset"], + .bodywebsite input[type="button"], + .bodywebsite button, + .bodywebsite .buttonwebsite { + min-width: 0; + } +} +.bodywebsite input[type="submit"], +.bodywebsite input[type="reset"], +.bodywebsite input[type="button"], +.bodywebsite button, +.bodywebsite .buttonwebsite { + background-color: transparent; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35); + color: #ffffff !important; +} +.bodywebsite input[type="submit"]:hover, +.bodywebsite input[type="reset"]:hover, +.bodywebsite input[type="button"]:hover, +.bodywebsite button:hover, +.bodywebsite .buttonwebsite:hover { + background-color: rgba(255, 255, 255, 0.075); +} +.bodywebsite input[type="submit"]:active, +.bodywebsite input[type="reset"]:active, +.bodywebsite input[type="button"]:active, +.bodywebsite button:active, +.bodywebsite .buttonwebsite:active { + background-color: rgba(255, 255, 255, 0.2); +} +.bodywebsite input[type="submit"].icon:before, +.bodywebsite input[type="reset"].icon:before, +.bodywebsite input[type="button"].icon:before, +.bodywebsite button.icon:before, +.bodywebsite .buttonwebsite.icon:before { + color: rgba(255, 255, 255, 0.5); +} +.bodywebsite input[type="submit"].primary, +.bodywebsite input[type="reset"].primary, +.bodywebsite input[type="button"].primary, +.bodywebsite button.primary, +.bodywebsite .buttonwebsite.primary { + background-color: #8cc9f0; + color: #ffffff !important; + box-shadow: none; +} +.bodywebsite input[type="submit"].primary:hover, +.bodywebsite input[type="reset"].primary:hover, +.bodywebsite input[type="button"].primary:hover, +.bodywebsite button.primary:hover, +.bodywebsite .buttonwebsite.primary:hover { + background-color: #9acff2; +} +.bodywebsite input[type="submit"].primary:active, +.bodywebsite input[type="reset"].primary:active, +.bodywebsite input[type="button"].primary:active, +.bodywebsite button.primary:active, +.bodywebsite .buttonwebsite.primary:active { + background-color: #7ec3ee; +} +.bodywebsite input[type="submit"].primary.icon:before, +.bodywebsite input[type="reset"].primary.icon:before, +.bodywebsite input[type="button"].primary.icon:before, +.bodywebsite button.primary.icon:before, +.bodywebsite .buttonwebsite.primary.icon:before { + color: #ffffff !important; +} +.bodywebsite form { + margin: 0 0 2em 0; +} +.bodywebsite label { + display: block; + font-size: 0.9em; + font-weight: 400; + margin: 0 0 1em 0; +} +.bodywebsite input[type="text"], +.bodywebsite input[type="password"], +.bodywebsite input[type="email"], +.bodywebsite select, +.bodywebsite textarea { + -moz-appearance: none; + -webkit-appearance: none; + -ms-appearance: none; + appearance: none; + border-radius: 8px; + border: solid 1px; + color: inherit; + display: block; + outline: 0; + padding: 0 1em; + text-decoration: none; + width: 100%; +} +.bodywebsite input[type="text"]:invalid, +.bodywebsite input[type="password"]:invalid, +.bodywebsite input[type="email"]:invalid, +.bodywebsite select:invalid, +.bodywebsite textarea:invalid { + box-shadow: none; +} +.bodywebsite select { + background-size: 1.25rem; + background-repeat: no-repeat; + background-position: calc(100% - 1rem) center; + height: 2.75em; + padding-right: 2.75em; + text-overflow: ellipsis; +} +.bodywebsite select:focus::-ms-value { + background-color: transparent; +} +.bodywebsite select::-ms-expand { + display: none; +} +.bodywebsite input[type="text"], +.bodywebsite input[type="password"], +.bodywebsite input[type="email"], +.bodywebsite select { + height: 2.75em; +} +.bodywebsite textarea { + padding: 0.75em 1em; +} +.bodywebsite input[type="checkbox"], +.bodywebsite input[type="radio"] { + -moz-appearance: none; + -webkit-appearance: none; + -ms-appearance: none; + appearance: none; + display: block; + float: left; + margin-right: -2em; + opacity: 0; + width: 1em; + z-index: -1; +} +.bodywebsite input[type="checkbox"] + label, +.bodywebsite input[type="radio"] + label { + text-decoration: none; + cursor: pointer; + display: inline-block; + font-size: 1em; + font-weight: 300; + padding-left: 2.4em; + padding-right: 0.75em; + position: relative; +} +.bodywebsite input[type="checkbox"] + label:before, +.bodywebsite input[type="radio"] + label:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + text-transform: none !important; + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} +.bodywebsite input[type="checkbox"] + label:before, +.bodywebsite input[type="radio"] + label:before { + border-radius: 8px; + border: solid 1px; + content: ''; + display: inline-block; + font-size: 0.8em; + height: 2.0625em; + left: 0; + line-height: 2.0625em; + position: absolute; + text-align: center; + top: 0; + width: 2.0625em; +} +.bodywebsite input[type="checkbox"]:checked + label:before, +.bodywebsite input[type="radio"]:checked + label:before { + content: '\f00c'; +} +.bodywebsite input[type="checkbox"] + label:before { + border-radius: 8px; +} +.bodywebsite input[type="radio"] + label:before { + border-radius: 100%; +} +.bodywebsite ::-webkit-input-placeholder { + opacity: 1; +} +.bodywebsite :-moz-placeholder { + opacity: 1; +} +.bodywebsite ::-moz-placeholder { + opacity: 1; +} +.bodywebsite :-ms-input-placeholder { + opacity: 1; +} +.bodywebsite label { + color: #ffffff; +} +.bodywebsite input[type="text"], +.bodywebsite input[type="password"], +.bodywebsite input[type="email"], +.bodywebsite select, +.bodywebsite textarea { + background-color: rgba(255, 255, 255, 0.075); + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite input[type="text"]:focus, +.bodywebsite input[type="password"]:focus, +.bodywebsite input[type="email"]:focus, +.bodywebsite select:focus, +.bodywebsite textarea:focus { + border-color: #8cc9f0; + box-shadow: 0 0 0 1px #8cc9f0; +} +.bodywebsite select { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(255, 255, 255, 0.35)' /%3E%3C/svg%3E"); +} +.bodywebsite select option { + color: #ffffff; + background: #935d8c; +} +.bodywebsite input[type="checkbox"] + label, +.bodywebsite input[type="radio"] + label { + color: rgba(255, 255, 255, 0.65); +} +.bodywebsite input[type="checkbox"] + label:before, +.bodywebsite input[type="radio"] + label:before { + background: rgba(255, 255, 255, 0.075); + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite input[type="checkbox"]:checked + label:before, +.bodywebsite input[type="radio"]:checked + label:before { + background-color: #ffffff; + border-color: #ffffff; + color: #935d8c; +} +.bodywebsite input[type="checkbox"]:focus + label:before, +.bodywebsite input[type="radio"]:focus + label:before { + border-color: #8cc9f0; + box-shadow: 0 0 0 1px #8cc9f0; +} +.bodywebsite ::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5) !important; +} +.bodywebsite :-moz-placeholder { + color: rgba(255, 255, 255, 0.5) !important; +} +.bodywebsite ::-moz-placeholder { + color: rgba(255, 255, 255, 0.5) !important; +} +.bodywebsite :-ms-input-placeholder { + color: rgba(255, 255, 255, 0.5) !important; +} +.bodywebsite .formerize-placeholder { + color: rgba(255, 255, 255, 0.5) !important; +} +.bodywebsite .icon { + text-decoration: none; + -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + border-bottom: none; + position: relative; +} +.bodywebsite .icon:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + text-transform: none !important; + font-family: "Font Awesome 5 Free"; +} +.bodywebsite .icon > .label { + display: none; +} +.bodywebsite .icon:before { + line-height: solid; +} +.bodywebsite .icon.solid:before { + font-weight: 900; +} +.bodywebsite .icon.brands:before { + font-family: 'Font Awesome 5 Brands'; +} +.bodywebsite .icon.major { + border: solid 1px; + display: inline-block; + border-radius: 100%; + padding: 0.65em; + margin: 0 0 2em 0; + cursor: default; +} +.bodywebsite .icon.major:before { + display: inline-block; + font-size: 6.25rem; + font-weight: 600; + font-family: "Font Awesome 5 Free"; + width: 2.25em; + height: 2.25em; + line-height: 2.2em; + border-radius: 100%; + border: solid 1px; + text-align: center; +} +.bodywebsite .icon.alt { + display: inline-block; + border: solid 1px; + border-radius: 100%; +} +.bodywebsite .icon.alt:before { + display: block; + font-size: 1.25em; + font-family: "Font Awesome 5 Free"; + width: 2em; + height: 2em; + text-align: center; + line-height: 2em; +} +.bodywebsite .icon.style1 { + color: #efa8b0; +} +.bodywebsite .icon.style2 { + color: #c79cc8; +} +.bodywebsite .icon.style3 { + color: #a89cc8; +} +.bodywebsite .icon.style4 { + color: #9bb2e1; +} +.bodywebsite .icon.style5 { + color: #8cc9f0; +} +@media screen and (max-width: 1680px) { + .bodywebsite .icon.major:before { + font-size: 5.5rem; + } +} +@media screen and (max-width: 1280px) { + .bodywebsite .icon.major:before { + font-size: 4.75rem; + } +} +@media screen and (max-width: 736px) { + .bodywebsite .icon.major { + margin: 0 0 1.5em 0; + padding: 0.35em; + } + .bodywebsite .icon.major:before { + font-size: 3.5rem; + } +} +.bodywebsite .icon.major { + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite .icon.major:before { + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite .icon.alt { + border-color: rgba(255, 255, 255, 0.35); + color: #ffffff; +} +.bodywebsite .icon.alt:hover { + background-color: rgba(255, 255, 255, 0.075); +} +.bodywebsite .icon.alt:active { + background-color: rgba(255, 255, 255, 0.2); +} +.bodywebsite .image { + border-radius: 8px; + border: 0; + display: inline-block; + position: relative; +} +.bodywebsite .image img { + border-radius: 8px; + display: block; +} +.bodywebsite .image.left, +.bodywebsite .image.right { + max-width: 40%; +} +.bodywebsite .image.left img, +.bodywebsite .image.right img { + width: 100%; +} +.bodywebsite .image.left { + float: left; + margin: 0 1.5em 1em 0; + top: 0.25em; +} +.bodywebsite .image.right { + float: right; + margin: 0 0 1em 1.5em; + top: 0.25em; +} +.bodywebsite .image.fit { + display: block; + margin: 0 0 2em 0; + width: 100%; +} +.bodywebsite .image.fit img { + width: 100%; +} +.bodywebsite .image.main { + display: block; + margin: 0 0 3em 0; + width: 100%; +} +.bodywebsite .image.main img { + width: 100%; +} +.bodywebsite ol { + list-style: decimal; + margin: 0 0 2em 0; + padding-left: 1.25em; +} +.bodywebsite ol li { + padding-left: 0.25em; +} +.bodywebsite ul { + list-style: disc; + margin: 0 0 2em 0; + padding-left: 1em; +} +.bodywebsite ul li { + padding-left: 0.5em; +} +.bodywebsite ul.alt { + list-style: none; + padding-left: 0; +} +.bodywebsite ul.alt li { + border-top: solid 1px; + padding: 0.5em 0; +} +.bodywebsite ul.alt li:first-child { + border-top: 0; + padding-top: 0; +} +.bodywebsite dl { + margin: 0 0 2em 0; +} +.bodywebsite dl dt { + display: block; + font-weight: 400; + margin: 0 0 1em 0; +} +.bodywebsite dl dd { + margin-left: 2em; +} +.bodywebsite dl.alt dt { + display: block; + width: 3em; + margin: 0; + clear: left; + float: left; +} +.bodywebsite dl.alt dd { + margin: 0 0 0.85em 5.5em; +} +.bodywebsite dl.alt:after { + content: ''; + display: block; + clear: both; +} +.bodywebsite ul.alt li { + border-top-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite dl dt { + color: #ffffff; +} +.bodywebsite ul.actions { + display: -moz-flex; + display: -webkit-flex; + display: -ms-flex; + display: flex; + cursor: default; + list-style: none; + margin-left: -1em; + padding-left: 0; +} +.bodywebsite ul.actions li { + padding: 0 0 0 1em; + vertical-align: middle; +} +.bodywebsite ul.actions.special { + -moz-justify-content: center; + -webkit-justify-content: center; + -ms-justify-content: center; + justify-content: center; + width: 100%; + margin-left: 0; +} +.bodywebsite ul.actions.special li:first-child { + padding-left: 0; +} +.bodywebsite ul.actions.stacked { + -moz-flex-direction: column; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + margin-left: 0; +} +.bodywebsite ul.actions.stacked li { + padding: 1.3em 0 0 0; +} +.bodywebsite ul.actions.stacked li:first-child { + padding-top: 0; +} +.bodywebsite ul.actions.fit { + width: calc(100% + 1em); +} +.bodywebsite ul.actions.fit li { + -moz-flex-grow: 1; + -webkit-flex-grow: 1; + -ms-flex-grow: 1; + flex-grow: 1; + -moz-flex-shrink: 1; + -webkit-flex-shrink: 1; + -ms-flex-shrink: 1; + flex-shrink: 1; + width: 100%; +} +.bodywebsite ul.actions.fit li > * { + width: 100%; +} +.bodywebsite ul.actions.fit.stacked { + width: 100%; +} +.bodywebsite .list-inline { + list-style: none; +} + +@media screen and (max-width: 480px) { + .bodywebsite ul.actions:not(.fixed) { + -moz-flex-direction: column; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + margin-left: 0; + } + .bodywebsite ul.actions:not(.fixed) li { + -moz-flex-grow: 1; + -webkit-flex-grow: 1; + -ms-flex-grow: 1; + flex-grow: 1; + -moz-flex-shrink: 1; + -webkit-flex-shrink: 1; + -ms-flex-shrink: 1; + flex-shrink: 1; + padding: 1em 0 0 0; + text-align: center; + } + .bodywebsite ul.actions:not(.fixed) li > * { + } + .bodywebsite ul.actions:not(.fixed) li:first-child { + padding-top: 0; + } + .bodywebsite ul.actions:not(.fixed) li input[type="submit"].icon:before, + .bodywebsite ul.actions:not(.fixed) li input[type="reset"].icon:before, + .bodywebsite ul.actions:not(.fixed) li input[type="button"].icon:before, + .bodywebsite ul.actions:not(.fixed) li button.icon:before, + .bodywebsite ul.actions:not(.fixed) li .buttonwebsite.icon:before { + margin-left: -0.5rem; + } +} +.bodywebsite ul.icons { + cursor: default; + list-style: none; + padding-left: 0; +} +.bodywebsite ul.icons li { + display: inline-block; + padding: 0 0.65em 0 0; +} +.bodywebsite ul.icons li:last-child { + padding-right: 0 !important; +} +.bodywebsite section.special, +.bodywebsite article.special { + text-align: center; +} +.bodywebsite header.major { + margin-bottom: 3em; +} +.bodywebsite header.major h2 { + font-size: 2em; +} +.bodywebsite header.major h2:after { + display: block; + content: ''; + width: 3.25em; + height: 2px; + margin: 0.7em 0 1em 0; + border-radius: 2px; +} +.bodywebsite section.special header.major h2:after, +.bodywebsite article.special header.major h2:after { + margin-left: auto; + margin-right: auto; +} +.bodywebsite header.major p { + font-size: 1.25em; + letter-spacing: -0.025em; +} +.bodywebsite header.major.special { + text-align: center; +} +.bodywebsite header.major.special h2:after { + margin-left: auto; + margin-right: auto; +} +.bodywebsite footer.major { + margin-top: 3em; +} +@media screen and (max-width: 736px) { + .bodywebsite header.major { + margin-bottom: 0; + } + .bodywebsite header.major h2 { + font-size: 1.5em; + } + .bodywebsite header.major p { + font-size: 1em; + letter-spacing: 0; + } + .bodywebsite header.major p br { + display: none; + } + .bodywebsite footer.major { + margin-top: 0; + } +} +.bodywebsite header.major h2:after { + background-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite .table-wrapper { + -webkit-overflow-scrolling: touch; + overflow-x: auto; +} +.bodywebsite table { + margin: 0 0 2em 0; + width: 100%; +} +.bodywebsite table tbody tr { + border: solid 1px; + border-left: 0; + border-right: 0; +} +.bodywebsite table td { + padding: 0.75em 0.75em; +} +.bodywebsite table th { + font-size: 0.9em; + font-weight: 400; + padding: 0 0.75em 0.75em 0.75em; + text-align: left; +} +.bodywebsite table thead { + border-bottom: solid 2px; +} +.bodywebsite table tfoot { + border-top: solid 2px; +} +.bodywebsite table.alt { + border-collapse: separate; +} +.bodywebsite table.alt tbody tr td { + border: solid 1px; + border-left-width: 0; + border-top-width: 0; +} +.bodywebsite table.alt tbody tr td:first-child { + border-left-width: 1px; +} +.bodywebsite table.alt tbody tr:first-child td { + border-top-width: 1px; +} +.bodywebsite table.alt thead { + border-bottom: 0; +} +.bodywebsite table.alt tfoot { + border-top: 0; +} +.bodywebsite table tbody tr { + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite table tbody tr:nth-child(2n + 1) { + background-color: rgba(255, 255, 255, 0.075); +} +.bodywebsite table th { + color: #ffffff; +} +.bodywebsite table thead { + border-bottom-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite table tfoot { + border-top-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite table.alt tbody tr td { + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite .features { + display: -moz-flex; + display: -webkit-flex; + display: -ms-flex; + display: flex; + -moz-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -moz-justify-content: center; + -webkit-justify-content: center; + -ms-justify-content: center; + justify-content: center; + width: calc(100% + 2em); + margin: 0 0 3em -2em; + padding: 0; + list-style: none; +} +.bodywebsite .features li { + width: calc(33.33333% - 2em); + margin-left: 2em; + margin-top: 3em; + padding: 0; +} +.bodywebsite .features li:nth-child(1), +.bodywebsite .features li:nth-child(2), +.bodywebsite .features li:nth-child(3) { + margin-top: 0; +} +.bodywebsite .features li > :last-child { + margin-bottom: 0; +} +@media screen and (max-width: 980px) { + .bodywebsite .features li { + width: calc(50% - 2em); + } + .bodywebsite .features li:nth-child(3) { + margin-top: 3em; + } +} +@media screen and (max-width: 736px) { + .bodywebsite .features { + width: 100%; + margin: 0 0 2em 0; + } + .bodywebsite .features li { + width: 100%; + margin-left: 0; + margin-top: 2em; + } + .bodywebsite .features li:nth-child(2), + .bodywebsite .features li:nth-child(3) { + margin-top: 2em; + } +} +.bodywebsite .statistics { + display: -moz-flex; + display: -webkit-flex; + display: -ms-flex; + display: flex; + width: 100%; + margin: 0 0 3em 0; + padding: 0; + list-style: none; + cursor: default; +} +.bodywebsite .statistics li { + -moz-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 1.5em; + color: #ffffff; + text-align: center; +} +.bodywebsite .statistics li.style1 { + background-color: #efa8b0; +} +.bodywebsite .statistics li.style2 { + background-color: #c79cc8; +} +.bodywebsite .statistics li.style3 { + background-color: #a89cc8; +} +.bodywebsite .statistics li.style4 { + background-color: #9bb2e1; +} +.bodywebsite .statistics li.style5 { + background-color: #8cc9f0; +} +.bodywebsite .statistics li strong, +.bodywebsite .statistics li b { + display: block; + font-size: 2em; + line-height: 1.1; + color: inherit !important; + font-weight: 300; + letter-spacing: -0.025em; +} +.bodywebsite .statistics li:first-child { + border-top-left-radius: 8px; + border-bottom-left-radius: 8px; +} +.bodywebsite .statistics li:last-child { + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; +} +.bodywebsite .statistics li .icon { + display: inline-block; +} +.bodywebsite .statistics li .icon:before { + font-size: 2.75rem; + line-height: 1.3; +} +@media screen and (max-width: 980px) { + .bodywebsite .statistics li strong, + .bodywebsite .statistics li b { + font-size: 1.5em; + } +} +@media screen and (max-width: 736px) { + .bodywebsite .statistics { + display: block; + width: 20em; + max-width: 100%; + margin: 0 auto 2em auto; + } + .bodywebsite .statistics li:first-child { + border-bottom-left-radius: 0; + border-top-right-radius: 8px; + } + .bodywebsite .statistics li:last-child { + border-top-right-radius: 0; + border-bottom-left-radius: 8px; + } + .bodywebsite .statistics li .icon:before { + font-size: 3.75rem; + } + .bodywebsite .statistics li strong, + .bodywebsite .statistics li b { + font-size: 2.5em; + } +} +.bodywebsite .spotlight { + display: -moz-flex; + display: -webkit-flex; + display: -ms-flex; + display: flex; + -moz-align-items: center; + -webkit-align-items: center; + -ms-align-items: center; + align-items: center; + margin: 0 0 2em 0; +} +.bodywebsite .spotlight .content { + -moz-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} +.bodywebsite .spotlight .content > :last-child { + margin-bottom: 0; +} +.bodywebsite .spotlight .content header.major { + margin: 0 0 2em 0; +} +.bodywebsite .spotlight .image { + display: inline-block; + margin-left: 4em; + padding: 0.65em; + border-radius: 100%; + border: solid 1px; +} +.bodywebsite .spotlight .image img { + display: block; + border-radius: 100%; + width: 14em; + height: 14em; +} +@media screen and (max-width: 980px) { + .bodywebsite .spotlight { + -moz-flex-direction: column-reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; + text-align: center; + } + .bodywebsite .spotlight .content { + -moz-flex: 0 1 auto; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 100%; + } + .bodywebsite .spotlight .content header.major h2:after { + margin-left: auto; + margin-right: auto; + } + .bodywebsite .spotlight .content .actions { + -moz-justify-content: center; + -webkit-justify-content: center; + -ms-justify-content: center; + justify-content: center; + width: calc(100% + 1em); + } + .bodywebsite .spotlight .image { + -moz-flex: 0 1 auto; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + margin-left: 0; + margin-bottom: 2em; + } +} +@media screen and (max-width: 736px) { + .bodywebsite .spotlight .image { + padding: 0.35em; + } + .bodywebsite .spotlight .image img { + width: 12em; + } +} +.bodywebsite .spotlight .image { + border-color: rgba(255, 255, 255, 0.35); +} +.bodywebsite #header { + padding: 5em 5em 1em 5em ; + text-align: center; +} +.bodywebsite #header h1 { + margin: 0 0 0.25em 0; +} +.bodywebsite #header p { + font-size: 1.25em; + letter-spacing: -0.025em; +} +.bodywebsite #header.alt { + padding: 7em 5em 4em 5em ; +} +.bodywebsite #header.alt h1 { + font-size: 3.25em; +} +.bodywebsite #header.alt > * { + -moz-transition: opacity 3s ease; + -webkit-transition: opacity 3s ease; + -ms-transition: opacity 3s ease; + transition: opacity 3s ease; + -moz-transition-delay: 0.5s; + -webkit-transition-delay: 0.5s; + -ms-transition-delay: 0.5s; + transition-delay: 0.5s; + opacity: 1; +} +.bodywebsite #header.alt .logo { + -moz-transition: opacity 1.25s ease, -moz-transform 0.5s ease; + -webkit-transition: opacity 1.25s ease, -webkit-transform 0.5s ease; + -ms-transition: opacity 1.25s ease, -ms-transform 0.5s ease; + transition: opacity 1.25s ease, transform 0.5s ease; + -moz-transition-delay: 0s; + -webkit-transition-delay: 0s; + -ms-transition-delay: 0s; + transition-delay: 0s; + display: block; + margin: 0 0 1.5em 0; +} +.bodywebsite #header.alt .logo img { + display: block; + margin: 0 auto; + max-width: 75%; +} +@media screen and (max-width: 1280px) { + .bodywebsite #header { + padding: 4em 4em 0.1em 4em; + } + .bodywebsite #header.alt { + padding: 6em 4em 3em 4em ; + } +} +@media screen and (max-width: 980px) { + .bodywebsite #header { + padding: 4em 3em 0.1em 3em; + } + .bodywebsite #header.alt { + padding: 5em 3em 2em 3em ; + } +} +@media screen and (max-width: 736px) { + .bodywebsite #header { + padding: 3em 2em 0.1em 2em; + } + .bodywebsite #header p { + font-size: 1em; + letter-spacing: 0; + } + .bodywebsite #header p br { + display: none; + } + .bodywebsite #header.alt { + padding: 4em 2em 1em 2em ; + } + .bodywebsite #header.alt h1 { + font-size: 2.5em; + } +} +@media screen and (max-width: 480px) { + .bodywebsite #header { + padding: 3em 1.5em 0.1em 1.5em; + } + .bodywebsite #header.alt { + padding: 4em 1.5em 1em 1.5em; + } +} +@media screen and (max-width: 360px) { + .bodywebsite #header { + padding: 2.5em 1em 0.1em 1em; + } + .bodywebsite #header.alt { + padding: 3.5em 1em 0.5em 1em; + } +} +div.bodywebsite .is-preload #header.alt > * { + opacity: 0; +} +div.bodywebsite .is-preload #header.alt .logo { + -moz-transform: scale(0.8) rotate(-30deg); + -webkit-transform: scale(0.8) rotate(-30deg); + -ms-transform: scale(0.8) rotate(-30deg); + transform: scale(0.8) rotate(-30deg); +} +.bodywebsite #nav { + -moz-transition: background-color 0.2s ease, border-top-left-radius 0.2s ease, border-top-right-radius 0.2s ease, padding 0.2s ease; + -webkit-transition: background-color 0.2s ease, border-top-left-radius 0.2s ease, border-top-right-radius 0.2s ease, padding 0.2s ease; + -ms-transition: background-color 0.2s ease, border-top-left-radius 0.2s ease, border-top-right-radius 0.2s ease, padding 0.2s ease; + transition: background-color 0.2s ease, border-top-left-radius 0.2s ease, border-top-right-radius 0.2s ease, padding 0.2s ease; + background-color: #ffffff; + color: #636363; + position: absolute; + width: 64em; + max-width: calc(100% - 4em); + padding-top: 1em; + padding-bottom: 1em; + background-color: #f7f7f7; + border-top-left-radius: 0.25em; + border-top-right-radius: 0.25em; + cursor: default; + text-align: center; +} +.bodywebsite #nav input, +.bodywebsite #nav select, +.bodywebsite #nav textarea { + color: #636363; +} +.bodywebsite #nav a:hover { + color: #636363; +} +.bodywebsite #nav strong, +.bodywebsite #nav b { + color: #636363; +} +.bodywebsite #nav h1, +.bodywebsite #nav h2, +.bodywebsite #nav h3, +.bodywebsite #nav h4, +.bodywebsite #nav h5, +.bodywebsite #nav h6 { + color: #636363; +} +.bodywebsite #nav blockquote { + border-left-color: #dddddd; +} +.bodywebsite #nav code { + background: rgba(222, 222, 222, 0.25); + border-color: #dddddd; +} +.bodywebsite #nav hr { + border-bottom-color: #dddddd; +} +.bodywebsite #nav + #main { + padding-top: 4.25em; +} +.bodywebsite #nav ul { + margin: 0; + padding: 0; + list-style: none; +} +.bodywebsite #nav ul li { + -moz-transition: margin 0.2s ease; + -webkit-transition: margin 0.2s ease; + -ms-transition: margin 0.2s ease; + transition: margin 0.2s ease; + display: inline-block; + margin: 0 0.35em; + padding: 0; + vertical-align: middle; +} +.bodywebsite #nav ul li a { + -moz-transition: font-size 0.2s ease; + -webkit-transition: font-size 0.2s ease; + -ms-transition: font-size 0.2s ease; + transition: font-size 0.2s ease; + display: inline-block; + height: 2.25em; + line-height: 2.25em; + padding: 0 1.25em; + border: 0; + border-radius: 8px; + box-shadow: inset 0 0 0 1px transparent; +} +.bodywebsite #nav ul li a:hover { + background-color: rgba(222, 222, 222, 0.25); +} +.bodywebsite #nav ul li a.active { + background-color: #ffffff; + box-shadow: none; +} +.bodywebsite #nav.alt { + position: fixed; + top: 0; + padding-top: 0.5em; + padding-bottom: 0.5em; + background-color: rgba(247, 247, 247, 0.95); + border-top-left-radius: 0; + border-top-right-radius: 0; + z-index: 10000; +} +.bodywebsite #nav.alt ul li { + margin: 0 0.175em; +} +.bodywebsite #nav.alt ul li a { + font-size: 0.9em; +} +@media screen and (max-width: 736px) { + .bodywebsite #nav { + display: none; + } + .bodywebsite #nav + #main { + padding-top: 0; + } +} +.bodywebsite #main { + background-color: #ffffff; + color: #636363; + border-radius: 0.25em; +} +.bodywebsite #main input, +.bodywebsite #main select, +.bodywebsite #main textarea { + color: #636363; +} +.bodywebsite #main a:hover { + color: #636363; +} +.bodywebsite #main strong, +.bodywebsite #main b { + color: #636363; +} +.bodywebsite #main h1, +.bodywebsite #main h2, +.bodywebsite #main h3, +.bodywebsite #main h4, +.bodywebsite #main h5, +.bodywebsite #main h6 { + color: #636363; +} +.bodywebsite #main blockquote { + border-left-color: #dddddd; +} +.bodywebsite #main code { + background: rgba(222, 222, 222, 0.25); + border-color: #dddddd; +} +.bodywebsite #main hr { + border-bottom-color: #dddddd; +} +.bodywebsite #main .box { + border-color: #dddddd; +} +.bodywebsite #main input[type="submit"], +.bodywebsite #main input[type="reset"], +.bodywebsite #main input[type="button"], +.bodywebsite #main button, +.bodywebsite #main .buttonwebsite { + background-color: transparent; + box-shadow: inset 0 0 0 1px #dddddd; + color: #636363 !important; +} +.bodywebsite #main input[type="submit"]:hover, +.bodywebsite #main input[type="reset"]:hover, +.bodywebsite #main input[type="button"]:hover, +.bodywebsite #main button:hover, +.bodywebsite #main .buttonwebsite:hover { + background-color: rgba(222, 222, 222, 0.25); +} +.bodywebsite #main input[type="submit"]:active, +.bodywebsite #main input[type="reset"]:active, +.bodywebsite #main input[type="button"]:active, +.bodywebsite #main button:active, +.bodywebsite #main .buttonwebsite:active { + background-color: rgba(222, 222, 222, 0.5); +} +.bodywebsite #main input[type="submit"].icon:before, +.bodywebsite #main input[type="reset"].icon:before, +.bodywebsite #main input[type="button"].icon:before, +.bodywebsite #main button.icon:before, +.bodywebsite #main .buttonwebsite.icon:before { + color: rgba(99, 99, 99, 0.25); +} +.bodywebsite #main input[type="submit"].primary, +.bodywebsite #main input[type="reset"].primary, +.bodywebsite #main input[type="button"].primary, +.bodywebsite #main button.primary, +.bodywebsite #main .buttonwebsite.primary { + background-color: #8cc9f0; + color: #ffffff !important; + box-shadow: none; +} +.bodywebsite #main input[type="submit"].primary:hover, +.bodywebsite #main input[type="reset"].primary:hover, +.bodywebsite #main input[type="button"].primary:hover, +.bodywebsite #main button.primary:hover, +.bodywebsite #main .buttonwebsite.primary:hover { + background-color: #9acff2; +} +.bodywebsite #main input[type="submit"].primary:active, +.bodywebsite #main input[type="reset"].primary:active, +.bodywebsite #main input[type="button"].primary:active, +.bodywebsite #main button.primary:active, +.bodywebsite #main .buttonwebsite.primary:active { + background-color: #7ec3ee; +} +.bodywebsite #main input[type="submit"].primary.icon:before, +.bodywebsite #main input[type="reset"].primary.icon:before, +.bodywebsite #main input[type="button"].primary.icon:before, +.bodywebsite #main button.primary.icon:before, +.bodywebsite #main .buttonwebsite.primary.icon:before { + color: #ffffff !important; +} +.bodywebsite #main label { + color: #636363; +} +.bodywebsite #main input[type="text"], +.bodywebsite #main input[type="password"], +.bodywebsite #main input[type="email"], +.bodywebsite #main select, +.bodywebsite #main textarea { + background-color: rgba(222, 222, 222, 0.25); + border-color: #dddddd; +} +.bodywebsite #main input[type="text"]:focus, +.bodywebsite #main input[type="password"]:focus, +.bodywebsite #main input[type="email"]:focus, +.bodywebsite #main select:focus, +.bodywebsite #main textarea:focus { + border-color: #8cc9f0; + box-shadow: 0 0 0 1px #8cc9f0; +} +.bodywebsite #main select { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='%23dddddd' /%3E%3C/svg%3E"); +} +.bodywebsite #main select option { + color: #636363; + background: #ffffff; +} +.bodywebsite #main input[type="checkbox"] + label, +.bodywebsite #main input[type="radio"] + label { + color: #636363; +} +.bodywebsite #main input[type="checkbox"] + label:before, +.bodywebsite #main input[type="radio"] + label:before { + background: rgba(222, 222, 222, 0.25); + border-color: #dddddd; +} +.bodywebsite #main input[type="checkbox"]:checked + label:before, +.bodywebsite #main input[type="radio"]:checked + label:before { + background-color: #636363; + border-color: #636363; + color: #ffffff; +} +.bodywebsite #main input[type="checkbox"]:focus + label:before, +.bodywebsite #main input[type="radio"]:focus + label:before { + border-color: #8cc9f0; + box-shadow: 0 0 0 1px #8cc9f0; +} +.bodywebsite #main ::-webkit-input-placeholder { + color: rgba(99, 99, 99, 0.25) !important; +} +.bodywebsite #main :-moz-placeholder { + color: rgba(99, 99, 99, 0.25) !important; +} +.bodywebsite #main ::-moz-placeholder { + color: rgba(99, 99, 99, 0.25) !important; +} +.bodywebsite #main :-ms-input-placeholder { + color: rgba(99, 99, 99, 0.25) !important; +} +.bodywebsite #main .formerize-placeholder { + color: rgba(99, 99, 99, 0.25) !important; +} +.bodywebsite #main .icon.major { + border-color: #dddddd; +} +.bodywebsite #main .icon.major:before { + border-color: #dddddd; +} +.bodywebsite #main .icon.alt { + border-color: #dddddd; + color: #636363; +} +.bodywebsite #main .icon.alt:hover { + background-color: rgba(222, 222, 222, 0.25); +} +.bodywebsite #main .icon.alt:active { + background-color: rgba(222, 222, 222, 0.5); +} +.bodywebsite #main ul.alt li { + border-top-color: #dddddd; +} +.bodywebsite #main dl dt { + color: #636363; +} +.bodywebsite #main header.major h2:after { + background-color: #dddddd; + background-image: -moz-linear-gradient(90deg, #efa8b0, #a89cc8, #8cc9f0); + background-image: -webkit-linear-gradient(90deg, #efa8b0, #a89cc8, #8cc9f0); + background-image: -ms-linear-gradient(90deg, #efa8b0, #a89cc8, #8cc9f0); + background-image: linear-gradient(90deg, #efa8b0, #a89cc8, #8cc9f0); +} +.bodywebsite #main table tbody tr { + border-color: #dddddd; +} +.bodywebsite #main table tbody tr:nth-child(2n + 1) { + background-color: rgba(222, 222, 222, 0.25); +} +.bodywebsite #main table th { + color: #636363; +} +.bodywebsite #main table thead { + border-bottom-color: #dddddd; +} +.bodywebsite #main table tfoot { + border-top-color: #dddddd; +} +.bodywebsite #main table.alt tbody tr td { + border-color: #dddddd; +} +.bodywebsite #main .spotlight .image { + border-color: #dddddd; +} +.bodywebsite #main > .main { + padding: 5em 5em 3em 5em ; + border-top: solid 1px #dddddd; +} +.bodywebsite #main > .main:first-child { + border-top: 0; +} +.bodywebsite #main > .main .image.main:first-child { + margin: -5em 0 5em -5em; + width: calc(100% + 10em); + border-top-right-radius: 0.25em; + border-top-left-radius: 0.25em; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.bodywebsite #main > .main .image.main:first-child img { + border-top-right-radius: 0.25em; + border-top-left-radius: 0.25em; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +@media screen and (max-width: 1280px) { + .bodywebsite #main > .main { + padding: 4em 4em 2em 4em ; + } + .bodywebsite #main > .main .image.main:first-child { + margin: -4em 0 4em -4em; + width: calc(100% + 8em); + } +} +@media screen and (max-width: 980px) { + .bodywebsite #main > .main { + padding: 4em 3em 2em 3em ; + } + .bodywebsite #main > .main .image.main:first-child { + margin: -4em 0 4em -3em; + width: calc(100% + 6em); + } +} +@media screen and (max-width: 736px) { + .bodywebsite #main > .main { + padding: 3em 2em 1em 2em ; + } + .bodywebsite #main > .main .image.main:first-child { + margin: -3em 0 2em -2em; + width: calc(100% + 4em); + } +} +@media screen and (max-width: 480px) { + .bodywebsite #main > .main { + padding: 3em 1.5em 1em 1.5em; + } + .bodywebsite #main > .main .image.main:first-child { + margin: -3em 0 1.5em -1.5em; + width: calc(100% + 3em); + } +} +@media screen and (max-width: 360px) { + .bodywebsite #main { + border-radius: 0; + } + .bodywebsite #main > .main { + padding: 2.5em 1em 0.5em 1em; + } + .bodywebsite #main > .main .image.main:first-child { + margin: -2.5em 0 1.5em -1em; + width: calc(100% + 2em); + border-radius: 0; + } + .bodywebsite #main > .main .image.main:first-child img { + border-radius: 0; + } +} +.bodywebsite #footer section { + width: calc(50% - 22px); + padding: 10px; +} +.bodywebsite #footer { + display: -moz-flex; + display: -webkit-flex; + display: -ms-flex; + display: flex; + -moz-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 5em 5em 3em 5em ; +} +.bodywebsite #footer .copyright { + font-size: 0.8em; + text-align: center; +} +@media screen and (max-width: 1280px) { + .bodywebsite #footer { + padding: 4em 4em 2em 4em ; + } +} +@media screen and (max-width: 980px) { + .bodywebsite #footer { + padding: 4em 3em 2em 3em ; + display: block; + } + .bodywebsite #footer .copyright { + text-align: left; + } +} +@media screen and (max-width: 736px) { + .bodywebsite #footer { + padding: 3em 2em 1em 2em ; + } +} +@media screen and (max-width: 480px) { + .bodywebsite #footer { + padding: 3em 1.5em 1em 1.5em; + } +} +@media screen and (max-width: 480px) { + .bodywebsite #footer { + padding: 2.5em 1em 0.5em 1em; + } +} +.bodywebsite #wrapper { + width: 64em; + max-width: calc(100% - 4em); + margin: 0 auto; +} +@media screen and (max-width: 480px) { + .bodywebsite #wrapper { + max-width: calc(100% - 2em); + } +} +@media screen and (max-width: 360px) { + .bodywebsite #wrapper { + max-width: 100%; + } +} + +/* CSS for ToTop button */ + +#myBtnToTop { + display: none; /* Hidden by default */ + position: fixed; /* Fixed/sticky position */ + bottom: 20px; /* Place the button at the bottom of the page */ + right: 30px; /* Place the button 30px from the right */ + z-index: 99; /* Make sure it does not overlap */ + border: none; /* Remove borders */ + outline: none; /* Remove outline */ + background-color: #868; /* Set a background color */ + color: white; /* Text color */ + cursor: pointer; /* Add a mouse pointer on hover */ + padding: 15px; /* Some padding */ + border-radius: 10px; /* Rounded corners */ + font-size: 18px; /* Increase font size */ + min-width: unset; + height: unset; + line-height: unset; +} + +#myBtnToTop:hover { + background-color: #555; /* Add a dark-grey background on hover */ +} + diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/this-is-a-blog-post.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/this-is-a-blog-post.php new file mode 100644 index 00000000000..0b70a249b2c --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/this-is-a-blog-post.php @@ -0,0 +1,4 @@ +ref.'/page25.tpl.php'; diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/containers/wrapper.php b/htdocs/install/doctemplates/websites/website_template-stellar/containers/wrapper.php new file mode 100644 index 00000000000..4f1c281ee93 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/containers/wrapper.php @@ -0,0 +1,239 @@ +entity; +$original_file = GETPOST("file", "alpha"); +$l = GETPOST('l', 'aZ09'); +$limit = GETPOST('limit', 'int'); + +// Parameters for RSS +$rss = GETPOST('rss', 'aZ09'); +if ($rss) $original_file = 'blog.rss'; + +// If we have a hash public (hashp), we guess the original_file. +if (!empty($hashp)) { + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile = new EcmFiles($db); + $result = $ecmfile->fetch(0, '', '', '', $hashp); + if ($result > 0) { + $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory + // filepath can be 'users/X' or 'X/propale/PR11111' + if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part. + $tmp = explode('/', $tmp[1], 2); + } + $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path + + if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter. + if ($moduleparttocheck == $modulepart) { + // We remove first level of directory + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + //var_dump($original_file); exit; + } else { + print 'Bad link. File is from another module part.'; + } + } else { + $modulepart = $moduleparttocheck; + $original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir + } + } else { + print "ErrorFileNotFoundWithSharedLink"; + exit; + } +} + +// Define attachment (attachment=true to force choice popup 'open'/'save as') +$attachment = true; +if (preg_match('/\.(html|htm)$/i', $original_file)) $attachment = false; +if (isset($_GET["attachment"])) $attachment = (GETPOST("attachment", 'alphanohtml') ? true : false); +if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) $attachment = false; + +// Define mime type +$type = 'application/octet-stream'; +if (GETPOSTISSET('type')) $type = GETPOST('type', 'alpha'); +else $type = dol_mimetype($original_file); + +// Security: Delete string ../ into $original_file +$original_file = str_replace("../", "/", $original_file); + +// Cache or not +if (GETPOST("cache", 'aZ09') || image_format_supported($original_file) >= 0) { + // Important: Following code is to avoid page request by browser and PHP CPU at + // each Dolibarr page access. + header('Cache-Control: max-age=3600, public, must-revalidate'); + header('Pragma: cache'); // This is to avoid having Pragma: no-cache +} + +$refname = basename(dirname($original_file)."/"); + +// Get RSS news +if ($rss) { + $format = 'rss'; + $type = ''; + $cachedelay = 0; + $filename = $original_file; + $dir_temp = $conf->website->dir_temp; + + include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; + include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; + $website = new Website($db); + $websitepage = new WebsitePage($db); + + $website->fetch('', $websitekey); + + $filters = array('type_container'=>'blogpost'); + if ($l) $filters['lang'] = $l; + + $MAXNEWS = ($limit ? $limit : 20); + $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, $filters); + $eventarray = array(); + if (is_array($arrayofblogs)) { + foreach ($arrayofblogs as $blog) { + $blog->fullpageurl = $website->virtualhost.'/'.$blog->pageurl.'.php'; + $eventarray[] = $blog; + } + } + + require_once DOL_DOCUMENT_ROOT."/core/lib/xcal.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; + require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + + dol_syslog("build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG); + + // Clean parameters + if (!$filename) { + $extension = 'rss'; + $filename = $format.'.'.$extension; + } + + // Create dir and define output file (definitive and temporary) + $result = dol_mkdir($dir_temp); + $outputfile = $dir_temp.'/'.$filename; + + $result = 0; + + $buildfile = true; + + if ($cachedelay) { + $nowgmt = dol_now(); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (dol_filemtime($outputfile) > ($nowgmt - $cachedelay)) { + dol_syslog("build_exportfile file ".$outputfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay."). Build is canceled"); + $buildfile = false; + } + } + + if ($buildfile) { + $langs->load("other"); + $title = $desc = $langs->transnoentities('LatestBlogPosts'); + + // Create temp file + $outputfiletmp = tempnam($dir_temp, 'tmp'); // Temporary file (allow call of function by different threads + @chmod($outputfiletmp, octdec($conf->global->MAIN_UMASK)); + + // Write file + $result = build_rssfile($format, $title, $desc, $eventarray, $outputfiletmp, '', $website->virtualhost.'/wrapper.php?rss=1'.($l ? '&l='.$l : ''), $l); + + if ($result >= 0) { + if (dol_move($outputfiletmp, $outputfile, 0, 1)) $result = 1; + else { + $error = 'Failed to rename '.$outputfiletmp.' into '.$outputfile; + dol_syslog("build_exportfile ".$error, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + print $error; + exit(-1); + } + } else { + dol_syslog("build_exportfile build_xxxfile function fails to for format=".$format." outputfiletmp=".$outputfile, LOG_ERR); + dol_delete_file($outputfiletmp, 0, 1); + $langs->load("errors"); + print $langs->trans("ErrorFailToCreateFile", $outputfile); + exit(-1); + } + } + + if ($result >= 0) { + $attachment = false; + if (isset($_GET["attachment"])) $attachment = $_GET["attachment"]; + //$attachment = false; + $contenttype = 'application/rss+xml'; + if (isset($_GET["contenttype"])) $contenttype = $_GET["contenttype"]; + //$contenttype='text/plain'; + $outputencoding = 'UTF-8'; + + if ($contenttype) header('Content-Type: '.$contenttype.($outputencoding ? '; charset='.$outputencoding : '')); + if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); + + // Ajout directives pour resoudre bug IE + //header('Cache-Control: Public, must-revalidate'); + //header('Pragma: public'); + if ($cachedelay) header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate'); + else header('Cache-Control: private, must-revalidate'); + + // Clean parameters + $outputfile = $dir_temp.'/'.$filename; + $result = readfile($outputfile); + if (!$result) print 'File '.$outputfile.' was empty.'; + + // header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename)); + exit; + } +} +// Get logos +elseif ($modulepart == "mycompany" && preg_match('/^\/?logos\//', $original_file)) { + readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); +} else { + // Find the subdirectory name as the reference + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); + $accessallowed = $check_access['accessallowed']; + $sqlprotectagainstexternals = $check_access['sqlprotectagainstexternals']; + $fullpath_original_file = $check_access['original_file']; // $fullpath_original_file is now a full path name + if ($hashp) { + $accessallowed = 1; // When using hashp, link is public so we force $accessallowed + $sqlprotectagainstexternals = ''; + } + + // Security: + // Limit access if permissions are wrong + if (!$accessallowed) { + print 'Access forbidden'; + exit; + } + + clearstatcache(); + + $filename = basename($fullpath_original_file); + + // Output file on browser + dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); + $fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset + + // This test if file exists should be useless. We keep it to find bug more easily + if (!file_exists($fullpath_original_file_osencoded)) { + print "ErrorFileDoesNotExists: ".$original_file; + exit; + } + + // Permissions are ok and file found, so we return it + //top_httphead($type); + header('Content-Type: '.$type); + header('Content-Description: File Transfer'); + if ($encoding) header('Content-Encoding: '.$encoding); + // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) + if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); + else header('Content-Disposition: inline; filename="'.$filename.'"'); + header('Content-Length: '.dol_filesize($fullpath_original_file)); + + readfile($fullpath_original_file_osencoded); +} +if (is_object($db)) $db->close(); +// END PHP diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/daviddoe.png b/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/daviddoe.png new file mode 100644 index 00000000000..ec1fe6eacb9 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/daviddoe.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/overlay.png b/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/overlay.png new file mode 100644 index 00000000000..a5619432c61 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/overlay.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/pic01.jpg b/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/pic01.jpg new file mode 100644 index 00000000000..b484c83143b Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-stellar/medias/image/websitekey/pic01.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar/website_pages.sql b/htdocs/install/doctemplates/websites/website_template-stellar/website_pages.sql new file mode 100644 index 00000000000..59ad32e4bf0 --- /dev/null +++ b/htdocs/install/doctemplates/websites/website_template-stellar/website_pages.sql @@ -0,0 +1,18 @@ +-- Page ID 20 -> 1__+MAX_llx_website_page__ - Aliases credits --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(1__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'credits', '', 'Credits', 'Credits and legal notices', 'en', '', '', '1', '2019-08-15 16:39:56', '2020-02-21 10:27:17', null, '', 'page', '', ' __N__ __N__
    __N____N__ __N__
    __N__

    Mentions légales

    __N__

    Curriculum Vitae

    __N__
    __N____N__ __N__ __N____N__ __N__
    __N____N__ __N__
    __N____N__

    __N__ __N__This site is edited by name; ?>__N____N__ __N__

    __N____N__
    __N____N__
    __N____N__ __N__ __N____N__
    __N____N__', '', '0'); +-- Page ID 21 -> 2__+MAX_llx_website_page__ - Aliases footer --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(2__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'footer', '', 'Footer', '', 'fr', '', '', '1', '2019-08-15 16:42:44', '2020-06-19 10:18:14', null, '', 'page', '', ' __N__
    __N__
    __N__

    Aliquam sed mauris

    __N__

    Sed lorem ipsum dolor sit amet et nullam consequat feugiat consequat magna adipiscing tempus etiam dolore veroeros. eget dapibus mauris. Cras aliquet, nisl ut viverra sollicitudin, ligula erat egestas velit, vitae tincidunt odio.

    __N__ __N__
    __N__
    __N__

    Etiam feugiat

    __N__
    __N__
    Address
    __N__
    getFullAddress(1, \'
    \'); ?>
    __N__
    Phone
    __N__
    phone; ?>
    __N__
    Email
    __N__
    email; ?>\">email; ?>
    __N__
    __N__
      __N__ __N__
    __N__
    © Untitled. Design: HTML5 UP adapted for Dolibarr by DoliCloud.
    __N__
    __N____N____N____N____N____N__', '', '0'); +-- Page ID 22 -> 3__+MAX_llx_website_page__ - Aliases generic --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(3__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'generic', '', 'Generic page', 'Generic page or my personal Blog', 'en', '', 'My generic page', '1', '2019-08-15 00:03:43', '2020-05-14 18:48:34', null, '', 'page', '', ' __N____N__
    __N____N__ __N__
    __N__

    Another page

    __N__

    Ipsum dolor sit amet nullam

    __N__
    __N____N__ __N__ __N____N__ __N__
    __N____N__ __N__
    __N__ \"\"__N__

    Magna feugiat lorem

    __N__

    Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis fames ac ante ipsum primis in faucibus.

    __N__

    Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet.

    __N__

    Tempus veroeros

    __N__

    Cep risus aliquam gravida cep ut lacus amet. Adipiscing faucibus nunc placerat. Tempus adipiscing turpis non blandit accumsan eget lacinia nunc integer interdum amet aliquam ut orci non col ut ut praesent.

    __N__
    __N____N__ __N__
    __N__

    Latest Blog posts

    __N__
    __N__ loadLangs(array(\"main\",\"website\"));__N__ $fuser = new User($db);__N__ $arrayofblogs = $websitepage->fetchAll($website->id, \'DESC\', \'date_creation\', 5, 0, array(\'type_container\'=>\'blogpost\', \'status\'=>1, \'lang\'=>\'null,\'.$websitepage->lang)); // , \'keywords\'=>$keyword__N__ if (is_numeric($arrayofblogs) && $arrayofblogs < 0)__N__ {__N__ print \'
    \'.$weblangs->trans($websitepage->error).\'
    \';__N__ }__N__ elseif (is_array($arrayofblogs) && ! empty($arrayofblogs))__N__ {__N__ foreach($arrayofblogs as $blog)__N__ {__N__ print \'\';__N__ }__N__ }__N__ else__N__ {__N__ print \'
    \';__N__ print \'
    \';__N__ //print $weblangs->trans(\"NoArticlesFoundForTheKeyword\", $keyword);__N__ print $weblangs->trans(\"NoArticlesFound\");__N__ print \'
    \';__N__ print \'
    \';__N__ __N__ }__N__ ?>__N__
    __N__
    __N____N__
    __N____N____N____N__ __N__ __N__ __N__ __N__
    __N____N__', '', '0'); +-- Page ID 23 -> 4__+MAX_llx_website_page__ - Aliases home --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(4__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'home', '', 'My personal blog', 'Home page or my personal Blog', 'en', '', 'My personal blog', '1', '2019-08-15 00:03:43', '2022-07-06 23:50:25', null, '', 'page', '', '__N__
    __N____N__ __N__
    __N__
    __N__

    David Doe

    __N__

    Welcome on my website
    __N__

    __N__
    __N__
    __N____N__ __N__ __N____N__ __N__
    __N____N__ __N__
    __N__
    __N__
    __N__
    __N__

    Ipsum sed adipiscing

    __N__
    __N__

    Sed lorem ipsum dolor sit amet nullam consequat feugiat consequat magna__N__ adipiscing magna etiam amet veroeros. Lorem ipsum dolor tempus sit cursus.__N__ Tempus nisl et nullam lorem ipsum dolor sit amet aliquam.

    __N__ __N__
    __N__ \"\"__N__
    __N__
    __N____N__ __N__
    __N__
    __N__

    Magna veroeros

    __N__
    __N__
      __N__
    • __N__ __N__

      Ipsum consequat

      __N__

      Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

      __N__
    • __N__
    • __N__ __N__

      Amed sed feugiat

      __N__

      Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

      __N__
    • __N__
    • __N__ __N__

      Dolor nullam

      __N__

      Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

      __N__
    • __N__
    __N__ __N__
    __N____N__ __N__
    __N__
    __N__

    Ipsum consequat

    __N__

    Donec imperdiet consequat consequat. Suspendisse feugiat congue
    __N__ posuere. Nulla massa urna, fermentum eget quam aliquet.

    __N__
    __N__
      __N__
    • __N__ __N__ 5,120 Etiam__N__
    • __N__
    • __N__ __N__ 8,192 Magna__N__
    • __N__
    • __N__ __N__ 2,048 Tempus__N__
    • __N__
    • __N__ __N__ 4,096 Aliquam__N__
    • __N__
    • __N__ __N__ 1,024 Nullam__N__
    • __N__
    __N__

    Nam elementum nisl et mi a commodo porttitor. Morbi sit amet nisl eu arcu faucibus hendrerit vel a risus. Nam a orci mi, elementum ac arcu sit amet, fermentum pellentesque et purus. Integer maximus varius lorem, sed convallis diam accumsan sed. Etiam porttitor placerat sapien, sed eleifend a enim pulvinar faucibus semper quis ut arcu. Ut non nisl a mollis est efficitur vestibulum. Integer eget purus nec nulla mattis et accumsan ut magna libero. Morbi auctor iaculis porttitor. Sed ut magna ac risus et hendrerit scelerisque. Praesent eleifend lacus in lectus aliquam porta. Cras eu ornare dui curabitur lacinia.

    __N__ __N__
    __N____N__ __N__
    __N__
    __N__

    Congue imperdiet

    __N__

    Donec imperdiet consequat consequat. Suspendisse feugiat congue
    __N__ posuere. Nulla massa urna, fermentum eget quam aliquet.

    __N__
    __N__ __N__
    __N____N__
    __N____N__ __N____N__
    __N____N__', '', '0'); +UPDATE llx_website SET fk_default_home = 4__+MAX_llx_website_page__ WHERE rowid = __WEBSITE_ID__; +-- Page ID 24 -> 5__+MAX_llx_website_page__ - Aliases menu --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(5__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'menu', '', 'Menu', 'Menu common to all pages', 'fr', '', '', '1', '2019-08-15 00:03:43', '2020-02-21 10:27:17', null, '', 'menu', '', '__N__', '', '0'); +-- Page ID 25 -> 6__+MAX_llx_website_page__ - Aliases this-is-a-blog-post --; +INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, lang, image, keywords, status, date_creation, tms, import_key, grabbed_from, type_container, htmlheader, content, author_alias, allowed_in_frames) VALUES(6__+MAX_llx_website_page__, null, __WEBSITE_ID__, 'this-is-a-blog-post', '', 'This is a Blog post', 'This is a full meta description of the article', '', '', 'blog', '1', '2019-08-17 17:18:45', '2022-07-06 23:50:25', null, '', 'blogpost', '', '__N__
    __N__ This is a blog post article...__N__
    __N__', 'webmaster', '0'); + +-- For Dolibarr v14+ --; +UPDATE llx_website SET lang = 'en' WHERE rowid = __WEBSITE_ID__; +UPDATE llx_website SET otherlang = '' WHERE rowid = __WEBSITE_ID__; + diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 14f1ee2a1cd..24afafbb83c 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -448,7 +448,11 @@ if (!empty($force_install_noedit)) { >
    trans("CheckToCreateDatabase"); ?> + + trans("CheckToCreateDatabase"); ?>
    trans("CheckToCreateUser"); ?> + + trans("CheckToCreateUser"); ?>
    Product '.$obj->rowid.'-'.$obj->ref.' in warehose '.$obj->fk_entrepot.' -> '.$obj->psrowid.': '.$obj->reel.' (product_stock.reel) != '.($obj->reelbatch ? $obj->reelbatch : '0').' (sum product_batch)'; + print '
    Product '.$obj->rowid.'-'.$obj->ref.' in warehouse '.$obj->fk_entrepot.' (product_stock id '.$obj->psrowid.'): '.$obj->reel.' (Stock product_stock.reel) != '.($obj->reelbatch ? $obj->reelbatch : '0').' (Stock batch sum product_batch)'; // Fix if ($obj->reel != $obj->reelbatch) { diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index 9613e1a86b5..7958012b0a1 100644 --- a/htdocs/install/step1.php +++ b/htdocs/install/step1.php @@ -199,6 +199,14 @@ if (!empty($main_url) && substr($main_url, dol_strlen($main_url) - 1) == "/") { $main_url = substr($main_url, 0, dol_strlen($main_url) - 1); } +if (!dol_is_dir($main_dir.'/core/db/')) { + print '
    '.$langs->trans("ErrorBadValueForParameter", $main_dir, $langs->transnoentitiesnoconv("WebPagesDirectory")).'
    '; + print '
    '; + //print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; +} + // Test database connection if (!$error) { $result = @include_once $main_dir."/core/db/".$db_type.'.class.php'; @@ -817,7 +825,7 @@ function write_conf_file($conffile) global $dolibarr_main_distrib; global $db_host, $db_port, $db_name, $db_user, $db_pass, $db_type, $db_character_set, $db_collation; global $conffile, $conffiletoshow, $conffiletoshowshort; - global $force_dolibarr_lib_ADODB_PATH, $force_dolibarr_lib_NUSOAP_PATH; + global $force_dolibarr_lib_NUSOAP_PATH; global $force_dolibarr_lib_TCPDF_PATH, $force_dolibarr_lib_FPDI_PATH; global $force_dolibarr_lib_GEOIP_PATH; global $force_dolibarr_lib_ODTPHP_PATH, $force_dolibarr_lib_ODTPHP_PATHTOPCLZIP; @@ -911,6 +919,8 @@ function write_conf_file($conffile) fputs($fp, '$dolibarr_mailing_limit_sendbyweb=\'0\';'); fputs($fp, "\n"); + fputs($fp, '$dolibarr_mailing_limit_sendbycli=\'0\';'); + fputs($fp, "\n"); // Write params to overwrites default lib path fputs($fp, "\n"); @@ -934,11 +944,6 @@ function write_conf_file($conffile) } fputs($fp, '$dolibarr_lib_TCPDI_PATH=\''.$force_dolibarr_lib_TCPDI_PATH.'\';'); fputs($fp, "\n"); - if (empty($force_dolibarr_lib_ADODB_PATH)) { - fputs($fp, '//'); $force_dolibarr_lib_ADODB_PATH = ''; - } - fputs($fp, '$dolibarr_lib_ADODB_PATH=\''.$force_dolibarr_lib_ADODB_PATH.'\';'); - fputs($fp, "\n"); if (empty($force_dolibarr_lib_GEOIP_PATH)) { fputs($fp, '//'); $force_dolibarr_lib_GEOIP_PATH = ''; } diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php index fac191feec5..4569f917dec 100644 --- a/htdocs/install/step2.php +++ b/htdocs/install/step2.php @@ -147,10 +147,10 @@ if ($action == "set") { // To disable some code, so you can call step2 with url like // http://localhost/dolibarrnew/install/step2.php?action=set&token='.newToken().'&createtables=0&createkeys=0&createfunctions=0&createdata=llx_20_c_departements - $createtables = isset($_GET['createtables']) ?GETPOST('createtables') : 1; - $createkeys = isset($_GET['createkeys']) ?GETPOST('createkeys') : 1; - $createfunctions = isset($_GET['createfunctions']) ?GETPOST('createfunction') : 1; - $createdata = isset($_GET['createdata']) ?GETPOST('createdata') : 1; + $createtables = GETPOSTISSET('createtables') ? GETPOST('createtables') : 1; + $createkeys = GETPOSTISSET('createkeys') ? GETPOST('createkeys') : 1; + $createfunctions = GETPOSTISSET('createfunctions') ? GETPOST('createfunction') : 1; + $createdata = GETPOSTISSET('createdata') ? GETPOST('createdata') : 1; // To say sql requests are escaped for mysql so we need to unescape them diff --git a/htdocs/install/step4.php b/htdocs/install/step4.php index c8be975c19f..1b179cf98ab 100644 --- a/htdocs/install/step4.php +++ b/htdocs/install/step4.php @@ -80,10 +80,10 @@ $db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf if ($db->ok) { print '
    '; - print '
    '; print '
    '; + print '
    '; print '
    '; diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index ee592007522..31b086636f2 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -128,9 +128,9 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { $error = 0; // If password is encoded, we decode it - if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { + if ((!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) || !empty($dolibarr_main_db_encrypted_pass)) { require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; - if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) { + if (!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) { $dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass); $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted @@ -222,9 +222,9 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { print $langs->trans("AdminLoginCreatedSuccessfuly", $login)."
    "; $success = 1; } else { - if ($newuser->error == 'ErrorLoginAlreadyExists') { + if ($result == -6) { //login or email already exists dolibarr_install_syslog('step5: AdminLoginAlreadyExists', LOG_WARNING); - print '
    '.$langs->trans("AdminLoginAlreadyExists", $login)."

    "; + print '
    '.$newuser->error."

    "; $success = 1; } else { dolibarr_install_syslog('step5: FailedToCreateAdminLogin '.$newuser->error, LOG_ERR); @@ -267,11 +267,14 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { if (!$resql) { dol_print_error($db, 'Error in setup program'); } + // The install.lock file is created few lines later if version is last one or if option MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE is on + /* No need to enable this $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_REMOVE_INSTALL_WARNING').", ".$db->encrypt(1).", 'chaine', 1, 'Disable install warnings', 0)"); if (!$resql) { dol_print_error($db, 'Error in setup program'); } $conf->global->MAIN_REMOVE_INSTALL_WARNING = 1; + */ } // If we ask to force some modules to be enabled @@ -297,7 +300,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { } dolibarr_install_syslog('step5: remove MAIN_NOT_INSTALLED const'); - $resql = $db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_NOT_INSTALLED'"); + $resql = $db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')." = 'MAIN_NOT_INSTALLED'"); if (!$resql) { dol_print_error($db, 'Error in setup program'); } @@ -450,7 +453,7 @@ if ($action == "set") { $morehtml .= '
    '; } } else { - dol_print_error('', 'step5.php: unknown choice of action'); + dol_print_error('', 'step5.php: unknown choice of action='.$action.' in create lock file seaction'); } // Clear cache files diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index 25dd1ee84fd..22ef26295aa 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -117,9 +117,9 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ $error = 0; // If password is encoded, we decode it - if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { + if ((!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) || !empty($dolibarr_main_db_encrypted_pass)) { require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; - if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) { + if (!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) { $dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass); $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 30e7b45d198..c9f1eb76b41 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -123,9 +123,9 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ print ''; // If password is encoded, we decode it - if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { + if ((!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) || !empty($dolibarr_main_db_encrypted_pass)) { require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; - if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) { + if (!empty($dolibarr_main_db_pass) && preg_match('/crypted:/i', $dolibarr_main_db_pass)) { $dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass); $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted @@ -420,7 +420,7 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ $afterversionarray = explode('.', '5.0.9'); $beforeversionarray = explode('.', '6.0.9'); if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { global $multicompany_transverse_mode; // Only if the transverse mode is not used @@ -455,7 +455,7 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ $afterversionarray = explode('.', '8.0.9'); $beforeversionarray = explode('.', '9.0.9'); if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_user_photospath(); + //migrate_user_photospath(); } // Scripts for 11.0 @@ -480,8 +480,23 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ $afterversionarray = explode('.', '15.0.9'); $beforeversionarray = explode('.', '16.0.9'); if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_user_photospath(); migrate_user_photospath2(); } + + // Scripts for 17.0 + $afterversionarray = explode('.', '16.0.9'); + $beforeversionarray = explode('.', '17.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_contractdet_rank(); + } + + // Scripts for 18.0 + $afterversionarray = explode('.', '170.9'); + $beforeversionarray = explode('.', '18.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_contractdet_rank(); + } } @@ -574,7 +589,7 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ print ''; } } else { - //if (! empty($conf->modules)) + //if (!empty($conf->modules)) if (!empty($conf->modules_parts['hooks'])) { // If there is at least one module with one hook, we show message to say nothing was done print ''; } } else { - //if (! empty($conf->modules)) + //if (!empty($conf->modules)) if (!empty($conf->modules_parts['hooks'])) { // If there is at least one module with one hook, we show message to say nothing was done print ''; } + + return 1; } /** @@ -5133,3 +5154,61 @@ function migrate_export_import_profiles($mode = 'export') print '\n"; } } + +/** + * Migrate Rank into contract line + * + * @return void + */ +function migrate_contractdet_rank() +{ + + global $db, $langs; + + $error = 0; + $resultstring = ''; + + $db->begin(); + print ''; + + if (!$resultstring) { + print '\n"; + } +} diff --git a/htdocs/intracommreport/admin/intracommreport.php b/htdocs/intracommreport/admin/intracommreport.php index 13231c43af2..778cd7a94c4 100644 --- a/htdocs/intracommreport/admin/intracommreport.php +++ b/htdocs/intracommreport/admin/intracommreport.php @@ -13,15 +13,16 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** - * \file htdocs/intracommreport/admin/intracommreport.php - * \ingroup intracommreport - * \brief Page to setup the module intracomm report + * \file htdocs/intracommreport/admin/intracommreport.php + * \ingroup intracommreport + * \brief Page to setup the module intracomm report */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/intracommreport.lib.php'; @@ -30,10 +31,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; // Load translation files required by the page $langs->loadLangs(array("admin", "intracommreport")); +// Access Control if (!$user->admin) { accessforbidden(); } +// Get Parameters $action = GETPOST('action', 'aZ09'); // Parameters INTRACOMMREPORT_* and others @@ -81,6 +84,7 @@ if ($action == 'update') { } } + /* * View */ @@ -117,7 +121,7 @@ foreach ($list_DEB as $key) { print ''; // Value print ''; print ''; @@ -181,7 +185,7 @@ foreach ($list_DES as $key) { print ''; // Value print ''; print ''; diff --git a/htdocs/intracommreport/card.php b/htdocs/intracommreport/card.php index 681320e0d75..403c4b28eae 100644 --- a/htdocs/intracommreport/card.php +++ b/htdocs/intracommreport/card.php @@ -33,13 +33,16 @@ * */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; require_once DOL_DOCUMENT_ROOT.'/intracommreport/class/intracommreport.class.php'; +// Load translation files required by the page $langs->loadLangs(array("intracommreport")); +// Get Parameters $id = GETPOST('id', 'int'); $action = GETPOST('action'); $exporttype = GETPOSTISSET('exporttype') ? GETPOST('exporttype', 'alphanohtml') : 'deb'; // DEB or DES @@ -48,6 +51,7 @@ $month = GETPOSTINT('month'); $label = (string) GETPOST('label', 'alphanohtml'); $type_declaration = (string) GETPOST('type_declaration', 'alphanohtml'); $backtopage = GETPOST('backtopage', 'alpha'); + $declaration = array( "deb" => $langs->trans("DEB"), "des" => $langs->trans("DES"), @@ -56,6 +60,8 @@ $typeOfDeclaration = array( "introduction" => $langs->trans("Introduction"), "expedition" => $langs->trans("Expedition"), ); + +// Initialize technical objects $object = new IntracommReport($db); if ($id > 0) { $object->fetch($id); @@ -68,6 +74,7 @@ $hookmanager->initHooks(array('intracommcard', 'globalcard')); $error = 0; +// Permissions $permissiontoread = $user->rights->intracommreport->read; $permissiontoadd = $user->rights->intracommreport->write; $permissiontodelete = $user->rights->intracommreport->delete; @@ -112,7 +119,7 @@ if ($action == 'add' && $permissiontoadd) { $object->label = trim($label); $object->type = trim($exporttype); $object->type_declaration = $type_declaration; - $object->subscription = (int) $subscription; + //$object->subscription = (int) $subscription; // Fill array 'array_options' with data from add form // $ret = $extrafields->setOptionalsFromPost($extralabels, $object); @@ -155,10 +162,11 @@ if ($action == 'add' && $permissiontoadd) { * View */ +$title = $langs->trans("IntracommReportTitle"); +llxHeader("", $title); + // Creation mode if ($action == 'create') { - $title = $langs->trans("IntracommReportTitle"); - llxHeader("", $title); print load_fiche_titre($langs->trans("IntracommReportTitle")); print ''; @@ -294,8 +302,6 @@ if ($id > 0 && $action != 'edit') { { global $langs, $formother, $year, $month, $type_declaration; - $title = $langs->trans("IntracommReportDESTitle"); - llxHeader("", $title); print load_fiche_titre($langs->trans("IntracommReportDESTitle")); print dol_get_fiche_head(); diff --git a/htdocs/intracommreport/class/intracommreport.class.php b/htdocs/intracommreport/class/intracommreport.class.php index 5411e6b7aaa..88788f7070e 100644 --- a/htdocs/intracommreport/class/intracommreport.class.php +++ b/htdocs/intracommreport/class/intracommreport.class.php @@ -14,14 +14,16 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** - * \file htdocs/intracommreport/class/intracommreport.class.php - * \ingroup Intracomm report - * \brief File of class to manage intracomm report + * \file htdocs/intracommreport/class/intracommreport.class.php + * \ingroup Intracomm report + * \brief File of class to manage intracomm report */ + + require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; @@ -45,16 +47,28 @@ class IntracommReport extends CommonObject */ public $fk_element = 'fk_intracommreport'; + /** + * 0 = No test on entity, 1 = Test with field entity, 2 = Test with link by societe + * @var int + */ + public $ismultientitymanaged = 1; + + public $picto = 'intracommreport'; + + + public $label; // ref ??? + + public $period; + + public $declaration; + /** * @var string declaration number */ public $declaration_number; - /** - * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe - * @var int - */ - public $ismultientitymanaged = 1; + public $type_declaration; // deb or des + /** * DEB - Product @@ -71,6 +85,7 @@ class IntracommReport extends CommonObject 'expedition'=>'Expédition' ); + /** * Constructor * @@ -83,7 +98,8 @@ class IntracommReport extends CommonObject } /** - * Fonction create + * Function create + * * @param User $user User * @param int $notrigger notrigger * @return int @@ -94,7 +110,8 @@ class IntracommReport extends CommonObject } /** - * Fonction fetch + * Function fetch + * * @param int $id object ID * @return int */ @@ -104,7 +121,8 @@ class IntracommReport extends CommonObject } /** - * Fonction delete + * Function delete + * * @param int $id object ID * @param User $user User * @param int $notrigger notrigger diff --git a/htdocs/intracommreport/list.php b/htdocs/intracommreport/list.php index 1478dbea83f..c107ba9e492 100644 --- a/htdocs/intracommreport/list.php +++ b/htdocs/intracommreport/list.php @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -22,6 +22,7 @@ * \brief Page to list intracomm report */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/intracommreport/class/intracommreport.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -30,6 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; // Load translation files required by the page $langs->loadLangs(array('intracommreport')); +// Get Parameters $action = GETPOST('action', 'alpha'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); @@ -121,19 +123,21 @@ $isInEEC = isInEEC($mysoc); $arrayfields = array( 'i.ref' => array('label'=>$langs->trans("Ref"), 'checked'=>1), 'i.label' => array('label'=>$langs->trans("Label"), 'checked'=>1), - 'i.fk_product_type'=>array('label'=>$langs->trans("Type"), 'checked'=>0, 'enabled'=>(!empty($conf->produit->enabled) && !empty($conf->service->enabled))), + 'i.fk_product_type'=>array('label'=>$langs->trans("Type"), 'checked'=>0, 'enabled'=>(isModEnabled("product") && isModEnabled("service"))), ); + /* // Extra fields if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val) { - if (! empty($extrafields->attributes[$object->table_element]['list'][$key])) + if (!empty($extrafields->attributes[$object->table_element]['list'][$key])) $arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs((int) $extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key])); } } */ + $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); @@ -146,13 +150,17 @@ if ($search_type == '0') { $result = restrictedArea($user, 'produit|service', '', '', '', '', '', 0); } +$permissiontoread = $user->rights->intracommreport->read; +$permissiontodelete = $user->rights->intracommreport->delete; + /* * Actions */ if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; @@ -188,8 +196,6 @@ if (empty($reshook)) { $objectlabel = 'Products'; } - $permtoread = $user->rights->produit->lire; - $permtodelete = $user->rights->produit->supprimer; $uploaddir = $conf->product->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -203,24 +209,26 @@ $formother = new FormOther($db); $title = $langs->trans('IntracommReportList'.$type); -$sql = 'SELECT DISTINCT i.rowid, i.type_declaration, i.type_export, i.periods, i.mode, i.entity'; +$sql = 'SELECT i.rowid, i.type_declaration, i.type_export, i.periods, i.mode, i.entity'; + /* // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); } */ // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$sql .= preg_replace('/^,/', '', $hookmanager->resPrint); +$sql = preg_replace('/,\s*$/', '', $sql); $sql .= $hookmanager->resPrint; +$sqlfields = $sql; + $sql .= ' FROM '.MAIN_DB_PREFIX.'intracommreport as i'; - // if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."intracommreport_extrafields as ef on (i.rowid = ef.fk_object)"; - $sql .= ' WHERE i.entity IN ('.getEntity('intracommreport').')'; - if ($sall) { $sql .= natural_search(array_keys($fieldstosearchall), $sall); } @@ -255,7 +263,7 @@ $sql .= " GROUP BY i.rowid, i.type_declaration, i.type_export, i.periods, i.mode /* // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : ''); } */ @@ -265,281 +273,315 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); +// Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} $resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} -if ($resql) { - $num = $db->num_rows($resql); +$num = $db->num_rows($resql); - $arrayofselected = is_array($toselect) ? $toselect : array(); +$helpurl = 'EN:Module_IntracommReport|FR:Module_ProDouane'; +llxHeader('', $title, $helpurl, ''); - $helpurl = 'EN:Module_IntracommReport|FR:Module_ProDouane'; - llxHeader('', $title, $helpurl, ''); +// Displays product removal confirmation +if (GETPOST('delreport')) { + setEventMessages($langs->trans("IntracommReportDeleted", GETPOST('delreport')), null, 'mesgs'); +} - // Displays product removal confirmation - if (GETPOST('delreport')) { - setEventMessages($langs->trans("IntracommReportDeleted", GETPOST('delreport')), null, 'mesgs'); - } +$arrayofselected = is_array($toselect) ? $toselect : array(); - $param = ''; - if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { - $param .= '&contextpage='.urlencode($contextpage); - } - if ($limit > 0 && $limit != $conf->liste_limit) { - $param .= '&limit='.urlencode($limit); - } - if ($sall) { - $param .= "&sall=".urlencode($sall); - } - if ($search_ref) { - $param = "&search_ref=".urlencode($search_ref); - } - if ($search_label) { - $param .= "&search_label=".urlencode($search_label); - } +$param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +if ($sall) { + $param .= "&sall=".urlencode($sall); +} +if ($search_ref) { + $param = "&search_ref=".urlencode($search_ref); +} +if ($search_label) { + $param .= "&search_label=".urlencode($search_label); +} +if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); +} +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// Add $param from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook +$param .= $hookmanager->resPrint; - // Add $param from extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// List of mass actions available +$arrayofmassactions = array( + 'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), + //'builddoc'=>$langs->trans("PDFMerge"), + //'presend'=>$langs->trans("SendByMail"), +); +if (!empty($permissiontodelete)) { + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} +if (in_array($massaction, array('presend', 'predelete'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); - // List of mass actions available - $arrayofmassactions = array( - 'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), - //'builddoc'=>$langs->trans("PDFMerge"), - //'presend'=>$langs->trans("SendByMail"), - ); - if ($user->rights->intracommreport->delete) { - $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); - } - if (in_array($massaction, array('presend', 'predelete'))) { - $arrayofmassactions = array(); - } - $massactionbutton = $form->selectMassAction('', $arrayofmassactions); +$newcardbutton = ''; +if ($user->rights->intracommreport->write) { + $newcardbutton .= dolGetButtonTitle($langs->trans("NewDeclaration"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/intracommreport/card.php?action=create&type='.$type); +} - $newcardbutton = ''; - if ($user->rights->intracommreport->write) { - $newcardbutton .= dolGetButtonTitle($langs->trans("NewDeclaration"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/intracommreport/card.php?action=create&type='.$type); - } +print ''; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +if (empty($arrayfields['i.fk_product_type']['checked'])) { + print ''; +} - print ''; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - if (empty($arrayfields['i.fk_product_type']['checked'])) { - print ''; - } +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'intracommreport', 0, $newcardbutton, '', $limit); - print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'intracommreport', 0, $newcardbutton, '', $limit); +$topicmail = "Information"; +$modelmail = "product"; +$objecttmp = new IntracommReport($db); +$trackid = 'prod'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; - $topicmail = "Information"; - $modelmail = "product"; - $objecttmp = new IntracommReport($db); - $trackid = 'prod'.$object->id; - include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; +if ($sall) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + } + print '
    '.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
    '; +} - if ($sall) { - foreach ($fieldstosearchall as $key => $val) { - $fieldstosearchall[$key] = $langs->trans($val); - } - print '
    '.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
    '; - } +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook +if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; +} else { + $moreforfilter = $hookmanager->resPrint; +} - $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook - if (empty($reshook)) { - $moreforfilter .= $hookmanager->resPrint; - } else { - $moreforfilter = $hookmanager->resPrint; - } +if ($moreforfilter) { + print '
    '; + print $moreforfilter; + print '
    '; +} - if ($moreforfilter) { - print '
    '; - print $moreforfilter; - print '
    '; - } +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +if ($massactionbutton) { + $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); +} - $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields - if ($massactionbutton) { - $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); - } +print '
    '; +print '
    '; print ''.$langs->trans('UpgradeExternalModule').': '.$langs->trans("NodoUpgradeAfterDB"); @@ -646,7 +661,7 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ print '
    '; print ''.$langs->trans('UpgradeExternalModule').': '.$langs->trans("NodoUpgradeAfterFiles"); @@ -2024,7 +2039,7 @@ function migrate_modeles($db, $langs, $conf) } } - if (!empty($conf->commande->enabled)) { + if (isModEnabled('commande')) { include_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; $modellist = ModelePDFCommandes::liste_modeles($db); if (count($modellist) == 0) { @@ -2037,7 +2052,7 @@ function migrate_modeles($db, $langs, $conf) } } - if (!empty($conf->expedition->enabled)) { + if (isModEnabled("expedition")) { include_once DOL_DOCUMENT_ROOT.'/core/modules/expedition/modules_expedition.php'; $modellist = ModelePDFExpedition::liste_modeles($db); if (count($modellist) == 0) { @@ -4071,11 +4086,11 @@ function migrate_rename_directories($db, $langs, $conf, $oldname, $newname) * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf - * @return void + * @return boolean */ function migrate_delete_old_files($db, $langs, $conf) { - $result = true; + $ret = true; dolibarr_install_syslog("upgrade2::migrate_delete_old_files"); @@ -4094,6 +4109,8 @@ function migrate_delete_old_files($db, $langs, $conf) '/core/triggers/interface_modCommande_Ecotax.class.php', '/core/triggers/interface_modCommande_fraisport.class.php', '/core/triggers/interface_modPropale_PropalWorkflow.class.php', + '/core/triggers/interface_99_modWebhook_WebhookTriggers.class.php', + '/core/triggers/interface_99_modZapier_ZapierTriggers.class.php', '/core/menus/smartphone/iphone.lib.php', '/core/menus/smartphone/iphone_backoffice.php', '/core/menus/smartphone/iphone_frontoffice.php', @@ -4116,6 +4133,7 @@ function migrate_delete_old_files($db, $langs, $conf) '/core/boxes/box_members.php', '/api/class/api_generic.class.php', + '/asterisk/cidlookup.php', '/categories/class/api_category.class.php', '/categories/class/api_deprecated_category.class.php', '/compta/facture/class/api_invoice.class.php', @@ -4137,7 +4155,6 @@ function migrate_delete_old_files($db, $langs, $conf) foreach ($filetodeletearray as $filetodelete) { //print ''DOL_DOCUMENT_ROOT.$filetodelete."
    \n"; - $result = 1; if (file_exists(DOL_DOCUMENT_ROOT.$filetodelete)) { $result = dol_delete_file(DOL_DOCUMENT_ROOT.$filetodelete, 0, 0, 0, null, true, false); if (!$result) { @@ -4149,7 +4166,8 @@ function migrate_delete_old_files($db, $langs, $conf) } } } - return $result; + + return $ret; } /** @@ -4158,11 +4176,11 @@ function migrate_delete_old_files($db, $langs, $conf) * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf - * @return void + * @return boolean */ function migrate_delete_old_dir($db, $langs, $conf) { - $result = true; + $ret = true; dolibarr_install_syslog("upgrade2::migrate_delete_old_dir"); @@ -4188,7 +4206,8 @@ function migrate_delete_old_dir($db, $langs, $conf) print ' '.$langs->trans("RemoveItManuallyAndPressF5ToContinue").''; } } - return $result; + + return $ret; } @@ -4474,7 +4493,7 @@ function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $fo * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf - * @return void + * @return int <0 if KO, >0 if OK */ function migrate_reload_menu($db, $langs, $conf) { @@ -4504,6 +4523,8 @@ function migrate_reload_menu($db, $langs, $conf) print '
    '.$langs->trans("NothingToDo")."
    '; + print ''.$langs->trans('MigrationContractLineRank')."
    \n"; + + $sql = "SELECT c.rowid as cid ,cd.rowid as cdid,cd.rang FROM ".$db->prefix()."contratdet as cd INNER JOIN ".$db->prefix()."contrat as c ON c.rowid=cd.fk_contrat AND cd.rang=0"; + $sql .=" ORDER BY c.rowid,cd.rowid"; + + $resql = $db->query($sql); + if ($resql) { + $currentRank=0; + $current_contract=0; + while ($obj = $db->fetch_object($resql)) { + if (empty($current_contract) || $current_contract==$obj->cid) { + $currentRank++; + } else { + $currentRank=1; + } + + $sqlUpd = "UPDATE ".$db->prefix()."contratdet SET rang=".(int) $currentRank." WHERE rowid=".(int) $obj->cdid; + $resultstring = '.'; + print $resultstring; + $resqlUpd = $db->query($sqlUpd); + if (!$resqlUpd) { + dol_print_error($db); + $error++; + } + + $current_contract = $obj->cid; + } + } else { + $error++; + } + if (!$error) { + $db->commit(); + } else { + $db->rollback(); + } + + print '
    '.$langs->trans("NothingToDo")."
    '.$label.''; - print ''; + print ''; print '
    '.$label.''; - print ''; + print ''; print '
    '."\n"; - print '
    '; - print '
    '."\n"; - - // Lines with input filters - print ''; - if (!empty($arrayfields['i.ref']['checked'])) { - print ''; - } - if (!empty($arrayfields['i.label']['checked'])) { - print ''; - } - // Type - // Type (customer/prospect/supplier) - if (!empty($arrayfields['customerorsupplier']['checked'])) { - print ''; - } - - if (!empty($arrayfields['i.fk_product_type']['checked'])) { - print ''; - } - - /* - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; - */ - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields); - $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['i.datec']['checked'])) { - print ''; - } - // Date modification - if (!empty($arrayfields['i.tms']['checked'])) { - print ''; - } - print ''; +if (!empty($arrayfields['i.ref']['checked'])) { + print ''; +} +if (!empty($arrayfields['i.label']['checked'])) { + print ''; +} +// Type +// Type (customer/prospect/supplier) +if (!empty($arrayfields['customerorsupplier']['checked'])) { + print ''; +} - print ''; +if (!empty($arrayfields['i.fk_product_type']['checked'])) { + print ''; +} - print ''; +/* +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; +*/ +// Fields from hook +$parameters = array('arrayfields'=>$arrayfields); +$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Date creation +if (!empty($arrayfields['i.datec']['checked'])) { + print ''; +} +// Date modification +if (!empty($arrayfields['i.tms']['checked'])) { + print ''; +} +print ''; + +print ''; + +print ''; +if (!empty($arrayfields['i.ref']['checked'])) { + print_liste_field_titre($arrayfields['i.ref']['label'], $_SERVER["PHP_SELF"], "i.ref", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['i.label']['checked'])) { + print_liste_field_titre($arrayfields['i.label']['label'], $_SERVER["PHP_SELF"], "i.label", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['i.fk_product_type']['checked'])) { + print_liste_field_titre($arrayfields['i.fk_product_type']['label'], $_SERVER["PHP_SELF"], "i.fk_product_type", "", $param, "", $sortfield, $sortorder); +} + +/* +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +*/ +// Hook fields +$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); +$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +if (!empty($arrayfields['i.datec']['checked'])) { + print_liste_field_titre($arrayfields['i.datec']['label'], $_SERVER["PHP_SELF"], "i.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['i.tms']['checked'])) { + print_liste_field_titre($arrayfields['i.tms']['label'], $_SERVER["PHP_SELF"], "i.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} + +print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +print "\n"; + + +$intracommreport_static = new IntracommReport($db); + +$i = 0; +$totalarray = array(); +while ($i < min($num, $limit)) { + $obj = $db->fetch_object($resql); + + $intracommreport_static->id = $obj->rowid; + $intracommreport_static->ref = $obj->ref; + $intracommreport_static->ref_fourn = $obj->ref_supplier; + $intracommreport_static->label = $obj->label; + $intracommreport_static->type = $obj->fk_product_type; + $intracommreport_static->status_buy = $obj->tobuy; + $intracommreport_static->status = $obj->tosell; + $intracommreport_static->status_batch = $obj->tobatch; + $intracommreport_static->entity = $obj->entity; + + print ''; + + // Ref if (!empty($arrayfields['i.ref']['checked'])) { - print_liste_field_titre($arrayfields['i.ref']['label'], $_SERVER["PHP_SELF"], "i.ref", "", $param, "", $sortfield, $sortorder); - } - if (!empty($arrayfields['i.label']['checked'])) { - print_liste_field_titre($arrayfields['i.label']['label'], $_SERVER["PHP_SELF"], "i.label", "", $param, "", $sortfield, $sortorder); - } - if (!empty($arrayfields['i.fk_product_type']['checked'])) { - print_liste_field_titre($arrayfields['i.fk_product_type']['label'], $_SERVER["PHP_SELF"], "i.fk_product_type", "", $param, "", $sortfield, $sortorder); - } - - /* - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; - */ - // Hook fields - $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); - $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (!empty($arrayfields['i.datec']['checked'])) { - print_liste_field_titre($arrayfields['i.datec']['label'], $_SERVER["PHP_SELF"], "i.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); - } - if (!empty($arrayfields['i.tms']['checked'])) { - print_liste_field_titre($arrayfields['i.tms']['label'], $_SERVER["PHP_SELF"], "i.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); - } - - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); - print "\n"; - - - $intracommreport_static = new IntracommReport($db); - - $i = 0; - $totalarray = array(); - while ($i < min($num, $limit)) { - $obj = $db->fetch_object($resql); - - $intracommreport_static->id = $obj->rowid; - $intracommreport_static->ref = $obj->ref; - $intracommreport_static->ref_fourn = $obj->ref_supplier; - $intracommreport_static->label = $obj->label; - $intracommreport_static->type = $obj->fk_product_type; - $intracommreport_static->status_buy = $obj->tobuy; - $intracommreport_static->status = $obj->tosell; - $intracommreport_static->status_batch = $obj->tobatch; - $intracommreport_static->entity = $obj->entity; - - print ''; - - // Ref - if (!empty($arrayfields['i.ref']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Label - if (!empty($arrayfields['i.label']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type - if (!empty($arrayfields['i.fk_product_type']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Action - print ''; + print '\n"; if (!$i) { $totalarray['nbfield']++; } - - print "\n"; - $i++; + } + // Label + if (!empty($arrayfields['i.label']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type + if (!empty($arrayfields['i.fk_product_type']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Action + print ''; + if (!$i) { + $totalarray['nbfield']++; } - $db->free($resql); - - print "
    '; - print ''; - print ''; - print ''; - print ''; - if ($type != '') { - print ''; - } - print $formcompany->selectProspectCustomerType($search_type, 'search_type', 'search_type', 'list'); - print ''; - $array = array('-1'=>' ', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service')); - print $form->selectarray('search_type', $array, $search_type); - print ''; - print ''; - print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; +// Lines with input filters +print '
    '; + print ''; print ''; + print ''; + print ''; + if ($type != '') { + print ''; + } + print $formcompany->selectProspectCustomerType($search_type, 'search_type', 'search_type', 'list'); + print '
    '; + $array = array('-1'=>' ', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service')); + print $form->selectarray('search_type', $array, $search_type); + print '
    '; + print ''; + print ''; +$searchpicto = $form->showFilterButtons(); +print $searchpicto; +print '
    '; - print $intracommreport_static->getNomUrl(1); - print "'.dol_trunc($obj->label, 80).''.$obj->fk_product_type.''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; - } - print ''; - } - print ''; + print $intracommreport_static->getNomUrl(1); + print "
    '.dol_trunc($obj->label, 80).''.$obj->fk_product_type.''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    "; - print ""; - print ''; -} else { - dol_print_error($db); + print "
    '.$langs->trans("NoRecordFound").'
    "; +print ""; +print ''; + // End of page llxFooter(); $db->close(); diff --git a/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php b/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php index b95a5717932..8232287b23b 100644 --- a/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php +++ b/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php @@ -114,7 +114,7 @@ class KnowledgeManagement extends DolibarrApi } if ($result < 0) { - throw new RestException(503, 'Error when retrieve category list : '.array_merge(array($categories->error), $categories->errors)); + throw new RestException(503, 'Error when retrieve category list : '.join(',', array_merge(array($categories->error), $categories->errors))); } return $result; @@ -125,18 +125,19 @@ class KnowledgeManagement extends DolibarrApi * * Get a list of knowledgerecords * - * @param string $sortfield Sort field - * @param string $sortorder Sort order - * @param int $limit Limit for list - * @param int $page Page number - * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')" + * @param string $sortfield Sort field + * @param string $sortorder Sort order + * @param int $limit Limit for list + * @param int $page Page number + * @param int $category Use this param to filter list by category + * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')" * @return array Array of order objects * * @throws RestException * * @url GET /knowledgerecords/ */ - public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') + public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $category = 0, $sqlfilters = '') { global $db, $conf; @@ -166,6 +167,9 @@ class KnowledgeManagement extends DolibarrApi if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale } + if ($category > 0) { + $sql .= ", ".$this->db->prefix()."categorie_knowledgemanagement as c"; + } $sql .= " WHERE 1 = 1"; // Example of use $mode @@ -188,6 +192,11 @@ class KnowledgeManagement extends DolibarrApi if ($restrictonsocid && $search_sale > 0) { $sql .= " AND sc.fk_user = ".((int) $search_sale); } + // Select products of given category + if ($category > 0) { + $sql .= " AND c.fk_categorie = ".((int) $category); + $sql .= " AND c.fk_knowledgemanagement = t.rowid"; + } if ($sqlfilters) { $errormessage = ''; if (!DolibarrApi::_checkFilters($sqlfilters, $errormessage)) { diff --git a/htdocs/knowledgemanagement/class/knowledgerecord.class.php b/htdocs/knowledgemanagement/class/knowledgerecord.class.php index 3f0142915a0..bf2bf38bbef 100644 --- a/htdocs/knowledgemanagement/class/knowledgerecord.class.php +++ b/htdocs/knowledgemanagement/class/knowledgerecord.class.php @@ -103,9 +103,8 @@ class KnowledgeRecord extends CommonObject 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'default'=>'(PROV)', 'visible'=>5, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", "csslist"=>"nowraponall", "showoncombobox"=>1), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>20, 'index'=>1), - 'question' => array('type'=>'text', 'label'=>'Question', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), + 'question' => array('type'=>'text', 'label'=>'Question', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), 'lang' => array('type'=>'varchar(6)', 'label'=>'Language', 'enabled'=>'1', 'position'=>40, 'notnull'=>0, 'visible'=>1, 'tdcss'=>'titlefieldcreate nowraponall', "csslist"=>"tdoverflowmax100"), - 'answer' => array('type'=>'html', 'label'=>'Solution', 'enabled'=>'1', 'position'=>50, 'notnull'=>0, 'visible'=>3, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,), 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>2,), 'last_main_doc' => array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>'1', 'position'=>600, 'notnull'=>0, 'visible'=>0,), @@ -115,7 +114,8 @@ class KnowledgeRecord extends CommonObject 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), //'url' => array('type'=>'varchar(255)', 'label'=>'URL', 'enabled'=>'1', 'position'=>55, 'notnull'=>0, 'visible'=>-1, 'csslist'=>'tdoverflow200', 'help'=>'UrlForInfoPage'), - 'fk_c_ticket_category' => array('type'=>'integer:CTicketCategory:ticket/class/cticketcategory.class.php:0:(t.active:=:1):pos', 'label'=>'SuggestedForTicketsInGroup', 'enabled'=>'$conf->ticket->enabled', 'position'=>512, 'notnull'=>0, 'visible'=>-1, 'help'=>'YouCanLinkArticleToATicketCategory', 'csslist'=>'minwidth200 tdoverflowmax250'), + 'fk_c_ticket_category' => array('type'=>'integer:CTicketCategory:ticket/class/cticketcategory.class.php:0:(t.active:=:1):pos', 'label'=>'SuggestedForTicketsInGroup', 'enabled'=>'isModEnabled("ticket")', 'position'=>520, 'notnull'=>0, 'visible'=>-1, 'help'=>'YouCanLinkArticleToATicketCategory', 'csslist'=>'minwidth200 tdoverflowmax250'), + 'answer' => array('type'=>'html', 'label'=>'Solution', 'enabled'=>'1', 'position'=>600, 'notnull'=>0, 'visible'=>3, 'searchall'=>1, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), 'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'notnull'=>1, 'visible'=>5, 'default'=>0, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '9'=>'Obsolete'),), ); public $rowid; @@ -187,7 +187,7 @@ class KnowledgeRecord extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -468,6 +468,24 @@ class KnowledgeRecord extends CommonObject $this->error .= $this->db->lasterror(); $errorflag = -1; } + + // Delete all child tables + if (!$error) { + $elements = array('categorie_knowledgemanagement'); + foreach ($elements as $table) { + if (!$error) { + $sql = "DELETE FROM ".MAIN_DB_PREFIX.$table; + $sql .= " WHERE fk_knowledgemanagement = ".(int) $this->id; + + $result = $this->db->query($sql); + if (!$result) { + $error++; + $this->errors[] = $this->db->lasterror(); + } + } + } + } + return $this->deleteCommon($user, $notrigger); //return $this->deleteCommon($user, $notrigger, 1); } @@ -512,8 +530,8 @@ class KnowledgeRecord extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->knowledgerecord->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->knowledgerecord->knowledgerecord_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->knowledgerecord->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->knowledgerecord->knowledgerecord_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -630,8 +648,8 @@ class KnowledgeRecord extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->knowledgemanagement_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->knowledgemanagement_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -654,8 +672,8 @@ class KnowledgeRecord extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->knowledgemanagement_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->knowledgemanagement_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -678,8 +696,8 @@ class KnowledgeRecord extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->knowledgemanagement->knowledgemanagement_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->knowledgemanagement->knowledgemanagement_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -862,27 +880,11 @@ class KnowledgeRecord extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -916,8 +918,8 @@ class KnowledgeRecord extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_knowledgerecord = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1056,8 +1058,8 @@ class KnowledgeRecord extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { diff --git a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php index 8cdbee53395..fc22678a87a 100644 --- a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php +++ b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php @@ -54,7 +54,7 @@ class mod_knowledgerecord_advanced extends ModeleNumRefKnowledgeRecord /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -68,7 +68,7 @@ class mod_knowledgerecord_advanced extends ModeleNumRefKnowledgeRecord $texte .= '
    '; $texte .= ''; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("KnowledgeRecord"), $langs->transnoentities("KnowledgeRecord")); @@ -79,7 +79,7 @@ class mod_knowledgerecord_advanced extends ModeleNumRefKnowledgeRecord // Parametrage du prefix $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -132,7 +132,7 @@ class mod_knowledgerecord_advanced extends ModeleNumRefKnowledgeRecord require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->KNOWLEDGEMANAGEMENT_KNOWLEDGERECORD_ADVANCED_MASK; + $mask = getDolGlobalString('KNOWLEDGEMANAGEMENT_KNOWLEDGERECORD_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_standard.php b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_standard.php index ba5a3c3b391..1e5f69aaa93 100644 --- a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_standard.php +++ b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_standard.php @@ -26,7 +26,7 @@ dol_include_once('/knowledgemanagement/core/modules/knowledgemanagement/modules_ /** - * Class to manage customer order numbering rules standard + * Class to manage the knowledgerecord numbering rules standard */ class mod_knowledgerecord_standard extends ModeleNumRefKnowledgeRecord { diff --git a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php index edfe6beff62..8e19931fbdb 100644 --- a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php +++ b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php @@ -86,7 +86,7 @@ abstract class ModeleNumRefKnowledgeRecord /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/knowledgemanagement/knowledgemanagementindex.php b/htdocs/knowledgemanagement/knowledgemanagementindex.php index ccb3503eb2f..8f168e62598 100644 --- a/htdocs/knowledgemanagement/knowledgemanagementindex.php +++ b/htdocs/knowledgemanagement/knowledgemanagementindex.php @@ -72,7 +72,7 @@ print '
    '; /* BEGIN MODULEBUILDER DRAFT MYOBJECT // Draft MyObject -if (! empty($conf->knowledgemanagement->enabled) && $user->rights->knowledgemanagement->read) +if (!empty($conf->knowledgemanagement->enabled) && $user->rights->knowledgemanagement->read) { $langs->load("orders"); @@ -153,7 +153,7 @@ $max = $NBMAX; /* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT // Last modified myobject -if (! empty($conf->knowledgemanagement->enabled) && $user->rights->knowledgemanagement->read) { +if (!empty($conf->knowledgemanagement->enabled) && $user->rights->knowledgemanagement->read) { $sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms"; $sql.= " FROM ".MAIN_DB_PREFIX."knowledgemanagement_myobject as s"; //if (! $user->rights->societe->client->voir && ! $socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; diff --git a/htdocs/knowledgemanagement/knowledgerecord_agenda.php b/htdocs/knowledgemanagement/knowledgerecord_agenda.php index 003faa326d5..e24e23b14e7 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_agenda.php +++ b/htdocs/knowledgemanagement/knowledgerecord_agenda.php @@ -41,6 +41,7 @@ $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); +$socid = GETPOST('socid', 'int'); if (GETPOST('actioncode', 'array')) { $actioncode = GETPOST('actioncode', 'array', 3); @@ -48,7 +49,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -80,13 +81,14 @@ $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { - $upload_dir = $conf->knowledgemanagement->multidir_output[$object->entity]."/".$object->id; + $upload_dir = (!empty($conf->knowledgemanagement->multidir_output[$object->entity]) ? $conf->knowledgemanagement->multidir_output[$object->entity] : $conf->knowledgemanagement->dir_output)."/".$object->id; } // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; -//$result = restrictedArea($user, 'knowledgemanagement', $object->id); +$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +restrictedArea($user, $object->module, $object->id, $object->table_element, $object->element, '', 'rowid', $isdraft); $permissiontoadd = $user->rights->knowledgemanagement->knowledgerecord->write; // Used by the include of actions_addupdatedelete.inc.php @@ -125,11 +127,11 @@ $form = new Form($db); if ($object->id > 0) { $title = $langs->trans("Agenda"); - //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + //if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; $help_url = ''; llxHeader('', $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = knowledgerecordPrepareHead($object); @@ -149,7 +151,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; if ($permissiontoadd) { @@ -169,7 +171,7 @@ if ($object->id > 0) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); @@ -209,7 +211,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.urlencode($objthirdparty->id); } - $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : '').'&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : ''); //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -219,7 +221,7 @@ if ($object->id > 0) { print '
    '; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/knowledgemanagement/knowledgerecord_card.php b/htdocs/knowledgemanagement/knowledgerecord_card.php index e9c58bf31a4..0c182d71f9e 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_card.php +++ b/htdocs/knowledgemanagement/knowledgerecord_card.php @@ -44,7 +44,7 @@ $cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'knowledgerecordcard'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -//$lineid = GETPOST('lineid', 'int'); +$lineid = GETPOST('lineid', 'int'); // Initialize technical objects $object = new KnowledgeRecord($db); @@ -85,8 +85,8 @@ $upload_dir = $conf->knowledgemanagement->multidir_output[isset($object->entity) // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; -//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); -//restrictedArea($user, $object->element, $object->id, '', '', 'fk_soc', 'rowid', $isdraft); +$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +restrictedArea($user, $object->module, $object->id, $object->table_element, $object->element, '', 'rowid', $isdraft); //if (empty($conf->knowledgemanagement->enabled)) accessforbidden(); //if (empty($permissiontoread)) accessforbidden(); @@ -118,7 +118,7 @@ if (empty($reshook)) { $triggermodname = 'KNOWLEDGEMANAGEMENT_KNOWLEDGERECORD_MODIFY'; // Name of trigger action code to execute when we modify record - // Upadate / add for lang + // Update / add for lang if (($action == 'update' || $action == 'add') && !empty($permissiontoadd)) { $object->lang = (GETPOSTISSET('langkm') ? GETPOST('langkm', 'aZ09') : $object->lang); } @@ -182,14 +182,16 @@ if ($action == 'create') { print ''; } - print dol_get_fiche_head(array(), ''); + print dol_get_fiche_head(array(), '', '', -3); print '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '."\n"; // Common attributes + $object->fields['answer']['enabled'] = 0; include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; + $object->fields['answer']['enabled'] = 1; - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { $cate_arbo = $form->select_all_categories(Categorie::TYPE_KNOWLEDGEMANAGEMENT, '', 'parent', 64, 0, 1); if (count($cate_arbo)) { @@ -205,6 +207,14 @@ if ($action == 'create') { print '
    '."\n"; + // Add field answer + print '
    '; + print $langs->trans($object->fields['answer']['label']).'
    '; + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor = new DolEditor('answer', $object->answer, '', 200, 'dolibarr_notes', 'In', true, 0, true, ROWS_9, '100%'); + $out = $doleditor->Create(1); + print $out; + print dol_get_fiche_end(); print $form->buttonsSaveCancel('Create'); @@ -229,14 +239,16 @@ if (($id || $ref) && $action == 'edit') { print ''; } - print dol_get_fiche_head(); + print dol_get_fiche_head(array(), '', '', -3); print ''."\n"; // Common attributes + $object->fields['answer']['enabled'] = 0; include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php'; + $object->fields['answer']['enabled'] = 1; - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { $cate_arbo = $form->select_all_categories(Categorie::TYPE_KNOWLEDGEMANAGEMENT, '', 'parent', 64, 0, 1); if (count($cate_arbo)) { @@ -260,6 +272,14 @@ if (($id || $ref) && $action == 'edit') { print '
    '; + // Add field answer + print '
    '; + print $langs->trans($object->fields['answer']['label']).'
    '; + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor = new DolEditor('answer', $object->answer, '', 200, 'dolibarr_notes', 'In', true, 0, true, ROWS_9, '100%'); + $out = $doleditor->Create(1); + print $out; + print dol_get_fiche_end(); print $form->buttonsSaveCancel(); @@ -294,7 +314,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Confirmation of action xxxx (You can use it for xxx = 'close', xxx = 'reopen', ...) if ($action == 'close') { $text = $langs->trans('ConfirmCloseKM', $object->ref); - /*if (! empty($conf->notification->enabled)) + /*if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -319,7 +339,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Confirmation of action xxxx (You can use it for xxx = 'close', xxx = 'reopen', ...) if ($action == 'reopen') { $text = $langs->trans('ConfirmReopenKM', $object->ref); - /*if (! empty($conf->notification->enabled)) + /*if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -366,7 +386,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project') . ' '; if ($permissiontoadd) { @@ -384,7 +404,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); @@ -408,11 +428,13 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $keyforbreak='fk_c_ticket_category'; // We change column just before this field //unset($object->fields['fk_project']); // Hide field already shown in banner //unset($object->fields['fk_soc']); // Hide field already shown in banner + $object->fields['answer']['enabled'] = 0; include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; + $object->fields['answer']['enabled'] = 1; // Categories if (isModEnabled('categorie')) { - print '
    '.$langs->trans("Categories").''; + print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_KNOWLEDGEMANAGEMENT, 1); print "
    '; + print '
    '; print ''; print '
    '; + // Add field answer + print '
    '; + print $langs->trans($object->fields['answer']['label']).'
    '; + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor = new DolEditor('answer', $object->answer, '', 200, 'dolibarr_notes', 'In', true, 0, true, ROWS_9, '100%', 1); + $out = $doleditor->Create(1); + print $out; + print dol_get_fiche_end(); @@ -442,20 +473,20 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (empty($reshook)) { // Send if (empty($user->socid)) { - //print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init#formmailbeforetitle'); + //print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init#formmailbeforetitle'); } // Back to draft if ($object->status == $object::STATUS_VALIDATED) { - print dolGetButtonAction($langs->trans('SetToDraft'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('SetToDraft'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes&token='.newToken(), '', $permissiontoadd); } if (($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_VALIDATED) && $permissiontovalidate) { - print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd); } // Validate if ($object->status == $object::STATUS_DRAFT) { if ((empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) && $permissiontovalidate) { - print dolGetButtonAction($langs->trans('Validate'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_validate&token='.newToken().'&confirm=yes', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('Validate'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_validate&token='.newToken().'&confirm=yes', '', $permissiontoadd); } else { $langs->load("errors"); //print dolGetButtonAction($langs->trans('Validate'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_validate&confirm=yes', '', 0); @@ -464,7 +495,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } // Clone - print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=clone&token='.newToken().'&object=scrumsprint', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('ToClone'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=clone&token='.newToken().'&object=scrumsprint', '', $permissiontoadd); /* if ($permissiontoadd) { diff --git a/htdocs/knowledgemanagement/knowledgerecord_contact.php b/htdocs/knowledgemanagement/knowledgerecord_contact.php index c338653b840..4e557a3e1ae 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_contact.php +++ b/htdocs/knowledgemanagement/knowledgerecord_contact.php @@ -53,12 +53,14 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; -//$result = restrictedArea($user, 'knowledgemanagement', $object->id); +$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +restrictedArea($user, $object->module, $object->id, $object->table_element, $object->element, '', 'rowid', $isdraft); $permission = $user->rights->knowledgemanagement->knowledgerecord->write; + /* - * Add a new contact + * Actions */ if ($action == 'addcontact' && $permission) { @@ -108,16 +110,10 @@ $contactstatic = new Contact($db); $userstatic = new User($db); -/* *************************************************************************** */ -/* */ -/* View and edit mode */ -/* */ -/* *************************************************************************** */ +// View and edit mode if ($object->id) { - /* - * Show tabs - */ + // Show tabs $head = knowledgerecordPrepareHead($object); print dol_get_fiche_head($head, 'contact', $langs->trans("KnowledgeRecord"), -1, $object->picto); @@ -132,7 +128,7 @@ if ($object->id) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -153,7 +149,7 @@ if ($object->id) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); diff --git a/htdocs/knowledgemanagement/knowledgerecord_document.php b/htdocs/knowledgemanagement/knowledgerecord_document.php index dbffe6aa3da..7430de8a495 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_document.php +++ b/htdocs/knowledgemanagement/knowledgerecord_document.php @@ -49,7 +49,7 @@ $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("pa if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $liste_limit * $page; +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortorder) { @@ -78,7 +78,8 @@ if ($id > 0 || !empty($ref)) { // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; -//$result = restrictedArea($user, 'knowledgemanagement', $object->id); +$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +restrictedArea($user, $object->module, $object->id, $object->table_element, $object->element, '', 'rowid', $isdraft); $permissiontoadd = $user->rights->knowledgemanagement->knowledgerecord->write; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles.inc.php @@ -130,7 +131,7 @@ if ($object->id) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -151,7 +152,7 @@ if ($object->id) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); diff --git a/htdocs/knowledgemanagement/knowledgerecord_list.php b/htdocs/knowledgemanagement/knowledgerecord_list.php index b903ab83acc..dffd3d63d7b 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_list.php +++ b/htdocs/knowledgemanagement/knowledgerecord_list.php @@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/knowledgemanagement/class/knowledgerecord.class.php'; // for other modules -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } //dol_include_once('/othermodule/class/otherobject.class.php'); @@ -51,6 +51,7 @@ $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'knowledgerecordlist'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$mode = GETPOST('mode', 'aZ09'); $id = GETPOST('id', 'int'); @@ -98,13 +99,12 @@ if (!$sortorder) { $search_all = GETPOST('search_all', 'alphanohtml'); $search = array(); foreach ($object->fields as $key => $val) { - if (GETPOST('search_'.$key, 'alpha') !== '') { - if ($key == "lang") { - $search[$key] = GETPOST('search_'.$key, 'alpha')!='0' ? GETPOST('search_'.$key, 'alpha') : ''; - } else { - $search[$key] = GETPOST('search_'.$key, 'alpha'); - } + if ($key == "lang") { + $search[$key] = GETPOST('search_'.$key, 'alpha')!='0' ? GETPOST('search_'.$key, 'alpha') : ''; + } else { + $search[$key] = GETPOST('search_'.$key, 'alpha'); } + if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { $search[$key.'_dtstart'] = dol_mktime(0, 0, 0, GETPOST('search_'.$key.'_dtstartmonth', 'int'), GETPOST('search_'.$key.'_dtstartday', 'int'), GETPOST('search_'.$key.'_dtstartyear', 'int')); $search[$key.'_dtend'] = dol_mktime(23, 59, 59, GETPOST('search_'.$key.'_dtendmonth', 'int'), GETPOST('search_'.$key.'_dtendday', 'int'), GETPOST('search_'.$key.'_dtendyear', 'int')); @@ -153,7 +153,7 @@ if ($user->socid > 0) { // Protection if external user //$socid = $user->socid; accessforbidden(); } -//$result = restrictedArea($user, 'knowledgemanagement'); +$result = restrictedArea($user, 'knowledgemanagement', 0, '', 'knowledgerecord'); //if (!$permissiontoread) accessforbidden(); @@ -246,9 +246,6 @@ $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; } -if (!empty($searchCategoryKnowledgemanagementList) || !empty($catid)) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_knowledgemanagement as ck ON t.rowid = ck.fk_knowledgemanagement"; // We'll need this table joined to the select in order to filter by categ -} // Add table from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook @@ -287,29 +284,33 @@ foreach ($search as $key => $val) { } } } -//Search for tag/category -$searchCategoryKnowledgemanagementSqlList = array(); -if ($searchCategoryKnowledgemanagementOperator == 1) { + +// Search for tag/category ($searchCategoryKnowledgemanagementList is an array of ID) +if (!empty($searchCategoryKnowledgemanagementList)) { + $searchCategoryKnowledgemanagementSqlList = array(); + $listofcategoryid = ''; foreach ($searchCategoryKnowledgemanagementList as $searchCategoryKnowledgemanagement) { if (intval($searchCategoryKnowledgemanagement) == -2) { - $searchCategoryKnowledgemanagementSqlList[] = "ck.fk_categorie IS NULL"; + $searchCategoryKnowledgemanagementSqlList[] = "NOT EXISTS (SELECT ck.fk_knowledgemanagement FROM ".MAIN_DB_PREFIX."categorie_knowledgemanagement as ck WHERE t.rowid = ck.fk_knowledgemanagement)"; } elseif (intval($searchCategoryKnowledgemanagement) > 0) { - $searchCategoryKnowledgemanagementSqlList[] = "ck.fk_categorie = ".$db->escape($searchCategoryKnowledgemanagement); + if ($searchCategoryKnowledgemanagementOperator == 0) { + $searchCategoryKnowledgemanagementSqlList[] = " EXISTS (SELECT ck.fk_knowledgemanagement FROM ".MAIN_DB_PREFIX."categorie_knowledgemanagement as ck WHERE t.rowid = ck.fk_knowledgemanagement AND ck.fk_categorie = ".((int) $searchCategoryKnowledgemanagement).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryKnowledgemanagement); + } } } - if (!empty($searchCategoryKnowledgemanagementSqlList)) { - $sql .= " AND (".implode(' OR ', $searchCategoryKnowledgemanagementSqlList).")"; + if ($listofcategoryid) { + $searchCategoryKnowledgemanagementSqlList[] = " EXISTS (SELECT ck.fk_knowledgemanagement FROM ".MAIN_DB_PREFIX."categorie_knowledgemanagement as ck WHERE t.rowid = ck.fk_knowledgemanagement AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; } -} else { - foreach ($searchCategoryKnowledgemanagementList as $searchCategoryKnowledgemanagement) { - if (intval($searchCategoryKnowledgemanagement) == -2) { - $searchCategoryKnowledgemanagementSqlList[] = "ck.fk_categorie IS NULL"; - } elseif (intval($searchCategoryKnowledgemanagement) > 0) { - $searchCategoryKnowledgemanagementSqlList[] = "t.rowid IN (SELECT fk_knowledgemanagement FROM ".MAIN_DB_PREFIX."categorie_knowledgemanagement WHERE fk_categorie = ".((int) $searchCategoryKnowledgemanagement).")"; + if ($searchCategoryKnowledgemanagementOperator == 1) { + if (!empty($searchCategoryKnowledgemanagementSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryKnowledgemanagementSqlList).")"; + } + } else { + if (!empty($searchCategoryKnowledgemanagementSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryKnowledgemanagementSqlList).")"; } - } - if (!empty($searchCategoryKnowledgemanagementSqlList)) { - $sql .= " AND (".implode(' AND ', $searchCategoryKnowledgemanagementSqlList).")"; } } @@ -330,7 +331,7 @@ foreach($object->fields as $key => $val) { $sql .= "t.".$key.", "; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); } // Add where from hooks @@ -427,7 +428,7 @@ if ($permissiontodelete) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } -if ($user->rights->knowledgemanagement->knowledgerecord->write) { +if (isModEnabled('category') && $user->rights->knowledgemanagement->knowledgerecord->write) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } @@ -475,7 +476,7 @@ $moreforfilter.= '';*/ // Filter on categories $moreforfilter = ''; -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->hasRight('categorie', 'lire')) { $moreforfilter .= '
    '; $moreforfilter .= img_picto($langs->trans('Categories'), 'category', 'class="pictofixedwidth"'); $categoriesKnowledgeArr = $form->select_all_categories(Categorie::TYPE_KNOWLEDGEMANAGEMENT, '', '', 64, 0, 1); diff --git a/htdocs/knowledgemanagement/knowledgerecord_note.php b/htdocs/knowledgemanagement/knowledgerecord_note.php index 2e58480adec..28a2bcaa9d0 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_note.php +++ b/htdocs/knowledgemanagement/knowledgerecord_note.php @@ -46,11 +46,6 @@ $hookmanager->initHooks(array('knowledgerecordnote', 'globalcard')); // Note tha // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); -// Security check - Protection if external user -//if ($user->socid > 0) accessforbidden(); -//if ($user->socid > 0) $socid = $user->socid; -//$result = restrictedArea($user, 'knowledgemanagement', $id); - // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { @@ -60,6 +55,11 @@ if ($id > 0 || !empty($ref)) { $permissionnote = $user->rights->knowledgemanagement->knowledgerecord->write; // Used by the include of actions_setnotes.inc.php $permissiontoadd = $user->rights->knowledgemanagement->knowledgerecord->write; // Used by the include of actions_addupdatedelete.inc.php +// Security check - Protection if external user +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); +restrictedArea($user, $object->module, $object->id, $object->table_element, $object->element, '', 'rowid', $isdraft); /* @@ -104,7 +104,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -125,7 +125,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); diff --git a/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php b/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php index 12db6245087..d1de9e5e401 100644 --- a/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php +++ b/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php @@ -28,10 +28,13 @@ */ function knowledgemanagementAdminPrepareHead() { - global $langs, $conf; + global $langs, $conf, $db; $langs->load("knowledgemanagement"); + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('knowledgemanagement_knowledgerecord'); + $h = 0; $head = array(); @@ -43,14 +46,13 @@ function knowledgemanagementAdminPrepareHead() $head[$h][0] = DOL_URL_ROOT.'/admin/knowledgerecord_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); + $nbExtrafields = $extrafields->attributes['knowledgemanagement_knowledgerecord']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'extra'; $h++; - /*$head[$h][0] = DOL_URL_ROOT.'/knowledgemanagement/admin/about.php'; - $head[$h][1] = $langs->trans("About"); - $head[$h][2] = 'about'; - $h++;*/ - // Show more tabs from modules // Entries must be declared in modules descriptor with line //$this->tabs = array( @@ -61,5 +63,7 @@ function knowledgemanagementAdminPrepareHead() //); // to remove a tab complete_head_from_modules($conf, $langs, null, $head, $h, 'knowledgemanagement'); + complete_head_from_modules($conf, $langs, null, $head, $h, 'knowledgemanagement', 'remove'); + return $head; } diff --git a/htdocs/langs/HOWTO-Translation.txt b/htdocs/langs/HOWTO-Translation.txt index 0a05133fdb8..7e7d3c68af1 100644 --- a/htdocs/langs/HOWTO-Translation.txt +++ b/htdocs/langs/HOWTO-Translation.txt @@ -3,7 +3,8 @@ An instruction guide for translating Dolibarr in a new language is available on Dolibarr wiki: -English: https://wiki.dolibarr.org/index.php/Translator_documentation -French: https://wiki.dolibarr.org/index.php/Documentation_traducteur -Spanish: https://wiki.dolibarr.org/index.php/Documentaci%C3%B3n_traductores -German: https://wiki.dolibarr.org/index.php/Dokumentation_Uebersetzung +English: https://wiki.dolibarr.org/index.php/Translator_documentation +French: https://wiki.dolibarr.org/index.php/Documentation_traducteur +Spanish: https://wiki.dolibarr.org/index.php/Documentaci%C3%B3n_traductores +German: https://wiki.dolibarr.org/index.php/Dokumentation_Uebersetzung +Chinese: https://wiki.dolibarr.org/index.php/%E7%BF%BB%E8%AF%91%E6%96%87%E6%A1%A3 diff --git a/htdocs/langs/am_ET/datapolicy.lang b/htdocs/langs/am_ET/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/am_ET/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/am_ET/errors.lang b/htdocs/langs/am_ET/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/am_ET/errors.lang +++ b/htdocs/langs/am_ET/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/am_ET/externalsite.lang b/htdocs/langs/am_ET/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/am_ET/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/am_ET/ftp.lang b/htdocs/langs/am_ET/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/am_ET/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ar_DZ/datapolicy.lang b/htdocs/langs/ar_DZ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ar_DZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_DZ/errors.lang b/htdocs/langs/ar_DZ/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/ar_DZ/errors.lang +++ b/htdocs/langs/ar_DZ/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/ar_DZ/externalsite.lang b/htdocs/langs/ar_DZ/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/ar_DZ/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/ar_DZ/ftp.lang b/htdocs/langs/ar_DZ/ftp.lang deleted file mode 100644 index 254a2a698ce..00000000000 --- a/htdocs/langs/ar_DZ/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP or SFTP Client module setup -NewFTPClient=New FTP/FTPS connection setup -FTPArea=FTP/FTPS Area -FTPAreaDesc=This screen shows a view of an FTP et SFTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions -FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ar_EG/accountancy.lang b/htdocs/langs/ar_EG/accountancy.lang index f860205b216..84a3c7e398f 100644 --- a/htdocs/langs/ar_EG/accountancy.lang +++ b/htdocs/langs/ar_EG/accountancy.lang @@ -1,2 +1,5 @@ # Dolibarr language file - Source file is en_US - accountancy -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +Selectformat=حدد حجم الملف +ACCOUNTING_EXPORT_FORMAT=حدد حجم الملف +BackToChartofaccounts=مخطط إرجاع الحسابات +CountriesNotInEEC=بلدان غير أعضاء في المجموعة اﻹقتصادية أﻷوروبية diff --git a/htdocs/langs/ar_EG/datapolicy.lang b/htdocs/langs/ar_EG/datapolicy.lang new file mode 100644 index 00000000000..9fdf912baac --- /dev/null +++ b/htdocs/langs/ar_EG/datapolicy.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - datapolicy +DATAPOLICY_TIERS_CLIENT =عميل +DATAPOLICY_CONTACT_CLIENT =عميل diff --git a/htdocs/langs/ar_EG/main.lang b/htdocs/langs/ar_EG/main.lang index 970e5d4d1d2..4745434e9cb 100644 --- a/htdocs/langs/ar_EG/main.lang +++ b/htdocs/langs/ar_EG/main.lang @@ -22,6 +22,7 @@ FormatDateHourText=%B %d, %Y, %I:%M %p Closed=مقفول Closed2=مقفول CloseAs=اضبط الحالة على +OpenVerb=افتح Password=كلمة السر Connection=تسجيل دخول RefSupplier=المرجع. مورد diff --git a/htdocs/langs/ar_EG/propal.lang b/htdocs/langs/ar_EG/propal.lang index bd57090dbd4..62d9172d356 100644 --- a/htdocs/langs/ar_EG/propal.lang +++ b/htdocs/langs/ar_EG/propal.lang @@ -13,7 +13,6 @@ Prospect=فرصة DeleteProp=حذف العرض التجاري ValidateProp=اعتماد العرض التجاري AddProp=إنشاء عرض -ConfirmDeleteProp=هل أنت متأكد أنك تريد حذف هذا العرض التجاري؟ ConfirmValidateProp=هل أنت متأكد أنك تريد اعتماد هذا العرض التجاري تحت الاسم %s ؟ LastPropals=أحدث عروض %s LastModifiedProposals=أحدث العروض المعدلة %s @@ -49,7 +48,6 @@ ErrorPropalNotFound=العرض %s غير موجود AddToDraftProposals=أضف إلى مسودة العرض NoDraftProposals=لا توجد مسودات عروض CopyPropalFrom=إنشاء عرض تجاري عن طريق نسخ العرض الحالي -CreateEmptyPropal=إنشاء عرض تجاري فارغ أو من قائمة المنتجات / الخدمات DefaultProposalDurationValidity=مدة صلاحية العرض التجاري الافتراضي (بالأيام) ConfirmClonePropal=هل أنت متأكد أنك تريد استنساخ العرض التجاري %s ؟ ConfirmReOpenProp=هل أنت متأكد أنك تريد إعادة فتح العرض التجاري %s ؟ @@ -59,8 +57,8 @@ AvailabilityTypeAV_1W=أسبوع 1 AvailabilityTypeAV_1M=شهر 1 TypeContact_propal_internal_SALESREPFOLL=الممثل المتابع للعرض TypeContact_propal_external_BILLING=جهة اتصال فاتورة العميل -DocModelCyanDescription=نموذج عرض كامل DefaultModelPropalCreate=إنشاء النموذج الافتراضي DefaultModelPropalToBill=النموذج الافتراضي عند إغلاق عرض الأعمال (سيتم إصدار فاتورة به) +DocModelCyanDescription=نموذج عرض كامل ProposalCustomerSignature=قبول خطي وختم الشركة والتاريخ والتوقيع ProposalsStatisticsSuppliers=إحصاءات مقترحات البائعين diff --git a/htdocs/langs/ar_EG/recruitment.lang b/htdocs/langs/ar_EG/recruitment.lang deleted file mode 100644 index 1ed064a91d3..00000000000 --- a/htdocs/langs/ar_EG/recruitment.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - recruitment -ModuleRecruitmentName =توظيف -ModuleRecruitmentDesc =إدارة ومتابعة حملات التوظيف لشغل وظائف جديدة -RecruitmentSetup =إعداد التوظيف diff --git a/htdocs/langs/ar_EG/supplier_proposal.lang b/htdocs/langs/ar_EG/supplier_proposal.lang index 98769314093..ab10fd913c0 100644 --- a/htdocs/langs/ar_EG/supplier_proposal.lang +++ b/htdocs/langs/ar_EG/supplier_proposal.lang @@ -11,8 +11,6 @@ LastModifiedRequests=أحدث طلبات السعر المعدلة %s RequestsOpened=طلبات عروض اسعار مفتوحة SupplierProposalArea=منطقة عروض الموردين SupplierProposalShort=عرض المورد -SupplierProposals=عروض الموردين -SupplierProposalsShort=عروض الموردين NewAskPrice=طلب عرض سعر جديد ShowSupplierProposal=فتح عرض السعر AddSupplierProposal=عمل طلب عرض سعر @@ -30,7 +28,6 @@ SupplierProposalStatusValidatedShort=معتمد SupplierProposalStatusClosedShort=مقفول SupplierProposalStatusSignedShort=مقبول SupplierProposalStatusNotSignedShort=مرفوض -CopyAskFrom=قم بإنشاء طلب سعر عن طريق نسخ طلب موجود CreateEmptyAsk=إنشاء طلب فارغ ConfirmCloneAsk=هل أنت متأكد أنك تريد استنساخ طلب السعر %s ؟ ConfirmReOpenAsk=هل أنت متأكد أنك تريد فتح طلب السعر مرة أخرى %s ؟ @@ -39,9 +36,6 @@ SupplierProposalCard=بطاقة الطلب ConfirmDeleteAsk=هل أنت متأكد أنك تريد حذف طلب السعر هذا %s ؟ DefaultModelSupplierProposalCreate=إنشاء النموذج الافتراضي DefaultModelSupplierProposalClosed=القالب الافتراضي عند إغلاق طلب السعر (مرفوض) -ListOfSupplierProposals=قائمة طلبات عروض البائعين -ListSupplierProposalsAssociatedProject=قائمة عروض الموردين المرتبطة بالمشروع SupplierProposalsToClose=عروض موردين لإغلاق SupplierProposalsToProcess=عروض موردين لمعالجة -LastSupplierProposals=أحدث طلبات أسعار %s AllPriceRequests=جميع الطلبات diff --git a/htdocs/langs/ar_IQ/propal.lang b/htdocs/langs/ar_IQ/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/ar_IQ/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/ar_JO/datapolicy.lang b/htdocs/langs/ar_JO/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ar_JO/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_JO/errors.lang b/htdocs/langs/ar_JO/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/ar_JO/errors.lang +++ b/htdocs/langs/ar_JO/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/ar_JO/externalsite.lang b/htdocs/langs/ar_JO/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/ar_JO/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/ar_JO/ftp.lang b/htdocs/langs/ar_JO/ftp.lang deleted file mode 100644 index 254a2a698ce..00000000000 --- a/htdocs/langs/ar_JO/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP or SFTP Client module setup -NewFTPClient=New FTP/FTPS connection setup -FTPArea=FTP/FTPS Area -FTPAreaDesc=This screen shows a view of an FTP et SFTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions -FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 64cbf0a1651..e7db1d05f66 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -1,6 +1,6 @@ # Dolibarr language file - en_US - Accountancy (Double entries) Accountancy=المحاسبة -Accounting=محاسبة +Accounting=الحسابات ACCOUNTING_EXPORT_SEPARATORCSV=فاصل العمود لملف التصدير ACCOUNTING_EXPORT_DATE=تنسيق التاريخ لملف التصدير ACCOUNTING_EXPORT_PIECE=تصدير عدد القطعة @@ -37,8 +37,8 @@ OtherInfo=معلومات اخرى DeleteCptCategory=إزالة حساب المحاسبة من المجموعة ConfirmDeleteCptCategory=هل أنت متأكد أنك تريد إزالة هذا الحساب المحاسبي من مجموعة حسابات المحاسبة؟ JournalizationInLedgerStatus=حالة اليوميات -AlreadyInGeneralLedger=Already transferred to accounting journals and ledger -NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger +AlreadyInGeneralLedger=تم نقلها بالفعل إلى دفاتر اليومية المحاسبية ودفتر الأستاذ +NotYetInGeneralLedger=لم يتم نقلها بعد إلى المجلات ودفتر الأستاذ GroupIsEmptyCheckSetup=المجموعة فارغة ، تحقق من إعداد مجموعة المحاسبة المخصصة DetailByAccount=إظهار التفاصيل حسب الحساب AccountWithNonZeroValues=الحسابات ذات القيم غير الصفرية @@ -48,8 +48,9 @@ CountriesNotInEEC=ليس ضمن دول الاتحاد الأوروبي CountriesInEECExceptMe=البلدان في المجموعة الاقتصادية الأوروبية باستثناء %s CountriesExceptMe=جميع الدول باستثناء %s AccountantFiles=تصدير مستندات المصدر -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=باستخدام هذه الأداة ، يمكنك البحث عن مصدر الأحداث التي يتم استخدامها لإنشاء المحاسبة الخاصة بك وتصديرها.
    سيحتوي ملف ZIP المُصدَّر على قوائم العناصر المطلوبة في CSV ، بالإضافة إلى الملفات المرفقة بتنسيقها الأصلي (PDF ، ODT ، DOCX ...). ExportAccountingSourceDocHelp2=لتصدير دفاترك المحاسبية ، إستخدم القائمة %s - %s . +ExportAccountingProjectHelp=حدد مشروعًا إذا كنت بحاجة إلى تقرير محاسبة لمشروع معين فقط. لا يتم تضمين تقارير المصروفات ودفعات القرض في تقارير المشروع. VueByAccountAccounting=عرض حسب الحساب المحاسبي VueBySubAccountAccounting=عرض حسب الحساب المحاسبة الفرعي @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=حساب المحاسبة الرئيسي لل MainAccountForUsersNotDefined=حساب المحاسبة الرئيسي للمستخدمين الغير محددين في الإعدادات MainAccountForVatPaymentNotDefined=حساب المحاسبة الرئيسي لدفعات (VAT) الغير محددين في الإعدادات MainAccountForSubscriptionPaymentNotDefined=حساب المحاسبة الرئيسي للمشتركين الغير محددين في الإعدادات +UserAccountNotDefined=لم يتم تعريف حساب في الحسابات في الاعدادات AccountancyArea=منطقة المحاسبة AccountancyAreaDescIntro=استخدام وحدة المحاسبة تم في عدة خطوات: AccountancyAreaDescActionOnce=عادة ما يتم تنفيذ الإجراءات التالية مرة واحدة فقط ، أو مرة واحدة في السنة. -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting +AccountancyAreaDescActionOnceBis=يجب القيام بالخطوات التالية لتوفير الوقت في المستقبل من خلال اقتراح حساب المحاسبة الافتراضي الصحيح تلقائيًا عند نقل البيانات في المحاسبة AccountancyAreaDescActionFreq=يتم تنفيذ الإجراءات التالية عادةً كل شهر أو أسبوع أو كل يوم للشركات الكبيرة جدًا . -AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=الخطوة %s: تحقق من محتوى قائمة مجلاتك من القائمة %s AccountancyAreaDescChartModel=الخطوة %s: تحقق من وجود نموذج لمخطط الحساب أو قم بإنشاء نموذج من القائمة %s AccountancyAreaDescChart=الخطوة %s : حدد و / أو أكمل مخطط حسابك من القائمة %s AccountancyAreaDescVat=الخطوة %s: تحديد حسابات المحاسبة لكل معدلات ضريبة القيمة المضافة. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescDefault=الخطوة %s: تحديد حسابات المحاسبة الافتراضية. لهذا ، استخدم إدخال القائمة %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لكل نوع من أنواع تقرير المصاريف. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescSal=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لدفع الرواتب. لهذا ، استخدم إدخال القائمة %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. +AccountancyAreaDescContrib=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للضرائب (نفقات خاصة). لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescDonation=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للتبرع. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescSubscription=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لاشتراك الأعضاء. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescMisc=الخطوة %s: تحديد الحساب الافتراضي الإلزامي وحسابات المحاسبة الافتراضية للمعاملات المتنوعة. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescLoan=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للقروض. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescBank=الخطوة %s: تحديد الحسابات المحاسبية ورمز دفتر اليومية لكل حساب بنكي والحسابات المالية. لهذا ، استخدم إدخال القائمة %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. +AccountancyAreaDescProd=الخطوة %s: تحديد حسابات المحاسبة لمنتجاتك / خدماتك. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescBind=الخطوة %s: تحقق من الربط بين سطور %s الحالية وحساب المحاسبة ، لتمكين التطبيق من تسجيل المعاملات في دفتر الأستاذ بنقرة واحدة. إكمال الارتباطات المفقودة. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescWriteRecords=الخطوة %s: اكتب المعاملات في دفتر الأستاذ. لهذا ، انتقل إلى القائمة %s ، وانقر فوق الزر %s . @@ -112,7 +114,7 @@ MenuAccountancyClosure=اغلاق MenuAccountancyValidationMovements=اعتماد الحركات ProductsBinding=حسابات المنتجات TransferInAccounting=التحويل في المحاسبة -RegistrationInAccounting=Recording in accounting +RegistrationInAccounting=التسجيل في المحاسبة Binding=ربط للحسابات CustomersVentilation=ربط فاتورة العميل SuppliersVentilation=ربط فاتورة المورد @@ -120,7 +122,7 @@ ExpenseReportsVentilation=ربط تقرير المصاريف CreateMvts=إنشاء معاملة جديدة UpdateMvts=تعديل معاملة ValidTransaction=اعتماد المعاملة -WriteBookKeeping=Record transactions in accounting +WriteBookKeeping=تسجيل المعاملات في المحاسبة Bookkeeping=دفتر حسابات BookkeepingSubAccount=حساب استاذ فرعي AccountBalance=رصيد الحساب @@ -132,7 +134,7 @@ InvoiceLinesDone=بنود الفواتير المقيدة ExpenseReportLines=بنود تقارير المصاريف المراد ربطها ExpenseReportLinesDone=البنود المقيدة لتقارير المصروفات IntoAccount=ربط البند مع حساب المحاسبة -TotalForAccount=Total accounting account +TotalForAccount=حساب المحاسبة الإجمالي Ventilate=ربط @@ -156,76 +158,80 @@ ACCOUNTING_LENGTH_DESCRIPTION=اقتطاع وصف المنتج والخدمات ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=اقتطاع نموذج وصف حساب المنتجات والخدمات في القوائم بعد حرف x (الأفضل = 50) ACCOUNTING_LENGTH_GACCOUNT=طول حسابات المحاسبة العامة (إذا قمت بتعيين القيمة إلى 6 هنا ، فسيظهر الحساب "706" مثل "706000" على الشاشة) ACCOUNTING_LENGTH_AACCOUNT=طول حسابات الطرف الثالث المحاسبية (إذا قمت بتعيين القيمة إلى 6 هنا ، فسيظهر الحساب "401" مثل "401000" على الشاشة) -ACCOUNTING_MANAGE_ZERO=السماح بإدارة عدد مختلف من الأصفار في نهاية الحساب المحاسبي. تحتاجه بعض الدول (مثل سويسرا). إذا تم الضبط على إيقاف (افتراضي) ، يمكنك تعيين المعاملين التاليتين لتطلب من التطبيق إضافة أصفار افتراضية. +ACCOUNTING_MANAGE_ZERO=السماح بإدارة عدد مختلف من الأصفار في نهاية الحساب المحاسبي. تحتاجه بعض الدول (مثل سويسرا). إذا تم الضبط على إيقاف (افتراضي) ، يمكنك برمجة اﻹعدادين التاليين لتطلب من التطبيق إضافة أصفار افتراضية. BANK_DISABLE_DIRECT_INPUT=تعطيل التسجيل المباشر للمعاملة في الحساب المصرفي -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=تفعيل تصدير المسودة الى دفتر اليومية -ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=إتاحة تصدير المسودة الى الدفتر اليومي\n +ACCOUNTANCY_COMBO_FOR_AUX=تمكين قائمة التحرير والسرد للحساب الفرعي (قد يكون بطيئًا إذا كان لديك الكثير من الأطراف الثالثة ، أو كسر القدرة على البحث عن جزء من القيمة) ACCOUNTING_DATE_START_BINDING=تحديد موعد لبدء الربط والتحويل في المحاسبة. بعد هذا التاريخ ، لن يتم تحويل المعاملات إلى المحاسبة. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=في نقل المحاسبة ، حدد فترة العرض بشكل افتراضي +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=في تحويل المحاسبة ، ما هي الفترة المحددة افتراضيا -ACCOUNTING_SELL_JOURNAL=دفتر البيع اليومي -ACCOUNTING_PURCHASE_JOURNAL=دفتر الشراء اليومي -ACCOUNTING_MISCELLANEOUS_JOURNAL=دفتر المتفرقات اليومي +ACCOUNTING_SELL_JOURNAL=المبيعات في اليومية العامة (المبيعات و المرتجعات) +ACCOUNTING_PURCHASE_JOURNAL=المشتريات في اليومية العامة (المشتريات و المرتجعات) +ACCOUNTING_BANK_JOURNAL=النقدي اليومية ( المقبوضات و المدفوعات) ACCOUNTING_EXPENSEREPORT_JOURNAL=دفتر تقرير المصروف اليومي -ACCOUNTING_SOCIAL_JOURNAL=دفتر اليومية الاجتماعي +ACCOUNTING_MISCELLANEOUS_JOURNAL=اليومية العامة ACCOUNTING_HAS_NEW_JOURNAL=له دفتر يوميات جديد +ACCOUNTING_INVENTORY_JOURNAL=المخزون في اليومية +ACCOUNTING_SOCIAL_JOURNAL=دفتر اليومية الاجتماعي ACCOUNTING_RESULT_PROFIT=نتيجة حساب المحاسبي (الربح) ACCOUNTING_RESULT_LOSS=نتيجة حساب المحاسبي (الخسارة) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=دقتر الإغلاق -ACCOUNTING_ACCOUNT_TRANSFER_CASH=حساب التحويل البنكي الانتقالي +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=حساب التحويل البنكي الانتقالي -ACCOUNTING_ACCOUNT_SUSPENSE=حساب الانتظار -DONATION_ACCOUNTINGACCOUNT=حساب تسجيل التبرعات -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=حساب تسجيل الاشتراكات +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=حساب افتراضي لتسجيل إيداع العميل -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=حساب افتراضي للمنتجات المشتراة (يستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=حساب افتراضي للمنتجات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=حساب افتراضي للمنتجات المشتراة والمستوردة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة المنتج) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=حساب افتراضي للمنتجات المباعة (يستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=حساب افتراضي للمنتجات المباعة في الاتحاد الاوروبي (مستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=حساب افتراضي للمنتجات المباعة والمصدرة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة المنتج) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=حساب افتراضي للخدمات المشتراة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=حساب افتراضي للخدمات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=حساب افتراضي للخدمات المشتراة والمستوردة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=حساب افتراضي للخدمات المباعة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=حساب افتراضي للخدمات المباعة في الاتحاد الاوروبي (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=حساب افتراضي للخدمات المباعة والمصدرة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=نوع الوثيقة Docdate=التاريخ Docref=مرجع LabelAccount=Label account LabelOperation=Label operation -Sens=الاتجاه -AccountingDirectionHelp=For an accounting account of a customer, use Credit to record a payment you have received
    For an accounting account of a supplier, use Debit to record a payment you made +Sens=الادارة +AccountingDirectionHelp=بالنسبة لحساب محاسبي لعميل ، استخدم الائتمان لتسجيل دفعة تلقيتها
    بالنسبة لحساب محاسبي لمورد ، استخدم الخصم لتسجيل دفعة قمت بها LetteringCode=Lettering code Lettering=Lettering Codejournal=دفتر اليومية JournalLabel=اسم دفتر اليومية -NumPiece=Piece number +NumPiece=رقم القطعة TransactionNumShort=رقم. العملية -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية. ByAccounts=حسب الحسابات ByPredefinedAccountGroups=من خلال مجموعات محددة مسبقًا ByPersonalizedAccountGroups=بواسطة مجموعات شخصية -ByYear=بحلول العام +ByYear=سنويا NotMatch=Not Set -DeleteMvt=Delete some lines from accounting +DeleteMvt=حذف بعض البنود من المحاسبة DelMonth=شهر للحذف DelYear=السنة للحذف DelJournal=دفتر يومية للحذف -ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) +ConfirmDeleteMvt=سيؤدي هذا إلى حذف جميع سطور المحاسبة للسنة / الشهر و / أو لمجلة معينة (مطلوب معيار واحد على الأقل). سيتعين عليك إعادة استخدام الميزة "%s" لإعادة السجل المحذوف إلى دفتر الأستاذ. +ConfirmDeleteMvtPartial=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة) FinanceJournal=دفتر المالية اليومي ExpenseReportsJournal=دفتر تقارير المصاريف DescFinanceJournal=دفتر المالية اليومي المتضمن لجميع الدفعات عن طريق الحساب المصرفي @@ -247,9 +253,9 @@ DescThirdPartyReport=راجع هنا قائمة العملاء والموردي ListAccounts=قائمة الحسابات المحاسبية UnknownAccountForThirdparty=حساب طرف ثالث غير معروف. سوف نستخدم %s UnknownAccountForThirdpartyBlocking=حساب طرف ثالث غير معروف. خطأ في المنع -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or third party or user unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=حساب دفتر الأستاذ الفرعي غير محدد أو الطرف الثالث أو المستخدم غير معروف. سوف نستخدم %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=طرف ثالث غير معروف ودفتر الأستاذ الفرعي غير محدد في الدفعة. سنبقي قيمة حساب دفتر الأستاذ الفرعي فارغة. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledger account not defined or third party or user unknown. Blocking error. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=حساب دفتر الأستاذ الفرعي غير محدد أو الطرف الثالث أو المستخدم غير معروف. خطأ في المنع. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=حساب طرف ثالث وحساب قيد الانتظار غير معرّفين. خطأ في المنع PaymentsNotLinkedToProduct=الدفع غير مرتبط بأي منتج / خدمة OpeningBalance=الرصيد الافتتاحي @@ -265,13 +271,13 @@ Reconcilable=قابل للتسوية TotalVente=المبيعات الإجمالية قبل الضريبة TotalMarge=إجمالي هامش المبيعات -DescVentilCustomer=راجع هنا قائمة بنود فاتورة العميل المرتبطة (أو غير المرتبطة) بحساب المنتج -DescVentilMore=في معظم الحالات ، إذا كنت تستخدم منتجات أو خدمات محددة مسبقًا وقمت بتعيين رقم الحساب على بطاقة المنتج / الخدمة ، فسيكون التطبيق قادرًا على إجراء جميع عمليات الربط بين سطور الفاتورة وحساب مخطط الحسابات الخاص بك ، فقط بنقرة واحدة على الزر "%s" . إذا لم يتم تعيين الحساب على بطاقات المنتج / الخدمة أو إذا كان لا يزال لديك بعض الأسطر غير المرتبطة بحساب ، فسيتعين عليك إجراء ربط يدوي من القائمة " %s ". -DescVentilDoneCustomer=راجع هنا قائمة بنود فواتير العملاء وحساب منتجاتهم -DescVentilTodoCustomer=ربط بنود الفاتورة غير المرتبطة بحساب المنتج -ChangeAccount=قم بتغيير حساب المنتج / الخدمة للبنود المحددة باستخدام الحساب التالي: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=راجع هنا قائمة بنود فاتورة المورد المرتبطة أو غير المرتبطة بعد بحساب المنتج (فقط السجل الذي لم يتم نقله بالفعل في المحاسبة سيكون مرئي) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=راجع هنا قائمة بنود فواتير البائعين وحساباتهم DescVentilTodoExpenseReport=ربط بنود تقرير المصروفات غير المرتبطة بحساب الرسوم DescVentilExpenseReport=راجع هنا قائمة بنود تقرير المصروفات المرتبطة (أو غير المرتبطة) بحساب الرسوم @@ -279,31 +285,31 @@ DescVentilExpenseReportMore=إذا قمت بإعداد حساب على نوع ب DescVentilDoneExpenseReport=راجع هنا قائمة بنود تقارير المصروفات وحساب رسومها Closure=الإغلاق السنوي -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +DescClosure=استشر هنا عدد الحركات حسب الشهر التي لم يتم التحقق من صحتها وإغلاقها +OverviewOfMovementsNotValidated=نظرة عامة على الحركات التي لم يتم التحقق من صحتها وإغلاقها +AllMovementsWereRecordedAsValidated=تم تسجيل جميع الحركات على أنها محققة ومغلقة +NotAllMovementsCouldBeRecordedAsValidated=لا يمكن تسجيل جميع الحركات على أنها تم التحقق من صحتها وقفلها +ValidateMovements=التحقق و تقيد الحركة DescValidateMovements=سيتم حظر أي تعديل أو حذف للكتابة والحروف. يجب اعتماد جميع الإدخالات الخاصة بالتمرين وإلا فلن يكون الإغلاق ممكنًا ValidateHistory=ربط تلقائي -AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +AutomaticBindingDone=تم إجراء عمليات ربط تلقائية (%s) - الربط التلقائي غير ممكن لبعض السجلات (%s) -ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s Balancing=موازنة FicheVentilation=بطاقة مرتبطة GeneralLedgerIsWritten=المعاملات مكتوبة في دفتر الأستاذ GeneralLedgerSomeRecordWasNotRecorded=لا يمكن تسجيل بعض المعاملات. إذا لم تكن هناك رسالة خطأ أخرى ، فربما يكون ذلك بسبب تسجيلها في دفتر اليومية بالفعل. -NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=قائمة المنتجات غير مرتبطة بأي حساب +NoNewRecordSaved=لا يوجد المزيد من السجلات لنقلها +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=تغيير الربط Accounted=حسب في دفتر الأستاذ -NotYetAccounted=Not yet transferred to accounting +NotYetAccounted=لم يتم تحويلها بعد إلى المحاسبة ShowTutorial=عرض البرنامج التعليمي NotReconciled=لم يتم تسويتة -WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view -AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +WarningRecordWithoutSubledgerAreExcluded=تحذير ، كل الأسطر التي لم يتم تحديد حساب دفتر الأستاذ الفرعي تتم تصفيتها واستبعادها من طريقة العرض هذه +AccountRemovedFromCurrentChartOfAccount=حساب محاسبي غير موجود في مخطط الحسابات الحالي ## Admin BindingOptions=خيارات الربط @@ -319,9 +325,10 @@ AccountingJournalType1=عمليات متنوعة AccountingJournalType2=مبيعات AccountingJournalType3=مشتريات AccountingJournalType4=بنك -AccountingJournalType5=تقرير مصروفات -AccountingJournalType8=المخزون +AccountingJournalType5=تقارير المصاريف +AccountingJournalType8=الجرد AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=هذه الدفتر مستخدم بالفعل AccountingAccountForSalesTaxAreDefinedInto=ملاحظة: تم تعريف حساب ضريبة المبيعات في القائمة %s - %s NumberOfAccountancyEntries=عدد الادخالات @@ -329,12 +336,14 @@ NumberOfAccountancyMovements=عدد الحركات ACCOUNTING_DISABLE_BINDING_ON_SALES=تعطيل الربط والتحويل في المحاسبة على المبيعات (لن يتم أخذ فواتير العميل في الاعتبار في المحاسبة) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل في المحاسبة على المشتريات (لن يتم أخذ فواتير البائعين في الاعتبار في المحاسبة) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) -DateValidationAndLock=Date validation and lock -ConfirmExportFile=Confirmation of the generation of the accounting export file ? +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) +NotifiedValidationDate=تحقق من صحة الإدخالات التي تم تصديرها وقفلها (نفس التأثير من ميزة "%s" ، ولن يكون تعديل الأسطر وحذفها بالتأكيد ممكنًا) +DateValidationAndLock=التحقق من صحة التاريخ والقفل +ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟ ExportDraftJournal=تصدير مسودة دفتر اليومية Modelcsv=نموذج التصدير Selectmodelcsv=تحديد نموذج للتصدير @@ -342,11 +351,11 @@ Modelcsv_normal=تصدير كلاسيكي Modelcsv_CEGID=Export for CEGID Expert Comptabilité Modelcsv_COALA=Export for Sage Coala Modelcsv_bob50=Export for Sage BOB 50 -Modelcsv_ciel=Export for Sage50, Ciel Compta or Compta Evo. (Format XIMPORT) +Modelcsv_ciel=تصدير لـ Sage50 أو Ciel Compta أو Compta Evo. (تنسيق XIMPORT) Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog -Modelcsv_agiris=Export for Agiris Isacompta +Modelcsv_agiris=تصدير إلى Agiris Isacompta Modelcsv_LDCompta=Export for LD Compta (v9) (Test) Modelcsv_LDCompta10=Export for LD Compta (v10 & higher) Modelcsv_openconcerto=Export for OpenConcerto (Test) @@ -354,10 +363,10 @@ Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC Modelcsv_FEC2=Export FEC (With dates generation writing / document reversed) Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland -Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta +Modelcsv_winfic=تصدير لـ Winfic - eWinfic - WinSis Compta Modelcsv_Gestinumv3=Export for Gestinum (v3) -Modelcsv_Gestinumv5=Export for Gestinum (v5) -Modelcsv_charlemagne=Export for Aplim Charlemagne +Modelcsv_Gestinumv5=تصدير لـ Gestinum (v5) +Modelcsv_charlemagne=تصدير لأبليم شارلمان ChartofaccountsId=معرف دليل الحسابات ## Tools - Init accounting account on product / service @@ -390,27 +399,32 @@ SaleExport=بيع تصدير SaleEEC=بيع في الاتحاد الاوروبي SaleEECWithVAT=البيع في EEC مع ضريبة القيمة المضافة ليست فارغة ، لذلك نفترض أن هذا ليس بيعًا داخل الاتحاد والحساب المقترح هو حساب المنتج القياسي. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fallback on the product account for standard sales. You can fix the VAT ID of thirdparty or the product account if needed. -ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. -ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. +ForbiddenTransactionAlreadyExported=ممنوع: تم التحقق من صحة المعاملة و / أو تصديرها. +ForbiddenTransactionAlreadyValidated=ممنوع: تم التحقق من صحة المعاملة. ## Dictionary Range=نطاق الحساب Calculated=تم حسابه Formula=معادلة ## Reconcile -Unlettering=Unreconcile -AccountancyNoLetteringModified=No reconcile modified -AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified -AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified -AccountancyNoUnletteringModified=No unreconcile modified -AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified -AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=غير قابل للتوفيق +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=لم يتم تعديل تسوية +AccountancyOneLetteringModifiedSuccessfully=تم تعديل أحد التوفيق بنجاح +AccountancyLetteringModifiedSuccessfully=تعديل %s بنجاح +AccountancyNoUnletteringModified=لم يتم تعديل عدم التوفيق بينها +AccountancyOneUnletteringModifiedSuccessfully=تم تعديل أحد ملفات التوفيق بنجاح +AccountancyUnletteringModifiedSuccessfully=تم تعديل %s بنجاح ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=تأكيد الحذف الضخم -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeleteBookkeepingWritingQuestion=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة) هل أنت متأكد من أنك تريد حذف السجل (السجلات) المحددة %s؟ ## Error SomeMandatoryStepsOfSetupWereNotDone=لم يتم تنفيذ بعض خطوات الإعداد الإلزامية ، يرجى إكمالها @@ -423,36 +437,36 @@ NoJournalDefined=لم يتم تحديد دفتر Binded=البنود مرتبطة ToBind=بنود للربط UseMenuToSetBindindManualy=البنود غير مرتبطة بعد ، استخدم القائمة %s لإجراء الربط يدويًا -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code -AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 -AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=عذرًا ، هذه الوحدة غير متوافقة مع الميزة التجريبية لفواتير الحالة +AccountancyErrorMismatchLetterCode=عدم تطابق في التوفيق بين الكود +AccountancyErrorMismatchBalanceAmount=الرصيد (%s) لا يساوي 0 +AccountancyErrorLetteringBookkeeping=حدثت أخطاء بخصوص المعاملات: %s +ErrorAccountNumberAlreadyExists=رقم المحاسبة %s موجود بالفعل ## Import ImportAccountingEntries=مداخيل حسابية -ImportAccountingEntriesFECFormat=Accounting entries - FEC format -FECFormatJournalCode=Code journal (JournalCode) -FECFormatJournalLabel=Label journal (JournalLib) -FECFormatEntryNum=Piece number (EcritureNum) -FECFormatEntryDate=Piece date (EcritureDate) -FECFormatGeneralAccountNumber=General account number (CompteNum) -FECFormatGeneralAccountLabel=General account label (CompteLib) -FECFormatSubledgerAccountNumber=Subledger account number (CompAuxNum) -FECFormatSubledgerAccountLabel=Subledger account number (CompAuxLib) -FECFormatPieceRef=Piece ref (PieceRef) -FECFormatPieceDate=Piece date creation (PieceDate) -FECFormatLabelOperation=Label operation (EcritureLib) +ImportAccountingEntriesFECFormat=قيود المحاسبة - شكل FEC +FECFormatJournalCode=مجلة الكود (JournalCode) +FECFormatJournalLabel=مجلة التسمية (JournalLib) +FECFormatEntryNum=رقم القطعة (EcritureNum) +FECFormatEntryDate=تاريخ القطعة (EcritureDate) +FECFormatGeneralAccountNumber=رقم الحساب العام (CompteNum) +FECFormatGeneralAccountLabel=تصنيف الحساب العام (CompteLib) +FECFormatSubledgerAccountNumber=رقم حساب دفتر الأستاذ الفرعي (CompAuxNum) +FECFormatSubledgerAccountLabel=رقم حساب دفتر الأستاذ الفرعي (CompAuxLib) +FECFormatPieceRef=مرجع القطعة (PieceRef) +FECFormatPieceDate=إنشاء تاريخ القطعة (تاريخ القطعة) +FECFormatLabelOperation=عملية التسمية (EcritureLib) FECFormatDebit=مدين (مدين) FECFormatCredit=دائن (دائن) -FECFormatReconcilableCode=Reconcilable code (EcritureLet) -FECFormatReconcilableDate=Reconcilable date (DateLet) -FECFormatValidateDate=Piece date validated (ValidDate) -FECFormatMulticurrencyAmount=Multicurrency amount (Montantdevise) -FECFormatMulticurrencyCode=Multicurrency code (Idevise) +FECFormatReconcilableCode=كود قابل للتوفيق (EcritureLet) +FECFormatReconcilableDate=تاريخ قابل للتسوية (DateLet) +FECFormatValidateDate=تم التحقق من تاريخ القطعة (ValidDate) +FECFormatMulticurrencyAmount=مبلغ متعدد العملات (Montantdevise) +FECFormatMulticurrencyCode=كود متعدد العملات (ايديفيز) DateExport=تاريخ التصدير WarningReportNotReliable=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة. ExpenseReportJournal=تقرير دفتر المصاريف -InventoryJournal=دفتر الجرد NAccounts=%s حساباً diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index d29f515b81c..30ca6ac2dd3 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin -BoldRefAndPeriodOnPDF=Print reference and period of product item in PDF -BoldLabelOnPDF=Print label of product item in Bold in PDF +BoldRefAndPeriodOnPDF=طباعة مرجع وفترة عنصر المنتج في PDF +BoldLabelOnPDF=طباعة الملصق الخاص بمنتج المنتج بالخط العريض في ملف PDF Foundation=أساس Version=الإصدار Publisher=الناشر @@ -51,8 +51,6 @@ ClientSortingCharset=ترتيب العميل WarningModuleNotActive=يجب أن يكون النموذج %s مفعل WarningOnlyPermissionOfActivatedModules=فقط التصاريح المتعلقة بالنماذج المنشطة تظهر هنا. يمكنك تفعيل نماذج أخرى في الصفحة الرئيسية-> لإعداد ت-> صفحة النماذج DolibarrSetup=تركيب أو تحديث دوليبار -InternalUser=مستخدم داخلي -ExternalUser=مستخدم خارجي InternalUsers=مستخدمين داخليين ExternalUsers=مستخدمين خارجيين UserInterface=الواجهة العامة @@ -64,7 +62,7 @@ ModuleMustBeEnabled=يجب أن يكون النموذج / التطبيق %s%s تم تفعيله IfModuleEnabled=ملاحظة : نعم فعالة فقط في حال كان النموذج %s مفعل RemoveLock=حذف/إعادة تسمية الملف %sإذا كان موجود , للسماح باستخدام أداة الرفع/التثبيت . -RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. +RestoreLock=قم باستعادة الملف %s ، بإذن القراءة فقط ، لتعطيل أي استخدام آخر لأداة التحديث / التثبيت. SecuritySetup=الإعداد الأمني PHPSetup=إعدادت PHP OSSetup=إعدادات نظام التشغيل @@ -77,17 +75,17 @@ Dictionary=قواميس ErrorReservedTypeSystemSystemAuto=القيمة 'system' و 'systemauto' لهذا النوع محفوظ. يمكنك إستخدام 'user' كقيمة لإضافة السجل الخاص بك ErrorCodeCantContainZero=الكود لا يمكن أن يحتوي على القيمة 0 DisableJavascript=تعطيل عمليات الجافا و الأجاكس -DisableJavascriptNote=Note: For test or debug purpose only. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user +DisableJavascriptNote=ملاحظة: لغرض الاختبار أو التصحيح فقط. لتحسين أداء الشخص المكفوف أو المتصفحات النصية ، قد تفضل استخدام الإعداد في ملف تعريف المستخدم UseSearchToSelectCompanyTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع COMPANY_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة. UseSearchToSelectContactTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع CONTACT_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة. DelaiedFullListToSelectCompany=انتظر حتى يتم الضغط على مفتاح قبل تحميل محتوى قائمة التحرير والسرد الخاصة بالأطراف الثالثة ،
    قد يؤدي ذلك إلى زيادة الأداء إذا كان لديك عدد كبير من الأطراف الثالثة ، ولكنه أقل ملاءمة. -DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. -NumberOfKeyToSearch=Number of characters to trigger search: %s -NumberOfBytes=Number of Bytes -SearchString=Search string +DelaiedFullListToSelectContact=انتظر حتى يتم الضغط على مفتاح قبل تحميل محتوى قائمة التحرير والسرد جهات الاتصال.
    قد يؤدي هذا إلى زيادة الأداء إذا كان لديك عدد كبير من جهات الاتصال ، ولكنه أقل ملاءمة. +NumberOfKeyToSearch=عدد الأحرف لبدء البحث: %s +NumberOfBytes=عدد البايت +SearchString=دالة البحث NotAvailableWhenAjaxDisabled=غير متوفر عندما يكون أجاكس معطلاً -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months +AllowToSelectProjectFromOtherCompany=في مستند تابع لطرف ثالث ، يمكن اختيار مشروع مرتبط بجهة خارجية أخرى +TimesheetPreventAfterFollowingMonths=منع وقت التسجيل المستغرق بعد عدد الأشهر التالية JavascriptDisabled=الجافا سكربت معطل UsePreviewTabs=إستخدم زر المعاينة ShowPreview=آظهر المعاينة @@ -109,7 +107,7 @@ NextValueForReplacements=القيمة التالية (استبدال) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=ملاحظة : لم يتم وضح حد في إعدادات الـ PHP الخاص بك MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل) -UseCaptchaCode=إستخدم الرسوم كرمز (كابتشا) في صفحة الدخول +UseCaptchaCode=استخدم الكود الرسومي (CAPTCHA) في صفحة تسجيل الدخول وبعض الصفحات العامة AntiVirusCommand=المسار الكامل لبرنامج مكافحة الفيروسات AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= المزيد من الصلاحيات بإستخدام command line @@ -120,7 +118,7 @@ MultiCurrencySetup=إعدادات تعدد العملات MenuLimits=الحدود و الدقة MenuIdParent=رمز القائمة العليا DetailMenuIdParent=رمز القائمة العليا (فراغ للقائمة العليا) -ParentID=Parent ID +ParentID=معرف الوالدين DetailPosition=رتب الرقم لتعريف موقع القائمة AllMenus=الكل NotConfigured=الوحدة النمطية | التطبيق غير مهيأ @@ -160,38 +158,38 @@ SystemToolsArea=منظقة أدوات نظام SystemToolsAreaDesc=هذه المنطقة توفر مميزات إدارية. استخدام القائمة لاختيار الخصائص التي تبحث عنها. Purge=أحذف PurgeAreaDesc=تسمح لك هذه الصفحة بحذف كل الملفات التي بنيت أو تم تخزينها بواسطة دوليبار (الملفات المؤقتة ، أو كافة الملفات في المجلد %s) استخدام هذه الميزة ليست ضرورية. هذه الخدمة مقدمة للمستخدمين الذين يستخدمون برنامج دوليبار على خادم لا يوفر لهم صلاحيات حذف الملفات التي أنشئت من قبل خادم الويب. -PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Parameter can be 'tempfilesold', 'logfiles' or both 'tempfilesold+logfiles'. Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files (no risk of losing data) -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
    This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files. +PurgeDeleteLogFile=حذف ملفات السجل ، بما في ذلك %s المحددة لوحدة Syslog (لا يوجد خطر فقدان البيانات) +PurgeDeleteTemporaryFiles=احذف جميع ملفات السجل والملفات المؤقتة (لا يوجد خطر من فقدان البيانات). يمكن أن تكون المعلمة "tempfilesold" أو "logfiles" أو كلاهما "tempfilesold + logfiles". ملاحظة: يتم حذف الملفات المؤقتة فقط إذا تم إنشاء الدليل المؤقت منذ أكثر من 24 ساعة. +PurgeDeleteTemporaryFilesShort=حذف السجلات والملفات المؤقتة (لا يوجد خطر من فقدان البيانات) +PurgeDeleteAllFilesInDocumentsDir=احذف جميع الملفات في الدليل: %s .
    سيؤدي هذا إلى حذف جميع المستندات التي تم إنشاؤها المتعلقة بالعناصر (الأطراف الثالثة والفواتير وما إلى ذلك ...) والملفات التي تم تحميلها في وحدة ECM وتفريغ النسخ الاحتياطي لقاعدة البيانات والملفات المؤقتة. PurgeRunNow=إحذف الآن -PurgeNothingToDelete=No directory or files to delete. +PurgeNothingToDelete=لا دليل أو ملفات لحذفها. PurgeNDirectoriesDeleted=%s ملفات او مجلدات حذفت -PurgeNDirectoriesFailed=Failed to delete %s files or directories. +PurgeNDirectoriesFailed=فشل حذف ملفات أو أدلة %s . PurgeAuditEvents=احذف جميع الأحداث المتعلقة بالأمان -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +ConfirmPurgeAuditEvents=هل أنت متأكد أنك تريد تطهير كافة الأحداث الأمنية؟ سيتم حذف جميع سجلات الأمان ، ولن تتم إزالة أي بيانات أخرى. GenerateBackup=قم بإنشاء نسخة احتياطية Backup=نسخة احتياطية Restore=استعادة RunCommandSummary=تم إطلاق عملية النسخة الإحتياطية بالأمر التالي BackupResult=نتيجة للنسخة الإحتياطية BackupFileSuccessfullyCreated=تم إنشاء ملف النسخة الاحتياطية بنجاح -YouCanDownloadBackupFile=The generated file can now be downloaded +YouCanDownloadBackupFile=يمكن الآن تنزيل الملف الذي تم إنشاؤه NoBackupFileAvailable=لا يوجد ملفات احتياطية. ExportMethod=طريقة التصدير ImportMethod=طريقة الاستيراد ToBuildBackupFileClickHere=لعمل نسخة إحتياطية, اضغط هنا. -ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.
    For example: +ImportMySqlDesc=لاستيراد ملف نسخ احتياطي MySQL ، يمكنك استخدام phpMyAdmin عبر الاستضافة أو استخدام الأمر mysql من سطر الأوامر.
    على سبيل المثال: ImportPostgreSqlDesc=لاستيراد ملف النسخة الاحتياطية ، يجب استخدام pg_restore من نافذة الأوامر للدوز او اللاينكس : ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filename for backup: +FileNameToGenerate=اسم ملف للنسخ الاحتياطي: Compression=ضغط الملف CommandsToDisableForeignKeysForImport=الأمر المستخدم لتعطيل المفتاح الخارجي في حالة الإستيراد CommandsToDisableForeignKeysForImportWarning=إجباري في حال اردت إسترجاع نسخة قاعدة البيانات الإحتياطية ExportCompatibility=توفق الملف المصدر -ExportUseMySQLQuickParameter=Use the --quick parameter -ExportUseMySQLQuickParameterHelp=The '--quick' parameter helps limit RAM consumption for large tables. +ExportUseMySQLQuickParameter=استخدم المعامل --quick +ExportUseMySQLQuickParameterHelp=تساعد المعلمة "--quick" في الحد من استهلاك ذاكرة الوصول العشوائي للجداول الكبيرة. MySqlExportParameters=تصدير قيم قاعدة البيانات MySql PostgreSqlExportParameters= تصدير قيم قاعدة البيانات PostgreSQL UseTransactionnalMode=إستخدم صيغة المعاملات @@ -205,50 +203,50 @@ ExtendedInsert=الإضافة الممددة NoLockBeforeInsert=لا يوجد أوامر قفل حول الإضافة DelayedInsert=إضافة متأخرة EncodeBinariesInHexa=ترميز البيانات الأحادية لستة عشرية -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) +IgnoreDuplicateRecords=تجاهل أخطاء السجل المكرر (INSERT IGNORE) AutoDetectLang=اكتشاف تلقائي (لغة المتصفح) FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي -FeatureAvailableOnlyOnStable=Feature only available on official stable versions +FeatureAvailableOnlyOnStable=الميزة متوفرة فقط في الإصدارات الرسمية المستقرة BoxesDesc=البريمجات هي المكونات البرمجية التي تُظهر بعض المعلومات في بعض الصفحات. يمكنك اختيار إظهار أو إخفائها بإختيار الصفحات المطلوبة و الضغط على 'تنشيط', او بالضغط على الزر الآخر لتعطيلها. OnlyActiveElementsAreShown=فقط العناصر من النماذج المفعلة سوف تظهر. -ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. -ModulesDesc2=Click the wheel button %s to configure the module/application. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. -ModulesMarketPlaces=Find external app/modules -ModulesDevelopYourModule=Develop your own app/modules -ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. -DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)... -NewModule=New module -FreeModule=Free -CompatibleUpTo=Compatible with version %s -NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s). -CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s). -SeeInMarkerPlace=See in Market place +ModulesDesc=تحدد الوحدات / التطبيقات الميزات المتوفرة في البرنامج. تتطلب بعض الوحدات النمطية منح أذونات للمستخدمين بعد تنشيط الوحدة. انقر فوق زر التشغيل / الإيقاف %s لكل وحدة لتمكين أو تعطيل وحدة / تطبيق. +ModulesDesc2=انقر فوق زر العجلة %s لتكوين الوحدة / التطبيق. +ModulesMarketPlaceDesc=يمكنك العثور على المزيد من الوحدات النمطية للتنزيل على مواقع الويب الخارجية على الإنترنت ... +ModulesDeployDesc=إذا كانت الأذونات على نظام الملفات الخاص بك تسمح بذلك ، يمكنك استخدام هذه الأداة لنشر وحدة خارجية. ستكون الوحدة مرئية بعد ذلك في علامة التبويب %s . +ModulesMarketPlaces=ابحث عن تطبيقات / وحدات خارجية +ModulesDevelopYourModule=تطوير التطبيق / الوحدات الخاصة بك +ModulesDevelopDesc=يمكنك أيضًا تطوير الوحدة النمطية الخاصة بك أو العثور على شريك لتطوير وحدة من أجلك. +DOLISTOREdescriptionLong=بدلاً من التبديل إلى موقع ويب www.dolistore.com للعثور على وحدة خارجية ، يمكنك استخدام هذه الأداة المضمنة التي ستقوم بإجراء البحث في السوق الخارجية نيابةً عنك (قد يكون بطيئًا ، وتحتاج إلى الوصول إلى الإنترنت) ... +NewModule=وحدة جديدة +FreeModule=حر +CompatibleUpTo=متوافق مع الإصدار %s +NotCompatible=لا تبدو هذه الوحدة متوافقة مع Dolibarr %s (Min %s - Max %s). +CompatibleAfterUpdate=تتطلب هذه الوحدة تحديثًا لـ Dolibarr %s (Min %s - Max %s). +SeeInMarkerPlace=انظر في السوق SeeSetupOfModule=انظر إعداد وحدة٪ الصورة -SetOptionTo=Set option %s to %s -Updated=Updated -AchatTelechargement=Buy / Download -GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. +SetOptionTo=اضبط الخيار %s على %s +Updated=محدث +AchatTelechargement=شراء / تنزيل +GoModuleSetupArea=لنشر / تثبيت وحدة نمطية جديدة ، انتقل إلى منطقة إعداد الوحدة النمطية: %s . DoliStoreDesc=DoliStore ، في السوق الرسمي لتخطيط موارد المؤسسات وحدات Dolibarr / خارجي إدارة علاقات العملاء -DoliPartnersDesc=List of companies providing custom-developed modules or features.
    Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module. -WebSiteDesc=External websites for more add-on (non-core) modules... -DevelopYourModuleDesc=Some solutions to develop your own module... +DoliPartnersDesc=قائمة الشركات التي تقدم وحدات أو ميزات مطورة حسب الطلب.
    ملاحظة: نظرًا لأن Dolibarr هو تطبيق مفتوح المصدر ، فإن أي شخص لديه خبرة في برمجة PHP يجب أن يكون قادرًا على تطوير وحدة نمطية. +WebSiteDesc=مواقع الويب الخارجية لمزيد من الوحدات الإضافية (غير الأساسية) ... +DevelopYourModuleDesc=بعض الحلول لتطوير الوحدة الخاصة بك ... URL=العنوان -RelativeURL=Relative URL +RelativeURL=URL نسبي BoxesAvailable=بريمجات متاحة BoxesActivated=بريمجات مفعلة ActivateOn=على تفعيل ActiveOn=على تفعيلها -ActivatableOn=Activatable on +ActivatableOn=Activatable على SourceFile=ملف المصدر AvailableOnlyIfJavascriptAndAjaxNotDisabled=متاحا إلا إذا كان جافا سكريبت غير المعوقين Required=مطلوب UsedOnlyWithTypeOption=المستخدمة من قبل بعض خيار جدول فقط Security=الأمن Passwords=كلمة السر -DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option. -MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option. +DoNotStoreClearPassword=تشفير كلمات المرور المخزنة في قاعدة البيانات (وليس كنص عادي). يوصى بشدة بتنشيط هذا الخيار. +MainDbPasswordFileConfEncrypted=تشفير كلمة مرور قاعدة البيانات المخزنة في ملف conf.php. يوصى بشدة بتنشيط هذا الخيار. InstrucToEncodePass=لديك كلمة السر المشفرة في ملف conf.php، استبدال الخط
    $ dolibarr_main_db_pass = "..."؛
    بواسطة
    $ dolibarr_main_db_pass = "crypted:٪ ليالي". InstrucToClearPass=لديك كلمة مرور فك الشفرة (واضح) في ملف conf.php، استبدال الخط
    $ dolibarr_main_db_pass = "crypted: ...".
    بواسطة
    $ dolibarr_main_db_pass = "%s". ProtectAndEncryptPdfFiles=حماية صيغة المستندات المتنقلة . غير منصوح به لانه يوقف التوليد الكمي للملفات بصيغة المستندات المتنقلة @@ -256,75 +254,76 @@ ProtectAndEncryptPdfFilesDesc=حماية الملفات بصيغة المستن Feature=ميزة DolibarrLicense=الترخيص Developpers=مطوري / المساهمين -OfficialWebSite=Dolibarr official web site +OfficialWebSite=موقع الويب الرسمي Dolibarr OfficialWebSiteLocal=موقع على شبكة الإنترنت المحلي (٪ ق) -OfficialWiki=Dolibarr documentation / Wiki +OfficialWiki=وثائق Dolibarr / Wiki OfficialDemo=Dolibarr الانترنت التجريبي OfficialMarketPlace=المسؤول عن وحدات السوق الخارجية / أدونس OfficialWebHostingService=المشار خدمات استضافة المواقع (سحابة استضافة) ReferencedPreferredPartners=الشركاء المفضلين -OtherResources=Other resources -ExternalResources=External Resources -SocialNetworks=Social Networks -SocialNetworkId=Social Network ID -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
    take a look at the Dolibarr Wiki:
    %s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
    %s -HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. -HelpCenterDesc2=Some of these resources are only available in english. +OtherResources=مصادر أخرى +ExternalResources=موارد خارجية +SocialNetworks=الشبكات الاجتماعية +SocialNetworkId=معرف الشبكة الاجتماعية +ForDocumentationSeeWiki=لوثائق المستخدم أو المطور (Doc ، FAQs ...) ،
    ألق نظرة على Dolibarr Wiki:
    %s 39 +ForAnswersSeeForum=لأية أسئلة / مساعدة أخرى ، يمكنك استخدام منتدى Dolibarr:
    %s +HelpCenterDesc1=فيما يلي بعض الموارد للحصول على المساعدة والدعم مع Dolibarr. +HelpCenterDesc2=بعض هذه الموارد متاحة فقط في english . CurrentMenuHandler=الحالية القائمة معالج MeasuringUnit=وحدة قياس -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +LeftMargin=الهامش الأيسر +TopMargin=الهامش العلوي +PaperSize=نوع الورق +Orientation=توجيه +SpaceX=الفضاء X +SpaceY=الفضاء Y +FontSize=حجم الخط +Content=محتوى +ContentForLines=المحتوى المراد عرضه لكل منتج أو خدمة (من متغير __LINES__ من المحتوى) NoticePeriod=فترة إشعار -NewByMonth=New by month +NewByMonth=جديد حسب الشهر Emails=رسائل البريد الإلكترونية EMailsSetup=إعدادات رسائل البريد الإلكترونية -EMailsDesc=This page allows you to set parameters or options for email sending. +EMailsDesc=تسمح لك هذه الصفحة بتعيين معلمات أو خيارات لإرسال البريد الإلكتروني. EmailSenderProfiles=ملفات تعريف مرسلي رسائل البريد الإلكترونية EMailsSenderProfileDesc=يمكنك ان تبقي هذا القسم فارغاً. اذا ادخلت عناوين بريد إلكتروني هنا سيتم اضافتهم الى قائمة المرسلين المحتملين كخيار عندما تنشئ رسائل بريد إلكترونية جديدة -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) +MAIN_MAIL_SMTP_PORT=منفذ SMTP / SMTPS (القيمة الافتراضية في php.ini: %s ) +MAIN_MAIL_SMTP_SERVER=مضيف SMTP / SMTPS (القيمة الافتراضية في php.ini: %s ) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=منفذ SMTP / SMTPS (غير معرّف في PHP على أنظمة شبيهة بنظام Unix) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=مضيف SMTP / SMTPS (غير معرّف في PHP على أنظمة شبيهة بنظام Unix) MAIN_MAIL_EMAIL_FROM=عنوان بريد المرسل لرسائل البريد الإلكترونية التلقائية (القيمة الاولية في ملف اعدادات لغة بي اتش بي %s ) +EMailHelpMsgSPFDKIM=لكي لا يتم وضع البريد من المرسل من نظام دوليبار ضمن البريد الضار ,تأكد ان الخادم مخول بأرسال البريد من هذا العنوان من خلال عدادات SPF & DKIM . MAIN_MAIL_ERRORS_TO=عنوان رسائل البريد الإلكترونية المرجعي لأخطاء الارسال (الحقل "الاخطاء إلى" ) في البريد المرسل MAIN_MAIL_AUTOCOPY_TO= نسخ (نسخة كربونية) كل رسائل البريد الإلكترونية المرسلة الى -MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) +MAIN_DISABLE_ALL_MAILS=تعطيل جميع عمليات إرسال البريد الإلكتروني (لأغراض الاختبار أو العروض التوضيحية) MAIN_MAIL_FORCE_SENDTO=إرسال جميع رسائل البريد الإلكترونية الى (بدلا عن المستلم الحقيقي لاغراض التطوير والتجربة) MAIN_MAIL_ENABLED_USER_DEST_SELECT=اقتراح عناوين بريد الموظفين الإلكتروني (إذا كان موجودا) في حقل المستلمين عند ارنشاء رسالة بريد جديدة -MAIN_MAIL_SENDMODE=Email sending method -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) -MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption -MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption -MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés -MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature -MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim -MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector -MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing +MAIN_MAIL_SENDMODE=طريقة إرسال البريد الإلكتروني +MAIN_MAIL_SMTPS_ID=معرف SMTP (إذا كان خادم الإرسال يتطلب مصادقة) +MAIN_MAIL_SMTPS_PW=كلمة مرور SMTP (إذا كان خادم الإرسال يتطلب مصادقة) +MAIN_MAIL_EMAIL_TLS=استخدم تشفير TLS (SSL) +MAIN_MAIL_EMAIL_STARTTLS=استخدم تشفير TLS (STARTTLS) +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=تفويض التوقيع التلقائي للشهادات +MAIN_MAIL_EMAIL_DKIM_ENABLED=استخدم DKIM لإنشاء توقيع البريد الإلكتروني +MAIN_MAIL_EMAIL_DKIM_DOMAIN=مجال البريد الإلكتروني للاستخدام مع dkim +MAIN_MAIL_EMAIL_DKIM_SELECTOR=اسم محدد dkim +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=المفتاح الخاص لتوقيع dkim MAIN_DISABLE_ALL_SMS=تعطيل كافة الرسائل النصية القصيرة (لأغراض التجربة و التطوير) MAIN_SMS_SENDMODE=طريقة إرسال الرسائل النصية القصيرة MAIN_MAIL_SMS_FROM=رقم هاتف المرسل الاولي لارسال الرسائل النصية القصيرة -MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) -UserEmail=User email -CompanyEmail=Company Email +MAIN_MAIL_DEFAULT_FROMTYPE=البريد الإلكتروني المرسل الافتراضي للإرسال اليدوي (البريد الإلكتروني للمستخدم أو البريد الإلكتروني للشركة) +UserEmail=البريد الالكتروني للمستخدم +CompanyEmail=البريد الإلكتروني للشركة FeatureNotAvailableOnLinux=ميزة لا تتوفر على مثل أنظمة يونكس. sendmail برنامج الاختبار الخاص بك محليا. -FixOnTransifex=Fix the translation on the online translation platform of project -SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr +FixOnTransifex=إصلاح الترجمة على منصة الترجمة عبر الإنترنت للمشروع +SubmitTranslation=إذا لم تكتمل الترجمة لهذه اللغة أو وجدت أخطاءً ، فيمكنك تصحيح ذلك عن طريق تحرير الملفات في الدليل langs / %s وإرسال التغيير إلى www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=إذا لم تكتمل الترجمة لهذه اللغة أو وجدت أخطاء ، فيمكنك تصحيح ذلك عن طريق تحرير الملفات في الدليل langs / %s وإرسال الملفات المعدلة على dolibarr.org/forum أو ، إذا كنت مطورًا ، باستخدام العلاقات العامة على github .com / Dolibarr / dolibarr ModuleSetup=إعداد وحدة -ModulesSetup=Modules/Application setup +ModulesSetup=الوحدات النمطية / إعداد التطبيق ModuleFamilyBase=نظام -ModuleFamilyCrm=Customer Relationship Management (CRM) -ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) +ModuleFamilyCrm=إدارة علاقات العملاء (CRM) +ModuleFamilySrm=ادارة الموردين(VRM) +ModuleFamilyProducts=إدارة المنتج (PM) ModuleFamilyHr=إدارة الموارد البشرية (HR) ModuleFamilyProjects=مشاريع / العمل التعاوني ModuleFamilyOther=أخرى @@ -332,40 +331,40 @@ ModuleFamilyTechnic=أدوات وحدات متعددة ModuleFamilyExperimental=نماذج تجريبية ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة) ModuleFamilyECM=إدارة المحتوى في المؤسسة -ModuleFamilyPortal=Websites and other frontal application +ModuleFamilyPortal=مواقع الويب والتطبيقات الأمامية الأخرى ModuleFamilyInterface=واجهات مع الأنظمة الخارجية MenuHandlers=قائمة مناولي MenuAdmin=قائمة تحرير DoNotUseInProduction=لا تستخدمها مع المنتج -ThisIsProcessToFollow=Upgrade procedure: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=إجراء الترقية: +ThisIsAlternativeProcessToFollow=هذا إعداد بديل للمعالجة يدويًا: StepNb=الخطوة %s -FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s). -DownloadPackageFromWebSite=Download package (for example from the official web site %s). -UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
    -InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    -InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=You can upload the .zip file of module package from here: +FindPackageFromWebSite=ابحث عن حزمة توفر الميزات التي تحتاجها (على سبيل المثال على موقع الويب الرسمي %s). +DownloadPackageFromWebSite=قم بتنزيل الحزمة (على سبيل المثال من موقع الويب الرسمي %s). +UnpackPackageInDolibarrRoot=فك ضغط / فك ضغط الملفات المحزمة في دليل خادم Dolibarr الخاص بك: %s +UnpackPackageInModulesRoot=لنشر / تثبيت وحدة خارجية ، يجب فك ضغط / فك ضغط ملف الأرشيف في دليل الخادم المخصص للوحدات الخارجية:
    %s +SetupIsReadyForUse=تم الانتهاء من نشر الوحدة. ومع ذلك ، يجب عليك تمكين الوحدة وإعدادها في التطبيق الخاص بك من خلال الانتقال إلى وحدات إعداد الصفحة: %s . +NotExistsDirect=لم يتم تعريف الدليل الجذر البديل لدليل موجود.
    +InfDirAlt=منذ الإصدار 3 ، من الممكن تحديد دليل جذر بديل. يتيح لك ذلك تخزين المكونات الإضافية والقوالب المخصصة في دليل مخصص.
    فقط قم بإنشاء دليل في جذر Dolibarr (على سبيل المثال: custom).
    +InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them ، فقط قم بإلغاء التعليق عن طريق إزالة الحرف "#". +YouCanSubmitFile=يمكنك تحميل ملف .zip الخاص بحزمة الوحدة من هنا: CurrentVersion=Dolibarr النسخة الحالية -CallUpdatePage=Browse to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP -LastActivationVersion=Latest activation version +CallUpdatePage=استعرض للوصول إلى الصفحة التي تقوم بتحديث بنية قاعدة البيانات والبيانات: %s. +LastStableVersion=أحدث نسخة مستقرة +LastActivationDate=آخر تاريخ تفعيل +LastActivationAuthor=أحدث مؤلف التنشيط +LastActivationIP=أحدث IP تفعيل +LastActivationVersion=أحدث نسخة تفعيل UpdateServerOffline=خادم التحديث متواجد حاليا -WithCounter=Manage a counter -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags can be used:
    {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
    {000000+000} same as the previous one but an offset corresponding to the number to the right of the + sign is applied starting on the first %s.
    {000000@x} same as the previous one but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then the sequence {yy}{mm} or {yyyy}{mm} is also required.
    {dd} day (01 to 31).
    {mm} month (01 to 12).
    {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
    -GenericMaskCodes2={cccc} the client code on n characters
    {cccc000} the client code on n characters is followed by a counter dedicated to the customer. This counter dedicated to customer is reset at same time as the global counter.
    {tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
    +WithCounter=إدارة العداد +GenericMaskCodes=يمكنك إدخال أي قناع ترقيم. في هذا القناع ، يمكن استخدام العلامات التالية:
    {000000} يتوافق مع رقم سيتم زيادته في كل %s. أدخل أكبر عدد من الأصفار مثل الطول المطلوب للعداد. سيتم إكمال العداد بالأصفار من اليسار للحصول على أكبر عدد من الأصفار مثل القناع.
    {000000 + 000} مثل الرقم السابق ولكن يتم تطبيق الإزاحة المقابلة للرقم الموجود على يمين علامة + بدءًا من أول %s.
    {000000 @ x} مثل السابق ولكن تتم إعادة تعيين العداد إلى الصفر عند الوصول إلى الشهر x (x بين 1 و 12 ، أو 0 لاستخدام الأشهر الأولى من السنة المالية المحددة في التكوين الخاص بك ، أو 99 إلى إعادة تعيين إلى الصفر كل شهر). إذا تم استخدام هذا الخيار وكانت قيمة x 2 أو أعلى ، فسيكون التسلسل {yy} {mm} أو {yyyy} {mm} مطلوبًا أيضًا.
    {dd} يوم (من 01 إلى 31).
    {mm} شهر (من 01 إلى 12).
    {yy} ، {yyyy} أو {y7 a039.
    +GenericMaskCodes2= {cccc} رمز العميل على أحرف n
    {cccc000} a09a4b739 هو الرمز المخصص للعميل a09a4b739 متبوعًا برمز العميل a09a4b739. يتم إعادة تعيين هذا العداد المخصص للعميل في نفس الوقت مع العداد العالمي.
    {tttt} رمز نوع الطرف الثالث على أحرف n (انظر القائمة الصفحة الرئيسية - الإعداد - القاموس - أنواع الأطراف الثالثة). إذا أضفت هذه العلامة ، فسيكون العداد مختلفًا لكل نوع من أنواع الجهات الخارجية.
    GenericMaskCodes3=جميع الشخصيات الاخرى في قناع سوف تظل سليمة.
    المساحات غير مسموح بها.
    -GenericMaskCodes3EAN=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13, the last character after the last } in 13th position should be * or ? . It will be replaced by the calculated key.
    -GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    +GenericMaskCodes3EAN=ستبقى جميع الأحرف الأخرى في القناع سليمة (باستثناء * أو؟ في المركز الثالث عشر في EAN13).
    غير مسموح بالمسافات.
    في EAN13 ، يجب أن يكون الحرف الأخير بعد الأخير} في الموضع الثالث عشر * أو؟ . سيتم استبداله بالمفتاح المحسوب.
    +GenericMaskCodes4a= مثال على رقم 99 %s للطرف الثالث TheCompany ، بتاريخ 2007-01-31:
    GenericMaskCodes4b=ومثال على طرف ثالث على إنشاء 2007-03-01 :
    GenericMaskCodes4c=Example on product created on 2007-03-01:
    -GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' +GenericMaskCodes5= ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    في {yy} {mm} - {0000} - {t} ستعطي IN0701-0099-A إذا كان نوع الشركة هو "Responsable Inscripto" A0 GenericNumRefModelDesc=العودة للتخصيص وفقا لعدد محدد القناع. ServerAvailableOnIPOrPort=الخدمة متاحة في معالجة ٪ ق %s على الميناء ServerNotAvailableOnIPOrPort=الخدمة غير متاحة في التصدي ٪ ق %s على الميناء @@ -376,29 +375,29 @@ ErrorCantUseRazIfNoYearInMask=خطأ، لا يمكن استخدام الخيار ErrorCantUseRazInStartedYearIfNoYearMonthInMask=خطأ ، لا يمكن للمستخدم الخيار في حال تسلسل @ (ذ ذ م م)) ((سنة أو ملم)) (لا تخفي. UMask=معلمة جديدة UMask صورة يونيكس / لينكس / بي إس دي نظام الملفات. UMaskExplanation=تسمح لك هذه المعلمة لتحديد الاذونات التي حددها تقصير من الملفات التي أنشأتها Dolibarr على الخادم (خلال تحميلها على سبيل المثال).
    يجب أن يكون ثمانية القيمة (على سبيل المثال ، 0666 وسائل القراءة والكتابة للجميع).
    م شمال شرق paramètre سرت sous الامم المتحدة لتقييم الأداء ويندوز serveur. -SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization +SeeWikiForAllTeam=قم بإلقاء نظرة على صفحة Wiki للحصول على قائمة بالمساهمين ومنظمتهم UseACacheDelay= التخزين المؤقت للتأخير في الرد على الصادرات ثانية (0 فارغة أو لا مخبأ) -DisableLinkToHelpCenter=Hide the link "Need help or support" on the login page -DisableLinkToHelp=Hide the link to the online help "%s" -AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed. -ConfirmPurge=Are you sure you want to execute this purge?
    This will permanently delete all your data files with no way to restore them (ECM files, attached files...). +DisableLinkToHelpCenter=إخفاء الارتباط " بحاجة إلى مساعدة أو دعم " في صفحة تسجيل الدخول +DisableLinkToHelp=إخفاء الارتباط الخاص بالمساعدة عبر الإنترنت " %s " +AddCRIfTooLong=لا يوجد التفاف تلقائي للنص ، ولن يتم عرض النص الطويل جدًا في المستندات. الرجاء إضافة أحرف إرجاع في منطقة النص إذا لزم الأمر. +ConfirmPurge=هل أنت متأكد أنك تريد تنفيذ هذا التطهير؟
    سيؤدي هذا إلى حذف جميع ملفات البيانات بشكل دائم دون أي وسيلة لاستعادتها (ملفات ECM ، الملفات المرفقة ...). MinLength=الحد الأدني لمدة LanguageFilesCachedIntoShmopSharedMemory=لانغ لتحميل الملفات. في الذاكرة المشتركة -LanguageFile=Language file -ExamplesWithCurrentSetup=Examples with current configuration +LanguageFile=ملف اللغة +ExamplesWithCurrentSetup=أمثلة مع التكوين الحالي ListOfDirectories=قائمة الدلائل المفتوحة قوالب ListOfDirectoriesForModelGenODT=قائمة الدلائل التي تحتوي على قوالب ملفات مع شكل المفتوحة.

    ضع هنا المسار الكامل من الدلائل.
    إضافة إرجاع بين الدليل ايه.
    لإضافة دليل وحدة GED، أضيف هنا DOL_DATA_ROOT / ECM / yourdirectoryname.

    الملفات في هذه الدلائل يجب أن ينتهي .odt أو .ods. -NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +NumberOfModelFilesFound=عدد ملفات قوالب ODT / ODS الموجودة في هذه الدلائل +ExampleOfDirectoriesForModelGen=أمثلة على بناء الجملة:
    c: \\ myapp \\ mydocumentdir \\ mysubdir
    / home / myapp / mydocumentdir / mysubdir
    DOL_DATA_ROOT / ecm / ecmdir FollowingSubstitutionKeysCanBeUsed=
    لمعرفة كيفية إنشاء قوالب المستند ODT، قبل تخزينها في تلك الدلائل، وقراءة وثائق ويكي: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=موقف الإسم / اسم DescWeather=الصور التالية سيتم عرضها على لوحة المعلومات عندما يصل عدد الاجرائات المتأخرة للقيم التالية: KeyForWebServicesAccess=مفتاح لاستخدام خدمات الشبكة العالمية (المعلمة "dolibarrkey" في webservices) TestSubmitForm=اختبار شكل مساهمة -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours. +ThisForceAlsoTheme=سيؤدي استخدام مدير القائمة هذا أيضًا إلى استخدام السمة الخاصة به مهما كان اختيار المستخدم. كما أن مدير القائمة المخصص للهواتف الذكية لا يعمل على جميع الهواتف الذكية. استخدم مدير قائمة آخر إذا واجهت مشاكل مع مديرك. ThemeDir=جلود دليل -ConnectionTimeout=Connection timeout +ConnectionTimeout=انتهى وقت محاولة الاتصال ResponseTimeout=استجابة مهلة SmsTestMessage=رسالة اختبار من __PHONEFROM__ إلى __PHONETO__ ModuleMustBeEnabledFirst=يجب تمكين وحدة%s أولا إذا كنت تحتاج هذه الميزة. @@ -406,301 +405,305 @@ SecurityToken=المفتاح لعناوين المواقع الآمنة NoSmsEngine=لايوجد مدير إرسال الرسائل النصية القصيرة . مدير إرسال الرسائل النصية القصيرة غير مثبت بصورة اولية لانه يعتمد على مورد خارجي ، لكن يمكنك ايجاد واحد هنا %s PDF=صيغة المستندات المتنقلة PDFDesc=الخيارات العامة لتوليد ملفات صيغة المستندات المتنقلة -PDFOtherDesc=PDF Option specific to some modules -PDFAddressForging=Rules for address section -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT -PDFRulesForSalesTax=Rules for Sales Tax / VAT -PDFLocaltax=Rules for %s -HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT -HideDescOnPDF=Hide products description -HideRefOnPDF=Hide products ref. -HideDetailsOnPDF=Hide product lines details -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position +PDFOtherDesc=خيار PDF خاص ببعض الوحدات +PDFAddressForging=قواعد قسم العنوان +HideAnyVATInformationOnPDF=إخفاء جميع المعلومات المتعلقة بضريبة المبيعات / ضريبة القيمة المضافة +PDFRulesForSalesTax=قواعد ضريبة المبيعات / ضريبة القيمة المضافة +PDFLocaltax=قواعد %s +HideLocalTaxOnPDF=إخفاء معدل %s في العمود ضريبة البيع / ضريبة القيمة المضافة +HideDescOnPDF=إخفاء وصف المنتجات +HideRefOnPDF=إخفاء المنتجات المرجع. +HideDetailsOnPDF=إخفاء تفاصيل خطوط الإنتاج +PlaceCustomerAddressToIsoLocation=استخدم الوضع القياسي الفرنسي (La Poste) لموقف عنوان العميل Library=المكتبة UrlGenerationParameters=المعلمات لتأمين عناوين المواقع SecurityTokenIsUnique=استخدام معلمة securekey فريدة لكل URL EnterRefToBuildUrl=أدخل مرجع لكائن %s GetSecuredUrl=الحصول على عنوان محسوب -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=إخفاء أزرار الإجراءات غير المصرح بها أيضًا للمستخدمين الداخليين (فقط باللون الرمادي بخلاف ذلك) OldVATRates=معدل ضريبة القيمة المضافة القديم NewVATRates=معدل ضريبة القيمة المضافة الجديد PriceBaseTypeToChange=تعديل على الأسعار مع القيمة المرجعية قاعدة المعرفة على -MassConvert=Launch bulk conversion -PriceFormatInCurrentLanguage=Price Format In Current Language +MassConvert=إطلاق التحويل بالجملة +PriceFormatInCurrentLanguage=تنسيق السعر في اللغة الحالية String=سلسلة -String1Line=String (1 line) +String1Line=سلسلة (سطر واحد) TextLong=نص طويل -TextLongNLines=Long text (n lines) -HtmlText=Html text +TextLongNLines=نص طويل (سطور) +HtmlText=نص Html Int=عدد صحيح Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (one checkbox) +Boolean=منطقي (مربع اختيار واحد) ExtrafieldPhone = هاتف ExtrafieldPrice = الأسعار +ExtrafieldPriceWithCurrency=السعر بالعملة ExtrafieldMail = Email -ExtrafieldUrl = Url +ExtrafieldUrl = عنوان Url +ExtrafieldIP = الملكية الفكرية ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=فاصل (ليس حقلاً) ExtrafieldPassword=الرمز السري -ExtrafieldRadio=Radio buttons (one choice only) -ExtrafieldCheckBox=Checkboxes -ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldRadio=أزرار اختيار (خيار واحد فقط) +ExtrafieldCheckBox=مربعات الاختيار +ExtrafieldCheckBoxFromList=مربعات الاختيار من الجدول ExtrafieldLink=رابط إلى كائن -ComputedFormula=Computed field -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
    Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

    Example of formula:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Example to reload object
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Other example of formula to force load of object and its parent object:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' -Computedpersistent=Store computed field -ComputedpersistentDesc=Computed extra fields will be stored in the database, however, the value will only be recalculated when the object of this field is changed. If the computed field depends on other objects or global data this value might be wrong!! -ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).
    Set 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value) -ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    In order to have the list depending on another list:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    - id_field is necessarly a primary int key
    - filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter witch is the current id of current object
    To do a SELECT in filter use $SEL$
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath -ExtrafieldParamHelpSeparator=Keep empty for a simple separator
    Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)
    Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session) +ComputedFormula=المجال المحسوب +ComputedFormulaDesc=يمكنك هنا إدخال صيغة باستخدام خصائص أخرى للكائن أو أي ترميز PHP للحصول على قيمة محسوبة ديناميكية. يمكنك استخدام أي صيغ متوافقة مع PHP بما في ذلك "؟" عامل الشرط ، والعنصر العام التالي: $ db ، $ conf ، $ langs ، $ mysoc ، $ user ، $ object .
    تحذير : قد تتوفر بعض خصائص $ object فقط. إذا كنت بحاجة إلى خصائص غير محملة ، فما عليك سوى إحضار الكائن إلى الصيغة الخاصة بك كما في المثال الثاني.
    يعني استخدام حقل محسوب أنه لا يمكنك إدخال أي قيمة لنفسك من الواجهة. أيضًا ، إذا كان هناك خطأ في بناء الجملة ، فقد لا ترجع الصيغة شيئًا.

    مثال على الصيغة:
    $ object-> id < 10 ? round($object-> id / 2، 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc- 2> zip، 1 )

    مثال لإعادة تحميل الكائن
    (($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetchNoCompute ($ obj-> id؟ $ obj-> id؟ > rowid: $ object-> id))> 0))؟ $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

    مثال آخر للصيغة لفرض تحميل الكائن وكائنه الأصلي:
    (($ reloadedobj = $ dbj = )) && ($ reloadedobj-> fetchNoCompute ($ object-> id)> 0) && ($ secondloadedobj = مشروع جديد ($ db)) && ($ secondloadedobj-> fetchNoCompute ($ reloadedobj-> fk_project)> 0))؟ $ secondloadedobj-> ref: "المشروع الرئيسي غير موجود" +Computedpersistent=تخزين المجال المحسوب +ComputedpersistentDesc=سيتم تخزين الحقول الإضافية المحسوبة في قاعدة البيانات ، ومع ذلك ، سيتم إعادة حساب القيمة فقط عند تغيير كائن هذا الحقل. إذا كان الحقل المحسوب يعتمد على كائنات أخرى أو بيانات عالمية ، فقد تكون هذه القيمة خاطئة !! +ExtrafieldParamHelpPassword=يعني ترك هذا الحقل فارغًا أنه سيتم تخزين هذه القيمة بدون تشفير (يجب إخفاء الحقل فقط بنجمة على الشاشة).
    اضبط "تلقائي" لاستخدام قاعدة التشفير الافتراضية لحفظ كلمة المرور في قاعدة البيانات (عندئذٍ ستكون القيمة المقروءة هي التجزئة فقط ، ولا توجد طريقة لاسترداد القيمة الأصلية) +ExtrafieldParamHelpselect=يجب أن تكون قائمة القيم أسطرًا بها مفتاح تنسيق ، القيمة (حيث لا يمكن أن يكون المفتاح "0")

    على سبيل المثال:
    1 ، value1
    2 ، value2 a0342fccfda19bda019b code3f list depending on another complementary attribute list:
    1,value1|options_ parent_list_code :parent_key
    2,value2|options_ parent_list_code :parent_key

    In order to have the list depending on another list:
    1,value1| parent_list_code : parent_key
    2 ، value2 | parent_list_code : parent_key +ExtrafieldParamHelpcheckbox=يجب أن تكون قائمة القيم أسطرًا تحتوي على مفتاح تنسيق ، القيمة (حيث لا يمكن أن يكون المفتاح "0")

    على سبيل المثال:
    1 ، value1
    2 ، value2 a0342fccfda19bda19b342 ... +ExtrafieldParamHelpradio=يجب أن تكون قائمة القيم أسطرًا تحتوي على مفتاح تنسيق ، القيمة (حيث لا يمكن أن يكون المفتاح '0')

    على سبيل المثال:
    1 ، value1
    2 ، value2 a0342fccfda19bda19b342 ... +ExtrafieldParamHelpsellist=قائمة القيم تأتي من جدول
    التركيب: table_name: label_field: id_field :: Filtersql
    مثال: c_typent: libelle: id :: Filtersql

    -
    19 يمكن أن يكون اختبارًا بسيطًا (على سبيل المثال active = 1) لعرض القيمة النشطة فقط
    يمكنك أيضًا استخدام مرشح $ ID $ in وهو المعرف الحالي للكائن الحالي
    لاستخدام SELECT في الفلتر ، استخدم الكلمة الأساسية $ SEL $ to تجاوز الحماية المضادة للحقن.
    إذا كنت تريد التصفية على الحقول الإضافية ، استخدم بناء الجملة extra.fieldcode = ... (حيث يكون رمز الحقل هو رمز الحقل الإضافي)

    من أجل الحصول على القائمة اعتمادًا على قائمة السمات التكميلية الأخرى: parent_list_code | parent_column: filter

    من أجل الحصول على القائمة اعتمادًا على قائمة أخرى: a0342fccfda1958bz0 c_typent: libelle: a08 +ExtrafieldParamHelpchkbxlst=قائمة القيم تأتي من جدول
    التركيب: table_name: label_field: id_field :: Filtersql
    مثال: c_typent: libelle: id :: Filtersql

    filter يمكن أن يكون عامل التصفية النشط a034b
    فقط يمكن أيضًا استخدام $ ID $ in filter witch هو المعرف الحالي للكائن الحالي
    للقيام بتحديد في عامل التصفية ، استخدم $ SEL $
    إذا كنت تريد التصفية على الحقول الإضافية ، استخدم بناء الجملة extra.fieldcode = ... (حيث يكون رمز الحقل هو code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_ parent_list_code |parent_column:filter

    In order to have the list depending on another list:
    c_typent: libelle: id: parent_list_code | parent_column: مرشح +ExtrafieldParamHelplink=يجب أن تكون المعلمات ObjectName: Classpath
    البنية: اسم الكائن: Classpath +ExtrafieldParamHelpSeparator=احتفظ به فارغًا لفاصل بسيط
    اضبط هذا على 1 لفاصل مطوي (يفتح افتراضيًا للجلسة الجديدة ، ثم يتم الاحتفاظ بالحالة لكل جلسة مستخدم)
    اضبط هذا على 2 لفاصل مطوي (مطوي افتراضيًا لجلسة جديدة ، ثم يتم الاحتفاظ بالحالة قبل كل جلسة مستخدم) LibraryToBuildPDF=المكتبة المستخدمة لتوليد ملفات صيغة المستندات المتنقلة -LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:
    1: local tax apply on products and services without vat (localtax is calculated on amount without tax)
    2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)
    3: local tax apply on products without vat (localtax is calculated on amount without tax)
    4: local tax apply on products including vat (localtax is calculated on amount + main vat)
    5: local tax apply on services without vat (localtax is calculated on amount without tax)
    6: local tax apply on services including vat (localtax is calculated on amount + tax) +LocalTaxDesc=قد تفرض بعض البلدان ضريبتين أو ثلاث ضرائب على كل سطر فاتورة. إذا كانت هذه هي الحالة ، فاختر نوع الضريبة الثانية والثالثة ومعدلها. النوع المحتمل هو:
    1: يتم تطبيق الضريبة المحلية على المنتجات والخدمات بدون ضريبة القيمة المضافة (يتم احتساب الضريبة المحلية على المبلغ بدون ضريبة)
    2: تطبق الضريبة المحلية على المنتجات والخدمات بما في ذلك ضريبة القيمة المضافة (يتم احتساب الضريبة المحلية على المبلغ + الضريبة الرئيسية)
    3: يتم تطبيق الضريبة المحلية على المنتجات بدون ضريبة القيمة المضافة (يتم احتساب الضريبة المحلية على المبلغ بدون ضريبة)
    4: يتم تطبيق الضريبة المحلية على المنتجات بما في ذلك ضريبة القيمة المضافة (يتم احتساب الضريبة المحلية على المبلغ + ضريبة القيمة المضافة الرئيسية)
    5: يتم تطبيق الضريبة المحلية على الخدمات بدون ضريبة القيمة المضافة (يتم احتساب الضريبة المحلية على المبلغ بدون ضريبة)
    6: يتم تطبيق الضريبة المحلية على الخدمات بما في ذلك ضريبة القيمة المضافة (يتم احتساب الضريبة المحلية على المبلغ + الضريبة) SMS=الرسائل النصية القصيرة LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s RefreshPhoneLink=Refresh link LinkToTest=Clickable link generated for user %s (click phone number to test) KeepEmptyToUseDefault=Keep empty to use default value -KeepThisEmptyInMostCases=In most cases, you can keep this field empy. +KeepThisEmptyInMostCases=في معظم الحالات ، يمكنك الاحتفاظ بهذا المجال. DefaultLink=Default link -SetAsDefault=Set as default +SetAsDefault=تعيين كافتراضي ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module -InstalledInto=Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for third-parties +ExternalModule=الوحدة الخارجية +InstalledInto=مثبت في الدليل %s +BarcodeInitForThirdparties=تهيئة الباركود الجماعي للأطراف الثالثة BarcodeInitForProductsOrServices=الحرف الأول الباركود الشامل أو إعادة للمنتجات أو الخدمات -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=قيمة الحرف الأول للسجلات فارغة الصورة٪ المقبلة +CurrentlyNWithoutBarCode=حاليًا ، لديك سجل %s على %s %s بدون barcodef49fz0 +InitEmptyBarCode=القيمة الأولية للرموز الشريطية الفارغة %s EraseAllCurrentBarCode=محو كل القيم الباركود الحالية -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=هل أنت متأكد أنك تريد مسح كافة قيم الباركود الحالية؟ AllBarcodeReset=وقد أزيلت كل القيم الباركود -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer, such as company address or manager names (in addition to professional ids, company capital and VAT number). -NoDetails=No additional details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible. -ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code -ModuleCompanyCodeSupplierAquarium=%s followed by vendor code for a vendor accounting code -ModuleCompanyCodePanicum=Return an empty accounting code. -ModuleCompanyCodeDigitaria=Returns a compound accounting code according to the name of the third party. The code consists of a prefix that can be defined in the first position followed by the number of characters defined in the third party code. -ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by the number of characters: %s for the customer accounting code. -ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
    Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons: -WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM -WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). -WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. -WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. -WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s -ClickToShowDescription=Click to show description -DependsOn=This module needs the module(s) -RequiredBy=This module is required by module(s) -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field. -PageUrlForDefaultValues=You must enter the relative path of the page URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value. -PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third party, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/", so use path like mymodule/mypage.php and not custom/mymodule/mypage.php.
    If you want default value only if url has some parameter, you can use %s -PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s -AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) -EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Enable usage of overwritten translation -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +NoBarcodeNumberingTemplateDefined=لم يتم تمكين قالب الباركود للترقيم في إعداد وحدة الباركود. +EnableFileCache=تفعيل ذاكرة التخزين المؤقت للملف +ShowDetailsInPDFPageFoot=أضف المزيد من التفاصيل في التذييل ، مثل عنوان الشركة أو أسماء المديرين (بالإضافة إلى المعرفات المهنية ورأس مال الشركة ورقم ضريبة القيمة المضافة). +NoDetails=لا توجد تفاصيل إضافية في التذييل +DisplayCompanyInfo=عرض عنوان الشركة +DisplayCompanyManagers=عرض أسماء المديرين +DisplayCompanyInfoAndManagers=عرض عنوان الشركة وأسماء المديرين +EnableAndSetupModuleCron=إذا كنت تريد إنشاء هذه الفاتورة المتكررة تلقائيًا ، فيجب تمكين الوحدة النمطية * %s * وإعدادها بشكل صحيح. بخلاف ذلك ، يجب أن يتم إنشاء الفواتير يدويًا من هذا النموذج باستخدام الزر * إنشاء *. لاحظ أنه حتى إذا قمت بتمكين الإنشاء التلقائي ، فلا يزال بإمكانك تشغيل الإنشاء اليدوي بأمان. لا يمكن إنشاء نسخ مكررة لنفس الفترة. +ModuleCompanyCodeCustomerAquarium=%s متبوعًا بكود العميل لكود محاسبة العميل +ModuleCompanyCodeSupplierAquarium=%sرقم المورد يتبعة رقم حسابه في الحسابات +ModuleCompanyCodePanicum=قم بإرجاع رمز محاسبة فارغ. +ModuleCompanyCodeDigitaria=إرجاع رمز محاسبة مركب وفقًا لاسم الطرف الثالث. يتكون الرمز من بادئة يمكن تحديدها في الموضع الأول متبوعًا بعدد الأحرف المحددة في رمز الجهة الخارجية. +ModuleCompanyCodeCustomerDigitaria=%s متبوعًا باسم العميل المقطوع بعدد الأحرف: %s لكود محاسبة العميل. +ModuleCompanyCodeSupplierDigitaria=%s متبوعًا باسم المورد المقطوع بعدد الأحرف: %s لكود محاسبة المورد. +Use3StepsApproval=بشكل افتراضي ، يجب إنشاء أوامر الشراء والموافقة عليها من قبل مستخدمين مختلفين (خطوة واحدة / مستخدم للإنشاء وخطوة واحدة / مستخدم للموافقة. لاحظ أنه إذا كان لدى المستخدم إذن للإنشاء والموافقة ، فستكون خطوة واحدة / مستخدم كافية) . يمكنك أن تطلب من خلال هذا الخيار تقديم خطوة ثالثة / موافقة مستخدم ، إذا كان المبلغ أعلى من قيمة مخصصة (لذلك ستكون 3 خطوات ضرورية: 1 = التحقق من الصحة ، 2 = الموافقة الأولى و 3 = الموافقة الثانية إذا كان المبلغ كافياً).
    اضبط هذا على فارغ إذا كانت موافقة واحدة (خطوتان) كافية ، اضبطه على قيمة منخفضة جدًا (0.1) إذا كانت الموافقة الثانية (3 خطوات) مطلوبة دائمًا. +UseDoubleApproval=استخدم موافقة من 3 خطوات عندما يكون المبلغ (بدون ضريبة) أعلى من ... +WarningPHPMail=تحذير: يستخدم الإعداد لإرسال رسائل البريد الإلكتروني من التطبيق الإعداد العام الافتراضي. غالبًا ما يكون من الأفضل إعداد رسائل البريد الإلكتروني الصادرة لاستخدام خادم البريد الإلكتروني لموفر خدمة البريد الإلكتروني بدلاً من الإعداد الافتراضي لعدة أسباب: +WarningPHPMailA=- يزيد استخدام خادم مزود خدمة البريد الإلكتروني من مصداقية بريدك الإلكتروني ، لذا فهو يزيد من إمكانية التسليم دون أن يتم وضع علامة عليه كرسائل اقتحامية +WarningPHPMailB=- لا يسمح لك بعض مزودي خدمة البريد الإلكتروني (مثل Yahoo) بإرسال بريد إلكتروني من خادم آخر غير الخادم الخاص بهم. يستخدم الإعداد الحالي الخاص بك خادم التطبيق لإرسال بريد إلكتروني وليس خادم مزود البريد الإلكتروني الخاص بك ، لذلك سيطلب بعض المستلمين (المتوافق مع بروتوكول DMARC المقيد) ، مزود البريد الإلكتروني الخاص بك ما إذا كان بإمكانهم قبول بريدك الإلكتروني وبعض موفري البريد الإلكتروني (مثل Yahoo) قد تستجيب بـ "لا" لأن الخادم ليس خادمهم ، لذلك قد لا يتم قبول عدد قليل من رسائل البريد الإلكتروني المرسلة للتسليم (كن حذرًا أيضًا من حصة الإرسال لمزود البريد الإلكتروني الخاص بك). +WarningPHPMailC=- يعد استخدام خادم SMTP الخاص بموفر خدمة البريد الإلكتروني الخاص بك لإرسال رسائل البريد الإلكتروني أمرًا مثيرًا للاهتمام أيضًا ، لذا سيتم أيضًا حفظ جميع رسائل البريد الإلكتروني المرسلة من التطبيق في دليل "البريد المرسل" الخاص بصندوق البريد الخاص بك. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. +WarningPHPMail2=إذا كان موفر البريد الإلكتروني SMTP بحاجة إلى تقييد عميل البريد الإلكتروني لبعض عناوين IP (نادر جدًا) ، فهذا هو عنوان IP الخاص بوكيل مستخدم البريد (MUA) لتطبيق ERP CRM الخاص بك: %s . +WarningPHPMailSPF=إذا كان اسم المجال في عنوان البريد الإلكتروني الخاص بالمرسل محميًا بسجل SPF (اسأل مسجل اسم المجال الخاص بك) ، يجب عليك إضافة عناوين IP التالية في سجل SPF الخاص بـ DNS لمجالك: %s . +ActualMailSPFRecordFound=تم العثور على سجل SPF الفعلي (للبريد الإلكتروني %s): %s +ClickToShowDescription=انقر لإظهار الوصف +DependsOn=تحتاج هذه الوحدة إلى الوحدة (الوحدات) +RequiredBy=هذه الوحدة مطلوبة من قبل الوحدة (الوحدات) +TheKeyIsTheNameOfHtmlField=هذا هو اسم حقل HTML. المعرفة التقنية مطلوبة لقراءة محتوى صفحة HTML للحصول على اسم المفتاح للحقل. +PageUrlForDefaultValues=يجب عليك إدخال المسار النسبي لعنوان URL للصفحة. إذا قمت بتضمين معلمات في عنوان URL ، فستكون القيم الافتراضية فعالة إذا تم تعيين جميع المعلمات على نفس القيمة. +PageUrlForDefaultValuesCreate=
    مثال:
    لكي يقوم النموذج بإنشاء طرف ثالث جديد ، يكون %s .
    بالنسبة لعنوان URL للوحدات الخارجية المثبتة في الدليل المخصص ، لا تقم بتضمين "custom /" ، لذا استخدم المسار مثل mymodule / mypage.php وليس custom / mymodule / mypage.php.
    إذا كنت تريد القيمة الافتراضية فقط إذا كان عنوان url يحتوي على بعض المعلمات ، فيمكنك استخدام %s +PageUrlForDefaultValuesList=
    مثال:
    بالنسبة للصفحة التي تسرد جهات خارجية ، فهي %s .
    بالنسبة لعنوان URL للوحدات الخارجية المثبتة في الدليل المخصص ، لا تقم بتضمين "custom /" لذا استخدم مسارًا مثل mymodule / mypagelist.php وليس custom / mymodule / mypagelist.php.
    إذا كنت تريد القيمة الافتراضية فقط إذا كان عنوان url يحتوي على بعض المعلمات ، فيمكنك استخدام %s +AlsoDefaultValuesAreEffectiveForActionCreate=لاحظ أيضًا أن الكتابة فوق القيم الافتراضية لإنشاء النموذج تعمل فقط للصفحات التي تم تصميمها بشكل صحيح (لذلك مع إجراء المعلمة = إنشاء أو تقديم ...) +EnableDefaultValues=تفعيل تخصيص القيم الافتراضية +EnableOverwriteTranslation=Allow customization of translations +GoIntoTranslationMenuToChangeThis=تم العثور على ترجمة للمفتاح بهذا الرمز. لتغيير هذه القيمة ، يجب عليك تحريرها من Home-Setup-translation. +WarningSettingSortOrder=تحذير ، قد يؤدي تعيين ترتيب فرز افتراضي إلى حدوث خطأ تقني عند الانتقال إلى صفحة القائمة إذا كان الحقل حقلاً غير معروف. إذا واجهت مثل هذا الخطأ ، فارجع إلى هذه الصفحة لإزالة ترتيب الفرز الافتراضي واستعادة السلوك الافتراضي. Field=حقل -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports -WatermarkOnDraftExpenseReports=Watermark on draft expense reports -ProjectIsRequiredOnExpenseReports=The project is mandatory for entering an expense report -PrefillExpenseReportDatesWithCurrentMonth=Pre-fill start and end dates of new expense report with start and end dates of the current month -ForceExpenseReportsLineAmountsIncludingTaxesOnly=Force the entry of expense report amounts always in amount with taxes -AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable) -FilesAttachedToEmail=Attach file -SendEmailsReminders=Send agenda reminders by emails -davDescription=Setup a WebDAV server -DAVSetup=Setup of module DAV -DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) -DAV_ALLOW_PRIVATE_DIRTooltip=The generic private directory is a WebDAV directory anybody can access with its application login/pass. -DAV_ALLOW_PUBLIC_DIR=Enable the generic public directory (WebDAV dedicated directory named "public" - no login required) -DAV_ALLOW_PUBLIC_DIRTooltip=The generic public directory is a WebDAV directory anybody can access (in read and write mode), with no authorization required (login/password account). -DAV_ALLOW_ECM_DIR=Enable the DMS/ECM private directory (root directory of the DMS/ECM module - login required) -DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it. +ProductDocumentTemplates=قوالب المستندات لإنشاء مستند المنتج +FreeLegalTextOnExpenseReports=نص قانوني مجاني على تقارير النفقات +WatermarkOnDraftExpenseReports=علامة مائية على مسودة تقارير المصروفات +ProjectIsRequiredOnExpenseReports=المشروع إلزامي لإدخال تقرير المصاريف +PrefillExpenseReportDatesWithCurrentMonth=قم بملء تاريخي البدء والانتهاء لتقرير المصاريف الجديد مسبقًا بتواريخ البدء والانتهاء للشهر الحالي +ForceExpenseReportsLineAmountsIncludingTaxesOnly=فرض إدخال مبالغ تقرير المصاريف دائمًا مع الضرائب +AttachMainDocByDefault=اضبط هذا على 1 إذا كنت تريد إرفاق المستند الأساسي بالبريد الإلكتروني افتراضيًا (إن أمكن) +FilesAttachedToEmail=أرفق ملف +SendEmailsReminders=إرسال تذكير جدول الأعمال عن طريق رسائل البريد الإلكتروني +davDescription=قم بإعداد خادم WebDAV +DAVSetup=إعداد وحدة DAV +DAV_ALLOW_PRIVATE_DIR=تمكين الدليل العام الخاص (دليل WebDAV المخصص المسمى "خاص" - يلزم تسجيل الدخول) +DAV_ALLOW_PRIVATE_DIRTooltip=الدليل الخاص العام هو دليل WebDAV يمكن لأي شخص الوصول إليه من خلال تسجيل الدخول / المرور للتطبيق الخاص به. +DAV_ALLOW_PUBLIC_DIR=تمكين الدليل العام العام (يسمى دليل WebDAV المخصص باسم "عام" - لا يلزم تسجيل الدخول) +DAV_ALLOW_PUBLIC_DIRTooltip=الدليل العام العام هو دليل WebDAV يمكن لأي شخص الوصول إليه (في وضع القراءة والكتابة) ، بدون إذن مطلوب (حساب تسجيل الدخول / كلمة المرور). +DAV_ALLOW_ECM_DIR=تمكين الدليل الخاص DMS / ECM (الدليل الجذر لوحدة DMS / ECM - يلزم تسجيل الدخول) +DAV_ALLOW_ECM_DIRTooltip=الدليل الجذر حيث يتم تحميل جميع الملفات يدويًا عند استخدام وحدة DMS / ECM. مثل الوصول من واجهة الويب ، ستحتاج إلى تسجيل دخول / كلمة مرور صالحة مع أذونات مخصصة للوصول إليها. # Modules Module0Name=مجموعات المستخدمين -Module0Desc=Users / Employees and Groups management -Module1Name=Third Parties -Module1Desc=Companies and contacts management (customers, prospects...) +Module0Desc=المستخدمون / الموظفون وإدارة المجموعات +Module1Name=الأطراف الثالثة +Module1Desc=إدارة الشركات وجهات الاتصال (العملاء ، الآفاق ...) Module2Name=التجارية Module2Desc=الإدارة التجارية -Module10Name=Accounting (simplified) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. +Module10Name=محاسبة (مبسطة) +Module10Desc=تقارير محاسبية بسيطة (مجلات ، معدل دوران) بناءً على محتوى قاعدة البيانات. لا يستخدم أي جدول دفتر الأستاذ. Module20Name=مقترحات Module20Desc=مقترحات تجارية إدارة -Module22Name=Mass Emailings -Module22Desc=Manage bulk emailing +Module22Name=رسائل البريد الإلكتروني الجماعية +Module22Desc=إدارة البريد الإلكتروني الجماعي Module23Name=طاقة Module23Desc=مراقبة استهلاك الطاقة Module25Name=اوامر البيع -Module25Desc=Sales order management +Module25Desc=إدارة أوامر المبيعات Module30Name=فواتير -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers +Module30Desc=إدارة الفواتير وسندات الائتمان للعملاء. إدارة الفواتير والمذكرات الدائنة للموردين Module40Name=الموردين -Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) -Module42Name=Debug Logs -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. -Module43Name=Debug Bar -Module43Desc=A tool for developper adding a debug bar in your browser. +Module40Desc=إدارة البائعين والمشتريات (أوامر الشراء وفواتير الموردين) +Module42Name=سجلات التصحيح +Module42Desc=تسهيلات التسجيل (ملف ، سجل نظام ، ...). هذه السجلات لأغراض فنية / تصحيح الأخطاء. +Module43Name=شريط التصحيح +Module43Desc=أداة للمطورين تضيف شريط تصحيح الأخطاء في متصفحك. Module49Name=المحررين Module49Desc=المحررين إدارة Module50Name=المنتجات -Module50Desc=Management of Products +Module50Desc=إدارة المنتجات Module51Name=الرسائل الجماعية Module51Desc=الدمار ورقة الرسائل الإدارية Module52Name=الاسهم -Module52Desc=Stock management +Module52Desc=إدارة المخزون Module53Name=الخدمات -Module53Desc=Management of Services +Module53Desc=إدارة الخدمات Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or recurring subscriptions) +Module54Desc=إدارة العقود (الخدمات أو الاشتراكات المتكررة) Module55Name=Barcodes -Module55Desc=Barcode or QR code management +Module55Desc=إدارة الباركود أو رمز الاستجابة السريعة Module56Name=الدفع عن طريق تحويل من الرصيد -Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. -Module57Name=Payments by Direct Debit -Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. +Module56Desc=إدارة مدفوعات الموردين بأوامر تحويل دائنة. يتضمن إنشاء ملف SEPA للدول الأوروبية. +Module57Name=المدفوعات عن طريق الخصم المباشر +Module57Desc=إدارة أوامر الخصم المباشر. يتضمن إنشاء ملف SEPA للدول الأوروبية. Module58Name=انقر للاتصال Module58Desc=ClickToDial التكامل -Module60Name=Stickers -Module60Desc=Management of stickers +Module60Name=ملصقات +Module60Desc=إدارة الملصقات Module70Name=المداخلات Module70Desc=التدخلات الإدارية Module75Name=ويلاحظ نفقات رحلات Module75Desc=ونفقات الرحلات تلاحظ إدارة Module80Name=الإرسال -Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module80Desc=إدارة الشحنات وسندات التسليم +Module85Name=البنوك والنقد Module85Desc=إدارة حسابات مصرفية أو نقدا -Module100Name=External Site -Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. +Module100Name=موقع خارجي +Module100Desc=أضف ارتباطًا إلى موقع ويب خارجي كرمز قائمة رئيسية. يظهر موقع الويب في إطار أسفل القائمة العلوية. Module105Name=ساعي البريد ورشفة Module105Desc=ساعي البريد أو SPIP واجهة وحدة عضو Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=مزامنة دليل LDAP Module210Name=PostNuke Module210Desc=PostNuke التكامل Module240Name=بيانات الصادرات -Module240Desc=Tool to export Dolibarr data (with assistance) +Module240Desc=أداة لتصدير بيانات Dolibarr (بمساعدة) Module250Name=بيانات الاستيراد -Module250Desc=Tool to import data into Dolibarr (with assistance) +Module250Desc=أداة لاستيراد البيانات إلى Dolibarr (مع المساعدة) Module310Name=أعضاء Module310Desc=أعضاء إدارة المؤسسة Module320Name=تغذية RSS -Module320Desc=Add a RSS feed to Dolibarr pages -Module330Name=Bookmarks & Shortcuts -Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access -Module400Name=Projects or Leads -Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. +Module320Desc=أضف موجز RSS إلى صفحات Dolibarr +Module330Name=الإشارات المرجعية والاختصارات +Module330Desc=قم بإنشاء اختصارات ، يمكن الوصول إليها دائمًا ، للصفحات الداخلية أو الخارجية التي تصل إليها بشكل متكرر +Module400Name=المشاريع أو العملاء المتوقعون +Module400Desc=إدارة المشاريع ، والعملاء المتوقعون / الفرص و / أو المهام. يمكنك أيضًا تعيين أي عنصر (فاتورة ، أمر ، اقتراح ، تدخل ، ...) لمشروع والحصول على عرض مستعرض من عرض المشروع. Module410Name=Webcalendar Module410Desc=التكامل Webcalendar -Module500Name=Taxes & Special Expenses -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module500Name=الضرائب والنفقات الخاصة +Module500Desc=إدارة المصاريف الأخرى (ضرائب المبيعات ، الضرائب الاجتماعية أو المالية ، أرباح الأسهم ، ...) Module510Name=الرواتب -Module510Desc=Record and track employee payments +Module510Desc=سجل وتتبع مدفوعات الموظفين Module520Name=القروض Module520Desc=إدارة القروض -Module600Name=Notifications on business event -Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails -Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda. -Module610Name=Product Variants -Module610Desc=Creation of product variants (color, size etc.) +Module600Name=الإخطارات في حدث العمل +Module600Desc=إرسال إشعارات البريد الإلكتروني التي تم تشغيلها بواسطة حدث عمل: لكل مستخدم (الإعداد محدد لكل مستخدم) ، لكل جهات اتصال تابعة لجهة خارجية (الإعداد محدد في كل طرف ثالث) أو بواسطة رسائل بريد إلكتروني محددة +Module600Long=لاحظ أن هذه الوحدة ترسل رسائل بريد إلكتروني في الوقت الفعلي عند حدوث حدث عمل معين. إذا كنت تبحث عن ميزة لإرسال تذكيرات بالبريد الإلكتروني لأحداث جدول الأعمال ، فانتقل إلى إعداد جدول أعمال الوحدة. +Module610Name=متغيرات المنتج +Module610Desc=إنشاء متغيرات المنتج (اللون والحجم وما إلى ذلك) Module700Name=التبرعات Module700Desc=التبرعات إدارة -Module770Name=Expense Reports -Module770Desc=Manage expense reports claims (transportation, meal, ...) -Module1120Name=Vendor Commercial Proposals -Module1120Desc=Request vendor commercial proposal and prices +Module770Name=تقارير النفقات +Module770Desc=إدارة مطالبات تقارير المصروفات (النقل ، الوجبة ، ...) +Module1120Name=عروض البائع التجارية +Module1120Desc=طلب عرض البائع التجاري والأسعار Module1200Name=فرس النبي Module1200Desc=فرس النبي التكامل Module1520Name=الجيل ثيقة -Module1520Desc=Mass email document generation +Module1520Desc=إنشاء مستند البريد الإلكتروني الشامل Module1780Name=الكلمات / فئات Module1780Desc=إنشاء العلامات / فئة (المنتجات والعملاء والموردين والاتصالات أو أفراد) Module2000Name=WYSIWYG المحرر -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=السماح بتحرير / تنسيق الحقول النصية باستخدام CKEditor (html) Module2200Name=الأسعار الديناميكية -Module2200Desc=Use maths expressions for auto-generation of prices +Module2200Desc=استخدم التعبيرات الرياضية للتوليد التلقائي للأسعار Module2300Name=المهام المجدولة -Module2300Desc=Scheduled jobs management (alias cron or chrono table) -Module2400Name=Events/Agenda -Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. +Module2300Desc=إدارة الوظائف المجدولة (الاسم المستعار كرون أو جدول كرونو) +Module2400Name=الأحداث / الأجندة +Module2400Desc=تتبع الأحداث. سجل الأحداث التلقائية لأغراض التتبع أو سجل الأحداث أو الاجتماعات اليدوية. هذه هي الوحدة الرئيسية للإدارة الجيدة لعلاقات العملاء أو البائعين. Module2500Name=DMS / ECM -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=خدمات API / ويب (خادم SOAP) +Module2500Desc=نظام إدارة الوثائق / إدارة المحتوى الإلكتروني. التنظيم التلقائي للمستندات التي تم إنشاؤها أو تخزينها. شاركهم عند الحاجة. +Module2600Name=API / Web services (SOAP server) Module2600Desc=تمكين الخدمات API Dolibarr الخادم SOAP توفير -Module2610Name=خدمات API / ويب (خادم REST) +Module2610Name=API / Web services (REST server) Module2610Desc=تمكين الخادم تقديم الخدمات API Dolibarr REST Module2660Name=WebServices الدعوة (العميل SOAP) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) +Module2660Desc=تمكين عميل خدمات الويب Dolibarr (يمكن استخدامه لإرسال البيانات / الطلبات إلى خوادم خارجية. يتم دعم أوامر الشراء فقط حاليًا.) Module2700Name=غرفتر -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access +Module2700Desc=استخدم خدمة Gravatar عبر الإنترنت (www.gravatar.com) لعرض صور المستخدمين / الأعضاء (الموجودة في رسائل البريد الإلكتروني الخاصة بهم). يحتاج الوصول إلى الإنترنت Module2800Desc=عميل FTP Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP التحويلات Maxmind القدرات -Module3200Name=Unalterable Archives -Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. -Module3400Name=Social Networks -Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). +Module3200Name=المحفوظات غير القابلة للتغيير +Module3200Desc=تمكين سجل غير قابل للتغيير لأحداث العمل. يتم أرشفة الأحداث في الوقت الحقيقي. السجل هو جدول للقراءة فقط للأحداث المتسلسلة التي يمكن تصديرها. قد تكون هذه الوحدة إلزامية لبعض البلدان. +Module3400Name=الشبكات الاجتماعية +Module3400Desc=قم بتمكين حقول الشبكات الاجتماعية في عناوين وعناوين الأطراف الثالثة (سكايب ، تويتر ، فيسبوك ، ...). Module4000Name=HRM -Module4000Desc=Human resources management (management of department, employee contracts and feelings) +Module4000Desc=إدارة الموارد البشرية (إدارة القسم ، عقود الموظفين ومشاعرهم) Module5000Name=شركة متعددة Module5000Desc=يسمح لك لإدارة الشركات المتعددة -Module6000Name=Inter-modules Workflow -Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) +Module6000Name=سير العمل بين الوحدات +Module6000Desc=إدارة سير العمل بين الوحدات النمطية المختلفة (الإنشاء التلقائي للكائن و / أو تغيير الحالة تلقائيًا) Module10000Name=مواقع الويب -Module10000Desc=Create websites (public) with a WYSIWYG editor. This is a webmaster or developer oriented CMS (it is better to know HTML and CSS language). Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name. -Module20000Name=Leave Request Management -Module20000Desc=Define and track employee leave requests -Module39000Name=Product Lots -Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products -Module40000Name=Multicurrency -Module40000Desc=Use alternative currencies in prices and documents +Module10000Desc=أنشئ مواقع ويب (عامة) باستخدام محرر WYSIWYG. هذا هو مدير موقع أو CMS موجه للمطورين (من الأفضل معرفة لغة HTML و CSS). ما عليك سوى إعداد خادم الويب (Apache ، Nginx ، ...) للإشارة إلى دليل Dolibarr المخصص لجعله متصلًا بالإنترنت باستخدام اسم المجال الخاص بك. +Module20000Name=إدارة طلب الإجازة +Module20000Desc=تحديد وتتبع طلبات إجازة الموظفين +Module39000Name=الكثير من المنتجات +Module39000Desc=الكثير ، والأرقام التسلسلية ، وإدارة تاريخ الأكل / البيع للمنتجات +Module40000Name=متعدد العملات +Module40000Desc=استخدم العملات البديلة في الأسعار والمستندات Module50000Name=PayBox -Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50000Desc=قدم للعملاء صفحة دفع عبر الإنترنت لـ PayBox (بطاقات الائتمان / الخصم). يمكن استخدام هذا للسماح لعملائك بإجراء مدفوعات مخصصة أو مدفوعات تتعلق بكائن Dolibarr معين (فاتورة ، طلب ، إلخ ...) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale module SimplePOS (simple POS). -Module50150Name=POS TakePOS -Module50150Desc=Point of Sale module TakePOS (touchscreen POS, for shops, bars or restaurants). +Module50100Desc=وحدة نقاط البيع SimplePOS (نقطة بيع بسيطة). +Module50150Name=نقاط البيع TakePOS +Module50150Desc=وحدة نقطة البيع TakePOS (شاشة تعمل باللمس ، للمحلات التجارية والحانات والمطاعم). Module50200Name=باي بال -Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) -Module50300Name=Stripe -Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) -Module50400Name=Accounting (double entry) -Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module50200Desc=قدم للعملاء صفحة دفع عبر الإنترنت من PayPal (حساب PayPal أو بطاقات ائتمان / خصم). يمكن استخدام هذا للسماح لعملائك بإجراء مدفوعات مخصصة أو مدفوعات تتعلق بكائن Dolibarr معين (فاتورة ، طلب ، إلخ ...) +Module50300Name=شريط +Module50300Desc=قدم للعملاء صفحة دفع عبر الإنترنت لـ Stripe (بطاقات الائتمان / الخصم). يمكن استخدام هذا للسماح لعملائك بإجراء مدفوعات مخصصة أو مدفوعات تتعلق بكائن Dolibarr معين (فاتورة ، طلب ، إلخ ...) +Module50400Name=المحاسبة (القيد المزدوج) +Module50400Desc=إدارة المحاسبة (إدخالات مزدوجة ، ودعم دفاتر الأستاذ العامة والفرعية). تصدير دفتر الأستاذ في العديد من تنسيقات برامج المحاسبة الأخرى. Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). +Module54000Desc=الطباعة المباشرة (بدون فتح المستندات) باستخدام واجهة Cups IPP (يجب أن تكون الطابعة مرئية من الخادم ، ويجب تثبيت CUPS على الخادم). Module55000Name=استطلاع للرأي، أو مسح التصويت -Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) +Module55000Desc=إنشاء استطلاعات الرأي أو الاستطلاعات أو الأصوات عبر الإنترنت (مثل Doodle و Studs و RDVz وما إلى ذلك ...) Module59000Name=هوامش -Module59000Desc=Module to follow margins +Module59000Desc=وحدة لمتابعة الهوامش Module60000Name=العمولات Module60000Desc=وحدة لإدارة اللجان Module62000Name=شروط التجارة الدولية -Module62000Desc=Add features to manage Incoterms +Module62000Desc=إضافة ميزات لإدارة Incoterms Module63000Name=مصادر -Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module63000Desc=إدارة الموارد (طابعات ، سيارات ، غرف ، ...) لتخصيصها للمناسبات +Module94160Name=Receptions Permission11=قراءة الفواتير Permission12=إنشاء / تعديل فواتير العملاء -Permission13=Invalidate customer invoices +Permission13=إبطال فواتير العميل Permission14=التحقق من صحة الفواتير Permission15=ارسال الفواتير عن طريق البريد الإلكتروني Permission16=إنشاء مدفوعات الفواتير العملاء @@ -714,31 +717,33 @@ Permission27=حذف مقترحات تجارية Permission28=الصادرات التجارية مقترحات Permission31=قراءة المنتجات Permission32=إنشاء / تعديل المنتجات +Permission33=Read prices products Permission34=حذف المنتجات Permission36=انظر / إدارة المنتجات المخفية Permission38=منتجات التصدير -Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) -Permission45=Export projects +Permission39=تجاهل الحد الأدنى للسعر +Permission41=اقرأ المشاريع والمهام (المشاريع المشتركة والمشاريع التي أنا جهة اتصال بها). +Permission42=إنشاء / تعديل المشاريع (المشاريع المشتركة والمشاريع التي أنا على اتصال بها). يمكن أيضًا تعيين المستخدمين للمشاريع والمهام +Permission44=حذف المشاريع (المشاريع المشتركة والمشاريع التي أنا جهة اتصال بها) +Permission45=مشاريع التصدير Permission61=قراءة التدخلات Permission62=إنشاء / تعديل التدخلات Permission64=حذف التدخلات Permission67=تصدير التدخلات -Permission68=Send interventions by email -Permission69=Validate interventions -Permission70=Invalidate interventions +Permission68=إرسال المداخلات عبر البريد الإلكتروني +Permission69=تحقق من صحة التدخلات +Permission70=تدخلات غير صالحة Permission71=قراءة الأعضاء Permission72=إنشاء / تعديل أعضاء Permission74=حذف أعضاء Permission75=أنواع الإعداد للعضوية -Permission76=Export data +Permission76=تصدير البيانات Permission78=قراءة الاشتراكات Permission79=إنشاء / تعديل والاشتراكات Permission81=قراءة أوامر العملاء Permission82=إنشاء / تعديل أوامر العملاء Permission84=صحة أوامر العملاء +Permission85=إنشاء مستندات أوامر المبيعات Permission86=إرسال أوامر العملاء Permission87=وثيقة أوامر العملاء Permission88=إلغاء أوامر العملاء @@ -751,54 +756,54 @@ Permission95=قراءة تقارير Permission101=قراءة الإرسال Permission102=إنشاء / تعديل الإرسال Permission104=صحة الإرسال -Permission105=Send sendings by email +Permission105=إرسال الرسائل عن طريق البريد الإلكتروني Permission106=sendings التصدير Permission109=حذف الإرسال Permission111=قراءة الحسابات المالية Permission112=إنشاء / تعديل أو حذف ، وقارن المعاملات -Permission113=Setup financial accounts (create, manage categories of bank transactions) -Permission114=Reconcile transactions +Permission113=إعداد الحسابات المالية (إنشاء وإدارة فئات المعاملات المصرفية) +Permission114=التوفيق بين المعاملات Permission115=صفقات التصدير وكشوفات الحساب Permission116=التحويلات بين الحسابات -Permission117=Manage checks dispatching +Permission117=إدارة إرسال الشيكات Permission121=قراءة الغير مرتبطة المستخدم Permission122=إنشاء / تغيير الغير مرتبطة المستخدم Permission125=حذف الغير مرتبطة المستخدم Permission126=الصادرات الغير -Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission130=إنشاء / تعديل معلومات الدفع الخاصة بأطراف ثالثة +Permission141=اقرأ جميع المشاريع والمهام (بالإضافة إلى المشاريع الخاصة التي لست على اتصال بها) +Permission142=إنشاء / تعديل جميع المشاريع والمهام (بالإضافة إلى المشاريع الخاصة التي لست على اتصال بها) +Permission144=حذف جميع المشاريع والمهام (بالإضافة إلى المشاريع الخاصة التي لست جهة اتصال) +Permission145=يمكن إدخال الوقت المستغرق ، بالنسبة لي أو التسلسل الهرمي الخاص بي ، في المهام المعينة (سجل الدوام) Permission146=قراءة موفري Permission147=قراءة احصائيات -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejections of direct debit payment orders +Permission151=قراءة أوامر الدفع بالخصم المباشر +Permission152=إنشاء / تعديل أوامر الدفع بالخصم المباشر +Permission153=إرسال / تحويل أوامر الدفع بالخصم المباشر +Permission154=تسجيل الاعتمادات / الرفض لأوامر الدفع بالخصم المباشر Permission161=قراءة العقود / الاشتراكات Permission162=إنشاء / تعديل العقود / الاشتراكات Permission163=تفعيل خدمة / الاشتراك عقد Permission164=تعطيل خدمة / الاشتراك عقد Permission165=حذف العقود / الاشتراكات -Permission167=Export contracts +Permission167=عقود التصدير Permission171=قراءة الرحلات والنفقات (لك والمرؤوسين لديك) Permission172=إنشاء / تعديل الرحلات والمصاريف Permission173=حذف الرحلات والمصاريف Permission174=قراءة جميع الرحلات والمصاريف Permission178=رحلات ونفقات التصدير Permission180=قراءة الموردين -Permission181=Read purchase orders -Permission182=Create/modify purchase orders -Permission183=Validate purchase orders -Permission184=Approve purchase orders -Permission185=Order or cancel purchase orders -Permission186=Receive purchase orders -Permission187=Close purchase orders -Permission188=Cancel purchase orders +Permission181=اقرأ أوامر الشراء +Permission182=إنشاء / تعديل أوامر الشراء +Permission183=التحقق من صحة أوامر الشراء +Permission184=الموافقة على أوامر الشراء +Permission185=طلب أو إلغاء أوامر الشراء +Permission186=استلام أوامر الشراء +Permission187=إغلاق أوامر الشراء +Permission188=إلغاء أوامر الشراء Permission192=إنشاء خطوط Permission193=إلغاء خطوط -Permission194=Read the bandwidth lines +Permission194=اقرأ خطوط النطاق الترددي Permission202=إنشاء خط المشترك الرقمي غير المتماثل وصلات Permission203=وصلات من أجل أوامر Permission204=من أجل وصلات @@ -823,13 +828,13 @@ Permission244=انظر محتويات الخفية الفئات Permission251=قراءة أخرى للمستخدمين والمجموعات PermissionAdvanced251=قراءة المستخدمين الآخرين Permission252=قراءة أذونات المستخدمين الآخرين -Permission253=Create/modify other users, groups and permissions +Permission253=إنشاء / تعديل مستخدمين آخرين ومجموعات وأذونات PermissionAdvanced253=إنشاء / تعديل المستخدمين خارجي / داخلي وأذونات Permission254=حذف أو تعطيل المستخدمين الآخرين Permission255=إنشاء / تعديل بلده معلومات المستخدم Permission256=تعديل بنفسه كلمة المرور -Permission262=Extend access to all third parties AND their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). -Permission263=Extend access to all third parties WITHOUT their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission262=توسيع الوصول إلى جميع الأطراف الثالثة والأشياء الخاصة بهم (ليس فقط الأطراف الثالثة التي يكون المستخدم ممثل بيع لها).
    غير فعال للمستخدمين الخارجيين (يقتصر الأمر دائمًا على أنفسهم فيما يتعلق بالعروض والأوامر والفواتير والعقود وما إلى ذلك).
    غير فعال للمشاريع (فقط القواعد المتعلقة بأذونات المشروع والرؤية ومسائل التعيين). +Permission263=قم بتوسيع الوصول إلى جميع الأطراف الثالثة بدون كائناتهم (ليس فقط الأطراف الثالثة التي يكون المستخدم ممثل بيع لها).
    غير فعال للمستخدمين الخارجيين (يقتصر الأمر دائمًا على أنفسهم فيما يتعلق بالعروض والأوامر والفواتير والعقود وما إلى ذلك).
    غير فعال للمشاريع (فقط القواعد المتعلقة بأذونات المشروع والرؤية ومسائل التعيين). Permission271=قراءة في كاليفورنيا Permission272=قراءة الفواتير Permission273=قضية الفواتير @@ -839,10 +844,10 @@ Permission283=حذف اتصالات Permission286=تصدير اتصالات Permission291=قراءة التعريفات Permission292=مجموعة أذونات على التعريفات -Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission293=تعديل تعريفات العميل +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=قراءة الخدمات Permission312=تعيين خدمة / الاشتراك في التعاقد Permission331=قراءة العناوين @@ -861,11 +866,11 @@ Permission401=قراءة خصومات Permission402=إنشاء / تعديل الخصومات Permission403=تحقق من الخصومات Permission404=حذف خصومات -Permission430=Use Debug Bar -Permission511=Read salaries and payments (yours and subordinates) -Permission512=Create/modify salaries and payments -Permission514=Delete salaries and payments -Permission517=Read salaries and payments everybody +Permission430=استخدم شريط التصحيح +Permission511=اقرأ الرواتب والمدفوعات (لك ومرؤوسيك) +Permission512=إنشاء / تعديل الرواتب والمدفوعات +Permission514=حذف الرواتب والمدفوعات +Permission517=اقرأ الرواتب والمدفوعات للجميع Permission519=رواتب التصدير Permission520=قراءة القروض Permission522=إنشاء / تعديل القروض @@ -874,246 +879,252 @@ Permission525=قرض الوصول آلة حاسبة Permission527=قروض التصدير Permission531=قراءة الخدمات Permission532=إنشاء / تعديل الخدمات +Permission533=Read prices services Permission534=حذف خدمات Permission536=انظر / إدارة الخدمات الخفية Permission538=تصدير الخدمات -Permission561=Read payment orders by credit transfer -Permission562=Create/modify payment order by credit transfer -Permission563=Send/Transmit payment order by credit transfer -Permission564=Record Debits/Rejections of credit transfer -Permission601=Read stickers -Permission602=Create/modify stickers -Permission609=Delete stickers -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants -Permission650=Read Bills of Materials -Permission651=Create/Update Bills of Materials -Permission652=Delete Bills of Materials -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) +Permission561=قراءة أوامر الدفع عن طريق تحويل الرصيد +Permission562=إنشاء / تعديل أمر الدفع عن طريق تحويل الرصيد +Permission563=إرسال / تحويل أمر الدفع عن طريق تحويل الرصيد +Permission564=سجل عمليات الخصم / رفض تحويل الائتمان +Permission601=اقرأ الملصقات +Permission602=إنشاء / تعديل الملصقات +Permission609=احذف الملصقات +Permission611=اقرأ سمات المتغيرات +Permission612=إنشاء / تحديث سمات المتغيرات +Permission613=حذف سمات المتغيرات +Permission650=اقرأ فواتير المواد +Permission651=إنشاء / تحديث فواتير المواد +Permission652=حذف فواتير المواد +Permission660=قراءة أمر التصنيع (MO) +Permission661=إنشاء / تحديث أمر التصنيع (MO) +Permission662=حذف أمر التصنيع (MO) Permission701=قراءة التبرعات Permission702=إنشاء / تعديل والهبات Permission703=حذف التبرعات Permission771=قراءة التقارير حساب (لك والمرؤوسين لديك) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission772=إنشاء / تعديل تقارير المصاريف (لك ولمرؤوسيك) Permission773=حذف تقارير المصاريف Permission775=الموافقة على التقارير حساب Permission776=دفع نفقة تقارير -Permission777=Read all expense reports (even those of user not subordinates) -Permission778=Create/modify expense reports of everybody +Permission777=قراءة جميع تقارير المصاريف (حتى تلك الخاصة بالمستخدم وليس المرؤوسين) +Permission778=إنشاء / تعديل تقارير المصروفات للجميع Permission779=تقارير حساب التصدير Permission1001=قراءة مخزونات Permission1002=إنشاء / تعديل المستودعات Permission1003=حذف المستودعات Permission1004=قراءة تحركات الأسهم Permission1005=إنشاء / تعديل تحركات الأسهم -Permission1011=View inventories -Permission1012=Create new inventory -Permission1014=Validate inventory -Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory -Permission1101=Read delivery receipts -Permission1102=Create/modify delivery receipts -Permission1104=Validate delivery receipts -Permission1109=Delete delivery receipts -Permission1121=Read supplier proposals -Permission1122=Create/modify supplier proposals -Permission1123=Validate supplier proposals -Permission1124=Send supplier proposals -Permission1125=Delete supplier proposals -Permission1126=Close supplier price requests +Permission1011=عرض قوائم الجرد +Permission1012=إنشاء مخزون جديد +Permission1014=التحقق من صحة المخزون +Permission1015=السماح بتغيير قيمة PMP للمنتج +Permission1016=حذف المخزون +Permission1101=قراءة إيصالات التسليم +Permission1102=إنشاء / تعديل إيصالات التسليم +Permission1104=تحقق من صحة إيصالات التسليم +Permission1109=حذف إيصالات التسليم +Permission1121=اقرأ عروض الموردين +Permission1122=إنشاء / تعديل عروض الموردين +Permission1123=التحقق من صحة مقترحات الموردين +Permission1124=إرسال عروض الموردين +Permission1125=حذف عروض الموردين +Permission1126=إغلاق طلبات سعر المورد Permission1181=قراءة الموردين -Permission1182=Read purchase orders -Permission1183=Create/modify purchase orders -Permission1184=Validate purchase orders -Permission1185=Approve purchase orders -Permission1186=Order purchase orders -Permission1187=Acknowledge receipt of purchase orders -Permission1188=Delete purchase orders -Permission1189=Check/Uncheck a purchase order reception -Permission1190=Approve (second approval) purchase orders -Permission1191=Export supplier orders and their attributes +Permission1182=اقرأ أوامر الشراء +Permission1183=إنشاء / تعديل أوامر الشراء +Permission1184=التحقق من صحة أوامر الشراء +Permission1185=الموافقة على أوامر الشراء +Permission1186=أوامر الشراء +Permission1187=الإقرار باستلام أوامر الشراء +Permission1188=حذف أوامر الشراء +Permission1189=حدد / قم بإلغاء تحديد استلام أمر الشراء +Permission1190=الموافقة على (الموافقة الثانية) أوامر الشراء +Permission1191=أوامر تصدير الموردين وخصائصها Permission1201=ونتيجة للحصول على التصدير Permission1202=إنشاء / تعديل للتصدير -Permission1231=Read vendor invoices +Permission1231=استعراض فاتورة المشتريات Permission1232=Create/modify vendor invoices Permission1233=Validate vendor invoices -Permission1234=Delete vendor invoices -Permission1235=Send vendor invoices by email -Permission1236=Export vendor invoices, attributes and payments -Permission1237=Export purchase orders and their details +Permission1234=احذف فواتير البائع +Permission1235=إرسال فواتير البائع عبر البريد الإلكتروني +Permission1236=تصدير فواتير البائع والسمات والمدفوعات +Permission1237=أوامر الشراء للتصدير وتفاصيلها Permission1251=ادارة الدمار الواردات الخارجية البيانات في قاعدة البيانات (بيانات تحميل) Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات -Permission1322=Reopen a paid bill -Permission1421=Export sales orders and attributes -Permission1521=Read documents -Permission1522=Delete documents -Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to) -Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) -Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) +Permission1322=إعادة فتح فاتورة مدفوعة +Permission1421=تصدير أوامر البيع والسمات +Permission1521=اقرأ المستندات +Permission1522=احذف المستندات +Permission2401=قراءة الإجراءات (الأحداث أو المهام) المرتبطة بحساب المستخدم الخاص به (إذا كان صاحب الحدث أو تم تعيينه للتو) +Permission2402=إنشاء / تعديل الإجراءات (الأحداث أو المهام) المرتبطة بحساب المستخدم الخاص به (إذا كان صاحب الحدث) +Permission2403=حذف الإجراءات (الأحداث أو المهام) المرتبطة بحساب المستخدم الخاص به (إذا كان صاحب الحدث) Permission2411=الإجراءات قراءة (أحداث أو المهام) للاخرين Permission2412=إنشاء / تعديل الإجراءات (أحداث أو المهام) للاخرين Permission2413=حذف الإجراءات (أحداث أو المهام) للاخرين -Permission2414=Export actions/tasks of others +Permission2414=تصدير إجراءات / مهام الآخرين Permission2501=قراءة وثائق Permission2502=تقديم وثائق أو حذف Permission2503=تقديم وثائق أو حذف Permission2515=إعداد وثائق وأدلة Permission2801=استخدام عميل FTP في وضع القراءة (تصفح وتحميل فقط) Permission2802=العميل استخدام بروتوكول نقل الملفات في وضع الكتابة (حذف أو تحميل الملفات) -Permission3200=Read archived events and fingerprints -Permission3301=Generate new modules -Permission4001=Read skill/job/position -Permission4002=Create/modify skill/job/position -Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu -Permission4031=Read personal information -Permission4032=Write personal information -Permission10001=Read website content -Permission10002=Create/modify website content (html and javascript content) -Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. -Permission10005=Delete website content -Permission20001=Read leave requests (your leave and those of your subordinates) -Permission20002=Create/modify your leave requests (your leave and those of your subordinates) +Permission3200=قراءة الأحداث المؤرشفة وبصمات الأصابع +Permission3301=إنشاء وحدات جديدة +Permission4001=اقرأ المهارة / الوظيفة / المنصب +Permission4002=إنشاء / تعديل المهارة / الوظيفة / المنصب +Permission4003=حذف المهارة / الوظيفة / المنصب +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu +Permission4031=اقرأ المعلومات الشخصية +Permission4032=اكتب معلومات شخصية +Permission4033=Read all evaluations (even those of user not subordinates) +Permission10001=اقرأ محتوى الموقع +Permission10002=إنشاء / تعديل محتوى موقع الويب (محتوى html و javascript) +Permission10003=إنشاء / تعديل محتوى الموقع (كود php الديناميكي). خطير ، يجب أن يكون محجوزًا للمطورين المقيدين. +Permission10005=حذف محتوى الموقع +Permission20001=اقرأ طلبات الإجازات (إجازتك وتلك الخاصة بمرؤوسيك) +Permission20002=إنشاء / تعديل طلبات الإجازة الخاصة بك (إجازتك وتلك الخاصة بمرؤوسيك) Permission20003=حذف طلبات الإجازة -Permission20004=Read all leave requests (even those of user not subordinates) -Permission20005=Create/modify leave requests for everybody (even those of user not subordinates) -Permission20006=Administer leave requests (setup and update balance) -Permission20007=Approve leave requests +Permission20004=قراءة جميع طلبات الإجازة (حتى تلك الخاصة بالمستخدم وليس المرؤوسين) +Permission20005=إنشاء / تعديل طلبات الإجازة للجميع (حتى تلك الخاصة بالمستخدم وليس المرؤوسين) +Permission20006=إدارة طلبات الإجازة (إعداد وتحديث الرصيد) +Permission20007=الموافقة على طلبات الإجازة Permission23001=قراءة مهمة مجدولة Permission23002=إنشاء / تحديث المجدولة وظيفة Permission23003=حذف مهمة مجدولة Permission23004=تنفيذ مهمة مجدولة -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) -Permission50152=Edit sales lines -Permission50153=Edit ordered sales lines +Permission50101=استخدام نقطة البيع (SimplePOS) +Permission50151=استخدام نقطة البيع (TakePOS) +Permission50152=تحرير بنود المبيعات +Permission50153=تحرير سطور المبيعات المطلوبة Permission50201=قراءة المعاملات Permission50202=استيراد المعاملات -Permission50330=Read objects of Zapier -Permission50331=Create/Update objects of Zapier -Permission50332=Delete objects of Zapier -Permission50401=Bind products and invoices with accounting accounts -Permission50411=Read operations in ledger -Permission50412=Write/Edit operations in ledger -Permission50414=Delete operations in ledger -Permission50415=Delete all operations by year and journal in ledger -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define fiscal periods. Validate transactions and close fiscal periods. -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50330=اقرأ كائنات زابير +Permission50331=إنشاء / تحديث كائنات Zapier +Permission50332=حذف كائنات زابير +Permission50401=ربط المنتجات والفواتير بحسابات محاسبية +Permission50411=قراءة العمليات في دفتر الأستاذ +Permission50412=كتابة / تحرير العمليات في دفتر الأستاذ +Permission50414=حذف العمليات في دفتر الأستاذ +Permission50415=احذف جميع العمليات حسب السنة ودفتر الأستاذ +Permission50418=عمليات تصدير دفتر الأستاذ +Permission50420=تقرير وتصدير التقارير (دوران ، رصيد ، دفاتر اليومية ، دفتر الأستاذ) +Permission50430=تحديد الفترات المالية. التحقق من صحة المعاملات وإغلاق الفترات المالية. +Permission50440=إدارة دليل الحسابات وإعداد المحاسبة +Permission51001=اقرأ الأصول +Permission51002=إنشاء / تحديث الأصول +Permission51003=حذف الأصول +Permission51005=إعداد أنواع الأصول Permission54001=طباعة Permission55001=قراءة استطلاعات الرأي Permission55002=إنشاء / تعديل استطلاعات الرأي Permission59001=قراءة الهوامش التجارية Permission59002=تحديد هوامش التجارية Permission59003=قراءة كل الهامش المستخدم -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -Permission64001=Allow direct printing -Permission67000=Allow printing of receipts -Permission68001=Read intracomm report -Permission68002=Create/modify intracomm report -Permission68004=Delete intracomm report -Permission941601=Read receipts -Permission941602=Create and modify receipts -Permission941603=Validate receipts -Permission941604=Send receipts by email -Permission941605=Export receipts -Permission941606=Delete receipts -DictionaryCompanyType=Third-party types -DictionaryCompanyJuridicalType=Third-party legal entities -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts -DictionaryCanton=States/Provinces +Permission63001=اقرأ الموارد +Permission63002=إنشاء / تعديل الموارد +Permission63003=حذف الموارد +Permission63004=ربط الموارد بأحداث جدول الأعمال +Permission64001=السماح بالطباعة المباشرة +Permission67000=السماح بطباعة الإيصالات +Permission68001=قراءة تقرير intracomm +Permission68002=إنشاء / تعديل تقرير intracomm +Permission68004=حذف تقرير intracomm +Permission941601=قراءة الإيصالات +Permission941602=إنشاء وتعديل الإيصالات +Permission941603=تحقق من صحة الإيصالات +Permission941604=إرسال الإيصالات عن طريق البريد الإلكتروني +Permission941605=إيصالات التصدير +Permission941606=حذف الإيصالات +DictionaryCompanyType=أنواع الجهات الخارجية +DictionaryCompanyJuridicalType=الكيانات القانونية الخارجية +DictionaryProspectLevel=المستوى المحتمل المحتمل للشركات +DictionaryProspectContactLevel=احتمالية المستوى المحتمل لجهات الاتصال +DictionaryCanton=الولايات / المقاطعات DictionaryRegion=المناطق DictionaryCountry=الدول DictionaryCurrency=العملات -DictionaryCivility=Honorific titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Types of social or fiscal taxes +DictionaryCivility=ألقاب شرفية +DictionaryActions=أنواع أحداث جدول الأعمال +DictionarySocialContributions=أنواع الضرائب الاجتماعية أو المالية DictionaryVAT=أسعار الضريبة على القيمة المضافة أو ضريبة المبيعات الاسعار -DictionaryRevenueStamp=Amount of tax stamps +DictionaryRevenueStamp=مقدار الطوابع الضريبية DictionaryPaymentConditions=شروط السداد -DictionaryPaymentModes=Payment Modes +DictionaryPaymentModes=طرق الدفع DictionaryTypeContact=الاتصال / أنواع العناوين -DictionaryTypeOfContainer=Website - Type of website pages/containers +DictionaryTypeOfContainer=موقع الويب - نوع صفحات / حاويات موقع الويب DictionaryEcotaxe=ضرائب بيئية (WEEE) DictionaryPaperFormat=تنسيقات ورقة -DictionaryFormatCards=Card formats -DictionaryFees=Expense report - Types of expense report lines +DictionaryFormatCards=تنسيقات البطاقة +DictionaryFees=تقرير المصاريف - أنواع بنود تقرير المصاريف DictionarySendingMethods=وسائل النقل البحري -DictionaryStaff=Number of Employees +DictionaryStaff=عدد الموظفين DictionaryAvailability=تأخير تسليم -DictionaryOrderMethods=Order methods +DictionaryOrderMethods=طرق الطلب DictionarySource=أصل مقترحات / أوامر -DictionaryAccountancyCategory=Personalized groups for reports +DictionaryAccountancyCategory=مجموعات مخصصة للتقارير DictionaryAccountancysystem=نماذج للتخطيط للحسابات DictionaryAccountancyJournal=Accounting journals -DictionaryEMailTemplates=Email Templates +DictionaryEMailTemplates=قوالب البريد الإلكتروني DictionaryUnits=الوحدات -DictionaryMeasuringUnits=Measuring Units -DictionarySocialNetworks=Social Networks -DictionaryProspectStatus=Prospect status for companies -DictionaryProspectContactStatus=Prospect status for contacts -DictionaryHolidayTypes=Leave - Types of leave -DictionaryOpportunityStatus=Lead status for project/lead -DictionaryExpenseTaxCat=Expense report - Transportation categories -DictionaryExpenseTaxRange=Expense report - Range by transportation category -DictionaryTransportMode=Intracomm report - Transport mode -DictionaryBatchStatus=Product lot/serial Quality Control status -DictionaryAssetDisposalType=Type of disposal of assets -TypeOfUnit=Type of unit +DictionaryMeasuringUnits=وحدات القياس +DictionarySocialNetworks=الشبكات الاجتماعية +DictionaryProspectStatus=حالة الاحتمال للشركات +DictionaryProspectContactStatus=حالة البحث عن جهات الاتصال +DictionaryHolidayTypes=الإجازة - أنواع الإجازة +DictionaryOpportunityStatus=حالة الرصاص للمشروع / العميل المحتمل +DictionaryExpenseTaxCat=تقرير المصاريف - فئات النقل +DictionaryExpenseTaxRange=تقرير المصاريف - النطاق حسب فئة النقل +DictionaryTransportMode=تقرير Intracomm - وضع النقل +DictionaryBatchStatus=حالة مراقبة الجودة / دفعة المنتج +DictionaryAssetDisposalType=نوع التصرف في الأصول +TypeOfUnit=نوع الوحدة SetupSaved=تم حفظ الإعدادات SetupNotSaved=الإعدادات لم تحفظ -BackToModuleList=Back to Module list -BackToDictionaryList=Back to Dictionaries list -TypeOfRevenueStamp=Type of tax stamp -VATManagement=Sales Tax Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sales Tax rate follows the active standard rule:
    If the seller is not subject to Sales tax, then Sales tax defaults to 0. End of rule.
    If the (seller's country = buyer's country), then the Sales tax by default equals the Sales tax of the product in the seller's country. End of rule.
    If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default VAT is 0. This rule is dependant on the seller's country - please consult with your accountant. The VAT should be paid by the buyer to the customs office in their country and not to the seller. End of rule.
    If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community VAT number) then the VAT defaults to the VAT rate of the seller's country. End of rule.
    If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community VAT number), then the VAT is 0 by default. End of rule.
    In any other case the proposed default is Sales tax=0. End of rule. -VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for cases like associations, individuals or small companies. -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration. This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices. +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=خطاء اثناء الحذف +EntryDeleted=العنصر محذوف +BackToModuleList=العودة إلى قائمة الوحدات +BackToDictionaryList=رجوع إلى قائمة القواميس +TypeOfRevenueStamp=نوع الطابع الضريبي +VATManagement=إدارة ضريبة المبيعات +VATIsUsedDesc=بشكل افتراضي عند إنشاء العملاء المحتملين والفواتير والأوامر وما إلى ذلك ، يتبع معدل ضريبة المبيعات القاعدة القياسية النشطة:
    إذا لم يكن البائع خاضعًا لضريبة المبيعات ، فستكون ضريبة المبيعات الافتراضية هي 0. نهاية القاعدة.
    إذا كانت (دولة البائع = بلد المشتري) ، فإن ضريبة المبيعات بشكل افتراضي تساوي ضريبة المبيعات للمنتج في بلد البائع. نهاية الحكم.
    إذا كان البائع والمشتري في الاتحاد الأوروبي وكانت البضائع منتجات مرتبطة بالنقل (النقل والشحن والطيران) ، فإن ضريبة القيمة المضافة الافتراضية هي 0. تعتمد هذه القاعدة على بلد البائع - يرجى استشارة المحاسب الخاص بك. يجب أن يدفع المشتري ضريبة القيمة المضافة لمكتب الجمارك في بلده وليس للبائع. نهاية الحكم.
    إذا كان البائع والمشتري في الاتحاد الأوروبي والمشتري ليس شركة (برقم ضريبة قيمة مضافة داخل المجتمع) ، فإن ضريبة القيمة المضافة تتخلف عن معدل ضريبة القيمة المضافة لبلد البائع. نهاية الحكم.
    إذا كان البائع والمشتري في المجتمع الأوروبي والمشتري هو شركة (برقم ضريبة القيمة المضافة داخل المجتمع المسجل) ، فإن ضريبة القيمة المضافة تكون 0 افتراضيًا. نهاية الحكم.
    في أي حالة أخرى ، الافتراضي المقترح هو ضريبة المبيعات = 0. نهاية الحكم. +VATIsNotUsedDesc=بشكل افتراضي ، تكون ضريبة المبيعات المقترحة هي 0 والتي يمكن استخدامها في حالات مثل الجمعيات أو الأفراد أو الشركات الصغيرة. +VATIsUsedExampleFR=في فرنسا ، يعني ذلك الشركات أو المؤسسات التي لديها نظام مالي حقيقي (حقيقي مبسط أو عادي حقيقي). نظام يتم فيه إعلان ضريبة القيمة المضافة. +VATIsNotUsedExampleFR=في فرنسا ، يُقصد به الجمعيات غير المصرح بها عن ضريبة المبيعات أو الشركات أو المنظمات أو المهن الحرة التي اختارت النظام المالي للمؤسسات الصغيرة (ضريبة المبيعات في الامتياز) ودفعت ضريبة مبيعات الامتياز بدون أي إقرار بضريبة المبيعات. سيعرض هذا الاختيار المرجع "ضريبة المبيعات غير القابلة للتطبيق - المادة 293B من CGI" على الفواتير. ##### Local Taxes ##### -TypeOfSaleTaxes=Type of sales tax +TypeOfSaleTaxes=نوع ضريبة المبيعات LTRate=معدل LocalTax1IsNotUsed=لا تستخدم الضريبة الثانية -LocalTax1IsUsedDesc=Use a second type of tax (other than first one) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax1IsUsedDesc=استخدم نوعًا ثانيًا من الضرائب (بخلاف النوع الأول) +LocalTax1IsNotUsedDesc=لا تستخدم نوعًا آخر من الضرائب (بخلاف الضريبة الأولى) LocalTax1Management=النوع الثاني من الضرائب LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=لا تستخدم الضرائب الثالثة -LocalTax2IsUsedDesc=Use a third type of tax (other than first one) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax2IsUsedDesc=استخدم نوعًا ثالثًا من الضرائب (بخلاف النوع الأول) +LocalTax2IsNotUsedDesc=لا تستخدم نوعًا آخر من الضرائب (بخلاف الضريبة الأولى) LocalTax2Management=النوع الثالث من الضريبة LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=إدارة الطاقة المتجددة -LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the buyer is not subjected to RE, RE by default=0. End of rule.
    If the buyer is subjected to RE then the RE by default. End of rule.
    +LocalTax1IsUsedDescES=معدل RE افتراضيًا عند إنشاء التوقعات والفواتير والأوامر وما إلى ذلك ، يتبع القاعدة القياسية النشطة:
    إذا لم يكن المشتري خاضعًا لـ RE ، RE افتراضيًا = 0. نهاية الحكم.
    إذا تعرض المشتري لـ RE ، فإن RE بشكل افتراضي. نهاية الحكم.
    LocalTax1IsNotUsedDescES=افتراضيا الطاقة المتجددة المقترحة هي 0. نهاية الحكم. LocalTax1IsUsedExampleES=في اسبانيا هم من المهنيين تخضع لبعض المقاطع المحددة للشركة التعليم الصوتي التفاعلي الاسبانية. LocalTax1IsNotUsedExampleES=في اسبانيا هم المهنية والجمعيات وتخضع لقطاعات معينة من شركة التعليم الصوتي التفاعلي الاسبانية. LocalTax2ManagementES=IRPF الإدارة -LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
    If the seller is subjected to IRPF then the IRPF by default. End of rule.
    +LocalTax2IsUsedDescES=يتبع معدل IRPF افتراضيًا عند إنشاء التوقعات والفواتير والأوامر وما إلى ذلك القاعدة القياسية النشطة:
    إذا لم يكن البائع خاضعًا لـ IRPF ، فإن IRPF افتراضيًا = 0. نهاية الحكم.
    إذا تعرض البائع لـ IRPF فإن IRPF افتراضيًا. نهاية الحكم.
    LocalTax2IsNotUsedDescES=افتراضيا IRPF المقترحة هي 0. نهاية الحكم. LocalTax2IsUsedExampleES=في اسبانيا ، لحسابهم الخاص والمهنيين المستقلين الذين يقدمون الخدمات والشركات الذين اختاروا النظام الضريبي من وحدات. -LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules. -RevenueStampDesc=The "tax stamp" or "revenue stamp" is a fixed tax you per invoice (It does not depend on amount of invoice). It can also be a percent tax but using the second or third type of tax is better for percent taxes as tax stamps does not provide any reporting. Only few countries uses this type of tax. -UseRevenueStamp=Use a tax stamp -UseRevenueStampExample=The value of tax stamp is defined by default into the setup of dictionaries (%s - %s - %s) +LocalTax2IsNotUsedExampleES=في إسبانيا هم شركات لا تخضع لنظام ضريبي للوحدات. +RevenueStampDesc="الطابع الضريبي" أو "طابع الإيرادات" هو ضريبة ثابتة تحددها لكل فاتورة (لا تعتمد على مبلغ الفاتورة). يمكن أن تكون أيضًا ضريبة بالنسبة المئوية ولكن استخدام النوع الثاني أو الثالث من الضريبة أفضل بالنسبة للضرائب المئوية لأن الطوابع الضريبية لا تقدم أي تقارير. يستخدم عدد قليل فقط من البلدان هذا النوع من الضرائب. +UseRevenueStamp=استخدم طابعًا ضريبيًا +UseRevenueStampExample=يتم تحديد قيمة الطابع الضريبي افتراضيًا في إعداد القواميس (%s - %s - %s) CalcLocaltax=تقارير عن الضرائب المحلية CalcLocaltax1=مبيعات - مشتريات CalcLocaltax1Desc=وتحسب تقارير الضرائب المحلية مع الفرق بين localtaxes المبيعات والمشتريات localtaxes @@ -1121,20 +1132,20 @@ CalcLocaltax2=مشتريات CalcLocaltax2Desc=تقارير الضرائب المحلية هي مجموعه localtaxes المشتريات CalcLocaltax3=مبيعات CalcLocaltax3Desc=تقارير الضرائب المحلية هي مجموعه localtaxes المبيعات -NoLocalTaxXForThisCountry=According to the setup of taxes (See %s - %s - %s), your country does not need to use such type of tax +NoLocalTaxXForThisCountry=وفقًا لإعداد الضرائب (انظر %s - %s - %s) ، لا يحتاج بلدك إلى استخدام مثل هذا النوع من الضرائب LabelUsedByDefault=العلامة التي يستخدمها التقصير إذا لم يمكن العثور على ترجمة للقانون LabelOnDocuments=علامة على وثائق -LabelOrTranslationKey=Label or translation key -ValueOfConstantKey=Value of a configuration constant -ConstantIsOn=Option %s is on -NbOfDays=No. of days +LabelOrTranslationKey=التسمية أو مفتاح الترجمة +ValueOfConstantKey=قيمة ثابت التكوين +ConstantIsOn=الخيار %s قيد التشغيل +NbOfDays=لا أيام AtEndOfMonth=في نهاية الشهر -CurrentNext=Current/Next +CurrentNext=يوم معين في الشهر Offset=ويقابل AlwaysActive=حركة دائمة Upgrade=ترقية MenuUpgrade=ترقية / توسيع -AddExtensionThemeModuleOrOther=Deploy/install external app/module +AddExtensionThemeModuleOrOther=نشر / تثبيت التطبيق / الوحدة الخارجية WebServer=خادم الويب DocumentRootServer=خادم الويب 'sالدليل الرئيسي DataRootServer=دليل ملفات البيانات @@ -1152,7 +1163,7 @@ DatabaseUser=قاعدة بيانات المستخدم DatabasePassword=قاعدة بيانات كلمة السر Tables=الجداول TableName=اسم الجدول -NbOfRecord=No. of records +NbOfRecord=عدد السجلات Host=الخادم DriverType=سائق نوع SummarySystem=نظام معلومات موجزة @@ -1164,17 +1175,17 @@ Skin=موضوع الجلد DefaultSkin=موضوع التقصير الجلد MaxSizeList=الحد الأقصى لطول قائمة DefaultMaxSizeList=افتراضي الطول الاقصى للقوائم -DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) +DefaultMaxSizeShortList=الطول الأقصى الافتراضي للقوائم القصيرة (أي في بطاقة العميل) MessageOfDay=رسالة اليوم MessageLogin=ادخل صفحة الرسالة -LoginPage=Login page -BackgroundImageLogin=Background image +LoginPage=صفحة تسجيل الدخول +BackgroundImageLogin=الصورة الخلفية PermanentLeftSearchForm=دائم البحث عن شكل القائمة اليمنى -DefaultLanguage=Default language -EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships -EnableShowLogo=Show the company logo in the menu +DefaultLanguage=اللغة الافتراضية +EnableMultilangInterface=قم بتمكين دعم متعدد اللغات للعلاقات مع العملاء أو البائعين +EnableShowLogo=إظهار شعار الشركة في القائمة CompanyInfo=الشركة | المؤسسة -CompanyIds=Company/Organization identities +CompanyIds=هويات الشركة / المنظمة CompanyName=اسم CompanyAddress=عنوان CompanyZip=الرمز البريدي @@ -1182,50 +1193,50 @@ CompanyTown=مدينة CompanyCountry=قطر CompanyCurrency=العملة الرئيسية CompanyObject=وجوه من الشركة -IDCountry=ID country +IDCountry=بلد الهوية Logo=شعار LogoDesc=الشعار الرئيسي للشركة . سوف يستخدم في الملفات المولدة (صيغة المستندات المتنقلة ....) -LogoSquarred=Logo (squarred) -LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into display setup). +LogoSquarred=الشعار (مربّع) +LogoSquarredDesc=يجب أن تكون أيقونة مربعة الشكل (العرض = الارتفاع). سيتم استخدام هذا الشعار كرمز مفضل أو حاجة أخرى مثل شريط القائمة العلوي (إذا لم يتم تعطيله في إعداد العرض). DoNotSuggestPaymentMode=لا توحي NoActiveBankAccountDefined=لا يعرف في حساب مصرفي نشط OwnerOfBankAccount=صاحب الحساب المصرفي %s BankModuleNotActive=الحسابات المصرفية وحدة لا يمكن -ShowBugTrackLink=Show the link "%s" -ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' +ShowBugTrackLink=أظهر الارتباط " %s " +ShowBugTrackLinkDesc=اتركه فارغًا لعدم عرض هذا الرابط ، استخدم القيمة 'github' للرابط إلى مشروع Dolibarr أو حدد عنوان url مباشرةً 'https: // ...' Alerts=تنبيهات -DelaysOfToleranceBeforeWarning=Displaying a warning alert for... -DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposal not closed -Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done -Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve -Delays_MAIN_DELAY_HOLIDAYS=Leave requests to approve -SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured. +DelaysOfToleranceBeforeWarning=يتم الآن عرض تنبيه تحذيري لـ ... +DelaysOfToleranceDesc=اضبط التأخير قبل ظهور رمز التنبيه %s على الشاشة للعنصر المتأخر. +Delays_MAIN_DELAY_ACTIONS_TODO=الأحداث المخطط لها (أحداث جدول الأعمال) لم تكتمل +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=المشروع لم يغلق في الوقت المناسب +Delays_MAIN_DELAY_TASKS_TODO=المهمة المخططة (مهام المشروع) لم تكتمل +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=الطلب لم تتم معالجته +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=لم تتم معالجة طلب الشراء +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=الاقتراح غير مغلق +Delays_MAIN_DELAY_PROPALS_TO_BILL=الاقتراح غير مفوتر +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=الخدمة للتفعيل +Delays_MAIN_DELAY_RUNNING_SERVICES=خدمة منتهية الصلاحية +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=فاتورة بائع غير مدفوعة +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=فاتورة العميل غير مدفوعة +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=في انتظار تسوية البنك +Delays_MAIN_DELAY_MEMBERS=رسوم العضوية المؤجلة +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=إيداع الشيكات لم يتم +Delays_MAIN_DELAY_EXPENSEREPORTS=تقرير المصروفات للموافقة عليه +Delays_MAIN_DELAY_HOLIDAYS=طلبات الإجازة للموافقة +SetupDescription1=قبل البدء في استخدام Dolibarr ، يجب تحديد بعض المعلمات الأولية وتمكين / تكوين الوحدات النمطية. SetupDescription2=القسمان التاليان إلزاميان (المدخلان الأولان في قائمة الإعداد): SetupDescription3= %s -> %s

    تُستخدم المعطيات الأساسية لتخصيص السلوك الافتراضي لتطبيقك (على سبيل المثال للميزات المتعلقة بالبلد). SetupDescription4= %s -> %s

    هذا البرنامج عبارة عن مجموعة من العديد من الوحدات | التطبيقات. يجب تمكين وتكوين الوحدات النمطية التى تحتاجها. ستظهر فى القائمة بعد تمكين هذه الوحدات. SetupDescription5=قائمة الإعدادات الأخرى تقوم بإدارة المعطيات الاختيارية. -SetupDescriptionLink=%s - %s -SetupDescription3b=Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4b=This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. -AuditedSecurityEvents=Security events that are audited -NoSecurityEventsAreAduited=No security events are audited. You can enable them from menu %s -Audit=Security events +SetupDescriptionLink= %s - %s +SetupDescription3b=المعلمات الأساسية المستخدمة لتخصيص السلوك الافتراضي لتطبيقك (مثل الميزات المتعلقة بالبلد). +SetupDescription4b=هذا البرنامج عبارة عن مجموعة من العديد من الوحدات / التطبيقات. يجب تمكين الوحدات النمطية المتعلقة باحتياجاتك وتكوينها. ستظهر إدخالات القائمة مع تنشيط هذه الوحدات. +AuditedSecurityEvents=الأحداث الأمنية التي يتم تدقيقها +NoSecurityEventsAreAduited=لم يتم تدقيق أي أحداث أمنية. يمكنك تمكينهم من القائمة %s +Audit=أحداث أمنية InfoDolibarr=حول دوليبار InfoBrowser=حول المتصفح -InfoOS=About OS +InfoOS=حول OS InfoWebServer=حول خادم الويب InfoDatabase=حول قاعدة البيانات InfoPHP=حول PHP @@ -1235,206 +1246,214 @@ BrowserName=اسم المتصفح BrowserOS=متصفح OS ListOfSecurityEvents=قائمة الأحداث الأمنية لدوليبار SecurityEventsPurged=تم إزالة الأحداث الأمنية +TrackableSecurityEvents=Trackable security events LogEventDesc=تمكين التسجيل لأحداث أمنية محددة. تسجيل المسؤولين عبر القائمة %s - %s . تحذير ، يمكن لهذه الميزة إنشاء كمية كبيرة من البيانات في قاعدة البيانات. AreaForAdminOnly=يمكن تعيين معطيات الإعدادات بواسطة المستخدم المسؤول فقط. SystemInfoDesc=معلومات النظام هي معلومات فنية متنوعة تحصل عليها في وضع القراءة فقط وتكون مرئية للمسؤولين فقط. SystemAreaForAdminOnly=هذه المنطقة متاحة للمستخدمين المسؤولين فقط. لا يمكن لأذونات مستخدم دوليبار تغيير هذا التقييد. CompanyFundationDesc=قم بتحرير معلومات شركتك | مؤسستك. ثم انقر فوق الزر "%s" في أسفل الصفحة عند الانتهاء. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. -AccountantFileNumber=Accountant code -DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. -AvailableModules=Available app/modules +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". +AccountantDesc=إذا كان لديك محاسب / محاسب خارجي ، يمكنك هنا تعديل المعلومات الخاصة به. +AccountantFileNumber=كود المحاسب +DisplayDesc=يمكن هنا تعديل المعلمات التي تؤثر على شكل التطبيق وطريقة عرضه. +AvailableModules=التطبيق / الوحدات المتاحة ToActivateModule=لتنشيط الوحدات ، انتقل إلى منطقة الإعدادات (الصفحة الرئيسية-> الإعدادات-> الوحدات النمطية). SessionTimeOut=نفذ وقت الجلسة -SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every %s/%s access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).
    Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is. -SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every %s seconds (= value of parameter session.gc_maxlifetime), so changing the value here has no effect. You must ask the server administrator to change session delay. +SessionExplanation=يضمن هذا الرقم أن الجلسة لن تنتهي أبدًا قبل هذا التأخير ، إذا تم إجراء منظف الجلسة بواسطة منظف جلسة PHP الداخلي (ولا شيء آخر). لا يضمن منظف جلسة PHP الداخلي انتهاء صلاحية الجلسة بعد هذا التأخير. ستنتهي صلاحيته ، بعد هذا التأخير ، وعندما يتم تشغيل منظف الجلسة ، لذلك كل %s / %s ، ولكن فقط أثناء الوصول الذي تم بواسطة جلسات أخرى (إذا كانت القيمة 0 ، فهذا يعني أن مسح الجلسة الخارجية يتم فقط عن طريق معالجة).
    ملاحظة: في بعض الخوادم المزودة بآلية تنظيف جلسة خارجية (cron under debian ، ubuntu ...) ، يمكن إتلاف الجلسات بعد فترة محددة بواسطة إعداد خارجي ، بغض النظر عن القيمة المدخلة هنا. +SessionsPurgedByExternalSystem=يبدو أنه تم تنظيف الجلسات على هذا الخادم بواسطة آلية خارجية (cron تحت debian ، ubuntu ...) ، ربما كل %s ثواني (= قيمة المعلمة جلسة. يجب أن تطلب من مسؤول الخادم تغيير تأخير الجلسة. TriggersAvailable=محفزات متاحة -TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...). +TriggersDesc=المشغلات هي ملفات من شأنها تعديل سلوك سير عمل Dolibarr بمجرد نسخها في الدليل htdocs / core / triggers . إنهم يدركون إجراءات جديدة ، يتم تنشيطها في أحداث Dolibarr (إنشاء شركة جديدة ، والتحقق من صحة الفاتورة ، ...). TriggerDisabledByName=يتم تعطيل المشغلات الموجودة في هذا الملف بواسطة اللاحقة -NORUN في أسمائها. TriggerDisabledAsModuleDisabled=المشغلات في هذا الملف معطلة لأن الوحدة النمطية %s معطلة. TriggerAlwaysActive=المشغلات في هذا الملف نشطة دائمًا ، مهما كانت وحدات دوليبار النشطة. TriggerActiveAsModuleActive=المشغلات في هذا الملف نشطة حيث تم تمكين الوحدة النمطية %s . GeneratedPasswordDesc=اختر الطريقة التي سيتم استخدامها لكلمات المرور التي يتم إنشاؤها تلقائيًا. -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting only. -MiscellaneousDesc=All other security related parameters are defined here. +DictionaryDesc=أدخل جميع البيانات المرجعية. يمكنك إضافة القيم الخاصة بك إلى الافتراضي. +ConstDesc=تتيح لك هذه الصفحة تحرير (تجاوز) المعلمات غير المتوفرة في الصفحات الأخرى. هذه معلمات محجوزة في الغالب للمطورين / استكشاف الأخطاء وإصلاحها المتقدمة فقط. +MiscellaneousDesc=يتم تعريف جميع المعلمات الأخرى المتعلقة بالأمان هنا. LimitsSetup=حدود / الدقيقة الإعداد -LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max. decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max. decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max. decimals for prices shown on screen. Add an ellipsis ... after this parameter (e.g. "2...") if you want to see "..." suffixed to the truncated price. -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +LimitsDesc=يمكنك تحديد الحدود والدقة والتحسينات التي تستخدمها Dolibarr هنا +MAIN_MAX_DECIMALS_UNIT=الأعلى. الكسور العشرية لأسعار الوحدات +MAIN_MAX_DECIMALS_TOT=الأعلى. الكسور العشرية لإجمالي الأسعار +MAIN_MAX_DECIMALS_SHOWN=الأعلى. الكسور العشرية للأسعار تظهر على الشاشة . أضف علامة حذف ... بعد هذه المعلمة (على سبيل المثال "2 ...") إذا كنت تريد مشاهدة " ... " ملحقًا بالسعر المقتطع. +MAIN_ROUNDING_RULE_TOT=خطوة نطاق التقريب (للبلدان التي يتم فيها التقريب على شيء آخر غير الأساس 10. على سبيل المثال ، ضع 0.05 إذا تم التقريب بمقدار 0.05 خطوة) UnitPriceOfProduct=صافي سعر وحدة من المنتج -TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding +TotalPriceAfterRounding=السعر الإجمالي (غير شامل / ضريبة القيمة المضافة / شامل الضريبة) بعد التقريب ParameterActiveForNextInputOnly=معلمة فعالة للمساهمة المقبل فقط -NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page. -NoEventFoundWithCriteria=No security event has been found for this search criteria. +NoEventOrNoAuditSetup=لم يتم تسجيل أي حدث أمان. يعد هذا أمرًا طبيعيًا إذا لم يتم تمكين التدقيق في صفحة "الإعداد - الأمان - الأحداث". +NoEventFoundWithCriteria=لم يتم العثور على حدث أمان لمعايير البحث هذه. SeeLocalSendMailSetup=انظر الى إرسال البريد الإعداد المحلي -BackupDesc=A complete backup of a Dolibarr installation requires two steps. -BackupDesc2=Backup the contents of the "documents" directory (%s) containing all uploaded and generated files. This will also include all the dump files generated in Step 1. This operation may last several minutes. -BackupDesc3=Backup the structure and contents of your database (%s) into a dump file. For this, you can use the following assistant. -BackupDescX=The archived directory should be stored in a secure place. +BackupDesc=يتطلب استكمال تثبيت Dolibarr خطوتين. +BackupDesc2=قم بعمل نسخة احتياطية من محتويات دليل "الوثائق" ( %s ) الذي يحتوي على كل الملفات التي تم تحميلها وتوليدها. سيشمل هذا أيضًا جميع ملفات التفريغ التي تم إنشاؤها في الخطوة 1. قد تستغرق هذه العملية عدة دقائق. +BackupDesc3=قم بعمل نسخة احتياطية من بنية قاعدة البيانات ومحتوياتها ( %s ) في ملف تفريغ. لهذا ، يمكنك استخدام المساعد التالي. +BackupDescX=يجب تخزين الدليل المؤرشف في مكان آمن. BackupDescY=وقد ولدت وينبغي التخلص من الملفات المخزنة في مكان آمن. -BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended. -RestoreDesc=To restore a Dolibarr backup, two steps are required. -RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (%s). -RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.
    To restore a backup database into this current installation, you can follow this assistant. +BackupPHPWarning=لا يمكن ضمان النسخ الاحتياطي بهذه الطريقة. أوصت واحدة سابقة. +RestoreDesc=لاستعادة نسخة احتياطية Dolibarr ، يلزم إجراء خطوتين. +RestoreDesc2=قم باستعادة ملف النسخ الاحتياطي (ملف مضغوط على سبيل المثال) لدليل "المستندات" إلى تثبيت Dolibarr جديد أو في دليل المستندات الحالي هذا ( %s ). +RestoreDesc3=قم باستعادة بنية قاعدة البيانات والبيانات من ملف تفريغ النسخ الاحتياطي إلى قاعدة بيانات تثبيت Dolibarr الجديد أو في قاعدة البيانات الخاصة بهذا التثبيت الحالي ( %s ). تحذير ، بمجرد اكتمال الاستعادة ، يجب عليك استخدام تسجيل الدخول / كلمة المرور ، التي كانت موجودة من وقت / تثبيت النسخ الاحتياطي للاتصال مرة أخرى.
    لاستعادة قاعدة بيانات نسخة احتياطية في التثبيت الحالي ، يمكنك اتباع هذا المساعد. RestoreMySQL=استيراد MySQL ForcedToByAModule=هذه القاعدة %s الى جانب تفعيل وحدة -ValueIsForcedBySystem=This value is forced by the system. You can't change it. -PreviousDumpFiles=Existing backup files -PreviousArchiveFiles=Existing archive files -WeekStartOnDay=First day of the week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s) +ValueIsForcedBySystem=هذه القيمة مفروضة من قبل النظام. لا يمكنك تغييره. +PreviousDumpFiles=ملفات النسخ الاحتياطي الموجودة +PreviousArchiveFiles=ملفات الأرشيف الموجودة +WeekStartOnDay=اول يوم من الاسبوع +RunningUpdateProcessMayBeRequired=يبدو أن تشغيل عملية الترقية مطلوب (إصدار البرنامج %s يختلف عن إصدار قاعدة البيانات %s) YouMustRunCommandFromCommandLineAfterLoginToUser=يجب تشغيل هذا الأمر من سطر الأوامر بعد تسجيل الدخول إلى قذيفة مع المستخدم %s أو يجب عليك إضافة خيار -w في نهاية سطر الأوامر لتوفير %s كلمة المرور. YourPHPDoesNotHaveSSLSupport=وظائف خدمة تصميم المواقع لا تتوفر في بي الخاص بك DownloadMoreSkins=مزيد من جلود بتحميل -SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset -SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset -ShowProfIdInAddress=Show professional ID with addresses -ShowVATIntaInAddress=Hide intra-Community VAT number +SimpleNumRefModelDesc=لعرض الرقم المرجعي بالتنسيق %syymm-nnnn حيث yy السنة و mm الشهر و nnnn هو رقم متسلسل يتزايد تلقائيًا بدون إعادة تعيين +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleNumRefNoDateModelDesc=إرجاع الرقم المرجعي بالتنسيق %s-nnnn حيث nnnn عبارة عن رقم تزايد تلقائي متسلسل بدون إعادة تعيين +ShowProfIdInAddress=إظهار الهوية المهنية مع العناوين +ShowVATIntaInAddress=إخفاء رقم ضريبة القيمة المضافة داخل المجتمع TranslationUncomplete=ترجمة جزئية -MAIN_DISABLE_METEO=Disable weather thumb -MeteoStdMod=Standard mode -MeteoStdModEnabled=Standard mode enabled -MeteoPercentageMod=Percentage mode -MeteoPercentageModEnabled=Percentage mode enabled -MeteoUseMod=Click to use %s +MAIN_DISABLE_METEO=تعطيل الإبهام الطقس +MeteoStdMod=الوضع القياسي +MeteoStdModEnabled=تم تمكين الوضع القياسي +MeteoPercentageMod=وضع النسبة المئوية +MeteoPercentageModEnabled=تم تفعيل وضع النسبة المئوية +MeteoUseMod=انقر لاستخدام %s TestLoginToAPI=اختبار الدخول إلى API -ProxyDesc=Some features of Dolibarr require internet access. Define here the internet connection parameters such as access through a proxy server if necessary. -ExternalAccess=External/Internet Access -MAIN_PROXY_USE=Use a proxy server (otherwise access is direct to the internet) -MAIN_PROXY_HOST=Proxy server: Name/Address -MAIN_PROXY_PORT=Proxy server: Port -MAIN_PROXY_USER=Proxy server: Login/User -MAIN_PROXY_PASS=Proxy server: Password -DefineHereComplementaryAttributes=Define any additional / custom attributes that must be added to: %s +ProxyDesc=تتطلب بعض ميزات Dolibarr الوصول إلى الإنترنت. حدد هنا معلمات الاتصال بالإنترنت مثل الوصول من خلال خادم وكيل إذا لزم الأمر. +ExternalAccess=الوصول الخارجي / الإنترنت +MAIN_PROXY_USE=استخدم خادمًا وكيلاً (وإلا فسيكون الوصول مباشرًا إلى الإنترنت) +MAIN_PROXY_HOST=الخادم الوكيل: الاسم / العنوان +MAIN_PROXY_PORT=الخادم الوكيل: المنفذ +MAIN_PROXY_USER=الخادم الوكيل: تسجيل الدخول / المستخدم +MAIN_PROXY_PASS=الخادم الوكيل: كلمة المرور +DefineHereComplementaryAttributes=حدد أي سمات إضافية / مخصصة يجب إضافتها إلى: %s ExtraFields=تكميلية سمات ExtraFieldsLines=سمات التكميلية (خطوط) -ExtraFieldsLinesRec=Complementary attributes (templates invoices lines) +ExtraFieldsLinesRec=السمات التكميلية (قوالب سطور الفواتير) ExtraFieldsSupplierOrdersLines=سمات التكميلية (خطوط النظام) ExtraFieldsSupplierInvoicesLines=سمات التكميلية (خطوط الفاتورة) -ExtraFieldsThirdParties=Complementary attributes (third party) -ExtraFieldsContacts=Complementary attributes (contacts/address) +ExtraFieldsThirdParties=السمات التكميلية (طرف ثالث) +ExtraFieldsContacts=السمات التكميلية (جهات الاتصال / العنوان) ExtraFieldsMember=سمات التكميلية (عضو) ExtraFieldsMemberType=سمات التكميلية (النوع الأعضاء) ExtraFieldsCustomerInvoices=سمات التكميلية (الفواتير) -ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices) +ExtraFieldsCustomerInvoicesRec=السمات التكميلية (قوالب الفواتير) ExtraFieldsSupplierOrders=سمات التكميلية (أوامر) ExtraFieldsSupplierInvoices=سمات التكميلية (الفواتير) ExtraFieldsProject=سمات التكميلية (مشاريع) ExtraFieldsProjectTask=سمات التكميلية (المهام) -ExtraFieldsSalaries=Complementary attributes (salaries) +ExtraFieldsSalaries=سمات تكميلية (رواتب) ExtraFieldHasWrongValue=السمة %s له قيمة خاطئة. AlphaNumOnlyLowerCharsAndNoSpace=alphanumericals فقط وشخصيات الحالة الأدنى دون الفضاء SendmailOptionNotComplete=تحذير، في بعض أنظمة لينكس، لإرسال البريد الإلكتروني من البريد الإلكتروني الخاص بك، يجب أن تنسخ الإعداد تنفيذ conatins الخيار، على درجة البكالوريوس (mail.force_extra_parameters المعلمة في ملف php.ini الخاص بك). إذا كان بعض المستفيدين لم تلقي رسائل البريد الإلكتروني، في محاولة لتعديل هذه المعلمة PHP مع mail.force_extra_parameters =-BA). PathToDocuments=الطريق إلى وثائق PathDirectory=دليل -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set the display language:
    * Default/Systemwide: menu Home -> Setup -> Display
    * Per user: Click on the username at the top of the screen and modify the User Display Setup tab on the user card. -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

    %s -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exist in any language files -TitleNumberOfActivatedModules=Activated modules -TotalNumberOfActivatedModules=Activated modules: %s / %s +SendmailOptionMayHurtBuggedMTA=ستؤدي ميزة إرسال رسائل البريد باستخدام الطريقة "PHP mail Direct" إلى إنشاء رسالة بريد قد لا يتم تحليلها بشكل صحيح بواسطة بعض خوادم البريد المستقبلة. والنتيجة هي أن بعض الرسائل لا يمكن قراءتها من قبل الأشخاص الذين تستضيفهم تلك المنصات التي تم التنصت عليها. هذا هو الحال بالنسبة لبعض مزودي خدمة الإنترنت (على سبيل المثال: Orange في فرنسا). هذه ليست مشكلة في Dolibarr أو PHP ولكن مع خادم البريد المستلم. ومع ذلك ، يمكنك إضافة خيار MAIN_FIX_FOR_BUGGED_MTA إلى 1 في الإعداد - أخرى لتعديل Dolibarr لتجنب ذلك. ومع ذلك ، قد تواجه مشكلات مع الخوادم الأخرى التي تستخدم معيار SMTP بدقة. الحل الآخر (موصى به) هو استخدام طريقة "SMTP socket library" التي ليس لها عيوب. +TranslationSetup=إعداد الترجمة +TranslationKeySearch=ابحث عن مفتاح ترجمة أو سلسلة +TranslationOverwriteKey=الكتابة فوق سلسلة الترجمة +TranslationDesc=كيفية ضبط لغة العرض:
    * الافتراضي / على مستوى النظام: القائمة الصفحة الرئيسية -> الإعداد -> عرض
    * لكل مستخدم: انقر فوق اسم المستخدم في الجزء العلوي من الشاشة وقم بتعديل علامة التبويب a0eb7843947 المستخدم بطاقة. +TranslationOverwriteDesc=يمكنك أيضًا تجاوز السلاسل التي تملأ الجدول التالي. اختر لغتك من القائمة المنسدلة "%s" ، أدخل سلسلة مفتاح الترجمة في "%s" وترجمتك الجديدة إلى "%s" +TranslationOverwriteDesc2=يمكنك استخدام علامة التبويب الأخرى لمساعدتك في معرفة مفتاح الترجمة الذي يجب استخدامه +TranslationString=سلسلة الترجمة +CurrentTranslationString=سلسلة الترجمة الحالية +WarningAtLeastKeyOrTranslationRequired=مطلوب معايير بحث على الأقل للمفتاح أو سلسلة الترجمة +NewTranslationStringToShow=سلسلة ترجمة جديدة للعرض +OriginalValueWas=تمت الكتابة فوق الترجمة الأصلية. كانت القيمة الأصلية:

    %s +TransKeyWithoutOriginalValue=لقد فرضت ترجمة جديدة لمفتاح الترجمة ' %s ' غير موجود في أي ملفات لغة +TitleNumberOfActivatedModules=الوحدات المفعلة +TotalNumberOfActivatedModules=الوحدات المنشطة: %s / %s YouMustEnableOneModule=يجب على الأقل تمكين 1 وحدة -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation -ClassNotFoundIntoPathWarning=Class %s not found in PHP path +YouMustEnableTranslationOverwriteBefore=يجب عليك أولاً تمكين الكتابة فوق الترجمة للسماح لك باستبدال الترجمة +ClassNotFoundIntoPathWarning=الفئة %s غير موجودة في مسار PHP YesInSummer=نعم في الصيف -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=لاحظ أن الوحدات النمطية التالية فقط متاحة للمستخدمين الخارجيين (بغض النظر عن أذونات هؤلاء المستخدمين) وفقط في حالة منح الأذونات:
    SuhosinSessionEncrypt=تخزين جلسة المشفرة بواسطة Suhosin ConditionIsCurrently=الشرط هو حاليا %s -YouUseBestDriver=You use driver %s which is the best driver currently available. -YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. -ComboListOptim=Combo list loading optimization +YouUseBestDriver=أنت تستخدم برنامج التشغيل %s وهو أفضل برنامج تشغيل متوفر حاليًا. +YouDoNotUseBestDriver=يمكنك استخدام برنامج التشغيل %s ولكن يوصى باستخدام برنامج التشغيل %s. +NbOfObjectIsLowerThanNoPb=لديك فقط %s %s في قاعدة البيانات. هذا لا يتطلب أي تحسين معين. +ComboListOptim=التحسين تحميل قائمة التحرير والسرد SearchOptim=البحث الأمثل -YouHaveXObjectUseComboOptim=You have %s %s in the database. You can go into setup of module to enable loading of combo list on key pressed event. -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. -YouHaveXObjectUseSearchOptimDesc=This limits the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. -YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to %s in Home-Setup-Other. -BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. -BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. -PHPModuleLoaded=PHP component %s is loaded -PreloadOPCode=Preloaded OPCode is used -AddRefInList=Display Customer/Vendor ref. into combo lists.
    Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp". -AddVatInList=Display Customer/Vendor VAT number into combo lists. -AddAdressInList=Display Customer/Vendor adress into combo lists.
    Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp". -AddEmailPhoneTownInContactList=Display Contact email (or phones if not defined) and town info list (select list or combobox)
    Contacts will appear with a name format of "Dupond Durand - dupond.durand@email.com - Paris" or "Dupond Durand - 06 07 59 65 66 - Paris" instead of "Dupond Durand". -AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. +YouHaveXObjectUseComboOptim=لديك %s %s في قاعدة البيانات. يمكنك الانتقال إلى إعداد الوحدة لتمكين تحميل قائمة التحرير والسرد عند الضغط على مفتاح الحدث. +YouHaveXObjectUseSearchOptim=لديك %s %s في قاعدة البيانات. يمكنك إضافة الثابت %s إلى 1 في Home-Setup-Other. +YouHaveXObjectUseSearchOptimDesc=هذا يقصر البحث على بداية السلاسل مما يجعل من الممكن لقاعدة البيانات استخدام الفهارس ويجب أن تحصل على استجابة فورية. +YouHaveXObjectAndSearchOptimOn=لديك %s %s في قاعدة البيانات ويتم تعيين ثابت %s على %s في Home-Setup-Other. +BrowserIsOK=أنت تستخدم متصفح الويب %s. هذا المتصفح مناسب للأمان والأداء. +BrowserIsKO=أنت تستخدم متصفح الويب %s. يُعرف هذا المتصفح بأنه اختيار سيئ للأمان والأداء والموثوقية. نوصي باستخدام Firefox أو Chrome أو Opera أو Safari. +PHPModuleLoaded=تم تحميل مكون PHP %s +PreloadOPCode=يتم استخدام OPCode مسبقة التحميل +AddRefInList=عرض مرجع العميل / البائع. في قوائم التحرير والسرد.
    ستظهر الجهات الخارجية بتنسيق اسم "CC12345 - SC45678 - The Big Company corp." بدلاً من "The Big Company Corp". +AddVatInList=عرض رقم ضريبة القيمة المضافة للعميل / البائع في قوائم التحرير والسرد. +AddAdressInList=عرض عنوان العميل / البائع في قوائم التحرير والسرد.
    ستظهر الجهات الخارجية بتنسيق اسم "The Big Company corp. - 21 jump street 123456 Big town - USA" بدلاً من "The Big Company corp". +AddEmailPhoneTownInContactList=عرض البريد الإلكتروني لجهة الاتصال (أو الهواتف إذا لم يتم تحديدها) وقائمة معلومات المدينة (قائمة محددة أو مربع تحرير وسرد)
    ستظهر جهات الاتصال بتنسيق اسم "Dupond Durand - dupond.durand@email.com - Paris" أو "Dupond Durand - 06 07 59 65 66 - باريس بدلاً من "دوبوند دوراند". +AskForPreferredShippingMethod=اسأل عن طريقة الشحن المفضلة للأطراف الثالثة. FieldEdition=طبعة من ميدان%s FillThisOnlyIfRequired=مثال: +2 (ملء إلا إذا تعوض توقيت المشاكل من ذوي الخبرة) GetBarCode=الحصول على الباركود -NumberingModules=Numbering models -DocumentModules=Document models +NumberingModules=نماذج الترقيم +DocumentModules=نماذج الوثائق ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. +PasswordGenerationNone=لا تقترح كلمة مرور تم إنشاؤها. يجب كتابة كلمة المرور يدويًا. PasswordGenerationPerso=ترجع كلمة المرور الخاصة بك وفقا لتكوين المعرفة شخصيا. SetupPerso=وفقا لتكوين الخاصة بك PasswordPatternDesc=وصف نمط كلمة المرور ##### Users setup ##### -RuleForGeneratedPasswords=Rules to generate and validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page +RuleForGeneratedPasswords=قواعد لتوليد والتحقق من صحة كلمات المرور +DisableForgetPasswordLinkOnLogonPage=لا تعرض رابط "نسيت كلمة المرور" في صفحة تسجيل الدخول UsersSetup=شاهد الإعداد وحدة -UserMailRequired=Email required to create a new user -UserHideInactive=Hide inactive users from all combo lists of users (Not recommended: this may means you won't be able to filter or search on old users on some pages) -UsersDocModules=Document templates for documents generated from user record -GroupsDocModules=Document templates for documents generated from a group record +UserMailRequired=البريد الإلكتروني مطلوب لإنشاء مستخدم جديد +UserHideInactive=إخفاء المستخدمين غير النشطين من جميع قوائم التحرير والسرد للمستخدمين (غير مستحسن: قد يعني هذا أنك لن تتمكن من التصفية أو البحث عن المستخدمين القدامى في بعض الصفحات) +UsersDocModules=قوالب المستندات للمستندات التي تم إنشاؤها من سجل المستخدم +GroupsDocModules=قوالب المستندات للمستندات التي تم إنشاؤها من سجل المجموعة ##### HRM setup ##### HRMSetup=HRM وحدة الإعداد ##### Company setup ##### CompanySetup=وحدة الإعداد للشركات -CompanyCodeChecker=Options for automatic generation of customer/vendor codes -AccountCodeManager=Options for automatic generation of customer/vendor accounting codes -NotificationsDesc=Email notifications can be sent automatically for some Dolibarr events.
    Recipients of notifications can be defined: -NotificationsDescUser=* per user, one user at a time. -NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time. -NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. -ModelModules=Document Templates -DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) +CompanyCodeChecker=خيارات الإنشاء التلقائي لرموز العملاء / البائعين +AccountCodeManager=خيارات الإنشاء التلقائي لأكواد محاسبة العملاء / البائعين +NotificationsDesc=يمكن إرسال إشعارات البريد الإلكتروني تلقائيًا لبعض أحداث Dolibarr.
    يمكن تحديد مستلمي الإخطارات: +NotificationsDescUser=* لكل مستخدم ، مستخدم واحد في كل مرة. +NotificationsDescContact=* لكل جهات اتصال خارجية (عملاء أو بائعين) ، جهة اتصال واحدة في كل مرة. +NotificationsDescGlobal=* أو عن طريق تعيين عناوين البريد الإلكتروني العمومية في صفحة الإعداد للوحدة. +ModelModules=قوالب المستندات +DocumentModelOdt=إنشاء المستندات من قوالب OpenDocument (ملفات .ODT / .ODS من LibreOffice ، OpenOffice ، KOffice ، TextEdit ، ...) WatermarkOnDraft=علامة مائية على مشروع الوثيقة JSOnPaimentBill=ميزة تفعيل لتدوين كلمات خطوط المبلغ على شكل دفع -CompanyIdProfChecker=Rules for Professional IDs -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? -MustBeInvoiceMandatory=Mandatory to validate invoices? -TechnicalServicesProvided=Technical services provided +CompanyIdProfChecker=قواعد معرفات المحترفين +MustBeUnique=هل يجب أن تكون فريدة من نوعها؟ +MustBeMandatory=إلزامي لإنشاء أطراف ثالثة (إذا تم تحديد رقم ضريبة القيمة المضافة أو نوع الشركة)؟ +MustBeInvoiceMandatory=إلزامي للتحقق من صحة الفواتير؟ +TechnicalServicesProvided=الخدمات الفنية المقدمة #####DAV ##### -WebDAVSetupDesc=This is the link to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that needs an existing login account/password for access. -WebDavServer=Root URL of %s server: %s +WebDAVSetupDesc=هذا هو الرابط للوصول إلى دليل WebDAV. يحتوي على dir "عام" مفتوح لأي مستخدم يعرف عنوان URL (إذا كان الوصول إلى الدليل العام مسموحًا به) ودليل "خاص" يحتاج إلى حساب تسجيل دخول موجود / كلمة مرور للوصول. +WebDavServer=عنوان URL الجذر لخادم %s: %s ##### Webcal setup ##### WebCalUrlForVCalExport=تصدير صلة %s شكل متاح على الوصلة التالية : %s ##### Invoices ##### BillsSetup=وحدة إعداد الفواتير BillsNumberingModule=الفواتير والقروض وتلاحظ وحدة الترقيم BillsPDFModules=فاتورة نماذج الوثائق -BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type -PaymentsPDFModules=Payment documents models +BillsPDFModulesAccordindToInvoiceType=نماذج مستندات الفاتورة حسب نوع الفاتورة +PaymentsPDFModules=نماذج مستندات الدفع ForceInvoiceDate=قوة تاريخ الفاتورة تاريخ المصادقة على -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined on the invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdrawal on account -SuggestPaymentByChequeToAddress=Suggest payment by check to +SuggestedPaymentModesIfNotDefinedInInvoice=وضع المدفوعات المقترح على الفاتورة بشكل افتراضي إذا لم يتم تحديده في الفاتورة +SuggestPaymentByRIBOnAccount=اقترح الدفع عن طريق السحب على الحساب +SuggestPaymentByChequeToAddress=اقترح الدفع بشيك ل FreeLegalTextOnInvoices=نص حر على الفواتير WatermarkOnDraftInvoices=العلامة المائية على مشروع الفواتير (أي إذا فارغ) PaymentsNumberingModule=المدفوعات نموذج الترقيم SuppliersPayment=مدفوعات الموردين -SupplierPaymentSetup=Vendor payments setup -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +SupplierPaymentSetup=إعداد مدفوعات البائعين +InvoiceCheckPosteriorDate=تحقق من تاريخ التجهيز قبل المصادقة +InvoiceCheckPosteriorDateHelp=يُمنع التحقق من صحة الفاتورة إذا كان تاريخها سابقًا لتاريخ آخر فاتورة من نفس النوع. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=وحدة إعداد مقترحات تجارية ProposalsNumberingModules=اقتراح نماذج تجارية الترقيم ProposalsPDFModules=اقتراح نماذج الوثائق التجارية -SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined on the proposal +SuggestedPaymentModesIfNotDefinedInProposal=وضع المدفوعات المقترح عند الاقتراح بشكل افتراضي إذا لم يتم تحديده في الاقتراح FreeLegalTextOnProposal=نص تجارية حرة على مقترحات WatermarkOnDraftProposal=العلامة المائية على مشاريع المقترحات التجارية (أي إذا فارغ) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=اسأل عن وجهة الحساب المصرفي للاقتراح @@ -1447,10 +1466,10 @@ WatermarkOnDraftSupplierProposal=العلامة المائية على مشروع BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=اسأل عن وجهة الحساب المصرفي للطلب السعر WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=طلب مستودع المصدر لأمر ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=اسأل عن وجهة الحساب المصرفي لأمر الشراء ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order -OrdersSetup=Sales Orders management setup +SuggestedPaymentModesIfNotDefinedInOrder=وضع المدفوعات المقترح في أمر المبيعات بشكل افتراضي إذا لم يتم تحديده في الأمر +OrdersSetup=إعداد إدارة أوامر المبيعات OrdersNumberingModules=أوامر الترقيم نمائط OrdersModelModule=وثائق من أجل النماذج FreeLegalTextOnOrders=بناء على أوامر النص الحر @@ -1472,13 +1491,14 @@ WatermarkOnDraftContractCards=العلامة المائية على مسودات ##### Members ##### MembersSetup=أعضاء وحدة الإعداد MemberMainOptions=الخيارات الرئيسية +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= إدارة تسجيل الدخول لكل عضو -AdherentMailRequired=Email required to create a new member +AdherentMailRequired=البريد الإلكتروني مطلوب لإنشاء عضو جديد MemberSendInformationByMailByDefault=مربع لإرسال الرسائل للأعضاء تأكيدا على افتراضي -MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes -MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. -MembersDocModules=Document templates for documents generated from member record +MemberCreateAnExternalUserForSubscriptionValidated=قم بإنشاء تسجيل دخول مستخدم خارجي لكل اشتراك عضو جديد تم التحقق من صحته +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes +MEMBER_REMINDER_EMAIL=قم بتمكين التذكير التلقائي عبر البريد الإلكتروني بالاشتراكات منتهية الصلاحية. ملاحظة: يجب تمكين الوحدة النمطية %s وإعدادها بشكل صحيح لإرسال التذكيرات. +MembersDocModules=قوالب المستندات للوثائق التي تم إنشاؤها من سجل الأعضاء ##### LDAP setup ##### LDAPSetup=LDAP الإعداد LDAPGlobalParameters=المعايير العالمية @@ -1496,17 +1516,17 @@ LDAPSynchronizeUsers=تزامن Dolibarr المستخدمين LDAP LDAPSynchronizeGroups=تزامن مع Dolibarr مجموعات LDAP LDAPSynchronizeContacts=تزامن Dolibarr اتصالات مع LDAP LDAPSynchronizeMembers=التزامن بين أعضاء المؤسسة وحدة Dolibarr مع LDAP -LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP +LDAPSynchronizeMembersTypes=تنظيم أنواع أعضاء المؤسسة في LDAP LDAPPrimaryServer=الخادم الرئيسي LDAPSecondaryServer=ثانوية الخادم LDAPServerPort=خادم الميناء -LDAPServerPortExample=Standard or StartTLS: 389, LDAPs: 636 +LDAPServerPortExample=قياسي أو StartTLS: 389 ، LDAPs: 636 LDAPServerProtocolVersion=بروتوكول النسخة LDAPServerUseTLS=استخدام TLS -LDAPServerUseTLSExample=Your LDAP server use StartTLS +LDAPServerUseTLSExample=يستخدم خادم LDAP الخاص بك StartTLS LDAPServerDn=خادم DN LDAPAdminDn=مدير DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) +LDAPAdminDnExample=DN الكامل (على سبيل المثال: cn = admin ، dc = example ، dc = com أو cn = Administrator ، cn = Users ، dc = example ، dc = com للدليل النشط) LDAPPassword=مدير البرنامج كلمة السر LDAPUserDn=المستخدمين DN LDAPUserDnExample=Complete DN (ex: ou=users,dc=society,dc=DN الكامل (مثلا : où= المستخدمين ، العاصمة= المجتمع ، العاصمة= كوم) @@ -1520,7 +1540,7 @@ LDAPDnContactActive=اتصالات تزامن LDAPDnContactActiveExample=تنشيط / تعطيل التزامن LDAPDnMemberActive=أعضاء تزامن LDAPDnMemberActiveExample=تنشيط / تعطيل التزامن -LDAPDnMemberTypeActive=Members types' synchronization +LDAPDnMemberTypeActive=مزامنة أنواع الأعضاء LDAPDnMemberTypeActiveExample=تنشيط / تعطيل التزامن LDAPContactDn=Dolibarr اتصالات 'DN LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=DN الكامل (مثلا : où= اتصالات العاصمة= المجتمع ، العاصمة= كوم) @@ -1528,8 +1548,8 @@ LDAPMemberDn=Dolibarr الأعضاء DN LDAPMemberDnExample=Complete DN (ex: ou=members,dc=society,dc=DN الكامل (مثلا : où= أعضاء العاصمة= المجتمع ، العاصمة= كوم) LDAPMemberObjectClassList=قائمة objectClass LDAPMemberObjectClassListExample=قائمة objectClass سجل تحديد السمات (مثلا : قمة inetOrgPerson أو أعلى ، لالنشط دليل المستخدم) -LDAPMemberTypeDn=Dolibarr members types DN -LDAPMemberTypepDnExample=Complete DN (ex: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeDn=أنواع أعضاء Dolibarr DN +LDAPMemberTypepDnExample=DN الكامل (على سبيل المثال: ou = أنواع الأعضاء ، dc = مثال ، dc = com) LDAPMemberTypeObjectClassList=قائمة objectClass LDAPMemberTypeObjectClassListExample=قائمة objectClass سجل تحديد السمات (مثلا : قمة groupOfUniqueNames) LDAPUserObjectClassList=قائمة objectClass @@ -1543,125 +1563,125 @@ LDAPTestSynchroContact=اختبار الاتصال 'sالتزامن LDAPTestSynchroUser=تجربة المستخدم التزامن LDAPTestSynchroGroup=اختبار المجموعة التزامن LDAPTestSynchroMember=اختبار العضو التزامن -LDAPTestSynchroMemberType=Test member type synchronization +LDAPTestSynchroMemberType=اختبار مزامنة نوع العضو LDAPTestSearch= اختبار البحث LDAP LDAPSynchroOK=تزامن اختبار ناجح LDAPSynchroKO=فشل تزامن الاختبار -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates +LDAPSynchroKOMayBePermissions=فشل اختبار المزامنة. تحقق من تكوين الاتصال بالخادم بشكل صحيح ويسمح بتحديثات LDAP LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP ناجحة (٪ ق= خادم بورت= ٪) LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP فشل (خادم ق= ٪ بورت= ٪) -LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindOK=نجح الاتصال / المصادقة على خادم LDAP (الخادم = %s ، المنفذ = %s ، المسؤول = %s ، كلمة المرور = %s) +LDAPBindKO=فشل الاتصال / المصادقة بخادم LDAP (الخادم = %s ، المنفذ = %s ، المسؤول = %s ، كلمة المرور = %s) LDAPSetupForVersion3=خادم LDAP تهيئتها للنسخة 3 LDAPSetupForVersion2=خادم LDAP لتكوين نسخة 2 LDAPDolibarrMapping=Dolibarr رسم الخرائط LDAPLdapMapping=LDAP الخرائط LDAPFieldLoginUnix=ادخل (يونكس) -LDAPFieldLoginExample=Example: uid +LDAPFieldLoginExample=مثال: uid LDAPFilterConnection=البحث عن مرشح -LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) -LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) +LDAPFilterConnectionExample=مثال: & (objectClass = inetOrgPerson) +LDAPGroupFilterExample=مثال: & (objectClass = groupOfUsers) LDAPFieldLoginSamba=ادخل (سامبا ، activedirectory) -LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldLoginSambaExample=مثال: samaccountname LDAPFieldFullname=الاسم الكامل -LDAPFieldFullnameExample=Example: cn -LDAPFieldPasswordNotCrypted=Password not encrypted -LDAPFieldPasswordCrypted=Password encrypted -LDAPFieldPasswordExample=Example: userPassword -LDAPFieldCommonNameExample=Example: cn +LDAPFieldFullnameExample=مثال: cn +LDAPFieldPasswordNotCrypted=كلمة المرور غير مشفرة +LDAPFieldPasswordCrypted=تشفير كلمة المرور +LDAPFieldPasswordExample=مثال: userPassword +LDAPFieldCommonNameExample=مثال: cn LDAPFieldName=اسم -LDAPFieldNameExample=Example: sn +LDAPFieldNameExample=مثال: sn LDAPFieldFirstName=الاسم الأول -LDAPFieldFirstNameExample=Example: givenName +LDAPFieldFirstNameExample=مثال: الاسم المعطى LDAPFieldMail=عنوان البريد الإلكتروني -LDAPFieldMailExample=Example: mail +LDAPFieldMailExample=مثال: mail LDAPFieldPhone=رقم الهاتف المهني -LDAPFieldPhoneExample=Example: telephonenumber +LDAPFieldPhoneExample=مثال: رقم الهاتف LDAPFieldHomePhone=رقم الهاتف الشخصي -LDAPFieldHomePhoneExample=Example: homephone +LDAPFieldHomePhoneExample=مثال: هاتف منزلي LDAPFieldMobile=الهاتف الخليوي -LDAPFieldMobileExample=Example: mobile +LDAPFieldMobileExample=مثال: جوّال LDAPFieldFax=رقم الفاكس -LDAPFieldFaxExample=Example: facsimiletelephonenumber +LDAPFieldFaxExample=مثال: facsimiletelephonenumber LDAPFieldAddress=الشارع -LDAPFieldAddressExample=Example: street +LDAPFieldAddressExample=مثال: شارع LDAPFieldZip=الرمز البريدي -LDAPFieldZipExample=Example: postalcode +LDAPFieldZipExample=مثال: الرمز البريدي LDAPFieldTown=بلدة -LDAPFieldTownExample=Example: l +LDAPFieldTownExample=مثال: ل LDAPFieldCountry=قطر LDAPFieldDescription=وصف -LDAPFieldDescriptionExample=Example: description +LDAPFieldDescriptionExample=مثال: الوصف LDAPFieldNotePublic=ملاحظة عامة -LDAPFieldNotePublicExample=Example: publicnote +LDAPFieldNotePublicExample=مثال: publicnote LDAPFieldGroupMembers= أعضاء الفريق -LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldGroupMembersExample= مثال: فريد عضو LDAPFieldBirthdate=تاريخ الميلاد LDAPFieldCompany=شركة -LDAPFieldCompanyExample=Example: o +LDAPFieldCompanyExample=مثال: o LDAPFieldSid=سيد -LDAPFieldSidExample=Example: objectsid +LDAPFieldSidExample=على سبيل المثال: objectid LDAPFieldEndLastSubscription=تاريخ انتهاء الاكتتاب LDAPFieldTitle=الوظيفه LDAPFieldTitleExample=مثال: اللقب -LDAPFieldGroupid=Group id -LDAPFieldGroupidExample=Exemple : gidnumber -LDAPFieldUserid=User id -LDAPFieldUseridExample=Exemple : uidnumber -LDAPFieldHomedirectory=Home directory -LDAPFieldHomedirectoryExample=Exemple : homedirectory -LDAPFieldHomedirectoryprefix=Home directory prefix +LDAPFieldGroupid=معرف مجموعة +LDAPFieldGroupidExample=مثال: gidnumber +LDAPFieldUserid=معرف المستخدم +LDAPFieldUseridExample=مثال: uidnumber +LDAPFieldHomedirectory=الدليل الرئيسي +LDAPFieldHomedirectoryExample=مثال: دليل منزلي +LDAPFieldHomedirectoryprefix=بادئة الدليل الرئيسي LDAPSetupNotComplete=LDAP الإعداد غير كاملة (على آخرين علامات التبويب) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=أي مدير أو كلمة السر. LDAP الوصول مجهولة وسيكون في قراءة فقط. LDAPDescContact=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr الاتصالات. LDAPDescUsers=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr المستخدمين. LDAPDescGroups=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr. LDAPDescMembers=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr أعضاء الوحدة. -LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members types. +LDAPDescMembersTypes=تسمح لك هذه الصفحة بتعريف اسم سمات LDAP في شجرة LDAP لكل بيانات موجودة في أنواع أعضاء Dolibarr. LDAPDescValues=مثال قيم تهدف لOpenLDAP مع مخططات بعد تحميلها : core.schema ، cosine.schema ، inetorgperson.schema). إذا كنت تستخدم thoose القيم وOpenLDAP تعديل LDAP الخاص بك ملف slapd.conf لجميع مخططات thoose تحميله. ForANonAnonymousAccess=لصحتها accès (لكتابة الحصول على سبيل المثال) PerfDolibarr=الإعداد أداء / تحسين تقرير -YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance. -NotInstalled=Not installed. -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. +YouMayFindPerfAdviceHere=تقدم هذه الصفحة بعض الفحوصات أو النصائح المتعلقة بالأداء. +NotInstalled=غير مثبت. +NotSlowedDownByThis=لا تبطئ من قبل هذا. +NotRiskOfLeakWithThis=لا يوجد خطر تسرب مع هذا. ApplicativeCache=مخبأ تطبيقي MemcachedNotAvailable=لم يتم العثور على مخبأ تطبيقي. يمكنك تحسين الأداء عن طريق تثبيت أعطها مخبأ خادم وحدة قادرة على استخدام هذا الخادم ذاكرة التخزين المؤقت.
    مزيد من المعلومات هنا http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    لاحظ أن الكثير من مزود استضافة المواقع لا توفر مثل هذا الخادم ذاكرة التخزين المؤقت. MemcachedModuleAvailableButNotSetup=وحدة أعطها لمخبأ تطبيقي وجدت ولكن الإعداد من وحدة ليست كاملة. MemcachedAvailableAndSetup=يتم تمكين أعطها حدة مخصصة لاستخدام الخادم أعطها. OPCodeCache=مخبأ شفرة التشغيل -NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad). +NoOPCodeCacheFound=لم يتم العثور على مخبأ OPCode. ربما تستخدم ذاكرة تخزين مؤقت OPCode بخلاف XCache أو eAccelerator (جيد) ، أو ربما ليس لديك ذاكرة تخزين مؤقت OPCode (سيئة للغاية). HTTPCacheStaticResources=مخبأ HTTP للموارد ثابتة (المغلق، IMG، وجافا سكريبت) FilesOfTypeCached=يتم التخزين المؤقت الملفات من نوع%s من قبل خادم HTTP FilesOfTypeNotCached=لا يتم التخزين المؤقت الملفات من نوع %s من قبل خادم HTTP FilesOfTypeCompressed=يتم ضغط الملفات من نوع %s من قبل خادم HTTP FilesOfTypeNotCompressed=لا يتم ضغط الملفات من نوع %s من قبل خادم HTTP CacheByServer=ذاكرة التخزين المؤقت من قبل خادم -CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=على سبيل المثال ، باستخدام توجيه Apache "ExpiresByType image / gif A2592000" CacheByClient=الذاكرة المخبئية من خلال متصفح CompressionOfResources=ضغط الردود HTTP -CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=على سبيل المثال باستخدام توجيه Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=مثل هذا الكشف التلقائي غير ممكن مع المتصفحات الحالية -DefaultValuesDesc=Here you may define the default value you wish to use when creating a new record, and/or default filters or the sort order when you list records. -DefaultCreateForm=Default values (to use on forms) -DefaultSearchFilters=Default search filters -DefaultSortOrder=Default sort orders -DefaultFocus=Default focus fields -DefaultMandatory=Mandatory form fields +DefaultValuesDesc=هنا يمكنك تحديد القيمة الافتراضية التي ترغب في استخدامها عند إنشاء سجل جديد ، و / أو عوامل التصفية الافتراضية أو ترتيب الفرز عند إدراج السجلات. +DefaultCreateForm=القيم الافتراضية (لاستخدامها في النماذج) +DefaultSearchFilters=مرشحات البحث الافتراضية +DefaultSortOrder=أوامر الفرز الافتراضية +DefaultFocus=حقول التركيز الافتراضية +DefaultMandatory=حقول النموذج الإلزامية ##### Products ##### ProductSetup=المنتجات وحدة الإعداد ServiceSetup=خدمات وحدة الإعداد ProductServiceSetup=منتجات وخدمات إعداد وحدات -NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit) -ViewProductDescInFormAbility=Display product descriptions in lines of items (otherwise show description in a tooltip popup) -OnProductSelectAddProductDesc=How to use the description of the products when adding a product as a line of a document -AutoFillFormFieldBeforeSubmit=Auto fill the description input field with the description of product -DoNotAutofillButAutoConcat=Do not autofill the input field with description of product. Description of the product will be concatenated to the entered description automatically. -DoNotUseDescriptionOfProdut=Description of the product will never be included into the description of lines of documents +NumberOfProductShowInSelect=الحد الأقصى لعدد المنتجات التي سيتم عرضها في قوائم الاختيار المختلط (0 = بلا حدود) +ViewProductDescInFormAbility=عرض أوصاف المنتج في سطور العناصر (وإلا اعرض الوصف في نافذة منبثقة تلميح) +OnProductSelectAddProductDesc=كيفية استخدام وصف المنتجات عند إضافة منتج كسطر من المستند +AutoFillFormFieldBeforeSubmit=تعبئة تلقائية لحقل إدخال الوصف مع وصف المنتج +DoNotAutofillButAutoConcat=لا تملأ حقل الإدخال تلقائيًا بوصف المنتج. سيتم ربط وصف المنتج بالوصف المُدخل تلقائيًا. +DoNotUseDescriptionOfProdut=لن يتم تضمين وصف المنتج مطلقًا في وصف سطور المستندات MergePropalProductCard=في تنشيط المنتج / الخدمة المرفقة التبويب ملفات خيار دمج المستند المنتج PDF إلى اقتراح PDF دازور إذا كان المنتج / الخدمة في الاقتراح -ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) -UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +ViewProductDescInThirdpartyLanguageAbility=عرض أوصاف المنتجات في نماذج بلغة الطرف الثالث (بخلاف ذلك بلغة المستخدم) +UseSearchToSelectProductTooltip=أيضًا إذا كان لديك عدد كبير من المنتجات (> 100000) ، فيمكنك زيادة السرعة عن طريق تعيين PRODUCT_DONOTSEARCH_ANYWHERE ثابتًا إلى 1 في الإعداد-> أخرى. سيقتصر البحث بعد ذلك على بداية السلسلة. +UseSearchToSelectProduct=انتظر حتى تضغط على مفتاح قبل تحميل محتوى قائمة التحرير والسرد للمنتج (قد يؤدي ذلك إلى زيادة الأداء إذا كان لديك عدد كبير من المنتجات ، ولكنه أقل ملاءمة) SetDefaultBarcodeTypeProducts=النوع الافتراضي لاستخدام الباركود للمنتجات SetDefaultBarcodeTypeThirdParties=النوع الافتراضي لاستخدام الباركود لأطراف ثالثة UseUnits=تحديد وحدة قياس لكمية خلال النظام، الطبعة اقتراح أو فاتورة خطوط @@ -1676,10 +1696,10 @@ SyslogLevel=المستوى SyslogFilename=اسم الملف ومسار YouCanUseDOL_DATA_ROOT=يمكنك استخدام DOL_DATA_ROOT / dolibarr.log لملف الدخول في Dolibarr "وثائق" دليل. يمكنك أن تحدد مسارا مختلفا لتخزين هذا الملف. ErrorUnknownSyslogConstant=ثابت %s ليس ثابت سيسلوغ معروفة -OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported -CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug) -SyslogFileNumberOfSaves=Number of backup logs to keep -ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency +OnlyWindowsLOG_USER=في نظام التشغيل Windows ، لن يتم دعم سوى منشأة LOG_USER +CompressSyslogs=ضغط ملفات سجل التصحيح ونسخها احتياطيًا (تم إنشاؤه بواسطة سجل الوحدة النمطية للتصحيح) +SyslogFileNumberOfSaves=عدد سجلات النسخ الاحتياطي المطلوب الاحتفاظ بها +ConfigureCleaningCronjobToSetFrequencyOfSaves=قم بتكوين مهمة التنظيف المجدولة لتعيين تردد النسخ الاحتياطي للسجل ##### Donations ##### DonationsSetup=وحدة الإعداد للتبرع DonationsReceiptModel=قالب من استلام التبرع @@ -1702,7 +1722,7 @@ GenbarcodeLocation=شريط أدوات سطر الأوامر رمز جيل (ال BarcodeInternalEngine=Internal engine BarCodeNumberManager=مدير لصناعة السيارات تحديد أرقام الباركود ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=إعداد مدفوعات الخصم المباشر للوحدة ##### ExternalRSS ##### ExternalRSSSetup=RSS الواردات الخارجية الإعداد NewRSS=الجديد تغذية RSS @@ -1710,22 +1730,22 @@ RSSUrl=RSS URL RSSUrlExample=An interesting RSS feed ##### Mailing ##### MailingSetup=إعداد وحدة الارسال بالبريد الالكتروني -MailingEMailFrom=Sender email (From) for emails sent by emailing module -MailingEMailError=Return Email (Errors-to) for emails with errors +MailingEMailFrom=البريد الإلكتروني المرسل (من) لرسائل البريد الإلكتروني المرسلة عن طريق وحدة البريد الإلكتروني +MailingEMailError=إرجاع البريد الإلكتروني (Errors-to) لرسائل البريد الإلكتروني التي تحتوي على أخطاء MailingDelay=ثواني الانتظار بعد إرسال الرسالة التالية ##### Notification ##### -NotificationSetup=Email Notification module setup -NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +NotificationSetup=إعداد وحدة إعلام البريد الإلكتروني +NotificationEMailFrom=البريد الإلكتروني المرسل (من) لرسائل البريد الإلكتروني المرسلة بواسطة وحدة التنبيهات FixedEmailTarget=مستلم -NotificationDisableConfirmMessageContact=Hide the list of recipients (subscribed as contact) of notifications into the confirmation message -NotificationDisableConfirmMessageUser=Hide the list of recipients (subscribed as user) of notifications into the confirmation message -NotificationDisableConfirmMessageFix=Hide the list of recipients (subscribed as global email) of notifications into the confirmation message +NotificationDisableConfirmMessageContact=إخفاء قائمة المستلمين (المشتركين كجهة اتصال) للإخطارات في رسالة التأكيد +NotificationDisableConfirmMessageUser=إخفاء قائمة المستلمين (المشتركين كمستخدم) للإخطارات في رسالة التأكيد +NotificationDisableConfirmMessageFix=إخفاء قائمة المستلمين (المشتركين كبريد إلكتروني عالمي) للإخطارات في رسالة التأكيد ##### Sendings ##### -SendingsSetup=Shipping module setup +SendingsSetup=إعداد وحدة الشحن SendingsReceiptModel=ارسال استلام نموذج SendingsNumberingModules=Sendings ترقيم الوحدات SendingsAbility=أوراق دعم الشحن للشحنات العملاء -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=في معظم الحالات ، يتم استخدام أوراق الشحن كأوراق لتسليمات العملاء (قائمة المنتجات المراد إرسالها) والأوراق التي تم استلامها وتوقيعها من قبل العميل. ومن ثم فإن إيصال تسليم المنتجات يعد ميزة مكررة ونادرًا ما يتم تنشيطه. FreeLegalTextOnShippings=النص الحر على الشحنات ##### Deliveries ##### DeliveryOrderNumberingModules=تلقي شحنات المنتجات الترقيم وحدة @@ -1735,55 +1755,55 @@ FreeLegalTextOnDeliveryReceipts=النص الحر على إيصالات التس ##### FCKeditor ##### AdvancedEditor=محرر متقدم ActivateFCKeditor=تفعيل محرر متقدم ل: -FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements -FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements -FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=إنشاء \\ تعديل تفاصيل المنتجات على طريقة الطباعة "ما تراه ستحصل عليه" لجميع المستندات (المقترحات،الاوامر،الفواتير،...) تحذير: إستخدام هذه الخاصية غير منصوح به بشدة بسبب مشاكل المحارف الخاصة وتنسيق الصفحات وذلك عند توليد ملفات بصيغة المستندات المتنقلة . +FCKeditorForNotePublic=إنشاء / إصدار WYSIWIG لعناصر الحقل "الملاحظات العامة" +FCKeditorForNotePrivate=إنشاء / إصدار WYSIWIG للحقل "ملاحظات خاصة" للعناصر +FCKeditorForCompany=إنشاء / إصدار WYSIWIG للوصف الميداني للعناصر (باستثناء المنتجات / الخدمات) +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG إنشاء / الطبعة بالبريد FCKeditorForUserSignature=إنشاء WYSIWIG / طبعة التوقيع المستعمل -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -FCKeditorForTicket=WYSIWIG creation/edition for tickets +FCKeditorForMail=إنشاء / إصدار WYSIWIG لجميع البريد (باستثناء الأدوات-> البريد الإلكتروني) +FCKeditorForTicket=إنشاء / إصدار WYSIWIG للتذاكر ##### Stock ##### -StockSetup=Stock module setup -IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup. +StockSetup=إعداد وحدة المخزون +IfYouUsePointOfSaleCheckModule=إذا كنت تستخدم وحدة نقطة البيع (POS) التي يتم توفيرها افتراضيًا أو وحدة خارجية ، فقد يتم تجاهل هذا الإعداد بواسطة وحدة نقطة البيع الخاصة بك. تم تصميم معظم وحدات نقاط البيع بشكل افتراضي لإنشاء فاتورة على الفور وتقليل المخزون بغض النظر عن الخيارات هنا. لذلك إذا كنت بحاجة إلى انخفاض في المخزون أم لا عند تسجيل عملية بيع من نقاط البيع الخاصة بك ، فتحقق أيضًا من إعداد وحدة نقاط البيع الخاصة بك. ##### Menu ##### MenuDeleted=حذف من القائمة -Menu=Menu +Menu=قائمة الطعام Menus=القوائم TreeMenuPersonalized=شخصي قوائم -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry +NotTopTreeMenuPersonalized=القوائم المخصصة غير مرتبطة بإدخال القائمة العلوية NewMenu=قائمة جديدة MenuHandler=قائمة مناول MenuModule=مصدر في وحدة -HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +HideUnauthorizedMenu=إخفاء القوائم غير المصرح بها أيضًا للمستخدمين الداخليين (فقط باللون الرمادي بخلاف ذلك) DetailId=معرف القائمة DetailMenuHandler=قائمة المعالج حيث تظهر قائمة جديدة DetailMenuModule=اسم وحدة قائمة في حال الدخول من وحدة DetailType=نوع القائمة (أعلى أو إلى اليسار) DetailTitre=قائمة علامة أو بطاقة رمز للترجمة -DetailUrl=عنوان القائمة حيث يرسل لك (عنوان الارتباط المطلق أو خارجية مع وصلة http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=شرط أن لا تظهر أو الدخول DetailRight=حالة رمادية غير مصرح بها للعرض القوائم DetailLangs=لانغ لتسمية اسم ملف الترجمة مدونة DetailUser=المتدرب / خارجي / الكل Target=الهدف -DetailTarget=Target for links (_blank top opens a new window) +DetailTarget=الهدف للروابط (_ blank top يفتح نافذة جديدة) DetailLevel=المستوى (-1 : الأعلى ، 0 : رأس القائمة ،> 0 القائمة والقائمة الفرعية) ModifMenu=قائمة التغيير DeleteMenu=حذف من القائمة الدخول -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? +ConfirmDeleteMenu=هل أنت متأكد من أنك تريد حذف إدخال القائمة %s ؟ FailedToInitializeMenu=فشل في تهيئة القائمة ##### Tax ##### TaxSetup=الضرائب، الضرائب الاجتماعية أو المالية وتوزيعات الأرباح الإعداد حدة OptionVatMode=ضريبة القيمة المضافة المستحقة -OptionVATDefault=Standard basis +OptionVATDefault=أساس قياسي OptionVATDebitOption=أساس الاستحقاق -OptionVatDefaultDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on payments for services -OptionVatDebitOptionDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on invoice (debit) for services -OptionPaymentForProductAndServices=Cash basis for products and services -OptionPaymentForProductAndServicesDesc=VAT is due:
    - on payment for goods
    - on payments for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option: +OptionVatDefaultDesc=ضريبة القيمة المضافة مستحقة:
    - عند تسليم البضائع (بناءً على تاريخ الفاتورة)
    - على مدفوعات الخدمات +OptionVatDebitOptionDesc=ضريبة القيمة المضافة مستحقة:
    - عند تسليم البضائع (بناءً على تاريخ الفاتورة)
    - على الفاتورة (الخصم) للخدمات +OptionPaymentForProductAndServices=الأساس النقدي للمنتجات والخدمات +OptionPaymentForProductAndServicesDesc=ضريبة القيمة المضافة مستحقة:
    - عند الدفع مقابل البضائع
    - على مدفوعات الخدمات +SummaryOfVatExigibilityUsedByDefault=وقت الأهلية لضريبة القيمة المضافة بشكل افتراضي وفقًا للخيار المختار: OnDelivery=التسليم OnPayment=عن الدفع OnInvoice=على فاتورة @@ -1792,86 +1812,86 @@ SupposedToBeInvoiceDate=فاتورة تاريخ المستخدمة Buy=يشتري Sell=يبيع InvoiceDateUsed=فاتورة تاريخ المستخدمة -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organization), so there is no VAT options to setup. -AccountancyCode=Accounting Code +YourCompanyDoesNotUseVAT=تم تعريف شركتك على أنها لا تستخدم ضريبة القيمة المضافة (المنزل - الإعداد - الشركة / المنظمة) ، لذلك لا توجد خيارات ضريبة القيمة المضافة للإعداد. +AccountancyCode=كود المحاسبة AccountancyCodeSell=حساب بيع. رمز AccountancyCodeBuy=شراء الحساب. رمز -CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Keep the checkbox “Automatically create the payment” empty by default when creating a new tax +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=اترك مربع الاختيار "إنشاء الدفع تلقائيًا" فارغًا بشكل افتراضي عند إنشاء ضريبة جديدة ##### Agenda ##### AgendaSetup=جدول الأعمال وحدة الإعداد PasswordTogetVCalExport=مفتاح ربط تصدير تأذن -SecurityKey = Security Key +SecurityKey = مفتاح الامان PastDelayVCalExport=لا تصدر الحدث الأكبر من -AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form -AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view -AGENDA_DEFAULT_VIEW=Which view do you want to open by default when selecting menu Agenda -AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (When remind date is reached, a popup is shown by the browser. Each user can disable such notifications from its browser notification setup). -AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification -AGENDA_REMINDER_EMAIL=Enable event reminder by emails (remind option/delay can be defined on each event). -AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the scheduled job %s must be enough to be sure that the remind are sent at the correct moment. -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view +AGENDA_USE_EVENT_TYPE=استخدام أنواع الأحداث (المُدارة في إعداد القائمة -> القواميس -> نوع أحداث جدول الأعمال) +AGENDA_USE_EVENT_TYPE_DEFAULT=قم بتعيين هذه القيمة الافتراضية تلقائيًا لنوع الحدث في نموذج إنشاء الحدث +AGENDA_DEFAULT_FILTER_TYPE=عيِّن هذا النوع من الأحداث تلقائيًا في فلتر البحث لطريقة عرض الأجندة +AGENDA_DEFAULT_FILTER_STATUS=عيّن هذه الحالة تلقائيًا للأحداث في فلتر البحث لعرض جدول الأعمال +AGENDA_DEFAULT_VIEW=أي طريقة عرض تريد فتحها بشكل افتراضي عند تحديد جدول أعمال القائمة +AGENDA_REMINDER_BROWSER=قم بتمكين تذكير الحدث على متصفح المستخدم (عند الوصول إلى تاريخ التذكير ، تظهر نافذة منبثقة بواسطة المتصفح. يمكن لكل مستخدم تعطيل هذه الإشعارات من إعداد إعلام المتصفح الخاص به). +AGENDA_REMINDER_BROWSER_SOUND=تمكين الإعلام الصوتي +AGENDA_REMINDER_EMAIL=تمكين تذكير الحدث عن طريق رسائل البريد الإلكتروني (يمكن تحديد خيار التذكير / التأخير في كل حدث). +AGENDA_REMINDER_EMAIL_NOTE=ملاحظة: يجب أن يكون تكرار المهمة المجدولة %s كافيًا للتأكد من إرسال التذكير في اللحظة الصحيحة. +AGENDA_SHOW_LINKED_OBJECT=إظهار الكائن المرتبط في عرض جدول الأعمال ##### Clicktodial ##### ClickToDialSetup=انقر لإعداد وحدة الاتصال الهاتفي -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
    __PHONETO__ that will be replaced with the phone number of person to call
    __PHONEFROM__ that will be replaced with phone number of calling person (yours)
    __LOGIN__ that will be replaced with clicktodial login (defined on user card)
    __PASS__ that will be replaced with clicktodial password (defined on user card). -ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable. +ClickToDialUrlDesc=يتم استدعاء عنوان Url عند النقر على الصورة على الهاتف. In URL, you can use tags
    __PHONETO__ that will be replaced with the phone number of person to call
    __PHONEFROM__ that will be replaced with phone number of calling person (yours)
    __LOGIN__ that will be replaced with clicktodial تسجيل الدخول (معرف على بطاقة المستخدم)
    __PASS__ التي سيتم استبدالها بكلمة مرور clicktodial (محددة في بطاقة المستخدم). +ClickToDialDesc=تقوم هذه الوحدة بتغيير أرقام الهواتف ، عند استخدام جهاز كمبيوتر سطح المكتب ، إلى روابط قابلة للنقر. نقرة سوف تتصل بالرقم. يمكن استخدام هذا لبدء المكالمة الهاتفية عند استخدام هاتف ناعم على سطح المكتب أو عند استخدام نظام CTI القائم على بروتوكول SIP على سبيل المثال. ملاحظة: عند استخدام هاتف ذكي ، تكون أرقام الهواتف قابلة للنقر دائمًا. ClickToDialUseTelLink=مجرد استخدام الرابط "الهاتف:" على أرقام الهواتف -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface, installed on the same computer as the browser, and called when you click on a link starting with "tel:" in your browser. If you need a link that start with "sip:" or a full server solution (no need of local software installation), you must set this to "No" and fill the next field. +ClickToDialUseTelLinkDesc=استخدم هذه الطريقة إذا كان المستخدمون لديهم هاتف softphone أو واجهة برمجية ، مثبتة على نفس جهاز الكمبيوتر مثل المتصفح ، ويتم الاتصال بها عند النقر فوق ارتباط يبدأ بـ "tel:" في متصفحك. إذا كنت بحاجة إلى ارتباط يبدأ بـ "sip:" أو حل خادم كامل (لا حاجة إلى تثبيت برنامج محلي) ، يجب عليك تعيين هذا على "لا" وملء الحقل التالي. ##### Point Of Sale (CashDesk) ##### -CashDesk=Point of Sale -CashDeskSetup=Point of Sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sales +CashDesk=نقطة البيع +CashDeskSetup=إعداد وحدة نقاط البيع +CashDeskThirdPartyForSell=طرف ثالث عام افتراضي لاستخدامه في المبيعات CashDeskBankAccountForSell=الحساب النقدي لاستخدامها لتبيع -CashDeskBankAccountForCheque=Default account to use to receive payments by check +CashDeskBankAccountForCheque=الحساب الافتراضي المراد استخدامه لتلقي المدفوعات بشيك CashDeskBankAccountForCB=حساب لاستخدام لاستلام المبالغ النقدية عن طريق بطاقات الائتمان -CashDeskBankAccountForSumup=Default bank account to use to receive payments by SumUp -CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock). +CashDeskBankAccountForSumup=حساب مصرفي افتراضي لاستخدامه لتلقي المدفوعات عن طريق SumUp +CashDeskDoNotDecreaseStock=قم بتعطيل انخفاض المخزون عند إجراء عملية بيع من نقطة البيع (إذا كانت الإجابة "لا" ، يتم تخفيض المخزون لكل عملية بيع تتم من نقطة البيع ، بغض النظر عن الخيار المحدد في مخزون الوحدة النمطية). CashDeskIdWareHouse=قوة وتحد من مستودع لاستخدامها لانخفاض الأسهم -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with module Serial/Lot management (currently active) so stock decrease is disabled. -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. -CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. -CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +StockDecreaseForPointOfSaleDisabled=انخفاض المخزون من نقطة البيع المعطلة +StockDecreaseForPointOfSaleDisabledbyBatch=انخفاض المخزون في نقاط البيع غير متوافق مع إدارة المسلسل / اللوتية للوحدة النمطية (نشطة حاليًا) لذلك يتم تعطيل خفض المخزون. +CashDeskYouDidNotDisableStockDecease=لم تقم بتعطيل خفض المخزون عند إجراء عملية بيع من نقطة البيع. ومن ثم مطلوب مستودع. +CashDeskForceDecreaseStockLabel=تم فرض انخفاض مخزون المنتجات الدفعية. +CashDeskForceDecreaseStockDesc=التقليل أولاً من خلال أقدم تواريخ الأكل والبيع. +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=إعداد وحدة المرجعية -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. +BookmarkDesc=تسمح لك هذه الوحدة بإدارة الإشارات المرجعية. يمكنك أيضًا إضافة اختصارات إلى أي صفحات Dolibarr أو مواقع ويب خارجية في القائمة اليسرى. NbOfBoomarkToShow=أكبر عدد ممكن من العناوين تظهر في القائمة اليمنى ##### WebServices ##### WebServicesSetup=إعداد وحدة خدمات الويب WebServicesDesc=من خلال تمكين هذه الوحدة ، Dolibarr تصبح خدمة الإنترنت لتوفير خدمات الإنترنت وخدمات متنوعة. WSDLCanBeDownloadedHere=اختصار الواصفة ملف قدمت serviceses هنا يمكن التحميل -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL +EndPointIs=يجب على عملاء SOAP إرسال طلباتهم إلى نقطة نهاية Dolibarr المتوفرة على URL ##### API #### ApiSetup=API وحدة الإعداد ApiDesc=من خلال تمكين هذه الوحدة، Dolibarr يصبح الخادم REST لتوفير خدمات الإنترنت المتنوعة. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore and test the APIs at URL +ApiProductionMode=تفعيل وضع الإنتاج (سيؤدي ذلك إلى تنشيط استخدام ذاكرة التخزين المؤقت لإدارة الخدمات) +ApiExporerIs=يمكنك استكشاف واختبار واجهات برمجة التطبيقات على URL OnlyActiveElementsAreExposed=ويتعرض عناصر فقط من وحدات تمكين ApiKey=مفتاح API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +WarningAPIExplorerDisabled=تم تعطيل مستكشف API. مستكشف API غير مطلوب لتقديم خدمات API. إنها أداة للمطور للعثور على / اختبار واجهات برمجة تطبيقات REST. إذا كنت بحاجة إلى هذه الأداة ، فانتقل إلى إعداد الوحدة النمطية API REST لتنشيطها. ##### Bank ##### BankSetupModule=إعداد وحدة مصرفية -FreeLegalTextOnChequeReceipts=Free text on check receipts +FreeLegalTextOnChequeReceipts=نص مجاني على إيصالات الشيكات BankOrderShow=عرض النظام من الحسابات المصرفية لبلدان باستخدام "عدد البنوك مفصل" BankOrderGlobal=عام BankOrderGlobalDesc=عرض عام النظام BankOrderES=الأسبانية BankOrderESDesc=الأسبانية عرض النظام -ChequeReceiptsNumberingModule=Check Receipts Numbering Module +ChequeReceiptsNumberingModule=وحدة ترقيم إيصالات التحقق ##### Multicompany ##### MultiCompanySetup=نموذج متعدد شركة الإعداد ##### Suppliers ##### -SuppliersSetup=Vendor module setup -SuppliersCommandModel=Complete template of Purchase Order -SuppliersCommandModelMuscadet=Complete template of Purchase Order (old implementation of cornas template) -SuppliersInvoiceModel=Complete template of Vendor Invoice -SuppliersInvoiceNumberingModel=Vendor invoices numbering models -IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval +SuppliersSetup=إعداد وحدة البائع +SuppliersCommandModel=نموذج كامل لأمر الشراء +SuppliersCommandModelMuscadet=نموذج كامل لأمر الشراء (التنفيذ القديم لقالب كورناس) +SuppliersInvoiceModel=نموذج كامل لفاتورة البائع +SuppliersInvoiceNumberingModel=نماذج ترقيم فواتير البائعين +IfSetToYesDontForgetPermission=في حالة التعيين على قيمة غير فارغة ، لا تنس منح الأذونات للمجموعات أو المستخدمين المسموح لهم بالموافقة الثانية ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind الإعداد وحدة -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=لاحظ أن الملكية الفكرية الخاصة بك على البيانات القطرية الملف يجب أن تكون داخل الدليل الخاص بي يمكن قراءة (راجع الإعداد open_basedir بى وأذونات نظام الملفات). YouCanDownloadFreeDatFileTo=يمكنك تحميل نسخة تجريبية مجانية من GeoIP ملف Maxmind البلاد في ٪ s. YouCanDownloadAdvancedDatFileTo=كما يمكنك تحميل نسخة كاملة أكثر من ذلك ، مع التحديثات ، من GeoIP ملف Maxmind البلاد في ٪ s. @@ -1882,17 +1902,17 @@ ProjectsSetup=مشروع إعداد وحدة ProjectsModelModule=المشروع نموذج التقرير وثيقة TasksNumberingModules=مهام ترقيم وحدة TaskModelModule=تقارير المهام ثيقة نموذجية -UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.
    This may improve performance if you have a large number of projects, but it is less convenient. +UseSearchToSelectProject=انتظر حتى يتم الضغط على مفتاح قبل تحميل محتوى قائمة التحرير والسرد للمشروع.
    قد يؤدي ذلك إلى تحسين الأداء إذا كان لديك عدد كبير من المشاريع ، ولكنه أقل ملاءمة. ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods +AccountingPeriods=الفترات المحاسبية AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period +NewFiscalYear=فترة محاسبية جديدة +OpenFiscalYear=فترة محاسبية مفتوحة +CloseFiscalYear=فترة محاسبية قريبة +DeleteFiscalYear=حذف فترة المحاسبة +ConfirmDeleteFiscalYear=هل أنت متأكد من حذف هذه الفترة المحاسبية؟ +ShowFiscalYear=عرض فترة المحاسبة AlwaysEditable=يمكن دائما أن تعدل MAIN_APPLICATION_TITLE=إجبار اسم المرئي من التطبيق (تحذير: وضع اسمك هنا قد كسر ميزة تسجيل الدخول التدوين الآلي عند استخدام تطبيقات الهاتف المتحرك DoliDroid) NbMajMin=الحد الأدنى لعدد الأحرف الكبيرة @@ -1903,363 +1923,435 @@ NoAmbiCaracAutoGeneration=لا تستخدم الأحرف الغامضة ("1"، " SalariesSetup=الإعداد للرواتب وحدة SortOrder=ترتيب Format=شكل -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and suppliers payment type +TypePaymentDesc=0: طريقةالدفع العميل ، 1: نوع الدفع للبائع ، 2: طريقة الدفع العملاء و سداد الموردين IncludePath=يشمل المسار (المحدد في متغير%s) ExpenseReportsSetup=إعداد تقارير المصروفات وحدة TemplatePDFExpenseReports=قوالب المستند لتوليد حساب ثيقة تقرير -ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules -ExpenseReportNumberingModules=Expense reports numbering module +ExpenseReportsRulesSetup=إعداد تقارير نفقات الوحدة - القواعد +ExpenseReportNumberingModules=وحدة ترقيم تقارير المصاريف NoModueToManageStockIncrease=تم تفعيل أي وحدة قادرة على إدارة زيادة المخزون التلقائي. وسوف يتم زيادة الأسهم على الإدخال اليدوي فقط. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -TemplatesForNotifications=Templates for notifications -ListOfNotificationsPerUser=List of automatic notifications per user* -ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** -ListOfFixedNotifications=List of automatic fixed notifications -GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go to the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +YouMayFindNotificationsFeaturesIntoModuleNotification=قد تجد خيارات لإشعارات البريد الإلكتروني عن طريق تمكين وتكوين وحدة "الإعلام". +TemplatesForNotifications=قوالب للإخطارات +ListOfNotificationsPerUser=قائمة الإخطارات التلقائية لكل مستخدم * +ListOfNotificationsPerUserOrContact=قائمة الإخطارات التلقائية الممكنة (في حدث العمل) المتاحة لكل مستخدم * أو لكل جهة اتصال ** +ListOfFixedNotifications=قائمة الإخطارات الثابتة التلقائية +GoOntoUserCardToAddMore=انتقل إلى علامة التبويب "التنبيهات" للمستخدم لإضافة أو إزالة الإشعارات للمستخدمين +GoOntoContactCardToAddMore=انتقل إلى علامة التبويب "التنبيهات" الخاصة بطرف ثالث لإضافة أو إزالة إشعارات جهات الاتصال / العناوين Threshold=عتبة -BackupDumpWizard=Wizard to build the database dump file -BackupZipWizard=Wizard to build the archive of documents directory +BackupDumpWizard=معالج لإنشاء ملف تفريغ قاعدة البيانات +BackupZipWizard=معالج لبناء أرشيف دليل المستندات SomethingMakeInstallFromWebNotPossible=تركيب وحدة خارجية غير ممكن من واجهة ويب للسبب التالي: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +SomethingMakeInstallFromWebNotPossible2=لهذا السبب ، فإن عملية الترقية الموضحة هنا هي عملية يدوية لا يجوز إلا لمستخدم ذي امتيازات القيام بها. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=تثبيت وحدة خارجية من التطبيق قد تم تعطيلها من قبل المسؤول. يجب أن يطلب منه إزالة الملف٪ s للسماح هذه الميزة. -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=يحتاج تثبيت أو بناء وحدة خارجية من التطبيق إلى حفظ ملفات الوحدة النمطية في الدليل %s . لكي تتم معالجة هذا الدليل بواسطة Dolibarr ، يجب عليك إعداد conf / conf.php لإضافة سطري التوجيه:
    $ dolibarr_main_url_root_alt = '/root_alt؛
    $ dolibarr_main_document_root_alt = '%s / مخصص' ؛ HighlightLinesOnMouseHover=تسليط الضوء على خطوط الجدول عندما يمر تحرك الماوس فوق -HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) -HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) -UseBorderOnTable=Show left-right borders on tables -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button -TextTitleColor=Text color of Page title +HighlightLinesColor=قم بتمييز لون الخط عندما يمر الماوس فوقه (استخدم "ffffff" لعدم التمييز) +HighlightLinesChecked=قم بتمييز لون الخط عند تحديده (استخدم "ffffff" لعدم التمييز) +UseBorderOnTable=إظهار الحدود اليسرى واليمنى على الجداول +BtnActionColor=لون زر الإجراء +TextBtnActionColor=لون نص زر الإجراء +TextTitleColor=لون نص عنوان الصفحة LinkColor=لون الروابط -PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes +PressF5AfterChangingThis=اضغط على CTRL + F5 على لوحة المفاتيح أو امسح ذاكرة التخزين المؤقت للمتصفح بعد تغيير هذه القيمة لتصبح فعالة +NotSupportedByAllThemes=سوف يعمل مع الموضوعات الأساسية ، قد لا تدعمه الموضوعات الخارجية BackgroundColor=لون الخلفية TopMenuBackgroundColor=لون الخلفية لقائمة الأعلى -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=رمز أو نص في القائمة العلوية LeftMenuBackgroundColor=لون الخلفية القائمة اليمنى BackgroundTableTitleColor=لون الخلفية لخط عنوان الجدول -BackgroundTableTitleTextColor=Text color for Table title line -BackgroundTableTitleTextlinkColor=Text color for Table title link line +BackgroundTableTitleTextColor=لون نص سطر عنوان الجدول +BackgroundTableTitleTextlinkColor=لون النص لخط ارتباط عنوان الجدول BackgroundTableLineOddColor=لون الخلفية لخطوط الجدول غريبة BackgroundTableLineEvenColor=لون الخلفية حتى خطوط الجدول MinimumNoticePeriod=الحد الأدنى لمدة إشعار (يجب أن يتم طلب إجازة قبل هذا التأخير) NbAddedAutomatically=عدد الأيام تضاف إلى العدادات من المستخدمين (تلقائيا) كل شهر -EnterAnyCode=This field contains a reference to identify the line. Enter any value of your choice, but without special characters. -Enter0or1=Enter 0 or 1 -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +EnterAnyCode=يحتوي هذا الحقل على مرجع لتعريف الخط. أدخل أي قيمة من اختيارك ، ولكن بدون أحرف خاصة. +Enter0or1=أدخل 0 أو 1 +UnicodeCurrency=أدخل هنا بين الأقواس ، قائمة رقم البايت الذي يمثل رمز العملة. على سبيل المثال: بالنسبة إلى $ ، أدخل [36] - للبرازيل ريال R $ [82،36] - لـ € ، أدخل [8364] +ColorFormat=لون RGB بصيغة HEX ، على سبيل المثال: FF0000 +PictoHelp=اسم الرمز بالتنسيق:
    - image.png لملف صورة في دليل السمة الحالي
    - image.png@module إذا كان الملف في الدليل / img / للوحدة النمطية
    - fa-xxx للخط fa-xxx picto
    - fonwtawesome_xxx_fa_color_size ل FontAwesome fa-xxx picto (مع البادئة واللون ومجموعة الحجم) PositionIntoComboList=موقف خط في قوائم السرد -SellTaxRate=Sales tax rate -RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offers a page or web site to check the status of your shipments, you may enter it here. You can use the key {TRACKID} in the URL parameters so the system will replace it with the tracking number the user entered into the shipment card. -OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of the lead, this amount may be multiplied by this rate to evaluate a total amount all your leads may generate. Value is a percentage (between 0 and 100). -TemplateForElement=This mail template is related to what type of object? An email template is available only when using the "Send Email" button from the related object. +SellTaxRate=معدل ضريبة المبيعات +RecuperableOnly=نعم لضريبة القيمة المضافة "غير متصورة ولكن قابلة للاسترداد" المخصصة لبعض الولايات في فرنسا. احتفظ بقيمة "لا" في جميع الحالات الأخرى. +UrlTrackingDesc=إذا كان الموفر أو خدمة النقل يقدم صفحة أو موقع ويب للتحقق من حالة الشحنات الخاصة بك ، فيمكنك إدخاله هنا. يمكنك استخدام المفتاح {TRACKID} في معلمات عنوان URL حتى يستبدله النظام برقم التتبع الذي أدخله المستخدم في بطاقة الشحن. +OpportunityPercent=عند إنشاء عميل متوقع ، ستقوم بتحديد المقدار المقدر للمشروع / العميل المتوقع. وفقًا لحالة العميل المتوقع ، يمكن مضاعفة هذا المبلغ في هذا المعدل لتقييم المبلغ الإجمالي الذي قد يولده جميع العملاء المتوقعين. القيمة هي نسبة مئوية (بين 0 و 100). +TemplateForElement=ما هو نوع الكائن؟ يتوفر نموذج بريد إلكتروني فقط عند استخدام زر "إرسال بريد إلكتروني" من الكائن ذي الصلة. TypeOfTemplate=نوع القالب -TemplateIsVisibleByOwnerOnly=Template is visible to owner only -VisibleEverywhere=Visible everywhere -VisibleNowhere=Visible nowhere +TemplateIsVisibleByOwnerOnly=النموذج مرئي للمالك فقط +VisibleEverywhere=مرئي في كل مكان +VisibleNowhere=مرئي في أي مكان FixTZ=الإصلاح والوقت FillFixTZOnlyIfRequired=مثال: +2 (ملء فقط إذا كانت المشكلة من ذوي الخبرة) ExpectedChecksum=اختباري المتوقع CurrentChecksum=اختباري الحالي -ExpectedSize=Expected size -CurrentSize=Current size -ForcedConstants=Required constant values +ExpectedSize=الحجم المتوقع +CurrentSize=الحجم الحالي +ForcedConstants=القيم الثابتة المطلوبة MailToSendProposal=مقترحات العملاء MailToSendOrder=اوامر المبيعات MailToSendInvoice=فواتير العملاء MailToSendShipment=شحنات MailToSendIntervention=التدخلات -MailToSendSupplierRequestForQuotation=Quotation request +MailToSendSupplierRequestForQuotation=طلب اقتباس MailToSendSupplierOrder=اوامر الشراء MailToSendSupplierInvoice=فواتير الموردين MailToSendContract=عقود -MailToSendReception=Receptions +MailToSendReception=حفلات الاستقبال +MailToExpenseReport=تقارير المصاريف MailToThirdparty=أطراف ثالثة MailToMember=أعضاء MailToUser=المستخدمين MailToProject=مشاريع MailToTicket=تذاكر ByDefaultInList=تظهر بشكل افتراضي على عرض القائمة -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=أنت تستخدم أحدث إصدار ثابت TitleExampleForMajorRelease=مثال على رسالة يمكنك استخدامها ليعلن هذا الإصدار الرئيسي (لا تتردد في استخدامها على مواقع الويب الخاص بك) TitleExampleForMaintenanceRelease=مثال على الرسالة التي يمكن استخدامها ليعلن هذا البيان الصيانة (لا تتردد في استخدامها على مواقع الويب الخاص بك) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so contains only bug fixes. We recommend all users to upgrade to this version. A maintenance release does not introduce new features or changes to the database. You may download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read the ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several levels of prices per product/service" is enabled, you can define different prices (one per price level) for each product. To save you time, here you may enter a rule to autocalculate a price for each level based on the price of the first level, so you will have to only enter a price for the first level for each product. This page is designed to save you time but is useful only if your prices for each level are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -WarehouseModelModules=Templates for documents of warehouses -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto-define the barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -SeeChangeLog=See ChangeLog file (english only) -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDataTables=Add object tables -AddDictionaries=Add dictionaries tables -AddData=Add objects or dictionaries data +ExampleOfNewsMessageForMajorRelease=يتوفر Dolibarr ERP & CRM %s. يعد الإصدار %s إصدارًا رئيسيًا يحتوي على الكثير من الميزات الجديدة لكل من المستخدمين والمطورين. يمكنك تنزيله من منطقة التنزيل في بوابة https://www.dolibarr.org (إصدارات الدليل الفرعي المستقرة). يمكنك قراءة سجل التغيير للحصول على قائمة كاملة بالتغييرات. +ExampleOfNewsMessageForMaintenanceRelease=يتوفر Dolibarr ERP & CRM %s. الإصدار %s هو إصدار صيانة ، لذلك يحتوي فقط على إصلاحات الأخطاء. نوصي جميع المستخدمين بالترقية إلى هذا الإصدار. لا يقدم إصدار الصيانة ميزات جديدة أو تغييرات في قاعدة البيانات. يمكنك تنزيله من منطقة التنزيل في بوابة https://www.dolibarr.org (إصدارات الدليل الفرعي المستقرة). يمكنك قراءة سجل التغيير للحصول على قائمة كاملة بالتغييرات. +MultiPriceRuleDesc=عند تمكين الخيار "عدة مستويات من الأسعار لكل منتج / خدمة" ، يمكنك تحديد أسعار مختلفة (مستوى لكل مستوى سعر) لكل منتج. لتوفير الوقت ، يمكنك هنا إدخال قاعدة لحساب سعر كل مستوى تلقائيًا بناءً على سعر المستوى الأول ، لذلك سيتعين عليك فقط إدخال سعر للمستوى الأول لكل منتج. تم تصميم هذه الصفحة لتوفير الوقت ولكنها مفيدة فقط إذا كانت أسعارك لكل مستوى متعلقة بالمستوى الأول. يمكنك تجاهل هذه الصفحة في معظم الحالات. +ModelModulesProduct=قوالب لوثائق المنتج +WarehouseModelModules=نماذج لوثائق المستودعات +ToGenerateCodeDefineAutomaticRuleFirst=لتتمكن من إنشاء الرموز تلقائيًا ، يجب عليك أولاً تحديد مدير لتحديد رقم الرمز الشريطي تلقائيًا. +SeeSubstitutionVars=انظر * ملاحظة للحصول على قائمة متغيرات الاستبدال الممكنة +SeeChangeLog=انظر ملف سجل التغيير (الإنجليزية فقط) +AllPublishers=كل الناشرين +UnknownPublishers=ناشرون غير معروفين +AddRemoveTabs=إضافة أو إزالة علامات التبويب +AddDataTables=أضف جداول الكائنات +AddDictionaries=أضف جداول القواميس +AddData=إضافة بيانات كائنات أو قواميس AddBoxes=إضافة بريمجات -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter $dolibarr_main_restrict_os_commands in the conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permissions defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")
    Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)
    Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s") -BaseCurrency=Reference currency of the company (go into setup of company to change this) -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. -WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software. +AddSheduledJobs=أضف الوظائف المجدولة +AddHooks=أضف الخطافات +AddTriggers=أضف المشغلات +AddMenus=أضف القوائم +AddPermissions=أضف أذونات +AddExportProfiles=إضافة ملفات تعريف التصدير +AddImportProfiles=إضافة ملفات تعريف الاستيراد +AddOtherPagesOrServices=أضف صفحات أو خدمات أخرى +AddModels=إضافة وثيقة أو قوالب ترقيم +AddSubstitutions=أضف بدائل المفاتيح +DetectionNotPossible=الكشف غير ممكن +UrlToGetKeyToUseAPIs=عنوان URL للحصول على رمز مميز لاستخدام واجهة برمجة التطبيقات (بمجرد استلام الرمز المميز ، يتم حفظه في جدول مستخدم قاعدة البيانات ويجب توفيره في كل استدعاء لواجهة برمجة التطبيقات) +ListOfAvailableAPIs=قائمة واجهات برمجة التطبيقات المتاحة +activateModuleDependNotSatisfied=الوحدة النمطية "%s" تعتمد على الوحدة النمطية "%s" ، وهي مفقودة ، لذا قد لا تعمل الوحدة النمطية "%1$s" بشكل صحيح. الرجاء تثبيت الوحدة النمطية "%2$s" أو تعطيل الوحدة النمطية "%1$s" إذا كنت تريد أن تكون في مأمن من أي مفاجأة +CommandIsNotInsideAllowedCommands=الأمر الذي تحاول تشغيله غير موجود في قائمة الأوامر المسموح بها المحددة في المعلمة $ dolibarr_main_restrict_os_commands في ملف conf.php . +LandingPage=الصفحة المقصودة +SamePriceAlsoForSharedCompanies=إذا كنت تستخدم وحدة متعددة الشركات ، مع اختيار "سعر واحد" ، فسيكون السعر هو نفسه أيضًا لجميع الشركات إذا كانت المنتجات مشتركة بين البيئات +ModuleEnabledAdminMustCheckRights=تم تفعيل الوحدة. تم منح أذونات الوحدة (الوحدات) المنشطة لمستخدمي الإدارة فقط. قد تحتاج إلى منح أذونات للمستخدمين أو المجموعات الأخرى يدويًا إذا لزم الأمر. +UserHasNoPermissions=هذا المستخدم ليس لديه أذونات محددة +TypeCdr=استخدم "بلا" إذا كان تاريخ الدفع هو تاريخ الفاتورة بالإضافة إلى دلتا بالأيام (دلتا هي الحقل "%s")
    استخدم "في نهاية الشهر" ، إذا كان يجب زيادة التاريخ للوصول إلى النهاية بعد دلتا من الشهر (+ "%s" اختياري بالأيام)
    استخدم "Current / Next" ليكون تاريخ فترة السداد هو أول N من الشهر بعد دلتا (دلتا هي الحقل "%s" ، يتم تخزين N في الحقل "%s") +BaseCurrency=العملة المرجعية للشركة (انتقل إلى إعداد الشركة لتغيير هذا) +WarningNoteModuleInvoiceForFrenchLaw=هذه الوحدة %s متوافقة مع القوانين الفرنسية (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=تتوافق هذه الوحدة %s مع القوانين الفرنسية (Loi Finance 2016) لأنه يتم تنشيط الوحدة النمطية السجلات غير القابلة للعكس تلقائيًا. +WarningInstallationMayBecomeNotCompliantWithLaw=أنت تحاول تثبيت الوحدة النمطية %s وهي وحدة خارجية. يعني تنشيط وحدة خارجية أنك تثق في ناشر هذه الوحدة وأنك متأكد من أن هذه الوحدة لا تؤثر سلبًا على سلوك التطبيق الخاص بك ، وأنها متوافقة مع قوانين بلدك (%s). إذا قدمت الوحدة ميزة غير قانونية ، فإنك تصبح مسؤولاً عن استخدام البرامج غير القانونية. MAIN_PDF_MARGIN_LEFT=الهامش الايسر على ملفات صيغة المستندات المتنقلة MAIN_PDF_MARGIN_RIGHT=الهامش الايمن لملفات صيغة المستندات المتنقلة MAIN_PDF_MARGIN_TOP=الهامش العلوي لصيغة المستندات المتنقلة MAIN_PDF_MARGIN_BOTTOM=الهامش العلوي لصيغة المستندات المتنقلة MAIN_DOCUMENTS_LOGO_HEIGHT=ارتفاع الشعار على صيغة المستندات المتنقلة -MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines -MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines -MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame -MAIN_PDF_NO_RECIPENT_FRAME=Hide borders on recipent address frame -MAIN_PDF_HIDE_CUSTOMER_CODE=Hide customer code -MAIN_PDF_HIDE_SENDER_NAME=Hide sender/company name in address block -PROPOSAL_PDF_HIDE_PAYMENTTERM=Hide payments conditions -PROPOSAL_PDF_HIDE_PAYMENTMODE=Hide payment mode -MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Add electronic sign in PDF -NothingToSetup=There is no specific setup required for this module. -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes.
    For example:
    CODEGRP1+CODEGRP2 -SeveralLangugeVariatFound=Several language variants found -RemoveSpecialChars=Remove special characters -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) -COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) -COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed -GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here -HelpOnTooltip=Help text to show on tooltip -HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form -YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s -ChartLoaded=Chart of account loaded -SocialNetworkSetup=Setup of module Social Networks -EnableFeatureFor=Enable features for %s -VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. +DOC_SHOW_FIRST_SALES_REP=Show first sales representative +MAIN_GENERATE_PROPOSALS_WITH_PICTURE=أضف عمودًا للصورة في سطور الاقتراح +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=عرض العمود إذا تم إضافة صورة على الخطوط +MAIN_PDF_NO_SENDER_FRAME=إخفاء الحدود في إطار عنوان المرسل +MAIN_PDF_NO_RECIPENT_FRAME=إخفاء الحدود على إطار عنوان المستلم +MAIN_PDF_HIDE_CUSTOMER_CODE=إخفاء رمز العميل +MAIN_PDF_HIDE_SENDER_NAME=إخفاء اسم المرسل / الشركة في كتلة العنوان +PROPOSAL_PDF_HIDE_PAYMENTTERM=إخفاء شروط المدفوعات +PROPOSAL_PDF_HIDE_PAYMENTMODE=إخفاء وضع الدفع +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=أضف تسجيلًا إلكترونيًا بتنسيق PDF +NothingToSetup=لا يوجد إعداد محدد مطلوب لهذه الوحدة. +SetToYesIfGroupIsComputationOfOtherGroups=اضبط هذا على نعم إذا كانت هذه المجموعة عبارة عن حساب لمجموعات أخرى +EnterCalculationRuleIfPreviousFieldIsYes=أدخل قاعدة الحساب إذا تم تعيين الحقل السابق على "نعم".
    على سبيل المثال:
    CODEGRP1 + CODEGRP2 +SeveralLangugeVariatFound=تم العثور على العديد من المتغيرات اللغوية +RemoveSpecialChars=إزالة الأحرف الخاصة +COMPANY_AQUARIUM_CLEAN_REGEX=مرشح Regex لتنظيف القيمة (COMPANY_AQUARIUM_CLEAN_REGEX) +COMPANY_DIGITARIA_CLEAN_REGEX=مرشح Regex لتنظيف القيمة (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=مكرر غير مسموح به +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word +GDPRContact=مسؤول حماية البيانات (DPO أو خصوصية البيانات أو جهة اتصال GDPR) +GDPRContactDesc=إذا قمت بتخزين البيانات الشخصية في نظام المعلومات الخاص بك ، فيمكنك تسمية جهة الاتصال المسؤولة عن اللائحة العامة لحماية البيانات هنا +HelpOnTooltip=نص المساعدة للظهور في تلميح الأداة +HelpOnTooltipDesc=ضع نصًا أو مفتاح ترجمة هنا حتى يظهر النص في تلميح عندما يظهر هذا الحقل في نموذج +YouCanDeleteFileOnServerWith=يمكنك حذف هذا الملف على الخادم باستخدام سطر الأوامر:
    %s +ChartLoaded=تحميل الرسم البياني للحساب +SocialNetworkSetup=إعداد وحدة الشبكات الاجتماعية +EnableFeatureFor=تمكين الميزات لـ %s +VATIsUsedIsOff=ملاحظة: تم تعيين خيار استخدام ضريبة المبيعات أو ضريبة القيمة المضافة على إيقاف في القائمة %s - %s ، لذلك ستكون ضريبة المبيعات أو ضريبة القيمة المضافة المستخدمة دائمًا صفرًا للمبيعات. SwapSenderAndRecipientOnPDF=إبدال مكان عنوان المرسل والمستقبل على ملفات صيغة المستندات المتنقلة -FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. -EmailCollector=Email collector -EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). -NewEmailCollector=New Email Collector -EMailHost=Host of email IMAP server -MailboxSourceDirectory=Mailbox source directory -MailboxTargetDirectory=Mailbox target directory -EmailcollectorOperations=Operations to do by collector -EmailcollectorOperationsDesc=Operations are executed from top to bottom order -MaxEmailCollectPerCollect=Max number of emails collected per collect -CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? -DateLastCollectResult=Date of latest collect try -DateLastcollectResultOk=Date of latest collect success -LastResult=Latest result -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail -NoNewEmailToProcess=No new email (matching filters) to process -NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) -RecordEvent=Record an event in agenda (with type Email sent or received) -CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +FeatureSupportedOnTextFieldsOnly=تحذير ، الميزة مدعومة في الحقول النصية وقوائم التحرير والسرد فقط. أيضًا إجراء معلمة URL = إنشاء أو إجراء = يجب تعيين تعديل أو يجب أن ينتهي اسم الصفحة بـ "new.php" لتشغيل هذه الميزة. +EmailCollector=جامع البريد الإلكتروني +EmailCollectors=جامعي البريد الإلكتروني +EmailCollectorDescription=أضف وظيفة مجدولة وصفحة إعداد لمسح صناديق البريد الإلكتروني بانتظام (باستخدام بروتوكول IMAP) وتسجيل رسائل البريد الإلكتروني المستلمة في التطبيق الخاص بك ، في المكان الصحيح و / أو إنشاء بعض السجلات تلقائيًا (مثل العملاء المتوقعين). +NewEmailCollector=جامع البريد الإلكتروني الجديد +EMailHost=مضيف خادم IMAP للبريد الإلكتروني +EMailHostPort=منفذ خادم IMAP للبريد الإلكتروني +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). +MailboxSourceDirectory=دليل مصدر صندوق البريد +MailboxTargetDirectory=دليل الهدف صندوق البريد +EmailcollectorOperations=العمليات التي يقوم بها المجمع +EmailcollectorOperationsDesc=يتم تنفيذ العمليات من أعلى إلى أسفل الترتيب +MaxEmailCollectPerCollect=أقصى عدد من رسائل البريد الإلكتروني التي تم جمعها لكل مجموعة +TestCollectNow=Test collect +CollectNow=اجمع الآن +ConfirmCloneEmailCollector=هل تريد بالتأكيد استنساخ مُجمع البريد الإلكتروني %s؟ +DateLastCollectResult=تاريخ آخر جمع حاول +DateLastcollectResultOk=تاريخ آخر جمع النجاح +LastResult=أحدث نتيجة +EmailCollectorHideMailHeaders=لا تقم بتضمين محتوى رأس البريد الإلكتروني في المحتوى المحفوظ لرسائل البريد الإلكتروني المجمعة +EmailCollectorHideMailHeadersHelp=عند التمكين ، لا تتم إضافة رؤوس البريد الإلكتروني في نهاية محتوى البريد الإلكتروني الذي تم حفظه كحدث جدول أعمال. +EmailCollectorConfirmCollectTitle=تأكيد جمع البريد الإلكتروني +EmailCollectorConfirmCollect=هل تريد تشغيل هذا المجمع الآن؟ +EmailCollectorExampleToCollectTicketRequestsDesc=اجمع رسائل البريد الإلكتروني التي تطابق بعض القواعد وأنشئ تذكرة تلقائيًا (يجب تمكين Module Ticket) باستخدام معلومات البريد الإلكتروني. يمكنك استخدام هذا المجمع إذا قدمت بعض الدعم عبر البريد الإلكتروني ، لذلك سيتم إنشاء طلب التذكرة تلقائيًا. قم أيضًا بتنشيط Collect_Responses لتجميع إجابات عميلك مباشرةً على عرض التذكرة (يجب عليك الرد من Dolibarr). +EmailCollectorExampleToCollectTicketRequests=مثال على جمع طلب التذكرة (الرسالة الأولى فقط) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=امسح دليل صندوق البريد "المرسل" للعثور على رسائل البريد الإلكتروني التي تم إرسالها كإجابة على بريد إلكتروني آخر مباشرةً من برنامج البريد الإلكتروني الخاص بك وليس من Dolibarr. إذا تم العثور على مثل هذا البريد الإلكتروني ، يتم تسجيل حدث الإجابة في Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=مثال على جمع إجابات البريد الإلكتروني المرسلة من برنامج بريد إلكتروني خارجي +EmailCollectorExampleToCollectDolibarrAnswersDesc=اجمع كل رسائل البريد الإلكتروني التي تمثل إجابة على رسالة بريد إلكتروني مرسلة من تطبيقك. سيتم تسجيل حدث (يجب تمكين جدول أعمال الوحدة النمطية) مع استجابة البريد الإلكتروني في مكان جيد. على سبيل المثال ، إذا أرسلت عرضًا تجاريًا أو طلبًا أو فاتورة أو رسالة لتذكرة عبر البريد الإلكتروني من التطبيق ، وقام المستلم بالرد على بريدك الإلكتروني ، فسيقوم النظام تلقائيًا بالتقاط الإجابة وإضافتها إلى نظام تخطيط موارد المؤسسات الخاص بك. +EmailCollectorExampleToCollectDolibarrAnswers=مثال على جمع جميع الرسائل الداخلية التي تكون إجابات على الرسائل المرسلة من Dolibarr ' +EmailCollectorExampleToCollectLeadsDesc=جمع رسائل البريد الإلكتروني التي تتطابق مع بعض القواعد وإنشاء عميل متوقع تلقائيًا (يجب تمكين مشروع الوحدة النمطية) باستخدام معلومات البريد الإلكتروني. يمكنك استخدام أداة التجميع هذه إذا كنت تريد متابعة زمام المبادرة باستخدام مشروع الوحدة النمطية (عميل متوقع واحد = مشروع واحد) ، لذلك سيتم إنشاء العملاء المتوقعين تلقائيًا. إذا تم أيضًا تمكين Collect_Responses للمجمع ، فعند إرسال بريد إلكتروني من العملاء المتوقعين أو المقترحات أو أي كائن آخر ، قد ترى أيضًا إجابات لعملائك أو شركائك مباشرةً في التطبيق.
    ملاحظة: باستخدام هذا المثال الأولي ، يتم إنشاء عنوان العميل المتوقع متضمنًا البريد الإلكتروني. إذا تعذر العثور على الطرف الثالث في قاعدة البيانات (عميل جديد) ، فسيتم إرفاق العميل المتوقع بالطرف الثالث بمعرف 1. +EmailCollectorExampleToCollectLeads=مثال على جمع العملاء المحتملين +EmailCollectorExampleToCollectJobCandidaturesDesc=اجمع رسائل البريد الإلكتروني التي تتقدم إلى عروض العمل (يجب تمكين Module Recruitment). يمكنك إكمال هذا المجمع إذا كنت تريد إنشاء ترشيح تلقائيًا لطلب وظيفة. ملاحظة: مع هذا المثال الأولي ، يتم إنشاء عنوان الترشيح بما في ذلك البريد الإلكتروني. +EmailCollectorExampleToCollectJobCandidatures=مثال على جمع ترشيحات الوظائف الواردة عن طريق البريد الإلكتروني +NoNewEmailToProcess=لا يوجد بريد إلكتروني جديد (فلاتر مطابقة) للمعالجة +NothingProcessed=لم يتم عمل شيء +XEmailsDoneYActionsDone=رسائل البريد الإلكتروني %s المؤهلة مسبقًا ، تمت معالجة رسائل البريد الإلكتروني %s بنجاح (لسجل / إجراءات %s) +RecordEvent=تسجيل حدث في جدول الأعمال (مع نوع البريد الإلكتروني المرسل أو المستلم) +CreateLeadAndThirdParty=قم بإنشاء عميل محتمل (وطرف ثالث إذا لزم الأمر) +CreateTicketAndThirdParty=إنشاء تذكرة (مرتبطة بطرف ثالث إذا تم تحميل الطرف الثالث من خلال عملية سابقة أو تم تخمينه من متعقب في رأس البريد الإلكتروني ، دون طرف ثالث بخلاف ذلك) CodeLastResult=Latest result code -NbOfEmailsInInbox=Number of emails in source directory -LoadThirdPartyFromName=Load third party searching on %s (load only) -LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. -WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr -WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr -WithDolTrackingIDInMsgId=Message sent from Dolibarr -WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr -CreateCandidature=Create job application +NbOfEmailsInInbox=عدد رسائل البريد الإلكتروني في دليل المصدر +LoadThirdPartyFromName=تحميل بحث الطرف الثالث على %s (تحميل فقط) +LoadThirdPartyFromNameOrCreate=قم بتحميل بحث الطرف الثالث على %s (أنشئ إذا لم يتم العثور عليه) +AttachJoinedDocumentsToObject=احفظ الملفات المرفقة في مستندات الكائن إذا تم العثور على مرجع لكائن في موضوع البريد الإلكتروني. +WithDolTrackingID=رسالة من محادثة بدأت بأول بريد إلكتروني مرسل من Dolibarr +WithoutDolTrackingID=رسالة من محادثة بدأها أول بريد إلكتروني لم يتم إرساله من Dolibarr +WithDolTrackingIDInMsgId=تم إرسال الرسالة من Dolibarr +WithoutDolTrackingIDInMsgId=لم يتم إرسال الرسالة من Dolibarr +CreateCandidature=إنشاء طلب وظيفة FormatZip=الرمز البريدي -MainMenuCode=Menu entry code (mainmenu) -ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +MainMenuCode=رمز دخول القائمة (mainmenu) +ECMAutoTree=عرض شجرة ECM التلقائية +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=ساعات الافتتاح OpeningHoursDesc=ادخل هنا ساعات الافتتاح لشركتك -ResourceSetup=Configuration of Resource module -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disable feature to link a resource to users -DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda -ConfirmUnactivation=Confirm module reset -OnMobileOnly=On small screen (smartphone) only -DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) -MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links. -MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person -MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. -Protanopia=Protanopia -Deuteranopes=Deuteranopes -Tritanopes=Tritanopes -ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' -DefaultCustomerType=Default thirdparty type for "New customer" creation form -ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. -RootCategoryForProductsToSell=Root category of products to sell -RootCategoryForProductsToSellDesc=If defined, only products inside this category or childs of this category will be available in the Point Of Sale -DebugBar=Debug Bar -DebugBarDesc=Toolbar that comes with a plenty of tools to simplify debugging -DebugBarSetup=DebugBar Setup -GeneralOptions=General Options -LogsLinesNumber=Number of lines to show on logs tab -UseDebugBar=Use the debug bar -DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console -WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -ModuleActivated=Module %s is activated and slows the interface -ModuleActivatedWithTooHighLogLevel=Module %s is activated with a too high logging level (try to use a lower level for better performances and security) -ModuleSyslogActivatedButLevelNotTooVerbose=Module %s is activated and log level (%s) is correct (not too verbose) -IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. -AntivirusEnabledOnUpload=Antivirus enabled on uploaded files -SomeFilesOrDirInRootAreWritable=Some files or directories are not in a read-only mode -EXPORTS_SHARE_MODELS=Export models are share with everybody -ExportSetup=Setup of module Export -ImportSetup=Setup of module Import -InstanceUniqueID=Unique ID of the instance -SmallerThan=Smaller than -LargerThan=Larger than -IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object. -WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/. -EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account. -EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    -EndPointFor=End point for %s : %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? -RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value -AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. -IPListExample=127.0.0.1 192.168.0.2 [::1] -BaseOnSabeDavVersion=Based on the library SabreDAV version -NotAPublicIp=Not a public IP -MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation. -FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled -EmailTemplate=Template for email -EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax -PDF_SHOW_PROJECT=Show project on document -ShowProjectLabel=Project Label +ResourceSetup=تكوين وحدة الموارد +UseSearchToSelectResource=استخدم نموذج بحث لاختيار مورد (بدلاً من قائمة منسدلة). +DisabledResourceLinkUser=تعطيل ميزة لربط مورد للمستخدمين +DisabledResourceLinkContact=تعطيل ميزة لربط مورد بجهات الاتصال +EnableResourceUsedInEventCheck=يحظر استخدام نفس المورد في نفس الوقت في جدول الأعمال +ConfirmUnactivation=تأكيد إعادة تعيين الوحدة +OnMobileOnly=على الشاشة الصغيرة (الهاتف الذكي) فقط +DisableProspectCustomerType=تعطيل نوع الطرف الثالث "عميل محتمل + عميل" (لذلك يجب أن يكون الطرف الثالث "محتمل" أو "عميل" ، ولكن لا يمكن أن يكون كلاهما) +MAIN_OPTIMIZEFORTEXTBROWSER=تبسيط الواجهة للمكفوفين +MAIN_OPTIMIZEFORTEXTBROWSERDesc=قم بتمكين هذا الخيار إذا كنت شخصًا كفيفًا ، أو إذا كنت تستخدم التطبيق من مستعرض نصي مثل Lynx أو Links. +MAIN_OPTIMIZEFORCOLORBLIND=تغيير لون الواجهة للأشخاص المكفوفين بالألوان +MAIN_OPTIMIZEFORCOLORBLINDDesc=قم بتمكين هذا الخيار إذا كنت شخصًا مصابًا بعمى الألوان ، ففي بعض الحالات ستغير الواجهة إعداد اللون لزيادة التباين. +Protanopia=بروتوبيا +Deuteranopes=الثنائيات +Tritanopes=تريتانوبس +ThisValueCanOverwrittenOnUserLevel=يمكن لكل مستخدم الكتابة فوق هذه القيمة من صفحة المستخدم الخاصة به - علامة التبويب "%s" +DefaultCustomerType=نوع الطرف الثالث الافتراضي لنموذج إنشاء "عميل جديد" +ABankAccountMustBeDefinedOnPaymentModeSetup=ملاحظة: يجب تحديد الحساب المصرفي في الوحدة النمطية لكل وضع دفع (Paypal ، Stripe ، ...) حتى تعمل هذه الميزة. +RootCategoryForProductsToSell=فئة جذر المنتجات للبيع +RootCategoryForProductsToSellDesc=إذا تم تحديدها ، فستتوفر فقط المنتجات الموجودة داخل هذه الفئة أو الأطفال من هذه الفئة في نقطة البيع +DebugBar=شريط التصحيح +DebugBarDesc=شريط أدوات مزود بالعديد من الأدوات لتبسيط تصحيح الأخطاء +DebugBarSetup=إعداد DebugBar +GeneralOptions=خيارات عامة +LogsLinesNumber=عدد الأسطر المراد إظهارها في علامة تبويب السجلات +UseDebugBar=استخدم شريط التصحيح +DEBUGBAR_LOGS_LINES_NUMBER=عدد أسطر السجل الأخيرة التي يجب الاحتفاظ بها في وحدة التحكم +WarningValueHigherSlowsDramaticalyOutput=تحذير ، القيم الأعلى تبطئ الإخراج الدرامي +ModuleActivated=يتم تنشيط الوحدة النمطية %s وتبطئ الواجهة +ModuleActivatedWithTooHighLogLevel=يتم تنشيط الوحدة النمطية %s بمستوى تسجيل مرتفع جدًا (حاول استخدام مستوى أقل للحصول على أداء وأمان أفضل) +ModuleSyslogActivatedButLevelNotTooVerbose=تم تنشيط الوحدة النمطية %s ومستوى السجل (%s) صحيح (ليس مطولًا جدًا) +IfYouAreOnAProductionSetThis=إذا كنت تعمل في بيئة إنتاج ، فيجب عليك تعيين هذه الخاصية على %s. +AntivirusEnabledOnUpload=تم تمكين مكافحة الفيروسات على الملفات التي تم تحميلها +SomeFilesOrDirInRootAreWritable=بعض الملفات أو الدلائل ليست في وضع القراءة فقط +EXPORTS_SHARE_MODELS=يتم مشاركة نماذج التصدير مع الجميع +ExportSetup=إعداد تصدير الوحدة النمطية +ImportSetup=إعداد استيراد الوحدة +InstanceUniqueID=المعرف الفريد للمثيل +SmallerThan=اصغر من +LargerThan=أكبر من +IfTrackingIDFoundEventWillBeLinked=لاحظ أنه إذا تم العثور على معرف تتبع لعنصر ما في البريد الإلكتروني ، أو إذا كان البريد الإلكتروني عبارة عن إجابة على بريد إلكتروني تم تجميعه مسبقًا ومرتبط بكائن ، فسيتم ربط الحدث الذي تم إنشاؤه تلقائيًا بالعنصر ذي الصلة المعروف. +WithGMailYouCanCreateADedicatedPassword=باستخدام حساب GMail ، إذا قمت بتمكين التحقق بخطوتين ، فمن المستحسن إنشاء كلمة مرور ثانية مخصصة للتطبيق بدلاً من استخدام رمز مرور حسابك من https://myaccount.google.com/. +EmailCollectorTargetDir=قد يكون من السلوك المرغوب فيه نقل البريد الإلكتروني إلى علامة / دليل آخر عند معالجته بنجاح. ما عليك سوى تعيين اسم الدليل هنا لاستخدام هذه الميزة (لا تستخدم أحرفًا خاصة في الاسم). لاحظ أنه يجب عليك أيضًا استخدام حساب تسجيل دخول للقراءة / الكتابة. +EmailCollectorLoadThirdPartyHelp=يمكنك استخدام هذا الإجراء لاستخدام محتوى البريد الإلكتروني للعثور على طرف ثالث موجود وتحميله في قاعدة البيانات الخاصة بك. سيتم استخدام الطرف الثالث الذي تم العثور عليه (أو الذي تم إنشاؤه) في الإجراءات التالية التي تحتاج إليه.
    على سبيل المثال ، إذا كنت تريد إنشاء طرف ثالث باسم مستخرج من سلسلة 'Name: name to find' موجودة في النص ، استخدم البريد الإلكتروني للمرسل كبريد إلكتروني ، يمكنك تعيين حقل المعلمة مثل هذا:
    'email = HEADER: ^ From: (. *)؛ name = EXTRACT: BODY: Name: \\ s ([^ \\ s] *)؛ client = SET: 2؛ '
    +EndPointFor=نقطة النهاية لـ %s: %s +DeleteEmailCollector=حذف مُجمع البريد الإلكتروني +ConfirmDeleteEmailCollector=هل أنت متأكد أنك تريد حذف جامع البريد الإلكتروني هذا؟ +RecipientEmailsWillBeReplacedWithThisValue=سيتم دائمًا استبدال رسائل البريد الإلكتروني المستلم بهذه القيمة +AtLeastOneDefaultBankAccountMandatory=يجب تحديد حساب مصرفي افتراضي واحد على الأقل +RESTRICT_ON_IP=السماح بوصول واجهة برمجة التطبيقات إلى عناوين IP معينة للعميل فقط (غير مسموح باستخدام حرف البدل ، استخدم مسافة بين القيم). فارغ يعني أن كل عميل يمكنه الوصول. +IPListExample=127.0.0.1 192.168.0.2 [:: 1] +BaseOnSabeDavVersion=بناء على نسخة مكتبة SabreDAV +NotAPublicIp=ليس IP عام +MakeAnonymousPing=قم بعمل Ping مجهول "+1" لخادم مؤسسة Dolibarr (يتم إجراؤه مرة واحدة فقط بعد التثبيت) للسماح للمؤسسة بحساب عدد تثبيت Dolibarr. +FeatureNotAvailableWithReceptionModule=الميزة غير متاحة عند تمكين استقبال الوحدة +EmailTemplate=نموذج للبريد الإلكتروني +EMailsWillHaveMessageID=ستحتوي رسائل البريد الإلكتروني على علامة "مراجع" تطابق بناء الجملة هذا +PDF_SHOW_PROJECT=عرض المشروع في المستند +ShowProjectLabel=تسمية المشروع +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=تضمين الاسم المستعار في اسم الطرف الثالث +THIRDPARTY_ALIAS=اسم الطرف الثالث - الاسم المستعار الطرف الثالث +ALIAS_THIRDPARTY=الاسم المستعار للطرف الثالث - اسم الطرف الثالث +PDFIn2Languages=عرض الملصق في البي دي اف بلغتين PDF_USE_ALSO_LANGUAGE_CODE=اذا كنت ترغب في تكرار بعض النصوص بلغتين مختلفتين في ملفاتك المولدة بصيغة المستندات المتنقلة . يجب عليك ان ان تحدد اللغة الثانية هنا حتى يتسنى للملفات المولدة ان تحتوي على لغتين في نفس الصفحة . اللغة المختارة اثناء توليد المستند واللغة المختارة هنا (فقط بعض قوالب صيغة المستندات المتنقلة تدعم هذه الميزة) . ابق الخيار فارغاً للتوليد بلغة واحدة -PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF -FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. +PDF_USE_A=إنشاء مستندات PDF بتنسيق PDF / A بدلاً من تنسيق PDF الافتراضي +FafaIconSocialNetworksDesc=أدخل هنا رمز رمز FontAwesome. إذا كنت لا تعرف ما هو FontAwesome ، فيمكنك استخدام القيمة العامة fa-address-book. RssNote=ملاحظة: كل تعريف لمصدر اخبار مختصرة يوفر بريمج يجب تفعيله ليكون متاحا في لوحة المعلومات JumpToBoxes=اذهب الى الاعدادت -> البريمجات -MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time" -MeasuringScaleDesc=The scale is the number of places you have to move the decimal part to match the default reference unit. For "time" unit type, it is the number of seconds. Values between 80 and 99 are reserved values. -TemplateAdded=Template added -TemplateUpdated=Template updated -TemplateDeleted=Template deleted -MailToSendEventPush=Event reminder email -SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security -DictionaryProductNature= Nature of product -CountryIfSpecificToOneCountry=Country (if specific to a given country) -YouMayFindSecurityAdviceHere=You may find security advisory here -ModuleActivatedMayExposeInformation=This PHP extension may expose sensitive data. If you don't need it, disable it. -ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment. -CombinationsSeparator=Separator character for product combinations -SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples +MeasuringUnitTypeDesc=استخدم هنا قيمة مثل "الحجم" ، "السطح" ، "الحجم" ، "الوزن" ، "الوقت" +MeasuringScaleDesc=المقياس هو عدد الأماكن التي يجب عليك نقل الجزء العشري منها لمطابقة الوحدة المرجعية الافتراضية. بالنسبة لنوع وحدة "الوقت" ، فهو عدد الثواني. القيم بين 80 و 99 هي قيم محجوزة. +TemplateAdded=تمت إضافة القالب +TemplateUpdated=تم تحديث النموذج +TemplateDeleted=تم حذف النموذج +MailToSendEventPush=البريد الإلكتروني لتذكير الحدث +SwitchThisForABetterSecurity=يوصى بتبديل هذه القيمة إلى %s لمزيد من الأمان +DictionaryProductNature= طبيعة المنتج +CountryIfSpecificToOneCountry=البلد (إذا كانت محددة لبلد معين) +YouMayFindSecurityAdviceHere=قد تجد نصائح أمنية هنا +ModuleActivatedMayExposeInformation=قد يؤدي امتداد PHP هذا إلى كشف بيانات حساسة. إذا لم تكن بحاجة إليه ، فقم بتعطيله. +ModuleActivatedDoNotUseInProduction=تم تمكين وحدة مصممة للتطوير. لا تقم بتمكينه في بيئة الإنتاج. +CombinationsSeparator=حرف فاصل لتركيبات المنتج +SeeLinkToOnlineDocumentation=انظر الارتباط إلى التوثيق عبر الإنترنت في القائمة العلوية للحصول على أمثلة SHOW_SUBPRODUCT_REF_IN_PDF=اذا كانت الميزة "%s" من الوحدة %s مستخدمة ، اظهر التفاصيل للمنتجات الفرعية في الملفات بصيغة المستندات المتنقلة -AskThisIDToYourBank=Contact your bank to get this ID -AdvancedModeOnly=Permision available in Advanced permission mode only -ConfFileIsReadableOrWritableByAnyUsers=The conf file is readable or writable by any users. Give permission to web server user and group only. -MailToSendEventOrganization=Event Organization -MailToPartnership=Partnership -AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form -YouShouldDisablePHPFunctions=You should disable PHP functions -IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions -NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) -RecommendedValueIs=Recommended: %s +AskThisIDToYourBank=اتصل بالمصرف الذي تتعامل معه للحصول على هذا المعرف +AdvancedModeOnly=الإذن متاح في وضع الإذن المتقدم فقط +ConfFileIsReadableOrWritableByAnyUsers=ملف conf يمكن قراءته أو الكتابة عليه من قبل أي مستخدم. إعطاء الإذن لمستخدم خادم الويب والمجموعة فقط. +MailToSendEventOrganization=تنظيم الأحداث +MailToPartnership=شراكة +AGENDA_EVENT_DEFAULT_STATUS=حالة الحدث الافتراضية عند إنشاء حدث من النموذج +YouShouldDisablePHPFunctions=يجب عليك تعطيل وظائف PHP +IfCLINotRequiredYouShouldDisablePHPFunctions=باستثناء إذا كنت بحاجة إلى تشغيل أوامر النظام في رمز مخصص ، يجب عليك تعطيل وظائف PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions +NoWritableFilesFoundIntoRootDir=لم يتم العثور على ملفات أو أدلة قابلة للكتابة للبرامج الشائعة في الدليل الجذر الخاص بك (جيد) +RecommendedValueIs=موصى به: %s Recommended=موصى بها -NotRecommended=Not recommended -ARestrictedPath=Some restricted path -CheckForModuleUpdate=Check for external modules updates -CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. -ModuleUpdateAvailable=An update is available -NoExternalModuleWithUpdate=No updates found for external modules -SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) -YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. -RandomlySelectedIfSeveral=Randomly selected if several pictures are available -DatabasePasswordObfuscated=Database password is obfuscated in conf file -DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file -APIsAreNotEnabled=APIs modules are not enabled -YouShouldSetThisToOff=You should set this to 0 or off -InstallAndUpgradeLockedBy=Install and upgrades are locked by the file %s -OldImplementation=Old implementation -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=If some online payment modules are enabled (Paypal, Stripe, ...), add a link on the PDF to make the online payment -DashboardDisableGlobal=Disable globally all the thumbs of open objects -BoxstatsDisableGlobal=Disable totally box statistics -DashboardDisableBlocks=Thumbs of open objects (to process or late) on main dashboard -DashboardDisableBlockAgenda=Disable the thumb for agenda -DashboardDisableBlockProject=Disable the thumb for projects -DashboardDisableBlockCustomer=Disable the thumb for customers -DashboardDisableBlockSupplier=Disable the thumb for suppliers -DashboardDisableBlockContract=Disable the thumb for contracts -DashboardDisableBlockTicket=Disable the thumb for tickets -DashboardDisableBlockBank=Disable the thumb for banks -DashboardDisableBlockAdherent=Disable the thumb for memberships -DashboardDisableBlockExpenseReport=Disable the thumb for expense reports -DashboardDisableBlockHoliday=Disable the thumb for leaves -EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -LanguageAndPresentation=Language and presentation -SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -PDF_USE_1A=Generate PDF with PDF/A-1b format -MissingTranslationForConfKey = Missing translation for %s -NativeModules=Native modules -NoDeployedModulesFoundWithThisSearchCriteria=No modules found for these search criteria -API_DISABLE_COMPRESSION=Disable compression of API responses -EachTerminalHasItsOwnCounter=Each terminal use its own counter. -FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first -PreviousHash=Previous hash -LateWarningAfter="Late" warning after -TemplateforBusinessCards=Template for a business card in different size -InventorySetup= Inventory Setup -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +NotRecommended=لا ينصح +ARestrictedPath=Some restricted path for data files +CheckForModuleUpdate=تحقق من وجود تحديثات الوحدات الخارجية +CheckForModuleUpdateHelp=سيتصل هذا الإجراء بمحرري الوحدات الخارجية للتحقق من توفر إصدار جديد. +ModuleUpdateAvailable=تحديث متاح +NoExternalModuleWithUpdate=لم يتم العثور على تحديثات للوحدات الخارجية +SwaggerDescriptionFile=ملف وصف Swagger API (للاستخدام مع redoc على سبيل المثال) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=لقد قمت بتمكين WS API الموقوف. يجب عليك استخدام REST API بدلاً من ذلك. +RandomlySelectedIfSeveral=يتم اختياره عشوائيًا في حالة توفر عدة صور +SalesRepresentativeInfo=For Proposals, Orders, Invoices. +DatabasePasswordObfuscated=كلمة مرور قاعدة البيانات مشوشة في ملف conf +DatabasePasswordNotObfuscated=لم يتم إخفاء كلمة مرور قاعدة البيانات في ملف conf +APIsAreNotEnabled=لم يتم تمكين الوحدات النمطية لواجهات برمجة التطبيقات +YouShouldSetThisToOff=يجب عليك ضبط هذا على 0 أو إيقاف تشغيله +InstallAndUpgradeLockedBy=التثبيت والترقيات مقفلة بالملف %s +OldImplementation=التنفيذ القديم +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=إذا تم تمكين بعض وحدات الدفع عبر الإنترنت (Paypal ، Stripe ، ...) ، فأضف رابطًا في ملف PDF لإجراء الدفع عبر الإنترنت +DashboardDisableGlobal=قم بتعطيل جميع إبهام الكائنات المفتوحة بشكل عام +BoxstatsDisableGlobal=تعطيل إحصائيات الصندوق تمامًا +DashboardDisableBlocks=إبهام الكائنات المفتوحة (للمعالجة أو المتأخرة) على لوحة القيادة الرئيسية +DashboardDisableBlockAgenda=تعطيل الإبهام لجدول الأعمال +DashboardDisableBlockProject=تعطيل الإبهام للمشاريع +DashboardDisableBlockCustomer=تعطيل الإبهام للعملاء +DashboardDisableBlockSupplier=تعطيل الإبهام للموردين +DashboardDisableBlockContract=تعطيل الإبهام للعقود +DashboardDisableBlockTicket=تعطيل الإبهام للتذاكر +DashboardDisableBlockBank=تعطيل الإبهام للبنوك +DashboardDisableBlockAdherent=تعطيل الإبهام للعضويات +DashboardDisableBlockExpenseReport=تعطيل الإبهام لتقارير المصروفات +DashboardDisableBlockHoliday=تعطيل الإبهام للأوراق +EnabledCondition=شرط تمكين الحقل (إذا لم يتم تمكينه ، فستظل الرؤية متوقفة دائمًا) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=إذا كنت تريد استخدام ضريبة ثانية ، فيجب عليك أيضًا تمكين ضريبة المبيعات الأولى +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=إذا كنت تريد استخدام ضريبة ثالثة ، فيجب عليك أيضًا تمكين ضريبة المبيعات الأولى +LanguageAndPresentation=اللغة والعرض +SkinAndColors=الجلد والألوان +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=إذا كنت تريد استخدام ضريبة ثانية ، فيجب عليك أيضًا تمكين ضريبة المبيعات الأولى +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=إذا كنت تريد استخدام ضريبة ثالثة ، فيجب عليك أيضًا تمكين ضريبة المبيعات الأولى +PDF_USE_1A=قم بإنشاء ملف PDF بتنسيق PDF / A-1b +MissingTranslationForConfKey = ترجمة مفقودة لـ %s +NativeModules=الوحدات الأصلية +NoDeployedModulesFoundWithThisSearchCriteria=لم يتم العثور على وحدات لمعايير البحث هذه +API_DISABLE_COMPRESSION=تعطيل ضغط استجابات API +EachTerminalHasItsOwnCounter=كل محطة تستخدم العداد الخاص بها. +FillAndSaveAccountIdAndSecret=قم بتعبئة وحفظ معرف الحساب والسرية أولاً +PreviousHash=التجزئة السابقة +LateWarningAfter=تحذير "متأخر" بعد +TemplateforBusinessCards=قالب لبطاقة عمل بحجم مختلف +InventorySetup= إعداد الجرد +ExportUseLowMemoryMode=استخدم وضع ذاكرة منخفضة +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = الويب هوك +ModuleWebhookDesc = واجهة للقبض على مشغلات dolibarr وإرسالها إلى عنوان URL +WebhookSetup = إعداد Webhook +Settings = الإعدادات +WebhookSetupPage = صفحة إعداد Webhook +ShowQuickAddLink=أظهر زرًا لإضافة عنصر بسرعة في القائمة العلوية اليمنى + +HashForPing=تجزئة تستخدم لأداة ping +ReadOnlyMode=هو المثال في وضع "للقراءة فقط" +DEBUGBAR_USE_LOG_FILE=استخدم ملف dolibarr.log لتعويض السجلات +UsingLogFileShowAllRecordOfSubrequestButIsSlower=استخدم ملف dolibarr.log لتعويض السجلات بدلاً من اصطياد الذاكرة الحية. يسمح لك بالتقاط جميع السجلات بدلاً من تسجيل العملية الحالية فقط (لذلك بما في ذلك واحدة من صفحات طلبات ajax الفرعية) ولكنه سيجعل مثيلك بطيئًا جدًا. لا ينصح. +FixedOrPercent=ثابت (استخدام الكلمة الرئيسية "ثابت") أو النسبة المئوية (استخدام الكلمة الرئيسية "النسبة المئوية") +DefaultOpportunityStatus=حالة الفرصة الافتراضية (الحالة الأولى عند إنشاء العميل المتوقع) + +IconAndText=الرمز والنص +TextOnly=نص فقط +IconOnlyAllTextsOnHover=رمز فقط - تظهر جميع النصوص أسفل رمز في شريط قوائم التمرير بالماوس +IconOnlyTextOnHover=رمز فقط - يظهر نص الرمز أسفل رمز على الماوس ، قم بتمرير الماوس فوق الرمز +IconOnly=رمز فقط - نص على تلميح الأداة فقط +INVOICE_ADD_ZATCA_QR_CODE=إظهار رمز الاستجابة السريعة ZATCA على الفواتير +INVOICE_ADD_ZATCA_QR_CODEMore=تحتاج بعض الدول العربية إلى رمز الاستجابة السريعة هذا على فواتيرها +INVOICE_ADD_SWISS_QR_CODE=أظهر رمز QR-Bill السويسري على الفواتير +INVOICE_SHOW_SHIPPING_ADDRESS=عرض عنوان الشحن +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=رابط URL للشبكة الاجتماعية. استخدم {socialid} للجزء المتغير الذي يحتوي على معرف الشبكة الاجتماعية. +IfThisCategoryIsChildOfAnother=إذا كانت هذه الفئة تابعة لفئة أخرى +DarkThemeMode=وضع المظهر الداكن +AlwaysDisabled=دائما معطل +AccordingToBrowser=حسب المتصفح +AlwaysEnabled=ممكّن دائمًا +DoesNotWorkWithAllThemes=لن تعمل مع جميع المواضيع +NoName=بدون اسم +ShowAdvancedOptions= عرض الخيارات المتقدمة +HideAdvancedoptions= إخفاء الخيارات المتقدمة +CIDLookupURL=تجلب الوحدة عنوان URL يمكن استخدامه بواسطة أداة خارجية للحصول على اسم طرف ثالث أو جهة اتصال من رقم هاتفه. URL المطلوب استخدامه هو: +OauthNotAvailableForAllAndHadToBeCreatedBefore=مصادقة OAUTH2 غير متاحة لجميع المضيفين ، ويجب أن يكون قد تم إنشاء رمز مميز بالأذونات الصحيحة في المنبع باستخدام الوحدة النمطية OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=خدمة مصادقة OAUTH2 +DontForgetCreateTokenOauthMod=يجب إنشاء رمز مميز بالأذونات الصحيحة مع وحدة OAUTH النمطية +MAIN_MAIL_SMTPS_AUTH_TYPE=طريقة المصادقة +UsePassword=استخدم كلمة مرور +UseOauth=استخدم رمز OAUTH +Images=الصور +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=تجلب الوحدة عنوان URL يمكن استخدامه بواسطة أداة خارجية للحصول على اسم طرف ثالث أو جهة اتصال من رقم هاتفه. URL المطلوب استخدامه هو: +ScriptIsEmpty=لم يتم كتابة كود برمجي +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=أحداث قابله للاثارة +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=التحذيرات معطلة +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=الاجهزة المكتبية فقط +DesktopsAndSmartphones=للموبايل و الاجهزة المكتبية +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/ar_SA/agenda.lang b/htdocs/langs/ar_SA/agenda.lang index 4d1be2df328..9d44ff39b8d 100644 --- a/htdocs/langs/ar_SA/agenda.lang +++ b/htdocs/langs/ar_SA/agenda.lang @@ -31,20 +31,21 @@ ViewWeek=عرض اسبوعي ViewPerUser=لكل وجهة نظر المستخدم ViewPerType=العرض حسب النوع AutoActions= إكمال تلقائي -AgendaAutoActionDesc= Here you may define events which you want Dolibarr to create automatically in Agenda. If nothing is checked, only manual actions will be included in logs and displayed in Agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved. -AgendaSetupOtherDesc= This page provides options to allow the export of your Dolibarr events into an external calendar (Thunderbird, Google Calendar etc...) +AgendaAutoActionDesc= هنا يمكنك تحديد الأحداث التي تريد أن ينشئها Dolibarr تلقائيًا في الأجندة. إذا لم يتم تحديد أي شيء ، فسيتم تضمين الإجراءات اليدوية فقط في السجلات وعرضها في الأجندة. لن يتم حفظ التتبع التلقائي لإجراءات العمل التي تتم على الكائنات (التحقق من الصحة ، تغيير الحالة). +AgendaSetupOtherDesc= توفر هذه الصفحة خيارات للسماح بتصدير أحداث Dolibarr إلى تقويم خارجي (Thunderbird وتقويم Google وما إلى ذلك ...) AgendaExtSitesDesc=تسمح هذه الصفحة بالإعلان عن المصادر الخارجية للتقويمات لرؤية أحداثها في جدول أعمال Dolibarr. ActionsEvents=الأحداث التي سيقوم دوليبار بإنشاء أعمال في جدول الأعمال بشكل تلقائي -EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup. +EventRemindersByEmailNotEnabled=لم يتم تمكين تذكيرات الأحداث عبر البريد الإلكتروني في إعداد الوحدة النمطية %s. ##### Agenda event labels ##### NewCompanyToDolibarr=تم إنشاء الطرف الثالث %s -COMPANY_MODIFYInDolibarr=Third party %s modified -COMPANY_DELETEInDolibarr=Third party %s deleted +COMPANY_MODIFYInDolibarr=الطرف الثالث %s تم تعديله +COMPANY_DELETEInDolibarr=تم حذف %s الخاص بالطرف الثالث ContractValidatedInDolibarr=العقد%s تم التأكد من صلاحيته -CONTRACT_DELETEInDolibarr=Contract %s deleted +CONTRACT_DELETEInDolibarr=تم حذف العقد %s PropalClosedSignedInDolibarr=الإقتراح%sتم توقعية PropalClosedRefusedInDolibarr=الإقتراح%s تم رفضة PropalValidatedInDolibarr=اقتراح %s التحقق من صحة +PropalBackToDraftInDolibarr=الاقتراح %s يعود إلى حالة المسودة PropalClassifiedBilledInDolibarr=الإقتراح%s تصنف تم دفعة InvoiceValidatedInDolibarr=تم التحقق من صحة الفاتورة %s InvoiceValidatedInDolibarrFromPos=الفاتورة%s تم التأكد من صلاحيتها من نقاط البيع @@ -56,16 +57,18 @@ MemberValidatedInDolibarr=العضو%s التأكد من صلاحيته MemberModifiedInDolibarr=العضو %sتم تعديلة MemberResiliatedInDolibarr=العضو %sتم إنهاؤه MemberDeletedInDolibarr=العضو %s تم حذفة -MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added -MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified -MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted +MemberExcludedInDolibarr=تم استبعاد العضو %s +MemberSubscriptionAddedInDolibarr=تمت إضافة اشتراك %s للعضو %s +MemberSubscriptionModifiedInDolibarr=اشتراك %s للعضو %s معدّل +MemberSubscriptionDeletedInDolibarr=تم حذف الاشتراك %s للعضو %s ShipmentValidatedInDolibarr=شحنة%s التأكد من صلاحيتها ShipmentClassifyClosedInDolibarr=الشحنة %sتم تصنيفها مدفوعة -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified re-open -ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status +ShipmentUnClassifyCloseddInDolibarr=إعادة فتح الشحنة %s المصنفة +ShipmentBackToDraftInDolibarr=تعود الشحنة %s إلى حالة المسودة ShipmentDeletedInDolibarr=الشحنة%sتم حذفها -ShipmentCanceledInDolibarr=Shipment %s canceled -ReceptionValidatedInDolibarr=Reception %s validated +ShipmentCanceledInDolibarr=تم إلغاء الشحنة %s +ReceptionValidatedInDolibarr=تم التحقق من صحة الاستقبال %s +ReceptionClassifyClosedInDolibarr=الاستقبال %s مصنف مغلق OrderCreatedInDolibarr=الطلب %s تم إنشاؤة OrderValidatedInDolibarr=الطلب %s تم التحقق منه OrderDeliveredInDolibarr=الطلب %s مصنف تم التوصيل @@ -74,31 +77,31 @@ OrderBilledInDolibarr=الطلب%s مصنف تم الدفع OrderApprovedInDolibarr=الطلب %s تم الموافقة علية OrderRefusedInDolibarr=الطلب %s تم رفضه OrderBackToDraftInDolibarr=الطلب %s تم إرجاعة إلى حالة المسودة -ProposalSentByEMail=Commercial proposal %s sent by email -ContractSentByEMail=Contract %s sent by email -OrderSentByEMail=Sales order %s sent by email -InvoiceSentByEMail=Customer invoice %s sent by email -SupplierOrderSentByEMail=Purchase order %s sent by email -ORDER_SUPPLIER_DELETEInDolibarr=Purchase order %s deleted -SupplierInvoiceSentByEMail=Vendor invoice %s sent by email -ShippingSentByEMail=Shipment %s sent by email +ProposalSentByEMail=تم إرسال الاقتراح التجاري %s عبر البريد الإلكتروني +ContractSentByEMail=تم إرسال العقد %s عن طريق البريد الإلكتروني +OrderSentByEMail=تم إرسال أمر المبيعات %s عبر البريد الإلكتروني +InvoiceSentByEMail=فاتورة العميل رقم %s مُرسلة عبر البريد الإلكتروني +SupplierOrderSentByEMail=تم إرسال أمر الشراء %s عبر البريد الإلكتروني +ORDER_SUPPLIER_DELETEInDolibarr=تم حذف أمر الشراء %s +SupplierInvoiceSentByEMail=فاتورة البائع %s مُرسلة عبر البريد الإلكتروني +ShippingSentByEMail=شحنة %s أرسلت عن طريق البريد الإلكتروني ShippingValidated= الشحنة %s تم التأكد من صلاحيتها -InterventionSentByEMail=Intervention %s sent by email +InterventionSentByEMail=تم إرسال التدخل %s عبر البريد الإلكتروني ProposalDeleted=تم حذف العرض OrderDeleted=تم حذف الطلب InvoiceDeleted=تم حذف الفاتورة -DraftInvoiceDeleted=Draft invoice deleted -CONTACT_CREATEInDolibarr=Contact %s created -CONTACT_MODIFYInDolibarr=Contact %s modified -CONTACT_DELETEInDolibarr=Contact %s deleted +DraftInvoiceDeleted=تم حذف مسودة الفاتورة +CONTACT_CREATEInDolibarr=تم إنشاء جهة الاتصال %s +CONTACT_MODIFYInDolibarr=تعديل الاتصال %s +CONTACT_DELETEInDolibarr=تم حذف جهة الاتصال %s PRODUCT_CREATEInDolibarr=المنتج %s تم انشاؤه PRODUCT_MODIFYInDolibarr=المنتج %sتم تعديلة PRODUCT_DELETEInDolibarr=المنتج%s تم حذفة -HOLIDAY_CREATEInDolibarr=Request for leave %s created -HOLIDAY_MODIFYInDolibarr=Request for leave %s modified -HOLIDAY_APPROVEInDolibarr=Request for leave %s approved -HOLIDAY_VALIDATEInDolibarr=Request for leave %s validated -HOLIDAY_DELETEInDolibarr=Request for leave %s deleted +HOLIDAY_CREATEInDolibarr=تم إنشاء طلب إجازة %s +HOLIDAY_MODIFYInDolibarr=طلب إجازة تعديل %s +HOLIDAY_APPROVEInDolibarr=طلب إجازة تمت الموافقة على %s +HOLIDAY_VALIDATEInDolibarr=تم التحقق من صحة طلب المغادرة %s +HOLIDAY_DELETEInDolibarr=طلب إجازة %s محذوف EXPENSE_REPORT_CREATEInDolibarr=تقرير المصروفات %sتم إنشاؤة EXPENSE_REPORT_VALIDATEInDolibarr=تقرير المصروفات %s تم التحقق من صحتة EXPENSE_REPORT_APPROVEInDolibarr=تقرير المصروفات %s تم الموافقة عليه @@ -107,22 +110,22 @@ EXPENSE_REPORT_REFUSEDInDolibarr=تقرير المصروفات%s تم رفضة PROJECT_CREATEInDolibarr=مشروع٪ الصورة التي تم إنشاؤها PROJECT_MODIFYInDolibarr=المشروع %s تم تعديلة PROJECT_DELETEInDolibarr=المشروع %s تم حذفة -TICKET_CREATEInDolibarr=Ticket %s created -TICKET_MODIFYInDolibarr=Ticket %s modified -TICKET_ASSIGNEDInDolibarr=Ticket %s assigned -TICKET_CLOSEInDolibarr=Ticket %s closed -TICKET_DELETEInDolibarr=Ticket %s deleted -BOM_VALIDATEInDolibarr=BOM validated -BOM_UNVALIDATEInDolibarr=BOM unvalidated -BOM_CLOSEInDolibarr=BOM disabled -BOM_REOPENInDolibarr=BOM reopen -BOM_DELETEInDolibarr=BOM deleted -MRP_MO_VALIDATEInDolibarr=MO validated -MRP_MO_UNVALIDATEInDolibarr=MO set to draft status -MRP_MO_PRODUCEDInDolibarr=MO produced -MRP_MO_DELETEInDolibarr=MO deleted -MRP_MO_CANCELInDolibarr=MO canceled -PAIDInDolibarr=%s paid +TICKET_CREATEInDolibarr=تم إنشاء التذكرة %s +TICKET_MODIFYInDolibarr=تم تعديل التذكرة %s +TICKET_ASSIGNEDInDolibarr=تم تعيين التذكرة %s +TICKET_CLOSEInDolibarr=تم إغلاق التذكرة %s +TICKET_DELETEInDolibarr=تم حذف التذكرة %s +BOM_VALIDATEInDolibarr=تم التحقق من صحة BOM +BOM_UNVALIDATEInDolibarr=لم يتم التحقق من BOM +BOM_CLOSEInDolibarr=تم تعطيل BOM +BOM_REOPENInDolibarr=إعادة فتح BOM +BOM_DELETEInDolibarr=تم حذف BOM +MRP_MO_VALIDATEInDolibarr=تم التحقق من صحة MO +MRP_MO_UNVALIDATEInDolibarr=تم تعيين MO على وضع المسودة +MRP_MO_PRODUCEDInDolibarr=أنتجت MO +MRP_MO_DELETEInDolibarr=تم حذف MO +MRP_MO_CANCELInDolibarr=تم إلغاء MO +PAIDInDolibarr=%s المدفوعة ##### End agenda events ##### AgendaModelModule=نماذج المستندات للحدث DateActionStart=تاريخ البدء @@ -131,10 +134,10 @@ AgendaUrlOptions1=يمكنك أيضا إضافة المعايير التالية AgendaUrlOptions3=وجينا =%sإلى تقييد الإخراج إلى الإجراءات التي يملكها المستخدم%s. AgendaUrlOptionsNotAdmin=لوجينا=!%s لمنع اخراج الجراءات التى لا يمتلكها المستخدم %s. AgendaUrlOptions4=لوجينت =%s لتقييد الإخراج على الإجراءات المعينة للمستخدم %s (المالك والآخرين). -AgendaUrlOptionsProject=project=__PROJECT_ID__ to restrict output to actions linked to project __PROJECT_ID__. -AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto to exclude automatic events. -AgendaUrlOptionsIncludeHolidays=includeholidays=1 to include events of holidays. -AgendaShowBirthdayEvents=Birthdays of contacts +AgendaUrlOptionsProject= مشروع = __ PROJECT_ID__ لتقييد الإخراج بالإجراءات المرتبطة بالمشروع __PROJECT_ID__ . +AgendaUrlOptionsNotAutoEvent= notactiontype = systemauto لاستبعاد الأحداث التلقائية. +AgendaUrlOptionsIncludeHolidays= تشمل الإجازات = 1 لتضمين أحداث الأعياد. +AgendaShowBirthdayEvents=أعياد ميلاد جهات الاتصال AgendaHideBirthdayEvents=إخفاء تواريخ ميلاد جهات الإتصال Busy=مشغول ExportDataset_event1=قائمة الأحداث في جدول الأعمال @@ -143,9 +146,9 @@ DefaultWorkingHours=افتراضي ساعات العمل في اليوم (على # External Sites ical ExportCal=تصدير التقويم ExtSites=استيراد التقويمات الخارجية -ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users. +ExtSitesEnableThisTool=إظهار التقويمات الخارجية (المحددة في الإعداد العام) في الأجندة. لا يؤثر على التقويمات الخارجية التي حددها المستخدمون. ExtSitesNbOfAgenda=عدد التقويمات -AgendaExtNb=Calendar no. %s +AgendaExtNb=التقويم لا. %s ExtSiteUrlAgenda=عنوان المتصفح للدخول لملف .ical ExtSiteNoLabel=لا يوجد وصف VisibleTimeRange=نطاق زمني مرئي @@ -156,19 +159,21 @@ ActionType=نوع الحدث DateActionBegin=تاريخ البدء الحدث ConfirmCloneEvent=هل انت متأكد انك ترغب في استنساخ الحدث %s ؟ RepeatEvent=تكرار الحدث -OnceOnly=Once only +OnceOnly=مرة واحدة فقط +EveryDay=كل يوم EveryWeek=كل اسبوع EveryMonth=كل شهر DayOfMonth=يوم من الشهر DayOfWeek=يوم من الأسبوع DateStartPlusOne=تاريخ بدء + 1 ساعة -SetAllEventsToTodo=Set all events to todo -SetAllEventsToInProgress=Set all events to in progress -SetAllEventsToFinished=Set all events to finished -ReminderTime=Reminder period before the event -TimeType=Duration type -ReminderType=Callback type -AddReminder=Create an automatic reminder notification for this event -ErrorReminderActionCommCreation=Error creating the reminder notification for this event -BrowserPush=Browser Popup Notification -ActiveByDefault=Enabled by default +SetAllEventsToTodo=اضبط كل الأحداث على ما يجب فعله +SetAllEventsToInProgress=اضبط كل الأحداث على قيد التقدم +SetAllEventsToFinished=اضبط جميع الأحداث على الانتهاء +ReminderTime=فترة تذكير قبل الحدث +TimeType=نوع المدة +ReminderType=نوع رد الاتصال +AddReminder=إنشاء إشعار تذكير تلقائي لهذا الحدث +ErrorReminderActionCommCreation=خطأ في إنشاء إشعار التذكير لهذا الحدث +BrowserPush=إعلام المتصفح المنبثق +ActiveByDefault=يتم التمكين افتراضيًا +Until=حتى diff --git a/htdocs/langs/ar_SA/assets.lang b/htdocs/langs/ar_SA/assets.lang index 6c5867709d9..da5da17a330 100644 --- a/htdocs/langs/ar_SA/assets.lang +++ b/htdocs/langs/ar_SA/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,50 +16,171 @@ # # Generic # -Assets = Assets -NewAsset = New asset -AccountancyCodeAsset = Accounting code (asset) -AccountancyCodeDepreciationAsset = Accounting code (depreciation asset account) -AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account) -NewAssetType=New asset type -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified -AssetType=Asset type -AssetsLines=Assets +NewAsset=أصل جديد +AccountancyCodeAsset=كود المحاسبة (الأصول) +AccountancyCodeDepreciationAsset=كود المحاسبة (حساب إهلاك الاصول) +AccountancyCodeDepreciationExpense=كود المحاسبة (حساب مصاريف الإهلاك) +AssetsLines=الأصول DeleteType=حذف -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? -ShowTypeCard=وتبين من نوع '٪ ق' +DeleteAnAssetType=حذف نموذج أصل +ConfirmDeleteAssetType=هل أنت متأكد أنك تريد حذف نموذج الأصول هذا؟ +ShowTypeCard=عرض الموديل "%s" # Module label 'ModuleAssetsName' -ModuleAssetsName = Assets +ModuleAssetsName=الأصول # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Assets description +ModuleAssetsDesc=وصف الأصول # # Admin page # -AssetsSetup = Assets setup -Settings = Settings -AssetsSetupPage = Assets setup page -ExtraFieldsAssetsType = Complementary attributes (Asset type) -AssetsType=Asset type -AssetsTypeId=Asset type id -AssetsTypeLabel=Asset type label -AssetsTypes=Assets types +AssetSetup=إعداد الأصول +AssetSetupPage=صفحة إعداد الأصول +ExtraFieldsAssetModel=السمات التكميلية (نموذج الأصول) + +AssetsType=نموذج الأصول +AssetsTypeId=معرف نموذج الأصل +AssetsTypeLabel=تسمية نموذج الأصول +AssetsTypes=نماذج الأصول +ASSET_ACCOUNTANCY_CATEGORY=مجموعة محاسبة الأصول الثابتة # # Menu # -MenuAssets = Assets -MenuNewAsset = New asset -MenuTypeAssets = Type assets -MenuListAssets = قائمة -MenuNewTypeAssets = جديد -MenuListTypeAssets = قائمة +MenuAssets=الأصول +MenuNewAsset=أصل جديد +MenuAssetModels=أصول النموذج +MenuListAssets=قائمة +MenuNewAssetModel=نموذج الأصول الجديدة +MenuListAssetModels=قائمة # # Module # -NewAssetType=New asset type -NewAsset=New asset +ConfirmDeleteAsset=هل تريد حقًا إزالة هذا الأصل؟ + +# +# Tab +# +AssetDepreciationOptions=خيارات الإهلاك +AssetAccountancyCodes=حسابات المحاسبة +AssetDepreciation=الاستهلاك + +# +# Asset +# +Asset=أصل +Assets=الأصول +AssetReversalAmountHT=مبلغ عكسي (بدون ضرائب) +AssetAcquisitionValueHT=مبلغ الاستحواذ (بدون ضرائب) +AssetRecoveredVAT=استرداد ضريبة القيمة المضافة +AssetReversalDate=تاريخ الانعكاس +AssetDateAcquisition=تاريخ الاستحواذ +AssetDateStart=تاريخ البدء +AssetAcquisitionType=نوع الاستحواذ +AssetAcquisitionTypeNew=جديد +AssetAcquisitionTypeOccasion=استخدم +AssetType=نوع الأصل +AssetTypeIntangible=غير الملموسة +AssetTypeTangible=ملموس +AssetTypeInProgress=قيد التنفيذ +AssetTypeFinancial=الأمور المالية +AssetNotDepreciated=غير مستهلكة +AssetDisposal=ازالة +AssetConfirmDisposalAsk=هل أنت متأكد من أنك تريد التخلص من الأصل %s ؟ +AssetConfirmReOpenAsk=هل أنت متأكد من أنك تريد إعادة فتح الأصل %s ؟ + +# +# Asset status +# +AssetInProgress=قيد التنفيذ +AssetDisposed=استبعاده +AssetRecorded=محسوب + +# +# Asset disposal +# +AssetDisposalDate=تاريخ التصرف +AssetDisposalAmount=قيمة التخلص +AssetDisposalType=نوع التخلص +AssetDisposalDepreciated=استهلاك سنة التحويل +AssetDisposalSubjectToVat=يخضع التصرف لضريبة القيمة المضافة + +# +# Asset model +# +AssetModel=نموذج الأصول +AssetModels=نماذج الأصول + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=الاستهلاك الاقتصادي +AssetDepreciationOptionAcceleratedDepreciation=الاستهلاك المعجل (الضريبة) +AssetDepreciationOptionDepreciationType=نوع الإهلاك +AssetDepreciationOptionDepreciationTypeLinear=خطي +AssetDepreciationOptionDepreciationTypeDegressive=الانحدار +AssetDepreciationOptionDepreciationTypeExceptional=استثنائي +AssetDepreciationOptionDegressiveRate=معدل الانحدار +AssetDepreciationOptionAcceleratedDepreciation=الاستهلاك المعجل (الضريبة) +AssetDepreciationOptionDuration=مدة +AssetDepreciationOptionDurationType=اكتب المدة +AssetDepreciationOptionDurationTypeAnnual=سنوي +AssetDepreciationOptionDurationTypeMonthly=شهريا +AssetDepreciationOptionDurationTypeDaily=اليومي +AssetDepreciationOptionRate=معدل (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=قاعدة الإهلاك (باستثناء ضريبة القيمة المضافة) +AssetDepreciationOptionAmountBaseDeductibleHT=الوعاء القابل للخصم (باستثناء ضريبة القيمة المضافة) +AssetDepreciationOptionTotalAmountLastDepreciationHT=إجمالي مبلغ الاستهلاك الأخير (باستثناء ضريبة القيمة المضافة) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=الاستهلاك الاقتصادي +AssetAccountancyCodeAsset=أصل +AssetAccountancyCodeDepreciationAsset=الاستهلاك +AssetAccountancyCodeDepreciationExpense=مصاريف الاستهلاك +AssetAccountancyCodeValueAssetSold=قيمة الأصول المتخلص منها +AssetAccountancyCodeReceivableOnAssignment=مستحق عند التصرف +AssetAccountancyCodeProceedsFromSales=حصيلة التصرف +AssetAccountancyCodeVatCollected=تم تحصيل ضريبة القيمة المضافة +AssetAccountancyCodeVatDeductible=استرداد ضريبة القيمة المضافة على الأصول +AssetAccountancyCodeDepreciationAcceleratedDepreciation=الاستهلاك المعجل (الضريبة) +AssetAccountancyCodeAcceleratedDepreciation=الحساب +AssetAccountancyCodeEndowmentAcceleratedDepreciation=مصاريف الاستهلاك +AssetAccountancyCodeProvisionAcceleratedDepreciation=التملك / المخصصات + +# +# Asset depreciation +# +AssetBaseDepreciationHT=أساس الإهلاك (باستثناء ضريبة القيمة المضافة) +AssetDepreciationBeginDate=بدء الاستهلاك +AssetDepreciationDuration=مدة +AssetDepreciationRate=معدل (%%) +AssetDepreciationDate=تاريخ الإهلاك +AssetDepreciationHT=الاستهلاك (باستثناء ضريبة القيمة المضافة) +AssetCumulativeDepreciationHT=الاستهلاك التراكمي (باستثناء ضريبة القيمة المضافة) +AssetResidualHT=القيمة المتبقية (باستثناء ضريبة القيمة المضافة) +AssetDispatchedInBookkeeping=تم تسجيل الإهلاك +AssetFutureDepreciationLine=الاستهلاك المستقبلي +AssetDepreciationReversal=انعكاس، ارتداد، انقلاب + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=لم يتم توفير معرف الأصل أو صوت النموذج +AssetErrorFetchAccountancyCodesForMode=خطأ عند استرداد حسابات المحاسبة لوضع الإهلاك "%s" +AssetErrorDeleteAccountancyCodesForMode=حدث خطأ عند حذف حسابات المحاسبة من وضع الإهلاك "%s" +AssetErrorInsertAccountancyCodesForMode=خطأ عند إدخال حسابات المحاسبة في وضع الإهلاك "%s" +AssetErrorFetchDepreciationOptionsForMode=حدث خطأ عند استرداد خيارات وضع الإهلاك "%s" +AssetErrorDeleteDepreciationOptionsForMode=حدث خطأ عند حذف خيارات وضع الإهلاك "%s" +AssetErrorInsertDepreciationOptionsForMode=خطأ عند إدخال خيارات وضع الإهلاك "%s" +AssetErrorFetchDepreciationLines=خطأ عند استرداد بنود الإهلاك المسجلة +AssetErrorClearDepreciationLines=خطأ عند إزالة بنود الإهلاك المسجلة (الانعكاس والمستقبل) +AssetErrorAddDepreciationLine=خطأ عند إضافة بند الإهلاك +AssetErrorCalculationDepreciationLines=خطأ عند حساب بنود الإهلاك (الاسترداد والمستقبل) +AssetErrorReversalDateNotProvidedForMode=لم يتم توفير تاريخ الإلغاء لطريقة الإهلاك "%s" +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=يجب أن يكون تاريخ الإلغاء أكبر من بداية السنة المالية الحالية أو مساويًا لها لطريقة الإهلاك "%s" +AssetErrorReversalAmountNotProvidedForMode=لم يتم توفير مبلغ الانعكاس لوضع الإهلاك "%s". +AssetErrorFetchCumulativeDepreciation=خطأ عند استرداد مبلغ الإهلاك المتراكم من بند الإهلاك +AssetErrorSetLastCumulativeDepreciation=خطأ عند تسجيل آخر مبلغ إهلاك متراكم diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang index 6d2a2eaf6eb..d60c9f2361d 100644 --- a/htdocs/langs/ar_SA/banks.lang +++ b/htdocs/langs/ar_SA/banks.lang @@ -114,7 +114,7 @@ TransferTo=إلى TransferFromToDone=التحويل من %sإلى %sمن %s%s قد تم تسجيلة. CheckTransmitter=مرسل ValidateCheckReceipt=تأكيد صحة الشيك المستلم؟ -ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated. +ConfirmValidateCheckReceipt=هل أنت متأكد أنك تريد إرسال إيصال الشيك هذا للتحقق من صحته؟ لن تكون هناك تغييرات ممكنة بمجرد التحقق من صحتها. DeleteCheckReceipt=حذف هذا الشيك ؟ ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا الشيك؟ BankChecks=الشيكات المصرفية @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandate YourSEPAMandate=تفويض سيبا الخاص بك FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to AutoReportLastAccountStatement=قم تلقائيًا بتعبئة الحقل "رقم كشف الحساب البنكي" برقم كشف الحساب الأخير عند إجراء التسوية -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=التحكم النقدي في نقاط البيع +NewCashFence=مراقبة نقدية جديدة (فتح أو إغلاق) BankColorizeMovement=تلوين الحركات BankColorizeMovementDesc=إذا تم تمكين هذه الوظيفة ، يمكنك اختيار لون خلفية محدد لحركات الخصم أو الائتمان BankColorizeMovementName1=لون الخلفية لحركة الخصم @@ -181,7 +181,7 @@ BankColorizeMovementName2=لون الخلفية لحركة الائتمان IfYouDontReconcileDisableProperty=إذا لم تقم بإجراء التسويات البنكية على بعض الحسابات المصرفية ، فقم بتعطيل الخاصية "%s" عليها لإزالة هذا التحذير. NoBankAccountDefined=لم يتم تحديد حساب مصرفي NoRecordFoundIBankcAccount=لا يوجد سجل في الحساب المصرفي. عادةً ما يحدث هذا عندما يتم حذف سجل يدويًا من قائمة المعاملات في الحساب المصرفي (على سبيل المثال أثناء تسوية الحساب المصرفي). سبب آخر هو أنه تم تسجيل الدفعة عندما تم تعطيل الوحدة النمطية "%s". -AlreadyOneBankAccount=Already one bank account defined -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. -ToCreateRelatedRecordIntoBank=To create missing related bank record +AlreadyOneBankAccount=تم تحديد حساب مصرفي واحد بالفعل +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=تحويل SEPA: "نوع الدفع" عند مستوى "تحويل الائتمان" +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=عند إنشاء ملف SEPA XML لعمليات تحويل الرصيد ، يمكن الآن وضع القسم "PaymentTypeInformation" داخل قسم "CreditTransferTransactionInformation" (بدلاً من قسم "Payment"). نوصي بشدة بإبقاء هذا دون تحديد لوضع معلومات نوع الدفع عند مستوى الدفع ، حيث لن تقبلها جميع البنوك بالضرورة على مستوى معلومات التحويل الائتماني. اتصل بالمصرف الذي تتعامل معه قبل تقديم معلومات نوع الدفع على مستوى معلومات تحويل الائتمان. +ToCreateRelatedRecordIntoBank=لإنشاء سجل مصرفي مفقود ذي صلة diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index bb5be211cb6..c195801ea6e 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=إحصاءات فواتير العملاء BillsStatisticsSuppliers=إحصاءات فواتير الموردين DisabledBecauseDispatchedInBookkeeping=معطل لأنه تم إرسال الفاتورة إلى مسك الدفاتر DisabledBecauseNotLastInvoice=معطل لأن الفاتورة غير قابلة للحذف. لقد تم تسجيل فواتير بعد هذه الفاتورة وسوف يؤدي ذلك إلى وجود ثقب في نظام العد. +DisabledBecauseNotLastSituationInvoice=معطل بسبب الفاتورة لا يمكن حذفها\nهذه الفاتورة لسيت اخر فاتورة في دورة الفواتير DisabledBecauseNotErasable=معطل لأنه لا يمكن محوه InvoiceStandard=الفاتورة القياسية InvoiceStandardAsk=الفاتورة القياسية InvoiceStandardDesc=هذا النوع من الفاتورة هي فاتورة عام. +InvoiceStandardShort=قياسي InvoiceDeposit=فاتورة الدفعة الأولى InvoiceDepositAsk=فاتورة الدفعة الأولى InvoiceDepositDesc=يتم هذا النوع من الفاتورة عند استلام دفعة أولى. @@ -24,6 +26,7 @@ InvoiceProForma=الفاتورة الأولية InvoiceProFormaAsk=الفاتورة الأولية InvoiceProFormaDesc= الفاتورة المبدئية عبارة عن صورة فاتورة حقيقية ولكنها لا تحتوي على قيمة محاسبية. InvoiceReplacement=استبدال الفاتورة +InvoiceReplacementShort=الاستبدال InvoiceReplacementAsk=فاتورة استبدال الفاتورة InvoiceReplacementDesc= فاتورة الاستبدال تُستخدم لاستبدال فاتورة بالكامل بدون دفعة مستلمة بالفعل.

    ملاحظة: يمكن فقط استبدال الفواتير التي لم يتم سدادها. إذا لم يتم إغلاق الفاتورة التي قمت باستبدالها بعد ، فسيتم إغلاقها تلقائيًا لتصبح "مهجورة". InvoiceAvoir=ملاحظة ائتمانية @@ -55,7 +58,7 @@ CustomerInvoice=فاتورة العميل CustomersInvoices=فواتير العملاء SupplierInvoice=فاتورة مورد SuppliersInvoices=فواتير الموردين -SupplierInvoiceLines=Vendor invoice lines +SupplierInvoiceLines=سطور فاتورة البائع SupplierBill=فاتورة مورد SupplierBills=فواتير الموردين Payment=دفعة @@ -81,14 +84,14 @@ PaymentsReports=تقارير المدفوعات PaymentsAlreadyDone=المدفوعات قد فعلت PaymentsBackAlreadyDone=تم رد الأموال PaymentRule=قاعدة الدفع -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method -DefaultBankAccount=Default Bank Account -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +PaymentMode=طريقة الدفع او السداد +PaymentModes=طرق الدفع +DefaultPaymentMode=طريقه تسديد خاطئه +DefaultBankAccount=حساب مصرفي افتراضي +IdPaymentMode=طريقة الدفع (المعرف) +CodePaymentMode=طريقة الدفع (كود) +LabelPaymentMode=طريقة الدفع (التسمية) +PaymentModeShort=طريقة الدفع او السداد PaymentTerm=شروط السداد PaymentConditions=شروط السداد PaymentConditionsShort=شروط السداد @@ -119,7 +122,7 @@ ConvertExcessPaidToReduc=تحويل الفائض المستلم إلى خصم م EnterPaymentReceivedFromCustomer=أدخل الدفعة المستلمة من العميل EnterPaymentDueToCustomer=انشاء استحقاق دفع للعميل DisabledBecauseRemainderToPayIsZero=معطل لأن المتبقي غير المسدد يساوي صفر -PriceBase=Base price +PriceBase=السعر الأساسي BillStatus=حالة الفاتورة StatusOfGeneratedInvoices=حالة الفواتير المنشأة BillStatusDraft=مسودة (يجب التحقق من صحتها) @@ -156,9 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=خطأ ، يجب أن يكون للفاتورة ErrorInvoiceOfThisTypeMustBePositive=خطأ ، يجب أن يحتوي هذا النوع من الفاتورة على مبلغ لا يشمل الضريبة موجبًا (أو فارغًا) ErrorCantCancelIfReplacementInvoiceNotValidated=خطأ ، لا يمكن إلغاء فاتورة تم استبدالها بفاتورة أخرى لا تزال في حالة المسودة ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=تم استخدام هذا الجزء أو آخر لذا لا يمكن إزالة سلسلة الخصم. -ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. +ErrorInvoiceIsNotLastOfSameType=خطأ: تاريخ الفاتورة %s هو %s. يجب أن تكون لاحقة أو مساوية للتاريخ الأخير للفواتير من نفس النوع (%s). الرجاء تغيير تاريخ الفاتورة. BillFrom=من: BillTo=فاتورة الى: +ShippingTo=شحن الي ActionsOnBill=الإجراءات على الفاتورة RecurringInvoiceTemplate=نموذج او فاتورة متكررة NoQualifiedRecurringInvoiceTemplateFound=لا يوجد نموذج فاتورة متكرر مؤهل للإنشاء. @@ -192,7 +196,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=المتبقي الغير مدفوع ConfirmClassifyPaidPartiallyReasonDiscountNoVat=المتبقي الغير مدفوع (%s %s) هو خصم ممنوح لأن السداد تم قبل الأجل. أنا أقبل خسارة ضريبة القيمة المضافة على هذا الخصم. ConfirmClassifyPaidPartiallyReasonDiscountVat=المتبقي الغير مدفوع (%s %s) هو خصم ممنوح لأن السداد تم قبل الأجل. أسترد ضريبة القيمة المضافة على هذا الخصم بدون إشعار دائن. ConfirmClassifyPaidPartiallyReasonBadCustomer=عميل سيء -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=الخصم من قبل البنك (رسوم البنك الوسيط) ConfirmClassifyPaidPartiallyReasonProductReturned=تم إرجاع بعض المنتجات ConfirmClassifyPaidPartiallyReasonOther=التخلي عن المبلغ لسبب آخر ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=هذا الاختيار ممكن إذا تم تزويد فاتورتك بالتعليقات المناسبة. (مثال «فقط الضريبة المقابلة للسعر الذي تم دفعه هي التي تعطي الحق في الخصم») @@ -200,7 +204,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=في بعض البلدان ، ConfirmClassifyPaidPartiallyReasonAvoirDesc=استخدم هذا الاختيار إذا كانت جميع الاختيارات الاخرى لا تناسبك ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=العميل السيئ هو العميل الذي يرفض سداد ديونه. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=يستخدم هذا الاختيار عندما لا يكتمل السداد بسبب إرجاع بعض المنتجات -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=المبلغ غير المدفوع هو رسوم البنك الوسيط ، يتم خصمها مباشرة من المبلغ الصحيح وهو الذي يدفعه العميل. ConfirmClassifyPaidPartiallyReasonOtherDesc=استخدم هذا الخيار إذا لم يكن هناك خيار مناسب ، على سبيل المثال في الحالة التالية:
    - الدفع غير مكتمل لأن بعض المنتجات تم شحنها مرة أخرى
    - المبلغ المطالب به مهم جدًا لأنه تم نسيان الخصم
    في جميع الحالات ، يجب تصحيح المبلغ المطالب به في نظام المحاسبة عن طريق إنشاء إشعار دائن. ConfirmClassifyAbandonReasonOther=أخرى ConfirmClassifyAbandonReasonOtherDesc=سيتم استخدام هذا الاختيار في جميع الحالات الأخرى. على سبيل المثال ، لأنك تخطط لإنشاء فاتورة بديلة. @@ -236,24 +240,24 @@ AlreadyPaidBack=سددت بالفعل AlreadyPaidNoCreditNotesNoDeposits=سددت (بدون اشعار دائن ودفعات مقدمة) Abandoned=المهجورة RemainderToPay=المتبقي غير مسدد -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=العملة الأصلية المتبقية غير المسددة RemainderToTake=الميلغ المتبقي لاتخاذ -RemainderToTakeMulticurrency=Remaining amount to take, original currency +RemainderToTakeMulticurrency=المبلغ المتبقي ، العملة الأصلية RemainderToPayBack=المبلغ المتبقي للاسترجاع -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency -NegativeIfExcessRefunded=negative if excess refunded +RemainderToPayBackMulticurrency=المبلغ المتبقي للرد ، العملة الأصلية +NegativeIfExcessRefunded=سلبي إذا تم رد المبالغ الزائدة Rest=بانتظار AmountExpected=المبلغ المطالب به ExcessReceived=المبالغ الزائدة المستلمة -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received +ExcessReceivedMulticurrency=المبالغ الزائدة المستلمة ، العملة الأصلية +NegativeIfExcessReceived=سلبي إذا تم استلام الفائض ExcessPaid=المبالغ الزائدة المسددة -ExcessPaidMulticurrency=Excess paid, original currency +ExcessPaidMulticurrency=المبالغ الزائدة المدفوعة ، العملة الأصلية EscompteOffered=عرض الخصم (الدفع قبل الأجل) EscompteOfferedShort=خصم SendBillRef=تسليم الفاتورة %s SendReminderBillRef=تسليم الفاتورة %s (تذكير) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=تقديم إيصال الدفع %s NoDraftBills=لا توجد مسودات فواتير NoOtherDraftBills=لا توجد مسودات فواتير أخرى NoDraftInvoices=لا توجد مسودات فواتير @@ -269,8 +273,8 @@ DateMaxPayment=السداد المستحق في DateInvoice=تاريخ الفاتورة DatePointOfTax=Point of tax NoInvoice=لا فاتورة -NoOpenInvoice=No open invoice -NbOfOpenInvoices=Number of open invoices +NoOpenInvoice=لا يوجد فاتورة مفتوحة +NbOfOpenInvoices=عدد الفواتير المفتوحة ClassifyBill=صنف كفاتورة SupplierBillsToPay=فواتير المورد الغير مسددة CustomerBillsUnpaid=فواتير العملاء غير المسددة @@ -280,11 +284,11 @@ SetMode=حدد نوع السداد SetRevenuStamp=حدد ختم الإيرادات Billed=فواتير RecurringInvoices=الفواتير المتكررة -RecurringInvoice=Recurring invoice +RecurringInvoice=فاتورة متكررة RepeatableInvoice=قالب الفاتورة RepeatableInvoices=قالب الفواتير -RecurringInvoicesJob=Generation of recurring invoices (sales invoices) -RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +RecurringInvoicesJob=إصدار الفواتير المتكررة (فواتير المبيعات) +RecurringSupplierInvoicesJob=إنشاء الفواتير المتكررة (فواتير الشراء) Repeatable=قالب Repeatables=القوالب ChangeIntoRepeatableInvoice=تحويل إلى قالب فاتورة @@ -391,7 +395,7 @@ DateLastGeneration=تاريخ أحدث اصدار DateLastGenerationShort=تاريخ أحدث اصدار MaxPeriodNumber=العدد الأعلى لإصدار الفاتورة NbOfGenerationDone=عدد الفواتير المنجزة بالفعل -NbOfGenerationOfRecordDone=Number of record generation already done +NbOfGenerationOfRecordDone=عدد إنشاء السجل الذي تم إنجازه بالفعل NbOfGenerationDoneShort=عدد الفواتير المنجزة بالفعل MaxGenerationReached=تم بلوغ الحد الأقصى لعدد الاصدار InvoiceAutoValidate=اعتماد الفواتير تلقائيًا @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 يوما PaymentCondition14D=14 يوما PaymentConditionShort14DENDMONTH=14 يومًا من نهاية الشهر PaymentCondition14DENDMONTH=في غضون 14 يومًا بعد نهاية الشهر +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% الإيداع +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% إيداع ، الباقي عند التسليم FixAmount=المبلغ الثابت - بند واحد بالتسمية "%s" VarAmount=المبلغ المتغير (%% إجمالي) VarAmountOneLine=المبلغ المتغير (إجمالي %%.) - بند واحد بالتسمية "%s" -VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +VarAmountAllLines=المبلغ المتغير (%% tot.) - جميع الأسطر من الأصل +DepositPercent=إيداع %% +DepositGenerationPermittedByThePaymentTermsSelected=هذا مسموح به من خلال شروط الدفع المحددة +GenerateDeposit=إنشاء فاتورة إيداع %s%% +ValidateGeneratedDeposit=تحقق من صحة الإيداع الذي تم إنشاؤه +DepositGenerated=تم إنشاء الإيداع +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=يمكنك فقط إنشاء إيداع تلقائيًا من عرض أو طلب +ErrorPaymentConditionsNotEligibleToDepositCreation=شروط الدفع المختارة غير مؤهلة لإنشاء الإيداع التلقائي # PaymentType PaymentTypeVIR=حوالة مصرفية PaymentTypeShortVIR=حوالة مصرفية PaymentTypePRE=أمر دفع الخصم المباشر +PaymentTypePREdetails=علي الحساب PaymentTypeShortPRE=أمر دفع المدين PaymentTypeLIQ=نقدا PaymentTypeShortLIQ=نقدا @@ -471,7 +485,7 @@ RegulatedOn=وتنظم على ChequeNumber=رقم الشيك ChequeOrTransferNumber=رقم شيك / تحويل ChequeBordereau=Check schedule -ChequeMaker=Check/Transfer sender +ChequeMaker=تحقق / تحويل المرسل ChequeBank=الشيكات المصرفية CheckBank=الشيك NetToBePaid=الصافي للدفع @@ -485,7 +499,7 @@ PaymentByChequeOrderedToShort=مدفوعات الشيكات (شامل الضرا SendTo=أرسل إلى PaymentByTransferOnThisBankAccount=الدفع عن طريق التحويل إلى الحساب المصرفي التالي VATIsNotUsedForInvoice=* غير سارية ضريبة القيمة المضافة art-293B من CGI -VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI +VATIsNotUsedForInvoiceAsso=* غير سارية ضريبة القيمة المضافة art-261-7 من CGI LawApplicationPart1=من خلال تطبيق القانون 80.335 من 12/05/80 LawApplicationPart2=البضاعة تظل ملكا لل LawApplicationPart3=البائع حتى السداد الكامل ل @@ -517,7 +531,7 @@ Reported=تأخير DisabledBecausePayments=غير ممكن لأن هناك بعض المدفوعات CantRemovePaymentWithOneInvoicePaid=لا يمكن إزالة الدفعة نظرًا لوجود فاتورة مصنفة واحدة على الأقل مدفوعة CantRemovePaymentVATPaid=لا يمكن إزالة الدفعة لأن إقرار ضريبة القيمة المضافة مصنف كمدفوع -CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +CantRemovePaymentSalaryPaid=لا يمكن إزالة الدفعة لأن الراتب مصنف كمدفوع ExpectedToPay=من المتوقع الدفع CantRemoveConciliatedPayment=لا يمكن إزالة الدفعة التي تمت تسويتها PayedByThisPayment=سدد بعدهذه الدفعة @@ -525,7 +539,7 @@ ClosePaidInvoicesAutomatically=تصنيف جميع الفواتير القياس ClosePaidCreditNotesAutomatically=تصنيف جميع اشعارات دائن تلقائيًا على أنها "مدفوعة" عندما يتم استرداد الأموال بالكامل. ClosePaidContributionsAutomatically=تصنيف جميع المساهمات الاجتماعية أو المالية تلقائيًا على أنها "مدفوعة" عندما يتم الدفع بالكامل. ClosePaidVATAutomatically=تصنيف إقرار ضريبة القيمة المضافة تلقائيًا على أنه "مدفوع" عندما يتم الدفع بالكامل. -ClosePaidSalaryAutomatically=Classify automatically salary as "Paid" when payment is done entirely. +ClosePaidSalaryAutomatically=تصنيف الراتب تلقائيًا على أنه "مدفوع" عندما يتم السداد بالكامل. AllCompletelyPayedInvoiceWillBeClosed=سيتم تلقائيًا إغلاق جميع الفواتير المدفوعة وتحول الى "مدفوعة". ToMakePayment=سدد ToMakePaymentBack=تسديد @@ -538,10 +552,10 @@ YouMustCreateStandardInvoiceFirstDesc=يجب عليك إنشاء فاتورة ق PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (old implementation of Sponge template) PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices -TerreNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 -MarsNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +TerreNumRefModelDesc1=رقم الإرجاع بالتنسيق %syymm-nnnn للفواتير القياسية و %syymm-nnnn للإشعارات الدائنة حيث yy سنة ، mm شهر و nnnn هو رقم تزايد تلقائي تسلسلي بدون فاصل ولا عودة إلى 0 +MarsNumRefModelDesc1=رقم الإرجاع بالتنسيق %syymm-nnnn للفواتير القياسية ، %syymm-nnnn للفواتير البديلة ، %syymm-nnnn لفواتير الدَفعة المقدمة و a0ecb2ecny87m49fz0 هو الرقم التسلسلي لشهر nnny و a0ecb2ecny. مع عدم وجود فاصل ولا عودة إلى 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +CactusNumRefModelDesc1=رقم الإرجاع بالتنسيق %syymm-nnnn للفواتير القياسية ، %syymm-nnnn للإشعارات الدائنة و %syymm-nnnn لفواتير الدفعة المقدمة حيث yy هو العام ، mm هو رقم الشهر و nnnnn بدون زيادة تلقائية 0 EarlyClosingReason=سبب الإغلاق المبكر EarlyClosingComment=ملاحظة اغلاق مبكرة ##### Types de contacts ##### @@ -587,7 +601,7 @@ ToCreateARecurringInvoiceGene=لإنشاء فواتير مستقبلية بشك ToCreateARecurringInvoiceGeneAuto=إذا كنت بحاجة إلى إنشاء مثل هذه الفواتير تلقائيًا ، فاطلب من المسؤول تمكين وحدة الإعداد %s وإعدادها. لاحظ أنه يمكن استخدام كلتا الطريقتين (يدويًا وآليًا) مع عدم وجود خطر التكرار. DeleteRepeatableInvoice=حذف قالب الفاتورة ConfirmDeleteRepeatableInvoice=هل أنت متأكد أنك تريد حذف قالب الفاتورة؟ -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per selected object) +CreateOneBillByThird=إنشاء فاتورة واحدة لكل طرف ثالث (خلاف ذلك ، فاتورة واحدة لكل كائن محدد) BillCreated=%s إصدار فاتورة (فواتير) BillXCreated=تم إنشاء %s الفاتورة StatusOfGeneratedDocuments=حالة إنشاء الوثيقة @@ -606,9 +620,14 @@ SupplierInvoicesArea=منطقة فواتير المورد SituationTotalRayToRest=ما تبقى للدفع بدون ضريبة PDFSituationTitle=Situation n° %d SituationTotalProgress=إجمالي التقدم %d %% -SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices -MakePaymentAndClassifyPayed=Record payment -BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +SearchUnpaidInvoicesWithDueDate=البحث في الفواتير غير المسددة بتاريخ استحقاق = %s +NoPaymentAvailable=لا توجد مدفوعات متاحة مقابل %s +PaymentRegisteredAndInvoiceSetToPaid=تم تسجيل الدفعة وتم تعيين الفاتورة %s على الدفع +SendEmailsRemindersOnInvoiceDueDate=إرسال تذكير عن طريق البريد الإلكتروني للفواتير غير المسددة +MakePaymentAndClassifyPayed=دفع قياسي +BulkPaymentNotPossibleForInvoice=الدفع بالجملة غير ممكن للفاتورة %s (نوع أو حالة سيئة) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/ar_SA/blockedlog.lang b/htdocs/langs/ar_SA/blockedlog.lang index 021cbd00dc9..9117eae5929 100644 --- a/htdocs/langs/ar_SA/blockedlog.lang +++ b/htdocs/langs/ar_SA/blockedlog.lang @@ -1,57 +1,61 @@ -BlockedLog=Unalterable Logs +BlockedLog=سجلات غير قابلة للتغيير Field=حقل -BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). -Fingerprints=Archived events and fingerprints -FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). -CompanyInitialKey=Company initial key (hash of genesis block) -BrowseBlockedLog=Unalterable logs -ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) -ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) -DownloadBlockChain=Download fingerprints -KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists) or has modified checksum of the previous record. -OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. -OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. -AddedByAuthority=Stored into remote authority -NotAddedByAuthorityYet=Not yet stored into remote authority -ShowDetails=Show stored details -logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created -logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified -logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion -logPAYMENT_ADD_TO_BANK=Payment added to bank -logPAYMENT_CUSTOMER_CREATE=Customer payment created -logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion -logDONATION_PAYMENT_CREATE=Donation payment created -logDONATION_PAYMENT_DELETE=Donation payment logical deletion -logBILL_PAYED=Customer invoice paid -logBILL_UNPAYED=Customer invoice set unpaid +BlockedLogDesc=تتعقب هذه الوحدة بعض الأحداث في سجل غير قابل للتغيير (لا يمكنك تعديله بمجرد تسجيله) في سلسلة كتل ، في الوقت الفعلي. توفر هذه الوحدة التوافق مع متطلبات قوانين بعض البلدان (مثل فرنسا مع قانون المالية 2016 - Norme NF525). +Fingerprints=أرشفة الأحداث وبصمات الأصابع +FingerprintsDesc=هذه هي الأداة لتصفح أو استخراج السجلات غير القابلة للتغيير. يتم إنشاء السجلات غير القابلة للتغيير وأرشفتها محليًا في جدول مخصص ، في الوقت الفعلي عند تسجيل حدث عمل. يمكنك استخدام هذه الأداة لتصدير هذا الأرشيف وحفظه في دعم خارجي (بعض البلدان ، مثل فرنسا ، تطلب منك القيام بذلك كل عام). لاحظ أنه لا توجد ميزة لمسح هذا السجل وسيتم الإبلاغ عن كل تغيير يتم إجراؤه مباشرةً في هذا السجل (بواسطة مخترق على سبيل المثال) ببصمة إصبع غير صالحة. إذا كنت حقًا بحاجة إلى مسح هذا الجدول لأنك استخدمت التطبيق الخاص بك لغرض تجريبي / اختبار وترغب في تنظيف بياناتك لبدء الإنتاج ، يمكنك أن تطلب من البائع أو المُدمج إعادة تعيين قاعدة البيانات الخاصة بك (ستتم إزالة جميع بياناتك). +CompanyInitialKey=مفتاح الشركة الأولي (تجزئة كتلة التكوين) +BrowseBlockedLog=سجلات غير قابلة للتغيير +ShowAllFingerPrintsMightBeTooLong=إظهار كافة السجلات المؤرشفة (قد تكون طويلة) +ShowAllFingerPrintsErrorsMightBeTooLong=إظهار كافة سجلات الأرشيف غير الصالحة (قد تكون طويلة) +DownloadBlockChain=تنزيل بصمات الأصابع +KoCheckFingerprintValidity=إدخال السجل المؤرشف غير صالح. هذا يعني أن شخصًا ما (متسلل؟) قد قام بتعديل بعض بيانات هذا السجل بعد تسجيله ، أو قام بمسح السجل المؤرشف السابق (تحقق من وجود هذا السطر مع الرقم السابق) أو قام بتعديل المجموع الاختباري للسجل السابق. +OkCheckFingerprintValidity=سجل السجل المؤرشف صالح. لم يتم تعديل البيانات الموجودة في هذا السطر ويتبع الإدخال السابق. +OkCheckFingerprintValidityButChainIsKo=يبدو السجل المؤرشف صالحًا مقارنةً بالسجل السابق ولكن السلسلة تالفة سابقًا. +AddedByAuthority=مخزنة في سلطة بعيدة +NotAddedByAuthorityYet=لم يتم تخزينها بعد في سلطة بعيدة +ShowDetails=إظهار التفاصيل المخزنة +BlockedLogBillDownload=تنزيل فاتورة العميل +BlockedLogBillPreview=معاينة فاتورة العميل +BlockedlogInfoDialog=تفاصيل السجل +ListOfTrackedEvents=قائمة الأحداث المتعقبة +Fingerprint=بصمة +DownloadLogCSV=تصدير السجلات المؤرشفة (CSV) +logDOC_PREVIEW=معاينة مستند تم التحقق من صحته من أجل الطباعة أو التنزيل +logDOC_DOWNLOAD=تنزيل مستند تم التحقق من صحته من أجل طباعته أو إرساله +DataOfArchivedEvent=البيانات الكاملة للحدث المؤرشف +ImpossibleToReloadObject=الكائن الأصلي (اكتب %s ، معرف %s) غير مرتبط (راجع عمود "البيانات الكاملة" للحصول على بيانات محفوظة غير قابلة للتغيير) +BlockedLogAreRequiredByYourCountryLegislation=قد تكون وحدة السجلات غير القابلة للتغيير مطلوبة بموجب تشريعات بلدك. قد يؤدي تعطيل هذه الوحدة إلى إبطال أي معاملات مستقبلية فيما يتعلق بالقانون واستخدام البرامج القانونية حيث لا يمكن التحقق من صحتها من خلال تدقيق ضريبي. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=تم تنشيط وحدة السجلات غير القابلة للتغيير بسبب تشريعات بلدك. قد يؤدي تعطيل هذه الوحدة إلى جعل أي معاملات مستقبلية غير صالحة فيما يتعلق بالقانون واستخدام البرامج القانونية حيث لا يمكن التحقق من صحتها عن طريق التدقيق الضريبي. +BlockedLogDisableNotAllowedForCountry=قائمة البلدان التي يكون فيها استخدام هذه الوحدة إلزاميًا (فقط لمنع تعطيل الوحدة عن طريق الخطأ ، إذا كان بلدك في هذه القائمة ، فلا يمكن تعطيل الوحدة النمطية بدون تحرير هذه القائمة أولاً. لاحظ أيضًا أن تمكين / تعطيل هذه الوحدة سيؤدي إلى الحفاظ على المسار في سجل غير قابل للتغيير). +OnlyNonValid=غير صالح +TooManyRecordToScanRestrictFilters=هناك عدد كبير جدًا من السجلات للمسح الضوئي / التحليل. يرجى تقييد القائمة بفلاتر أكثر تقييدًا. +RestrictYearToExport=تقييد شهر / سنة للتصدير +BlockedLogEnabled=تم تفعيل نظام لتتبع الأحداث إلى سجلات غير قابلة للتغيير +BlockedLogDisabled=تم تعطيل نظام لتتبع الأحداث إلى سجلات غير قابلة للتغيير بعد إجراء بعض التسجيلات. قمنا بحفظ بصمة إصبع خاصة لتتبع السلسلة على أنها مكسورة +BlockedLogDisabledBis=تم تعطيل نظام لتتبع الأحداث إلى سجلات غير قابلة للتغيير. هذا ممكن لأنه لم يتم عمل أي سجل حتى الآن. + +## logTypes +logBILL_DELETE=فاتورة العميل محذوفة منطقيا +logBILL_PAYED=فاتورة العميل مدفوعة +logBILL_SENTBYMAIL=فاتورة العميل ترسل بالبريد +logBILL_UNPAYED=مجموعة فاتورة العميل غير مدفوعة logBILL_VALIDATE=فاتورة مصادق -logBILL_SENTBYMAIL=Customer invoice send by mail -logBILL_DELETE=Customer invoice logically deleted -logMODULE_RESET=Module BlockedLog was disabled -logMODULE_SET=Module BlockedLog was enabled -logDON_VALIDATE=Donation validated -logDON_MODIFY=Donation modified -logDON_DELETE=Donation logical deletion -logMEMBER_SUBSCRIPTION_CREATE=Member subscription created -logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified -logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion -logCASHCONTROL_VALIDATE=Cash desk closing recording -BlockedLogBillDownload=Customer invoice download -BlockedLogBillPreview=Customer invoice preview -BlockedlogInfoDialog=Log Details -ListOfTrackedEvents=List of tracked events -Fingerprint=Fingerprint -DownloadLogCSV=Export archived logs (CSV) -logDOC_PREVIEW=Preview of a validated document in order to print or download -logDOC_DOWNLOAD=Download of a validated document in order to print or send -DataOfArchivedEvent=Full datas of archived event -ImpossibleToReloadObject=Original object (type %s, id %s) not linked (see 'Full datas' column to get unalterable saved data) -BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be required by the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit. -BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they cannot be validated by a tax audit. -BlockedLogDisableNotAllowedForCountry=List of countries where usage of this module is mandatory (just to prevent to disable the module by error, if your country is in this list, disable of module is not possible without editing this list first. Note also that enabling/disabling this module will keep a track into the unalterable log). -OnlyNonValid=Non-valid -TooManyRecordToScanRestrictFilters=Too many records to scan/analyze. Please restrict list with more restrictive filters. -RestrictYearToExport=Restrict month / year to export -BlockedLogEnabled=System to track events into unalterable logs has been enabled -BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken -BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. +logCASHCONTROL_VALIDATE=تسجيل إغلاق مكتب النقدية +logDOC_DOWNLOAD=تنزيل مستند تم التحقق من صحته من أجل طباعته أو إرساله +logDOC_PREVIEW=معاينة مستند تم التحقق من صحته من أجل الطباعة أو التنزيل +logDONATION_PAYMENT_CREATE=تم إنشاء دفعة التبرع +logDONATION_PAYMENT_DELETE=الحذف المنطقي لدفع التبرع +logDON_DELETE=التبرع الحذف المنطقي +logDON_MODIFY=تم تعديل التبرع +logDON_VALIDATE=تم التحقق من صحة التبرع +logMEMBER_SUBSCRIPTION_CREATE=تم إنشاء اشتراك الأعضاء +logMEMBER_SUBSCRIPTION_DELETE=الحذف المنطقي لاشتراك العضو +logMEMBER_SUBSCRIPTION_MODIFY=تم تعديل اشتراك العضو +logMODULE_RESET=تم تعطيل Module BlockedLog +logMODULE_SET=تم تمكين Module BlockedLog +logPAYMENT_ADD_TO_BANK=تمت إضافة الدفعة إلى البنك +logPAYMENT_CUSTOMER_CREATE=تم إنشاء دفع العميل +logPAYMENT_CUSTOMER_DELETE=الحذف المنطقي لدفع العميل +logPAYMENT_VARIOUS_CREATE=تم إنشاء الدفعة (لم يتم تعيينها لفاتورة) +logPAYMENT_VARIOUS_DELETE=الحذف المنطقي للدفع (غير مخصص لفاتورة) +logPAYMENT_VARIOUS_MODIFY=تم تعديل الدفعة (لم يتم تعيينها لفاتورة) diff --git a/htdocs/langs/ar_SA/bookmarks.lang b/htdocs/langs/ar_SA/bookmarks.lang index a65ddf2e059..3d0c4068458 100644 --- a/htdocs/langs/ar_SA/bookmarks.lang +++ b/htdocs/langs/ar_SA/bookmarks.lang @@ -6,17 +6,18 @@ ListOfBookmarks=قائمة الإشارات المرجعية EditBookmarks=قائمة / تحرير الإشارات المرجعية NewBookmark=إشارة مرجعية جديدة ShowBookmark=وتظهر علامة -OpenANewWindow=Open a new tab -ReplaceWindow=Replace current tab -BookmarkTargetNewWindowShort=New tab -BookmarkTargetReplaceWindowShort=Current tab -BookmarkTitle=Bookmark name +OpenANewWindow=افتح علامة تبويب جديدة +ReplaceWindow=استبدال علامة التبويب الحالية +BookmarkTargetNewWindowShort=علامة تبويب جديدة +BookmarkTargetReplaceWindowShort=علامة التبويب الحالية +BookmarkTitle=اسم المرجعية UrlOrLink=العنوان BehaviourOnClick=السلوك عند تحديد عنوان للإشارة المرجعية CreateBookmark=إنشاء إشارة مرجعية -SetHereATitleForLink=Set a name for the bookmark -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab +SetHereATitleForLink=حدد اسمًا للإشارة المرجعية +UseAnExternalHttpLinkOrRelativeDolibarrLink=استخدم رابطًا خارجيًا / مطلقًا (https://externalurl.com) أو رابطًا داخليًا / نسبيًا (/mypage.php). يمكنك أيضًا استخدام الهاتف مثل الهاتف: 0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=اختر ما إذا كان يجب فتح الصفحة المرتبطة في علامة التبويب الحالية أو علامة تبويب جديدة BookmarksManagement=إدارة الإشارات المرجعية BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=لم يتم تحديد إشارات مرجعية +NoBookmarkFound=No bookmark found diff --git a/htdocs/langs/ar_SA/boxes.lang b/htdocs/langs/ar_SA/boxes.lang index bd8f4e9266b..0813de12591 100644 --- a/htdocs/langs/ar_SA/boxes.lang +++ b/htdocs/langs/ar_SA/boxes.lang @@ -18,13 +18,13 @@ BoxLastActions=أحدث الإجراءات BoxLastContracts=أحدث العقود BoxLastContacts=أحدث الاتصالات | العناوين BoxLastMembers=أحدث الأعضاء -BoxLastModifiedMembers=Latest modified members -BoxLastMembersSubscriptions=Latest member subscriptions +BoxLastModifiedMembers=أحدث الأعضاء المعدلين +BoxLastMembersSubscriptions=أحدث اشتراكات الأعضاء BoxFicheInter=أحدث التدخلات BoxCurrentAccounts=ميزان الحسابات المفتوحة BoxTitleMemberNextBirthdays=أعياد الميلاد لهذا الشهر (الأعضاء) -BoxTitleMembersByType=Members by type -BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year +BoxTitleMembersByType=الأعضاء حسب النوع والحالة +BoxTitleMembersSubscriptionsByYear=اشتراكات الأعضاء حسب السنة BoxTitleLastRssInfos=آخر أخبار %s من %s BoxTitleLastProducts=المنتجات | الخدمات: آخر %s معدل BoxTitleProductsAlertStock=المنتجات: تنبيه المخزون @@ -46,11 +46,11 @@ BoxMyLastBookmarks=الإشارات المرجعية: أحدث %s BoxOldestExpiredServices=أقدم الخدمات النشطة منتهية الصلاحية BoxLastExpiredServices=أحدث %s أقدم جهات اتصال مع خدمات منتهية الصلاحية نشطة BoxTitleLastActionsToDo=أحدث إجراءات %s للقيام بها -BoxTitleLastContracts=Latest %s contracts which were modified -BoxTitleLastModifiedDonations=Latest %s donations which were modified -BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified -BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified -BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified +BoxTitleLastContracts=أحدث عقود %s التي تم تعديلها +BoxTitleLastModifiedDonations=آخر التبرعات %s التي تم تعديلها +BoxTitleLastModifiedExpenses=أحدث تقارير المصروفات %s التي تم تعديلها +BoxTitleLatestModifiedBoms=أحدث %s BOMs التي تم تعديلها +BoxTitleLatestModifiedMos=أحدث أوامر التصنيع %s التي تم تعديلها BoxTitleLastOutstandingBillReached=العملاء الذين تجاوزا الحد الاقصى BoxGlobalActivity=النشاط العام (الفواتير ، العروض ، الطلبات) BoxGoodCustomers=عملاء جيدون @@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=أوامر الموردين: آخر %s تع BoxTitleLastModifiedCustomerBills=فواتير العميل: آخر %s تعديل BoxTitleLastModifiedCustomerOrders=أوامر المبيعات: آخر %s تعديل BoxTitleLastModifiedPropals=أحدث %s العروض المعدلة -BoxTitleLatestModifiedJobPositions=Latest %s modified job positions -BoxTitleLatestModifiedCandidatures=Latest %s modified job applications +BoxTitleLatestModifiedJobPositions=أحدث وظائف %s المعدلة +BoxTitleLatestModifiedCandidatures=أحدث %s تطبيقات العمل المعدلة ForCustomersInvoices=فواتير العملاء ForCustomersOrders=أوامر العملاء ForProposals=عروض @@ -112,9 +112,9 @@ BoxTitleLastCustomerShipments=أحدث %s شحنات العملاء NoRecordedShipments=لا توجد شحنة مسجلة للعملاء BoxCustomersOutstandingBillReached=العملاء الذين بلغوا الحد الأقصى المسموح به # Pages -UsersHome=Home users and groups -MembersHome=Home Membership -ThirdpartiesHome=Home Thirdparties -TicketsHome=Home Tickets -AccountancyHome=Home Accountancy +UsersHome=المستخدمون والمجموعات الرئيسية +MembersHome=عضوية المنزل +ThirdpartiesHome=الصفحة الرئيسية الأطراف الثالثة +TicketsHome=تذاكر المنزل +AccountancyHome=محاسبة المنزل ValidatedProjects=المشاريع المعتمدة diff --git a/htdocs/langs/ar_SA/cashdesk.lang b/htdocs/langs/ar_SA/cashdesk.lang index 86a0fe1f6f8..a5ebba52283 100644 --- a/htdocs/langs/ar_SA/cashdesk.lang +++ b/htdocs/langs/ar_SA/cashdesk.lang @@ -16,7 +16,7 @@ AddThisArticle=إضافة هذا العنصر RestartSelling=التراجع عن بيع SellFinished=اكتمل البيع PrintTicket=طباعة التذكرة -SendTicket=Send ticket +SendTicket=أرسل التذكرة NoProductFound=لم يتم العثور على عناصر ProductFound=تم العثور على المنتج NoArticle=لا يوجد عناصر @@ -31,106 +31,109 @@ ShowCompany=عرض الشركة ShowStock=عرض المستودع DeleteArticle=انقر لإزالة هذا العنصر FilterRefOrLabelOrBC=بحث (المرجع / الملصق) -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock. +UserNeedPermissionToEditStockToUsePos=أنت تطلب تقليل المخزون عند إنشاء الفاتورة ، لذلك يحتاج المستخدم الذي يستخدم نقاط البيع إلى الحصول على إذن لتحرير المخزون. DolibarrReceiptPrinter=طابعة إيصال دوليبار -PointOfSale=Point of Sale -PointOfSaleShort=POS -CloseBill=Close Bill -Floors=Floors -Floor=Floor -AddTable=Add table -Place=Place -TakeposConnectorNecesary='TakePOS Connector' required -OrderPrinters=Add a button to send the order to some given printers, without payment (for example to send an order to a kitchen) -NotAvailableWithBrowserPrinter=Not available when printer for receipt is set to browser -SearchProduct=Search product +PointOfSale=نقطة البيع +PointOfSaleShort=نقاط البيع +CloseBill=أغلق بيل +Floors=طوابق +Floor=أرضية +AddTable=أضف الجدول +Place=مكان +TakeposConnectorNecesary=مطلوب "موصل TakePOS" +OrderPrinters=أضف زرًا لإرسال الطلب إلى بعض الطابعات المحددة ، دون دفع (على سبيل المثال لإرسال طلب إلى مطبخ) +NotAvailableWithBrowserPrinter=غير متاح عندما تكون الطابعة للإيصال مضبوطة على المتصفح +SearchProduct=البحث عن المنتج Receipt=ورود -Header=Header -Footer=Footer -AmountAtEndOfPeriod=Amount at end of period (day, month or year) -TheoricalAmount=Theorical amount -RealAmount=Real amount -CashFence=Cash desk closing -CashFenceDone=Cash desk closing done for the period +Header=رأس +Footer=تذييل +AmountAtEndOfPeriod=المبلغ في نهاية الفترة (اليوم أو الشهر أو السنة) +TheoricalAmount=المبلغ النظري +RealAmount=المبلغ الحقيقي +CashFence=إغلاق صندوق النقد +CashFenceDone=تم إغلاق الصندوق النقدي للفترة NbOfInvoices=ملاحظة : من الفواتير -Paymentnumpad=Type of Pad to enter payment -Numberspad=Numbers Pad -BillsCoinsPad=Coins and banknotes Pad -DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr -TakeposNeedsCategories=TakePOS needs at least one product categorie to work -TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS needs at least 1 product category under the category %s to work -OrderNotes=Can add some notes to each ordered items -CashDeskBankAccountFor=Default account to use for payments in -NoPaimementModesDefined=No paiment mode defined in TakePOS configuration -TicketVatGrouped=Group VAT by rate in tickets|receipts -AutoPrintTickets=Automatically print tickets|receipts -PrintCustomerOnReceipts=Print customer on tickets|receipts -EnableBarOrRestaurantFeatures=Enable features for Bar or Restaurant -ConfirmDeletionOfThisPOSSale=Do your confirm the deletion of this current sale ? -ConfirmDiscardOfThisPOSSale=Do you want to discard this current sale ? +Paymentnumpad=نوع الوسادة للدفع +Numberspad=لوحة الأرقام +BillsCoinsPad=وسادة عملات وأوراق نقدية +DolistorePosCategory=وحدات TakePOS وحلول نقاط البيع الأخرى لـ Dolibarr +TakeposNeedsCategories=يحتاج TakePOS إلى فئة منتج واحدة على الأقل للعمل +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=يحتاج TakePOS إلى فئة منتج واحدة على الأقل ضمن الفئة %s للعمل +OrderNotes=يمكن إضافة بعض الملاحظات على كل العناصر المطلوبة +CashDeskBankAccountFor=الحساب الافتراضي لاستخدامه في عمليات الدفع +NoPaimementModesDefined=لم يتم تحديد وضع paiment في تكوين TakePOS +TicketVatGrouped=تجميع ضريبة القيمة المضافة حسب معدل التذاكر | الإيصالات +AutoPrintTickets=طباعة التذاكر | الإيصالات تلقائيًا +PrintCustomerOnReceipts=طباعة العميل على التذاكر | الإيصالات +EnableBarOrRestaurantFeatures=تمكين ميزات للبار أو المطعم +ConfirmDeletionOfThisPOSSale=هل تؤكد حذف هذا البيع الحالي؟ +ConfirmDiscardOfThisPOSSale=هل تريد تجاهل هذا البيع الحالي؟ History=التاريخ -ValidateAndClose=Validate and close -Terminal=Terminal -NumberOfTerminals=Number of Terminals -TerminalSelect=Select terminal you want to use: -POSTicket=POS Ticket -POSTerminal=POS Terminal -POSModule=POS Module -BasicPhoneLayout=Use basic layout for phones -SetupOfTerminalNotComplete=Setup of terminal %s is not complete -DirectPayment=Direct payment -DirectPaymentButton=Add a "Direct cash payment" button -InvoiceIsAlreadyValidated=Invoice is already validated -NoLinesToBill=No lines to bill -CustomReceipt=Custom Receipt -ReceiptName=Receipt Name -ProductSupplements=Manage supplements of products -SupplementCategory=Supplement category -ColorTheme=Color theme -Colorful=Colorful -HeadBar=Head Bar -SortProductField=Field for sorting products +ValidateAndClose=التحقق من صحة وإغلاق +Terminal=صالة +NumberOfTerminals=عدد المحطات +TerminalSelect=حدد المحطة التي تريد استخدامها: +POSTicket=تذكرة نقاط البيع +POSTerminal=محطة نقاط البيع +POSModule=وحدة نقاط البيع +BasicPhoneLayout=استخدم التخطيط الأساسي للهواتف +SetupOfTerminalNotComplete=لم يكتمل إعداد الجهاز %s +DirectPayment=دفع مباشر +DirectPaymentButton=أضف زر "دفع نقدي مباشر" +InvoiceIsAlreadyValidated=تم التحقق من صحة الفاتورة بالفعل +NoLinesToBill=لا خطوط للفوترة +CustomReceipt=إيصال مخصص +ReceiptName=اسم الإيصال +ProductSupplements=إدارة مكملات المنتجات +SupplementCategory=فئة الملحق +ColorTheme=موضوع اللون +Colorful=زاهى الألوان +HeadBar=رئيس بار +SortProductField=مجال لفرز المنتجات Browser=المتصفح -BrowserMethodDescription=Simple and easy receipt printing. Only a few parameters to configure the receipt. Print via browser. -TakeposConnectorMethodDescription=External module with extra features. Posibility to print from the cloud. -PrintMethod=Print method -ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. The server hosting the application can't be in the Cloud (must be able to reach the printers in your network). -ByTerminal=By terminal -TakeposNumpadUsePaymentIcon=Use icon instead of text on payment buttons of numpad -CashDeskRefNumberingModules=Numbering module for POS sales -CashDeskGenericMaskCodes6 =
    {TN} tag is used to add the terminal number -TakeposGroupSameProduct=Group same products lines -StartAParallelSale=Start a new parallel sale -SaleStartedAt=Sale started at %s -ControlCashOpening=Open the "Control cash" popup when opening the POS -CloseCashFence=Close cash desk control -CashReport=Cash report -MainPrinterToUse=Main printer to use -OrderPrinterToUse=Order printer to use -MainTemplateToUse=Main template to use -OrderTemplateToUse=Order template to use -BarRestaurant=Bar Restaurant -AutoOrder=Order by the customer himself -RestaurantMenu=Menu -CustomerMenu=Customer menu -ScanToMenu=Scan QR code to see the menu -ScanToOrder=Scan QR code to order -Appearance=Appearance -HideCategoryImages=Hide Category Images -HideProductImages=Hide Product Images -NumberOfLinesToShow=Number of lines of images to show -DefineTablePlan=Define tables plan -GiftReceiptButton=Add a "Gift receipt" button -GiftReceipt=Gift receipt -ModuleReceiptPrinterMustBeEnabled=Module Receipt printer must have been enabled first -AllowDelayedPayment=Allow delayed payment -PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts -WeighingScale=Weighing scale -ShowPriceHT = Display the column with the price excluding tax (on screen) -ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt) -CustomerDisplay=Customer display -SplitSale=Split sale -PrintWithoutDetailsButton=Add "Print without details" button -PrintWithoutDetailsLabelDefault=Line label by default on printing without details -PrintWithoutDetails=Print without details -YearNotDefined=Year is not defined +BrowserMethodDescription=طباعة إيصالات بسيطة وسهلة. فقط عدد قليل من المعلمات لتكوين الإيصال. اطبع عبر المتصفح. +TakeposConnectorMethodDescription=وحدة خارجية مع ميزات إضافية. إمكانية الطباعة من السحابة. +PrintMethod=طريقة الطباعة +ReceiptPrinterMethodDescription=طريقة قوية مع الكثير من المعلمات. قابل للتخصيص بالكامل مع القوالب. لا يمكن أن يكون الخادم الذي يستضيف التطبيق في السحابة (يجب أن يكون قادرًا على الوصول إلى الطابعات في شبكتك). +ByTerminal=عن طريق المحطة +TakeposNumpadUsePaymentIcon=استخدم الرمز بدلاً من النص الموجود على أزرار الدفع الخاصة بلوحة الأرقام +CashDeskRefNumberingModules=وحدة الترقيم لمبيعات نقاط البيع +CashDeskGenericMaskCodes6 =
    {TN} تُستخدم علامة لإضافة رقم المحطة +TakeposGroupSameProduct=تجميع نفس خطوط المنتجات +StartAParallelSale=ابدأ بيعًا موازيًا جديدًا +SaleStartedAt=بدأ البيع في %s +ControlCashOpening=افتح النافذة المنبثقة "Control cash box" عند فتح POS +CloseCashFence=إغلاق التحكم في صندوق النقد +CashReport=تقرير النقدية +MainPrinterToUse=الطابعة الرئيسية لاستخدامها +OrderPrinterToUse=طلب الطابعة لاستخدامها +MainTemplateToUse=النموذج الرئيسي المراد استخدامه +OrderTemplateToUse=طلب نموذج للاستخدام +BarRestaurant=مطعم بار +AutoOrder=طلب من قبل الزبون نفسه +RestaurantMenu=قائمة الطعام +CustomerMenu=قائمة العملاء +ScanToMenu=امسح رمز الاستجابة السريعة لرؤية القائمة +ScanToOrder=امسح رمز الاستجابة السريعة للطلب +Appearance=مظهر +HideCategoryImages=إخفاء صور الفئة +HideProductImages=إخفاء صور المنتج +NumberOfLinesToShow=عدد سطور الصور المراد عرضها +DefineTablePlan=تحديد خطة الجداول +GiftReceiptButton=أضف زر "إيصال الهدية" +GiftReceipt=استلام هدية +ModuleReceiptPrinterMustBeEnabled=يجب تمكين طابعة استلام الوحدة أولاً +AllowDelayedPayment=السماح بالدفع المتأخر +PrintPaymentMethodOnReceipts=طباعة طريقة الدفع على التذاكر | الإيصالات +WeighingScale=جهاز قياس الوزن +ShowPriceHT = عرض العمود بالسعر غير شامل الضريبة (على الشاشة) +ShowPriceHTOnReceipt = اعرض العمود بالسعر غير شامل الضريبة (على الإيصال) +CustomerDisplay=عرض العملاء +SplitSale=بيع سبليت +PrintWithoutDetailsButton=أضف زر "طباعة بدون تفاصيل" +PrintWithoutDetailsLabelDefault=تسمية الخط بشكل افتراضي عند الطباعة بدون تفاصيل +PrintWithoutDetails=اطبع بدون تفاصيل +YearNotDefined=لم يتم تحديد السنة +TakeposBarcodeRuleToInsertProduct=قاعدة الباركود لإدخال المنتج +TakeposBarcodeRuleToInsertProductDesc=قاعدة لاستخراج مرجع المنتج + كمية من الباركود الممسوح ضوئيًا.
    إذا كان فارغًا (القيمة الافتراضية) ، سيستخدم التطبيق الباركود الكامل الممسوح ضوئيًا للعثور على المنتج.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +AlreadyPrinted=طبعت بالفعل diff --git a/htdocs/langs/ar_SA/categories.lang b/htdocs/langs/ar_SA/categories.lang index 49df6dddd3b..c36fe5f7bc7 100644 --- a/htdocs/langs/ar_SA/categories.lang +++ b/htdocs/langs/ar_SA/categories.lang @@ -3,23 +3,23 @@ Rubrique=العلامة / الفئة Rubriques=الكلمات / فئات RubriquesTransactions=علامات/ فئات المعاملات categories=علامات / فئات -NoCategoryYet=No tag/category of this type has been created +NoCategoryYet=لم يتم إنشاء علامة / فئة من هذا النوع In=في AddIn=اضف الى modify=تعديل Classify=صنف CategoriesArea=منطقة الكلمات / الفئات -ProductsCategoriesArea=Product/Service tags/categories area -SuppliersCategoriesArea=Vendor tags/categories area -CustomersCategoriesArea=Customer tags/categories area -MembersCategoriesArea=Member tags/categories area -ContactsCategoriesArea=Contact tags/categories area -AccountsCategoriesArea=Bank account tags/categories area -ProjectsCategoriesArea=Project tags/categories area -UsersCategoriesArea=User tags/categories area -SubCats=Sub-categories +ProductsCategoriesArea=منطقة علامات / فئات المنتج / الخدمة +SuppliersCategoriesArea=منطقة علامات / فئات البائعين +CustomersCategoriesArea=منطقة علامات / فئات العملاء +MembersCategoriesArea=منطقة علامات الأعضاء / الفئات +ContactsCategoriesArea=علامات الاتصال / منطقة الفئات +AccountsCategoriesArea=منطقة علامات / فئات الحساب المصرفي +ProjectsCategoriesArea=علامات المشروع / منطقة الفئات +UsersCategoriesArea=علامات المستخدم / منطقة الفئات +SubCats=الفئات الفرعية CatList=قائمة العلامات / الفئات -CatListAll=List of tags/categories (all types) +CatListAll=قائمة العلامات / الفئات (جميع الأنواع) NewCategory=علامة / فئة جديدة ModifCat=تعديل العلامة / الفئة CatCreated=تم إنشاء العلامة / الفئة @@ -33,7 +33,7 @@ WasAddedSuccessfully=تمت إضافة %s بنجاح. ObjectAlreadyLinkedToCategory=العنصر مرتبط بالفعل بهذه العلامة / الفئة. ProductIsInCategories=المنتج / الخدمة مرتبط بـ العلامات / الفئات التالية CompanyIsInCustomersCategories=هذا الطرف الثالث مرتبط بـ العملاء / العملاء المحتملون العلامات / فئات التالية  -CompanyIsInSuppliersCategories=This third party is linked to following vendors tags/categories +CompanyIsInSuppliersCategories=هذا الطرف الثالث مرتبط بعلامات / فئات البائعين التالية MemberIsInCategories=هذا العضو مرتبط بـ علامات / فئات الأعضاء التالية ContactIsInCategories=ويرتبط هذا الاتصال إلى علامات / فئات جهات الاتصال التالية ProductHasNoCategory=هذا المنتج / الخدمة ليست في أي علامات / فئات @@ -42,6 +42,7 @@ MemberHasNoCategory=هذا العضو ليس في أي علامات / فئات ContactHasNoCategory=هذا الاتصال ليس في أي علامات / فئات ProjectHasNoCategory=هذا المشروع ليس في أي علامات / فئات ClassifyInCategory=إضافة إلى العلامة / الفئة +RemoveCategory=Remove category NotCategorized=دون علامة / فئة CategoryExistsAtSameLevel=هذه الفئة موجودة بالفعل مع هذا المرجع ContentsVisibleByAllShort=المحتويات مرئية للجميع @@ -49,52 +50,56 @@ ContentsNotVisibleByAllShort=المحتويات غير مرئية من قبل ا DeleteCategory=حذف العلامة / الفئة ConfirmDeleteCategory=هل تريد بالتأكيد حذف هذه العلامة / الفئة؟ NoCategoriesDefined=لم يتم تحديد أي علامة / فئة -SuppliersCategoryShort=Vendors tag/category +SuppliersCategoryShort=علامة البائعين / الفئة CustomersCategoryShort=علامة / فئة العملاء  ProductsCategoryShort=علامة / فئة المنتجات  MembersCategoryShort=علامة / فئة الأعضاء  -SuppliersCategoriesShort=Vendors tags/categories +SuppliersCategoriesShort=علامات / فئات البائعين CustomersCategoriesShort=علامات / فئات العملاء  ProspectsCategoriesShort=علامات/ فئات الاحتمال -CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories +CustomersProspectsCategoriesShort=الزبون. / بروسب. العلامات / الفئات ProductsCategoriesShort=علامات / فئات المنتجات  MembersCategoriesShort=علامات / فئات الأعضاء  ContactCategoriesShort=علامات / فئات جهات الاتصال  AccountsCategoriesShort=علامات / فئات الحسابات  ProjectsCategoriesShort=علامات / فئات المشاريع  -UsersCategoriesShort=Users tags/categories -StockCategoriesShort=Warehouse tags/categories -ThisCategoryHasNoItems=This category does not contain any items. +UsersCategoriesShort=علامات المستخدمين / الفئات +StockCategoriesShort=علامات / فئات المستودعات +ThisCategoryHasNoItems=هذه الفئة لا تحتوي على أي عناصر. CategId=معرف العلامة / الفئة -ParentCategory=Parent tag/category -ParentCategoryLabel=Label of parent tag/category -CatSupList=List of vendors tags/categories -CatCusList=List of customers/prospects tags/categories +ParentCategory=العلامة الأصلية / الفئة +ParentCategoryID=ID of parent tag/category +ParentCategoryLabel=تسمية العلامة / الفئة الأصل +CatSupList=قائمة بعلامات / فئات البائعين +CatCusList=قائمة بعلامات / فئات العملاء / العملاء المحتملين CatProdList=قائمة علامات / فئات المنتجات  CatMemberList=قائمة علامات / فئات الأعضاء  -CatContactList=List of contacts tags/categories -CatProjectsList=List of projects tags/categories -CatUsersList=List of users tags/categories -CatSupLinks=Links between vendors and tags/categories +CatContactList=قائمة العلامات / الفئات جهات الاتصال +CatProjectsList=قائمة علامات / فئات المشاريع +CatUsersList=قائمة علامات المستخدمين / الفئات +CatSupLinks=الروابط بين البائعين والعلامات / الفئات CatCusLinks=الروابط بين العملاء / احتمال والعلامات / فئات -CatContactsLinks=Links between contacts/addresses and tags/categories +CatContactsLinks=الروابط بين الأسماء / العناوين والعلامات / الفئات CatProdLinks=الروابط بين المنتجات / الخدمات والعلامات / الفئات CatMembersLinks=الروابط بين أفراد والعلامات / فئات CatProjectsLinks=الروابط بين المشاريع والعلامات / الفئات -CatUsersLinks=Links between users and tags/categories +CatUsersLinks=الروابط بين المستخدمين والعلامات / الفئات DeleteFromCat=إزالة من العلامة / الفئة ExtraFieldsCategories=سمات تكميلية CategoriesSetup=إعداد العلامات / الفئات CategorieRecursiv=ربط مع العلامة / الفئة الاب تلقائيا -CategorieRecursivHelp=If option is on, when you add a product into a subcategory, product will also be added into the parent category. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=أضف المنتج / الخدمة التالية -AddCustomerIntoCategory=Assign category to customer -AddSupplierIntoCategory=Assign category to supplier +AddCustomerIntoCategory=تعيين فئة للعميل +AddSupplierIntoCategory=تعيين فئة للمورد +AssignCategoryTo=تعيين فئة إلى ShowCategory=إظهار العلامة / الفئة ByDefaultInList=افتراضيا في القائمة -ChooseCategory=Choose category -StocksCategoriesArea=Warehouse Categories -ActionCommCategoriesArea=Event Categories -WebsitePagesCategoriesArea=Page-Container Categories -KnowledgemanagementsCategoriesArea=KM article Categories -UseOrOperatorForCategories=Use 'OR' operator for categories +ChooseCategory=اختر الفئة +StocksCategoriesArea=فئات المستودعات +TicketsCategoriesArea=فئات التذاكر +ActionCommCategoriesArea=فئات الحدث +WebsitePagesCategoriesArea=فئات حاوية الصفحة +KnowledgemanagementsCategoriesArea=فئات مقالة KM +UseOrOperatorForCategories=استخدم عامل التشغيل "OR" للفئات +AddObjectIntoCategory=أضف كائنًا إلى الفئة diff --git a/htdocs/langs/ar_SA/commercial.lang b/htdocs/langs/ar_SA/commercial.lang index e3a95602dec..adc0dcdb097 100644 --- a/htdocs/langs/ar_SA/commercial.lang +++ b/htdocs/langs/ar_SA/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=احتمال وضع DraftPropals=صياغة مقترحات تجارية NoLimit=لا حدود ToOfferALinkForOnlineSignature=رابط للتوقيع عبر الإنترنت -WelcomeOnOnlineSignaturePage=مرحبًا بك في الصفحة لقبول العروض التجارية من %s -ThisScreenAllowsYouToSignDocFrom=تسمح لك هذه الشاشة بقبول وتوقيع أو رفض عرض أسعار / عرض تجاري -ThisIsInformationOnDocumentToSign=هذه معلومات على الوثيقة لقبولها أو رفضها +WelcomeOnOnlineSignaturePageProposal=مرحبًا بك في الصفحة لقبول العروض التجارية من %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=تسمح لك هذه الشاشة بقبول وتوقيع أو رفض عرض أسعار / عرض تجاري +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=هذه معلومات على الوثيقة لقبولها أو رفضها +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=توقيع عرض الأسعار / العرض التجاري %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=تم تعطيل ميزة التوقيع عبر الإنترنت أو تم إنشاء المستند قبل تمكين الميزة diff --git a/htdocs/langs/ar_SA/companies.lang b/htdocs/langs/ar_SA/companies.lang index f083a6caafa..aa88cd5a24b 100644 --- a/htdocs/langs/ar_SA/companies.lang +++ b/htdocs/langs/ar_SA/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=اسم الشركة %s موجود بالفعل. اختر واحد اخر. ErrorSetACountryFirst=اضبط البلد أولاً SelectThirdParty=حدد طرفًا ثالثًا -ConfirmDeleteCompany=Are you sure you want to delete this company and all related information? +ConfirmDeleteCompany=هل أنت متأكد أنك تريد حذف هذه الشركة وجميع المعلومات ذات الصلة؟ DeleteContact=حذف جهة اتصال | عنوان -ConfirmDeleteContact=Are you sure you want to delete this contact and all related information? +ConfirmDeleteContact=هل أنت متأكد أنك تريد حذف جهة الاتصال هذه وجميع المعلومات ذات الصلة؟ MenuNewThirdParty=طرف ثالث جديد MenuNewCustomer=عميل جديد MenuNewProspect=فرصة جديدة @@ -19,7 +19,7 @@ ProspectionArea=منطقة الفرص IdThirdParty=معرف الطرف الثالث IdCompany=معرف الشركة IdContact=معرف جهة الاتصال -ThirdPartyAddress=Third-party address +ThirdPartyAddress=عنوان الطرف الثالث ThirdPartyContacts=جهات اتصال الطرف الثالث ThirdPartyContact=جهة اتصال | عنوان الطرف الثالث Company=شركة @@ -52,27 +52,28 @@ CivilityCode=قواعد السلوك RegisteredOffice=مكتب مسجل Lastname=اللقب Firstname=الاسم الاول -RefEmployee=Employee reference -NationalRegistrationNumber=National registration number +RefEmployee=مرجع الموظف +NationalRegistrationNumber=رقم التسجيل الوطني PostOrFunction=الوظيفه UserTitle=العنوان NatureOfThirdParty=طبيعة الطرف الثالث NatureOfContact=طبيعة الاتصال Address=عنوان State=الولاية / المقاطعة +StateId=معرف الدولة StateCode=رمز الولاية / المقاطعة StateShort=الولاية Region=المنطقة Region-State=المنطقة - الولاية Country=الدولة CountryCode=رمز البلد -CountryId=معرف البلد +CountryId=معرف الدولة Phone=الهاتف PhoneShort=الهاتف Skype=سكايب Call=مكالمة Chat=دردشة -PhonePro=Bus. phone +PhonePro=أوتوبيس. هاتف PhonePerso=الهاتف الشخصي PhoneMobile=الجوال No_Email=رفض الرسائل الإلكترونية الجماعية @@ -81,9 +82,9 @@ Zip=الرمز البريدي Town=مدينة Web=الويب Poste= المنصب -DefaultLang=Default language +DefaultLang=اللغة الافتراضية VATIsUsed=تطبق ضريبة المبيعات -VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers +VATIsUsedWhenSelling=يحدد هذا ما إذا كان هذا الطرف الثالث يتضمن ضريبة مبيعات أم لا عندما يُصدر فاتورة لعملائه VATIsNotUsed=لا تطبق ضريبة المبيعات CopyAddressFromSoc=نسخ العنوان من تفاصيل الطرف الثالث ThirdpartyNotCustomerNotSupplierSoNoRef=لا عميل ولا مورد، ولا توجد كائنات مرجعية متاحة @@ -105,7 +106,7 @@ WrongSupplierCode=كود المورد غير صالح CustomerCodeModel=العميل رمز النموذج SupplierCodeModel=نموذج كود المورد Gencod=الباركود -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=الباركود السعر المرجع ##### Professional ID ##### ProfId1Short=هوية مهنية 1 ProfId2Short=هوية مهنية 2 @@ -161,16 +162,16 @@ ProfId3CL=- ProfId4CL=- ProfId5CL=- ProfId6CL=- -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId1CM=هوية شخصية. الأستاذ. 1 (السجل التجاري) +ProfId2CM=هوية شخصية. الأستاذ. 2 (رقم دافع الضرائب) +ProfId3CM=هوية شخصية. الأستاذ. 3 (رقم مرسوم الانشاء) +ProfId4CM=هوية شخصية. الأستاذ. 4 (رقم شهادة الإيداع) +ProfId5CM=هوية شخصية. الأستاذ. 5 (أخرى) ProfId6CM=- -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId1ShortCM=السجل التجاري +ProfId2ShortCM=رقم دافع الضرائب +ProfId3ShortCM=رقم مرسوم الانشاء +ProfId4ShortCM=شهادة الايداع رقم ProfId5ShortCM=آخرون ProfId6ShortCM=- ProfId1CO=الهوية المهنية 1 (R.U.T.) @@ -189,17 +190,17 @@ ProfId1ES=الهوية المهنية 1 (CIF / NIF) ProfId2ES=الهوية المهنية 2 (رقم الضمان الاجتماعي) ProfId3ES=الهوية المهنية 3 (CNAE) ProfId4ES=(عدد الجماعية) -ProfId5ES=Prof Id 5 (EORI number) +ProfId5ES=معرف الأستاذ 5 (رقم EORI) ProfId6ES=- ProfId1FR=الأستاذ عيد 1 (صفارة إنذار) ProfId2FR=الأستاذ عيد 2 (SIRET) ProfId3FR=الأستاذ عيد 3 (NAF ، البالغ من العمر قرد) ProfId4FR=الأستاذ عيد 4 (نظام المنسقين المقيمين / لجمهورية مقدونيا) -ProfId5FR=Prof Id 5 (numéro EORI) +ProfId5FR=معرف الأستاذ 5 (رقم EORI) ProfId6FR=- -ProfId1ShortFR=SIREN -ProfId2ShortFR=SIRET -ProfId3ShortFR=NAF +ProfId1ShortFR=صفارة إنذار +ProfId2ShortFR=سيريت +ProfId3ShortFR=ناف ProfId4ShortFR=RCS ProfId5ShortFR=EORI ProfId6ShortFR=- @@ -255,7 +256,7 @@ ProfId1PT=الأستاذ عيد 1 (NIPC) ProfId2PT=الأستاذ عيد 2 (رقم الضمان الاجتماعي) ProfId3PT=الأستاذ عيد 3 (رقم السجل التجاري) ProfId4PT=الأستاذ عيد 4 (يضم) -ProfId5PT=Prof Id 5 (EORI number) +ProfId5PT=معرف الأستاذ 5 (رقم EORI) ProfId6PT=- ProfId1SN=RC ProfId2SN=NINEA @@ -279,7 +280,7 @@ ProfId1RO=Prof Id 1 (CUI) ProfId2RO=Prof Id 2 (Nr. Înmatriculare) ProfId3RO=Prof Id 3 (CAEN) ProfId4RO=Prof Id 5 (EUID) -ProfId5RO=Prof Id 5 (EORI number) +ProfId5RO=معرف الأستاذ 5 (رقم EORI) ProfId6RO=- ProfId1RU=الأستاذ رقم 1 (OGRN) ProfId2RU=الأستاذ رقم 2 (INN) @@ -287,12 +288,12 @@ ProfId3RU=Prof Id 3 (KPP) ProfId4RU=Prof Id 4 (OKPO) ProfId5RU=- ProfId6RU=- -ProfId1UA=Prof Id 1 (EDRPOU) -ProfId2UA=Prof Id 2 (DRFO) -ProfId3UA=Prof Id 3 (INN) -ProfId4UA=Prof Id 4 (Certificate) -ProfId5UA=Prof Id 5 (RNOKPP) -ProfId6UA=Prof Id 6 (TRDPAU) +ProfId1UA=معرف الأستاذ 1 (EDRPOU) +ProfId2UA=معرف الأستاذ 2 (DRFO) +ProfId3UA=معرف الأستاذ 3 (INN) +ProfId4UA=معرف الأستاذ 4 (شهادة) +ProfId5UA=معرف الأستاذ 5 (RNOKPP) +ProfId6UA=معرف الأستاذ 6 (TRDPAU) ProfId1DZ=RC ProfId2DZ=Art. ProfId3DZ=NIF @@ -353,7 +354,7 @@ CustomerCodeDesc=كود العميل فريد لجميع العملاء SupplierCodeDesc=كود المورد ، فريد لجميع الموردين RequiredIfCustomer=مطلوب ، إذا كان الطرف الثالث عميلاً أو فرصة RequiredIfSupplier=مطلوب إذا كان الطرف الثالث موردا -ValidityControledByModule=Validity controlled by the module +ValidityControledByModule=يتم التحكم في الصلاحية بواسطة الوحدة ThisIsModuleRules=قواعد هذه الوحدة ProspectToContact=فرصة للاتصال CompanyDeleted=تم حذف شركة "%s" من قاعدة البيانات. @@ -363,7 +364,7 @@ ListOfThirdParties=قائمة الأطراف الثالثة ShowCompany=طرف ثالث ShowContact=عنوان الإتصال ContactsAllShort=الكل (بدون فلتر) -ContactType=Contact role +ContactType=دور الاتصال ContactForOrders=جهة اتصال الامر ContactForOrdersOrShipments=جهة اتصال الامر أو الشحنة ContactForProposals=جهة اتصال العروض @@ -385,7 +386,7 @@ VATIntraCheck=فحص VATIntraCheckDesc=The VAT ID must include the country prefix. The link %s uses the European VAT checker service (VIES) which requires internet access from the Dolibarr server. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=تحقق من معرف ضريبة القيمة المضافة داخل الاتجاد على موقع المفوضية الأوروبية -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraManualCheck=يمكنك أيضًا التحقق يدويًا على موقع المفوضية الأوروبية %s ErrorVATCheckMS_UNAVAILABLE=تحقق غير ممكن. لا يتم توفير خدمة التحقق من قبل الدولة العضو (%s). NorProspectNorCustomer=ليس فرصة، ولا عميل JuridicalStatus=نوع الكيان التجاري @@ -461,12 +462,12 @@ ListSuppliersShort=قائمة الموردين ListProspectsShort=قائمة الفرص ListCustomersShort=قائمة العملاء ThirdPartiesArea=الأطراف الثالثة | جهات الاتصال -LastModifiedThirdParties=Latest %s Third Parties which were modified -UniqueThirdParties=Total number of Third Parties +LastModifiedThirdParties=أحدث %s الأطراف الثالثة التي تم تعديلها +UniqueThirdParties=إجمالي عدد الأطراف الثالثة InActivity=فتح ActivityCeased=مغلق ThirdPartyIsClosed=الطرف الثالث مغلق -ProductsIntoElements=List of products/services mapped to %s +ProductsIntoElements=قائمة المنتجات / الخدمات المعيّنة لـ %s CurrentOutstandingBill=فاتورة مستحقة حاليا OutstandingBill=الأعلى للفاتورة المستحقة OutstandingBillReached=الأعلى لفاتورة مستحقة وصلت @@ -476,7 +477,7 @@ LeopardNumRefModelDesc=الكود مجاني. يمكن تعديل هذا الك ManagingDirectors=اسم المدير (المديرون) (الرئيس التنفيذي ، المدير ، الرئيس) MergeOriginThirdparty=طرف ثالث مكرر (الطرف الثالث الذي تريد حذفه) MergeThirdparties=دمج أطراف ثالثة -ConfirmMergeThirdparties=Are you sure you want to merge the chosen third party with the current one? All linked objects (invoices, orders, ...) will be moved to the current third party, after which the chosen third party will be deleted. +ConfirmMergeThirdparties=هل أنت متأكد أنك تريد دمج الطرف الثالث المختار مع الطرف الحالي؟ سيتم نقل جميع العناصر المرتبطة (الفواتير ، الطلبات ، ...) إلى الطرف الثالث الحالي ، وبعد ذلك سيتم حذف الطرف الثالث المختار. ThirdpartiesMergeSuccess=تم دمج الأطراف الثالثة SaleRepresentativeLogin=تسجيل دخول مندوب مبيعات SaleRepresentativeFirstname=الاسم الأول لمندوب المبيعات diff --git a/htdocs/langs/ar_SA/compta.lang b/htdocs/langs/ar_SA/compta.lang index 364e6d90e70..0d5c0b3cc1c 100644 --- a/htdocs/langs/ar_SA/compta.lang +++ b/htdocs/langs/ar_SA/compta.lang @@ -29,39 +29,41 @@ BalanceBefore=الميزان (قبل) Balance=التوازن Debit=الخصم Credit=الائتمان +AccountingDebit=الخصم +AccountingCredit=الائتمان Piece=تمثل الوثيقة. AmountHTVATRealReceived=جمعت HT AmountHTVATRealPaid=HT المدفوعة VATToPay=المبيعات الضريبية VATReceived=تم استلام الضريبة VATToCollect=المشتريات الضريبية -VATSummary=Tax monthly -VATBalance=Tax Balance -VATPaid=Tax paid -LT1Summary=Tax 2 summary -LT2Summary=Tax 3 summary +VATSummary=ضريبة شهرية +VATBalance=رصيد الضريبة +VATPaid=الضريبة المدفوعة +LT1Summary=ملخص الضريبة 2 +LT2Summary=ملخص الضريبة 3 LT1SummaryES=RE الميزان LT2SummaryES=IRPF الرصيد -LT1SummaryIN=CGST Balance -LT2SummaryIN=SGST Balance -LT1Paid=Tax 2 paid -LT2Paid=Tax 3 paid +LT1SummaryIN=ميزان CGST +LT2SummaryIN=ميزان SGST +LT1Paid=دفع الضريبة 2 +LT2Paid=دفع الضريبة 3 LT1PaidES=RE المدفوعة LT2PaidES=مدفوع IRPF -LT1PaidIN=CGST Paid -LT2PaidIN=SGST Paid -LT1Customer=Tax 2 sales -LT1Supplier=Tax 2 purchases +LT1PaidIN=مدفوعة CGST +LT2PaidIN=مدفوعة SGST +LT1Customer=ضريبة المبيعات 2 +LT1Supplier=ضريبة مشتريات 2 LT1CustomerES=RE المبيعات LT1SupplierES=RE المشتريات -LT1CustomerIN=CGST sales -LT1SupplierIN=CGST purchases -LT2Customer=Tax 3 sales -LT2Supplier=Tax 3 purchases +LT1CustomerIN=مبيعات CGST +LT1SupplierIN=مشتريات CGST +LT2Customer=ضريبة المبيعات 3 +LT2Supplier=3 ضريبة المشتريات LT2CustomerES=مبيعات IRPF LT2SupplierES=مشتريات IRPF -LT2CustomerIN=SGST sales -LT2SupplierIN=SGST purchases +LT2CustomerIN=مبيعات SGST +LT2SupplierIN=مشتريات SGST VATCollected=جمعت ضريبة القيمة المضافة StatusToPay=دفع SpecialExpensesArea=منطقة لجميع المدفوعات الخاصة @@ -70,7 +72,7 @@ SocialContribution=الضريبة الاجتماعية أو المالية SocialContributions=الضرائب الاجتماعية أو المالية SocialContributionsDeductibles=Deductible social or fiscal taxes SocialContributionsNondeductibles=Nondeductible social or fiscal taxes -DateOfSocialContribution=Date of social or fiscal tax +DateOfSocialContribution=تاريخ الضريبة الاجتماعية أو المالية LabelContrib=Label contribution TypeContrib=Type contribution MenuSpecialExpenses=المصروفات الخاصة @@ -80,16 +82,16 @@ MenuNewSocialContribution=الضريبة الاجتماعية / مالية جد NewSocialContribution=الضريبة الاجتماعية / مالية جديدة AddSocialContribution=Add social/fiscal tax ContributionsToPay=الضرائب الاجتماعية / المالية لدفع -AccountancyTreasuryArea=Billing and payment area +AccountancyTreasuryArea=منطقة الفواتير والدفع NewPayment=دفع جديدة PaymentCustomerInvoice=الزبون تسديد الفاتورة -PaymentSupplierInvoice=vendor invoice payment +PaymentSupplierInvoice=دفع فاتورة البائع PaymentSocialContribution=اجتماعي / دفع الضرائب المالية PaymentVat=دفع ضريبة القيمة المضافة -AutomaticCreationPayment=Automatically record the payment +AutomaticCreationPayment=سجل الدفع تلقائيًا ListPayment=قائمة المدفوعات ListOfCustomerPayments=قائمة مدفوعات العملاء -ListOfSupplierPayments=List of vendor payments +ListOfSupplierPayments=قائمة مدفوعات البائعين DateStartPeriod=تاريخ بداية الفترة DateEndPeriod=تاريخ انتهاء الفترة newLT1Payment=جديد الضريبية 2 الدفع @@ -106,25 +108,25 @@ LT2PaymentES=IRPF الدفع LT2PaymentsES=الدفعات IRPF VATPayment=Sales tax payment VATPayments=Sales tax payments -VATDeclarations=VAT declarations -VATDeclaration=VAT declaration +VATDeclarations=إقرارات ضريبة القيمة المضافة +VATDeclaration=إقرار ضريبة القيمة المضافة VATRefund=Sales tax refund -NewVATPayment=New sales tax payment -NewLocalTaxPayment=New tax %s payment +NewVATPayment=دفع ضريبة المبيعات الجديدة +NewLocalTaxPayment=دفعة جديدة للضريبة %s Refund=رد SocialContributionsPayments=الاجتماعية المدفوعات / الضرائب المالية ShowVatPayment=وتظهر دفع ضريبة القيمة المضافة TotalToPay=على دفع ما مجموعه -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted on %s and filtered on 1 bank account (with no other filters) -CustomerAccountancyCode=Customer accounting code -SupplierAccountancyCode=Vendor accounting code +BalanceVisibilityDependsOnSortAndFilters=يظهر الرصيد في هذه القائمة فقط إذا تم فرز الجدول على %s وتصفيته على حساب مصرفي واحد (بدون عوامل تصفية أخرى) +CustomerAccountancyCode=كود محاسبة العملاء +SupplierAccountancyCode=كود محاسبة البائع CustomerAccountancyCodeShort=الزبون. حساب. رمز SupplierAccountancyCodeShort=سوب. حساب. رمز AccountNumber=رقم الحساب NewAccountingAccount=حساب جديد Turnover=Turnover invoiced TurnoverCollected=Turnover collected -SalesTurnoverMinimum=Minimum turnover +SalesTurnoverMinimum=الحد الأدنى من معدل الدوران ByExpenseIncome=By expenses & incomes ByThirdParties=بو أطراف ثالثة ByUserAuthorOfInvoice=فاتورة من قبل المؤلف @@ -135,26 +137,28 @@ NewCheckReceipt=خصم جديد NewCheckDeposit=تأكد من ايداع جديدة NewCheckDepositOn=تهيئة لتلقي الودائع على حساب : ٪ ق NoWaitingChecks=No checks awaiting deposit. -DateChequeReceived=Check receiving date -NbOfCheques=No. of checks +DateChequeReceived=تحقق من تاريخ الاستلام +NbOfCheques=عدد الشيكات PaySocialContribution=دفع ضريبة اجتماعية / مالية -PayVAT=Pay a VAT declaration -PaySalary=Pay a salary card -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid ? -ConfirmPayVAT=Are you sure you want to classify this VAT declaration as paid ? -ConfirmPaySalary=Are you sure you want to classify this salary card as paid? +PayVAT=دفع إقرار ضريبة القيمة المضافة +PaySalary=دفع بطاقة الراتب +ConfirmPaySocialContribution=هل أنت متأكد من أنك تريد تصنيف هذه الضريبة الاجتماعية أو الضريبية على أنها مدفوعة؟ +ConfirmPayVAT=هل أنت متأكد من أنك تريد تصنيف إقرار ضريبة القيمة المضافة هذا على أنه مدفوع؟ +ConfirmPaySalary=هل أنت متأكد أنك تريد تصنيف بطاقة الراتب هذه على أنها مدفوعة؟ DeleteSocialContribution=حذف دفع الضرائب الاجتماعي أو المالي -DeleteVAT=Delete a VAT declaration -DeleteSalary=Delete a salary card -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? -ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +DeleteVAT=حذف إقرار ضريبة القيمة المضافة +DeleteSalary=حذف بطاقة الراتب +DeleteVariousPayment=احذف دفعة مختلفة +ConfirmDeleteSocialContribution=هل أنت متأكد من أنك تريد حذف مدفوعات الضرائب الاجتماعية / المالية؟ +ConfirmDeleteVAT=هل أنت متأكد أنك تريد حذف إقرار ضريبة القيمة المضافة هذا؟ +ConfirmDeleteSalary=هل أنت متأكد أنك تريد حذف هذا الراتب؟ +ConfirmDeleteVariousPayment=هل أنت متأكد أنك تريد حذف هذه المدفوعات المتنوعة؟ ExportDataset_tax_1=الضرائب والمدفوعات الاجتماعية والمالية CalcModeVATDebt=الوضع٪ SVAT بشأن المحاسبة الالتزام٪ الصورة. CalcModeVATEngagement=وضع SVAT٪ على مداخيل مصاريف٪ الصورة. -CalcModeDebt=Analysis of known recorded documents even if they are not yet accounted in ledger. -CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger. -CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table. +CalcModeDebt=تحليل المستندات المسجلة المعروفة حتى لو لم يتم احتسابها بعد في دفتر الأستاذ. +CalcModeEngagement=تحليل المدفوعات المسجلة المعروفة ، حتى لو لم يتم احتسابها بعد في دفتر الأستاذ. +CalcModeBookkeeping=تحليل البيانات المسجلة في دفتر دفتر الأستاذ. CalcModeLT1= الوضع٪ زارة العلاقات الخارجية على فواتير العملاء - فواتير الموردين٪ الصورة CalcModeLT1Debt=الوضع٪ زارة العلاقات الخارجية على فواتير العملاء٪ الصورة CalcModeLT1Rec= الوضع٪ زارة العلاقات الخارجية على فواتير الموردين٪ الصورة @@ -163,53 +167,53 @@ CalcModeLT2Debt=وضع sIRPF٪ على فواتير العملاء٪ الصو CalcModeLT2Rec= وضع sIRPF٪ على فواتير الموردين٪ الصورة AnnualSummaryDueDebtMode=ميزان الإيرادات والمصروفات، ملخص سنوي AnnualSummaryInputOutputMode=ميزان الإيرادات والمصروفات، ملخص سنوي -AnnualByCompanies=Balance of income and expenses, by predefined groups of account -AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode %sClaims-Debts%s said Commitment accounting. -AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode %sIncomes-Expenses%s said cash accounting. -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation based on recorded payments made even if they are not yet accounted in Ledger -SeeReportInDueDebtMode=See %sanalysis of recorded documents%s for a calculation based on known recorded documents even if they are not yet accounted in Ledger -SeeReportInBookkeepingMode=See %sanalysis of bookeeping ledger table%s for a report based on Bookkeeping Ledger table +AnnualByCompanies=ميزان الدخل والمصروفات حسب مجموعات الحساب المحددة مسبقا +AnnualByCompaniesDueDebtMode=ميزان الإيرادات والمصروفات ، التفاصيل حسب المجموعات المحددة مسبقًا ، الوضع %sClaims-Debts%s قال محاسبة الالتزام a09a4b739f. +AnnualByCompaniesInputOutputMode=ميزان الإيرادات والمصروفات ، التفاصيل حسب المجموعات المحددة مسبقًا ، الوضع %s الدخل - المصروفات %s قال المحاسبة النقدية a09a4b739. +SeeReportInInputOutputMode=راجع %s تحليل المدفوعات +SeeReportInDueDebtMode=راجع %s تحليل المستندات المسجلة +SeeReportInBookkeepingMode=راجع %s تحليل جدول دفتر الأستاذ لحراسة الدفاتر RulesAmountWithTaxIncluded=- المبالغ المبينة لمع جميع الضرائب المدرجة -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded -RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. -RulesCADue=- It includes the customer's due invoices whether they are paid or not.
    - It is based on the billing date of these invoices.
    -RulesCAIn=- It includes all the effective payments of invoices received from customers.
    - It is based on the payment date of these invoices
    -RulesCATotalSaleJournal=It includes all credit lines from the Sale journal. -RulesSalesTurnoverOfIncomeAccounts=It includes (credit - debit) of lines for product accounts in group INCOME -RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" -RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" -RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts grouped by personalized groups -SeePageForSetup=See menu %s for setup -DepositsAreNotIncluded=- Down payment invoices are not included +RulesAmountWithTaxExcluded=- مبالغ الفواتير المعروضة مع استبعاد جميع الضرائب +RulesResultDue=- تشمل جميع الفواتير والمصاريف وضريبة القيمة المضافة والتبرعات والرواتب سواء تم دفعها أم لا.
    - يعتمد على تاريخ فوترة الفواتير وتاريخ استحقاق المصروفات أو مدفوعات الضرائب. بالنسبة للرواتب ، يتم استخدام تاريخ انتهاء الفترة. +RulesResultInOut=- تشمل المدفوعات الحقيقية للفواتير والمصاريف وضريبة القيمة المضافة والرواتب.
    - يعتمد على تواريخ سداد الفواتير والمصاريف وضريبة القيمة المضافة والتبرعات والرواتب. +RulesCADue=- تشمل فواتير العميل المستحقة سواء تم دفعها أم لا.
    - يعتمد على تاريخ فوترة هذه الفواتير.
    +RulesCAIn=- يشمل جميع المدفوعات الفعلية للفواتير المستلمة من العملاء.
    - يعتمد على تاريخ دفع هذه الفواتير
    +RulesCATotalSaleJournal=يشمل جميع خطوط الائتمان من مجلة البيع. +RulesSalesTurnoverOfIncomeAccounts=يتضمن (دائن - مدين) خطوط لحسابات المنتجات في دخل المجموعة +RulesAmountOnInOutBookkeepingRecord=يتضمن سجلًا في دفتر الأستاذ الخاص بك مع حسابات المحاسبة التي تحتوي على مجموعة "المصروفات" أو "الدخل" +RulesResultBookkeepingPredefined=يتضمن سجلًا في دفتر الأستاذ الخاص بك مع حسابات المحاسبة التي تحتوي على مجموعة "المصروفات" أو "الدخل" +RulesResultBookkeepingPersonalized=يظهر السجل في دفتر الأستاذ الخاص بك مع حسابات المحاسبة مجمعة حسب المجموعات الشخصية +SeePageForSetup=انظر القائمة %s للإعداد +DepositsAreNotIncluded=- فواتير الدفعة المقدمة غير متضمنة DepositsAreIncluded=- Down payment invoices are included -LT1ReportByMonth=Tax 2 report by month -LT2ReportByMonth=Tax 3 report by month -LT1ReportByCustomers=Report tax 2 by third party -LT2ReportByCustomers=Report tax 3 by third party +LT1ReportByMonth=تقرير الضريبة 2 حسب الشهر +LT2ReportByMonth=تقرير الضريبة 3 حسب الشهر +LT1ReportByCustomers=تقرير الضريبة 2 من قبل طرف ثالث +LT2ReportByCustomers=تقرير الضريبة 3 من قبل طرف ثالث LT1ReportByCustomersES=تقرير RE طرف ثالث LT2ReportByCustomersES=تقرير من قبل طرف ثالث IRPF -VATReport=Sales tax report -VATReportByPeriods=Sales tax report by period -VATReportByMonth=Sales tax report by month -VATReportByRates=Sales tax report by rate -VATReportByThirdParties=Sales tax report by third party -VATReportByCustomers=Sales tax report by customer +VATReport=تقرير ضريبة المبيعات +VATReportByPeriods=تقرير ضريبة المبيعات حسب الفترة +VATReportByMonth=تقرير ضريبة المبيعات بالشهر +VATReportByRates=تقرير ضريبة المبيعات حسب المعدل +VATReportByThirdParties=تقرير ضريبة المبيعات من قبل طرف ثالث +VATReportByCustomers=تقرير ضريبة المبيعات من قبل العميل VATReportByCustomersInInputOutputMode=تقرير من ضريبة القيمة المضافة العملاء جمع ودفع -VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid -VATReportShowByRateDetails=Show details of this rate -LT1ReportByQuarters=Report tax 2 by rate -LT2ReportByQuarters=Report tax 3 by rate +VATReportByQuartersInInputOutputMode=تقرير عن معدل ضريبة المبيعات للضريبة المحصلة والمدفوعة +VATReportShowByRateDetails=عرض تفاصيل هذا المعدل +LT1ReportByQuarters=تقرير الضريبة 2 حسب المعدل +LT2ReportByQuarters=تقرير الضريبة 3 حسب المعدل LT1ReportByQuartersES=تقرير معدل RE LT2ReportByQuartersES=تقرير معدل IRPF -SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation -SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing -RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. -RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. -RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. -RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. +SeeVATReportInInputOutputMode=انظر التقرير %s مجموعة ضريبة القيمة المضافة %s للحصول على حساب قياسي +SeeVATReportInDueDebtMode=انظر التقرير %sVAT on debit%s للحصول على حساب مع خيار في الفواتير +RulesVATInServices=- بالنسبة للخدمات ، يتضمن التقرير ضريبة القيمة المضافة للدفعات المستلمة أو المدفوعة بالفعل على أساس تاريخ الدفع. +RulesVATInProducts=- بالنسبة للأصول المادية ، يتضمن التقرير ضريبة القيمة المضافة على أساس تاريخ الدفع. +RulesVATDueServices=- بالنسبة للخدمات ، يتضمن التقرير ضريبة القيمة المضافة للفواتير المستحقة ، المدفوعة أم لا ، بناءً على تاريخ الفاتورة. +RulesVATDueProducts=- بالنسبة للأصول المادية ، يتضمن التقرير ضريبة القيمة المضافة للفواتير المستحقة ، بناءً على تاريخ الفاتورة. OptionVatInfoModuleComptabilite=ملاحظة : للحصول على الأصول المادية ، فإنه ينبغي استخدام تاريخ التسليم ليكون أكثر إنصافا. -ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values +ThisIsAnEstimatedValue=هذه معاينة ، بناءً على أحداث العمل وليس من جدول دفتر الأستاذ النهائي ، لذلك قد تختلف النتائج النهائية عن قيم المعاينة هذه PercentOfInvoice=٪ ٪ / الفاتورة NotUsedForGoods=لا تستخدم على السلع ProposalStats=إحصاءات بشأن المقترحات @@ -230,28 +234,28 @@ Pcg_version=Chart of accounts models Pcg_type=نوع PCG Pcg_subtype=PCG النوع الفرعي InvoiceLinesToDispatch=خطوط الفاتورة لارسال -ByProductsAndServices=By product and service +ByProductsAndServices=حسب المنتج والخدمة RefExt=المرجع الخارجي -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". +ToCreateAPredefinedInvoice=لإنشاء نموذج فاتورة ، قم بإنشاء فاتورة قياسية ، ثم ، دون التحقق من صحتها ، انقر فوق الزر "%s". LinkedOrder=تصل إلى النظام Mode1=طريقة 1 Mode2=طريقة 2 CalculationRuleDesc=لحساب مجموع الضريبة على القيمة المضافة، هناك طريقتين:
    طريقة 1 والتقريب ضريبة القيمة المضافة في كل سطر، ثم ملخصا لها.
    طريقة 2 يتم تلخيص كل ضريبة القيمة المضافة في كل سطر، ثم التقريب النتيجة.
    النتيجة النهائية قد تختلف من بضعة سنتات. الوضع الافتراضي هو وضع الصورة٪. -CalculationRuleDescSupplier=According to vendor, choose appropriate method to apply same calculation rule and get same result expected by your vendor. -TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced. -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. +CalculationRuleDescSupplier=وفقًا للبائع ، اختر الطريقة المناسبة لتطبيق نفس قاعدة الحساب والحصول على نفس النتيجة التي يتوقعها البائع. +TurnoverPerProductInCommitmentAccountingNotRelevant=لا يتوفر تقرير الدوران الذي تم جمعه لكل منتج. هذا التقرير متاح فقط للدوران المفوتر. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=لا يتوفر تقرير رقم الأعمال المحصل لكل معدل ضريبة بيع. هذا التقرير متاح فقط للدوران المفوتر. CalculationMode=وضع الحساب -AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. -ConfirmCloneTax=Confirm the clone of a social/fiscal tax -ConfirmCloneVAT=Confirm the clone of a VAT declaration -ConfirmCloneSalary=Confirm the clone of a salary +AccountancyJournal=مجلة كود المحاسبة +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=سيتم استخدام حساب المحاسبة المخصص المحدد في بطاقة الطرف الثالث لمحاسبة Subledger فقط. سيتم استخدام هذا واحد لدفتر الأستاذ العام وكقيمة افتراضية لمحاسبة Subledger إذا لم يتم تحديد حساب محاسبة العميل المخصص على طرف ثالث. +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=سيتم استخدام حساب المحاسبة المخصص المحدد في بطاقة الطرف الثالث لمحاسبة Subledger فقط. سيتم استخدام هذا واحد لدفتر الأستاذ العام وكقيمة افتراضية لمحاسبة Subledger إذا لم يتم تحديد حساب محاسبة البائع المخصص على طرف ثالث. +ConfirmCloneTax=قم بتأكيد استنساخ الضريبة الاجتماعية / المالية +ConfirmCloneVAT=قم بتأكيد استنساخ إقرار ضريبة القيمة المضافة +ConfirmCloneSalary=تأكيد استنساخ الراتب CloneTaxForNextMonth=استنساخ لشهر المقبل SimpleReport=تقرير بسيط AddExtraReport=Extra reports (add foreign and national customer report) @@ -265,36 +269,37 @@ ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period ListSocialContributionAssociatedProject=List of social contributions associated with the project -DeleteFromCat=Remove from accounting group -AccountingAffectation=Accounting assignment -LastDayTaxIsRelatedTo=Last day of period the tax is related to -VATDue=Sale tax claimed -ClaimedForThisPeriod=Claimed for the period -PaidDuringThisPeriod=Paid for this period -PaidDuringThisPeriodDesc=This is the sum of all payments linked to VAT declarations which have an end-of-period date in the selected date range -ByVatRate=By sale tax rate -TurnoverbyVatrate=Turnover invoiced by sale tax rate -TurnoverCollectedbyVatrate=Turnover collected by sale tax rate -PurchasebyVatrate=Purchase by sale tax rate +DeleteFromCat=إزالة من مجموعة المحاسبة +AccountingAffectation=مهمة المحاسبة +LastDayTaxIsRelatedTo=آخر يوم في الفترة التي تتعلق بها الضريبة +VATDue=مطالبة بضريبة البيع +ClaimedForThisPeriod=ادعى عن الفترة +PaidDuringThisPeriod=دفعت لهذه الفترة +PaidDuringThisPeriodDesc=هذا هو مجموع جميع المدفوعات المرتبطة بإقرارات ضريبة القيمة المضافة التي لها تاريخ نهاية الفترة في النطاق الزمني المحدد +ByVatRate=حسب معدل ضريبة البيع +TurnoverbyVatrate=معدل دوران بفاتورة معدل ضريبة البيع +TurnoverCollectedbyVatrate=حجم المبيعات المحصلة عن طريق معدل ضريبة البيع +PurchasebyVatrate=الشراء حسب معدل ضريبة البيع LabelToShow=التسمية قصيرة -PurchaseTurnover=Purchase turnover -PurchaseTurnoverCollected=Purchase turnover collected -RulesPurchaseTurnoverDue=- It includes the supplier's due invoices whether they are paid or not.
    - It is based on the invoice date of these invoices.
    -RulesPurchaseTurnoverIn=- It includes all the effective payments of invoices done to suppliers.
    - It is based on the payment date of these invoices
    -RulesPurchaseTurnoverTotalPurchaseJournal=It includes all debit lines from the purchase journal. -RulesPurchaseTurnoverOfExpenseAccounts=It includes (debit - credit) of lines for product accounts in group EXPENSE -ReportPurchaseTurnover=Purchase turnover invoiced -ReportPurchaseTurnoverCollected=Purchase turnover collected -IncludeVarpaysInResults = Include various payments in reports -IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) -InvoiceNotLate = To be collected (< 15 days) -InvoiceNotLate15Days = To be collected (15 to 30 days) -InvoiceNotLate30Days = To be collected (> 30 days) -InvoiceToPay=To pay (< 15 days) -InvoiceToPay15Days=To pay (15 to 30 days) -InvoiceToPay30Days=To pay (> 30 days) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +PurchaseTurnover=معدل دوران الشراء +PurchaseTurnoverCollected=جمع دوران الشراء +RulesPurchaseTurnoverDue=- تشمل فواتير المورد المستحقة سواء تم دفعها أم لا.
    - يعتمد على تاريخ فاتورة هذه الفواتير.
    +RulesPurchaseTurnoverIn=- يشمل جميع عمليات السداد الفعلية للفواتير التي تم إجراؤها للموردين.
    - يعتمد على تاريخ دفع هذه الفواتير
    +RulesPurchaseTurnoverTotalPurchaseJournal=يتضمن جميع بنود الخصم من دفتر يومية الشراء. +RulesPurchaseTurnoverOfExpenseAccounts=يتضمن (مدين - دائن) خطوط لحسابات المنتجات في نفقات المجموعة +ReportPurchaseTurnover=فاتورة دوران الشراء +ReportPurchaseTurnoverCollected=جمع دوران الشراء +IncludeVarpaysInResults = تضمين المدفوعات المختلفة في التقارير +IncludeLoansInResults = تضمين القروض في التقارير +InvoiceLate30Days = متأخر (> 30 يومًا) +InvoiceLate15Days = متأخر (15 إلى 30 يومًا) +InvoiceLateMinus15Days = متأخر (أقل من 15 يومًا) +InvoiceNotLate = يتم تحصيلها (أقل من 15 يومًا) +InvoiceNotLate15Days = يتم تحصيلها (من 15 إلى 30 يومًا) +InvoiceNotLate30Days = يتم تحصيلها (> 30 يومًا) +InvoiceToPay=للدفع (<15 يومًا) +InvoiceToPay15Days=للدفع (من 15 إلى 30 يومًا) +InvoiceToPay30Days=للدفع (> 30 يومًا) +ConfirmPreselectAccount=حدد رمز المحاسبة مسبقًا +ConfirmPreselectAccountQuestion=هل أنت متأكد أنك تريد التحديد المسبق للأسطر المحددة %s برمز الحساب هذا؟ +AmountPaidMustMatchAmountOfDownPayment=يجب أن يتطابق المبلغ المدفوع مع مبلغ الدفعة المقدمة diff --git a/htdocs/langs/ar_SA/contracts.lang b/htdocs/langs/ar_SA/contracts.lang index 03dda40210d..21b6939f7e9 100644 --- a/htdocs/langs/ar_SA/contracts.lang +++ b/htdocs/langs/ar_SA/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=العقود / الاشتراكات ContractsAndLine=العقود و بنود العقود Contract=العقد ContractLine=بند العقد +ContractLines=خطوط العقد Closing=جار الإغلاق NoContracts=لا توجد عقود MenuServices=الخدمات @@ -36,7 +37,7 @@ CloseAContract=إغلاق العقد ConfirmDeleteAContract=هل انت متأكد من رغبتك في حذف هذا العقد وجميع خدماته ؟ ConfirmValidateContract=هل انت متأكد من رغبتك بتأكيد العقد المسمى %s ؟ ConfirmActivateAllOnContract=سيتم تفعيل جميع الخدمات (غير المفعلة بعد) . هل انت متأكد من رغبتك في تفعيل جميع الخدمات ؟ -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? +ConfirmCloseContract=سيؤدي هذا إلى إغلاق جميع الخدمات (منتهية الصلاحية أم لا). هل أنت متأكد أنك تريد إغلاق هذا العقد؟ ConfirmCloseService=هل انت متأكد من رغبتك بإغلاق الخدمة بتاريخ %s ؟ ValidateAContract=تصديق العقد ActivateService=تفعيل الخدمة @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=هل انت متأكد من رغبتك بحذف بند MoveToAnotherContract=نقل الخدمة الى عقد اخر ConfirmMoveToAnotherContract=لقد اخترت عقد جدبد للخدمة و اود نقل هذه الخدمة الى العقد الجديد ConfirmMoveToAnotherContractQuestion=إختر ايأ من العقود الموجودة (لنفس الطرف الثالث) ، والتي تود نقل هذه الخدمة لها ؟ -PaymentRenewContractId=تجديد بند العقد (رقم %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=تاريخ الانتهاء NoExpiredServices=الخدمات المفعلة غير المنتهية ListOfServicesToExpireWithDuration=قائمة الخدمات المنتهية خلال %s ايام @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=جهة إتصال توقيع العق HideClosedServiceByDefault=إخفاء الخدمات المغلقة إبتداءاً ShowClosedServices=إظهار الخدمات المغلقة HideClosedServices=إخفاء الخدمات المغلقة +UserStartingService=خدمة بدء المستخدم +UserClosingService=خدمة إغلاق المستخدم diff --git a/htdocs/langs/ar_SA/cron.lang b/htdocs/langs/ar_SA/cron.lang index eb03a59b91e..0243d7ca6c7 100644 --- a/htdocs/langs/ar_SA/cron.lang +++ b/htdocs/langs/ar_SA/cron.lang @@ -7,16 +7,16 @@ Permission23103 = حذف مهمة مجدولة Permission23104 = تنفيذ مهمة مجدولة # Admin CronSetup=من المقرر إعداد إدارة العمل -URLToLaunchCronJobs=URL to check and launch qualified cron jobs from a browser -OrToLaunchASpecificJob=Or to check and launch a specific job from a browser +URLToLaunchCronJobs=عنوان URL للتحقق من وظائف cron المؤهلة وإطلاقها من المستعرض +OrToLaunchASpecificJob=أو للتحقق من وظيفة معينة وإطلاقها من متصفح KeyForCronAccess=مفتاح أمان للURL لإطلاق كرون الوظائف -FileToLaunchCronJobs=Command line to check and launch qualified cron jobs +FileToLaunchCronJobs=سطر الأوامر للتحقق من وظائف cron المؤهلة وإطلاقها CronExplainHowToRunUnix=على بيئة يونكس يجب عليك استخدام دخول كرونتاب التالي لتشغيل سطر الأوامر كل 5 دقائق -CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes +CronExplainHowToRunWin=في بيئة Microsoft (tm) Windows ، يمكنك استخدام أدوات المهام المجدولة لتشغيل سطر الأوامر كل 5 دقائق CronMethodDoesNotExists=Class %s does not contains any method %s -CronMethodNotAllowed=Method %s of class %s is in blacklist of forbidden methods -CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. -CronJobProfiles=List of predefined cron job profiles +CronMethodNotAllowed=الطريقة %s للفئة %s موجودة في القائمة السوداء للطرق المحظورة +CronJobDefDesc=يتم تعريف ملفات تعريف وظائف Cron في ملف واصف الوحدة. عند تنشيط الوحدة النمطية ، يتم تحميلها وإتاحتها حتى تتمكن من إدارة الوظائف من قائمة أدوات المسؤول %s. +CronJobProfiles=قائمة ملفات تعريف وظائف كرون المحددة مسبقًا # Menu EnabledAndDisabled=Enabled and disabled # Page list @@ -26,7 +26,7 @@ CronCommand=أمر CronList=المهام المجدولة CronDelete=حذف المهام المجدولة CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=وظيفة @@ -43,11 +43,11 @@ CronModule=وحدة CronNoJobs=أي وظيفة سجلت CronPriority=الأولوية CronLabel=ملصق -CronNbRun=Number of launches -CronMaxRun=Maximum number of launches +CronNbRun=عدد عمليات الإطلاق +CronMaxRun=العدد الأقصى لعمليات الإطلاق CronEach=كل JobFinished=العمل بدأ وانتهى -Scheduled=Scheduled +Scheduled=المقرر #Page card CronAdd= إضافة وظائف CronEvery=العمل كل تنفيذ @@ -57,35 +57,44 @@ CronSaveSucess=Save successfully CronNote=التعليق CronFieldMandatory=الحقول%s إلزامي CronErrEndDateStartDt=تاريخ نهاية لا يمكن أن يكون قبل تاريخ البدء -StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +StatusAtInstall=الحالة عند تثبيت الوحدة +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=يعطل -CronTaskInactive=This job is disabled (not scheduled) +CronTaskInactive=هذه الوظيفة معطلة (غير مجدولة) CronId=هوية شخصية CronClassFile=Filename with class -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
    product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
    For example to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
    product/class/product.class.php -CronObjectHelp=The object name to load.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
    Product -CronMethodHelp=The object method to launch.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
    fetch -CronArgsHelp=The method arguments.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
    0, ProductRef +CronModuleHelp=اسم دليل وحدة Dolibarr (يعمل أيضًا مع وحدة Dolibarr الخارجية).
    على سبيل المثال لاستدعاء طريقة الجلب الخاصة بـ Dolibarr Product object / htdocs / product /class/product.class.php ، قيمة الوحدة النمطية هي
    a049271e81833 +CronClassFileHelp=المسار النسبي واسم الملف المراد تحميله (المسار مرتبط بالدليل الجذر لخادم الويب).
    على سبيل المثال لاستدعاء طريقة الجلب لكائن منتج Dolibarr htdocs / product / class / product.class.php ، قيمة اسم ملف الفئة هي
    a049271e8181 +CronObjectHelp=اسم الكائن المراد تحميله.
    على سبيل المثال لاستدعاء طريقة الجلب لكائن Dolibarr Product /htdocs/product/class/product.class.php ، قيمة اسم ملف الفئة هي
    المنتج +CronMethodHelp=طريقة الكائن لبدء.
    على سبيل المثال لاستدعاء طريقة الجلب لكائن منتج Dolibarr /htdocs/product/class/product.class.php ، قيمة الطريقة هي
    fetch +CronArgsHelp=حجج الطريقة.
    على سبيل المثال لاستدعاء طريقة الجلب لكائن Dolibarr Product /htdocs/product/class/product.class.php ، يمكن أن تكون قيمة المعلمات
    0 ، ProductRef CronCommandHelp=سطر الأوامر لتنفيذ النظام. CronCreateJob=إنشاء مهمة مجدولة جديدة CronFrom=من عند # Info # Common CronType=نوع العمل -CronType_method=Call method of a PHP Class +CronType_method=طريقة استدعاء فئة PHP CronType_command=الأمر Shell -CronCannotLoadClass=Cannot load class file %s (to use class %s) -CronCannotLoadObject=Class file %s was loaded, but object %s was not found into it -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. +CronCannotLoadClass=لا يمكن تحميل ملف الفئة %s (لاستخدام الفئة %s) +CronCannotLoadObject=تم تحميل ملف الفئة %s ، ولكن لم يتم العثور على الكائن %s فيه +UseMenuModuleToolsToAddCronJobs=اذهب إلى القائمة " الصفحة الرئيسية - أدوات الإدارة - الوظائف المجدولة " لرؤية الوظائف المجدولة وتحريرها. JobDisabled=تعطيل وظيفة MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeLocalDatabaseDump=إنشاء تفريغ قاعدة بيانات محلية. المعلمات هي: الضغط ("gz" أو "bz" أو "لا شيء") ، نوع النسخ الاحتياطي ("mysql" ، "pgsql" ، "تلقائي") ، 1 ، "تلقائي" أو اسم الملف المراد إنشاؤه ، عدد ملفات النسخ الاحتياطي المطلوب الاحتفاظ بها +MakeSendLocalDatabaseDumpShort=إرسال نسخة احتياطية من قاعدة البيانات المحلية +MakeSendLocalDatabaseDump=إرسال نسخة احتياطية لقاعدة البيانات المحلية عن طريق البريد الإلكتروني. المعلمات هي: إلى ، من ، الموضوع ، الرسالة ، اسم الملف (اسم الملف المرسل) ، عامل التصفية ('sql' للنسخ الاحتياطي لقاعدة البيانات فقط) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. -DATAPOLICYJob=Data cleaner and anonymizer -JobXMustBeEnabled=Job %s must be enabled +DATAPOLICYJob=منظف البيانات ومجهول الهوية +JobXMustBeEnabled=يجب تفعيل الوظيفة %s +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=آخر وظيفة مجدولة تم تنفيذها +NextScheduledJobExecute=المهمة التالية المجدولة للتنفيذ +NumberScheduledJobError=عدد الوظائف المجدولة بالخطأ +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/ar_SA/datapolicy.lang b/htdocs/langs/ar_SA/datapolicy.lang new file mode 100644 index 00000000000..eeb62deccc0 --- /dev/null +++ b/htdocs/langs/ar_SA/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = العميل +DATAPOLICY_TIERS_PROSPECT = فرصة +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = المورد +DATAPOLICY_CONTACT_CLIENT = العميل +DATAPOLICY_CONTACT_PROSPECT = فرصة +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = المورد +DATAPOLICY_ADHERENT = عضو +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_SA/deliveries.lang b/htdocs/langs/ar_SA/deliveries.lang index 920fa226b0f..320189d768e 100644 --- a/htdocs/langs/ar_SA/deliveries.lang +++ b/htdocs/langs/ar_SA/deliveries.lang @@ -30,3 +30,4 @@ NonShippable=غير قابل للشحن ShowShippableStatus=إظهار علامة قابل للشحن ShowReceiving=عرض إيصال الاستلام NonExistentOrder=امر غير موجود +StockQuantitiesAlreadyAllocatedOnPreviousLines = كميات المخزون المخصصة بالفعل في الأسطر السابقة diff --git a/htdocs/langs/ar_SA/dict.lang b/htdocs/langs/ar_SA/dict.lang index f9c24a7a607..ced52e16a06 100644 --- a/htdocs/langs/ar_SA/dict.lang +++ b/htdocs/langs/ar_SA/dict.lang @@ -21,7 +21,7 @@ CountryNL=هولندا CountryHU=Hongria CountryRU=روسيا CountrySE=السويد -CountryCI=Ivoiry الساحل +CountryCI=ساحل العاج CountrySN=السنغال CountryAR=الأرجنتين CountryCM=الكاميرون @@ -116,7 +116,7 @@ CountryHM=واستمع وجزر ماكدونالد CountryVA=الكرسي الرسولي (دولة الفاتيكان) CountryHN=هندوراس CountryHK=هونج كونج -CountryIS=Iceland +CountryIS=أيسلندا CountryIN=الهند CountryID=اندونيسيا CountryIR=إيران @@ -131,7 +131,7 @@ CountryKI=كيريباس CountryKP=كوريا الشمالية CountryKR=كوريا الجنوبية CountryKW=الكويت -CountryKG=Kyrgyzstan +CountryKG=قيرغيزستان CountryLA=لاوس CountryLV=لاتفيا CountryLB=لبنان @@ -160,7 +160,7 @@ CountryMD=مولدافيا CountryMN=منغوليا CountryMS=مونتسرات CountryMZ=موزامبيق -CountryMM=Myanmar (Burma) +CountryMM=ميانمار (بورما) CountryNA=ناميبيا CountryNR=ناورو CountryNP=نيبال @@ -223,7 +223,7 @@ CountryTO=تونجا CountryTT=ترينيداد وتوباغو CountryTR=تركيا CountryTM=تركمانستان -CountryTC=Turks and Caicos Islands +CountryTC=جزر تركس وكايكوس CountryTV=توفالو CountryUG=أوغندا CountryUA=أوكرانيا @@ -250,7 +250,9 @@ CountryMF=سانت مارتين ##### Civilities ##### CivilityMME=السيدة +CivilityMMEShort=السيدة CivilityMR=السيد +CivilityMRShort=السيد CivilityMLE=السيدة CivilityMTRE=السيد CivilityDR=دكتور @@ -277,7 +279,7 @@ CurrencySingMGA=Ariary CurrencyMUR=موريشيوس روبية CurrencySingMUR=موريشيوس روبية CurrencyNOK=النرويجية بالكرون -CurrencySingNOK=Norwegian kronas +CurrencySingNOK=كرونا نرويجية CurrencyTND=دينار CurrencySingTND=الدينار التونسي CurrencyUSD=الدولار الأمريكي @@ -290,7 +292,7 @@ CurrencyXOF=BCEAO فرنك أفريقي CurrencySingXOF=اتفاق وقف إطلاق النار الفرنك تشريعي ملائم CurrencyXPF=الحراجية المعتمدة الفرنك CurrencySingXPF=الحراجية المعتمدة الفرنك -CurrencyCentEUR=cents +CurrencyCentEUR=سنتا CurrencyCentSingEUR=سنت CurrencyCentINR=بيزة CurrencyCentSingINR=paise @@ -307,7 +309,7 @@ DemandReasonTypeSRC_WOM=كلمة الفم DemandReasonTypeSRC_PARTNER=شريك DemandReasonTypeSRC_EMPLOYEE=الموظف DemandReasonTypeSRC_SPONSORING=رعاية -DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer +DemandReasonTypeSRC_SRC_CUSTOMER=جهة اتصال واردة للعميل #### Paper formats #### PaperFormatEU4A0=شكل 4A0 PaperFormatEU2A0=شكل 2A0 @@ -330,30 +332,30 @@ PaperFormatCAP5=شكل P5 كندا PaperFormatCAP6=شكل P6 كندا #### Expense report categories #### ExpAutoCat=سيارة -ExpCycloCat=Moped -ExpMotoCat=Motorbike -ExpAuto3CV=3 CV -ExpAuto4CV=4 CV -ExpAuto5CV=5 CV -ExpAuto6CV=6 CV -ExpAuto7CV=7 CV -ExpAuto8CV=8 CV -ExpAuto9CV=9 CV -ExpAuto10CV=10 CV -ExpAuto11CV=11 CV -ExpAuto12CV=12 CV -ExpAuto3PCV=3 CV and more -ExpAuto4PCV=4 CV and more -ExpAuto5PCV=5 CV and more -ExpAuto6PCV=6 CV and more -ExpAuto7PCV=7 CV and more -ExpAuto8PCV=8 CV and more -ExpAuto9PCV=9 CV and more -ExpAuto10PCV=10 CV and more -ExpAuto11PCV=11 CV and more -ExpAuto12PCV=12 CV and more -ExpAuto13PCV=13 CV and more -ExpCyclo=Capacity lower to 50cm3 -ExpMoto12CV=Motorbike 1 or 2 CV -ExpMoto345CV=Motorbike 3, 4 or 5 CV -ExpMoto5PCV=Motorbike 5 CV and more +ExpCycloCat=الدراجة +ExpMotoCat=دراجات نارية +ExpAuto3CV=3 سيرة ذاتية +ExpAuto4CV=4 سيرة ذاتية +ExpAuto5CV=5 سيرة ذاتية +ExpAuto6CV=6 سيرة ذاتية +ExpAuto7CV=7 سيرة ذاتية +ExpAuto8CV=8 سيرة ذاتية +ExpAuto9CV=9 سيرة ذاتية +ExpAuto10CV=10 سيرة ذاتية +ExpAuto11CV=11 سيرة ذاتية +ExpAuto12CV=12 سيرة ذاتية +ExpAuto3PCV=3 سيرة ذاتية فأكثر +ExpAuto4PCV=4 سيرة ذاتية فأكثر +ExpAuto5PCV=5 سيرة ذاتية فأكثر +ExpAuto6PCV=6 سيرة ذاتية فأكثر +ExpAuto7PCV=7 سيرة ذاتية فأكثر +ExpAuto8PCV=8 سيرة ذاتية فأكثر +ExpAuto9PCV=9 سيرة ذاتية فأكثر +ExpAuto10PCV=10 سيرة ذاتية فأكثر +ExpAuto11PCV=11 سيرة ذاتية فأكثر +ExpAuto12PCV=12 سيرة ذاتية فأكثر +ExpAuto13PCV=13 سيرة ذاتية فأكثر +ExpCyclo=السعة أقل من 50 سم 3 +ExpMoto12CV=دراجة نارية 1 أو 2 سيرة ذاتية +ExpMoto345CV=دراجة بخارية 3 أو 4 أو 5 سيراتو +ExpMoto5PCV=دراجة بخارية 5 سيرة ذاتية فأكثر diff --git a/htdocs/langs/ar_SA/ecm.lang b/htdocs/langs/ar_SA/ecm.lang index b78f8704cac..a312486b280 100644 --- a/htdocs/langs/ar_SA/ecm.lang +++ b/htdocs/langs/ar_SA/ecm.lang @@ -1,12 +1,13 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=No. of documents in directory +ECMNbOfDocs=عدد الوثائق في الدليل ECMSection=دليل ECMSectionManual=دليل دليل ECMSectionAuto=الدليل الآلي ECMSectionsManual=دليل الشجرة ECMSectionsAuto=شجرة الآلي +ECMSectionsMedias=Medias tree ECMSections=أدلة -ECMRoot=ECM Root +ECMRoot=جذر ECM ECMNewSection=دليل جديد ECMAddSection=إضافة دليل دليل ECMCreationDate=تاريخ الإنشاء @@ -14,36 +15,38 @@ ECMNbOfFilesInDir=عدد من الملفات في دليل ECMNbOfSubDir=من دون أدلة ECMNbOfFilesInSubDir=عدد الملفات في الدلائل الفرعية ECMCreationUser=مبدع -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* أدلة تلقائية تملأ تلقائيا عند إضافة الوثائق من بطاقة عنصر.
    * دليل أدلة يمكن استخدامها لانقاذ وثائق ليست مرتبطة بشكل خاص عنصر. +ECMArea=منطقة DMS / ECM +ECMAreaDesc=تتيح لك منطقة DMS / ECM (نظام إدارة المستندات / إدارة المحتوى الإلكتروني) حفظ جميع أنواع المستندات ومشاركتها والبحث عنها بسرعة في Dolibarr. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=دليل ٪ ق حذفت. -ECMSectionWasCreated=Directory %s has been created. +ECMSectionWasCreated=تم إنشاء الدليل %s . ECMSearchByKeywords=بحث الكلمات الرئيسية ECMSearchByEntity=بحث عن وجوه ECMSectionOfDocuments=أدلة وثائق ECMTypeAuto=التلقائي -ECMDocsBy=Documents linked to %s +ECMDocsBy=المستندات المرتبطة بـ %s ECMNoDirectoryYet=لا الدليل ShowECMSection=وتظهر الدليل DeleteSection=إزالة الدليل ConfirmDeleteSection=Can you confirm you want to delete the directory %s? ECMDirectoryForFiles=دليل النسبي للملفات -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files +CannotRemoveDirectoryContainsFilesOrDirs=الإزالة غير ممكنة لأنها تحتوي على بعض الملفات أو الدلائل الفرعية +CannotRemoveDirectoryContainsFiles=الإزالة غير ممكنة لأنها تحتوي على بعض الملفات ECMFileManager=مدير الملفات -ECMSelectASection=Select a directory in the tree... -DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory. -ReSyncListOfDir=Resync list of directories -HashOfFileContent=Hash of file content -NoDirectoriesFound=No directories found -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it) -ExtraFieldsEcmFiles=Extrafields Ecm Files -ExtraFieldsEcmDirectories=Extrafields Ecm Directories -ECMSetup=ECM Setup -GenerateImgWebp=Duplicate all images with another version with .webp format -ConfirmGenerateImgWebp=If you confirm, you will generate an image in .webp format for all images currently into this folder (subfolders are not included)... -ConfirmImgWebpCreation=Confirm all images duplication -SucessConvertImgWebp=Images successfully duplicated -ECMDirName=Dir name -ECMParentDirectory=Parent directory +ECMSelectASection=حدد دليلاً في الشجرة ... +DirNotSynchronizedSyncFirst=يبدو أن هذا الدليل قد تم إنشاؤه أو تعديله خارج وحدة ECM. يجب النقر فوق الزر "إعادة المزامنة" أولاً لمزامنة القرص وقاعدة البيانات للحصول على محتوى هذا الدليل. +ReSyncListOfDir=إعادة مزامنة قائمة الدلائل +HashOfFileContent=تجزئة لمحتوى الملف +NoDirectoriesFound=لم يتم العثور على أدلة +FileNotYetIndexedInDatabase=لم تتم فهرسة الملف بعد في قاعدة البيانات (حاول إعادة تحميله) +ExtraFieldsEcmFiles=ملفات Extrafields Ecm +ExtraFieldsEcmDirectories=أدلة Extrafields Ecm +ECMSetup=إعداد ECM +GenerateImgWebp=قم بتكرار جميع الصور بإصدار آخر بتنسيق .webp +ConfirmGenerateImgWebp=إذا قمت بالتأكيد ، فسوف تقوم بإنشاء صورة بتنسيق webp. لجميع الصور الموجودة حاليًا في هذا المجلد (لا يتم تضمين المجلدات الفرعية) ... +ConfirmImgWebpCreation=تأكيد كل الصور المكررة +SucessConvertImgWebp=تم نسخ الصور بنجاح +ECMDirName=اسم دير +ECMParentDirectory=دليل الوالدين diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang index 0b94eabbb83..f87f246a28e 100644 --- a/htdocs/langs/ar_SA/errors.lang +++ b/htdocs/langs/ar_SA/errors.lang @@ -4,15 +4,17 @@ NoErrorCommitIsDone=أي خطأ، ونحن نلزم # Errors ErrorButCommitIsDone=تم العثور على أخطاء لكننا تحقق على الرغم من هذا -ErrorBadEMail=Email %s is incorrect -ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) -ErrorBadUrl=Url %s is incorrect +ErrorBadEMail=البريد الإلكتروني %s غير صحيح +ErrorBadMXDomain=يبدو البريد الإلكتروني %s غير صحيح (المجال لا يحتوي على سجل MX صالح) +ErrorBadUrl=عنوان Url %s غير صحيح ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. -ErrorRefAlreadyExists=Reference %s already exists. +ErrorRefAlreadyExists=المرجع %s موجود بالفعل. +ErrorTitleAlreadyExists=العنوان %s موجود بالفعل. ErrorLoginAlreadyExists=ادخل ٪ ق موجود بالفعل. ErrorGroupAlreadyExists=المجموعة ٪ ق موجود بالفعل. -ErrorEmailAlreadyExists=Email %s already exists. +ErrorEmailAlreadyExists=البريد الإلكتروني %s موجود بالفعل. ErrorRecordNotFound=لم يتم العثور على السجل. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=فشل في نسخ الملف '%s' إلى '%s ". ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. ErrorFailToRenameFile=فشل لإعادة تسمية الملف '%s' إلى '%s ". @@ -26,34 +28,35 @@ ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=هذا الاتصال هو اتصال بالفعل تعريف لهذا النوع. ErrorCashAccountAcceptsOnlyCashMoney=هذا الحساب المصرفي هو الحساب النقدي ، وذلك ما وافق على نوع من المدفوعات النقدية فقط. ErrorFromToAccountsMustDiffers=المصدر والأهداف يجب أن تكون الحسابات المصرفية المختلفة. -ErrorBadThirdPartyName=Bad value for third-party name -ForbiddenBySetupRules=Forbidden by setup rules +ErrorBadThirdPartyName=قيمة سيئة لاسم الجهة الخارجية +ForbiddenBySetupRules=ممنوع بواسطة قواعد الإعداد ErrorProdIdIsMandatory=و٪ s غير إلزامي -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=كود المحاسبة الخاص بالعميل %s إلزامي ErrorBadCustomerCodeSyntax=سوء تركيب الزبون مدونة -ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. +ErrorBadBarCodeSyntax=بناء جملة غير صالح للرمز الشريطي. قد تكون قد قمت بتعيين نوع رمز شريطي سيئ أو أنك حددت قناع رمز شريطي للترقيم لا يتطابق مع القيمة الممسوحة ضوئيًا. ErrorCustomerCodeRequired=رمز العميل المطلوبة -ErrorBarCodeRequired=Barcode required +ErrorBarCodeRequired=الرمز الشريطي مطلوب ErrorCustomerCodeAlreadyUsed=الشفرة المستخدمة بالفعل العملاء -ErrorBarCodeAlreadyUsed=Barcode already used +ErrorBarCodeAlreadyUsed=الباركود مستخدم بالفعل ErrorPrefixRequired=المطلوب ببادئة -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code -ErrorSupplierCodeRequired=Vendor code required -ErrorSupplierCodeAlreadyUsed=Vendor code already used +ErrorBadSupplierCodeSyntax=بناء جملة غير صالح لرمز البائع +ErrorSupplierCodeRequired=كود البائع مطلوب +ErrorSupplierCodeAlreadyUsed=كود البائع مستخدم بالفعل ErrorBadParameters=بارامترات سيئة -ErrorWrongParameters=Wrong or missing parameters +ErrorWrongParameters=معلمات خاطئة أو مفقودة ErrorBadValueForParameter=Wrong value '%s' for parameter '%s' ErrorBadImageFormat=ملف الصورة لم تنسيق معتمد (PHP لديك لا يدعم وظائف لتحويل الصور من هذا الشكل) ErrorBadDateFormat='%s' قيمة له خاطئ تنسيق التاريخ ErrorWrongDate=تاريخ غير صحيح! ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني) -ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. -ErrorFieldsRequired=Some required fields have been left blank. -ErrorSubjectIsRequired=The email subject is required +ErrorUserCannotBeDelete=لا يمكن حذف المستخدم. ربما يرتبط بكيانات Dolibarr. +ErrorFieldsRequired=تم ترك بعض الحقول المطلوبة فارغة. +ErrorSubjectIsRequired=موضوع البريد الإلكتروني مطلوب ErrorFailedToCreateDir=فشل إنشاء دليل. تأكد من أن خادم الويب المستخدم أذونات لكتابة وثائق Dolibarr في الدليل. إذا تم تمكين المعلم safe_mode على هذا PHP ، تحقق من أن ملفات Dolibarr php تملك لخدمة الويب المستخدم (أو مجموعة). ErrorNoMailDefinedForThisUser=البريد لا يعرف لهذا المستخدم -ErrorSetupOfEmailsNotComplete=Setup of emails is not complete +ErrorSetupOfEmailsNotComplete=لم يكتمل إعداد رسائل البريد الإلكتروني ErrorFeatureNeedJavascript=هذه الميزة تحتاج إلى تفعيل جافا سكريبت في العمل. هذا التغيير في البنية -- عرض. ErrorTopMenuMustHaveAParentWithId0=وهناك قائمة من نوع 'توب' لا يمكن أن يكون أحد الوالدين القائمة. 0 وضعت في القائمة أو الأم في اختيار قائمة من نوع 'اليسار'. ErrorLeftMenuMustHaveAParentId=وهناك قائمة من نوع 'اليسار' يجب أن يكون لها هوية الوالد. @@ -62,74 +65,75 @@ ErrorDirNotFound=لم يتم العثور على دليل %s (مسار غ ErrorFunctionNotAvailableInPHP=ق ٪ وظيفة مطلوبة لهذه الميزة ولكن لا تتوافر في هذه النسخة / الإعداد للPHP. ErrorDirAlreadyExists=دليل بهذا الاسم بالفعل. ErrorFileAlreadyExists=ملف بهذا الاسم موجود مسبقا. -ErrorDestinationAlreadyExists=Another file with the name %s already exists. +ErrorDestinationAlreadyExists=ملف آخر يحمل الاسم %s موجود بالفعل. ErrorPartialFile=الملف لم تتلق تماما بواسطة الخادم. ErrorNoTmpDir=%s directy مؤقتة لا وجود. ErrorUploadBlockedByAddon=حظر حمل من قبل البرنامج المساعد بى اباتشي /. -ErrorFileSizeTooLarge=حجم الملف كبير جدا. -ErrorFieldTooLong=Field %s is too long. +ErrorFileSizeTooLarge=حجم الملف كبير جدًا أو لم يتم توفير الملف. +ErrorFieldTooLong=الحقل %s طويل جدًا. ErrorSizeTooLongForIntType=طويل جدا بالنسبة نوع INT (%s أرقام كحد أقصى) حجم ErrorSizeTooLongForVarcharType=وقتا طويلا لنوع السلسلة (%s حرف كحد أقصى) حجم ErrorNoValueForSelectType=يرجى ملء قيمة لقائمة مختارة ErrorNoValueForCheckBoxType=يرجى ملء قيمة لقائمة مربع ErrorNoValueForRadioType=يرجى ملء قيمة لقائمة الراديو ErrorBadFormatValueList=قيمة القائمة لا يمكن أن يكون أكثر من واحد فاصلة:٪ الصورة، ولكن تحتاج إلى واحد على الأقل: مفتاح، قيمة -ErrorFieldCanNotContainSpecialCharacters=The field %s must not contains special characters. -ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters and cannot contain only numbers. -ErrorFieldMustHaveXChar=The field %s must have at least %s characters. +ErrorFieldCanNotContainSpecialCharacters=يجب ألا يحتوي الحقل %s على أحرف خاصة. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) +ErrorFieldMustHaveXChar=يجب أن يحتوي الحقل %s على أحرف %s على الأقل. ErrorNoAccountancyModuleLoaded=أي وحدة المحاسبة وتفعيل ErrorExportDuplicateProfil=هذا الاسم الشخصي موجود مسبقا لهذه المجموعة التصدير. ErrorLDAPSetupNotComplete=Dolibarr - LDAP المطابقة وليس كاملا. ErrorLDAPMakeManualTest=ألف. ldif الملف قد ولدت في الدليل ٪ s. انها محاولة لتحميل يدويا من سطر في الحصول على مزيد من المعلومات عن الأخطاء. -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled. -ErrorRefAlreadyExists=Reference %s already exists. -ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD) -ErrorRecordHasChildren=Failed to delete record since it has some child records. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object. +ErrorCantSaveADoneUserWithZeroPercentage=لا يمكن حفظ إجراء مع "الحالة لم تبدأ" إذا تم ملء الحقل "تم بواسطة" أيضًا. +ErrorRefAlreadyExists=المرجع %s موجود بالفعل. +ErrorPleaseTypeBankTransactionReportName=الرجاء إدخال اسم كشف الحساب المصرفي حيث يجب الإبلاغ عن الإدخال (التنسيق YYYYMM أو YYYYMMDD) +ErrorRecordHasChildren=فشل حذف السجل لأنه يحتوي على بعض السجلات التابعة. +ErrorRecordHasAtLeastOneChildOfType=يحتوي الكائن %s على عنصر فرعي واحد على الأقل من النوع %s +ErrorRecordIsUsedCantDelete=لا يمكن حذف السجل. تم استخدامه بالفعل أو تضمينه في كائن آخر. ErrorModuleRequireJavascript=يجب عدم تعطيل جافا سكريبت لجعل هذا العمل الميزة. لتمكين / تعطيل جافا سكريبت ، انتقل إلى القائمة الرئيسية -> الإعداد -> العرض. ErrorPasswordsMustMatch=ويجب على كلا كلمات المرور المكتوبة تطابق بعضها البعض -ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. -ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s -ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s -ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref -ErrorsOnXLines=%s errors found +ErrorContactEMail=حدث خطأ تقني. من فضلك ، اتصل بالمسؤول إلى البريد الإلكتروني التالي %s وقدم رمز الخطأ %s في رسالتك ، أو أضف شاشة. +ErrorWrongValueForField=الحقل %s : ' %s ' لا يتطابق مع قاعدة regexz a0aeez08708f37439 +ErrorHtmlInjectionForField=الحقل %s : تحتوي القيمة ' %s ' على بيانات ضارة غير مسموح بها +ErrorFieldValueNotIn=Field %s : ' %s ' is not a value found in field %s of %s +ErrorFieldRefNotIn=الحقل %s : ' %s ' ليس a0aee833658377fz039 +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. +ErrorsOnXLines=تم العثور على أخطاء %s ErrorFileIsInfectedWithAVirus=وكان برنامج مكافحة الفيروسات غير قادرة على التحقق من صحة الملف (ملف قد يكون مصابا بواسطة فيروس) -ErrorSpecialCharNotAllowedForField=غير مسموح الأحرف الخاصة لحقل "%s" ErrorNumRefModel=إشارة إلى وجود قاعدة بيانات (%s) ، وغير متوافق مع هذه القاعدة الترقيم. سجل إزالة أو إعادة تسميته اشارة الى تفعيل هذه الوحدة. -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor -ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorQtyTooLowForThisSupplier=الكمية منخفضة جدًا لهذا البائع أو لم يتم تحديد سعر لهذا المنتج لهذا البائع +ErrorOrdersNotCreatedQtyTooLow=لم يتم إنشاء بعض الطلبات بسبب الكميات المنخفضة للغاية +ErrorModuleSetupNotComplete=يبدو أن إعداد الوحدة النمطية %s غير كامل. انتقل إلى الصفحة الرئيسية - الإعداد - الوحدات النمطية لإكمالها. ErrorBadMask=خطأ في قناع ErrorBadMaskFailedToLocatePosOfSequence=خطأ، من دون قناع رقم التسلسل ErrorBadMaskBadRazMonth=خطأ، قيمة إعادة سيئة -ErrorMaxNumberReachForThisMask=Maximum number reached for this mask +ErrorMaxNumberReachForThisMask=تم الوصول إلى الحد الأقصى لعدد هذا القناع ErrorCounterMustHaveMoreThan3Digits=يجب أن يكون العداد أكثر من 3 أرقام -ErrorSelectAtLeastOne=Error, select at least one entry. -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated +ErrorSelectAtLeastOne=خطأ ، حدد إدخال واحد على الأقل. +ErrorDeleteNotPossibleLineIsConsolidated=الحذف غير ممكن لأن السجل مرتبط بمعاملة بنكية تمت تسويتها ErrorProdIdAlreadyExist=يتم تعيين ثلث آخر إلى %s ErrorFailedToSendPassword=لم ترسل كلمة السر ErrorFailedToLoadRSSFile=فشل في الحصول على آر إس إس. محاولة إضافة MAIN_SIMPLEXMLLOAD_DEBUG ثابت إذا رسائل الخطأ لا توفر ما يكفي من المعلومات. ErrorForbidden=تم الرفض.
    محاولة الوصول إلى صفحة أو منطقة أو ميزة من وحدة نمطية تعطيل أو دون أن تكون في جلسة مصادقة أو الذي لا يسمح له المستخدم الخاص بك. ErrorForbidden2=ويمكن تعريف إذن لهذا الدخول من قبل المسؤول Dolibarr الخاص بك من القائمة %s-> %s. ErrorForbidden3=يبدو أن لا يتم استخدام Dolibarr خلال جلسة المصادقة. نلقي نظرة على وثائق الإعداد Dolibarr لمعرفة كيفية إدارة المصادقة (تاكيس، mod_auth أو غيرها ...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=ملاحظة: امسح ملفات تعريف الارتباط في متصفحك لتدمير الجلسات الحالية لتسجيل الدخول هذا. ErrorNoImagickReadimage=لم يتم العثور على فئة Imagick في هذا PHP. لا يمكن لمعاينة تكون متاحة. يمكن للمسؤولين تعطيل هذا التبويب من إعداد القائمة - عرض. ErrorRecordAlreadyExists=سجل موجود بالفعل -ErrorLabelAlreadyExists=This label already exists +ErrorLabelAlreadyExists=هذه التسمية موجودة بالفعل ErrorCantReadFile=فشل في قراءة الملف '%s' ErrorCantReadDir=فشل في قراءة '%s' الدليل ErrorBadLoginPassword=سيئة قيمة لتسجيل الدخول أو كلمة السر ErrorLoginDisabled=لقد تم تعطيل حسابك -ErrorFailedToRunExternalCommand=Failed to run external command. Check it is available and runnable by your PHP server user. Check also the command is not protected on shell level by a security layer like apparmor. +ErrorFailedToRunExternalCommand=فشل تشغيل الأمر الخارجي. تحقق من أنه متاح وقابل للتشغيل بواسطة مستخدم خادم PHP. تحقق أيضًا من أن الأمر غير محمي على مستوى الصدفة بواسطة طبقة أمان مثل apparmor. ErrorFailedToChangePassword=فشل في تغيير كلمة السر ErrorLoginDoesNotExists=لا يستطيع المستخدم الدخول مع %s يمكن العثور عليها. ErrorLoginHasNoEmail=هذا المستخدم ليس لديه عنوان البريد الإلكتروني. إحباط عملية. ErrorBadValueForCode=سيئة قيمة لرمز الحماية. حاول مرة أخرى مع القيمة الجديدة ... ErrorBothFieldCantBeNegative=ويمكن لحقول %s و%s لا تكون سلبية -ErrorFieldCantBeNegativeOnInvoice=Field %s cannot be negative on this type of invoice. If you need to add a discount line, just create the discount first (from field '%s' in thirdparty card) and apply it to the invoice. -ErrorLinesCantBeNegativeForOneVATRate=Total of lines (net of tax) can't be negative for a given not null VAT rate (Found a negative total for VAT rate %s%%). -ErrorLinesCantBeNegativeOnDeposits=Lines can't be negative in a deposit. You will face problems when you will need to consume the deposit in final invoice if you do so. +ErrorFieldCantBeNegativeOnInvoice=لا يمكن أن يكون الحقل %s سالبًا في هذا النوع من الفاتورة. إذا كنت بحاجة إلى إضافة بند خصم ، فما عليك سوى إنشاء الخصم أولاً (من الحقل "%s" في بطاقة الطرف الثالث) وتطبيقه على الفاتورة. +ErrorLinesCantBeNegativeForOneVATRate=لا يمكن أن يكون إجمالي البنود (صافي الضريبة) سالبًا لمعدل ضريبة القيمة المضافة غير الفارغ (تم العثور على إجمالي سلبي لمعدل ضريبة القيمة المضافة %s %%). +ErrorLinesCantBeNegativeOnDeposits=لا يمكن أن تكون الأسطر سالبة في الإيداع. ستواجه مشاكل عندما تحتاج إلى استهلاك الإيداع في الفاتورة النهائية إذا قمت بذلك. ErrorQtyForCustomerInvoiceCantBeNegative=كمية لخط في فواتير العملاء لا يمكن أن يكون سلبيا ErrorWebServerUserHasNotPermission=%s تستخدم حساب مستخدم لتنفيذ خادم الويب لا يوجد لديه إذن لذلك ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها @@ -142,10 +146,10 @@ ErrorFailedToAddToMailmanList=فشل لاضافة التسجيلة٪ s إلى ق ErrorFailedToRemoveToMailmanList=فشل لإزالة سجل٪ s إلى قائمة ميلمان٪ الصورة أو قاعدة SPIP ErrorNewValueCantMatchOldValue=قيمة جديدة لا يمكن أن يكون مساويا لالقديم ErrorFailedToValidatePasswordReset=فشل في reinit كلمة المرور. قد يكون وقد تم بالفعل reinit (هذا الرابط يمكن استخدامها مرة واحدة فقط). إن لم يكن، في محاولة لاستئناف عملية reinit. -ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start'). +ErrorToConnectToMysqlCheckInstance=فشل الاتصال بقاعدة البيانات. تحقق من تشغيل خادم قاعدة البيانات (على سبيل المثال ، باستخدام mysql / mariadb ، يمكنك تشغيله من سطر الأوامر باستخدام "sudo service mysql start"). ErrorFailedToAddContact=فشل في إضافة جهة اتصال -ErrorDateMustBeBeforeToday=The date must be lower than today -ErrorDateMustBeInFuture=The date must be greater than today +ErrorDateMustBeBeforeToday=يجب أن يكون التاريخ أقل من اليوم +ErrorDateMustBeInFuture=يجب أن يكون التاريخ أكبر من اليوم ErrorPaymentModeDefinedToWithoutSetup=وتم تشكيل لطريقة الدفع لكتابة٪ الصورة ولكن لم يكتمل الإعداد من وحدة الفاتورة لتحديد المعلومات لاظهار هذه طريقة الدفع. ErrorPHPNeedModule=خطأ، يجب PHP الخاص بتثبيت وحدة٪ s إلى استخدام هذه الميزة. ErrorOpenIDSetupNotComplete=يمكنك إعداد Dolibarr ملف التكوين للسماح بالمصادقة رض، ولكن لم يتم تعريف URL الخدمة رض إلى المستمر٪ الصورة @@ -154,7 +158,7 @@ ErrorBadFormat=شكل سيئة! ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. ErrorThereIsSomeDeliveries=خطأ، وهناك بعض الولادات ترتبط هذه الشحنة. رفض الحذف. ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid +ErrorCantDeletePaymentSharedWithPayedInvoice=لا يمكن حذف دفعة مشتركة بواسطة فاتورة واحدة على الأقل بالحالة مدفوعة ErrorPriceExpression1=لا يمكن تعيين إلى ثابت '٪ ق' ErrorPriceExpression2=لا يمكن إعادة تعريف المدمج في وظيفة '٪ ق' ErrorPriceExpression3=متغير غير معرف '٪ s' في تعريف الدالة @@ -163,7 +167,7 @@ ErrorPriceExpression5=غير متوقع '٪ ق' ErrorPriceExpression6=عدد خاطئ من الوسائط (٪ ق معين،٪ المتوقعة الصورة) ErrorPriceExpression8=مشغل غير متوقع '٪ ق' ErrorPriceExpression9=حدث خطأ غير متوقع -ErrorPriceExpression10=Operator '%s' lacks operand +ErrorPriceExpression10=عامل التشغيل "%s" يفتقر إلى المعامل ErrorPriceExpression11=تتوقع '٪ ق' ErrorPriceExpression14=القسمة على صفر ErrorPriceExpression17=غير معرف متغير '٪ ق' @@ -171,12 +175,12 @@ ErrorPriceExpression19=التعبير لم يتم العثور على ErrorPriceExpression20=التعبير فارغة ErrorPriceExpression21=نتيجة فارغة '٪ ق' ErrorPriceExpression22=نتيجة سلبية '٪ ق' -ErrorPriceExpression23=Unknown or non set variable '%s' in %s -ErrorPriceExpression24=Variable '%s' exists but has no value +ErrorPriceExpression23=متغير غير معروف أو غير محدد "%s" في %s +ErrorPriceExpression24=المتغير "%s" موجود ولكن ليس له قيمة ErrorPriceExpressionInternal=خطأ داخلي '٪ ق' ErrorPriceExpressionUnknown=خطأ غير معروف '٪ ق' ErrorSrcAndTargetWarehouseMustDiffers=يجب المصدر والهدف يختلف المستودعات -ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on product '%s' requiring lot/serial information +ErrorTryToMakeMoveOnProductRequiringBatchData=خطأ ، أثناء محاولة إجراء حركة مخزون بدون معلومات المجموعة / التسلسل ، على المنتج "%s" الذي يتطلب معلومات المجموعة / التسلسل ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=يجب أولا التحقق من جميع الاستقبالات سجلت (قبول او رفض) قبل أن يسمح لهم القيام بذلك العمل ErrorCantSetReceptionToTotalDoneWithReceptionDenied=يجب أولا التحقق من جميع الاستقبالات سجلت (المعتمد) قبل أن يسمح لهم القيام بذلك العمل ErrorGlobalVariableUpdater0=طلب HTTP فشلت مع الخطأ '٪ ق' @@ -187,14 +191,14 @@ ErrorGlobalVariableUpdater4=العميل SOAP فشلت مع الخطأ '٪ ق' ErrorGlobalVariableUpdater5=لا متغير عمومي مختارة ErrorFieldMustBeANumeric=يجب أن يكون حقل٪ الصورة قيمة رقمية ErrorMandatoryParametersNotProvided=معيار إلزامي (ق) لم تقدم -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter it's status. +ErrorOppStatusRequiredIfAmount=قمت بتعيين مبلغ تقديري لهذا العميل المتوقع. لذلك يجب عليك أيضًا إدخال حالتها. ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=سيئة تعريف القائمة صفيف في الوحدة واصف (القيمة سيئة لfk_menu مفتاح) -ErrorSavingChanges=An error has occurred when saving the changes +ErrorSavingChanges=حدث خطأ أثناء حفظ التغييرات ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship ErrorFileMustHaveFormat=File must have format %s -ErrorFilenameCantStartWithDot=Filename can't start with a '.' -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first. +ErrorFilenameCantStartWithDot=لا يمكن أن يبدأ اسم الملف بـ "." +ErrorSupplierCountryIsNotDefined=لم يتم تحديد البلد لهذا البائع. صحح هذا أولاً. ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. @@ -210,87 +214,109 @@ ErrorPhpMailDelivery=Check that you don't use a too high number of recipients an ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorModuleFileSeemsToHaveAWrongFormat2=At least one mandatory directory must exists into zip of module: %s or %s +ErrorModuleFileSeemsToHaveAWrongFormat2=يجب أن يوجد دليل إلزامي واحد على الأقل في ملف مضغوط للوحدة النمطية: %s أو %s ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) -ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. -ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. -ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not -ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before. -ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently. -ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference. -ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using kits to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number. -ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product -ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use -ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually. -ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s -ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set. -ErrorURLMustEndWith=URL %s must end %s -ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// -ErrorHostMustNotStartWithHttp=Host name %s must NOT start with http:// or https:// -ErrorNewRefIsAlreadyUsed=Error, the new reference is already used -ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. -ErrorSearchCriteriaTooSmall=Search criteria too small. -ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to be disabled -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled -ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist. -ErrorFieldRequiredForProduct=Field '%s' is required for product %s -ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s. -ErrorAddAtLeastOneLineFirst=Add at least one line first -ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible. -ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Error, language is mandatory if you set the page as a translation of another one. -ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one. -ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in warehouse "%s". -ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s". -ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded) -ErrorTooManyDifferentValueForSelectedGroupBy=Found too many different value (more than %s) for the field '%s', so we can't use it as a 'Group by' for graphics. The field 'Group By' has been removed. May be you wanted to use it as an X-Axis ? -ErrorReplaceStringEmpty=Error, the string to replace into is empty -ErrorProductNeedBatchNumber=Error, product '%s' need a lot/serial number -ErrorProductDoesNotNeedBatchNumber=Error, product '%s' does not accept a lot/serial number -ErrorFailedToReadObject=Error, failed to read object of type %s -ErrorParameterMustBeEnabledToAllwoThisFeature=Error, parameter %s must be enabled into conf/conf.php to allow use of Command Line Interface by the internal job scheduler -ErrorLoginDateValidity=Error, this login is outside the validity date range -ErrorValueLength=Length of field '%s' must be higher than '%s' -ErrorReservedKeyword=The word '%s' is a reserved keyword -ErrorNotAvailableWithThisDistribution=Not available with this distribution -ErrorPublicInterfaceNotEnabled=Public interface was not enabled -ErrorLanguageRequiredIfPageIsTranslationOfAnother=The language of new page must be defined if it is set as a translation of another page -ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=The language of new page must not be the source language if it is set as a translation of another page -ErrorAParameterIsRequiredForThisOperation=A parameter is mandatory for this operation -ErrorDateIsInFuture=Error, the date can't be in the future -ErrorAnAmountWithoutTaxIsRequired=Error, amount is mandatory -ErrorAPercentIsRequired=Error, please fill in the percentage correctly -ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of account -ErrorFailedToFindEmailTemplate=Failed to find template with code name %s -ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. -ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary -CheckVersionFail=Version check fail -ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it -ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. -ErrorIsNotADraft=%s is not a draft -ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=لا يمكن التحقق من صحة الكتلة عند تعيين خيار زيادة / تقليل المخزون في هذا الإجراء (يجب التحقق من صحة واحدًا تلو الآخر حتى تتمكن من تحديد المستودع لزيادة / تقليل) +ErrorObjectMustHaveStatusDraftToBeValidated=يجب أن يكون للكائن %s الحالة "مسودة" ليتم التحقق من صحتها. +ErrorObjectMustHaveLinesToBeValidated=يجب أن يحتوي الكائن %s على سطور ليتم التحقق من صحتها. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=يمكن إرسال الفواتير التي تم التحقق من صحتها فقط باستخدام الإجراء الجماعي "إرسال عبر البريد الإلكتروني". +ErrorChooseBetweenFreeEntryOrPredefinedProduct=يجب أن تختار ما إذا كانت المقالة عبارة عن منتج محدد مسبقًا أم لا +ErrorDiscountLargerThanRemainToPaySplitItBefore=الخصم الذي تحاول تطبيقه أكبر من المبلغ المتبقي لدفعه. قسّم الخصم إلى خصمين أصغر من قبل. +ErrorFileNotFoundWithSharedLink=لم يتم العثور على الملف. قد يكون مفتاح المشاركة قد تم تعديله أو تمت إزالة الملف مؤخرًا. +ErrorProductBarCodeAlreadyExists=الرمز الشريطي للمنتج %s موجود بالفعل في مرجع منتج آخر. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=لاحظ أيضًا أن استخدام المجموعات لزيادة / تقليل المنتجات الفرعية تلقائيًا غير ممكن عندما يحتاج منتج فرعي واحد على الأقل (أو منتج فرعي من المنتجات الفرعية) إلى رقم تسلسلي / دفعة. +ErrorDescRequiredForFreeProductLines=الوصف إلزامي للخطوط التي تحتوي على منتج مجاني +ErrorAPageWithThisNameOrAliasAlreadyExists=الصفحة / الحاوية %s لها نفس الاسم أو الاسم المستعار البديل الذي تحاول استخدامه +ErrorDuringChartLoad=خطأ عند تحميل مخطط الحسابات. إذا لم يتم تحميل عدد قليل من الحسابات ، فلا يزال بإمكانك إدخالها يدويًا. +ErrorBadSyntaxForParamKeyForContent=بناء جملة غير صحيح لـ param keyforcontent. يجب أن تبدأ القيمة بـ %s أو %s +ErrorVariableKeyForContentMustBeSet=خطأ ، يجب تعيين الثابت الذي يحمل الاسم %s (مع محتوى نصي لإظهاره) أو %s (مع عنوان url خارجي لإظهاره). +ErrorURLMustEndWith=يجب أن ينتهي عنوان URL %s بـ %s +ErrorURLMustStartWithHttp=يجب أن يبدأ عنوان URL %s بـ http: // أو https: // +ErrorHostMustNotStartWithHttp=يجب ألا يبدأ اسم المضيف %s بـ http: // أو https: // +ErrorNewRefIsAlreadyUsed=خطأ ، المرجع الجديد مستخدم بالفعل +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=خطأ ، لا يمكن حذف الدفعة المرتبطة بفاتورة مغلقة. +ErrorSearchCriteriaTooSmall=معايير البحث صغيرة جدًا. +ErrorObjectMustHaveStatusActiveToBeDisabled=يجب أن تكون الكائنات بحالة "نشطة" ليتم تعطيلها +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=يجب أن تكون الكائنات بحالة "مسودة" أو "معطلة" ليتم تمكينها +ErrorNoFieldWithAttributeShowoncombobox=لا توجد حقول لها الخاصية "showoncombobox" في تعريف الكائن "%s". لا توجد طريقة لإظهار الاحتكاك. +ErrorFieldRequiredForProduct=الحقل "%s" مطلوب للمنتج %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. +ProblemIsInSetupOfTerminal=كانت المشكلة في إعداد المحطة الطرفية %s. +ErrorAddAtLeastOneLineFirst=أضف سطرًا واحدًا على الأقل أولاً +ErrorRecordAlreadyInAccountingDeletionNotPossible=خطأ ، تم نقل السجل بالفعل في المحاسبة ، والحذف غير ممكن. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=خطأ ، اللغة إلزامية إذا قمت بتعيين الصفحة على أنها ترجمة لصفحة أخرى. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=خطأ ، لغة الصفحة المترجمة هي نفسها هذه. +ErrorBatchNoFoundForProductInWarehouse=لم يتم العثور على دفعة / مسلسل للمنتج "%s" في المستودع "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=لا توجد كمية كافية لهذه الكمية / المسلسل للمنتج "%s" في المستودع "%s". +ErrorOnlyOneFieldForGroupByIsPossible=يمكن استخدام حقل واحد فقط لـ "تجميع حسب" (يتم تجاهل الحقول الأخرى) +ErrorTooManyDifferentValueForSelectedGroupBy=تم العثور على قيم مختلفة كثيرة جدًا (أكثر من %s ) للحقل " %s " ، لذلك لا يمكننا استخدامها كمجموعة رسومات ". تمت إزالة الحقل "تجميع حسب". قد ترغب في استخدامه كمحور X؟ +ErrorReplaceStringEmpty=خطأ ، السلسلة المطلوب استبدالها فارغة +ErrorProductNeedBatchNumber=خطأ ، المنتج ' %s ' بحاجة إلى الكثير / الرقم التسلسلي +ErrorProductDoesNotNeedBatchNumber=خطأ ، المنتج " %s " لا يقبل الكثير / الرقم التسلسلي +ErrorFailedToReadObject=خطأ ، فشلت قراءة كائن من النوع %s +ErrorParameterMustBeEnabledToAllwoThisFeature=خطأ ، يجب تمكين المعلمة %s في conf / conf.php للسماح باستخدام واجهة سطر الأوامر بواسطة برنامج جدولة الوظائف الداخلي +ErrorLoginDateValidity=خطأ ، تسجيل الدخول هذا خارج النطاق الزمني للصلاحية +ErrorValueLength=يجب أن يكون طول الحقل " %s " أعلى من " %s " +ErrorReservedKeyword=كلمة " %s " هي كلمة أساسية محجوزة +ErrorNotAvailableWithThisDistribution=غير متوفر مع هذا التوزيع +ErrorPublicInterfaceNotEnabled=لم يتم تمكين الواجهة العامة +ErrorLanguageRequiredIfPageIsTranslationOfAnother=يجب تحديد لغة الصفحة الجديدة إذا تم تعيينها على أنها ترجمة لصفحة أخرى +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=يجب ألا تكون لغة الصفحة الجديدة هي لغة المصدر إذا تم تعيينها على أنها ترجمة لصفحة أخرى +ErrorAParameterIsRequiredForThisOperation=المعلمة إلزامية لهذه العملية +ErrorDateIsInFuture=خطأ ، لا يمكن أن يكون التاريخ في المستقبل +ErrorAnAmountWithoutTaxIsRequired=خطأ ، المبلغ إلزامي +ErrorAPercentIsRequired=خطأ ، يرجى ملء النسبة بشكل صحيح +ErrorYouMustFirstSetupYourChartOfAccount=يجب عليك أولاً إعداد مخطط الحساب الخاص بك +ErrorFailedToFindEmailTemplate=فشل العثور على قالب بالاسم الرمزي %s +ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=المدة غير محددة في الخدمة. لا توجد طريقة لحساب سعر الساعة. +ErrorActionCommPropertyUserowneridNotDefined=مالك المستخدم مطلوب +ErrorActionCommBadType=نوع الحدث المحدد (المعرف: %s ، الرمز: %s) غير موجود في قاموس نوع الحدث +CheckVersionFail=فشل التحقق من الإصدار +ErrorWrongFileName=لا يمكن أن يحتوي اسم الملف على __SOMETHING__ فيه +ErrorNotInDictionaryPaymentConditions=ليس في قاموس شروط الدفع ، يرجى التعديل. +ErrorIsNotADraft=%s ليس مسودة +ErrorExecIdFailed=لا يمكن تنفيذ الأمر "id" +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired +ErrorNotApproverForHoliday=أنت لست المعتمد للمغادرة %s +ErrorAttributeIsUsedIntoProduct=تُستخدم هذه السمة في متغير منتج واحد أو أكثر +ErrorAttributeValueIsUsedIntoProduct=تُستخدم قيمة السمة هذه في متغير منتج واحد أو أكثر +ErrorPaymentInBothCurrency=خطأ ، يجب إدخال جميع المبالغ في نفس العمود +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=تحاول دفع الفواتير بالعملة %s من حساب بالعملة %s +ErrorInvoiceLoadThirdParty=لا يمكن تحميل كائن جهة خارجية للفاتورة "%s" +ErrorInvoiceLoadThirdPartyKey=مفتاح الجهة الخارجية "%s" لم يتم تعيينه للفاتورة "%s" +ErrorDeleteLineNotAllowedByObjectStatus=حذف سطر غير مسموح به من خلال حالة الكائن الحالية +ErrorAjaxRequestFailed=الطلب فشل +ErrorThirpdartyOrMemberidIsMandatory=طرف ثالث أو عضو في الشراكة إلزامي +ErrorFailedToWriteInTempDirectory=فشل في الكتابة في الدليل المؤقت +ErrorQuantityIsLimitedTo=الكمية محدودة بـ %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings -WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=معلمة PHP upload_max_filesize (%s) أعلى من معلمة PHP post_max_size (%s). هذا ليس إعداد ثابت. WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم. -WarningMandatorySetupNotComplete=Click here to setup mandatory parameters -WarningEnableYourModulesApplications=Click here to enable your modules and applications +WarningMandatorySetupNotComplete=انقر هنا لإعداد المعلمات الرئيسية +WarningEnableYourModulesApplications=انقر هنا لتمكين الوحدات والتطبيقات الخاصة بك WarningSafeModeOnCheckExecDir=انذار ، فب safe_mode الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته safe_mode_exec_dir المعلمة بي. WarningBookmarkAlreadyExists=المرجعية هذا الكتاب أو هذا الهدف (عنوان) موجود بالفعل. WarningPassIsEmpty=تحذير كلمة سر قاعدة بيانات فارغة. هذه هي ثغرة أمنية. يجب عليك أن تضيف كلمة السر الخاصة بك لقاعدة البيانات وتغيير conf.php ليعكس هذا الملف. WarningConfFileMustBeReadOnly=انذار ، ملف (التكوين htdocs / أسيوط / conf.php) الخاص يمكن أن تكون الكتابة بواسطة خادم الويب. هذه هي ثغرة أمنية خطيرة. أذونات تعديل على ملف ليكون في وضع القراءة فقط لمستخدم نظام التشغيل المستخدمة من قبل ملقم ويب. إذا كنت تستخدم ويندوز وشكل نسبة الدهون لمدة القرص الخاص بك ، فإنك يجب أن نعرف أن هذا النظام لا يسمح ملف لإضافة الأذونات على الملف ، بحيث لا تكون آمنة تماما. WarningsOnXLines=تحذيرات عن مصدر خطوط %s -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningNoDocumentModelActivated=لم يتم تنشيط أي نموذج لإنشاء المستندات. سيتم اختيار نموذج افتراضيًا حتى تتحقق من إعداد الوحدة الخاصة بك. +WarningLockFileDoesNotExists=تحذير ، بمجرد الانتهاء من الإعداد ، يجب عليك تعطيل أدوات التثبيت / الترحيل عن طريق إضافة ملف install.lock إلى الدليل %s . يعد حذف إنشاء هذا الملف مخاطرة أمنية كبيرة. +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=تحذير، ويتم إغلاق حتى إذا قدر يختلف بين عناصر المصدر والهدف. تمكين هذه الميزة بحذر. WarningUsingThisBoxSlowDown=تحذير، وذلك باستخدام هذا الإطار تبطئ على محمل الجد كل الصفحات التي تظهر مربع. WarningClickToDialUserSetupNotComplete=إعداد المعلومات ClickToDial لالمستخدم الخاص بك ليست كاملة (انظر التبويب ClickToDial على بطاقة المستخدم الخاص بك). @@ -300,35 +326,38 @@ WarningTooManyDataPleaseUseMoreFilters=عدد كبير جدا من البيان WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to %s when using the mass actions on lists -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report -WarningProjectDraft=Project is still in draft mode. Don't forget to validate it if you plan to use tasks. -WarningProjectClosed=Project is closed. You must re-open it first. -WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list. -WarningFailedToAddFileIntoDatabaseIndex=Warning, failed to add file entry into ECM database index table -WarningTheHiddenOptionIsOn=Warning, the hidden option %s is on. -WarningCreateSubAccounts=Warning, you can't create directly a sub account, you must create a third party or an user and assign them an accounting code to find them in this list -WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. -WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. -WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningNumberOfRecipientIsRestrictedInMassAction=تحذير ، عدد المستلمين المختلفين يقتصر على %s عند استخدام الإجراءات الجماعية في القوائم +WarningDateOfLineMustBeInExpenseReportRange=تحذير ، تاريخ السطر ليس في نطاق تقرير المصاريف +WarningProjectDraft=المشروع لا يزال في وضع المسودة. لا تنس التحقق من صحته إذا كنت تخطط لاستخدام المهام. +WarningProjectClosed=المشروع مغلق. يجب عليك إعادة فتحه أولاً. +WarningSomeBankTransactionByChequeWereRemovedAfter=تمت إزالة بعض المعاملات المصرفية بعد أن تم إنشاء الإيصال بما في ذلك. لذلك قد يختلف عدد الشيكات وإجمالي الإيصالات عن العدد والإجمالي في القائمة. +WarningFailedToAddFileIntoDatabaseIndex=تحذير ، فشل في إضافة إدخال الملف إلى جدول فهرس قاعدة بيانات ECM +WarningTheHiddenOptionIsOn=تحذير ، الخيار المخفي %s قيد التشغيل. +WarningCreateSubAccounts=تحذير ، لا يمكنك إنشاء حساب فرعي مباشرة ، يجب عليك إنشاء طرف ثالث أو مستخدم وتعيين رمز محاسبة لهم للعثور عليهم في هذه القائمة +WarningAvailableOnlyForHTTPSServers=متاح فقط في حالة استخدام اتصال HTTPS آمن. +WarningModuleXDisabledSoYouMayMissEventHere=لم يتم تمكين الوحدة النمطية %s. لذلك قد تفوتك الكثير من الأحداث هنا. +WarningPaypalPaymentNotCompatibleWithStrict=تجعل القيمة "صارمة" ميزات الدفع عبر الإنترنت لا تعمل بشكل صحيح. استخدم "Lax" بدلاً من ذلك. +WarningThemeForcedTo=تحذير ، تم إجبار السمة على %s بواسطة الثابت المخفي MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate -RequireValidValue = Value not valid -RequireAtLeastXString = Requires at least %s character(s) -RequireXStringMax = Requires %s character(s) max -RequireAtLeastXDigits = Requires at least %s digit(s) -RequireXDigitsMax = Requires %s digit(s) max -RequireValidNumeric = Requires a numeric value -RequireValidEmail = Email address is not valid -RequireMaxLength = Length must be less than %s chars -RequireMinLength = Length must be more than %s char(s) -RequireValidUrl = Require valid URL -RequireValidDate = Require a valid date -RequireANotEmptyValue = Is required -RequireValidDuration = Require a valid duration -RequireValidExistingElement = Require an existing value -RequireValidBool = Require a valid boolean -BadSetupOfField = Error bad setup of field -BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation -BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion -BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class +RequireValidValue = القيمة غير صالحة +RequireAtLeastXString = يتطلب على الأقل %s حرفًا (أحرف) +RequireXStringMax = يتطلب %s حرفًا (أحرف) كحد أقصى +RequireAtLeastXDigits = يتطلب على الأقل %s رقم (أرقام) +RequireXDigitsMax = يتطلب %s رقم (أرقام) كحد أقصى +RequireValidNumeric = يتطلب قيمة عددية +RequireValidEmail = عنوان البريد الإلكتروني غير صالح +RequireMaxLength = يجب أن يكون الطول أقل من %s حرفًا +RequireMinLength = يجب أن يكون الطول أكثر من %s حرفًا (أحرف) +RequireValidUrl = مطلوب URL صالح +RequireValidDate = تتطلب تاريخًا صالحًا +RequireANotEmptyValue = مطلوب +RequireValidDuration = تتطلب مدة صالحة +RequireValidExistingElement = تتطلب قيمة موجودة +RequireValidBool = تتطلب قيمة منطقية صالحة +BadSetupOfField = خطأ في الإعداد السيئ للمجال +BadSetupOfFieldClassNotFoundForValidation = خطأ في إعداد الحقل غير صحيح: الفئة غير موجودة للتحقق من الصحة +BadSetupOfFieldFileNotFound = خطأ في إعداد الحقل غير صحيح: الملف غير موجود للتضمين +BadSetupOfFieldFetchNotCallable = خطأ في إعداد الحقل غير صحيح: الجلب غير قابل للاستدعاء في الفصل الدراسي diff --git a/htdocs/langs/ar_SA/eventorganization.lang b/htdocs/langs/ar_SA/eventorganization.lang index 71434cc289f..6ccb9f80b0d 100644 --- a/htdocs/langs/ar_SA/eventorganization.lang +++ b/htdocs/langs/ar_SA/eventorganization.lang @@ -17,151 +17,158 @@ # # Generic # -ModuleEventOrganizationName = Event Organization -EventOrganizationDescription = Event Organization through Module Project -EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +ModuleEventOrganizationName = تنظيم الأحداث +EventOrganizationDescription = تنظيم الحدث من خلال مشروع الوحدة النمطية +EventOrganizationDescriptionLong= إدارة تنظيم حدث (عرض أو مؤتمرات أو حضور أو متحدثين ، مع صفحات عامة للاقتراح أو التصويت أو التسجيل) # # Menu # -EventOrganizationMenuLeft = Organized events -EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth +EventOrganizationMenuLeft = الأحداث المنظمة +EventOrganizationConferenceOrBoothMenuLeft = مؤتمر أو كشك -PaymentEvent=Payment of event +PaymentEvent=دفع الحدث # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Event Organization setup -EventOrganization=Event organization +NewRegistration=تسجيل +EventOrganizationSetup=إعداد تنظيم الحدث +EventOrganization=تنظيم الأحداث Settings=إعدادات -EventOrganizationSetupPage = Event Organization setup page -EVENTORGANIZATION_TASK_LABEL = Label of tasks to create automatically when project is validated -EVENTORGANIZATION_TASK_LABELTooltip = When you validate an organized event, some tasks can be automatically created in the project

    For example:
    Send Call for Conference
    Send Call for Booth
    Receive call for conferences
    Receive call for Booth
    Open subscriptions to events for attendees
    Send remind of event to speakers
    Send remind of event to Booth hoster
    Send remind of event to attendees -EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Category to add to third-parties automatically created when someone suggests a conference -EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Category to add to third-parties automatically created when they suggests a booth -EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Template of email to send after receiving a suggestion of a conference. -EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Template of email to send after receiving a suggestion of a booth. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Template of email to send after a registration to a booth has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Template of email to send after a registration to an event has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Template of email to use when sending emails from the massaction "Send emails" to speakers -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Template of email to use when sending emails from the massaction "Send emails" on attendee list -EVENTORGANIZATION_FILTERATTENDEES_CAT = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties in the category -EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties with the nature +EventOrganizationSetupPage = صفحة إعداد تنظيم الحدث +EVENTORGANIZATION_TASK_LABEL = تسمية المهام التي سيتم إنشاؤها تلقائيًا عند التحقق من صحة المشروع +EVENTORGANIZATION_TASK_LABELTooltip = عند التحقق من صحة حدث لتنظيمه ، يمكن إنشاء بعض المهام تلقائيًا في المشروع

    على سبيل المثال:
    Send Call for Conferences
    Send Call for Booths
    19
    أرسل تذكيرًا بالحدث إلى المتحدثين
    أرسل تذكيرًا بالحدث إلى Booth hosters
    أرسل تذكيرًا بالحدث إلى الحضور +EVENTORGANIZATION_TASK_LABELTooltip2=اتركه فارغًا إذا لم تكن بحاجة إلى إنشاء المهام تلقائيًا. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = فئة لإضافتها إلى جهات خارجية يتم إنشاؤها تلقائيًا عندما يقترح شخص ما مؤتمرًا +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = فئة للإضافة إلى جهات خارجية يتم إنشاؤها تلقائيًا عندما يقترحون كشكًا +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = نموذج بريد إلكتروني لإرساله بعد تلقي اقتراح من مؤتمر. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = نموذج البريد الإلكتروني لإرساله بعد تلقي اقتراح كشك. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = نموذج البريد الإلكتروني لإرساله بعد دفع التسجيل في كشك. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = نموذج بريد إلكتروني لإرساله بعد دفع رسوم التسجيل لحدث ما. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = نموذج بريد إلكتروني لاستخدامه عند إرسال رسائل بريد إلكتروني من "إرسال رسائل بريد إلكتروني" إلى المتحدثين +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = نموذج بريد إلكتروني لاستخدامه عند إرسال رسائل بريد إلكتروني من رسالة "إرسال رسائل بريد إلكتروني" في قائمة الحضور +EVENTORGANIZATION_FILTERATTENDEES_CAT = في نموذج إنشاء / إضافة أحد الحاضرين ، يقصر قائمة الأطراف الثالثة على الأطراف الثالثة في الفئة +EVENTORGANIZATION_FILTERATTENDEES_TYPE = في نموذج إنشاء / إضافة أحد الحاضرين ، يقصر قائمة الأطراف الثالثة على الأطراف الثالثة ذات الطبيعة # # Object # -EventOrganizationConfOrBooth= Conference Or Booth -ManageOrganizeEvent = Manage the organization of an event -ConferenceOrBooth = Conference Or Booth -ConferenceOrBoothTab = Conference Or Booth -AmountPaid = Amount paid -DateOfRegistration = Date of registration -ConferenceOrBoothAttendee = Conference Or Booth Attendee +EventOrganizationConfOrBooth= مؤتمر أو كشك +EventOrganizationConfOrBoothes=Conferences or Boothes +ManageOrganizeEvent = إدارة تنظيم الحدث +ConferenceOrBooth = مؤتمر أو كشك +ConferenceOrBoothTab = مؤتمر أو كشك +AmountPaid = المبلغ المدفوع +DateOfRegistration = تاريخ التسجيل +ConferenceOrBoothAttendee = حضور المؤتمر أو الكابينة +ApplicantOrVisitor=مقدم الطلب أو الزائر +Speaker=مكبر الصوت # # Template Mail # -YourOrganizationEventConfRequestWasReceived = Your request for conference was received -YourOrganizationEventBoothRequestWasReceived = Your request for booth was received -EventOrganizationEmailAskConf = Request for conference -EventOrganizationEmailAskBooth = Request for booth -EventOrganizationEmailBoothPayment = Payment of your booth -EventOrganizationEmailRegistrationPayment = Registration for an event -EventOrganizationMassEmailAttendees = Communication to attendees -EventOrganizationMassEmailSpeakers = Communication to speakers -ToSpeakers=To speakers +YourOrganizationEventConfRequestWasReceived = تم استلام طلبك لعقد المؤتمر +YourOrganizationEventBoothRequestWasReceived = تم استلام طلبك للكشك +EventOrganizationEmailAskConf = طلب مؤتمر +EventOrganizationEmailAskBooth = طلب كشك +EventOrganizationEmailBoothPayment = دفع الكشك الخاص بك +EventOrganizationEmailRegistrationPayment = التسجيل لحدث +EventOrganizationMassEmailAttendees = التواصل مع الحاضرين +EventOrganizationMassEmailSpeakers = التواصل مع المتحدثين +ToSpeakers=إلى مكبرات الصوت # # Event # -AllowUnknownPeopleSuggestConf=Allow people to suggest conferences -AllowUnknownPeopleSuggestConfHelp=Allow unknown people to suggest a conference they want to do -AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth -AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth -PriceOfRegistration=Price of registration -PriceOfRegistrationHelp=Price to pay to register or participate in the event -PriceOfBooth=Subscription price to stand a booth -PriceOfBoothHelp=Subscription price to stand a booth -EventOrganizationICSLink=Link ICS for conferences -ConferenceOrBoothInformation=Conference Or Booth informations -Attendees=Attendees -ListOfAttendeesOfEvent=List of attendees of the event project -DownloadICSLink = Download ICS link -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference -SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event -NbVotes=Number of votes +AllowUnknownPeopleSuggestConf=السماح للناس باقتراح المؤتمرات +AllowUnknownPeopleSuggestConfHelp=اسمح لأشخاص غير معروفين باقتراح مؤتمر يريدون القيام به +AllowUnknownPeopleSuggestBooth=اسمح للناس بالتقدم بطلب للحصول على كشك +AllowUnknownPeopleSuggestBoothHelp=السماح للأشخاص المجهولين بالتقدم بطلب للحصول على كشك +PriceOfRegistration=سعر التسجيل +PriceOfRegistrationHelp=السعر الواجب دفعه للتسجيل أو المشاركة في الحدث +PriceOfBooth=سعر الاشتراك لوقوف كشك +PriceOfBoothHelp=سعر الاشتراك لوقوف كشك +EventOrganizationICSLink=رابط ICS للمؤتمرات +ConferenceOrBoothInformation=معلومات المؤتمر أو الكابينة +Attendees=الحاضرين +ListOfAttendeesOfEvent=قائمة الحاضرين لمشروع الحدث +DownloadICSLink = رابط تحميل ICS +EVENTORGANIZATION_SECUREKEY = أنشئ لتأمين المفتاح لصفحة التسجيل العامة لاقتراح مؤتمر +SERVICE_BOOTH_LOCATION = الخدمة المستخدمة لصف الفاتورة حول موقع الكشك +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = الخدمة المستخدمة لصف الفاتورة حول اشتراك حاضر في حدث +NbVotes=عدد الأصوات # # Status # EvntOrgDraft = حوالة مصرفية -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified +EvntOrgSuggested = مقترح +EvntOrgConfirmed = مؤكد +EvntOrgNotQualified = غير مؤهل EvntOrgDone = منتهي -EvntOrgCancelled = Cancelled +EvntOrgCancelled = ألغيت # # Public page # -SuggestForm = Suggestion page -SuggestOrVoteForConfOrBooth = Page for suggestion or vote -EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest a new one for the event. You can also apply to have a booth during the event. -EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. -EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. -ListOfSuggestedConferences = List of suggested conferences -ListOfSuggestedBooths = List of suggested booths -ListOfConferencesOrBooths=List of conferences or booths of event project -SuggestConference = Suggest a new conference -SuggestBooth = Suggest a booth -ViewAndVote = View and vote for suggested events -PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event -PublicAttendeeSubscriptionPage = Public link for registration to this event only -MissingOrBadSecureKey = The security key is invalid or missing -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s -EvntOrgDuration = This conference starts on %s and ends on %s. -ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. -BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s +SuggestForm = صفحة الاقتراح +SuggestOrVoteForConfOrBooth = صفحة للاقتراح أو التصويت +EvntOrgRegistrationHelpMessage = هنا ، يمكنك التصويت لعقد مؤتمر أو اقتراح مؤتمر جديد لهذا الحدث. يمكنك أيضًا تقديم طلب للحصول على كشك أثناء الحدث. +EvntOrgRegistrationConfHelpMessage = هنا ، يمكنك اقتراح مؤتمر جديد لتحريكه أثناء الحدث. +EvntOrgRegistrationBoothHelpMessage = هنا ، يمكنك تقديم طلب للحصول على كشك أثناء الحدث. +ListOfSuggestedConferences = قائمة المؤتمرات المقترحة +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project +SuggestConference = اقترح مؤتمر جديد +SuggestBooth = أقترح كشك +ViewAndVote = عرض والتصويت للأحداث المقترحة +PublicAttendeeSubscriptionGlobalPage = رابط عام للتسجيل في الحدث +PublicAttendeeSubscriptionPage = رابط عام للتسجيل في هذا الحدث فقط +MissingOrBadSecureKey = مفتاح الأمان غير صالح أو مفقود +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event +EvntOrgDuration = يبدأ هذا المؤتمر في %s وينتهي في %s. +ConferenceAttendeeFee = رسوم حضور المؤتمر للحدث: "%s" يحدث من %s إلى %s. +BoothLocationFee = موقع كشك الحدث: "%s" يحدث من %s إلى %s EventType = نوع الحدث -LabelOfBooth=Booth label -LabelOfconference=Conference label -ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet -DateMustBeBeforeThan=%s must be before %s -DateMustBeAfterThan=%s must be after %s +LabelOfBooth=تسمية كشك +LabelOfconference=تسمية المؤتمر +ConferenceIsNotConfirmed=التسجيل غير متاح ، لم يتم تأكيد المؤتمر بعد +DateMustBeBeforeThan=يجب أن يكون %s قبل %s +DateMustBeAfterThan=يجب أن يكون %s بعد %s +MaxNbOfAttendeesReached=The maximum number of participants has been reached +NewSubscription=تسجيل +OrganizationEventConfRequestWasReceived=تم استلام اقتراحك الخاص بالمؤتمر +OrganizationEventBoothRequestWasReceived=تم استلام طلبك الخاص بكشك +OrganizationEventPaymentOfBoothWasReceived=تم تسجيل الدفع الخاص بك لكشك +OrganizationEventPaymentOfRegistrationWasReceived=تم تسجيل الدفع الخاص بك لتسجيل الحدث الخاص بك +OrganizationEventBulkMailToAttendees=هذا تذكير بمشاركتك في الحدث بصفتك حاضرًا +OrganizationEventBulkMailToSpeakers=هذا تذكير بمشاركتك في الحدث كمتحدث +OrganizationEventLinkToThirdParty=رابط لطرف ثالث (عميل أو مورد أو شريك) +OrganizationEvenLabelName=الاسم العام للمؤتمر أو الكابينة -NewSubscription=Registration -OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received -OrganizationEventBoothRequestWasReceived=Your request for a booth has been received -OrganizationEventPaymentOfBoothWasReceived=Your payment for your booth has been recorded -OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event registration has been recorded -OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee -OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker -OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) - -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=طلب كشك +NewSuggestionOfConference=طلب لعقد مؤتمر # # Vote page # -EvntOrgRegistrationWelcomeMessage = Welcome on the conference or booth suggestion page. -EvntOrgRegistrationConfWelcomeMessage = Welcome on the conference suggestion page. -EvntOrgRegistrationBoothWelcomeMessage = Welcome on the booth suggestion page. -EvntOrgVoteHelpMessage = Here, you can view and vote for the suggested events for the project -VoteOk = Your vote has been accepted. -AlreadyVoted = You have already voted for this event. -VoteError = An error has occurred during the vote, please try again. +EvntOrgRegistrationWelcomeMessage = مرحبًا بكم في صفحة اقتراح المؤتمر أو الكابينة. +EvntOrgRegistrationConfWelcomeMessage = مرحبا بكم في صفحة اقتراح المؤتمر. +EvntOrgRegistrationBoothWelcomeMessage = مرحبا بكم في صفحة اقتراح الكابينة. +EvntOrgVoteHelpMessage = هنا ، يمكنك عرض الأحداث المقترحة للمشروع والتصويت عليها +VoteOk = تم قبول تصويتك. +AlreadyVoted = لقد قمت بالتصويت بالفعل لهذا الحدث. +VoteError = حدث خطأ أثناء التصويت ، يرجى المحاولة مرة أخرى. -SubscriptionOk = Your registration has been validated -ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event -Attendee = Attendee -PaymentConferenceAttendee = Conference attendee payment -PaymentBoothLocation = Booth location payment -DeleteConferenceOrBoothAttendee=Remove attendee -RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s -EmailAttendee=Attendee email -EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) -ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +SubscriptionOk=Your registration has been recorded +ConfAttendeeSubscriptionConfirmation = تأكيد اشتراكك في حدث +Attendee = حاضر +PaymentConferenceAttendee = دفع حضور المؤتمر +PaymentBoothLocation = دفع موقع كشك +DeleteConferenceOrBoothAttendee=قم بإزالة الحاضر +RegistrationAndPaymentWereAlreadyRecorder=تم تسجيل تسجيل ودفع بالفعل للبريد الإلكتروني %s +EmailAttendee=البريد الإلكتروني للحضور +EmailCompany=Company email +EmailCompanyForInvoice=البريد الإلكتروني للشركة (للفاتورة ، إذا كان مختلفًا عن البريد الإلكتروني للحضور) +ErrorSeveralCompaniesWithEmailContactUs=تم العثور على العديد من الشركات باستخدام هذا البريد الإلكتروني ، لذا لا يمكننا التحقق من صحة تسجيلك تلقائيًا. يرجى الاتصال بنا على %s للتحقق اليدوي +ErrorSeveralCompaniesWithNameContactUs=تم العثور على العديد من الشركات بهذا الاسم لذا لا يمكننا التحقق من صحة تسجيلك تلقائيًا. يرجى الاتصال بنا على %s للتحقق اليدوي +NoPublicActionsAllowedForThisEvent=لا توجد إجراءات عامة مفتوحة للجمهور لهذا الحدث +MaxNbOfAttendees=أقصى عدد من الحاضرين diff --git a/htdocs/langs/ar_SA/exports.lang b/htdocs/langs/ar_SA/exports.lang index 13bb0749ec4..2e5a37faed1 100644 --- a/htdocs/langs/ar_SA/exports.lang +++ b/htdocs/langs/ar_SA/exports.lang @@ -1,62 +1,64 @@ # Dolibarr language file - Source file is en_US - exports ExportsArea=صادرات -ImportArea=Import -NewExport=New Export -NewImport=New Import +ImportArea=يستورد +NewExport=تصدير جديد +NewImport=استيراد جديد ExportableDatas=تصدير البيانات ImportableDatas=بيانات وارداتها SelectExportDataSet=اختر البيانات التي تريد تصديرها... SelectImportDataSet=اختر البيانات التي تريد الاستيراد... -SelectExportFields=Choose the fields you want to export, or select a predefined export profile -SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: +SelectExportFields=اختر الحقول التي تريد تصديرها ، أو حدد ملف تعريف تصدير معرف مسبقًا +SelectImportFields=اختر حقول الملف المصدر التي تريد استيرادها والحقل الهدف الخاص بها في قاعدة البيانات عن طريق تحريكها لأعلى ولأسفل باستخدام نقطة الارتساء %s ، أو حدد ملف تعريف استيراد محدد مسبقًا: NotImportedFields=حقول من الملف المصدر يتم استيراد -SaveExportModel=Save your selections as an export profile/template (for reuse). -SaveImportModel=Save this import profile (for reuse) ... +SaveExportModel=احفظ التحديدات الخاصة بك كملف تعريف / قالب تصدير (لإعادة الاستخدام). +SaveImportModel=احفظ ملف تعريف الاستيراد هذا (لإعادة استخدامه) ... ExportModelName=اسم تصدير صورة -ExportModelSaved=Export profile saved as %s. +ExportModelSaved=تم حفظ ملف تعريف التصدير كـ %s . ExportableFields=مجالات للتصدير ExportedFields=صدرت المجالات ImportModelName=استيراد صورة الاسم -ImportModelSaved=Import profile saved as %s. +ImportModelSaved=تم حفظ ملف تعريف الاستيراد كـ %s . +ImportProfile=استيراد ملف التعريف DatasetToExport=بيانات التصدير DatasetToImport=استيراد البيانات ChooseFieldsOrdersAndTitle=اختيار الحقول من أجل... FieldsTitle=عنوان الحقول FieldTitle=حقل العنوان -NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... -AvailableFormats=Available Formats +NowClickToGenerateToBuildExportFile=الآن ، حدد تنسيق الملف في مربع التحرير والسرد وانقر فوق "إنشاء" لإنشاء ملف التصدير ... +AvailableFormats=التنسيقات المتوفرة LibraryShort=المكتبة -ExportCsvSeparator=Csv caracter separator -ImportCsvSeparator=Csv caracter separator +ExportCsvSeparator=فاصل ناقل الحركة Csv +ImportCsvSeparator=فاصل ناقل الحركة Csv Step=خطوة -FormatedImport=Import Assistant -FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant. -FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import. -FormatedExport=Export Assistant -FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge. -FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order. -FormatedExportDesc3=When data to export are selected, you can choose the format of the output file. +FormatedImport=مساعد استيراد +FormatedImportDesc1=تسمح لك هذه الوحدة بتحديث البيانات الموجودة أو إضافة كائنات جديدة إلى قاعدة البيانات من ملف بدون معرفة فنية ، باستخدام مساعد. +FormatedImportDesc2=الخطوة الأولى هي اختيار نوع البيانات التي تريد استيرادها ، ثم تنسيق الملف المصدر ، ثم الحقول التي تريد استيرادها. +FormatedExport=مساعد تصدير +FormatedExportDesc1=تسمح هذه الأدوات بتصدير البيانات الشخصية باستخدام مساعد ، لمساعدتك في العملية دون الحاجة إلى معرفة فنية. +FormatedExportDesc2=تتمثل الخطوة الأولى في اختيار مجموعة بيانات محددة مسبقًا ، ثم الحقول التي تريد تصديرها ، وبأي ترتيب. +FormatedExportDesc3=عند تحديد البيانات المراد تصديرها ، يمكنك اختيار تنسيق ملف الإخراج. Sheet=ورقة NoImportableData=لا ارداتها البيانات (أي وحدة مع السماح للبيانات تعريفات الواردات) FileSuccessfullyBuilt=File generated -SQLUsedForExport=SQL Request used to extract data +SQLUsedForExport=طلب SQL يستخدم لاستخراج البيانات LineId=معرف السطر LineLabel=تسمية الخط LineDescription=وصف خط LineUnitPrice=سعر الوحدة من خط LineVATRate=ضريبة القيمة المضافة من سعر الخط LineQty=خط للكمية -LineTotalHT=Amount excl. tax for line +LineTotalHT=المبلغ غير شامل. ضريبة للخط LineTotalTTC=المبلغ تمشيا مع ضريبة LineTotalVAT=مبلغ الضريبة على القيمة المضافة لخط TypeOfLineServiceOrProduct=Type of line (0=product, 1=نوع الخط (0= منتج الخدمة= 1) FileWithDataToImport=ملف استيراد البيانات FileToImport=مصدر لاستيراد ملف -FileMustHaveOneOfFollowingFormat=File to import must have one of following formats -DownloadEmptyExample=Download template file with field content information -StarAreMandatory=* are mandatory fields -ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it... -ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... +FileMustHaveOneOfFollowingFormat=يجب أن يحتوي الملف المراد استيراده على أحد التنسيقات التالية +DownloadEmptyExampleShort=قم بتنزيل ملف عينة +DownloadEmptyExample=قم بتنزيل ملف نموذج يحتوي على أمثلة ومعلومات حول الحقول التي يمكنك استيرادها +StarAreMandatory=في ملف القالب ، جميع الحقول التي تحتوي على * هي حقول إلزامية +ChooseFormatOfFileToImport=اختر تنسيق الملف لاستخدامه كتنسيق ملف الاستيراد بالنقر فوق أيقونة %s لتحديده ... +ChooseFileToImport=قم بتحميل الملف ثم انقر فوق أيقونة %s لتحديد الملف كملف استيراد المصدر ... SourceFileFormat=مصدر تنسيق ملف FieldsInSourceFile=الحقول في ملف المصدر FieldsInTargetDatabase=الحقول المستهدفة في قاعدة بيانات Dolibarr (جريئة = إلزامي) @@ -71,67 +73,75 @@ FieldsTarget=استهداف حقول FieldTarget=استهدف حقل FieldSource=مصدر الحقل NbOfSourceLines=عدد الأسطر في الملف المصدر -NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.
    Click on the "%s" button to run a check of the file structure/contents and simulate the import process.
    No data will be changed in your database. -RunSimulateImportFile=Run Import Simulation +NowClickToTestTheImport=تحقق من أن تنسيق الملف (محددات الحقل والسلسلة) لملفك يطابق الخيارات المعروضة وأنك حذفت سطر العنوان ، أو سيتم وضع علامة عليها كأخطاء في المحاكاة التالية.
    انقر فوق الزر " %s " لتشغيل فحص بنية / محتويات الملف ومحاكاة عملية الاستيراد.
    لن يتم تغيير أي بيانات في قاعدة البيانات الخاصة بك . +RunSimulateImportFile=قم بتشغيل محاكاة الاستيراد FieldNeedSource=يتطلب هذا المجال البيانات من الملف المصدر SomeMandatoryFieldHaveNoSource=بعض الحقول إلزامية ليس لديها مصدر من ملف البيانات InformationOnSourceFile=معلومات عن الملف المصدر InformationOnTargetTables=معلومات عن الهدف الحقول SelectAtLeastOneField=التبديل حقل واحد على الأقل مصدر في عمود من الحقول لتصدير SelectFormat=اختيار تنسيق الملف هذا الاستيراد -RunImportFile=Import Data -NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.
    When the simulation reports no errors you may proceed to import the data into the database. -DataLoadedWithId=The imported data will have an additional field in each database table with this import id: %s, to allow it to be searchable in the case of investigating a problem related to this import. -ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. -TooMuchErrors=There are still %s other source lines with errors but output has been limited. -TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. +RunImportFile=بيانات الاستيراد +NowClickToRunTheImport=تحقق من نتائج محاكاة الاستيراد. صحح أي أخطاء وأعد الاختبار.
    عندما تبلغ المحاكاة عن عدم وجود أخطاء ، يمكنك المتابعة لاستيراد البيانات إلى قاعدة البيانات. +DataLoadedWithId=ستحتوي البيانات المستوردة على حقل إضافي في كل جدول قاعدة بيانات مع معرف الاستيراد هذا: %s ، للسماح لها بأن تكون قابلة للبحث في حالة التحقيق في مشكلة متعلقة بهذا الاستيراد. +ErrorMissingMandatoryValue=البيانات الإلزامية فارغة في الملف المصدر بالعمود %s . +TooMuchErrors=لا تزال هناك خطوط مصدر أخرى %s بها أخطاء ولكن الإخراج كان محدودًا. +TooMuchWarnings=لا تزال هناك خطوط مصدر أخرى %s مع تحذيرات ولكن الإخراج كان محدودًا. EmptyLine=سيتم تجاهل سطر فارغ () -CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. +CorrectErrorBeforeRunningImport=يجب عليك تصحيح كافة الأخطاء قبل تشغيل تشغيل الاستيراد النهائي. FileWasImported=تم استيراد ملف مع %s عدد. -YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. +YouCanUseImportIdToFindRecord=يمكنك العثور على جميع السجلات المستوردة في قاعدة البيانات الخاصة بك عن طريق التصفية في الحقل import_key = '%s' . NbOfLinesOK=عدد الأسطر مع عدم وجود أخطاء وتحذيرات لا : %s. NbOfLinesImported=عدد خطوط المستوردة بنجاح : %s. DataComeFromNoWhere=قيمة لادخال تأتي من أي مكان في الملف المصدر. -DataComeFromFileFieldNb=قيمة لادخال يأتي من %s عدد الحقول في الملف المصدر. -DataComeFromIdFoundFromRef=Value that comes from field number %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). -DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. +DataComeFromFileFieldNb=تأتي القيمة المراد إدراجها من العمود %s في الملف المصدر. +DataComeFromIdFoundFromRef=The value that comes from the source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=البيانات سوف تأتي من الملف المصدر يتم إدراجها في الحقل التالي : -DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: -DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +DataIDSourceIsInsertedInto=سيتم إدخال معرف الكائن الأصل ، الذي تم العثور عليه باستخدام البيانات الموجودة في الملف المصدر ، في الحقل التالي: +DataCodeIDSourceIsInsertedInto=سيتم إدخال معرف السطر الأصل ، الذي تم العثور عليه من التعليمات البرمجية ، في الحقل التالي: SourceRequired=بيانات قيمة إلزامية SourceExample=مثال على قيمة البيانات ممكن ExampleAnyRefFoundIntoElement=أي المرجع تم العثور عليها ل %s العنصر ExampleAnyCodeOrIdFoundIntoDictionary=أي رمز (أو قيمة id) وجدت في القاموس٪ الصورة -CSVFormatDesc=Comma Separated Value file format (.csv).
    This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. -Excel95FormatDesc=Excel file format (.xls)
    This is the native Excel 95 format (BIFF5). -Excel2007FormatDesc=Excel file format (.xlsx)
    This is the native Excel 2007 format (SpreadsheetML). +CSVFormatDesc= قيمة مفصولة بفاصلة تنسيق الملف (.csv).
    هذا تنسيق ملف نصي حيث يتم فصل الحقول بواسطة فاصل [%s]. إذا تم العثور على فاصل داخل محتوى الحقل ، يتم تقريب الحقل بواسطة حرف دائري [%s]. شخصية الهروب للهروب من الحرف المستدير هي [%s]. +Excel95FormatDesc= تنسيق ملف Excel (.xls)
    هذا هو تنسيق Excel 95 الأصلي (BIFF5). +Excel2007FormatDesc= تنسيق ملف Excel (.xlsx)
    هذا هو تنسيق Excel 2007 الأصلي (SpreadsheetML). TsvFormatDesc=علامة التبويب تنسيق ملف منفصل القيمة (و .tsv)
    هذا هو شكل ملف نصي حيث يتم فصل الحقول من قبل الجدوال [التبويب]. ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). -CsvOptions=CSV format options -Separator=Field Separator -Enclosure=String Delimiter +CsvOptions=خيارات تنسيق CSV +Separator=فاصل المجال +Enclosure=محدد السلسلة SpecialCode=رمز خاص ExportStringFilter=٪٪ يسمح استبدال حرف واحد أو أكثر في النص -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day
    YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days
    > YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days
    < YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days +ExportDateFilter=YYYY، YYYYMM، YYYYMMDD: المرشحات على مدى سنة / شهر / يوم
    YYYY + YYYY، YYYYMM + YYYYMM، YYYYMMDD + YYYYMMDD: المرشحات على مدى سنوات / شهور / أيام a0342MMfccfY19 السنوات / الأشهر / الأيام التالية
    NNNNN+NNNNN filters over a range of values
    < NNNNN filters by lower values
    > NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number -ImportFromToLine=Limit range (From - To). Eg. to omit header line(s). -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.
    If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation. -KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file. -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import -UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) -NoUpdateAttempt=No update attempt was performed, only insert -ImportDataset_user_1=Users (employees or not) and properties -ComputedField=Computed field +ImportFromToLine=نطاق الحد (من - إلى). على سبيل المثال. لحذف سطر (خطوط) الرأس. +SetThisValueTo2ToExcludeFirstLine=على سبيل المثال ، اضبط هذه القيمة على 3 لاستبعاد أول سطرين.
    إذا لم يتم حذف سطور الرأس ، فسيؤدي ذلك إلى العديد من الأخطاء في محاكاة الاستيراد. +KeepEmptyToGoToEndOfFile=اترك هذا الحقل فارغًا لمعالجة جميع الأسطر حتى نهاية الملف. +SelectPrimaryColumnsForUpdateAttempt=حدد العمود (الأعمدة) لاستخدامه كمفتاح أساسي لاستيراد UPDATE +UpdateNotYetSupportedForThisImport=التحديث غير مدعوم لهذا النوع من الاستيراد (إدراج فقط) +NoUpdateAttempt=لم يتم إجراء أي محاولة تحديث ، أدخل فقط +ImportDataset_user_1=المستخدمون (موظفون أم لا) والممتلكات +ComputedField=المجال المحسوب ## filters SelectFilterFields=إذا كنت ترغب في تصفية على بعض القيم، قيم الإدخال فقط هنا. FilteredFields=الحقول التي تمت تصفيتها FilteredFieldsValues=قيمة للمرشح FormatControlRule=حكم عنصر تنسيق ## imports updates -KeysToUseForUpdates=Key (column) to use for updating existing data +KeysToUseForUpdates=مفتاح (عمود) لاستخدامه مع لتحديث البيانات الموجودة NbInsert=Number of inserted lines: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=Number of updated lines: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s -StocksWithBatch=Stocks and location (warehouse) of products with batch/serial number +StocksWithBatch=مخزون وموقع (مستودع) المنتجات مع رقم الدُفعة / التسلسل +WarningFirstImportedLine=لن يتم استيراد السطر (الأسطر) الأول مع التحديد الحالي +NotUsedFields=مجالات قاعدة البيانات غير مستخدمة +SelectImportFieldsSource = اختر حقول الملف المصدر التي تريد استيرادها والحقل الهدف الخاص بها في قاعدة البيانات عن طريق اختيار الحقول في كل مربعات تحديد ، أو حدد ملف تعريف استيراد محدد مسبقًا: +MandatoryTargetFieldsNotMapped=لم يتم تعيين بعض الحقول الهدف الإلزامية +AllTargetMandatoryFieldsAreMapped=يتم تعيين كافة الحقول المستهدفة التي تحتاج إلى قيمة إلزامية +ResultOfSimulationNoError=نتيجة المحاكاة: لا خطأ diff --git a/htdocs/langs/ar_SA/externalsite.lang b/htdocs/langs/ar_SA/externalsite.lang deleted file mode 100644 index ac4d267c40d..00000000000 --- a/htdocs/langs/ar_SA/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=إعداد رابط لموقع خارجي -ExternalSiteURL=رابط موقع خارجي لمحتوى إطار داخلي في لغة توصيف النص التشعبي -ExternalSiteModuleNotComplete=لم يتم تهيئة نموذج الموقع الخارجي بصورة صحيحة. -ExampleMyMenuEntry=مُدخل قائمتي diff --git a/htdocs/langs/ar_SA/ftp.lang b/htdocs/langs/ar_SA/ftp.lang deleted file mode 100644 index 042bbfee564..00000000000 --- a/htdocs/langs/ar_SA/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=إعداد نموذج عميل بروتوكول نقل الملفات -NewFTPClient=إعداد إتصال بروتوكول نقل الملفات جديد -FTPArea=منطقة بروتوكول نقل الملفات -FTPAreaDesc=هذه الشاشة تظهر لك المحتوى محتوى خادم بروتوكول نقل الملفات -SetupOfFTPClientModuleNotComplete=إعداد نموذج عميل بروتوكول نقل الملفات يبدو أنة غير مكتمل -FTPFeatureNotSupportedByYourPHP=بي اتش بي الخاص بك لا يدعم وظائف بروتوكول نقل الملفات -FailedToConnectToFTPServer=فشل الاتصال بخادم بروتوكول نقل الملفات ( الخادم%s ، منفذ%s) -FailedToConnectToFTPServerWithCredentials=فشل في تسجيل الدخول إلى خادم بروتوكول نقل الملفات مع تعريف الدخول / كلمة المرور المحددة -FTPFailedToRemoveFile=فشل لإزالة الملف %s . -FTPFailedToRemoveDir=فشل إزالة المسار %s (راجع الأذونات وهذا المسار فارغ). -FTPPassiveMode=الوضع السلبي -ChooseAFTPEntryIntoMenu=اختيار مدخل بروتوكول نقل البيانات في القائمة ... -FailedToGetFile=فشل في الحصول على الملفات %s diff --git a/htdocs/langs/ar_SA/help.lang b/htdocs/langs/ar_SA/help.lang index f7cf58faef5..69d52121094 100644 --- a/htdocs/langs/ar_SA/help.lang +++ b/htdocs/langs/ar_SA/help.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=منتدى / ويكي الدعم EMailSupport=دعم رسائل البريد الإلكتروني -RemoteControlSupport=Online real-time / remote support +RemoteControlSupport=الدعم عبر الإنترنت في الوقت الفعلي / عن بُعد OtherSupport=دعم آخر ToSeeListOfAvailableRessources=للاتصال / الاطلاع على الموارد المتاحة: -HelpCenter=Help Center -DolibarrHelpCenter=Dolibarr Help and Support Center -ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. -TypeOfSupport=Type of support +HelpCenter=مركز المساعدة +DolibarrHelpCenter=مركز المساعدة والدعم Dolibarr +ToGoBackToDolibarr=خلاف ذلك ، انقر هنا لمواصلة استخدام Dolibarr . +TypeOfSupport=نوع الدعم TypeSupportCommunauty=المجتمع (مجاني) TypeSupportCommercial=تجاري TypeOfHelp=نوع @@ -15,9 +15,9 @@ NeedHelpCenter=هل تحتاج إلى مساعدة أو دعم؟ Efficiency=الكفاءة TypeHelpOnly=المساعدة فقط TypeHelpDev=مساعدة + التنمية -TypeHelpDevForm=Help+Development+Training -BackToHelpCenter=Otherwise, go back to Help center home page. +TypeHelpDevForm=مساعدة + تطوير + تدريب +BackToHelpCenter=خلاف ذلك ، ارجع إلى الصفحة الرئيسية لمركز المساعدة . LinkToGoldMember=يمكنك اختيار احد المدربين المختارين مسبقا بواسطة دوليبار من اجل لغتك (1%s) بالضغط على البريمج الخاص بهم (يتم تحديث الحالة والحد الاعلى للسعر تلقائياً) PossibleLanguages=اللغات المدعومة -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation -SeeOfficalSupport=للحصول على دعم رسمي من دوليبار بلغتك:
    %s +SubscribeToFoundation=ساعد مشروع Dolibarr ، اشترك في المؤسسة +SeeOfficalSupport=للحصول على دعم Dolibarr الرسمي بلغتك:
    %s diff --git a/htdocs/langs/ar_SA/holiday.lang b/htdocs/langs/ar_SA/holiday.lang index accadd28e1b..aa900247800 100644 --- a/htdocs/langs/ar_SA/holiday.lang +++ b/htdocs/langs/ar_SA/holiday.lang @@ -4,7 +4,7 @@ Holidays=الاجازات CPTitreMenu=الاجازات MenuReportMonth=البيان الشهري MenuAddCP=طلب إجازة جديدة -NotActiveModCP=You must enable the module Leave to view this page. +NotActiveModCP=يجب تمكين وحدة مغادرة لعرض هذه الصفحة. AddCP=تقديم طلب إجازة DateDebCP=تاريخ البدء DateFinCP=نهاية التاريخ @@ -13,21 +13,21 @@ ToReviewCP=انتظر القبول ApprovedCP=وافق CancelCP=ألغيت RefuseCP=رفض -ValidatorCP=Approver -ListeCP=List of leave +ValidatorCP=الموافق +ListeCP=قائمة الإجازة Leave=ترك الطلب -LeaveId=Leave ID +LeaveId=رقم الإجازة ReviewedByCP=سيتم مراجعتها من قبل -UserID=User ID -UserForApprovalID=User for approval ID -UserForApprovalFirstname=First name of approval user -UserForApprovalLastname=Last name of approval user -UserForApprovalLogin=Login of approval user +UserID=معرف المستخدم +UserForApprovalID=مستخدم للحصول على معرّف الموافقة +UserForApprovalFirstname=الاسم الأول لمستخدم الموافقة +UserForApprovalLastname=الاسم الأخير لمستخدم الموافقة +UserForApprovalLogin=تسجيل دخول مستخدم الموافقة DescCP=وصف SendRequestCP=إنشاء طلب إجازة DelayToRequestCP=يجب أن يتم ترك طلبات في اليوم أقل ق٪ (ق) من قبلهم. -MenuConfCP=Balance of leave -SoldeCPUser=Leave balance (in days) %s +MenuConfCP=رصيد الإجازة +SoldeCPUser=رصيد الإجازات (بالأيام) %s ErrorEndDateCP=يجب تحديد تاريخ انتهاء أكبر من تاريخ البدء. ErrorSQLCreateCP=حدث خطأ SQL أثناء إنشاء: ErrorIDFicheCP=حدث خطأ غير موجود على طلب الإجازة. @@ -36,16 +36,16 @@ ErrorUserViewCP=غير مصرح لك قراءة طلب إجازة هذا. InfosWorkflowCP=معلومات سير العمل RequestByCP=طلبت TitreRequestCP=ترك الطلب -TypeOfLeaveId=Type of leave ID -TypeOfLeaveCode=Type of leave code -TypeOfLeaveLabel=Type of leave label -NbUseDaysCP=Number of days of leave used -NbUseDaysCPHelp=The calculation takes into account the non-working days and the holidays defined in the dictionary. -NbUseDaysCPShort=Days of leave -NbUseDaysCPShortInMonth=Days of leave in month -DayIsANonWorkingDay=%s is a non-working day -DateStartInMonth=Start date in month -DateEndInMonth=End date in month +TypeOfLeaveId=نوع معرف الإجازة +TypeOfLeaveCode=نوع رمز الإجازة +TypeOfLeaveLabel=نوع ملصق الإجازة +NbUseDaysCP=عدد أيام الإجازة المستخدمة +NbUseDaysCPHelp=يأخذ الحساب في الاعتبار أيام العطلات والعطلات المحددة في القاموس. +NbUseDaysCPShort=أيام الإجازة +NbUseDaysCPShortInMonth=أيام الإجازة في الشهر +DayIsANonWorkingDay=%s هو يوم عطلة +DateStartInMonth=تاريخ البدء في الشهر +DateEndInMonth=تاريخ الانتهاء في الشهر EditCP=تحرير DeleteCP=حذف ActionRefuseCP=رفض @@ -55,7 +55,7 @@ TitleDeleteCP=حذف طلب إجازة ConfirmDeleteCP=تأكيد حذف طلب إجازة هذا؟ ErrorCantDeleteCP=خطأ لم يكن لديك الحق في حذف طلب إجازة هذا. CantCreateCP=ليس لديك الحق في تقديم طلبات الإجازة. -InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidatorCP=يجب عليك اختيار المعتمد لطلب الإجازة الخاص بك. NoDateDebut=يجب تحديد تاريخ البدء. NoDateFin=يجب تحديد تاريخ انتهاء. ErrorDureeCP=لا يحتوي طلب إجازة الخاص يوم عمل. @@ -74,20 +74,20 @@ DateRefusCP=تاريخ الرفض DateCancelCP=تاريخ الإلغاء DefineEventUserCP=تعيين إجازة استثنائية لمستخدم addEventToUserCP=تعيين إجازة -NotTheAssignedApprover=You are not the assigned approver +NotTheAssignedApprover=أنت لست الموافق المعين MotifCP=سبب UserCP=مستخدم ErrorAddEventToUserCP=حدث خطأ أثناء إضافة إجازة استثنائية. AddEventToUserOkCP=تم الانتهاء من إضافة إجازة استثنائية. MenuLogCP=وبالنظر إلى سجلات التغيير -LogCP=Log of all updates made to "Balance of Leave" -ActionByCP=Updated by -UserUpdateCP=Updated for +LogCP=سجل بجميع التحديثات التي تم إجراؤها على "رصيد الإجازة" +ActionByCP=تم التحديث بواسطة +UserUpdateCP=تم التحديث لـ PrevSoldeCP=الرصيد السابق NewSoldeCP=توازن جديد alreadyCPexist=وقد تم بالفعل طلب إجازة في هذه الفترة. -FirstDayOfHoliday=Beginning day of leave request -LastDayOfHoliday=Ending day of leave request +FirstDayOfHoliday=بداية يوم طلب الإجازة +LastDayOfHoliday=يوم انتهاء طلب الإجازة BoxTitleLastLeaveRequests=Latest %s modified leave requests HolidaysMonthlyUpdate=تحديث شهري ManualUpdate=التحديث اليدوي @@ -95,17 +95,17 @@ HolidaysCancelation=ترك طلب الإلغاء EmployeeLastname=Employee last name EmployeeFirstname=Employee first name TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed -LastHolidays=Latest %s leave requests -AllHolidays=All leave requests -HalfDay=Half day -NotTheAssignedApprover=You are not the assigned approver -LEAVE_PAID=Paid vacation -LEAVE_SICK=Sick leave -LEAVE_OTHER=Other leave -LEAVE_PAID_FR=Paid vacation +LastHolidays=أحدث طلبات ترك %s +AllHolidays=جميع طلبات الإجازة +HalfDay=نصف يوم +NotTheAssignedApprover=أنت لست الموافق المعين +LEAVE_PAID=اجازه مدفوعة +LEAVE_SICK=أجازة مرضية +LEAVE_OTHER=إجازة أخرى +LEAVE_PAID_FR=اجازه مدفوعة ## Configuration du Module ## -LastUpdateCP=Last automatic update of leave allocation -MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation +LastUpdateCP=آخر تحديث تلقائي لتخصيص الإجازات +MonthOfLastMonthlyUpdate=شهر آخر تحديث تلقائي لتخصيص الإجازة UpdateConfCPOK=تم التحديث بنجاح. Module27130Name= إدارة طلبات الإجازة Module27130Desc= إدارة طلبات الإجازة @@ -115,25 +115,25 @@ NoticePeriod=فترة إشعار HolidaysToValidate=التحقق من صحة طلبات الإجازة HolidaysToValidateBody=وفيما يلي طلب إجازة للتحقق من صحة HolidaysToValidateDelay=وهذا الطلب إجازة أن تتم في غضون أقل من٪ الصورة أيام. -HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days. +HolidaysToValidateAlertSolde=المستخدم الذي قدم طلب الإجازة هذا ليس لديه أيام متاحة كافية. HolidaysValidated=طلبات إجازة التحقق من صحة HolidaysValidatedBody=تم التحقق من صحة طلب إجازة لمدة٪ s إلى٪ s. HolidaysRefused=طلب نفى -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason: +HolidaysRefusedBody=تم رفض طلب إجازة %s إلى %s للسبب التالي: HolidaysCanceled=إلغاء طلب الأوراق HolidaysCanceledBody=تم إلغاء طلب إجازة لمدة٪ s إلى٪ s. FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
    0: Not followed by a counter. NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter -GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leave to setup the different types of leaves. -HolidaySetup=Setup of module Leave -HolidaysNumberingModules=Numbering models for leave requests -TemplatePDFHolidays=Template for leave requests PDF -FreeLegalTextOnHolidays=Free text on PDF -WatermarkOnDraftHolidayCards=Watermarks on draft leave requests -HolidaysToApprove=Holidays to approve -NobodyHasPermissionToValidateHolidays=Nobody has permission to validate holidays -HolidayBalanceMonthlyUpdate=Monthly update of holiday balance -XIsAUsualNonWorkingDay=%s is usualy a NON working day -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +GoIntoDictionaryHolidayTypes=انتقل إلى Home - الإعداد - القواميس - نوع الإجازة لإعداد أنواع مختلفة من الأوراق. +HolidaySetup=إعداد إجازة الوحدة +HolidaysNumberingModules=نماذج الترقيم لطلبات الإجازة +TemplatePDFHolidays=قالب طلبات الإجازة PDF +FreeLegalTextOnHolidays=نص مجاني على PDF +WatermarkOnDraftHolidayCards=العلامات المائية على مسودة طلبات الإجازة +HolidaysToApprove=العطل للموافقة +NobodyHasPermissionToValidateHolidays=لا أحد لديه إذن للتحقق من صحة العطلات +HolidayBalanceMonthlyUpdate=التحديث الشهري لرصيد العطلة +XIsAUsualNonWorkingDay=%s هو عادة يوم عمل غير +BlockHolidayIfNegative=كتلة إذا كان الرصيد سلبي +LeaveRequestCreationBlockedBecauseBalanceIsNegative=تم حظر إنشاء طلب الإجازة هذا لأن رصيدك سلبي +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=يجب أن يكون طلب الإجازة %s مسودة أو إلغاء أو رفض حذفه diff --git a/htdocs/langs/ar_SA/hrm.lang b/htdocs/langs/ar_SA/hrm.lang index abe66f93b30..045d3740497 100644 --- a/htdocs/langs/ar_SA/hrm.lang +++ b/htdocs/langs/ar_SA/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=فتح المؤسسة CloseEtablishment=إغلاق المؤسسة # Dictionary DictionaryPublicHolidays=الإجازات - الإجازات عامة -DictionaryDepartment=إدارة الموارد البشرية - قائمة القسم +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=إدارة الموارد البشرية - المسميات الوظيفية # Module Employees=الموظفين @@ -20,13 +20,14 @@ Employee=الموظف NewEmployee=موظف جديد ListOfEmployees=قائمة الموظفين HrmSetup=HRM وحدة الإعداد -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=وظيفة -Jobs=Jobs +JobPosition=وظيفة +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=المنصب -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang index d4fd487c0a1..cbe4aa51b37 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -2,34 +2,35 @@ InstallEasy=فقط اتبع التعليمات خطوة بخطوة. MiscellaneousChecks=التحقق من الشروط الأساسية ConfFileExists=ملف الإعداد %s موجود مسبقاً -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file %s does not exist and could not be created! +ConfFileDoesNotExistsAndCouldNotBeCreated=ملف التكوين %s غير موجود ولا يمكن إنشاؤه! ConfFileCouldBeCreated=يمكن إنشاء ملف الإعداد %s -ConfFileIsNotWritable=Configuration file %s is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS). +ConfFileIsNotWritable=ملف التكوين %s غير قابل للكتابة. تحقق من الأذونات. عند التثبيت لأول مرة ، يجب أن يكون خادم الويب الخاص بك قادرًا على الكتابة في هذا الملف أثناء عملية التكوين ("chmod 666" على سبيل المثال في نظام التشغيل Unix مثل نظام التشغيل). ConfFileIsWritable=ملف الإعداد %s قابل للكتابة. -ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. -ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +ConfFileMustBeAFileNotADir=يجب أن يكون ملف التكوين %s ملفًا وليس دليلاً. +ConfFileReload=إعادة تحميل المعلمات من ملف التكوين. +NoReadableConfFileSoStartInstall=ملف التكوين conf / conf.php غير موجود أو غير قابل للقراءة. سنقوم بتشغيل عملية التثبيت لمحاولة تهيئتها. PHPSupportPOSTGETOk=يدعم هذا الـ PHP وظائف POST و GET. -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. +PHPSupportPOSTGETKo=من المحتمل أن إعداد PHP الخاص بك لا يدعم المتغيرات POST و / أو GET. تحقق من المعامل variables_order في ملف php.ini. PHPSupportSessions=يدعم هذا الـ PHP ميزة الجلسات الزمنية. -PHPSupport=This PHP supports %s functions. +PHPSupport=يدعم PHP وظائف %s. PHPMemoryOK=تم إعداد الجلسة الزمنية للذاكرة في PHP الى %s . من المفترض ان تكون كافية. -PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. -Recheck=Click here for a more detailed test -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. +PHPMemoryTooLow=تم تعيين ذاكرة جلسة PHP القصوى على %s بايت. هذا منخفض جدًا. قم بتغيير المعلمة php.ini لتعيين memory_limit إلى a0ecb2ec87f498zb7 byt9174. +Recheck=انقر هنا للحصول على اختبار أكثر تفصيلاً +ErrorPHPDoesNotSupportSessions=تثبيت PHP الخاص بك لا يدعم الجلسات. هذه الميزة مطلوبة للسماح لـ Dolibarr بالعمل. تحقق من إعداد PHP وأذونات دليل الجلسات. +ErrorPHPDoesNotSupport=تثبيت PHP الخاص بك لا يدعم وظائف %s. ErrorDirDoesNotExists=دليل ٪ ق لا يوجد. -ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. +ErrorGoBackAndCorrectParameters=ارجع وتحقق من / صحح المعلمات. ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق. ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق. ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق. ErrorDatabaseVersionTooLow=إصدار قاعدة البيانات (s%) قديمة جدا. مطلوب نسخة s% أو أعلى -ErrorPHPVersionTooLow=PHP نسخة قديمة جدا. النسخة ٪ ق هو مطلوب. -ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. +ErrorPHPVersionTooLow=إصدار PHP قديم جدًا. مطلوب إصدار %s أو أعلى. +ErrorPHPVersionTooHigh=إصدار PHP مرتفع جدًا. مطلوب إصدار %s أو أقل. +ErrorConnectedButDatabaseNotFound=الاتصال بالخادم ناجح ولكن قاعدة البيانات "%s" غير موجودة. ErrorDatabaseAlreadyExists=قاعدة البيانات '٪ ق' موجود بالفعل. -IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". +IfDatabaseNotExistsGoBackAndUncheckCreate=إذا كانت قاعدة البيانات غير موجودة ، فارجع وحدد الخيار "إنشاء قاعدة بيانات". IfDatabaseExistsGoBackAndCheckCreate=إذا كانت قاعدة البيانات موجود بالفعل ، من العودة وإلغاء "إنشاء قاعدة بيانات" الخيار. -WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. +WarningBrowserTooOld=إصدار المتصفح قديم جدًا. يوصى بشدة بترقية متصفحك إلى إصدار حديث من Firefox أو Chrome أو Opera. PHPVersion=PHP الإصدار License=الترخيص باستعمال ConfigurationFile=ملفات @@ -42,23 +43,23 @@ DolibarrDatabase=قاعدة بيانات Dolibarr DatabaseType=قاعدة بيانات من نوع DriverType=سائق نوع Server=الخادم -ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server. +ServerAddressDescription=الاسم أو عنوان IP لخادم قاعدة البيانات. عادة "localhost" عندما يتم استضافة خادم قاعدة البيانات على نفس الخادم مثل خادم الويب. ServerPortDescription=قاعدة بيانات الميناء. تبقي فارغة إذا كانت غير معروفة. DatabaseServer=خادم قاعدة البيانات DatabaseName=اسم قاعدة البيانات -DatabasePrefix=Database table prefix -DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_. -AdminLogin=User account for the Dolibarr database owner. -PasswordAgain=Retype password confirmation +DatabasePrefix=بادئة جدول قاعدة البيانات +DatabasePrefixDescription=بادئة جدول قاعدة البيانات. إذا كانت فارغة ، يتم تعيينها افتراضيًا على llx_. +AdminLogin=حساب المستخدم لمالك قاعدة بيانات Dolibarr. +PasswordAgain=أعد كتابة كلمة المرور AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال CreateDatabase=إنشاء قاعدة بيانات -CreateUser=Create user account or grant user account permission on the Dolibarr database +CreateUser=قم بإنشاء حساب مستخدم أو منح إذن حساب المستخدم على قاعدة بيانات Dolibarr DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا -CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.
    In this case, you must also fill in the user name and password for the superuser account at the bottom of this page. -CheckToCreateUser=Check the box if:
    the database user account does not yet exist and so must be created, or
    if the user account exists but the database does not exist and permissions must be granted.
    In this case, you must enter the user account and password and also the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist. -DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist. -KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended) -SaveConfigurationFile=Saving parameters to +CheckToCreateDatabase=ضع علامة في المربع إذا لم تكن قاعدة البيانات موجودة بعد ويجب إنشاء ذلك.
    في هذه الحالة ، يجب عليك أيضًا ملء اسم المستخدم وكلمة المرور لحساب المستخدم المتميز في أسفل هذه الصفحة. +CheckToCreateUser=ضع علامة في المربع إذا:
    حساب مستخدم قاعدة البيانات غير موجود بعد ويجب إنشاءه ، أو
    إذا كان حساب المستخدم موجودًا ولكن قاعدة البيانات غير موجودة ويجب منح الأذونات.
    في هذه الحالة ، يجب عليك إدخال حساب المستخدم وكلمة المرور و أيضًا اسم حساب المستخدم المتميز وكلمة المرور في أسفل هذه الصفحة. إذا لم يتم تحديد هذا المربع ، فيجب أن يكون مالك قاعدة البيانات وكلمة المرور موجودين بالفعل. +DatabaseRootLoginDescription=اسم حساب المستخدم المتميز (لإنشاء قواعد بيانات جديدة أو مستخدمين جدد) ، إلزامي إذا لم تكن قاعدة البيانات أو مالكها موجودًا بالفعل. +KeepEmptyIfNoPassword=اتركه فارغًا إذا لم يكن لدى المستخدم المتميز كلمة مرور (غير مستحسن) +SaveConfigurationFile=حفظ المعلمات في ServerConnection=اتصال الخادم DatabaseCreation=إنشاء قاعدة بيانات CreateDatabaseObjects=إنشاء قاعدة بيانات الأجسام @@ -69,9 +70,9 @@ CreateOtherKeysForTable=إنشاء الخارجية مفاتيح الأرقام OtherKeysCreation=مفاتيح الخارجية وإنشاء الفهارس FunctionsCreation=إنشاء وظائف AdminAccountCreation=مدير ادخل إنشاء -PleaseTypePassword=Please type a password, empty passwords are not allowed! -PleaseTypeALogin=Please type a login! -PasswordsMismatch=Passwords differs, please try again! +PleaseTypePassword=الرجاء كتابة كلمة المرور ، غير مسموح بكلمات المرور الفارغة! +PleaseTypeALogin=الرجاء كتابة تسجيل الدخول! +PasswordsMismatch=تختلف كلمات المرور ، يرجى المحاولة مرة أخرى! SetupEnd=نهاية الإعداد SystemIsInstalled=هذا التثبيت الكامل. SystemIsUpgraded=وقد تم تطوير Dolibarr بنجاح. @@ -79,73 +80,73 @@ YouNeedToPersonalizeSetup=عليك تكوين Dolibarr لتناسب احتياج AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. GoToDolibarr=الذهاب إلى Dolibarr GoToSetupArea=الذهاب إلى Dolibarr (مجال الإعداد) -MigrationNotFinished=The database version is not completely up to date: run the upgrade process again. +MigrationNotFinished=إصدار قاعدة البيانات ليس محدثًا بالكامل: قم بتشغيل عملية الترقية مرة أخرى. GoToUpgradePage=الذهاب لتحديث الصفحة مرة أخرى WithNoSlashAtTheEnd=بدون خفض "/" في نهاية -DirectoryRecommendation=IMPORTANT: You must use a directory that is outside of the web pages (so do not use a subdirectory of previous parameter). +DirectoryRecommendation= هام : يجب عليك استخدام دليل خارج صفحات الويب (لذا لا تستخدم دليلًا فرعيًا للمعلمة السابقة). LoginAlreadyExists=موجود بالفعل DolibarrAdminLogin=ادخل Dolibarr مشرف -AdminLoginAlreadyExists=Dolibarr administrator account '%s' already exists. Go back if you want to create another one. +AdminLoginAlreadyExists=حساب مسؤول Dolibarr ' %s ' موجود بالفعل. ارجع إذا كنت تريد إنشاء واحدة أخرى. FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called install.lock into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again. -FunctionNotAvailableInThisPHP=Not available in this PHP +WarningRemoveInstallDir=تحذير ، لأسباب أمنية ، بمجرد اكتمال التثبيت أو الترقية ، يجب إضافة ملف يسمى install.lock في دليل مستندات Dolibarr من أجل منع الاستخدام العرضي / الضار لأدوات التثبيت مرة أخرى. +FunctionNotAvailableInThisPHP=غير متوفر في PHP هذا ChoosedMigrateScript=اختار الهجرة سكريبت -DataMigration=Database migration (data) -DatabaseMigration=Database migration (structure + some data) +DataMigration=ترحيل قاعدة البيانات (البيانات) +DatabaseMigration=ترحيل قاعدة البيانات (بنية + بعض البيانات) ProcessMigrateScript=السيناريو تجهيز ChooseYourSetupMode=اختر طريقة الإعداد وانقر على "ابدأ"... FreshInstall=تركيب جديد -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode. +FreshInstallDesc=استخدم هذا الوضع إذا كان هذا هو التثبيت الأول لك. إذا لم يكن الأمر كذلك ، فيمكن لهذا الوضع إصلاح تثبيت سابق غير مكتمل. إذا كنت ترغب في ترقية إصدارك ، اختر وضع "ترقية". Upgrade=ترقية UpgradeDesc=استخدام هذه الطريقة إذا كنت قد حلت محل القديمة Dolibarr الملفات من الملفات مع إصدار أحدث. وهذا من شأنه رفع مستوى قاعدة البيانات والبيانات. Start=يبدأ InstallNotAllowed=الإعداد غير مسموح به conf.php الاذونات YouMustCreateWithPermission=يجب إنشاء ملف ق ٪ ومجموعة الكتابة على أذونات لملقم الويب أثناء عملية التثبيت. -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page. +CorrectProblemAndReloadPage=يرجى إصلاح المشكلة والضغط على F5 لإعادة تحميل الصفحة. AlreadyDone=بالفعل هاجر DatabaseVersion=قاعدة بيانات النسخة ServerVersion=خادم قاعدة البيانات النسخة YouMustCreateItAndAllowServerToWrite=يجب إنشاء هذا الدليل ، والسماح لخادم الويب أن يكتبوا فيه. DBSortingCollation=طابع الفرز بغية -YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database %s, but for this, Dolibarr needs to connect to server %s with super user %s permissions. -YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user %s, but for this, Dolibarr needs to connect to server %s with super user %s permissions. -BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong. +YouAskDatabaseCreationSoDolibarrNeedToConnect=لقد حددت إنشاء قاعدة بيانات %s ، ولكن لهذا الغرض ، يحتاج Dolibarr إلى الاتصال بالخادم %s a09a4b739f17658372f a0334bec08z07f. +YouAskLoginCreationSoDolibarrNeedToConnect=لقد حددت إنشاء مستخدم قاعدة البيانات %s ، ولكن لهذا الغرض ، يحتاج Dolibarr إلى الاتصال بالخادم %s a09a4b749f17658z07fee. +BecauseConnectionFailedParametersMayBeWrong=فشل اتصال قاعدة البيانات: يجب أن تكون معلمات المضيف أو المستخدم الفائق خاطئة. OrphelinsPaymentsDetectedByMethod=Orphelins من اكتشاف طريقة الدفع ق ٪ RemoveItManuallyAndPressF5ToContinue=إزالته يدويا واضغط F5 للمتابعة. FieldRenamed=تغيير اسم الحقل -IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user" -ErrorConnection=Server "%s", database name "%s", login "%s", or database password may be wrong or the PHP client version may be too old compared to the database version. +IfLoginDoesNotExistsCheckCreateUser=إذا لم يكن المستخدم موجودًا بعد ، فيجب تحديد الخيار "إنشاء مستخدم" +ErrorConnection=Server " %s ", database name " %s ", login " %s ", or database password may be wrong or the PHP client version may be too old compared to the database version. InstallChoiceRecommanded=وأوصت لتثبيت اختيار النسخة ٪ المستندات الخاصة بك من النسخة الحالية ل ٪ InstallChoiceSuggested=اقترح تثبيت اختيار المثبت. -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete. -CheckThatDatabasenameIsCorrect=Check that the database name "%s" is correct. +MigrateIsDoneStepByStep=يحتوي الإصدار المستهدف (%s) على فجوة في عدة إصدارات. سيعود معالج التثبيت ليقترح عملية ترحيل أخرى بمجرد اكتمال هذا. +CheckThatDatabasenameIsCorrect=تحقق من صحة اسم قاعدة البيانات " %s ". IfAlreadyExistsCheckOption=وإذا كان هذا الاسم هو الصحيح وأنه لا وجود قاعدة بيانات حتى الآن ، ويجب التحقق من خيار "إنشاء قاعدة بيانات". OpenBaseDir=بي openbasedir المعلمة -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form). -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form). -NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing. -MigrationCustomerOrderShipping=Migrate shipping for sales orders storage +YouAskToCreateDatabaseSoRootRequired=حددت المربع "إنشاء قاعدة بيانات". لهذا ، تحتاج إلى تقديم تسجيل الدخول / كلمة المرور للمستخدم المتميز (أسفل النموذج). +YouAskToCreateDatabaseUserSoRootRequired=حددت المربع "إنشاء مالك قاعدة البيانات". لهذا ، تحتاج إلى تقديم تسجيل الدخول / كلمة المرور للمستخدم المتميز (أسفل النموذج). +NextStepMightLastALongTime=قد تستغرق الخطوة الحالية عدة دقائق. يرجى الانتظار حتى تظهر الشاشة التالية تمامًا قبل المتابعة. +MigrationCustomerOrderShipping=ترحيل الشحن لتخزين أوامر المبيعات MigrationShippingDelivery=ترقية تخزين الشحن MigrationShippingDelivery2=ترقية تخزين الشحن 2 MigrationFinished=الانتهاء من الهجرة -LastStepDesc=Last step: Define here the login and password you wish to use to connect to Dolibarr. Do not lose this as it is the master account to administer all other/additional user accounts. +LastStepDesc= الخطوة الأخيرة : حدد هنا تسجيل الدخول وكلمة المرور اللذين ترغب في استخدامهما للاتصال بـ Dolibarr. لا تفقد هذا لأنه الحساب الرئيسي لإدارة جميع حسابات المستخدمين الأخرى / الإضافية. ActivateModule=تفعيل وحدة %s ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء) -WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process... -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s) -KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing. -KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing. -KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing. -KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing. -UpgradeExternalModule=Run dedicated upgrade process of external module -SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example: '...repair.php?standard=confirmed' -NothingToDelete=Nothing to clean/delete -NothingToDo=Nothing to do +WarningUpgrade=تحذير:\nهل قمت بتشغيل نسخة احتياطية لقاعدة البيانات أولاً؟\nينصح بهذا بشدة. قد يكون فقدان البيانات (بسبب الأخطاء الموجودة في الإصدار 5.5.40 / 41/42/43 من mysql على سبيل المثال) ممكنًا أثناء هذه العملية ، لذلك من الضروري تفريغ قاعدة البيانات بالكامل قبل بدء أي ترحيل.\n\nانقر فوق "موافق" لبدء عملية الترحيل ... +ErrorDatabaseVersionForbiddenForMigration=إصدار قاعدة البيانات لديك هو %s. يحتوي على خطأ فادح ، مما يجعل فقدان البيانات ممكنًا إذا قمت بإجراء تغييرات هيكلية في قاعدة البيانات الخاصة بك ، كما هو مطلوب من خلال عملية الترحيل. لسببه ، لن يُسمح بالترحيل حتى تقوم بترقية قاعدة البيانات الخاصة بك إلى إصدار طبقة (مصححة) (قائمة إصدارات عربات التي تجرها الدواب المعروفة: %s) +KeepDefaultValuesWamp=لقد استخدمت معالج إعداد Dolibarr من DoliWamp ، لذلك تم تحسين القيم المقترحة هنا بالفعل. قم بتغييرها فقط إذا كنت تعرف ما تفعله. +KeepDefaultValuesDeb=لقد استخدمت معالج إعداد Dolibarr من حزمة Linux (Ubuntu و Debian و Fedora ...) ، لذلك تم تحسين القيم المقترحة هنا بالفعل. يجب فقط إدخال كلمة مرور مالك قاعدة البيانات المراد إنشاؤها. قم بتغيير المعلمات الأخرى فقط إذا كنت تعرف ما تفعله. +KeepDefaultValuesMamp=لقد استخدمت معالج إعداد Dolibarr من DoliMamp ، لذلك تم تحسين القيم المقترحة هنا بالفعل. قم بتغييرها فقط إذا كنت تعرف ما تفعله. +KeepDefaultValuesProxmox=لقد استخدمت معالج إعداد Dolibarr من جهاز Proxmox الظاهري ، لذلك تم تحسين القيم المقترحة هنا بالفعل. قم بتغييرها فقط إذا كنت تعرف ما تفعله. +UpgradeExternalModule=قم بتشغيل عملية ترقية مخصصة للوحدة الخارجية +SetAtLeastOneOptionAsUrlParameter=عيِّن خيارًا واحدًا على الأقل كمعامل في URL. على سبيل المثال: "... repair.php؟ standard = Verified" +NothingToDelete=لا شيء للتنظيف / الحذف +NothingToDo=لا شيء لأفعله ######### # upgrade MigrationFixData=إصلاح البيانات الذي لم تتم تسويته MigrationOrder=بيانات الهجرة طلبات الزبائن -MigrationSupplierOrder=Data migration for vendor's orders +MigrationSupplierOrder=ترحيل البيانات لأوامر البائعين MigrationProposal=بيانات الهجرة لأغراض تجارية اقتراحات MigrationInvoice=بيانات الهجرة لعملاء الفواتير MigrationContract=بيانات الهجرة للحصول على عقود @@ -161,9 +162,9 @@ MigrationContractsUpdate=تصحيح بيانات العقد MigrationContractsNumberToUpdate=٪ ق العقد (ق) لتحديث MigrationContractsLineCreation=عقد إنشاء خط لعقد المرجع ق ٪ MigrationContractsNothingToUpdate=لا أكثر مما ينبغي فعله -MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do. +MigrationContractsFieldDontExist=لم يعد الحقل fk_facture موجودًا بعد الآن. لا شيء لأفعله. MigrationContractsEmptyDatesUpdate=عقد فارغ تصحيح التاريخ -MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully +MigrationContractsEmptyDatesUpdateSuccess=تم تصحيح تاريخ فارغ للعقد بنجاح MigrationContractsEmptyDatesNothingToUpdate=أي عقد حتى الآن لتصحيح فارغة MigrationContractsEmptyCreationDatesNothingToUpdate=إنشاء أي عقد لتصحيح التاريخ MigrationContractsInvalidDatesUpdate=سوء قيمة العقد تصحيح التاريخ @@ -185,29 +186,29 @@ MigrationDeliveryDetail=تسليم تحديث MigrationStockDetail=تحديث قيمة المخزون من المنتجات MigrationMenusDetail=تحديث القوائم الديناميكية الجداول MigrationDeliveryAddress=تتناول آخر التطورات في تسليم شحنات -MigrationProjectTaskActors=Data migration for table llx_projet_task_actors +MigrationProjectTaskActors=ترحيل البيانات للجدول llx_projet_task_actors MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من llx_projet لllx_element_contact MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان MigrationActioncommElement=تحديث البيانات على الإجراءات -MigrationPaymentMode=Data migration for payment type +MigrationPaymentMode=ترحيل البيانات لنوع الدفع MigrationCategorieAssociation=تحديث الفئات -MigrationEvents=Migration of events to add event owner into assignment table -MigrationEventsContact=Migration of events to add event contact into assignment table +MigrationEvents=ترحيل الأحداث لإضافة مالك الحدث إلى جدول المهام +MigrationEventsContact=ترحيل الأحداث لإضافة جهة اتصال الحدث إلى جدول المهام MigrationRemiseEntity=Update entity field value of llx_societe_remise MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except -MigrationUserRightsEntity=Update entity field value of llx_user_rights -MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights -MigrationUserPhotoPath=Migration of photo paths for users -MigrationFieldsSocialNetworks=Migration of users fields social networks (%s) +MigrationUserRightsEntity=تحديث قيمة حقل الكيان لـ llx_user_rights +MigrationUserGroupRightsEntity=تحديث قيمة حقل الكيان لـ llx_usergroup_rights +MigrationUserPhotoPath=ترحيل مسارات الصور للمستخدمين +MigrationFieldsSocialNetworks=هجرة حقول المستخدمين الشبكات الاجتماعية (%s) MigrationReloadModule=إعادة تحديث الوحدات %s -MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm -MigrationImportOrExportProfiles=Migration of import or export profiles (%s) -ShowNotAvailableOptions=Show unavailable options -HideNotAvailableOptions=Hide unavailable options -ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can click here, but the application or some features may not work correctly until the errors are resolved. -YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).
    -YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file install.lock in the dolibarr documents directory).
    -ClickHereToGoToApp=Click here to go to your application -ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory. -Loaded=Loaded -FunctionTest=Function test +MigrationResetBlockedLog=إعادة تعيين الوحدة النمطية BlockedLog لخوارزمية v7 +MigrationImportOrExportProfiles=ترحيل ملفات تعريف الاستيراد أو التصدير (%s) +ShowNotAvailableOptions=إظهار الخيارات غير المتاحة +HideNotAvailableOptions=إخفاء الخيارات غير المتاحة +ErrorFoundDuringMigration=تم الإبلاغ عن خطأ (أخطاء) أثناء عملية الترحيل ، لذا فإن الخطوة التالية غير متاحة. لتجاهل الأخطاء ، يمكنك النقر هنا ، لكن التطبيق أو بعض الميزات قد لا تعمل بشكل صحيح حتى يتم حل الأخطاء. +YouTryInstallDisabledByDirLock=حاول التطبيق الترقية الذاتية ، ولكن تم تعطيل صفحات التثبيت / الترقية للأمان (تمت إعادة تسمية الدليل بلاحقة .lock).
    +YouTryInstallDisabledByFileLock=حاول التطبيق الترقية الذاتية ، ولكن تم تعطيل صفحات التثبيت / الترقية للأمان (من خلال وجود ملف قفل install.lock في دليل مستندات dolibarr).
    +ClickHereToGoToApp=انقر هنا للذهاب إلى التطبيق الخاص بك +ClickOnLinkOrRemoveManualy=إذا كانت الترقية قيد التقدم ، يرجى الانتظار. إذا لم يكن كذلك ، انقر فوق الارتباط التالي. إذا كنت ترى نفس الصفحة دائمًا ، فيجب عليك إزالة / إعادة تسمية الملف install.lock في دليل المستندات. +Loaded=محمل +FunctionTest=اختبار الوظيفة diff --git a/htdocs/langs/ar_SA/interventions.lang b/htdocs/langs/ar_SA/interventions.lang index 2412062f9e9..a48f49f1125 100644 --- a/htdocs/langs/ar_SA/interventions.lang +++ b/htdocs/langs/ar_SA/interventions.lang @@ -4,10 +4,10 @@ Interventions=المداخلات InterventionCard=تدخل البطاقة NewIntervention=التدخل الجديدة AddIntervention=إنشاء التدخل -ChangeIntoRepeatableIntervention=Change to repeatable intervention +ChangeIntoRepeatableIntervention=التغيير إلى التدخل المتكرر ListOfInterventions=قائمة التدخلات ActionsOnFicheInter=إجراءات على التدخل -LastInterventions=Latest %s interventions +LastInterventions=أحدث تدخلات %s AllInterventions=كل التدخلات CreateDraftIntervention=إنشاء مشروع InterventionContact=التدخل الاتصال @@ -15,54 +15,58 @@ DeleteIntervention=حذف التدخل ValidateIntervention=تحقق من التدخل ModifyIntervention=تعديل التدخل DeleteInterventionLine=حذف السطر التدخل -ConfirmDeleteIntervention=Are you sure you want to delete this intervention? -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Are you sure you want to modify this intervention? -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? -ConfirmCloneIntervention=Are you sure you want to clone this intervention? -NameAndSignatureOfInternalContact=Name and signature of intervening: -NameAndSignatureOfExternalContact=Name and signature of customer: +ConfirmDeleteIntervention=هل أنت متأكد أنك تريد حذف هذا التدخل؟ +ConfirmValidateIntervention=هل أنت متأكد من أنك تريد التحقق من صحة هذا التدخل تحت الاسم %s ؟ +ConfirmModifyIntervention=هل أنت متأكد أنك تريد تعديل هذا التدخل؟ +ConfirmDeleteInterventionLine=هل أنت متأكد أنك تريد حذف سطر التدخل هذا؟ +ConfirmCloneIntervention=هل أنت متأكد أنك تريد استنساخ هذا التدخل؟ +NameAndSignatureOfInternalContact=اسم المتدخل وتوقيعه: +NameAndSignatureOfExternalContact=اسم وتوقيع العميل: DocumentModelStandard=نموذج وثيقة موحدة للتدخلات InterventionCardsAndInterventionLines=التدخلات وخطوط التدخلات InterventionClassifyBilled=تصنيف "المفوتر" InterventionClassifyUnBilled=تصنيف "فواتير" -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=تصنيف "تم" StatusInterInvoiced=فواتير SendInterventionRef=تقديم التدخل٪ الصورة -SendInterventionByMail=Send intervention by email +SendInterventionByMail=أرسل المداخلة عبر البريد الإلكتروني InterventionCreatedInDolibarr=التدخل٪ الصورة خلقت InterventionValidatedInDolibarr=التدخل%s التأكد من صلاحيتها InterventionModifiedInDolibarr=التدخل٪ الصورة المعدلة InterventionClassifiedBilledInDolibarr=التدخل٪ الصورة كما وصفت مجموعة InterventionClassifiedUnbilledInDolibarr=التدخل٪ الصورة مجموعة كما فواتير -InterventionSentByEMail=Intervention %s sent by email +InterventionSentByEMail=تم إرسال التدخل %s عبر البريد الإلكتروني InterventionDeletedInDolibarr=التدخل٪ الصورة حذفها InterventionsArea=منطقة التدخلات DraftFichinter=مشروع التدخلات LastModifiedInterventions=Latest %s modified interventions -FichinterToProcess=Interventions to process +FichinterToProcess=التدخلات للعملية TypeContact_fichinter_external_CUSTOMER=متابعة العملاء الاتصال -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinter=اطبع أيضًا سطورًا من نوع "المنتج" (وليس الخدمات فقط) على بطاقة التدخل PrintProductsOnFichinterDetails=التدخلات المتولدة من أوامر -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders -UseDurationOnFichinter=Hides the duration field for intervention records -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records -InterventionStatistics=Statistics of interventions -NbOfinterventions=No. of intervention cards -NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation) -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them. +UseServicesDurationOnFichinter=استخدام مدة الخدمات للتدخلات الناتجة عن الأوامر +UseDurationOnFichinter=يخفي حقل المدة لسجلات التدخل +UseDateWithoutHourOnFichinter=يخفي الساعات والدقائق خارج حقل التاريخ لسجلات التدخل +InterventionStatistics=إحصائيات التدخلات +NbOfinterventions=عدد بطاقات التدخل +NumberOfInterventionsByMonth=عدد بطاقات التدخل بالشهر (تاريخ المصادقة) +AmountOfInteventionNotIncludedByDefault=لا يتم تضمين مقدار التدخل بشكل افتراضي في الربح (في معظم الحالات ، يتم استخدام الجداول الزمنية لحساب الوقت المنقضي). أضف الخيار PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT إلى 1 في المنزل-الإعداد الآخر لتضمينها. InterId=تدخل معرف InterRef=تدخل المرجع. InterDateCreation=تدخل تاريخ الإنشاء InterDuration=تدخل مدة InterStatus=التدخل الوضع InterNote=ملاحظة التدخل -InterLine=Line of intervention +InterLine=خط التدخل InterLineId=تدخل معرف الخط InterLineDate=تدخل تاريخ الخط InterLineDuration=تدخل مدة خط InterLineDesc=خط وصف التدخل -RepeatableIntervention=Template of intervention -ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template -ConfirmReopenIntervention=Are you sure you want to open back the intervention %s? -GenerateInter=Generate intervention +RepeatableIntervention=نموذج التدخل +ToCreateAPredefinedIntervention=لإنشاء تدخل محدد مسبقًا أو متكرر ، قم بإنشاء تدخل مشترك وقم بتحويله إلى قالب تدخل +ConfirmReopenIntervention=هل أنت متأكد أنك تريد فتح تدخل %s ؟ +GenerateInter=توليد التدخل +FichinterNoContractLinked=تم إنشاء التدخل %s بدون عقد مرتبط. +ErrorFicheinterCompanyDoesNotExist=الشركة غير موجودة. لم يتم إنشاء التدخل. +NextDateToIntervention=Date for next intervention generation +NoIntervention=No intervention diff --git a/htdocs/langs/ar_SA/intracommreport.lang b/htdocs/langs/ar_SA/intracommreport.lang index a95f6d10e9e..01d5beaad7b 100644 --- a/htdocs/langs/ar_SA/intracommreport.lang +++ b/htdocs/langs/ar_SA/intracommreport.lang @@ -1,40 +1,40 @@ -Module68000Name = Intracomm report -Module68000Desc = Intracomm report management (Support for French DEB/DES format) -IntracommReportSetup = Intracommreport module setup -IntracommReportAbout = About intracommreport +Module68000Name = تقرير إنتراكوم +Module68000Desc = إدارة تقارير Intracomm (دعم تنسيق DEB / DES الفرنسي) +IntracommReportSetup = إعداد وحدة Intracommreport +IntracommReportAbout = حول التقرير الداخلي # Setup INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) -INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur +INTRACOMMREPORT_TYPE_ACTEUR=النوع الفاعل INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur -INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions +INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les مقدمات INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant # Menu -MenuIntracommReport=Intracomm report -MenuIntracommReportNew=New declaration +MenuIntracommReport=تقرير إنتراكوم +MenuIntracommReportNew=إعلان جديد MenuIntracommReportList=قائمة # View -NewDeclaration=New declaration -Declaration=Declaration -AnalysisPeriod=Analysis period -TypeOfDeclaration=Type of declaration -DEB=Goods exchange declaration (DEB) -DES=Services exchange declaration (DES) +NewDeclaration=إعلان جديد +Declaration=إعلان +AnalysisPeriod=فترة التحليل +TypeOfDeclaration=نوع التصريح +DEB=إقرار تبادل البضائع (DEB) +DES=تصريح تبادل الخدمات (DES) # Export page -IntracommReportTitle=Preparation of an XML file in ProDouane format +IntracommReportTitle=تحضير ملف XML بتنسيق ProDouane # List -IntracommReportList=List of generated declarations -IntracommReportNumber=Numero of declaration -IntracommReportPeriod=Period of nalysis -IntracommReportTypeDeclaration=Type of declaration -IntracommReportDownload=download XML file +IntracommReportList=قائمة الإعلانات التي تم إنشاؤها +IntracommReportNumber=نوميرو من التصريح +IntracommReportPeriod=فترة التحليل +IntracommReportTypeDeclaration=نوع التصريح +IntracommReportDownload=تنزيل ملف XML # Invoice -IntracommReportTransportMode=Transport mode +IntracommReportTransportMode=وضع النقل diff --git a/htdocs/langs/ar_SA/knowledgemanagement.lang b/htdocs/langs/ar_SA/knowledgemanagement.lang index 002cf78ddf2..fa1ada6b601 100644 --- a/htdocs/langs/ar_SA/knowledgemanagement.lang +++ b/htdocs/langs/ar_SA/knowledgemanagement.lang @@ -18,37 +18,37 @@ # # Module label 'ModuleKnowledgeManagementName' -ModuleKnowledgeManagementName = Knowledge Management System +ModuleKnowledgeManagementName = نظام إدارة المعرفة # Module description 'ModuleKnowledgeManagementDesc' -ModuleKnowledgeManagementDesc=Manage a Knowledge Management (KM) or Help-Desk base +ModuleKnowledgeManagementDesc=إدارة إدارة المعرفة (KM) أو قاعدة مكتب المساعدة # # Admin page # -KnowledgeManagementSetup = Knowledge Management System setup +KnowledgeManagementSetup = إعداد نظام إدارة المعرفة Settings = إعدادات -KnowledgeManagementSetupPage = Knowledge Management System setup page +KnowledgeManagementSetupPage = صفحة إعداد نظام إدارة المعرفة # # About page # About = حول -KnowledgeManagementAbout = About Knowledge Management -KnowledgeManagementAboutPage = Knowledge Management about page +KnowledgeManagementAbout = حول إدارة المعرفة +KnowledgeManagementAboutPage = إدارة المعرفة حول الصفحة -KnowledgeManagementArea = Knowledge Management -MenuKnowledgeRecord = Knowledge base -ListKnowledgeRecord = List of articles -NewKnowledgeRecord = New article -ValidateReply = Validate solution -KnowledgeRecords = Articles +KnowledgeManagementArea = إدارة المعرفة +MenuKnowledgeRecord = قاعدة المعرفة +ListKnowledgeRecord = قائمة المقالات +NewKnowledgeRecord = مقال جديد +ValidateReply = تحقق من صحة الحل +KnowledgeRecords = مقالات KnowledgeRecord = عنصر -KnowledgeRecordExtraFields = Extrafields for Article -GroupOfTicket=Group of tickets -YouCanLinkArticleToATicketCategory=You can link an article to a ticket group (so the article will be suggested during qualification of new tickets) -SuggestedForTicketsInGroup=Suggested for tickets when group is +KnowledgeRecordExtraFields = Extrafields للمادة +GroupOfTicket=مجموعة التذاكر +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) +SuggestedForTicketsInGroup=اقترح للتذاكر عندما تكون المجموعة -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=تعيين كما عفا عليها الزمن +ConfirmCloseKM=هل تؤكد أن إغلاق هذا المقال قد عفا عليه الزمن؟ +ConfirmReopenKM=هل تريد استعادة هذه المقالة إلى الحالة "تم التحقق منها"؟ diff --git a/htdocs/langs/ar_SA/languages.lang b/htdocs/langs/ar_SA/languages.lang index 66358c46f8e..b8bbd60563f 100644 --- a/htdocs/langs/ar_SA/languages.lang +++ b/htdocs/langs/ar_SA/languages.lang @@ -1,27 +1,32 @@ # Dolibarr language file - Source file is en_US - languages Language_am_ET=إثيوبي Language_ar_AR=العربية -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=العربية (الجزائر) Language_ar_EG=العربية (مصر) -Language_ar_MA=Arabic (Moroco) +Language_ar_JO=العربية (الأردنية) +Language_ar_MA=العربية (المغرب) Language_ar_SA=العربية -Language_ar_TN=Arabic (Tunisia) -Language_ar_IQ=Arabic (Iraq) -Language_as_IN=Assamese +Language_ar_TN=العربية (تونس) +Language_ar_IQ=العربية (العراق) +Language_as_IN=الأسامية Language_az_AZ=أذربيجان Language_bn_BD=بنغالي Language_bn_IN=البنغالية (الهند) Language_bg_BG=البلغارية +Language_bo_CN=التبتية Language_bs_BA=البوسنية Language_ca_ES=كاتالاني Language_cs_CZ=تشيكي +Language_cy_GB=تهرب من دفع الرهان Language_da_DA=الدانمركية Language_da_DK=دانماركي Language_de_DE=اللغة الألمانية Language_de_AT=الألمانية (النمسا) Language_de_CH=الألمانية (سويسرا) +Language_de_LU=German (Luxembourg) Language_el_GR=يوناني Language_el_CY=اليونانية (قبرص) +Language_en_AE=الإنجليزية (الإمارات العربية المتحدة) Language_en_AU=الإنكليزية (أستراليا) Language_en_CA=الإنكليزية (كندا) Language_en_GB=الانجليزية (المملكة المتحدة) @@ -31,11 +36,13 @@ Language_en_SA=الإنجليزية (المملكة العربية السعود Language_en_SG=الإنجليزية (سنغافورة) Language_en_US=الإنكليزية (الولايات المتحدة) Language_en_ZA=الإنكليزية (جنوب أفريقيا) +Language_en_ZW=English (Zimbabwe) Language_es_ES=الأسبانية Language_es_AR=الأسبانية (الأرجنتين) Language_es_BO=الأسبانية (بوليفيا) Language_es_CL=الإسبانية (تشيلي) Language_es_CO=الأسبانية (كولومبيا) +Language_es_CR=الأسبانية (كوستاريكا) Language_es_DO=الأسبانية (جمهورية الدومنيكان) Language_es_EC=الإسبانية (إكوادور) Language_es_GT=الإسبانية (غواتيمالا) @@ -74,7 +81,7 @@ Language_it_IT=الإيطالي Language_it_CH=الإيطالية (سويسرا) Language_ja_JP=اليابانية Language_ka_GE=الجورجية -Language_kk_KZ=Kazakh +Language_kk_KZ=الكازاخستانية Language_km_KH=الخمير Language_kn_IN=الكانادا Language_ko_KR=الكورية @@ -83,19 +90,22 @@ Language_lt_LT=اللتوانية Language_lv_LV=اللاتفية Language_mk_MK=المقدونية Language_mn_MN=المنغولية +Language_my_MM=البورمية Language_nb_NO=النرويجية (بوكمال) Language_ne_NP=النيبالية Language_nl_BE=الهولندية (بلجيكا) Language_nl_NL=اللغة الهولندية Language_pl_PL=بولندي -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=البرتغالية (أنغولا) +Language_pt_MZ=البرتغالية (موزمبيق) Language_pt_BR=البرتغالية (البرازيل) Language_pt_PT=البرتغالية -Language_ro_MD=Romanian (Moldavia) +Language_ro_MD=الرومانية (مولدافيا) Language_ro_RO=الرومانية Language_ru_RU=الروسية Language_ru_UA=الروسية (أوكرانيا) -Language_tg_TJ=Tajik +Language_ta_IN=التاميل +Language_tg_TJ=طاجيك Language_tr_TR=التركية Language_sl_SI=السلوفينية Language_sv_SV=السويدية @@ -103,9 +113,11 @@ Language_sv_SE=السويدية Language_sq_AL=الألبانية Language_sk_SK=السلوفاكية Language_sr_RS=صربي +Language_sw_KE=Swahili Language_sw_SW=السواحيلية Language_th_TH=التايلاندية Language_uk_UA=الأوكراني +Language_ur_PK=الأردية Language_uz_UZ=الأوزبكي Language_vi_VN=الفيتنامية Language_zh_CN=الصينية diff --git a/htdocs/langs/ar_SA/ldap.lang b/htdocs/langs/ar_SA/ldap.lang index b84a13ba7a7..0f2fab0c304 100644 --- a/htdocs/langs/ar_SA/ldap.lang +++ b/htdocs/langs/ar_SA/ldap.lang @@ -25,3 +25,7 @@ ContactSynchronized=تمت مزامنة جهة الاتصال ForceSynchronize=إجبار التزامن بين دوليبار و خادم الوصول الخفيف للأدلة ErrorFailedToReadLDAP=فشل في قراءة قاعدة بيانات خادم الوصول الخفيف للأدلة. راجع إعدادات وحدة خادم الوصول الخفيف للأدلة، وإمكانية الوصول إلى قاعدة البيانات. PasswordOfUserInLDAP=كلمة سر المستخدم في خادم الوصول الخفيف للأدلة +LDAPPasswordHashType=نوع تجزئة كلمة المرور +LDAPPasswordHashTypeExample=نوع تجزئة كلمة المرور المستخدمة على الخادم +SupportedForLDAPExportScriptOnly=مدعوم فقط من خلال برنامج نصي للتصدير ldap +SupportedForLDAPImportScriptOnly=مدعوم فقط بواسطة برنامج نصي للاستيراد ldap diff --git a/htdocs/langs/ar_SA/loan.lang b/htdocs/langs/ar_SA/loan.lang index 104e03f9ae2..5a01f71a4ab 100644 --- a/htdocs/langs/ar_SA/loan.lang +++ b/htdocs/langs/ar_SA/loan.lang @@ -10,7 +10,7 @@ LoanCapital=عاصمة Insurance=تأمين Interest=اهتمام Nbterms=عدد من المصطلحات -Term=Term +Term=شرط LoanAccountancyCapitalCode=Accounting account capital LoanAccountancyInsuranceCode=Accounting account insurance LoanAccountancyInterestCode=Accounting account interest @@ -19,16 +19,16 @@ LoanDeleted=بنجاح قرض محذوفة ConfirmPayLoan=تأكيد صنف دفع هذا القرض LoanPaid=القرض المدفوع ListLoanAssociatedProject=List of loan associated with the project -AddLoan=Create loan -FinancialCommitment=Financial commitment +AddLoan=إنشاء قرض +FinancialCommitment=التزام مالي InterestAmount=اهتمام -CapitalRemain=Capital remain -TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started -CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule +CapitalRemain=يبقى رأس المال +TermPaidAllreadyPaid = هذا المصطلح مدفوع بالفعل +CantUseScheduleWithLoanStartedToPaid = لا يمكن إنشاء مخطط زمني لقرض بدفعة بدأت +CantModifyInterestIfScheduleIsUsed = لا يمكنك تعديل الفائدة إذا كنت تستخدم الجدول الزمني # Admin ConfigLoan=التكوين للقرض وحدة -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default -CreateCalcSchedule=Edit financial commitment +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) +CreateCalcSchedule=تحرير الالتزام المالي diff --git a/htdocs/langs/ar_SA/mailmanspip.lang b/htdocs/langs/ar_SA/mailmanspip.lang index 1cc0c530fe8..09a761fd3ca 100644 --- a/htdocs/langs/ar_SA/mailmanspip.lang +++ b/htdocs/langs/ar_SA/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -MailmanSpipSetup=ساعي البريد و تركيب نموذج SPIP -MailmanTitle=القائمة البريدية ميلمان النظام -TestSubscribe=لاختبار الاشتراك في قوائم ميلمان +MailmanSpipSetup=إعداد وحدة البريد و SPIP +MailmanTitle=نظام القائمة البريدية ميلمان +TestSubscribe=لاختبار الاشتراك في قوائم البريد TestUnSubscribe=لاختبار إلغاء الاشتراك من قوائم ساعي البريد -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully -SynchroMailManEnabled=سيتم تنفيذ عملية تحديث ميلمان -SynchroSpipEnabled=سيتم تنفيذ عملية تحديث SPIP -DescADHERENT_MAILMAN_ADMINPW=ساعي البريد مرور مسؤول -DescADHERENT_MAILMAN_URL=URL للاشتراكات ساعي البريد -DescADHERENT_MAILMAN_UNSUB_URL=URL للunsubscriptions ساعي البريد -DescADHERENT_MAILMAN_LISTS=قائمة ل نقش التلقائي للأعضاء الجدد (مفصولة بفواصل) +MailmanCreationSuccess=تم تنفيذ اختبار الاشتراك بنجاح +MailmanDeletionSuccess=تم تنفيذ اختبار إلغاء الاشتراك بنجاح +SynchroMailManEnabled=سيتم تنفيذ تحديث ميلمان +SynchroSpipEnabled=سيتم تنفيذ تحديث SPIP +DescADHERENT_MAILMAN_ADMIN_PASSWORD=كلمة مرور ساعيالبريد +DescADHERENT_MAILMAN_URL=عنوان URL لاشتراكات ساعي البريد +DescADHERENT_MAILMAN_UNSUB_URL=عنوان URL لإلغاء اشتراكات ساعي البريد +DescADHERENT_MAILMAN_LISTS=قائمة (قوائم) التسجيل التلقائي للأعضاء الجدد (مفصولة بفواصل) SPIPTitle=SPIP نظام إدارة المحتوى -DescADHERENT_SPIP_SERVEUR=SPIP خادم -DescADHERENT_SPIP_DB=SPIP اسم قاعدة البيانات -DescADHERENT_SPIP_USER=قاعدة بيانات SPIP تسجيل الدخول -DescADHERENT_SPIP_PASS=SPIP كلمة مرور قاعدة البيانات +DescADHERENT_SPIP_SERVEUR=خادم SPIP +DescADHERENT_SPIP_DB=اسم قاعدة بيانات SPIP +DescADHERENT_SPIP_USER=معلومات تسجيل الدخول إلى قاعدة بيانات SPIP  +DescADHERENT_SPIP_PASS=كلمة مرور قاعدة بيانات SPIP  AddIntoSpip=إضافة إلى SPIP AddIntoSpipConfirmation=هل أنت متأكد أنك تريد إضافة هذا العضو إلى SPIP؟ AddIntoSpipError=فشل في إضافة المستخدم في SPIP DeleteIntoSpip=إزالة من SPIP DeleteIntoSpipConfirmation=هل أنت متأكد أنك تريد إزالة هذا العضو من SPIP؟ -DeleteIntoSpipError=فشل في قمع المستخدم من SPIP -SPIPConnectionFailed=فشل الاتصال SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +DeleteIntoSpipError=فشل في حظر المستخدم من SPIP +SPIPConnectionFailed=فشل الاتصال بـ SPIP +SuccessToAddToMailmanList=تمت إضافة %s بنجاح إلى قائمة ساعي البريد %s أو قاعدة بيانات SPIP +SuccessToRemoveToMailmanList=%s تمت إزالته بنجاح من قائمة ساعي البريد %s أو قاعدة بيانات SPIP diff --git a/htdocs/langs/ar_SA/mails.lang b/htdocs/langs/ar_SA/mails.lang index 79b34553d19..d6198e63b8d 100644 --- a/htdocs/langs/ar_SA/mails.lang +++ b/htdocs/langs/ar_SA/mails.lang @@ -7,20 +7,20 @@ MailCard=بطاقة الإنترنت MailRecipients=المستفيدون MailRecipient=المتلقي MailTitle=العنوان -MailFrom=مرسل +MailFrom=من MailErrorsTo=الأخطاء MailReply=وردا على -MailTo=جهاز الاستقبال (ق) -MailToUsers=To user(s) +MailTo=فاتورة الى: +MailToUsers=إلى مستخدم (ق) MailCC=نسخة إلى -MailToCCUsers=Copy to users(s) +MailToCCUsers=نسخ للمستخدمين MailCCC=نسخة إلى نسخة -MailTopic=Email subject +MailTopic=موضوع البريد الإلكتروني MailText=رسالة MailFile=الملفات المرفقة MailMessage=هيئة البريد الإلكتروني -SubjectNotIn=Not in Subject -BodyNotIn=Not in Body +SubjectNotIn=ليس في الموضوع +BodyNotIn=ليس في الجسد ShowEMailing=وتظهر مراسلة ListOfEMailings=قائمة emailings NewMailing=مراسلة جديدة @@ -47,20 +47,20 @@ MailingStatusReadAndUnsubscribe=Read and unsubscribe ErrorMailRecipientIsEmpty=البريد الإلكتروني المتلقي فارغة WarningNoEMailsAdded=بريد الكتروني جديدة تضاف الى قائمة المتلقي. ConfirmValidMailing=Are you sure you want to validate this emailing? -ConfirmResetMailing=Warning, by re-initializing emailing %s, you will allow the re-sending this email in a bulk mailing. Are you sure you want to do this? -ConfirmDeleteMailing=Are you sure you want to delete this emailing? -NbOfUniqueEMails=No. of unique emails -NbOfEMails=No. of EMails +ConfirmResetMailing=تحذير ، من خلال إعادة تهيئة البريد الإلكتروني %s ، ستسمح بإعادة إرسال هذا البريد الإلكتروني في بريد مجمع. هل انت متأكد من أنك تريد أن تفعل هذا؟ +ConfirmDeleteMailing=هل أنت متأكد أنك تريد حذف هذا البريد الإلكتروني؟ +NbOfUniqueEMails=عدد رسائل البريد الإلكتروني الفريدة +NbOfEMails=عدد رسائل البريد الإلكتروني TotalNbOfDistinctRecipients=عدد المستفيدين متميزة NoTargetYet=ولم يعرف بعد المستفيدين (الذهاب على تبويبة 'المتلقين) -NoRecipientEmail=No recipient email for %s +NoRecipientEmail=لا يوجد بريد إلكتروني للمستلم لـ %s RemoveRecipient=إزالة المتلقية YouCanAddYourOwnPredefindedListHere=البريد الإلكتروني الخاص بك لإنشاء وحدة منتق ، انظر htdocs / تضم / وحدات / الرسائل / إقرأني. EMailTestSubstitutionReplacedByGenericValues=عند استخدام طريقة الاختبار ، واستبدال المتغيرات العامة الاستعاضة عن القيم MailingAddFile=يرفق هذا الملف NoAttachedFiles=ولا الملفات المرفقة -BadEMail=Bad value for Email -EMailNotDefined=Email not defined +BadEMail=قيمة سيئة للبريد الإلكتروني +EMailNotDefined=لم يتم تعريف البريد الإلكتروني ConfirmCloneEMailing=Are you sure you want to clone this emailing? CloneContent=استنساخ الرسالة CloneReceivers=شبيه المستفيدين @@ -68,32 +68,32 @@ DateLastSend=Date of latest sending DateSending=تاريخ إرسال SentTo=إرسالها إلى %s MailingStatusRead=قرأ -YourMailUnsubcribeOK=The email %s is correctly unsubscribe from mailing list -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature -EMailSentToNRecipients=Email sent to %s recipients. -EMailSentForNElements=Email sent for %s elements. +YourMailUnsubcribeOK=البريد الإلكتروني %s بشكل صحيح إلغاء الاشتراك من القائمة البريدية +ActivateCheckReadKey=المفتاح المستخدم لتشفير URL المستخدم لميزة "إيصال القراءة" و "إلغاء الاشتراك" +EMailSentToNRecipients=تم إرسال بريد إلكتروني إلى مستلمي %s. +EMailSentForNElements=تم إرسال بريد إلكتروني لعناصر %s. XTargetsAdded=وأضاف المتلقين٪ الصورة إلى قائمة المستهدفين -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version). -AllRecipientSelected=The recipients of the %s record selected (if their email is known). -GroupEmails=Group emails -OneEmailPerRecipient=One email per recipient (by default, one email per record selected) -WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them. -ResultOfMailSending=Result of mass Email sending -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent -SentXXXmessages=%s message(s) sent. +OnlyPDFattachmentSupported=إذا تم إنشاء مستندات PDF بالفعل لإرسال الكائنات ، فسيتم إرفاقها بالبريد الإلكتروني. إذا لم يكن الأمر كذلك ، فلن يتم إرسال بريد إلكتروني (أيضًا ، لاحظ أن مستندات pdf فقط مدعومة كمرفقات في الإرسال الجماعي في هذا الإصدار). +AllRecipientSelected=تم تحديد مستلمي السجل %s (إذا كان بريدهم الإلكتروني معروفًا). +GroupEmails=رسائل البريد الإلكتروني الجماعية +OneEmailPerRecipient=بريد إلكتروني واحد لكل مستلم (افتراضيًا ، يتم تحديد بريد إلكتروني واحد لكل سجل) +WarningIfYouCheckOneRecipientPerEmail=تحذير ، إذا قمت بتحديد هذا المربع ، فهذا يعني أنه سيتم إرسال بريد إلكتروني واحد فقط لعدة سجلات مختلفة محددة ، لذلك ، إذا كانت رسالتك تحتوي على متغيرات الاستبدال التي تشير إلى بيانات السجل ، فلن يكون من الممكن استبدالها. +ResultOfMailSending=نتيجة إرسال جماعي للبريد الإلكتروني +NbSelected=الرقم المحدد +NbIgnored=تم تجاهل الرقم +NbSent=تم إرسال الرقم +SentXXXmessages=تم إرسال رسالة (رسائل) %s. ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters -MailingModuleDescContactsByCompanyCategory=Contacts by third-party category +MailingModuleDescContactsByCompanyCategory=جهات الاتصال حسب فئة الطرف الثالث MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position -MailingModuleDescEmailsFromFile=Emails from file -MailingModuleDescEmailsFromUser=Emails input by user -MailingModuleDescDolibarrUsers=Users with Emails -MailingModuleDescThirdPartiesByCategories=Third parties (by categories) -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. -EmailCollectorFilterDesc=All filters must match to have an email being collected +MailingModuleDescEmailsFromFile=رسائل البريد الإلكتروني من الملف +MailingModuleDescEmailsFromUser=إدخال رسائل البريد الإلكتروني من قبل المستخدم +MailingModuleDescDolibarrUsers=المستخدمون الذين لديهم رسائل بريد إلكتروني +MailingModuleDescThirdPartiesByCategories=الأطراف الثالثة (حسب الفئات) +SendingFromWebInterfaceIsNotAllowed=الإرسال من واجهة الويب غير مسموح به. +EmailCollectorFilterDesc=يجب أن تتطابق جميع المرشحات حتى يتم جمع بريد إلكتروني # Libelle des modules de liste de destinataires mailing LineInFile=خط المستندات في ملف ٪ @@ -121,19 +121,19 @@ DeliveryReceipt=Delivery Ack. YouCanUseCommaSeparatorForSeveralRecipients=يمكنك استخدام الفاصلة فاصل لتحديد عدد من المتلقين. TagCheckMail=افتتاح البريد المسار TagUnsubscribe=رابط إلغاء الاشتراك -TagSignature=Signature of sending user -EMailRecipient=Recipient Email -TagMailtoEmail=Recipient Email (including html "mailto:" link) +TagSignature=توقيع المستخدم المرسل +EMailRecipient=البريد الإلكتروني المستلم +TagMailtoEmail=البريد الإلكتروني للمستلم (بما في ذلك رابط "mailto:" html) NoEmailSentBadSenderOrRecipientEmail=لا ترسل البريد الإلكتروني. مرسل سيئة أو البريد الإلكتروني المستلم. تحقق ملف تعريف المستخدم. # Module Notifications Notifications=الإخطارات -NotificationsAuto=Notifications Auto. -NoNotificationsWillBeSent=No automatic email notifications are planned for this event type and company -ANotificationsWillBeSent=1 automatic notification will be sent by email -SomeNotificationsWillBeSent=%s automatic notifications will be sent by email -AddNewNotification=Subscribe to a new automatic email notification (target/event) -ListOfActiveNotifications=List of all active subscriptions (targets/events) for automatic email notification -ListOfNotificationsDone=List of all automatic email notifications sent +NotificationsAuto=إخطارات السيارات. +NoNotificationsWillBeSent=لا توجد إخطارات تلقائية بالبريد الإلكتروني مخططة لهذا النوع من الأحداث والشركة +ANotificationsWillBeSent=سيتم إرسال إشعار تلقائي واحد عبر البريد الإلكتروني +SomeNotificationsWillBeSent=%s سيتم إرسال إشعارات تلقائية عبر البريد الإلكتروني +AddNewNotification=اشترك في إشعار تلقائي جديد بالبريد الإلكتروني (الهدف / الحدث) +ListOfActiveNotifications=قائمة بجميع الاشتراكات النشطة (الأهداف / الأحداث) للإخطار التلقائي بالبريد الإلكتروني +ListOfNotificationsDone=قائمة بجميع إخطارات البريد الإلكتروني التلقائية المرسلة MailSendSetupIs=وقد تم تكوين إرسال البريد الإلكتروني الإعداد ل'٪ ق'. هذا الوضع لا يمكن أن تستخدم لإرسال إرساله عبر البريد الإلكتروني الشامل. MailSendSetupIs2=يجب عليك أولا الذهاب، مع حساب مشرف، في القائمة٪ sHome - إعداد - رسائل البريد الإلكتروني٪ s إلى تغيير المعلمة '٪ ق' لاستخدام وضع '٪ ق'. مع هذا الوضع، يمكنك إدخال الإعداد خادم SMTP المقدمة من قبل موفر خدمة الإنترنت واستخدام قداس ميزة البريد الإلكتروني. MailSendSetupIs3=إذا كان لديك أي أسئلة حول كيفية إعداد ملقم SMTP الخاص بك، يمكنك أن تطلب إلى٪ s. @@ -142,39 +142,40 @@ NbOfTargetedContacts=العدد الحالي من رسائل البريد الإ UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other MailAdvTargetRecipients=Recipients (advanced selection) -AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target -AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima%% will target all jean, joe, start with jim but not jimo and not everything that starts with jima +AdvTgtTitle=املأ حقول الإدخال للتحديد المسبق للأطراف الثالثة أو جهات الاتصال / العناوين المراد استهدافها +AdvTgtSearchTextHelp=استخدم %% كأحرف بدل. على سبيل المثال للعثور على كل العناصر مثل jean، joe، jim ، يمكنك إدخال j%% ، يمكنك أيضًا استخدام ؛ كفاصل للقيمة والاستخدام! باستثناء هذه القيمة. على سبيل المثال jean؛ joe؛ jim%%؛! jimo؛! jima%% سيستهدف كل jean ، joe ، ابدأ بـ jim ولكن ليس jimo وليس كل شيء يبدأ بـ jima AdvTgtSearchIntHelp=Use interval to select int or float value AdvTgtMinVal=Minimum value AdvTgtMaxVal=Maximum value AdvTgtSearchDtHelp=Use interval to select date value AdvTgtStartDt=Start dt. AdvTgtEndDt=End dt. -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third-party email or just contact email +AdvTgtTypeOfIncudeHelp=الهدف البريد الإلكتروني للطرف الثالث والبريد الإلكتروني لجهة اتصال الطرف الثالث ، أو البريد الإلكتروني لجهة خارجية فقط أو مجرد الاتصال بالبريد الإلكتروني AdvTgtTypeOfIncude=Type of targeted email AdvTgtContactHelp=Use only if you target contact into "Type of targeted email" AddAll=Add all RemoveAll=Remove all ItemsCount=Item(s) AdvTgtNameTemplate=Filter name -AdvTgtAddContact=Add emails according to criteria +AdvTgtAddContact=أضف رسائل البريد الإلكتروني وفقًا للمعايير AdvTgtLoadFilter=Load filter AdvTgtDeleteFilter=Delete filter AdvTgtSaveFilter=Save filter AdvTgtCreateFilter=Create filter AdvTgtOrCreateNewFilter=Name of new filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties -OutGoingEmailSetup=Outgoing emails -InGoingEmailSetup=Incoming emails -OutGoingEmailSetupForEmailing=Outgoing emails (for module %s) -DefaultOutgoingEmailSetup=Same configuration than the global Outgoing email setup +NoContactWithCategoryFound=لم يتم العثور على فئة مرتبطة ببعض جهات الاتصال / العناوين +NoContactLinkedToThirdpartieWithCategoryFound=لم يتم العثور على فئة مرتبطة ببعض الأطراف الثالثة +OutGoingEmailSetup=رسائل البريد الإلكتروني الصادرة +InGoingEmailSetup=رسائل البريد الإلكتروني الواردة +OutGoingEmailSetupForEmailing=رسائل البريد الإلكتروني الصادرة (للوحدة النمطية %s) +DefaultOutgoingEmailSetup=نفس التكوين من إعداد البريد الإلكتروني الصادر العام Information=معلومات -ContactsWithThirdpartyFilter=Contacts with third-party filter -Unanswered=Unanswered +ContactsWithThirdpartyFilter=جهات الاتصال مع مرشح طرف ثالث +Unanswered=لم يتم الرد عليها Answered=محلول -IsNotAnAnswer=Is not answer (initial email) -IsAnAnswer=Is an answer of an initial email -RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact -DefaultStatusEmptyMandatory=Empty but mandatory +IsNotAnAnswer=ليس إجابة (البريد الإلكتروني الأولي) +IsAnAnswer=هي إجابة رسالة بريد إلكتروني أولية +RecordCreatedByEmailCollector=السجل الذي تم إنشاؤه بواسطة مُجمع البريد الإلكتروني %s من البريد الإلكتروني %s +DefaultBlacklistMailingStatus=القيمة الافتراضية للحقل "%s" عند تكوين جهة اتصال جديدة +DefaultStatusEmptyMandatory=فارغ ولكنه إلزامي +WarningLimitSendByDay=تحذير: إعداد أو عقد المثيل الخاص بك يحد من عدد رسائل البريد الإلكتروني يوميًا إلى %s . قد تؤدي محاولة إرسال المزيد إلى إبطاء المثيل أو تعليقه. يرجى الاتصال بالدعم الخاص بك إذا كنت بحاجة إلى حصة أعلى. diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index 274db74a867..2d93cc6fedf 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=rtl +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=لا يوجد قالب متاح لهذا النوع من ال AvailableVariables=متغيرات الاستبدال المتاحة NoTranslation=لا يوجد ترجمة Translation=الترجمة +Translations=Translations CurrentTimeZone=حسب توقيت خادم البي إتش بي EmptySearchString=أدخل معايير بحث غير فارغة EnterADateCriteria=أدخل معايير التاريخ @@ -67,7 +74,7 @@ ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يتم تحديد معدل ErrorNoSocialContributionForSellerCountry=خطأ ، لم يتم تحديد نوع الضرائب الاجتماعية | المالية للبلد "%s". ErrorFailedToSaveFile=خطأ، فشل في حفظ الملف. ErrorCannotAddThisParentWarehouse=أنت تحاول إضافة مستودع رئيسي هو بالفعل تابع لمستودع موجود -FieldCannotBeNegative=Field "%s" cannot be negative +FieldCannotBeNegative=لا يمكن أن يكون الحقل "%s" سالبًا MaxNbOfRecordPerPage=عدد السجلات الاعلى في الصفحة الواحدة NotAuthorized=غير مصرح لك ان تفعل ذلك. SetDate=تحديد التاريخ @@ -88,7 +95,7 @@ FileWasNotUploaded=تم تحديد ملف للإرفاق ولكن لم يتم ت NbOfEntries=عدد الإدخالات GoToWikiHelpPage=قراءة التعليمات عبر الإنترنت (يلزم الاتصال بالإنترنت) GoToHelpPage=قراءة المساعدة -DedicatedPageAvailable=Dedicated help page related to your current screen +DedicatedPageAvailable=صفحة مساعدة مخصصة تتعلق بشاشتك الحالية HomePage=الصفحة الرئيسية RecordSaved=تم حفظ سجل RecordDeleted=سجل محذوف @@ -115,7 +122,7 @@ ReturnCodeLastAccessInError=إرجاع الكود لأحدث خطأ في طلب InformationLastAccessInError=معلومات عن خطأ طلب الوصول إلى قاعدة البيانات الأخيرة DolibarrHasDetectedError=Dolibarr اكتشف خطأ تقني YouCanSetOptionDolibarrMainProdToZero=يمكنك قراءة ملف السجل أو تعيين الخيار $ dolibarr_main_prod إلى "0" في (config file) للحصول على مزيد من المعلومات. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +InformationToHelpDiagnose=يمكن أن تكون هذه المعلومات مفيدة لأغراض التشخيص (يمكنك تعيين الخيار $ dolibarr_main_prod على "1" لإخفاء المعلومات الحساسة) MoreInformation=المزيد من المعلومات TechnicalInformation=المعلومات التقنية TechnicalID=ID الفني @@ -181,7 +188,7 @@ SaveAndNew=حفظ وجديد TestConnection=اختبار الاتصال ToClone=استنساخ ConfirmCloneAsk=هل أنت متأكد أنك تريد استنساخ الكائن %s ؟ -ConfirmClone=Choose the data you want to clone: +ConfirmClone=اختر البيانات التي تريد نسخها: NoCloneOptionsSpecified=لا توجد بيانات لاستنساخ محددة. Of=من Go=اذهب @@ -199,6 +206,7 @@ Valid=صالح Approve=موافق Disapprove=رفض ReOpen=إعادة فتح +OpenVerb=مفتوح Upload=Upload ToLink=حلقة الوصل Select=اختار @@ -212,11 +220,11 @@ User=المستعمل Users=المستخدمين Group=مجموعة Groups=المجموعات -UserGroup=User group -UserGroups=User groups +UserGroup=مجموعة المستخدمين +UserGroups=مجموعات الاعضاء NoUserGroupDefined=لم يتم تحديد مجموعة مستخدمين Password=كلمة المرور -PasswordRetype=أعد كتابة كلمة المرور +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=لاحظ أنه تم تعطيل الكثير من الميزات | الوحدات في هذا العرض التوضيحي. Name=اسم NameSlashCompany=الاسم | الشركة @@ -244,12 +252,13 @@ Designation=الوصف DescriptionOfLine=وصف البند DateOfLine=تاريخ البند DurationOfLine=مدة البند +ParentLine=معرف خط الأصل Model=قالب المستند DefaultModel=قالب المستند الافتراضي Action=حدث About=حول Number=عدد -NumberByMonth=Total reports by month +NumberByMonth=إجمالي التقارير حسب الشهر AmountByMonth=المبلغ بالشهر Numero=عدد Limit=الحد @@ -344,8 +353,8 @@ KiloBytes=كيلو بايت MegaBytes=ميغابايت GigaBytes=غيغا بايت TeraBytes=تيرابايت -UserAuthor=Ceated by -UserModif=Updated by +UserAuthor=تم الإنشاء بواسطة +UserModif=تم التحديث بواسطة b=بايت Kb=كيلوبايت Mb=ميغابايت @@ -433,7 +442,7 @@ LT1IN=CGST LT2IN=SGST LT1GC=Additionnal cents VATRate=معدل الضريبة -RateOfTaxN=Rate of tax %s +RateOfTaxN=معدل الضريبة %s VATCode=كود معدل الضريبة VATNPR=معدل ضريبة NPR DefaultTaxRate=معدل الضريبة الافتراضي @@ -480,6 +489,7 @@ ActionsOnContact=الأحداث لهذا الاتصال او العنوان ActionsOnContract=أحداث هذا العقد ActionsOnMember=الأحداث عن هذا العضو ActionsOnProduct=أحداث حول هذا المنتج +ActionsOnAsset=Events for this fixed asset NActionsLate=%s متأخر ToDo=للعمل Completed=مكتمل @@ -517,6 +527,7 @@ or=أو Other=آخر Others=آخرون OtherInformations=معلومات أخرى +Workflow=سير العمل Quantity=كمية Qty=الكمية ChangedBy=تغيير من قبل @@ -619,6 +630,7 @@ MonthVeryShort11=11 MonthVeryShort12=12 AttachedFiles=الملفات والمستندات المرفقة JoinMainDoc=ضم إلى المستند الرئيسي +JoinMainDocOrLastGenerated=أرسل المستند الرئيسي أو آخر مستند تم إنشاؤه إذا لم يتم العثور عليه DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=ميزة معطلة MoveBox=نقل البريمج Offered=معروض NotEnoughPermissions=ليس لديك إذن بهذا الإجراء +UserNotInHierachy=هذا الإجراء محجوز لمشرفي هذا المستخدم SessionName=اسم الجلسة Method=الطريقة Receive=استقبال @@ -733,7 +746,7 @@ MenuMembers=أعضاء MenuAgendaGoogle=أجندة غوغل MenuTaxesAndSpecialExpenses=الضرائب | مصاريف خاصة ThisLimitIsDefinedInSetup=حدود دوليبار (Menu home-setup-security): %s كيلوبايت ، حد PHP: %s كيلوبايت -ThisLimitIsDefinedInSetupAt=Dolibarr limit (Menu %s): %s Kb, PHP limit (Param %s): %s Kb +ThisLimitIsDefinedInSetupAt=حد Dolibarr (القائمة %s): %s كيلوبايت ، حد PHP (Param %s): %s كيلوبايت NoFileFound=لم يتم رفع مستند CurrentUserLanguage=اللغة الحالية CurrentTheme=الواجهة الحالية @@ -798,6 +811,7 @@ URLPhoto=عنوان URL للصورة | الشعار SetLinkToAnotherThirdParty=ربط بطرف ثالث آخر LinkTo=ربط مع او بـ LinkToProposal=ربط مع العرض +LinkToExpedition= Link to expedition LinkToOrder=ربط مع الامر LinkToInvoice=ربط مع الفاتورة LinkToTemplateInvoice=ربط مع قالب الفاتورة @@ -807,7 +821,7 @@ LinkToSupplierInvoice=ربط مع فاتورة المورد LinkToContract=ربط مع العقد LinkToIntervention=ربط مع التداخل LinkToTicket=ربط مع التذكرة -LinkToMo=Link to Mo +LinkToMo=رابط إلى Mo CreateDraft=إنشاء مسودة SetToDraft=العودة إلى المسودة ClickToEdit=انقر للتحرير @@ -851,7 +865,7 @@ XMoreLines=%s بند (بنود) مخفي ShowMoreLines=عرض المزيد | أقل من البنود PublicUrl=URL العام AddBox=إضافة مربع -SelectElementAndClick=Select an element and click on %s +SelectElementAndClick=حدد عنصرًا وانقر فوق %s PrintFile=طباعة الملف %s ShowTransaction=عرض الإدخال في الحساب المصرفي ShowIntervention=عرض التدخل @@ -862,8 +876,8 @@ Denied=مرفوض ListOf=قائمة %s ListOfTemplates=قائمة القوالب Gender=جنس -Genderman=Male -Genderwoman=Female +Genderman=ذكر +Genderwoman=أنثى Genderother=الآخر ViewList=عرض القائمة ViewGantt=عرض Gantt @@ -909,13 +923,14 @@ ViewFlatList=عرض قائمة مسطحة ViewAccountList=عرض دفتر الأستاذ ViewSubAccountList=عرض دفتر الأستاذ الفرعي RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at https://transifex.com/projects/p/dolibarr/ to add your improvements. +SomeTranslationAreUncomplete=قد تكون بعض اللغات المعروضة مترجمة جزئيًا فقط أو قد تحتوي على أخطاء. الرجاء المساعدة في تصحيح لغتك بالتسجيل في https://transifex.com/projects/p/dolibarr/ لإضافة تحسيناتك. DirectDownloadLink=رابط التحميل العام PublicDownloadLinkDesc=فقط مطلوب الرابط لتنزيل الملف DirectDownloadInternalLink=رابط التحميل الخاص PrivateDownloadLinkDesc=تحتاج إلى تسجيل الدخول وتحتاج إلى أذونات لعرض الملف أو تنزيله Download=تحميل DownloadDocument=تحميل مستند +DownloadSignedDocument=Download signed document ActualizeCurrency=تحديث سعر العملة Fiscalyear=السنة المالية ModuleBuilder=الوحدة النمطية ومنشئ التطبيق @@ -1041,6 +1056,7 @@ SearchIntoContracts=عقود SearchIntoCustomerShipments=شحنات العملاء SearchIntoExpenseReports=تقارير المصاريف SearchIntoLeaves=الاجازات +SearchIntoKM=Knowledge base SearchIntoTickets=تذاكر SearchIntoCustomerPayments=مدفوعات العميل SearchIntoVendorPayments=مدفوعات الموردين @@ -1078,7 +1094,7 @@ ValidFrom=صالح من ValidUntil=صالح حتى NoRecordedUsers=لايوجد مستخدمين ToClose=لغلق -ToRefuse=To refuse +ToRefuse=رفض ToProcess=لعملية ToApprove=للموافقة GlobalOpenedElemView=نظرة شاملة @@ -1132,35 +1148,65 @@ EventReminder=تذكير بالحدث UpdateForAllLines=تحديث لجميع البنود OnHold=في الانتظار Civility=Civility -AffectTag=Affect Tag -CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor +CreateExternalUser=إنشاء مستخدم خارجي +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=لا يوجد ملصق لنوع السجل +Rate=معدل +SupervisorNotFound=Supervisor not found CopiedToClipboard=تم النسخ الى الحافظة InformationOnLinkToContract=هذا المبلغ هو مجموع بنود العقد . دون مراعاة قيمة الزمن -ConfirmCancel=Are you sure you want to cancel +ConfirmCancel=هل أنت متأكد أنك تريد إلغاء EmailMsgID=Email MsgID -SetToEnabled=Set to enabled -SetToDisabled=Set to disabled -ConfirmMassEnabling=mass enabling confirmation -ConfirmMassEnablingQuestion=Are you sure you want to enable the %s selected record(s)? -ConfirmMassDisabling=mass disabling confirmation -ConfirmMassDisablingQuestion=Are you sure you want to disable the %s selected record(s)? -RecordsEnabled=%s record(s) enabled -RecordsDisabled=%s record(s) disabled -RecordEnabled=Record enabled -RecordDisabled=Record disabled -Forthcoming=Forthcoming -Currently=Currently -ConfirmMassLeaveApprovalQuestion=Are you sure you want to approve the %s selected record(s)? -ConfirmMassLeaveApproval=Mass leave approval confirmation -RecordAproved=Record approved -RecordsApproved=%s Record(s) approved -Properties=Properties -hasBeenValidated=%s has been validated +EmailDate=Email date +SetToStatus=Set to status %s +SetToEnabled=تعيين على تمكين +SetToDisabled=تعيين إلى معطل +ConfirmMassEnabling=تأكيد التمكين الشامل +ConfirmMassEnablingQuestion=هل أنت متأكد من أنك تريد تمكين السجل (السجلات) المحدد %s؟ +ConfirmMassDisabling=تأكيد التعطيل الشامل +ConfirmMassDisablingQuestion=هل أنت متأكد من أنك تريد تعطيل السجل (السجلات) المحدد %s؟ +RecordsEnabled=تم تمكين سجل (سجلات) %s +RecordsDisabled=سجل (سجلات) %s معطل +RecordEnabled=تم تمكين التسجيل +RecordDisabled=سجل معطل +Forthcoming=قادم، صريح، يظهر +Currently=حالياً +ConfirmMassLeaveApprovalQuestion=هل أنت متأكد من أنك تريد الموافقة على السجل (السجلات) المحددة %s؟ +ConfirmMassLeaveApproval=تأكيد الموافقة على الإجازة الجماعية +RecordAproved=تمت الموافقة على السجل +RecordsApproved=%s تمت الموافقة على السجلات +Properties=الخصائص +hasBeenValidated=تم التحقق من صحة %s ClientTZ=المنطقة الزمنية للعميل (المستخدم) -NotClosedYet=Not yet closed -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +NotClosedYet=لم تغلق بعد +ClearSignature=إعادة تعيين التوقيع +CanceledHidden=إلغاء المخفية +CanceledShown=أظهرت ملغاة +Terminate=تعطيل +Terminated=تم إنهاؤه +AddLineOnPosition=أضف سطرًا في الموضع (في النهاية إذا كان فارغًا) +ConfirmAllocateCommercial=تعيين تأكيد مندوب المبيعات +ConfirmAllocateCommercialQuestion=هل أنت متأكد من أنك تريد تعيين السجل (السجلات) المحددة %s؟ +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=رسالتك +YourMessageHasBeenReceived=وقد وردت الرسالة. سنقوم بالرد أو الاتصال بك في أقرب وقت ممكن. +UrlToCheck=عنوان Url المراد التحقق منه +Automation=أتمتة +CreatedByEmailCollector=تم إنشاؤها بواسطة جامع البريد الإلكتروني +CreatedByPublicPortal=تم إنشاؤه من بوابة عامة +UserAgent=User Agent +InternalUser=مستخدم داخلي +ExternalUser=مستخدم خارجي diff --git a/htdocs/langs/ar_SA/margins.lang b/htdocs/langs/ar_SA/margins.lang index 7195b871c51..43d633f2d9d 100644 --- a/htdocs/langs/ar_SA/margins.lang +++ b/htdocs/langs/ar_SA/margins.lang @@ -22,7 +22,7 @@ ProductService=المنتج أو الخدمة AllProducts=جميع المنتجات والخدمات ChooseProduct/Service=اختيار المنتج أو الخدمة ForceBuyingPriceIfNull=فرض سعر شراء / تكلفة إلى سعر البيع إذا لم يتم تحديدها -ForceBuyingPriceIfNullDetails=If buying/cost price not provided when we add a new line, and this option is "ON", the margin will be 0%% on the new line (buying/cost price = selling price). If this option is "OFF" (recommended), margin will be equal to the value suggested by default (and may be 100%% if no default value can be found). +ForceBuyingPriceIfNullDetails=إذا لم يتم توفير سعر الشراء / التكلفة عند إضافة سطر جديد ، وكان هذا الخيار "تشغيل" ، فسيكون الهامش 0%% في السطر الجديد (سعر الشراء / سعر التكلفة = سعر البيع). إذا كان هذا الخيار "إيقاف التشغيل" (مستحسن) ، فسيكون الهامش مساويًا للقيمة المقترحة افتراضيًا (وقد يكون 100%% إذا لم يتم العثور على قيمة افتراضية). MARGIN_METHODE_FOR_DISCOUNT=طريقة الهامش للخصومات العالمية UseDiscountAsProduct=كمنتج UseDiscountAsService=كخدمة @@ -32,14 +32,14 @@ MARGIN_TYPE=سعر الشراء / التكلفة المقترحة افتراضي MargeType1=الهامش على سعر المورد الافضل MargeType2=الهامش على متوسط ​​السعر المرجح (واب) MargeType3=هامش على سعر التكلفة -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
    * Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best vendor price if WAP not yet defined
    * Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best vendor price if WAP not yet defined +MarginTypeDesc=* الهامش على أفضل سعر شراء = سعر البيع - أفضل سعر للبائع المحدد في بطاقة المنتج
    * الهامش على متوسط السعر المرجح (WAP) = سعر البيع - متوسط السعر المرجح للمنتج (WAP) أو أفضل سعر للبائع إذا لم يتم تحديد WAP بعد
    * الهامش بسعر التكلفة = سعر البيع - سعر التكلفة المحدد على بطاقة المنتج أو WAP إذا لم يتم تحديد سعر التكلفة ، أو أفضل سعر للبائع إذا لم يتم تحديد WAP بعد CostPrice=سعر الكلفة UnitCharges=رسوم الوحدة Charges=الرسوم AgentContactType=نوع اتصال الوكيل التجاري -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per contact/address. Note that reading statistics on a contact is not reliable since in most cases the contact may not be defined explicitely on the invoices. +AgentContactTypeDetails=حدد نوع جهة الاتصال (المرتبطة بالفواتير) التي سيتم استخدامها لتقرير الهامش لكل جهة اتصال / عنوان. لاحظ أن قراءة الإحصائيات الخاصة بجهة اتصال لا يمكن الاعتماد عليها لأنه في معظم الحالات قد لا يتم تحديد جهة الاتصال بشكل واضح في الفواتير. rateMustBeNumeric=يجب أن يكون السعر قيمة رقمية markRateShouldBeLesserThan100=يجب أن يكون معدل العلامة أقل من 100 ShowMarginInfos=إظهار معلومات الهامش CheckMargins=تفاصيل الهوامش -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any dedicated sale representative and some third parties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). +MarginPerSaleRepresentativeWarning=يستخدم تقرير الهامش لكل مستخدم الرابط بين الأطراف الثالثة وممثلي البيع لحساب هامش كل مندوب بيع. نظرًا لأن بعض الأطراف الثالثة قد لا يكون لديها أي ممثل بيع مخصص وقد يتم ربط بعض الأطراف الثالثة بعدة مبالغ ، فقد لا يتم تضمين بعض المبالغ في هذا التقرير (إذا لم يكن هناك ممثل بيع) وقد يظهر البعض في سطور مختلفة (لكل مندوب بيع) . diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang index 0470a41fd96..e71475a85aa 100644 --- a/htdocs/langs/ar_SA/members.lang +++ b/htdocs/langs/ar_SA/members.lang @@ -6,8 +6,8 @@ Member=عضو Members=أعضاء ShowMember=وتظهر بطاقة عضو UserNotLinkedToMember=المستخدم لا ترتبط عضو -ThirdpartyNotLinkedToMember=Third party not linked to a member -MembersTickets=Membership address sheet +ThirdpartyNotLinkedToMember=طرف ثالث غير مرتبط بعضو +MembersTickets=ورقة عنوان العضوية FundationMembers=أعضاء المؤسسة ListOfValidatedPublicMembers=قائمة الأعضاء العامة المصادق ErrorThisMemberIsNotPublic=ليست عضوا في هذا العام @@ -15,27 +15,30 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=عضو آخر (الاسم : ٪ ق< ErrorUserPermissionAllowsToLinksToItselfOnly=لأسباب أمنية ، يجب أن تمنح أذونات لتحرير جميع المستخدمين لتكون قادرة على ربط عضو لمستخدم هذا ليس لك. SetLinkToUser=وصلة إلى مستخدم Dolibarr SetLinkToThirdParty=وصلة إلى طرف ثالث Dolibarr -MembersCards=Generation of cards for members +MemberCountersArePublic=Counters of valid members are public +MembersCards=توليد بطاقات للاعضاء MembersList=قائمة الأعضاء MembersListToValid=قائمة مشاريع أعضاء (ينبغي التأكد من صحة) MembersListValid=قائمة أعضاء صالحة -MembersListUpToDate=List of valid members with up-to-date contribution -MembersListNotUpToDate=List of valid members with out-of-date contribution -MembersListExcluded=List of excluded members -MembersListResiliated=List of terminated members +MembersListUpToDate=قائمة الأعضاء الصالحة مع مساهمات محدثة +MembersListNotUpToDate=قائمة الأعضاء الصالحين مع مساهمة منتهية الصلاحية +MembersListExcluded=قائمة الأعضاء المستبعدين +MembersListResiliated=قائمة الأعضاء المنتهية MembersListQualified=قائمة الأعضاء المؤهلين MenuMembersToValidate=أعضاء مشروع MenuMembersValidated=صادق أعضاء -MenuMembersExcluded=Excluded members -MenuMembersResiliated=Terminated members -MembersWithSubscriptionToReceive=Members with contribution to receive -MembersWithSubscriptionToReceiveShort=Contributions to receive -DateSubscription=Date of membership -DateEndSubscription=End date of membership -EndSubscription=End of membership -SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=عضو المعرف +MenuMembersExcluded=الأعضاء المستبعدين +MenuMembersResiliated=الأعضاء المنتهية +MembersWithSubscriptionToReceive=الأعضاء مع المساهمة لتلقي +MembersWithSubscriptionToReceiveShort=المساهمات لتلقي +DateSubscription=تاريخ العضوية +DateEndSubscription=تاريخ انتهاء العضوية +EndSubscription=انتهاء العضوية +SubscriptionId=معرف المساهمة +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=معرف العضو +MemberRef=عضو المرجع NewMember=عضو جديد MemberType=عضو نوع MemberTypeId=عضو نوع معرف @@ -43,110 +46,116 @@ MemberTypeLabel=عضو نوع العلامة MembersTypes=أعضاء أنواع MemberStatusDraft=مشروع (يجب التحقق من صحة) MemberStatusDraftShort=مسودة -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=التحقق من صحتها (في انتظار المساهمة) MemberStatusActiveShort=التحقق من صحة -MemberStatusActiveLate=Contribution expired +MemberStatusActiveLate=انتهت المساهمة MemberStatusActiveLateShort=انتهى MemberStatusPaid=الاكتتاب حتى الآن MemberStatusPaidShort=حتى الآن -MemberStatusExcluded=Excluded member -MemberStatusExcludedShort=Excluded -MemberStatusResiliated=Terminated member -MemberStatusResiliatedShort=Terminated +MemberStatusExcluded=عضو مستبعد +MemberStatusExcludedShort=مستبعد +MemberStatusResiliated=عضو منتهي +MemberStatusResiliatedShort=تم إنهاؤه MembersStatusToValid=أعضاء مشروع -MembersStatusExcluded=Excluded members -MembersStatusResiliated=Terminated members -MemberStatusNoSubscription=Validated (no contribution required) +MembersStatusExcluded=الأعضاء المستبعدين +MembersStatusResiliated=الأعضاء المنتهية +MemberStatusNoSubscription=مصدق عليه (لا توجد مساهمة مطلوبة) MemberStatusNoSubscriptionShort=التحقق من صحة -SubscriptionNotNeeded=No contribution required +SubscriptionNotNeeded=لا توجد مساهمة مطلوبة NewCotisation=مساهمة جديدة PaymentSubscription=دفع مساهمة جديدة SubscriptionEndDate=تاريخ انتهاء الاكتتاب MembersTypeSetup=أعضاء نوع الإعداد -MemberTypeModified=Member type modified -DeleteAMemberType=Delete a member type -ConfirmDeleteMemberType=Are you sure you want to delete this member type? -MemberTypeDeleted=Member type deleted -MemberTypeCanNotBeDeleted=Member type can not be deleted +MemberTypeModified=تم تعديل نوع العضو +DeleteAMemberType=احذف نوع العضو +ConfirmDeleteMemberType=هل أنت متأكد أنك تريد حذف هذا النوع من الأعضاء؟ +MemberTypeDeleted=تم حذف نوع العضو +MemberTypeCanNotBeDeleted=لا يمكن حذف نوع العضو NewSubscription=مساهمة جديدة NewSubscriptionDesc=هذا النموذج يسمح لك لتسجيل الاشتراك الخاص بك كعضو جديد من الأساس. إذا كنت ترغب في تجديد الاشتراك (إذا كان بالفعل عضوا)، يرجى الاتصال مؤسسة المجلس بدلا من %s البريد الإلكتروني. -Subscription=Contribution -Subscriptions=Contributions +Subscription=إسهام +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=مدة +GetMembershipButtonLabel=Join +Subscriptions=مساهمات SubscriptionLate=متأخر -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions -SendCardByMail=Send card by email +SubscriptionNotReceived=المساهمة لم يتم استلامها +ListOfSubscriptions=قائمة المساهمات +SendCardByMail=أرسل البطاقة عبر البريد الإلكتروني AddMember=إنشاء عضو NoTypeDefinedGoToSetup=لا يجوز لأي عضو في أنواع محددة. الذهاب إلى الإعداد -- أنواع الأعضاء NewMemberType=عضو جديد من نوع -WelcomeEMail=Welcome email -SubscriptionRequired=Contribution required +WelcomeEMail=ترحيب البريد الإلكتروني +SubscriptionRequired=المساهمة المطلوبة DeleteType=حذف VoteAllowed=يسمح التصويت -Physical=Individual -Moral=Corporation -MorAndPhy=Corporation and Individual -Reenable=Re-Enable -ExcludeMember=Exclude a member -Exclude=Exclude -ConfirmExcludeMember=Are you sure you want to exclude this member ? -ResiliateMember=Terminate a member -ConfirmResiliateMember=Are you sure you want to terminate this member? +Physical=الفرد +Moral=مؤسَّسة +MorAndPhy=شركة وفرد +Reenable=إعادة التمكين +ExcludeMember=استبعاد عضو +Exclude=استبعاد +ConfirmExcludeMember=هل أنت متأكد أنك تريد استبعاد هذا العضو؟ +ResiliateMember=إنهاء عضو +ConfirmResiliateMember=هل أنت متأكد أنك تريد إنهاء هذا العضو؟ DeleteMember=حذف عضو -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +ConfirmDeleteMember=هل أنت متأكد أنك تريد حذف هذا العضو (حذف العضو سيؤدي إلى حذف جميع مساهماته)؟ DeleteSubscription=الغاء الاشتراك -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteSubscription=هل أنت متأكد أنك تريد حذف هذه المساهمة؟ Filehtpasswd=htpasswd الملف ValidateMember=صحة عضوا -ConfirmValidateMember=Are you sure you want to validate this member? -FollowingLinksArePublic=The following links are open pages not protected by any Dolibarr permission. They are not formatted pages, provided as example to show how to list members database. +ConfirmValidateMember=هل أنت متأكد أنك تريد التحقق من صحة هذا العضو؟ +FollowingLinksArePublic=الروابط التالية هي صفحات مفتوحة غير محمية بأي إذن Dolibarr. وهي ليست صفحات منسقة ، وتقدم كمثال لإظهار كيفية سرد أعضاء قاعدة البيانات. PublicMemberList=عضو في لائحة عامة -BlankSubscriptionForm=Public self-registration form -BlankSubscriptionFormDesc=Dolibarr can provide you a public URL/website to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form may also be automatically provided. -EnablePublicSubscriptionForm=Enable the public website with self-subscription form -ForceMemberType=Force the member type -ExportDataset_member_1=Members and contributions +BlankSubscriptionForm=استمارة التسجيل الذاتي العامة +BlankSubscriptionFormDesc=يمكن أن يوفر لك Dolibarr عنوان URL / موقع ويب عام للسماح للزوار الخارجيين بطلب الاشتراك في المؤسسة. إذا تم تمكين وحدة دفع عبر الإنترنت ، فقد يتم أيضًا تقديم نموذج دفع تلقائيًا. +EnablePublicSubscriptionForm=تمكين الموقع العام من خلال نموذج الاشتراك الذاتي +ForceMemberType=فرض نوع العضو +ExportDataset_member_1=الأعضاء والمساهمات ImportDataset_member_1=أعضاء -LastMembersModified=Latest %s modified members -LastSubscriptionsModified=Latest %s modified contributions +LastMembersModified=آخر %s الأعضاء المعدلة +LastSubscriptionsModified=أحدث مساهمات %s المعدلة String=سلسلة Text=النص Int=Int DateAndTime=التاريخ والوقت PublicMemberCard=عضو بطاقة العامة -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +SubscriptionNotRecorded=المساهمة غير مسجلة +AddSubscription=إنشاء مساهمة +ShowSubscription=عرض المساهمة # Label of email templates -SendingAnEMailToMember=Sending information email to member -SendingEmailOnAutoSubscription=Sending email on auto registration -SendingEmailOnMemberValidation=Sending email on new member validation -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions -SendingEmailOnCancelation=Sending email on cancelation -SendingReminderActionComm=Sending reminder for agenda event +SendingAnEMailToMember=إرسال معلومات البريد الإلكتروني إلى العضو +SendingEmailOnAutoSubscription=إرسال بريد إلكتروني عند التسجيل التلقائي +SendingEmailOnMemberValidation=إرسال بريد إلكتروني عند التحقق من العضو الجديد +SendingEmailOnNewSubscription=إرسال بريد إلكتروني على مساهمة جديدة +SendingReminderForExpiredSubscription=إرسال تذكير للمساهمات منتهية الصلاحية +SendingEmailOnCancelation=إرسال بريد إلكتروني عند الإلغاء +SendingReminderActionComm=إرسال تذكير لحدث جدول الأعمال # Topic of email templates -YourMembershipRequestWasReceived=Your membership was received. -YourMembershipWasValidated=Your membership was validated -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder -YourMembershipWasCanceled=Your membership was canceled +YourMembershipRequestWasReceived=تم استلام عضويتك. +YourMembershipWasValidated=تم التحقق من صحة عضويتك +YourSubscriptionWasRecorded=تم تسجيل مساهمتك الجديدة +SubscriptionReminderEmail=تذكير بالمساهمة +YourMembershipWasCanceled=تم إلغاء عضويتك CardContent=مضمون البطاقة الخاصة بك عضوا # Text of email templates -ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    -ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    -ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    -ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    -DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest -DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Content of the notification email received in case of auto-inscription of a guest -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Email template to use to send email to a member on member validation -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Email template to use to send email to a member on new contribution recording -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Email template to use to send email reminder when contribution is about to expire -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Email template to use to send email to a member on member cancelation -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Email template to use to send email to a member on member exclusion -DescADHERENT_MAIL_FROM=Sender Email for automatic emails +ThisIsContentOfYourMembershipRequestWasReceived=نريد إخبارك بأنه قد تم استلام طلب العضوية الخاص بك.

    +ThisIsContentOfYourMembershipWasValidated=نود إعلامك بأنه تم التحقق من عضويتك بالمعلومات التالية:

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +ThisIsContentOfSubscriptionReminderEmail=نريد إخبارك بأن اشتراكك على وشك الانتهاء أو انتهى بالفعل (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). نأمل أن تقوم بتجديده.

    +ThisIsContentOfYourCard=هذا ملخص للمعلومات التي لدينا عنك. يرجى الاتصال بنا إذا كان أي شيء غير صحيح.

    +DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=موضوع إشعار البريد الإلكتروني المستلم في حالة التسجيل التلقائي للضيف +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=محتوى إشعار البريد الإلكتروني المستلم في حالة التسجيل التلقائي للضيف +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=قالب بريد إلكتروني لاستخدامه لإرسال بريد إلكتروني إلى عضو في التسجيل التلقائي للعضو +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=قالب بريد إلكتروني لاستخدامه لإرسال بريد إلكتروني إلى عضو عند التحقق من صحة العضو +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=نموذج بريد إلكتروني لاستخدامه لإرسال بريد إلكتروني إلى عضو في تسجيل مساهمة جديدة +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=نموذج بريد إلكتروني لاستخدامه لإرسال تذكير بالبريد الإلكتروني عندما توشك المساهمة على الانتهاء +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=قالب بريد إلكتروني لاستخدامه لإرسال بريد إلكتروني إلى عضو عند إلغاء العضو +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=قالب بريد إلكتروني لاستخدامه لإرسال بريد إلكتروني إلى عضو عند استبعاد الأعضاء +DescADHERENT_MAIL_FROM=البريد الإلكتروني المرسل لرسائل البريد الإلكتروني التلقائية DescADHERENT_ETIQUETTE_TYPE=علامات الشكل DescADHERENT_ETIQUETTE_TEXT=النص المطبوع على أوراق عنوان الأعضاء DescADHERENT_CARD_TYPE=شكل بطاقات صفحة @@ -156,65 +165,70 @@ DescADHERENT_CARD_TEXT_RIGHT=النص المطبوع على بطاقات الأ DescADHERENT_CARD_FOOTER_TEXT=نص مطبوع على أسفل بطاقات الأعضاء ShowTypeCard=وتبين من نوع '٪ ق' HTPasswordExport=الملف htpassword جيل -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +NoThirdPartyAssociatedToMember=لا يوجد طرف ثالث مرتبط بهذا العضو +MembersAndSubscriptions=الأعضاء والمساهمات MoreActions=تكميلية العمل على تسجيل -MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionsOnSubscription=يُقترح إجراء تكميلي بشكل افتراضي عند تسجيل مساهمة ، ويتم إجراؤه تلقائيًا عند الدفع عبر الإنترنت للمساهمة +MoreActionBankDirect=إنشاء قيد مباشر في الحساب المصرفي +MoreActionBankViaInvoice=قم بإنشاء فاتورة ودفع على حساب بنكي MoreActionInvoiceOnly=إنشاء فاتورة مع دفع أي مبلغ -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=توليد بطاقات العمل أو أوراق العناوين LinkToGeneratedPagesDesc=هذه الشاشة تسمح لك لإنشاء ملفات الشعبي مع بطاقات العمل لجميع أعضاء أو عضو معين. DocForAllMembersCards=إنشاء بطاقات العمل لجميع أعضاء (تنسيق الإعداد للإخراج في الواقع : %s) DocForOneMemberCards=إنشاء بطاقات العمل لعضو معين (تنسيق الإعداد للإخراج في الواقع : %s) DocForLabels=أوراق عنوان انتج (تنسيق الإعداد للإخراج فعلا : %s) -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution -LastMemberType=Last Member type +SubscriptionPayment=دفع الاشتراكات +LastSubscriptionDate=تاريخ آخر دفعة مساهمة +LastSubscriptionAmount=مقدار أحدث مساهمة +LastMemberType=نوع العضو الأخير MembersStatisticsByCountries=أعضاء إحصاءات حسب البلد MembersStatisticsByState=أعضاء إحصاءات الولاية / المقاطعة MembersStatisticsByTown=أعضاء إحصاءات بلدة MembersStatisticsByRegion=إحصائيات الأعضاء حسب المنطقة -NbOfMembers=Total number of members -NbOfActiveMembers=Total number of current active members +NbOfMembers=إجمالي عدد الأعضاء +NbOfActiveMembers=العدد الإجمالي للأعضاء النشطين الحاليين NoValidatedMemberYet=العثور على أي أعضاء التحقق من صحة -MembersByCountryDesc=This screen shows you the statistics of members by countries. Graphs and charts depend on the availability of the Google online graph service as well as on the availability of a working internet connection. -MembersByStateDesc=This screen show you statistics of members by state/provinces/canton. -MembersByTownDesc=This screen show you statistics of members by town. -MembersByNature=This screen show you statistics of members by nature. -MembersByRegion=This screen show you statistics of members by region. +MembersByCountryDesc=تظهر لك هذه الشاشة إحصائيات الأعضاء حسب الدول. تعتمد الرسوم البيانية والمخططات على مدى توفر خدمة الرسم البياني عبر الإنترنت من Google بالإضافة إلى توفر اتصال إنترنت فعال. +MembersByStateDesc=تظهر لك هذه الشاشة إحصائيات الأعضاء حسب الولاية / المقاطعات / الكانتون. +MembersByTownDesc=تظهر لك هذه الشاشة إحصائيات الأعضاء حسب المدينة. +MembersByNature=تظهر لك هذه الشاشة إحصائيات الأعضاء حسب الطبيعة. +MembersByRegion=تظهر لك هذه الشاشة إحصائيات الأعضاء حسب المنطقة. MembersStatisticsDesc=اختيار الإحصاءات التي ترغب في قراءتها ... MenuMembersStats=إحصائيات -LastMemberDate=Latest membership date -LatestSubscriptionDate=Latest contribution date -MemberNature=Nature of the member -MembersNature=Nature of the members -Public=Information is public +LastMemberDate=آخر تاريخ للعضوية +LatestSubscriptionDate=تاريخ آخر مساهمة +MemberNature=طبيعة العضو +MembersNature=طبيعة الأعضاء +Public=المعلومات عامة NewMemberbyWeb=وأضاف عضو جديد. تنتظر الموافقة NewMemberForm=الأعضاء الجدد في شكل -SubscriptionsStatistics=Contributions statistics -NbOfSubscriptions=Number of contributions -AmountOfSubscriptions=Amount collected from contributions +SubscriptionsStatistics=إحصاءات المساهمات +NbOfSubscriptions=عدد المساهمات +AmountOfSubscriptions=المبلغ المحصل من المساهمات TurnoverOrBudget=دوران (لشركة) أو الميزانية (على أساس) -DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=القفز على صفحة الدفع عبر الانترنت المتكاملة -ByProperties=By nature -MembersStatisticsByProperties=Members statistics by nature -VATToUseForSubscriptions=VAT rate to use for contributionss -NoVatOnSubscription=No VAT for contributions -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for contribution line into invoice: %s -NameOrCompany=Name or company -SubscriptionRecorded=Contribution recorded -NoEmailSentToMember=No email sent to member -EmailSentToMember=Email sent to member at %s -SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired contributions -SendReminderForExpiredSubscription=Send reminder by email to members when contribution is about to expire (parameter is number of days before end of membership to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5') -MembershipPaid=Membership paid for current period (until %s) -YouMayFindYourInvoiceInThisEmail=You may find your invoice attached to this email -XMembersClosed=%s member(s) closed -XExternalUserCreated=%s external user(s) created -ForceMemberNature=Force member nature (Individual or Corporation) -CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. -CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +DefaultAmount=المبلغ الافتراضي للمساهمة +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page +ByProperties=بالطبيعة +MembersStatisticsByProperties=إحصائيات الأعضاء حسب الطبيعة +VATToUseForSubscriptions=معدل ضريبة القيمة المضافة لاستخدامه في المساهمات +NoVatOnSubscription=لا ضريبة القيمة المضافة للمساهمات +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=المنتج المستخدم لبند المساهمة في الفاتورة: %s +NameOrCompany=الإسم أو الشركة +SubscriptionRecorded=تم تسجيل المساهمة +NoEmailSentToMember=لم يتم إرسال بريد إلكتروني للعضو +EmailSentToMember=تم إرسال البريد الإلكتروني إلى العضو على %s +SendReminderForExpiredSubscriptionTitle=إرسال تذكير عبر البريد الإلكتروني للمساهمات منتهية الصلاحية +SendReminderForExpiredSubscription=أرسل تذكيرًا عبر البريد الإلكتروني إلى الأعضاء عندما توشك المساهمة على الانتهاء (المعلمة هي عدد الأيام قبل نهاية العضوية لإرسال التذكير. يمكن أن تكون قائمة بالأيام مفصولة بفاصلة منقوطة ، على سبيل المثال '10 ؛ 5 ؛ 0 ؛ -5 ") +MembershipPaid=العضوية مدفوعة للفترة الحالية (حتى %s) +YouMayFindYourInvoiceInThisEmail=قد تجد فاتورتك مرفقة بهذا البريد الإلكتروني +XMembersClosed=%s من الأعضاء مغلقين +XExternalUserCreated=تم إنشاء مستخدم (مستخدمين) خارجيين %s +ForceMemberNature=طبيعة عضو القوة (فرد أو شركة) +CreateDolibarrLoginDesc=يسمح إنشاء تسجيل دخول مستخدم للأعضاء بالاتصال بالتطبيق. اعتمادًا على التراخيص الممنوحة ، سيكونون قادرين ، على سبيل المثال ، على الرجوع إلى ملفهم أو تعديله بأنفسهم. +CreateDolibarrThirdPartyDesc=الطرف الثالث هو الكيان القانوني الذي سيتم استخدامه في الفاتورة إذا قررت إنشاء فاتورة لكل مساهمة. ستتمكن من إنشائه لاحقًا أثناء عملية تسجيل المساهمة. +MemberFirstname=الاسم الأول للعضو +MemberLastname=اسم العائلة للعضو +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/ar_SA/modulebuilder.lang b/htdocs/langs/ar_SA/modulebuilder.lang index 6c8ca4c75b9..8458e8a5153 100644 --- a/htdocs/langs/ar_SA/modulebuilder.lang +++ b/htdocs/langs/ar_SA/modulebuilder.lang @@ -1,147 +1,156 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. -EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s -ModuleBuilderDesc3=Generated/editable modules found: %s -ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory -NewModule=New module -NewObjectInModulebuilder=New object -ModuleKey=Module key -ObjectKey=Object key -ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object '%s' initialized -FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) -ModuleBuilderDescdescription=Enter here all general information that describe your module. -ModuleBuilderDescspecifications=You can enter here a detailed description of the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommended to use Asciidoc format (comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. -ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. -ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. -ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDesc=يجب استخدام هذه الأداة فقط من قبل المستخدمين أو المطورين ذوي الخبرة. يوفر أدوات مساعدة لبناء أو تعديل الوحدة الخاصة بك. وثائق التطوير اليدوي البديل هنا . +EnterNameOfModuleDesc=أدخل اسم الوحدة / التطبيق لإنشائه بدون مسافات. استخدم الأحرف الكبيرة لفصل الكلمات (على سبيل المثال: MyModule ، EcommerceForShop ، SyncWithMySystem ...) +EnterNameOfObjectDesc=أدخل اسم الكائن المراد إنشاؤه بدون مسافات. استخدم الأحرف الكبيرة لفصل الكلمات (على سبيل المثال: MyObject ، الطالب ، المعلم ...). سيتم إنشاء ملف فئة CRUD ، ولكن أيضًا ملف API ، وصفحات لسرد / إضافة / تحرير / حذف كائن وملفات SQL. +EnterNameOfDictionaryDesc=أدخل اسم القاموس لإنشائه بدون مسافات. استخدم الأحرف الكبيرة لفصل الكلمات (على سبيل المثال: MyDico ...). سيتم إنشاء ملف الفصل ، وكذلك ملف SQL. +ModuleBuilderDesc2=المسار الذي يتم فيه إنشاء / تحرير الوحدات (الدليل الأول للوحدات الخارجية المحددة في %s): %s +ModuleBuilderDesc3=تم العثور على الوحدات النمطية / القابلة للتحرير: %s +ModuleBuilderDesc4=تم اكتشاف وحدة على أنها "قابلة للتحرير" عندما يكون الملف %s موجودًا في جذر دليل الوحدة +NewModule=وحدة جديدة +NewObjectInModulebuilder=كائن جديد +NewDictionary=قاموس جديد +ModuleKey=مفتاح الوحدة +ObjectKey=مفتاح الكائن +DicKey=مفتاح القاموس +ModuleInitialized=الوحدة النمطية مهيأة +FilesForObjectInitialized=تمت تهيئة ملفات الكائن الجديد '%s' +FilesForObjectUpdated=تم تحديث ملفات الكائن '%s' (ملفات .sql وملف .class.php) +ModuleBuilderDescdescription=أدخل هنا جميع المعلومات العامة التي تصف الوحدة الخاصة بك. +ModuleBuilderDescspecifications=يمكنك هنا إدخال وصف تفصيلي لمواصفات وحدتك التي لم يتم تنظيمها بالفعل في علامات تبويب أخرى. لذلك يمكنك الوصول بسهولة إلى جميع القواعد التي يجب تطويرها. سيتم أيضًا تضمين محتوى النص هذا في الوثائق التي تم إنشاؤها (انظر علامة التبويب الأخيرة). يمكنك استخدام تنسيق Markdown ، لكن يوصى باستخدام تنسيق Asciidoc (مقارنة بين .md و .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=حدد هنا العناصر التي تريد إدارتها باستخدام الوحدة النمطية الخاصة بك. فئة CRUD DAO ، ملفات SQL ، صفحة لسرد سجل الكائنات ، لإنشاء / تحرير / عرض سجل وسيتم إنشاء API. +ModuleBuilderDescmenus=علامة التبويب هذه مخصصة لتعريف إدخالات القائمة التي توفرها الوحدة الخاصة بك. +ModuleBuilderDescpermissions=علامة التبويب هذه مخصصة لتحديد الأذونات الجديدة التي تريد توفيرها لوحدتك. +ModuleBuilderDesctriggers=هذه هي وجهة نظر المشغلات التي توفرها الوحدة الخاصة بك. لتضمين التعليمات البرمجية التي تم تنفيذها عند بدء حدث عمل تم تشغيله ، فقط قم بتحرير هذا الملف. +ModuleBuilderDeschooks=علامة التبويب هذه مخصصة للخطافات. ModuleBuilderDescwidgets=علامة التبويب هذه مخصصة لبناء\\إدارة البريمجات -ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All coding files of module (generated or created manually) AND structured data and documentation will be deleted! -EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All coding files (generated or created manually) related to object will be deleted! -DangerZone=Danger zone -BuildPackage=Build package -BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like DoliStore.com. -BuildDocumentation=Build documentation -ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here -ModuleIsLive=This module has been activated. Any change may break a current live feature. -DescriptionLong=Long description -EditorName=Name of editor -EditorUrl=URL of editor -DescriptorFile=Descriptor file of module -ClassFile=File for PHP DAO CRUD class -ApiClassFile=File for PHP API class -PageForList=PHP page for list of record -PageForCreateEditView=PHP page to create/edit/view a record -PageForAgendaTab=PHP page for event tab -PageForDocumentTab=PHP page for document tab -PageForNoteTab=PHP page for note tab -PageForContactTab=PHP page for contact tab -PathToModulePackage=Path to zip of module/application package -PathToModuleDocumentation=Path to file of module/application documentation (%s) -SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. -FileNotYetGenerated=File not yet generated -RegenerateClassAndSql=Force update of .class and .sql files -RegenerateMissingFiles=Generate missing files -SpecificationFile=File of documentation -LanguageFile=File for language -ObjectProperties=Object Properties -ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. -NotNull=Not NULL -NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0). -SearchAll=Used for 'search all' -DatabaseIndex=Database index -FileAlreadyExists=File %s already exists -TriggersFile=File for triggers code -HooksFile=File for hooks code -ArrayOfKeyValues=Array of key-val -ArrayOfKeyValuesDesc=Array of keys and values if field is a combo list with fixed values +ModuleBuilderDescbuildpackage=يمكنك هنا إنشاء ملف حزمة "جاهز للتوزيع" (ملف مضغوط. مضغوط) للوحدة النمطية الخاصة بك وملف توثيق "جاهز للتوزيع". ما عليك سوى النقر فوق الزر لإنشاء الحزمة أو ملف التوثيق. +EnterNameOfModuleToDeleteDesc=يمكنك حذف الوحدة الخاصة بك. تحذير: سيتم حذف جميع ملفات الترميز الخاصة بالوحدة النمطية (التي تم إنشاؤها أو إنشاؤها يدويًا) والبيانات المنظمة والوثائق! +EnterNameOfObjectToDeleteDesc=يمكنك حذف كائن. تحذير: سيتم حذف جميع ملفات الترميز (التي تم إنشاؤها أو إنشاؤها يدويًا) المتعلقة بالكائن! +DangerZone=منطقة الخطر +BuildPackage=بناء الحزمة +BuildPackageDesc=يمكنك إنشاء حزمة مضغوطة لتطبيقك حتى تكون جاهزًا لتوزيعها على أي Dolibarr. يمكنك أيضًا توزيعه أو بيعه في السوق مثل DoliStore.com . +BuildDocumentation=بناء الوثائق +ModuleIsNotActive=لم يتم تفعيل هذه الوحدة بعد. انتقل إلى %s لتفعيله أو انقر هنا +ModuleIsLive=تم تفعيل هذه الوحدة. قد يؤدي أي تغيير إلى كسر ميزة حية حالية. +DescriptionLong=وصف طويل +EditorName=اسم المحرر +EditorUrl=عنوان URL للمحرر +DescriptorFile=ملف واصف الوحدة +ClassFile=ملف لفئة PHP DAO CRUD +ApiClassFile=ملف لفئة PHP API +PageForList=صفحة PHP لقائمة التسجيلات +PageForCreateEditView=صفحة PHP لإنشاء / تحرير / عرض سجل +PageForAgendaTab=صفحة PHP لعلامة تبويب الحدث +PageForDocumentTab=صفحة PHP لعلامة تبويب المستند +PageForNoteTab=صفحة PHP لعلامة تبويب الملاحظات +PageForContactTab=صفحة PHP لعلامة تبويب الاتصال +PathToModulePackage=المسار إلى الرمز البريدي لحزمة الوحدة / التطبيق +PathToModuleDocumentation=المسار إلى ملف وثائق الوحدة / التطبيق (%s) +SpaceOrSpecialCharAreNotAllowed=غير مسموح بالمسافات أو الأحرف الخاصة. +FileNotYetGenerated=لم يتم إنشاء الملف بعد +RegenerateClassAndSql=فرض تحديث ملفات .class و. sql +RegenerateMissingFiles=توليد الملفات المفقودة +SpecificationFile=ملف التوثيق +LanguageFile=ملف للغة +ObjectProperties=خصائص الموضوع +ConfirmDeleteProperty=هل تريد بالتأكيد حذف الخاصية %s ؟ سيؤدي هذا إلى تغيير التعليمات البرمجية في فئة PHP ولكن أيضًا إزالة العمود من تعريف الجدول للكائن. +NotNull=غير فارغة +NotNullDesc=1 = تعيين قاعدة البيانات إلى NOT NULL ، 0 = السماح بالقيم الخالية ، -1 = السماح بالقيم الفارغة عن طريق فرض القيمة على NULL إذا كانت فارغة ('' أو 0) +SearchAll=تستخدم لبحث "الكل" +DatabaseIndex=فهرس قاعدة البيانات +FileAlreadyExists=الملف %s موجود بالفعل +TriggersFile=ملف لرمز المشغلات +HooksFile=ملف لرمز هوكس +ArrayOfKeyValues=صفيف مفتاح فال +ArrayOfKeyValuesDesc=صفيف من المفاتيح والقيم إذا كان الحقل عبارة عن قائمة تحرير وسرد بقيم ثابتة WidgetFile=ملف بريمج -CSSFile=CSS file -JSFile=Javascript file -ReadmeFile=Readme file -ChangeLog=ChangeLog file -TestClassFile=File for PHP Unit Test class -SqlFile=Sql file -PageForLib=File for the common PHP library -PageForObjLib=File for the PHP library dedicated to object -SqlFileExtraFields=Sql file for complementary attributes -SqlFileKey=Sql file for keys -SqlFileKeyExtraFields=Sql file for keys of complementary attributes -AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case -UseAsciiDocFormat=You can use Markdown format, but it is recommended to use Asciidoc format (omparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) -IsAMeasure=Is a measure -DirScanned=Directory scanned -NoTrigger=No trigger +CSSFile=ملف CSS +JSFile=ملف جافا سكريبت +ReadmeFile=الملف التمهيدي +ChangeLog=ملف سجل التغيير +TestClassFile=ملف لفئة اختبار وحدة PHP +SqlFile=ملف SQL +PageForLib=ملف لمكتبة PHP الشائعة +PageForObjLib=ملف لمكتبة PHP مخصص للكائن +SqlFileExtraFields=ملف SQL للسمات التكميلية +SqlFileKey=ملف SQL للمفاتيح +SqlFileKeyExtraFields=ملف SQL لمفاتيح السمات التكميلية +AnObjectAlreadyExistWithThisNameAndDiffCase=كائن موجود بالفعل بهذا الاسم وحالة مختلفة +UseAsciiDocFormat=يمكنك استخدام تنسيق Markdown ، لكن يوصى باستخدام تنسيق Asciidoc (omparison بين .md و .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=هو مقياس +DirScanned=تم مسح الدليل +NoTrigger=لا يوجد مشغل NoWidget=لا يوجد بريمج -GoToApiExplorer=API explorer -ListOfMenusEntries=List of menu entries -ListOfDictionariesEntries=List of dictionaries entries -ListOfPermissionsDefined=List of defined permissions -SeeExamples=See examples here -EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Display on PDF -IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0) -SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0) -SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. -LanguageDefDesc=Enter in this files, all the key and the translation for each language file. -MenusDefDesc=Define here the menus provided by your module -DictionariesDefDesc=Define here the dictionaries provided by your module -PermissionsDefDesc=Define here the new permissions provided by your module -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), menus are also visible into the menu editor available to administrator users on %s. -DictionariesDefDescTooltip=The dictionaries provided by your module/application are defined into the array $this->dictionaries into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), dictionaries are also visible into the setup area to administrator users on %s. -PermissionsDefDescTooltip=The permissions provided by your module/application are defined into the array $this->rights into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), permissions are visible into the default permissions setup %s. -HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code).
    Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code). -TriggerDefDesc=Define in the trigger file the code that you want to execute when a business event external to your module is executed (events triggered by other modules). -SeeIDsInUse=See IDs in use in your installation -SeeReservedIDsRangeHere=See range of reserved IDs -ToolkitForDevelopers=Toolkit for Dolibarr developers -TryToUseTheModuleBuilder=If you have knowledge of SQL and PHP, you may use the native module builder wizard.
    Enable the module %s and use the wizard by clicking the on the top right menu.
    Warning: This is an advanced developer feature, do not experiment on your production site! -SeeTopRightMenu=See on the top right menu -AddLanguageFile=Add language file -YouCanUseTranslationKey=You can use here a key that is the translation key found into language file (see tab "Languages") -DropTableIfEmpty=(Destroy table if empty) -TableDoesNotExists=The table %s does not exists -TableDropped=Table %s deleted -InitStructureFromExistingTable=Build the structure array string of an existing table -UseAboutPage=Disable the about page -UseDocFolder=Disable the documentation folder -UseSpecificReadme=Use a specific ReadMe -ContentOfREADMECustomized=Note: The content of the README.md file has been replaced with the specific value defined into setup of ModuleBuilder. -RealPathOfModule=Real path of module -ContentCantBeEmpty=Content of file can't be empty +GoToApiExplorer=مستكشف API +ListOfMenusEntries=قائمة إدخالات القائمة +ListOfDictionariesEntries=قائمة إدخالات القواميس +ListOfPermissionsDefined=قائمة الأذونات المحددة +SeeExamples=انظر الأمثلة هنا +EnabledDesc=شرط تنشيط هذا الحقل (أمثلة: 1 أو $ conf-> global-> MYMODULE_MYOPTION) +VisibleDesc=هل الحقل مرئي؟ (أمثلة: 0 = غير مرئي أبدًا ، 1 = مرئي في القائمة وإنشاء / تحديث / عرض النماذج ، 2 = مرئي في القائمة فقط ، 3 = مرئي في نموذج الإنشاء / التحديث / العرض فقط (وليس القائمة) ، 4 = مرئي في القائمة و تحديث / عرض النموذج فقط (وليس الإنشاء) ، 5 = مرئي في نموذج عرض نهاية القائمة فقط (ليس إنشاء ، وليس تحديث).

    يمكن أن يكون تعبيرًا ، على سبيل المثال:
    preg_match ('/ public /'، $ _SERVER ['PHP_SELF'])؟ 0: 1
    ($ 1-> تعريف الحقوق-> عطلة +DisplayOnPdfDesc=اعرض هذا الحقل على مستندات PDF متوافقة ، يمكنك إدارة الموقع باستخدام حقل "الموضع".
    حاليًا ، نماذج PDF المتوافقة المعروفة هي: eratosthene (الأمر) ، espadon (السفينة) ، الإسفنج (الفواتير) ، السماوي (propal / الاقتباس) ، cornas (طلب المورد)

    a0e78439047c06daz0 a0e78439047c06dz0 a0e78439019bz0 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the الوصف فقط إذا لم يكن فارغًا +DisplayOnPdf=عرض على PDF +IsAMeasureDesc=هل يمكن تجميع قيمة الحقل للحصول على الإجمالي في القائمة؟ (أمثلة: 1 أو 0) +SearchAllDesc=هل يستخدم الحقل لإجراء بحث من أداة البحث السريع؟ (أمثلة: 1 أو 0) +SpecDefDesc=أدخل هنا جميع الوثائق التي تريد توفيرها مع الوحدة النمطية الخاصة بك والتي لم يتم تحديدها بالفعل بواسطة علامات تبويب أخرى. يمكنك استخدام .md أو أفضل منه ، الصيغة الغنية .asciidoc. +LanguageDefDesc=أدخل في هذه الملفات ، كل المفتاح والترجمة لكل ملف لغة. +MenusDefDesc=حدد هنا القوائم التي توفرها الوحدة الخاصة بك +DictionariesDefDesc=حدد هنا القواميس التي توفرها الوحدة الخاصة بك +PermissionsDefDesc=حدد هنا الأذونات الجديدة التي توفرها الوحدة الخاصة بك +MenusDefDescTooltip=يتم تحديد القوائم التي توفرها الوحدة النمطية / التطبيق الخاص بك في المصفوفة $ this-> menus في ملف واصف الوحدة النمطية. يمكنك تحرير هذا الملف يدويًا أو استخدام المحرر المضمن.

    ملاحظة: بمجرد تحديدها (وإعادة تنشيط الوحدة النمطية) ، تظهر القوائم أيضًا في محرر القائمة المتاح لمستخدمي المسؤولين في %s. +DictionariesDefDescTooltip=يتم تحديد القواميس التي توفرها الوحدة النمطية / التطبيق الخاص بك في المصفوفة $ this-> القواميس في ملف واصف الوحدة. يمكنك تحرير هذا الملف يدويًا أو استخدام المحرر المضمن.

    ملاحظة: بمجرد تحديدها (وإعادة تنشيط الوحدة النمطية) ، تظهر القواميس أيضًا في منطقة الإعداد لمستخدمي المسؤولين على %s. +PermissionsDefDescTooltip=يتم تحديد الأذونات التي توفرها الوحدة النمطية / التطبيق الخاص بك في المصفوفة $ this-> rights في ملف واصف الوحدة النمطية. يمكنك تحرير هذا الملف يدويًا أو استخدام المحرر المضمن.

    ملاحظة: بمجرد تحديدها (وإعادة تنشيط الوحدة النمطية) ، تظهر الأذونات في إعداد الأذونات الافتراضية %s. +HooksDefDesc=حدد في module_parts ['hooks'] الخاصية ، في واصف الوحدة النمطية ، سياق الخطافات التي تريد إدارتها (يمكن العثور على قائمة السياقات من خلال البحث في " initHooks (a09a4fc039. ملف الخطاف لإضافة رمز وظائف hooked (يمكن العثور على الوظائف القابلة للتوصيل من خلال البحث على ' executeHooks ' في الكود الأساسي). +TriggerDefDesc=حدد في ملف المشغل الكود الذي تريد تنفيذه عند تنفيذ حدث عمل خارج الوحدة النمطية الخاصة بك (الأحداث التي يتم تشغيلها بواسطة وحدات نمطية أخرى). +SeeIDsInUse=انظر المعرفات المستخدمة في التثبيت الخاص بك +SeeReservedIDsRangeHere=انظر مجموعة من المعرفات المحجوزة +ToolkitForDevelopers=مجموعة أدوات لمطوري Dolibarr +TryToUseTheModuleBuilder=إذا كانت لديك معرفة بـ SQL و PHP ، فيمكنك استخدام معالج منشئ الوحدات الأصلية.
    قم بتمكين الوحدة النمطية %s واستخدم المعالج بالنقر فوق في أعلى القائمة اليمنى.
    تحذير: هذه ميزة مطور متقدمة ، قم بإجراء تجربة وليس على موقع الإنتاج الخاص بك! +SeeTopRightMenu=شاهد في القائمة اليمنى العلوية +AddLanguageFile=أضف ملف اللغة +YouCanUseTranslationKey=يمكنك هنا استخدام مفتاح يمثل مفتاح الترجمة الموجود في ملف اللغة (انظر علامة التبويب "اللغات") +DropTableIfEmpty=(تدمير الجدول إذا كان فارغًا) +TableDoesNotExists=الجدول %s غير موجود +TableDropped=تم حذف الجدول %s +InitStructureFromExistingTable=بناء سلسلة مصفوفة الهيكل لجدول موجود +UseAboutPage=لا تقم بإنشاء صفحة حول +UseDocFolder=قم بتعطيل مجلد الوثائق +UseSpecificReadme=استخدم ReadMe محدد +ContentOfREADMECustomized=ملاحظة: تم استبدال محتوى ملف README.md بالقيمة المحددة المحددة في إعداد ModuleBuilder. +RealPathOfModule=المسار الحقيقي للوحدة +ContentCantBeEmpty=لا يمكن أن يكون محتوى الملف فارغًا WidgetDesc=هنا يمكنك توليد وتعديل البريمجات التي ستضمن مع وحدتك البرمجية -CSSDesc=You can generate and edit here a file with personalized CSS embedded with your module. -JSDesc=You can generate and edit here a file with personalized Javascript embedded with your module. -CLIDesc=You can generate here some command line scripts you want to provide with your module. -CLIFile=CLI File -NoCLIFile=No CLI files -UseSpecificEditorName = Use a specific editor name -UseSpecificEditorURL = Use a specific editor URL -UseSpecificFamily = Use a specific family -UseSpecificAuthor = Use a specific author -UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation automatically of the reference -IncludeDocGeneration=I want to generate some documents from the object -IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. -ShowOnCombobox=Show value into combobox -KeyForTooltip=Key for tooltip -CSSClass=CSS for edit/create form -CSSViewClass=CSS for read form -CSSListClass=CSS for list -NotEditable=Not editable -ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example) -AsciiToHtmlConverter=Ascii to HTML converter -AsciiToPdfConverter=Ascii to PDF converter -TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. -ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. -ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Put 1 if this field need to be validated with $this->validateField() or 0 if validation required +CSSDesc=يمكنك إنشاء ملف وتحريره هنا باستخدام CSS مخصص مضمّن في الوحدة النمطية الخاصة بك. +JSDesc=يمكنك إنشاء ملف وتحريره هنا باستخدام Javascript مخصص مضمّن في الوحدة النمطية الخاصة بك. +CLIDesc=يمكنك هنا إنشاء بعض البرامج النصية لسطر الأوامر التي تريد تزويدها بالوحدة النمطية الخاصة بك. +CLIFile=ملف CLI +NoCLIFile=لا توجد ملفات CLI +UseSpecificEditorName = استخدم اسم محرر محدد +UseSpecificEditorURL = استخدم URL محرر محدد +UseSpecificFamily = استخدم عائلة معينة +UseSpecificAuthor = استخدم مؤلفًا محددًا +UseSpecificVersion = استخدم نسخة أولية محددة +IncludeRefGeneration=يجب إنشاء مرجع الكائن تلقائيًا بواسطة قواعد الترقيم المخصصة +IncludeRefGenerationHelp=حدد هذا إذا كنت تريد تضمين رمز لإدارة إنشاء المرجع تلقائيًا باستخدام قواعد الترقيم المخصصة +IncludeDocGeneration=أريد إنشاء بعض المستندات من قوالب للكائن +IncludeDocGenerationHelp=إذا حددت هذا ، فسيتم إنشاء بعض التعليمات البرمجية لإضافة مربع "إنشاء مستند" في السجل. +ShowOnCombobox=إظهار القيمة في مربع التحرير والسرد +KeyForTooltip=مفتاح تلميح الأداة +CSSClass=CSS لتحرير / إنشاء النموذج +CSSViewClass=CSS لقراءة النموذج +CSSListClass=CSS للحصول على قائمة +NotEditable=غير قابل للتحرير +ForeignKey=مفتاح غريب +TypeOfFieldsHelp=نوع الحقول:
    varchar (99)، double (24،8)، real، text، html، datetime، timestamp، عدد صحيح ، عدد صحيح: ClassName: relativepath / to / classfile.class.php [: 1 [: filter]] يعني
    "1" أننا نضيف زر + بعد التحرير والسرد لإنشاء السجل
    "filter" هو شرط sql ، على سبيل المثال: "الحالة = 1 AND fk_user = __ USER_ID__ والكيان IN (__SHARED_ENTITIES__)" +AsciiToHtmlConverter=Ascii لتحويل HTML +AsciiToPdfConverter=Ascii لتحويل PDF +TableNotEmptyDropCanceled=الجدول ليس فارغًا. تم إلغاء الإسقاط. +ModuleBuilderNotAllowed=منشئ الوحدات متاح ولكن غير مسموح به للمستخدم الخاص بك. +ImportExportProfiles=ملفات تعريف الاستيراد والتصدير +ValidateModBuilderDesc=عيّن هذا إلى 1 إذا كنت تريد الحصول على الأسلوب $ this-> validateField () الخاص بالكائن الذي يتم استدعاؤه للتحقق من صحة محتوى الحقل أثناء الإدراج أو التحديث. قم بتعيين 0 إذا لم يكن هناك حاجة للتحقق من الصحة. +WarningDatabaseIsNotUpdated=تحذير: لا يتم تحديث قاعدة البيانات تلقائيًا ، يجب تدمير الجداول وتعطيل الوحدة النمطية لإعادة إنشاء الجداول +LinkToParentMenu=قائمة الوالدين (fk_xxxxmenu) +ListOfTabsEntries=قائمة إدخالات علامة التبويب +TabsDefDesc=حدد هنا علامات التبويب التي توفرها الوحدة الخاصة بك +TabsDefDescTooltip=يتم تحديد علامات التبويب التي توفرها الوحدة النمطية / التطبيق الخاص بك في المصفوفة $ this-> علامات التبويب في ملف واصف الوحدة النمطية. يمكنك تحرير هذا الملف يدويًا أو استخدام المحرر المضمن. +BadValueForType=قيمة غير صالحة للنوع %s diff --git a/htdocs/langs/ar_SA/mrp.lang b/htdocs/langs/ar_SA/mrp.lang index 0abf5f071be..5b80d46d669 100644 --- a/htdocs/langs/ar_SA/mrp.lang +++ b/htdocs/langs/ar_SA/mrp.lang @@ -1,109 +1,120 @@ Mrp=أوامر التصنيع -MOs=Manufacturing orders -ManufacturingOrder=Manufacturing Order -MRPDescription=Module to manage production and Manufacturing Orders (MO). -MRPArea=MRP Area -MrpSetupPage=Setup of module MRP -MenuBOM=Bills of material -LatestBOMModified=Latest %s Bills of materials modified -LatestMOModified=Latest %s Manufacturing Orders modified -Bom=Bills of Material -BillOfMaterials=Bill of Materials -BillOfMaterialsLines=Bill of Materials lines -BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=List of Manufacturing Orders -NewBOM=New bill of materials -ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. -BOMsNumberingModules=BOM numbering templates -BOMsModelModule=BOM document templates -MOsNumberingModules=MO numbering templates -MOsModelModule=MO document templates -FreeLegalTextOnBOMs=Free text on document of BOM -WatermarkOnDraftBOMs=Watermark on draft BOM -FreeLegalTextOnMOs=Free text on document of MO -WatermarkOnDraftMOs=Watermark on draft MO -ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? -ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? -ManufacturingEfficiency=Manufacturing efficiency -ConsumptionEfficiency=Consumption efficiency -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly -ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product -DeleteBillOfMaterials=Delete Bill Of Materials -DeleteMo=Delete Manufacturing Order -ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? +MOs=أوامر التصنيع +ManufacturingOrder=أمر التصنيع +MRPDescription=وحدة لإدارة أوامر الإنتاج والتصنيع (MO). +MRPArea=منطقة MRP +MrpSetupPage=إعداد وحدة MRP +MenuBOM=فواتير المواد +LatestBOMModified=أحدث %s فواتير المواد المعدلة +LatestMOModified=تم تعديل أحدث أوامر التصنيع %s +Bom=فواتير المواد +BillOfMaterials=فاتورة المواد +BillOfMaterialsLines=خطوط فاتورة المواد +BOMsSetup=إعداد وحدة BOM +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=أوامر التصنيع +NewBOM=فاتورة مواد جديدة +ProductBOMHelp=المنتج المراد إنشاؤه (أو تفكيكه) باستخدام قائمة مكونات الصنف.
    ملاحظة: المنتجات ذات الخاصية "طبيعة المنتج" = "المواد الخام" غير مرئية في هذه القائمة. +BOMsNumberingModules=قوالب ترقيم BOM +BOMsModelModule=قوالب مستندات BOM +MOsNumberingModules=قوالب ترقيم MO +MOsModelModule=قوالب مستندات MO +FreeLegalTextOnBOMs=نص حر في وثيقة BOM +WatermarkOnDraftBOMs=علامة مائية على مشروع BOM +FreeLegalTextOnMOs=نص مجاني على وثيقة MO +WatermarkOnDraftMOs=علامة مائية على مشروع MO +ConfirmCloneBillOfMaterials=هل أنت متأكد أنك تريد استنساخ فاتورة المواد %s؟ +ConfirmCloneMo=هل أنت متأكد من أنك تريد استنساخ أمر التصنيع %s؟ +ManufacturingEfficiency=كفاءة التصنيع +ConsumptionEfficiency=كفاءة الاستهلاك +Consumption=Consumption +ValueOfMeansLoss=تعني القيمة 0.95 متوسط خسارة 5%% أثناء التصنيع أو التفكيك +ValueOfMeansLossForProductProduced=قيمة 0.95 تعني متوسط 5%% لفقدان المنتج المنتج +DeleteBillOfMaterials=حذف قائمة المواد +DeleteMo=حذف أمر التصنيع +ConfirmDeleteBillOfMaterials=هل أنت متأكد أنك تريد حذف قائمة المواد هذه؟ +ConfirmDeleteMo=هل أنت متأكد أنك تريد حذف أمر التصنيع هذا؟ MenuMRP=أوامر التصنيع -NewMO=New Manufacturing Order -QtyToProduce=Qty to produce -DateStartPlannedMo=Date start planned -DateEndPlannedMo=Date end planned -KeepEmptyForAsap=Empty means 'As Soon As Possible' -EstimatedDuration=Estimated duration -EstimatedDurationDesc=Estimated duration to manufacture (or disassemble) this product using this BOM -ConfirmValidateBom=Are you sure you want to validate the BOM with the reference %s (you will be able to use it to build new Manufacturing Orders) -ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? -ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) -StatusMOProduced=Produced -QtyFrozen=Frozen Qty -QuantityFrozen=Frozen Quantity -QuantityConsumedInvariable=When this flag is set, the quantity consumed is always the value defined and is not relative to the quantity produced. -DisableStockChange=Stock change disabled -DisableStockChangeHelp=When this flag is set, there is no stock change on this product, whatever is the quantity consumed -BomAndBomLines=Bills Of Material and lines -BOMLine=Line of BOM -WarehouseForProduction=Warehouse for production -CreateMO=Create MO -ToConsume=To consume -ToProduce=To produce -ToObtain=To obtain -QtyAlreadyConsumed=Qty already consumed -QtyAlreadyProduced=Qty already produced -QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%) -ConsumeOrProduce=Consume or Produce -ConsumeAndProduceAll=Consume and Produce All -Manufactured=Manufactured -TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce. -ForAQuantityOf=For a quantity to produce of %s -ForAQuantityToConsumeOf=For a quantity to disassemble of %s -ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? -ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. -ProductionForRef=Production of %s -AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached -NoStockChangeOnServices=No stock change on services -ProductQtyToConsumeByMO=Product quantity still to consume by open MO -ProductQtyToProduceByMO=Product quantity still to produce by open MO -AddNewConsumeLines=Add new line to consume -AddNewProduceLines=Add new line to produce -ProductsToConsume=Products to consume -ProductsToProduce=Products to produce -UnitCost=Unit cost -TotalCost=Total cost -BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) -GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. -ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO -Workstation=Workstation -Workstations=Workstations -WorkstationsDescription=Workstations management -WorkstationSetup = Workstations setup -WorkstationSetupPage = Workstations setup page -WorkstationList=Workstation list -WorkstationCreate=Add new workstation -ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? -EnableAWorkstation=Enable a workstation -ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? -DisableAWorkstation=Disable a workstation +NewMO=أمر تصنيع جديد +QtyToProduce=الكمية للإنتاج +DateStartPlannedMo=تاريخ البدء المخطط +DateEndPlannedMo=تاريخ الانتهاء المخطط +KeepEmptyForAsap=فارغ يعني "في أقرب وقت ممكن" +EstimatedDuration=المدة المقدرة +EstimatedDurationDesc=المدة المقدرة لتصنيع (أو تفكيك) هذا المنتج باستخدام قائمة المواد +ConfirmValidateBom=هل أنت متأكد من أنك تريد التحقق من BOM بالمرجع %s (ستتمكن من استخدامه لإنشاء أوامر تصنيع جديدة) +ConfirmCloseBom=هل أنت متأكد من أنك تريد إلغاء قائمة المواد (لن تتمكن من استخدامها لإنشاء أوامر تصنيع جديدة بعد الآن)؟ +ConfirmReopenBom=هل أنت متأكد من أنك تريد إعادة فتح قائمة المواد (ستتمكن من استخدامها لإنشاء أوامر تصنيع جديدة) +StatusMOProduced=أنتجت +QtyFrozen=الكمية المجمدة +QuantityFrozen=الكمية المجمدة +QuantityConsumedInvariable=عند تعيين هذه العلامة ، تكون الكمية المستهلكة دائمًا هي القيمة المحددة وليست مرتبطة بالكمية المنتجة. +DisableStockChange=تم تعطيل تغيير المخزون +DisableStockChangeHelp=عند تعيين هذه العلامة ، لا يوجد تغيير في المخزون في هذا المنتج ، مهما كانت الكمية المستهلكة +BomAndBomLines=فواتير المواد والخطوط +BOMLine=خط BOM +WarehouseForProduction=مستودع للإنتاج +CreateMO=إنشاء MO +ToConsume=تستهلك +ToProduce=لانتاج +ToObtain=ليحصل +QtyAlreadyConsumed=الكمية المستهلكة بالفعل +QtyAlreadyProduced=الكمية المنتجة بالفعل +QtyRequiredIfNoLoss=الكمية المطلوبة في حالة عدم وجود خسارة (كفاءة التصنيع 100%%) +ConsumeOrProduce=تستهلك أو تنتج +ConsumeAndProduceAll=تستهلك وأنتج كل شيء +Manufactured=مصنعة +TheProductXIsAlreadyTheProductToProduce=المنتج المراد إضافته هو بالفعل المنتج المطلوب إنتاجه. +ForAQuantityOf=للحصول على كمية لإنتاج %s +ForAQuantityToConsumeOf=للحصول على كمية لتفكيك %s +ConfirmValidateMo=هل أنت متأكد أنك تريد التحقق من صحة أمر التصنيع هذا؟ +ConfirmProductionDesc=بالنقر فوق "%s" ، ستتحقق من صحة الاستهلاك و / أو الإنتاج لمجموعة الكميات. سيؤدي هذا أيضًا إلى تحديث المخزون وتسجيل حركات المخزون. +ProductionForRef=إنتاج %s +CancelProductionForRef=إلغاء تخفيض مخزون المنتج للمنتج %s +TooltipDeleteAndRevertStockMovement=حذف السطر وعودة حركة المخزون +AutoCloseMO=أغلق أمر التصنيع تلقائيًا إذا تم الوصول إلى الكميات المراد استهلاكها والإنتاج +NoStockChangeOnServices=لا يوجد تغيير في المخزون على الخدمات +ProductQtyToConsumeByMO=لا تزال كمية المنتج تستهلك بواسطة MO المفتوح +ProductQtyToProduceByMO=لا تزال كمية المنتج التي يتم إنتاجها بواسطة MO المفتوح +AddNewConsumeLines=أضف سطرًا جديدًا للاستهلاك +AddNewProduceLines=أضف خطًا جديدًا للإنتاج +ProductsToConsume=منتجات للاستهلاك +ProductsToProduce=المنتجات المطلوب إنتاجها +UnitCost=تكلفة الوحدة +TotalCost=التكلفة الإجمالية +BOMTotalCost=تكلفة إنتاج قائمة مكونات الصنف هذه استنادًا إلى تكلفة كل كمية ومنتج يتم استهلاكه (استخدم سعر التكلفة إذا تم تحديده ، وإلا فإن متوسط السعر المرجح إذا تم تحديده ، وإلا فإن أفضل سعر شراء) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" +GoOnTabProductionToProduceFirst=يجب أن تكون قد بدأت الإنتاج أولاً لإغلاق أمر التصنيع (انظر علامة التبويب "%s"). لكن يمكنك إلغاء ذلك. +ErrorAVirtualProductCantBeUsedIntoABomOrMo=لا يمكن استخدام مجموعة في BOM أو MO +Workstation=محطة العمل +Workstations=محطات العمل +WorkstationsDescription=إدارة محطات العمل +WorkstationSetup = إعداد محطات العمل +WorkstationSetupPage = صفحة إعداد محطات العمل +WorkstationList=قائمة محطات العمل +WorkstationCreate=أضف محطة عمل جديدة +ConfirmEnableWorkstation=هل أنت متأكد من أنك تريد تمكين محطة العمل %s ؟ +EnableAWorkstation=قم بتمكين محطة العمل +ConfirmDisableWorkstation=هل أنت متأكد من أنك تريد تعطيل محطة العمل %s ؟ +DisableAWorkstation=تعطيل محطة العمل DeleteWorkstation=حذف -NbOperatorsRequired=Number of operators required -THMOperatorEstimated=Estimated operator THM -THMMachineEstimated=Estimated machine THM -WorkstationType=Workstation type -Human=Human -Machine=Machine -HumanMachine=Human / Machine -WorkstationArea=Workstation area -Machines=Machines -THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item -BOM=Bill Of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module -MOAndLines=Manufacturing Orders and lines +NbOperatorsRequired=عدد المشغلين المطلوب +THMOperatorEstimated=المشغل المقدر THM +THMMachineEstimated=آلة تقدير THM +WorkstationType=نوع محطة العمل +Human=بشر +Machine=آلة +HumanMachine=الإنسان / الآلة +WorkstationArea=منطقة محطة العمل +Machines=الآلات +THMEstimatedHelp=هذا المعدل يجعل من الممكن تحديد التكلفة المتوقعة للصنف +BOM=فاتورة المواد +CollapseBOMHelp=يمكنك تحديد العرض الافتراضي لتفاصيل التسمية في تكوين وحدة قائمة المواد +MOAndLines=أوامر التصنيع والخطوط +MoChildGenerate=توليد الطفل Mo +ParentMo=أحد الوالدين MO +MOChild=طفل مو +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/ar_SA/multicurrency.lang b/htdocs/langs/ar_SA/multicurrency.lang index bfcbd11fb7c..c5d2eb19b62 100644 --- a/htdocs/langs/ar_SA/multicurrency.lang +++ b/htdocs/langs/ar_SA/multicurrency.lang @@ -1,22 +1,38 @@ # Dolibarr language file - Source file is en_US - multicurrency -MultiCurrency=Multi currency -ErrorAddRateFail=Error in added rate -ErrorAddCurrencyFail=Error in added currency -ErrorDeleteCurrencyFail=Error delete fail -multicurrency_syncronize_error=Synchronization error: %s -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use the date of the document to find the currency rate, instead of using the latest known rate -multicurrency_useOriginTx=When an object is created from another, keep the original rate from the source object (otherwise use the latest known rate) +MultiCurrency=متعدد العملات +ErrorAddRateFail=خطأ في المعدل المضاف +ErrorAddCurrencyFail=خطأ في العملة المضافة +ErrorDeleteCurrencyFail=خطأ حذف فشل +multicurrency_syncronize_error=خطأ التزامن: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=استخدم تاريخ المستند للعثور على سعر العملة ، بدلاً من استخدام أحدث سعر معروف +multicurrency_useOriginTx=عندما يتم إنشاء كائن من كائن آخر ، احتفظ بالمعدل الأصلي من الكائن المصدر (وإلا استخدم أحدث معدل معروف) CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=You must create an account on website %s to use this functionality.
    Get your API key.
    If you use a free account, you can't change the source currency (USD by default).
    If your main currency is not USD, the application will automatically recalculate it.

    You are limited to 1000 synchronizations per month. -multicurrency_appId=API key -multicurrency_appCurrencySource=Source currency -multicurrency_alternateCurrencySource=Alternate source currency -CurrenciesUsed=Currencies used -CurrenciesUsed_help_to_add=Add the different currencies and rates you need to use on your proposals, orders etc. -rate=rate -MulticurrencyReceived=Received, original currency -MulticurrencyRemainderToTake=Remaining amount, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -AmountToOthercurrency=Amount To (in currency of receiving account) -CurrencyRateSyncSucceed=Currency rate synchronization done successfuly -MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Use the currency of the document for online payments +CurrencyLayerAccount_help_to_synchronize=يجب عليك إنشاء حساب على موقع الويب %s لاستخدام هذه الوظيفة.
    احصل على مفتاح API .
    إذا كنت تستخدم حسابًا مجانيًا ، فلا يمكنك تغيير عملة المصدر (افتراضيًا بالدولار الأمريكي).
    إذا كانت عملتك الرئيسية ليست الدولار الأمريكي ، فسيقوم التطبيق تلقائيًا بإعادة حسابها.

    أنت مقيد بـ 1000 مزامنة شهريًا. +multicurrency_appId=مفتاح API +multicurrency_appCurrencySource=عملة المصدر +multicurrency_alternateCurrencySource=عملة المصدر البديلة +CurrenciesUsed=العملات المستخدمة +CurrenciesUsed_help_to_add=أضف العملات والأسعار المختلفة التي تحتاج إلى استخدامها في طلبات الخاصة بك ، ، الطلبات إلخ. +rate=معدل +MulticurrencyReceived=العملة الأصلية المستلمة +MulticurrencyRemainderToTake=المبلغ المتبقي ، العملة الأصلية +MulticurrencyPaymentAmount=المبلغ المدفوع ، العملة الأصلية +AmountToOthercurrency=المبلغ إلى (بعملة حساب الاستقبال) +CurrencyRateSyncSucceed=تمت مزامنة سعر العملة بنجاح +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=استخدم عملة المستند للمدفوعات عبر الإنترنت +TabTitleMulticurrencyRate=قائمة الأسعار +ListCurrencyRate=قائمة أسعار الصرف للعملة +CreateRate=إنشاء معدل +FormCreateRate=معدل الخلق +FormUpdateRate=تعديل معدل +successRateCreate=تمت إضافة سعر العملة %s إلى قاعدة البيانات +ConfirmDeleteLineRate=هل أنت متأكد من أنك تريد إزالة سعر %s للعملة %s في تاريخ %s؟ +DeleteLineRate=معدل واضح +successRateDelete=معدل حذف +errorRateDelete=خطأ عند حذف السعر +successUpdateRate=تم التعديل +ErrorUpdateRate=خطأ عند تغيير المعدل +Codemulticurrency=رمز العملة +UpdateRate=تغيير المعدل +CancelUpdate=إلغاء +NoEmptyRate=يجب ألا يكون حقل السعر فارغًا diff --git a/htdocs/langs/ar_SA/oauth.lang b/htdocs/langs/ar_SA/oauth.lang index 36daa49e715..45c04f8cbf0 100644 --- a/htdocs/langs/ar_SA/oauth.lang +++ b/htdocs/langs/ar_SA/oauth.lang @@ -1,32 +1,36 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=OAuth Configuration -OAuthServices=OAuth Services -ManualTokenGeneration=Manual token generation -TokenManager=Token Manager -IsTokenGenerated=Is token generated ? +ConfigOAuth=تهيئة OAuth +OAuthServices=خدمات OAuth +ManualTokenGeneration=توليد الرمز اليدوي +TokenManager=مدير الرموز +IsTokenGenerated=هل تم إنشاء الرمز المميز؟ NoAccessToken=لا رمز وصول حفظها في قاعدة البيانات المحلية HasAccessToken=تم إنشاء رمز مميز وحفظها في قاعدة البيانات المحلية -NewTokenStored=Token received and saved -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider +NewTokenStored=تم استلام الرمز وحفظه +ToCheckDeleteTokenOnProvider=انقر هنا للتحقق / حذف التفويض المحفوظ بواسطة موفر %s OAuth TokenDeleted=حذف رمز -RequestAccess=انقر هنا لطلب / تجديد الوصول والحصول على رمز جديد لإنقاذ +RequestAccess=انقر هنا لطلب / تجديد الوصول والحصول على رمز جديد DeleteAccess=انقر هنا لحذف رمز -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret +UseTheFollowingUrlAsRedirectURI=استخدم عنوان URL التالي باعتباره Redirect URI عند إنشاء بيانات الاعتماد الخاصة بك مع موفر OAuth الخاص بك: +ListOfSupportedOauthProviders=أضف موفري رمز OAuth2 المميز. بعد ذلك ، انتقل إلى صفحة مشرف موفر OAuth لإنشاء / الحصول على معرّف وسر OAuth وحفظهما هنا. بمجرد الانتهاء من ذلك ، قم بتشغيل علامة التبويب الأخرى لإنشاء الرمز المميز الخاص بك. +OAuthSetupForLogin=صفحة لإدارة (إنشاء / حذف) رموز OAuth المميزة +SeePreviousTab=انظر علامة التبويب السابقة +OAuthProvider=مزود OAuth +OAuthIDSecret=معرف وسر OAuth TOKEN_REFRESH=رمزي تحميل الحاضر -TOKEN_EXPIRED=Token expired +TOKEN_EXPIRED=انتهت صلاحية الرمز TOKEN_EXPIRE_AT=رمز تنتهي في TOKEN_DELETE=حذف رمز المحفوظة -OAUTH_GOOGLE_NAME=OAuth Google service -OAUTH_GOOGLE_ID=OAuth Google Id +OAUTH_GOOGLE_NAME=خدمة OAuth Google +OAUTH_GOOGLE_ID=معرف Google OAuth OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials -OAUTH_GITHUB_NAME=OAuth GitHub service -OAUTH_GITHUB_ID=OAuth GitHub Id +OAUTH_GITHUB_NAME=خدمة OAuth GitHub +OAUTH_GITHUB_ID=معرف OAuth GitHub OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials -OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test +OAUTH_URL_FOR_CREDENTIAL=انتقل إلى هذه الصفحة لإنشاء أو الحصول على معرف OAuth والسري +OAUTH_STRIPE_TEST_NAME=اختبار شريط OAuth OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=معرف OAuth +OAUTH_SECRET=سر OAuth +OAuthProviderAdded=تمت إضافة موفر OAuth +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=إدخال OAuth لهذا الموفر وهذا التصنيف موجود بالفعل diff --git a/htdocs/langs/ar_SA/opensurvey.lang b/htdocs/langs/ar_SA/opensurvey.lang index c2dbbc9fc4b..024d4ac0344 100644 --- a/htdocs/langs/ar_SA/opensurvey.lang +++ b/htdocs/langs/ar_SA/opensurvey.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - opensurvey Survey=تصويت Surveys=استطلاعات الرأي -OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select the type of poll... +OrganizeYourMeetingEasily=تنظيم اجتماعاتك واستطلاعات الرأي بسهولة. حدد أولاً نوع الاستطلاع ... NewSurvey=استطلاع جديد OpenSurveyArea=منطقة استطلاعات الرأي AddACommentForPoll=يمكنك إضافة تعليق إلى استطلاع ... @@ -11,7 +11,7 @@ PollTitle=عنوان الإستطلاع ToReceiveEMailForEachVote=تتلقى رسالة بريد إلكتروني لكل صوت TypeDate=تاريخ نوع TypeClassic=نوع القياسية -OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +OpenSurveyStep2=حدد التواريخ من بين الأيام المجانية (باللون الرمادي). الأيام المختارة خضراء. يمكنك إلغاء تحديد اليوم المحدد مسبقًا بالنقر فوقه مرة أخرى RemoveAllDays=إزالة جميع أيام CopyHoursOfFirstDay=نسخة ساعات من اليوم الأول RemoveAllHours=إزالة كل ساعة @@ -35,7 +35,7 @@ TitleChoice=تسمية الاختيار ExportSpreadsheet=نتيجة تصدير جدول ExpireDate=الحد من التاريخ NbOfSurveys=عدد من استطلاعات الرأي -NbOfVoters=No. of voters +NbOfVoters=عدد الناخبين SurveyResults=النتائج PollAdminDesc=يسمح لك بتغيير جميع خطوط التصويت على هذا الاستطلاع مع زر "تحرير". يمكنك، أيضا، إزالة عمود أو خط مع٪ الصورة. يمكنك أيضا إضافة عمود جديد مع٪ الصورة. 5MoreChoices=5 المزيد من الخيارات @@ -48,16 +48,16 @@ AddEndHour=إضافة نهاية ساعة votes=التصويت (ق) NoCommentYet=لم يتم نشر تعليقات لهذا الاستطلاع حتى الآن CanComment=يمكن للناخبين التعليق في استطلاع -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +YourVoteIsPrivate=هذا الاستطلاع خاص ، لا أحد يستطيع رؤية تصويتك. +YourVoteIsPublic=هذا الاستطلاع عام ، ويمكن لأي شخص لديه الرابط رؤية تصويتك. CanSeeOthersVote=يمكن للناخبين التصويت يرى الآخرين -SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:
    - empty,
    - "8h", "8H" or "8:00" to give a meeting's start hour,
    - "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
    - "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +SelectDayDesc=لكل يوم محدد ، يمكنك اختيار أو عدم اختيار ساعات الاجتماع بالتنسيق التالي:
    - فارغ ،
    - "8h" أو "8H" أو "8:00" لإعطاء ساعة بدء الاجتماع ،
    - "8- 11 "أو" 8h-11h "أو" 8H-11H "أو" 8: 00-11: 00 "لإعطاء ساعة بداية الاجتماع وانتهائه ،
    -" 8h15-11h15 "أو" 8H15-11H15 "أو" 8: 15-11: 15 "لنفس الشيء لكن مع دقائق. BackToCurrentMonth=العودة إلى الشهر الحالي ErrorOpenSurveyFillFirstSection=هل لا شغل في القسم الأول من إنشاء الإستطلاع ErrorOpenSurveyOneChoice=أدخل خيار واحد على الأقل ErrorInsertingComment=كان هناك خطأ أثناء إدخال تعليقك MoreChoices=إدخال المزيد من الخيارات للناخبين -SurveyExpiredInfo=The poll has been closed or voting delay has expired. +SurveyExpiredInfo=تم إغلاق الاستطلاع أو انتهاء صلاحية تأخير التصويت. EmailSomeoneVoted=قد ملأت%s خط. يمكنك العثور على استطلاع الرأي الخاص بك على الرابط:٪ الصورة -ShowSurvey=Show survey -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment +ShowSurvey=إظهار الاستطلاع +UserMustBeSameThanUserUsedToVote=يجب أن تكون قد صوتت وتستخدم نفس اسم المستخدم الذي استخدمه الشخص للتصويت ، لنشر تعليق diff --git a/htdocs/langs/ar_SA/orders.lang b/htdocs/langs/ar_SA/orders.lang index 8618a7f1379..8f01cab8254 100644 --- a/htdocs/langs/ar_SA/orders.lang +++ b/htdocs/langs/ar_SA/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=تم بالفعل فتح أمر مرتبط بهذا الاقتراح ، لذلك لم يتم إنشاء أي أمر آخر تلقائيًا OrdersArea=منطقة أوامر العملاء SuppliersOrdersArea=منطقة أوامر الشراء OrderCard=بطاقة الامر @@ -17,7 +18,7 @@ ToOrder=قم بالامر MakeOrder=قم بالامر SupplierOrder=أمر شراء SuppliersOrders=اوامر الشراء -SaleOrderLines=Sales order lines +SaleOrderLines=سطور أوامر المبيعات PurchaseOrderLines=بنود امر الشراء SuppliersOrdersRunning=أوامر الشراء الحالية CustomerOrder=امر بيع @@ -68,6 +69,8 @@ CreateOrder=إنشاء أمر RefuseOrder=رفض الامر ApproveOrder=الموافقة على الامر Approve2Order=أمر الموافقة (المستوى الثاني) +UserApproval=مستخدم للموافقة عليه +UserApproval2=مستخدم للموافقة (المستوى الثاني) ValidateOrder=اعتماد الامر UnvalidateOrder=عدم اعتماد الامر DeleteOrder=حذف الامر @@ -102,6 +105,8 @@ ConfirmCancelOrder=هل أنت متأكد أنك تريد إلغاء هذا ال ConfirmMakeOrder=هل تريد بالتأكيد تأكيد قيامك بهذا الطلب على %s ؟ GenerateBill=توليد الفاتورة ClassifyShipped=تصنيف تسليمها +PassedInShippedStatus=تسليم مصنفة +YouCantShipThis=لا يمكنني تصنيف هذا. يرجى التحقق من أذونات المستخدم DraftOrders=مسودة أوامر DraftSuppliersOrders=مسودة أوامر الشراء OnProcessOrders=أوامر قيد المعالجة @@ -124,8 +129,8 @@ SupplierOrderReceivedInDolibarr=أمر الشراء %s استلم %s SupplierOrderSubmitedInDolibarr=تم تقديم امر الشراء %s SupplierOrderClassifiedBilled=امر الشراء %s فى وضع فوترة OtherOrders=أوامر أخرى -SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderValidatedAndApproved=تم التحقق من صحة طلب المورد واعتماده: %s +SupplierOrderValidated=تم التحقق من صحة طلب المورد: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=مندوب متابعة أوامر البيع TypeContact_commande_internal_SHIPPING=مندوب متابعة الشحن @@ -153,7 +158,7 @@ PDFEdisonDescription=نموذج امر بسيط PDFProformaDescription=نموذج فاتورة أولية كامل CreateInvoiceForThisCustomer=فوترة الامر CreateInvoiceForThisSupplier=فوترة الامر -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisReceptions=استقبال الفواتير NoOrdersToInvoice=لا أوامر للفوترة CloseProcessedOrdersAutomatically=تصنيف "تمت معالجتها" جميع الاوامر المحددة. OrderCreation=إنشاء الامر diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang index 4ac3dc3cb13..2813110fa69 100644 --- a/htdocs/langs/ar_SA/other.lang +++ b/htdocs/langs/ar_SA/other.lang @@ -1,52 +1,52 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=رمز الحماية -NumberingShort=N° +NumberingShort=رقم Tools=أدوات TMenuTools=أدوات -ToolsDesc=All tools not included in other menu entries are grouped here.
    All the tools can be accessed via the left menu. +ToolsDesc=جميع الأدوات غير المدرجة في إدخالات القائمة الأخرى مجمعة هنا.
    يمكن الوصول إلى جميع الأدوات عبر القائمة اليسرى. Birthday=عيد ميلاد BirthdayAlertOn=عيد ميلاد النشطة في حالة تأهب BirthdayAlertOff=عيد الميلاد فى حالة تأهب الخاملة -TransKey=Translation of the key TransKey -MonthOfInvoice=Month (number 1-12) of invoice date -TextMonthOfInvoice=Month (text) of invoice date -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date -TextPreviousMonthOfInvoice=Previous month (text) of invoice date -NextMonthOfInvoice=Following month (number 1-12) of invoice date -TextNextMonthOfInvoice=Following month (text) of invoice date -PreviousMonth=Previous month -CurrentMonth=Current month -ZipFileGeneratedInto=Zip file generated into %s. -DocFileGeneratedInto=Doc file generated into %s. -JumpToLogin=Disconnected. Go to login page... -MessageForm=Message on online payment form -MessageOK=Message on the return page for a validated payment -MessageKO=Message on the return page for a canceled payment -ContentOfDirectoryIsNotEmpty=Content of this directory is not empty. -DeleteAlsoContentRecursively=Check to delete all content recursively -PoweredBy=Powered by -YearOfInvoice=Year of invoice date -PreviousYearOfInvoice=Previous year of invoice date -NextYearOfInvoice=Following year of invoice date -DateNextInvoiceBeforeGen=Date of next invoice (before generation) -DateNextInvoiceAfterGen=Date of next invoice (after generation) -GraphInBarsAreLimitedToNMeasures=Grapics are limited to %s measures in 'Bars' mode. The mode 'Lines' was automatically selected instead. -OnlyOneFieldForXAxisIsPossible=Only 1 field is currently possible as X-Axis. Only the first selected field has been selected. -AtLeastOneMeasureIsRequired=At least 1 field for measure is required -AtLeastOneXAxisIsRequired=At least 1 field for X-Axis is required -LatestBlogPosts=Latest Blog Posts -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail -Notify_ORDER_VALIDATE=Sales order validated -Notify_ORDER_SENTBYMAIL=Sales order sent by mail -Notify_ORDER_SUPPLIER_SENTBYMAIL=Purchase order sent by email -Notify_ORDER_SUPPLIER_VALIDATE=Purchase order recorded -Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved -Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused +TransKey=ترجمة المفتاح TransKey +MonthOfInvoice=شهر (رقم 1-12) من تاريخ الفاتورة +TextMonthOfInvoice=شهر (نص) من تاريخ الفاتورة +PreviousMonthOfInvoice=الشهر السابق (رقم 1-12) من تاريخ الفاتورة +TextPreviousMonthOfInvoice=الشهر السابق (نص) من تاريخ الفاتورة +NextMonthOfInvoice=الشهر التالي (رقم 1-12) من تاريخ الفاتورة +TextNextMonthOfInvoice=الشهر التالي (نص) من تاريخ الفاتورة +PreviousMonth=الشهر الماضى +CurrentMonth=الشهر الحالي +ZipFileGeneratedInto=تم إنشاء ملف مضغوط في %s . +DocFileGeneratedInto=تم إنشاء ملف doc في %s . +JumpToLogin=انقطع الاتصال. انتقل إلى صفحة تسجيل الدخول ... +MessageForm=رسالة في نموذج الدفع عبر الإنترنت +MessageOK=رسالة على صفحة العودة لعملية دفع تم التحقق من صحتها +MessageKO=رسالة على صفحة الإرجاع بخصوص الدفعة الملغاة +ContentOfDirectoryIsNotEmpty=محتوى هذا الدليل ليس فارغًا. +DeleteAlsoContentRecursively=تحقق لحذف كل المحتوى بشكل متكرر +PoweredBy=مشغل بواسطة +YearOfInvoice=سنة تاريخ الفاتورة +PreviousYearOfInvoice=السنة السابقة لتاريخ الفاتورة +NextYearOfInvoice=السنة التالية لتاريخ الفاتورة +DateNextInvoiceBeforeGen=تاريخ الفاتورة التالية (قبل التوليد) +DateNextInvoiceAfterGen=تاريخ الفاتورة التالية (بعد التوليد) +GraphInBarsAreLimitedToNMeasures=قطع العنب محدودة بمقاييس %s في وضع "أشرطة". تم تحديد الوضع "Lines" تلقائيًا بدلاً من ذلك. +OnlyOneFieldForXAxisIsPossible=حقل واحد فقط ممكن حاليًا كمحور س. تم تحديد الحقل الأول المحدد فقط. +AtLeastOneMeasureIsRequired=مطلوب حقل واحد على الأقل للقياس +AtLeastOneXAxisIsRequired=مطلوب حقل واحد على الأقل للمحور السيني +LatestBlogPosts=أحدث مشاركات المدونة +notiftouser=للمستخدمين +notiftofixedemail=إلى البريد الثابت +notiftouserandtofixedemail=للمستخدم والبريد الثابت +Notify_ORDER_VALIDATE=تم التحقق من صحة أمر المبيعات +Notify_ORDER_SENTBYMAIL=تم إرسال أمر المبيعات بالبريد +Notify_ORDER_SUPPLIER_SENTBYMAIL=تم إرسال طلب الشراء عن طريق البريد الإلكتروني +Notify_ORDER_SUPPLIER_VALIDATE=تم تسجيل أمر الشراء +Notify_ORDER_SUPPLIER_APPROVE=تمت الموافقة على أمر الشراء +Notify_ORDER_SUPPLIER_REFUSE=تم رفض أمر الشراء Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء -Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed -Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_SIGNED=تم توقيع اقتراح العميل +Notify_PROPAL_CLOSE_REFUSED=تم رفض اقتراح العميل Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد Notify_WITHDRAW_TRANSMIT=انتقال انسحاب Notify_WITHDRAW_CREDIT=انسحاب الائتمان @@ -55,85 +55,85 @@ Notify_COMPANY_CREATE=طرف ثالث إنشاء Notify_COMPANY_SENTBYMAIL=الرسائل المرسلة من بطاقة طرف ثالث Notify_BILL_VALIDATE=فاتورة مصادق Notify_BILL_UNVALIDATE=فاتورة العميل unvalidated -Notify_BILL_PAYED=Customer invoice paid +Notify_BILL_PAYED=فاتورة العميل مدفوعة Notify_BILL_CANCEL=فاتورة الزبون إلغاء Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد -Notify_BILL_SUPPLIER_VALIDATE=Vendor invoice validated -Notify_BILL_SUPPLIER_PAYED=Vendor invoice paid -Notify_BILL_SUPPLIER_SENTBYMAIL=Vendor invoice sent by mail -Notify_BILL_SUPPLIER_CANCELED=Vendor invoice cancelled +Notify_BILL_SUPPLIER_VALIDATE=التحقق من صحة فاتورة البائع +Notify_BILL_SUPPLIER_PAYED=دفع فاتورة البائع +Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة البائع المرسلة بالبريد +Notify_BILL_SUPPLIER_CANCELED=تم إلغاء فاتورة البائع Notify_CONTRACT_VALIDATE=التحقق من صحة العقد Notify_FICHINTER_VALIDATE=التحقق من التدخل -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention +Notify_FICHINTER_ADD_CONTACT=تمت إضافة جهة اتصال إلى التدخل Notify_FICHINTER_SENTBYMAIL=تدخل ترسل عن طريق البريد Notify_SHIPPING_VALIDATE=التحقق من صحة الشحن Notify_SHIPPING_SENTBYMAIL=الشحن ترسل عن طريق البريد Notify_MEMBER_VALIDATE=عضو مصدق Notify_MEMBER_MODIFY=تعديل الأعضاء Notify_MEMBER_SUBSCRIPTION=عضو المكتتب -Notify_MEMBER_RESILIATE=Member terminated +Notify_MEMBER_RESILIATE=تم إنهاء العضو Notify_MEMBER_DELETE=عضو حذف Notify_PROJECT_CREATE=إنشاء مشروع Notify_TASK_CREATE=مهمة إنشاء Notify_TASK_MODIFY=تعديل مهمة Notify_TASK_DELETE=حذف المهمة -Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required) -Notify_EXPENSE_REPORT_APPROVE=Expense report approved -Notify_HOLIDAY_VALIDATE=Leave request validated (approval required) -Notify_HOLIDAY_APPROVE=Leave request approved -Notify_ACTION_CREATE=Added action to Agenda +Notify_EXPENSE_REPORT_VALIDATE=تم التحقق من صحة تقرير المصاريف (الموافقة مطلوبة) +Notify_EXPENSE_REPORT_APPROVE=تمت الموافقة على تقرير المصاريف +Notify_HOLIDAY_VALIDATE=تم التحقق من صحة طلب الإجازة (الموافقة مطلوبة) +Notify_HOLIDAY_APPROVE=تمت الموافقة على طلب الإجازة +Notify_ACTION_CREATE=تمت إضافة الإجراء إلى جدول الأعمال SeeModuleSetup=انظر إعداد وحدة٪ الصورة NbOfAttachedFiles=عدد الملفات المرفقة / وثائق TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / وثائق MaxSize=الحجم الأقصى AttachANewFile=إرفاق ملف جديد / وثيقة LinkedObject=ربط وجوه -NbOfActiveNotifications=Number of notifications (no. of recipient emails) -PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe lines are separated by a carriage return.\n\n__USER_SIGNATURE__ -PredefinedMailTestHtml=__(Hello)__
    This is a test mail sent to __EMAIL__ (the word test must be in bold).
    The lines are separated by a carriage return.

    __USER_SIGNATURE__ -PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find commercial proposal __REF__ attached \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find price request __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find our order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find shipping __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find intervention __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n -PredefinedMailContentGeneric=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendActionComm=Event reminder "__EVENT_LABEL__" on __EVENT_DATE__ at __EVENT_TIME__

    This is an automatic message, please do not reply. -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. -ChooseYourDemoProfil=Choose the demo profile that best suits your needs... -ChooseYourDemoProfilMore=...or build your own profile
    (manual module selection) +NbOfActiveNotifications=عدد الإخطارات (عدد رسائل البريد الإلكتروني للمستلم) +PredefinedMailTest=__(مرحبًا)__\nهذا بريد اختباري تم إرساله إلى __EMAIL__.\nيتم فصل السطور بواسطة حرف إرجاع.\n\n__USER_SIGNATURE__ +PredefinedMailTestHtml=__ (مرحبًا) __
    هذا اختبار بريد مرسل إلى __EMAIL__ (يجب أن يكون اختبار الكلمة بالخط العريض).
    يتم فصل السطور بواسطة حرف إرجاع.

    __USER_SIGNATURE__ +PredefinedMailContentContract=__(مرحبًا)__\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__(مرحبًا)__\n\nمن فضلك تجد الفاتورة __REF__ مرفقة\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__(مرحبًا)__\n\nنود أن نذكرك أنه يبدو أن الفاتورة __REF__ لم يتم دفعها. تم إرفاق نسخة من الفاتورة كتذكير.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=__(مرحبًا)__\n\nالرجاء العثور على الاقتراح التجاري __REF__ مرفقًا\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(مرحبًا)__\n\nيرجى الاطلاع على طلب السعر __REF__ مرفقًا\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(مرحبًا)__\n\nيرجى العثور على الطلب __REF__ مرفقًا\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(مرحبًا)__\n\nيرجى العثور على طلبنا __REF__ مرفقًا\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(مرحبًا)__\n\nمن فضلك تجد الفاتورة __REF__ مرفقة\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(مرحبًا)__\n\nيرجى العثور على الشحن __REF__ مرفقًا\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(مرحبًا)__\n\nيرجى العثور على تدخل __REF__ مرفق\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentLink=يمكنك النقر فوق الارتباط أدناه لإجراء الدفع الخاص بك إذا لم يكن قد تم بالفعل.\n\n%s\n\n +PredefinedMailContentGeneric=__(مرحبًا)__\n\n\n__(بإخلاص)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendActionComm=تذكير الحدث "__EVENT_LABEL__" في __EVENT_DATE__ في __EVENT_TIME__

    هذه رسالة تلقائية ، من فضلك لا ترد. +DemoDesc=Dolibarr هو ERP / CRM مدمج يدعم العديد من وحدات الأعمال. العرض التوضيحي الذي يعرض جميع الوحدات لا معنى له لأن هذا السيناريو لا يحدث أبدًا (تتوفر عدة مئات). لذلك ، تتوفر عدة ملفات تعريف تجريبية. +ChooseYourDemoProfil=اختر الملف الشخصي التجريبي الذي يناسب احتياجاتك ... +ChooseYourDemoProfilMore=... أو قم ببناء ملف التعريف الخاص بك
    (اختيار وحدة يدوية) DemoFundation=أعضاء في إدارة مؤسسة DemoFundation2=إدارة وأعضاء في الحساب المصرفي للمؤسسة -DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash box -DemoCompanyProductAndStocks=Shop selling products with Point Of Sales -DemoCompanyManufacturing=Company manufacturing products -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyServiceOnly=شركة أو خدمة بيع لحسابهم الخاص فقط +DemoCompanyShopWithCashDesk=إدارة متجر بصندوق نقدي +DemoCompanyProductAndStocks=متجر بيع المنتجات مع نقاط البيع +DemoCompanyManufacturing=منتجات الشركة المصنعة +DemoCompanyAll=شركة ذات أنشطة متعددة (جميع الوحدات الرئيسية) CreatedBy=أوجدتها ٪ ق ModifiedBy=المعدلة ق ٪ ValidatedBy=يصادق عليها ق ٪ -SignedBy=Signed by %s +SignedBy=بتوقيع %s ClosedBy=أغلقت ٪ ق CreatedById=هوية المستخدم الذي إنشاء -ModifiedById=User id who made latest change +ModifiedById=معرف المستخدم الذي قام بأحدث تغيير ValidatedById=هوية المستخدم الذي التحقق من صحة CanceledById=هوية المستخدم الذي ألغى ClosedById=هوية المستخدم الذي أغلق CreatedByLogin=تسجيل دخول المستخدم الذي إنشاء -ModifiedByLogin=User login who made latest change +ModifiedByLogin=تسجيل دخول المستخدم الذي قام بآخر تغيير ValidatedByLogin=تسجيل دخول المستخدم الذي التحقق من صحة CanceledByLogin=تسجيل دخول المستخدم الذي ألغى ClosedByLogin=تسجيل دخول المستخدم الذي أغلق FileWasRemoved=تم حذف الملف DirWasRemoved=دليل أزيل -FeatureNotYetAvailable=Feature not yet available in the current version -FeatureNotAvailableOnDevicesWithoutMouse=Feature not available on devices without mouse -FeaturesSupported=Supported features +FeatureNotYetAvailable=الميزة غير متوفرة بعد في الإصدار الحالي +FeatureNotAvailableOnDevicesWithoutMouse=الميزة غير متوفرة على الأجهزة التي لا تحتوي على ماوس +FeaturesSupported=الميزات المعتمدة Width=عرض Height=ارتفاع Depth=متعمق @@ -144,7 +144,7 @@ Right=حق CalculatedWeight=يحسب الوزن CalculatedVolume=يحسب حجم Weight=وزن -WeightUnitton=ton +WeightUnitton=طن WeightUnitkg=كجم WeightUnitg=ز WeightUnitmg=مغلم @@ -180,48 +180,48 @@ SizeUnitinch=بوصة SizeUnitfoot=قدم SizeUnitpoint=نقطة BugTracker=علة تعقب -SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +SendNewPasswordDesc=يتيح لك هذا النموذج طلب كلمة مرور جديدة. سيتم إرسالها إلى عنوان بريدك الإلكتروني.
    سيصبح التغيير ساريًا بمجرد النقر فوق ارتباط التأكيد في البريد الإلكتروني.
    تحقق من صندوق الوارد الخاص بك. BackToLoginPage=عودة إلى صفحة تسجيل الدخول AuthenticationDoesNotAllowSendNewPassword=طريقة التوثيق ٪ ق.
    في هذا الوضع ، لا يمكن معرفة Dolibarr أو تغيير كلمة السر الخاصة بك.
    اتصل بمسؤول النظام إذا كنت تريد تغيير كلمة السر الخاصة بك. -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. +EnableGDLibraryDesc=قم بتثبيت أو تمكين مكتبة GD على تثبيت PHP الخاص بك لاستخدام هذا الخيار. ProfIdShortDesc=الأستاذ عيد ٪ ق هي المعلومات التي تعتمد على طرف ثالث.
    على سبيل المثال ، لبلد ق ٪ انها رمز ٪ ق. DolibarrDemo=Dolibarr تخطيط موارد المؤسسات وإدارة علاقات العملاء التجريبي -StatsByNumberOfUnits=Statistics for sum of qty of products/services -StatsByNumberOfEntities=Statistics for number of referring entities (no. of invoices, or orders...) -NumberOfProposals=Number of proposals -NumberOfCustomerOrders=Number of sales orders -NumberOfCustomerInvoices=Number of customer invoices -NumberOfSupplierProposals=Number of vendor proposals -NumberOfSupplierOrders=Number of purchase orders -NumberOfSupplierInvoices=Number of vendor invoices -NumberOfContracts=Number of contracts -NumberOfMos=Number of manufacturing orders -NumberOfUnitsProposals=Number of units on proposals -NumberOfUnitsCustomerOrders=Number of units on sales orders -NumberOfUnitsCustomerInvoices=Number of units on customer invoices -NumberOfUnitsSupplierProposals=Number of units on vendor proposals -NumberOfUnitsSupplierOrders=Number of units on purchase orders -NumberOfUnitsSupplierInvoices=Number of units on vendor invoices -NumberOfUnitsContracts=Number of units on contracts -NumberOfUnitsMos=Number of units to produce in manufacturing orders -EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. +StatsByNumberOfUnits=إحصائيات لمجموع كمية المنتجات / الخدمات +StatsByNumberOfEntities=إحصائيات لعدد الكيانات المحيلة (عدد الفواتير أو الطلبات ...) +NumberOfProposals=عدد العروض +NumberOfCustomerOrders=عدد أوامر المبيعات +NumberOfCustomerInvoices=عدد فواتير العميل +NumberOfSupplierProposals=عدد عروض البائعين +NumberOfSupplierOrders=عدد أوامر الشراء +NumberOfSupplierInvoices=عدد فواتير البائعين +NumberOfContracts=عدد العقود +NumberOfMos=عدد أوامر التصنيع +NumberOfUnitsProposals=عدد الوحدات في المقترحات +NumberOfUnitsCustomerOrders=عدد الوحدات في أوامر المبيعات +NumberOfUnitsCustomerInvoices=عدد الوحدات في فواتير العميل +NumberOfUnitsSupplierProposals=عدد الوحدات في عروض البائعين +NumberOfUnitsSupplierOrders=عدد الوحدات في أوامر الشراء +NumberOfUnitsSupplierInvoices=عدد الوحدات في فواتير البائعين +NumberOfUnitsContracts=عدد الوحدات في العقود +NumberOfUnitsMos=عدد الوحدات المطلوب إنتاجها في أوامر التصنيع +EMailTextInterventionAddedContact=تم تعيين تدخل جديد لك %s. EMailTextInterventionValidated=التدخل ٪ ق المصادق -EMailTextInvoiceValidated=Invoice %s has been validated. -EMailTextInvoicePayed=Invoice %s has been paid. -EMailTextProposalValidated=Proposal %s has been validated. -EMailTextProposalClosedSigned=Proposal %s has been closed signed. -EMailTextOrderValidated=Order %s has been validated. -EMailTextOrderApproved=Order %s has been approved. -EMailTextOrderValidatedBy=Order %s has been recorded by %s. -EMailTextOrderApprovedBy=Order %s has been approved by %s. -EMailTextOrderRefused=Order %s has been refused. -EMailTextOrderRefusedBy=Order %s has been refused by %s. -EMailTextExpeditionValidated=Shipping %s has been validated. -EMailTextExpenseReportValidated=Expense report %s has been validated. -EMailTextExpenseReportApproved=Expense report %s has been approved. -EMailTextHolidayValidated=Leave request %s has been validated. -EMailTextHolidayApproved=Leave request %s has been approved. -EMailTextActionAdded=The action %s has been added to the Agenda. +EMailTextInvoiceValidated=تم التحقق من صحة الفاتورة %s. +EMailTextInvoicePayed=تم دفع الفاتورة %s. +EMailTextProposalValidated=تم التحقق من صحة الاقتراح %s. +EMailTextProposalClosedSigned=تم إغلاق الاقتراح %s وتوقيعه. +EMailTextOrderValidated=تم التحقق من صحة الطلب %s. +EMailTextOrderApproved=تمت الموافقة على الطلب %s. +EMailTextOrderValidatedBy=تم تسجيل الطلب %s بواسطة %s. +EMailTextOrderApprovedBy=تمت الموافقة على الطلب %s بواسطة %s. +EMailTextOrderRefused=تم رفض الطلب %s. +EMailTextOrderRefusedBy=تم رفض الطلب %s بواسطة %s. +EMailTextExpeditionValidated=تم التحقق من صحة الشحن %s. +EMailTextExpenseReportValidated=تم التحقق من صحة تقرير المصاريف %s. +EMailTextExpenseReportApproved=تمت الموافقة على تقرير المصاريف %s. +EMailTextHolidayValidated=تم التحقق من صحة طلب الإجازة %s. +EMailTextHolidayApproved=تمت الموافقة على طلب الإجازة %s. +EMailTextActionAdded=تمت إضافة الإجراء %s إلى الأجندة. ImportedWithSet=استيراد مجموعة البيانات DolibarrNotification=إشعار تلقائي ResizeDesc=أدخل عرض جديدة أو ارتفاع جديد. وستبقى نسبة خلال تغيير حجم... @@ -229,7 +229,7 @@ NewLength=عرض جديد NewHeight=ارتفاع جديد NewSizeAfterCropping=حجم جديد بعد الاقتصاص DefineNewAreaToPick=تحديد منطقة جديدة على الصورة لاختيار (اليسار انقر على الصورة ثم اسحب حتى تصل إلى الزاوية المقابلة) -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image +CurrentInformationOnImage=تم تصميم هذه الأداة لمساعدتك على تغيير حجم الصورة أو اقتصاصها. هذه هي المعلومات على الصورة المعدلة الحالية ImageEditor=صورة المحرر YouReceiveMailBecauseOfNotification=تلقيت هذه الرسالة لأنه قد تم إضافة البريد الإلكتروني الخاص بك إلى قائمة الأهداف التي يتعين على علم الأحداث ولا سيما في صناعة البرمجيات من %s %s. YouReceiveMailBecauseOfNotification2=هذا الحدث هو ما يلي : @@ -242,65 +242,86 @@ StartUpload=بدء التحميل CancelUpload=إلغاء التحميل FileIsTooBig=ملفات كبيرة جدا PleaseBePatient=يرجى التحلي بالصبر... -NewPassword=New password -ResetPassword=Reset password -RequestToResetPasswordReceived=A request to change your password has been received. +NewPassword=كلمة السر الجديدة +ResetPassword=إعادة تعيين كلمة المرور +RequestToResetPasswordReceived=تم استلام طلب لتغيير كلمة المرور الخاصة بك. NewKeyIs=هذا هو مفاتيح جديدة لتسجيل الدخول NewKeyWillBe=والمفتاح الجديد الخاص بك للدخول إلى برنامج يكون ClickHereToGoTo=انقر هنا للذهاب إلى٪ s YouMustClickToChange=ولكن يجب النقر فوق لأول مرة على الرابط التالي للتحقق من صحة هذا تغيير كلمة المرور -ConfirmPasswordChange=Confirm password change +ConfirmPasswordChange=تأكيد تغيير كلمة المرور ForgetIfNothing=إذا كنت لم تطلب هذا التغيير، أن ينسوا هذا البريد الإلكتروني. يتم الاحتفاظ بيانات الاعتماد الخاصة بك آمنة. IfAmountHigherThan=إذا قدر أعلى من٪ الصورة SourcesRepository=مستودع للمصادر -Chart=Chart -PassEncoding=Password encoding -PermissionsAdd=Permissions added -PermissionsDelete=Permissions removed -YourPasswordMustHaveAtLeastXChars=Your password must have at least %s chars -PasswordNeedAtLeastXUpperCaseChars=The password need at least %s upper case chars -PasswordNeedAtLeastXDigitChars=The password need at least %s numeric chars -PasswordNeedAtLeastXSpecialChars=The password need at least %s special chars -PasswordNeedNoXConsecutiveChars=The password must not have %s consecutive similar chars -YourPasswordHasBeenReset=Your password has been reset successfully -ApplicantIpAddress=IP address of applicant -SMSSentTo=SMS sent to %s -MissingIds=Missing ids -ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s -ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s -TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s -OpeningHoursFormatDesc=Use a - to separate opening and closing hours.
    Use a space to enter different ranges.
    Example: 8-12 14-18 -SuffixSessionName=Suffix for session name -LoginWith=Login with %s +Chart=جدول +PassEncoding=ترميز كلمة المرور +PermissionsAdd=تمت إضافة الأذونات +PermissionsDelete=تمت إزالة الأذونات +YourPasswordMustHaveAtLeastXChars=يجب أن تحتوي كلمة مرورك على الأقل على %s حرفًا +PasswordNeedAtLeastXUpperCaseChars=كلمة المرور تحتاج على الأقل %s أحرف كبيرة +PasswordNeedAtLeastXDigitChars=كلمة المرور تحتاج على الأقل %s أحرف رقمية +PasswordNeedAtLeastXSpecialChars=تحتاج كلمة المرور إلى أحرف خاصة %s على الأقل +PasswordNeedNoXConsecutiveChars=يجب ألا تحتوي كلمة المرور على %s أحرف متتالية مماثلة +YourPasswordHasBeenReset=تم إعادة تعيين كلمة المرور الخاصة بك بنجاح +ApplicantIpAddress=عنوان IP لمقدم الطلب +SMSSentTo=تم إرسال رسالة نصية قصيرة إلى %s +MissingIds=معرفات مفقودة +ThirdPartyCreatedByEmailCollector=طرف ثالث تم إنشاؤه بواسطة جامع البريد الإلكتروني من البريد الإلكتروني MSGID %s +ContactCreatedByEmailCollector=جهة الاتصال / العنوان الذي تم إنشاؤه بواسطة جامع البريد الإلكتروني من البريد الإلكتروني MSGID %s +ProjectCreatedByEmailCollector=تم إنشاء المشروع بواسطة جامع البريد الإلكتروني من البريد الإلكتروني MSGID %s +TicketCreatedByEmailCollector=تم إنشاء التذكرة بواسطة جامع البريد الإلكتروني من البريد الإلكتروني MSGID %s +OpeningHoursFormatDesc=استخدم - للفصل بين ساعات الفتح والإغلاق.
    استخدم مسافة لإدخال نطاقات مختلفة.
    مثال: 8-12 14-18 +SuffixSessionName=لاحقة لاسم الجلسة +LoginWith=تسجيل الدخول باستخدام %s ##### Export ##### ExportsArea=صادرات المنطقة AvailableFormats=الأشكال المتاحة LibraryUsed=وتستخدم المكتبة -LibraryVersion=Library version +LibraryVersion=نسخة المكتبة ExportableDatas=تصدير datas NoExportableData=ليس للتصدير البيانات (أي وحدات للتصدير مع تحميل البيانات ، ومفقود أذونات) ##### External sites ##### -WebsiteSetup=Setup of module website -WEBSITE_PAGEURL=URL of page +WebsiteSetup=إعداد موقع الوحدة النمطية +WEBSITE_PAGEURL=عنوان URL للصفحة WEBSITE_TITLE=العنوان WEBSITE_DESCRIPTION=الوصف -WEBSITE_IMAGE=Image -WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a thumbnail in a list of blog posts). Use __WEBSITE_KEY__ in the path if path depends on website name (for example: image/__WEBSITE_KEY__/stories/myimage.png). -WEBSITE_KEYWORDS=Keywords -LinesToImport=Lines to import +WEBSITE_IMAGE=صورة +WEBSITE_IMAGEDesc=المسار النسبي لوسائط الصورة. يمكنك الاحتفاظ بهذا فارغًا لأنه نادرًا ما يتم استخدامه (يمكن استخدامه بواسطة المحتوى الديناميكي لإظهار صورة مصغرة في قائمة منشورات المدونة). استخدم __WEBSITE_KEY__ في المسار إذا كان المسار يعتمد على اسم موقع الويب (على سبيل المثال: image / __ WEBSITE_KEY __ / stories / myimage.png). +WEBSITE_KEYWORDS=الكلمات الدالة +LinesToImport=خطوط للاستيراد -MemoryUsage=Memory usage -RequestDuration=Duration of request -ProductsPerPopularity=Products/Services by popularity -PopuProp=Products/Services by popularity in Proposals -PopuCom=Products/Services by popularity in Orders -ProductStatistics=Products/Services Statistics -NbOfQtyInOrders=Qty in orders -SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... +MemoryUsage=استخدام الذاكرة +RequestDuration=مدة الطلب +ProductsPerPopularity=المنتجات / الخدمات حسب الشعبية +PopuProp=المنتجات / الخدمات حسب الشعبية في العروض +PopuCom=المنتجات / الخدمات حسب الشعبية في الطلبات +ProductStatistics=إحصاءات المنتجات / الخدمات +NbOfQtyInOrders=الكمية بالطلبات +SelectTheTypeOfObjectToAnalyze=حدد كائنًا لعرض الإحصائيات الخاصة به ... -ConfirmBtnCommonContent = Are you sure you want to "%s" ? -ConfirmBtnCommonTitle = Confirm your action +ConfirmBtnCommonContent = هل أنت متأكد أنك تريد "%s"؟ +ConfirmBtnCommonTitle = قم بتأكيد عملك CloseDialog = إغلاق -Autofill = Autofill +Autofill = الملء التلقائي + +# externalsite +ExternalSiteSetup=إعداد رابط لموقع خارجي +ExternalSiteURL=رابط موقع خارجي لمحتوى إطار داخلي في لغة توصيف النص التشعبي +ExternalSiteModuleNotComplete=لم يتم تهيئة نموذج الموقع الخارجي بصورة صحيحة. +ExampleMyMenuEntry=مُدخل قائمتي + +# FTP +FTPClientSetup=إعداد وحدة FTP أو SFTP Client +NewFTPClient=New FTP/FTPS connection setup +FTPArea=FTP/FTPS Area +FTPAreaDesc=تعرض هذه الشاشة طريقة عرض لخادم FTP و SFTP. +SetupOfFTPClientModuleNotComplete=يبدو أن إعداد وحدة عميل FTP أو SFTP غير مكتمل +FTPFeatureNotSupportedByYourPHP=PHP لا يدعم وظائف FTP أو SFTP +FailedToConnectToFTPServer=فشل الاتصال بالخادم (الخادم %s ، المنفذ %s) +FailedToConnectToFTPServerWithCredentials=فشل تسجيل الدخول إلى الخادم باستخدام تسجيل الدخول / كلمة المرور المحددة +FTPFailedToRemoveFile=فشل لإزالة الملف %s . +FTPFailedToRemoveDir=فشل إزالة الدليل %s : تحقق من الأذونات وأن الدليل فارغ. +FTPPassiveMode=الوضع السلبي +ChooseAFTPEntryIntoMenu=اختر موقع FTP / SFTP من القائمة ... +FailedToGetFile=فشل في الحصول على الملفات %s diff --git a/htdocs/langs/ar_SA/partnership.lang b/htdocs/langs/ar_SA/partnership.lang index fb8315f25bd..c1fd7b31d30 100644 --- a/htdocs/langs/ar_SA/partnership.lang +++ b/htdocs/langs/ar_SA/partnership.lang @@ -19,15 +19,17 @@ ModulePartnershipName=إدارة الشراكة PartnershipDescription=وحدة إدارة الشراكة PartnershipDescriptionLong= وحدة إدارة الشراكة -Partnership=Partnership -AddPartnership=Add partnership -CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions -PartnershipCheckBacklink=Partnership: Check referring backlink +Partnership=شراكة +Partnerships=Partnerships +AddPartnership=أضف شراكة +CancelPartnershipForExpiredMembers=الشراكة: إلغاء شراكة الأعضاء المنتهية صلاحيتها +PartnershipCheckBacklink=الشراكة: تحقق من إحالة الروابط الخلفية # # Menu # NewPartnership=شراكة جديدة +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=قائمة الشراكات # @@ -36,57 +38,59 @@ ListOfPartnerships=قائمة الشراكات PartnershipSetup=إعدادات الشراكة PartnershipAbout=حول الشراكة PartnershipAboutPage=صفحة حول الشراكة -partnershipforthirdpartyormember=Partner status must be set on a 'thirdparty' or a 'member' -PARTNERSHIP_IS_MANAGED_FOR=Partnership managed for -PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks to check -PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb of days before cancelling status of a partnership when a subscription has expired -ReferingWebsiteCheck=Check of website referring -ReferingWebsiteCheckDesc=You can enable a feature to check that your partners has added a backlink to your website domains on their own website. +partnershipforthirdpartyormember=يجب تعيين حالة الشريك على "طرف ثالث" أو "عضو" +PARTNERSHIP_IS_MANAGED_FOR=إدارة الشراكة لـ +PARTNERSHIP_BACKLINKS_TO_CHECK=الروابط الخلفية المراد التحقق منها +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=عدد الأيام قبل إلغاء حالة الشراكة عند انتهاء صلاحية الاشتراك +ReferingWebsiteCheck=تحقق من إحالة الموقع +ReferingWebsiteCheckDesc=يمكنك تمكين ميزة للتحقق من أن شركائك قد أضافوا رابطًا خلفيًا إلى مجالات موقع الويب الخاص بك على موقع الويب الخاص بهم. +PublicFormRegistrationPartnerDesc=يمكن أن توفر لك Dolibarr عنوان URL / موقع ويب عام للسماح للزوار الخارجيين بطلب الانضمام إلى برنامج الشراكة. # # Object # -DeletePartnership=Delete a partnership -PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party -PartnershipDedicatedToThisMember=Partnership dedicated to this member +DeletePartnership=حذف شراكة +PartnershipDedicatedToThisThirdParty=شراكة مخصصة لهذا الطرف الثالث +PartnershipDedicatedToThisMember=شراكة مكرسة لهذا العضو DatePartnershipStart=تاريخ البدء DatePartnershipEnd=تاريخ الانتهاء -ReasonDecline=Decline reason -ReasonDeclineOrCancel=Decline reason -PartnershipAlreadyExist=Partnership already exist -ManagePartnership=Manage partnership -BacklinkNotFoundOnPartnerWebsite=Backlink not found on partner website -ConfirmClosePartnershipAsk=Are you sure you want to cancel this partnership? -PartnershipType=Partnership type -PartnershipRefApproved=Partnership %s approved - -# -# Template Mail -# -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled - -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled - -YourPartnershipWillSoonBeCanceledContent=We inform you that your partnership will soon be canceled (Backlink not found) -YourPartnershipRefusedContent=We inform you that your partnership request has been refused. -YourPartnershipAcceptedContent=We inform you that your partnership request has been accepted. -YourPartnershipCanceledContent=We inform you that your partnership has been canceled. - -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason - -# -# Status -# +ReasonDecline=سبب الرفض +ReasonDeclineOrCancel=سبب الرفض +PartnershipAlreadyExist=الشراكة موجودة بالفعل +ManagePartnership=إدارة الشراكة +BacklinkNotFoundOnPartnerWebsite=الرابط الخلفي غير موجود على موقع الشريك +ConfirmClosePartnershipAsk=هل أنت متأكد أنك تريد إلغاء هذه الشراكة؟ +PartnershipType=نوع الشراكة +PartnershipRefApproved=تمت الموافقة على الشراكة %s +KeywordToCheckInWebsite=إذا كنت تريد التحقق من وجود كلمة رئيسية معينة في موقع الويب الخاص بكل شريك ، فحدد هذه الكلمة الأساسية هنا PartnershipDraft=حوالة مصرفية PartnershipAccepted=قبلت PartnershipRefused=رفض PartnershipCanceled=ملغي PartnershipManagedFor=الشركاء هم + +# +# Template Mail +# +SendingEmailOnPartnershipWillSoonBeCanceled=سيتم إلغاء الشراكة قريبًا +SendingEmailOnPartnershipRefused=رفضت الشراكة +SendingEmailOnPartnershipAccepted=قبلت الشراكة +SendingEmailOnPartnershipCanceled=تم إلغاء الشراكة + +YourPartnershipWillSoonBeCanceledTopic=سيتم إلغاء الشراكة قريبًا +YourPartnershipRefusedTopic=رفضت الشراكة +YourPartnershipAcceptedTopic=قبلت الشراكة +YourPartnershipCanceledTopic=تم إلغاء الشراكة + +YourPartnershipWillSoonBeCanceledContent=نعلمك أنه سيتم إلغاء شراكتك قريبًا (لم يتم العثور على Backlink) +YourPartnershipRefusedContent=نعلمك أنه تم رفض طلب الشراكة الخاص بك. +YourPartnershipAcceptedContent=نعلمك أنه تم قبول طلب الشراكة الخاص بك. +YourPartnershipCanceledContent=نعلمك أنه تم إلغاء شراكتك. + +CountLastUrlCheckError=عدد الأخطاء الخاصة بآخر فحص لعنوان URL +LastCheckBacklink=تاريخ آخر فحص لعنوان URL +ReasonDeclineOrCancel=سبب الرفض + +NewPartnershipRequest=طلب شراكة جديد +NewPartnershipRequestDesc=يسمح لك هذا النموذج بطلب أن تكون جزءًا من أحد برامج الشراكة الخاصة بنا. إذا كنت بحاجة إلى مساعدة لملء هذا النموذج ، فيرجى الاتصال عبر البريد الإلكتروني %s . + diff --git a/htdocs/langs/ar_SA/paybox.lang b/htdocs/langs/ar_SA/paybox.lang index fc28a4d1f3c..f17ca026b2a 100644 --- a/htdocs/langs/ar_SA/paybox.lang +++ b/htdocs/langs/ar_SA/paybox.lang @@ -1,31 +1,30 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=إعداد وحدة PayBox -PayBoxDesc=تعرض صفحات نموذج الوحدة هذه الدفعات على Paybox من قبل العملاء. هذا يمكن استخدامها للدفع مجانا أو للدفع على عنصر دوليبار معين (الفاتورة، طلب، ...) +PayBoxDesc=تقدم هذه الوحدة صفحات للسماح بالدفع على Paybox من قبل العملاء. يمكن استخدام هذا للدفع المجاني أو للدفع على شيء Dolibarr معين (فاتورة ، أمر ، ...) FollowingUrlAreAvailableToMakePayments=تتوفر عناوين URL التالية لتقديم صفحة إلى عميل لإجراء دفعة على عناصر دوليبار PaymentForm=نموذج الدفع -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=مرحبًا بك في خدمة الدفع عبر الإنترنت ThisScreenAllowsYouToPay=هذه الشاشة تسمح لك بإجراء الدفع عبر الإنترنت إلى %s. ThisIsInformationOnPayment=هذه هي معلومات عن الدفع للقيام به ToComplete=لإكمال YourEMail=البريد الإلكتروني لتلقي تأكيد الدفع Creditor=دائن PaymentCode=رمز الدفع -PayBoxDoPayment=Pay with Paybox +PayBoxDoPayment=ادفع باستخدام Paybox YouWillBeRedirectedOnPayBox=سيتم إعادة توجيهك على صفحة Paybox الأمنة لإدخال معلومات بطاقة الائتمان الخاصة بك Continue=التالي -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. +SetupPayBoxToHavePaymentCreatedAutomatically=قم بإعداد Paybox الخاص بك بعنوان url %s حتى يتم إنشاء الدفع تلقائيًا عند التحقق من صحته بواسطة Paybox. YourPaymentHasBeenRecorded=تؤكد هذه الصفحة أنه قد تم تسجيل دفعتك. شكرا لكم. -YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you. +YourPaymentHasNotBeenRecorded=لم يتم تسجيل دفعتك وتم إلغاء المعاملة. شكرًا لك. AccountParameter=معلمات الحساب UsageParameter=معلمات الاستخدام InformationToFindParameters=مساعدة للعثور على معلومات الحساب الخاص بك %s PAYBOX_CGI_URL_V2=Url من Paybox CGI وحدة للدفع -VendorName=اسم البائع CSSUrlForPaymentForm=CSS style sheet url لنموذج الدفع NewPayboxPaymentReceived=تلقى الدفع Paybox الجديد NewPayboxPaymentFailed=دفع Paybox جديد حاول ولكنه فشل -PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail) +PAYBOX_PAYONLINE_SENDEMAIL=إشعار بالبريد الإلكتروني بعد محاولة الدفع (نجاح أو فشل) PAYBOX_PBX_SITE=قيمة PBX SITE PAYBOX_PBX_RANG=قيمة PBX رانج PAYBOX_PBX_IDENTIFIANT=قيمة PBX ID -PAYBOX_HMAC_KEY=HMAC key +PAYBOX_HMAC_KEY=مفتاح HMAC diff --git a/htdocs/langs/ar_SA/paypal.lang b/htdocs/langs/ar_SA/paypal.lang index 351495835aa..4e4699d6eee 100644 --- a/htdocs/langs/ar_SA/paypal.lang +++ b/htdocs/langs/ar_SA/paypal.lang @@ -1,36 +1,36 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=بايبال حدة الإعداد -PaypalDesc=This module allows payment by customers via PayPal. This can be used for a ad-hoc payment or for a payment related to a Dolibarr object (invoice, order, ...) -PaypalOrCBDoPayment=Pay with PayPal (Card or PayPal) -PaypalDoPayment=Pay with PayPal +PaypalDesc=تسمح هذه الوحدة بالدفع من قبل العملاء عبر PayPal . يمكن استخدام هذا للدفع المخصص أو للدفع المتعلق بأحد عناصر Dolibarr (فاتورة ، أمر ، ...) +PaypalOrCBDoPayment=الدفع باستخدام PayPal (البطاقة أو PayPal) +PaypalDoPayment=الدفع بواسط باى بال PAYPAL_API_SANDBOX=وضع الاختبار / رمل PAYPAL_API_USER=API المستخدم PAYPAL_API_PASSWORD=API كلمة السر PAYPAL_API_SIGNATURE=API توقيع -PAYPAL_SSLVERSION=Curl SSL Version -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer "integral" payment (Credit card+PayPal) or "PayPal" only +PAYPAL_SSLVERSION=إصدار Curl SSL +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=عرض الدفع "المتكامل" (بطاقة الائتمان + PayPal) أو "PayPal" فقط PaypalModeIntegral=التكامل PaypalModeOnlyPaypal=باي بال فقط -ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page +ONLINE_PAYMENT_CSS_URL=عنوان URL اختياري لورقة أنماط CSS على صفحة الدفع عبر الإنترنت ThisIsTransactionId=هذا هو معرف من الصفقة: %s -PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email -NewOnlinePaymentReceived=New online payment received -NewOnlinePaymentFailed=New online payment tried but failed -ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail) +PAYPAL_ADD_PAYMENT_URL=قم بتضمين عنوان url الخاص بالدفع في PayPal عند إرسال مستند عبر البريد الإلكتروني +NewOnlinePaymentReceived=تم استلام دفعة جديدة عبر الإنترنت +NewOnlinePaymentFailed=تمت محاولة دفع جديد عبر الإنترنت لكنها فشلت +ONLINE_PAYMENT_SENDEMAIL=عنوان البريد الإلكتروني للإشعارات بعد كل محاولة دفع (للنجاح والفشل) ReturnURLAfterPayment=العودة URL بعد دفع -ValidationOfOnlinePaymentFailed=Validation of online payment failed -PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error +ValidationOfOnlinePaymentFailed=فشل التحقق من صحة الدفع عبر الإنترنت +PaymentSystemConfirmPaymentPageWasCalledButFailed=تم استدعاء صفحة تأكيد الدفع بواسطة نظام الدفع وأرجع خطأً SetExpressCheckoutAPICallFailed=فشل استدعاء API SetExpressCheckout. DoExpressCheckoutPaymentAPICallFailed=فشل استدعاء API DoExpressCheckoutPayment. DetailedErrorMessage=رسالة خطأ مفصلة ShortErrorMessage=رسالة خطأ قصيرة ErrorCode=رمز الخطأ ErrorSeverityCode=خطأ خطورة مدونة -OnlinePaymentSystem=Online payment system -PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode) -PaypalImportPayment=Import PayPal payments -PostActionAfterPayment=Post actions after payments -ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. -ValidationOfPaymentFailed=Validation of payment has failed -CardOwner=Card holder -PayPalBalance=Paypal credit +OnlinePaymentSystem=نظام الدفع عبر الإنترنت +PaypalLiveEnabled=تم تمكين وضع PayPal "المباشر" (بخلاف ذلك وضع الاختبار / وضع الحماية) +PaypalImportPayment=استيراد مدفوعات PayPal +PostActionAfterPayment=نشر الإجراءات بعد المدفوعات +ARollbackWasPerformedOnPostActions=تم إجراء التراجع عن جميع إجراءات النشر. يجب عليك إكمال إجراءات النشر يدويًا إذا كانت ضرورية. +ValidationOfPaymentFailed=فشل التحقق من الدفع +CardOwner=حامل البطاقة +PayPalBalance=رصيد Paypal diff --git a/htdocs/langs/ar_SA/printing.lang b/htdocs/langs/ar_SA/printing.lang index 01b13693845..9f6cf3a34ab 100644 --- a/htdocs/langs/ar_SA/printing.lang +++ b/htdocs/langs/ar_SA/printing.lang @@ -10,7 +10,7 @@ ListDrivers=قائمة برامج التشغيل PrintTestDesc=قائمة الطابعات. FileWasSentToPrinter=وأرسل ملف٪ s إلى طابعة ViaModule=عبر الوحدة -NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s. +NoActivePrintingModuleFound=لا يوجد برنامج تشغيل نشط لطباعة الوثيقة. تحقق من إعداد الوحدة النمطية %s. PleaseSelectaDriverfromList=يرجى تحديد برنامج تشغيل من القائمة. PleaseConfigureDriverfromList=يرجى تكوين برنامج التشغيل المحدد من القائمة. SetupDriver=إعداد برنامج التشغيل @@ -19,7 +19,7 @@ UserConf=الإعداد لكل مستخدم PRINTGCP_INFO=جوجل أوث الإعداد API PRINTGCP_AUTHLINK=المصادقة PRINTGCP_TOKEN_ACCESS=جوجل الغيمة طباعة أوث رمز -PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. +PrintGCPDesc=يسمح برنامج التشغيل هذا بإرسال المستندات مباشرة إلى الطابعة باستخدام الطباعة في السحاب من Google. GCP_Name=اسم GCP_displayName=اسم العرض GCP_Id=طابعة معرف @@ -27,7 +27,7 @@ GCP_OwnerName=اسم المالك GCP_State=الدولة طابعة GCP_connectionStatus=الدولة عبر الإنترنت GCP_Type=نوع الطابعة -PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. +PrintIPPDesc=يسمح برنامج التشغيل هذا بإرسال المستندات مباشرة إلى الطابعة. يتطلب نظام Linux مثبتًا عليه CUPS. PRINTIPP_HOST=ملقم الطباعة PRINTIPP_PORT=ميناء PRINTIPP_USER=تسجيل الدخول @@ -46,9 +46,9 @@ IPP_Device=جهاز IPP_Media=وسائل الإعلام طابعة IPP_Supported=نوع من وسائل الإعلام DirectPrintingJobsDesc=هذا عمل القوائم صفحة الطباعة تم العثور عليها ل الطابعات المتوفرة. -GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +GoogleAuthNotConfigured=لم يتم إعداد Google OAuth. تمكين الوحدة النمطية OAuth وتعيين معرف / سر Google. +GoogleAuthConfigured=تم العثور على بيانات اعتماد Google OAuth في إعداد وحدة OAuth. PrintingDriverDescprintgcp=المتغيرات التكوين للسائق الطباعة في السحاب من Google طباعة. -PrintingDriverDescprintipp=Configuration variables for printing driver Cups. +PrintingDriverDescprintipp=متغيرات التكوين لطباعة أكواب السائق. PrintTestDescprintgcp=قائمة طابعات جوجل الغيمة طباعة. -PrintTestDescprintipp=List of Printers for Cups. +PrintTestDescprintipp=قائمة طابعات الكؤوس. diff --git a/htdocs/langs/ar_SA/productbatch.lang b/htdocs/langs/ar_SA/productbatch.lang index 529f7a6f6f4..303ae6e9ce8 100644 --- a/htdocs/langs/ar_SA/productbatch.lang +++ b/htdocs/langs/ar_SA/productbatch.lang @@ -17,29 +17,31 @@ printBatch=الكثير / التسلسلي:٪ الصورة printEatby=تناول الطعام عن طريق:٪ الصورة printSellby=بيع عن طريق:٪ الصورة printQty=الكمية:٪ د +printPlannedWarehouse=المخازن AddDispatchBatchLine=إضافة سطر لالصلاحية إيفاد -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic stock decrease is forced to 'Decrease real stocks on shipping validation' and automatic increase mode is forced to 'Increase real stocks on manual dispatching into warehouses' and can't be edited. Other options can be defined as you want. +WhenProductBatchModuleOnOptionAreForced=عندما تكون دفعة الوحدة / المسلسل قيد التشغيل ، يتم إجبار خفض المخزون التلقائي على "تقليل المخزونات الحقيقية عند التحقق من صحة الشحن" ويتم فرض وضع الزيادة التلقائية على "زيادة المخزونات الحقيقية في الإرسال اليدوي إلى المستودعات" ولا يمكن تحريرها. يمكن تحديد الخيارات الأخرى كما تريد. ProductDoesNotUseBatchSerial=هذا المنتج لا يستخدم الكثير / الرقم التسلسلي ProductLotSetup=إعدادات الحصة / الرقم التسلسلي ShowCurrentStockOfLot=عرض المخزون الحالي للمنتجات/الحصص. ShowLogOfMovementIfLot=عرض سجل الحركات للمنتجات/ الحصص . StockDetailPerBatch=تفاصيل المخزون لكل قطعة SerialNumberAlreadyInUse=الرقم التسلسلي %s مستخدم للمنتج %s -TooManyQtyForSerialNumber=You can only have one product %s for serial number %s +TooManyQtyForSerialNumber=يمكنك الحصول على منتج واحد فقط %s للرقم التسلسلي %s ManageLotMask=قناع مخصص -CustomMasks=Option to define a different numbering mask for each product -BatchLotNumberingModules=Numbering rule for automatic generation of lot number -BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product) -QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned +CustomMasks=خيار لتحديد قناع ترقيم مختلف لكل منتج +BatchLotNumberingModules=قاعدة الترقيم للإنشاء التلقائي لرقم التشغيلة +BatchSerialNumberingModules=قاعدة الترقيم للإنشاء التلقائي للرقم التسلسلي (للمنتجات ذات الخاصية 1 دفعة / مسلسل فريد لكل منتج) +QtyToAddAfterBarcodeScan=الكمية إلى %s لكل رمز شريطي / مجموعة / مسلسل تم مسحه ضوئيًا LifeTime=المدة (بالأيام) EndOfLife=نهاية المدة ManufacturingDate=تاريخ التصنيع DestructionDate=تاريخ التدمير FirstUseDate=تاريخ أول استخدام -QCFrequency=Quality control frequency (in days) -ShowAllLots=Show all lots -HideLots=Hide lots +QCFrequency=تردد مراقبة الجودة (بالأيام) +ShowAllLots=عرض كل القطع +HideLots=إخفاء الكثير #Traceability - qc status -OutOfOrder=Out of order -InWorkingOrder=In working order -ToReplace=Replace +OutOfOrder=خارج عن السيطرة +InWorkingOrder=عمل الأمر بسلاسة +ToReplace=يحل محل +CantMoveNonExistantSerial=خطأ. أنت تطلب نقلًا على سجل لمسلسل لم يعد موجودًا بعد الآن. قد تأخذ نفس المسلسل في نفس المستودع عدة مرات في نفس الشحنة أو تم استخدامه بواسطة شحنة أخرى. قم بإزالة هذه الشحنة وإعداد واحدة أخرى. diff --git a/htdocs/langs/ar_SA/products.lang b/htdocs/langs/ar_SA/products.lang index bda51095681..347f5ba892e 100644 --- a/htdocs/langs/ar_SA/products.lang +++ b/htdocs/langs/ar_SA/products.lang @@ -2,7 +2,7 @@ ProductRef=مرجع المنتج ProductLabel=وصف المنتج ProductLabelTranslated=تسمية المنتج مترجمة -ProductDescription=Product description +ProductDescription=وصف المنتج ProductDescriptionTranslated=ترجمة وصف المنتج ProductNoteTranslated=ترجمة مذكرة المنتج ProductServiceCard=منتجات / بطاقة الخدمات @@ -17,43 +17,43 @@ Create=إنشاء Reference=المرجع NewProduct=منتج جديد NewService=خدمة جديدة -ProductVatMassChange=Global VAT Update -ProductVatMassChangeDesc=This tool updates the VAT rate defined on ALL products and services! +ProductVatMassChange=تحديث شامل لضريبة القيمة المضافة +ProductVatMassChangeDesc=تقوم هذه الأداة بتحديث معدل ضريبة القيمة المضافة المحدد في ALL المنتجات والخدمات! MassBarcodeInit=الحرف الأول الباركود الشامل MassBarcodeInitDesc=هذه الصفحة يمكن استخدامها لتهيئة الباركود على الكائنات التي لا يكون الباركود تعريف. تحقق قبل أن الإعداد وحدة الباركود كاملة. ProductAccountancyBuyCode=كود المحاسبة (شراء) -ProductAccountancyBuyIntraCode=Accounting code (purchase intra-community) -ProductAccountancyBuyExportCode=Accounting code (purchase import) +ProductAccountancyBuyIntraCode=كود المحاسبة (شراء داخل المجتمع) +ProductAccountancyBuyExportCode=كود المحاسبة (شراء استيراد) ProductAccountancySellCode=كود المحاسبة (بيع) -ProductAccountancySellIntraCode=Accounting code (sale intra-Community) -ProductAccountancySellExportCode=Accounting code (sale export) +ProductAccountancySellIntraCode=كود المحاسبة (البيع داخل المجتمع) +ProductAccountancySellExportCode=كود المحاسبة (بيع تصدير) ProductOrService=المنتج أو الخدمة ProductsAndServices=المنتجات والخدمات ProductsOrServices=منتجات أو خدمات -ProductsPipeServices=Products | Services -ProductsOnSale=Products for sale -ProductsOnPurchase=Products for purchase -ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Products for purchase only +ProductsPipeServices=المنتجات | خدمات +ProductsOnSale=منتجات للبيع +ProductsOnPurchase=منتجات للشراء +ProductsOnSaleOnly=منتجات للبيع فقط +ProductsOnPurchaseOnly=منتجات للشراء فقط ProductsNotOnSell=منتجات ليست للبيع ولا الشراء ProductsOnSellAndOnBuy=المنتجات للبيع والشراء -ServicesOnSale=Services for sale -ServicesOnPurchase=Services for purchase -ServicesOnSaleOnly=Services for sale only -ServicesOnPurchaseOnly=Services for purchase only +ServicesOnSale=خدمات للبيع +ServicesOnPurchase=خدمات للشراء +ServicesOnSaleOnly=خدمات للبيع فقط +ServicesOnPurchaseOnly=خدمات للشراء فقط ServicesNotOnSell=خدمات ليست للبيع ولا الشراء ServicesOnSellAndOnBuy=خدمات للبيع والشراء -LastModifiedProductsAndServices=Latest %s products/services which were modified -LastRecordedProducts=Latest %s recorded products -LastRecordedServices=Latest %s recorded services +LastModifiedProductsAndServices=أحدث منتجات / خدمات %s التي تم تعديلها +LastRecordedProducts=أحدث المنتجات المسجلة %s +LastRecordedServices=أحدث الخدمات المسجلة %s CardProduct0=المنتج CardProduct1=الخدمة Stock=المخزون MenuStocks=المخزون -Stocks=Stocks and location (warehouse) of products +Stocks=المخزون وموقع (المستودع) للمنتجات Movements=حركات Sell=يبيع -Buy=Purchase +Buy=شراء OnSell=متاح للبيع OnBuy=للشراء NotOnSell=ليس للبيع @@ -68,19 +68,19 @@ ProductStatusNotOnBuyShort=ليس للشراء UpdateVAT=تحديث الضريبة على القيمة المضافة UpdateDefaultPrice=تحديث السعر الافتراضي UpdateLevelPrices=أسعار التحديث لكل مستوى -AppliedPricesFrom=Applied from +AppliedPricesFrom=تطبق من SellingPrice=سعر البيع -SellingPriceHT=Selling price (excl. tax) +SellingPriceHT=سعر البيع (بدون الضريبة) SellingPriceTTC=سعر البيع (شامل الضريبية) -SellingMinPriceTTC=Minimum Selling price (inc. tax) -CostPriceDescription=This price field (excl. tax) can be used to capture the average amount this product costs to your company. It may be any price you calculate yourself, for example, from the average buying price plus average production and distribution cost. -CostPriceUsage=This value could be used for margin calculation. -ManufacturingPrice=Manufacturing price -SoldAmount=Sold amount -PurchasedAmount=Purchased amount +SellingMinPriceTTC=الحد الأدنى لسعر البيع (شامل الضريبة) +CostPriceDescription=يمكن استخدام حقل السعر هذا (باستثناء الضريبة) لتسجيل متوسط المبلغ الذي يكلفه هذا المنتج لشركتك. قد يكون أي سعر تحسبه بنفسك ، على سبيل المثال ، من متوسط سعر الشراء بالإضافة إلى متوسط تكلفة الإنتاج والتوزيع. +CostPriceUsage=يمكن استخدام هذه القيمة لحساب الهامش. +ManufacturingPrice=سعر التصنيع +SoldAmount=المبلغ المباع +PurchasedAmount=الكمية المشتراة NewPrice=السعر الجديد -MinPrice=Min. selling price -EditSellingPriceLabel=Edit selling price label +MinPrice=دقيقة. سعر البيع +EditSellingPriceLabel=تحرير تسمية سعر البيع CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب) ContractStatusClosed=مغلق ErrorProductAlreadyExists=المنتج ذو المرجع %sموجود بالفعل. @@ -88,7 +88,7 @@ ErrorProductBadRefOrLabel=قيمة خاطئة لـ مرجع أو ملصق. ErrorProductClone=كان هناك مشكلة أثناء محاولة استنساخ المنتج أو الخدمة. ErrorPriceCantBeLowerThanMinPrice=خطأ، سعر لا يمكن أن يكون أقل من الحد الأدنى السعر. Suppliers=الموردين -SupplierRef=Vendor SKU +SupplierRef=البائع SKU ShowProduct=عرض المنتج ShowService=عرض الخدمة ProductsAndServicesArea=منطقة المنتجات والخدمات @@ -97,7 +97,7 @@ ServicesArea=منطقة الخدمات ListOfStockMovements=قائمة الحركات المخزون BuyingPrice=سعر الشراء PriceForEachProduct=المنتجات بأسعار محددة -SupplierCard=Vendor card +SupplierCard=بطاقة البائع PriceRemoved=تمت إزالة السعر BarCode=الباركود BarcodeType=نوع الباركود @@ -105,25 +105,25 @@ SetDefaultBarcodeType=حدد نوع الباركود BarcodeValue=قيمة الباركود NoteNotVisibleOnBill=ملحوظة(غيرمرئية على الفواتير والعروض...) ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة : -FillWithLastServiceDates=Fill with last service line dates -MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment) +FillWithLastServiceDates=املأ بتاريخ آخر سطر خدمة +MultiPricesAbility=شرائح أسعار متعددة لكل منتج / خدمة (كل عميل في شريحة سعر واحدة) MultiPricesNumPrices=عدد من السعر -DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices -AssociatedProductsAbility=Enable Kits (set of several products) -VariantsAbility=Enable Variants (variations of products, for example color, size) -AssociatedProducts=Kits -AssociatedProductsNumber=Number of products composing this kit +DefaultPriceType=أساس أسعار التخلف عن السداد (مع عدم وجود ضريبة) عند إضافة أسعار بيع جديدة +AssociatedProductsAbility=مجموعات التمكين (مجموعة من عدة منتجات) +VariantsAbility=تمكين المتغيرات (أشكال المنتجات ، على سبيل المثال اللون والحجم) +AssociatedProducts=أطقم +AssociatedProductsNumber=عدد المنتجات المكونة لهذه المجموعة ParentProductsNumber=عدد منتج التعبئة الاب -ParentProducts=Parent products -IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit -IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit +ParentProducts=المنتجات الأم +IfZeroItIsNotAVirtualProduct=إذا كانت القيمة 0 ، فهذا المنتج ليس مجموعة +IfZeroItIsNotUsedByVirtualProduct=إذا كانت القيمة 0 ، فلا تستخدم أي مجموعة هذا المنتج KeywordFilter=فلتر الكلمة المقتاحية CategoryFilter=فلتر التصنيف ProductToAddSearch= إبحث عن منتج لإضافتة NoMatchFound=لا يوجد نتائج متطابقة -ListOfProductsServices=List of products/services -ProductAssociationList=List of products/services that are component(s) of this kit -ProductParentList=List of kits with this product as a component +ListOfProductsServices=قائمة المنتجات / الخدمات +ProductAssociationList=قائمة المنتجات / الخدمات المكونة (مكونات) هذه المجموعة +ProductParentList=قائمة مجموعات مع هذا المنتج كمكون ErrorAssociationIsFatherOfThis=واحد من اختيار المنتج الأم الحالية المنتج DeleteProduct=حذف منتج / خدمة ConfirmDeleteProduct=هل أنت متأكد من حذف هذا المنتج / الخدمة؟ @@ -135,21 +135,22 @@ ImportDataset_service_1=الخدمات DeleteProductLine=حذف خط الإنتاج ConfirmDeleteProductLine=هل أنت متأكد من أنك تريد حذف خط الإنتاج؟ ProductSpecial=خاص -QtyMin=Min. purchase quantity -PriceQtyMin=Price quantity min. -PriceQtyMinCurrency=Price (currency) for this qty. (no discount) -VATRateForSupplierProduct=VAT Rate (for this vendor/product) -DiscountQtyMin=Discount for this qty. -NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product -NoSupplierPriceDefinedForThisProduct=No vendor price/qty defined for this product -PredefinedItem=Predefined item -PredefinedProductsToSell=Predefined Product -PredefinedServicesToSell=Predefined Service +QtyMin=دقيقة. كمية الشراء +PriceQtyMin=كمية السعر دقيقة. +PriceQtyMinCurrency=السعر (العملة) لهذه الكمية. +WithoutDiscount=بدون خصم +VATRateForSupplierProduct=معدل ضريبة القيمة المضافة (لهذا البائع / المنتج) +DiscountQtyMin=خصم على هذه الكمية. +NoPriceDefinedForThisSupplier=لم يتم تحديد سعر / كمية لهذا البائع / المنتج +NoSupplierPriceDefinedForThisProduct=لم يتم تحديد سعر البائع / الكمية لهذا المنتج +PredefinedItem=عنصر محدد مسبقًا +PredefinedProductsToSell=منتج محدد مسبقا +PredefinedServicesToSell=الخدمة المحددة مسبقًا PredefinedProductsAndServicesToSell=منتجات محددة مسبقا / خدمات للبيع PredefinedProductsToPurchase=المنتج مسبقا لشراء PredefinedServicesToPurchase=خدمات محددة مسبقا لشراء -PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase -NotPredefinedProducts=Not predefined products/services +PredefinedProductsAndServicesToPurchase=المنتجات / الخدمات المحددة مسبقًا للشراء +NotPredefinedProducts=منتجات / خدمات غير محددة مسبقًا GenerateThumb=توليد صورة مصغرة ServiceNb=خدمة #%s ListProductServiceByPopularity=قائمة المنتجات / الخدمات حسب الشهرة @@ -158,25 +159,25 @@ ListServiceByPopularity=قائمة الخدمات بحسب الشهرة Finished=المنتجات المصنعة RowMaterial=المادة الخام ConfirmCloneProduct=هل انت متأكد انك ترغب في استنساخ المنتج/الخدمة %s؟ -CloneContentProduct=Clone all main information of the product/service -ClonePricesProduct=Clone prices -CloneCategoriesProduct=Clone linked tags/categories -CloneCompositionProduct=Clone virtual products/services -CloneCombinationsProduct=Clone the product variants +CloneContentProduct=استنساخ جميع المعلومات الرئيسية للمنتج / الخدمة +ClonePricesProduct=أسعار النسخ +CloneCategoriesProduct=استنساخ العلامات / الفئات المرتبطة +CloneCompositionProduct=استنساخ المنتجات / الخدمات الافتراضية +CloneCombinationsProduct=استنساخ متغيرات المنتج ProductIsUsed=هذا المنتج يتم استخدامة NewRefForClone=مرجع. المنتج/ الخدمة الجديدة  SellingPrices=أسعار بيع BuyingPrices=شراء أسعار CustomerPrices=أسعار العميل SuppliersPrices=أسعار المورد -SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) -CustomCode=Customs|Commodity|HS code -CountryOrigin=Country of origin -RegionStateOrigin=Region of origin -StateOrigin=State|Province of origin -Nature=Nature of product (raw/manufactured) -NatureOfProductShort=Nature of product -NatureOfProductDesc=Raw material or manufactured product +SuppliersPricesOfProductsOrServices=أسعار البائعين (للمنتجات أو الخدمات) +CustomCode=الجمارك | السلع | رمز النظام المنسق +CountryOrigin=بلد المنشأ +RegionStateOrigin=منطقة المنشأ +StateOrigin=الولاية | مقاطعة المنشأ +Nature=طبيعة المنتج (خام / مصنع) +NatureOfProductShort=طبيعة المنتج +NatureOfProductDesc=المواد الخام أو المنتجات المصنعة ShortLabel=التسمية قصيرة Unit=وحدة p=ش. @@ -199,39 +200,39 @@ m2=متر مربع m3=متر مكعب liter=لتر l=L -unitP=Piece -unitSET=Set +unitP=قطعة +unitSET=تعيين unitS=الثاني unitH=ساعة unitD=يوم -unitG=Gram -unitM=Meter -unitLM=Linear meter -unitM2=Square meter -unitM3=Cubic meter -unitL=Liter -unitT=ton +unitG=غرام +unitM=متر +unitLM=متر طولي +unitM2=متر مربع +unitM3=متر مكعب +unitL=لتر +unitT=طن unitKG=كجم -unitG=Gram +unitG=غرام unitMG=مغلم unitLB=جنيه unitOZ=أوقية -unitM=Meter +unitM=متر unitDM=مارك ألماني unitCM=الطول unitMM=مم -unitFT=ft -unitIN=in -unitM2=Square meter +unitFT=قدم +unitIN=في +unitM2=متر مربع unitDM2=dm² unitCM2=سم ² unitMM2=مم ² unitFT2=قدم مربع unitIN2=in² -unitM3=Cubic meter +unitM3=متر مكعب unitDM3=dm³ -unitCM3=cm³ -unitMM3=mm³ +unitCM3=سم³ +unitMM3=مم³ unitFT3=ft³ unitIN3=في بوابة unitOZ3=أوقية @@ -242,15 +243,15 @@ CurrentProductPrice=السعر الحالي AlwaysUseNewPrice=دائما استخدم السعر الحالي للمنتج / الخدمة AlwaysUseFixedPrice=استخدم السعر الثابت PriceByQuantity=أسعار مختلفة حسب الكمية -DisablePriceByQty=Disable prices by quantity +DisablePriceByQty=تعطيل الأسعار بالكمية PriceByQuantityRange=مدى الكمية -MultipriceRules=Automatic prices for segment -UseMultipriceRules=Use price segment rules (defined into product module setup) to auto calculate prices of all other segments according to first segment +MultipriceRules=الأسعار التلقائية للقطاع +UseMultipriceRules=استخدم قواعد شريحة السعر (المحددة في إعداد وحدة المنتج) لحساب أسعار جميع الشرائح الأخرى تلقائيًا وفقًا للشريحة الأولى PercentVariationOver=٪٪ الاختلاف على الصورة٪ PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products -VariantRefExample=Examples: COL, SIZE -VariantLabelExample=Examples: Color, Size +KeepEmptyForAutoCalculation=احتفظ به فارغًا ليتم حسابه تلقائيًا من وزن أو حجم المنتجات +VariantRefExample=أمثلة: COL ، SIZE +VariantLabelExample=أمثلة: اللون والحجم ### composition fabrication Build=إنتاج ProductsMultiPrice=المنتجات و الاسعار لكل شريحة @@ -261,153 +262,170 @@ Quarter1=الربع الإول Quarter2=الربع الثاني Quarter3=الربع الثالث Quarter4=الربع الرابع -BarCodePrintsheet=طباعة الباركود -PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. +BarCodePrintsheet=طباعة الرموز الشريطية +PageToGenerateBarCodeSheets=باستخدام هذه الأداة ، يمكنك طباعة أوراق ملصقات الباركود. اختر تنسيق صفحة الملصق ونوع الباركود وقيمة الباركود ، ثم انقر فوق الزر %s . NumberOfStickers=عدد من الملصقات للطباعة على الصفحة PrintsheetForOneBarCode=طباعة عدة ملصقات لالباركود واحد BuildPageToPrint=توليد صفحة للطباعة FillBarCodeTypeAndValueManually=ملء نوع وقيمة الباركود يدويا. FillBarCodeTypeAndValueFromProduct=ملء نوع وقيمة الباركود من باركود المنتج. FillBarCodeTypeAndValueFromThirdParty=ملء نوع وقيمة الباركود من باركود طرف ثالت. -DefinitionOfBarCodeForProductNotComplete=Definition of type or value of barcode not complete for product %s. -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of barcode non complete for third party %s. -BarCodeDataForProduct=Barcode information of product %s: -BarCodeDataForThirdparty=Barcode information of third party %s: -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) -PriceByCustomer=Different prices for each customer -PriceCatalogue=A single sell price per product/service -PricingRule=Rules for selling prices +DefinitionOfBarCodeForProductNotComplete=تعريف نوع أو قيمة الباركود غير كامل للمنتج %s. +DefinitionOfBarCodeForThirdpartyNotComplete=تعريف نوع أو قيمة الباركود غير كامل بالنسبة لجهة خارجية %s. +BarCodeDataForProduct=معلومات الباركود للمنتج %s: +BarCodeDataForThirdparty=معلومات الباركود لطرف ثالث %s: +ResetBarcodeForAllRecords=تحديد قيمة الرمز الشريطي لجميع السجلات (سيؤدي هذا أيضًا إلى إعادة تعيين قيمة الرمز الشريطي المحددة بالفعل بقيم جديدة) +PriceByCustomer=أسعار مختلفة لكل عميل +PriceCatalogue=سعر بيع واحد لكل منتج / خدمة +PricingRule=قواعد أسعار البيع AddCustomerPrice=إضافة السعر من قبل العملاء -ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries +ForceUpdateChildPriceSoc=حدد نفس السعر على الشركات التابعة للعميل PriceByCustomerLog=سجل الأسعار العملاء السابقة MinimumPriceLimit=سعر الحد الأدنى لا يمكن أن يكون أقل ثم٪ الصورة -MinimumRecommendedPrice=Minimum recommended price is: %s +MinimumRecommendedPrice=أدنى سعر موصى به هو: %s PriceExpressionEditor=محرر السعر التعبير PriceExpressionSelected=اختيار التعبير السعر PriceExpressionEditorHelp1="السعر = 2 + 2" أو "2 + 2" لتحديد السعر. استخدام ؛ لفصل التعبيرات PriceExpressionEditorHelp2=يمكنك الوصول إلى ExtraFields مع المتغيرات مثل # # extrafield_myextrafieldkey والمتغيرات العالمية مع # global_mycode # -PriceExpressionEditorHelp3=In both product/service and vendor prices there are these variables available:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# -PriceExpressionEditorHelp4=In product/service price only: #supplier_min_price#
    In vendor prices only: #supplier_quantity# and #supplier_tva_tx# +PriceExpressionEditorHelp3=تتوفر هذه المتغيرات في أسعار المنتج / الخدمة والموردين:
    # tva_tx # # localtax1_tx # # localtax2_tx # # weight # # length # # Surface # # price_min # +PriceExpressionEditorHelp4=في سعر المنتج / الخدمة فقط: # supplier_min_price #
    في أسعار البائعين فقط: # supplier_quantity # and # supplier_tva_tx # a09a4b739f17 PriceExpressionEditorHelp5=القيم العالمية المتاحة: PriceMode=وضع السعر PriceNumeric=عدد DefaultPrice=سعر افتراضي -DefaultPriceLog=Log of previous default prices +DefaultPriceLog=سجل الأسعار الافتراضية السابقة ComposedProductIncDecStock=زيادة / نقصان الأسهم على التغيير الأم -ComposedProduct=Child products +ComposedProduct=منتجات الأطفال MinSupplierPrice=الحد الأدنى من سعر الشراء -MinCustomerPrice=Minimum selling price -NoDynamicPrice=No dynamic price +MinCustomerPrice=أدنى سعر بيع +NoDynamicPrice=لا يوجد سعر ديناميكي DynamicPriceConfiguration=التكوين سعر ديناميكي -DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically. -AddVariable=Add Variable -AddUpdater=Add Updater +DynamicPriceDesc=يمكنك تحديد الصيغ الرياضية لحساب أسعار العميل أو البائع. يمكن أن تستخدم هذه الصيغ جميع العوامل الرياضية ، وبعض الثوابت والمتغيرات. يمكنك هنا تحديد المتغيرات التي ترغب في استخدامها. إذا كان المتغير يحتاج إلى تحديث تلقائي ، فيمكنك تحديد عنوان URL الخارجي للسماح لـ Dolibarr بتحديث القيمة تلقائيًا. +AddVariable=أضف متغير +AddUpdater=أضف المحدث GlobalVariables=المتغيرات العالمية -VariableToUpdate=Variable to update -GlobalVariableUpdaters=External updaters for variables +VariableToUpdate=متغير للتحديث +GlobalVariableUpdaters=المحدِّثات الخارجية للمتغيرات GlobalVariableUpdaterType0=البيانات JSON GlobalVariableUpdaterHelp0=يوزع البيانات JSON من URL محددة، تحدد قيمة الموقع من القيمة ذات الصلة، -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterHelpFormat0=تنسيق الطلب {"URL": "http://example.com/urlofjson"، "VALUE": "array1، array2، targetvalue"} GlobalVariableUpdaterType1=بيانات خدمة ويب GlobalVariableUpdaterHelp1=يوزع بيانات خدمة ويب من URL المحدد، NS يحدد مساحة الاسم، تحدد قيمة الموقع من القيمة ذات الصلة، يجب أن تحتوي على بيانات البيانات لإرسال والطريقة هي الطريقة WS الدعوة -GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} +GlobalVariableUpdaterHelpFormat1=تنسيق الطلب هو {"URL": "http://example.com/urlofws" ، "VALUE": "array ، targetvalue" ، "NS": "http://example.com/urlofns" ، "METHOD" : "myWSMethod"، "DATA": {"your": "data"، "to": "send"}} UpdateInterval=تحديث الفاصل الزمني (دقائق) -LastUpdated=Latest update +LastUpdated=اخر تحديث CorrectlyUpdated=تحديثها بشكل صحيح PropalMergePdfProductActualFile=استخدام الملفات لإضافة إلى PDF دازور هي / هو PropalMergePdfProductChooseFile=اختر ملفات PDF -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=بما في ذلك المنتجات / الخدمات مع العلامة DefaultPriceRealPriceMayDependOnCustomer=سعر افتراضي، السعر الحقيقي قد تعتمد على العملاء WarningSelectOneDocument=يرجى تحديد وثيقة واحدة على الأقل DefaultUnitToShow=وحدة -NbOfQtyInProposals=Qty in proposals -ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view... -ProductsOrServicesTranslations=Products/Services translations -TranslatedLabel=Translated label -TranslatedDescription=Translated description -TranslatedNote=Translated notes -ProductWeight=Weight for 1 product -ProductVolume=Volume for 1 product -WeightUnits=Weight unit -VolumeUnits=Volume unit -WidthUnits=Width unit -LengthUnits=Length unit -HeightUnits=Height unit -SurfaceUnits=Surface unit -SizeUnits=Size unit -DeleteProductBuyPrice=Delete buying price -ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? -SubProduct=Sub product -ProductSheet=Product sheet -ServiceSheet=Service sheet -PossibleValues=Possible values -GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...) -UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers -ProductSupplierDescription=Vendor description for the product -UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) -PackagingForThisProduct=Packaging -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity -QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging +NbOfQtyInProposals=الكمية في المقترحات +ClinkOnALinkOfColumn=انقر فوق ارتباط العمود %s للحصول على عرض تفصيلي ... +ProductsOrServicesTranslations=ترجمة المنتجات / الخدمات +TranslatedLabel=تسمية مترجمة +TranslatedDescription=وصف مترجم +TranslatedNote=ملاحظات مترجمة +ProductWeight=الوزن لمنتج واحد +ProductVolume=الحجم لمنتج واحد +WeightUnits=وحدة الوزن +VolumeUnits=وحدة الحجم +WidthUnits=وحدة العرض +LengthUnits=وحدة الطول +HeightUnits=وحدة الارتفاع +SurfaceUnits=وحدة السطح +SizeUnits=وحدة الحجم +DeleteProductBuyPrice=حذف سعر الشراء +ConfirmDeleteProductBuyPrice=هل أنت متأكد أنك تريد حذف سعر الشراء هذا؟ +SubProduct=المنتج الفرعي +ProductSheet=ورقة المنتج +ServiceSheet=ورقة الخدمة +PossibleValues=القيم الممكنة +GoOnMenuToCreateVairants=انتقل إلى القائمة %s - %s لإعداد متغيرات السمات (مثل الألوان والحجم ...) +UseProductFournDesc=أضف ميزة لتحديد وصف المنتج المحدد من قبل البائعين (لكل مرجع مورد) بالإضافة إلى وصف العملاء +ProductSupplierDescription=وصف البائع للمنتج +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) +PackagingForThisProduct=التعبئة والتغليف +PackagingForThisProductDesc=سوف تشتري تلقائيًا مضاعفات هذه الكمية. +QtyRecalculatedWithPackaging=تمت إعادة حساب كمية الخط وفقًا لتعبئة المورد #Attributes -VariantAttributes=Variant attributes -ProductAttributes=Variant attributes for products -ProductAttributeName=Variant attribute %s -ProductAttribute=Variant attribute -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object -ProductCombinations=Variants -PropagateVariant=Propagate variants -HideProductCombinations=Hide products variant in the products selector -ProductCombination=Variant -NewProductCombination=New variant -EditProductCombination=Editing variant -NewProductCombinations=New variants -EditProductCombinations=Editing variants -SelectCombination=Select combination -ProductCombinationGenerator=Variants generator -Features=Features -PriceImpact=Price impact -ImpactOnPriceLevel=Impact on price level %s -ApplyToAllPriceImpactLevel= Apply to all levels -ApplyToAllPriceImpactLevelHelp=By clicking here you set the same price impact on all levels -WeightImpact=Weight impact +VariantAttributes=سمات متغيرة +ProductAttributes=سمات متغيرة للمنتجات +ProductAttributeName=سمة المتغير %s +ProductAttribute=السمة المتغيرة +ProductAttributeDeleteDialog=هل أنت متأكد أنك تريد حذف هذه السمة؟ سيتم حذف جميع القيم +ProductAttributeValueDeleteDialog=هل تريد بالتأكيد حذف القيمة "%s" بالمرجع "%s" لهذه السمة؟ +ProductCombinationDeleteDialog=هل تريد بالتأكيد حذف متغير المنتج " %s "؟ +ProductCombinationAlreadyUsed=حدث خطأ أثناء حذف المتغير. يرجى التحقق من عدم استخدامه في أي كائن +ProductCombinations=المتغيرات +PropagateVariant=نشر المتغيرات +HideProductCombinations=إخفاء متغير المنتجات في محدد المنتجات +ProductCombination=متغير +NewProductCombination=متغير جديد +EditProductCombination=تحرير المتغير +NewProductCombinations=المتغيرات الجديدة +EditProductCombinations=تحرير المتغيرات +SelectCombination=حدد مجموعة +ProductCombinationGenerator=مولد المتغيرات +Features=سمات +PriceImpact=تأثير السعر +ImpactOnPriceLevel=التأثير على مستوى السعر %s +ApplyToAllPriceImpactLevel= تنطبق على جميع المستويات +ApplyToAllPriceImpactLevelHelp=بالضغط هنا فإنك تحدد نفس تأثير السعر على جميع المستويات +WeightImpact=تأثير الوزن NewProductAttribute=جديد السمة -NewProductAttributeValue=New attribute value -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. -DoNotRemovePreviousCombinations=Do not remove previous variants -UsePercentageVariations=Use percentage variations -PercentageVariation=Percentage variation -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants -NbOfDifferentValues=No. of different values -NbProducts=Number of products -ParentProduct=Parent product -HideChildProducts=Hide variant products -ShowChildProducts=Show variant products -NoEditVariants=Go to Parent product card and edit variants price impact in the variants tab -ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? -CloneDestinationReference=Destination product reference -ErrorCopyProductCombinations=There was an error while copying the product variants -ErrorDestinationProductNotFound=Destination product not found -ErrorProductCombinationNotFound=Product variant not found -ActionAvailableOnVariantProductOnly=Action only available on the variant of product -ProductsPricePerCustomer=Product prices per customers -ProductSupplierExtraFields=Additional Attributes (Supplier Prices) -DeleteLinkedProduct=Delete the child product linked to the combination -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +NewProductAttributeValue=قيمة السمة الجديدة +ErrorCreatingProductAttributeValue=حدث خطأ أثناء إنشاء قيمة السمة. قد يكون ذلك بسبب وجود قيمة موجودة بالفعل بهذا المرجع +ProductCombinationGeneratorWarning=إذا تابعت ، قبل إنشاء متغيرات جديدة ، سيتم حذف جميع المتغيرات السابقة. سيتم تحديث القيم الموجودة بالفعل بالقيم الجديدة +TooMuchCombinationsWarning=قد يؤدي توليد الكثير من المتغيرات إلى ارتفاع استخدام وحدة المعالجة المركزية والذاكرة وعدم قدرة Dolibarr على إنشائها. قد يساعد تمكين الخيار "%s" في تقليل استخدام الذاكرة. +DoNotRemovePreviousCombinations=لا تقم بإزالة المتغيرات السابقة +UsePercentageVariations=استخدم الاختلافات المئوية +PercentageVariation=اختلاف النسبة المئوية +ErrorDeletingGeneratedProducts=حدث خطأ أثناء محاولة حذف متغيرات المنتج الحالية +NbOfDifferentValues=عدد القيم المختلفة +NbProducts=عدد من المنتجات +ParentProduct=المنتج الأصلي +HideChildProducts=إخفاء المنتجات المتنوعة +ShowChildProducts=عرض المنتجات المتنوعة +NoEditVariants=انتقل إلى بطاقة المنتج الرئيسي وقم بتعديل تأثير سعر المتغيرات في علامة تبويب المتغيرات +ConfirmCloneProductCombinations=هل ترغب في نسخ جميع متغيرات المنتج إلى المنتج الأصلي الآخر مع المرجع المحدد؟ +CloneDestinationReference=مرجع المنتج الوجهة +ErrorCopyProductCombinations=حدث خطأ أثناء نسخ متغيرات المنتج +ErrorDestinationProductNotFound=المنتج الوجهة غير موجود +ErrorProductCombinationNotFound=لم يتم العثور على صيغة المنتج +ActionAvailableOnVariantProductOnly=الإجراء متاح فقط على متغير المنتج +ProductsPricePerCustomer=أسعار المنتجات لكل عميل +ProductSupplierExtraFields=السمات الإضافية (أسعار الموردين) +DeleteLinkedProduct=احذف المنتج الفرعي المرتبط بالمجموعة +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=المتوسط المرجح لسعر PMPValueShort=الواب -mandatoryperiod=Mandatory periods -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined -mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period -mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
    Note that the message is a warning and not a blocking error. -DefaultBOM=Default BOM -DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. -Rank=Rank -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +mandatoryperiod=فترات إلزامية +mandatoryPeriodNeedTobeSet=ملاحظة: يجب تحديد الفترة (تاريخ البدء والانتهاء) +mandatoryPeriodNeedTobeSetMsgValidate=تتطلب الخدمة فترة بداية ونهاية +mandatoryHelper=حدد هذا إذا كنت تريد رسالة إلى المستخدم عند إنشاء / التحقق من صحة فاتورة ، أو عرض تجاري ، أو أمر مبيعات دون إدخال تاريخ بدء وانتهاء في سطور هذه الخدمة.
    لاحظ أن الرسالة تحذير وليست خطأ حظر. +DefaultBOM=الافتراضي BOM +DefaultBOMDesc=يوصى باستخدام قائمة مكونات الصنف الافتراضية لتصنيع هذا المنتج. يمكن تعيين هذا الحقل فقط إذا كانت طبيعة المنتج "%s". +Rank=مرتبة +MergeOriginProduct=منتج مكرر (المنتج الذي تريد حذفه) +MergeProducts=دمج المنتجات +ConfirmMergeProducts=هل أنت متأكد أنك تريد دمج المنتج المختار مع المنتج الحالي؟ سيتم نقل جميع العناصر المرتبطة (الفواتير ، الطلبات ، ...) إلى المنتج الحالي ، وبعد ذلك سيتم حذف المنتج المختار. +ProductsMergeSuccess=تم دمج المنتجات +ErrorsProductsMerge=دمج الأخطاء في المنتجات +SwitchOnSaleStatus=قم بتشغيل حالة البيع +SwitchOnPurchaseStatus=قم بتشغيل حالة الشراء +UpdatePrice=Increase/decrease customer price +StockMouvementExtraFields= الحقول الإضافية (حركة الأسهم) +InventoryExtraFields= الحقول الإضافية (المخزون) +ScanOrTypeOrCopyPasteYourBarCodes=امسح أو اكتب أو انسخ / الصق الرموز الشريطية +PuttingPricesUpToDate=تحديث الأسعار بالأسعار الحالية المعروفة +PMPExpected=يتوقع PMP +ExpectedValuation=التقييم المتوقع +PMPReal=حقيقي PMP +RealValuation=التقييم الحقيقي +ConfirmEditExtrafield = حدد المجال الإضافي الذي تريد تعديله +ConfirmEditExtrafieldQuestion = هل أنت متأكد أنك تريد تعديل هذا المجال الإضافي؟ +ModifyValueExtrafields = تعديل قيمة اكسترافيلد +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang index 17b4277a353..cc5c43d57ad 100644 --- a/htdocs/langs/ar_SA/projects.lang +++ b/htdocs/langs/ar_SA/projects.lang @@ -3,51 +3,54 @@ RefProject=المرجع. مشروع ProjectRef=المرجع المشروع. ProjectId=رقم المشروع ProjectLabel=تسمية المشروع -ProjectsArea=Projects Area +ProjectsArea=منطقة المشاريع ProjectStatus=حالة المشروع SharedProject=مشاريع مشتركة -PrivateProject=Assigned contacts -ProjectsImContactFor=Projects for which I am explicitly a contact -AllAllowedProjects=All project I can read (mine + public) +PrivateProject=جهات الاتصال المعينة +ProjectsImContactFor=المشاريع التي أنا على اتصال صريح بها +AllAllowedProjects=كل مشروع يمكنني قراءته (ملكي + عام) AllProjects=جميع المشاريع -MyProjectsDesc=This view is limited to the projects that you are a contact for +MyProjectsDesc=يقتصر هذا العرض على المشاريع التي تكون جهة اتصال لها ProjectsPublicDesc=هذا الرأي يعرض جميع المشاريع ويسمح لك قراءة. -TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. +TasksOnProjectsPublicDesc=تقدم طريقة العرض هذه جميع المهام في المشاريع المسموح لك بقراءتها. ProjectsPublicTaskDesc=يمثل هذا العرض جميع المشاريع والمهام يسمح لك للقراءة. ProjectsDesc=ويعرض هذا الرأي جميع المشاريع (أذونات المستخدم الخاص أعطى الصلاحية لعرض كل شيء). -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything). -MyTasksDesc=This view is limited to the projects or tasks that you are a contact for +TasksOnProjectsDesc=تقدم طريقة العرض هذه جميع المهام في جميع المشاريع (تمنحك أذونات المستخدم الخاصة بك الإذن لعرض كل شيء). +MyTasksDesc=طريقة العرض هذه مقصورة على المشاريع أو المهام التي أنت جهة اتصال لها OnlyOpenedProject=المشاريع المفتوحة فقط مرئية (المشاريع في مشروع أو وضع مغلقة غير مرئية). -ClosedProjectsAreHidden=Closed projects are not visible. +ClosedProjectsAreHidden=المشاريع المغلقة غير مرئية. TasksPublicDesc=هذا الرأي يعرض جميع المشاريع والمهام ويسمح لك قراءة. TasksDesc=هذا الرأي يعرض جميع المشاريع والمهام (أذونات المستخدم الخاص أعطى الصلاحية لعرض كل شيء). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. -ImportDatasetTasks=Tasks of projects -ProjectCategories=Project tags/categories +AllTaskVisibleButEditIfYouAreAssigned=تظهر جميع المهام للمشاريع المؤهلة ، ولكن يمكنك إدخال الوقت فقط للمهمة المعينة للمستخدم المحدد. قم بتعيين مهمة إذا كنت بحاجة إلى إدخال الوقت فيها. +OnlyYourTaskAreVisible=تظهر فقط المهام المعينة لك. إذا كنت بحاجة إلى إدخال الوقت في مهمة وإذا كانت المهمة غير مرئية هنا ، فأنت بحاجة إلى تعيين المهمة لنفسك. +ImportDatasetProjects=Projects or opportunities +ImportDatasetTasks=مهام المشاريع +ProjectCategories=علامات / فئات المشروع NewProject=مشروع جديد AddProject=إنشاء مشروع DeleteAProject=حذف مشروع DeleteATask=حذف مهمة -ConfirmDeleteAProject=Are you sure you want to delete this project? -ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Open projects -OpenedTasks=Open tasks -OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status -OpportunitiesStatusForProjects=Leads amount of projects by status +ConfirmDeleteAProject=هل أنت متأكد أنك تريد حذف هذا المشروع؟ +ConfirmDeleteATask=هل أنت متأكد أنك تريد حذف هذه المهمة؟ +OpenedProjects=فتح المشاريع +OpenedTasks=افتح المهام +OpportunitiesStatusForOpenedProjects=يقود كمية من المشاريع المفتوحة حسب الحالة +OpportunitiesStatusForProjects=يقود كمية من المشاريع حسب الحالة ShowProject=وتبين للمشروع ShowTask=وتظهر هذه المهمة +SetThirdParty=Set third party SetProject=وضع المشروع +OutOfProject=Out of project NoProject=لا يعرف أو المملوكة للمشروع -NbOfProjects=Number of projects -NbOfTasks=Number of tasks +NbOfProjects=عدد المشاريع +NbOfTasks=عدد المهام TimeSpent=الوقت الذي تستغرقه TimeSpentByYou=الوقت الذي يقضيه من قبلك TimeSpentByUser=الوقت الذي يقضيه المستخدم TimesSpent=قضى وقتا -TaskId=Task ID -RefTask=Task ref. -LabelTask=Task label +TaskId=معرف المهمة +RefTask=مرجع المهمة. +LabelTask=تسمية المهمة TaskTimeSpent=الوقت المستغرق في المهام TaskTimeUser=المستعمل TaskTimeNote=ملاحظة @@ -56,10 +59,10 @@ TasksOnOpenedProject=المهام على المشاريع المفتوحة WorkloadNotDefined=عبء العمل غير محددة NewTimeSpent=قضى وقتا MyTimeSpent=وقتي قضى -BillTime=Bill the time spent -BillTimeShort=Bill time -TimeToBill=Time not billed -TimeBilled=Time billed +BillTime=فاتورة الوقت الذي يقضيه +BillTimeShort=فاتورة الوقت +TimeToBill=الوقت غير مفوتر +TimeBilled=الوقت المفوتر Tasks=المهام Task=مهمة TaskDateStart=تاريخ بدء العمل @@ -67,80 +70,81 @@ TaskDateEnd=تاريخ انتهاء المهمة TaskDescription=وصف المهمة NewTask=مهمة جديدة AddTask=إنشاء مهمة -AddTimeSpent=Create time spent -AddHereTimeSpentForDay=Add here time spent for this day/task -AddHereTimeSpentForWeek=Add here time spent for this week/task +AddTimeSpent=قضاء الوقت +AddHereTimeSpentForDay=أضف هنا الوقت المنقضي لهذا اليوم / المهمة +AddHereTimeSpentForWeek=أضف هنا الوقت المنقضي لهذا الأسبوع / المهمة Activity=النشاط Activities=المهام والأنشطة MyActivities=بلدي المهام والأنشطة MyProjects=بلدي المشاريع -MyProjectsArea=My projects Area +MyProjectsArea=منطقة مشاريعي DurationEffective=فعالة لمدة -ProgressDeclared=Declared real progress -TaskProgressSummary=Task progress -CurentlyOpenedTasks=Curently open tasks -TheReportedProgressIsLessThanTheCalculatedProgressionByX=The declared real progress is less %s than the progress on consumption -TheReportedProgressIsMoreThanTheCalculatedProgressionByX=The declared real progress is more %s than the progress on consumption -ProgressCalculated=Progress on consumption -WhichIamLinkedTo=which I'm linked to -WhichIamLinkedToProject=which I'm linked to project +ProgressDeclared=أعلن التقدم الحقيقي +TaskProgressSummary=تقدم المهمة +CurentlyOpenedTasks=افتح المهام بهدوء +TheReportedProgressIsLessThanTheCalculatedProgressionByX=التقدم الحقيقي المعلن هو أقل من %s من التقدم في الاستهلاك +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=التقدم الحقيقي المعلن هو أكثر من %s من التقدم في الاستهلاك +ProgressCalculated=التقدم في الاستهلاك +WhichIamLinkedTo=الذي أنا مرتبط به +WhichIamLinkedToProject=الذي أنا مرتبط بالمشروع Time=وقت -TimeConsumed=Consumed -ListOfTasks=List of tasks -GoToListOfTimeConsumed=Go to list of time consumed -GanttView=Gantt View -ListWarehouseAssociatedProject=List of warehouses associated to the project -ListProposalsAssociatedProject=List of the commercial proposals related to the project -ListOrdersAssociatedProject=List of sales orders related to the project -ListInvoicesAssociatedProject=List of customer invoices related to the project -ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project -ListSupplierOrdersAssociatedProject=List of purchase orders related to the project -ListSupplierInvoicesAssociatedProject=List of vendor invoices related to the project -ListContractAssociatedProject=List of contracts related to the project -ListShippingAssociatedProject=List of shippings related to the project -ListFichinterAssociatedProject=List of interventions related to the project -ListExpenseReportsAssociatedProject=List of expense reports related to the project -ListDonationsAssociatedProject=List of donations related to the project -ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project -ListSalariesAssociatedProject=List of payments of salaries related to the project -ListActionsAssociatedProject=List of events related to the project -ListMOAssociatedProject=List of manufacturing orders related to the project +TimeConsumed=مستهلك +ListOfTasks=قائمة المهام +GoToListOfTimeConsumed=انتقل إلى قائمة الوقت المستغرق +GanttView=عرض جانت +ListWarehouseAssociatedProject=قائمة المستودعات المرتبطة بالمشروع +ListProposalsAssociatedProject=قائمة العروض التجارية المتعلقة بالمشروع +ListOrdersAssociatedProject=قائمة أوامر المبيعات المتعلقة بالمشروع +ListInvoicesAssociatedProject=قائمة بفواتير العملاء المتعلقة بالمشروع +ListPredefinedInvoicesAssociatedProject=قائمة فواتير نموذج العميل المتعلقة بالمشروع +ListSupplierOrdersAssociatedProject=قائمة أوامر الشراء المتعلقة بالمشروع +ListSupplierInvoicesAssociatedProject=قائمة فواتير البائع المتعلقة بالمشروع +ListContractAssociatedProject=قائمة العقود المتعلقة بالمشروع +ListShippingAssociatedProject=قائمة الشحنات المتعلقة بالمشروع +ListFichinterAssociatedProject=قائمة التدخلات المتعلقة بالمشروع +ListExpenseReportsAssociatedProject=قائمة تقارير المصاريف المتعلقة بالمشروع +ListDonationsAssociatedProject=قائمة التبرعات الخاصة بالمشروع +ListVariousPaymentsAssociatedProject=قائمة المدفوعات المتنوعة المتعلقة بالمشروع +ListSalariesAssociatedProject=قائمة مدفوعات الرواتب الخاصة بالمشروع +ListActionsAssociatedProject=قائمة الأحداث المتعلقة بالمشروع +ListMOAssociatedProject=قائمة أوامر التصنيع الخاصة بالمشروع ListTaskTimeUserProject=قائمة الوقت المستهلك في مهام المشروع -ListTaskTimeForTask=List of time consumed on task +ListTaskTimeForTask=قائمة الوقت المستغرق في المهمة ActivityOnProjectToday=النشاط على المشروع اليوم ActivityOnProjectYesterday=النشاط على المشروع أمس ActivityOnProjectThisWeek=نشاط المشروع هذا الاسبوع ActivityOnProjectThisMonth=نشاط المشروع هذا الشهر ActivityOnProjectThisYear=نشاط المشروع هذا العام ChildOfProjectTask=طفل من مشروع / مهمة -ChildOfTask=Child of task -TaskHasChild=Task has child +ChildOfTask=تابع المهمة +TaskHasChild=المهمة لها طفل NotOwnerOfProject=لا صاحب هذا المشروع من القطاع الخاص AffectedTo=إلى المتضررين -CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See tab '%s'. +CantRemoveProject=لا يمكن إزالة هذا المشروع حيث تمت الإشارة إليه بواسطة بعض العناصر الأخرى (فاتورة أو أوامر أو غيرها). انظر علامة التبويب "%s". ValidateProject=تحقق من مشروع غابة -ConfirmValidateProject=Are you sure you want to validate this project? +ConfirmValidateProject=هل أنت متأكد أنك تريد التحقق من صحة هذا المشروع؟ CloseAProject=وثيقة المشروع -ConfirmCloseAProject=Are you sure you want to close this project? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +ConfirmCloseAProject=هل أنت متأكد أنك تريد إغلاق هذا المشروع؟ +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=فتح مشروع -ConfirmReOpenAProject=Are you sure you want to re-open this project? +ConfirmReOpenAProject=هل أنت متأكد أنك تريد إعادة فتح هذا المشروع؟ ProjectContact=اتصالات من المشروع -TaskContact=Task contacts +TaskContact=جهات اتصال المهمة ActionsOnProject=الإجراءات على المشروع YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص -UserIsNotContactOfProject=User is not a contact of this private project +UserIsNotContactOfProject=المستخدم ليس جهة اتصال لهذا المشروع الخاص DeleteATimeSpent=قضى الوقت حذف -ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? +ConfirmDeleteATimeSpent=هل أنت متأكد أنك تريد حذف هذا الوقت المنقضي؟ DoNotShowMyTasksOnly=انظر أيضا المهام الغير موكلة الي ShowMyTasksOnly=عرض فقط المهام الموكلة الي -TaskRessourceLinks=Contacts of task +TaskRessourceLinks=اتصالات المهمة ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث NoTasks=أية مهام لهذا المشروع LinkedToAnotherCompany=ربط طرف ثالث آخر -TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +TaskIsNotAssignedToUser=لم يتم تعيين المهمة للمستخدم. استخدم الزر ' %s ' لتعيين المهمة الآن. ErrorTimeSpentIsEmpty=الوقت الذي يقضيه فارغة -TimeRecordingRestrictedToNMonthsBack=Time recording is restricted to %s months back +TimeRecordingRestrictedToNMonthsBack=تسجيل الوقت يقتصر على %s أشهر قبل ThisWillAlsoRemoveTasks=وهذا العمل أيضا حذف كافة مهام المشروع (%s المهام في الوقت الحاضر) وجميع المدخلات من الوقت الذي تستغرقه. IfNeedToUseOtherObjectKeepEmpty=إذا كانت بعض الكائنات (فاتورة، والنظام، ...)، الذين ينتمون إلى طرف ثالث آخر، يجب أن تكون مرتبطة بمشروع لإنشاء، والحفاظ على هذا فارغة لديها مشروع كونها متعددة الأطراف الثالثة. CloneTasks=استنساخ المهام @@ -148,28 +152,28 @@ CloneContacts=الاتصالات استنساخ CloneNotes=ملاحظات استنساخ CloneProjectFiles=انضم مشروع استنساخ ملفات CloneTaskFiles=مهمة استنساخ (ق) انضم الملفات (إن مهمة (ق) المستنسخة) -CloneMoveDate=Update project/tasks dates from now? -ConfirmCloneProject=Are you sure to clone this project? -ProjectReportDate=Change task dates according to new project start date +CloneMoveDate=هل تريد تحديث تواريخ المشروع / المهام من الآن؟ +ConfirmCloneProject=هل أنت متأكد من استنساخ هذا المشروع؟ +ProjectReportDate=قم بتغيير تواريخ المهام وفقًا لتاريخ بدء المشروع الجديد ErrorShiftTaskDate=من المستحيل تحويل التاريخ المهمة وفقا لتاريخ بدء المشروع الجديد ProjectsAndTasksLines=المشاريع والمهام ProjectCreatedInDolibarr=مشروع٪ الصورة التي تم إنشاؤها -ProjectValidatedInDolibarr=Project %s validated +ProjectValidatedInDolibarr=تم التحقق من صحة المشروع %s ProjectModifiedInDolibarr=المشروع %s تم تعديلة TaskCreatedInDolibarr=مهمة٪ الصورة التي تم إنشاؤها TaskModifiedInDolibarr=مهمة٪ الصورة المعدلة TaskDeletedInDolibarr=مهمة٪ الصورة حذف -OpportunityStatus=Lead status -OpportunityStatusShort=Lead status -OpportunityProbability=Lead probability -OpportunityProbabilityShort=Lead probab. -OpportunityAmount=Lead amount -OpportunityAmountShort=Lead amount -OpportunityWeightedAmount=Opportunity weighted amount -OpportunityWeightedAmountShort=Opp. weighted amount -OpportunityAmountAverageShort=Average lead amount -OpportunityAmountWeigthedShort=Weighted lead amount -WonLostExcluded=Won/Lost excluded +OpportunityStatus=حالة الرصاص +OpportunityStatusShort=حالة الرصاص +OpportunityProbability=احتمال الرصاص +OpportunityProbabilityShort=بروباب الرصاص. +OpportunityAmount=كمية الرصاص +OpportunityAmountShort=كمية الرصاص +OpportunityWeightedAmount=Amount of opportunity, weighted by probability +OpportunityWeightedAmountShort=مقابل. الكمية المرجحة +OpportunityAmountAverageShort=متوسط مبلغ الرصاص +OpportunityAmountWeigthedShort=مبلغ الرصاص المرجح +WonLostExcluded=فاز / خسر مستبعد ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=مشروع زعيم TypeContact_project_external_PROJECTLEADER=مشروع زعيم @@ -183,53 +187,53 @@ SelectElement=حدد العنصر AddElement=تصل إلى العنصر LinkToElementShort=ربط مع او بـ # Documents models -DocumentModelBeluga=Project document template for linked objects overview -DocumentModelBaleine=Project document template for tasks -DocumentModelTimeSpent=Project report template for time spent +DocumentModelBeluga=قالب مستند المشروع لنظرة عامة على الكائنات المرتبطة +DocumentModelBaleine=قالب مستند المشروع للمهام +DocumentModelTimeSpent=قالب تقرير المشروع عن الوقت الذي يقضيه PlannedWorkload=عبء العمل المخطط لها PlannedWorkloadShort=عبء العمل ProjectReferers=الأصناف ذات الصلة ProjectMustBeValidatedFirst=يجب التحقق من صحة المشروع أولا -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. -FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time +MustBeValidatedToBeSigned=يجب التحقق من صحة %s أولاً لتعيينه على Signed. +FirstAddRessourceToAllocateTime=قم بتعيين مورد مستخدم كجهة اتصال للمشروع لتخصيص الوقت InputPerDay=إدخال يوميا InputPerWeek=مساهمة في الأسبوع -InputPerMonth=Input per month -InputDetail=Input detail -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s +InputPerMonth=المدخلات شهريا +InputDetail=تفاصيل الإدخال +TimeAlreadyRecorded=هذا هو الوقت المنقضي المسجل بالفعل لهذه المهمة / اليوم والمستخدم %s ProjectsWithThisUserAsContact=مشاريع مع هذا العضو عن الاتصال -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=مشاريع مع جهة الاتصال هذه TasksWithThisUserAsContact=المهام الموكلة إلى هذا المستخدم ResourceNotAssignedToProject=لم يتم تعيين إلى المشروع -ResourceNotAssignedToTheTask=Not assigned to the task -NoUserAssignedToTheProject=No users assigned to this project -TimeSpentBy=Time spent by -TasksAssignedTo=Tasks assigned to -AssignTaskToMe=Assign task to myself -AssignTaskToUser=Assign task to %s -SelectTaskToAssign=Select task to assign... +ResourceNotAssignedToTheTask=لم يتم تعيينه للمهمة +NoUserAssignedToTheProject=لم يتم تعيين مستخدمين لهذا المشروع +TimeSpentBy=الوقت الذي يقضيه +TasksAssignedTo=المهام المعينة إلى +AssignTaskToMe=اسند مهمة لنفسي +AssignTaskToUser=قم بتعيين مهمة إلى %s +SelectTaskToAssign=حدد مهمة لتعيينها ... AssignTask=عين ProjectOverview=نظرة عامة -ManageTasks=Use projects to follow tasks and/or report time spent (timesheets) +ManageTasks=استخدم المشاريع لمتابعة المهام و / أو تقرير الوقت المنقضي (الجداول الزمنية) ManageOpportunitiesStatus=استخدام مشاريع متابعة القرائن / opportinuties -ProjectNbProjectByMonth=No. of created projects by month -ProjectNbTaskByMonth=No. of created tasks by month -ProjectOppAmountOfProjectsByMonth=Amount of leads by month -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month -ProjectOpenedProjectByOppStatus=Open project|lead by lead status -ProjectsStatistics=Statistics on projects or leads -TasksStatistics=Statistics on tasks of projects or leads +ProjectNbProjectByMonth=عدد المشاريع التي تم إنشاؤها حسب الشهر +ProjectNbTaskByMonth=عدد المهام التي تم إنشاؤها حسب الشهر +ProjectOppAmountOfProjectsByMonth=كمية العروض حسب الشهر +ProjectWeightedOppAmountOfProjectsByMonth=المقدار المرجح من العملاء المتوقعين حسب الشهر +ProjectOpenedProjectByOppStatus=فتح المشروع | الرصاص حسب حالة العميل المحتمل +ProjectsStatistics=إحصائيات عن المشاريع أو العملاء المتوقعين +TasksStatistics=إحصائيات عن مهام المشاريع أو العملاء المتوقعين TaskAssignedToEnterTime=المهمة الموكلة. يجب دخول الوقت على هذه المهمة يكون ممكنا. IdTaskTime=الوقت مهمة معرف -YouCanCompleteRef=If you want to complete the ref with some suffix, it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-MYSUFFIX -OpenedProjectsByThirdparties=Open projects by third parties -OnlyOpportunitiesShort=Only leads -OpenedOpportunitiesShort=Open leads -NotOpenedOpportunitiesShort=Not an open lead -NotAnOpportunityShort=Not a lead -OpportunityTotalAmount=Total amount of leads -OpportunityPonderatedAmount=Weighted amount of leads -OpportunityPonderatedAmountDesc=Leads amount weighted with probability +YouCanCompleteRef=إذا كنت تريد إكمال المرجع ببعض اللاحقة ، فمن المستحسن إضافة حرف - لفصله ، لذلك سيستمر الترقيم التلقائي بشكل صحيح للمشاريع التالية. على سبيل المثال %s-MYSUFFIX +OpenedProjectsByThirdparties=فتح المشاريع من قبل أطراف ثالثة +OnlyOpportunitiesShort=يؤدي فقط +OpenedOpportunitiesShort=فتح يؤدي +NotOpenedOpportunitiesShort=ليست مقدمة مفتوحة +NotAnOpportunityShort=لا يقود +OpportunityTotalAmount=إجمالي عدد العملاء المتوقعين +OpportunityPonderatedAmount=المقدار المرجح من العملاء المحتملين +OpportunityPonderatedAmountDesc=كمية العملاء المتوقعين مرجحة بالاحتمال OppStatusPROSP=التنقيب OppStatusQUAL=المؤهل العلمى OppStatusPROPO=مقترح @@ -237,60 +241,61 @@ OppStatusNEGO=Negociation OppStatusPENDING=بانتظار OppStatusWON=فاز OppStatusLOST=ضائع -Budget=Budget -AllowToLinkFromOtherCompany=Allow to link project from other company

    Supported values:
    - Keep empty: Can link any project of the company (default)
    - "all": Can link any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)
    -LatestProjects=Latest %s projects -LatestModifiedProjects=Latest %s modified projects -OtherFilteredTasks=Other filtered tasks -NoAssignedTasks=No assigned tasks found (assign project/tasks to the current user from the top select box to enter time on it) -ThirdPartyRequiredToGenerateInvoice=A third party must be defined on project to be able to invoice it. -ThirdPartyRequiredToGenerateInvoice=A third party must be defined on project to be able to invoice it. -ChooseANotYetAssignedTask=Choose a task not yet assigned to you +Budget=ميزانية +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    +LatestProjects=أحدث مشاريع %s +LatestModifiedProjects=أحدث مشاريع %s المعدلة +OtherFilteredTasks=مهام أخرى تمت تصفيتها +NoAssignedTasks=لم يتم العثور على مهام معينة (قم بتعيين مشروع / مهام إلى المستخدم الحالي من مربع التحديد العلوي لإدخال الوقت فيه) +ThirdPartyRequiredToGenerateInvoice=يجب تحديد طرف ثالث في المشروع حتى يتمكن من إصدار فاتورة به. +ThirdPartyRequiredToGenerateInvoice=يجب تحديد طرف ثالث في المشروع حتى يتمكن من إصدار فاتورة به. +ChooseANotYetAssignedTask=اختر مهمة لم يتم تعيينها لك بعد # Comments trans -AllowCommentOnTask=Allow user comments on tasks -AllowCommentOnProject=Allow user comments on projects -DontHavePermissionForCloseProject=You do not have permissions to close the project %s -DontHaveTheValidateStatus=The project %s must be open to be closed -RecordsClosed=%s project(s) closed -SendProjectRef=Information project %s -ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Salaries' must be enabled to define employee hourly rate to have time spent valorized -NewTaskRefSuggested=Task ref already used, a new task ref is required -TimeSpentInvoiced=Time spent billed +AllowCommentOnTask=السماح بتعليقات المستخدمين على المهام +AllowCommentOnProject=السماح بتعليقات المستخدمين على المشاريع +DontHavePermissionForCloseProject=ليس لديك أذونات لإغلاق المشروع %s +DontHaveTheValidateStatus=يجب أن يكون المشروع %s مفتوحًا ليغلق +RecordsClosed=تم إغلاق مشروع (مشاريع) %s +SendProjectRef=مشروع المعلومات %s +ModuleSalaryToDefineHourlyRateMustBeEnabled=يجب تمكين "رواتب" الوحدة النمطية لتحديد معدل الموظف بالساعة من أجل قضاء الوقت في التثمين +NewTaskRefSuggested=مرجع المهمة مستخدم بالفعل ، مطلوب مرجع مهمة جديد +TimeSpentInvoiced=الوقت المستغرق في الفاتورة TimeSpentForIntervention=قضى وقتا TimeSpentForInvoice=قضى وقتا -OneLinePerUser=One line per user -ServiceToUseOnLines=Service to use on lines -InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project -InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project -ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. -ProjectFollowOpportunity=Follow opportunity -ProjectFollowTasks=Follow tasks or time spent -Usage=Usage -UsageOpportunity=Usage: Opportunity -UsageTasks=Usage: Tasks -UsageBillTimeShort=Usage: Bill time -InvoiceToUse=Draft invoice to use -InterToUse=Draft intervention to use +OneLinePerUser=خط واحد لكل مستخدم +ServiceToUseOnLines=Service to use on lines by default +InvoiceGeneratedFromTimeSpent=تم إنشاء الفاتورة %s من الوقت المنقضي في المشروع +InterventionGeneratedFromTimeSpent=تم إنشاء التدخل %s من الوقت الذي يقضيه في المشروع +ProjectBillTimeDescription=تحقق مما إذا كنت قد أدخلت الجدول الزمني لمهام المشروع وكنت تخطط لإنشاء فاتورة (فواتير) من الجدول الزمني لفوترة عميل المشروع (لا تحقق مما إذا كنت تخطط لإنشاء فاتورة لا تستند إلى الجداول الزمنية التي تم إدخالها). ملاحظة: لإنشاء فاتورة ، انتقل إلى علامة التبويب "الوقت المستغرق" في المشروع وحدد سطورًا لتضمينها. +ProjectFollowOpportunity=اتبع الفرصة +ProjectFollowTasks=اتبع المهام أو الوقت الذي تقضيه +Usage=إستعمال +UsageOpportunity=الاستعمال: فرصة +UsageTasks=الاستعمال: المهام +UsageBillTimeShort=الاستعمال: فاتورة الوقت +InvoiceToUse=مسودة فاتورة للاستخدام +InterToUse=مشروع تدخل للاستخدام NewInvoice=فاتورة جديدة NewInter=التدخل الجديدة -OneLinePerTask=One line per task -OneLinePerPeriod=One line per period -OneLinePerTimeSpentLine=One line for each time spent declaration -AddDetailDateAndDuration=With date and duration into line description -RefTaskParent=Ref. Parent Task -ProfitIsCalculatedWith=Profit is calculated using -AddPersonToTask=Add also to tasks -UsageOrganizeEvent=Usage: Event Organization -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. -SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them -ProjectTasksWithoutTimeSpent=Project tasks without time spent -FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. -ProjectsHavingThisContact=Projects having this contact +OneLinePerTask=سطر واحد لكل مهمة +OneLinePerPeriod=سطر واحد لكل فترة +OneLinePerTimeSpentLine=سطر واحد لكل إعلان عن الوقت المستغرق +AddDetailDateAndDuration=مع التاريخ والمدة في وصف السطر +RefTaskParent=المرجع. المهمة الأصل +ProfitIsCalculatedWith=يتم احتساب الربح باستخدام +AddPersonToTask=أضف أيضًا إلى المهام +UsageOrganizeEvent=الاستعمال: تنظيم الحدث +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=تصنيف المشروع على أنه مغلق عند اكتمال جميع مهامه (تقدم 100%%) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. +SelectLinesOfTimeSpentToInvoice=حدد سطور الوقت المستغرقة التي لم يتم تحرير فواتير بها ، ثم قم بإجراء جماعي "إنشاء الفاتورة" لفواتيرها +ProjectTasksWithoutTimeSpent=مهام المشروع دون إضاعة الوقت +FormForNewLeadDesc=شكرا لملء النموذج التالي للاتصال بنا. يمكنك أيضًا إرسال بريد إلكتروني إلينا مباشرة إلى %s . +ProjectsHavingThisContact=المشاريع التي لديها هذا الاتصال StartDateCannotBeAfterEndDate=تاريخ نهاية لا يمكن أن يكون قبل تاريخ البدء -ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +ErrorPROJECTLEADERRoleMissingRestoreIt=دور "PROJECTLEADER" مفقود أو تم إلغاء تنشيطه ، يرجى الاستعادة في قاموس أنواع جهات الاتصال +LeadPublicFormDesc=يمكنك هنا تمكين صفحة عامة للسماح لآفاقك بإجراء أول اتصال لك من نموذج عام عبر الإنترنت +EnablePublicLeadForm=قم بتمكين النموذج العام للاتصال +NewLeadbyWeb=تم تسجيل رسالتك أو طلبك. سوف نقوم بالرد أو الاتصال بك قريبا. +NewLeadForm=استمارة اتصال جديدة +LeadFromPublicForm=عميل محتمل عبر الإنترنت من شكل عام +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/ar_SA/propal.lang b/htdocs/langs/ar_SA/propal.lang index f7af2ee2cf7..610fd75eb72 100644 --- a/htdocs/langs/ar_SA/propal.lang +++ b/htdocs/langs/ar_SA/propal.lang @@ -13,16 +13,16 @@ Prospect=احتمال DeleteProp=اقتراح حذف التجارية ValidateProp=مصادقة على اقتراح التجارية AddProp=إنشاء اقتراح -ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? -ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? -LastPropals=Latest %s proposals +ConfirmDeleteProp=هل أنت متأكد أنك تريد حذف هذا العرض التجاري؟ +ConfirmValidateProp=هل أنت متأكد من أنك تريد التحقق من صحة هذا العرض التجاري تحت الاسم %s ؟ +LastPropals=أحدث مقترحات %s LastModifiedProposals=أحدث %s العروض المعدلة AllPropals=جميع المقترحات SearchAProposal=بحث اقتراح -NoProposal=No proposal +NoProposal=لا يوجد اقتراح ProposalsStatistics=مقترحات تجارية 'إحصاءات NumberOfProposalsByMonth=عدد شهر -AmountOfProposalsByMonthHT=Amount by month (excl. tax) +AmountOfProposalsByMonthHT=المبلغ بالشهر (بدون الضريبة) NbOfProposals=عدد من المقترحات والتجاري ShowPropal=وتظهر اقتراح PropalsDraft=المسودات @@ -33,7 +33,7 @@ PropalStatusSigned=وقعت (لمشروع القانون) PropalStatusNotSigned=لم يتم التوقيع (مغلقة) PropalStatusBilled=فواتير PropalStatusDraftShort=مسودة -PropalStatusValidatedShort=Validated (open) +PropalStatusValidatedShort=التحقق من صحتها (مفتوح) PropalStatusClosedShort=مغلقة PropalStatusSignedShort=وقعت PropalStatusNotSignedShort=لم يتم التوقيع @@ -47,53 +47,72 @@ SendPropalByMail=اقتراح ارسال التجارية عن طريق البر DatePropal=تاريخ الاقتراح DateEndPropal=تاريخ انتهاء الصلاحية ValidityDuration=ومدة صلاحيتها -SetAcceptedRefused=Set accepted/refused +SetAcceptedRefused=مجموعة مقبولة / مرفوضة ErrorPropalNotFound=Propal ق لم يتم العثور على ٪ AddToDraftProposals=إضافة إلى صياغة اقتراح NoDraftProposals=أي مشاريع اقتراحات CopyPropalFrom=اقتراح إنشاء التجارية عن طريق نسخ وجود اقتراح -CreateEmptyPropal=Create empty commercial proposal or from list of products/services +CreateEmptyPropal=إنشاء عرض تجاري فارغ أو من قائمة المنتجات / الخدمات DefaultProposalDurationValidity=تقصير مدة صلاحية اقتراح التجارية (أيام) -UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address -ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +DefaultPuttingPricesUpToDate=بشكل افتراضي ، يتم تحديث الأسعار مع الأسعار الحالية المعروفة عند استنساخ الاقتراح +UseCustomerContactAsPropalRecipientIfExist=استخدم جهة الاتصال / العنوان من النوع "اقتراح متابعة جهات الاتصال" إذا تم تحديده بدلاً من عنوان الطرف الثالث كعنوان مستلم الاقتراح +ConfirmClonePropal=هل أنت متأكد من أنك تريد استنساخ العرض التجاري %s ؟ +ConfirmReOpenProp=هل أنت متأكد من أنك تريد فتح العرض التجاري %s ؟ ProposalsAndProposalsLines=واقتراح الخطوط التجارية ProposalLine=اقتراح خط -ProposalLines=Proposal lines +ProposalLines=خطوط الاقتراح AvailabilityPeriod=توفر تأخير SetAvailability=ضبط تأخير توافر AfterOrder=بعد ذلك OtherProposals=مقترحات أخرى + ##### Availability ##### AvailabilityTypeAV_NOW=فوري AvailabilityTypeAV_1W=1 أسبوع AvailabilityTypeAV_2W=2 أسابيع AvailabilityTypeAV_3W=3 أسابيع AvailabilityTypeAV_1M=1 شهر -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=اقتراح ممثل متابعة TypeContact_propal_external_BILLING=الزبون فاتورة الاتصال TypeContact_propal_external_CUSTOMER=اتصل العملاء اقتراح متابعة -TypeContact_propal_external_SHIPPING=Customer contact for delivery +TypeContact_propal_external_SHIPPING=الاتصال بالعميل للتسليم + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=لا يمكن تعيين غير موقعة +CaseFollowedBy=حالة متبوعة +ConfirmMassNoSignature=تأكيد مجمّع غير موقّع +ConfirmMassNoSignatureQuestion=هل أنت متأكد من أنك تريد تعيين السجلات المحددة غير الموقعة؟ +ConfirmMassSignature=تأكيد التوقيع بالجملة +ConfirmMassSignatureQuestion=هل أنت متأكد أنك تريد التوقيع على السجلات المختارة؟ +ConfirmMassValidation=تأكيد التحقق من صحة الجملة +ConfirmMassValidationQuestion=هل أنت متأكد أنك تريد التحقق من صحة السجلات المحددة؟ +ConfirmRefusePropal=هل أنت متأكد أنك تريد رفض هذا العرض التجاري؟ +ContractSigned=Contract signed +DefaultModelPropalClosed=القالب الافتراضي عند إغلاق الأعمال المقترح (فواتير) DefaultModelPropalCreate=إنشاء نموذج افتراضي DefaultModelPropalToBill=القالب الافتراضي عند إغلاق الأعمال المقترح (أن الفاتورة) -DefaultModelPropalClosed=القالب الافتراضي عند إغلاق الأعمال المقترح (فواتير) +DocModelAzurDescription=نموذج اقتراح كامل (التنفيذ القديم للقالب السماوي) +DocModelCyanDescription=نموذج اقتراح كامل +FichinterSigned=Intervention signed +IdProduct=معرف المنتج +IdProposal=معرف الاقتراح +IsNotADraft=ليس مسودة +LineBuyPriceHT=سعر الشراء المبلغ صافي الضريبة للخط +NoSign=رفض +NoSigned=مجموعة غير موقعة +PassedInOpenStatus=تم التحقق من صحتها +PropalAlreadyRefused=الاقتراح رفض بالفعل +PropalAlreadySigned=تم قبول الاقتراح بالفعل +PropalRefused=تم رفض الاقتراح +PropalSigned=تم قبول الاقتراح ProposalCustomerSignature=قبول كتابي، ختم الشركة والتاريخ والتوقيع -ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal -RefusePropal=Refuse proposal -Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ProposalsStatisticsSuppliers=إحصاءات عروض البائعين +RefusePropal=اقتراح رفض +Sign=إشارة +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=قبول الاقتراح +Signed=وقعت +SignedOnly=وقعت فقط diff --git a/htdocs/langs/ar_SA/receiptprinter.lang b/htdocs/langs/ar_SA/receiptprinter.lang index 430774f17dd..e01842f41a7 100644 --- a/htdocs/langs/ar_SA/receiptprinter.lang +++ b/htdocs/langs/ar_SA/receiptprinter.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Setup of module ReceiptPrinter +ReceiptPrinterSetup=إعداد وحدة ReceiptPrinter PrinterAdded=تم إضافة الطابعة %s PrinterUpdated=تم تحديث الطابعة %s PrinterDeleted=تم حذف الطابعة %s TestSentToPrinter=تجربة طباعة نموذج على الطابعة %s -ReceiptPrinter=Receipt printers -ReceiptPrinterDesc=Setup of receipt printers +ReceiptPrinter=طابعات الإيصالات +ReceiptPrinterDesc=إعداد طابعات الإيصالات ReceiptPrinterTemplateDesc=إعداد القوالب -ReceiptPrinterTypeDesc=وصف نوع استلام الطابعة +ReceiptPrinterTypeDesc=مثال على القيم المحتملة للحقل "المعلمات" وفقًا لنوع السائق ReceiptPrinterProfileDesc=وصف الملف استلام الطابعة ListPrinters=قائمة طابعات SetupReceiptTemplate=إعداد قالب @@ -15,12 +15,12 @@ CONNECTOR_DUMMY=طابعة وهمية CONNECTOR_NETWORK_PRINT=طابعة الشبكة CONNECTOR_FILE_PRINT=الطابعة المحلية CONNECTOR_WINDOWS_PRINT=طابعة ويندوز المحلية -CONNECTOR_CUPS_PRINT=Cups Printer +CONNECTOR_CUPS_PRINT=طابعة أكواب CONNECTOR_DUMMY_HELP=طابعة وهمية لاختبار، لا يفعل شيئا CONNECTOR_NETWORK_PRINT_HELP=10.xxx:9100 CONNECTOR_FILE_PRINT_HELP=/ ديف / USB / lp0، / ديف / USB / LP1 CONNECTOR_WINDOWS_PRINT_HELP=LPT1، COM1، فلان: // FooUser: السر @ الكمبيوتر / مجموعة العمل / استلام الطابعة -CONNECTOR_CUPS_PRINT_HELP=CUPS printer name, example: HPRT_TP805L +CONNECTOR_CUPS_PRINT_HELP=اسم طابعة CUPS ، على سبيل المثال: HPRT_TP805L PROFILE_DEFAULT=ملف التعريف الافتراضي PROFILE_SIMPLE=ملف التعريف بسيط PROFILE_EPOSTEP=ملحمة تيب الملف الشخصي @@ -31,7 +31,7 @@ PROFILE_SIMPLE_HELP=لمحة بسيطة لا الرسومات PROFILE_EPOSTEP_HELP=ملحمة تيب الملف الشخصي PROFILE_P822D_HELP=P822D الشخصي لا الرسومات PROFILE_STAR_HELP=نجمة الشخصي -DOL_LINE_FEED=Skip line +DOL_LINE_FEED=تخطي الخط DOL_ALIGN_LEFT=ترك النص محاذاة DOL_ALIGN_CENTER=نص المركز DOL_ALIGN_RIGHT=النص محاذاة إلى اليمين @@ -45,38 +45,40 @@ DOL_CUT_PAPER_PARTIAL=تذكرة قطع جزئيا DOL_OPEN_DRAWER=فتح درج النقود DOL_ACTIVATE_BUZZER=تفعيل صفارة DOL_PRINT_QRCODE=طباعة رمز الاستجابة السريعة -DOL_PRINT_LOGO=Print logo of my company -DOL_PRINT_LOGO_OLD=Print logo of my company (old printers) -DOL_BOLD=Bold -DOL_BOLD_DISABLED=Disable bold -DOL_DOUBLE_HEIGHT=Double height size -DOL_DOUBLE_WIDTH=Double width size -DOL_DEFAULT_HEIGHT_WIDTH=Default height and width size -DOL_UNDERLINE=Enable underline -DOL_UNDERLINE_DISABLED=Disable underline -DOL_BEEP=Beed sound -DOL_PRINT_TEXT=Print text -DateInvoiceWithTime=Invoice date and time -YearInvoice=Invoice year -DOL_VALUE_MONTH_LETTERS=Invoice month in letters -DOL_VALUE_MONTH=Invoice month -DOL_VALUE_DAY=Invoice day -DOL_VALUE_DAY_LETTERS=Inovice day in letters -DOL_LINE_FEED_REVERSE=Line feed reverse -InvoiceID=Invoice ID +DOL_PRINT_LOGO=طباعة شعار شركتي +DOL_PRINT_LOGO_OLD=طباعة شعار شركتي (طابعات قديمة) +DOL_BOLD=عريض +DOL_BOLD_DISABLED=تعطيل الغامق +DOL_DOUBLE_HEIGHT=حجم ارتفاع مزدوج +DOL_DOUBLE_WIDTH=حجم العرض المزدوج +DOL_DEFAULT_HEIGHT_WIDTH=الحجم الافتراضي للعرض والارتفاع +DOL_UNDERLINE=تمكين التسطير +DOL_UNDERLINE_DISABLED=تعطيل التسطير +DOL_BEEP=صوت صفير +DOL_BEEP_ALTERNATIVE=صوت صفير (الوضع البديل) +DOL_PRINT_CURR_DATE=طباعة التاريخ / الوقت الحالي +DOL_PRINT_TEXT=طباعة النص +DateInvoiceWithTime=تاريخ ووقت الفاتورة +YearInvoice=سنة الفاتورة +DOL_VALUE_MONTH_LETTERS=شهر الفاتورة بالأحرف +DOL_VALUE_MONTH=شهر الفاتورة +DOL_VALUE_DAY=يوم الفاتورة +DOL_VALUE_DAY_LETTERS=يوم Inovice في الرسائل +DOL_LINE_FEED_REVERSE=خط التغذية العكسي +InvoiceID=هوية صوتية InvoiceRef=فاتورة المرجع -DOL_PRINT_OBJECT_LINES=Invoice lines -DOL_VALUE_CUSTOMER_FIRSTNAME=Customer first name -DOL_VALUE_CUSTOMER_LASTNAME=Customer last name -DOL_VALUE_CUSTOMER_MAIL=Customer mail -DOL_VALUE_CUSTOMER_PHONE=Customer phone -DOL_VALUE_CUSTOMER_MOBILE=Customer mobile -DOL_VALUE_CUSTOMER_SKYPE=Customer Skype -DOL_VALUE_CUSTOMER_TAX_NUMBER=Customer tax number -DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Customer account balance -DOL_VALUE_MYSOC_NAME=Your company name -VendorLastname=Vendor last name -VendorFirstname=Vendor first name -VendorEmail=Vendor email -DOL_VALUE_CUSTOMER_POINTS=Customer points -DOL_VALUE_OBJECT_POINTS=Object points +DOL_PRINT_OBJECT_LINES=سطور الفاتورة +DOL_VALUE_CUSTOMER_FIRSTNAME=الاسم الأول للعميل +DOL_VALUE_CUSTOMER_LASTNAME=الاسم الأخير للعميل +DOL_VALUE_CUSTOMER_MAIL=بريد العميل +DOL_VALUE_CUSTOMER_PHONE=هاتف العميل +DOL_VALUE_CUSTOMER_MOBILE=جوّال العميل +DOL_VALUE_CUSTOMER_SKYPE=عميل سكايب +DOL_VALUE_CUSTOMER_TAX_NUMBER=الرقم الضريبي للعميل +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=رصيد حساب العميل +DOL_VALUE_MYSOC_NAME=اسم شركتك +VendorLastname=الاسم الأخير للبائع +VendorFirstname=الاسم الأول للبائع +VendorEmail=البريد الإلكتروني للبائع +DOL_VALUE_CUSTOMER_POINTS=نقاط العميل +DOL_VALUE_OBJECT_POINTS=نقاط الكائن diff --git a/htdocs/langs/ar_SA/receptions.lang b/htdocs/langs/ar_SA/receptions.lang index 0a463e7d4fc..00442ed86a8 100644 --- a/htdocs/langs/ar_SA/receptions.lang +++ b/htdocs/langs/ar_SA/receptions.lang @@ -1,54 +1,54 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=Vendor reception management (Create reception documents) -ReceptionsSetup=Vendor Reception setup -RefReception=Ref. reception +ReceptionDescription=إدارة استقبال البائعين (إنشاء مستندات استلام) +ReceptionsSetup=إعداد استقبال البائعين +RefReception=المرجع. استقبال Reception=على عملية -Receptions=Receptions -AllReceptions=All Receptions +Receptions=حفلات الاستقبال +AllReceptions=كل الاستقبالات Reception=على عملية -Receptions=Receptions -ShowReception=Show Receptions -ReceptionsArea=Receptions area -ListOfReceptions=List of receptions -ReceptionMethod=Reception method -LastReceptions=Latest %s receptions -StatisticsOfReceptions=Statistics for receptions -NbOfReceptions=Number of receptions -NumberOfReceptionsByMonth=Number of receptions by month -ReceptionCard=Reception card -NewReception=New reception -CreateReception=Create reception -QtyInOtherReceptions=Qty in other receptions -OtherReceptionsForSameOrder=Other receptions for this order -ReceptionsAndReceivingForSameOrder=Receptions and receipts for this order -ReceptionsToValidate=Receptions to validate +Receptions=حفلات الاستقبال +ShowReception=عرض حفلات الاستقبال +ReceptionsArea=منطقة الاستقبالات +ListOfReceptions=قائمة حفلات الاستقبال +ReceptionMethod=طريقة الاستقبال +LastReceptions=أحدث حفلات استقبال %s +StatisticsOfReceptions=إحصائيات حفلات الاستقبال +NbOfReceptions=عدد الاستقبالات +NumberOfReceptionsByMonth=عدد الاستقبالات حسب الشهر +ReceptionCard=بطاقة الاستقبال +NewReception=استقبال جديد +CreateReception=إنشاء استقبال +QtyInOtherReceptions=الكمية في حفلات الاستقبال الأخرى +OtherReceptionsForSameOrder=استقبالات أخرى لهذا الطلب +ReceptionsAndReceivingForSameOrder=استقبالات وإيصالات لهذا الطلب +ReceptionsToValidate=استقبالات للتحقق من صحة StatusReceptionCanceled=ألغيت StatusReceptionDraft=مسودة -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionValidated=تم التحقق من صحتها (استلام المنتجات أو استلامها بالفعل) +StatusReceptionValidatedToReceive=تم التحقق من صحتها (المنتجات المراد استلامها) +StatusReceptionValidatedReceived=تم التحقق من صحتها (تم استلام المنتجات) StatusReceptionProcessed=معالجة StatusReceptionDraftShort=مسودة StatusReceptionValidatedShort=التحقق من صحة StatusReceptionProcessedShort=معالجة -ReceptionSheet=Reception sheet -ConfirmDeleteReception=Are you sure you want to delete this reception? -ConfirmValidateReception=Are you sure you want to validate this reception with reference %s? -ConfirmCancelReception=Are you sure you want to cancel this reception? -StatsOnReceptionsOnlyValidated=Statistics conducted on receptions only validated. Date used is date of validation of reception (planed delivery date is not always known). -SendReceptionByEMail=Send reception by email -SendReceptionRef=Submission of reception %s -ActionsOnReception=Events on reception -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. -ReceptionLine=Reception line -ProductQtyInReceptionAlreadySent=Product quantity from open sales order already sent -ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplier order already received -ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions. -ReceptionsNumberingModules=Numbering module for receptions -ReceptionsReceiptModel=Document templates for receptions -NoMorePredefinedProductToDispatch=No more predefined products to dispatch -ReceptionExist=A reception exists -ByingPrice=Bying price -ReceptionBackToDraftInDolibarr=Reception %s back to draft -ReceptionClassifyClosedInDolibarr=Reception %s classified Closed -ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open +ReceptionSheet=ورقة استقبال +ValidateReception=Validate reception +ConfirmDeleteReception=هل أنت متأكد أنك تريد حذف هذا الاستقبال؟ +ConfirmValidateReception=هل أنت متأكد من أنك تريد التحقق من صحة هذا الاستقبال بالمرجع %s ؟ +ConfirmCancelReception=هل أنت متأكد أنك تريد إلغاء هذا الاستقبال؟ +StatsOnReceptionsOnlyValidated=تم التحقق من صحة الإحصائيات التي أجريت على حفلات الاستقبال فقط. التاريخ المستخدم هو تاريخ التحقق من الاستلام (تاريخ التسليم المخطط غير معروف دائمًا). +SendReceptionByEMail=إرسال الاستقبال عن طريق البريد الإلكتروني +SendReceptionRef=تقديم الاستقبال %s +ActionsOnReception=الأحداث على الاستقبال +ReceptionCreationIsDoneFromOrder=في الوقت الحالي ، يتم إنشاء استقبال جديد من أمر الشراء. +ReceptionLine=خط استقبال +ProductQtyInReceptionAlreadySent=تم إرسال كمية المنتج من أمر المبيعات المفتوح بالفعل +ProductQtyInSuppliersReceptionAlreadyRecevied=تم استلام كمية المنتج من طلب المورد المفتوح بالفعل +ValidateOrderFirstBeforeReception=يجب عليك أولاً التحقق من صحة الطلب قبل التمكن من إجراء حفلات الاستقبال. +ReceptionsNumberingModules=وحدة الترقيم لحفلات الاستقبال +ReceptionsReceiptModel=قوالب الوثيقة لحفلات الاستقبال +NoMorePredefinedProductToDispatch=لا مزيد من المنتجات المحددة مسبقًا لإرسالها +ReceptionExist=يوجد استقبال +ReceptionBackToDraftInDolibarr=الاستقبال %s يعود إلى المسودة +ReceptionClassifyClosedInDolibarr=الاستقبال %s مصنف مغلق +ReceptionUnClassifyCloseddInDolibarr=إعادة فتح الاستقبال %s diff --git a/htdocs/langs/ar_SA/recruitment.lang b/htdocs/langs/ar_SA/recruitment.lang index d7464982228..7e947a4a1cb 100644 --- a/htdocs/langs/ar_SA/recruitment.lang +++ b/htdocs/langs/ar_SA/recruitment.lang @@ -18,59 +18,62 @@ # # Module label 'ModuleRecruitmentName' -ModuleRecruitmentName = Recruitment +ModuleRecruitmentName = توظيف # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Manage and follow recruitment campaigns for new job positions +ModuleRecruitmentDesc = إدارة ومتابعة حملات التوظيف لشغل وظائف جديدة # # Admin page # -RecruitmentSetup = Recruitment setup +RecruitmentSetup = إعداد التوظيف Settings = إعدادات -RecruitmentSetupPage = Enter here the setup of main options for the recruitment module -RecruitmentArea=Recruitement area -PublicInterfaceRecruitmentDesc=Public pages of jobs are public URLs to show and answer to open jobs. There is one different link for each open job, found on each job record. -EnablePublicRecruitmentPages=Enable public pages of open jobs +RecruitmentSetupPage = أدخل هنا إعداد الخيارات الرئيسية لوحدة التوظيف +RecruitmentArea=منطقة التوظيف +PublicInterfaceRecruitmentDesc=الصفحات العامة للوظائف هي عناوين URL عامة لإظهار الوظائف المفتوحة والإجابة عليها. يوجد رابط واحد مختلف لكل وظيفة متاحة في كل سجل وظيفة. +EnablePublicRecruitmentPages=تمكين الصفحات العامة للوظائف المفتوحة # # About page # About = حول -RecruitmentAbout = About Recruitment -RecruitmentAboutPage = Recruitment about page -NbOfEmployeesExpected=Expected nb of employees -JobLabel=Label of job position -WorkPlace=Work place -DateExpected=Expected date -FutureManager=Future manager -ResponsibleOfRecruitement=Responsible of recruitment -IfJobIsLocatedAtAPartner=If job is located at a partner place +RecruitmentAbout = حول التوظيف +RecruitmentAboutPage = التوظيف حول الصفحة +NbOfEmployeesExpected=ملحوظة من الموظفين المتوقع +JobLabel=تسمية الوظيفة +WorkPlace=مكان العمل +DateExpected=التاريخ المتوقع +FutureManager=مدير المستقبل +ResponsibleOfRecruitement=مسؤول عن التوظيف +IfJobIsLocatedAtAPartner=إذا كانت الوظيفة موجودة في مكان شريك PositionToBeFilled=الوظيفه -PositionsToBeFilled=Job positions -ListOfPositionsToBeFilled=List of job positions -NewPositionToBeFilled=New job positions +PositionsToBeFilled=المناصب الوظيفية +ListOfPositionsToBeFilled=قائمة الوظائف +NewPositionToBeFilled=وظائف جديدة -JobOfferToBeFilled=Job position to be filled -ThisIsInformationOnJobPosition=Information of the job position to be filled -ContactForRecruitment=Contact for recruitment -EmailRecruiter=Email recruiter -ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used -NewCandidature=New application -ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration -ContractProposed=Contract proposed -ContractSigned=Contract signed -ContractRefused=Contract refused -RecruitmentCandidature=Application -JobPositions=Job positions -RecruitmentCandidatures=Applications -InterviewToDo=Interview to do -AnswerCandidature=Application answer -YourCandidature=Your application -YourCandidatureAnswerMessage=Thanks you for your application.
    ... -JobClosedTextCandidateFound=The job position is closed. The position has been filled. -JobClosedTextCanceled=The job position is closed. -ExtrafieldsJobPosition=Complementary attributes (job positions) -ExtrafieldsApplication=Complementary attributes (job applications) -MakeOffer=Make an offer +JobOfferToBeFilled=الوظيفة المراد شغلها +ThisIsInformationOnJobPosition=معلومات الوظيفة المراد شغلها +ContactForRecruitment=الاتصال للتوظيف +EmailRecruiter=المجند البريد الإلكتروني +ToUseAGenericEmail=لاستخدام بريد إلكتروني عام. إذا لم يتم تحديده ، فسيتم استخدام البريد الإلكتروني للمسؤول عن التوظيف +NewCandidature=تطبيق جديد +ListOfCandidatures=قائمة التطبيقات +Remuneration=الراتب +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary +ContractProposed=عقد مقترح +ContractSigned=تم توقيع العقد +ContractRefused=العقد مرفوض +RecruitmentCandidature=طلب +JobPositions=المناصب الوظيفية +RecruitmentCandidatures=التطبيقات +InterviewToDo=Contacts to follow +AnswerCandidature=إجابة التطبيق +YourCandidature=تطبيقك +YourCandidatureAnswerMessage=شكرا لك على التطبيق الخاص بك.
    ... +JobClosedTextCandidateFound=الوظيفة مغلقة. تم شغل المنصب. +JobClosedTextCanceled=الوظيفة مغلقة. +ExtrafieldsJobPosition=السمات التكميلية (المناصب الوظيفية) +ExtrafieldsApplication=السمات التكميلية (طلبات العمل) +MakeOffer=تقديم عرض +WeAreRecruiting=نحن نوظف. هذه قائمة بالوظائف الشاغرة التي يتعين شغلها ... +NoPositionOpen=لا توجد وظائف مفتوحة في الوقت الحالي diff --git a/htdocs/langs/ar_SA/resource.lang b/htdocs/langs/ar_SA/resource.lang index ea416f6cbca..b4e77361bdc 100644 --- a/htdocs/langs/ar_SA/resource.lang +++ b/htdocs/langs/ar_SA/resource.lang @@ -5,7 +5,7 @@ DeleteResource=حذف الموارد ConfirmDeleteResourceElement=تأكيد حذف المورد لهذا العنصر NoResourceInDatabase=أي مورد في قاعدة البيانات. NoResourceLinked=ربط أي مورد - +ActionsOnResource=أحداث حول هذا المورد ResourcePageIndex=قائمة الموارد ResourceSingular=مورد ResourceCard=بطاقة الموارد @@ -30,7 +30,10 @@ DictionaryResourceType=نوع الموارد SelectResource=حدد الموارد -IdResource=Id resource -AssetNumber=Serial number -ResourceTypeCode=Resource type code +IdResource=معرف المورد +AssetNumber=رقم سري +ResourceTypeCode=رمز نوع المورد ImportDataset_resource_1=مصادر + +ErrorResourcesAlreadyInUse=بعض الموارد قيد الاستخدام +ErrorResourceUseInEvent=%s المستخدم في حدث %s diff --git a/htdocs/langs/ar_SA/salaries.lang b/htdocs/langs/ar_SA/salaries.lang index bca976aec5f..d0e339082da 100644 --- a/htdocs/langs/ar_SA/salaries.lang +++ b/htdocs/langs/ar_SA/salaries.lang @@ -1,26 +1,27 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments -CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=حساب المحاسبة بشكل افتراضي لمدفوعات الأجور +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=بشكل افتراضي ، اترك خيار "إنشاء دفعة إجمالية تلقائيًا" فارغًا عند إنشاء راتب Salary=الراتب Salaries=الرواتب -NewSalary=New salary -AddSalary=Add salary -NewSalaryPayment=New salary card -AddSalaryPayment=Add salary payment +NewSalary=راتب جديد +AddSalary=أضف الراتب +NewSalaryPayment=بطاقة راتب جديدة +AddSalaryPayment=اضافة دفع الراتب SalaryPayment=دفع الرواتب SalariesPayments=مدفوعات الرواتب -SalariesPaymentsOf=Salaries payments of %s +SalariesPaymentsOf=مدفوعات الرواتب %s ShowSalaryPayment=مشاهدة دفع الرواتب -THM=Average hourly rate -TJM=Average daily rate +THM=متوسط معدل الساعة +TJM=متوسط معدل يومي CurrentSalary=الراتب الحالي -THMDescription=This value may be used to calculate the cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently for information only and is not used for any calculation -LastSalaries=Latest %s salaries -AllSalaries=All salaries -SalariesStatistics=Salary statistics -SalariesAndPayments=Salaries and payments -ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? -FillFieldFirst=Fill employee field first +THMDescription=يمكن استخدام هذه القيمة لحساب تكلفة الوقت المستغرق في مشروع أدخله المستخدمون إذا تم استخدام مشروع الوحدة النمطية +TJMDescription=هذه القيمة حاليًا للمعلومات فقط ولا تُستخدم لأي حساب +LastSalaries=آخر %s الرواتب +AllSalaries=كل الرواتب +SalariesStatistics=إحصائيات الرواتب +SalariesAndPayments=الرواتب والمدفوعات +ConfirmDeleteSalaryPayment=هل تريد حذف هذا الراتب؟ +FillFieldFirst=املأ حقل الموظف أولاً +UpdateAmountWithLastSalary=حدد المبلغ مع آخر راتب diff --git a/htdocs/langs/ar_SA/sendings.lang b/htdocs/langs/ar_SA/sendings.lang index dced9275f3e..1e8193f5022 100644 --- a/htdocs/langs/ar_SA/sendings.lang +++ b/htdocs/langs/ar_SA/sendings.lang @@ -6,11 +6,11 @@ AllSendings=كل الشحنات Shipment=إرسال Shipments=شحنات ShowSending=مشاهدة الشحنات -Receivings=Delivery Receipts +Receivings=إيصالات التسليم SendingsArea=منطقة الإرسال ListOfSendings=قائمة الإرسال SendingMethod=طريقة إرسال -LastSendings=Latest %s shipments +LastSendings=أحدث شحنات %s StatisticsOfSendings=إحصاءات الإرسال NbOfSendings=عدد الإرسال NumberOfShipmentsByMonth=عدد الشحنات خلال الشهر @@ -18,16 +18,16 @@ SendingCard=بطاقة شحن NewSending=ارسال جديدة CreateShipment=إنشاء إرسال QtyShipped=الكمية المشحونة -QtyShippedShort=Qty ship. -QtyPreparedOrShipped=Qty prepared or shipped +QtyShippedShort=الكمية السفينة. +QtyPreparedOrShipped=الكمية المعدة أو المشحونة QtyToShip=لشحن الكمية -QtyToReceive=Qty to receive +QtyToReceive=الكمية للاستلام QtyReceived=الكمية الواردة -QtyInOtherShipments=Qty in other shipments +QtyInOtherShipments=الكمية في الشحنات الأخرى KeepToShip=تبقى على السفينة -KeepToShipShort=Remain +KeepToShipShort=يبقى OtherSendingsForSameOrder=الإرسال الأخرى لهذا النظام -SendingsAndReceivingForSameOrder=Shipments and receipts for this order +SendingsAndReceivingForSameOrder=الشحنات والإيصالات لهذا الطلب SendingsToValidate=للمصادقة على إرسال StatusSendingCanceled=ألغيت StatusSendingCanceledShort=ألغيت @@ -38,39 +38,39 @@ StatusSendingDraftShort=مسودة StatusSendingValidatedShort=صادق StatusSendingProcessedShort=معالجة SendingSheet=ورقة الشحن -ConfirmDeleteSending=Are you sure you want to delete this shipment? -ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? -ConfirmCancelSending=Are you sure you want to cancel this shipment? +ConfirmDeleteSending=هل أنت متأكد أنك تريد حذف هذه الشحنة؟ +ConfirmValidateSending=هل أنت متأكد من أنك تريد التحقق من صحة هذه الشحنة بالمرجع %s ؟ +ConfirmCancelSending=هل أنت متأكد أنك تريد إلغاء هذه الشحنة؟ DocumentModelMerou=Mérou A5 نموذج WarningNoQtyLeftToSend=تحذير ، لا تنتظر أن المنتجات المشحونة. -StatsOnShipmentsOnlyValidated=Statistics are only for validated shipments. Date used is the date of validation of shipment (planned delivery date is not always known) +StatsOnShipmentsOnlyValidated=الإحصائيات هي فقط للشحنات التي تم التحقق من صحتها. التاريخ المستخدم هو تاريخ التحقق من صحة الشحنة (تاريخ التسليم المخطط ليس معروفًا دائمًا) DateDeliveryPlanned=التاريخ المحدد للتسليم -RefDeliveryReceipt=Ref delivery receipt -StatusReceipt=Status delivery receipt +RefDeliveryReceipt=إيصال تسليم المرجع +StatusReceipt=إيصال تسليم الحالة DateReceived=تلقى تاريخ التسليم -ClassifyReception=Classify reception -SendShippingByEMail=Send shipment by email +ClassifyReception=صنف الاستقبال +SendShippingByEMail=إرسال الشحنة عبر البريد الإلكتروني SendShippingRef=تقديم شحنة٪ الصورة ActionsOnShipping=الأحداث على شحنة LinkToTrackYourPackage=رابط لتتبع الحزمة الخاصة بك -ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the Sales Order record. +ShipmentCreationIsDoneFromOrder=في الوقت الحالي ، يتم إنشاء شحنة جديدة من سجل أوامر المبيعات. ShipmentLine=خط الشحن -ProductQtyInCustomersOrdersRunning=Product quantity from open sales orders -ProductQtyInSuppliersOrdersRunning=Product quantity from open purchase orders -ProductQtyInShipmentAlreadySent=Product quantity from open sales order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open purchase orders already received -NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. Correct stock or go back to choose another warehouse. -WeightVolShort=Weight/Vol. -ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. +ProductQtyInCustomersOrdersRunning=كمية المنتج من أوامر البيع المفتوحة +ProductQtyInSuppliersOrdersRunning=كمية المنتج من أوامر الشراء المفتوحة +ProductQtyInShipmentAlreadySent=تم إرسال كمية المنتج من أمر المبيعات المفتوح بالفعل +ProductQtyInSuppliersShipmentAlreadyRecevied=تم استلام كمية المنتج من أوامر الشراء المفتوحة بالفعل +NoProductToShipFoundIntoStock=لم يتم العثور على أي منتج للشحن في المستودع %s . تصحيح المخزون أو الرجوع لاختيار مستودع آخر. +WeightVolShort=الوزن / المجلد. +ValidateOrderFirstBeforeShipment=يجب عليك أولاً التحقق من صحة الطلب قبل التمكن من إجراء الشحنات. # Sending methods # ModelDocument DocumentModelTyphon=أكمل نموذج لتسليم وثيقة من وثائق الإيصالات (logo...) -DocumentModelStorm=More complete document model for delivery receipts and extrafields compatibility (logo...) +DocumentModelStorm=نموذج مستند أكثر اكتمالاً لإيصالات التسليم وتوافق الحقول الإضافية (الشعار ...) Error_EXPEDITION_ADDON_NUMBER_NotDefined=EXPEDITION_ADDON_NUMBER ثابت لم تحدد SumOfProductVolumes=مجموع أحجام المنتج SumOfProductWeights=مجموع الأوزان المنتج # warehouse details DetailWarehouseNumber= تفاصيل مستودع -DetailWarehouseFormat= W:%s (Qty: %d) +DetailWarehouseFormat= W: %s (الكمية: %d) diff --git a/htdocs/langs/ar_SA/sms.lang b/htdocs/langs/ar_SA/sms.lang index 7e116d24879..b76e0238c9b 100644 --- a/htdocs/langs/ar_SA/sms.lang +++ b/htdocs/langs/ar_SA/sms.lang @@ -13,20 +13,20 @@ SmsTo=الهدف SmsTopic=موضوع الرسائل القصيرة SMS SmsText=رسالة SmsMessage=رسالة SMS -ShowSms=Show SMS -ListOfSms=List SMS campaigns -NewSms=New SMS campaign -EditSms=Edit SMS +ShowSms=إظهار الرسائل القصيرة +ListOfSms=قائمة بحملات الرسائل القصيرة +NewSms=حملة رسائل نصية جديدة +EditSms=تحرير الرسائل القصيرة ResetSms=جديد إرسال -DeleteSms=Delete SMS campaign -DeleteASms=Remove a SMS campaign +DeleteSms=حذف حملة الرسائل القصيرة +DeleteASms=إزالة حملة SMS PreviewSms=Previuw SMS -PrepareSms=Prepare SMS -CreateSms=Create SMS -SmsResult=Result of SMS sending -TestSms=Test SMS -ValidSms=Validate SMS -ApproveSms=Approve SMS +PrepareSms=تحضير الرسائل القصيرة +CreateSms=إنشاء الرسائل القصيرة +SmsResult=نتيجة إرسال الرسائل القصيرة +TestSms=اختبار SMS +ValidSms=التحقق من صحة الرسائل القصيرة +ApproveSms=الموافقة على الرسائل القصيرة SmsStatusDraft=مسودة SmsStatusValidated=التحقق من صحة SmsStatusApproved=وافق @@ -35,17 +35,17 @@ SmsStatusSentPartialy=أرسلت جزئيا SmsStatusSentCompletely=أرسلت تماما SmsStatusError=خطأ SmsStatusNotSent=لم يرسل -SmsSuccessfulySent=SMS correctly sent (from %s to %s) +SmsSuccessfulySent=تم إرسال الرسائل القصيرة بشكل صحيح (من %s إلى %s) ErrorSmsRecipientIsEmpty=عدد من الهدف فارغة WarningNoSmsAdded=لا رقم هاتف جديدا يضاف إلى قائمة المستهدفين -ConfirmValidSms=Do you confirm validation of this campaign? -NbOfUniqueSms=No. of unique phone numbers -NbOfSms=No. of phone numbers +ConfirmValidSms=هل تؤكد صحة هذه الحملة؟ +NbOfUniqueSms=عدد أرقام الهواتف الفريدة +NbOfSms=عدد أرقام الهواتف ThisIsATestMessage=هذه هي رسالة اختبار SendSms=ارسال الرسائل القصيرة -SmsInfoCharRemain=No. of remaining characters -SmsInfoNumero= (international format i.e.: +33899701761) +SmsInfoCharRemain=عدد الأحرف المتبقية +SmsInfoNumero= (التنسيق الدولي ، أي: +33899701761) DelayBeforeSending=تأخير قبل إرسال (دقائق) -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. +SmsNoPossibleSenderFound=لا يوجد مرسل متاح. تحقق من إعداد مزود خدمة الرسائل القصيرة الخاص بك. SmsNoPossibleRecipientFound=لا هدف متاح. تحقق الإعداد من مزود خدمات الرسائل القصيرة. -DisableStopIfSupported=Disable STOP message (if supported) +DisableStopIfSupported=تعطيل رسالة STOP (إذا كانت مدعومة) diff --git a/htdocs/langs/ar_SA/stocks.lang b/htdocs/langs/ar_SA/stocks.lang index 5d2fbc0d6c9..18ba99173fc 100644 --- a/htdocs/langs/ar_SA/stocks.lang +++ b/htdocs/langs/ar_SA/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=إعادة فتح ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=يبدأ InventoryStartedShort=بدأ ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=الإعدادات +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/ar_SA/stripe.lang b/htdocs/langs/ar_SA/stripe.lang index bb3b088d1e4..94865279dd8 100644 --- a/htdocs/langs/ar_SA/stripe.lang +++ b/htdocs/langs/ar_SA/stripe.lang @@ -1,71 +1,74 @@ # Dolibarr language file - Source file is en_US - stripe -StripeSetup=Stripe module setup -StripeDesc=Offer your customers an online payment page for payments with credit/debit cards via Stripe. This can be used to allow your customers to make ad-hoc payments or for payments related to a particular Dolibarr object (invoice, order, ...) -StripeOrCBDoPayment=Pay with credit card or Stripe +StripeSetup=إعداد وحدة الشريط +StripeDesc=قدم لعملائك صفحة دفع عبر الإنترنت للمدفوعات باستخدام بطاقات الائتمان / الخصم عبر Stripe . يمكن استخدام هذا للسماح لعملائك بإجراء مدفوعات مخصصة أو للمدفوعات المتعلقة بكائن Dolibarr معين (فاتورة ، أمر ، ...) +StripeOrCBDoPayment=ادفع ببطاقة الائتمان أو Stripe FollowingUrlAreAvailableToMakePayments=فيما يلي عناوين المواقع المتاحة لعرض هذه الصفحة زبون لتسديد دفعة Dolibarr على الأجسام PaymentForm=شكل الدفع -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=مرحبًا بك في خدمة الدفع عبر الإنترنت ThisScreenAllowsYouToPay=تتيح لك هذه الشاشة إجراء الدفع الإلكتروني إلى ٪ s. ThisIsInformationOnPayment=هذه هي المعلومات عن الدفع للقيام ToComplete=لإكمال YourEMail=البريد الالكتروني لتأكيد الدفع -STRIPE_PAYONLINE_SENDEMAIL=Email notification after a payment attempt (success or fail) +STRIPE_PAYONLINE_SENDEMAIL=إشعار بالبريد الإلكتروني بعد محاولة الدفع (نجاح أو فشل) Creditor=الدائن PaymentCode=دفع رمز -StripeDoPayment=Pay with Stripe -YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +StripeDoPayment=الدفع باستخدام Stripe +YouWillBeRedirectedOnStripe=ستتم إعادة توجيهك إلى صفحة Stripe الآمنة لإدخال معلومات بطاقة الائتمان الخاصة بك Continue=التالى ToOfferALinkForOnlinePayment=عنوان دفع %s -ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment page for a sales order -ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment page for a customer invoice -ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment page for a contract line -ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment page of any amount with no existing object -ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment page for a member subscription -ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment page for payment of a donation -YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (mandatory only for payment not linked to an object) to add your own payment comment tag.
    For the URL of payments with no existing object, you may also add the parameter &noidempotency=1 so the same link with same tag can be used several times (some payment mode may limit the payment to 1 for each different link without this parameter) -SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +ToOfferALinkForOnlinePaymentOnOrder=عنوان URL لعرض صفحة دفع عبر الإنترنت %s لأمر مبيعات +ToOfferALinkForOnlinePaymentOnInvoice=عنوان URL لعرض صفحة الدفع عبر الإنترنت %s لفاتورة العميل +ToOfferALinkForOnlinePaymentOnContractLine=URL لتقديم صفحة دفع عبر الإنترنت %s لبند عقد +ToOfferALinkForOnlinePaymentOnFreeAmount=عنوان URL لعرض صفحة دفع عبر الإنترنت %s بأي مبلغ مع عدم وجود عنصر موجود +ToOfferALinkForOnlinePaymentOnMemberSubscription=عنوان URL لتقديم صفحة دفع عبر الإنترنت %s لاشتراك عضو +ToOfferALinkForOnlinePaymentOnDonation=عنوان URL لعرض صفحة دفع عبر الإنترنت %s لدفع تبرع +YouCanAddTagOnUrl=يمكنك أيضًا إضافة معلمة url & tag = قيمة إلى أي من عناوين URL هذه (إلزامي فقط للدفع غير المرتبط بكائن) لإضافة علامة تعليق الدفع الخاصة بك.
    بالنسبة إلى عنوان URL للدفعات التي لا تحتوي على كائن موجود ، يمكنك أيضًا إضافة المعلمة & noidempotency = 1 بحيث يمكن استخدام نفس الرابط مع نفس العلامة عدة مرات (قد تقصر بعض أوضاع الدفع الدفع على 1 لكل رابط مختلف بدون ذلك معامل) +SetupStripeToHavePaymentCreatedAutomatically=قم بإعداد Stripe باستخدام عنوان url %s ليتم إنشاء الدفع تلقائيًا عند التحقق من صحته بواسطة Stripe. AccountParameter=حساب المعلمات UsageParameter=استخدام المعلمات InformationToFindParameters=مساعدة للعثور على معلومات حسابك %s -STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +STRIPE_CGI_URL_V2=عنوان URL الخاص بوحدة Stripe CGI للدفع CSSUrlForPaymentForm=عزيزي ورقة النمط المغلق للنموذج الدفع -NewStripePaymentReceived=New Stripe payment received -NewStripePaymentFailed=New Stripe payment tried but failed -FailedToChargeCard=Failed to charge card -STRIPE_TEST_SECRET_KEY=Secret test key -STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key -STRIPE_TEST_WEBHOOK_KEY=Webhook test key -STRIPE_LIVE_SECRET_KEY=Secret live key -STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key -STRIPE_LIVE_WEBHOOK_KEY=Webhook live key -ONLINE_PAYMENT_WAREHOUSE=Stock to use for stock decrease when online payment is done
    (TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice ?) -StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) -StripeImportPayment=Import Stripe payments -ExampleOfTestCreditCard=Example of credit card for test: %s => valid, %s => error CVC, %s => expired, %s => charge fails -StripeGateways=Stripe gateways -OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...) -OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...) -BankAccountForBankTransfer=Bank account for fund payouts -StripeAccount=Stripe account -StripeChargeList=List of Stripe charges -StripeTransactionList=List of Stripe transactions -StripeCustomerId=Stripe customer id -StripePaymentModes=Stripe payment modes -LocalID=Local ID -StripeID=Stripe ID -NameOnCard=Name on card -CardNumber=Card Number -ExpiryDate=Expiry Date +NewStripePaymentReceived=تم استلام دفعة Stripe جديدة +NewStripePaymentFailed=تمت محاولة دفع New Stripe لكنها فشلت +FailedToChargeCard=فشل في شحن البطاقة +STRIPE_TEST_SECRET_KEY=مفتاح الاختبار السري +STRIPE_TEST_PUBLISHABLE_KEY=مفتاح اختبار قابل للنشر +STRIPE_TEST_WEBHOOK_KEY=مفتاح اختبار Webhook +STRIPE_LIVE_SECRET_KEY=المفتاح السري المباشر +STRIPE_LIVE_PUBLISHABLE_KEY=مفتاح مباشر قابل للنشر +STRIPE_LIVE_WEBHOOK_KEY=المفتاح المباشر للخطاف التلقائي على الويب +ONLINE_PAYMENT_WAREHOUSE=المخزون الذي سيتم استخدامه لتقليل المخزون عند إتمام الدفع عبر الإنترنت
    (TODO عندما يتم تنفيذ خيار تقليل المخزون على إجراء على الفاتورة ويقوم الدفع عبر الإنترنت بإنشاء الفاتورة بنفسه؟) +StripeLiveEnabled=تم تمكين Stripe Live (بخلاف ذلك وضع الاختبار / وضع الحماية) +StripeImportPayment=استيراد مدفوعات الشريط +ExampleOfTestCreditCard=مثال على بطاقة الائتمان للاختبار: %s => صالحة ، %s => خطأ CVC ، %s => منتهية الصلاحية ، %s => فشل الشحن +StripeGateways=بوابات شريطية +OAUTH_STRIPE_TEST_ID=معرف عميل Stripe Connect (ca _...) +OAUTH_STRIPE_LIVE_ID=معرف عميل Stripe Connect (ca _...) +BankAccountForBankTransfer=الحساب المصرفي لمدفوعات الأموال +StripeAccount=حساب Stripe +StripeChargeList=قائمة رسوم الشريط +StripeTransactionList=قائمة معاملات Stripe +StripeCustomerId=معرف عميل Stripe +StripePaymentModes=طرق الدفع الشريطية +LocalID=المعرف المحلي +StripeID=معرف الشريط +NameOnCard=الاسم على البطاقة +CardNumber=رقم البطاقة +ExpiryDate=تاريخ انتهاء الصلاحية CVN=CVN -DeleteACard=Delete Card -ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card? -CreateCustomerOnStripe=Create customer on Stripe -CreateCardOnStripe=Create card on Stripe -ShowInStripe=Show in Stripe -StripeUserAccountForActions=User account to use for email notification of some Stripe events (Stripe payouts) -StripePayoutList=List of Stripe payouts -ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) -ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) -PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. -ClickHereToTryAgain=Click here to try again... -CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s +DeleteACard=حذف البطاقة +ConfirmDeleteCard=هل أنت متأكد أنك تريد حذف بطاقة الائتمان أو الخصم هذه؟ +CreateCustomerOnStripe=قم بإنشاء عميل على Stripe +CreateCardOnStripe=قم بإنشاء بطاقة على Stripe +CreateBANOnStripe=Create bank on Stripe +ShowInStripe=عرض في شريط +StripeUserAccountForActions=حساب مستخدم لاستخدامه في إشعار البريد الإلكتروني ببعض أحداث Stripe (دفعات Stripe) +StripePayoutList=قائمة مدفوعات Stripe +ToOfferALinkForTestWebhook=رابط لإعداد Stripe WebHook لاستدعاء IPN (وضع الاختبار) +ToOfferALinkForLiveWebhook=رابط لإعداد Stripe WebHook لاستدعاء IPN (الوضع المباشر) +PaymentWillBeRecordedForNextPeriod=سيتم تسجيل الدفع للفترة القادمة. +ClickHereToTryAgain= انقر هنا للمحاولة مرة أخرى ... +CreationOfPaymentModeMustBeDoneFromStripeInterface=نظرًا لقواعد مصادقة العميل القوية ، يجب أن يتم إنشاء بطاقة من Stripe backoffice. يمكنك النقر هنا للتبديل إلى سجل عميل Stripe: %s +TERMINAL_LOCATION=موقع (العنوان) للمحطات +RequestDirectDebitWithStripe=Request Direct Debit with Stripe diff --git a/htdocs/langs/ar_SA/supplier_proposal.lang b/htdocs/langs/ar_SA/supplier_proposal.lang index 6bd54f73ba4..ddf555e5dbe 100644 --- a/htdocs/langs/ar_SA/supplier_proposal.lang +++ b/htdocs/langs/ar_SA/supplier_proposal.lang @@ -1,25 +1,26 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposal=Vendor commercial proposals +SupplierProposal=عروض البائع التجارية supplier_proposalDESC=إدارة طلبات السعر للموردين SupplierProposalNew=طلب السعر الجديد CommRequest=طلب السعر CommRequests=طلبات الأسعار SearchRequest=العثور على الطلب DraftRequests=مشروع طلبات -SupplierProposalsDraft=Draft vendor proposals -LastModifiedRequests=Latest %s modified price requests +SupplierProposalsDraft=صياغة مقترحات البائعين +LastModifiedRequests=أحدث طلبات أسعار معدلة لـ %s RequestsOpened=طلبات السعر المفتوحة -SupplierProposalArea=Vendor proposals area -SupplierProposalShort=Vendor proposal -SupplierProposals=Vendor proposals -SupplierProposalsShort=Vendor proposals +SupplierProposalArea=منطقة عروض البائعين +SupplierProposalShort=اقتراح البائع +SupplierProposals=عروض الموردين +SupplierProposalsShort=عروض الموردين +AskPrice=طلب السعر NewAskPrice=طلب السعر الجديد ShowSupplierProposal=طلب عرض أسعار AddSupplierProposal=إنشاء طلب السعر -SupplierProposalRefFourn=Vendor ref +SupplierProposalRefFourn=مرجع البائع SupplierProposalDate=تاريخ التسليم او الوصول SupplierProposalRefFournNotice=قبل أن يغلق على "مقبول"، والتفكير لفهم الموردين المراجع. -ConfirmValidateAsk=Are you sure you want to validate this price request under name %s? +ConfirmValidateAsk=هل أنت متأكد من أنك تريد التحقق من صحة طلب السعر هذا تحت الاسم %s ؟ DeleteAsk=حذف الطلب ValidateAsk=التحقق من صحة الطلب SupplierProposalStatusDraft=مشروع (يجب التحقق من صحة) @@ -32,23 +33,26 @@ SupplierProposalStatusValidatedShort=التحقق من صحة SupplierProposalStatusClosedShort=مغلق SupplierProposalStatusSignedShort=قبلت SupplierProposalStatusNotSignedShort=رفض -CopyAskFrom=إنشاء طلب السعر عن طريق نسخ طلب القائمة +CopyAskFrom=قم بإنشاء طلب سعر عن طريق نسخ طلب موجود CreateEmptyAsk=إنشاء طلب فارغة -ConfirmCloneAsk=Are you sure you want to clone the price request %s? -ConfirmReOpenAsk=Are you sure you want to open back the price request %s? +ConfirmCloneAsk=هل أنت متأكد من أنك تريد استنساخ طلب السعر %s ؟ +ConfirmReOpenAsk=هل أنت متأكد من أنك تريد إعادة فتح طلب السعر %s ؟ SendAskByMail=إرسال طلب السعر عن طريق البريد SendAskRef=إرسال سعر الطلب٪ الصورة SupplierProposalCard=طلب بطاقة -ConfirmDeleteAsk=Are you sure you want to delete this price request %s? +ConfirmDeleteAsk=هل تريد بالتأكيد حذف طلب السعر هذا %s ؟ ActionsOnSupplierProposal=الأحداث على طلب السعر DocModelAuroreDescription=نموذج طلب كامل (شعار ...) CommercialAsk=طلب السعر DefaultModelSupplierProposalCreate=إنشاء نموذج افتراضي DefaultModelSupplierProposalToBill=القالب الافتراضي عند إغلاق طلب السعر (مقبول) DefaultModelSupplierProposalClosed=القالب الافتراضي عند إغلاق طلب السعر (رفض) -ListOfSupplierProposals=List of vendor proposal requests -ListSupplierProposalsAssociatedProject=List of vendor proposals associated with project -SupplierProposalsToClose=Vendor proposals to close -SupplierProposalsToProcess=Vendor proposals to process -LastSupplierProposals=Latest %s price requests -AllPriceRequests=All requests +ListOfSupplierProposals=قائمة طلبات عروض البائعين +ListSupplierProposalsAssociatedProject=قائمة عروض الموردين المرتبطة بالمشروع +SupplierProposalsToClose=مقترحات البائع لإغلاق +SupplierProposalsToProcess=مقترحات البائعين للعملية +LastSupplierProposals=أحدث طلبات أسعار %s +AllPriceRequests=كل الطلبات +TypeContact_supplier_proposal_external_SHIPPING=جهة اتصال البائع للتسليم +TypeContact_supplier_proposal_external_BILLING=جهة اتصال البائع لإعداد الفواتير +TypeContact_supplier_proposal_external_SERVICE=اقتراح ممثل متابعة diff --git a/htdocs/langs/ar_SA/suppliers.lang b/htdocs/langs/ar_SA/suppliers.lang index d7496e5b941..4eb63ed057e 100644 --- a/htdocs/langs/ar_SA/suppliers.lang +++ b/htdocs/langs/ar_SA/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=اسم المشتري AllProductServicePrices=جميع أسعار المنتجات | الخدمات AllProductReferencesOfSupplier=جميع مراجع البائع BuyingPriceNumShort=أسعار المورد +RepeatableSupplierInvoice=فاتورة مورد النموذج +RepeatableSupplierInvoices=فواتير المورد النموذج +RepeatableSupplierInvoicesList=فواتير المورد النموذج +RecurringSupplierInvoices=فواتير الموردين المتكررة +ToCreateAPredefinedSupplierInvoice=من أجل إنشاء نموذج فاتورة المورد ، يجب عليك إنشاء فاتورة قياسية ، ثم ، دون التحقق من صحتها ، انقر فوق الزر "%s". +GeneratedFromSupplierTemplate=تم إنشاؤه من نموذج فاتورة المورد %s +SupplierInvoiceGeneratedFromTemplate=فاتورة المورد %s تم إنشاؤها من نموذج فاتورة المورد %s diff --git a/htdocs/langs/ar_SA/ticket.lang b/htdocs/langs/ar_SA/ticket.lang index 9ffe6e01161..ba141c195ad 100644 --- a/htdocs/langs/ar_SA/ticket.lang +++ b/htdocs/langs/ar_SA/ticket.lang @@ -27,6 +27,7 @@ Permission56003=حذف التذاكر Permission56004=إدارة التذاكر Permission56005=عرض جميع تذاكر الأطراف الثالثة (غير فعالة للمستخدمين الخارجيين ، دائماً محدودين بالطرف الثالث المعتمدين عليه) +Tickets=التذاكر TicketDictType=انواع - التذاكر TicketDictCategory=مجموعات - التذاكر TicketDictSeverity=اولويات - التذاكر @@ -90,15 +91,17 @@ TicketPublicAccess=واجهة عامة لا تتطلب توثيق متاحة ع TicketSetupDictionaries=انواع التذاكر ، الأولويات و الوسوم التحليلية متاحة عن طريق القواميس TicketParamModule=إعداد متغيرات الوحدة TicketParamMail=إعدادات البريد الإلكتروني -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=البريد الإلكتروني المرسل للإخطار بالإجابات +TicketEmailNotificationFromHelp=بريد المرسل الإلكتروني المراد استخدامه لإرسال بريد إلكتروني للإشعار عند تقديم إجابة داخل المكتب الخلفي. على سبيل المثال noreply@example.com +TicketEmailNotificationTo=قم بإخطار إنشاء التذكرة إلى عنوان البريد الإلكتروني هذا +TicketEmailNotificationToHelp=إذا كان موجودًا ، فسيتم إخطار عنوان البريد الإلكتروني هذا بإنشاء تذكرة TicketNewEmailBodyLabel=النص المرسل بعد إنشاء التذكرة TicketNewEmailBodyHelp=النص المدخل هنا سيتم إدراجه في إشعار البريد الإلكتروني الذى يؤكد إنشاء التذكرة من الواجهة العامة. معلومات تداول التذكرة ستضاف تلقائيا. TicketParamPublicInterface=إعدادات الواجهة العامة TicketsEmailMustExist=مطلوب بريد إلكتروني موجود لإنشاء تذكرة TicketsEmailMustExistHelp=في الواجهة العامة ، عنوان البريد الإلكتروني يجب ان يكون مدخل في قواعد البيانات لتتمكن من إنشاء تذكرة +TicketCreateThirdPartyWithContactIfNotExist=اسأل الاسم واسم الشركة عن رسائل البريد الإلكتروني غير المعروفة. +TicketCreateThirdPartyWithContactIfNotExistHelp=تحقق من وجود طرف ثالث أو جهة اتصال للبريد الإلكتروني الذي تم إدخاله. إذا لم يكن كذلك ، اطلب اسمًا واسم شركة لإنشاء طرف ثالث لديه جهة اتصال. PublicInterface=الواجهة العامة TicketUrlPublicInterfaceLabelAdmin=رابط بديل للواجهة العامة TicketUrlPublicInterfaceHelpAdmin=من الممكن تعريف إسم بديل لخادم الويب وبالتالي جعل الواجهة العامة متاحة عن طريق رابط اخر (يجب ان يعمل الخادم كوسيط للرابط الجديد) @@ -136,17 +139,19 @@ TicketsPublicNotificationNewMessage=إرسال إشعار بريد إلكترو TicketsPublicNotificationNewMessageHelp=إرسال إشعار بريد إلكتروني عند إضافة رسالة جديدة من الواجهة العامة (للمستخدم المسندة إليه التذكرة او بريد إشعارات التعديلات او بريد المرسل إليه في التذكرة) TicketPublicNotificationNewMessageDefaultEmail=عنوان بريد إشعارات (التعديلات) TicketPublicNotificationNewMessageDefaultEmailHelp=إرسال رسائل بريد إلكتروني الى هذا العنوان عند كل رسالة تعديل للتذاكر غير المسندة لمستخدم معين او إذا كان المستخدم المسندة إليه ليس لديه بريد معلوم. -TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) -TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". -TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): -TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. -TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): -TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. -TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket -TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. -TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. -TicketChooseProductCategory=Product category for ticket support -TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketsAutoReadTicket=وضع علامة على التذكرة تلقائيًا كمقروءة (عند إنشائها من المكتب الخلفي) +TicketsAutoReadTicketHelp=ضع علامة على التذكرة تلقائيًا كمقروءة عند إنشائها من المكتب الخلفي. عند إنشاء التذكرة من الواجهة العامة ، تظل البطاقة بحالة "غير مقروءة". +TicketsDelayBeforeFirstAnswer=يجب أن تتلقى التذكرة الجديدة إجابة أولى قبل (ساعات): +TicketsDelayBeforeFirstAnswerHelp=إذا لم تتلق التذكرة الجديدة إجابة بعد هذه الفترة الزمنية (بالساعات) ، فسيتم عرض أيقونة تحذير مهمة في عرض القائمة. +TicketsDelayBetweenAnswers=يجب ألا تكون التذكرة التي لم يتم حلها غير نشطة خلال (ساعات): +TicketsDelayBetweenAnswersHelp=إذا لم يكن هناك تفاعل إضافي للتذكرة التي لم يتم حلها والتي تلقت إجابة بالفعل بعد هذه الفترة الزمنية (بالساعات) ، فسيتم عرض رمز تحذير في عرض القائمة. +TicketsAutoNotifyClose=إخطار الطرف الثالث تلقائيًا عند إغلاق التذكرة +TicketsAutoNotifyCloseHelp=عند إغلاق التذكرة ، سيقترح عليك إرسال رسالة إلى أحد جهات اتصال الطرف الثالث. عند الإغلاق الجماعي ، سيتم إرسال رسالة إلى جهة اتصال واحدة للطرف الثالث المرتبط بالتذكرة. +TicketWrongContact=الاتصال المقدم ليس جزءًا من جهات اتصال التذاكر الحالية. لم يتم إرسال البريد الإلكتروني. +TicketChooseProductCategory=فئة المنتج لدعم التذاكر +TicketChooseProductCategoryHelp=حدد فئة المنتج لدعم التذاكر. سيتم استخدام هذا لربط العقد تلقائيًا بالتذكرة. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -163,8 +168,8 @@ OrderByDateAsc=ترتيب تصاعديا حسب التاريخ OrderByDateDesc=ترتيب تنازليا حسب التاريخ ShowAsConversation=عرض كقائمة محادثات MessageListViewType=عرض كقائمة جداول -ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets -ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? +ConfirmMassTicketClosingSendEmail=إرسال رسائل البريد الإلكتروني تلقائيًا عند إغلاق التذاكر +ConfirmMassTicketClosingSendEmailQuestion=هل تريد إخطار الأطراف الثالثة عند إغلاق هذه التذاكر؟ # # Ticket card @@ -190,8 +195,7 @@ TicketAssigned=تم إسناد التذكرة TicketChangeType=تغيير النوع TicketChangeCategory=تغيير الرمز التحليلي TicketChangeSeverity=تغيير الأولوية -TicketAddMessage=إضافة رسالة -AddMessage=إضافة رسالة +TicketAddMessage=Add private message MessageSuccessfullyAdded=تم إضافة التذكرة TicketMessageSuccessfullyAdded=تم إضافة الرسالة TicketMessagesList=قائمة الرسائل @@ -202,8 +206,8 @@ TicketSeverity=الأولوية ShowTicket=عرض التذكرة RelatedTickets=التذاكر المرتبطة TicketAddIntervention=إنشاء تدخل -CloseTicket=إغلاق التذكرة كمحلولة -AbandonTicket=إلغاء التذكرة +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=إغلاق التذكرة كمحلولة ConfirmCloseAticket=تأكيد إغلاق التذكرة ConfirmAbandonTicket=هل انت متأكد من إغلاق التذكرة كملغية @@ -217,18 +221,17 @@ SendMessageByEmail=إرسال بريد إلكتروني TicketNewMessage=رسالة جديدة ErrorMailRecipientIsEmptyForSendTicketMessage=المستقبل خالي. لم يتم إرسال البريد الإلكتروني TicketGoIntoContactTab=يرجى الذهاب الى تبويب "جهات الإتصال" لاختيارهم -TicketMessageMailIntro=مقدمة +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=يضاف هذا النص فقط في بداية البريد الإلكتروني و لن يتم حفظه -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=التوقيع -TicketMessageMailSignatureHelp=هذا النص سيتم إدراجه فقط في نهاية البريد الإلكتروني ولن يتم حفظه -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=توقيع بريد الإستجابة -TicketMessageMailSignatureHelpAdmin=هذا النص سيتم إدراجه بعد رسالة الإستجابة +TicketMessageMailIntroText=مرحبًا ،
    تمت إضافة إجابة جديدة إلى التذكرة التي تتبعها. ها هي الرسالة:
    +TicketMessageMailIntroHelpAdmin=سيتم إدراج هذا النص قبل الإجابة عند الرد على تذكرة من Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=هذا النص سيتم إدراجه بعد رسالة الإستجابة TicketMessageHelp=فقط هذا النص سيتم حفظه في قائمة الرسائل في بطاقة التذكرة TicketMessageSubstitutionReplacedByGenericValues=متغيرات الإستبدال تأخذ قيم عامة +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=الزمن المستغرق منذ TicketTimeToRead=الزمن المستغرق قبل القراءة TicketTimeElapsedBeforeSince=الزمن المستغرق قبل \\\\ منذ @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=تم إضافة رسالة جديدة TicketAssignedToYou=تم إسناد التذكرة TicketAssignedEmailBody=تم إسناد التذكرة رقم %s إليك من قبل %s MarkMessageAsPrivate=تحديد الرسالة كخاصة +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=هذه الرسالة لن تعرض للمستخدمين الخارجيين TicketEmailOriginIssuer=عنوان البريد عند قطع التذكرة InitialMessage=الرسالة الاصلية @@ -252,16 +256,16 @@ TicketChangeStatus=تغيير الحالة TicketConfirmChangeStatus=تأكيد تغيير الحالة: %s ؟ TicketLogStatusChanged=تم تغيير الحالى : %s الى %s TicketNotNotifyTiersAtCreate=لا تخطر الشركات عند الإنشاء -NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket -TicketNotifyAllTiersAtClose=All related contacts -TicketNotNotifyTiersAtClose=No related contact +NotifyThirdpartyOnTicketClosing=جهات الاتصال لإخطار أثناء إغلاق التذكرة +TicketNotifyAllTiersAtClose=جميع جهات الاتصال ذات الصلة +TicketNotNotifyTiersAtClose=لا يوجد جهة اتصال ذات صلة Unread=غير مقروءة TicketNotCreatedFromPublicInterface=غير متاحة. التذكرة لم يتم إنشاءها من الواجهة العامة ErrorTicketRefRequired=الرقم المرجعي للتذكرة مطلوب -TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. -TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. -TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. +TicketsDelayForFirstResponseTooLong=انقضى وقت طويل جدًا منذ فتح التذكرة دون أي إجابة. +TicketsDelayFromLastResponseTooLong=انقضى وقت طويل جدًا منذ آخر إجابة على هذه التذكرة. +TicketNoContractFoundToLink=لم يتم العثور على عقد مرتبط تلقائيًا بهذه التذكرة. الرجاء ربط العقد يدويا. +TicketManyContractsLinked=تم ربط العديد من العقود تلقائيًا بهذه التذكرة. تأكد من التحقق مما يجب اختياره. # # Logs @@ -289,12 +293,12 @@ TicketNewEmailBody=هذا بريد إلكتروني تلقائي لتأكيد ق TicketNewEmailBodyCustomer=هذا بريد إلكتروني تلقائي لتأكيد إنشاء تذكرة جديدة على حسابك TicketNewEmailBodyInfosTicket=معلومات مراقبة التذكرة TicketNewEmailBodyInfosTrackId=رقم تتبع التذكرة: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=يمكنك عرض تقدم التذكرة بالضغط على الرابط التالي TicketNewEmailBodyInfosTrackUrlCustomer=يمكنك متابعة التذكرة على الواجهة المعينة بالضغط على الرابط التالي -TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=يمكنك الرجوع إلى تاريخ هذه التذكرة بالضغط على الرابط التالي TicketEmailPleaseDoNotReplyToThisEmail=يرجى عدم الرد على هذا البريد الإلكتروني ! إستخدم الرابط للرد على الواجهة. TicketPublicInfoCreateTicket=تتيح لك هذه الإستمارة تسجيل تذكرة دعم فني لدى نظامنا الإداري. -TicketPublicPleaseBeAccuratelyDescribe=يرجى وصف المشكلة بدقة. وذكر اكبر قدر من المعلومات بما يتيح لنا معرفة طلبك بشكل جيد. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=يرجى إدخال رقم تتبع التذكرة TicketTrackId=رقم التتبع العام OneOfTicketTrackId=واحد من ارقام التتبع الخاصة بك @@ -313,10 +317,10 @@ NewUser=المستخدم جديد NumberOfTicketsByMonth=عدد التذاكر شهريا NbOfTickets=عدد التذاكر # notifications -TicketCloseEmailSubjectCustomer=Ticket closed -TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. -TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) -TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: +TicketCloseEmailSubjectCustomer=تم إغلاق التذكرة +TicketCloseEmailBodyCustomer=هذه رسالة تلقائية لإعلامك بأن التذكرة %s قد تم إغلاقها للتو. +TicketCloseEmailSubjectAdmin=تم إغلاق التذكرة - Réf %s (معرف التذكرة العامة %s) +TicketCloseEmailBodyAdmin=تم إغلاق تذكرة بالمعرف # %s ، راجع المعلومات: TicketNotificationEmailSubject=تم تعديل التذكرة %s. TicketNotificationEmailBody=هذه رسالة تلقائية لإعلامك بأن التذكرة %s تم تعديلها TicketNotificationRecipient=مستلم الإشعار @@ -344,7 +348,7 @@ BoxTicketLastXDays=عدد التذاكر الجديدة بالأيام في اخ BoxTicketLastXDayswidget = عدد التذاكر الجديدة بالأيام في اخر س يوم BoxNoTicketLastXDays=لا توجد تذاكر جديدة في اخر %s ايام BoxNumberOfTicketByDay=عدد التذاكر الجديدة بالأيام -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=عدد التذاكر مقابل التذاكر المغلقة (اليوم) TicketCreatedToday=التذاكر المنشأة اليوم TicketClosedToday=التذاكر المغلقة اليوم -KMFoundForTicketGroup=We found topics and FAQs that may answers your question, thanks to check them before submitting the ticket +KMFoundForTicketGroup=وجدنا المواضيع والأسئلة الشائعة التي قد تجيب على سؤالك ، وذلك بفضل التحقق منها قبل إرسال التذكرة diff --git a/htdocs/langs/ar_SA/trips.lang b/htdocs/langs/ar_SA/trips.lang index d6aecb1b41f..c1e2d3ffca3 100644 --- a/htdocs/langs/ar_SA/trips.lang +++ b/htdocs/langs/ar_SA/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips +AUTHOR=تم تسجيلها عن طريق +AUTHORPAIEMENT=يتحملها +AddTrip=إنشاء تقرير حساب +AllExpenseReport=كل نوع من تقرير المصاريف +AllExpenseReports=جميع تقارير المصاريف +AnyOtherInThisListCanValidate=الشخص المراد إبلاغه للتحقق من صحة الطلب. +AttachTheNewLineToTheDocument=أرفق السطر بمستند تم تحميله +AucuneLigne=لا يوجد تقرير مصروفات تعلن بعد +BrouillonnerTrip=الرجوع تقرير نفقة لوضع "مسودة" +byEX_DAY=في اليوم (قيود على %s) +byEX_EXP=عن طريق السطر (الحصر لـ %s) +byEX_MON=حسب الشهر (الحصر لـ %s) +byEX_YEA=حسب السنة (قيود على %s) +CANCEL_USER=حذف من قبل +CarCategory=فئة السيارة +ClassifyRefunded=تصنيف "ردها" +CompanyVisited=زيارة الشركة / المنظمة +ConfirmBrouillonnerTrip=هل أنت متأكد من أنك تريد نقل تقرير المصاريف هذا إلى الحالة "مسودة"؟ +ConfirmCancelTrip=هل أنت متأكد أنك تريد إلغاء تقرير المصاريف هذا؟ +ConfirmCloneExpenseReport=هل أنت متأكد أنك تريد استنساخ تقرير المصاريف هذا؟ +ConfirmDeleteTrip=هل أنت متأكد أنك تريد حذف تقرير المصاريف هذا؟ +ConfirmPaidTrip=هل أنت متأكد أنك تريد تغيير حالة تقرير المصاريف هذا إلى "مدفوعة"؟ +ConfirmRefuseTrip=هل أنت متأكد أنك تريد رفض تقرير المصاريف هذا؟ +ConfirmSaveTrip=هل أنت متأكد أنك تريد التحقق من صحة تقرير المصاريف هذا؟ +ConfirmValideTrip=هل أنت متأكد أنك تريد الموافقة على تقرير المصاريف هذا؟ +DATE_CANCEL=تاريخ الإلغاء +DATE_PAIEMENT=تاريخ الدفع +DATE_REFUS=تاريخ ينكر +DATE_SAVE=تاريخ التحقق من الصحة +DefaultCategoryCar=وضع النقل الافتراضي +DefaultRangeNumber=رقم النطاق الافتراضي +DeleteTrip=حذف تقرير حساب +ErrorDoubleDeclaration=لقد أعلن تقرير حساب آخر في نطاق تاريخ مماثل. +Error_EXPENSEREPORT_ADDON_NotDefined=خطأ ، لم يتم تعريف قاعدة ترقيم تقرير المصاريف المرجع في إعداد الوحدة النمطية "تقرير المصاريف" +ExpenseRangeOffset=مبلغ الإزاحة: %s +expenseReportCatDisabled=الفئة معطلة - راجع قاموس c_exp_tax_cat +expenseReportCoef=معامل في الرياضيات او درجة +expenseReportCoefUndefined=(القيمة غير محددة) +expenseReportOffset=ويقابل +expenseReportPrintExample=الإزاحة + (d x coef) = %s +expenseReportRangeDisabled=النطاق معطل - راجع c_exp_tax_range dictionay +expenseReportRangeFromTo=من %d إلى %d +expenseReportRangeMoreThan=أكثر من %d +expenseReportTotalForFive=مثال مع d = 5 +ExpenseReportApplyTo=تنطبق على +ExpenseReportApproved=تمت الموافقة على تقرير المصاريف +ExpenseReportApprovedMessage=تمت الموافقة على تقرير المصاريف %s.
    - المستخدم: %s
    - معتمد من: %s
    انقر هنا لإظهار تقرير المصاريف: %s +ExpenseReportCanceled=تم إلغاء تقرير المصاريف +ExpenseReportCanceledMessage=تم إلغاء تقرير المصاريف %s.
    - المستخدم: %s
    - تم الإلغاء بواسطة: %s
    - الدافع للإلغاء: %sa034bccf هنا: +ExpenseReportConstraintViolationError=تم تجاوز الحد الأقصى للمبلغ (القاعدة %s): %s أعلى من %s (تجاوز ممنوع) +ExpenseReportConstraintViolationWarning=تجاوز الحد الأقصى للمبلغ (القاعدة %s): %s أعلى من %s (تجاوز المسموح به) +ExpenseReportDateEnd=تاريخ انتهاء +ExpenseReportDateStart=تاريخ بداية +ExpenseReportDomain=المجال المطلوب تطبيقه +ExpenseReportIkDesc=يمكنك تعديل حساب مصروفات الكيلومترات حسب الفئة والمدى اللذين تم تحديدهما مسبقًا. d هي المسافة بالكيلومترات +ExpenseReportLimitAmount=أقصى مبلغ +ExpenseReportLimitOn=حد على +ExpenseReportLine=خط تقرير حساب +ExpenseReportPaid=تم دفع تقرير المصاريف +ExpenseReportPaidMessage=تم دفع تقرير المصاريف %s.
    - المستخدم: %s
    - مدفوع: %s
    انقر هنا لعرض تقرير المصاريف: %s +ExpenseReportPayment=دفع تقرير حساب +ExpenseReportRef=المرجع. تقرير المصاريف +ExpenseReportRefused=تم رفض تقرير المصاريف +ExpenseReportRefusedMessage=تم رفض تقرير المصاريف %s.
    - المستخدم: %s
    - مرفوض من قبل: %s
    - دافع الرفض: %s a0342fcc2 هنا: +ExpenseReportRestrictive=تجاوز ممنوع +ExpenseReportRuleErrorOnSave=خطأ: %s +ExpenseReportRuleSave=تم حفظ قاعدة تقرير المصاريف +ExpenseReportRulesDesc=يمكنك تحديد قواعد المبلغ الأقصى لتقارير المصروفات. سيتم تطبيق هذه القواعد عند إضافة مصروفات جديدة إلى تقرير المصاريف +ExpenseReportWaitingForApproval=وقد قدم تقرير حساب جديد للموافقة عليها +ExpenseReportWaitingForApprovalMessage=تم إرسال تقرير مصروفات جديد وهو في انتظار الموافقة.
    - المستخدم: %s
    - الفترة: %s
    انقر هنا للتحقق من صحة: %s +ExpenseReportWaitingForReApproval=تم تقديم تقرير المصاريف لإعادة الموافقة +ExpenseReportWaitingForReApprovalMessage=تم تقديم تقرير المصاريف وينتظر إعادة الموافقة.
    في %s ، لقد رفضت الموافقة على تقرير المصاريف لهذا السبب: %s.
    تم اقتراح نسخة جديدة وتنتظر موافقتك.
    - المستخدم: %s
    - الفترة: %s
    انقر هنا للتحقق من صحة: %s +ExpenseReportsIk=تكوين رسوم الأميال +ExpenseReportsRules=قواعد تقرير المصاريف +ExpenseReportsToApprove=تقارير المصروفات للموافقة عليها +ExpenseReportsToPay=تقارير النفقات لدفع +ExpensesArea=منطقة تقارير المصاريف +FeesKilometersOrAmout=كم المبلغ أو +LastExpenseReports=أحدث تقارير النفقات %s +ListOfFees=قائمة الرسوم +ListOfTrips=قائمة التقارير حساب +ListToApprove=تنتظر الموافقة +ListTripsAndExpenses=قائمة التقارير حساب +MOTIF_CANCEL=سبب +MOTIF_REFUS=سبب +ModePaiement=طريقة الدفع +NewTrip=تقرير حساب جديد +nolimitbyEX_DAY=باليوم (بلا قيود) +nolimitbyEX_EXP=عن طريق السطر (بلا حدود) +nolimitbyEX_MON=حسب الشهر (بلا حدود) +nolimitbyEX_YEA=حسب السنة (بلا قيود) +NoTripsToExportCSV=أي تقرير نفقة لتصدير لهذه الفترة. +NOT_AUTHOR=أنت لست صاحب هذا التقرير حساب. إلغاء العملية. +OnExpense=خط المصاريف +PDFStandardExpenseReports=قالب قياسي لتوليد وثيقة PDF لتقرير حساب +PaidTrip=دفع تقرير مصروفات +REFUSEUR=نفتها +RangeIk=نطاق الأميال +RangeNum=النطاق %d +SaveTrip=التحقق من صحة التقرير حساب ShowExpenseReport=عرض تقرير حساب +ShowTrip=عرض تقرير حساب +TripCard=حساب بطاقة تقرير +TripId=تقرير حساب الهوية +TripNDF=المعلومات تقرير حساب +TripSociete=شركة المعلومات Trips=تقارير المصاريف TripsAndExpenses=تقارير النفقات TripsAndExpensesStatistics=إحصاءات تقارير المصاريف -TripCard=حساب بطاقة تقرير -AddTrip=إنشاء تقرير حساب -ListOfTrips=قائمة التقارير حساب -ListOfFees=قائمة الرسوم -TypeFees=Types of fees -ShowTrip=عرض تقرير حساب -NewTrip=تقرير حساب جديد -LastExpenseReports=Latest %s expense reports -AllExpenseReports=All expense reports -CompanyVisited=Company/organization visited -FeesKilometersOrAmout=كم المبلغ أو -DeleteTrip=حذف تقرير حساب -ConfirmDeleteTrip=Are you sure you want to delete this expense report? -ListTripsAndExpenses=قائمة التقارير حساب -ListToApprove=تنتظر الموافقة -ExpensesArea=منطقة تقارير المصاريف -ClassifyRefunded=تصنيف "ردها" -ExpenseReportWaitingForApproval=وقد قدم تقرير حساب جديد للموافقة عليها -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.
    - User: %s
    - Period: %s
    Click here to validate: %s -ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval -ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.
    The %s, you refused to approve the expense report for this reason: %s.
    A new version has been proposed and waiting for your approval.
    - User: %s
    - Period: %s
    Click here to validate: %s -ExpenseReportApproved=An expense report was approved -ExpenseReportApprovedMessage=The expense report %s was approved.
    - User: %s
    - Approved by: %s
    Click here to show the expense report: %s -ExpenseReportRefused=An expense report was refused -ExpenseReportRefusedMessage=The expense report %s was refused.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s -ExpenseReportCanceled=An expense report was canceled -ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s -ExpenseReportPaid=An expense report was paid -ExpenseReportPaidMessage=The expense report %s was paid.
    - User: %s
    - Paid by: %s
    Click here to show the expense report: %s -TripId=تقرير حساب الهوية -AnyOtherInThisListCanValidate=Person to be informed for validating the request. -TripSociete=شركة المعلومات -TripNDF=المعلومات تقرير حساب -PDFStandardExpenseReports=قالب قياسي لتوليد وثيقة PDF لتقرير حساب -ExpenseReportLine=خط تقرير حساب -TF_OTHER=أخرى -TF_TRIP=وسائل النقل -TF_LUNCH=غداء -TF_METRO=مترو -TF_TRAIN=قطار -TF_BUS=حافلة -TF_CAR=سيارة -TF_PEAGE=رسوم -TF_ESSENCE=وقود -TF_HOTEL=الفندق -TF_TAXI=سيارة اجره -EX_KME=Mileage costs -EX_FUE=Fuel CV -EX_HOT=الفندق -EX_PAR=Parking CV -EX_TOL=Toll CV -EX_TAX=Various Taxes -EX_IND=Indemnity transportation subscription -EX_SUM=Maintenance supply -EX_SUO=Office supplies -EX_CAR=Car rental -EX_DOC=Documentation -EX_CUR=Customers receiving -EX_OTR=Other receiving -EX_POS=Postage -EX_CAM=CV maintenance and repair -EX_EMM=Employees meal -EX_GUM=Guests meal -EX_BRE=Breakfast -EX_FUE_VP=Fuel PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parking PV -EX_CAM_VP=PV maintenance and repair -DefaultCategoryCar=Default transportation mode -DefaultRangeNumber=Default range number -UploadANewFileNow=Upload a new document now -Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' -ErrorDoubleDeclaration=لقد أعلن تقرير حساب آخر في نطاق تاريخ مماثل. -AucuneLigne=لا يوجد تقرير مصروفات تعلن بعد -ModePaiement=طريقة الدفع +TypeFees=أنواع الرسوم +UploadANewFileNow=قم بتحميل مستند جديد الآن VALIDATOR=العضو المسؤول عن الموافقة VALIDOR=التي وافقت عليها -AUTHOR=تم تسجيلها عن طريق -AUTHORPAIEMENT=يتحملها -REFUSEUR=نفتها -CANCEL_USER=حذف من قبل -MOTIF_REFUS=سبب -MOTIF_CANCEL=سبب -DATE_REFUS=تاريخ ينكر -DATE_SAVE=تاريخ التحقق من الصحة -DATE_CANCEL=تاريخ الإلغاء -DATE_PAIEMENT=تاريخ الدفع -ExpenseReportRef=Ref. expense report ValidateAndSubmit=التحقق من صحة ويقدم للموافقة عليها ValidatedWaitingApproval=التحقق من صحة (في انتظار الموافقة) -NOT_AUTHOR=أنت لست صاحب هذا التقرير حساب. إلغاء العملية. -ConfirmRefuseTrip=Are you sure you want to deny this expense report? ValideTrip=الموافقة على تقرير النفقات -ConfirmValideTrip=Are you sure you want to approve this expense report? -PaidTrip=دفع تقرير مصروفات -ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? -ConfirmCancelTrip=Are you sure you want to cancel this expense report? -BrouillonnerTrip=الرجوع تقرير نفقة لوضع "مسودة" -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? -SaveTrip=التحقق من صحة التقرير حساب -ConfirmSaveTrip=Are you sure you want to validate this expense report? -NoTripsToExportCSV=أي تقرير نفقة لتصدير لهذه الفترة. -ExpenseReportPayment=دفع تقرير حساب -ExpenseReportsToApprove=Expense reports to approve -ExpenseReportsToPay=تقارير النفقات لدفع -ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? -ExpenseReportsIk=Configuration of mileage charges -ExpenseReportsRules=Expense report rules -ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers -ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report -expenseReportOffset=ويقابل -expenseReportCoef=Coefficient -expenseReportTotalForFive=Example with d = 5 -expenseReportRangeFromTo=from %d to %d -expenseReportRangeMoreThan=more than %d -expenseReportCoefUndefined=(value not defined) -expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary -expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Apply to -ExpenseReportDomain=Domain to apply -ExpenseReportLimitOn=Limit on -ExpenseReportDateStart=تاريخ بداية -ExpenseReportDateEnd=تاريخ انتهاء -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden -AllExpenseReport=All type of expense report -OnExpense=Expense line -ExpenseReportRuleSave=Expense report rule saved -ExpenseReportRuleErrorOnSave=Error: %s -RangeNum=Range %d -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) -byEX_DAY=by day (limitation to %s) -byEX_MON=by month (limitation to %s) -byEX_YEA=by year (limitation to %s) -byEX_EXP=by line (limitation to %s) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) -nolimitbyEX_DAY=by day (no limitation) -nolimitbyEX_MON=by month (no limitation) -nolimitbyEX_YEA=by year (no limitation) -nolimitbyEX_EXP=by line (no limitation) -CarCategory=Vehicle category -ExpenseRangeOffset=Offset amount: %s -RangeIk=Mileage range -AttachTheNewLineToTheDocument=Attach the line to an uploaded document + +## Dictionary +EX_BRE=إفطار +EX_CAM=صيانة وإصلاح السيرة الذاتية +EX_CAM_VP=صيانة وإصلاح الكهروضوئية +EX_CAR=تاجير سيارة +EX_CUR=استقبال العملاء +EX_DOC=توثيق +EX_EMM=وجبة الموظفين +EX_FUE=السيرة الذاتية للوقود +EX_FUE_VP=الوقود الكهروضوئية +EX_GUM=وجبة الضيوف +EX_HOT=الفندق +EX_IND=إشتراك تعويض النقل +EX_KME=تكاليف الأميال +EX_OTR=استلام أخرى +EX_PAR=السيرة الذاتية لوقوف السيارات +EX_PAR_VP=وقوف السيارات PV +EX_POS=رسوم البريد +EX_SUM=توريد الصيانة +EX_SUO=اللوازم المكتبية +EX_TAX=ضرائب مختلفة +EX_TOL=السيرة الذاتية +EX_TOL_VP=Toll PV +TF_BUS=حافلة +TF_CAR=سيارة +TF_ESSENCE=وقود +TF_HOTEL=الفندق +TF_LUNCH=غداء +TF_METRO=مترو +TF_OTHER=أخرى +TF_PEAGE=رسوم +TF_TAXI=سيارة اجره +TF_TRAIN=قطار +TF_TRIP=وسائل النقل diff --git a/htdocs/langs/ar_SA/users.lang b/htdocs/langs/ar_SA/users.lang index 51f1679a4cf..df3d662f0b2 100644 --- a/htdocs/langs/ar_SA/users.lang +++ b/htdocs/langs/ar_SA/users.lang @@ -6,14 +6,14 @@ Permission=إذن Permissions=أذونات EditPassword=تعديل كلمة السر SendNewPassword=تجديد وإرسال كلمة السر -SendNewPasswordLink=Send link to reset password +SendNewPasswordLink=أرسل رابطًا لإعادة تعيين كلمة المرور ReinitPassword=تجديد كلمة المرور PasswordChangedTo=تغيير كلمة السر : ٪ ق -SubjectNewPassword=Your new password for %s +SubjectNewPassword=كلمة مرورك الجديدة لـ %s GroupRights=مجموعة الاذونات UserRights=أذونات المستخدم -Credentials=Credentials -UserGUISetup=User Display Setup +Credentials=أوراق اعتماد +UserGUISetup=إعداد عرض المستخدم DisableUser=يعطل DisableAUser=تعطيل المستخدم DeleteUser=حذف @@ -21,12 +21,12 @@ DeleteAUser=حذف المستخدم EnableAUser=وتمكن المستخدم DeleteGroup=حذف DeleteAGroup=حذف مجموعة -ConfirmDisableUser=Are you sure you want to disable user %s? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=هل أنت متأكد من أنك تريد تعطيل المستخدم %s ؟ +ConfirmDeleteUser=هل أنت متأكد من أنك تريد حذف المستخدم %s ؟ +ConfirmDeleteGroup=هل أنت متأكد من أنك تريد حذف المجموعة %s ؟ +ConfirmEnableUser=هل أنت متأكد من أنك تريد تمكين المستخدم %s ؟ +ConfirmReinitPassword=هل أنت متأكد أنك تريد إنشاء كلمة مرور جديدة للمستخدم %s ؟ +ConfirmSendNewPassword=هل أنت متأكد أنك تريد إنشاء وإرسال كلمة مرور جديدة للمستخدم %s ؟ NewUser=مستخدم جديد CreateUser=إنشاء مستخدم LoginNotDefined=ادخل ليست محددة. @@ -35,8 +35,8 @@ ListOfUsers=قائمة المستخدمين SuperAdministrator=مدير السوبر SuperAdministratorDesc=مدير كل الحقوق AdministratorDesc=مدير -DefaultRights=Default Permissions -DefaultRightsDesc=Define here the default permissions that are automatically granted to a new user (to modify permissions for existing users, go to the user card). +DefaultRights=الأذونات الافتراضية +DefaultRightsDesc=حدد هنا أذونات الافتراضية التي يتم منحها تلقائيًا لمستخدم الجديد (لتعديل الأذونات للمستخدمين الحاليين ، انتقل إلى بطاقة المستخدم). DolibarrUsers=Dolibarr المستخدمين LastName=اللقب FirstName=الاسم الأول @@ -45,14 +45,14 @@ NewGroup=مجموعة جديدة CreateGroup=إنشاء مجموعة RemoveFromGroup=إزالة من المجموعة PasswordChangedAndSentTo=تم تغيير كلمة المرور وترسل إلى ٪ ق. -PasswordChangeRequest=Request to change password for %s +PasswordChangeRequest=طلب تغيير كلمة المرور لـ %s PasswordChangeRequestSent=طلب تغيير كلمة السر لإرسالها إلى ٪ ق ٪ ق. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. -IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. -ConfirmPasswordReset=Confirm password reset +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. +IfEmailExistPasswordRequestSent=إذا كان هذا البريد الإلكتروني حسابًا صالحًا ، فقد تم إرسال بريد إلكتروني لإعادة تعيين كلمة المرور. +ConfirmPasswordReset=تأكيد إعادة تعيين كلمة المرور MenuUsersAndGroups=مجموعات المستخدمين -LastGroupsCreated=Latest %s groups created -LastUsersCreated=Latest %s users created +LastGroupsCreated=تم إنشاء أحدث مجموعات %s +LastUsersCreated=أحدث إصدار من المستخدمين في %s ShowGroup=وتبين لفريق ShowUser=وتظهر للمستخدم NonAffectedUsers=غير المتأثرة المستخدمين @@ -62,27 +62,26 @@ ListOfUsersInGroup=قائمة المستخدمين في هذه المجموعة ListOfGroupsForUser=قائمة الجماعات لهذا المستخدم LinkToCompanyContact=ربط طرف ثالث / اتصالات LinkedToDolibarrMember=وصلة عضو -LinkedToDolibarrUser=Link to user -LinkedToDolibarrThirdParty=Link to third party +LinkedToDolibarrUser=ارتباط بالمستخدم +LinkedToDolibarrThirdParty=رابط لطرف ثالث CreateDolibarrLogin=انشاء مستخدم CreateDolibarrThirdParty=إيجاد طرف ثالث LoginAccountDisableInDolibarr=في حساب المعاقين Dolibarr. UsePersonalValue=استخدام الشخصي قيمة -InternalUser=المستخدم الداخلي -ExportDataset_user_1=Users and their properties +ExportDataset_user_1=المستخدمون وخصائصهم DomainUser=النطاق المستخدم ق ٪ Reactivate=تنشيط -CreateInternalUserDesc=This form allows you to create an internal user in your company/organization. To create an external user (customer, vendor etc. ..), use the button 'Create Dolibarr User' from that third-party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/organization, or is a partner user outside of your organization that may need to see more data than data related to his company (the permission system will define what he can or can't see or do).
    An external user is a customer, vendor or other that must view ONLY data related to himself (Creating an external user for a third-party can be done from the contact record of the third-party).

    In both cases, you must grant permissions on the features that the user need. +CreateInternalUserDesc=يسمح لك هذا النموذج بإنشاء مستخدم داخلي في شركتك / مؤسستك. لإنشاء مستخدم خارجي (عميل ، بائع ، إلخ ..) ، استخدم الزر "إنشاء مستخدم Dolibarr" من بطاقة جهة الاتصال الخاصة بهذه الجهة الخارجية. +InternalExternalDesc=مستخدم داخلي هو مستخدم جزء من شركتك / مؤسستك ، أو مستخدم شريك خارج مؤسستك قد يحتاج إلى رؤية بيانات أكثر من البيانات المتعلقة بشركته (سيحدد نظام الأذونات ما يمكنه أو يمكنه لا أرى أو أفعل).
    المستخدم الخارجي هو عميل أو بائع أو غيره يجب عليه عرض البيانات المتعلقة به فقط (يمكن إنشاء مستخدم خارجي لطرف ثالث من سجل جهة الاتصال الخاص بالطرف الثالث).

    في كلتا الحالتين ، يجب عليك منح أذونات على الميزات التي يحتاجها المستخدم. PermissionInheritedFromAGroup=منح إذن لأن الموروث من واحد من المستخدم. Inherited=موروث -UserWillBe=Created user will be +UserWillBe=سيكون المستخدم الذي تم إنشاؤه UserWillBeInternalUser=وسوف يكون المستخدم إنشاء مستخدم داخلية (لأنه لا يرتبط طرف ثالث خاص) UserWillBeExternalUser=وسوف يكون المستخدم إنشاء مستخدم خارجي (لأنه مرتبط إلى طرف ثالث خاص) IdPhoneCaller=رقم تعريف الهاتف المتصل NewUserCreated=مستخدم ٪ ق إنشاء NewUserPassword=لتغيير كلمة المرور ل ٪ -NewPasswordValidated=Your new password have been validated and must be used now to login. +NewPasswordValidated=تم التحقق من صحة كلمة المرور الجديدة الخاصة بك ويجب استخدامها الآن لتسجيل الدخول. EventUserModified=مستخدم تعديل ق ٪ UserDisabled=مستخدم ٪ ق المعوقين UserEnabled=مستخدم ٪ ق تفعيلها @@ -90,37 +89,43 @@ UserDeleted=ق إزالة المستخدم ٪ NewGroupCreated=أنشأت مجموعة ق ٪ GroupModified=المجموعة٪ الصورة المعدلة GroupDeleted=فريق ازالة ق ٪ -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? -ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? +ConfirmCreateContact=هل أنت متأكد أنك تريد إنشاء حساب Dolibarr لجهة الاتصال هذه؟ +ConfirmCreateLogin=هل أنت متأكد أنك تريد إنشاء حساب Dolibarr لهذا العضو؟ +ConfirmCreateThirdParty=هل أنت متأكد أنك تريد إنشاء طرف ثالث لهذا العضو؟ LoginToCreate=ادخل لخلق NameToCreate=اسم طرف ثالث لخلق YourRole=الأدوار الخاص YourQuotaOfUsersIsReached=يتم التوصل إلى حصة الخاص بك من المستخدمين النشطين! -NbOfUsers=Number of users -NbOfPermissions=Number of permissions +NbOfUsers=عدد المستخدمين +NbOfPermissions=عدد الأذونات DontDowngradeSuperAdmin=يمكن فقط superadmin تقليله a superadmin HierarchicalResponsible=المشرف HierarchicView=الهرمي UseTypeFieldToChange=استخدام نوع الحقل لتغيير OpenIDURL=URL هوية OpenID LoginUsingOpenID=استخدام هوية OpenID للدخول -WeeklyHours=Hours worked (per week) -ExpectedWorkedHours=Expected hours worked per week +WeeklyHours=ساعات العمل (في الأسبوع) +ExpectedWorkedHours=ساعات العمل المتوقعة في الأسبوع ColorUser=اللون المستخدم -DisabledInMonoUserMode=Disabled in maintenance mode -UserAccountancyCode=User accounting code -UserLogoff=User logout -UserLogged=User logged -DateOfEmployment=Employment date -DateEmployment=Employment -DateEmploymentstart=Employment Start Date -DateEmploymentEnd=Employment End Date -RangeOfLoginValidity=Access validity date range -CantDisableYourself=You can't disable your own user record -ForceUserExpenseValidator=Force expense report validator -ForceUserHolidayValidator=Force leave request validator -ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of the user. Keep empty to keep this behaviour. -UserPersonalEmail=Personal email -UserPersonalMobile=Personal mobile phone -WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DisabledInMonoUserMode=معطل في وضع الصيانة +UserAccountancyCode=كود محاسبة المستخدم +UserLogoff=خروج المستخدم +UserLogged=قام المستخدم بتسجيل الدخول +DateOfEmployment=تاريخ التوظيف +DateEmployment=توظيف +DateEmploymentStart=تاريخ بدء التوظيف +DateEmploymentEnd=تاريخ انتهاء التوظيف +RangeOfLoginValidity=نطاق تاريخ صلاحية الوصول +CantDisableYourself=لا يمكنك تعطيل سجل المستخدم الخاص بك +ForceUserExpenseValidator=فرض مصدق تقرير المصروفات +ForceUserHolidayValidator=مدقق طلب الإجازة الإجباري +ValidatorIsSupervisorByDefault=بشكل افتراضي ، المدقق هو المشرف على المستخدم. ابق فارغة للحفاظ على هذا السلوك. +UserPersonalEmail=البريد الإلكتروني الشخصي +UserPersonalMobile=الهاتف المحمول الشخصي +WarningNotLangOfInterface=تحذير ، هذه هي اللغة الرئيسية التي يتحدثها المستخدم ، وليست لغة الواجهة التي اختار أن يراها. لتغيير لغة الواجهة المرئية بواسطة هذا المستخدم ، انتقل إلى علامة التبويب %s +DateLastLogin=تاريخ آخر تسجيل دخول +DatePreviousLogin=تاريخ تسجيل الدخول السابق +IPLastLogin=آخر تسجيل دخول إلى IP +IPPreviousLogin=تسجيل الدخول السابق إلى IP +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/ar_SA/website.lang b/htdocs/langs/ar_SA/website.lang index 79ed8803b26..31c1d344e7a 100644 --- a/htdocs/langs/ar_SA/website.lang +++ b/htdocs/langs/ar_SA/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=نص مرمز +WebsiteName=Name of the website WebsiteSetupDesc=قم بإنشاء الموقع الالكتروني الذي ترغب باستخدامه ثم اذهب الى القائمة المواقع الإلكترونية لتعديلها DeleteWebsite=حذف الموقع الإلكتروني ConfirmDeleteWebsite=هل انت متأكد من رغبتك بحذف هذا الموقع الإلكتروني ؟ سيتم حذف جميع الصفحات والمحتويات ايضا. الملفات المحملة (كما في المسار الاستديو و وحدة وإدارة المحتوى الرقمي) ستبقى دون حذف. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=ترويسات لغة ترميز النصوص التشعبي WEBSITE_ROBOT=محتوى ملف الروبوتات النصي WEBSITE_HTACCESS=محتوى ملف ضبط الوصول WEBSITE_MANIFEST_JSON=ملف قوائم جسون للموقع -WEBSITE_README=ملف إقرأني الوصفي WEBSITE_KEYWORDSDesc=إستخدم الشولة لفصل القيم -EnterHereLicenseInformation=أدخل هنا المعلومات الوصفية او معلومات الترخيص لملئ محتوى ملف إقرأني الوصفي . إذا قمت بتوزيع موقعك كقالب ، سيتم تصمين الملف في الحزمة. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=ترويسات لغة ترميز النصوص التشعبية (لهذه الصفحة فقظ) PageNameAliasHelp=اسم او لقب الصفحة.
    هذا يستخدم ايضا لانشاء رابط تسريع محركات البحث عندما يتم تشغيل الموقع عبر خادم إستضافة افتراضي (مثل اباتشي او انجنكس..) إستخدم الزر "%s" لتعديل هذا الاسم او اللقب. EditTheWebSiteForACommonHeader=ملاحظة: اذا كنت ترغب في تعيين ترويسة لكل الصفحات إستخدم الترويسات على مستوى الموقع بدلا عن ترويسات الصفحة\\الحاوية @@ -31,7 +32,7 @@ AddWebsite=إضافة موقع إلكتروني Webpage=الصفحة\\الحاوية AddPage=إضافة صفحة\\حاوية PageContainer=صفحة -PreviewOfSiteNotYetAvailable=The preview of your website %s is not yet available. You must first 'Import a full website template' or just 'Add a page/container'. +PreviewOfSiteNotYetAvailable=معاينة موقع الويب الخاص بك %s ليست متاحة بعد. يجب عليك أولاً ' استيراد قالب موقع ويب كامل ' أو ' فقط إضافة صفحة / حاوية '. RequestedPageHasNoContentYet=الصفحة المطلوبة بالمعرف %s لاتحتوي بعد على محتوى ، او ان ملف القالب الخاص بها قد تم حذفه. قم بتعديل محتويات الصفحة لحل ذلك SiteDeleted= الموقع "%s" تم حذهف PageContent=الصفحة\\الحاوية @@ -42,10 +43,12 @@ ViewPageInNewTab=عرض الصفحة في علامة تبويب جديدة SetAsHomePage=إجعلها الصفحة الرئيسية RealURL=الرابط الحقيقة ViewWebsiteInProduction=عرض الموقع باستخدام رابط الصفحة الرئيسية +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=بإستخدام اباتشي \\انجنكس\\...
    على خادمك (اباتشي او انجنكس..) قم بإنشاء خادم افتراضي يدعم البي اتش بي واجعل المسار الجذر له
    %s ExampleToUseInApacheVirtualHostConfig=مثال إعدادات لاستخدامه مع خادم اباتشي افتراضي YouCanAlsoTestWithPHPS=لاستخدام خادم بي اتش بي المضمن
    على بيئة التطوير ربما تفضل تجربة موقعك بخادم بي اتش بي المضمن (النسخة 5.5 فما فوق) عبر تشغيل
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=انشر موقعك الإلكتروني مع مقدم إستضافة اخر
    إذا كنت لا تمتلك خادم مواقع مثل اباتشي او انجنكس على الأنترنت، يمكنك تصدير وإستيراد الى نظام دوليبار اخر المقدم بواسطة مقدم استضافة دوليبار والذي يوفر تكامل مكتمل مع وحدة الموقع الإلكتروني. يمكنك ايجاد قائمة من مقدمين إستضافة دوليبار على موقع إستضافات دوليبار +YouCanAlsoDeployToAnotherWHP= قم بتشغيل موقع الويب الخاص بك مع مزود استضافة Dolibarr آخر
    إذا لم يكن لديك خادم ويب مثل Apache أو NGinx متاحًا على الإنترنت ، فيمكنك تصدير واستيراد موقع الويب الخاص بك إلى مثيل Dolibarr آخر يوفره مزود استضافة Dolibarr آخر يوفره بالكامل التكامل مع وحدة موقع الويب. يمكنك العثور على قائمة ببعض موفري خدمة استضافة Dolibarr على https://saas.dolibarr.org CheckVirtualHostPerms=ايضاً تأكد من ان مستخدم الخادم (مثلا www-data ) لديه صلاحيات %s على الملفات
    %s ReadPerm=قرأ WritePerm=التعديل والكتابة @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=يمكن تحرير مصدر لغة ترميز ا YouCanEditHtmlSource=
    يمكنك تضمين نصوص بي اتش بي بإستخدام أوسمة >?php?<. و المتغيرات العامة التالية متاحة : $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    يمكنك ايضا تضمين محتوى صفحة \\حاوية اخرى عن طريق تركيب الجملة التالي
    <?php includeContainer('لقب_الصفحة_المطلوبة'); ?>

    يمكنك إعادة التوجيه الى صفحة \\حاوية اخرى عن طريق تركيب الجملة التالي (ملاحظة لاتقم باي طباعة لمخرجات قبل عملية إعادة التوجهي ) :
    <?php redirectToContainer('لقب_الصفحة_المطلوبة'); ?>

    لإضافة رابط رابط صفحة اخرى يمكنك إستخدام تركيب الجملة التالي :
    <a href="لقب_الصفحة_المطلوبة.php">mylink<a>

    لتضمين رابط لتحميل ملف موجود ضمن مسار المستندات إستخدم المغلف document.php:
    على سبيل المثال لمف موجود على المسار /documents/ecm (يجب تسجيل الدخول اولاً) إستخدم تركيب الجملة التالي :
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    ولملف في المسار documents/medias (مسار مفتوح الوصول للجميع) إستخدم تركيب الجملة التالي:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    للمفات المشاركة بواسطة رابط المشاركة (وصول مفتوح بإستخدام مفتاح رمز دالة الملف ) إستخدم تركيب الجملة التالي:
    <a href="/document.php?hashp=publicsharekeyoffile">

    لتضمين صورة مخزنة في مسار المستندات إستخدم المغلف viewimage.php:
    على سبيل المثال لتضمين صورة موجودة في المسار documents/medias (مسار مفتوح الوصول للعامة)، إستخدم تركيب الجملة التالي:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=لتضمين صورة مشاركة عن طريق رابط المشاركة (وصول عام باستخدام رمز دالة الملف) إستخدم تركيب الجملة التالي:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    امثلة اكثر للغة ترميز النصوص التشعبية متاحة على مدونة التوثيق
    +YouCanEditHtmlSourceMore=
    يتوفر المزيد من أمثلة HTML أو التعليمات البرمجية الديناميكية على وثائق wiki
    . ClonePage=نسخ الصفحة\\الحاوية CloneSite=نسخ الموقع SiteAdded=تم إضافة الموقع الإلكتروني @@ -137,7 +140,7 @@ PagesRegenerated=تم توليد %s صفحة\\حاوية RegenerateWebsiteContent=إعادة توليد ملفات الموقع الإلكترونية المؤقتة AllowedInFrames=مسموح بها في الإطارات DefineListOfAltLanguagesInWebsiteProperties=عرف قائمة بكل اللغات المتاحة في خصائص الموقع -GenerateSitemaps=توليد ملف خريطة الموقع +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=إذا اكدت ، ستقوم بحذف ملف خرطة الموقع الحالي... ConfirmSitemapsCreation=تأكيد توليد خريطة الموقع SitemapGenerated=تم توليد ملف خريطة الموقع %s @@ -145,3 +148,10 @@ ImportFavicon=الايقونة ErrorFaviconType=الأيقونة لابد ان تكون بي ان جي ErrorFaviconSize=لابد ان يكون حجم الأيقونة 16x16 ، 32x32 او 64x64 FaviconTooltip=رفع صورة بي ان جي (16x16،32x32 او 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/ar_SA/withdrawals.lang b/htdocs/langs/ar_SA/withdrawals.lang index 4b9a548c683..c19c1738bee 100644 --- a/htdocs/langs/ar_SA/withdrawals.lang +++ b/htdocs/langs/ar_SA/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=فاتورة المورد بانتظار الدف InvoiceWaitingWithdraw=فاتورة بانتظار الخصم المباشر InvoiceWaitingPaymentByBankTransfer=فاتورة بانتظار تحويل الرصيد AmountToWithdraw=سحب المبلغ +AmountToTransfer=المبلغ لنقل NoInvoiceToWithdraw=لا توجد فاتورة مفتوحة لـ "%s" في الانتظار. انتقل إلى علامة التبويب "%s" في بطاقة الفاتورة لتقديم طلب. -NoSupplierInvoiceToWithdraw=لا توجد فاتورة مورد مع "طلبات ائتمان مباشرة" مفتوحة في انتظارك. انتقل إلى علامة التبويب "%s" في بطاقة الفاتورة لتقديم طلب. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=المستخدم المسؤول WithdrawalsSetup=إعداد دفع الخصم المباشر CreditTransferSetup=إعداد تحويل الرصيد @@ -41,6 +42,7 @@ CreditTransferStatistics=إحصاءات تحويل الائتمان Rejects=ترفض LastWithdrawalReceipt=أحدث %s إيصالات الخصم المباشر MakeWithdrawRequest=تقديم طلب دفع الخصم المباشر +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=قدم طلب تحويل رصيد WithdrawRequestsDone=%s تم تسجيل طلبات الدفع بالخصم المباشر BankTransferRequestsDone=%s تم تسجيل طلبات تحويل الرصيد @@ -48,7 +50,7 @@ ThirdPartyBankCode=كود بنك الطرف الثالث NoInvoiceCouldBeWithdrawed=لم يتم الخصم من فاتورة بنجاح. تحقق من أن الفواتير موجودة في الشركات التي لديها رقم IBAN صالح وأن IBAN يحتوي على UMR (مرجع تفويض فريد) بالوضع %s . WithdrawalCantBeCreditedTwice=تم بالفعل تمييز إيصال السحب هذا على أنه مدين ؛ لا يمكن القيام بذلك مرتين ، حيث من المحتمل أن يؤدي ذلك إلى إنشاء مدفوعات وإدخالات بنكية مكررة. ClassCredited=تصنيف حساب -ClassDebited=Classify debited +ClassDebited=تصنيف الخصم ClassCreditedConfirm=هل أنت متأكد من أنك تريد تصنيف إيصال السحب هذا على أنه مقيد في حسابك المصرفي؟ TransData=تاريخ الإرسال TransMetod=طريقة الإرسال @@ -99,8 +101,11 @@ CreditDate=الائتمان على WithdrawalFileNotCapable=تعذر إنشاء ملف إيصال السحب لبلدك %s (بلدك غير مدعوم) ShowWithdraw=عرض أمر الخصم المباشر IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ومع ذلك ، إذا كانت الفاتورة تحتوي على أمر دفع خصم مباشر واحد على الأقل لم تتم معالجته بعد ، فلن يتم تعيينها على أنها مدفوعة للسماح بإدارة السحب المسبق. -DoStandingOrdersBeforePayments=تتيح لك علامة التبويب هذه طلب أمر دفع الخصم المباشر. بمجرد الانتهاء من ذلك ، انتقل إلى القائمة بنك-> الدفع عن طريق الخصم المباشر لإنشاء أمر الخصم المباشر وإدارته. عند إغلاق أمر الخصم المباشر ، سيتم تسجيل الدفع على الفواتير تلقائيًا ، وإغلاق الفواتير إذا كان الباقي للدفع فارغًا. -DoCreditTransferBeforePayments=تتيح لك علامة التبويب هذه طلب أمر تحويل رصيد. بمجرد الانتهاء من ذلك ، انتقل إلى القائمة بنك-> الدفع عن طريق تحويل الرصيد لإنشاء أمر تحويل الرصيد وإدارته. عند إغلاق أمر تحويل الرصيد ، سيتم تسجيل الدفع على الفواتير تلقائيًا ، وإغلاق الفواتير إذا كان الباقي للدفع فارغًا. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=ملف أمر الخصم CreditTransferFile=ملف تحويل رصيد SetToStatusSent=تعيين إلى الحالة "ملف مرسل" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=تعذر إنشاء طلب الخصم المباش SepaMandate=تفويض الخصم المباشر لمنطقة الدفعات الأوروبية الموحدة (SEPA) SepaMandateShort=تفويض SEPA PleaseReturnMandate=يرجى إعادة نموذج التفويض هذا بالبريد الإلكتروني إلى %s أو بالبريد إلى -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=معرف الدائن CreditorName=اسم الدائن SEPAFillForm=(ب) الرجاء استكمال جميع الحقول المعلمة * @@ -135,7 +140,8 @@ SEPARCUR=SEPA CUR SEPAFRST=SEPA FRST ExecutionDate=تاريخ التنفيذ CreateForSepa=إنشاء ملف الخصم المباشر -ICS=Creditor Identifier - ICS +ICS=معرف الدائن - ICS +IDS=معرف المدين END_TO_END=علامة "EndToEndId" SEPA XML - معرف فريد يتم تعيينه لكل معاملة USTRD="Unstructured" SEPA XML tag ADDDAYS=أضف أيام إلى تاريخ التنفيذ @@ -152,5 +158,6 @@ ModeWarning=لم يتم تعيين خيار الوضع الحقيقي ، نتو ErrorCompanyHasDuplicateDefaultBAN=تمتلك الشركة ذات المعرف %s أكثر من حساب مصرفي افتراضي. لا توجد طريقة لمعرفة أي واحد يستخدم. ErrorICSmissing=ICS مفقود في الحساب المصرفي %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=يختلف المبلغ الإجمالي لأمر الخصم المباشر عن مجموع البنود -WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s -WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +WarningSomeDirectDebitOrdersAlreadyExists=تحذير: هناك بالفعل بعض أوامر الخصم المباشر المعلقة (%s) المطلوبة لمبلغ %s +WarningSomeCreditTransferAlreadyExists=تحذير: هناك بالفعل بعض عمليات تحويل الرصيد المعلقة (%s) المطلوبة لمبلغ %s +UsedFor=تستخدم ل %s diff --git a/htdocs/langs/ar_SA/workflow.lang b/htdocs/langs/ar_SA/workflow.lang index b20685899d3..a0a44bde14b 100644 --- a/htdocs/langs/ar_SA/workflow.lang +++ b/htdocs/langs/ar_SA/workflow.lang @@ -3,24 +3,34 @@ WorkflowSetup=إعداد وحدة تدفق العمل WorkflowDesc=هذه الوحدة توفر بعض الاجراءات التلقائية . في البداية يكون تدفق العمل مفتوحاً (يمكنك ان تعمل بالترتيب الذي تريد) لكن هنا يمكنك تفعيل بعض الجراءات التلقائية ThereIsNoWorkflowToModify=لا توجد تعديلات على سير العمل متوفرة مع الوحدات النشطة. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=إنشاء أمر مبيعات تلقائيًا بعد توقيع اقتراح تجاري (سيكون للأمر الجديد نفس مبلغ الاقتراح) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيًا بعد التوقيع على عرض تجاري (الفاتورة الجديدة سيكون لها نفس مبلغ الاقتراح) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد التحقق من صحة العقد -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيًا بعد إغلاق أمر المبيعات (الفاتورة الجديدة سيكون لها نفس مبلغ الأمر) +descWORKFLOW_TICKET_CREATE_INTERVENTION=عند إنشاء التذكرة ، قم بإنشاء تدخل تلقائيًا. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=تصنيف اقتراح المصدر المرتبط على أنه تمت فوترته عند تعيين أمر المبيعات على الفاتورة (وإذا كان مبلغ الأمر هو نفس المبلغ الإجمالي للعرض المرتبط الموقع) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=تصنيف مقترح المصدر المرتبط على أنه فاتورة عند التحقق من صحة فاتورة العميل (وإذا كان مبلغ الفاتورة هو نفس المبلغ الإجمالي للمقترح المرتبط الموقع) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=تصنيف أمر مبيعات المصدر المرتبط على أنه تمت فوترته عند التحقق من صحة فاتورة العميل (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للأمر المرتبط) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=تصنيف أمر مبيعات المصدر المرتبط على أنه فاتورة عند تعيين فاتورة العميل على مدفوعة (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للأمر المرتبط) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=تصنيف أمر مبيعات المصدر المرتبط على أنه مشحون عند التحقق من صحة الشحنة (وإذا كانت الكمية المشحونة بواسطة جميع الشحنات هي نفسها الموجودة في أمر التحديث) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=تصنيف أمر مبيعات المصدر المرتبط على أنه مشحون عند إغلاق الشحنة (وإذا كانت الكمية المشحونة بواسطة جميع الشحنات هي نفسها الموجودة في أمر التحديث) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=تصنيف مقترح مورد المصدر المرتبط كما هو مفوتر عند التحقق من صحة فاتورة المورد (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للعرض المرتبط) # Autoclassify purchase order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=تصنيف أمر شراء المصدر المرتبط كما هو مفوتر عند التحقق من صحة فاتورة المورد (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للأمر المرتبط) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=تصنيف أمر شراء المصدر المرتبط على أنه تم استلامه عند التحقق من صحة الاستلام (وإذا كانت الكمية المستلمة من قبل جميع الاستقبالات هي نفسها الموجودة في أمر الشراء للتحديث) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=تصنيف أمر شراء المصدر المرتبط كما تم استلامه عند إغلاق الاستلام (وإذا كانت الكمية المستلمة من قبل جميع الاستدعاءات هي نفسها الموجودة في أمر الشراء للتحديث) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=عند إنشاء تذكرة ، قم بربط العقود المتاحة لمطابقة الطرف الثالث +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=عند ربط العقود ، ابحث بين تلك الخاصة بالشركات الأم # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=إغلاق جميع المداخلات المرتبطة بالتذكرة عند إغلاق التذكرة AutomaticCreation=إنشاء تلقائي AutomaticClassification=التصنيف التلقائي # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=إغلاق تلقائي +AutomaticLinking=ربط تلقائي diff --git a/htdocs/langs/ar_SY/datapolicy.lang b/htdocs/langs/ar_SY/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ar_SY/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_SY/errors.lang b/htdocs/langs/ar_SY/errors.lang index 0bac7cf07c8..8097d3a5b6f 100644 --- a/htdocs/langs/ar_SY/errors.lang +++ b/htdocs/langs/ar_SY/errors.lang @@ -270,7 +270,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/ar_SY/externalsite.lang b/htdocs/langs/ar_SY/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/ar_SY/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/ar_SY/ftp.lang b/htdocs/langs/ar_SY/ftp.lang deleted file mode 100644 index 254a2a698ce..00000000000 --- a/htdocs/langs/ar_SY/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP or SFTP Client module setup -NewFTPClient=New FTP/FTPS connection setup -FTPArea=FTP/FTPS Area -FTPAreaDesc=This screen shows a view of an FTP et SFTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions -FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/az_AZ/datapolicy.lang b/htdocs/langs/az_AZ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/az_AZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/az_AZ/errors.lang b/htdocs/langs/az_AZ/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/az_AZ/errors.lang +++ b/htdocs/langs/az_AZ/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/az_AZ/externalsite.lang b/htdocs/langs/az_AZ/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/az_AZ/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/az_AZ/ftp.lang b/htdocs/langs/az_AZ/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/az_AZ/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index aea81c1d3a5..93acfa70491 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Държави извън ЕИО CountriesInEECExceptMe=Държави в ЕИО, с изключение на %s CountriesExceptMe=Всички държави с изключение на %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Основна счетоводна сметк MainAccountForUsersNotDefined=Основна счетоводна сметка за потребители, която не е дефинирана в настройката MainAccountForVatPaymentNotDefined=Основна счетоводна сметка за плащане на ДДС, която не е дефинирана в настройката MainAccountForSubscriptionPaymentNotDefined=Основна счетоводна сметка за плащане на абонамент, която не е дефинирана в настройката +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Секция за счетоводство AccountancyAreaDescIntro=Използването на счетоводния модул се извършва на няколко стъпки: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Деактивиране на директно доб ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Активиране на експортиране на журнали в състояние на чернова ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Журнал за продажби -ACCOUNTING_PURCHASE_JOURNAL=Журнал за покупки -ACCOUNTING_MISCELLANEOUS_JOURNAL=Общ журнал +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Журнал за разходни отчети -ACCOUNTING_SOCIAL_JOURNAL=Журнал за данъци +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Има нов журнал +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Журнал за данъци ACCOUNTING_RESULT_PROFIT=Счетоводна сметка за резултат (печалба) ACCOUNTING_RESULT_LOSS=Счетоводна сметка за резултат (загуба) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Журнал за приключване -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Счетоводна сметка на преходен банков превод +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Преходна сметка за банков превод -ACCOUNTING_ACCOUNT_SUSPENSE=Счетоводна сметка за изчакване -DONATION_ACCOUNTINGACCOUNT=Счетоводна сметка за регистриране на дарения -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Счетоводен акаунт за регистриране на членски внос +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти (използва се, ако не е определена в продуктовата карта) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти в ЕИО (използва се, ако не е дефинирана в картата на продукта) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти и внесени отвън ЕИО (използва се, ако не е дефинирана в картата на продукта) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти (използва се, ако не е дефинирана в продуктовата карта) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти в ЕИО (използва се, ако не е определена в продуктовата карта) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за продадени и експортирани продукти извън ЕИО (използва се, ако не е определена в продуктовата карта) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги в ЕИО (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги и внесени отвън ЕИО (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за продадени услуги (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за продадени услуги в ЕИО (използва се, ако не е определена в картата на услугата) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за продадени и експортирани услуги извън ЕИО (използва се, ако не е определена в картата на услугата) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Вид документ Docdate=Дата @@ -211,7 +217,7 @@ Codejournal=Журнал JournalLabel=Име на журнал NumPiece=Пореден номер TransactionNumShort=Транзакция № -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=Тук може да определите някои групи счетоводни сметки. Те ще бъдат използвани за персонализирани счетоводни отчети. @@ -265,13 +271,13 @@ Reconcilable=Съвместим TotalVente=Общ оборот преди ДДС TotalMarge=Общ марж на продажби -DescVentilCustomer=Преглед на списъка с редове на фактури за продажба, свързани (или не) със счетоводна сметка на продукт -DescVentilMore=В повечето случаи, ако използвате предварително дефинирани продукти или услуги и зададете номер на сметка в картата на продукта / услугата, то системата ще може да извърши всички свързвания между вашите редове на фактури и счетоводната сметка във вашия сметкоплан, просто с едно щракване с бутона "%s". Ако сметката не е зададена в картата на продукта / услугата или ако все още имате някои редове, които не са свързани към сметка, то ще трябва да направите ръчно свързване от менюто "%s". -DescVentilDoneCustomer=Преглед на списъка с редове на фактури за продажба и тяхната счетоводна сметка за продукти -DescVentilTodoCustomer=Свързване на редове на фактури, които все още не са свързани със счетоводна сметка за продукт -ChangeAccount=Променете счетоводната сметка на продукта / услугата за избрани редове със следната счетоводна сметка: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Преглед на списъка с редове във фактури за доставка, обвързани или все още не обвързани със счетоводна сметка на продукт (виждат се само записи, които все още не са прехвърлени към счетоводството) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Преглед на списъка с редове на фактури за доставка и тяхната счетоводна сметка DescVentilTodoExpenseReport=Свържете редове на разходни отчети, които все още не са свързани със счетоводна сметка за такса DescVentilExpenseReport=Преглед на списъка с редове на разходни отчети, свързани (или не) със счетоводна сметка за такса @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Ако настроите счетоводна см DescVentilDoneExpenseReport=Преглед на списъка с редове на разходни отчети и тяхната счетоводна сметка за такса Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Всякакви промени или изтриване на написаното ще бъдат забранени. Всички записи за изпълнение трябва да бъдат валидирани, в противен случай приключването няма да е възможно. ValidateHistory=Автоматично свързване AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Грешка, не може да изтриете тази счетоводна сметка, защото се използва. +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Балансиране FicheVentilation=Свързваща карта GeneralLedgerIsWritten=Транзакциите са записани в главната счетоводна книга GeneralLedgerSomeRecordWasNotRecorded=Някои от транзакциите не бяха осчетоводени. Ако няма друго съобщение за грешка, то това вероятно е, защото те вече са били осчетоводени. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Списък на продукти, които не са свързани с нито една счетоводна сметка +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Промяна на свързване Accounted=Осчетоводено в книгата NotYetAccounted=Not yet transferred to accounting @@ -322,6 +328,7 @@ AccountingJournalType4=Банка AccountingJournalType5=Разходни отчети AccountingJournalType8=Инвентар AccountingJournalType9=Има нови +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Този журнал вече се използва AccountingAccountForSalesTaxAreDefinedInto=Бележка: Счетоводната сметка за данък върху продажбите е дефинирана в меню %s - %s NumberOfAccountancyEntries=Брой записи @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Брой движения ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Експортиране на журнал в чернова @@ -398,7 +407,11 @@ Calculated=Изчислено Formula=Формула ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Потвърждение за масово изтриване ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Счетоводни записи @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Дата на експортиране WarningReportNotReliable=Внимание, тази справка не се основава на главната счетоводна книга, така че не съдържа транзакция, ръчно променена в книгата. Ако осчетоводяването ви е актуално, то прегледът на счетоводството е по-точен. ExpenseReportJournal=Журнал за разходни отчети -InventoryJournal=Журнал за инвентар NAccounts=%s accounts diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 48c6ffc8e5d..dc3aa7d8fd7 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Съпоставяне от страна на клиент WarningModuleNotActive=Модул %s е необходимо да бъде включен WarningOnlyPermissionOfActivatedModules=Само разрешения, свързани с активните модули са показани тук. Може да активирате други модули в страницата Начало -> Настройки -> Модули / Приложения DolibarrSetup=Dolibarr инсталиране / обновяване -InternalUser=Вътрешен потребител -ExternalUser=Външен потребител InternalUsers=Вътрешни потребители ExternalUsers=Външни потребители UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Следваща стойност (замествани MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Забележка: Не е зададено ограничение във вашата PHP конфигурация MaxSizeForUploadedFiles=Максимален размер за качени файлове (0 за забрана на качването) -UseCaptchaCode=Използване на графичен код (CAPTCHA) на страницата за вход +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Пълен път към антивирусна команда AntiVirusCommandExample=Пример за ClamAv Daemon (изисква clamav-daemon): /usr/bin/clamdscan
    Пример за ClamWin (много забавящ): C:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Още параметри в командния ред @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS хост (стойност по подраз MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS порт (не е дефиниран в PHP за Unix-подобни системи) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS хост (не е дефиниран в PHP за Unix-подобни системи) MAIN_MAIL_EMAIL_FROM=Имейл адрес за изпращане на автоматични имейли (стойност по подразбиране в php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Имейл адрес за получаване на грешки (за полето 'Грешки-към' в изпратените имейли) MAIN_MAIL_AUTOCOPY_TO= Имейл адрес за получаване на скрито копие (Bcc) на всички изпратени имейли MAIN_DISABLE_ALL_MAILS=Деактивиране на изпращането на всички имейли (за тестови цели или демонстрации) @@ -439,8 +438,10 @@ Unique=Уникален Boolean=Булева (едно квадратче за отметка) ExtrafieldPhone = Телефон ExtrafieldPrice = Цена +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Имейл ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Изберете списък ExtrafieldSelectList = Изберете от таблицата ExtrafieldSeparator=Разделител (не е поле) @@ -477,7 +478,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Масова баркод инициализация за контрагенти BarcodeInitForProductsOrServices=Масово въвеждане на баркод или зануляване за продукти или услуги CurrentlyNWithoutBarCode=В момента имате %s записа на %s %s без дефиниран баркод. -InitEmptyBarCode=Първоначална стойност за следващите %s празни записа +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Изтриване на всички текущи стойности на баркода ConfirmEraseAllCurrentBarCode=Сигурни ли сте че, искате да изтриете всички текущи стойности на баркода? AllBarcodeReset=Всички стойности на баркода са премахнати @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Ако вашият SMTP доставчик трябва да ограничи имейл клиента до някои IP адреси (много рядко), това е IP адресът на потребителския агент за поща (MUA) за вашето ERP CRM приложение: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Кликнете, за да се покаже описание DependsOn=Този модул се нуждае от модул(и) RequiredBy=Този модул изисква модул(и) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Пример:
    За да създадете PageUrlForDefaultValuesList=
    Пример:
    За страницата, която изброява контрагентите, той е %s.
    За URL на външни модули, инсталирани в /custom/ директорията използвайте следния път mymodule/mypagelist.phpи не включвайте custom/mymodule/mypagelist.php.
    Ако искате само стойността по подразбиране, в случай че URL има някакъв параметър, може да използвате %s AlsoDefaultValuesAreEffectiveForActionCreate=Също така имайте предвид, че презаписването на стойностите по подразбиране за създаване на формуляри работи само за страници, които са били правилно разработени (с параметър action=create или presend...) EnableDefaultValues=Персонализиране на стойности по подразбиране -EnableOverwriteTranslation=Използване на презаписан превод +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Намерен е превод за ключа с този код. За да промените тази стойност, трябва да я редактирате като отидете в Начало - Настройки - Превод WarningSettingSortOrder=Внимание, задаването на ред за сортиране по подразбиране може да доведе до техническа грешка при влизане в страницата на списъка, ако полето е неизвестно. Ако възникне такава грешка, се върнете на тази страница, за да премахнете редът за сортиране по подразбиране и да възстановите първоначалното състояние. Field=Поле @@ -645,9 +647,9 @@ Module2400Name=Събития / Календар Module2400Desc=Проследяване на събития. Регистриране на автоматични събития с цел проследяване или записване на ръчни събития и срещи. Това е основният модул за добро управление на взаимоотношенията с клиенти и доставчици. Module2500Name=Документи / Съдържание Module2500Desc=Система за управление на документи / Управление на електронно съдържание. Автоматична организация на вашите генерирани или съхранени документи. Споделяне на документи. -Module2600Name=API / Web услуги (SOAP сървър) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Активиране на Dolibarr SOAP сървър, предоставящ API услуги -Module2610Name=API / Web услуги (REST сървър) +Module2610Name=API / Web services (REST server) Module2610Desc=Активиране на Dolibarr REST сървър, предоставящ API услуги Module2660Name=Извикване на WebServices (SOAP клиент) Module2660Desc=Активиране на Dollibarr клиент за уеб услуги (Може да се използва за препращане на данни / заявки към външни сървъри. Понастоящем се поддържат само поръчки за покупка.) @@ -698,6 +700,7 @@ Module62000Name=Условия на доставка Module62000Desc=Добавяне на функции за управление на Инкотермс (условия на доставка) Module63000Name=Ресурси Module63000Desc=Управление на ресурси (принтери, коли, стаи, ...) с цел разпределяне по събития +Module94160Name=Стокови разписки Permission11=Преглед на фактури за продажба Permission12=Създаване / променяне на фактури на продажба Permission13=Invalidate customer invoices @@ -714,6 +717,7 @@ Permission27=Изтриване на търговски предложения Permission28=Експортиране на търговски предложения Permission31=Преглед на продукти Permission32=Създаване / променяне на продукти +Permission33=Read prices products Permission34=Изтриване на продукти Permission36=Преглед / управление на скрити продукти Permission38=Експортиране на продукти @@ -739,6 +743,7 @@ Permission79=Създаване / променяне на абонаменти Permission81=Преглед на поръчки за продажба Permission82=Създаване / променяне на поръчки за продажба Permission84=Валидиране на поръчки за продажба +Permission85=Generate the documents sales orders Permission86=Изпращане на поръчки за продажба Permission87=Приключване на поръчки за продажба Permission88=Анулиране на поръчки за продажба @@ -840,9 +845,9 @@ Permission286=Експортиране на контакти Permission291=Преглед на тарифи Permission292=Задаване на права за тарифи Permission293=Променяне на клиентски тарифи -Permission300=Преглед на баркодове -Permission301=Създаване / променяне на баркодове -Permission302=Изтриване на баркодове +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Изтриване на баркодове Permission311=Преглед на услуги Permission312=Възлагане на услуга / абонамент към договор Permission331=Преглед на отметки @@ -874,6 +879,7 @@ Permission525=Достъп до кредитен калкулатор Permission527=Експортиране на кредити Permission531=Преглед на услуги Permission532=Създаване / променяне на услуги +Permission533=Read prices services Permission534=Изтриване на услуги Permission536=Преглед / управление на скрити услуги Permission538=Експортиране на услуги @@ -968,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Преглед на съдържание в уебсайт Permission10002=Създаване / променяне на съдържание в уебсайт (html и javascript) Permission10003=Създаване / променяне на съдържание в уебсайт (динамичен php код). Опасно, трябва да бъде използвано само за ограничен кръг разработчици. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Настройката е запазена SetupNotSaved=Настройката не е запазена +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Назад към списъка с модули BackToDictionaryList=Назад към списъка с речници TypeOfRevenueStamp=Вид на данъчния печат (бандерол) @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Стойност на конфигурационна конс ConstantIsOn=Option %s is on NbOfDays=Брой дни AtEndOfMonth=В края на месеца -CurrentNext=Текущ/Следващ +CurrentNext=A given day in month Offset=Офсет AlwaysActive=Винаги активна Upgrade=Актуализация @@ -1235,11 +1246,13 @@ BrowserName=Име на браузър BrowserOS=ОС на браузър ListOfSecurityEvents=Списък на събития относно сигурността в Dolibarr SecurityEventsPurged=Събитията относно сигурността са премахнати +TrackableSecurityEvents=Trackable security events LogEventDesc=Активиране на регистрирането за конкретни събития за сигурност. Администриране на записаните събития, чрез меню %s - %s. Внимание, тази функция може да генерира голямо количество данни в базата данни. AreaForAdminOnly=Параметрите за настройка могат да се задават само от Администратори. SystemInfoDesc=Системната информация е различна техническа информация, която получавате в режим само за четене и е видима само за администратори. SystemAreaForAdminOnly=Тази секция е достъпна само за администратори. Потребителските права в Dolibarr не могат да променят това ограничение. CompanyFundationDesc=Редактирайте информацията за вашата фирма / организация. Кликнете върху бутона '%s' в долната част на страницата, когато сте готови. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Ако имате външен счетоводител, тук може да редактирате неговата информация. AccountantFileNumber=Счетоводен код DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълн YourPHPDoesNotHaveSSLSupport=SSL функциите не са налични във вашия PHP DownloadMoreSkins=Изтегляне на повече теми SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1391,7 @@ GetBarCode=Получаване на баркод NumberingModules=Модели за номериране DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Да не се предлага генерирана парола. Паролата трябва да бъде въведена ръчно. PasswordGenerationPerso=Връщане на парола според вашата лично дефинирана конфигурация SetupPerso=Според вашата конфигурация @@ -1430,6 +1445,10 @@ SuppliersPayment=Плащания към доставчици SupplierPaymentSetup=Настройка на плащания към доставчици InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Настройка на модула за търговски предложения ProposalsNumberingModules=Модели за номериране на търговски предложения @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Воден знак върху чернови до ##### Members ##### MembersSetup=Настройка на модула за членове MemberMainOptions=Основни параметри +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Управление на входни данни за всеки член AdherentMailRequired=Необходим е имейл при създаване на нов член MemberSendInformationByMailByDefault=По подразбиране е активирано изпращането на потвърждение, чрез имейл до членове (валидиране или нов абонамент) MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Посетителят може да избира от наличните начини на плащане +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Активиране на автоматично напомняне, чрез имейл за изтекли абонаменти. Забележка: Модул %s трябва да е активиран и правилно настроен за изпращане на напомняния. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Активиране на разширен редактор з FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG създаване / промяна на масови имейли (Инструменти -> Масови имейли) FCKeditorForUserSignature=WYSIWIG създаване / промяна на подпис на потребители FCKeditorForMail=WYSIWIG създаване / променяне на цялата поща (с изключение на Настройка -> Имейли) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Манипулатор на меню, в който да се DetailMenuModule=Име на модула, ако входните данни на менюто идват от модул DetailType=Тип меню (горно или ляво) DetailTitre=Име на меню или име на код за превод -DetailUrl=URL адрес, където менюто ви изпратя (Absolute на URL линк или външна връзка с http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Условие за показване или не на вписване DetailRight=Условие за показване на неоторизирани (сиви) менюта DetailLangs=Име на .lang файл с име на код на превод @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Намаляването на нал CashDeskYouDidNotDisableStockDecease=Не сте деактивирали намаляването на запасите при продажбата от точка за продажби, поради тази причина се изисква наличие на склад. CashDeskForceDecreaseStockLabel=Намаляването на наличности за партидни продукти е принудително. CashDeskForceDecreaseStockDesc=Намаляване първо от най-ранната дата на годност и дата на продажба -CashDeskReaderKeyCodeForEnter=Ключов код за 'Enter', дефиниран в четеца на баркодове (Пример: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Настройка на модула на отметки BookmarkDesc=Този модул позволява да се управляват отметки. Може също да добавяте преки пътища към всички страници на Dolibarr или външни уеб сайтове в лявото меню. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Модели за номериране на фа IfSetToYesDontForgetPermission=Ако е настроена различна от нула стойност, не забравяйте да предоставите права на групите или потребителите за второ одобрение ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Настройка на модула GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Път към файл, съдържащ Maxmind ip to country translation.
    Примери:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Обърнете внимание, че вашият IP файл с данни за държавата трябва да е в директория, която може да се чете от PHP (проверете настройките на вашата PHP open_basedir и правата на файловата система). YouCanDownloadFreeDatFileTo=Може да изтеглите безплатна демо версия на Maxmind GeoIP файла за държавата от %s. YouCanDownloadAdvancedDatFileTo=Може също така да изтеглите по-пълна версия, с актуализации на Maxmind GeoIP файла за държавата от %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Асистент за създаване на dump файл н BackupZipWizard=Асистент за създаване на архив на директорията "documents" SomethingMakeInstallFromWebNotPossible=Инсталирането на външен модул не е възможно от уеб интерфейса, поради следната причина: SomethingMakeInstallFromWebNotPossible2=Поради тази причина описаният тук процес за актуализация е ръчен процес, който може да се изпълнява само от потребител със съответните права. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Инсталирането на външен модул в приложението е деактивирано от администратора на системата. Трябва да го помолите да премахне файла %s, за да разреши тази функция. ConfFileMustContainCustom=Инсталирането или създаването на външен модул в приложението е необходимо да съхрани файловете на модула в директорията %s. За да се обработва тази директория от Dolibarr, трябва да настроите вашият conf/conf.php файл да съдържа двете директивни линии:
    $dolibarr_main_url_root_alt = '/custom';
    $dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Маркиране на редове в таблица, когато мишката преминава отгоре @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Натиснете CTRL + F5 на клавиатура NotSupportedByAllThemes=Ще работи с основните теми, но може да не се поддържат външни теми. BackgroundColor=Цвят на фона TopMenuBackgroundColor=Цвят на фона в горното меню -TopMenuDisableImages=Скриване на изображения в горното меню +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Цвят на фона в лявото меню BackgroundTableTitleColor=Цвят на фона в реда със заглавието на таблица BackgroundTableTitleTextColor=Цвят на текста в заглавието на таблиците @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Поръчки за покупка MailToSendSupplierInvoice=Фактури за доставка MailToSendContract=Договори MailToSendReception=Стокови разписки +MailToExpenseReport=Разходни отчети MailToThirdparty=Контрагенти MailToMember=Членове MailToUser=Потребители @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Дясна граница в PDF MAIN_PDF_MARGIN_TOP=Горна граница в PDF MAIN_PDF_MARGIN_BOTTOM=Долна граница в PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Премахване на специални символи COMPANY_AQUARIUM_CLEAN_REGEX=Regex филтър за изчистване на стойността (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex филтър за чиста стойност (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Дублирането не е позволено +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Длъжностно лице по защита на данните (DPO, защита на лични данни или GDPR контакт) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Подсказка @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Забележка: Опцията за използване на SwapSenderAndRecipientOnPDF=Размяна на адресите на подателя и получателя в PDF документи FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Имейл колекционер +EmailCollectors=Email collectors EmailCollectorDescription=Добавете планирана задача в страницата за настройка, за да сканирате редовно пощенските кутии (използвайки протокола IMAP) и да записвате получените в приложението имейли на правилното място и / или да създавате автоматично някои записи (например нови възможности). NewEmailCollector=Нов колекционер на имейли EMailHost=Адрес на IMAP сървър +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Директория / Източник в пощенската кутия MailboxTargetDirectory=Директория / Цел в пощенската кутия EmailcollectorOperations=Операции за извършване от колекционера EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Максимален брой събрани имейли при колекциониране +TestCollectNow=Test collect CollectNow=Колекциониране ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Последен резултат EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Потвърждение за колекциониране на имейли EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Няма нови имейли (отговарящи на заложените филтри) за обработка NothingProcessed=Нищо не е направено -XEmailsDoneYActionsDone=Открити са %s имейл адреса, %s имейл адреса са успешно обработени (за %s записа / действия) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Код на меню (главно меню) ECMAutoTree=Показване на автоматично ECM дърво -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Работно време OpeningHoursDesc=Въведете тук редовното работно време на вашата фирма. ResourceSetup=Конфигурация на модул Ресурси @@ -2167,6 +2200,10 @@ EmailTemplate=Шаблон за имейл EMailsWillHaveMessageID=Имейлите ще имат етикет „Референции“, отговарящ на този синтаксис PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Ако искате да имате някои текстове във вашия PDF файл, дублирани на 2 различни езика в един и същ генериран PDF файл, трябва да посочите тук този втори език, така че генерираният PDF файл да съдържа 2 различни езика на една и съща страница, избраният при генериране на PDF и този (само няколко PDF шаблона поддържат това). Запазете празно за един език в PDF файла. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Въведете тук кода за FontAwesome икона. Ако не знаете какво е FontAwesome, може да използвате стандартната стойност fa-address book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Препоръчителна NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Настройка на инвентаризация ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Настройки +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/bg_BG/categories.lang b/htdocs/langs/bg_BG/categories.lang index 54b1c2e7f70..0346e451330 100644 --- a/htdocs/langs/bg_BG/categories.lang +++ b/htdocs/langs/bg_BG/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Този член не е свързан с нито еди ContactHasNoCategory=Този контакт не е свързан с нито един таг / категория ProjectHasNoCategory=Този проект не е свързан с нито един таг / категория ClassifyInCategory=Добавяне към таг / категория +RemoveCategory=Remove category NotCategorized=Без таг / категория CategoryExistsAtSameLevel=Тази категория вече съществува ContentsVisibleByAllShort=Съдържанието е видимо от всички @@ -67,6 +68,7 @@ StockCategoriesShort=Тагове / Категории ThisCategoryHasNoItems=Тази категория не съдържа никакви елементи CategId=Идентификатор на таг / категория ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=Изтриване от таг / категория ExtraFieldsCategories=Допълнителни атрибути CategoriesSetup=Настройка на тагове / категории CategorieRecursiv=Автоматично свързване с главния таг / категория -CategorieRecursivHelp=Ако опцията е включена, когато добавите продукт в подкатегория, продуктът ще бъде добавен също и в главната категория. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Добавяне на следния продукт / услуга AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Показване на таг / категория ByDefaultInList=По подразбиране в списъка ChooseCategory=Избиране на категория StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/bg_BG/commercial.lang b/htdocs/langs/bg_BG/commercial.lang index fff70536142..4846ef349c3 100644 --- a/htdocs/langs/bg_BG/commercial.lang +++ b/htdocs/langs/bg_BG/commercial.lang @@ -37,7 +37,7 @@ ToDoActions=Незавършени събития SendPropalRef=Изпращане на търговско предложение %s SendOrderRef=Изпращане на поръчка %s StatusNotApplicable=Не се прилага -StatusActionToDo=Да се направи +StatusActionToDo=За извършване StatusActionDone=Завършено StatusActionInProcess=В процес TasksHistoryForThisContact=Събития за този контакт @@ -64,17 +64,26 @@ ActionAC_SHIP=Изпращане на пратка по пощата ActionAC_SUP_ORD=Изпращане на поръчка за покупка по пощата ActionAC_SUP_INV=Изпращане на фактура за доставка по пощата ActionAC_OTH=Друго -ActionAC_OTH_AUTO=Автоматично добавени +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Ръчно добавени ActionAC_AUTO=Автоматично добавени -ActionAC_OTH_AUTOShort=Автоматично +ActionAC_OTH_AUTOShort=Други +ActionAC_EVENTORGANIZATION=Event organization events Stats=Статистика от продажби StatusProsp=Статус на потенциален клиент DraftPropals=Чернови търговски предложения NoLimit=Няма лимит ToOfferALinkForOnlineSignature=Връзка за онлайн подпис -WelcomeOnOnlineSignaturePage=Добре дошли на страницата за приемане на търговски предложения от %s -ThisScreenAllowsYouToSignDocFrom=Този екран позволява да приемете и подпишете или да отхвърлите оферта / търговско предложение -ThisIsInformationOnDocumentToSign=Това е информация за документа, който да приемете или отхвърлите. +WelcomeOnOnlineSignaturePageProposal=Добре дошли на страницата за приемане на търговски предложения от %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Този екран позволява да приемете и подпишете или да отхвърлите оферта / търговско предложение +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Това е информация за документа, който да приемете или отхвърлите. +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Подписване на оферта / търговско предложение %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Функцията за онлайн подписване е деактивирана или документът е генериран преди активирането на функцията diff --git a/htdocs/langs/bg_BG/companies.lang b/htdocs/langs/bg_BG/companies.lang index 3519f6a4fb5..949d19feac9 100644 --- a/htdocs/langs/bg_BG/companies.lang +++ b/htdocs/langs/bg_BG/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Произход на контрагента NatureOfContact=Произход на контакта Address=Адрес State=Област +StateId=State ID StateCode=Код на област StateShort=Област Region=Регион Region-State=Регион - Област Country=Държава CountryCode=Код на държава -CountryId=Идентификатор на държава +CountryId=Country ID Phone=Телефон PhoneShort=Тел. Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Други ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) @@ -443,7 +444,7 @@ AddAddress=Добавяне на адрес SupplierCategory=Категория на доставчика JuridicalStatus200=Независим DeleteFile=Изтриване на файл -ConfirmDeleteFile=Сигурен ли сте, че искате да изтриете този файл? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Назначен търговски представител Organization=Организация FiscalYearInformation=Фискална година diff --git a/htdocs/langs/bg_BG/compta.lang b/htdocs/langs/bg_BG/compta.lang index e781fa76474..5e537394d3f 100644 --- a/htdocs/langs/bg_BG/compta.lang +++ b/htdocs/langs/bg_BG/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Баланс (преди) Balance=Баланс Debit=Дебит Credit=Кредит +AccountingDebit=Дебит +AccountingCredit=Кредит Piece=Счетоводен документ AmountHTVATRealReceived=Получен (нето) AmountHTVATRealPaid=Платен (нето) @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Изтриване на плащане за социален или фискален данък DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Социални / фискални данъци и плащания CalcModeVATDebt=Режим %sДДС върху осчетоводени задължения%s CalcModeVATEngagement=Режим %sДДС върху приходи - разходи%s @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Отчетът за обор TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Отчетът за оборот, натрупан от данък върху продажбите, не е наличен. Този отчет е наличен само за фактуриран оборот. CalculationMode=Режим на изчисление AccountancyJournal=Счетоводен код на журнал -ACCOUNTING_VAT_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за ДДС при продажби (използва се, ако не е определена при настройка на речника за ДДС) -ACCOUNTING_VAT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за ДДС при покупки (използва се, ако не е определена при настройка на речника за ДДС) -ACCOUNTING_VAT_PAY_ACCOUNT=Счетоводна сметка по подразбиране за плащане на ДДС -ACCOUNTING_ACCOUNT_CUSTOMER=Счетоводна сметка, използвана за контрагенти, които са клиенти +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Специализираната счетоводна сметка, определена в картата на контрагента, ще се използва само за счетоводно отчитане на подсметка. Този ще бъде използван за главната книга и като стойност по подразбиране на подсметката за счетоводното отчитане, ако не е дефинирана специализирана счетоводна сметка за клиента. -ACCOUNTING_ACCOUNT_SUPPLIER=Счетоводна сметка, използвана за контрагенти, които са доставчици +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Специализираната счетоводна сметка, определена в картата на контрагента, ще се използва само за счетоводно отчитане на подсметка. Този ще бъде използван за главната книга и като стойност по подразбиране на подсметката за счетоводното отчитане, ако не е дефинирана специализирана счетоводна сметка за доставчика. ConfirmCloneTax=Потвърдете клонирането на социален/фискален данък ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/bg_BG/contracts.lang b/htdocs/langs/bg_BG/contracts.lang index d8a88714009..d7d2e316617 100644 --- a/htdocs/langs/bg_BG/contracts.lang +++ b/htdocs/langs/bg_BG/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Договори / Абонаменти ContractsAndLine=Договори и договорни линии Contract=Договор ContractLine=Договорна линия +ContractLines=Contract lines Closing=Прекратяване NoContracts=Няма договори MenuServices=Услуги @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Сигурни ли сте, че искате да и MoveToAnotherContract=Преместване на услуга в друг договор. ConfirmMoveToAnotherContract=Избрах нов целеви договор и потвърждавам, че искам да преместя тази услуга в този договор. ConfirmMoveToAnotherContractQuestion=Изберете в кой съществуващ договор (на същия контрагент) искате да преместите тази услуга? -PaymentRenewContractId=Подновяване на договорна линия (№ %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Дата на изтичане NoExpiredServices=Няма изтекли активни услуги ListOfServicesToExpireWithDuration=Списък на услуги изтичащи в следващите %s дни @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Контакт на клиента (п HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/bg_BG/cron.lang b/htdocs/langs/bg_BG/cron.lang index 797d98b0ff3..0a21382679a 100644 --- a/htdocs/langs/bg_BG/cron.lang +++ b/htdocs/langs/bg_BG/cron.lang @@ -26,7 +26,7 @@ CronCommand=Команда CronList=Планирани задачи CronDelete=Изтриване на планирани задачи CronConfirmDelete=Сигурни ли сте, че искате да изтриете тези планирани задачи? -CronExecute=Стартиране на планирана задача +CronExecute=Launch now CronConfirmExecute=Сигурни ли сте, че искате да изпълните тези планирани задачи сега? CronInfo=Модулът за планирани задачи позволява да планирате задача и да я изпълните автоматично. Задачата може да се стартира и ръчно. CronTask=Задача @@ -58,7 +58,7 @@ CronNote=Коментар CronFieldMandatory=Полета %s са задължителни CronErrEndDateStartDt=Крайната дата не може да бъде преди началната дата StatusAtInstall=Състояние при инсталиране на модула -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Деактивиране CronTaskInactive=This job is disabled (not scheduled) CronId=Идентификатор @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Отидете в меню 'Нач JobDisabled=Задачата е деактивирана MakeLocalDatabaseDumpShort=Архивиране на локална база данни MakeLocalDatabaseDump=Създаване на локална база данни. Параметрите са: компресия ('gz' or 'bz' or 'none'), вид архивиране ('mysql', 'pgsql', 'auto'), 1, 'auto' или име на файла за съхранение, брой резервни файлове, които да се запазят +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Внимание, за целите на изпълнението, каквато и да е следващата дата на изпълнение на активирани задачи, вашите задачи могат да бъдат забавени до максимум %s часа, преди да бъдат стартирани. DATAPOLICYJob=Почистване на данни и анонимност JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/bg_BG/datapolicy.lang b/htdocs/langs/bg_BG/datapolicy.lang new file mode 100644 index 00000000000..1cb2ab6c200 --- /dev/null +++ b/htdocs/langs/bg_BG/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Клиент +DATAPOLICY_TIERS_PROSPECT = Потенциален клиент +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Доставчик +DATAPOLICY_CONTACT_CLIENT = Клиент +DATAPOLICY_CONTACT_PROSPECT = Потенциален клиент +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Доставчик +DATAPOLICY_ADHERENT = Член +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bg_BG/dict.lang b/htdocs/langs/bg_BG/dict.lang index 2c3a9ecbe8e..ebd661a5685 100644 --- a/htdocs/langs/bg_BG/dict.lang +++ b/htdocs/langs/bg_BG/dict.lang @@ -21,7 +21,7 @@ CountryNL=Холандия CountryHU=Унгария CountryRU=Русия CountrySE=Швеция -CountryCI=Кот д'Ивоар +CountryCI=Ivory Coast CountrySN=Сенегал CountryAR=Аржентина CountryCM=Камерун @@ -250,7 +250,9 @@ CountryMF=Свети Мартин ##### Civilities ##### CivilityMME=г-жа +CivilityMMEShort=г-жа CivilityMR=г-н +CivilityMRShort=г-н CivilityMLE=г-ца CivilityMTRE=м-р CivilityDR=д-р diff --git a/htdocs/langs/bg_BG/ecm.lang b/htdocs/langs/bg_BG/ecm.lang index 3744f31660a..a8cb3ebaed8 100644 --- a/htdocs/langs/bg_BG/ecm.lang +++ b/htdocs/langs/bg_BG/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ръчно създадена директория ECMSectionAuto=Автоматично създадена директория ECMSectionsManual=Ръчно създадено дърво ECMSectionsAuto=Автоматично създадено дърво +ECMSectionsMedias=Medias tree ECMSections=Директории ECMRoot=Основна директория ECMNewSection=Нова директория @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Брой файлове в поддиректориите ECMCreationUser=Създател ECMArea=Документи ECMAreaDesc=Секцията DMS / ECM (Система за управление на документи / Електронно управление на съдържание) позволява да съхранявате, споделяте и бързо да откривате всички видове документи в системата. -ECMAreaDesc2=* Автоматично създадените директории се попълват автоматично при добавяне на документи в картата на даден елемент.
    * Ръчно създадените директории могат да бъдат използвани, за да съхранявате документи, които не са свързани с определен елемент. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Директорията %s е изтрита. ECMSectionWasCreated=Директорията %s е създадена. ECMSearchByKeywords=Търсене по ключови думи diff --git a/htdocs/langs/bg_BG/errors.lang b/htdocs/langs/bg_BG/errors.lang index ceb6c75ae21..9be2a3b5d80 100644 --- a/htdocs/langs/bg_BG/errors.lang +++ b/htdocs/langs/bg_BG/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) ErrorBadUrl=Url %s is incorrect ErrorBadValueForParamNotAString=Неправилна стойност за вашия параметър. Обикновено се добавя, когато преводът липсва. ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Потребител %s вече съществува. ErrorGroupAlreadyExists=Група %s вече съществува. ErrorEmailAlreadyExists=Email %s already exists. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name %s already exist ErrorPartialFile=Файла не е получил изцяло от сървъра. ErrorNoTmpDir=Временно за директно %s не съществува. ErrorUploadBlockedByAddon=Качи блокиран от PHP / Apache плъгин. -ErrorFileSizeTooLarge=Размерът на файла е твърде голям. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Полето %s е твърде дълго ErrorSizeTooLongForIntType=Размер твърде дълго за Вътрешна (%s цифри максимум) ErrorSizeTooLongForVarcharType=Размер твърде дълго за низ тип (%s символа максимум) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript не трябва да бъдат хор ErrorPasswordsMustMatch=Двете машинописни пароли трябва да съвпадат помежду си ErrorContactEMail=Възникна техническа грешка. Моля, свържете се с администратор посредством следния имейл %s като предоставите кода на грешката %s в съобщението си или да добавите снимка на екрана от тази страница. ErrorWrongValueForField=Поле %s: '%s' не съответства на regex правило %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Поле %s: '%s' не е стойност, открита в поле %s на %s ErrorFieldRefNotIn=Поле %s: '%s' не е %s съществуваща референция ErrorsOnXLines=Намерени са %s грешки @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Вашата стойност на PHP параметър upload_max_filesize (%s) е по-голяма от стойността на PHP параметър post_max_size (%s). Това не е последователна настройка. WarningPasswordSetWithNoAccount=За този член бе зададена парола. Въпреки това, не е създаден потребителски акаунт. Така че тази парола е съхранена, но не може да се използва за влизане в Dolibarr. Може да се използва от външен модул/интерфейс, но ако не е необходимо да дефинирате потребителско име или парола за член може да деактивирате опцията "Управление на вход за всеки член" от настройката на модула Членове. Ако трябва да управлявате вход, но не се нуждаете от парола, можете да запазите това поле празно, за да избегнете това предупреждение. Забележка: Имейлът може да се използва и като вход, ако членът е свързан с потребител. -WarningMandatorySetupNotComplete=Кликнете тук, за да настроите задължителните параметри +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Кликнете тук, за да активирате вашите модули и приложения WarningSafeModeOnCheckExecDir=Внимание, PHP опция защитният режим е включен, така че командата трябва да бъдат съхранени в директория, декларирани с параметър PHP safe_mode_exec_dir. WarningBookmarkAlreadyExists=Отметка с настоящия дял, или на тази цел (URL) вече съществува. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/bg_BG/externalsite.lang b/htdocs/langs/bg_BG/externalsite.lang deleted file mode 100644 index 5b2ff52c0f8..00000000000 --- a/htdocs/langs/bg_BG/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Настройка на линк към външен сайт -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Модула Външен сайт не е конфигуриран правилно. -ExampleMyMenuEntry=Мой елемент на меню diff --git a/htdocs/langs/bg_BG/ftp.lang b/htdocs/langs/bg_BG/ftp.lang deleted file mode 100644 index d74dec3de67..00000000000 --- a/htdocs/langs/bg_BG/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Настройка на модул FTP клиент -NewFTPClient=Настройка на нова FTP връзка -FTPArea=Секция с FTP -FTPAreaDesc=Този екран ви показва съдържанието на FTP сървъра -SetupOfFTPClientModuleNotComplete=Настройката на клиентския FTP модул изглежда непълна -FTPFeatureNotSupportedByYourPHP=Вашият PHP не поддържа FTP функции -FailedToConnectToFTPServer=Неуспешно свързване с FTP сървър (сървър %s, порт %s) -FailedToConnectToFTPServerWithCredentials=Неуспешно влизане в FTP сървър с дефинираните потребителско име / парола -FTPFailedToRemoveFile=Неуспешно премахване на файл %s. -FTPFailedToRemoveDir=Неуспешно премахване на директория %s: проверете правата и дали директорията е празна. -FTPPassiveMode=Пасивен режим -ChooseAFTPEntryIntoMenu=Изберете FTP сайт от менюто... -FailedToGetFile=Неуспешно получаване на файлове %s diff --git a/htdocs/langs/bg_BG/holiday.lang b/htdocs/langs/bg_BG/holiday.lang index 1262acd3b8a..038c21f5310 100644 --- a/htdocs/langs/bg_BG/holiday.lang +++ b/htdocs/langs/bg_BG/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=ЧР -Holidays=Отпуски +Holidays=Leaves +Holiday=Leave CPTitreMenu=Отпуски MenuReportMonth=Месечно извлечение MenuAddCP=Нова молба за отпуск +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Необходимо е да активирате модула 'Отпуски', за да видите тази страница. AddCP=Кандидатстване за отпуск DateDebCP=Начална дата @@ -56,6 +58,7 @@ ConfirmDeleteCP=Сигурни ли сте, че искате да изтрие ErrorCantDeleteCP=Грешка: нямате необходимите права, за да изтриете тази молба за отпуск. CantCreateCP=Нямате право да създавате молби за отпуск. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Необходимо е да изберете начална дата. NoDateFin=Необходимо е да изберете крайна дата. ErrorDureeCP=Вашата молба за отпуск не съдържа работен ден. @@ -79,6 +82,8 @@ MotifCP=Причина UserCP=Потребител ErrorAddEventToUserCP=Възникна грешка при добавяне на извънреден отпуск. AddEventToUserOkCP=Добавянето на извънредния отпуск е завършено. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=История на промените LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Предишен баланс NewSoldeCP=Нов баланс alreadyCPexist=Вече е създадена молба за отпуск в този период. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Групи +users=Потребители +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Молби за отпуск: %s последно променени @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/bg_BG/hrm.lang b/htdocs/langs/bg_BG/hrm.lang index 48d26235d01..8848dbbfafd 100644 --- a/htdocs/langs/bg_BG/hrm.lang +++ b/htdocs/langs/bg_BG/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Отваряне на обект CloseEtablishment=Затваряне на обект # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=ЧР - Списък с отдели +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=ЧР - Длъжности # Module Employees=Служители @@ -20,13 +20,14 @@ Employee=Служител NewEmployee=Нов служител ListOfEmployees=Списък на служителите HrmSetup=Настройка на модула ЧР -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Задача -Jobs=Jobs +JobPosition=Задача +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Позиция -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang index aa4b3c754b7..d058e9ff73f 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Конфигурационният файл %s н ConfFileIsWritable=Конфигурационният файл %s е презаписваем. ConfFileMustBeAFileNotADir=Конфигурационният файл %s трябва да е файл, а не директория. ConfFileReload=Презареждане на параметри от конфигурационен файл. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP поддържа променливи POST и GET. PHPSupportPOSTGETKo=Възможно е вашата настройка на PHP да не поддържа променливи POST и/или GET. Проверете параметъра variables_order в php.ini. PHPSupportSessions=PHP поддържа сесии. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Може да сте въвели грешна ст ErrorFailedToCreateDatabase=Неуспешно създаване на база данни '%s'. ErrorFailedToConnectToDatabase=Неуспешно свързване към базата данни '%s' ErrorDatabaseVersionTooLow=Версията на базата данни (%s) е твърде стара. Изисква се версия %s или по-нова. -ErrorPHPVersionTooLow=Версията на PHP е твърде стара. Изисква се версия %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Връзката със сървъра е успешна, но не е намерена база данни '%s'. ErrorDatabaseAlreadyExists=База данни '%s' вече съществува. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Ако базата данни не съществува, върнете се и проверете опцията "Създаване на база данни". IfDatabaseExistsGoBackAndCheckCreate=Ако базата данни вече съществува, върнете се обратно и махнете отметката на "Създаване на база данни". WarningBrowserTooOld=Версията на браузъра е твърде стара. Препоръчва се надграждане на браузъра ви до текуща версия на Firefox, Chrome или Opera. diff --git a/htdocs/langs/bg_BG/loan.lang b/htdocs/langs/bg_BG/loan.lang index ddd96a3d613..e5f041c254b 100644 --- a/htdocs/langs/bg_BG/loan.lang +++ b/htdocs/langs/bg_BG/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Финансово задължение InterestAmount=Лихва CapitalRemain=Оставащ капитал TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Конфигуриране на модула кредити -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Счетоводна сметка за капитал по подразбиране -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Счетоводна сметка за лихва по подразбиране -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Счетоводна сметка за застраховка по подразбиране +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Променяне на финансово задължение diff --git a/htdocs/langs/bg_BG/mailmanspip.lang b/htdocs/langs/bg_BG/mailmanspip.lang index 956b011214e..c3fb569ba5d 100644 --- a/htdocs/langs/bg_BG/mailmanspip.lang +++ b/htdocs/langs/bg_BG/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Настройки на модула Mailman и SPIP MailmanTitle=Mailman система за пощенски списък -TestSubscribe=За тестване на абонамента за Mailman списъци -TestUnSubscribe=За тестване на отписването Mailman списъци -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully +TestSubscribe=За да тествате абонирането за Mailman списъци +TestUnSubscribe=За да тествате отписването от Mailman списъци +MailmanCreationSuccess=Тестът за абониране е изпълнен успешно +MailmanDeletionSuccess=Тестът за отписване е изпълнен успешно SynchroMailManEnabled=Ще се извърши актуализация на Mailman -SynchroSpipEnabled=Ще се извърши актуализация на Spip -DescADHERENT_MAILMAN_ADMINPW=Mailman администраторска парола -DescADHERENT_MAILMAN_URL=URL за Mailman абонамент -DescADHERENT_MAILMAN_UNSUB_URL=URL за Mailman прекратяване на абонамент -DescADHERENT_MAILMAN_LISTS=Списък (а) за автоматично надпис на нови членове (разделени със запетая) -SPIPTitle=SPIP система за управление на съдържанието -DescADHERENT_SPIP_SERVEUR=SPIP Сървър -DescADHERENT_SPIP_DB=SPIP име на базата данни -DescADHERENT_SPIP_USER=SPIP база данни потребител -DescADHERENT_SPIP_PASS=SPIP парола за базата данни +SynchroSpipEnabled=Ще се извърши актуализация на SPIP +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman администраторска парола +DescADHERENT_MAILMAN_URL=URL адрес за абониране в Mailman +DescADHERENT_MAILMAN_UNSUB_URL=URL адрес за отписване в Mailman +DescADHERENT_MAILMAN_LISTS=Списък за автоматично вписване на нови членове (разделени със запетая) +SPIPTitle=SPIP система за управление на съдържание +DescADHERENT_SPIP_SERVEUR=SPIP сървър +DescADHERENT_SPIP_DB=SPIP име на база данни +DescADHERENT_SPIP_USER=SPIP потребител на база данни +DescADHERENT_SPIP_PASS=SPIP парола за база данни AddIntoSpip=Добавяне в SPIP AddIntoSpipConfirmation=Сигурни ли сте, че желаете да добавите този член в SPIP? AddIntoSpipError=Неуспешно добавяне на член в SPIP DeleteIntoSpip=Премахване от SPIP DeleteIntoSpipConfirmation=Сигурни ли сте, че желаете да премахнете този член от SPIP? -DeleteIntoSpipError=Неуспешно за подтискане на потребителя от СПИП -SPIPConnectionFailed=Не можете да се свържите с SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +DeleteIntoSpipError=Неуспешно изтриване на потребител от SPIP +SPIPConnectionFailed=Неуспешно свързване към SPIP +SuccessToAddToMailmanList=%s е успешно добавен към Mailman списъка %s или SPIP базата данни +SuccessToRemoveToMailmanList=%s е успешно премахнат от Mailman списъка %s или SPIP базата данни diff --git a/htdocs/langs/bg_BG/mails.lang b/htdocs/langs/bg_BG/mails.lang index 67941619c02..ff74df6975f 100644 --- a/htdocs/langs/bg_BG/mails.lang +++ b/htdocs/langs/bg_BG/mails.lang @@ -7,10 +7,10 @@ MailCard=Карта MailRecipients=Получатели MailRecipient=Получател MailTitle=Описание -MailFrom=Подател +MailFrom=От MailErrorsTo=Грешки до MailReply=Отговор до -MailTo=Получател (и) +MailTo=За MailToUsers=До потребител (и) MailCC=Копие до MailToCCUsers=Копие до потребител (и) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index 1cfcc08a9e9..a9c4989034a 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Няма наличен шаблон за този тип им AvailableVariables=Налични променливи за заместване NoTranslation=Няма превод Translation=Превод +Translations=Translations CurrentTimeZone=Времева зона на PHP (сървър) EmptySearchString=Въведете критерии за търсене EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Валидиран Approve=Одобряване Disapprove=Отхвърляне ReOpen=Повторно отваряне +OpenVerb=Активна Upload=Прикачи ToLink=Свържи Select=Изберете @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Няма дефинирана потребителска група Password=Парола -PasswordRetype=Повторете паролата +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Имайте предвид, че много функции / модули са деактивирани в тази демонстрация. Name=Име NameSlashCompany=Име / Фирма @@ -244,6 +252,7 @@ Designation=Описание DescriptionOfLine=Описание на реда DateOfLine=Дата на реда DurationOfLine=Продължителност на реда +ParentLine=Parent line ID Model=Шаблон за документ DefaultModel=Шаблон на документ по подразбиране Action=Събитие @@ -344,7 +353,7 @@ KiloBytes=Килобайта MegaBytes=Мегабайта GigaBytes=Гигабайта TeraBytes=Терабайта -UserAuthor=Ceated by +UserAuthor=Създаден от UserModif=Updated by b=б. Kb=Кб @@ -480,6 +489,7 @@ ActionsOnContact=Събития за този контакт / адрес ActionsOnContract=Свързани събития ActionsOnMember=Събития за този член ActionsOnProduct=Събития за този продукт +ActionsOnAsset=Events for this fixed asset NActionsLate=%s закъснели ToDo=За извършване Completed=Завършено @@ -517,6 +527,7 @@ or=или Other=Друг Others=Други OtherInformations=Друга информация +Workflow=Работен процес Quantity=Количество Qty=Кол. ChangedBy=Променено от @@ -619,6 +630,7 @@ MonthVeryShort11=Н MonthVeryShort12=Д AttachedFiles=Прикачени файлове и документи JoinMainDoc=Присъединете към основния документ +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Функцията е изключена MoveBox=Преместване на джаджа Offered=100% NotEnoughPermissions=Вие нямате разрешение за това действие +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Име на сесия Method=Метод Receive=Получаване @@ -798,6 +811,7 @@ URLPhoto=URL адрес на снимка / лого SetLinkToAnotherThirdParty=Връзка към друг контрагент LinkTo=Връзка към LinkToProposal=Връзка към предложение +LinkToExpedition= Link to expedition LinkToOrder=Връзка към поръчка LinkToInvoice=Връзка към фактура LinkToTemplateInvoice=Връзка към шаблонна фактура @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Изтегляне DownloadDocument=Изтегляне на документ +DownloadSignedDocument=Download signed document ActualizeCurrency=Актуализиране на валутния курс Fiscalyear=Фискална година ModuleBuilder=Дизайнер за модули и приложения @@ -1041,6 +1056,7 @@ SearchIntoContracts=Договори SearchIntoCustomerShipments=Клиентски пратки SearchIntoExpenseReports=Разходни отчети SearchIntoLeaves=Отпуск +SearchIntoKM=Knowledge base SearchIntoTickets=Тикети SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Плащания към доставчици @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=На изчакване Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Курс +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Прекратяване +Terminated=Деактивиран +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Вътрешен потребител +ExternalUser=Външен потребител diff --git a/htdocs/langs/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index 0be073a7051..ed0153e1479 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Друг член (име: %s, ErrorUserPermissionAllowsToLinksToItselfOnly=От съображения за сигурност трябва да имате права за променяне на всички потребители, за да може да свържете член с потребител, който не сте вие. SetLinkToUser=Свързване към Dolibarr потребител SetLinkToThirdParty=Свързване към Dolibarr контрагент +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Списък на членове MembersListToValid=Списък на чернови членове (за валидиране) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Идентификатор на член +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Нов член MemberType=Тип член MemberTypeId=Идентификатор за тип на член @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Типът член не може да бъде изт NewSubscription=Нова вноска NewSubscriptionDesc=Този формуляр позволява да регистрирате вашия абонамент като за нов член на организацията. Ако искате да подновите вашият абонамент (ако вече сте член), моля свържете се вместо това с ръководството на организация, чрез имейл %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Продължителност +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Закъснял SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Съдържание на вашата членска карта # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Искаме да ви уведомим, че вашата молба за членство е получена.

    ThisIsContentOfYourMembershipWasValidated=Искаме да ви уведомим, че вашето членство е валидирано със следната информация:

    -ThisIsContentOfYourSubscriptionWasRecorded=Искаме да ви уведомим, че вашият нов абонамент е регистриран.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Искаме да ви уведомим, че вашият абонамент ще изтече или вече е изтекъл (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Надяваме се, че ще го подновите.

    ThisIsContentOfYourCard=Това е обобщение на информацията, която имаме за вас. Моля, свържете се с нас, ако има нещо некоректно.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Тема на известяващ имейл, получен в случай на автоматично вписване на гост @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Оборот (за фирма) или бюджет (за организация) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Прехвърляне към интегрираната страница за плащане онлайн +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=По произход MembersStatisticsByProperties=Статистика за членове по произход VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/bg_BG/modulebuilder.lang b/htdocs/langs/bg_BG/modulebuilder.lang index e4b8a5eb0eb..8fd5c7b8b54 100644 --- a/htdocs/langs/bg_BG/modulebuilder.lang +++ b/htdocs/langs/bg_BG/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Път, където модулите се генерират / променят (главна директория за външни модули, дефинирани в %s): %s ModuleBuilderDesc3=Намерени генерирани / променяеми модули: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Един модул се открива като 'проме NewModule=Нов модул NewObjectInModulebuilder=Нов обект NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Модулен ключ ObjectKey=Обектен ключ DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Път до zip пакет на модул / приложе PathToModuleDocumentation=Път до файл с документация на модул / приложение (%s) SpaceOrSpecialCharAreNotAllowed=Интервали или специални символи не са разрешени. FileNotYetGenerated=Файлът все още не е генериран +GenerateCode=Generate code RegenerateClassAndSql=Принудително актуализиране на .class и .sql файлове RegenerateMissingFiles=Генериране на липсващи файлове SpecificationFile=Файл с документация LanguageFile=Езиков файл ObjectProperties=Свойства на обект +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Сигурни ли сте, че искате да изтриете свойство %s? Това ще промени кода в PHP класа, но също така ще премахне колоната от дефиниращата таблица на обекта. NotNull=Не нулева NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Измерва се DirScanned=Сканирани директории NoTrigger=Няма тригер NoWidget=Няма джаджа -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=Списък на записи в меню ListOfDictionariesEntries=Списък на записи в речници ListOfPermissionsDefined=Списък на дефинирани права SeeExamples=Вижте примери тук -EnabledDesc=Условие това поле да бъде активно (Примери: 1 или $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Показване в PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Може ли стойността в полето да бъде натрупвана, за да се получи обща в списъка? (Пример: 1 или 0) SearchAllDesc=Използва ли се полето за извършване на търсене, чрез инструмента за бързо търсене? (Пример: 1 или 0) SpecDefDesc=Въведете тук цялата документация, която искате да предоставите с вашия модул и тя все още не е дефинирана в други раздели. Може да използвате .md или по-добрия .asciidoc синтаксис. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Използване на конкретен URL адре UseSpecificFamily = Използване на конкретна фамилия UseSpecificAuthor = Използване на конкретен автор UseSpecificVersion = Използване на конкретна първоначална версия -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Ако маркирате това, ще се генерира код, който да добави поле 'Генериране на документ' върху записа. -ShowOnCombobox=Показване на стойност в комбиниран списък +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Ключ за подсказка CSSClass=CSS for edit/create form CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Непроменяем ForeignKey=Външен ключ -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii към HTML конвертор AsciiToPdfConverter=Ascii към PDF конвертор TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/bg_BG/mrp.lang b/htdocs/langs/bg_BG/mrp.lang index 0ff188dba14..040179393b4 100644 --- a/htdocs/langs/bg_BG/mrp.lang +++ b/htdocs/langs/bg_BG/mrp.lang @@ -11,8 +11,8 @@ Bom=Списъци с материали BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Настройка на модул списъци с материали -ListOfBOMs=Списък на списъци с материали -ListOfManufacturingOrders=Списък на поръчки за производство +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Поръчки за производство NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=Модули за номериране на списъци с материали @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Сигурни ли сте, че искате да клонирате поръчката за производство %s? ManufacturingEfficiency=Производствена ефективност ConsumptionEfficiency=Потребляема ефективност +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Стойност 0,95 означава средно 5%% загуба от произведен продукт DeleteBillOfMaterials=Изтриване на списък с материали @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Сигурни ли сте, че искате да валидирате тази поръчка за производство? ConfirmProductionDesc=С кликване върху '%s' ще потвърдите потреблението и / или производството за определените количества. Това също така ще актуализира наличностите и ще регистрира движението им. ProductionForRef=Производство на %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Автоматично приключване на поръчка за производство при достигнати количества за потребление и производство NoStockChangeOnServices=Без променяне на наличности за услуги ProductQtyToConsumeByMO=Количество продукт, което да се използва от активна ПП @@ -80,6 +83,7 @@ ProductsToProduce=Продукти за производство UnitCost=Единична цена TotalCost=Обща цена BOMTotalCost=Разходите за производство на този списък с материали въз основа на разходите за всяко количество и продукт, които ще се използват (използвайте себестойност, ако е дефинирана, иначе средно претеглена цена, ако е определена, или най-добра покупна цена). +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/bg_BG/oauth.lang b/htdocs/langs/bg_BG/oauth.lang index 45026ee6760..da26c9a8cf9 100644 --- a/htdocs/langs/bg_BG/oauth.lang +++ b/htdocs/langs/bg_BG/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Беше генериран и съхранен токен в л NewTokenStored=Токенът е получен и съхранен ToCheckDeleteTokenOnProvider=Кликнете тук, за да проверите / изтриете разрешение, съхранено от %s OAuth доставчик TokenDeleted=Токенът е изтрит -RequestAccess=Кликнете тук, за да заявите / подновите достъпа и да получите нов токен, който да запазите +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Кликнете тук, за да изтриете токенът UseTheFollowingUrlAsRedirectURI=Използвайте следния URL адрес като URI за пренасочване, когато създавате идентификационни данни през вашият доставчик на OAuth: -ListOfSupportedOauthProviders=Въведете идентификационните данни, предоставени от вашият OAuth2 доставчик. Тук са изброени поддържаните OAuth2 доставчици. Тези услуги могат да бъдат използвани от други модули, които се нуждаят от OAuth2 удостоверяване. -OAuthSetupForLogin=Страница за генериране на OAuth токен +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Вижте предишния раздел +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID и Secret TOKEN_REFRESH=Налично е опресняване на токен TOKEN_EXPIRED=Токенът е изтекъл @@ -23,10 +24,13 @@ TOKEN_DELETE=Изтриване на съхранен токен OAUTH_GOOGLE_NAME=OAuth услуга на Google OAUTH_GOOGLE_ID=OAuth Google идентификатор OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Отидете на тази страница след това 'Удостоверения', за да създадете OAuth удостоверения OAUTH_GITHUB_NAME=OAuth услуга на GitHub OAUTH_GITHUB_ID=OAuth GitHub идентификатор OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Отидете на тази страница след това 'Регистриране на ново приложение', за да създадете OAuth удостоверения +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe тест OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index 2b82bd98036..6d662b2558f 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Поръчката за покупка е одоб Notify_ORDER_SUPPLIER_REFUSE=Поръчката за покупка е отхвърлена Notify_PROPAL_VALIDATE=Търговското предложение е валидирано Notify_PROPAL_CLOSE_SIGNED=Търговското предложение е подписано +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Търговското предложение е отхвърлено +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Търговското предложение е изпратено на имейл Notify_WITHDRAW_TRANSMIT=Оттегляне на изпращане Notify_WITHDRAW_CREDIT=Оттегляне на кредит @@ -181,6 +183,7 @@ SizeUnitfoot=фут SizeUnitpoint=точка BugTracker=Регистър на бъгове SendNewPasswordDesc=Този формуляр позволява да заявите нова парола. Тя ще бъде изпратена на вашият имейл адрес.
    Промяната ще влезе в сила след като кликнете върху връзката за потвърждение в имейла.
    Проверете си пощата. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Назад към страницата за вход AuthenticationDoesNotAllowSendNewPassword=Режимът за удостоверяване е %s.
    В този режим, системата не може да знае, нито да промени паролата ви.
    Свържете се с вашият системен администратор, ако искате да промените паролата си. EnableGDLibraryDesc=Инсталирайте или активирайте GD библиотеката на вашата PHP инсталация, за да използвате тази опция. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Фактура %s е валидирана. EMailTextInvoicePayed=Фактура %s е платена. EMailTextProposalValidated=Търговско предложение %s е валидирано. EMailTextProposalClosedSigned=Търговско предложение %s е подписано. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Поръчка %s е валидирана. EMailTextOrderApproved=Поръчка %s е одобрена. EMailTextOrderValidatedBy=Поръчка %s е валидирана от %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Приключване Autofill = Autofill + +# externalsite +ExternalSiteSetup=Настройка на линк към външен сайт +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Модула Външен сайт не е конфигуриран правилно. +ExampleMyMenuEntry=Мой елемент на меню + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Неуспешно премахване на файл %s. +FTPFailedToRemoveDir=Неуспешно премахване на директория %s: проверете правата и дали директорията е празна. +FTPPassiveMode=Пасивен режим +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Неуспешно получаване на файлове %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/bg_BG/products.lang b/htdocs/langs/bg_BG/products.lang index 448a69e3fb0..865451cf3ea 100644 --- a/htdocs/langs/bg_BG/products.lang +++ b/htdocs/langs/bg_BG/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Сигурни ли сте, че искате да из ProductSpecial=Специален QtyMin=Минимално количество за покупка PriceQtyMin=Минимална цена за количество -PriceQtyMinCurrency=Цена (във валута) за това количество (без отстъпка) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=Ставка на ДДС (за този доставчик / продукт) DiscountQtyMin=Отстъпка за това количество NoPriceDefinedForThisSupplier=Няма дефинирана цена / количество за този доставчик / продукт @@ -261,7 +262,7 @@ Quarter1=Първо тримесечие Quarter2=Второ тримесечие Quarter3=Трето тримесечие Quarter4=Четвърто тримесечие -BarCodePrintsheet=Отпечатване на баркод +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=С този инструмент може да отпечатвате стикери с баркод . Изберете формат на страницата със стикери, вида на баркода и неговата стойност, след което кликнете върху бутона %s. NumberOfStickers=Брой стикери за отпечатване на страница PrintsheetForOneBarCode=Отпечатване на няколко стикера за един баркод @@ -344,9 +345,9 @@ PossibleValues=Възможни стойности GoOnMenuToCreateVairants=Отидете в менюто %s - %s, за да подготвите атрибутите на варианта (като цветове, размер, ...) UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers ProductSupplierDescription=Описание на продукта от доставчик -UseProductSupplierPackaging=Използване на пакетиране по цени на доставчик (преизчислява количествата според пакетирането, определено чрез доставната цена, когато добавяте / актуализирате ред в документите на доставчика) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Пакетиране -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Количеството за реда е преизчислено според пакетирането на доставчика #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Действието е достъпно с ProductsPricePerCustomer=Цени на продукта в зависимост от клиента ProductSupplierExtraFields=Допълнителни атрибути (цени на доставчици) DeleteLinkedProduct=Изтриване на подпродукт, свързан с комбинацията -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Средно измерена цена PMPValueShort=СИЦ mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/bg_BG/projects.lang b/htdocs/langs/bg_BG/projects.lang index c8da54cf865..357a2edf3b4 100644 --- a/htdocs/langs/bg_BG/projects.lang +++ b/htdocs/langs/bg_BG/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Този страница показва всички проек TasksDesc=Този страница показва всички проекти и задачи (вашите потребителски права ви дават разрешение да виждате всичко). AllTaskVisibleButEditIfYouAreAssigned=Всички задачи за определените проекти са видими, но може да въведете време само за задача, възложена на избрания потребител. Възложете задача, ако е необходимо да въведете отделено време за нея. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Задачи по проекти ProjectCategories=Тагове / Категории на проекти NewProject=Нов проект @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Размер на възможностит OpportunitiesStatusForProjects=Размер на възможностите от проекти по статус ShowProject=Показване на проект ShowTask=Показване на задача +SetThirdParty=Set third party SetProject=Определете проект +OutOfProject=Out of project NoProject=Няма дефиниран или притежаван проект NbOfProjects=Брой проекти NbOfTasks=Брой задачи @@ -122,7 +125,8 @@ ValidateProject=Валидиране на проект ConfirmValidateProject=Сигурни ли сте, че искате да валидирате този проект? CloseAProject=Приключване на проект ConfirmCloseAProject=Сигурни ли сте, че искате да приключите този проект? -AlsoCloseAProject=Приключване на проект (задръжте го активен, ако все още трябва да работите по задачите в него) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Отваряне на проект ConfirmReOpenAProject=Сигурни ли сте, че искате да отворите повторно този проект? ProjectContact=Контакти / Участници @@ -165,7 +169,7 @@ OpportunityProbability=Вероятност за възможността OpportunityProbabilityShort=Вероятност OpportunityAmount=Сума на възможността OpportunityAmountShort=Сума -OpportunityWeightedAmount=Изчислена сума на възможността +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Изч. сума на възможността OpportunityAmountAverageShort=Средна сума на възможността OpportunityAmountWeigthedShort=Изчислена сума на възможността @@ -238,7 +242,7 @@ OppStatusPENDING=Изчакване OppStatusWON=Спечелен OppStatusLOST=Загубен Budget=Бюджет -AllowToLinkFromOtherCompany=Позволяване на свързването на проект от друга контрагент

    Поддържани стойности:
    - Оставете празно: Може да свържете всеки проект на контрагента (по подразбиране)
    - 'all': Може да свържете всеки проект, дори проекти на други контрагенти
    - Списък на идентификатори на контрагенти, разделени със запетая: Може да свържете всички проекти на тези контрагенти (Пример: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Проекти: %s последни LatestModifiedProjects=Проекти: %s последно променени OtherFilteredTasks=Други филтрирани задачи @@ -259,7 +263,7 @@ TimeSpentInvoiced=Фактурирано отделено време TimeSpentForIntervention=Отделено време TimeSpentForInvoice=Отделено време OneLinePerUser=Един ред на потребител -ServiceToUseOnLines=Услуга за използване по редовете +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Фактура %s е генерирана въз основа на отделеното време по проекта InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Маркирайте, ако въвеждате график на задачите в проекта и планирате да генерирате фактура(и) за клиента от графика на задачите в проекта (не маркирайте, ако планирате да създадете фактура, която не се основава на въведеният график на задачите). Забележка: За да генерирате фактура, отидете в раздела "Отделено време" на проекта и изберете редовете, които да включите. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang index 97509397a2a..84d70a14eb0 100644 --- a/htdocs/langs/bg_BG/propal.lang +++ b/htdocs/langs/bg_BG/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Няма чернови на предложения CopyPropalFrom=Създаване на търговско предложение, чрез копиране на съществуващо предложение CreateEmptyPropal=Създаване на празно търговско предложение или списък с продукти / услуги DefaultProposalDurationValidity=Срок на валидност по подразбиране за търговско предложение (в дни) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Използване тип на контакт / адрес 'Представител проследяващ предложението', ако е определен, вместо адрес на контрагента като адрес на получателя на предложението ConfirmClonePropal=Сигурни ли сте, че искате да клонирате това търговско предложение с № %s? ConfirmReOpenProp=Сигурни ли сте, че искате да отворите отново търговско предложение с № %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Забавяне на наличността SetAvailability=Определете забавяне на наличност AfterOrder=след поръчка OtherProposals=Други предложения + ##### Availability ##### AvailabilityTypeAV_NOW=Незабавно AvailabilityTypeAV_1W=1 седмица AvailabilityTypeAV_2W=2 седмици AvailabilityTypeAV_3W=3 седмици AvailabilityTypeAV_1M=1 месец -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Изготвил предложение TypeContact_propal_external_BILLING=Получател на фактура TypeContact_propal_external_CUSTOMER=Получател на предложение TypeContact_propal_external_SHIPPING=Получател на доставка + # Document models -DocModelAzurDescription=Пълен шаблон на предложение (стара реализация на шаблон Cyan) -DocModelCyanDescription=Пълен модел на предложение +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Случай, проследяван от +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Шаблон по подразбиране, когато се приключва търговско предложение (не таксувано) DefaultModelPropalCreate=Създаване на шаблон по подразбиране DefaultModelPropalToBill=Шаблон по подразбиране, когато се приключва търговско предложение (за да бъде фактурирано) -DefaultModelPropalClosed=Шаблон по подразбиране, когато се приключва търговско предложение (не таксувано) +DocModelAzurDescription=Пълен шаблон на предложение (стара реализация на шаблон Cyan) +DocModelCyanDescription=Пълен модел на предложение +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Отхвърляне +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Име, фамилия, фирмен печат, дата и подпис ProposalsStatisticsSuppliers=Статистика на запитвания към доставчици -CaseFollowedBy=Случай, проследяван от -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/bg_BG/recruitment.lang b/htdocs/langs/bg_BG/recruitment.lang index 8ae43b3daff..69e568eac35 100644 --- a/htdocs/langs/bg_BG/recruitment.lang +++ b/htdocs/langs/bg_BG/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Заплата +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/bg_BG/salaries.lang b/htdocs/langs/bg_BG/salaries.lang index 8fba65c3c03..2a75ac11806 100644 --- a/htdocs/langs/bg_BG/salaries.lang +++ b/htdocs/langs/bg_BG/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Счетоводна сметка, използвана за служители на контрагенти -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Специализираната счетоводна сметка, дефинирана в картата на потребителя, ще се използва само за вторично счетоводно отчитане. Тя ще бъде използвана в регистъра на главната счетоводна книга и като стойност по подразбиране за вторично счетоводно отчитане, ако не е дефинирана специализирана потребителска счетоводна сметка за потребителя. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Счетоводна сметка по подразбиране за плащане на заплати CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Заплата @@ -24,3 +24,4 @@ SalariesStatistics=Статистика на заплати SalariesAndPayments=Заплати и плащания ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/bg_BG/stocks.lang b/htdocs/langs/bg_BG/stocks.lang index fff80ee9a68..d26b4f76633 100644 --- a/htdocs/langs/bg_BG/stocks.lang +++ b/htdocs/langs/bg_BG/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Минималното количество за п ProductStockWarehouseUpdated=Минималното количество за предупреждение и желаните оптимални наличности са правилно актуализирани ProductStockWarehouseDeleted=Минималното количество за предупреждение и желаните оптимални наличности са правилно изтрити AddNewProductStockWarehouse=Определяне на ново минимално количество за предупреждение и желана оптимална наличност -AddStockLocationLine=Намалете количеството, след което кликнете, за да добавите друг склад за този продукт +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Дата на инвентаризация Inventories=Инвентаризации NewInventory=Нова инвентаризация @@ -254,7 +254,7 @@ ReOpen=Повторно отваряне ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Начало InventoryStartedShort=Започнати ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Настройки +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/bg_BG/ticket.lang b/htdocs/langs/bg_BG/ticket.lang index b3e2d54fa24..13bdf4bbdd0 100644 --- a/htdocs/langs/bg_BG/ticket.lang +++ b/htdocs/langs/bg_BG/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Изтриване на тикети Permission56004=Управление на тикети Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента от който зависят) +Tickets=Тикети TicketDictType=Тикет - Видове TicketDictCategory=Тикет - Групи TicketDictSeverity=Тикет - Приоритети @@ -90,8 +91,8 @@ TicketPublicAccess=Публичен интерфейс, който не изис TicketSetupDictionaries=Видът на тикета, приоритетът и категорията се конфигурират от речници TicketParamModule=Настройка на променливите в модула TicketParamMail=Настройка за имейл известяване -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Текстово съобщение, изпратено след създаване на тикет @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Текстът, посочен тук, ще бъде вк TicketParamPublicInterface=Настройка на публичен интерфейс TicketsEmailMustExist=Изисква съществуващ имейл адрес, за да се създаде тикет TicketsEmailMustExistHelp=За да се създаде нов тикет през публичния интерфейс имейл адресът трябва да съществува в базата данни +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Публичен интерфейс TicketUrlPublicInterfaceLabelAdmin=Алтернативен URL адрес за публичния интерфейс TicketUrlPublicInterfaceHelpAdmin=Възможно е да се дефинира псевдоним на уеб сървъра и по този начин да се предостави достъп до публичния интерфейс от друг URL адрес (сървърът трябва да действа като прокси сървър за този нов URL адрес) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Тикетът е възложен TicketChangeType=Променяне на вида TicketChangeCategory=Променяне на категория TicketChangeSeverity=Променяне на приоритет -TicketAddMessage=Добавяне на съобщение -AddMessage=Добавяне на съобщение +TicketAddMessage=Add private message MessageSuccessfullyAdded=Тикетът е добавен TicketMessageSuccessfullyAdded=Съобщението е успешно добавено TicketMessagesList=Списък със съобщения @@ -202,8 +206,8 @@ TicketSeverity=Приоритет ShowTicket=Преглед на тикет RelatedTickets=Свързани тикети TicketAddIntervention=Създаване на интервенция -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Потвърдете приключването на тикета ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Изпращане на съобщение по имейл TicketNewMessage=Ново съобщение ErrorMailRecipientIsEmptyForSendTicketMessage=Полето за получател е празно, не беше изпратен имейл. TicketGoIntoContactTab=Моля отидете в раздел "Контакти" откъдето може да изберете -TicketMessageMailIntro=Въведение +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Този текст се добавя само в началото на имейла и няма да бъде запазен. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Подпис -TicketMessageMailSignatureHelp=Този текст се добавя само в края на имейла и няма да бъде запазен. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Подпис в отговора към имейла -TicketMessageMailSignatureHelpAdmin=Този текст ще бъде вмъкнат след съобщението за отговор. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Този текст ще бъде вмъкнат след съобщението за отговор. TicketMessageHelp=Само този текст ще бъде запазен в списъка със съобщения към тикета. TicketMessageSubstitutionReplacedByGenericValues=Заместващите променливи се заменят с общи стойности. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Изминало време TicketTimeToRead=Изминало време преди прочитане TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Ново съобщение беше TicketAssignedToYou=Тикетът ви е възложен TicketAssignedEmailBody=Беше ви възложен тикет с проследяващ код %s от %s MarkMessageAsPrivate=Маркиране на съобщението като лично +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Това съобщение няма да се показва на външни потребители TicketEmailOriginIssuer=Контакт на контрагента проследяващ тикета InitialMessage=Първоначално съобщение @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Може да следите напре TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Моля, не отговаряйте директно на този имейл! Използвайте връзката, за да отговорите, чрез интерфейса. TicketPublicInfoCreateTicket=Тази форма позволява да регистрирате тикет в системата за управление и обслужване на запитвания. -TicketPublicPleaseBeAccuratelyDescribe=Моля, опишете подробно проблема. Посочете възможно най-много информация, за да ни позволите да идентифицираме правилно това запитване. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Моля, въведете проследяващ код и имейл адрес TicketTrackId=Код за проследяване OneOfTicketTrackId=Код за проследяване diff --git a/htdocs/langs/bg_BG/users.lang b/htdocs/langs/bg_BG/users.lang index 908b2062568..de922457273 100644 --- a/htdocs/langs/bg_BG/users.lang +++ b/htdocs/langs/bg_BG/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Премахване от групата PasswordChangedAndSentTo=Паролата е сменена и изпратена на %s. PasswordChangeRequest=Заявка за промяна на парола на %s PasswordChangeRequestSent=Заявка за промяна на парола на %s е изпратена на %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Потвърдете възстановяване на парола MenuUsersAndGroups=Потребители и групи @@ -68,7 +68,6 @@ CreateDolibarrLogin=Създаване на потребител CreateDolibarrThirdParty=Създаване на контрагент LoginAccountDisableInDolibarr=Профилът е деактивиран в системата. UsePersonalValue=Използване на лична стойност -InternalUser=Вътрешен потребител ExportDataset_user_1=Потребители и техните реквизити DomainUser=Домейн потребител %s Reactivate=Възстановяване @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang index 63fc67e371d..afb0a474e42 100644 --- a/htdocs/langs/bg_BG/website.lang +++ b/htdocs/langs/bg_BG/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Код +WebsiteName=Name of the website WebsiteSetupDesc=Регистрирайте тук уебсайтовете, които искате да използвате, след това отидете в менюто Уебсайтове, за да ги редактирате. DeleteWebsite=Изтриване на уебсайт ConfirmDeleteWebsite=Сигурни ли сте, че искате да изтриете този уебсайт? Всички страници и съдържание им ще бъдат премахнати. Качените файлове (в директорията /medias/, чрез ECM модула, ...) ще останат. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Добавка в долната част на HTML загл WEBSITE_ROBOT=Съдържание на robots файл (robots.txt) WEBSITE_HTACCESS=Съдържание на .htaccess файл WEBSITE_MANIFEST_JSON=Съдържание на manifest.json файл -WEBSITE_README=Съдържание на readme.md файл WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Въведете тук мета данни или информация за лиценз, за да попълните README.md файла. Ако разпространявате уебсайта си като шаблон, файлът ще бъде включен в пакета на шаблона. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML заглавие (само за тази страница) PageNameAliasHelp=Име или псевдоним на страницата.
    Този псевдоним се използва и за измисляне на SEO URL адрес, когато уебсайтът се управлява от виртуален хост на уеб сървър (като Apacke, Nginx, ...). Използвайте бутона "%s", за да редактирате този псевдоним. EditTheWebSiteForACommonHeader=Забележка: Ако искате да дефинирате персонализирано заглавие за всички страници, редактирайте заглавието на ниво сайт, вместо на ниво страница / контейнер. @@ -42,10 +43,12 @@ ViewPageInNewTab=Преглед на страницата в нов раздел SetAsHomePage=Задаване като начална страница RealURL=Реален URL адрес ViewWebsiteInProduction=Преглед на уебсайт, чрез начални URL адреси +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Използвайте с Apache / Nginx / ...
    Създайте на вашият уеб сървър (Apache, Nginx, ...) специален виртуален хост с PHP поддръжка и основна директория в
    %s ExampleToUseInApacheVirtualHostConfig=Пример за използване при настройка на виртуалния хост в Apache: YouCanAlsoTestWithPHPS=Използване, чрез вграден PHP сървър
    В среда за разработка може да предпочетете да тествате сайта с вградения PHP уеб сървър (изисква се PHP 5.5) като стартирате
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Стартирайте уебсайта си на друг Dolibarr хостинг доставчик
    Ако нямате уеб сървър като Apache или NGinx в интернет може да експортирате и импортирате уебсайта си в друга Dolibarr инстанция, предоставена от друг Dolibarr хостинг доставчик, който осигурява пълна интеграция с модула на уебсайта. Може да намерите списък с някои доставчици на Dolibarr хостинг услуги на https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=Четене WritePerm=Писане @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Може да редактирате изходни YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Клониране на страница / контейнер CloneSite=Клониране на сайт SiteAdded=Уебсайтът е добавен @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/bn_BD/datapolicy.lang b/htdocs/langs/bn_BD/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/bn_BD/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bn_BD/dict.lang b/htdocs/langs/bn_BD/dict.lang index ec315d97142..00ab5a05f24 100644 --- a/htdocs/langs/bn_BD/dict.lang +++ b/htdocs/langs/bn_BD/dict.lang @@ -21,7 +21,7 @@ CountryNL=Netherlands CountryHU=Hungary CountryRU=Russia CountrySE=Sweden -CountryCI=Ivoiry Coast +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Cameroon @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs. +CivilityMMEShort=Mrs. CivilityMR=Mr. +CivilityMRShort=Mr. CivilityMLE=Ms. CivilityMTRE=Master CivilityDR=Doctor diff --git a/htdocs/langs/bn_BD/ecm.lang b/htdocs/langs/bn_BD/ecm.lang index 494a6c55164..5ced4ec5617 100644 --- a/htdocs/langs/bn_BD/ecm.lang +++ b/htdocs/langs/bn_BD/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manual directory ECMSectionAuto=Automatic directory ECMSectionsManual=Manual tree ECMSectionsAuto=Automatic tree +ECMSectionsMedias=Medias tree ECMSections=Directories ECMRoot=ECM Root ECMNewSection=New directory @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Number of files in sub-directories ECMCreationUser=Creator ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatic directories are filled automatically when adding documents from card of an element.
    * Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Directory %s has been deleted. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Search by keywords diff --git a/htdocs/langs/bn_BD/errors.lang b/htdocs/langs/bn_BD/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/bn_BD/errors.lang +++ b/htdocs/langs/bn_BD/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/bn_BD/externalsite.lang b/htdocs/langs/bn_BD/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/bn_BD/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/bn_BD/ftp.lang b/htdocs/langs/bn_BD/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/bn_BD/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/bn_BD/install.lang b/htdocs/langs/bn_BD/install.lang index 9d76ad15d43..6aee82bacec 100644 --- a/htdocs/langs/bn_BD/install.lang +++ b/htdocs/langs/bn_BD/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Configuration file %s is writable. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=This PHP supports variables POST and GET. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=This PHP supports sessions. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'. ErrorFailedToCreateDatabase=Failed to create database '%s'. ErrorFailedToConnectToDatabase=Failed to connect to database '%s'. ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. -ErrorPHPVersionTooLow=PHP version too old. Version %s is required. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Database '%s' already exists. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/bn_BD/loan.lang b/htdocs/langs/bn_BD/loan.lang index d271ed0c140..3bbb0e455d5 100644 --- a/htdocs/langs/bn_BD/loan.lang +++ b/htdocs/langs/bn_BD/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Financial commitment InterestAmount=Interest CapitalRemain=Capital remain TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Configuration of the module loan -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edit financial commitment diff --git a/htdocs/langs/bn_BD/mailmanspip.lang b/htdocs/langs/bn_BD/mailmanspip.lang index bab4b3576b4..6ff3ac9f770 100644 --- a/htdocs/langs/bn_BD/mailmanspip.lang +++ b/htdocs/langs/bn_BD/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=A Mailman update will be performed SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) diff --git a/htdocs/langs/bn_BD/mails.lang b/htdocs/langs/bn_BD/mails.lang index 52c4d4dbf69..bd80b576c5a 100644 --- a/htdocs/langs/bn_BD/mails.lang +++ b/htdocs/langs/bn_BD/mails.lang @@ -7,10 +7,10 @@ MailCard=EMailing card MailRecipients=Recipients MailRecipient=Recipient MailTitle=Description -MailFrom=Sender +MailFrom=From MailErrorsTo=Errors to MailReply=Reply to -MailTo=Receiver(s) +MailTo=To MailToUsers=To user(s) MailCC=Copy to MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index 3bb0a52d6b3..0502c2c9bfe 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Opened Upload=Upload ToLink=Link Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Password -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=Name NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Description DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=Other Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang index 49ff93dd589..b7344157bf3 100644 --- a/htdocs/langs/bn_BD/other.lang +++ b/htdocs/langs/bn_BD/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Manage members of a foundation DemoFundation2=Manage members and bank account of a foundation DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash desk +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Company with multiple activities (all main modules) @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Back to login page AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
    In this mode, Dolibarr can't know nor change your password.
    Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -303,3 +309,31 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Close +Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup link to external website +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Failed to remove file %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/bn_BD/stocks.lang b/htdocs/langs/bn_BD/stocks.lang index 599c9649b18..7137edcf576 100644 --- a/htdocs/langs/bn_BD/stocks.lang +++ b/htdocs/langs/bn_BD/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Started ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/bn_IN/datapolicy.lang b/htdocs/langs/bn_IN/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/bn_IN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bn_IN/errors.lang b/htdocs/langs/bn_IN/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/bn_IN/errors.lang +++ b/htdocs/langs/bn_IN/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/bn_IN/externalsite.lang b/htdocs/langs/bn_IN/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/bn_IN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/bn_IN/ftp.lang b/htdocs/langs/bn_IN/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/bn_IN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 3980b533703..d1b45e43d0b 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modifikacija transakcije ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Dnevnik prodaje -ACCOUNTING_PURCHASE_JOURNAL=Dnevnik nabavki -ACCOUNTING_MISCELLANEOUS_JOURNAL=Dnevnik raznih stavki +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Dnevnik troškova -ACCOUNTING_SOCIAL_JOURNAL=Dnevnik doprinosa +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Dnevnik doprinosa ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Po godini NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Nije izmireno -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Banka -AccountingJournalType5=Expenses report +AccountingJournalType5=Izvještaj o troškovima AccountingJournalType8=Inventar AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model izvoza @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index 2ce6165e282..b1a8291b68d 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=Slijedeća vrijednost (zamjene) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Full path to antivirus command AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Više parametara preko komandne linije @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=All barcode values have been removed @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -714,13 +714,14 @@ Permission27=Delete commercial proposals Permission28=Export commercial proposals Permission31=Read products Permission32=Create/modify products +Permission33=Read prices products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Read interventions Permission62=Create/modify interventions @@ -739,6 +740,7 @@ Permission79=Create/modify subscriptions Permission81=Read customers orders Permission82=Create/modify customers orders Permission84=Validate customers orders +Permission85=Generate the documents sales orders Permission86=Send customers orders Permission87=Close customers orders Permission88=Cancel customers orders @@ -766,9 +768,10 @@ Permission122=Kreiranje/mijenjati trećih strana vezanih sa korisnika Permission125=Brisanje trećih stranaka vezanih za korisnika Permission126=Izvoz trećih stranaka Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Read providers Permission147=Read stats Permission151=Read direct debit payment orders @@ -873,6 +876,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Read services Permission532=Create/modify services +Permission533=Read prices services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services @@ -883,6 +887,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -969,6 +976,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Postavke snimljene SetupNotSaved=Setup not saved @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1187,7 +1197,7 @@ BankModuleNotActive=Bank accounts module not enabled ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Upozorenja -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1228,6 +1238,7 @@ BrowserName=Browser name BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Vodeni žig na nacrte faktura (ništa, ako je prazno) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Narudžbe za nabavku MailToSendSupplierInvoice=Fakture prodavača MailToSendContract=Ugovori MailToSendReception=Receptions +MailToExpenseReport=Izvještaj o troškovima MailToThirdparty=Subjekti MailToMember=Članovi MailToUser=Korisnici @@ -2019,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,27 +2065,46 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2082,14 +2118,14 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2185,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/bs_BA/categories.lang b/htdocs/langs/bs_BA/categories.lang index 9134cd1112d..09651c44c1f 100644 --- a/htdocs/langs/bs_BA/categories.lang +++ b/htdocs/langs/bs_BA/categories.lang @@ -3,7 +3,7 @@ Rubrique=Tag/Category Rubriques=Tags/Categories RubriquesTransactions=Tags/Categories of transactions categories=tags/categories -NoCategoryYet=No tag/category of this type has been created +NoCategoryYet=kreirano In=U AddIn=Dodaj u modify=izmijeniti @@ -42,7 +42,7 @@ MemberHasNoCategory=This member is not in any tags/categories ContactHasNoCategory=This contact is not in any tags/categories ProjectHasNoCategory=This project is not in any tags/categories ClassifyInCategory=Add to tag/category -NotCategorized=Without tag/category +NotCategorized=Bez oznake/kategorije CategoryExistsAtSameLevel=Već postoji kategorija sa ovom referencom ContentsVisibleByAllShort=Sadržaj vidljiv svima ContentsNotVisibleByAllShort=Sadržaj nije vidljiv svima @@ -90,10 +90,12 @@ CategorieRecursivHelp=If option is on, when you add a product into a subcategory AddProductServiceIntoCategory=Add the following product/service AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Show tag/category ByDefaultInList=By default in list ChooseCategory=Choose category StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories diff --git a/htdocs/langs/bs_BA/companies.lang b/htdocs/langs/bs_BA/companies.lang index 0ab41689512..d97b5328f14 100644 --- a/htdocs/langs/bs_BA/companies.lang +++ b/htdocs/langs/bs_BA/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Vrsta treće strane NatureOfContact=Nature of Contact Address=Adresa State=Država/Provincija +StateId=State ID StateCode=State/Province code StateShort=Pokrajina Region=Region Region-State=Regija - Zemlja Country=Država CountryCode=Šifra države -CountryId=ID države +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skajp @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Drugi ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/bs_BA/compta.lang b/htdocs/langs/bs_BA/compta.lang index b15eb833c59..4246c45ffe0 100644 --- a/htdocs/langs/bs_BA/compta.lang +++ b/htdocs/langs/bs_BA/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Stanje (prije) Balance=Stanje Debit=Duguje Credit=Potražuje +AccountingDebit=Duguje +AccountingCredit=Potražuje Piece=Računovodstvena dok. AmountHTVATRealReceived=Neto prikupljeno AmountHTVATRealPaid=Neto plaćeno @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Mode %sVAT on commitment accounting%s. CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Calculation mode AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/bs_BA/contracts.lang b/htdocs/langs/bs_BA/contracts.lang index 013e35d14b5..7207e405ac1 100644 --- a/htdocs/langs/bs_BA/contracts.lang +++ b/htdocs/langs/bs_BA/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contracts/Subscriptions ContractsAndLine=Contracts and line of contracts Contract=Ugovor ContractLine=Contract line +ContractLines=Contract lines Closing=Closing NoContracts=Nema ugovora MenuServices=Usluge @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Pomjeri uslugu u drugi ugovor. ConfirmMoveToAnotherContract=Izabrao sam novi ugovor i potvrđujem da želim premjestiti ovu uslugu u odabrani ugovor. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Obnovi stavku ugovora (broj %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Datum isticanja NoExpiredServices=Nema istekle aktivne usluge ListOfServicesToExpireWithDuration=Lista usluga pred isticanje za %s dana @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Kontakt kupca za potpisivanje ugovora HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/bs_BA/cron.lang b/htdocs/langs/bs_BA/cron.lang index 9d02c089388..230fdb79da2 100644 --- a/htdocs/langs/bs_BA/cron.lang +++ b/htdocs/langs/bs_BA/cron.lang @@ -26,7 +26,7 @@ CronCommand=Komanda CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Komentar CronFieldMandatory=Polja %s su obavezna CronErrEndDateStartDt=Datum završetka ne može biti prije datuma početka StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Iskljući CronTaskInactive=This job is disabled (not scheduled) CronId=ID @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/bs_BA/datapolicy.lang b/htdocs/langs/bs_BA/datapolicy.lang new file mode 100644 index 00000000000..6ca7b85b6be --- /dev/null +++ b/htdocs/langs/bs_BA/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Kupac +DATAPOLICY_TIERS_PROSPECT = Mogući klijent +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dobavljač +DATAPOLICY_CONTACT_CLIENT = Kupac +DATAPOLICY_CONTACT_PROSPECT = Mogući klijent +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dobavljač +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bs_BA/dict.lang b/htdocs/langs/bs_BA/dict.lang index d99dd8d4a81..3fba8165d1b 100644 --- a/htdocs/langs/bs_BA/dict.lang +++ b/htdocs/langs/bs_BA/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holandija CountryHU=Mađarska CountryRU=Rusija CountrySE=Švedska -CountryCI=Obala Slonovače +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Gospođa +CivilityMMEShort=Gospođa CivilityMR=Gospodin +CivilityMRShort=Gospodin CivilityMLE=Gospođica CivilityMTRE=Master CivilityDR=Doktor diff --git a/htdocs/langs/bs_BA/ecm.lang b/htdocs/langs/bs_BA/ecm.lang index ae5d1288de0..e91a29eb4ff 100644 --- a/htdocs/langs/bs_BA/ecm.lang +++ b/htdocs/langs/bs_BA/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ručni direktorij ECMSectionAuto=Automatski direktorij ECMSectionsManual=Ručna struktura ECMSectionsAuto=Automatska struktura +ECMSectionsMedias=Medias tree ECMSections=Direktoriji ECMRoot=ECM Root ECMNewSection=Novi direktorij @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Broj fajlova u poddirektoriju ECMCreationUser=Kreator ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatski direktoriji se popunjavaju automatski nakon dodavanja dokumenata sa kartice elementa.
    * Manuelni direktoriji se mogu koristit za snimanje dokumenata koji nisu povezani za određeni element. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Direktorij %s je obrisan. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Traži po ključnim riječima diff --git a/htdocs/langs/bs_BA/errors.lang b/htdocs/langs/bs_BA/errors.lang index 864a09e3e63..25fa336f994 100644 --- a/htdocs/langs/bs_BA/errors.lang +++ b/htdocs/langs/bs_BA/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/bs_BA/externalsite.lang b/htdocs/langs/bs_BA/externalsite.lang deleted file mode 100644 index 54a33f638e8..00000000000 --- a/htdocs/langs/bs_BA/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Podesi link za eksterni web sajt -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modul ExternalSite nije konfigurisan kako treba. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/bs_BA/ftp.lang b/htdocs/langs/bs_BA/ftp.lang deleted file mode 100644 index 924bd5389f3..00000000000 --- a/htdocs/langs/bs_BA/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Postavke modula FTP klijent -NewFTPClient=Postavke nove FTP konekcije -FTPArea=Područje za FTP -FTPAreaDesc=Ovaj prozor prikazuje sadržaj FTP servera -SetupOfFTPClientModuleNotComplete=Postavke modula FTP klijent nisu završene -FTPFeatureNotSupportedByYourPHP=Vaš PHP ne podržava FTP funkcije -FailedToConnectToFTPServer=Neuspjelo povezivanje na FTP server (server %s port %s) -FailedToConnectToFTPServerWithCredentials=Neuspio login na FTP server sa definisanim login/šifra -FTPFailedToRemoveFile=Neuspjelo uklanjanje fajla %s. -FTPFailedToRemoveDir=Neuspjelo uklanjanje direktorija %s (Provjerite dozvole i da li je direktorij prazan) -FTPPassiveMode=Pasivni način -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/bs_BA/holiday.lang b/htdocs/langs/bs_BA/holiday.lang index 76dc1b6154c..e6823a7116c 100644 --- a/htdocs/langs/bs_BA/holiday.lang +++ b/htdocs/langs/bs_BA/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Kadrovska služba -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Mjesečni izvještaj MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Datum početka @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Morate odabrati datum početka. NoDateFin=Morate odabrati datum završetka. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Razlog UserCP=Korisnik ErrorAddEventToUserCP=Došlo je do greške prilikom dodavanja izuzetnog odsustva. AddEventToUserOkCP=Dodavanje izuzetno odsustva je kopmletirano. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Prethodno stanje NewSoldeCP=Novo stanje alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupe +users=Korisnici +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/bs_BA/hrm.lang b/htdocs/langs/bs_BA/hrm.lang index 1e104221bc4..e7fb5192894 100644 --- a/htdocs/langs/bs_BA/hrm.lang +++ b/htdocs/langs/bs_BA/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Employees @@ -20,13 +20,14 @@ Employee=Zaposlenik NewEmployee=New employee ListOfEmployees=List of employees HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs +JobPosition=Job +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozicija -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/bs_BA/install.lang b/htdocs/langs/bs_BA/install.lang index 42302ea3b5d..ad77b76a54f 100644 --- a/htdocs/langs/bs_BA/install.lang +++ b/htdocs/langs/bs_BA/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Konfiguracijska datoteka %s je slobodna za pisanje. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Ovaj PHP podržava varijable POST i GET. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Ovaj PHP podržava sesije. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'. ErrorFailedToCreateDatabase=Failed to create database '%s'. ErrorFailedToConnectToDatabase=Failed to connect to database '%s'. ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. -ErrorPHPVersionTooLow=PHP version too old. Version %s is required. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Database '%s' already exists. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/bs_BA/loan.lang b/htdocs/langs/bs_BA/loan.lang index ac858f1094f..13bb2ee9644 100644 --- a/htdocs/langs/bs_BA/loan.lang +++ b/htdocs/langs/bs_BA/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Financial commitment InterestAmount=Interest CapitalRemain=Capital remain TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Configuration of the module loan -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edit financial commitment diff --git a/htdocs/langs/bs_BA/mailmanspip.lang b/htdocs/langs/bs_BA/mailmanspip.lang index bab4b3576b4..6ff3ac9f770 100644 --- a/htdocs/langs/bs_BA/mailmanspip.lang +++ b/htdocs/langs/bs_BA/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=A Mailman update will be performed SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) diff --git a/htdocs/langs/bs_BA/mails.lang b/htdocs/langs/bs_BA/mails.lang index 1c39ee93317..4247f427a42 100644 --- a/htdocs/langs/bs_BA/mails.lang +++ b/htdocs/langs/bs_BA/mails.lang @@ -7,10 +7,10 @@ MailCard=Kartica e-pošte MailRecipients=Primaoci MailRecipient=Primalac MailTitle=Opis -MailFrom=Pošiljalac +MailFrom=Od MailErrorsTo=Greške prema MailReply=Odgovori na -MailTo=Primalac(oci) +MailTo=Račun za MailToUsers=To user(s) MailCC=Kopiraj na MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 6bbe061ed7e..8ee6fac4cb2 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=8 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Šablon za ovu vrstu emaila nije dostupan AvailableVariables=Dostupne zamjenske varijable NoTranslation=Nema prevoda Translation=Prevod +Translations=Translations CurrentTimeZone=Vremenska zona PHP (servera) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valjan Approve=Odobriti Disapprove=Odbij ReOpen=Opet otvori +OpenVerb=Otvoren Upload=Upload ToLink=Link Select=Odaberi @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Nije definirana korisnička grupa Password=Šifra -PasswordRetype=Ponovno upišite šifru +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Mnoge osobine/moduli su onemogućeni pri ovoj demostraciji. Name=Naziv NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Opis DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Šablon dokumenta DefaultModel=Defaultni šablon dokumenta Action=Događaj @@ -344,7 +353,7 @@ KiloBytes=kilobajta MegaBytes=megabajta GigaBytes=gigabajta TeraBytes=terabajta -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Događaji o ovom članu ActionsOnProduct=Događaji o ovom proizvodu +ActionsOnAsset=Events for this fixed asset NActionsLate=%s kasne ToDo=To do Completed=Završeno @@ -517,6 +527,7 @@ or=ili Other=Ostalo Others=Drugi OtherInformations=Other information +Workflow=Workflow - Tok rada Quantity=Količina Qty=Kol ChangedBy=Izmijenio @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Priložene datoteke i dokumenti JoinMainDoc=Spoji glavni dokument +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Osobina onemogućena MoveBox=Pomjeri prikaz Offered=Ponuđeno NotEnoughPermissions=Nemate dozvolu za ovu akciju +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Naziv sesije Method=Metoda Receive=Primiti @@ -798,6 +811,7 @@ URLPhoto=URL fotografije/logotipa SetLinkToAnotherThirdParty=Link prema drugom subjektu LinkTo=Link ka LinkToProposal=Link ka prijedlogu +LinkToExpedition= Link to expedition LinkToOrder=Link ka narudžbi LinkToInvoice=Link na fakturu LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Skidanje DownloadDocument=Skidanje dokumenta +DownloadSignedDocument=Download signed document ActualizeCurrency=Ažuriraj kurs valute Fiscalyear=Fiskalna godina ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Slanje kupcu SearchIntoExpenseReports=Izvještaj o troškovima SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Stopa +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Deaktiviraj +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interni korisnik +ExternalUser=Vanjski korisnik diff --git a/htdocs/langs/bs_BA/members.lang b/htdocs/langs/bs_BA/members.lang index dd10392002d..e8ed7ded6de 100644 --- a/htdocs/langs/bs_BA/members.lang +++ b/htdocs/langs/bs_BA/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=For security reasons, you must be granted permissions to edit all users to be able to link a member to a user that is not yours. SetLinkToUser=Link to a Dolibarr user SetLinkToThirdParty=Link to a Dolibarr third party -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=List of members MembersListToValid=List of draft members (to be validated) MembersListValid=List of valid members @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Member id +MemberId=Member Id +MemberRef=Member Ref NewMember=New member MemberType=Member type MemberTypeId=Member type id @@ -159,11 +160,11 @@ HTPasswordExport=htpassword file generation NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Complementary action on recording -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account MoreActionInvoiceOnly=Create an invoice with no payment -LinkToGeneratedPages=Generate visit cards +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. DocForAllMembersCards=Generate business cards for all members DocForOneMemberCards=Generate business cards for a particular member @@ -218,3 +219,5 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang index 4ef2a28837a..dd9a1a47906 100644 --- a/htdocs/langs/bs_BA/other.lang +++ b/htdocs/langs/bs_BA/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Manage members of a foundation DemoFundation2=Manage members and bank account of a foundation DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash desk +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Company with multiple activities (all main modules) @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Back to login page AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
    In this mode, Dolibarr can't know nor change your password.
    Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -303,3 +309,31 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Close +Autofill = Autofill + +# externalsite +ExternalSiteSetup=Podesi link za eksterni web sajt +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Modul ExternalSite nije konfigurisan kako treba. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Neuspjelo uklanjanje fajla %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Pasivni način +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/bs_BA/propal.lang b/htdocs/langs/bs_BA/propal.lang index af3d9ae24cd..ed684c3e570 100644 --- a/htdocs/langs/bs_BA/propal.lang +++ b/htdocs/langs/bs_BA/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=No draft proposals CopyPropalFrom=Kreiraj poslovni prijedlog kopiranje postojećeg prijedloga CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Default commercial proposal validity duration (in days) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Availability delay SetAvailability=Set availability delay AfterOrder=after order OtherProposals=Other proposals + ##### Availability ##### AvailabilityTypeAV_NOW=Odmah AvailabilityTypeAV_1W=1 week AvailabilityTypeAV_2W=2 weeks AvailabilityTypeAV_3W=3 weeks AvailabilityTypeAV_1M=1 month -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representative following-up proposal TypeContact_propal_external_BILLING=Kontakt za fakturu kupca TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) DefaultModelPropalCreate=Default model creation DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odbij +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/bs_BA/stocks.lang b/htdocs/langs/bs_BA/stocks.lang index f9911423073..f78217716f8 100644 --- a/htdocs/langs/bs_BA/stocks.lang +++ b/htdocs/langs/bs_BA/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Započeto ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/bs_BA/ticket.lang b/htdocs/langs/bs_BA/ticket.lang index c92ba7c169c..d8f61a4a267 100644 --- a/htdocs/langs/bs_BA/ticket.lang +++ b/htdocs/langs/bs_BA/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Potpis -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Novi korisnik NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/bs_BA/users.lang b/htdocs/langs/bs_BA/users.lang index 69b5907a403..c0d6210a338 100644 --- a/htdocs/langs/bs_BA/users.lang +++ b/htdocs/langs/bs_BA/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Ukloni iz grupe PasswordChangedAndSentTo=Šifra promijenjena i poslana korisniku %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Zahtjev za promjenu šifre za %s poslana na %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Korisnici i grupe @@ -68,7 +68,6 @@ CreateDolibarrLogin=Kreiraj korisnika CreateDolibarrThirdParty=Napravi subjekat LoginAccountDisableInDolibarr=Račun isključen u Dolibarru. UsePersonalValue=Koristite lične vrijednosti -InternalUser=Interni korisnik ExportDataset_user_1=Users and their properties DomainUser=Korisnik domene %s Reactivate=Reaktivirati @@ -114,7 +113,7 @@ UserLogoff=Odjava korisnika UserLogged=Korisnik prijavljen DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index 725c5501a4a..35a6fd4b114 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -30,7 +30,7 @@ ChartOfSubaccounts=Pla de comptes individuals ChartOfIndividualAccountsOfSubsidiaryLedger=Pla de comptes individuals del llibre major CurrentDedicatedAccountingAccount=Compte dedicat actual AssignDedicatedAccountingAccount=Compte nou per a assignar -InvoiceLabel=Etiqueta de factura +InvoiceLabel=Nom de la factura OverviewOfAmountOfLinesNotBound=Vista general de la quantitat de línies no comptabilitzades en un compte comptable OverviewOfAmountOfLinesBound=Vista general de la quantitat de línies ja comptabilitzades en un compte comptable OtherInfo=Una altra informació @@ -48,22 +48,24 @@ CountriesNotInEEC=Països no integrats a la CEE CountriesInEECExceptMe=Països a la CEE excepte %s CountriesExceptMe=Tots els països, excepte %s AccountantFiles=Exporta documents d'origen -ExportAccountingSourceDocHelp=Amb aquesta eina, podeu exportar els esdeveniments d'origen (llista en CSV i PDF) que s'utilitzen per a generar la vostra comptabilitat. +ExportAccountingSourceDocHelp=Amb aquesta eina, podeu cercar i exportar els esdeveniments d'origen que s'utilitzen per a generar la vostra comptabilitat.
    El fitxer ZIP exportat contindrà les llistes dels elements sol·licitats en CSV, així com els seus fitxers adjunts en el seu format original (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Per a exportar els vostres diaris, utilitzeu l'entrada de menú %s - %s. -VueByAccountAccounting=Veure per compte comptable -VueBySubAccountAccounting=Veure-ho per subcomptes comptables +ExportAccountingProjectHelp=Especifiqueu un projecte si només necessiteu un informe comptable per a un projecte concret. Els informes de despeses i els pagaments del préstec no s'inclouen als informes del projecte. +VueByAccountAccounting=Visualització per compte comptable +VueBySubAccountAccounting=Visualització per subcompte comptable MainAccountForCustomersNotDefined=Compte comptable per a clients no definida en la configuració MainAccountForSuppliersNotDefined=Compte comptable principal per a proveïdors no definit a la configuració MainAccountForUsersNotDefined=Compte comptable per a usuaris no de definit en la configuració MainAccountForVatPaymentNotDefined=Compte comptable per a IVA no definida en la configuració MainAccountForSubscriptionPaymentNotDefined=Compte comptable per a IVA no definida en la configuració del mòdul +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Àrea de comptabilitat AccountancyAreaDescIntro=L'ús del mòdul de comptabilitat es realitza en diverses etapes: -AccountancyAreaDescActionOnce=Les següents accions s'executen normalment per una sola vegada, o un cop l'any ... +AccountancyAreaDescActionOnce=Les accions següents s'executen normalment una sola vegada o una vegada a l'any... AccountancyAreaDescActionOnceBis=Cal fer els passos següents per a estalviar-vos temps en el futur suggerint-vos automàticament el compte comptable predeterminat correcte quan transferiu dades a la comptabilitat -AccountancyAreaDescActionFreq=Les següents accions s'executen normalment cada mes, setmana o dia per empreses molt grans ... +AccountancyAreaDescActionFreq=Les accions següents s'executen normalment cada mes, setmana o dia per empreses molt grans... AccountancyAreaDescJournalSetup=PAS %s: comproveu el contingut de la vostra llista de diari des del menú %s AccountancyAreaDescChartModel=PAS %s: Comproveu que existeix un model de pla comptable o creeu-ne un des del menú %s @@ -94,7 +96,7 @@ Addanaccount=Afegir un compte comptable AccountAccounting=Compte comptable AccountAccountingShort=Compte SubledgerAccount=Subcompte comptable -SubledgerAccountLabel=Títol del subcompte comptable +SubledgerAccountLabel=Nom del compte del llibre major ShowAccountingAccount=Mostrar diari de comptes ShowAccountingJournal=Mostrar diari comptable ShowAccountingAccountInLedger=Mostra el compte comptable al Llibre major @@ -161,57 +163,61 @@ BANK_DISABLE_DIRECT_INPUT=Desactiva el registre directe de transaccions al compt ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilita l'exportació d'esborrany en el diari ACCOUNTANCY_COMBO_FOR_AUX=Activa la llista combinada per a un compte subsidiari (pot ser lent si tens molts tercers, trenca la capacitat de cerca en una part del valor) ACCOUNTING_DATE_START_BINDING=Definiu una data per a començar la vinculació i transferència a la comptabilitat. Per sota d’aquesta data, les transaccions no es transferiran a la comptabilitat. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=En el cas de transferència de comptabilitat, seleccioneu el període a mostrar per defecte +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=En la transferència comptable, quin és el període seleccionat per defecte -ACCOUNTING_SELL_JOURNAL=Diari de venda -ACCOUNTING_PURCHASE_JOURNAL=Diari de compra -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diaris varis +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Diari de l'informe de despeses -ACCOUNTING_SOCIAL_JOURNAL=Diari social +ACCOUNTING_MISCELLANEOUS_JOURNAL=Diari general ACCOUNTING_HAS_NEW_JOURNAL=Té un nou Diari +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Diari social ACCOUNTING_RESULT_PROFIT=Compte de comptes de resultats (benefici) ACCOUNTING_RESULT_LOSS=Compte de resultats comptable (pèrdua) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Revista de tancament -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte de comptabilitat de la transferència bancària de transició +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Compte de transferència bancària transitòria -ACCOUNTING_ACCOUNT_SUSPENSE=Compte comptable d'espera -DONATION_ACCOUNTINGACCOUNT=Compte comptable per a registrar les donacions -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Compte comptable per a registrar les donacions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Compte comptable per defecte per a registrar el dipòsit del client -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Emmagatzema el compte del client com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual per a les línies de pagament inicial romandrà buit) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Emmagatzema el compte del proveïdor com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual de les línies de pagament inicial romandrà buit) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Compte comptable per defecte per als productes comprats (utilitzat si no es defineix en el producte) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Compte de comptabilitat per defecte dels productes comprats a la CEE (utilitzat si no està definit a la taula de productes) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Compte de comptabilitat per defecte dels productes comprats i importats fora de la CEE (utilitzat si no està definit a la taula de productes) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Compte comptable per defecte pels productes venuts (s'utilitza si no es defineix en el full de producte) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Compte comptable per defecte per als productes venuts a la CEE (utilitzat si no es defineix en el producte) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Compte comptable per defecte per als productes venuts d'exportació (utilitzat si no es defineix en el producte) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte comptable per defecte per als serveis adquirits (s'utilitza si no es defineix en el full de servei) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Compte de comptabilitat per defecte dels serveis comprats a la CEE (utilitzat si no està definit a la taula de serveis) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Compte de comptabilitat per defecte dels serveis comprats i importats fora de la CEE (utilitzat si no està definit a la taula de serveis) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte comptable per defecte per als serveis venuts (s'utilitza si no es defineix en el full de servei) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Compte comptable per defecte per als serveis venuts a la CEE (utilitzat si no es defineix en el servei) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Compte comptable per defecte per als serveis venuts i exportats fora de la CEE (utilitzat si no es defineix en el servei) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tipus de document Docdate=Data Docref=Referència -LabelAccount=Etiqueta de compte -LabelOperation=Etiqueta de l'operació +LabelAccount=Nom del compte +LabelOperation=Nom de l'operació Sens=Direcció AccountingDirectionHelp=Per a un compte comptable d'un client, utilitzeu Crèdit per a registrar un pagament que heu rebut
    Per a un compte comptable d'un proveïdor, utilitzeu Dèbit per a registrar el pagament que heu fet LetteringCode=Codi de retolació Lettering=Lletres Codejournal=Diari -JournalLabel=Títol de Diari +JournalLabel=Nom del diari NumPiece=Número de peça TransactionNumShort=Número de transacció -AccountingCategory=Grup personalitzat +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Agrupa per compte major GroupBySubAccountAccounting=Agrupa per subcompte comptable AccountingAccountGroupsDesc=Podeu definir aquí alguns grups de comptes comptables. S'utilitzaran per a informes comptables personalitzats. @@ -224,7 +230,7 @@ DeleteMvt=Elimina algunes línies de la comptabilitat DelMonth=Mes a eliminar DelYear=Any a eliminar DelJournal=Diari per a suprimir -ConfirmDeleteMvt=Això suprimirà totes les línies de comptabilitat per a l'any/mes i/o per a un diari específic (cal almenys un criteri). Haureu de reutilitzar la característica '%s' per a tornar a tenir el registre suprimit al llibre major. +ConfirmDeleteMvt=Això suprimirà totes les línies de comptabilitat per a l'any/mes i/o per a un diari específic (cal almenys un criteri). Haureu de reutilitzar la característica «%s» per a tornar a tenir el registre suprimit al llibre major. ConfirmDeleteMvtPartial=Això suprimirà la transacció de la comptabilitat (se suprimiran totes les línies relacionades amb la mateixa transacció) FinanceJournal=Diari de finances ExpenseReportsJournal=Informe-diari de despeses @@ -265,13 +271,13 @@ Reconcilable=Reconciliable TotalVente=Total turnover before tax TotalMarge=Marge total de vendes -DescVentilCustomer=Consulti aquí la llista de línies de factures de client vinculades (o no) a comptes comptables de producte -DescVentilMore=En la majoria dels casos, si utilitzeu productes o serveis predefinits i poses el número de compte a la fitxa de producte/servei, l'aplicació serà capaç de fer tots els vincles entre les línies de factura i els comptes comptables del vostre pla comptable, només amb un clic mitjançant el botó «%s». Si el compte no està col·locat a la fitxa del producte/servei o si encara hi ha alguna línia no vinculada a cap compte, haureu de fer una vinculació manual a partir del menú «%s». -DescVentilDoneCustomer=Consulta aquí la llista de línies de factures a clients i els seus comptes comptables de producte -DescVentilTodoCustomer=Comptabilitza les línies de factura encara no comptabilitzades amb un compte comptable de producte -ChangeAccount=Canvia el compte comptable de producte/servei per les línies seleccionades amb el següent compte comptable: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consulteu aquí la llista de les línies de facturació dels proveïdors vinculades o encara no lligades a un compte comptable de producte (només es poden veure els registres no transferits a comptabilitat) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consulteu aquí la llista de les línies de venedors de factures i el seu compte comptable DescVentilTodoExpenseReport=Línies d'informes de despeses comptabilitzades encara no comptabilitzades amb un compte comptable de tarifa DescVentilExpenseReport=Consulteu aquí la llista de les línies d'informe de despeses vinculada (o no) a un compte comptable corresponent a tarifa @@ -279,31 +285,31 @@ DescVentilExpenseReportMore=Si poseu el compte comptable sobre les línies de l' DescVentilDoneExpenseReport=Consulteu aquí la llista de les línies d'informes de despeses i el seu compte comptable de comissions Closure=Tancament anual -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Valida i bloqueja el registre... +DescClosure=Consulta aquí el nombre de moviments per mes encara no validats i bloquejats +OverviewOfMovementsNotValidated=Visió general dels moviments no validats i bloquejats +AllMovementsWereRecordedAsValidated=Tots els moviments es van registrar com a validats i bloquejats +NotAllMovementsCouldBeRecordedAsValidated=No tots els moviments es van poder registrar com a validats i bloquejats +ValidateMovements=Validate and lock movements... DescValidateMovements=Queda prohibida qualsevol modificació o supressió de registres. Totes les entrades d’un exercici s’han de validar, en cas contrari, el tancament no serà possible ValidateHistory=Comptabilitza automàticament AutomaticBindingDone=Enllaços automàtics fets (%s): l'enllaç automàtic no és possible per a alguns registres (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable perquè està en ús -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Moviment no equilibrat correctament. Dèbit = %s i crèdit = %s Balancing=Saldo FicheVentilation=Fitxa de comptabilització GeneralLedgerIsWritten=Els assentaments s'han escrit al Llibre Major GeneralLedgerSomeRecordWasNotRecorded=Alguns dels assentaments no van poder ser registrats al diari. Si no hi ha cap altre missatge d'error, probablement és perquè ja es van registrar al diari. NoNewRecordSaved=No hi ha més registres per a transferir -ListOfProductsWithoutAccountingAccount=Llista de productes no comptabilitzats en cap compte comptable +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Canvia la comptabilització Accounted=Comptabilitzat en el llibre major NotYetAccounted=Encara no s'ha traslladat a la comptabilitat ShowTutorial=Mostrar Tutorial NotReconciled=No conciliat WarningRecordWithoutSubledgerAreExcluded=Avís, totes les línies sense un compte de registre secundari definit es filtren i s'exclouen d'aquesta vista -AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +AccountRemovedFromCurrentChartOfAccount=Compte comptable que no existeix al pla comptable actual ## Admin BindingOptions=Opcions d'enquadernació @@ -319,9 +325,10 @@ AccountingJournalType1=Operacions diverses AccountingJournalType2=Vendes AccountingJournalType3=Compres AccountingJournalType4=Banc -AccountingJournalType5=Informe de despeses +AccountingJournalType5=Informes de despeses AccountingJournalType8=Inventari AccountingJournalType9=Haver +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Aquest diari ja està en ús AccountingAccountForSalesTaxAreDefinedInto=Nota: el compte de comptes de l'impost de vendes es defineix al menú %s - %s NumberOfAccountancyEntries=Nombre d'entrades @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Nombre de moviments ACCOUNTING_DISABLE_BINDING_ON_SALES=Desactiva la vinculació i transferència de comptabilitat en vendes (les factures dels clients no es tindran en compte a la comptabilitat) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactiva la vinculació i transferència a la comptabilitat de les compres (les factures de proveïdors no es tindran en compte a la comptabilitat) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Desactiva la vinculació i transferència de comptes en els informes de despeses (els informes de despeses no es tindran en compte a la comptabilitat) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Marca les línies exportades com a Exportades (per a modificar una línia, hauràs de suprimir tota la transacció i tornar-la a transferir a la comptabilitat) -NotifiedValidationDate=Validar i bloquejar les entrades exportades (el mateix efecte que la funció "Tancament", la modificació i la supressió de les línies DEFINITIVAMENT no seran possibles) +NotifiedValidationDate=Validar i bloquejar les entrades exportades (mateix efecte que la característica "%s", la modificació i la supressió de les línies DEFINITIVAMENT no seran possibles) DateValidationAndLock=Validació de data i bloqueig ConfirmExportFile=Confirmació de la generació del fitxer d'exportació comptable? ExportDraftJournal=Exporta els esborranys del llibre @@ -398,19 +407,24 @@ Calculated=Calculat Formula=Fórmula ## Reconcile -Unlettering=Unreconcile -AccountancyNoLetteringModified=No reconcile modified -AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified -AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified -AccountancyNoUnletteringModified=No unreconcile modified -AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified -AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=No reconciliar +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=Cap conciliació modificada +AccountancyOneLetteringModifiedSuccessfully=Una conciliació modificada amb èxit +AccountancyLetteringModifiedSuccessfully=La reconciliació %s s'ha modificat correctament +AccountancyNoUnletteringModified=No s'ha modificat cap desacord +AccountancyOneUnletteringModifiedSuccessfully=S'ha desfet correctament una conciliació +AccountancyUnletteringModifiedSuccessfully=%s conciliació desfeta correctament ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Confirmació d'esborrament massiu -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeleteBookkeepingWritingQuestion=Això suprimirà la transacció de la comptabilitat (se suprimiran totes les línies relacionades amb la mateixa transacció) Esteu segur que voleu suprimir els registres seleccionats %s? ## Error SomeMandatoryStepsOfSetupWereNotDone=No s'han fet alguns passos obligatoris de configuració, si us plau, completeu-los @@ -424,19 +438,20 @@ Binded=Línies comptabilitzades ToBind=Línies a comptabilitzar UseMenuToSetBindindManualy=Línies encara no enllaçades, utilitzeu el menú %s per a fer l'enllaç manualment SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Ho sentim, aquest mòdul no és compatible amb la funció experimental de les factures de situació -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code -AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 -AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +AccountancyErrorMismatchLetterCode=No coincideix en el codi de conciliació +AccountancyErrorMismatchBalanceAmount=El saldo (%s) no és igual a 0 +AccountancyErrorLetteringBookkeeping=S'han produït errors relacionats amb les transaccions: %s +ErrorAccountNumberAlreadyExists=El número de comptabilitat %s ja existeix ## Import ImportAccountingEntries=Entrades de comptabilitat ImportAccountingEntriesFECFormat=Entrades comptables: format FEC FECFormatJournalCode=Diari de codis (JournalCode) -FECFormatJournalLabel=Etiqueta de diari (JournalLib) +FECFormatJournalLabel=Nom de diari (JournalLib) FECFormatEntryNum=Número de peça (EcritureNum) FECFormatEntryDate=Data de la peça (EcritureDate) FECFormatGeneralAccountNumber=Número de compte general (CompteNum) -FECFormatGeneralAccountLabel=Etiqueta de compte general (CompteLib) +FECFormatGeneralAccountLabel=Nom de compte general (CompteLib) FECFormatSubledgerAccountNumber=Número de compte de Subledger (CompAuxNum) FECFormatSubledgerAccountLabel=Número de compte de Subledger (CompAuxLib) FECFormatPieceRef=Peça ref. (PieceRef) @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Codi multidivisa (Idevise) DateExport=Data d'exportació WarningReportNotReliable=Avís, aquest informe no està basat en el Llibre Major, de manera que no conté assentaments modificats manualment en el Llibre Major. Si el registre diari està actualitzat, la vista de comptes és més precisa. ExpenseReportJournal=Diari d'informe de despeses -InventoryJournal=Diari d'inventari NAccounts=comptes %s diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index cc0fcafdd4c..48dc1627b3a 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=Imprimeix la referència i el període de la línia del producte en PDF -BoldLabelOnPDF=Imprimeix l'etiqueta del producte en negreta en PDF +BoldLabelOnPDF=Imprimeix el nom del producte en negreta en PDF Foundation=Entitat Version=Versió Publisher=Publicador @@ -31,7 +31,7 @@ SessionId=ID de sessió SessionSaveHandler=Modalitat de desar sessions SessionSavePath=Desa la ubicació de la sessió PurgeSessions=Purga de sessions -ConfirmPurgeSessions=Estàs segur de voler purgar totes les sessions? Es desconnectaran tots els usuaris (excepte tu mateix) +ConfirmPurgeSessions=Estàs segur de voler purgar totes les sessions? Això desconnectarà tots els usuaris (excepte tu mateix). NoSessionListWithThisHandler=El gestor de sessions configurat al vostre PHP no permet llistar totes les sessions en execució. LockNewSessions=Bloquejar connexions noves ConfirmLockNewSessions=Esteu segur que voleu restringir qualsevol nova connexió a Dolibarr només a vosaltres mateixos? Només l'usuari %s podrà connectar-se després d'això. @@ -51,8 +51,6 @@ ClientSortingCharset="Collation" del client WarningModuleNotActive=Mòdul %s no actiu WarningOnlyPermissionOfActivatedModules=Aquí només es mostren els permisos relacionats amb els mòduls activats. Pots activar altres mòduls en la pàgina Inici->Configuració->Mòduls. DolibarrSetup=Instal·lació/Actualització de Dolibarr -InternalUser=Usuari intern -ExternalUser=Usuari extern InternalUsers=Usuaris interns ExternalUsers=Usuaris externs UserInterface=Interfície d'usuari @@ -74,14 +72,14 @@ ErrorModuleRequireDolibarrVersion=Error, aquest mòdul requereix una versió %s ErrorDecimalLargerThanAreForbidden=Error, les precisions superiors a %s no estan suportades. DictionarySetup=Configuració de Diccionari Dictionary=Diccionaris -ErrorReservedTypeSystemSystemAuto=Els valors "sistema" i "systemauto" per al tipus estan reservats. Podeu utilitzar "user" com a valor per a afegir el vostre propi registre +ErrorReservedTypeSystemSystemAuto=El valor «system» i «systemauto» per al tipus està reservat. Podeu utilitzar «user» com a valor per a afegir el vostre propi registre ErrorCodeCantContainZero=El codi no pot contenir el valor 0 DisableJavascript=Desactivar les funcions Javascript DisableJavascriptNote=Nota: només amb finalitats de prova o depuració. Per a l'optimització de navegadors de text o de persones cegues, és possible que preferiu utilitzar la configuració al perfil de l'usuari UseSearchToSelectCompanyTooltip=A més, si teniu un gran nombre de tercers (> 100.000), podeu augmentar la velocitat establint la constant COMPANY_DONOTSEARCH_ANYWHERE a 1 a Configuració->Altres. La cerca es limitarà a l'inici de la cadena. UseSearchToSelectContactTooltip=A més, si teniu un gran nombre de tercers (> 100.000), podeu augmentar la velocitat establint la constant CONTACT_DONOTSEARCH_ANYWHERE a 1 a Configuració->Altres. La cerca es limitarà a l'inici de la cadena. -DelaiedFullListToSelectCompany=Esperar fins que es prem una tecla abans de carregar el contingut de la llista combinada de Tercers.
    Això pot augmentar el rendiment si teniu un gran nombre de tercers, però és menys convenient. -DelaiedFullListToSelectContact=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada de contactes.
    Això pot augmentar el rendiment si teniu un gran nombre de contactes, però és menys convenient. +DelaiedFullListToSelectCompany=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada de tercers.
    Això pot augmentar el rendiment si teniu un gran nombre de tercers, però és menys pràctic. +DelaiedFullListToSelectContact=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada de contactes.
    Això pot augmentar el rendiment si teniu un gran nombre de contactes, però és menys pràctic. NumberOfKeyToSearch=Nombre de caràcters per a activar la cerca: %s NumberOfBytes=Nombre de bytes SearchString=Cerca cadena @@ -106,11 +104,11 @@ NextValueForInvoices=Pròxim valor (factures) NextValueForCreditNotes=Pròxim valor (abonaments) NextValueForDeposit=Següent valor (bestreta) NextValueForReplacements=Pròxim valor (rectificatives) -MustBeLowerThanPHPLimit=Nota: actualment la vostra configuració PHP limita la mida màxima de fitxers per a la pujada a %s %s, independentment del valor d'aquest paràmetre. +MustBeLowerThanPHPLimit=Nota: actualment la vostra configuració de PHP limita la mida màxima dels fitxers per a pujar a %s %s, independentment del valor d'aquest paràmetre NoMaxSizeByPHPLimit=Cap limitació interna en el seu servidor PHP MaxSizeForUploadedFiles=Mida màxima per als fitxers a pujar (0 per a no permetre cap pujada) -UseCaptchaCode=Utilitzeu el codi gràfic (CAPTCHA) a la pàgina d'inici de sessió -AntiVirusCommand=Ruta completa cap al comandament antivirus +UseCaptchaCode=Utilitzeu el codi gràfic (CAPTCHA) a la pàgina d'inici de sessió i en algunes pàgines públiques +AntiVirusCommand=Camí complet a l'ordre antivirus AntiVirusCommandExample=Exemple per al dimoni ClamAv (requereix clamav-daemon): /usr/bin/clamdscan
    Exemple per a ClamWin (molt molt lent): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Més paràmetres a la línia d'ordres AntiVirusParamExample=Exemple per al dimoni de ClamAv: --fdpass
    Exemple per a ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" @@ -159,9 +157,9 @@ SystemInfo=Informació del sistema SystemToolsArea=Àrea utilitats del sistema SystemToolsAreaDesc=Aquesta àrea proporciona funcions d'administració. Utilitzeu el menú per a triar la funció necessària. Purge=Purga -PurgeAreaDesc=Aquesta pàgina us permet suprimir tots els fitxers generats o emmagatzemats per Dolibarr (fitxers temporals o tots els fitxers del directori %s ). Normalment no és necessari fer servir aquesta funció. Es proporciona com a solució alternativa als usuaris que allotgen Dolibarr amb un proveïdor que no ofereix permisos per a eliminar fitxers generats pel servidor web. +PurgeAreaDesc=Aquesta pàgina us permet suprimir tots els fitxers generats o emmagatzemats per Dolibarr (fitxers temporals o tots els fitxers del directori %s ). Normalment, l'ús d'aquesta funció no és necessari. Es proporciona com a solució alternativa als usuaris que allotgen Dolibarr amb un proveïdor que no ofereix permisos per a eliminar fitxers generats pel servidor web. PurgeDeleteLogFile=Suprimeix els fitxers de registre, inclosos %s definits per al mòdul Syslog (sense risc de perdre dades) -PurgeDeleteTemporaryFiles=Suprimeix tots els fitxers de registre i temporals (no hi ha risc de perdre dades). El paràmetre pot ser 'tempfilesold', 'logfiles' o tots dos 'tempfilesold+logfiles'. Nota: la supressió de fitxers temporals només es fa si el directori temporal es va crear fa més de 24 hores. +PurgeDeleteTemporaryFiles=Suprimeix tots els fitxers de registre i temporals (sense risc de perdre dades). El paràmetre pot ser «tempfilesold», «logfiles» o tots dos «tempfilesold+logfiles». Nota: L'eliminació dels fitxers temporals només es fa si el directori temporal es va crear fa més de 24 hores. PurgeDeleteTemporaryFilesShort=Suprimeix els fitxers de registre i temporals (sense risc de perdre dades) PurgeDeleteAllFilesInDocumentsDir=Suprimiu tots els fitxers del directori: %s.
    Això suprimirà tots els documents generats relacionats amb elements (tercers, factures, etc.), fitxers penjats al mòdul GED, còpies de seguretat de la base de dades i fitxers temporals. PurgeRunNow=Purgar @@ -177,11 +175,11 @@ RunCommandSummary=La còpia serà realitzada per la comanda següent BackupResult=Resultat de la còpia BackupFileSuccessfullyCreated=Arxiu de còpia generat correctament YouCanDownloadBackupFile=Ara es pot descarregar el fitxer generat -NoBackupFileAvailable=Cap còpia disponible +NoBackupFileAvailable=No hi ha fitxers de còpia de seguretat disponibles. ExportMethod=Mètode d'exportació ImportMethod=Mètode d'importació ToBuildBackupFileClickHere=Per a crear un fitxer de còpia de seguretat, feu clic aquí. -ImportMySqlDesc=Per a importar un fitxer de còpia de seguretat MySQL, podeu utilitzar phpMyAdmin mitjançant el vostre allotjament o utilitzar l’ordre mysql de la línia d’ordres.
    Per exemple: +ImportMySqlDesc=Per a importar un fitxer de còpia de seguretat de MySQL, podeu utilitzar phpMyAdmin mitjançant el vostre allotjament o utilitzar l'ordre mysql des de la línia d'ordres.
    Per exemple: ImportPostgreSqlDesc=Per a importar un fitxer de còpia de seguretat, heu d'utilitzar l'ordre pg_restore des de la línia d'ordres: ImportMySqlCommand=%s %s < elmeuarxiubackup.sql ImportPostgreSqlCommand=%s %s elmeuarxiubackup.sql @@ -195,8 +193,8 @@ ExportUseMySQLQuickParameterHelp=El paràmetre '--quick' ajuda a limitar el cons MySqlExportParameters=Paràmetres de l'exportació MySql PostgreSqlExportParameters= Paràmetres de l'exportació PostgreSQL UseTransactionnalMode=Utilitzar el mode transaccional -FullPathToMysqldumpCommand=Ruta completa de la comanda mysqldump -FullPathToPostgreSQLdumpCommand=ruta completa cap al comandament pg_dump +FullPathToMysqldumpCommand=Camí complet a l'ordre mysqldump +FullPathToPostgreSQLdumpCommand=Camí complet a l'ordre pg_dump AddDropDatabase=Afegir ordres DROP DATABASE AddDropTable=Afegir ordres DROP TABLE ExportStructure=Estructura @@ -210,7 +208,7 @@ AutoDetectLang=Autodetecta (idioma del navegador) FeatureDisabledInDemo=Opció deshabilitada en demo FeatureAvailableOnlyOnStable=Funcionalitat disponible únicament en versions estables oficials BoxesDesc=Els panells són components que mostren algunes dades que poden afegir-se per a personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activar', o fent clic en la paperera per a desactivar. -OnlyActiveElementsAreShown=Només els elements de mòduls activats són mostrats +OnlyActiveElementsAreShown=Només es mostren els elements dels mòduls habilitats. ModulesDesc=Els mòduls/aplicacions determinen quines funcions estan disponibles al programari. Alguns mòduls requereixen que es concedeixin permisos als usuaris després d'activar-lo. Feu clic al botó d'encesa/apagada %s de cada mòdul per a habilitar o desactivar un mòdul/aplicació. ModulesDesc2=Feu clic al botó de la roda %s per a configurar el mòdul/aplicació. ModulesMarketPlaceDesc=A internet podeu trobar més mòduls per a descarregar en pàgines web externes... @@ -235,7 +233,7 @@ DoliPartnersDesc=Llista d’empreses que ofereixen mòduls o funcions desenvolup WebSiteDesc=Llocs web de referència per a trobar més mòduls (no core)... DevelopYourModuleDesc=Algunes solucions per a desenvolupar el vostre propi mòdul... URL=URL -RelativeURL=URL relativa +RelativeURL=URL relatiu BoxesAvailable=Panells disponibles BoxesActivated=Panells activats ActivateOn=Activar a @@ -247,11 +245,11 @@ Required=Requerit UsedOnlyWithTypeOption=Utilitzat només per alguna opció de l'agenda Security=Seguretat Passwords=Contrasenyes -DoNotStoreClearPassword=Encripta les contrasenyes emmagatzemades a la base de dades (NO com a text sense format). Es recomana activar aquesta opció. -MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base de dades emmagatzemada a conf.php. Es recomana activar aquesta opció. -InstrucToEncodePass=Per a tenir la contrasenya codificada al fitxer conf.php, substituïu la línia
    $ dolibarr_main_db_pass="...";
    per
    $dolibarr_main_db_pass = "xifrat:%s"; +DoNotStoreClearPassword=Xifra les contrasenyes emmagatzemades a la base de dades (NO com a text sense format). És molt recomanable activar aquesta opció. +MainDbPasswordFileConfEncrypted=Xifra la contrasenya de la base de dades emmagatzemada a conf.php. És molt recomanable activar aquesta opció. +InstrucToEncodePass=Per a tenir la contrasenya codificada al fitxer conf.php, substituïu la línia
    $ dolibarr_main_db_pass="...";
    per
    $dolibarr_main_db_pass = "crypted:%s"; InstrucToClearPass=Per a tenir la contrasenya descodificada en el fitxer de configuració conf.php, reemplaça en aquest fitxer la línia
    $dolibarr_main_db_pass="crypted:...";
    per
    $dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protegeix els fitxers PDF generats. Això NO es recomana ja que trenca la generació massiva de PDF. +ProtectAndEncryptPdfFiles=Protegiu els fitxers PDF generats. Això NO es recomana perquè trenca la generació massiva de PDF. ProtectAndEncryptPdfFilesDesc=La protecció d’un document PDF el manté disponible per a llegir i imprimir amb qualsevol navegador PDF. Tanmateix, ja no és possible editar ni copiar. Tingueu en compte que l'ús d'aquesta funció fa que la creació d'un PDF combinat global no funcioni. Feature=Funció DolibarrLicense=Llicència @@ -279,7 +277,7 @@ PaperSize=Tipus de paper Orientation=Orientació SpaceX=Àrea X SpaceY=Àrea Y -FontSize=Mida de la font +FontSize=Mida del tipus de lletra Content=Contingut ContentForLines=Contingut per a mostrar a cada producte o servei (de la variable __LINES__ de Contingut) NoticePeriod=Preavís @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Nom host o ip del servidor SMTP (Per defecte en php.ini: < MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port del servidor SMTP (No definit en PHP en sistemes de tipus Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom servidor o ip del servidor SMTP (No definit en PHP en sistemes de tipus Unix) MAIN_MAIL_EMAIL_FROM=E-mail del remitent per e-mails automàtics (valor predeterminat a php.ini: %s) +EMailHelpMsgSPFDKIM=Per a evitar que els correus electrònics de Dolibarr siguin classificats com a correu brossa, assegureu-vos que el servidor estigui autoritzat a enviar correus electrònics des d'aquesta adreça mitjançant la configuració SPF i DKIM. MAIN_MAIL_ERRORS_TO=E-mail a utilitzar per als e-mails de missatges d'error (camp 'Errors-To' als e-mails enviats) MAIN_MAIL_AUTOCOPY_TO= Copia (Bcc) tots els correus enviats a MAIN_DISABLE_ALL_MAILS=Desactiva tot l'enviament de correu electrònic (per a proves o demostracions) @@ -303,15 +302,15 @@ MAIN_MAIL_SENDMODE=Mètode d'enviament de correu electrònic MAIN_MAIL_SMTPS_ID=ID d'autenticació SMTP (si el servidor requereix autenticació) MAIN_MAIL_SMTPS_PW=Contrasenya SMTP (si el servidor requereix autenticació) MAIN_MAIL_EMAIL_TLS=Utilitza el xifratge TLS (SSL) -MAIN_MAIL_EMAIL_STARTTLS=Ús d'encriptació TLS (STARTTLS) +MAIN_MAIL_EMAIL_STARTTLS=Utilitza el xifratge TLS (STARTTLS). MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Autoritza els certificats autosignats MAIN_MAIL_EMAIL_DKIM_ENABLED=Utilitzar DKIM per a generar firma d'email MAIN_MAIL_EMAIL_DKIM_DOMAIN=Domini d'email per a utilitzar amb dkim MAIN_MAIL_EMAIL_DKIM_SELECTOR=Nom del selector dkim MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Clau privada per a la firma dkim -MAIN_DISABLE_ALL_SMS=Desactivar globalment tot enviament de SMS (per mode de proves o demo) -MAIN_SMS_SENDMODE=Mètode d'enviament de SMS -MAIN_MAIL_SMS_FROM=Número de telèfon del remitent predeterminat per a l'enviament de SMS +MAIN_DISABLE_ALL_SMS=Desactiva tots els enviaments d'SMS (per a finalitats de prova o demostracions) +MAIN_SMS_SENDMODE=Mètode a utilitzar per a enviar SMS +MAIN_MAIL_SMS_FROM=Número de telèfon del remitent predeterminat per a l'enviament d'SMS MAIN_MAIL_DEFAULT_FROMTYPE=Remitent per defecte per a correus enviats manualment (adreça de correu d'usuari o d'empresa) UserEmail=Correu electrònic de l'usuari CompanyEmail=Correu electrònic de l'empresa @@ -358,14 +357,14 @@ LastActivationIP=Última IP d'activació LastActivationVersion=Última versió d'activació UpdateServerOffline=Actualitza el servidor fora de línia WithCounter=Gestiona un comptador -GenericMaskCodes=Podeu introduir qualsevol màscara de numeració. En aquesta màscara, es poden utilitzar les etiquetes següents:
    {000000} correspon a un número que s'incrementarà a cada %s. Introduïu tants zeros com la longitud desitjada del comptador. El comptador es completarà amb zeros des de l'esquerra per tal de tenir tants zeros com la màscara.
    {000000+000} igual que l'anterior però s'aplica un desplaçament corresponent al número a la dreta del signe + a partir del primer %s.
    {000000@x} igual que l'anterior, però el comptador es reinicia a zero quan s'arriba al mes x (x entre 1 i 12, o 0 per a utilitzar els primers mesos de l'any fiscal definits a la vostra configuració, o 99 torna a zero cada mes). Si s'utilitza aquesta opció i x és 2 o superior, també es requereix la seqüència {yy} {mm} o {yyyy} {mm}.
    {dd} dia (de l'1 al 31).
    {mm} mes (de l'1 al 12).
    {yy} , {yyyy} o {y} amb l'any sobre 2, 4 o 1 número.
    -GenericMaskCodes2= {cccc} el codi del client en n caràcters
    {cccc000} a09a4b739f17f8z. Aquest comptador dedicat al client es restableix al mateix temps que el comptador global.
    {tttt} El codi del tipus de tercers en n caràcters (vegeu el menú Inici - Configuració - Diccionari - Tipus de tercers). Si afegiu aquesta etiqueta, el comptador serà diferent per a cada tipus de tercer.
    +GenericMaskCodes=Podeu introduir qualsevol màscara de numeració. En aquesta màscara, es poden utilitzar les etiquetes següents:
    {000000} correspon a un número que s'incrementarà a cada %s. Introduïu tants zeros com la longitud desitjada del comptador. El comptador es completarà amb zeros des de l'esquerra per tal de tenir tants zeros com la màscara.
    {000000+000} igual que l'anterior, però s'aplica un desplaçament corresponent al número a la dreta del signe + a partir del primer %s.
    {000000@x} igual que l'anterior, però el comptador es reinicia a zero quan s'arriba al mes x (x entre 1 i 12, o 0 per a utilitzar els primers mesos de l'any fiscal definits a la vostra configuració, o 99 torna a zero cada mes). Si s'utilitza aquesta opció i x és 2 o superior, també es requereix la seqüència {yy} {mm} o {yyyy} {mm}.
    {dd} dia (de l'1 al 31).
    {mm} mes (de l'1 al 12).
    {yy} , {yyyy} o {y} amb l'any sobre 2, 4 o 1 número.
    +GenericMaskCodes2= {cccc} el codi del client en n caràcters
    {cccc000}. Aquest comptador dedicat al client es restableix al mateix temps que el comptador global.
    {tttt} El codi del tipus de tercers en n caràcters (vegeu el menú Inici - Configuració - Diccionari - Tipus de tercers). Si afegiu aquesta etiqueta, el comptador serà diferent per a cada tipus de tercer.
    GenericMaskCodes3=Qualsevol altre caràcter a la màscara es quedarà sense canvis.
    No es permeten espais
    GenericMaskCodes3EAN=La resta de caràcters de la màscara romandran intactes (excepte * o ? En 13a posició a EAN13).
    No es permeten espais.
    A EAN13, l'últim caràcter després de l'últim } a la 13a posició hauria de ser * o ? . Se substituirà per la clau calculada.
    GenericMaskCodes4a=Exemple en el 99 %s del tercer L'Empresa, amb data 31/01/2007:
    GenericMaskCodes4b=Exemple sobre un tercer creat el 31/03/2007:
    GenericMaskCodes4c=Exemple en un producte/servei creat el 31/03/2007:
    -GenericMaskCodes5=ABC{yy}{mm}-{000000} donarà ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX donarà 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} donaràIN0701-0099-A si el tipus d'empresa és 'Responsable Inscripto' amb codi per a tipus que és 'A_RI' +GenericMaskCodes5=ABC{yy}{mm}-{000000} donarà ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX donarà 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} donarà IN0701-0099-A si el tipus d'empresa és 'Responsable Inscripto' amb codi per a tipus que és 'A_RI' GenericNumRefModelDesc=Retorna un nombre creat d'acord amb una màscara definida. ServerAvailableOnIPOrPort=Servidor disponible a l'adreça %s al port %s ServerNotAvailableOnIPOrPort=Servidor no disponible en l'adreça %s al port %s @@ -390,7 +389,7 @@ ListOfDirectories=Llistat de directoris de plantilles OpenDocument ListOfDirectoriesForModelGenODT=Llista de directoris que contenen fitxers de plantilles amb format OpenDocument.

    Posa aquí l'adreça completa dels directoris.
    Afegeix un "intro" entre cada directori.
    Per a afegir un directori del mòdul GED, afegeix aquí DOL_DATA_ROOT/ecm/yourdirectoryname.

    Els fitxers d'aquests directoris han de tenir l'extensió .odt o .ods. NumberOfModelFilesFound=Nombre d'arxius de plantilles ODT/ODS trobats en aquest(s) directori(s) ExampleOfDirectoriesForModelGen=Exemples de sintaxi:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=Posant les següents etiquetes a la plantilla, obtindrà una substitució amb el valor personalitzat en generar el document: +FollowingSubstitutionKeysCanBeUsed=
    Per a saber com crear les teves plantilles de documents odt, abans d'emmagatzemar-les en aquests directoris, llegiu la documentació wiki: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Crear_un_modelo_de_documento_ODT FirstnameNamePosition=Posició del Nom/Cognoms DescWeather=Les imatges següents es mostraran al tauler de control quan el nombre d'accions posteriors arriba als valors següents: @@ -403,7 +402,7 @@ ResponseTimeout=Timeout de resposta SmsTestMessage=Missatge de prova de __PHONEFROM__ per __PHONETO__ ModuleMustBeEnabledFirst=El mòdul "%s" ha d'habilitar-se primer si necessita aquesta funcionalitat. SecurityToken=Clau per a protegir els URL -NoSmsEngine=No hi ha cap gestor d'enviament de SMS. Els gestors d'enviament de SMS no s'instal·len per defecte ja que depenen de cada proveïdor, però pot trobar-los a la plataforma %s +NoSmsEngine=No hi ha cap gestor de remitents d'SMS disponible. Un gestor de remitents d'SMS no està instal·lat amb la distribució predeterminada perquè depenen d'un proveïdor extern, però podeu trobar-ne alguns a %s PDF=PDF PDFDesc=Opcions globals de generació de PDF PDFOtherDesc=Opció PDF específica per a alguns mòduls @@ -416,8 +415,8 @@ HideDescOnPDF=Amaga la descripció dels productes HideRefOnPDF=Amaga la ref. dels productes HideDetailsOnPDF=Amaga els detalls de les línies de producte PlaceCustomerAddressToIsoLocation=Utilitza la posició estàndard francesa (La Poste) per a la posició d'adreça del client -Library=Llibreria -UrlGenerationParameters=Seguretat de les URL +Library=Biblioteca +UrlGenerationParameters=Paràmetres per a protegir els URL SecurityTokenIsUnique=Fer servir un paràmetre securekey únic per a cada URL? EnterRefToBuildUrl=Introduïu la referència de l'objecte %s GetSecuredUrl=Obteniu l'URL calculat @@ -439,8 +438,10 @@ Unique=Únic Boolean=Boleà (una casella de selecció) ExtrafieldPhone = Telèfon ExtrafieldPrice = Preu +ExtrafieldPriceWithCurrency=Preu amb moneda ExtrafieldMail = Correu electrònic -ExtrafieldUrl = Url +ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Llista de selecció ExtrafieldSelectList = Llista de selecció de table ExtrafieldSeparator=Separador (no és un camp) @@ -453,15 +454,15 @@ ComputedFormula=Camp calculat ComputedFormulaDesc=Podeu introduir aquí una fórmula utilitzant altres propietats de l’objecte o qualsevol codi PHP per a obtenir un valor calculat dinàmicament. Podeu utilitzar qualsevol fórmula compatible amb PHP, inclòs l'operador condicional «?» i els següents objectes globals: $db, $conf, $langs, $mysoc, $user, $object.
    ATENCIÓ: Només poden estar disponibles algunes propietats de $object. Si necessiteu una propietat no carregada, només cal que incorporeu l'objecte a la vostra fórmula com en el segon exemple.
    Utilitzar un camp calculat implica que no podreu introduir cap valor des de la interfície. A més, si hi ha un error de sintaxi, la fórmula pot no tornar res.

    Exemple de fórmula:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2 )

    Exemple per a tornar a carregar l'objecte
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Un altre exemple de fórmula per a forçar la càrrega de l'objecte i el seu objecte pare:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' Computedpersistent=Emmagatzemar el camp computat ComputedpersistentDesc=Els camps addicionals calculats s’emmagatzemaran a la base de dades, però el valor només es recalcularà quan es canviï l’objecte d’aquest camp. Si el camp calculat depèn d'altres objectes o dades globals, aquest valor pot ser incorrecte!! -ExtrafieldParamHelpPassword=Mantenir aquest camp buit significa que el valor s'emmagatzema sense xifrar (el camp només ha d'estar amagat amb una estrella sobre la pantalla).
    Establiu aquí el valor 'auto' per a utilitzar la regla de xifrat per defecte per a guardar la contrasenya a la base de dades (el valor llegit serà només el "hash", no hi haurà cap manera de recuperar el valor original) +ExtrafieldParamHelpPassword=Si deixeu aquest camp en blanc, vol dir que aquest valor s'emmagatzemarà sense xifratge (el camp només s'ha d'amagar amb una estrella a la pantalla).
    Establiu 'auto' per a utilitzar la regla de xifratge predeterminada per a desar la contrasenya a la base de dades (aleshores, el valor llegit serà només el hash, no hi ha manera de recuperar el valor original) ExtrafieldParamHelpselect=La llista de valors ha de ser un conjunt de línies amb un format del tipus clau,valor (on la clau no pot ser '0')

    per exemple:
    1,valor1
    2,valor2
    codi3,valor3
    ...

    Per a tenir la llista depenent d'una altra llista d'atributs complementaris:
    1,valor1|options_codi_llista_pare:clau_pare
    2,valor2|options_codi_llista_pare:clau_pare

    Per a tenir la llista depenent d'una altra llista:
    1,valor1|codi_llista_pare:clau_pare
    2,valor2|codi_llista_pare:clau_pare ExtrafieldParamHelpcheckbox=La llista de valor ha de ser un conjunt de línies del tipus clau,valor (on la clau no pot ser '0')

    per exemple:
    1,valor1
    2,valor2
    3,valor3
    ... ExtrafieldParamHelpradio=La llista de valor ha de ser un conjunt de línies del tipus clau,valor (on la clau no pot ser '0')

    per exemple:
    1,valor1
    2,valor2
    3,valor3
    ... -ExtrafieldParamHelpsellist=Llista de valors que provenen d’una taula
    Sintaxi: nom_taula:nom_camp:id_camp::filtresql
    Exemple: c_typent:libelle:id::filtresql

    - id_camp ha de ser necessàriament una clau primària numèrica
    - el filtresql és una condició SQL. Pot ser una prova simple (p.ex. active=1) per a mostrar només els valors actius
    També pots utilitzar $ID$ al filtre per a representar el ID de l'actual objecte en curs
    Per a utilitzar un SELECT al filtre, utilitzeu la paraula clau $SEL$ per a evitar la protecció anti injecció.
    Si vols filtrar camps addicionals utilitza la sintaxi extra.nom_camp=... (on nom_camp és el codi del camp addicional)

    Per a tenir la llista en funció d’una altra llista d’atributs complementaris:
    c_typent:libelle:id:options_codi_llista_mare|parent_column:filtre

    Per a tenir la llista en funció d'una altra llista:
    c_typent:libelle:id:codi_llista_mare|parent_column:filter -ExtrafieldParamHelpchkbxlst=La llista de valors prové d'una taula
    Sintaxi: nom_taula:nom_camp:id_camp::filtre
    Exemple: c_typent:libelle:id::filtre

    filtre pot ser una comprovació simple (p. ex. active=1) per a mostrar només el valor actiu
    També podeu utilitzar $ID$ en el filtre per a representar l'ID actual de l'objecte en curs
    Per a fer un SELECT al filtre, utilitzeu $SEL$
    si voleu filtrar per camps extra utilitzeu la sintaxi extra.fieldcode=... (on el codi de camp és el codi del extrafield)

    Per a tenir la llista depenent d'una altra llista d'atributs complementaris:
    c_typent:libelle:id:options_codi_llista_pare|parent_column: filter

    Per a tenir la llista depenent d'una altra llista:
    c_typent:libelle:id:codi_llista_pare|parent_column:filter +ExtrafieldParamHelpsellist=Llista de valors que provenen d’una taula
    Sintaxi: nom_taula:nom_camp:id_camp::filtresql
    Exemple: c_typent:libelle:id::filtresql

    - id_camp ha de ser necessàriament una clau primària numèrica
    - el filtresql és una condició SQL. Pot ser una prova simple (p.ex. active=1) per a mostrar només els valors actius
    També pots utilitzar $ID$ al filtre per a representar el ID de l'actual objecte en curs
    Per a utilitzar un SELECT al filtre, utilitzeu la paraula clau $SEL$ per a evitar la protecció anti injecció.
    Si vols filtrar camps addicionals, utilitza la sintaxi extra.nom_camp=... (on nom_camp és el codi del camp addicional)

    Per a tenir la llista en funció d’una altra llista d’atributs complementaris:
    c_typent:libelle:id:options_codi_llista_mare|parent_column:filtre

    Per a tenir la llista en funció d'una altra llista:
    c_typent:libelle:id:codi_llista_mare|parent_column:filter +ExtrafieldParamHelpchkbxlst=La llista de valors prové d'una taula
    Sintaxi: nom_taula:nom_camp:id_camp::filtre
    Exemple: c_typent:libelle:id::filtre

    filtre pot ser una comprovació simple (p. ex. active=1) per a mostrar només el valor actiu
    També podeu utilitzar $ID$ en el filtre per a representar l'ID actual de l'objecte en curs
    Per a fer un SELECT al filtre, utilitzeu $SEL$
    si voleu filtrar per camps extra, utilitzeu la sintaxi extra.fieldcode=... (on el codi de camp és el codi del camp extra)

    Per a tenir la llista depenent d'una altra llista d'atributs complementaris:
    c_typent:libelle:id:options_codi_llista_pare|parent_column: filter

    Per a tenir la llista depenent d'una altra llista:
    c_typent:libelle:id:codi_llista_pare|parent_column:filter ExtrafieldParamHelplink=Els paràmetres han de ser ObjectName:Classpath
    Sintaxi: ObjectName:Classpath ExtrafieldParamHelpSeparator=Manteniu-lo buit per un simple separador
    Configureu-ho a 1 per a un separador col·lapsador (obert per defecte per a la sessió nova, i es mantindrà l'estat de cada sessió d'usuari)
    Configureu-ho a 2 per a un separador col·lapsat (es va desplomar per defecte per a la sessió nova, i es mantindrà l'estat per a cada sessió d'usuari) -LibraryToBuildPDF=Llibreria utilitzada per a la generació de PDF +LibraryToBuildPDF=Biblioteca utilitzada per a la generació de PDF LocalTaxDesc=Alguns països apliquen 2 o 3 impostos en cada línia de factura. Si aquest és el cas, escull el tipus pel segon i el tercer impost i el seu valor. Els tipus possibles són:
    1: impostos locals aplicats en productes i serveis sense IVA (l'impost local serà calculat en el total sense impostos)
    2: impost local aplicat en productes i serveis amb IVA (l'impost local serà calculat amb el total + l'impost principal)
    3: impost local aplicat en productes sense IVA (l'impost local serà calculat en el total sense impost)
    4: impost local aplicat en productes amb IVA (l'impost local serà calculat amb el total + l'impost principal)
    5: impost local aplicat en serveis sense IVA (l'impost local serà calculat amb el total sense impost)
    6: impost local aplicat en serveis amb IVA inclòs (l'impost local serà calculat amb el total + IVA) SMS=SMS LinkToTestClickToDial=Introduïu un número de telèfon per a trucar per a mostrar un enllaç per a provar l'URL ClickToDial per a l'usuari %s @@ -471,50 +472,51 @@ KeepEmptyToUseDefault=Deixa-ho buit per a usar el valor per defecte KeepThisEmptyInMostCases=En la majoria dels casos, pots deixar aquest camp buit. DefaultLink=Enllaç per defecte SetAsDefault=Indica'l com Defecte -ValueOverwrittenByUserSetup=Atenció: Aquest valor pot ser sobreescrit per un valor específic de la configuració de l'usuari (cada usuari pot tenir la seva pròpia url clicktodial) +ValueOverwrittenByUserSetup=Avís, aquest valor es pot sobreescriure per la configuració específica de l'usuari (cada usuari pot establir el seu propi URL de clicktodial) ExternalModule=Mòdul extern InstalledInto=Instal·lat al directori %s BarcodeInitForThirdparties=Inicialització massiva de codis de barres per a tercers BarcodeInitForProductsOrServices=Inici massiu de codi de barres per productes o serveis CurrentlyNWithoutBarCode=Actualment, té %s registres a %s %s sense codi de barres definit. -InitEmptyBarCode=Iniciar valor pels %s registres buits +InitEmptyBarCode=Valor inicial per als codis de barres buits %s EraseAllCurrentBarCode=Esborrar tots els valors de codi de barres actuals ConfirmEraseAllCurrentBarCode=Esteu segur que voleu esborrar tots els valors de codis de barres actuals? AllBarcodeReset=S'han eliminat tots els valors de codi de barres NoBarcodeNumberingTemplateDefined=No hi ha cap plantilla de codi de barres habilitada a la configuració del mòdul de codi de barres. EnableFileCache=Activa la memòria cau de fitxers -ShowDetailsInPDFPageFoot=Afegiu més detalls al peu de pàgina, com ara l'adreça de l'empresa o els noms dels gestors (a més d'identificadors professionals, capital de l'empresa i número de NIF/CIF). +ShowDetailsInPDFPageFoot=Afegiu més detalls al peu de pàgina, com ara l'adreça de l'empresa o els noms dels administradors (a més dels identificadors professionals, el capital social i el número de NIF). NoDetails=No hi ha detalls addicionals al peu de pàgina DisplayCompanyInfo=Mostra l'adreça de l'empresa DisplayCompanyManagers=Mostra el gestor de noms DisplayCompanyInfoAndManagers=Mostra l'adreça de l'empresa i els noms de la persona gestora EnableAndSetupModuleCron=Si voleu que aquesta factura periòdica es generi automàticament, el mòdul * %s * s’ha d’habilitar i configurar correctament. En cas contrari, la generació de factures s’ha de fer manualment des d’aquesta plantilla mitjançant el botó *Crea*. Tingueu en compte que, fins i tot si heu activat la generació automàtica, encara podeu iniciar la generació manual amb seguretat. No es pot generar duplicats per al mateix període. ModuleCompanyCodeCustomerAquarium=%s seguit del codi de client per a un codi comptable de client -ModuleCompanyCodeSupplierAquarium=%s seguit del codi de proveïdor per a un codi de comptabilitat del proveïdor +ModuleCompanyCodeSupplierAquarium=%s seguit del codi de proveïdor per a un codi de comptabilitat de proveïdor ModuleCompanyCodePanicum=Retorna un codi comptable buit. ModuleCompanyCodeDigitaria=Retorna un codi comptable compost d'acord amb el nom del tercer. El codi consisteix en un prefix, que pot definir-se, en primera posició, seguit del nombre de caràcters que es defineixi com a codi del tercer. ModuleCompanyCodeCustomerDigitaria=%s seguit pel nom abreujat del client pel nombre de caràcters: %s pel codi del compte de client ModuleCompanyCodeSupplierDigitaria=%s seguit pel nom abreujat del proveïdor pel nombre de caràcters: %s pel codi del compte de proveïdor -Use3StepsApproval=Per defecte, les comandes de compra necessiten ser creades i aprovades per 2 usuaris diferents (el primer pas/usuari és per a crear i un altre pas/usuari per a aprovar. Noteu que si un usuari té permisos tant per a crear com per a aprovar, un sol pas/usuari serà suficient). Amb aquesta opció, tens la possibilitat d'introduir un tercer pas/usuari per a l'aprovació, si l'import és superior a un determinat valor (d'aquesta manera són necessaris 3 passos: 1=validació, 2=primera aprovació i 3=segona aprovació si l'import és suficient).
    Deixa-ho en blanc si només vols un nivell d'aprovació (2 passos); posa un valor encara que sigui molt baix (0,1) si vols una segona aprovació (3 passos). +Use3StepsApproval=De manera predeterminada, les comandes de compra han de ser creades i aprovades per 2 usuaris diferents (un pas/usuari per a crear i un pas/usuari per a aprovar. Tingueu en compte que si l'usuari té tant permís per a crear com per a aprovar, n'hi haurà prou amb un pas/usuari). . Podeu demanar amb aquesta opció que es presenti un tercer pas/usuari d'aprovació, si l'import és superior a un determinat valor (per tant, seran necessaris 3 passos: 1=validació, 2=primera aprovació i 3=segona aprovació si l'import és suficient).
    Establiu-ho com a buit si n'hi ha prou amb una aprovació (2 passos), establiu-lo en un valor molt baix (0,1) si sempre cal una segona aprovació (3 passos). UseDoubleApproval=Utilitza una aprovació en 3 passos quan l'import (sense impostos) sigui més gran que... WarningPHPMail=ADVERTÈNCIA: la configuració per a enviar correus electrònics des de l'aplicació utilitza la configuració genèrica predeterminada. Sovint és millor configurar els correus electrònics de sortida per a utilitzar el servidor de correu electrònic del vostre proveïdor de serveis de correu electrònic en lloc de la configuració predeterminada per diversos motius: -WarningPHPMailA=- L’ús del servidor del proveïdor de serveis de correu electrònic augmenta la confiança del vostre correu electrònic, de manera que augmenta l'enviament sense ser marcat com a SPAM +WarningPHPMailA=- L'ús del servidor del proveïdor de serveis de correu electrònic augmenta la fiabilitat del vostre correu electrònic, de manera que augmenta el lliurament sense ser marcat com a Correu brossa WarningPHPMailB=- Alguns proveïdors de serveis de correu electrònic (com Yahoo) no us permeten enviar un correu electrònic des d'un altre servidor que el seu propi servidor. La configuració actual utilitza el servidor de l’aplicació per a enviar correus electrònics i no el servidor del vostre proveïdor de correu electrònic, de manera que alguns destinataris (el compatible amb el protocol DMARC restrictiu) demanaran al vostre proveïdor de correu electrònic si poden acceptar el vostre correu electrònic i alguns proveïdors de correu electrònic. (com Yahoo) pot respondre "no" perquè el servidor no és seu, de manera que és possible que pocs dels vostres correus electrònics enviats no s'acceptin per al lliurament (tingueu cura també de la quota d'enviament del vostre proveïdor de correu electrònic). WarningPHPMailC=- També és interessant utilitzar el servidor SMTP del vostre proveïdor de serveis de correu electrònic per a enviar correus electrònics, de manera que tots els correus electrònics enviats des de l’aplicació també es guardaran al directori "Enviats" de la vostra bústia de correu. -WarningPHPMailD=Així mateix, es recomana canviar el mètode d'enviament de correus electrònics pel valor "SMTP". Si realment voleu mantenir el mètode predeterminat "PHP" per a enviar correus electrònics, només ignoreu aquest advertiment o elimineu-lo establint la constant MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP a 1 a Inici - Configuració - Altres. +WarningPHPMailD=Per tant, es recomana canviar el mètode d'enviament dels correus electrònics al valor "SMTP". +WarningPHPMailDbis=Si realment voleu mantenir el mètode "PHP" predeterminat per a enviar correus electrònics, només ignoreu aquest avís o elimineu-lo fent %sclic aquí%s. WarningPHPMail2=Si el vostre proveïdor SMTP necessita restringir al client de correu a una adreça IP (molt estrany), aquesta és la IP de l'agent d'usuari de correu (MUA) per la vostra aplicació ERP CRM: %s. WarningPHPMailSPF=Si el nom de domini de la vostra adreça de correu electrònic del remitent està protegit per un registre SPF (demaneu al registre del vostre nom de domini), heu d'afegir les IP següents al registre SPF del DNS del vostre domini: %s . -ActualMailSPFRecordFound=Registre SPF real trobat: %s +ActualMailSPFRecordFound=Registre SPF real trobat (per al correu electrònic %s): %s ClickToShowDescription=Feu clic per a mostrar la descripció DependsOn=Aquest mòdul necessita els mòduls RequiredBy=Aquest mòdul és requerit pel/s mòdul/s TheKeyIsTheNameOfHtmlField=Aquest és el nom del camp HTML. Es necessiten coneixements tècnics per a llegir el contingut de la pàgina HTML per a obtenir el nom clau d’un camp. PageUrlForDefaultValues=Has d'introduir aquí l'URL relatiu de la pàgina. Si inclous paràmetres a l'URL, els valors predeterminats seran efectius si tots els paràmetres s'estableixen en el mateix valor. PageUrlForDefaultValuesCreate=
    Exemple:
    Per al formulari per a crear un tercer nou, és %s.
    Per a l'URL dels mòduls externs instal·lats al directori personalitzat, no incloeu el "custom/", així que utilitzeu una ruta com mymodule/mypage.php i no custom/mymodule/mypage.php.
    Si només voleu un valor per defecte si l'URL té algun paràmetre, podeu utilitzar %s -PageUrlForDefaultValuesList=
    Exemple:
    Per a la pàgina que llista els tercers, és %s.
    Per a l'URL dels mòduls externs instal·lats al directori personalitzat, no incloeu el "custom/", de manera que utilitzeu un ruta com mymodule/mypagelist.php i no custom/mymodule/mypagelist.php.
    Si només voleu un valor per defecte si l'URL té algun paràmetre, podeu utilitzar %s +PageUrlForDefaultValuesList=
    Exemple:
    Per a la pàgina que llista els tercers, és %s.
    Per a l'URL dels mòduls externs instal·lats al directori personalitzat, no incloeu el "custom/", de manera que utilitzeu una ruta com mymodule/mypagelist.php i no custom/mymodule/mypagelist.php.
    Si només voleu un valor per defecte si l'URL té algun paràmetre, podeu utilitzar %s AlsoDefaultValuesAreEffectiveForActionCreate=També tingueu en compte que sobreescriure valors predeterminats per a la creació de formularis funciona només per a pàgines dissenyades correctament (de manera que amb el paràmetre action = create o presend ...) EnableDefaultValues=Activa la personalització dels valors predeterminats -EnableOverwriteTranslation=Habilita l'ús de la traducció sobreescrita +EnableOverwriteTranslation=Permet la personalització de les traduccions GoIntoTranslationMenuToChangeThis=S'ha trobat una traducció de la clau amb aquest codi. Per a canviar aquest valor, l’heu d’editar des d'Inici-Configuració-Traducció. WarningSettingSortOrder=Advertiment: establir un ordre d'ordenació per defecte pot provocar un error tècnic en entrar a la pàgina de llista si el camp és un camp desconegut. Si teniu aquest error, torneu a aquesta pàgina per a eliminar l'ordre de classificació predeterminat i restaurar el comportament predeterminat. Field=Camp @@ -580,8 +582,8 @@ Module57Name=Cobraments per domiciliació bancària Module57Desc=Gestió de comandes de dèbit directe. Inclou la generació de fitxers SEPA per a països europeus. Module58Name=ClickToDial Module58Desc=Integració amb ClickToDial -Module60Name=Enganxines -Module60Desc=Gestió d’enganxines +Module60Name=Adhesius +Module60Desc=Gestió d'adhesius Module70Name=Intervencions Module70Desc=Gestió de la intervenció Module75Name=Notes de despeses i desplaçaments @@ -611,7 +613,7 @@ Module330Desc=Crear marcadors, sempre accessibles, a les pàgines internes o ext Module400Name=Projectes o Oportunitats Module400Desc=Gestió de projectes, oportunitats/leads o tasques. També podeu assignar qualsevol element (factura, comanda, pressupost, intervenció...) a un projecte i obtenir una vista transversal del projecte. Module410Name=Webcalendar -Module410Desc=Interface amb el calendari webcalendar +Module410Desc=Integració del calendari web Module500Name=Impostos i Despeses especials Module500Desc=Gestió d'altres despeses (impostos sobre vendes, impostos socials o fiscals, dividends, ...) Module510Name=Salaris @@ -630,7 +632,7 @@ Module770Desc=Gestiona les reclamacions d'informes de despeses (transport, menja Module1120Name=Pressupostos de proveïdor Module1120Desc=Sol·licitar al venedor cotització i preus Module1200Name=Mantis -Module1200Desc=Interface amb el sistema de seguiment d'incidències Mantis +Module1200Desc=Integració de Mantis Module1520Name=Generar document Module1520Desc=Generació de documents de correu electrònic massiu Module1780Name=Etiquetes @@ -645,9 +647,9 @@ Module2400Name=Esdeveniments/Agenda Module2400Desc=Seguiment d'esdeveniments. Registre d'esdeveniments automàtics per a fer el seguiment o registrar esdeveniments manuals o reunions. Aquest és el mòdul principal per a una bona gestió de la relació amb clients o proveïdors. Module2500Name=SGD / GCE Module2500Desc=Sistema de gestió de documents / Gestió de continguts electrònics. Organització automàtica dels vostres documents generats o emmagatzemats. Compartiu-los quan ho necessiteu. -Module2600Name=Serveis API/WEB (servidor SOAP) +Module2600Name=Serveis API / Web (servidor SOAP) Module2600Desc=Habilita el servidor SOAP de Dolibarr que ofereix serveis API -Module2610Name=Serveis API/WEB (servidor REST) +Module2610Name=Serveis API / Web (servidor REST) Module2610Desc=Habilita el servidor REST de Dolibarr que ofereix serveis API Module2660Name=Crida a WebServices (client SOAP) Module2660Desc=Activa el client de serveis web Dolibarr (es pot utilitzar per a enviar dades/sol·licituds a servidors externs. Actualment només s'admeten les comandes de compra). @@ -660,7 +662,7 @@ Module3200Name=Arxius inalterables Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre inalterable. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que només es poden llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països. Module3400Name=Xarxes socials Module3400Desc=Activa els camps de les xarxes socials a tercers i adreces (skype, twitter, facebook...). -Module4000Name=RRHH +Module4000Name=RH Module4000Desc=Gestió de recursos humans (gestionar departaments, empleats, contractes i "feelings") Module5000Name=Multiempresa Module5000Desc=Permet gestionar diverses empreses @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Afegeix funcions per a gestionar Incoterms Module63000Name=Recursos Module63000Desc=Gestiona els recursos (impressores, cotxes, habitacions...) que pots compartir en esdeveniments +Module94160Name=Recepcions Permission11=Consulta factures de client Permission12=Crear/Modificar factures Permission13=Invalida les factures dels clients @@ -714,13 +717,14 @@ Permission27=Elimina pressupostos Permission28=Exportar els pressupostos Permission31=Consulta productes Permission32=Crear/modificar productes +Permission33=Consulta preus de productes Permission34=Elimina productes Permission36=Veure/gestionar els productes ocults Permission38=Exportar productes Permission39=Ignora el preu mínim -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Consulta projectes i tasques (projectes i projectes compartits dels quals soc contacte). +Permission42=Crea/modifica projectes (projectes compartits i projectes dels quals soc contacte). També pot assignar usuaris a projectes i tasques +Permission44=Elimina projectes (projectes compartits i projectes dels quals soc un contacte) Permission45=Exporta projectes Permission61=Consulta intervencions Permission62=Crea/modifica intervencions @@ -739,6 +743,7 @@ Permission79=Crear/modificar cotitzacions Permission81=Consulta comandes de clients Permission82=Crear/modificar comandes de clients Permission84=Validar comandes de clients +Permission85=Generar els documents de comandes de venda Permission86=Envia comandes de clients Permission87=Tancar comandes de clients Permission88=Anul·lar comandes de clients @@ -766,10 +771,10 @@ Permission122=Crea/modifica tercers enllaçats a l'usuari Permission125=Elimina tercers enllaçats a l'usuari Permission126=Exporta tercers Permission130=Crear/modificar informació de pagament de tercers -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=Consulta tots els projectes i tasques (així com els projectes privats dels quals no soc un contacte) +Permission142=Crea/modifica tots els projectes i tasques (així com els projectes privats dels quals no soc un contacte) +Permission144=Elimina tots els projectes i tasques (així com els projectes privats dels quals no soc un contacte) +Permission145=Pot introduir el temps consumit, per a mi o la meva jerarquia, en les tasques assignades (full de temps) Permission146=Consulta proveïdors Permission147=Consulta estadístiques Permission151=Llegir domiciliacions @@ -840,9 +845,9 @@ Permission286=Exporta contactes Permission291=Consultar tarifes Permission292=Indica permisos en les tarifes Permission293=Modifica les tarifes de clients -Permission300=Consulta codis de barra -Permission301=Crea/modifica codis de barres -Permission302=Suprimeix codis de barres +Permission301=Generar fulls PDF de codis de barres +Permission304=Crea/modifica codis de barres +Permission305=Suprimeix codis de barres Permission311=Consultar serveis Permission312=Assignar serveis/subscripció a un contracte Permission331=Consultar bookmarks @@ -874,6 +879,7 @@ Permission525=Calculadora de crèdit Permission527=Exportar préstecs Permission531=Consultar serveis Permission532=Crear/modificar serveis +Permission533=Consulta preus de serveis Permission534=Eliminar serveis Permission536=Veure / gestionar els serveis ocults Permission538=Exportar serveis @@ -896,7 +902,7 @@ Permission662=Suprimeix l'ordre de fabricació (OF) Permission701=Consultar donacions Permission702=Crear/modificar donacions Permission703=Eliminar donacions -Permission771=Consulta informes de despeses (propis i dels subordinats) +Permission771=Consulta els informes de despeses (propis i dels subordinats) Permission772=Crear/modificar informes de despeses (per a tu i els teus subordinats) Permission773=Eliminar els informes de despeses Permission775=Aprovar els informes de despeses @@ -933,7 +939,7 @@ Permission1186=Envia comandes de compra Permission1187=Rebut de confirmació de comandes de compra Permission1188=Suprimeix comandes de compra Permission1189=Marca/Desmarca la recepció d’una comanda de compra -Permission1190=Aprova (segona aprovació) les comandes de compra +Permission1190=Aprova (segona aprovació) comandes de compra Permission1191=Exporta les comandes dels proveïdors i els seus atributs Permission1201=Obté el resultat d'una exportació Permission1202=Crear/modificar exportacions @@ -968,13 +974,14 @@ Permission3301=Genera mòduls nous Permission4001=Llegir habilitat/ocupació/posició Permission4002=Crear/modificar habilitat/ocupació/posició Permission4003=Esborra habilitat/ocupació/posició -Permission4020=Llegir avaluacions -Permission4021=Crea/modifica la teva avaluació -Permission4022=Valida l'avaluació -Permission4023=Elimina l'avaluació -Permission4030=Veure menú comparatiu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Llegeix informació personal Permission4032=Escriu informació personal +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Llegiu el contingut del lloc web Permission10002=Crea / modifica contingut del lloc web (contingut html i javascript) Permission10003=Creeu / modifiqueu el contingut del lloc web (codi php dinàmic). Perillós, s'ha de reservar per a desenvolupadors restringits. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Tipus d'alienació d'actius TypeOfUnit=Tipus d’unitat SetupSaved=Configuració desada SetupNotSaved=Configuració no desada +OAuthServiceConfirmDeleteTitle=Suprimeix l'entrada d'OAuth +OAuthServiceConfirmDeleteMessage=Esteu segur que voleu suprimir aquesta entrada d'OAuth? També se suprimiran totes les fitxes existents. +ErrorInEntryDeletion=Error en la supressió de l'entrada +EntryDeleted=S'ha suprimit l'entrada BackToModuleList=Torna a la llista de mòduls BackToDictionaryList=Torna a la llista de Diccionaris TypeOfRevenueStamp=Tipus de segell fiscal @@ -1102,12 +1113,12 @@ LocalTax2Management=3r tipus d'impost LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=Gestió Recàrrec d'Equivalència -LocalTax1IsUsedDescES=El tipus de RE proposat per defecte en les creacions de pressupostos, factures, comandes, etc. Respon a la següent regla:
    Si el comprador no està subjecte a RE, RE per defecte= 0. Final de regla.
    Si el comprador està subjecte a RE aleshores s'aplica valor de RE per defecte. Final de regla.
    +LocalTax1IsUsedDescES=El tipus de RE proposat per defecte en les creacions de pressupostos, factures, comandes, etc. respon a la següent regla:
    Si el comprador no està subjecte a RE, RE per defecte= 0. Final de regla.
    Si el comprador està subjecte a RE, aleshores s'aplica valor de RE per defecte. Final de regla.
    LocalTax1IsNotUsedDescES=Per defecte, el RE proposat és 0. Fi de la regla. LocalTax1IsUsedExampleES=A Espanya, es tracta de persones físiques: autònoms subjectes a uns epígrafs concrets de l'IAE. LocalTax1IsNotUsedExampleES=A Espanya, es tracta d'empreses jurídiques: Societats limitades, anònimes, etc. i persones físiques (autònoms) subjectes a certs epígrafs de l'IAE. LocalTax2ManagementES=Gestió IRPF -LocalTax2IsUsedDescES=El tipus d'IRPF proposat per defecte en les creacions de pressupostos, factures, comandes, etc. Respon a la següent regla:
    Si el venedor no està subjecte a IRPF, IRPF per defecte= 0. Final de regla.
    Si el venedor està subjecte a IRPF aleshores s'aplica valor d'IRPF per defecte. Final de regla.
    +LocalTax2IsUsedDescES=El tipus d'IRPF proposat per defecte en les creacions de pressupostos, factures, comandes, etc. respon a la següent regla:
    Si el venedor no està subjecte a IRPF, IRPF per defecte= 0. Final de regla.
    Si el venedor està subjecte a IRPF, aleshores s'aplica valor d'IRPF per defecte. Final de regla.
    LocalTax2IsNotUsedDescES=Per defecte, l'IRPF proposat és 0. Fi de la regla. LocalTax2IsUsedExampleES=A Espanya, es tracta de persones físiques: autònoms i professionals independents que presten serveis i empreses que han triat el règim fiscal de mòduls. LocalTax2IsNotUsedExampleES=A Espanya, es tracta d'empreses no subjectes al règim fiscal de mòduls. @@ -1122,14 +1133,14 @@ CalcLocaltax2Desc=Els informes es basen en el total de les compres CalcLocaltax3=Vendes CalcLocaltax3Desc=Els informes es basen en el total de les vendes NoLocalTaxXForThisCountry=Segons la configuració d’impostos (vegeu %s - %s - %s), el vostre país no necessita utilitzar aquest tipus d’impost -LabelUsedByDefault=Etiqueta utilitzada per defecte si no es troba cap traducció per aquest codi -LabelOnDocuments=Etiqueta sobre documents -LabelOrTranslationKey=Clau de traducció o cadena +LabelUsedByDefault=Nom utilitzat per defecte si no es troba cap traducció del codi +LabelOnDocuments=Nom als documents +LabelOrTranslationKey=Nom o clau de traducció ValueOfConstantKey=Valor d’una constant de configuració ConstantIsOn=L'opció %s està activada NbOfDays=Nombre de dies AtEndOfMonth=A final de mes -CurrentNext=Actual/Següent +CurrentNext=Un dia determinat al mes Offset=Decàleg AlwaysActive=Sempre actiu Upgrade=Actualització @@ -1192,7 +1203,7 @@ NoActiveBankAccountDefined=Cap compte bancari actiu definit OwnerOfBankAccount=Titular del compte %s BankModuleNotActive=Mòdul comptes bancaris no activat ShowBugTrackLink=Mostra l'enllaç " %s " -ShowBugTrackLinkDesc=Mantingueu el buit per no mostrar aquest enllaç, utilitzeu el valor "github" per a l'enllaç al projecte Dolibarr o definiu directament una URL "https: // ..." +ShowBugTrackLinkDesc=Manteniu-lo buit per no mostrar aquest enllaç, utilitzeu el valor 'github' per a l'enllaç al projecte Dolibarr o definiu directament un URL 'https://...' Alerts=Alertes DelaysOfToleranceBeforeWarning=S'està mostrant una alerta d'advertència per... DelaysOfToleranceDesc=Establiu el retard abans que es mostri a la pantalla una icona d'alerta %s per a l'element final. @@ -1235,11 +1246,13 @@ BrowserName=Nom del navegador BrowserOS=S.O. del navegador ListOfSecurityEvents=Llistat d'esdeveniments de seguretat Dolibarr SecurityEventsPurged=Esdeveniments de seguretat purgats +TrackableSecurityEvents=Esdeveniments de seguretat rastrejables LogEventDesc=Habiliteu el registre per a esdeveniments de seguretat específics. Els administradors del registre a través del menú %s - %s . Avís, aquesta funció pot generar una gran quantitat de dades a la base de dades. AreaForAdminOnly=Els paràmetres de configuració només poden ser establerts per usuaris administradors. SystemInfoDesc=La informació del sistema és informació tècnica diversa que obteniu en mode de només lectura i visible només per als administradors. SystemAreaForAdminOnly=Aquesta àrea només està disponible per als usuaris administradors. Els permisos d'usuari de Dolibarr no poden canviar aquesta restricció. CompanyFundationDesc=Editeu la informació de la vostra empresa / organització. Feu clic al botó "%s" al final de la pàgina quan hagi acabat. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Si teniu un comptable extern, podeu editar aquí la seva informació. AccountantFileNumber=Número de fila DisplayDesc=Els paràmetres que afecten l'aspecte i la presentació de l'aplicació es poden modificar aquí. @@ -1251,9 +1264,9 @@ SessionsPurgedByExternalSystem=Sembla que les sessions en aquest servidor són n TriggersAvailable=Triggers disponibles TriggersDesc=Els activadors són fitxers que modificaran el comportament del flux de treball de Dolibarr un cop copiat al directori htdocs/core/triggers. Realitzen accions noves, activades en esdeveniments Dolibarr (creació d'empresa nova, validació de factures...). TriggerDisabledByName=Triggers d'aquest arxiu desactivador pel sufix -NORUN en el nom de l'arxiu. -TriggerDisabledAsModuleDisabled=Triggers d'aquest arxiu desactivats ja que el mòdul %s no està activat. -TriggerAlwaysActive=Triggers d'aquest arxiu sempre actius, ja que els mòduls Dolibarr relacionats estan activats -TriggerActiveAsModuleActive=Triggers d'aquest arxiu actius ja que el mòdul %s està activat +TriggerDisabledAsModuleDisabled=Els activadors d'aquest fitxer estan desactivats, ja que el mòdul %s està desactivat. +TriggerAlwaysActive=Els activadors d'aquest fitxer sempre estan actius, siguin quins siguin els mòduls Dolibarr activats. +TriggerActiveAsModuleActive=Els activadors d'aquest fitxer estan actius, ja que el mòdul %s està habilitat. GeneratedPasswordDesc=Trieu el mètode que s'utilitzarà per a les contrasenyes generades automàticament. DictionaryDesc=Afegeix totes les dades de referència. Pots afegir els teus valors per defecte. ConstDesc=Aquesta pàgina permet editar (anul·lar) paràmetres no disponibles en altres pàgines. Aquests són paràmetres reservats només per a desenvolupadors o solucions avançades de problemes. @@ -1286,10 +1299,12 @@ PreviousDumpFiles=Fitxers de còpia de seguretat existents PreviousArchiveFiles=Fitxers d’arxiu existents WeekStartOnDay=Primer dia de la setmana RunningUpdateProcessMayBeRequired=Sembla que cal executar el procés d’actualització (la versió del programa %s és diferent de la versió de la base de dades %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Ha d'executar la comanda des d'un shell després d'haver iniciat sessió amb el compte %s. +YouMustRunCommandFromCommandLineAfterLoginToUser=Heu d'executar aquesta ordre des de la línia d'ordres després d'iniciar sessió a un intèrpret d'ordres amb l'usuari %s o heu d'afegir l'opció -W al final de la línia d'ordres per a proporcionar %s contrasenya YourPHPDoesNotHaveSSLSupport=Funcions SSL no disponibles al vostre PHP DownloadMoreSkins=Més temes per a descarregar SimpleNumRefModelDesc=Retorna el número de referència en el format %syymm-nnnn on yy és l'any, mm és el mes i nnnn és un número d'increment automàtic seqüencial sense restablir +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Retorna el número de referència en el format %syymm-nnnn on yy és l'any, mm és el mes i nnnn és un número d'increment automàtic seqüencial sense restablir SimpleNumRefNoDateModelDesc=Retorna el número de referència en el format %s-nnnn on nnnn és un número d’increment automàtic seqüencial sense restablir ShowProfIdInAddress=Mostra el DNI professional amb adreces ShowVATIntaInAddress=Amaga el número d’IVA intracomunitari @@ -1346,7 +1361,7 @@ TransKeyWithoutOriginalValue=Heu obligat una nova traducció de la clau de tradu TitleNumberOfActivatedModules=Mòduls activats TotalNumberOfActivatedModules=Mòduls activats: %s / %s YouMustEnableOneModule=Ha d'activar almenys 1 mòdul. -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +YouMustEnableTranslationOverwriteBefore=Primer heu d'activar la sobreescriptura de traduccions per a poder substituir una traducció ClassNotFoundIntoPathWarning=La classe %s no s'ha trobat a la ruta PHP YesInSummer=Sí a l'estiu OnlyFollowingModulesAreOpenedToExternalUsers=Tingueu en compte que només els següents mòduls estan disponibles per als usuaris externs (independentment dels permisos d'aquests usuaris) i només si es concedeixen permisos:
    @@ -1376,7 +1391,7 @@ GetBarCode=Obté el codi de barres NumberingModules=Models de numeració DocumentModules=Models de documents ##### Module password generation -PasswordGenerationStandard=Retorna una contrasenya generada segons l'algorisme intern de Dolibarr: %s caràcters amb barreja de números i caràcters en minúscula. +PasswordGenerationStandard=Retorna una contrasenya generada segons l'algorisme intern de Dolibarr: %s caràcters que contenen números i caràcters barrejats. PasswordGenerationNone=No suggereixis una contrasenya generada. La contrasenya s'ha d'escriure manualment. PasswordGenerationPerso=Retorna una contrasenya segons la vostra configuració personalitzada. SetupPerso=Segons la vostra configuració @@ -1384,7 +1399,7 @@ PasswordPatternDesc=Descripció del patró de contrasenya ##### Users setup ##### RuleForGeneratedPasswords=Regles per a generar i validar contrasenyes DisableForgetPasswordLinkOnLogonPage=No mostri l'enllaç "Contrasenya oblidada" a la pàgina d'inici de sessió -UsersSetup=Configuració del mòdul usuaris +UsersSetup=Configuració del mòdul d'usuaris UserMailRequired=Cal un correu electrònic per a crear un usuari nou UserHideInactive=Amaga els usuaris inactius de totes les llistes desplegables d'usuaris (no es recomana: pot ser que no pugueu filtrar ni cercar usuaris antics en algunes pàgines) UsersDocModules=Plantilles de documents per a documents generats a partir d'un registre d'usuari @@ -1392,7 +1407,7 @@ GroupsDocModules=Plantilles de documents per a documents generats a partir d’u ##### HRM setup ##### HRMSetup=Configuració de mòdul de gestió de recursos humans ##### Company setup ##### -CompanySetup=Configuració del mòdul empreses +CompanySetup=Configuració del mòdul d'empreses CompanyCodeChecker=Opcions per a la generació automàtica de codis de client / proveïdor AccountCodeManager=Opcions per a la generació automàtica de comptes comptables de client/proveïdor NotificationsDesc=Les notificacions per correu electrònic es poden enviar automàticament per a alguns esdeveniments de Dolibarr.
    Es poden definir els destinataris de les notificacions: @@ -1405,14 +1420,14 @@ WatermarkOnDraft=Marca d'aigua en els documents esborrany JSOnPaimentBill=Activa la funció per a emplenar automàticament les línies de pagament al formulari de pagament CompanyIdProfChecker=Normes per a identificacions professionals MustBeUnique=Ha de ser únic? -MustBeMandatory=Obligatori per a crear tercers (si es defineix el NIF/CIF o el tipus d’empresa)? +MustBeMandatory=Obligatori per a crear tercers (si es defineix el NIF o el tipus d’empresa)? MustBeInvoiceMandatory=És obligatori per a validar les factures? TechnicalServicesProvided=Prestació de serveis tècnics #####DAV ##### WebDAVSetupDesc=Aquest és l'enllaç per a accedir al directori WebDAV. Conté un missatge "públic" obert a qualsevol usuari que conegui l'URL (si es permet l'accés al directori públic) i un directori "privat" que necessita un compte d'inici de sessió/contrasenya existent per a l'accés. WebDavServer=URL de l'arrel del servidor %s: %s ##### Webcal setup ##### -WebCalUrlForVCalExport=Un vincle d'exportació del calendari en format %s estarà disponible a la url: %s +WebCalUrlForVCalExport=Un enllaç d'exportació al format %s està disponible a l'enllaç següent: %s ##### Invoices ##### BillsSetup=Configuració del mòdul Factures BillsNumberingModule=Mòdul de numeració de factures i abonaments @@ -1430,6 +1445,10 @@ SuppliersPayment=Pagaments a proveïdors SupplierPaymentSetup=Configuració de pagaments a proveïdors InvoiceCheckPosteriorDate=Comproveu la data de fabricació abans de la validació InvoiceCheckPosteriorDateHelp=La validació d'una factura estarà prohibida si la seva data és anterior a la data de l'última factura del mateix tipus. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Configuració del mòdul Pressupostos ProposalsNumberingModules=Models de numeració de pressupostos @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Marca d'aigua en contractes (en cas d'estar buit) ##### Members ##### MembersSetup=Configuració del mòdul Socis MemberMainOptions=Opcions principals +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Gestiona un compte d'usuari per a cada soci AdherentMailRequired=Cal un correu electrònic per a crear un soci nou MemberSendInformationByMailByDefault=La casella de selecció per a enviar una confirmació per correu electrònic als socis (validació o nova subscripció) està activada per defecte MemberCreateAnExternalUserForSubscriptionValidated=Creeu un usuari extern per a cada subscripció nova membre validada -VisitorCanChooseItsPaymentMode=El visitant pot triar entre els modes de pagament disponibles +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Activa el recordatori automàtic per correu electrònic de les subscripcions caducades. Nota: El mòdul %s s'ha d'habilitar i configurar correctament per a enviar recordatoris. MembersDocModules=Plantilles de documents per a documents generats a partir del registre de socis ##### LDAP setup ##### @@ -1565,8 +1585,8 @@ LDAPFieldLoginSamba=Nom d'usuari (samba, activedirectory) LDAPFieldLoginSambaExample=Exemple: samaccountname LDAPFieldFullname=Nom complet LDAPFieldFullnameExample=Exemple: cn -LDAPFieldPasswordNotCrypted=Contrasenya no encriptada -LDAPFieldPasswordCrypted=Contrasenya encriptada +LDAPFieldPasswordNotCrypted=La contrasenya no està xifrada +LDAPFieldPasswordCrypted=Contrasenya xifrada LDAPFieldPasswordExample=Exemple: userPassword LDAPFieldCommonNameExample=Exemple: cn LDAPFieldName=Nom @@ -1661,10 +1681,10 @@ DoNotUseDescriptionOfProdut=La descripció del producte mai no s’inclourà a l MergePropalProductCard=Activa a la pestanya Fitxers adjunts de producte/servei una opció per a combinar el document PDF del producte amb el PDF del pressupost si el producte/servei es troba en el pressupost ViewProductDescInThirdpartyLanguageAbility=Mostra les descripcions dels productes en formularis en l'idioma del tercer (en cas contrari, en l'idioma de l'usuari) UseSearchToSelectProductTooltip=A més, si teniu un gran nombre de productes (> 100.000), podeu augmentar la velocitat establint la constant PRODUCT_DONOTSEARCH_ANYWHERE a 1 a Configuració->Altres. La cerca es limitarà a l'inici de la cadena. -UseSearchToSelectProduct=Espereu fins que premeu una tecla abans de carregar el contingut de la llista combinada del producte (això pot augmentar el rendiment si teniu una gran quantitat de productes, però és menys convenient) +UseSearchToSelectProduct=Espereu fins que premeu una tecla abans de carregar el contingut de la llista combinada de productes (això pot augmentar el rendiment si teniu un gran nombre de productes, però és menys pràctic) SetDefaultBarcodeTypeProducts=Tipus de codi de barres utilitzat per defecte per als productes SetDefaultBarcodeTypeThirdParties=Tipus de codi de barres utilitzat per defecte per als tercers -UseUnits=Defineix una unitat de mesura per Quantitats per les línies de pressupostos, comandes o factures. +UseUnits=Definiu una unitat de mesura per a Quantitat durant l'edició de línies de comanda, pressupost o factura ProductCodeChecker= Mòdul per a la generació i comprovació del codi d'un producte o servei ProductOtherConf= Configuració de productes/serveis IsNotADir=No és un directori! @@ -1718,7 +1738,7 @@ NotificationSetup=Configuració del mòdul de notificació per correu electròni NotificationEMailFrom=Correu electrònic del remitent (des de) per als correus electrònics enviats pel mòdul de notificacions FixedEmailTarget=Destinatari NotificationDisableConfirmMessageContact=Amaga la llista de destinataris (subscrits com a contacte) de les notificacions al missatge de confirmació -NotificationDisableConfirmMessageUser=Amaga la llista de destinataris (suscrits com a usuari) de les notificacions al missatge de confirmació +NotificationDisableConfirmMessageUser=Amaga la llista de destinataris (subscrits com a usuari) de les notificacions al missatge de confirmació NotificationDisableConfirmMessageFix=Amaga la llista de destinataris (subscrits com a correu electrònic global) de les notificacions al missatge de confirmació ##### Sendings ##### SendingsSetup=Configuració del mòdul d'enviament @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Activar editor avançat per a : FCKeditorForNotePublic=WYSIWIG creació/edició del camp "notes públiques" d'elements FCKeditorForNotePrivate=Creació/edició WYSIWIG del camp "notes privades" d'elements FCKeditorForCompany=Creació / edició de WYSIWIG de la descripció del camp d'elements (excepte productes / serveis) -FCKeditorForProduct=Creació / edició de WYSIWIG de la descripció del camp de productes / serveis -FCKeditorForProductDetails=Creació/edició WYSIWIG de línies de detalls de productes per a totes les entitats (pressupostos, comandes, factures, etc.). Advertiment: no es recomana utilitzar aquesta opció per a aquest cas, ja que pot crear problemes amb caràcters especials i format de pàgina en crear fitxers PDF. +FCKeditorForProductDetails=Creació/edició WYSIWIG de descripció de productes o línies per objectes (línies de pressupostos, comandes, factures, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Creació/edició WYSIWIG dels E-Mails FCKeditorForUserSignature=Creació/edició WYSIWIG de la signatura de l'usuari FCKeditorForMail=Edició/creació WYSIWIG per tots els e-mails (excepte Eines->eMailing) @@ -1761,11 +1781,11 @@ DetailId=Identificador del menú DetailMenuHandler=Nom del gestor de menús DetailMenuModule=Nom del mòdul si l'entrada del menú és resultant d'un mòdul DetailType=Tipus de menú (superior o esquerre) -DetailTitre=Etiqueta de menú o codi d'etiqueta per traducció -DetailUrl=URL de la pàgina cap a la qual el menú apunta +DetailTitre=Nom del menú o codi d'etiqueta per a la traducció +DetailUrl=URL on t'envia el menú (enllaç URL relatiu o enllaç extern amb https://) DetailEnabled=Condició de mostrar o no DetailRight=Condició per a mostrar menús grisos no autoritzats -DetailLangs=Nom del fitxer Lang pel codi d'etiqueta de traducció +DetailLangs=Nom del fitxer de llengua per a la traducció del codi de l'etiqueta DetailUser=Intern / Extern / Tots Target=Objectiu DetailTarget=Orientació per a enllaços (_blank top obre una finestra nova) @@ -1792,14 +1812,14 @@ SupposedToBeInvoiceDate=Data de factura utilitzada Buy=Compra Sell=Venda InvoiceDateUsed=Data utilitzada de factura -YourCompanyDoesNotUseVAT=L'empresa s'ha configurat com a no subjecta a IVA (Inici - Configuració - Empresa/Organització), per tant no hi ha opcions per a configurar l'IVA. +YourCompanyDoesNotUseVAT=La vostra empresa s'ha definit per a no utilitzar l'IVA (Inici - Configuració - Empresa/Organització), de manera que no hi ha opcions d'IVA per a configurar. AccountancyCode=Codi comptable AccountancyCodeSell=Codi comptable vendes AccountancyCodeBuy=Codi comptable compres CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Mantenir buida per defecte la casella “Crea automàticament el pagament” quan es crea un nou impost ##### Agenda ##### AgendaSetup=Mòdul configuració d'accions i agenda -PasswordTogetVCalExport=Clau d'autorització vCal export link +PasswordTogetVCalExport=Clau per a autoritzar l'enllaç d'exportació SecurityKey = Clau de seguretat PastDelayVCalExport=No exportar els esdeveniments de més de AGENDA_USE_EVENT_TYPE=Utilitzeu tipus d'esdeveniments (gestionats en el menú Configuració -> Diccionaris -> Tipus d'esdeveniments d'agenda) @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=La disminució d'accions en POS no é CashDeskYouDidNotDisableStockDecease=No vau desactivar la disminució de l'estoc en fer una venda des del TPV. Per tant, es requereix un magatzem. CashDeskForceDecreaseStockLabel=S'ha forçat la disminució de l'estoc de productes per lots. CashDeskForceDecreaseStockDesc=Disminuïu primer les dates més antigues de consumir i vendre. -CashDeskReaderKeyCodeForEnter=Codi clau per a "Enter" definit al lector de codi de barres (Exemple: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Configuració del mòdul Bookmark BookmarkDesc=Aquest mòdul us permet gestionar els marcadors. També podeu afegir dreceres a totes les pàgines de Dolibarr o llocs web externs al menú de l'esquerra. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Models de numeració de factures de proveïdor IfSetToYesDontForgetPermission=Si establiu un valor vàlid, no us oblideu d'establir els permisos necessaris als grups o persones habilitades per la segona aprovació ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuració del mòdul GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Ruta al fitxer que conté Maxmind ip a la traducció del país.
    Exemples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Camí al fitxer que conté la ip de Maxmind amb traducció del país NoteOnPathLocation=Tingueu en compte que el fitxer de dades IP a país ha de ser dins d’un directori que pugui llegir PHP (Comproveu la configuració de PHP open_basedir i els permisos del sistema de fitxers). YouCanDownloadFreeDatFileTo=Pot descarregar-se una versió demo gratuïta de l'arxiu de països Maxmind GeoIP a l'adreça %s. YouCanDownloadAdvancedDatFileTo=També pot descarregar-se una versió més completa de l'arxiu de països Maxmind GeoIP a l'adreça %s. @@ -1882,7 +1902,7 @@ ProjectsSetup=Configuració del mòdul Projectes ProjectsModelModule=Model de document per a informes de projectes TasksNumberingModules=Mòdul numeració de tasques TaskModelModule=Mòdul de documents informes de tasques -UseSearchToSelectProject=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combo del projecte.
    Això pot millorar el rendiment si teniu una gran quantitat de projectes, però és menys convenient. +UseSearchToSelectProject=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada del projecte.
    Això pot millorar el rendiment si teniu un gran nombre de projectes, però és menys pràctic. ##### ECM (GED) ##### ##### Fiscal Year ##### AccountingPeriods=Períodes comptables @@ -1922,21 +1942,22 @@ BackupDumpWizard=Assistent per a crear el fitxer d'exportació de la base de dad BackupZipWizard=Assistent per a crear el directori d’arxiu de documents SomethingMakeInstallFromWebNotPossible=No és possible la instal·lació de mòduls externs des de la interfície web per la següent raó: SomethingMakeInstallFromWebNotPossible2=Per aquest motiu, el procés d'actualització descrit aquí és un procés manual que només un usuari privilegiat pot realitzar. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=El vostre administrador ha desactivat la instal·lació del mòdul extern des de l'aplicació. Heu de demanar-li que suprimeixi el fitxer %s per a permetre aquesta funció. ConfFileMustContainCustom=Per a instal·lar o crear un mòdul extern des de l'aplicació es necessita desar els fitxers del mòdul en el directori %s. Per a permetre a Dolibarr el processament d'aquest directori, has de configurar el teu conf/conf.php afegint aquestes 2 línies:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Remarca línies de la taula quan el ratolí passi per sobre HighlightLinesColor=Ressalteu el color de la línia quan el ratolí passa (utilitzeu 'ffffff' per no ressaltar) HighlightLinesChecked=Ressalteu el color de la línia quan està marcada (utilitzeu 'ffffff' per no ressaltar) -UseBorderOnTable=Show left-right borders on tables +UseBorderOnTable=Mostra les vores esquerra-dreta a les taules BtnActionColor=Color del botó d'acció TextBtnActionColor=Color del text del botó d'acció TextTitleColor=Color del text del títol de la pàgina LinkColor=Color dels enllaços -PressF5AfterChangingThis=Prem CTRL+F5 en el teclat o neteja la memòria cau del navegador després de canviar aquest valor per fer-ho efectiu +PressF5AfterChangingThis=Prem CTRL+F5 en el teclat o neteja la memòria cau del navegador després de canviar aquest valor per a fer-ho efectiu NotSupportedByAllThemes=Funcionarà amb els temes del nucli, però pot no estar suportat per temes externs BackgroundColor=Color de fons TopMenuBackgroundColor=Color de fons pel menú superior -TopMenuDisableImages=Oculta les imatges en el menú superior +TopMenuDisableImages=Icona o text al menú superior LeftMenuBackgroundColor=Color de fons pel menú de l'esquerra BackgroundTableTitleColor=Color de fons per línies de títol en taules BackgroundTableTitleTextColor=Color del text per a la línia del títol de la taula @@ -1949,7 +1970,7 @@ EnterAnyCode=Aquest camp conté una referència per a identificar la línia. Int Enter0or1=Introdueix 0 o 1 UnicodeCurrency=Introduïu aquí entre claudàtors, la llista del nombre de bytes que representa el símbol de moneda. Per exemple: per $, introduïu [36] - per al real de Brasil R$ [82,36] - per €, introduïu [8364] ColorFormat=El color RGB es troba en format HEX, per exemple: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Nom de la icona en format:
    - image.png per a un fitxer d'imatge al directori del tema actual
    - image.png@module si el fitxer es troba al directori /img/ d'un mòdul
    - fa-xxx per a una fontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size per a un picto FontAwesome fa-xxx (amb prefix, color i mida conjunta) PositionIntoComboList=Posició de la línia a les llistes desplegables SellTaxRate=Tipus d’impost sobre les vendes RecuperableOnly=Sí per l'IVA "No percebut sinó recuperable" dedicat per a algun estat a França. Manteniu el valor "No" en tots els altres casos. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Comandes de compra MailToSendSupplierInvoice=Factures del proveïdor MailToSendContract=Contractes MailToSendReception=Recepcions +MailToExpenseReport=Informes de despeses MailToThirdparty=Tercers MailToMember=Socis MailToUser=Usuaris @@ -1986,8 +2008,8 @@ ByDefaultInList=Mostra per defecte en la vista del llistat YouUseLastStableVersion=Estàs utilitzant l'última versió estable TitleExampleForMajorRelease=Exemple de missatge que podeu utilitzar per a anunciar aquesta actualització de versió (no dubteu a utilitzar-lo als vostres llocs web) TitleExampleForMaintenanceRelease=Exemple de missatge que podeu utilitzar per a anunciar aquesta versió de manteniment (no dubteu a utilitzar-lo als vostres llocs web) -ExampleOfNewsMessageForMajorRelease=Disponible ERP/CRM Dolibarr %s. La versió %s és una versió major amb un munt de noves característiques, tant per a usuaris com per a desenvolupadors. Es pot descarregar des de la secció de descàrregues del portal https://www.dolibarr.org (subdirectori versions estables). Podeu llegir ChangeLog per veure la llista completa dels canvis. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió de manteniment, de manera que només conté correccions d'errors. Us recomanem que tots els usuaris actualitzeu aquesta versió. Un llançament de manteniment no introdueix novetats ni canvis a la base de dades. Podeu descarregar-lo des de l'àrea de descàrrega del portal https://www.dolibarr.org (subdirectori de les versions estables). Podeu llegir el ChangeLog per a obtenir una llista completa dels canvis. +ExampleOfNewsMessageForMajorRelease=Disponible ERP/CRM Dolibarr %s. La versió %s és una versió major amb un munt de noves característiques, tant per a usuaris com per a desenvolupadors. Es pot descarregar des de la secció de descàrregues del portal https://www.dolibarr.org (subdirectori versions estables). Podeu llegir ChangeLog per a veure la llista completa dels canvis. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió de manteniment, de manera que només conté correccions d'errors. Recomanem a tots els usuaris que actualitzin a aquesta versió. Una versió de manteniment no presenta noves funcions ni canvis a la base de dades. Podeu descarregar-lo des de l'àrea de descàrregues del portal https://www.dolibarr.org (subdirectori Versions estables). Podeu llegir el registre de canvis ChangeLog per a obtenir la llista completa de canvis. MultiPriceRuleDesc=Quan l'opció "Diversos nivells de preus per producte/servei" està activada, podeu definir preus diferents (un preu per nivell) per a cada producte. Per a estalviar-vos temps, aquí podeu introduir una regla per a calcular automàticament un preu per a cada nivell en funció del preu del primer nivell, de manera que només haureu d'introduir un preu per al primer nivell per a cada producte. Aquesta pàgina està dissenyada per a estalviar-vos temps, però només és útil si els preus de cada nivell són relatius al primer nivell. Podeu ignorar aquesta pàgina en la majoria dels casos. ModelModulesProduct=Plantilles per documents de productes WarehouseModelModules=Plantilles per a documents de magatzems @@ -2018,18 +2040,19 @@ activateModuleDependNotSatisfied=El mòdul "%s" depèn del mòdul "%s", que falt CommandIsNotInsideAllowedCommands=L'ordre que intenteu executar no es troba a la llista de comandaments permesos definits al paràmetre $ dolibarr_main_restrict_os_commands al fitxer conf.php . LandingPage=Pàgina de destinació principal SamePriceAlsoForSharedCompanies=Si utilitzeu un mòdul multicompany, amb l'opció "Preu únic", el preu també serà el mateix per a totes les empreses si es comparteixen productes entre entorns -ModuleEnabledAdminMustCheckRights=S'ha activat el mòdul. Els permisos per als mòdul(s) activats es donen només als usuaris administradors. Podria ser necessari concedir permisos a altres usuaris o grups de forma manual si és necessari. +ModuleEnabledAdminMustCheckRights=El mòdul s'ha activat. Els permisos per als mòduls activats només es donen als usuaris administradors. És possible que hagueu de concedir permisos a altres usuaris o grups manualment si cal. UserHasNoPermissions=Aquest usuari no té permisos definits TypeCdr=Utilitzeu "Cap" si la data del termini de pagament és la data de la factura més un delta en dies (el delta és el camp "%s")
    Utilitzeu "Al final del mes", si, després del delta, s'ha d'augmentar la data per a arribar al final del mes (+ opcional "%s" en dies)
    Utilitzeu "Actual/Següent" perquè la data del termini de pagament sigui la primera N del mes després del delta (el delta és el camp "%s", N s'emmagatzema al camp "%s"). -BaseCurrency=Moneda de referència de l'empresa (entra a la configuració de l'empresa per canviar-la) +BaseCurrency=Moneda de referència de l'empresa (anar a la configuració de l'empresa per a canviar-ho) WarningNoteModuleInvoiceForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finances 2016). WarningNoteModulePOSForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finances 2016) perquè el mòdul Logs no reversibles s'activa automàticament. -WarningInstallationMayBecomeNotCompliantWithLaw=Esteu intentant instal·lar el mòdul %s que és un mòdul extern. L'activació d'un mòdul extern significa que confia en l'editor d'aquest mòdul i que està segur que aquest mòdul no afectarà negativament el comportament de la vostra aplicació i compleix les lleis del vostre país (%s). Si el mòdul introdueix una característica il·legal, es fa responsable de l'ús del programari il·legal. +WarningInstallationMayBecomeNotCompliantWithLaw=Esteu intentant instal·lar el mòdul %s que és un mòdul extern. L'activació d'un mòdul extern significa que confieu en l'editor d'aquest mòdul i que esteu segur que aquest mòdul no afecta negativament el comportament de la vostra aplicació i que compleix les lleis del vostre país (%s). Si el mòdul presenta una característica il·legal, vostè es fa responsable de l'ús de programari il·legal. MAIN_PDF_MARGIN_LEFT=Marge esquerre al PDF MAIN_PDF_MARGIN_RIGHT=Marge dret al PDF MAIN_PDF_MARGIN_TOP=Marge superior al PDF MAIN_PDF_MARGIN_BOTTOM=Marge inferior al PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Alçada del logotip en PDF +DOC_SHOW_FIRST_SALES_REP=Mostra el primer agent comercial MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Afegiu una columna per a la imatge a les línies de proposta MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Amplada de la columna si s'afegeix una imatge a les línies MAIN_PDF_NO_SENDER_FRAME=Amaga les vores del marc d’adreça del remitent @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Elimina els caràcters especials COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex per a netejar el valor (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtre Regex al valor net (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=No es permet la duplicació +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Oficial de protecció de dades (PDO, privadesa de dades o contacte amb GDPR) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Si emmagatzemeu dades personals al vostre Sistema d'Informació, podeu anomenar aquí el contacte responsable del Reglament General de Protecció de Dades HelpOnTooltip=Ajuda a mostrar el text a la descripció d'informació HelpOnTooltipDesc=Posa text o una tecla de traducció aquí perquè el text es mostri en una descripció emergent quan aquest camp aparegui en un formulari YouCanDeleteFileOnServerWith=Podeu eliminar aquest fitxer al servidor amb la línia de comandaments:
    %s @@ -2059,39 +2084,47 @@ VATIsUsedIsOff=Nota: L'opció d'utilitzar l'impost de vendes o l'IVA s'ha establ SwapSenderAndRecipientOnPDF=Intercanvieu la posició de l'adreça del remitent i del destinatari en documents PDF FeatureSupportedOnTextFieldsOnly=Advertiment, funció compatible només amb els camps de text i llistes desplegables. També s'ha d'establir un paràmetre URL action=create o action=edit Ó el nom de la pàgina ha d'acabar amb 'new.php' per a activar aquesta característica. EmailCollector=Col·lector de correu electrònic -EmailCollectorDescription=Afegiu una tasca programada i una pàgina de configuració per escanejar regularment caixes de correu electrònic (utilitzant el protocol IMAP) i registreu els correus electrònics rebuts a la vostra aplicació, al lloc adequat i / o creeu alguns registres automàticament (com a clients potencials). +EmailCollectors=Col·leccionistes de correu electrònic +EmailCollectorDescription=Afegiu una tasca programada i una pàgina de configuració per a escanejar regularment bústies de correu electrònic (mitjançant el protocol IMAP) i enregistreu els correus electrònics rebuts a la vostra aplicació, al lloc correcte i/o creeu alguns registres automàticament (com ara clients potencials). NewEmailCollector=Col·lector nou de correus electrònics EMailHost=Servidor IMAP de correu electrònic +EMailHostPort=Port del servidor IMAP de correu electrònic +loginPassword=Inici de sessió/Contrasenya +oauthToken=Testimoni Oauth2 +accessType=Tipus d'accés +oauthService=Servei d'Oauth +TokenMustHaveBeenCreated=El mòdul OAuth2 ha d'estar habilitat i s'ha d'haver creat un testimoni oauth2 amb els permisos correctes (per exemple, l'àmbit "gmail_full" amb OAuth per a Gmail). MailboxSourceDirectory=Directori d'origen de la bústia MailboxTargetDirectory=Directori de destinació de la bústia EmailcollectorOperations=Operacions a fer per recol·lector EmailcollectorOperationsDesc=Les operacions s’executen de dalt a baix MaxEmailCollectPerCollect=Nombre màxim de correus electrònics recopilats per recollida +TestCollectNow=Prova de recollida CollectNow=Recolliu ara -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? +ConfirmCloneEmailCollector=Esteu segur que voleu clonar el col·lector de correu electrònic %s? DateLastCollectResult=Data de l'últim intent de recollida DateLastcollectResultOk=Data de la darrera recollida amb èxit LastResult=Últim resultat -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeaders=No inclogueu el contingut de la capçalera del correu electrònic al contingut desat dels correus electrònics recopilats +EmailCollectorHideMailHeadersHelp=Quan està activat, les capçaleres de correu electrònic no s'afegeixen al final del contingut del correu electrònic que es desa com a esdeveniment de l'agenda. EmailCollectorConfirmCollectTitle=Confirmació de recollida de correu electrònic -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorConfirmCollect=Vols executar aquest col·leccionista ara? +EmailCollectorExampleToCollectTicketRequestsDesc=Recolliu correus electrònics que coincideixen amb algunes regles i creeu automàticament un Tiquet (cal activar el mòdul Ticket) amb la informació del correu electrònic. Podeu utilitzar aquest col·lector si proporcioneu algun suport per correu electrònic, de manera que la vostra sol·licitud de tiquet es generarà automàticament. Activeu també Collect_Responses per a recollir les respostes del vostre client directament a la vista de tiquets (heu de respondre des de Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Exemple de recollida de la sol·licitud de bitllet (només el primer missatge) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Escanegeu el directori "Enviat" de la vostra bústia de correu per a trobar correus electrònics que s'han enviat com a resposta d'un altre correu electrònic directament des del vostre programari de correu electrònic i no des de Dolibarr. Si es troba aquest correu electrònic, l'esdeveniment de resposta es registra a Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Exemple de recollida de respostes de correu electrònic enviades des d'un programari de correu electrònic extern +EmailCollectorExampleToCollectDolibarrAnswersDesc=Recolliu tots els correus electrònics que són una resposta d'un correu electrònic enviat des de la vostra aplicació. S'enregistrarà un esdeveniment (Mòdul Agenda ha d'estar habilitat) amb la resposta del correu electrònic al bon lloc. Per exemple, si envieu una proposta comercial, una comanda, una factura o un missatge d'un bitllet per correu electrònic des de l'aplicació i el destinatari respon al vostre correu electrònic, el sistema captarà automàticament la resposta i l'afegirà al vostre ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Exemple de recollida de tots els missatges entrants com a respostes als missatges enviats des de Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Recolliu correus electrònics que coincideixen amb algunes regles i creeu automàticament un client potencial (el projecte del mòdul ha d'estar habilitat) amb la informació del correu electrònic. Podeu utilitzar aquest col·lector si voleu seguir la vostra oportunitat mitjançant el mòdul Projecte (1 lead = 1 project), de manera que els vostres clients potencials es generaran automàticament. Si el col·lector Collect_Responses també està habilitat, quan envieu un correu electrònic des dels vostres clients potencials, propostes o qualsevol altre objecte, també podreu veure les respostes dels vostres clients o socis directament a l'aplicació.
    Nota: amb aquest exemple inicial, es genera el títol del client potencial inclòs el correu electrònic. Si el tercer no es troba a la base de dades (client nou), el client s'adjuntarà al tercer amb l'identificador 1. +EmailCollectorExampleToCollectLeads=Exemple de recollida de clients potencials +EmailCollectorExampleToCollectJobCandidaturesDesc=Recolliu els correus electrònics que sol·liciten ofertes de feina (ha d'activar la contractació de mòduls). Podeu completar aquest col·lector si voleu crear automàticament una candidatura per a una sol·licitud de feina. Nota: Amb aquest exemple inicial, es genera el títol de la candidatura inclòs el correu electrònic. +EmailCollectorExampleToCollectJobCandidatures=Exemple de recollida de candidatures laborals rebudes per correu electrònic NoNewEmailToProcess=No hi ha cap correu electrònic nou (filtres coincidents) per a processar NothingProcessed=No s'ha fet res -XEmailsDoneYActionsDone=%s correus electrònics qualificats, %s correus electrònics processats amb èxit (per %s registre / accions realitzades) +XEmailsDoneYActionsDone=Correus electrònics %s prequalificats, correus electrònics %s processats correctament (per a registres/accions realitzades %s) RecordEvent=Enregistrar un esdeveniment a l'agenda (amb el tipus de correu electrònic enviat o rebut) CreateLeadAndThirdParty=Creeu un client potencial (i un tercer si cal) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +CreateTicketAndThirdParty=Crear un bitllet (enllaçat a un tercer si el tercer s'ha carregat per una operació anterior o s'ha endevinat a partir d'un rastrejador a la capçalera del correu electrònic, sense el contrari) CodeLastResult=Últim codi retornat NbOfEmailsInInbox=Nombre de correus electrònics en el directori font LoadThirdPartyFromName=Carregueu la cerca de tercers al %s (només carrega) @@ -2105,19 +2138,19 @@ CreateCandidature=Crea sol·licitud de feina FormatZip=Format Zip MainMenuCode=Codi d'entrada del menú (menú principal) ECMAutoTree=Mostra l'arbre ECM automàtic -OperationParamDesc=Definiu les regles a utilitzar per a extreure o establir valors.
    Exemple d'operacions que necessiten extreure un nom de l'assumpte del correu electrònic:
    name=EXTRACT:SUBJECT:Missatge de l'empresa ([^\n] *)
    Exemple per a les operacions que creen objectes:
    objproperty1 = SET: el valor en conjunt
    objproperty2 = SET: un valor incloent el valor de __objproperty1__
    objproperty3 = SETIFEMPTY: valor utilitzat si objproperty3 no està ja definit
    objproperty4 = extracte: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:El nom de la meva empresa és\\s( [^\\s]*)

    Utilitzeu un ; char com a separador per a extreure o establir diverses propietats. +OperationParamDesc=Definiu les regles que s'han d'utilitzar per a extreure algunes dades o establir valors que s'utilitzen per al funcionament.

    Exemple per a extreure el nom d'una empresa de l'assumpte del correu electrònic a una variable temporal:
    tmp_var=EXTRACT:SUBJECT:Missatge de l'empresa ([^\n]*)

    Exemples per a establir les propietats d'un objecte a crear:
    objproperty1=SET:un valor fixat
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:un valor (el valor s'estableix només si la propietat encara no s'ha definit)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:El nom de la meva empresa és\\s([^\\s]*)

    Utilitzeu un caràcter ; com a separador per a extreure o establir diverses propietats. OpeningHours=Horari d'obertura OpeningHoursDesc=Introduïu aquí l'horari habitual d'obertura de la vostra empresa. ResourceSetup=Configuració del mòdul de recursos -UseSearchToSelectResource=Utilitza un formulari de cerca per a seleccionar un recurs (millor que una llista desplegable) +UseSearchToSelectResource=Utilitzeu un formulari de cerca per a triar un recurs (en lloc d'una llista desplegable). DisabledResourceLinkUser=Desactiva la funció per a enllaçar un recurs amb els usuaris DisabledResourceLinkContact=Desactiva la funció per a enllaçar un recurs amb els contactes -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Prohibir l'ús del mateix recurs al mateix temps a l'agenda ConfirmUnactivation=Confirma el restabliment del mòdul OnMobileOnly=Només en pantalla petita (telèfon intel·ligent) DisableProspectCustomerType=Desactiva el tipus de tercer "Potencial + Client" (per tant, el tercer ha de ser "Potencial" o "Client", però no pot ser tots dos) MAIN_OPTIMIZEFORTEXTBROWSER=Simplifica la interfície per a persones cegues -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Activa aquesta opció si ets cec o si fas servir l'aplicació des d'un navegador de text com ara Lynx o Links. +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Activeu aquesta opció si sou una persona cega o si feu servir l'aplicació des d'un navegador de text com Lynx o Links. MAIN_OPTIMIZEFORCOLORBLIND=Canvia el color de la interfície per daltònic MAIN_OPTIMIZEFORCOLORBLINDDesc=Activeu aquesta opció si ets una persona daltònica; en alguns casos, la interfície canviarà la configuració del color per a augmentar el contrast. Protanopia=Protanopia @@ -2137,7 +2170,7 @@ UseDebugBar=Utilitzeu la barra de depuració DEBUGBAR_LOGS_LINES_NUMBER=Nombre d’últimes línies de registre que cal mantenir a la consola WarningValueHigherSlowsDramaticalyOutput=Advertència, els valors més alts frenen molt la producció ModuleActivated=El mòdul %s està activat i alenteix la interfície -ModuleActivatedWithTooHighLogLevel=El mòdul %s s'activa amb un nivell de registre massa alt (intenteu utilitzar un nivell inferior per obtenir millors prestacions i seguretat) +ModuleActivatedWithTooHighLogLevel=El mòdul %s s'activa amb un nivell de registre massa alt (intenta utilitzar un nivell inferior per a millors rendiments i seguretat) ModuleSyslogActivatedButLevelNotTooVerbose=El mòdul %s està activat i el nivell de registre (%s) és correcte (no massa detallat) IfYouAreOnAProductionSetThis=Si esteu en un entorn de producció, s'hauria d'establir aquesta propietat en %s. AntivirusEnabledOnUpload=Antivirus activat als fitxers penjats @@ -2157,7 +2190,7 @@ DeleteEmailCollector=Suprimeix el recollidor de correu electrònic ConfirmDeleteEmailCollector=Esteu segur que voleu suprimir aquest recollidor de correu electrònic? RecipientEmailsWillBeReplacedWithThisValue=Els correus electrònics destinataris sempre se substituiran per aquest valor AtLeastOneDefaultBankAccountMandatory=Cal definir com a mínim un compte bancari per defecte -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +RESTRICT_ON_IP=Permet l'accés de l'API només a determinades IP de client (no es permet el comodí, utilitza l'espai entre els valors). Buit significa que tots els clients poden accedir. IPListExample=127.0.0.1 192.168.0.2 [:: 1] BaseOnSabeDavVersion=Basat en la versió de la biblioteca SabreDAV NotAPublicIp=No és una IP pública @@ -2166,7 +2199,11 @@ FeatureNotAvailableWithReceptionModule=Funció no disponible quan el mòdul Rece EmailTemplate=Plantilla per correu electrònic EMailsWillHaveMessageID=Els correus electrònics tindran una etiqueta "Referències" que coincideix amb aquesta sintaxi PDF_SHOW_PROJECT=Mostra el projecte al document -ShowProjectLabel=Etiqueta del projecte +ShowProjectLabel=Nom del projecte +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Incloeu l'àlies al nom de tercers +THIRDPARTY_ALIAS=Nom de tercer - Àlies de tercer +ALIAS_THIRDPARTY=Àlies de tercer - Nom de tercer +PDFIn2Languages=Mostra els noms en PDF en 2 idiomes diferents PDF_USE_ALSO_LANGUAGE_CODE=Si voleu que alguns textos del vostre PDF es copiïn en 2 idiomes diferents en el mateix PDF generat, heu d’establir aquí aquest segon idioma perquè el PDF generat contingui 2 idiomes diferents en la mateixa pàgina, l’escollit en generar el PDF i aquesta (només poques plantilles de PDF admeten això). Mantingueu-lo buit per a 1 idioma per PDF. PDF_USE_A=Gerera documents PDF amb el format PDF/A en lloc del format PDF predeterminat FafaIconSocialNetworksDesc=Introduïu aquí el codi de la icona de FontAwesome. Si no sabeu què és FontAwesome, podeu utilitzar el llibre genèric d’adreces. @@ -2182,7 +2219,7 @@ SwitchThisForABetterSecurity=Es recomana canviar aquest valor a %s per a obtenir DictionaryProductNature= Naturalesa del producte CountryIfSpecificToOneCountry=País (si és específic d'un país determinat) YouMayFindSecurityAdviceHere=Podeu trobar assessorament de seguretat aquí -ModuleActivatedMayExposeInformation=Aquesta extensió PHP pot exposar dades sensibles. Si no la necessiteu, desactiveu-la. +ModuleActivatedMayExposeInformation=Aquesta extensió PHP pot exposar dades delicades. Si no la necessiteu, desactiveu-la. ModuleActivatedDoNotUseInProduction=S'ha habilitat un mòdul dissenyat per al desenvolupament. No l'activeu en un entorn de producció. CombinationsSeparator=Caràcter separador per a combinacions de productes SeeLinkToOnlineDocumentation=Vegeu l'enllaç a la documentació en línia al menú superior per a obtenir exemples @@ -2195,26 +2232,27 @@ MailToPartnership=Associació AGENDA_EVENT_DEFAULT_STATUS=Estat de l'esdeveniment per defecte en crear un esdeveniment des del formulari YouShouldDisablePHPFunctions=Hauríeu de desactivar les funcions PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Excepte si heu d'executar ordres del sistema en codi personalitzat, hauríeu de desactivar les funcions PHP -PHPFunctionsRequiredForCLI=Per a propòsits d'intèrpret d'ordres (com fer copies de seguretat programades o executar un programa antivirus), heu de mantenir les funcions PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No s'ha trobat cap fitxer ni directori d'escriptura dels programes comuns al directori arrel (Bo) RecommendedValueIs=Recomanat: %s Recommended=Recomanada NotRecommended=No es recomana -ARestrictedPath=Algun camí restringit +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Comproveu si hi ha actualitzacions de mòduls externs -CheckForModuleUpdateHelp=Aquesta acció es connectarà als editors de mòduls externs per comprovar si hi ha disponible una nova versió. +CheckForModuleUpdateHelp=Aquesta acció es connectarà amb editors de mòduls externs per a comprovar si hi ha una versió nova disponible. ModuleUpdateAvailable=Hi ha disponible una actualització NoExternalModuleWithUpdate=No s'han trobat actualitzacions per a mòduls externs SwaggerDescriptionFile=Fitxer de descripció de l'API Swagger (per a utilitzar-lo amb redoc, per exemple) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Heu activat l'API WS obsoleta. Haureu d’utilitzar l’API REST. RandomlySelectedIfSeveral=Seleccionat aleatòriament si hi ha diverses imatges disponibles +SalesRepresentativeInfo=Per a Pressupostos, Comandes, Factures. DatabasePasswordObfuscated=La contrasenya de la base de dades està ofuscada al fitxer conf DatabasePasswordNotObfuscated=La contrasenya de la base de dades NO està ofuscada al fitxer conf APIsAreNotEnabled=Els mòduls API no estan habilitats YouShouldSetThisToOff=Hauríeu d'establir-lo a 0 o desactivar-lo InstallAndUpgradeLockedBy=La instal·lació i les actualitzacions estan bloquejades pel fitxer %s OldImplementation=Implementació antiga -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Si alguns mòduls de pagament en línia estan habilitats (Paypal, Stripe, ...), afegiu un enllaç al PDF per fer el pagament en línia +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Si alguns mòduls de pagament en línia estan habilitats (Paypal, Stripe, ...), afegiu un enllaç al PDF per a fer el pagament en línia DashboardDisableGlobal=Desactiveu globalment tots els polzes d'objectes oberts BoxstatsDisableGlobal=Desactiva les estadístiques totalment de caixa DashboardDisableBlocks=Polzes d'objectes oberts (a processar o tard) al tauler principal @@ -2228,7 +2266,7 @@ DashboardDisableBlockBank=Desactiveu el polze per als bancs DashboardDisableBlockAdherent=Desactiveu el polze per a les subscripcions DashboardDisableBlockExpenseReport=Desactiveu el polze per als informes de despeses DashboardDisableBlockHoliday=Desactiva el polze per a les fulles -EnabledCondition=Condició per tenir el camp habilitat (si no està activat, la visibilitat sempre estarà desactivada) +EnabledCondition=Condició per a tenir el camp habilitat (si no està activat, la visibilitat sempre estarà desactivada) IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si voleu utilitzar un segon impost, heu d'habilitar també el primer impost de vendes IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si voleu utilitzar un tercer impost, heu d'habilitar també el primer impost de vendes LanguageAndPresentation=Llengua i presentació @@ -2247,19 +2285,73 @@ LateWarningAfter=Avís "tard" després TemplateforBusinessCards=Plantilla per a una targeta de visita de diferents mides InventorySetup= Configuració de l'inventari ExportUseLowMemoryMode=Utilitzeu un mode de memòria baixa -ExportUseLowMemoryModeHelp=Utilitzeu el mode de memòria baixa per a executar l'execució de l'abocament (la compressió es fa a través d'una canonada en lloc d'entrar a la memòria PHP). Aquest mètode no permet comprovar que el fitxer s'hagi completat i no es pot informar del missatge d'error si falla. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interfície per a capturar activadors de dolibarr i enviar-lo a un URL +WebhookSetup = Configuració del webhook +Settings = Configuració +WebhookSetupPage = Pàgina de configuració del webhook +ShowQuickAddLink=Mostra un botó per a afegir ràpidament un element al menú superior dret + +HashForPing=Hash utilitzat per a fer ping +ReadOnlyMode=És una instància en mode "Només lectura". +DEBUGBAR_USE_LOG_FILE=Utilitzeu el fitxer dolibarr.log per a atrapar els registres +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Utilitzeu el fitxer dolibarr.log per a atrapar els registres en lloc de capturar la memòria en directe. Permet capturar tots els registres en lloc de només el registre del procés actual (per tant, inclosa la de les pàgines de subsol·licituds ajax), però farà que la vostra instància sigui molt molt lenta. No es recomana. +FixedOrPercent=Fixat (utilitza la paraula clau "fixat") o per cent (utilitza la paraula clau "percentatge") +DefaultOpportunityStatus=Estat d'oportunitat predeterminat (primer estat quan es crea el client potencial) + +IconAndText=Icona i text +TextOnly=Només text +IconOnlyAllTextsOnHover=Només icona: tots els textos apareixen sota la icona de la barra de menú del ratolí +IconOnlyTextOnHover=Només icona: el text de la icona apareix a sota de la icona en passar el cursor sobre la icona +IconOnly=Només icona: només text a la informació sobre eines +INVOICE_ADD_ZATCA_QR_CODE=Mostra el codi QR ZATCA a les factures +INVOICE_ADD_ZATCA_QR_CODEMore=Alguns països àrabs necessiten aquest codi QR a les seves factures +INVOICE_ADD_SWISS_QR_CODE=Mostra el codi QR-Bill suís a les factures +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=Enllaç URL de la xarxa social. Utilitzeu {socialid} per a la part variable que conté l'identificador de la xarxa social. +IfThisCategoryIsChildOfAnother=Si aquesta categoria és fill d'una altra +DarkThemeMode=Mode de tema fosc +AlwaysDisabled=Sempre inhabilitat +AccordingToBrowser=Segons el navegador +AlwaysEnabled=Sempre activat +DoesNotWorkWithAllThemes=No funcionarà amb tots els temes +NoName=Sense nom +ShowAdvancedOptions= Mostra opcions avançades +HideAdvancedoptions= Amaga les opcions avançades +CIDLookupURL=El mòdul aporta un URL que pot utilitzar una eina externa per a obtenir el nom d'un tercer o contacte des del seu número de telèfon. L'URL a utilitzar és: +OauthNotAvailableForAllAndHadToBeCreatedBefore=L'autenticació OAUTH2 no està disponible per a tots els amfitrions i s'ha d'haver creat un testimoni amb els permisos adequats aigües amunt amb el mòdul OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Servei d'autenticació OAUTH2 +DontForgetCreateTokenOauthMod=S'ha d'haver creat un testimoni amb els permisos adequats aigües amunt amb el mòdul OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Mètode d'autenticació +UsePassword=Utilitzeu una contrasenya +UseOauth=Utilitzeu un testimoni OAUTH +Images=Imatges +MaxNumberOfImagesInGetPost=Nombre màxim d'imatges permeses en un camp HTML enviat en un formulari +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=El mòdul aporta un URL que pot utilitzar una eina externa per a obtenir el nom d'un tercer o contacte des del seu número de telèfon. L'URL a utilitzar és: +ScriptIsEmpty=El guió és buit +ShowHideTheNRequests=Mostra/amaga les sol·licituds SQL %s +DefinedAPathForAntivirusCommandIntoSetup=Definiu una ruta per a un programa antivirus a %s +TriggerCodes=Esdeveniments desencadenants +TriggerCodeInfo=Introduïu aquí els codis activadors que han de generar una publicació d'una sol·licitud web (només es permet l'URL extern). Podeu introduir diversos codis d'activació separats per una coma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css a les pàgines d'edició +CssOnView=Css a les pàgines de visualització +CssOnList=Css a les pàgines de llistat +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang index 30bd9cad0b1..0e5ffda43e7 100644 --- a/htdocs/langs/ca_ES/agenda.lang +++ b/htdocs/langs/ca_ES/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contracte %s eliminat PropalClosedSignedInDolibarr=Pressupost %s firmat PropalClosedRefusedInDolibarr=Pressupost %s rebutjat PropalValidatedInDolibarr=Pressupost %s validat +PropalBackToDraftInDolibarr=La proposta %s torna a l'estat d'esborrany PropalClassifiedBilledInDolibarr=Pressupost %s classificat facturat InvoiceValidatedInDolibarr=Factura %s validada InvoiceValidatedInDolibarrFromPos=Factura %s validada al TPV @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=Soci %s validat MemberModifiedInDolibarr=Soci %s modificat MemberResiliatedInDolibarr=Membre %s acabat MemberDeletedInDolibarr=Soci %s eliminat +MemberExcludedInDolibarr=Soci %s exclòs MemberSubscriptionAddedInDolibarr=Subscripció %s per a membre %s, afegida MemberSubscriptionModifiedInDolibarr=Subscripció %s per a membre %s, modificada MemberSubscriptionDeletedInDolibarr=Subscripció %s per a membre %s, eliminada @@ -66,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Enviament %s retornat a l'estat d'esborrany ShipmentDeletedInDolibarr=Expedició %s eliminada ShipmentCanceledInDolibarr=Enviament %s cancel·lat ReceptionValidatedInDolibarr=S'ha validat la recepció %s +ReceptionClassifyClosedInDolibarr=Recepció %s classificada tancada OrderCreatedInDolibarr=Comanda %s creada OrderValidatedInDolibarr=Comanda %s validada OrderDeliveredInDolibarr=Comanda %s classificada com a enviada @@ -131,9 +134,9 @@ AgendaUrlOptions1=Podeu també afegir aquests paràmetres al filtre de sortida: AgendaUrlOptions3=logina=%s ​​per a restringir insercions a les accions creades per l'usuari %s. AgendaUrlOptionsNotAdmin=logina=!%s ​​per a restringir la producció d'accions que no pertanyen a l'usuari %s. AgendaUrlOptions4=logint=%s per a restringir la producció d'accions assignades a l'usuari %s (propietari i altres). -AgendaUrlOptionsProject=project=PROJECT_ID per a restringir la sortida d'accions associades al projecta PROJECT_ID. -AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto per excloure esdeveniments automàtics. -AgendaUrlOptionsIncludeHolidays=  includeholidays = 1 per incloure esdeveniments de vacances. +AgendaUrlOptionsProject= project=__PROJECT_ID__ per a restringir la sortida a accions vinculades al projecte __PROJECT_ID__. +AgendaUrlOptionsNotAutoEvent= notactiontype=systemauto per a excloure els esdeveniments automàtics. +AgendaUrlOptionsIncludeHolidays= includeholidays=1 per a incloure esdeveniments de vacances. AgendaShowBirthdayEvents=Aniversaris de contactes AgendaHideBirthdayEvents=Amaga els aniversaris dels contactes Busy=Ocupat @@ -146,7 +149,7 @@ ExtSites=Calendaris externs ExtSitesEnableThisTool=Mostra calendaris externs (definit a la configuració global) a Agenda. No afecta els calendaris externs definits pels usuaris. ExtSitesNbOfAgenda=Nombre de calendaris AgendaExtNb=Calendari núm. %s -ExtSiteUrlAgenda=Url d'accés a l'arxiu. ical +ExtSiteUrlAgenda=URL per a accedir al fitxer .ical ExtSiteNoLabel=Sense descripció VisibleTimeRange=Rang de temps visible VisibleDaysRange=Rang de dies visible @@ -157,6 +160,7 @@ DateActionBegin=Data d'inici de l'esdeveniment ConfirmCloneEvent=Estàs segur que vols clonar l'esdeveniment %s? RepeatEvent=Repeteix esdeveniment OnceOnly=Una sola vegada +EveryDay=Cada dia EveryWeek=Cada setmana EveryMonth=Cada mes DayOfMonth=Dia del mes @@ -172,3 +176,4 @@ AddReminder=Crea una notificació de recordatori automàtica per a aquest esdeve ErrorReminderActionCommCreation=S'ha produït un error en crear la notificació de recordatori per a aquest esdeveniment BrowserPush=Notificació emergent del navegador ActiveByDefault=Habilitat per defecte +Until=fins a diff --git a/htdocs/langs/ca_ES/assets.lang b/htdocs/langs/ca_ES/assets.lang index 5d9b4fd3896..a1c550c59eb 100644 --- a/htdocs/langs/ca_ES/assets.lang +++ b/htdocs/langs/ca_ES/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,50 +16,171 @@ # # Generic # -Assets = Actius -NewAsset = Nou actiu -AccountancyCodeAsset = Codi de compte (actius) -AccountancyCodeDepreciationAsset = Codi de compte (compte d'amortització d'actius) -AccountancyCodeDepreciationExpense = Codi de compte (compte de despeses d'amortització) -NewAssetType=Tipus del nou actiu -AssetsTypeSetup=Configuració de tipus d'actius -AssetTypeModified=Tipus d'actiu modificat -AssetType=Tipus d'actiu +NewAsset=Actiu nou +AccountancyCodeAsset=Codi de compte (actius) +AccountancyCodeDepreciationAsset=Codi de compte (compte d'amortització d'actius) +AccountancyCodeDepreciationExpense=Codi de compte (compte de despeses d'amortització) AssetsLines=Actius DeleteType=Elimina -DeleteAnAssetType=Eliminar un tipus d'actiu -ConfirmDeleteAssetType=¿Està segur que vol eliminar aquest tipus d'actiu? -ShowTypeCard=Veure tipus '%s' +DeleteAnAssetType=Suprimir un model d'actiu +ConfirmDeleteAssetType=Esteu segur que voleu suprimir aquest model de recursos? +ShowTypeCard=Mostra el model '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Actius +ModuleAssetsName=Actius # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Descripció dels actius +ModuleAssetsDesc=Descripció dels actius # # Admin page # -AssetsSetup = Configuració dels actius -Settings = Configuració -AssetsSetupPage = Pàgina de configuració dels actius -ExtraFieldsAssetsType = Atributs complementaris (Tipus d'actiu) -AssetsType=Tipus d'actiu -AssetsTypeId=Id tipus d'actiu -AssetsTypeLabel=Etiqueta tipus d'actiu -AssetsTypes=Tipus d'actius +AssetSetup=Configuració dels actius +AssetSetupPage=Pàgina de configuració dels actius +ExtraFieldsAssetModel=Atributs complementaris (model de l'actiu) + +AssetsType=Model d'actiu +AssetsTypeId=Identificador del model d'actiu +AssetsTypeLabel=Nom del model d'actiu +AssetsTypes=Models d'actius +ASSET_ACCOUNTANCY_CATEGORY=Grup de comptabilitat de l'immobilitzat # # Menu # -MenuAssets = Actius -MenuNewAsset = Nou actiu -MenuTypeAssets = Tipus actiu -MenuListAssets = Llistat -MenuNewTypeAssets = Nou -MenuListTypeAssets = Llistat +MenuAssets=Actius +MenuNewAsset=Actiu nou +MenuAssetModels=Actius de model +MenuListAssets=Llistat +MenuNewAssetModel=Nou model d'actiu +MenuListAssetModels=Llistat # # Module # -NewAssetType=Tipus del nou actiu -NewAsset=Nou actiu +ConfirmDeleteAsset=De veritat voleu eliminar aquest recurs? + +# +# Tab +# +AssetDepreciationOptions=Opcions d'amortització +AssetAccountancyCodes=Comptes de comptabilitat +AssetDepreciation=Amortització + +# +# Asset +# +Asset=Actiu +Assets=Actius +AssetReversalAmountHT=Import de reversió (sense impostos) +AssetAcquisitionValueHT=Import de l'adquisició (sense impostos) +AssetRecoveredVAT=IVA recuperat +AssetReversalDate=Data de revocació +AssetDateAcquisition=Data d'adquisició +AssetDateStart=Data de posada en marxa +AssetAcquisitionType=Tipus d'adquisició +AssetAcquisitionTypeNew=Nou +AssetAcquisitionTypeOccasion=Usat +AssetType=Tipus d'actiu +AssetTypeIntangible=Intangible +AssetTypeTangible=Tangible +AssetTypeInProgress=En progrés +AssetTypeFinancial=Financera +AssetNotDepreciated=No s'amortitza +AssetDisposal=Disposició +AssetConfirmDisposalAsk=Esteu segur que voleu disposar de l'actiu %s ? +AssetConfirmReOpenAsk=Esteu segur que voleu reobrir l'actiu %s ? + +# +# Asset status +# +AssetInProgress=En progrés +AssetDisposed=Disposat +AssetRecorded=Comptabilitzat + +# +# Asset disposal +# +AssetDisposalDate=Data d'eliminació +AssetDisposalAmount=Valor d'eliminació +AssetDisposalType=Tipus d'eliminació +AssetDisposalDepreciated=Amortitzar l'any de la transferència +AssetDisposalSubjectToVat=Eliminació subjecta a IVA + +# +# Asset model +# +AssetModel=Model d'actiu +AssetModels=Models d'actius + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Depreciació econòmica +AssetDepreciationOptionAcceleratedDepreciation=Amortització accelerada (impost) +AssetDepreciationOptionDepreciationType=Tipus d'amortització +AssetDepreciationOptionDepreciationTypeLinear=Lineal +AssetDepreciationOptionDepreciationTypeDegressive=Degressiva +AssetDepreciationOptionDepreciationTypeExceptional=Excepcional +AssetDepreciationOptionDegressiveRate=Taxa decreixent +AssetDepreciationOptionAcceleratedDepreciation=Amortització accelerada (impost) +AssetDepreciationOptionDuration=Duració +AssetDepreciationOptionDurationType=Tipus de durada +AssetDepreciationOptionDurationTypeAnnual=Anual +AssetDepreciationOptionDurationTypeMonthly=Mensual +AssetDepreciationOptionDurationTypeDaily=Diàriament +AssetDepreciationOptionRate=Tarifa (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Base d'amortització (IVA no inclòs) +AssetDepreciationOptionAmountBaseDeductibleHT=Base deduïble (IVA no inclòs) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Import total de l'última depreciació (IVA no inclòs) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Depreciació econòmica +AssetAccountancyCodeAsset=Actiu +AssetAccountancyCodeDepreciationAsset=Amortització +AssetAccountancyCodeDepreciationExpense=Despesa d'amortització +AssetAccountancyCodeValueAssetSold=Valor de l'actiu alienat +AssetAccountancyCodeReceivableOnAssignment=A cobrar en disposició +AssetAccountancyCodeProceedsFromSales=Ingressos de la disposició +AssetAccountancyCodeVatCollected=IVA recaptat +AssetAccountancyCodeVatDeductible=IVA recuperat sobre actius +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Amortització accelerada (impost) +AssetAccountancyCodeAcceleratedDepreciation=Compte +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Despesa d'amortització +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossessió/Provisió + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Base d'amortització (sense IVA) +AssetDepreciationBeginDate=Inici de l'amortització +AssetDepreciationDuration=Duració +AssetDepreciationRate=Tarifa (%%) +AssetDepreciationDate=Data d'amortització +AssetDepreciationHT=Amortització (sense IVA) +AssetCumulativeDepreciationHT=Amortització acumulada (IVA no inclòs) +AssetResidualHT=Valor residual (IVA no inclòs) +AssetDispatchedInBookkeeping=Amortització registrada +AssetFutureDepreciationLine=Depreciació futura +AssetDepreciationReversal=Reversió + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=No s'ha proporcionat l'identificador de l'actiu o el so del model +AssetErrorFetchAccountancyCodesForMode=Error en recuperar els comptes comptables per al mode d'amortització "%s" +AssetErrorDeleteAccountancyCodesForMode=Error en suprimir els comptes de comptabilitat del mode d'amortització "%s" +AssetErrorInsertAccountancyCodesForMode=Error en inserir els comptes comptables del mode d'amortització '%s' +AssetErrorFetchDepreciationOptionsForMode=Error en recuperar les opcions per al mode d'amortització "%s" +AssetErrorDeleteDepreciationOptionsForMode=Error en suprimir les opcions del mode d'amortització "%s". +AssetErrorInsertDepreciationOptionsForMode=Error en inserir les opcions del mode d'amortització "%s". +AssetErrorFetchDepreciationLines=Error en recuperar les línies d'amortització registrades +AssetErrorClearDepreciationLines=Error en depurar les línies d'amortització registrades (reversió i futur) +AssetErrorAddDepreciationLine=Error en afegir una línia d'amortització +AssetErrorCalculationDepreciationLines=Error en el càlcul de les línies d'amortització (recuperació i futur) +AssetErrorReversalDateNotProvidedForMode=La data de reversió no es proporciona per al mètode d'amortització "%s" +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=La data de reversió ha de ser superior o igual a l'inici de l'exercici fiscal en curs per al mètode d'amortització "%s" +AssetErrorReversalAmountNotProvidedForMode=L'import de la reversió no es proporciona per al mode d'amortització "%s". +AssetErrorFetchCumulativeDepreciation=Error en recuperar l'import de l'amortització acumulada de la línia d'amortització +AssetErrorSetLastCumulativeDepreciation=Error en registrar l'últim import de l'amortització acumulada diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang index 6a714996c26..85a966c9a0b 100644 --- a/htdocs/langs/ca_ES/banks.lang +++ b/htdocs/langs/ca_ES/banks.lang @@ -10,12 +10,12 @@ BankAccounts=Comptes bancaris BankAccountsAndGateways=Comptes bancaris | Passarel·les ShowAccount=Mostrar el compte AccountRef=Ref. compte financer -AccountLabel=Etiqueta compte financer +AccountLabel=Nom del compte financer CashAccount=Compte caixa/efectiu CashAccounts=Comptes caixa/efectiu CurrentAccounts=Comptes corrents SavingAccounts=Comptes d'estalvis -ErrorBankLabelAlreadyExists=Ja existeix l'etiqueta de compte financer +ErrorBankLabelAlreadyExists=El nom del compte financer ja existeix BankBalance=Saldo BankBalanceBefore=Saldo anterior BankBalanceAfter=Saldo posterior @@ -54,7 +54,7 @@ NewBankAccount=Compte nou NewFinancialAccount=Compte financer nou MenuNewFinancialAccount=Compte financer nou EditFinancialAccount=Edició compte -LabelBankCashAccount=Etiqueta compte o caixa +LabelBankCashAccount=Nom del banc o de l'efectiu AccountType=Tipus de compte BankType0=Compte d'estalvis BankType1=Compte bancari corrent @@ -108,13 +108,13 @@ SocialContributionPayment=Pagament d'impostos varis BankTransfer=Transferència bancària BankTransfers=Transferències bancàries MenuBankInternalTransfer=Transferència interna -TransferDesc=Utilitzeu la transferència interna per a transferir d'un compte a un altre, l'aplicació escriurà dos registres: un dèbit al compte d'origen i un crèdit al compte de destí. S'utilitzarà el mateix import, etiqueta i data per a aquesta transacció. +TransferDesc=Utilitzeu la transferència interna per a transferir d'un compte a un altre, l'aplicació escriurà dos registres: un dèbit al compte d'origen i un crèdit al compte de destí. S'utilitzarà el mateix import, nom i data per a aquesta transacció. TransferFrom=De TransferTo=Cap a TransferFromToDone=La transferència de %s cap a %s de %s %s s'ha creat. CheckTransmitter=Remitent ValidateCheckReceipt=Vols validar aquesta remesa de xec? -ConfirmValidateCheckReceipt=Esteu segur que voleu enviar aquest rebut de xec per validar-lo? No es podran fer canvis un cop validats. +ConfirmValidateCheckReceipt=Esteu segur que voleu enviar aquest rebut de xec per a la validació? No es podran fer canvis un cop validat. DeleteCheckReceipt=Vols suprimir aquesta remesa de xec? ConfirmDeleteCheckReceipt=Vols eliminar aquesta remesa de xec? BankChecks=Xec bancari @@ -143,12 +143,12 @@ ShowAllAccounts=Mostra per a tots els comptes FutureTransaction=Transacció futura. No és possible conciliar. SelectChequeTransactionAndGenerate=Seleccioneu / filtreu els xecs que s’inclouran al rebut del dipòsit de xecs. A continuació, feu clic a "Crea". InputReceiptNumber=Selecciona l'estat del compte bancari relacionat amb la conciliació. Utilitza un valor numèric que es pugui ordenar: AAAAMM o AAAAMMDD -EventualyAddCategory=Eventualment, indiqui una categoria en la qual classificar els registres +EventualyAddCategory=Finalment, especifiqueu una categoria on classificar els registres ToConciliate=A conciliar? ThenCheckLinesAndConciliate=A continuació, comproveu les línies presents en l'extracte bancari i feu clic DefaultRIB=Codi BAN per defecte AllRIB=Tots els codis BAN -LabelRIB=Etiqueta del codi BAN +LabelRIB=Nom BAN NoBANRecord=Codi BAN no registrat DeleteARib=Codi BAN eliminat ConfirmDeleteRib=Vols eliminar aquest registre BAN? @@ -166,14 +166,14 @@ VariousPayments=Pagaments varis ShowVariousPayment=Mostra pagaments diversos AddVariousPayment=Afegiu pagaments diversos VariousPaymentId=ID de pagament divers -VariousPaymentLabel=Etiqueta de pagament divers +VariousPaymentLabel=Nom de pagament varis ConfirmCloneVariousPayment=Confirmeu el clon d'un pagament divers SEPAMandate=Mandat SEPA YourSEPAMandate=La vostra ordre SEPA FindYourSEPAMandate=Aquest és el vostre mandat SEPA per a autoritzar la nostra empresa a fer una ordre de domiciliació bancària al vostre banc. Torneu-lo signat (escaneja el document signat) o envieu-lo per correu electrònic a AutoReportLastAccountStatement=Ompliu automàticament el camp "nombre d'extracte bancari" amb l'últim número de l'extracte al fer la conciliació -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=Control d'efectiu TPV +NewCashFence=Nou control d'efectiu (obertura o tancament) BankColorizeMovement=Color de moviments BankColorizeMovementDesc=Si aquesta funció està habilitada, podeu triar un color de fons específic per als moviments de dèbit o de crèdit BankColorizeMovementName1=Color de fons pel moviment de dèbit @@ -183,5 +183,5 @@ NoBankAccountDefined=No s'ha definit cap compte bancari NoRecordFoundIBankcAccount=No s'ha trobat cap registre al compte bancari. Normalment, això passa quan un registre s’ha suprimit manualment de la llista de transaccions del compte bancari (per exemple, durant una conciliació del compte bancari). Una altra raó és que el pagament es va registrar quan es va desactivar el mòdul "%s". AlreadyOneBankAccount=Ja s'ha definit un compte bancari SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Transferència SEPA: "Tipus de pagament" al nivell "Transferència de crèdit". -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Quan es genera un fitxer XML SEPA per a transferències de crèdit, la secció "PaymentTypeInformation" ara es pot col·locar dins de la secció "CreditTransferTransactionInformation" (en lloc de la secció "Pagament"). Us recomanem fermament que no marqueu aquesta opció per col·locar PaymentTypeInformation al nivell de pagament, ja que tots els bancs no l'acceptaran necessàriament al nivell CreditTransferTransactionInformation. Poseu-vos en contacte amb el vostre banc abans de col·locar PaymentTypeInformation al nivell CreditTransferTransactionInformation. -ToCreateRelatedRecordIntoBank=Per crear un registre bancari relacionat que falta +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Quan es genera un fitxer XML SEPA per a transferències de crèdit, la secció "PaymentTypeInformation" ara es pot col·locar dins de la secció "CreditTransferTransactionInformation" (en lloc de la secció "Pagament"). Us recomanem fermament que no marqueu aquesta opció per a col·locar PaymentTypeInformation al nivell de pagament, ja que tots els bancs no l'acceptaran necessàriament al nivell CreditTransferTransactionInformation. Poseu-vos en contacte amb el vostre banc abans de col·locar PaymentTypeInformation al nivell CreditTransferTransactionInformation. +ToCreateRelatedRecordIntoBank=Per a crear un registre bancari relacionat que falta diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index 9f902fcaa56..04cfb614f83 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Estadístiques factures a clients BillsStatisticsSuppliers=Estadístiques de Factures de proveïdors DisabledBecauseDispatchedInBookkeeping=Desactivat perquè la factura ja s'ha comptabilitzat DisabledBecauseNotLastInvoice=Desactivat perquè la factura no es pot esborrar. Algunes factures s'han registrat després d'aquesta i això crearia espais buits al comptador. -DisabledBecauseNotErasable=Desactivat perque no es pot eliminar +DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable. This invoice is not the last one in situation invoice cycle. +DisabledBecauseNotErasable=S'ha desactivat perquè no es pot esborrar InvoiceStandard=Factura estàndard InvoiceStandardAsk=Factura estàndard InvoiceStandardDesc=Aquest tipus de factura és la factura tradicional. També es coneix com factura de dèbit (del verb deure). +InvoiceStandardShort=Estàndard InvoiceDeposit=Factura de bestreta InvoiceDepositAsk=Factura de bestreta InvoiceDepositDesc=La factura de bestreta és el tipus de factura que es crea a la recepció d'una bestreta, si no és possible realitzar el pagament sobre una factura definitiva. @@ -24,8 +26,9 @@ InvoiceProForma=Factura proforma InvoiceProFormaAsk=Factura proforma InvoiceProFormaDesc=La factura proforma és la imatge d'una factura definitiva, però que no té cap valor comptable. InvoiceReplacement=Factura rectificativa +InvoiceReplacementShort=Substitució InvoiceReplacementAsk=Factura rectificativa de la factura -InvoiceReplacementDesc=La factura de substitució s’utilitza per substituir completament una factura sense que s’hagi rebut cap pagament.

    Nota: Només es poden substituir les factures sense pagament. Si la factura que reemplaça encara no està tancada, es tancarà automàticament a "abandonat". +InvoiceReplacementDesc=La factura de substitució s’utilitza per a substituir completament una factura sense que s’hagi rebut cap pagament.

    Nota: Només es poden substituir les factures sense pagament. Si la factura que reemplaça encara no està tancada, es tancarà automàticament a 'abandonada' InvoiceAvoir=Abonament InvoiceAvoirAsk=Abonament per factura rectificativa InvoiceAvoirDesc=L'abonament és una factura negativa destinada a compensar un import de factura que difereix de l'import realment pagat (per haver pagat de més o per devolució de productes, per exemple). @@ -87,7 +90,7 @@ DefaultPaymentMode=Forma de pagament predeterminada DefaultBankAccount=Compte bancari per defecte IdPaymentMode=Forma de pagament (Id) CodePaymentMode=Forma de pagament (codi) -LabelPaymentMode=Forma de pagament (etiqueta) +LabelPaymentMode=Forma de pagament (nom) PaymentModeShort=Forma de pagament PaymentTerm=Condicions de pagament PaymentConditions=Condicions de pagament @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Aquesta part o u ErrorInvoiceIsNotLastOfSameType=Error: la data de la factura %s és %s. Ha de ser posterior o igual a l'última data per a les factures del mateix tipus (%s). Si us plau, canvieu la data de la factura. BillFrom=Emissor BillTo=Enviar a +ShippingTo=Shipping to ActionsOnBill=Accions en la factura RecurringInvoiceTemplate=Plantilla / Factura recurrent NoQualifiedRecurringInvoiceTemplateFound=No es pot generar cap factura de plantilla periòdica. @@ -237,9 +241,9 @@ AlreadyPaidNoCreditNotesNoDeposits=Ja pagat (exclosos els abonaments i bestretes Abandoned=Abandonada RemainderToPay=Queda sense pagar RemainderToPayMulticurrency=La moneda original pendent de pagament -RemainderToTake=Queda per cobrar +RemainderToTake=Import restant per a cobrar RemainderToTakeMulticurrency=Import restant, moneda original -RemainderToPayBack=Import pendent per reemborsar +RemainderToPayBack=Import restant a reemborsar RemainderToPayBackMulticurrency=Import restant per reembossar, moneda original NegativeIfExcessRefunded=negatiu si es reemborsa l'excés Rest=Pendent @@ -400,7 +404,7 @@ DateIsNotEnough=Encara no s'ha arribat a la data InvoiceGeneratedFromTemplate=La factura %s s'ha generat des de la plantilla de factura recurrent %s GeneratedFromTemplate=Generat a partir de la plantilla factura %s WarningInvoiceDateInFuture=Alerta, la data de factura és major que la data actual -WarningInvoiceDateTooFarInFuture=Alerta, la data de factura és molt antiga respecte la data actual +WarningInvoiceDateTooFarInFuture=Avís, la data de la factura està massa lluny de la data actual ViewAvailableGlobalDiscounts=Veure descomptes disponibles GroupPaymentsByModOnReports=Agrupar pagaments per mode als informes # PaymentConditions @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 dies PaymentCondition14D=14 dies PaymentConditionShort14DENDMONTH=14 dies final de mes PaymentCondition14DENDMONTH=En els 14 dies següents a final de mes -FixAmount=Import fixe: 1 línia amb l'etiqueta '%s' +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% dipòsit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% dipòsit, la resta a l'entrega +FixAmount=Import fix: 1 línia amb el nom '%s' VarAmount=Import variable (%% total) -VarAmountOneLine=Quantitat variable (%% tot.) - 1 línia amb l'etiqueta '%s' +VarAmountOneLine=Import variable (%% tot.) - 1 línia amb el nom '%s' VarAmountAllLines=Import variable (%% tot.): Totes les línies des de l'origen +DepositPercent=Dipòsit %% +DepositGenerationPermittedByThePaymentTermsSelected=Això ho permeten les condicions de pagament seleccionades +GenerateDeposit=Genereu una factura de dipòsit %s%% +ValidateGeneratedDeposit=Valida el dipòsit generat +DepositGenerated=Dipòsit generat +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Només podeu generar automàticament un ingrés a partir d'una proposta o d'una comanda +ErrorPaymentConditionsNotEligibleToDepositCreation=Les condicions de pagament escollides no són elegibles per a la generació automàtica de dipòsits # PaymentType PaymentTypeVIR=Transferència bancària PaymentTypeShortVIR=Transferència bancària PaymentTypePRE=Ordre de pagament de domiciliació +PaymentTypePREdetails=(al compte *-%s) PaymentTypeShortPRE=Ordre de pagament de dèbit PaymentTypeLIQ=Efectiu PaymentTypeShortLIQ=Efectiu @@ -612,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Pagament registrat i factura %s configurada SendEmailsRemindersOnInvoiceDueDate=Envieu un recordatori per correu electrònic per a les factures no pagades MakePaymentAndClassifyPayed=Registre de pagament BulkPaymentNotPossibleForInvoice=El pagament massiu no és possible per a la factura %s (tipus o estat incorrecte) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Categoria d'operacions +MentionCategoryOfOperations0=Lliurament de mercaderies +MentionCategoryOfOperations1=Prestació de serveis +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/ca_ES/blockedlog.lang b/htdocs/langs/ca_ES/blockedlog.lang index 4092a8f8a1e..f878fc12d5a 100644 --- a/htdocs/langs/ca_ES/blockedlog.lang +++ b/htdocs/langs/ca_ES/blockedlog.lang @@ -42,16 +42,16 @@ BlockedlogInfoDialog=Detalls del registre ListOfTrackedEvents=Llista d'esdeveniments seguits Fingerprint=Empremtes dactilars DownloadLogCSV=Exporta els registres arxivats (CSV) -logDOC_PREVIEW=Vista prèvia d'un document validat per imprimir o descarregar -logDOC_DOWNLOAD=Descarregar un document validat per imprimir o enviar +logDOC_PREVIEW=Vista prèvia d'un document validat per a imprimir o descarregar +logDOC_DOWNLOAD=Descàrrega d'un document validat per a imprimir o enviar DataOfArchivedEvent=Dades completes d'esdeveniments arxivats ImpossibleToReloadObject=Objecte original (tipus %s, identificador %s) no enllaçat (vegeu la columna "Dades completes" per a obtenir dades desades inalterables) BlockedLogAreRequiredByYourCountryLegislation=El mòdul de registres inalterables pot ser requerit per la legislació del vostre país. La desactivació d'aquest mòdul pot fer que qualsevol transacció futura sigui invàlida pel que fa a la llei i l'ús del programari legal, ja que no es pot validar mitjançant una auditoria fiscal. BlockedLogActivatedBecauseRequiredByYourCountryLegislation=El mòdul de registres inalterables s'ha activat a causa de la legislació del vostre país. La desactivació d'aquest mòdul pot fer que qualsevol transacció futura sigui invàlida pel que fa a la llei i l'ús del programari legal, ja que no es pot validar mitjançant una auditoria fiscal. BlockedLogDisableNotAllowedForCountry=Llista de països on l'ús d'aquest mòdul és obligatori (només per impedir que es desactivi el mòdul per error, si el vostre país està en aquesta llista, la desactivació del mòdul no és possible sense editar aquesta llista. Noteu també que habilitar / desactivar aquest mòdul seguiu una pista en el registre inalterable). OnlyNonValid=No vàlid -TooManyRecordToScanRestrictFilters=Hi ha massa registres per escanejar / analitzar. Limiteu la llista amb filtres més restrictius. +TooManyRecordToScanRestrictFilters=Hi ha massa registres per a escanejar/analitzar. Limita la llista amb filtres més restrictius. RestrictYearToExport=Restringeix el mes / any per a exportar -BlockedLogEnabled=S'ha habilitat el sistema per fer el seguiment d'esdeveniments en registres inalterables -BlockedLogDisabled=El sistema per fer un seguiment dels esdeveniments en registres inalterables s'ha desactivat després de fer algunes gravacions. Hem desat una empremta digital especial per fer un seguiment de la cadena com a trencada -BlockedLogDisabledBis=S'ha desactivat el sistema per fer el seguiment d'esdeveniments en registres inalterables. Això és possible perquè encara no s'ha fet cap registre. +BlockedLogEnabled=S'ha habilitat el sistema per a fer el seguiment d'esdeveniments en registres inalterables +BlockedLogDisabled=El sistema per a fer el seguiment d'esdeveniments en registres inalterables s'ha desactivat després de fer algunes gravacions. Hem desat una empremta digital especial per a fer un seguiment de la cadena com a trencada +BlockedLogDisabledBis=S'ha desactivat el sistema per a fer el seguiment d'esdeveniments en registres inalterables. Això és possible perquè encara no s'ha fet cap registre. diff --git a/htdocs/langs/ca_ES/bookmarks.lang b/htdocs/langs/ca_ES/bookmarks.lang index 6cd64eb6bf9..a35255308eb 100644 --- a/htdocs/langs/ca_ES/bookmarks.lang +++ b/htdocs/langs/ca_ES/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Trieu si la pàgina enllaçada s BookmarksManagement=Gestió de marcadors BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=No s'han definit cap marcador +NoBookmarkFound=No s'ha trobat cap marcador diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index e310f84d984..21c7a45e648 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Últimes subscripcions de membres BoxFicheInter=Últimes intervencions BoxCurrentAccounts=Balanç de comptes oberts BoxTitleMemberNextBirthdays=Aniversaris d'aquest mes (membres) -BoxTitleMembersByType=Socis per tipus +BoxTitleMembersByType=Membres per tipus i estat BoxTitleMembersSubscriptionsByYear=Subscripcions de membres per any BoxTitleLastRssInfos=Últimes %s notícies de %s BoxTitleLastProducts=Productes / Serveis: últims %s modificats @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Comandes del proveïdor en espera de rec BoxTitleLastModifiedContacts=Adreces i contactes: últims %s modificats BoxMyLastBookmarks=Adreces d'interès: últims %s BoxOldestExpiredServices=Serveis antics expirats +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Últims %s contactes amb serveis actius expirats BoxTitleLastActionsToDo=Últimes %s accions a fer +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Últims contractes %s que es van modificar BoxTitleLastModifiedDonations=Últimes donacions %s que es van modificar BoxTitleLastModifiedExpenses=Últims informes de despeses %s que es van modificar diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang index 0f070a8fbdc..c94812d4892 100644 --- a/htdocs/langs/ca_ES/cashdesk.lang +++ b/htdocs/langs/ca_ES/cashdesk.lang @@ -30,7 +30,7 @@ BankToPay=Compte de cobrament ShowCompany=Veure empresa ShowStock=Veure magatzem DeleteArticle=Feu clic per treure aquest article -FilterRefOrLabelOrBC=Cerca (Ref/Etiq.) +FilterRefOrLabelOrBC=Cerca (Ref/Nom) UserNeedPermissionToEditStockToUsePos=Es demana disminuir l'estoc en la creació de la factura, de manera que l'usuari que utilitza el TPV ha de tenir permís per editar l'estoc. DolibarrReceiptPrinter=Impressora de tiquets de Dolibarr PointOfSale=Punt de venda @@ -50,8 +50,8 @@ Footer=Peu de pàgina AmountAtEndOfPeriod=Import al final del període (dia, mes o any) TheoricalAmount=Import teòric RealAmount=Import real -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Tancament de caixa +CashFenceDone=Tancament de caixa fet per al període NbOfInvoices=Nombre de factures Paymentnumpad=Tipus de pad per a introduir el pagament Numberspad=Números Pad @@ -59,7 +59,7 @@ BillsCoinsPad=Pad de monedes i bitllets DolistorePosCategory=Mòduls TakePOS i altres solucions POS per a Dolibarr TakeposNeedsCategories=TakePOS necessita almenys una categoria de productes per a funcionar TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS necessita almenys una categoria a sota de la categoria %s per funcionar -OrderNotes=Pot afegir algunes notes a cada element ordenat +OrderNotes=Afegir notes a cada article demanat CashDeskBankAccountFor=Compte predeterminat a utilitzar per als pagaments NoPaimementModesDefined=No hi ha cap mode de pagament definit a la configuració de TakePOS TicketVatGrouped=Agrupa IVA per tipus als tiquets|rebuts @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 = L'etiqueta
    {TN} s'utilitza per a afegir TakeposGroupSameProduct=Agrupa les mateixes línies de productes StartAParallelSale=Comenceu una venda nova paral·lela SaleStartedAt=La venda va començar a %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Obriu la finestra emergent "Control de caixa" quan obriu el TPV +CloseCashFence=Tanca el control de caixa CashReport=Informe d'efectiu MainPrinterToUse=Impressora principal a utilitzar OrderPrinterToUse=Impressora de comandes a utilitzar @@ -113,13 +113,13 @@ BarRestaurant=Bar Restaurant AutoOrder=Comanda del propi client RestaurantMenu=Menú CustomerMenu=Menú de clients -ScanToMenu=Escaneja el codi QR per veure el menú +ScanToMenu=Escaneja el codi QR per a veure el menú ScanToOrder=Escaneja el codi QR per demanar Appearance=Aparença HideCategoryImages=Amaga les imatges de la categoria HideProductImages=Amaga les imatges del producte NumberOfLinesToShow=Nombre de línies d'imatges a mostrar -DefineTablePlan=Definiu el pla de les taules +DefineTablePlan=Definiu el mapa de taules GiftReceiptButton=Afegeix un botó "Tiquet regal" GiftReceipt=Tiquet regal ModuleReceiptPrinterMustBeEnabled=La impressora de recepció del mòdul deu haver estat habilitada primer @@ -131,8 +131,17 @@ ShowPriceHTOnReceipt = Mostra la columna amb el preu sense impostos (al rebut) CustomerDisplay=Visualització del client SplitSale=Venda dividida PrintWithoutDetailsButton=Afegeix el botó "Imprimeix sense detalls". -PrintWithoutDetailsLabelDefault=Etiqueta de línia per defecte a la impressió sense detalls +PrintWithoutDetailsLabelDefault=Nom de línia per defecte a la impressió sense detalls PrintWithoutDetails=Imprimeix sense detalls YearNotDefined=L'any no està definit TakeposBarcodeRuleToInsertProduct=Regla de codi de barres per inserir el producte -TakeposBarcodeRuleToInsertProductDesc=Regla per a extreure la referència del producte + una quantitat d'un codi de barres escanejat.
    Si està buit (valor per defecte), l'aplicació utilitzarà el codi de barres complet escanejat per a trobar el producte.

    Si es defineix, sintaxi ha de ser:
    ref: NB + Pr: NB + qd: NB + altres: NB
    on NB és el nombre de caràcters a utilitzar per a extreure dades del codi de barres escanejat amb:
    • ref : referència del producte
    • qu : quantitat de conjunt a l'inserir elements (unitats)
    • qd : quantitat de conjunt a l'inserir article (decimals)
    • altra : altres caràcters
    +TakeposBarcodeRuleToInsertProductDesc=Regla per a extreure la referència del producte + una quantitat d'un codi de barres escanejat.
    Si està buit (valor per defecte), l'aplicació utilitzarà el codi de barres complet escanejat per a trobar el producte.

    Si es defineix, sintaxi ha de ser:
    ref: NB + Pr: NB + qd: NB + altres: NB
    on NB és el nombre de caràcters a utilitzar per a extreure dades del codi de barres escanejat amb:
    • ref : referència del producte
    • qu : quantitat de conjunt en inserir elements (unitats)
    • qd : quantitat de conjunt en inserir article (decimals)
    • altra : altres caràcters
    +AlreadyPrinted=Ja està imprès +HideCategories=Amaga les categories +HideStockOnLine=Amaga l'estoc en línia +ShowOnlyProductInStock=Mostra els productes en estoc +ShowCategoryDescription=Mostra la descripció de la categoria +ShowProductReference=Mostra la referència dels productes +UsePriceHT=Utilitza el preu sense impostos i no el preu amb impostos inclosos +TerminalName=Terminal %s +TerminalNameDesc=Nom del terminal diff --git a/htdocs/langs/ca_ES/categories.lang b/htdocs/langs/ca_ES/categories.lang index d5c556fd63b..10b131874a7 100644 --- a/htdocs/langs/ca_ES/categories.lang +++ b/htdocs/langs/ca_ES/categories.lang @@ -29,12 +29,12 @@ NoSubCat=Cap subcategoria. SubCatOf=Subcategoria FoundCats=Etiquetes trobades ImpossibleAddCat=Impossible afegir l'etiqueta %s -WasAddedSuccessfully=s'ha afegit amb èxit. -ObjectAlreadyLinkedToCategory=L'element ja està enllaçat a aquesta etiqueta +WasAddedSuccessfully= %s s'ha afegit correctament. +ObjectAlreadyLinkedToCategory=L'element ja està enllaçat a aquesta etiqueta. ProductIsInCategories=El producte/servei està enllaçat a les següents etiquetes CompanyIsInCustomersCategories=Aquest tercer està enllaçat a les següents etiquetes de clients i clients potencials CompanyIsInSuppliersCategories=Aquest tercer està enllaçat a les següents etiquetes de proveïdors -MemberIsInCategories=Aquest soci està enllçat a les següents etiquetes de socis +MemberIsInCategories=Aquest soci està enllaçat amb les següents etiquetes de socis ContactIsInCategories=Aquest contacte està enllaçat amb les següents etiquetes de contactes ProductHasNoCategory=Aquest producte/servei no es troba en cap etiqueta CompanyHasNoCategory=Aquest tercer no es troba en cap etiqueta / categoria @@ -42,6 +42,7 @@ MemberHasNoCategory=Aquest soci no es troba en cap etiqueta ContactHasNoCategory=Aquest contacte no es troba en cap etiqueta ProjectHasNoCategory=Aquest projecte no es troba en cap etiqueta ClassifyInCategory=Afegeix a una etiqueta +RemoveCategory=Remove category NotCategorized=Sense etiqueta CategoryExistsAtSameLevel=Aquesta categoria ja existeix per aquesta referència ContentsVisibleByAllShort=Contingut visible per tots @@ -67,7 +68,8 @@ StockCategoriesShort=Etiquetes / categories de magatzem ThisCategoryHasNoItems=Aquesta categoria no conté cap element. CategId=ID d'etiqueta ParentCategory=Etiqueta mare -ParentCategoryLabel=Descripció de l'etiqueta mare +ParentCategoryID=ID de l'etiqueta/categoria principal +ParentCategoryLabel=Nom de l'etiqueta mare CatSupList=Llista d'etiquetes de proveïdors CatCusList=Llista d'etiquetes de clients/potencials CatProdList=Llistat d'etiquetes de productes @@ -86,15 +88,18 @@ DeleteFromCat=Elimina de l'etiqueta ExtraFieldsCategories=Atributs complementaris CategoriesSetup=Configuració d'etiquetes CategorieRecursiv=Enllaça amb l'etiqueta mare automàticament -CategorieRecursivHelp=Si l'opció està activada, quan afegiu un producte a una subcategoria, el producte també s’afegirà a la categoria pare. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Afegir el següent producte/servei AddCustomerIntoCategory=Assigna la categoria al client AddSupplierIntoCategory=Assigna la categoria al proveïdor +AssignCategoryTo=Assigna una categoria a ShowCategory=Mostra etiqueta ByDefaultInList=Per defecte en el llistat ChooseCategory=Tria la categoria StocksCategoriesArea=Categories de magatzems +TicketsCategoriesArea=Categories d'entrades ActionCommCategoriesArea=Categories d'esdeveniments WebsitePagesCategoriesArea=Categories de Pàgines/Contenidors KnowledgemanagementsCategoriesArea=Categories de l'article KM -UseOrOperatorForCategories=Utilitzeu l'operador "O" per a les categories +UseOrOperatorForCategories=Utilitzeu l'operador «OR» per a les categories +AddObjectIntoCategory=Afegeix un objecte a la categoria diff --git a/htdocs/langs/ca_ES/commercial.lang b/htdocs/langs/ca_ES/commercial.lang index 191ee60e8f0..43ab714cd2a 100644 --- a/htdocs/langs/ca_ES/commercial.lang +++ b/htdocs/langs/ca_ES/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Estat del pressupost DraftPropals=Pressupostos esborrany NoLimit=Sense límit ToOfferALinkForOnlineSignature=Enllaç per a la signatura en línia -WelcomeOnOnlineSignaturePage=Benvingut a la pàgina per a acceptar pressupostos de %s -ThisScreenAllowsYouToSignDocFrom=Aquesta pantalla us permet acceptar i signar, o rebutjar, una cotització / proposta comercial -ThisIsInformationOnDocumentToSign=Aquesta és la informació del document a acceptar o rebutjar +WelcomeOnOnlineSignaturePageProposal=Benvingut a la pàgina per a acceptar pressupostos de %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Aquesta pantalla us permet acceptar i signar, o rebutjar, una cotització / proposta comercial +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Aquesta és la informació del document a acceptar o rebutjar +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Signatura de pressupost / proposta comercial %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=La funcionalitat de signatura en línia estava desactivada o bé el document va ser generat abans que fos habilitada la funció diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang index 4d302381ee7..44780aca714 100644 --- a/htdocs/langs/ca_ES/companies.lang +++ b/htdocs/langs/ca_ES/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Naturalesa del tercer NatureOfContact=Natura del contacte Address=Adreça State=Província +StateId=ID de l'estat StateCode=Codi Estat/Província StateShort=Estat Region=Regió Region-State=Regió - Estat Country=País CountryCode=Codi del país -CountryId=Id. de país +CountryId=ID del país Phone=Telèfon PhoneShort=Telèfon Skype=Skype @@ -105,9 +106,9 @@ WrongSupplierCode=El codi del proveïdor no és vàlid CustomerCodeModel=Model de codi client SupplierCodeModel=Model de codi de proveïdor Gencod=Codi de barra -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=Codi de barres de preu ref ##### Professional ID ##### -ProfId1Short=CIF/NIF +ProfId1Short=NIF ProfId2Short=Núm. S.S. ProfId3Short=CNAE ProfId4Short=Prof. id 4 @@ -119,25 +120,25 @@ ProfId3=ID professional 3 ProfId4=ID professional 4 ProfId5=ID professional 5 ProfId6=ID professional 6 -ProfId1AR=CIF/NIF +ProfId1AR=CUIT/CUIL ProfId2AR=Ingressos bruts ProfId3AR=- ProfId4AR=- ProfId5AR=- ProfId6AR=- -ProfId1AT=CIF/NIF +ProfId1AT=USt.-IdNr ProfId2AT=Núm. seguretat social ProfId3AT=CNAE ProfId4AT=- ProfId5AT=Número EORI ProfId6AT=- -ProfId1AU=CIF/NIF +ProfId1AU=ABN ProfId2AU=- ProfId3AU=- ProfId4AU=- ProfId5AU=- ProfId6AU=- -ProfId1BE=CIF/NIF +ProfId1BE=Número professional ProfId2BE=- ProfId3BE=- ProfId4BE=- @@ -151,11 +152,11 @@ ProfId4BR=CPF #ProfId6BR=INSS ProfId1CH=Número UID ProfId2CH=- -ProfId3CH=CIF/NIF +ProfId3CH=Número federal ProfId4CH=Num registre de comerç ProfId5CH=Número EORI ProfId6CH=- -ProfId1CL=CIF/NIF +ProfId1CL=R.U.T. ProfId2CL=- ProfId3CL=- ProfId4CL=- @@ -163,35 +164,35 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Registre Mercantil) ProfId2CM=Id. prof. 2 (núm. contribuent) -ProfId3CM=Id. prof. 3 (Decret de creació) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId3CM=Id. prof. 3 (núm. decret de creació) +ProfId4CM=Id. prof. 4 (certificat de dipòsit núm.) +ProfId5CM=Id. prof. 5 (altres) ProfId6CM=- ProfId1ShortCM=Registre Mercantil ProfId2ShortCM=Contribuent núm. -ProfId3ShortCM=Decret de creació -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=Nº de decret de creació +ProfId4ShortCM=Certificat de dipòsit núm. ProfId5ShortCM=Altres ProfId6ShortCM=- -ProfId1CO=CIF/NIF +ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- ProfId3CO=- ProfId4CO=- ProfId5CO=- ProfId6CO=- -ProfId1DE=CIF/NIF +ProfId1DE=Prof Id 1 (USt.-IdNr) ProfId2DE=Núm. seguretat social ProfId3DE=CNAE ProfId4DE=- ProfId5DE=Número EORI ProfId6DE=- -ProfId1ES=CIF/NIF +ProfId1ES=NIF ProfId2ES=Núm. seguretat social ProfId3ES=CNAE ProfId4ES=Núm. col·legiat ProfId5ES=Prof Id 5 (número EORI) ProfId6ES=- -ProfId1FR=CIF/NIF +ProfId1FR=SIREN ProfId2FR=Núm. seguretat social ProfId3FR=CNAE ProfId4FR=RCS/RM @@ -209,13 +210,13 @@ ProfId3GB=SIC ProfId4GB=- ProfId5GB=- ProfId6GB=- -ProfId1HN=CIF/NIF +ProfId1HN=RTN ProfId2HN=- ProfId3HN=- ProfId4HN=- ProfId5HN=- ProfId6HN=- -ProfId1IN=CIF/NIF +ProfId1IN=TIN ProfId2IN=Núm. seguretat social ProfId3IN=CNAE ProfId4IN=Id prof. 4 @@ -227,19 +228,19 @@ ProfId3IT=- ProfId4IT=- ProfId5IT=Número EORI ProfId6IT=- -ProfId1LU=CIF/NIF (R.C.S. Luxemburg) +ProfId1LU=R.C.S. Luxemburg ProfId2LU=Núm. S.S. (permís comercial) ProfId3LU=- ProfId4LU=- ProfId5LU=Número EORI ProfId6LU=- -ProfId1MA=CIF/NIF +ProfId1MA=R.C. ProfId2MA=Núm. seguretat social ProfId3MA=CNAE ProfId4MA=Id prof. 4 (C.N.S.S.) ProfId5MA=Id. prof. 5 (I.C.E.) ProfId6MA=- -ProfId1MX=CIF/NIF +ProfId1MX=R.F.C ProfId2MX=Núm. seguretat social ProfId3MX=CNAE ProfId4MX=- @@ -251,7 +252,7 @@ ProfId3NL=- ProfId4NL=- ProfId5NL=Número EORI ProfId6NL=- -ProfId1PT=CIF/NIF +ProfId1PT=NIPC ProfId2PT=Núm. seguretat social ProfId3PT=CNAE ProfId4PT=Conservatori @@ -263,7 +264,7 @@ ProfId3SN=- ProfId4SN=- ProfId5SN=- ProfId6SN=- -ProfId1TN=CIF/NIF +ProfId1TN=RC ProfId2TN=Matrícula fiscal ProfId3TN=CNAE ProfId4TN=CCC @@ -281,7 +282,7 @@ ProfId3RO=CAEN ProfId4RO=EUID ProfId5RO=Prof Id 5 (número EORI) ProfId6RO=- -ProfId1RU=CIF/NIF +ProfId1RU=OGRN ProfId2RU=Núm. seguretat social ProfId3RU=CNAE ProfId4RU=OKPO @@ -297,8 +298,8 @@ ProfId1DZ=RC ProfId2DZ=Art. ProfId3DZ=NIF ProfId4DZ=NIS -VATIntra=CIF/NIF Intracomunitari -VATIntraShort=CIF/NIF Intracomunitari +VATIntra=NIF Intracomunitari +VATIntraShort=NIF Intracomunitari VATIntraSyntaxIsValid=Sintaxi vàlida VATReturn=Devolució de l'IVA ProspectCustomer=Client potencial/Client @@ -312,11 +313,11 @@ CustomerAbsoluteDiscountShort=Descompte fixe CompanyHasRelativeDiscount=Aquest client té un descompte per defecte de %s%% CompanyHasNoRelativeDiscount=Aquest client no té descomptes relatius per defecte HasRelativeDiscountFromSupplier=Teniu un descompte predeterminat de %s%% d'aquest proveïdor -HasNoRelativeDiscountFromSupplier=No tens descomptes relatius per defecte d'aquest proveïdor +HasNoRelativeDiscountFromSupplier=No default relative discount from this vendor CompanyHasAbsoluteDiscount=Aquest client té descomptes disponibles (notes de crèdit o bestretes) per %s %s CompanyHasDownPaymentOrCommercialDiscount=Aquest client té un descompte disponible (comercial, de pagament) per a %s%s CompanyHasCreditNote=Aquest client encara té abonaments per %s %s -HasNoAbsoluteDiscountFromSupplier=No teniu disponible cap crèdit de descompte per aquest proveïdor +HasNoAbsoluteDiscountFromSupplier=No discount/credit available from this vendor HasAbsoluteDiscountFromSupplier=Disposes de descomptes (notes de crèdits o pagaments pendents) per a %s %s d'aquest proveïdor HasDownPaymentOrCommercialDiscountFromSupplier=Teniu descomptes disponibles (comercials, pagaments inicials) de %s %s d'aquest proveïdor HasCreditNoteFromSupplier=Teniu notes de crèdit per a %s %s d'aquest proveïdor @@ -382,7 +383,7 @@ CapitalOf=Capital de %s EditCompany=Edita l'empresa ThisUserIsNot=Aquest usuari no és client potencial, client o proveïdor VATIntraCheck=Verificar -VATIntraCheckDesc=L'enllaç %s permet consultar el NIF intracomunitari al servei de control europeu. Es requereix accés a internet per a que el servei funcioni. +VATIntraCheckDesc=El NIF Intracomunitari ha d'incloure el prefix del país. L'enllaç %s utilitza el servei europeu de verificació de NIF (VIES) que requereix accés a Internet des del servidor Dolibarr. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=Verifica el NIF Intracomunitari a la web de la Comissió Europea VATIntraManualCheck=També podeu comprovar manualment al lloc web de la Comissió Europea %s @@ -437,13 +438,13 @@ ImportDataset_company_2=Contactes/Adreces i atributs addicionals de tercers ImportDataset_company_3=Comptes Bancaris de tercers ImportDataset_company_4=Tercers/Comercials (Assigna usuaris comercials / tercers) PriceLevel=Nivell de preus -PriceLevelLabels=Regles del nivell de preus +PriceLevelLabels=Noms de nivell de preu DeliveryAddress=Adreça d'enviament AddAddress=Afegeix adreça SupplierCategory=Categoria del proveïdor JuridicalStatus200=Independent DeleteFile=Elimina el fitxer -ConfirmDeleteFile=Esteu segur de voler eliminar aquest fitxer? +ConfirmDeleteFile=Esteu segur que voleu suprimir aquest fitxer %s? AllocateCommercial=Assignat a un agent comercial Organization=Organisme FiscalYearInformation=Informació de l'any fiscal @@ -497,3 +498,5 @@ RestOfEurope=Resta d'Europa (CEE) OutOfEurope=Fora d’Europa (CEE) CurrentOutstandingBillLate=Factura pendent actual en retard BecarefullChangeThirdpartyBeforeAddProductToInvoice=Ves amb compte, en funció de la configuració del preu del producte, has de canviar de tercer abans d’afegir el producte al TPV. +EmailAlreadyExistsPleaseRewriteYourCompanyName=El correu electrònic ja existeix, si us plau, reescriu el nom de la teva empresa +TwoRecordsOfCompanyName=Hi ha més d'un registre per a aquesta empresa, poseu-vos en contacte amb nosaltres per a completar la vostra sol·licitud d'associació" diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index 4ed1ca6991d..5bbdda62aab 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -5,8 +5,8 @@ TaxModuleSetupToModifyRulesLT=Aneu a Configuració de l'empresa %sVAT collection%s
    per obtenir un càlcul estàndard -SeeVATReportInDueDebtMode=Consulteu l'informe %sVAT a debit%s per obtenir un càlcul amb una opció de facturació. +LT2ReportByQuartersES=Informe per taxa d'IRPF +SeeVATReportInInputOutputMode=Vegeu l'informe %sIVA recaptat%s per a un càlcul estàndard +SeeVATReportInDueDebtMode=Vegeu l'informe %sIVA degut%s per a un càlcul amb opció a la facturació RulesVATInServices=- Per als serveis, l'informe inclou l'IVA dels pagaments realment rebuts o pagats en funció de la data de pagament. RulesVATInProducts=- Per als actius materials, l'informe inclou l'IVA en funció de la data de pagament. RulesVATDueServices=- Per als serveis, l'informe inclou l'IVA de les factures vençudes, pagades o no, en funció de la data de la factura. RulesVATDueProducts=- Per als actius materials, l'informe inclou l'IVA de les factures vençudes, en funció de la data de la factura. -OptionVatInfoModuleComptabilite=Nota: Per als béns materials, caldria utilitzar la data de lliurament per per ser més just. +OptionVatInfoModuleComptabilite=Nota: Per als actius materials, s'hauria d'utilitzar la data de lliurament per a ser més just. ThisIsAnEstimatedValue=Aquesta és una vista prèvia, basada en esdeveniments empresarials i no des de la taula final del llibre major, de manera que els resultats finals poden diferir d'aquests valors de visualització prèvia PercentOfInvoice=%%/factura NotUsedForGoods=No utilitzat per als béns @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=L'informe de volum de negoci TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=L'informe del volum de negocis cobrat per la venda no està disponible. Aquest informe només està disponible per a la facturació facturada. CalculationMode=Mode de càlcul AccountancyJournal=Diari de codi de comptable -ACCOUNTING_VAT_SOLD_ACCOUNT=Compte de comptabilitat per defecte per l'IVA en vendes (s'utilitza si no es defineix en la configuració del diccionari d'IVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Compte de comptabilitat per defecte per l'IVA en les compres (s'utilitza si no es defineix en la configuració del diccionari d'IVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable per defecte per IVA pagat -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=El compte comptable dedicat definit a la fitxa de tercer només s’utilitzarà per a la comptabilitat auxiliar. Aquest s'utilitzarà per al llibre major i com a valor per defecte de la comptabilitat auxiliar si no es defineix un compte comptable de client dedicat a tercers. -ACCOUNTING_ACCOUNT_SUPPLIER=Compte de comptabilitat utilitzat per tercers proveïdors +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=El compte comptable dedicat definit a la fitxa de tercers només s'utilitzarà per al Llibre Major. Aquest serà utilitzat pel Llibre Major i com a valor predeterminat del subcompte si no es defineix un compte comptable a la fitxa del tercer. ConfirmCloneTax=Confirma el clonat d'un impost social / fiscal ConfirmCloneVAT=Confirma la còpia d’una declaració d’IVA @@ -258,9 +260,9 @@ CloneTaxForNextMonth=Clonar-la pel pròxim mes SimpleReport=Informe simple AddExtraReport=Informes addicionals (afegeix l'informe de clients nacionals i estrangers) OtherCountriesCustomersReport=Informe de clients estrangers -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Basat en les dues primeres lletres del CIF que són diferents del codi de país de la teva empresa +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Basat en que les dues primeres lletres del NIF són diferents del codi de país de la vostra empresa SameCountryCustomersWithVAT=Informe de clients nacionals -BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Basat en les dues primeres lletres del CIF que són iguals del codi de país de la teva empresa +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Basat en que les dues primeres lletres del NIF són les mateixes que el codi de país de la vostra empresa LinkedFichinter=Enllaça a una intervenció ImportDataset_tax_contrib=Impostos varis ImportDataset_tax_vat=Pagaments IVA @@ -278,7 +280,7 @@ ByVatRate=Per de l'impost sobre vendes TurnoverbyVatrate=Facturació facturada pel tipus d'impost sobre la venda TurnoverCollectedbyVatrate=Facturació recaptada pel tipus d'impost sobre la venda PurchasebyVatrate=Compra per l'impost sobre vendes -LabelToShow=Etiqueta curta +LabelToShow=Nom curt PurchaseTurnover=Volum de compres PurchaseTurnoverCollected=Volum de compres recollit RulesPurchaseTurnoverDue=- Inclou les factures pendents del proveïdor, tant si es paguen com si no.
    - Es basa en la data de factura d'aquestes factures.
    @@ -300,3 +302,4 @@ InvoiceToPay15Days=Per a pagar (15 a 30 dies) InvoiceToPay30Days=Per a pagar (> 30 dies) ConfirmPreselectAccount=Preseleccioneu el codi comptable ConfirmPreselectAccountQuestion=Esteu segur que voleu preseleccionar les línies seleccionades %s amb aquest codi comptable? +AmountPaidMustMatchAmountOfDownPayment=L'import pagat ha de coincidir amb l'import del pagament inicial diff --git a/htdocs/langs/ca_ES/contracts.lang b/htdocs/langs/ca_ES/contracts.lang index e88c7dfe87c..36ca171cb7d 100644 --- a/htdocs/langs/ca_ES/contracts.lang +++ b/htdocs/langs/ca_ES/contracts.lang @@ -72,7 +72,7 @@ BoardExpiredServices=Els serveis han caducat BoardExpiredServicesShort=Els serveis han caducat ServiceStatus=Estat del servei DraftContracts=Contractes esborrany -CloseRefusedBecauseOneServiceActive=El contracte no es pot tancar ja que almenys hi ha un servei obert +CloseRefusedBecauseOneServiceActive=El contracte no es pot tancar perquè hi ha almenys un servei obert ActivateAllContracts=Activar totes les línies de contracte CloseAllContracts=Tancar tots els serveis DeleteContractLine=Eliminar línia de contracte @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Esteu segur que voleu suprimir aquesta línia de contr MoveToAnotherContract=Moure el servei a un altre contracte d'aquest tercer. ConfirmMoveToAnotherContract=He triat el contracte i confirmo el canvi de servei en aquest contracte ConfirmMoveToAnotherContractQuestion=Escull a quin contracte existent (del mateix tercer), vols moure aquest servei? -PaymentRenewContractId=Renova la línia del contracte (número %s) +PaymentRenewContractId=Renova el contracte %s (servei %s) ExpiredSince=Expirat des del NoExpiredServices=Sense serveis actius expirats ListOfServicesToExpireWithDuration=Llistat de serveis actius a expirar en %s dies diff --git a/htdocs/langs/ca_ES/cron.lang b/htdocs/langs/ca_ES/cron.lang index 722eadf7bed..a8b7e209e63 100644 --- a/htdocs/langs/ca_ES/cron.lang +++ b/htdocs/langs/ca_ES/cron.lang @@ -26,7 +26,7 @@ CronCommand=Ordre CronList=Tasques programades CronDelete=Elimina les tasques programades CronConfirmDelete=Vols eliminar aquests treballs programats? -CronExecute=Llança la tasca programada +CronExecute=Executa ara CronConfirmExecute=Esteu segur que voleu executar aquestes tasques programades ara? CronInfo=El mòdul de tasques programades permet programar tasques per executar-les automàticament. Les tasques també es poden iniciar manualment. CronTask=Tasca @@ -42,7 +42,7 @@ CronMethod=Mètode CronModule=Mòdul CronNoJobs=Sense treballs actualment CronPriority=Prioritat -CronLabel=Etiqueta +CronLabel=Nom CronNbRun=Nombre d'execucions CronMaxRun=Nombre màxim d'execucions CronEach=Tota (s) @@ -58,7 +58,7 @@ CronNote=Nota CronFieldMandatory=El camp %s és obligatori CronErrEndDateStartDt=La data de fi no pot ser anterior a la d'inici StatusAtInstall=Estat a la instal·lació del mòdul -CronStatusActiveBtn=Programa-ho +CronStatusActiveBtn=Activa la programació CronStatusInactiveBtn=Desactivar CronTaskInactive=Aquest treball està desactivat (no programat) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Aneu al menú "
    Inici - Eines d'adm JobDisabled=Tasca desactivada MakeLocalDatabaseDumpShort=Còpia de seguretat de la base de dades local MakeLocalDatabaseDump=Crear un bolcat de la base de dades local. Els paràmetres són: compressió ('gz' o 'bz' o 'none'), tipus de còpia de seguretat ('mysql' o 'pgsql'), 1, 'auto' o nom de fitxer per a compilar, nombre de fitxers de còpia de seguretat per conservar +MakeSendLocalDatabaseDumpShort=Envia una còpia de seguretat de la base de dades local +MakeSendLocalDatabaseDump=Envieu una còpia de seguretat de la base de dades local per correu electrònic. Els paràmetres són: to, from, subject, message, filename (nom del fitxer enviat), filtre ('sql' només per a la còpia de seguretat de la base de dades) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Neteja les tasques programades inacabades +CleanUnfinishedCronjob=Neteja les tasques programades bloquejades en el processament quan el procés ja no s'executa WarningCronDelayed=Atenció, a efectes de rendiment, sigui quina sigui la propera data d'execució de les tasques habilitades, és possible que les vostres tasques es retardin a un màxim de %s hores abans de ser executades. DATAPOLICYJob=Netejador de dades i anonimitzador JobXMustBeEnabled=La tasca %s s'ha d'activar +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Darrera tasca programada executada NextScheduledJobExecute=Propera tasca programada a executar NumberScheduledJobError=Nombre de tasques programades en error +NumberScheduledJobNeverFinished=Nombre de feines programades mai acabades diff --git a/htdocs/langs/ca_ES/datapolicy.lang b/htdocs/langs/ca_ES/datapolicy.lang new file mode 100644 index 00000000000..b21188b6968 --- /dev/null +++ b/htdocs/langs/ca_ES/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Política de privadesa de dades +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Mòdul de gestió de la privadesa de dades (conformitat amb el GDPR) + +# +# Administration page +# +datapolicySetup = Configuració de la política de privadesa de dades del mòdul +Deletion = Supressió de dades +datapolicySetupPage = Depenent de les lleis dels vostres països (Exemple Article 5 del GDPR), les dades personals s'han de conservar durant un període no superior al necessari per a les finalitats per a les quals van ser recollides, excepte per a finalitats d'arxiu.
    L'eliminació es farà automàticament després d'un temps determinat sense esdeveniment (la durada que hauràs indicat a continuació). +NB_MONTHS = %s mesos +ONE_YEAR = 1 any +NB_YEARS = %s anys +DATAPOLICY_TIERS_CLIENT = Client +DATAPOLICY_TIERS_PROSPECT = Client potencial +DATAPOLICY_TIERS_PROSPECT_CLIENT = Client potencial/client +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ni prospecte/Ni client +DATAPOLICY_TIERS_FOURNISSEUR = Proveïdor +DATAPOLICY_CONTACT_CLIENT = Client +DATAPOLICY_CONTACT_PROSPECT = Client potencial +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Client potencial/client +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ni prospecte/Ni client +DATAPOLICY_CONTACT_FOURNISSEUR = Proveïdor +DATAPOLICY_ADHERENT = Soci +DATAPOLICY_Tooltip_SETUP = Tipus de contacte: indiqueu les vostres opcions per a cada tipus. +DATAPOLICYMail = Configuració de correus electrònics +DATAPOLICYSUBJECTMAIL = Assumpte del correu electrònic +DATAPOLICYCONTENTMAIL = Contingut del correu electrònic +DATAPOLICYSUBSITUTION = Pots utilitzar les variables següents al teu correu electrònic (LINKACCEPT permet crear un enllaç registrant l'acord de la persona, LINKREFUSED permet registrar la negativa de la persona): +DATAPOLICYACCEPT = Missatge després de l'acord +DATAPOLICYREFUSE = Missatge després del desacord +SendAgreementText = Podeu enviar un correu electrònic de GDPR a tots els vostres contactes rellevants (que encara no han rebut cap correu electrònic i per als quals no heu registrat res sobre el seu acord de GDPR). Per fer-ho, utilitzeu el botó següent. +SendAgreement = Envieu correus electrònics +AllAgreementSend = S'han enviat tots els correus electrònics +TXTLINKDATAPOLICYACCEPT = Text per a l'enllaç "acord" +TXTLINKDATAPOLICYREFUSE = Text per a l'enllaç "desacord" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: Tractament de dades personals +DATAPOLICY_consentement = Consentiment obtingut per al tractament de dades personals +DATAPOLICY_opposition_traitement = S'oposa al tractament de les seves dades personals +DATAPOLICY_opposition_prospection = S'oposa al tractament de les seves dades personals amb finalitats de prospecció + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anònim a un tercer +DATAPOLICY_POPUP_ANONYME_TEXTE = No podeu eliminar aquest contacte de Dolibarr perquè hi ha elements relacionats. D'acord amb el GDPR, farà que totes aquestes dades siguin anònimes per a respectar les seves obligacions. T'agradaria continuar? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilitat GDPR +DATAPOLICY_PORTABILITE_TITLE = Exportació de dades personals +DATAPOLICY_PORTABILITE_CONFIRMATION = Voleu exportar les dades personals d'aquest contacte. Estàs segur ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = S'ha anonimitzat l'%s + +# V2 +DATAPOLICYReturn = Validació GDPR +DATAPOLICY_date = Data de l'acord/desacord GDPR +DATAPOLICY_send = Data d'enviament del correu electrònic de l'acord +DATAPOLICYReturn = Validació GDPR +DATAPOLICY_SEND = Envieu un correu electrònic GDPR +MailSent = Email ha estat enviat + +# ERROR +ErrorSubjectIsRequired = Error: l'assumpte del correu electrònic és obligatori. Indiqueu-ho a la configuració del mòdul +=A causa d'un problema tècnic, no hem pogut registrar la vostra elecció. Demanem disculpes per això. Contacta amb nosaltres per enviar-nos la teva elecció. +NUMBER_MONTH_BEFORE_DELETION = Nombre de mes abans de la supressió diff --git a/htdocs/langs/ca_ES/dict.lang b/htdocs/langs/ca_ES/dict.lang index 1d0f708a3e0..6c44a20dfbb 100644 --- a/htdocs/langs/ca_ES/dict.lang +++ b/htdocs/langs/ca_ES/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint-Martin ##### Civilities ##### CivilityMME=Senyora +CivilityMMEShort=Senyora CivilityMR=Senyor +CivilityMRShort=Senyor CivilityMLE=Senyoreta CivilityMTRE=En CivilityDR=Doctor diff --git a/htdocs/langs/ca_ES/ecm.lang b/htdocs/langs/ca_ES/ecm.lang index e920e6f4fc6..e87dbee9bcc 100644 --- a/htdocs/langs/ca_ES/ecm.lang +++ b/htdocs/langs/ca_ES/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Carpeta manual ECMSectionAuto=Carpeta automàtica ECMSectionsManual=Arbre manual ECMSectionsAuto=Arbre automàtic +ECMSectionsMedias=Medias tree ECMSections=Carpetes ECMRoot=Arrel del ECM ECMNewSection=Carpeta nova @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Nombre d'arxius en les subcarpetes ECMCreationUser=Creador ECMArea=Àrea SGD/GCE ECMAreaDesc=L’àrea SGD/GED (Sistema de Gestió de Documents / Gestió de Continguts Electrònics) us permet desar, compartir i cercar ràpidament tota mena de documents a Dolibarr. -ECMAreaDesc2=Podeu crear carpetes manuals i adjuntar els documents
    Les carpetes automàtiques són emplenades automàticament en l'addició d'un document en una fitxa. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=La carpeta %s ha estat eliminada ECMSectionWasCreated=S'ha creat el directori %s. ECMSearchByKeywords=Cercar per paraules clau diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index 26ec96567de..92d701f368e 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=El nom d'usuari %s ja existeix. ErrorGroupAlreadyExists=El grup %s ja existeix. ErrorEmailAlreadyExists=El correu electrònic %s ja existeix. ErrorRecordNotFound=Registre no trobat +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=No s'ha pogut copiar el fitxer " %s " a " %s ". ErrorFailToCopyDir=No s'ha pogut copiar el directori ' %s ' a ' %s '. ErrorFailToRenameFile=Error al renomenar l'arxiu '%s' a '%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=El fitxer d'imatge no té un format compatible (el vostre PH ErrorBadDateFormat=El valor '%s' té un format de data no reconegut ErrorWrongDate=La data no és correcta. ErrorFailedToWriteInDir=No es pot escriure a la carpeta %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=S'ha trobat una sintaxi incorrecta del correu electrònic per a les línies %s al fitxer (exemple de la línia %s amb email=%s) ErrorUserCannotBeDelete=No es pot eliminar l'usuari. És possible que estigui relacionat amb entitats de Dolibarr. ErrorFieldsRequired=Alguns camps obligatoris s'han deixat en blanc. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Empleneu el valor de la llista de caselles de selecc ErrorNoValueForRadioType=Els valors de la llista han de ser indicats ErrorBadFormatValueList=La llista de valors no pot tenir més d'una coma: %s, però necessita com a mínim una: clau,valor ErrorFieldCanNotContainSpecialCharacters=El camp %s no pot contenir caràcters especials. -ErrorFieldCanNotContainSpecialNorUpperCharacters=El camp %s no pot contenir caràcters especials, ni caràcters en majúscules i no pot contenir només números. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=El camp %s ha de tenir com a mínim %s caràcters. ErrorNoAccountancyModuleLoaded=Mòdul de comptabilitat no activat ErrorExportDuplicateProfil=El nom d'aquest perfil ja existeix per aquest conjunt d'exportació @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=No s’ha de desactivar Javascript perquè funcioni ErrorPasswordsMustMatch=Les 2 contrasenyes indicades s'han de correspondre ErrorContactEMail=S'ha produït un error tècnic. Si us plau, contacteu amb l'administrador al següent correu electrònic %s i proporcioneu el codi d'error %s al vostre missatge o afegiu una còpia de la pantalla d'aquesta pàgina. ErrorWrongValueForField=Camp %s : ' %s ' no coincideix amb la regla regex %s +ErrorHtmlInjectionForField=Camp %s : el valor ' %s no conté dades malicioses ' ErrorFieldValueNotIn=Camp %s : ' %s ' no és un valor trobat en el camp %s de %s ErrorFieldRefNotIn=Camp %s : ' %s ' no és un %s ref actual +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=S'han trobat %s errors ErrorFileIsInfectedWithAVirus=L'antivirus no ha pogut validar aquest arxiu (és probable que estigui infectat per un virus)! -ErrorSpecialCharNotAllowedForField=Els caràcters especials no són admesos pel camp "%s" ErrorNumRefModel=Hi ha una referència a la base de dades (%s) i no és compatible amb aquesta regla de numeració. Elimineu el registre o canvieu el nom de referència per a activar aquest mòdul. ErrorQtyTooLowForThisSupplier=Quantitat massa baixa per aquest proveïdor o sense un preu definit en aquest producte per aquest proveïdor ErrorOrdersNotCreatedQtyTooLow=Algunes ordres no s'han creat a causa de quantitats massa baixes @@ -117,7 +120,7 @@ ErrorForbidden3=Dolibarr no sembla funcionar en una sessió autentificada. Consu ErrorForbidden4=Nota: esborreu les galetes del vostre navegador per destruir les sessions existents per a aquest inici de sessió. ErrorNoImagickReadimage=No s'ha trobat la classe Imagick en aquesta instal lació PHP. La previsualització no està disponible. Els administradors poden deshabilitar aquesta pestanya en el menú Configuració - Entorn. ErrorRecordAlreadyExists=Registre ja existent -ErrorLabelAlreadyExists=Aquesta etiqueta ja existeix +ErrorLabelAlreadyExists=Aquest nom ja existeix ErrorCantReadFile=Error de lectura del fitxer '%s' ErrorCantReadDir=Error de lectura de la carpeta '%s' ErrorBadLoginPassword=Identificadors d'usuari o contrasenya incorrectes @@ -230,7 +233,7 @@ ErrorDescRequiredForFreeProductLines=La descripció és obligatòria per a líni ErrorAPageWithThisNameOrAliasAlreadyExists=La pàgina / contenidor %s té el mateix nom o àlies alternatiu que el que intenta utilitzar ErrorDuringChartLoad=S'ha produït un error en carregar el gràfic de comptes. Si pocs comptes no s'han carregat, podeu introduir-los manualment. ErrorBadSyntaxForParamKeyForContent=Sintaxi incorrecta per a la clau de contingut del paràmetre. Ha de tenir un valor que comenci per %s o %s -ErrorVariableKeyForContentMustBeSet=Error, s’ha d’establir la constant amb el nom %s (amb el contingut de text a mostrar) o %s (amb una URL externa a mostrar). +ErrorVariableKeyForContentMustBeSet=Error, s'ha d'establir la constant amb el nom %s (amb el contingut de text a mostrar) o %s (amb l'URL extern per a mostrar). ErrorURLMustEndWith=L'URL %s ha de finalitzar %s ErrorURLMustStartWithHttp=L'URL %s ha de començar amb http: // o https: // ErrorHostMustNotStartWithHttp=El nom d'amfitrió %s NO ha de començar amb http: // o https: // @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Per a desactivar els objectes, han d ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Per ser activats, els objectes han de tenir l'estat "Esborrany" o "Desactivat" ErrorNoFieldWithAttributeShowoncombobox=Cap camp té la propietat "showoncombobox" en la definició de l'objecte "%s". No es pot mostrar el llistat desplegable. ErrorFieldRequiredForProduct=El camp "%s" és obligatori per al producte %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=El problema està en la configuració del terminal %s. ErrorAddAtLeastOneLineFirst=Afegeix almenys una primera línia ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, el registre ja s’ha transferit a la comptabilitat, no es pot eliminar. @@ -270,24 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Primer heu de configurar el vostre pla ErrorFailedToFindEmailTemplate=No s'ha pogut trobar la plantilla amb el nom de codi %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Durada no definida al servei. No hi ha manera de calcular el preu per hora. ErrorActionCommPropertyUserowneridNotDefined=El propietari de l'usuari és obligatori -ErrorActionCommBadType=El tipus d'esdeveniment seleccionat (identificador: %n, codi: %s) no existeix al diccionari del tipus d'esdeveniment +ErrorActionCommBadType=El tipus d'esdeveniment seleccionat (id: %s, codi: %s) no existeix al diccionari de tipus d'esdeveniment CheckVersionFail=Error de comprovació de versió ErrorWrongFileName=El nom del fitxer no pot contenir __COSA__ ErrorNotInDictionaryPaymentConditions=No es troba al Diccionari de condicions de pagament, modifiqueu-lo. ErrorIsNotADraft=%s no és un esborrany ErrorExecIdFailed=No es pot executar l'ordre "id" -ErrorBadCharIntoLoginName=Caràcter no autoritzat al nom d'inici de sessió -ErrorRequestTooLarge=Error, sol·licitud massa gran +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=No sou l'autor de l'abandonament %s ErrorAttributeIsUsedIntoProduct=Aquest atribut s'utilitza en una o més variants de producte ErrorAttributeValueIsUsedIntoProduct=Aquest valor d'atribut s'utilitza en una o més variants de producte ErrorPaymentInBothCurrency=Error, tots els imports s'han d'introduir a la mateixa columna ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Intenteu pagar factures en la moneda %s des d'un compte amb la moneda %s +ErrorInvoiceLoadThirdParty=No es pot carregar l'objecte de tercers per a la factura "%s" +ErrorInvoiceLoadThirdPartyKey=La clau de tercers "%s" no s'ha establert per a la factura "%s" +ErrorDeleteLineNotAllowedByObjectStatus=L'estat actual de l'objecte no permet suprimir la línia +ErrorAjaxRequestFailed=La sol·licitud ha fallat +ErrorThirpdartyOrMemberidIsMandatory=És obligatori un tercer o membre de la societat +ErrorFailedToWriteInTempDirectory=No s'ha pogut escriure al directori temporal +ErrorQuantityIsLimitedTo=La quantitat està limitada a %s +ErrorFailedToLoadThirdParty=No s'ha pogut trobar/carregar un tercer des d'id=%s, correu electrònic=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Aquest mode de pagament no és un compte bancari +ErrorStripeCustomerNotFoundCreateFirst=El client de Stripe no està configurat per a aquest tercer (o s'ha establert un valor suprimit al costat de Stripe). Creeu-lo (o torneu-lo a adjuntar) primer. +ErrorCharPlusNotSupportedByImapForSearch=La cerca IMAP no pot cercar al remitent o al destinatari una cadena que contingui el caràcter + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=El paràmetre PHP upload_max_filesize (%s) és superior al paràmetre PHP post_max_size (%s). No es tracta d’una configuració consistent. WarningPasswordSetWithNoAccount=S'ha establert una contrasenya per a aquest soci. Tot i això, no s'ha creat cap compte d'usuari. Per tant, aquesta contrasenya s’emmagatzema però no es pot utilitzar per a iniciar la sessió a Dolibarr. Pot ser utilitzat per un mòdul/interfície extern, però si no necessiteu definir cap inici de sessió ni contrasenya per a un soci, podeu desactivar l'opció "Gestiona un inici de sessió per a cada soci" des de la configuració del mòdul Socis. Si heu de gestionar un inici de sessió però no necessiteu cap contrasenya, podeu mantenir aquest camp buit per a evitar aquesta advertència. Nota: El correu electrònic també es pot utilitzar com a inici de sessió si el soci està enllaçat amb un usuari. -WarningMandatorySetupNotComplete=Feu clic aquí per a configurar els paràmetres obligatoris +WarningMandatorySetupNotComplete=Feu clic aquí per a configurar els paràmetres principals WarningEnableYourModulesApplications=Feu clic aquí per a activar els vostres mòduls i aplicacions WarningSafeModeOnCheckExecDir=Atenció, està activada l'opció PHP safe_mode, la comanda ha d'estar dins d'un directori declarat dins del paràmetre php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Ja existeix un marcador amb aquest títol o aquest URL. @@ -296,7 +316,7 @@ WarningConfFileMustBeReadOnly=Atenció, el seu fitxer (htdocs/conf/conf.php%s línies font WarningNoDocumentModelActivated=No s'ha activat cap model per a la generació de documents. Per defecte s’escollirà un model fins que no comproveu la configuració del mòdul. WarningLockFileDoesNotExists=Avís, un cop finalitzada la instal·lació, heu de desactivar les eines d'instal·lació / migració afegint un fitxer install.lock al directori %s . Ometre la creació d'aquest fitxer suposa un greu risc de seguretat. -WarningUntilDirRemoved=Totes les advertències de seguretat (visibles només pels usuaris administradors) romandran actives sempre que la vulnerabilitat estigui present (o aquesta constant MAIN_REMOVE_INSTALL_WARNING s'afegeix a la Configuració-> Configuració altra). +WarningUntilDirRemoved=Aquest avís de seguretat romandrà actiu mentre la vulnerabilitat estigui present. WarningCloseAlways=Avís, el tancament és realitzat encara que la quantitat total difereixi entre els elements d'origen i destí. Activi aquesta funcionalitat amb precaució. WarningUsingThisBoxSlowDown=Advertiment, si utilitzeu aquest quadre, alentireu seriosament totes les pàgines que mostren el quadre. WarningClickToDialUserSetupNotComplete=La configuració de ClickToDial per al compte d'usuari no està completa (vegeu la pestanya ClickToDial en la seva fitxa d'usuari) @@ -317,6 +337,9 @@ WarningCreateSubAccounts=Atenció, no podeu crear directament un subcompte, heu WarningAvailableOnlyForHTTPSServers=Disponible només si s'utilitza una connexió segura HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=El mòdul %s no s'ha habilitat. Per tant, potser us perdeu molts esdeveniments aquí. WarningPaypalPaymentNotCompatibleWithStrict=El valor "Estricte" fa que les funcions de pagament en línia no funcionin correctament. Utilitzeu "Lax". +WarningThemeForcedTo=Avís, el tema s'ha forçat a %s per la constant oculta MAIN_FORCETHEME +WarningPagesWillBeDeleted=Advertència, això també suprimirà totes les pàgines/contenidors existents del lloc web. Hauríeu d'exportar el vostre lloc web abans, de manera que tingueu una còpia de seguretat per tornar-lo a importar més tard. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate RequireValidValue = El valor no és vàlid @@ -335,6 +358,6 @@ RequireValidDuration = Requereix una durada vàlida RequireValidExistingElement = Requeriu un valor existent RequireValidBool = Requeriu un booleà vàlid BadSetupOfField = S'ha produït un error en configurar el camp -BadSetupOfFieldClassNotFoundForValidation = Error de configuració incorrecta del camp: no s'ha trobat la classe per validar-la -BadSetupOfFieldFileNotFound = Error de configuració incorrecta del camp: no s'ha trobat el fitxer per incloure-ho +BadSetupOfFieldClassNotFoundForValidation = Error de configuració incorrecta del camp: no s'ha trobat la classe per a la validació +BadSetupOfFieldFileNotFound = Error de configuració incorrecta del camp: no s'ha trobat el fitxer per a incloure'l BadSetupOfFieldFetchNotCallable = Error de configuració incorrecta del camp: la recuperació no es pot trucar a la classe diff --git a/htdocs/langs/ca_ES/eventorganization.lang b/htdocs/langs/ca_ES/eventorganization.lang index fb83cd08ad9..e17596d878c 100644 --- a/htdocs/langs/ca_ES/eventorganization.lang +++ b/htdocs/langs/ca_ES/eventorganization.lang @@ -36,7 +36,7 @@ EventOrganizationSetup=Configuració de l'organització d'esdeveniments EventOrganization=Organització d'esdeveniments Settings=Configuració EventOrganizationSetupPage = Pàgina de configuració de l'organització d'esdeveniments -EVENTORGANIZATION_TASK_LABEL = Etiqueta de tasques per a crear automàticament quan es validi el projecte +EVENTORGANIZATION_TASK_LABEL = Nom de tasques per a crear automàticament quan es valida el projecte EVENTORGANIZATION_TASK_LABELTooltip = A l'validar un esdeveniment per organitzar, algunes tasques es poden crear automàticament en el

    projecte Per exemple:
    Send Call per a les conferències
    Enviar crida per a cabines de
    suggeriments Validar de Conferències
    aplicació Validar per a cabines de
    subscripcions obertes per a l'esdeveniment per als assistents
    Envia un recordatori de l'esdeveniment als ponents
    Envia un recordatori de l'esdeveniment als organitzadors de l'estand
    Envia un recordatori de l'esdeveniment als assistents EVENTORGANIZATION_TASK_LABELTooltip2=Manteniu-lo en blanc si no necessiteu crear tasques automàticament. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoria per a afegir a tercers creada automàticament quan algú suggereix una conferència @@ -47,19 +47,22 @@ EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Plantilla de correu electròni EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Plantilla de correu electrònic per a enviar després de pagar un registre a un esdeveniment. EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Plantilla de correu electrònic per a utilitzar quan s'envien correus electrònics des de l'acció massiva "Envia correus electrònics" als parlants EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Plantilla de correu electrònic per a utilitzar quan s'envien correus electrònics des de l'acció massiva "Envia correus electrònics" a la llista d'assistents -EVENTORGANIZATION_FILTERATTENDEES_CAT = Al formulari per crear/afegir un assistent, restringeix la llista de tercers a tercers de la categoria -EVENTORGANIZATION_FILTERATTENDEES_TYPE = En el formulari per crear/afegir un assistent, restringeix la llista de tercers a tercers amb la naturalesa +EVENTORGANIZATION_FILTERATTENDEES_CAT = En el formulari per a crear/afegir un assistent, restringeix la llista de tercers a tercers de la categoria +EVENTORGANIZATION_FILTERATTENDEES_TYPE = En el formulari per a crear/afegir un assistent, restringeix la llista de tercers a tercers amb la naturalesa # # Object # EventOrganizationConfOrBooth= Conferència o estand +EventOrganizationConfOrBoothes=Conferències o Estands ManageOrganizeEvent = Gestionar l’organització d’un esdeveniment ConferenceOrBooth = Conferència o estand ConferenceOrBoothTab = Conferència o estand AmountPaid = Quantitat pagada DateOfRegistration = Data de registre ConferenceOrBoothAttendee = Assistent a conferències o estands +ApplicantOrVisitor=Sol·licitant o visitant +Speaker=Conferenciant # # Template Mail @@ -112,25 +115,25 @@ EvntOrgRegistrationHelpMessage = Aquí podeu votar per una conferència o sugger EvntOrgRegistrationConfHelpMessage = Aquí podeu suggerir una nova conferència per animar durant l'esdeveniment. EvntOrgRegistrationBoothHelpMessage = Aquí, podeu sol·licitar tenir un estand durant l'esdeveniment. ListOfSuggestedConferences = Llista de conferències suggerides -ListOfSuggestedBooths = Llista de casetes suggerides -ListOfConferencesOrBooths=Llista de conferències o estands del projecte d'esdeveniments +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Suggereixi una conferència nova SuggestBooth = Suggereixi un estand ViewAndVote = Consulteu i voteu els esdeveniments suggerits PublicAttendeeSubscriptionGlobalPage = Enllaç públic per inscriure’s a l’esdeveniment PublicAttendeeSubscriptionPage = Enllaç públic per registrar-se només a aquest esdeveniment MissingOrBadSecureKey = Falta la clau de seguretat o no és vàlida -EvntOrgWelcomeMessage = Aquest formulari us permet registrar-vos com a nou participant a l'esdeveniment: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Aquesta conferència comença el dia %s i finalitza el dia %s. ConferenceAttendeeFee = Tarifa de l'assistent a la conferència per a l'esdeveniment: "%s" que passa de %s a %s. BoothLocationFee = Ubicació de l'estand per a l'esdeveniment: "%s" que passa de %s a %s EventType = Tipus d'esdeveniment -LabelOfBooth=Etiqueta de l'estand -LabelOfconference=Etiqueta de conferència +LabelOfBooth=Nom de l'estand +LabelOfconference=Nom de la conferència ConferenceIsNotConfirmed=La inscripció no està disponible, la conferència encara no està confirmada DateMustBeBeforeThan=%s ha de ser anterior a %s DateMustBeAfterThan=%s ha de ser posterior a %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Inscripció OrganizationEventConfRequestWasReceived=S'ha rebut el vostre suggeriment per a una conferència OrganizationEventBoothRequestWasReceived=La vostra sol·licitud d’estand s’ha rebut @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=El vostre pagament pel registr OrganizationEventBulkMailToAttendees=Aquest és un recordatori de la vostra participació a l'esdeveniment com a assistent OrganizationEventBulkMailToSpeakers=Aquest és un recordatori de la vostra participació a l’esdeveniment com a ponent OrganizationEventLinkToThirdParty=Enllaç a tercers (client, proveïdor o soci) +OrganizationEvenLabelName=Nom públic de la conferència o estand NewSuggestionOfBooth=Sol·licitud d'estand NewSuggestionOfConference=Sol·licitud per a una conferència @@ -154,7 +158,7 @@ VoteOk = El vostre vot s’ha acceptat. AlreadyVoted = Ja heu votat per aquest esdeveniment. VoteError = S'ha produït un error durant la votació. Torneu-ho a provar. -SubscriptionOk = El vostre registre s'ha validat +SubscriptionOk=S'ha enregistrat la teva inscripció ConfAttendeeSubscriptionConfirmation = Confirmació de la subscripció a un esdeveniment Attendee = Assistent PaymentConferenceAttendee = Pagament dels assistents a la conferència @@ -162,8 +166,9 @@ PaymentBoothLocation = Pagament de la ubicació de l’estand DeleteConferenceOrBoothAttendee=Elimina l'assistent RegistrationAndPaymentWereAlreadyRecorder=Ja es va registrar un registre i un pagament per al correu electrònic %s EmailAttendee=Correu electrònic de l'assistent +EmailCompany=Company email EmailCompanyForInvoice=Correu electrònic de l'empresa (per a la factura, si és diferent del correu electrònic dels assistents) -ErrorSeveralCompaniesWithEmailContactUs=S'han trobat diverses empreses amb aquest correu electrònic, de manera que no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per obtenir una validació manual -ErrorSeveralCompaniesWithNameContactUs=S'han trobat diverses empreses amb aquest nom per la qual cosa no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per obtenir una validació manual +ErrorSeveralCompaniesWithEmailContactUs=S'han trobat diverses empreses amb aquest correu electrònic, de manera que no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per a una validació manual +ErrorSeveralCompaniesWithNameContactUs=S'han trobat diverses empreses amb aquest nom, de manera que no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per a obtenir una validació manual NoPublicActionsAllowedForThisEvent=No hi ha cap acció pública oberta al públic per a aquest esdeveniment -MaxNbOfAttendees=Max number of attendees +MaxNbOfAttendees=Nombre màxim d'assistents diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index 353dc75c041..805e910aa03 100644 --- a/htdocs/langs/ca_ES/exports.lang +++ b/htdocs/langs/ca_ES/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Camps exportables ExportedFields=Camps a exportar ImportModelName=Nom del perfil d'importació ImportModelSaved=S'ha desat el perfil d'importació com %s . +ImportProfile=Importa el perfil DatasetToExport=Conjunt de dades a exportar DatasetToImport=Lot de dades a importar ChooseFieldsOrdersAndTitle=Trieu l'ordre dels camps ... @@ -25,7 +26,7 @@ FieldsTitle=Títol camps FieldTitle=Títol camp NowClickToGenerateToBuildExportFile=Ara, seleccioneu el format de fitxer al quadre combinat i feu clic a "Genera" per a crear el fitxer d'exportació... AvailableFormats=Formats disponibles -LibraryShort=Llibreria +LibraryShort=Biblioteca ExportCsvSeparator=Caràcter separador del CSV ImportCsvSeparator=Caràcter separador del CSV Step=Pas @@ -41,7 +42,7 @@ NoImportableData=Sense taules de dades importables (cap mòdul amb les definicio FileSuccessfullyBuilt=Fitxer generat SQLUsedForExport=Consulta SQL utilitzada per a extreure dades LineId=ID de línia -LineLabel=Etiqueta de la línia +LineLabel=Nom de la línia LineDescription=Descripció de línia LineUnitPrice=Preu unitari de la línia LineVATRate=Tipus d'IVA de la línia @@ -53,10 +54,11 @@ TypeOfLineServiceOrProduct=Tipus de línia (0=producte, 1=servei) FileWithDataToImport=Arxiu que conté les dades a importar FileToImport=Arxiu origen a importar FileMustHaveOneOfFollowingFormat=El fitxer a importar ha de tenir un dels següents formats -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields -ChooseFormatOfFileToImport=Trieu el format del fitxer que voleu utilitzar com a format de fitxer d'importació fent clic a la icona %s per seleccionar-lo ... -ChooseFileToImport=Pengeu un fitxer i feu clic a la icona %s per seleccionar el fitxer com a fitxer d'importació d'origen ... +DownloadEmptyExampleShort=Descarrega un fitxer de mostra +DownloadEmptyExample=Baixeu un fitxer de plantilla amb exemples i informació sobre camps que podeu importar +StarAreMandatory=Al fitxer de plantilla, tots els camps amb * són camps obligatoris +ChooseFormatOfFileToImport=Trieu el format de fitxer que voleu utilitzar com a format de fitxer d'importació fent clic a la icona %s per a seleccionar-lo... +ChooseFileToImport=Carregueu el fitxer i feu clic a la icona %s per a seleccionar el fitxer com a fitxer d'importació d'origen... SourceFileFormat=Format de l'arxiu origen FieldsInSourceFile=Camps en el fitxer origen FieldsInTargetDatabase=Camps destinació a la base de dades Dolibarr (*=obligatori) @@ -82,7 +84,7 @@ SelectFormat=Seleccioneu aquest format de fitxer d'importació RunImportFile=Importa dades NowClickToRunTheImport=Comproveu els resultats de la simulació d'importació. Corregiu els errors i torneu a provar.
    Quan la simulació no informa d'errors, pot procedir a importar les dades a la base de dades. DataLoadedWithId=Les dades importades tindran un camp addicional a cada taula de base de dades amb aquest identificador d'importació: %s , per a permetre que es pugui cercar en el cas d'investigar un problema relacionat amb aquesta importació. -ErrorMissingMandatoryValue=Les dades obligatòries estan buides al fitxer de codi font %s . +ErrorMissingMandatoryValue=Les dades obligatòries estan buides al fitxer font de la columna %s . TooMuchErrors=Encara hi ha 0xaek83365837f %s
    altres línies d'origen amb errors, però la producció ha estat limitada. TooMuchWarnings=Encara hi ha %s altres línies d'origen amb advertències, però la producció ha estat limitada. EmptyLine=Línia en blanc @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Podeu trobar tots els registres importats a la vos NbOfLinesOK=Nombre de línies sense errors ni warnings: %s. NbOfLinesImported=Nombre de línies correctament importades: %s. DataComeFromNoWhere=El valor a inserir no correspon a cap camp de l'arxiu origen. -DataComeFromFileFieldNb=El valor a inserir es correspon al camp nombre <%s de l'arxiu origen. -DataComeFromIdFoundFromRef=El valor que prové del camp numèric %s del fitxer d'origen s'utilitzarà per a trobar l'id de l'objecte pare que s'utilitzarà (de manera que l'objecte %s que té la referència del fitxer d'origen ha d'existir a la base de dades). -DataComeFromIdFoundFromCodeId=El codi que prové del camp numèric %s del fitxer d'origen s'utilitzarà per a trobar l'id de l'objecte pare a utilitzar (pel que el codi del fitxer d'origen ha d'existir al diccionari %s). Tingueu en compte que si coneixeu l'identificador, també podeu utilitzar-lo al fitxer font en lloc del codi. La importació ha de funcionar en ambdós casos. +DataComeFromFileFieldNb=El valor a inserir prové de la columna %s al fitxer font. +DataComeFromIdFoundFromRef=El valor que prové del fitxer font s'utilitzarà per a trobar l'identificador de l'objecte mare a utilitzar (per tant, l'objecte %s que té la referència del fitxer font ha d'existir a la base de dades). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=Les dades de l'arxiu d'origen s'inseriran en el següent camp: DataIDSourceIsInsertedInto=L'identificador de l'objecte pare, que s'ha trobat amb les dades del fitxer d'origen, s'inserirà al camp següent: DataCodeIDSourceIsInsertedInto=L'identificador de la línia pare, que s'ha trobat a partir del codi, s'inserirà al camp següent: @@ -117,7 +119,7 @@ ExportNumericFilter=NNNNN filtra per un valor
    NNNNN+NNNNN filtra sobre un ran ImportFromLine=Importa començant des del número de línia EndAtLineNb=Final en el número de línia ImportFromToLine=Interval límit (Des de - Fins a). Per exemple per a ometre les línies de capçalera. -SetThisValueTo2ToExcludeFirstLine=Per exemple, estableixi aquest valor a 3 per excloure les 2 primeres línies.
    Si no s'ometen les línies de capçalera, això provocarà diversos errors en la simulació d'importació. +SetThisValueTo2ToExcludeFirstLine=Per exemple, establiu aquest valor a 3 per a excloure les 2 primeres línies.
    Si NO s'ometen les línies de capçalera, això provocarà diversos errors a la simulació d'importació. KeepEmptyToGoToEndOfFile=Mantingueu aquest camp buit per a processar totes les línies fins al final del fitxer. SelectPrimaryColumnsForUpdateAttempt=Seleccioneu les columnes que vulgueu utilitzar com a clau principal per a la importació d'ACTUALITZACIÓ UpdateNotYetSupportedForThisImport=L'actualització no és compatible amb aquest tipus d'importació (només afegir) @@ -132,9 +134,14 @@ FormatControlRule=Regla de control de format ## imports updates KeysToUseForUpdates=Clau (columna) a utilitzar per actualització dades existents NbInsert=Nombre de línies afegides: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=Nombre de línies actualitzades: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=S'han trobat múltiples registres amb aquests filtres: %s StocksWithBatch=Estocs i ubicacions (magatzem) de productes amb número de lot/sèrie -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used -SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +WarningFirstImportedLine=Les primeres línies no s'importaran amb la selecció actual +NotUsedFields=Camps de la base de dades no utilitzats +SelectImportFieldsSource = Trieu els camps del fitxer d'origen que voleu importar i el seu camp de destinació a la base de dades escollint els camps de cada casilla de selecció o seleccioneu un perfil d'importació predefinit: +MandatoryTargetFieldsNotMapped=Alguns camps de destinació obligatoris no estan assignats +AllTargetMandatoryFieldsAreMapped=S'assignen tots els camps de destinació que necessiten un valor obligatori +ResultOfSimulationNoError=Resultat de la simulació: Sense error diff --git a/htdocs/langs/ca_ES/externalsite.lang b/htdocs/langs/ca_ES/externalsite.lang deleted file mode 100644 index 4547f3e3c70..00000000000 --- a/htdocs/langs/ca_ES/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configuració de l'enllaç a la pàgina web externa -ExternalSiteURL=URL del lloc extern del contingut iframe HTML -ExternalSiteModuleNotComplete=El mòdul Lloc web extern no ha estat configurat correctament. -ExampleMyMenuEntry=La meva entrada del menú diff --git a/htdocs/langs/ca_ES/ftp.lang b/htdocs/langs/ca_ES/ftp.lang deleted file mode 100644 index 54903cb63c4..00000000000 --- a/htdocs/langs/ca_ES/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuració del mòdul client FTP -NewFTPClient=Nova connexió client FTP -FTPArea=Àrea FTP -FTPAreaDesc=Aquesta pantalla presenta una vista de servidor FTP -SetupOfFTPClientModuleNotComplete=La configuració del mòdul de client FTP sembla incompleta -FTPFeatureNotSupportedByYourPHP=El seu PHP no suporta les funcions FTP -FailedToConnectToFTPServer=No s'ha pogut connectar amb el servidor FTP (servidor: %s, port %s) -FailedToConnectToFTPServerWithCredentials=No s'ha pogut connectar amb el login/contrasenya FTP configurats -FTPFailedToRemoveFile=No s'ha pogut suprimir el fitxer %s. -FTPFailedToRemoveDir=No s'ha pogut suprimir la carpeta %s (Comproveu els permisos i que el directori està buit). -FTPPassiveMode=Mode passiu -ChooseAFTPEntryIntoMenu=Tria una entrada FTP en el menú... -FailedToGetFile=Error obtenint els fitxers %s diff --git a/htdocs/langs/ca_ES/help.lang b/htdocs/langs/ca_ES/help.lang index 02b26539227..431e2d14223 100644 --- a/htdocs/langs/ca_ES/help.lang +++ b/htdocs/langs/ca_ES/help.lang @@ -20,4 +20,4 @@ BackToHelpCenter=En cas contrari, torna a la pàgina d'inici del C LinkToGoldMember=Pots trucar a un dels formadors preseleccionats per Dolibarr pel teu idioma (%s) fent clic al seu Panell (l'estat i el preu màxim s'actualitzen automàticament): PossibleLanguages=Idiomes disponibles SubscribeToFoundation=Ajuda al projecte Dolibarr, adhereix-te a l'associació -SeeOfficalSupport=Per obtenir suport oficial de Dolibarr en el vostre idioma:
    %s +SeeOfficalSupport=Per a obtenir suport oficial de Dolibarr en el vostre idioma:
    %s diff --git a/htdocs/langs/ca_ES/holiday.lang b/htdocs/langs/ca_ES/holiday.lang index 845ee3ffe97..2e5b738c17e 100644 --- a/htdocs/langs/ca_ES/holiday.lang +++ b/htdocs/langs/ca_ES/holiday.lang @@ -1,10 +1,12 @@ # Dolibarr language file - Source file is en_US - holiday -HRM=RRHH +HRM=RH Holidays=Dies lliures +Holiday=Dies lliures CPTitreMenu=Dies lliures MenuReportMonth=Estat mensual MenuAddCP=Sol·licitud nova de permís -NotActiveModCP=Ha d'activar el mòdul Dies lliures retribuïts per veure aquesta pàgina +MenuCollectiveAddCP=Nova sol·licitud de festiu col·lectiu +NotActiveModCP=Heu d'habilitar el mòdul Dies lliures per a veure aquesta pàgina. AddCP=Realitzar una petició de dies lliures DateDebCP=Data inici DateFinCP=Data fi @@ -38,7 +40,7 @@ RequestByCP=Comandada per TitreRequestCP=Fitxa de dies lliures TypeOfLeaveId=Tipus d'identificador de baixa TypeOfLeaveCode=Tipus de codi de baixa -TypeOfLeaveLabel=Tipus d'etiqueta de baixa +TypeOfLeaveLabel=Nom de tipus de permís NbUseDaysCP=Nombre de dies de permís utilitzats NbUseDaysCPHelp=El càlcul té en compte els dies inhàbils i les vacances definides al diccionari. NbUseDaysCPShort=Dies de permís @@ -56,6 +58,7 @@ ConfirmDeleteCP=Estàs segur de voler eliminar aquesta petició de dies lliures? ErrorCantDeleteCP=Error, no teniu permisos per a suprimir aquesta sol·licitud de permís. CantCreateCP=No teniu accés a fer sol·licituds de permís. InvalidValidatorCP=Heu de triar l’aprovador per a la vostra sol·licitud de permís. +InvalidValidator=L'usuari escollit no és un aprovador. NoDateDebut=Ha d'indicar una data d'inici. NoDateFin=Ha d'indicar una data de fi. ErrorDureeCP=La seva petició de dies lliures no conté cap dia hàbil @@ -79,6 +82,8 @@ MotifCP=Motiu UserCP=Usuari ErrorAddEventToUserCP=S'ha produït un error en l'assignació del permís excepcional. AddEventToUserOkCP=S'ha afegit el permís excepcional. +ErrorFieldRequiredUserOrGroup=Cal omplir el camp "grup" o el camp "usuari". +fusionGroupsUsers=El camp de grups i el camp d'usuari es fusionaran MenuLogCP=Veure registre de canvis LogCP=Registre de totes les actualitzacions realitzades a "Saldo de permisos" ActionByCP=Actualitzat per @@ -86,12 +91,19 @@ UserUpdateCP=Actualitzat per a PrevSoldeCP=Saldo anterior NewSoldeCP=Saldo nou alreadyCPexist=En aquest període ja s’ha fet una sol·licitud de dia lliure. +UseralreadyCPexist=Ja s'ha fet una sol·licitud de festiu en aquest període per a %s. +groups=Grups +users=Usuaris +AutoSendMail=Correu automàtic +NewHolidayForGroup=Nova sol·licitud de festiu col·lectiu +SendRequestCollectiveCP=Enviar sol·licitud de festiu col·lectiu +AutoValidationOnCreate=Validació automàtica FirstDayOfHoliday=Primer dia de sol·licitud de permís LastDayOfHoliday=Últim del dia de sol·licitud de permís BoxTitleLastLeaveRequests=Últimes %s peticions de dies lliures modificades HolidaysMonthlyUpdate=Actualització mensual ManualUpdate=Actualització manual -HolidaysCancelation=Anulació de dies lliures +HolidaysCancelation=Cancel·lació de la sol·licitud de dies lliures EmployeeLastname=Cognoms de l'empleat EmployeeFirstname=Nom de l'empleat TypeWasDisabledOrRemoved=El tipus de dia lliure (id %s) ha sigut desactivat o eliminat @@ -100,7 +112,7 @@ AllHolidays=Totes les sol·licituds de permís HalfDay=Mig dia NotTheAssignedApprover=No sou l'aprovador assignat LEAVE_PAID=Vacances pagades -LEAVE_SICK=Baixa per enfermetat +LEAVE_SICK=Baixa per malaltia LEAVE_OTHER=Altres sortides LEAVE_PAID_FR=Vacances pagades ## Configuration du Module ## @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s sol ser un dia NO laborable BlockHolidayIfNegative=Bloqueja si el saldo és negatiu LeaveRequestCreationBlockedBecauseBalanceIsNegative=La creació d'aquesta sol·licitud de vacances està bloquejada perquè el vostre saldo és negatiu ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=La sol·licitud d'abandonament %s ha de ser esborrany, cancel·lada o rebutjada per eliminar-la +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=El saldo dels dies restants per a %s no s'ha canviat diff --git a/htdocs/langs/ca_ES/hrm.lang b/htdocs/langs/ca_ES/hrm.lang index b62f4fc76ca..cfcaaf89534 100644 --- a/htdocs/langs/ca_ES/hrm.lang +++ b/htdocs/langs/ca_ES/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Obre l'establiment CloseEtablishment=Tanca l'establiment # Dictionary DictionaryPublicHolidays=Permís - Dies festius -DictionaryDepartment=HRM - Llistat de departament +DictionaryDepartment=HRM - Unitat organitzativa DictionaryFunction=HRM: llocs de treball # Module Employees=Empleats @@ -70,9 +70,9 @@ RequiredSkills=Competències necessàries per a aquesta feina UserRank=Rank d'usuari SkillList=Llista d'habilitats SaveRank=Guardar rang -knowHow=Saber com -HowToBe=Com ser -knowledge=Coneixement +TypeKnowHow=Saber com +TypeHowToBe=Com ser +TypeKnowledge=Coneixement AbandonmentComment=Comentari d'abandonament DateLastEval=Data darrera avaluació NoEval=No s'ha fet cap avaluació per a aquest empleat @@ -88,3 +88,5 @@ DeleteSkill = S'ha eliminat l'habilitat SkillsExtraFields=Atributs addicionals (Competències) JobsExtraFields=Atributs addicionals (Empleats) EvaluationsExtraFields=Atributs addicionals (avaluacions) +NeedBusinessTravels=Necessites viatges de negocis +NoDescription=Sense descripció diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index 4ce60465f89..e87de98def3 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=L'arxiu de configuració %s no és modificable. Com ConfFileIsWritable=L'arxiu %s és modificable. ConfFileMustBeAFileNotADir=El fitxer de configuració %s ha de ser un fitxer, no un directori. ConfFileReload=Actualització dels paràmetres del fitxer de configuració. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=El fitxer de configuració conf/conf.php no existeix o no es pot llegir. Executarem el procés d'instal·lació per intentar inicialitzar-lo. PHPSupportPOSTGETOk=Aquest PHP suporta bé les variables POST i GET. PHPSupportPOSTGETKo=És possible que aquest PHP no suport les variables POST i/o GET. Comproveu el paràmetre variables_order del php.ini. PHPSupportSessions=Aquest PHP suporta sessions @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Ha indicat potser un valor incorrecte per al paràme ErrorFailedToCreateDatabase=Error en crear la base de dades '%s'. ErrorFailedToConnectToDatabase=Error de connexió a la base de dades '%s'. ErrorDatabaseVersionTooLow=La versió de la base de dades (%s) és massa antiga. Cal la versió %s o superior. -ErrorPHPVersionTooLow=Versió del PHP massa antiga. Es requereix versió %s o superior. +ErrorPHPVersionTooLow=La versió de PHP és massa antiga. Es requereix la versió %s o superior. +ErrorPHPVersionTooHigh=La versió de PHP és massa alta. Es requereix la versió %s o inferior. ErrorConnectedButDatabaseNotFound=S'ha trobat una connexió amb el servidor però la base de dades '%s' no s'ha trobat. ErrorDatabaseAlreadyExists=La base de dades '%s' ja existeix. IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de dades no existeix, torneu enrere i marqueu l'opció "Crea una base de dades". @@ -75,7 +76,7 @@ PasswordsMismatch=Les contrasenyes no coincideixen, torni a intentar-ho! SetupEnd=Fi de la configuració SystemIsInstalled=La instal·lació s'ha finalitzat. SystemIsUpgraded=S'ha actualitzat Dolibarr correctament. -YouNeedToPersonalizeSetup=Ara ha de configurar Dolibarr segons les seves necessitats (Elecció de l'aparença, de les funcionalitats, etc). Per això, feu clic en el següent link: +YouNeedToPersonalizeSetup=Heu de configurar Dolibarr segons les vostres necessitats (aspecte, característiques, ...). Per a fer-ho, seguiu el següent enllaç: AdminLoginCreatedSuccessfuly=El codi d'usuari administrador de Dolibar '%s' s'ha creat correctament. GoToDolibarr=Aneu a Dolibarr GoToSetupArea=Aneu a Dolibarr (àrea de configuració) @@ -130,7 +131,7 @@ MigrationShippingDelivery2=Actualització de les dades d'enviaments 2 MigrationFinished=S'ha acabat la migració LastStepDesc= Darrer pas : definiu aquí l'inici de sessió i la contrasenya que voleu utilitzar per connectar-se a Dolibarr. No perdis això, ja que és el compte mestre per administrar tots els altres / comptes d'usuari addicionals. ActivateModule=Activació del mòdul %s -ShowEditTechnicalParameters=Premi aquí per veure/editar els paràmetres tècnics (mode expert) +ShowEditTechnicalParameters=Feu clic aquí per a mostrar/editar els paràmetres avançats (mode expert) WarningUpgrade=Advertència:\nPrimer heu executat una còpia de seguretat de la base de dades?\nAixò és molt recomanable. La pèrdua de dades (a causa, per exemple, d'errors a la versió 5.5.40/41/42/43 de mysql) pot ser possible durant aquest procés, de manera que és essencial fer un buidatge complet de la vostra base de dades abans d'iniciar qualsevol migració.\n\nFeu clic a D'acord per a iniciar el procés de migració... ErrorDatabaseVersionForbiddenForMigration=La versió de la vostra base de dades és %s. Té un error crític, que fa possible la pèrdua de dades si feu canvis estructurals a la base de dades, tals com requereix el procés de migració. Per la seva raó, la migració no es permetrà fins que no actualitzeu la base de dades a una versió actualitzada (llista de versions conegudes amb errors: %s) KeepDefaultValuesWamp=Heu utilitzat l'assistent de configuració Dolibarr de DoliWamp, de manera que els valors proposats aquí ja estan optimitzats. Canvieu-los només si saps el que estàs fent. diff --git a/htdocs/langs/ca_ES/interventions.lang b/htdocs/langs/ca_ES/interventions.lang index 1ec9149bf55..0297d3da2bf 100644 --- a/htdocs/langs/ca_ES/interventions.lang +++ b/htdocs/langs/ca_ES/interventions.lang @@ -50,7 +50,7 @@ UseDateWithoutHourOnFichinter=Oculta hores i minuts del camp de dates dels regis InterventionStatistics=Estadístiques de intervencions NbOfinterventions=Nombre de fitxers d’intervenció NumberOfInterventionsByMonth=Nombre de fitxes d'intervenció per mes (data de validació) -AmountOfInteventionNotIncludedByDefault=La quantitat d'intervenció no s'inclou de manera predeterminada en els beneficis (en la majoria dels casos, els fulls de temps s'utilitzen per a comptar el temps dedicat). Per incloure'ls, afegiu l'opció PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT amb el valor 1 a Inici-Configuració-Altres. +AmountOfInteventionNotIncludedByDefault=La quantitat d'intervenció no s'inclou per defecte als beneficis (en la majoria dels casos, les fulles de temps s'utilitzen per a comptar el temps dedicat). Afegiu l'opció PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT a 1 a Inici-Vonfiguració-Altres per a incloure'ls. InterId=Id. d'intervenció InterRef=Ref. d'intervenció InterDateCreation=Data de creació de la intervenció @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Esteu segur que voleu tornar a obrir la intervenció < GenerateInter=Generar intervenció FichinterNoContractLinked=La intervenció %s s'ha creat sense un contracte vinculat. ErrorFicheinterCompanyDoesNotExist=L'empresa no existeix. No s'ha creat la intervenció. +NextDateToIntervention=Data per a la propera generació d'intervenció +NoIntervention=Cap intervenció diff --git a/htdocs/langs/ca_ES/knowledgemanagement.lang b/htdocs/langs/ca_ES/knowledgemanagement.lang index 4bc4ee56f66..df59431ee62 100644 --- a/htdocs/langs/ca_ES/knowledgemanagement.lang +++ b/htdocs/langs/ca_ES/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Articles KnowledgeRecord = Article KnowledgeRecordExtraFields = Camps extra per a l'article GroupOfTicket=Grup de tiquets -YouCanLinkArticleToATicketCategory=Podeu adjuntar un article a un grup de tiquets (per tant, l'article es suggerirà durant la qualificació dels nous tiquets) +YouCanLinkArticleToATicketCategory=Pots enllaçar l'article a un grup de tiquets (de manera que l'article es destacarà a qualsevol tiquet d'aquest grup) SuggestedForTicketsInGroup=Suggerit per a entrades quan el grup està SetObsolete=S'estableix com a obsolet diff --git a/htdocs/langs/ca_ES/languages.lang b/htdocs/langs/ca_ES/languages.lang index 11ba5a08955..fced7fe87ff 100644 --- a/htdocs/langs/ca_ES/languages.lang +++ b/htdocs/langs/ca_ES/languages.lang @@ -8,12 +8,13 @@ Language_ar_MA=Àrab (marroquí) Language_ar_SA=Àrab Language_ar_TN=Àrab (Tunísia) Language_ar_IQ=Àrab (Iraq) -Language_as_IN=assameses -Language_az_AZ=Azerbaidjan +Language_as_IN=Assamès +Language_az_AZ=Àzeri Language_bn_BD=Bengalí Language_bn_IN=Bengalí (Índia) Language_bg_BG=Búlgar -Language_bs_BA=Bosni +Language_bo_CN=tibetà +Language_bs_BA=Bosnià Language_ca_ES=Català Language_cs_CZ=Txec Language_cy_GB=Gal·lès @@ -22,11 +23,12 @@ Language_da_DK=Danès Language_de_DE=Alemany Language_de_AT=Alemany (Austria) Language_de_CH=Alemany (Suïssa) +Language_de_LU=German (Luxembourg) Language_el_GR=Grec Language_el_CY=Grec (Xipre) Language_en_AE=Anglès (Emirats Àrabs Units) Language_en_AU=Anglès (Australia) -Language_en_CA=Anglès (Canada) +Language_en_CA=Anglès (Canadà) Language_en_GB=Anglès (Regne Unit) Language_en_IN=Anglès (Índia) Language_en_NZ=Anglès (Nova Zelanda) @@ -34,11 +36,13 @@ Language_en_SA=Anglès (Aràbia Saudita) Language_en_SG=Anglès (Singapur) Language_en_US=Anglès (Estats Units) Language_en_ZA=Anglès (Àfrica del Sud) +Language_en_ZW=English (Zimbabwe) Language_es_ES=Espanyol Language_es_AR=Espanyol (Argentina) Language_es_BO=Espanyol (Bolivia) Language_es_CL=Espanyol (Chile) Language_es_CO=Espanyol (Colòmbia) +Language_es_CR=Espanyol (Costa Rica) Language_es_DO=Espenyol (Republica Dominicana) Language_es_EC=Espanyol (Equador) Language_es_GT=Espanyol (Guatemala) @@ -88,11 +92,12 @@ Language_mk_MK=Macedoni Language_mn_MN=Mongol Language_my_MM=Birmà Language_nb_NO=Noruec (Bokmal) -Language_ne_NP=Nepalí +Language_ne_NP=Nepalès Language_nl_BE=Neerlandès (Bèlgica) Language_nl_NL=Holandès Language_pl_PL=Polonès Language_pt_AO=Portuguès (Angola) +Language_pt_MZ=Portuguès (Moçambic) Language_pt_BR=Portuguès (Brasil) Language_pt_PT=Portuguès Language_ro_MD=Romanès (Moldàvia) @@ -105,9 +110,10 @@ Language_tr_TR=Turc Language_sl_SI=Eslovè Language_sv_SV=Suec Language_sv_SE=Suec -Language_sq_AL=Albania +Language_sq_AL=Albanès Language_sk_SK=Eslovac Language_sr_RS=Serbi +Language_sw_KE=Swahili Language_sw_SW=Kiswahili Language_th_TH=Tailandès Language_uk_UA=Ucraïnès diff --git a/htdocs/langs/ca_ES/loan.lang b/htdocs/langs/ca_ES/loan.lang index ce9fae18c7b..edc241eb214 100644 --- a/htdocs/langs/ca_ES/loan.lang +++ b/htdocs/langs/ca_ES/loan.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan Loan=Préstec Loans=Préstecs -NewLoan=Nou préstec +NewLoan=Préstec nou ShowLoan=Mostrar préstec PaymentLoan=Pagament del préstec LoanPayment=Pagament del préstec @@ -13,8 +13,8 @@ Nbterms=Nombre de termes Term=Termini LoanAccountancyCapitalCode=Compte comptable del capital LoanAccountancyInsuranceCode=Compte comptable de l'assegurança -LoanAccountancyInterestCode=Compte comptable per al interès -ConfirmDeleteLoan=Confirma la eliminació del préstec +LoanAccountancyInterestCode=Compte comptable dels interessos +ConfirmDeleteLoan=Confirmeu l'eliminació d'aquest préstec LoanDeleted=Préstec eliminat correctament ConfirmPayLoan=Confirma la classificació del préstec com a pagat LoanPaid=Préstec pagat @@ -24,11 +24,11 @@ FinancialCommitment=Compromís financer InterestAmount=Interessos CapitalRemain=Capital restant TermPaidAllreadyPaid = Aquest termini ja està pagat -CantUseScheduleWithLoanStartedToPaid = No es pot utilitzar el planificador per a un préstec amb el pagament iniciat +CantUseScheduleWithLoanStartedToPaid = No es pot generar un calendari per a un préstec amb un pagament iniciat CantModifyInterestIfScheduleIsUsed = No pots modificar l’interès si fas servir la programació # Admin ConfigLoan=Configuració del mòdul de préstecs -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Compte comptable del capital per defecte -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Compte comptable per al interès per defecte -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Compte comptable de l'assegurança per defecte +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edita el compromís financer diff --git a/htdocs/langs/ca_ES/mailmanspip.lang b/htdocs/langs/ca_ES/mailmanspip.lang index f0b860515ce..fc238407847 100644 --- a/htdocs/langs/ca_ES/mailmanspip.lang +++ b/htdocs/langs/ca_ES/mailmanspip.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Configuració del mòdul Mailman i SPIP MailmanTitle=Sistema de llistes de correu Mailman -TestSubscribe=Per comprovar la subscripció a llistes Mailman -TestUnSubscribe=Per comprovar la cancel·lació de subscripcions a llistes Mailman +TestSubscribe=Per a provar la subscripció a llistes Mailman +TestUnSubscribe=Per a provar la cancel·lació de la subscripció a les llistes Mailman MailmanCreationSuccess=La prova de subscripció s'ha executat correctament MailmanDeletionSuccess=La prova de baixa de subscripció s'ha executat correctament SynchroMailManEnabled=Una actualització de Mailman ha d'efectuar-se SynchroSpipEnabled=Una actualització de Mailman ha d'efectuar-se -DescADHERENT_MAILMAN_ADMINPW=Contrasenya d'administrador Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Contrasenya d'administrador Mailman DescADHERENT_MAILMAN_URL=URL per a les subscripcions Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL per a les desubscripcions Mailman DescADHERENT_MAILMAN_LISTS=Llista (es) per a la subscripció automàtica dels nous membres (separats per comes) @@ -18,10 +18,10 @@ DescADHERENT_SPIP_USER=Usuari de la base de dades d'SPIP DescADHERENT_SPIP_PASS=Contrasenya de la base de dades d'SPIP AddIntoSpip=Afegir a SPIP AddIntoSpipConfirmation=Esteu segur de voler afegir aquest soci a SPIP? -AddIntoSpipError=S'ha produït un error en afegir el usuari a SPIP +AddIntoSpipError=No s'ha pogut afegir l'usuari a SPIP DeleteIntoSpip=Esborrar de SPIP DeleteIntoSpipConfirmation=Esteu segur de voler esborrar aquest membre del SPIP? DeleteIntoSpipError=S'ha produït un error en suprimir l'usuari del SPIP -SPIPConnectionFailed=Error al connectar amb SPIP +SPIPConnectionFailed=No s'ha pogut connectar a SPIP SuccessToAddToMailmanList=S'ha afegit %s correctament en la llista mailman %s o en la base de dades SPIP SuccessToRemoveToMailmanList=S'ha eliminat %s correctament de la llista mailman %s o en la base de dades SPIP diff --git a/htdocs/langs/ca_ES/mails.lang b/htdocs/langs/ca_ES/mails.lang index 799c3ed0452..e1b776a6649 100644 --- a/htdocs/langs/ca_ES/mails.lang +++ b/htdocs/langs/ca_ES/mails.lang @@ -47,7 +47,7 @@ MailingStatusReadAndUnsubscribe=Llegeix i dona de baixa ErrorMailRecipientIsEmpty=L'adreça del destinatari és buida WarningNoEMailsAdded=Cap nou e-mail a afegir a la llista destinataris. ConfirmValidMailing=Vols validar aquest E-Mailing? -ConfirmResetMailing=Advertència, reiniciant el correu electrònic %s , permetrà tornar a enviar aquest correu electrònic en un correu a granel. Estàs segur que vols fer això? +ConfirmResetMailing=Avís, en reinicialitzar l'enviament massiu %s , permetreu tornar a enviar aquest correu electrònic en un correu massiu. Estàs segur que vols fer això? ConfirmDeleteMailing=Esteu segur que voleu suprimir aquesta adreça electrònica? NbOfUniqueEMails=Nombre de correus electrònics exclusius NbOfEMails=Nombre de correus electrònics @@ -120,7 +120,7 @@ IdRecord=ID registre DeliveryReceipt=Justificant de recepció. YouCanUseCommaSeparatorForSeveralRecipients=Podeu utilitzar el separador coma per a especificar diversos destinataris. TagCheckMail=Seguiment de l'obertura del email -TagUnsubscribe=Link de Desubscripció +TagUnsubscribe=Enllaç de cancel·lació de la subscripció TagSignature=Signatura de l'usuari remitent EMailRecipient=Correu electrònic del destinatari TagMailtoEmail=Correu electrònic del destinatari (inclòs l'enllaç "mailto:" html) @@ -137,7 +137,7 @@ ListOfNotificationsDone=Llista de totes les notificacions automàtiques enviades MailSendSetupIs=La configuració de l'enviament de correu electrònic s'ha configurat a '%s'. Aquest mode no es pot utilitzar per a enviar correus electrònics massius. MailSendSetupIs2=Primer heu d’anar, amb un compte d’administrador, al menú %sInici - Configuració - Correus electrònics%s per a canviar el paràmetre '%s' per a utilitzar el mode '%s'. Amb aquest mode, podeu introduir la configuració del servidor SMTP proporcionat pel vostre proveïdor de serveis d'Internet i utilitzar la funció de correu electrònic massiu. MailSendSetupIs3=Si teniu cap pregunta sobre com configurar el servidor SMTP, podeu demanar-li a %s. -YouCanAlsoUseSupervisorKeyword=També pot afegir l'etiqueta __SUPERVISOREMAIL__ per tenir un e-mail enviat pel supervisor a l'usuari (només funciona si un e-mail és definit per aquest supervisor) +YouCanAlsoUseSupervisorKeyword=També podeu afegir la paraula clau __SUPERVISOREMAIL__ perquè el correu electrònic s'enviï al supervisor de l'usuari (només funciona si es defineix un correu electrònic per a aquest supervisor) NbOfTargetedContacts=Nombre actual de correus electrònics de contactes destinataris UseFormatFileEmailToTarget=El fitxer importat ha de tenir el format email;nom;cognom;altre UseFormatInputEmailToTarget=Entra una cadena amb el format email;nom;cognom;altre @@ -178,3 +178,4 @@ IsAnAnswer=És la resposta d’un correu electrònic inicial RecordCreatedByEmailCollector=Registre creat pel Receptor de correus electrònics %s des del correu electrònic %s DefaultBlacklistMailingStatus=Valor per defecte del camp '%s' en crear un contacte nou DefaultStatusEmptyMandatory=Buit però obligatori +WarningLimitSendByDay=ADVERTIMENT: la configuració o el contracte de la vostra instància limita el vostre nombre de correus electrònics per dia a %s . Si intenteu enviar-ne més, pot ser que la vostra instància es ralenteixi o se suspengui. Poseu-vos en contacte amb el vostre servei d'assistència si necessiteu una quota més alta. diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index 8db057d02bf..ef9b8f4c8d5 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=No hi ha cap plantilla disponible per a aquest tipus de correu AvailableVariables=Variables de substitució disponibles NoTranslation=Sense traducció Translation=Traducció +Translations=Translations CurrentTimeZone=Fus horari PHP (Servidor) EmptySearchString=Introdueix criteris de cerca no buits EnterADateCriteria=Introduïu un criteri de data @@ -39,14 +46,14 @@ Error=Error Errors=Errors ErrorFieldRequired=El camp '%s' és obligatori ErrorFieldFormat=El camp '%s' té un valor incorrecte -ErrorFileDoesNotExists=El arxiu %s no existeix +ErrorFileDoesNotExists=El fitxer %s no existeix ErrorFailedToOpenFile=Impossible obrir el fitxer %s ErrorCanNotCreateDir=No es pot crear el directori %s ErrorCanNotReadDir=No es pot llegir el directori %s ErrorConstantNotDefined=Parámetre %s no definit ErrorUnknown=Error desconegut ErrorSQL=Error de SQL -ErrorLogoFileNotFound=El arxiu logo '%s' no es troba +ErrorLogoFileNotFound=No s'ha trobat el fitxer de logotip «%s». ErrorGoToGlobalSetup=Aneu a la configuració "Empresa/Organització" per a solucionar-ho ErrorGoToModuleSetup=Aneu a Configuració del mòdul per a solucionar-ho ErrorFailedToSendMail=Error en l'enviament de l'e-mail (emissor =%s, destinatairo =%s) @@ -69,7 +76,7 @@ ErrorFailedToSaveFile=Error, el registre del fitxer ha fallat. ErrorCannotAddThisParentWarehouse=Esteu intentant afegir un magatzem primari que ja és fill d'un mag atzem existent FieldCannotBeNegative=El camp "%s" no pot ser negatiu MaxNbOfRecordPerPage=Màx. nombre de registres per pàgina -NotAuthorized=No està autoritzat per fer-ho. +NotAuthorized=No estàs autoritzat per a fer-ho. SetDate=Indica la data SelectDate=Seleccioneu una data SeeAlso=Veure també %s @@ -84,7 +91,7 @@ FileSaved=El fitxer s'ha desat correctament FileUploaded=L'arxiu s'ha carregat correctament FileTransferComplete=El(s) fitxer(s) s'han carregat correctament FilesDeleted=El(s) fitxer(s) s'han eliminat correctament -FileWasNotUploaded=Un arxiu ha estat seleccionat per adjuntar, però encara no ha estat pujat. Feu clic a "Adjuntar aquest arxiu" per a això. +FileWasNotUploaded=S'ha seleccionat un fitxer per a adjuntar-lo, però encara no s'ha penjat. Feu clic a "Adjuntar fitxer" per a això. NbOfEntries=Nombre d'entrades GoToWikiHelpPage=Llegiu l'ajuda en línia (cal tenir accés a Internet) GoToHelpPage=Consultar l'ajuda @@ -108,7 +115,7 @@ PreviousValue=Valor anterior ConnectedOnMultiCompany=Connexió a l'entitat ConnectedSince=Connectat des AuthenticationMode=Mode autentificació -RequestedUrl=URL sol·licitada +RequestedUrl=URL sol·licitat DatabaseTypeManager=Tipus de gestor de base de dades RequestLastAccessInError=Últimes peticions d'accés a la base de dades amb error ReturnCodeLastAccessInError=Retorna el codi per les últimes peticions d'accés a la base de dades amb error @@ -199,6 +206,7 @@ Valid=Validar Approve=Aprovar Disapprove=Desaprovar ReOpen=Reobrir +OpenVerb=Obert Upload=Carrega ToLink=Enllaç Select=Seleccionar @@ -216,7 +224,7 @@ UserGroup=Grup d'usuaris UserGroups=Grups d'usuaris NoUserGroupDefined=Grup d'usuari no definit Password=Contrasenya -PasswordRetype=Repetir contrasenya +PasswordRetype=Repetiu la vostra contrasenya NoteSomeFeaturesAreDisabled=Tingues en compte que molts mòduls i funcionalitats estan deshabilitats en aquesta demostració. Name=Nom NameSlashCompany=Nom / Empresa @@ -235,8 +243,8 @@ Language=Idioma MultiLanguage=Multiidioma Note=Nota Title=Títol -Label=Etiqueta -RefOrLabel=Ref. o etiqueta +Label=Nom +RefOrLabel=Ref. o nom Info=Log Family=Família Description=Descripció @@ -256,7 +264,7 @@ Numero=Número Limit=Límit Limits=Límits Logout=Desconnexió -NoLogoutProcessWithAuthMode=No s'ha pogut desconnectar amb el mètode de autenticació %s +NoLogoutProcessWithAuthMode=No s'ha pogut desconnectar amb el mètode d'autenticació %s Connection=Usuari Setup=Configuració Alert=Alerta @@ -345,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Enganyat per +UserAuthor=Creat per UserModif=Actualitzat per b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Esdeveniments per a aquest contacte / adreça ActionsOnContract=Esdeveniments per a aquest contracte ActionsOnMember=Esdeveniments d'aquest soci ActionsOnProduct=Esdeveniments sobre aquest producte +ActionsOnAsset=Events for this fixed asset NActionsLate=%s en retard ToDo=A realitzar Completed=Finalitzat @@ -549,8 +558,8 @@ Paid=Pagat Topic=Assumpte ByCompanies=Per empresa ByUsers=Per usuari -Links=Links -Link=Link +Links=Enllaços +Link=Enllaç Rejects=Devolucions Preview=Vista prèvia NextStep=Següent pas @@ -565,7 +574,7 @@ Photo=Foto Photos=Fotos AddPhoto=Afegeix una imatge DeletePicture=Elimina la imatge -ConfirmDeletePicture=Confirmes l'eliminació de la imatge? +ConfirmDeletePicture=Vols confirmar l'eliminació de la imatge? Login=Nom d'usuari LoginEmail=Codi d'usuari (correu electrònic) LoginOrEmail=Codi d'usuari o correu electrònic @@ -621,7 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Arxius i documents adjunts JoinMainDoc=Unir al document principal -JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found +JoinMainDocOrLastGenerated=Envieu el document principal o l'últim generat si no el trobeu DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -712,6 +721,7 @@ FeatureDisabled=Funció desactivada MoveBox=Mou el panell Offered=Oferta NotEnoughPermissions=No té autorització per aquesta acció +UserNotInHierachy=Aquesta acció està reservada als supervisors d'aquest usuari SessionName=Nom sesió Method=Mètode Receive=Recepció @@ -797,10 +807,11 @@ Frequency=Freqüència IM=Missatgeria instantània NewAttribute=Atribut nou AttributeCode=Codi atribut -URLPhoto=Url de la foto/logo +URLPhoto=URL de la foto/logotip SetLinkToAnotherThirdParty=Enllaça amb un altre tercer LinkTo=Enllaça a LinkToProposal=Enllaça a pressupost +LinkToExpedition= Enllaç a l'expedició LinkToOrder=Enllaça a comanda LinkToInvoice=Enllaça a factura LinkToTemplateInvoice=Enllaçar a plantilla de factura @@ -852,7 +863,7 @@ AccountCurrency=Moneda del compte ViewPrivateNote=Veure notes XMoreLines=%s línia(es) oculta(es) ShowMoreLines=Mostra més/menys línies -PublicUrl=URL pública +PublicUrl=URL públic AddBox=Afegir quadre SelectElementAndClick=Seleccioneu un element i feu clic a %s PrintFile=%s arxius a imprimir @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Enllaç de descàrrega privat PrivateDownloadLinkDesc=Cal estar registrat i amb permisos per a visualitzar o descarregar el fitxer Download=Descarrega DownloadDocument=Baixar el document +DownloadSignedDocument=Download signed document ActualizeCurrency=Actualitza el canvi de divisa Fiscalyear=Any fiscal ModuleBuilder=Generador de mòduls i aplicacions @@ -930,8 +942,8 @@ WebSites=Pàgines web WebSiteAccounts=Comptes de lloc web ExpenseReport=Informe de despeses ExpenseReports=Informes de despeses -HR=RRHH -HRAndBank=RRHH i banc +HR=RH +HRAndBank=RH i Banc AutomaticallyCalculated=Calculat automàticament TitleSetToDraft=Torna a esborrany ConfirmSetToDraft=Estàs segur que vols tornar a l'estat Esborrany? @@ -1016,14 +1028,14 @@ trillion=bilions quadrillion=quadril·ló SelectMailModel=Seleccioneu una plantilla de correu electrònic SetRef=Indica ref -Select2ResultFoundUseArrows=Alguns resultats trobats. Fes servir les fletxes per seleccionar. +Select2ResultFoundUseArrows=S'han trobat alguns resultats. Utilitzeu les fletxes per a seleccionar. Select2NotFound=No s'han trobat resultats Select2Enter=Entrar Select2MoreCharacter=o més caràcter Select2MoreCharacters=o més caràcters Select2MoreCharactersMore=Sintaxi de cerca:
    | O (a|b)
    * Qualsevol caràcter (a*b)
    ^ Comença amb (^ab)
    $ Finalitza amb (ab$)
    Select2LoadingMoreResults=Carregant més resultats -Select2SearchInProgress=Busqueda en progrés... +Select2SearchInProgress=Cerca en curs... SearchIntoThirdparties=Tercers SearchIntoContacts=Contactes SearchIntoMembers=Socis @@ -1044,6 +1056,7 @@ SearchIntoContracts=Contractes SearchIntoCustomerShipments=Enviaments de client SearchIntoExpenseReports=Informes de despeses SearchIntoLeaves=Dies lliures +SearchIntoKM=Base de coneixements SearchIntoTickets=Tiquets SearchIntoCustomerPayments=Pagaments dels clients SearchIntoVendorPayments=Pagaments a proveïdors @@ -1068,7 +1081,7 @@ Deletedraft=Suprimeix l'esborrany ConfirmMassDraftDeletion=Confirmació d'eliminació massiva d'esborranys FileSharedViaALink=Fitxer compartit amb un enllaç públic SelectAThirdPartyFirst=Selecciona un tercer primer -YouAreCurrentlyInSandboxMode=Actualment esteu en el mode %s "sandbox" +YouAreCurrentlyInSandboxMode=Actualment, esteu en el mode «sandbox» %s Inventory=Inventari AnalyticCode=Codi analític TMenuMRP=MRP @@ -1080,7 +1093,7 @@ PaymentInformation=Informació sobre el pagament ValidFrom=Vàlid des de ValidUntil=Vàlid fins NoRecordedUsers=No hi ha usuaris -ToClose=Per tancar +ToClose=Tancar ToRefuse=Refusar ToProcess=A processar ToApprove=Per a aprovar @@ -1135,15 +1148,29 @@ EventReminder=Recordatori d'esdeveniments UpdateForAllLines=Actualització per a totes les línies OnHold=Fora de servei Civility=Civilitat -AffectTag=Afecta l'etiqueta +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Crea un usuari extern -ConfirmAffectTag=Afecta l'etiqueta massivament -ConfirmAffectTagQuestion=Esteu segur que voleu afectar les etiquetes als registres seleccionats %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No s'ha trobat cap tipus d'etiqueta per al tipus de registres +Rate=Tipus +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copiat al porta-retalls InformationOnLinkToContract=Aquest import només és el total de totes les línies del contracte. No es té en compte cap noció de temps. ConfirmCancel=Esteu segur que voleu cancel·lar-la? EmailMsgID=Envia un correu electrònic a MsgID +EmailDate=Email date +SetToStatus=Estableix a l'estat %s SetToEnabled=Estableix a activat SetToDisabled=Estableix a desactivat ConfirmMassEnabling=confirmació d'activació massiva @@ -1172,5 +1199,14 @@ Terminated=Baixa AddLineOnPosition=Afegeix una línia a la posició (al final si està buida) ConfirmAllocateCommercial=Assigna la confirmació del representant de vendes ConfirmAllocateCommercialQuestion=Esteu segur que voleu assignar els registres seleccionats (%s)? -CommercialsAffected=Representants comercials afectats -CommercialAffected=Representant de vendes afectat +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=El teu missatge +YourMessageHasBeenReceived=S'ha rebut el teu missatge. Et respondrem o contactarem al més aviat possible. +UrlToCheck=URL per a comprovar +Automation=Automatització +CreatedByEmailCollector=Creat pel recol·lector de correu electrònic +CreatedByPublicPortal=Creat a partir del portal públic +UserAgent=Agent d'usuari +InternalUser=Usuari intern +ExternalUser=Usuari extern diff --git a/htdocs/langs/ca_ES/members.lang b/htdocs/langs/ca_ES/members.lang index cfcdb3e30e9..7c5232f0eee 100644 --- a/htdocs/langs/ca_ES/members.lang +++ b/htdocs/langs/ca_ES/members.lang @@ -15,7 +15,8 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Un altre soci (nom: %s, nom d' ErrorUserPermissionAllowsToLinksToItselfOnly=Per motius de seguretat, se us ha de concedir permisos per a editar tots els usuaris per a poder enllaçar un soci a un usuari que no és vostre. SetLinkToUser=Vincular a un usuari Dolibarr SetLinkToThirdParty=Vincular a un tercer Dolibarr -MembersCards=Generation of cards for members +MemberCountersArePublic=Els comptadors de socis vàlids són públics +MembersCards=Generació de carnets per a socis MembersList=Llistat de socis MembersListToValid=Llistat de socis esborrany (per a validar) MembersListValid=Llistat de socis validats @@ -34,12 +35,14 @@ DateSubscription=Data d'adhesió DateEndSubscription=Data de finalització de la subscripció EndSubscription=Fi de la pertinença SubscriptionId=Identificador de contribució -WithoutSubscription=Sense aportació -MemberId=ID de soci +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Identificador de membre +MemberRef=Membre Ref NewMember=Soci nou MemberType=Tipus de soci MemberTypeId=ID de tipus de soci -MemberTypeLabel=Etiqueta de tipus de soci +MemberTypeLabel=Nom de tipus de soci MembersTypes=Tipus de socis MemberStatusDraft=Esborrany (a validar) MemberStatusDraftShort=Esborrany @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=El tipus de soci no es pot eliminar NewSubscription=Aportació nova NewSubscriptionDesc=Aquest formulari us permet registrar la vostra afiliació com a soci nou de l'entitat. Si voleu renovar l'afiliació (si ja sou soci), poseu-vos en contacte amb el gestor de l'entitat per correu electrònic %s. Subscription=Contribució +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Qualsevol import +CanEditAmountShortForValues=recomanat, qualsevol import +MembershipDuration=Duració +GetMembershipButtonLabel=Join Subscriptions=Aportacions SubscriptionLate=En retard SubscriptionNotReceived=No s’ha rebut cap contribució @@ -102,7 +111,7 @@ ConfirmValidateMember=Vols validar aquest soci? FollowingLinksArePublic=Els següents enllaços són pàgines obertes que no estan protegides per cap permís de Dolibarr. No són pàgines amb format, són proporcionades com a exemple per a mostrar com llistar la base de dades de socis. PublicMemberList=Llistat públic de socis BlankSubscriptionForm=Formulari públic d’autoregistre -BlankSubscriptionFormDesc=Dolibarr us pot proporcionar una URL/lloc web públic per a permetre que els visitants externs sol·licitin subscriure's a la fundació. Si un mòdul de pagament en línia està habilitat, també es pot proporcionar automàticament un formulari de pagament. +BlankSubscriptionFormDesc=Dolibarr us pot proporcionar un URL/lloc web públic per a permetre que els visitants externs sol·licitin la subscripció a la fundació. Si un mòdul de pagament en línia està habilitat, també es pot proporcionar automàticament un formulari de pagament. EnablePublicSubscriptionForm=Activa el lloc web públic amb el formulari d'auto-subscripció ForceMemberType=Força el tipus de soci ExportDataset_member_1=Membres i contribucions @@ -135,7 +144,7 @@ CardContent=Contingut de la seva fitxa de soci # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Volem informar-li que s'ha rebut la vostra sol·licitud de subscripció.

    ThisIsContentOfYourMembershipWasValidated=Volem informar-vos que la vostra subscripció s'ha validat amb la informació següent:

    -ThisIsContentOfYourSubscriptionWasRecorded=Volem informar-vos que s'ha registrat la vostra nova subscripció.

    +ThisIsContentOfYourSubscriptionWasRecorded=Volem fer-te saber que la teva nova subscripció s'ha enregistrat. Trobeu la vostra factura aquí adjunta.

    ThisIsContentOfSubscriptionReminderEmail=Volem informar-vos que la vostra subscripció està a punt d'expirar o que ja ha caducat (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperem que la renovisqueu.

    ThisIsContentOfYourCard=Aquest és un resum de la informació que tenim sobre vostè. Poseu-vos en contacte amb nosaltres si hi ha alguna cosa incorrecta.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Assumpte del correu electrònic de notificació rebut en cas d'inscripció automàtica d'un convidat @@ -155,7 +164,7 @@ DescADHERENT_CARD_TEXT=Text a imprimir en el carnet de soci (alineat a l'esquerr DescADHERENT_CARD_TEXT_RIGHT=Text a imprimir en el carnet de soci (alineat a la dreta) DescADHERENT_CARD_FOOTER_TEXT=Text a imprimir a la part inferior del carnet de soci ShowTypeCard=Veure tipus '%s' -HTPasswordExport=Generació fitxer htpassword +HTPasswordExport=Generació del fitxer htpassword NoThirdPartyAssociatedToMember=Cap tercer associat amb aquest membre MembersAndSubscriptions=Membres i contribucions MoreActions=Acció complementària al registre @@ -163,7 +172,7 @@ MoreActionsOnSubscription=Acció complementària suggerida per defecte a l'hora MoreActionBankDirect=Crea una entrada directa al compte bancari MoreActionBankViaInvoice=Crea una factura, i un pagament sobre el compte bancari MoreActionInvoiceOnly=Creació factura sense pagament -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Generació de targetes de visita o fulls d'adreces LinkToGeneratedPagesDesc=Aquesta pantalla li permet generar fitxers PDF amb els carnets de tots els socis o un soci particular. DocForAllMembersCards=Generació de targetes per a tots els socis DocForOneMemberCards=Generació de targetes per a un soci en particular @@ -198,8 +207,10 @@ NbOfSubscriptions=Nombre de contribucions AmountOfSubscriptions=Import recaptat de les contribucions TurnoverOrBudget=Volum de vendes (empresa) o Pressupost (associació o col.lectiu) DefaultAmount=Import per defecte de la contribució -CanEditAmount=El visitant pot triar / editar l'import de la seva contribució -MEMBER_NEWFORM_PAYONLINE=Anar a la pàgina integrada de pagament en línia +CanEditAmount=Subscription amount is free +CanEditAmountDetail=El visitant pot triar/editar la quantitat de la seva contribució independentment del tipus de soci +AmountIsLowerToMinimumNotice=sobre un total d'%s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Per naturalesa MembersStatisticsByProperties=Estadístiques dels membres per naturalesa VATToUseForSubscriptions=Tipus d’IVA a utilitzar per a les aportacions @@ -218,3 +229,6 @@ XExternalUserCreated=%s creats (s) usuaris externs ForceMemberNature=Naturalesa del membre de la força (individual o corporació) CreateDolibarrLoginDesc=La creació d'un inici de sessió d'usuari per als membres els permet connectar-se a l'aplicació. En funció de les autoritzacions concedides, podran, per exemple, consultar o modificar el seu fitxer ells mateixos. CreateDolibarrThirdPartyDesc=Un tercer és l'entitat jurídica que s'utilitzarà a la factura si decidiu generar factura per a cada contribució. El podreu crear més endavant durant el procés de gravació de la contribució. +MemberFirstname=Nom del membre +MemberLastname=Cognom del membre +MemberCodeDesc=Codi de soci, únic per a tots els socis diff --git a/htdocs/langs/ca_ES/modulebuilder.lang b/htdocs/langs/ca_ES/modulebuilder.lang index 0bc7541322f..ead829e1a93 100644 --- a/htdocs/langs/ca_ES/modulebuilder.lang +++ b/htdocs/langs/ca_ES/modulebuilder.lang @@ -1,17 +1,19 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=Aquesta eina només l'han d'utilitzar usuaris o desenvolupadors experimentats. Proporciona utilitats per construir o editar el vostre propi mòdul. La documentació per al desenvolupament manual alternatiu és aquí . -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +IdModule= Identificador del mòdul +ModuleBuilderDesc=Aquesta eina només l'han d'utilitzar usuaris o desenvolupadors experimentats. Proporciona utilitats per a construir o editar el vostre propi mòdul. La documentació per al desenvolupament manual alternatiu és aquí . +EnterNameOfModuleDesc=Introduïu el nom del mòdul/aplicació que voleu crear sense espais. Utilitzeu majúscules per a separar paraules (per exemple: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Introduïu el nom de l'objecte que voleu crear sense espais. Utilitzeu majúscules per a separar paraules (per exemple: ElMeuObjecte, Estudiant, Professor...). Es generarà el fitxer de classe CRUD, les pàgines per a llistar/afegir/editar/suprimir l'objecte i els fitxers SQL. +EnterNameOfDictionaryDesc=Introduïu el nom del diccionari que voleu crear sense espais. Utilitzeu majúscules per a separar paraules (per exemple: MyDico...). Es generarà el fitxer de classe, però també el fitxer SQL. ModuleBuilderDesc2=Camí on es generen / editen els mòduls (primer directori per als mòduls externs definits en %s): %s ModuleBuilderDesc3=S'han trobat mòduls generats/editables: %s ModuleBuilderDesc4=Es detecta un mòdul com "editable" quan el fitxer %s existeix al directori arrel del mòdul NewModule=Mòdul nou NewObjectInModulebuilder=Objecte nou -NewDictionary=New dictionary +NewDictionary=Nou diccionari +ModuleName=Nom del mòdul ModuleKey=Clau del mòdul ObjectKey=Clau de l'objecte -DicKey=Dictionary key +DicKey=Clau del diccionari ModuleInitialized=Mòdul inicialitzat FilesForObjectInitialized=S'han inicialitzat els fitxers per al objecte nou '%s' FilesForObjectUpdated=Fitxers de l'objecte '%s' actualitzat (fitxers .sql i fitxer .class.php) @@ -20,7 +22,7 @@ ModuleBuilderDescspecifications=Podeu introduir aquí una descripció detallada ModuleBuilderDescobjects=Definiu aquí els objectes que voleu gestionar amb el vostre mòdul. Es generarà una classe CRUD DAO, fitxers SQL, una pàgina per a llistar el registre d'objectes, per a crear/editar/visualitzar un registre i una API. ModuleBuilderDescmenus=Aquesta pestanya està dedicada a definir les entrades de menú proporcionades pel teu mòdul. ModuleBuilderDescpermissions=Aquesta pestanya està dedicada a definir els permisos nous que voleu proporcionar amb el vostre mòdul. -ModuleBuilderDesctriggers=Aquesta és la vista dels disparadors proporcionats pel teu mòdul. Per incloure el codi executat quan es posa en marxa un esdeveniment de negoci desencadenat, edita aquest fitxer. +ModuleBuilderDesctriggers=Aquesta és la vista dels disparadors proporcionats pel vostre mòdul. Per a incloure el codi executat quan s'activa un esdeveniment de negoci, només cal que editeu aquest fitxer. ModuleBuilderDeschooks=Aquesta pestanya està dedicada als ganxos (hooks) ModuleBuilderDescwidgets=Aquesta pestanya està dedicada a gestionar/crear ginys. ModuleBuilderDescbuildpackage=Aquí podeu generar un fitxer de paquet "a punt per a distribuir" (un fitxer .zip normalitzat) del vostre mòdul i un fitxer de documentació "a punt per a distribuir". Simplement feu clic al botó per a crear el paquet o el fitxer de documentació. @@ -34,7 +36,7 @@ ModuleIsNotActive=Aquest mòdul encara no està activat. Aneu a %s per a publica ModuleIsLive=Aquest mòdul ha estat activat. Qualsevol canvi pot trencar la funció actual en viu. DescriptionLong=Descripció llarga EditorName=Nom de l'editor -EditorUrl=URL d'editor +EditorUrl=URL de l'editor DescriptorFile=Fitxer descriptor del mòdul ClassFile=Fitxer per a la classe CRUD DAO PHP ApiClassFile=Fitxer per la classe PHP API @@ -48,14 +50,17 @@ PathToModulePackage=Ruta al zip del paquet del mòdul/aplicació PathToModuleDocumentation=Camí al fitxer de la documentació del mòdul / aplicació (%s) SpaceOrSpecialCharAreNotAllowed=Els espais o caràcters especials no estan permesos. FileNotYetGenerated=El fitxer encara no s'ha generat +GenerateCode=Genera codi RegenerateClassAndSql=Força l'actualització dels fitxers .class i .sql RegenerateMissingFiles=Genera els fitxers que falten SpecificationFile=Fitxer de documentació LanguageFile=Arxiu del llenguatge ObjectProperties=Propietats de l'objecte +Property=Propery +PropertyDesc=Una propietat és un atribut que caracteritza un objecte. Aquest atribut té un codi, un nom i un tipus amb diverses opcions. ConfirmDeleteProperty=Estàs segur que vols eliminar la propietat %s ? Això canviarà el codi a la classe PHP, però també eliminarà la columna de la definició de la taula de l'objecte. NotNull=No és NULL -NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +NotNullDesc=1=Estableix la base de dades en NOT NULL, 0=Permet valors nuls, -1=Permet valors nuls forçant el valor a NULL si està buit ('' o 0) SearchAll=Utilitzat per a 'cerca tot' DatabaseIndex=Índex de bases de dades FileAlreadyExists=El fitxer %s ja existeix @@ -81,15 +86,16 @@ IsAMeasure=És una mesura DirScanned=Directori escanejat NoTrigger=Sense activador (trigger) NoWidget=Sense widget -GoToApiExplorer=Explorador d'API +ApiExplorer=Explorador d'API ListOfMenusEntries=Llista d'entrades de menú ListOfDictionariesEntries=Llista d'entrades de diccionaris ListOfPermissionsDefined=Llista de permisos definits SeeExamples=Mira exemples aquí -EnabledDesc=Condició per a tenir aquest camp actiu (Exemples: 1 ó $conf->global->MYMODULE_MYOPTION) -VisibleDesc=És visible el camp ? (Exemples: 0=Mai visible, 1=Visible als llistats i als formularis crear/modificar/veure, 2=Visible només als llistats, 3=Visible només als formularis crear/modificar/veure (no als llistats), 4=Visible als llistats i només als formularis modificar/veure (no al de crear), 5=Visible als llistats i només al formulari de veure (però no als formularis de crear i modificar).

    Utilitzant un valor negatiu implicarà que el camp no es mostrarà per defecte als llistats però podrà ser escollit per veure's).

    pot ser una expressió, per exemple:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Mostra aquest camp en documents PDF compatibles, podeu gestionar la posició amb el camp "Posició".
    Actualment, els models PDF compatibles coneguts són: eratostene (comanda), espadon (enviament), esponja (factures), cian (propal / pressupost), cornas (comanda del proveïdor)

    = display
    2 = només si no està buit

    Per a les línies de documents:
    0 = no es veuen les
    1 = mostren en una columna
    = 3 = display a la columna de descripció de línia després de la descripció
    4 = display a la columna de descripció després de la descripció només si no està buida -DisplayOnPdf=Visualització en PDF +EnabledDesc=Condició per tenir aquest camp actiu.

    Exemples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE') a0342fccfda19bzLE_Get ='GCCFda19bz0' +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=En PDF IsAMeasureDesc=Es pot acumular el valor del camp per a obtenir un total a la llista? (Exemples: 1 o 0) SearchAllDesc=El camp utilitzat per realitzar una cerca des de l'eina de cerca ràpida? (Exemples: 1 o 0) SpecDefDesc=Introduïu aquí tota la documentació que voleu proporcionar amb el vostre mòdul que encara no està definit per altres pestanyes. Podeu utilitzar .md o millor, la sintaxi enriquida .asciidoc. @@ -100,7 +106,7 @@ PermissionsDefDesc=Definiu aquí els nous permisos proporcionats pel vostre mòd MenusDefDescTooltip=Els menús proporcionats pel vostre mòdul/aplicació es defineixen a la matriu $this->menus al fitxer descriptor del mòdul. Podeu editar manualment aquest fitxer o utilitzar l'editor incrustat.

    Nota: un cop definits (i el mòdul reactivat), els menús també són visibles a l'editor de menús disponible per als usuaris administradors a %s. DictionariesDefDescTooltip=Els diccionaris subministrats pel vostre mòdul/aplicació es defineixen a la matriu $this->dictionaries del fitxer descriptor del mòdul. Podeu editar manualment aquest fitxer o utilitzar l’editor incrustat.

    Nota: un cop definit (i reactivat el mòdul), els diccionaris també són visibles a la zona de configuració per als usuaris administradors a %s. PermissionsDefDescTooltip=Els permisos proporcionats pel vostre mòdul / aplicació es defineixen a la matriu $ this-> rights al fitxer descriptor del mòdul. Podeu editar manualment aquest fitxer o utilitzar l’editor incrustat.

    Nota: un cop definits (i el mòdul reactivat), els permisos es visualitzen a la configuració de permisos per defecte %s. -HooksDefDesc=Definiu a la propietat module_parts['hooks'], en el descriptor del mòdul, el context dels "hooks" que voleu gestionar (una llista de contextos es pot trobar si cerqueu 'initHooks' (en el codi del nucli de Dolibarr.
    Editeu el fitxer del "hook" per a afegir el codi de les vostres funcions "hookables" (les quals es poden trobar cercant "executeHooks" en el codi del nucli de Dolibarr). +HooksDefDesc=Definiu a la propietat module_parts['hooks'] , al descriptor del mòdul, el context dels "hooks" que voleu gestionar (la llista de contextos es pot trobar mitjançant una cerca a ' initHooks(' en el codi del nucli).
    Edita el fitxer "hook" per a afegir codi de les vostres funcions enganxades (les funcions enganxables es poden trobar mitjançant una cerca a ' executeHooks ' al codi del nucli). TriggerDefDesc=Definiu al fitxer disparador el codi que voleu executar quan s'executi un esdeveniment empresarial extern al vostre mòdul (esdeveniments desencadenats per altres mòduls). SeeIDsInUse=Consulteu els identificadors que s’utilitzen a la instal·lació SeeReservedIDsRangeHere=Consultar l'interval d'identificadors reservats @@ -130,26 +136,32 @@ UseSpecificEditorURL = Utilitzeu editor específic URL UseSpecificFamily = Utilitzeu una família específica UseSpecificAuthor = Utilitzeu un autor específic UseSpecificVersion = Utilitzeu una versió inicial específica -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules +IncludeRefGenerationHelp=Marqueu-ho si voleu incloure codi per gestionar automàticament la generació de la referència mitjançant regles de numeració personalitzades +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Si ho marques, es generarà el codi per a afegir una casella "Generar document" al registre. -ShowOnCombobox=Mostra el valor a la llista desplegable +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Clau per donar més informació CSSClass=CSS per a editar/crear un formulari CSSViewClass=CSS per al formulari de lectura CSSListClass=CSS per a llistats NotEditable=No editable ForeignKey=Clau forana -TypeOfFieldsHelp=Tipus de camps:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' vol dir que afegim un botó + després de la combinació per crear el registre
    'filtre' és una condició sql, exemple: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Convertidor Ascii a HTML AsciiToPdfConverter=Convertidor Ascii a PDF TableNotEmptyDropCanceled=La taula no està buida. S'ha cancel·lat l'eliminació. ModuleBuilderNotAllowed=El creador de mòduls està disponible però no permès al vostre usuari. ImportExportProfiles=Importar i exportar perfils -ValidateModBuilderDesc=Establiu-ho a 1 si voleu que el mètode $this->validateField() de l'objecte es cridi per validar el contingut del camp durant la inserció o l'actualització. Establiu 0 si no es requereix validació. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Avís: la base de dades no s'actualitza automàticament, heu de destruir les taules i desactivar-habilitar el mòdul perquè es tornin a crear taules. LinkToParentMenu=Menú principal (fk_xxxxmenu) ListOfTabsEntries=Llista d'entrades de pestanyes TabsDefDesc=Definiu aquí les pestanyes proporcionades pel vostre mòdul TabsDefDescTooltip=Les pestanyes proporcionades pel vostre mòdul/aplicació es defineixen a la matriu $this->tabs al fitxer descriptor del mòdul. Podeu editar manualment aquest fitxer o utilitzar l'editor incrustat. +BadValueForType=Valor incorrecte per al tipus %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/ca_ES/mrp.lang b/htdocs/langs/ca_ES/mrp.lang index ac57dc2e1cd..f00b539c73c 100644 --- a/htdocs/langs/ca_ES/mrp.lang +++ b/htdocs/langs/ca_ES/mrp.lang @@ -11,10 +11,10 @@ Bom=Llista de materials BillOfMaterials=Llista de materials BillOfMaterialsLines=Línies de llista de materials BOMsSetup=Configuració del mòdul BOM -ListOfBOMs=Llista de factures de material - BOM -ListOfManufacturingOrders=Llista d'ordres de fabricació +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Ordres de fabricació NewBOM=Llista nova de materials -ProductBOMHelp=Producte per crear (o desmuntar) amb aquesta llista de material.
    Nota: Els productes amb la propietat 'Nature of product' = 'Matèria primera' no són visibles en aquesta llista. +ProductBOMHelp=Producte per a crear (o desmuntar) amb aquesta llista de material.
    Nota: Els productes amb la propietat 'Natura del producte' = 'Matèria primera' no són visibles en aquesta llista. BOMsNumberingModules=Plantilles de numeració BOM BOMsModelModule=Plantilles de document BOM MOsNumberingModules=Models de numeració OF @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Esteu segur que voleu clonar la llista de materials ConfirmCloneMo=Esteu segur que voleu clonar la Ordre de Fabricació %s? ManufacturingEfficiency=Eficiència en la fabricació ConsumptionEfficiency=Eficiència del consum +Consumption=Consumption ValueOfMeansLoss=El valor de 0,95 significa una mitjana de 5%% de pèrdua durant la fabricació o el desmuntatge ValueOfMeansLossForProductProduced=Un valor de 0,95 significa una mitjana de 5%% de pèrdues de producte produït DeleteBillOfMaterials=Suprimeix la llista de materials @@ -82,7 +83,8 @@ ProductsToProduce=Productes a produir UnitCost=Cost unitari TotalCost=Cost total BOMTotalCost=El cost de produir aquesta Llista de materials en funció del cost de cada quantitat i producte a consumir (utilitza el preu de cost si està definit, altrament el preu mitjà ponderat si està definit, altrament el millor preu de compra) -GoOnTabProductionToProduceFirst=Per tancar una Ordre de fabricació primer heu d'iniciar la producció (vegeu la pestanya '%s'). Però sí podeu cancel·lar-la. +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" +GoOnTabProductionToProduceFirst=Per a tancar una Ordre de fabricació primer heu d'iniciar la producció (vegeu la pestanya «%s»). Però podeu cancel·lar-la. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit no es pot utilitzar en una llista de material o en una OF Workstation=Estació de treball Workstations=Estacions de treball @@ -109,6 +111,10 @@ THMEstimatedHelp=Aquesta taxa permet definir un cost previst de l'article BOM=Factura de materials CollapseBOMHelp=Podeu definir la visualització per defecte dels detalls de la nomenclatura a la configuració del mòdul BOM MOAndLines=Comandes i línies de fabricació -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +MoChildGenerate=Genera Child Mo +ParentMo=MO Pare +MOChild=MO Nen +BomCantAddChildBom=La nomenclatura %s ja està present a l'arbre que porta a la nomenclatura %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=Productes de BOM +BOMServicesList=Serveis de BOM diff --git a/htdocs/langs/ca_ES/oauth.lang b/htdocs/langs/ca_ES/oauth.lang index d5808930a4f..ec96630cfcb 100644 --- a/htdocs/langs/ca_ES/oauth.lang +++ b/htdocs/langs/ca_ES/oauth.lang @@ -9,12 +9,14 @@ HasAccessToken=S'ha generat un token i s'ha desat en la base de dades local NewTokenStored=Token rebut i desat ToCheckDeleteTokenOnProvider=Feu clic aquí per a comprovar/eliminar l'autorització desada pel proveïdor OAuth %s TokenDeleted=Token eliminat -RequestAccess=Feu clic aquí per a sol·licitar/renovar l'accés i rebre un nou testimoni per a desar -DeleteAccess=Feu clic aquí per a suprimir el testimoni +GetAccess=Feu clic aquí per a obtenir un testimoni +RequestAccess=Feu clic aquí per sol·licitar/renovar l'accés i rebre un nou testimoni +DeleteAccess=Feu clic aquí per a eliminar el testimoni UseTheFollowingUrlAsRedirectURI=Utilitzeu l'URL següent com a URI de redirecció quan creeu les vostres credencials amb el vostre proveïdor de OAuth: -ListOfSupportedOauthProviders=Introduïu les credencials proporcionades pel vostre proveïdor OAuth2. Només es mostren aquí els proveïdors compatibles OAuth2. Aquests serveis poden ser utilitzats per altres mòduls que necessiten autenticació OAuth2. -OAuthSetupForLogin=Pàgina per a generar un token OAuth +ListOfSupportedOauthProviders=Afegiu els vostres proveïdors de testimoni OAuth2. A continuació, aneu a la pàgina d'administració del vostre proveïdor d'OAuth per a crear/obtenir un ID i un secret OAuth i deseu-los aquí. Un cop fet, activeu l'altra pestanya per a generar el vostre testimoni. +OAuthSetupForLogin=Pàgina per gestionar (generar/suprimir) fitxes OAuth SeePreviousTab=Veure la pestanya anterior +OAuthProvider=Proveïdor d'OAuth OAuthIDSecret=OAuth ID i Secret TOKEN_REFRESH=Refresc present de token TOKEN_EXPIRED=Token expirat @@ -23,10 +25,16 @@ TOKEN_DELETE=Elimina el token desat OAUTH_GOOGLE_NAME=Servei d'OAuth Google OAUTH_GOOGLE_ID=Identificador de Google OAuth OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Aneu a aquesta pàgina i després "Credencials" per a crear credencials OAuth OAUTH_GITHUB_NAME=Servei OAuth GitHub OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Aneu a aquesta pàgina i després "Registreu una aplicació nova" per crear credencials OAuth +OAUTH_URL_FOR_CREDENTIAL=Aneu a aquesta pàgina per a crear o obtenir el vostre identificador i secret d'OAuth OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=ID OAuth +OAUTH_SECRET=Secret d'OAuth +OAuthProviderAdded=S'ha afegit el proveïdor OAuth +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Ja existeix una entrada d'OAuth per a aquest proveïdor i nom +URLOfServiceForAuthorization=URL proporcionat pel servei OAuth per a l'autenticació +Scopes=Permisos (àmbits) +ScopeUndefined=Permissions (Scopes) undefined (see previous tab) diff --git a/htdocs/langs/ca_ES/opensurvey.lang b/htdocs/langs/ca_ES/opensurvey.lang index e81e66a4551..f063774f1a3 100644 --- a/htdocs/langs/ca_ES/opensurvey.lang +++ b/htdocs/langs/ca_ES/opensurvey.lang @@ -23,7 +23,7 @@ OpenSurveyHowTo=Si accepteu votar en aquesta enquesta, haureu de donar el vostre CommentsOfVoters=Comentaris dels votants ConfirmRemovalOfPoll=Està segur que desitja eliminar aquesta enquesta (i tots els vots) RemovePoll=Eliminar enquesta -UrlForSurvey=URL per indicar l'accés directe a l'enquesta +UrlForSurvey=URL per a indicar un accés directe a l'enquesta PollOnChoice=Està creant una enquesta amb múltiples opcions. Primer introdueixi totes les opcions possibles per aquesta enquesta: CreateSurveyDate=Crear una enquesta de data CreateSurveyStandard=Crear una enquesta estàndard @@ -31,13 +31,13 @@ CheckBox=Casella de selecció simple YesNoList=Llista (buit/sí/no) PourContreList=Llista (buit/a favor/en contra) AddNewColumn=Afegeix una columna nova -TitleChoice=Títol de l'opció +TitleChoice=Nom d'elecció ExportSpreadsheet=Exportar resultats a un full de càlcul ExpireDate=Data límit NbOfSurveys=Nombre d'enquestes NbOfVoters=Nombre de votants SurveyResults=Resultats -PollAdminDesc=Està autoritzat per canviar totes les línies de l'enquesta amb el botó "Editar". Pot, també, eliminar una columna o una línia amb %s. També podeu afegir una nova columna amb %s. +PollAdminDesc=Podeu canviar totes les línies de vot d'aquesta enquesta amb el botó "Edita". També podeu eliminar una columna o una línia amb %s. També podeu afegir una columna nova amb %s. 5MoreChoices=5 opcions més Against=En contra YouAreInivitedToVote=Està convidat a votar en aquesta enquesta diff --git a/htdocs/langs/ca_ES/orders.lang b/htdocs/langs/ca_ES/orders.lang index 5660430496e..472cd6f2c80 100644 --- a/htdocs/langs/ca_ES/orders.lang +++ b/htdocs/langs/ca_ES/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Ja hi havia una comanda oberta vinculada a aquesta proposta, de manera que no es va crear cap altra comanda automàticament OrdersArea=Àrea comandes de clients SuppliersOrdersArea=Àrea de comandes de compra OrderCard=Fitxa comanda diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 280a364d960..25afe2f2f8d 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -101,7 +101,7 @@ PredefinedMailContentSendSupplierOrder=__(Hola)__\n\nTrobeu la nostra comanda __ PredefinedMailContentSendSupplierInvoice=__(Hola)__\n\nTrobeu la factura __REF__ adjunta\n\n\n__ (Atentament) __\n\n__USER_SIGNATURE__ PredefinedMailContentSendShipping=__(Hola)__\n\nTrobeu l'enviament __REF__ adjuntat\n\n\n__ (Atentament) __\n\n__USER_SIGNATURE__ PredefinedMailContentSendFichInter=__(Hola)__\n\nTrobeu la intervenció __REF__ adjunta\n\n\n__ (Atentament) __\n\n__USER_SIGNATURE__ -PredefinedMailContentLink=Podeu fer clic a l'enllaç següent per fer el pagament si encara no està fet.\n\n%s\n\n +PredefinedMailContentLink=Podeu fer clic a l'enllaç següent per a fer el vostre pagament si encara no s'ha fet.\n\n%s\n\n PredefinedMailContentGeneric=__(Hello)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__ PredefinedMailContentSendActionComm=Recordatori d'esdeveniments "__EVENT_LABEL__" el dia __EVENT_DATE__ a les __EVENT_TIME__

    Aquest és un missatge automàtic, no respongueu. DemoDesc=Dolibarr és un ERP/CRM compacte que admet diversos mòduls empresarials. Una demostració que mostri tots els mòduls no té cap sentit, ja que aquest escenari no es produeix mai (diversos centenars disponibles). Per tant, hi ha disponibles diversos perfils de demostració. @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=o construeix el teu perfil
    (selecció de mòduls man DemoFundation=Gestió de socis d'una entitat DemoFundation2=Gestió de socis i tresoreria d'una entitat DemoCompanyServiceOnly=Empresa o autònom només amb venda de serveis -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=Gestionar una botiga amb una caixa de diners DemoCompanyProductAndStocks=Compra venda de productes amb el Punt de Venda DemoCompanyManufacturing=Productes de fabricació de l'empresa DemoCompanyAll=Empresa amb activitats múltiples (tots els mòduls principals) @@ -244,7 +244,7 @@ FileIsTooBig=L'arxiu és massa gran PleaseBePatient=Si us plau sigui pacient... NewPassword=Contrasenya nova ResetPassword=Restablir la contrasenya -RequestToResetPasswordReceived=S'ha rebut una sol·licitud per canviar la teva contrasenya. +RequestToResetPasswordReceived=S'ha rebut una sol·licitud per a canviar la teva contrasenya. NewKeyIs=Aquesta és la nova contrasenya per a iniciar la sessió NewKeyWillBe=La contrasenya nova per a iniciar la sessió al programari serà ClickHereToGoTo=Clica aquí per anar a %s @@ -298,9 +298,30 @@ PopuProp=Productes / Serveis per popularitat als pressupostos PopuCom=Productes / Serveis per popularitat a les comandes ProductStatistics=Productes / Serveis Estadístiques NbOfQtyInOrders=Quantitat en comandes -SelectTheTypeOfObjectToAnalyze=Seleccioneu un objecte per veure'n les estadístiques ... +SelectTheTypeOfObjectToAnalyze=Seleccioneu un objecte per a veure'n les estadístiques... ConfirmBtnCommonContent = Esteu segur que voleu "%s"? ConfirmBtnCommonTitle = Confirmeu la vostra acció CloseDialog = Tancar Autofill = Emplenament automàtic + +# externalsite +ExternalSiteSetup=Configuració de l'enllaç a la pàgina web externa +ExternalSiteURL=URL del lloc extern del contingut iframe HTML +ExternalSiteModuleNotComplete=El mòdul Lloc web extern no ha estat configurat correctament. +ExampleMyMenuEntry=La meva entrada del menú + +# FTP +FTPClientSetup=Configuració del mòdul Client FTP o SFTP +NewFTPClient=Configuració nova de la connexió FTP/FTPS +FTPArea=Àrea FTP/FTPS +FTPAreaDesc=Aquesta pantalla mostra una vista d'un servidor FTP i SFTP. +SetupOfFTPClientModuleNotComplete=La configuració del mòdul Client FTP o SFTP sembla incompleta +FTPFeatureNotSupportedByYourPHP=El vostre PHP no admet funcions FTP o SFTP +FailedToConnectToFTPServer=No s'ha pogut connectar al servidor (servidor %s, port %s) +FailedToConnectToFTPServerWithCredentials=No s'ha pogut iniciar la sessió al servidor amb l'usuari/contrasenya definit +FTPFailedToRemoveFile=No s'ha pogut eliminar el fitxer %s . +FTPFailedToRemoveDir=No s'ha pogut eliminar la carpeta %s : comproveu els permisos i que la carpeta està buida. +FTPPassiveMode=Mode passiu +ChooseAFTPEntryIntoMenu=Tria un lloc FTP/SFTP del menú... +FailedToGetFile=No s'han pogut obtenir els fitxers %s diff --git a/htdocs/langs/ca_ES/partnership.lang b/htdocs/langs/ca_ES/partnership.lang index bd9fe10404f..7254e26fcea 100644 --- a/htdocs/langs/ca_ES/partnership.lang +++ b/htdocs/langs/ca_ES/partnership.lang @@ -38,10 +38,11 @@ PartnershipAbout=Quant a Partnership PartnershipAboutPage=Associació sobre la pàgina partnershipforthirdpartyormember=L'estat de soci s'ha de definir en un "tercer" o un "membre". PARTNERSHIP_IS_MANAGED_FOR=Associació gestionada per -PARTNERSHIP_BACKLINKS_TO_CHECK=Enllaços enrere per comprovar +PARTNERSHIP_BACKLINKS_TO_CHECK=Retroenllaços per a comprovar PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb de dies abans de cancel·lar l'estat d'una associació quan la subscripció ha caducat ReferingWebsiteCheck=Comprovació de referència del lloc web -ReferingWebsiteCheckDesc=Podeu habilitar una funció per comprovar que els vostres socis han afegit un enllaç de retrocés als dominis del vostre lloc web al seu propi lloc web. +ReferingWebsiteCheckDesc=Podeu activar una funció per a comprovar que els vostres socis hagin afegit un retroenllaç als dominis del vostre lloc web al seu propi lloc web. +PublicFormRegistrationPartnerDesc=Dolibarr us pot proporcionar un URL/lloc web públic per a permetre que els visitants externs sol·licitin formar part del programa d'associació. # # Object @@ -59,6 +60,12 @@ BacklinkNotFoundOnPartnerWebsite=Enllaç de retrocés no trobat al lloc web asso ConfirmClosePartnershipAsk=Esteu segur que voleu cancel·lar aquesta associació? PartnershipType=Tipus de col·laboració PartnershipRefApproved=Associació %s aprovada +KeywordToCheckInWebsite=Si voleu comprovar que una paraula clau determinada està present al lloc web de cada soci, definiu aquesta paraula clau aquí +PartnershipDraft=Esborrany +PartnershipAccepted=Acceptat +PartnershipRefused=Rebutjat +PartnershipCanceled=Cancel·lat +PartnershipManagedFor=Els socis ho són # # Template Mail @@ -73,7 +80,7 @@ YourPartnershipRefusedTopic=L'associació es va negar YourPartnershipAcceptedTopic=S'ha acceptat l'associació YourPartnershipCanceledTopic=S'ha cancel·lat l'associació -YourPartnershipWillSoonBeCanceledContent=Us informem que la vostra associació aviat es cancel·larà (no s'ha trobat el backlink) +YourPartnershipWillSoonBeCanceledContent=Us informem que aviat es cancel·larà la vostra associació (no s'ha trobat l'enllaç de retrocés) YourPartnershipRefusedContent=Us informem que la vostra sol·licitud de col·laboració s’ha rebutjat. YourPartnershipAcceptedContent=Us informem que la vostra sol·licitud de col·laboració ha estat acceptada. YourPartnershipCanceledContent=Us informem que la vostra associació s’ha cancel·lat. @@ -82,11 +89,6 @@ CountLastUrlCheckError=Nombre d'errors de l'última comprovació de l'URL LastCheckBacklink=Data de l'última comprovació de l'URL ReasonDeclineOrCancel=Rebutjar la raó -# -# Status -# -PartnershipDraft=Esborrany -PartnershipAccepted=Acceptat -PartnershipRefused=Rebutjat -PartnershipCanceled=Cancel·lat -PartnershipManagedFor=Els socis ho són +NewPartnershipRequest=Nova sol·licitud de col·laboració +NewPartnershipRequestDesc=Aquest formulari us permet sol·licitar formar part d'un dels nostres programes d'associació. Si necessiteu ajuda per omplir aquest formulari, poseu-vos en contacte amb el correu electrònic %s . + diff --git a/htdocs/langs/ca_ES/paybox.lang b/htdocs/langs/ca_ES/paybox.lang index 2dd9b7e3f54..876772c26b0 100644 --- a/htdocs/langs/ca_ES/paybox.lang +++ b/htdocs/langs/ca_ES/paybox.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=Configuració mòdul PayBox -PayBoxDesc=Aquest mòdul ofereix pàgines per permetre el pagament a Paybox per part dels clients. Això es pot utilitzar per a un pagament gratuït o per a un pagament d'un objecte Dolibarr concret (factura, comanda, ...) +PayBoxDesc=Aquest mòdul ofereix pàgines per a permetre el pagament a Paybox per part dels clients. Això es pot utilitzar per a un pagament gratuït o per a un pagament d'un objecte Dolibarr concret (factura, comanda, ...) FollowingUrlAreAvailableToMakePayments=Les següents URL estan disponibles per a permetre a un client fer un cobrament en objectes de Dolibarr PaymentForm=Formulari de pagament WelcomeOnPaymentPage=Benvingut als nostres serveis de pagament en línia @@ -19,8 +19,8 @@ YourPaymentHasNotBeenRecorded=El vostre pagament no s'ha registrat i la transacc AccountParameter=Paràmetres del compte UsageParameter=Paràmetres d'ús InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s -PAYBOX_CGI_URL_V2=Url del mòdul CGI Paybox de pagament -CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament +PAYBOX_CGI_URL_V2=URL del mòdul CGI de Paybox per al pagament +CSSUrlForPaymentForm=URL del full d'estil CSS per al formulari de pagament NewPayboxPaymentReceived=S'ha rebut el nou pagament de Paybox NewPayboxPaymentFailed=S'ha provat el nou pagament de Paybox, però ha fallat PAYBOX_PAYONLINE_SENDEMAIL=Notificació per correu electrònic després de l'intent de pagament (èxit o fracàs) diff --git a/htdocs/langs/ca_ES/paypal.lang b/htdocs/langs/ca_ES/paypal.lang index 529fe9c0b28..8273b673a23 100644 --- a/htdocs/langs/ca_ES/paypal.lang +++ b/htdocs/langs/ca_ES/paypal.lang @@ -29,7 +29,7 @@ ErrorSeverityCode=Codi sever d'error OnlinePaymentSystem=Sistema de pagament en línia PaypalLiveEnabled=El mode "en viu" de PayPal habilitat (en cas contrari, el mode prova / sandbox) PaypalImportPayment=Importeu els pagaments de PayPal -PostActionAfterPayment=Accions posteriors desprès dels pagaments +PostActionAfterPayment=Accions després dels pagaments ARollbackWasPerformedOnPostActions=S'ha produït una tornada endarrere en totes les accions "post". Heu de completar les accions "post" manualment si són necessàries. ValidationOfPaymentFailed=La validació del pagament ha fallat CardOwner=Titular de targeta diff --git a/htdocs/langs/ca_ES/printing.lang b/htdocs/langs/ca_ES/printing.lang index 5691216f9a1..020acc6a74d 100644 --- a/htdocs/langs/ca_ES/printing.lang +++ b/htdocs/langs/ca_ES/printing.lang @@ -2,7 +2,7 @@ Module64000Name=Impressió amb un clic Module64000Desc=Activeu el sistema d'impressió d'un clic PrintingSetup=Configuració del sistema d'impressió d'un clic -PrintingDesc=Aquest mòdul afegeix un botó Imprimeix a diversos mòduls per permetre que els documents s'imprimissin directament a una impressora sense necessitat d'obrir el document a una altra aplicació. +PrintingDesc=Aquest mòdul afegeix un botó Imprimeix a diversos mòduls per a permetre que els documents s'imprimissin directament a una impressora sense necessitat d'obrir el document a una altra aplicació. MenuDirectPrinting=Treballs d'impressió amb un clic DirectPrint=Un clic Imprimeix PrintingDriverDesc=Configuració variables pel driver d'impressió @@ -49,6 +49,6 @@ DirectPrintingJobsDesc=En aquesta pàgina es mostren les tasques d’impressió GoogleAuthNotConfigured=Google OAuth no s'ha configurat. Activa el mòdul OAuth i estableix una identificació de Google / Secret. GoogleAuthConfigured=Les credencials OAuth de Google es troben en la configuració del mòdul OAuth. PrintingDriverDescprintgcp=Variables de configuració del driver d'impressió Google Cloud Print. -PrintingDriverDescprintipp=Variables de configuració per imprimir amb el controlador Cups. +PrintingDriverDescprintipp=Variables de configuració per al controlador d'impressió Cups. PrintTestDescprintgcp=Llista d'impressores per Google Cloud Print PrintTestDescprintipp=Llista d'impressores per a Cups. diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index f827970ff92..f599efead62 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Ref. producte -ProductLabel=Etiqueta producte -ProductLabelTranslated=Etiqueta de producte traduïda +ProductLabel=Nom del producte +ProductLabelTranslated=Nom de producte traduïda ProductDescription=Descripció del producte ProductDescriptionTranslated=Descripció de producte traduïda ProductNoteTranslated=Nota de producte traduïda @@ -19,7 +19,7 @@ NewProduct=Producte nou NewService=Servei nou ProductVatMassChange=Actualització d'Impostos Global ProductVatMassChangeDesc=Aquesta eina actualitza el tipus d'IVA establert a TOTS els productes i serveis! -MassBarcodeInit=Inicialització massiu de codis de barres +MassBarcodeInit=Inicialització massiva de codis de barres MassBarcodeInitDesc=Aquesta pàgina es pot utilitzar per a inicialitzar un codi de barres en els objectes que no tenen un codi de barres definit. Comproveu abans que la configuració del mòdul de codi de barres està completada. ProductAccountancyBuyCode=Codi comptable (compra) ProductAccountancyBuyIntraCode=Codi comptable (compra intracomunitària) @@ -73,18 +73,18 @@ SellingPrice=Preu de venda SellingPriceHT=Preu de venda (sense IVA) SellingPriceTTC=PVP amb IVA SellingMinPriceTTC=Preu mínim de venda (IVA inclòs) -CostPriceDescription=Aquest camp de preus (sense impostos) es pot utilitzar per capturar l'import mitjà que aquest producte costa a la vostra empresa. Pot ser qualsevol preu que calculeu vosaltres mateixos, per exemple, a partir del preu de compra mitjà més el cost mitjà de producció i distribució. +CostPriceDescription=Aquest camp de preu (sense impostos) es pot utilitzar per a capturar l'import mitjà que costa aquest producte a la vostra empresa. Pot ser qualsevol preu que calculeu vosaltres mateixos, per exemple, a partir del preu mitjà de compra més el cost mitjà de producció i distribució. CostPriceUsage=Aquest valor pot utilitzar-se per al càlcul de marges ManufacturingPrice=Preu de fabricació SoldAmount=Import venut PurchasedAmount=Import comprat NewPrice=Preu nou MinPrice=Mín. preu de venda -EditSellingPriceLabel=Edita l'etiqueta de preu de venda +EditSellingPriceLabel=Edita el nom del preu de venda CantBeLessThanMinPrice=El preu de venda no pot ser inferior al mínim permès per a aquest producte (%s sense IVA). Aquest missatge també pot aparèixer si escriviu un descompte massa gran. ContractStatusClosed=Tancat ErrorProductAlreadyExists=Un producte amb la referència %s ja existeix. -ErrorProductBadRefOrLabel=El valor de la referència o etiqueta és incorrecte +ErrorProductBadRefOrLabel=Valor incorrecte de referència o nom. ErrorProductClone=S'ha produït un error en intentar clonar el producte o servei. ErrorPriceCantBeLowerThanMinPrice=Error, el preu no pot ser inferior al preu mínim Suppliers=Proveïdors @@ -178,7 +178,7 @@ StateOrigin=Estat | Província d'origen Nature=Naturalesa del producte (en brut / fabricat) NatureOfProductShort=Naturalesa del producte NatureOfProductDesc=Matèria primera o producte fabricat -ShortLabel=Etiqueta curta +ShortLabel=Nom curt Unit=Unitat p=u. set=conjunt @@ -262,10 +262,10 @@ Quarter1=1º trimestre Quarter2=2º trimestre Quarter3=3º trimestre Quarter4=4º trimestre -BarCodePrintsheet=Imprimeix codi de barres +BarCodePrintsheet=Imprimeix codis de barres PageToGenerateBarCodeSheets=Amb aquesta eina, podeu imprimir fulls adhesius de codis de barres. Trieu el format de la vostra pàgina d'etiqueta, tipus de codi de barres i valor del codi de barres, i feu clic al botó %s . -NumberOfStickers=Nombre d'adhesius per imprimir a la pàgina -PrintsheetForOneBarCode=Imprimir varies etiquetes per codi de barres +NumberOfStickers=Nombre d'adhesius per a imprimir a la pàgina +PrintsheetForOneBarCode=Imprimeix diversos adhesius per a un codi de barres BuildPageToPrint=Generar pàgines a imprimir FillBarCodeTypeAndValueManually=Emplenar tipus i valor del codi de barres manualment FillBarCodeTypeAndValueFromProduct=Emplenar tipus i valor del codi de barres d'un producte @@ -284,7 +284,7 @@ PriceByCustomerLog=Registre de preus de clients anteriors MinimumPriceLimit=El preu mínim no pot ser inferior a %s MinimumRecommendedPrice=El preu mínim recomanat és: %s PriceExpressionEditor=Editor d'expressions de preus -PriceExpressionSelected=Expressió de preus seleccionat +PriceExpressionSelected=Expressió de preu seleccionada PriceExpressionEditorHelp1="price = 2 + 2" o "2 + 2" per a definir el preu. Utilitzeu ; per a separar expressions PriceExpressionEditorHelp2=Pots accedir als atributs complementaris amb variables com #extrafield_myextrafieldkey# i variables globals amb #global_mycode# PriceExpressionEditorHelp3=En productes/serveis i preus de proveïdor, hi ha disponibles les següents variables
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# @@ -307,10 +307,10 @@ GlobalVariables=Variables globals VariableToUpdate=Variable per actualitzar GlobalVariableUpdaters=Actualitzacions externes per a variables GlobalVariableUpdaterType0=Dades JSON -GlobalVariableUpdaterHelp0=Analitza dades JSON des de l'URL especificada, el valor especifica l'ubicació de valor rellevant +GlobalVariableUpdaterHelp0=Analitza les dades JSON de l'URL especificat, VALUE especifica la ubicació del valor rellevant, GlobalVariableUpdaterHelpFormat0=Format per a la sol·licitud {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=Dades WebService -GlobalVariableUpdaterHelp1=Analitza dades WebService de l'URL especificada, NS especifica el namespace, VALUE especifica l'ubicació del valor pertinent, DATA conter les dades a enviar i METHOD és el mètode WS a trucar +GlobalVariableUpdaterHelp1=Analitza les dades del servei web des de l'URL especificat, NS especifica l'espai de noms, VALUE especifica la ubicació del valor rellevant, DATA ha de contenir les dades a enviar i MÈTODE és el mètode WS que crida GlobalVariableUpdaterHelpFormat1=El format per a la sol·licitud és {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval d'actualització (minuts) LastUpdated=Última actualització @@ -324,7 +324,7 @@ DefaultUnitToShow=Unitat NbOfQtyInProposals=Qtat. en pressupostos ClinkOnALinkOfColumn=Fes clic en l'enllaç de columna %s per aconseguir una vista detallada... ProductsOrServicesTranslations=Traduccions de productes / serveis -TranslatedLabel=Etiqueta traduïda +TranslatedLabel=Nom traduït TranslatedDescription=Descripció traduïda TranslatedNote=Notes traduïdes ProductWeight=Pes per 1 producte @@ -345,7 +345,7 @@ PossibleValues=Valors possibles GoOnMenuToCreateVairants=Aneu al menú %s - %s per a preparar variants d’atributs (com ara colors, mida...) UseProductFournDesc=Afegiu una característica per definir la descripció del producte definida pels proveïdors (per a cada referència del proveïdor), a més de la descripció per als clients ProductSupplierDescription=Descripció del venedor del producte -UseProductSupplierPackaging=Utilitzeu els envasos als preus del proveïdor (calcular les quantitats segons els envasos fixats al preu del proveïdor quan afegiu / actualitzeu la línia dels documents del proveïdor) +UseProductSupplierPackaging=Utilitzeu l'embalatge per als preus arrodonits a múltiples per als preus de compra (torneu a calcular les quantitats segons els múltiples establerts als preus de compra quan afegiu/actualitzeu la línia en els documents d'un proveïdor) PackagingForThisProduct=Embalatge PackagingForThisProductDesc=Comprareu automàticament un múltiple d'aquesta quantitat. QtyRecalculatedWithPackaging=La quantitat de la línia es recalcula segons els envasos del proveïdor @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Acció només disponible sobre la variant de ProductsPricePerCustomer=Preus dels productes per clients ProductSupplierExtraFields=Atributs addicionals (preus de proveïdors) DeleteLinkedProduct=Suprimeix el producte fill enllaçat a la combinació -AmountUsedToUpdateWAP=Import a utilitzar per actualitzar el preu mitjà ponderat +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Preu mitjà ponderat PMPValueShort=PMP mandatoryperiod=Períodes obligatoris @@ -416,6 +416,7 @@ ProductsMergeSuccess=Els productes s'han fusionat ErrorsProductsMerge=Errors en la combinació de productes SwitchOnSaleStatus=Canvia l'estat de venda SwitchOnPurchaseStatus=Activa l'estat de compra +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Camps addicionals (moviment d'existències) InventoryExtraFields= Camps addicionals (inventari) ScanOrTypeOrCopyPasteYourBarCodes=Escaneja o escriviu o copieu/enganxeu els vostres codis de barres @@ -424,3 +425,7 @@ PMPExpected=PMP esperat ExpectedValuation=Valoració esperada PMPReal=PMP real RealValuation=Valoració real +ConfirmEditExtrafield = Seleccioneu l'extracamp que voleu modificar +ConfirmEditExtrafieldQuestion = Esteu segur que voleu modificar aquest camp extra? +ModifyValueExtrafields = Modificar el valor d'un camp extra +OrProductsWithCategories=O productes amb etiquetes diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index bfc56d0ed07..e0bd97da30b 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -2,11 +2,11 @@ RefProject=Ref. projecte ProjectRef=Ref. projecte ProjectId=ID projecte -ProjectLabel=Etiqueta de projecte +ProjectLabel=Nom del projecte ProjectsArea=Àrea de projectes ProjectStatus=Estat el projecte SharedProject=Projecte compartit -PrivateProject=Assigned contacts +PrivateProject=Contactes assignats ProjectsImContactFor=Projectes dels qui en soc explícitament un contacte AllAllowedProjects=Tots els projectes que puc llegir (meu + públic) AllProjects=Tots els projectes @@ -20,9 +20,10 @@ MyTasksDesc=Aquesta visualització es limita als projectes o tasques amb què us OnlyOpenedProject=Només visibles els projectes oberts (els projectes en estat d'esborrany o tancats no són visibles) ClosedProjectsAreHidden=Els projectes tancats no són visibles. TasksPublicDesc=Aquesta vista mostra tots els projectes i tasques en els que vostè té dret a tenir visibilitat. -TasksDesc=Aquesta vista presenta tots els projectes i tasques (els permisos d'usuari us concedeixen permís per veure-ho tot). +TasksDesc=Aquesta vista presenta tots els projectes i tasques (els permisos d'usuari us concedeixen permís per a veure-ho tot). AllTaskVisibleButEditIfYouAreAssigned=Totes les tasques per a projectes qualificats són visibles, però podeu ingressar només el temps per a la tasca assignada a l'usuari seleccionat. Assigneu la tasca si necessiteu introduir-hi el temps. OnlyYourTaskAreVisible=Només són visibles les tasques assignades. Si heu d'introduir el temps en una tasca i si la tasca no és visible aquí, heu d'assignar-la a vosaltres mateixos. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Tasques de projectes ProjectCategories=Etiquetes de projecte NewProject=Projecte nou @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Import d'oportunitats de projectes oberts p OpportunitiesStatusForProjects=Import d'oportunitats de projectes oberts per estat ShowProject=Veure projecte ShowTask=Veure tasca +SetThirdParty=Set third party SetProject=Indica el projecte +OutOfProject=Out of project NoProject=Cap projecte definit NbOfProjects=Nombre de projectes NbOfTasks=Nombre de tasques @@ -47,7 +50,7 @@ TimeSpentByUser=Temps dedicat per usuari TimesSpent=Temps dedicat TaskId=ID de tasca RefTask=Ref. Tasca -LabelTask=Etiqueta de tasques +LabelTask=Nom de la tasca TaskTimeSpent=Temps dedicat a les tasques TaskTimeUser=Usuari TaskTimeNote=Nota @@ -122,7 +125,8 @@ ValidateProject=Validar projecte ConfirmValidateProject=Vols validar aquest projecte? CloseAProject=Tancar projecte ConfirmCloseAProject=Vols tancar aquest projecte? -AlsoCloseAProject=Tanqueu el projecte també (manteniu-lo obert si encara heu de seguir les tasques de producció) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Manteniu-lo obert si encara heu de seguir les tasques de producció ReOpenAProject=Reobrir projecte ConfirmReOpenAProject=Vols reobrir aquest projecte? ProjectContact=Contactes del projecte @@ -165,7 +169,7 @@ OpportunityProbability=Probabilitat d'oportunitat OpportunityProbabilityShort=Probab. d'op. OpportunityAmount=Import de la oportunitat OpportunityAmountShort=Import de la oportunitat -OpportunityWeightedAmount=Import ponderat per l'oportunitat +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Op. quantitat ponderada OpportunityAmountAverageShort=Import mitjà de la oportunitat OpportunityAmountWeigthedShort=Import d'oportunitat ponderada @@ -221,7 +225,7 @@ ProjectsStatistics=Estadístiques de projectes o leads TasksStatistics=Estadístiques de tasques de projectes o leads TaskAssignedToEnterTime=Tasca assignada. És possible entrar els temps en aquesta tasca. IdTaskTime=Id de temps de tasca -YouCanCompleteRef=Si voleu completar la referència amb algun sufix, es recomana afegir un caràcter per separar-lo, de manera que la numeració automàtica encara funcionarà correctament per als propers projectes. Per exemple %s-MYSUFFIX +YouCanCompleteRef=Si voleu completar la referència amb algun sufix, es recomana afegir un caràcter - per a separar-lo, de manera que la numeració automàtica encara funcionarà correctament per als propers projectes. Per exemple, %s-MYSUFFIX OpenedProjectsByThirdparties=Projectes oberts per tercers OnlyOpportunitiesShort=Només oportunitats OpenedOpportunitiesShort=Oportunitats obertes @@ -238,7 +242,7 @@ OppStatusPENDING=Pendent OppStatusWON=Guanyat OppStatusLOST=Perdut Budget=Pressupost -AllowToLinkFromOtherCompany=Permet enllaçar projectes procedents d'altres companyies

    Valors possibles :
    - Mantenir en blanc: Pot enllaçar qualsevol projecte de la companyia (per defecte)
    - "tot" : Pot enllaçar qualsevol projecte, inclòs projectes d'altres companyies
    - Llista d'identificadors de tercers separats per comes : Pot enllaçar tots els projectes dels tercers definits dintre d'aquesta llista (Exemple : 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Darrers %s projectes LatestModifiedProjects=Darrers %s projectes modificats OtherFilteredTasks=Altres tasques filtrades @@ -249,8 +253,8 @@ ChooseANotYetAssignedTask=Trieu una tasca que encara no us ha estat assignada # Comments trans AllowCommentOnTask=Permet comentaris dels usuaris a les tasques AllowCommentOnProject=Permetre comentaris dels usuaris als projectes -DontHavePermissionForCloseProject=No teniu permisos per tancar el projecte %s -DontHaveTheValidateStatus=El projecte %s ha de ser obert per tancar +DontHavePermissionForCloseProject=No teniu permisos per a tancar el projecte %s +DontHaveTheValidateStatus=El projecte %s ha d'estar obert per a tancar-se RecordsClosed=%s projecte(s) tancat(s) SendProjectRef=Informació del projecte %s ModuleSalaryToDefineHourlyRateMustBeEnabled=El mòdul "Salaris" ha d'estar habilitat per a definir la tarifa horària dels empleats per tal de valorar el temps dedicat @@ -259,7 +263,7 @@ TimeSpentInvoiced=Temps de facturació facturat TimeSpentForIntervention=Temps dedicat TimeSpentForInvoice=Temps dedicat OneLinePerUser=Una línia per usuari -ServiceToUseOnLines=Servei d'ús a les línies +ServiceToUseOnLines=Servei per defecte per a utilitzar a les línies InvoiceGeneratedFromTimeSpent=La factura %s s'ha generat a partir del temps dedicat al projecte InterventionGeneratedFromTimeSpent=La intervenció %s s'ha generat a partir del temps dedicat al projecte ProjectBillTimeDescription=Comproveu si heu introduït el full de temps en les tasques del projecte I teniu previst generar factures des del full de temps per a facturar al client del projecte (no comproveu si voleu crear la factura que no es basa en els fulls de temps introduïts). Nota: Per a generar la factura, aneu a la pestanya "Temps introduït" del projecte i seleccioneu les línies que cal incloure. @@ -282,15 +286,16 @@ ProfitIsCalculatedWith=El benefici es calcula utilitzant AddPersonToTask=Afegeix també a les tasques UsageOrganizeEvent=Ús: organització d'esdeveniments PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classifica un projecte com a tancat quan s'hagin completat totes les seves tasques (progrés 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: els projectes existents amb totes les tasques amb un progrés del 100%% no es veuran afectats, i els haureu de tancar manualment. Així doncs, aquesta opció només afecta els projectes oberts. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Seleccioneu les línies de temps que no es facturen i, a continuació, feu una acció massiva "Genera factura" per facturar-les ProjectTasksWithoutTimeSpent=Projecte tasques sense temps dedicat FormForNewLeadDesc=Gràcies per omplir el següent formulari per contactar amb nosaltres. També podeu enviar-nos un correu electrònic directament a %s . ProjectsHavingThisContact=Projectes amb aquest contacte StartDateCannotBeAfterEndDate=La data de fi no pot ser anterior a la d'inici ErrorPROJECTLEADERRoleMissingRestoreIt=Falta la funció "PROJECTLEADER" o s'ha desactivat; restaura-la al diccionari de tipus de contacte -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +LeadPublicFormDesc=Aquí podeu habilitar una pàgina pública per permetre que els vostres clients potencials us facin un primer contacte des d'un formulari públic en línia +EnablePublicLeadForm=Habiliteu el formulari públic de contacte +NewLeadbyWeb=El teu missatge o sol·licitud s'ha enregistrat. Et respondrem o contactarem aviat. +NewLeadForm=Nou formulari de contacte +LeadFromPublicForm=Pista en línia des de forma pública +ExportAccountingReportButtonLabel=Obteniu informe diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang index 23d054a0aa2..caca918f9a6 100644 --- a/htdocs/langs/ca_ES/propal.lang +++ b/htdocs/langs/ca_ES/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Temps de lliurament SetAvailability=Indica el temps de lliurament AfterOrder=després de la comanda OtherProposals=Altres pressupostos + ##### Availability ##### AvailabilityTypeAV_NOW=Immediata AvailabilityTypeAV_1W=1 setmana AvailabilityTypeAV_2W=2 setmanes AvailabilityTypeAV_3W=3 setmanes AvailabilityTypeAV_1M=1 mes -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Agent comercial del seguiment del pressupost TypeContact_propal_external_BILLING=Contacte client de facturació pressupost TypeContact_propal_external_CUSTOMER=Contacte client seguiment pressupost TypeContact_propal_external_SHIPPING=Contacte del client pel lliurament + # Document models -DocModelAzurDescription=Un model complet de pressupost (antiga implementació de la plantilla Cyan) -DocModelCyanDescription=Un model de pressupost complet -DefaultModelPropalCreate=Model per defecte -DefaultModelPropalToBill=Model per defecte en tancar un pressupost (a facturar) -DefaultModelPropalClosed=Model per defecte en tancar un pressupost (no facturat) -ProposalCustomerSignature=Acceptació per escrit, segell de l'empresa, data i signatura -ProposalsStatisticsSuppliers=Estadístiques de propostes de proveïdors -CaseFollowedBy=Cas seguit per -SignedOnly=Només signat -NoSign=Conjunt no signat -NoSigned=conjunt no signat CantBeNoSign=no es pot configurar sense signar +CaseFollowedBy=Cas seguit per ConfirmMassNoSignature=Confirmació massiva no signada ConfirmMassNoSignatureQuestion=Esteu segur que voleu establir els registres seleccionats no signats? -IsNotADraft=no és un esborrany -PassedInOpenStatus=ha estat validat -Sign=Signe -Signed=signat -ConfirmMassValidation=Confirmació de validació massiva ConfirmMassSignature=Confirmació de signatura massiva -ConfirmMassValidationQuestion=Esteu segur que voleu validar els registres seleccionats? ConfirmMassSignatureQuestion=Esteu segur que voleu signar els registres seleccionats? -IdProposal=ID del pressupost +ConfirmMassValidation=Confirmació de validació massiva +ConfirmMassValidationQuestion=Esteu segur que voleu validar els registres seleccionats? +ConfirmRefusePropal=Esteu segur que voleu rebutjar aquesta proposta comercial? +ContractSigned=Contracte signat +DefaultModelPropalClosed=Model per defecte en tancar un pressupost (no facturat) +DefaultModelPropalCreate=Model per defecte +DefaultModelPropalToBill=Model per defecte en tancar un pressupost (a facturar) +DocModelAzurDescription=Un model complet de pressupost (antiga implementació de la plantilla Cyan) +DocModelCyanDescription=Un model de pressupost complet +FichinterSigned=Intervention signed IdProduct=ID de producte +IdProposal=ID del pressupost +IsNotADraft=no és un esborrany LineBuyPriceHT=Preu de compra sense impostos per línia -SignPropal=Acceptar la proposta +NoSign=Rebutja +NoSigned=conjunt no signat +PassedInOpenStatus=ha estat validat +PropalAlreadyRefused=Proposta ja rebutjada +PropalAlreadySigned=Proposta ja acceptada +PropalRefused=Proposta rebutjada +PropalSigned=S'accepta la proposta +ProposalCustomerSignature=Acceptació per escrit, segell de l'empresa, data i signatura +ProposalsStatisticsSuppliers=Estadístiques de propostes de proveïdors RefusePropal=Rebutja la proposta Sign=Signe -NoSign=Conjunt no signat -PropalAlreadySigned=Proposta ja acceptada -PropalAlreadyRefused=Proposta ja rebutjada -PropalSigned=S'accepta la proposta -PropalRefused=Proposta rebutjada -ConfirmRefusePropal=Esteu segur que voleu rebutjar aquesta proposta comercial? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Acceptar la proposta +Signed=signat +SignedOnly=Només signat diff --git a/htdocs/langs/ca_ES/receiptprinter.lang b/htdocs/langs/ca_ES/receiptprinter.lang index cee89d1b087..246b2285992 100644 --- a/htdocs/langs/ca_ES/receiptprinter.lang +++ b/htdocs/langs/ca_ES/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Prova enviada a la impressora %s ReceiptPrinter=Impressores de tiquets ReceiptPrinterDesc=Configuració d'impressores de tiquets ReceiptPrinterTemplateDesc=Configuració de plantilles -ReceiptPrinterTypeDesc=Descripció del tipus d'impressora de tiquets +ReceiptPrinterTypeDesc=Exemple de valors possibles per al camp "Paràmetres" segons el tipus de controlador ReceiptPrinterProfileDesc=Descripció del perfil de la impressora de tiquets ListPrinters=Llista d'impressores SetupReceiptTemplate=Configuració de plantilla @@ -35,9 +35,9 @@ DOL_LINE_FEED=Salta la línia DOL_ALIGN_LEFT=Alinea el text a l'esquerra DOL_ALIGN_CENTER=Centra el text DOL_ALIGN_RIGHT=Alinea el text a la dreta -DOL_USE_FONT_A=Utilitza la font A de la impressora -DOL_USE_FONT_B=Utilitza la font B de la impressora -DOL_USE_FONT_C=Utilitza la font C de la impressora +DOL_USE_FONT_A=Utilitzeu el tipus de lletra A de la impressora +DOL_USE_FONT_B=Utilitzeu el tipus de lletra B de la impressora +DOL_USE_FONT_C=Utilitzeu el tipus de lletra C de la impressora DOL_PRINT_BARCODE=Imprimeix codi de barres DOL_PRINT_BARCODE_CUSTOMER_ID=Imprimeix codi de barres del ID de client DOL_CUT_PAPER_FULL=Talla el tiquet completament @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Alçada i amplada per defecte DOL_UNDERLINE=Activa subratllat DOL_UNDERLINE_DISABLED=Desactiva subratllat DOL_BEEP=So beep +DOL_BEEP_ALTERNATIVE=So de bip (mode alternatiu) +DOL_PRINT_CURR_DATE=Imprimeix la data/hora actuals DOL_PRINT_TEXT=Imprimeix text DateInvoiceWithTime=Data i hora de la factura YearInvoice=Any de factura @@ -72,7 +74,7 @@ DOL_VALUE_CUSTOMER_MAIL=Correu del client DOL_VALUE_CUSTOMER_PHONE=Telèfon del client DOL_VALUE_CUSTOMER_MOBILE=Mòbil del client DOL_VALUE_CUSTOMER_SKYPE=Skype del client -DOL_VALUE_CUSTOMER_TAX_NUMBER=CIF/NIF del client +DOL_VALUE_CUSTOMER_TAX_NUMBER=Número fiscal del client DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Saldo del compte del client DOL_VALUE_MYSOC_NAME=El nom de l'empresa VendorLastname=Cognom del venedor diff --git a/htdocs/langs/ca_ES/recruitment.lang b/htdocs/langs/ca_ES/recruitment.lang index 6482ee9a72d..b9a7d395496 100644 --- a/htdocs/langs/ca_ES/recruitment.lang +++ b/htdocs/langs/ca_ES/recruitment.lang @@ -39,7 +39,7 @@ About = Quant a RecruitmentAbout = Quant a la contractació RecruitmentAboutPage = Pàgina quant a la contractació NbOfEmployeesExpected=Nombre previst d'empleats -JobLabel=Descripció del lloc de treball +JobLabel=Nom del lloc de treball WorkPlace=Lloc de treball DateExpected=Data prevista FutureManager=Futur gerent @@ -57,15 +57,16 @@ EmailRecruiter=Correu electrònic del reclutador ToUseAGenericEmail=Per a utilitzar un correu electrònic genèric. Si no està definit, s’utilitzarà el correu electrònic del responsable de la contractació NewCandidature=Candidatura nova ListOfCandidatures=Llista de candidatures -RequestedRemuneration=Retribució sol·licitada -ProposedRemuneration=Retribució proposada +Remuneration=Sou +RequestedRemuneration=Salari sol·licitat +ProposedRemuneration=Salari proposat ContractProposed=Contracte proposat ContractSigned=Contracte signat ContractRefused=Contracte denegat RecruitmentCandidature=Candidatura JobPositions=Llocs de treball RecruitmentCandidatures=Candidatures -InterviewToDo=Entrevista per a fer +InterviewToDo=Contactes a seguir AnswerCandidature=Resposta de la candidatura YourCandidature=La teva candidatura YourCandidatureAnswerMessage=Gràcies per la teva candidatura.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=L’oferta de feina està tancada. ExtrafieldsJobPosition=Atributs complementaris (llocs de treball) ExtrafieldsApplication=Atributs complementaris (sol·licituds de feina) MakeOffer=Feu una oferta +WeAreRecruiting=Estem reclutant. Aquesta és una llista de places obertes per cobrir... +NoPositionOpen=No hi ha posicions obertes de moment diff --git a/htdocs/langs/ca_ES/salaries.lang b/htdocs/langs/ca_ES/salaries.lang index e21803b9e15..ff6d4439d9b 100644 --- a/htdocs/langs/ca_ES/salaries.lang +++ b/htdocs/langs/ca_ES/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilitzat per usuaris tercers -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=El compte comptable dedicat definit a la fitxa d'usuari només s’utilitzarà per a la comptabilitat auxiliar. Aquest s'utilitzarà per al llibre major i com a valor per defecte de la comptabilitat auxiliar si no es defineix un compte comptable d'usuari dedicat. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable per defecte per als pagaments salarials CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=De manera predeterminada, deixeu buida l'opció "Crear automàticament un pagament total" quan creeu un sou Salary=Sou diff --git a/htdocs/langs/ca_ES/sms.lang b/htdocs/langs/ca_ES/sms.lang index 7362e5a94c9..954781b74bc 100644 --- a/htdocs/langs/ca_ES/sms.lang +++ b/htdocs/langs/ca_ES/sms.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - sms Sms=SMS -SmsSetup=Configuració de SMS -SmsDesc=Aquesta pàgina us permet definir opcions globals sobre les funcions SMS +SmsSetup=Configuració d'SMS +SmsDesc=Aquesta pàgina us permet definir opcions globals sobre les funcions d'SMS SmsCard=Fitxa SMS -AllSms=Totes les campanyes de SMS +AllSms=Totes les campanyes d'SMS SmsTargets=Destinataris SmsRecipients=Destinataris SmsRecipient=Destinatari @@ -12,18 +12,18 @@ SmsFrom=Emissor SmsTo=Destinatari(s) SmsTopic=Assumpte del SMS SmsText=Missatge -SmsMessage=Missatge del SMS +SmsMessage=Missatge SMS ShowSms=Mostra SMS -ListOfSms=Llista de campanyes de SMS -NewSms=Nova campanya de SMS +ListOfSms=Llista de campanyes d'SMS +NewSms=Campanya d'SMS nova EditSms=Edita SMS -ResetSms=Nou enviament -DeleteSms=Suprimeix la campanya de SMS -DeleteASms=Suprimeix una campanya de SMS +ResetSms=Enviament nou +DeleteSms=Suprimeix la campanya d'SMS +DeleteASms=Elimina una campanya d'SMS PreviewSms=Previuw SMS PrepareSms=Prepara SMS CreateSms=Crea SMS -SmsResult=Resultat de l'enviament de SMS +SmsResult=Resultat de l'enviament d'SMS TestSms=Proveu SMS ValidSms=Valida SMS ApproveSms=Aprova el SMS @@ -46,6 +46,6 @@ SendSms=Envia SMS SmsInfoCharRemain=Nombre de caràcters restants SmsInfoNumero= (format internacional, és a dir: +33899701761) DelayBeforeSending=Retard abans d'enviar (en minuts) -SmsNoPossibleSenderFound=No hi ha qui envia. Comprova la configuració del proveïdor de SMS. +SmsNoPossibleSenderFound=No hi ha remitent disponible. Comproveu la configuració del vostre proveïdor d'SMS. SmsNoPossibleRecipientFound=No hi ha destinataris. Comproveu la configuració del seu proveïdor d'SMS. DisableStopIfSupported=Desactiveu el missatge STOP (si és compatible) diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index 0e591c8dd1f..abdf7041022 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Data en el futur StocksByLotSerial=Estocs per lot/sèrie LotSerial=Lots/Sèries LotSerialList=Llista de lots/sèries +SubjectToLotSerialOnly=Productes subjectes només a lot/sèrie Movements=Moviments ErrorWarehouseRefRequired=El nom de referència del magatzem és obligatori ListOfWarehouses=Llistat de magatzems @@ -34,7 +35,7 @@ StockMovementForId=ID de moviment %d ListMouvementStockProject=Llista de moviments d'estoc associats al projecte StocksArea=Àrea de magatzems AllWarehouses=Tots els magatzems -IncludeEmptyDesiredStock=Inclou també estoc negatives amb estoc desitjat no definit +IncludeEmptyDesiredStock=Inclou també estoc negatiu amb estoc desitjat sense definir IncludeAlsoDraftOrders=Inclou també projectes d'ordre Location=Lloc LocationSummary=Nom curt de la ubicació @@ -48,7 +49,7 @@ StockCorrection=Regularització d'estoc CorrectStock=Regularització d'estoc StockTransfer=Transferència d’estoc TransferStock=Transferència d'estoc -MassStockTransferShort=Transferència d'estoc massiu +MassStockTransferShort=Bulk stock change StockMovement=Moviment d'estoc StockMovements=Moviments d'estoc NumberOfUnit=Nombre d'unitats @@ -74,7 +75,7 @@ QtyDispatchedShort=Quant. rebuda QtyToDispatchShort=Quant. a enviar OrderDispatch=Articles rebuts RuleForStockManagementDecrease=Tria la regla per reduir l'estoc automàtic (la disminució manual sempre és possible, fins i tot si s'activa una regla de disminució automàtica) -RuleForStockManagementIncrease=Tria la regla per augmentar l'estoc automàtic (l'augment manual sempre és possible, fins i tot si s'activa una regla d'augment automàtic) +RuleForStockManagementIncrease=Trieu la regla per a l'augment automàtic d'estocs (l'augment manual sempre és possible, fins i tot si una regla d'augment automàtic està activada) DeStockOnBill=Disminueix els estocs real en la validació de la factura/abonament de client DeStockOnValidateOrder=Disminueix els estocs reals en la validació de comandes de client DeStockOnShipment=Disminueix l'estoc real al validar l'enviament @@ -86,7 +87,7 @@ StockOnReception=Augmenteu les existències reals a la validació de la recepci StockOnReceptionOnClosing=Augmenteu les existències reals quan la recepció està tancada OrderStatusNotReadyToDispatch=La comanda encara no està o no té un estat que permeti un desglossament d'estoc. StockDiffPhysicTeoric=Motiu de la diferència entre l'estoc físic i virtual -NoPredefinedProductToDispatch=No hi ha productes predefinits en aquest objecte. Per tant no es pot realitzar un desglossament d'estoc. +NoPredefinedProductToDispatch=No hi ha productes predefinits per a aquest objecte. Per tant, no cal enviar en estoc. DispatchVerb=Desglossar StockLimitShort=Límit per l'alerta StockLimit=Estoc límit per les alertes @@ -146,15 +147,16 @@ Replenishments=reaprovisionament NbOfProductBeforePeriod=Quantitat del producte %s en estoc abans del període seleccionat (< %s) NbOfProductAfterPeriod=Quantitat de producte %s en estoc després del període seleccionat (> %s) MassMovement=Moviments en massa -SelectProductInAndOutWareHouse=Seleccioneu un magatzem d'origen i un magatzem de destinació, un producte i una quantitat i feu clic a "%s". Un cop fet això per a tots els moviments necessaris, feu clic a "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Registre de transferència +RecordMovements=Record stock movements ReceivingForSameOrder=Recepcions d'aquesta comanda StockMovementRecorded=Moviments d'estoc registrat RuleForStockAvailability=Regles de requeriment d'estoc -StockMustBeEnoughForInvoice=El nivell d'estoc ha de ser suficient per afegir el producte/servei a la factura (la comprovació es fa sobre l'estoc real actual quan s'afegeix una línia a la factura sigui quina sigui la regla del canvi automàtic d'estoc) -StockMustBeEnoughForOrder=El nivell d'estoc ha de ser suficient per afegir el producte/servei a la comanda (la comprovació es fa sobre l'estoc real actual quan s'afegeix una línia a la comanda sigui quina sigui la regla del canvi automàtic d'estoc) -StockMustBeEnoughForShipment= El nivell d'estoc ha de ser suficient per afegir el producte/servei a l'enviament (la comprovació es fa sobre l'estoc real actual quan s'afegeix una línia a l'enviament sigui quina sigui la regla del canvi automàtic d'estoc) -MovementLabel=Etiqueta del moviment +StockMustBeEnoughForInvoice=El nivell d'estoc ha de ser suficient per a afegir el producte/servei a la factura (la comprovació es fa sobre l'estoc real actual quan s'afegeix una línia a la factura sigui quina sigui la regla del canvi automàtic d'estoc) +StockMustBeEnoughForOrder=El nivell d'estoc ha de ser suficient per a afegir el producte/servei a la comanda (la comprovació es fa sobre l'estoc real actual quan s'afegeix una línia a la comanda sigui quina sigui la regla del canvi automàtic d'estoc) +StockMustBeEnoughForShipment= El nivell d'estoc ha de ser suficient per a afegir el producte/servei a l'enviament (la comprovació es fa sobre l'estoc real actual quan s'afegeix una línia a l'enviament sigui quina sigui la regla del canvi automàtic d'estoc) +MovementLabel=Nom del moviment TypeMovement=Direcció de moviment DateMovement=Data de moviment InventoryCode=Moviments o codi d'inventari @@ -171,12 +173,12 @@ ThisSerialAlreadyExistWithDifferentDate=Aquest número de lot/sèrie ( % OpenAnyMovement=Obert (tot moviment) OpenInternal=Obert (només moviment intern) UseDispatchStatus=Utilitzeu un estat d'enviament (aprovació / rebuig) per a les línies de productes en la recepció de l'ordre de compra -OptionMULTIPRICESIsOn=L'opció "diversos preus per segment" està actiu. Això significa que un producte té diversos preus de venda, per tant el preu de venda no pot ser calculat +OptionMULTIPRICESIsOn=L'opció "diversos preus per segment" està activada. Significa que un producte té diversos preus de venda, de manera que no es pot calcular el valor de venda ProductStockWarehouseCreated=Estoc límit per llançar una alerta i estoc òptim desitjat creats correctament ProductStockWarehouseUpdated=Estoc límit per llançar una alerta i estoc òptim desitjat actualitzats correctament ProductStockWarehouseDeleted=S'ha eliminat correctament el límit d'estoc per alerta i l'estoc òptim desitjat. AddNewProductStockWarehouse=Posar nou estoc límit per alertar i nou estoc òptim desitjat -AddStockLocationLine=Decrementa quantitat i a continuació fes clic per afegir un altre magatzem per aquest producte +AddStockLocationLine=Disminuïu la quantitat i feu clic per a dividir la línia InventoryDate=Data d'inventari Inventories=Inventaris NewInventory=Inventari nou @@ -234,7 +236,7 @@ StockIncrease=Augment d'estoc StockDecrease=Disminució d'estoc InventoryForASpecificWarehouse=Inventari d’un magatzem específic InventoryForASpecificProduct=Inventari d’un producte específic -StockIsRequiredToChooseWhichLotToUse=Es requereix estoc per a triar quin lot utilitzar +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Obligar a AlwaysShowFullArbo=Mostra l'arbre complet de magatzems a la finestra emergent dels enllaços de magatzem (Advertència: pot disminuir el rendiment de manera espectacular) StockAtDatePastDesc=Aquí podeu veure l'estoc (estoc real) en una data determinada del passat @@ -246,7 +248,7 @@ UpdateByScaningProductBarcode=Actualització per escaneig (codi de barres de pro UpdateByScaningLot=Actualització per escaneig (codi de barres lot|sèrie) DisableStockChangeOfSubProduct=Desactiva el canvi d'estoc de tots els subproductes d'aquest kit durant aquest moviment. ImportFromCSV=Importa la llista de moviments CSV -ChooseFileToImport=Pengeu un fitxer i feu clic a la icona %s per seleccionar el fitxer com a fitxer d'importació d'origen ... +ChooseFileToImport=Carregueu el fitxer i feu clic a la icona %s per a seleccionar el fitxer com a fitxer d'importació d'origen... SelectAStockMovementFileToImport=seleccioneu un fitxer de moviment de valors per importar InfoTemplateImport=El fitxer carregat ha de tenir aquest format (* són camps obligatoris):
    Magatzem font * | Magatzem objectiu * | Producte * | Quantitat * | Número de lot / sèrie
    El separador de caràcters CSV ha de ser " %s " LabelOfInventoryMovemement=Inventari %s @@ -254,7 +256,7 @@ ReOpen=Reobrir ConfirmFinish=Confirmeu el tancament de l'inventari? Això generarà tots els moviments d'estoc per a actualitzar el vostre estoc a la quantitat real que heu introduït a l'inventari. ObjectNotFound=no s'ha trobat %s MakeMovementsAndClose=Generar moviments i tancar -AutofillWithExpected=Substituïu la quantitat real per la quantitat esperada +AutofillWithExpected=Ompliu la quantitat real amb la quantitat esperada ShowAllBatchByDefault=Per defecte, mostreu els detalls del lot a la pestanya "existències" del producte CollapseBatchDetailHelp=Podeu configurar la visualització predeterminada del detall del lot a la configuració del mòdul d'existències ErrorWrongBarcodemode=Mode de codi de barres desconegut @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=El producte amb codi de barres no existeix WarehouseId=Identificador de magatzem WarehouseRef=Magatzem Ref SaveQtyFirst=Deseu primer les quantitats reals inventariades, abans de demanar la creació del moviment d'existències. +ToStart=Comença InventoryStartedShort=Començada ErrorOnElementsInventory=Operació cancel·lada pel motiu següent: ErrorCantFindCodeInInventory=No es pot trobar el codi següent a l'inventari QtyWasAddedToTheScannedBarcode=Èxit!! La quantitat s'ha afegit a tots els codis de barres sol·licitats. Podeu tancar l'eina Escàner. StockChangeDisabled=Canvi d'estoc desactivat NoWarehouseDefinedForTerminal=No s'ha definit cap magatzem per a la terminal +ClearQtys=Netegeu totes les quantitats +ModuleStockTransferName=Transferència d'estocs avançada +ModuleStockTransferDesc=Gestió avançada de Transferència d'Estocs, amb generació de full de transferència +StockTransferNew=Nova transferència d'accions +StockTransferList=Llista de transferències d'accions +ConfirmValidateStockTransfer=Esteu segur que voleu validar aquesta transferència d'estocs amb la referència %s ? +ConfirmDestock=Disminució d'existències amb transferència %s +ConfirmDestockCancel=Cancel·la la disminució d'existències amb transferència %s +DestockAllProduct=Disminució d'existències +DestockAllProductCancel=Cancel·lar la disminució d'existències +ConfirmAddStock=Augmenta les existències amb transferència %s +ConfirmAddStockCancel=Cancel·lar l'augment d'existències amb transferència %s +AddStockAllProduct=Augment d'existències +AddStockAllProductCancel=Cancel·lar l'augment d'existències +DatePrevueDepart=Data prevista de sortida +DateReelleDepart=Data real de sortida +DatePrevueArrivee=Data prevista d'arribada +DateReelleArrivee=Data real d'arribada +HelpWarehouseStockTransferSource=Si s'estableix aquest magatzem, només ell mateix i els seus fills estaran disponibles com a magatzem d'origen +HelpWarehouseStockTransferDestination=Si s'estableix aquest magatzem, només ell mateix i els seus fills estaran disponibles com a magatzem de destinació +LeadTimeForWarning=Temps d'execució abans de l'alerta (en dies) +TypeContact_stocktransfer_internal_STFROM=Remitent de la transferència d'accions +TypeContact_stocktransfer_internal_STDEST=Destinatari de la transferència d'accions +TypeContact_stocktransfer_internal_STRESP=Responsable de la transferència d'estocs +StockTransferSheet=Full de transferència d'existències +StockTransferSheetProforma=Full de transferència d'accions proforma +StockTransferDecrementation=Disminuir els magatzems d'origen +StockTransferIncrementation=Augmentar els magatzems de destinació +StockTransferDecrementationCancel=Cancel·lar la disminució dels magatzems d'origen +StockTransferIncrementationCancel=Anul·lar l'augment de magatzems de destinació +StockStransferDecremented=Els magatzems d'origen van disminuir +StockStransferDecrementedCancel=Disminució dels magatzems d'origen cancel·lada +StockStransferIncremented=Tancat - Accions transferides +StockStransferIncrementedShort=Accions transferides +StockStransferIncrementedShortCancel=Augment de magatzems de destinació cancel·lat +StockTransferNoBatchForProduct=El producte %s no fa servir el lot, esborra el lot en línia i torna-ho a provar +StockTransferSetup = Configuració del mòdul de transferència d'estocs +Settings=Configuració +StockTransferSetupPage = Pàgina de configuració del mòdul de transferència d'accions +StockTransferRightRead=Llegeix les transferències d'accions +StockTransferRightCreateUpdate=Crear/Actualitzar transferències d'accions +StockTransferRightDelete=Eliminar transferències d'accions +BatchNotFound=No s'ha trobat lot / sèrie per a aquest producte diff --git a/htdocs/langs/ca_ES/stripe.lang b/htdocs/langs/ca_ES/stripe.lang index 7d96342c51e..ff4fd2e511b 100644 --- a/htdocs/langs/ca_ES/stripe.lang +++ b/htdocs/langs/ca_ES/stripe.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - stripe StripeSetup=Configuració del mòdul Stripe -StripeDesc=Oferiu als vostres clients una pàgina de pagament en línia per als pagaments amb targetes de crèdit/dèbit mitjançant Stripe . Això es pot utilitzar per permetre als vostres clients fer pagaments ad hoc o per a pagaments relacionats amb un objecte Dolibarr concret (factura, comanda, ...) +StripeDesc=Oferiu als vostres clients una pàgina de pagament en línia per als pagaments amb targetes de crèdit/dèbit mitjançant Stripe . Això es pot utilitzar per a permetre als vostres clients fer pagaments ad hoc o per a pagaments relacionats amb un objecte Dolibarr concret (factura, comanda, ...) StripeOrCBDoPayment=Pagar amb targeta de crèdit o Stripe FollowingUrlAreAvailableToMakePayments=Les següents URL estan disponibles per a permetre a un client fer un cobrament en objectes de Dolibarr PaymentForm=Formulari de pagament @@ -23,7 +23,7 @@ ToOfferALinkForOnlinePaymentOnFreeAmount=URL per oferir una pàgina de pagament ToOfferALinkForOnlinePaymentOnMemberSubscription=URL per oferir una pàgina de pagament en línia %s per a una subscripció per membres ToOfferALinkForOnlinePaymentOnDonation=URL per oferir una pàgina de pagament en línia %s per al pagament d’una donació YouCanAddTagOnUrl=També podeu afegir el paràmetre URL &tag=valor a qualsevol d’aquests URL (obligatori només per al pagament que no estigui vinculat a un objecte) per a afegir la vostra pròpia etiqueta de comentari de pagament.
    Per a l'URL de pagaments sense objecte existent, també podeu afegir el paràmetre &noidempotency=1 , de manera que es pot utilitzar el mateix enllaç amb la mateixa etiqueta diverses vegades (alguns modes de pagament poden limitar el pagament a 1 per a cada enllaç diferent sense aquest paràmetre) -SetupStripeToHavePaymentCreatedAutomatically=Configureu el vostre Stripe amb l'URL %s per fer que el pagament es creï automàticament quan es valide mitjançant Stripe. +SetupStripeToHavePaymentCreatedAutomatically=Configureu el vostre Stripe amb l'URL %s perquè el pagament es creï automàticament quan Stripe el validi. AccountParameter=Paràmetres del compte UsageParameter=Paràmetres d'ús InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s @@ -67,5 +67,6 @@ StripePayoutList=Llista de pagaments de Stripe ToOfferALinkForTestWebhook=Enllaç a la configuració de Stripe WebHook per trucar a l’IPN (mode de prova) ToOfferALinkForLiveWebhook=Enllaç a la configuració de Stripe WebHook per trucar a l’IPN (mode en directe) PaymentWillBeRecordedForNextPeriod=El pagament es registrarà per al període següent. -ClickHereToTryAgain=Feu clic aquí per tornar-ho a provar ... +ClickHereToTryAgain= Feu clic aquí per a tornar-ho a provar... CreationOfPaymentModeMustBeDoneFromStripeInterface=A causa de les fortes regles d'autenticació de clients, la creació d'una fitxa s'ha de fer des del panell de Stripe. Podeu fer clic aquí per a activar el registre de clients de Stripe: %s +TERMINAL_LOCATION=Ubicació (adreça) per a terminals diff --git a/htdocs/langs/ca_ES/suppliers.lang b/htdocs/langs/ca_ES/suppliers.lang index 4eb4f0ea0f5..f92bd144ae3 100644 --- a/htdocs/langs/ca_ES/suppliers.lang +++ b/htdocs/langs/ca_ES/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Nom del comprador AllProductServicePrices=Tots els preus de producte / servei AllProductReferencesOfSupplier=Totes les referències del proveïdor BuyingPriceNumShort=Preus del proveïdor +RepeatableSupplierInvoice=Plantilla de factura del proveïdor +RepeatableSupplierInvoices=Plantilla de factures de proveïdors +RepeatableSupplierInvoicesList=Plantilla de factures de proveïdors +RecurringSupplierInvoices=Factures de proveïdors recurrents +ToCreateAPredefinedSupplierInvoice=Per crear una plantilla de factura de proveïdor, heu de crear una factura estàndard, després, sense validar-la, feu clic al botó "%s". +GeneratedFromSupplierTemplate=Generat a partir de la plantilla de factura del proveïdor %s +SupplierInvoiceGeneratedFromTemplate=Factura del proveïdor %s Generada a partir de la plantilla de factura del proveïdor %s diff --git a/htdocs/langs/ca_ES/ticket.lang b/htdocs/langs/ca_ES/ticket.lang index b0782021e45..6d113e189d6 100644 --- a/htdocs/langs/ca_ES/ticket.lang +++ b/htdocs/langs/ca_ES/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Esborrar tiquets Permission56004=Gestiona els tiquets Permission56005=Veure els tiquets de tots els tercers (no efectiu per als usuaris externs, sempre estarà limitat al tercer del qual depenen) +Tickets=Tiquets TicketDictType=Tiquet - Tipus TicketDictCategory=Tiquet - Grups TicketDictSeverity=Tiquet - Severitats @@ -90,17 +91,19 @@ TicketPublicAccess=Una interfície pública que no necessita identificació est TicketSetupDictionaries=El tipus de tiquet, gravetat i codis analítics es poden configurar des dels diccionaris TicketParamModule=Configuració del mòdul de variables TicketParamMail=Configuració de correu electrònic -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=Correu electrònic del remitent per a la notificació de les respostes +TicketEmailNotificationFromHelp=Correu electrònic del remitent que s'utilitzarà per enviar el correu electrònic de notificació quan es proporcioni una resposta dins del backoffice. Per exemple noreply@example.com +TicketEmailNotificationTo=Notifiqueu la creació del bitllet a aquesta adreça de correu electrònic +TicketEmailNotificationToHelp=Si està present, aquesta adreça de correu electrònic serà notificada de la creació d'un bitllet TicketNewEmailBodyLabel=Missatge de text enviat després de crear un bitllet TicketNewEmailBodyHelp=El text especificat aquí s'inserirà en el correu electrònic confirmant la creació d'un nou tiquet des de la interfície pública. La informació sobre la consulta del tiquet s'afegeix automàticament. TicketParamPublicInterface=Configuració de la interfície pública TicketsEmailMustExist=Cal crear una adreça de correu electrònic existent per a crear un tiquet TicketsEmailMustExistHelp=A la interfície pública, l'adreça de correu electrònic ja s'hauria d'emplenar a la base de dades per a crear un nou tiquet. +TicketCreateThirdPartyWithContactIfNotExist=Demaneu nom i nom de l'empresa per correus electrònics desconeguts. +TicketCreateThirdPartyWithContactIfNotExistHelp=Comproveu si existeix un tercer o un contacte per al correu electrònic introduït. Si no, demaneu un nom i un nom d'empresa per a crear un tercer amb contacte. PublicInterface=Interfície pública -TicketUrlPublicInterfaceLabelAdmin=URL alternativa per a la interfície pública +TicketUrlPublicInterfaceLabelAdmin=URL alternatiu per a la interfície pública TicketUrlPublicInterfaceHelpAdmin=És possible definir un àlies al servidor web i, per tant, posar a disposició la interfície pública amb una altra URL (el servidor ha d'actuar com a proxy en aquest nou URL) TicketPublicInterfaceTextHomeLabelAdmin=Text de benvinguda de la interfície pública TicketPublicInterfaceTextHome=Podeu crear un tiquet d'assistència o visualitzar existents a partir del seu identificador de traça del tiquet. @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Quan tanqueu un bitllet, se us proposarà enviar un m TicketWrongContact=El contacte sempre que no formi part dels contactes actuals de les entrades. Correu electrònic no enviat. TicketChooseProductCategory=Categoria de producte per al suport de bitllets TicketChooseProductCategoryHelp=Seleccioneu la categoria de producte de suport de bitllets. S'utilitzarà per enllaçar automàticament un contracte amb un bitllet. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=El tiquet s'ha assignat ara TicketChangeType=Tipus de canvi TicketChangeCategory=Canvia el codi analític TicketChangeSeverity=Canviar el nivell de gravetat -TicketAddMessage=Afegiu un missatge -AddMessage=Afegiu un missatge +TicketAddMessage=Afegeix un missatge privat MessageSuccessfullyAdded=Tiquet afegit TicketMessageSuccessfullyAdded=El missatge s'ha afegit correctament TicketMessagesList=Llista de missatges @@ -202,8 +206,8 @@ TicketSeverity=Gravetat ShowTicket=Consultar tiquet RelatedTickets=Tiquets relacionats TicketAddIntervention=Crea intervenció -CloseTicket=Tancar | Resoldre el bitllet -AbandonTicket=Abandonar el bitllet +CloseTicket=Tanca|Resol +AbandonTicket=Abandonar CloseATicket=Tancar | Resoldre un bitllet ConfirmCloseAticket=Confirma el tancament del tiquet ConfirmAbandonTicket=Confirmeu el tancament del bitllet a l'estat "Abandonat" @@ -216,19 +220,18 @@ TicketUpdated=Tiquet actualitzat SendMessageByEmail=Envia un missatge per correu electrònic TicketNewMessage=Missatge nou ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatari està buit. Email no enviat -TicketGoIntoContactTab=Aneu a la pestanya "Contactes" per seleccionar-los -TicketMessageMailIntro=Introducció +TicketGoIntoContactTab=Aneu a la pestanya "Contactes" per a seleccionar-los +TicketMessageMailIntro=Capçalera del missatge TicketMessageMailIntroHelp=Aquest text només s'afegeix al principi del correu electrònic i no es desarà. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Signatura -TicketMessageMailSignatureHelp=Aquest text només s'afegeix al final del correu electrònic i no es desarà. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatura del correu electrònic de resposta -TicketMessageMailSignatureHelpAdmin=Aquest text s'inserirà després del missatge de resposta. +TicketMessageMailIntroText=Hola,
    S'ha afegit una resposta nova a un bitllet que seguiu. Aquest és el missatge:
    +TicketMessageMailIntroHelpAdmin=Aquest text s'inserirà abans de la resposta en respondre a un bitllet de Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Aquest text s'inserirà després del missatge de resposta. TicketMessageHelp=Només aquest text es guardarà a la llista de missatges de la targeta de tiquet. TicketMessageSubstitutionReplacedByGenericValues=Les variables de substitució es reemplacen per valors genèrics. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Temps transcorregut des de TicketTimeToRead=Temps transcorregut abans de llegir TicketTimeElapsedBeforeSince=Temps transcorregut abans / després @@ -239,8 +242,9 @@ TicketMessageMailIntroAutoNewPublicMessage=S'ha publicat un nou missatge al tiqu TicketAssignedToYou=Tiquet assignat TicketAssignedEmailBody=Se us ha assignat el tiquet # %s per %s MarkMessageAsPrivate=Marcar el missatge com privat +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Aquest missatge no es mostrarà als usuaris externs -TicketEmailOriginIssuer=Emissor a l'origen dels tiquets +TicketEmailOriginIssuer=Emissor en l'origen dels tiquets InitialMessage=Missatge inicial LinkToAContract=Enllaç a un contracte TicketPleaseSelectAContract=Seleccionar un contracte @@ -289,12 +293,12 @@ TicketNewEmailBody=Aquest és un correu electrònic automàtic per confirmar que TicketNewEmailBodyCustomer=Aquest és un correu electrònic automàtic per confirmar que un nou tiquet acaba de ser creat al vostre compte. TicketNewEmailBodyInfosTicket=Informació per al seguiment del tiquet TicketNewEmailBodyInfosTrackId=Número de seguiment de tiquet: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=Podeu consultar el progrés de l'entrada fent clic al següent enllaç TicketNewEmailBodyInfosTrackUrlCustomer=Podeu veure el progrés del tiquet a la interfície específica fent clic al següent enllaç TicketCloseEmailBodyInfosTrackUrlCustomer=Podeu consultar l'historial d'aquest tiquet fent clic al següent enllaç TicketEmailPleaseDoNotReplyToThisEmail=No respongueu directament a aquest correu electrònic. Utilitzeu l'enllaç per respondre des de la mateixa interfície. TicketPublicInfoCreateTicket=Aquest formulari us permet registrar un tiquet de suport al nostre sistema de gestió. -TicketPublicPleaseBeAccuratelyDescribe=Descriviu amb precisió el problema. Proporcioneu la màxima informació possible per a permetre’ns identificar correctament la vostra sol·licitud. +TicketPublicPleaseBeAccuratelyDescribe=Descriu la teva pregunta amb precisió. Proporcioneu la màxima informació possible que ens permeti identificar correctament la vostra sol·licitud. TicketPublicMsgViewLogIn=Introduïu l'identificador de traça dels tiquets (ID) TicketTrackId=ID de seguiment públic OneOfTicketTrackId=Un dels vostres ID de seguiment diff --git a/htdocs/langs/ca_ES/trips.lang b/htdocs/langs/ca_ES/trips.lang index 75151da5644..96c385f47f4 100644 --- a/htdocs/langs/ca_ES/trips.lang +++ b/htdocs/langs/ca_ES/trips.lang @@ -25,11 +25,11 @@ ExpenseReportWaitingForApprovalMessage=S'ha enviat un nou informe de despeses i ExpenseReportWaitingForReApproval=S'ha generat un informe de despeses per a re-aprovació ExpenseReportWaitingForReApprovalMessage=S'ha enviat un informe de despeses i està a l'espera de la seva aprovació.
    %s, es va negar a aprovar l'informe de despeses per aquest motiu: %s.
    S'ha proposat una nova versió i espera la seva aprovació.
    - Usuari: %s
    - Període: %s
    Cliqueu aquí per validar: %s ExpenseReportApproved=S'ha aprovat un informe de despeses -ExpenseReportApprovedMessage=S'ha aprovat l'informe de despeses %s.
    - Usuari: %s
    - Aprovat per: %s
    Feu clic aquí per veure l'informe de despeses: %s +ExpenseReportApprovedMessage=S'ha aprovat l'informe de despeses %s.
    - Usuari: %s
    - Aprovat per: %s
    Feu clic aquí per a veure l'informe de despeses: %s ExpenseReportRefused=S'ha rebutjat un informe de despeses ExpenseReportRefusedMessage=L'informe de despeses %s s'ha denegat.
    - Usuari: %s
    - Rebutjat per: %s
    - Motiu de denegació: %s
    Cliqueu aquí per a veure l'informe de despeses: %s ExpenseReportCanceled=S'ha cancel·lat un informe de despeses -ExpenseReportCanceledMessage=L'informe de despeses %s s'ha cancel·lat.
    - Usuari: %s
    - Cancel·lat per: %s
    - Motiu de cancel·lació: %s
    Cliqueu aquí per veure l'informe de despeses: %s +ExpenseReportCanceledMessage=L'informe de despeses %s s'ha cancel·lat.
    - Usuari: %s
    - Cancel·lat per: %s
    - Motiu de cancel·lació: %s
    Cliqueu aquí per a veure l'informe de despeses: %s ExpenseReportPaid=S'ha pagat un informe de despeses ExpenseReportPaidMessage=L'informe de despeses %s s'ha pagat.
    - Usuari: %s
    - Pagat per: %s
    Feu clic aquí per a veure l'informe de despeses: %s TripId=Id d'informe de despeses diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang index f35bf70bd98..0fbf167ffb5 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -102,7 +102,7 @@ NbOfPermissions=Nombre de permisos DontDowngradeSuperAdmin=Només un superadmin pot degradar un superadmin HierarchicalResponsible=Supervisor HierarchicView=Vista jeràrquica -UseTypeFieldToChange=Modificar el camp Tipus per canviar +UseTypeFieldToChange=Utilitzeu el camp Tipus per a canviar OpenIDURL=URL d'OpenID LoginUsingOpenID=Utilitzeu OpenID per a iniciar la sessió WeeklyHours=Hores treballades (per setmana) @@ -123,8 +123,8 @@ ForceUserHolidayValidator=Forçar validador de sol·licitud d'abandonament ValidatorIsSupervisorByDefault=Per defecte, el validador és el supervisor de l’usuari. Deixar buit per mantenir aquest comportament. UserPersonalEmail=Correu electrònic personal UserPersonalMobile=Telèfon mòbil personal -WarningNotLangOfInterface=Avís, aquest és l'idioma principal que parla l'usuari, no el llenguatge de la interfície que va triar per veure. Per canviar l’idioma de la interfície visible per aquest usuari, aneu a la pestanya %s -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +WarningNotLangOfInterface=Advertència, aquest és l'idioma principal que parla l'usuari, no l'idioma de la interfície que va triar veure. Per a canviar l'idioma de la interfície visible per aquest usuari, aneu a la pestanya %s +DateLastLogin=Data darrera sessió +DatePreviousLogin=Data d'inici de sessió anterior +IPLastLogin=IP darrer inici de sessió +IPPreviousLogin=IP d'inici de sessió anterior diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang index 118e8e38909..0a7692af62e 100644 --- a/htdocs/langs/ca_ES/website.lang +++ b/htdocs/langs/ca_ES/website.lang @@ -44,7 +44,7 @@ RealURL=URL real ViewWebsiteInProduction=Mostra la pàgina web utilitzant les URLs d'inici SetHereVirtualHost=Utilitzeu amb Apache/NGinx/...
    Creeu al vostre servidor web (Apache, Nginx...) un Virtual Host dedicat amb PHP habilitat i un directori arrel a
    %s ExampleToUseInApacheVirtualHostConfig=Exemple a utilitzar en la configuració de d'un Virtual Host d'Apache: -YouCanAlsoTestWithPHPS= Utilitzeu-lo amb el servidor incrustat de PHP
    Al desenvolupar l'entorn, és possible que preferiu provar el lloc amb el servidor web incrustat de PHP (requereix PHP 5.5) executant
    php -S 0.0. 0.0: 8080 -t %s +YouCanAlsoTestWithPHPS= Utilitzeu-lo amb el servidor incrustat de PHP
    En desenvolupar l'entorn, és possible que preferiu provar el lloc amb el servidor web incrustat de PHP (requereix PHP 5.5) executant
    php -S 0.0. 0.0: 8080 -t %s YouCanAlsoDeployToAnotherWHP= Executeu el vostre lloc web amb un altre proveïdor d'allotjament Dolibarr
    Si no teniu un servidor web com Apache o NGinx disponible a Internet, podeu exportar i importar el vostre lloc web a una altra instància d'allotjament Dolibarr proporcionada per una altra instància d'allotjament Dolibarr proporcionada per un altre servidor Dolibar complet. integració amb el mòdul del lloc web. Podeu trobar una llista d'alguns proveïdors d'allotjament de Dolibarr a https://saas.dolibarr.org CheckVirtualHostPerms=Comproveu també que l'usuari del VIRTUAL HOST (per exemple www-data) té permisos %s sobre els fitxers a
    %s ReadPerm=Llegit @@ -57,7 +57,7 @@ NoPageYet=Encara sense pàgines YouCanCreatePageOrImportTemplate=Podeu crear una pàgina nova o importar una plantilla completa del lloc web SyntaxHelp=Ajuda sobre consells de sintaxi específics YouCanEditHtmlSourceckeditor=Podeu editar el codi font HTML usant el botó "Codi font" a l'editor. -YouCanEditHtmlSource=
    Podeu incloure el codi PHP en aquesta font mitjançant les etiquetes <? php? > a0a65d071f6fc9z Estan disponibles les variables globals següents: $ conf, $ db, $ mysoc, $ user, $ lloc web, $ pàgina web, $ weblangs, $ pagelangs.

    També podeu incloure contingut d'una altra pàgina / contenidor amb la següent sintaxi:
    a03900dfdf ? >

    Vostè pot fer una redirecció a una altra pàgina / Contenidor amb la següent sintaxi (Nota: no emeten cap contingut abans d'una redirecció) :?
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ? >

    Per afegir un vincle a una altra pàgina, utilitzeu la sintaxi:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    Per incloure un enllaç per a descàrrega un arxiu emmagatzemat en els documents un directori , utilitzeu el document document.php embolcall:
    Exemple, per a un fitxer a documents / ecm (cal registrar-se)? ] nom de fitxer.ext ">

    Per a un fitxer a documents / suports (directori obert per a accés públic), la sintaxi és:
    a03900dfre31ecz "/document.php?modulepart=medias&file=[relative_dir/ Alanfilename.ext">
    Per a un fitxer compartit amb un enllaç compartit (accés obert mitjançant la tecla hash compartida del fitxer), una sintaxis es0a0z0z0a009 /document.php?hashp=publicsharekeyoffile">


    per incloure un
    imatge emmagatzemat en els documents directori, utilitzeu el viewimage.php embolcall:
    exemple, per a una imatge en documents / arxius multimèdia (obert directori d’accés públic), la sintaxi és:
    <img src = "/ viewimage.php? modulepart = medias&file = [relative_dir /] filename.ext" a0129 +YouCanEditHtmlSource=
    Podeu incloure el codi PHP en aquesta font mitjançant les etiquetes <?php ?>. Estan disponibles les variables globals següents: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    També podeu incloure contingut d'una altra pàgina/contenidor amb la següent sintaxi:
    <?php includeContainer('alias_of_container_to_include'); ?>

    Podeu fer una redirecció a una altra pàgina/contenidor amb la següent sintaxi (Nota: no emeten cap contingut abans d'una redirecció) :?
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ? >

    Per a afegir un vincle a una altra pàgina, utilitzeu la sintaxi:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    Per a incloure un enllaç per a descàrrega un arxiu emmagatzemat en els documents un directori , utilitzeu el document document.php embolcall:
    Exemple, per a un fitxer a documents / ecm (cal registrar-se)? ] nom de fitxer.ext ">
    Per a un fitxer a documents / suports (directori obert per a accés públic), la sintaxi és:
    a03900dfre31ecz "/document.php?modulepart=medias&file=[relative_dir/ Alanfilename.ext">
    Per a un fitxer compartit amb un enllaç compartit (accés obert mitjançant la tecla hash compartida del fitxer), una sintaxis es0a0z0z0a009 /document.php?hashp=publicsharekeyoffile">


    per a incloure un
    imatge emmagatzemat en els documents directori, utilitzeu el viewimage.php embolcall:
    exemple, per a una imatge en documents / arxius multimèdia (obert directori d’accés públic), la sintaxi és:
    <img src = "/ viewimage.php? modulepart = medias&file = [relative_dir /] filename.ext" a0129 #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Per a una imatge compartida amb un enllaç compartit (accés obert mitjançant la tecla hash compartida del fitxer), la sintaxi és:
    <img src = "/ viewimage.php? Hashp = 12345679012 ..." a0012c7dcbe087987 YouCanEditHtmlSourceMore=
    Més exemples d'HTML o codi dinàmic disponibles a la documentació wiki
    . @@ -69,7 +69,7 @@ PageIsANewTranslation=La pàgina nova és una traducció de la pàgina actual? LanguageMustNotBeSameThanClonedPage=Cloneu una pàgina com a una traducció. L'idioma de la nova pàgina ha de ser diferent del llenguatge de la pàgina d'origen. ParentPageId=ID de la pàgina pare WebsiteId=ID del lloc web -CreateByFetchingExternalPage=Crear una pàgina/contenidor mitjançant l'obtenció del continugt des d'una URL externa ... +CreateByFetchingExternalPage=Crea una pàgina/contenidor obtenint la pàgina d'un URL extern... OrEnterPageInfoManually=O creeu la pàgina des de zero o des d'una plantilla de pàgines... FetchAndCreate=Obtenir i crear ExportSite=Exporta la web @@ -106,8 +106,8 @@ ThisPageIsTranslationOf=Aquesta pàgina/contenidor és una traducció de ThisPageHasTranslationPages=Aquesta pàgina/contenidor té traducció NoWebSiteCreateOneFirst=Encara no s'ha creat cap lloc web. Creeu-ne un primer. GoTo=Aneu a -DynamicPHPCodeContainsAForbiddenInstruction=Afegiu un codi PHP dinàmic que conté la instrucció PHP ' %s ' prohibida per defecte com a contingut dinàmic (vegeu les opcions ocultes WEBSITE_PHP_ALLOW_xxx per augmentar la llista d’ordres permeses). -NotAllowedToAddDynamicContent=No teniu permís per afegir o editar contingut dinàmic de PHP als llocs web. Demana permís o simplement guarda el codi en etiquetes php sense modificar. +DynamicPHPCodeContainsAForbiddenInstruction=Afegiu codi PHP dinàmic que conté la instrucció PHP ' %s ' que està prohibida per defecte com a contingut dinàmic (vegeu les opcions ocultes WEBSITE_PHP_ALLOW_xxx per a augmentar la llista d'ordres permeses). +NotAllowedToAddDynamicContent=No teniu permís per a afegir o editar contingut dinàmic de PHP als llocs web. Demana permís o simplement guarda el codi en etiquetes php sense modificar. ReplaceWebsiteContent=Cerqueu o substitueixi el contingut del lloc web DeleteAlsoJs=Voleu suprimir també tots els fitxers javascript específics d'aquest lloc web? DeleteAlsoMedias=Voleu suprimir també tots els fitxers de mitjans específics d’aquest lloc web? diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index b96ddb3a715..d6b183c7c69 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Factura en espera de transferència bancàri AmountToWithdraw=Import a domiciliar AmountToTransfer=Import a transferir NoInvoiceToWithdraw=No hi ha cap factura oberta per a '%s'. Aneu a la pestanya "%s" de la fitxa de factura per a fer una sol·licitud. -NoSupplierInvoiceToWithdraw=No hi ha cap factura de proveïdor pendent amb "sol·licituds de crèdit directe" obertes. Aneu a la pestanya "%s" de la fitxa de la factura per a fer una sol·licitud. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Usuari responsable WithdrawalsSetup=Configuració del pagament mitjançant domiciliació bancària CreditTransferSetup=Configuració de transferència bancària @@ -42,6 +42,7 @@ CreditTransferStatistics=Estadístiques de transferència bancària Rejects=Devolucions LastWithdrawalReceipt=Últims %s rebuts domiciliats MakeWithdrawRequest=Fes una sol·licitud de domiciliació +MakeWithdrawRequestStripe=Feu una sol·licitud de pagament per domiciliació bancària mitjançant Stripe MakeBankTransferOrder=Fes una sol·licitud de transferència WithdrawRequestsDone=%s domiciliacions registrades BankTransferRequestsDone=S'han registrat %s sol·licituds de transferència @@ -91,7 +92,7 @@ CreateBanque=Només banc OrderWaiting=A l'espera de procés NotifyTransmision=Registre la transmissió del fitxer de la comanda NotifyCredit=Registre de crèdit de la comanda -NumeroNationalEmetter=Número Nacional del Emissor +NumeroNationalEmetter=Número Nacional de l'Emissor WithBankUsingRIB=Per als comptes bancaris que utilitzen CCC WithBankUsingBANBIC=Per als comptes bancaris que utilitzen el codi BAN/BIC/SWIFT BankToReceiveWithdraw=Recepció del compte bancari @@ -100,8 +101,11 @@ CreditDate=Abonada el WithdrawalFileNotCapable=No es pot generar el fitxer de rebut de domiciliació del vostre país %s (El vostre país no és compatible) ShowWithdraw=Mostra l'ordre de domiciliació IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tot i això, si la factura té com a mínim una ordre de pagament per domiciliació bancària encara no processada, no s’establirà com a pagament per a permetre la gestió prèvia de la retirada. -DoStandingOrdersBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de pagament per domiciliació bancària. Un cop fet això, aneu al menú Banc-> Pagament mitjançant domiciliació bancària per a generar i gestionar l’ordre de domiciliació bancària. Quan es tanca la comanda de domiciliació bancària, el pagament de les factures es registrarà automàticament i es tancaran les factures si la resta de pagament és nul·la. -DoCreditTransferBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de transferència bancària. Un cop feta, aneu al menú Banc->Pagament per transferència bancària per a generar i gestionar l'ordre de transferència bancària. Quan es tanca l'ordre de transferència bancària, el pagament de les factures es registrarà automàticament i es tancaran les factures si no queda cap pagament pendent. +DoStandingOrdersBeforePayments=Aquesta pestanya permet sol·licitar una ordre de pagament per domiciliació bancària. Un cop fet, podeu entrar al menú "Banc->Pagament per domiciliació bancària" per generar i gestionar un fitxer de comanda de domiciliació bancària. +DoStandingOrdersBeforePayments2=També podeu enviar una sol·licitud directament a un processador de pagaments SEPA com Stripe, ... +DoStandingOrdersBeforePayments3=Quan es tanqui l'ordre de domiciliació bancària, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per pagar és nul·la. +DoCreditTransferBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de transferència de crèdit. Un cop fet, aneu al menú "Banc->Pagament per transferència de crèdit" per generar i gestionar un fitxer d'ordre de transferència de crèdit. +DoCreditTransferBeforePayments3=Quan es tanqui l'ordre de transferència de crèdit, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per pagar és nul·la. WithdrawalFile=Fitxer de comanda de dèbit CreditTransferFile=Fitxer de transferència de crèdit SetToStatusSent=Estableix l'estat "Fitxer enviat" @@ -117,8 +121,8 @@ BankTransferAmount=Import de la petició de transferència bancària: WithdrawRequestErrorNilAmount=No és possible crear una domiciliació sense import SepaMandate=Mandat de domiciliació bancària SEPA SepaMandateShort=Mandat SEPA -PleaseReturnMandate=Si us plau retorna aquest formulari de mandat per correu electrònic a %s o per correu postal a -SEPALegalText=En signar aquest formulari de mandat, autoritzeu (A) %s a enviar instruccions al vostre banc per carregar el vostre compte i (B) al vostre banc a domiciliar el vostre compte d'acord amb les instruccions de %s. Com a part dels vostres drets, teniu dret a un reemborsament del vostre banc segons els termes i condicions del vostre acord amb el vostre banc. Els vostres drets respecte al mandat anterior s'expliquen en un comunicat que podeu obtenir al vostre banc. +PleaseReturnMandate=Si us plau, envieu aquest formulari de mandat per correu electrònic a %s o per correu postal a +SEPALegalText=En signar aquest formulari de mandat, autoritzeu (A) a %s i al seu proveïdor de serveis de pagament a enviar instruccions al vostre banc per carregar el vostre compte i (B) al vostre banc a domiciliar el vostre compte d'acord amb les instruccions d'%s. Com a part dels vostres drets, teniu dret a un reemborsament del vostre banc segons els termes i condicions del vostre acord amb el vostre banc. Els vostres drets respecte al mandat anterior s'expliquen en un comunicat que podeu obtenir al vostre banc. CreditorIdentifier=Identificador del creditor CreditorName=Nom del creditor SEPAFillForm=(B) Si us plau completa tots els camps marcats amb * @@ -128,7 +132,7 @@ SEPAFormYourBIC=Codi identificador del teu banc (BIC) SEPAFrstOrRecur=Tipus de pagament ModeRECUR=Pagament recurrent ModeFRST=Pagament únic -PleaseCheckOne=Si us plau marqui només una +PleaseCheckOne=Si us plau, marqueu només un CreditTransferOrderCreated=S'ha creat una ordre de transferència de crèdit %s DirectDebitOrderCreated=S'ha creat l'ordre de domiciliació bancària %s AmountRequested=Quantitat sol·licitada @@ -137,7 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Data d'execució CreateForSepa=Crea un fitxer de domiciliació bancària ICS=Identificador del creditor - ICS -IDS=Debitor Identifier +IDS=Identificador del deutor END_TO_END=Etiqueta XML "EndToEndId" de SEPA - Id. Única assignada per transacció USTRD=Etiqueta XML de la SEPA "no estructurada" ADDDAYS=Afegiu dies a la data d'execució @@ -156,4 +160,4 @@ ErrorICSmissing=Falta ICS al compte bancari %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=La quantitat total de l'ordre de domiciliació bancària difereix de la suma de línies WarningSomeDirectDebitOrdersAlreadyExists=Avís: ja hi ha algunes comandes de domiciliació bancària pendents (%s) sol·licitades per un import de %s WarningSomeCreditTransferAlreadyExists=Avís: ja hi ha una transferència de crèdit pendent (%s) sol·licitada per un import de %s -UsedFor=Used for %s +UsedFor=S'utilitza per a %s diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang index 1b8a1353a66..fb65a49a9f3 100644 --- a/htdocs/langs/ca_ES/workflow.lang +++ b/htdocs/langs/ca_ES/workflow.lang @@ -19,10 +19,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classifiqueu la comanda de v descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classifica el pressupost de proveïdor vinculat com facturat quan la factura de proveïdor és validada (i si l'import de la factura és igual a l'import total del pressupost vinculat) # Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classifica la comanda de proveïdor vinculada com facturada quan la factura de proveïdor és validada (i si l'import de la factura és igual a l'import total de la comanda vinculada) -descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classifica l'ordre de compra d'origen enllaçat com a rebut quan es valida una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per actualitzar) -descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classifica l'ordre de compra d'origen enllaçat com a rebut quan es tanca una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per actualitzar) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classifica com a rebuda l'ordre de compra d'origen enllaçada quan es valida una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per a actualitzar) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classifica com a rebuda l'ordre de compra d'origen enllaçada quan es tanca una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per a actualitzar) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Classifica les recepcions com a "facturades" quan es valida una comanda de proveïdor enllaçada +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Quan creeu un bitllet, enllaceu els contractes disponibles del tercer coincident descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=En enllaçar contractes, cerqueu entre els de les empreses matrius @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Tanca totes les intervencions vinculades AutomaticCreation=Creació automàtica AutomaticClassification=Classificació automàtica # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classifica com a tancat l'enviament d'origen enllaçat quan es validi la factura del client +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Tancament automàtic AutomaticLinking=Enllaç automàtic diff --git a/htdocs/langs/ca_ES/zapier.lang b/htdocs/langs/ca_ES/zapier.lang index 8ec34baedaf..65d851a78bd 100644 --- a/htdocs/langs/ca_ES/zapier.lang +++ b/htdocs/langs/ca_ES/zapier.lang @@ -18,4 +18,4 @@ ModuleZapierForDolibarrDesc = Mòdul Zapier per a Dolibarr ZapierForDolibarrSetup=Configuració de Zapier per a Dolibarr ZapierDescription=Interfície amb Zapier ZapierAbout=Quant al mòdul Zapier -ZapierSetupPage=No cal fer cap configuració al costat de Dolibarr per a utilitzar Zapier. Tot i això, heu de generar i publicar un paquet a zapier per a poder utilitzar Zapier amb Dolibarr. Consulteu la documentació aquesta pàgina wiki . +ZapierSetupPage=No cal una configuració de Dolibarr per a utilitzar Zapier. Tanmateix, heu de generar i publicar un paquet a zapier per a poder utilitzar Zapier amb Dolibarr. Vegeu la documentació sobre aquesta pàgina wiki . diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 9017f3151eb..10e039ebde0 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Země, které nejsou v EHS CountriesInEECExceptMe=Země v EHS kromě %s CountriesExceptMe=Všechny země kromě %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Hlavní účty účetnictví pro dodavatele, k MainAccountForUsersNotDefined=Hlavní účetní účetnictví pro uživatele, které nejsou definovány v nastavení MainAccountForVatPaymentNotDefined=Účet hlavního účtu pro platbu DPH není definována v nastavení MainAccountForSubscriptionPaymentNotDefined=Účet hlavního účtu je platba předplatného, která není definována v nastavení +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Účetní oblast AccountancyAreaDescIntro=Použití účetního modulu se provádí v několika krocích: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Zakázat přímé nahrávání transakce v bankovním ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Povolit návrh exportu v žurnálu ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Prodejní deník -ACCOUNTING_PURCHASE_JOURNAL=Nákupní deník -ACCOUNTING_MISCELLANEOUS_JOURNAL=Ostatní deník +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Rozšířený výpis deníku -ACCOUNTING_SOCIAL_JOURNAL=Sociální deník +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Má nový věstník +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Sociální deník ACCOUNTING_RESULT_PROFIT=Výsledek účetnictví (Zisk) ACCOUNTING_RESULT_LOSS=Výsledek účetní účet (ztráta) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Časopis uzavření -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Účtovací účet přechodného bankovního převodu +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Účet přechodného bankovního převodu -ACCOUNTING_ACCOUNT_SUSPENSE=Čekající účet -DONATION_ACCOUNTINGACCOUNT=Účtování účet registrovaných darů -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Účtovací účet pro registraci předplatného +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené produkty (používá se, pokud není definováno v produktovém listu) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení u zakoupených produktů v EHS (používá se, pokud není definováno v produktovém listu) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení pro nakoupené produkty a dovážený z EHS (používá se, pokud není definován v listu produktu) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Účetní účet ve výchozím nastavení pro prodané produkty (použít, pokud není definován v listu produktu) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení u produktů prodávaných v EHS (používá se, pokud není definováno v produktovém listu) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení u produktů prodaných a vyvezených z EHS (používá se, pokud není definováno v produktovém listu) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené služby (použít, pokud není definován v servisním listu) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené služby v EHS (používá se, pokud není definováno v listu služeb) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení pro nakoupené služby a importovaný z EHS (používá se, pokud není definováno v listu služeb) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Účetní účet ve výchozím nastavení pro prodané služby (použít, pokud není definován v servisním listu) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení pro služby prodávané v EHS (používá se, pokud není definováno v listu služeb) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení pro služby prodané a vyvezené z EHS (použité, pokud není definováno v listu služeb) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Typ dokumentu Docdate=Datum @@ -211,7 +217,7 @@ Codejournal=Deník JournalLabel=Označení časopisu NumPiece=počet kusů TransactionNumShort=Num. transakce -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=Zde můžete definovat některé skupiny účetních účtů. Budou se používat pro personalizované účetní výkazy. @@ -265,13 +271,13 @@ Reconcilable=Smíření TotalVente=Celkový obrat před zdaněním TotalMarge=Celkové tržby marže -DescVentilCustomer=Zde naleznete seznam zákaznických fakturačních řádků vázaných (nebo nikoliv) na účet účetnictví produktu -DescVentilMore=Ve většině případů, pokud používáte předdefinované produkty nebo služby a nastavíte číslo účtu na kartě produktu / služby, aplikace bude schopna provést veškerou vazbu mezi vašimi fakturačními řádky a účtem účtu vašeho účtového osvědčení, a to pouze v jedním kliknutím tlačítkem "%s" . Pokud účet nebyl nastaven na kartě produktů / služeb nebo pokud máte ještě nějaké řádky, které nejsou vázány na účet, musíte z nabídky " %s " provést ruční vazbu. -DescVentilDoneCustomer=Seznamte se zde se seznamem řádků faktur zákazníků a jejich účetních účtů -DescVentilTodoCustomer=Vázat fakturační řádky, které již nejsou vázány účtem účetnictví produktu -ChangeAccount=Změnit výrobek/službu na účetnm účtu ve vybraných řádcích s následujícím účetním účtem: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Seznamte se zde se seznamem linek s fakturami dodavatele vázaných nebo dosud vázaných na účet účetnictví produktu (jsou viditelné pouze záznamy, které ještě nebyly převedeny do účetnictví) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Zde si přečtěte seznam řádků prodejních faktur a jejich účetní účet DescVentilTodoExpenseReport=Vázat řádky výkazu výdajů, které již nejsou vázány účtem účtování poplatků DescVentilExpenseReport=Zde si přečtěte seznam výkazů výdajů vázaných (nebo ne) na účty účtování poplatků @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Pokud nastavíte účetní účet na řádcích výk DescVentilDoneExpenseReport=Poraďte se zde seznam v souladu se zprávami výdajů a jejich poplatků účtování účtu Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Jakékoli úpravy nebo vymazání písem, nápisů a vymazání budou zakázány. Všechny přihlášky na cvičení musí být validovány, jinak nebude možné uzavřít ValidateHistory=Ověřit automaticky AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Chyba, nelze odstranit tento účetní účet, protože ho zrovna používáte +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Vyvažování FicheVentilation=Ověřovací karta GeneralLedgerIsWritten=Transakce jsou zapsány do knihy GeneralLedgerSomeRecordWasNotRecorded=Některé transakce nemohly být zveřejněny. Pokud se neobjeví žádná další chybová zpráva, je to pravděpodobně proto, že byly již publikovány. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Seznam výrobků, které nejsou vázány na kterémkoli účetním účtu +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Změnit vazby Accounted=Účtováno v knize NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Různé operace AccountingJournalType2=Odbyt AccountingJournalType3=Nákupy AccountingJournalType4=Banka -AccountingJournalType5=Zpráva o nákladech +AccountingJournalType5=Výkazy výdajů AccountingJournalType8=Inventář AccountingJournalType9=Má-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Tento deník se již používá AccountingAccountForSalesTaxAreDefinedInto=Poznámka: Účtovací účet pro daň z prodeje je definován v menu %s - %s NumberOfAccountancyEntries=Počet vstupů @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Počet pohybů ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Exportovat deník návrhu @@ -398,7 +407,11 @@ Calculated=počítáno Formula=Vzorec ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Hromadné smazání potvrzení ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Účetní zápisy @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Datum exportu WarningReportNotReliable=Upozornění: Tento přehled není založen na záznamníku, takže neobsahuje transakci upravenou ručně v Knihovně. Je-li vaše deník aktuální, zobrazení účetnictví je přesnější. ExpenseReportJournal=Účet výkazů výdajů -InventoryJournal=Inventářový věstník NAccounts=%s accounts diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index bb20cdbc2ae..13a3ace17af 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Srovnání klientů WarningModuleNotActive=Modul %s musí být povolen WarningOnlyPermissionOfActivatedModules=Zobrazeny pouze oprávnění k aktivovaným modulům. Další moduly můžete aktivovat na stránce Domů-> Nastavení-> Moduly. DolibarrSetup=Instalace nebo aktualizace Dolibarr -InternalUser=Interní uživatel -ExternalUser=Externí uživatel InternalUsers=Interní uživatelé ExternalUsers=Externí uživatelé UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Další hodnota (náhrady) MustBeLowerThanPHPLimit=Poznámka: Vaše konfigurace PHP v současné době omezuje maximální velikost souboru pro upload na %s %s, bez ohledu na hodnotu tohoto parametru NoMaxSizeByPHPLimit=Poznámka: Ve Vaší PHP konfiguraci není nastaven limit MaxSizeForUploadedFiles=Maximální velikost nahrávaných souborů (0 pro zablokování nahrávání) -UseCaptchaCode=Použít grafický kód (CAPTCHA) na přihlašovací stránce +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Úplná cesta k antivirovému souboru AntiVirusCommandExample=Příklad pro ClamAv Daemon (vyžaduje clamav-daemon): / usr / bin / clamdscan
    Příklad pro ClamWin (velmi velmi pomalu): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Další parametry příkazového řádku @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (Výchozí nastavení v php.ini: %s%s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=E-mail, který se používá pro hlášení chyb, vrací e-maily (políčka "Chyby-To" v odeslaných e-mailech) MAIN_MAIL_AUTOCOPY_TO= Kopírovat (Bcc) všechny odeslané e-maily MAIN_DISABLE_ALL_MAILS=Zakázat veškeré odesílání e-mailů (pro testovací účely nebo ukázky) @@ -439,8 +438,10 @@ Unique=Unikátní Boolean=Boolean (jedno zaškrtávací políčko) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = E-mail ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Vyberte seznam ExtrafieldSelectList = Vyberte z tabulky ExtrafieldSeparator=Oddělovač (není položka) @@ -477,7 +478,7 @@ InstalledInto=Nainstalován do adresáře %s BarcodeInitForThirdparties=Hromadná inicializace čárového kódu pro subjekty BarcodeInitForProductsOrServices=Hromadná inicializace nebo resetování čárového kódu pro produkty nebo služby CurrentlyNWithoutBarCode=V současné době máte %s záznam na %s %s bez definice čárového kódu. -InitEmptyBarCode=Init hodnota pro příští %s prázdnými záznamů +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Vymazat všechny aktuální hodnoty čárových kódů ConfirmEraseAllCurrentBarCode=Jste si jisti, že chcete vymazat všechny aktuální hodnoty čárových kódů? AllBarcodeReset=Byly odstraněny všechny hodnoty čárových kódů @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Pokud je váš poskytovatel e-mailových služeb SMTP povinen omezit e-mailový klient na některé adresy IP (velmi vzácné), jedná se o adresu IP agentu uživatele pošty (MUA) pro aplikaci ERP CRM: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Kliknutím zobrazíte popis DependsOn=Tento modul potřebuje modul (y) RequiredBy=Tento modul je vyžadován modulem (moduly) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate= 
    Příklad:
    Formulář pro vytvoření PageUrlForDefaultValuesList= 
    Příklad:
    Pro stránku, která obsahuje subjekty, je %s .
    Pro adresy URL externích modulů nainstalovaných do vlastního adresáře nezahrnujte "vlastní", takže použijte cestu jako mymodule / mypagelist.php a ne vlastní / mymodule / mypagelist.php.
    Pokud chcete výchozí hodnotu pouze v případě, že url má nějaký parametr, můžete použít %s AlsoDefaultValuesAreEffectiveForActionCreate=Také si všimněte, že přepsání výchozích hodnot pro vytváření formulářů funguje pouze pro stránky, které byly správně navrženy (takže s parametrem action = create or presend ...) EnableDefaultValues=Povolit přizpůsobení výchozích hodnot -EnableOverwriteTranslation=Povolit použití přepsaného překladu +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Překlad byl nalezen pro klíč s tímto kódem. Chcete-li tuto hodnotu změnit, musíte ji upravit z Home-Setup-translation. WarningSettingSortOrder=Upozornění, nastavení výchozího pořadí řazení může vést k technické chybě, pokud se nacházíte na stránce seznamu, pokud je pole neznámý pole. Pokud dojde k takové chybě, vráťte se na tuto stránku, abyste odstranili výchozí pořadí řazení a obnovili výchozí chování. Field=Pole @@ -645,9 +647,9 @@ Module2400Name=Události/Agenda Module2400Desc=Sledujte události. Nahrajte automatické události pro účely sledování nebo zaznamenávejte ruční události nebo schůzky. Jedná se o hlavní modul pro správné řízení vztahů se zákazníky nebo dodavateli. Module2500Name=DMS / ECM Module2500Desc=Systém správy dokumentů / elektronické správy obsahu. Automatické uspořádání vytvořených nebo uložených dokumentů. Sdílejte je, když budete potřebovat. -Module2600Name=API / Webové služby (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Povolit Dolibarr SOAP serveru poskytující služby API -Module2610Name=API / webové služby REST (server) +Module2610Name=API / Web services (REST server) Module2610Desc=Povolit služby API serveru poskytující Dolibarr REST Module2660Name=Call WebServices (SOAP klient) Module2660Desc=Povolit klienta webových služeb Dolibarr (lze použít k posunu dat / požadavků na externí servery. V současné době jsou podporovány pouze nákupní objednávky.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Přidat funkce pro správu Incoterms Module63000Name=Zdroje Module63000Desc=Spravujte prostředky (tiskárny, auta, místnosti, ...) pro přidělování událostí +Module94160Name=Recepce Permission11=Přečtěte si faktury zákazníků Permission12=Vytvářejte/upravujte zákaznické faktury Permission13=Invalidate customer invoices @@ -714,6 +717,7 @@ Permission27=Odstranění obchodních návrhů Permission28=Export obchodních návrhů Permission31=Přečtěte si produkty Permission32=Vytvářejte/upravujte produkty +Permission33=Read prices products Permission34=Odstranit produkty Permission36=Zobrazení/správa skrytých produktů Permission38=Export produktů @@ -739,6 +743,7 @@ Permission79=Vytvořit/upravit předplatné Permission81=Přečtěte objednávky odběratelů Permission82=Vytvářejte/upravujte objednávky zákazníků Permission84=Potvrzení objednávky odběratelů +Permission85=Generate the documents sales orders Permission86=Posílejte objednávky zákazníků Permission87=Zavřít objednávky zákazníků Permission88=Storno objednávky odběratelů @@ -840,9 +845,9 @@ Permission286=Export kontaktů Permission291=Přečtěte tarify Permission292=Nastavení oprávnění na sazby Permission293=Upravte zákaznické tarify -Permission300=Čtěte čárové kódy -Permission301=Vytvářejte/upravujte čárové kódy -Permission302=Odstraňte čárové kódy +Permission301=Generate PDF sheets of barcodes +Permission304=Vytvářejte/upravujte čárové kódy +Permission305=Odstraňte čárové kódy Permission311=Přečtěte služby Permission312=Přiřadit službu/předplatné ke smlouvě Permission331=Přečtěte si záložky @@ -874,6 +879,7 @@ Permission525=Přístup na úvěrovou kalkulačku Permission527=Export půjček Permission531=Přečtěte si služby Permission532=Vytvářejte/upravujte služby +Permission533=Read prices services Permission534=Smazat služby Permission536=Zobrazení/správa skrytých služeb Permission538=Export služeb @@ -968,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Přečtěte si obsah webových stránek Permission10002=Vytvářejte/upravujte obsah webových stránek (html a javascript) Permission10003=Vytvářejte / upravujte obsah webových stránek (dynamický php kód). Nebezpečné, musí být vyhrazeno omezeným vývojářům. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Nastavení uloženo SetupNotSaved=Nastavení nebylo uloženo +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Zpět na seznam modulů BackToDictionaryList=Zpět na seznam slovníků TypeOfRevenueStamp=Typ daňové známky @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Hodnota konfigurační konstanty ConstantIsOn=Option %s is on NbOfDays=Počet dní AtEndOfMonth=Na konci měsíce -CurrentNext=Aktuální/Další +CurrentNext=A given day in month Offset=Ofset AlwaysActive=Vždy aktivní Upgrade=Vylepšit @@ -1235,11 +1246,13 @@ BrowserName=Název prohlížeče BrowserOS=Prohlížeč OS ListOfSecurityEvents=Seznam bezpečnostních událostí Dolibarru SecurityEventsPurged=Bezpečnostní události byly vymazány +TrackableSecurityEvents=Trackable security events LogEventDesc=Povolte protokolování pro konkrétní události zabezpečení. Administrátoři přihlašují pomocí menu %s - %s . Upozornění: Tato funkce může generovat velké množství dat v databázi. AreaForAdminOnly=Parametry nastavení mohou být nastaveny pouze uživateli administrátora . SystemInfoDesc=Systémové informace jsou různé technické informace, které získáte pouze v režimu pro čtení a viditelné pouze pro správce. SystemAreaForAdminOnly=Tato oblast je k dispozici pouze uživatelům správce. Oprávnění uživatele Dolibarr nemůže toto omezení změnit. CompanyFundationDesc=Upravte informace o své společnosti / organizaci. Po dokončení klikněte na tlačítko „%s“ v dolní části stránky. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Pokud máte externího účetního / účetního, můžete zde upravit jeho informace. AccountantFileNumber=Účetní kód DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Tento příkaz musíte spustit YourPHPDoesNotHaveSSLSupport=SSL funkce není k dispozici ve vašem PHP DownloadMoreSkins=Další skiny ke stažení SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1391,7 @@ GetBarCode=Získat čárový kód NumberingModules=Modely číslování DocumentModules=Modely dokumentů ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Nevybírejte generované heslo. Heslo musí být zadáno ručně. PasswordGenerationPerso=Vrátit hesla dle Vašeho osobně definované konfiguraci. SetupPerso=Podle konfigurace @@ -1430,6 +1445,10 @@ SuppliersPayment=Platby dodavatele SupplierPaymentSetup=Nastavení plateb dodavatelů InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Nastavení modulu komerčních návrhů ProposalsNumberingModules=Modely číslování komerčních nabídek @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Vodoznak v návrhu smlouvy (žádný, je-li prázd ##### Members ##### MembersSetup=Nastavení modulu členů MemberMainOptions=Hlavní volby +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Správa Přihlášení pro každého člena AdherentMailRequired=K vytvoření nového člena je třeba e-mail MemberSendInformationByMailByDefault=Zaškrtávací políčko poslat mailem potvrzení členům (validace nebo nové předplatné) je ve výchozím nastavení MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Návštěvník si může vybrat z dostupných způsobů platby +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Povolit automatické připomenutí e-mailem vypršel odběr. Poznámka: Modul %s musí být povolen a správně nastaven pro odeslání připomenutí. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Aktivujte pokročilý editor pro: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG tvorba/vydání pro hromadné eMailings (Nástroje-> eMailing) FCKeditorForUserSignature=WYSIWIG vytvoření / edice uživatelského podpisu FCKeditorForMail=Vytvoření WYSIWIG / edition pro veškerou poštu (s výjimkou Nástroje-> e-mailem) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Ovládání nabídek, kde se má zobrazit nové menu DetailMenuModule=Název modulu, pokud položky nabídky pocházejí z modulu DetailType=Druh nabídky (horní nebo levý) DetailTitre=Menu štítek nebo etiketa kód pro překlad -DetailUrl=URL, kde Nabídka poslat (absolutní URL odkaz nebo externí odkaz s http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Podmínka pro zobrazení nebo ne DetailRight=Podmínka pro zobrazení neoprávněným šedé menu DetailLangs=Lang název souboru pro překlad kódu štítek @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Snižování zásob v POS není kompa CashDeskYouDidNotDisableStockDecease=Při prodeji z prodejního místa jste nezakázali pokles zásob. Proto je nutný sklad. CashDeskForceDecreaseStockLabel=Snížení zásob u dávkových produktů bylo vynuceno. CashDeskForceDecreaseStockDesc=Nejprve se sníží o nejstarší data o jídle a prodeji. -CashDeskReaderKeyCodeForEnter=Klíčový kód pro „Enter“ definovaný ve čtečce čárových kódů (Příklad: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Záložka Nastavení modulu BookmarkDesc=Tento modul umožňuje spravovat záložky. Můžete také přidat odkazy na libovolné stránky Dolibarr nebo externí webové stránky v levém menu. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Číslovací modely faktur dodavatelů IfSetToYesDontForgetPermission=Pokud je nastavena na nenulovou hodnotu, nezapomeňte poskytnout oprávnění skupinám nebo uživatelům povoleným pro druhé schválení ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Nastavení modulu GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Cesta k souboru obsahujícímu Maxmind ip k překladu do země.
    Příklady:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Všimněte si, že Vaše IP do souboru záznamu země musí být uvnitř adresáře si můžete přečíst PHP (PHP open_basedir Zkontrolujte nastavení a oprávnění souborového systému). YouCanDownloadFreeDatFileTo=Zde si můžete stáhnout zdarma demo verzi země GeoIP Maxmind soubor na %s. YouCanDownloadAdvancedDatFileTo=Můžete si také stáhnout úplnější verzi s aktualizací, ze země GeoIP Maxmind soubor na %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Průvodce vytvořením souboru výpisu databáze BackupZipWizard=Průvodce vytvořením adresáře archivů dokumentů SomethingMakeInstallFromWebNotPossible=Instalace externího modulu není možné z webového rozhraní z tohoto důvodu: SomethingMakeInstallFromWebNotPossible2=Z tohoto důvodu je zde popsaný proces upgradu ruční proces, který může provádět pouze privilegovaný uživatel. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Instalace externího modulu z aplikace byla deaktivována správcem. Musíte požádat jej, aby odstranil soubor %s , aby tuto funkci povolil. ConfFileMustContainCustom=Instalace nebo sestavení externího modulu z aplikace vyžaduje uložení souborů modulu do adresáře %s . Chcete-li, aby tento adresář zpracoval Dolibarr, musíte nastavit conf / conf.php a přidat 2 směrné řádky:
    $ dolibarr_main_url_root'alt '/';
    $ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Zvýrazněte řádky tabulky, když pohyb myší projde @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Stisknutím klávesy CTRL + F5 na klávesnici nebo vyma NotSupportedByAllThemes=Se pracuje s stěžejních témat, nemusí být podporována externími tématy BackgroundColor=Barva pozadí TopMenuBackgroundColor=barva pozadí pro Top nabídky -TopMenuDisableImages=Skrýt obrázky v Top nabídky +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=barva pozadí na levé menu BackgroundTableTitleColor=Barva pozadí pro tabulku názvu linky BackgroundTableTitleTextColor=Barva textu pro název řádku tabulky @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Objednávky MailToSendSupplierInvoice=Faktury dodavatele MailToSendContract=Smlouvy MailToSendReception=Recepce +MailToExpenseReport=Výkazy výdajů MailToThirdparty=Subjekty MailToMember=Členové MailToUser=Uživatelé @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Pravý okraj v PDF MAIN_PDF_MARGIN_TOP=Nejvyšší okraj ve formátu PDF MAIN_PDF_MARGIN_BOTTOM=Dolní okraj v PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Odstraňte speciální znaky COMPANY_AQUARIUM_CLEAN_REGEX=Filtr Regex pro vyčištění hodnoty (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtr Regex pro vyčištění hodnoty (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikát není povolen +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Úředník pro ochranu údajů (DPO, ochrana dat nebo kontakt GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Text nápovědy se zobrazí na popisku @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Poznámka: Možnost použít daň z prodeje nebo DPH byla nastave SwapSenderAndRecipientOnPDF=Zaměnit pozici odesílatele a příjemce na dokumentech PDF FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Sběratel e-mailu +EmailCollectors=Email collectors EmailCollectorDescription=Přidejte plánovanou úlohu a stránku s nastavením pro pravidelné skenování poštovních schránek (pomocí protokolu IMAP) a zaznamenávejte e-maily přijaté do vaší aplikace na správném místě a / nebo vytvořte automaticky nějaké záznamy (například potenciální zákazníci). NewEmailCollector=Nový e-mailový sběratel EMailHost=Hostitel poštovního IMAP serveru +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Adresář zdrojové schránky MailboxTargetDirectory=Adresář cílové schránky EmailcollectorOperations=Operace prováděné sběratelem EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Maximální počet e-mailů shromážděných za sběr +TestCollectNow=Test collect CollectNow=Sbírat nyní ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Poslední výsledek EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Potvrzení sběru e-mailu EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Žádné nové e-maily (odpovídající filtry), které chcete zpracovat NothingProcessed=Nic se nestalo -XEmailsDoneYActionsDone=%s e-maily kvalifikovány, %s úspěšně zpracovány emaily (pro %s záznam / akce provedeny) podle sběratele +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Vstupní kód nabídky (hlavní menu) ECMAutoTree=Zobrazit automatický strom ECM -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Otevírací doba OpeningHoursDesc=Zadejte zde běžnou pracovní dobu vaší společnosti. ResourceSetup=Konfigurace modulu zdrojů @@ -2167,6 +2200,10 @@ EmailTemplate=Šablona pro e-mail EMailsWillHaveMessageID=E-maily budou mít značku 'Reference' odpovídající této syntaxi PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Pokud chcete mít ve svém PDF duplikované texty ve 2 různých jazycích ve stejném generovaném PDF, musíte zde nastavit tento druhý jazyk, takže vygenerovaný PDF bude obsahovat 2 různé jazyky na stejné stránce, jeden vybraný při generování PDF a tento ( Podporuje to jen několik šablon PDF). Uchovávejte prázdné po dobu 1 jazyka na PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Sem zadejte kód ikony FontAwesome. Pokud nevíte, co je FontAwesome, můžete použít obecnou hodnotu fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Doporučené NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Nastavení zásob ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Nastavení +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/cs_CZ/categories.lang b/htdocs/langs/cs_CZ/categories.lang index 3d18f628f50..35210a5b2ce 100644 --- a/htdocs/langs/cs_CZ/categories.lang +++ b/htdocs/langs/cs_CZ/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Tento uživatel není v žádném tagu/kategoriích ContactHasNoCategory=Tento kontakt není v žádném tagu/kategorii ProjectHasNoCategory=Tento projekt není v žádném tagu/kategorii ClassifyInCategory=Přidat do tagu/kategorie +RemoveCategory=Remove category NotCategorized=Bez tagu/kategorie CategoryExistsAtSameLevel=Tato kategorie již existuje s tímto čj ContentsVisibleByAllShort=Obsah viditelný všemi @@ -67,6 +68,7 @@ StockCategoriesShort=Značky/kategorie skladů ThisCategoryHasNoItems=Tato kategorie neobsahuje žádné položky. CategId=ID tagu/kategorie ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=Odebrat z tagů/kategorií ExtraFieldsCategories=Doplňkové atributy CategoriesSetup=Nastavení tagů/kategorií CategorieRecursiv=Odkaz na nadřazený tag/kategorii automaticky -CategorieRecursivHelp=Pokud je volba zapnuta, při přidání produktu do podkategorie bude produkt také přidán do nadřazené kategorie. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Přidejte následující produkt/službu AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Zobrazit tag/kategorii ByDefaultInList=Ve výchozím nastavení je v seznamu ChooseCategory=Vyberte kategorii StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/cs_CZ/commercial.lang b/htdocs/langs/cs_CZ/commercial.lang index 6224ac01080..dc52389e96c 100644 --- a/htdocs/langs/cs_CZ/commercial.lang +++ b/htdocs/langs/cs_CZ/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=Poslat přepravu na mail ActionAC_SUP_ORD=Pošlete objednávku e-mailem ActionAC_SUP_INV=Poslat dodavatelské faktury e-mailem ActionAC_OTH=Ostatní -ActionAC_OTH_AUTO=Automaticky vložené události +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Ručně vložené události ActionAC_AUTO=Automaticky vložené události -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Jiný +ActionAC_EVENTORGANIZATION=Event organization events Stats=Prodejní statistiky StatusProsp=Stav cíle DraftPropals=Navrhnout obchodní návrhy NoLimit=No limit ToOfferALinkForOnlineSignature=Odkaz pro podpis online -WelcomeOnOnlineSignaturePage=Vítejte na stránce, abyste přijali komerční návrhy z %s -ThisScreenAllowsYouToSignDocFrom=Tato obrazovka umožňuje přijímat a podepsat nebo odmítnout nabídku/komerční návrh -ThisIsInformationOnDocumentToSign=Toto jsou informace o přijetí nebo odmítnutí dokumentu +WelcomeOnOnlineSignaturePageProposal=Vítejte na stránce, abyste přijali komerční návrhy z %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Tato obrazovka umožňuje přijímat a podepsat nebo odmítnout nabídku/komerční návrh +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Toto jsou informace o přijetí nebo odmítnutí dokumentu +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Podpis nabídky/obchodní nabídky %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Funkce pro podepisování online zakázána nebo dokument byl vygenerovaný dříve, než byla funkce povolena diff --git a/htdocs/langs/cs_CZ/companies.lang b/htdocs/langs/cs_CZ/companies.lang index 97c587ff65e..92768a1b43b 100644 --- a/htdocs/langs/cs_CZ/companies.lang +++ b/htdocs/langs/cs_CZ/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Povaha subjektu NatureOfContact=Povaha kontaktu Address=Adresa State=Stát/Okres +StateId=State ID StateCode=Kód státu / provincie StateShort=Stát Region=Kraj Region-State=Region - stát Country=Země CountryCode=Kód země -CountryId=ID země +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Ostatní ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/cs_CZ/compta.lang b/htdocs/langs/cs_CZ/compta.lang index fc62ddb9e11..686529617e0 100644 --- a/htdocs/langs/cs_CZ/compta.lang +++ b/htdocs/langs/cs_CZ/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Zůstatek (před) Balance=Zůstatek Debit=Debet Credit=Kredit +AccountingDebit=Debet +AccountingCredit=Kredit Piece=Účetnictví Doc. AmountHTVATRealReceived=Čistá částka AmountHTVATRealPaid=Čistá platba @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Odstranit sociální a fiskální platbu daně DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Sociální a fiskální daně a platby CalcModeVATDebt=Režim %sDPH zápočtu na závazky%s. CalcModeVATEngagement=Režim %sDPH z rozšířených příjmů%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Zpráva o tržbách shromá TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Zpráva o tržbách zachycená podle sazby daně z prodeje není k dispozici. Tento přehled je k dispozici pouze pro fakturovaný obrat. CalculationMode=Výpočetní režim AccountancyJournal=Deník účetnických kódů -ACCOUNTING_VAT_SOLD_ACCOUNT=Účtovací účet ve výchozím nastavení pro DPH z prodeje (používá se, pokud není definováno v nastavení slovníku DPH) -ACCOUNTING_VAT_BUY_ACCOUNT=Účtovací účet ve výchozím nastavení pro DPH při nákupu (použitý, pokud není definován v nastavení slovníku DPH) -ACCOUNTING_VAT_PAY_ACCOUNT=Účtovací účet pro platby DPH -ACCOUNTING_ACCOUNT_CUSTOMER=Účtovací účet používaný pro subjekty odběratele +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Účelový účet určený na kartě subjektu bude použit pouze pro účetnictví společnosti Subledger. Ten bude použit pro účet hlavní knihy a jako výchozí hodnotu účtování společnosti Subledger, pokud není definován účet odběratelského účetnictví subjektu. -ACCOUNTING_ACCOUNT_SUPPLIER=Účet účetnictví používaný pro subjekty dodavatele +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Účelový účet určený na kartě subjektu bude použit pouze pro účetnictví společnosti Subledger. Tato položka bude použita pro hlavní účetní knihu a jako výchozí hodnotu účetnictví společnosti Subledger, pokud není definován účet externího účetního dodavatele subjektu. ConfirmCloneTax=Potvrďte klon sociální / daňové daně ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Fakturovaný obrat z nákupu ReportPurchaseTurnoverCollected=Shromážděný obrat z nákupu IncludeVarpaysInResults = Zahrnout různé platby do přehledů IncludeLoansInResults = Zahrnout půjčky do zpráv -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/cs_CZ/contracts.lang b/htdocs/langs/cs_CZ/contracts.lang index f638696bf6d..969de445492 100644 --- a/htdocs/langs/cs_CZ/contracts.lang +++ b/htdocs/langs/cs_CZ/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Smlouvy/Objednávky ContractsAndLine=Smlouvy a řádky smluv Contract=Smlouva ContractLine=řádek smlouvy +ContractLines=Contract lines Closing=Uzavření NoContracts=Žádné smlouvy MenuServices=Služby @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Jste si jisti, že chcete smazat tuto řádku smlouvy? MoveToAnotherContract=Přesuňte službu do jiné smlouvy. ConfirmMoveToAnotherContract=Vybral jste novou cílovou smlouvu, a potvrzujete vlastní krví, že chcete přesunout tuto službu do tohoto smluvního vztahu. ConfirmMoveToAnotherContractQuestion=Vybral jste ze stávajících smluv (z téhož subjektu) tu, na kterou chcete přesunout tuto službu? -PaymentRenewContractId=Obnovit smlouvu na řádku (číslo %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Datum expirace NoExpiredServices=Žádné expirované aktivní služby ListOfServicesToExpireWithDuration=Seznam služeb, které expirují v %s dnů @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Podepsání smlouvy kontakt se zákazn HideClosedServiceByDefault=Ve výchozím nastavení skrýt uzavřené služby ShowClosedServices=Zobrazit uzavřené služby HideClosedServices=Skrýt uzavřené služby +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/cs_CZ/cron.lang b/htdocs/langs/cs_CZ/cron.lang index c80ccf3a33b..fe8ade17b80 100644 --- a/htdocs/langs/cs_CZ/cron.lang +++ b/htdocs/langs/cs_CZ/cron.lang @@ -26,7 +26,7 @@ CronCommand=Příkaz CronList=Naplánované úlohy CronDelete=Smazat naplánované úlohy CronConfirmDelete=Jste si jisti, že chcete odstranit tyto naplánované úlohy? -CronExecute=Spuštění naplánovaných úloh +CronExecute=Launch now CronConfirmExecute=Jste si jisti, že chcete provést tyto naplánované úlohy nyní? CronInfo=Plánovací modul úloh umožňuje naplánovat úlohy, které se mají automaticky spouštět. Práce lze také spustit ručně. CronTask=Práce @@ -58,7 +58,7 @@ CronNote=Komentář CronFieldMandatory=Pole %s je povinné CronErrEndDateStartDt=Datum ukončení nemůže být před datem zahájení StatusAtInstall=Stav při instalaci modulu -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Zakázat CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Chcete-li zobrazit a upravit naplánované úloh JobDisabled=Úloha vypnuta MakeLocalDatabaseDumpShort=Záloha lokální databáze MakeLocalDatabaseDump=Vytvoření výpisu místní databáze. Parametry jsou: komprese ('gz' nebo 'bz' nebo 'none'), zálohovací typ ('mysql', 'pgsql', 'auto'), +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Pozor, pokud jde o výkonnost, bez ohledu na to, co je příštím datem provedení povolených úloh, mohou být vaše úlohy zpožděny maximálně do %s hodin, než budou spuštěny. DATAPOLICYJob=Čistič dat a anonymizér JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/cs_CZ/datapolicy.lang b/htdocs/langs/cs_CZ/datapolicy.lang new file mode 100644 index 00000000000..86620d54a7e --- /dev/null +++ b/htdocs/langs/cs_CZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Zákazník +DATAPOLICY_TIERS_PROSPECT = Cíl +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dodavatel +DATAPOLICY_CONTACT_CLIENT = Zákazník +DATAPOLICY_CONTACT_PROSPECT = Cíl +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dodavatel +DATAPOLICY_ADHERENT = Člen +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/cs_CZ/dict.lang b/htdocs/langs/cs_CZ/dict.lang index 21f4629488c..78b7e9d1fc0 100644 --- a/htdocs/langs/cs_CZ/dict.lang +++ b/htdocs/langs/cs_CZ/dict.lang @@ -21,7 +21,7 @@ CountryNL=Nizozemsko CountryHU=Maďarsko CountryRU=Rusko CountrySE=Švédsko -CountryCI=Ivoiry +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Svatý Martin ##### Civilities ##### CivilityMME=Paní +CivilityMMEShort=Paní CivilityMR=Pan +CivilityMRShort=Pan CivilityMLE=Slečna CivilityMTRE=Hlavní CivilityDR=Lékař diff --git a/htdocs/langs/cs_CZ/ecm.lang b/htdocs/langs/cs_CZ/ecm.lang index d28e1ae4d47..c3e1db73034 100644 --- a/htdocs/langs/cs_CZ/ecm.lang +++ b/htdocs/langs/cs_CZ/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manuální adresář ECMSectionAuto=Automatický adresář ECMSectionsManual=Ruční strom ECMSectionsAuto=Automatický strom +ECMSectionsMedias=Medias tree ECMSections=Adresáře ECMRoot=Kořen ECM ECMNewSection=Nový adresář @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Počet souborů v podadresářích ECMCreationUser=Tvůrce ECMArea=Oblast DMS/ECM ECMAreaDesc=DMS/ECM (Document Management System / Electronic Content Management) umožňuje rychle ukládat, sdílet a vyhledávat všechny dokumenty v Dolibarru. -ECMAreaDesc2=* Automatické adresáře jsou vyplněny automaticky při přidávání dokumentů z karty prvku.
    * Manuální adresáře lze použít k uložení dokladů, které nejsou spojené s konkrétním prvkem. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Rejstřík %s byl vymazán. ECMSectionWasCreated=Adresář %s byl vytvořen. ECMSearchByKeywords=Vyhledávání podle klíčových slov diff --git a/htdocs/langs/cs_CZ/errors.lang b/htdocs/langs/cs_CZ/errors.lang index e530b0dbba3..b802f6b3a92 100644 --- a/htdocs/langs/cs_CZ/errors.lang +++ b/htdocs/langs/cs_CZ/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) ErrorBadUrl=Url %s is incorrect ErrorBadValueForParamNotAString=Špatná hodnota parametru. Připojí se obecně, když chybí překlad. ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Přihlášení %s již existuje. ErrorGroupAlreadyExists=Skupina %s již existuje. ErrorEmailAlreadyExists=Email %s already exists. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name %s already exist ErrorPartialFile=Soubor nebyl korektně poslán serverem ErrorNoTmpDir=Dočasný směr %s neexistuje. ErrorUploadBlockedByAddon=Nahrávání blokováno pluginem PHP / Apache. -ErrorFileSizeTooLarge=Soubor je příliš velký. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Pole %s je příliš dlouhé. ErrorSizeTooLongForIntType=Velikost příliš dlouhá pro typ int (%s číslice maximum) ErrorSizeTooLongForVarcharType=Velikost příliš dlouho typu string (%s znaků maximum) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript nesmí být zakázán, aby tato funkce f ErrorPasswordsMustMatch=Obě zadaná hesla se musí navzájem shodovat. Jinak máte smůlu .... ErrorContactEMail=Došlo k technické chybě. Prosím, kontaktujte administrátora na následující e-mail %s a vložte kód chyby %s ve své zprávě nebo přidejte kopii obrazovky této stránky. ErrorWrongValueForField=Pole %s: %s "neodpovídá pravidlu regexu %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Pole %s : %s "není hodnota nalezená v poli %s z %s ErrorFieldRefNotIn=Pole %s: %s "není stávající reflexe %s ErrorsOnXLines=nalezeny chyby %s @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Váš parametr PHP upload_max_filesize (%s) je vyšší než parametr PHP post_max_size (%s). Toto není konzistentní nastavení. WarningPasswordSetWithNoAccount=Pro tohoto člena bylo nastaveno heslo. Nebyl však vytvořen žádný uživatelský účet. Toto heslo je uloženo, ale nemůže být použito pro přihlášení k Dolibarr. Může být použito externím modulem / rozhraním, ale pokud nemáte pro člena definováno žádné přihlašovací jméno ani heslo, můžete vypnout možnost "Správa přihlášení pro každého člena" z nastavení modulu člena. Pokud potřebujete spravovat přihlašovací údaje, ale nepotřebujete žádné heslo, můžete toto pole ponechat prázdné, abyste se tomuto varování vyhnuli. Poznámka: E-mail může být také použit jako přihlašovací jméno, pokud je člen připojen k uživateli. -WarningMandatorySetupNotComplete=Klikněte zde pro nastavení povinných parametrů +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Kliknutím zde povolíte moduly a aplikace WarningSafeModeOnCheckExecDir=Upozornění: volba PHP safe_mode je taková, že příkaz musí být uložen uvnitř adresáře deklarovaného parametrem php safe_mode_exec_dir . WarningBookmarkAlreadyExists=Záložka s tímto názvem, nebo tento cíl (URL) již existuje. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/cs_CZ/externalsite.lang b/htdocs/langs/cs_CZ/externalsite.lang deleted file mode 100644 index 2a75cea4aa9..00000000000 --- a/htdocs/langs/cs_CZ/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Nastavení odkazu na externí webové stránky -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modul Externí stránky nebyl správně nakonfigurován. -ExampleMyMenuEntry=Moje menu vstup diff --git a/htdocs/langs/cs_CZ/ftp.lang b/htdocs/langs/cs_CZ/ftp.lang deleted file mode 100644 index e2717b25503..00000000000 --- a/htdocs/langs/cs_CZ/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Nastavení modulu FTP klienta -NewFTPClient=Nastavit nové FTP připojení -FTPArea=FTP oblast -FTPAreaDesc=Tato obrazovka zobrazí náhled FTP serveru -SetupOfFTPClientModuleNotComplete=Zdá se že nastavení FTP klienta není kompletní -FTPFeatureNotSupportedByYourPHP=Vaše PHP nepodporuje FTP funkce -FailedToConnectToFTPServer=Nepodařilo se připojit k FTP serveru (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Nepodařilo se přihlásit k FTP serveru pod zadaným uživatelským jménem a heslem -FTPFailedToRemoveFile=Nepodařilo se odstranit soubor %s. -FTPFailedToRemoveDir=Nepodařilo se odstranit adresář %s (Zkontrolujte oprávnění a zda adresář je prázdný). -FTPPassiveMode=Pasivní režim -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/cs_CZ/holiday.lang b/htdocs/langs/cs_CZ/holiday.lang index a295166d4a6..f50dd4560e1 100644 --- a/htdocs/langs/cs_CZ/holiday.lang +++ b/htdocs/langs/cs_CZ/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Listy +Holidays=Leaves +Holiday=Dovolená CPTitreMenu=Dovolená MenuReportMonth=Měsíční výkaz MenuAddCP=Nová žádost o dovolenou +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Chcete-li zobrazit tuto stránku, musíte povolit modul Nechat. AddCP=Požádejte o dovolenou DateDebCP=Datum zahájení @@ -56,6 +58,7 @@ ConfirmDeleteCP=Potvrďit odstranění této žádosti o dovolenou? ErrorCantDeleteCP=Chyba: Nemáte oprávnění smazat tuto žádost o dovolenou. CantCreateCP=Nemáte právo podávat žádosti o dovolenou. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Musíte vybrat počáteční datum. NoDateFin=Musíte vybrat datum ukončení. ErrorDureeCP=Vaše žádost o dovolenou neobsahuje pracovní den. @@ -79,6 +82,8 @@ MotifCP=Důvod UserCP=Uživatel ErrorAddEventToUserCP=Došlo k chybě při přidávání požadavku na výjimečnou dovolenou. AddEventToUserOkCP=Přidání výjimečné dovolené bylo dokončeno. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Zobrazení protokolů změn LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Předchozí zůstatek NewSoldeCP=Nový zůstatek alreadyCPexist=Žádost o dovolenou pro toto období již byla provedena. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Skupiny +users=Uživatelé +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Nejnovější %s upravené žádosti o dovolenou @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/cs_CZ/hrm.lang b/htdocs/langs/cs_CZ/hrm.lang index 36ecad205fc..6d03052933b 100644 --- a/htdocs/langs/cs_CZ/hrm.lang +++ b/htdocs/langs/cs_CZ/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Otevřít zařízení CloseEtablishment=Zavřít zařízení # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Seznam oddělení +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Pracovní pozice # Module Employees=Zaměstnanci @@ -20,13 +20,14 @@ Employee=Zaměstnanec NewEmployee=Nový zaměstnanec ListOfEmployees=List of employees HrmSetup=setup HRM Modul -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Práce -Jobs=Jobs +JobPosition=Práce +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozice -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/cs_CZ/install.lang b/htdocs/langs/cs_CZ/install.lang index 5dae32075f4..7723af4ffbd 100644 --- a/htdocs/langs/cs_CZ/install.lang +++ b/htdocs/langs/cs_CZ/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Konfigurační soubor %s není zapisovatelný. Zk ConfFileIsWritable=Konfigurační soubor %s je zapisovatelný. ConfFileMustBeAFileNotADir=Konfigurační soubor %s musí být soubor, nikoli adresář. ConfFileReload=Znovu načíst parametry z konfiguračního souboru. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Tato PHP instalace podporuje proměnné POST a GET. PHPSupportPOSTGETKo=Je možné, že vaše instalace PHP nepodporuje proměnné POST a/nebo GET. Zkontrolujte parametr variables_order ve Vašem php.ini. PHPSupportSessions=Tato PHP instalace podporuje relace. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Možná jste zadali nesprávnou hodnotu pro parametr ErrorFailedToCreateDatabase=Nepodařilo se vytvořit databázi '%s'. ErrorFailedToConnectToDatabase=Nepodařilo se připojit k databázi '%s'. ErrorDatabaseVersionTooLow=Verze databáze (%s) je příliš stará a vetchá. Je potřeba omladit na verzi databáze alespoň %s. -ErrorPHPVersionTooLow=Tato verze PHP je příliš stará. Verze %s je potřeba. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Připojení k serveru bylo úspěšné, ale databáze '%s' nebyla nalezena. ErrorDatabaseAlreadyExists=Databáze '%s' již existuje. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Pokud databáze neexistuje, vraťte se zpět a zaškrtněte volbu "Vytvořit databázi". IfDatabaseExistsGoBackAndCheckCreate=Pokud databáze již existuje, vraťte se zpět a zrušte zaškrtnutí políčka "Vytvořit databázi". WarningBrowserTooOld=Verze prohlížeče je příliš stará. Aktualizujte prohlížeč na nejnovější verzi. Doporučujeme aplikace Firefox, Chrome nebo Opera. diff --git a/htdocs/langs/cs_CZ/loan.lang b/htdocs/langs/cs_CZ/loan.lang index a4760506519..119e6342ac7 100644 --- a/htdocs/langs/cs_CZ/loan.lang +++ b/htdocs/langs/cs_CZ/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Finanční závazek InterestAmount=Zájem CapitalRemain=Zůstatek kapitálu TermPaidAllreadyPaid = Tento termín je již zaplacen -CantUseScheduleWithLoanStartedToPaid = Nelze použít plánovač pro půjčku se zaplacením +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Pokud používáte plán, nemůžete změnit zájem # Admin ConfigLoan=Konfigurace modulu úvěru -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Účetní účetní kapitál ve výchozím nastavení -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Účetní účetní zájem implicitně -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Účetní účetní pojištění implicitně +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Úprava finančního závazku diff --git a/htdocs/langs/cs_CZ/mailmanspip.lang b/htdocs/langs/cs_CZ/mailmanspip.lang index 7a570e7529d..9c2ac8fc62e 100644 --- a/htdocs/langs/cs_CZ/mailmanspip.lang +++ b/htdocs/langs/cs_CZ/mailmanspip.lang @@ -3,11 +3,11 @@ MailmanSpipSetup=Pošťák a SPIP modul nastavení MailmanTitle=Pošťák mailing list systém TestSubscribe=Chcete-li vyzkoušet předplatné pošťák seznamy TestUnSubscribe=Chcete-li otestovat odhlásit ze seznamu listonoš -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully +MailmanCreationSuccess=Test odběru byl úspěšně proveden +MailmanDeletionSuccess=Test odhlášení byl úspěšně proveden SynchroMailManEnabled=Pošťák aktualizace bude provedena SynchroSpipEnabled=Aktualizace SPIPu bude provedena -DescADHERENT_MAILMAN_ADMINPW=Pošťák heslo správce +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Pošťák heslo správce DescADHERENT_MAILMAN_URL=URL pro pošťáka předplatné DescADHERENT_MAILMAN_UNSUB_URL=URL pro pošťáka unsubscriptions DescADHERENT_MAILMAN_LISTS=Seznam (y) pro automatické nápis nových členů (oddělené čárkou) @@ -23,5 +23,5 @@ DeleteIntoSpip=Smazat z SPIP DeleteIntoSpipConfirmation=Jste si jisti, že chcete odstranit tohoto člena z SPIP? DeleteIntoSpipError=Nepodařilo se potlačit uživateli SPIP SPIPConnectionFailed=Nepodařilo se připojit k SPIPu -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +SuccessToAddToMailmanList=%s úspěšně přidáno do mailman listu %s nebo databáze SPIP +SuccessToRemoveToMailmanList=%s byl úspěšně odstraněn z mailman listu %s nebo databáze SPIP diff --git a/htdocs/langs/cs_CZ/mails.lang b/htdocs/langs/cs_CZ/mails.lang index 8341a08ceae..53cf8879162 100644 --- a/htdocs/langs/cs_CZ/mails.lang +++ b/htdocs/langs/cs_CZ/mails.lang @@ -7,10 +7,10 @@ MailCard=E-mailová karta MailRecipients=Příjemci MailRecipient=Příjemce MailTitle=Popis -MailFrom=Odesílatel +MailFrom=Z MailErrorsTo=Chyby MailReply=Odpovědět -MailTo=Příjemce(i) +MailTo=Na MailToUsers=Uživateli (uživatelům) MailCC=Kopírovat do MailToCCUsers=Kopírovat uživatele (e) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index 6b8b2ce6f07..77d27372595 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Pro tento typ e-mailu není k dispozici žádná šablona AvailableVariables=K dispozici substituční proměnné NoTranslation=Překlad není Translation=Překlad +Translations=Translations CurrentTimeZone=Časové pásmo PHP (server) EmptySearchString=Zadejte neprázdná kritéria vyhledávání EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Platný Approve=Schvalovat Disapprove=Neschváleno ReOpen=Znovu otevřít +OpenVerb=Otevřeno Upload=Nahrát ToLink=Odkaz Select=Vybrat @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Žádná uživatelská skupina není definována Password=Heslo -PasswordRetype=Zadejte znovu heslo +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Všimněte si, že v této demonstraci je mnoho funkcí / modulů zakázáno. Name=Název NameSlashCompany=Název / společnost @@ -244,6 +252,7 @@ Designation=Popis DescriptionOfLine=Popis řádku DateOfLine=Datum řádku DurationOfLine=Doba trvání řádku +ParentLine=Parent line ID Model=doc šablona DefaultModel=Výchozí šablona doc Action=Událost @@ -344,7 +353,7 @@ KiloBytes=Kilobajty MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabajtů -UserAuthor=Ceated by +UserAuthor=Vytvořil UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Události pro tento kontakt / adresu ActionsOnContract=Události pro tuto smlouvu ActionsOnMember=Akce u tohoto uživatele ActionsOnProduct=Události týkající se tohoto produktu +ActionsOnAsset=Events for this fixed asset NActionsLate=%s pozdě ToDo=Dělat Completed=Dokončeno @@ -517,6 +527,7 @@ or=nebo Other=Ostatní Others=Ostatní OtherInformations=Jiná informace +Workflow=Workflow Quantity=Množství Qty=Množství ChangedBy=Změnil @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Přiložené soubory a dokumenty JoinMainDoc=Připojte se k hlavnímu dokumentu +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Funkce vypnuta MoveBox=Přesun widgetu Offered=Nabízené NotEnoughPermissions=Nemáte oprávnění pro tuto akci +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Název relace Method=Metoda Receive=Přijmout @@ -798,6 +811,7 @@ URLPhoto=URL obrázku/loga SetLinkToAnotherThirdParty=Odkaz na jiný subjekt LinkTo=odkaz na LinkToProposal=Odkaz na návrh +LinkToExpedition= Link to expedition LinkToOrder=Odkaz na objednávku LinkToInvoice=Odkaz na fakturu LinkToTemplateInvoice=Odkaz na fakturu šablony @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Stažení DownloadDocument=Stáhnout dokument +DownloadSignedDocument=Download signed document ActualizeCurrency=Aktualizovat měnovou sazbu Fiscalyear=Fiskální rok ModuleBuilder=Tvůrce modulů a aplikací @@ -1041,6 +1056,7 @@ SearchIntoContracts=Smlouvy SearchIntoCustomerShipments=zásilky zákazník SearchIntoExpenseReports=Zpráva výdajů SearchIntoLeaves=Listy +SearchIntoKM=Knowledge base SearchIntoTickets=Vstupenky SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Platby dodavatele @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Pozdržen Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Sazba +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=přerušit +Terminated=ukončený +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interní uživatel +ExternalUser=Externí uživatel diff --git a/htdocs/langs/cs_CZ/members.lang b/htdocs/langs/cs_CZ/members.lang index fb676cc5c93..968cd40320b 100644 --- a/htdocs/langs/cs_CZ/members.lang +++ b/htdocs/langs/cs_CZ/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Další člen (jméno: %s, p ErrorUserPermissionAllowsToLinksToItselfOnly=Z bezpečnostních důvodů musíte mít oprávnění k úpravě všech uživatelů, abyste mohli člena propojit s uživatelem, který není vaším. SetLinkToUser=Odkaz na uživateli Dolibarr SetLinkToThirdParty=Odkaz na Dolibarr subjektu +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Seznam členů MembersListToValid=Seznam členů návrhu (bude ověřeno) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ID člena +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Nový člen MemberType=Členské typ MemberTypeId=Členské typ id @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Typ člena nelze smazat NewSubscription=Nový příspěvek NewSubscriptionDesc=Tento formulář umožňuje zaznamenat vaše předplatné jako nový člen nadace. Chcete-li obnovit předplatné (pokud je již členem), kontaktujte nadační místo místo e-mailem %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Trvání +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Pozdě SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Obsah Vaší členské karty # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Chceme vám oznámit, že vaše žádost o členství byla přijata.

    ThisIsContentOfYourMembershipWasValidated=Chtěli bychom vás informovat, že vaše členství bylo ověřeno s následujícími informacemi:

    -ThisIsContentOfYourSubscriptionWasRecorded=Chceme vám oznámit, že vaše nové předplatné bylo zaznamenáno.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Chceme vám oznámit, že vaše předplatné má brzy skončit nebo již uplynula (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Doufáme, že jej obnovíte.

    ThisIsContentOfYourCard=Toto je shrnutí informací, které máme o vás. Pokud něco není správné, kontaktujte nás.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Předmět oznámení o přijetí v případě automatického zapisování hosta @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Obrat (pro firmu), nebo rozpočet (pro nadaci) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Přejít na integrované on-line platební stránky +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Od přírody MembersStatisticsByProperties=Statistika členů podle charakteru VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/cs_CZ/modulebuilder.lang b/htdocs/langs/cs_CZ/modulebuilder.lang index 2a3a143f2d5..d5c30ff53c8 100644 --- a/htdocs/langs/cs_CZ/modulebuilder.lang +++ b/htdocs/langs/cs_CZ/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Cesta, kde jsou moduly generovány/editovány (první adresář pro externí moduly definované v %s): %s ModuleBuilderDesc3=Generované / upravitelné moduly nalezené: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Modul je detekován jako "upravitelný", když soubor %s ? Tím se změní kód ve třídě PHP, ale také odstraníme sloupec z definice tabulky objektu. NotNull=Ne NULL záznam NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Je to opatření DirScanned=Adresář naskenován NoTrigger=Žádný spouštěč NoWidget=Žádný widget -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=Seznam položek menu ListOfDictionariesEntries=Seznam položek slovníků ListOfPermissionsDefined=Seznam definovaných oprávnění SeeExamples=Viz příklady zde -EnabledDesc=Podmínka, aby bylo toto pole aktivní (příklady: 1 nebo $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Je pole viditelné? (Příklady: 0 = Nikdy neviditelné, 1 = Viditelné v seznamu a vytvářet/aktualizovat/prohlížet formuláře, 2 = Viditelné pouze v seznamu, 3 = Viditelné pouze při vytváření/aktualizaci/zobrazit formulář (není v seznamu), 4 = Viditelné v seznamu a pouze formulář aktualizace/zobrazení (nevytvářet), 5 = viditelné pouze ve formuláři pro prohlížení koncových zobrazení (nevytvářet, neaktualizovat).

    Použití záporné hodnoty znamená, že pole není ve výchozím nastavení zobrazeno v seznamu, ale může být vybráno pro zobrazení).

    Může to být výraz, například:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Zobrazit v PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Může být hodnota pole kumulativní, aby se dostala do seznamu celkem? (Příklady: 1 nebo 0) SearchAllDesc=Používá se pole pro vyhledávání pomocí nástroje rychlého vyhledávání? (Příklady: 1 nebo 0) SpecDefDesc=Zadejte zde veškerou dokumentaci, kterou chcete poskytnout s modulem, která ještě nebyla definována jinými kartami. Můžete použít .md nebo lepší, bohatou syntaxi .asciidoc. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Použijte specifickou adresu URL editoru UseSpecificFamily = Použijte konkrétní rodinu UseSpecificAuthor = Použijte specifického autora UseSpecificVersion = Použijte specifickou počáteční verzi -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Pokud toto zaškrtnete, bude vygenerován nějaký kód pro přidání pole „Generovat dokument“ do záznamu. -ShowOnCombobox=Zobrazit hodnotu do komboboxu +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Klíč pro popis CSSClass=CSS for edit/create form CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Nelze upravovat ForeignKey=Cizí klíč -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Převodník ASCII na HTML AsciiToPdfConverter=Převodník ASCII na PDF TableNotEmptyDropCanceled=Tabulka není prázdná. Odstranění tabulky bylo zrušeno. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/cs_CZ/mrp.lang b/htdocs/langs/cs_CZ/mrp.lang index de13de20ca1..d8dfd0b2157 100644 --- a/htdocs/langs/cs_CZ/mrp.lang +++ b/htdocs/langs/cs_CZ/mrp.lang @@ -11,8 +11,8 @@ Bom=Účty materiálu BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Nastavení kusovníku modulu BOM -ListOfBOMs=Seznam kusovníků - kusovník -ListOfManufacturingOrders=Seznam výrobních objednávek +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Výrobní zakázky NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=Šablony číslování kusovníku @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Opravdu chcete klonovat výrobní objednávku %s? ManufacturingEfficiency=Účinnost výroby ConsumptionEfficiency=Účinnost spotřeby +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Hodnota 0,95 znamená průměrně ztrátu vyrobeného produktu ve výši 5%% DeleteBillOfMaterials=Odstranit kusovník @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Opravdu chcete ověřit tuto výrobní objednávku? ConfirmProductionDesc=Kliknutím na '%s' potvrdíte spotřebu a / nebo výrobu pro nastavená množství. Tím se také aktualizuje pohyb zásob a zaznamenávají se pohyby zásob. ProductionForRef=Výroba %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Pokud je dosaženo množství, které je třeba spotřebovat a vyrobit, uzavře se automaticky výrobní objednávka NoStockChangeOnServices=Žádná změna zásob u služeb ProductQtyToConsumeByMO=Množství produktu, které je třeba spotřebovat otevřeným MO @@ -80,6 +83,7 @@ ProductsToProduce=Výrobky k výrobě UnitCost=Jednotková cena TotalCost=Celkové náklady BOMTotalCost=Náklady na výrobu tohoto kusovníku na základě nákladů na každé spotřebované množství a produkt (použijte cenu Cena, pokud je definována, jinak průměrná vážená cena, pokud je definována, jinak nejlepší kupní cena) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/cs_CZ/oauth.lang b/htdocs/langs/cs_CZ/oauth.lang index 5614a4a4139..07ffdd493ac 100644 --- a/htdocs/langs/cs_CZ/oauth.lang +++ b/htdocs/langs/cs_CZ/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Token byl generován a uložen do lokální databáze NewTokenStored=Token přijat a uložen ToCheckDeleteTokenOnProvider=Klikněte zde pro kontrolu / odstranění oprávnění uloženého zprostředkovatelem %s OAuth TokenDeleted=Token byl smazán -RequestAccess=Kliknutím sem můžete požádat/obnovit přístup a obdržet nový token, který chcete uložit +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Klikněte zde pro smazání tokenu UseTheFollowingUrlAsRedirectURI=Při vytváření pověření u poskytovatele OAuth použijte následující adresu URL jako URI přesměrování: -ListOfSupportedOauthProviders=Zadejte zde pověření poskytnuté poskytovatelem OAuth2. Zde jsou zobrazena pouze podporovaní poskytovatelé OAuth2. Toto nastavení mohou používat jiné moduly, které potřebují ověření OAuth2. -OAuthSetupForLogin=Page pro vygenerování tokenu OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Viz předchozí tabulka +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID a tajemství TOKEN_REFRESH=Token obnovit přítomnost TOKEN_EXPIRED=Token vypršel @@ -23,10 +24,13 @@ TOKEN_DELETE=Odstranění uloženého tokenu OAUTH_GOOGLE_NAME=O službě Google OAuth OAUTH_GOOGLE_ID=ID Google Oauth OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Přejděte na tuto stránku a potom na pověření pro vytvoření pověření OAuth OAUTH_GITHUB_NAME=Služba Oauth GitHub OAUTH_GITHUB_ID=ID Oauth GitHub OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Přejděte na tuto stránku a pak na "Registrace nové aplikace" pro vytvoření pověření Oauth +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang index d0657a03dde..2a69f917379 100644 --- a/htdocs/langs/cs_CZ/other.lang +++ b/htdocs/langs/cs_CZ/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Objednávka byla schválena Notify_ORDER_SUPPLIER_REFUSE=Objednávka byla odepřena Notify_PROPAL_VALIDATE=Nabídka zákazníka ověřena Notify_PROPAL_CLOSE_SIGNED=Návrh zákazníka byl uzavřen +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Návrh zákazníka byl zamítnut +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Komerční návrh zaslán e-mailem Notify_WITHDRAW_TRANSMIT=Stažení převodu Notify_WITHDRAW_CREDIT=Stažení kreditu @@ -181,6 +183,7 @@ SizeUnitfoot=stopa SizeUnitpoint=bod BugTracker=Hlášení chyb SendNewPasswordDesc=Tento formulář umožňuje požádat o nové heslo. Bude zaslán na vaši e-mailovou adresu.
    Změna se projeví až po kliknutí na potvrzovací odkaz v e-mailu.
    Zkontrolujte doručenou poštu. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Zpět na přihlašovací stránku AuthenticationDoesNotAllowSendNewPassword=Režim ověřování je %s.
    V tomto režimu Dolibarr nepozná, zda může změnit vaše heslo.
    Obraťte se na správce systému, pokud chcete heslo změnit. EnableGDLibraryDesc=Nainstalujte nebo povolte GD knihovnu ve vaší PHP pro využití této možnosti @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Faktura %s byla ověřena. EMailTextInvoicePayed=Faktura %s byla zaplacena. EMailTextProposalValidated=Návrh %s byl ověřen. EMailTextProposalClosedSigned=Návrh %s byl uzavřen podepsán. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Objednávka %s byla ověřena. EMailTextOrderApproved=Objednávka %s byla schválena. EMailTextOrderValidatedBy=Objednávka %s byla zaznamenána %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zavřít Autofill = Autofill + +# externalsite +ExternalSiteSetup=Nastavení odkazu na externí webové stránky +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Modul Externí stránky nebyl správně nakonfigurován. +ExampleMyMenuEntry=Moje menu vstup + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Nepodařilo se odstranit soubor %s. +FTPFailedToRemoveDir=Nepodařilo se odstranit adresář %s : zkontrolujte oprávnění a že je adresář prázdný. +FTPPassiveMode=Pasivní režim +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/cs_CZ/products.lang b/htdocs/langs/cs_CZ/products.lang index 0643566beb6..75f4e5d34a3 100644 --- a/htdocs/langs/cs_CZ/products.lang +++ b/htdocs/langs/cs_CZ/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Jste si jisti, že chcete smazat tuto produktovou řadu ProductSpecial=Speciální QtyMin=Min. nákupní množství PriceQtyMin=Cena min. -PriceQtyMinCurrency=Cena (měna) pro toto množství. (žádná sleva) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=DPH (pro tento prodejce / produkt) DiscountQtyMin=Sleva pro tento počet. NoPriceDefinedForThisSupplier=Pro tento dodavatel / produkt není definována žádná cena / množství @@ -261,7 +262,7 @@ Quarter1=I. čtvrtletí Quarter2=II čtvrtletí Quarter3=III čtvrtletí Quarter4=IV čtvrtletí -BarCodePrintsheet=tisk čárových kódů +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Pomocí tohoto nástroje můžete tisknout listy samolepek čárových kódů. Vyberte formát stránky štítku, typ čárového kódu a hodnotu čárového kódu, poté klikněte na tlačítko %s . NumberOfStickers=Počet samolepek k tisku na stránce PrintsheetForOneBarCode=Vytiskněte několik štítků pro jeden čárový kód @@ -344,9 +345,9 @@ PossibleValues=Možné hodnoty GoOnMenuToCreateVairants=Přejděte do nabídky %s - %s a připravte varianty atributů (například barvy, velikost, ...) UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers ProductSupplierDescription=Popis dodavatele produktu -UseProductSupplierPackaging=Použijte obaly na dodavatelské ceny (při přidávání / aktualizaci řádku v dodavatelských dokumentech přepočítávejte množství podle balení stanoveného na dodavatelskou cenu) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Obal -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Množství linky bylo přepočítáno podle obalu dodavatele #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Akce je k dispozici pouze u varianty výrobk ProductsPricePerCustomer=Ceny produktů na zákazníky ProductSupplierExtraFields=Další atributy (dodavatelské ceny) DeleteLinkedProduct=Odstraňte podřízený produkt spojený s kombinací -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Vážená průměrná cena PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/cs_CZ/projects.lang b/htdocs/langs/cs_CZ/projects.lang index d175d94ba51..1d631bb6343 100644 --- a/htdocs/langs/cs_CZ/projects.lang +++ b/htdocs/langs/cs_CZ/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Tento pohled zobrazuje všechny projekty a úkoly které máte o TasksDesc=Tento pohled zobrazuje všechny projekty a úkoly (vaše uživatelské oprávnění vám umožňuje vidět vše). AllTaskVisibleButEditIfYouAreAssigned=Všechny úkoly pro kvalifikované projekty jsou viditelné, ale můžete zadat čas pouze pro úkoly přiřazené vybranému uživateli. Přiřazení úlohy, pokud potřebujete zadat čas. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Úkoly projektů ProjectCategories=Štítky projektu / kategorie NewProject=Nový projekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Počet otevřených projektů podle stavu OpportunitiesStatusForProjects=Počet projektů podle stavu ShowProject=Zobrazit projekt ShowTask=Zobrazit úkol +SetThirdParty=Set third party SetProject=Nastavit projekt +OutOfProject=Out of project NoProject=Žádný projekt nedefinován či vlastněn NbOfProjects=Počet projektů NbOfTasks=Počet úkolů @@ -122,7 +125,8 @@ ValidateProject=Ověřit projekt ConfirmValidateProject=Opravdu chcete tento projekt ověřit? CloseAProject=Zavřít projekt ConfirmCloseAProject=Jste si jisti, že chcete ukončit tento projekt? -AlsoCloseAProject=Také blízko projektu (udržujte jej otevřený, pokud stále potřebujete sledovat výrobní úkoly na něm) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Otevřít projekt ConfirmReOpenAProject=Jste si jisti, že chcete znovu otevřít tento projekt? ProjectContact=Kontakty na projektu @@ -165,7 +169,7 @@ OpportunityProbability=Pravděpodobnost vedení OpportunityProbabilityShort=Odevzdání probabu. OpportunityAmount=množství příležitostí OpportunityAmountShort=množství příležitostí -OpportunityWeightedAmount=Vážená částka příležitosti +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. vážené množství OpportunityAmountAverageShort=Průměrná výše vedení OpportunityAmountWeigthedShort=Vážená částka @@ -238,7 +242,7 @@ OppStatusPENDING=Čeká OppStatusWON=Vyhrál OppStatusLOST=Ztracený Budget=Rozpočet -AllowToLinkFromOtherCompany=Povolit propojení projektu s jinou firmou

    Podporované hodnoty:
    - Udržovat prázdné: Může propojit jakýkoli projekt společnosti (výchozí)
    - "all": Může propojit jakýkoli projekt, dokonce i projekty jiných firem
    - identifikátory třetích stran oddělené čárkami: lze propojit všechny projekty těchto třetích stran (Příklad: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Nejnovější projekty %s LatestModifiedProjects=Nejnovější %smodifikované projekty OtherFilteredTasks=Další filtrované úkoly @@ -259,7 +263,7 @@ TimeSpentInvoiced=Čas strávený účtováním TimeSpentForIntervention=Strávený čas TimeSpentForInvoice=Strávený čas OneLinePerUser=Jeden řádek na uživatele -ServiceToUseOnLines=Služba pro použití na tratích +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Faktura %s byla vygenerována z času stráveného na projektu InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Zkontrolujte, zda zadáváte časový rozvrh úkolů projektu A máte v úmyslu vygenerovat faktury z časového rozvrhu, abyste fakturovali zákazníkovi projektu (nekontrolujte, zda máte v úmyslu vytvořit fakturu, která není založena na zadaných časových rozvrzích). Poznámka: Chcete-li vygenerovat fakturu, přejděte na kartu „Čas strávený“ projektu a vyberte řádky, které chcete zahrnout. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Zisk se vypočítá pomocí AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/cs_CZ/propal.lang b/htdocs/langs/cs_CZ/propal.lang index fa142eba82f..e100ebcd17c 100644 --- a/htdocs/langs/cs_CZ/propal.lang +++ b/htdocs/langs/cs_CZ/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Žádné návrhy nabídek CopyPropalFrom=Vytvořit obchodní nabídku zkopírováním existující nabídky CreateEmptyPropal=Vytvoření prázdného komerčního návrhu nebo ze seznamu produktů / služeb DefaultProposalDurationValidity=Doba platnosti výchozí obchodní nabídky (ve dnech) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Použijte kontakt / adresu s typem "Návrh na další kontakt", pokud je definována namísto adresy subjektu jako adresy příjemce návrhu ConfirmClonePropal=Jste si jisti, že chcete kopírovat obchodní nabídku %s ? ConfirmReOpenProp=Jste si jisti, že chcete otevřít zpět obchodní nabídku %s ? @@ -64,36 +65,54 @@ AvailabilityPeriod=Dostupné zpoždění SetAvailability=Nastavte si dostupné zpoždění AfterOrder=po objednání OtherProposals=Další nabídky + ##### Availability ##### AvailabilityTypeAV_NOW=Bezprostřední AvailabilityTypeAV_1W=1 týden AvailabilityTypeAV_2W=2 týdny AvailabilityTypeAV_3W=3 týdny AvailabilityTypeAV_1M=1 měsíc -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Zástupce následující vypracované nabídky TypeContact_propal_external_BILLING=Fakturační kontakt zákazníka TypeContact_propal_external_CUSTOMER=Kontakt se zákazníkem pro následující vypracované nabídky TypeContact_propal_external_SHIPPING=Zákaznický kontakt pro doručení + # Document models -DocModelAzurDescription=Kompletní návrhový model (stará implementace azurové šablony) -DocModelCyanDescription=Kompletní návrhový model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Případ následovaný +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Výchozí šablona při uzavírání obchodní nabídky (nevyfakturované) DefaultModelPropalCreate=Tvorba z výchozí šablony DefaultModelPropalToBill=Výchozí šablona při uzavírání obchodní nabídky (bude se fakturovat) -DefaultModelPropalClosed=Výchozí šablona při uzavírání obchodní nabídky (nevyfakturované) +DocModelAzurDescription=Kompletní návrhový model (stará implementace azurové šablony) +DocModelCyanDescription=Kompletní návrhový model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odmítnout +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Písemný souhlas, razítko firmy, datum a podpis ProposalsStatisticsSuppliers=Statistika návrhů dodavatelů -CaseFollowedBy=Případ následovaný -SignedOnly=Podepsáno pouze -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Podepsáno pouze diff --git a/htdocs/langs/cs_CZ/recruitment.lang b/htdocs/langs/cs_CZ/recruitment.lang index 745df2ae9f8..96d3a9b9b17 100644 --- a/htdocs/langs/cs_CZ/recruitment.lang +++ b/htdocs/langs/cs_CZ/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Mzda +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/cs_CZ/salaries.lang b/htdocs/langs/cs_CZ/salaries.lang index 06a31c700c0..9ef5ab93164 100644 --- a/htdocs/langs/cs_CZ/salaries.lang +++ b/htdocs/langs/cs_CZ/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Účtovací účet používaný pro třetí strany -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Účelový účet určený na uživatelské kartě bude použit pouze pro účetnictví společnosti Subledger. Ten bude použit pro hlavní knihu a jako výchozí hodnota účtování společnosti Subledger, pokud není určen uživatelský účtovací účet pro uživatele. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Účtovací účet je výchozí pro mzdové platby CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Mzda @@ -24,3 +24,4 @@ SalariesStatistics=Statistika platů SalariesAndPayments=Platy a platby ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/cs_CZ/stocks.lang b/htdocs/langs/cs_CZ/stocks.lang index a6f36bf31fe..9592bd4fe29 100644 --- a/htdocs/langs/cs_CZ/stocks.lang +++ b/htdocs/langs/cs_CZ/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Limit zásob pro výstrahu a požadovanou optimáln ProductStockWarehouseUpdated=Limit zásob pro výstrahu a požadovanou optimální zásobu byl správně aktualizován ProductStockWarehouseDeleted=Limit zásob pro výstrahu a požadovanou optimální zásobu jsou správně odstraněny AddNewProductStockWarehouse=Nastavit nový limit pro pohotovosti a požadovanou optimální zásoby -AddStockLocationLine=Snižte množství a klikněte na tlačítko Přidat další sklad pro tento produkt +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Datum inventáře Inventories=Zásoby NewInventory=Nový inventář @@ -254,7 +254,7 @@ ReOpen=Znovu otevřeno ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Začínáme ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Nastavení +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/cs_CZ/ticket.lang b/htdocs/langs/cs_CZ/ticket.lang index 5994bc6752a..b121180eab7 100644 --- a/htdocs/langs/cs_CZ/ticket.lang +++ b/htdocs/langs/cs_CZ/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Smazat vstupenky Permission56004=Správa vstupenek Permission56005=Viz vstupenky všech subjektů (neplatí pro externí uživatele, vždy se omezují na subjekt, na který se vztahují) +Tickets=Vstupenky TicketDictType=Vstupenka - Typy TicketDictCategory=Vstupenka - skupiny TicketDictSeverity=Vstupenka - závažnosti @@ -90,8 +91,8 @@ TicketPublicAccess=Veřejné rozhraní nevyžadující identifikaci je k dispozi TicketSetupDictionaries=Typ vstupenky, závažnosti a analytické kódy lze konfigurovat ze slovníků TicketParamModule=Nastavení proměnné modulu TicketParamMail=Nastavení e-mailu -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Textová zpráva odeslaná po vytvoření vstupenky @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Zde zadaný text bude vložen do e-mailu s potvrzením vy TicketParamPublicInterface=Nastavení veřejného rozhraní TicketsEmailMustExist=Chcete-li vytvořit letenku, požadujte existující e-mailovou adresu TicketsEmailMustExistHelp=Ve veřejném rozhraní musí být e-mailová adresa již vyplněna v databázi, aby se vytvořil nový lístek +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Veřejné rozhraní TicketUrlPublicInterfaceLabelAdmin=Alternativní adresa URL pro veřejné rozhraní TicketUrlPublicInterfaceHelpAdmin=Je možné definovat alias na webovém serveru a zpřístupnit tak veřejné rozhraní s jinou adresou URL (server musí na této nové adrese URL fungovat jako proxy server) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Vstupenka je nyní přiřazena TicketChangeType=Změnit typ TicketChangeCategory=Změňte analytický kód TicketChangeSeverity=Změnit závažnost -TicketAddMessage=přidat zprávu -AddMessage=přidat zprávu +TicketAddMessage=Add private message MessageSuccessfullyAdded=Přidána vstupenka TicketMessageSuccessfullyAdded=Zpráva byla úspěšně přidána TicketMessagesList=Seznam zpráv @@ -202,8 +206,8 @@ TicketSeverity=Vážnost ShowTicket=Viz lístek RelatedTickets=Související vstupenky TicketAddIntervention=Vytvořit intervenci -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Potvrďte uzavření lístku ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Poslat zprávu e-mailem TicketNewMessage=Nová zpráva ErrorMailRecipientIsEmptyForSendTicketMessage=Příjemce je prázdný. Neposílat žádné e-maily TicketGoIntoContactTab=Přejděte na kartu Kontakty a vyberte je -TicketMessageMailIntro=Úvod +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Tento text bude přidán pouze na začátek e-mailu a nebude uložen. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Podpis -TicketMessageMailSignatureHelp=Tento text je přidán pouze na konci e-mailu a nebude uložen. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Podpis e-mailu s odpovědí -TicketMessageMailSignatureHelpAdmin=Tento text bude vložen za zprávu s odpovědí. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Tento text bude vložen za zprávu s odpovědí. TicketMessageHelp=Pouze tento text bude uložen do seznamu zpráv na kartě lístků. TicketMessageSubstitutionReplacedByGenericValues=Substituční proměnné jsou nahrazeny obecnými hodnotami. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Čas uplynul od TicketTimeToRead=Čas uplynul před čtením TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Nová zpráva byla zveřejněna na l TicketAssignedToYou=Lístek přiřazen TicketAssignedEmailBody=Byl vám přidělen lístek # %s by %s MarkMessageAsPrivate=Označit zprávu jako soukromou +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Tato zpráva se nezobrazí externím uživatelům TicketEmailOriginIssuer=Emitent při vzniku jízdenek InitialMessage=Počáteční zpráva @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Průběh vstupenky můžete zobrazit v k TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Neodpovídejte prosím přímo na tento e-mail! Pomocí odkazu odpovíte do rozhraní. TicketPublicInfoCreateTicket=Tento formulář vám umožňuje zaznamenat si lístek podpory v našem systému řízení. -TicketPublicPleaseBeAccuratelyDescribe=Popište prosím problém přesně. Poskytněte co nejvíce informací, abychom mohli správně identifikovat váš požadavek. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Zadejte ID sledování trasy TicketTrackId=ID veřejného sledování OneOfTicketTrackId=Jedno z vašich ID sledování diff --git a/htdocs/langs/cs_CZ/users.lang b/htdocs/langs/cs_CZ/users.lang index ac1ac080612..bfc589bed06 100644 --- a/htdocs/langs/cs_CZ/users.lang +++ b/htdocs/langs/cs_CZ/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Odstranit ze skupiny PasswordChangedAndSentTo=Heslo změněno a poslán na %s. PasswordChangeRequest=Požadavek na změnu hesla pro %s PasswordChangeRequestSent=Žádost o změnu hesla %s zaslána na %s. -IfLoginExistPasswordRequestSent=Pokud je toto přihlášení platným účtem, byl zaslán e-mail k obnovení hesla. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Pokud je tento e-mail platným účtem, byl zaslán e-mail k obnovení hesla. ConfirmPasswordReset=Potvrďte resetování hesla MenuUsersAndGroups=Uživatelé a skupiny @@ -68,7 +68,6 @@ CreateDolibarrLogin=Vytvoření uživatele CreateDolibarrThirdParty=Vytvořit třetí stranu LoginAccountDisableInDolibarr=Účet byl zakázán v Dolibarr. UsePersonalValue=Používejte osobní hodnotu -InternalUser=Interní uživatel ExportDataset_user_1=Uživatelé a jejich vlastnosti DomainUser=Doménový uživatel %s Reactivate=Reaktivace @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang index a5c50c6b52a..f4e5557457d 100644 --- a/htdocs/langs/cs_CZ/website.lang +++ b/htdocs/langs/cs_CZ/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kód +WebsiteName=Name of the website WebsiteSetupDesc=Vytvořte zde webové stránky, které chcete používat. Poté přejděte do nabídky Webové stránky a upravte je. DeleteWebsite=Odstranit web ConfirmDeleteWebsite=Opravdu chcete tento web odstranit? Všechny její stránky a obsah budou také odstraněny. Nahrané soubory (jako do adresáře médií, modul ECM, ...) zůstanou. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Přidání v dolní části hlavičky HTML (společné pro v WEBSITE_ROBOT=Soubor pro roboty (soubor robots.txt) WEBSITE_HTACCESS=Soubor .htaccess WEBSITE_MANIFEST_JSON=Soubor manifest.json webové stránky -WEBSITE_README=Soubor README.md WEBSITE_KEYWORDSDesc=Hodnoty oddělte čárkou -EnterHereLicenseInformation=Sem zadejte metadata nebo licenční informace a vyplňte soubor README.md. Pokud distribuujete svůj web jako šablonu, bude soubor zahrnut do temptátového balíčku. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Záhlaví HTML (pouze pro tuto stránku) PageNameAliasHelp=Název nebo alias stránky.
    Tento alias je také používán k vytvoření adresy URL při běhu webových stránek z virtuálního hostitele webového serveru (jako Apacke, Nginx, ...). Pomocí tlačítka " %s " upravte tento alias. EditTheWebSiteForACommonHeader=Poznámka: Pokud chcete definovat osobní hlavičku pro všechny stránky, upravte záhlaví na úrovni webu namísto na stránce / kontejneru. @@ -42,10 +43,12 @@ ViewPageInNewTab=Zobrazit stránku v nové kartě SetAsHomePage=Nastavit jako domovskou stránku RealURL=real URL ViewWebsiteInProduction=Pohled webové stránky s použitím domácí adresy URL +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Použit Apache / Nginx / ...
    vytvořit na svůj webový server (Apache, Nginx, ...) a vyhrazený virtuálního hostitele s PHP povoleno a Kořenový adresář na
    %s ExampleToUseInApacheVirtualHostConfig=Příklad použití v nastavení virtuálního hostitele Apache: YouCanAlsoTestWithPHPS=  Použití s vloženým serverem PHP
    Při vývoji prostředí můžete upřednostňovat testování webu pomocí integrovaného webového serveru PHP (PHP 5.5 vyžadováno) spuštěním
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Provozujte svůj web s jiným poskytovatelem hostingu Dolibarr
    Pokud nemáte webový server jako Apache nebo NGinx dostupný na internetu, můžete exportovat a importovat webový server na jinou instanci Dolibarr poskytovanou jiným poskytovatelem hostingu Dolibarr. integrace s modulem webových stránek. Seznam některých poskytovatelů hostingu Dolibarr najdete na https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=Číst WritePerm=Zápis @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Zdrojový kód HTML můžete upravit pomocí tlač YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Pro obraz sdílený pomocí sdíleného odkazu (otevřený přístup pomocí klíče sdílení hash souboru) je syntaxe:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    Další příklady HTML nebo dynamického kódu jsou k dispozici na wiki dokumentaci
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Klonovat stránku / kontejner CloneSite=Kopie stránky SiteAdded=Webová stránka byla přidána @@ -137,7 +140,7 @@ PagesRegenerated=%s regenerováno stránky / kontejnery RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/cs_CZ/withdrawals.lang b/htdocs/langs/cs_CZ/withdrawals.lang index 53775d8a6f1..ee329984fbf 100644 --- a/htdocs/langs/cs_CZ/withdrawals.lang +++ b/htdocs/langs/cs_CZ/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Faktura dodavatele čekající na platbu převode InvoiceWaitingWithdraw=Faktura čeká na inkaso InvoiceWaitingPaymentByBankTransfer=Faktura čeká na převod peněz AmountToWithdraw=Částka výběru +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=Neexistuje žádná otevřená faktura pro „%s“. Na kartě faktury přejděte na kartu „%s“ a požádejte o ni. -NoSupplierInvoiceToWithdraw=Čeká dodavatelská faktura s otevřeným „přímým požadavkem na kredit“. Na kartě faktury přejděte na kartu „%s“ a požádejte o ni. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odpovědný uživatel WithdrawalsSetup=Nastavení platby inkasem CreditTransferSetup=Nastavení úhrady @@ -41,6 +42,7 @@ CreditTransferStatistics=Statistiky převodů Rejects=Odmítnuto LastWithdrawalReceipt=Poslední %s přímého inkasa debetní MakeWithdrawRequest=Zadejte žádost o platbu inkasem +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Proveďte žádost o převod WithdrawRequestsDone=%s zaznamenané žádosti o inkaso BankTransferRequestsDone=%s credit transfer requests recorded @@ -99,8 +101,11 @@ CreditDate=Kredit na WithdrawalFileNotCapable=Nelze generovat soubor výběru příjmu pro vaši zemi %s (Vaše země není podporována) ShowWithdraw=Zobrazit příkaz k inkasu IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Pokud však na faktuře dosud nebyl zpracován alespoň jeden příkaz k inkasu, nebude nastavena jako zaplacená, aby bylo možné provést předchozí výběr. -DoStandingOrdersBeforePayments=Na této kartě můžete požádat o příkaz k inkasu. Po dokončení přejděte do nabídky Bank-> Platba inkasem a vygenerujte a spravujte příkaz k inkasu. Když je příkaz k inkasu uzavřen, platby na fakturách budou automaticky zaznamenány a faktury uzavřeny, pokud je zbývající částka k platbě nulová. -DoCreditTransferBeforePayments=Tato karta umožňuje vyžádat si příkaz k úhradě. Po dokončení přejděte do nabídky Bank-> Platba převodem, abyste vygenerovali a spravovali příkaz k úhradě. Když je příkaz k úhradě uzavřen, bude automaticky zaznamenána platba na fakturách a faktury uzavřeny, pokud je zbývající částka k platbě nulová. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Debit order file CreditTransferFile=Credit transfer file SetToStatusSent=Nastavte na stav "Odeslaný soubor" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Nelze vytvořit inkasa Žádost o prázdnou hodnot SepaMandate=Mandát přímého inkasa SEPA SepaMandateShort=SEPA Mandát PleaseReturnMandate=Prosím, vraťte tento mandát formulář poštou na adresu %s nebo poštou na adresu -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Identifikátor věřitele CreditorName=Název věřitele SEPAFillForm=(B) Vyplňte prosím všechna pole označená * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Datum provedení CreateForSepa=Vytvořte soubor s inkasem ICS=Creditor Identifier - ICS +IDS=Debitor Identifier END_TO_END="EndToEndId" SEPA XML tag - jedinečný identifikátor přiřazený ke každé transakci USTRD="Nestrukturovaná" značka SEPA XML ADDDAYS=Přidání dnů do data provedení @@ -154,3 +160,4 @@ ErrorICSmissing=Missing ICS in Bank account %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/cs_CZ/workflow.lang b/htdocs/langs/cs_CZ/workflow.lang index 4348c679b87..df5523148a6 100644 --- a/htdocs/langs/cs_CZ/workflow.lang +++ b/htdocs/langs/cs_CZ/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatické vytvoření objednávky prodej descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automaticky vytvořit zákaznickou fakturu po podpisu obchodního návrhu (nová faktura bude mít stejnou částku jako návrh) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou faktury poté, co smlouva byla ověřena descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automaticky vytvořit zákaznickou fakturu po uzavření prodejní objednávky (nová faktura bude mít stejnou částku jako objednávka) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Zařadit návrh propojeného zdroje jako fakturovaný, když je objednávka prodeje nastavena na fakturaci (a pokud je výše objednávky shodná s celkovou částkou podepsaného propojeného návrhu) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Zařadit návrh propojeného zdroje jako fakturovaný při potvrzení faktury zákazníka (a pokud je částka faktury shodná s celkovou částkou podepsaného propojeného návrhu) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Zařadit propojenou prodejní descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Zařadit propojenou prodejní objednávku jako fakturovanou, když je zákaznická faktura nastavena jako zaplacená (a pokud je částka faktury shodná s celkovou částkou propojené objednávky) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasifikujte propojenou prodejní objednávku dodávanou při ověření zásilky (a pokud je množství odeslané všemi zásilkami stejné jako v aktualizovaném pořadí) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Označte návrh dodavatele propojeného zdroje jako fakturovaný při validaci dodavatele (a pokud je částka faktury shodná s celkovou částkou propojeného návrhu) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Zařadit propojenou objednávku zdroje jako fakturovanou fakturaci dodavatele (a pokud je částka faktury shodná s celkovou částkou propojené objednávky) -descWORKFLOW_BILL_ON_RECEPTION=Po ověření objednávky propojeného dodavatele klasifikujte recepce na „účtované“ +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Když je lístek uzavřen, ukončete všechny zásahy spojené s lístkem AutomaticCreation=Automatická tvorba AutomaticClassification=Automatická klasifikace # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/cy_GB/accountancy.lang b/htdocs/langs/cy_GB/accountancy.lang index 9f202fe0a9b..bdaa125540b 100644 --- a/htdocs/langs/cy_GB/accountancy.lang +++ b/htdocs/langs/cy_GB/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Gwledydd nad ydynt yn y CEE CountriesInEECExceptMe=Gwledydd yn EEC ac eithrio %s CountriesExceptMe=Pob gwlad ac eithrio %s AccountantFiles=Allforio dogfennau ffynhonnell -ExportAccountingSourceDocHelp=Gyda'r offeryn hwn, gallwch allforio'r digwyddiadau ffynhonnell (rhestr mewn CSV a PDFs) a ddefnyddir i gynhyrchu eich cyfrifyddiaeth. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=I allforio eich dyddlyfrau, defnyddiwch y cofnod dewislen %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Gweld yn ôl cyfrif cyfrifeg VueBySubAccountAccounting=Gweld trwy isgyfrif cyfrifo @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Prif gyfrif cyfrifo ar gyfer gwerthwyr heb ei MainAccountForUsersNotDefined=Prif gyfrif cyfrifo ar gyfer defnyddwyr heb ei ddiffinio yn y gosodiad MainAccountForVatPaymentNotDefined=Prif gyfrif cyfrifo ar gyfer taliad TAW heb ei ddiffinio yn y gosodiad MainAccountForSubscriptionPaymentNotDefined=Prif gyfrif cyfrifo ar gyfer taliad tanysgrifiad heb ei ddiffinio yn y gosodiad +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Maes cyfrifo AccountancyAreaDescIntro=Gwneir defnydd o'r modiwl cyfrifeg mewn sawl cam: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Analluogi cofnodi trafodion yn uniongyrchol yn y cyfri ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Galluogi allforio drafft ar y dyddlyfr ACCOUNTANCY_COMBO_FOR_AUX=Galluogi rhestr combo ar gyfer cyfrif atodol (gall fod yn araf os oes gennych lawer o drydydd parti, torri'r gallu i chwilio ar ran o werth) ACCOUNTING_DATE_START_BINDING=Diffinio dyddiad i ddechrau rhwymo a throsglwyddo mewn cyfrifyddiaeth. O dan y dyddiad hwn, ni fydd y trafodion yn cael eu trosglwyddo i gyfrifeg. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Wrth drosglwyddo cyfrifyddiaeth, dewiswch y cyfnod dangos yn ddiofyn +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Gwerthu dyddlyfr -ACCOUNTING_PURCHASE_JOURNAL=Dyddiadur prynu -ACCOUNTING_MISCELLANEOUS_JOURNAL=Dyddlyfr amrywiol +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Cyfnodolyn adroddiad treuliau -ACCOUNTING_SOCIAL_JOURNAL=Cylchgrawn cymdeithasol +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Mae ganddo Newyddiadur newydd +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Cylchgrawn cymdeithasol ACCOUNTING_RESULT_PROFIT=Cyfrif cyfrifo canlyniad (Elw) ACCOUNTING_RESULT_LOSS=Cyfrif cyfrifo canlyniad (Colled) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Dyddiadur cau -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cyfrif cyfrifo trosglwyddiad banc trosiannol +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Cyfrif trosglwyddo banc trosiannol -ACCOUNTING_ACCOUNT_SUSPENSE=Cyfrif cyfrif o aros -DONATION_ACCOUNTINGACCOUNT=Cyfrif cyfrifo i gofrestru rhoddion -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cyfrif cyfrif i gofrestru tanysgrifiadau +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Cyfrif cyfrifo yn ddiofyn i gofrestru blaendal cwsmer -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y cynhyrchion a brynwyd (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen cynnyrch) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y cynhyrchion a brynwyd yn EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen cynnyrch) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y cynhyrchion a brynwyd ac a fewnforiwyd allan o EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen cynnyrch) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y cynhyrchion a werthwyd (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen cynnyrch) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y cynhyrchion a werthir yn EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen cynnyrch) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y cynhyrchion a werthir ac a allforiwyd allan o EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen cynnyrch) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y gwasanaethau a brynwyd (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen gwasanaeth) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y gwasanaethau a brynwyd yn EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen gwasanaeth) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y gwasanaethau a brynwyd ac a fewnforiwyd allan o EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen gwasanaeth) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y gwasanaethau a werthwyd (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen gwasanaeth) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y gwasanaethau a werthir yn EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen gwasanaeth) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer y gwasanaethau a werthwyd ac a allforiwyd allan o EEC (a ddefnyddir os nad yw wedi'i ddiffinio yn y daflen gwasanaeth) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Math o ddogfen Docdate=Dyddiad @@ -211,7 +217,7 @@ Codejournal=Dyddlyfr JournalLabel=Label cyfnodolyn NumPiece=Rhif y darn TransactionNumShort=Rhif. trafodiad -AccountingCategory=Grŵp personol +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Grwpio yn ôl cyfrif cyfriflyfr cyffredinol GroupBySubAccountAccounting=Grwpio yn ôl cyfrif subledger AccountingAccountGroupsDesc=Gallwch ddiffinio yma rai grwpiau o gyfrifon cyfrifeg. Cânt eu defnyddio ar gyfer adroddiadau cyfrifyddu personol. @@ -265,13 +271,13 @@ Reconcilable=Cymodi TotalVente=Cyfanswm trosiant cyn treth TotalMarge=Cyfanswm yr elw gwerthiant -DescVentilCustomer=Ymgynghorwch yma â'r rhestr o linellau anfonebau cwsmeriaid sydd wedi'u rhwymo (neu beidio) i gyfrif cyfrifyddu cynnyrch -DescVentilMore=Yn y rhan fwyaf o achosion, os ydych chi'n defnyddio cynhyrchion neu wasanaethau wedi'u diffinio ymlaen llaw a'ch bod chi'n gosod rhif y cyfrif ar y cerdyn cynnyrch/gwasanaeth, bydd y cais yn gallu gwneud yr holl rwymiad rhwng llinellau eich anfoneb a chyfrif cyfrifo eich siart o gyfrifon, dim ond yn un clic gyda'r botwm "%s" . Os na osodwyd cyfrif ar gardiau cynnyrch/gwasanaeth neu os oes gennych rai llinellau heb eu rhwymo i gyfrif o hyd, bydd yn rhaid i chi wneud rhwymiad â llaw o'r ddewislen " %s ". -DescVentilDoneCustomer=Ymgynghorwch yma â'r rhestr o'r llinellau anfonebau cwsmeriaid a'u cyfrif cyfrifo cynnyrch -DescVentilTodoCustomer=Rhwymo llinellau anfoneb nad ydynt eisoes wedi'u rhwymo â chyfrif cyfrifyddu cynnyrch -ChangeAccount=Newidiwch y cyfrif cyfrifo cynnyrch/gwasanaeth ar gyfer llinellau dethol gyda'r cyfrif cyfrifo canlynol: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Ymgynghorwch yma â'r rhestr o linellau anfonebau gwerthwr sydd wedi'u rhwymo neu heb eu rhwymo eto i gyfrif cyfrifyddu cynnyrch (dim ond cofnod nad yw eisoes wedi'i drosglwyddo mewn cyfrifyddiaeth sydd i'w weld) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Ymgynghorwch yma â'r rhestr o linellau anfonebau gwerthwyr a'u cyfrif cyfrifyddu DescVentilTodoExpenseReport=Rhwymo llinellau adroddiad treuliau nad ydynt eisoes wedi'u rhwymo â chyfrif cyfrifo ffioedd DescVentilExpenseReport=Ymgynghorwch yma â'r rhestr o linellau adrodd ar dreuliau sydd wedi'u rhwymo (neu ddim) i gyfrif cyfrifyddu ffioedd @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Os ydych chi'n gosod cyfrif cyfrifyddu ar y math o l DescVentilDoneExpenseReport=Ymgynghorwch yma â'r rhestr o linellau adroddiadau treuliau a'u cyfrif cyfrifo ffioedd Closure=Cau blynyddol -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Dilysu a chloi cofnod... +ValidateMovements=Validate and lock movements... DescValidateMovements=Gwaherddir unrhyw newid neu ddileu ysgrifen, llythrennau a dileadau. Rhaid dilysu pob cynnig ar gyfer ymarfer neu ni fydd cau yn bosibl ValidateHistory=Rhwymo'n Awtomatig AutomaticBindingDone=Cwblhawyd rhwymiadau awtomatig (%s) - Nid yw rhwymo awtomatig yn bosibl ar gyfer rhywfaint o gofnod (%s) -ErrorAccountancyCodeIsAlreadyUse=Gwall, ni allwch ddileu'r cyfrif cyfrifo hwn oherwydd ei fod yn cael ei ddefnyddio +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Cydbwyso FicheVentilation=Cerdyn rhwymo GeneralLedgerIsWritten=Ysgrifennir trafodion yn y Cyfriflyfr GeneralLedgerSomeRecordWasNotRecorded=Ni ellid newyddiadura rhai o'r trafodion. Os nad oes unrhyw neges gwall arall, mae'n debyg mai'r rheswm am hyn yw eu bod eisoes wedi'u newyddiaduron. NoNewRecordSaved=Dim mwy o gofnod i'w drosglwyddo -ListOfProductsWithoutAccountingAccount=Rhestr o gynhyrchion nad ydynt wedi'u rhwymo i unrhyw gyfrif cyfrifyddu +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Newid y rhwymiad Accounted=Cyfrifir yn y cyfriflyfr NotYetAccounted=Heb ei drosglwyddo eto i gyfrifeg @@ -319,9 +325,10 @@ AccountingJournalType1=Gweithrediadau amrywiol AccountingJournalType2=Gwerthiant AccountingJournalType3=Pryniannau AccountingJournalType4=Banc -AccountingJournalType5=Adroddiad treuliau +AccountingJournalType5=Expense reports AccountingJournalType8=Stocrestr AccountingJournalType9=Wedi-newydd +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Mae'r cyfnodolyn hwn eisoes yn cael ei ddefnyddio AccountingAccountForSalesTaxAreDefinedInto=Nodyn: Diffinnir cyfrif cyfrifo ar gyfer treth Gwerthiant yn y ddewislen %s - %s a09a4b73zf NumberOfAccountancyEntries=Nifer y cofnodion @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Nifer y symudiadau ACCOUNTING_DISABLE_BINDING_ON_SALES=Analluogi rhwymo a throsglwyddo cyfrifyddiaeth ar werthiannau (ni fydd anfonebau cwsmeriaid yn cael eu hystyried wrth gyfrifo) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Analluogi rhwymo a throsglwyddo cyfrifyddiaeth ar bryniannau (ni fydd anfonebau gwerthwr yn cael eu hystyried wrth gyfrifo) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Analluogi rhwymo a throsglwyddo cyfrifon ar adroddiadau treuliau (ni fydd adroddiadau gwariant yn cael eu hystyried wrth gyfrifo) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Baner llinellau wedi'u hallforio fel Allforiwyd (i addasu llinell, bydd angen i chi ddileu'r trafodiad cyfan a'i ail-drosglwyddo i gyfrifeg) -NotifiedValidationDate=Dilysu a chloi'r cofnodion a allforiwyd (yr un effaith â'r nodwedd "Cau", YN BENDERFYNOL ni fydd addasu a dileu'r llinellau yn bosibl) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Dyddiad dilysu a chlo ConfirmExportFile=Cadarnhad o gynhyrchu'r ffeil allforio cyfrifo ? ExportDraftJournal=Allforio cyfnodolyn drafft @@ -398,7 +407,11 @@ Calculated=Wedi'i gyfrifo Formula=Fformiwla ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Mae' AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Cofnodion cyfrifeg @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Cod aml-arian (Dyfeisio) DateExport=Dyddiad allforio WarningReportNotReliable=Rhybudd, nid yw'r adroddiad hwn yn seiliedig ar y Cyfriflyfr, felly nid yw'n cynnwys trafodiad a addaswyd â llaw yn y Cyfriflyfr. Os yw eich cyfnodolyn yn gyfredol, mae'r olwg cadw cyfrifon yn fwy cywir. ExpenseReportJournal=Cyfnodolyn Adroddiad Treuliau -InventoryJournal=Cylchgrawn Stocrestr NAccounts=%s cyfrifon diff --git a/htdocs/langs/cy_GB/admin.lang b/htdocs/langs/cy_GB/admin.lang index 6cb3ad74653..f0647ba6bcb 100644 --- a/htdocs/langs/cy_GB/admin.lang +++ b/htdocs/langs/cy_GB/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Coladu cleient WarningModuleNotActive=Rhaid galluogi modiwl %s WarningOnlyPermissionOfActivatedModules=Dim ond caniatadau sy'n ymwneud â modiwlau actifedig a ddangosir yma. Gallwch actifadu modiwlau eraill yn y dudalen Cartref-> Gosod-> Modiwlau. DolibarrSetup=Gosod neu uwchraddio Dolibarr -InternalUser=Defnyddiwr mewnol -ExternalUser=Defnyddiwr allanol InternalUsers=Defnyddwyr mewnol ExternalUsers=Defnyddwyr allanol UserInterface=Rhyngwyneb defnyddiwr @@ -109,7 +107,7 @@ NextValueForReplacements=Gwerth nesaf (amnewidiadau) MustBeLowerThanPHPLimit=Sylwch: ar hyn o bryd mae eich ffurfwedd PHP yn cyfyngu ar uchafswm maint y ffeiliau i'w llwytho i fyny i %s %s, waeth beth fo gwerth y paramedr hwn NoMaxSizeByPHPLimit=Nodyn: Nid oes terfyn wedi'i osod yn eich ffurfwedd PHP MaxSizeForUploadedFiles=Maint mwyaf ar gyfer ffeiliau sydd wedi'u llwytho i fyny (0 i wrthod unrhyw uwchlwythiad) -UseCaptchaCode=Defnyddiwch god graffigol (CAPTCHA) ar y dudalen mewngofnodi +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Llwybr llawn i orchymyn gwrthfeirws AntiVirusCommandExample=Enghraifft ar gyfer ClamAv Daemon (angen clamav-daemon): /usr/bin/clamdscan
    Enghraifft ar gyfer ClamWin (araf iawn): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Mwy o baramedrau ar y llinell orchymyn @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Gwesteiwr SMTP/SMTPS (gwerth diofyn yn php.ini: %s %s
    ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Mae e-bost a ddefnyddir ar gyfer gwall yn dychwelyd e-byst (meysydd 'Gwallau-I' mewn e-byst a anfonwyd) MAIN_MAIL_AUTOCOPY_TO= Copïwch (Bcc) yr holl negeseuon e-bost a anfonwyd at MAIN_DISABLE_ALL_MAILS=Analluogi anfon pob e-bost (at ddibenion prawf neu demos) @@ -439,8 +438,10 @@ Unique=Unigryw Boolean=Boolean (un blwch ticio) ExtrafieldPhone = Ffon ExtrafieldPrice = Pris +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Ebost ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Dewiswch restr ExtrafieldSelectList = Dewiswch o'r tabl ExtrafieldSeparator=Gwahanydd (nid maes) @@ -477,7 +478,7 @@ InstalledInto=Wedi'i osod yn y cyfeiriadur %s BarcodeInitForThirdparties=Init cod bar torfol ar gyfer trydydd parti BarcodeInitForProductsOrServices=Init cod bar torfol neu ailosod ar gyfer cynhyrchion neu wasanaethau CurrentlyNWithoutBarCode=Ar hyn o bryd, mae gennych %s cofnod ar %s a0a65d071f6fc9fz0 barcode diffiniedig. -InitEmptyBarCode=Gwerth cychwynnol ar gyfer cofnodion gwag %s nesaf +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Dileu holl werthoedd cod bar cyfredol ConfirmEraseAllCurrentBarCode=Ydych chi'n siŵr eich bod am ddileu'r holl werthoedd cod bar cyfredol? AllBarcodeReset=Mae holl werthoedd cod bar wedi'u dileu @@ -501,10 +502,11 @@ WarningPHPMail=RHYBUDD: Mae'r gosodiad i anfon e-byst o'r rhaglen yn defnyddio'r WarningPHPMailA=- Mae defnyddio gweinydd y Darparwr Gwasanaeth E-bost yn cynyddu dibynadwyedd eich e-bost, felly mae'n cynyddu'r gallu i'w gyflwyno heb gael ei nodi fel SPAM WarningPHPMailB=- Nid yw rhai Darparwyr Gwasanaeth E-bost (fel Yahoo) yn caniatáu ichi anfon e-bost o weinydd arall yn hytrach na'u gweinydd eu hunain. Mae eich gosodiad presennol yn defnyddio gweinydd y rhaglen i anfon e-bost ac nid gweinydd eich darparwr e-bost, felly bydd rhai derbynwyr (yr un sy'n gydnaws â'r protocol DMARC cyfyngol), yn gofyn i'ch darparwr e-bost a allant dderbyn eich e-bost a rhai darparwyr e-bost Efallai y bydd (fel Yahoo) yn ymateb "na" oherwydd nad yw'r gweinydd yn perthyn iddynt, felly mae'n bosibl na fydd ychydig o'r E-byst a anfonwyd gennych yn cael eu derbyn i'w hanfon (byddwch yn ofalus hefyd o gwota anfon eich darparwr e-bost). WarningPHPMailC=- Mae defnyddio gweinydd SMTP eich Darparwr Gwasanaeth E-bost eich hun i anfon e-byst hefyd yn ddiddorol felly bydd yr holl negeseuon e-bost a anfonir o'r cais hefyd yn cael eu cadw yn eich cyfeiriadur "Anfonwyd" o'ch blwch post. -WarningPHPMailD=Hefyd, argymhellir felly newid y dull anfon e-byst i'r gwerth "SMTP". Os ydych chi wir eisiau cadw'r dull "PHP" rhagosodedig i anfon e-byst, anwybyddwch y rhybudd hwn, neu gwaredwch ef trwy osod y MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP yn gyson i 1 yn y Cartref - Gosod - Arall. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Os oes angen i'ch darparwr SMTP e-bost gyfyngu cleient e-bost i rai cyfeiriadau IP (prin iawn), dyma gyfeiriad IP yr asiant defnyddiwr post (MUA) ar gyfer eich cais CRM ERP: %s . WarningPHPMailSPF=Os yw'r enw parth yn eich cyfeiriad e-bost anfonwr wedi'i warchod gan gofnod SPF (gofynnwch i'ch cofrestrydd enw parth), rhaid i chi ychwanegu'r IPs canlynol yng nghofnod SPF DNS eich parth: %s . -ActualMailSPFRecordFound=Darganfuwyd cofnod SPF gwirioneddol : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Cliciwch i ddangos disgrifiad DependsOn=Mae angen y modiwl(au) ar y modiwl hwn RequiredBy=Mae angen y modiwl hwn yn ôl modiwl(au) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Enghraifft:
    Ar gyfer y ffurflen i greu PageUrlForDefaultValuesList=
    Enghraifft:
    Ar gyfer y dudalen sy'n rhestru trydydd parti, mae'n %s .
    Ar gyfer URL modiwlau allanol sydd wedi'u gosod mewn cyfeiriadur personol, peidiwch â chynnwys y "custom/" felly defnyddiwch lwybr fel mymodule/mypagelist.php ac nid custom/mymodule/mypagelist.php.
    Os ydych chi eisiau gwerth rhagosodedig dim ond os oes gan url rywfaint o baramedr, gallwch ddefnyddio %s AlsoDefaultValuesAreEffectiveForActionCreate=Sylwch hefyd fod trosysgrifo gwerthoedd rhagosodedig ar gyfer creu ffurflenni yn gweithio dim ond ar gyfer tudalennau sydd wedi'u dylunio'n gywir (felly gyda gweithred paramedr = creu neu ragflaenu...) EnableDefaultValues=Galluogi addasu gwerthoedd rhagosodedig -EnableOverwriteTranslation=Galluogi defnydd o gyfieithiad trosysgrifedig +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Mae cyfieithiad wedi'i ganfod ar gyfer yr allwedd gyda'r cod hwn. I newid y gwerth hwn, rhaid i chi ei olygu o Home-Setup-translation. WarningSettingSortOrder=Rhybudd, gall gosod trefn ddidoli ddiofyn arwain at wall technegol wrth fynd ar dudalen y rhestr os yw'r maes yn faes anhysbys. Os ydych chi'n profi gwall o'r fath, dewch yn ôl i'r dudalen hon i ddileu'r drefn didoli rhagosodedig ac adfer ymddygiad rhagosodedig. Field=Maes @@ -645,9 +647,9 @@ Module2400Name=Digwyddiadau/Agenda Module2400Desc=Traciwch ddigwyddiadau. Logio digwyddiadau awtomatig at ddibenion olrhain neu gofnodi digwyddiadau neu gyfarfodydd â llaw. Dyma'r prif fodiwl ar gyfer Rheoli Perthynas Cwsmer neu Werthwr yn dda. Module2500Name=DMS / ECM Module2500Desc=System Rheoli Dogfennau / Rheoli Cynnwys Electronig. Trefniadaeth awtomatig o'ch dogfennau a gynhyrchir neu a storiwyd. Rhannwch nhw pan fo angen. -Module2600Name=API/Gwasanaethau gwe (gweinydd SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Galluogi gweinydd SOAP Dolibarr sy'n darparu gwasanaethau API -Module2610Name=API/Gwasanaethau gwe (gweinydd REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Galluogi gweinydd REST Dolibarr sy'n darparu gwasanaethau API Module2660Name=Ffoniwch WebServices (cleient SOAP) Module2660Desc=Galluogi cleient gwasanaethau gwe Dolibarr (Gellir ei ddefnyddio i wthio data/ceisiadau i weinyddion allanol. Dim ond archebion Prynu sy'n cael eu cefnogi ar hyn o bryd.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Ychwanegu nodweddion i reoli Incoterms Module63000Name=Adnoddau Module63000Desc=Rheoli adnoddau (argraffwyr, ceir, ystafelloedd, ...) ar gyfer dyrannu i ddigwyddiadau +Module94160Name=Receptions Permission11=Darllenwch anfonebau cwsmeriaid Permission12=Creu/addasu anfonebau cwsmeriaid Permission13=Annilysu anfonebau cwsmeriaid @@ -714,6 +717,7 @@ Permission27=Dileu cynigion masnachol Permission28=Cynigion masnachol allforio Permission31=Darllen cynhyrchion Permission32=Creu/addasu cynhyrchion +Permission33=Read prices products Permission34=Dileu cynhyrchion Permission36=Gweld/rheoli cynhyrchion cudd Permission38=Cynnyrch allforio @@ -739,6 +743,7 @@ Permission79=Creu/addasu tanysgrifiadau Permission81=Darllenwch archebion cwsmeriaid Permission82=Creu/addasu archebion cwsmeriaid Permission84=Dilysu archebion cwsmeriaid +Permission85=Generate the documents sales orders Permission86=Anfon archebion cwsmeriaid Permission87=Cau archebion cwsmeriaid Permission88=Canslo archebion cwsmeriaid @@ -840,9 +845,9 @@ Permission286=Allforio cysylltiadau Permission291=Darllen tariffau Permission292=Gosod caniatadau ar y tariffau Permission293=Addasu tariffau cwsmeriaid -Permission300=Darllen codau bar -Permission301=Creu/addasu codau bar -Permission302=Dileu codau bar +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Darllen gwasanaethau Permission312=Neilltuo gwasanaeth/tanysgrifiad i gontract Permission331=Darllenwch nodau tudalen @@ -874,6 +879,7 @@ Permission525=Cyfrifiannell benthyciad mynediad Permission527=Benthyciadau allforio Permission531=Darllen gwasanaethau Permission532=Creu/addasu gwasanaethau +Permission533=Read prices services Permission534=Dileu gwasanaethau Permission536=Gweld/rheoli gwasanaethau cudd Permission538=Gwasanaethau allforio @@ -968,13 +974,14 @@ Permission3301=Cynhyrchu modiwlau newydd Permission4001=Darllen sgil/swydd/swydd Permission4002=Creu/addasu sgil/swydd/swydd Permission4003=Dileu sgil/swydd/swydd -Permission4020=Darllenwch werthusiadau -Permission4021=Creu/addasu eich gwerthusiad -Permission4022=Dilysu gwerthusiad -Permission4023=Dileu gwerthusiad -Permission4030=Gweler y ddewislen cymharu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Darllenwch gynnwys y wefan Permission10002=Creu/addasu cynnwys gwefan (cynnwys html a javascript) Permission10003=Creu/addasu cynnwys gwefan (cod php deinamig). Peryglus, rhaid ei gadw i ddatblygwyr cyfyngedig. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Math o waredu asedau TypeOfUnit=Math o uned SetupSaved=Gosodiad wedi'i gadw SetupNotSaved=Nid yw'r gosodiad wedi'i gadw +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Yn ôl i'r rhestr modiwlau BackToDictionaryList=Yn ôl i'r rhestr Geiriaduron TypeOfRevenueStamp=Math o stamp treth @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Gwerth cysonyn cyfluniad ConstantIsOn=Mae opsiwn %s ymlaen NbOfDays=Nifer y dyddiau AtEndOfMonth=Ar ddiwedd y mis -CurrentNext=Cyfredol/Nesaf +CurrentNext=A given day in month Offset=Gwrthbwyso AlwaysActive=Bob amser yn weithgar Upgrade=Uwchraddio @@ -1235,11 +1246,13 @@ BrowserName=Enw porwr BrowserOS=Porwr OS ListOfSecurityEvents=Rhestr o ddigwyddiadau diogelwch Dolibarr SecurityEventsPurged=Cael gwared ar ddigwyddiadau diogelwch +TrackableSecurityEvents=Trackable security events LogEventDesc=Galluogi logio ar gyfer digwyddiadau diogelwch penodol. Gweinyddwyr y log trwy ddewislen %s - %s . Rhybudd, gall y nodwedd hon gynhyrchu llawer iawn o ddata yn y gronfa ddata. AreaForAdminOnly=Gall paramedrau gosod gael eu gosod gan ddefnyddwyr gweinyddwr yn unig. SystemInfoDesc=Mae gwybodaeth system yn wybodaeth dechnegol amrywiol a gewch yn y modd darllen yn unig ac yn weladwy i weinyddwyr yn unig. SystemAreaForAdminOnly=Mae'r maes hwn ar gael i ddefnyddwyr gweinyddwyr yn unig. Ni all hawliau defnyddwyr Dolibarr newid y cyfyngiad hwn. CompanyFundationDesc=Golygu gwybodaeth eich cwmni/sefydliad. Cliciwch ar y botwm "%s" ar waelod y dudalen pan fydd wedi'i wneud. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Os oes gennych gyfrifydd/ceidwad llyfrau allanol, gallwch olygu'r wybodaeth yma. AccountantFileNumber=Cod cyfrifydd DisplayDesc=Gellir addasu paramedrau sy'n effeithio ar edrychiad a chyflwyniad y cais yma. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Rhaid i chi redeg y gorchymyn h YourPHPDoesNotHaveSSLSupport=Nid yw swyddogaethau SSL ar gael yn eich PHP DownloadMoreSkins=Mwy o grwyn i'w lawrlwytho SimpleNumRefModelDesc=Yn dychwelyd y rhif cyfeirnod yn y fformat %syymm-nnnn lle mai ie yw'r flwyddyn, mm yw'r mis ac nnnn yn rhif awto-cynnydd dilyniannol heb unrhyw ailosodiad +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Yn dychwelyd y rhif cyfeirnod yn y fformat %s-nnnn lle mae nnnn yn rhif awto-gynnydd dilyniannol heb unrhyw ailosodiad ShowProfIdInAddress=Dangos ID proffesiynol gyda chyfeiriadau ShowVATIntaInAddress=Cuddio rhif TAW o fewn y Gymuned @@ -1376,7 +1391,7 @@ GetBarCode=Cael cod bar NumberingModules=Modelau rhifo DocumentModules=Modelau dogfen ##### Module password generation -PasswordGenerationStandard=Dychwelyd cyfrinair a gynhyrchwyd yn unol ag algorithm mewnol Dolibarr: %s nodau sy'n cynnwys rhifau a rennir a nodau mewn llythrennau bach. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Peidiwch ag awgrymu cyfrinair a gynhyrchir. Rhaid teipio cyfrinair â llaw. PasswordGenerationPerso=Dychwelwch gyfrinair yn ôl eich cyfluniad personol. SetupPerso=Yn ôl eich cyfluniad @@ -1430,6 +1445,10 @@ SuppliersPayment=Taliadau gwerthwr SupplierPaymentSetup=Gosod taliadau gwerthwr InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Gosod modiwlau cynigion masnachol ProposalsNumberingModules=Modelau rhifo cynigion masnachol @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Dyfrnod ar gontractau drafft (dim os yn wag) ##### Members ##### MembersSetup=Gosod modiwl aelodau MemberMainOptions=Prif opsiynau +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Rheoli Mewngofnodi ar gyfer pob aelod AdherentMailRequired=Mae angen e-bost i greu aelod newydd MemberSendInformationByMailByDefault=Mae'r blwch ticio i anfon cadarnhad post at aelodau (dilysiad neu danysgrifiad newydd) ymlaen yn ddiofyn MemberCreateAnExternalUserForSubscriptionValidated=Creu mewngofnod defnyddiwr allanol ar gyfer pob tanysgrifiad aelod newydd a ddilysir -VisitorCanChooseItsPaymentMode=Gall ymwelwyr ddewis o'r dulliau talu sydd ar gael +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Galluogi nodyn atgoffa awtomatig trwy e-bost o danysgrifiadau sydd wedi dod i ben. Nodyn: Rhaid galluogi modiwl %s a gosod yn gywir i anfon nodiadau atgoffa. MembersDocModules=Templedi dogfen ar gyfer dogfennau a gynhyrchir o gofnod aelod ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Ysgogi golygydd uwch ar gyfer: FCKeditorForNotePublic=WYSIWIG creu/argraffiad o'r maes "nodiadau cyhoeddus" o elfennau FCKeditorForNotePrivate=WYSIWIG creu/argraffiad o'r maes "nodiadau preifat" o elfennau FCKeditorForCompany=WYSIWIG creu/argraffiad o ddisgrifiad maes o elfennau (ac eithrio cynhyrchion/gwasanaethau) -FCKeditorForProduct=WYSIWIG creu/argraffiad o ddisgrifiad maes o gynnyrch/gwasanaethau -FCKeditorForProductDetails=Mae WYSIWIG creu/rhifyn cynnyrch yn rhoi manylion llinellau ar gyfer pob endid (cynigion, archebion, anfonebau, ac ati...). Rhybudd: Nid yw defnyddio'r opsiwn hwn ar gyfer yr achos hwn yn cael ei argymell o ddifrif gan y gall greu problemau gyda nodau arbennig a fformatio tudalennau wrth adeiladu ffeiliau PDF. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Creu/rhifyn WYSIWIG ar gyfer e-byst torfol (Tools-> eBost) FCKeditorForUserSignature=WYSIWIG creu/rhifyn llofnod defnyddiwr FCKeditorForMail=Creu/argraffiad WYSIWIG ar gyfer pob post (ac eithrio Offer-> e-bost) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Triniwr dewislen lle i ddangos bwydlen newydd DetailMenuModule=Enw'r modiwl os daw'r cofnod ar y ddewislen o fodiwl DetailType=Math o ddewislen (top neu chwith) DetailTitre=Label dewislen neu god label i'w gyfieithu -DetailUrl=URL lle mae'r ddewislen yn anfon atoch (dolen URL Absolute neu ddolen allanol gyda http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Amod i ddangos neu beidio mynediad DetailRight=Amod i arddangos bwydlenni llwyd anawdurdodedig DetailLangs=Enw ffeil Lang ar gyfer cyfieithu cod label @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Nid yw gostyngiad stoc mewn POS yn gy CashDeskYouDidNotDisableStockDecease=Ni wnaethoch analluogi gostyngiad stoc wrth werthu o'r Man Gwerthu. Felly mae angen warws. CashDeskForceDecreaseStockLabel=Gorfodwyd gostyngiad stoc ar gyfer swp-gynhyrchion. CashDeskForceDecreaseStockDesc=Gostyngwch yn gyntaf erbyn y dyddiadau bwyta heibio a gwerthu hynaf. -CashDeskReaderKeyCodeForEnter=Cod allweddol ar gyfer "Enter" wedi'i ddiffinio yn y darllenydd cod bar (Enghraifft: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Gosod modiwl nod tudalen BookmarkDesc=Mae'r modiwl hwn yn eich galluogi i reoli nodau tudalen. Gallwch hefyd ychwanegu llwybrau byr at unrhyw dudalennau Dolibarr neu wefannau allanol ar eich dewislen chwith. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modelau rhifo anfonebau gwerthwr IfSetToYesDontForgetPermission=Os yw gwerth di-nwl wedi'i osod, peidiwch ag anghofio rhoi caniatâd i grwpiau neu ddefnyddwyr a ganiateir ar gyfer yr ail gymeradwyaeth ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Gosod modiwl GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Llwybr i ffeil yn cynnwys cyfieithiad ip i wlad Maxmind.
    Enghreifftiau:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/GeoIP.dat +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Sylwch fod yn rhaid i'ch ffeil data ip i wlad fod y tu mewn i gyfeiriadur y gall eich PHP ei ddarllen (Gwiriwch eich gosodiadau PHP open_basedir a chaniatâd system ffeiliau). YouCanDownloadFreeDatFileTo=Gallwch chi lawrlwytho fersiwn demo am ddim o ffeil wlad Maxmind GeoIP yn %s. YouCanDownloadAdvancedDatFileTo=Gallwch hefyd lawrlwytho fersiwn gyflawn fwy , gyda diweddariadau, o ffeil wlad Maxmind GeoIP yn %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Dewin i adeiladu'r ffeil dympio cronfa ddata BackupZipWizard=Dewin i adeiladu'r cyfeiriadur archif o ddogfennau SomethingMakeInstallFromWebNotPossible=Nid yw'n bosibl gosod modiwl allanol o'r rhyngwyneb gwe am y rheswm canlynol: SomethingMakeInstallFromWebNotPossible2=Am y rheswm hwn, mae'r broses uwchraddio a ddisgrifir yma yn broses â llaw y gall defnyddiwr breintiedig yn unig ei chyflawni. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Mae gosod modiwl allanol o'r rhaglen wedi'i analluogi gan eich gweinyddwr. Rhaid ichi ofyn iddo dynnu'r ffeil %s i ganiatáu'r nodwedd hon. ConfFileMustContainCustom=Mae angen i osod neu adeiladu modiwl allanol o'r cymhwysiad arbed ffeiliau'r modiwl yn y cyfeiriadur %s . Er mwyn i'r cyfeiriadur hwn gael ei brosesu gan Dolibarr, rhaid i chi osod eich conf/conf.php i ychwanegu'r 2 linell gyfarwyddeb:
    $_dolibarr_main;
    $dolibarr_main_document_root_alt= '%s/custom'; HighlightLinesOnMouseHover=Amlygwch linellau tabl pan fydd symudiad y llygoden yn mynd drosodd @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Pwyswch CTRL+F5 ar fysellfwrdd neu cliriwch storfa eich NotSupportedByAllThemes=Mae Will yn gweithio gyda themâu craidd, efallai na fydd yn cael ei gefnogi gan themâu allanol BackgroundColor=Lliw cefndir TopMenuBackgroundColor=Lliw cefndir ar gyfer y ddewislen Top -TopMenuDisableImages=Cuddio delweddau yn y ddewislen Uchaf +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Lliw cefndir ar gyfer y ddewislen Chwith BackgroundTableTitleColor=Lliw cefndir ar gyfer llinell teitl y Tabl BackgroundTableTitleTextColor=Lliw testun ar gyfer llinell teitl y Tabl @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Archebion prynu MailToSendSupplierInvoice=Anfonebau gwerthwr MailToSendContract=Contractau MailToSendReception=Derbyniadau +MailToExpenseReport=Expense reports MailToThirdparty=Trydydd partïon MailToMember=Aelodau MailToUser=Defnyddwyr @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Ymyl dde ar PDF MAIN_PDF_MARGIN_TOP=Ymyl uchaf ar PDF MAIN_PDF_MARGIN_BOTTOM=Ymyl gwaelod ar PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Uchder ar gyfer y logo ar PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Ychwanegu colofn ar gyfer llun ar linellau cynnig MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Lled y golofn os ychwanegir llun ar linellau MAIN_PDF_NO_SENDER_FRAME=Cuddio borderi ar ffrâm cyfeiriad anfonwr @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Dileu nodau arbennig COMPANY_AQUARIUM_CLEAN_REGEX=Hidlydd Regex i lanhau gwerth (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Hidlydd Regex i lanhau gwerth (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Ni chaniateir copi dyblyg +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Swyddog Diogelu Data (DPO, Data Preifatrwydd neu gyswllt GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Testun cymorth i'w ddangos ar y cyngor @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Nodyn: Mae'r opsiwn i ddefnyddio Treth Gwerthu neu TAW wedi'i oso SwapSenderAndRecipientOnPDF=Cyfnewid safle cyfeiriad anfonwr a derbynnydd ar ddogfennau PDF FeatureSupportedOnTextFieldsOnly=Rhybudd, nodwedd a gefnogir ar feysydd testun a rhestrau combo yn unig. Hefyd rhaid gosod paramedr URL action=creu neu action=golygu NEU rhaid i enw tudalen orffen gyda 'new.php' i gychwyn y nodwedd yma. EmailCollector=Casglwr e-bost +EmailCollectors=Email collectors EmailCollectorDescription=Ychwanegwch swydd wedi'i hamserlennu a thudalen sefydlu i sganio blychau e-bost yn rheolaidd (gan ddefnyddio protocol IMAP) a chofnodi negeseuon e-bost a dderbyniwyd yn eich cais, yn y lle iawn a/neu greu rhai cofnodion yn awtomatig (fel canllawiau). NewEmailCollector=Casglwr E-bost Newydd EMailHost=Gwesteiwr gweinydd IMAP e-bost +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Cyfeiriadur ffynhonnell blwch post MailboxTargetDirectory=Cyfeiriadur targed blwch post EmailcollectorOperations=Gweithrediadau i'w gwneud gan y casglwr EmailcollectorOperationsDesc=Gweithredir gweithrediadau o'r top i'r gwaelod MaxEmailCollectPerCollect=Uchafswm nifer y negeseuon e-bost a gasglwyd fesul casgliad +TestCollectNow=Test collect CollectNow=Casglwch yn awr ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Dyddiad y cais casglu diweddaraf DateLastcollectResultOk=Dyddiad llwyddiant y casgliad diweddaraf LastResult=Canlyniad diweddaraf EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Cadarnhad casglu e-bost EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Dim e-bost newydd (cyfateb hidlwyr) i'w prosesu NothingProcessed=Dim byd wedi'i wneud -XEmailsDoneYActionsDone=e-byst %s yn gymwys, e-byst %s wedi'u prosesu'n llwyddiannus (ar gyfer cofnod %s/camau gweithredu wedi'u gwneud) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Cofnodi digwyddiad ar yr agenda (gyda math E-bost wedi'i anfon neu ei dderbyn) CreateLeadAndThirdParty=Creu arweinydd (a thrydydd parti os oes angen) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Creu cais am swydd FormatZip=Sip MainMenuCode=Cod mynediad dewislen (prif ddewislen) ECMAutoTree=Dangos coeden ECM awtomatig -OperationParamDesc=Diffinio'r rheolau i'w defnyddio i echdynnu neu osod gwerthoedd.
    Enghraifft ar gyfer gweithrediadau sydd angen tynnu enw o destun e-bost:
    enw=DYFYNIAD:TESTUN:Neges gan y cwmni ([^\n]*)
    Enghraifft ar gyfer gweithrediadau sy'n creu gwrthrychau:
    objproperty1=SET:y gwerth i osod
    objproperty2=SET:gwerth yn cynnwys gwerth __objproperty1__
    objproperty1=SET: nid yw'r gwerth i osod
    objproperty2=SET:gwerth yn cynnwys gwerth __objproperty1__ a0342fccfda19bzval0342fccfda19bzval0342fccfda19bzval0342fccfda19bzval03142fccfda19bzval0342fccfda19bzval03342fccfda19bzval030 wedi'i ddefnyddio wedi'i ddiffinio'n barod :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:TESTUN:([^\n]*)
    object.objproperty5=EXTRACT:CORFF:Fy enw cwmni yw\\s( [^\\s]*)

    Defnyddiwch a ; torgoch fel gwahanydd i echdynnu neu osod sawl eiddo. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Oriau agor OpeningHoursDesc=Nodwch yma oriau agor arferol eich cwmni. ResourceSetup=Ffurfweddu modiwl Adnodd @@ -2167,6 +2200,10 @@ EmailTemplate=Templed ar gyfer e-bost EMailsWillHaveMessageID=Bydd gan e-byst dag 'Cyfeiriadau' sy'n cyfateb i'r gystrawen hon PDF_SHOW_PROJECT=Dangos y prosiect ar ddogfen ShowProjectLabel=Label Prosiect +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Os ydych chi am i rai testunau yn eich PDF gael eu dyblygu mewn 2 iaith wahanol yn yr un PDF a gynhyrchir, rhaid i chi osod yma yr ail iaith hon felly bydd PDF a gynhyrchir yn cynnwys 2 iaith wahanol ar yr un dudalen, yr un a ddewisir wrth gynhyrchu PDF a'r un hon ( dim ond ychydig o dempledi PDF sy'n cefnogi hyn). Cadwch yn wag am 1 iaith fesul PDF. PDF_USE_A=Cynhyrchwch ddogfennau PDF gyda fformat PDF/A yn lle fformat PDF defaut FafaIconSocialNetworksDesc=Rhowch god eicon FontAwesome yma. Os nad ydych chi'n gwybod beth yw FontAwesome, gallwch ddefnyddio'r llyfr cyfeiriadau gwerth generig. @@ -2195,12 +2232,12 @@ MailToPartnership=Partneriaeth AGENDA_EVENT_DEFAULT_STATUS=Statws digwyddiad diofyn wrth greu digwyddiad o'r ffurflen YouShouldDisablePHPFunctions=Dylech analluogi swyddogaethau PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Ac eithrio os oes angen i chi redeg gorchmynion system mewn cod arfer, dylech analluogi swyddogaethau PHP -PHPFunctionsRequiredForCLI=At ddiben cragen (fel gwneud copi wrth gefn o swydd wedi'i drefnu neu redeg rhaglen anitivurs), rhaid i chi gadw swyddogaethau PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Ni chanfuwyd unrhyw ffeiliau neu gyfeiriaduron ysgrifenadwy o'r rhaglenni cyffredin yn eich cyfeiriadur gwraidd (Da) RecommendedValueIs=Argymhellir: %s Recommended=Argymhellir NotRecommended=Heb ei argymell -ARestrictedPath=Rhywfaint o lwybr cyfyngedig +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Gwiriwch am ddiweddariadau modiwlau allanol CheckForModuleUpdateHelp=Bydd y weithred hon yn cysylltu â golygyddion modiwlau allanol i wirio a oes fersiwn newydd ar gael. ModuleUpdateAvailable=Mae diweddariad ar gael @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Ni chanfuwyd unrhyw ddiweddariadau ar gyfer modiwlau SwaggerDescriptionFile=Ffeil ddisgrifiad Swagger API (i'w ddefnyddio gyda redoc er enghraifft) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Rydych wedi galluogi WS API anghymeradwy. Dylech ddefnyddio REST API yn lle hynny. RandomlySelectedIfSeveral=Wedi'i ddewis ar hap os oes sawl llun ar gael +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Mae cyfrinair cronfa ddata wedi'i guddio yn y ffeil conf DatabasePasswordNotObfuscated=NID yw cyfrinair cronfa ddata wedi'i guddio yn y ffeil conf APIsAreNotEnabled=Nid yw modiwlau APIs wedi'u galluogi @@ -2247,14 +2285,22 @@ LateWarningAfter=Rhybudd "hwyr" ar ôl TemplateforBusinessCards=Templed ar gyfer cerdyn busnes mewn maint gwahanol InventorySetup= Gosod Rhestr ExportUseLowMemoryMode=Defnyddiwch fodd cof isel -ExportUseLowMemoryModeHelp=Defnyddiwch y modd cof isel i weithredu exec y dymp (cywasgu yn cael ei wneud trwy bibell yn hytrach nag i mewn i'r cof PHP). Nid yw'r dull hwn yn caniatáu gwirio bod ffeil wedi'i chwblhau ac ni ellir adrodd neges gwall os yw'n methu. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/cy_GB/categories.lang b/htdocs/langs/cy_GB/categories.lang index 298fa93b3b9..84ccd411a11 100644 --- a/htdocs/langs/cy_GB/categories.lang +++ b/htdocs/langs/cy_GB/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Nid yw'r aelod hwn mewn unrhyw dagiau/categorïau ContactHasNoCategory=Nid yw'r cyswllt hwn mewn unrhyw dagiau/categorïau ProjectHasNoCategory=Nid yw'r prosiect hwn mewn unrhyw dagiau/categorïau ClassifyInCategory=Ychwanegu at y tag/categori +RemoveCategory=Remove category NotCategorized=Heb dag/categori CategoryExistsAtSameLevel=Mae'r categori hwn eisoes yn bodoli gyda'r cyf ContentsVisibleByAllShort=Cynnwys yn weladwy gan bawb @@ -67,6 +68,7 @@ StockCategoriesShort=Tagiau/categorïau warws ThisCategoryHasNoItems=Nid yw'r categori hwn yn cynnwys unrhyw eitemau. CategId=ID tag/categori ParentCategory=Tag rhiant/categori +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label y tag rhiant/categori CatSupList=Rhestr o dagiau/categorïau gwerthwyr CatCusList=Rhestr o gwsmeriaid/tagiau rhagolygon/categorïau @@ -86,7 +88,7 @@ DeleteFromCat=Tynnwch o'r tagiau/categori ExtraFieldsCategories=Priodoleddau cyflenwol CategoriesSetup=Gosod tagiau/categorïau CategorieRecursiv=Cysylltwch â thag/categori rhiant yn awtomatig -CategorieRecursivHelp=Os yw'r opsiwn ymlaen, pan fyddwch chi'n ychwanegu cynnyrch i is-gategori, bydd cynnyrch hefyd yn cael ei ychwanegu at y categori rhiant. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Ychwanegwch y cynnyrch/gwasanaeth canlynol AddCustomerIntoCategory=Neilltuo categori i gwsmer AddSupplierIntoCategory=Neilltuo categori i gyflenwr @@ -95,7 +97,9 @@ ShowCategory=Dangos tag/categori ByDefaultInList=Yn ddiofyn yn y rhestr ChooseCategory=Dewiswch gategori StocksCategoriesArea=Categorïau Warws +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Categorïau Digwyddiad WebsitePagesCategoriesArea=Categorïau Cynhwysydd Tudalen KnowledgemanagementsCategoriesArea=Categorïau erthygl KM UseOrOperatorForCategories=Defnyddiwch weithredwr 'OR' ar gyfer categorïau +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/cy_GB/commercial.lang b/htdocs/langs/cy_GB/commercial.lang index 4d1455d274f..7682056b879 100644 --- a/htdocs/langs/cy_GB/commercial.lang +++ b/htdocs/langs/cy_GB/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Statws rhagolygon DraftPropals=Cynigion masnachol drafft NoLimit=Dim terfyn ToOfferALinkForOnlineSignature=Dolen ar gyfer llofnod ar-lein -WelcomeOnOnlineSignaturePage=Croeso i'r dudalen i dderbyn cynigion masnachol gan %s -ThisScreenAllowsYouToSignDocFrom=Mae'r sgrin hon yn caniatáu ichi dderbyn a llofnodi, neu wrthod, dyfynbris/cynnig masnachol -ThisIsInformationOnDocumentToSign=Gwybodaeth yw hon ar ddogfen i'w derbyn neu ei gwrthod +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Llofnod y dyfynbris/cynnig masnachol %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Analluogwyd nodwedd ar gyfer llofnodi ar-lein neu ddogfen a gynhyrchwyd cyn i'r nodwedd gael ei galluogi diff --git a/htdocs/langs/cy_GB/companies.lang b/htdocs/langs/cy_GB/companies.lang index dd4567edec4..122154593a4 100644 --- a/htdocs/langs/cy_GB/companies.lang +++ b/htdocs/langs/cy_GB/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Natur Trydydd Parti NatureOfContact=Natur y Cyswllt Address=Cyfeiriad State=Talaith/Talaith +StateId=State ID StateCode=Cod y Wladwriaeth/Talaith StateShort=Cyflwr Region=Rhanbarth Region-State=Rhanbarth - Talaith Country=Gwlad CountryCode=Cod Gwlad -CountryId=ID gwlad +CountryId=Country ID Phone=Ffon PhoneShort=Ffon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Cofrestr Fasnach) ProfId2CM=Id. prof. 2 (Rhif trethdalwr) -ProfId3CM=Id. prof. 3 (Archddyfarniad creu) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Cofrestr Masnach ProfId2ShortCM=Trethdalwr Na. -ProfId3ShortCM=Archddyfarniad y greadigaeth -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Athro Id 1 (R.U.T.) @@ -443,7 +444,7 @@ AddAddress=Ychwanegu cyfeiriad SupplierCategory=Categori gwerthwr JuridicalStatus200=Annibynol DeleteFile=Dileu ffeil -ConfirmDeleteFile=Ydych chi'n siŵr eich bod am ddileu'r ffeil hon? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Wedi'i neilltuo i gynrychiolydd gwerthu Organization=Sefydliad FiscalYearInformation=Blwyddyn Gyllidol diff --git a/htdocs/langs/cy_GB/compta.lang b/htdocs/langs/cy_GB/compta.lang index 9ae8b92d461..10d7388a382 100644 --- a/htdocs/langs/cy_GB/compta.lang +++ b/htdocs/langs/cy_GB/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balans (cyn) Balance=Cydbwysedd Debit=Debyd Credit=Credyd +AccountingDebit=Debit +AccountingCredit=Credit Piece=Dogfen Cyfrifo. AmountHTVATRealReceived=Net wedi'i gasglu AmountHTVATRealPaid=Talwyd net @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Nid yw'r adroddiad o'r Trosi TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Nid yw'r adroddiad ar y Trosiant a gasglwyd fesul cyfradd treth gwerthiant ar gael. Mae'r adroddiad hwn ar gael ar gyfer trosiant a anfonebwyd yn unig. CalculationMode=Modd cyfrifo AccountancyJournal=Dyddiadur cod cyfrifyddu -ACCOUNTING_VAT_SOLD_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer TAW ar werthiannau (defnyddir os nad yw wedi'i ddiffinio wrth osod geiriadur TAW) -ACCOUNTING_VAT_BUY_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer TAW ar bryniannau (defnyddir os nad yw wedi'i ddiffinio ar osod geiriadur TAW) -ACCOUNTING_VAT_PAY_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer talu TAW -ACCOUNTING_ACCOUNT_CUSTOMER=Cyfrif cyfrifo a ddefnyddir ar gyfer trydydd partïon cwsmeriaid +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Bydd y cyfrif cyfrifyddu pwrpasol a ddiffinnir ar gerdyn trydydd parti yn cael ei ddefnyddio ar gyfer cyfrifyddu Subledger yn unig. Bydd yr un hwn yn cael ei ddefnyddio ar gyfer y Cyfriflyfr Cyffredinol ac fel gwerth rhagosodedig cyfrifyddu Subledger os nad yw cyfrif cyfrifyddu cwsmer penodol ar drydydd parti wedi'i ddiffinio. -ACCOUNTING_ACCOUNT_SUPPLIER=Cyfrif cyfrifo a ddefnyddir ar gyfer trydydd parti gwerthwr +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Bydd y cyfrif cyfrifyddu pwrpasol a ddiffinnir ar gerdyn trydydd parti yn cael ei ddefnyddio ar gyfer cyfrifyddu Subledger yn unig. Bydd yr un hwn yn cael ei ddefnyddio ar gyfer y Cyfriflyfr Cyffredinol ac fel gwerth rhagosodedig cyfrifyddu Subledger os nad yw cyfrif cyfrifyddu gwerthwr pwrpasol ar drydydd parti wedi'i ddiffinio. ConfirmCloneTax=Cadarnhewch glon treth gymdeithasol/gyllidol ConfirmCloneVAT=Cadarnhau clon datganiad TAW @@ -300,3 +302,4 @@ InvoiceToPay15Days=I dalu (15 i 30 diwrnod) InvoiceToPay30Days=I dalu (> 30 diwrnod) ConfirmPreselectAccount=Rhag-ddewis cod cyfrifeg ConfirmPreselectAccountQuestion=A ydych yn siŵr eich bod am ragddewis y llinellau %s a ddewiswyd gyda'r cod cyfrifeg hwn ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/cy_GB/contracts.lang b/htdocs/langs/cy_GB/contracts.lang index 5b2df05bc7a..a337122df87 100644 --- a/htdocs/langs/cy_GB/contracts.lang +++ b/htdocs/langs/cy_GB/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Ydych chi'n siŵr eich bod am ddileu'r llinell gontrac MoveToAnotherContract=Symud gwasanaeth i gontract arall. ConfirmMoveToAnotherContract=Dewisais gontract targed newydd a chadarnhaf fy mod am symud y gwasanaeth hwn i'r contract hwn. ConfirmMoveToAnotherContractQuestion=Dewiswch i ba gontract presennol (o'r un trydydd parti), rydych chi am symud y gwasanaeth hwn iddo? -PaymentRenewContractId=Adnewyddu'r llinell gontract (rhif %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Dyddiad dod i ben NoExpiredServices=Dim gwasanaethau gweithredol wedi dod i ben ListOfServicesToExpireWithDuration=Rhestr o Wasanaethau i ddod i ben mewn %s diwrnod diff --git a/htdocs/langs/cy_GB/cron.lang b/htdocs/langs/cy_GB/cron.lang index c91962f9317..0f466dd0d8c 100644 --- a/htdocs/langs/cy_GB/cron.lang +++ b/htdocs/langs/cy_GB/cron.lang @@ -26,7 +26,7 @@ CronCommand=Gorchymyn CronList=Swyddi wedi'u hamserlennu CronDelete=Dileu swyddi a drefnwyd CronConfirmDelete=A ydych yn siŵr eich bod am ddileu'r swyddi hyn sydd wedi'u hamserlennu? -CronExecute=Lansio swydd a drefnwyd +CronExecute=Launch now CronConfirmExecute=A ydych yn siŵr eich bod am gyflawni'r swyddi hyn sydd wedi'u hamserlennu nawr? CronInfo=Mae modiwl swydd wedi'i amserlennu yn caniatáu amserlennu swyddi i'w gweithredu'n awtomatig. Gellir cychwyn swyddi â llaw hefyd. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Sylw CronFieldMandatory=Mae meysydd %s yn orfodol CronErrEndDateStartDt=Ni all y dyddiad gorffen fod cyn y dyddiad dechrau StatusAtInstall=Statws wrth osod modiwl -CronStatusActiveBtn=Atodlen +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Analluogi CronTaskInactive=Mae'r swydd hon wedi'i hanalluogi (ddim wedi'i hamserlennu) CronId=Id @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Cronfa ddata wrth gefn leol MakeLocalDatabaseDump=Creu dympio cronfa ddata leol. Paramedrau yw: cywasgu ('gz' neu 'bz' neu 'dim'), math wrth gefn ('mysql', 'pgsql', 'auto'), 1, 'auto' neu enw ffeil i'w hadeiladu, nifer y ffeiliau wrth gefn i'w cadw MakeSendLocalDatabaseDumpShort=Anfon copi wrth gefn o gronfa ddata leol MakeSendLocalDatabaseDump=Anfon copi wrth gefn o gronfa ddata leol trwy e-bost. Paramedrau yw: i, o, pwnc, neges, enw ffeil (Enw'r ffeil a anfonwyd), hidlydd ('sql' ar gyfer copi wrth gefn o'r gronfa ddata yn unig) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Sylw, at ddiben perfformiad, beth bynnag yw'r dyddiad nesaf ar gyfer cyflawni swyddi wedi'u galluogi, efallai y bydd eich swyddi'n cael eu gohirio hyd at uchafswm o %s awr, cyn cael eu rhedeg. DATAPOLICYJob=Glanhawr data ac anonymizer JobXMustBeEnabled=Rhaid galluogi Job %s +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Y swydd a drefnwyd ddiwethaf a gyflawnwyd NextScheduledJobExecute=Y dasg nesaf i'w chyflawni NumberScheduledJobError=Nifer y swyddi a drefnwyd mewn camgymeriad +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/cy_GB/datapolicy.lang b/htdocs/langs/cy_GB/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/cy_GB/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/cy_GB/ecm.lang b/htdocs/langs/cy_GB/ecm.lang index ba165c03711..4375605fdd7 100644 --- a/htdocs/langs/cy_GB/ecm.lang +++ b/htdocs/langs/cy_GB/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Cyfeiriadur â llaw ECMSectionAuto=Cyfeiriadur awtomatig ECMSectionsManual=Coeden â llaw ECMSectionsAuto=Coeden awtomatig +ECMSectionsMedias=Medias tree ECMSections=Cyfeirlyfrau ECMRoot=Gwraidd ECM ECMNewSection=Cyfeiriadur newydd @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Nifer y ffeiliau mewn is-gyfeiriaduron ECMCreationUser=Creawdwr ECMArea=Ardal DMS/ECM ECMAreaDesc=Mae'r ardal DMS/ECM (System Rheoli Dogfennau / Rheoli Cynnwys Electronig) yn caniatáu ichi arbed, rhannu a chwilio'n gyflym o bob math o ddogfennau yn Dolibarr. -ECMAreaDesc2=* Mae cyfeiriaduron awtomatig yn cael eu llenwi'n awtomatig wrth ychwanegu dogfennau o gerdyn elfen.
    * Gellir defnyddio cyfeiriaduron llaw i gadw dogfennau nad ydynt yn gysylltiedig ag elfen benodol. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Cyfeiriadur %s wedi'i ddileu. ECMSectionWasCreated=Cyfeiriadur %s wedi'i greu. ECMSearchByKeywords=Chwilio yn ôl allweddeiriau diff --git a/htdocs/langs/cy_GB/errors.lang b/htdocs/langs/cy_GB/errors.lang index 01244d8d8eb..eda9b011435 100644 --- a/htdocs/langs/cy_GB/errors.lang +++ b/htdocs/langs/cy_GB/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Mae mewngofnodi %s eisoes yn bodoli. ErrorGroupAlreadyExists=Mae grŵp %s eisoes yn bodoli. ErrorEmailAlreadyExists=Mae e-bost %s eisoes yn bodoli. ErrorRecordNotFound=Heb ganfod y cofnod. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Wedi methu â chopïo ffeil ' %s ' i ' %s a09a4b739f17f '. ErrorFailToCopyDir=Wedi methu â chopïo cyfeiriadur ' %s ' i ' %s a09a4b739f17f '. ErrorFailToRenameFile=Wedi methu ag ailenwi ffeil ' %s ' i ' %s a09a4b739zf17f '. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Nid oes gan ffeil delwedd fformat a gefnogir (Nid yw eich PH ErrorBadDateFormat=Mae fformat dyddiad anghywir gan werth '%s' ErrorWrongDate=Nid yw'r dyddiad yn gywir! ErrorFailedToWriteInDir=Wedi methu ag ysgrifennu yn y cyfeiriadur %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Wedi dod o hyd i gystrawen e-bost anghywir ar gyfer llinellau %s yn y ffeil (llinell enghreifftiol %s gydag e-bost=%s) ErrorUserCannotBeDelete=Ni ellir dileu defnyddiwr. Efallai ei fod yn gysylltiedig ag endidau Dolibarr. ErrorFieldsRequired=Mae rhai meysydd gofynnol wedi'u gadael yn wag. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Llenwch y gwerth ar gyfer rhestr blychau ticio ErrorNoValueForRadioType=Llenwch y gwerth ar gyfer y rhestr radio ErrorBadFormatValueList=Ni all gwerth y rhestr fod â mwy nag un coma: %s , ond mae angen o leiaf un: allwedd, gwerth ErrorFieldCanNotContainSpecialCharacters=Rhaid i'r maes %s beidio â chynnwys nodau arbennig. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Ni ddylai'r maes %s gynnwys nodau arbennig, na nodau priflythrennau ac ni all gynnwys rhifau yn unig. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=Rhaid i'r maes %s fod ag o leiaf %s nodau. ErrorNoAccountancyModuleLoaded=Dim modiwl cyfrifeg wedi'i actifadu ErrorExportDuplicateProfil=Mae'r enw proffil hwn eisoes yn bodoli ar gyfer y set allforio hon. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Rhaid peidio ag analluogi Javascript i gael y nodwe ErrorPasswordsMustMatch=Rhaid i'r ddau gyfrinair wedi'u teipio gydweddu â'i gilydd ErrorContactEMail=Digwyddodd gwall technegol. Os gwelwch yn dda, cysylltwch â'r gweinyddwr i'r e-bost canlynol %s a rhowch y cod gwall %s a09a4b789zf a09a4b7801 sgrin o'ch neges, neu ychwanegu'r sgrin hon o'ch neges. ErrorWrongValueForField=Maes a0aee833365837fz0 %s : ' %s 3e %s 3e ddim yn cyfateb %s 39f %s 309f 309f %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Maes %s : ' %s ' ddim yn werth dod o hyd yn y maes %s o %s ErrorFieldRefNotIn=Maes %s : ' %s ' cyf Nid yw %s presennol +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s gwallau wedi'u canfod ErrorFileIsInfectedWithAVirus=Nid oedd y rhaglen gwrthfeirws yn gallu dilysu'r ffeil (gallai'r ffeil fod wedi'i heintio gan firws) -ErrorSpecialCharNotAllowedForField=Ni chaniateir nodau arbennig ar gyfer maes "%s" ErrorNumRefModel=Mae cyfeiriad yn bodoli i gronfa ddata (%s) ac nid yw'n gydnaws â'r rheol rifo hon. Tynnwch y cofnod neu ailenwyd y cyfeirnod i actifadu'r modiwl hwn. ErrorQtyTooLowForThisSupplier=Swm yn rhy isel ar gyfer y gwerthwr hwn neu ddim pris wedi'i ddiffinio ar y cynnyrch hwn ar gyfer y gwerthwr hwn ErrorOrdersNotCreatedQtyTooLow=Nid yw rhai archebion wedi'u creu oherwydd niferoedd rhy isel @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Rhaid i wrthrychau gael statws 'Gwei ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Rhaid i wrthrychau gael statws 'Drafft' neu 'Anabledd' i'w galluogi ErrorNoFieldWithAttributeShowoncombobox=Nid oes gan unrhyw faes yr eiddo 'showoncombobox' i'r diffiniad o wrthrych '%s'. Dim ffordd i ddangos y combolist. ErrorFieldRequiredForProduct=Mae angen maes '%s' ar gyfer cynnyrch %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Problem yw gosod terfynell %s. ErrorAddAtLeastOneLineFirst=Ychwanegwch o leiaf un llinell yn gyntaf ErrorRecordAlreadyInAccountingDeletionNotPossible=Gwall, cofnod yn cael ei drosglwyddo eisoes yn cyfrifo, dileu yn bosibl. @@ -270,24 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Yn gyntaf rhaid i chi osod eich siart c ErrorFailedToFindEmailTemplate=Wedi methu dod o hyd i dempled gydag enw cod %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Hyd heb ei ddiffinio ar y gwasanaeth. Dim ffordd i gyfrifo'r pris fesul awr. ErrorActionCommPropertyUserowneridNotDefined=Mae angen perchennog y defnyddiwr -ErrorActionCommBadType=Nid yw'r math o ddigwyddiad a ddewiswyd (id: %n, cod: %s) yn bodoli mewn geiriadur Math o Ddigwyddiad +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Fersiwn gwirio yn methu ErrorWrongFileName=Ni all enw'r ffeil fod â __SOMETHING__ ynddi ErrorNotInDictionaryPaymentConditions=Ddim yn y Geiriadur Telerau Talu, addaswch. ErrorIsNotADraft=Nid yw %s yn ddrafft ErrorExecIdFailed=Methu gweithredu gorchymyn "id" -ErrorBadCharIntoLoginName=Nod heb awdurdod yn yr enw mewngofnodi -ErrorRequestTooLarge=Gwall, cais rhy fawr +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=Nid chi yw'r cymeradwywr ar gyfer gwyliau %s ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Mae eich paramedr PHP upload_max_filesize (%s) yn uwch na pharamedr PHP post_max_size (%s). Nid yw hwn yn drefniant cyson. WarningPasswordSetWithNoAccount=Gosodwyd cyfrinair ar gyfer yr aelod hwn. Fodd bynnag, ni chrëwyd unrhyw gyfrif defnyddiwr. Felly mae'r cyfrinair hwn yn cael ei storio ond ni ellir ei ddefnyddio i fewngofnodi i Ddolibarr. Gellir ei ddefnyddio gan fodiwl/rhyngwyneb allanol ond os nad oes angen i chi ddiffinio unrhyw fewngofnodi na chyfrinair ar gyfer aelod, gallwch analluogi opsiwn "Rheoli mewngofnodi ar gyfer pob aelod" o osod modiwl Aelod. Os oes angen i chi reoli mewngofnodi ond nad oes angen unrhyw gyfrinair arnoch, gallwch gadw'r maes hwn yn wag er mwyn osgoi'r rhybudd hwn. Nodyn: Gellir defnyddio e-bost hefyd fel mewngofnodi os yw'r aelod yn gysylltiedig â defnyddiwr. -WarningMandatorySetupNotComplete=Cliciwch yma i osod paramedrau gorfodol +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Cliciwch yma i alluogi eich modiwlau a'ch cymwysiadau WarningSafeModeOnCheckExecDir=Rhybudd, mae opsiwn PHP safe_mode ymlaen felly mae'n rhaid storio'r gorchymyn y tu mewn i gyfeiriadur a ddatganwyd gan baramedr php safe_mode_exec_dir . WarningBookmarkAlreadyExists=Mae nod tudalen gyda'r teitl hwn neu'r targed hwn (URL) eisoes yn bodoli. @@ -296,7 +316,7 @@ WarningConfFileMustBeReadOnly=Rhybudd, gall eich ffeil ffurfweddu ( htdocs/c WarningsOnXLines=Rhybuddion ar %s cofnod(au) ffynhonnell WarningNoDocumentModelActivated=Nid oes unrhyw fodel, ar gyfer cynhyrchu dogfennau, wedi'i actifadu. Bydd model yn cael ei ddewis yn ddiofyn nes i chi wirio gosodiad eich modiwl. WarningLockFileDoesNotExists=Rhybudd, unwaith y bydd y gosodiad wedi'i orffen, rhaid i chi analluogi'r offer gosod / mudo trwy ychwanegu ffeil install.lock i gyfeiriadur %s a09a4b73zf 1. Mae hepgor creu'r ffeil hon yn risg diogelwch difrifol. -WarningUntilDirRemoved=Bydd pob rhybudd diogelwch (sydd i'w weld gan ddefnyddwyr gweinyddol yn unig) yn parhau'n weithredol cyn belled â bod y bregusrwydd yn bresennol (neu fod cyson MAIN_REMOVE_INSTALL_WARNING yn cael ei ychwanegu yn Setup-> Gosodiad Arall). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Rhybudd, cau yn cael ei wneud hyd yn oed os yw swm yn amrywio rhwng ffynhonnell ac elfennau targed. Galluogwch y nodwedd hon yn ofalus. WarningUsingThisBoxSlowDown=Rhybudd, gan ddefnyddio'r blwch hwn arafu o ddifrif yr holl dudalennau sy'n dangos y blwch. WarningClickToDialUserSetupNotComplete=Nid yw'r broses o osod gwybodaeth ClickToDial ar gyfer eich defnyddiwr wedi'i chwblhau (gweler y tab ClickToDial ar eich cerdyn defnyddiwr). @@ -317,6 +337,9 @@ WarningCreateSubAccounts=Rhybudd, ni allwch greu is-gyfrif yn uniongyrchol, rhai WarningAvailableOnlyForHTTPSServers=Ar gael dim ond os ydych yn defnyddio cysylltiad sicr HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Nid yw modiwl %s wedi'i alluogi. Felly efallai y byddwch yn colli llawer o ddigwyddiad yma. WarningPaypalPaymentNotCompatibleWithStrict=Mae'r gwerth 'Strict' yn golygu nad yw'r nodweddion talu ar-lein yn gweithio'n gywir. Defnyddiwch 'Lax' yn lle hynny. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate RequireValidValue = Gwerth ddim yn ddilys diff --git a/htdocs/langs/cy_GB/eventorganization.lang b/htdocs/langs/cy_GB/eventorganization.lang index b15bb10faaa..74d103f7360 100644 --- a/htdocs/langs/cy_GB/eventorganization.lang +++ b/htdocs/langs/cy_GB/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Yn y ffurf i greu / ychwanegu mynychwr, # Object # EventOrganizationConfOrBooth= Cynhadledd Neu Booth +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Rheoli trefniadaeth digwyddiad ConferenceOrBooth = Cynhadledd Neu Booth ConferenceOrBoothTab = Cynhadledd Neu Booth AmountPaid = Swm a dalwyd DateOfRegistration = Dyddiad cofrestru ConferenceOrBoothAttendee = Mynychwr y Gynhadledd Neu Booth +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Yma, gallwch chi bleidleisio dros gynhadledd ne EvntOrgRegistrationConfHelpMessage = Yma, gallwch awgrymu cynhadledd newydd i'w hanimeiddio yn ystod y digwyddiad. EvntOrgRegistrationBoothHelpMessage = Yma, gallwch wneud cais i gael bwth yn ystod y digwyddiad. ListOfSuggestedConferences = Rhestr o gynadleddau a awgrymir -ListOfSuggestedBooths = Rhestr o fythau a awgrymir -ListOfConferencesOrBooths=Rhestr o gynadleddau neu fythau o brosiect digwyddiad +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Awgrymu cynhadledd newydd SuggestBooth = Awgrymu bwth ViewAndVote = Gweld a phleidleisio ar gyfer digwyddiadau a awgrymir PublicAttendeeSubscriptionGlobalPage = Dolen gyhoeddus i gofrestru i'r digwyddiad PublicAttendeeSubscriptionPage = Dolen gyhoeddus ar gyfer cofrestru i'r digwyddiad hwn yn unig MissingOrBadSecureKey = Mae'r allwedd ddiogelwch yn annilys neu ar goll -EvntOrgWelcomeMessage = Mae'r ffurflen hon yn eich galluogi i gofrestru fel cyfranogwr newydd i'r digwyddiad : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Mae'r gynhadledd hon yn dechrau ar %s ac yn gorffen ar %s. ConferenceAttendeeFee = Ffi mynychwyr y gynhadledd ar gyfer y digwyddiad : '%s' yn digwydd o %s i %s. BoothLocationFee = Lleoliad Booth ar gyfer y digwyddiad : '%s' yn digwydd o %s i %s @@ -130,7 +133,7 @@ LabelOfconference=Label y gynhadledd ConferenceIsNotConfirmed=Nid yw cofrestriad ar gael, nid yw'r gynhadledd wedi'i chadarnhau eto DateMustBeBeforeThan=rhaid i %s fod cyn %s DateMustBeAfterThan=rhaid i %s fod ar ôl %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Cofrestru OrganizationEventConfRequestWasReceived=Mae eich awgrym ar gyfer cynhadledd wedi dod i law OrganizationEventBoothRequestWasReceived=Mae eich cais am fwth wedi dod i law @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Mae eich taliad ar gyfer eich OrganizationEventBulkMailToAttendees=Mae hwn yn atgoffa am eich cyfranogiad yn y digwyddiad fel mynychwr OrganizationEventBulkMailToSpeakers=Dyma nodyn i'ch atgoffa o'ch cyfranogiad yn y digwyddiad fel siaradwr OrganizationEventLinkToThirdParty=Cyswllt i drydydd parti (cwsmer, cyflenwr neu bartner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Cais am fwth NewSuggestionOfConference=Cais am gynhadledd @@ -154,7 +158,7 @@ VoteOk = Mae eich pleidlais wedi ei derbyn. AlreadyVoted = Rydych chi eisoes wedi pleidleisio dros y digwyddiad hwn. VoteError = Mae gwall wedi digwydd yn ystod y bleidlais, ceisiwch eto. -SubscriptionOk = Mae eich cofrestriad wedi'i ddilysu +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Cadarnhad o'ch tanysgrifiad i ddigwyddiad Attendee = Mynychwr PaymentConferenceAttendee = Taliad mynychwyr y gynhadledd @@ -162,6 +166,7 @@ PaymentBoothLocation = Taliad lleoliad Booth DeleteConferenceOrBoothAttendee=Dileu mynychwr RegistrationAndPaymentWereAlreadyRecorder=Roedd cofrestriad a thaliad eisoes wedi'u cofnodi ar gyfer yr e-bost %s EmailAttendee=E-bost mynychwr +EmailCompany=Company email EmailCompanyForInvoice=E-bost cwmni (ar gyfer anfoneb, os yw'n wahanol i e-bost mynychwr) ErrorSeveralCompaniesWithEmailContactUs=Mae sawl cwmni sydd â'r e-bost hwn wedi'u canfod felly ni allwn ddilysu eich cofrestriad yn awtomatig. Cysylltwch â ni yn %s i gael dilysiad â llaw ErrorSeveralCompaniesWithNameContactUs=Mae sawl cwmni gyda'r enw hwn wedi'u canfod felly ni allwn ddilysu eich cofrestriad yn awtomatig. Cysylltwch â ni yn %s i gael dilysiad â llaw diff --git a/htdocs/langs/cy_GB/externalsite.lang b/htdocs/langs/cy_GB/externalsite.lang deleted file mode 100644 index 399925afb89..00000000000 --- a/htdocs/langs/cy_GB/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Gosod dolen i wefan allanol -ExternalSiteURL=URL Gwefan Allanol o gynnwys HTML iframe -ExternalSiteModuleNotComplete=Nid oedd Module ExternalSite wedi'i ffurfweddu'n gywir. -ExampleMyMenuEntry=Fy nghofnod ar y ddewislen diff --git a/htdocs/langs/cy_GB/ftp.lang b/htdocs/langs/cy_GB/ftp.lang deleted file mode 100644 index 699368df37b..00000000000 --- a/htdocs/langs/cy_GB/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Gosod modiwl Cleient FTP neu SFTP -NewFTPClient=Gosodiad cysylltiad FTP/FTPS newydd -FTPArea=Ardal FTP/FTPS -FTPAreaDesc=Mae'r sgrin hon yn dangos golwg o weinydd FTP et SFTP. -SetupOfFTPClientModuleNotComplete=Mae'n ymddangos bod gosodiad y modiwl cleient FTP neu SFTP yn anghyflawn -FTPFeatureNotSupportedByYourPHP=Nid yw eich PHP yn cefnogi swyddogaethau FTP neu SFTP -FailedToConnectToFTPServer=Wedi methu cysylltu â'r gweinydd (gweinydd %s, porthladd %s) -FailedToConnectToFTPServerWithCredentials=Wedi methu mewngofnodi i'r gweinydd gyda mewngofnodi/cyfrinair diffiniedig -FTPFailedToRemoveFile=Wedi methu tynnu ffeil %s . -FTPFailedToRemoveDir=Wedi methu dileu cyfeiriadur %s : gwirio caniatadau a bod y cyfeiriadur yn wag. -FTPPassiveMode=Modd goddefol -ChooseAFTPEntryIntoMenu=Dewiswch wefan FTP/SFTP o'r ddewislen... -FailedToGetFile=Wedi methu cael ffeiliau %s diff --git a/htdocs/langs/cy_GB/holiday.lang b/htdocs/langs/cy_GB/holiday.lang index f3872ea8296..7f203ba35fb 100644 --- a/htdocs/langs/cy_GB/holiday.lang +++ b/htdocs/langs/cy_GB/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Gadael +Holidays=Leaves +Holiday=Leave CPTitreMenu=Gadael MenuReportMonth=Datganiad misol MenuAddCP=Cais am wyliau newydd +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Rhaid i chi alluogi'r modiwl Leave i weld y dudalen hon. AddCP=Gwnewch gais am wyliau DateDebCP=Dyddiad cychwyn @@ -56,6 +58,7 @@ ConfirmDeleteCP=Cadarnhau dileu'r cais hwn am ganiatâd? ErrorCantDeleteCP=Gwall nid oes gennych yr hawl i ddileu'r cais hwn am wyliau. CantCreateCP=Nid oes gennych yr hawl i wneud ceisiadau am wyliau. InvalidValidatorCP=Rhaid i chi ddewis y cymeradwywr ar gyfer eich cais am wyliau. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Rhaid i chi ddewis dyddiad cychwyn. NoDateFin=Rhaid i chi ddewis dyddiad gorffen. ErrorDureeCP=Nid yw eich cais am wyliau yn cynnwys diwrnod gwaith. @@ -79,6 +82,8 @@ MotifCP=Rheswm UserCP=Defnyddiwr ErrorAddEventToUserCP=Digwyddodd gwall wrth ychwanegu'r gwyliau eithriadol. AddEventToUserOkCP=Mae ychwanegu'r gwyliau eithriadol wedi'i gwblhau. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Gweld logiau newid LogCP=Log o'r holl ddiweddariadau a wnaed i "Cydbwysedd Absenoldeb" ActionByCP=Diweddarwyd gan @@ -86,6 +91,13 @@ UserUpdateCP=Diweddarwyd ar gyfer PrevSoldeCP=Balans Blaenorol NewSoldeCP=Balans Newydd alreadyCPexist=Mae cais am wyliau eisoes wedi'i wneud ar y cyfnod hwn. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Cais am ddiwrnod cychwyn yr absenoldeb LastDayOfHoliday=Cais am ddiwrnod absenoldeb sy'n dod i ben BoxTitleLastLeaveRequests=Ceisiadau gwyliau wedi'u haddasu diweddaraf %s @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s fel arfer yn ddiwrnod gwaith DIM BlockHolidayIfNegative=Blociwch os yw'r cydbwysedd yn negyddol LeaveRequestCreationBlockedBecauseBalanceIsNegative=Mae creu'r cais hwn am wyliau wedi'i rwystro oherwydd bod eich balans yn negyddol ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Rhaid i gais am adael %s gael ei ddrafftio, ei ganslo neu ei wrthod i gael ei ddileu +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/cy_GB/hrm.lang b/htdocs/langs/cy_GB/hrm.lang index 60bffa170b3..a2119f4a432 100644 --- a/htdocs/langs/cy_GB/hrm.lang +++ b/htdocs/langs/cy_GB/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Sefydliad agored CloseEtablishment=Sefydliad agos # Dictionary DictionaryPublicHolidays=Gadael - Gwyliau cyhoeddus -DictionaryDepartment=HRM - Rhestr adrannau +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=RhAD - Swyddi # Module Employees=Gweithwyr @@ -70,9 +70,9 @@ RequiredSkills=Sgiliau gofynnol ar gyfer y swydd hon UserRank=Safle Defnyddiwr SkillList=Rhestr sgiliau SaveRank=Cadw rheng -knowHow=Gwybod sut -HowToBe=Sut i fod -knowledge=Gwybodaeth +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Sylw gadael DateLastEval=Dyddiad y gwerthusiad diwethaf NoEval=Dim gwerthusiad wedi'i wneud ar gyfer y gweithiwr hwn @@ -88,3 +88,4 @@ DeleteSkill = Skill removed SkillsExtraFields=Attributs supplémentaires (Compétences) JobsExtraFields=Attributs supplémentaires (Emplois) EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/cy_GB/install.lang b/htdocs/langs/cy_GB/install.lang index 1369d751769..d2ad4f7b112 100644 --- a/htdocs/langs/cy_GB/install.lang +++ b/htdocs/langs/cy_GB/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Nid yw ffeil ffurfweddu %s yn ysgrifenadwy. Gwiri ConfFileIsWritable=Mae ffeil ffurfweddu %s yn ysgrifenadwy. ConfFileMustBeAFileNotADir=Rhaid i ffeil ffurfweddu %s fod yn ffeil, nid cyfeiriadur. ConfFileReload=Ail-lwytho paramedrau o ffeil ffurfweddu. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Mae'r PHP hwn yn cefnogi newidynnau POST a GET. PHPSupportPOSTGETKo=Mae'n bosibl nad yw eich gosodiad PHP yn cefnogi newidynnau POST a/neu GET. Gwiriwch y paramedr variables_order yn php.ini. PHPSupportSessions=Mae'r PHP hwn yn cefnogi sesiynau. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Efallai eich bod wedi teipio gwerth anghywir ar gyfe ErrorFailedToCreateDatabase=Wedi methu creu cronfa ddata '%s'. ErrorFailedToConnectToDatabase=Wedi methu cysylltu â chronfa ddata '%s'. ErrorDatabaseVersionTooLow=Fersiwn cronfa ddata (%s) yn rhy hen. Mae angen fersiwn %s neu uwch. -ErrorPHPVersionTooLow=Fersiwn PHP yn rhy hen. Mae angen fersiwn %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Cysylltiad i'r gweinydd yn llwyddiannus ond ni chanfuwyd cronfa ddata '%s'. ErrorDatabaseAlreadyExists=Mae cronfa ddata '%s' eisoes yn bodoli. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Os nad yw'r gronfa ddata yn bodoli, ewch yn ôl a gwiriwch yr opsiwn "Creu cronfa ddata". IfDatabaseExistsGoBackAndCheckCreate=Os oes cronfa ddata eisoes yn bodoli, ewch yn ôl a dad-diciwch yr opsiwn "Creu cronfa ddata". WarningBrowserTooOld=Fersiwn y porwr yn rhy hen. Argymhellir yn gryf eich bod yn uwchraddio'ch porwr i fersiwn diweddar o Firefox, Chrome neu Opera. diff --git a/htdocs/langs/cy_GB/knowledgemanagement.lang b/htdocs/langs/cy_GB/knowledgemanagement.lang index a7aa7f7bbeb..10de67e111d 100644 --- a/htdocs/langs/cy_GB/knowledgemanagement.lang +++ b/htdocs/langs/cy_GB/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Erthyglau KnowledgeRecord = Erthygl KnowledgeRecordExtraFields = Extrafields ar gyfer Erthygl GroupOfTicket=Grŵp o docynnau -YouCanLinkArticleToATicketCategory=Gallwch gysylltu erthygl â grŵp tocynnau (felly bydd yr erthygl yn cael ei hawgrymu yn ystod cyfnod cymhwyso tocynnau newydd) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Argymhellir ar gyfer tocynnau pan fydd grŵp SetObsolete=Gosod fel darfodedig diff --git a/htdocs/langs/cy_GB/loan.lang b/htdocs/langs/cy_GB/loan.lang index c5796d8780d..99b0c7cb78d 100644 --- a/htdocs/langs/cy_GB/loan.lang +++ b/htdocs/langs/cy_GB/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Ymrwymiad ariannol InterestAmount=Llog CapitalRemain=Cyfalaf yn aros TermPaidAllreadyPaid = Mae'r tymor hwn eisoes wedi'i dalu -CantUseScheduleWithLoanStartedToPaid = Methu â defnyddio'r trefnydd ar gyfer benthyciad gyda'r taliad wedi dechrau +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Ni allwch addasu llog os ydych yn defnyddio amserlen # Admin ConfigLoan=Ffurfwedd y benthyciad modiwl -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cyfalaf cyfrif cyfrifo yn ddiofyn -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Llog cyfrif cyfrifeg yn ddiofyn -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Yswiriant cyfrif cyfrifo yn ddiofyn +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Golygu ymrwymiad ariannol diff --git a/htdocs/langs/cy_GB/mailmanspip.lang b/htdocs/langs/cy_GB/mailmanspip.lang index 1db1989b38a..9ec01288a34 100644 --- a/htdocs/langs/cy_GB/mailmanspip.lang +++ b/htdocs/langs/cy_GB/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Cyflawnwyd y prawf tanysgrifio yn llwyddiannus MailmanDeletionSuccess=Cyflawnwyd y prawf dad-danysgrifio yn llwyddiannus SynchroMailManEnabled=Bydd diweddariad Mailman yn cael ei berfformio SynchroSpipEnabled=Bydd diweddariad Spip yn cael ei berfformio -DescADHERENT_MAILMAN_ADMINPW=Cyfrinair gweinyddwr Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL ar gyfer tanysgrifiadau Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL ar gyfer dad-danysgrifiadau Mailman DescADHERENT_MAILMAN_LISTS=Rhestr(au) ar gyfer arysgrif awtomatig o aelodau newydd (wedi'u gwahanu gan goma) diff --git a/htdocs/langs/cy_GB/mails.lang b/htdocs/langs/cy_GB/mails.lang index e8abe9219d3..bda452eafc9 100644 --- a/htdocs/langs/cy_GB/mails.lang +++ b/htdocs/langs/cy_GB/mails.lang @@ -7,10 +7,10 @@ MailCard=Cerdyn e-bost MailRecipients=Derbynwyr MailRecipient=Derbynnydd MailTitle=Disgrifiad -MailFrom=Anfonwr +MailFrom=From MailErrorsTo=Gwallau i MailReply=Ateb i -MailTo=Derbynnydd +MailTo=To MailToUsers=I ddefnyddiwr(wyr) MailCC=Copi i MailToCCUsers=Copïo i ddefnyddiwr(wyr) @@ -178,3 +178,4 @@ IsAnAnswer=Yn ateb e-bost cychwynnol RecordCreatedByEmailCollector=Cofnod a grëwyd gan y Casglwr E-bost %s o e-bost %s DefaultBlacklistMailingStatus=Gwerth rhagosodedig ar gyfer maes '%s' wrth greu cyswllt newydd DefaultStatusEmptyMandatory=Yn wag ond yn orfodol +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/cy_GB/main.lang b/htdocs/langs/cy_GB/main.lang index d6c76458644..2939668089a 100644 --- a/htdocs/langs/cy_GB/main.lang +++ b/htdocs/langs/cy_GB/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=Nid oes templed ar gael ar gyfer y math hwn o e-bost AvailableVariables=Newidynnau amnewid sydd ar gael NoTranslation=Dim cyfieithiad Translation=Cyfieithiad +Translations=Translations CurrentTimeZone=TimeZone PHP (gweinydd) EmptySearchString=Rhowch feini prawf chwilio nad ydynt yn wag EnterADateCriteria=Rhowch feini prawf dyddiad @@ -199,6 +206,7 @@ Valid=Dilys Approve=Cymeradwyo Disapprove=Anghymeradwyo ReOpen=Ail-agor +OpenVerb=Open Upload=Llwytho i fyny ToLink=Cyswllt Select=Dewiswch @@ -216,7 +224,7 @@ UserGroup=Grŵp defnyddwyr UserGroups=Grwpiau defnyddwyr NoUserGroupDefined=Dim grŵp defnyddwyr wedi'i ddiffinio Password=Cyfrinair -PasswordRetype=Ail-deipiwch eich cyfrinair +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Sylwch fod llawer o nodweddion/modiwlau wedi'u hanalluogi yn yr arddangosiad hwn. Name=Enw NameSlashCompany=Enw / Cwmni @@ -345,7 +353,7 @@ KiloBytes=Cilobytes MegaBytes=Megabeit GigaBytes=Gigabeit TeraBytes=Terabytes -UserAuthor=Wedi ei gado gan +UserAuthor=Created by UserModif=Diweddarwyd gan b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Digwyddiadau ar gyfer y cyswllt/cyfeiriad hwn ActionsOnContract=Digwyddiadau ar gyfer y contract hwn ActionsOnMember=Digwyddiadau am yr aelod hwn ActionsOnProduct=Digwyddiadau am y cynnyrch hwn +ActionsOnAsset=Events for this fixed asset NActionsLate=%s hwyr ToDo=Gwneud Completed=Cwblhawyd @@ -712,6 +721,7 @@ FeatureDisabled=Nodwedd wedi'i hanalluogi MoveBox=Symud teclyn Offered=Cynigiwyd NotEnoughPermissions=Nid oes gennych ganiatâd ar gyfer y weithred hon +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Enw'r sesiwn Method=Dull Receive=Derbyn @@ -801,6 +811,7 @@ URLPhoto=URL y llun / logo SetLinkToAnotherThirdParty=Cyswllt i drydydd parti arall LinkTo=Dolen i LinkToProposal=Dolen i'r cynnig +LinkToExpedition= Link to expedition LinkToOrder=Dolen i archeb LinkToInvoice=Dolen i'r anfoneb LinkToTemplateInvoice=Dolen i anfoneb templed @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Dolen llwytho i lawr preifat PrivateDownloadLinkDesc=Mae angen i chi fod wedi mewngofnodi ac mae angen caniatâd arnoch i weld neu lawrlwytho'r ffeil Download=Lawrlwythwch DownloadDocument=Lawrlwytho dogfen +DownloadSignedDocument=Download signed document ActualizeCurrency=Diweddaru cyfradd arian cyfred Fiscalyear=Blwyddyn ariannol ModuleBuilder=Adeiladwr Modiwl a Chymhwysiad @@ -1044,6 +1056,7 @@ SearchIntoContracts=Contractau SearchIntoCustomerShipments=Cludo cwsmeriaid SearchIntoExpenseReports=Adroddiadau treuliau SearchIntoLeaves=Gadael +SearchIntoKM=Knowledge base SearchIntoTickets=Tocynnau SearchIntoCustomerPayments=Taliadau cwsmeriaid SearchIntoVendorPayments=Taliadau gwerthwr @@ -1135,15 +1148,29 @@ EventReminder=Nodyn Atgoffa am Ddigwyddiad UpdateForAllLines=Diweddariad ar gyfer pob llinell OnHold=Ar stop Civility=Gwareiddiad -AffectTag=Effeithio Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Creu defnyddiwr allanol -ConfirmAffectTag=Effaith Swmp Tag -ConfirmAffectTagQuestion=Ydych chi'n siŵr eich bod am effeithio ar dagiau i'r cofnod(au) a ddewiswyd %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Ni chanfuwyd math o dag ar gyfer y math o gofnodion +Rate=Cyfradd +SupervisorNotFound=Supervisor not found CopiedToClipboard=Wedi'i gopïo i'r clipfwrdd InformationOnLinkToContract=Dim ond cyfanswm holl linellau'r contract yw'r swm hwn. Nid oes unrhyw syniad o amser yn cael ei ystyried. ConfirmCancel=Ydych chi'n siŵr eich bod am ganslo EmailMsgID=E-bost MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Wedi'i osod i alluogi SetToDisabled=Wedi'i osod i analluogi ConfirmMassEnabling=cadarnhad galluogi màs @@ -1172,5 +1199,14 @@ Terminated=Terfynwyd AddLineOnPosition=Add line on position (at the end if empty) ConfirmAllocateCommercial=Assign sales representative confirmation ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? -CommercialsAffected=Sales representatives affected -CommercialAffected=Sales representative affected +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/cy_GB/members.lang b/htdocs/langs/cy_GB/members.lang index 6ab25d88d17..a51460a8782 100644 --- a/htdocs/langs/cy_GB/members.lang +++ b/htdocs/langs/cy_GB/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Aelod (enw: %s , login: % ErrorUserPermissionAllowsToLinksToItselfOnly=Am resymau diogelwch, rhaid i chi gael caniatâd i olygu pob defnyddiwr er mwyn gallu cysylltu aelod â defnyddiwr nad yw'n eiddo i chi. SetLinkToUser=Dolen i ddefnyddiwr o Ddolibarr SetLinkToThirdParty=Cysylltiad â thrydydd parti Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Rhestr o aelodau MembersListToValid=Rhestr o aelodau drafft (i'w dilysu) @@ -34,8 +35,10 @@ DateSubscription=Dyddiad aelodaeth DateEndSubscription=Dyddiad gorffen aelodaeth EndSubscription=Diwedd aelodaeth SubscriptionId=ID y cyfraniad -WithoutSubscription=Heb gyfraniad -MemberId=ID aelod +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Aelod newydd MemberType=Math o aelod MemberTypeId=ID math aelod @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Ni ellir dileu'r math o aelod NewSubscription=Cyfraniad newydd NewSubscriptionDesc=Mae'r ffurflen hon yn caniatáu ichi gofnodi'ch tanysgrifiad fel aelod newydd o'r sefydliad. Os ydych am adnewyddu eich tanysgrifiad (os ydych eisoes yn aelod), cysylltwch â'r bwrdd sylfaen yn lle hynny trwy e-bost %s. Subscription=Cyfraniad +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Cyfraniadau SubscriptionLate=Hwyr SubscriptionNotReceived=Ni dderbyniwyd cyfraniad erioed @@ -135,7 +144,7 @@ CardContent=Cynnwys eich cerdyn aelod # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Rydym am roi gwybod ichi fod eich cais am aelodaeth wedi’i dderbyn.

    ThisIsContentOfYourMembershipWasValidated=Rydym am roi gwybod ichi fod eich aelodaeth wedi'i dilysu gyda'r wybodaeth ganlynol:

    -ThisIsContentOfYourSubscriptionWasRecorded=Rydym am roi gwybod ichi fod eich tanysgrifiad newydd wedi'i recordio.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Rydym am roi gwybod i chi fod eich tanysgrifiad ar fin dod i ben neu wedi dod i ben yn barod (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Gobeithiwn y byddwch yn ei adnewyddu.

    ThisIsContentOfYourCard=Dyma grynodeb o'r wybodaeth sydd gennym amdanoch chi. Cysylltwch â ni os oes unrhyw beth yn anghywir.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Testun yr e-bost hysbysu a dderbyniwyd rhag ofn y bydd gwestai yn arysgrif yn awtomatig @@ -198,8 +207,10 @@ NbOfSubscriptions=Nifer y cyfraniadau AmountOfSubscriptions=Swm a gasglwyd o gyfraniadau TurnoverOrBudget=Trosiant (ar gyfer cwmni) neu Gyllideb (ar gyfer sylfaen) DefaultAmount=Swm y cyfraniad rhagosodedig -CanEditAmount=Gall yr ymwelydd ddewis/golygu swm ei gyfraniad -MEMBER_NEWFORM_PAYONLINE=Neidiwch ar dudalen talu ar-lein integredig +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Wrth natur MembersStatisticsByProperties=Ystadegau aelodau yn ôl natur VATToUseForSubscriptions=Cyfradd TAW i'w defnyddio ar gyfer cyfraniadau @@ -218,3 +229,6 @@ XExternalUserCreated=%s defnyddiwr(wyr) allanol wedi'u creu ForceMemberNature=Natur aelod o'r heddlu (Unigol neu Gorfforaeth) CreateDolibarrLoginDesc=Mae creu mewngofnodi defnyddiwr ar gyfer aelodau yn caniatáu iddynt gysylltu â'r rhaglen. Yn dibynnu ar yr awdurdodiadau a roddir, byddant yn gallu, er enghraifft, ymgynghori neu addasu eu ffeil eu hunain. CreateDolibarrThirdPartyDesc=Trydydd parti yw’r endid cyfreithiol a ddefnyddir ar yr anfoneb os penderfynwch gynhyrchu anfoneb ar gyfer pob cyfraniad. Byddwch yn gallu ei greu yn ddiweddarach yn ystod y broses o gofnodi'r cyfraniad. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/cy_GB/modulebuilder.lang b/htdocs/langs/cy_GB/modulebuilder.lang index 93e8b1657f7..394bbddb36b 100644 --- a/htdocs/langs/cy_GB/modulebuilder.lang +++ b/htdocs/langs/cy_GB/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=Rhaid i'r offeryn hwn gael ei ddefnyddio gan ddefnyddwyr neu ddatblygwyr profiadol yn unig. Mae'n darparu cyfleustodau i adeiladu neu olygu eich modiwl eich hun. Mae dogfennau ar gyfer datblygiad llaw amgen yma . EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Llwybr lle mae modiwlau'n cael eu cynhyrchu/golygu (cyfeirlyfr cyntaf ar gyfer modiwlau allanol wedi'i ddiffinio i %s): %s ModuleBuilderDesc3=Modiwlau a gynhyrchwyd/golygu a ddarganfuwyd: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Mae modiwl yn cael ei ganfod fel un 'golygadwy' pan fo'r ffei NewModule=Modiwl newydd NewObjectInModulebuilder=Gwrthrych newydd NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Allwedd modiwl ObjectKey=Allwedd gwrthrych DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Llwybr i sip y modiwl/pecyn cais PathToModuleDocumentation=Llwybr i ffeil dogfennaeth y modiwl/cymhwysiad (%s) SpaceOrSpecialCharAreNotAllowed=Ni chaniateir bylchau neu nodau arbennig. FileNotYetGenerated=Ffeil heb ei chynhyrchu eto +GenerateCode=Generate code RegenerateClassAndSql=Gorfodi diweddaru ffeiliau .class a .sql RegenerateMissingFiles=Cynhyrchu ffeiliau coll SpecificationFile=Ffeil o ddogfennaeth LanguageFile=Ffeil ar gyfer iaith ObjectProperties=Priodweddau Gwrthrych +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=A ydych yn siŵr eich bod am ddileu'r eiddo %s ? Bydd hyn yn newid cod yn y dosbarth PHP ond hefyd yn dileu'r golofn o'r diffiniad tabl o wrthrych. NotNull=Ddim yn NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Yn fesur DirScanned=Cyfeiriadur wedi'i sganio NoTrigger=Dim sbardun NoWidget=Dim teclyn -GoToApiExplorer=Fforiwr API +ApiExplorer=API explorer ListOfMenusEntries=Rhestr o gofnodion dewislen ListOfDictionariesEntries=Rhestr o gofnodion geiriaduron ListOfPermissionsDefined=Rhestr o ganiatadau diffiniedig SeeExamples=Gweler enghreifftiau yma -EnabledDesc=Amod i gael y maes hwn yn weithredol (Enghreifftiau: 1 neu $conf->global-> MYMODULE_MYOPTION) -VisibleDesc=Ydy'r cae yn weladwy? (Enghreifftiau: 0=Byth yn weladwy, 1=Yn weladwy ar y rhestr a chreu/diweddaru/gweld ffurflenni, 2=Yn weladwy ar y rhestr yn unig, 3=Yn weladwy ar y ffurflen creu/diweddaru/gweld yn unig (nid y rhestr), 4=Yn weladwy ar y rhestr a diweddaru/gweld ffurflen yn unig (ddim yn creu), 5=Ffurflen gweld diwedd rhestr yn unig i'w gweld (nid creu, nid diweddaru).

    Mae defnyddio gwerth negyddol yn golygu nad yw maes yn cael ei ddangos yn ddiofyn ar y rhestr ond gellir ei ddewis i'w weld).

    Gall fod yn fynegiant, er enghraifft:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user-> holine->days->holin-19bz0) -DisplayOnPdfDesc=Arddangos y maes hwn ar ddogfennau PDF gydnaws, gallwch reoli sefyllfa gyda maes "Swyddfa".
    Ar hyn o bryd, a elwir modelau chydweddolion PDF yw: eratosthene (gorchymyn), espadon (llong), sbwng (anfonebau), gwyrddlas (propal / dyfynbris), cornas (gorchymyn cyflenwr)

    Ar gyfer y ddogfen:
    0 = Nid harddangos
    1 = arddangos
    2 = arddangos dim ond os nad gwagio

    ar gyfer llinellau ddogfen:
    0 = nid harddangos
    1 = harddangos mewn colofn
    3 = arddangos yng ngholofn disgrifiad llinell ar ôl y disgrifiad
    4 = arddangos yng ngholofn disgrifiad ar ôl y disgrifiad yn unig os nad yn wag -DisplayOnPdf=Arddangos ar PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=A ellir cronni gwerth y maes i gael cyfanswm yn y rhestr? (Enghreifftiau: 1 neu 0) SearchAllDesc=Ydy'r maes yn cael ei ddefnyddio i wneud chwiliad o'r teclyn chwilio cyflym? (Enghreifftiau: 1 neu 0) SpecDefDesc=Rhowch yma'r holl ddogfennaeth yr ydych am ei darparu gyda'ch modiwl nad yw eisoes wedi'i ddiffinio gan dabiau eraill. Gallwch ddefnyddio .md neu well, y gystrawen gyfoethog .asciidoc. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Defnyddiwch URL golygydd penodol UseSpecificFamily = Defnyddiwch deulu penodol UseSpecificAuthor = Defnyddiwch awdur penodol UseSpecificVersion = Defnyddiwch fersiwn gychwynnol benodol -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Os byddwch yn gwirio hyn, bydd rhywfaint o god yn cael ei gynhyrchu i ychwanegu blwch "Cynhyrchu dogfen" ar y cofnod. -ShowOnCombobox=Dangos gwerth yn y blwch cyfuno +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Allwedd ar gyfer cyngor offer CSSClass=CSS ar gyfer golygu/creu ffurflen CSSViewClass=CSS i'w darllen CSSListClass=CSS ar gyfer rhestr NotEditable=Nid oes modd ei olygu ForeignKey=Allwedd dramor -TypeOfFieldsHelp=Math o feysydd:
    varchar(99), dwbl(24,8), real, testun, html, datetime, stamp amser, cyfanrif, cyfanrif:Enw Dosbarth:relativepath/to/classfile.class.php[:1[:filter]]
    Mae '1' yn golygu ein bod yn ychwanegu botwm + ar ôl y combo i greu'r cofnod
    Mae 'hidlo' yn gyflwr sql, enghraifft: 'status=1 AND fk_user=__USER_ID__ AC endid IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Trawsnewidydd Ascii i HTML AsciiToPdfConverter=Trawsnewidydd Ascii i PDF TableNotEmptyDropCanceled=Bwrdd ddim yn wag. Mae gollwng wedi'i ganslo. ModuleBuilderNotAllowed=Mae'r adeiladwr modiwl ar gael ond nid yw'n cael ei ganiatáu i'ch defnyddiwr. ImportExportProfiles=Proffiliau mewnforio ac allforio -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Rhybudd: Nid yw'r gronfa ddata yn cael ei diweddaru'n awtomatig, rhaid i chi ddinistrio tablau ac analluogi-alluogi'r modiwl i gael tablau wedi'u hail-greu LinkToParentMenu=Dewislen rhieni (fk_xxxx dewislen) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/cy_GB/mrp.lang b/htdocs/langs/cy_GB/mrp.lang index 855839ae5a8..04a4b8cf833 100644 --- a/htdocs/langs/cy_GB/mrp.lang +++ b/htdocs/langs/cy_GB/mrp.lang @@ -11,8 +11,8 @@ Bom=Biliau o Ddeunyddiau BillOfMaterials=Bil o Ddeunyddiau BillOfMaterialsLines=Llinellau Mesur Deunyddiau BOMsSetup=Gosod modiwl BOM -ListOfBOMs=Rhestr o filiau deunydd - BOM -ListOfManufacturingOrders=Rhestr o Orchmynion Gweithgynhyrchu +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Bil deunyddiau newydd ProductBOMHelp=Cynnyrch i'w greu (neu ddadosod) gyda'r BOM hwn.
    Nodyn: Nid yw cynhyrchion gyda'r priodwedd 'Nature of product' = 'Deunydd crai' yn weladwy yn y rhestr hon. BOMsNumberingModules=Templedi rhifo BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=A ydych yn siŵr eich bod am glonio'r bil deunyddiau ConfirmCloneMo=A ydych yn siŵr eich bod am glonio'r Gorchymyn Gweithgynhyrchu %s ? ManufacturingEfficiency=Effeithlonrwydd gweithgynhyrchu ConsumptionEfficiency=Effeithlonrwydd defnydd +Consumption=Consumption ValueOfMeansLoss=Mae gwerth 0.95 yn golygu cyfartaledd o 5%% o golled yn ystod y gweithgynhyrchu neu'r dadosod ValueOfMeansLossForProductProduced=Mae gwerth 0.95 yn golygu cyfartaledd o 5%% o golli cynnyrch a gynhyrchwyd DeleteBillOfMaterials=Dileu Bil Deunyddiau @@ -82,6 +83,7 @@ ProductsToProduce=Cynhyrchion i'w cynhyrchu UnitCost=Cost uned TotalCost=Cyfanswm y gost BOMTotalCost=Y gost i gynhyrchu'r BOM hwn yn seiliedig ar gost pob swm a chynnyrch i'w fwyta (defnyddiwch y pris cost os yw wedi'i ddiffinio, neu'r pris cyfartalog wedi'i bwysoli os caiff ei ddiffinio, fel arall y pris prynu gorau) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Mae'n rhaid eich bod wedi dechrau'r cynhyrchiad yn gyntaf i gau Gorchymyn Gweithgynhyrchu (Gweler tab '%s'). Ond gallwch ei ganslo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ni ellir defnyddio pecyn i mewn i BOM neu MO Workstation=Gweithfan @@ -112,3 +114,7 @@ MOAndLines=Gorchmynion Gweithgynhyrchu a llinellau MoChildGenerate=Generate Child Mo ParentMo=MO Parent MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/cy_GB/oauth.lang b/htdocs/langs/cy_GB/oauth.lang index 710d863daf1..361b2de6c37 100644 --- a/htdocs/langs/cy_GB/oauth.lang +++ b/htdocs/langs/cy_GB/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Cynhyrchwyd tocyn a'i gadw mewn cronfa ddata leol NewTokenStored=Tocyn wedi'i dderbyn a'i gadw ToCheckDeleteTokenOnProvider=Cliciwch yma i wirio/dileu awdurdodiad sydd wedi'i gadw gan ddarparwr %s OAuth TokenDeleted=Tocyn wedi'i ddileu -RequestAccess=Cliciwch yma i ofyn am / adnewyddu mynediad a derbyn tocyn newydd i'w arbed -DeleteAccess=Cliciwch yma i ddileu tocyn +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Defnyddiwch yr URL canlynol fel yr URI Ailgyfeirio wrth greu eich manylion adnabod gyda'ch darparwr OAuth: -ListOfSupportedOauthProviders=Rhowch y manylion adnabod a ddarparwyd gan eich darparwr OAuth2. Dim ond darparwyr OAuth2 a gefnogir sydd wedi'u rhestru yma. Gall y gwasanaethau hyn gael eu defnyddio gan fodiwlau eraill sydd angen eu dilysu OAuth2. -OAuthSetupForLogin=Tudalen i gynhyrchu tocyn OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Gweler y tab blaenorol +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID a Chyfrinach TOKEN_REFRESH=Token Refresh Presennol TOKEN_EXPIRED=Tocyn wedi dod i ben @@ -23,10 +24,13 @@ TOKEN_DELETE=Dileu tocyn sydd wedi'i gadw OAUTH_GOOGLE_NAME=OAuth gwasanaeth Google OAUTH_GOOGLE_ID=ID Google OAuth OAUTH_GOOGLE_SECRET=OAuth Cyfrinach Google -OAUTH_GOOGLE_DESC=Ewch i y dudalen hon yna "Credentials" i greu tystlythyrau OAuth OAUTH_GITHUB_NAME=Gwasanaeth OAuth GitHub OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=Cyfrinach OAuth GitHub -OAUTH_GITHUB_DESC=Ewch i y dudalen hon yna "Cofrestru cais newydd" i greu manylion OAuth +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=Prawf Stripe OAuth OAUTH_STRIPE_LIVE_NAME=OAuth Stripe yn Fyw +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/cy_GB/products.lang b/htdocs/langs/cy_GB/products.lang index 08594eb1c6c..c85160a7f1c 100644 --- a/htdocs/langs/cy_GB/products.lang +++ b/htdocs/langs/cy_GB/products.lang @@ -262,7 +262,7 @@ Quarter1=1af. Chwarter Quarter2=2il. Chwarter Quarter3=3ydd. Chwarter Quarter4=4ydd. Chwarter -BarCodePrintsheet=Argraffu cod bar +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Gyda'r offeryn hwn, gallwch argraffu dalennau o sticeri cod bar. Dewiswch fformat eich tudalen sticer, math o god bar a gwerth y cod bar, yna cliciwch ar y botwm %s . NumberOfStickers=Nifer y sticeri i'w hargraffu ar y dudalen PrintsheetForOneBarCode=Argraffwch sawl sticer ar gyfer un cod bar @@ -345,7 +345,7 @@ PossibleValues=Gwerthoedd posibl GoOnMenuToCreateVairants=Ewch ar y ddewislen %s - %s i baratoi amrywiadau priodoledd (fel lliwiau, maint, ...) UseProductFournDesc=Ychwanegu nodwedd i ddiffinio'r disgrifiad cynnyrch a ddiffinnir gan y gwerthwyr (ar gyfer pob cyfeiriad gwerthwr) yn ychwanegol at y disgrifiad ar gyfer cwsmeriaid ProductSupplierDescription=Disgrifiad gwerthwr ar gyfer y cynnyrch -UseProductSupplierPackaging=Defnyddiwch becynnu ar brisiau cyflenwyr (ailgyfrifwch y meintiau yn ôl y pecynnau a osodwyd ar bris y cyflenwr wrth ychwanegu/diweddaru llinell yn nogfennau'r cyflenwr) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Pecynnu PackagingForThisProductDesc=Byddwch yn prynu lluosrif o'r swm hwn yn awtomatig. QtyRecalculatedWithPackaging=Ailgyfrifwyd maint y llinell yn ôl pecynnu cyflenwyr @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Dim ond ar yr amrywiad cynnyrch sydd ar gael ProductsPricePerCustomer=Prisiau cynnyrch fesul cwsmer ProductSupplierExtraFields=Nodweddion Ychwanegol (Prisiau Cyflenwr) DeleteLinkedProduct=Dileu'r cynnyrch plentyn sy'n gysylltiedig â'r cyfuniad -AmountUsedToUpdateWAP=Swm i'w ddefnyddio i ddiweddaru'r Pris Cyfartalog Pwysol +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Pris cyfartalog wedi'i bwysoli PMPValueShort=WAP mandatoryperiod=Cyfnodau gorfodol @@ -416,6 +416,7 @@ ProductsMergeSuccess=Products have been merged ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Trowch ymlaen statws gwerthu SwitchOnPurchaseStatus=Trowch y statws prynu ymlaen +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Caeau Ychwanegol (symudiad stoc) InventoryExtraFields= Meysydd Ychwanegol (rhestr) ScanOrTypeOrCopyPasteYourBarCodes=Sganiwch neu deipiwch neu copïwch/gludwch eich codau bar @@ -424,3 +425,7 @@ PMPExpected=Expected PMP ExpectedValuation=Expected Valuation PMPReal=Real PMP RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/cy_GB/projects.lang b/htdocs/langs/cy_GB/projects.lang index 5988835ab94..ffc968638a0 100644 --- a/htdocs/langs/cy_GB/projects.lang +++ b/htdocs/langs/cy_GB/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Mae'r olwg hon yn cyflwyno'r holl brosiectau a thasgau y caniate TasksDesc=Mae'r wedd hon yn cyflwyno'r holl brosiectau a thasgau (mae eich caniatâd defnyddiwr yn rhoi caniatâd i chi weld popeth). AllTaskVisibleButEditIfYouAreAssigned=Mae'r holl dasgau ar gyfer prosiectau cymwys yn weladwy, ond gallwch nodi amser yn unig ar gyfer tasg a neilltuwyd i'r defnyddiwr dethol. Neilltuo tasg os oes angen i chi nodi amser arno. OnlyYourTaskAreVisible=Dim ond tasgau a neilltuwyd i chi sy'n weladwy. Os oes angen i chi nodi amser ar dasg ac os nad yw'r dasg yn weladwy yma, yna mae angen i chi aseinio'r dasg i chi'ch hun. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Tasgau prosiectau ProjectCategories=Tagiau/categorïau prosiect NewProject=Prosiect newydd @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Arwain nifer y prosiectau agored yn ôl sta OpportunitiesStatusForProjects=Arwain nifer y prosiectau yn ôl statws ShowProject=Sioe prosiect ShowTask=Dangos tasg +SetThirdParty=Set third party SetProject=Prosiect gosod +OutOfProject=Out of project NoProject=Dim prosiect wedi'i ddiffinio nac yn eiddo iddo NbOfProjects=Nifer y prosiectau NbOfTasks=Nifer y tasgau @@ -122,7 +125,8 @@ ValidateProject=Dilysu prosiect ConfirmValidateProject=Ydych chi'n siŵr eich bod am ddilysu'r prosiect hwn? CloseAProject=Prosiect cau ConfirmCloseAProject=Ydych chi'n siŵr eich bod am gau'r prosiect hwn? -AlsoCloseAProject=Hefyd cau'r prosiect (cadwch ef ar agor os oes angen i chi ddilyn tasgau cynhyrchu arno o hyd) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Prosiect agored ConfirmReOpenAProject=Ydych chi'n siŵr eich bod am ail-agor y prosiect hwn? ProjectContact=Cysylltiadau'r prosiect @@ -165,7 +169,7 @@ OpportunityProbability=Tebygolrwydd arweiniol OpportunityProbabilityShort=Arwain probab. OpportunityAmount=Swm arweiniol OpportunityAmountShort=Swm arweiniol -OpportunityWeightedAmount=Swm wedi'i bwysoli cyfle +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Gyferbyn. swm pwysol OpportunityAmountAverageShort=Swm plwm cyfartalog OpportunityAmountWeigthedShort=Swm plwm wedi'i bwysoli @@ -238,7 +242,7 @@ OppStatusPENDING=Arfaeth OppStatusWON=Ennill OppStatusLOST=Wedi colli Budget=Cyllideb -AllowToLinkFromOtherCompany=Caniatáu i gysylltu prosiect gan gwmni arall

    A0B5BA1A8CAZZ0 GWERTHOEDD GOFAL: A0342FCCFA19BZ0 - Gall cysylltu unrhyw brosiectau, hyd yn oed yn cysylltu unrhyw brosiectau, hyd yn oed prosiectau o gwmnïau eraill A0342FCCFA19BZ0 - rhestr o IDau trydydd parti wedi'u gwahanu gan atalnodau: gallant gysylltu holl brosiectau'r trydydd parti hyn (Enghraifft: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Prosiectau %s diweddaraf LatestModifiedProjects=Prosiectau wedi'u haddasu %s diweddaraf OtherFilteredTasks=Tasgau eraill wedi'u hidlo @@ -259,7 +263,7 @@ TimeSpentInvoiced=Amser a dreuliwyd wedi'i bilio TimeSpentForIntervention=Amser a dreulir TimeSpentForInvoice=Amser a dreulir OneLinePerUser=Un llinell i bob defnyddiwr -ServiceToUseOnLines=Gwasanaeth i'w ddefnyddio ar linellau +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Mae anfoneb %s wedi'i chynhyrchu o'r amser a dreuliwyd ar y prosiect InterventionGeneratedFromTimeSpent=Mae ymyrraeth %s wedi'i gynhyrchu o'r amser a dreuliwyd ar y prosiect ProjectBillTimeDescription=Gwiriwch a ydych chi'n nodi taflen amser ar dasgau'r prosiect A'ch bod yn bwriadu cynhyrchu anfoneb(au) o'r daflen amser i filio cwsmer y prosiect (peidiwch â gwirio a ydych yn bwriadu creu anfoneb nad yw'n seiliedig ar daflenni amser a gofnodwyd). Nodyn: I gynhyrchu anfoneb, ewch ar y tab 'Amser a dreuliwyd' o'r prosiect a dewiswch linellau i'w cynnwys. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Cyfrifir elw gan ddefnyddio AddPersonToTask=Ychwanegu at dasgau hefyd UsageOrganizeEvent=Defnydd: Trefniadaeth Digwyddiadau PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Dosbarthu'r prosiect fel un sydd ar gau pan fydd ei holl dasgau wedi'u cwblhau (cynnydd 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Sylwch: ni fydd hyn yn effeithio ar brosiectau presennol gyda'r holl dasgau ar gynnydd 100%%: bydd yn rhaid i chi eu cau â llaw. Mae'r opsiwn hwn yn effeithio ar brosiectau agored yn unig. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Dewiswch linellau o amser a dreulir sydd heb eu bilio, yna gweithred swmp "Cynhyrchu Anfoneb" i'w bilio ProjectTasksWithoutTimeSpent=Tasgau prosiect heb dreulio amser FormForNewLeadDesc=Diolch i chi lenwi'r ffurflen ganlynol i gysylltu â ni. Gallwch hefyd anfon e-bost atom yn uniongyrchol i %s . @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/cy_GB/recruitment.lang b/htdocs/langs/cy_GB/recruitment.lang index a5798d61e07..d501b087afd 100644 --- a/htdocs/langs/cy_GB/recruitment.lang +++ b/htdocs/langs/cy_GB/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Recriwtiwr e-bost ToUseAGenericEmail=I ddefnyddio e-bost generig. Os na chaiff ei ddiffinio, bydd e-bost y sawl sy'n gyfrifol am recriwtio yn cael ei ddefnyddio NewCandidature=Cais newydd ListOfCandidatures=Rhestr o geisiadau -RequestedRemuneration=Cais am dâl -ProposedRemuneration=Tâl arfaethedig +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract wedi'i gynnig ContractSigned=Contract wedi'i lofnodi ContractRefused=Gwrthodwyd y contract RecruitmentCandidature=Cais JobPositions=Swyddi swyddi RecruitmentCandidatures=Ceisiadau -InterviewToDo=Cyfweliad i'w wneud +InterviewToDo=Contacts to follow AnswerCandidature=Ateb cais YourCandidature=Eich cais YourCandidatureAnswerMessage=Diolch i chi am eich cais.
    ... diff --git a/htdocs/langs/cy_GB/salaries.lang b/htdocs/langs/cy_GB/salaries.lang index c66eb70eac6..e9c80a4b865 100644 --- a/htdocs/langs/cy_GB/salaries.lang +++ b/htdocs/langs/cy_GB/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cyfrif cyfrifo a ddefnyddir ar gyfer trydydd parti defnyddwyr -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Bydd y cyfrif cyfrifyddu pwrpasol a ddiffinnir ar gerdyn defnyddiwr yn cael ei ddefnyddio ar gyfer cyfrifyddu Subledger yn unig. Bydd yr un hwn yn cael ei ddefnyddio ar gyfer y Cyfriflyfr Cyffredinol ac fel gwerth rhagosodedig cyfrifyddu Subledger os nad yw cyfrif cyfrif defnyddiwr pwrpasol ar ddefnyddiwr wedi'i ddiffinio. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cyfrif cyfrifo yn ddiofyn ar gyfer taliadau cyflog CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Yn ddiofyn, gadewch yn wag yr opsiwn "Creu cyfanswm taliad yn awtomatig" wrth greu Cyflog Salary=Cyflog diff --git a/htdocs/langs/cy_GB/stocks.lang b/htdocs/langs/cy_GB/stocks.lang index 05e0ffee42d..6b59ee75b9e 100644 --- a/htdocs/langs/cy_GB/stocks.lang +++ b/htdocs/langs/cy_GB/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Dyddiad yn y dyfodol StocksByLotSerial=Stociau fesul lot/cyfres LotSerial=Llawer/Cyfresi LotSerialList=Rhestr o lot/cyfresi +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Symudiadau ErrorWarehouseRefRequired=Mae angen enw cyfeirnod warws ListOfWarehouses=Rhestr o warysau @@ -48,7 +49,7 @@ StockCorrection=Cywiro stoc CorrectStock=Stoc cywir StockTransfer=Trosglwyddo stoc TransferStock=Trosglwyddo stoc -MassStockTransferShort=Trosglwyddiad stoc torfol +MassStockTransferShort=Bulk stock change StockMovement=Symudiad stoc StockMovements=Symudiadau stoc NumberOfUnit=Nifer o unedau @@ -146,8 +147,9 @@ Replenishments=Adnewyddiadau NbOfProductBeforePeriod=Swm y cynnyrch %s mewn stoc cyn y cyfnod dethol (< %s) NbOfProductAfterPeriod=Swm y cynnyrch %s mewn stoc ar ôl cyfnod dethol (> %s) MassMovement=Symudiad torfol -SelectProductInAndOutWareHouse=Dewiswch warws ffynhonnell a warws targed, cynnyrch a maint yna cliciwch "%s". Unwaith y gwneir hyn ar gyfer yr holl symudiadau gofynnol, cliciwch ar "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Trosglwyddo cofnodion +RecordMovements=Record stock movements ReceivingForSameOrder=Derbynebau ar gyfer yr archeb hon StockMovementRecorded=Symudiadau stoc wedi'u cofnodi RuleForStockAvailability=Rheolau ar ofynion stoc @@ -234,7 +236,7 @@ StockIncrease=Cynnydd stoc StockDecrease=Gostyngiad stoc InventoryForASpecificWarehouse=Rhestr ar gyfer warws penodol InventoryForASpecificProduct=Rhestr ar gyfer cynnyrch penodol -StockIsRequiredToChooseWhichLotToUse=Mae angen stoc i ddewis pa lot i'w ddefnyddio +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Llu i AlwaysShowFullArbo=Arddangos coeden lawn o warws ar naidlen o ddolenni warws (Rhybudd: Gall hyn leihau perfformiadau yn ddramatig) StockAtDatePastDesc=Yma gallwch weld y stoc (stoc go iawn) ar ddyddiad penodol yn y gorffennol @@ -265,10 +267,53 @@ ProductBarcodeDoesNotExist=Nid yw cynnyrch gyda chod bar yn bodoli WarehouseId=ID warws WarehouseRef=Warws Cyf SaveQtyFirst=Arbedwch y meintiau go iawn a ddyfeisiwyd yn gyntaf, cyn gofyn am greu'r symudiad stoc. +ToStart=Start InventoryStartedShort=Dechreuwyd ErrorOnElementsInventory=Gweithred wedi'i chanslo am y rhesymau canlynol: ErrorCantFindCodeInInventory=Methu dod o hyd i'r cod canlynol yn y rhestr eiddo QtyWasAddedToTheScannedBarcode=Llwyddiant!! Ychwanegwyd y swm at yr holl god bar y gofynnwyd amdano. Gallwch chi gau'r teclyn Sganiwr. -StockChangeDisabled=Newid ar y stoc wedi'i analluogi +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=Dim warws wedi'i ddiffinio ar gyfer terfynell ClearQtys=Clirio pob swm +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/cy_GB/ticket.lang b/htdocs/langs/cy_GB/ticket.lang index 56b902682eb..cd780e29517 100644 --- a/htdocs/langs/cy_GB/ticket.lang +++ b/htdocs/langs/cy_GB/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Dileu tocynnau Permission56004=Rheoli tocynnau Permission56005=Gweld tocynnau pob trydydd parti (ddim yn effeithiol ar gyfer defnyddwyr allanol, bob amser yn gyfyngedig i'r trydydd parti y maent yn dibynnu ar) +Tickets=Tickets TicketDictType=Tocyn - Mathau TicketDictCategory=Tocyn - Grwpiau TicketDictSeverity=Tocyn - Difrifoldeb @@ -90,8 +91,8 @@ TicketPublicAccess=Mae rhyngwyneb cyhoeddus nad oes angen unrhyw ddull adnabod a TicketSetupDictionaries=Gellir ffurfweddu'r math o docyn, difrifoldeb a chodau dadansoddol o eiriaduron TicketParamModule=Gosodiad newidyn modiwl TicketParamMail=Gosodiad e-bost -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Neges testun wedi'i hanfon ar ôl creu tocyn @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Bydd y testun a nodir yma yn cael ei fewnosod yn yr e-bos TicketParamPublicInterface=Gosod rhyngwyneb cyhoeddus TicketsEmailMustExist=Angen cyfeiriad e-bost presennol i greu tocyn TicketsEmailMustExistHelp=Yn y rhyngwyneb cyhoeddus, dylid llenwi'r cyfeiriad e-bost eisoes yn y gronfa ddata i greu tocyn newydd. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Rhyngwyneb cyhoeddus TicketUrlPublicInterfaceLabelAdmin=URL amgen ar gyfer rhyngwyneb cyhoeddus TicketUrlPublicInterfaceHelpAdmin=Mae'n bosibl diffinio alias i'r gweinydd gwe a thrwy hynny sicrhau bod y rhyngwyneb cyhoeddus ag URL arall ar gael (rhaid i'r gweinydd weithredu fel dirprwy ar yr URL newydd hwn) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Wrth gau tocyn, cynigir i chi anfon neges at un o gys TicketWrongContact=Ar yr amod nad yw cyswllt yn rhan o gysylltiadau tocynnau cyfredol. E-bost heb ei anfon. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Tocyn bellach wedi'i neilltuo TicketChangeType=Newid math TicketChangeCategory=Newid cod dadansoddol TicketChangeSeverity=Newid difrifoldeb -TicketAddMessage=Ychwanegu neges -AddMessage=Ychwanegu neges +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ychwanegwyd y tocyn TicketMessageSuccessfullyAdded=Wedi ychwanegu'r neges yn llwyddiannus TicketMessagesList=Rhestr negeseuon @@ -202,8 +206,8 @@ TicketSeverity=Difrifoldeb ShowTicket=Gweler tocyn RelatedTickets=Tocynnau cysylltiedig TicketAddIntervention=Creu ymyrraeth -CloseTicket=Cau| Datrys tocyn -AbandonTicket=Gadael tocyn +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Cau|Datrys tocyn ConfirmCloseAticket=Cadarnhau cau tocyn ConfirmAbandonTicket=A ydych yn cadarnhau cau'r tocyn i statws 'Wedi'i adael' @@ -217,18 +221,17 @@ SendMessageByEmail=Anfon neges trwy e-bost TicketNewMessage=Neges newydd ErrorMailRecipientIsEmptyForSendTicketMessage=Mae'r derbynnydd yn wag. Dim anfon e-bost TicketGoIntoContactTab=Ewch i'r tab "Cysylltiadau" i'w dewis -TicketMessageMailIntro=Rhagymadrodd +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Dim ond ar ddechrau'r e-bost y caiff y testun hwn ei ychwanegu ac ni fydd yn cael ei gadw. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Llofnod -TicketMessageMailSignatureHelp=Dim ond ar ddiwedd yr e-bost y caiff y testun hwn ei ychwanegu ac ni fydd yn cael ei gadw. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Llofnod yr e-bost ymateb -TicketMessageMailSignatureHelpAdmin=Bydd y testun hwn yn cael ei fewnosod ar ôl y neges ymateb. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Dim ond y testun hwn fydd yn cael ei gadw yn y rhestr negeseuon ar gerdyn tocyn. TicketMessageSubstitutionReplacedByGenericValues=Mae newidynnau amnewid yn cael eu disodli gan werthoedd generig. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Aeth amser heibio ers hynny TicketTimeToRead=Aeth amser heibio cyn darllen TicketTimeElapsedBeforeSince=Aeth amser heibio cyn / ers hynny @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Postiwyd neges newydd ar y tocyn gyda TicketAssignedToYou=Tocyn wedi'i neilltuo TicketAssignedEmailBody=Rydych chi wedi cael y tocyn #%s gan %s MarkMessageAsPrivate=Marciwch y neges yn breifat +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Ni fydd y neges hon yn cael ei dangos i ddefnyddwyr allanol TicketEmailOriginIssuer=Y cyhoeddwr o darddiad y tocynnau InitialMessage=Neges Cychwynnol @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Gallwch weld cynnydd y tocyn yn y rhyngw TicketCloseEmailBodyInfosTrackUrlCustomer=Gallwch edrych ar hanes y tocyn hwn trwy glicio ar y ddolen ganlynol TicketEmailPleaseDoNotReplyToThisEmail=Peidiwch ag ymateb yn uniongyrchol i'r e-bost hwn! Defnyddiwch y ddolen i ymateb i'r rhyngwyneb. TicketPublicInfoCreateTicket=Mae'r ffurflen hon yn eich galluogi i gofnodi tocyn cymorth yn ein system reoli. -TicketPublicPleaseBeAccuratelyDescribe=Disgrifiwch y broblem yn gywir. Darparwch y wybodaeth fwyaf posibl i'n galluogi i adnabod eich cais yn gywir. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Rhowch ID olrhain tocyn TicketTrackId=ID Tracio Cyhoeddus OneOfTicketTrackId=Un o'ch ID olrhain diff --git a/htdocs/langs/cy_GB/users.lang b/htdocs/langs/cy_GB/users.lang index b3c8ba3ee69..a27365d59af 100644 --- a/htdocs/langs/cy_GB/users.lang +++ b/htdocs/langs/cy_GB/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Tynnu o'r grŵp PasswordChangedAndSentTo=Cyfrinair wedi'i newid a'i anfon i %s . PasswordChangeRequest=Cais i newid cyfrinair ar gyfer %s PasswordChangeRequestSent=Cais i newid cyfrinair ar gyfer %s wedi'i anfon at %s . -IfLoginExistPasswordRequestSent=Os yw'r mewngofnodi hwn yn gyfrif dilys, mae e-bost i ailosod cyfrinair wedi'i anfon. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Os yw'r e-bost hwn yn gyfrif dilys, mae e-bost i ailosod cyfrinair wedi'i anfon. ConfirmPasswordReset=Cadarnhau ailosod cyfrinair MenuUsersAndGroups=Defnyddwyr a Grwpiau @@ -68,7 +68,6 @@ CreateDolibarrLogin=Creu defnyddiwr CreateDolibarrThirdParty=Creu trydydd parti LoginAccountDisableInDolibarr=Cyfrif wedi'i analluogi yn Dolibarr. UsePersonalValue=Defnyddiwch werth personol -InternalUser=Defnyddiwr mewnol ExportDataset_user_1=Defnyddwyr a'u priodweddau DomainUser=Defnyddiwr parth %s Reactivate=Ail-ysgogi @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/cy_GB/website.lang b/htdocs/langs/cy_GB/website.lang index f7636647a27..ff8eba08bf9 100644 --- a/htdocs/langs/cy_GB/website.lang +++ b/htdocs/langs/cy_GB/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Côd +WebsiteName=Name of the website WebsiteSetupDesc=Crëwch yma y gwefannau yr hoffech eu defnyddio. Yna ewch i wefannau dewislen i'w golygu. DeleteWebsite=Dileu gwefan ConfirmDeleteWebsite=Ydych chi'n siŵr eich bod am ddileu'r wefan hon? Bydd ei holl dudalennau a chynnwys hefyd yn cael eu dileu. Bydd y ffeiliau a uwchlwythwyd (fel i'r cyfeiriadur cyfryngau, y modiwl ECM, ...) yn aros. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Ychwanegiad ar waelod Pennawd HTML (cyffredin i bob tudalen) WEBSITE_ROBOT=Ffeil robot (robots.txt) WEBSITE_HTACCESS=Gwefan .htaccess ffeil WEBSITE_MANIFEST_JSON=Ffeil manifest.json gwefan -WEBSITE_README=ffeil README.md WEBSITE_KEYWORDSDesc=Defnyddiwch goma i wahanu gwerthoedd -EnterHereLicenseInformation=Rhowch meta data neu wybodaeth trwydded yma i lenwi ffeil README.md. os byddwch yn dosbarthu eich gwefan fel templed, bydd y ffeil yn cael ei chynnwys yn y pecyn temtasiwn. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Pennawd HTML (penodol i'r dudalen hon yn unig) PageNameAliasHelp=Enw neu enw arall y dudalen.
    Mae'r alias hwn hefyd yn cael ei ddefnyddio i greu URL SEO pan fydd gwefan yn cael ei rhedeg o westeiwr Rhithwir o weinydd Gwe (fel Apacke, Nginx, ...). Defnyddiwch y botwm " %s " i olygu'r alias hwn. EditTheWebSiteForACommonHeader=Nodyn: Os ydych chi am ddiffinio pennyn wedi'i bersonoli ar gyfer pob tudalen, golygwch y pennawd ar lefel y wefan yn lle ar y dudalen/cynhwysydd. @@ -42,6 +43,8 @@ ViewPageInNewTab=Gweld y dudalen mewn tab newydd SetAsHomePage=Gosod fel tudalen Hafan RealURL=URL go iawn ViewWebsiteInProduction=Gweld gwefan gan ddefnyddio URLs cartref +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Defnyddiwch gydag Apache/NGinx/...
    Creu ar eich gweinydd gwe (Apache, Nginx, ...) Gwesteiwr Rhithwir pwrpasol gyda PHP wedi'i alluogi a chyfeiriadur Root ar a0342fccfda19bz87807fcfda19b8070607 a0342fccfda19bz80z0707fc a0342fccfda19bz80z07607 a0342fccfda19bz80z0707fcf a0342fccfda19b8070607 a0342fccfda19bz80z0707fccf ExampleToUseInApacheVirtualHostConfig=Enghraifft i'w defnyddio yn setup gwesteiwr rhithwir Apache: YouCanAlsoTestWithPHPS= Defnyddio gyda PHP gweinydd hymgorffori
    On datblygu amgylchedd, efallai y byddai'n well i chi i brofi safle gyda'r PHP gwreiddio weinydd y we (PHP 5.5 yn ofynnol) drwy redeg
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s tudalen(nau)/cynhwysydd(nau) wedi'u hadfywio RegenerateWebsiteContent=Adfywio ffeiliau storfa gwefan AllowedInFrames=Caniateir mewn Fframiau DefineListOfAltLanguagesInWebsiteProperties=Diffinio rhestr o'r holl ieithoedd sydd ar gael yn briodweddau gwefan. -GenerateSitemaps=Cynhyrchu ffeil map gwefan gwefan +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Os byddwch yn cadarnhau, byddwch yn dileu'r ffeil map gwefan bresennol... ConfirmSitemapsCreation=Cadarnhau cynhyrchu mapiau gwefan SitemapGenerated=Ffeil map gwefan %s wedi'i chynhyrchu @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Rhaid i Favicon fod yn png ErrorFaviconSize=Rhaid i Favicon fod o faint 16x16, 32x32 neu 64x64 FaviconTooltip=Uwchlwythwch ddelwedd sydd angen bod yn png (16x16, 32x32 neu 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/cy_GB/withdrawals.lang b/htdocs/langs/cy_GB/withdrawals.lang index 4a5490cd041..16953ad3c87 100644 --- a/htdocs/langs/cy_GB/withdrawals.lang +++ b/htdocs/langs/cy_GB/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Anfoneb yn aros am drosglwyddiad credyd AmountToWithdraw=Swm i dynnu'n ôl AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=Nid oes anfoneb ar agor ar gyfer '%s' yn aros. Ewch ar dab '%s' ar gerdyn anfoneb i wneud cais. -NoSupplierInvoiceToWithdraw=Nid oes anfoneb cyflenwr gyda 'Ceisiadau credyd uniongyrchol' yn aros. Ewch ar dab '%s' ar gerdyn anfoneb i wneud cais. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Defnyddiwr sy'n Gyfrifol WithdrawalsSetup=Gosod taliad debyd uniongyrchol CreditTransferSetup=Gosodiad trosglwyddo credyd @@ -42,6 +42,7 @@ CreditTransferStatistics=Ystadegau trosglwyddo credyd Rejects=Yn gwrthod LastWithdrawalReceipt=Derbynebau debyd uniongyrchol %s diweddaraf MakeWithdrawRequest=Gwneud cais am daliad debyd uniongyrchol +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Gwneud cais trosglwyddo credyd WithdrawRequestsDone=%s ceisiadau taliad debyd uniongyrchol wedi'u cofnodi BankTransferRequestsDone=%s ceisiadau trosglwyddo credyd wedi'u cofnodi @@ -100,8 +101,11 @@ CreditDate=Credyd ar WithdrawalFileNotCapable=Methu cynhyrchu ffeil derbynneb tynnu'n ôl ar gyfer eich gwlad %s (Ni chefnogir eich gwlad) ShowWithdraw=Dangos Archeb Debyd Uniongyrchol IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Fodd bynnag, os oes gan yr anfoneb o leiaf un archeb talu debyd uniongyrchol heb ei phrosesu eto, ni fydd yn cael ei gosod fel un a dalwyd er mwyn caniatáu rheoli codi arian ymlaen llaw. -DoStandingOrdersBeforePayments=Mae'r tab hwn yn eich galluogi i ofyn am orchymyn talu debyd uniongyrchol. Unwaith y bydd wedi'i wneud, ewch i'r ddewislen Banc-> Taliad trwy ddebyd uniongyrchol i gynhyrchu a rheoli'r archeb debyd uniongyrchol. Pan fydd archeb debyd uniongyrchol wedi'i chau, bydd taliad ar anfonebau'n cael ei gofnodi'n awtomatig, ac anfonebau'n cael eu cau os yw'r gweddill i'w dalu yn null. -DoCreditTransferBeforePayments=Mae'r tab hwn yn caniatáu ichi ofyn am orchymyn trosglwyddo credyd. Ar ôl ei wneud, ewch i'r ddewislen Banc-> Taliad trwy drosglwyddiad credyd i gynhyrchu a rheoli'r gorchymyn trosglwyddo credyd. Pan fydd gorchymyn trosglwyddo credyd wedi'i gau, bydd taliad ar anfonebau'n cael ei gofnodi'n awtomatig, ac anfonebau'n cael eu cau os yw'r gweddill i'w dalu yn null. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Ffeil archeb debyd CreditTransferFile=Ffeil trosglwyddo credyd SetToStatusSent=Gosod i statws "Ffeil Wedi'i Anfon" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Methu creu cais debyd uniongyrchol am swm gwag. SepaMandate=Mandad Debyd Uniongyrchol SEPA SepaMandateShort=Mandad SEPA PleaseReturnMandate=Dychwelwch y ffurflen fandad hon trwy e-bost i %s neu drwy'r post i -SEPALegalText=Drwy lofnodi’r ffurflen fandad hon, rydych yn awdurdodi (A) %s i anfon cyfarwyddiadau i’ch banc i ddebydu’ch cyfrif a (B) i’ch banc i ddebydu’ch cyfrif yn unol â chyfarwyddiadau %s. Fel rhan o’ch hawliau, mae gennych hawl i gael ad-daliad gan eich banc o dan delerau ac amodau eich cytundeb gyda’ch banc. Esbonnir eich hawliau o ran y mandad uchod mewn datganiad y gallwch ei gael gan eich banc. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Dynodwr Credydwr CreditorName=Enw Credydwr SEPAFillForm=(B) Cwblhewch yr holl feysydd sydd wedi eu nodi â * diff --git a/htdocs/langs/cy_GB/workflow.lang b/htdocs/langs/cy_GB/workflow.lang index dcffec6a9b0..6b7442731b1 100644 --- a/htdocs/langs/cy_GB/workflow.lang +++ b/htdocs/langs/cy_GB/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Dosbarthu archeb bryn descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Dosbarthwch archeb brynu ffynhonnell gysylltiedig fel y'i derbyniwyd pan ddilysir derbyniad (ac os yw'r swm a dderbynnir gan bob derbyniad yr un peth ag yn yr archeb brynu i ddiweddaru) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Dosbarthwch archeb brynu ffynhonnell gysylltiedig fel un a dderbyniwyd pan fydd derbyniad ar gau (ac os yw'r swm a dderbynnir gan bob derbynfa yr un peth ag yn yr archeb brynu i ddiweddaru) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Dosbarthu derbyniadau i "bil" pan fydd archeb cyflenwr cysylltiedig yn cael ei ddilysu +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Caewch yr holl ymyriadau sy'n gysylltiedi AutomaticCreation=Creu awtomatig AutomaticClassification=Dosbarthiad awtomatig # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Dosbarthu llwyth ffynhonnell gysylltiedig fel un sydd ar gau pan fydd anfoneb cwsmer yn cael ei dilysu +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Automatic closing AutomaticLinking=Automatic linking diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index ece1941f065..f5cd33c205d 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Lande ikke i EU CountriesInEECExceptMe=Lande i EU undtagen %s CountriesExceptMe=Alle lande undtagen %s AccountantFiles=Eksporter kildedokumenter -ExportAccountingSourceDocHelp=Med dette værktøj kan du eksportere de kildebegivenheder (liste i CSV og PDF'er), der bruges til at generere dit regnskab. +ExportAccountingSourceDocHelp=Med dette værktøj kan du søge og eksportere de kildebegivenheder, der bruges til at generere dit regnskab.
    Den eksporterede ZIP-fil vil indeholde lister over ønskede elementer i CSV, såvel som deres vedhæftede filer i deres originale format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=For at eksportere dine tidsskrifter skal du bruge menuindgangen %s - %s. +ExportAccountingProjectHelp=Angiv et projekt, hvis du kun har brug for en regnskabsrapport for et specifikt projekt. Udgiftsrapporter og lånebetalinger indgår ikke i projektrapporter. VueByAccountAccounting=Vis efter regnskabskonto VueBySubAccountAccounting=Vis efter regnskabsmæssig underkonto @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Hoved kontokort for leverandører, der ikke er MainAccountForUsersNotDefined=Standardkonto for brugere, der ikke er defineret i opsætningen MainAccountForVatPaymentNotDefined=Standardkonto for momsbetaling ikke defineret i opsætningen MainAccountForSubscriptionPaymentNotDefined=Hovedkontokonto for abonnementsbetaling, der ikke er defineret i opsætningen +UserAccountNotDefined=Regnskabskonto for bruger er ikke defineret i opsætning AccountancyArea=Bogførings område AccountancyAreaDescIntro=Brugen af regnskabsmodulet sker i følgende trin: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Deaktiver direkte registrering af transaktionen på ba ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Aktivér udkast til eksport på Journal ACCOUNTANCY_COMBO_FOR_AUX=Aktivér kombinationsliste for datterselskabskonto (kan være langsom, hvis du har mange tredjeparter, bryder evnen til at søge på en del af værdien) ACCOUNTING_DATE_START_BINDING=Definer en dato for start af binding og overførsel i regnskab. Under denne dato overføres transaktionerne ikke til regnskab. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Ved regnskabsoverførsel skal du vælge periode som standard +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Ved regnskabsoverførsel, hvilken periode er valgt som standard -ACCOUNTING_SELL_JOURNAL=Salgskladde -ACCOUNTING_PURCHASE_JOURNAL=Indkøbskladde -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diversekladde +ACCOUNTING_SELL_JOURNAL=Salgsjournal (salg og returnering) +ACCOUNTING_PURCHASE_JOURNAL=Købsjournal (køb og returnering) +ACCOUNTING_BANK_JOURNAL=Kassekladde (kvitteringer og udbetalinger) ACCOUNTING_EXPENSEREPORT_JOURNAL=Udgiftskladde -ACCOUNTING_SOCIAL_JOURNAL=Kladde for skat/afgift +ACCOUNTING_MISCELLANEOUS_JOURNAL=Almindelig journal ACCOUNTING_HAS_NEW_JOURNAL=Ny Journal +ACCOUNTING_INVENTORY_JOURNAL=Lagerjournal +ACCOUNTING_SOCIAL_JOURNAL=Kladde for skat/afgift ACCOUNTING_RESULT_PROFIT=Resultatregnskabskonto (fortjeneste) ACCOUNTING_RESULT_LOSS=Resultatregnskabskonto (tab) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Luknings journal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Regnskabskonto ved overgangs bankoverførsel +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Konto (fra kontoplanen), der skal bruges som konto for overgangsbankoverførsler TransitionalAccount=Overgangs bankoverførsels konto -ACCOUNTING_ACCOUNT_SUSPENSE=Regnskabskonto for afventning -DONATION_ACCOUNTINGACCOUNT=Regnskabskonto til registrering af donationer -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Regnskabskonto for at registrere abonnementer +ACCOUNTING_ACCOUNT_SUSPENSE=Konto (fra kontoplanen), der skal bruges som konto for ikke-allokerede midler enten modtaget eller betalt, dvs. midler i "venter" +DONATION_ACCOUNTINGACCOUNT=Konto (fra kontoplanen), der skal bruges til at registrere donationer (donationsmodul) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto (fra kontoplanen), der skal bruges til at registrere medlemskabsabonnementer (Medlemsmodul - hvis medlemskab registreres uden faktura) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Regnskabskonto er som standard for at registrere kundeindbetaling -UseAuxiliaryAccountOnCustomerDeposit=Brug underkonti på kundeindskudslinjer +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto (fra kontoplanen) skal bruges som standardkonto til registrering af kundeindbetaling +UseAuxiliaryAccountOnCustomerDeposit=Gem kundekonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, forbliver individuel konto for forudbetalingslinjer tomme) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (fra kontoplanen), der skal bruges som standard +UseAuxiliaryAccountOnSupplierDeposit=Gem leverandørkonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, vil individuel konto for forudbetalingslinjer forblive tom) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Regnskabskonto som standard for de købte produkter (bruges hvis ikke defineret i produktarket) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Regnskabskonto som standard for de købte produkter i EØF (brugt, hvis ikke defineret i produktarket) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Regnskabskonto som standard for de købte produkter og importeret ud af EØF (brugt, hvis ikke defineret i produktarket) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Regnskabskonto som standard for solgte varer (hvis ikke defineret for varen) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Regnskabskonto som standard for de produkter, der sælges i EØF (bruges, hvis de ikke er defineret i produktarket) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Regnskabskonto som standard for de produkter, der er solgt og eksporteret ud af EØF (brugt, hvis ikke defineret i produktarket) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der er købt i samme land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for produkter købt fra EF til et andet EF-land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der er købt og importeret fra ethvert andet fremmed land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de solgte produkter (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der sælges fra EF til et andet EF-land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der sælges og eksporteres til ethvert andet fremmed land (bruges, hvis det ikke er defineret i produktarket) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Regnskabskonto som standard for købte ydelser (hvis ikke defineret for varen) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Regnskabskonto som standard for de købte tjenester i EØF (brugt, hvis ikke defineret i servicearket) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Regnskabskonto som standard for de købte tjenester og importeret ud af EØF (brugt hvis ikke defineret i servicearket) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Regnskabskonto som standard for solgte ydelser (hvis ikke defineret for varen) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Regnskabskonto som standard for de tjenester, der sælges i EØF (bruges, hvis de ikke er defineret i servicearket) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Regnskabskonto er som standard for de tjenester, der sælges og eksporteres ud af EØF (bruges, hvis de ikke er defineret i servicearket) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der er købt i samme land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der er købt fra EEC til et andet EEC-land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der er købt og importeret fra et andet fremmed land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de solgte tjenester (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der sælges fra EEC til et andet EEC-land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der sælges og eksporteres til ethvert andet fremmed land (bruges, hvis det ikke er defineret i servicearket) Doctype=Dokumenttype Docdate=Dato @@ -211,7 +217,7 @@ Codejournal=Kladde JournalLabel=Journalmærke NumPiece=Partsnummer TransactionNumShort=Transaktionsnr. -AccountingCategory=Brugerdefineret gruppe +AccountingCategory=Brugerdefineret gruppe af konti GroupByAccountAccounting=Gruppér efter hovedkontokonto GroupBySubAccountAccounting=Gruppér efter underkonti AccountingAccountGroupsDesc=Du kan definere her nogle grupper af regnskabskonto. De vil blive brugt til personlige regnskabsrapporter. @@ -221,7 +227,7 @@ ByPersonalizedAccountGroups=Efter brugerdefinerede grupper ByYear=År NotMatch=Ikke angivet DeleteMvt=Slet nogle linjer fra regnskabet -DelMonth=Måned at slette +DelMonth=Måned der skal slettes DelYear=År, der skal slettes DelJournal=Kladde, der skal slettes ConfirmDeleteMvt=Dette vil slette alle linjer i regnskabet for året/måneden og/eller for en bestemt kladde (mindst et kriterium er påkrævet). Du bliver nødt til at genbruge funktionen '%s' for at få den slettede post tilbage i hovedbogen. @@ -265,13 +271,13 @@ Reconcilable=Afstemning TotalVente=Samlet omsætning ekskl. moms TotalMarge=Samlet salgsforskel -DescVentilCustomer=Her findes listen over kundefakturalinjer, der er bundet (eller ikke) til en varekonto -DescVentilMore=I de fleste tilfælde kan du, hvis du bruger foruddefinerede produkter eller tjenester, og du angiver kontonummeret på produkt- / servicekortet, vil applikationen kunne foretage hele bindingen mellem dine fakturaer og bogføringen af ​​dit kontoplan, bare i et klik med knappen "%s" . Hvis kontoen ikke er angivet på produkt- / servicekort, eller hvis du stadig har nogle linjer, der ikke er bundet til en konto, skal du lave en manuel binding fra menuen " %s". -DescVentilDoneCustomer=Her findes list over fakturalinjer bundet til kunder og deres varekonti -DescVentilTodoCustomer=Bogfør fakturaer, der ikke allerede er bogført til en varekonto -ChangeAccount=Skift regnskabskonto for vare/ydelse for valgte linjer med følgende regnskabskonto: +DescVentilCustomer=Se her listen over kundefakturalinjer, der er bundet (eller ej) til en produktkonto fra kontoplan +DescVentilMore=I de fleste tilfælde, hvis du bruger foruddefinerede produkter eller tjenester, og du angiver kontoen (fra kontoplan) på produkt-/servicekortet, vil applikationen være i stand til at foretage hele bindingen mellem dine fakturalinjer og regnskabskontoen i dit diagram af konti, bare med et enkelt klik med knappen "%s" . Hvis konto ikke var sat på produkt-/servicekort, eller hvis du stadig har nogle linjer, der ikke er bundet til en konto, skal du foretage en manuel binding fra menuen " %s ". +DescVentilDoneCustomer=Se her listen over linjer med fakturakunder og deres produktkonto fra kontoplan +DescVentilTodoCustomer=Bind fakturalinjer, der ikke allerede er bundet til en produktkonto fra kontoplan +ChangeAccount=Skift produkt-/servicekonto (fra kontoplan) for de valgte linjer med følgende konto: Vide=- -DescVentilSupplier=Se her listen over leverandørfakturelinjer, der er bundet eller endnu ikke bundet til en produktregnskabskonto (kun post, der ikke allerede er overført i regnskab, er synlig) +DescVentilSupplier=Se her listen over leverandørfakturalinjer, der er bundet eller endnu ikke bundet til en produktkonto fra kontoplan (kun post, der ikke allerede er overført i regnskabet er synlig) DescVentilDoneSupplier=Se her listen over linjer med leverandørfakturaer og deres regnskabskonto DescVentilTodoExpenseReport=Bogfør udgiftsrapportlinjer, der ikke allerede er bogført, til en gebyrkonto DescVentilExpenseReport=Her vises listen over udgiftsrapporter linjer bundet (eller ej) til en gebyrkonto @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Hvis du opsætter regnskabskonto på typen af ​​ DescVentilDoneExpenseReport=Her vises listen over linjerne for udgiftsrapporter og deres gebyrkonto Closure=Årlig lukning -DescClosure=Se her antallet af bevægelser pr. måned, som endnu ikke er valideret og låst +DescClosure=Se her antallet af bevægelser pr. måned, der endnu ikke er valideret og låst OverviewOfMovementsNotValidated=Oversigt over bevægelser, der ikke er valideret og låst AllMovementsWereRecordedAsValidated=Alle bevægelser blev registreret som validerede og låste NotAllMovementsCouldBeRecordedAsValidated=Ikke alle bevægelser kunne registreres som validerede og låste -ValidateMovements=Valider og lås registrering... +ValidateMovements=Valider og lås bevægelser... DescValidateMovements=Enhver ændring eller sletning af skrivning, bogstaver og sletning er forbudt. Alle poster til en øvelse skal valideres, ellers er lukning ikke mulig ValidateHistory=Automatisk Bogføring AutomaticBindingDone=Automatiske bindinger udført (%s) - Automatisk binding er ikke mulig for nogle poster (%s) -ErrorAccountancyCodeIsAlreadyUse=Fejl. Du kan ikke slette denne regnskabskonto, fordi den er i brug +ErrorAccountancyCodeIsAlreadyUse=Fejl, du kan ikke fjerne eller deaktivere denne kontoplan, fordi den er brugt MvtNotCorrectlyBalanced=Bevægelse ikke korrekt afbalanceret. Debet = %s & Kredit = %s Balancing=Balancing FicheVentilation=Bogførings Oversigt GeneralLedgerIsWritten=Transaktionerne er blevet bogført GeneralLedgerSomeRecordWasNotRecorded=Nogle af transaktionerne kunne ikke journaliseres. Hvis der ikke er nogen anden fejlmeddelelse, er det sandsynligvis fordi de allerede var journaliseret. NoNewRecordSaved=Ikke mere post at overføre -ListOfProductsWithoutAccountingAccount=Liste over varer, der ikke er bundet til nogen regnskabskonto +ListOfProductsWithoutAccountingAccount=Liste over produkter, der ikke er bundet til nogen kontoplan ChangeBinding=Ret Bogføring Accounted=Regnskab i hovedbog NotYetAccounted=Endnu ikke overført til regnskab @@ -319,9 +325,10 @@ AccountingJournalType1=Diverse operationer AccountingJournalType2=Salg AccountingJournalType3=Køb AccountingJournalType4=Bank -AccountingJournalType5=Udgiftsrapport +AccountingJournalType5=Udgiftsrapporter AccountingJournalType8=Beholdning AccountingJournalType9=Har nyt +GenerationOfAccountingEntries=Generering af regnskabsposteringer ErrorAccountingJournalIsAlreadyUse=Denne kladde er allerede i brug AccountingAccountForSalesTaxAreDefinedInto=Bemærk: Regnskabskonto for salgsmoms er defineret i menuen %s - %s NumberOfAccountancyEntries=Antal poster @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Antal bevægelser ACCOUNTING_DISABLE_BINDING_ON_SALES=Deaktiver binding og overførsel i regnskab ved salg (kundefakturaer tages ikke med i regnskabet) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overførsel i regnskab ved køb (leverandørfakturaer tages ikke med i regnskabet) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overførsel i regnskab på udgiftsrapporter (udgiftsrapporter tages ikke med i regnskabet) +ACCOUNTING_ENABLE_LETTERING=Aktiver bogstavfunktionen i regnskabet ## Export +NotExportLettering=Eksporter ikke bogstaverne, når du genererer filen NotifiedExportDate=Flag eksporterede linjer som eksporteret (for at ændre en linje skal du slette hele transaktionen og overføre den til regnskab igen) -NotifiedValidationDate=Valider og lås de eksporterede poster (samme effekt som "Closure"-funktionen, ændring og sletning af linjerne vil DEFINITIVT ikke være mulig) +NotifiedValidationDate=Valider og lås de eksporterede indgange (samme effekt som "%s"-funktionen, ændring og sletning af linjerne vil DEFINITIVT ikke være mulig) DateValidationAndLock=Datovalidering og lås ConfirmExportFile=Bekræftelse af genereringen af den regnskabsmæssige eksportfil? ExportDraftJournal=Eksporter udkast til kladde @@ -398,7 +407,11 @@ Calculated=Beregnet Formula=Formel ## Reconcile +LetteringAuto=Afstem auto +LetteringManual=Forene manual Unlettering=Uforlige +UnletteringAuto=Afstem auto +UnletteringManual=Uafstemt manual AccountancyNoLetteringModified=Ingen afstemning ændret AccountancyOneLetteringModifiedSuccessfully=Én afstemning blev ændret med succes AccountancyLetteringModifiedSuccessfully=%s afstemning blev ændret @@ -407,10 +420,11 @@ AccountancyOneUnletteringModifiedSuccessfully=Én afstemning blev ændret med su AccountancyUnletteringModifiedSuccessfully=%s afstemning blev ændret med succes ## Confirm box -ConfirmMassUnlettering=Bekræftelse af masseafstemning -ConfirmMassUnletteringQuestion=Er du sikker på, at du vil afstemme de %s valgte post(er)? +ConfirmMassUnletteringAuto=Bekræftelse af automatisk afstemning af bulk +ConfirmMassUnletteringManual=Bekræftelse af manuel afstemning af bulk +ConfirmMassUnletteringQuestion=Er du sikker på, at du vil afstemme de valgte %s-poster()? ConfirmMassDeleteBookkeepingWriting=Bekræftelse på massesletning -ConfirmMassDeleteBookkeepingWritingQuestion=Dette vil slette transaktionen fra regnskabet (alle linjer relateret til den samme transaktion vil blive slettet) Er du sikker på, at du vil slette de(n) %s valgte post(er)? +ConfirmMassDeleteBookkeepingWritingQuestion=Dette vil slette transaktionen fra regnskabet (alle linjer relateret til den samme transaktion vil blive slettet) Er du sikker på, at du vil slette de %s valgte post(er)? ## Error SomeMandatoryStepsOfSetupWereNotDone=Visse obligatoriske trin i opsætningen blev ikke udført. Gør venligst dette @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Bekl AccountancyErrorMismatchLetterCode=Uoverensstemmelse i afstemningskode AccountancyErrorMismatchBalanceAmount=Saldoen (%s) er ikke lig med 0 AccountancyErrorLetteringBookkeeping=Der er opstået fejl vedrørende transaktionerne: %s +ErrorAccountNumberAlreadyExists=Kontonummeret %s findes allerede ## Import ImportAccountingEntries=Regnskabsposter @@ -447,12 +462,11 @@ FECFormatCredit=Kredit (kredit) FECFormatReconcilableCode=Forenelig kode (EcritureLet) FECFormatReconcilableDate=Afstemningsdato (DateLet) FECFormatValidateDate=Stykkets dato valideret (ValidDate) -FECFormatMulticurrencyAmount=Multicurrency-beløb (Montantdevise) +FECFormatMulticurrencyAmount=Multivaluta beløb (Montantdevise) FECFormatMulticurrencyCode=MultiValuta-kode (Idevise) DateExport=Eksport dato WarningReportNotReliable=Advarsel, denne rapport er ikke baseret på Ledger, så indeholder ikke transaktion ændret manuelt i Ledger. Hvis din journalisering er opdateret, er bogføringsvisningen mere præcis. ExpenseReportJournal=Udgifts Journal -InventoryJournal=Opgørelse Journal NAccounts=%s konti diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index 12e2cc42a07..84ede269564 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=Udskriv reference og periode for vare i PDF BoldLabelOnPDF=Udskriv vare etiket med fed skrift i PDF -Foundation=Fundament +Foundation=Grundlag Version=Version -Publisher=Forlægger +Publisher=Udgiver VersionProgram=Program version -VersionLastInstall=Første installerede version +VersionLastInstall=Oprindeligt installerede version VersionLastUpgrade=Seneste opgraderede version VersionExperimental=Eksperimentel VersionDevelopment=Udvikling @@ -49,22 +49,20 @@ HostCharset=Værts tegnsæt ClientCharset=Klient tegnsæt ClientSortingCharset=Klient sortering WarningModuleNotActive=Modul %s skal være aktiveret -WarningOnlyPermissionOfActivatedModules=Kun tilladelser relateret til aktiverede moduler vises her. Du kan aktivere andre moduler på siden Hjem - Opsætning - Moduler/Applikationer. +WarningOnlyPermissionOfActivatedModules=Kun rettigheder relateret til aktiverede moduler vises her. Du kan aktivere andre moduler på siden Hjem->Opsætning->Moduler/Applikationer. DolibarrSetup=Dolibarr installer eller opgrader -InternalUser=Intern bruger -ExternalUser=Ekstern bruger InternalUsers=Interne brugere ExternalUsers=Eksterne brugere UserInterface=Brugergrænseflade GUISetup=Udseende SetupArea=Opsætning UploadNewTemplate=Upload nye skabelon(er) -FormToTestFileUploadForm=Formular til at teste filupload (i henhold til opsætning) -ModuleMustBeEnabled=Moduler/Applikationer %s skal være aktiveret -ModuleIsEnabled=Moduler/Applikationer %s er blevet aktiveret +FormToTestFileUploadForm=Formular til at teste filoverførsel (i henhold til opsætning) +ModuleMustBeEnabled=Modulet/Applikationen %s skal være aktiveret +ModuleIsEnabled=Modulet/Applikationen %s er blevet aktiveret IfModuleEnabled=Bemærk: ja er kun effektiv, hvis modulet %s er aktiveret RemoveLock=Fjern/omdøb filen %s, hvis den findes, for at tillade brug af opdaterings-/installationsværktøjet. -RestoreLock=Gendan filen %s , med kun læsetilladelse, for at deaktivere enhver yderligere brug af opdaterings-/installationsværktøjet. +RestoreLock=Gendan filen %s, med kun læsetilladelse, for at deaktivere enhver yderligere brug af opdaterings-/installationsværktøjet. SecuritySetup=Sikkerhedsopsætning PHPSetup=PHP opsætning OSSetup=OS opsætning @@ -78,8 +76,8 @@ ErrorReservedTypeSystemSystemAuto=Værdien 'system' og 'systemauto' for type er ErrorCodeCantContainZero=Koden må ikke indeholde værdien 0 DisableJavascript=Deaktiver JavaScript og Ajax funktioner DisableJavascriptNote=Bemærk: Kun til test- eller fejlretningsformål. For optimering for blinde eller tekstbrowsere foretrækker du måske at bruge opsætningen på brugerprofilen -UseSearchToSelectCompanyTooltip=Også hvis du har et stort antal tredjeparter (> 100.000), kan du øge hastigheden ved at sætte konstant COMPANY_DONOTSEARCH_ANYWHERE til 1 i Hjem - Opsætning - Øvrig opsætning. Søgning vil derefter være begrænset til starten af strengen. -UseSearchToSelectContactTooltip=Også hvis du har et stort antal tredjeparter (> 100.000), kan du øge hastigheden ved at sætte konstant CONTACT_DONOTSEARCH_ANYWHERE til 1 i Hjem - Opsætning - Øvrig opsætning. Søgning vil derefter være begrænset til starten af strengen. +UseSearchToSelectCompanyTooltip=Også hvis du har et stort antal tredjeparter (> 100.000), kan du øge hastigheden ved at sætte konstant COMPANY_DONOTSEARCH_ANYWHERE til 1 i Hjem->Opsætning->Øvrig opsætning. Søgning vil derefter være begrænset til starten af strengen. +UseSearchToSelectContactTooltip=Også hvis du har et stort antal tredjeparter (> 100.000), kan du øge hastigheden ved at sætte konstant CONTACT_DONOTSEARCH_ANYWHERE til 1 i Hjem->Opsætning->Øvrig opsætning. Søgning vil derefter være begrænset til starten af strengen. DelaiedFullListToSelectCompany=Vent, indtil der trykkes på en tast, før du indlæser indholdet af kombinationslisten for tredjeparter.
    Dette kan øge ydeevnen, hvis du har et stort antal tredjeparter, men det er mindre bekvemt. DelaiedFullListToSelectContact=Vent, indtil der trykkes på en tast, før du indlæser indholdet af kombinationslisten for kontakter.
    Dette kan øge ydeevnen, hvis du har et stort antal kontakter, men det er mindre bekvemt. NumberOfKeyToSearch=Antal tegn, der skal udløse søgning: %s @@ -109,9 +107,9 @@ NextValueForReplacements=Næste værdi (udskiftninger) MustBeLowerThanPHPLimit=Bemærk: din PHP-konfiguration begrænser i øjeblikket den maksimale filstørrelse for upload til %s %s, uanset værdien af denne parameter NoMaxSizeByPHPLimit=Bemærk: Der er ikke sat nogen grænse i din PHP-konfiguration MaxSizeForUploadedFiles=Maksimal størrelse for uploadede filer (0 for at forhindre enhver upload) -UseCaptchaCode=Brug grafisk kode (CAPTCHA) på login-siden +UseCaptchaCode=Brug grafisk kode (CAPTCHA) på login-siden og nogle offentlige sider AntiVirusCommand=Fuld sti til antivirus kommando -AntiVirusCommandExample=Eksempel på ClamAv Daemon (kræver clamav-daemon): /usr/bin/clamdscan
    Eksempel på ClamWin (meget meget langsom): C:\\Program Files (x86)\\\\ClamWin\\bin\\clamscan.exe +AntiVirusCommandExample=Eksempel på ClamAv Daemon (kræver clamav-daemon): /usr/bin/clamdscan
    Eksempel på ClamWin (meget meget langsom): C:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Flere parametre på kommandolinjen AntiVirusParamExample=Eksempel på ClamAv Daemon: --fdpass
    Example for ClamWin: --database = "C: \\ Program Files (x86) \\ ClamWin \\ lib" ComptaSetup=Opsætning af regnskabsmodul @@ -123,7 +121,7 @@ DetailMenuIdParent=ID for overordnet menu (tom for en topmenu) ParentID=Overordnet ID DetailPosition=Sorterings nummer for at definere menuposition AllMenus=Alle -NotConfigured=Moduler/Applikationer ikke konfigureret +NotConfigured=Modul/Applikation ikke konfigureret Active=Aktiv SetupShort=Opsætning OtherOptions=Andre muligheder @@ -244,7 +242,7 @@ ActivatableOn=Aktiverbar til SourceFile=Kildefil AvailableOnlyIfJavascriptAndAjaxNotDisabled=Kun tilgængelig, hvis JavaScript ikke er deaktiveret Required=Påkrævet -UsedOnlyWithTypeOption=Bruges kun af en eller anden dagsorden mulighed +UsedOnlyWithTypeOption=Bruges kun af nogle dagsorden muligheder Security=Sikkerhed Passwords=Adgangskoder DoNotStoreClearPassword=Krypter adgangskoder gemt i databasen (IKKE som almindelig tekst). Det anbefales kraftigt at aktivere denne mulighed. @@ -293,7 +291,8 @@ MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (standardværdi i php.ini: %s) MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (standardværdi i php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Ikke defineret i PHP på Unix lignende systemer) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Ikke defineret i PHP på Unix lignende systemer) -MAIN_MAIL_EMAIL_FROM=Afsender-e-mail til automatiske e-mails (standardværdi i php.ini: %s ) +MAIN_MAIL_EMAIL_FROM=Afsender adresse for automatiske e-mails (standardværdi i php.ini: %s ) +EMailHelpMsgSPFDKIM=For at forhindre, at Dolibarr-e-mails klassificeres som spam, skal du sørge for, at serveren er autoriseret til at sende e-mails fra denne adresse ved SPF- og DKIM-konfiguration MAIN_MAIL_ERRORS_TO=E-mail brugt til fejl returnerer e-mails (felterne 'Errors-To' i sendte e-mails) MAIN_MAIL_AUTOCOPY_TO= Kopier (Bcc) alle sendte e-mails til MAIN_DISABLE_ALL_MAILS=Deaktiver al afsendelse af e-mail (til testformål eller demoer) @@ -312,7 +311,7 @@ MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privat nøgle til DKIM signering MAIN_DISABLE_ALL_SMS=Deaktiver al SMS afsendelse (til testformål eller demoer) MAIN_SMS_SENDMODE=Metode til at bruge til at sende SMS MAIN_MAIL_SMS_FROM=Standard afsender telefonnummer til SMS-afsendelse -MAIN_MAIL_DEFAULT_FROMTYPE=Standard afsender e-mail til manuel afsendelse (bruger-e-mail eller firma-e-mail) +MAIN_MAIL_DEFAULT_FROMTYPE=Standard afsender e-mail til manuel afsendelse (bruger e-mail eller firma e-mail) UserEmail=Bruger e-mail CompanyEmail=Firma e-mail FeatureNotAvailableOnLinux=Funktionen er ikke tilgængelig på Unix lignende systemer. Test dit sendmail program lokalt. @@ -439,8 +438,10 @@ Unique=Unik Boolean=boolsk (et afkrydsningsfelt) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris +ExtrafieldPriceWithCurrency=Pris med valuta ExtrafieldMail = E-mail ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Vælg liste ExtrafieldSelectList = Vælg fra tabel ExtrafieldSeparator=Separator (ikke et felt) @@ -462,7 +463,7 @@ ExtrafieldParamHelpchkbxlst=Liste over værdier kommer fra en tabel
    Syntaks: ExtrafieldParamHelplink=Parametre skal være ObjectName:Classpath
    Syntaks: ObjectName:Classpath ExtrafieldParamHelpSeparator=Hold tom for en simpel adskiller
    Indstil denne til 1 for en kollapsende separator (åben som standard for ny session, så beholdes status for hver brugersession)
    Indstil denne til 2 for en kollapsende separator (skjulet som standard for ny session, så beholdes status før hver brugersession) LibraryToBuildPDF=Mappe brugt til PDF generering -LocalTaxDesc=Nogle lande kan pålægge to eller tre afgifter på hver fakturalinje. Hvis dette er tilfældet, skal du vælge typen for anden og tredje skat og dens sats. Mulige typer er:
    1: lokal skat pålægges varer og tjenesteydelser uden moms (lokal skat beregnes på beløb uden moms)
    2: lokal skat pålægges produkter og tjenesteydelser inklusive moms (lokal skat beregnes på beløb + hovedskat)
    3: lokal afgift pålægges produkter uden moms (lokal afgift beregnes af beløb uden afgift)
    4: lokal afgift pålægges produkter inklusiv moms (lokal afgift beregnes på beløb + hovedmoms)
    5: lokal afgift pålægges ydelser uden moms (lokal afgift beregnes på ydelser uden moms) på beløb uden skat)
    6: lokal skat pålægges ydelser inklusive moms (lokal skat beregnes på beløb + skat) +LocalTaxDesc=Nogle lande kan pålægge to eller tre afgifter på hver fakturalinje. Hvis dette er tilfældet, skal du vælge typen for anden og tredje skat og dens sats. Mulige typer er:
    1: lokal skat pålægges varer og tjenesteydelser uden moms (lokal skat beregnes på beløb uden moms)
    2: lokal skat pålægges produkter og tjenesteydelser inklusive moms (lokal skat beregnes på beløb + hovedskat)
    3: lokal afgift pålægges produkter uden moms (lokal afgift beregnes af beløb uden afgift)
    4: lokal afgift pålægges produkter inklusiv moms (lokal afgift beregnes på beløb + hovedmoms)
    5: lokal afgift pålægges ydelser uden moms (lokal afgift beregnes på beløb uden skat)
    6: lokal skat pålægges ydelser inklusive moms (lokal skat beregnes på beløb + skat) SMS=SMS LinkToTestClickToDial=Indtast et telefonnummer at ringe til, for at vise et link til at teste ClickToDial webadressen for bruger %s RefreshPhoneLink=Opdater link @@ -477,7 +478,7 @@ InstalledInto=Installeret i mappen %s BarcodeInitForThirdparties=Masse stregkode init for tredjeparter BarcodeInitForProductsOrServices=Masse stregkode init eller nulstil for produkter eller tjenester CurrentlyNWithoutBarCode=I øjeblikket har du %s post på %s %s uden stregkode defineret. -InitEmptyBarCode=Initial værdi for næste %s tomme poster +InitEmptyBarCode=standard værdi for de tomme stregkoder %s EraseAllCurrentBarCode=Slet alle aktuelle stregkodeværdier ConfirmEraseAllCurrentBarCode=Er du sikker på, at du vil slette alle aktuelle stregkodeværdier? AllBarcodeReset=Alle stregkodeværdier er blevet fjernet @@ -501,10 +502,11 @@ WarningPHPMail=ADVARSEL: Opsætningen til at sende e-mails fra applikationen bru WarningPHPMailA=- Brug af e-mail-tjenesteudbyderens server øger pålideligheden af din e-mail, så det øger leveringsevnen uden at blive markeret som SPAM WarningPHPMailB=- Nogle e-mail-tjenesteudbydere (som Yahoo) tillader ikke, at du sender en e-mail fra en anden server end deres egen server. Din nuværende opsætning bruger applikationens server til at sende e-mail og ikke serveren på din e-mail-udbyder, så nogle modtagere (den der er kompatibel med den restriktive DMARC protokol), vil spørge din e-mail-udbyder, om de kan acceptere din e-mail og nogle e-mail-udbydere (som Yahoo) kan svare "nej", fordi serveren ikke er deres, så få af dine sendte e-mails bliver muligvis ikke accepteret til levering (vær også forsigtig med din e-mailudbyders sendekvote). WarningPHPMailC=- Det er også interessant at bruge SMTP-serveren fra din egen e-mail-tjenesteudbyder til at sende e-mails, så alle e-mails, der sendes fra applikationen, vil også blive gemt i din "Sendte" mappe i din postkasse. -WarningPHPMailD=Det anbefales derfor også at ændre afsendelsesmetoden for e-mails til værdien "SMTP". Hvis du virkelig vil beholde standardmetoden "PHP" til at sende e-mails, skal du bare ignorere denne advarsel eller fjerne den ved at indstille MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstanten til 1 i Hjem - Opsætning - Øvrig opsætning. +WarningPHPMailD=Det anbefales derfor at ændre afsendelsesmetoden for e-mails til værdien "SMTP". +WarningPHPMailDbis=Hvis du virkelig vil beholde standardmetoden "PHP" til at sende e-mails, skal du bare ignorere denne advarsel eller fjerne den ved at %sklikke her%s. WarningPHPMail2=Hvis din e-mail SMTP-udbyder har brug for at begrænse e-mail klienten til nogle IP-adresser (meget sjældent), er dette IP-adressen på mailbrugeragenten (MUA) til din ERP CRM-applikation: %s. WarningPHPMailSPF=Hvis domænenavnet i din afsender e-mail adresse er beskyttet af en SPF-record (spørg din domænenavnsregistrator), skal du tilføje følgende IP-adresser i SPF-recorden for dit domænes DNS: %s. -ActualMailSPFRecordFound=Aktiv SPF-post fundet: %s +ActualMailSPFRecordFound=Faktisk SPF-post fundet (for e-mail %s): %s ClickToShowDescription=Klik for at vise beskrivelse DependsOn=Dette modul har brug for modulet/modulerne RequiredBy=Dette modul er påkrævet af modul(erne) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Eksempel:
    For formularen til at oprette en PageUrlForDefaultValuesList=
    Eksempel:
    For siden, der viser tredjeparter, er det %s.
    For URL'er for eksterne moduler installeret i brugerdefineret mappe, skal du ikke inkludere "custom/", så brug en sti som mymodule/mypagelist.php og ikke custom/mymodule/mypagelist.php.
    Hvis du kun ønsker standardværdi, hvis url har en eller anden parameter, kan du bruge %s AlsoDefaultValuesAreEffectiveForActionCreate=Bemærk også, at overskrivning af standardværdier til oprettelse af formularer kun virker for sider, der er designet korrekt (så med parameteren action=create or presend...) EnableDefaultValues=Aktiver tilpasning af standardværdier -EnableOverwriteTranslation=Aktiver brug af egne oversættelser +EnableOverwriteTranslation=Tillad tilpasning af oversættelser GoIntoTranslationMenuToChangeThis=Der er fundet en oversættelse til nøglen med denne kode. For at ændre denne værdi skal du redigere den fra Hjem - Opsætning - Oversættelse. WarningSettingSortOrder=Advarsel, indstilling af en standard sorteringsrækkefølge kan resultere i en teknisk fejl, når du går på listesiden, hvis feltet er et ukendt felt. Hvis du oplever en sådan fejl, skal du vende tilbage til denne side for at fjerne standardsorteringsrækkefølgen og gendanne standardadfærd. Field=Felt @@ -591,7 +593,7 @@ Module80Desc=Forsendelser og følgeseddel styring Module85Name=Banker og kontanter Module85Desc=Styring af bank- eller kassekonti Module100Name=Eksternt websted -Module100Desc=Tilføj et link til et eksternt websted som et hovedmenu ikon. Hjemmesiden vises i en ramme under topmenuen. +Module100Desc=Tilføj et link til et eksternt websted som et hovedmenuikon. Webstedet vises i en ramme under topmenuen. Module105Name=Mailman og SPIP Module105Desc=Mailman eller SPIP interface til medlemsmodul Module200Name=LDAP @@ -645,9 +647,9 @@ Module2400Name=Begivenheder/tidsplan Module2400Desc=Spor begivenheder. Log automatiske begivenheder til sporingsformål eller optag manuelle begivenheder eller møder. Dette er hovedmodulet for god kunde- eller leverandør-relationsstyring. Module2500Name=DMS / ECM Module2500Desc=Dokumentstyringssystem / Elektronisk indholdsstyring. Automatisk organisering af dine genererede eller gemte dokumenter. Del dem, når du har behov for det. -Module2600Name=API/webtjenester (SOAP server) +Module2600Name=API / webtjenester (SOAP-server) Module2600Desc=Aktiver Dolibarr SOAP serveren, der leverer API-tjenester -Module2610Name=API/webtjenester (REST server) +Module2610Name=API / webtjenester (REST-server) Module2610Desc=Aktiver Dolibarr REST serveren, der leverer API-tjenester Module2660Name=Ring til Web tjenesterne (SOAP klient) Module2660Desc=Aktiver Dolibarr webservice klienten (Kan bruges til at sende data/anmodninger til eksterne servere. Kun indkøbsordrer understøttes i øjeblikket.) @@ -666,10 +668,10 @@ Module5000Name=Multi-virksomhed Module5000Desc=Giver dig mulighed for at administrere flere virksomheder Module6000Name=Workflow mellem moduler Module6000Desc=Workflow styring mellem forskellige moduler (automatisk oprettelse af objekt og/eller automatisk statusændring) -Module10000Name=Hjemmesider -Module10000Desc=Opret websteder (offentlige) med en WYSIWYG-editor. Dette er en webmaster eller udviklerorienteret CMS (det er bedre at kende HTML og CSS sprog). Bare opsæt din webserver (Apache, Nginx, ...) for at pege på det dedikerede Dolibarr-bibliotek for at have det online på internettet med dit eget domænenavn. -Module20000Name=Orlovs styring -Module20000Desc=Opret og spor medarbejdernes orlovsanmodninger +Module10000Name=Websteder +Module10000Desc=Opret websteder (offentlige) med en WYSIWYG-editor. Dette er et webmaster- eller udviklerorienteret CMS (det er bedre at kende HTML- og CSS-sprog). Du skal bare opsætte din webserver (Apache, Nginx, ...) til at pege på den dedikerede Dolibarr-mappe for at have den online på internettet med dit eget domænenavn. +Module20000Name=Fraværsregistrering +Module20000Desc=Opret og spor medarbejdernes fraværsanmodninger Module39000Name=Varepartier Module39000Desc=Partier, serienumre, håndtering af Bedst før/Sidste anvendelsesdato for varer Module40000Name=Multivaluta @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Tilføj funktioner til at administrere Incoterms Module63000Name=Ressourcer Module63000Desc=Administrer ressourcer (printere, biler, lokaler, ...) til at allokere til begivenheder +Module94160Name=Modtagelse Permission11=Læs kundefakturaer Permission12=Oprette/ændre kundefakturaer Permission13=Ugyldiggør kundefakturaer @@ -714,6 +717,7 @@ Permission27=Slet tilbud Permission28=Eksporter tilbud Permission31=Læs varer Permission32=Opret/rediger varer +Permission33=Læs priser produkter Permission34=Slet varer Permission36=Se/administrer skjulte varer Permission38=Eksportere varer @@ -739,6 +743,7 @@ Permission79=Opret/ændre abonnementer Permission81=Læs kundeordrer Permission82=Oprette/ændre kundeordrer Permission84=Bekræfte kundeordrer +Permission85=Generer dokumenternes salgsordrer Permission86=Send kundeordrer Permission87=Luk kundeordrer Permission88=Annuller kundeordrer @@ -840,9 +845,9 @@ Permission286=Eksporter kontakter Permission291=Læs takster Permission292=Indstil tilladelser til taksterne Permission293=Ændre kundens tariffer -Permission300=Læs stregkoder -Permission301=Opret/rediger stregkoder -Permission302=Slet stregkoder +Permission301=Generer PDF-ark med stregkoder +Permission304=Opret/rediger stregkoder +Permission305=Slet stregkoder Permission311=Læs tjenester Permission312=Tildel service/abonnement til kontrakt Permission331=Læs bogmærker @@ -874,6 +879,7 @@ Permission525=Få adgang til låneberegner Permission527=Eksporter lån Permission531=Læs ydelser Permission532=Opret/ændre ydelser +Permission533=Læs priser tjenester Permission534=Slet ydelser Permission536=Se/administrer skjulte ydelser Permission538=Eksport af ydelser @@ -968,13 +974,14 @@ Permission3301=Generer nye moduler Permission4001=Læs færdigheder/job/stilling Permission4002=Opret/ændre færdigheder/job/position Permission4003=Slet færdighed/job/stilling -Permission4020=Læs evalueringer -Permission4021=Opret/rediger din evaluering -Permission4022=Valider evaluering -Permission4023=Slet evaluering -Permission4030=Se sammenligningsmenu +Permission4021=Læs evalueringer (dine og dine underordnede) +Permission4022=Opret/ændre evalueringer +Permission4023=Valider evaluering +Permission4025=Slet evaluering +Permission4028=Se sammenligningsmenu Permission4031=Læs personlige oplysninger Permission4032=Skriv personlige oplysninger +Permission4033=Læs alle evalueringer (også dem fra brugere, der ikke er underordnede) Permission10001=Læs webside indhold Permission10002=Opret/rediger webside indhold (html og javascript indhold) Permission10003=Opret/rediger webside indhold (dynamisk php-kode). Farligt, skal forbeholdes betroede udviklere. @@ -1068,7 +1075,7 @@ DictionaryMeasuringUnits=Måleenheder DictionarySocialNetworks=Sociale netværk DictionaryProspectStatus=Mulighedsstatus for virksomheder DictionaryProspectContactStatus=Mulighedsstatus for kontakter -DictionaryHolidayTypes=Orlov - Typer af orlov +DictionaryHolidayTypes=Fravær - Typer af fravær DictionaryOpportunityStatus=Mulighedsstatus for projekt/mulighed DictionaryExpenseTaxCat=Udgiftsrapport - Transportkategorier DictionaryExpenseTaxRange=Udgiftsrapport - Interval efter transportkategori @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type af afhændelse af aktiver TypeOfUnit=Type af måleenhed SetupSaved=Opsætningen er gemt SetupNotSaved=Opsætningen er ikke gemt +OAuthServiceConfirmDeleteTitle=Slet OAuth-post +OAuthServiceConfirmDeleteMessage=Er du sikker på, at du vil slette denne OAuth-post? Alle eksisterende tokens for det vil også blive slettet. +ErrorInEntryDeletion=Fejl ved sletning af indtastning +EntryDeleted=Indlæg slettet BackToModuleList=Tilbage til modullisten BackToDictionaryList=Tilbage til ordbogslisten TypeOfRevenueStamp=Type af stempelmærker @@ -1089,10 +1100,10 @@ VATIsNotUsedExampleFR=I Frankrig betyder det foreninger, der ikke er angivet oms ##### Local Taxes ##### TypeOfSaleTaxes=Momstype LTRate=Sats -LocalTax1IsNotUsed=Brug ikke anden afgift -LocalTax1IsUsedDesc=Brug en anden type afgift (andre end den første) +LocalTax1IsNotUsed=Brug ikke sekundær afgift +LocalTax1IsUsedDesc=Brug en sekundær afgiftstype (andre end den første) LocalTax1IsNotUsedDesc=Brug ikke anden type afgift (andre end den første) -LocalTax1Management=Anden type afgift +LocalTax1Management=Sekundær afgiftstype LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Brug ikke tredje type afgift @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Værdien af en konfigurationskonstant ConstantIsOn=Mulighed %s er aktiveret NbOfDays=Antal dage AtEndOfMonth=Ved udgangen af måneden -CurrentNext=Nuværende/Næste +CurrentNext=En given dag i måneden Offset=Offset AlwaysActive=Altid aktiv Upgrade=Opgrader @@ -1160,8 +1171,8 @@ SummaryConst=Liste over alle Dolibarr opsætningsparametre MenuCompanySetup=Virksomhed/Organisation DefaultMenuManager= Standard menu styrer DefaultMenuSmartphoneManager=Smartphone menu styrer -Skin=Overflade tema -DefaultSkin=Standard overflade tema +Skin=Skin tema +DefaultSkin=Standard skin tema MaxSizeList=Maksimal længde for liste DefaultMaxSizeList=Standard maks. længde for lister DefaultMaxSizeShortList=Standard maksimal længde for korte lister (dvs. i kundekort) @@ -1234,12 +1245,14 @@ InfoSecurity=Om Sikkerhed BrowserName=Browsernavn BrowserOS=Browser OS ListOfSecurityEvents=Liste over Dolibarr sikkerhedshændelser -SecurityEventsPurged=Sikkerhedshændelser renset +SecurityEventsPurged=Sikkerhedshændelser ryddet +TrackableSecurityEvents=Sporbare sikkerhedshændelser LogEventDesc=Aktiver logning for specifikke sikkerhedshændelser. Administratorer loggen via menuen %s - %s . Advarsel, denne funktion kan generere en stor mængde data i databasen. AreaForAdminOnly=Opsætningsparametre kan kun indstilles af administratorbrugere. SystemInfoDesc=Systemoplysninger er diverse tekniske oplysninger, du får i skrivebeskyttet tilstand og kun synlige for administratorer. SystemAreaForAdminOnly=Dette område er kun tilgængeligt for administratorbrugere. Dolibarr brugerrettigheder kan ikke ændre denne begrænsning. CompanyFundationDesc=Rediger oplysningerne om din virksomhed/organisation. Klik på knappen "%s" nederst på siden, når du er færdig. +MoreNetworksAvailableWithModule=Flere sociale netværk kan være tilgængelige ved at aktivere modulet "Sociale netværk". AccountantDesc=Hvis du har en ekstern revisor/bogholder, kan du her redigere dennes oplysninger. AccountantFileNumber=Revisorkode DisplayDesc=Parametre, der påvirker udseendet og præsentationen af applikationen, kan ændres her. @@ -1288,13 +1301,15 @@ WeekStartOnDay=Ugens første dag RunningUpdateProcessMayBeRequired=Det ser ud til at være nødvendigt at køre opgraderingsprocessen (programversion %s adskiller sig fra databaseversion %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Du skal køre denne kommando fra kommandolinjen efter login til en shell med brugeren %s, eller du skal tilføje -W-indstillingen i slutningen af kommandolinjen for at give %s adgangskodeen YourPHPDoesNotHaveSSLSupport=SSL funktioner er ikke tilgængelige i din PHP -DownloadMoreSkins=Flere overflader at downloade +DownloadMoreSkins=Flere skins at downloade SimpleNumRefModelDesc=Returnerer referencenummeret i formatet %syymm-nnnn hvor yy er året, mm er måneden og nnnn er et sekventielt auto-inkrementerende tal uden nulstilling +SimpleRefNumRefModelDesc=Returnerer referencenummeret i formatet n, hvor n er et sekventielt automatisk stigende tal uden nulstilling +AdvancedNumRefModelDesc=Returnerer referencenummeret i formatet %syymm-nnnn hvor yy er året, mm er måneden og nnnn er et sekventielt auto-inkrementerende tal uden nulstilling SimpleNumRefNoDateModelDesc=Returnerer referencenummeret i formatet %s-nnnn hvor nnnn er et sekventielt auto-inkrementerende tal uden nulstilling ShowProfIdInAddress=Vis professionelt ID ved adresser ShowVATIntaInAddress=Skjul momsnummer inden for Fællesskabet TranslationUncomplete=Delvis oversættelse -MAIN_DISABLE_METEO=Deaktiver vejrtommel +MAIN_DISABLE_METEO=Deaktiver vejr miniature MeteoStdMod=Standardtilstand MeteoStdModEnabled=Standardtilstand aktiveret MeteoPercentageMod=Procenttilstand @@ -1376,7 +1391,7 @@ GetBarCode=Få stregkode NumberingModules=Nummererings modeller DocumentModules=Dokumentmodeller ##### Module password generation -PasswordGenerationStandard=Returner en adgangskode genereret i henhold til intern Dolibarr algoritme: %s tegn, der indeholder dels tal og tegn med små bogstaver. +PasswordGenerationStandard=Returner en adgangskode genereret i henhold til intern Dolibarr-algoritme: %s tegn, der indeholder delte tal og tegn. PasswordGenerationNone=Foreslå ikke en genereret adgangskode. Adgangskoden skal indtastes manuelt. PasswordGenerationPerso=Returner en adgangskode i henhold til din personligt definerede konfiguration. SetupPerso=I henhold til din konfiguration @@ -1430,6 +1445,10 @@ SuppliersPayment=Leverandørbetalinger SupplierPaymentSetup=Opsætning af leverandørbetalinger InvoiceCheckPosteriorDate=Tjek fabrikationsdatoen før godkendelse InvoiceCheckPosteriorDateHelp=Godkendelse af en faktura vil være forbudt, hvis dens dato er forud for datoen for sidste faktura af samme type. +InvoiceOptionCategoryOfOperations=Vis omtalen "kategori af operationer" på fakturaen. +InvoiceOptionCategoryOfOperationsHelp=Afhængigt af situationen vil omtalen fremstå i formen:
    - Operationskategori: Levering af varer
    - Operationskategori: Levering af tjenesteydelser
    - Operationskategori: Blandet og levering af varer +InvoiceOptionCategoryOfOperationsYes1=Ja, under adresseblokken +InvoiceOptionCategoryOfOperationsYes2=Ja, i nederste venstre hjørne ##### Proposals ##### PropalSetup=Opsætning af tilbuds modul ProposalsNumberingModules=Tilbud nummererings format @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Vandmærke på udkast til kontrakt (ingen hvis tom ##### Members ##### MembersSetup=Opsætning af medlemsmodul MemberMainOptions=Standardmuligheder +MemberCodeChecker=Muligheder for automatisk generering af medlemskoder AdherentLoginRequired= Administrer et login for hvert medlem AdherentMailRequired=E-mail påkrævet for at oprette et nyt medlem MemberSendInformationByMailByDefault=Afkrydsningsfeltet for at sende mailbekræftelse til medlemmer (validering eller nyt abonnement) er slået til som standard MemberCreateAnExternalUserForSubscriptionValidated=Opret et eksternt brugerlogin for hvert nyt medlemsabonnement, der valideres -VisitorCanChooseItsPaymentMode=Besøgende kan vælge mellem tilgængelige betalingsformer +VisitorCanChooseItsPaymentMode=Besøgende kan vælge mellem alle tilgængelige betalingsformer MEMBER_REMINDER_EMAIL=Aktiver automatisk påmindelse via e-mail om udløbne abonnementer. Bemærk: Modul %s skal være aktiveret og korrekt opsat for at sende påmindelser. MembersDocModules=Dokumentskabeloner til dokumenter genereret fra medlemsregistrering ##### LDAP setup ##### @@ -1548,22 +1568,22 @@ LDAPTestSearch= Test LDAP søgning LDAPSynchroOK=Synkroniseringstest gennemført LDAPSynchroKO=Mislykket synkroniseringstest LDAPSynchroKOMayBePermissions=Mislykket synkroniseringstest. Kontroller, at forbindelsen til serveren er korrekt konfigureret og tillader LDAP opdateringer -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP forbindelse til LDAP-serveren vellykket (Server= %s, Port= %s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP forbindelse til LDAP-serveren mislykkedes (Server= %s, Port= %s) -LDAPBindOK=Forbind / godkend til LDAP-server succesfuldt (Server = %s, Port = %s, Admin = %s, Password = %s) -LDAPBindKO=Forbind / godkend til LDAP-server mislykkedes (Server = %s, Port = %s, Admin = %s, Password = %s) -LDAPSetupForVersion3=LDAP-server er konfigureret til version 3 -LDAPSetupForVersion2=LDAP-server er konfigureret til version 2 +LDAPTCPConnectOK=TCP forbindelse til LDAP server lykkedes (Server=%s, Port=%s) +LDAPTCPConnectKO=TCP forbindelse til LDAP server mislykkedes (Server=%s, Port=%s) +LDAPBindOK=Forbinde/godkendelse til LDAP server lykkedes (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindKO=Forbindelse/godkendelse til LDAP server mislykkedes (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPSetupForVersion3=LDAP server konfigureret til version 3 +LDAPSetupForVersion2=LDAP server konfigureret til version 2 LDAPDolibarrMapping=Dolibarr Mapping LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (Unix) +LDAPFieldLoginUnix=Login (unix) LDAPFieldLoginExample=Eksempel: uid LDAPFilterConnection=Søgefilter -LDAPFilterConnectionExample=Eksempel: & (objectClass = inetOrgPerson) -LDAPGroupFilterExample=Eksempel: & (objectClass = groupOfUsers) +LDAPFilterConnectionExample=Eksempel: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Eksempel: &(objectClass=groupOfUsers) LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Eksempel: Samaccountnavn -LDAPFieldFullname=Fornavn Navn +LDAPFieldLoginSambaExample=Eksempel: samaccountname +LDAPFieldFullname=Fulde navn LDAPFieldFullnameExample=Eksempel: cn LDAPFieldPasswordNotCrypted=Adgangskode er ikke krypteret LDAPFieldPasswordCrypted=Adgangskode er krypteret @@ -1573,17 +1593,17 @@ LDAPFieldName=Navn LDAPFieldNameExample=Eksempel: sn LDAPFieldFirstName=Fornavn LDAPFieldFirstNameExample=Eksempel: givenName -LDAPFieldMail=E-mail-adresse +LDAPFieldMail=E-mail adresse LDAPFieldMailExample=Eksempel: mail -LDAPFieldPhone=Professional telefonnummer +LDAPFieldPhone=Firma telefonnummer LDAPFieldPhoneExample=Eksempel: telefonnummer -LDAPFieldHomePhone=Personlige telefonnummer -LDAPFieldHomePhoneExample=Eksempel: Homephone +LDAPFieldHomePhone=Privat telefonnummer +LDAPFieldHomePhoneExample=Eksempel: hjemmetelefon LDAPFieldMobile=Mobiltelefon LDAPFieldMobileExample=Eksempel: mobil -LDAPFieldFax=Faxnummer -LDAPFieldFaxExample=Eksempel: telefaxnummer -LDAPFieldAddress=Street +LDAPFieldFax=Fax nummer +LDAPFieldFaxExample=Eksempel: faxnummer +LDAPFieldAddress=Gade LDAPFieldAddressExample=Eksempel: gade LDAPFieldZip=Postnummer LDAPFieldZipExample=Eksempel: postnummer @@ -1594,645 +1614,663 @@ LDAPFieldDescription=Beskrivelse LDAPFieldDescriptionExample=Eksempel: beskrivelse LDAPFieldNotePublic=Offentlig note LDAPFieldNotePublicExample=Eksempel: publicnote -LDAPFieldGroupMembers= Gruppens medlemmer +LDAPFieldGroupMembers= Gruppemedlemmer LDAPFieldGroupMembersExample= Eksempel: uniqueMember LDAPFieldBirthdate=Fødselsdato LDAPFieldCompany=Firma LDAPFieldCompanyExample=Eksempel: o LDAPFieldSid=SID -LDAPFieldSidExample=Eksempel: objektside -LDAPFieldEndLastSubscription=Dato for tilmelding udgangen +LDAPFieldSidExample=Eksempel: objectsid +LDAPFieldEndLastSubscription=Dato for ophør af abonnement LDAPFieldTitle=Stilling LDAPFieldTitleExample=Eksempel: titel LDAPFieldGroupid=Gruppe id -LDAPFieldGroupidExample=Eksempel: gid nummer +LDAPFieldGroupidExample=Eksempel: gidnumber LDAPFieldUserid=Bruger ID LDAPFieldUseridExample=Eksempel: uidnumber -LDAPFieldHomedirectory=Hjem bibliotek -LDAPFieldHomedirectoryExample=Eksempel: hjemmeledelse -LDAPFieldHomedirectoryprefix=Hjemmekatalog præfiks -LDAPSetupNotComplete=LDAP-opsætning ikke komplet (gå på andre faner) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Ingen administrator eller adgangskode angivet. LDAP-adgang vil være anonym og kun med læsning. -LDAPDescContact=Denne side giver dig mulighed for at definere LDAP attributter navn i LDAP træ for hver data findes på Dolibarr kontakter. -LDAPDescUsers=Denne side giver dig mulighed for at definere LDAP attributter navn i LDAP træ for hver data findes på Dolibarr brugere. -LDAPDescGroups=Denne side giver dig mulighed for at definere LDAP attributter navn i LDAP træ for hver data findes på Dolibarr grupper. -LDAPDescMembers=Denne side giver dig mulighed for at definere LDAP attributter navn i LDAP træ for hver data findes på Dolibarr medlemmer modul. -LDAPDescMembersTypes=Denne side giver dig mulighed for at definere LDAP attributter navn i LDAP-træet for hver data, der findes på Dolibarr medlemmer typer. -LDAPDescValues=Eksempel værdier er konstrueret til OpenLDAP med følgende lastes skemaer: core.schema, cosine.schema, inetorgperson.schema). Hvis du bruger thoose værdier og OpenLDAP, ændre din LDAP konfigurationsfil slapd.conf at få alle thoose skemaer indlæses. -ForANonAnonymousAccess=For en autentificeret adgang (for en skriveadgangen for eksempel) -PerfDolibarr=Prestationsopsætning / optimeringsrapport -YouMayFindPerfAdviceHere=Denne side giver nogle checks eller råd vedrørende performance. +LDAPFieldHomedirectory=Hjemmemappe +LDAPFieldHomedirectoryExample=Eksempel: homedirectory +LDAPFieldHomedirectoryprefix=Hjemmemappe præfiks +LDAPSetupNotComplete=LDAP opsætning ikke fuldført (gå til andre faner) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Ingen administrator eller adgangskode angivet. LDAP adgang vil være anonym og i skrivebeskyttet tilstand. +LDAPDescContact=Denne side giver dig mulighed for at definere LDAP attributternes navn i LDAP træet for hver data, der findes på Dolibarr kontakter. +LDAPDescUsers=Denne side giver dig mulighed for at definere LDAP attributnavnet i LDAP træet for hver data, der findes på Dolibarr brugere. +LDAPDescGroups=Denne side giver dig mulighed for at definere LDAP attributnavnet i LDAP træet for hver data, der findes på Dolibarr grupper. +LDAPDescMembers=Denne side giver dig mulighed for at definere LDAP attributnavnet i LDAP træet for hver data, der findes på Dolibarr medlemsmodul. +LDAPDescMembersTypes=Denne side giver dig mulighed for at definere LDAP attributnavnet i LDAP træet for hver data, der findes på Dolibarr medlemstyper. +LDAPDescValues=Eksempelværdier er designet til OpenLDAP med følgende indlæste skemaer: core.schema, cosine.schema, inetorgperson.schema). Hvis du bruger disse værdier og OpenLDAP, skal du ændre din LDAP konfigurationsfil slapd.conf for at få alle disse skemaer indlæst. +ForANonAnonymousAccess=For en godkendt adgang (for en skriveadgang for eksempel) +PerfDolibarr=Ydeevne opsætning/optimeringsrapport +YouMayFindPerfAdviceHere=Denne side giver nogle kontroller eller råd relateret til ydeevne. NotInstalled=Ikke installeret. -NotSlowedDownByThis=Ikke bremset af dette. -NotRiskOfLeakWithThis=Ikke risiko for lækage med dette. +NotSlowedDownByThis=Ikke forsinket af dette. +NotRiskOfLeakWithThis=Ikke risiko for læk med dette. ApplicativeCache=Applikationsbuffer -MemcachedNotAvailable=Ingen applikationsbuffer fundet. Du kan forbedre ydeevnen ved at installere en cache-server Memcached og et modul, der kan bruge denne cache-server.
    Mere information her http: //wiki.dolibarr.org/index.php/Module_MemCached_EN .
    Bemærk, at en masse web hosting udbyder ikke giver sådan cache server. -MemcachedModuleAvailableButNotSetup=Modul memcached for applikationscache fundet, men opsætning af modul er ikke komplet. -MemcachedAvailableAndSetup=Modul memcached dedikeret til brug memcached server er aktiveret. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=Ingen OPCode cache fundet. Måske bruger du en OPCode cache andet end XCache eller eAccelerator (god), eller måske har du ikke OPCode cache (meget dårlig). -HTTPCacheStaticResources=HTTP-cache for statiske ressourcer (css, img, javascript) -FilesOfTypeCached=Filer af typen %s caches af HTTP-serveren -FilesOfTypeNotCached=Filer af typen %s caches ikke af HTTP-serveren -FilesOfTypeCompressed=Filer af typen %s komprimeres af HTTP-serveren -FilesOfTypeNotCompressed=Filer af typen %s komprimeres ikke af HTTP-serveren -CacheByServer=Cache af server -CacheByServerDesc=For eksempel ved hjælp af Apache-direktivet "ExpiresByType image / gif A2592000" -CacheByClient=Cache via browser -CompressionOfResources=Kompression af HTTP-reaktioner -CompressionOfResourcesDesc=For eksempel ved hjælp af Apache-direktivet "AddOutputFilterByType DEFLATE" -TestNotPossibleWithCurrentBrowsers=En sådan automatisk detektering er ikke mulig med de aktuelle browsere -DefaultValuesDesc=Her kan du definere den standardværdi, du vil bruge, når du opretter en ny post, og / eller standardfiltre eller sorteringsrækkefølgen, når du registrerer optegnelser. +MemcachedNotAvailable=Ingen applikationsbuffer fundet. Du kan forbedre ydeevnen ved at installere en cache server Memcached og et modul, der kan bruge denne cacheserver.
    Mere information her http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    Bemærk, at mange webhostingudbydere ikke leverer en sådan cache server. +MemcachedModuleAvailableButNotSetup=Modul memcached for applikationsbuffer fundet, men opsætningen af modulet er ikke færdig. +MemcachedAvailableAndSetup=Modul memcached dedikeret til at bruge memcached server er aktiveret. +OPCodeCache=OPCode buffer +NoOPCodeCacheFound=Ingen OPCode buffer fundet. Måske bruger du en anden OPCode buffer end XCache eller eAccelerator (god), eller måske har du ikke OPCode buffer (meget dårlig). +HTTPCacheStaticResources=HTTP buffer til statiske ressourcer (css, img, javascript) +FilesOfTypeCached=Filer af typen %s buffer gemmes af HTTP serveren +FilesOfTypeNotCached=Filer af typen %s buffer gemmes ikke af HTTP serveren +FilesOfTypeCompressed=Filer af typen %s komprimeres af HTTP serveren +FilesOfTypeNotCompressed=Filer af typen %s komprimeres ikke af HTTP serveren +CacheByServer=Buffer af server +CacheByServerDesc=For eksempel ved at bruge Apache direktivet "ExpiresByType image/gif A2592000" +CacheByClient=Buffer via browser +CompressionOfResources=Komprimering af HTTP svar +CompressionOfResourcesDesc=For eksempel ved at bruge Apache direktivet "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=En sådan automatisk registrering er ikke mulig med nuværende browsere +DefaultValuesDesc=Her kan du definere den standardværdi, du ønsker at bruge, når du opretter en ny post, og/eller standardfiltre eller sorteringsrækkefølgen, når du angiver poster. DefaultCreateForm=Standardværdier (til brug på formularer) DefaultSearchFilters=Standard søgefiltre -DefaultSortOrder=Standard sorteringsordrer -DefaultFocus=Standardfokusfelter -DefaultMandatory=Obligatoriske formularer +DefaultSortOrder=Standard sorteringsrækkefølger +DefaultFocus=Standard fokusfelter +DefaultMandatory=Obligatoriske formularfelter ##### Products ##### ProductSetup=Opsætning af varemodul -ServiceSetup=Installation af servicemoduler -ProductServiceSetup=Opsætning af Varer/ydelser-modul -NumberOfProductShowInSelect=Maksimalt antal produkter, der skal vises i kombinationsvalglister (0 = ingen grænse) -ViewProductDescInFormAbility=Vis produktbeskrivelser i varelinjer (ellers vis beskrivelse i en værktøjstip -popup) -OnProductSelectAddProductDesc=Sådan bruges beskrivelsen af produkterne, når du tilføjer et produkt som en linje i et dokument -AutoFillFormFieldBeforeSubmit=Udfyld automatisk indtastningsfeltet med beskrivelsen af produktet -DoNotAutofillButAutoConcat=Udfyld ikke indtastningsfeltet automatisk med produktbeskrivelse. Produktbeskrivelsen sammenkædes automatisk med den indtastede beskrivelse. -DoNotUseDescriptionOfProdut=Produktbeskrivelse vil aldrig blive inkluderet i beskrivelsen af dokumentlinjer -MergePropalProductCard=Aktivér i produkt / tjeneste Vedhæftede filer fanen en mulighed for at fusionere produkt PDF-dokument til forslag PDF azur hvis produkt / tjeneste er i forslaget -ViewProductDescInThirdpartyLanguageAbility=Vis produktbeskrivelser i formularer på tredjeparts sprog (ellers på brugerens sprog) -UseSearchToSelectProductTooltip=Også hvis du har et stort antal produkter (> 100 000), kan du øge hastigheden ved at indstille konstant PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Setup - Other. Søgningen er så begrænset til starten af ​​strengen. -UseSearchToSelectProduct=Vent, indtil du trykker på en tast, inden du læser indholdet af produktkombinationslisten (dette kan øge ydeevnen, hvis du har et stort antal produkter, men det er mindre praktisk) -SetDefaultBarcodeTypeProducts=Standard stregkodetype, der skal bruges til varer -SetDefaultBarcodeTypeThirdParties=Default stregkode type bruge til tredjemand -UseUnits=Definer en måleenhed for mængde under bestilling, forslag eller faktura linjer udgave -ProductCodeChecker= Modul til generering af varekode og kontrol (vare eller ydelse) -ProductOtherConf= Vare/ydelse-konfiguration +ServiceSetup=Opsætning af ydelsesmodul +ProductServiceSetup=Opsætning af produkt- og ydelsesmoduler +NumberOfProductShowInSelect=Maksimalt antal varer, der skal vises i kombinationslister (0=ingen grænse) +ViewProductDescInFormAbility=Vis varebeskrivelser i linjer med varer (ellers vis beskrivelse i et popup vindue med værktøjstip) +OnProductSelectAddProductDesc=Sådan bruger du beskrivelsen af produkterne, når du tilføjer et produkt som en linje i et dokument +AutoFillFormFieldBeforeSubmit=Udfyld automatisk beskrivelsesindtastningsfeltet med beskrivelsen af varen +DoNotAutofillButAutoConcat=Udfyld ikke indtastningsfeltet med en beskrivelse af varen. Beskrivelse af varen vil automatisk blive sammenkædet med den indtastede beskrivelse. +DoNotUseDescriptionOfProdut=Beskrivelse af varen vil aldrig indgå i beskrivelsen af linjer i dokumenter +MergePropalProductCard=Aktiver i fanen Varer/ydelser Vedhæftede filer en mulighed for at flette vare PDF dokument til forslag PDF azur, hvis varer/ydelse er i forslaget +ViewProductDescInThirdpartyLanguageAbility=Vis produktbeskrivelser i formularer på tredjepartens sprog (ellers på brugerens sprog) +UseSearchToSelectProductTooltip=Også hvis du har et stort antal produkter (> 100.000), kan du øge hastigheden ved at sætte konstanten PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Hjem - Opsætning - Anden opsætning. Søgning vil derefter være begrænset til starten af strengen. +UseSearchToSelectProduct=Vent, indtil du trykker på en tast, før du indlæser indholdet af vare kombinationslisten (dette kan øge ydeevnen, hvis du har et stort antal produkter, men det er mindre bekvemt) +SetDefaultBarcodeTypeProducts=Standard stregkodetype til brug for varer +SetDefaultBarcodeTypeThirdParties=Standard stregkodetype til brug for tredjeparter +UseUnits=Definer en måleenhed for mængde under ordre-, tilbuds- eller fakturalinjer +ProductCodeChecker= Modul til generering og kontrol af varekode (vare eller ydelse) +ProductOtherConf= Vare/ydelses konfiguration IsNotADir=er ikke en mappe! ##### Syslog ##### -SyslogSetup=Log-modul opsætning +SyslogSetup=Opsætning af logmodul SyslogOutput=Log output -SyslogFacility=Facility +SyslogFacility=Facilitet SyslogLevel=Niveau SyslogFilename=Filnavn og sti -YouCanUseDOL_DATA_ROOT=Du kan bruge DOL_DATA_ROOT / dolibarr.log for en logfil i Dolibarr "dokumenter" mappen. Du kan indstille en anden vej til at gemme denne fil. -ErrorUnknownSyslogConstant=Konstant %s er ikke en kendt syslog konstant -OnlyWindowsLOG_USER=På Windows understøttes kun LOG_USER-faciliteten -CompressSyslogs=Komprimering og backup af fejlfindingslogfiler (genereret af modul Log til fejlfinding) -SyslogFileNumberOfSaves=Antal sikkerhedskopilogfiler, der skal gemmes -ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurer rengøringsplanlagt job for at indstille log backupfrekvens +YouCanUseDOL_DATA_ROOT=Du kan bruge DOL_DATA_ROOT/dolibarr.log til en logfil i Dolibarr "dokumenter" mappen. Du kan indstille en anden sti til at gemme denne fil. +ErrorUnknownSyslogConstant=Konstant %s er ikke en kendt Syslog konstant +OnlyWindowsLOG_USER=På Windows understøttes kun LOG_USER-funktionen +CompressSyslogs=Komprimering og backup af debug logfiler (genereret af modul Log for debug) +SyslogFileNumberOfSaves=Antal backup logfiler, der skal opbevares +ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurer det planlagte oprydningsjob for at indstille hyppigheden af log backup ##### Donations ##### -DonationsSetup=Indstilling af donationsmodul -DonationsReceiptModel=Skabelon for donationen modtagelse +DonationsSetup=Opsætning af donationsmodul +DonationsReceiptModel=Skabelon for donationskvittering ##### Barcode ##### BarcodeSetup=Stregkode opsætning -PaperFormatModule=Print format modul -BarcodeEncodeModule=Barcode encoding type +PaperFormatModule=Udskriftsformatmodul +BarcodeEncodeModule=Stregkode kodningstype CodeBarGenerator=Stregkode generator ChooseABarCode=Ingen generator defineret -FormatNotSupportedByGenerator=Format, der ikke understøttes af denne generator -BarcodeDescEAN8=Barcode typeidentifikationsmærker EAN8 -BarcodeDescEAN13=Barcode typeidentifikationsmærker EAN13 -BarcodeDescUPC=Barcode typeidentifikationsmærker UPC -BarcodeDescISBN=Barcode typeidentifikationsmærker ISBN -BarcodeDescC39=Barcode af type C39 -BarcodeDescC128=Barcode af type C128 +FormatNotSupportedByGenerator=Formatet understøttes ikke af denne generator +BarcodeDescEAN8=Stregkode af typen EAN8 +BarcodeDescEAN13=Stregkode af typen EAN13 +BarcodeDescUPC=Stregkode af typen UPC +BarcodeDescISBN=Stregkode af typen ISBN +BarcodeDescC39=Stregkode af type C39 +BarcodeDescC128=Stregkode af typen C128 BarcodeDescDATAMATRIX=Stregkode af typen Datamatrix -BarcodeDescQRCODE=Stregkode af typen QR-kode -GenbarcodeLocation=Barcode generation kommandolinje værktøj (bruges af intern motor til nogle stregkode typer). Skal være kompatibel med "genbarcode".
    For eksempel: / usr / local / bin / genbarcode +BarcodeDescQRCODE=Stregkode af typen QR kode +GenbarcodeLocation=Kommandolinje værktøj til generering af stregkoder (bruges af intern motor til nogle stregkodetyper). Skal være kompatibel med "genbarcode".
    For eksempel: /usr/local/bin/genbarcode BarcodeInternalEngine=Intern motor -BarCodeNumberManager=Manager til automatisk definere stregkode numre +BarCodeNumberManager=Styrer til automatisk at definere stregkodenumre ##### Prelevements ##### -WithdrawalsSetup=Opsætning af modul Direkte debiteringer +WithdrawalsSetup=Opsætning af modul Direct Debit payments ##### ExternalRSS ##### -ExternalRSSSetup=Ekstern import af RSS-import -NewRSS=Ny RSS Feed -RSSUrl=RSS-URL +ExternalRSSSetup=Ekstern RSS import opsætning +NewRSS=Nyt RSS-feed +RSSUrl=RSS URL RSSUrlExample=Et interessant RSS-feed ##### Mailing ##### -MailingSetup=Opsætning af EMail-modul -MailingEMailFrom=Afsender email (Fra) til e-mails sendt via e-mail modul -MailingEMailError=Return Email (Fejl til) for e-mails med fejl -MailingDelay=Sekunder for at vente efter at sende næste besked +MailingSetup=Opsætning af e-mailmodul +MailingEMailFrom=Afsender e-mail (Fra) for e-mails sendt med e-mail-modul +MailingEMailError=Returnerings e-mail (fejl-til) for e-mails med fejl +MailingDelay=Sekunder at vente efter afsendelse af næste besked ##### Notification ##### -NotificationSetup=Opsætning af e-mail-meddelelsesmodul -NotificationEMailFrom=Afsender-e-mail (Fra) for e-mails, der sendes af meddelelsesmodulet +NotificationSetup=Opsætning af e-mail meddelelsesmodul +NotificationEMailFrom=Afsender e-mail (Fra) for e-mails sendt af meddelelsesmodulet FixedEmailTarget=Modtager -NotificationDisableConfirmMessageContact=Skjul listen over modtagere (abonnerer som kontakt) af meddelelser i bekræftelsesmeddelelsen -NotificationDisableConfirmMessageUser=Skjul listen over modtagere (abonnerer som bruger) af meddelelser i bekræftelsesmeddelelsen -NotificationDisableConfirmMessageFix=Skjul listen over modtagere (tilmeldt som global e-mail) af meddelelser i bekræftelsesmeddelelsen +NotificationDisableConfirmMessageContact=Skjul listen over modtagere (abonnerer som kontakt) af meddelelser i bekræftelses meddelelsen +NotificationDisableConfirmMessageUser=Skjul listen over modtagere (abonnerer som bruger) af meddelelser i bekræftelses meddelelsen +NotificationDisableConfirmMessageFix=Skjul listen over modtagere (tilmeldt som global e-mail) af meddelelser i bekræftelses meddelelsen ##### Sendings ##### SendingsSetup=Opsætning af forsendelsesmodul -SendingsReceiptModel=Afsendelse modtagelsen model -SendingsNumberingModules=Forsendelses nummererings format -SendingsAbility=Support forsendelsesark til kundeleverancer -NoNeedForDeliveryReceipts=I de fleste tilfælde anvendes forsendelsesark både som ark til kundeleverancer (liste over produkter, der skal sendes) og ark, der modtages og underskrives af kunden. Kvitteringen for produktleverancer er derfor en duplikeret funktion og aktiveres sjældent. +SendingsReceiptModel=Forsendelseskvitteringsmodel +SendingsNumberingModules=Forsendelsnummererings moduler +SendingsAbility=Support følgeseddel til kundeleverancer +NoNeedForDeliveryReceipts=I de fleste tilfælde bruges følgesedler både som plukliste til kundeleverancer (liste over varer, der skal sendes) og dokument der modtages og underskrives af kunden. Derfor er kvitteringen for vareleverancer en duplikeret funktion og er sjældent aktiveret. FreeLegalTextOnShippings=Fritekst på forsendelser ##### Deliveries ##### -DeliveryOrderNumberingModules=Varelevering nummererings format -DeliveryOrderModel=Model for kvitteringsnumre for varelevering -DeliveriesOrderAbility=Tilbyd kvitteringer for varelevering -FreeLegalTextOnDeliveryReceipts=Fritekst på leveringskvitteringer +DeliveryOrderNumberingModules=Følgeseddelsnummereringsmodul +DeliveryOrderModel=Følgeseddelmodel +DeliveriesOrderAbility=Understøt følgesedler +FreeLegalTextOnDeliveryReceipts=Fritekst på følgesedler ##### FCKeditor ##### -AdvancedEditor=Avanceret tekstredigeringsværktøj -ActivateFCKeditor=Aktivér FCKeditor for: -FCKeditorForNotePublic=WYSIWIG oprettelse/udgave af feltet "offentlige noter" af elementer -FCKeditorForNotePrivate=WYSIWIG oprettelse/udgave af feltet "private notes" af elementer -FCKeditorForCompany=WYSIWIG oprettelse/udgave af feltbeskrivelsen af elementer (undtagen produkter/tjenester) -FCKeditorForProduct=WYSIWIG oprettelse/udgave af feltbeskrivelsen af produkter/tjenester -FCKeditorForProductDetails=WYSIWIG oprettelse / udgave af produkt detaljers linjer for alle enheder (forslag, ordrer, fakturaer osv ...). Advarsel: Brug af denne indstilling til denne sag anbefales ikke, da det kan skabe problemer med specialtegn og sideformatering, når du bygger PDF-filer. -FCKeditorForMailing= WYSIWIG oprettelsen / udgave af postforsendelser -FCKeditorForUserSignature=WYSIWIG oprettelse / udgave af bruger signatur -FCKeditorForMail=WYSIWIG oprettelse / udgave for al mail (undtagen Værktøjer-> eMailing) -FCKeditorForTicket=WYSIWIG oprettelse / udgave af billetter +AdvancedEditor=Avanceret editor +ActivateFCKeditor=Aktiver avanceret editor for: +FCKeditorForNotePublic=WYSIWYG oprettelse/redigering af feltet "offentlige noter" på elementer +FCKeditorForNotePrivate=WYSIWYG oprettelse/redigering af feltet "private noter" på elementer +FCKeditorForCompany=WYSIWYG oprettelse/redigering af feltbeskrivelsen på elementer (undtagen varer/ydelser) +FCKeditorForProductDetails=WYSIWIG oprettelse/udgave af produktbeskrivelse eller linjer til objekter (linjer med forslag, ordrer, fakturaer, osv...). +FCKeditorForProductDetails2=Advarsel: Brug af denne mulighed til dette tilfælde anbefales seriøst ikke, da det kan skabe problemer med specialtegn og sideformatering, når du bygger PDF-filer. +FCKeditorForMailing= WYSIWYG oprettelse/redigering af masse e-mails (Værktøjer->e-mailing) +FCKeditorForUserSignature=WYSIWYG oprettelse/redigering af brugersignatur +FCKeditorForMail=WYSIWYG oprettelse/redigering af al e-mail (undtagen Værktøjer->eMailing) +FCKeditorForTicket=WYSIWYG oprettelse/redigering af opgaver ##### Stock ##### StockSetup=Opsætning af lagermodul -IfYouUsePointOfSaleCheckModule=Hvis du bruger standardmodulet (POS) som standard eller et eksternt modul, kan denne opsætning ignoreres af dit POS-modul. De fleste POS-moduler er som standard designet til at oprette en faktura med det samme og reducere lager uanset valgmulighederne her. Så hvis du har brug for eller ikke har et lagerfald, når du registrerer et salg fra din POS, skal du også kontrollere din POS-modulopsætning. +IfYouUsePointOfSaleCheckModule=Hvis du bruger Point of Sale-modulet (POS), der leveres som standard, eller et eksternt modul, kan denne opsætning blive ignoreret af dit POS-modul. De fleste POS-moduler er som standard designet til at oprette en faktura med det samme og reducere lagerbeholdningen uanset mulighederne her. Så hvis du har brug for eller ikke at have en lagernedgang, når du registrerer et salg fra din POS, så tjek også din POS-modulopsætning. ##### Menu ##### MenuDeleted=Menu slettet Menu=Menu Menus=Menuer -TreeMenuPersonalized=Tilpassede menuer +TreeMenuPersonalized=Personlige menuer NotTopTreeMenuPersonalized=Personlige menuer, der ikke er knyttet til en topmenuindgang NewMenu=Ny menu -MenuHandler=Menu handling +MenuHandler=Menuhandler MenuModule=Kilde modul -HideUnauthorizedMenu=Skjul uautoriserede menuer også for interne brugere (bare gråtonet ellers) -DetailId=Id menuen -DetailMenuHandler=Menu handling, hvor der viser ny menu -DetailMenuModule=Modul navn, hvis menuen indrejse kommer fra et modul -DetailType=Type menuen (øverst eller til venstre) -DetailTitre=Menu etiket eller etiket-kode til oversættelse -DetailUrl=Webadresse, hvor menuen sender dig (Absolut URL link eller eksternt link med http://) -DetailEnabled=Betingelse for at vise eller ikke indrejse +HideUnauthorizedMenu=Skjul uautoriserede menuer også for interne brugere (ellers gråmarkerede) +DetailId=ID menu +DetailMenuHandler=Menuhandler hvor den nye menu skal vises +DetailMenuModule=Modulnavn, hvis menuindgangen kommer fra et modul +DetailType=Menutype (øverst eller venstre) +DetailTitre=Menuetiket eller etiketkode til oversættelse +DetailUrl=URL, hvor menuen sender dig (Relativ URL-link eller eksternt link med https://) +DetailEnabled=Betingelse for at vise eller ingen adgang DetailRight=Betingelse for at vise uautoriserede grå menuer -DetailLangs=Lang filnavn for etiketten kode oversættelse -DetailUser=Praktikant / Eksterne / Alle +DetailLangs=Lang filnavn til etiketkodeoversættelse +DetailUser=Intern / Ekstern / Alle Target=Mål DetailTarget=Mål for links (_blank top åbner et nyt vindue) -DetailLevel=Niveau (-1: top menu, 0: header menuen> 0 menu og sub-menuen) -ModifMenu=Menu ændre -DeleteMenu=Slet menuen indrejse -ConfirmDeleteMenu=Er du sikker på, at du vil slette menuindgangen %s ? -FailedToInitializeMenu=Kunne ikke initialisere menuen +DetailLevel=Niveau (-1:topmenu, 0:hovedmenu, >0 menu og undermenu) +ModifMenu=Menuskift +DeleteMenu=Slet menupunkt +ConfirmDeleteMenu=Er du sikker på, at du vil slette menupunkt %s? +FailedToInitializeMenu=Menuen kunne ikke initialiseres ##### Tax ##### -TaxSetup=Opsætning af modul til skatter/afgifter. -OptionVatMode=Moms skyldig -OptionVATDefault=Standardbasis +TaxSetup=Opsætning af modul for afgifter, skatter og udbytte +OptionVatMode=skyldig moms +OptionVATDefault=Standard grundlag OptionVATDebitOption=Periodiseringsgrundlag -OptionVatDefaultDesc=Moms skyldes:
    - ved levering af varer (baseret på faktura dato)
    - på betalinger for tjenester -OptionVatDebitOptionDesc=Moms skyldes:
    - ved levering af varer (baseret på faktura dato)
    - på faktura (debet) for tjenester -OptionPaymentForProductAndServices=Kontantgrundlag for produkter og tjenesteydelser -OptionPaymentForProductAndServicesDesc=Moms skyldes:
    - ved betaling for varer
    - på betalinger for tjenesteydelser -SummaryOfVatExigibilityUsedByDefault=Tid for momsberettigelse som standard i henhold til den valgte mulighed: -OnDelivery=Om levering -OnPayment=Om betaling -OnInvoice=På fakturaen -SupposedToBePaymentDate=Betaling dato bruges, hvis leveringsdato ikke kendt -SupposedToBeInvoiceDate=Faktura, som anvendes dato +OptionVatDefaultDesc=Der skal betales moms:
    - ved levering af varer (baseret på fakturadato)
    - på betalinger for tjenesteydelser +OptionVatDebitOptionDesc=Der skal betales moms:
    - ved levering af varer (baseret på fakturadato)
    - på faktura (debet) for tjenesteydelser +OptionPaymentForProductAndServices=Kassegrundlag for produkter og ydelser +OptionPaymentForProductAndServicesDesc=Der skal betales moms:
    - på betaling for varer
    - på betalinger for tjenesteydelser +SummaryOfVatExigibilityUsedByDefault=Tidspunkt for momsberettigelse som standard i henhold til den valgte mulighed: +OnDelivery=Ved levering +OnPayment=Ved betaling +OnInvoice=Ved fakturering +SupposedToBePaymentDate=Betalingsdato brugt +SupposedToBeInvoiceDate=Fakturadato brugt Buy=Købe Sell=Sælge -InvoiceDateUsed=Faktura, som anvendes dato -YourCompanyDoesNotUseVAT=Dit firma er blevet defineret til ikke at bruge moms (Hjem - Opsætning - Firma / Organisation), så der er ingen momsindstillinger til opsætning. +InvoiceDateUsed=Fakturadato brugt +YourCompanyDoesNotUseVAT=Din virksomhed er blevet defineret til ikke at bruge moms (Hjem - Opsætning - Virksomhed/Organisation), så der er ingen momsmuligheder at sætte op. AccountancyCode=Regnskabskode AccountancyCodeSell=Salgskonto. kode -AccountancyCodeBuy=Indkøbskonto. kode +AccountancyCodeBuy=Købskonto. kode CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Hold afkrydsningsfeltet "Opret automatisk betalingen" tomt som standard, når du opretter en ny skat ##### Agenda ##### -AgendaSetup=Opsætning af modul for begivenheder og tidsplan -PasswordTogetVCalExport=Nøglen til at tillade eksport link +AgendaSetup=Opsætning af modul for tidsplan og begivenheder +PasswordTogetVCalExport=Nøgle til at godkende eksportlink SecurityKey = Sikkerhedsnøgle -PastDelayVCalExport=Må ikke eksportere begivenhed ældre end -AGENDA_USE_EVENT_TYPE=Brug begivenhedstyper (styret i menuopsætning -> Ordbøger -> Type agendahændelser) -AGENDA_USE_EVENT_TYPE_DEFAULT=Indstil denne standardværdi automatisk for type begivenhed i begivenhedsoprettelsesformular -AGENDA_DEFAULT_FILTER_TYPE=Indstil denne type begivenhed automatisk i søgefilter i dagsordblik -AGENDA_DEFAULT_FILTER_STATUS=Indstil denne status automatisk for begivenheder i søgefilter i dagsordblik -AGENDA_DEFAULT_VIEW=Hvilken visning vil du åbne som standard, når du vælger menu Agenda -AGENDA_REMINDER_BROWSER=Aktivér påmindelse om begivenhed i brugerens browser (Når påmindelsesdato er nået, vises en popup af browseren. Hver bruger kan deaktivere sådanne underretninger fra sin browseropsætning). -AGENDA_REMINDER_BROWSER_SOUND=Aktivér lydmeddelelse -AGENDA_REMINDER_EMAIL=Aktiver påmindelse om begivenhed via e-mails (påmindelsesmulighed / forsinkelse kan defineres for hver begivenhed). -AGENDA_REMINDER_EMAIL_NOTE=Bemærk: Hyppigheden af det planlagte job %s skal være tilstrækkelig til at være sikker på, at påmindelsen sendes på det rigtige tidspunkt. -AGENDA_SHOW_LINKED_OBJECT=Vis linkede objekter i tidsplanvisning +PastDelayVCalExport=Eksporter ikke begivenhed ældre end +AGENDA_USE_EVENT_TYPE=Brug begivenhedstyper (administreret i menuen Opsætning -> Ordbøger -> Tidsplan begivenheds typer) +AGENDA_USE_EVENT_TYPE_DEFAULT=Indstil automatisk denne standardværdi for begivenhedstype i begivenhedsoprettelsesformularen +AGENDA_DEFAULT_FILTER_TYPE=Indstil automatisk denne type begivenhed i søgefilteret i dagsordensvisningen +AGENDA_DEFAULT_FILTER_STATUS=Indstil automatisk denne status for begivenheder i søgefilteret i dagsordensvisningen +AGENDA_DEFAULT_VIEW=Hvilken visning vil du som standard åbne, når du vælger menu Tidsplan +AGENDA_REMINDER_BROWSER=Aktiver hændelsespåmindelse på brugerens browser (Når påmindelsesdatoen er nået, vises en pop op af browseren. Hver bruger kan deaktivere sådanne meddelelser fra sin browsermeddelelsesopsætning). +AGENDA_REMINDER_BROWSER_SOUND=Aktiver lydmeddelelse +AGENDA_REMINDER_EMAIL=Aktiver begivenhedspåmindelse via e-mails (påmindelsesmulighed/forsinkelse kan defineres for hver begivenhed). +AGENDA_REMINDER_EMAIL_NOTE=Bemærk: Hyppigheden af det planlagte job %s skal være nok til at være sikker på, at påmindelsen sendes på det rigtige tidspunkt. +AGENDA_SHOW_LINKED_OBJECT=Vis linket objekt i tidsplanvisning ##### Clicktodial ##### -ClickToDialSetup=Opsætning af Klik-for-at-ringe-modulet +ClickToDialSetup=Opsætning af Click To Dial modulet ClickToDialUrlDesc=Url kaldes, når man klikke på telefon billed. I URL kan du bruge tags
    __ PHONETO __ , der vil blive erstattet med telefonnummeret til den person, der skal ringe
    __ PHONEFROM __ , der vil blive erstattet med telefonnummeret til opkaldet person (din)
    __ LOGIN __ , der vil blive erstattet med clicktodial login (defineret på brugerkort)
    __ PASS __ , der vil blive erstattet med clicktodial adgangskode (defineret på bruger kort). ClickToDialDesc=Dette modul ændrer telefonnumre, når du bruger en stationær computer, til klikbare links. Et klik ringer op til nummeret. Dette kan bruges til at starte telefonopkaldet, når du bruger en blød telefon på skrivebordet eller når du f.eks. Bruger et CTI-system baseret på SIP-protokol. Bemærk: Når du bruger en smartphone, er telefonnumre altid klikbare. ClickToDialUseTelLink=Brug kun et link "tel:" på telefonnumre ClickToDialUseTelLinkDesc=Brug denne metode, hvis dine brugere har en softphone eller en softwaregrænseflade, installeret på den samme computer som browseren og kaldes, når du klikker på et link, der starter med "tel:" i din browser. Hvis du har brug for et link, der starter med "slurk:" eller en fuld serverløsning (ikke behov for lokal softwareinstallation), skal du indstille dette til "Nej" og udfylde det næste felt. ##### Point Of Sale (CashDesk) ##### CashDesk=Point of Sale -CashDeskSetup=Opsætning af Point of Sales-modul +CashDeskSetup=Opsætning af Point of Sales modulet CashDeskThirdPartyForSell=Standard generisk tredjepart til brug for salg -CashDeskBankAccountForSell=Cash konto til brug for sælger -CashDeskBankAccountForCheque=Standardkonto, der skal bruges til at modtage betalinger pr. Check -CashDeskBankAccountForCB=Konto til at bruge til at modtage kontant betaling ved kreditkort -CashDeskBankAccountForSumup=Standard bankkonto, der skal bruges til at modtage betalinger via SumUp -CashDeskDoNotDecreaseStock=Deaktiver lagerbeholdningen, når et salg er udført fra Point of Sale (hvis "nej", lagernedgang er udført for hvert salg udført fra POS, uanset optionen i modul lager). -CashDeskIdWareHouse=Force og begrænse lageret til brug for lagernedgang -StockDecreaseForPointOfSaleDisabled=Lagernedgang fra salgssted deaktiveret -StockDecreaseForPointOfSaleDisabledbyBatch=Lagernedgang i POS er ikke kompatibel med modul Serial / Lot management (aktuelt aktiv), så lagernedgang er deaktiveret. -CashDeskYouDidNotDisableStockDecease=Du har ikke deaktiveret lagernedgang, når du sælger fra Point of Sale. Derfor er et lager påkrævet. -CashDeskForceDecreaseStockLabel=Lager nedjusteret for batch produkter var tvunget. -CashDeskForceDecreaseStockDesc=Reducer først med de ældste best før og sidste salgs-datoer. -CashDeskReaderKeyCodeForEnter=tastekode for "Enter" defineret i stregkodelæser (Eksempel: 13) +CashDeskBankAccountForSell=Standardkonto, der skal bruges til at modtage kontante betalinger +CashDeskBankAccountForCheque=Standardkonto, der skal bruges til at modtage betalinger med check +CashDeskBankAccountForCB=Standardkonto, der skal bruges til at modtage betalinger med kreditkort +CashDeskBankAccountForSumup=Standard bankkonto, der skal bruges til at modtage betalinger med SumUp +CashDeskDoNotDecreaseStock=Deaktiver lagerreduktion, når et salg udføres fra Point of Sale (hvis "nej", foretages lagerreduktion for hvert salg foretaget fra POS, uanset den indstilling, der er indstillet i modulet Lager). +CashDeskIdWareHouse=Tving og begræns lageret til brug for lagerreduktion +StockDecreaseForPointOfSaleDisabled=Lagereduktion fra Point of Sale deaktiveret +StockDecreaseForPointOfSaleDisabledbyBatch=Lagerreduktion i POS er ikke kompatibel med modul Seriel/Lot-styring (aktuelt aktiv), så lagerreduktion er deaktiveret. +CashDeskYouDidNotDisableStockDecease=Du deaktiverede ikke lagerreduktion, da du foretog et salg fra Point of Sale. Derfor er et lager påkrævet. +CashDeskForceDecreaseStockLabel=Lagerreduktion for batchprodukter blev tvunget til. +CashDeskForceDecreaseStockDesc=Reducer først med de ældste Bedst før/Sidste anvendelses datoer. +CashDeskReaderKeyCodeForEnter=Nøgle ASCII-kode for "Enter" defineret i stregkodelæser (eksempel: 13) ##### Bookmark ##### -BookmarkSetup=Bogmærke modul opsætning -BookmarkDesc=Dette modul giver dig mulighed for at styre bogmærker. Du kan også tilføje genveje til Dolibarr-sider eller eksterne websteder på din venstre menu. -NbOfBoomarkToShow=Maksimalt antal bogmærker til at vise i venstre menu +BookmarkSetup=Opsætning af bogmærkemodul +BookmarkDesc=Dette modul giver dig mulighed for at administrere bogmærker. Du kan også tilføje genveje til alle Dolibarr sider eller eksterne websteder i din venstre menu. +NbOfBoomarkToShow=Maksimalt antal bogmærker, der kan vises i venstre menu ##### WebServices ##### -WebServicesSetup=Webservices modul opsætning -WebServicesDesc=Ved at aktivere dette modul Dolibarr blive en web service-server til at give diverse web-tjenester. -WSDLCanBeDownloadedHere=WSDL deskriptor sagsakter forudsat serviceses kan downloade det her -EndPointIs=SOAP-klienter skal sende deres anmodninger til Dolibarr-slutpunktet tilgængeligt på URL +WebServicesSetup=Opsætning af webservicemodul +WebServicesDesc=Ved at aktivere dette modul bliver Dolibarr en webserver til at levere diverse webtjenester. +WSDLCanBeDownloadedHere=WSDL beskrivelsesfil for leverede tjenester kan downloades her +EndPointIs=SOAP klienter skal sende deres anmodninger til Dolibarr endpoint, der er tilgængeligt på URL ##### API #### -ApiSetup=Indstilling af API-modul +ApiSetup=Opsætning af API modul ApiDesc=Ved at aktivere dette modul bliver Dolibarr en REST-server til at levere diverse webtjenester. -ApiProductionMode=Aktivér produktionsfunktion (dette aktiverer brug af en cache for servicehåndtering) +ApiProductionMode=Aktiver produktionstilstand (dette vil aktivere brugen af en cache til administration af tjenester) ApiExporerIs=Du kan udforske og teste API'erne på URL -OnlyActiveElementsAreExposed=Kun elementer fra aktiverede moduler er udsat +OnlyActiveElementsAreExposed=Kun elementer fra aktiverede moduler eksponeres ApiKey=Nøgle til API -WarningAPIExplorerDisabled=API-udforskeren er blevet deaktiveret. API-explorer er ikke forpligtet til at levere API-tjenester. Det er et værktøj for udvikleren at finde / test REST API'er. Hvis du har brug for dette værktøj, skal du gå i setup af modul API REST for at aktivere det. +WarningAPIExplorerDisabled=API Explorer er blevet deaktiveret. API Explorer er ikke påkrævet for at levere API-tjenester. Det er et værktøj for udviklere til at finde/teste REST API'er. Hvis du har brug for dette værktøj, skal du gå ind i opsætningen af modulet API REST for at aktivere det. ##### Bank ##### BankSetupModule=Opsætning af bankmodul FreeLegalTextOnChequeReceipts=Fritekst på check kvitteringer -BankOrderShow=Vis rækkefølgen af ​​bankkonti for lande, der anvender "detaljeret bank nummer" -BankOrderGlobal=General -BankOrderGlobalDesc=General display for +BankOrderShow=Vis rækkefølgen af bankkonti for lande ved hjælp af "detaljeret banknummer" +BankOrderGlobal=Generel +BankOrderGlobalDesc=Generel visningsrækkefølge BankOrderES=Spansk -BankOrderESDesc=Spansk display for -ChequeReceiptsNumberingModule=Kontrol kvittering nummererings format +BankOrderESDesc=Spansk visningsrækkefølge +ChequeReceiptsNumberingModule=Kvitterings nummereringsmodul ##### Multicompany ##### -MultiCompanySetup=Opsætning af multi-selskabsmodul +MultiCompanySetup=Opsætning af Multi-virksomhed modul ##### Suppliers ##### -SuppliersSetup=Opsætning af sælgermodul -SuppliersCommandModel=Komplet skabelon for indkøbsordre -SuppliersCommandModelMuscadet=Komplet skabelon med indkøbsordre (gammel implementering af cornas skabelon) -SuppliersInvoiceModel=Komplet skabelon til leverandørfaktura -SuppliersInvoiceNumberingModel=Leverandør fakturaer nummerering modeller -IfSetToYesDontForgetPermission=Hvis det er indstillet til en ikke-nullværdi, skal du ikke glemme at give tilladelser til grupper eller brugere, der har tilladelse til den anden godkendelse +SuppliersSetup=Opsætning af leverandørmodul +SuppliersCommandModel=Komplet skabelon for købsordre +SuppliersCommandModelMuscadet=Komplet skabelon af købsordre (gammel implementering af cornas skabelon) +SuppliersInvoiceModel=Komplet skabelon for leverandørfaktura +SuppliersInvoiceNumberingModel=Leverandørfakturaer nummereringsmodeller +IfSetToYesDontForgetPermission=Glem ikke at give rettigheder til grupper eller brugere, der er autoriseret for den anden godkendelse, hvis sat til en ikke-nul værdi ##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=Opsætning af GeoIP Maxmind-modul -PathToGeoIPMaxmindCountryDataFile=Sti til fil, der indeholder Maxmind ip til land oversættelse.
    Eksempler:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb -NoteOnPathLocation=Bemærk, at din ip til land datafil skal være inde en mappe din PHP kan læse (Check din PHP open_basedir setup og filsystem tilladelser). -YouCanDownloadFreeDatFileTo=Du kan downloade en gratis demo version af Maxmind GeoIP land fil på %s. -YouCanDownloadAdvancedDatFileTo=Du kan også downloade en mere komplet version, med opdateringer på den Maxmind GeoIP land fil på %s. +GeoIPMaxmindSetup=Opsætning af GeoIP Maxmind modul +PathToGeoIPMaxmindCountryDataFile=Sti til fil, der indeholder Maxmind ip til land oversættelse +NoteOnPathLocation=Bemærk, at din ip til lande-datafil skal være i en mappe, som din PHP kan læse (kontroller din PHP open_basedir opsætning og filsystemrettigheder). +YouCanDownloadFreeDatFileTo=Du kan downloade en gratis demoversion af Maxmind GeoIP landefilen på %s. +YouCanDownloadAdvancedDatFileTo=Du kan også downloade en mere komplet version med opdateringer, af Maxmind GeoIP landefilen på %s. TestGeoIPResult=Test af en konvertering IP -> land ##### Projects ##### -ProjectsNumberingModules=Projekt nummererings format +ProjectsNumberingModules=Projekt nummereringsmodul ProjectsSetup=Opsætning af projektmodul -ProjectsModelModule=Projekt rapport dokument model -TasksNumberingModules=Opgave nummererings format -TaskModelModule=Opgaver rapporterer dokumentmodel -UseSearchToSelectProject=Vent, indtil der trykkes på en tast, inden du læser indholdet på projektkombinationslisten.
    Dette kan forbedre ydeevnen, hvis du har et stort antal projekter, men det er mindre praktisk. +ProjectsModelModule=Projektrapporter dokumentmodel +TasksNumberingModules=Opgavenummereringsmodul +TaskModelModule=Opgaverapporter dokumentmodel +UseSearchToSelectProject=Vent, indtil der trykkes på en tast, før du indlæser indholdet af projektkombinationslisten.
    Dette kan forbedre ydeevnen, hvis du har et stort antal projekter, men det er mindre praktisk. ##### ECM (GED) ##### ##### Fiscal Year ##### AccountingPeriods=Regnskabsperioder AccountingPeriodCard=Regnskabsperiode NewFiscalYear=Ny regnskabsperiode -OpenFiscalYear=Åbent regnskabsperiode -CloseFiscalYear=Luk regnskabsperiode -DeleteFiscalYear=Slet regnskabsperiode +OpenFiscalYear=Åbning af regnskabsperiode +CloseFiscalYear=Lukning af regnskabsperiode +DeleteFiscalYear=Sletning af regnskabsperiode ConfirmDeleteFiscalYear=Er du sikker på at slette denne regnskabsperiode? ShowFiscalYear=Vis regnskabsperiode AlwaysEditable=Kan altid redigeres -MAIN_APPLICATION_TITLE=Force synligt navn på ansøgning (advarsel: Indstilling af dit eget navn her kan bryde autofil login-funktionen, når du bruger DoliDroid mobilapplikation) -NbMajMin=Mindste antal store bogstaver -NbNumMin=Mindste antal numeriske tegn -NbSpeMin=Mindste antal specialtegn -NbIteConsecutive=Maksimum antal gentagne samme tegn -NoAmbiCaracAutoGeneration=Brug ikke tvetydige tegn ("1", "l", "i", "|", "0", "O") til automatisk generering -SalariesSetup=Opsætning af lønnings modul +MAIN_APPLICATION_TITLE=Tving synligt navn på applikationen (advarsel: Hvis du indstiller dit eget navn her, kan det ødelægge autofill-loginfunktionen, når du bruger DoliDroid mobilapplikationen) +NbMajMin=Minimum antal store bogstaver +NbNumMin=Minimum antal numeriske tegn +NbSpeMin=Minimum antal specialtegn +NbIteConsecutive=Maksimalt antal gentagende af samme tegn +NoAmbiCaracAutoGeneration=Brug ikke tvetydige tegn ("1","l","i","|","0","O") til automatisk generering +SalariesSetup=Opsætning af lønmodul SortOrder=Sorteringsrækkefølge Format=Format -TypePaymentDesc=0: Kunde betalingstype, 1: Leverandør betalingstype, 2: Både kunder og leverandører betalingstype +TypePaymentDesc=0:Kundebetalingstype, 1:Leverandørbetalingstype, 2:Både kunde- og leverandørerbetalingstype IncludePath=Inkluder sti (defineret i variabel %s) -ExpenseReportsSetup=Opsætning af modul Expense Reports -TemplatePDFExpenseReports=Dokumentskabeloner til at generere regningsrapportdokument -ExpenseReportsRulesSetup=Opsætning af modul Expense Reports - Regler -ExpenseReportNumberingModules=Udgiftsrapport nummererings format -NoModueToManageStockIncrease=Intet modul, der er i stand til at styre automatisk lagerforhøjelse, er blevet aktiveret. Lagerforøgelse vil kun ske ved manuel indlæsning. -YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan finde muligheder for e-mail-meddelelser ved at aktivere og konfigurere modulet "Meddelelse". +ExpenseReportsSetup=Opsætning af Udgiftsrapportmodul +TemplatePDFExpenseReports=Dokumentskabeloner til at generere udgiftsrapportdokument +ExpenseReportsRulesSetup=Opsætning af Udgiftsrapportmodul - Regler +ExpenseReportNumberingModules=Udgiftsrapport nummereringsmodul +NoModueToManageStockIncrease=Intet modul, der kan håndtere automatisk lagerforøgelse, er blevet aktiveret. Lagerforøgelse vil kun ske ved manuel input. +YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan finde muligheder for e-mail-notifikationer ved at aktivere og konfigurere modulet "Meddelelser om forretningsbegivenheder". TemplatesForNotifications=Skabeloner til meddelelser -ListOfNotificationsPerUser=Liste over automatiske underretninger pr. Bruger * -ListOfNotificationsPerUserOrContact=Liste over mulige automatiske underretninger (ved forretningsbegivenhed) tilgængelig per bruger * eller pr. Kontakt ** +ListOfNotificationsPerUser=Liste over automatiske meddelelser pr. bruger* +ListOfNotificationsPerUserOrContact=Liste over mulige automatiske meddelelser (ved forretningsbegivenhed) tilgængelig pr. bruger* eller pr. kontakt** ListOfFixedNotifications=Liste over automatiske faste meddelelser -GoOntoUserCardToAddMore=Gå til fanen "Notifikationer" for en bruger for at tilføje eller fjerne underretninger for brugere -GoOntoContactCardToAddMore=Gå til fanen "Underretninger" fra en tredjepart for at tilføje eller fjerne underretninger for kontakter / adresser +GoOntoUserCardToAddMore=Gå til fanen "Underretninger" for en bruger for at tilføje eller fjerne notifikationer for brugere +GoOntoContactCardToAddMore=Gå til fanen "Underretninger" fra en tredjepart for at tilføje eller fjerne notifikationer for kontakter/adresser Threshold=Grænseværdi -BackupDumpWizard=Guiden til at oprette databasedump(Backup)-filen -BackupZipWizard=Guiden til at oprette arkivet med arkiv for dokumenter -SomethingMakeInstallFromWebNotPossible=Installation af eksternt modul er ikke muligt fra webgrænsefladen af ​​følgende årsag: -SomethingMakeInstallFromWebNotPossible2=Af denne grund er proces til opgradering beskrevet her en manuel proces, som kun en privilegeret bruger kan udføre. -InstallModuleFromWebHasBeenDisabledByFile=Installation af eksternt modul fra applikation er blevet deaktiveret af din administrator. Du skal bede ham om at fjerne filen %s for at tillade denne funktion. -ConfFileMustContainCustom=Installation eller opbygning af et eksternt modul fra applikationen skal gemme modulfilerne i mappen %s . Hvis du vil have denne mappe behandlet af Dolibarr, skal du konfigurere din conf / conf.php for at tilføje de to direktelinjer:
    $ dolibarr_main_url_root_alt = '/ custom';
    $ dolibarr_main_document_root_alt = '%s /custom'; -HighlightLinesOnMouseHover=Fremhæv tabel linjer, når musen flytter passerer over -HighlightLinesColor=Fremhæv farve på linjen, når musen passerer (brug 'ffffff' til intet højdepunkt) -HighlightLinesChecked=Fremhæv farve på linjen, når den er markeret (brug 'ffffff' til ikke at fremhæve) +BackupDumpWizard=Guiden til at oprette database-backupfilen +BackupZipWizard=Guiden til at opbygge arkivet af dokumenter +SomethingMakeInstallFromWebNotPossible=Installation af eksternt modul er ikke mulig fra webgrænsefladen af følgende årsag: +SomethingMakeInstallFromWebNotPossible2=Af denne grund er processen til opgradering beskrevet her en manuel proces, som kun en privilegeret bruger kan udføre. +InstallModuleFromWebHasBeenDisabledContactUs=Installation eller udvikling af eksterne moduler eller dynamiske websteder fra applikationen er i øjeblikket låst af sikkerhedsmæssige årsager. Kontakt os venligst, hvis du har brug for at aktivere denne funktion. +InstallModuleFromWebHasBeenDisabledByFile=Installation af eksternt modul fra applikationen er blevet deaktiveret af din administrator. Du skal bede ham om at fjerne filen %s for at tillade denne funktion. +ConfFileMustContainCustom=Installation eller opbygning af et eksternt modul fra applikationen skal gemme modulfilerne i mappen %s. For at få denne mappe behandlet af Dolibarr, skal du konfigurere din conf/conf.php for at tilføje de 2 direktivlinjer:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Fremhæv tabellinjer, når musen bevæges over +HighlightLinesColor=Fremhæv farven på linjen, når musen bevæges over (brug 'ffffff' for ingen fremhævelse) +HighlightLinesChecked=Fremhæv farven på linjen, når den er markeret (brug 'ffffff' for ingen fremhævelse) UseBorderOnTable=Vis venstre-højre grænser på tabeller BtnActionColor=Farve på handlingsknappen TextBtnActionColor=Tekstfarve på handlingsknappen TextTitleColor=Tekstfarve på sidetitel -LinkColor=Farve af links -PressF5AfterChangingThis=Tryk på CTRL + F5 på tastaturet eller ryd din browserens cache efter at have ændret denne værdi for at få den effektiv -NotSupportedByAllThemes=Vil arbejde med kerne temaer, kan ikke understøttes af eksterne temaer +LinkColor=Farve på links +PressF5AfterChangingThis=Tryk på CTRL+F5 på tastaturet eller ryd din browsers cache efter at have ændret denne værdi for at få den til at virke +NotSupportedByAllThemes=Virker med kernetemaer, understøttes muligvis ikke af eksterne temaer BackgroundColor=Baggrundsfarve -TopMenuBackgroundColor=Baggrundsfarve til topmenuen -TopMenuDisableImages=Skjul billeder i topmenuen +TopMenuBackgroundColor=Baggrundsfarve til topmenu +TopMenuDisableImages=Ikon eller tekst i topmenuen LeftMenuBackgroundColor=Baggrundsfarve til venstre menu -BackgroundTableTitleColor=Baggrundsfarve til tabel titel linje -BackgroundTableTitleTextColor=Tekstfarve til tabel titellinje -BackgroundTableTitleTextlinkColor=Tekstfarve til linklinjens tabel titel -BackgroundTableLineOddColor=Baggrundsfarve til ulige bord linjer -BackgroundTableLineEvenColor=Baggrundsfarve til lige bordlinier -MinimumNoticePeriod=Mindste opsigelsesperiode (din anmodning om orlov skal ske inden denne forsinkelse) -NbAddedAutomatically=Antal dage, der tilføjes til tællere af brugere (automatisk) hver måned -EnterAnyCode=Dette felt indeholder en reference til identifikation af linjen. Indtast en hvilken som helst værdi efter eget valg, men uden specialtegn. -Enter0or1=Tryk 0 eller 1 -UnicodeCurrency=Indtast her mellem seler, liste over byte nummer, der repræsenterer valutasymbolet. For eksempel: for $, indtast [36] - for Brasilien real R $ [82,36] - for €, indtast [8364] -ColorFormat=RGB-farven er i HEX-format, fx: FF0000 -PictoHelp=Ikonnavn i format:
    - image.png for en billedfil i den aktuelle temamappe
    - image.png@module, hvis filen er i mappen /img/ af et modul
    - fa-xxx for en FontAwesomepicto fa-x
    - fonwtawesome_xxx_fa_color_size for et FontAwesome fa-xxx-billede (med præfiks, farve og størrelse indstillet) -PositionIntoComboList=Linjens placering i kombinationslister -SellTaxRate=salgs moms ssats -RecuperableOnly=Ja for moms "Ikke opfattet, men genoprettelig" dedikeret til nogle stater i Frankrig. Hold værdi til "Nej" i alle andre tilfælde. -UrlTrackingDesc=Hvis udbyderen eller transporttjenesten tilbyder en side eller et websted for at kontrollere status for dine forsendelser, kan du indtaste det her. Du kan bruge tasten {TRACKID} i URL-parametrene, så systemet vil erstatte det med det sporingsnummer, som brugeren indtastede på forsendelseskortet. -OpportunityPercent=Når du opretter en mulighed, vil du definere en anslået mængde projekt/mulighed. Ifølge mulighedens status kan dette beløb multipliceres med denne sats for at vurdere et samlet beløb, som alle dine muligheder kan generere. Værdien er en procentdel (mellem 0 og 100). -TemplateForElement=Denne mailskabelon er relateret til hvilken type objekt? En e -mail -skabelon er kun tilgængelig, når du bruger knappen "Send e -mail" fra det relaterede objekt. -TypeOfTemplate=Type skabelon -TemplateIsVisibleByOwnerOnly=Skabelon er kun synlig for ejeren +BackgroundTableTitleColor=Baggrundsfarve for tabeltitellinje +BackgroundTableTitleTextColor=Tekstfarve til tabeltitellinje +BackgroundTableTitleTextlinkColor=Tekstfarve for linklinje i tabeltitel +BackgroundTableLineOddColor=Baggrundsfarve til ulige tabellinjer +BackgroundTableLineEvenColor=Baggrundsfarve til lige tabellinjer +MinimumNoticePeriod=Minimum varselsfrist (din anmodning om orlov skal ske inden denne forsinkelse) +NbAddedAutomatically=Antal dage tilføjet til brugertællere (automatisk) hver måned +EnterAnyCode=Dette felt indeholder en reference til at identificere linjen. Indtast en værdi efter eget valg, men uden specialtegn. +Enter0or1=Indtast 0 eller 1 +UnicodeCurrency=Indtast her mellem firkantede parenteser, liste over byte nummer, der repræsenterer valutasymbolet. For eksempel: for $, indtast [36] - for Brasiliansk real R$ [82,36] - for €, indtast [8364] +ColorFormat=RGB-farven er i HEX-format, f.eks.: FF0000 +PictoHelp=Ikonnavn i format:
    - image.png for en billedfil i den aktuelle temamappe
    - image.png@module, hvis filen er i mappen /img/ fra modul
    - fa-xxx for en FontAwesome fa-xxx picto
    - fontawesome_xxx_fa_color_size for et FontAwesome fa-xxx-billede (med præfiks, farve og størrelse indstillet) +PositionIntoComboList=Placering af linje i kombinationslister +SellTaxRate=momssats +RecuperableOnly=Ja for moms "Ikke opfattet, men kan tilbagebetales" dedikeret til en tilstand i Frankrig. Hold værdien til "Nej" i alle andre tilfælde. +UrlTrackingDesc=Hvis udbyderen eller transporttjenesten tilbyder en side eller et websted for at kontrollere status for dine forsendelser, kan du indtaste det her. Du kan bruge nøglen {TRACKID} i URL-parametrene, så systemet erstatter den med det sporingsnummer, som brugeren indtastede på forsendelseskortet. +OpportunityPercent=Når du opretter et kundeemne, vil du definere en estimeret mængde projekt/lead. I henhold til status for kundeemnet kan dette beløb ganges med denne sats for at evaluere et samlet beløb, som alle dine kundeemner kan generere. Værdien er en procentdel (mellem 0 og 100). +TemplateForElement=Denne mailskabelon er relateret til hvilken type objekt? En e-mail-skabelon er kun tilgængelig, når du bruger knappen "Send e-mail" fra det relaterede objekt. +TypeOfTemplate=Skabelontype +TemplateIsVisibleByOwnerOnly=Skabelonen er kun synlig for ejeren VisibleEverywhere=Synlig overalt -VisibleNowhere=Synlig ingen steder -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Eksempel: +2 (kun udfyld hvis der opstår problem) -ExpectedChecksum=Forventet checksum -CurrentChecksum=Nuværende checksum +VisibleNowhere=Synlig intetsteds +FixTZ=TimeZone korrektion +FillFixTZOnlyIfRequired=Eksempel: +2 (udfyld kun, hvis der er problemer) +ExpectedChecksum=Forventet kontrolsum +CurrentChecksum=Nuværende kontrolsum ExpectedSize=Forventet størrelse CurrentSize=Nuværende størrelse -ForcedConstants=Påkrævede konstante værdier -MailToSendProposal=Kundeforslag +ForcedConstants=Nødvendige konstante værdier +MailToSendProposal=Kundetilbud MailToSendOrder=Salgsordrer MailToSendInvoice=Kundefakturaer MailToSendShipment=Forsendelser -MailToSendIntervention=Interventioner -MailToSendSupplierRequestForQuotation=Anmodning om citat +MailToSendIntervention=interventioner +MailToSendSupplierRequestForQuotation=Anmodning om tilbud MailToSendSupplierOrder=Indkøbsordre MailToSendSupplierInvoice=Leverandørfakturaer MailToSendContract=Kontrakter MailToSendReception=Modtagelse -MailToThirdparty=Tredjepart +MailToExpenseReport=Udgiftsrapporter +MailToThirdparty=Tredje partier MailToMember=Medlemmer MailToUser=Brugere MailToProject=Projekter MailToTicket=Opgaver -ByDefaultInList=Vis som standard i listevisning +ByDefaultInList=Vis som standard på listevisning YouUseLastStableVersion=Du bruger den seneste stabile version -TitleExampleForMajorRelease=Eksempel på besked, du kan bruge til at annoncere denne store udgivelse (brug det gratis at bruge det på dine websteder) -TitleExampleForMaintenanceRelease=Eksempel på besked, du kan bruge til at annoncere denne vedligeholdelsesudgivelse (lad det være gratis at bruge det på dine websteder) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en stor udgivelse med mange nye funktioner til både brugere og udviklere. Du kan downloade det fra downloadområdet på https://www.dolibarr.org portal (underkatalog Stable versioner). Du kan læse ChangeLog for en komplet liste over ændringer. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en vedligeholdelsesversion, der indeholder kun fejlrettelser. Vi anbefaler alle brugere at opgradere til denne version. En vedligeholdelsesfrigivelse introducerer ikke nye funktioner eller ændringer i databasen. Du kan hente den fra downloadområdet på https://www.dolibarr.org portal (underkatalog Stable versioner). Du kan læse ChangeLog for en komplet liste over ændringer. -MultiPriceRuleDesc=Når valgmuligheden "Flere prisniveauer pr. Produkt / service" er aktiveret, kan du definere forskellige priser (et pr. Prisniveau) for hvert produkt. For at spare tid, kan du her angive en regel for at autokalulere en pris for hvert niveau baseret på prisen på første niveau, så du skal kun angive en pris for første niveau for hvert produkt. Denne side er designet til at spare dig tid, men er kun nyttig, hvis dine priser for hvert niveau er i forhold til første niveau. Du kan ignorere denne side i de fleste tilfælde. -ModelModulesProduct=Skabeloner til produktdokumenter -WarehouseModelModules=Skabeloner til dokumenter på lager -ToGenerateCodeDefineAutomaticRuleFirst=For at kunne generere koder automatisk skal du først definere en manager for at definere stregkodenummeret automatisk. -SeeSubstitutionVars=Se * note for liste over mulige substitutionsvariabler -SeeChangeLog=Se ChangeLog-fil (kun engelsk) +TitleExampleForMajorRelease=Eksempel på besked, du kan bruge til at annoncere denne større udgivelse (du er velkommen til at bruge den på dine websteder) +TitleExampleForMaintenanceRelease=Eksempel på besked, du kan bruge til at annoncere denne vedligeholdelsesudgivelse (du er velkommen til at bruge den på dine websteder) +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en stor udgivelse med en masse nye funktioner til både brugere og udviklere. Du kan downloade det fra downloadområdet på https://www.dolibarr.org-portalen (underkatalog Stabile versioner). Du kan læse ChangeLog for en komplet liste over ændringer. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en vedligeholdelsesversion, så indeholder kun fejlrettelser. Vi anbefaler alle brugere at opgradere til denne version. En vedligeholdelsesudgivelse introducerer ikke nye funktioner eller ændringer i databasen. Du kan downloade det fra downloadområdet på https://www.dolibarr.org-portalen (underkatalog Stabile versioner). Du kan læse ChangeLog for en komplet liste over ændringer. +MultiPriceRuleDesc=Når indstillingen "Flere niveauer af priser pr. vare/ydelse" er aktiveret, kan du definere forskellige priser (én pr. prisniveau) for hvert vare. For at spare tid, kan du her indtaste en regel for automatisk at beregne en pris for hvert niveau baseret på prisen på det første niveau, så du skal kun indtaste en pris for det første niveau for hvert produkt. Denne side er designet til at spare dig tid, men er kun nyttig, hvis dine priser for hvert niveau er i forhold til første niveau. Du kan ignorere denne side i de fleste tilfælde. +ModelModulesProduct=Skabeloner til varedokumenter +WarehouseModelModules=Skabeloner til lagerdokumenter +ToGenerateCodeDefineAutomaticRuleFirst=For at kunne generere koder automatisk, skal du først definere en program til automatisk at definere stregkodenummeret. +SeeSubstitutionVars=Se * note for en liste over mulige substitutionsvariabler +SeeChangeLog=Se ChangeLog-fil (kun på engelsk) AllPublishers=Alle udgivere -UnknownPublishers=Ukendte forlag +UnknownPublishers=Ukendte udgivere AddRemoveTabs=Tilføj eller fjern faner AddDataTables=Tilføj objekttabeller -AddDictionaries=Tilføj ordbøger -AddData=Tilføj objekter eller ordbøger data +AddDictionaries=Tilføj ordbogstabeller +AddData=Tilføj objekter eller ordbogsdata AddBoxes=Tilføj widgets AddSheduledJobs=Tilføj planlagte job -AddHooks=Tilføj kroge -AddTriggers=Tilføj udløsere +AddHooks=Tilføj Hooks +AddTriggers=Tilføj triggere AddMenus=Tilføj menuer -AddPermissions=Tilføj tilladelser +AddPermissions=Tilføj rettigheder AddExportProfiles=Tilføj eksportprofiler AddImportProfiles=Tilføj importprofiler AddOtherPagesOrServices=Tilføj andre sider eller tjenester -AddModels=Tilføj dokument eller nummereringsskabeloner +AddModels=Tilføj dokument- eller nummereringsskabeloner AddSubstitutions=Tilføj nøglesubstitutioner -DetectionNotPossible=Detektion er ikke muligt -UrlToGetKeyToUseAPIs=Url for at få token til at bruge API (når token er blevet modtaget, gemmes den i databasens brugertabel og skal anvendes ved hvert API-opkald) +DetectionNotPossible=Detektion ikke mulig +UrlToGetKeyToUseAPIs=Url for at få token til at bruge API (når token er modtaget, gemmes det i databasebrugertabellen og skal angives ved hvert API-kald) ListOfAvailableAPIs=Liste over tilgængelige API'er -activateModuleDependNotSatisfied=Modul "%s" afhænger af modulet "%s", der mangler, så modulet "%1$s" fungerer muligvis ikke korrekt. Venligst installer modul "%2$s" eller deaktiver modul "%1$s" hvis du vil være sikker fra enhver overraskelse -CommandIsNotInsideAllowedCommands=Kommandoen du forsøger at køre er ikke på listen over tilladte kommandoer defineret i parameter $ dolibarr_main_restrict_os_commands i filen conf.php . +activateModuleDependNotSatisfied=Modul "%s" afhænger af modul "%s", som mangler, så modulet "%1$s" fungerer muligvis ikke korrekt. Installer venligst modulet "%2$s" eller deaktiver modulet "%1$s", hvis du vil være sikker på overraskelser +CommandIsNotInsideAllowedCommands=Kommandoen du forsøger at køre er ikke på listen over tilladte kommandoer defineret i parameter $dolibarr_main_restrict_os_commands i filen conf.php. LandingPage=Destinationsside -SamePriceAlsoForSharedCompanies=Hvis du bruger et multimediemodul med valget "Single price", vil prisen også være den samme for alle virksomheder, hvis produkterne deles mellem miljøer -ModuleEnabledAdminMustCheckRights=Modulet er blevet aktiveret. Tilladelser til aktiverede modul(er) blev kun givet til admin brugere. Du kan muligvis give tilladelse til andre brugere eller grupper manuelt, hvis det er nødvendigt. -UserHasNoPermissions=Denne bruger har ingen tilladelser defineret -TypeCdr=Brug "Ingen", hvis betalingsdatoen er faktura dato plus et delta i dage (delta er feltet "%s")
    Brug "Ved slutningen af ​​måneden", hvis, efter deltaet, skal datoen hæves for at nå frem til slutningen af ​​måneden (+ en valgfri "%s" i dage)
    Brug "Nuværende / Næste" for at have betalingsfristen den første Nth af måneden efter deltaet (delta er feltet "%s", N er gemt i feltet "%s") -BaseCurrency=Referencens valuta af virksomheden (gå i setup af firma for at ændre dette) -WarningNoteModuleInvoiceForFrenchLaw=Dette modul %s er i overensstemmelse med franske love (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=Dette modul %s er i overensstemmelse med franske love (Loi Finance 2016), fordi modul Non Reversible Logs automatisk aktiveres. -WarningInstallationMayBecomeNotCompliantWithLaw=Du forsøger at installere modul %s, der er et eksternt modul. Aktivering af et eksternt modul betyder, at du har tillid til udgiveren af ​​det pågældende modul, og at du er sikker på, at dette modul ikke har negativ indflydelse på din applikations adfærd og er i overensstemmelse med lovene i dit land (%s). Hvis modulet introducerer en ulovlig funktion, bliver du ansvarlig for brugen af ​​ulovlig software. -MAIN_PDF_MARGIN_LEFT=Venstre margin på PDF -MAIN_PDF_MARGIN_RIGHT=Højre margin på PDF -MAIN_PDF_MARGIN_TOP=Top margin på PDF +SamePriceAlsoForSharedCompanies=Bruger du et multivirksomhed modul, med valget "Enkelt pris", vil prisen også være den samme for alle virksomheder, hvis produkter deles mellem miljøer +ModuleEnabledAdminMustCheckRights=Modulet er blevet aktiveret. Rettigheder til aktiverede modul(er) blev kun givet til administratorbrugere. Du skal muligvis give rettigheder til andre brugere eller grupper manuelt, hvis det er nødvendigt. +UserHasNoPermissions=Denne bruger har ingen rettigheder defineret +TypeCdr=Brug "Ingen", hvis betalingsdatoen er fakturadato plus et delta i dage (delta er feltet "%s")
    Brug "Ved slutningen af måneden", hvis datoen efter delta skal øges for at nå slutningen måned (+ et valgfrit "%s" i dage)
    Brug "Nuværende/Næste" for at få betalingsterminsdatoen til at være den første N'te i måneden efter delta (delta er feltet "%s", N gemmes i feltet "%s") +BaseCurrency=Virksomhedens referencevaluta (gå ind i virksomhedens opsætning for at ændre dette) +WarningNoteModuleInvoiceForFrenchLaw=Dette modul %s er i overensstemmelse med fransk lovgivning (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Dette modul %s er i overensstemmelse med fransk lovgivning (Loi Finance 2016), fordi modulet Non Reversible Logs automatisk aktiveres. +WarningInstallationMayBecomeNotCompliantWithLaw=Du forsøger at installere modul %s, som er et eksternt modul. Aktivering af et eksternt modul betyder, at du har tillid til udgiveren af dette modul, og at du er sikker på, at dette modul ikke har en negativ indvirkning på din applikations virkemåde og er i overensstemmelse med lovene i dit land (%s). Hvis modulet introducerer en ulovlig funktion, bliver du ansvarlig for brugen af ulovlig software. +MAIN_PDF_MARGIN_LEFT=Venstre margen på PDF +MAIN_PDF_MARGIN_RIGHT=Højre margen på PDF +MAIN_PDF_MARGIN_TOP=Topmargen på PDF MAIN_PDF_MARGIN_BOTTOM=Bundmargen på PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Højde for logo på PDF +DOC_SHOW_FIRST_SALES_REP=Vis den første salgsrepræsentant MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Tilføj kolonne til billede på forslagslinjer -MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Kolonnens bredde, hvis der tilføjes et billede på linjer -MAIN_PDF_NO_SENDER_FRAME=Skjul grænser på afsenderadresseramme -MAIN_PDF_NO_RECIPENT_FRAME=Skjul grænser for modtageradresseramme +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Spaltens bredde, hvis et billede tilføjes på linjer +MAIN_PDF_NO_SENDER_FRAME=Skjul kanter på afsenderadresserammen +MAIN_PDF_NO_RECIPENT_FRAME=Skjul kanter på receptadresserammen MAIN_PDF_HIDE_CUSTOMER_CODE=Skjul kundekode -MAIN_PDF_HIDE_SENDER_NAME=Skjul afsender/firmanavn i adresseblok +MAIN_PDF_HIDE_SENDER_NAME=Skjul afsender/virksomhedsnavn i adresseblok PROPOSAL_PDF_HIDE_PAYMENTTERM=Skjul betalingsbetingelser -PROPOSAL_PDF_HIDE_PAYMENTMODE=Skjul betalingsmetode -MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Tilføj elektronisk login i PDF -NothingToSetup=Der kræves ingen specifik opsætning for dette modul. +PROPOSAL_PDF_HIDE_PAYMENTMODE=Skjul betalingsmåde +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Tilføj elektronisk log i PDF +NothingToSetup=Der kræves ingen specifik opsætning af dette modul. SetToYesIfGroupIsComputationOfOtherGroups=Indstil dette til ja, hvis denne gruppe er en beregning af andre grupper -EnterCalculationRuleIfPreviousFieldIsYes=Indtast beregningsregel, hvis det forrige felt blev indstillet til Ja.
    For eksempel:
    CODEGRP1 + CODEGRP2 +EnterCalculationRuleIfPreviousFieldIsYes=Indtast beregningsregel, hvis forrige felt var sat til Ja.
    For eksempel:
    CODEGRP1+CODEGRP2 SeveralLangugeVariatFound=Flere sprogvarianter fundet RemoveSpecialChars=Fjern specialtegn -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter til ren værdi (COMPANY_AQUARIUM_CLEAN_REGEX) -COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter til ren værdi (COMPANY_DIGITARIA_CLEAN_REGEX) -COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat ikke tilladt -GDPRContact=Databeskyttelsesansvarlig (DPO, Data Privacy eller GDPR-kontakt) -GDPRContactDesc=Hvis du opbevarer personoplysninger i dit informationssystem, kan du her navngive den kontaktperson, der er ansvarlig for den generelle databeskyttelsesforordning +COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter for at rense værdi (COMPANY_AQUARIUM_CLEAN_REGEX) +COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter for at rense værdi (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat er ikke tilladt +RemoveSpecialWords=Rengør visse ord, når du genererer underkonti til kunder eller leverandører +RemoveSpecialWordsHelp=Angiv de ord, der skal renses, før du beregner kunde- eller leverandørkontoen. Brug en ";" mellem hvert ord +GDPRContact=Databeskyttelsesansvarlig (DPO, databeskyttelse eller GDPR-kontakt) +GDPRContactDesc=Hvis du opbevarer personoplysninger i dit informationssystem, kan du her navngive den kontaktperson, der er ansvarlig for GDPR HelpOnTooltip=Hjælpetekst til at vise på værktøjstip -HelpOnTooltipDesc=Indsæt tekst eller en oversættelsessnøgle her for at teksten skal vises i et værktøjstip, når dette felt vises i en formular -YouCanDeleteFileOnServerWith=Du kan slette denne fil på serveren med kommandolinje:
    %s -ChartLoaded=Kort over konto indlæst -SocialNetworkSetup=Opsætning af modul Sociale netværk -EnableFeatureFor=Aktivér funktioner til %s -VATIsUsedIsOff=Bemærk: Muligheden for at bruge salgsafgift eller moms er blevet indstillet til Fra i menuen %s - %s, så Salgsskat eller moms anvendes altid 0 for salg. -SwapSenderAndRecipientOnPDF=Skift afsender- og modtageradresseposition på PDF-dokumenter -FeatureSupportedOnTextFieldsOnly=Advarsel, funktion understøttet kun i tekstfelter og kombinationslister. Også en URL-parameterhandling = Opret eller handling = redigering skal indstilles ELLER sidenavnet skal slutte med 'new.php' for at udløse denne funktion. -EmailCollector=Email samler -EmailCollectorDescription=Tilføj et planlagt job og en opsætningsside for at scanne jævnligt emailkasser (ved hjælp af IMAP-protokollen) og optag e-mails, der er modtaget i din ansøgning, på det rigtige sted og / eller lav nogle poster automatisk (som muligheder). -NewEmailCollector=Ny Email Collector -EMailHost=Vært af e-mail-IMAP-server -MailboxSourceDirectory=Postkasse kilde bibliotek -MailboxTargetDirectory=Postkasse målkatalog -EmailcollectorOperations=Operationer at gøre af samleren -EmailcollectorOperationsDesc=Opgaver udføres fra øverste til nederste ordre -MaxEmailCollectPerCollect=Maks antal Emails indsamlet pr. Samling -CollectNow=Indsamle nu -ConfirmCloneEmailCollector=Er du sikker på, at du vil klone e-mail-samleren %s? -DateLastCollectResult=Dato for seneste indsamlingsforsøg -DateLastcollectResultOk=Dato for seneste succes med indsamling +HelpOnTooltipDesc=Indsæt tekst eller en oversættelsesnøgle her, så teksten vises i et værktøjstip, når dette felt vises i en formular +YouCanDeleteFileOnServerWith=Du kan slette denne fil på serveren med kommandolinjen:
    %s +ChartLoaded=Kontoplan indlæst +SocialNetworkSetup=Opsætning af Sociale netværk modul +EnableFeatureFor=Aktiver funktioner til %s +VATIsUsedIsOff=Bemærk: Muligheden for at bruge moms er sat til Off i menuen %s - %s, så moms sats vil altid være 0 for salg. +SwapSenderAndRecipientOnPDF=Byt afsender- og modtageradresse placering i PDF-dokumenter +FeatureSupportedOnTextFieldsOnly=Advarsel, funktion understøttet kun på tekstfelter og kombinationslister. Også en URL-parameter action=create eller action=edit skal indstilles ELLER sidenavn skal slutte med 'new.php' for at udløse denne funktion. +EmailCollector=E-mail samler +EmailCollectors=E-mail samlere +EmailCollectorDescription=Tilføj et planlagt job og en opsætningsside for at scanne regelmæssigt e-mail-bokse (ved hjælp af IMAP protokol) og registrere e-mails modtaget i dit program, på det rigtige sted og/eller oprette nogle poster automatisk (såsom kundeemner). +NewEmailCollector=Ny e-mail samler +EMailHost=Vært for e-mail IMAP-server +EMailHostPort=Port på e-mail-IMAP-server +loginPassword=Login kodeord +oauthToken=Oauth2 token +accessType=Adgangstype +oauthService=Oauth service +TokenMustHaveBeenCreated=Modul OAuth2 skal være aktiveret, og et oauth2-token skal være oprettet med de korrekte tilladelser (f.eks. scope "gmail_full" med OAuth til Gmail). +MailboxSourceDirectory=Postkassens kildemappe +MailboxTargetDirectory=Postkassens målmappe +EmailcollectorOperations=Operationer, der skal udføres af samler +EmailcollectorOperationsDesc=Operationer udføres fra top til bund +MaxEmailCollectPerCollect=Maks. antal indsamlede e-mails pr. indsamling +TestCollectNow=Prøv indsamling +CollectNow=Indsaml nu +ConfirmCloneEmailCollector=Er du sikker på, at du vil klone e-mail samleren %s? +DateLastCollectResult=Dato for seneste opsamlingsforsøg +DateLastcollectResultOk=Dato for seneste gennemførte indindsamling LastResult=Seneste resultat -EmailCollectorHideMailHeaders=Inkluder ikke indholdet af e-mail-headeren i det gemte indhold af indsamlede e-mails -EmailCollectorHideMailHeadersHelp=Når det er aktiveret, tilføjes e-mail-headers ikke i slutningen af e-mail-indholdet, der er gemt som begivenheder. -EmailCollectorConfirmCollectTitle=Email samle bekræftelse +EmailCollectorHideMailHeaders=Inkluder ikke indholdet af e-mail headeren i det gemte indhold af indsamlede e-mails +EmailCollectorHideMailHeadersHelp=Når dette er aktiveret, tilføjes e-mail headers ikke i slutningen af e-mail indholdet, der er gemt som en begivenheds hændelser. +EmailCollectorConfirmCollectTitle=E-mail samler bekræftelse EmailCollectorConfirmCollect=Vil du køre denne samler nu? -EmailCollectorExampleToCollectTicketRequestsDesc=Saml e-mails, der matcher nogle regler, og opret automatisk en billet (modulbillet skal være aktiveret) med e-mail-oplysningerne. Du kan bruge denne samler, hvis du yder støtte via e-mail, så din billetanmodning bliver automatisk genereret. Aktiver også Collect_Responses for at indsamle svar fra din klient direkte på billetvisningen (du skal svare fra Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Eksempel på indsamling af billetanmodningen (kun første besked) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan din postkasse "Sendt" mappe for at finde e-mails, der blev sendt som svar på en anden e-mail direkte fra din e-mail-software og ikke fra Dolibarr. Hvis en sådan e-mail findes, registreres svaret i Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Eksempel på indsamling af e-mail-svar sendt fra en ekstern e-mail-software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Saml alle e-mails, der er et svar på en e-mail sendt fra din ansøgning. En begivenhed (Module Agenda skal være aktiveret) med e-mail-svaret vil blive optaget på det gode sted. For eksempel, hvis du sender et kommercielt forslag, ordre, faktura eller besked om en billet via e-mail fra applikationen, og din kunde besvarer din e-mail, vil systemet automatisk fange svaret og tilføje det i din ERP. +EmailCollectorExampleToCollectTicketRequestsDesc=Saml e-mails, der matcher nogle regler, og opret automatisk en opgave (opgave modulet skal være aktiveret) med e-mail oplysningerne. Du kan bruge denne samler, hvis du yder support via e-mail, så din opgaveanmodning bliver automatisk genereret. Aktiver også Collect_Responses for at indsamle svar fra din klient direkte på opgavevisningen (du skal svare fra Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Eksempel på indsamling af opgaveanmodningen (kun første besked) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan din postkasse "Sendt" mappe for at finde e-mails, der blev sendt som svar på en anden e-mail direkte fra dit e-mail program og ikke fra Dolibarr. Hvis en sådan e-mail findes, registreres svaret i Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Eksempel på indsamling af e-mail svar sendt fra et ekstern e-mail program +EmailCollectorExampleToCollectDolibarrAnswersDesc=Saml alle e-mails, der er et svar på en e-mail sendt fra dit program. En begivenhed (Modulet Tidsplan skal være aktiveret) med e-mail svaret vil blive optaget på det rigtige sted. For eksempel, hvis du sender et tilbud, ordre, faktura eller besked om en opgave via e-mail fra programmet, og modtageren besvarer din e-mail, vil systemet automatisk fange svaret og tilføje det i din ERP. EmailCollectorExampleToCollectDolibarrAnswers=Eksempel, der samler alle indgående beskeder som svar på beskeder sendt fra Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Saml e-mails, der matcher nogle regler, og opret automatisk et kundeemne (modulprojekt skal være aktiveret) med e-mail-oplysningerne. Du kan bruge denne samler, hvis du vil følge dit lead ved hjælp af modulet Projekt (1 lead = 1 projekt), så dine leads bliver automatisk genereret. Hvis indsamleren Collect_Responses også er aktiveret, når du sender en e-mail fra dine kundeemner, forslag eller ethvert andet objekt, kan du også se svar fra dine kunder eller partnere direkte på applikationen.
    Bemærk: Med dette indledende eksempel genereres titlen på kundeemnet inklusive e-mailen. Hvis tredjeparten ikke kan findes i databasen (ny kunde), vil leadet blive knyttet til tredjeparten med ID 1. -EmailCollectorExampleToCollectLeads=Eksempel på indsamling af kundeemner -EmailCollectorExampleToCollectJobCandidaturesDesc=Saml e-mails, der ansøger om jobtilbud (Modulrekruttering skal være aktiveret). Du kan fuldføre denne samler, hvis du automatisk vil oprette en kandidatur til en jobanmodning. Bemærk: Med dette indledende eksempel genereres titlen på kandidaturen inklusive e-mailen. -EmailCollectorExampleToCollectJobCandidatures=Eksempel på indsamling af jobkandidater modtaget på e-mail -NoNewEmailToProcess=Ingen ny email (matchende filtre), der skal behandles -NothingProcessed=Intet gjort -XEmailsDoneYActionsDone=%s e-mails kvalificerede, %s e-mails er behandlet (for %s-registrering / handlinger udført) +EmailCollectorExampleToCollectLeadsDesc=Indsaml e-mails, der matcher nogle regler, og opret automatisk et kundeemne (modulprojekt skal være aktiveret) med e-mail-oplysningerne. Du kan bruge denne samler, hvis du vil følge dit lead ved hjælp af modulet Projekt (1 lead = 1 projekt), så dine leads bliver automatisk genereret. Hvis samleren Collect_Responses også er aktiveret, når du sender en e-mail fra dine kundeemner, forslag eller ethvert andet objekt, kan du også se svar fra dine kunder eller partnere direkte i applikationen.
    Bemærk: Med dette indledende eksempel genereres titlen på kundeemnet inklusive e-mailen. Hvis tredjeparten ikke kan findes i databasen (ny kunde), vil kundeemnet blive knyttet til tredjeparten med ID 1. +EmailCollectorExampleToCollectLeads=Eksempel på samling af kundeemner +EmailCollectorExampleToCollectJobCandidaturesDesc=Saml e-mails, der ansøger om jobtilbud (Rekrutterings modulet skal være aktiveret). Du kan fuldføre denne samler, hvis du automatisk vil oprette et kandidatur til en jobansøgning. Bemærk: Med dette indledende eksempel genereres titlen på kandidaturen inklusive e-mailen. +EmailCollectorExampleToCollectJobCandidatures=Eksempel på indsamling af jobkandidater modtaget via e-mail +NoNewEmailToProcess=Ingen ny e-mail (matchende filtre) at behandle +NothingProcessed=Intet udført +XEmailsDoneYActionsDone=%s e-mails prækvalificeret, %s e-mails behandlet med succes (for %s registrering/handlinger udført) RecordEvent=Optag en begivenhed i dagsordenen (med typen E-mail sendt eller modtaget) -CreateLeadAndThirdParty=Opret et mulighed (og en tredjepart om nødvendigt) -CreateTicketAndThirdParty=Opret en billet (linket til en tredjepart, hvis tredjeparten blev indlæst af en tidligere handling eller blev gættet fra en tracker i e-mail-headeren, uden tredjemand ellers) -CodeLastResult=Latest result code +CreateLeadAndThirdParty=Opret et kundeemne (og en tredjepart om nødvendigt) +CreateTicketAndThirdParty=Opret en billet (linket til en tredjepart, hvis tredjeparten blev indlæst af en tidligere handling eller blev gættet fra en tracker i e-mail headeren, uden tredjemand ellers) +CodeLastResult=Seneste resultatkode NbOfEmailsInInbox=Antal e-mails i kildekataloget -LoadThirdPartyFromName=Indlæs tredjeparts søgning på %s (kun belastning) -LoadThirdPartyFromNameOrCreate=Indlæs tredjepartssøgning på %s (opret hvis ikke fundet) -AttachJoinedDocumentsToObject=Gem vedhæftede filer i objektdokumenter, hvis der findes en ref for et objekt i e-mail-emnet. -WithDolTrackingID=Besked fra en samtale startet af en første e-mail sendt fra Dolibarr -WithoutDolTrackingID=Besked fra en samtale startet af en første e-mail, der IKKE blev sendt fra Dolibarr +LoadThirdPartyFromName=Indlæs tredjepartssøgning på %s (kun indlæsning) +LoadThirdPartyFromNameOrCreate=Indlæs tredjepartssøgning på %s (opret, hvis den ikke findes) +AttachJoinedDocumentsToObject=Gem vedhæftede filer i objektdokumenter, hvis der findes en ref af et objekt i e-mail emnet. +WithDolTrackingID=Besked fra en samtale initieret af en første e-mail sendt fra Dolibarr +WithoutDolTrackingID=Besked fra en samtale initieret af en første e-mail IKKE sendt fra Dolibarr WithDolTrackingIDInMsgId=Besked sendt fra Dolibarr WithoutDolTrackingIDInMsgId=Besked IKKE sendt fra Dolibarr CreateCandidature=Opret jobansøgning -FormatZip=Zip -MainMenuCode=Menu indtastningskode (hovedmenu) +FormatZip=ZIP +MainMenuCode=Menuindgangskode (hovedmenu) ECMAutoTree=Vis automatisk ECM-træ -OperationParamDesc=Definer de regler, der skal bruges til at udtrække eller angive værdier.
    Eksempel på operationer, der skal udtrække et navn fra e-mailens emne:
    name=EXTRACT:SUBJECT:Besked fra virksomheden ([^\n] *)
    eksempel til operationer, der skaber objekter:
    objproperty1 = SET: værdien til sæt
    objproperty2 = SET: en værdi inklusive værdi af __objproperty1__
    objproperty3 = SETIFEMPTY: værdi anvendes, hvis objproperty3 ikke allerede defineret
    objproperty4 = EKSTRAKT: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY(Mit firmanavn er\\s(Mit firmanavn er\\s: [^\\s]*)

    Brug en ; char som separator for at udtrække eller indstille flere egenskaber. +OperationParamDesc=Definer de regler, der skal bruges til at udtrække nogle data, eller sæt værdier, der skal bruges til drift.

    Eksempel på at udtrække et firmanavn fra e-mail-emne til en midlertidig variabel:
    tmp_var=EXTRACT:SUBJECT:Besked fra firma ([^\n]*)

    Eksempler på at indstille egenskaberne for et objekt til at skabe:
    objproperty1=SET:en hårdkodet værdi
    objproperty2=SET_fcv_prty_set er allerede defineret objproperty2=SET:__t1V_værdi egenskaben:__t1VDa_værdi er allerede defineret:_0mp1VDa værdi:
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*) a0342bACTertyD5 firmanavn er\\s([^\\s]*)

    Brug en ; char som separator for at udtrække eller indstille flere egenskaber. OpeningHours=Åbningstider -OpeningHoursDesc=Indtast her firmaets almindelige åbningstider. -ResourceSetup=Konfiguration af ressource modul -UseSearchToSelectResource=Brug en søgeformular til at vælge en ressource (i stedet for en rullemenu). -DisabledResourceLinkUser=Deaktiver funktion for at forbinde en ressource til brugere -DisabledResourceLinkContact=Deaktiver funktion for at forbinde en ressource til kontakter -EnableResourceUsedInEventCheck=Forbyd brug af den samme ressource på samme tid i dagsordenen -ConfirmUnactivation=Bekræft modul reset -OnMobileOnly=Kun på lille skærm (smartphone) -DisableProspectCustomerType=Deaktiver tredjepartstypen "Prospekt + Kunder" (så tredjepart skal være "Prospekt" eller "Kunder", men kan ikke være begge) -MAIN_OPTIMIZEFORTEXTBROWSER=Forenkle brugergrænsefladen til blindperson -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktivér denne indstilling, hvis du er blind person, eller hvis du bruger programmet fra en tekstbrowser som Lynx eller Links. -MAIN_OPTIMIZEFORCOLORBLIND=Skift interfacefarve til farveblind person -MAIN_OPTIMIZEFORCOLORBLINDDesc=Aktivér denne indstilling, hvis du er en farveblind person, i nogle tilfælde ændrer grænsefladen farveopsætning for at øge kontrasten. -Protanopia=Protanopi +OpeningHoursDesc=Indtast her din virksomheds almindelige åbningstider. +ResourceSetup=Opsætning af ressourcemodul +UseSearchToSelectResource=Brug en søgeformular til at vælge en ressource (i stedet for en rulleliste). +DisabledResourceLinkUser=Deaktiver funktion at knytte en ressource til brugere +DisabledResourceLinkContact=Deaktiver funktion at knytte en ressource til kontakter +EnableResourceUsedInEventCheck=Forbyd brugen af den samme ressource på samme tid i dagsordenen +ConfirmUnactivation=Bekræft modulnulstilling +OnMobileOnly=Kun på lille skærm (smartphone). +DisableProspectCustomerType=Deaktiver "Kundeemne + Kunde" tredjepartstype (så tredjepart skal være "Kundeemne" eller "Kunde", men kan ikke være begge dele) +MAIN_OPTIMIZEFORTEXTBROWSER=Forenklet grænseflade for blinde +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktiver denne mulighed, hvis du er en blind person, eller hvis du bruger programmet fra en tekstbrowser som Lynx eller Links. +MAIN_OPTIMIZEFORCOLORBLIND=Skift interfaces farve for farveblind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Aktiver denne mulighed, hvis du er en farveblind person, i nogle tilfælde vil grænsefladen ændre farveopsætningen for at øge kontrasten. +Protanopia=Protanopia Deuteranopes=Deuteranopes Tritanopes=Tritanopes -ThisValueCanOverwrittenOnUserLevel=Denne værdi kan overskrives af hver bruger fra sin brugerside - fanebladet '%s' -DefaultCustomerType=Standard tredjepartstype til "Ny kunde" oprettelsesformular -ABankAccountMustBeDefinedOnPaymentModeSetup=Bemærk: Bankkontoen skal defineres i modulet i hver betalingsmetode (Paypal, Stripe, ...) for at denne funktion skal fungere. -RootCategoryForProductsToSell=Rodkategori af produkter, der skal sælges -RootCategoryForProductsToSellDesc=Hvis det er defineret, er det kun produkter inden for denne kategori eller underordnede i denne kategori, der er tilgængelige i salgsstedet -DebugBar=Debug Bar -DebugBarDesc=Værktøjslinje, der leveres med en masse værktøjer til at forenkle fejlfinding -DebugBarSetup=DebugBar-opsætning +ThisValueCanOverwrittenOnUserLevel=Denne værdi kan overskrives af den enkelte bruger fra dennes brugerside - fanen '%s' +DefaultCustomerType=Standard tredjepartstype for oprettelsesformularen "Ny kunde". +ABankAccountMustBeDefinedOnPaymentModeSetup=Bemærk: Bankkontoen skal være defineret på modulet for hver betalingsmåde (Paypal, Stripe, ...) for at få denne funktion til at virke. +RootCategoryForProductsToSell=Rod kategori af produkter til salg +RootCategoryForProductsToSellDesc=Hvis defineret, vil kun produkter inden for denne kategori eller underkategori i denne kategori være tilgængelige i Point Of Sale +DebugBar=Fejlfindingsbjælke +DebugBarDesc=Værktøjslinje, der kommer med en masse værktøjer til at forenkle fejlfinding +DebugBarSetup=Opsætning af Fejlfindingsbjælke GeneralOptions=Generelle indstillinger LogsLinesNumber=Antal linjer, der skal vises på fanen logfiler -UseDebugBar=Brug fejlfindingslinjen -DEBUGBAR_LOGS_LINES_NUMBER=Antal sidste loglinjer, der skal holdes i konsollen -WarningValueHigherSlowsDramaticalyOutput=Advarsel, højere værdier bremser dramatisk output -ModuleActivated=Modul %s er aktiveret og forsinker grænsefladen +UseDebugBar=Brug Fejlfindingsbjælken +DEBUGBAR_LOGS_LINES_NUMBER=Antal nyeste loglinjer, der skal opbevares i konsollen +WarningValueHigherSlowsDramaticalyOutput=Advarsel, højere værdier sløver output dramatisk +ModuleActivated=Modul %s er aktiveret og gør grænsefladen langsommere ModuleActivatedWithTooHighLogLevel=Modul %s er aktiveret med et for højt logningsniveau (prøv at bruge et lavere niveau for bedre ydeevne og sikkerhed) -ModuleSyslogActivatedButLevelNotTooVerbose=Modul %s er aktiveret, og logniveau (%s) er korrekt (ikke for detaljeret) +ModuleSyslogActivatedButLevelNotTooVerbose=Modul %s er aktiveret, og logniveau (%s) er korrekt (ikke for udførligt) IfYouAreOnAProductionSetThis=Hvis du er i et produktionsmiljø, skal du indstille denne egenskab til %s. AntivirusEnabledOnUpload=Antivirus aktiveret på uploadede filer -SomeFilesOrDirInRootAreWritable=Nogle filer eller mapper er ikke i en skrivebeskyttet tilstand +SomeFilesOrDirInRootAreWritable=Nogle filer eller mapper er ikke i skrivebeskyttet tilstand EXPORTS_SHARE_MODELS=Eksportmodeller deles med alle -ExportSetup=Opsætning af modul Eksport -ImportSetup=Opsætning af modul til import -InstanceUniqueID=Forekomstets unikke ID +ExportSetup=Opsætning af Eksportmodul +ImportSetup=Opsætning af Importmodul +InstanceUniqueID=Unikt ID for instansen SmallerThan=Mindre end LargerThan=Større end -IfTrackingIDFoundEventWillBeLinked=Bemærk, at hvis et sporings-id for et objekt findes i e-mailen, eller hvis e-mailen er et svar fra en e-mail-område, der er indsamlet og linket til et objekt, vil den oprettede begivenhed automatisk blive linket til det kendte relaterede objekt. -WithGMailYouCanCreateADedicatedPassword=Hvis du aktiverer valideringen af 2 trin med en GMail konto, anbefales det at oprette en dedikeret anden adgangskode til applikationen i stedet for at bruge dit eget kontos kodeord fra https://myaccount.google.com/. -EmailCollectorTargetDir=Det kan være en ønsket opførsel at flytte e-mailen til et andet tag/bibliotek, når den blev behandlet med succes. Angiv blot navnet på kataloget her for at bruge denne funktion (Brug IKKE specialtegn i navnet). Bemærk, at du også skal bruge en læse/skrive logind konto. -EmailCollectorLoadThirdPartyHelp=Du kan bruge denne handling til at bruge e-mail-indholdet til at finde og indlæse en eksisterende tredjepart i din database. Den fundne (eller oprettede) tredjepart vil blive brugt til følgende handlinger, der har brug for det.
    For eksempel, hvis du vil oprette en tredjepart med et navn udtrukket fra en streng 'Navn: navn at finde' til stede i brødteksten, skal du bruge afsenderens e-mail som e-mail, du kan indstille parameterfeltet sådan:
    'email= HEADER:^Fra:(.*);navn=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +IfTrackingIDFoundEventWillBeLinked=Bemærk, at hvis et sporings-id for et objekt findes i e-mail, eller hvis e-mailen er et svar på en e-mail, der er indsamlet og knyttet til et objekt, vil den oprettede hændelse automatisk blive knyttet til det kendte relaterede objekt. +WithGMailYouCanCreateADedicatedPassword=Med en Gmail-konto, hvis du aktiverede 2-trins validering, anbefales det at oprette en dedikeret anden adgangskode til applikationen i stedet for at bruge din egen kontoadgangskode fra https://myaccount.google.com/. +EmailCollectorTargetDir=Det kan være en ønsket adfærd at flytte e-mailen til et anden tag/mappe, når den er blevet behandlet med succes. Indstil blot navnet på mappen her for at bruge denne funktion (brug IKKE specialtegn i navnet). Bemærk, at du også skal bruge en login-konto med læse/skrive rettigheder. +EmailCollectorLoadThirdPartyHelp=Du kan bruge denne handling til at bruge e-mail-indholdet til at finde og indlæse en eksisterende tredjepart i din database. Den fundne (eller oprettede) tredjepart vil blive brugt til følgende handlinger, der har brug for det.
    For eksempel, hvis du vil oprette en tredjepart med et navn udtrukket fra en streng 'Navn: navn at finde' til stede i brødteksten, skal du bruge afsenderens e-mail som e-mail, du kan indstille parameterfeltet sådan:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=Slutpunkt for %s: %s -DeleteEmailCollector=Slet e-mail-indsamler -ConfirmDeleteEmailCollector=Er du sikker på, at du vil slette denne e-mail-indsamler? -RecipientEmailsWillBeReplacedWithThisValue=Modtager-e-mails erstattes altid med denne værdi +DeleteEmailCollector=Slet e-mail-samler +ConfirmDeleteEmailCollector=Er du sikker på, at du vil slette denne e-mail-samler? +RecipientEmailsWillBeReplacedWithThisValue=Modtagers e-mails vil altid blive erstattet med denne værdi AtLeastOneDefaultBankAccountMandatory=Der skal defineres mindst 1 standardbankkonto RESTRICT_ON_IP=Tillad kun API-adgang til bestemte klient-IP'er (jokertegn ikke tilladt, brug mellemrum mellem værdier). Tom betyder, at alle kunder har adgang. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Baseret på biblioteket SabreDAV version NotAPublicIp=Ikke en offentlig IP -MakeAnonymousPing=Lav en anonym Ping '+1' til Dolibarr foundation-serveren (udføres kun 1 gang efter installationen) for at lade fundamentet tælle antallet af Dolibarr-installation. -FeatureNotAvailableWithReceptionModule=Funktion ikke tilgængelig, når modulmodtagelse er aktiveret +MakeAnonymousPing=Lav et anonymt Ping '+1' til Dolibarr Foundation-serveren (kun udført 1 gang efter installationen) for at tillade Foundation at tælle antallet af Dolibarr-installationer. +FeatureNotAvailableWithReceptionModule=Funktionen er ikke tilgængelig, når Modtagelsesmodulet er aktiveret EmailTemplate=Skabelon til e-mail EMailsWillHaveMessageID=E-mails har et mærke 'Referencer', der matcher denne syntaks PDF_SHOW_PROJECT=Vis projekt på dokument -ShowProjectLabel=Projektmærke -PDF_USE_ALSO_LANGUAGE_CODE=Hvis du vil have nogle tekster i din PDF kopieret på 2 forskellige sprog i den samme genererede PDF, skal du indstille her dette andet sprog, så genereret PDF indeholder 2 forskellige sprog på samme side, det, der er valgt, når du genererer PDF og denne ( kun få PDF-skabeloner understøtter dette). Hold tomt i 1 sprog pr. PDF. -PDF_USE_A=Lav PDF -dokumenter med format PDF/A i stedet for PDF -format som standard -FafaIconSocialNetworksDesc=Indtast her koden for et FontAwesome-ikon. Hvis du ikke ved, hvad der er FontAwesome, kan du bruge den generiske værdi fa-adressebog. -RssNote=Bemærk: Hver RSS-feed-definition indeholder en widget, som du skal aktivere for at have den tilgængelig i instrumentbrættet\n  +ShowProjectLabel=Projektetiket +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Inkluder alias i tredjepartsnavn +THIRDPARTY_ALIAS=Navn tredjepart - Alias tredjepart +ALIAS_THIRDPARTY=Alias tredjepart - Navngiv tredjepart +PDFIn2Languages=Vis etiketter til PDF på 2 forskellige sprog +PDF_USE_ALSO_LANGUAGE_CODE=Hvis du vil have nogle tekster i din PDF duplikeret på 2 forskellige sprog i den samme genererede PDF, skal du her indstille dette andet sprog, så genereret PDF vil indeholde 2 forskellige sprog på samme side, det der blev valgt ved generering af PDF og dette (kun få PDF-skabeloner understøtter dette). Hold tom for et sprog pr. PDF. +PDF_USE_A=Generer PDF-dokumenter med formatet PDF/A i stedet for standardformatet PDF +FafaIconSocialNetworksDesc=Indtast her koden for et FontAwesome-ikon. Hvis du ikke ved, hvad FontAwesome er, kan du bruge den generiske værdi fa-address-book. +RssNote=Bemærk: Hver RSS-feeddefinition giver en widget, som du skal aktivere for at have den tilgængelig på dashboardet JumpToBoxes=Gå til Opsætning -> Widgets -MeasuringUnitTypeDesc=Brug her en værdi som "størrelse", "overflade", "volumen", "vægt", "tid" -MeasuringScaleDesc=Skalaen er antallet af steder, du skal flytte decimaldelen for at matche standardreferenceenheden. For "tid" -enhedstype er det antallet af sekunder. Værdier mellem 80 og 99 er reserverede værdier. +MeasuringUnitTypeDesc=Brug her en værdi som "størrelse", "overflade", "volume", "vægt", "tid" +MeasuringScaleDesc=Skalaen er det antal steder, du skal flytte decimaldelen for at matche standardreferenceenheden. For "tids" enhedstype er det antallet af sekunder. Værdier mellem 80 og 99 er reserverede værdier. TemplateAdded=Skabelon tilføjet -TemplateUpdated=Skabelonen opdateret -TemplateDeleted=Skabelonen blev slettet -MailToSendEventPush=E-mail om påmindelse om begivenhed +TemplateUpdated=Skabelonen er opdateret +TemplateDeleted=Skabelonen er slettet +MailToSendEventPush=E-mail med påmindelse om begivenhed SwitchThisForABetterSecurity=Det anbefales at skifte denne værdi til %s for mere sikkerhed DictionaryProductNature= Produktets art -CountryIfSpecificToOneCountry=Land (hvis det er specifikt for et givet land) +CountryIfSpecificToOneCountry=Land (hvis specifikt for et givet land) YouMayFindSecurityAdviceHere=Du kan finde sikkerhedsrådgivning her -ModuleActivatedMayExposeInformation=Denne PHP-udvidelse kan udsætte følsomme data. Hvis du ikke har brug for det, skal du deaktivere det. -ModuleActivatedDoNotUseInProduction=Et modul designet til udviklingen er blevet aktiveret. Aktivér det ikke i et produktionsmiljø. -CombinationsSeparator=Separatorkarakter til produktkombinationer +ModuleActivatedMayExposeInformation=Denne PHP-udvidelse kan afsløre følsomme data. Hvis du ikke har brug for den, skal du deaktivere den. +ModuleActivatedDoNotUseInProduction=Et modul designet til udviklingen er blevet aktiveret. Aktiver det ikke i et produktionsmiljø. +CombinationsSeparator=Skilletegn for produktkombinationer SeeLinkToOnlineDocumentation=Se link til online dokumentation i topmenuen for eksempler -SHOW_SUBPRODUCT_REF_IN_PDF=Hvis funktionen "%s" i modul %s bruges, skal du vise detaljer om delprodukter af et sæt på PDF. +SHOW_SUBPRODUCT_REF_IN_PDF=Hvis funktionen "%s" i modulet %s bruges, vises detaljer om delprodukter af et sæt i PDF. AskThisIDToYourBank=Kontakt din bank for at få dette ID -AdvancedModeOnly=Tilladelse er kun tilgængelig i udvidet tilladelsestilstand -ConfFileIsReadableOrWritableByAnyUsers=Conf-filen kan læses eller skrives af alle brugere. Giv kun tilladelse til webserverbrugere og -grupper. +AdvancedModeOnly=Tilladelse er kun tilgængelig i avanceret tilladelsestilstand +ConfFileIsReadableOrWritableByAnyUsers=Conf-filen kan læses eller skrives af alle brugere. Giv kun tilladelsen til webserver service bruger og gruppe. MailToSendEventOrganization=Begivenhedsorganisation MailToPartnership=Partnerskab -AGENDA_EVENT_DEFAULT_STATUS=Standardhændelsesstatus, når du opretter en begivenhed fra formularen -YouShouldDisablePHPFunctions=Du skal deaktivere PHP-funktioner -IfCLINotRequiredYouShouldDisablePHPFunctions=Bortset fra hvis du har brug for at køre systemkommandoer i brugerdefineret kode, skal du deaktivere PHP-funktioner -PHPFunctionsRequiredForCLI=Til shell-formål (som planlagt jobbackup eller kørsel af et anitivurs-program) skal du beholde PHP-funktioner -NoWritableFilesFoundIntoRootDir=Ingen skrivbare filer eller mapper til de almindelige programmer blev fundet i din rodkatalog (God) +AGENDA_EVENT_DEFAULT_STATUS=Standard hændelsesstatus ved oprettelse af en hændelse fra formularen +YouShouldDisablePHPFunctions=Du bør deaktivere PHP-funktioner +IfCLINotRequiredYouShouldDisablePHPFunctions=Undtagen hvis du har brug for at køre systemkommandoer i brugerdefineret kode, skal du deaktivere PHP-funktioner +PHPFunctionsRequiredForCLI=Til shell-formål (som planlagt jobbackup eller kørsel af et antivirusprogram), skal du beholde PHP-funktioner +NoWritableFilesFoundIntoRootDir=Der blev ikke fundet nogen skrivbare filer eller mapper for de almindelige programmer i din rodmappe (godt) RecommendedValueIs=Anbefalet: %s -Recommended=Anbefalet +Recommended=Anbefalede NotRecommended=Ikke anbefalet -ARestrictedPath=Nogle begrænsede veje +ARestrictedPath=En eller anden begrænset sti til datafiler CheckForModuleUpdate=Se efter opdateringer til eksterne moduler -CheckForModuleUpdateHelp=Denne handling opretter forbindelse til redaktører for eksterne moduler for at kontrollere, om en ny version er tilgængelig. +CheckForModuleUpdateHelp=Denne handling vil oprette forbindelse til redaktører af eksterne moduler for at kontrollere om en ny version er tilgængelig. ModuleUpdateAvailable=En opdatering er tilgængelig NoExternalModuleWithUpdate=Ingen opdateringer fundet for eksterne moduler -SwaggerDescriptionFile=Swagger API beskrivelsesfil (f.eks. Til brug med redoc) -YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Du aktiverede forældet WS API. Du skal bruge REST API i stedet. -RandomlySelectedIfSeveral=Valgt tilfældigt, hvis der er flere billeder tilgængelige -DatabasePasswordObfuscated=Databaseadgangskode er tilsløret i conf-fil -DatabasePasswordNotObfuscated=Databaseadgangskode er IKKE tilsløret i conf-fil +SwaggerDescriptionFile=Swagger API beskrivelsesfil (til brug med for eksempel redoc) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Du har aktiveret forældet WS API. Du bør bruge REST API i stedet. +RandomlySelectedIfSeveral=Tilfældigt valgt, hvis flere billeder er tilgængelige +SalesRepresentativeInfo=For tilbud, ordrer, fakturaer. +DatabasePasswordObfuscated=Databaseadgangskode er sløret i conf-filen +DatabasePasswordNotObfuscated=Databaseadgangskoden er IKKE sløret i conf-filen APIsAreNotEnabled=API-moduler er ikke aktiveret YouShouldSetThisToOff=Du skal indstille dette til 0 eller fra -InstallAndUpgradeLockedBy=Installer og opgraderinger låses af filen %s +InstallAndUpgradeLockedBy=Installation og opgraderinger er låst af filen %s OldImplementation=Gammel implementering -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Hvis nogle online betalingsmoduler er aktiveret (Paypal, Stripe, ...), skal du tilføje et link i PDF'en for at foretage online betalingen -DashboardDisableGlobal=Deaktiver globalt alle tommelfingre på åbne objekter -BoxstatsDisableGlobal=Deaktiver fuldstændig boksstatistik -DashboardDisableBlocks=Tommelfingre af åbne objekter (til behandling eller for sent) på hoveddashboardet -DashboardDisableBlockAgenda=Deaktiver tommelfingeren for dagsordenen -DashboardDisableBlockProject=Deaktiver tommelfingeren for projekter -DashboardDisableBlockCustomer=Deaktiver tommelfingeren for kunder -DashboardDisableBlockSupplier=Deaktiver tommelfingeren for leverandører -DashboardDisableBlockContract=Deaktiver tommelfingeren for kontrakter -DashboardDisableBlockTicket=Deaktiver tommelfingeren for billetter -DashboardDisableBlockBank=Deaktiver tommelfingeren for banker -DashboardDisableBlockAdherent=Deaktiver tommelfingeren for medlemskaber -DashboardDisableBlockExpenseReport=Deaktiver tommelfingeren for udgiftsrapporter -DashboardDisableBlockHoliday=Deaktiver tommelfingeren for blade -EnabledCondition=Betingelse for at få feltet aktiveret (hvis det ikke er aktiveret, er synligheden altid deaktiveret) +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Hvis nogle online betalingsmoduler er aktiveret (Paypal, Stripe, ...), skal du tilføje et link i PDF'en for at foretage onlinebetalingen +DashboardDisableGlobal=Deaktiver globalt alle miniaturebilleder på åbne objekter +BoxstatsDisableGlobal=Deaktiver fuldstændig boksstatistikker +DashboardDisableBlocks=Miniaturebilleder af åbne objekter (til at behandle eller sent) på det primære dashboard +DashboardDisableBlockAgenda=Deaktiver miniaturebilleder for dagsorden +DashboardDisableBlockProject=Deaktiver miniaturebilleder for projekter +DashboardDisableBlockCustomer=Deaktiver miniaturebilleder for kunder +DashboardDisableBlockSupplier=Deaktiver miniaturebilleder for leverandører +DashboardDisableBlockContract=Deaktiver miniaturebilleder for kontrakter +DashboardDisableBlockTicket=Deaktiver miniaturebilleder for billetter +DashboardDisableBlockBank=Deaktiver miniaturebilleder for banker +DashboardDisableBlockAdherent=Deaktiver miniaturebilleder for medlemskaber +DashboardDisableBlockExpenseReport=Deaktiver miniaturebilleder for udgiftsrapporter +DashboardDisableBlockHoliday=Deaktiver miniaturebilleder for fravær +EnabledCondition=Betingelse for at have felt aktiveret (hvis ikke aktiveret, vil synlighed altid være slået fra) IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en anden moms, skal du også aktivere den første moms IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en tredje moms, skal du også aktivere den første moms LanguageAndPresentation=Sprog og præsentation -SkinAndColors=Hud og farver +SkinAndColors=Skins og farver IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en anden moms, skal du også aktivere den første moms IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en tredje moms, skal du også aktivere den første moms PDF_USE_1A=Generer PDF med PDF/A-1b-format @@ -2240,26 +2278,80 @@ MissingTranslationForConfKey = Manglende oversættelse for %s NativeModules=Native moduler NoDeployedModulesFoundWithThisSearchCriteria=Ingen moduler fundet til disse søgekriterier API_DISABLE_COMPRESSION=Deaktiver komprimering af API-svar -EachTerminalHasItsOwnCounter=Hver terminal bruger sin egen tæller. -FillAndSaveAccountIdAndSecret=Udfyld og gem først konto-id og hemmeligkode +EachTerminalHasItsOwnCounter=Hver terminal bruger sin egen kasse. +FillAndSaveAccountIdAndSecret=Udfyld og gem først konto-id og hemmelighed PreviousHash=Tidligere hash LateWarningAfter="Sen" advarsel efter TemplateforBusinessCards=Skabelon til visitkort i forskellig størrelse InventorySetup= Lageropsætning ExportUseLowMemoryMode=Brug en tilstand med lav hukommelse -ExportUseLowMemoryModeHelp=Brug tilstanden med lav hukommelse til at udføre exec af dumpet (komprimering sker gennem et rør i stedet for ind i PHP-hukommelsen). Denne metode tillader ikke at kontrollere, at filen er fuldført, og fejlmeddelelsen kan ikke rapporteres, hvis den mislykkes. +ExportUseLowMemoryModeHelp=Brug tilstanden med lav hukommelse til at generere dump-filen (komprimering sker gennem et rør i stedet for ind i PHP-hukommelsen). Denne metode tillader ikke at kontrollere, at filen er komplet, og fejlmeddelelsen kan ikke rapporteres, hvis den mislykkes. Brug det, hvis du oplever ikke nok hukommelsesfejl. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface til at fange dolibarr-udløsere og sende det til en URL +WebhookSetup = Webhook opsætning +Settings = Indstillinger +WebhookSetupPage = Webhook opsætningsside ShowQuickAddLink=Vis en knap for hurtigt at tilføje et element i menuen øverst til højre + HashForPing=Hash brugt til ping -ReadOnlyMode=Er instans i "Skrivebeskyttet"-tilstand -DEBUGBAR_USE_LOG_FILE=Brug filen dolibarr.log til at fange logfiler -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Brug filen dolibarr.log til at fange Logs i stedet for at fange live memory. Det giver mulighed for at fange alle logfiler i stedet for kun log af den aktuelle proces (så inklusive den af ajax underanmodningssider), men vil gøre din instans meget meget langsom. Ikke anbefalet. +ReadOnlyMode=Er instansen i "Skrivebeskyttet"-tilstand +DEBUGBAR_USE_LOG_FILE=Brug filen dolibarr.log til at samle logfiler +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Brug filen dolibarr.log til at samle Logs i stedet for at bruge memory. Det giver mulighed for at samle alle logfiler i stedet for kun log af den aktuelle proces (så inklusive den af ajax underanmodningssider), men vil gøre din instans meget meget langsom. Ikke anbefalet. FixedOrPercent=Fast (brug søgeord 'fast') eller procent (brug søgeord 'procent') -DefaultOpportunityStatus=Standardmulighedsstatus (første status, når kundeemne oprettes) +DefaultOpportunityStatus=Standard mulighedsstatus (første status, når kundeemne oprettes) + IconAndText=Ikon og tekst TextOnly=Kun tekst -IconOnlyAllTextsOnHover=Kun ikon - Alle tekster vises under ikonet på musehovedmenulinjen -IconOnlyTextOnHover=Kun ikon - Teksten til ikonet vises under ikonet, når du holder musen over ikonet -IconOnly=Kun ikon - Kun tekst på værktøjstip +IconOnlyAllTextsOnHover=Kun ikon - Alle tekster vises under ikonet når musen føres over menubaren +IconOnlyTextOnHover=Kun ikon - Teksten til ikonet vises under ikonet, når musen føres over ikonet +IconOnly=Kun ikon - Kun tekst som værktøjstip INVOICE_ADD_ZATCA_QR_CODE=Vis ZATCA QR-koden på fakturaer INVOICE_ADD_ZATCA_QR_CODEMore=Nogle arabiske lande har brug for denne QR-kode på deres fakturaer +INVOICE_ADD_SWISS_QR_CODE=Vis den schweiziske QR-Bill-kode på fakturaer +INVOICE_SHOW_SHIPPING_ADDRESS=Vis leveringsadresse +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligatorisk omtale for Frankrig UrlSocialNetworksDesc=URL-link til socialt netværk. Brug {socialid} til den variable del, der indeholder det sociale netværks-id. +IfThisCategoryIsChildOfAnother=Hvis denne kategori er en under kategori af en anden +DarkThemeMode=Mørkt tematilstand +AlwaysDisabled=Altid deaktiveret +AccordingToBrowser=Ifølge browser +AlwaysEnabled=Altid aktiveret +DoesNotWorkWithAllThemes=Fungerer ikke med alle temaer +NoName=Intet navn +ShowAdvancedOptions= Vis avancerede muligheder +HideAdvancedoptions= Skjul avancerede muligheder +CIDLookupURL=Modulet bringer en URL, der kan bruges af et eksternt værktøj til at hente navnet på en tredjepart eller kontakt fra dens telefonnummer. URL der skal bruges er: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 godkendelse er ikke tilgængelig for alle værter, og en token med de korrekte tilladelser skal være oprettet med OAUTH modulet. +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 godkendelsesservice +DontForgetCreateTokenOauthMod=En token med de korrekte tilladelser skal være oprettet med OAUTH modulet +MAIN_MAIL_SMTPS_AUTH_TYPE=Godkendelsesmetode +UsePassword=Brug en adgangskode +UseOauth=Brug en OAUTH token +Images=Billeder +MaxNumberOfImagesInGetPost=Maks. antal billeder tilladt i et HTML-felt indsendt i en formular +MaxNumberOfPostOnPublicPagesByIP=Max antal indlæg på offentlige sider med samme IP-adresse i en måned +CIDLookupURL=Modulet bringer en URL, der kan bruges af et eksternt værktøj til at hente navnet på en tredjepart eller kontakt fra dens telefonnummer. URL der skal bruges er: +ScriptIsEmpty=Scriptet er tomt +ShowHideTheNRequests=Vis/skjul %s SQL-anmodning(er) +DefinedAPathForAntivirusCommandIntoSetup=Definer en sti for et antivirusprogram til %s +TriggerCodes=Udløselige hændelser +TriggerCodeInfo=Indtast her triggerkoden(e), der skal generere et indlæg af en webanmodning (kun ekstern URL er tilladt). Du kan indtaste flere triggerkoder adskilt af et komma. +EditableWhenDraftOnly=Hvis det ikke er markeret, kan værdien kun ændres, når objektet har en kladdestatus +CssOnEdit=Css på redigeringssider +CssOnView=Css på visningssider +CssOnList=Css på listesider +HelpCssOnEditDesc=Den Css, der bruges ved redigering af feltet.
    Eksempel: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Den Css, der bruges, når du ser feltet. +HelpCssOnListDesc=Css'en, der bruges, når feltet er inde i en listetabel.
    Eksempel: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Skjul den bestilte mængde på de genererede dokumenter til receptioner +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Vis prisen på de genererede dokumenter til receptioner +WarningDisabled=Advarsel deaktiveret +LimitsAndMitigation=Adgangsgrænser og afbødning +DesktopsOnly=Kun på Computer +DesktopsAndSmartphones=Desktops og smartphones +AllowOnlineSign=Tillad online signering +AllowExternalDownload=Tillad ekstern download (uden login, ved hjælp af et delt link) +DeadlineDayVATSubmission=Deadline dag for momsindsendelse den næste måned +MaxNumberOfAttachementOnForms=Maks. antal sammenføjede filer i en formular +IfDefinedUseAValueBeetween=Hvis det er defineret, skal du bruge en værdi mellem %s og %s diff --git a/htdocs/langs/da_DK/agenda.lang b/htdocs/langs/da_DK/agenda.lang index a46930e3574..db7b35bfd4c 100644 --- a/htdocs/langs/da_DK/agenda.lang +++ b/htdocs/langs/da_DK/agenda.lang @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Medlem %s bekræftet MemberModifiedInDolibarr=Medlem %s ændret MemberResiliatedInDolibarr=Medlem %s afsluttet MemberDeletedInDolibarr=Medlem %s slettet +MemberExcludedInDolibarr=Medlem %s udelukket MemberSubscriptionAddedInDolibarr=Abonnement %s for medlem %s tilføjet MemberSubscriptionModifiedInDolibarr=Abonnement %s for medlem %s ændret MemberSubscriptionDeletedInDolibarr=Abonnement %s for medlem %s slettet @@ -67,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Forsendelse %s gå tilbage til udkast status ShipmentDeletedInDolibarr=Forsendelse %s slettet ShipmentCanceledInDolibarr=Forsendelse %s annulleret ReceptionValidatedInDolibarr=Modtagelse %s valideret +ReceptionDeletedInDolibarr=Modtagelse %s slettet ReceptionClassifyClosedInDolibarr=Receptionen %s klassificeret lukket OrderCreatedInDolibarr=Bestil %s oprettet OrderValidatedInDolibarr=Ordre %s bekræftet @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Vendor invoice %s sendt af email ShippingSentByEMail=Forsendelse %s sendt af email ShippingValidated= Forsendelse %s bekræftet InterventionSentByEMail=Intervention %s sendt af email +ProjectSentByEMail=Projekt %s sendt via e-mail ProposalDeleted=Forslag slettet OrderDeleted=Ordre slettet InvoiceDeleted=Faktura slettet @@ -159,6 +162,7 @@ DateActionBegin=Startdato for begivenhed ConfirmCloneEvent=Er du sikker på, du vil klone begivenheden %s? RepeatEvent=Begivenhed med gentagelse OnceOnly=kun Én gang +EveryDay=Hver dag EveryWeek=Hver uge EveryMonth=Hver måned DayOfMonth=Dag i måneden @@ -174,3 +178,4 @@ AddReminder=Opret en automatisk påmindelsesmeddelelse om denne begivenhed ErrorReminderActionCommCreation=Fejl ved oprettelse af påmindelsesmeddelelsen for denne begivenhed BrowserPush=Browser pop op meddelelse ActiveByDefault=Aktiveret som standard +Until=indtil diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang index 524731969e5..a364de13923 100644 --- a/htdocs/langs/da_DK/banks.lang +++ b/htdocs/langs/da_DK/banks.lang @@ -112,7 +112,7 @@ TransferDesc=Brug intern overførsel til at overføre fra en konto til en anden, TransferFrom=Fra TransferTo=Til TransferFromToDone=En overførsel fra %s til %s af %s %s er blevet optaget. -CheckTransmitter=Sender +CheckTransmitter=Afsender ValidateCheckReceipt=Bekræft denne kvitteringskvittering? ConfirmValidateCheckReceipt=Er du sikker på, at du vil indsende denne checkkvittering til validering? Ingen ændringer er mulige, når de er valideret. DeleteCheckReceipt=Slet denne kvittering for kvittering? diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index ac2f38a2d72..dbc3b09ee85 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Statistik for kundefakturaer BillsStatisticsSuppliers=Statistik for leverandørfakturaer DisabledBecauseDispatchedInBookkeeping=Deaktiveret, fordi fakturaen blev sendt til bogføring DisabledBecauseNotLastInvoice=Deaktiveret, fordi fakturaen ikke kan sletes. Nogle fakturaer blev registreret efter denne og det vil skabe huller i bogføringen. +DisabledBecauseNotLastSituationInvoice=Deaktiveret, fordi faktura ikke kan slettes. Denne faktura er ikke den sidste i situationens fakturacyklus. DisabledBecauseNotErasable=Deaktiveret, da sletning ikke er muligt InvoiceStandard=Standardfaktura InvoiceStandardAsk=Standardfaktura InvoiceStandardDesc=Denne type faktura benyttes som standard. +InvoiceStandardShort=Standard InvoiceDeposit=Afdrag InvoiceDepositAsk=Afdrag InvoiceDepositDesc=Denne type faktura benyttes, når der er modtaget et afdrag. @@ -24,6 +26,7 @@ InvoiceProForma=Proformafaktura InvoiceProFormaAsk=Proformafaktura InvoiceProFormaDesc=Proformafakturaen ligner en ægte faktura, men har ingen regnskabsmæssig værdi. InvoiceReplacement=Erstatningsfaktura. +InvoiceReplacementShort=Udskiftning InvoiceReplacementAsk=Erstatningsfaktura for faktura InvoiceReplacementDesc=Erstatningsfaktura bruges til at annullere og erstatte en faktura uden modtaget betaling .

    Bemærk! Kun fakturaer uden betaling på det kan erstattes. Hvis fakturaen du udskifter endnu ikke er lukket, lukkes den automatisk for at "forladt". InvoiceAvoir=Kreditnota @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne del eller ErrorInvoiceIsNotLastOfSameType=Fejl: Datoen for faktura %s er %s. Den skal være bagud eller lig med sidste dato for samme type fakturaer (%s). Skift venligst fakturadatoen. BillFrom=Fra BillTo=Til +ShippingTo=Sendes til ActionsOnBill=Handlinger for faktura RecurringInvoiceTemplate=Skabelon / tilbagevendende faktura NoQualifiedRecurringInvoiceTemplateFound=Ingen tilbagevendende fakturaskabelon er kvalificeret til generation. @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=De valgte betalingsbetingelse PaymentTypeVIR=Bankoverførsel PaymentTypeShortVIR=Bankoverførsel PaymentTypePRE=Betalingsordre med "Direkte debit" +PaymentTypePREdetails=(på konto *-%s) PaymentTypeShortPRE=Debit betalingsordre PaymentTypeLIQ=Kontanter PaymentTypeShortLIQ=Kontanter @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Betaling registreret og faktura %s indstill SendEmailsRemindersOnInvoiceDueDate=Send påmindelse på mail for ubetalte fakturaer MakePaymentAndClassifyPayed=Rekordbetaling BulkPaymentNotPossibleForInvoice=Massebetaling er ikke mulig for faktura %s (dårlig type eller status) +MentionVATDebitOptionIsOn=Mulighed for at betale skat baseret på debiteringer +MentionCategoryOfOperations=Kategori af operationer +MentionCategoryOfOperations0=Levering af varer +MentionCategoryOfOperations1=Levering af tjenester +MentionCategoryOfOperations2=Blandet - Levering af varer & levering af tjenester diff --git a/htdocs/langs/da_DK/bookmarks.lang b/htdocs/langs/da_DK/bookmarks.lang index 69ae5554c6d..f559b90c755 100644 --- a/htdocs/langs/da_DK/bookmarks.lang +++ b/htdocs/langs/da_DK/bookmarks.lang @@ -3,20 +3,21 @@ AddThisPageToBookmarks=Tilføj denne side til bogmærker Bookmark=Bogmærke Bookmarks=Bogmærker ListOfBookmarks=Liste over bogmærker -EditBookmarks=Vis / rediger bogmærker +EditBookmarks=Vis/rediger bogmærker NewBookmark=Nyt bogmærke ShowBookmark=Vis bogmærke -OpenANewWindow=Åben en ny fane -ReplaceWindow=Udskift nuværende fane +OpenANewWindow=Åbn i en ny fane +ReplaceWindow=Åben i nuværende fane BookmarkTargetNewWindowShort=Ny fane BookmarkTargetReplaceWindowShort=Nuværende fane BookmarkTitle=Bogmærke navn UrlOrLink=URL BehaviourOnClick=Adfærd ved klik på URL CreateBookmark=Opret bogmærke -SetHereATitleForLink=Sæt et navn for dette bogmærke +SetHereATitleForLink=Tildel et navn til bogmærket UseAnExternalHttpLinkOrRelativeDolibarrLink=Brug et eksternt/absolut link (https://externalurl.com) eller et internt/relativt link (/mypage.php). Du kan også bruge telefon som tel:0123456. -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Vælg om den tilknyttede side skal åbnes i den aktuelle fane eller en ny fane -BookmarksManagement=Bogmærker forvaltning +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Vælg om bogmærket skal åbne i denne fane eller en ny fane +BookmarksManagement=Bogmærke styring BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Ingen bogmærker defineret +NoBookmarkFound=Intet bogmærke fundet diff --git a/htdocs/langs/da_DK/boxes.lang b/htdocs/langs/da_DK/boxes.lang index d8e1da69fce..d2ca38da8a4 100644 --- a/htdocs/langs/da_DK/boxes.lang +++ b/htdocs/langs/da_DK/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Seneste medlemsabonnementer BoxFicheInter=Latest interventions BoxCurrentAccounts=Open accounts balance BoxTitleMemberNextBirthdays=Fødselsdage i denne måned (medlemmer) -BoxTitleMembersByType=Medlemmer efter type +BoxTitleMembersByType=Medlemmer efter type og status BoxTitleMembersSubscriptionsByYear=Medlemmer Abonnementer efter år BoxTitleLastRssInfos=Latest %s news from %s BoxTitleLastProducts=Produkter / tjenester: sidst %s ændret @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Leverandør ordrer afventer modtagelse BoxTitleLastModifiedContacts=Kontakter / Adresser: senest %s ændret BoxMyLastBookmarks=Bogmærker: seneste %s BoxOldestExpiredServices=Ældste aktive udløbne tjenester +BoxOldestActions=Ældste begivenheder at lave BoxLastExpiredServices=Latest %s oldest contacts with active expired services BoxTitleLastActionsToDo=Latest %s actions to do +BoxTitleOldestActionsToDo=Ældste %s hændelser at gøre, ikke afsluttet BoxTitleLastContracts=Seneste %s kontrakter, der blev ændret BoxTitleLastModifiedDonations=Seneste %s donationer, som blev ændret BoxTitleLastModifiedExpenses=Seneste %s udgiftsrapporter, der blev ændret @@ -82,7 +84,7 @@ BoxCustomersInvoicesPerMonth=Kundefakturaer pr. Måned BoxSuppliersInvoicesPerMonth=Leverandørfakturaer per måned BoxCustomersOrdersPerMonth=Salgsordrer pr. Måned BoxSuppliersOrdersPerMonth=Levenradør ordrer per måned -BoxProposalsPerMonth=Proposals per month +BoxProposalsPerMonth=Forslag pr. måned NoTooLowStockProducts=Ingen produkter er under den lave lagergrænse BoxProductDistribution=Produkter / Services Distribution ForObject=På %s @@ -96,7 +98,7 @@ BoxTitleLatestModifiedCandidatures=Seneste %s ændrede jobansøgninger ForCustomersInvoices=Kundernes fakturaer ForCustomersOrders=Customers orders ForProposals=Tilbud -LastXMonthRolling=The latest %s month rolling +LastXMonthRolling=Den seneste %s måned rullende ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Box blev tilføjet til dit instrumentbræt BoxTitleUserBirthdaysOfMonth=Fødselsdage i denne måned (brugere) diff --git a/htdocs/langs/da_DK/cashdesk.lang b/htdocs/langs/da_DK/cashdesk.lang index d47a023d3bd..252ef889d53 100644 --- a/htdocs/langs/da_DK/cashdesk.lang +++ b/htdocs/langs/da_DK/cashdesk.lang @@ -136,3 +136,4 @@ PrintWithoutDetails=Udskriv uden detaljer YearNotDefined=År er ikke defineret TakeposBarcodeRuleToInsertProduct=Stregkoderegel til at indsætte produkt TakeposBarcodeRuleToInsertProductDesc=Regel for at udtrække produktreferencen + en mængde fra en scannet stregkode.
    Hvis tom (standardværdi), vil applikationen bruge den fulde stregkode, der er scannet til at finde produktet.

    Hvis defineret, skal syntaks være:
    ref: NB + qu: NB + qd: NB + andre: NB
    hvor NB er antallet af tegn til at bruge til at udtrække data fra det scannede stregkode med:
    • ref : produkt henvisning
    • qu : mængde til sæt ved isætning item (enheder)
    • qd : mængde til sæt ved isætning punkt (decimaler)
    • andre : andre tegn
    +AlreadyPrinted=Allerede udskrevet diff --git a/htdocs/langs/da_DK/categories.lang b/htdocs/langs/da_DK/categories.lang index f0fb7cd4f5f..fa51311da75 100644 --- a/htdocs/langs/da_DK/categories.lang +++ b/htdocs/langs/da_DK/categories.lang @@ -3,7 +3,7 @@ Rubrique=Tag/Kategori Rubriques=Tags/Kategorier RubriquesTransactions=Tags/Kategorier af transaktioner categories=tags/kategorier -NoCategoryYet=Intet mærke / kategori af denne type er oprettet +NoCategoryYet=Der er ikke oprettet nogen tag/kategori af denne type In=I AddIn=Tilføj i modify=rette @@ -95,7 +95,9 @@ ShowCategory=Vis tag/kategori ByDefaultInList=Som standard i liste ChooseCategory=Vælg kategori StocksCategoriesArea=Lagerkategorier +TicketsCategoriesArea=Billetter kategorier ActionCommCategoriesArea=Begivenhedskategorier WebsitePagesCategoriesArea=Side-containerkategorier KnowledgemanagementsCategoriesArea=KM artikel Kategorier UseOrOperatorForCategories=Brug 'ELLER' operator til kategorier +AddObjectIntoCategory=Tilføj objekt til kategori diff --git a/htdocs/langs/da_DK/commercial.lang b/htdocs/langs/da_DK/commercial.lang index 30b4092a6bb..f21ebd3d946 100644 --- a/htdocs/langs/da_DK/commercial.lang +++ b/htdocs/langs/da_DK/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=Send forsendelse med posten ActionAC_SUP_ORD=Send indkøbsordre via post ActionAC_SUP_INV=Send sælgerfaktura pr. Post ActionAC_OTH=Andet -ActionAC_OTH_AUTO=Automatisk oprettede begivenheder +ActionAC_OTH_AUTO=Anden bil ActionAC_MANUAL=Manuelt oprettede begivenheder ActionAC_AUTO=Automatisk oprettede begivenheder -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Andre +ActionAC_EVENTORGANIZATION=Begivenheder til organisering af begivenheder Stats=Salgsstatistik StatusProsp=Status på tredjepart DraftPropals=Udkast for tilbud NoLimit=Ingen grænse ToOfferALinkForOnlineSignature=Link til online signatur -WelcomeOnOnlineSignaturePage=Velkommen til siden for at acceptere kommercielle forslag fra %s -ThisScreenAllowsYouToSignDocFrom=Denne skærm giver dig mulighed for at acceptere og underskrive eller nægte et tilbud / kommercielt forslag -ThisIsInformationOnDocumentToSign=Dette er oplysninger om dokumentet for at acceptere eller afvise +WelcomeOnOnlineSignaturePageProposal=Velkommen til siden for at acceptere kommercielle forslag fra %s +WelcomeOnOnlineSignaturePageContract=Velkommen til %s kontrakt PDF-signeringsside +WelcomeOnOnlineSignaturePageFichinter=Velkommen til %s Intervention PDF-signeringsside +ThisScreenAllowsYouToSignDocFromProposal=Denne skærm giver dig mulighed for at acceptere og underskrive eller afvise et tilbud/kommercielt forslag +ThisScreenAllowsYouToSignDocFromContract=Denne skærm giver dig mulighed for at underskrive kontrakt i PDF-format online. +ThisScreenAllowsYouToSignDocFromFichinter=Denne skærm giver dig mulighed for at underskrive intervention i PDF-format online. +ThisIsInformationOnDocumentToSignProposal=Dette er information på dokument, der skal accepteres eller afvises +ThisIsInformationOnDocumentToSignContract=Dette er oplysninger om kontrakten, der skal underskrives +ThisIsInformationOnDocumentToSignFichinter=Dette er information om indgreb, der skal underskrives SignatureProposalRef=Underskrift af tilbud / kommercielt forslag %s +SignatureContractRef=Underskrift af kontrakt %s +SignatureFichinterRef=Underskrift af intervention %s FeatureOnlineSignDisabled=Funktion til online-signering deaktiveret eller dokument genereret, før funktionen blev aktiveret diff --git a/htdocs/langs/da_DK/companies.lang b/htdocs/langs/da_DK/companies.lang index 3d947d58d34..eaa7b8ee001 100644 --- a/htdocs/langs/da_DK/companies.lang +++ b/htdocs/langs/da_DK/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Tredjepartens art NatureOfContact=Kontaktens art Address=Adresse State=Stat/provins +StateId=Stats kode StateCode=Stats-/provinskode StateShort=Stat Region=Region Region-State=Region - Stat Country=Land CountryCode=Landekode -CountryId=Lande-id +CountryId=Lande kode Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -94,7 +95,7 @@ OverAllOrders=Ordrer OverAllInvoices=Fakturaer OverAllSupplierProposals=Prisforespørgsler ##### Local Taxes ##### -LocalTax1IsUsed=Brug anden skat +LocalTax1IsUsed=Brug sekundær skat LocalTax1IsUsedES= RE anvendes LocalTax1IsNotUsedES= RE anvendes ikke LocalTax2IsUsed=Brug tredje skat @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (handelsregister) ProfId2CM=Id. prof. 2 (skatteyder nr.) -ProfId3CM=Id. prof. 3 (oprettelsesdekret) -ProfId4CM=Id. prof. 4 (indskudsbevis) +ProfId3CM=Id. prof. 3 (Nr. på oprettelsesdekret) +ProfId4CM=Id. prof. 4 (Indbetalingsbevis nr.) ProfId5CM=Id. prof. 5 (andre) ProfId6CM=- ProfId1ShortCM=Handelsregister ProfId2ShortCM=Skatteyder nr. -ProfId3ShortCM=Dekret om oprettelse -ProfId4ShortCM=Indskudsbevis +ProfId3ShortCM=Nr. på oprettelsesdekret +ProfId4ShortCM=Indskudsbevis nr. ProfId5ShortCM=Andre ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) @@ -312,11 +313,11 @@ CustomerAbsoluteDiscountShort=Absolut rabat CompanyHasRelativeDiscount=Denne kunde har en standardrabat på %s%% CompanyHasNoRelativeDiscount=Denne kunde har som standard ingen rabat HasRelativeDiscountFromSupplier=Du har en standardrabat på %s%% fra denne leverandør -HasNoRelativeDiscountFromSupplier=Du har ingen standard rabat fra denne leverandør +HasNoRelativeDiscountFromSupplier=Ingen standard relativ rabat fra denne leverandør CompanyHasAbsoluteDiscount=Denne kunde har tilgodehavender (kreditnotaer eller forudbetalinger) for %s %s CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har tilgængelige rabatter (kommercielle, forudbetalinger) for %s %s CompanyHasCreditNote=Denne kunde har stadig kreditnotaer for %s %s -HasNoAbsoluteDiscountFromSupplier=Du har ingen rabat tilgængelig fra denne sælger +HasNoAbsoluteDiscountFromSupplier=Ingen rabat/kredit tilgængelig fra denne leverandør HasAbsoluteDiscountFromSupplier=Du har tilgængelige rabatter (kreditnotaer eller forudbetalinger) for %s %s fra denne leverandør HasDownPaymentOrCommercialDiscountFromSupplier=Du har tilgængelige rabatter (kommercielle, forudbetalinger) for %s %s fra denne leverandør HasCreditNoteFromSupplier=Du har kreditnotaer for %s %s fra denne leverandør @@ -443,7 +444,7 @@ AddAddress=Tilføj adresse SupplierCategory=Leverandør kategori JuridicalStatus200=Uafhængig DeleteFile=Slet fil -ConfirmDeleteFile=Er du sikker på du vil slette denne fil? +ConfirmDeleteFile=Er du sikker på, at du vil slette denne fil %s ? AllocateCommercial=Tildelt til en salgsrepræsentant Organization=Organisationen FiscalYearInformation=Regnskabsår @@ -497,3 +498,5 @@ RestOfEurope=Resten af Europa (EØF) OutOfEurope=Uden for Europa (EØF) CurrentOutstandingBillLate=Aktuel udestående regninger i restance BecarefullChangeThirdpartyBeforeAddProductToInvoice=Vær forsigtig, afhængigt af dine produkt prisindstillinger bør du ændre tredjepart, før du tilføjer produkt til POS. +EmailAlreadyExistsPleaseRewriteYourCompanyName=e-mail eksisterer allerede, skriv venligst dit firmanavn +TwoRecordsOfCompanyName=der findes mere end én registrering for denne virksomhed, kontakt os venligst for at fuldføre din partnerskabsanmodning" diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang index 4aea7252db8..d1b894d0ed3 100644 --- a/htdocs/langs/da_DK/compta.lang +++ b/htdocs/langs/da_DK/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (før) Balance=Balance Debit=Debet Credit=Kredit +AccountingDebit=Debet +AccountingCredit=Kredit Piece=Regnskabsdokumenter. AmountHTVATRealReceived=Netto modtaget AmountHTVATRealPaid=Netto udbetalt @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Rapporten om omsætning inds TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Rapporten om omsætning indsamlet pr. Salgsskattesats er ikke tilgængelig. Denne rapport er kun tilgængelig for omsætning faktureret. CalculationMode=Udregningsmåde AccountancyJournal=Regnskabskladde -ACCOUNTING_VAT_SOLD_ACCOUNT=Regnskabskonto som standard for moms på salg (brugt hvis ikke defineret i momsordbog opsætning) -ACCOUNTING_VAT_BUY_ACCOUNT=Startdart regnskabskonto for moms ved køb (Bliver brugt, hvis det ikke er defineret i moms opsætning) -ACCOUNTING_VAT_PAY_ACCOUNT=Regnskabskonto som standard for betaling af moms -ACCOUNTING_ACCOUNT_CUSTOMER=Regnskabskonto anvendt til kundens tredjepart +ACCOUNTING_VAT_SOLD_ACCOUNT=Konto (fra kontoplanen) skal bruges som standardkonto for moms ved salg (bruges, hvis det ikke er defineret i opsætning af momsordbog) +ACCOUNTING_VAT_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for moms på køb (bruges, hvis det ikke er defineret i opsætning af momsordbog) +ACCOUNTING_VAT_PAY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto til betaling af moms +ACCOUNTING_ACCOUNT_CUSTOMER=Konto (fra kontoplanen) brugt til "kunde" tredjeparter ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Den dedikerede regnskabskonto, der er defineret på tredjepartskort, anvendes kun til underkonto. Denne vil blive brugt til bogføring og som standardværdi af underkontos regnskab, hvis dedikeret kundekonto på tredjepart ikke er defineret. -ACCOUNTING_ACCOUNT_SUPPLIER=Regnskabskonto anvendt til leverandør tredjepart +ACCOUNTING_ACCOUNT_SUPPLIER=Konto (fra kontoplanen) brugt til "leverandørens" tredjeparter ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Den dedikerede regnskabskonto, der er defineret på tredjepartskort, vil kun blive anvendt til kassekladden. Denne vil blive brugt til regnskabet og som standardværdi i bogholderi regnskabet, hvis dedikeret leverandør regnskabskonto på tredjepart ikke er defineret. ConfirmCloneTax=Bekræft klonen af ​​en social / skattemæssig afgift ConfirmCloneVAT=Bekræft klonen på en momsangivelse @@ -300,3 +302,4 @@ InvoiceToPay15Days=At betale (15 til 30 dage) InvoiceToPay30Days=At betale (> 30 dage) ConfirmPreselectAccount=Forudvælg regnskabskode ConfirmPreselectAccountQuestion=Er du sikker på, at du vil forudvælge de %s valgte linjer med denne regnskabskode? +AmountPaidMustMatchAmountOfDownPayment=Det indbetalte beløb skal svare til udbetalingsbeløbet diff --git a/htdocs/langs/da_DK/contracts.lang b/htdocs/langs/da_DK/contracts.lang index bd9ebcfaa5c..62d97e4028f 100644 --- a/htdocs/langs/da_DK/contracts.lang +++ b/htdocs/langs/da_DK/contracts.lang @@ -2,46 +2,47 @@ ContractsArea=Kontrakter område ListOfContracts=Liste over kontrakter AllContracts=Alle kontrakter -ContractCard=Kontrakt-kortet -ContractStatusNotRunning=Ikke kører +ContractCard=Kontrakt kort +ContractStatusNotRunning=Stoppet ContractStatusDraft=Udkast ContractStatusValidated=Bekræftet ContractStatusClosed=Lukket -ServiceStatusInitial=Ikke kører -ServiceStatusRunning=Kørsel -ServiceStatusNotLate=Kører, ikke er udløbet +ServiceStatusInitial=Stoppet +ServiceStatusRunning=Aktiv +ServiceStatusNotLate=Aktiv, ikke er udløbet ServiceStatusNotLateShort=Ikke er udløbet -ServiceStatusLate=Kører, er udløbet +ServiceStatusLate=Aktiv, er udløbet ServiceStatusLateShort=Udløbet ServiceStatusClosed=Lukket -ShowContractOfService=Show contract of service +ShowContractOfService=Vis service kontrakt Contracts=Kontrakter -ContractsSubscriptions=Contracts/Subscriptions -ContractsAndLine=Contracts and line of contracts +ContractsSubscriptions=Kontrakter +ContractsAndLine=Kontrakter og kontrakt linjer Contract=Kontrakt -ContractLine=Contract line -Closing=Closing +ContractLine=Kontrakt linje +ContractLines=Kontraktlinjer +Closing=Lukning NoContracts=Ingen kontrakter -MenuServices=Services +MenuServices=Tjenester MenuInactiveServices=Tjenester, der ikke er aktive MenuRunningServices=Kørsel tjenester MenuExpiredServices=Udløbet tjenester MenuClosedServices=Lukket tjenester NewContract=Ny kontrakt NewContractSubscription=Ny kontrakt eller abonnement -AddContract=Create contract +AddContract=Opret kontrakt DeleteAContract=Slet en kontrakt ActivateAllOnContract=Aktivér alle tjenester CloseAContract=Luk en kontrakt -ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmActivateAllOnContract=Dette åbner alle tjenester (endnu ikke aktiv). Er du sikker på at du vil åbne alle tjenester? +ConfirmDeleteAContract=Er du sikker på, at du vil slette denne kontrakt og alle dens tjenester? +ConfirmValidateContract=Er du sikker på, at du vil validere denne kontrakt under navnet %s ? +ConfirmActivateAllOnContract=Dette vil åbne alle tjenester (endnu ikke aktive). Er du sikker på, at du vil åbne alle tjenester? ConfirmCloseContract=Dette lukker alle tjenester (udløbet eller ej). Er du sikker på, at du vil lukke denne kontrakt? -ConfirmCloseService=Are you sure you want to close this service with date %s? +ConfirmCloseService=Er du sikker på, at du vil lukke denne tjeneste med dato %s ? ValidateAContract=Bekræfte en kontrakt ActivateService=Aktivér service ConfirmActivateService=Are you sure you want to activate this service with date %s? -RefContract=Contract reference +RefContract=Kontrakt reference DateContract=Kontrakt dato DateServiceActivate=Forkyndelsesdato aktivering ListOfServices=Liste over tjenesteydelser @@ -52,8 +53,8 @@ ListOfRunningServices=Liste over kører tjenester NotActivatedServices=Ikke aktiverede tjenester (blandt bekræftet kontrakter) BoardNotActivatedServices=Tjenester for at aktivere blandt bekræftet kontrakter BoardNotActivatedServicesShort=Tjenester, der skal aktiveres -LastContracts=Latest %s contracts -LastModifiedServices=Latest %s modified services +LastContracts=Seneste %s kontrakter +LastModifiedServices=Seneste %s ændrede tjenester ContractStartDate=Startdato ContractEndDate=Slutdato DateStartPlanned=Planlagt startdato @@ -76,18 +77,18 @@ ActivateAllContracts=Aktivér alle kontrakt linjer CloseAllContracts=Luk alle kontrakter DeleteContractLine=Slet en kontrakt linje ConfirmDeleteContractLine=Are you sure you want to delete this contract line? -MoveToAnotherContract=Flyt tjeneste i en anden kontrakt. +MoveToAnotherContract=Flyt tjeneste til en anden kontrakt. ConfirmMoveToAnotherContract=Jeg choosed nyt mål kontrakt og bekræfte, jeg ønsker at flytte denne tjeneste i denne kontrakt. -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Forny kontrakten linje (antal %s) +ConfirmMoveToAnotherContractQuestion=Vælg i hvilken eksisterende kontrakt (fra samme tredjepart), du vil flytte denne service til? +PaymentRenewContractId=Forny kontrakt %s (service %s) ExpiredSince=Udløbsdatoen NoExpiredServices=Ingen udløbne aktive tjenester -ListOfServicesToExpireWithDuration=List of Services to expire in %s days -ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days -ListOfServicesToExpire=List of Services to expire -NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative. -StandardContractsTemplate=Standard contracts template -ContactNameAndSignature=For %s, name and signature: +ListOfServicesToExpireWithDuration=Liste over tjenester, der udløber om %s dage +ListOfServicesToExpireWithDurationNeg=Liste over tjenester er udløbet efter mere end %s dage +ListOfServicesToExpire=Liste over tjenester, der udløber +NoteListOfYourExpiredServices=Denne liste indeholder kun tjenester af kontrakter for tredjeparter, du er knyttet til som salgsrepræsentant. +StandardContractsTemplate=Skabelon for standard kontrakter +ContactNameAndSignature=For %s, navn og signatur: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. ConfirmCloneContract=Er du sikker på at du vil klone kontrakten %s ? LowerDateEndPlannedShort=Lavere planlagt slutdato for aktive tjenester @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Undertegnelse kontrakt kunde kontakt HideClosedServiceByDefault=Skjul lukkede tjenester som standard ShowClosedServices=Vis lukkede tjenester HideClosedServices=Skjul lukkede tjenester +UserStartingService=Bruger start service +UserClosingService=Brugerlukningstjeneste diff --git a/htdocs/langs/da_DK/cron.lang b/htdocs/langs/da_DK/cron.lang index 2be612cb99e..2229d0e6860 100644 --- a/htdocs/langs/da_DK/cron.lang +++ b/htdocs/langs/da_DK/cron.lang @@ -11,7 +11,7 @@ URLToLaunchCronJobs=URL til at kontrollere og starte kvalificerede cron-job fra OrToLaunchASpecificJob=Eller for at kontrollere og starte et bestemt job fra en browser KeyForCronAccess=Security key for URL to launch cron jobs FileToLaunchCronJobs=Kommandolinje for at kontrollere og starte kvalificerede cron-job -CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes +CronExplainHowToRunUnix=På Unix systemer skal du bruge den følgende crontab instilling for at afvikle kommandolinien hvert 5 minut CronExplainHowToRunWin=På Microsoft (tm) Windows-miljø kan du bruge Scheduled Task-værktøjer til at køre kommandolinjen hvert 5. minut CronMethodDoesNotExists=Class %s does not contains any method %s CronMethodNotAllowed=Metode %s af klasse %s er i sortliste over forbudte metoder @@ -26,7 +26,7 @@ CronCommand=Command CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Start nu CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job @@ -58,8 +58,8 @@ CronNote=Kommentar CronFieldMandatory=Fields %s is mandatory CronErrEndDateStartDt=End date cannot be before start date StatusAtInstall=Status ved modul installation -CronStatusActiveBtn=Tidsplan -CronStatusInactiveBtn=Deaktivere +CronStatusActiveBtn=Aktiver planlægning +CronStatusInactiveBtn=Deaktiver CronTaskInactive=Dette job er deaktiveret (ikke planlagt) CronId=Id CronClassFile=Filename with class @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Gå til menuen "Hjem - Administrati JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Opret en lokal database dump. Parametre er: komprimering ('gz' eller 'bz' eller 'ingen'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' eller filnavn til opbygning, antal backupfiler +MakeSendLocalDatabaseDumpShort=Send backup af lokal database +MakeSendLocalDatabaseDump=Send lokal database backup via e-mail. Parametre er: til, fra, emne, besked, filnavn (navn på fil sendt), filter ('sql' kun til backup af database) +BackupIsTooLargeSend=Beklager, sidste backup-fil er for stor til at kunne sendes via e-mail +CleanUnfinishedCronjobShort=Rens ufærdige cronjob +CleanUnfinishedCronjob=Ren cronjob sidder fast i behandlingen, når processen ikke længere kører WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Datarenser og anonymizer JobXMustBeEnabled=Job %s skal være aktiveret +EmailIfError=E-mail for advarsel om fejl +ErrorInBatch=Fejl ved kørsel af jobbet %s + # Cron Boxes LastExecutedScheduledJob=Sidste udførte planlagte job NextScheduledJobExecute=Næste planlagte job, der skal udføres NumberScheduledJobError=Antal planlagte job med fejl +NumberScheduledJobNeverFinished=Antal planlagte job, der aldrig blev afsluttet diff --git a/htdocs/langs/da_DK/datapolicy.lang b/htdocs/langs/da_DK/datapolicy.lang new file mode 100644 index 00000000000..32196dd32c1 --- /dev/null +++ b/htdocs/langs/da_DK/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Databeskyttelsespolitik +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul til at administrere databeskyttelse (overensstemmelse med GDPR) + +# +# Administration page +# +datapolicySetup = Opsætning af moduldatabeskyttelsespolitik +Deletion = Sletning af data +datapolicySetupPage = Afhængigt af lovene i dine lande (eksempel artikel 5 i GDPR), skal personoplysninger opbevares i en periode, der ikke overstiger det, der er nødvendigt for de formål, hvortil de blev indsamlet, undtagen til arkivformål.
    Sletningen vil ske automatisk efter en vis varighed uden begivenhed (den varighed, som du vil have angivet nedenfor). +NB_MONTHS = %s måneder +ONE_YEAR = 1 år +NB_YEARS = %s års +DATAPOLICY_TIERS_CLIENT = Kunde +DATAPOLICY_TIERS_PROSPECT = Kundeemne +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospekt/kunde +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Heller kunde/kunde +DATAPOLICY_TIERS_FOURNISSEUR = Leverandør +DATAPOLICY_CONTACT_CLIENT = Kunde +DATAPOLICY_CONTACT_PROSPECT = Kundeemne +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Kundeemne/kunde +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Heller kunde/kunde +DATAPOLICY_CONTACT_FOURNISSEUR = Leverandør +DATAPOLICY_ADHERENT = Medlem +DATAPOLICY_Tooltip_SETUP = Kontakttype - Angiv dine valg for hver type. +DATAPOLICYMail = Opsætning af e-mails +DATAPOLICYSUBJECTMAIL = Emne for e-mail +DATAPOLICYCONTENTMAIL = Indholdet af e-mailen +DATAPOLICYSUBSITUTION = Du kan bruge følgende variabler i din e-mail (LINKACCEPT giver mulighed for at oprette et link, der registrerer personens aftale, LINKREFUSED gør det muligt at registrere personens afslag): +DATAPOLICYACCEPT = Meddelelse efter aftale +DATAPOLICYREFUSE = Besked efter uenighed +SendAgreementText = Du kan sende en GDPR-e-mail til alle dine relevante kontakter (som endnu ikke har modtaget en e-mail, og som du ikke har registreret noget om deres GDPR-aftale for). For at gøre dette skal du bruge følgende knap. +SendAgreement = Send emails +AllAgreementSend = Alle e-mails er blevet sendt +TXTLINKDATAPOLICYACCEPT = Tekst til linket "aftale" +TXTLINKDATAPOLICYREFUSE = Tekst til linket "uenighed" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: Behandling af personoplysninger +DATAPOLICY_consentement = Indhentet samtykke til behandling af personoplysninger +DATAPOLICY_opposition_traitement = Modsætter sig behandlingen af hans personoplysninger +DATAPOLICY_opposition_prospection = Modsætter sig behandlingen af hans personoplysninger med henblik på efterforskning + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymiser en tredjepart +DATAPOLICY_POPUP_ANONYME_TEXTE = Du kan ikke slette denne kontakt fra Dolibarr, fordi der er relaterede emner. I overensstemmelse med GDPR vil du gøre alle disse data anonyme for at respektere dine forpligtelser. Vil du fortsætte? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilitet GDPR +DATAPOLICY_PORTABILITE_TITLE = Eksport af personlige data +DATAPOLICY_PORTABILITE_CONFIRMATION = Du ønsker at eksportere denne kontakts personlige data. Er du sikker ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymiseret %s + +# V2 +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_date = Dato for aftale/uenighed GDPR +DATAPOLICY_send = Dato for afsendelse af aftale-e-mail +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_SEND = Send GDPR-e-mail +MailSent = Emailen er sendt + +# ERROR +ErrorSubjectIsRequired = Fejl: Emnet for e-mail er påkrævet. Angiv det i modulopsætningen +=På grund af et teknisk problem kunne vi ikke registrere dit valg. Det beklager vi. Kontakt os for at sende os dit valg. +NUMBER_MONTH_BEFORE_DELETION = Antal måneder før sletning diff --git a/htdocs/langs/da_DK/deliveries.lang b/htdocs/langs/da_DK/deliveries.lang index f5bb5bc9ae1..8c0b00db4b6 100644 --- a/htdocs/langs/da_DK/deliveries.lang +++ b/htdocs/langs/da_DK/deliveries.lang @@ -22,7 +22,7 @@ NameAndSignature=Navn og underskrift: ToAndDate=Til___________________________________ om ____ / _____ / __________ GoodStatusDeclaration=Har modtaget varerne over i god stand, Deliverer=Befrier: -Sender=Sender +Sender=Afsender Recipient=Modtager ErrorStockIsNotEnough=Der er ikke nok lager Shippable=Fragtvarer diff --git a/htdocs/langs/da_DK/dict.lang b/htdocs/langs/da_DK/dict.lang index 94b4c8d49fe..524f307efc5 100644 --- a/htdocs/langs/da_DK/dict.lang +++ b/htdocs/langs/da_DK/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs +CivilityMMEShort=Mrs CivilityMR=Mr. +CivilityMRShort=Mr. CivilityMLE=Ms CivilityMTRE=Mester CivilityDR=Doctor diff --git a/htdocs/langs/da_DK/ecm.lang b/htdocs/langs/da_DK/ecm.lang index de4857728d0..aadd50b447c 100644 --- a/htdocs/langs/da_DK/ecm.lang +++ b/htdocs/langs/da_DK/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manual bibliotek ECMSectionAuto=Automatisk bibliotek ECMSectionsManual=Manual abonnentfortegnelser ECMSectionsAuto=Automatisk abonnentfortegnelser +ECMSectionsMedias=Medias træ ECMSections=Abonnentfortegnelser ECMRoot=ECM Root ECMNewSection=Ny mappe @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Number of files in sub-directories ECMCreationUser=Creator ECMArea=DMS / ECM område ECMAreaDesc=DMS / ECM (Document Management System / Electronic Content Management) -området giver dig mulighed for at gemme, dele og søge hurtigt alle slags dokumenter i Dolibarr. -ECMAreaDesc2=* Automatisk abonnentfortegnelser fyldes automatisk, når tilføjelse af dokumenter fra kort af et element.
    * Manual mapper kan bruges til at gemme dokumenter, der ikke er knyttet til et bestemt element. +ECMAreaDesc2a=* Manual mapper kan bruges til at gemme dokumenter, der ikke er knyttet til et bestemt element. +ECMAreaDesc2b=* Automatiske mapper udfyldes automatisk, når du tilføjer dokumenter fra siden af et element. +ECMAreaDesc3=* Medias mapper er filer i underbiblioteket /medias i dokumentbiblioteket, læsbare af alle uden behov for at blive logget og uden behov for at få filen delt eksplicit. Det bruges til at gemme billedfiler fra e-mail eller webstedsmodul. ECMSectionWasRemoved=Directory %s er blevet slettet. ECMSectionWasCreated=Katalog %s er blevet oprettet. ECMSearchByKeywords=Søg på nøgleord diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang index f290ed2774a..10c3d0f830b 100644 --- a/htdocs/langs/da_DK/errors.lang +++ b/htdocs/langs/da_DK/errors.lang @@ -3,7 +3,7 @@ # No errors NoErrorCommitIsDone=Ingen fejl, vi begår # Errors -ErrorButCommitIsDone=Errors found but we validate despite this +ErrorButCommitIsDone=Fejl fundet, men vi validerer til trods ErrorBadEMail=E-mail %s er forkert ErrorBadMXDomain=E-mail %s synes forkert (domæne har ingen gyldig MX-post) ErrorBadUrl=Url %s er forkert @@ -13,209 +13,212 @@ ErrorTitleAlreadyExists=Titel %s findes allerede. ErrorLoginAlreadyExists=Log ind %s eksisterer allerede. ErrorGroupAlreadyExists=Gruppe %s eksisterer allerede. ErrorEmailAlreadyExists=E-mail %s findes allerede. -ErrorRecordNotFound=Optag ikke fundet. -ErrorFailToCopyFile=Kunne ikke kopiere filen "%s" til "%s". -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. -ErrorFailToRenameFile=Kunne ikke omdøbe filen '%s' til '%s'. -ErrorFailToDeleteFile=Det lykkedes ikke at fjerne filen ' %s'. -ErrorFailToCreateFile=Kunne ikke oprette filen ' %s'. -ErrorFailToRenameDir=Kunne ikke omdøbe mappe ' %s' i' %s'. -ErrorFailToCreateDir=Kunne ikke oprette mappen ' %s'. -ErrorFailToDeleteDir=Det lykkedes ikke at slette mappen ' %s'. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorRecordNotFound=Post ikke fundet. +ErrorRecordNotFoundShort=Ikke fundet +ErrorFailToCopyFile=Kunne ikke kopiere filen '%s' til '%s'. +ErrorFailToCopyDir=Kunne ikke kopiere mappen '%s' til '%s'. +ErrorFailToRenameFile=Kunne ikke omdøbe filen '%s' til '%s'. +ErrorFailToDeleteFile=Det lykkedes ikke at fjerne filen '%s'. +ErrorFailToCreateFile=Kunne ikke oprette filen '%s'. +ErrorFailToRenameDir=Kunne ikke omdøbe mappen '%s' til '%s'. +ErrorFailToCreateDir=Kunne ikke oprette mappen '%s'. +ErrorFailToDeleteDir=Det lykkedes ikke at slette mappen '%s'. +ErrorFailToMakeReplacementInto=Det lykkedes ikke at foretage erstatning i filen '%s'. +ErrorFailToGenerateFile=Oprettelse af filen '%s' mislykkedes. ErrorThisContactIsAlreadyDefinedAsThisType=Denne kontaktperson er allerede defineret som kontaktperson for denne type. -ErrorCashAccountAcceptsOnlyCashMoney=Denne bankkonto er et kontant-konto, så det accepterer betaling af type cash only. -ErrorFromToAccountsMustDiffers=Kilde og mål bankkonti skal være anderledes. -ErrorBadThirdPartyName=Dårlig værdi for tredjeparts navn +ErrorCashAccountAcceptsOnlyCashMoney=Denne bankkonto er en kontant-konto, så den accepterer kun betaling af typen kontant. +ErrorFromToAccountsMustDiffers=Fra og til bankkonti skal være forskellige. +ErrorBadThirdPartyName=Forkert værdi for tredjeparts navn ForbiddenBySetupRules=Forbudt ifølge opsætnings regler -ErrorProdIdIsMandatory=The %s is mandatory +ErrorProdIdIsMandatory= %s er obligatorisk ErrorAccountancyCodeCustomerIsMandatory=Regnskabskoden for kunden %s er obligatorisk -ErrorBadCustomerCodeSyntax=Bad syntaks for kunde-kode -ErrorBadBarCodeSyntax=Dårlig syntaks til stregkode. Måske angiver du en dårlig stregkodetype, eller definerer du en stregkodemaske til nummerering, der ikke svarer til den scannede værdi. +ErrorBadCustomerCodeSyntax=Forkert syntaks for kunde-kode +ErrorBadBarCodeSyntax=Forkert syntaks til stregkode. Måske angiver du en forkert stregkodetype, eller har defineret en stregkodemaske til nummerering, der ikke svarer til den scannede værdi. ErrorCustomerCodeRequired=Kundekode kræves ErrorBarCodeRequired=Stregkode påkrævet ErrorCustomerCodeAlreadyUsed=Kundekoden anvendes allerede ErrorBarCodeAlreadyUsed=Stregkode allerede brugt ErrorPrefixRequired=Prefix kræves -ErrorBadSupplierCodeSyntax=Dårlig syntax for leverandør kode +ErrorBadSupplierCodeSyntax=Forkert syntax for leverandør kode ErrorSupplierCodeRequired=Leverandørkode kræves ErrorSupplierCodeAlreadyUsed=Leverandørkode allerede brugt -ErrorBadParameters=Bad parametre +ErrorBadParameters=Forkerte parametre ErrorWrongParameters=Forkerte eller manglende parametre -ErrorBadValueForParameter=Wrong value '%s' for parameter '%s' -ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format) +ErrorBadValueForParameter=Forkert værdi '%s' for parameter '%s' +ErrorBadImageFormat=Billedfilen har ikke et understøttet format (Din PHP understøtter ikke konvertering af billeder med dette format) ErrorBadDateFormat=Værdi '%s' har forkert datoformat -ErrorWrongDate=Date is not correct! +ErrorWrongDate=Dato er forkert! ErrorFailedToWriteInDir=Det lykkedes ikke at skrive i mappen %s -ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Fundet forkerte e-mail-syntaks for %s linjer i filen (f.eks line %s med email= %s) +ErrorFailedToBuildArchive=Kunne ikke bygge arkivfilen %s +ErrorFoundBadEmailInFile=Fundet forkerte e-mail syntaks for %s linjer i filen (f.eks. linje %s med email=%s) ErrorUserCannotBeDelete=Bruger kan ikke slettes. Måske er det forbundet med Dolibarr enheder. ErrorFieldsRequired=Nogle obligatoriske felter er efterladt tomme. ErrorSubjectIsRequired=E-mail-emnet er påkrævet -ErrorFailedToCreateDir=Det lykkedes ikke at oprette en mappe. Kontroller, at web-serveren bruger har tilladelse til at skrive i Dolibarr dokumenter bibliotek. Hvis parameter safe_mode er aktiveret på dette PHP, kontrollere, at Dolibarr php filer ejer til web-serveren bruger (eller gruppe). +ErrorFailedToCreateDir=Det lykkedes ikke at oprette en mappe. Kontroller, at web-server bruger har tilladelse til at skrive i Dolibarr dokument mappen. Hvis parameteren safe_mode er aktiveret i PHP, kontroller at Dolibarr php filer ejes af web-server bruger (eller gruppe). ErrorNoMailDefinedForThisUser=Ingen e-mail defineret for denne bruger ErrorSetupOfEmailsNotComplete=Opsætningen af e-mails er ikke afsluttet -ErrorFeatureNeedJavascript=Denne funktion kræver, at javascript aktiveres for at fungere. Skift dette i setup - display. -ErrorTopMenuMustHaveAParentWithId0=En menu af type 'Top' kan ikke have en forælder menuen. Sæt 0 i moderselskabet menu eller vælge en menu af typen »Venstre«. +ErrorFeatureNeedJavascript=Denne funktion kræver, at javascript aktiveres for at fungere. Skift dette i Opsætning - Udseende. +ErrorTopMenuMustHaveAParentWithId0=En menu af type 'Top' kan ikke have en moder menu. Angiv 0 i moder menu eller vælg en menu af typen »Venstre«. ErrorLeftMenuMustHaveAParentId=En menu af typen »Venstre« skal have en forælder id. -ErrorFileNotFound=Filen blev ikke fundet (Forkert sti, forkerte tilladelser eller adgang nægtet ved openbasedir parameter) -ErrorDirNotFound=Directory %s ikke fundet (Bad sti, forkerte rettigheder eller adgang nægtet af PHP openbasedir eller safe_mode parameter) -ErrorFunctionNotAvailableInPHP=Funktion %s er påkrævet for denne funktion, men er ikke tilgængelig i denne version / opsætning af PHP. +ErrorFileNotFound=Filen%s blev ikke fundet (Forkert sti, forkerte tilladelser eller adgang nægtet af PHP openbasedir eller safe_mode parameter) +ErrorDirNotFound=Mappen %s ikke fundet (Forkert sti, forkerte rettigheder eller adgang nægtet af PHP openbasedir eller safe_mode parameter) +ErrorFunctionNotAvailableInPHP=Funktionen %s er påkrævet for denne funktion, men er ikke tilgængelig i denne version/opsætning af PHP. ErrorDirAlreadyExists=En mappe med dette navn findes allerede. ErrorFileAlreadyExists=En fil med dette navn findes allerede. -ErrorDestinationAlreadyExists=En anden fil med navnet %s findes allerede. +ErrorDestinationAlreadyExists=En anden fil med navnet %s findes allerede. ErrorPartialFile=Fil ikke modtaget helt af serveren. -ErrorNoTmpDir=Midlertidig directy %s ikke eksisterer. -ErrorUploadBlockedByAddon=Upload blokeret af en PHP / Apache plugin. +ErrorNoTmpDir=Midlertidig mappe %s eksisterer ikke. +ErrorUploadBlockedByAddon=Upload blokeret af et PHP / Apache plugin. ErrorFileSizeTooLarge=Filstørrelsen er for stor, eller filen er ikke angivet. ErrorFieldTooLong=Feltet%s er for langt. -ErrorSizeTooLongForIntType=Størrelse for lang tid for int type (%s cifre maksimum) -ErrorSizeTooLongForVarcharType=Størrelse for lang tid for streng type (%s tegn maksimum) -ErrorNoValueForSelectType=Please fill value for select list -ErrorNoValueForCheckBoxType=Please fill value for checkbox list -ErrorNoValueForRadioType=Please fill value for radio list -ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value -ErrorFieldCanNotContainSpecialCharacters=Feltet %s må ikke indeholde specialtegn. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet %s må ikke indeholde specialtegn eller store bogstaver og må ikke indeholde kun tal. -ErrorFieldMustHaveXChar=Feltet %s skal have mindst %s tegn. +ErrorSizeTooLongForIntType=Størrelse for lang for typen heltal (%s cifre maksimum) +ErrorSizeTooLongForVarcharType=Størrelse for lang for typen streng (%s tegn maksimum) +ErrorNoValueForSelectType=Venligst udfyld værdi for valgte liste +ErrorNoValueForCheckBoxType=Venligst udfyld værdi for afkrydsnings listen +ErrorNoValueForRadioType=Venligst udfyld værdien for alternativ listen +ErrorBadFormatValueList=Værdien kan ikke have mere end et komma: %s, men skal have mindst et: key,value +ErrorFieldCanNotContainSpecialCharacters=Feltet %s må ikke indeholde specialtegn. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet %s må ikke indeholde specialtegn eller store bogstaver og skal starte med et alfabetisk tegn (a-z) +ErrorFieldMustHaveXChar=Feltet %s skal have mindst %s tegn. ErrorNoAccountancyModuleLoaded=Intet regnskabsmodul aktiveret -ErrorExportDuplicateProfil=This profile name already exists for this export set. -ErrorLDAPSetupNotComplete=Dolibarr-LDAP matchende er ikke komplet. -ErrorLDAPMakeManualTest=A. LDIF-fil er blevet genereret i mappen %s. Prøv at indlæse den manuelt fra kommandolinjen for at få flere informationer om fejl. +ErrorExportDuplicateProfil=Dette profilnavn eksisterer allerede i denne eksport samling. +ErrorLDAPSetupNotComplete=Dolibarr-LDAP match er ikke fuldført. +ErrorLDAPMakeManualTest=En .ldif-fil er blevet genereret i mappen %s. Prøv at indlæse den manuelt fra kommandolinjen for at få flere informationer om fejl. ErrorCantSaveADoneUserWithZeroPercentage=Kan ikke gemme en handling med "status ikke startet", hvis feltet "udført af" også er udfyldt. ErrorRefAlreadyExists=Reference %s findes allerede. -ErrorPleaseTypeBankTransactionReportName=Indtast venligst kontoudskriftsnavnet, hvor indgangen skal rapporteres (Format YYYYMM eller YYYYMMDD) -ErrorRecordHasChildren=Kunne ikke slette rekord, da det har nogle børneposter. +ErrorPleaseTypeBankTransactionReportName=Indtast venligst kontoudskriftsnavnet, hvor transactionen skal rapporteres (Format ÅÅÅÅMM eller ÅÅÅÅMMDD) +ErrorRecordHasChildren=Kunne ikke slette posten, da den har nogle underposter ErrorRecordHasAtLeastOneChildOfType=Objekt %s har mindst et barn af typen %s -ErrorRecordIsUsedCantDelete=Kan ikke slette rekord. Den er allerede brugt eller inkluderet i et andet objekt. -ErrorModuleRequireJavascript=Javascript må ikke være deaktiveret for at få denne funktion til at fungere. For at aktivere / deaktivere Javascript, skal du gå til menuen Home-> Setup-> Display. -ErrorPasswordsMustMatch=Begge har skrevet passwords skal matche hinanden -ErrorContactEMail=Der opstod en teknisk fejl. Kontakt administratoren til følgende e-mail %s og giv fejlkoden %s i din besked eller tilføj en skærmkopi af denne side. +ErrorRecordIsUsedCantDelete=Kan ikke slette posten. Den er allerede brugt eller inkluderet i et andet objekt. +ErrorModuleRequireJavascript=Hvis denne funktion skal fungere må Javascript ikke være deaktiveret. For at aktivere / deaktivere Javascript, skal du gå til menuen Hjem -> Opsætning -> Udseende. +ErrorPasswordsMustMatch=De angivne adgangskoder skal matche hinanden +ErrorContactEMail=Der opstod en teknisk fejl. Kontakt administratoren på følgende e-mail %s og oplys fejlkoden %s i din besked eller tilføj en skærmkopi af denne side. ErrorWrongValueForField=Felt%s: '%s' stemmer ikke overens med regex-reglen%s +ErrorHtmlInjectionForField=Felt %s: Værdien '%s indeholder skadelig data, som ikke er tilladt. ErrorFieldValueNotIn=Felt %s: '%s' er ikke en værdi fundet i felt %saf %s ErrorFieldRefNotIn=Felt%s: '%s' er ikke en %s eksisterende ref +ErrorMultipleRecordFoundFromRef=Flere poster fundet ved søgning fra ref %s . Ingen måde at vide, hvilket ID du skal bruge. ErrorsOnXLines=%s fundne fejl -ErrorFileIsInfectedWithAVirus=Det antivirusprogram var ikke i stand til at bekræfte filen (filen kan være inficeret med en virus) -ErrorSpecialCharNotAllowedForField=Specialtegn er ikke tilladt for feltet "%s" -ErrorNumRefModel=En henvisning findes i databasen (%s) og er ikke kompatible med denne nummerering regel. Fjern optage eller omdøbt henvisning til aktivere dette modul. +ErrorFileIsInfectedWithAVirus=Antivirusprogrammet var ikke i stand til at kontrollere filen (filen kan være inficeret med en virus) +ErrorNumRefModel=En henvisning findes i databasen (%s) og er ikke kompatibel med denne nummerering regel. Fjern registrering eller omdøb henvisning for aktivere dette modul. ErrorQtyTooLowForThisSupplier=Mængden for lav for denne leverandør eller ingen pris defineret på dette produkt for denne leverandør ErrorOrdersNotCreatedQtyTooLow=Nogle ordrer er ikke blevet oprettet på grund af for lave mængder -ErrorModuleSetupNotComplete=Opsætning af modul %s ser ud til at være ufuldstændig. Gå videre - Opsætning - Moduler, for at gennemføres. +ErrorModuleSetupNotComplete=Opsætning af modulet %s ser ud til at være ufuldstændig. Gå til Hjem -> Opsætning -> Moduler, for at fuldføre. ErrorBadMask=Fejl på maske -ErrorBadMaskFailedToLocatePosOfSequence=Fejl, maske uden loebenummeret -ErrorBadMaskBadRazMonth=Fejl, dårlig reset værdi -ErrorMaxNumberReachForThisMask=Maksimalt antal nåede til denne maske -ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits +ErrorBadMaskFailedToLocatePosOfSequence=Fejl, maske uden løbenummer +ErrorBadMaskBadRazMonth=Fejl, forkert nulstillingsværdi +ErrorMaxNumberReachForThisMask=Maksimalt antal nået for denne maske +ErrorCounterMustHaveMoreThan3Digits=Tæller skal have mere en 3 cifre ErrorSelectAtLeastOne=Fejl, vælg mindst en post. -ErrorDeleteNotPossibleLineIsConsolidated=Slet ikke muligt, fordi rekord er knyttet til en banktransaktion, der er forliget -ErrorProdIdAlreadyExist=%s er tildelt til et andet tredjeland -ErrorFailedToSendPassword=Det lykkedes ikke at sende password -ErrorFailedToLoadRSSFile=Ikke formår at få RSS-feed. Prøv at tilføje konstant MAIN_SIMPLEXMLLOAD_DEBUG hvis fejlmeddelelser ikke giver nok information. -ErrorForbidden=Access denied.
    You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. -ErrorForbidden2=Tilladelse til dette login kan defineres af din Dolibarr administrator fra menuen %s-> %s. -ErrorForbidden3=Det ser ud til, at Dolibarr ikke bruges gennem en godkendt session. Se på Dolibarr installationsdokumentation for at vide mere om, hvordan man administrerer godkendelser (htaccess, mod_auth eller andet ...). -ErrorForbidden4=Bemærk: Ryd dine browsercookies for at ødelægge eksisterende sessioner for dette login. -ErrorNoImagickReadimage=Class Imagick findes ikke i dette PHP. Ingen forhåndsvisning kan være tilgængelig. Administratorer kan deaktivere denne fane fra menuen Setup - Display. -ErrorRecordAlreadyExists=Optag allerede findes +ErrorDeleteNotPossibleLineIsConsolidated=Ikke muligt at slette, fordi posten er knyttet til en banktransaktion, der er forliget +ErrorProdIdAlreadyExist=%s er tildelt til en anden tredjepart +ErrorFailedToSendPassword=Det lykkedes ikke at sende adgangskode +ErrorFailedToLoadRSSFile=Kan ikke læse RSS-feed. Prøv at tilføje konstanten MAIN_SIMPLEXMLLOAD_DEBUG hvis fejlmeddelelserne ikke giver nok information. +ErrorForbidden=Adgang nægtet.
    Du prøver at tilgå en side, område eller funktion for et deaktiveret modul eller uden at være i en autoriseret session eller som ikke er tilladt for din bruger. +ErrorForbidden2=Tilladelse for dette login kan defineres af din Dolibarr administrator fra menuen %s-> %s. +ErrorForbidden3=Det ser ud til, at Dolibarr ikke bruges gennem en godkendt session. Tag et kig på Dolibarr installationsdokumentationen for at lære mere om, hvordan man administrerer godkendelser (htaccess, mod_auth eller andet ...). +ErrorForbidden4=Bemærk: Ryd dine browsercookies for at slette eksisterende sessioner for dette login. +ErrorNoImagickReadimage=Biblioteket Imagick findes ikke i dette PHP. Ingen forhåndsvisning kan være tilgængelig. Administratorer kan deaktivere denne fane fra menuen Opsætning -> Udseende. +ErrorRecordAlreadyExists=Posten findes allerede ErrorLabelAlreadyExists=Denne etiket eksisterer allerede -ErrorCantReadFile=Kunne ikke læse filen ' %s' -ErrorCantReadDir=Kunne ikke læse directory ' %s' -ErrorBadLoginPassword=Bad værdi for brugernavn eller password +ErrorCantReadFile=Kunne ikke læse filen '%s' +ErrorCantReadDir=Kunne ikke læse mappen '%s' +ErrorBadLoginPassword=Forkert værdi for brugernavn eller adgangskode ErrorLoginDisabled=Din konto er blevet deaktiveret ErrorFailedToRunExternalCommand=Kunne ikke køre ekstern kommando. Kontroller, at den er tilgængelig og kan køres af din PHP-serverbruger. Kontroller også, at kommandoen ikke er beskyttet på shell-niveau af et sikkerhedslag som apparmor. -ErrorFailedToChangePassword=Det lykkedes ikke at ændre password -ErrorLoginDoesNotExists=Bruger med login %s kunne ikke findes. +ErrorFailedToChangePassword=Det lykkedes ikke at ændre adgangskode +ErrorLoginDoesNotExists=Bruger med navnet %s kunne ikke findes. ErrorLoginHasNoEmail=Denne bruger har ingen e-mail-adresse. Processen afbrydes. -ErrorBadValueForCode=Bad værdi former for kode. Prøv igen med en ny værdi ... -ErrorBothFieldCantBeNegative=Fields %s og %s kan ikke være både negative -ErrorFieldCantBeNegativeOnInvoice=Feltet %skan ikke være negativt på denne type faktura. Hvis du har brug for at tilføje en rabat linje, bare oprette rabatten først (fra marken '%s' i tredjeparts-kort), og anvende det til fakturaen. -ErrorLinesCantBeNegativeForOneVATRate=Det samlede antal linjer (netto af skat) kan ikke være negativt for en given ikke null momssats (Fundet en negativ sum for momssats %s %%). -ErrorLinesCantBeNegativeOnDeposits=Linjer kan ikke være negative i et depositum. Du vil stå over for problemer, når du bliver nødt til at forbruge deponering i endelige faktura, hvis du gør det. -ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative -ErrorWebServerUserHasNotPermission=Brugerkonto %s anvendes til at udføre web-server har ikke tilladelse til at -ErrorNoActivatedBarcode=Ingen stregkode aktiveret typen -ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP -ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package -ErrorModuleFileRequired=You must select a Dolibarr module package file -ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal -ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base -ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base -ErrorNewValueCantMatchOldValue=New value can't be equal to old one -ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. -ErrorToConnectToMysqlCheckInstance=Forbindelse til database fejler. Check databaseserveren kører (for eksempel med mysql / mariadb kan du starte det fra kommandolinjen med 'sudo service mysql start'). -ErrorFailedToAddContact=Failed to add contact +ErrorBadValueForCode=Ugyldig værdi for sikkerheds kode. Prøv igen med en ny værdi ... +ErrorBothFieldCantBeNegative=Felterne %s og %s kan ikke begge være negative +ErrorFieldCantBeNegativeOnInvoice=Feltet %skan ikke være negativt på denne type faktura. Hvis du har brug for at tilføje en rabat linje, opret rabatten først (fra feltet '%s' i tredjeparts-kort), og anvend det til fakturaen. +ErrorLinesCantBeNegativeForOneVATRate=Det samlede antal linjer (netto af skat) kan ikke være negativt for en given ikke nul-momssats (Fandt en negativ sum for momssats %s %%). +ErrorLinesCantBeNegativeOnDeposits=Linjer kan ikke være negative for et depositum. Du vil opleve problemer, når du bliver nødt til at bruge deponering i den endelige faktura, hvis du gør det. +ErrorQtyForCustomerInvoiceCantBeNegative=Mængde for linjen på kunde fakturaer kan ikke være negativ +ErrorWebServerUserHasNotPermission=Brugerkonto %s der anvendes til at starte web-server har ikke tilladelse til dette +ErrorNoActivatedBarcode=Ingen stregkode type aktiveret +ErrUnzipFails=Udpakning fejlede for %s med ZipArchive +ErrNoZipEngine=Modul til pakning/udpakning af %s findes ikke i PHP +ErrorFileMustBeADolibarrPackage=Filen %s skal være en Dolibarr zip pakke +ErrorModuleFileRequired=Du skal vælge en Dolibarr modul pakke fil +ErrorPhpCurlNotInstalled=PHP CURL modulet er ikke installeret, dette er nødvendigt for at kommunikere med Paypal +ErrorFailedToAddToMailmanList=Tilføjelsen af posten %s til Mailman listen %s eller SPIP basen fejlede +ErrorFailedToRemoveToMailmanList=Sletning af posten %s fra Mailman listen %s eller SPIP basen fejlede +ErrorNewValueCantMatchOldValue=Den nye værdi kan ikke være magen til den gamle +ErrorFailedToValidatePasswordReset=Gendannelse af adgangskode fejlede. Måske gendannelsen allerede er udført (dette link kan kun bruges én gang). Hvis ikke, prøv at genstarte gendannelses processen. +ErrorToConnectToMysqlCheckInstance=Forbindelse til database fejler. Kontroller at databaseserveren kører (for eksempel, med mysql/mariadb, kan du starte den fra kommandolinjen med 'sudo service mysql start'). +ErrorFailedToAddContact=Tilføjelse af kontakt fejlede ErrorDateMustBeBeforeToday=Datoen skal være før end i dag ErrorDateMustBeInFuture=Datoen skal være efter dags dato -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. -ErrorPHPNeedModule=Error, your PHP must have module %s installed to use this feature. -ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s -ErrorWarehouseMustDiffers=Source and target warehouses must differs -ErrorBadFormat=Bad format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. -ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled +ErrorPaymentModeDefinedToWithoutSetup=En betalingsmetode var sat til typen %s men opsætningen af faktura modulet er ikke fuldført til at angive information der skal vises for denne betalingsmetode. +ErrorPHPNeedModule=Fejl, din PHP skal have modulet %s installeret for at benytte denne funktion. +ErrorOpenIDSetupNotComplete=Do hare opsat din Dolibarr konfigurations fil til at tillade OpenID autentificering, men URL'en til OpenID servicen er ikke defineret i konstanten %s +ErrorWarehouseMustDiffers=Kilde og destinations varehus skal være forskellige +ErrorBadFormat=Forkert format! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fejl, dette medlem er endnu ikke knyttet til en tredjepart. Knyt medlem til en eksisterende tredjepart eller opret en ny tredjepart før oprettelsen af et abonnement med faktura. +ErrorThereIsSomeDeliveries=Fejl, der er knyttet leverancer til denne forsendelse. Sletning nægtet. +ErrorCantDeletePaymentReconciliated=Kan ikke slette en betaling der har oprettet en bank postering som var forsonet. ErrorCantDeletePaymentSharedWithPayedInvoice=Kan ikke slette en betaling deles af mindst én faktura med status Betalt -ErrorPriceExpression1=Cannot assign to constant '%s' -ErrorPriceExpression2=Cannot redefine built-in function '%s' -ErrorPriceExpression3=Undefined variable '%s' in function definition -ErrorPriceExpression4=Illegal character '%s' -ErrorPriceExpression5=Unexpected '%s' -ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected) -ErrorPriceExpression8=Unexpected operator '%s' -ErrorPriceExpression9=An unexpected error occured +ErrorPriceExpression1=Kan ikke tilføjes til konstant '%s' +ErrorPriceExpression2=Kan ikke omdefinere en indbygget funktion '%s' +ErrorPriceExpression3=Udefineret variabel '%s' i funktions beskrivelsen +ErrorPriceExpression4=Ugyldigt tegn '%s' +ErrorPriceExpression5=Uventet '%s' +ErrorPriceExpression6=Ugyldigt antal argumenter (%s angivet, %s forventet) +ErrorPriceExpression8=Uventet operatør '%s' +ErrorPriceExpression9=En uventet fejl er opstået ErrorPriceExpression10=Operatør '%s' mangler operand -ErrorPriceExpression11=Expecting '%s' -ErrorPriceExpression14=Division by zero -ErrorPriceExpression17=Undefined variable '%s' -ErrorPriceExpression19=Expression not found -ErrorPriceExpression20=Empty expression -ErrorPriceExpression21=Empty result '%s' -ErrorPriceExpression22=Negative result '%s' +ErrorPriceExpression11=Forventer '%s' +ErrorPriceExpression14=Deling med nul +ErrorPriceExpression17=Ikke defineret variabel '%s' +ErrorPriceExpression19=Udtryk ikke fundet +ErrorPriceExpression20=Tomt udtryk +ErrorPriceExpression21=Tomt resultat '%s' +ErrorPriceExpression22=Negativt resultat '%s' ErrorPriceExpression23=Ukendt eller ikke-sæt variabel '%s' i %s ErrorPriceExpression24=Variabel '%s' eksisterer men har ingen værdi -ErrorPriceExpressionInternal=Internal error '%s' -ErrorPriceExpressionUnknown=Unknown error '%s' -ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs -ErrorTryToMakeMoveOnProductRequiringBatchData=Fejl, forsøger at lave en lagerbevægelse uden parti / seriel information på produkt '%s', der kræver meget parti / seriel information -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action -ErrorGlobalVariableUpdater0=HTTP request failed with error '%s' -ErrorGlobalVariableUpdater1=Invalid JSON format '%s' -ErrorGlobalVariableUpdater2=Missing parameter '%s' -ErrorGlobalVariableUpdater3=The requested data was not found in result -ErrorGlobalVariableUpdater4=SOAP client failed with error '%s' -ErrorGlobalVariableUpdater5=No global variable selected -ErrorFieldMustBeANumeric=Field %s must be a numeric value -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided +ErrorPriceExpressionInternal=Intern fejl '%s' +ErrorPriceExpressionUnknown=Ukendt fejl '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Kilde og destinations varehus skal være forskellige +ErrorTryToMakeMoveOnProductRequiringBatchData=Fejl, forsøger at lave en lagerbevægelse uden parti/serie information på produkt '%s', der kræver parti/serie information +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Alle registrerede modtagelser skal først verificeres (godkendes eller afvises), før de får lov til at udføre denne handling +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Alle registrerede modtagelser skal først verificeres (godkendes), før de får lov til at udføre denne handling +ErrorGlobalVariableUpdater0=HTTP-anmodning mislykkedes med fejlen '%s' +ErrorGlobalVariableUpdater1=Ugyldigt JSON-format '%s' +ErrorGlobalVariableUpdater2=Manglende parameter '%s' +ErrorGlobalVariableUpdater3=De anmodede data blev ikke fundet i resultatet +ErrorGlobalVariableUpdater4=SOAP-klient mislykkedes med fejlen '%s' +ErrorGlobalVariableUpdater5=Ingen global variabel valgt +ErrorFieldMustBeANumeric=Feltet %s skal være en numerisk værdi +ErrorMandatoryParametersNotProvided=Obligatoriske parametre er ikke angivet ErrorOppStatusRequiredIfAmount=Du angiver et estimeret beløb for denne kundeemne. Så du skal også indtaste dets status. -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) +ErrorFailedToLoadModuleDescriptorForXXX=Kunne ikke indlæse modulbeskrivelsesklassen for %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Dårlig definition af menuarray i modulbeskrivelse (dårlig værdi for nøglen fk_menu) ErrorSavingChanges=Der er opstået en fejl, når ændringerne gemmes -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship -ErrorFileMustHaveFormat=File must have format %s +ErrorWarehouseRequiredIntoShipmentLine=Lager er påkrævet på linjen for at sende +ErrorFileMustHaveFormat=Filen skal have formatet %s ErrorFilenameCantStartWithDot=Filnavn kan ikke starte med et '.' ErrorSupplierCountryIsNotDefined=Land for denne sælger er ikke defineret. Rett dette først. -ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. -ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorsThirdpartyMerge=Kunne ikke flette de to poster. Anmodning annulleret. +ErrorStockIsNotEnoughToAddProductOnOrder=Lagerbeholdning er ikke nok til at produkt %s kan tilføje det til en ny ordre. +ErrorStockIsNotEnoughToAddProductOnInvoice=Lagerbeholdning er ikke nok til, at produkt %s kan tilføje det til en ny faktura. +ErrorStockIsNotEnoughToAddProductOnShipment=Lager er ikke nok til at produkt %s kan tilføje det til en ny forsendelse. +ErrorStockIsNotEnoughToAddProductOnProposal=Lager er ikke nok til at produkt %s kan tilføje det i et nyt forslag. +ErrorFailedToLoadLoginFileForMode=Kunne ikke hente login-nøglen til tilstanden '%s'. +ErrorModuleNotFound=Modulets fil blev ikke fundet. +ErrorFieldAccountNotDefinedForBankLine=Værdi for regnskabskonto ikke defineret for kildelinje-id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Værdi for regnskabskonto ikke defineret for faktura-id %s (%s) ErrorFieldAccountNotDefinedForLine=Værdi for regnskabskonto ikke defineret for linjen (%s) -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. -ErrorTaskAlreadyAssigned=Task already assigned to user -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. +ErrorBankStatementNameMustFollowRegex=Fejl, navn på kontoudtog skal følge følgende syntaksregel %s +ErrorPhpMailDelivery=Tjek, at du ikke bruger et for højt antal modtagere, og at dit e-mailindhold ikke ligner spam. Bed også din administrator om at kontrollere firewall- og serverlogfilerne for at få mere fuldstændig information. +ErrorUserNotAssignedToTask=Bruger skal tildeles opgave for at kunne indtaste tidsforbrug. +ErrorTaskAlreadyAssigned=Opgaven er allerede tildelt brugeren +ErrorModuleFileSeemsToHaveAWrongFormat=Modulpakken ser ud til at have et forkert format. ErrorModuleFileSeemsToHaveAWrongFormat2=Der skal mindst findes et obligatorisk bibliotek i zip modulet: %s eller %s -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s -ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. -ErrorNoWarehouseDefined=Error, no warehouses defined. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorFilenameDosNotMatchDolibarrPackageRules=Navnet på modulpakken ( %s ) stemmer ikke overens med forventet navnesyntaks: %s 9z0 a010z0 +ErrorDuplicateTrigger=Fejl, dubleret triggernavn %s. Allerede indlæst fra %s. +ErrorNoWarehouseDefined=Fejl, ingen varehuse defineret. +ErrorBadLinkSourceSetButBadValueForRef=Linket du bruger er ikke gyldigt. En 'kilde' til betaling er defineret, men værdien for 'ref' er ikke gyldig. ErrorTooManyErrorsProcessStopped=For mange fejl. Processen blev stoppet. ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massbekræftelse er ikke mulig, når indstillingen for at øge/reducere lager er indstillet på denne handling (du skal bekræfte en for en, så du kan definere lageret for at øge / formindske) ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s skal have status 'Udkast', der skal bekræftes. @@ -227,7 +230,7 @@ ErrorFileNotFoundWithSharedLink=Filen blev ikke fundet. Det kan være, at dele n ErrorProductBarCodeAlreadyExists=Produktets stregkode %s eksisterer allerede på en anden produktreference. ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Bemærk også, at det ikke er muligt at bruge sæt til automatisk forøgelse / formindskelse af underprodukter, når mindst et underprodukt (eller underprodukt af underprodukter) har brug for et serienummer / lotnummer. ErrorDescRequiredForFreeProductLines=Beskrivelse er obligatorisk for linjer med gratis produkt -ErrorAPageWithThisNameOrAliasAlreadyExists=Siden / beholderen %s har samme navn eller alternativt alias som den, du forsøger at bruge +ErrorAPageWithThisNameOrAliasAlreadyExists=Siden / beholderen %s har samme navn eller alternativt alias som den, du forsøger at bruge ErrorDuringChartLoad=Fejl ved indlæsning af kontoplan. Hvis nogle konti ikke blev indlæst, kan du stadig indtaste dem manuelt. ErrorBadSyntaxForParamKeyForContent=Dårlig syntaks for parameternøgleindhold. Skal have en værdi, der starter med %s eller %s ErrorVariableKeyForContentMustBeSet=Fejl, konstanten med navn %s(med tekstindhold, der skal vises) eller %s(med ekstern url til at vises) skal sættes. @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objekter skal have status 'Aktiv' fo ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objekter skal have status 'Udkast' eller 'Deaktiveret' for at være aktiveret ErrorNoFieldWithAttributeShowoncombobox=Ingen felter har egenskaben 'showoncombobox' til definition af objektet '%s'. Ingen måde at vise kombinationen på. ErrorFieldRequiredForProduct=Felt '%s' kræves for produktet %s +AlreadyTooMuchPostOnThisIPAdress=Du har allerede skrevet for meget på denne IP-adresse. ProblemIsInSetupOfTerminal=Problemet er ved opsætning af terminalen %s. ErrorAddAtLeastOneLineFirst=Tilføj mindst en linje først ErrorRecordAlreadyInAccountingDeletionNotPossible=Fejl, posten er allerede overført i regnskab, sletning er ikke mulig. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Du skal først konfigurere din kontopla ErrorFailedToFindEmailTemplate=Kunne ikke finde skabelon med kodenavn %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Varighed er ikke defineret i tjenesten. Ingen måde at beregne timeprisen på. ErrorActionCommPropertyUserowneridNotDefined=Brugerens ejer kræves -ErrorActionCommBadType=Den valgte hændelsestype (id: %n, kode: %s) findes ikke i begivenhedstypeordbogen +ErrorActionCommBadType=Den valgte hændelsestype (id: %s, kode: %s) findes ikke i hændelsestype ordbogen CheckVersionFail=Versionskontrol mislykkedes ErrorWrongFileName=Filens navn kan ikke indeholde __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Ikke i ordbogen om betalingsbetingelser, bedes du ændre. ErrorIsNotADraft=%s er ikke et udkast ErrorExecIdFailed=Kan ikke udføre kommandoen "id" -ErrorBadCharIntoLoginName=Ikke godkendt tegn i login-navnet -ErrorRequestTooLarge=Fejl, anmodningen er for stor +ErrorBadCharIntoLoginName=Uautoriseret tegn i feltet %s +ErrorRequestTooLarge=Fejl, anmodningen er for stor, eller sessionen er udløbet ErrorNotApproverForHoliday=Du er ikke godkender for orlov %s ErrorAttributeIsUsedIntoProduct=Denne attribut bruges i en eller flere produktvarianter ErrorAttributeValueIsUsedIntoProduct=Denne attributværdi bruges i en eller flere produktvarianter @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Fejl, alle beløb skal indtastes i samme kolonne ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Du forsøger at betale fakturaer i valutaen %s fra en konto med valutaen %s ErrorInvoiceLoadThirdParty=Kan ikke indlæse tredjepartsobjekt for faktura "%s" ErrorInvoiceLoadThirdPartyKey=Tredjepartsnøgle "%s" ikke indstillet til faktura "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Slet linje er ikke tilladt af den faktiske objektstatus +ErrorDeleteLineNotAllowedByObjectStatus=Slet linje er ikke tilladt af den aktuelle objektstatus ErrorAjaxRequestFailed=Anmodningen mislykkedes +ErrorThirpdartyOrMemberidIsMandatory=Tredjepart eller medlem af partnerskab er obligatorisk +ErrorFailedToWriteInTempDirectory=Kunne ikke skrive i midlertidigt bibliotek +ErrorQuantityIsLimitedTo=Mængden er begrænset til %s +ErrorFailedToLoadThirdParty=Kunne ikke finde/indlæse tredjepart fra id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Denne betalingsmetode er ikke en bankkonto +ErrorStripeCustomerNotFoundCreateFirst=Stripe-kunde er ikke indstillet til denne tredjepart (eller indstillet til en værdi slettet på Stripe-siden). Opret (eller vedhæft igen) det først. +ErrorCharPlusNotSupportedByImapForSearch=IMAP-søgning er ikke i stand til at søge i afsender eller modtager efter en streng, der indeholder tegnet + +ErrorTableNotFound=Tabel %s blev ikke fundet +ErrorValueForTooLow=Værdien for %s er for lav +ErrorValueCantBeNull=Værdien for %s kan ikke være 0 +ErrorDateOfMovementLowerThanDateOfFileTransmission=Datoen for banktransaktionen må ikke være lavere end datoen for filoverførslen +ErrorTooMuchFileInForm=For mange filer i form, det maksimale antal er %s fil(er) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Din PHP-parameter upload_max_filesize (%s) er højere end PHP-parameter post_max_size (%s). Dette er ikke en ensartet opsætning. -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=Klik her for at opsætte obligatoriske parametre +WarningPasswordSetWithNoAccount=Der blev angivet en adgangskode til dette medlem. Der blev dog ikke oprettet en brugerkonto. Så denne adgangskode er gemt, men kan ikke bruges til at logge ind på Dolibarr. Det kan bruges af et eksternt modul/interface, men hvis du ikke behøver at definere noget login eller adgangskode for et medlem, kan du deaktivere muligheden "Administrer et login for hvert medlem" fra medlemsmodulets opsætning. Hvis du har brug for at administrere et login, men ikke har brug for nogen adgangskode, kan du holde dette felt tomt for at undgå denne advarsel. Bemærk: E-mail kan også bruges som login, hvis medlemmet er knyttet til en bruger. +WarningMandatorySetupNotComplete=Klik her for at indstille hovedparametre WarningEnableYourModulesApplications=Klik her for at aktivere dine moduler og applikationer WarningSafeModeOnCheckExecDir=Advarsel, PHP option safe_mode er på så kommandoen skal opbevares i en mappe angivet af php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=Et bogmærke med denne titel eller dette mål (URL), der allerede eksisterer. @@ -300,17 +316,17 @@ WarningConfFileMustBeReadOnly=Advarsel, config fil (htdocs / conf / conf.php) WarningsOnXLines=Advarsler om %s kildelinjer WarningNoDocumentModelActivated=Ingen model til dokumentgenerering er blevet aktiveret. En model vælges som standard, indtil du tjekker din modulopsætning. WarningLockFileDoesNotExists=Advarsel, når installationen er afsluttet, skal du deaktivere installations- / migreringsværktøjerne ved at tilføje en fil install.lock i biblioteket%s. At udelade oprettelsen af denne fil er en alvorlig sikkerhedsrisiko. -WarningUntilDirRemoved=Alle sikkerhedsadvarsler (kun synlige for adminbrugere) forbliver aktive, så længe sårbarheden er til stede (eller den konstante MAIN_REMOVE_INSTALL_WARNING er tilføjet i Setup-> Other Setup). -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. +WarningUntilDirRemoved=Denne sikkerhedsadvarsel forbliver aktiv, så længe sårbarheden er til stede. +WarningCloseAlways=Advarsel, lukning udføres, selvom mængden er forskellig mellem kilde- og målelementer. Aktiver denne funktion med forsigtighed. +WarningUsingThisBoxSlowDown=Advarsel, brug af denne boks langsommere seriøst alle sider, der viser boksen. WarningClickToDialUserSetupNotComplete=Opsætning af ClickToDial-oplysninger til din bruger er ikke komplet (se fanen ClickToDial på dit brugerkort). -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Funktion deaktiveret, når skærmopsætning er optimeret til blinde personer eller tekstbrowsere. WarningPaymentDateLowerThanInvoiceDate=Betalingsdato (%s) er tidligere end faktura dato (%s) for faktura %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. -WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. -WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language -WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til %s , når du bruger massehandlingerne på lister +WarningTooManyDataPleaseUseMoreFilters=For mange data (mere end %s linjer). Brug venligst flere filtre eller indstil konstanten %s til en højere grænse. +WarningSomeLinesWithNullHourlyRate=Nogle tidspunkter blev registreret af nogle brugere, mens deres timepris ikke var defineret. Der blev brugt en værdi på 0 %s pr. time, men dette kan resultere i forkert værdiansættelse af brugt tid. +WarningYourLoginWasModifiedPleaseLogin=Dit login blev ændret. Af sikkerhedsmæssige årsager skal du logge ind med dit nye login før næste handling. +WarningAnEntryAlreadyExistForTransKey=Der findes allerede en post for oversættelsesnøglen for dette sprog +WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til %s, når du bruger massehandlingerne på lister WarningDateOfLineMustBeInExpenseReportRange=Advarsel, datoen for linjen ligger ikke inden for udgiftsrapporten WarningProjectDraft=Projektet er stadig i kladdetilstand. Glem ikke at validere det, hvis du planlægger at bruge opgaver. WarningProjectClosed=Projektet er lukket. Du skal genåbne det først. @@ -321,16 +337,14 @@ WarningCreateSubAccounts=Advarsel, du kan ikke oprette en underkonto direkte, du WarningAvailableOnlyForHTTPSServers=Kun tilgængelig, hvis du bruger HTTPS-sikret forbindelse. WarningModuleXDisabledSoYouMayMissEventHere=Modul %s er ikke aktiveret. Så du går måske glip af en masse begivenheder her. WarningPaypalPaymentNotCompatibleWithStrict=Værdien 'Strict' gør, at onlinebetalingsfunktionerne ikke fungerer korrekt. Brug 'Lax' i stedet. +WarningThemeForcedTo=Advarsel, temaet er blevet tvunget til %s af skjult konstant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Advarsel, dette vil også slette alle eksisterende sider/containere på hjemmesiden. Du bør eksportere dit websted før, så du har en sikkerhedskopi til at genimportere det senere. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatisk validering er deaktiveret, når muligheden for at reducere lager er indstillet på "Fakturavalidering". -<<<<<<< HOVED -======= -<<<<<<< HOVED -<<<<<<< HOVED ->>>>>>> gren '15.0' af git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Værdien er ikke gyldig RequireAtLeastXString = Kræver mindst %s karakter (er) -RequireXStringMax = Kræver maks. Tegn på %s +RequireXStringMax = Kræver maks. %s tegn RequireAtLeastXDigits = Kræver mindst %s ciffer (er) RequireXDigitsMax = Kræver %s ciffer (er) maks RequireValidNumeric = Kræver en numerisk værdi @@ -347,12 +361,3 @@ BadSetupOfField = Fejl ved dårlig opsætning af feltet BadSetupOfFieldClassNotFoundForValidation = Fejl ved dårlig opsætning af feltet: Klassen blev ikke fundet til validering BadSetupOfFieldFileNotFound = Fejl ved dårlig opsætning af feltet: Filen blev ikke fundet til inkludering BadSetupOfFieldFetchNotCallable = Fejl dårlig opsætning af felt: Hentning kan ikke kaldes på klassen -<<<<<<< HOVED -======= -======= -======= ->>>>>>> gren '15.0' af git@github.com:Dolibarr/dolibarr.git ->>>>>>> gren '15.0' af git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> gren '15.0' af git@github.com:Dolibarr/dolibarr.git ->>>>>>> gren '15.0' af git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/da_DK/eventorganization.lang b/htdocs/langs/da_DK/eventorganization.lang index dc08104ba5f..49d5ec90885 100644 --- a/htdocs/langs/da_DK/eventorganization.lang +++ b/htdocs/langs/da_DK/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = I formularen til at oprette/tilføje en # Object # EventOrganizationConfOrBooth= Konference eller stand +EventOrganizationConfOrBoothes=Konferencer eller stande ManageOrganizeEvent = Administrer tilrettelæggelsen af en begivenhed ConferenceOrBooth = Konference eller stand ConferenceOrBoothTab = Konference eller stand AmountPaid = Betalt beløb DateOfRegistration = Dato for registrering ConferenceOrBoothAttendee = Konference eller messedeltager +ApplicantOrVisitor=Ansøger eller besøgende +Speaker=Højttaler # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Her kan du stemme på en konference eller fores EvntOrgRegistrationConfHelpMessage = Her kan du foreslå en ny konference for at animere under arrangementet. EvntOrgRegistrationBoothHelpMessage = Her kan du ansøge om at få en bod under arrangementet. ListOfSuggestedConferences = Liste over foreslåede konferencer -ListOfSuggestedBooths = Liste over foreslåede stand -ListOfConferencesOrBooths=Liste over konferencer eller boder med eventprojekt +ListOfSuggestedBooths=Foreslåede stande +ListOfConferencesOrBooths=Konferencer eller stande af eventprojekt SuggestConference = Foreslå en ny konference SuggestBooth = Foreslå en kabine ViewAndVote = Se og stem på foreslåede begivenheder PublicAttendeeSubscriptionGlobalPage = Offentligt link til registrering til arrangementet PublicAttendeeSubscriptionPage = Offentligt link til registrering til denne begivenhed MissingOrBadSecureKey = Sikkerhedsnøglen er ugyldig eller mangler -EvntOrgWelcomeMessage = Denne formular giver dig mulighed for at registrere dig som en ny deltager til begivenheden: %s +EvntOrgWelcomeMessage = Denne formular giver dig mulighed for at tilmelde dig som ny deltager til arrangementet EvntOrgDuration = Denne konference starter på %s og slutter på %s. ConferenceAttendeeFee = Konferencedeltagergebyr for begivenheden: '%s', der forekommer fra %s til %s. BoothLocationFee = Standplacering for begivenheden: '%s' der forekommer fra %s til %s @@ -130,7 +133,7 @@ LabelOfconference=Konference label ConferenceIsNotConfirmed=Tilmelding ikke tilgængelig, konference er ikke bekræftet endnu DateMustBeBeforeThan=%s skal være før %s DateMustBeAfterThan=%s skal være efter %s - +MaxNbOfAttendeesReached=Det maksimale antal deltagere er nået NewSubscription=Registrering OrganizationEventConfRequestWasReceived=Dit forslag til en konference er modtaget OrganizationEventBoothRequestWasReceived=Din anmodning om en bod er modtaget @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Din betaling for din begivenhe OrganizationEventBulkMailToAttendees=Dette er en påmindelse om din deltagelse i begivenheden som deltager OrganizationEventBulkMailToSpeakers=Dette er en påmindelse om din deltagelse i arrangementet som foredragsholder OrganizationEventLinkToThirdParty=Link til tredjepart (kunde, leverandør eller partner) +OrganizationEvenLabelName=Offentligt navn på konferencen eller standen NewSuggestionOfBooth=Ansøgning om bod NewSuggestionOfConference=Ansøgning om en konference @@ -154,7 +158,7 @@ VoteOk = Din stemme er blevet accepteret. AlreadyVoted = Du har allerede stemt på denne begivenhed. VoteError = Der opstod en fejl under afstemningen. Prøv igen. -SubscriptionOk = Din registrering er valideret +SubscriptionOk=Din registrering er blevet registreret ConfAttendeeSubscriptionConfirmation = Bekræftelse af dit abonnement på en begivenhed Attendee = Deltager PaymentConferenceAttendee = Konference deltager betaling @@ -162,6 +166,7 @@ PaymentBoothLocation = Betaling af standplacering DeleteConferenceOrBoothAttendee=Fjern deltager RegistrationAndPaymentWereAlreadyRecorder=En registrering og en betaling blev allerede registreret for e -mailen %s EmailAttendee=E -mail til deltager +EmailCompany=Firma e-mail EmailCompanyForInvoice=Firmaets e -mail (for faktura, hvis den er forskellig fra deltagerens e -mail) ErrorSeveralCompaniesWithEmailContactUs=Flere virksomheder med denne e -mail er fundet, så vi kan ikke automatisk validere din registrering. Kontakt os venligst på %s for en manuel validering ErrorSeveralCompaniesWithNameContactUs=Flere virksomheder med dette navn er fundet, så vi kan ikke automatisk validere din registrering. Kontakt os venligst på %s for en manuel validering diff --git a/htdocs/langs/da_DK/exports.lang b/htdocs/langs/da_DK/exports.lang index 5df2c640794..59fcbd6d319 100644 --- a/htdocs/langs/da_DK/exports.lang +++ b/htdocs/langs/da_DK/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Exportable felter ExportedFields=Eksporteres felter ImportModelName=Import Profilnavn ImportModelSaved=Importprofil gemt som %s . +ImportProfile=Import profil DatasetToExport=Datasæt til eksport DatasetToImport=Datasæt til at importere ChooseFieldsOrdersAndTitle=Vælg felter ordre ... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=Strækningstype (0= produkt, 1= tjeneste) FileWithDataToImport=Fil med data til at importere FileToImport=Kildefilen til at importere FileMustHaveOneOfFollowingFormat=Fil, der skal importeres, skal have et af følgende formater +DownloadEmptyExampleShort=Download en prøvefil DownloadEmptyExample=Download en skabelonfil med eksempler og information om felter, du kan importere StarAreMandatory=I skabelonfilen er alle felter med en * obligatoriske felter ChooseFormatOfFileToImport=Vælg det filformat, der skal bruges som importfilformat, ved at klikke på ikonet %s for at vælge det ... @@ -82,7 +84,7 @@ SelectFormat=Vælg denne import filformat RunImportFile=Importer data NowClickToRunTheImport=Kontroller resultaterne af importsimuleringen. Korrigér eventuelle fejl og genprøve.
    Når simuleringen rapporterer, er der ingen fejl, du kan fortsætte med at importere dataene til databasen. DataLoadedWithId=De importerede data har et ekstra felt i hver databasetabel med dette import-id :%s, for at tillade, at de kan søges i tilfælde af at undersøge et problem, der er relateret til denne import. -ErrorMissingMandatoryValue=Obligatoriske data er tomme i kildefilen for feltet %s . +ErrorMissingMandatoryValue=Obligatoriske data er tomme i kildefilen i kolonne %s. TooMuchErrors=Der er stadig %s andre kildelinjer med fejl, men output er begrænset. TooMuchWarnings=Der er stadig %s andre kildelinjer med advarsler, men output er begrænset. EmptyLine=Tom linje (vil blive kasseret) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Du kan finde alle de importerede poster i din data NbOfLinesOK=Antallet af linjer uden fejl og ingen advarsler: %s. NbOfLinesImported=Antallet af linjer med held importeret: %s. DataComeFromNoWhere=Værdi at indsætte kommer fra ingenting i kildefilen. -DataComeFromFileFieldNb=Værdi at indsætte kommer fra feltnummer %s i kildefilen. -DataComeFromIdFoundFromRef=Værdi, der kommer fra feltnummer %s af kildefilen, vil blive brugt til at finde id'et af det overordnede objekt, der skal bruges (så objektet %s , der har referencen fra kildefilen skal eksistere i databasen). -DataComeFromIdFoundFromCodeId=Kode, der kommer fra feltnummer %s af kildefilen, vil blive brugt til at finde identifikations-id'ets id, der skal bruges (så koden fra kildefilen skal eksistere i ordbogen %s ). Bemærk, at hvis du kender id, kan du også bruge det i kildefilen i stedet for koden. Importen skal fungere i begge tilfælde. +DataComeFromFileFieldNb=Værdien, der skal indsættes, kommer fra kolonne %s i kildefilen. +DataComeFromIdFoundFromRef=Værdien, der kommer fra kildefilen, vil blive brugt til at finde id'et for det overordnede objekt, der skal bruges (så objektet %s , der har ref. fra kildefilen, skal eksistere i databasen). +DataComeFromIdFoundFromCodeId=Værdien af kode, der kommer fra kildefilen, vil blive brugt til at finde id'et for det overordnede objekt, der skal bruges (så koden fra kildefilen skal findes i ordbogen %s ). Bemærk, at hvis du kender id'et, kan du også bruge det i kildefilen i stedet for koden. Import bør fungere i begge tilfælde. DataIsInsertedInto=Data kommer fra kildefilen vil blive indsat i følgende felt: DataIDSourceIsInsertedInto=Id'et for det overordnede objekt, der blev fundet ved hjælp af dataene i kildefilen, indsættes i følgende felt: DataCodeIDSourceIsInsertedInto=Id'et for den overordnede linje, der blev fundet fra kode, indsættes i følgende felt: @@ -132,9 +134,14 @@ FormatControlRule=Format control rule ## imports updates KeysToUseForUpdates=Nøgle (kolonne), der skal bruges til opdatering eksisterende data NbInsert=Number of inserted lines: %s +NbInsertSim=Antal linjer, der vil blive indsat: %s NbUpdate=Number of updated lines: %s +NbUpdateSim=Antal linjer, der vil blive opdateret: %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s StocksWithBatch=Lager og placering (lager) af produkter med batch / serienummer WarningFirstImportedLine=Den eller de første linjer vil ikke blive importeret med det aktuelle valg NotUsedFields=Felter i databasen er ikke brugt SelectImportFieldsSource = Vælg de kildefil felter, du vil importere, og deres målfelt i databasen ved at vælge felterne i hvert udvalgte felt, eller vælg en foruddefineret importprofil: +MandatoryTargetFieldsNotMapped=Nogle obligatoriske målfelter er ikke forbundet +AllTargetMandatoryFieldsAreMapped=Alle målfelter, der skal have en obligatorisk værdi, er forbundet +ResultOfSimulationNoError=Resultat af simulering: Ingen fejl diff --git a/htdocs/langs/da_DK/externalsite.lang b/htdocs/langs/da_DK/externalsite.lang deleted file mode 100644 index e9f24884e46..00000000000 --- a/htdocs/langs/da_DK/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Opsæt link til ekstern hjemmeside -ExternalSiteURL=Ekstern websteds-URL for HTML iframe-indhold -ExternalSiteModuleNotComplete=Modul ExternalSite blev ikke konfigureret korrekt. -ExampleMyMenuEntry=Min menu indgang diff --git a/htdocs/langs/da_DK/ftp.lang b/htdocs/langs/da_DK/ftp.lang deleted file mode 100644 index f0b6c58f7ab..00000000000 --- a/htdocs/langs/da_DK/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Opsætning af FTP- eller SFTP-klientmodul -NewFTPClient=Ny FTP / FTPS-forbindelsesopsætning -FTPArea=FTP / FTPS-område -FTPAreaDesc=Dette skærmbillede viser en FTP et SFTP-server. -SetupOfFTPClientModuleNotComplete=Opsætningen af FTP- eller SFTP-klientmodulet ser ud til at være ufuldstændig -FTPFeatureNotSupportedByYourPHP=Din PHP understøtter ikke FTP- eller SFTP-funktioner -FailedToConnectToFTPServer=Der kunne ikke oprettes forbindelse til serveren (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Kunne ikke logge ind på serveren med defineret login / adgangskode -FTPFailedToRemoveFile=Kunne ikke fjerne filen %s. -FTPFailedToRemoveDir=Kunne ikke fjerne biblioteket%s: Kontroller tilladelser, og at biblioteket er tomt. -FTPPassiveMode=Passiv mode -ChooseAFTPEntryIntoMenu=Vælg et FTP / SFTP-sted i menuen ... -FailedToGetFile=Kunne ikke hente filer %s diff --git a/htdocs/langs/da_DK/holiday.lang b/htdocs/langs/da_DK/holiday.lang index 2c3f51239f5..584bc165a40 100644 --- a/htdocs/langs/da_DK/holiday.lang +++ b/htdocs/langs/da_DK/holiday.lang @@ -1,108 +1,120 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Forlade -CPTitreMenu=Forlade -MenuReportMonth=Monthly statement -MenuAddCP=New leave request -NotActiveModCP=Du skal aktivere modulet Forlad for at se denne side. -AddCP=Make a leave request +Holidays=Blade +Holiday=Ferie/Fravær +CPTitreMenu=Ferie/Fravær +MenuReportMonth=Månedlig opgørelse +MenuAddCP=Ny forespørgsel +MenuCollectiveAddCP=Ny kollektiv fraværssanmodning +NotActiveModCP=Du skal aktivere modulet Ferie/Fravær for at se denne side. +AddCP=Lav en forespørgsel DateDebCP=Startdato DateFinCP=Slutdato DraftCP=Udkast til -ToReviewCP=Awaiting approval +ToReviewCP=Afventer godkendelse ApprovedCP=Godkendt CancelCP=Aflyst -RefuseCP=Afviste +RefuseCP=Afvist ValidatorCP=Godkender -ListeCP=Liste over orlov -Leave=Leave request -LeaveId=Forlad ID -ReviewedByCP=Will be reviewed by +ListeCP=Liste over fravær +Leave=Fravær forespørgsel +LeaveId=Fravær ID +ReviewedByCP=Vil blive godkendt af UserID=bruger ID UserForApprovalID=Bruger til godkendelses-id UserForApprovalFirstname=Fornavn af godkendelsesbruger UserForApprovalLastname=Efternavn af godkendelsesbruger UserForApprovalLogin=Login af godkendelse bruger DescCP=Beskrivelse -SendRequestCP=Create leave request -DelayToRequestCP=Leave requests must be made at least %s day(s) before them. -MenuConfCP=Udgiftsbalance -SoldeCPUser=Forlad saldo (i dage) %s -ErrorEndDateCP=You must select an end date greater than the start date. +SendRequestCP=Lav fravær forespørgsel +DelayToRequestCP=Fravær forespørgsler skal laves mindst %s dag(e) før. +MenuConfCP=Opgørelse +SoldeCPUser=Fraværssaldo (i dage) %s +ErrorEndDateCP=Du skal vælge en slutdato efter startdato ErrorSQLCreateCP=An SQL error occurred during the creation: ErrorIDFicheCP=An error has occurred, the leave request does not exist. -ReturnCP=Return to previous page -ErrorUserViewCP=You are not authorized to read this leave request. +ReturnCP=Vend tilbage til foregående side +ErrorUserViewCP=Du er ikke autoriseret til at se denne fraværsforespørgsel. InfosWorkflowCP=Information Workflow -RequestByCP=Requested by -TitreRequestCP=Leave request -TypeOfLeaveId=Type orlov ID -TypeOfLeaveCode=Type orlovskode -TypeOfLeaveLabel=Orlovsetikettype -NbUseDaysCP=Antal brugte orlovsdage +RequestByCP=Forespurgt af +TitreRequestCP=Fravær forespørgsel +TypeOfLeaveId=Type af fravær ID +TypeOfLeaveCode=Type af fraværskode +TypeOfLeaveLabel=Fraværsetikettype +NbUseDaysCP=Antal brugte fraværsdage NbUseDaysCPHelp=Beregningen tager højde for ikke-arbejdsdage og helligdage defineret i ordbogen. -NbUseDaysCPShort=Feriedage -NbUseDaysCPShortInMonth=Feriedage i måned +NbUseDaysCPShort=Fraværsdage +NbUseDaysCPShortInMonth=Fraværsdage i måned DayIsANonWorkingDay=%s er en ikke-arbejdsdag DateStartInMonth=Startdato i måned DateEndInMonth=Slutdato i måned EditCP=Redigér DeleteCP=Slet -ActionRefuseCP=Refuse +ActionRefuseCP=Afvis ActionCancelCP=Annuller StatutCP=Status -TitleDeleteCP=Delete the leave request -ConfirmDeleteCP=Confirm the deletion of this leave request? -ErrorCantDeleteCP=Error you don't have the right to delete this leave request. -CantCreateCP=You don't have the right to make leave requests. -InvalidValidatorCP=Du skal vælge godkenderen til din orlovsanmodning. -NoDateDebut=You must select a start date. -NoDateFin=You must select an end date. -ErrorDureeCP=Your leave request does not contain working day. -TitleValidCP=Approve the leave request -ConfirmValidCP=Are you sure you want to approve the leave request? -DateValidCP=Date approved -TitleToValidCP=Send leave request -ConfirmToValidCP=Are you sure you want to send the leave request? -TitleRefuseCP=Refuse the leave request -ConfirmRefuseCP=Are you sure you want to refuse the leave request? -NoMotifRefuseCP=You must choose a reason for refusing the request. -TitleCancelCP=Cancel the leave request -ConfirmCancelCP=Are you sure you want to cancel the leave request? -DetailRefusCP=Reason for refusal -DateRefusCP=Date of refusal -DateCancelCP=Date of cancellation -DefineEventUserCP=Assign an exceptional leave for a user -addEventToUserCP=Assign leave -NotTheAssignedApprover=Du er ikke den tildelte godkendende +TitleDeleteCP=Slet denne forespørgsel +ConfirmDeleteCP=Bekræft sletning af denne forespørgsel? +ErrorCantDeleteCP=Fejl, du har ikke rettigheder til at slette denne forespørgsel. +CantCreateCP=Du har ikke rettigheder til at lave denne forespørgsel. +InvalidValidatorCP=Du skal vælge godkenderen til din fraværsforespørgsel. +InvalidValidator=Den valgte bruger kan ikke godkende. +NoDateDebut=Du skal vælge en startdato. +NoDateFin=Du skal vælge en slutdato. +ErrorDureeCP=Din forespørgsel indeholder ikke en arbejdsdag. +TitleValidCP=Godkend forespørgsel +ConfirmValidCP=Er du sikker på at du vil godkende fraværsforespørgslen? +DateValidCP=Dato godkendt +TitleToValidCP=Send forespørgsel +ConfirmToValidCP=Er du sikker på at du vil sende forespørgslen? +TitleRefuseCP=Afvis forespørgsel +ConfirmRefuseCP=Er du sikker på at du vil afvise fraværsforespørgslen? +NoMotifRefuseCP=Du skal vælge en grund til at afvise forespørgslen. +TitleCancelCP=Annuller forespørgsel +ConfirmCancelCP=Er du sikker på at du vil annullere fraværsforespørgselen? +DetailRefusCP=Grund for afvisning +DateRefusCP=Dato for afvisning +DateCancelCP=Dato for annullering +DefineEventUserCP=Tildel ekstraordinær fravær til en bruger +addEventToUserCP=Tildel fravær +NotTheAssignedApprover=Du er ikke den tildelte godkender MotifCP=Årsag UserCP=Bruger ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup="Gruppe"-feltet eller "bruger"-feltet skal udfyldes +fusionGroupsUsers=Gruppefeltet og brugerfeltet vil blive flettet MenuLogCP=View change logs -LogCP=Log over alle opdateringer til "Status af Feriedage" +LogCP=Log over alle opdateringer til "Status af Fraværsdage" ActionByCP=Opdateret af UserUpdateCP=Opdateret til -PrevSoldeCP=Previous Balance -NewSoldeCP=New Balance +PrevSoldeCP=Foregående Balance +NewSoldeCP=Ny Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=Der er allerede lavet en fraværssanmodning på denne periode for %s. +groups=Grupper +users=Brugere +AutoSendMail=Automatisk forsendelse +NewHolidayForGroup=Ny kollektiv fraværssanmodning +SendRequestCollectiveCP=Send kollektiv fraværssanmodning +AutoValidationOnCreate=Automatisk validering FirstDayOfHoliday=Begyndelsesdag for orlovsanmodning LastDayOfHoliday=Afslutningsdag for orlovsanmodning BoxTitleLastLeaveRequests=Latest %s modified leave requests -HolidaysMonthlyUpdate=Monthly update +HolidaysMonthlyUpdate=Månedlig opdatering ManualUpdate=Manual update -HolidaysCancelation=Leave request cancelation -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name +HolidaysCancelation=Fraværs anmodning annullering +EmployeeLastname=Medarbejderens efternavn +EmployeeFirstname=Medarbejderens fornavn TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed LastHolidays=Seneste %s forlade anmodninger -AllHolidays=Alle anmodninger om orlov +AllHolidays=Alle anmodninger om fravær HalfDay=Halv dag -NotTheAssignedApprover=Du er ikke den tildelte godkendende -LEAVE_PAID=Betalt ferie -LEAVE_SICK=Sygeorlov -LEAVE_OTHER=Anden orlov -LEAVE_PAID_FR=Betalt ferie +NotTheAssignedApprover=Du er ikke den tildelte godkender +LEAVE_PAID=Betalt fravær +LEAVE_SICK=Sygefravær +LEAVE_OTHER=Andet fravær +LEAVE_PAID_FR=Betalt fravær ## Configuration du Module ## LastUpdateCP=Sidste automatiske opdatering af orlovstildeling MonthOfLastMonthlyUpdate=Måned med sidste automatiske opdatering af orlovstildeling @@ -125,7 +137,7 @@ HolidaysCanceledBody=Your leave request for %s to %s has been canceled. FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
    0: Not followed by a counter. NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter GoIntoDictionaryHolidayTypes=Gå ind i Hjem - Opsætning - Ordbøger - Typen af ​​orlov for at opsætte de forskellige typer blade. -HolidaySetup=Opsætning af modul Forlad +HolidaySetup=Opsætning af fraværsmodul HolidaysNumberingModules=Nummereringsmodeller til orlovsanmodninger TemplatePDFHolidays=Skabelon til Ferie anmodninger PDF FreeLegalTextOnHolidays=Fri tekst på PDF @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s er sædvanligvis en IKKE arbejdsdag BlockHolidayIfNegative=Bloker hvis saldoen er negativ LeaveRequestCreationBlockedBecauseBalanceIsNegative=Oprettelsen af denne orlovsanmodning er blokeret, fordi din saldo er negativ ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Efter lad spørgsmål %s skal være udkast, annulleret eller nægtet at blive slettet +IncreaseHolidays=Forøg ferie +HolidayRecordsIncreased= %s ferierekorder steg +HolidayRecordIncreased=Ferierekord steg +ConfirmMassIncreaseHoliday=Masseferiestigning +NumberDayAddMass=Antal dage, der skal føjes til udvalget +ConfirmMassIncreaseHolidayQuestion=Er du sikker på, at du vil øge ferien for de(n) valgte post(er) %s? +HolidayQtyNotModified=Saldo af resterende dage for %s er ikke blevet ændret diff --git a/htdocs/langs/da_DK/hrm.lang b/htdocs/langs/da_DK/hrm.lang index 6ef881a462b..c68e4087ffb 100644 --- a/htdocs/langs/da_DK/hrm.lang +++ b/htdocs/langs/da_DK/hrm.lang @@ -2,41 +2,41 @@ # Admin -HRM_EMAIL_EXTERNAL_SERVICE=Email for at forhindre HRM ekstern service -Establishments=Virksomheder -Establishment=Etablering -NewEstablishment=Ny virksomhed -DeleteEstablishment=Slet virksomhed -ConfirmDeleteEstablishment=Er du sikker på, at du ønsker at slette denne virksomhed? -OpenEtablishment=Åbent oprettelse -CloseEtablishment=Luk etablissement +HRM_EMAIL_EXTERNAL_SERVICE=E-mail for at forhindre HRM ekstern service +Establishments=Foretagender +Establishment=Foretagende +NewEstablishment=Nyt Foretagende +DeleteEstablishment=Slet Foretagende +ConfirmDeleteEstablishment=Er du sikker på, at du ønsker at slette dette foretagende? +OpenEtablishment=Åben foretagende +CloseEtablishment=Luk foretagende # Dictionary -DictionaryPublicHolidays=Forlad - Offentlig Helligdage -DictionaryDepartment=HRM - Afdelingsliste -DictionaryFunction=HRM - Job stillinger +DictionaryPublicHolidays=Fravær - Helligdage +DictionaryDepartment=HRM - Organisationsenhed +DictionaryFunction=HRM - Jobstillinger # Module Employees=Medarbejdere -Employee=Employee +Employee=Medarbejder NewEmployee=Ny medarbejder ListOfEmployees=Liste over medarbejdere HrmSetup=Opsætning af HRM-modul -SkillsManagement=Ledelse af færdigheder +SkillsManagement=Uddannelsesstyring HRM_MAXRANK=Maksimalt antal niveauer for at rangere en færdighed -HRM_DEFAULT_SKILL_DESCRIPTION=Standardbeskrivelse af rækker, når færdighed oprettes +HRM_DEFAULT_SKILL_DESCRIPTION=Standardbeskrivelse af rækker, når færdighed er oprettet deplacement=Flytte DateEval=Evalueringsdato JobCard=Jobkort JobPosition=Job JobsPosition=Jobs -NewSkill=Ny kunnen +NewSkill=Ny færdighed SkillType=Færdighedstype -Skilldets=Liste over rækker for denne færdighed +Skilldets=Liste over stillinger for denne færdighed Skilldet=Færdighedsniveau rank=Rang -ErrNoSkillSelected=Ingen færdigheder valgt +ErrNoSkillSelected=Ingen færdighed valgt ErrSkillAlreadyAdded=Denne færdighed er allerede på listen SkillHasNoLines=Denne færdighed har ingen linjer -skill=Evne +skill=Færdighed Skills=Færdigheder SkillCard=Færdighedskort EmployeeSkillsUpdated=Medarbejdernes færdigheder er blevet opdateret (se fanen "Færdigheder" på medarbejderkortet) @@ -44,9 +44,9 @@ Eval=Evaluering Evals=Evalueringer NewEval=Ny evaluering ValidateEvaluation=Valider evaluering -ConfirmValidateEvaluation=Er du sikker på, at du vil validere denne evaluering med reference %s ? +ConfirmValidateEvaluation=Er du sikker på, at du vil validere denne evaluering med referencen %s? EvaluationCard=Evalueringskort -RequiredRank=Påkrævet rangering for dette job +RequiredRank=Påkrævet rang for dette job EmployeeRank=Medarbejderrangering for denne færdighed EmployeePosition=Medarbejder stilling EmployeePositions=Medarbejder stillinger @@ -56,35 +56,37 @@ group2ToCompare=Anden brugergruppe til sammenligning OrJobToCompare=Sammenlign med krav til jobkompetencer difference=Forskel CompetenceAcquiredByOneOrMore=Kompetence erhvervet af en eller flere brugere, men ikke efterspurgt af den anden komparator -MaxlevelGreaterThan=Maks. Niveau større end det ønskede -MaxLevelEqualTo=Max niveau svarende til det krav -MaxLevelLowerThan=Maks. Niveau lavere end den efterspørgsel -MaxlevelGreaterThanShort=Medarbejderniveau større end det anmodede -MaxLevelEqualToShort=Medarbejderniveau er lig med den efterspørgsel -MaxLevelLowerThanShort=Medarbejderniveau lavere end den efterspørgsel +MaxlevelGreaterThan=Maks. niveau større end det anmodede +MaxLevelEqualTo=Max niveau svarende til denne efterspørgsel +MaxLevelLowerThan=Max niveau lavere end dette krav +MaxlevelGreaterThanShort=Medarbejderniveau højere end det efterspurgte +MaxLevelEqualToShort=Medarbejderniveau svarer til den efterspurgte +MaxLevelLowerThanShort=Medarbejderniveau lavere end efterspurgt SkillNotAcquired=Færdighed ikke erhvervet af alle brugere og anmodet af den anden komparator -legend=Legend +legend=Legende TypeSkill=Færdighedstype AddSkill=Tilføj færdigheder til jobbet -RequiredSkills=Påkrævede færdigheder til dette job +RequiredSkills=Nødvendige færdigheder til dette job UserRank=Brugerrangering SkillList=Færdighedsliste SaveRank=Gem rang -knowHow=Vide hvordan -HowToBe=Sådan skal du være -knowledge=Viden -AbandonmentComment=Opgivelseskommentar -DateLastEval=Dato sidste vurdering -NoEval=Der er ikke foretaget nogen evaluering for denne medarbejder +TypeKnowHow=Viden +TypeHowToBe=Sådan skal du være +TypeKnowledge=Viden +AbandonmentComment=Afslagskommentar +DateLastEval=Dato sidste evaluering +NoEval=Ingen evaluering udført for denne medarbejder HowManyUserWithThisMaxNote=Antal brugere med denne rang HighestRank=Højeste rang -SkillComparison=Færdigheds sammenligning +SkillComparison=Færdighedssammenligning ActionsOnJob=Begivenheder på dette job VacantPosition=ledig stilling VacantCheckboxHelper=Hvis du afkrydser denne mulighed, vises ubesatte stillinger (ledig stilling) -SaveAddSkill = Færdighed(er) tilføjet +SaveAddSkill = Færdigheder tilføjet SaveLevelSkill = Færdighedsniveauet er gemt DeleteSkill = Færdighed fjernet -SkillsExtraFields=Supplerende attributter (kompetencer) -JobsExtraFields=Attributs supplementaires (Emplois) -EvaluationsExtraFields=Supplerende attributter (evalueringer) +SkillsExtraFields=Yderligere attributter (færdigheder) +JobsExtraFields=Yderligere attributter (job) +EvaluationsExtraFields=Yderligere attributter (vurderinger) +NeedBusinessTravels=Har brug for forretningsrejser +NoDescription=Ingen beskrivelse diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang index cb9a8b70b60..93502365f83 100644 --- a/htdocs/langs/da_DK/install.lang +++ b/htdocs/langs/da_DK/install.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - install -InstallEasy=Bare følg instruktionerne trin for trin. +InstallEasy=Følg instruktionerne trin for trin. MiscellaneousChecks=Forudsætningskontrol ConfFileExists=Konfigurationsfilen %s findes. ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurationsfilen %s eksisterer ikke og kunne ikke oprettes! @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Konfigurationsfilen %s er ikke skrivbar. Kontroller ConfFileIsWritable=Konfigurationsfilen %s er skrivbar. ConfFileMustBeAFileNotADir=Konfigurationsfil %sskal være en fil, ikke en mappe. ConfFileReload=Genindlæser parametre fra konfigurationsfil. -NoReadableConfFileSoStartInstall=Konfigurationsfilen conf/conf.php eksisterer ikke eller kan ikke genskabes. Vi kører installationsprocessen for at prøve at initialisere den. +NoReadableConfFileSoStartInstall=Konfigurationsfilen conf/conf.php eksisterer ikke eller kan ikke læses. Vi kører installationsprocessen for at prøve at initialisere den. PHPSupportPOSTGETOk=Denne PHP understøtter variablerne POST og GET. PHPSupportPOSTGETKo=Det er muligt, at din PHP-opsætning ikke understøtter variablerne POST og/eller GET. Tjek parameteren variables_order i php.ini. PHPSupportSessions=Denne PHP understøtter sessioner. @@ -24,11 +24,12 @@ ErrorWrongValueForParameter=Du har muligvis indtastet en forkert værdi for para ErrorFailedToCreateDatabase=Kunne ikke oprette databasen '%s'. ErrorFailedToConnectToDatabase=Kunne ikke oprette forbindelse til databasen '%s'. ErrorDatabaseVersionTooLow=Databaseversionen (%s) er for gammel. Version %s eller nyere er påkrævet. -ErrorPHPVersionTooLow=PHP-versionen er for gammel. Version %s er påkrævet. +ErrorPHPVersionTooLow=PHP-versionen er for gammel. Version %s eller nyere er påkrævet. +ErrorPHPVersionTooHigh=PHP-versionen er for høj. Version %s eller lavere er påkrævet. ErrorConnectedButDatabaseNotFound=Forbindelsen til serveren lykkedes, men databasen '%s' blev ikke fundet. ErrorDatabaseAlreadyExists=Databasen '%s' eksisterer allerede. IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke eksisterer, skal du gå tilbage og markere "Opret database". -IfDatabaseExistsGoBackAndCheckCreate=Hvis database findes allerede, gå tilbage og fjern markeringen "Opret database" valgmulighed. +IfDatabaseExistsGoBackAndCheckCreate=Hvis databasen allerede eksisterer, skal du gå tilbage og fjerne markeringen i "Opret database". WarningBrowserTooOld=Versionen af browseren er for gammel. Det anbefales at opgradere din browser til en nyere version af Firefox, Chrome eller Opera. PHPVersion=PHP version License=Bruger licens @@ -94,7 +95,7 @@ DataMigration=Databasemigration (data) DatabaseMigration=Databasemigration (struktur + nogle data) ProcessMigrateScript=Scriptbehandling ChooseYourSetupMode=Vælg din opsætningstilstand og klik på "Start"... -FreshInstall=Frisk installation +FreshInstall=Ny installation FreshInstallDesc=Brug denne tilstand, hvis dette er din første installation. Hvis ikke, kan denne tilstand reparere en ufuldstændig tidligere installation. Hvis du vil opgradere din version, skal du vælge "Opgrader"-tilstand. Upgrade=Opgrader UpgradeDesc=Brug denne tilstand, hvis du har erstattet gamle Dolibarr-filer med filer fra en nyere version. Dette vil opgradere din database og data. diff --git a/htdocs/langs/da_DK/interventions.lang b/htdocs/langs/da_DK/interventions.lang index da458e14a36..4784f2f4fe5 100644 --- a/htdocs/langs/da_DK/interventions.lang +++ b/htdocs/langs/da_DK/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Er du sikker på, at du vil åbne interventionen % GenerateInter=Generer intervention FichinterNoContractLinked=Intervention %s er blevet oprettet uden en tilknyttet kontrakt. ErrorFicheinterCompanyDoesNotExist=Virksomheden eksisterer ikke. Intervention er ikke blevet oprettet. +NextDateToIntervention=Dato for næste interventionsgeneration +NoIntervention=Ingen indgriben diff --git a/htdocs/langs/da_DK/knowledgemanagement.lang b/htdocs/langs/da_DK/knowledgemanagement.lang index 349c9097405..09993049f9f 100644 --- a/htdocs/langs/da_DK/knowledgemanagement.lang +++ b/htdocs/langs/da_DK/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Artikler KnowledgeRecord = Artikel KnowledgeRecordExtraFields = Ekstra felter til artikel GroupOfTicket=Gruppe af billetter -YouCanLinkArticleToATicketCategory=Du kan linke en artikel til en opgave gruppe (så artiklen vil blive foreslået under kvalificeringen af nye billetter) +YouCanLinkArticleToATicketCategory=Du kan linke artiklen til en billetgruppe (så artiklen vil blive fremhævet på alle billetter i denne gruppe) SuggestedForTicketsInGroup=Foreslås til opgave når gruppen er SetObsolete=Angivet som forældet diff --git a/htdocs/langs/da_DK/languages.lang b/htdocs/langs/da_DK/languages.lang index 1de5070ace1..927728f488c 100644 --- a/htdocs/langs/da_DK/languages.lang +++ b/htdocs/langs/da_DK/languages.lang @@ -13,6 +13,7 @@ Language_az_AZ=Aserbajdsjansk Language_bn_BD=Bengali Language_bn_IN=Bengali (Indien) Language_bg_BG=Bulgarsk +Language_bo_CN=tibetansk Language_bs_BA=Bosnisk Language_ca_ES=Catalansk Language_cs_CZ=Tjekkisk @@ -39,6 +40,7 @@ Language_es_AR=Spansk (Argentina) Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) +Language_es_CR=Spansk (Costa Rica) Language_es_DO=Spanish (Dominican Republic) Language_es_EC=Spanish (Ecuador) Language_es_GT=Spansk (Guatemala) @@ -93,6 +95,7 @@ Language_nl_BE=Hollandsk (Belgien) Language_nl_NL=Hollandske Language_pl_PL=Polsk Language_pt_AO=Portugisisk (Angola) +Language_pt_MZ=Portugisisk (Mozambique) Language_pt_BR=Portugisisk (Brasilien) Language_pt_PT=Portugisisk Language_ro_MD=Rumænsk (Moldavien) @@ -115,6 +118,6 @@ Language_ur_PK=Urdu Language_uz_UZ=Usbekisk Language_vi_VN=Vietnamesisk Language_zh_CN=Kinesisk -Language_zh_TW=Kinesisk (traditionelt) -Language_zh_HK=Kinesisk (Hong Kong) -Language_bh_MY=Malay +Language_zh_TW=Kinesisk (traditionel) +Language_zh_HK=Kinesisk (Hongkong) +Language_bh_MY=Malaysisk diff --git a/htdocs/langs/da_DK/loan.lang b/htdocs/langs/da_DK/loan.lang index 9851550c825..239af7bf93c 100644 --- a/htdocs/langs/da_DK/loan.lang +++ b/htdocs/langs/da_DK/loan.lang @@ -3,14 +3,14 @@ Loan=Lån Loans=Lån NewLoan=Nyt lån ShowLoan=Vis lån -PaymentLoan=Lånebetaling +PaymentLoan=Udbetaling af lån LoanPayment=Lånebetaling -ShowLoanPayment=Vis lånbetaling +ShowLoanPayment=Vis lånebetaling LoanCapital=Kapital Insurance=Forsikring Interest=Rente -Nbterms=Antal vilkår -Term=Semester +Nbterms=Antal terminer +Term=Termin LoanAccountancyCapitalCode=Regnskabskonto kapital LoanAccountancyInsuranceCode=Regnskabskonto forsikring LoanAccountancyInterestCode=Regnskabskonto renter @@ -20,15 +20,15 @@ ConfirmPayLoan=Bekræft klassificering af betalt dette lån LoanPaid=Lån betalt ListLoanAssociatedProject=Liste over lån tilknyttet projektet AddLoan=Opret lån -FinancialCommitment=Finansiel forpligtelse +FinancialCommitment=Økonomisk forpligtelse InterestAmount=Rente -CapitalRemain=Kapital forbliver +CapitalRemain=Restgæld TermPaidAllreadyPaid = Denne periode er allerede betalt -CantUseScheduleWithLoanStartedToPaid = Kan ikke bruge planlægger til et lån med betaling startet -CantModifyInterestIfScheduleIsUsed = Du kan ikke ændre interesse, hvis du bruger tidsplan +CantUseScheduleWithLoanStartedToPaid = Kan ikke generere en tidslinje for et lån med en påbegyndt betaling +CantModifyInterestIfScheduleIsUsed = Du kan ikke ændre renten, hvis du bruger tidsplanen # Admin -ConfigLoan=Konfiguration af modullånet -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Regnskabskonti kapital som standard -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Regnskabskontoens renter som standard -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Regnskabskontoforsikring som standard +ConfigLoan=Opsætning af lånemodul +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Konto (fra kontoplanen) skal som standard bruges til kapital (lånemodul) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Konto (fra kontoplanen) bruges som standard til renter (lånemodul) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Konto (fra kontoplanen) skal som standard bruges til forsikring (lånemodul) CreateCalcSchedule=Rediger økonomisk forpligtelse diff --git a/htdocs/langs/da_DK/mailmanspip.lang b/htdocs/langs/da_DK/mailmanspip.lang index b0f19f96de9..1ab8040172c 100644 --- a/htdocs/langs/da_DK/mailmanspip.lang +++ b/htdocs/langs/da_DK/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Abonnements testen blev udført med succes MailmanDeletionSuccess=Unsubscription test blev udført med succes SynchroMailManEnabled=En Mailman opdatering vil blive udført SynchroSpipEnabled=En Spip opdatering vil blive udført -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator adgangskode +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator adgangskode DescADHERENT_MAILMAN_URL=URL til Mailman abonnementer DescADHERENT_MAILMAN_UNSUB_URL=URL til Mailman abonnementer DescADHERENT_MAILMAN_LISTS=Liste (r) til automatisk registrering af nye medlemmer (adskilt af komma) diff --git a/htdocs/langs/da_DK/mails.lang b/htdocs/langs/da_DK/mails.lang index 37e4da3b26b..990dd9266d7 100644 --- a/htdocs/langs/da_DK/mails.lang +++ b/htdocs/langs/da_DK/mails.lang @@ -7,10 +7,10 @@ MailCard=Emailing kortet MailRecipients=Modtagere MailRecipient=Recipient MailTitle=Titel -MailFrom=Sender +MailFrom=Fra MailErrorsTo=Fejl MailReply=Besvar -MailTo=Receiver (r) +MailTo=Til MailToUsers=Til bruger (e) MailCC=Kopier til MailToCCUsers=Kopier til brugere (e) @@ -117,14 +117,14 @@ ToAddRecipientsChooseHere=Hvis du vil tilføje modtagere, skal du vælge i disse NbOfEMailingsReceived=Masse emailings modtaget NbOfEMailingsSend=Mass emailings sent IdRecord=ID record -DeliveryReceipt=Delivery Ack. +DeliveryReceipt=Leverings Bekr. YouCanUseCommaSeparatorForSeveralRecipients=Du kan bruge comma separator til at angive flere modtagere. TagCheckMail=Track mail opening TagUnsubscribe=Unsubscribe link TagSignature=Signatur af afsender EMailRecipient=Modtagers E-mail TagMailtoEmail=Modtager E-mail (herunder html "mailto:" link) -NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. +NoEmailSentBadSenderOrRecipientEmail=E-mail blev ikke sendt. Ugyldig afsender eller modtager adresse. Kontroller bruger profilen. # Module Notifications Notifications=Adviséringer NotificationsAuto=Underretninger Auto. @@ -178,3 +178,4 @@ IsAnAnswer=Er et svar på en indledende e-mail RecordCreatedByEmailCollector=Post oprettet af Email Collector %s fra e-mail %s DefaultBlacklistMailingStatus=Standardværdi for feltet '%s' ved oprettelse af en ny kontaktperson DefaultStatusEmptyMandatory=Tom men obligatorisk +WarningLimitSendByDay=ADVARSEL: Opsætningen eller kontrakten for din instans begrænser dit antal e-mails pr. dag til %s. Forsøg på at sende mere kan resultere i, at din instans bliver langsommere eller suspenderet. Kontakt venligst din support, hvis du har brug for en højere kvote. diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index 22e8731d12a..6037eaed8ec 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -1,33 +1,40 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, SeparatorThousand=. -FormatDateShort=%d/%m/%Y -FormatDateShortInput=%d/%m/%Y +FormatDateShort=%d-%m-%Y +FormatDateShortInput=%d-%m-%Y FormatDateShortJava=dd/MM/yyyy FormatDateShortJavaInput=dd/MM/yyyy FormatDateShortJQuery=dd/mm/yy FormatDateShortJQueryInput=dd/mm/yy -FormatHourShortJQuery=TT:MM +FormatHourShortJQuery=HH:mm FormatHourShort=%H:%M FormatHourShortDuration=%H:%M FormatDateTextShort=%d %b %Y FormatDateText=%d %B %Y -FormatDateHourShort=%d/%m/%Y %H:%M +FormatDateHourShort=%d/%m/%Y %H:%M%p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database forbindelse -NoTemplateDefined=Ingen skabelon til rådighed for denne e-mail-type -AvailableVariables=Tilgængelige substitutionsvariable +DatabaseConnection=Databaseforbindelse +NoTemplateDefined=Ingen skabelon tilgængelig for denne e-mailtype +AvailableVariables=Tilgængelige substitutionsvariabler NoTranslation=Ingen oversættelse Translation=Oversættelse +Translations=Oversættelser CurrentTimeZone=Tidszone PHP (server) EmptySearchString=Indtast ikke tomme søgekriterier EnterADateCriteria=Indtast et datokriterie @@ -50,83 +57,83 @@ ErrorLogoFileNotFound=Logofilen '%s' blev ikke fundet ErrorGoToGlobalSetup=Gå til 'Virksomhed/Organisation' opsætning for at rette dette ErrorGoToModuleSetup=Gå til Modulopsætning for at rette dette ErrorFailedToSendMail=Kunne ikke sende post (afsender=%s, modtager=%s) -ErrorFileNotUploaded=Filen blev ikke uploadet. Tjek, at størrelsen ikke overstiger det tilladte maksimum, at der er ledig plads på disken, og at der ikke allerede er en fil med samme navn i denne mappe. +ErrorFileNotUploaded=Filen blev ikke uploadet. Kontroller, at størrelsen ikke overstiger det tilladte maksimum, at der er ledig plads på disken, og at der ikke allerede er en fil med samme navn i denne mappe. ErrorInternalErrorDetected=Fejl opdaget ErrorWrongHostParameter=Forkert værtsparameter -ErrorYourCountryIsNotDefined=Dit land er ikke defineret. Gå til Hjem-Indstillinger-Rediger og send formularen igen. -ErrorRecordIsUsedByChild=Kunne ikke slette denne post. Denne post bruges af mindst en børnepost. +ErrorYourCountryIsNotDefined=Dit land er ikke defineret. Gå til Hjem-Opsætning-Ordbøger og tilføj det til Lande og send formularen igen. +ErrorRecordIsUsedByChild=Kunne ikke slette denne post. Denne post bruges af mindst én underordnet post. ErrorWrongValue=Forkert værdi ErrorWrongValueForParameterX=Forkert værdi for parameter %s -ErrorNoRequestInError=Ingen anmodning ved fejl +ErrorNoRequestInError=Ingen anmodning ved en fejl ErrorServiceUnavailableTryLater=Tjenesten er ikke tilgængelig i øjeblikket. Prøv igen senere. -ErrorDuplicateField=Dobbelt værdi i et unikt område -ErrorSomeErrorWereFoundRollbackIsDone=Nogle fejl blev fundet. Ændringer er blevet rullet tilbage. -ErrorConfigParameterNotDefined=Parameter %s er ikke defineret i Dolibarr konfigurationsfilen conf.php . -ErrorCantLoadUserFromDolibarrDatabase=Kunne ikke finde bruger %s i Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Fejl, der ikke momssatser defineret for land ' %s'. -ErrorNoSocialContributionForSellerCountry=Fejl, ingen type af skatter/afgifter defineret for landet '%s'. -ErrorFailedToSaveFile=Fejl, kunne ikke gemme filen. -ErrorCannotAddThisParentWarehouse=Du prøver at tilføje et forælderlager, som allerede er et barn i et eksisterende lager +ErrorDuplicateField=Dubleret værdi i et unikt felt +ErrorSomeErrorWereFoundRollbackIsDone=Der blev fundet nogle fejl. Ændringer er blevet rullet tilbage. +ErrorConfigParameterNotDefined=Parameteren %s er ikke defineret i Dolibarr-konfigurationsfilenconf.php. +ErrorCantLoadUserFromDolibarrDatabase=Kunne ikke finde brugeren %s i Dolibarr-databasen. +ErrorNoVATRateDefinedForSellerCountry=Fejl, ingen momssatser defineret for landet '%s'. +ErrorNoSocialContributionForSellerCountry=Fejl, ingen skatter/afgifter defineret for landet '%s'. +ErrorFailedToSaveFile=Fejl, filen kunne ikke gemmes. +ErrorCannotAddThisParentWarehouse=Du forsøger at tilføje et overordnet lager, som allerede er et underordnet lager af et eksisterende lager FieldCannotBeNegative=Feltet "%s" kan ikke være negativt MaxNbOfRecordPerPage=Maks. antal poster pr. side -NotAuthorized=Du har ikke tilladelse til at gøre det. +NotAuthorized=Det er du ikke autoriseret til at gøre det. SetDate=Indstil dato SelectDate=Vælg en dato SeeAlso=Se også %s SeeHere=Se her ClickHere=Klik her Here=Her -Apply=Ansøge +Apply=Anvend BackgroundColorByDefault=Standard baggrundsfarve FileRenamed=Filen blev omdøbt FileGenerated=Filen blev genereret -FileSaved=Filen er blevet gemt +FileSaved=Filen blev gemt FileUploaded=Filen blev uploadet -FileTransferComplete=Fil (er) uploadet succesfuldt -FilesDeleted=Fil(er), der er slettet korrekt -FileWasNotUploaded=En fil er valgt som vedhæng, men endnu ikke uploadet. Klik på "Vedhæft fil" for dette. -NbOfEntries=Antal indgange -GoToWikiHelpPage=Læs online hjælp (Adgang til Internettet er nødvendig) +FileTransferComplete=Fil(er) blev uploadet +FilesDeleted=Fil(er) blev slettet +FileWasNotUploaded=En fil er valgt til vedhæftning, men den er endnu ikke uploadet. Klik på "Vedhæft fil" for dette. +NbOfEntries=Antal poster +GoToWikiHelpPage=Læs online hjælp (internetadgang nødvendig) GoToHelpPage=Læs hjælp DedicatedPageAvailable=Dedikeret hjælpeside relateret til din nuværende skærm HomePage=Hjemmeside -RecordSaved=Data gemt +RecordSaved=Post gemt RecordDeleted=Post slettet -RecordGenerated=Data genereret -LevelOfFeature=Niveau funktionsliste +RecordGenerated=Post genereret +LevelOfFeature=Niveau af funktioner NotDefined=Ikke defineret -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode er sat til %s i konfigurationsfilen conf.php.
    Dette betyder, at adgangskoden databasen er ekstern i forhold til Dolibarr, så ændrer dette felt har ingen effekt. +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr-godkendelsestilstand er indstillet til %s i konfigurationsfilen conf.php.
    Dette betyder, at adgangskodedatabasen er ekstern i forhold til Dolibarr, så ændring af dette felt har muligvis ingen effekt. Administrator=Administrator -Undefined=Undefineret -PasswordForgotten=Har du glemt dit kodeord ? +Undefined=Udefineret +PasswordForgotten=Glemt adgangskode? NoAccount=Ingen konto? SeeAbove=Se ovenfor HomeArea=Hjem LastConnexion=Sidste login PreviousConnexion=Forrige login PreviousValue=Tidligere værdi -ConnectedOnMultiCompany=Forbind til enhed +ConnectedOnMultiCompany=Forbundet til enhed ConnectedSince=Forbundet siden -AuthenticationMode=Autentificerings tilstand -RequestedUrl=Angivne URL +AuthenticationMode=Autentificeringstilstand +RequestedUrl=Anmodet URL DatabaseTypeManager=Database type opsætning -RequestLastAccessInError=Seneste database adgang forspørelses fejl -ReturnCodeLastAccessInError=Retur kode for seneste fejl i database forspørgelse -InformationLastAccessInError=Information efter seneste database adgang anmodning fejl +RequestLastAccessInError=Seneste anmodning om databaseadgang fejlede +ReturnCodeLastAccessInError=Returkode for seneste databaseadgangsfejl +InformationLastAccessInError=Oplysninger om seneste databaseadgangsfejl DolibarrHasDetectedError=Dolibarr har opdaget en teknisk fejl -YouCanSetOptionDolibarrMainProdToZero=Du kan læse logfil eller sæt indstillingen $ dolibarr_main_prod til '0' i din config-fil for at få flere oplysninger. +YouCanSetOptionDolibarrMainProdToZero=Du kan læse logfilen eller indstille muligheden $dolibarr_main_prod til '0' i din konfigurationsfil for at få mere information. InformationToHelpDiagnose=Disse oplysninger kan være nyttige til diagnostiske formål (du kan indstille $dolibarr_main_prod til '1' for at skjule følsomme oplysninger) MoreInformation=Mere information -TechnicalInformation=Tekniske oplysninger -TechnicalID=Teknisk id +TechnicalInformation=Teknisk information +TechnicalID=Teknisk ID LineID=Linje ID -NotePublic=Note (offentlige) +NotePublic=Note (offentlig) NotePrivate=Note (privat) -PrecisionUnitIsLimitedToXDecimals=Dolibarr blev setup at begrænse præcision på enhedspriser til %s decimaler. +PrecisionUnitIsLimitedToXDecimals=Dolibarr blev sat op til at begrænse nøjagtigheden af enhedspriser til %s decimaler. DoTest=Test ToFilter=Filter NoFilter=Intet filter -WarningYouHaveAtLeastOneTaskLate=Advarsel, du har mindst et element, der har overskredet tolerancetiden. +WarningYouHaveAtLeastOneTaskLate=Advarsel, du har mindst ét element, der har overskredet tolerancetiden. yes=ja Yes=Ja no=nej @@ -141,48 +148,48 @@ Always=Altid Never=Aldrig Under=under Period=Periode -PeriodEndDate=Slutdato for perioden -SelectedPeriod=Udvalgt periode +PeriodEndDate=Slutdato for periode +SelectedPeriod=Valgt periode PreviousPeriod=Tidligere periode -Activate=Aktivér +Activate=Aktiver Activated=Aktiveret Closed=Lukket Closed2=Lukket NotClosed=Ikke lukket Enabled=Aktiveret Enable=Aktiver -Deprecated=Underkendt -Disable=Deaktivere +Deprecated=Forældet +Disable=Deaktiver Disabled=Deaktiveret -Add=Tilføj +Add=Tilføje AddLink=Tilføj link RemoveLink=Fjern link -AddToDraft=Tilføj til udkast +AddToDraft=Tilføj til kladde Update=Opdatering Close=Luk -CloseAs=Sæt status til +CloseAs=Indstil status til CloseBox=Fjern widget fra dit dashboard Confirm=Bekræft -ConfirmSendCardByMail=Vil du virkelig sende indholdet af dette kort pr. Mail til %s ? +ConfirmSendCardByMail=Vil du virkelig sende indholdet af dette kort med post til %s? Delete=Slet Remove=Fjerne -Resiliate=Afslutte +Resiliate=Deaktiver Cancel=Annuller Modify=Ret -Edit=Redigér -Validate=Godkend -ValidateAndApprove=Bekræfte og godkende -ToValidate=Skal godkendes -NotValidated=Ikke godkendt -Save=Gem +Edit=Redigere +Validate=Valider +ValidateAndApprove=Valider og godkend +ToValidate=At validere +NotValidated=Ikke valideret +Save=Gemme SaveAs=Gem som SaveAndStay=Gem og bliv -SaveAndNew=Gem og nyt +SaveAndNew=Gem og ny TestConnection=Test forbindelse ToClone=Klon -ConfirmCloneAsk=Er du sikker på, at du vil klone objektet%s? +ConfirmCloneAsk=Er du sikker på, at du vil klone objektet %s? ConfirmClone=Vælg de data, du vil klone: -NoCloneOptionsSpecified=Ingen data at klone defineret. +NoCloneOptionsSpecified=Ingen data, der skal klones, er defineret. Of=af Go=Gå Run=Kør @@ -192,21 +199,22 @@ Hide=Skjule ShowCardHere=Vis kort Search=Søgning SearchOf=Søg -SearchMenuShortCut=Ctrl + shift + f -QuickAdd=Tilføj hurtigt -QuickAddMenuShortCut=Ctrl + shift + l +SearchMenuShortCut=Ctrl + Shift + f +QuickAdd=Hurtig tilføjelse +QuickAddMenuShortCut=Ctrl + Shift + l Valid=Gyldig -Approve=Godkend -Disapprove=Afvist +Approve=Godkende +Disapprove=Afvis ReOpen=Genåbne +OpenVerb=Åben Upload=Upload ToLink=Link Select=Vælg SelectAll=Vælg alle Choose=Vælge -Resize=Tilpasse størrelsen -ResizeOrCrop=Tilpasse størrelsen eller Beskær -Recenter=Recenter +Resize=Tilpas størrelsen +ResizeOrCrop=Tilpas størrelsen eller Beskær +Recenter=Beskæring Author=Forfatter User=Bruger Users=Brugere @@ -214,17 +222,17 @@ Group=Gruppe Groups=Grupper UserGroup=Brugergruppe UserGroups=Brugergrupper -NoUserGroupDefined=Ingen brugergruppe definéret -Password=Kodeord -PasswordRetype=Gentag dit kodeord -NoteSomeFeaturesAreDisabled=Bemærk, at en masse funktioner / moduler er slået fra i denne demonstration. +NoUserGroupDefined=Ingen brugergruppe defineret +Password=Adgangskode +PasswordRetype=Gentag din adgangskode +NoteSomeFeaturesAreDisabled=Bemærk, at mange funktioner/moduler er deaktiveret i denne demonstration. Name=Navn -NameSlashCompany=Navn / firma +NameSlashCompany=Navn/virksomhed Person=Person Parameter=Parameter Parameters=Parametre Value=Værdi -PersonalValue=Personlige værdi +PersonalValue=Personlig værdi NewObject=Ny %s NewValue=Ny værdi OldValue=Gammel værdi %s @@ -232,10 +240,10 @@ CurrentValue=Nuværende værdi Code=Kode Type=Type Language=Sprog -MultiLanguage=Multi-sprog -Note=Nota +MultiLanguage=Flersproget +Note=Note Title=Titel -Label=Label +Label=Etiket RefOrLabel=Ref. eller etiket Info=Log Family=Familie @@ -245,64 +253,64 @@ DescriptionOfLine=Beskrivelse af linje DateOfLine=Dato for linje DurationOfLine=Linjens varighed ParentLine=Overordnet linje-id -Model=Skabelon +Model=Dokument skabelon DefaultModel=Standard dokument skabelon Action=Begivenhed About=Om -Number=Antal -NumberByMonth=Samlede rapporter pr. Måned +Number=Nummer +NumberByMonth=Samlede rapporter pr. måned AmountByMonth=Beløb efter måned Numero=Nummer Limit=Grænseværdi Limits=Grænseværdier Logout=Log ud -NoLogoutProcessWithAuthMode=Ingen applikations afbrydelses funktion med autentificeringstilstand %s -Connection=Log ind +NoLogoutProcessWithAuthMode=Ingen anvendelig afbrydelsesfunktion med godkendelsestilstand %s +Connection=Log på Setup=Opsætning -Alert=Alarm -MenuWarnings=Indberetninger +Alert=Advarsel +MenuWarnings=Advarsler Previous=Forrige Next=Næste Cards=Kort Card=Kort Now=Nu HourStart=Start time -Deadline=Deadline +Deadline=Tidsfrist Date=Dato -DateAndHour=Dato og tid +DateAndHour=Dato og klokkeslæt DateToday=Dags dato DateReference=Referencedato DateStart=Startdato DateEnd=Slutdato -DateCreation=Lavet dato -DateCreationShort=Creat. dato +DateCreation=Oprettelsesdato +DateCreationShort=Opret. dato IPCreation=Oprettelse IP -DateModification=Ændringsdatoen -DateModificationShort=Modif. dato -IPModification=Ændring IP -DateLastModification=Seneste ændring dato -DateValidation=Bekræftelsesdato -DateSigning=Underskrivelsesdato -DateClosing=Udløbsdato -DateDue=Forfaldsdag +DateModification=Ændringsdato +DateModificationShort=Ænd. dato +IPModification=Ændrings IP +DateLastModification=Seneste ændringsdato +DateValidation=Valideringsdato +DateSigning=Underskriftsdato +DateClosing=Lukkedato +DateDue=Forfaldsdato DateValue=Valørdato DateValueShort=Valørdato -DateOperation=Operation dato -DateOperationShort=Opret. Dato -DateLimit=Grænse dato -DateRequest=Anmodning dato -DateProcess=Proces dato +DateOperation=Driftsdato +DateOperationShort=Dr. dato +DateLimit=Sidste frist +DateRequest=Anmodningsdato +DateProcess=Behandlingsdato DateBuild=Rapport genereret den -DatePayment=Dato for betaling +DatePayment=Betalingsdato DateApprove=Godkendelsesdato -DateApprove2=Godkendelse af dato (Anden godkendelse) +DateApprove2=Godkendelsesdato (anden godkendelse) RegistrationDate=Registrerings dato -UserCreation=Oprettelsesbruger -UserModification=Modifikation bruger -UserValidation=Bruger som bekræftet -UserCreationShort=Opret. bruger -UserModificationShort=Modif. bruger -UserValidationShort=Gyldig. bruger +UserCreation=Oprettet af +UserModification=Ændret af +UserValidation=Valideret af +UserCreationShort=Opret. af +UserModificationShort=Ænd. af +UserValidationShort=Valid. af DurationYear=år DurationMonth=måned DurationWeek=uge @@ -318,7 +326,7 @@ WeekShort=Uge Day=Dag Hour=Time Minute=Minut -Second=Anden +Second=Sekund Years=År Months=Måneder Days=Dage @@ -332,20 +340,20 @@ Yesterday=I går Tomorrow=I morgen Morning=Morgen Afternoon=Eftermiddag -Quadri=Kvatal -MonthOfDay=Måned fra den dato +Quadri=Kvartal +MonthOfDay=Dagens måned DaysOfWeek=Ugedage HourShort=T MinuteShort=min -Rate=Hyppighed -CurrencyRate=Valuta omregningskurs -UseLocalTax=Incl. Moms +Rate=Sats +CurrencyRate=Valutaomregningskurs +UseLocalTax=Inkluder moms Bytes=Bytes KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Afsluttet af +UserAuthor=Lavet af UserModif=Opdateret af b=b. Kb=Kb @@ -354,52 +362,52 @@ Gb=Gb Tb=Tb Cut=Klip Copy=Kopier -Paste=Klister +Paste=Indsæt Default=Standard -DefaultValue=Standardværdi -DefaultValues=Standardværdier / filtre / sortering +DefaultValue=Standard værdi +DefaultValues=Standardværdier/filtre/sortering Price=Pris PriceCurrency=Pris (valuta) UnitPrice=Enhedspris UnitPriceHT=Enhedspris (ekskl.) -UnitPriceHTCurrency=Enhedspris (ekskl.) (Valuta) +UnitPriceHTCurrency=Enhedspris (ekskl.) (valuta) UnitPriceTTC=Enhedspris PriceU=Salgspris PriceUHT=Pris (netto) PriceUHTCurrency=U.P (netto) (valuta) PriceUTTC=Brutto (inkl. moms) Amount=Beløb -AmountInvoice=Fakturabeløbet -AmountInvoiced=Beløb faktureres -AmountInvoicedHT=Faktureret beløb (ekskl. Moms) +AmountInvoice=Faktura beløb +AmountInvoiced=Faktureret beløb +AmountInvoicedHT=Faktureret beløb (ekskl. moms) AmountInvoicedTTC=Faktureret beløb (inkl. moms) -AmountPayment=Indbetalingsbeløb +AmountPayment=Betalingsbeløb AmountHTShort=Beløb (ekskl.) AmountTTCShort=Beløb (inkl. moms) AmountHT=Beløb (ekskl. moms) AmountTTC=Beløb (inkl. moms) AmountVAT=Momsbeløb MulticurrencyAlreadyPaid=Allerede betalt, original valuta -MulticurrencyRemainderToPay=Manglene betaling , original valuta -MulticurrencyPaymentAmount=Betalingsbeløb, oprindelig valuta +MulticurrencyRemainderToPay=Manglende betaling , original valuta +MulticurrencyPaymentAmount=Betalingsbeløb, original valuta MulticurrencyAmountHT=Beløb (ekskl. moms), original valuta -MulticurrencyAmountTTC=Beløb (inkl. moms), oprindelig valuta -MulticurrencyAmountVAT=Momsbeløb, oprindelige valuta +MulticurrencyAmountTTC=Beløb (inkl. moms), original valuta +MulticurrencyAmountVAT=Momsbeløb, original valuta MulticurrencySubPrice=Beløb subpris multi valuta AmountLT1=Momsbeløb 2 AmountLT2=Momsbeløb 3 AmountLT1ES=Beløb RE AmountLT2ES=Beløb IRPF -AmountTotal=Beløb i alt +AmountTotal=Total beløb AmountAverage=Gennemsnitligt beløb -PriceQtyMinHT=Prismængde min. (ekskl. skat) -PriceQtyMinHTCurrency=Prismængde min. (ekskl. skat) (valuta) -PercentOfOriginalObject=Procent af originalgenstand +PriceQtyMinHT=Pris mængde min. (ekskl. moms) +PriceQtyMinHTCurrency=Pris mængde min. (ekskl. moms) (valuta) +PercentOfOriginalObject=Procent af originalt objekt AmountOrPercent=Beløb eller procent Percentage=Procent -Total=I alt -SubTotal=Sum -TotalHTShort=I alt (u/moms) +Total=Total +SubTotal=Subtotal +TotalHTShort=Total (ekskl.) TotalHT100Short=I alt 100%% (ekskl.) TotalHTShortCurrency=I alt (ekskl. i valuta) TotalTTCShort=I alt (m/moms) @@ -481,6 +489,7 @@ ActionsOnContact=Begivenheder for denne kontakt / adresse ActionsOnContract=Begivenheder for denne kontrakt ActionsOnMember=Begivenheder for denne medlem ActionsOnProduct=Begivenheder omkring dette produkt +ActionsOnAsset=Begivenheder for dette anlægsaktiv NActionsLate=%s sent ToDo=At gøre Completed=Afsluttet @@ -712,6 +721,7 @@ FeatureDisabled=Modul slået fra MoveBox=Flyt box Offered=Fri NotEnoughPermissions=Du har ikke tilladelse til denne handling +UserNotInHierachy=Denne handling er forbeholdt denne brugers supervisorer SessionName=Session navn Method=Metode Receive=Modtag @@ -801,6 +811,7 @@ URLPhoto=Url af foto/logo SetLinkToAnotherThirdParty=Link til en anden tredjepart LinkTo=Link til LinkToProposal=Link til forslag +LinkToExpedition= Link til ekspeditionen LinkToOrder=Link til ordre LinkToInvoice=Link til faktura LinkToTemplateInvoice=Link til skabelonfaktura @@ -829,7 +840,7 @@ ByDay=Dag BySalesRepresentative=Salgsrepræsentant LinkedToSpecificUsers=Linked til en bestemt bruger kontakt NoResults=Ingen resultater -AdminTools=Admin Tools +AdminTools=Admin. værktøjer SystemTools=Systemværktøjer ModulesSystemTools=Modul værktøjer Test=Test @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Privat downloadlink PrivateDownloadLinkDesc=Du skal være logget, og du skal have tilladelse til at se eller downloade filen Download=Hent DownloadDocument=Hent dokument +DownloadSignedDocument=Download underskrevet dokument ActualizeCurrency=Opdater valutakurs Fiscalyear=Regnskabsår ModuleBuilder=Modul og applikationsbygger @@ -1044,6 +1056,7 @@ SearchIntoContracts=Kontrakter SearchIntoCustomerShipments=Kundeforsendelser SearchIntoExpenseReports=Udgiftsrapporter SearchIntoLeaves=Forlade +SearchIntoKM=Videnbase SearchIntoTickets=Opgaver SearchIntoCustomerPayments=Kundebetalinger SearchIntoVendorPayments=Leverandørbetalinger @@ -1087,7 +1100,7 @@ ToApprove=At godkende GlobalOpenedElemView=Globalt overblik NoArticlesFoundForTheKeyword=Ingen artikler fundet for nøgleordet ' %s ' NoArticlesFoundForTheCategory=Der blev ikke fundet nogen artikel for denne kategori -ToAcceptRefuse=At acceptere | nægte +ToAcceptRefuse=Til godkendelse | afslag ContactDefault_agenda=Begivenhed ContactDefault_commande=Ordre ContactDefault_contrat=Kontrakt @@ -1135,15 +1148,29 @@ EventReminder=Påmindelse om begivenhed UpdateForAllLines=Opdatering til alle linjer OnHold=Afventer Civility=Høflighed -AffectTag=Påvirke tags +AffectTag=Tildel tag +AffectUser=Tildel bruger +SetSupervisor=Sæt Supervisor CreateExternalUser=Opret ekstern bruger -ConfirmAffectTag=Bulk Tags påvirker -ConfirmAffectTagQuestion=Er du sikker på, at du vil påvirke tags til den %s valgte post (er)? +ConfirmAffectTag=Bulk Tag Tildeling +ConfirmAffectUser=Massebrugertildeling +ProjectRole=Rolle tildelt på hvert projekt +TasksRole=Rolle tildelt på hver opgave i hvert projekt +ConfirmSetSupervisor=Bulk supervisor sæt +ConfirmUpdatePrice=Vælg en stigning/reduktionspris +ConfirmAffectTagQuestion=Er du sikker på, at du vil tildele tags til de(n) valgte post(er) %s? +ConfirmAffectUserQuestion=Er du sikker på, at du vil tildele brugere til den eller de valgte %s-poster? +ConfirmSetSupervisorQuestion=Er du sikker på, at du vil indstille supervisor til de(n) valgte %s(e) post(er)? +ConfirmUpdatePriceQuestion=Er du sikker på, at du vil opdatere prisen på den eller de valgte post(er) %s? CategTypeNotFound=Ingen tag-type fundet for typen af poster +Rate=Sats +SupervisorNotFound=Supervisor ikke fundet CopiedToClipboard=Kopieret til udklipsholderen InformationOnLinkToContract=Dette beløb er kun summen af alle linjer i kontrakten. Der tages ikke hensyn til tid. ConfirmCancel=Er du sikker på at du vil annullere EmailMsgID=E-mail MsgID +EmailDate=E-mail dato +SetToStatus=Indstil til status %s SetToEnabled=Indstil til aktiveret SetToDisabled=Indstillet til deaktiveret ConfirmMassEnabling=masse muliggør bekræftelse @@ -1172,8 +1199,14 @@ Terminated=Afsluttet AddLineOnPosition=Tilføj linje på position (i slutningen, hvis tom) ConfirmAllocateCommercial=Tildel salgsrepræsentant bekræftelse ConfirmAllocateCommercialQuestion=Er du sikker på, at du vil tildele den eller de valgte post(er) %s? -CommercialsAffected=Salgsrepræsentanter berørt -CommercialAffected=Sælger berørt -YourMessage=Vælg besked +CommercialsAffected=Salgsrepræsentanter tildelt +CommercialAffected=Salgsrepræsentant tildelt +YourMessage=Din besked YourMessageHasBeenReceived=Din besked er modtaget. Vi svarer eller kontakter dig hurtigst muligt. UrlToCheck=Url for at tjekke +Automation=Automatisering +CreatedByEmailCollector=Oprettet af e-mail-samler +CreatedByPublicPortal=Oprettet fra offentlig portal +UserAgent=Brugeragent +InternalUser=Intern bruger +ExternalUser=Ekstern bruger diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang index 9498d830a2a..673cd548d92 100644 --- a/htdocs/langs/da_DK/members.lang +++ b/htdocs/langs/da_DK/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Et andet medlem (navn: %s, login: ErrorUserPermissionAllowsToLinksToItselfOnly=Af sikkerhedsmæssige grunde skal du have tilladelser til at redigere alle brugere for at kunne linke en medlem til en bruger, der ikke er din. SetLinkToUser=Link til en Dolibarr bruger SetLinkToThirdParty=Link til en Dolibarr tredjepart +MemberCountersArePublic=Tællerne for gyldige medlemmer er offentlige MembersCards=Generering af kort til medlemmer MembersList=Liste over medlemmer MembersListToValid=Liste over udkast til medlemmer (der skal bekræftes) @@ -34,8 +35,10 @@ DateSubscription=Dato for medlemskab DateEndSubscription=Slutdato for medlemskab EndSubscription=Slutning af medlemskab SubscriptionId=Bidrag -id -WithoutSubscription=Uden bidrag -MemberId=Medlem id +WithoutSubscription=Uden medlemskab +WaitingSubscription=Medlemskab afventer +MemberId=Medlems ID +MemberRef=Medlems reference NewMember=Nyt medlem MemberType=Medlem type MemberTypeId=Medlem type id @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Medlemstype kan ikke slettes NewSubscription=Nye bidrag NewSubscriptionDesc=Denne form giver dig mulighed for at registrere dit abonnement som nyt medlem af fundamentet. Hvis du ønsker at forny dit abonnement (hvis der allerede er medlem), bedes du kontakte fundament bord i stedet via e-mail %s. Subscription=Bidrag +AnyAmountWithAdvisedAmount=Enhver mængde efter eget valg, anbefales %s +AnyAmountWithoutAdvisedAmount=Ethvert beløb efter eget valg +CanEditAmountShort=Ethvert beløb +CanEditAmountShortForValues=anbefalet, ethvert beløb +MembershipDuration=Varighed +GetMembershipButtonLabel=Tilslutte Subscriptions=Bidrag SubscriptionLate=Sen SubscriptionNotReceived=Bidrag blev aldrig modtaget @@ -135,7 +144,7 @@ CardContent=Indholdet af din medlem kortet # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Vi vil gerne fortælle dig, at din anmodning om medlemskab blev modtaget.

    ThisIsContentOfYourMembershipWasValidated=Vi vil gerne fortælle dig, at dit medlemskab blev bekræftet med følgende oplysninger:

    -ThisIsContentOfYourSubscriptionWasRecorded=Vi vil gerne fortælle dig, at dit nye abonnement blev registreret.

    +ThisIsContentOfYourSubscriptionWasRecorded=Vi vil gerne fortælle dig, at dit nye abonnement blev registreret. Vedlagt din faktura her.

    ThisIsContentOfSubscriptionReminderEmail=Vi vil fortælle dig, at dit abonnement er ved at udløbe eller allerede er udløbet (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Vi håber, at du fornyer det.

    ThisIsContentOfYourCard=Dette er en oversigt over de oplysninger, vi har om dig. Kontakt os, hvis noget er forkert. DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Meddelelse om den e-mail, der er modtaget i tilfælde af automatisk registrering af en gæst @@ -198,8 +207,10 @@ NbOfSubscriptions=Antal bidrag AmountOfSubscriptions=Beløb opkrævet fra bidrag TurnoverOrBudget=Omsætning (for et selskab) eller Budget (en fond) DefaultAmount=Standardbeløb for bidrag -CanEditAmount=Besøgende kan vælge/redigere beløbet for sit bidrag -MEMBER_NEWFORM_PAYONLINE=Hop på integreret online betaling side +CanEditAmount=Abonnementsbeløbet er gratis +CanEditAmountDetail=Besøgende kan vælge/redigere beløbet for sit bidrag uanset medlemstype +AmountIsLowerToMinimumNotice=på et samlet forfald af%s +MEMBER_NEWFORM_PAYONLINE=Efter online-registreringen skifter du automatisk på onlinebetalingssiden ByProperties=Af natur MembersStatisticsByProperties=Medlemsstatistik af natur VATToUseForSubscriptions=Momssats, der skal bruges til bidrag @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=Oprettelsen af et brugerlogin for medlemmer giver dem mu CreateDolibarrThirdPartyDesc=En tredjepart er den juridiske enhed, der vil blive brugt på fakturaen, hvis du beslutter dig for at generere faktura for hvert bidrag. Du vil kunne oprette det senere under registreringen af bidraget. MemberFirstname=Medlemmets fornavn MemberLastname=Medlemmets efternavn +MemberCodeDesc=Medlemskode, unik for alle medlemmer diff --git a/htdocs/langs/da_DK/modulebuilder.lang b/htdocs/langs/da_DK/modulebuilder.lang index 0f136d2684f..5e6d41ecf51 100644 --- a/htdocs/langs/da_DK/modulebuilder.lang +++ b/htdocs/langs/da_DK/modulebuilder.lang @@ -153,3 +153,4 @@ LinkToParentMenu=Forældremenu (fk_xxxxmenu) ListOfTabsEntries=Liste over faneposter TabsDefDesc=Definer her de faner, som dit modul giver TabsDefDescTooltip=Fanerne, der leveres af dit modul/applikation, er defineret i arrayet $this->tabs i modulbeskrivelsesfilen. Du kan redigere denne fil manuelt eller bruge den indlejrede editor. +BadValueForType=Forkert værdi for type %s diff --git a/htdocs/langs/da_DK/mrp.lang b/htdocs/langs/da_DK/mrp.lang index 7c7d056c755..e47bec20cb1 100644 --- a/htdocs/langs/da_DK/mrp.lang +++ b/htdocs/langs/da_DK/mrp.lang @@ -11,8 +11,8 @@ Bom=Styklister BillOfMaterials=Styklister BillOfMaterialsLines=Stykliste linjer BOMsSetup=Opsætning af modul Styklister -ListOfBOMs=Liste over styklister -ListOfManufacturingOrders=Liste over produktionsordrer +ListOfBOMs=Styklister - stykliste +ListOfManufacturingOrders=Fremstillingsordrer NewBOM=Ny stykliste ProductBOMHelp=Produkt, der skal oprettes (eller skilles ad) med denne stykliste.
    Bemærk: Produkter med egenskaben 'Produktets art' = 'Råmateriale' er ikke synlige på denne liste. BOMsNumberingModules=BOM-nummereringsskabeloner @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Er du sikker på, at du vil klone styklisten %s? ConfirmCloneMo=Er du sikker på, at du vil klone produktionsordren %s? ManufacturingEfficiency=Fremstillingseffektivitet ConsumptionEfficiency=Forbrugseffektivitet +Consumption=Forbrug ValueOfMeansLoss=Værdi på 0,95 betyder et gennemsnit på 5%% tab under fremstillingen eller demonteringen ValueOfMeansLossForProductProduced=Værdi på 0,95 betyder et gennemsnit på 5%% tab af produceret produkt DeleteBillOfMaterials=Slet regning af materialer @@ -82,6 +83,7 @@ ProductsToProduce=Produkter til at producere UnitCost=Enhedspris TotalCost=Udgifter i alt BOMTotalCost=Omkostningerne til at fremstille denne stykliste baseret på prisen for hver mængde og produkt, der skal forbruges (brug Prisen, hvis defineret, ellers Gennemsnit Vægtet pris, hvis defineret, ellers den bedste købspris) +BOMTotalCostService=Hvis modulet "Workstation" er aktiveret, og en arbejdsstation er defineret som standard på linjen, så er beregningen "mængde (omregnet til timer) x arbejdsstation ahr", ellers "mængde (omregnet til timer) x kostpris for ydelsen" GoOnTabProductionToProduceFirst=Du skal først have startet produktionen for at lukke en produktionsordre (se fanen '%s'). Men du kan annullere det. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Et sæt kan ikke bruges i en stykliste eller en produktionsordre Workstation=Arbejdsstation @@ -112,3 +114,7 @@ MOAndLines=Fremstilling af ordrer og linjer MoChildGenerate=Generer Child Mo ParentMo=MO Forælder MOChild=MO barn +BomCantAddChildBom=Nomenklaturen %s er allerede til stede i træet, der fører til nomenklaturen %s +BOMNetNeeds = Stykliste nettobehov +BOMProductsList=BOMs produkter +BOMServicesList=BOMs ydelser diff --git a/htdocs/langs/da_DK/multicurrency.lang b/htdocs/langs/da_DK/multicurrency.lang index bfb8a0d8064..062e6c649cf 100644 --- a/htdocs/langs/da_DK/multicurrency.lang +++ b/htdocs/langs/da_DK/multicurrency.lang @@ -20,3 +20,19 @@ MulticurrencyPaymentAmount=Betalingsbeløb, oprindelig valuta AmountToOthercurrency=Beløb til (i valuta for modtagende konto) CurrencyRateSyncSucceed=Valutakurssynkronisering udført med succes MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Brug dokumentets valuta til onlinebetalinger +TabTitleMulticurrencyRate=Prisliste +ListCurrencyRate=Liste over valutakurser for valutaen +CreateRate=Opret en sats +FormCreateRate=Bedøm oprettelse +FormUpdateRate=Satsændring +successRateCreate=Kurs for valuta %s er blevet føjet til databasen +ConfirmDeleteLineRate=Er du sikker på, at du vil fjerne kursen %s for valuta %s på %s-datoen? +DeleteLineRate=Clear rate +successRateDelete=Sats slettet +errorRateDelete=Fejl ved sletning af satsen +successUpdateRate=Ændring foretaget +ErrorUpdateRate=Fejl ved ændring af satsen +Codemulticurrency=valutakode +UpdateRate=ændre satsen +CancelUpdate=annuller +NoEmptyRate=Prisfeltet må ikke være tomt diff --git a/htdocs/langs/da_DK/oauth.lang b/htdocs/langs/da_DK/oauth.lang index 82428adb10f..a0402533e66 100644 --- a/htdocs/langs/da_DK/oauth.lang +++ b/htdocs/langs/da_DK/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Et token blev genereret og gemt i lokal database NewTokenStored=Token modtaget og gemt ToCheckDeleteTokenOnProvider=Klik her for at kontrollere / slette autorisation gemt af %s OAuth udbyder TokenDeleted=Token slettet -RequestAccess=Klik her for at anmode om / forny adgang og modtage et nyt token for at gemme -DeleteAccess=Klik her for at slette token +RequestAccess=Klik her for at anmode om/forny adgang og modtage et nyt token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Brug følgende URL som omdirigerings-URI, når du opretter dine legitimationsoplysninger hos din OAuth-udbyder: -ListOfSupportedOauthProviders=Indtast legitimationsoplysninger leveret af din OAuth2-udbyder. Kun understøttede OAuth2-udbydere er listet her. Disse tjenester kan bruges af andre moduler, der har brug for OAuth2-godkendelse. -OAuthSetupForLogin=Side for at generere et OAuth-token +ListOfSupportedOauthProviders=Tilføj dine OAuth2-tokenudbydere. Gå derefter ind på din OAuth-udbyders administratorside for at oprette/få et OAuth-id og en hemmelighed og gemme dem her. Når du er færdig, skal du skifte til den anden fane for at generere dit token. +OAuthSetupForLogin=Side for at administrere (generere/slette) OAuth-tokens SeePreviousTab=Se tidligere faneblad +OAuthProvider=OAuth-udbyder OAuthIDSecret=OAuth ID og Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token udløbet @@ -23,10 +24,13 @@ TOKEN_DELETE=Slet gemt token OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Gå til denne side og derefter "Credentials" for at oprette OAuth-legitimationsoplysninger OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Gå til denne side og derefter "Registrer en ny applikation" for at oprette OAuth-legitimationsoplysninger +OAUTH_URL_FOR_CREDENTIAL=Gå til denne side for at oprette eller få dit OAuth-id og din hemmelighed OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth-id +OAUTH_SECRET=OAuth-hemmelighed +OAuthProviderAdded=OAuth-udbyder tilføjet +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Der findes allerede en OAuth-post for denne udbyder og etiket diff --git a/htdocs/langs/da_DK/orders.lang b/htdocs/langs/da_DK/orders.lang index cb1613fd5a5..f726c1b6bab 100644 --- a/htdocs/langs/da_DK/orders.lang +++ b/htdocs/langs/da_DK/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=En åben ordre var allerede knyttet til dette tilbud, så ingen anden ordre blev oprettet automatisk OrdersArea=Kundeordrer SuppliersOrdersArea=Indkøbsordreområde OrderCard=Ordreside diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index 316eb00ac9b..a272beee309 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Indkøbsordre godkendt Notify_ORDER_SUPPLIER_REFUSE=Indkøbsordre afvist Notify_PROPAL_VALIDATE=Tilbud godkendt Notify_PROPAL_CLOSE_SIGNED=Kundeforslag er lukket underskrevet +Notify_PROPAL_CLOSE_SIGNED_WEB=Kundeforslag lukket underskrevet på portalsiden Notify_PROPAL_CLOSE_REFUSED=Kundeforslag afsluttet afslået +Notify_PROPAL_CLOSE_REFUSED_WEB=Kundeforslag lukket afvist på portalsiden Notify_PROPAL_SENTBYMAIL=Tilbud sendt med posten Notify_WITHDRAW_TRANSMIT=Transmission tilbagetrækning Notify_WITHDRAW_CREDIT=Credit tilbagetrækning @@ -177,10 +179,11 @@ SizeUnitdm=dm SizeUnitcm=cm SizeUnitmm=mm SizeUnitinch=tomme -SizeUnitfoot=mund +SizeUnitfoot=fod SizeUnitpoint=punkt BugTracker=Bug tracker SendNewPasswordDesc=Denne formular giver dig mulighed for at anmode om en ny adgangskode. Det vil blive sendt til din email-adresse.
    Ændring vil træde i kraft, når du klikker på bekræftelseslinket i emailen.
    Kontroller din indbakke. +EnterNewPasswordHere=Indtast din nye adgangskode her BackToLoginPage=Tilbage til login-siden AuthenticationDoesNotAllowSendNewPassword=Authentication mode er %s.
    I denne tilstand, Dolibarr ikke kan vide eller ændre din adgangskode.
    Kontakt din systemadministrator, hvis du ønsker at ændre din adgangskode. EnableGDLibraryDesc=Installer eller aktiver GD bibliotek på din PHP installation for at bruge denne indstilling. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Fakturaen %s er godkendt. EMailTextInvoicePayed=Faktura %s er blevet betalt. EMailTextProposalValidated=Tilbud %s er godkendt. EMailTextProposalClosedSigned=Tilbud %s er afsluttet og underskrevet. +EMailTextProposalClosedSignedWeb=Forslag %s er blevet lukket underskrevet på portalsiden. +EMailTextProposalClosedRefused=Forslag %s er blevet lukket afvist. +EMailTextProposalClosedRefusedWeb=Forslag %s er blevet lukket afvise på portalsiden. EMailTextOrderValidated=Bestillingen %s er godkendt. EMailTextOrderApproved=Ordren %s er godkendt. EMailTextOrderValidatedBy=Orden %s er indskrevet af%s. @@ -257,7 +263,7 @@ Chart=Diagram PassEncoding=Kodeord for kodeord PermissionsAdd=Tilladelser tilføjet PermissionsDelete=Tilladelser fjernet -YourPasswordMustHaveAtLeastXChars=Dit kodeord skal have mindst %s tegn +YourPasswordMustHaveAtLeastXChars=Dit kodeord skal have mindst %s tegn PasswordNeedAtLeastXUpperCaseChars=Adgangskoden skal have mindst %s store bogstaver PasswordNeedAtLeastXDigitChars=Adgangskoden skal have mindst %s numeriske tegn PasswordNeedAtLeastXSpecialChars=Adgangskoden skal mindst have %s specielle tegn @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Er du sikker på, at du vil "%s"? ConfirmBtnCommonTitle = Bekræft din handling CloseDialog = Luk Autofill = Autofyld + +# externalsite +ExternalSiteSetup=Opsætning af ekstern hjemmeside modul +ExternalSiteURL=Ekstern hjemmeside-URL for HTML iframe-indhold +ExternalSiteModuleNotComplete=Modul ekstern hjemmeside blev ikke konfigureret korrekt. +ExampleMyMenuEntry=Min menuindgang + +# ftp +FTPClientSetup=Opsætning af FTP klientmodul +NewFTPClient=Ny opsætning af FTP/SFTP-forbindelse +FTPArea=FTP/SFTP-område +FTPAreaDesc=Denne skærm viser opsætning af en FTP-server. +SetupOfFTPClientModuleNotComplete=Opsætningen af FTP-klientmodulet ser ud til at være ufuldstændig +FTPFeatureNotSupportedByYourPHP=Din PHP understøtter ikke FTP/FTPS/SFTP-funktioner +FailedToConnectToFTPServer=Kunne ikke oprette forbindelse til serveren (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Kunne ikke logge på serveren med defineret login/adgangskode +FTPFailedToRemoveFile=Filen %s kunne ikke fjernes. +FTPFailedToRemoveDir=Det lykkedes ikke at fjerne mappen %s: Kontroller rettigheder og at mappen er tom. +FTPPassiveMode=Passiv tilstand +ChooseAFTPEntryIntoMenu=Vælg en FTP server i menuen... +FailedToGetFile=Kunne ikke hente filer %s +ErrorFTPNodisconnect=Fejl ved frakobling af FTP/SFTP-server +FileWasUpload=Filen %s blev uploadet +FTPFailedToUploadFile=Kunne ikke uploade filen %s . +AddFolder=Opret mappe +FileWasCreateFolder=Mappe %s er blevet oprettet +FTPFailedToCreateFolder=Kunne ikke oprette mappen %s . diff --git a/htdocs/langs/da_DK/partnership.lang b/htdocs/langs/da_DK/partnership.lang index fef391aa094..a45f85923a4 100644 --- a/htdocs/langs/da_DK/partnership.lang +++ b/htdocs/langs/da_DK/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnerskabsledelse PartnershipDescription=Ledelse af modulpartnerskab PartnershipDescriptionLong= Ledelse af modulpartnerskab Partnership=Partnerskab +Partnerships=Partnerskaber AddPartnership=Tilføj partnerskab CancelPartnershipForExpiredMembers=Partnerskab: Annuller partnerskab med medlemmer med udløbne abonnementer PartnershipCheckBacklink=Partnerskab: Tjek henvisende backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerskab: Tjek henvisende backlink # Menu # NewPartnership=Nyt partnerskab +NewPartnershipbyWeb= Dit partnerskab blev tilføjet med succes. ListOfPartnerships=Liste over partnerskab # diff --git a/htdocs/langs/da_DK/paypal.lang b/htdocs/langs/da_DK/paypal.lang index 05951b1aabc..5bc0474b367 100644 --- a/htdocs/langs/da_DK/paypal.lang +++ b/htdocs/langs/da_DK/paypal.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=PayPal-modul opsætning -PaypalDesc=Dette modul tillader betaling med kunder via PayPal. Dette kan bruges til en ad hoc-betaling eller en betaling relateret til en Dolibarr objekt (faktura, ordre, ...) +PaypalDesc=Dette modul tillader betaling fra kunder via PayPal . Dette kan bruges til en ad-hoc betaling eller til en betaling relateret til et Dolibarr objekt (faktura, ordre, ...) PaypalOrCBDoPayment=Betal med PayPal (kort eller PayPal) PaypalDoPayment=Betal med PayPal PAYPAL_API_SANDBOX=Mode test / sandkasse diff --git a/htdocs/langs/da_DK/productbatch.lang b/htdocs/langs/da_DK/productbatch.lang index b896998f58d..abc393a2f20 100644 --- a/htdocs/langs/da_DK/productbatch.lang +++ b/htdocs/langs/da_DK/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Parti serie / Serienr: %s printEatby=Pluk: %s printSellby=Solgt af: %s printQty=Antal: %d +printPlannedWarehouse=Lager: %s AddDispatchBatchLine=Tilføj en linje for lager holdbarhed WhenProductBatchModuleOnOptionAreForced=Når modulet PartiSerie/SerieNr. er aktiveret, tvunget automatisk lagernedgang til at 'Reducere rigtige lagre når forsendelse bekræftelse' og automatisk stigningstilstand er tvunget til at "Øge ægte lagre ved manuel afsendelse til lager" og kan ikke redigeres. Andre muligheder kan defineres som ønsket. ProductDoesNotUseBatchSerial=Dette produkt bruger ikke parti Serie / serienummer @@ -43,3 +44,4 @@ HideLots=Skjul masser OutOfOrder=Virker ikke InWorkingOrder=I funktionsdygtig stand ToReplace=Erstatte +CantMoveNonExistantSerial=Fejl. Du beder om et træk på en plade til en serial, der ikke eksisterer længere. Det kan være, du tager den samme serie på samme lager flere gange i samme forsendelse, eller den blev brugt af en anden forsendelse. Fjern denne forsendelse og klargør en anden. diff --git a/htdocs/langs/da_DK/products.lang b/htdocs/langs/da_DK/products.lang index fb913e4b208..3ac0719ffd6 100644 --- a/htdocs/langs/da_DK/products.lang +++ b/htdocs/langs/da_DK/products.lang @@ -151,7 +151,7 @@ PredefinedProductsToPurchase=Predefineret produkt til køb PredefinedServicesToPurchase=Predefinerede tjenester til køb PredefinedProductsAndServicesToPurchase=Predefinerede produkter / tjenester til køb NotPredefinedProducts=Ikke foruddefinerede produkter / tjenester -GenerateThumb=Generer tommelfinger +GenerateThumb=Generer miniature ServiceNb=Service # %s ListProductServiceByPopularity=Liste over varer/ydelser efter popularitet ListProductByPopularity=Liste over varer efter popularitet @@ -202,7 +202,7 @@ liter=liter l=L unitP=Stk. unitSET=Sæt -unitS=Anden +unitS=Sekund unitH=Time unitD=Dag unitG=Gram @@ -262,7 +262,7 @@ Quarter1=1st. Kvarter Quarter2=2nd. Kvarter Quarter3=3rd. Kvarter Quarter4=4th. Kvarter -BarCodePrintsheet=Udskriv stregkode +BarCodePrintsheet=Udskriv stregkoder PageToGenerateBarCodeSheets=Med dette værktøj kan du udskrive ark med stregkode-klistermærker. Vælg format for din klistermærkeside, type stregkode og stregkodes værdi, og klik derefter på knappen %s . NumberOfStickers=Antal klistermærker til udskrivning på side PrintsheetForOneBarCode=Udskriv flere klistermærker for en stregkode @@ -345,7 +345,7 @@ PossibleValues=Mulige værdier GoOnMenuToCreateVairants=Gå på menu %s - %s for at forberede attributvarianter (som farver, størrelse, ...) UseProductFournDesc=Tilføj en funktion for at definere produktbeskrivelsen defineret af leverandørerne (for hver leverandørreference) ud over beskrivelsen for kunder ProductSupplierDescription=Leverandørbeskrivelse for produktet -UseProductSupplierPackaging=Brug emballage til leverandørpriser (genberegn mængder i henhold til emballage, der er angivet på leverandørpris, når du tilføjer / opdaterer linje i leverandørdokumenter) +UseProductSupplierPackaging=Brug emballage til priser afrundet til multipla for indkøbspriser (genberegn mængder i henhold til multipla angivet på indkøbspriser, når du tilføjer/opdaterer linje i et leverandørdokument) PackagingForThisProduct=Emballage PackagingForThisProductDesc=Du vil automatisk købe et antal af denne mængde. QtyRecalculatedWithPackaging=Mængden af linjen blev beregnet om efter leverandøremballage @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Handling kun tilgængelig på variant af pro ProductsPricePerCustomer=Produktpriser pr. Kunde ProductSupplierExtraFields=Yderligere attributter (leverandørpriser) DeleteLinkedProduct=Slet det underordnede produkt, der er knyttet til kombinationen -AmountUsedToUpdateWAP=Beløb, der skal bruges til at opdatere den vejede gennemsnitlige pris +AmountUsedToUpdateWAP=Enhedsbeløb, der skal bruges til at opdatere den vægtede gennemsnitspris PMPValue=Værdi PMPValueShort=WAP mandatoryperiod=Obligatoriske perioder @@ -416,6 +416,7 @@ ProductsMergeSuccess=Produkter er blevet slået sammen ErrorsProductsMerge=Fejl i produkter flettes sammen SwitchOnSaleStatus=Slå salgsstatus til SwitchOnPurchaseStatus=Slå købsstatus til +UpdatePrice=Forøg/sænk kundeprisen StockMouvementExtraFields= Ekstra felter (aktiebevægelse) InventoryExtraFields= Ekstra felter (beholdning) ScanOrTypeOrCopyPasteYourBarCodes=Scan eller skriv eller kopier/indsæt dine stregkoder @@ -427,3 +428,4 @@ RealValuation=Virkelig værdiansættelse ConfirmEditExtrafield = Vælg det ekstrafelt, du vil ændre ConfirmEditExtrafieldQuestion = Er du sikker på, at du vil ændre dette ekstrafelt? ModifyValueExtrafields = Ændre værdien af et ekstrafelt +OrProductsWithCategories=Eller produkter med tags/kategorier diff --git a/htdocs/langs/da_DK/projects.lang b/htdocs/langs/da_DK/projects.lang index d4e4a57caa3..e040819d02c 100644 --- a/htdocs/langs/da_DK/projects.lang +++ b/htdocs/langs/da_DK/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Dette synspunkt præsenterer alle projekter og opgaver, som du f TasksDesc=Dette synspunkt præsenterer alle projekter og opgaver (din brugertilladelser give dig tilladelse til at se alt). AllTaskVisibleButEditIfYouAreAssigned=Alle opgaver for kvalificerede projekter er synlige, men du kan kun indtaste tid til opgave tildelt til den valgte bruger. Tildel opgave, hvis du skal indtaste tid på den. OnlyYourTaskAreVisible=Kun opgaver, der er tildelt dig, er synlige. Hvis du har brug for at indtaste tid på en opgave, og hvis opgaven ikke er synlig her, skal du tildele opgaven til dig selv. +ImportDatasetProjects=Projekter eller muligheder ImportDatasetTasks=Opgaver af projekter ProjectCategories=Projektetiketter / kategorier NewProject=Nyt projekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Mængde af muligheder for åbne projekter e OpportunitiesStatusForProjects=Mængde af muligheder for projekter efter status ShowProject=Vis projekt ShowTask=Vis opgave +SetThirdParty=Indstil tredjepart SetProject=Indstil projekt +OutOfProject=Ude af projekt NoProject=Intet projekt defineret NbOfProjects=Antal projekter NbOfTasks=Antal opgaver @@ -122,7 +125,8 @@ ValidateProject=Validér projet ConfirmValidateProject=Er du sikker på, at du vil bekræfte dette projekt? CloseAProject=Luk projekt ConfirmCloseAProject=Er du sikker på at du vil lukke dette projekt? -AlsoCloseAProject=Luk også projektet (hold det åbent, hvis du stadig skal følge produktionsopgaverne på det) +AlsoCloseAProject=Luk også projekt +AlsoCloseAProjectTooltip=Hold den åben, hvis du stadig skal følge produktionsopgaver på den ReOpenAProject=Åbn projekt ConfirmReOpenAProject=Er du sikker på, at du vil genåbne dette projekt? ProjectContact=Kontakter af projektet @@ -165,7 +169,7 @@ OpportunityProbability=Mulighed sandsynlighed OpportunityProbabilityShort=Sandsynlighed OpportunityAmount=Mulighedsbeløb OpportunityAmountShort=Mulighed beløb -OpportunityWeightedAmount=Vægtet mængde af mulighed +OpportunityWeightedAmount=Mængde af mulighed, vægtet efter sandsynlighed OpportunityWeightedAmountShort=Vægtet mængde af mulighed OpportunityAmountAverageShort=Gennemsnitligt muligheds beløb OpportunityAmountWeigthedShort=Beregnet muligheds beløb @@ -238,7 +242,7 @@ OppStatusPENDING=Afventer OppStatusWON=Vundet OppStatusLOST=Tabt Budget=Budget -AllowToLinkFromOtherCompany=Lad det link projekt fra andre firma

    Supported værdier:
    - Hold tom: Kan forbinde ethvert projekt af selskabet (standard)
    - "alle": Kan forbinde projekter, selv projekter af andre virksomheder
    -En liste over tredjeparts-id'er adskilt af kommaer: kan linke alle projekter fra disse tredjeparter (Eksempel: 123.495,53)
      +AllowToLinkFromOtherCompany=Tillad at linke et element til et projekt fra en anden virksomhed

    Understøttede værdier:
    - Hold tom: Kan linke elementer til ethvert project i den samme virksomhed (standard)
    - "alle": Kan linke elementer til alle projekter, selv projekter fra ander virksomheder
    - En liste over tredjeparts-id'er adskilt af kommaer: kan linke elementer til alle projekter fra disse tredjeparter (eksempel: 123,4795,53)
    LatestProjects=Seneste %s projekter LatestModifiedProjects=Seneste %s ændrede projekter OtherFilteredTasks=Andre filtrerede opgaver @@ -259,7 +263,7 @@ TimeSpentInvoiced=Faktureret tid TimeSpentForIntervention=Tid brugt TimeSpentForInvoice=Tid brugt OneLinePerUser=En linje pr. Bruger -ServiceToUseOnLines=Service til brug på linjer +ServiceToUseOnLines=Service til brug på linjer som standard InvoiceGeneratedFromTimeSpent=Faktura %s er genereret fra tidsforbrug til projektet InterventionGeneratedFromTimeSpent=Intervention %s er genereret fra tid brugt på projektet ProjectBillTimeDescription=Tjek om du indtaster timeseddel på opgaver projekt og du planlægger at generere faktura (er) fra timeseddel til regningen kunden af projektet (ikke kontrollere, hvis du planlægger at oprette faktura, der ikke er baseret på indgåede timesedler). Bemærk: For at generere faktura, gå på fanen 'Tidsforbruget' af projektet og vælg linjer til at omfatte. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Fortjeneste beregnes ved hjælp af AddPersonToTask=Føj også til opgaver UsageOrganizeEvent=Anvendelse: Begivenhedsorganisation PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klassificer projektet som lukket, når alle dets opgaver er afsluttet (100%% fremskridt) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Bemærk: eksisterende projekter med alle opgaver ved 100%%-fremskridt påvirkes ikke: du bliver nødt til at lukke dem manuelt. Denne mulighed påvirker kun åbne projekter. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Bemærk: eksisterende projekter med alle opgaver, der allerede er indstillet til en fremdrift på 100%%, vil ikke blive påvirket: du bliver nødt til at lukke dem manuelt. Denne mulighed påvirker kun åbne projekter. SelectLinesOfTimeSpentToInvoice=Vælg tidslinjer, der ikke er faktureret, og masseforanstaltning "Generer faktura" for at fakturere dem ProjectTasksWithoutTimeSpent=Projektopgaver uden brugt tid FormForNewLeadDesc=Tak for at udfylde nedenstående formular for at kontakte os. Du kan også sende os en e -mail direkte til %s . @@ -294,3 +298,4 @@ EnablePublicLeadForm=Aktiver den offentlige kontaktformular NewLeadbyWeb=Din besked eller anmodning er blevet optaget. Vi svarer eller kontakter dig snarest. NewLeadForm=Ny kontaktformular LeadFromPublicForm=Online lead fra offentlig form +ExportAccountingReportButtonLabel=Få rapport diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang index a9acc20ba3f..0905858b5d4 100644 --- a/htdocs/langs/da_DK/propal.lang +++ b/htdocs/langs/da_DK/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Tilgængelighed forsinkelse SetAvailability=Indstil tilgængelighed forsinkelse AfterOrder=efter at OtherProposals=Andre forslag + ##### Availability ##### AvailabilityTypeAV_NOW=Øjeblikkelig AvailabilityTypeAV_1W=En uge AvailabilityTypeAV_2W=2 uger AvailabilityTypeAV_3W=3 uger AvailabilityTypeAV_1M=1 måned -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Repræsentant for opfølgning af tilbud TypeContact_propal_external_BILLING=Kundefaktura kontakt TypeContact_propal_external_CUSTOMER=Kundekontakt for opfølgning af tilbud TypeContact_propal_external_SHIPPING=Kundekontakt for levering + # Document models -DocModelAzurDescription=En komplet forslagsmodel (gammel implementering af Cyan-skabelon) -DocModelCyanDescription=En komplet forslagsmodel -DefaultModelPropalCreate=Oprettelse af skabelon -DefaultModelPropalToBill=Skabelon, der skal benyttes, når et tilbud lukkes (med fakturering) -DefaultModelPropalClosed=Skabelon, der skal benyttes, når et tilbud lukkes (uden fakturering) -ProposalCustomerSignature=Skriftlig accept, firmastempel, dato og underskrift -ProposalsStatisticsSuppliers=Forhandler forslagsstatistik -CaseFollowedBy=Sag efterfulgt af -SignedOnly=Kun underskrevet -NoSign=Sæt ikke underskrevet -NoSigned=sæt ikke underskrevet CantBeNoSign=kan ikke indstilles ikke underskrevet +CaseFollowedBy=Sag efterfulgt af ConfirmMassNoSignature=Bulk Ikke underskrevet bekræftelse ConfirmMassNoSignatureQuestion=Er du sikker på, at du vil indstille ikke-signerede de valgte poster? -IsNotADraft=er ikke et udkast -PassedInOpenStatus=er blevet valideret -Sign=Underskrift -Signed=underskrevet -ConfirmMassValidation=Bulk Valider bekræftelse ConfirmMassSignature=Bulk signatur bekræftelse -ConfirmMassValidationQuestion=Er du sikker på, at du vil validere de valgte poster? ConfirmMassSignatureQuestion=Er du sikker på, at du vil underskrive de valgte poster? -IdProposal=Forslags-id +ConfirmMassValidation=Bulk Valider bekræftelse +ConfirmMassValidationQuestion=Er du sikker på, at du vil validere de valgte poster? +ConfirmRefusePropal=Er du sikker på, at du vil afvise dette kommercielle tilbud? +ContractSigned=Kontrakt underskrevet +DefaultModelPropalClosed=Skabelon, der skal benyttes, når et tilbud lukkes (uden fakturering) +DefaultModelPropalCreate=Oprettelse af skabelon +DefaultModelPropalToBill=Skabelon, der skal benyttes, når et tilbud lukkes (med fakturering) +DocModelAzurDescription=En komplet forslagsmodel (gammel implementering af Cyan-skabelon) +DocModelCyanDescription=En komplet forslagsmodel +FichinterSigned=Intervention underskrevet IdProduct=Produkt-id +IdProposal=Forslags-id +IsNotADraft=er ikke et udkast LineBuyPriceHT=Købspris Beløb fratrukket skat for linje -SignPropal=Accepter forslaget +NoSign=Afvis +NoSigned=sæt ikke underskrevet +PassedInOpenStatus=er blevet valideret +PropalAlreadyRefused=Tilbud blev allerede afvist +PropalAlreadySigned=Forslaget er allerede godkendt +PropalRefused=Tilbud blev afvist +PropalSigned=Forslaget accepteret +ProposalCustomerSignature=Skriftlig accept, firmastempel, dato og underskrift +ProposalsStatisticsSuppliers=Forhandler forslagsstatistik RefusePropal=Afvis tilbud Sign=Underskrift -NoSign=Sæt ikke underskrevet -PropalAlreadySigned=Forslaget er allerede godkendt -PropalAlreadyRefused=Tilbud blev allerede afvist -PropalSigned=Forslaget accepteret -PropalRefused=Tilbud blev afvist -ConfirmRefusePropal=Er du sikker på, at du vil afvise dette kommercielle tilbud? +SignContract=Underskriv kontrakt +SignFichinter=Skilteintervention +SignPropal=Accepter forslaget +Signed=underskrevet +SignedOnly=Kun underskrevet diff --git a/htdocs/langs/da_DK/receptions.lang b/htdocs/langs/da_DK/receptions.lang index 75494647560..7890fcdf8de 100644 --- a/htdocs/langs/da_DK/receptions.lang +++ b/htdocs/langs/da_DK/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Udkast til StatusReceptionValidatedShort=bekræftet StatusReceptionProcessedShort=Behandlet ReceptionSheet=Modtagelse ark +ValidateReception=Bekræft modtagelse ConfirmDeleteReception=Er du sikker på, at du vil slette denne modtagelse? ConfirmValidateReception=Er du sikker på, at du vil validere denne modtagelse med reference %s ? ConfirmCancelReception=Er du sikker på, at du vil annullere denne modtagelse? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Nummerering modul til receptioner ReceptionsReceiptModel=Dokumentskabeloner til modtagelser NoMorePredefinedProductToDispatch=Ikke flere foruddefinerede produkter, der skal sendes ReceptionExist=Der findes en reception -ByingPrice=Købs pris ReceptionBackToDraftInDolibarr=Modtagelse %s tilbage til udkast ReceptionClassifyClosedInDolibarr=Reception %s klassificeret Lukket ReceptionUnClassifyCloseddInDolibarr=Receptionen %s genåbner diff --git a/htdocs/langs/da_DK/recruitment.lang b/htdocs/langs/da_DK/recruitment.lang index ffcdd40040f..1466b14a6eb 100644 --- a/htdocs/langs/da_DK/recruitment.lang +++ b/htdocs/langs/da_DK/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-mail-rekrutterer ToUseAGenericEmail=At bruge en generisk e-mail. Hvis det ikke er defineret, vil e-mailen til den ansvarlige for rekrutteringen blive brugt NewCandidature=Ny applikation ListOfCandidatures=Liste over applikationer -RequestedRemuneration=Anmodet vederlag -ProposedRemuneration=Foreslået vederlag +Remuneration=Løn +RequestedRemuneration=Ønsket løn +ProposedRemuneration=Foreslået løn ContractProposed=Foreslået kontrakt ContractSigned=Kontrakt underskrevet ContractRefused=Kontrakten blev afvist RecruitmentCandidature=Ansøgning JobPositions=Jobstillinger RecruitmentCandidatures=Ansøgninger -InterviewToDo=Interview at gøre +InterviewToDo=Kontakter at følge AnswerCandidature=Ansøgning svar YourCandidature=Din ansøgning YourCandidatureAnswerMessage=Tak for din ansøgning.
    ... diff --git a/htdocs/langs/da_DK/salaries.lang b/htdocs/langs/da_DK/salaries.lang index d820149ac05..a3bd48bd01c 100644 --- a/htdocs/langs/da_DK/salaries.lang +++ b/htdocs/langs/da_DK/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Regnskabskonto bruges til tredjepart -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Den dedikerede regnskabskonto, der er defineret på brugerkort, vil kun blive anvendt til underledere. Denne vil blive brugt til General Ledger og som standardværdi for Subledger regnskab, hvis dedikeret brugerregnskabskonto på bruger ikke er defineret. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto (fra kontoplanen) bruges som standard til "bruger" tredjeparter +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Den dedikerede konto, der er defineret på brugerkortet, vil kun blive brugt til underreskontering. Denne vil blive brugt til hovedbog og som standardværdi for underreskontering, hvis dedikeret brugerkonti på bruger ikke er defineret. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Regnskabskonto som standard for lønudbetalinger CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Lad som standard tomt være indstillingen "Opret automatisk en samlet betaling", når du opretter en løn Salary=Løn @@ -24,3 +24,4 @@ SalariesStatistics=Lønstatistik SalariesAndPayments=Løn og betalinger ConfirmDeleteSalaryPayment=Vil du slette denne lønudbetaling? FillFieldFirst=Udfyld medarbejderfeltet først +UpdateAmountWithLastSalary=Sæt beløb med sidste løn diff --git a/htdocs/langs/da_DK/sendings.lang b/htdocs/langs/da_DK/sendings.lang index d637fb62d51..27c589a6fb1 100644 --- a/htdocs/langs/da_DK/sendings.lang +++ b/htdocs/langs/da_DK/sendings.lang @@ -1,45 +1,45 @@ # Dolibarr language file - Source file is en_US - sendings RefSending=Ref. afsendelse -Sending=Sender -Sendings=Sendings +Sending=Forsendelse +Sendings=Forsendelser AllSendings=Alle forsendelser -Shipment=Sender +Shipment=Forsendelse Shipments=Forsendelser ShowSending=Vis forsendelser Receivings=Leverings kvitteringer -SendingsArea=Sendings område -ListOfSendings=Liste over sendings -SendingMethod=Afsendelse metode +SendingsArea=Forsendelses område +ListOfSendings=Liste over forsendelser +SendingMethod=Afsendelses metode LastSendings=Seneste %s forsendelser -StatisticsOfSendings=Statistik over sendings -NbOfSendings=Antal sendings +StatisticsOfSendings=Statistik over forsendelser +NbOfSendings=Antal forsendelser NumberOfShipmentsByMonth=Antal forsendelser pr. Måned SendingCard=Forsendelse kort -NewSending=Ny afsendelse -CreateShipment=Opret afsendelse +NewSending=Ny forsendelse +CreateShipment=Opret forsendelse QtyShipped=Antal afsendt -QtyShippedShort=Antal skibe. +QtyShippedShort=Antal afsendt QtyPreparedOrShipped=Antal forberedt eller afsendt QtyToShip=Antal til afsendelse QtyToReceive=Antal at modtage QtyReceived=Antal modtagne QtyInOtherShipments=Antal i andre forsendelser KeepToShip=Bliv ved at sende -KeepToShipShort=Forblive -OtherSendingsForSameOrder=Andre sendings for denne ordre +KeepToShipShort=Tilbage +OtherSendingsForSameOrder=Andre forsendelser i denne ordre SendingsAndReceivingForSameOrder=Forsendelser og kvitteringer for denne ordre -SendingsToValidate=Henvist til bekræfte -StatusSendingCanceled=Aflyst -StatusSendingCanceledShort=Aflyst +SendingsToValidate=Forsendelser til bekræftelse +StatusSendingCanceled=Annulleret +StatusSendingCanceledShort=Annulleret StatusSendingDraft=Udkast StatusSendingValidated=Bekræftet (varer til afsendelse eller allerede afsendt) -StatusSendingProcessed=Forarbejdet +StatusSendingProcessed=Gennemført StatusSendingDraftShort=Udkast -StatusSendingValidatedShort=Bekræftet +StatusSendingValidatedShort=Gennemført StatusSendingProcessedShort=Forarbejdet SendingSheet=Forsendelsesark ConfirmDeleteSending=Er du sikker på, at du vil slette denne forsendelse? -ConfirmValidateSending=Er du sikker på, at du vil bekræfte denne forsendelse med henvisning %s ? +ConfirmValidateSending=Er du sikker på, at du vil bekræfte denne forsendelse med henvisning %s? ConfirmCancelSending=Er du sikker på, at du vil annullere denne forsendelse? DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Advarsel, ingen varer venter på at blive sendt. @@ -59,7 +59,7 @@ ProductQtyInCustomersOrdersRunning=Produktmængde fra åbne salgsordrer ProductQtyInSuppliersOrdersRunning=Produktmængde fra åbne indkøbsordrer ProductQtyInShipmentAlreadySent=Produktmængde fra åben salgsordre allerede sendt ProductQtyInSuppliersShipmentAlreadyRecevied=Produktmængde fra allerede modtagne åbne indkøbsordrer -NoProductToShipFoundIntoStock=Intet produkt til skib fundet i lageret %s . Ret lager eller gå tilbage for at vælge et andet lager. +NoProductToShipFoundIntoStock=Intet produkt til afsendelse fundet i lageret %s. Ret lager eller gå tilbage for at vælge et andet lager. WeightVolShort=Vægt / vol. ValidateOrderFirstBeforeShipment=Du skal først bekræfte ordren, inden du kan foretage forsendelser. diff --git a/htdocs/langs/da_DK/sms.lang b/htdocs/langs/da_DK/sms.lang index d6af28933f3..fced7650095 100644 --- a/htdocs/langs/da_DK/sms.lang +++ b/htdocs/langs/da_DK/sms.lang @@ -8,7 +8,7 @@ SmsTargets=Mål SmsRecipients=Mål SmsRecipient=Mål SmsTitle=Beskrivelse -SmsFrom=Sender +SmsFrom=Afsender SmsTo=Mål SmsTopic=Emne af SMS SmsText=Besked diff --git a/htdocs/langs/da_DK/stocks.lang b/htdocs/langs/da_DK/stocks.lang index b3ef7bc27f8..72bb4f20ca8 100644 --- a/htdocs/langs/da_DK/stocks.lang +++ b/htdocs/langs/da_DK/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Dato i fremtiden StocksByLotSerial=Lagerført efter parti/seriel LotSerial=Parti/Serienr LotSerialList=Liste over partier/seriernr. +SubjectToLotSerialOnly=Produkter kun underlagt parti/serie Movements=Bevægelser ErrorWarehouseRefRequired=Varelagers reference navn er påkrævet ListOfWarehouses=Liste over Varelagre @@ -48,7 +49,7 @@ StockCorrection=Lagerkorrektion CorrectStock=Korrekt lager StockTransfer=Lageroverførsel TransferStock=Overført lager -MassStockTransferShort=Lager overførsel +MassStockTransferShort=Bulk lager ændring StockMovement=Lager bevægelse StockMovements=Lagerbevægelser NumberOfUnit=Antal enheder @@ -146,8 +147,9 @@ Replenishments=genopfyldninger NbOfProductBeforePeriod=Mængde af produkt %s på lager inden valgt periode (<%s) NbOfProductAfterPeriod=Mængde af produkt %s på lager efter valgt periode (> %s) MassMovement=Massebehandling -SelectProductInAndOutWareHouse=Vælg et kildelager og et mållager, et produkt og en mængde, og klik derefter på "%s". Når dette er gjort for alle krævede bevægelser, skal du klikke på "%s". +SelectProductInAndOutWareHouse=Vælg et kildelager (valgfrit), et mållager, et produkt og en mængde og klik derefter på "%s". Når dette er gjort for alle nødvendige bevægelser, skal du klikke på "%s". RecordMovement=Optag overførsel +RecordMovements=Registrer lagerbevægelser ReceivingForSameOrder=Kvitteringer for denne ordre StockMovementRecorded=Aktiebevægelser registreret RuleForStockAvailability=Regler om lagerkrav @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=Lagergrænse for alarm og ønsket optimal lager kor ProductStockWarehouseUpdated=Lagergrænse for alarm og ønsket optimal lager korrekt opdateret ProductStockWarehouseDeleted=Lagergrænse for advarsel og ønsket optimal lager slettet korrekt AddNewProductStockWarehouse=Indstil ny grænse for alarm og ønsket optimal lager -AddStockLocationLine=Sænk mængde og klik derefter for at tilføje et andet lager til dette produkt +AddStockLocationLine=Reducer mængden og klik derefter for at opdele linjen InventoryDate=Lagerdato Inventories=Varebeholdninger NewInventory=Ny opgørelse @@ -217,7 +219,7 @@ RealValue=Reel værdi RegulatedQty=Reguleret antal AddInventoryProduct=Tilføj produkt til lager AddProduct=Tilføj -ApplyPMP=Påfør PMP +ApplyPMP=Anvend PMP FlushInventory=Spyl opgørelse ConfirmFlushInventory=Bekræfter du denne handling? InventoryFlushed=Lagerbeholdningen skyllet @@ -234,7 +236,7 @@ StockIncrease=Lagerforøgelse StockDecrease=Lagerfald InventoryForASpecificWarehouse=Beholdning til et specifikt lager InventoryForASpecificProduct=Beholdning for et specifikt produkt -StockIsRequiredToChooseWhichLotToUse=Lager kræves for at vælge, hvilket parti der skal bruges +StockIsRequiredToChooseWhichLotToUse=Der kræves et eksisterende lager for at kunne vælge hvilket parti der skal bruges ForceTo=Tving til AlwaysShowFullArbo=Vis hele træets lagertrin ved pop op af warehouse-links (Advarsel: Dette kan mindske ydeevne dramatisk) StockAtDatePastDesc=Du kan her se aktien (ægte aktier) på en given dato i fortiden @@ -254,7 +256,7 @@ ReOpen=Genåben ConfirmFinish=Bekræfter du afslutningen af opgørelsen? Dette genererer alle aktiebevægelser for at opdatere din aktie til det rigtige antal, du har indtastet lageret. ObjectNotFound=%s ikke fundet MakeMovementsAndClose=Generer bevægelser og luk -AutofillWithExpected=Erstat reel mængde med forventet mængde +AutofillWithExpected=Fyld den virkelige mængde med den forventede mængde ShowAllBatchByDefault=Vis batchoplysninger som standard på produktfanen "lager" CollapseBatchDetailHelp=Du kan indstille standardvisning af batchdetaljer i lagermodulkonfiguration ErrorWrongBarcodemode=Ukendt stregkode -tilstand @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=Produkt med stregkode findes ikke WarehouseId=Lager -ID WarehouseRef=Lager Ref SaveQtyFirst=Gem først de reelle oplagrede mængder, før du beder om oprettelse af lagerbevægelsen. +ToStart=Start InventoryStartedShort=Startet ErrorOnElementsInventory=Operationen blev annulleret af følgende årsag: ErrorCantFindCodeInInventory=Kan ikke finde følgende kode i inventaret QtyWasAddedToTheScannedBarcode=Succes!! Mængden blev tilføjet til alle de ønskede stregkoder. Du kan lukke scannerværktøjet. -StockChangeDisabled=Ændring på lager deaktiveret +StockChangeDisabled=Lagerændring deaktiveret NoWarehouseDefinedForTerminal=Intet lager defineret for terminal +ClearQtys=Ryd alle mængder +ModuleStockTransferName=Avanceret lageroverførsel +ModuleStockTransferDesc=Avanceret styring af lageroverførsel med generering af overførselsark +StockTransferNew=Ny lageroverførsel +StockTransferList=Liste over lageroverførsler +ConfirmValidateStockTransfer=Er du sikker på, at du vil validere denne lageroverførsel med referencen %s? +ConfirmDestock=Reducer lagre med overførsel %s +ConfirmDestockCancel=Annuller reduktion af lagre med overførsel %s +DestockAllProduct=Reducer lagre +DestockAllProductCancel=Annuller reduktion af lagre +ConfirmAddStock=Øg lagrene med overførsel %s +ConfirmAddStockCancel=Annuller forøgelse af lagre med overførsel %s +AddStockAllProduct=Forøgelse af lagre +AddStockAllProductCancel=Annuller forøgelse af lagre +DatePrevueDepart=Planlagt afgangsdato +DateReelleDepart=Reel afgangsdato +DatePrevueArrivee=Planlagt ankomstdato +DateReelleArrivee=Reel ankomstdato +HelpWarehouseStockTransferSource=Hvis dette lager er indstillet, vil kun dette og dets underordnede være tilgængelige som kildelager +HelpWarehouseStockTransferDestination=Hvis dette lager er indstillet, vil kun dette og dets underordnede være tilgængelige som destinationslager +LeadTimeForWarning=Leveringstid før alarm (i dage) +TypeContact_stocktransfer_internal_STFROM=Afsender af lageroverførsel +TypeContact_stocktransfer_internal_STDEST=Modtager af lageroverførsel +TypeContact_stocktransfer_internal_STRESP=Ansvarlig for lageroverførsel +StockTransferSheet=Lageroverførselsark +StockTransferSheetProforma=Proforma lageroverførselsark +StockTransferDecrementation=Reducer afsenderlagre +StockTransferIncrementation=Forøg modtagerlagre +StockTransferDecrementationCancel=Annuller reduktion af afsenderlagre +StockTransferIncrementationCancel=Annuller forøgelse af modtagerlagre +StockStransferDecremented=Afsenderlagre reduceret +StockStransferDecrementedCancel=Reduktion af afsenderlagre annulleret +StockStransferIncremented=Lukket - Lagre overført +StockStransferIncrementedShort=Lagre overført +StockStransferIncrementedShortCancel=Forøgelse af modtagerlagre annulleret +StockTransferNoBatchForProduct=Produkt %s bruger ikke batch, ryd batch online og prøv igen +StockTransferSetup = Konfiguration af lageroverførselsmodul +Settings=Indstillinger +StockTransferSetupPage = Konfigurationsside for lageroverførselsmodul +StockTransferRightRead=Læs lageroverførsler +StockTransferRightCreateUpdate=Opret/opdater lageroverførsler +StockTransferRightDelete=Slet lageroverførsler +BatchNotFound=Parti/serie blev ikke fundet for dette produkt diff --git a/htdocs/langs/da_DK/stripe.lang b/htdocs/langs/da_DK/stripe.lang index d34a518c46d..2caa038cc39 100644 --- a/htdocs/langs/da_DK/stripe.lang +++ b/htdocs/langs/da_DK/stripe.lang @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=Link til opsætning Stripe WebHook for at ringe til I PaymentWillBeRecordedForNextPeriod=Betaling registreres for den næste periode. ClickHereToTryAgain=Klik her for at prøve igen ... CreationOfPaymentModeMustBeDoneFromStripeInterface=På grund af stærke kunde autentificerings regler skal oprettelse af et kort foretages fra Stripe backoffice. Du kan klikke her for at tænde for Stripe-kundepost:%s +TERMINAL_LOCATION=Placering (adresse) for terminaler diff --git a/htdocs/langs/da_DK/suppliers.lang b/htdocs/langs/da_DK/suppliers.lang index e59117969e0..550630ff95c 100644 --- a/htdocs/langs/da_DK/suppliers.lang +++ b/htdocs/langs/da_DK/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Navn på køber AllProductServicePrices=Alle produkt- / servicepriser AllProductReferencesOfSupplier=Alle henvisninger til leverandør BuyingPriceNumShort=Leverandørpriser +RepeatableSupplierInvoice=Skabelon leverandørfaktura +RepeatableSupplierInvoices=Skabelon leverandørfakturaer +RepeatableSupplierInvoicesList=Skabelon leverandørfakturaer +RecurringSupplierInvoices=Tilbagevendende leverandørfakturaer +ToCreateAPredefinedSupplierInvoice=For at oprette skabelonleverandørfaktura skal du oprette en standardfaktura, og derefter, uden at validere den, klikke på knappen "%s". +GeneratedFromSupplierTemplate=Genereret fra leverandørfaktura skabelon %s +SupplierInvoiceGeneratedFromTemplate=Leverandørfaktura %s Genereret fra leverandørfaktura skabelon %s diff --git a/htdocs/langs/da_DK/ticket.lang b/htdocs/langs/da_DK/ticket.lang index 10733b0a898..bbeb209fc8a 100644 --- a/htdocs/langs/da_DK/ticket.lang +++ b/htdocs/langs/da_DK/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Slet sager Permission56004=Administrer sager Permission56005=Se sager fra alle tredjepart (ikke effektiv for eksterne brugere, vær altid begrænset til den tredjepart, de er afhængige af) +Tickets=Sager TicketDictType=Sag - Typer TicketDictCategory=Sag - Grupper TicketDictSeverity=Sag - Alvorlighed @@ -50,7 +51,7 @@ TicketCategoryShortOTHER=Andre ErrorBadEmailAddress=Felt '%s' forkert MenuTicketMyAssign=Mine sager MenuTicketMyAssignNonClosed=Mine åbne sager -MenuListNonClosed=Åbene sager +MenuListNonClosed=Åbne sager TypeContact_ticket_internal_CONTRIBUTOR=Bidragyder TypeContact_ticket_internal_SUPPORTTEC=Tildelt bruger @@ -90,8 +91,8 @@ TicketPublicAccess=En offentlig grænseflade, der kræver ingen identifikation, TicketSetupDictionaries=Typen af sag, alvorlighed og analytiske koder kan konfigureres fra ordbøger TicketParamModule=Indstilling af modulvariabler TicketParamMail=E-mail opsætning -TicketEmailNotificationFrom=Afsender e-mail for billetsvar -TicketEmailNotificationFromHelp=Afsender e-mail for billetsvar sendt fra Dolibarr +TicketEmailNotificationFrom=Afsender e-mail for besked om svar +TicketEmailNotificationFromHelp=Afsender adresse, der skal bruges til at sende notifikations e-mail, når svaret er angivet i backoffice. For eksempel noreply@example.com TicketEmailNotificationTo=Giv besked om oprettelse af billet til denne e-mailadresse TicketEmailNotificationToHelp=Hvis den er til stede, vil denne e-mailadresse blive underrettet om oprettelse af billet TicketNewEmailBodyLabel=Tekstbesked sendt efter oprettelse af en sag @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Når du lukker en billet, vil du blive foreslået at TicketWrongContact=Forudsat kontakt ikke er en del af aktuelle billetkontakter. E-mail ikke sendt. TicketChooseProductCategory=Produktkategori til billetsupport TicketChooseProductCategoryHelp=Vælg produktkategori for billetsupport. Dette vil blive brugt til automatisk at knytte en kontrakt til en billet. +TicketUseCaptchaCode=Brug grafisk kode (CAPTCHA), når du opretter en billet +TicketUseCaptchaCodeHelp=Tilføjer CAPTCHA-bekræftelse, når du opretter en ny billet. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=Sagen er nu tildelt TicketChangeType=Skift type TicketChangeCategory=Skift analytisk kode TicketChangeSeverity=Ændre alvorligheden -TicketAddMessage=Tilføj en besked -AddMessage=Tilføj en besked +TicketAddMessage=Tilføj privat besked MessageSuccessfullyAdded=Sag tilføjet TicketMessageSuccessfullyAdded=Meddelelse med tilføjet TicketMessagesList=Meddelelsesliste @@ -204,8 +206,8 @@ TicketSeverity=Alvorlighed ShowTicket=Se sag RelatedTickets=Relaterede sager TicketAddIntervention=Opret indgreb -CloseTicket=Luk | Løs sag -AbandonTicket=Efterlad sag +CloseTicket=Luk|Løst +AbandonTicket=Opgive CloseATicket=Luk | Løs en sag ConfirmCloseAticket=Bekræft afslutningen af sagen ConfirmAbandonTicket=Bekræfter du lukningen af sagen med status 'Efterladt' @@ -219,18 +221,17 @@ SendMessageByEmail=Send besked via e-mail TicketNewMessage=Ny besked ErrorMailRecipientIsEmptyForSendTicketMessage=Modtageren er tom. Ingen e-mail sendt TicketGoIntoContactTab=Gå til fanen "Kontakter" for at vælge dem -TicketMessageMailIntro=Introduktion +TicketMessageMailIntro=Meddelelsesoverskrift TicketMessageMailIntroHelp=Denne tekst tilføjes kun i begyndelsen af ​​e-mailen og bliver ikke gemt. -TicketMessageMailIntroLabelAdmin=Introduktionstekst til alle billetbesvarelser TicketMessageMailIntroText=Hej
    Der er tilføjet et nyt svar til en billet, som du følger. Her er beskeden:
    TicketMessageMailIntroHelpAdmin=Denne tekst vil blive indsat før svaret, når du svarer på en billet fra Dolibarr -TicketMessageMailSignature=Underskrift -TicketMessageMailSignatureHelp=Denne tekst tilføjes kun i slutningen af ​​e-mailen og bliver ikke gemt. -TicketMessageMailSignatureText=Besked sendt af %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatur af svar Email -TicketMessageMailSignatureHelpAdmin=Denne tekst indsættes efter svarmeddelelsen. +TicketMessageMailFooter=Meddelelsesfod +TicketMessageMailFooterHelp=Denne tekst tilføjes kun i slutningen af meddelelsen sendt via e-mail og vil ikke blive gemt. +TicketMessageMailFooterText=Besked sendt af %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Denne tekst vil blive indsat efter svarmeddelelsen. TicketMessageHelp=Kun denne tekst gemmes i meddelelseslisten på sagskortet. TicketMessageSubstitutionReplacedByGenericValues=Substitutionsvariabler erstattes af generiske værdier. +ForEmailMessageWillBeCompletedWith=For e-mail-beskeder sendt til eksterne brugere vil meddelelsen blive udfyldt med TimeElapsedSince=Tid forløbet siden TicketTimeToRead=Tid forløbet før læst TicketTimeElapsedBeforeSince=Forløbet tid før / siden @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=En ny besked blev sendt på sagen med TicketAssignedToYou=Sag tildelt TicketAssignedEmailBody=Du er blevet tildelt sag# %s ved %s MarkMessageAsPrivate=Markér besked som privat +TicketMessageSendEmailHelp=En e-mail vil blive sendt til alle tildelte kontakter (interne kontakter, men også eksterne kontakter, undtagen hvis indstillingen "%s" er markeret) TicketMessagePrivateHelp=Denne meddelelse vises ikke til eksterne brugere TicketEmailOriginIssuer=Udsteder ved oprindelsen af opgaven InitialMessage=Indledende besked @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Du kan se fremskridt på sagen i den spe TicketCloseEmailBodyInfosTrackUrlCustomer=Du kan se historikken for denne billet ved at klikke på følgende link TicketEmailPleaseDoNotReplyToThisEmail=Venligst svar ikke direkte på denne email! Brug linket til at svare på grænsefladen. TicketPublicInfoCreateTicket=Denne formular giver dig mulighed for at oprette en support sag i vores sagssystem. -TicketPublicPleaseBeAccuratelyDescribe=Beskriv venligst problemet korrekt. Giv den mest mulige information, så vi kan identificere din anmodning korrekt. +TicketPublicPleaseBeAccuratelyDescribe=Beskriv venligst dit spørgsmål nøjagtigt. Angiv så mange oplysninger som muligt for at give os mulighed for korrekt at identificere din anmodning. TicketPublicMsgViewLogIn=Indtast venligst sag ID TicketTrackId=Offentlig sporings ID OneOfTicketTrackId=Et af dine sporings ID'er diff --git a/htdocs/langs/da_DK/trips.lang b/htdocs/langs/da_DK/trips.lang index 7462ce544e1..41be01501a4 100644 --- a/htdocs/langs/da_DK/trips.lang +++ b/htdocs/langs/da_DK/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Vis omkostningsrapport -Trips=Udgiftsrapporter -TripsAndExpenses=Udgifter rapporter -TripsAndExpensesStatistics=Omkostningsrapporteringstatistik -TripCard=Udgiftsrapport kort +AUTHOR=Optaget af +AUTHORPAIEMENT=Betalt af AddTrip=Opret omkostningsrapport -ListOfTrips=Liste over udgiftsrapporter -ListOfFees=Liste over gebyrer -TypeFees=Typer af gebyrer -ShowTrip=Vis omkostningsrapport -NewTrip=Ny udgiftsrapport -LastExpenseReports=Seneste %s udgiftsrapporter +AllExpenseReport=Alle typer udgiftsrapport AllExpenseReports=Alle udgiftsrapporter -CompanyVisited=Besøgt firma / organisation -FeesKilometersOrAmout=Beløb eller kilometer -DeleteTrip=Slet udgiftsrapport -ConfirmDeleteTrip=Er du sikker på, at du vil slette denne udgiftsrapport? -ListTripsAndExpenses=Liste over udgiftsrapporter -ListToApprove=Venter på godkendelse -ExpensesArea=Omkostningsrapporteringsområde +AnyOtherInThisListCanValidate=Person, der skal informeres om validering af anmodningen. +AttachTheNewLineToTheDocument=Fastgør linjen til et uploadet dokument +AucuneLigne=Der er ikke angivet nogen omkostningsrapport endnu +BrouillonnerTrip=Flyt tilbage bekostning rapport til status "Udkast" +byEX_DAY=om dagen (begrænsning til %s) +byEX_EXP=for linje (begrænsning til %s) +byEX_MON=efter måned (begrænsning til %s) +byEX_YEA=efter år (begrænsning til %s) +CANCEL_USER=Slettet af +CarCategory=Køretøjskategori ClassifyRefunded=Klassificer 'refunderet' +CompanyVisited=Besøgt firma / organisation +ConfirmBrouillonnerTrip=Er du sikker på, at du vil flytte denne udgiftsrapport til status "Udkast"? +ConfirmCancelTrip=Er du sikker på, at du vil annullere denne udgiftsrapport? +ConfirmCloneExpenseReport=Er du sikker på, at du vil klone denne omkostningsrapport? +ConfirmDeleteTrip=Er du sikker på, at du vil slette denne udgiftsrapport? +ConfirmPaidTrip=Er du sikker på, at du vil ændre status for denne udgiftsrapport til "Betalt"? +ConfirmRefuseTrip=Er du sikker på, at du vil nægte denne udgiftsrapport? +ConfirmSaveTrip=Er du sikker på, at du vil bekræfte denne udgiftsrapport? +ConfirmValideTrip=Er du sikker på, at du vil godkende denne udgiftsrapport? +DATE_CANCEL=Annulleringsdato +DATE_PAIEMENT=Betalingsdato +DATE_REFUS=Nægte dato +DATE_SAVE=Bekræftelsesdato +DefaultCategoryCar=Standard transport mode +DefaultRangeNumber=Standard interval nummer +DeleteTrip=Slet udgiftsrapport +ErrorDoubleDeclaration=Du har erklæret en anden regningsrapport i et lignende datointerval. +Error_EXPENSEREPORT_ADDON_NotDefined=Fejl, reglen for udgiftsrapport nummerering ref blev ikke defineret i opsætning af modul 'Udgiftsrapport' +ExpenseRangeOffset=Forskudsbeløb: %s +expenseReportCatDisabled=Kategori deaktiveret - se c_exp_tax_cat ordbogen +expenseReportCoef=Koefficient +expenseReportCoefUndefined=(værdi ikke defineret) +expenseReportOffset=Offset +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Område deaktiveret - se c_exp_tax_range dictionay +expenseReportRangeFromTo=fra %d til %d +expenseReportRangeMoreThan=mere end %d +expenseReportTotalForFive=Eksempel med d = 5 +ExpenseReportApplyTo=Anvend til +ExpenseReportApproved=En udgiftsrapport blev godkendt +ExpenseReportApprovedMessage=Udgiftsrapporten %s blev godkendt.
    - Bruger: %s
    - Godkendt af: %s
    Klik her for at vise udgiftsrapporten: %s +ExpenseReportCanceled=En udgiftsrapport blev annulleret +ExpenseReportCanceledMessage=Udgiftsrapporten %s blev annulleret.
    - Bruger: %s
    - Annulleret af: %s
    - Motiv for annullering: %s
    Klik her for at vise udgiftsrapporten: %s +ExpenseReportConstraintViolationError=Maks. beløb overskredet (regel %s): %s er højere end %s (overskridelse forbudt) +ExpenseReportConstraintViolationWarning=Maks. beløb overskredet (regel %s): %s er højere end %s (overskrider tilladt) +ExpenseReportDateEnd=Dato udgangen +ExpenseReportDateStart=Dato start +ExpenseReportDomain=Domæne at anvende +ExpenseReportIkDesc=Du kan ændre beregningen af ​​kilometerudgifter efter kategori og rækkevidde, hvem de tidligere er defineret. d er afstanden i kilometer +ExpenseReportLimitAmount=Max beløb +ExpenseReportLimitOn=Begræns på +ExpenseReportLine=Udgiftsrapport linje +ExpenseReportPaid=En udgiftsrapport blev betalt +ExpenseReportPaidMessage=Udgiftsrapporten %s blev betalt.
    - Bruger: %s
    - Betalt af: %s
    Klik her for at vise udgiftsrapporten: %s +ExpenseReportPayment=Udgift rapport betaling +ExpenseReportRef=Ref. udgiftsrapport +ExpenseReportRefused=En udgiftsrapport blev afvist +ExpenseReportRefusedMessage=Udgiftsrapporten %s blev afvist.
    - Bruger: %s
    - Afvist af: %s
    - Motiver til afvisning: %s
    Klik her for at vise udgiftsrapporten: %s +ExpenseReportRestrictive=Overskridelse forbudt +ExpenseReportRuleErrorOnSave=Fejl: %s +ExpenseReportRuleSave=Regnskabsregnskabsreglen er gemt +ExpenseReportRulesDesc=Du kan definere maks. beløbsregler for udgiftsrapporter. Disse regler vil blive anvendt, når en ny udgift tilføjes en udgiftsrapport ExpenseReportWaitingForApproval=En ny udgiftsrapport er indsendt til godkendelse ExpenseReportWaitingForApprovalMessage=En ny udgiftsrapport er indsendt og venter på godkendelse.
    - Bruger: %s
    - Periode: %s
    Klik her for at bekræfte: %s ExpenseReportWaitingForReApproval=En udgiftsrapport er indsendt til genoptagelse ExpenseReportWaitingForReApprovalMessage=En udgiftsrapport er indsendt og venter på genkendelse.
    %s, du nægtede at godkende regningsrapporten af ​​denne grund: %s.
    En ny version er blevet foreslået og venter på din godkendelse.
    - Bruger: %s
    - Periode: %s
    Klik her for at bekræfte: %s -ExpenseReportApproved=En udgiftsrapport blev godkendt -ExpenseReportApprovedMessage=Udgiftsrapporten %s blev godkendt.
    - Bruger: %s
    - Godkendt af: %s
    Klik her for at vise udgiftsrapporten: %s -ExpenseReportRefused=En udgiftsrapport blev afvist -ExpenseReportRefusedMessage=Udgiftsrapporten %s blev afvist.
    - Bruger: %s
    - Afvist af: %s
    - Motiver til afvisning: %s
    Klik her for at vise udgiftsrapporten: %s -ExpenseReportCanceled=En udgiftsrapport blev annulleret -ExpenseReportCanceledMessage=Udgiftsrapporten %s blev annulleret.
    - Bruger: %s
    - Annulleret af: %s
    - Motiv for annullering: %s
    Klik her for at vise udgiftsrapporten: %s -ExpenseReportPaid=En udgiftsrapport blev betalt -ExpenseReportPaidMessage=Udgiftsrapporten %s blev betalt.
    - Bruger: %s
    - Betalt af: %s
    Klik her for at vise udgiftsrapporten: %s -TripId=Id udgiftsrapport -AnyOtherInThisListCanValidate=Person, der skal informeres om validering af anmodningen. -TripSociete=Informationsselskab -TripNDF=Informationsomkostningsrapport -PDFStandardExpenseReports=Standard skabelon til at generere et PDF-dokument til udgiftsrapport -ExpenseReportLine=Udgiftsrapport linje -TF_OTHER=Anden -TF_TRIP=Transport -TF_LUNCH=Frokost -TF_METRO=Metro -TF_TRAIN=Tog -TF_BUS=Bus -TF_CAR=Bil -TF_PEAGE=Afgift -TF_ESSENCE=Brændstof -TF_HOTEL=Hotel -TF_TAXI=Taxa -EX_KME=Mileage omkostninger -EX_FUE=Brændstof CV -EX_HOT=Hotel -EX_PAR=Parkering CV -EX_TOL=Toll CV -EX_TAX=Forskellige skatter -EX_IND=Skadesløsholdelse transport abonnement -EX_SUM=Vedligeholdelsesforsyning -EX_SUO=Kontorartikler -EX_CAR=Biludlejning -EX_DOC=Dokumentation -EX_CUR=Kunder modtager -EX_OTR=Anden modtagelse -EX_POS=Porto -EX_CAM=CV vedligeholdelse og reparation -EX_EMM=Ansatte måltid -EX_GUM=Gæster måltid -EX_BRE=Morgenmad -EX_FUE_VP=Brændstof PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parkering PV -EX_CAM_VP=PV vedligeholdelse og reparation -DefaultCategoryCar=Standard transport mode -DefaultRangeNumber=Standard interval nummer -UploadANewFileNow=Upload et nyt dokument nu -Error_EXPENSEREPORT_ADDON_NotDefined=Fejl, reglen for udgiftsrapport nummerering ref blev ikke defineret i opsætning af modul 'Udgiftsrapport' -ErrorDoubleDeclaration=Du har erklæret en anden regningsrapport i et lignende datointerval. -AucuneLigne=Der er ikke angivet nogen omkostningsrapport endnu -ModePaiement=Betalingsmåde -VALIDATOR=Bruger ansvarlig for godkendelse -VALIDOR=Godkendt af -AUTHOR=Optaget af -AUTHORPAIEMENT=Betalt af -REFUSEUR=Nægtet af -CANCEL_USER=Slettet af -MOTIF_REFUS=Årsag -MOTIF_CANCEL=Årsag -DATE_REFUS=Nægte dato -DATE_SAVE=Bekræftelsesdato -DATE_CANCEL=Annulleringsdato -DATE_PAIEMENT=Betalingsdato -ExpenseReportRef=Ref. udgiftsrapport -ValidateAndSubmit=Bekræft og indsend for godkendelse -ValidatedWaitingApproval=Bekræftet (venter på godkendelse) -NOT_AUTHOR=Du er ikke forfatteren af ​​denne udgiftsrapport. Drift aflyst. -ConfirmRefuseTrip=Er du sikker på, at du vil nægte denne udgiftsrapport? -ValideTrip=Godkendelse af udgiftsrapport -ConfirmValideTrip=Er du sikker på, at du vil godkende denne udgiftsrapport? -PaidTrip=Betal en udgiftsrapport -ConfirmPaidTrip=Er du sikker på, at du vil ændre status for denne udgiftsrapport til "Betalt"? -ConfirmCancelTrip=Er du sikker på, at du vil annullere denne udgiftsrapport? -BrouillonnerTrip=Flyt tilbage bekostning rapport til status "Udkast" -ConfirmBrouillonnerTrip=Er du sikker på, at du vil flytte denne udgiftsrapport til status "Udkast"? -SaveTrip=Bekræfte udgiftsrapport -ConfirmSaveTrip=Er du sikker på, at du vil bekræfte denne udgiftsrapport? -NoTripsToExportCSV=Ingen udgiftsrapport til eksport for denne periode. -ExpenseReportPayment=Udgift rapport betaling -ExpenseReportsToApprove=Udgiftsrapporter til at godkende -ExpenseReportsToPay=Udgifter rapporterer at betale -ConfirmCloneExpenseReport=Er du sikker på, at du vil klone denne omkostningsrapport? ExpenseReportsIk=Konfiguration af kilometertal ExpenseReportsRules=Regnskabsregnskabsregler -ExpenseReportIkDesc=Du kan ændre beregningen af ​​kilometerudgifter efter kategori og rækkevidde, hvem de tidligere er defineret. d er afstanden i kilometer -ExpenseReportRulesDesc=Du kan definere maks. beløbsregler for udgiftsrapporter. Disse regler vil blive anvendt, når en ny udgift tilføjes en udgiftsrapport -expenseReportOffset=Offset -expenseReportCoef=Koefficient -expenseReportTotalForFive=Eksempel med d = 5 -expenseReportRangeFromTo=fra %d til %d -expenseReportRangeMoreThan=mere end %d -expenseReportCoefUndefined=(værdi ikke defineret) -expenseReportCatDisabled=Kategori deaktiveret - se c_exp_tax_cat ordbogen -expenseReportRangeDisabled=Område deaktiveret - se c_exp_tax_range dictionay -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Ansøg til -ExpenseReportDomain=Domæne at anvende -ExpenseReportLimitOn=Begræns på -ExpenseReportDateStart=Dato start -ExpenseReportDateEnd=Dato udgangen -ExpenseReportLimitAmount=Max beløb -ExpenseReportRestrictive=Overskridelse forbudt -AllExpenseReport=Alle typer udgiftsrapport -OnExpense=Udgiftslinje -ExpenseReportRuleSave=Regnskabsregnskabsreglen er gemt -ExpenseReportRuleErrorOnSave=Fejl: %s -RangeNum=Område %d -ExpenseReportConstraintViolationError=Maks. beløb overskredet (regel %s): %s er højere end %s (overskridelse forbudt) -byEX_DAY=om dagen (begrænsning til %s) -byEX_MON=efter måned (begrænsning til %s) -byEX_YEA=efter år (begrænsning til %s) -byEX_EXP=for linje (begrænsning til %s) -ExpenseReportConstraintViolationWarning=Maks. beløb overskredet (regel %s): %s er højere end %s (overskrider tilladt) +ExpenseReportsToApprove=Udgiftsrapporter til at godkende +ExpenseReportsToPay=Udgifter rapporterer at betale +ExpensesArea=Omkostningsrapporteringsområde +FeesKilometersOrAmout=Beløb eller kilometer +LastExpenseReports=Seneste %s udgiftsrapporter +ListOfFees=Liste over gebyrer +ListOfTrips=Liste over udgiftsrapporter +ListToApprove=Venter på godkendelse +ListTripsAndExpenses=Liste over udgiftsrapporter +MOTIF_CANCEL=Årsag +MOTIF_REFUS=Årsag +ModePaiement=Betalingsmåde +NewTrip=Ny udgiftsrapport nolimitbyEX_DAY=om dagen (ingen begrænsning) +nolimitbyEX_EXP=efter linie (ingen begrænsning) nolimitbyEX_MON=efter måned (ingen begrænsning) nolimitbyEX_YEA=efter år (ingen begrænsning) -nolimitbyEX_EXP=efter linie (ingen begrænsning) -CarCategory=Køretøjskategori -ExpenseRangeOffset=Forskudsbeløb: %s +NoTripsToExportCSV=Ingen udgiftsrapport til eksport for denne periode. +NOT_AUTHOR=Du er ikke forfatteren af ​​denne udgiftsrapport. Drift aflyst. +OnExpense=Udgiftslinje +PDFStandardExpenseReports=Standard skabelon til at generere et PDF-dokument til udgiftsrapport +PaidTrip=Betal en udgiftsrapport +REFUSEUR=Nægtet af RangeIk=Mileage rækkevidde -AttachTheNewLineToTheDocument=Fastgør linjen til et uploadet dokument +RangeNum=Område %d +SaveTrip=Bekræfte udgiftsrapport +ShowExpenseReport=Vis omkostningsrapport +ShowTrip=Vis omkostningsrapport +TripCard=Udgiftsrapport kort +TripId=Id udgiftsrapport +TripNDF=Informationsomkostningsrapport +TripSociete=Informationsselskab +Trips=Udgiftsrapporter +TripsAndExpenses=Udgifter rapporter +TripsAndExpensesStatistics=Omkostningsrapporteringstatistik +TypeFees=Typer af gebyrer +UploadANewFileNow=Upload et nyt dokument nu +VALIDATOR=Bruger ansvarlig for godkendelse +VALIDOR=Godkendt af +ValidateAndSubmit=Bekræft og indsend for godkendelse +ValidatedWaitingApproval=Bekræftet (venter på godkendelse) +ValideTrip=Godkendelse af udgiftsrapport + +## Dictionary +EX_BRE=Morgenmad +EX_CAM=CV vedligeholdelse og reparation +EX_CAM_VP=PV vedligeholdelse og reparation +EX_CAR=Biludlejning +EX_CUR=Kunder modtager +EX_DOC=Dokumentation +EX_EMM=Ansatte måltid +EX_FUE=Brændstof CV +EX_FUE_VP=Brændstof PV +EX_GUM=Gæster måltid +EX_HOT=Hotel +EX_IND=Skadesløsholdelse transport abonnement +EX_KME=Mileage omkostninger +EX_OTR=Anden modtagelse +EX_PAR=Parkering CV +EX_PAR_VP=Parkering PV +EX_POS=Porto +EX_SUM=Vedligeholdelsesforsyning +EX_SUO=Kontorartikler +EX_TAX=Forskellige skatter +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Bus +TF_CAR=Bil +TF_ESSENCE=Brændstof +TF_HOTEL=Hotel +TF_LUNCH=Frokost +TF_METRO=Metro +TF_OTHER=Anden +TF_PEAGE=Afgift +TF_TAXI=Taxa +TF_TRAIN=Tog +TF_TRIP=Transport diff --git a/htdocs/langs/da_DK/users.lang b/htdocs/langs/da_DK/users.lang index 69608712a1a..4f91274ef1a 100644 --- a/htdocs/langs/da_DK/users.lang +++ b/htdocs/langs/da_DK/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Fjern fra gruppe PasswordChangedAndSentTo=Password ændret og sendt til %s. PasswordChangeRequest=Anmod om at ændre adgangskode til %s PasswordChangeRequestSent=Anmodning om at ændre password for %s sendt til %s. -IfLoginExistPasswordRequestSent=Hvis dette login er en gyldig konto, er der sendt en e-mail for at nulstille adgangskoden. +IfLoginExistPasswordRequestSent=Hvis dette login er en gyldig konto (med en gyldig e-mail), er der sendt en e-mail til nulstilling af adgangskode. IfEmailExistPasswordRequestSent=Hvis denne e-mail er en gyldig konto, er der sendt en e-mail for at nulstille adgangskoden. ConfirmPasswordReset=Bekræft nulstilling af adgangskode MenuUsersAndGroups=Brugere og grupper @@ -68,7 +68,6 @@ CreateDolibarrLogin=Opret Dolibarr konto CreateDolibarrThirdParty=Opret en tredjepart LoginAccountDisableInDolibarr=Konto deaktiveret i Dolibarr. UsePersonalValue=Brug personlige værdi -InternalUser=Intern bruger ExportDataset_user_1=Brugere og deres egenskaber DomainUser=Domænebruger %s Reactivate=Genaktiver @@ -128,3 +127,5 @@ DateLastLogin=Dato sidste login DatePreviousLogin=Dato forrige login IPLastLogin=IP sidste login IPPreviousLogin=IP tidligere login +ShowAllPerms=Vis alle tilladelsesrækker +HideAllPerms=Skjul alle tilladelsesrækker diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang index 4d437b5ba70..311b985d372 100644 --- a/htdocs/langs/da_DK/website.lang +++ b/htdocs/langs/da_DK/website.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kode -WebsiteSetupDesc=Opret her de websteder, du vil bruge. Gå derefter ind i menuen Websites for at redigere dem. +WebsiteName=Navn på hjemmesiden +WebsiteSetupDesc=Opret her de websteder, du ønsker at bruge. Gå derefter ind i menuen Websteder for at redigere dem. DeleteWebsite=Slet websted ConfirmDeleteWebsite=Er du sikker på, at du vil slette dette websted? Alle dens sider og indhold fjernes også. De filer, der uploades (ligesom i medias bibliotek, ECM-modulet, ...) forbliver. WEBSITE_TYPE_CONTAINER=Type side / container @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Tilføjelse nederst på HTML-overskrift (fælles for alle si WEBSITE_ROBOT=Robotfil (robots.txt) WEBSITE_HTACCESS=Websted .htaccess fil WEBSITE_MANIFEST_JSON=Webstedets manifest.json fil -WEBSITE_README=README.md fil WEBSITE_KEYWORDSDesc=Brug et komma til at adskille værdier -EnterHereLicenseInformation=Indtast her metadata eller licensinformation for at arkivere en README.md-fil. hvis du distribuerer dit websted som en skabelon, vil filen blive inkluderet i fristelsespakken. +EnterHereReadmeInformation=Indtast her en beskrivelse af hjemmesiden. Hvis du distribuerer dit websted som en skabelon, vil filen blive inkluderet i temptate pakken. +EnterHereLicenseInformation=Indtast her LICENSEN til koden for hjemmesiden. Hvis du distribuerer dit websted som en skabelon, vil filen blive inkluderet i temptate-pakken. HtmlHeaderPage=HTML-overskrift (kun for denne side) PageNameAliasHelp=Navnet eller aliaset på siden.
    Dette alias bruges også til at oprette en SEO-URL, når webstedet er kørt fra en virtuel vært på en webserver (som Apacke, Nginx, ...). Brug knappen " %s " for at redigere dette alias. EditTheWebSiteForACommonHeader=Bemærk: Hvis du vil definere en personlig "Header" for alle sider, skal du redigere din "Header" på website niveau i stedet for på siden / containeren. @@ -42,6 +43,8 @@ ViewPageInNewTab=Se side i ny fane SetAsHomePage=Angiv som hjemmeside RealURL=Rigtig webadresse ViewWebsiteInProduction=Se websitet ved hjælp af hjemmesider +Virtualhost=Virtuel vært eller domænenavn +VirtualhostDesc=Navnet på den virtuelle vært eller domæne (for eksempel: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Brug med Apache / NGinx / ...
    Opret på din webserver (Apache, Nginx, ...) en dedikeret virtuel vært med PHP aktiveret og et rodkatalog på
    %s ExampleToUseInApacheVirtualHostConfig=Eksempel til brug i Apache virtuel værtopsætning: YouCanAlsoTestWithPHPS= Brug med PHP-integreret server
    På udvikler miljø kan du helst prøve webstedet med den indbyggede PHP-server (PHP 5.5 påkrævet) ved at køre
    php -S 0.0. 0,0: 8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%sside (r) / container (r) regenereret RegenerateWebsiteContent=Genopret cache-filer på webstedet AllowedInFrames=Tilladt i rammer DefineListOfAltLanguagesInWebsiteProperties=Definer liste over alle tilgængelige sprog i webstedets egenskaber. -GenerateSitemaps=Generer webstedets sitemapfil +GenerateSitemaps=Generer webstedet sitemap.xml fil ConfirmGenerateSitemaps=Hvis du bekræfter, sletter du den eksisterende sitemapfil ... ConfirmSitemapsCreation=Bekræft generering af sitemap SitemapGenerated=Sitemap-fil %s genereret @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon skal være png ErrorFaviconSize=Favicon skal have en størrelse på 16x16, 32x32 eller 64x64 FaviconTooltip=Upload et billede, der skal være et png (16x16, 32x32 eller 64x64) +NextContainer=Næste side/beholder +PreviousContainer=Forrige side/container +WebsiteMustBeDisabled=Hjemmesiden skal have status "%s" +WebpageMustBeDisabled=Websiden skal have status "%s" +SetWebsiteOnlineBefore=Når hjemmesiden er offline, er alle sider offline. Skift status på webstedet først. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang index bfe254e8353..1e62f500c28 100644 --- a/htdocs/langs/da_DK/withdrawals.lang +++ b/htdocs/langs/da_DK/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Faktura venter på kreditoverførsel AmountToWithdraw=Beløb til at trække AmountToTransfer=Beløb, der skal overføres NoInvoiceToWithdraw=Der venter ingen faktura, der er åben for '%s'. Gå til fanen '%s' på fakturakort for at anmode om. -NoSupplierInvoiceToWithdraw=Ingen leverandør faktura med åbne 'direkte kredit anmodninger' venter. Gå til fanen '%s' på fakturakort for at anmode om. +NoSupplierInvoiceToWithdraw=Ingen leverandørfaktura med åben '%s' venter. Gå på fanen '%s' på fakturakortet for at lave en anmodning. ResponsibleUser=Brugeransvarlig WithdrawalsSetup=Indbetaling af direkte debitering CreditTransferSetup=Opsætning af kreditoverførsel @@ -42,6 +42,7 @@ CreditTransferStatistics=Kreditoverførselsstatistik Rejects=Afviser LastWithdrawalReceipt=Seneste %s direkte debit kvitteringer MakeWithdrawRequest=Lav en anmodning om direkte debitering +MakeWithdrawRequestStripe=Foretag en anmodning om direkte debitering via Stripe MakeBankTransferOrder=Foretag en kreditoverførselsanmodning WithdrawRequestsDone=%s anmodninger om direkte debitering indbetalt BankTransferRequestsDone=%s kredit overførselsanmodninger registreret @@ -100,8 +101,11 @@ CreditDate=Kredit på WithdrawalFileNotCapable=Kan ikke generere tilbagekøbskvitteringsfil for dit land %s (Dit land understøttes ikke) ShowWithdraw=Vis direkte debiteringsordre IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Hvis fakturaen dog har mindst en betalingsordre til direkte debitering, der endnu ikke er behandlet, indstilles den ikke til at blive betalt for at tillade forudgående udtræksstyring. -DoStandingOrdersBeforePayments=Denne fane giver dig mulighed for at anmode om en betalingsordre med direkte debitering. Når det er gjort, skal du gå til menuen Bank-> Betaling med direkte debet for at generere og administrere direkte debetordre. Når ordre med direkte debitering lukkes, registreres betaling på fakturaer automatisk, og fakturaer lukkes, hvis resten til betaling er null. -DoCreditTransferBeforePayments=Denne fane giver dig mulighed for at anmode om en kredit overførselsordre. Når det er gjort, skal du gå til menuen Bank-> Betaling med kreditoverførsel for at generere og administrere kredit overførselsordren. Når pengeoverførsel er lukket, vil betaling på fakturaer oplysninger registreres automatisk, og fakturaer lukkes, hvis resten til løn er nul.\n  +DoStandingOrdersBeforePayments=Denne fane giver dig mulighed for at anmode om en betalingsordre med direkte debitering. Når det er gjort, kan du gå ind i menuen "Bank->Betaling med direkte debitering" for at generere og administrere en ordrefil med direkte debitering. +DoStandingOrdersBeforePayments2=Du kan også sende en anmodning direkte til en SEPA-betalingsprocessor som Stripe, ... +DoStandingOrdersBeforePayments3=Når direkte debiteringsordre er lukket, vil betaling på fakturaer automatisk blive registreret, og fakturaer lukkes, hvis resterende betaling er nul. +DoCreditTransferBeforePayments=Denne fane giver dig mulighed for at anmode om en kreditoverførselsordre. Når det er gjort, skal du gå ind i menuen "Bank->Betaling ved kreditoverførsel" for at generere og administrere en kreditoverførselsordrefil. +DoCreditTransferBeforePayments3=Når kreditoverførselsordren er lukket, vil betaling på fakturaer automatisk blive registreret, og fakturaer lukkes, hvis resterende betaling er nul. WithdrawalFile=Debiteringsfil CreditTransferFile=Kreditoverførselsfil SetToStatusSent=Sæt til status "Fil sendt" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Kunne ikke oprette direkte debitering for tomt bel SepaMandate=SEPA Direkte Debit Mandat SepaMandateShort=SEPA-mandat PleaseReturnMandate=Ret venligst denne mandatformular via e-mail til %s eller pr. Mail til -SEPALegalText=Ved at underskrive denne fuldmagtsformular giver du (A) %s tilladelse til at sende instruktioner til din bank om at debitere din konto og (B) din bank til at debitere din konto i overensstemmelse med instruktionerne fra %s. Som en del af dine rettigheder har du ret til refusion fra din bank i henhold til betingelserne i din aftale med din bank. Dine rettigheder vedrørende ovenstående fuldmagt er forklaret i en erklæring, som du kan få fra din bank. +SEPALegalText=Ved at underskrive denne fuldmagtsformular giver du (A) %s og dets betalingstjenesteudbyder tilladelse til at sende instruktioner til din bank om at debitere din konto og (B) din bank til at debitere din konto i overensstemmelse med instruktionerne fra %s. Som en del af dine rettigheder har du ret til refusion fra din bank i henhold til betingelserne i din aftale med din bank. Dine rettigheder vedrørende ovenstående fuldmagt er forklaret i en erklæring, som du kan få fra din bank. CreditorIdentifier=Kreditoridentifikator CreditorName=Kreditors navn SEPAFillForm=(B) Udfyld venligst alle felter markeret * diff --git a/htdocs/langs/da_DK/workflow.lang b/htdocs/langs/da_DK/workflow.lang index 254345a85be..ec88edf8ff8 100644 --- a/htdocs/langs/da_DK/workflow.lang +++ b/htdocs/langs/da_DK/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klassificer købt kø descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Klassificer linket kildeindkøbsordre som modtaget, når en modtagelse er valideret (og hvis mængden modtaget af alle modtagelser er den samme som i indkøbsordren, der skal opdateres) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Klassificer tilknyttet kildeindkøbsordre som modtaget, når en modtagelse lukkes (og hvis mængden modtaget af alle modtagelser er den samme som i indkøbsordren for at opdatere) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Klassificer modtagelser til "faktureret", når en linket leverandørordre valideres +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Klassificer modtagelser til "faktureret", når en tilknyttet købsfaktura er valideret (og hvis fakturabeløbet er det samme som det samlede beløb for de tilknyttede modtagelser) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Når du opretter en billet, skal du linke tilgængelige kontrakter fra matchende tredjepart descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Når du sammenkæder kontrakter, søg blandt moderselskabers @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Luk alle indgreb, der er knyttet til bill AutomaticCreation=Automatisk oprettelse AutomaticClassification=Automatisk klassificering # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificer tilknyttet kildeforsendelse som lukket, når kundefaktura er valideret +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificer linket kildeforsendelse som lukket, når kundens faktura er valideret (og hvis fakturabeløbet er det samme som det samlede beløb for de linkede forsendelser) AutomaticClosing=Automatisk lukning AutomaticLinking=Automatisk forbinde diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index 1bf7b8b8108..eb37ef1ee98 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -21,8 +21,6 @@ SessionSaveHandler=Sessionmanager YourSession=Ihre Anmeldung Sessions=Benutzeranmeldungen DolibarrSetup=Dolibarr installieren oder aktualisieren -InternalUser=interner Nutzer -ExternalUser=externer Nutzer InternalUsers=interne Nutzer ExternalUsers=externe Nutzer UploadNewTemplate=Neue Vorlage(n) hochladen @@ -94,7 +92,6 @@ Permission254=Andere Benutzer löschen oder deaktivieren Permission255=Eigene Benutzereinstellungen setzen/bearbeiten Permission256=Eigenes Passwort ändern Permission271=CA einsehen -Permission272=Rechnungen einsehen Permission273=Rechnungen erstellen Permission292=Festlegen von Berechtigungen für die Tarife Permission311=Services einsehen diff --git a/htdocs/langs/de_AT/banks.lang b/htdocs/langs/de_AT/banks.lang index 299e9bcce7a..0ad385b6ae7 100644 --- a/htdocs/langs/de_AT/banks.lang +++ b/htdocs/langs/de_AT/banks.lang @@ -14,7 +14,6 @@ EndBankBalance=Abschlusssaldo CurrentBalance=derezitige Bilanz FutureBalance=zukünftiger Bilanz ShowAllTimeBalance=Eröffnungsbilanz -RIB=Kontonummer SwiftValid=BIC gültig SwiftNotValid=BIC ungültig AccountStatementShort=Kontenauszug diff --git a/htdocs/langs/de_AT/ecm.lang b/htdocs/langs/de_AT/ecm.lang index bfb47abf032..29ad990c4ca 100644 --- a/htdocs/langs/de_AT/ecm.lang +++ b/htdocs/langs/de_AT/ecm.lang @@ -2,4 +2,3 @@ ECMSectionsManual=Manuelle Verzeichnisse ECMSectionsAuto=Automatische Verzeichnisse ECMNbOfFilesInSubDir=Anzahl der Dateien im Unterverzeichnis -ECMAreaDesc2=* Automatische Verzeichnisse werden automatisch befüllt, wenn Sie Dokumente von der Karte eines Elements erstellen.
    * Manuelle Verzeichnisse können Sie dazu nutzen, nicht mit anderen Elementen verbundene Dokumente zu speichern. diff --git a/htdocs/langs/de_AT/externalsite.lang b/htdocs/langs/de_AT/externalsite.lang deleted file mode 100644 index a3871bced11..00000000000 --- a/htdocs/langs/de_AT/externalsite.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Verknüpfung zur externen Website einrichten -ExampleMyMenuEntry=Mein Menüeintrag diff --git a/htdocs/langs/de_AT/hrm.lang b/htdocs/langs/de_AT/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/de_AT/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang index c9768e1b88d..e54fb4920d7 100644 --- a/htdocs/langs/de_AT/main.lang +++ b/htdocs/langs/de_AT/main.lang @@ -3,7 +3,7 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand=. FormatDateShort=%d.%m.%Y FormatDateShortInput=%d.%m.%Y FormatDateShortJava=dd.MM.yyyy @@ -32,10 +32,10 @@ ToClone=Klonen Of=Von Search=Suche SearchOf=Suche -PasswordRetype=Geben Sie das Passwort erneut ein Title=Titel DateStart=Start-Datum DateEnd=End-Datum +DateRequest=Anfragedatum UnitPrice=Bruttopreis (Stk.) UnitPriceTTC=Bruttopreis (Stk.) PriceU=Stückpreis @@ -76,6 +76,6 @@ SearchIntoContacts=Kontakt SearchIntoInterventions=Eingriffe AssignedTo=zugewisen an DateOfBirth=Geburtstdatum -AffectTag=Beschlagworten/Kategorisieren -ConfirmAffectTag=Massen-Beschlagwortung/Kategorisierung ClientTZ=Client-Zeitzone (Benutzer) +InternalUser=interner Nutzer +ExternalUser=externer Nutzer diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index 7481246a7a5..e5e638185a8 100644 --- a/htdocs/langs/de_CH/accountancy.lang +++ b/htdocs/langs/de_CH/accountancy.lang @@ -28,6 +28,7 @@ InvoiceLabel=Rechnungsbezeichung OverviewOfAmountOfLinesNotBound=Positionen ohne Verknüpfung zu einem Buchhaltungskonto OverviewOfAmountOfLinesBound=Positionen mit Verknüpfung zu einem Buchhaltungskonto OtherInfo=Weitere Informationen +DeleteCptCategory=Buchhaltungskonto aus Gruppe entfernen ConfirmDeleteCptCategory=Möchten Sie dieses Konto wirklich aus der Kontogruppe entfernen? GroupIsEmptyCheckSetup=Das Feld Gruppe ist leer, bitte prüfe die Einstellungen deiner Kontengruppen. DetailByAccount=Zeige Details nach Konto geordnet @@ -38,7 +39,6 @@ CountriesNotInEEC=Nicht EWR - Staaten CountriesInEECExceptMe=Länder im EWR ausser %s CountriesExceptMe=Alle Staaten, ausser %s AccountantFiles=Geschäftsvorgänge exportieren -ExportAccountingSourceDocHelp=Mit diesem Tool können Sie die Quellereignisse (Liste in CSV und PDFs) exportieren, die zur Erstellung Ihrer Buchhaltung verwendet werden. ExportAccountingSourceDocHelp2=Die Journale exportierst du im Menu %s - %s. VueByAccountAccounting=Anzeigen nach Buchhaltungskonto VueBySubAccountAccounting=Anzeigen nach Nebenbuchkonto @@ -78,7 +78,6 @@ ShowAccountingAccountInJournals=Zeige dieses Buchhaltungskonto in den Journalen AccountAccountingSuggest=Vorgeschlagenes Buchhaltungskonto MenuVatAccounts=MWST - Konten MenuExpenseReportAccounts=Spesenabrechnungskonten -MenuLoanAccounts=Darlehenskonten MenuProductsAccounts=Produktkonten MenuAccountancyClosure=Abschluss MenuAccountancyValidationMovements=Kontobewegungen freigeben @@ -124,34 +123,17 @@ BANK_DISABLE_DIRECT_INPUT=Direktbuchung der Transaktion auf dem Bankkonto unterb ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Entwurfsexport des Journales erlauben ACCOUNTANCY_COMBO_FOR_AUX=Kombinierte Liste für Nebenbuchkonten aktivieren (das kann bei vielen Geschäftspartnern langsam gehen. Weiter kannst du so nicht nach Teilwerten suchen. ACCOUNTING_DATE_START_BINDING=Eröffnungsdatum der Buchhaltung festlegen. Alle Vorgänge davor werden in der Buchhaltung nicht berücksichtigt. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Standard - Zeitraum auf den Journalisierungsseiten -ACCOUNTING_MISCELLANEOUS_JOURNAL=Nebenjournal -ACCOUNTING_SOCIAL_JOURNAL=Personaljournal +ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesenabrechnungsjournal ACCOUNTING_HAS_NEW_JOURNAL=Hat neuen Journaleintrag +ACCOUNTING_SOCIAL_JOURNAL=Personaljournal ACCOUNTING_RESULT_PROFIT=Ergebniskonto (Gewinn) ACCOUNTING_RESULT_LOSS=Ergebniskonto (Verlust) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Abschlussjournal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Transferkonto Banktransaktionen TransitionalAccount=Durchlaufkonto Bank -ACCOUNTING_ACCOUNT_SUSPENSE=Sperrkonto -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Abonnemente -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standardkonto für Kunden - Anzahlungen -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Standard - Buchhaltungskonto für gekaufte Produkte\n(Wird verwendet, wenn kein Konto in der Produktdefinition hinterlegt ist) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Standardkonto für importierte Produkte aus der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Standardkonto für importierte Produkte ausserhalb der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Produkte\n(Wird verwendet, wenn kein Konto in der Produktdefinition hinterlegt ist) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Standard - Buchhaltungskonto für Produktverkäufe in EWR - Staaten\n(Wird verwendet, wenn kein Konto in der Produktdefinition hinterlegt ist). -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Standardkonto für Verkäufe an nicht EWR - Staaten (sofern nicht anders im Produkt hinterlegt) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard - Buchhaltungskonto für gekaufte Leistungen\n(Wird verwendet, wenn kein Konto in der Leistungsdefinition hinterlegt ist) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Standardkonto für importierte Dienstleistungen aus der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Standardkonto für importierte Dienstleistungen ausserhalb der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Leistungen\n(Wird verwendet, wenn kein Konto in der Leistungsdefinition hinterlegt ist) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Leistungen in den EWR\n(Wird verwendet, wenn kein Konto in der Leistungsdefinition hinterlegt ist). -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Standardkonto für verkaufte Leistungen an nicht EWR - Staaten (sofern nicht anders im Produkt hinterlegt) -LabelAccount=Kontobezeichnung LabelOperation=Vorgangsbezeichnung AccountingDirectionHelp=Verwenden Sie für ein Buchhaltungskonto eines Kunden Guthaben, um eine Zahlung zu erfassen, die Sie erhalten haben.
    Verwenden Sie für ein Buchhaltungskonto eines Lieferanten Debit, um eine von Ihnen geleistete Zahlung zu erfassen LetteringCode=Beschriftung +Lettering=Beschriftung JournalLabel=Journalbezeichnung TransactionNumShort=Transaktionsnummer GroupByAccountAccounting=Nach Hauptbuchkonto gruppieren @@ -177,6 +159,7 @@ NewAccountingMvt=Neue Transaktion NumMvts=Nummer der Transaktion ListeMvts=Liste der Kontobewegungen ErrorDebitCredit=Soll und Haben können nicht beide gleichzeitig einen Wert haben. +AddCompteFromBK=Buchhaltungskonten zur Gruppe hinzufügen ReportThirdParty=Liste der Geschäftspartner-Konten DescThirdPartyReport=Liste der Geschäftpartner (Kunden und Lieferanten) mit deren Buchhaltungskonten ListAccounts=Liste der Buchhaltungskonten @@ -192,25 +175,18 @@ ShowOpeningBalance=Eröffnungssaldo anzeigen HideOpeningBalance=Eröffnungssaldo ausblenden Pcgtype=Kontengruppe TotalMarge=Gesamtmarge Verkauf -DescVentilCustomer=Du siehst hier die Liste der Kundenrechnungen und ob diese mit einem Buchhaltungskonto verknüpft sind, oder nicht. -DescVentilMore=Wenn du in den Produkten und Leistungen die Buchhaltungskonten deines Kontenplanes hinterlegt hast, kann ich die Rechnungspositionen automatisch jenen Konten zuordnen. Dafür ist die Schaltfläche "%s" da.\nDort, wo das nicht klappt, kannst du die Rechnungspositionen via "%s" von Hand zuweisen. -DescVentilDoneCustomer=Du siehst die Kundenrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten. -DescVentilTodoCustomer=Verknüpfe Rechnungspositionen mit Buchhaltungskonten. -ChangeAccount=Ersetze für die gewählten Positionen das Buchhaltungskonto. -DescVentilSupplier=Du siehst die Lieferantenrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten.\n(Hier siehst du alle Einträge, die noch nicht in das Hauptbuch geschrieben sind.) DescVentilDoneSupplier=Liste der Lieferanten - Rechnungspositionen mit aktuell zugewiesenen Buchhaltungskonten. DescVentilTodoExpenseReport=Hier verknüpfst du Spesenauslagen mit dem passenden Buchhaltungskonto. DescVentilExpenseReport=Du siehst die Spesenabrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten. DescVentilExpenseReportMore=Wenn du in den Spesenarten Buchhaltungskonten hinterlegt hast, kann ich jene einander automatisch zuordnen. Dafür ist die Schaltfläche "%s" da.\nDort, wo das nicht klappt, kannst du die passenden Buchhaltungskonten via "%s" von Hand zuweisen. DescVentilDoneExpenseReport=Du siehst die Spesenabrechnungspositionen und die damit verknüpften Buchhaltungskonten. +Closure=Jahresabschluss DescValidateMovements=Für den Abschluss müssen alle Kontobewegungen frei gegeben sein. Danach sind sie nicht mehr änderbar. ValidateHistory=Automatisch verknüpfen -ErrorAccountancyCodeIsAlreadyUse=Hoppla, dieses Buchhaltungskonto wird noch verwendet - du kannst es deshalb nicht löschen. Balancing=Saldierung FicheVentilation=Verknüpfungskarte GeneralLedgerIsWritten=Die Transaktionen werden ins Hauptbuch übertragen. GeneralLedgerSomeRecordWasNotRecorded=Einige Transaktionen konnten leider nicht journalisiert werden.\nHat es eine Fehlermeldung gegeben? Wenn nicht, waren die betroffenen Transaktionen vermutlich bereits im Buch eingetragen. -ListOfProductsWithoutAccountingAccount=Produkte ohne Verknüpfung zu einem Buchhaltungskonto ChangeBinding=Verknüpfung ändern Accounted=Im Hauptbuch eingetragen ShowTutorial=Zeige die Anleitung @@ -223,6 +199,7 @@ NewAccountingJournal=Neues Buchhaltungssjournal AccountingJournalType1=Verschiedene Vorgänge AccountingJournalType2=Verkauf AccountingJournalType3=Einkauf +AccountingJournalType5=Spesenrapporte AccountingJournalType8=Inventar AccountingJournalType9=Hat neues ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird schon verwendet. @@ -259,6 +236,7 @@ OptionModeProductSellDesc=Finde alle Produkte mit einem Buchhaltungskonto für V OptionModeProductSellIntraDesc=Zeige alle Produkte mit einem Buchhaltungskonto für den Export in den EWR OptionModeProductSellExportDesc=Zeige alle Produkte mit einem Buchhaltungskonto für den Export in andere Länder OptionModeProductBuyDesc=Finde alle Produkte mit einem Buchhaltungskonto für Einkäufe. +OptionModeProductBuyIntraDesc=Alle Produkte mit Buchhaltungskonto für Einkäufe in der EWG anzeigen. OptionModeProductBuyExportDesc=Alle Produkte mit Buchhaltungskonto für sonstige Auslandskäufe anzeigen. CleanFixHistory=Lösche alle Kontierungscodes, die im Kontenplan nicht vorkommen, aus allen Positionen CleanHistory=Setzte alle Verknüpfungen für das gewählte Jahr zurück @@ -270,6 +248,8 @@ AccountRemovedFromGroup=Ich hab das Buchhaltungskonto aus der Gruppe entfernt. SaleLocal=Inlandverkauf SaleExport=Exportverkauf SaleEEC=Verkauf im EWR +ForbiddenTransactionAlreadyExported=Unzulässig: Die Transaktion wurde bereits validiert und/oder exportiert. +ForbiddenTransactionAlreadyValidated=Unzulässig: Die Transaktion wurde bereits validiert. Range=Bereich dieses Kontenplanes Calculated=Berechnet ConfirmMassDeleteBookkeepingWriting=Bestätige die Mehrfachlöschung @@ -286,5 +266,6 @@ UseMenuToSetBindindManualy=Nicht verbundenen Positionen, bitte Benutze den Menup ImportAccountingEntries=Buchungen FECFormatJournalCode=Code-Journal (JournalCode) FECFormatReconcilableDate=Übertragbares Datum (DateLet) +DateExport=Datum Export WarningReportNotReliable=Obacht, dieser Bericht basiert nicht auf den Hauptbucheinträgen. Falls dort also noch Änderungen vorgenommen worden sind, wird das nicht übereinstimmen. Bei sauberer Buchführung nimmst du eher die Buchhaltungsberichte. ExpenseReportJournal=Spesenabrechnungsjournal diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index 485fa6f2fe0..917d538c29e 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -85,6 +85,7 @@ Language_en_US_es_MX_etc=Sprache setzen (de_CH, en_GB,...) SystemToolsAreaDesc=Dieser Bereich ist voll mit Administratorfunktionen - Wähle im Menu aus. Purge=Säubern PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis %s). Diese Funktion ist richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) +PurgeDeleteLogFile=Löschen der Protokolldateien, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) PurgeDeleteTemporaryFilesShort=Protokoll und temporäre Dateien löschen (kein Risiko von Datenverlust) PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis %s löschen.
    Dadurch werden alle generierten Dokumente gelöscht, die sich auf Elemente (Geschäftspartner, Rechnungen usw.), Dateien, die in das ECM-Modul hochgeladen wurden, Datenbank-Backup-Dumps und temporäre Dateien beziehen. PurgeNDirectoriesDeleted=%s Dateien oder Verzeichnisse gelöscht. @@ -166,6 +167,7 @@ MAIN_MAIL_SENDMODE=Methode zum Senden von E-Mails MAIN_MAIL_SMTPS_ID=SMTP - Benutzer (wenn Authentifizierung durch Ausgangsserver erforderlich) MAIN_MAIL_SMTPS_PW=SMTP - Passwort (wenn Authentifizierung durch Ausgangsserver erforderlich) MAIN_MAIL_EMAIL_TLS=TLS (SSL)-Verschlüsselung verwenden +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Autorisieren der automatischen Signaturen der Zertifikate MAIN_MAIL_EMAIL_DKIM_ENABLED=Authentiziere dich durch DKIM - E-Mail Signatur MAIN_MAIL_EMAIL_DKIM_DOMAIN=DKIM Domäne MAIN_MAIL_EMAIL_DKIM_SELECTOR=DKIM - Selector @@ -191,6 +193,7 @@ DownloadPackageFromWebSite=Lade das gefundene Paket herunter (zum Beispiel von d UnpackPackageInDolibarrRoot=Entpacke das Archiv in dein aktuelles Dolibarr Verzeichnis: %s. SetupIsReadyForUse=Modulinstallation abgeschlossen. Aktiviere und konfiguriere nun das Modul im Menu "%s". InfDirExample=
    Dann deklariere in conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    \n"#" heisst, die Variablen sind auskommentiert und werden nicht berücksichtigt.\nEntferne einfach "#", um die Variablen scharf zu schalten. +CurrentVersion=Aktuelle dolibarr-Version CallUpdatePage=Zur Aktualisierung der Daten und der Datenbankstruktur gehst du zur Seite %s. UpdateServerOffline=Update-Server offline WithCounter=Zähler verwalten @@ -214,6 +217,7 @@ ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.

    Fügen Sie hier den vollständigen Pfad der Verzeichnisse ein.
    Trennen Sie jedes Verzeichnis mit einer Zeilenschaltung
    Verzeichnisse des ECM-Moduls fügen Sie z.B. so ein DOL_DATA_ROOT/ecm/yourdirectoryname.

    Dateien in diesen Verzeichnissen müssen mit .odt oder .ods enden. NumberOfModelFilesFound=Anzahl der .odt / .ods Vorlagen in diesen Verzeichnissen. DescWeather=Diese Piktogramme werden bei verspäteten Tasks gemäss folgenden Werten angezeigt. +KeyForWebServicesAccess=Schlüssel um Web Services (Parameter "dolibarrkey" in webservices) zu benützen ThisForceAlsoTheme=Dieser Menu Manager übersteuert die Benutzereinstellung. Er funktioniert nicht auf allen Smartphones. Wähle einen anderen, falls Probleme auftauchen. ConnectionTimeout=Zeitüberschreitung in der Verbindung ResponseTimeout=Antwort Timeout @@ -276,7 +280,6 @@ DependsOn=Dieses Modul benötigt die folgenden Module RequiredBy=Diese Modul wird durch folgende Module verwendet PageUrlForDefaultValues=Sie müssen den relativen Pfad der Seiten-URL eingeben. Wenn Sie Parameter in die URL einschließen, werden die Standardwerte wirksam, wenn alle Parameter auf denselben Wert eingestellt sind. EnableDefaultValues=Eigene Standartwerte erlauben. -EnableOverwriteTranslation=Eigene Übersetzungen erlauben WarningSettingSortOrder=Warnung: Änderungen an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vorhanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her. ProductDocumentTemplates=Dokumentvorlagen zur Erstellung von Produktdokumenten WatermarkOnDraftExpenseReports=Wasserzeichen auf Entwurf von Ausgabenbelegen @@ -315,6 +318,8 @@ Module85Name=Bankkonten & Bargeld Module100Desc=Hinzufügen eines Links zu einer externen Website als Icon im Hauptmenü. Die Webseite wird in einem Dolibarr-Frame unter dem Haupt-Menü angezeigt. Module105Desc=Mailman oder SPIP Schnittstelle für die Mitgliedsmodul Module200Desc=LDAP Synchronisierung +Module240Name=Daten Exporte +Module250Name=Daten Importe Module310Desc=Management von Mitglieder einer Stiftung/Vereins Module320Desc=RSS Feed auf Dolibarr - Seiten zeigen Module330Name=Lesezeichen und Verknüpfungen @@ -339,6 +344,7 @@ Module2000Desc=Ermöglicht die Bearbeitung von Textfeldern mit dem CKEditor (htm Module2200Desc=Mathematische Ausdrücke für Preise aktivieren Module2300Name=Geplante Aufträge Module2300Desc=Geplante Aufgaben (CronJobs, ChronoTable) verwalten. +Module2400Name=Ereignisse/Termine Module2400Desc=Ereignisse verfolgen. Lassen Sie Dolibarr automatische Ereignisse zur Verfolgung protokollieren oder nehmen Sie manuelle Ereignisse oder Besprechungen auf. Dies ist das Hauptmodul für ein gutes Management von Kunden- oder Lieferanten-Beziehungen. Module2500Desc=Document - / Electronic Content Management System. Deine Dokumente werden automatisch organisiert. Du kannst deine Dateien teilen. Module2660Desc=Aktivieren Sie den Dolibarr Webservice-Client (Kann verwendet werden, um Daten/Anfragen an externe Server zu übertragen. Nur Lieferantenbestellungen werden derzeit unterstützt.) @@ -360,6 +366,7 @@ Module55000Desc=Modul zur Erstellung von Online-Umfragen, Umfragen oder Abstimmu Module62000Name=Lieferbedingungen Module62000Desc=Hinzufügen von Funktionen zur Verwaltung von Lieferbedingungen (Incoterms) Module63000Desc=Hier kannst du deine Ressourcen (Drucker, Räume, Fahrzeuge) Kalenderereignissen zuweisen. +Module94160Name=Lieferungen Permission26=Angebote schliessen Permission61=Leistungen ansehen Permission62=Leistungen erstellen/bearbeiten @@ -367,11 +374,17 @@ Permission64=Interventionen löschen Permission76=Daten exportieren Permission87=Kundenaufträge abschliessen Permission91=Sozialabgaben, Steuern und Mehrwertsteuer einsehen -Permission121=Mit Benutzer verbundene Geschäftspartner einsehen -Permission122=Mit Benutzer verbundene Geschäftspartner erstellen/bearbeiten -Permission125=Mit Benutzer verbundene Geschäftspartner löschen +Permission101=Auslieferungen einsehen +Permission102=Auslieferungen erstellen/bearbeiten +Permission104=Auslieferungen freigeben +Permission106=Auslieferungen exportieren +Permission111=Finanzkonten einsehen +Permission112=Transaktionen erstellen/ändern/löschen und vergleichen +Permission151=Bestellung mit Zahlart Lastschrift +Permission153=Bestellungen mit Zahlart Lastschrift übertragen Permission163=Service/Abonnement in einem Vertrag aktivieren Permission164=Service/Abonnement in einem Vertrag deaktivieren +Permission171=Reise- und Spesenabrechnung einsehen (Eigene und von Untergebenen) Permission172=Reise- und Spesenabrechnung erstellen/ändern Permission181=Lieferantenbestellungen einsehen Permission184=Lieferantenbestellungen bestätigen @@ -383,43 +396,45 @@ Permission193=Leitungen abbrechen Permission203=Bestellungsverbindungen Bestellungen Permission215=Lieferanten einrichten Permission255=Andere Passwörter ändern +Permission272=Rechnungen anzeigen Permission273=Ausgabe Rechnungen -Permission300=Barcodes auslesen -Permission301=Barcodes erzeugen und ändern. -Permission311=Leistungen einsehen +Permission304=Barcodes erzeugen und ändern. Permission331=Lesezeichen einsehen -Permission401=Rabatte einsehen Permission430=PHP Debug Bar verwenden +Permission519=Löhne exportieren Permission520=Darlehen einsehen Permission525=Darlehens-rechner Permission527=Exportiere Darlehen -Permission531=Leistungen einsehen Permission650=Rechnungen für Rohmaterialien einsehen. Permission651=Rechnungen für Rohmaterialien erzeugen und bearbeiten Permission652=Rechnungen für Rohmaterialien löschen Permission701=Spenden einsehen +Permission771=Spesenabrechnungen einsehen (eigene und die der Untergebenen) +Permission1001=Warenbestände einsehen +Permission1002=Warenlager erstellen/ändern Permission1121=Partnerofferten einsehen Permission1122=Partnerofferten erzeugen und bearbeiten Permission1123=Partnerofferten freigeben Permission1124=Partnerofferten auslösen Permission1125=Partnerofferten löschen Permission1126=Lieferanten - Preisanfragen schliessen -Permission1182=Lieferantenbestellungen einsehen Permission1185=Lieferantenbestellungen bestätigen Permission1186=Lieferantenbestellungen auslösen Permission1187=Empfangsbestätigung Lieferantenbestellung quittieren Permission1190=Lieferantenbestellungen bestätigen (zweite Bestätigung). -Permission1231=Lieferantenrechnungen einsehen Permission1232=Lieferantenrechnungen erzeugen und bearbeiten Permission1236=Kundenrechnungen, -attribute und -zahlungen exportieren Permission1421=Kundenaufträge mit Attributen exportieren Permission2414=Aktionen und Aufgaben anderer exportieren +Permission2503=Dokumente bestätigen oder löschen Permission20003=Urlaubsanträge löschen Permission23001=anzeigen cronjobs Permission23002=erstellen/ändern cronjobs Permission23003=cronjobs löschen Permission23004=cronjobs ausführen +Permission55002=Abstimmung erstellen/ändern Permission59002=Gewinspanne definieren +Permission63001=Ressourcen anzeigen DictionaryCompanyType=Geschäftspartner Typen DictionaryCompanyJuridicalType=Rechtsformen von Unternehmen DictionaryActions=Arten von Kalenderereignissen @@ -441,6 +456,7 @@ CompanyInfo=Firma / Organisation CompanyZip=PLZ CompanyCountry=Land DoNotSuggestPaymentMode=Nicht vorschlagen +NoActiveBankAccountDefined=Keine aktiven Finanzkonten definiert SetupDescription1=Der Setupbereich erlaubt das konfigurieren ihrer Dolibarr Installation vor der ersten Verwendung. InfoDolibarr=Infos Dolibarr InfoBrowser=Infos Browser @@ -459,6 +475,7 @@ RestoreDesc2=Stellen Sie die Sicherungsdatei (z.B. Zip-Datei) des Verzeichnisses RestoreDesc3=Stellen Sie die Datenbankstruktur und die Daten aus einer Datenbank Sicherungskopie in der Datenbank einer neuen Dolibarr-Installation oder in der Datenbank dieser aktuellen Installation wieder her ( %s ). Warnung: Nach Abschluss der Wiederherstellung müssen Sie ein Login / Passwort verwenden, das zum Zeitpunkt der Sicherung / Installation vorhanden war, um erneut eine Verbindung herzustellen.
    Folgen Sie diesem Assistenten, um eine Datenbanksicherung in dieser aktuellen Installation wiederherzustellen. DownloadMoreSkins=Weitere grafische Oberflächen/Themes herunterladen MeteoStdMod=Standard Modus +TestLoginToAPI=Testen Sie sich anmelden, um API ExtraFieldsLines=Ergänzende Attribute (Zeilen) ExtraFieldsSupplierOrdersLines=Ergänzende Attribute (in Bestellungszeile) ExtraFieldsSupplierInvoicesLines=Ergänzende Attribute (in Rechnungszeile) @@ -473,6 +490,7 @@ HRMSetup=HRM Modul Einstellungen CompanySetup=Unternehmenseinstellungen NotificationsDesc=E-Mail - Benachrichtigungen für Ereignisse können automatisch verschickt werden.
    Die Empfänger kannst du so definieren: BillsSetup=Rechnungsmoduleinstellungen +FreeLegalTextOnInvoices=Freier Rechtstext für Rechnungen WatermarkOnDraftInvoices=Wasserzeichen auf Rechnungs-Entwurf (keines, falls leer) SuppliersPayment=Lieferantenzahlungen PropalSetup=Angebotsmoduleinstellungen @@ -482,6 +500,7 @@ FreeLegalTextOnProposal=Freier Rechtstext für Angebote WatermarkOnDraftProposal=Wasserzeichen auf Angebots-Entwurf (keines, falls leer) OrdersNumberingModules=Bestellnumerierungs-Module OrdersModelModule=Bestellvorlagenmodule +FreeLegalTextOnOrders=Freier Rechtstext auf Bestellungen WatermarkOnDraftOrders=Wasserzeichen auf Bestellungs-Entwurf (keines, wenn leer) ShippableOrderIconInList=In Auftragsliste ein entsprechendes Icon zufügen, wenn die Bestellung versandbereit ist InterventionsSetup=Servicemoduleinstellungen @@ -514,8 +533,6 @@ MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is ProductSetup=Produktmoduleinstellungen ServiceSetup=Leistungen Modul Setup ProductServiceSetup=Produkte und Leistungen Module Einstellungen -SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte -SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Geschäftspartner UseUnits=Definieren Sie eine Masseinheit für die Menge während der Auftrags-, Auftragsbestätigungs- oder Rechnungszeilen-Ausgabe ProductCodeChecker=Modul für Produktcode-Erstellung und -Überprüfung (Produkt oder Service) ProductOtherConf=Konfiguration Produkt-/Services @@ -533,6 +550,15 @@ MailingEMailFrom=Absender E-Mail (From:) des Versandmoduls NotificationSetup=E-Mail Benachrichtigunen konfigurieren NotificationEMailFrom=Absender E-Mail (From:) des Benachrichtigungsmoduls SendingsSetup=Modul Versand einrichten +SendingsReceiptModel=Versandbelegsvorlage +SendingsNumberingModules=Nummerierungsmodell Auslieferungen +FreeLegalTextOnShippings=Freier Text auf Lieferungen +DeliveryOrderNumberingModules=Zustellscheinnumerierungs-Module +DeliveryOrderModel=Zustellscheinnumerierung +DeliveriesOrderAbility=Unterstütze Zustellscheine für Produkte +FreeLegalTextOnDeliveryReceipts=Freier Rechtstext auf Empfangsbelegen +FCKeditorForMailing=WYSIWIG Erstellung/Bearbeitung von E-Mails +FCKeditorForUserSignature=WYSIWIG Erstellung/Bearbeitung von Benutzer-Signaturen FCKeditorForMail=WYSIWYG Erstellung/Bearbeitung für gesamte Mail (ausser Werkzeuge->Massenmaling) StockSetup=Modul Lagerverwaltung einrichten DetailTitre=Menübezeichner oder Bezeichnungs-Code für Übersetzung @@ -542,6 +568,9 @@ OptionVATDebitOption=Rückstellungsbasis AgendaSetup=Aufgaben/Termine-Modul Einstellungen ClickToDialSetup=Click-to-Dial Moduleinstellungen CashDeskSetup=Modul Kasse (POS) einrichten +CashDeskBankAccountForSell=Standard-Bargeldkonto für Kassenverkäufe (erforderlich) +CashDeskBankAccountForCB=Finanzkonto für die Einlösung von Bargeldzahlungen via Kreditkarte +CashDeskIdWareHouse=Lager für Entnahmen festlegen und und erzwingen BookmarkSetup=Lesezeichenmoduleinstellungen ApiSetup=API-Modul-Setup BankSetupModule=Bankmoduleinstellungen @@ -562,7 +591,6 @@ ExpenseReportNumberingModules=Modul Spesenabrechnung (Numerierung) YouMayFindNotificationsFeaturesIntoModuleNotification=Du kannst automatische Benachrichtigungen im Modul "Benachrichtigungen" festlegen und verwalten. ConfFileMustContainCustom=Zur Installation eines externen Modules speichern Sie die Modul-Dateien in Verzeichnis %s. Damit Dolibarr dieses Verzeichniss verwendet, musst du in der Setupdatei conf.php die Optionen
    $dolibarr_main_url_root_alt auf
    $dolibarr_main_url_root_alt="/custom" oder
    '%s/custom'; hinzufügen oder anpassen. LinkColor=Linkfarbe -TopMenuDisableImages=Hide images in Top menu MinimumNoticePeriod=Kündigungsfrist (Ihre Kündigung muss vor dieser Zeit erfolgen) NbAddedAutomatically=Anzahl Tage die den Benutzern jeden Monat automatisch dazuaddiert werden TypeOfTemplate=Type der Vorlage @@ -570,6 +598,7 @@ MailToSendProposal=Angebote Kunde MailToSendOrder=Kundenbestellungen MailToSendIntervention=Arbeitseinsätze MailToSendReception=Lieferungen +MailToExpenseReport=Spesenrapporte ModelModulesProduct=Vorlage für Produktdokumente SeeSubstitutionVars=Siehe * für eine Liste der Verfügbaren Variablen AddRemoveTabs=Tab hinzufügen oder entfernen @@ -601,12 +630,9 @@ EmailCollector=E-Mail Sammeldienst EmailCollectorDescription=Hier kannst du zeitgesteuert IMAP - Mailboxen regelmässig abfragen und korrekt in deiner Umgebung zuweisen. Weiter kannst du daraus automatisch Objekte erzeugen, z.B. Interessenten. NewEmailCollector=Neuer E-Mail - Sammeldienst EMailHost=IMAP Server Host -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. EmailCollectorConfirmCollectTitle=E-Mail - Sammeldienst Bestätigung -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. NoNewEmailToProcess=Ich habe keinen neuen E-Mails (die zu den Filtern passen) abzuarbeiten. -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. ResourceSetup=Modul Ressourcen einrichten UseSearchToSelectResource=Zeige eine Suchmaske für Ressourcen, statt eine Drop-down - Liste DisabledResourceLinkUser=Verknüpfungsmöglichkeit zwischen Ressource und Benutzer unterbinden. diff --git a/htdocs/langs/de_CH/banks.lang b/htdocs/langs/de_CH/banks.lang index 17a8a1189bf..97978944dc1 100644 --- a/htdocs/langs/de_CH/banks.lang +++ b/htdocs/langs/de_CH/banks.lang @@ -1,18 +1,14 @@ # Dolibarr language file - Source file is en_US - banks MenuBankCash=Bank | Bar FinancialAccount=Finanzkonto -BankAccount=Bankkonto BankAccounts=Kontenübersicht BankAccountsAndGateways=Bankkonten | Schnittstellen AccountRef=Konto-Referenz -AccountLabel=Kontobezeichnung CashAccount=Kasse CashAccounts=Kassen BankBalanceBefore=Bilanz vor BankBalanceAfter=Bilanz nach AllTime=Vom start -Reconciliation=Zahlungsabgleich -RIB=Kontonummer SwiftValid=BIC/SWIFT gültig SwiftNotValid=BIC/SWIFT ungültig IbanValid=BAN gültig @@ -44,8 +40,6 @@ Conciliated=Ausgeglichen BankLineConciliated=Transaktion mit Bankbeleg ausgeglichen SupplierInvoicePayment=Lieferantenzahlung MenuBankInternalTransfer=Kontoübertrag -TransferFrom=Von -TransferTo=An CheckTransmitter=Absender ValidateCheckReceipt=Chequebeleg genehmigen? DeleteCheckReceipt=Chequebeleg löschen? diff --git a/htdocs/langs/de_CH/bills.lang b/htdocs/langs/de_CH/bills.lang index a837b366b49..130241e87bb 100644 --- a/htdocs/langs/de_CH/bills.lang +++ b/htdocs/langs/de_CH/bills.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - bills -BillsCustomersUnpaid=Offene Kundenrechnungen BillsCustomersUnpaidForCompany=Unbezahlte Rechnungen von %s BillsSuppliersUnpaid=Unbezahlte Lieferantenrechnungen BillsSuppliersUnpaidForCompany=Unbezahlte Rechnungen für %s @@ -118,7 +117,6 @@ DiscountFromExcessReceived=Überschuss zum Rechnungsbetrag %s DiscountFromExcessPaid=Überschuss zum Rechnungsbetrag %s AbsoluteDiscountUse=Diese Art von Krediten verwendet werden kann auf der Rechnung vor der Validierung NewGlobalDiscount=Neue Rabattregel -NewRelativeDiscount=Neuer relativer Rabatt DiscountType=Rabattart DiscountStillRemaining=Verfügbare Rabatte und Gutschriften DiscountAlreadyCounted=Aufgebrauchte Rabatte und Gutschriften diff --git a/htdocs/langs/de_CH/boxes.lang b/htdocs/langs/de_CH/boxes.lang index 95018f3b6c2..7bd9754e4fe 100644 --- a/htdocs/langs/de_CH/boxes.lang +++ b/htdocs/langs/de_CH/boxes.lang @@ -4,11 +4,8 @@ BoxLastRssInfos=RSS - Information BoxLastProducts=%s neueste Produkte/Leistungen BoxProductsAlertStock=Lagerbestandeswarnungen für Produkte BoxLastProductsInContract=%s zuletzt in Verträgen verwendete Produkte/Leistungen -BoxLastSupplierBills=Neueste Lieferantenrechnungen -BoxLastCustomerBills=Neueste Kundenrechnungen BoxOldestUnpaidCustomerBills=Älteste offene Kundenrechnungen BoxOldestUnpaidSupplierBills=Älteste offene Lieferantenrechnungen -BoxLastProposals=Neueste Angebote BoxLastProspects=Zuletzt bearbeitete Leads BoxLastCustomers=Zuletzt bearbeitete Kunden BoxLastSuppliers=Zuletzt bearbeitete Lieferanten diff --git a/htdocs/langs/de_CH/commercial.lang b/htdocs/langs/de_CH/commercial.lang index edf30db19b1..a3ab0012f82 100644 --- a/htdocs/langs/de_CH/commercial.lang +++ b/htdocs/langs/de_CH/commercial.lang @@ -35,8 +35,5 @@ Stats=Verkaufsstatistik StatusProsp=Interessenten Status NoLimit=Kein Limit ToOfferALinkForOnlineSignature=Link zur Digitalen Unterschrift -WelcomeOnOnlineSignaturePage=Willkommen auf der Seite zum Offerten von %s zu aktzeptieren. -ThisScreenAllowsYouToSignDocFrom=Hier kannst du die Offerte akzeptieren, unterzeichen oder zurückweisen. -ThisIsInformationOnDocumentToSign=Hier die Informationen zum Dokument, das zu akzeptieren oder zurückzuweisen ist. SignatureProposalRef=Unterschrift zur Offerte %s FeatureOnlineSignDisabled=Hoppla, online unterschreiben ist entweder deaktiviert - oder die Offerte wurde erstellt, bevor online unterschreiben aktiviert worden war. diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang index 553030cba5e..1869e91605d 100644 --- a/htdocs/langs/de_CH/companies.lang +++ b/htdocs/langs/de_CH/companies.lang @@ -3,11 +3,9 @@ ErrorSetACountryFirst=Wähle zuerst das Land SelectThirdParty=Wähle einen Geschäftspartner MenuNewThirdParty=Erzeuge Geschäftspartner MenuNewCustomer=Erzeuge Kunde -MenuNewSupplier=Neuer Lieferant NewCompany=Erzeuge Partner (Lead / Kunde / Lieferant) NewThirdParty=Erzeuge Geschäftspartner (Lead / Kunde / Lieferant) CreateDolibarrThirdPartySupplier=Erstelle einen Lieferant -CreateThirdPartyOnly=Geschäftspartner erstellen CreateThirdPartyAndContact=Erzeuge Geschäftspartner mit Kontakt IdThirdParty=Geschäftspartner ID IdCompany=Unternehmens ID @@ -56,10 +54,6 @@ ProfId2BR=IE (Staatliche Behörde) ProfId3BR=IM (kommunale Behörde) ProfId3CH=Prof Id 1 (Bundes-Nummer) ProfId4CH=Prof Id 2 (Commercial Record-Nummer) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits ProfId1DE=Umsatzsteuer-Identifikationsnummer ProfId4DE=Steuernummer ProfId1ES=Prof Id 1 (CIF / NIF) @@ -121,10 +115,8 @@ AddContact=Kontakt erstellen AddContactAddress=Kontakt/Adresse erstellen ContactId=Kontakt ID FromContactName=Name -NoContactDefinedForThirdParty=Für diesen Geschäftspartner ist kein Kontakt eingetragen NoContactDefined=Kein Kontakt vorhanden ContactByDefaultFor=Standardkontakt für -AddThirdParty=Geschäftspartner erstellen AccountancyCode=Buchhaltungskonto CustomerCodeShort=Kundennummer CustomerCodeDesc=Kundennummer, eindeutig für jeden Kunden @@ -133,7 +125,6 @@ RequiredIfCustomer=Erforderlich falls Geschäftspartner Kunde oder Interessent i RequiredIfSupplier=Erforderlich, wenn der Partner Lieferant ist ProspectToContact=Lead zu kontaktieren CompanyDeleted=Firma "%s" aus der Datenbank gelöscht. -ListOfThirdParties=Liste der Geschäftspartner ContactsAllShort=Alle (Kein Filter) ContactForOrdersOrShipments=Bestellungs- oder Lieferkontakt ContactForProposals=Offertskontakt @@ -181,6 +172,7 @@ FiscalMonthStart=Ab Monat des Geschäftsjahres YouMustAssignUserMailFirst=Für E-Mail - Benachrichtigung hinterlegst du bitte zuerst eine E-Mail Adresse im Benutzerprofil. YouMustCreateContactFirst=Sie müssen erst E-Mail-Kontakte beim Geschäftspartner anlegen, um E-Mail-Benachrichtigungen hinzufügen zu können. ListCustomersShort=Kundenliste +ThirdPartiesArea=Partner und Kontakte InActivity=Offen ActivityCeased=Inaktiv ThirdPartyIsClosed=Der Partner ist inaktiv. diff --git a/htdocs/langs/de_CH/compta.lang b/htdocs/langs/de_CH/compta.lang index bd6208b3b00..348e7d96723 100644 --- a/htdocs/langs/de_CH/compta.lang +++ b/htdocs/langs/de_CH/compta.lang @@ -1,29 +1,43 @@ # Dolibarr language file - Source file is en_US - compta OptionModeTrue=Option Eingang-Ausgang +OptionModeTrueDesc=Der Umsatz wird über die Zahlungen (Datum der Zahlungen) berechnet. \nDie Aussagekraft der Zahlen ist nur gewährleistet, wenn die Pflege der Konten (Ein-/Ausgang) nachhaltig korrekt ist. +OptionModeVirtualDesc=In dieser Option berechnet sich der Umsatz über Zahlungen (Zahlungsdatum).
    Die Gültigkeit der Zahlen ist nur bei Überprüfung der Zu- und Abgänge auf den Konten über Rechnungen gewährleistet. FeatureIsSupportedInInOutModeOnly=Dieses Feautre ist nur in der Soll-Haben-Option verfügbar (siehe Konfiguration des Rechnungswesen-Moduls) +MenuReportInOut=Ergebnis / Geschäftsjahr PaymentsNotLinkedToInvoice=Zahlungen mit keiner Rechnung und damit auch mit keinem Geschäftspartner verbunden Balance=Bilanz LT2SummaryES=EKSt. Übersicht VATCollected=Erhobene MwSt. +SocialContribution=Sozialabgabe oder Steuersatz +SocialContributions=Steuern- oder Sozialabgaben SocialContributionsDeductibles=Abzugsberechtigte Sozialabgaben/Steuern SocialContributionsNondeductibles=Nicht abzugsberechtigte Sozialabgaben/Steuern MenuTaxAndDividends=Steuern und Dividenden +MenuSocialContributions=Sozialabgaben/Steuern +ContributionsToPay=Sozialabgaben/Unternehmenssteuern zu bezahlen +PaymentSocialContribution=Sozialabgaben-/Steuer Zahlung PaymentVat=MwSt.-Zahlung VATPayment=MwSt.-Zahlung VATPayments=MwSt-Zahlungen +SocialContributionsPayments=Sozialabgaben-/Steuer Zahlungen ShowVatPayment=Zeige MwSt. Zahlung CustomerAccountancyCodeShort=Buchh.-Konto Kunde SupplierAccountancyCodeShort=Buchh.-Konto Lieferant ByThirdParties=Durch Geschäftspartner +ByUserAuthorOfInvoice=Durch Rechnungsersteller +CheckReceipt=Scheck erhalten +CheckReceiptShort=Scheck erhalten LastCheckReceiptShort=Letzte %s Scheckeinnahmen NoWaitingChecks=Keine Schecks warten auf Einlösung. +DeleteSocialContribution=Lösche Sozialabgaben-, oder Steuerzahlung CalcModeVATDebt=Modus %s Mwst. auf Engagement Rechnungslegung %s. CalcModeLT2Rec=Modus %sIRPF aufLieferantenrechnungen%s +RulesAmountWithTaxIncluded=- Angezeigte Beträge enthalten alle Steuern LT2ReportByCustomersES=Bericht von Geschäftspartner EKSt. VATReportByCustomersInInputOutputMode=Bericht zur vereinnahmten und bezahlten MwSt. nach Kunden -ThirdPartyMustBeEditAsCustomer=Geschäftspartner muss als Kunde definiert werden Pcg_type=PCG Typ Pcg_subtype=PCG Subtyp InvoiceLinesToDispatch=versandbereite Rechnungszeilen CalculationRuleDesc=Zur Berechnung der Gesamt-MwSt. gibt es zwei Methoden:
    Methode 1 rundet die Steuer in jeder Zeile und addiert zum Schluss.
    Methode 2 summiert alle Steuer-Zeilen und rundet am Ende.
    Das endgültige Ergebnis kann sich in wenigen Cent unterscheiden. Standardmodus ist Modus %s. LinkedFichinter=Mit einem Eingriff verknüpfen +ImportDataset_tax_contrib=Sozialabgaben/Steuern diff --git a/htdocs/langs/de_CH/ecm.lang b/htdocs/langs/de_CH/ecm.lang index 57cb0298e43..814cee2c845 100644 --- a/htdocs/langs/de_CH/ecm.lang +++ b/htdocs/langs/de_CH/ecm.lang @@ -6,7 +6,6 @@ ECMAddSection=Ordner hinzufügen ECMNbOfFilesInDir=Anzahl der Dateien in Ordner ECMNbOfSubDir=Anzahl der Unterordner ECMNbOfFilesInSubDir=Anzahl Dateien in Unterordnern -ECMAreaDesc2=* In den automatischen Verzeichnissen werden die vom System erzeugeten Dokumente abgelegt.
    * Die manuellen Verzeichnisse können Sie selbst verwalten und zusätzliche nicht direkt zuordenbare Dokument hinterlegen. ECMSectionWasRemoved=Der Ordner %s wurde gelöscht. ECMSearchByKeywords=Suche nach Stichwörter ECMSearchByEntity=Suche nach Objekt diff --git a/htdocs/langs/de_CH/errors.lang b/htdocs/langs/de_CH/errors.lang index 0e1ae0d6668..25e3c165ec5 100644 --- a/htdocs/langs/de_CH/errors.lang +++ b/htdocs/langs/de_CH/errors.lang @@ -21,7 +21,6 @@ ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf keine S ErrorFieldMustHaveXChar=Das Feld %s muss mindestens %s Zeichen haben. ErrorCantSaveADoneUserWithZeroPercentage=Ereignisse können nicht mit Status "Nicht begonnen" gespeichert werden, wenn das Feld "Erledigt durch" schon ausgefüllt ist. ErrorPleaseTypeBankTransactionReportName=Gib hier den Bankkontoauszug im Format YYYYMM oder YYYYMMDD an, in den du diesen Eintrag eintragen willst. -ErrorProdIdAlreadyExist=%s wurde bereits einem Geschäftspartner zugewiesen ErrorForbidden3=Es scheint keine ordnungsgemässe Authentifizierung für das System vorzuliegen. Bitte werfen Sie einen Blick auf die Systemdokumentation um die entsprechenden Authentifizierungsoptionen zu verwalten (htaccess, mod_auth oder andere...) ErrorBadValueForCode=Unzulässiger Code-Wert. Versuchen Sie es mit einem anderen Wert erneut... ErrorWarehouseRequiredIntoShipmentLine=Warenlager ist auf der Lieferzeile erforderlich. diff --git a/htdocs/langs/de_CH/externalsite.lang b/htdocs/langs/de_CH/externalsite.lang deleted file mode 100644 index 9577afd0918..00000000000 --- a/htdocs/langs/de_CH/externalsite.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteModuleNotComplete=Module ExternalSite wurde nicht richtig konfiguriert. diff --git a/htdocs/langs/de_CH/ftp.lang b/htdocs/langs/de_CH/ftp.lang deleted file mode 100644 index 5062bcc5001..00000000000 --- a/htdocs/langs/de_CH/ftp.lang +++ /dev/null @@ -1,12 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -NewFTPClient=Neue FTP-Verbindungseinstellungen -FTPArea=FTP-Übersicht -FTPAreaDesc=Die Ansicht zeigt einen FTP Server -SetupOfFTPClientModuleNotComplete=Hoppla, das Setup dieses FTP-Client - Moduls ist unvollständig. -FTPFeatureNotSupportedByYourPHP=Ihre PHP unterstützt keine FTP-Funktionen -FailedToConnectToFTPServer=Konnte keine Verbindung zum FTP-Server aufbauen (Server %s, Port %s) -FailedToConnectToFTPServerWithCredentials=Anmeldung am FTP-Server mit dem eingegebenen Benutzername/Passwort-Paar fehlgeschlagen -FTPFailedToRemoveFile=Konnte Datei %s nicht entfernen. -FTPFailedToRemoveDir=Ich kann das Verzeichnis %s nicht löschen.. Prüfe, ob du die Löschberechtigung hast und stelle sicher, dass es leer ist. -ChooseAFTPEntryIntoMenu=Wähle eine FTP - Site im Menu aus. -FailedToGetFile=Folgende Dateien konnten nicht geladen werden: %s diff --git a/htdocs/langs/de_CH/holiday.lang b/htdocs/langs/de_CH/holiday.lang index 15c991cf42b..019dba5d057 100644 --- a/htdocs/langs/de_CH/holiday.lang +++ b/htdocs/langs/de_CH/holiday.lang @@ -8,7 +8,9 @@ AddCP=Ferienantrag einreichen DateDebCP=Ferienbeginn DateFinCP=Ferienende ToReviewCP=Genehmigung ausstehend +ApprovedCP=genehmigt CancelCP=widerrufen +RefuseCP=abgelehnt Leave=Ferienantrag LeaveId=Ferien ID ReviewedByCP=Wird genehmigt von @@ -52,6 +54,7 @@ NotTheAssignedApprover=Du bist nicht der zugewiesene Genehmiger. UserCP=Benutzer ErrorAddEventToUserCP=Ein Fehler ist beim Erstellen der Sonderferien aufgetreten. AddEventToUserOkCP=Das Hinzufügen der Sonderferien wurde abgeschlossen. +PrevSoldeCP=Vorherige Übersicht alreadyCPexist=Ein Ferienantrag wurde für diese Periode bereits erstellt. BoxTitleLastLeaveRequests=Die %s zuletzt bearbeiteten Ferienanträge HolidaysCancelation=Stornierte Ferienanträge diff --git a/htdocs/langs/de_CH/hrm.lang b/htdocs/langs/de_CH/hrm.lang index cd212704e9a..17176eec0be 100644 --- a/htdocs/langs/de_CH/hrm.lang +++ b/htdocs/langs/de_CH/hrm.lang @@ -7,6 +7,5 @@ DeleteEstablishment=Betrieb löschen ConfirmDeleteEstablishment=Willst du diesen Betrieb wirklich löschen? OpenEtablishment=Betrieb wählen CloseEtablishment=Betrieb schliessen -DictionaryDepartment=Personalverwaltung - Abteilungsliste Employee=Mitarbeiter -NewEmployee=Neuer Mitarbeiter +HrmSetup=HRM Modul Einstellungen diff --git a/htdocs/langs/de_CH/loan.lang b/htdocs/langs/de_CH/loan.lang index b190d16d150..bf440b29d71 100644 --- a/htdocs/langs/de_CH/loan.lang +++ b/htdocs/langs/de_CH/loan.lang @@ -1,11 +1,26 @@ # Dolibarr language file - Source file is en_US - loan +Loan=Kredit +Loans=Kredite +NewLoan=Neuer Kredit +ShowLoan=Zeige Kredit +PaymentLoan=Kreditauszahlung +LoanPayment=Kreditauszahlung ShowLoanPayment=Zeige Kreidtauszahlung +LoanCapital=Kapital +Interest=Zins +Nbterms=Anzahl der Bedingungen +Term=Laufzeit +LoanAccountancyCapitalCode=Buchhaltungskonto Kapital LoanAccountancyInsuranceCode=Buchhaltungskonto Kreditversicherung LoanAccountancyInterestCode=Buchhaltungskonto Kreditzins +ConfirmDeleteLoan=Bestätigen Sie das Löschen dieses Kredites +LoanDeleted=Kredit erfolgreich gelöscht +ConfirmPayLoan=Bestätigen Sie das Löschen dieses Kredites +LoanPaid=Kredit bezahlt ListLoanAssociatedProject=Kredite für dieses Projekt AddLoan=Erzeuge Kredit +FinancialCommitment=Finanzielle Verpflichtung +InterestAmount=Zins CapitalRemain=Restkapital -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard - Buchhaltungskonto Kapital -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard - Buchhaltungskonto Zins -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard - Buchhaltungskonto Kreditversicherung +ConfigLoan=Konfiguration des Modul Kredite CreateCalcSchedule=Finanzielle Verpflichtung anpassen. diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang index faee978ff15..df9de7000cd 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -83,15 +83,20 @@ Close=Schliessen CloseBox=Box vom Startbildschirm entfernen ConfirmSendCardByMail=Willst du diese Karte wirklich an %s mailen? Resiliate=Abschliessen +Validate=Bestätigen ValidateAndApprove=Freigeben und bestätigen NotValidated=Nicht validiert SaveAndStay=Speichern Hide=Verbergen Valid=Freigabe Upload=Hochladen +Select=Wählen Sie ResizeOrCrop=Skalieren oder Beschneiden +Recenter=Zentrieren NewObject=Erzeuge %s Title=Titel +RefOrLabel=Nr. oder Bezeichnung +Family=Familie DateOfLine=Datum DurationOfLine=Dauer Model=Dokumentenvorlage @@ -100,10 +105,15 @@ Connection=Anmeldung Alert=Warnung Card=Karte DateToday=Aktuelles Datum +DateCreation=Erstellungsdatum +DateModification=Änderungsdatum DateModificationShort=Änd.Datum DateLastModification=Zuletzt geändert am +DateValidation=Freigabedatum DateClosing=Schliessungsdatum DateOperationShort=Ausf.Datum +DateRequest=Anfragedatum +DatePayment=Zahlungsziel RegistrationDate=Benutzer registriert am UserCreation=Benutzer erzeugt am UserModification=Zuletzt bearbeitet am @@ -118,6 +128,8 @@ MinuteShort=min DefaultValues=Standardwerte PriceCurrency=Währung UnitPriceHTCurrency=Nettopreis +PriceU=VP +PriceUHT=VP (netto) PriceUTTC=E.P. (inkl. Steuern) AmountInvoiced=Verrechneter Betrag AmountHT=Betrag (exkl. MWST) @@ -157,6 +169,7 @@ DefaultTaxRate=Standard Steuersatz RemainToPay=Offener Betrag Module=Modul / Applikation Modules=Module / Applikationen +Ref=Nummer RefSupplier=Lieferantennummer RefPayment=Zahlungs-Nr. ActionsToDo=Aktionen zur Erledigung @@ -174,15 +187,18 @@ ActionsOnMember=Aktionen zu diesem Mitglied ActionsOnProduct=Vorgänge zu diesem Produkt ToDo=Zu erledigen Running=In Bearbeitung +RequestAlreadyDone=Anfrage bereits bekannt Generate=Erstelle DolibarrStateBoard=Datenbankstatistiken DolibarrWorkBoard=Offene Aktionen NoOpenedElementToProcess=Keine offenen Aktionen Categories=Suchwörter/Kategorien Category=Stichwort / Kategorie -FromDate=Von FromLocation=Von +ToDate=An OtherInformations=Weitere Informationen +ApprovedBy=genehmigt von +Approved=genehmigt Refused=zurückgewiesen ResultKo=Fehlschlag OpenAll=Offen (alle Typen) @@ -198,11 +214,11 @@ NoItemLate=Es gibt keine verspätete Artikel LoginEmail=Benutzer Email - Adresse LoginOrEmail=Benutzername oder Email - Adresse EnterLoginDetail=Gib die Zugangsdaten ein +AttachedFiles=Angehängte Dateien und Dokumente JoinMainDoc=Führe das Hauptdokument zusammen. Keyword=Stichwort Origin=Herkunft AmountInCurrency=Betrag in %s -NbOfThirdParties=Anzahl der Geschäftspartner NbOfObjectReferers=Anzahl verknüpfter Objekte Referers=Verknüpfte Objekte Uncheck=nicht gewählt @@ -212,6 +228,7 @@ UndoExpandAll=Ausklappen rückgängig machen SeeAll=Zeige alles an CloseWindow=Fenster schliessen Priority=Wichtigkeit +MailSentBy=E-Mail Absender NotSent=Nicht gesendet SendAcknowledgementByMail=Bestätigungsemail senden SendMail=sende E-Mail @@ -224,6 +241,7 @@ RecordsModified=Geänderte Einträge: %s RecordsDeleted=Gelöschte Einträge: %s RecordsGenerated=Erzeugte Einträge: %s MoveBox=Box verschieben +Offered=angeboten CompleteOrNoMoreReceptionExpected=Vollständig oder keine Aktionen mehr erwartet YouCanChangeValuesForThisListFromDictionarySetup=Du kannst die Werte für diese Liste in Einstellungen -> Stammdaten anpassen. YouCanChangeValuesForThisListFrom=Du kannst die Werte für diese Liste im Menu %s einstellen. @@ -233,8 +251,10 @@ Screen=Bildschirm Signature=E-Mail-Signatur DateOfSignature=Unterschriftsdatum RootOfMedias=Stammverzeichnis für öffentliche Bilder (/medias) +Notes=Hinweise FreeLineOfType=Freitext vom Typ ReGeneratePDF=PDF erneut erzeugen +Merge=Verbinden DocumentModelStandardPDF=Standardvorlage (PDF) WarningYouAreInMaintenanceMode=Obacht, wir sind im Wartungsmodus. Nur der Benutzer "%s" kann Dolibarr im Moment nutzen. CoreErrorMessage=Hoppla, es ist ein Fehler aufgetreten. Dein Administrator kann mehr herausfinden, indem er die Logdateien durchgeht (oder in der Systemkonfiguration $dolibarr_main_prod auf '0' setzen) @@ -263,10 +283,12 @@ MyDashboard=Mein Dashboard SelectTargetUser=Wähle den Benutzer / Mitarbeiter SaveUploadedFileWithMask=Datei auf dem Server speichern mit dem Namen "%s" (oder "%s") OriginFileName=Original Dateiname +ViewPrivateNote=Zeige Hinweise ShowMoreLines=Mehr oder weniger Positionen anzeigen ShowTransaction=Zeige die Transaktion auf dem zugehörigen Bankkonto. ShowIntervention=Zeige Kundeneinsatz GoIntoSetupToChangeLogo=Gehen Sie zu "Start - Einstellungen - Firma / Organisation" um das Logo zu ändern. Gehen Sie zu "Start -> Einstellungen -> Anzeige" um es zu verstecken. +Denied=abgelehnt ListOf=Liste der %s GoodBye=Auf Wiedersehen! Sincerely=Mit freundlichen Grüssen @@ -323,6 +345,7 @@ SelectMailModel=Wähle deine Email - Vorlage Select2ResultFoundUseArrows=Ich habe mehrere Resultate gefunden - wähle mit den Pfeiltasten aus. Select2Enter=Eingabe Select2MoreCharactersMore=Suchsyntax:
    | OR (a|b)
    * Alle Zeichen (a*b)
    ^ Beginnt mit (^ab)
    $ Endet mit (ab$)
    +SearchIntoProductsOrServices=Produkte oder Dienstleistungen SearchIntoCustomerOrders=Kundenbestellungen SearchIntoInterventions=Arbeitseinsätze SearchIntoExpenseReports=Spesenrapporte @@ -331,6 +354,7 @@ SearchIntoVendorPayments=Lieferantenzahlungen NbComments=Anzahl Kommentare CommentPage=Kommentare CommentDeleted=Kommentar entfernt +PayedBy=Einbezahlt von PayedTo=Bezahlt an Quarterly=Vierteljährlich Remote=Entfernt @@ -361,3 +385,4 @@ CustomReports=Eigene Berichte StatisticsOn=Statistiken zu SelectYourGraphOptionsFirst=Wähle den Diagrammtyp Measures=Masseinheiten +Terminate=Abschliessen diff --git a/htdocs/langs/de_CH/members.lang b/htdocs/langs/de_CH/members.lang index 5f8582fe105..e938ab5d70c 100644 --- a/htdocs/langs/de_CH/members.lang +++ b/htdocs/langs/de_CH/members.lang @@ -11,12 +11,12 @@ SetLinkToThirdParty=Verknüpfung zu Dolibarr Partner MembersList=Mitgliederliste MembersListToValid=Liste der zu verifizierenden Mitglieder MembersListValid=Liste der verifizierten Mitglieder -MemberId=Mitgliedernummer MemberType=Mitgliederart MembersTypes=Mitgliederarten MemberStatusDraft=Entwürfe (benötigen Bestätigung) MemberStatusNoSubscriptionShort=Bestätigt SubscriptionEndDate=Enddatum des Abonnements +NewSubscription=Neuer Beitrag NewSubscriptionDesc=Mit diesem Formular können Sie Ihr Abonnement als neues Mitglied der Stiftung registrieren. Wenn Sie Ihr Abonnement verlängern möchten (falls Sie bereits Mitglied sind), wenden Sie sich stattdessen per E-Mail an den Stiftungsrat. %s. NewMemberType=Neue Mitgliederart WelcomeEMail=Begrüssungs-E-Mail diff --git a/htdocs/langs/de_CH/orders.lang b/htdocs/langs/de_CH/orders.lang index 881a8dc7a7f..c858a5d7731 100644 --- a/htdocs/langs/de_CH/orders.lang +++ b/htdocs/langs/de_CH/orders.lang @@ -59,9 +59,7 @@ SetShippingMode=Versandart wählen WithReceptionFinished=Mit abgeschlossener Lieferung StatusSupplierOrderCanceledShort=widerrufen StatusSupplierOrderValidatedShort=Bestätigt -StatusSupplierOrderApprovedShort=Genehmigt StatusSupplierOrderReceivedAllShort=Erhaltene Produkte StatusSupplierOrderCanceled=widerrufen StatusSupplierOrderDraft=Entwürfe (benötigen Bestätigung) StatusSupplierOrderValidated=Bestätigt -StatusSupplierOrderApproved=Genehmigt diff --git a/htdocs/langs/de_CH/projects.lang b/htdocs/langs/de_CH/projects.lang index 186a12000a5..96bb51653c7 100644 --- a/htdocs/langs/de_CH/projects.lang +++ b/htdocs/langs/de_CH/projects.lang @@ -1,20 +1,14 @@ # Dolibarr language file - Source file is en_US - projects ProjectRef=Chance ProjectsArea=Projektbereiche -AllProjects=Alle Projekte TasksOnProjectsPublicDesc=Diese Ansicht zeigt alle Projektaufgaben, die Sie Lesenberechtigt sind. ProjectsPublicTaskDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welchen Sie über Leserechte verfügen. TasksOnProjectsDesc=Es werden alle Projekteaufgaben aller Projekte angezeigt (Ihre Berechtigungen berechtigen Sie alles zu sehen). OnlyOpenedProject=Nur offene Projekte sind sichtbar. (Projekte im Entwurf- oder Geschlossenstatus sind nicht sichtbar) -NewProject=Neues Projekt -OpenedProjects=Offene Projekte -OpenedTasks=Offene Aufgaben ShowProject=Zeige Projekt SetProject=Projekt setzen TimeSpentByYou=Dein Zeitaufwand -MyTimeSpent=Mein Zeitaufwand TaskDescription=Aufgaben-Beschreibung -NewTask=Neue Aufgabe MyProjectsArea=Mein Projektbereich GoToListOfTimeConsumed=Zur Stundenaufwandsliste wechseln ChildOfProjectTask=Kindelement von Projekt/Aufgabe diff --git a/htdocs/langs/de_CH/propal.lang b/htdocs/langs/de_CH/propal.lang index 3c0a519948a..7db0ec23cb2 100644 --- a/htdocs/langs/de_CH/propal.lang +++ b/htdocs/langs/de_CH/propal.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - propal -ProposalsOpened=Offene Angebote ProposalCard=Angebotskarte -NewPropal=Neues Angebot Prospect=Lead LastPropals=%s neueste Angebote LastModifiedProposals=%s neueste geänderte Offerten @@ -14,10 +12,11 @@ PropalStatusNotSignedShort=Nicht unterzeichnet PropalsToClose=Zu schliessende Angebote ListOfProposals=Liste der Angebote ActionsOnPropal=Ereignisse zum Angebot +AddToDraftProposals=Zu Angebots-Entwurf hinzufügen DefaultProposalDurationValidity=Standardmässige Gültigkeitsdatuer (Tage) AvailabilityPeriod=Verfügbarkeitszeitraum SetAvailability=Verfügbarkeitszeitraum definieren OtherProposals=Andere Angebote -DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schliessen wollen (zur Verrechung) DefaultModelPropalClosed=Standard-Template, wenn sie ein Angebot schliessen wollen (ohne Rechnung) +DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schliessen wollen (zur Verrechung) ProposalCustomerSignature=Schriftliche Annahme, Firmenstempel, Datum und Unterschrift diff --git a/htdocs/langs/de_CH/salaries.lang b/htdocs/langs/de_CH/salaries.lang index 7d3f9fa423a..d661528186f 100644 --- a/htdocs/langs/de_CH/salaries.lang +++ b/htdocs/langs/de_CH/salaries.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Buchhaltungskonto für Partner Benutzer -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Das Buchhaltungskonto auf der Benutzerkarte wird nur im Nebenbuch journalisiert. Dieser Eintrag wird im Hauptbuch Geführt. Weiter ist das auch das Standardkonto, falls auf der Benutzerkarte kein Konto eingetragen ist. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard - Buchhaltungskonto für Lohnzahlungen Salary=Lohn Salaries=Löhne diff --git a/htdocs/langs/de_CH/stocks.lang b/htdocs/langs/de_CH/stocks.lang index f3010e3fa44..007e58b9928 100644 --- a/htdocs/langs/de_CH/stocks.lang +++ b/htdocs/langs/de_CH/stocks.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - stocks WarehouseCard=Warenlagerkarte +StocksArea=Warenlager - Übersicht NumberOfProducts=Anzahl der Produkte CorrectStock=Lagerbestand anpassen TransferStock=Lagerumbuchung @@ -14,7 +15,10 @@ StockLimitShort=Alarmschwelle StockLimit=Sicherungsbestand für autom. Benachrichtigung RealStock=Realer Lagerbestand VirtualStock=Theoretisches Warenlager +EstimatedStockValueShort=Eingangsmenge +EstimatedStockValue=Einkaufspreis DesiredStockDesc=Dieser Bestand wird für die Nachbestellfunktion verwendet. +StockToBuy=zu bestellen UseVirtualStock=theoretisches Warenlager verwenden UsePhysicalStock=Physisches Warenlager verwenden CurentlyUsingVirtualStock=Theoretisches Warenlager @@ -26,6 +30,8 @@ InventoryCodeShort=Inv. / Mov. Kode NoPendingReceptionOnSupplierOrder=Keine ausstehenden Lieferungen auf dieser Lieferantenbestellung ThisSerialAlreadyExistWithDifferentDate=Diese Charge- / Seriennummer (%s) ist bereits vorhanden, jedoch mit unterschiedlichen Haltbarkeits- oder Verfallsdatum. \n(Gefunden: %s Erfasst: %s) UseDispatchStatus=Auslieferungs - Status (frei gegeben / zurückgewiesen) für Lieferantenbestellungen führen. +inventoryTitle=Inventar +inventoryValidate=Bestätigt inventoryDraft=Läuft inventoryOnDate=Inventar ReOpen=entwerfen diff --git a/htdocs/langs/de_CH/trips.lang b/htdocs/langs/de_CH/trips.lang index 33e5c61c47d..1c87101d592 100644 --- a/htdocs/langs/de_CH/trips.lang +++ b/htdocs/langs/de_CH/trips.lang @@ -1,19 +1,19 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Spesenreport anzeigen -TripsAndExpenses=Reise- und Fahrtspesen -TripCard=Reisekosten Karte -AddTrip=Reisekostenabrechnung erstellen -ListOfTrips=Liste Reise- und Spesenabrechnungen -TypeFees=Spesen- und Kostenarten -ShowTrip=Spesenreport anzeigen -NewTrip=neue Reisekostenabrechnung -ListTripsAndExpenses=Liste Reise- und Spesenabrechnungen -ExpenseReportWaitingForApproval=Eine neue Reisekostenabrechnung ist zur Genehmigung vorgelegt worden -TripSociete=Information Firma -TF_TRIP=Spedition -ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnliche Datumsbereich erstellt. -VALIDATOR=verantwortlicher Benutzer für Genehmigung AUTHOR=gespeichert von +AddTrip=Reisekostenabrechnung erstellen BrouillonnerTrip=Spesenabrechnung rückgängig, auf den Status "Entwurf" -ExpenseReportsToPay=Spesenabrechnungen zu entrichten +ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnliche Datumsbereich erstellt. ExpenseReportDateStart=Beginndatum +ExpenseReportWaitingForApproval=Eine neue Reisekostenabrechnung ist zur Genehmigung vorgelegt worden +ExpenseReportsToPay=Spesenabrechnungen zu entrichten +ListOfTrips=Liste Reise- und Spesenabrechnungen +ListTripsAndExpenses=Liste Reise- und Spesenabrechnungen +NewTrip=neue Reisekostenabrechnung +ShowExpenseReport=Spesenreport anzeigen +ShowTrip=Spesenreport anzeigen +TripCard=Reisekosten Karte +TripSociete=Information Firma +TripsAndExpenses=Reise- und Fahrtspesen +TypeFees=Spesen- und Kostenarten +VALIDATOR=verantwortlicher Benutzer für Genehmigung +TF_TRIP=Spedition diff --git a/htdocs/langs/de_CH/users.lang b/htdocs/langs/de_CH/users.lang index 9f20d097abd..c7c14ca597b 100644 --- a/htdocs/langs/de_CH/users.lang +++ b/htdocs/langs/de_CH/users.lang @@ -20,8 +20,6 @@ MenuUsersAndGroups=Benutzer & Gruppen LastGroupsCreated=Die %s neuesten Benutzergruppen LastUsersCreated=%s neueste Benutzer NonAffectedUsers=Nicht betroffene Benutzer -LinkToCompanyContact=Mit Geschäftspartner/Kontakt verknüpfen -CreateDolibarrThirdParty=Neuen Geschäftspartner erstellen ExportDataset_user_1=Benutzer und Eigenschaften Reactivate=Reaktivieren CreateInternalUserDesc=Hier kannst du interne Benutzer erzeugen.\nExterne Benutzer erzeugst du in den Kontakten deiner Partner. diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index 1e4c9679867..b2565f04044 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -31,11 +31,11 @@ ChartOfIndividualAccountsOfSubsidiaryLedger=Plan der Einzelkonten des Nebenbuchs CurrentDedicatedAccountingAccount=Aktuelles dediziertes Konto AssignDedicatedAccountingAccount=Neues Konto zuweisen InvoiceLabel=Rechnungsanschrift -OverviewOfAmountOfLinesNotBound=Übersicht über die Anzahl der nicht an ein Buchhaltungskonto zugeordneten Zeilen -OverviewOfAmountOfLinesBound=Übersicht über die Anzahl der bereits an ein Buchhaltungskonto zugeordneten Zeilen +OverviewOfAmountOfLinesNotBound=Übersicht über die Anzahl der noch nicht kontierten Positionen +OverviewOfAmountOfLinesBound=Übersicht über die Anzahl der bereits kontierten Positionen OtherInfo=Zusatzinformationen -DeleteCptCategory=Buchhaltungskonto aus Gruppe entfernen -ConfirmDeleteCptCategory=Soll dieses Buchhaltungskonto wirklich aus der Gruppe entfernt werden? +DeleteCptCategory=Buchungskonto aus Gruppe entfernen +ConfirmDeleteCptCategory=Soll dieses Buchungskonto wirklich aus der Gruppe entfernt werden? JournalizationInLedgerStatus=Status der Journalisierung AlreadyInGeneralLedger=Bereits in Buchhaltungsjournale und Hauptbuch übertragen NotYetInGeneralLedger=Noch nicht in Buchhaltungsjournale und Hauptbuch übertragen @@ -48,8 +48,9 @@ CountriesNotInEEC=Nicht-EU Länder CountriesInEECExceptMe=EU-Länder außer %s CountriesExceptMe=Alle Länder außer %s AccountantFiles=Belegdokumente exportieren -ExportAccountingSourceDocHelp=Mit diesem Tool können Sie die Quellereignisse (CSV-Liste und PDFs) exportieren, die zur Erstellung Ihrer Buchhaltung verwendet werden. +ExportAccountingSourceDocHelp=Mit diesem Tool können Sie die Quellereignisse suchen und exportieren, die zum Erstellen Ihrer Buchhaltung verwendet werden.
    Die exportierte ZIP-Datei enthält die Listen der angeforderten Buchhaltungsdaten im CSV-Format sowie die zugehörigen Dokumente im Originalformat (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Um Ihre Journale zu exportieren, verwenden Sie den Menüeintrag %s - %s. +ExportAccountingProjectHelp=Geben Sie ein Projekt an, wenn Sie einen Buchhaltungsbericht nur für ein bestimmtes Projekt benötigen. Spesenabrechnungen und Darlehenszahlungen sind in den Projektberichten nicht enthalten. VueByAccountAccounting=Ansicht nach Buchungskonto VueBySubAccountAccounting=Ansicht nach Buchhaltungsunterkonto @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Standardkonto für Lieferanten die nicht im Se MainAccountForUsersNotDefined=Standardkonto für Benutzer ist im Setup nicht definiert MainAccountForVatPaymentNotDefined=Standardkonto für MwSt.-Zahlungen ist im Setup nicht definiert MainAccountForSubscriptionPaymentNotDefined=Standardkonto für wiederkehrende Zahlungen ist im Setup nicht definiert +UserAccountNotDefined=Buchungskonto für den Benutzer ist nicht im Setup definiert AccountancyArea=Bereich Buchhaltung AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten: @@ -67,21 +69,21 @@ AccountancyAreaDescActionFreq=Diese Schritte sind regelmäßig durchzuführen AccountancyAreaDescJournalSetup=SCHRITT %s: Liste der Buchhaltungsjournale überprüfen und nach Bedarf anpassen im Menü %s AccountancyAreaDescChartModel=SCHRITT %s: Prüfen, ob der benötigte Kontenrahmen vorhanden und aktiviert ist – konfigurierbar im Menü %s -AccountancyAreaDescChart=SCHRITT %s: Wähle und/oder ergänze einen Kontenplan im Menü %s. +AccountancyAreaDescChart=SCHRITT %s: Wählen und ergänzen Sie einen Kontenplan im Menü %s. AccountancyAreaDescVat=SCHRITT %s: Festlegen des Buchhaltungskontos für jeden Steuersatz über den Menüpunkt %s. AccountancyAreaDescDefault=SCHRITT %s: Standardkonten über das Menü %s konfigurieren. AccountancyAreaDescExpenseReport=SCHRITT %s: Festlegung der Standardbuchhaltungskonten für die verschiedenen Arten der Spesenabrechnung. Verwenden Sie dazu den Menüeintrag %s. -AccountancyAreaDescSal=SCHRITT %s: Buchhaltungskonto für Lohnzahlungen definieren. Kann im Menü %s geändert werden. +AccountancyAreaDescSal=SCHRITT %s: Buchungskonto für Gehaltszahlungen definieren. Kann im Menü %s geändert werden. AccountancyAreaDescContrib=SCHRITT %s: Legen Sie Standardbuchhaltungskonten für Steuern (Sonderausgaben) fest. Verwenden Sie dazu den Menüeintrag %s. -AccountancyAreaDescDonation=SCHRITT %s: Definition der Buchhaltungskonten für Spenden. Kann im Menü %s geändert werden. +AccountancyAreaDescDonation=SCHRITT %s: Definition der Buchungskonten für Spenden. Kann im Menü %s geändert werden. AccountancyAreaDescSubscription=SCHRITT %s: Definieren Sie die Standardabrechnungskonten für Mitgliederabonnements. Verwenden Sie dazu den Menüeintrag %s. -AccountancyAreaDescMisc=SCHRITT %s: Buchhaltungskonto für nicht zugeordnete Buchungen definieren. Kann im Menü %s geändert werden. -AccountancyAreaDescLoan=SCHRITT %s: Definitiond der Buchhaltungskonten für Darlehenszahlungen. Kann im Menü %s geändert werden. -AccountancyAreaDescBank=SCHRITT %s: Festlegen der Buchhaltungskonten für Banken und Zahlungsdienstleister über den Menüpunkt %s. -AccountancyAreaDescProd=SCHRITT %s: Festlegen der Buchhaltungskonten für Ihre Produkte und Leistungen über den Menüpunkt %s. +AccountancyAreaDescMisc=SCHRITT %s: Buchungskonto für nicht zugeordnete Buchungen definieren. Kann im Menü %s geändert werden. +AccountancyAreaDescLoan=SCHRITT %s: Definition der Buchungskonten für Darlehenszahlungen. Kann im Menü %s geändert werden. +AccountancyAreaDescBank=SCHRITT %s: Festlegen der Buchungskonten für Banken und Zahlungsdienstleister über den Menüpunkt %s. +AccountancyAreaDescProd=SCHRITT %s: Festlegen der Buchungskonten für Ihre Produkte und Leistungen über den Menüpunkt %s. -AccountancyAreaDescBind=SCHRITT %s: Kontrolle, dass die Zuweisung zwischen bestehenden Buchungszeilen in %s und entsprechenden Buchungskonten erfolgt ist, damit die Übernahme der Buchungen ins Hauptbuch mit einem Klick erfolgen kann. Dies wird im Menüpunkt %s vorgenommen. +AccountancyAreaDescBind=SCHRITT %s: Prüfen, ob die Kontierung aller Positionen aus %s erfolgt ist, damit die Übernahme der Buchungen ins Hauptbuch mit einem Klick erfolgen kann. Dies erfolgt im Menüpunkt %s. AccountancyAreaDescWriteRecords=SCHRITT %s: Übernehmen Sie die Buchungen in das Hauptbuch. Dazu gehen Sie ins Menü %s, und klicken Sie auf die Schaltfläche %s AccountancyAreaDescAnalyze=SCHRITT %s: Transaktionen hinzufügen oder bearbeiten sowie Berichte und Exporte generieren. @@ -89,34 +91,34 @@ AccountancyAreaDescClosePeriod=SCHRITT %s: Schließen Sie die Periode, damit wir TheJournalCodeIsNotDefinedOnSomeBankAccount=Eine erforderliche Einrichtung wurde nicht abgeschlossen. (Kontierungsinformationen fehlen bei einigen Bankkonten) Selectchartofaccounts=Aktiven Kontenplan wählen -ChangeAndLoad=ändern & laden -Addanaccount=Fügen Sie ein Buchhaltungskonto hinzu +ChangeAndLoad=Ändern & laden +Addanaccount=Fügen Sie ein Buchungskonto hinzu AccountAccounting=Buchungskonto AccountAccountingShort=Konto SubledgerAccount=Nebenbuchkonto SubledgerAccountLabel=Nebenbuchkonto-Bezeichnung -ShowAccountingAccount=Buchhaltungskonten anzeigen +ShowAccountingAccount=Buchungskonto anzeigen ShowAccountingJournal=Buchhaltungsjournal anzeigen -ShowAccountingAccountInLedger=Buchhaltungskonto im Hauptbuch anzeigen -ShowAccountingAccountInJournals=Buchhaltungskonto in Journalen anzeigen +ShowAccountingAccountInLedger=Buchungskonto im Hauptbuch anzeigen +ShowAccountingAccountInJournals=Buchungskonto in Journalen anzeigen AccountAccountingSuggest=Vorgeschlagenes Buchungskonto MenuDefaultAccounts=Standardkonten MenuBankAccounts=Bankkonten MenuVatAccounts=Umsatzsteuerkonten MenuTaxAccounts=Steuerkonten MenuExpenseReportAccounts=Spesenkonten -MenuLoanAccounts=Darlehens-Konten +MenuLoanAccounts=Darlehenskonten MenuProductsAccounts=Produkterlöskonten MenuClosureAccounts=Abschlusskonten -MenuAccountancyClosure=Jahresabschluss +MenuAccountancyClosure=Festschreibung MenuAccountancyValidationMovements=Buchungen freigeben ProductsBinding=Produktkonten TransferInAccounting=Übernahme in die Buchhaltung RegistrationInAccounting=Erfassung in der Buchhaltung -Binding=Zu Konten zuordnen -CustomersVentilation=Kundenrechnungen zuordnen -SuppliersVentilation=Lieferantenrechnungen zuordnen -ExpenseReportsVentilation=Spesenabrechnungen zuordnen +Binding=Kontieren +CustomersVentilation=Kundenrechnungen kontieren +SuppliersVentilation=Lieferantenrechnungen kontieren +ExpenseReportsVentilation=Spesenabrechnungen kontieren CreateMvts=neue Transaktion erstellen UpdateMvts=Änderung einer Transaktion ValidTransaction=Transaktion bestätigen @@ -127,98 +129,102 @@ AccountBalance=Summen und Salden ObjectsRef=Quellreferenz CAHTF=Gesamtbetrag Lieferant vor Steuern TotalExpenseReport=Gesamtausgaben Spesenabrechnung -InvoiceLines=Rechnungszeilen verbinden -InvoiceLinesDone=verbundene Rechnungszeilen +InvoiceLines=Rechnungspositionen kontieren +InvoiceLinesDone=Kontierte Rechnungspositionen ExpenseReportLines=Noch nicht zugeordnete Zeilen aus Spesenabrechnungen -ExpenseReportLinesDone=Zugeordnete Zeilen aus Spesenabrechnungen -IntoAccount=Buchungskonto zuordnen +ExpenseReportLinesDone=Kontierte Positionen aus Spesenabrechnungen +IntoAccount=Position kontieren TotalForAccount=Buchungskonto Summe -Ventilate=zuordnen +Ventilate=Kontieren LineId=Zeilen-ID Processing=Bearbeitung EndProcessing=Prozess beendet -SelectedLines=ausgewählte Zeilen +SelectedLines=Ausgewählte Zeilen Lineofinvoice=Rechnungszeile LineOfExpenseReport=Zeilen der Spesenabrechnung -NoAccountSelected=Kein Buchhaltungskonto ausgewählt -VentilatedinAccount=erfolgreich dem Buchhaltungskonto zugeordnet -NotVentilatedinAccount=Nicht zugeordnet, zu einem Buchhaltungskonto -XLineSuccessfullyBinded=%s Produkte/Leistungen erfolgreich an Buchhaltungskonto zugewiesen -XLineFailedToBeBinded=%s Produkte/Leistungen waren an kein Buchhaltungskonto zugeordnet +NoAccountSelected=Kein Buchungskonto ausgewählt +VentilatedinAccount=Kontierung erfolgreich +NotVentilatedinAccount=Nicht kontiert +XLineSuccessfullyBinded=%s Produkte/Leistungen erfolgreich kontiert +XLineFailedToBeBinded=%s Produkte/Leistungen waren nicht kontiert ACCOUNTING_LIMIT_LIST_VENTILATION=Maximale Zeilenanzahl auf Liste und Kontierungsseite (empfohlen: 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Standardsortierung der Elemente auf der Seite "Konten zuordnen“: neueste zuerst +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Standardsortierung der Elemente auf der Seite "Zu kontieren“: neueste zuerst ACCOUNTING_LIST_SORT_VENTILATION_DONE=Sortierung auf der Seite "Zuordnung abgeschlossen" beginnend mit den neuesten Elementen ACCOUNTING_LENGTH_DESCRIPTION=Länge für die Anzeige der Beschreibung von Produkten und Leistungen in Listen (optimal = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Länge für die Anzeige der Kontenbezeichnungen für Produkte und Leistungen in den Listen (optimal = 50) ACCOUNTING_LENGTH_GACCOUNT=Länge der Kontonummern der Buchhaltung (Wenn dieser Wert auf 6 gesetzt ist, wird Konto '706' als '706000' am Bildschirm angezeigt) ACCOUNTING_LENGTH_AACCOUNT=Länge der Geschäftspartner Nebenkonten in der Buchhaltung \n(Wenn Sie hier den Wert 6 einstellen, wird das Konto "401" auf dem Bildschirm als "401000" angezeigt.) -ACCOUNTING_MANAGE_ZERO=Verwalten der Null am Ende eines Buchhaltungskontos. \nIn einigen Ländern notwendig (z.B. Schweiz). \nStandardmäßig deaktiviert. \nWenn ausgeschaltet, können die folgenden zwei Parameter konfigurieren werden, um virtuelle Nullen anzuhängen +ACCOUNTING_MANAGE_ZERO=Beibehalten der Nullen am Ende eines Buchungskontos ("1200"). \nIn manchen Ländern notwendig (z.B. Deutschland, Schweiz). \nStandardmäßig deaktiviert. \nWenn ausgeschaltet, können die folgenden zwei Parameter konfigurieren werden, um virtuelle Nullen anzuhängen. BANK_DISABLE_DIRECT_INPUT=Deaktivieren der direkte Aufzeichnung von Transaktion auf dem Bankkonto ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Entwurfexport für Journal aktivieren ACCOUNTANCY_COMBO_FOR_AUX=Combo-Liste für Nebenkonto aktivieren (kann langsam sein, wenn Sie viele Geschäftspartner haben; verhindert die Suche nach Teilwerten) ACCOUNTING_DATE_START_BINDING=Definieren Sie ein Datum, an dem die Bindung und Übertragung in der Buchhaltung beginnen soll. Transaktionen vor diesem Datum werden nicht in die Buchhaltung übertragen. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Bei der Übertragung der Buchhaltung standardmäßig den Zeitraum anzeigen auswählen anzeigen +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Welcher Zeitraum ist beim Buchhaltungstransfer standardmäßig ausgewählt? -ACCOUNTING_SELL_JOURNAL=Verkaufsjournal -ACCOUNTING_PURCHASE_JOURNAL=Einkaufsjournal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Journal für Sonstiges -ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesenabrechnungsjournal -ACCOUNTING_SOCIAL_JOURNAL=Sozialabgaben-Journal -ACCOUNTING_HAS_NEW_JOURNAL=Journal für Eröffnungsbuchungen +ACCOUNTING_SELL_JOURNAL=Verkaufsjournal (Verkäufe und Retouren) +ACCOUNTING_PURCHASE_JOURNAL=Einkaufsjournal (Käufe und Retouren) +ACCOUNTING_BANK_JOURNAL=Kassenbuch (Einnahmen und Ausgaben) +ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesen-Abrechnungs-Journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=Sammeljournal +ACCOUNTING_HAS_NEW_JOURNAL=Eröffnungsjournal +ACCOUNTING_INVENTORY_JOURNAL=Bestandsjournal +ACCOUNTING_SOCIAL_JOURNAL=Sozialabgabenjournal ACCOUNTING_RESULT_PROFIT=Ergebnisabrechnungskonto (Gewinn) ACCOUNTING_RESULT_LOSS=Ergebnisabrechnungskonto (Verlust) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Abschluss-Journal +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal für Abschlussbuchungen -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Buchhaltung Konto der Überweisung +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Konto (aus dem Kontenplan), das als Verrechnungskonto/Transferkonto für Banküberweisungen verwendet werden soll TransitionalAccount=Überweisungskonto -ACCOUNTING_ACCOUNT_SUSPENSE=Buchhaltungskonto in Wartestellung -DONATION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Spenden -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Buchungskonto für Abonnements +ACCOUNTING_ACCOUNT_SUSPENSE=Konto (aus dem Kontenplan), das als Verrechnungsonto/Zwischenkonto für nicht zugewiesene Gelder verwendet werden soll, die entweder erhalten oder gezahlt wurden, d. h. Gelder im Status „Warten“ +DONATION_ACCOUNTINGACCOUNT=Konto (aus dem Kontenplan), das zur Erfassung von Spenden verwendet werden soll (Spendenmodul) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto (aus dem Kontenplan), das zur Erfassung von Mitgliedsbeiträgen verwendet werden soll (Mitgliedschaftsmodul - wenn die Mitgliedschaft ohne Rechnung erfasst wird) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standard-Buchhaltungskonto zur Registrierung der Kundeneinzahlung -UseAuxiliaryAccountOnCustomerDeposit=Für Kundenzahlungen Unterkonten verwenden +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto (aus dem Kontenplan), das als Standardkonto zur Erfassung von Kundenanzahlungen verwendet werden soll +UseAuxiliaryAccountOnCustomerDeposit=Debitorenkonto als Einzelkonto im Nebenbuch für Anzahlungspositionen hinterlegen (bei Deaktivierung bleibt Einzelkonto für Anzahlungspositionen leer) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (aus dem Kontenplan), das als Standard verwendet werden soll +UseAuxiliaryAccountOnSupplierDeposit=Lieferantenkonto als Einzelkonto im Nebenbuch für Anzahlungsbuchungen speichern (falls deaktiviert, bleibt Einzelkonto für Anzahlungsbuchungen leer) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Standard-Buchhaltungskonto für gekaufte Produkte \n(wenn nicht anders im Produktblatt definiert) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Standardmäßig Buchhaltungskonto für die gekauften Produkte in der EU (wird verwendet, wenn nicht im Produktblatt definiert) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Standardmäßig Buchhaltungskonto für die gekauften und aus der EU importierten Produkte (wird verwendet, wenn nicht im Produktblatt definiert) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard-Buchhaltungskonto für die verkauften Produkte (wenn nicht anders im Produktblatt definiert) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Standard-Buchhaltungskonto für in die EU verkaufte Produkte \n(wird verwendet, wenn nicht im Produktblatt definiert) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Standard-Buchhaltungskonto für ausserhalb der EU verkaufte Produkte [EXPORT] \n(wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die im selben Land gekauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für in der EWG aus einem anderen EWG-Land gekauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die aus einem anderen Land gekauften und importierten Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die von der EWG in ein anderes EWG-Land verkauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften und in ein anderes Land exportierten Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard-Buchhaltungskonto für die gekauften Leistungen (wenn nicht anders im Produktblatt definiert) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Standardmäßig Buchhaltungskonto für die gekauften Dienstleistungen in der EU (wird verwendet, wenn nicht im Leistungsblatt definiert) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Standardmäßig Buchhaltungskonto für die gekauften und aus der EU importierten Dienstleistungen (wird verwendet, wenn nicht im Leistungsblatt definiert) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard-Buchhaltungskonto für die verkauften Leistungen (wenn nicht anders im Produktblatt definiert) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Standard-Buchhaltungskonto für in die EU verkaufte Dienstleistungen \n(wird verwendet, wenn nicht im Produktblatt definiert) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Standard-Buchhaltungskonto für ausserhalb der EU verkaufte Dienstleistungen [EXPORT] \n(wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die im selben Land gekauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Serviceblatt definiert) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für in der EWG aus einem anderen EWG-Land gekauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die aus dem übrigen Ausland gekauften und importierten Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die von der EWG in ein anderes EWG-Land verkauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften und in ein anderes Land exportierten Leistungen verwendet werden soll (wird verwendet, wenn nicht im Dienstleistungsblatt definiert) Doctype=Dokumententyp Docdate=Datum Docref=Referenz -LabelAccount=Konto-Beschriftung +LabelAccount=Kontobezeichnung LabelOperation=Buchungstext Sens=Richtung -AccountingDirectionHelp=Verwenden Sie für ein Buchhaltungskonto eines Kunden "Haben", um eine Zahlung zu erfassen, die Sie erhalten haben.
    Verwenden Sie für ein Buchhaltungskonto eines Lieferanten "Soll", um eine von Ihnen geleistete Zahlung zu erfassen -LetteringCode=Beschriftungscode -Lettering=Beschriftung +AccountingDirectionHelp=Verwenden Sie für ein Buchungskonto eines Kunden "Haben", um eine Zahlung zu erfassen, die Sie erhalten haben.
    Verwenden Sie für ein Buchungskonto eines Lieferanten "Soll", um eine von Ihnen geleistete Zahlung zu erfassen +LetteringCode=Code zum Kontenabgleich +Lettering=Kontenabgleich Codejournal=Journal JournalLabel=Journal-Bezeichnung NumPiece=Teilenummer TransactionNumShort=Buchungsnr. -AccountingCategory=Benutzerdefinierte Gruppe +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Gruppieren nach Hauptbuchkonto GroupBySubAccountAccounting=Gruppieren nach Nebenbuchkonto AccountingAccountGroupsDesc=Hier können Kontengruppen definiert werden. Diese werden für personaliserte Buchhaltungsreports verwendet. ByAccounts=Pro Konto -ByPredefinedAccountGroups=Pro vordefinierten Gruppen -ByPersonalizedAccountGroups=Pro persönlichen Gruppierung -ByYear=pro Jahr +ByPredefinedAccountGroups=Vordefinierte Gruppierung +ByPersonalizedAccountGroups=Benutzerdefinierte Gruppierung +ByYear=Pro Jahr NotMatch=undefiniert DeleteMvt=Zeilen aus der Buchhaltung löschen DelMonth=Monat zum Löschen @@ -229,7 +235,7 @@ ConfirmDeleteMvtPartial=Hierdurch wird die Transaktion aus der Buchhaltung gelö FinanceJournal=Finanzjournal ExpenseReportsJournal=Spesenabrechnungsjournal DescFinanceJournal=Finanzjournal inklusive aller Arten von Zahlungen mit Bankkonto -DescJournalOnlyBindedVisible=Dies ist eine Ansicht von Datensätzen, denen ein Buchhaltungskonto zugeordnet ist und die in den Journalen und im Hauptbuch erfasst werden können. +DescJournalOnlyBindedVisible=Dies ist eine Ansicht von Datensätzen, denen ein Buchungskonto zugeordnet ist und die in den Journalen und im Hauptbuch erfasst werden können. VATAccountNotDefined=Steuerkonto nicht definiert ThirdpartyAccountNotDefined=Konto für Geschäftspartner nicht definiert ProductAccountNotDefined=Konto für Produkt nicht definiert @@ -241,87 +247,88 @@ NewAccountingMvt=Erstelle Transaktion NumMvts=Transaktionsnummer ListeMvts=Liste der Buchungen ErrorDebitCredit=Soll und Haben können nicht gleichzeitig eingegeben werden -AddCompteFromBK=Buchhaltungskonten zur Gruppe hinzufügen +AddCompteFromBK=Buchungskonten zur Gruppe hinzufügen ReportThirdParty=Geschäftspartner-Konto anzeigen -DescThirdPartyReport=Kontieren Sie hier die Liste der Kunden und Lieferanten zu Ihrem Buchhaltungs-Konten -ListAccounts=Liste der Abrechnungskonten +DescThirdPartyReport=Liste der Geschäftspartner (Kunden und Lieferanten) und deren Buchungskonten +ListAccounts=Liste der Buchungskonten UnknownAccountForThirdparty=Unbekanntes Geschäftspartner-Konto. Wir werden %s verwenden. UnknownAccountForThirdpartyBlocking=unbekanntes Geschäftspartner-Konto, fortfahren nicht möglich ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Nebenbuchkonto nicht definiert oder Geschäftspartner oder Benutzer unbekannt. Wir verwenden %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Geschäftspartner unbekannt und Nebenbuch nicht in der Zahlung definiert. Wir werden den Nebenbuchkontowert leer lassen. ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Nebenbuchkonto nicht definiert oder Geschäftspartner oder Benutzer unbekannt. Nicht behebbarer Fehler. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unbekanntes Geschäftspartner-Konto und wartendes Konto nicht definiert. Fehler beim Blockieren -PaymentsNotLinkedToProduct=Zahlung ist keinem Produkt oder Dienstleistung zugewisen +PaymentsNotLinkedToProduct=Zahlung ist keinem Produkt / keiner Leistung zugeordnet OpeningBalance=Eröffnungsbilanz ShowOpeningBalance=Eröffnungsbilanz anzeigen HideOpeningBalance=Eröffnungsbilanz ausblenden ShowSubtotalByGroup=Zwischensumme nach Ebene anzeigen Pcgtype=Kontenklasse -PcgtypeDesc=Kontengruppen werden für einige Buchhaltungsberichte als vordefinierte Filter- und Gruppierungskriterien verwendet. Beispielsweise werden "EINKOMMEN" oder "AUSGABEN" als Gruppen für die Buchhaltung von Produktkonten verwendet, um die Ausgaben- / Einnahmenrechnung zu erstellen. +PcgtypeDesc=Kontengruppen werden für einige Buchhaltungsberichte als vordefinierte Filter- und Gruppierungskriterien verwendet. Beispielsweise werden "Aufwand" oder "Ertrag" als Gruppen für die Buchungskonten von Produkten genutzt, um die Ausgaben-/Einnahmenrechnung zu erstellen. Reconcilable=ausgleichsfähig TotalVente=Gesamtumsatz vor Steuern TotalMarge=Gesamtumsatzrendite -DescVentilCustomer=Übersicht der Positionen aus Kundenrechnungen mit und ohne zugeordneten Buchhaltungskonten -DescVentilMore=Wenn in den Produkten und Leistungen die Buchhaltungskonten des Kontenplans hinterlegt sind, können die Rechnungspositionen automatisch jenen Konten zugeordnet werden. Dazu dient die Schaltfläche "%s".\nWo das nicht möglich ist, können die Rechnungspositionen via "%s" von Hand zugewiesen werden. -DescVentilDoneCustomer=Kontieren Sie hier die Liste der Kundenrechnungszeilen zu einem Buchhaltungs-Konto -DescVentilTodoCustomer=Kontiere nicht bereits kontierte Rechnungspositionen mit einem Buchhaltung Erlös-Konto -ChangeAccount=Ändere das Artikel Buchhaltungskonto für die ausgewählten Zeilen mit dem folgenden Buchhaltungskonto: +DescVentilCustomer=Übersicht der kontierten und unkontierten Positionen aus Kundenrechnungen +DescVentilMore=Wenn Sie vordefinierte Produkte oder Leistungen verwenden und das Buchungskonto auf der Produkt-/Leistungskarte festlegen, kann die Anwendung in den meisten Fällen die Kontierung Ihrer Rechnungsposten mit nur in einem Klick auf die Schaltfläche "%s" vornehmen. Wenn das Konto nicht auf der Produkt-/Servicekarte definiert wurde oder Sie noch Positionen haben, die nicht an ein Konto gebunden sind, müssen Sie eine manuelle Kontierung via " %s" vornehmen. +DescVentilDoneCustomer=Liste der Positionen der Kundenrechnungen und die Buchungskonten der Produkte +DescVentilTodoCustomer=Nicht bereits kontierte Rechnungspositionen mit einem Erlöskonto der Buchhaltung kontieren +ChangeAccount=Buchungskonto für Produkte/Leistungen für die ausgewählten Positionen in das folgende Buchungskonto ändern: Vide=- DescVentilSupplier=Übersicht der unkontierten und kontierten Positionen aus Lieferantenrechnungen (nur Datensätze, die noch nicht in die Buchhaltung übertragen wurden, sind sichtbar). -DescVentilDoneSupplier=Konsultieren Sie hier die Liste der Kreditorenrechnungszeilen und deren Buchhaltungskonto +DescVentilDoneSupplier=Sehen Sie hier die Liste der Lieferanten-/Kreditoren-Rechnungspositionen und deren Buchungskonten DescVentilTodoExpenseReport=Unkontierte Positionen der Spesenabrechnung kontieren -DescVentilExpenseReport=Übersicht der Ausgabenpositionen aus Spesenabrechnungen mit und ohne zugeordnetem Buchhaltungskonto +DescVentilExpenseReport=Übersicht der kontierten und unkontierten Ausgabenpositionen aus Spesenabrechnungen DescVentilExpenseReportMore=Wenn Sie im Modul Buchhaltung Konten für die Spesenabrechnung konfiguriert haben, wird die Kontierungen der Spesenabrechnungspositionen durch einen Klick auf die Schaltfläche "%s" automatisch vorgenommen. Wenn im Buchhaltungsmodul keine Konten für die Spesenabrechnung hinterlegt wurden oder wenn Zeilen nicht automatisch einem Konto zugeordnet werden können, muss die Zuordnung manuell über das Menü "%s“ erfolgen. -DescVentilDoneExpenseReport=Liste der Aufwendungen aus Spesenabrechnungen und ihre zugeordneten Buchhaltungskonten +DescVentilDoneExpenseReport=Liste der Aufwendungen aus Spesenabrechnungen und ihre zugeordneten Buchungskonten -Closure=Jahresabschluss -DescClosure=Informieren Sie sich hier über die Anzahl der Buchungen pro Monat, die noch nicht validiert und festgeschrieben sind. +Closure=Festschreibung +DescClosure=Informieren Sie sich hier über die Anzahl der Buchungen pro Monat, die noch nicht freigegeben und festgeschrieben sind. OverviewOfMovementsNotValidated=Übersicht der noch nicht festgeschriebenen Buchungen -AllMovementsWereRecordedAsValidated=Alle Buchungen wurden als validiert und festgeschrieben aufgezeichnet -NotAllMovementsCouldBeRecordedAsValidated=Nicht alle Buchungen konnten als validiert und festgeschrieben erfasst werden -ValidateMovements=Buchungen festschreiben... +AllMovementsWereRecordedAsValidated=Alle Buchungen wurden als freigegeben und festgeschrieben registriert +NotAllMovementsCouldBeRecordedAsValidated=Nicht alle Buchungen konnten als freigegeben und festgeschrieben registriert werden +ValidateMovements=Buchungen freigeben und festschreiben... DescValidateMovements=Es sind danach keinerlei Änderungen oder Löschungen mehr möglich. Alle Buchungssätze müssen festgeschrieben werden, andernfalls ist kein Abschluss möglich -ValidateHistory=Automatisch zuordnen +ValidateHistory=Automatisch kontieren AutomaticBindingDone=Automatische Zuordnungen durchgeführt (%s) - Automatische Zuordnung für einige Datensätze nicht möglich (%s) -ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchhaltungskonto nicht löschen, da es benutzt wird. +ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchungskonto nicht löschen, da es benutzt wird. MvtNotCorrectlyBalanced=Buchungssalden nicht ausgeglichen. Soll = %s & Haben = %s Balancing=Abschluss FicheVentilation=Zuordnungs Karte GeneralLedgerIsWritten=Transaktionen werden ins Hauptbuch geschrieben GeneralLedgerSomeRecordWasNotRecorded=Einige der Buchungen konnten nicht übernommen werden. Es gab keine Fehler, vermutlich wurden diese Buchungen schon früher übernommen. NoNewRecordSaved=Keine weiteren Datensätze zu übertragen -ListOfProductsWithoutAccountingAccount=Liste der Produkte, die keinem Buchhaltungskonto zugeordnet sind +ListOfProductsWithoutAccountingAccount=Liste der Produkte, die keinem Buchungskonto zugeordnet sind ChangeBinding=Ändern der Zuordnung Accounted=im Hauptbuch erfasst NotYetAccounted=Noch nicht in die Buchhaltung übernommen ShowTutorial=Tutorial anzeigen -NotReconciled=nicht ausgeglichen +NotReconciled=Nicht abgeglichen WarningRecordWithoutSubledgerAreExcluded=Achtung, alle Zeilen ohne definiertes Nebenbuchkonto werden gefiltert und von dieser Ansicht ausgeschlossen -AccountRemovedFromCurrentChartOfAccount= Im aktuellen Kontenplan nicht vorhandenes Buchhaltungskonto +AccountRemovedFromCurrentChartOfAccount=Im aktuellen Kontenplan nicht vorhandenes Buchungskonto ## Admin BindingOptions=Verbindungsoptionen ApplyMassCategories=Massenaktualisierung der Kategorien AddAccountFromBookKeepingWithNoCategories=Verfügbares Konto noch nicht in der personalisierten Gruppe -CategoryDeleted=Die Gruppe für das Buchhaltungskonto wurde entfernt +CategoryDeleted=Die Gruppe für das Buchungskonto wurde entfernt AccountingJournals=Buchhaltungsjournale AccountingJournal=Buchhaltungsjournal NewAccountingJournal=Neues Buchhaltungsjournal ShowAccountingJournal=Buchhaltungsjournal anzeigen NatureOfJournal=Art des Journals -AccountingJournalType1=Verschiedene Aktionen -AccountingJournalType2=Verkäufe / Umsatz +AccountingJournalType1=Sonstige Buchungen +AccountingJournalType2=Verkäufe/Umsatz AccountingJournalType3=Einkäufe AccountingJournalType4=Bank AccountingJournalType5=Spesenabrechnungen AccountingJournalType8=Bestand AccountingJournalType9=Eröffnungsbuchungen +GenerationOfAccountingEntries=Erstellung von Buchhaltungseinträgen ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet AccountingAccountForSalesTaxAreDefinedInto=Hinweis: Buchaltungskonten für Steuern sind im Menü %s - %s definiert NumberOfAccountancyEntries=Anzahl der Einträge @@ -329,12 +336,14 @@ NumberOfAccountancyMovements=Anzahl der Buchungen ACCOUNTING_DISABLE_BINDING_ON_SALES=Deaktivieren Sie die Bindung und Übertragung in der Buchhaltung bei Verkäufen (Kundenrechnungen werden in der Buchhaltung nicht berücksichtigt). ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktivieren Sie die Bindung und Übertragung in der Buchhaltung bei Einkäufen (Lieferantenrechnungen werden in der Buchhaltung nicht berücksichtigt). ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktivieren Sie die Bindung und Übertragung in der Buchhaltung für Spesenabrechnungen (Spesenabrechnungen werden bei der Buchhaltung nicht berücksichtigt). +ACCOUNTING_ENABLE_LETTERING=Aktivieren Sie die Abstimmungsfunktion in der Buchhaltung ## Export +NotExportLettering=Beim Generieren der Datei die Abstimmungsinformationen nicht exportieren NotifiedExportDate=Exportierte Zeilen als exportiert kennzeichnen (um eine Zeile zu ändern, müssen Sie die gesamte Transaktion löschen und erneut in die Buchhaltung übertragen) -NotifiedValidationDate=Festschreiben der exportierten Einträge (gleiche Wirkung wie die "Abschluss"-Funktion, Änderungen und Löschungen der Zeilen sind DEFINITIV NICHT möglich) -DateValidationAndLock=Datum Festschreibung -ConfirmExportFile=Bestätigung der Generierung der Buchhaltungsexportdatei ? +NotifiedValidationDate=Festschreiben der exportierten Einträge (gleiche Wirkung wie die Funktion "%s", Änderungen und Löschungen der Zeilen sind danach DEFINITIV NICHT möglich) +DateValidationAndLock=Festschreibungsdatum +ConfirmExportFile=Exportdatei der Buchhaltung erstellen? ExportDraftJournal=Entwurfsjournal exportieren Modelcsv=Datenformat für den Export Selectmodelcsv=Wählen Sie ein Datenformat für den Export @@ -362,7 +371,7 @@ ChartofaccountsId=Kontenplan ID ## Tools - Init accounting account on product / service InitAccountancy=Rechnungswesen initialisieren -InitAccountancyDesc=Auf dieser Seite kann ein Sachkonto für Artikel und Dienstleistungen vorgegeben werden, wenn noch kein Buchhaltungs-Konto für Ein- und Verkäufe definiert ist. +InitAccountancyDesc=Auf dieser Seite kann ein Buchungskonto für Produkte und Leistungen, für die noch kein Buchungskonto für Ein- und Verkäufe definiert ist, vorgegeben werden. DefaultBindingDesc=Diese Seite kann verwendet werden, um ein Standardkonto festzulegen, das für die Verknüpfung von Transaktionsdatensätzen zu Lohnzahlungen, Spenden, Steuern und USt. verwendet werden soll, wenn kein bestimmtes Konto angegeben wurde. DefaultClosureDesc=Diese Seite kann verwendet werden, um Parameter festzulegen, die für Abrechnungsabschlüsse verwendet werden. Options=Optionen @@ -372,33 +381,37 @@ OptionModeProductSellExport=Modus Verkäufe Export (ausserhalb EU/EWG) OptionModeProductBuy=Modus Einkäufe OptionModeProductBuyIntra=Modus in die EU importierte Einkäufe OptionModeProductBuyExport=Modus aus anderen Staaten importierte Einkäufe -OptionModeProductSellDesc=Alle Produkte mit Buchhaltungskonto für Verkäufe Inland anzeigen. -OptionModeProductSellIntraDesc=Alle Produkte mit Buchhaltungskonto für Verkäufe in EWG anzeigen. -OptionModeProductSellExportDesc=Alle Produkte mit Abrechnungskonto für Verkäufe Ausland anzeigen. -OptionModeProductBuyDesc=Alle Produkte mit Buchhaltungskonto für Einkäufe anzeigen. -OptionModeProductBuyIntraDesc=Alle Produkte mit Buchhaltungskonto für Einkäufe in der EWG anzeigen. -OptionModeProductBuyExportDesc=Alle Produkte mit Buchhaltungskonto für andere ausländische Einkäufe anzeigen. -CleanFixHistory=Zugeordnete Buchhaltungskonten, die im Kontenplan nicht definiert sind, von Positionen entfernen +OptionModeProductSellDesc=Alle Produkte mit Buchungskonto für Verkäufe (Inland) anzeigen. +OptionModeProductSellIntraDesc=Alle Produkte mit Buchungskonto für Verkäufe in der EWG anzeigen. +OptionModeProductSellExportDesc=Alle Produkte mit Buchungskonto für Verkäufe Ausland anzeigen. +OptionModeProductBuyDesc=Alle Produkte mit Buchungskonto für Einkäufe (Inland) anzeigen. +OptionModeProductBuyIntraDesc=Alle Produkte mit Buchungskonto für Einkäufe in der EWG anzeigen. +OptionModeProductBuyExportDesc=Alle Produkte mit Buchungskonto für andere ausländische Einkäufe anzeigen. +CleanFixHistory=Zugeordnete Buchungskonten, die im Kontenplan nicht definiert sind, von Positionen entfernen CleanHistory=Alle Zuordnungen für das ausgewählte Jahr zurücksetzen. PredefinedGroups=Vordefinierte Gruppen WithoutValidAccount=Mit keinem gültigen dedizierten Konto -WithValidAccount=Mit gültigen dedizierten Konto -ValueNotIntoChartOfAccount=Dieser Wert für das Buchhaltungs-Konto existiert nicht im Kontenplan +WithValidAccount=Mit gültigem dedizierten Konto +ValueNotIntoChartOfAccount=Dieser Wert für das Buchungskonto existiert nicht im Kontenplan AccountRemovedFromGroup=Konto aus der Gruppe entfernt SaleLocal=Verkauf Inland SaleExport=Verkauf Export (ausserhalb EWG) SaleEEC=Verkauf in EU/EWG SaleEECWithVAT=Verkauf in der EU mit Mehrwertsteuer (nicht null), und daher anzunehmen ist, dass es sich NICHT um einen innergemeinschaftlichen Verkauf handelt und das vorgeschlagene Konto daher das Standardproduktkonto ist. SaleEECWithoutVATNumber=Verkauf in der EU ohne USt., aber ohne dass die erforderliche USt.-ID des Geschäftspartners hinterlegt ist. Es wird stattdessen auf das Produktkonto für Standardverkäufe zurückgegriffen. Bei Bedarf kann die USt.-ID des Geschäftspartners festgelegt oder die Einstellung für das Produktkonto geändert werden. -ForbiddenTransactionAlreadyExported=Unzulässig: Die Transaktion wurde bereits validiert und/oder exportiert. -ForbiddenTransactionAlreadyValidated=Unzulässig: Die Transaktion wurde bereits validiert. +ForbiddenTransactionAlreadyExported=Unzulässig: Die Transaktion wurde bereits freigegeben und/oder exportiert. +ForbiddenTransactionAlreadyValidated=Unzulässig: Die Transaktion wurde bereits freigegeben. ## Dictionary Range=Bereich von Sachkonten Calculated=berechnet Formula=Formel ## Reconcile +LetteringAuto=Automatisch abgleichen +LetteringManual=Manuell abgleichen Unlettering=Abgleich aufheben +UnletteringAuto=Automatischen Abgleich aufheben +UnletteringManual=Manuellen Abgleich aufheben AccountancyNoLetteringModified=Kein Abgleich geändert AccountancyOneLetteringModifiedSuccessfully=Ein Abgleich wurde erfolgreich geändert AccountancyLetteringModifiedSuccessfully=%s Abgleiche erfolgreich modifiziert @@ -407,26 +420,28 @@ AccountancyOneUnletteringModifiedSuccessfully=Ein Abgleich wurde erfolgreich ge AccountancyUnletteringModifiedSuccessfully=%s aufgehobene Abgleiche erfolgreich modifiziert ## Confirm box -ConfirmMassUnlettering=Bestätigung der Massenaktion Abgleich aufheben -ConfirmMassUnletteringQuestion=Möchten Sie den Abgleich für die ausgewählten %s-Datensätze wirklich rückgängig machen? +ConfirmMassUnletteringAuto=Bestätigung für das Aufheben aller automatischen Abgleiche +ConfirmMassUnletteringManual=Bestätigung für das Aufheben aller manuellen Abgleiche +ConfirmMassUnletteringQuestion=Möchten Sie den Abgleich für die ausgewählten %s Datensätze wirklich rückgängig machen? ConfirmMassDeleteBookkeepingWriting=Bestätigung für Massenlöschen ConfirmMassDeleteBookkeepingWritingQuestion=Dadurch wird die Transaktion aus der Buchhaltung gelöscht (alle Zeilen, die sich auf dieselbe Transaktion beziehen, werden gelöscht). Möchten Sie die %s ausgewählten Datensätze wirklich löschen? ## Error -SomeMandatoryStepsOfSetupWereNotDone=Einige zwingende Einstellungen wurden nicht gemacht, bitte vervollständigen sie die Einrichtung +SomeMandatoryStepsOfSetupWereNotDone=Einige obligatorische Einstellungen wurden noch nicht vorgenommen, bitte vervollständigen Sie die Einrichtung. ErrorNoAccountingCategoryForThisCountry=Keine Buchhaltung Kategorie für das Land %s verfügbar (siehe Startseite - Einstellungen - Stammdaten) -ErrorInvoiceContainsLinesNotYetBounded=Sie versuchen einige Rechnungspositionen der Rechnung %s zu journalisieren, aber einige Postionen sind keinem Buchhaltungskonto zugewiesen. Alle Rechnungspositionen dieser Rechnung werden ignoriert. -ErrorInvoiceContainsLinesNotYetBoundedShort=Manche Rechnungspositionen sind keinem Buchhaltungskonto zugewiesen. +ErrorInvoiceContainsLinesNotYetBounded=Sie versuchen einige Rechnungspositionen der Rechnung %s zu journalisieren, aber einige Postionen sind keinem Buchungskonto zugewiesen. Alle Rechnungspositionen dieser Rechnung werden ignoriert. +ErrorInvoiceContainsLinesNotYetBoundedShort=Einige Rechnungspositionen sind unkontiert. ExportNotSupported=Das eingestellte Exportformat wird von deiser Seite nicht unterstützt BookeppingLineAlreayExists=Zeilen sind schon in der Buchhaltung vorhanden NoJournalDefined=Kein Journal definiert -Binded=kontierte Positionen -ToBind=unkontierte Positionen -UseMenuToSetBindindManualy=Zeilen noch nicht zugeordnet, verwende das Menu %s um die Zuordnung manuell durchzuführen +Binded=Kontierte Positionen +ToBind=Unkontierte Positionen +UseMenuToSetBindindManualy=Unkontierte Positionen, das Menu %s verwenden, um die Kontierung manuell durchzuführen SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Dieses Modul ist leider nicht mit der experimentellen Funktion von Situationsrechnungen kompatibel AccountancyErrorMismatchLetterCode=Fehlende Übereinstimmung im Code für Abgleich AccountancyErrorMismatchBalanceAmount=Der Saldo (%s) ist ungleich 0 AccountancyErrorLetteringBookkeeping=Bei den Transaktionen sind Fehler aufgetreten: %s +ErrorAccountNumberAlreadyExists=Das Buchungskonto %s existiert bereits ## Import ImportAccountingEntries=Buchaltungseinträge @@ -450,9 +465,8 @@ FECFormatValidateDate=Stückdatum validiert (ValidDate) FECFormatMulticurrencyAmount=Mehrwährungs-Betrag (Montantdevise) FECFormatMulticurrencyCode=Mehrwährungs-Code (Idevise) -DateExport=Datum Export +DateExport=Exportdatum WarningReportNotReliable=Achtung, dieser Bericht basiert nicht auf dem Hauptbuch und enthält keine Transaktionen, die manuell im Hauptbuch geändert wurden. Wenn Ihre Journalisierung aktuell ist, ist die Buchhaltungsansicht genauer. ExpenseReportJournal=Spesenabrechnung Journal -InventoryJournal=Inventarjournal NAccounts=%s Konten diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index b3dfc65582d..01a14256c24 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Client Sortierreihenfolge WarningModuleNotActive=Modul %s muss aktiviert sein WarningOnlyPermissionOfActivatedModules=Achtung, hier werden nur Berechtigungen im Zusammenhang mit aktivierten Module angezeigt. Weitere Module können Sie unter Start->Einstellungen-Module aktivieren. DolibarrSetup=Dolibarr Installation oder Upgrade -InternalUser=Interner Benutzer -ExternalUser=Externer Benutzer InternalUsers=Interne Benutzer ExternalUsers=Externe Benutzer UserInterface=Benutzeroberfläche @@ -109,7 +107,7 @@ NextValueForReplacements=Nächster Wert (Ersetzungen) MustBeLowerThanPHPLimit=Hinweis: Ihre PHP-Konfiguration begrenzt derzeit die maximale Dateigröße für den Upload auf %s%s, unabhängig vom hier angegebenen Wert NoMaxSizeByPHPLimit=Hinweis: In Ihren PHP-Einstellungen sind keine Größenbeschränkungen hinterlegt MaxSizeForUploadedFiles=Maximale Größe für Dateiuploads (0 verbietet jegliche Uploads) -UseCaptchaCode=Captcha-Code auf der Anmeldeseite verwenden +UseCaptchaCode=Verwenden Sie grafischen Code (CAPTCHA) auf der Anmeldeseite und einigen öffentlichen Seiten AntiVirusCommand=Vollständiger Pfad zum installierten Virenschutz AntiVirusCommandExample=Beispiel für einen ClamAv-Daemon (Clamav-Daemon erforderlich): /usr/bin/clamdscan
    Beispiel für ClamWin (sehr, sehr langsam): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Weitere Kommandozeilen-Parameter für den Virenschutz @@ -160,10 +158,10 @@ SystemToolsArea=Systemwerkzeugsübersicht SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das Menü zur Auswahl der gesuchten Funktion. Purge=Bereinigen PurgeAreaDesc=Auf dieser Seite können Sie alle von Dolibarr erzeugten oder gespeicherten Dateien (temporäre Dateien oder alle Dateien im Verzeichnis %s ) löschen. Die Verwendung dieser Funktion ist in der Regel nicht erforderlich. Es wird als Workaround für Benutzer bereitgestellt, deren Dolibarr von einem Anbieter gehostet wird, der keine Berechtigungen zum löschen von Dateien anbietet, die vom Webserver erzeugt wurden. -PurgeDeleteLogFile=Löschen der Protokolldateien, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) +PurgeDeleteLogFile=Protokolldateien löschen, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) PurgeDeleteTemporaryFiles=Löscht alle Protokoll- und temporären Dateien (kein Risiko, Daten zu verlieren). Parameter können 'tempfilesold', 'logfiles' oder beide 'tempfilesold + logfiles' sein. Hinweis: Das Löschen temporärer Dateien erfolgt nur, wenn das temporäre Verzeichnis vor mehr als 24 Stunden erstellt wurde. -PurgeDeleteTemporaryFilesShort=Log und temporäre Dateien löschen (kein Risiko von Datenverlust) -PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis: %s löschen:
    Dadurch werden alle erzeugten Dokumente löschen, die sich auf verknüpfte (Dritte, Rechnungen usw....), Dateien, die in das ECM Modul hochgeladen wurden, Datenbank, Backup, Dumps und temporäre Dateien beziehen. +PurgeDeleteTemporaryFilesShort=Log und temporäre Dateien löschen (kein Risiko Daten zu verlieren) +PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis: %s löschen:
    Gelöscht werden alle erzeugten Dokumente zu verknüpften Objekten (Angebote, Rechnungen usw....), alle Dateien, die in das ECM Modul hochgeladen wurden, sowie Datenbank Backup-Dateien und temporäre Dateien. PurgeRunNow=Jetzt bereinigen PurgeNothingToDelete=Keine zu löschenden Verzeichnisse oder Dateien PurgeNDirectoriesDeleted=%s Datei(en) oder Verzeichnis(se) gelöscht. @@ -281,7 +279,7 @@ SpaceX=Ausdehnung X SpaceY=Ausdehnung Y FontSize=Schriftgröße Content=Inhalt -ContentForLines=Inhalt, der für jedes Produkt oder jede Dienstleistung angezeigt werden soll (aus der Variablen __LINES__ des Inhalts) +ContentForLines=Inhalt, der für jedes Produkt oder jede Leistung angezeigt werden soll (aus der Variablen __LINES__ des Inhalts) NoticePeriod=Einreichefrist NewByMonth=Neu nach Monat Emails=E-Mail @@ -292,19 +290,20 @@ EMailsSenderProfileDesc=Sie können diesen Bereich leer lassen. Wenn Sie hier E- MAIN_MAIL_SMTP_PORT=SMTP(S)-Port (Standardwert Ihrer php.ini: %s) MAIN_MAIL_SMTP_SERVER=SMTP(S)-Server (Standardwert Ihrer php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-Port (nicht in PHP definiert in Unix-Umgebungen) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-Host (nicht in PHP definiert auf Unix-Umgebungen) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-Host (nicht in PHP definiert in Unix-Umgebungen) MAIN_MAIL_EMAIL_FROM=Absender-Adresse für automatisch erstellte E-Mails (Standardwert in php.ini: %s) +EMailHelpMsgSPFDKIM=Um zu verhindern, dass Dolibarr-E-Mails als Spam eingestuft werden, stellen Sie sicher, dass der Server per SPF- und DKIM-Konfiguration autorisiert ist, E-Mails von dieser Adresse zu senden MAIN_MAIL_ERRORS_TO=Standard-E-Mail-Adresse für Fehlerrückmeldungen (beispielsweise unzustellbare E-Mails) MAIN_MAIL_AUTOCOPY_TO= Blindkopie (BCC) aller gesendeten E-Mails an MAIN_DISABLE_ALL_MAILS=Alle E-Mail-Funktionen deaktivieren (für Test- oder Demonstrationszwecke) MAIN_MAIL_FORCE_SENDTO=Sende alle E-Mails an den folgenden anstatt an die tatsächlichen Empfänger (für Testzwecke) MAIN_MAIL_ENABLED_USER_DEST_SELECT=E-Mail-Adressen von Mitarbeitern (falls definiert) beim Schreiben einer neuen E-Mail in der Liste vordefinierten Empfänger vorschlagen -MAIN_MAIL_SENDMODE=E-Mail Sendemethode +MAIN_MAIL_SENDMODE=Sendemethode für E-Mails MAIN_MAIL_SMTPS_ID=SMTP-Benutzer (falls der Server eine Authentifizierung benötigt) MAIN_MAIL_SMTPS_PW=SMTP-Passwort (falls der Server eine Authentifizierung benötigt) MAIN_MAIL_EMAIL_TLS=TLS (SSL) Verschlüsselung verwenden MAIN_MAIL_EMAIL_STARTTLS=TLS (STARTTLS) Verschlüsselung verwenden -MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Autorisieren der automatischen Signaturen der Zertifikate +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Selbst-signierte Zertifikate erlauben MAIN_MAIL_EMAIL_DKIM_ENABLED=Verwende DKIM um die E-Mail Signatur zu erstellen MAIN_MAIL_EMAIL_DKIM_DOMAIN=E-Mail Domain für die Verwendung mit DKIM MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name des DKIM-Selektors @@ -312,10 +311,10 @@ MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privater Schlüssel für die DKIM-Signatur MAIN_DISABLE_ALL_SMS=alle SMS-Funktionen abschalten (für Test- oder Demozwecke) MAIN_SMS_SENDMODE=Methode zum Versenden von SMS MAIN_MAIL_SMS_FROM=Standard Versandrufnummer der SMS-Funktion -MAIN_MAIL_DEFAULT_FROMTYPE=Standard Absenderadresse für manuelles Senden (Benutzer- oder Unternehmens-Adresse) +MAIN_MAIL_DEFAULT_FROMTYPE=Standard-Absenderadresse für manuelles Senden (Benutzer- oder Unternehmens-Adresse) UserEmail=E-Mail des Benutzers CompanyEmail=Unternehmens-E-Mail -FeatureNotAvailableOnLinux=Diese Funktion ist auf Unix-Umgebungen nicht verfügbar. Testen Sie Ihr sendmail Programm lokal. +FeatureNotAvailableOnLinux=Diese Funktion ist in Unix-Umgebungen nicht verfügbar. Testen Sie Ihr sendmail Programm lokal. FixOnTransifex=Die Übersetzung in der Online-Übersetzungs-Plattform des Projektes korrigieren SubmitTranslation=Wenn die Übersetzung für diese Sprache nicht vollständig ist oder Sie Fehler finden, können Sie dies korrigieren, indem Sie Dateien im Verzeichnis langs/%s bearbeiten und Ihre Änderung an www.transifex.com/dolibarr-association/dolibarr/ senden. SubmitTranslationENUS=Ist die Übersetzung für diese Sprache nicht vollständig oder fehlerhaft, kann das durch editieren der Dateien im Verzeichnis langs/%s korrigiert werden und modifizierte Dateien sollen auch auf dolibarr.org/forum gepostet oder, als Entwickler, mit einer PR auf github.com/Dolibarr/dolibarr bekanntgeben werden @@ -349,7 +348,7 @@ NotExistsDirect=Das alternative Stammverzeichnis ist nicht zu einem existierende InfDirAlt=Seit Version 3 ist es möglich, ein alternatives Stammverzeichnis anzugeben. Dies ermöglicht, Erweiterungen und eigene Templates am gleichen Ort zu speichern.
    Erstellen Sie einfach ein Verzeichis im Hauptverzeichnis von Dolibarr an (z.B. "custom").
    InfDirExample=
    Danach in der Datei conf.php deklarieren
    $dolibarr_main_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Wenn diese Zeilen mit "#" auskommentiert sind, um sie zu aktivieren, einfach das Zeichen "#" entfernen. YouCanSubmitFile=Die ZIP-Datei des Modulpakets kann von hier hochgeladen werden: -CurrentVersion=Aktuelle dolibarr-Version +CurrentVersion=Aktuelle Dolibarr-Version CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen zur Seite %s gehen. LastStableVersion=Letzte stabile Version LastActivationDate=Datum der letzten Aktivierung @@ -378,7 +377,7 @@ UMask=UMask-Parameter für neue Dateien auf Unix/Linux/BSD-Dateisystemen. UMaskExplanation=Über diesen Parameter können Sie die standardmäßigen Dateiberechtigungen für vom System erzeugte/verwaltete Inhalte festlegen.
    Erforderlich ist ein Oktalwert (0666 bedeutet z.B. Lesen und Schreiben für alle).
    Auf Windows-Umgebungen haben diese Einstellungen keinen Effekt. SeeWikiForAllTeam=Werfen Sie einen Blick auf die Wiki-Seite für eine vollständige Liste aller Mitwirkenden und deren Organisationen UseACacheDelay= Verzögerung für den Export der Cache-Antwort in Sekunden (0 oder leer für kein Caching) -DisableLinkToHelpCenter=Link " Brauche Hilfe oder Support " auf der Login-Seite ausblenden +DisableLinkToHelpCenter=Link "Brauche Hilfe oder Support" auf der Login-Seite ausblenden DisableLinkToHelp=Link zur Online-Hilfe "%s" ausblenden AddCRIfTooLong=Bitte beachten Sie, dass kein automatischer Zeilenumbruch erfolgt und zu langer Text nicht angezeigt wird. Falls benötigt, fügen Sie Zeilenumbrüche bitte manuell ein. ConfirmPurge=Sind Sie sicher, dass Sie diese Bereinigung durchführen möchten?
    dadurch werden alle Ihre Datendateien dauerhaft gelöscht, ohne dass Sie sie wiederherstellen können (ECM-Dateien, angehängte Dateien....). @@ -394,7 +393,7 @@ FollowingSubstitutionKeysCanBeUsed=
    Lesen Sie die Wiki Dokumentation um zu wi FullListOnOnlineDocumentation=https://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Reihenfolge von Vor- und Nachname DescWeather=Die folgenden Symbole werden auf der Startseite angezeigt, wenn die entsprechenden Toleranzwerte erreicht werden: -KeyForWebServicesAccess=Schlüssel um Web Services (Parameter "dolibarrkey" in webservices) zu benützen +KeyForWebServicesAccess=Schlüssel um Web Services zu nutzen (Parameter "dolibarrkey" in webservices) TestSubmitForm=Formular Eingabeüberprüfung ThisForceAlsoTheme=Wenn Sie dieses Menü verwenden, verwendet der Manager auch ein eigenes Design, unabhängig von der Wahl des Benutzer. Auch dieser auf Smartphones spezialisierte Menü-Manager funktioniert nicht auf allen Smartphones. Verwenden Sie einen anderen Menü-Manager, wenn Sie Probleme mit Ihrem haben. ThemeDir=Verzeichnis Layout-Vorlagen @@ -413,7 +412,7 @@ PDFRulesForSalesTax=Regeln für Umsatzsteuer/MwSt. PDFLocaltax=Regeln für %s HideLocalTaxOnPDF=Steuersatz %s in der Spalte Verkauf Steuer/MwSt. ausblenden HideDescOnPDF=Produktbeschreibung ausblenden -HideRefOnPDF=Artikelnummer nicht anzeigen +HideRefOnPDF=Produkt-Ref.Nr. ausblenden HideDetailsOnPDF=Details in den Produktpositionen ausblenden PlaceCustomerAddressToIsoLocation=Benutze Standardposition in Frankreich (La Poste) für Position der Kundenadresse Library=Bibliothek @@ -439,8 +438,10 @@ Unique=Einmalig Boolean=Boolean (ein Kontrollkästchen) ExtrafieldPhone = Telefon ExtrafieldPrice = Preis (Feld mit automatisch angehängtem Währungszeichen) +ExtrafieldPriceWithCurrency=Preis mit Währung ExtrafieldMail = E-Mail (Feld mit automatischer E-Mail-Syntaxprüfung) ExtrafieldUrl = URL (Benutzereingabe wird automatisch zum Hyperlink) +ExtrafieldIP = IP ExtrafieldSelect = Dropdownliste (nur eine Option auswählbar) ExtrafieldSelectList = Dropdownliste aus DB-Tabelle (nur eine Option auswählbar) ExtrafieldSeparator=Trennzeichen (kein Feld) @@ -450,7 +451,7 @@ ExtrafieldCheckBox=Kontrollkästchen / Dropdownliste (mehrere Optionen auswählb ExtrafieldCheckBoxFromList=Kontrollkästchen / Dropdownliste aus DB-Tabelle (mehrere Optionen auswählbar) ExtrafieldLink=Verknüpftes Objekt ComputedFormula=Berechnetes Feld -ComputedFormulaDesc=Sie können hier eine Formel mit anderen Eigenschaften des Objekts oder beliebigen PHP-Code eingeben, um einen dynamisch berechneten Wert zu erhalten. Sie können alle PHP-kompatiblen Formeln verwenden, einschließlich "?" Bedingungsoperator und folgendes globales Objekt: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
    WARNUNG : Möglicherweise sind nur einige Eigenschaften von $ object verfügbar. Wenn Sie Eigenschaften benötigen, die nicht geladen sind, holen Sie sich das Objekt einfach wie im zweiten Beispiel in Ihre Formel.
    Wenn Sie ein berechnetes Feld verwenden, können Sie keinen Wert über die Schnittstelle eingeben. Wenn ein Syntaxfehler vorliegt, gibt die Formel möglicherweise nichts zurück.

    Beispiel für die Formel:
    $ object-> id < 10 ? round($object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2 )

    Beispiel zum erneuten Laden des Objekts
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Anderes Beispiel für eine Formel zum erzwungenen Laden des Objekts und seines übergeordneten Objekts:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' +ComputedFormulaDesc=Sie können hier eine Formel mit anderen Eigenschaften des Objekts oder beliebigen PHP-Code eingeben, um einen dynamisch berechneten Wert zu erhalten. Sie können alle PHP-kompatiblen Formeln verwenden, einschließlich dem "?"-Bedingungsoperator und die folgenden globalen Objekte: $db, $conf, $langs, $mysoc, $user, $object.
    WARNUNG: Möglicherweise sind nur einige Eigenschaften von $object verfügbar. Wenn Sie Eigenschaften benötigen, die nicht geladen sind, holen Sie sich das Objekt einfach wie im zweiten Beispiel in Ihre Formel.
    Wenn Sie ein berechnetes Feld verwenden, können Sie keinen Wert über die Benutzerschnittstelle eingeben. Wenn ein Syntaxfehler vorliegt, gibt die Formel möglicherweise nichts zurück.

    Beispiel für eine Formel:
    $object-> id < 10 ? round($object-> id/2, 2): ($object-> id + 2 * $user-> id) * (int) substr ($mysoc-> zip, 1, 2 )

    Beispiel für das Laden eines Objekts:
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Anderes Beispiel für eine Formel zum Laden des Objekts und seines übergeordneten Objekts:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' Computedpersistent=Berechnetes Feld speichern ComputedpersistentDesc=Berechnete Extrafelder werden in der Datenbank gespeichert, dennoch wird ihr Wert nur dann neu berechnet wenn sich das Objekt zu diesem Feld ändert. Falls das berechnete Feld von anderen Objekten oder globalen Daten abhängt, kann sein Wert falsch sein! ExtrafieldParamHelpPassword=Wenn Sie dieses Feld leer lassen, wird dieser Wert unverschlüsselt gespeichert (das Feld darf nur mit einem Stern auf dem Bildschirm ausgeblendet werden).
    Stellen Sie 'auto'; ein, um die Standardverschlüsselungsregel zum Speichern des Kennworts in der Datenbank zu verwenden (dann ist der gelesene Wert nur der Hash, keine Möglichkeit, den ursprünglichen Wert abzurufen). @@ -474,10 +475,10 @@ SetAsDefault=Als Standard setzen ValueOverwrittenByUserSetup=Achtung, dieser Wert kann durch den Benutzer überschrieben werden (jeder kann seine eigene ClickToDial-URL setzen) ExternalModule=Externes Modul InstalledInto=Installiert in Verzeichnis %s -BarcodeInitForThirdparties=alle Barcodes für Geschäftspartner initialisieren +BarcodeInitForThirdparties=Alle Barcodes für Geschäftspartner initialisieren BarcodeInitForProductsOrServices=Alle Barcodes für Produkte oder Services initialisieren oder zurücksetzen CurrentlyNWithoutBarCode=Zur Zeit gibt es %s Datensätze in %s %s ohne Barcode. -InitEmptyBarCode=Startwert für die nächsten %s leeren Datensätze +InitEmptyBarCode=Initialisierungswert für die %s leeren Barcodes EraseAllCurrentBarCode=alle aktuellen Barcode-Werte löschen ConfirmEraseAllCurrentBarCode=Möchten Sie wirklich alle aktuellen Barcode-Werte löschen? AllBarcodeReset=alle Barcode-Werte wurden entfernt @@ -491,7 +492,7 @@ DisplayCompanyInfoAndManagers=Firmenanschrift und Managernamen anzeigen EnableAndSetupModuleCron=Wenn diese wiederkehrende Rechnung automatisch generiert werden soll, muss das Modul *%s* aktiviert und korrekt eingerichtet sein. Andernfalls muss die Rechnungserstellung manuell aus dieser Vorlage mit der Schaltfläche * Erstellen * erfolgen. Beachten Sie, dass Sie die manuelle Generierung auch dann sicher starten können, wenn Sie die automatische Generierung aktiviert haben. Die Erstellung von Duplikaten für denselben Zeitraum ist nicht möglich. ModuleCompanyCodeCustomerAquarium=%s gefolgt von Kundennummer für eine Kundenkontonummer ModuleCompanyCodeSupplierAquarium=%s gefolgt vom Lieferantenpartnercode für eine Lieferantenkontonummer -ModuleCompanyCodePanicum=leeren Kontierungscode zurückgeben +ModuleCompanyCodePanicum=Leeren Kontierungscode zurückgeben ModuleCompanyCodeDigitaria=Gibt einen zusammengesetzten Buchungscode gemäß dem Namen des Geschäftspartners zurück. Der Code besteht aus einem Präfix, das an der ersten Position definiert werden kann, gefolgt von der Anzahl der Zeichen, die im Code des Drittanbieters definiert sind. ModuleCompanyCodeCustomerDigitaria=%s, gefolgt vom abgeschnittenen Kundennamen und der Anzahl der Zeichen: %s für den Kundenbuchhaltungscode. ModuleCompanyCodeSupplierDigitaria=%s, gefolgt vom verkürzten Lieferantennamen und der Anzahl der Zeichen: %s für den Lieferantenbuchhaltungscode. @@ -501,10 +502,11 @@ WarningPHPMail=WARNUNG: Das Setup zum Senden von E-Mails aus der Anwendung verwe WarningPHPMailA=- Die Verwendung des Servers des E-Mail-Dienstanbieters erhöht die Vertrauenswürdigkeit Ihrer E-Mail, sodass die Zustellbarkeit erhöht wird, ohne als SPAM gekennzeichnet zu werden WarningPHPMailB=- Bei einigen E-Mail-Dienstanbietern (wie Yahoo) können Sie keine E-Mails von einem anderen Server als deren eigenen Server senden. Ihr aktuelles Setup verwendet den Server der Anwendung zum Senden von E-Mails und nicht den Server Ihres E-Mail-Anbieters. Einige Empfänger (die mit dem restriktiven DMARC-Protokoll kompatibel sind) fragen Ihren E-Mail-Anbieter, ob sie Ihre E-Mail und einige E-Mail-Anbieter akzeptieren können (wie Yahoo) antwortet möglicherweise mit "Nein", da der Server nicht ihnen gehört. Daher werden möglicherweise einige Ihrer gesendeten E-Mails nicht zur Zustellung angenommen (achten Sie auch auf das Sendekontingent Ihres E-Mail-Anbieters). WarningPHPMailC=- Interessant ist auch die Verwendung des SMTP-Servers Ihres eigenen E-Mail-Dienstanbieters zum Senden von E-Mails, sodass alle von der Anwendung gesendeten E-Mails auch in dem Verzeichnis "Gesendet" Ihrer Mailbox gespeichert werden. -WarningPHPMailD=Es wird empfohlen, die Versandart von E-Mails auf den Wert „SMTP“ zu ändern. Wenn Sie wirklich die Standardmethode "PHP" zum Senden von E-Mails beibehalten möchten, ignorieren Sie diese Warnung oder deaktivierten Sie sie, indem Sie die Konstante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP in Start - Einstellungen - Erweiterte Einstellungen auf 1 setzen. +WarningPHPMailD=Es wird daher empfohlen, die Versandart von E-Mails auf den Wert „SMTP“ zu ändern. +WarningPHPMailDbis=Wenn Sie wirklich die standardmäßige "PHP"-Methode zum Senden von E-Mails beibehalten möchten, ignorieren Sie einfach diese Warnung oder entfernen Sie sie, indem Sie %shier klicken%s. WarningPHPMail2=Wenn Ihr E-Mail-SMTP-Anbieter den E-Mail-Client auf einige IP-Adressen beschränken muss (sehr selten), dann ist dies die IP-Adresse des Mail User Agent (MUA) für ihr Dolibarr-System: %s. WarningPHPMailSPF=Wenn die Domain in Ihrer Absender-E-Mail-Adresse durch einen SPF-Eintrag geschützt ist (beim Domain-Registrar zu erfragen), müssen dem SPF-Eintrag im DNS Ihrer Domain die folgenden IP-Adressen hinzugefügt werden: %s . -ActualMailSPFRecordFound=Tatsächlicher SPF-Eintrag gefunden: %s +ActualMailSPFRecordFound=Tatsächlicher SPF-Eintrag gefunden (für E-Mail %s): %s ClickToShowDescription=Klicke um die Beschreibung zu sehen DependsOn=Diese Modul benötigt folgenden Module RequiredBy=Diese Modul ist für folgende Module notwendig @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Beispiel:
    Das Formular zum Erstellen ein PageUrlForDefaultValuesList=
    Beispiel:
    Auf der Seite, auf der Geschäftspartner aufgelistet sind, ist %s.
    Geben Sie für die URL der externen Module, die im benutzerdefinierten Verzeichnis installiert sind, nicht "custom/" an. Verwenden Sie daher a Pfad wie mymodule/mypagelist.php und nicht custom/mymodule/mypagelist.php.
    Wenn Sie nur dann einen Standardwert wünschen, wenn die URL einen Parameter hat, können Sie %s verwenden AlsoDefaultValuesAreEffectiveForActionCreate=Beachten Sie auch, dass das Überschreiben von Standardwerten für die Formularerstellung nur für Seiten funktioniert, die korrekt gestaltet wurden (also mit dem Parameter action = create or presend ...). EnableDefaultValues=Anpassung der Standardwerte ermöglichen -EnableOverwriteTranslation=Verwendung der eigenen Übersetzung aktivieren +EnableOverwriteTranslation=Anpassung von Übersetzungen zulassen GoIntoTranslationMenuToChangeThis=Für den Schlüssel mit diesem Code wurde eine Übersetzung gefunden. Um diesen Wert zu ändern, müssen Sie ihn in der Home-Setup-Übersetzung bearbeiten. WarningSettingSortOrder=Warnung: Änderung an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vohanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her. Field=Feld @@ -563,7 +565,7 @@ Module43Desc=Ein Tool für Entwickler, das eine Debug-Leiste in Ihrem Browser hi Module49Name=Bearbeiter Module49Desc=Editorverwaltung Module50Name=Produkte -Module50Desc=Produktverwaltung +Module50Desc=Verwaltung von Produkten Module51Name=Massen-Mailings Module51Desc=Verwaltung von Postwurf-/Massensendungen Module52Name=Lagerverwaltung @@ -598,9 +600,9 @@ Module200Name=LDAP Module200Desc=LDAP-Verzeichnissynchronisation Module210Name=PostNuke Module210Desc=PostNuke-Integration -Module240Name=Daten Exporte +Module240Name=Datenexporte Module240Desc=Werkzeug zum Datenexport (mit Assistenten) -Module250Name=Daten Importe +Module250Name=Datenimporte Module250Desc=Werkzeug zum Datenimport (mit Assistenten) Module310Name=Mitglieder Module310Desc=Mitgliederverwaltung für Stiftungen und Vereine @@ -641,13 +643,13 @@ Module2200Name=Dynamische Preise Module2200Desc=Verwenden Sie mathematische Ausdrücke für die automatische Generierung von Preisen. Module2300Name=Geplante Aufgaben Module2300Desc=Verwaltung geplanter Aufgaben (Cron oder chrono Tabelle) -Module2400Name=Ereignisse/Termine +Module2400Name=Agenda (Ereignisse/Termine) Module2400Desc=Modul zur Terminplanung und Ereignissaufzeichnung: Protokollieren Sie automatisch Ereignisse wie beispielsweise Änderungen an Produktdatensätzen zu Verfolgungszwecken oder tragen Sie Termine manuell ein.\nDies ist ein wichtiges Modul für ein gutes Kunden- und/oder Lieferantenbeziehungsmanagement. Module2500Name=DMS/ECM Module2500Desc=Speicherung und Verteilung von Dokumenten. Automatische organisation der generierten oder gespeicherten Dokumente. Teilen Sie sie bei Bedarf. Module2600Name=API/Webservice (SOAP Server) Module2600Desc=Aktivieren Sie Dolibarr SOAP Server, unterstütztes API-Service. -Module2610Name=API/Web Services (REST Server) +Module2610Name=API/Webservices (REST Server) Module2610Desc=Aktiviere der Dolibarr REST Serverdienst Module2660Name=WebServices aufrufen (SOAP Client) Module2660Desc=Aktivieren des Dolibarr-Webdienst-Clients \n(Kann verwendet werden, um Daten / Anforderungen an externe Server zu senden. Derzeit werden nur Bestellungen unterstützt.) @@ -688,7 +690,7 @@ Module50400Name=Buchhaltung (erweitert) Module50400Desc=Buchhaltungsmanagement (doppelte Einträge, Unterstützung von Haupt- und Nebenbüchern). Exportieren Sie das Hauptbuch in verschiedene andere Buchhaltungssoftwareformate. Module54000Name=PrintIPP Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP (Drucker muss vom Server aus sichtbar sein, auf dem Server muss CUPS installiert sein) -Module55000Name=Umfrage- und Terminfindung +Module55000Name=Umfrage und Terminfindung Module55000Desc=Modul zur Erstellung von Umfragen und zur Terminfindung (vergleichbar mit Doodle) Module59000Name=Gewinnspannen Module59000Desc=Modul zur Verwaltung von Gewinnspannen @@ -697,7 +699,8 @@ Module60000Desc=Modul zur Verwaltung von Kommissionen Module62000Name=Incoterms Module62000Desc=Funktionen zum Verwalten von Incoterms hinzufügen Module63000Name=Ressourcen -Module63000Desc=Verwalten Sie Ressourcen (Drucker, Autos, Räume, ...) für zugeordnete Ereignisse +Module63000Desc=Verwaltung von Ressourcen (Drucker, Autos, Räume, ...) für zugeordnete Ereignisse +Module94160Name=Wareneingänge Permission11=Rechnungen einsehen Permission12=Rechnungen erstellen/bearbeiten Permission13=Ungültige Kundenrechnungen @@ -714,12 +717,13 @@ Permission27=Angebote löschen Permission28=Angebote exportieren Permission31=Produkte/Leistungen einsehen Permission32=Produkte/Leistungen erstellen/bearbeiten +Permission33=Preise für Produkte einsehen Permission34=Produkte/Leistungen löschen Permission36=Projekte/Leistungen exportieren Permission38=Produkte exportieren Permission39=Minimalpreis ignorieren Permission41=Projekte und Aufgaben einsehen (gemeinsame Projekte und Projekte, bei denen ich Ansprechpartner bin). -Permission42=Projekte erstellen/ändern (gemeinsame Projekte und Projekte, bei denen ich Ansprechpartner bin). Kann den Projekten und Aufgaben auch Benutzer zuweisen +Permission42=Projekte erstellen/bearbeiten (gemeinsame Projekte und Projekte, bei denen ich Ansprechpartner bin). Kann den Projekten und Aufgaben auch Benutzer zuweisen Permission44=Projekte löschen (gemeinsame Projekte und Projekte, bei denen ich Ansprechpartner bin) Permission45=Projekte exportieren Permission61=Serviceaufträge einsehen @@ -733,12 +737,13 @@ Permission71=Mitglieder einsehen Permission72=Mitglieder erstellen/bearbeiten Permission74=Mitglieder löschen Permission75=Erstellen Typen von Mitgliedschaft -Permission76=Daten Export +Permission76=Datenexport Permission78=Abonnements einsehen Permission79=Abonnements erstellen/bearbeiten Permission81=Kundenaufträge einsehen Permission82=Kundenaufträge erstellen/bearbeiten Permission84=Kundenaufträge freigeben +Permission85=Generieren Sie die Belege Verkaufsaufträge Permission86=Kundenaufträge per E-Mail versenden Permission87=Kundenaufträge abschließen Permission88=Kundenaufträge verwerfen @@ -748,33 +753,33 @@ Permission92=Sozialabgaben, Steuern und Mehrwertsteuer erstellen/bearbeiten Permission93=Sozialabgaben, Steuern und Mehrwertsteuer löschen Permission94=Sozialabgaben, Steuern und Mehrwertsteuer erstellen/bearbeiten Permission95=Buchhaltung einsehen -Permission101=Auslieferungen einsehen -Permission102=Auslieferungen erstellen/bearbeiten -Permission104=Auslieferungen freigeben +Permission101=Lieferungen einsehen +Permission102=Lieferungen erstellen/bearbeiten +Permission104=Lieferungen freigeben Permission105=Sende Sendungen per E-Mail -Permission106=Auslieferungen exportieren +Permission106=Lieferungen exportieren Permission109=Sendungen löschen -Permission111=Finanzkonten einsehen -Permission112=Transaktionen erstellen/ändern/löschen und vergleichen -Permission113=Finanzkonten einrichten (Kategorien von Banktransaktionen erstellen und verwalten) -Permission114=Transaktionen ausgleichen +Permission111=Bankkonten einsehen +Permission112=Transaktionen erstellen/bearbeiten/löschen und vergleichen +Permission113=Bankkonten einrichten (Kategorien von Banktransaktionen erstellen und verwalten) +Permission114=Transaktionen abgleichen Permission115=Transaktionen und Kontoauszüge exportieren Permission116=Transfers zwischen Konten Permission117=Schecks verwalten -Permission121=Mit Benutzer verbundene Partner einsehen -Permission122=Mit Benutzer verbundene Partner erstellen/bearbeiten -Permission125=Mit Benutzer verbundene Partner löschen +Permission121=Mit Benutzer verbundene Geschäftspartner einsehen +Permission122=Mit Benutzer verbundene Geschäftspartner erstellen/bearbeiten +Permission125=Mit Benutzer verbundene Geschäftspartner löschen Permission126=Geschäftspartner exportieren -Permission130=Zahlungsinformationen von Geschäftspartnern erstellen/ändern +Permission130=Zahlungsinformationen von Geschäftspartnern erstellen/bearbeiten Permission141=Alle Projekte und Aufgaben lesen (auch private Projekte, für die ich kein Ansprechpartner bin) -Permission142=Erstellen/Ändern aller Projekte und Aufgaben (auch private Projekte, für die ich kein Ansprechpartner bin) +Permission142=Erstellen/Bearbeiten aller Projekte und Aufgaben (auch private Projekte, für die ich kein Ansprechpartner bin) Permission144=Alle Projekte und Aufgaben löschen (auch private Projekte, für die ich kein Ansprechpartner bin) Permission145=Kann für mich oder meine Hierarchie aufgewendete Zeiten für zugewiesene Aufgaben erfassen (Arbeitszeittabelle) Permission146=Lieferanten einsehen Permission147=Statistiken einsehen -Permission151=Bestellung mit Zahlart Lastschrift +Permission151=Lastschriftaufträge einsehen Permission152=Lastschriftaufträge erstellen/bearbeiten -Permission153=Bestellungen mit Zahlart Lastschrift übertragen +Permission153=Lastschriftaufträge senden/übertragen Permission154=Gutschriften / Ablehnungen von Lastschrift-Zahlungsaufträgen erfassen Permission161=Verträge/Abonnements einsehen Permission162=Verträge/Abonnements erstellen/bearbeiten @@ -782,7 +787,7 @@ Permission163=Leistung/Abonnement in einem Vertrag aktivieren Permission164=Leistung/Abonnement in einem Vertrag deaktivieren Permission165=Verträge/Abonnement löschen Permission167=Verträge exportieren -Permission171=Reise- und Spesenabrechnung einsehen (Eigene und von Untergebenen) +Permission171=Reise- und Spesenabrechnung einsehen (Eigene und die der unterstellten Mitarbeiter) Permission172=Reise- und Spesenabrechnung erstellen/bearbeiten Permission173=Reise- und Spesenabrechnung verwerfen Permission174=Alle Reise- und Spesenabrechnung einsehen @@ -823,7 +828,7 @@ Permission244=Inhalte versteckter Kategorien einsehen Permission251=Andere Benutzer und Gruppen einsehen PermissionAdvanced251=Andere Benutzer einsehen Permission252=Berechtigungen andere Benutzer einsehen -Permission253=erstellen / bearbeiten von Benutzern & Gruppen (inkl. Rechteverwaltung) +Permission253=Benutzer & Gruppen (inkl. Rechteverwaltung) erstellen/bearbeiten PermissionAdvanced253=Andere interne/externe Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung) Permission254=Nur externe Benutzer erstellen/bearbeiten Permission255=Passwörter anderer Benutzer ändern @@ -831,7 +836,7 @@ Permission256=Andere Benutzer löschen oder deaktivieren Permission262=Erweitern Sie den Zugriff auf alle Drittanbieter UND deren Objekte (nicht nur auf Drittanbieter, für die der Benutzer ein Verkaufsvertreter ist).
    Nicht wirksam für externe Benutzer (bei Vorschlägen, Bestellungen, Rechnungen, Verträgen usw. immer auf sich selbst beschränkt).
    Nicht wirksam für Projekte (nur Regeln zu Projektberechtigungen, Sichtbarkeit und Zuweisung). Permission263=Erweitern Sie den Zugriff auf alle Drittanbieter OHNE ihre Objekte (nicht nur auf Drittanbieter, für die der Benutzer ein Verkaufsvertreter ist).
    Nicht wirksam für externe Benutzer (bei Vorschlägen, Bestellungen, Rechnungen, Verträgen usw. immer auf sich selbst beschränkt).
    Nicht wirksam für Projekte (nur Regeln zu Projektberechtigungen, Sichtbarkeit und Zuweisung). Permission271=Read CA -Permission272=Rechnungen anzeigen +Permission272=Rechnungen einsehen Permission273=Rechnungen ausstellen Permission281=Kontakte einsehen Permission282=Kontakte erstellen/bearbeiten @@ -840,10 +845,10 @@ Permission286=Kontakte exportieren Permission291=Tarife einsehen Permission292=Berechtigungen der Tarife einstellen Permission293=Kundentarife ändern -Permission300=Barcodes anzeigen -Permission301=Barcodes erstellen/bearbeiten -Permission302=Barcodes löschen -Permission311=Leistungen anzeigen +Permission301=PDF-Seiten mit Barcodes generieren +Permission304=Barcodes erstellen/bearbeiten +Permission305=Barcodes löschen +Permission311=Leistungen einsehen Permission312=Leistung/Abonnement einem Vertrag zuordnen Permission331=Lesezeichen anzeigen Permission332=Lesezeichen erstellen/bearbeiten @@ -857,55 +862,56 @@ Permission352=Gruppenberechtigungen einsehen Permission353=Gruppen erstellen/bearbeiten Permission354=Gruppen löschen oder deaktivieren Permission358=Benutzer exportieren -Permission401=Rabatte anzeigen +Permission401=Rabatte einsehen Permission402=Rabatte erstellen/bearbeiten Permission403=Rabatte freigeben Permission404=Rabatte löschen Permission430=Debug Bar nutzen -Permission511=Leseberechtigung für Gehälter und Zahlungen (eigene und von Untergebenen) -Permission512=Gehälter und Zahlungen erstellen/ändern +Permission511=Leseberechtigung für Gehälter und Zahlungen (eigene und die der unterstellten Mitarbeiter) +Permission512=Gehälter und Zahlungen erstellen/bearbeiten Permission514=Gehälter und Zahlungen löschen Permission517=Leseberechtigung für alle Gehälter und Zahlungen -Permission519=Löhne exportieren +Permission519=Gehälter exportieren Permission520=Darlehen anzeigen Permission522=Darlehen erstellen/bearbeiten Permission524=Lösche Darlehen Permission525=Zugriff auf Darlehensrechner Permission527=Darlehen exportieren -Permission531=Leistungen anzeigen +Permission531=Leistungen einsehen Permission532=Leistungen erstellen/bearbeiten +Permission533=Preise für Leistungen einsehen Permission534=Leistungen löschen Permission536=Versteckte Leistungen einsehen/verwalten Permission538=Leistungen exportieren Permission561=Zahlungsaufträge per Überweisung lesen -Permission562=Zahlungsauftrag per Überweisung erstellen / ändern -Permission563=Zahlungsauftrag per Überweisung senden / übertragen +Permission562=Zahlungsauftrag per Überweisung erstellen/bearbeiten +Permission563=Zahlungsauftrag per Überweisung senden/übertragen Permission564=Belastungen / Ablehnungen der Überweisung erfassen -Permission601=Aufkleber lesen -Permission602=Erstellen / Ändern von Aufklebern +Permission601=Aufkleber einsehen +Permission602=Aufkleber erstellen/bearbeiten Permission609=Aufkleber löschen Permission611=Attribute von Varianten lesen Permission612=Attribute von Varianten erstellen/aktualisieren Permission613=Attribute von Varianten löschen -Permission650=Stücklisten anzeigen -Permission651=Stücklisten erstellen / aktualisieren +Permission650=Stücklisten einsehen +Permission651=Stücklisten erstellen/aktualisieren Permission652=Stücklisten löschen -Permission660=Fertigungsauftrag (MO) anzeigen +Permission660=Fertigungsauftrag (MO) einsehen Permission661=Fertigungsauftrag (MO) erstellen/aktualisieren Permission662=Fertigungsauftrag (MO) löschen Permission701=Spenden anzeigen Permission702=Spenden erstellen/bearbeiten Permission703=Spenden löschen -Permission771=Spesenabrechnungen einsehen (eigene und die der Untergebenen) -Permission772=Spesenabrechnungen erstellen/ändern (für Sie und Ihnen unterstellte Mitarbeiter) +Permission771=Spesenabrechnungen einsehen (eigene und die der unterstellten Mitarbeiter) +Permission772=Spesenabrechnungen erstellen/bearbeiten (eigene und die der unterstellten Mitarbeiter) Permission773=Spesenabrechnung löschen Permission775=Spesenabrechnung genehmigen Permission776=Spesenabrechnung bezahlen -Permission777=Lesen Sie alle Spesenabrechnungen (auch die von Ihnen nicht unterstellten Mitarbeitern) -Permission778=Spesenabrechnungen aller erstellen / ändern +Permission777=Alle Spesenabrechnungen einsehen (auch die von nicht unterstellten Mitarbeitern) +Permission778=Spesenabrechnungen aller erstellen/bearbeiten Permission779=Spesenabrechnung exportieren -Permission1001=Warenbestände einsehen -Permission1002=Warenlager erstellen/ändern +Permission1001=Lagerbestände einsehen +Permission1002=Warenlager erstellen/bearbeiten Permission1003=Warenlager löschen Permission1004=Lagerbewegungen einsehen Permission1005=Lagerbewegungen erstellen/bearbeiten @@ -914,18 +920,18 @@ Permission1012=Neue Bestandsaufnahme erstellen Permission1014=Bestandsaufnahme freigeben Permission1015=Durchschnittspreis änderbar Permission1016=Bestandsaufnahme löschen -Permission1101=Lieferscheine anzeigen +Permission1101=Lieferscheine einsehen Permission1102=Lieferscheine erstellen/bearbeiten Permission1104=Lieferscheine freigeben Permission1109=Lieferscheine löschen -Permission1121=Lieferantenvorschläge anzeigen -Permission1122=Lieferantenvorschläge erstellen / ändern +Permission1121=Lieferantenangebote einsehen +Permission1122=Lieferantenangebote erstellen/bearbeiten Permission1123=Lieferantenangebote freigeben -Permission1124=Lieferantenvorschläge senden -Permission1125=Lieferantenvorschläge löschen +Permission1124=Lieferantenangebote senden +Permission1125=Lieferantenangebote löschen Permission1126=Schließe Lieferantenpreisanfragen Permission1181=Lieferanten einsehen -Permission1182=Lieferantenbestellungen anzeigen +Permission1182=Lieferantenbestellungen einsehen Permission1183=Lieferantenbestellungen erstellen/bearbeiten Permission1184=Lieferantenbestellungen freigeben Permission1185=Lieferantenbestellungen bestätigen/genehmigen @@ -937,7 +943,7 @@ Permission1190=Lieferantenbestellungen bestätigen (zweite Bestätigung) Permission1191=Exportieren Sie Lieferantenaufträge und deren Attribute Permission1201=Exportresultate einsehen Permission1202=Export erstellen/bearbeiten -Permission1231=Lieferantenrechnungen anzeigen +Permission1231=Lieferantenrechnungen einsehen Permission1232=Lieferantenrechnungen (Eingangsrechnungen) erstellen/bearbeiten Permission1233=Lieferantenrechnungen freigeben Permission1234=Lieferantenrechnungen löschen @@ -951,7 +957,7 @@ Permission1421=Kundenaufträge und Attribute exportieren Permission1521=Dokumente einsehen Permission1522=Dokumente löschen Permission2401=Aktionen (Ereignisse oder Aufgaben) lesen, die mit seinem Benutzerkonto verknüpft sind (wenn Eigentümer des Ereignisses oder gerade zugewiesen) -Permission2402=Aktionen (Ereignisse oder Aufgaben) erstellen / ändern, die mit seinem Benutzerkonto verknüpft sind (wenn Eigentümer des Ereignisses) +Permission2402=Aktionen (Ereignisse oder Aufgaben) erstellen/bearbeiten, die mit seinem Benutzerkonto verknüpft sind (wenn Eigentümer des Ereignisses) Permission2403=Mit seinem Benutzerkonto verknüpfte Aktionen (Ereignisse oder Aufgaben) löschen (wenn Eigentümer des Ereignisses) Permission2411=Ereignisse (Termine/Aufgaben) Anderer einsehen Permission2412=Ereignisse (Termine/Aufgaben) Anderer erstellen/bearbeiten @@ -959,34 +965,35 @@ Permission2413=Ereignisse (Termine/Aufgaben) Anderer löschen Permission2414=Ereignisse (Termine/Aufgaben) Anderer exportieren Permission2501=Dokumente herunterladen oder einsehen Permission2502=Dokumente herunterladen -Permission2503=Dokumente bestätigen oder löschen +Permission2503=Dokumente hochladen oder löschen Permission2515=Dokumentverzeichnisse verwalten Permission2801=FTP-Client im Lesemodus nutzen (nur ansehen und herunterladen) Permission2802=FTP-Client im Schreibmodus nutzen (Dateien löschen oder hochladen) Permission3200=Eingetragene Ereignisse und Fingerprints lesen Permission3301=Neues Module erstellen -Permission4001=Kompetenz/Job/Position einsehen -Permission4002=Kompetenz/Job/Position erstellen/ändern -Permission4003=Kompetenz/Job/Position löschen -Permission4020=Bewertungen einsehen -Permission4021=Erstellen/ändern Sie Ihre Bewertung -Permission4022=Bewertung freigeben -Permission4023=Bewertung löschen -Permission4030=Siehe Vergleichsmenü +Permission4001=Kompetenz/Stelle/Position einsehen +Permission4002=Kompetenz/Stelle/Position erstellen/bearbeiten +Permission4003=Kompetenz/Stelle/Position löschen +Permission4021=Bewertungen einsehen (Ihre und die Ihrer Untergebenen) +Permission4022=Bewertungen erstellen/ändern +Permission4023=Bewertung freigeben +Permission4025=Bewertung löschen +Permission4028=Siehe Vergleichsmenü Permission4031=Persönliche Daten einsehen Permission4032=Persönliche Daten schreiben -Permission10001=Website-Inhalt anzeigen +Permission4033=Alle Bewertungen einsehen (auch die von nicht unterstellten Benutzern) +Permission10001=Website-Inhalt einsehen Permission10002=Erstelle/Bearbeite Website-Inhalte (HTML und JavaScript) Permission10003=Erstelle/Bearbeite Website-Inhalte (dynamischer PHP-Code). Gefährlich, dies muss auf ausgewählte Entwickler beschränkt werden. Permission10005=Inhalt der Website löschen -Permission20001=Urlaubsanträge einsehen (eigene und die Ihrer Untergeordneten) -Permission20002=Urlaubsanträge anlegen/bearbeiten (eigene und die Ihrer Untergeordneten) +Permission20001=Urlaubsanträge einsehen (eigene und die der unterstellten Mitarbeiter) +Permission20002=Urlaubsanträge anlegen/bearbeiten (eigene und die der unterstellten Mitarbeiter) Permission20003=Lösche Urlaubsanträge -Permission20004=Alle Urlaubsanträge lesen (auch die von Ihnen nicht unterstellten Mitarbeitern) -Permission20005=Urlaubsanträge für alle erstellen/ändern (auch für Ihnen nicht unterstellte Mitarbeiter) +Permission20004=Alle Urlaubsanträge einsehen (auch die von nicht unterstellten Mitarbeitern) +Permission20005=Urlaubsanträge für alle erstellen/bearbeiten (auch die von nicht unterstellten Mitarbeitern) Permission20006=Urlaubsanträge verwalten (Saldo einrichten und aktualisieren) Permission20007=Urlaubsanträge genehmigen -Permission23001=Geplante Aufgaben anzeigen +Permission23001=Geplante Aufgaben einsehen Permission23002=Geplante Aufgaben erstellen/bearbeiten Permission23003=Geplante Aufgabe(n) löschen Permission23004=Geplante Aufgaben ausführen @@ -997,43 +1004,43 @@ Permission50153=Zeilen bestellte Verkäufe bearbeiten Permission50201=Transaktionen einsehen Permission50202=Transaktionen importieren Permission50330=Lesen Sie Objekte von Zapier -Permission50331=Objekte von Zapier erstellen / aktualisieren +Permission50331=Objekte von Zapier erstellen/aktualisieren Permission50332=Objekte von Zapier löschen Permission50401=Produkte und Rechnungen mit Sachkonten verbinden -Permission50411=Hauptbuch-Vorgänge lesen +Permission50411=Hauptbuch-Vorgänge einsehen Permission50412=Hauptbuch-Vorgänge schreiben/bearbeiten Permission50414=Hauptbuch-Vorgänge löschen Permission50415=Alle Vorgänge des Jahres und Protokolles im Hauptbuch löschen Permission50418=Exportvorgänge des Hauptbuches -Permission50420=Berichts- und Exportberichte (Umsatz, Bilanz, Journale, Ledger) +Permission50420=Berichte und Berichtsexporte (Umsatz, Bilanz, Journale, Hauptbuch) Permission50430=Geschäftsperioden definieren. Überprüfen Sie Transaktionen und schließen Sie Geschäftsperioden. Permission50440=Kontenplan verwalten, Buchhaltung einrichten -Permission51001=Anlagegüter (Assets) anzeigen -Permission51002=Anlagegüter (Assets) erstellen / aktualisieren +Permission51001=Anlagegüter (Assets) einsehen +Permission51002=Anlagegüter (Assets) erstellen/aktualisieren Permission51003=Anlagegüter (Assets) löschen -Permission51005=Arten von Anlagengüter (Assets) einrichten +Permission51005=Arten von Anlagegütern (Assets) einrichten Permission54001=Drucken Permission55001=Abstimmungen einsehen -Permission55002=Abstimmung erstellen/ändern +Permission55002=Abstimmungen erstellen/bearbeiten Permission59001=Gewinnspanne einsehen Permission59002=Gewinnspanne definieren Permission59003=Lesen aller Benutzer Margen -Permission63001=Ressourcen anzeigen +Permission63001=Ressourcen einsehen Permission63002=Ressource erstellen/bearbeiten Permission63003=Ressource löschen Permission63004=Verbinden von Ressourcen zu Ereignissen Permission64001=Direkt drucken erlauben Permission67000=Drucken von Quittungen erlauben Permission68001=Lesen Sie den Intracomm-Bericht -Permission68002=Intracomm-Bericht erstellen / ändern +Permission68002=Intracomm-Bericht erstellen/bearbeiten Permission68004=Intracomm-Bericht löschen -Permission941601=Quittungen einlesen -Permission941602=Erstellen und ändern von Quittungen -Permission941603=Quittungen bestätigen +Permission941601=Quittungen einsehen +Permission941602=Quittungen erstellen/bearbeiten +Permission941603=Quittungen freigeben Permission941604=Quittungen per E-Mail senden Permission941605=Quittungen exportieren Permission941606=Quittungen löschen -DictionaryCompanyType=Geschäftspartner Arten +DictionaryCompanyType=Geschäftspartner-Arten DictionaryCompanyJuridicalType=Rechtsformen der Geschäftspartner DictionaryProspectLevel=Level für Interessentenstatus - Unternehmen DictionaryProspectContactLevel=Level für Interessentenstatus - Kontakte @@ -1053,14 +1060,14 @@ DictionaryTypeOfContainer=Website - Art der Webseiten/Container DictionaryEcotaxe=Ökosteuern (WEEE) DictionaryPaperFormat=Papierformat DictionaryFormatCards=Kartenformate -DictionaryFees=Spesenabrechnung - Arten von Spesenabrechnungszeilen +DictionaryFees=Spesenabrechnung - Arten von Spesenpositionen DictionarySendingMethods=Versandarten DictionaryStaff=Anzahl der Beschäftigten DictionaryAvailability=Lieferverzug DictionaryOrderMethods=Bestellmethoden DictionarySource=Quelle der Angebote/Aufträge -DictionaryAccountancyCategory=Personalisierte Gruppen für Berichte -DictionaryAccountancysystem=Wähle deinen Kontenplan. +DictionaryAccountancyCategory=Benutzerdefinierte Gruppen für Berichte +DictionaryAccountancysystem=Kontenplan-Modelle DictionaryAccountancyJournal=Buchhaltungsjournale DictionaryEMailTemplates=E-Mail-Vorlagen DictionaryUnits=Einheiten @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Art der Veräußerung von Vermögenswerten TypeOfUnit=Art der Einheit SetupSaved=Einstellungen gespeichert SetupNotSaved=Einstellungen nicht gespeichert +OAuthServiceConfirmDeleteTitle=OAuth-Eintrag löschen +OAuthServiceConfirmDeleteMessage=Möchten Sie diesen OAuth-Eintrag wirklich löschen? Alle vorhandenen Tokens dafür werden ebenfalls gelöscht. +ErrorInEntryDeletion=Fehler beim Löschen des Eintrags +EntryDeleted=Eintrag gelöscht BackToModuleList=Zurück zur Modulübersicht BackToDictionaryList=Zurück zur Stammdaten-Übersicht TypeOfRevenueStamp=Art der Steuermarke @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Wert einer Konfigurationskonstante ConstantIsOn=Option %s ist aktiviert NbOfDays=Anzahl der Tage AtEndOfMonth=Am Monatsende -CurrentNext=Aktueller/ Nächster +CurrentNext=Ein bestimmter Tag im Monat Offset=Wertsprung AlwaysActive=Immer aktiv Upgrade=Aktualisierung @@ -1188,10 +1199,10 @@ LogoDesc=Standard-Logo des Unternehmens. Das Logo wird in generierten Dokumenten LogoSquarred=Logo (quadratisch) LogoSquarredDesc=Muss ein quadratisches Icon sein (Breite = Höhe). Dieses Logo wird als Favicon oder für Zwecke wie die obere Menüleiste (falls nicht in den Anzeige-Einstellungen deaktiviert) verwendet. DoNotSuggestPaymentMode=Nicht vorschlagen / anzeigen -NoActiveBankAccountDefined=Keine aktiven Finanzkonten definiert +NoActiveBankAccountDefined=Keine aktiven Bankkonten definiert OwnerOfBankAccount=Kontoinhaber %s BankModuleNotActive=Finanzkontenmodul nicht aktiv -ShowBugTrackLink=Den Link " %s " anzeigen +ShowBugTrackLink=Den Link "%s" anzeigen ShowBugTrackLinkDesc=Leer lassen, um diesen Link nicht anzuzeigen, verwenden Sie den Wert 'github' für den Link zum Dolibarr-Projekt oder definieren Sie direkt eine URL 'https://...' Alerts=Benachrichtigungen DelaysOfToleranceBeforeWarning=Anzeige einer Warnmeldung für... @@ -1235,11 +1246,13 @@ BrowserName=Browsername BrowserOS=Betriebssystem des Browsers ListOfSecurityEvents=Liste der sicherheitsrelevanten Ereignisse SecurityEventsPurged=Security-Ereignisse gelöscht +TrackableSecurityEvents=Zu erfassende Sicherheitsereignisse LogEventDesc=Aktivieren Sie die Protokollierung für bestimmte Sicherheitsereignisse. Administrieren Sie das Protokoll über Menü %s - %s . Achtung, diese Funktion kann eine große Datenmenge in der Datenbank erzeugen. AreaForAdminOnly=Einstellungen können nur durch
    Administratoren
    verändert werden. SystemInfoDesc=Verschiedene systemrelevante, technische Informationen - Lesemodus und nur für Administratoren sichtbar. SystemAreaForAdminOnly=Dieser Bereich steht ausschließlich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern. CompanyFundationDesc=Bearbeiten Sie die Informationen Ihres Unternehmens / Ihrer Organisation. Klicken Sie unten auf der Seite auf die Schaltfläche "%s", wenn Sie fertig sind. +MoreNetworksAvailableWithModule=Weitere soziale Netzwerke sind verfügbar, indem Sie das Modul "Soziale Netzwerke" aktivieren. AccountantDesc=Falls Sie einen externen Buchhalter/Treuhänder haben, können Sie hier dessen Informationen hinterlegen. AccountantFileNumber=Buchhalter-Code DisplayDesc=Hier können Parameter geändert werden, die das Aussehen und die Darstellung der Anwendung beeinflussen. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Diesen Befehl müssen Sie auf d YourPHPDoesNotHaveSSLSupport=Ihre PHP-Konfiguration unterstützt keine SSL-Verschlüsselung DownloadMoreSkins=Weitere grafische Oberflächen herunterladen SimpleNumRefModelDesc=Gibt die Referenznummer im Format %syymm-nnnn zurück, wobei yy das Jahr, mm der Monat und nnnn eine fortlaufende automatisch inkrementierende Nummer ohne Zurücksetzen ist +SimpleRefNumRefModelDesc=Gibt die Referenznummer im Format n zurück, wobei n eine fortlaufende, automatisch inkrementierende Zahl ohne Zurücksetzen ist +AdvancedNumRefModelDesc=Gibt die Referenznummer im Format %syymm-nnnn zurück, wobei yy das Jahr, mm der Monat und nnnn eine fortlaufende automatisch inkrementierende Nummer ohne Zurücksetzen ist SimpleNumRefNoDateModelDesc=Gibt die Referenznummer im Format %s-nnnn zurück, wobei nnnn eine fortlaufende automatisch inkrementierende Nummer ohne Zurücksetzen ist ShowProfIdInAddress=Erweiterte Kundendaten (geschäftliche ID-Nummern) im Adressfeld anzeigen ShowVATIntaInAddress=Umsatzsteuer-ID ausblenden @@ -1300,21 +1315,21 @@ MeteoStdModEnabled=Standardmodus aktiviert MeteoPercentageMod=Prozentmodus MeteoPercentageModEnabled=Prozentmodus aktiviert MeteoUseMod=Anklicken um %s zu verwenden -TestLoginToAPI=Testen Sie sich anmelden, um API +TestLoginToAPI=Anmeldung am API testen ProxyDesc=Einige Dolibarr-Funktionen benötigen einen Zugang zum Internet. Hier können die Verbindungsparameter festgelegt werden, z.B. ob ein Proxy-Server erforderlich ist. ExternalAccess=Externer Internet-Zugang -MAIN_PROXY_USE=Proxy-Server benutzen (ansonsten erfolgt der Zugriff in's Internet direkt) -MAIN_PROXY_HOST=Proxyservers: IP-Adresse / DNS-Name +MAIN_PROXY_USE=Proxyserver benutzen (ansonsten erfolgt der Internetzugriff direkt) +MAIN_PROXY_HOST=Proxyserver: IP-Adresse/DNS-Name MAIN_PROXY_PORT=Proxyserver: Port MAIN_PROXY_USER=Proxyserver: Benutzername MAIN_PROXY_PASS=Proxyserver: Passwort DefineHereComplementaryAttributes=Definieren Sie alle ergänzenden Attribute, die hinzugefügt werden sollen: ExtraFields=Ergänzende Attribute -ExtraFieldsLines=Ergänzende Attribute (in den Einzelpositionen) +ExtraFieldsLines=Ergänzende Attribute (zu Positionen/Zeilen) ExtraFieldsLinesRec=Ergänzende Attribute (Positionen in Rechnungsvorlagen) ExtraFieldsSupplierOrdersLines=Ergänzende Attribute (in Auftragspositionen) ExtraFieldsSupplierInvoicesLines=Ergänzende Attribute (in Rechnungspositionen) -ExtraFieldsThirdParties=Ergänzende Attribute (Partner) +ExtraFieldsThirdParties=Ergänzende Attribute (Geschäftspartner) ExtraFieldsContacts=Ergänzende Attribute (Kontakte/Adressen) ExtraFieldsMember=Ergänzende Attribute (Mitglied) ExtraFieldsMemberType=Ergänzende Attribute (Mitglied) @@ -1362,7 +1377,7 @@ YouHaveXObjectUseSearchOptim=Sie haben %s %s in der Datenbank. Sie können in St YouHaveXObjectUseSearchOptimDesc=Beschränkung der Suche auf den Anfang von Zeichenketten. Dadurch kann die Datenbank Indizes verwenden, was die Antwortzeiten deutlich beschleunigt. YouHaveXObjectAndSearchOptimOn=Sie haben %s %s in der Datenbank und die Konstante %s ist in Start-Einstellungen-Erweiterte Einstellungen auf %s gesetzt. BrowserIsOK=Sie verwenden %s als Webbrowser. Dieser ist hinsichtlich Sicherheit und Leistung ausreichend. -BrowserIsKO=Sie verwenden %s als Webbrowser. Dieser ist bekanntlich eine schlechte Wahl wenn es um Sicherheit, Leistung und Zuverlässigkeit geht. Wir empfehlen Firefox, Chrome, Opera oder Safari zu benutzen. +BrowserIsKO=Sie verwenden %s als Webbrowser. Dieser ist bekanntlich eine schlechte Wahl, wenn es um Sicherheit, Leistung und Zuverlässigkeit geht. Wir empfehlen Firefox, Chrome, Opera oder Safari zu benutzen. PHPModuleLoaded=PHP Komponente %s ist geladen PreloadOPCode=Vorgeladener OPCode wird verwendet AddRefInList=Kunden-/Lieferanten-Ref. in Auswahllisten anzeigen.
    Geschäftspartner werden mit dem Namensformat "CC12345 - SC45678 - The Big Company corp." angezeigt statt "The Big Company Corp". @@ -1376,7 +1391,7 @@ GetBarCode=Übernehmen NumberingModules=Nummerierungsmodelle DocumentModules=Dokumentvorlagen ##### Module password generation -PasswordGenerationStandard=Gibt ein Kennwort zurück, das gemäß dem internen Dolibarr-Algorithmus generiert wurde: %s Zeichen, die gemeinsam genutzte Zahlen und Zeichen in Kleinbuchstaben enthalten. +PasswordGenerationStandard=Erzeugt ein Passwort, das gemäß dem internen Dolibarr-Algorithmus generiert wurde: %s-Zeichen, die Ziffern und Buchstaben enthalten. PasswordGenerationNone=Kein generiertes Passwort vorschlagen. Das Passwort muss manuell eingegeben werden. PasswordGenerationPerso=Ein Passwort entsprechend der persönlich definierten Konfiguration zurückgeben. SetupPerso=Nach Ihrer Konfiguration @@ -1393,7 +1408,7 @@ GroupsDocModules=Dokumentvorlagen für Dokumente, die aus einem Gruppendatensatz HRMSetup=Einstellungen Modul Personal ##### Company setup ##### CompanySetup=Einstellungen Modul Geschäftspartner -CompanyCodeChecker=Nummernvergabe für Partner und Lieferanten +CompanyCodeChecker=Optionen für die automatische Vergabe von Kunden- und Lieferantennummern AccountCodeManager=Optionen für die automatische Generierung von Kunden-/Anbieterkontonummern NotificationsDesc=Für einige Dolibarr-Ereignisse können automatisch E-Mail-Benachrichtigungen gesendet werden,
    wobei Empfänger von Benachrichtigungen definiert werden können: NotificationsDescUser=* pro Benutzer, nur ein Benutzer zur gleichen Zeit @@ -1423,19 +1438,23 @@ ForceInvoiceDate=Rechnungsdatum ist zwingend Freigabedatum SuggestedPaymentModesIfNotDefinedInInvoice=Vorgeschlagener, standardmäßiger Zahlungsmodus auf der Rechnung, falls nicht auf der Rechnung definiert SuggestPaymentByRIBOnAccount=Bankkonto für Bezahlung per Überweisung SuggestPaymentByChequeToAddress=Adresse für Zahlung per Scheck -FreeLegalTextOnInvoices=Freier Rechtstext für Rechnungen +FreeLegalTextOnInvoices=Freier Standardtext auf Rechnungen WatermarkOnDraftInvoices=Wasserzeichen auf Rechnungsentwurf (leerlassen wenn keines benötigt wird) PaymentsNumberingModule=Zahlungen Nummerierungs Module SuppliersPayment=Lieferanten Zahlung SupplierPaymentSetup=Einstellungen für Lieferantenzahlungen InvoiceCheckPosteriorDate=Überprüfen Sie das Rechnungsdatum vor der Validierung InvoiceCheckPosteriorDateHelp=Die Validierung einer Rechnung ist nicht möglich, wenn ihr Datum vor dem Datum der letzten Rechnung des gleichen Typs liegt. +InvoiceOptionCategoryOfOperations=Geben Sie auf der Rechnung einen Vermerk über die Tätigkeitskategorie (Produkte/Leistungen/gemischt) an (erforderlich u.a. in Frankreich). +InvoiceOptionCategoryOfOperationsHelp=Je nach Situation erfolgt die Nennung in der Form:
    - Tätigkeitskategorie: Lieferung von Waren
    - Tätigkeitskategorie: Erbringung von Dienstleistungen
    - Tätigkeitskategorie: Gemischt - Lieferung von Waren & Erbringung von Dienstleistungen +InvoiceOptionCategoryOfOperationsYes1=Ja, unterhalb des Adressfeldes +InvoiceOptionCategoryOfOperationsYes2=Ja, in der unteren linken Ecke ##### Proposals ##### PropalSetup=Einstellungen Modul Angebote ProposalsNumberingModules=Nummernvergabe für Angebote ProposalsPDFModules=Dokumentenvorlage(n) SuggestedPaymentModesIfNotDefinedInProposal=Vorgeschlagener, standardmäßiger Zahlungsmodus für Angebot, falls nicht im Angebot definiert -FreeLegalTextOnProposal=Freier Rechtstext auf Angeboten +FreeLegalTextOnProposal=Freier Standardtext auf Angeboten WatermarkOnDraftProposal=Wasserzeichen auf Angebotsentwurf (leerlassen wenn keines benötigt wird) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Fragen Sie nach dem Bankkonto bei einem Angebot ##### SupplierProposal ##### @@ -1453,7 +1472,7 @@ SuggestedPaymentModesIfNotDefinedInOrder=Standardmäßig vorgeschlagener Zahlung OrdersSetup=Einstellungen für die Verwaltung von Kundenaufträgen OrdersNumberingModules=Nummernvergabe für Aufträge/Bestellungen OrdersModelModule=Dokumentenvorlage(n) -FreeLegalTextOnOrders=Freier Rechtstext auf Bestellungen +FreeLegalTextOnOrders=Freier Standardtext auf Bestellungen WatermarkOnDraftOrders=Wasserzeichen auf Bestellentwurf (leerlassen wenn keines benötigt wird) ShippableOrderIconInList=In Auftragsliste ein entsprechendes Icon zufügen, wenn der Auftrag versandbereit ist BANK_ASK_PAYMENT_BANK_DURING_ORDER=Fragen Sie nach der Ziel-Bankverbindung @@ -1468,15 +1487,16 @@ ContractsSetup=Vertrags- und Abonnements-Einstellungen ContractsNumberingModules=Nummernvergabe für Verträge und Abonnements TemplatePDFContracts=Dokumentenvorlage(n) FreeLegalTextOnContracts=Freier Text in Verträgen -WatermarkOnDraftContractCards=Wasserzeichen auf Vertragsentwurf (leerlassen wenn keines benötigt wird) +WatermarkOnDraftContractCards=Wasserzeichen auf Entwurf (leerlassen, wenn nicht benötigt) ##### Members ##### MembersSetup=Modul Mitglieder - Einstellungen MemberMainOptions=Haupteinstellungen +MemberCodeChecker=Optionen für die automatische Generierung von Mitgliedsnummern AdherentLoginRequired= Verwalten Sie eine Anmeldung für jedes Mitglied AdherentMailRequired=Für das Anlegen eines neuen Mitglieds ist eine E-Mail-Adresse erforderlich MemberSendInformationByMailByDefault=Das Kontrollkästchen für den automatischen Versand einer E-Mail-Bestätigung an Mitglieder (bei Freigabe oder neuem Abonnement) ist standardmäßig aktiviert MemberCreateAnExternalUserForSubscriptionValidated=Externes Benutzer-Login für jedes validierte neue Mitgliedsabonnement erstellen -VisitorCanChooseItsPaymentMode=Der Besucher kann aus verschiedenen Zahlungsmethoden auswählen +VisitorCanChooseItsPaymentMode=Der Besucher kann aus allen verfügbaren Zahlungsarten wählen MEMBER_REMINDER_EMAIL=Aktivieren Sie die automatische Erinnerung per E-Mail an abgelaufene Abonnements. Hinweis: Das Modul %s muss aktiviert und ordnungsgemäß eingerichtet sein, damit Erinnerungen gesendet werden können. MembersDocModules=Dokumentvorlagen für Dokumente, die aus dem Mitgliedsdatensatz generiert wurden ##### LDAP setup ##### @@ -1486,7 +1506,7 @@ LDAPUsersSynchro=Benutzer LDAPGroupsSynchro=Gruppen LDAPContactsSynchro=Kontakte LDAPMembersSynchro=Mitglieder -LDAPMembersTypesSynchro=Mitgliedsarten +LDAPMembersTypesSynchro=Mitgliedschaftstypen LDAPSynchronization=LDAP-Synchronisation LDAPFunctionsNotAvailableOnPHP=LDAP-Funktionen sind in Ihrer PHP-Konfiguration nicht verfügbar LDAPToDolibarr=LDAP->Dolibarr @@ -1496,7 +1516,7 @@ LDAPSynchronizeUsers=dolibarr-Benutzer mit LDAP synchronisieren LDAPSynchronizeGroups=dolibarr-Gruppen mit LDAP synchronisieren LDAPSynchronizeContacts=dolibarr-Kontakte mit LDAP synchronisieren LDAPSynchronizeMembers=dolibarr-Stiftungsmitglieder mit LDAP synchronisieren -LDAPSynchronizeMembersTypes=Verwalten der Mitgliedsarten via LDAP +LDAPSynchronizeMembersTypes=Verwalten der Mitgliedschaftstypen via LDAP LDAPPrimaryServer=Primärer LDAP-Server LDAPSecondaryServer=Sekundärer LDAP-Server LDAPServerPort=Server-Port @@ -1520,7 +1540,7 @@ LDAPDnContactActive=Kontaktesynchronisation LDAPDnContactActiveExample=Aktivierte/Deaktivierte Synchronisation LDAPDnMemberActive=Mitgliedersynchronisation LDAPDnMemberActiveExample=Aktivierte/Deaktivierte Synchronisation -LDAPDnMemberTypeActive=Mitgliedsarten Synchronisieren +LDAPDnMemberTypeActive=Mitgliedschaftstypen Synchronisieren LDAPDnMemberTypeActiveExample=Aktivierte/Deaktivierte Synchronisation LDAPContactDn=Dolibarr Kontakte DN LDAPContactDnExample=Vollständige DN (zB: ou=users,dc=society,dc=com) @@ -1528,7 +1548,7 @@ LDAPMemberDn=Dolibarr Mitglieder DN LDAPMemberDnExample=Vollständige DN (zB: ou=members,dc=example,dc=com) LDAPMemberObjectClassList=Liste der objectClass LDAPMemberObjectClassListExample=Liste der objectClass-definierenden Eintragsattribute (z.B.: top,inetOrgPerson oder top,user für ActiveDirectory) -LDAPMemberTypeDn=Dolibarr Mitgliedsarten DN +LDAPMemberTypeDn=Dolibarr Mitgliedschaftstypen DN LDAPMemberTypepDnExample=Komplette DN (z.B.: ou=membertypes,dc=example,dc=com) LDAPMemberTypeObjectClassList=Liste der objectClass LDAPMemberTypeObjectClassListExample=Liste der objectClass-definierenden Eintragsattribute(z.B.: top, groupOfUniqueNames) @@ -1662,8 +1682,8 @@ MergePropalProductCard=Aktivieren einer Option unter Produkte/Leistungen Regist ViewProductDescInThirdpartyLanguageAbility=Anzeige von Produktbeschreibungen in Formularen in der Sprache des Partners (sonst in der Sprache des Benutzer) UseSearchToSelectProductTooltip=Wenn Sie eine große Anzahl von Produkten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn der Zeichenkette. UseSearchToSelectProduct=Warte auf Tastendruck, bevor der Inhalt der Produkt-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Produkten haben). -SetDefaultBarcodeTypeProducts=Standard-Code-Typ für Produkte -SetDefaultBarcodeTypeThirdParties=Standard-Code-Typ für Partner +SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte +SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Geschäftspartner UseUnits=Definieren Sie eine Maßeinheit für die Menge während der Auftrags-, Auftragsbestätigungs- oder Rechnungszeilen-Ausgabe ProductCodeChecker= Nummernvergabe für Produkte und Leistungen ProductOtherConf= Weitere Optionen @@ -1721,27 +1741,27 @@ NotificationDisableConfirmMessageContact=Bei Benachrichtigungen die Liste der Em NotificationDisableConfirmMessageUser=Bei Benachrichtigungen die Liste der Empfänger (hinterlegt als Benutzer), die die Benachrichtigung erhalten, nicht anzeigen NotificationDisableConfirmMessageFix=Bei Benachrichtigungen die Liste der Empfänger (hinterlegt als globale E-Mail-Adresse), die die Benachrichtigung erhalten, nicht anzeigen ##### Sendings ##### -SendingsSetup=Einstellungen Modul Versand -SendingsReceiptModel=Versandbelegsvorlage -SendingsNumberingModules=Nummerierungsmodell Auslieferungen +SendingsSetup=Einstellungen Modul Lieferungen +SendingsReceiptModel=Vorlage Versandbeleg (Lieferschein) +SendingsNumberingModules=Numerierungsmodul für Lieferungen SendingsAbility=Unterstützung von Versand-Dokumenten für Kundenlieferungen -NoNeedForDeliveryReceipts=In den meisten Fällen werden Lieferscheine sowohl als Versanddokument (für die Zusammenstellung der Auslieferung), als auch als Zustellscheine, die vom Kunden zu unterschreiben sind, verwendet. Entsprechend sind Empfangsbelege meist eine doppelte und daher nicht verwendete Option. -FreeLegalTextOnShippings=Freier Text auf Lieferungen +NoNeedForDeliveryReceipts=In den meisten Fällen werden Lieferscheine sowohl als Versanddokument (für die Zusammenstellung der Lieferung), als auch als Zustellscheine, die vom Kunden zu unterschreiben sind, verwendet. Entsprechend sind Zustellbestätigungen (Empfangsbelege) meist eine doppelte und daher nicht verwendete Option. +FreeLegalTextOnShippings=Freier Standardtext auf Lieferscheinen ##### Deliveries ##### -DeliveryOrderNumberingModules=Zustellscheinnumerierungs-Module -DeliveryOrderModel=Zustellscheinnumerierung -DeliveriesOrderAbility=Unterstütze Zustellscheine für Produkte -FreeLegalTextOnDeliveryReceipts=Freier Rechtstext auf Empfangsbelegen +DeliveryOrderNumberingModules=Numerierungsschema für Zustellbestätigungen +DeliveryOrderModel=Vorlagen Zustellbestätigung (Empfangsbeleg) +DeliveriesOrderAbility=Unterstütze Zustellbestätigungen (Empfangsbelege) für Produkte +FreeLegalTextOnDeliveryReceipts=Freier Standardtext auf Empfangsbelegen ##### FCKeditor ##### AdvancedEditor=Erweiterter Editor ActivateFCKeditor=FCKEditor aktivieren für: FCKeditorForNotePublic=WYSIWIG Erstellung/Bearbeitung des Feldes "öffentliche Notizen" von Elementen FCKeditorForNotePrivate=WYSIWIG Erstellung/Bearbeitung des Feldes "private Notizen" von Elementen -FCKeditorForCompany=WYSIWIG Erstellung/Bearbeitung der Feldbeschreibung von Elementen (ausgenommen Produkte/Leistungen) -FCKeditorForProduct=WYSIWIG Erstellung/Bearbeitung der Feldbeschreibung Produkte/Leistungen -FCKeditorForProductDetails=WYSIWIG Erstellung / Ausgabe von Produkt-Detailzeilen für alle Dokumente (Vorschläge, Bestellungen, Rechnungen usw.). Warnung: Die Verwendung dieser Option für diesen Fall wird nicht empfohlen, da dies beim Erstellen von PDF-Dateien zu Problemen mit Sonderzeichen und Seitenformatierung führen kann. -FCKeditorForMailing= WYSIWIG Erstellung/Bearbeitung von E-Mails -FCKeditorForUserSignature=WYSIWIG Erstellung/Bearbeitung von Benutzer-Signaturen +FCKeditorForCompany=WYSIWYG Erstellung/Bearbeitung der Feldbeschreibung von Elementen (ausgenommen Produkte/Leistungen) +FCKeditorForProductDetails=WYSIWIG Erstellung/Bearbeitung von Produktbeschreibungen oder Zeilen für Objekte (Angebotszeilen, Bestellungen, Rechnungen usw.). +FCKeditorForProductDetails2=Warnung: Von der Verwendung dieser Option für diese Anwendung wird dringend abgeraten, da es beim Erstellen von PDF-Dateien zu Problemen mit Sonderzeichen und der Seitenformatierung kommen kann. +FCKeditorForMailing= WYSIWYG Erstellung/Bearbeitung von E-Mails +FCKeditorForUserSignature=WYSIWYG Erstellung/Bearbeitung von Benutzer-Signaturen FCKeditorForMail=WYSIWYG-Erstellung/Bearbeitung für alle E-Mails (außer Werkzeuge->eMailing) FCKeditorForTicket=WYSIWYG-Erstellung/Bearbeitung von Tickets ##### Stock ##### @@ -1762,7 +1782,7 @@ DetailMenuHandler=Menü-Handler für die Anzeige des neuen Menüs DetailMenuModule=Modulname falls Menüeintrag aus einem Modul stimmt DetailType=Art des Menüs (Top oder Links) DetailTitre=Menü Label oder Label für Übersetzung -DetailUrl=Ziel-URL für Menüeintrag (Absolute URL oder externer Link mit http://) +DetailUrl=Ziel-URL für Menüeintrag (Relative URL oder externer Link mit http://) DetailEnabled=Einstellungen für die Anzeige der Einträge DetailRight=Zustand für die Anzeige nicht-authorisierter, grauer Menüs DetailLangs=Sprachdateiname für Label Übersetzung @@ -1798,7 +1818,7 @@ AccountancyCodeSell=Verkaufskonto-Code AccountancyCodeBuy=Einkaufskonto-Code CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Lassen Sie das Kontrollkästchen "Zahlung automatisch erstellen" beim Erstellen einer neuen Steuer standardmäßig leer ##### Agenda ##### -AgendaSetup=Einstellungen Modul Aufgaben/Termine +AgendaSetup=Einstellungen Modul Agenda (Ereignisse/Termine) PasswordTogetVCalExport=Passwort für den VCal-Export SecurityKey = Sicherheitsschlüssel PastDelayVCalExport=Keine Termine exportieren die älter sind als @@ -1819,21 +1839,21 @@ ClickToDialDesc=Dieses Modul formatiert Telefonnummern als direkt anklickbare Li ClickToDialUseTelLink=Nur einen Link "Tel:" bei Telefonnummern verwenden ClickToDialUseTelLinkDesc=Verwenden Sie diese Methode, wenn Ihre Benutzer ein Software-Telefon oder ein Interface für ein Telefon auf demselben Computer installiert haben, auf dem der Browser läuft. Dieses Telefon/Interface wird aufgerufen, wenn Sie im Browser auf einen Link klicken, der mit "tel:" beginnt. Wenn Sie einen Link verwenden wollen, der mit "sip:" beginnt, oder wenn Sie eine vollständige Serverlösung nutzen (ohne lokale Software-Installation), wählen Sie hier "Nein" und füllen das nächste Feld aus.\n ##### Point Of Sale (CashDesk) ##### -CashDesk=Kasse -CashDeskSetup=Kassenmoduleinstellungen -CashDeskThirdPartyForSell=Standardpartner für Kassenverkäufe -CashDeskBankAccountForSell=Standard-Bargeldkonto für Kassenverkäufe (erforderlich) -CashDeskBankAccountForCheque=Standardfinanzkonto für Scheckeinlösungen -CashDeskBankAccountForCB=Finanzkonto für die Einlösung von Bargeldzahlungen via Kreditkarte -CashDeskBankAccountForSumup=Standard-Bankkonto zum Empfangen von Zahlungen von SumUp -CashDeskDoNotDecreaseStock=Deaktiviere Lagerabgangsbuchung wenn ein Verkauf auf einem Point of Sale durchgeführt wird\n (wenn "Nein", wird die Lagerabgangsbuchung immer durchgeführt , auch wann im Modul Produktbestandsverwaltung was anderes ausgewählt wurde). -CashDeskIdWareHouse=Lager für Entnahmen festlegen und und erzwingen +CashDesk=Kassenterminal +CashDeskSetup=Einstellungen Modul POS/Registrierkasse +CashDeskThirdPartyForSell=Standard-Geschäftspartner für Kassenverkäufe +CashDeskBankAccountForSell=Standardkonto Kasse für Barzahlungen +CashDeskBankAccountForCheque=Standardkonto für Zahlungen per Scheck +CashDeskBankAccountForCB=Standardkonto für Zahlungen per Kreditkarte +CashDeskBankAccountForSumup=Standardbankkonto zum Empfangen von Zahlungen von SumUp +CashDeskDoNotDecreaseStock=Deaktiviere Lagerabgangsbuchung wenn ein Verkauf an einem Point of Sale erfolgt\n(bei "Nein" wird die Lagerabgangsbuchung immer durchgeführt, auch wenn im Modul 'Lagerverwaltung' eine andere Einstellung gewählt wurde). +CashDeskIdWareHouse=Lager für Entnahmen festlegen und erzwingen StockDecreaseForPointOfSaleDisabled=Lagerrückgang bei Verwendung von Point of Sale deaktiviert StockDecreaseForPointOfSaleDisabledbyBatch=Die Bestandsreduzierung am POS ist nicht mit dem Modul Serial / Lot Management (derzeit aktiv) kompatibel, sodass die Bestandsreduzierung deaktiviert ist. CashDeskYouDidNotDisableStockDecease=Sie haben die Reduzierung der Lagerbestände nicht deaktiviert, wenn Sie einen Verkauf auf dem Point of Sale durchführen.\nAuch ist ein Lager/Standort notwendig. CashDeskForceDecreaseStockLabel=Eine Bestandsreduktion für Produktposten wurde erzwungen. CashDeskForceDecreaseStockDesc=Verringern Sie zuerst ausgehend vom ältesten Mindesthaltbarkeitsdatum oder Verbrauchsdatum. -CashDeskReaderKeyCodeForEnter=Schlüsselcode für "Enter" im Barcodeleser definiert (Beispiel: 13) +CashDeskReaderKeyCodeForEnter=Im Barcode-Leser definierter ASCII-Code für „Enter“-Taste (Beispiel: ASCII-Code 13) ##### Bookmark ##### BookmarkSetup=Lesezeichen-Moduleinstellungen BookmarkDesc=Dieses Modul ermöglicht die Verwaltung von Lesezeichen. Außerdem können Sie hiermit Verknüpfungen zu internen und externen Seiten im linken Menü anlegen. @@ -1861,7 +1881,7 @@ BankOrderES=Spanisch BankOrderESDesc=Spanische Anzeigereihenfolge ChequeReceiptsNumberingModule=Modul zur Nummerierung von Belegen prüfen ##### Multicompany ##### -MultiCompanySetup=Einstellungen Modul Multi-Company (Mandanten) +MultiCompanySetup=Einstellungen Modul Mandanten ##### Suppliers ##### SuppliersSetup=Einstellungen Modul Lieferanten SuppliersCommandModel=Vollständige Vorlage für Lieferantenbestellungen @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Lieferantenrechnungen Zähl-Modell IfSetToYesDontForgetPermission=Wenn ein Wert ungleich Null festgelegt ist, vergessen Sie nicht, Berechtigungen für Gruppen oder Benutzer bereitzustellen, die für die zweite Genehmigung zugelassen sind ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP-Maxmind Moduleinstellungen -PathToGeoIPMaxmindCountryDataFile=Pfad zu der Datei, welche die Maxmind IP-zu-Land Umwandlungs-Informationen enthält.
    Beispiele:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Pfad zur Maxmind-Datei mit der Zuordnung von IPs zu Ländern NoteOnPathLocation=Bitte beachten Sie, dass Ihre IP-Länder-Datei in einem von PHP lesbaren Verzeichnis liegen muss (Überprüfen Sie Ihre PHP open_basedir-Einstellungen und die Dateisystem-Berechtigungen). YouCanDownloadFreeDatFileTo=Eine kostenlose Demo-Version der Maxmind-GeoIP Datei finden Sie hier: %s YouCanDownloadAdvancedDatFileTo=Eine vollständigere Version mit Updates der Maxmind-GeoIP Datei können Sie hier herunterladen: %s @@ -1922,6 +1942,7 @@ BackupDumpWizard=Assistent zum Erstellen der Datenbank-Dump-Datei BackupZipWizard=Assistent zum Erstellen eines Archivs des Dokumentenverzeichnisses SomethingMakeInstallFromWebNotPossible=Die Installation von dem externen Modul ist aus folgenden Gründen vom Web-Interface nicht möglich: SomethingMakeInstallFromWebNotPossible2=Aus diesem Grund ist der hier beschriebene Aktualisierungsvorgang ein manueller Vorgang, den nur ein privilegierter Benutzer ausführen kann. +InstallModuleFromWebHasBeenDisabledContactUs=Die Installation oder Entwicklung externer Module oder dynamischer Websites aus der Anwendung ist derzeit aus Sicherheitsgründen gesperrt. Bitte kontaktieren Sie uns, wenn Sie diese Funktion benötigen. InstallModuleFromWebHasBeenDisabledByFile=Installieren von externen Modul aus der Anwendung wurde von Ihrem Administrator deaktiviert. \nSie müssen ihn bitten, die Datei%s zu entfernen, um diese Funktion zu ermöglichen. ConfFileMustContainCustom=Um ein externes Modul zu erstellen oder installieren, müssen die Modul Dateien im Verzeichnis %s gespeichert werden. Damit dieses Verzeichnis durch Dolibarr verwendet wird, muss in den Einstellungen conf/conf.php die folgenden 2 Zeilen hinzugefügt werden:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Drücken Sie CTRL+F5 auf der Tastatur oder löschen Sie NotSupportedByAllThemes=Funktioniert mit dem Standard-Designvorlagen: wird möglicherweise nicht von externen Designvorlagen unterstützt BackgroundColor=Hintergrundfarbe TopMenuBackgroundColor=Hintergrundfarbe für Hauptmenü -TopMenuDisableImages=Symbole im oberen Menü ausblenden. +TopMenuDisableImages=Icon oder Text im oberen Menü LeftMenuBackgroundColor=Hintergrundfarbe für Menü Links BackgroundTableTitleColor=Hintergrundfarbe für Titelzeilen in Tabellen BackgroundTableTitleTextColor=Textfarbe der Tabellenüberschrift @@ -1949,7 +1970,7 @@ EnterAnyCode=Dieses Feld enthält eine Referenz zur Identifizierung der Zeile. G Enter0or1=Gib 0 oder 1 ein UnicodeCurrency=Geben Sie hier zwischen geschweiften Klammern die Liste der Bytes ein, die das Währungssymbol darstellen. Zum Beispiel: Geben Sie für $ [36] ein - für brasilianische Real-R $ [82,36] - geben Sie für € [8364] ein ColorFormat=Die RGB Farben sind im Hexformat, zB. FF0000 -PictoHelp=Name für Icon im Format:
    - image.png für eine Bilddatei im aktuellen Theme-Verzeichnis
    - image.png@module wenn die Datei im Verzeichnis /img/ eines Moduls liegt
    - fa-xxx für ein FontAwesome fa-xxx Symbol
    - fonwtawesome_xxx_fa_color_size für ein FontAwesome fa-xxx Symbol (mit festgelegtem Präfix, Farbe und Größe) +PictoHelp=Name für Icon im Format:
    - image.png für eine Bilddatei im aktuellen Theme-Verzeichnis
    - image.png@module wenn die Datei im Verzeichnis /img/ eines Moduls liegt
    - fa-xxx für ein FontAwesome fa-xxx Symbol
    - fontawesome_xxx_fa_color_size für ein FontAwesome fa-xxx Symbol (mit festgelegtem Präfix, Farbe und Größe) PositionIntoComboList=Zeilenposition in der Combo-Listen SellTaxRate=Umsatzsteuersatz RecuperableOnly=Ja für USt. "Wahrgenommene nicht Erstattungsfähig" für einige Regionen in Frankreich. Nein für alle anderen Fälle. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Lieferantenbestellungen MailToSendSupplierInvoice=Lieferantenrechnungen MailToSendContract=Verträge MailToSendReception=Wareneingänge +MailToExpenseReport=Spesenabrechnungen MailToThirdparty=Geschäftspartner MailToMember=Mitglieder MailToUser=Benutzer @@ -1988,7 +2010,7 @@ TitleExampleForMajorRelease=Beispielnachricht, die Sie nutzen können, um eine H TitleExampleForMaintenanceRelease=Beispielnachricht, die Sie nutzen können, um ein Wartungsupdate anzukündigen. Sie können diese auf Ihrer Website verwenden. ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s ist verfügbar. Version %s ist eine Hauptversion mit vielen neuen Features für Benutzer und Entwickler. Sie können die Version aus dem Download-Bereich des Portals https://www.dolibarr.org laden (Unterverzeichnis "stabile Versionen"). Lesen Sie die komplette Liste der Änderungen. ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s ist verfügbar. Version %s ist ein Wartungsupdate, das nur Fehlerbereinigungen enthält. Wir empfehlen allen Benutzern ein Upgrade auf diese Version. Wie bei jedem Wartungsupdate sind keinen neuen Features oder Änderungen in den Datenstrukturen enthalten. Sie können die Version aus dem Downloadbereich des Portals https://www.dolibarr.org laden (Unterverzeichnis "stabile Versionen"). Lesen Sie die komplette Liste der Änderungen im ChangeLog. -MultiPriceRuleDesc=Wenn die Option "Mehrere Preisstufen pro Produkt / Dienstleistung" aktiviert ist, können Sie für jedes Produkt unterschiedliche Preise definieren (einen pro Preisstufe). Um Zeit zu sparen, können Sie hier eine Regel eingeben, um einen Preis für jede Ebene auf der Grundlage des Preises der ersten Ebene automatisch zu berechnen, sodass Sie für jedes Produkt nur einen Preis für die erste Ebene eingeben müssen. Diese Seite soll Ihnen Zeit sparen, ist jedoch nur dann nützlich, wenn Ihre Preise für jedes Level im Verhältnis zum ersten Level stehen. Sie können diese Seite in den meisten Fällen ignorieren. +MultiPriceRuleDesc=Wenn die Option "Mehrere Preisstufen pro Produkt/Leistung" aktiviert ist, können Sie für jedes Produkt unterschiedliche Preise definieren (einen pro Preisstufe). Um Zeit zu sparen, können Sie hier eine Regel eingeben, um einen Preis für jede Preisstufe auf der Grundlage des Preises der ersten Preisstufe automatisch zu berechnen, sodass Sie für jedes Produkt nur einen Preis für die erste Preisstufe eingeben müssen. Diese Seite soll Ihnen Zeit sparen, ist jedoch nur dann nützlich, wenn Ihre Preise für jedes Level im Verhältnis zum ersten Level stehen. Sie können diese Seite in den meisten Fällen ignorieren. ModelModulesProduct=Vorlagen für Produktdokumente WarehouseModelModules=Vorlagen für Lagerdokumente ToGenerateCodeDefineAutomaticRuleFirst=Um Codes automatisch generieren zu können, muß zuerst ein Manager für die automatische Generierung von Barcode-Nummer festgelegt werden. @@ -2016,7 +2038,7 @@ UrlToGetKeyToUseAPIs=URL zum Abrufen des Tokens zur Verwendung der API (sobald d ListOfAvailableAPIs=Liste von verfügbaren APIs activateModuleDependNotSatisfied=Das Modul "%s" hängt vom fehlenden Modul "%s" ab, sodass das Modul "%1$s" möglicherweise nicht ordnungsgemäß funktioniert. Bitte installieren Sie das Modul "%2$s" oder deaktivieren Sie das Modul "%1$s", um vor Überraschungen bewahrt zu werden CommandIsNotInsideAllowedCommands=Das Kommando, das Sie versucht haben auszuführen, ist nicht in der Liste der erlaubten Kommandos enthalten. Diese ist im Parameter $dolibarr_main_restrict_os_commands in der Datei conf.php definiert. -LandingPage=Einstiegsseite +LandingPage=Startseite SamePriceAlsoForSharedCompanies=Wenn Sie ein Multicompany-Modul mit der Auswahl "Einzelpreis" verwenden, ist der Preis auch für alle Unternehmen gleich, wenn Produkte zwischen Umgebungen geteilt werden ModuleEnabledAdminMustCheckRights=Das Modul wurde aktiviert. Die Berechtigungen für aktiviertes Modul(e) wurden nur für den/die Administrator/Gruppe vergeben. Möglicherweise müssen Sie anderen Benutzern oder Gruppen bei Bedarf manuell Berechtigungen erteilen. UserHasNoPermissions=Dieser Benutzer hat keine Rechte @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Rechter Rand im PDF MAIN_PDF_MARGIN_TOP=Oberer Rand im PDF MAIN_PDF_MARGIN_BOTTOM=Unterer Rand im PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Höhe des Logos im PDF +DOC_SHOW_FIRST_SALES_REP=Ersten Vertriebsmitarbeiter anzeigen MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Spalte für Bild in Angebotspositionen hinzufügen MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Breite der Spalte, wenn den Positionen ein Bild hinzugefügt wird MAIN_PDF_NO_SENDER_FRAME=Rahmen des Absenderadressbereichs ausblenden @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Sonderzeichen entfernen COMPANY_AQUARIUM_CLEAN_REGEX=Regexfilter um die Werte zu Bereinigen (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex-Filter zum Bereinigen des Werts (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Doppelte Einträge sind nicht erlaubt +RemoveSpecialWords=Löschen Sie bestimmte Wörter, wenn Sie Unterkonten für Kunden oder Lieferanten erstellen +RemoveSpecialWordsHelp=Geben Sie die vor der Benennung des Kunden- oder Lieferantenkontos zu entfernenden Wörter an. Ein ";" zwischen jedem Wort verwenden. GDPRContact=Datenschutzbeauftragte(r) GDPRContactDesc=Wenn Sie personenbezogene Daten in Ihrem Informationssystem speichern, können Sie hier den für die Datenschutz-Grundverordnung (DSGVO) zuständigen Ansprechpartner benennen HelpOnTooltip=Anzeigen des Hilfetextes im Tooltip @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Hinweis: Die Option zur Verwendung von Umsatzsteuer oder Mehrwert SwapSenderAndRecipientOnPDF=Tausche Position der Absender- und Empfängeradresse in PDF-Dokumenten FeatureSupportedOnTextFieldsOnly=Warnung, Funktion wird nur in Textfeldern und Kombinationslisten unterstützt. Außerdem muss ein URL-Parameter action = create oder action = edit festgelegt werden ODER der Seitenname muss mit 'new.php' enden, um diese Funktion auszulösen. EmailCollector=eMail-Collector +EmailCollectors=E-Mail-Kollektoren EmailCollectorDescription=Fügt einen geplanten Auftrag und eine Einrichtungsseite hinzu, um regelmäßig E-Mail-Postfächer (unter Verwendung des IMAP-Protokolls) zu scannen und E-Mails, die in Ihrer Anwendung eingegangen sind, am richtigen Ort aufzuzeichnen und / oder einige Datensätze automatisch zu erstellen (z. B. Leads). NewEmailCollector=Neuer eMail-Colletor EMailHost=Hostname des IMAP-Servers +EMailHostPort=Port des E-Mail-IMAP-Servers +loginPassword=Login/Passwort +oauthToken=Oauth2-Token +accessType=Zugriffstyp +oauthService=Oauth-Dienst +TokenMustHaveBeenCreated=Das Modul OAuth2 muss aktiviert sein und ein Oauth2-Token muss mit den richtigen Berechtigungen erstellt worden sein (z. B. Geltungsbereich „gmail_full“ bei OAuth für Gmail). MailboxSourceDirectory=Quellverzechnis des eMail-Kontos MailboxTargetDirectory=Zielverzechnis des eMail-Kontos EmailcollectorOperations=Aktivitäten, die der eMail-Collector ausführen soll EmailcollectorOperationsDesc=Operationen werden von oben nach unten ausgeführt MaxEmailCollectPerCollect=Maximale Anzahl an einzusammelnden E-Mails je Collect-Vorgang +TestCollectNow=Collect testen CollectNow=Jetzt abrufen ConfirmCloneEmailCollector=Möchten Sie den E-Mail-Collector %s wirklich duplizieren? DateLastCollectResult=Datum des letzten eMail-Collect-Versuchs DateLastcollectResultOk=Datum des letzten, erfolgreichen eMail-Collect LastResult=Letztes Ergebnis EmailCollectorHideMailHeaders=Den Inhalt des E-Mail-Headers nicht im gespeicherten Inhalt gesammelter E-Mails einschließen -EmailCollectorHideMailHeadersHelp=Wenn diese Option aktiviert ist, werden E-Mail-Header nicht am Ende des als Ereignis gespeicherten E-Mail-Inhalts hinzugefügt. +EmailCollectorHideMailHeadersHelp=Wenn diese Option aktiviert ist, werden E-Mail-Kopfzeilen nicht am Ende des E-Mail-Inhalts hinzugefügt, der als Agenda-Ereignis gespeichert wird. EmailCollectorConfirmCollectTitle=eMail-Collect-Bestätigung EmailCollectorConfirmCollect=Möchten Sie diesen Collector jetzt ausführen? EmailCollectorExampleToCollectTicketRequestsDesc=Erfassen Sie E-Mails, die bestimmten Regeln entsprechen, und erstellen Sie automatisch ein Ticket (Modul Ticket muss aktiviert sein) mit den E-Mail-Informationen. Sie können diesen Collector verwenden, wenn Sie Unterstützung per E-Mail leisten, so dass aus der Anfrage automatisch ein Ticket generiert wird. Aktivieren Sie auch Collect_Responses, um Antworten Ihrer Kunden direkt in der Ticket-Ansicht zu sammeln (Sie müssen von Dolibarr aus antworten). EmailCollectorExampleToCollectTicketRequests=Beispiel für das Erfassen der Ticket-Anforderung (nur die erste Nachricht) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Durchsuchen Sie das „Gesendet“-Verzeichnis Ihres Postfachs, um E-Mails zu finden, die als Antwort auf eine andere E-Mail direkt von Ihrer E-Mail-Software und nicht von Dolibarr gesendet wurden. Wird eine solche E-Mail gefunden, wird das Antwortereignis in Dolibarr protokolliert EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Beispiel zum Sammeln von E-Mail-Antworten, die von einer externen E-Mail-Software gesendet wurden -EmailCollectorExampleToCollectDolibarrAnswersDesc=Sammeln Sie alle E-Mails, die eine Antwort auf eine von Dolibarr gesendeten E-Mail sind. Ein Ereignis (Modul Ereignisse muss aktiviert sein) mit der E-Mail-Antwort wird aufgezeichnet. Wenn Sie beispielsweise ein Angebot, eine Bestellung, eine Rechnung oder eine Nachricht für ein Ticket per E-Mail aus der Anwendung senden und Ihr Kunde auf Ihre E-Mail antwortet, erfasst das System automatisch die Antwort und fügt sie in Ihrem ERP-System hinzu. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Sammeln Sie alle E-Mails, die eine Antwort auf eine E-Mail sind, die aus Ihrer Anwendung gesendet wurde. Ein Ereignis (Modul Agenda muss aktiviert sein) mit der E-Mail-Antwort wird am zugehörigen Ort erfasst. Wenn Sie beispielsweise ein Angebot, eine Bestellung, eine Rechnung oder eine Nachricht für ein Ticket per E-Mail aus der Anwendung senden und der Empfänger auf Ihre E-Mail antwortet, erfasst das System automatisch die Antwort und fügt sie in Ihrem ERP hinzu. EmailCollectorExampleToCollectDolibarrAnswers=Beispiel für das Sammeln aller eingehenden Nachrichten, die Antworten auf Nachrichten sind, die von Dolibarr gesendet wurden. EmailCollectorExampleToCollectLeadsDesc=Sammeln Sie E-Mails, die bestimmten Regeln entsprechen und erstellen Sie automatisch einen Lead (Modul Projekt muss aktiviert sein) mit den E-Mail-Informationen. Sie können diesen Collector verwenden, wenn Sie Ihren Lead mit dem Modul Projekt (1 Lead = 1 Projekt) verfolgen möchten, um Ihre Leads automatisch zu generieren. Wenn der Collector Collect_Responses ebenfalls aktiviert ist, sehen Sie beim Senden einer E-Mail von Ihren Leads, Angeboten oder anderen Objekten möglicherweise auch die Antworten Ihrer Kunden oder Partner direkt in der Anwendung.
    Hinweis: Bei diesem ersten Beispiel wird der Titel des Leads inklusive E-Mail generiert. Wenn der Geschäftspartner nicht in der Datenbank gefunden werden kann (Neukunde), wird der Lead dem Geschäftspartner mit der ID 1 zugeordnet. EmailCollectorExampleToCollectLeads=Beispiel für das Sammeln von Leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Sammeln Sie E-Mails, die Bewer EmailCollectorExampleToCollectJobCandidatures=Beispiel für das Sammeln von per E-Mail erhaltenen Stellenbewerbungen NoNewEmailToProcess=Keine neue e-Mail (passende Filter) zum Verarbeiten NothingProcessed=Nicht ausgeführt -XEmailsDoneYActionsDone=%sE-Mail(s) qualifiziert, %s E-Mail(s) erfolgreich verarbeitet (für %s Aufzeichnung(en) / Aktion(en) durchgeführt) +XEmailsDoneYActionsDone=%s E-Mails vorqualifiziert, %s E-Mails erfolgreich verarbeitet (für %s Aufzeichnung(en)/Aktion(en) durchgeführt) RecordEvent=Zeichnen Sie ein Ereignis in der Agenda auf (mit dem Typ der gesendeten oder empfangen E-Mail) CreateLeadAndThirdParty=Erstellen Sie einen Lead (und ggf. einen Geschäftspartner) CreateTicketAndThirdParty=Ticket erstellen (verknüpft mit einem Geschäftspartner, wenn der Geschäftspartner durch einen vorherigen Vorgang geladen oder aus einem Tracker im E-Mail-Header ermittelt wurde, ansonsten ohne Geschäftspartner) @@ -2105,7 +2138,7 @@ CreateCandidature=Stellen-Bewerbung erstellen FormatZip=Zip MainMenuCode=Menüpunktcode (Hauptmenü) ECMAutoTree=Automatischen ECM-Baum anzeigen -OperationParamDesc=Definieren Sie die Regeln, die zum Extrahieren oder Festlegen von Werten verwendet werden sollen.
    Beispiel für Operationen, die einen Namen aus dem E-Mail-Betreff extrahieren:
    name=EXTRACT:SUBJECT:Message_from_company ([^]*)
    Beispiel für Operationen, die Objekte erstellen:
    objproperty1=SET:der_zu_setzende_Wert
    objproperty2=SET:ein_Wert,_der_auch__objproperty1__ enthalten_kann
    obproperty3=SETIFEMPTY:verwendeter_Wert_wenn_objproperty3_nicht_definiert_ist
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Mein Firmenname ist\\s( [^\\s]*)

    Verwenden Sie ein ; als Trennzeichen, um mehrere Eigenschaften zu extrahieren oder festzulegen. +OperationParamDesc=Definieren Sie die Regeln, die verwendet werden sollen, um einige Daten zu extrahieren, oder legen Sie Werte fest, die für den Vorgang verwendet werden sollen.

    Beispiel zum Extrahieren eines Firmennamens aus dem E-Mail-Betreff in eine temporäre Variable:
    tmp_var=EXTRACT:SUBJECT:Nachricht von Firma ([^\n]*)

    Beispiele zum Festlegen der Eigenschaften eines zu erstellenden Objekts:
    objproperty1=SET:ein hartcodierter Wert
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:ein Wert (Wert wird nur gesetzt, wenn die Property nicht schon definiert ist)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My Firmenname ist\\s([^\\s]*)

    Verwenden Sie ein Semikolon ; als Trennzeichen, um mehrere Eigenschaften zu extrahieren oder festzulegen. OpeningHours=Öffnungszeiten OpeningHoursDesc=Geben sie hier die regulären Öffnungszeiten ihres Unternehmens an. ResourceSetup=Konfiguration vom Ressourcenmodul @@ -2167,6 +2200,10 @@ EmailTemplate=E-Mail-Vorlage EMailsWillHaveMessageID=E-Mails haben ein Schlagwort "Referenzen", das dieser Syntax entspricht PDF_SHOW_PROJECT=Projekt im Dokument anzeigen ShowProjectLabel=Projektbezeichnung +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Den Namen des Geschäftspartners um Alias ergänzen +THIRDPARTY_ALIAS=Name Geschäftspartner - Alias Geschäftspartner +ALIAS_THIRDPARTY=Alias Geschäftspartner - Name Geschäftspartner +PDFIn2Languages=Beschreibungen im PDF in zwei verschiedenen Sprachen anzeigen PDF_USE_ALSO_LANGUAGE_CODE=Wenn Sie möchten, dass einige Texte in Ihrem PDF in 2 verschiedenen Sprachen in demselben generierten PDF dupliziert werden, müssen Sie hier diese zweite Sprache festlegen, damit das generierte PDF zwei verschiedene Sprachen auf derselben Seite enthält, die beim Generieren von PDF ausgewählte und diese (dies wird nur von wenigen PDF-Vorlagen unterstützt). Für 1 Sprache pro PDF leer halten. PDF_USE_A=PDF-Dokumente im Format PDF/A erstellen anstelle des Standardformats PDF FafaIconSocialNetworksDesc=Geben Sie hier den Code für ein FontAwesome-Icon ein. Wenn Sie FontAwesome nicht kennen, können Sie den Standard 'fa-address-book' benutzen. @@ -2200,7 +2237,7 @@ NoWritableFilesFoundIntoRootDir=In Ihrem Stammverzeichnis wurden keine beschreib RecommendedValueIs=Empfohlen: %s Recommended=Empfohlen NotRecommended=Nicht empfohlen -ARestrictedPath=Eingeschränkter Pfad +ARestrictedPath=Eingeschränkter Pfad für Datendateien CheckForModuleUpdate=Suchen Sie nach Updates für externe Module CheckForModuleUpdateHelp=Diese Aktion stellt eine Verbindung zu Editoren externer Module her, um zu überprüfen, ob eine neue Version verfügbar ist. ModuleUpdateAvailable=Eine Aktualisierung ist verfügbar @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Keine Updates für externe Module gefunden SwaggerDescriptionFile=Swagger API-Beschreibungsdatei (zum Beispiel zur Verwendung mit Redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Sie haben die veraltete WS-API aktiviert. Sie sollten stattdessen die REST-API verwenden. RandomlySelectedIfSeveral=Zufallsauswahl, wenn mehrere Bilder vorhanden sind +SalesRepresentativeInfo=Für Angebote, Aufträge, Rechnungen. DatabasePasswordObfuscated=Das Datenbankpasswort ist in der conf-Datei verschleiert DatabasePasswordNotObfuscated=Das Datenbankpasswort ist in der conf-Datei NICHT verschleiert APIsAreNotEnabled=Es sind keine API-Module aktiviert. @@ -2247,14 +2285,22 @@ LateWarningAfter=Warnung "verspätet" nach TemplateforBusinessCards=Vorlage für eine Visitenkarte in unterschiedlicher Größe InventorySetup= Bestandsaufnahme einrichten ExportUseLowMemoryMode=Verwenden Sie einen Low-Memory-Modus -ExportUseLowMemoryModeHelp=Verwenden Sie den Low-Memory-Modus, um den Dump zu erstellen (die Komprimierung erfolgt durch eine Pipe statt im PHP-Speicher). Mit dieser Methode kann nicht überprüft werden, ob die Datei vollständig ist, und es kann keine Fehlermeldung ausgeben werden, wenn der Vorgang fehlschlägt. +ExportUseLowMemoryModeHelp=Verwenden Sie den Low-Memory-Modus, um die Dump-Datei zu generieren (die Komprimierung erfolgt über eine Pipe statt in den PHP-Speicher). Mit dieser Methode kann nicht überprüft werden, ob die Datei vollständig ist, und es kann keine Fehlermeldung gemeldet werden, wenn der Vorgang fehlschlägt. Verwenden Sie diesen Modus, wenn Sie die Fehlermeldung "nicht genügend Speicher" erhalten. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Schnittstelle zum Abfangen von Dolibarr-Triggern und zum Senden an eine URL +WebhookSetup = Webhook-Einrichtung +Settings = Einstellungen +WebhookSetupPage = Webhook-Einrichtungsseite ShowQuickAddLink=Eine Schaltfläche zum schnellen Hinzufügen eines Elements im oberen rechten Menü anzeigen + HashForPing=Für den Ping verwendeter Hash ReadOnlyMode=Ist eine Instanz im "Read Only"-Modus DEBUGBAR_USE_LOG_FILE=Die Datei dolibarr.log verwenden, um Protokolldaten zu erfassen UsingLogFileShowAllRecordOfSubrequestButIsSlower=Verwenden Sie die Datei dolibarr.log, um Protokolldaten zu erfassen, anstatt sie im Speicher aufzuzeichnen. Dies ermöglicht, alle Protokolldaten aufzuzeichnen, anstatt nur die Protokolldaten des aktuellen Prozesses (also einschließlich der Ajax-Requests auf den Seiten), aber Ihre Instanz wird sehr, sehr langsam. Nicht empfohlen. FixedOrPercent=Absolut (verwenden Sie das Schlüsselwort 'fixed') oder prozentual (verwenden Sie das Schlüsselwort 'percent') DefaultOpportunityStatus=Standard-Opportunity-Status (erster Status, wenn Interessent/Lead erstellt wird) + IconAndText=Icon und Text TextOnly=Nur Text IconOnlyAllTextsOnHover=Nur Icon - Alle Texte erscheinen unter dem Icon, wenn Sie mit der Maus über die Menüleiste fahren @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Nur Icon – Der Text des Icons wird angezeigt, wenn Sie mit IconOnly=Nur Icon - Der Text wird als Tooltipp angezeigt INVOICE_ADD_ZATCA_QR_CODE=Den ZATCA-QR-Code auf Rechnungen anzeigen INVOICE_ADD_ZATCA_QR_CODEMore=Einige arabische Länder benötigen diesen QR-Code auf ihren Rechnungen +INVOICE_ADD_SWISS_QR_CODE=Schweizer QR-Rechnungscode auf Rechnungen anzeigen +INVOICE_SHOW_SHIPPING_ADDRESS=Lieferadresse anzeigen +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligatorische Angabe für Frankreich UrlSocialNetworksDesc=URL-Link des sozialen Netzwerks. Verwenden Sie {socialid} für den variablen Teil, der die ID des sozialen Netzwerks enthält. +IfThisCategoryIsChildOfAnother=Wenn diese Kategorie unterhalb einer anderen ist +DarkThemeMode=Dark Theme-Modus +AlwaysDisabled=Immer deaktiviert +AccordingToBrowser=Je nach Browser +AlwaysEnabled=Immer aktiviert +DoesNotWorkWithAllThemes=Funktioniert nicht mit allen Themes +NoName=Kein Name +ShowAdvancedOptions= Erweiterte Optionen anzeigen +HideAdvancedoptions= Erweiterte Optionen ausblenden +CIDLookupURL=Das Modul bringt eine URL mit, die von einem externen Tool verwendet werden kann, um den Namen eines Geschäftspartners oder Kontakts aus seiner Telefonnummer zu ermitteln. Zu verwendende URL ist: +OauthNotAvailableForAllAndHadToBeCreatedBefore=Die OAUTH2-Authentifizierung ist nicht für alle Hosts verfügbar, und ein Token mit den richtigen Berechtigungen muss im Vorfeld mit dem OAUTH-Modul erstellt worden sein +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2-Authentifizierungsdienst +DontForgetCreateTokenOauthMod=Ein Token mit den richtigen Berechtigungen muss zuvor mit dem OAUTH-Modul erstellt worden sein +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentifizierungsmethode +UsePassword=Passwort verwenden +UseOauth=OAUTH-Token verwenden +Images=Bilder +MaxNumberOfImagesInGetPost=Maximal zulässige Anzahl von Bildern, die in einem HTML-Feld in einem Formular eingefügt werden können +MaxNumberOfPostOnPublicPagesByIP=Maximale Anzahl von Beiträgen auf öffentlichen Seiten mit derselben IP-Adresse in einem Monat +CIDLookupURL=Das Modul bringt eine URL mit, die von einem externen Tool verwendet werden kann, um den Namen eines Geschäftspartners oder Kontakts aus seiner Telefonnummer zu ermitteln. Zu verwendende URL ist: +ScriptIsEmpty=Das Skript ist leer +ShowHideTheNRequests=Anzeigen/Ausblenden der %s-SQL-Anfrage(n) +DefinedAPathForAntivirusCommandIntoSetup=Dateipfad zu Antivirenprogramm in %s +TriggerCodes=Triggerbare Ereignisse +TriggerCodeInfo=Geben Sie hier den/die Triggercode(s) ein, der/die das Auslösen einer Webanfrage generieren muss (nur externe URLs sind erlaubt). Sie können mehrere Triggercodes durch Komma getrennt eingeben. +EditableWhenDraftOnly=Wenn diese Option deaktiviert ist, kann der Wert nur geändert werden, wenn sich das Objekt im Entwurfsstatus befindet +CssOnEdit=CSS auf Bearbeitungsseiten +CssOnView=CSS auf Ansichtsseiten +CssOnList=CSS auf Listenseiten +HelpCssOnEditDesc=Beim Bearbeiten des Feldes verwendetes CSS.
    Beispiel: „minwiwdth100 maxwidth500 widthcentpercentminusx“ +HelpCssOnViewDesc=Beim Anzeigen des Feldes verwendetes CSS. +HelpCssOnListDesc=CSS, das verwendet wird, wenn sich das Feld in einer Listentabelle befindet.
    Beispiel: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Bestellte Menge auf den generierten Belegen für den Empfang ausblenden +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Anzeige des Preises auf den generierten Dokumenten für den Wareneingang +WarningDisabled=Warnung deaktiviert +LimitsAndMitigation=Zugriffsbeschränkungen +DesktopsOnly=Nur Desktop-Bildschirme +DesktopsAndSmartphones=Desktop-Bildschirme und Smartphones +AllowOnlineSign=Online-Unterzeichnung ermöglichen +AllowExternalDownload=Externen Download zulassen (ohne Anmeldung, über einen freigegebenen Link) +DeadlineDayVATSubmission=Stichtag für die MwSt.-Einreichung im nächsten Monat +MaxNumberOfAttachementOnForms=Maximale Anzahl verbundener Dateien in einem Formular +IfDefinedUseAValueBeetween=Wenn definiert, einen Wert zwischen %s und %s verwenden diff --git a/htdocs/langs/de_DE/agenda.lang b/htdocs/langs/de_DE/agenda.lang index 7d7dadd51a6..e9cf555109a 100644 --- a/htdocs/langs/de_DE/agenda.lang +++ b/htdocs/langs/de_DE/agenda.lang @@ -4,7 +4,7 @@ Actions=Ereignisse Agenda=Agenda TMenuAgenda=Agenda Agendas=Agenden -LocalAgenda=Standardkalender +LocalAgenda=Standard-Kalender ActionsOwnedBy=Ereignis stammt von ActionsOwnedByShort=Eigentümer AffectedTo=Zugewiesen an @@ -57,18 +57,20 @@ MemberValidatedInDolibarr=Mitglied %s freigegeben MemberModifiedInDolibarr=Mitglied %s geändert MemberResiliatedInDolibarr=Mitglied %s aufgehoben MemberDeletedInDolibarr=Mitglied %s gelöscht -MemberSubscriptionAddedInDolibarr=Abonnement %s für Mitglied %s hinzugefügt -MemberSubscriptionModifiedInDolibarr=Abonnement %s für Mitglied %s geändert -MemberSubscriptionDeletedInDolibarr=Abonnement %s für Mitglied %s gelöscht +MemberExcludedInDolibarr=Mitglied %s ausgeschlossen +MemberSubscriptionAddedInDolibarr=Abonnement %s zum Mitglied %s hinzugefügt +MemberSubscriptionModifiedInDolibarr=Abonnement %s von Mitglied %s geändert +MemberSubscriptionDeletedInDolibarr=Abonnement %s von Mitglied %s gelöscht ShipmentValidatedInDolibarr=Lieferung %s freigegeben ShipmentClassifyClosedInDolibarr=Lieferung %s als verrechnet markiert ShipmentUnClassifyCloseddInDolibarr=Lieferung %s als wiedereröffnet markieren ShipmentBackToDraftInDolibarr=Sendung %s zurück zum Entwurfsstatus ShipmentDeletedInDolibarr=Lieferung %s gelöscht ShipmentCanceledInDolibarr=Sendung %s storniert -ReceptionValidatedInDolibarr=Empfang %s validiert +ReceptionValidatedInDolibarr=Wareneingang %s bestätigt +ReceptionDeletedInDolibarr=Wareneingang %s gelöscht ReceptionClassifyClosedInDolibarr=Wareneingang %s als geschlossen klassifiziert -OrderCreatedInDolibarr= Auftrag %s erstellt +OrderCreatedInDolibarr=Auftrag %s erstellt OrderValidatedInDolibarr=Auftrag %s freigegeben OrderDeliveredInDolibarr=Auftrag %s als geliefert markiert OrderCanceledInDolibarr=Auftrag %s storniert @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Lieferantenrechnung %s per E-Mail gesendet ShippingSentByEMail=Lieferung %s per E-Mail versendet ShippingValidated= Lieferung %s freigegeben InterventionSentByEMail=Serviceauftrag %s per E-Mail versendet +ProjectSentByEMail=Projekt %s per E-Mail gesendet ProposalDeleted=Angebot gelöscht OrderDeleted=Auftrag gelöscht InvoiceDeleted=Rechnung gelöscht @@ -99,10 +102,10 @@ PRODUCT_DELETEInDolibarr=Produkt %s gelöscht HOLIDAY_CREATEInDolibarr=Urlaubsantrag %s erstellt HOLIDAY_MODIFYInDolibarr=Urlaubsantrag %s bearbeitet HOLIDAY_APPROVEInDolibarr=Urlaubsantrag %s genehmigt -HOLIDAY_VALIDATEInDolibarr=Urlaubsantrag %s validiert +HOLIDAY_VALIDATEInDolibarr=Urlaubsantrag %s freigegeben HOLIDAY_DELETEInDolibarr=Urlaubsantrag %s gelöscht EXPENSE_REPORT_CREATEInDolibarr=Spesenabrechnung %s erstellt -EXPENSE_REPORT_VALIDATEInDolibarr=Ausgabenbericht %s validiert +EXPENSE_REPORT_VALIDATEInDolibarr=Spesenabrechnung %s freigegeben EXPENSE_REPORT_APPROVEInDolibarr=Spesenabrechnung %s genehmigt EXPENSE_REPORT_DELETEInDolibarr=Spesenabrechnung %s gelöscht EXPENSE_REPORT_REFUSEDInDolibarr=Spesenabrechnung %s abgelehnt @@ -159,6 +162,7 @@ DateActionBegin=Startzeit des Ereignis ConfirmCloneEvent=Möchten Sie dieses Ereignis %s wirklich duplizieren? RepeatEvent=Wiederhole Ereignis OnceOnly=Nur einmal +EveryDay=Jeden Tag EveryWeek=Jede Woche EveryMonth=Jeden Monat DayOfMonth=Tag des Monat @@ -174,3 +178,4 @@ AddReminder=Erstellt eine automatische Erinnerungsbenachrichtigung für dieses E ErrorReminderActionCommCreation=Fehler beim Erstellen der Erinnerungsbenachrichtigung für dieses Ereignis BrowserPush=Browser-Popup-Benachrichtigung ActiveByDefault=Standardmäßig aktiviert +Until=bis diff --git a/htdocs/langs/de_DE/assets.lang b/htdocs/langs/de_DE/assets.lang index 73b2b3fbc55..8390fe6fc1b 100644 --- a/htdocs/langs/de_DE/assets.lang +++ b/htdocs/langs/de_DE/assets.lang @@ -16,7 +16,7 @@ # # Generic # -NewAsset=neue Anlage +NewAsset=Neues Anlagegut AccountancyCodeAsset=Buchungskonto (Anlagegut) AccountancyCodeDepreciationAsset=Buchungskonto (Abschreibung auf Anlagegut) AccountancyCodeDepreciationExpense=Buchungskonto (Aufwendungen für Abschreibungen) @@ -48,7 +48,7 @@ ASSET_ACCOUNTANCY_CATEGORY=Kontengruppe für Anlagevermögen # Menu # MenuAssets=Anlagen -MenuNewAsset=neue Anlage +MenuNewAsset=Neues Anlagegut MenuAssetModels=Modell für Vermögenswerte MenuListAssets=Liste MenuNewAssetModel=Neues Modell für Vermögenswerte @@ -63,14 +63,14 @@ ConfirmDeleteAsset=Möchten Sie diesen Vermögenswert wirklich entfernen? # Tab # AssetDepreciationOptions=Abschreibungsmöglichkeiten -AssetAccountancyCodes=Buchhaltungskonten +AssetAccountancyCodes=Buchungskonten AssetDepreciation=Abschreibung # # Asset # Asset=Anlagegut -Assets=Ressourcen / Anlagen +Assets=Anlagen/Vermögenswerten AssetReversalAmountHT=Stornobetrag (ohne Steuern) AssetAcquisitionValueHT=Anschaffungsbetrag (ohne Steuern) AssetRecoveredVAT=Zurückerstattete USt. @@ -80,7 +80,7 @@ AssetDateStart=Datum der Inbetriebnahme AssetAcquisitionType=Art des Erwerbs AssetAcquisitionTypeNew=Neu AssetAcquisitionTypeOccasion=Gebraucht -AssetType=Art des Vermögenswertes +AssetType=Art des Anlageguts AssetTypeIntangible=Immateriell AssetTypeTangible=Materiell AssetTypeInProgress=in Bearbeitung @@ -109,8 +109,8 @@ AssetDisposalSubjectToVat=Abgang USt.-pflichtig # # Asset model # -AssetModel=Modell des Vermögenswerts -AssetModels=Modelle des Vermögenswerts +AssetModel=Modell des Anlageguts +AssetModels=Modelle der Anlagegüter # # Asset depreciation options @@ -140,7 +140,7 @@ AssetAccountancyCodeDepreciationEconomic=Wirtschaftliche Abschreibung AssetAccountancyCodeAsset=Anlagegut AssetAccountancyCodeDepreciationAsset=Abschreibung AssetAccountancyCodeDepreciationExpense=Abschreibungsaufwand -AssetAccountancyCodeValueAssetSold=Wert des abgegangenen Vermögenswerts +AssetAccountancyCodeValueAssetSold=Wert des abgegangenen Anlageguts AssetAccountancyCodeReceivableOnAssignment=Forderung bei Abgang AssetAccountancyCodeProceedsFromSales=Erlös aus Abgang AssetAccountancyCodeVatCollected=Eingenommene USt. @@ -168,10 +168,10 @@ AssetDepreciationReversal=Umkehrung # # Errors # -AssetErrorAssetOrAssetModelIDNotProvide=Die ID des Vermögenswertes oder das Modell wurde nicht bereitgestellt -AssetErrorFetchAccountancyCodesForMode=Fehler beim Abrufen der Buchhaltungskonten für den Abschreibungsmodus '%s' -AssetErrorDeleteAccountancyCodesForMode=Fehler beim Löschen von Buchhaltungskonten aus dem Abschreibungsmodus '%s' -AssetErrorInsertAccountancyCodesForMode=Fehler beim Einfügen der Buchhaltungskonten des Abschreibungsmodus '%s' +AssetErrorAssetOrAssetModelIDNotProvide=Die ID des Anlageguts oder das Modell wurde nicht bereitgestellt +AssetErrorFetchAccountancyCodesForMode=Fehler beim Abrufen der Buchungskonten für den Abschreibungsmodus '%s' +AssetErrorDeleteAccountancyCodesForMode=Fehler beim Löschen von Buchungskonten aus dem Abschreibungsmodus '%s' +AssetErrorInsertAccountancyCodesForMode=Fehler beim Einfügen der Buchungskonten des Abschreibungsmodus '%s' AssetErrorFetchDepreciationOptionsForMode=Fehler beim Abrufen von Optionen für den Abschreibungsmodus „%s“. AssetErrorDeleteDepreciationOptionsForMode=Fehler beim Löschen der Optionen des Abschreibungsmodus '%s' AssetErrorInsertDepreciationOptionsForMode=Fehler beim Einfügen der Optionen des Abschreibungsmodus '%s' diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index cd5cac4c215..7fe61fb045b 100644 --- a/htdocs/langs/de_DE/banks.lang +++ b/htdocs/langs/de_DE/banks.lang @@ -5,17 +5,17 @@ MenuVariousPayment=Sonstige Zahlungen MenuNewVariousPayment=Neue sonstige Zahlung BankName=Name der Bank FinancialAccount=Konto -BankAccount=Bankkonto – Übersicht +BankAccount=Bankkonto BankAccounts=Bankkonten BankAccountsAndGateways=Bankkonten | Gateways ShowAccount=Zeige Konto -AccountRef=Finanzkonto Nr./Ref. -AccountLabel=Bezeichnung Finanzkontos +AccountRef=Bankkonto Nr./Ref. +AccountLabel=Kontobezeichnung CashAccount=Geldkonto CashAccounts=Geldkonten CurrentAccounts=Girokonten SavingAccounts=Sparkonten -ErrorBankLabelAlreadyExists=Kontenbezeichnung existiert bereits +ErrorBankLabelAlreadyExists=Kontobezeichnung existiert bereits BankBalance=Kontostand BankBalanceBefore=Saldo (vorher) BankBalanceAfter=Bilanz (nachher) @@ -27,8 +27,8 @@ CurrentBalance=Aktueller Kontostand FutureBalance=Zukünftiger Kontostand ShowAllTimeBalance=Zeige Kontostand seit Eröffnung AllTime=Beginn ab -Reconciliation=Zahlungsausgleich -RIB=Bank Kontonummer +Reconciliation=Zahlungsabgleich +RIB=Kontonummer IBAN=IBAN BIC=BIC / SWIFT-Code SwiftValid=BIC / SWIFT-Code gültig @@ -51,15 +51,15 @@ BankAccountOwner=Kontoinhaber BankAccountOwnerAddress=Kontoinhaber-Adresse CreateAccount=Konto erstellen NewBankAccount=Neues Konto -NewFinancialAccount=Neues Finanzkonto -MenuNewFinancialAccount=Neues Finanzkonto +NewFinancialAccount=Neues Konto +MenuNewFinancialAccount=Neues Konto EditFinancialAccount=Konto bearbeiten LabelBankCashAccount=Bank- oder Kassenbezeichnung AccountType=Art des Kontos BankType0=Sparkonto BankType1=Girokonto BankType2=Kasse -AccountsArea=Finanzkonten +AccountsArea=Konten AccountCard=Konto – Übersicht DeleteAccount=Konto löschen ConfirmDeleteAccount=Sind Sie sicher, dass Sie dieses Konto löschen wollen? @@ -70,23 +70,23 @@ RemoveFromRubrique=Aus Kostenstelle entfernen RemoveFromRubriqueConfirm=Möchten Sie die Verknüpfung zwischen dieser Transaktion und der Kategorie entfernen? ListBankTransactions=Liste von Bank-Transaktionen IdTransaction=Transaktions-ID -BankTransactions=Bank-Transaktionen +BankTransactions=Banktransaktionen BankTransaction=Bank-Transaktion -ListTransactions=Liste Einträge -ListTransactionsByCategory=Liste Einträge/Kategorie -TransactionsToConciliate=Einträge zum Ausgleichen +ListTransactions=Transaktionsliste +ListTransactionsByCategory=Transaktionen/Kategorie +TransactionsToConciliate=Einträge zum Abgleichen TransactionsToConciliateShort=Auszugleichen -Conciliable=Kann ausgeglichen werden -Conciliate=Ausgleichen -Conciliation=Ausgleich +Conciliable=Kann abgeglichen werden +Conciliate=Abgleichen +Conciliation=Abgleich SaveStatementOnly=Nur Buchung speichern -ReconciliationLate=Zahlungsausgleich spät +ReconciliationLate=Zahlungsabgleich überfällig IncludeClosedAccount=Geschlossene Konten miteinbeziehen OnlyOpenedAccount=nur geöffnete Konten AccountToCredit=Konto für Gutschrift AccountToDebit=Zu belastendes Konto -DisableConciliation=Zahlungsausgleich für dieses Konto deaktivieren -ConciliationDisabled=Zahlungsausgleich deaktiviert +DisableConciliation=Funktion Zahlungsabgleich für dieses Konto deaktivieren +ConciliationDisabled=Funktion Zahlungsabgleich deaktiviert LinkedToAConciliatedTransaction=Verknüpft mit einer beschwichtigen Transaktion StatusAccountOpened=Offen StatusAccountClosed=Geschlossen @@ -94,12 +94,12 @@ AccountIdShort=Nummer LineRecord=Transaktion AddBankRecord=Erstelle Transaktion AddBankRecordLong=Eintrag manuell hinzufügen -Conciliated=ausgeglichen -ReConciliedBy=Ausgeglichen durch +Conciliated=Abgeglichen +ReConciliedBy=Abgeglichen durch DateConciliating=Ausgleichsdatum BankLineConciliated=Eintrag mit Bankbeleg abgeglichen -BankLineReconciled=ausgeglichen -BankLineNotReconciled=nicht ausgeglichen +BankLineReconciled=Abgeglichen +BankLineNotReconciled=Nicht abgeglichen CustomerInvoicePayment=Kundenzahlung SupplierInvoicePayment=Lieferanten Zahlung SubscriptionPayment=Beitragszahlung @@ -107,10 +107,10 @@ WithdrawalPayment=Lastschrift SocialContributionPayment=Zahlung von Steuern/Sozialabgaben BankTransfer=Überweisung BankTransfers=Überweisungen -MenuBankInternalTransfer=interner Transfer +MenuBankInternalTransfer=Interner Transfer TransferDesc=Verwenden Sie die interne Überweisung, um von einem Konto auf ein anderes zu überweisen. Die Anwendung schreibt zwei Datensätze: eine Belastung auf dem Quellkonto und eine Gutschrift auf dem Zielkonto. Für diese Transaktion werden derselbe Betrag, Bezeichnung und Datum verwendet. -TransferFrom=von -TransferTo=bis +TransferFrom=Von +TransferTo=An TransferFromToDone=Eine Überweisung von %s nach %s iHv %s %s wurde verbucht. CheckTransmitter=Absenderadresse ValidateCheckReceipt=Rechnungseingang gültig? @@ -137,18 +137,18 @@ PaymentDateUpdateSucceeded=Zahlungsdatum erforlgreich aktualisiert PaymentDateUpdateFailed=Zahlungsdatum konnte nicht aktualisiert werden Transactions=Transaktionen BankTransactionLine=Bank-Transaktionen -AllAccounts=Alle Finanzkonten +AllAccounts=Alle Bank- und Bargeldkonten BackToAccount=Zurück zum Konto -ShowAllAccounts=Alle Finanzkonten -FutureTransaction=Zukünftige Transaktion. Ausgleichen nicht möglich. +ShowAllAccounts=Für alle Bankkonten anzeigen +FutureTransaction=Zukünftige Transaktion. Abgleich nicht möglich. SelectChequeTransactionAndGenerate=Wählen/filtern Sie die Schecks, die in den Scheckeinzahlungsbeleg aufgenommen werden sollen. Klicken Sie anschließend auf „Erstellen“. -InputReceiptNumber=Wählen Sie den Kontoauszug der mit der Zahlung übereinstimmt. Verwenden Sie einen sortierbaren numerischen Wert: YYYYMM oder YYYYMMDD +InputReceiptNumber=Wählen Sie den Kontoauszug, auf dem die Zahlung erfasst ist. Verwenden Sie einen sortierbaren numerischen Wert: YYYYMM oder YYYYMMDD EventualyAddCategory=Wenn möglich Kategorie angeben, in der die Daten eingeordnet werden ToConciliate=auszugleichen ? ThenCheckLinesAndConciliate=Dann die Zeilen im Bankauszug prüfen und Klicken -DefaultRIB=Standard Bankkonto-Nummer +DefaultRIB=Standardkonto AllRIB=Alle Bankkonto-Nummern -LabelRIB=Bankkonto Bezeichnung +LabelRIB=Bezeichnung Bankkonto NoBANRecord=Keine Bankkonto-Nummern Einträge DeleteARib=Lösche Bankkonto-Nummern Eintrag ConfirmDeleteRib=Sind Sie sicher, dass Sie diesen Bankkonto-Nummern Eintrag löschen wollen? @@ -161,7 +161,7 @@ BankAccountModelModule=Dokumentvorlagen für Bankkonten DocumentModelSepaMandate=Vorlage für SEPA Mandate. Nur sinnvoll in EU Ländern. DocumentModelBan=Template für den Druck von Seiten mit Bankkonto-Nummern Eintrag. NewVariousPayment=Neue sonstige Zahlung -VariousPayment=Sonstige Bezahlung +VariousPayment=Sonstige Zahlungen VariousPayments=Sonstige Zahlungen ShowVariousPayment=Sonstige Zahlung anzeigen AddVariousPayment=Sonstige Zahlung hinzufügen @@ -172,8 +172,8 @@ SEPAMandate=SEPA Mandat YourSEPAMandate=Ihr SEPA-Mandat FindYourSEPAMandate=Dies ist Ihr SEPA-Mandat, um unser Unternehmen zu ermächtigen, fällige Beträge bei Ihrer Bank per Lastschrift einzuziehen. Senden Sie es unterschrieben per E-Mail (Scan des unterschriebenen Dokuments) oder per Post an AutoReportLastAccountStatement=Füllen Sie das Feld 'Nummer des Kontoauszugs' bei der Abstimmung automatisch mit der Nummer des letzten Kontoauszugs -CashControl=POS-Kassensteuerung -NewCashFence=Neue Kassensteuerung (Öffnen oder Schließen ) +CashControl=POS Kassenbestand +NewCashFence=Neuer Kassenbestand (Öffnen oder Schließen) BankColorizeMovement=Buchungen farbig darstellen BankColorizeMovementDesc=Wenn diese Funktion aktiviert ist, können Sie eine bestimmte Hintergrundfarbe für Debit- oder Kreditbewegungen auswählen BankColorizeMovementName1=Hintergrundfarbe für Sollbuchungen @@ -185,3 +185,4 @@ AlreadyOneBankAccount=Es wurde bereits ein Bankkonto definiert SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA-Überweisung: „Zahlungsart“ auf Ebene „Überweisung“. SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Bei der Generierung einer SEPA-XML-Datei für Überweisungen kann nun der Abschnitt „PaymentTypeInformation“ innerhalb des Abschnitts „CreditTransferTransactionInformation“ platziert werden (statt im Abschnitt „Payment“). Wir empfehlen dringend, dies deaktiviert zu lassen, um PaymentTypeInformation auf Payment-Ebene zu platzieren, da nicht alle Banken es auf CreditTransferTransactionInformation-Ebene akzeptieren. Wenden Sie sich an Ihre Bank, bevor Sie PaymentTypeInformation auf der Ebene CreditTransferTransactionInformation platzieren. ToCreateRelatedRecordIntoBank=Um einen fehlenden zugehörigen Bankdatensatz zu erstellen +BanklineExtraFields=Ergänzende Attribute Bankbuchung diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index 5bb05fb98f1..96398f48b67 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -4,19 +4,21 @@ Bills=Rechnungen BillsCustomers=Kundenrechnungen BillsCustomer=Kundenrechnung BillsSuppliers=Lieferantenrechnungen -BillsCustomersUnpaid=unbezahlte Kundenrechnungen -BillsCustomersUnpaidForCompany=offene Kundenrechnungen von %s -BillsSuppliersUnpaid=unbezahlte Lieferantenrechnungen -BillsSuppliersUnpaidForCompany=Unbezahlte Rechnungen des Lieferanten %s -BillsLate=verspätete Zahlungen +BillsCustomersUnpaid=Offene Kundenrechnungen +BillsCustomersUnpaidForCompany=Offene Kundenrechnungen von %s +BillsSuppliersUnpaid=Offene Lieferantenrechnungen +BillsSuppliersUnpaidForCompany=Offene Rechnungen des Lieferanten %s +BillsLate=Überfällige Zahlungen BillsStatistics=Statistik Kundenrechnungen BillsStatisticsSuppliers=Statistik Lieferantenrechnungen DisabledBecauseDispatchedInBookkeeping=Deaktiviert, da die Rechnung schon in die Buchhaltung übernommen wurde DisabledBecauseNotLastInvoice=Deaktiviert da die Rechnung nicht gelöscht werden kann. Es wurden schon Rechnungen nach dieser Rechnung erstellt, so dass die Nummerierung nicht fortlaufend wäre. +DisabledBecauseNotLastSituationInvoice=Deaktiviert, da die Rechnung nicht löschbar ist. Diese Rechnung ist nicht die letzte in der Folge der Abschlagsrechnungen. DisabledBecauseNotErasable=Deaktiviert, da löschen nicht möglich InvoiceStandard=Standardrechnung InvoiceStandardAsk=Standardrechnung InvoiceStandardDesc=Dies ist das Standard-Rechnungsformat +InvoiceStandardShort=Standard InvoiceDeposit=Anzahlungsrechnung InvoiceDepositAsk=Anzahlungsrechnung InvoiceDepositDesc=Diese Art der Rechnung erfolgt, wenn eine Anzahlung getätigt wurde. @@ -24,6 +26,7 @@ InvoiceProForma=Proforma-Rechnung InvoiceProFormaAsk=Proforma-Rechnung InvoiceProFormaDesc=Die Proforma-Rechnung ist das Abbild einer echten Rechnung, hat aber keinen buchhalterischen Wert. InvoiceReplacement=Ersatzrechnung +InvoiceReplacementShort=Ersatz InvoiceReplacementAsk=Ersatzrechnung für Rechnung InvoiceReplacementDesc=Eine Ersatzrechnung wird benutzt um eine Rechnung zu ersetzen, bei der noch keine Zahlung erfolgte.

    Hinweis: Nur Rechnungen ohne erfolgte Zahlung können ersetzt werden. Sofern die Rechnung noch nicht geschlossen wurde, wird sie automatisch verworfen. InvoiceAvoir=Gutschrift @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Dieser Artikel o ErrorInvoiceIsNotLastOfSameType=Fehler: Das Rechnungsdatum der Rechnung %s ist %s. Es muss gleich oder nach dem letzten Datum für Rechnungen des gleichen Typs sein (%s). Bitte ändern Sie das Rechnungsdatum. BillFrom=Von BillTo=An +ShippingTo=Lieferadresse ActionsOnBill=Ereignisse zu dieser Rechnung RecurringInvoiceTemplate=Vorlage/Wiederkehrende Rechnung NoQualifiedRecurringInvoiceTemplateFound=Keine Vorlagen zur Erstellung von wiederkehrenden Rechnungen gefunden. @@ -322,8 +326,8 @@ DiscountFromExcessReceived=Überzahlungen der Rechnung %s empfangen DiscountFromExcessPaid=Überzahlungen der Rechnung %s empfangen AbsoluteDiscountUse=Diese Art von Guthaben kann verwendet werden auf der Rechnung vor der Validierung CreditNoteDepositUse=Die Rechnung muss freigegeben werden, um Gutschriften zu erstellen -NewGlobalDiscount=neuer absoluter Rabatt -NewRelativeDiscount=neuer relativer Rabatt +NewGlobalDiscount=Neuer absoluter Rabatt +NewRelativeDiscount=Neuer relativer Rabatt DiscountType=Rabatt Typ NoteReason=Anmerkung/Begründung ReasonDiscount=Rabattgrund @@ -334,11 +338,11 @@ CustomerDiscounts=Kundenrabatte SupplierDiscounts=Lieferantenrabatte BillAddress=Rechnungsanschrift HelpEscompte=Dieser Rabatt ist ein dem Kunden gewährter Rabatt, da die Zahlung vor der Laufzeit erfolgte. -HelpAbandonBadCustomer=Dieser Betrag wurde abgebrochen (Kunde gilt als schlechter Kunde) und gilt als außergewöhnlicher Verlust. +HelpAbandonBadCustomer=Dieser Betrag wurde aufgegeben (Kunde gilt als schlechter Kunde) und ist als uneinbringlich zu werten. HelpAbandonOther=Dieser Betrag wurde auf Grund eines Fehlers aufgegeben (z.B. falscher Kunde oder Ersatzrechnung erstellt) IdSocialContribution=Zahlungs-ID der Steuern/Sozialabgaben PaymentId=Zahlung Id -PaymentRef=ZahlungsNr. +PaymentRef=ZahlungsRef. InvoiceId=Rechnungs ID InvoiceRef=Rechnungs Nr. InvoiceDateCreation=Datum der Rechnungserstellung @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=Die gewählten Zahlungsbeding PaymentTypeVIR=Banküberweisung PaymentTypeShortVIR=Banküberweisung PaymentTypePRE=Lastschrift +PaymentTypePREdetails=(auf Rechnung *-%s) PaymentTypeShortPRE=Lastschrift PaymentTypeLIQ=Bar PaymentTypeShortLIQ=Bar @@ -509,7 +514,7 @@ MenuCheques=Schecks MenuChequesReceipts=Quittungen prüfen NewChequeDeposit=Neuer Scheck ChequesReceipts=Quittungen prüfen -ChequesArea=Scheck einreichen +ChequesArea=Scheckeinlösungen – Übersicht ChequeDeposits=Scheckeinlösungen Cheques=Schecks DepositId=Scheck Nr. @@ -518,7 +523,7 @@ CreditNoteConvertedIntoDiscount=Diese Gutschrift %s wurde in %s umgewandelt UsBillingContactAsIncoiveRecipientIfExist=Verwenden Sie Kontakt / Adresse mit dem Typ "Rechnungskontakt" anstelle der Adresse eines Geschäftspartners als Empfänger für Rechnungen ShowUnpaidAll=Zeige alle unbezahlten Rechnungen ShowUnpaidLateOnly=Zeige nur verspätete unbezahlte Rechnung -PaymentInvoiceRef=Die Zahlung der Rechnung %s +PaymentInvoiceRef=Zahlung für Rechnung %s ValidateInvoice=Rechnung freigeben ValidateInvoices=Rechnungen freigeben Cash=Bar @@ -539,7 +544,7 @@ AllCompletelyPayedInvoiceWillBeClosed=Alle Rechnungen ohne Restzahlung werden au ToMakePayment=Bezahlen ToMakePaymentBack=Rückzahlung ListOfYourUnpaidInvoices=Liste aller unbezahlten Rechnungen -NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen an Partner, bei denen Sie als Vertreter angegeben sind. +NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen an Geschäftspartner, bei denen Sie als Vertreter angegeben sind. RevenueStamp=Steuermarke YouMustCreateInvoiceFromThird=Diese Option ist nur verfügbar, wenn Sie eine Rechnung auf der Registerkarte "Kunde" eines Drittanbieters erstellen YouMustCreateInvoiceFromSupplierThird=Diese Option ist nur verfügbar, wenn Sie eine Rechnung auf der Registerkarte "Kunde/Interessent" eines Geschäftspartner erstellen @@ -602,9 +607,9 @@ BillXCreated=Rechnung %s generiert StatusOfGeneratedDocuments=Status der Dokumentenerstellung DoNotGenerateDoc=Dokumentdatei nicht erstellen AutogenerateDoc=Dokumentdatei automatisch erstellen -AutoFillDateFrom=Startdatum der Dienstleistung auf das Rechnungsdatum setzen +AutoFillDateFrom=Startdatum der Leistungsposition auf das Rechnungsdatum festlegen AutoFillDateFromShort=Legen Sie das Startdatum fest -AutoFillDateTo=Enddatum der Dienstleistung auf das Rechnungsdatum setzen +AutoFillDateTo=Enddatum der Leistungsposition auf das Rechnungsdatum festlegen AutoFillDateToShort=Enddatum festlegen MaxNumberOfGenerationReached=Maximal Anzahl Generierungen erreicht BILL_DELETEInDolibarr=Rechnung gelöscht @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Zahlung registriert und Rechnung %s auf bez SendEmailsRemindersOnInvoiceDueDate=Bei unbezahlten Rechnungen per E-Mail erinnern MakePaymentAndClassifyPayed=Zahlung aufzeichnen BulkPaymentNotPossibleForInvoice=Massenzahlung ist für Rechnung %s nicht möglich (falscher Typ oder Status) +MentionVATDebitOptionIsOn=Option zur Zahlung von Steuern auf Basis der Soll-Versteuerung +MentionCategoryOfOperations=Tätigkeitskategorie +MentionCategoryOfOperations0=Lieferung von Waren +MentionCategoryOfOperations1=Erbringung von Dienstleistungen +MentionCategoryOfOperations2=Gemischt - Lieferung von Waren und Erbringung von Dienstleistungen diff --git a/htdocs/langs/de_DE/blockedlog.lang b/htdocs/langs/de_DE/blockedlog.lang index b2d033f5246..e651c440332 100644 --- a/htdocs/langs/de_DE/blockedlog.lang +++ b/htdocs/langs/de_DE/blockedlog.lang @@ -2,7 +2,7 @@ BlockedLog=Unveränderbare Logs Field=Feld BlockedLogDesc=Dieses Modul trägt in real time einige Events in eine Log (block chain), die nicht nicht verändert werden kann. Dieses Modul ermöglicht so eine Kompatibilität mit den Finanzregeln, die in einigen Ländern gemacht wurden (zB in Frankreich Loi de Finance 2016 NF525) Fingerprints=Eingetragene Events und Fingerprints -FingerprintsDesc=Dies ist das Tool zum Durchsuchen oder Extrahieren der unveränderlichen Protokolle. Unveränderliche Protokolle werden in Echtzeit erstellt und lokal in einer dedizierten Tabelle archiviert, wenn Sie ein Geschäftsereignis aufzeichnen. Sie können dieses Tool verwenden, um dieses Archiv zu exportieren und in einem externen Speicher zu speichern (einige Länder, wie Frankreich, verlangen, dass Sie dies jedes Jahr tun). Beachten Sie, dass es keine Funktion zum Löschen dieses Protokolls gibt und jede Änderung, die direkt in diesem Protokoll vorgenommen werden soll (z. B. von einem Hacker), mit einem ungültigen Fingerabdruck gemeldet wird. Wenn Sie diese Tabelle wirklich löschen müssen, weil Sie Ihre Anwendung zu Demo-/Testzwecken verwendet haben und Ihre Daten bereinigen möchten, um mit der Produktion zu beginnen, können Sie Ihren Reseller oder Integrator bitten, Ihre Datenbank zurückzusetzen (alle Ihre Daten werden entfernt). +FingerprintsDesc=Dies ist das Tool zum Durchsuchen oder Extrahieren der unveränderlichen Protokolle. Unveränderliche Protokolle werden in Echtzeit erstellt und lokal in einer dedizierten Tabelle archiviert, wenn Sie ein Geschäftsereignis aufzeichnen. Sie können dieses Tool verwenden, um dieses Archiv zu exportieren und in einem externen Speicher zu speichern (einige Länder, wie Frankreich, verlangen, dass Sie dies jedes Jahr tun). Beachten Sie, dass es keine Funktion zum Löschen dieses Protokolls gibt und jede Änderung, die direkt in diesem Protokoll vorgenommen wird, z. B. von einem Hacker, mit einem ungültigen digitalen Fingerabdruck gemeldet wird. Wenn Sie diese Tabelle wirklich löschen müssen, weil Sie Ihre Anwendung zu Demo-/Testzwecken verwendet haben und Ihre Daten bereinigen möchten, um mit der Produktion zu beginnen, können Sie Ihren Reseller oder Integrator bitten, Ihre Datenbank zurückzusetzen (alle Ihre Daten werden entfernt). CompanyInitialKey=Ihr Hashkey BrowseBlockedLog=Unveränderbare Logs ShowAllFingerPrintsMightBeTooLong=Unveränderbare Logs anzeigen (kann lange dauern...) diff --git a/htdocs/langs/de_DE/bookmarks.lang b/htdocs/langs/de_DE/bookmarks.lang index ffd5c5d9044..475220a35ab 100644 --- a/htdocs/langs/de_DE/bookmarks.lang +++ b/htdocs/langs/de_DE/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Wählen Sie aus, ob die verlinkt BookmarksManagement=Verwalten von Lesezeichen BookmarksMenuShortCut=STRG + Umschalt + m NoBookmarks=Keine Lesezeichen definiert +NoBookmarkFound=Kein Lesezeichen gefunden diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index 06a3fabd926..b8ba765a3d1 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -5,11 +5,11 @@ BoxLastRssInfos=Informationen RSS Feed BoxLastProducts=%s zuletzt bearbeitete Produkte/Leistungen BoxProductsAlertStock=Bestandeswarnungen für Produkte BoxLastProductsInContract=Zuletzt in Verträgen aufgenommene Produkte/Leistungen (maximal %s) -BoxLastSupplierBills=neueste Lieferantenrechnungen -BoxLastCustomerBills=neueste Kundenrechnungen +BoxLastSupplierBills=Neueste Lieferantenrechnungen +BoxLastCustomerBills=Neueste Kundenrechnungen BoxOldestUnpaidCustomerBills=älteste unbezahlte Kundenrechnungen BoxOldestUnpaidSupplierBills=älteste unbezahlte Lieferantenrechnungen -BoxLastProposals=neueste Angebote +BoxLastProposals=Neueste Angebote BoxLastProspects=Zuletzt bearbeitete Interessenten BoxLastCustomers=zuletzt berarbeitete Kunden BoxLastSuppliers=zuletzt bearbeitete Lieferanten @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Neueste Mitglieder-Abonnements BoxFicheInter=Neueste Serviceaufträge BoxCurrentAccounts=Saldo offene Konten BoxTitleMemberNextBirthdays=Geburtstage in diesem Monat (Mitglieder) -BoxTitleMembersByType=Mitglieder nach Typ +BoxTitleMembersByType=Mitglieder nach Typ und Status BoxTitleMembersSubscriptionsByYear=Mitgliederabonnements nach Jahr BoxTitleLastRssInfos=%s neueste Neuigkeiten von %s BoxTitleLastProducts=Zuletzt bearbeitete Produkte / Leistungen (maximal %s) @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Lieferantenbestellungen warten auf Einga BoxTitleLastModifiedContacts=Zuletzt bearbeitete Kontakte/Adressen (maximal %s) BoxMyLastBookmarks=Meine %s neuesten Lesezeichen BoxOldestExpiredServices=Die ältesten abgelaufenen aktiven Dienste +BoxOldestActions=Älteste zu erledigende Ereignisse BoxLastExpiredServices=Neueste Verträge mit abgelaufenen Leistungen (maximal %s) -BoxTitleLastActionsToDo=Anstehende Termine / Aufgaben (maximal %s) +BoxTitleLastActionsToDo=Anstehende Termine/Aufgaben (maximal %s) +BoxTitleOldestActionsToDo=Älteste %s zu erledigende Ereignisse, die nicht abgeschlossen sind BoxTitleLastContracts=Zuletzt bearbeitete Verträge (maximal %s) BoxTitleLastModifiedDonations=Letzte %s Spenden, die geändert wurden BoxTitleLastModifiedExpenses=Neueste %s Spesenabrechnungen, die geändert wurden @@ -55,12 +57,12 @@ BoxTitleLastOutstandingBillReached=Kunden mit überschrittenen Maximal-Aussenst BoxGlobalActivity=Globale Aktivität (Rechnungen, Angebote, Aufträge) BoxGoodCustomers=Gute Kunden BoxTitleGoodCustomers=%s gute Kunden -BoxScheduledJobs=Geplante Aufträge +BoxScheduledJobs=Geplante Jobs BoxTitleFunnelOfProspection=Lead Funnel FailedToRefreshDataInfoNotUpToDate=Fehler beim RSS-Abruf. Letzte erfolgreiche Aktualisierung: %s LastRefreshDate=Letzte Aktualisierung NoRecordedBookmarks=Keine Lesezeichen definiert. -ClickToAdd=Hier klicken um hinzuzufügen. +ClickToAdd=Hier klicken zum Hinzufügen. NoRecordedCustomers=keine erfassten Kunden NoRecordedContacts=keine erfassten Kontakte NoActionsToDo=Keine Aufgaben/Termine zu erledigen @@ -110,9 +112,9 @@ SuspenseAccountNotDefined=Zwischenkonto ist nicht definiert BoxLastCustomerShipments=Letzte Kundenlieferungen BoxTitleLastCustomerShipments=Neueste %s Kundensendungen NoRecordedShipments=Keine erfasste Kundensendung -BoxCustomersOutstandingBillReached=Kunden mit erreichtem Aussenständen-Limit +BoxCustomersOutstandingBillReached=Kunden mit erreichtem Aussenstände-Limit # Pages -UsersHome=Start Anwender und Gruppen +UsersHome=Start Benutzer und Gruppen MembersHome=Start Mitgliedschaft ThirdpartiesHome=Start Geschäftspartner TicketsHome=Start Tickets diff --git a/htdocs/langs/de_DE/cashdesk.lang b/htdocs/langs/de_DE/cashdesk.lang index c4a7560ca5b..984bf8dea3d 100644 --- a/htdocs/langs/de_DE/cashdesk.lang +++ b/htdocs/langs/de_DE/cashdesk.lang @@ -33,7 +33,7 @@ DeleteArticle=Klicken, um diesen Artikel zu entfernen FilterRefOrLabelOrBC=Suche (Artikelnr./Name) UserNeedPermissionToEditStockToUsePos=Sie möchten den Lagerbestand bei Rechnungserstellung verringern. Benutzer, die POS verwenden, mussen also die Berechtigung zum Bearbeiten des Lagerbestands erhalten. DolibarrReceiptPrinter=Dolibarr Quittungsdrucker -PointOfSale=Kasse +PointOfSale=Kassenterminal PointOfSaleShort=POS CloseBill=Rechnung schließen Floors=Bereiche / Etagen und Tische @@ -41,7 +41,7 @@ Floor=Bereich / Etage AddTable=Tisch hinzufügen Place=Tisch TakeposConnectorNecesary='TakePOS Connector' erforderlich -OrderPrinters=Fügen Sie eine Schaltfläche hinzu, um die Bestellung ohne Zahlung an bestimmte Drucker zu senden (z.B. um eine Bestellung an eine Küche zu senden). +OrderPrinters=Schaltfläche hinzufügen, um die Bestellung ohne Zahlung an bestimmte Drucker zu senden (z.B. um eine Bestellung an eine Küche zu senden) NotAvailableWithBrowserPrinter=Nicht verfügbar, wenn Drucker für Beleg auf Browser eingestellt ist SearchProduct=Produkt suchen Receipt=globale Druckeinstellungen @@ -49,7 +49,7 @@ Header=Kopfzeile Footer=Fußzeile AmountAtEndOfPeriod=Betrag am Ende der Periode (Tag, Monat oder Jahr) TheoricalAmount=Theoretischer Betrag -RealAmount=tatsächlicher Betrag +RealAmount=Tatsächlicher Betrag CashFence=Kassenschluss CashFenceDone=Kassenschluss für den Zeitraum durchgeführt NbOfInvoices=Anzahl der Rechnungen @@ -59,10 +59,10 @@ BillsCoinsPad=Münzen- und Banknoten-Pad DolistorePosCategory=TakePOS-Module und andere POS-Lösungen für Dolibarr TakeposNeedsCategories=TakePOS benötigt mindestens eine Produktkategorie, um zu funktionieren TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS benötigt mindestens 1 Produktkategorie unter der Kategorie %s , um zu funktionieren -OrderNotes=Kann jedem bestellten Artikel einige Notizen hinzufügen -CashDeskBankAccountFor=Standardkonto für Zahlungen in +OrderNotes=Jedem bestellten Artikel können Notizen hinzufügt werden +CashDeskBankAccountFor=Standardkonto für Zahlungen per NoPaimementModesDefined=In der TakePOS-Konfiguration ist kein Zahlungsmodus definiert -TicketVatGrouped=Gruppieren Sie die Mehrwertsteuer nach Steuersatz der Tickets/Quittungen +TicketVatGrouped=Mehrwertsteuer auf Tickets/Quittungen nach Steuersatz gruppieren AutoPrintTickets=Tickets | Quittungen automatisch drucken PrintCustomerOnReceipts=Kunden auf Tickets | Quittungen drucken EnableBarOrRestaurantFeatures=Bar- und Restaurantfunktionen @@ -76,20 +76,20 @@ TerminalSelect=Wählen Sie das Terminal aus, das Sie verwenden möchten: POSTicket=POS Ticket POSTerminal=POS-Terminal POSModule=POS-Modul -BasicPhoneLayout=Verwenden Sie das Basislayout für Telefone +BasicPhoneLayout=Basislayout für Telefone verwenden SetupOfTerminalNotComplete=Die Einrichtung von Terminal %s ist nicht abgeschlossen DirectPayment=Direktzahlung -DirectPaymentButton=Fügen Sie eine Schaltfläche "Direkte Barzahlung" hinzu +DirectPaymentButton=Schaltfläche "Direkte Barzahlung" hinzufügen InvoiceIsAlreadyValidated=Rechnung ist bereits geprüft NoLinesToBill=Keine Zeilen zu berechnen CustomReceipt=Benutzerdefinierte Quittung ReceiptName=Belegname -ProductSupplements=Ergänzungen von Produkten verwalten +ProductSupplements=Ergänzende Zusatzprodukte verwalten SupplementCategory=Ergänzungskategorie ColorTheme=Farbschema Colorful=Farbig HeadBar=Kopfleiste -SortProductField=Feld zum Sortieren von Produkten +SortProductField=Feld, nach dem Produkte sortiert werden Browser=Browser BrowserMethodDescription=Schneller und einfacher Belegdruck. Nur wenige Parameter zum Konfigurieren der Quittung. Drucken via Browser. TakeposConnectorMethodDescription=Externes Modul mit zusätzlichen Funktionen. Möglichkeit zum Drucken aus der Cloud. @@ -99,7 +99,7 @@ ByTerminal=über Terminal TakeposNumpadUsePaymentIcon=Verwenden Sie das Symbol anstelle des Textes auf den Zahlungsschaltflächen des Nummernblocks CashDeskRefNumberingModules=Nummerierungsmodul für POS-Verkäufe CashDeskGenericMaskCodes6 =  Das Tag
    {TN} wird zum Hinzufügen der Terminalnummer verwendet -TakeposGroupSameProduct=Gruppieren Sie dieselben Produktlinien +TakeposGroupSameProduct=Einzelpositionen mit denselben Produkten zusammenfassen StartAParallelSale=Starten Sie einen neuen Parallelverkauf SaleStartedAt=Der Verkauf begann bei %s ControlCashOpening=Beim Öffnen der Kasse das Popup „Kasse kontrollieren“ anzeigen @@ -116,11 +116,11 @@ CustomerMenu=Kundenmenü ScanToMenu=Scannen Sie den QR-Code, um das Menü anzuzeigen ScanToOrder=Scannen Sie den QR-Code auf Bestellung Appearance=Aussehen -HideCategoryImages=Kategorie Bilder ausblenden +HideCategoryImages=Bilder für Kategorien ausblenden HideProductImages=Produktbilder ausblenden NumberOfLinesToShow=Anzahl der anzuzeigenden Bildzeilen DefineTablePlan=Tabellenplan definieren -GiftReceiptButton=Fügen Sie eine Schaltfläche "Gutschrift-Quittung" hinzu +GiftReceiptButton=Schaltfläche "Gutschrift-Quittung" hinzufügen GiftReceipt=Gutschrift-Quittung ModuleReceiptPrinterMustBeEnabled=Das Modul Belegdrucker muss zuerst aktiviert worden sein AllowDelayedPayment=Spätere Zahlung zulassen @@ -136,3 +136,4 @@ PrintWithoutDetails=Drucken ohne Details YearNotDefined=Jahr ist nicht definiert TakeposBarcodeRuleToInsertProduct=Barcode-Regel zum Einfügen von Produkten TakeposBarcodeRuleToInsertProductDesc=Regel zum Extrahieren der Produktreferenz + einer Menge aus einem gescannten Barcode.
    Wenn leer (Standardwert), verwendet die Anwendung den vollständig gescannten Barcode, um das Produkt zu finden.

    Wenn definiert, muss die Syntax lauten:
    ref:NB+qu:NB+qd:NB+other:NB
    wobei NB die Anzahl der Zeichen ist, die als Daten aus dem gescannten Barcode extrahiert werden, mit:
    • ref : Produkt-Referenz
    • qu : Menge, die beim Einfügen des Artikels gesetzt wird (Einheiten)
    • qd : Menge, die beim Einfügen des Artikels gesetzt wird (Dezimalstellen)
    • other : andere Zeichen
    +AlreadyPrinted=Bereits gedruckt diff --git a/htdocs/langs/de_DE/categories.lang b/htdocs/langs/de_DE/categories.lang index 27f6e77ffaa..1369f84b2a3 100644 --- a/htdocs/langs/de_DE/categories.lang +++ b/htdocs/langs/de_DE/categories.lang @@ -1,25 +1,25 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Kategorie Rubriques=Kategorien -RubriquesTransactions=Transaktionenkategorien +RubriquesTransactions=Transaktionskategorien categories=Kategorien NoCategoryYet=Es wurde kein Schlagwort / keine Kategorie dieses Typs erstellt In=Übergeordnete Kategorie AddIn=Übergeordnete Kategorie modify=Ändern -Classify=zuordnen +Classify=Zuordnen CategoriesArea=Übersicht Kategorien ProductsCategoriesArea=Bereich Produkt-/Leistungs-Schlagwörter/Kategorien SuppliersCategoriesArea=Festlegung von Kategorien für Lieferanten CustomersCategoriesArea=Festlegung von Kategorien für Kunden/Interessenten -MembersCategoriesArea=Bereich für Mitglieder-Schlagwörter / Kategorien +MembersCategoriesArea=Bereich für Mitglieder-Schlagwörter/Kategorien ContactsCategoriesArea=Festlegung von Kategorien für Kontakte -AccountsCategoriesArea=Bereich für Bankkonto-Schlagwörter / -kategorien -ProjectsCategoriesArea=Bereich Projekt-Schlagwörter / Kategorien -UsersCategoriesArea=Bereich Benutzer-Schlagwörter / Kategorien +AccountsCategoriesArea=Bereich für Bankkonto-Schlagwörter/Kategorien +ProjectsCategoriesArea=Bereich Projekt-Schlagwörter/Kategorien +UsersCategoriesArea=Bereich Benutzer-Schlagwörter/Kategorien SubCats=Unterkategorie(n) CatList=Liste der Kategorien -CatListAll=Liste der Schlagwörter / Kategorien (alle Typen) +CatListAll=Liste der Schlagwörter/Kategorien (alle Typen) NewCategory=Neue Kategorie ModifCat=Kategorie bearbeiten CatCreated=Kategorie erstellt @@ -32,16 +32,17 @@ ImpossibleAddCat=Es ist nicht möglich die Kategorie %s hinzuzufügen. WasAddedSuccessfully= %s wurde erfolgreich hinzugefügt. ObjectAlreadyLinkedToCategory=Element ist bereits mit dieser Kategorie verknüpft. ProductIsInCategories=Dieses Produkt / diese Leistung ist folgenden Kategorien zugewiesen -CompanyIsInCustomersCategories=Dieser Partner ist folgenden Kundenkategorien zugewiesen +CompanyIsInCustomersCategories=Dieser Geschäftspartner ist folgenden Kundenkategorien zugeordnet CompanyIsInSuppliersCategories=Diesem Geschäftspartner ist folgende Lieferantenkategorie zugewiesen MemberIsInCategories=Dieses Mitglied ist folgenden Mitgliederkategorien zugewiesen ContactIsInCategories=Dieser Kontakt ist folgenden Kontaktkategorien zugewiesen ProductHasNoCategory=Dieses Produkt / diese Leistung ist keiner Kategorie zugewiesen. -CompanyHasNoCategory=Dieser Partner ist keiner Kategorie zugewiesen. +CompanyHasNoCategory=Dieser Geschäftspartner ist keiner Kategorie zugewiesen. MemberHasNoCategory=Dieses Mitglied ist keiner Kategorie zugewiesen. ContactHasNoCategory=Dieser Kontakt ist keiner Kategorie zugewiesen. ProjectHasNoCategory=Dieses Projekt ist keiner Kategorie zugewiesen. ClassifyInCategory=Hinzufügen +RemoveCategory=Kategorie entfernen NotCategorized=ohne Kategoriezuordnung CategoryExistsAtSameLevel=Diese Kategorie existiert bereits auf diesem Level ContentsVisibleByAllShort=öffentlicher Inhalt @@ -67,6 +68,7 @@ StockCategoriesShort=Lagerort-Kategorien ThisCategoryHasNoItems=Diese Kategorie enthält keine Elemente. CategId=Kategorie-ID ParentCategory=Übergeordnetes Schlagwort / Kategorie +ParentCategoryID=ID des übergeordneten Tags / der übergeordneten Kategorie ParentCategoryLabel=Label des übergeordneten Schlagwortes / der übergeordneten Kategorie CatSupList=Liste der Schlagwörter / Kategorien für Anbieter CatCusList=Liste der Schlagwörter / Kategorien für Kunden / Interessenten @@ -86,7 +88,7 @@ DeleteFromCat=Aus Kategorie entfernen ExtraFieldsCategories=Ergänzende Attribute CategoriesSetup=Kategorie-Einstellungen CategorieRecursiv=Automatisch mit übergeordneter Kategorie verbinden -CategorieRecursivHelp=Wenn die Option aktiviert ist, wird beim Hinzufügen eines Produkts zu einer Unterkategorie das Produkt auch automatisch zur übergeordneten Kategorie hinzugefügt. +CategorieRecursivHelp=Wenn die Option aktiviert ist und Sie ein Objekt zu einer Unterkategorie hinzufügen, wird das Objekt auch zu den übergeordneten Kategorien hinzugefügt. AddProductServiceIntoCategory=Folgendes Produkt / folgende Leistung dieser Kategorie hinzufügen: AddCustomerIntoCategory=Ordnen Sie dem Kunden eine Kategorie zu AddSupplierIntoCategory=Ordnen Sie dem Lieferanten eine Kategorie zu @@ -95,7 +97,9 @@ ShowCategory=Zeige Kategorie ByDefaultInList=Standardwert in Liste ChooseCategory=Kategorie auswählen StocksCategoriesArea=Festlegung von Kategorien für Warenlager +TicketsCategoriesArea=Ticketkategorien ActionCommCategoriesArea=Ereigniskategorien WebsitePagesCategoriesArea=Seiteninhalte-Kategorien KnowledgemanagementsCategoriesArea=KM Artikelkategorien -UseOrOperatorForCategories=Verwenden Sie den Operator 'ODER' für Kategorien +UseOrOperatorForCategories=Kategoriesuche mit "ODER"-Verknüpfung ausführen +AddObjectIntoCategory=Objekt zur Kategorie hinzufügen diff --git a/htdocs/langs/de_DE/commercial.lang b/htdocs/langs/de_DE/commercial.lang index ef4728401fb..0dbcc615b4e 100644 --- a/htdocs/langs/de_DE/commercial.lang +++ b/htdocs/langs/de_DE/commercial.lang @@ -18,7 +18,7 @@ TaskRDVWith=Termin mit %s ShowTask=Aufgabe anzeigen ShowAction=Ereignis anzeigen ActionsReport=Ereignis Journal -ThirdPartiesOfSaleRepresentative=Partner mit Vertriebsmitarbeiter +ThirdPartiesOfSaleRepresentative=Geschäftspartner des Vertriebsmitarbeiters SaleRepresentativesOfThirdParty=Vertriebsmitarbeiter des Geschäftspartners SalesRepresentative=Vertriebsmitarbeiter SalesRepresentatives=Vertriebsmitarbeiter @@ -74,8 +74,16 @@ StatusProsp=Kontaktstatus DraftPropals=Entworfene Angebote NoLimit=ohne Begrenzung ToOfferALinkForOnlineSignature=Link zur Onlinesignatur -WelcomeOnOnlineSignaturePage=%s begrüßt Sie zum Online-Service für Angebotsfreigaben -ThisScreenAllowsYouToSignDocFrom=Auf dieser Seite können Angebote angenommen und unterschrieben oder abgelehnt werden. -ThisIsInformationOnDocumentToSign=Information zum Dokument +WelcomeOnOnlineSignaturePageProposal=%s begrüßt Sie zum Online-Service für Angebotsfreigaben +WelcomeOnOnlineSignaturePageContract=Willkommen auf der %s Vertrags-PDF-Unterzeichnungsseite +WelcomeOnOnlineSignaturePageFichinter=Willkommen auf der PDF-Signaturseite von Serviceauftrag %s +ThisScreenAllowsYouToSignDocFromProposal=Auf dieser Seite können Angebote angenommen und unterschrieben oder abgelehnt werden. +ThisScreenAllowsYouToSignDocFromContract=Auf dieser Seite können Sie den Vertrag im PDF-Format online unterzeichnen. +ThisScreenAllowsYouToSignDocFromFichinter=Auf dieser Seite können Sie Serviceaufträge im PDF-Format online unterzeichnen. +ThisIsInformationOnDocumentToSignProposal=Information zum Dokument +ThisIsInformationOnDocumentToSignContract=Diese Vertragsinformationen sind zu unterzeichnen +ThisIsInformationOnDocumentToSignFichinter=Dies ist eine Information über den zu unterzeichnenden Serviceauftrag SignatureProposalRef=Unterschrift des Angebotes %s +SignatureContractRef=Unterschrift zum Vertrag %s +SignatureFichinterRef=Unterzeichnung des Serviceauftrags %s FeatureOnlineSignDisabled=Onlineunterschrift ist deaktiviert oder das Dokument wurde erstellt, bevor diese Funktion aktiviert wurde diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index 19248396451..0797e3164ab 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - companies ErrorCompanyNameAlreadyExists=Firmenname %s bereits vorhanden. Bitte wählen Sie einen anderen. ErrorSetACountryFirst=Wählen Sie zuerst das Land -SelectThirdParty=Wähle einen Partner +SelectThirdParty=Geschäftspartner auswählen ConfirmDeleteCompany=Möchten Sie dieses Unternehmen und alle zugehörigen Informationen wirklich löschen? DeleteContact=Löschen eines Kontakts/Adresse ConfirmDeleteContact=Möchten Sie diesen Kontakt und alle zugehörigen Informationen wirklich löschen? -MenuNewThirdParty=neuer Geschäftspartner -MenuNewCustomer=neuer Kunde +MenuNewThirdParty=Neuer Geschäftspartner +MenuNewCustomer=Neuer Kunde MenuNewProspect=Neuer Interessent -MenuNewSupplier=neuer Lieferant +MenuNewSupplier=Neuer Lieferant MenuNewPrivateIndividual=Neue Privatperson -NewCompany=neue Firma (Interessent, Kunde, Lieferant) -NewThirdParty=Neuer Partner (Interessent, Kunde, Lieferant) +NewCompany=Neue Firma (Interessent, Kunde, Lieferant) +NewThirdParty=Neuer Geschäftspartner (Interessent, Kunde, Lieferant) CreateDolibarrThirdPartySupplier=neuen Lieferanten erstellen -CreateThirdPartyOnly=Partner erstellen -CreateThirdPartyAndContact=Neuen Partner und Unteradresse erstellen +CreateThirdPartyOnly=Geschäftspartner erstellen +CreateThirdPartyAndContact=Neuen Geschäftspartner und Kontakt erstellen ProspectionArea=Übersicht Geschäftsanbahnung -IdThirdParty=Partner-ID +IdThirdParty=Geschäftspartner-ID IdCompany=Firmen-ID IdContact=Kontakt-ID ThirdPartyAddress=Adresse des Geschäftspartners ThirdPartyContacts=Partnerkontakte -ThirdPartyContact=Partner-Kontakt/-Adresse +ThirdPartyContact=Geschäftspartner-Kontakt/-Adresse Company=Firma CompanyName=Firmenname AliasNames=Alias-Name (Geschäftsname, Marke, ...) @@ -39,7 +39,7 @@ ThirdPartyCustomers=Kunden ThirdPartyCustomersStats=Kunden ThirdPartyCustomersWithIdProf12=Kunden mit %s oder %s ThirdPartySuppliers=Lieferanten -ThirdPartyType=Partner-Typ +ThirdPartyType=Geschäftspartner-Typ Individual=Privatperson ToCreateContactWithSameName=Erzeugt automatisch einen Kontakt/Adresse mit den gleichen Informationen wie der Geschäftspartner unter diesem Geschäftspartner. In den meisten Fällen, auch wenn Ihr Geschäftspartner eine natürliche Person ist, reicht die Anlage eines Geschäftspartners aus. ParentCompany=Muttergesellschaft @@ -54,12 +54,13 @@ Lastname=Nachname Firstname=Vorname RefEmployee=Mitarbeiterreferenz NationalRegistrationNumber=Nationale Registrierungsnummer -PostOrFunction=Position / Funktion +PostOrFunction=Position/Funktion UserTitle=Anrede NatureOfThirdParty=Art des Geschäftspartners NatureOfContact=Art des Kontakts Address=Adresse State=Bundesland +StateId=Staats-ID StateCode=Länder-/Regioncode StateShort=Staat Region=Region @@ -72,7 +73,7 @@ PhoneShort=Tel. Skype=Skype Call=Anruf Chat=Chat -PhonePro=Telefon geschäftl. +PhonePro=Telefon (geschäftl.) PhonePerso=Telefon (privat) PhoneMobile=Telefon (mobil) No_Email=Keine E-Mail-Kampagne senden @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Prof. Id 1 (Handelsregister) ProfId2CM=Prof. Id 2 (Steuer-Nr./Steuer-ID) -ProfId3CM=Prof. Id 3 (Handelsregister-Nr.) -ProfId4CM=ID Prof. 4 (Einlagenzertifikat) +ProfId3CM=Prof. Id. 3 (Nr. der Gründungsurkunde) +ProfId4CM=Ausweis. Prof. 4 (Nr. der Einlagenbescheinigung) ProfId5CM=ID Prof. 5 (Andere) ProfId6CM=- ProfId1ShortCM=Handelsregister ProfId2ShortCM=Steuer-Nr./Steuer-ID -ProfId3ShortCM=Handelsregister-Nr. -ProfId4ShortCM=Einlagenzertifikat +ProfId3ShortCM=Nr. der Gründungsurkunde +ProfId4ShortCM=Nr. der Einlagenbescheinigung ProfId5ShortCM=Andere ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) @@ -337,11 +338,11 @@ Contacts=Kontakte/Adressen ContactId=Kontakt-ID ContactsAddresses=Kontakte/Adressen FromContactName=Name: -NoContactDefinedForThirdParty=Für diesen Partner ist kein Kontakt eingetragen +NoContactDefinedForThirdParty=Für diesen Geschäftspartner ist kein Kontakt eingetragen NoContactDefined=kein Kontakt für diesen Partner DefaultContact=Standardkontakt ContactByDefaultFor=Standardkontakt/-Adresse für -AddThirdParty=Partner erstellen +AddThirdParty=Geschäftspartner erstellen DeleteACompany=Löschen eines Unternehmens PersonalInformations=Persönliche Daten AccountancyCode=Buchungskonto @@ -359,7 +360,7 @@ ProspectToContact=Zu kontaktierender Interessent CompanyDeleted=Unternehmen "%s" aus der Datenbank gelöscht. ListOfContacts=Liste der Kontakte ListOfContactsAddresses=Liste der Kontakte -ListOfThirdParties=Liste der Partner +ListOfThirdParties=Liste der Geschäftspartner ShowCompany=Geschäftspartner ShowContact=Kontakt-Adresse ContactsAllShort=Alle (kein Filter) @@ -430,7 +431,7 @@ ExportCardToFormat=Karte in Format exportieren ContactNotLinkedToCompany=Kontakt ist keinem Geschäftspartner zugeordnet DolibarrLogin=Dolibarr-Benutzername NoDolibarrAccess=Kein Dolibarr-Zugang -ExportDataset_company_1=Partner (Firmen/Stiftungen/Natürliche Personen) und ihre Eigenschaften +ExportDataset_company_1=Geschäftspartner (Firmen/Stiftungen/Natürliche Personen) und ihre Eigenschaften ExportDataset_company_2=Kontakte und ihre Eigenschaften ImportDataset_company_1=Geschäftspartner und ihre Eigenschaften ImportDataset_company_2=Kontakte/Adressen und Attribute @@ -460,7 +461,7 @@ YouMustCreateContactFirst=Um E-Mail-Benachrichtigungen anlegen zu können, müss ListSuppliersShort=Liste der Lieferanten ListProspectsShort=Liste der Interessenten ListCustomersShort=Liste der Kunden -ThirdPartiesArea=Partner und Kontakte +ThirdPartiesArea=Geschäftspartner und Kontakte LastModifiedThirdParties=Zuletzt bearbeitete Geschäftspartner (maximal %s) UniqueThirdParties=Gesamtzahl der Geschäftspartner InActivity=aktiv @@ -475,9 +476,9 @@ MonkeyNumRefModelDesc=Gibt eine Zahl im Format %syymm-nnnn für den Kundencode u LeopardNumRefModelDesc=Kunden / Lieferanten-Code ist frei. Dieser Code kann jederzeit geändert werden. ManagingDirectors=Name(n) des/der Manager (CEO, Direktor, Geschäftsführer, ...) MergeOriginThirdparty=Geschäftspartner duplizieren (Geschäftspartner, den Sie löschen möchten) -MergeThirdparties=Partner zusammenlegen +MergeThirdparties=Geschäftspartner zusammenführen ConfirmMergeThirdparties=Sind Sie sicher, dass Sie den ausgewählten Geschäftspartner mit dem aktuellen zusammenführen möchten? \nAlle verknüpften Objekte (Rechnungen, Bestellungen, ...) werden zum aktuellen Geschäftspartner verschoben, danach wird der ausgewählte Geschäftspartner gelöscht. -ThirdpartiesMergeSuccess=Partner wurden zusammengelegt +ThirdpartiesMergeSuccess=Geschäftspartner wurden zusammenführt SaleRepresentativeLogin=Login des Vertriebsmitarbeiters SaleRepresentativeFirstname=Vorname des Vertreter SaleRepresentativeLastname=Nachname des Vertreter diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index 35463b55e12..0d5579f0a49 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -5,8 +5,8 @@ TaxModuleSetupToModifyRulesLT=Hier können Sie die Einstellungen Die Gültigkeit der Zahlen ist nur bei Überprüfung der Zu- und Abgänge auf den Konten über Rechnungen gewährleistet. +OptionModeTrueDesc=Der Umsatz wird über Zahlungen (Zahlungszeitpunkt) berechnet (Ist-Versteuerung). Die Aussagekraft ist nur gegeben, wenn die Einnahmen und Ausgaben auf Basis entsprechender Rechnungen korrekt auf den Konten verbucht werden. +OptionModeVirtualDesc=Der Umsatz wird über Rechnungen (Rechnungsdatum) ermittelt (Soll-Versteuerung). Wenn diese Rechnungen fällig sind, ob sie bezahlt wurden oder nicht, werden sie in der Umsatzausgabe aufgeführt. FeatureIsSupportedInInOutModeOnly=Dieses Feature ist nur in der Soll-Haben-Option verfügbar (siehe Konfiguration des Rechnungswesen-Moduls) VATReportBuildWithOptionDefinedInModule=Die hier ausgewiesenen Beträge werden unter Verwendung der USt.-Regeln definiert. LTReportBuildWithOptionDefinedInModule=Die hier ausgewiesenen Beträge werden unter Verwendung der Firmen-Regeln definiert. @@ -29,6 +29,8 @@ BalanceBefore=Saldo (vorher) Balance=Saldo Debit=Soll Credit=Haben +AccountingDebit=Soll +AccountingCredit=Haben Piece=Beleg AmountHTVATRealReceived=Einnahmen (netto) AmountHTVATRealPaid=Ausgaben (netto) @@ -126,10 +128,10 @@ Turnover=Verrechneter Umsatz TurnoverCollected=Realisierter Umsatz SalesTurnoverMinimum=Mindestumsatz ByExpenseIncome=Ausgaben & Einnahmen -ByThirdParties=Durch Partner -ByUserAuthorOfInvoice=Durch Rechnungsersteller -CheckReceipt=Scheck erhalten -CheckReceiptShort=Scheck erhalten +ByThirdParties=Nach Geschäftspartnern +ByUserAuthorOfInvoice=Nach Rechnungsersteller +CheckReceipt=Scheckeinlösung +CheckReceiptShort=Scheckeinlösung LastCheckReceiptShort=%s neueste Schecks NewCheckReceipt=Neuen Scheck erhalten NewCheckDeposit=Neue Check Hinterlegung @@ -156,7 +158,7 @@ CalcModeVATDebt=Modus %s USt. auf Engagement Rechnungslegung %s. CalcModeVATEngagement=Modus %sTVA auf Einnahmen-Ausgaben%s. CalcModeDebt=Analyse bekannter erfasster Dokumente, auch wenn diese noch nicht im Hauptbuch erfasst sind. CalcModeEngagement=Analyse der erfassten Zahlungen, auch wenn diese noch nicht kontiert wurden -CalcModeBookkeeping=Analyse der in der Tabelle Buchhaltungs-Ledger protokollierten Daten. +CalcModeBookkeeping=Analyse der im Hauptbuch protokollierten Daten. CalcModeLT1= Modus %sRE auf Kundenrechnungen - Lieferantenrechnungen%s CalcModeLT1Debt=Modus %sRE auf Kundenrechnungen%s CalcModeLT1Rec= Modus %sRE auf Lieferantenrechnungen%s @@ -166,19 +168,19 @@ CalcModeLT2Rec= Modus %sIRPF auf Lieferantenrechnungen%s AnnualSummaryDueDebtMode=Saldo der Erträge und Aufwendungen, Jahresübersicht AnnualSummaryInputOutputMode=Saldo der Erträge und Aufwendungen, Jahresübersicht AnnualByCompanies=Bilanz Ertrag/Aufwand, pro vordefinierten Kontogruppen -AnnualByCompaniesDueDebtMode=Die Ertrags-/Aufwands-Bilanz nach vordefinierten Gruppen, im Modus %sForderungen-Verbindlichkeiten%s meldet Kameralistik. -AnnualByCompaniesInputOutputMode=Die Ertrags-/Aufwands-Bilanz im Modus %sEinkünfte-Ausgaben%s meldet Ist-Besteuerung. +AnnualByCompaniesDueDebtMode=Die Ertrags-/Aufwands-Bilanz nach vordefinierten Gruppen im Modus %sForderungen-Verbindlichkeiten%s d.h. Soll-Versteuerung. +AnnualByCompaniesInputOutputMode=Die Ertrags-/Aufwands-Bilanz im Modus %sEinkünfte-Ausgaben%s d.h. Soll-Versteuerung. SeeReportInInputOutputMode=Siehe %sAnalyse der Zahlungen%s für eine Berechnung basierend auf erfassten Zahlungen , auch wenn diese noch nicht ins Hauptbuch übernommen wurden. -SeeReportInDueDebtMode=Siehe %sAnalyse aufgezeichneter Dokumente%s für eine Berechnung basierend auf bekannten aufgezeichneten Dokumenten , auch wenn diese noch nicht ins Hauptbuch übernommen wurden. +SeeReportInDueDebtMode=Siehe %sAnalyse aufgezeichneter Dokumente%s für eine Berechnung basierend auf bekannten aufgezeichneten Dokumenten, auch wenn diese noch nicht ins Hauptbuch übernommen wurden. SeeReportInBookkeepingMode=Siehe %sAnalyse des Buchhaltungsbuchs-Tabelle%s für einen Bericht basierend auf Buchhaltungstabelle -RulesAmountWithTaxIncluded=- Angezeigte Beträge enthalten alle Steuern +RulesAmountWithTaxIncluded=- Angezeigte Beträge enthalten sämtliche Steuern RulesAmountWithTaxExcluded=- Die ausgewiesenen Rechnungsbeträge verstehen sich ohne Steuern -RulesResultDue=- Es beinhaltet alle Rechnungen, Ausgaben, Mehrwertsteuer, Spenden, Gehälter, unabhängig davon, ob sie bezahlt wurden oder nicht.
    - Es basiert auf dem Fälligkeitsdatum von Rechnungen und dem Fälligkeitsdatum für Spesen oder Steuerzahlungen. Für Gehälter wird das Datum des Periodenendes verwendet. -RulesResultInOut=- Es enthält die tatsächlichen Zahlungen auf Rechnungen, Ausgaben, Mehrwertsteuer und Gehälter.
    - Es basiert auf den Zahlungsterminen der Rechnungen, Spesen, Mehrwertsteuer, Spenden und Gehälter. -RulesCADue=- Es enthält die fälligen Rechnungen des Kunden, ob diese bezahlt sind oder nicht.
    - Es basiert auf dem Rechnungsdatum dieser Rechnungen.
    -RulesCAIn=- Es umfasst alle effektiven Zahlungen von Rechnungen, die von Kunden erhalten wurden.
    - Es basiert auf dem Zahlungsdatum dieser Rechnungen.
    -RulesCATotalSaleJournal=Es beinhaltet alle Gutschriftspositionen aus dem Verkaufsjournal. -RulesSalesTurnoverOfIncomeAccounts=Es umfasst (Gutschrift - Lastschrift) von Zeilen für Produktkonten in der Gruppe EINKOMMEN +RulesResultDue=- Es sind alle Rechnungen, Ausgaben, Mehrwertsteuer, Spenden, Gehälter, unabhängig davon, ob sie bezahlt wurden oder nicht, enthalten.
    - Basis ist das Fälligkeitsdatum von Rechnungen und das Fälligkeitsdatum für Spesen oder Steuerzahlungen. Für Gehälter wird das Datum des Periodenendes verwendet. +RulesResultInOut=- Enthalten sind die tatsächlichen Zahlungen auf Rechnungen, Ausgaben, Mehrwertsteuer und Gehälter.
    - Basis ist der Zahlungstermin der Rechnungen, Spesen, Mehrwertsteuer, Spenden und Gehälter. +RulesCADue=- Fällige Kundenrechnungen sind enthalten, ob diese bezahlt sind oder nicht.
    - Basis ist das Rechnungsdatum dieser Rechnungen.
    +RulesCAIn=- Enthalten sind alle effektiven Zahlungen von Rechnungen, die von Kunden erhalten wurden.
    - Basis ist das Zahlungsdatum dieser Rechnungen.
    +RulesCATotalSaleJournal=Alle Gutschriftspositionen aus dem Verkaufsjournal sind einbezogen. +RulesSalesTurnoverOfIncomeAccounts=Buchungen (Soll - Haben) von Positionen für Produktkonten in der Gruppe "Ertrag" sind enthalten RulesAmountOnInOutBookkeepingRecord=Beinhaltet Datensätze aus dem Hauptbuch mit den Gruppen "Aufwand" oder "Ertrag" RulesResultBookkeepingPredefined=Beinhaltet Datensätze aus dem Hauptbuch mit den Gruppen "Aufwand" oder "Ertrag" RulesResultBookkeepingPersonalized=Zeigt die Buchungen im Hauptbuch mit Konten gruppiert nach Kontengruppen @@ -220,7 +222,7 @@ InvoiceStats=Rechnungen Statistik Dispatch=Versenden Dispatched=Versendet ToDispatch=Zu versenden -ThirdPartyMustBeEditAsCustomer=Partner muss als Kunde definiert werden +ThirdPartyMustBeEditAsCustomer=Geschäftspartner muss als Kunde definiert werden SellsJournal=Verkaufsjournal PurchasesJournal=Einkaufsjournal DescSellsJournal=Verkaufsjournal @@ -228,10 +230,10 @@ DescPurchasesJournal=Einkaufsjournal CodeNotDef=Nicht definiert WarningDepositsNotIncluded=Anzahlungsrechnungen werden in dieser Version des Rechnungswesens nicht berücksichtigt. DatePaymentTermCantBeLowerThanObjectDate=Die Zahlungsfrist darf nicht kleiner als das Objektdatum sein -Pcg_version=Kontenplan Modelle +Pcg_version=Kontenplan-Vorlagen Pcg_type=Klasse des Kontos Pcg_subtype=Klasse des Kontos -InvoiceLinesToDispatch=versandbereite Rechnungspositionen +InvoiceLinesToDispatch=Versandbereite Rechnungspositionen ByProductsAndServices=Nach Produkten und Leistungen RefExt=Externe Referenz ToCreateAPredefinedInvoice=Um eine Vorlagenrechnung zu erstellen, erstellen Sie eine Standardrechnung und klicken Sie dann ohne Validierung auf die Schaltfläche "%s". @@ -243,14 +245,14 @@ CalculationRuleDescSupplier=Wählen Sie je nach Anbieter die geeignete Methode a TurnoverPerProductInCommitmentAccountingNotRelevant=Der Umsatzbericht pro Produkt ist nicht verfügbar. Dieser Bericht ist nur für verrechneten Umsatz verfügbar. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Der Umsatzbericht pro Ust.-Satz ist nicht verfügbar. Dieser Bericht ist nur für den verrechneten Umsatz verfügbar. CalculationMode=Berechnungsmodus -AccountancyJournal=Kontierungscode-Journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Standard Buchhaltungs-Konto für Mehrwertsteuer - USt. auf Umsatz (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt-Sätze mit Kontozuordnungen hinterlegt sind) -ACCOUNTING_VAT_BUY_ACCOUNT=Standard Buchhaltungs-Konto für Vorsteuer - USt. bei Einkäufen (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt.-Sätze mit Kontozuordnungen hinterlegt sind) -ACCOUNTING_VAT_PAY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen -ACCOUNTING_ACCOUNT_CUSTOMER=Standard Buchhaltungskonto für Kunden/Debitoren (wenn nicht beim Partner definiert) -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Das beim Geschäftspartner definierte spezielle Buchhaltungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein eigenes Debitorenbuchhaltungskonto für den Geschäftspartner definiert ist. -ACCOUNTING_ACCOUNT_SUPPLIER=Buchhaltungskonto für Lieferanten/Kreditoren -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Das beim Geschäftspartner definierte spezielle Buchhaltungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein dediziertes Kreditorenbuchhaltungskonto für den Partner definiert ist. +AccountancyJournal=Erfassung in Journal +ACCOUNTING_VAT_SOLD_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die Umsatzsteuer auf Verkäufe verwendet werden soll (wird verwendet, wenn nicht in den Umsatzsteuer-Stammdaten definiert) +ACCOUNTING_VAT_BUY_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die Umsatzsteuer auf Einkäufe verwendet werden soll (wird verwendet, wenn nicht in den Umsatzsteuer-Stammdaten definiert) +ACCOUNTING_VAT_PAY_ACCOUNT=Konto (aus dem Kontenplan), das als Standard-Aufwandskonto für die Zahlung der Umsatzsteuer verwendet werden soll +ACCOUNTING_ACCOUNT_CUSTOMER=Konto (aus dem Kontenplan), das für Geschäftspartner, die „Kunde" sind, verwendet wird +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Das beim Geschäftspartner definierte spezielle Buchungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein eigenes Debitorenbuchungskonto für den Geschäftspartner definiert ist. +ACCOUNTING_ACCOUNT_SUPPLIER=Konto (aus dem Kontenplan), das für Geschäftspartner, die "Lieferanten" sind, verwendet wird +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Das beim Geschäftspartner definierte spezielle Buchungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein dediziertes Kreditorenbuchungskonto für den Geschäftspartner definiert ist. ConfirmCloneTax=Duplizierung der Steuer-/Sozialabgaben bestätigen ConfirmCloneVAT=Bestätigen Sie den Klon einer Mehrwertsteuererklärung ConfirmCloneSalary=Bestätige das Klonen der Gehaltsangabe @@ -266,7 +268,7 @@ ImportDataset_tax_contrib=Steuern/Sozialabgaben ImportDataset_tax_vat=USt.-Zahlungen ErrorBankAccountNotFound=Fehler: Bankkonto nicht gefunden FiscalPeriod=Buchhaltungsperiode -ListSocialContributionAssociatedProject=Liste der Sozialabgaben für dieses Projekt +ListSocialContributionAssociatedProject=Liste der mit dem Projekt verbundenen Sozialabgaben DeleteFromCat=Aus Kontengruppe entfernen AccountingAffectation=Kontierung zuweisen LastDayTaxIsRelatedTo=Letzter Tag an dem die Steuer relevant ist @@ -274,7 +276,7 @@ VATDue=Umsatzsteuer beansprucht ClaimedForThisPeriod=Beantragt in der Periode PaidDuringThisPeriod=Für diesen Zeitraum bezahlt PaidDuringThisPeriodDesc=Dies ist die Summe aller Zahlungen im Zusammenhang mit Mehrwertsteuererklärungen, deren Periodenende im ausgewählten Zeitraum liegt -ByVatRate=Pro Steuersatz +ByVatRate=Nach Steuersätzen TurnoverbyVatrate=Verrechneter Umsatz pro Steuersatz TurnoverCollectedbyVatrate=Realisierter Umsatz pro Steuersatz PurchasebyVatrate=Einkäufe pro Steuersatz @@ -282,9 +284,9 @@ LabelToShow=Kurzbezeichnung PurchaseTurnover=Einkaufsumsatz PurchaseTurnoverCollected=Einkaufsumsatz abgerechnet RulesPurchaseTurnoverDue=- Es enthält die fälligen Rechnungen des Lieferanten, ob diese bezahlt sind oder nicht.
    - Es basiert auf dem Rechnungsdatum dieser Rechnungen.
    -RulesPurchaseTurnoverIn=- Es umfasst alle effektiven Zahlungen von Rechnungen an Lieferanten.
    - Es basiert auf dem Zahlungsdatum dieser Rechnungen
    +RulesPurchaseTurnoverIn=- Es umfasst alle effektiven Zahlungen von Rechnungen an Lieferanten.
    - Es basiert auf dem Zahlungsdatum dieser Rechnungen.
    RulesPurchaseTurnoverTotalPurchaseJournal=Es enthält alle Belastungszeilen aus dem Einkaufsjournal. -RulesPurchaseTurnoverOfExpenseAccounts=Es umfasst (Lastschrift - Gutschrift) von Zeilen für Produktkonten in der Gruppe AUSGABEN +RulesPurchaseTurnoverOfExpenseAccounts=Umfasst Buchungen (Soll - Haben) von Positionen für Produktkonten in der Gruppe "Aufwand". ReportPurchaseTurnover=Einkaufsumsatz fakturiert ReportPurchaseTurnoverCollected=Einkaufsumsatz abgerechnet IncludeVarpaysInResults = Nehmen Sie verschiedene Zahlungen in Berichte auf @@ -298,5 +300,6 @@ InvoiceNotLate30Days = Demnächst fällig (> 30 Tage) InvoiceToPay=Zu zahlen (< 15 Tage) InvoiceToPay15Days=Zu zahlen (15 bis 30 Tage) InvoiceToPay30Days=Zu zahlen (> 30 Tage) -ConfirmPreselectAccount=Buchhaltungscode vorbelegen +ConfirmPreselectAccount=Buchungskonto vorbelegen ConfirmPreselectAccountQuestion=Möchten Sie die %s ausgewählten Zeilen wirklich mit diesem Buchhaltungscode vorbelegen? +AmountPaidMustMatchAmountOfDownPayment=Der gezahlte Betrag muss mit dem Betrag der Anzahlung übereinstimmen diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index 87886ef5226..1fdb8b46c12 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -3,17 +3,17 @@ ContractsArea=Übersicht Verträge/Abonnements ListOfContracts=Liste der Verträge AllContracts=Alle Verträge ContractCard=Vertrag – Übersicht -ContractStatusNotRunning=Nicht aktiviert +ContractStatusNotRunning=Nicht aktiv ContractStatusDraft=Entwurf ContractStatusValidated=Freigegeben -ContractStatusClosed=Geschlossen -ServiceStatusInitial=Nicht aktiviert +ContractStatusClosed=Beendet +ServiceStatusInitial=Nicht aktiv ServiceStatusRunning=Läuft -ServiceStatusNotLate=Läuft (noch nicht abgelaufen) +ServiceStatusNotLate=Aktiv ServiceStatusNotLateShort=Nicht abgelaufen ServiceStatusLate=Läuft (abgelaufen) ServiceStatusLateShort=Abgelaufen -ServiceStatusClosed=Geschlossen +ServiceStatusClosed=Beendet ShowContractOfService=Zeige Vertrag zur Leistung Contracts=Verträge ContractsSubscriptions=Verträge/Abonnements @@ -27,7 +27,7 @@ MenuServices=Leistungen MenuInactiveServices=Inaktive Leistungen MenuRunningServices=Aktive Leistungen MenuExpiredServices=Abgelaufene Leistungen -MenuClosedServices=Geschlossene Leistungen +MenuClosedServices=Beendete Leistungen NewContract=Neuer Vertrag NewContractSubscription=Neuer Vertrag oder Abonnement AddContract=Vertrag erstellen @@ -37,7 +37,7 @@ CloseAContract=Vertrag schließen ConfirmDeleteAContract=Möchten Sie diesen Vertrag und alle verbundenen Leistungen wirklich löschen? ConfirmValidateContract=Möchten Sie diesen Vertrag wirklich unter dem Namen %s freigeben? ConfirmActivateAllOnContract=Dies wird alle Leistungen aktivieren, die noch nicht aktiv sind. Sollen wirklich alle Leistungen aktiviert werden? -ConfirmCloseContract=Es werden alle Leistungen geschlossen (auch laufende). Möchten Sie diesen Vertrag wirklich schließen? +ConfirmCloseContract=Es werden alle Leistungen beendet (auch laufende). Möchten Sie diesen Vertrag wirklich schließen? ConfirmCloseService=Möchten Sie diese Leistung wirklich mit Datum %s deaktivieren? ValidateAContract=Einen Vertrag freigeben ActivateService=Leistung aktivieren @@ -48,7 +48,7 @@ DateServiceActivate=Aktivierungsdatum der Leistung ListOfServices=Liste der Leistungen ListOfInactiveServices=Liste der nicht aktiven Leistungen ListOfExpiredServices=Liste der abgelaufenen, aktiven Leistungen -ListOfClosedServices=Liste der geschlossenen Leistungen +ListOfClosedServices=Liste der beendeten Leistungen ListOfRunningServices=Liste aktiver Leistungen NotActivatedServices=Inaktive Leistungen (in freigegebenen Verträgen) BoardNotActivatedServices=Zu aktivierende Leistungen in freigegebenen Verträgen @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Möchten Sie diese Vertragsposition wirklich löschen? MoveToAnotherContract=Leistung in anderen Vertrag verschieben. ConfirmMoveToAnotherContract=Neuer Vertrag als Ziel für das Verschieben gewählt. Die Leistung jetzt in diesen Vertrag verschieben. ConfirmMoveToAnotherContractQuestion=Auswählen, in welchen bestehenden Vertrag (desselben Geschäftspartners) diese Leistung verschoben werden soll? -PaymentRenewContractId=Verlängere Vertragsposition (Nummer %s) +PaymentRenewContractId=Vertrag verlängern %s (Leistung %s) ExpiredSince=Ablaufdatum NoExpiredServices=Keine abgelaufen aktiven Leistungen ListOfServicesToExpireWithDuration=Liste der Leistungen die in %s Tagen ablaufen diff --git a/htdocs/langs/de_DE/cron.lang b/htdocs/langs/de_DE/cron.lang index 2d6a6b86deb..fb71ac7e632 100644 --- a/htdocs/langs/de_DE/cron.lang +++ b/htdocs/langs/de_DE/cron.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - cron # About page # Right -Permission23101 = geplante Aufgabe einsehen -Permission23102 = Erstelle/ändere geplanten Job +Permission23101 = Geplante Aufgabe einsehen +Permission23102 = Erstelle/aktualisiere geplanten Job Permission23103 = Lösche geplanten Job Permission23104 = Führe geplanten Job aus # Admin @@ -16,7 +16,7 @@ CronExplainHowToRunWin=In Microsoft™ Windows Umgebungen können Sie die Aufgab CronMethodDoesNotExists=Klasse %s enthält keine Methode %s CronMethodNotAllowed=Die Methode %s der Klasse %s befindet sich in der schwarzen Liste der verbotenen Methoden CronJobDefDesc=Cron-Jobprofile sind in der Moduldeskriptordatei definiert. Wenn das Modul aktiviert ist, sind diese geladen und verfügbar, so dass Sie die Jobs über das Menü admin tools %s verwalten können. -CronJobProfiles=Liste vordefinierter Cron-Jobprofile +CronJobProfiles=Liste vordefinierter Cron-Job Profile # Menu EnabledAndDisabled=Aktiviert und deaktiviert # Page list @@ -26,7 +26,7 @@ CronCommand=Befehl CronList=Geplante Jobs CronDelete=Geplante Jobs löschen CronConfirmDelete=Sind Sie sicher, dass Sie diese geplanten Aufträge jetzt löschen möchten? -CronExecute=Geplanten Job jetzt ausführen +CronExecute=Jetzt starten CronConfirmExecute=Sind Sie sicher, dass Sie diese geplante Aufträge jetzt ausführen möchten? CronInfo=Das Modul "Cron-Jobs" erlaubt es Aufgaben zu bestimmten Zeitpunkten auszuführen. Die Aufgaben können auch manuell gestartet werden. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Kommentar CronFieldMandatory=Feld %s ist zwingend nötig CronErrEndDateStartDt=Enddatum kann nicht vor dem Startdatum liegen StatusAtInstall=Status bei der Modulinstallation -CronStatusActiveBtn=Zeitplan +CronStatusActiveBtn=Zeitplanung aktivieren CronStatusInactiveBtn=Deaktivieren CronTaskInactive=Dieser Job ist deaktiviert (keine Ausführung geplant) CronId=ID @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Lokales Datenbank-Backup MakeLocalDatabaseDump=Erstellen Sie einen lokalen Datenbankspeicherauszug. Parameter sind: Komprimierung ('gz' oder 'bz' oder 'none'), Sicherungstyp ('mysql', 'pgsql', 'auto'), 1, 'auto' oder zu erstellender Dateiname, Anzahl der zu speichernden Sicherungsdateien MakeSendLocalDatabaseDumpShort=Lokale Datenbanksicherung senden MakeSendLocalDatabaseDump=Lokale Datenbanksicherung per E-Mail senden. Parameter sind: an, von, Betreff, Nachricht, Dateiname (Name der gesendeten Datei), Filter ('sql' nur für Backup der Datenbank). +BackupIsTooLargeSend=Die letzte Sicherungsdatei ist zu groß, um per E-Mail gesendet zu werden +CleanUnfinishedCronjobShort=Unbeendeten Cronjob bereinigen +CleanUnfinishedCronjob=Bereinigen eines in der Verarbeitung hängengebliebenen Cronjob, wenn der Prozess nicht mehr ausgeführt wird WarningCronDelayed=Bitte beachten: Aus Leistungsgründen können Ihre Jobs um bis zu %s Stunden verzögert werden, unabhängig vom nächsten Ausführungstermin. DATAPOLICYJob=Datenbereiniger und Anonymisierer JobXMustBeEnabled=Job %s muss aktiviert sein +EmailIfError=E-Mail zur Warnung bei Fehler +ErrorInBatch=Fehler beim Ausführen des Jobs %s + # Cron Boxes LastExecutedScheduledJob=Zuletzt ausgeführter geplanter Job NextScheduledJobExecute=Nächster geplanter Job, der ausgeführt werden soll NumberScheduledJobError=Anzahl der fehlerhaften geplanten Jobs +NumberScheduledJobNeverFinished=Anzahl der geplanten Jobs, die nie beendet wurden diff --git a/htdocs/langs/de_DE/datapolicy.lang b/htdocs/langs/de_DE/datapolicy.lang new file mode 100644 index 00000000000..4880c97ae67 --- /dev/null +++ b/htdocs/langs/de_DE/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Datenschutzrichtlinien +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul zur Verwaltung der Datenschutzeinstellungen (DSGVO-Konform) + +# +# Administration page +# +datapolicySetup = Modul Datenschutzrichtlinien einrichten +Deletion = Löschung von Daten +datapolicySetupPage = Abhängig von den Gesetzen Ihres Landes (Beispiel Artikel 5 der DSGVO) müssen personenbezogene Daten für einen Zeitraum aufbewahrt werden, der den für die Zwecke, für die sie erhoben wurden, erforderlichen Zeitraum nicht überschreitet, mit Ausnahme von Archivierungszwecken.
    Die Löschung erfolgt automatisch nach einer bestimmten Dauer ohne Ereignis (die Dauer, die Sie unten angegeben haben). +NB_MONTHS = %s Monate +ONE_YEAR = 1 Jahr +NB_YEARS = %s Jahre +DATAPOLICY_TIERS_CLIENT = Kunde +DATAPOLICY_TIERS_PROSPECT = Interessent +DATAPOLICY_TIERS_PROSPECT_CLIENT = Interessent/Kunde +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Weder Interessent noch Kunde +DATAPOLICY_TIERS_FOURNISSEUR = Lieferant +DATAPOLICY_CONTACT_CLIENT = Kunde +DATAPOLICY_CONTACT_PROSPECT = Interessent +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Interessent/Kunde +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Weder Interessent noch Kunde +DATAPOLICY_CONTACT_FOURNISSEUR = Lieferant +DATAPOLICY_ADHERENT = Mitglied +DATAPOLICY_Tooltip_SETUP = Art des Kontakts – Geben Sie Ihre Auswahl für jede Art an. +DATAPOLICYMail = E-Mail-Einrichtung +DATAPOLICYSUBJECTMAIL = Betreff der E-Mail +DATAPOLICYCONTENTMAIL = Inhalt der E-Mail +DATAPOLICYSUBSITUTION = Sie können die folgenden Variablen in Ihrer E-Mail verwenden (LINKACCEPT ermöglicht es, einen Link zu erstellen, der die Zustimmung der Person aufzeichnet, LINKREFUSED ermöglicht es, die Ablehnung der Person aufzuzeichnen): +DATAPOLICYACCEPT = Nachricht nach einer Zustimmung +DATAPOLICYREFUSE = Nachricht nach einer Ablehnung +SendAgreementText = Sie können eine DSGVO-E-Mail an alle Ihre relevanten Kontakte senden (die noch keine E-Mail erhalten haben und für die Sie nichts über ihre DSGVO-Vereinbarung registriert haben). Verwenden Sie dazu die folgende Schaltfläche. +SendAgreement = E-Mails senden +AllAgreementSend = Alle E-Mails wurden versendet +TXTLINKDATAPOLICYACCEPT = Text für den Link "Zustimmung" +TXTLINKDATAPOLICYREFUSE = Text für den Link "Ablehnung" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = DSGVO: Verarbeitung personenbezogener Daten +DATAPOLICY_consentement = Einwilligung zur Verarbeitung personenbezogener Daten eingeholt +DATAPOLICY_opposition_traitement = Widerspricht der Verarbeitung seiner personenbezogenen Daten +DATAPOLICY_opposition_prospection = widersetzt sich der Verarbeitung seiner personenbezogenen Daten zum Zwecke der Kundenakquise + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymisieren Sie einen Geschäftspartner +DATAPOLICY_POPUP_ANONYME_TEXTE = Sie können diesen Kontakt nicht aus Dolibarr löschen, da es zugeordnete Objekte gibt. In Übereinstimmung mit der DSGVO werden alle diese Daten anonymisiert, um Ihren Verpflichtungen nachzukommen. Möchten Sie fortfahren ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Übertragbarkeit DSGVO +DATAPOLICY_PORTABILITE_TITLE = Export personenbezogener Daten +DATAPOLICY_PORTABILITE_CONFIRMATION = Sie möchten die personenbezogenen Daten dieses Kontakts exportieren. Sind Sie sicher ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymisiert die %s + +# V2 +DATAPOLICYReturn = DSGVO-Validierung +DATAPOLICY_date = Datum der Zustimmung/Ablehnung DSGVO +DATAPOLICY_send = Datum, an dem die Vereinbarungs-E-Mail gesendet wird +DATAPOLICYReturn = DSGVO-Validierung +DATAPOLICY_SEND = DSGVO-E-Mail senden +MailSent = Die Email wurde verschickt + +# ERROR +ErrorSubjectIsRequired = Fehler: Der Betreff der E-Mail ist erforderlich. Geben Sie ihn im Modul-Setup an +=Aufgrund eines technischen Problems konnten wir Ihre Auswahl nicht registrieren. Wir bitten dafür um Entschuldigung. Kontaktieren Sie uns, um uns Ihre Wahl zu senden. +NUMBER_MONTH_BEFORE_DELETION = Anzahl der Monate bis zum Löschen diff --git a/htdocs/langs/de_DE/dict.lang b/htdocs/langs/de_DE/dict.lang index 09e842d86b7..d28eed5e738 100644 --- a/htdocs/langs/de_DE/dict.lang +++ b/htdocs/langs/de_DE/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Frau +CivilityMMEShort=Frau CivilityMR=Herr +CivilityMRShort=Herr CivilityMLE=Frau CivilityMTRE=Professor CivilityDR=Doktor diff --git a/htdocs/langs/de_DE/ecm.lang b/htdocs/langs/de_DE/ecm.lang index f8a78c892f1..f5a10c0deb2 100644 --- a/htdocs/langs/de_DE/ecm.lang +++ b/htdocs/langs/de_DE/ecm.lang @@ -5,18 +5,21 @@ ECMSectionManual=Manueller Ordner ECMSectionAuto=Automatischer Ordner ECMSectionsManual=Manuelle Hierarchie ECMSectionsAuto=Automatische Hierarchie +ECMSectionsMedias=Verzeichnisbaum Medien ECMSections=Verzeichnisse (Ordner) ECMRoot=Stammverzeichnis ECMNewSection=Neuer Ordner ECMAddSection=Verzeichnis hinzufügen -ECMCreationDate=Erstellungsdatum +ECMCreationDate=Erstellungszeitpunkt ECMNbOfFilesInDir=Anzahl der Dateien im Verzeichnis ECMNbOfSubDir=Anzahl Unterverzeichnisse ECMNbOfFilesInSubDir=Anzahl der Dateien in Unterverzeichnissen ECMCreationUser=Autor ECMArea=DMS/ECM Bereich ECMAreaDesc=Der Bereich DMS/ECM (Document Management System / Electronic Content Management) ermöglicht Ihnen das schnelle Speichern, Teilen und Durchsuchen von Dokumenten aller Art in Dolibarr. -ECMAreaDesc2=* In den automatischen Verzeichnissen werden die vom System erzeugten Dokumente abgelegt.
    * Die manuellen Verzeichnisse können Sie selbst verwalten und zusätzliche nicht direkt zuordenbare Dokumente hinterlegen. +ECMAreaDesc2a=* Manuelle Verzeichnisse können verwendet werden, um Dokumente zu speichern, die nicht mit einem bestimmten Element verknüpft sind. +ECMAreaDesc2b=* Automatische Verzeichnisse werden automatisch gefüllt, wenn Dokumente von der Seite eines Elements hinzugefügt werden. +ECMAreaDesc3=* Medienverzeichnis umfasst Dateien im Unterverzeichnis /medias des Dokumentenverzeichnisses, die von jedem gelesen werden können, ohne dass eine Anmeldung erforderlich ist und die Datei nicht explizit freigegeben werden muss. Es wird verwendet, um Bilddateien von E-Mail- oder Website-Modulen zu speichern. ECMSectionWasRemoved=Verzeichnis %s wurde gelöscht. ECMSectionWasCreated=Verzeichnis %s wurde erstellt. ECMSearchByKeywords=Suche nach Stichwörtern diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index 4e2848c6be9..0553f3ba730 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Benutzername %s existiert bereits. ErrorGroupAlreadyExists=Gruppe %s existiert bereits. ErrorEmailAlreadyExists=E-Mail %s existiert bereits. ErrorRecordNotFound=Eintrag wurde nicht gefunden. +ErrorRecordNotFoundShort=Nicht gefunden ErrorFailToCopyFile=Konnte die Datei '%s' nicht nach '%s' kopieren. ErrorFailToCopyDir=Konnte Verzeichnis '%s' nicht nach '%s' kopieren. ErrorFailToRenameFile=Konnte die Datei '%s' nicht in '%s' umbenennen. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Bildformat nicht unsterstützt (Ihr PHP hat keine Konvertier ErrorBadDateFormat=Eintrag '%s' hat falsche Datumsformat ErrorWrongDate=Falsches Datum! ErrorFailedToWriteInDir=Fehler beim Schreiben in das Verzeichnis %s +ErrorFailedToBuildArchive=Archivdatei %s konnte nicht erstellt werden ErrorFoundBadEmailInFile=Ungültige E-Mail-Adresse in %s Zeilen der Datei gefunden (z.B. Zeile %s mit E-Mail=%s) ErrorUserCannotBeDelete=Dieser Benutzer kann nicht gelöscht werden. Eventuell ist er noch mit einem Partner verknüpft. ErrorFieldsRequired=Einige erforderliche Felder wurden leer gelassen. @@ -59,7 +61,7 @@ ErrorFeatureNeedJavascript=Diese Funktion erfordert aktiviertes JavaScript. Sie ErrorTopMenuMustHaveAParentWithId0=Ein Menü vom Typ 'Top' kann kein Eltern-Menü sein. Setzen Sie 0 als Eltern-Menü oder wählen Sie ein Menü vom Typ 'Links'. ErrorLeftMenuMustHaveAParentId=Ein Menü vom Typ 'Links' erfordert einen Eltern-Menü ID. ErrorFileNotFound=Datei '%s' konnte nicht gefunden werden (Ungültiger Pfad, falsche Berechtigungen oder der Zugriff wurde durch safemode- oder openbasedir-Parameter eingeschränkt) -ErrorDirNotFound=Verzeichnis %s konnte nicht gefunden werden (Ungültiger Pfad, falsche Berechtigungen oder Zugriff durch safemode- oder openbasedir-Parameter eingeschränkte) +ErrorDirNotFound=Verzeichnis %s konnte nicht gefunden werden (Ungültiger Pfad, falsche Berechtigungen oder Zugriff durch safemode- oder openbasedir-Parameter eingeschränkt) ErrorFunctionNotAvailableInPHP=Die PHP-Funktion %s ist für diese Funktion erforderlich, in dieser PHP-Konfiguration jedoch nicht verfügbar. ErrorDirAlreadyExists=Ein Verzeichnis mit diesem Namen existiert bereits. ErrorFileAlreadyExists=Eine Datei mit diesem Namen existiert bereits. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Bitte Wert für Kontrollkästchen-Liste eingeben ErrorNoValueForRadioType=Bitte Wert für Radiobutton-Liste eingeben ErrorBadFormatValueList=Die Listewerte kann nicht mehr als ein Komma:%s , muss jedoch mindestens einen Schlüssel, Wert beinhalten ErrorFieldCanNotContainSpecialCharacters=Das Feld %s darf keine Sonderzeichen enthalten. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf keine Sonderzeichen, Großbuchstaben und Leerzeichen enthalten und darf nicht nur aus Ziffern bestehen. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf weder Sonderzeichen noch Großbuchstaben enthalten und muss mit einem Buchstaben (a-z) beginnen ErrorFieldMustHaveXChar=Das Feld %s muss aus mindestens %s Zeichen bestehen. ErrorNoAccountancyModuleLoaded=Kein Buchhaltungsmodul aktiviert ErrorExportDuplicateProfil=Dieser Profilname existiert bereits für dieses Exportprofil. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Diese Funktion erfordert aktiviertes JavaScript. Ak ErrorPasswordsMustMatch=Die eingegebenen Passwörter müssen identisch sein. ErrorContactEMail=Ein technischer Fehler ist aufgetreten. Bitte kontaktieren Sie Ihren Administrator unter der folgenden E-Mail-Adresse %s und fügen Sie den Fehlercode %s in Ihrer Nachricht ein, oder (noch besser) fügen Sie einen Screenshot dieser Seite als Anhang bei. ErrorWrongValueForField=Feld %s (Wert '%s' passt nicht zur Regex-Regel %s) +ErrorHtmlInjectionForField=Feld %s : Der Wert '%s' enthält schädliche Daten, die nicht erlaubt sind ErrorFieldValueNotIn=Feld %s: '%s' ist kein Wert in Feld %s von %s ErrorFieldRefNotIn=Das Feld %s : ' %s ' ist keine %s Referenz +ErrorMultipleRecordFoundFromRef=Mehrere Datensätze gefunden bei der Suche von Ref.Nr. %s. Es ist daher unklar, welche ID verwendet werden soll. ErrorsOnXLines=%s Fehler gefunden ErrorFileIsInfectedWithAVirus=Der Virenschutz konnte diese Datei nicht freigeben (eventuell ist diese mit einem Virus infiziert) -ErrorSpecialCharNotAllowedForField=Sonderzeichen sind im Feld '%s' nicht erlaubt ErrorNumRefModel=Es besteht ein Bezug zur Datenbank (%s) der mit dieser Numerierungsfolge nicht kompatibel ist. Entfernen Sie den Eintrag oder benennen Sie den Verweis um, um dieses Modul zu aktivieren. ErrorQtyTooLowForThisSupplier=Menge zu niedrig für diesen Lieferanten oder kein für dieses Produkt definierter Preis für diesen Lieferanten ErrorOrdersNotCreatedQtyTooLow=Einige Bestellungen wurden aufgrund zu geringer Mengen nicht erstellt @@ -108,7 +111,7 @@ ErrorMaxNumberReachForThisMask=Maximale Anzahl für diese Maske erreicht ErrorCounterMustHaveMoreThan3Digits=Zähler muss mehr als 3 Stellen haben ErrorSelectAtLeastOne=Fehler, bitte mindestens einen Eintrag wählen. ErrorDeleteNotPossibleLineIsConsolidated=Löschen nicht möglich, da der Datensatz mit einer Banktransaktion verbunden ist. -ErrorProdIdAlreadyExist=%s wurde bereits einem Partner zugewiesen +ErrorProdIdAlreadyExist=%s wurde bereits einem Geschäftspartner zugewiesen ErrorFailedToSendPassword=Fehler beim Zusenden des Passworts ErrorFailedToLoadRSSFile=RSS-Feeds welche Fehler erhalten. Versuchen Sie die Konstante 'MAIN_SIMPLEXMLLOAD_DEBUG' hinzufügen, wenn die Fehlermeldungen nicht genügend Informationen enthält. ErrorForbidden=Zugriff verweigert.
    Sie haben versucht eine Seite, Bereich oder Funktion aufzurufen die deaktiviert ist oder sie haben keine Berechtigung dazu. @@ -150,10 +153,10 @@ ErrorDateMustBeInFuture=Das Datum muss älter sein als heute ErrorPaymentModeDefinedToWithoutSetup=Eine Zahlungsart wurde auf Typ %s gesetzt, aber das Rechnungsmodul wurde noch nicht konfiguriert dies anzuzeigen. ErrorPHPNeedModule=Fehler, Ihr PHP muss das Modul %s installiert haben um diese Option zu benutzen. ErrorOpenIDSetupNotComplete=Sie haben im Dolibarr Konfigurationsfile eingestellt, dass die Anmeldung mit OpenID möglich ist, aber die URL zum OpenID Service ist noch nicht in %s definiert. -ErrorWarehouseMustDiffers=Quell- und Ziel-Lager müssen unterschiedlich sein +ErrorWarehouseMustDiffers=Ursprungs- und Ziel-Lager müssen unterschiedlich sein ErrorBadFormat=Falsches Format! ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fehler: Dieses Mitglied ist noch nicht mit einem Partner verbunden. Verknüpfen Sie das Mitglied zuerst mit einem vorhandenen Partner oder legen Sie einen neuen an, bevor Sie ein Abonnement mit Rechnung erstellen. -ErrorThereIsSomeDeliveries=Fehler: Es sind noch Auslieferungen zu diesen Versand vorhanden. Löschen deshalb nicht möglich. +ErrorThereIsSomeDeliveries=Fehler: Es sind noch Lieferungen zu diesen Versand vorhanden. Löschen deshalb nicht möglich. ErrorCantDeletePaymentReconciliated=Eine Zahlung, deren Bank-Transaktion schon abgeglichen wurde, kann nicht gelöscht werden ErrorCantDeletePaymentSharedWithPayedInvoice=Eine Zahlung, die zu mindestens einer als bezahlt markierten Rechnung gehört, kann nicht entfernt werden ErrorPriceExpression1=Zur Konstanten '%s' kann nicht zugewiesen werden @@ -177,7 +180,7 @@ ErrorPriceExpression24=Variable '%s' existiert, hat aber keinen Wert ErrorPriceExpressionInternal=Interner Fehler '%s' ErrorPriceExpressionUnknown=Unbekannter Fehler '%s' ErrorSrcAndTargetWarehouseMustDiffers=Quelle und Ziel-Lager müssen unterschiedlich sein -ErrorTryToMakeMoveOnProductRequiringBatchData=Fehler, Sie versuchen Sie eine Lagerbewegung ohne Chargen-/Seriennummer für Produkt '%s' zu machen, welches diese Information benötigt +ErrorTryToMakeMoveOnProductRequiringBatchData=Fehler, Sie versuchen eine Lagerbewegung ohne Chargen-/Seriennummer für Produkt '%s' vorzunehmen, das diese Information benötigt ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Alle erfassten Eingänge müssen zunächst überprüft werden (genehmigt oder abgelehnt), bevor es erlaubt ist diese Aktion auszuführen ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Alle gespeicherten Empfänge müssen erst überprüft werden (zugelassen), bevor es ihm gestattet ist diese Aktion zu tun ErrorGlobalVariableUpdater0=HTTP-Anforderung ist mit dem Fehler '%s' fehlgeschlagen @@ -197,15 +200,15 @@ ErrorFileMustHaveFormat=Die Datei muss das Format %s haben. ErrorFilenameCantStartWithDot=Dateiname darf nicht mit "." beginnen ErrorSupplierCountryIsNotDefined=Land für diesen Lieferanten ist nicht definiert. Muss zuerst korrigiert werden. ErrorsThirdpartyMerge=Fehler beim Zusammenführen der beiden Einträge. Die Anforderung wurde abgebrochen. -ErrorStockIsNotEnoughToAddProductOnOrder=Nicht genug Bestand von Produkt %s, um es einem neuen Auftrag zuzufügen. -ErrorStockIsNotEnoughToAddProductOnInvoice=Nicht genug Bestand von Produkt %s, um es einer neuen Rechnung zuzufügen. -ErrorStockIsNotEnoughToAddProductOnShipment=Nicht genug Bestand von Produkt %s, um es einer neuen Sendung zuzufügen. -ErrorStockIsNotEnoughToAddProductOnProposal=Nicht genug Bestand von Produkt %s, um es einem neuen Angebot zuzufügen. +ErrorStockIsNotEnoughToAddProductOnOrder=Lagerbestand für Produkt %s ist zu niedrig, um es zum neuen Auftrag hinzuzufügen. +ErrorStockIsNotEnoughToAddProductOnInvoice=Lagerbestand für Produkt %s ist zu niedrig, um es zur neuen Rechnung hinzuzufügen. +ErrorStockIsNotEnoughToAddProductOnShipment=Lagerbestand für Produkt %s ist zu niedrig, um es zur neuen Lieferung hinzuzufügen. +ErrorStockIsNotEnoughToAddProductOnProposal=Lagerbestand für Produkt %s ist zu niedrig, um es zum neuen Angebot hinzuzufügen. ErrorFailedToLoadLoginFileForMode=Konnte Loginschlüssel für Modul '%s' nicht ermitteln. ErrorModuleNotFound=Datei des Modul nicht gefunden. -ErrorFieldAccountNotDefinedForBankLine=Buchhaltungskonto nicht definiert für Quellzeile %s(%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Buchhaltungskonto für Rechnung %s (%s) ist undefiniert -ErrorFieldAccountNotDefinedForLine=Buchhaltungskonto nicht definiert für Zeile (%s) +ErrorFieldAccountNotDefinedForBankLine=Buchungskonto nicht definiert für Quell-Position %s(%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Buchungskonto für Rechnung %s (%s) ist undefiniert +ErrorFieldAccountNotDefinedForLine=Buchungskonto nicht definiert für Position (%s) ErrorBankStatementNameMustFollowRegex=Fehler - Name des Kontoauszugs muss dieser Syntax folgen: %s ErrorPhpMailDelivery=Vergewissern Sie sich, dass Sie nicht zu viele Adressaten nutzen und der Inhalt Ihrer Mail nicht nach Spam aussieht. Bitten Sie Ihren Administrator, die Firewall- und Server-Logs zu prüfen, um detailliertere Informationen zu bekommen. ErrorUserNotAssignedToTask=Benutzer muss der Aufgabe zugeteilt sein, um Zeiten erfassen zu können. @@ -217,7 +220,7 @@ ErrorDuplicateTrigger=Fehler, doppelter Triggername %s. Schon geladen durch %s. ErrorNoWarehouseDefined=Fehler, keine Warenlager definiert. ErrorBadLinkSourceSetButBadValueForRef=Der Link ist ungültig. Die Quelle für die Zahlung ist definiert, aber die Referenz ist ungültig. ErrorTooManyErrorsProcessStopped=Zu viele Fehler, Verarbeitung abgebrochen. -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massenfreigabe ist nicht Möglich, wenn die Option um den Lagerbestand zu Verändern eingeschaltet ist (Sie müssen jedes Dokument einzeln freigeben umd das Lager für die Lagerbewegung anzugeben) +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massenfreigabe ist nicht möglich, wenn die Option zur Veränderung des Lagerbestands eingeschaltet ist (jedes Dokument ist einzeln freizugeben, um das Lager für die Lagerbewegung anzugeben) ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s muss im Entwurfstatus sein um es zu bestätigen. ErrorObjectMustHaveLinesToBeValidated=Objekt %s muss Zeilen haben damit es freigegeben werden kann. ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Nur freigegebene Rechnungen können mittels der "Via E-Mail senden" Massenaktion versendet werden. @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objekte müssen den Status 'Aktiv' h ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objekte müssen den Status 'Entwurf' oder 'Deaktiviert' haben, um aktiviert werden zu können ErrorNoFieldWithAttributeShowoncombobox=Kein Feld mit der Eigenschaft 'showoncombobox' in Objektdefinition '%s'. Kann keine Combo-Box anzeigen. ErrorFieldRequiredForProduct=Feld '%s' ist erforderlich für Produkt '%s' +AlreadyTooMuchPostOnThisIPAdress=Sie haben bereits zu viel unter dieser IP-Adresse gepostet. ProblemIsInSetupOfTerminal=Das Problem liegt an der Einrichtung des Terminals %s. ErrorAddAtLeastOneLineFirst=Fügen Sie mindestens eine Zeile hinzu ErrorRecordAlreadyInAccountingDeletionNotPossible=Fehler, Datensatz ist bereits in Buchhaltung übertragen, Löschen nicht möglich. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Sie müssen zuerst Ihren Kontenplan ein ErrorFailedToFindEmailTemplate=Vorlage mit Codename %s konnte nicht gefunden werden ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Die Dauer für die Leistung ist nicht definiert. Es besteht keine Möglichkeit, den Stundenpreis zu berechnen. ErrorActionCommPropertyUserowneridNotDefined=Der Besitzer des Benutzers ist erforderlich -ErrorActionCommBadType=Der ausgewählte Ereignistyp (ID: %n, Code: %s) ist im Wörterbuch für den Ereignistyp nicht vorhanden +ErrorActionCommBadType=Der ausgewählte Ereignistyp (ID: %s, Code: %s) existiert nicht im Verzeichnis für Ereignistypen CheckVersionFail=Versionsprüfung fehlgeschlagen ErrorWrongFileName=Der Dateiname darf nicht __SOMETHING__ enthalten ErrorNotInDictionaryPaymentConditions=Nicht im Dictionary der Zahlungsbedingungen, bitte ändern. ErrorIsNotADraft=%s ist kein Entwurf ErrorExecIdFailed=Befehl "id" kann nicht ausgeführt werden -ErrorBadCharIntoLoginName=Unzulässiges Zeichen im Login-Namen -ErrorRequestTooLarge=Fehler, Anfrage zu groß +ErrorBadCharIntoLoginName=Unzulässiges Zeichen im Feld %s +ErrorRequestTooLarge=Fehler, Anfrage zu groß oder Sitzung abgelaufen ErrorNotApproverForHoliday=Sie sind nicht der Genehmiger für den Urlaub %s ErrorAttributeIsUsedIntoProduct=Dieses Attribut wird in mindestens einer Produktvariante verwendet ErrorAttributeValueIsUsedIntoProduct=Dieser Attributwert wird in mindestens einer Produktvariante verwendet @@ -285,22 +289,34 @@ ErrorPaymentInBothCurrency=Fehler, alle Beträge müssen in die gleiche Spalte e ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Sie versuchen Rechnungen in der Währung %s von einem Konto mit der Währung %s zu bezahlen ErrorInvoiceLoadThirdParty=Das Geschäftspartner-Objekt für Rechnung „%s“ kann nicht geladen werden ErrorInvoiceLoadThirdPartyKey=Geschäftspartner-Schlüssel "%s" ist für Rechnung "%s" nicht vorhanden -ErrorDeleteLineNotAllowedByObjectStatus=Das Löschen einer Zeile ist aufgrund des tatsächlichen Objektstatus nicht zulässig +ErrorDeleteLineNotAllowedByObjectStatus=Das Löschen von Einzelpositionen ist aufgrund des aktuellen Objektstatus nicht zulässig ErrorAjaxRequestFailed=Anfrage fehlgeschlagen +ErrorThirpdartyOrMemberidIsMandatory=Geschäftspartner oder Mitglied ist für die Partnerschaft verpflichtend +ErrorFailedToWriteInTempDirectory=Fehler beim Schreiben in das temporäre Verzeichnis +ErrorQuantityIsLimitedTo=Die Menge ist auf %s begrenzt +ErrorFailedToLoadThirdParty=Geschäftspartner mi id=%s, email=%s, name=%s konnte nicht gefunden/geladen werden +ErrorThisPaymentModeIsNotSepa=Diese Zahlungsart ist kein Bankkonto +ErrorStripeCustomerNotFoundCreateFirst=Stripe-Kunde ist für diesen Geschäftspartner nicht festgelegt (oder auf einen Wert gesetzt, der auf der Stripe-Seite gelöscht wurde). Erstellen Sie ihn zuerst (oder fügen Sie ihn erneut hinzu). +ErrorCharPlusNotSupportedByImapForSearch=Die IMAP-Suche ist nicht in der Lage, im Absender oder Empfänger nach einer Zeichenfolge zu suchen, die das Zeichen + enthält +ErrorTableNotFound=Tabelle %s nicht gefunden +ErrorValueForTooLow=Wert für %s ist zu niedrig +ErrorValueCantBeNull=Der Wert für %s darf nicht null sein +ErrorDateOfMovementLowerThanDateOfFileTransmission=Das Datum der Banküberweisung darf nicht vor dem Datum der Dateiübermittlung liegen +ErrorTooMuchFileInForm=Zu viele Dateien im Formular, die maximale Anzahl beträgt %s Datei(en) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Ihr PHP Parameter upload_max_filesize (%s) ist größer als Parameter post_max_size (%s). Dies ist eine inkonsistente Einstellung. WarningPasswordSetWithNoAccount=Es wurde ein Passwort für dieses Mitglied vergeben, aber kein Benutzer erstellt. Das Passwort wird gespeichert, aber kann nicht für die Anmeldung an Dolibarr verwendet werden. Es kann von einem externen Modul/einer Schnittstelle verwendet werden, aber wenn Sie kein Login oder Passwort für dieses Mitglied definiert müssen, können Sie die Option "Login für jedes Mitglied verwalten" in den Mitgliedseinstellungen deaktivieren. Wenn Sie ein Login aber kein Passwort benötige, lassen Sie dieses Feld leer, um diese Meldung zu deaktivieren. Anmerkung: Die E-Mail-Adresse kann auch zur Anmeldung verwendet werden, wenn das Mitglied mit einem Benutzer verbunden wird. -WarningMandatorySetupNotComplete=Hier klicken, um obligatorische Einstellungen vorzunehmen +WarningMandatorySetupNotComplete=Hier klicken, um die Hauptparameter einzurichten WarningEnableYourModulesApplications=Hier klicken, um Module/Applikationen freizuschalten WarningSafeModeOnCheckExecDir=Achtung: Der PHP-Option safe_mode ist aktiviert, entsprechend müssen Befehle in einem mit safe_mode_exec_dir gekennzeichneten Verzeichnis ausgeführt werden. -WarningBookmarkAlreadyExists=Ein Favorit mit diesem Titel oder dieser Adresse existiert bereits. +WarningBookmarkAlreadyExists=Ein Favorit mit diesem Titel oder dieser Adresse (URL) existiert bereits. WarningPassIsEmpty=Warnung: Derzeit ist kein Datenbankpasswort gesetzt. Dies ist eine Sicherheitslücke. Konfigurieren Sie schnellstmöglich ein Passwort für den Datenbankzugriff und passen Sie Ihre conf.php entsprechend an. -WarningConfFileMustBeReadOnly=Achtung: Die Konfigurationsdatei (htdocs/conf/conf.php) kann von Ihrem Webserver überschrieben werden. Dies ist eine ernstzunehmende Sicherheitslücke. Ändern Sie den Zugriff schnellstmöglich auf reinen Lesezugriff. Wenn Sie Windows und das FAT-Format für Ihre Festplatte nutzen, seien Sie sich bitte bewusst dass dieses Format keine individuellen Dateiberechtigungen unterstützt und so auch nicht völlig sicher ist, +WarningConfFileMustBeReadOnly=Achtung: Die Konfigurationsdatei (htdocs/conf/conf.php) kann von Ihrem Webserver überschrieben werden. Dies ist eine ernstzunehmende Sicherheitslücke. Ändern Sie den Zugriff schnellstmöglich auf reinen Lesezugriff. Wenn Sie Windows und das FAT-Format für Ihre Festplatte nutzen, seien Sie sich bitte bewusst dass dieses Format keine individuellen Dateiberechtigungen unterstützt und so auch nicht völlig sicher ist. WarningsOnXLines=Warnhinweise in %s Quellzeilen WarningNoDocumentModelActivated=Für das Erstellen von Dokumenten ist keine Vorlage gewählt. Eine Standardvorlage wurde ausgewählt, bis Sie die Moduleinstellungen angepasst haben. WarningLockFileDoesNotExists=Achtung, nach Abschluss der Installation müssen Sie die Installations- und Migrationstools durch Hinzufügen der Datei install.lock im Verzeichnis %s deaktivieren. Die Nichterstellung dieser Datei stellt ein schwerwiegendes Sicherheitsrisiko dar. -WarningUntilDirRemoved=Alle Sicherheitswarnungen (nur für Admin-Benutzer sichtbar) bleiben aktiv, solange die Sicherheitsanfälligkeit vorliegt (oder die Konstante MAIN_REMOVE_INSTALL_WARNING in Startseite - Einstellungen - Andere Einstellungen hinzugefügt wird). +WarningUntilDirRemoved=Diese Sicherheitswarnung bleibt aktiv, solange die Schwachstelle vorhanden ist. WarningCloseAlways=Achtung: es wird auch dann geschlossen, wenn der Betrag zwischen Quelle und Ziel unterschiedlich ist. Aktivieren Sie dieses Feature mit Bedacht. WarningUsingThisBoxSlowDown=Warnung: Der Einsatz dieses Widgets verlangsamt Seiten auf denen dieses Widget aktiv ist spürbar. WarningClickToDialUserSetupNotComplete=Die ClickToDial-Informationen für Ihren Benutzer sind nicht vollständig (siehe Registerkarte ClickToDial auf Ihrer Benutzerkarte). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Achtung, Sie können kein Unterkonto direkt erstellen. WarningAvailableOnlyForHTTPSServers=Nur verfügbar, wenn eine HTTPS-gesicherte Verbindung verwendet wird. WarningModuleXDisabledSoYouMayMissEventHere=Das Modul %s wurde nicht aktiviert. Sie können also eine Menge Veranstaltung hier verpassen. WarningPaypalPaymentNotCompatibleWithStrict=Der Wert 'Strict' führt dazu, dass die Online-Zahlungsfunktionen nicht richtig funktionieren. Verwenden Sie stattdessen 'Lax'. +WarningThemeForcedTo=Warnung, das Theme wurde durch die versteckte Konstante MAIN_FORCETHEME auf %s erzwungen +WarningPagesWillBeDeleted=Achtung: dadurch werden auch alle bestehenden Seiten/Container der Website gelöscht. Sie sollten Ihre Website vorher exportieren, damit Sie ein Backup haben, um sie später wieder zu importieren. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Die automatische Freigabe ist deaktiviert, wenn die Option zur Bestandsverringerung auf "Rechnungsfreigabe" eingestellt ist. -<<<<<<< HEAD -======= -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> Branch '15.0' von git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Wert nicht gültig RequireAtLeastXString = Mindestlänge beträgt %s Zeichen @@ -347,12 +361,3 @@ BadSetupOfField = Fehler beim Setup des Feldes BadSetupOfFieldClassNotFoundForValidation = Fehler beim Setup des Feldes: Klasse für Validierung nicht gefunden BadSetupOfFieldFileNotFound = Fehler beim Setup des Feldes: einzubindende Datei nicht gefunden BadSetupOfFieldFetchNotCallable = Fehler beim Setup des Felds: Kann bei der Klasse nicht aufgerufen werden -<<<<<<< HEAD -======= -======= -======= ->>>>>>> Branch '15.0' von git@github.com:Dolibarr/dolibarr.git ->>>>>>> Branch '15.0' von git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> Branch '15.0' von git@github.com:Dolibarr/dolibarr.git ->>>>>>> Branch '15.0' von git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/de_DE/eventorganization.lang b/htdocs/langs/de_DE/eventorganization.lang index 44f758a99b1..02fdde502eb 100644 --- a/htdocs/langs/de_DE/eventorganization.lang +++ b/htdocs/langs/de_DE/eventorganization.lang @@ -26,7 +26,7 @@ EventOrganizationDescriptionLong= Verwalten Sie die Organisation einer Veranstal EventOrganizationMenuLeft = Veranstaltungen EventOrganizationConferenceOrBoothMenuLeft = Konferenzbeitrag oder Stand -PaymentEvent=Zahlung einer Veranstaltung +PaymentEvent=Zahlung für eine Veranstaltung # # Admin page @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Schränkt im Formular zum Erstellen/Hin # Object # EventOrganizationConfOrBooth= Konferenzbeitrag oder Stand +EventOrganizationConfOrBoothes=Konferenzbeiträge oder Stände ManageOrganizeEvent = Veranstaltung organisieren ConferenceOrBooth = Konferenzbeitrag oder Stand ConferenceOrBoothTab = Konferenzbeitrag oder Stand AmountPaid = Bezahlter Betrag DateOfRegistration = Datum der Anmeldung ConferenceOrBoothAttendee = Referent eines Konferenzbeitrags oder Standinhaber +ApplicantOrVisitor=Bewerber oder Besucher +Speaker=Referent # # Template Mail @@ -71,8 +74,8 @@ EventOrganizationEmailAskBooth = Anfrage für Stand EventOrganizationEmailBoothPayment = Bezahlung Ihres Standes EventOrganizationEmailRegistrationPayment = Anmeldung zu einer Veranstaltung EventOrganizationMassEmailAttendees = Kommunikation mit den Teilnehmern -EventOrganizationMassEmailSpeakers = Kommunikation mit den Sprechern -ToSpeakers=An Redner +EventOrganizationMassEmailSpeakers = Kommunikation mit den Referenten +ToSpeakers=An Referenten # # Event @@ -81,7 +84,7 @@ AllowUnknownPeopleSuggestConf=Personen erlauben, Konferenzbeiträge vorzuschlage AllowUnknownPeopleSuggestConfHelp=Unbekannten Personen erlauben, einen Konferenzbeitrag vorzuschlagen, den sie halten möchten AllowUnknownPeopleSuggestBooth=Personen erlauben, sich für einen Stand zu bewerben AllowUnknownPeopleSuggestBoothHelp=Unbekannten Personen erlauben, sich für einen Stand zu bewerben -PriceOfRegistration=Buchungskosten für die Teilnahme +PriceOfRegistration=Kosten für die Teilnahme PriceOfRegistrationHelp=Preis für die Anmeldung/Teilnahme an der Veranstaltung PriceOfBooth=Buchungskosten für einen Stand PriceOfBoothHelp=Buchungskosten für einen Stand @@ -90,7 +93,7 @@ ConferenceOrBoothInformation=Informationen zu Konferenzbeitrag oder Stand Attendees=Teilnehmer ListOfAttendeesOfEvent=Teilnehmerliste des Veranstaltungsprojekts DownloadICSLink = ICS-Link herunterladen -EVENTORGANIZATION_SECUREKEY = Seed, um den Schlüssel für die öffentliche Registrierungsseite zu sichern, die zum Vorschlagen eines Vortrags dient +EVENTORGANIZATION_SECUREKEY = Seed, um den Schlüssel für die öffentliche Registrierungsseite zu sichern, die zum Vorschlagen eines Konferenzbeitrags dient SERVICE_BOOTH_LOCATION = Leistung, die für die Rechnungsposition über einen Stand verwendet wird SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Leistung, die für die Rechnungsposition über eine Teilnahmebuchung einer Veranstaltung verwendet wird NbVotes=Anzahl der Stimmen @@ -112,25 +115,25 @@ EvntOrgRegistrationHelpMessage = Hier können Sie für einen Konferenzbeitrag ab EvntOrgRegistrationConfHelpMessage = Hier können Sie einen neue Konferenzbeitrag vorschlagen, der während der Veranstaltung gehalten werden soll. EvntOrgRegistrationBoothHelpMessage = Hier können Sie sich für einen Stand während der Veranstaltung bewerben. ListOfSuggestedConferences = Liste der vorgeschlagenen Konferenzbeiträge -ListOfSuggestedBooths = Liste der vorgeschlagenen Stände -ListOfConferencesOrBooths=Liste der Konferenzbeiträge und Stände des Veranstaltungsprojekts +ListOfSuggestedBooths=Vorgeschlagene Stände +ListOfConferencesOrBooths=Konferenzbeiträge oder Stände des Veranstaltungsprojekts SuggestConference = Einen neuen Konferenzbeitrag vorschlagen SuggestBooth = Einen Stand vorschlagen ViewAndVote = Vorgeschlagene Veranstaltungen ansehen und abstimmen PublicAttendeeSubscriptionGlobalPage = Öffentlicher Link für die Anmeldung zur Veranstaltung PublicAttendeeSubscriptionPage = Öffentlicher Link für die Anmeldung nur zu dieser Veranstaltung MissingOrBadSecureKey = Der Sicherheitsschlüssel ist ungültig oder fehlt -EvntOrgWelcomeMessage = Mit diesem Formular können Sie sich als neuer Teilnehmer für die Veranstaltung anmelden: %s +EvntOrgWelcomeMessage = Mit diesem Formular können Sie sich als neuer Teilnehmer zur Veranstaltung anmelden EvntOrgDuration = Diese Konferenz beginnt am %s und endet am %s. ConferenceAttendeeFee = Konferenzteilnehmergebühr für die Veranstaltung: '%s' vom %s bis %s. BoothLocationFee = Stand für die Veranstaltung: '%s' vom %s bis %s EventType = Ereignistyp -LabelOfBooth=Stand-Label -LabelOfconference=Konferenz-Label +LabelOfBooth=Standbezeichnung +LabelOfconference=Vortragsbezeichnung ConferenceIsNotConfirmed=Anmeldung nicht möglich, Konferenz ist noch nicht freigegeben DateMustBeBeforeThan=%s muss vor %s sein DateMustBeAfterThan=%s muss nach %s sein - +MaxNbOfAttendeesReached=Die maximale Teilnehmerzahl ist erreicht NewSubscription=Anmeldung OrganizationEventConfRequestWasReceived=Ihr Vorschlag für einen Konferenzbeitrag ist eingegangen OrganizationEventBoothRequestWasReceived=Ihre Anfrage für einen Stand ist eingegangen @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Ihre Zahlung für Ihre Veranst OrganizationEventBulkMailToAttendees=Dies ist eine Erinnerung, dass Sie Teilnehmer der Veranstaltung sind OrganizationEventBulkMailToSpeakers=Dies ist eine Erinnerung, dass Sie an der Veranstaltung als Referent teilnehmen OrganizationEventLinkToThirdParty=Verknüpfung mit Geschäftspartner (Kunde, Lieferant oder Partner) +OrganizationEvenLabelName=Öffentlicher Name des Konferenzbeitrags oder des Standes NewSuggestionOfBooth=Bewerbung für einen Stand NewSuggestionOfConference=Bewerbung für einen Konferenzbeitrag @@ -154,16 +158,17 @@ VoteOk = Ihre Stimme wurde angenommen. AlreadyVoted = Sie haben bereits für diese Veranstaltung abgestimmt. VoteError = Bei der Abstimmung ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. -SubscriptionOk = Ihre Anmeldung wurde bestätigt +SubscriptionOk=Ihre Anmeldung wurde erfasst ConfAttendeeSubscriptionConfirmation = Bestätigung Ihrer Anmeldung zu einer Veranstaltung Attendee = Teilnehmer PaymentConferenceAttendee = Zahlung für Konferenzteilnehmer PaymentBoothLocation = Zahlung für einen Stand DeleteConferenceOrBoothAttendee=Teilnehmer entfernen -RegistrationAndPaymentWereAlreadyRecorder=Für die E-Mail-Adresse %s wurden bereits eine Anmeldung und eine Zahlung erfasst +RegistrationAndPaymentWereAlreadyRecorder=Für die E-Mail-Adresse %s wurden bereits eine Anmeldung und eine Zahlung erfasst EmailAttendee=Teilnehmer-E-Mail +EmailCompany=Firmen-E-Mail EmailCompanyForInvoice=Firmen-E-Mail (für Rechnung, falls abweichend von der Teilnehmer-E-Mail) ErrorSeveralCompaniesWithEmailContactUs=Es wurden mehrere Unternehmen mit dieser E-Mail-Adresse gefunden, sodass wir Ihre Registrierung nicht automatisch freigeben können. Bitte kontaktieren Sie uns unter %s für eine manuelle Freigabe -ErrorSeveralCompaniesWithNameContactUs=Es wurden mehrere Unternehmen mit diesem Namen gefunden, sodass wir Ihre Registrierung nicht automatisch freigeben können. Bitte kontaktieren Sie uns unter %s für eine manuelle Freigabe +ErrorSeveralCompaniesWithNameContactUs=Es wurden mehrere Unternehmen mit diesem Namen gefunden, so dass wir Ihre Registrierung nicht automatisch freigeben können. Bitte kontaktieren Sie uns unter %s für eine manuelle Freigabe NoPublicActionsAllowedForThisEvent=Für diese Veranstaltung sind keine Aktionen für die Öffentlichkeit zugänglich MaxNbOfAttendees=Maximale Teilnehmerzahl diff --git a/htdocs/langs/de_DE/exports.lang b/htdocs/langs/de_DE/exports.lang index e8781a675e0..2899ae434d0 100644 --- a/htdocs/langs/de_DE/exports.lang +++ b/htdocs/langs/de_DE/exports.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - exports ExportsArea=Exporte ImportArea=Import -NewExport=neuer Export -NewImport=neuer Import +NewExport=Neuer Export +NewImport=Neuer Import ExportableDatas=Exportfähige Datensätze ImportableDatas=Importfähige Datensätze SelectExportDataSet=Wählen Sie den zu exportierenden Datensatz... @@ -18,6 +18,7 @@ ExportableFields=Exportfähige Felder ExportedFields=Exportierte Felder ImportModelName=Name des Importprofils ImportModelSaved=Importprofil gespeichert unter dem Namen %s +ImportProfile=Importprofil DatasetToExport=Zu exportierender Datensatz DatasetToImport=Zu importierender Datensatz ChooseFieldsOrdersAndTitle=Wählen Sie die Reihenfolge und Bezeichnung der Felder... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=Art der Zeile (0=Produkt, 1=Leistung) FileWithDataToImport=Datei mit zu importierenden Daten FileToImport=Quelldatei für Import FileMustHaveOneOfFollowingFormat=Die zu importierende Datei muss eines der folgenden Formate haben +DownloadEmptyExampleShort=Beispieldatei herunterladen DownloadEmptyExample=Vorlagendatei herunterladen mit Beispielen und Informationen zu importierbaren Feldern StarAreMandatory=In der Vorlagendatei sind alle Felder mit einem * Pflichtfelder ChooseFormatOfFileToImport=Wählen Sie das Dateiformat aus, das als Importdateiformat verwendet werden soll, indem Sie auf das Symbol %s klicken, um es auszuwählen ... @@ -82,7 +84,7 @@ SelectFormat=Wählen Sie das Format der Importdatei RunImportFile=Datenimport starten NowClickToRunTheImport=Überprüfen Sie die Ergebnisse der Importsimulation. Korrigieren Sie alle Fehler und testen Sie sie erneut.
    Wenn die Simulation keine Fehler meldet, können Sie die Daten in die Datenbank importieren. DataLoadedWithId=Die importierten Daten enthalten in jeder Datenbanktabelle ein zusätzliches Feld mit der folgenden Import-ID: %s , damit sie bei der Untersuchung im Falle eines Problems im Zusammenhang mit diesem Import durchsucht werden können. -ErrorMissingMandatoryValue=Pflichtfeld ist in der Quelldatei für das Feld %s leer. +ErrorMissingMandatoryValue=In der Quelldatei fehlen Pflichtdaten in der Spalte %s. TooMuchErrors=Es gibt immer noch %s andere Quellzeilen mit Fehlern, aber die Ausgabe wurde beschränkt. TooMuchWarnings=Es gibt noch %s andere Quelltextzeilen mit Warnungen, aber die Ausgabe wurde beschränkt. EmptyLine=Leerzeile (verworfen) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Sie können alle importierten Datensätze in Ihrer NbOfLinesOK=Zeilenanzahl ohne Fehler und Warnungen: %s. NbOfLinesImported=Anzahl der erfolgreich importierten Zeilen: %s. DataComeFromNoWhere=Der einzufügende Wert kommt nicht aus der Quelldatei. -DataComeFromFileFieldNb=Der einzufügende Wert stammt aus Feldnummer %s der Quelldatei. -DataComeFromIdFoundFromRef=Der Wert, der von der Feldnummer %s der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu ermitteln (daher muss das Objekt %s , welches die Referenz der Quelldatei hat in der Datenbank existieren). -DataComeFromIdFoundFromCodeId=Code, der aus der Feldnummer %s der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu ermitteln (also muss der Code der Quelldatei im Verzeichnis %s existieren). Wenn Sie die ID kennen, können Sie sie auch in der Quelldatei anstelle des Codes verwenden. Der Import sollte in beiden Fällen funktionieren. +DataComeFromFileFieldNb=Einzufügender Wert stammt aus Spalte %s in der Quelldatei. +DataComeFromIdFoundFromRef=Der Wert, der aus der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu finden (das Objekt %s mit der Referenz aus der Quelldatei muss daher in der Datenbank vorhanden sein). +DataComeFromIdFoundFromCodeId=Der Wert des Codes, der aus der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu finden (der Code aus der Quelldatei muss daher im Wörterbuch %s vorhanden sein). Beachten Sie, dass Sie, wenn Sie die ID kennen, diese auch in der Quelldatei anstelle des Codes verwenden können. Der Import sollte in beiden Fällen funktionieren. DataIsInsertedInto=Die Quelldateidaten werden in folgendes Feld eingefügt: DataIDSourceIsInsertedInto=Die ID des übergeordneten Objekts, das anhand der Daten in der Quelldatei gefunden wurde, wird in das folgende Feld eingefügt: DataCodeIDSourceIsInsertedInto=Die ID der übergeordneten Zeile, die mittels Code gefunden wurde, wird in das folgende Feld eingefügt: @@ -132,9 +134,14 @@ FormatControlRule=Regel für die Formatkontrolle ## imports updates KeysToUseForUpdates=Schlüssel (Spalte), der zum Aktualisieren der vorhandenen Daten von verwendet wird NbInsert=Anzahl eingefügter Zeilen: %s +NbInsertSim=Anzahl der einzufügenden Zeilen: %s NbUpdate=Anzahl geänderter Zeilen: %s +NbUpdateSim=Anzahl der Zeilen, die aktualisiert werden: %s MultipleRecordFoundWithTheseFilters=Mehrere Ergebnisse wurden mit diesen Filtern gefunden: %s StocksWithBatch=Lagerbestände und Standort (Lager) von Produkten mit Chargen- / Seriennummer WarningFirstImportedLine=Die erste(n) Zeile(n) werden mit der aktuellen Auswahl nicht importiert NotUsedFields=Nicht verwendete Felder der Datenbank SelectImportFieldsSource = Ordnen Sie die Felder aus der zu importierenden Datei den entsprechenden Feldern in der Datenbank mit Hilfe der Auswahlelemente zu oder wählen Sie ein vordefiniertes Importprofil aus: +MandatoryTargetFieldsNotMapped=Einige Pflicht-Zielfelder sind nicht zugeordnet +AllTargetMandatoryFieldsAreMapped=Alle Pflicht-Zielfelder sind zugeordnet +ResultOfSimulationNoError=Simulationsergebnis: Kein Fehler diff --git a/htdocs/langs/de_DE/externalsite.lang b/htdocs/langs/de_DE/externalsite.lang deleted file mode 100644 index 3c38524c7b8..00000000000 --- a/htdocs/langs/de_DE/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Konfigurations-Link auf externe Website -ExternalSiteURL=URL der externen Seite zur Einbettung in einen HTML-iframe -ExternalSiteModuleNotComplete=Modul ExternalSite wurde nicht richtig konfiguriert. -ExampleMyMenuEntry=Mein Menü-Eintrag diff --git a/htdocs/langs/de_DE/ftp.lang b/htdocs/langs/de_DE/ftp.lang deleted file mode 100644 index c60e50f9251..00000000000 --- a/htdocs/langs/de_DE/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Einrichtung des FTP- oder SFTP-Client-Moduls -NewFTPClient=Neue FTP / FTPS-Verbindungs-Konfiguration -FTPArea=FTP / FTPS-Bereich -FTPAreaDesc=Dieser Bildschirm zeigt eine Ansicht eines FTP- und SFTP-Servers. -SetupOfFTPClientModuleNotComplete=Die Konfiguration des FTP- oder SFTP-Client-Moduls scheint unvollständig zu sein -FTPFeatureNotSupportedByYourPHP=Ihr PHP unterstützt keine FTP- oder SFTP-Funktionen -FailedToConnectToFTPServer=Verbindung zum Server fehlgeschlagen (Server %s, Port %s) -FailedToConnectToFTPServerWithCredentials=Anmeldung am Server mit definiertem Login / Passwort fehlgeschlagen -FTPFailedToRemoveFile=Konnte Datei %s nicht entfernen. Überprüfen Sie die Berechtigungen. -FTPFailedToRemoveDir=Konnte Verzeichnis %s nicht entfernen. Überprüfen Sie die Berechtigungen und ob das Verzeichnis leer ist. -FTPPassiveMode=Passives FTP -ChooseAFTPEntryIntoMenu=Wählen Sie eine FTP / SFTP-Seite aus dem Menü ... -FailedToGetFile=Folgende Datei(en) konnte(n) nicht geladen werden: %s diff --git a/htdocs/langs/de_DE/holiday.lang b/htdocs/langs/de_DE/holiday.lang index 035056fc08b..9d33ee49f91 100644 --- a/htdocs/langs/de_DE/holiday.lang +++ b/htdocs/langs/de_DE/holiday.lang @@ -95,7 +95,7 @@ HolidaysCancelation=Urlaubsantrag stornieren EmployeeLastname=Mitarbeiter Nachname EmployeeFirstname=Mitarbeiter Vorname TypeWasDisabledOrRemoved=Urlaubstyp (ID %s) war deaktiviert oder entfernt -LastHolidays=Neuste %s Urlaubsanträge +LastHolidays=Letzte %s Urlaubsanträge AllHolidays=Alle Urlaubsanträge HalfDay=Halber Tag NotTheAssignedApprover=Sie sind nicht der zugeordnete Genehmiger diff --git a/htdocs/langs/de_DE/hrm.lang b/htdocs/langs/de_DE/hrm.lang index df0bf08c2b8..cb1f4691727 100644 --- a/htdocs/langs/de_DE/hrm.lang +++ b/htdocs/langs/de_DE/hrm.lang @@ -12,12 +12,12 @@ OpenEtablishment=Einrichtung öffnen CloseEtablishment=Einrichtung schliessen # Dictionary DictionaryPublicHolidays=Urlaub - Feiertage -DictionaryDepartment=PV - Abteilungsliste +DictionaryDepartment=HRM - Organisationseinheit DictionaryFunction=HRM - Stellenangebote # Module Employees=Mitarbeiter Employee=Mitarbeiter/in -NewEmployee=neuer Mitarbeiter +NewEmployee=Neuer Mitarbeiter ListOfEmployees=Liste der Mitarbeiter HrmSetup=Personal Modul Einstellungen SkillsManagement=Kompetenzmanagement @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=Standardbeschreibung der Qualifikationsstufen beim deplacement=Schicht DateEval=Bewertungstag JobCard=Position – Übersicht -JobPosition=Position -JobsPosition=Positionen +JobPosition=Stellenbeschreibung +JobsPosition=Stellenbeschreibungen NewSkill=Neue Kompetenz SkillType=Art der Kompetenz Skilldets=Liste der Qualifikationsstufen für diese Kompetenz @@ -46,7 +46,7 @@ NewEval=Neue Bewertung ValidateEvaluation=Bewertung freigeben ConfirmValidateEvaluation=Möchten Sie diese Bewertung mit der Referenz %s wirklich freigeben? EvaluationCard=Bewertungskarte -RequiredRank=Erforderliche Qualifikationsstufe für diesen Job +RequiredRank=Erforderliche Qualifikationsstufe für diese Position EmployeeRank=Qualifikationsstufe des Mitarbeiters für diese Kompetenz EmployeePosition=Mitarbeiterposition EmployeePositions=Stellenübersicht @@ -62,17 +62,17 @@ MaxLevelLowerThan=Maximales Niveau niedriger in der Anforderung MaxlevelGreaterThanShort=Mitarbeiterniveau höher als in der Anforderung MaxLevelEqualToShort=Mitarbeiterniveau entspricht der Anforderung MaxLevelLowerThanShort=Mitarbeiterniveau niedriger als in der Anforderung -SkillNotAcquired=Kompetenz wurde nicht von allen Benutzern erworben, aber im Vergleiche angefragt +SkillNotAcquired=Kompetenz wurde nicht von allen Benutzern erworben, aber im Vergleich angefragt legend=Legende TypeSkill=Art der Kompetenz -AddSkill=Kompetenzen zum Job hinzufügen -RequiredSkills=Erforderliche Kompetenzen für diesen Job -UserRank=Qualifikationsstufe des Nutzers +AddSkill=Kompetenzen zur Position hinzufügen +RequiredSkills=Erforderliche Kompetenzen für diese Position +UserRank=Qualifikationsstufe des Benutzers SkillList=Liste der Kompetenzen SaveRank=Qualifikationsstufe speichern -knowHow=Fachwissen -HowToBe=Wie ist es -knowledge=Wissen +TypeKnowHow=Fachwissen +TypeHowToBe=Wie ist es +TypeKnowledge=Wissen AbandonmentComment=Kommentar zur Beendigung DateLastEval=Datum letzte Bewertung NoEval=Keine Bewertung für diesen Mitarbeiter vorhanden @@ -88,3 +88,5 @@ DeleteSkill = Kompetenz entfernt SkillsExtraFields=Ergänzende Attribute (Kompetenzen) JobsExtraFields=Ergänzende Attribute (Mitarbeiter) EvaluationsExtraFields=Ergänzende Attribute (Beurteilungen) +NeedBusinessTravels=Geschäftsreisen erforderlich +NoDescription=Keine Beschreibung diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang index 8182998d68c..f9278fec8d4 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Sie haben einen falschen Wert für den Parameter '%s ErrorFailedToCreateDatabase=Fehler beim Erstellen der Datenbank '%s'. ErrorFailedToConnectToDatabase=Es konnte keine Verbindung zur Datenbank ' %s'. ErrorDatabaseVersionTooLow=Die Version ihrer Datenbank (%s) ist veraltet. Sie benötigen mindestens Version %s . -ErrorPHPVersionTooLow=Ihre PHP-Version ist veraltet. Sie benötigen mindestens Version %s . +ErrorPHPVersionTooLow=PHP-Version zu alt. Version %s oder höher ist erforderlich. +ErrorPHPVersionTooHigh=PHP-Version zu hoch. Version %s oder niedriger ist erforderlich. ErrorConnectedButDatabaseNotFound=Verbindung zum Server erfolgreich, jedoch konnte Datenbank '%s' nicht gefunden werden. ErrorDatabaseAlreadyExists=Eine Datenbank mit dem Namen '%s' existiert bereits. IfDatabaseNotExistsGoBackAndUncheckCreate=Sollte die Datenbank noch nicht existieren, gehen Sie bitte zurück und aktivieren Sie das Kontrollkästchen "Datenbank erstellen". diff --git a/htdocs/langs/de_DE/interventions.lang b/htdocs/langs/de_DE/interventions.lang index cd4ae3993c3..5a7e2d3142f 100644 --- a/htdocs/langs/de_DE/interventions.lang +++ b/htdocs/langs/de_DE/interventions.lang @@ -42,18 +42,18 @@ DraftFichinter=Serviceaufträge im Entwurf LastModifiedInterventions=Zuletzt bearbeitete Serviceaufträge (maximal %s) FichinterToProcess=Zu bearbeitende Serviceaufträge TypeContact_fichinter_external_CUSTOMER=Kundenkontakt zur Weiterverfolgung -PrintProductsOnFichinter=Auch Produktzeilen (nicht nur Leistungen) auf dem Serviceauftragsdokument drucken +PrintProductsOnFichinter=Auch Positionen vom Typ "Produkt" (nicht nur Leistungen) auf dem Serviceauftrag ausgeben PrintProductsOnFichinterDetails=Aus Kundenaufträgen erstellte Serviceaufträge UseServicesDurationOnFichinter=Dauer der Leistung im Serviceauftrag aus dem Auftrag übernehmen -UseDurationOnFichinter=Feld 'Dauer' für Einsatzeinträge nicht anzeigen +UseDurationOnFichinter=Feld 'Dauer' für Einträge im Serviceauftrag nicht anzeigen UseDateWithoutHourOnFichinter=Stunden- und Minutenfelder beim Datum von Einsatzeinträgen nicht anzeigen InterventionStatistics=Statistik Serviceaufträge NbOfinterventions=Anzahl Dokumente für Serviceaufträge NumberOfInterventionsByMonth=Anzahl Dokumente für Serviceaufträge pro Monat (Freigabedatum) -AmountOfInteventionNotIncludedByDefault=Die Anzahl an Einsätzen ist normalerweise nicht im Umsatz enthalten. (In den meisten Fällen werden sie Einsatzstunden separat erfasst) Setzen Sie die globale Option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT auf 1 damit diese berücksichtigt werden. +AmountOfInteventionNotIncludedByDefault=Der Beitrag der Einsätze ist normalerweise nicht im Umsatz enthalten. (In den meisten Fällen werden die Einsatzstunden separat erfasst). Die globale Option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT auf 1 setzen, damit diese berücksichtigt werden. InterId=Serviceauftrag ID InterRef=Serviceauftrag Ref. -InterDateCreation=Erstellungsdatum Serviceauftrag +InterDateCreation=Erstellungszeitpunkt Serviceauftrag InterDuration=Dauer Serviceauftrag InterStatus=Status Serviceauftrag InterNote=Serviceauftrag Bemerkung @@ -64,7 +64,9 @@ InterLineDuration=Serviceauftragsposition Dauer InterLineDesc=Serviceauftragsposition Beschreibung RepeatableIntervention=Vorlage für Serviceauftrag ToCreateAPredefinedIntervention=Für einen vordefinierten oder wiederkehrenden Serviceauftrag erstellen Sie zunächst einen gemeinsamen Serviceauftrag und konvertieren diesen anschließend in eine Vorlage -ConfirmReopenIntervention=Möchten Sie den Serviceauftrag %s wieder öffnen? +ConfirmReopenIntervention=Möchten Sie den Serviceauftrag %s wieder öffnen? GenerateInter=Serviceauftrag erstellen FichinterNoContractLinked=Der Serviceauftrag %s wurde ohne verknüpften Vertrag erstellt. ErrorFicheinterCompanyDoesNotExist=Unternehmen existiert nicht. Serviceauftrag wurde nicht erstellt. +NextDateToIntervention=Datum für die nächste Erzeugung eines Serviceauftrags +NoIntervention=Kein Serviceauftrag diff --git a/htdocs/langs/de_DE/knowledgemanagement.lang b/htdocs/langs/de_DE/knowledgemanagement.lang index feb2f9077ee..a816a87875e 100644 --- a/htdocs/langs/de_DE/knowledgemanagement.lang +++ b/htdocs/langs/de_DE/knowledgemanagement.lang @@ -45,10 +45,10 @@ ValidateReply = Lösung bestätigen KnowledgeRecords = Artikel KnowledgeRecord = Artikel KnowledgeRecordExtraFields = Extrafelder für Artikel -GroupOfTicket=Ticket-Gruppe -YouCanLinkArticleToATicketCategory=Sie können einen Artikel mit einer Ticket-Gruppe verknüpfen (so wird der Artikel bei der Qualifizierung neuer Tickets vorgeschlagen) +GroupOfTicket=Ticket-Themengruppe +YouCanLinkArticleToATicketCategory=Sie können einen Artikel mit einer Ticket-Themengruppe verknüpfen (so wird auf den Artikel bei der Erfassung neuer Tickets hingewiesen) SuggestedForTicketsInGroup=Vorschlagen für Tickets der Gruppe SetObsolete=Als veraltet festlegen ConfirmCloseKM=Bestätigen Sie das Schließen dieses Artikels als veraltet? -ConfirmReopenKM=Möchten Sie diesen Artikel auf den Status "Validiert" zurücksetzen? +ConfirmReopenKM=Möchten Sie diesen Artikel auf den Status "freigegeben" zurücksetzen? diff --git a/htdocs/langs/de_DE/languages.lang b/htdocs/langs/de_DE/languages.lang index fc8916fc331..86cd6d0686a 100644 --- a/htdocs/langs/de_DE/languages.lang +++ b/htdocs/langs/de_DE/languages.lang @@ -13,6 +13,7 @@ Language_az_AZ=Aserbaidschanisch Language_bn_BD=Bengali Language_bn_IN=Bengali (Indien) Language_bg_BG=Bulgarisch +Language_bo_CN=Tibetisch Language_bs_BA=Bosnisch Language_ca_ES=Katalanisch Language_cs_CZ=Tschechisch @@ -39,6 +40,7 @@ Language_es_AR=Spanisch (Argentinien) Language_es_BO=Spanisch (Bolivien) Language_es_CL=Spanisch (Chile) Language_es_CO=Spanisch (Kolumbien) +Language_es_CR=Spanisch (Costa Rica) Language_es_DO=Spanisch (Dominikanische Republik) Language_es_EC=Spanish (Ecuador) Language_es_GT=Spanisch (Guatemala) @@ -93,6 +95,7 @@ Language_nl_BE=Niederländisch (Belgien) Language_nl_NL=Niederländisch Language_pl_PL=Polnisch Language_pt_AO=Portugiesisch (Angola) +Language_pt_MZ=Portugiesisch (Mosambik) Language_pt_BR=Portugiesisch (Brasilien) Language_pt_PT=Portugiesisch (Portugal) Language_ro_MD=Rumänisch (Moldavien) diff --git a/htdocs/langs/de_DE/link.lang b/htdocs/langs/de_DE/link.lang index 2c9e412b742..e66eb1bdf6f 100644 --- a/htdocs/langs/de_DE/link.lang +++ b/htdocs/langs/de_DE/link.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - languages -LinkANewFile=Verknüpfe eine neue Datei / ein Dokument -LinkedFiles=Verknüpfte Dateien und Dokumente +LinkANewFile=Neue Verknüpfung erstellen +LinkedFiles=Verknüpfte Dateien NoLinkFound=Keine verknüpften Links LinkComplete=Die Datei wurde erfolgreich verlinkt. ErrorFileNotLinked=Die Datei konnte nicht verlinkt werden. LinkRemoved=Der Link %s wurde entfernt ErrorFailedToDeleteLink= Fehler beim entfernen des Links '%s' ErrorFailedToUpdateLink= Fehler beim aktualisieren des Link '%s' -URLToLink=URL zum verlinken -OverwriteIfExists=Overwrite file if exists +URLToLink=zu verlinkende URL +OverwriteIfExists=Datei überschreiben, falls vorhanden diff --git a/htdocs/langs/de_DE/loan.lang b/htdocs/langs/de_DE/loan.lang index 4e8e9a6bc03..ddc056fcbd5 100644 --- a/htdocs/langs/de_DE/loan.lang +++ b/htdocs/langs/de_DE/loan.lang @@ -18,17 +18,17 @@ ConfirmDeleteLoan=Bestätigen Sie das Löschen dieses Darlehens LoanDeleted=Darlehen erfolgreich gelöscht ConfirmPayLoan=Bestätigen Sie, das Darlehen als bezahlt zu klassifizieren LoanPaid=Darlehen bezahlt -ListLoanAssociatedProject=Liste der Darlehen, die dem Projekt zugeordnet sind +ListLoanAssociatedProject=Liste der mit dem Projekt verbundenen Darlehen AddLoan=Darlehen erstellen FinancialCommitment=Zahlungsplan InterestAmount=Zinsen CapitalRemain=Verbleibender Darlehensbetrag TermPaidAllreadyPaid = Diese Rate ist bereits bezahlt -CantUseScheduleWithLoanStartedToPaid = Der Scheduler kann nicht für ein Darlehen verwendet werden, bei dem bereits eine Zahlung erfolgt ist +CantUseScheduleWithLoanStartedToPaid = Es kann kein Zahlungsplan für ein Darlehen mit begonnener Zahlung erstellt werden CantModifyInterestIfScheduleIsUsed = Sie können die Zinsen nicht ändern, wenn Sie den Zahlungsplan verwenden. # Admin ConfigLoan=Konfiguration des Moduls Darlehen -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard-Buchungskonto Darlehensbetrag -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard-Buchungskonto Zinsen -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard-Buchungskonto Versicherung +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Konto (aus dem Kontenplan), das standardmäßig für Kapital verwendet werden soll (Darlehensmodul) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Konto (aus dem Kontenplan), das standardmäßig für Zinsen verwendet werden soll (Darlehensmodul) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Konto (aus dem Kontenplan), das standardmäßig für Versicherungen verwendet werden soll (Darlehensmodul) CreateCalcSchedule=Zahlungsplan bearbeiten diff --git a/htdocs/langs/de_DE/mailmanspip.lang b/htdocs/langs/de_DE/mailmanspip.lang index b204c1051d6..78cc73c782d 100644 --- a/htdocs/langs/de_DE/mailmanspip.lang +++ b/htdocs/langs/de_DE/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Einschreibetest wurde erfolgreich durchgeführt MailmanDeletionSuccess=Abmeldetest wurde erfolgreich durchgeführt SynchroMailManEnabled=Ein Mailman-Update wird durchgeführt werden SynchroSpipEnabled=Ein Spip-Update wird durchgeführt werden -DescADHERENT_MAILMAN_ADMINPW=Administratorpasswort +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Administratorpasswort DescADHERENT_MAILMAN_URL=URL für Mailman Anmeldungen DescADHERENT_MAILMAN_UNSUB_URL=URL für Mailman Abmeldungen DescADHERENT_MAILMAN_LISTS=Liste(n) für die automatische Beschriftung der neuen Mitglieder (durch Komma getrennt) diff --git a/htdocs/langs/de_DE/mails.lang b/htdocs/langs/de_DE/mails.lang index 3db55a432a3..2ecaed7fd36 100644 --- a/htdocs/langs/de_DE/mails.lang +++ b/htdocs/langs/de_DE/mails.lang @@ -43,7 +43,7 @@ MailSuccessfulySent=E-Mail von %s an %s erfolgreich versendet MailingSuccessfullyValidated=E-Mail erfolgreich überprüft MailUnsubcribe=Abmelden MailingStatusNotContact=nicht mehr kontaktieren -MailingStatusReadAndUnsubscribe=nicht mehr kontaktieren +MailingStatusReadAndUnsubscribe=Nicht mehr kontaktieren (gelesen und abgemeldet) ErrorMailRecipientIsEmpty=Das Empfängerfeld ist leer WarningNoEMailsAdded=Keine neuen E-Mail-Adressen für das Hinzufügen zur Empfängerliste ConfirmValidMailing=Möchten Sie diese E-Mail-Kampagne wirklich freigeben? @@ -67,7 +67,7 @@ CloneReceivers=Empfängerliste duplizieren DateLastSend=Datum des letzten Versands DateSending=Versanddatum SentTo=Versendet an %s -MailingStatusRead=gelesen +MailingStatusRead=Gelesen YourMailUnsubcribeOK=Die E-Mail-Adresse %s wurde erfolgreich aus der Mailing-Liste ausgetragen. ActivateCheckReadKey=Schlüssel um die URL für die Funktion der versteckten Lesebestätigung und den "Abmelden"-Link zu generieren EMailSentToNRecipients=E-Mail an %s Empfänger gesendet @@ -128,7 +128,7 @@ NoEmailSentBadSenderOrRecipientEmail=Kein E-Mail gesendet. Ungültige Absender- # Module Notifications Notifications=Benachrichtigungen NotificationsAuto=E-Mail-Benachrichtigungen -NoNotificationsWillBeSent=Für diesen Ereignistyp und dieses Unternehmen sind keine automatischen E-Mail-Benachrichtigungen geplant +NoNotificationsWillBeSent=Für diesen Ereignistyp und dieses Unternehmen sind keine automatischen E-Mail-Benachrichtigungen aktiviert. ANotificationsWillBeSent=1 automatische Benachrichtigung wird per E-Mail gesendet SomeNotificationsWillBeSent=%s automatische Benachrichtigungen werden per E-Mail gesendet AddNewNotification=Abonnieren Sie eine neue automatische E-Mail-Benachrichtigung @@ -178,3 +178,4 @@ IsAnAnswer=Ist eine Antwort auf eine Initial-E-Mail RecordCreatedByEmailCollector=Datensatz, der vom E-Mail-Sammler %s aus der E-Mail %s erstellt wurde DefaultBlacklistMailingStatus=Standardwert für Feld '%s' beim Anlegen eines neuen Kontakts DefaultStatusEmptyMandatory=Leer aber erforderlich +WarningLimitSendByDay=WARNUNG: Die Konfiguration oder der Vertrag Ihrer Instanz begrenzt Ihre Anzahl von E-Mails pro Tag auf %s . Der Versuch mehr zu senden kann dazu führen, dass Ihre Instanz langsamer wird oder ausgesetzt wird. Bitte wenden Sie sich an Ihren Support, wenn Sie ein höheres Kontingent benötigen. diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index 6cedc718087..9d1a2ae7e30 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Für diesen E-Mail-Typ ist keine Vorlage verfügbar AvailableVariables=verfügbare Variablen NoTranslation=Keine Übersetzung Translation=Übersetzung +Translations=Übersetzungen CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers EmptySearchString=Keine leeren Suchkriterien eingeben EnterADateCriteria=Geben Sie ein Datumskriterium ein @@ -199,9 +206,10 @@ Valid=Freigeben Approve=Genehmigen Disapprove=Abgelehnt ReOpen=Wiedereröffnen +OpenVerb=Offen Upload=Upload ToLink=Link -Select=Wählen Sie +Select=Auswählen SelectAll=Alle wählen Choose=Wählen Resize=Skalieren @@ -216,7 +224,7 @@ UserGroup=Benutzergruppe UserGroups=Benutzergruppen NoUserGroupDefined=Keine Benutzergruppe definiert Password=Passwort -PasswordRetype=Geben Sie das Passwort noch einmal ein +PasswordRetype=Passwort wiederholen NoteSomeFeaturesAreDisabled=Bitte beachten Sie, dass viele Funktionen/Module in dieser Demo deaktiviert sind Name=Name NameSlashCompany=Name / Firma @@ -236,7 +244,7 @@ MultiLanguage=Mehrsprachig Note=Hinweis Title=Bezeichnung Label=Bezeichnung -RefOrLabel=Nr. oder Bezeichnung +RefOrLabel=Ref. oder Bezeichnung Info=Protokoll Family=Kategorie/Gruppe Description=Beschreibung @@ -274,14 +282,14 @@ DateToday=heutiges Datum DateReference=Referenzdatum DateStart=Startdatum DateEnd=Enddatum -DateCreation=Erstellungsdatum +DateCreation=Erstellungszeitpunkt DateCreationShort=Erstelldatum IPCreation=Erstellungs-IP -DateModification=Änderungsdatum -DateModificationShort=Änderungsdatum +DateModification=letzte Änderung +DateModificationShort=letzte Änderung IPModification=Änderungs-IP DateLastModification=Datum letzte Änderung -DateValidation=Freigabedatum +DateValidation=Festschreibungsdatum DateSigning=Unterzeichnungsdatum DateClosing=Schließungsdatum DateDue=Fälligkeitsdatum @@ -290,10 +298,10 @@ DateValueShort=Valutadatum DateOperation=Ausführungsdatum DateOperationShort=Ausführungsdatum DateLimit=Frist -DateRequest=Anfragedatum +DateRequest=Auftragsdatum DateProcess=Verarbeite Datum DateBuild=Datum der Berichterstellung -DatePayment=Zahlungsziel +DatePayment=Zahlungsdatum DateApprove=Genehmigungsdatum DateApprove2=Genehmigungsdatum (zweite Genehmigung) RegistrationDate=Registrierungsdatum @@ -345,7 +353,7 @@ KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Angelegt von +UserAuthor=Erstellt durch UserModif=Geändert von b=b. Kb=Kb @@ -364,10 +372,10 @@ UnitPrice=Stückpreis UnitPriceHT=Stückpreis (netto) UnitPriceHTCurrency=Stückpreis (netto) (Währung) UnitPriceTTC=Stückpreis (brutto) -PriceU=Stückpr. -PriceUHT=Stückpr. (netto) -PriceUHTCurrency=Stückpr. (netto) (Währung) -PriceUTTC=Einzelpr. (inkl. St.) +PriceU=Einzelpr. +PriceUHT=EP (netto) +PriceUHTCurrency=Einzelpr. (netto) (Währung) +PriceUTTC=Einzelpr. (brutto) Amount=Betrag AmountInvoice=Rechnungsbetrag AmountInvoiced=berechneter Betrag @@ -455,7 +463,7 @@ OtherStatistics=Weitere Statistiken Status=Status Favorite=Favorit ShortInfo=Info. -Ref=Ref. +Ref=Artikelnummer ExternalRef=Externe-ID RefSupplier=Lieferanten-Zeichen RefPayment=Zahlungsref.-Nr. @@ -474,18 +482,19 @@ LatestLinkedEvents=Zuletzt verknüpfte Ereignisse (maximal %s) CompanyFoundation=Firma oder Institution Accountant=Buchhalter ContactsForCompany=Ansprechpartner/Adressen dieses Partners -ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Partner -AddressesForCompany=Anschriften zu diesem Partner +ContactsAddressesForCompany=Ansprechpartner/Adressen zu diesem Geschäftspartner +AddressesForCompany=Anschriften dieses Geschäftspartners ActionsOnCompany=Ereignisse zu diesem Geschäftspartner ActionsOnContact=Termine / Ereignisse für diesen Kontakt ActionsOnContract=Ereignisse zu diesem Kontakt ActionsOnMember=Ereignisse zu diesem Mitglied ActionsOnProduct=Ereignisse zu diesem Produkt +ActionsOnAsset=Ereignisse für dieses Anlagegut NActionsLate=%s verspätet ToDo=zu erledigen Completed=Abgeschlossen Running=in Bearbeitung -RequestAlreadyDone=Anfrage bereits bekannt +RequestAlreadyDone=Überweisungsauftrag ist bereits erstellt Filter=Filter FilterOnInto=Suchkriterium '%s' ist in den Feldern %s RemoveFilter=Filter entfernen @@ -506,11 +515,11 @@ Categories=Kategorien Category=Suchwort/Kategorie By=Durch From=Von -FromDate=von +FromDate=Von FromLocation=von to=An To=An -ToDate=An +ToDate=bis ToLocation=An at=beim and=und @@ -534,7 +543,7 @@ Draft=Entwurf Drafts=Entwürfe StatusInterInvoiced=Berechnet Validated=Freigegeben -ValidatedToProduce=Validiert (zu produzieren) +ValidatedToProduce=Freigegeben (zu produzieren) Opened=Offen OpenAll=Öffnen (Alle) ClosedAll=Schließen (Alle) @@ -548,7 +557,7 @@ Received=Erhalten Paid=Bezahlt Topic=Betreff ByCompanies=Nach Geschäftspartnern -ByUsers=Durch Benutzer +ByUsers=Nach Benutzern Links=Links Link=Link Rejects=Ablehnungen @@ -619,7 +628,7 @@ MonthVeryShort09=S MonthVeryShort10=O MonthVeryShort11=N MonthVeryShort12=D -AttachedFiles=Angehängte Dateien und Dokumente +AttachedFiles=Angehängte Dateien JoinMainDoc=Hauptdokument verbinden JoinMainDocOrLastGenerated=Das Hauptdokument senden oder, falls nicht gefunden, das zuletzt generierte DateFormatYYYYMM=MM-YYYY @@ -643,7 +652,7 @@ Example=Beispiel Examples=Beispiele NoExample=Kein Beispiel FindBug=Fehler melden -NbOfThirdParties=Anzahl der Partner +NbOfThirdParties=Anzahl der Geschäftspartner NbOfLines=Anzahl der Positionen NbOfObjects=Anzahl der Objekte NbOfObjectReferers=Anzahl der verknüpften Einträge @@ -682,7 +691,7 @@ CloseWindow=Fenster schließen Response=Antwort Priority=Priorität SendByMail=Per E-Mail versenden -MailSentBy=E-Mail Absender +MailSentBy=E-Mail gesendet von NotSent=nicht gesendet TextUsedInTheMessageBody=E-Mail Text SendAcknowledgementByMail=Bestätigungsmail senden @@ -710,8 +719,9 @@ RecordsGenerated=%s Datensätze generiert AutomaticCode=Automatischer Code FeatureDisabled=Funktion deaktiviert MoveBox=Widget verschieben -Offered=angeboten +Offered=Option NotEnoughPermissions=Ihre Berechtigungen reichen hierfür nicht aus +UserNotInHierachy=Diese Aktion ist den übergeordneten Mitarbeitern dieses Benutzers vorbehalten SessionName=Sitzungsname Method=Methode Receive=Erhalten @@ -763,7 +773,7 @@ FreeLineOfType=Freitextelement, Typ: CloneMainAttributes=Objekt mit Haupteigenschaften duplizieren ReGeneratePDF=PDF neu erstellen PDFMerge=PDFs verbinden -Merge=Verbinden +Merge=Zusammenführen DocumentModelStandardPDF=Standard PDF Vorlage PrintContentArea=Zeige Druckansicht für Seiteninhalt MenuManager=Menüverwaltung @@ -801,6 +811,7 @@ URLPhoto=URL für Foto/Bild SetLinkToAnotherThirdParty=Link zu einem anderen Geschäftspartner LinkTo=Link zu LinkToProposal=Link zu Angebot +LinkToExpedition= Link zur Sendung LinkToOrder=Link zur Bestellung LinkToInvoice=Link zur Rechnung LinkToTemplateInvoice=Link zur Rechnungsvorlage @@ -861,7 +872,7 @@ ShowIntervention=Zeige Serviceauftrag ShowContract=Zeige Vertrag GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um das Logo zu ändern oder gehen Sie in Start -> Einstellungen -> Anzeige um es zu verstecken. Deny=ablehnen -Denied=abgelehnt +Denied=Abgelehnt ListOf=Liste von %s ListOfTemplates=Liste der Vorlagen Gender=Geschlecht @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Privater Download-Link PrivateDownloadLinkDesc=Sie müssen eingeloggt sein und Berechtigungen zum Anzeigen oder Herunterladen der Datei benötigen Download=Download DownloadDocument=Dokument herunterladen +DownloadSignedDocument=Unterzeichnetes Dokument herunterladen ActualizeCurrency=Wechselkurs aktualisieren Fiscalyear=Fiskalisches Jahr ModuleBuilder=Module Builder für Module und Anwendungen @@ -951,8 +963,8 @@ NewLeadOrProject=Neues Projekt / Neuer Lead Rights=Berechtigungen LineNb=Zeilennummer IncotermLabel=Incoterms -TabLetteringCustomer=Kundenbeschriftung -TabLetteringSupplier=Lieferantenbeschriftung +TabLetteringCustomer=Kontenabgleich Kunden +TabLetteringSupplier=Kontenabgleich Lieferanten Monday=Montag Tuesday=Dienstag Wednesday=Mittwoch @@ -1014,7 +1026,7 @@ million=Million billion=Milliarde trillion=Billion quadrillion=Billiarde -SelectMailModel=Wähle E-Mail-Vorlage +SelectMailModel=E-Mail-Vorlage wählen SetRef=Set Ref Select2ResultFoundUseArrows=Einige Ergebnisse gefunden. Nutzen Sie die Pfeiltasten um auszuwählen. Select2NotFound=Kein Ergebnis gefunden @@ -1029,7 +1041,7 @@ SearchIntoContacts=Kontakte SearchIntoMembers=Mitglieder SearchIntoUsers=Benutzer SearchIntoProductsOrServices=Produkte oder Leistungen -SearchIntoBatch=Charge / Seriennr. +SearchIntoBatch=Charge/Seriennr. SearchIntoProjects=Projekte SearchIntoMO=Fertigungsaufträge SearchIntoTasks=Aufgaben @@ -1044,6 +1056,7 @@ SearchIntoContracts=Verträge SearchIntoCustomerShipments=Kundenlieferungen SearchIntoExpenseReports=Spesenabrechnungen SearchIntoLeaves=Urlaub +SearchIntoKM=Wissensbasis SearchIntoTickets=Tickets SearchIntoCustomerPayments=Kundenzahlungen SearchIntoVendorPayments=Zahlungen an Lieferanten @@ -1084,7 +1097,7 @@ ToClose=Zu schließen ToRefuse=Ablehnen ToProcess=Zu bearbeiten ToApprove=Zu genehmigen -GlobalOpenedElemView=Globale Ansicht +GlobalOpenedElemView=Globaler Status NoArticlesFoundForTheKeyword=Kein Artikel zu Schlüssselwort gefunden '%s' NoArticlesFoundForTheCategory=Kein Artikel für Kategorie gefunden ToAcceptRefuse=Zu akzeptieren | abzulehnen @@ -1135,15 +1148,29 @@ EventReminder=Ereignis-Erinnerung UpdateForAllLines=Aktualisierung für alle Zeilen OnHold=angehalten Civility=Anrede/Titel -AffectTag=Schlagwort/Kategorie anpassen +AffectTag=Schlagwort/Kategorie zuweisen +AffectUser=Benutzer zuordnen +SetSupervisor=Führungskraft festlegen CreateExternalUser=Externen Benutzer anlegen -ConfirmAffectTag=Massen-Verschlagwortung/Kategorisierung -ConfirmAffectTagQuestion=Sind Sie sicher, dass Sie die Schlagwörter/Kategorien für die ausgewählten Datensätze von %s anpassen möchten? +ConfirmAffectTag=Massenzuweisung von Schlagwörtern/Kategorien +ConfirmAffectUser=Massenzuordnung von Benutzern +ProjectRole=Zugewiesene Rolle für jedes Projekt +TasksRole=Zugewiesene Rolle für jede Aufgabe jedes Projekts +ConfirmSetSupervisor=Führungskraft für mehrere festlegen +ConfirmUpdatePrice=Wählen Sie den Wert der Preiserhöhung/-senkung +ConfirmAffectTagQuestion=Möchten Sie den %s ausgewählten Datensätzen wirklich Schlagwörter/Kategorien zuweisen? +ConfirmAffectUserQuestion=Möchten Sie die Benutzer wirklich den ausgewählten %s Datensätzen zuordnen? +ConfirmSetSupervisorQuestion=Möchten Sie die Führungskraft wirklich für die ausgewählten %s-Datensätze festlegen? +ConfirmUpdatePriceQuestion=Möchten Sie den Preis der %s ausgewählten Datensätze wirklich aktualisieren? CategTypeNotFound=Für den Datensatztyp wurde kein Tag-Typ gefunden +Rate=Rate +SupervisorNotFound=Führungskraft nicht gefunden CopiedToClipboard=In die Zwischenablage kopiert InformationOnLinkToContract=Dieser Betrag ist nur die Summe aller Vertragszeilen. Zeitbegriff wird nicht berücksichtigt. ConfirmCancel=Sind Sie sicher, dass Sie abbrechen möchten EmailMsgID=E-Mail MsgID +EmailDate=E-Mail-Datum +SetToStatus=Auf Status %s setzen SetToEnabled=Auf aktiviert setzen SetToDisabled=Auf deaktiviert setzen ConfirmMassEnabling=Bestätigung, alle zu aktivieren @@ -1161,7 +1188,7 @@ ConfirmMassLeaveApproval=Bestätigung der Massen-Urlaubsgenehmigung RecordAproved=Datensatz freigegeben RecordsApproved=%s Datensatz(e) freigegeben Properties=Eigenschaften -hasBeenValidated=%s wurde validiert +hasBeenValidated=%s wurde freigegeben ClientTZ=Zeitzone Kunde (Benutzer) NotClosedYet=Noch nicht geschlossen ClearSignature=Unterschrift löschen @@ -1172,8 +1199,14 @@ Terminated=Deaktiviert AddLineOnPosition=Zeile an folgender Position hinzufügen (am Ende, falls leer) ConfirmAllocateCommercial=Bestätigung der Zuordnung eines Vertriebsmitarbeiters ConfirmAllocateCommercialQuestion=Möchten Sie die ausgewählten %s-Datensätze wirklich zuweisen? -CommercialsAffected=Betroffene Vertriebsmitarbeiter -CommercialAffected=Betroffene Vertriebsmitarbeiter +CommercialsAffected=Zugeordnete Vertriebsmitabeiter +CommercialAffected=Zugeordneter Vertriebsmitarbeiter YourMessage=Ihre Nachricht YourMessageHasBeenReceived=Ihre Nachricht wurde erfasst. Wir werden Ihnen so schnell wie möglich antworten. UrlToCheck=Zu überprüfende URL +Automation=Automatisierung +CreatedByEmailCollector=Erstellt durch E-Mail-Collector +CreatedByPublicPortal=Erstellt aus dem öffentlichen Portal +UserAgent=User-Agent +InternalUser=Interne Benutzer +ExternalUser=Externer Benutzer diff --git a/htdocs/langs/de_DE/margins.lang b/htdocs/langs/de_DE/margins.lang index 5629247e4d5..a03f864fecd 100644 --- a/htdocs/langs/de_DE/margins.lang +++ b/htdocs/langs/de_DE/margins.lang @@ -2,7 +2,7 @@ Margin=Gewinnspanne Margins=Gewinnspannen -TotalMargin=Gesamt-Spanne +TotalMargin=Gewinnspanne gesamt MarginOnProducts=Gewinnspanne / Produkte MarginOnServices=Gewinnspanne / Leistungen MarginRate=Gewinnspannen-Rate @@ -17,17 +17,17 @@ ProductMargins=Produkt-Gewinnspannen CustomerMargins=Kunden-Gewinnspannen SalesRepresentativeMargins=Vertreter-Gewinnspannen ContactOfInvoice=Kontakt der Rechnung -UserMargins=Spannen nach Benutzer -ProductService=Produkt oder Dienstleistung +UserMargins=Gewinnspannen nach Benutzer +ProductService=Produkt oder Leistung AllProducts=Alle Produkte und Leistungen -ChooseProduct/Service=Produkt oder Service wählen +ChooseProduct/Service=Produkt oder Leistung wählen ForceBuyingPriceIfNull=Benutze EK-Preis/Herstellkosten als Verkaufspreis, wenn nicht definiert -ForceBuyingPriceIfNullDetails=Wenn beim Hinzufügen einer neuen Zeile kein Kauf-/Einstandspreis angegeben wird und diese Option aktiviert ist, beträgt die Marge auf der neuen Zeile 0%% (Einkaufs-/Einstandspreis = Verkaufspreis). Wenn diese Option deaktiviert ist (empfohlen), entspricht die Marge dem standardmäßig vorgeschlagenen Wert (und kann 100%% betragen, wenn kein Standardwert gefunden werden kann). +ForceBuyingPriceIfNullDetails=Wenn beim Hinzufügen einer neuen Position kein Kauf-/Einstandspreis angegeben wird und diese Option AKTIVIERT ist, beträgt die Marge der neuen Position 0%% (Einkaufs-/Einstandspreis = Verkaufspreis). Wenn diese Option DEAKTIVIERT ist (empfohlen), entspricht die Marge dem standardmäßig vorgeschlagenen Wert (und kann 100%% betragen, wenn kein Standardwert gefunden werden kann). MARGIN_METHODE_FOR_DISCOUNT=Margin-Methode für globale Rabatte UseDiscountAsProduct=als Produkt -UseDiscountAsService=als Dienstleistung +UseDiscountAsService=Als Leistung UseDiscountOnTotal=auf Zwischensumme -MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definiert, ob ein globaler Rabatt als Produkt, Service oder nur als Zwischensumme für die Gewinnberechnung benutzt wird. +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definiert, ob ein globaler Rabatt als Produkt, als Leistung oder nur als Zwischensumme für die Gewinnberechnung benutzt wird. MARGIN_TYPE=Kaufpreis / Kosten standardmäßig vorgeschlagen für Standardmargenkalkulation empfohlen\n MargeType1=Marge beim günstigsten Einkaufspreis MargeType2=gewichtete Durchschnittspreis (WAP) diff --git a/htdocs/langs/de_DE/members.lang b/htdocs/langs/de_DE/members.lang index 4689999d5d5..5262debe779 100644 --- a/htdocs/langs/de_DE/members.lang +++ b/htdocs/langs/de_DE/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Ein anderes Mitglied (Name: %s ErrorUserPermissionAllowsToLinksToItselfOnly=Aus Sicherheitsgründen müssen Sie die Berechtigungen zur Mitgliederbearbeitung besitzen, um ein Mitglied mit einem fremden Benutzerkonto (einem anderen als Ihrem eigenen) zu verknüpfen. SetLinkToUser=Mit Benutzer verknüpft SetLinkToThirdParty=Mit Geschäftspartner verknüpft +MemberCountersArePublic=Zähler gültiger Mitglieder sind öffentlich MembersCards=Erstellung von Karten MembersList=Liste der Mitglieder MembersListToValid=Liste freizugebender Mitglieder @@ -34,16 +35,18 @@ DateSubscription=Datum der Mitgliedschaft DateEndSubscription=Enddatum der Mitgliedschaft EndSubscription=Ende der Mitgliedschaft SubscriptionId=Beitrags-ID -WithoutSubscription=Ohne Mitgliedsbeitrag -MemberId=Mitglied-ID +WithoutSubscription=Ohne Mitgliedschaft +WaitingSubscription=Mitgliedschaft ausstehend +MemberId=Mitglieds-Id +MemberRef=Mitglieds-Ref. NewMember=Neues Mitglied -MemberType=Mitgliedsart -MemberTypeId=Mitgliedsart-ID -MemberTypeLabel=Bezeichnung der Mitgliedsart -MembersTypes=Mitgliedsarten +MemberType=Mitgliedschaftstyp +MemberTypeId=Mitgliedschaftstyp-ID +MemberTypeLabel=Bezeichnung des Mitgliedschaftstyps +MembersTypes=Mitgliedschaftstypen MemberStatusDraft=Entwurf (muss noch überprüft werden) MemberStatusDraftShort=Entwurf -MemberStatusActive=Validiert (warten auf Beitragszahlung) +MemberStatusActive=Freigegeben (warten auf Beitragszahlung) MemberStatusActiveShort=Bestätigt MemberStatusActiveLate=Mitgliedsbeitrag fällig MemberStatusActiveLateShort=Abgelaufen @@ -56,29 +59,35 @@ MemberStatusResiliatedShort=Deaktiviert MembersStatusToValid=Freizugebende Mitglieder MembersStatusExcluded=Ausgeschlossene Mitglieder MembersStatusResiliated=Deaktivierte Mitglieder -MemberStatusNoSubscription=Validiert (kein Mitgliedsbeitrag) +MemberStatusNoSubscription=Freigegeben (kein Mitgliedsbeitrag erforderlich) MemberStatusNoSubscriptionShort=Freigegeben SubscriptionNotNeeded=Kein Mitgliedsbeitrag erforderlich NewCotisation=Neuer Beitrag PaymentSubscription=Neue Beitragszahlung SubscriptionEndDate=Ablaufdatum Beitragszahlung -MembersTypeSetup=Mitgliedsarten einrichten -MemberTypeModified=Mitgliedstyp geändert -DeleteAMemberType=Löschen Sie einen Mitgliedstyp -ConfirmDeleteMemberType=Möchten Sie diesen Mitgliedstyp wirklich löschen? -MemberTypeDeleted=Mitgliedstyp gelöscht -MemberTypeCanNotBeDeleted=Mitgliedstyp kann nicht gelöscht werden -NewSubscription=Neuer Beitrag +MembersTypeSetup=Mitgliedschaftstypen einrichten +MemberTypeModified=Mitgliedschaftstyp geändert +DeleteAMemberType=Mitgliedschaftstyp löschen +ConfirmDeleteMemberType=Möchten Sie diesen Mitgliedschaftstyp wirklich löschen? +MemberTypeDeleted=Mitgliedschaftstyp gelöscht +MemberTypeCanNotBeDeleted=Mitgliedschaftstyp kann nicht gelöscht werden +NewSubscription=Neuer Mitgliedsbeitrag NewSubscriptionDesc=Hier können Sie Ihre Mitgliedschaft beantragen und den Beitrag als neues Mitglied festlegen.\nWenn Sie bereits Mitglied sind und eine Beitragszahlung erneuern möchten, kontaktieren Sie uns bitte per E-Mail %s. Subscription=Mitgliedsbeitrag +AnyAmountWithAdvisedAmount=Beliebiger Betrag Ihrer Wahl, empfohlen %s +AnyAmountWithoutAdvisedAmount=Beliebiger Betrag Ihrer Wahl +CanEditAmountShort=Jeder Betrag +CanEditAmountShortForValues=empfohlen, jeder Betrag +MembershipDuration=Dauer +GetMembershipButtonLabel=Beitreten Subscriptions=Mitgliedsbeiträge SubscriptionLate=Verspätet -SubscriptionNotReceived=Beitragszahlung nie erhalten -ListOfSubscriptions=Liste der Beitragszahlungen +SubscriptionNotReceived=Mitgliedsbeitrag nie erhalten +ListOfSubscriptions=Liste der Mitgliedsbeiträge SendCardByMail=Karte per E-Mail versenden AddMember=Mitglied erstellen -NoTypeDefinedGoToSetup=Sie haben noch keine Mitgliedsart definiert.\nSie können dies im linken Menü mit Hilfe des Eintrags Mitgliedsarten --> Neu tun. -NewMemberType=Neue Mitgliedsart +NoTypeDefinedGoToSetup=Sie haben noch keine Mitgliedschaftstyp definiert.\nSie können dies im linken Menü mit Hilfe des Eintrags Mitgliedschaftstypen --> Neu tun. +NewMemberType=Neuer Mitgliedschaftstyp WelcomeEMail=Willkommen per E-Mail SubscriptionRequired=Mitgliedsbeitrag erforderlich DeleteType=Löschen @@ -103,8 +112,8 @@ FollowingLinksArePublic=Die folgenden Links sind öffentlich zugängliche Seiten PublicMemberList=Liste öffentlicher Mitglieder BlankSubscriptionForm=Öffentliches Erfassungsformular BlankSubscriptionFormDesc=Dolibarr kann ihnen eine öffentliche URL/Website zur Verfügung stellen, die es externen Besuchern erlaubt, einen Beitrag zu entrichten. Wenn ein Online-Zahlungsmodul aktiviert ist, kann auch automatisch ein Zahlungsformular bereitgestellt werden. -EnablePublicSubscriptionForm=Aktivieren der öffentlichen Webseite mit dem Formular für die Beitragshöhenerklärung (Mitgliedsantrag). -ForceMemberType=Mitgliedsart erzwingen +EnablePublicSubscriptionForm=Aktivieren der öffentlichen Webseite mit dem Anmeldeformular (Mitgliedsantrag). +ForceMemberType=Mitgliedschaftstyp erzwingen ExportDataset_member_1=Mitglieder und Beitragszahlungen ImportDataset_member_1=Mitglieder LastMembersModified=Zuletzt bearbeitete Mitglieder (maximal %s) @@ -135,7 +144,7 @@ CardContent=Inhalt der Mitgliedskarte # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Wir haben Ihren Mitgliedsantrag erhalten.

    ThisIsContentOfYourMembershipWasValidated=Ihr Mitgliedsantrag wurde mit diesem Resultat geprüft:

    -ThisIsContentOfYourSubscriptionWasRecorded=Ihr neuer Beitrag wurde erfasst.

    +ThisIsContentOfYourSubscriptionWasRecorded=Wir möchten Sie darüber informieren, dass Ihre neue Mitgliedschaft erfasst wurde. Ihre Rechnung finden Sie anbei.

    ThisIsContentOfSubscriptionReminderEmail=Wir möchten darauf hinweisen, dass der Beitragszeitraum demnächst abläuft oder schon abgelaufen ist. (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Wir hoffen, Sie erneuern die Zahlung.

    ThisIsContentOfYourCard=Dies ist eine Zusammenfassung der Informationen, die wir über Sie haben. Bitte kontaktieren Sie uns, wenn etwas nicht stimmt.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Betreff der Benachrichtigungsmail bei automatischer Registrierung eines Gastes @@ -171,7 +180,7 @@ DocForLabels=Etiketten erstellen (Gewähltes Ausgabeformat: %s) SubscriptionPayment=Beitragszahlung LastSubscriptionDate=Datum der letzten Beitragszahlung LastSubscriptionAmount=Höhe der letzten Beitragszahlung -LastMemberType=Letzter Mitgliedstyp +LastMemberType=Letzter Mitgliedschaftstyp MembersStatisticsByCountries=Mitgliederstatistik nach Staaten MembersStatisticsByState=Mitgliederstatistik nach Bundesländern/Provinzen/Kantonen MembersStatisticsByTown=Mitgliederstatistik nach Städten @@ -189,7 +198,7 @@ MenuMembersStats=Statistik LastMemberDate=Spätestes Mitgliedschaftsdatum LatestSubscriptionDate=Datum der letzten Beitragszahlung MemberNature=Art des Mitglieds -MembersNature=Art der Mitglieder +MembersNature=Mitgliedsart Public=Informationen sind öffentlich NewMemberbyWeb=Neues Mitglied hinzugefügt, wartet auf Genehmigung. NewMemberForm=Formular neues Mitglied @@ -197,11 +206,13 @@ SubscriptionsStatistics=Statistiken zu Mitgliedsbeiträgen NbOfSubscriptions=Anzahl der Beitragszahlungen AmountOfSubscriptions=Summer der erhaltenen Beitragszahlungen TurnoverOrBudget=Umsatz (Firma) oder Budget (Verein/Stiftung) -DefaultAmount=Standardhöhe des Mitgliesbeitrages -CanEditAmount=Der Besucher kann die Höhe seines Beitrags auswählen/bearbeiten -MEMBER_NEWFORM_PAYONLINE=Zur integrierten Bezahlseite gehen -ByProperties=Natürlich -MembersStatisticsByProperties=Natürliche Mitgliederstatistiken +DefaultAmount=Standardhöhe des Mitgliedsbeitrags +CanEditAmount=Die Mitgliedschaft ist kostenlos +CanEditAmountDetail=Der Besucher kann die Höhe seines Beitrags unabhängig vom Mitgliedstyp auswählen/bearbeiten +AmountIsLowerToMinimumNotice=von einem Gesamtbetrag von %s +MEMBER_NEWFORM_PAYONLINE=Nach der Online-Registrierung automatisch auf die Online-Zahlungsseite wechseln +ByProperties=Mitgliedsart +MembersStatisticsByProperties=Mitgliederstatistik nach Mitgliedsart VATToUseForSubscriptions=USt.-Satz für Mitgliedsbeiträge NoVatOnSubscription=Keine USt. für Mitgliedsbeiträge ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produkt/Leistung für die Rechnungsposition: %s @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=Die Erstellung eines Benutzer-Logins für Mitglieder erm CreateDolibarrThirdPartyDesc=Der Geschäftspartner ist der Rechnungsempfänger, wenn für die Beitragszahlung eine Rechnung erstellt wird. Sie können den Geschäftspartner später während der Erfassung der Beitragszahlung festlegen. MemberFirstname=Vorname des Mitglieds MemberLastname=Nachname des Mitglieds +MemberCodeDesc=Mitgliedsnummer, individuell für alle Mitglieder diff --git a/htdocs/langs/de_DE/modulebuilder.lang b/htdocs/langs/de_DE/modulebuilder.lang index 416a9120606..f4ea8214838 100644 --- a/htdocs/langs/de_DE/modulebuilder.lang +++ b/htdocs/langs/de_DE/modulebuilder.lang @@ -28,13 +28,13 @@ EnterNameOfModuleToDeleteDesc=Sie können Ihr Modul löschen. WARNUNG: Alle Code EnterNameOfObjectToDeleteDesc=Sie können ein Objekt löschen. WARNUNG: Alle Codedateien (generiert oder manuell erstellt), die sich auf das Objekt beziehen, werden gelöscht! DangerZone=Gefahrenzone BuildPackage=Paket erstellen -BuildPackageDesc=Sie können ein Zip-Paket Ihrer Anwendung erstellen, um es auf Dolibarr-Installationen verteilen können. Sie können es auch auf einem Marktplatz wie DoliStore.com verteilen oder verkaufen. +BuildPackageDesc=Sie können ein Zip-Paket Ihrer Anwendung erstellen, um es auf jede Dolibarr-Installation verteilen zu können. Sie können es auch über einem Marktplatz wie DoliStore.com kostenlos verbreiten oder verkaufen. BuildDocumentation=Dokumentation erstellen ModuleIsNotActive=Dieses Modul ist noch nicht aktiviert. Gehe zu %s zum aktivieren oder klicke hier ModuleIsLive=Dieses Modul wurde aktiviert. Jede Änderung kann aktuelle Live-Funktionen beeinträchtigen. DescriptionLong=Lange Beschreibung EditorName=Name des Erstellers -EditorUrl=URL des Editors +EditorUrl=URL des Erstellers DescriptorFile=Deskriptordatei des Moduls ClassFile=Datei für die PHP DAO CRUD-Klasse ApiClassFile=File for PHP API class @@ -77,7 +77,7 @@ SqlFileKey=SQL Datei für Schlüsselwerte SqlFileKeyExtraFields=SQL-Datei für die Schlüssel der Extrafields AnObjectAlreadyExistWithThisNameAndDiffCase=Es existiert bereits ein Objekt mit diesem Namen und einer anderen Groß-/Kleinschreibung UseAsciiDocFormat=Sie können das Markdown-Format verwenden, empfohlen wird jedoch, das Asciidoc-Format zu verwenden (Vergleich zwischen .md und .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) -IsAMeasure=Ist eine Maßnahme +IsAMeasure=Ist ein Maß (addierbar) DirScanned=Verzeichnis gescannt NoTrigger=Kein Trigger NoWidget=Kein Widget @@ -88,7 +88,7 @@ ListOfPermissionsDefined=Liste der definierten Berechtigungen SeeExamples=Siehe Beispiele EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) VisibleDesc=Ist das Feld sichtbar? (Beispiele: 0 = Nie sichtbar, 1 = Auf Liste sichtbar und Formulare erstellen / aktualisieren / anzeigen, 2 = Nur auf Liste sichtbar, 3 = Nur auf Formular erstellen / aktualisieren / anzeigen (nicht Liste), 4 = Auf Liste sichtbar und nur sichtbar bei Formular aktualisieren / anzeigen (nicht erstellen), 5 = Nur im Formular für die Listenendansicht sichtbar (nicht erstellen, nicht aktualisieren).

    Wenn ein negativer Wert verwendet wird, wird das Feld standardmäßig nicht in der Liste angezeigt, kann jedoch zur Anzeige ausgewählt werden.)

    Es kann sich um einen Ausdruck handeln, z. B.:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Zeigt dieses Feld in kompatiblen PDF-Dokumenten an. Sie können die Anzeigeposition über das Feld "Position" beeinflussen.
    Derzeit bekannte kompatible PDF-Modelle sind: eratosthene (Bestellung), espadon (Lieferung), sponge (Rechnung), cyan (Angebot), cornas (Lieferantenauftrag)

    Für Dokument:
    0 = nicht anzeigen
    1 = anzeigen
    2 = anzeigen, wenn nicht leer

    Für Belegzeilen:
    0 = nicht anzeigen
    1 = in Spalte anzeigen
    3 = in Beschreibungszeile nach der Beschreibung anzeigen
    4 = nur falls nicht leer: in Beschreibungszeile nach der Beschreibung anzeigen +DisplayOnPdfDesc=Zeigt dieses Feld in kompatiblen PDF-Dokumenten an. Sie können die Anzeigeposition über das Feld "Position" beeinflussen.
    Derzeit bekannte kompatible PDF-Modelle sind: eratosthene (Bestellung), espadon (Lieferung), sponge (Rechnung), cyan (Angebot), cornas (Lieferantenauftrag)

    Für Dokument:
    0 = nicht anzeigen
    1 = anzeigen
    2 = anzeigen, wenn nicht leer

    Für Einzelpositionen:
    0 = nicht anzeigen
    1 = in Spalte anzeigen
    3 = in Beschreibungszeile nach der Beschreibung anzeigen
    4 = nur falls nicht leer: in Beschreibungszeile nach der Beschreibung anzeigen DisplayOnPdf=Anzeige im PDF IsAMeasureDesc=Kann der Wert des Feldes kumuliert werden, um eine Summe in die Liste aufzunehmen? (Beispiele: 1 oder 0) SearchAllDesc=Wird das Feld verwendet, um eine Suche über das Schnellsuchwerkzeug durchzuführen? (Beispiele: 1 oder 0) @@ -153,3 +153,4 @@ LinkToParentMenu=Übergeordnetes Menü (fk_xxxxmenu) ListOfTabsEntries=Liste der Registerkarteneinträge/Tab-Einträge TabsDefDesc=Definieren Sie hier die von Ihrem Modul bereitgestellten Registerkarten/Tabs TabsDefDescTooltip=Die von Ihrem Modul/Ihrer Anwendung bereitgestellten Registerkarten/Tabs sind im Array $this->tabs in der Moduldeskriptordatei definiert. Sie können diese Datei manuell bearbeiten oder den eingebetteten Editor verwenden. +BadValueForType=Ungültiger Wert für Typ %s diff --git a/htdocs/langs/de_DE/mrp.lang b/htdocs/langs/de_DE/mrp.lang index 91485cadecc..339efbf1f3e 100644 --- a/htdocs/langs/de_DE/mrp.lang +++ b/htdocs/langs/de_DE/mrp.lang @@ -11,8 +11,8 @@ Bom=Stücklisten BillOfMaterials=Stückliste BillOfMaterialsLines=Stücklistenpositionen BOMsSetup=Stücklisten Modul einrichten -ListOfBOMs=Stücklisten-Übersicht -ListOfManufacturingOrders=Liste der Fertigungsaufträge +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Fertigungsaufträge NewBOM=Neue Stückliste ProductBOMHelp=Mit dieser Stückliste zu erstellendes (oder zu zerlegendes) Produkt.
    Hinweis: Produkte mit der Eigenschaft 'Art des Produkts' = 'Rohstoff' sind in dieser Liste nicht sichtbar. BOMsNumberingModules=Vorlage für die Stücklistennummerierung @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Sind Sie sicher, dass Sie die Stückliste %s klonen ConfirmCloneMo=Möchten Sie den Fertigungsauftrag %s wirklich duplizieren? ManufacturingEfficiency=Produktionseffizienz ConsumptionEfficiency=Verbrauchseffizienz +Consumption=Verbrauch ValueOfMeansLoss=Ein Wert von 0,95 bedeutet einen durchschnittlichen Verlust von 5%% während der Herstellung oder Demontage ValueOfMeansLossForProductProduced=Ein Wert von 0,95 bedeutet im Durchschnitt 5%% Verlust bei dem hergestellten Produkt DeleteBillOfMaterials=Stückliste löschen @@ -41,7 +42,7 @@ DateEndPlannedMo=Geplantes Enddatum KeepEmptyForAsap=Leer bedeutet 'So bald wie möglich' EstimatedDuration=geschätzte Dauer EstimatedDurationDesc=Geschätzte Dauer der Herstellung (oder Demontage) dieses Produkts unter Verwendung dieser Stückliste -ConfirmValidateBom=Sicher, dass die Stückliste abgeglichen wird mit der Referenz %s (kann genutzt werden, um neue Fertigungsaufträge zu erstellen) +ConfirmValidateBom=Sind Sie sicher, dass Sie die Stückliste mit der Referenz %s freigeben möchten? (Sie können sie verwenden, um neue Fertigungsaufträge zu erstellen) ConfirmCloseBom=Soll diese Stückliste wirlich storniert werden (Sie kann nicht mehr zum Erstellen neuer Fertigungsaufträge verwendet werden)? ConfirmReopenBom=Soll diese Stückliste erneut geöffnet werden (Sie können damit neue Fertigungsaufträge erstellen)? StatusMOProduced=Produziert @@ -73,7 +74,7 @@ CancelProductionForRef=Stornierung der Produktbestandsverringerung für Produkt TooltipDeleteAndRevertStockMovement=Position löschen und Bestandsbewegung rückgängig machen AutoCloseMO=Automatisch den Fertigungsauftrag beenden, wenn die zu verbrauchenden und zu produzierenden Mengen erreicht sind NoStockChangeOnServices=Keine Bestandsveränderung bei Leistungen -ProductQtyToConsumeByMO=zu verbrauchende Produktmenge von offenem Fertigungsauftrag +ProductQtyToConsumeByMO=Noch zu verbrauchende Produktmenge durch offene Fertigungsaufträge ProductQtyToProduceByMO=Noch herzustellende Produktmenge des offenen Fertigungsauftrags AddNewConsumeLines=Eine neue Zeile Verbrauch hinzufügen AddNewProduceLines=Neue Position hinzufügen, um zu fertigen @@ -82,6 +83,7 @@ ProductsToProduce=Produkte zu produzieren UnitCost=Kosten pro Einheit TotalCost=Gesamtsumme Kosten BOMTotalCost=Die Herstellungskosten dieser Stückliste, basierend auf den Kosten jeder Menge und jeden verbrauchten Produktes (nutzt den Selbstkostenpreis wenn er definiert ist, ansonsten den Durchschnittspreis sofern definiert oder den besten Einkaufspreis) +BOMTotalCostService=Wenn das Modul "Arbeitsstation" aktiviert ist und auf der Zeile standardmäßig eine Arbeitsstation definiert ist, dann lautet die Berechnung "Menge (umgerechnet in Stunden) x Fertigungsstundensatz der Arbeitsstation", sonst "Menge (umgerechnet in Stunden) x Selbstkosten der Leistung". GoOnTabProductionToProduceFirst=Die Produktion muss begonnen sein, um einen Produktionsauftrag zu schließen (siehe Tab '%s'). Alternativ kann er storniert werden. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ein Set kann nicht in einer Stückliste oder einem Fertigungsauftrag verwendet werden Workstation=Arbeitsstationen @@ -112,3 +114,7 @@ MOAndLines=Fertigungsaufträge und Auftragspositionen MoChildGenerate=Untergeordneten Fertigungsauftrag generieren ParentMo=Übergeordneter Fertigungsauftrag MOChild=Untergeordneter Fertigungsauftrag +BomCantAddChildBom=Die Nomenklatur %s ist bereits im Baum vorhanden, der zur Nomenklatur %s führt +BOMNetNeeds = BOM-Nettobedarf +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/de_DE/multicurrency.lang b/htdocs/langs/de_DE/multicurrency.lang index 0885224c974..a3c816d2a38 100644 --- a/htdocs/langs/de_DE/multicurrency.lang +++ b/htdocs/langs/de_DE/multicurrency.lang @@ -9,7 +9,7 @@ multicurrency_useOriginTx=Wenn ein Beleg anhand eines anderen erstellt wird, den CurrencyLayerAccount=Währungslayer API CurrencyLayerAccount_help_to_synchronize=Sie sollten ein Konto auf der Website %s erstellen, um diese Funktion zu verwenden.
    API-Schlüssel abrufen
    Verwenden Sie ein kostenloses Konto, können Sie die Quellwährung nicht ändern (Standard: USD)
    Ist ihre Hauptwährung nicht USD, wird die Anwendung dies automatisch umrechnen.

    Sie sind auf 1000 Synchronisierungen pro Monat beschränkt. multicurrency_appId=API Schlüssel -multicurrency_appCurrencySource=Quell-/Ausgangswährung +multicurrency_appCurrencySource=Ausgangswährung multicurrency_alternateCurrencySource=alternative Quellwährung CurrenciesUsed=verwendete Währungen CurrenciesUsed_help_to_add=Fügen Sie die Währungen und Währungskurse hinzu, die Sie für ihre Angebote, Bestellungen, etc. benötigen diff --git a/htdocs/langs/de_DE/oauth.lang b/htdocs/langs/de_DE/oauth.lang index 9610bdda3a1..1c235015ddb 100644 --- a/htdocs/langs/de_DE/oauth.lang +++ b/htdocs/langs/de_DE/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Ein Token wurde erstellt und in der lokalen Datenbank gespeichert NewTokenStored=Token empfangen und gespeichert ToCheckDeleteTokenOnProvider=Klicke hier um prüfen/entfernen Authentifizierung gespeichert durch den OAuth Anbieter %s TokenDeleted=Token gelöscht -RequestAccess=Hier klicken, um Zugang anzufordern/verlängern und neue Token zu speichern +RequestAccess=Klicken Sie hier, um den Zugriff anzufordern/zu erneuern und ein neues Token zu erhalten DeleteAccess=Hier klicken, um das Token zu löschen UseTheFollowingUrlAsRedirectURI=Verwenden Sie die folgende URL als Redirect-URI, wenn Sie Ihre Anmeldeinformationen bei Ihrem OAuth-Anbieter erstellen: -ListOfSupportedOauthProviders=Geben Sie die Anmeldeinformationen ein, die Sie von Ihrem OAuth2-Anbieter erhalten haben. Hier werden nur unterstützte OAuth2-Anbieter aufgelistet. Diese Dienste können von anderen Modulen verwendet werden, die eine OAuth2-Authentifizierung benötigen. -OAuthSetupForLogin=Seite um ein OAuth-Token zu erzeugen +ListOfSupportedOauthProviders=Fügen Sie Ihre OAuth2-Tokenanbieter hinzu. Gehen Sie dann auf die Verwaltungsseite Ihres OAuth-Anbieters, um eine OAuth-ID und ein Geheimnis zu erstellen/abzurufen und speichern Sie sie hier. Wenn Sie fertig sind, wechseln Sie auf die andere Registerkarte, um Ihr Token zu generieren. +OAuthSetupForLogin=Seite zum Verwalten (Erstellen/Löschen) von OAuth-Tokens SeePreviousTab=Siehe vorherigen Registerkarte +OAuthProvider=OAuth-Anbieter OAuthIDSecret=OAuth-ID und Secret TOKEN_REFRESH=Aktualisierung des Tokens vorhanden TOKEN_EXPIRED=Token abgelaufen @@ -23,10 +24,13 @@ TOKEN_DELETE=Lösche gespeichertes Token OAUTH_GOOGLE_NAME=OAuth Google-Dienst OAUTH_GOOGLE_ID=OAuth Google-ID OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Wechseln Sie zu dieser Seite und dann zu "Anmeldeinformationen", um OAuth-Anmeldeinformationen zu erstellen OAUTH_GITHUB_NAME=OAuth GitHub-Dienst OAUTH_GITHUB_ID=OAuth GitHub-ID OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Gehen Sie auf diese Seite und dann auf „Eine neue Anwendung registrieren“, um OAuth-Anmeldeinformationen zu erstellen +OAUTH_URL_FOR_CREDENTIAL=Gehen Sie zu dieser Seite, um Ihre OAuth-ID und Ihr Geheimnis zu erstellen oder abzurufen OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth-ID +OAUTH_SECRET=OAuth-Geheimnis +OAuthProviderAdded=OAuth-Anbieter hinzugefügt +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Ein OAuth-Eintrag für diesen Anbieter und dieses Label ist bereits vorhanden diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang index 53633e9afe0..cace09c16e1 100644 --- a/htdocs/langs/de_DE/orders.lang +++ b/htdocs/langs/de_DE/orders.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Mit diesem Angebot war bereits eine offener Auftrag verknüpft, so dass keine weiterer Auftrag automatisch erstellt wurde OrdersArea=Übersicht Kundenaufträge SuppliersOrdersArea=Übersicht Lieferantenbestellungen -OrderCard=Bestellung – Übersicht +OrderCard=Auftrag – Übersicht OrderId=Bestell-ID Order=Kundenauftrag PdfOrderTitle=Auftragsbestätigung @@ -41,7 +42,7 @@ StatusOrderProcessedShort=Bearbeitet StatusOrderDelivered=Geliefert StatusOrderDeliveredShort=Geliefert StatusOrderToBillShort=Zu verrechnen -StatusOrderApprovedShort=genehmigt +StatusOrderApprovedShort=Genehmigt StatusOrderRefusedShort=Abgelehnt StatusOrderToProcessShort=Zu bearbeiten StatusOrderReceivedPartiallyShort=Teilweise erhalten @@ -62,9 +63,9 @@ QtyOrdered=Bestellmenge ProductQtyInDraft=Produktmenge in Bestellentwurf ProductQtyInDraftOrWaitingApproved=Produktmenge in Bestellentwurf oder Bestellung benötigt Genehmigung, noch nicht bestellt MenuOrdersToBill=Bestellverrechnung -MenuOrdersToBill2=abrechenbare Aufträge +MenuOrdersToBill2=Abrechenbare Aufträge ShipProduct=Produkt versenden -CreateOrder=Bestellung erstellen +CreateOrder=Auftrag erstellen RefuseOrder=Bestellung ablehnen ApproveOrder=Bestellung genehmigen Approve2Order=Genehmige Bestellung (2. Bestätigung) @@ -76,7 +77,7 @@ DeleteOrder=Bestellung löschen CancelOrder=Bestellung stornieren OrderReopened= Bestellung %s wieder geöffnet AddOrder=Auftrag erstellen -AddSupplierOrderShort=Bestellung erstellen +AddSupplierOrderShort=Auftrag erstellen AddPurchaseOrder=Lieferantenbestellung erstellen AddToDraftOrders=Zu Bestellentwurf hinzufügen ShowOrder=Bestellung anzeigen @@ -128,8 +129,8 @@ SupplierOrderReceivedInDolibarr=Lieferantenbestellung %s erhalten %s SupplierOrderSubmitedInDolibarr=Lieferantenbestellung %s versendet SupplierOrderClassifiedBilled=Bestellung %s als verrechnet markieren OtherOrders=zeige weitere Bestellungen dieses Partners -SupplierOrderValidatedAndApproved=Die Lieferantenbestellung ist validiert und genehmigt: %s -SupplierOrderValidated=Lieferantenbestellung ist validiert: %s +SupplierOrderValidatedAndApproved=Die Lieferantenbestellung ist freigegeben und genehmigt: %s +SupplierOrderValidated=Lieferantenbestellung ist freigegeben: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Kundenauftrag-Nachbetreuung durch Vertreter TypeContact_commande_internal_SHIPPING=Versand-Nachbetreuung durch Vertreter @@ -182,7 +183,7 @@ StatusSupplierOrderProcessedShort=Bearbeitet StatusSupplierOrderDelivered=Geliefert StatusSupplierOrderDeliveredShort=Geliefert StatusSupplierOrderToBillShort=Geliefert -StatusSupplierOrderApprovedShort=genehmigt +StatusSupplierOrderApprovedShort=Genehmigt StatusSupplierOrderRefusedShort=Abgelehnt StatusSupplierOrderToProcessShort=Zu bearbeiten StatusSupplierOrderReceivedPartiallyShort=Teilweise erhalten @@ -194,7 +195,7 @@ StatusSupplierOrderOnProcess=Bestellt - wartet auf Eingang StatusSupplierOrderOnProcessWithValidation=Bestellt - wartet auf Eingang/Bestätigung StatusSupplierOrderProcessed=Bearbeitet StatusSupplierOrderToBill=Geliefert -StatusSupplierOrderApproved=genehmigt +StatusSupplierOrderApproved=Genehmigt StatusSupplierOrderRefused=Abgelehnt StatusSupplierOrderReceivedPartially=Teilweise erhalten StatusSupplierOrderReceivedAll=Alle Produkte erhalten diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index 2b3ca4c7bc3..83512bde292 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -24,7 +24,7 @@ MessageOK=Nachricht auf der Rückseite für eine bestätigte Zahlung MessageKO=Nachrichtenseite für stornierte Zahlung ContentOfDirectoryIsNotEmpty=Dieses Verzeichnis ist nicht leer. DeleteAlsoContentRecursively=Markieren, um alle Inhalte rekursiv zu löschen -PoweredBy=Unterstützt von +PoweredBy=Powered by YearOfInvoice=Jahr der Rechnung PreviousYearOfInvoice=Vorangehendes Jahr des Rechnungsdatums NextYearOfInvoice=Folgendes Jahr des Rechnungsdatums @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Lieferantenbestellung freigegeben Notify_ORDER_SUPPLIER_REFUSE=Lieferantenbestellung abgelehnt Notify_PROPAL_VALIDATE=Angebot freigegeben Notify_PROPAL_CLOSE_SIGNED=Geschlossene unterzeichnete Kundenangebote +Notify_PROPAL_CLOSE_SIGNED_WEB=Ein auf der Portalseite akzeptiertes Kundenangebot wurde geschlossen Notify_PROPAL_CLOSE_REFUSED=verworfene Kundenangebote, geschlossen +Notify_PROPAL_CLOSE_REFUSED_WEB=Ein auf der Portalseite abgelehnte Kundenangebot wurde geschlossen Notify_PROPAL_SENTBYMAIL=Angebot mit E-Mail gesendet Notify_WITHDRAW_TRANSMIT=Transaktion zurückziehen Notify_WITHDRAW_CREDIT=Kreditkarten Rücknahme @@ -83,10 +85,10 @@ Notify_HOLIDAY_VALIDATE=Urlaubsantrag überprüft (Genehmigung ausstehend) Notify_HOLIDAY_APPROVE=Urlaubsantrag genehmigt Notify_ACTION_CREATE=Aktion zur Tagesplanung hinzugefügt SeeModuleSetup=Finden Sie im Modul-Setup %s -NbOfAttachedFiles=Anzahl der angehängten Dateien/Dokumente -TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien/Dokumente +NbOfAttachedFiles=Anzahl der angehängten Dateien +TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien MaxSize=Maximalgröße -AttachANewFile=Neue Datei/Dokument anhängen +AttachANewFile=Neue Datei anhängen LinkedObject=Verknüpftes Objekt NbOfActiveNotifications=Anzahl der Benachrichtigungen (Anzahl der E-Mail Empfänger) PredefinedMailTest=__(Hallo)__\nDies ist eine Testmail, die an __EMAIL__ gesendet wird.\nDie Zeilen sind durch einen Zeilenumbruch getrennt.\n\n__USER_SIGNATURE__ @@ -181,6 +183,7 @@ SizeUnitfoot=Fuß SizeUnitpoint=Punkt BugTracker=Fehlerverfolgung (Bug-Tracker) SendNewPasswordDesc=Mit diesem Formular können Sie ein neues Passwort anfordern, welches an Ihre hinterlegte E-Mail-Adresse gesendet wird.
    Die Änderung wird wirksam, sobald Sie auf den Bestätigungslink in der E-Mail klicken. +EnterNewPasswordHere=Neues Passwort hier eingeben BackToLoginPage=Zurück zur Anmeldeseite AuthenticationDoesNotAllowSendNewPassword=Im derzeit gewählten Authentifizierungsmodus (%s) kann das System nicht auf Ihre Passwortdaten zugreifen und diese auch nicht ändern.
    Wenden Sie sich hierzu bitte an den Systemadministrator. EnableGDLibraryDesc=Installiere oder aktiviere die GD Bibliothek in der PHP Installtion um dieses Option zu verwenden. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Rechnung %s wurde freigegeben. EMailTextInvoicePayed=Rechnung %s wurde bezahlt. EMailTextProposalValidated=Angebot %s wurde freigegeben EMailTextProposalClosedSigned=Das Angebot %s wurde unterschrieben. +EMailTextProposalClosedSignedWeb=Das auf der Portalseite akzeptierte Angebot %s wurde geschlossen. +EMailTextProposalClosedRefused=Abgelehntes Angebot %s wurde geschlossen. +EMailTextProposalClosedRefusedWeb=Auf der Portalseite abgelehntes Angebot %s wurde geschlossen. EMailTextOrderValidated=Auftrag %s wurde freigegeben EMailTextOrderApproved=Auftrag %s wurde genehmigt. EMailTextOrderValidatedBy=Der Auftrag %s wurde von %s aufgezeichnet. @@ -234,7 +240,7 @@ ImageEditor=Bildbearbeitung YouReceiveMailBecauseOfNotification=Sie erhalten diese Nachricht, weil Sie ein aktives Abonnement für das nachfolgende Ereignis bei %s / %s haben. YouReceiveMailBecauseOfNotification2=\n\nEreignis: ThisIsListOfModules=Dies ist eine Liste von ausgewählten Modulen für die Demo (nur die gängigsten Module sind enthalten). Bearbeiten Sie die Auswahl und eine personalisierte Demo zu erhalten und klicken dann bitte auf "Start". -UseAdvancedPerms=Verwenden Sie die erweiterten Berechtigungen einiger Module +UseAdvancedPerms=Erweiterte Berechtigungen einiger Module verwenden FileFormat=Dateiformat SelectAColor=Farbe wählen AddFiles=Dateien hinzufügen @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Sind Sie sicher, dass Sie "%s" möchten? ConfirmBtnCommonTitle = Aktion bestätigen CloseDialog = schließen Autofill = Automatisches Ausfüllen + +# externalsite +ExternalSiteSetup=Konfigurations-Link auf externe Website +ExternalSiteURL=URL der externen Seite zur Einbettung in einen HTML-iframe +ExternalSiteModuleNotComplete=Modul ExternalSite wurde nicht richtig konfiguriert. +ExampleMyMenuEntry=Mein Menü-Eintrag + +# ftp +FTPClientSetup=Einrichtung des FTP- oder SFTP-Client-Moduls +NewFTPClient=Neue FTP/SFTP-Verbindung einrichten +FTPArea=FTP/SFTP-Bereich +FTPAreaDesc=Diese Ansicht zeigt Ihnen den Inhalt eines FTP- oder SFTP-Servers an. +SetupOfFTPClientModuleNotComplete=Die Konfiguration des FTP- oder SFTP-Client-Moduls scheint unvollständig zu sein +FTPFeatureNotSupportedByYourPHP=Ihre PHP-Umgebung unterstützt keine FTP- oder SFTP-Funktionen +FailedToConnectToFTPServer=Verbindung zum Server fehlgeschlagen (Server %s, Port %s) +FailedToConnectToFTPServerWithCredentials=Anmeldung am Server mit eingegebenem Benutzernamen/Passwort fehlgeschlagen +FTPFailedToRemoveFile=Konnte Datei %s nicht entfernen. Überprüfen Sie die Berechtigungen. +FTPFailedToRemoveDir=Konnte Verzeichnis %s nicht entfernen. Überprüfen Sie die Berechtigungen und ob das Verzeichnis leer ist. +FTPPassiveMode=Passives FTP +ChooseAFTPEntryIntoMenu=Wählen Sie eine FTP/SFTP-Site aus dem Menü... +FailedToGetFile=Folgende Datei(en) konnte(n) nicht geladen werden: %s +ErrorFTPNodisconnect=Fehler beim Trennen des FTP/SFTP-Servers +FileWasUpload=Datei %s wurde hochgeladen +FTPFailedToUploadFile=Fehler beim Hochladen der Datei %s. +AddFolder=Ordner erstellen +FileWasCreateFolder=Ordner %s wurde erstellt +FTPFailedToCreateFolder=Ordner %s konnte nicht erstellt werden. diff --git a/htdocs/langs/de_DE/partnership.lang b/htdocs/langs/de_DE/partnership.lang index 7a614d7fbd9..de9ceb49567 100644 --- a/htdocs/langs/de_DE/partnership.lang +++ b/htdocs/langs/de_DE/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnerschaften PartnershipDescription=Modul zur Parnterschafts-Verwaltung PartnershipDescriptionLong= Modul zur Parnterschafts-Verwaltung Partnership=Partnerschaft +Partnerships=Partnerschaften AddPartnership=Partnerschaft hinzufügen CancelPartnershipForExpiredMembers=Partnerschaft: Partnerschaft von Mitgliedern mit abgelaufenen Abonnements kündigen PartnershipCheckBacklink=Partnerschaft: Überprüfen Sie den verweisenden Backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerschaft: Überprüfen Sie den verweisenden Backli # Menu # NewPartnership=Neue Partnerschaft +NewPartnershipbyWeb= Ihre Partnerschaft wurde erfolgreich hinzugefügt. ListOfPartnerships=Liste der Partnerschaften # diff --git a/htdocs/langs/de_DE/paypal.lang b/htdocs/langs/de_DE/paypal.lang index cc1282685a2..824c899074a 100644 --- a/htdocs/langs/de_DE/paypal.lang +++ b/htdocs/langs/de_DE/paypal.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=PayPal Moduleinstellungen -PaypalDesc=Dieses Modul ermöglicht Zahlungen von Kunden über PayPal zu tätigen. Es können ad-hoxc Zahlungen oder Zahlungen zu Vorgängen aus Dolibarr (Rechnungen, Bestellungen ...) erfolgen +PaypalDesc=Dieses Modul ermöglicht die Zahlung durch Kunden über PayPal . Dies kann sowohl für eine allgemeine Zahlung als auch für eine Zahlung im Zusammenhang mit einem Dolibarr-Objekt (Rechnung, Bestellung, ...) verwendet werden. PaypalOrCBDoPayment=Bezahlen mit PayPal (Kreditkarte oder PayPal) PaypalDoPayment=Zahlung mit PayPal PAYPAL_API_SANDBOX=Testmodus/Sandbox @@ -12,7 +12,7 @@ PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Integrierte Zahlung (Kreditkarte + PayPal) ode PaypalModeIntegral=Integriert PaypalModeOnlyPaypal=Nur PayPal ONLINE_PAYMENT_CSS_URL=Optionale URL des CSS-Stylesheet auf Zahlungsseite -ThisIsTransactionId=Die Transaktions ID lautet: %s +ThisIsTransactionId=Die Transaktions-ID lautet: %s PAYPAL_ADD_PAYMENT_URL=URL für Paypal-Zahlungen beim Dokumentenversand per E-Mail hinzufügen. NewOnlinePaymentReceived=Neue Onlinezahlung erhalten NewOnlinePaymentFailed=Neue Onlinezahlung versucht, aber fehlgeschlagen diff --git a/htdocs/langs/de_DE/productbatch.lang b/htdocs/langs/de_DE/productbatch.lang index 1a17635f56a..9b69c243044 100644 --- a/htdocs/langs/de_DE/productbatch.lang +++ b/htdocs/langs/de_DE/productbatch.lang @@ -6,10 +6,10 @@ ProductStatusNotOnBatch=Nein (keine Chargen-/Serien-Nr.) ProductStatusOnBatchShort=Los ProductStatusOnSerialShort=Seriennummer ProductStatusNotOnBatchShort=Keine -Batch=Charge / Seriennr. +Batch=Charge/Seriennr. atleast1batchfield="Verzehr bis" oder "Verkaufen bis"-Datum oder Chargen- / Seriennummer batch_number=Chargen-/Seriennummer -BatchNumberShort=Charge / Seriennr. +BatchNumberShort=Charge/Seriennr. EatByDate=Haltbarkeitsdatum SellByDate=Verkaufslimitdatum DetailBatchNumber=Details zur Chargen-/Seriennummer @@ -17,11 +17,12 @@ printBatch=Chargen-/Serien-Nr.: %s printEatby=Verzehren bis: %s printSellby=Verkaufen bis: %s printQty=Menge: %d +printPlannedWarehouse=Warenlager: %s AddDispatchBatchLine=Fügen Sie eine Zeile für den Versand bis Haltbarkeit hinzu -WhenProductBatchModuleOnOptionAreForced=Wenn das Modul "Produkt-Chargen und Serien" aktiviert ist, wird die automatische Warenbestandsanpassung gezwungen beim Ereignis "versendet" den tatsächlichen Bestand zu verringern und beim Ereignis "manuelles Buchen in ein Warenlager" die tatsächlichen Bestand zu erhöhen. Dies kann nicht beeinflusst werden. Andere Optionen können wie gewünscht definiert werden. +WhenProductBatchModuleOnOptionAreForced=Wenn das Modul "Produkt-Chargen und Serien" aktiviert ist, wird die automatische Lagerbestandsanpassung gezwungen beim Ereignis "versendet" den tatsächlichen Bestand zu verringern und beim Ereignis "manuelles Buchen in ein Warenlager" die tatsächlichen Bestand zu erhöhen. Dies kann nicht beeinflusst werden. Andere Optionen können wie gewünscht definiert werden. ProductDoesNotUseBatchSerial=Dieses Produkt hat keine Chargen-/Seriennummer ProductLotSetup=Einstellungen des Moduls "Produkt-Chargen und Serien" -ShowCurrentStockOfLot=Warenbestand für diese Chargen-/Seriennummer anzeigen +ShowCurrentStockOfLot=Lagerbestand für diese Chargen-/Seriennummer anzeigen ShowLogOfMovementIfLot=Bewegungen für diese Chargen-/Seriennummer anzeigen StockDetailPerBatch=Lagerdetail nach Chargen SerialNumberAlreadyInUse=Die Seriennummer %s wird bereits für das Produkt %s verwendet @@ -30,9 +31,9 @@ ManageLotMask=Benutzerdefinierte Maske CustomMasks=Option, für jedes Produkt ein anderes Nummerierungsschema zu definieren BatchLotNumberingModules=Nummerierungsregel zur automatischen Generierung der Chargennummer BatchSerialNumberingModules=Nummerierungsregel zur automatischen Generierung der Seriennummer (für Produkte mit der Eigenschaft 1 eindeutiges Los/Serie für jedes Produkt) -QtyToAddAfterBarcodeScan=Menge %s für jeden gescannten Barcode/jede Charge/jede Seriennummer -LifeTime=Lebensdauer (in Tagen) -EndOfLife=Ende der Lebensdauer +QtyToAddAfterBarcodeScan=%s als Menge für jeden gescannten Barcode/Charge/Seriennr. +LifeTime=Haltbarkeit (in Tagen) +EndOfLife=Ende der Haltbarkeit ManufacturingDate=Herstellungsdatum DestructionDate=Datum der Vernichtung FirstUseDate=Datum der ersten Verwendung diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index 64dddea615c..0659807bdba 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -31,18 +31,18 @@ ProductOrService=Produkt oder Leistung ProductsAndServices=Produkte und Leistungen ProductsOrServices=Produkte oder Leistungen ProductsPipeServices=Produkte | Leistungen -ProductsOnSale=Produkte zum Verkauf -ProductsOnPurchase=Produkte im Einkauf +ProductsOnSale=Verkäufliche Produkte +ProductsOnPurchase=Beziehbare Produkte ProductsOnSaleOnly=Produkte nur zum Verkauf ProductsOnPurchaseOnly=Produkte nur im Einkauf ProductsNotOnSell=Produkte nicht im Einkauf/Verkauf -ProductsOnSellAndOnBuy=Produkte im Einkauf/Verkauf -ServicesOnSale=Leistungen für den Verkauf -ServicesOnPurchase=Leistungen für den Einkauf +ProductsOnSellAndOnBuy=Produkte im Einkauf und Verkauf +ServicesOnSale=Verkäufliche Leistungen +ServicesOnPurchase=Beziehbare Leistungen ServicesOnSaleOnly=Leistungen nur für den Verkauf ServicesOnPurchaseOnly=Leistungen nur für den Einkauf ServicesNotOnSell=Leistungen weder im Einlauf noch im Verkauf -ServicesOnSellAndOnBuy=Leistungen für Ein- und Verkauf +ServicesOnSellAndOnBuy=Leistungen für Einkauf und Verkauf LastModifiedProductsAndServices=Zuletzt bearbeitete Produkte/Leistungen (maximal %s) LastRecordedProducts=Letzte %s erfasste Produkte/Leistungen LastRecordedServices=Zuletzt bearbeitete Leistungen (maximal %s) @@ -54,17 +54,17 @@ Stocks=Lagerbestände und Lagerort der Produkte Movements=Lagerbewegungen Sell=Verkauf Buy=Kauf -OnSell=Zu verkaufen -OnBuy=Im Einkauf -NotOnSell=Nicht zu verkaufen -ProductStatusOnSell=verkäuflich -ProductStatusNotOnSell=unverkäuflich +OnSell=Verkäuflich +OnBuy=Beziehbar +NotOnSell=Nicht verkäuflich +ProductStatusOnSell=Verkäuflich +ProductStatusNotOnSell=Nicht verkäuflich ProductStatusOnSellShort=Verkäuflich -ProductStatusNotOnSellShort=Unverkäuflich -ProductStatusOnBuy=Im Einkauf -ProductStatusNotOnBuy=Nicht im Einkauf +ProductStatusNotOnSellShort=Nicht verkäuflich +ProductStatusOnBuy=Beziehbar +ProductStatusNotOnBuy=Nicht beziehbar ProductStatusOnBuyShort=Beziehbar -ProductStatusNotOnBuyShort=Unbeziehbar +ProductStatusNotOnBuyShort=Nicht beziehbar UpdateVAT=Aktualisiere Steuer UpdateDefaultPrice=Aktualisiere Standard Preis UpdateLevelPrices=Preise für jede Ebene aktivieren @@ -104,9 +104,9 @@ BarcodeType=Barcode-Typ SetDefaultBarcodeType=Wählen Sie den standardmäßigen Barcode-Typ BarcodeValue=Barcode-Wert NoteNotVisibleOnBill=Anmerkung (nicht sichtbar auf Rechnungen, Angeboten,...) -ServiceLimitedDuration=Ist die Erbringung einer Dienstleistung zeitlich beschränkt: +ServiceLimitedDuration=Ist die Erbringung einer Leistung zeitlich beschränkt: FillWithLastServiceDates=Fülle mit Daten der letzten Servicezeile -MultiPricesAbility=Mehrere Preissegmente pro Produkt / Dienstleistung (jeder Kunde befindet sich in einem Preissegment) +MultiPricesAbility=Mehrere Preissegmente pro Produkt/Leistung (jeder Kunde befindet sich in einem Preissegment) MultiPricesNumPrices=Anzahl Preise DefaultPriceType=Basis der Standardpreise (mit versus ohne Steuern) beim Hinzufügen neuer Verkaufspreise AssociatedProductsAbility=Aktiviere Kits (Sets aus mehreren Produkten) @@ -122,7 +122,7 @@ CategoryFilter=Kategoriefilter ProductToAddSearch=Suche hinzuzufügendes Produkt NoMatchFound=Kein Eintrag gefunden ListOfProductsServices=Liste der Produkte/Leistungen -ProductAssociationList=Liste der Produkte/Leistungen, die Bestandteil dieses Satzes sind +ProductAssociationList=Liste der Produkte/Leistungen, die Bestandteil dieses Sets sind ProductParentList=Liste der Sets mit diesem Produkt als Komponente ErrorAssociationIsFatherOfThis=Eines der ausgewählten Produkte ist Elternteil des aktuellen Produkts DeleteProduct=Produkt/Leistung löschen @@ -159,7 +159,7 @@ ListServiceByPopularity=Liste der Leistungen nach Beliebtheit Finished=Eigenproduktion RowMaterial=Rohmaterial ConfirmCloneProduct=Möchten Sie das Produkt / die Leistung %s wirklich duplizieren? -CloneContentProduct=Klonen Sie alle wichtigen Informationen des Produkts / der Dienstleistung +CloneContentProduct=Duplizieren aller wichtigen Informationen des Produkts / der Leistung ClonePricesProduct=Preise duplizieren CloneCategoriesProduct=Klonen Sie verknüpfte Tags / Kategorien CloneCompositionProduct=Virtuelle Produkte/Leistungen duplizieren @@ -262,7 +262,7 @@ Quarter1=1. Quartal Quarter2=2. Quartal Quarter3=3. Quartal Quarter4=4. Quartal -BarCodePrintsheet=Barcode drucken +BarCodePrintsheet=Barcodes drucken PageToGenerateBarCodeSheets=Mit diesem Tool können Sie Bögen mit Barcode-Aufklebern drucken. Wählen Sie das Format Ihrer Stickerseite, den Barcode-Typ und den Barcode-Wert aus und klicken Sie dann auf die Schaltfläche %s . NumberOfStickers=Anzahl Etiketten pro Seite PrintsheetForOneBarCode=Mehrere Aufkleber pro Barcode drucken @@ -416,7 +416,7 @@ ProductsMergeSuccess=Produkte wurden zusammengeführt ErrorsProductsMerge=Fehler beim Zusammenführen von Produkten SwitchOnSaleStatus=Status Verkauf einschalten SwitchOnPurchaseStatus=Status Einkauf einschalten -StockMouvementExtraFields= Zusatzfelder (Lagerbewegung) +StockMouvementExtraFields= Ergänzende Attribute (Lagerbewegung) InventoryExtraFields= Ergänzende Attribute (Bestandsaufnahme) ScanOrTypeOrCopyPasteYourBarCodes=Fügen Sie die Barcodes durch Scannen, über die Tastatur oder per Copy/Paste ein PuttingPricesUpToDate=Preise mit den aktuell bekannten Preisen aktualisieren diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index 47716ada73a..30bc766e650 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -3,13 +3,13 @@ RefProject=Projekt-Nr. ProjectRef=Projekt-Nr. ProjectId=Projekt-ID ProjectLabel=Projektbezeichnung -ProjectsArea=Projekte - Übersicht -ProjectStatus=Projekt Status +ProjectsArea=Projekte – Übersicht +ProjectStatus=Projektstatus SharedProject=Jeder -PrivateProject=Zugewiesene Kontakte +PrivateProject=Zugeordnete Kontakte ProjectsImContactFor=Projekte, für die ich ausdrücklich ein Ansprechpartner bin AllAllowedProjects=Alle Projekte die ich sehen kann (eigene + öffentliche) -AllProjects=alle Projekte +AllProjects=Alle Projekte MyProjectsDesc=Diese Ansicht ist auf die Projekte beschränkt, für die Sie ein Ansprechpartner sind ProjectsPublicDesc=Diese Ansicht zeigt alle Projekte, für die Sie zum Lesen berechtigt sind. TasksOnProjectsPublicDesc=Diese Ansicht zeigt alle Aufgaben der Projekte, die Sie einsehen dürfen. @@ -23,26 +23,29 @@ TasksPublicDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welch TasksDesc=Diese Ansicht zeigt alle Projekte und Aufgaben (Ihre Benutzerberechtigungen berechtigt Sie alles zu sehen). AllTaskVisibleButEditIfYouAreAssigned=Alle Aufgaben für qualifizierte Projekte sind sichtbar, Sie können jedoch nur die Zeit für die Aufgabe eingeben, die dem ausgewählten Benutzer zugewiesen ist. Weisen Sie eine Aufgabe zu, wenn Sie Zeiten dafür eingeben müssen. OnlyYourTaskAreVisible=Nur Ihnen zugewiesene Aufgaben sind sichtbar. Wenn Sie Zeit für eine Aufgabe eingeben müssen und die Aufgabe hier nicht sichtbar ist, müssen Sie sich die Aufgabe selbst zuweisen. +ImportDatasetProjects=Projekte oder Leads ImportDatasetTasks=Aufgaben der Projekte ProjectCategories=Projektkategorien/Tags -NewProject=neues Projekt +NewProject=Neues Projekt AddProject=Projekt erstellen DeleteAProject=Löschen eines Projekts DeleteATask=Löschen einer Aufgabe ConfirmDeleteAProject=Sind Sie sicher, dass diese Vertragsposition löschen wollen? ConfirmDeleteATask=Sind Sie sicher, dass diese Aufgabe löschen wollen? -OpenedProjects=offene Projekte -OpenedTasks=offene Aufgaben +OpenedProjects=Offene Projekte +OpenedTasks=Offene Aufgaben OpportunitiesStatusForOpenedProjects=Betrag der Leads aus offenen Projekten nach Status OpportunitiesStatusForProjects=Anzahl Kundeninteressen je Projekt nach Status ShowProject=Projekt anzeigen ShowTask=Aufgabe anzeigen +SetThirdParty=Geschäftspartner festlegen SetProject=Projekt einstellen +OutOfProject=Außerhalb des Projekts NoProject=Kein Projekt definiert oder keine Rechte NbOfProjects=Anzahl Projekte NbOfTasks=Anzahl Aufgaben TimeSpent=Zeitaufwand -TimeSpentByYou=eigener Zeitaufwand +TimeSpentByYou=Eigener Zeitaufwand TimeSpentByUser=Zeitaufwand von Benutzer ausgegeben TimesSpent=Zeitaufwände TaskId=Aufgaben-ID @@ -55,7 +58,7 @@ TaskTimeDate=Datum TasksOnOpenedProject=Aufgaben in offenen Projekten WorkloadNotDefined=Arbeitsaufwand nicht definiert NewTimeSpent=Zeitaufwände -MyTimeSpent=mein Zeitaufwand +MyTimeSpent=Mein Zeitaufwand BillTime=Zeitaufwand abrechnen BillTimeShort=Zeit abrechnen TimeToBill=Zeit nicht in Rechnung gestellt @@ -65,7 +68,7 @@ Task=Aufgabe TaskDateStart=Startdatum der Aufgabe TaskDateEnd=Enddatum der Aufgabe TaskDescription=Aufgabenbeschreibung -NewTask=neue Aufgabe +NewTask=Neue Aufgabe AddTask=Aufgabe erstellen AddTimeSpent=Erfasse verwendete Zeit AddHereTimeSpentForDay=Zeitaufwand für diesen Tag/Aufgabe hier erfassen @@ -74,7 +77,7 @@ Activity=Tätigkeit Activities=Aufgaben/Tätigkeiten MyActivities=Meine Aufgaben/Tätigkeiten MyProjects=Meine Projekte -MyProjectsArea=meine Projekte – Übersicht +MyProjectsArea=Meine Projekte – Übersicht DurationEffective=Effektivdauer ProgressDeclared=Erklärte echte Fortschritte TaskProgressSummary=Aufgabenfortschritt @@ -85,26 +88,26 @@ ProgressCalculated=Fortschritt nach Verbrauch WhichIamLinkedTo=mit dem ich verbunden bin WhichIamLinkedToProject=Projekt mit dem ich verbunden bin Time=Zeitaufwand -TimeConsumed=verwendet +TimeConsumed=Verwendet ListOfTasks=Aufgabenliste GoToListOfTimeConsumed=Liste der verwendeten Zeit aufrufen GanttView=Gantt-Diagramm ListWarehouseAssociatedProject=Liste der mit dem Projekt verknüpften Lager -ListProposalsAssociatedProject=Liste der projektbezogenen Angebote -ListOrdersAssociatedProject=Liste der projektbezogenen Kundenaufträge -ListInvoicesAssociatedProject=Liste der projektbezogenen Kundenrechnungen -ListPredefinedInvoicesAssociatedProject=Liste der Kundenvorlagenrechnungen, die sich auf das Projekt beziehen -ListSupplierOrdersAssociatedProject=Liste der Bestellungen im Zusammenhang mit dem Projekt -ListSupplierInvoicesAssociatedProject=Liste der projektbezogenen Lieferantenrechnungen -ListContractAssociatedProject=Liste der projektbezogenen Verträge -ListShippingAssociatedProject=Liste der projektbezogenen Lieferungen -ListFichinterAssociatedProject=Liste der projektbezogenen Serviceaufträge -ListExpenseReportsAssociatedProject=Liste der projektbezogenen Spesenabrechnungen -ListDonationsAssociatedProject=mit dem Projekt verknüpfte Spendenliste -ListVariousPaymentsAssociatedProject=Liste der sonstigen projektbezogenen Zahlungen -ListSalariesAssociatedProject=Liste der projektbezogenen Gehaltszahlungen -ListActionsAssociatedProject=Liste der projektbezogenen Ereignisse -ListMOAssociatedProject=Liste der projektbezogenen Fertigungsaufträge +ListProposalsAssociatedProject=Liste der mit dem Projekt verbundenen Angebote +ListOrdersAssociatedProject=Liste der mit dem Projekt verbundenen Kundenaufträge +ListInvoicesAssociatedProject=Liste der mit dem Projekt verbundenen Kundenrechnungen +ListPredefinedInvoicesAssociatedProject=Liste der mit dem Projekt verbundenen Rechnungsvorlagen für Kundenrechnungen +ListSupplierOrdersAssociatedProject=Liste der mit dem Projekt verbundenen Lieferantenbestellungen +ListSupplierInvoicesAssociatedProject=Liste der mit dem Projekt verbundenen Lieferantenrechnungen +ListContractAssociatedProject=Liste der mit dem Projekt verbundenen Verträge +ListShippingAssociatedProject=Liste der mit dem Projekt verbundenen Lieferungen +ListFichinterAssociatedProject=Liste der mit dem Projekt verbundenen Serviceaufträge +ListExpenseReportsAssociatedProject=Liste der mit dem Projekt verbundenen Spesenabrechnungen +ListDonationsAssociatedProject=Liste der mit dem Projekt verbundenen Spenden +ListVariousPaymentsAssociatedProject=Liste der sonstigen mit dem Projekt verbundenen Zahlungen +ListSalariesAssociatedProject=Liste der mit dem Projekt verbundenen Gehaltszahlungen +ListActionsAssociatedProject=Liste der mit dem Projekt verbundenen Ereignisse +ListMOAssociatedProject=Liste der mit dem Projekt verbundenen Fertigungsaufträge ListTaskTimeUserProject=Liste mit Zeitaufwand der Projektaufgaben ListTaskTimeForTask=Zeitaufwand auf Aufgaben ActivityOnProjectToday=Projektaktivitäten von heute @@ -113,19 +116,20 @@ ActivityOnProjectThisWeek=Projektaktivitäten dieser Woche ActivityOnProjectThisMonth=Projektaktivitäten dieses Monats ActivityOnProjectThisYear=Projektaktivitäten dieses Jahres ChildOfProjectTask=Subelemente des Projekts/Aufgabe -ChildOfTask=Kindelement der Aufgabe -TaskHasChild=Aufgabe hat eine Unteraufgabe -NotOwnerOfProject=Nicht Eigner des privaten Projekts +ChildOfTask=Subelement der Aufgabe +TaskHasChild=Aufgabe hat ein Subelement +NotOwnerOfProject=Nicht Eigner dieses privaten Projekts AffectedTo=Zugewiesen an CantRemoveProject=Dieses Projekt kann nicht entfernt werden, da es von einigen anderen Objekten (Rechnung, Bestellungen oder andere) verwendet wird. Siehe Registerkarte '%s'. ValidateProject=Projekt freigeben ConfirmValidateProject=Möchten Sie dieses Projekt wirklich freigeben? CloseAProject=Projekt schließen ConfirmCloseAProject=Möchten Sie dieses Projekt wirklich schließen? -AlsoCloseAProject=Das Projekt auch schließen (lassen Sie es offen, wenn Sie noch Produktions-Aufgaben laufen haben) +AlsoCloseAProject=Projekt auch schließen +AlsoCloseAProjectTooltip=Offen lassen, wenn Sie noch zugehörige Produktionsaufgaben verfolgen müssen ReOpenAProject=Projekt öffnen ConfirmReOpenAProject=Möchten Sie dieses Projekt wirklich wiedereröffnen? -ProjectContact=Kontakte zum Projekt +ProjectContact=Projektkontakte TaskContact=Kontakte zur Aufgabe ActionsOnProject=Projektaktionen YouAreNotContactOfProject=Sie sind diesem privaten Projekt nicht als Kontakt zugeordnet. @@ -154,7 +158,7 @@ ProjectReportDate=Passe Aufgaben-Datum dem neuen Projekt-Startdatum an ErrorShiftTaskDate=Es ist nicht möglich, das Aufgabendatum dem neuen Projektdatum anzupassen ProjectsAndTasksLines=Projekte und Aufgaben ProjectCreatedInDolibarr=Projekt %s erstellt -ProjectValidatedInDolibarr=Projekt %s validiert +ProjectValidatedInDolibarr=Projekt %s freigeben ProjectModifiedInDolibarr=Projekt %s geändert TaskCreatedInDolibarr=Aufgabe %s erstellt TaskModifiedInDolibarr=Aufgabe %s geändert @@ -165,7 +169,7 @@ OpportunityProbability=Wahrscheinlichkeit Kundeninteresse OpportunityProbabilityShort=Wahrscheinl. Kundeninteresse OpportunityAmount=Wert/Betrag für Lead OpportunityAmountShort=Wert/Betrag für Lead -OpportunityWeightedAmount=Gewichteter Wert der Verkaufschance +OpportunityWeightedAmount=Opportunitätsbetrag, gewichtet nach Wahrscheinlichkeit OpportunityWeightedAmountShort=Verkaufsschancen gew. OpportunityAmountAverageShort=Kundeninteresse im Durchschnitt OpportunityAmountWeigthedShort=Kundeninteresse gewichtet @@ -190,16 +194,16 @@ PlannedWorkload=Geplante Auslastung PlannedWorkloadShort=Arbeitsaufwand ProjectReferers=Verknüpfte Einträge ProjectMustBeValidatedFirst=Projekt muss erst freigegeben werden -MustBeValidatedToBeSigned=%s muss zuerst validiert werden, um auf "unterzeichnet" gesetzt zu werden. +MustBeValidatedToBeSigned=%s muss zuerst freigegeben werden, um auf "unterzeichnet" gesetzt zu werden. FirstAddRessourceToAllocateTime=Weisen Sie einen Benutzer als Kontakt des Projekts zu, um Zeiten zu erfassen InputPerDay=Tagesansicht InputPerWeek=Wochenansicht InputPerMonth=Monatsansicht -InputDetail=Eingabedetail +InputDetail=Eingabe Detail TimeAlreadyRecorded=Zeitaufwand für diese Aufgabe/Tag und Benutzer %s bereits aufgenommen -ProjectsWithThisUserAsContact=Projekte mit diesem Anwender als Kontakt +ProjectsWithThisUserAsContact=Projekte mit diesem Benutzer als Kontakt ProjectsWithThisContact=Projekte mit diesem Kontakt -TasksWithThisUserAsContact=Aufgaben zugeordnet zu diesem Anwender +TasksWithThisUserAsContact=Diesem Benutzer zugeordnete Aufgaben ResourceNotAssignedToProject=Nicht dem Projekt zugeordnet ResourceNotAssignedToTheTask=nicht der Aufgabe zugewiesen NoUserAssignedToTheProject=Diesem Projekt sind keine Benutzer zugeordnet @@ -222,9 +226,9 @@ TasksStatistics=Statistiken zu Aufgaben von Projekten oder Interessenten TaskAssignedToEnterTime=Aufgabe zugewiesen. Eingabe der Zeit zu diese Aufgabe sollte möglich sein. IdTaskTime=ID Zeit Aufgabe YouCanCompleteRef=Wenn die Referenz mit einem Suffix ergänzt werden soll, ist es empfehlenswert, ein Trennstrich '-' zu verwenden, so dass die automatische Numerierung für weitere Projekte funktioniert. Zum Beispiel %s-MYSUFFIX -OpenedProjectsByThirdparties=Offene Projekte nach Partner +OpenedProjectsByThirdparties=Offene Projekte nach Geschäftspartner OnlyOpportunitiesShort=nur Interessenten -OpenedOpportunitiesShort=offene Verkaufschancen +OpenedOpportunitiesShort=Offene Leads NotOpenedOpportunitiesShort=Kein offener Interessent NotAnOpportunityShort=Keine Verkaufsmöglichkeit OpportunityTotalAmount=Gesamtbetrag Leads/Verkaufschancen @@ -238,7 +242,7 @@ OppStatusPENDING=Anstehend OppStatusWON=Gewonnen OppStatusLOST=Verloren Budget=Budget -AllowToLinkFromOtherCompany=Verknüpfungen der Projekte anderer Unternehmen zulassen

    Unterstützte Werte:
    - Leer lassen: Jedes Projekt des Unternehmens kann verknüpft werden (Standard)
    - "all": Alle Projekte verknüpfen, auch Projekte anderer Unternehmen
    - Eine kommagetrennte Liste von Geschäftspartner-IDs: alle Projekte dieser Geschäftspartner (Beispiel: 123,4795,53)
    +AllowToLinkFromOtherCompany=Element mit einem Projekt einer anderen Firma verknüpfen

    Unterstützte Werte:
    - Leer lassen: Kann Elemente mit beliebigen Projekten in derselben Firma verknüpfen (Standard)
    - "alle": Verknüpfung mit allen Projekten, auch denen anderer Unternehmen
    - Eine durch Kommas getrennte Liste von Drittanbieter-IDs: kann Elemente mit beliebigen Projekten dieser Drittanbieter verknüpfen (Beispiel: 123,4795,53) LatestProjects=%s neueste Projekte LatestModifiedProjects=Zuletzt bearbeitete Projekte (maximal %s) OtherFilteredTasks=Andere gefilterte Aufgaben @@ -259,7 +263,7 @@ TimeSpentInvoiced=Zeitaufwand in Rechnung gestellt TimeSpentForIntervention=Zeitaufwand TimeSpentForInvoice=Zeitaufwand OneLinePerUser=Eine Zeile pro Benutzer -ServiceToUseOnLines=Zeiten über Leistung abrechnen +ServiceToUseOnLines=Standardmäßig in den Einzelpositionen zu verwendende Leistung InvoiceGeneratedFromTimeSpent=Die Rechnung %s wurde aus der für das Projekt aufgewendeten Zeit generiert InterventionGeneratedFromTimeSpent=Der Serviceauftrag %s wurde aus der für das Projekt aufgewendeten Zeit generiert ProjectBillTimeDescription=Auswählen, wenn Arbeitszeiten für Projektaufgaben erfasst UND Rechnungen aus diesen Zeiten erzeugt werden sollen, um mit dem Kunden des Projekts abzurechnen (nicht auswählen, wenn nur Rechnungen erstellt werden sollen, die nicht auf erfassten Arbeitszeiten basieren). Hinweis: Um eine Rechnung zu erstellen, gehen Sie auf die Registerkarte 'Zeitaufwand' des Projekts und wählen die abzurechnenden Zeilen aus. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Der Gewinn wird berechnet mit AddPersonToTask=Auch zu Aufgaben hinzufügen UsageOrganizeEvent=Verwendung: Organisation von Veranstaltungen PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klassifizieren Sie das Projekt als abgeschlossen, wenn alle seine Aufgaben abgeschlossen sind (100%% Fortschritt). -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Hinweis: Bestehende Projekte mit allen Aufgaben mit dem Fortschritt 100%% sind nicht betroffen: Sie müssen sie manuell schließen. Diese Option betrifft nur offene Projekte. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Hinweis: Bestehende Projekte, bei denen alle Aufgaben bereits auf einen Fortschritt von 100%% eingestellt sind, werden nicht berücksichtigt: Sie müssen sie manuell schließen. Diese Option wirkt sich nur auf geöffnete Projekte aus. SelectLinesOfTimeSpentToInvoice=Wählen Sie Positionen mit Zeiten aus, die noch nicht in Rechnung gestellt wurden, und führen Sie dann die Massenaktion "Rechnung erstellen" aus, um sie zu berechnen ProjectTasksWithoutTimeSpent=Projektaufgaben ohne Zeitaufwand FormForNewLeadDesc=Vielen Dank für das Ausfüllen des Formulars, um uns zu kontaktieren. Sie können uns auch direkt eine E-Mail an %s senden. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Öffentliches Kontaktformular aktivieren NewLeadbyWeb=Ihre Nachricht bzw. Anfrage wurde erfasst. Wir werden uns so bald wie möglich mit Ihnen in Verbindung setzen. NewLeadForm=Neues Kontaktformular LeadFromPublicForm=Online-Interessent per öffentlichem Formular +ExportAccountingReportButtonLabel=Bericht erhalten diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index 8a587547f9d..050b83a7a33 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -3,12 +3,12 @@ Proposals=Angebote Proposal=Angebot ProposalShort=Angebot ProposalsDraft=Angebotsentwürfe -ProposalsOpened=offene Angebote +ProposalsOpened=Offene Angebote CommercialProposal=Angebot PdfCommercialProposalTitle=Angebot ProposalCard=Angebot – Übersicht NewProp=Neues Angebot -NewPropal=neues Angebot +NewPropal=Neues Angebot Prospect=Interessent DeleteProp=Angebot löschen ValidateProp=Angebot freigeben @@ -20,7 +20,7 @@ LastModifiedProposals=Zuletzt bearbeitete Angebote (maximal %s) AllPropals=Alle Angebote SearchAProposal=Angebot suchen NoProposal=kein Angebot -ProposalsStatistics=Angebote - Statistiken +ProposalsStatistics=Angebote – Statistiken NumberOfProposalsByMonth=Anzahl pro Monat AmountOfProposalsByMonthHT=Betrag pro Monat (ohne Steuern) NbOfProposals=Anzahl der Angebote @@ -30,13 +30,13 @@ PropalsOpened=Offen PropalStatusDraft=Entwurf (freizugeben) PropalStatusValidated=Freigegeben (Angebot ist offen) PropalStatusSigned=unterzeichnet (abrechenbar) -PropalStatusNotSigned=abgelehnt (geschlossen) +PropalStatusNotSigned=Abgelehnt (geschlossen) PropalStatusBilled=Verrechnet PropalStatusDraftShort=Entwurf PropalStatusValidatedShort=Freigegeben (offen) PropalStatusClosedShort=geschlossen -PropalStatusSignedShort=beauftragt -PropalStatusNotSignedShort=abgelehnt +PropalStatusSignedShort=Beauftragt +PropalStatusNotSignedShort=Abgelehnt PropalStatusBilledShort=Verrechnet PropalsToClose=Zu schließende Angebote PropalsToBill=Unterzeichnete Angebote zur Verrechnung @@ -47,9 +47,9 @@ SendPropalByMail=Angebot per E-Mail versenden DatePropal=Angebotsdatum DateEndPropal=Gültig bis ValidityDuration=Gültigkeitsdauer -SetAcceptedRefused=Setze beauftragt / abgelehnt +SetAcceptedRefused=Setze beauftragt/abgelehnt ErrorPropalNotFound=Angebot %s nicht gefunden -AddToDraftProposals=Zu Angebots-Entwurf hinzufügen +AddToDraftProposals=Zu Angebotsentwurf hinzufügen NoDraftProposals=Keine Angebotsentwürfe CopyPropalFrom=Erstelle neues Angebot durch Kopieren eines vorliegenden Angebots CreateEmptyPropal=Erstelle leeres Angebot oder aus der Liste der Produkte/Leistungen @@ -64,50 +64,55 @@ ProposalLines=Angebotszeilen AvailabilityPeriod=Gültig bis SetAvailability=Gültigkeitszeitraum definieren AfterOrder=nach Bestellung -OtherProposals=zeige weitere Angebote für diesen Partner +OtherProposals=Zeige weitere Angebote für diesen Geschäftspartner + ##### Availability ##### AvailabilityTypeAV_NOW=Sofort AvailabilityTypeAV_1W=7 Tage AvailabilityTypeAV_2W=14 Tage AvailabilityTypeAV_3W=3 Wochen AvailabilityTypeAV_1M=1 Monat -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Vertreter für Angebot TypeContact_propal_external_BILLING=Kontakt für Kundenrechnungen TypeContact_propal_external_CUSTOMER=Kundenkontakt für Angebot TypeContact_propal_external_SHIPPING=Kundenkontakt für Lieferung + # Document models -DocModelAzurDescription=Ein vollständiges Angebotsmodell (alte Implementierung der Cyan-Vorlage) -DocModelCyanDescription=Ein vollständiges Angebotsmodell -DefaultModelPropalCreate=Erstellung Standardvorlage -DefaultModelPropalToBill=Standardvorlage, wenn Sie ein Angebot schließen wollen (zur Verrechung) -DefaultModelPropalClosed=Standardvorlage, wenn sie ein Angebot schließen wollen (ohne Rechnung) -ProposalCustomerSignature=Bei Beauftragung: Name in Klarschrift, Ort, Datum, Unterschrift -ProposalsStatisticsSuppliers=Statistik Lieferantenanfragen -CaseFollowedBy=Fall gefolgt von -SignedOnly=nur signiert -NoSign=Auf "abgelehnt" setzen -NoSigned=auf "abgelehnt" setzen CantBeNoSign=Kann nicht auf "abgelehnt" gesetzt werden +CaseFollowedBy=Fall gefolgt von ConfirmMassNoSignature=Massenbestätigung für "abgelehnt" ConfirmMassNoSignatureQuestion=Möchten Sie die ausgewählten Datensätze wirklich auf den Status "abgelehnt" setzen? -IsNotADraft=ist kein Entwurf -PassedInOpenStatus=wurde freigegeben -Sign=Beauftragen -Signed=beauftragt -ConfirmMassValidation=Massenbestätigung für Validierung ConfirmMassSignature=Massenbestätigung Unterzeichnung -ConfirmMassValidationQuestion=Möchten Sie die ausgewählten Datensätze wirklich freigeben? ConfirmMassSignatureQuestion=Möchten Sie die ausgewählten Datensätze wirklich beauftragen? -IdProposal=Angebots-ID +ConfirmMassValidation=Massenbestätigung für Validierung +ConfirmMassValidationQuestion=Möchten Sie die ausgewählten Datensätze wirklich freigeben? +ConfirmRefusePropal=Möchten Sie dieses Angebot wirklich ablehnen? +ContractSigned=Vertrag unterschrieben +DefaultModelPropalClosed=Standardvorlage, wenn sie ein Angebot schließen wollen (ohne Rechnung) +DefaultModelPropalCreate=Erstellung Standardvorlage +DefaultModelPropalToBill=Standardvorlage, wenn Sie ein Angebot schließen wollen (zur Verrechung) +DocModelAzurDescription=Ein vollständiges Angebotsmodell (alte Implementierung der Cyan-Vorlage) +DocModelCyanDescription=Ein vollständiges Angebotsmodell +FichinterSigned=Serviceauftrag unterzeichnet IdProduct=Produkt ID +IdProposal=Angebots-ID +IsNotADraft=ist kein Entwurf LineBuyPriceHT=Betrag Kaufpreis abzüglich Steuern für Zeile -SignPropal=Angebot annehmen +NoSign=Ablehnen +NoSigned=auf "abgelehnt" setzen +PassedInOpenStatus=wurde freigegeben +PropalAlreadyRefused=Angebot bereits abgelehnt +PropalAlreadySigned=Angebot bereits angenommen +PropalRefused=Angebot abgelehnt +PropalSigned=Angebot beauftragt +ProposalCustomerSignature=Auftraggeber: Name in Klarschrift, Ort, Datum, Unterschrift +ProposalsStatisticsSuppliers=Statistik Lieferantenanfragen RefusePropal=Angebot ablehnen Sign=Beauftragen -NoSign=Auf "abgelehnt" setzen -PropalAlreadySigned=Angebot bereits angenommen -PropalAlreadyRefused=Angebot bereits abgelehnt -PropalSigned=Angebot beauftragt -PropalRefused=Angebot abgelehnt -ConfirmRefusePropal=Möchten Sie dieses Angebot wirklich ablehnen? +SignContract=Vertrag unterzeichnen +SignFichinter=Serviceauftrag unterzeichnen +SignPropal=Angebot annehmen +Signed=beauftragt +SignedOnly=nur signiert diff --git a/htdocs/langs/de_DE/receptions.lang b/htdocs/langs/de_DE/receptions.lang index 4728cc7b62d..51a284ed95b 100644 --- a/htdocs/langs/de_DE/receptions.lang +++ b/htdocs/langs/de_DE/receptions.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - receptions ReceptionDescription=Verwaltung des Wareneingangs (Empfangsdokumente erstellen) ReceptionsSetup=Wareneingang einrichten -RefReception=Wareneingangs Nummer +RefReception=Ref. Wareneingang Reception=Wareneingang Receptions=Wareneingänge AllReceptions=Alle Wareneingänge @@ -24,14 +24,15 @@ ReceptionsAndReceivingForSameOrder=Empfänge and receipts für dieses order ReceptionsToValidate=Empfänge an validate StatusReceptionCanceled=Storniert StatusReceptionDraft=Entwurf -StatusReceptionValidated=Validiert (zu erhaltende oder bereits erhaltene Produkte) -StatusReceptionValidatedToReceive=Validiert (zu erhaltende Produkte) -StatusReceptionValidatedReceived=Validiert (Produkte erhalten) +StatusReceptionValidated=Freigegeben (zu erhaltende oder bereits erhaltene Produkte) +StatusReceptionValidatedToReceive=Freigegeben (zu erhaltende Produkte) +StatusReceptionValidatedReceived=Freigegeben (Produkte erhalten) StatusReceptionProcessed=Bearbeitet StatusReceptionDraftShort=Entwurf StatusReceptionValidatedShort=Freigegeben StatusReceptionProcessedShort=Bearbeitet ReceptionSheet=Empfangsblatt +ValidateReception=Warenempfang bestätigen ConfirmDeleteReception=Möchten Sie diesen Wareneingang wirklich löschen? ConfirmValidateReception=Möchten Sie diesen Wareneingang mit der Referenz %s wirklich freigeben ? ConfirmCancelReception=Möchten Sie diesen Wareneingang wirklich stornieren? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Nummerierungsmodul für Empfänge ReceptionsReceiptModel=Dokumentvorlagen für Empfänge NoMorePredefinedProductToDispatch=Keine vordefinierten Produkte mehr zum Versand ReceptionExist=Ein Wareneingang ist vorhanden -ByingPrice=Einkaufspreis ReceptionBackToDraftInDolibarr=Wareneingang%s zurück auf Entwurf ReceptionClassifyClosedInDolibarr=Wareneingang %s als geschlossen klassifizieren ReceptionUnClassifyCloseddInDolibarr=Wareneingang %s wieder öffnen diff --git a/htdocs/langs/de_DE/recruitment.lang b/htdocs/langs/de_DE/recruitment.lang index beb8ab5994e..13fb604b489 100644 --- a/htdocs/langs/de_DE/recruitment.lang +++ b/htdocs/langs/de_DE/recruitment.lang @@ -20,7 +20,7 @@ # Module label 'ModuleRecruitmentName' ModuleRecruitmentName = Personalbeschaffung # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Verwalten und verfolgen Sie Rekrutierungs-Kampagnen für neue Job-Positionen. +ModuleRecruitmentDesc = Verwalten und verfolgen Sie Rekrutierungs-Kampagnen für offene Stellen # # Admin page @@ -40,32 +40,33 @@ RecruitmentAbout = Über Rekrutierung RecruitmentAboutPage = Seite 'Über Personalbeschaffung' NbOfEmployeesExpected=Erwartete Anzahl von Mitarbeitern JobLabel=Bezeichnung der beruflichen Position -WorkPlace=Arbeitsplatz +WorkPlace=Arbeitsort DateExpected=Erwartetes Datum -FutureManager=Zukünftiger Manager +FutureManager=Zukünftige Führungskraft ResponsibleOfRecruitement=Verantwortlicher für die Personalbeschaffung -IfJobIsLocatedAtAPartner=Wenn sich der Job an einem Partnerort befindet +IfJobIsLocatedAtAPartner=Wenn sich die Stelle am Standort eines Geschäftspartners befindet PositionToBeFilled=Offene Stelle PositionsToBeFilled=Offene Stellen ListOfPositionsToBeFilled=Liste der offenen Stellen -NewPositionToBeFilled=Neue offene Stellen +NewPositionToBeFilled=Neue offene Stelle(n) JobOfferToBeFilled=Zu besetzende Stelle ThisIsInformationOnJobPosition=Information über die zu besetzende Stelle ContactForRecruitment=Ansprechpartner für die Rekrutierung -EmailRecruiter=E-Mail Rekruter +EmailRecruiter=E-Mail-Adresse verwenden ToUseAGenericEmail=So verwenden Sie eine generische E-Mail. Falls nicht definiert, wird die E-Mail-Adresse des für die Personalbeschaffung Verantwortlichen verwendet NewCandidature=Neue Bewerbung ListOfCandidatures=Liste der Bewerbungen -RequestedRemuneration=gewünschtes Gehalt -ProposedRemuneration=vorgeschlagenes Gehalt +Remuneration=Gehalt +RequestedRemuneration=Gefordertes Gehalt +ProposedRemuneration=Gehaltsvorschlag ContractProposed=Vertrag unterbreitet ContractSigned=Vertrag unterschrieben ContractRefused=Vertrag abgelehnt RecruitmentCandidature=Bewerbung JobPositions=Offene Stellen RecruitmentCandidatures=Bewerbungen -InterviewToDo=Bewerbungsgespräch machen +InterviewToDo=Nachzuverfolgende Kontakte AnswerCandidature=Antwort auf die Bewerbung YourCandidature=Ihre Bewerbung YourCandidatureAnswerMessage=Vielen Dank für Ihre Bewerbung.
    ... diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang index cff8bef69b0..cd3e8d03ccd 100644 --- a/htdocs/langs/de_DE/salaries.lang +++ b/htdocs/langs/de_DE/salaries.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard Buchungskonto für Benutzer von Geschäftspartnern +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto (aus dem Kontenplan), das standardmäßig für Geschäftspartner, die „Benutzer“ sind, verwendet wird SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Das in der Benutzerkarte hinterlegte Konto wird nur für die Nebenbücher verwendet. Dieses Konto wird für das Hauptbuch und als Standardwert für die Nebenbücher verwendet, wenn beim Benutzer kein Konto hinterlegt ist. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard-Buchungskonto für Gehaltszahlungen CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Lassen Sie beim Erstellen eines Gehalts standardmäßig die Option "Gesamtzahlung automatisch erstellen" leer diff --git a/htdocs/langs/de_DE/sendings.lang b/htdocs/langs/de_DE/sendings.lang index bb858a55538..bee31352ea5 100644 --- a/htdocs/langs/de_DE/sendings.lang +++ b/htdocs/langs/de_DE/sendings.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - sendings -RefSending=Versand-Nr. -Sending=Auslieferung -Sendings=Auslieferungen +RefSending=Lieferungs-Ref. +Sending=Lieferung +Sendings=Lieferungen AllSendings=Alle Lieferungen -Shipment=Versand +Shipment=Lieferung Shipments=Lieferungen ShowSending=Zeige Lieferungen Receivings=Zustellbestätigungen @@ -12,11 +12,11 @@ ListOfSendings=Versandliste SendingMethod=Versandart LastSendings=%s neueste Lieferungen StatisticsOfSendings=Versandstatistik -NbOfSendings=Anzahl Auslieferungen -NumberOfShipmentsByMonth=Anzahl Auslieferungen pro Monat +NbOfSendings=Anzahl Lieferungen +NumberOfShipmentsByMonth=Anzahl Lieferungen pro Monat SendingCard=Lieferung – Übersicht NewSending=Neue Lieferung -CreateShipment=Auslieferung erstellen +CreateShipment=Lieferung erstellen QtyShipped=Liefermenge QtyShippedShort=Gelieferte Menge QtyPreparedOrShipped=Menge vorbereitet oder versendet @@ -25,10 +25,10 @@ QtyToReceive=Menge hinzugekommen QtyReceived=Erhaltene Menge QtyInOtherShipments=Menge in anderen Lieferungen KeepToShip=Noch zu versenden -KeepToShipShort=übrigbleiben +KeepToShipShort=Noch offen OtherSendingsForSameOrder=Weitere Lieferungen zu dieser Bestellung SendingsAndReceivingForSameOrder=Warenerhalt und Versand dieser Bestellung -SendingsToValidate=Freizugebende Auslieferungen +SendingsToValidate=Freizugebende Lieferungen StatusSendingCanceled=Storniert StatusSendingCanceledShort=storniert StatusSendingDraft=Entwurf @@ -50,7 +50,7 @@ StatusReceipt=Der Status des Lieferschein DateReceived=Datum der Zustellung ClassifyReception=Als erhalten markieren SendShippingByEMail=Versand per E-Mail -SendShippingRef=Versendung der Auslieferung %s +SendShippingRef=Versand der Lieferung %s ActionsOnShipping=Hinweis zur Lieferung LinkToTrackYourPackage=Link zur Paket- bzw. Sendungsverfolgung ShipmentCreationIsDoneFromOrder=Im Moment erfolgt die Erstellung einer neuen Lieferung aus dem Datensatz des Kundenauftrags. @@ -65,8 +65,8 @@ ValidateOrderFirstBeforeShipment=Sie müssen den Auftrag erst bestätigen bevor # Sending methods # ModelDocument -DocumentModelTyphon=Vollständig Dokumentvorlage für die Lieferscheine (Logo, ...) -DocumentModelStorm=Vollständigeres Dokumentmodell für Lieferbelege und Kompatibilität mit Extrafeldern (Logo ...) +DocumentModelTyphon=Vollständige Dokumentenvorlage für Zustellbestätigungen (Logo, ...) +DocumentModelStorm=Vollständige Dokumentenvorlage für Zustellbestätigungen, kompatibel mit ergänzenden Attributen (Logo ...) Error_EXPEDITION_ADDON_NUMBER_NotDefined=Konstante EXPEDITION_ADDON_NUMBER nicht definiert SumOfProductVolumes=Summe der Produktvolumen SumOfProductWeights=Summe der Produktgewichte diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index 62df4270b03..7da1a65eb67 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -58,7 +58,7 @@ StockLowerThanLimit=Lagerbestand unterhalb der Mindestbestandsmenge ( %s ) EnhancedValue=Warenwert EnhancedValueOfWarehouses=Lagerwert UserWarehouseAutoCreate=Automatisch ein Lager erstellen wenn ein neuer Benutzer erstellt wird -AllowAddLimitStockByWarehouse=Verwalten Sie zusätzlich zum Wert für den Mindest- und den gewünschten Bestand pro Paar (Produktlager) auch den Wert für den Mindest- und den gewünschten Bestand pro Produkt +AllowAddLimitStockByWarehouse=Verwalten Sie zusätzlich zum Wert für den Mindest- und den gewünschten Bestand pro Zuordnung (Produkt zu Warenlager) auch den Wert für den Mindest- und den gewünschten Bestand pro Produkt RuleForWarehouse=Regel für Lager WarehouseAskWarehouseOnThirparty=Legen Sie ein Lager für Geschäftspartner fest WarehouseAskWarehouseDuringPropal=Ein Lager zu dem Angebot einstellen @@ -88,8 +88,8 @@ OrderStatusNotReadyToDispatch=Auftrag wurde noch nicht oder nicht mehr ein Statu StockDiffPhysicTeoric=Begründung für Differenz zwischen Inventurbestand und Lagerbestand NoPredefinedProductToDispatch=Es erfolgt keine Lagerbestandsänderung da keine vordefinierten Produkte enthalten sind. DispatchVerb=Position(en) verbuchen -StockLimitShort=Grenzwert für Alarm -StockLimit=Mindestbestand vor Warnung +StockLimitShort=Grenzwert für Warnung +StockLimit=Warnung bei Mindestbestand StockLimitDesc=(leer) bedeutet keine Warnung.
    0 kann verwendet werden, um eine Warnung auszulösen, sobald der Bestand leer ist. PhysicalStock=Aktueller Lagerbestand RealStock=tatsächlicher Bestand @@ -110,8 +110,8 @@ AverageUnitPricePMPDesc=Den eingegebenen durchschnittlichen Stückpreis mussten SellPriceMin=Verkaufspreis EstimatedStockValueSellShort=Verkaufswert EstimatedStockValueSell=Verkaufswert -EstimatedStockValueShort=Eingangsmenge -EstimatedStockValue=Einkaufspreis +EstimatedStockValueShort=Einkaufswert +EstimatedStockValue=Einkaufswert DeleteAWarehouse=Warenlager löschen ConfirmDeleteWarehouse=Möchten Sie dieses Lager%s wirklich löschen? PersonalStock=Persönlicher Warenbestand %s @@ -121,7 +121,7 @@ SelectWarehouseForStockIncrease=Wählen Sie das Lager für den Wareneingang NoStockAction=Keine Vorratsänderung DesiredStock=Gewünschter Lagerbestand DesiredStockDesc=Dieser Lagerbestand wird von der Nachbestellfunktion verwendet. -StockToBuy=zu bestellen +StockToBuy=Zu bestellen Replenishment=Nachbestellung ReplenishmentOrders=Nachbestellungen VirtualDiffersFromPhysical=Je nach Erhöhung / Verringerung der Lagerbestands-Optionen können sich physische und virtuelle Lagerbestände (physische Lagerbestände + offene Aufträge) unterscheiden @@ -151,8 +151,8 @@ RecordMovement=Umbuchung ReceivingForSameOrder=Verbuchungen zu dieser Bestellung StockMovementRecorded=Lagerbewegungen aufgezeichnet RuleForStockAvailability=Regeln für Bestands-Verfügbarkeit -StockMustBeEnoughForInvoice=Ein ausreichender Lagerbestand ist erforderlich, um Produkte/Leistungen in Rechnung zu stellen. (Die Prüfung gegen den aktuellen tatsächlichen Lagerbestand erfolgt, wenn eine Zeile zur Rechnung hinzugefügt wird, unabhängig von der Regel zur automatischen Lagerbestandsänderung.) -StockMustBeEnoughForOrder=Der Lagerbestand muss ausreichen, um der Bestellung ein Produkt / eine Dienstleistung hinzuzufügen. +StockMustBeEnoughForInvoice=Ein ausreichender Lagerbestand ist erforderlich, um Produkte/Leistungen in Rechnung zu stellen. (Die Prüfung gegen den aktuellen tatsächlichen Lagerbestand erfolgt, wenn eine Position zur Rechnung hinzugefügt wird, unabhängig von der Regel zur automatischen Lagerbestandsänderung.) +StockMustBeEnoughForOrder=Der Lagerbestand muss ausreichen, um dem Auftrag ein Produkt / eine Leistung hinzuzufügen (die Überprüfung erfolgt anhand des aktuellen tatsächlichen Bestands, wenn eine Position zum Auftrag hinzugefügt wird, unabhängig von der Regel für die automatische Bestandsänderung). StockMustBeEnoughForShipment= Ein ausreichender Lagerbestand ist erforderlich, um Produkte/Leistungen zum Versand hinzuzufügen. (Die Prüfung gegen den aktuellen tatsächlichen Lagerbestand erfolgt, wenn eine Zeile zum Versand hinzugefügt wird, unabhängig von der Regel zur automatischen Lagerbestandsänderung.) MovementLabel=Titel der Lagerbewegung TypeMovement=Bewegungsrichtung @@ -167,7 +167,7 @@ MovementCorrectStock=Lagerkorrektur für Produkt %s MovementTransferStock=Umlagerung des Produkts %s in ein anderes Lager InventoryCodeShort=Bewegungs- oder Bestandscode NoPendingReceptionOnSupplierOrder=Kein anstehender Wareneingang aufgrund offener Bestellung -ThisSerialAlreadyExistWithDifferentDate=Diese Charge / Seriennummer (%s) ist bereits vorhanden, jedoch mit unterschiedlichen Haltbarkeits- oder Verfallsdatum. \n(Gefunden: %s Erfasst: %s) +ThisSerialAlreadyExistWithDifferentDate=Diese Charge/Seriennummer (%s) ist bereits vorhanden, jedoch mit unterschiedlichen Haltbarkeits- oder Verfallsdatum. \n(Gefunden: %s Erfasst: %s) OpenAnyMovement=Offen (alle Bewegungen) OpenInternal=Offen (nur interne Bewegungen) UseDispatchStatus=Verwende einen Versandstatus (genehmigen / ablehnen) für Produktzeilen beim Bestelleingang @@ -243,8 +243,8 @@ CurrentStock=Aktueller Lagerbestand InventoryRealQtyHelp=Setze den Wert auf 0, um die Menge zurückzusetzen.
    Feld leer lassen oder Zeile entfernen, um unverändert zu lassen UpdateByScaning=Vervollständigen Sie die tatsächliche Menge durch Scannen UpdateByScaningProductBarcode=Update per Scan (Produkt-Barcode) -UpdateByScaningLot=Update per Scan (Charge | serieller Barcode) -DisableStockChangeOfSubProduct=Deaktivieren Sie den Lagerwechsel für alle Unterprodukte dieses Satzes während dieser Bewegung. +UpdateByScaningLot=Update per Scan (Barcode Charge | Seriennr.) +DisableStockChangeOfSubProduct=Deaktivieren Sie den Lagerwechsel für alle Unterprodukte dieses Sets während dieser Bewegung. ImportFromCSV=CSV-Bewegungsliste importieren ChooseFileToImport=Datei hochladen und dann auf das Symbol %s klicken, um die Datei als Quell-Importdatei auszuwählen ... SelectAStockMovementFileToImport=Wählen Sie eine zu importierende Bestandsbewegungs-Datei aus @@ -260,11 +260,12 @@ CollapseBatchDetailHelp=Sie können die Standardanzeige für Chargendetails in d ErrorWrongBarcodemode=Unbekannter Barcode-Modus ProductDoesNotExist=Produkt existiert nicht ErrorSameBatchNumber=Im Inventarblatt wurden mehrere Datensätze zur Chargennummer gefunden. Daher ist unklar, welche erhöht werden soll. -ProductBatchDoesNotExist=Produkt mit Charge/Serie existiert nicht +ProductBatchDoesNotExist=Produkt mit Charge/Seriennr. existiert nicht ProductBarcodeDoesNotExist=Produkt mit Barcode existiert nicht WarehouseId=Lager-ID WarehouseRef=Lager-Ref. SaveQtyFirst=Sichern Sie zuerst die tatsächlich inventarisierten Mengen, bevor Sie die Erstellung der Lagerbewegung anfordern. +ToStart=Start InventoryStartedShort=Begonnen ErrorOnElementsInventory=Vorgang aus folgendem Grund abgebrochen: ErrorCantFindCodeInInventory=Kann den folgenden Code nicht im Bestand finden @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=Erfolg! Bei allen angeforderten Barcodes wurde di StockChangeDisabled=Bestandsänderung deaktiviert NoWarehouseDefinedForTerminal=Kein Lager für das Terminal definiert ClearQtys=Alle Mengen löschen +ModuleStockTransferName=Erweiterte Umlagerung +ModuleStockTransferDesc=Erweiterte Verwaltung der Umlagerung mit Erstellung von Umlagerungsbelegen +StockTransferNew=Neue Umlagerung +StockTransferList=Liste der Umlagerungen +ConfirmValidateStockTransfer=Sind Sie sicher, dass Sie diese Umlagerung mit der Referenz %s freigeben möchten? +ConfirmDestock=Bestandsverringerung mit Umlagerung %s +ConfirmDestockCancel=Bestandsverringerung mit Umlagerung %s stornieren +DestockAllProduct=Bestandsverringerung +DestockAllProductCancel=Bestandsverringerung stornieren +ConfirmAddStock=Bestandserhöhung mit Umlagerung %s +ConfirmAddStockCancel=Bestandserhöhung mit Umlagerung %s stornieren +AddStockAllProduct=Bestandserhöhung +AddStockAllProductCancel=Bestandserhöhung stornieren +DatePrevueDepart=Geplantes Ausgangsdatum +DateReelleDepart=Tatsächliches Ausgangsdatum +DatePrevueArrivee=Geplantes Ankunftsdatum +DateReelleArrivee=Tatsächliches Ankunftsdatum +HelpWarehouseStockTransferSource=Wenn dieses Warenlager festgelegt ist, stehen nur es selbst und seine untergeordneten Elemente als Ursprungs-Warenlager zur Verfügung +HelpWarehouseStockTransferDestination=Wenn dieses Warenlager festgelegt ist, stehen nur es selbst und seine untergeordneten Lager als Ziel-Warenlager zur Verfügung +LeadTimeForWarning=Vorlaufzeit bis Warnung (in Tagen) +TypeContact_stocktransfer_internal_STFROM=Absender der Umlagerung +TypeContact_stocktransfer_internal_STDEST=Empfänger der Umlagerung +TypeContact_stocktransfer_internal_STRESP=Verantwortlicher für die Umlagerung +StockTransferSheet=Umlagerungsbeleg +StockTransferSheetProforma=Proforma-Umlagerungsbeleg +StockTransferDecrementation=Bestandsverringerung Ursprungs-Warenlager +StockTransferIncrementation=Bestandserhöhung Ziel-Warenlager +StockTransferDecrementationCancel=Bestandsverringerung der Ursprungs-Warenlager stornieren +StockTransferIncrementationCancel=Bestandserhöhung der Ziel-Warenlager stornieren +StockStransferDecremented=Bestände in Ursprungs-Warenlagern verringert +StockStransferDecrementedCancel=Verringerung der Bestände in Ursprungs-Warenlagern storniert +StockStransferIncremented=Geschlossen - Bestände übertragen +StockStransferIncrementedShort=Bestände übertragen +StockStransferIncrementedShortCancel=Erhöhung der Bestände in Ziel-Warenlagern storniert +StockTransferNoBatchForProduct=Produkt %s verwendet keine Chargen; Chargennr. der Position löschen und erneut versuchen +StockTransferSetup = Einstellungen für das Modul Umlagerungen +Settings=Einstellungen +StockTransferSetupPage = Einstellungsseite für das Modul Umlagerungen +StockTransferRightRead=Umlagerungen einsehen +StockTransferRightCreateUpdate=Umlagerungen erstellen/aktualisieren +StockTransferRightDelete=Umlagerungen löschen +BatchNotFound=Charge/Seriennummer für dieses Produkt nicht gefunden diff --git a/htdocs/langs/de_DE/stripe.lang b/htdocs/langs/de_DE/stripe.lang index 0994eaf5e9a..5db52f3c5c0 100644 --- a/htdocs/langs/de_DE/stripe.lang +++ b/htdocs/langs/de_DE/stripe.lang @@ -38,7 +38,7 @@ STRIPE_TEST_WEBHOOK_KEY=Webhook Testschlüssel STRIPE_LIVE_SECRET_KEY=Geheimer Produktivschlüssel STRIPE_LIVE_PUBLISHABLE_KEY=Öffentlicher Produktivschlüssel STRIPE_LIVE_WEBHOOK_KEY=Webhook Produktivschlüssel -ONLINE_PAYMENT_WAREHOUSE=Lager verwenden um den Bestand bei Onlinezahlungen vermindern
    (TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice?) +ONLINE_PAYMENT_WAREHOUSE=Warenlager für die Bestandsminderung bei Onlinezahlung
    (TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice?) StripeLiveEnabled=Stripe live aktiviert (Nicht im Test/Sandbox Modus) StripeImportPayment=Stripe Zahlungen importieren ExampleOfTestCreditCard=Beispiel für eine zu testende Kreditkarte: %s => gültig, %s => Fehler CVC, %s => abgelaufen, %s => Belastung fehlgeschlagen @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=Link zum Einrichten von Stripe WebHook zum Aufruf von PaymentWillBeRecordedForNextPeriod=Die Zahlung wird für den folgenden Zeitraum erfasst. ClickHereToTryAgain=Hier klicken und nochmal versuchen... CreationOfPaymentModeMustBeDoneFromStripeInterface=Aufgrund strenger Kundenauthentifizierungs-Regeln muss die Erstellung einer Karte im Stripe-Backoffice erfolgen. Sie können hier klicken, um zum Stripe-Kundendatensatz zu wechseln: %s +TERMINAL_LOCATION=Standort (Adresse) für Terminals diff --git a/htdocs/langs/de_DE/suppliers.lang b/htdocs/langs/de_DE/suppliers.lang index b30a65f5f82..54890cab6d8 100644 --- a/htdocs/langs/de_DE/suppliers.lang +++ b/htdocs/langs/de_DE/suppliers.lang @@ -3,7 +3,8 @@ Suppliers=Lieferanten SuppliersInvoice=Lieferantenrechnung SupplierInvoices=Lieferantenrechnungen ShowSupplierInvoice=Zeige Lieferantenrechnung -NewSupplier=neuer Lieferant +NewSupplier=Neuer Lieferant +NewSupplierInvoice = Neue Lieferantenrechnung History=Verlauf ListOfSuppliers=Liste der Lieferanten ShowSupplier=zeige Lieferant @@ -16,7 +17,7 @@ SomeSubProductHaveNoPrices=Einige Unterprodukte haben keinen Preis. AddSupplierPrice=Einkaufspreis anlegen ChangeSupplierPrice=Einkaufspreis ändern SupplierPrices=Lieferantenpreise -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Für dieses Produkt existiert bereits ein Lieferantenpreis vom gewählten Anbieter: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Diese Lieferanten-Artikelnummer ist bereits einem anderen Produkt verknüpft: %s NoRecordedSuppliers=kein Lieferant vorhanden SupplierPayment=Lieferanten Zahlvorgang SuppliersArea=Lieferanten Übersicht diff --git a/htdocs/langs/de_DE/ticket.lang b/htdocs/langs/de_DE/ticket.lang index ce7e62342d8..8240ebb0637 100644 --- a/htdocs/langs/de_DE/ticket.lang +++ b/htdocs/langs/de_DE/ticket.lang @@ -19,16 +19,17 @@ # Module56000Name=Tickets -Module56000Desc=Ticketsystem für die Verwaltung von Anträgen oder Vorfällen +Module56000Desc=Ticketsystem für das Issue- und Anfrage-Management -Permission56001=Tickets anzeigen +Permission56001=Tickets einsehen Permission56002=Tickets ändern Permission56003=Tickets löschen Permission56004=Tickets bearbeiten Permission56005=Tickets aller Geschäftspartner anzeigen (nicht gültig für externe Benutzer, diese sehen immer nur die Tickets des eigenen Geschäftspartners) -TicketDictType=Ticket-Typ -TicketDictCategory=Ticket-Kategorien +Tickets=Tickets +TicketDictType=Ticket-Anfragearten +TicketDictCategory=Ticket-Themengruppen TicketDictSeverity=Ticket-Dringlichkeiten TicketDictResolution=Ticket-Auflösung @@ -75,7 +76,7 @@ Deleted=Gelöscht Type=Typ Severity=Dringlichkeit TicketGroupIsPublic=Gruppe ist öffentlich -TicketGroupIsPublicDesc=Falls eine Ticket-Gruppe öffentlich ist, wird sie in der öffentlichen Oberfläche zum erstellen eines Tickets sichtbar sein +TicketGroupIsPublicDesc=Falls eine Ticket-Themengruppe öffentlich ist, wird sie in der öffentlichen Oberfläche zum erstellen eines Tickets sichtbar sein # Email templates MailToSendTicketMessage=Um eine E-Mail mit der Ticketmeldung zu senden @@ -86,12 +87,12 @@ MailToSendTicketMessage=Um eine E-Mail mit der Ticketmeldung zu senden TicketSetup=Einrichtung des Ticketmoduls TicketSettings=Einstellungen TicketSetupPage= -TicketPublicAccess=Ein öffentliches Interface ohne Identifizierung ist unter dieser URL verfügbar -TicketSetupDictionaries=Die Ticket-Typen, Dringlichkeiten und Analyse-Codes sind in den Stammdaten konfigurierbar +TicketPublicAccess=Ein öffentliches Interface (Nutzung ohne Identifizierung) ist unter dieser URL abrufbar: +TicketSetupDictionaries=Die Anfragearten, Dringlichkeiten und Analyse-Codes sind in den Stammdaten konfigurierbar TicketParamModule=Modul Variableneinstellungen TicketParamMail=E-Mail Einrichtung -TicketEmailNotificationFrom=Absender-E-Mail für Ticket-Antworten -TicketEmailNotificationFromHelp=Absender-E-Mail für von Dolibarr gesendete Ticket-Antworten +TicketEmailNotificationFrom=Absender-E-Mail für Benachrichtigung bei Antworten +TicketEmailNotificationFromHelp=Absenderadresse zum Senden der Benachrichtigungs-E-Mail, wenn eine Antwort im Backoffice bereitgestellt wird. Zum Beispiel noreply@example.com TicketEmailNotificationTo=Benachrichtigung über die Erstellung eines Tickets an diese E-Mail-Adresse TicketEmailNotificationToHelp=Falls vorhanden, wird diese E-Mail-Adresse bei einer Ticket-Erstellung benachrichtigt TicketNewEmailBodyLabel=Text Mitteilung die gesendet wird, wenn ein Ticket erstellt wurde @@ -132,7 +133,7 @@ TicketsAutoAssignTicket=Den Ersteller automatisch dem Ticket zuweisen TicketsAutoAssignTicketHelp=Wenn ein Ticket erstellt wird, kann der Ersteller automatisch dem Ticket zugewiesen werden. TicketNumberingModules=Ticketnummerierungsmodul TicketsModelModule=Dokumentvorlagen für Tickets -TicketNotifyTiersAtCreation=Partner über Ticketerstellung informieren +TicketNotifyTiersAtCreation=Geschäftspartner über Ticketerstellung informieren TicketsDisableCustomerEmail=E-Mails immer deaktivieren, wenn ein Ticket über die öffentliche Oberfläche erstellt wird TicketsPublicNotificationNewMessage=Sende E-Mails, wenn neue Nachrichten oder Kommentare zum Ticket hinzugefügt wurden TicketsPublicNotificationNewMessageHelp=E-Mail (s) senden, wenn eine neue Nachricht von der öffentlichen Oberfläche hinzugefügt wird (an den zugewiesenen Benutzer oder die Benachrichtigungs-E-Mail an (Update) und / oder die Benachrichtigungs-E-Mail an) @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Beim Schließen eines Tickets wird Ihnen vorgeschlage TicketWrongContact=Der bereitgestellte Kontakt ist nicht Teil der aktuellen Ticket-Kontakte. E-Mail nicht gesendet. TicketChooseProductCategory=Produktkategorie für Ticket-Support TicketChooseProductCategoryHelp=Wählen Sie die Produktkategorie für Ticket-Support aus. Dies wird verwendet, um einen Vertrag automatisch mit einem Ticket zu verknüpfen. +TicketUseCaptchaCode=Verwenden Sie beim Erstellen eines Tickets einen grafischen Code (CAPTCHA). +TicketUseCaptchaCodeHelp=Fügt eine CAPTCHA-Überprüfung beim Erstellen eines neuen Tickets hinzu. # # Index & list page @@ -180,7 +183,7 @@ CreatedBy=Erstellt durch NewTicket=Ticket erstellen SubjectAnswerToTicket=Ticketantwort TicketTypeRequest=Anfrageart -TicketCategory=Ticket-Kategorisierung +TicketCategory=Themengruppe SeeTicket=Ticket zeigen TicketMarkedAsRead=Ticket als gelesen markiert TicketReadOn=Gelesen um @@ -192,8 +195,7 @@ TicketAssigned=Ticket ist nun zugewiesen TicketChangeType=Art ändern TicketChangeCategory=Analyse-Code ändern TicketChangeSeverity=Dringlichkeit ändern -TicketAddMessage=Nachricht hinzufügen -AddMessage=Nachricht hinzufügen +TicketAddMessage=Private Nachricht hinzufügen MessageSuccessfullyAdded=Ticket hinzugefügt TicketMessageSuccessfullyAdded=Mitteilung erfolgreich gespeichert TicketMessagesList=Liste der Mitteilungen @@ -204,8 +206,8 @@ TicketSeverity=Dringlichkeit ShowTicket=Ticket zeigen RelatedTickets=Verknüpfte Tickets TicketAddIntervention=Serviceauftrag erstellen -CloseTicket=Ticket als gelöst markieren | schließen -AbandonTicket=Ticket verwerfen +CloseTicket=Schließen|Lösen +AbandonTicket=Aufgeben CloseATicket=ein Ticket als gelöst markieren | schließen ConfirmCloseAticket=Tichek schliessen bestätigen ConfirmAbandonTicket=Bestätigen Sie das Schließen des Tickets mit dem Status 'verworfen' @@ -219,18 +221,17 @@ SendMessageByEmail=Mitteilung via E-Mail senden TicketNewMessage=Neue Mitteilung ErrorMailRecipientIsEmptyForSendTicketMessage=Empfänger ist leer. Keine E-Mail gesendet TicketGoIntoContactTab=Gehen Sie in den Tab "Kotakte" und wählen Sie ihn aus -TicketMessageMailIntro=Einführung +TicketMessageMailIntro=Kopfzeile der Nachricht TicketMessageMailIntroHelp=Dieser Text wird am Anfang der E-Mail Nachricht hinzugefügt, aber nicht gespeichert. -TicketMessageMailIntroLabelAdmin=Einführungstext zu allen Ticket-Antworten TicketMessageMailIntroText=Hallo,
    eine neue Antwort wurde zu einem Ticket hinzugefügt, dem Sie folgen. Hier ist die Nachricht:
    TicketMessageMailIntroHelpAdmin=Dieser Text wird bei der Beantwortung eines Tickets von Dolibarr vor der Antwort eingefügt -TicketMessageMailSignature=E-Mail-Signatur -TicketMessageMailSignatureHelp=Dieser Text wird nur am Schluss der E-Mail angehängt und wird nicht beim Ticket gespeichert. -TicketMessageMailSignatureText=Nachricht gesendet von %s über Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatur in Antwortmail -TicketMessageMailSignatureHelpAdmin=Dieser Text wird nach dem Antworttext angehängt. +TicketMessageMailFooter=Fußzeile der Nachricht +TicketMessageMailFooterHelp=Dieser Text wird nur am Ende der per E-Mail versendeten Nachricht eingefügt und nicht gespeichert. +TicketMessageMailFooterText=Nachricht gesendet von %s über Dolibarr +TicketMessageMailFooterHelpAdmin=Dieser Text wird nach dem Antworttext angehängt. TicketMessageHelp=Nur dieser Text wird in der Mitteilungsliste auf der Ticketkarte gespeichert. TicketMessageSubstitutionReplacedByGenericValues=Ersetzungsvariablen werden durch generische Werte ersetzt. +ForEmailMessageWillBeCompletedWith=Bei E-Mail-Nachrichten, die an externe Benutzer gesendet werden, wird die Nachricht ergänzt mit TimeElapsedSince=Seit TicketTimeToRead=Zeit bis das Ticket gelesen wurde TicketTimeElapsedBeforeSince=Verstrichene Zeit vor / seit @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Eine neue Nachricht mit dem Betreff % TicketAssignedToYou=Zugewiesene Tickets TicketAssignedEmailBody=Das Ticket #%s wurde Ihnen durch %s zugewiesen MarkMessageAsPrivate=Meitteilung als Privat kennzeichnen +TicketMessageSendEmailHelp=Eine E-Mail wird an alle zugewiesenen Kontakte gesendet (interne Kontakte, aber auch externe Kontakte, außer wenn die Option "%s" aktiviert ist) TicketMessagePrivateHelp=Diese Meldung wird den externen Benutzer nicht angezeigt TicketEmailOriginIssuer=Ersteller des Tickets InitialMessage=Originalmitteilung @@ -286,7 +288,7 @@ YourTicketSuccessfullySaved=Das Ticket wurde gespeichert! MesgInfosPublicTicketCreatedWithTrackId=Ein neues Ticket wurde mit der ID %s und der Referenz %s erstellt. PleaseRememberThisId=Bitte merken Sie sich die Tracking Nummer, Sie werden vermutlich später von uns danach gefragt werden. TicketNewEmailSubject=Bestätigung der Ticketerstellung - Ref %s (öffentliche Ticket-ID %s) -TicketNewEmailSubjectCustomer=Neues Supportticket +TicketNewEmailSubjectCustomer=Neues Support-Ticket TicketNewEmailBody=Automatische Bestätigung: Ihr Ticket wurde erfolgreich erstellt. TicketNewEmailBodyCustomer=Automatische Bestätigung: Ihr Ticket wurde erfolgreich in Ihrem Konto erstellt. TicketNewEmailBodyInfosTicket=Informationen um das Ticket zu überwachen @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Sie können den Fortschritt der Tickets TicketCloseEmailBodyInfosTrackUrlCustomer=Sie können den Verlauf dieses Tickets einsehen, indem Sie auf den folgenden Link klicken TicketEmailPleaseDoNotReplyToThisEmail=Bitte nicht via E-Mail Antworten, sondern den Link zum Interface verwenden. TicketPublicInfoCreateTicket=Mit diesem Formular können Sie ein Ticket in unserem Ticketingtool eröffnen. -TicketPublicPleaseBeAccuratelyDescribe=Bitte Beschreiben Sie Ihr Anliegen möglichst genau. Je mehr Infos Sie uns mitteilen, desto besser können wir die Anfrage bearbeiten. +TicketPublicPleaseBeAccuratelyDescribe=Bitte Beschreiben Sie Ihr Anliegen möglichst genau. Je mehr Informationen Sie uns mitteilen, desto besser können wir die Anfrage bearbeiten. TicketPublicMsgViewLogIn=Bitte geben Sie die Ticket Tracking ID ein TicketTrackId=Öffentliche Tracking-ID OneOfTicketTrackId=Eine der Tracking-IDs diff --git a/htdocs/langs/de_DE/trips.lang b/htdocs/langs/de_DE/trips.lang index 1217fe5c4b9..7c6377246de 100644 --- a/htdocs/langs/de_DE/trips.lang +++ b/htdocs/langs/de_DE/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Spesenabrechnung anzeigen -Trips=Spesenabrechnungen -TripsAndExpenses=Spesenabrechnungen -TripsAndExpensesStatistics=Reise- und Fahrtspesen Statistik -TripCard=Reisekosten – Übersicht +AUTHOR=Erstellt von +AUTHORPAIEMENT=Bezahlt von AddTrip=Spesenabrechnung erstellen -ListOfTrips=Aufstellung Spesenabrechnungen -ListOfFees=Liste der Spesen -TypeFees=Gebührenarten -ShowTrip=Spesenabrechnung anzeigen -NewTrip=neue Spesenabrechnung -LastExpenseReports=Letzte %s Spesenabrechnungen +AllExpenseReport=Alle Spesenarten AllExpenseReports=Alle Spesenabrechnungen -CompanyVisited=Firma/Organisation besucht -FeesKilometersOrAmout=Spesenbetrag bzw. Kilometergeld -DeleteTrip=Spesenabrechnung löschen -ConfirmDeleteTrip=Sind Sie sicher, dass diese Spesenabrechnung löschen wollen? -ListTripsAndExpenses=Aufstellung Spesenabrechnungen -ListToApprove=Warten auf Bestätigung -ExpensesArea=Spesenabrechnungen +AnyOtherInThisListCanValidate=Person, die zur Validierung der Anfrage informiert werden soll. +AttachTheNewLineToTheDocument=Position mit einem hochgeladenen Dokument verknüpfen +AucuneLigne=Es wurde noch keine Spesenabrechnung erstellt. +BrouillonnerTrip=Status der Spesenabrechnung auf den Status "Entwurf" ändern +byEX_DAY=pro Tag (begrenzt auf %s) +byEX_EXP=pro Position (begrenzt auf %s) +byEX_MON=pro Monat (begrenzt auf %s) +byEX_YEA=pro Jahr (begrenzt auf %s) +CANCEL_USER=Gelöscht von +CarCategory=Fahrzeugkategorie ClassifyRefunded=Als 'erstattet' markieren +CompanyVisited=Firma/Organisation besucht +ConfirmBrouillonnerTrip=Möchten Sie den Status dieser Spesenabrechnung wirklich auf "Entwurf" ändern? +ConfirmCancelTrip=Möchten Sie diese Spesenabrechnung wirklich stornieren? +ConfirmCloneExpenseReport=Möchten Sie den diese Spesenabrechnung wirklich duplizieren? +ConfirmDeleteTrip=Sind Sie sicher, dass diese Spesenabrechnung löschen wollen? +ConfirmPaidTrip=Möchten Sie den Status dieser Spesenabrechnung auf "Bezahlt" ändern? +ConfirmRefuseTrip=Möchten Sie diese Spesenabrechnung wirklich ablehnen? +ConfirmSaveTrip=Möchten Sie den diese Spesenabrechnung wirklich bestätigen? +ConfirmValideTrip=Möchten Sie diese Spesenabrechnung wirklich genehmigen? +DATE_CANCEL=Stornodatum +DATE_PAIEMENT=Zahlungsdatum +DATE_REFUS=Datum Ablehnung +DATE_SAVE=Freigabedatum +DefaultCategoryCar=Standardmäßiges Verkehrsmittel +DefaultRangeNumber=Standradreichweite +DeleteTrip=Spesenabrechnung löschen +ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnlichen Datumsbereich erstellt. +Error_EXPENSEREPORT_ADDON_NotDefined=Fehler, die Regeln für Spesenabrechnungnummerierung wurde im Setup des Moduls "Spesenabrechnung" nicht definiert +ExpenseRangeOffset=Ausgelegter Betrag: %s +expenseReportCatDisabled=Kategorie deaktiviert - Wörterbuch c_exp_tax_cat +expenseReportCoef=Koeffizient +expenseReportCoefUndefined=(Wert nicht definiert) +expenseReportOffset=Auslage +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Periode deaktiviert - Wörterbuch c_exp_tax_range +expenseReportRangeFromTo=von %d bis %d +expenseReportRangeMoreThan=mehr als %d +expenseReportTotalForFive=Beispiel mit d = 5 +ExpenseReportApplyTo=Anwenden auf +ExpenseReportApproved=Eine Spesenabrechnung wurde genehmigt +ExpenseReportApprovedMessage=Der Spesenabrechnung %s wurde genehmigt.
    - Benutzer: %s
    - Genehmigt von: %s
    Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s +ExpenseReportCanceled=Eine Spesenabrechnung wurde storniert +ExpenseReportCanceledMessage=Der Spesenabrechnung %s wurde abgebrochen.
    - Benutzer: %s
    - Storniert von: %s
    - Motive für die Stornierung: %s
    Klicken Sie hier, um die Spesenabrechnung zu zeigen: %s +ExpenseReportConstraintViolationError=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreiten nicht zulässig) +ExpenseReportConstraintViolationWarning=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreitung autorisiert) +ExpenseReportDateEnd=Enddatum +ExpenseReportDateStart=Startdatum +ExpenseReportDomain=Anwenden auf Bereich +ExpenseReportIkDesc=Sie können die Berechnung der Kilometerspensen pro Kategorie und Distanz dort ändern wo sie definiert wurden. d ist die Distanz in Kilometer +ExpenseReportLimitAmount=Höchstbetrag +ExpenseReportLimitOn=Begrenzungen ein +ExpenseReportLine=Position in der Spesenabrechnung +ExpenseReportPaid=Eine Spesenabrechnung wurde ausbezahlt +ExpenseReportPaidMessage=Der Spesenabrechnung %s wurde bezahlt.
    - Benutzer: %s
    - Paid von: %s
    Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s +ExpenseReportPayment=Spesenabrechnung Zahlung +ExpenseReportRef=Belegnummer Spesenabrechnung +ExpenseReportRefused=Eine Spesenabrechnung wurde abgelehnt +ExpenseReportRefusedMessage=Der Spesenabrechnung %s wurde abgelehnt.
    - Benutzer: %s
    - Refused von: %s
    - Motive für die Ablehnung: %s
    Klicken Sie hier, um die Spesenabrechnung zeigen: %s +ExpenseReportRestrictive=Begrenzung verbindlich +ExpenseReportRuleErrorOnSave=Fehler: %s +ExpenseReportRuleSave=Spesenabrechnung Regel gespeichert +ExpenseReportRulesDesc=Sie können Höchstbetragsregeln für Spesenabrechnungen definieren. Diese Regeln werden angewendet, wenn einer Spesenabrechnung eine neue Ausgabe hinzugefügt wird. ExpenseReportWaitingForApproval=Eine neue Spesenabrechnung ist zur Genehmigung vorgelegt worden ExpenseReportWaitingForApprovalMessage=Ein neuer Spesenabrechnung wurde vorgelegt und wartet auf die Genehmigung.
    - Benutzer: %s
    - Zeitraum: %s
    Klicken Sie hier, um diesen freizugeben: %s ExpenseReportWaitingForReApproval=Eine Spesenabrechnung ist zur erneuten Genehmigung vorgelegt worden ExpenseReportWaitingForReApprovalMessage=Eine Spesenabrechnung wurde eingereicht und wartet auf erneute Freigabe.
    Die Freigabe der Spesenabrechnung für %s wurde aus folgendem Grund verweigert: %s.
    Eine neue Version wurde für für die Freigabe vorgeschlagen und wartet.
    - Benutzer: %s
    - Zeitraum: %s
    Klicken Sie hier, um diesen freizugeben: %s -ExpenseReportApproved=Eine Spesenabrechnung wurde genehmigt -ExpenseReportApprovedMessage=Der Spesenabrechnung %s wurde genehmigt.
    - Benutzer: %s
    - Genehmigt von: %s
    Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s -ExpenseReportRefused=Eine Spesenabrechnung wurde abgelehnt -ExpenseReportRefusedMessage=Der Spesenabrechnung %s wurde abgelehnt.
    - Benutzer: %s
    - Refused von: %s
    - Motive für die Ablehnung: %s
    Klicken Sie hier, um die Spesenabrechnung zeigen: %s -ExpenseReportCanceled=Eine Spesenabrechnung wurde storniert -ExpenseReportCanceledMessage=Der Spesenabrechnung %s wurde abgebrochen.
    - Benutzer: %s
    - Storniert von: %s
    - Motive für die Stornierung: %s
    Klicken Sie hier, um die Spesenabrechnung zu zeigen: %s -ExpenseReportPaid=Eine Spesenabrechnung wurde ausbezahlt -ExpenseReportPaidMessage=Der Spesenabrechnung %s wurde bezahlt.
    - Benutzer: %s
    - Paid von: %s
    Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s -TripId=Spesenabrechnung ID -AnyOtherInThisListCanValidate=Person, die zur Validierung der Anfrage informiert werden soll. -TripSociete=Partner -TripNDF=Hinweise Spesenabrechnung -PDFStandardExpenseReports=Standard-Vorlage, um ein PDF-Dokument für die Spesenabrechnung zu erzeugen -ExpenseReportLine=Position in der Spesenabrechnung -TF_OTHER=Andere -TF_TRIP=Versand -TF_LUNCH=Bewirtung -TF_METRO=S- und U-Bahn -TF_TRAIN=Bahn -TF_BUS=Bus -TF_CAR=Auto -TF_PEAGE=Mautgebühr -TF_ESSENCE=Kraftstoff -TF_HOTEL=Hotel -TF_TAXI=Taxi -EX_KME=Kosten pro Kilometer -EX_FUE=Tankspesen Firmenauto -EX_HOT=Hotel -EX_PAR=Parkingspesen Firmenauto -EX_TOL=Gebührenspesen Firmenauto -EX_TAX=Verschiedene Steuern -EX_IND=Transportversicherung -EX_SUM=Wartungsmaterial -EX_SUO=Büromaterial -EX_CAR=Autovermietung -EX_DOC=Dokumentation -EX_CUR=Kundengeschenk -EX_OTR=Anderes Geschenk -EX_POS=Porto -EX_CAM=Unterhalt und Reparatur Firmenauto -EX_EMM=Mitarbeiter Essen -EX_GUM=Essen mit Kunde -EX_BRE=Frühstück -EX_FUE_VP=Tankspesen Privatauto -EX_TOL_VP=Mautgebühr -EX_PAR_VP=Parkgebühr -EX_CAM_VP=Unterhalt und Reparatur Privatauto -DefaultCategoryCar=Standardmäßiges Verkehrsmittel -DefaultRangeNumber=Standradreichweite -UploadANewFileNow=Neues Dokument jetzt hochladen -Error_EXPENSEREPORT_ADDON_NotDefined=Fehler, die Regeln für Spesenabrechnungnummerierung wurde im Setup des Moduls "Spesenabrechnung" nicht definiert -ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnlichen Datumsbereich erstellt. -AucuneLigne=Es wurde noch keine Spesenabrechnung erstellt. -ModePaiement=Zahlungsart -VALIDATOR=Verantwortlicher Benutzer für Genehmigung -VALIDOR=genehmigt durch -AUTHOR=erstellt von -AUTHORPAIEMENT=Bezahlt von -REFUSEUR=abgelehnt durch -CANCEL_USER=gelöscht von -MOTIF_REFUS=Grund -MOTIF_CANCEL=Grund -DATE_REFUS=Datum Ablehnung -DATE_SAVE=Freigabedatum -DATE_CANCEL=Stornodatum -DATE_PAIEMENT=Zahlungsdatum -ExpenseReportRef=Belegnummer Spesenabrechnung -ValidateAndSubmit=Freigeben und zur Genehmigung einreichen -ValidatedWaitingApproval=Validiert (Wartet auf Genehmigung) -NOT_AUTHOR=Sie sind nicht der Autor dieser Spesenabrechnung. Vorgang abgebrochen. -ConfirmRefuseTrip=Möchten Sie diese Spesenabrechnung wirklich ablehnen? -ValideTrip=Genehmigen Spesenabrechnung -ConfirmValideTrip=Möchten Sie diese Spesenabrechnung wirklich genehmigen? -PaidTrip=Spesenabrechnung bezahlen -ConfirmPaidTrip=Möchten Sie den Status dieser Spesenabrechnung auf "Bezahlt" ändern? -ConfirmCancelTrip=Möchten Sie diese Spesenabrechnung wirklich stornieren? -BrouillonnerTrip=Status der Spesenabrechnung auf den Status "Entwurf" ändern -ConfirmBrouillonnerTrip=Möchten Sie den Status dieser Spesenabrechnung wirklich auf "Entwurf" ändern? -SaveTrip=Bestätige Spesenabrechnung -ConfirmSaveTrip=Möchten Sie den diese Spesenabrechnung wirklich bestätigen? -NoTripsToExportCSV=Keine Spesenabrechnung für diesen Zeitraum zu exportieren. -ExpenseReportPayment=Spesenabrechnung Zahlung -ExpenseReportsToApprove=zu genehmigende Spesenabrechnungen -ExpenseReportsToPay=zu zahlende Spesenabrechnungen -ConfirmCloneExpenseReport=Möchten Sie den diese Spesenabrechnung wirklich duplizieren? ExpenseReportsIk=Konfiguration der Kilometergebühren ExpenseReportsRules=Spesenabrechnungen Regeln -ExpenseReportIkDesc=Sie können die Berechnung der Kilometerspensen pro Kategorie und Distanz dort ändern wo sie definiert wurden. d ist die Distanz in Kilometer -ExpenseReportRulesDesc=Sie können Höchstbetragsregeln für Spesenabrechnungen definieren. Diese Regeln werden angewendet, wenn einer Spesenabrechnung eine neue Ausgabe hinzugefügt wird. -expenseReportOffset=Wertsprung -expenseReportCoef=Koeffizient -expenseReportTotalForFive=Beispiel mit d = 5 -expenseReportRangeFromTo=von %d bis %d -expenseReportRangeMoreThan=mehr als %d -expenseReportCoefUndefined=(Wert nicht definiert) -expenseReportCatDisabled=Kategorie deaktiviert - Wörterbuch c_exp_tax_cat -expenseReportRangeDisabled=Periode deaktiviert - Wörterbuch c_exp_tax_range -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Anwenden auf -ExpenseReportDomain=Anwenden auf Bereich -ExpenseReportLimitOn=Limite ein -ExpenseReportDateStart=Startdatum -ExpenseReportDateEnd=Enddatum -ExpenseReportLimitAmount=Höchstbetrag -ExpenseReportRestrictive=Überschreiten nicht zulässig -AllExpenseReport=Alle Spesenarten -OnExpense=Spesenzeile -ExpenseReportRuleSave=Spesenabrechnung Regel gespeichert -ExpenseReportRuleErrorOnSave=Fehler: %s -RangeNum=Periode %d -ExpenseReportConstraintViolationError=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreiten nicht zulässig) -byEX_DAY=pro Tag (Begrenzt auf %s) -byEX_MON=pro Monat (Begrenzt auf %s) -byEX_YEA=pro Jahr (Begrenzt auf %s) -byEX_EXP=pro Zeile (Begrenzt auf %s) -ExpenseReportConstraintViolationWarning=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreitung autorisiert) -nolimitbyEX_DAY=pro Tag (keine Beschränkung) -nolimitbyEX_MON=pro Monat (keine Beschränkung) -nolimitbyEX_YEA=pro Jahr (Nicht Begrenzt) -nolimitbyEX_EXP=pro Zeile (Nicht Begrenzt) -CarCategory=Fahrzeugkategorie -ExpenseRangeOffset=Offset Betrag: %s +ExpenseReportsToApprove=Zu genehmigende Spesenabrechnungen +ExpenseReportsToPay=zu zahlende Spesenabrechnungen +ExpensesArea=Spesenabrechnungen +FeesKilometersOrAmout=Spesenbetrag bzw. Kilometergeld +LastExpenseReports=Letzte %s Spesenabrechnungen +ListOfFees=Liste der Spesen +ListOfTrips=Aufstellung Spesenabrechnungen +ListToApprove=Warten auf Bestätigung +ListTripsAndExpenses=Aufstellung Spesenabrechnungen +MOTIF_CANCEL=Grund +MOTIF_REFUS=Grund +ModePaiement=Zahlungsart +NewTrip=neue Spesenabrechnung +nolimitbyEX_DAY=pro Tag (nicht begrenzt) +nolimitbyEX_EXP=pro Zeile (nicht begrenzt) +nolimitbyEX_MON=pro Monat (nicht begrenzt) +nolimitbyEX_YEA=pro Jahr (nicht begrenzt) +NoTripsToExportCSV=Keine Spesenabrechnung für diesen Zeitraum zu exportieren. +NOT_AUTHOR=Sie sind nicht der Ersteller dieser Spesenabrechnung. Vorgang abgebrochen. +OnExpense=Spesenposition +PDFStandardExpenseReports=Standard-Vorlage, um ein PDF-Dokument für die Spesenabrechnung zu erzeugen +PaidTrip=Spesenabrechnung bezahlen +REFUSEUR=Abgelehnt durch RangeIk=Reichweite -AttachTheNewLineToTheDocument=Zeile an hochgeladenes Dokument anhängen +RangeNum=Bereich %d +SaveTrip=Bestätige Spesenabrechnung +ShowExpenseReport=Spesenabrechnung anzeigen +ShowTrip=Spesenabrechnung anzeigen +TripCard=Reisekosten – Übersicht +TripId=Spesenabrechnung ID +TripNDF=Hinweise Spesenabrechnung +TripSociete=Information zum Unternehmen +Trips=Spesenabrechnungen +TripsAndExpenses=Spesenabrechnungen +TripsAndExpensesStatistics=Reise- und Fahrtspesen Statistik +TypeFees=Gebührenarten +UploadANewFileNow=Neues Dokument jetzt hochladen +VALIDATOR=Genehmiger +VALIDOR=Genehmigt durch +ValidateAndSubmit=Freigeben und zur Genehmigung einreichen +ValidatedWaitingApproval=Freigegeben (Wartet auf Genehmigung) +ValideTrip=Genehmigen Spesenabrechnung + +## Dictionary +EX_BRE=Frühstück +EX_CAM=Unterhalt und Reparatur Firmenwagen +EX_CAM_VP=Unterhalt und Reparatur Privatwagen +EX_CAR=Autovermietung +EX_CUR=Kundengeschenk +EX_DOC=Dokumentation +EX_EMM=Bewirtung Mitarbeiter +EX_FUE=Tankspesen Firmenwagen +EX_FUE_VP=Tankspesen Privatwagen +EX_GUM=Bewirtung Kunde +EX_HOT=Hotel +EX_IND=Transportversicherung +EX_KME=Kosten pro Kilometer +EX_OTR=Anderes Geschenk +EX_PAR=Parkgebühren Firmenwagen +EX_PAR_VP=Parkgebühr Privatwagen +EX_POS=Porto +EX_SUM=Wartungsmaterial +EX_SUO=Büromaterial +EX_TAX=Verschiedene Steuern +EX_TOL=Mautgebühren Firmenwagen +EX_TOL_VP=Mautgebühr Privatwagen +TF_BUS=Bus +TF_CAR=PKW +TF_ESSENCE=Tankspesen +TF_HOTEL=Hotel +TF_LUNCH=Bewirtung +TF_METRO=S- und U-Bahn +TF_OTHER=Andere +TF_PEAGE=Mautgebühr +TF_TAXI=Taxi +TF_TRAIN=Bahn +TF_TRIP=Fahrschein/Ticket diff --git a/htdocs/langs/de_DE/users.lang b/htdocs/langs/de_DE/users.lang index 8c64d78ec24..52a6415bbc2 100644 --- a/htdocs/langs/de_DE/users.lang +++ b/htdocs/langs/de_DE/users.lang @@ -13,7 +13,7 @@ SubjectNewPassword=Ihr neues Passwort für %s GroupRights=Gruppenberechtigungen UserRights=Benutzerberechtigungen Credentials=Zugangsdaten -UserGUISetup=Konfiguration der Benutzeranzeige +UserGUISetup=Benutzeroberfläche DisableUser=Deaktiviere Benutzer DisableAUser=Einen Benutzer deaktivieren DeleteUser=Lösche Benutzer @@ -47,7 +47,7 @@ RemoveFromGroup=Gruppenzuweisung entfernen PasswordChangedAndSentTo=Passwort geändert und an %s gesendet. PasswordChangeRequest=Aufforderung, das Passwort für %s zu ändern PasswordChangeRequestSent=Kennwort-Änderungsanforderung für %s gesendet an %s. -IfLoginExistPasswordRequestSent=Falls dieser Benutzer über ein gültiges Konto verfügt, wurde eine E-Mail zum Zurücksetzen des Passworts gesendet. +IfLoginExistPasswordRequestSent=Wenn es sich bei der angegebenen E-Mail-Adresse um ein gültiges Konto handelt, wurde eine E-Mail zum Zurücksetzen des Passworts gesendet. IfEmailExistPasswordRequestSent=Eine E-Mail zum Zurücksetzen des Passworts wurde versendet (vorausgesetzt dass die angegebene E-Mail-Adresse existiert). ConfirmPasswordReset=Passwort zurücksetzen MenuUsersAndGroups=Benutzer und Gruppen @@ -60,20 +60,19 @@ UserModified=Benutzer erfolgreich bearbeitet PhotoFile=Bilddatei ListOfUsersInGroup=Liste der Benutzer in dieser Gruppe ListOfGroupsForUser=Liste der Gruppen dieses Benutzers -LinkToCompanyContact=Mit Partner/Kontakt verknüpfen +LinkToCompanyContact=Mit Geschäftspartner/Kontakt verknüpfen LinkedToDolibarrMember=Mit Mitglied verknüpfen LinkedToDolibarrUser=Verknüpfung mit Benutzer LinkedToDolibarrThirdParty=Verknüpfung mit Geschäftspartner CreateDolibarrLogin=Benutzerkonto erstellen -CreateDolibarrThirdParty=Neuen Partner erstellen +CreateDolibarrThirdParty=Neuen Geschäftspartner erstellen LoginAccountDisableInDolibarr=Benutzerkonto im System deaktiviert. UsePersonalValue=Eigenen Wert verwenden -InternalUser=Interne Benutzer ExportDataset_user_1=Benutzer und -eigenschaften DomainUser=Domain-Benutzer %s Reactivate=wieder aktivieren CreateInternalUserDesc=Hier kannst du interne Benutzer erzeugen.\nExterne Benutzer (Kunden, Lieferanten etc.) erzeugst du in dem Geschäftspartner Menü Kontakte/Adressen. -InternalExternalDesc=Ein interner Benutzer ist ein Benutzer, der zu Ihrem Unternehmen/Ihrer Organisation gehört oder ein Partnerbenutzer außerhalb Ihrer Organisation ist, der möglicherweise mehr Daten als Daten zu seinem Unternehmen sehen muss (das Berechtigungssystem legt fest, was er kann oder nicht sehen oder tun kann).
    Ein externer -Benutzer ist ein Kunde, Lieferant oder ein anderer, der NUR Daten zu seiner Person anzeigen darf (das Erstellen eines externen Benutzers für einen Geschäftspartner kann über den Kontaktdatensatz des Geschäftspartner erfolgen).

    In beiden Fällen müssen Sie Berechtigungen für die Funktionen erteilen, die der Benutzer benötigt. +InternalExternalDesc=Ein interner Benutzer ist ein Benutzer, der zu Ihrem Unternehmen/Ihrer Organisation gehört oder ein Partnerbenutzer außerhalb Ihrer Organisation ist, der möglicherweise mehr Daten als nur Daten zu seinem Unternehmen sehen muss (das Berechtigungssystem legt fest, was er sehen/nicht sehen oder tun/nicht tun kann).
    Ein externer-Benutzer ist ein Kunde, Lieferant oder ein anderer, der NUR Daten zu sich selbst einsehen darf (das Erstellen eines externen Benutzers für einen Geschäftspartner kann über den Kontaktdatensatz des Geschäftspartners erfolgen).

    In beiden Fällen müssen Sie Berechtigungen für die Funktionen erteilen, die der Benutzer benötigt. PermissionInheritedFromAGroup=Berechtigung durch eine Gruppenzugehörigkeit geerbt. Inherited=Geerbt UserWillBe=Benutzer erstellen als @@ -100,7 +99,7 @@ YourQuotaOfUsersIsReached=Ihr Kontingent aktiver Benutzer ist erreicht NbOfUsers=Anzahl Benutzer NbOfPermissions=Anzahl Berechtigungen DontDowngradeSuperAdmin=Nur ein SuperAdmin kann einen SuperAdmin downgraden -HierarchicalResponsible=Vorgesetzter +HierarchicalResponsible=Führungskraft HierarchicView=Hierarchische Ansicht UseTypeFieldToChange=Nutzen sie das Feld "Typ" zum Ändern OpenIDURL=OpenID URL @@ -118,9 +117,9 @@ DateEmploymentStart=Beschäftigungsbeginn DateEmploymentEnd=Beschäftigungsende RangeOfLoginValidity=Datumsbereich der Zugriffsgültigkeit CantDisableYourself=Sie können nicht ihr eigenes Benutzerkonto deaktivieren -ForceUserExpenseValidator=Überprüfung der Spesenabrechnung erzwingen -ForceUserHolidayValidator=Gültigkeitsprüfer für Urlaubsanträge erzwingen -ValidatorIsSupervisorByDefault=Standardmäßig ist der Prüfer der Supervisor des Benutzers. Leer lassen, um dieses Verhalten beizubehalten. +ForceUserExpenseValidator=Genehmiger für Spesenabrechnungen festlegen +ForceUserHolidayValidator=Genehmiger für Urlaubsanträge festlegen +ValidatorIsSupervisorByDefault=Standardmäßig ist die Führungskraft des Benutzers der Prüfer. Leer lassen, um dieses Verhalten beizubehalten. UserPersonalEmail=Private E-Mail-Adresse UserPersonalMobile=Private Mobiltelefonnummer WarningNotLangOfInterface=Warnung: das ist die eingestellte Muttersprache die der Benutzer spricht, nicht die ausgewählte Sprache der Benutzeroberfläche. Um die angezeigte Sprache der Benutzeroberfläche zu ändern, gehe zum Tab %s @@ -128,3 +127,5 @@ DateLastLogin=Datum der letzten Anmeldung DatePreviousLogin=Datum der vorangegangenen Anmeldung IPLastLogin=IP der letzten Anmeldung IPPreviousLogin=IP der vorangegangenen Anmeldung +ShowAllPerms=Alle Berechtigungen anzeigen +HideAllPerms=Alle Berechtigungen ausblenden diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang index 0ae8d538aec..88e820fd684 100644 --- a/htdocs/langs/de_DE/website.lang +++ b/htdocs/langs/de_DE/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Code +WebsiteName=Name der Website WebsiteSetupDesc=Erstellen Sie hier die Websites, die Sie verwenden möchten. Dann gehen Sie in das Menü Websites, um sie zu bearbeiten. DeleteWebsite=Website löschen ConfirmDeleteWebsite=Sind Sie sicher, dass Sie diese Website löschen möchten? Alle Seiten und Inhalte werden ebenfalls entfernt. Die hochgeladenen Dateien (z.B. in das medias-Verzeichnis, das ECM-Modul, ...) bleiben erhalten. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Diesen Code am Schluss des HTML Headers anhängen (für alle WEBSITE_ROBOT=Roboterdatei (robots.txt) WEBSITE_HTACCESS=Website .htaccess Datei WEBSITE_MANIFEST_JSON=Website manifest.json Datei -WEBSITE_README=Datei README.md WEBSITE_KEYWORDSDesc=Verwenden Sie ein Komma, um Werte zu trennen -EnterHereLicenseInformation=Geben Sie hier Metadaten oder Lizenzinformationen ein, die in einer README.md-Datei abgelegt werden. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in das Vorlagen-Package aufgenommen. +EnterHereReadmeInformation=Geben Sie hier eine Beschreibung der Website ein. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in das Template-Paket aufgenommen. +EnterHereLicenseInformation=Geben Sie hier die LIZENZ des Codes der Website ein. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in das Temprate-Paket aufgenommen. HtmlHeaderPage=HTML Header (Nur für diese Seite) PageNameAliasHelp=Name oder Alias der Seite.
    Dieser Alias wird auch zum erstellen einer SEO URL verwendet, wenn die Website auf einem Virtuellen Webserver läuft. Verwenden Sie der Button "%s" um den Alias zu ändern. EditTheWebSiteForACommonHeader=Hinweis: Um einen personalisierten Header für alles Seiten zu erstellen, muss der Header auf Site-Level bearbeitet werden, anstelle auf Seiten-/Containerebene. @@ -42,11 +43,13 @@ ViewPageInNewTab=Seite in neuem Tab anzeigen SetAsHomePage=Als Startseite festlegen RealURL=Echte URL ViewWebsiteInProduction=Website mit Home-URLs anzeigen +Virtualhost=Name des virtuellen Hosts oder der Domain +VirtualhostDesc=Der Name des virtuellen Hosts oder der Domain (Beispiel: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Verwendung mit Apache/Nginx/...
    Erstellen Sie auf Ihrem Webserver (Apache, Nginx, ...) einen dedizierten virtuellen Host mit aktiviertem PHP und einem Stammverzeichnis unter
    %s ExampleToUseInApacheVirtualHostConfig=Beispiel für die Einrichtung eines virtuellen Apache-Hosts YouCanAlsoTestWithPHPS=Verwendung mit eingebettetem PHP-Server
    In der Entwicklungsumgebung können Sie die Site mit dem eingebetteten PHP-Webserver (PHP 5.5 erforderlich) testen, indem Sie
    php -S 0.0.0.0:8080 -t %s ausführen. YouCanAlsoDeployToAnotherWHP=Betrieb der Website mit einem anderen Dolibarr Hosting-Anbieter
    Wenn kein Apache oder Nginx Webserver online verfügbar ist, kann die Website exportiert und importiert werden und zu einer anderen Dolibarr-Instanz umziehen, die durch einen anderen Dolibarr Hosting-Anbieter mit kompletter Integration des Webseiten-Moduls bereitgestellt wird. Einige Dolibarr Hosting-Anbieter sind hier aufgelistet https://saas.dolibarr.org -CheckVirtualHostPerms=Überprüfen Sie auch, ob der User des virtuellen Hosts (z.B. www-daten) über die Berechtigungen %s für Dateien in
    %s verfügt. +CheckVirtualHostPerms=Überprüfen Sie auch, ob der User des virtuellen Hosts (z.B. www-data) über die Berechtigungen %s für Dateien in
    %s verfügt. ReadPerm=Lesen WritePerm=Schreiben TestDeployOnWeb=Test/Bereitstellung im Web @@ -137,7 +140,7 @@ PagesRegenerated=%s Seite(n)/Container neu generiert RegenerateWebsiteContent=Website-Cache-Dateien neu generieren AllowedInFrames=In Frames erlaubt DefineListOfAltLanguagesInWebsiteProperties=Definiere eine Liste aller verfügbaren Sprachen in den Website-Eigenschaften. -GenerateSitemaps=Website-Sitemap-Datei generieren +GenerateSitemaps=Die sitemap.xml-Datei der Website generieren ConfirmGenerateSitemaps=Wenn Sie dies bestätigen, löschen Sie die vorhandene Sitemap-Datei ... ConfirmSitemapsCreation=Bestätigen Sie die Sitemap-Generierung SitemapGenerated=Sitemap-Datei %s generiert @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon muss png sein ErrorFaviconSize=Favicon muss die Größe 16x16, 32x32 oder 64x64 haben FaviconTooltip=Laden Sie ein Bild im PNG-Format hoch (16x16, 32x32 oder 64x64). +NextContainer=Nächste Seite/Container +PreviousContainer=Vorherige Seite/Container +WebsiteMustBeDisabled=Die Website muss den Status „%s“ haben +WebpageMustBeDisabled=Die Webseite muss den Status „%s“ haben +SetWebsiteOnlineBefore=Wenn die Website offline ist, sind alle Seiten offline. Ändern Sie zuerst den Status der Website. +Booking=Buchung +Reservation=Reservierung diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index c2331dd09b6..1455b43acbe 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -3,7 +3,7 @@ CustomersStandingOrdersArea=Zahlungen per Lastschriftauftrag SuppliersStandingOrdersArea=Zahlungen per Überweisung StandingOrdersPayment=SEPA Lastschrift StandingOrderPayment=Lastschrift -NewStandingOrder=Neue Bestellung mit Zahlart Lastschrift +NewStandingOrder=Neuer Lastschriftauftrag NewPaymentByBankTransfer=neue Zahlung per Überweisung StandingOrderToProcess=Zu bearbeiten PaymentByBankTransferReceipts=Überweisungsaufträge @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Rechnung wartet auf Überweisung AmountToWithdraw=Abbuchungsbetrag AmountToTransfer=Zu überweisender Betrag NoInvoiceToWithdraw=Es wartet keine Rechnung für '%s'. Gehen Sie auf der Rechnungskarte auf die Registerkarte '%s', um eine Anfrage zu stellen. -NoSupplierInvoiceToWithdraw=Es wartet keine Lieferantenrechnung mit offenen 'Direktgutschriftsanträgen'. Gehen Sie auf die Registerkarte '%s' auf der Rechnungskarte, um eine Anfrage zu stellen. +NoSupplierInvoiceToWithdraw=Es liegt keine Lieferantenrechnung mit offenen '%s' vor. Gehen Sie auf der Rechnungsseite auf die Registerkarte „%s“, um einen Überweisungsauftrag zu erstellen. ResponsibleUser=Verantwortlicher Benutzer WithdrawalsSetup=Einstellungen für Lastschriftaufträge CreditTransferSetup=Einstellungen Modul Zahlung per Überweisung @@ -42,7 +42,8 @@ CreditTransferStatistics=Statistiken Überweisungen Rejects=Ablehnungen LastWithdrawalReceipt=Letzte 1%s Einnahmen per Lastschrift MakeWithdrawRequest=Erstelle eine Lastschrift -MakeBankTransferOrder=Stelle eine Überweisungsanfrage +MakeWithdrawRequestStripe=Fordern Sie eine Lastschriftzahlung über Stripe an +MakeBankTransferOrder=Überweisungsauftrag erstellen WithdrawRequestsDone=%s Lastschrift-Zahlungsaufforderungen aufgezeichnet BankTransferRequestsDone=%s Überweisungsanforderungen aufgezeichnet ThirdPartyBankCode=Geschäftspartner Bankcode @@ -81,7 +82,7 @@ StatusMotif5=nicht nutzbare Kontodaten StatusMotif6=Leeres Konto StatusMotif7=Gerichtsbescheid StatusMotif8=Andere Gründe -CreateForSepaFRST=Lastschriftdatei erstellen (SEPA FRST) +CreateForSepaFRST=Lastschriftdatei erstellen (SEPA erstmalig) CreateForSepaRCUR=Lastschriftdatei erstellen (SEPA RCUR) CreateAll=Erstellen Sie eine Lastschriftdatei CreateFileForPaymentByBankTransfer=Datei für Überweisung erstellen @@ -100,8 +101,11 @@ CreditDate=Am WithdrawalFileNotCapable=Abbuchungsformular für Ihr Land %s konnte nicht erstellt werden (Dieses Land wird nicht unterstützt). ShowWithdraw=Zeige Lastschrift IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Wenn auf der Rechnung mindestens ein Lastschrift-Zahlungsauftrag noch nicht verarbeitet wurde, wird dieser nicht als bezahlt festgelegt, um eine vorherige Abhebungsverwaltung zu ermöglichen. -DoStandingOrdersBeforePayments=Auf dieser Registerkarte können Sie einen Lastschrift-Zahlungsauftrag anfordern. Gehen Sie anschließend in das Menü Bank-> Zahlung per Lastschrift, um den Lastschriftauftrag zu generieren und zu verwalten. Wenn der Lastschriftauftrag geschlossen wird, wird die Zahlung auf Rechnungen automatisch erfasst und die Rechnungen werden geschlossen, wenn der zu zahlende Restbetrag null ist. -DoCreditTransferBeforePayments=Auf dieser Registerkarte können Sie einen Überweisungsauftrag anfordern. Gehen Sie anschließend in das Menü Bank-> Zahlung per Überweisung, um den Überweisungsauftrag zu generieren und zu verwalten. Wenn der Überweisungsauftrag geschlossen wird, wird die Zahlung auf Rechnungen automatisch erfasst und die Rechnungen werden geschlossen, wenn der zu zahlende Restbetrag null ist. +DoStandingOrdersBeforePayments=Auf dieser Registerkarte können Sie einen Lastschrift-Zahlungsauftrag anfordern. Gehen Sie anschließend in das Menü Bank-> Zahlung per Lastschrift, um den Lastschriftauftrag zu generieren und zu verwalten. +DoStandingOrdersBeforePayments2=Sie können eine Anfrage auch direkt an einen SEPA-Zahlungsabwickler wie Stripe, ... senden. +DoStandingOrdersBeforePayments3=Wenn der Lastschriftauftrag geschlossen wird, werden Zahlungen auf Rechnungen automatisch erfasst und Rechnungen geschlossen, wenn der Restbetrag null ist. +DoCreditTransferBeforePayments=Auf dieser Registerkarte können Sie einen Überweisungsauftrag erstellen. Wenn Sie fertig sind, gehen Sie in das Menü "Bank->Zahlung per Überweisung", um eine Überweisungsauftragsdatei zu erstellen und zu verwalten. +DoCreditTransferBeforePayments3=Wenn der Überweisungsauftrag abgeschlossen ist, werden Zahlungen auf Rechnungen automatisch erfasst und Rechnungen geschlossen, wenn der zu zahlende Restbetrag null ist. WithdrawalFile=Datei für Lastschrift-Aufträge CreditTransferFile=Überweisungsdatei SetToStatusSent=Setze in Status "Datei versandt" @@ -111,14 +115,14 @@ RUM=UMR DateRUM=Datum der Unterzeichnung des Mandats RUMLong=Eindeutige Mandatsreferenz RUMWillBeGenerated=Wenn leer, wird die Mandatsreferenz generiert, sobald die Bankkontodaten gespeichert sind -WithdrawMode=Lastschriftmodus (FRST oder RECUR) +WithdrawMode=Lastschriftmodus (erstmalig oder wiederkehrend) WithdrawRequestAmount=Lastschrifteinzug Einzugs Betrag: -BankTransferAmount=Betrag der Überweisungsanforderung: +BankTransferAmount=Betrag des Überweisungsauftrags: WithdrawRequestErrorNilAmount=Es kann keine Lastschriftanforderung für einen leeren Betrag erstellt werden. SepaMandate=SEPA-Lastschriftmandat SepaMandateShort=SEPA-Mandate -PleaseReturnMandate=Bitte senden Sie dieses Formular per E-Mail an %s oder per Post an -SEPALegalText=Mit der Unterzeichnung dieses Lastschriftmandats autorisieren Sie als Kontoinhaber (A) den Zahlungsempfänger %s Zahlungen von Ihrem Konto mittels Lastschrift einzuziehen und weisen (B) Ihr Kreditinstitut an, die von %s auf Ihr Konto gezogenen Lastschriften einzulösen. \nHinweis: Sie können innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrags verlangen. Es gelten dabei die mit Ihrem Kreditinstitut vereinbarten Bedingungen.\n +PleaseReturnMandate=Bitte senden Sie das ausgefüllte Formular per E-Mail an %s oder per Post an +SEPALegalText=Mit der Unterzeichnung dieses Lastschriftmandats autorisieren Sie als Kontoinhaber (A) den Zahlungsempfänger %s und seinen Zahlungsdienstleister, Zahlungen von Ihrem Konto mittels Lastschrift einzuziehen und weisen (B) Ihr Kreditinstitut an, die von %s auf Ihr Konto gezogenen Lastschriften einzulösen. \nHinweis: Sie können innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrags verlangen. Es gelten dabei die mit Ihrem Kreditinstitut vereinbarten Bedingungen.\n CreditorIdentifier=Kennung Kreditor CreditorName=Name Kreditor SEPAFillForm=Kontoinhaber: (bitte füllen Sie alle mit * markierten Felder aus) @@ -132,8 +136,8 @@ PleaseCheckOne=Bitte prüfen sie nur eine CreditTransferOrderCreated=Überweisungsauftrag %s erstellt DirectDebitOrderCreated=Lastschrift %s erstellt AmountRequested=angeforderter Betrag -SEPARCUR=SEPA CUR -SEPAFRST=SEPA FRST +SEPARCUR=SEPA wiederkehrend +SEPAFRST=SEPA erstmalig ExecutionDate=Ausführungsdatum CreateForSepa=Erstellen Sie eine Lastschriftdatei ICS=Gläubiger-Identifikationsnummer - ICS diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index 1744ab50997..6cfee1bd30c 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -19,10 +19,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Den zugrundeliegenden Kunden descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Setzt das verknüpfte Lieferantenangebot auf "abgerechnet", sofern die Lieferanrenrechnung erstellt wurde und sofern der Rechnungsbetrag identisch zur Angebotsumme ist. # Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Kennzeichne die verknüpfte Lieferantenbestellung als abgerechnet, wenn die Lieferantenrechnung erstellt wurde und die Gesamtbeträge übereinstimmen. -descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Verknüpfte Lieferantenbestellung als eingegangen klassifizieren, wenn ein Wareneingang validiert wird (und wenn die von allen Wareneingängen eingegangene Menge mit der zu aktualisierenden Lieferantenbestellung übereinstimmt) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Verknüpfte Lieferantenbestellung als eingegangen klassifizieren, wenn ein Wareneingang freigegeben wird (und wenn die von allen Wareneingängen eingegangene Menge mit der zu aktualisierenden Lieferantenbestellung übereinstimmt) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Verknüpfte Lieferantenbestellung als eingegangen klassifizieren, wenn ein Wareneingang geschlossen wird (und wenn die von allen Wareneingängen eingegangene Menge mit der zu aktualisierenden Bestellung übereinstimmt) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Klassifizieren Sie Empfänge als "in Rechnung gestellt", wenn eine verknüpfte Lieferantenbestellung validiert wird +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Wareneingänge als „abgerechnet“ klassifizieren, wenn eine verknüpfte Einkaufsrechnung freigegeben wird (und wenn der Rechnungsbetrag mit dem Gesamtbetrag der verknüpften Wareneingänge übereinstimmt) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Verknüpfen Sie beim Erstellen eines Tickets verfügbare Verträge passender Geschäftspartner descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Beim Verknüpfen von Verträgen unter denen der Mutterunternehmen suchen @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Schließen Sie alle mit dem Ticket verkn AutomaticCreation=Automatische Erstellung AutomaticClassification=Automatische Klassifikation # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifizieren Sie die verknüpfte Lieferung als geschlossen, wenn die Kundenrechnung validiert ist. +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Verknüpfte Lieferung als abgeschlossen klassifizieren, wenn die Kundenrechnung freigegeben ist (und wenn der Rechnungsbetrag mit dem Gesamtbetrag der verknüpften Lieferungen übereinstimmt) AutomaticClosing=Automatisches Schließen AutomaticLinking=Automatisches Verknüpfen diff --git a/htdocs/langs/el_CY/hrm.lang b/htdocs/langs/el_CY/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/el_CY/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/el_CY/propal.lang b/htdocs/langs/el_CY/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/el_CY/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index 620e59ce3a4..2e1dcef796c 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -3,8 +3,8 @@ Accountancy=Λογιστική Accounting=Λογιστική ACCOUNTING_EXPORT_SEPARATORCSV=Διαχωριστικό στηλών για το αρχείο που θα εξαχθεί ACCOUNTING_EXPORT_DATE=Μορφή ημερομηνίας για το αρχείο που θα εξαχθεί -ACCOUNTING_EXPORT_PIECE=Εξαγωγή του αριθμού διακανονισμού -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Εξαγωγή με καθολικό λογαριασμό +ACCOUNTING_EXPORT_PIECE=Εξαγωγή του αριθμού καταχώρησης +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Εξαγωγή γενικού λογαριασμού ACCOUNTING_EXPORT_LABEL=Εξαγωγή ετικέτας ACCOUNTING_EXPORT_AMOUNT=Εξαγωγή ποσού ACCOUNTING_EXPORT_DEVISE=Εξαγωγή νομίσματος @@ -20,23 +20,23 @@ ProductForThisThirdparty=Προϊόν προς τρίτο μέρος ServiceForThisThirdparty=Υπηρεσία προς τρίτο μέρος CantSuggest=Δεν προτείνεται AccountancySetupDoneFromAccountancyMenu=Οι περισσότερες ρυθμίσεις της λογιστικής γίνονται από το μενού %s -ConfigAccountingExpert=Διαμόρφωση της μονάδας λογιστική (διπλή εγγραφή) -Journalization=Εγγραφή ημερολογίου +ConfigAccountingExpert=Διαμόρφωση της ενότητας λογιστική (διπλή εγγραφή) +Journalization=Καταχώρηση ημερολογίου Journals=Ημερολόγια JournalFinancial=Οικονομικά ημερολόγια BackToChartofaccounts=Επιστροφή στο λογιστικό σχέδιο Chartofaccounts=Λογιστικό σχέδιο ChartOfSubaccounts=Λογιστικό σχέδιο μεμονωμένων λογαριασμών -ChartOfIndividualAccountsOfSubsidiaryLedger=Λογιστικό σχέδιο μεμονωμένων λογαριασμών του δευτερεύοντος καθολικού -CurrentDedicatedAccountingAccount=Τρέχον ειδικό λογαριασμό +ChartOfIndividualAccountsOfSubsidiaryLedger=Λογιστικό σχέδιο μεμονωμένων λογαριασμών του θυγατρικού καθολικού +CurrentDedicatedAccountingAccount=Τρέχων αποκλειστικός λογαριασμός AssignDedicatedAccountingAccount=Νέος λογαριασμός προς ανάθεση InvoiceLabel=Ετικέτα τιμολογίου OverviewOfAmountOfLinesNotBound=Επισκόπηση του ποσού των γραμμών που δεν δεσμεύονται σε λογιστικό λογαριασμό -OverviewOfAmountOfLinesBound=Επισκόπηση του ποσού των γραμμών που έχουν ήδη συνδεθεί με έναν λογαριασμό λογιστικής +OverviewOfAmountOfLinesBound=Επισκόπηση του ποσού των γραμμών που έχουν ήδη δεσμευτεί σε έναν λογιστικό λογαριασμό OtherInfo=Άλλες πληροφορίες DeleteCptCategory=Κατάργηση λογαριασμού λογιστικής από την ομάδα ConfirmDeleteCptCategory=Είστε σίγουροι ότι θέλετε να καταργήσετε αυτόν τον λογαριασμό λογιστικής από την ομάδα λογαριασμών λογιστικής ; -JournalizationInLedgerStatus=Κατάσταση της περιοδικής εγγραφής +JournalizationInLedgerStatus=Κατάσταση καταχωρήσεων ημερολογίου AlreadyInGeneralLedger=Έχει ήδη μεταφερθεί στα λογιστικά ημερολόγια και το καθολικό NotYetInGeneralLedger=Δεν έχει μεταφερθεί ακόμη στα λογιστικά ημερολόγια και στο καθολικό GroupIsEmptyCheckSetup=Η ομάδα είναι κενή, ελέγξτε τη ρύθμιση της εξατομικευμένης ομάδας λογιστικής @@ -47,43 +47,45 @@ CountriesInEEC=Χώρες στην Ε.Ε. CountriesNotInEEC=Χώρες που δεν ανήκουν στην Ε.Ε. CountriesInEECExceptMe=Χώρες στην Ε.Ε. εκτός από %s CountriesExceptMe=Όλες οι χώρες εκτός από %s -AccountantFiles=Εξαγωγή εγγράφων προέλευσης -ExportAccountingSourceDocHelp=Με αυτό το εργαλείο, μπορείτε να εξαγάγετε τα συμβάντα (λίστα σε CSV και PDF) που χρησιμοποιούνται για τη δημιουργία της λογιστικής σας. +AccountantFiles=Εξαγωγή εγγράφων πηγής +ExportAccountingSourceDocHelp=Με αυτό το εργαλείο, μπορείτε να αναζητήσετε και να εξαγάγετε τα συμβάντα πηγής που χρησιμοποιούνται για τη δημιουργία της λογιστικής σας.
    Το εξαγόμενο αρχείο ZIP θα περιέχει τις λίστες των ζητούμενων στοιχείων σε CSV, καθώς και τα συνημμένα αρχεία τους στην αρχική τους μορφή (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Για να εξαγάγετε τα ημερολόγια σας, χρησιμοποιήστε την καταχώριση μενού %s - %s. +ExportAccountingProjectHelp=Προσδιορίστε ένα έργο εάν χρειάζεστε μια λογιστική αναφορά μόνο για ένα συγκεκριμένο έργο. Οι αναφορές εξόδων και οι πληρωμές δανείων δεν περιλαμβάνονται στις αναφορές του έργου. VueByAccountAccounting=Προβολή ανά λογαριασμό λογιστικής VueBySubAccountAccounting=Προβολή ανά λογιστικό υπολογαριασμό -MainAccountForCustomersNotDefined=Κύριος λογαριασμός λογιστικής για πελάτες που δεν έχουν οριστεί κατά τη ρύθμιση -MainAccountForSuppliersNotDefined=Κύριος λογαριασμός λογιστικής για προμηθευτές που δεν έχουν οριστεί κατά τη ρύθμιση -MainAccountForUsersNotDefined=Κύριος λογαριασμός λογιστικής για χρήστες που δεν έχουν οριστεί κατά τη ρύθμιση -MainAccountForVatPaymentNotDefined=Κύριος λογαριασμός λογιστικής για πληρωμή ΦΠΑ που δεν έχει οριστεί κατά τη ρύθμιση -MainAccountForSubscriptionPaymentNotDefined=Κύριος λογαριασμός λογιστικής για την πληρωμή συνδρομής που δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForCustomersNotDefined=Ο Κύριος λογαριασμός λογιστικής για πελάτες δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForSuppliersNotDefined=Ο Κύριος λογαριασμός λογιστικής για προμηθευτές δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForUsersNotDefined=Ο Κύριος λογαριασμός λογιστικής για χρήστες δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForVatPaymentNotDefined=Ο Κύριος λογαριασμός λογιστικής για πληρωμή ΦΠΑ δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForSubscriptionPaymentNotDefined=Ο κύριος λογαριασμός λογιστικής για την πληρωμή συνδρομής δεν έχει οριστεί κατά τη ρύθμιση +UserAccountNotDefined=Ο λογαριασμός λογιστικής για τον χρήστη δεν έχει οριστεί κατά τη ρύθμιση AccountancyArea=Τομέας Λογιστικής -AccountancyAreaDescIntro=Η χρήση της μονάδας λογιστικής πραγματοποιείται σε διάφορα στάδια: +AccountancyAreaDescIntro=Η χρήση της ενότητας λογιστικής πραγματοποιείται σε διάφορα στάδια: AccountancyAreaDescActionOnce=Οι ακόλουθες ενέργειες εκτελούνται συνήθως μόνο μία φορά ή μία φορά το χρόνο ... -AccountancyAreaDescActionOnceBis=Τα επόμενα βήματα πρέπει να γίνουν για να εξοικονομήσετε χρόνο στο μέλλον, προτείνοντάς σας αυτόματα τον σωστό προεπιλεγμένο λογαριασμό λογιστικής κατά τη μεταφορά δεδομένων στη λογιστική +AccountancyAreaDescActionOnceBis=Τα επόμενα βήματα πρέπει να γίνουν για να εξοικονομήσετε χρόνο στο μέλλον, προτείνοντάς σας αυτόματα τον σωστό προκαθορισμένο λογαριασμό λογιστικής κατά τη μεταφορά δεδομένων στη λογιστική AccountancyAreaDescActionFreq=Οι παρακάτω ενέργειες εκτελούνται συνήθως κάθε μήνα, εβδομάδα ή μέρα για πολύ μεγάλες επιχειρήσεις ... AccountancyAreaDescJournalSetup=ΒΗΜΑ %s: Ελέγξτε το περιεχόμενο της λίστας ημερολογίου σας από το μενού %s -AccountancyAreaDescChartModel=ΒΗΜΑ %s: Ελέγξτε αν υπάρχει ένα μοντέλο λογιστικού σχεδίου ή δημιουργήστε ένα από το μενού %s +AccountancyAreaDescChartModel=ΒΗΜΑ %s: Ελέγξτε αν υπάρχει ένα υπόδειγμα λογιστικού σχεδίου ή δημιουργήστε ένα από το μενού %s AccountancyAreaDescChart=ΒΗΜΑ %s: Επιλέξτε ή/και ολοκληρώστε το λογιστικό σας σχέδιο από το μενού %s -AccountancyAreaDescVat=STEP %s: Καθορίστε λογαριασμούς λογιστικής για κάθε τιμή ΦΠΑ. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescDefault=STEP %s: Καθορίστε προεπιλεγμένους λογαριασμούς λογιστικής. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescVat=ΒΗΜΑ %s: Καθορίστε λογαριασμούς λογιστικής για κάθε τιμή ΦΠΑ. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescDefault=ΒΗΜΑ %s: Καθορίστε προεπιλεγμένους λογαριασμούς λογιστικής. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. AccountancyAreaDescExpenseReport=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογιστικούς λογαριασμούς για κάθε τύπο αναφοράς Εξόδων. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescSal=STEP %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για την πληρωμή των μισθών. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescSal=ΒΗΜΑ %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για την πληρωμή των μισθών. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. AccountancyAreaDescContrib=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικούς για Φόρους (ειδικά έξοδα). Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescDonation=STEP %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικής για δωρεές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescSubscription=STEP %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για συνδρομή μέλους. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescMisc=STEP %s: Καθορισμός υποχρεωτικών προεπιλεγμένων λογαριασμών και προεπιλεγμένων λογαριασμών λογιστικής για διάφορες συναλλαγές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescDonation=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικής για δωρεές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescSubscription=ΒΗΜΑ %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για συνδρομή μέλους. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescMisc=ΒΗΜΑ %s: Καθορίστε υποχρεωτικούς προεπιλεγμένους λογαριασμούς λογιστικής για διάφορες συναλλαγές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. AccountancyAreaDescLoan=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικής για δάνεια. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescBank=STEP %s: Καθορίστε τους λογαριασμούς λογιστικής και τον κωδικό ημερολογίων για κάθε τραπεζικό και χρηματοοικονομικό λογαριασμό. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescBank=ΒΗΜΑ %s: Καθορίστε τους λογαριασμούς λογιστικής και τον κωδικό ημερολογίων για κάθε τραπεζικό και χρηματοοικονομικό λογαριασμό. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. AccountancyAreaDescProd=ΒΗΜΑ %s: Ορίστε λογαριασμούς λογιστικής στα Προϊόντα/Υπηρεσίες σας. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescBind=STEP %s: Ελέγξτε τη σύνδεση μεταξύ των υφιστάμενων γραμμών %s και ο λογαριασμός λογιστικής έχει ολοκληρωθεί, έτσι ώστε η εφαρμογή θα είναι σε θέση να καταγράφει τις συναλλαγές στο Καθολικό με ένα κλικ. Συμπληρώστε τις συνδέσεις που λείπουν. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescWriteRecords=STEP %s: Εγγραφη συναλλαγών στο Καθολικό. Για αυτό, μεταβείτε στο μενού %s και πατήστε το κουμπί %s . -AccountancyAreaDescAnalyze=STEP %s: Προσθέστε ή επεξεργαστείτε υπάρχουσες συναλλαγές και δημιουργήστε αναφορές και εξαγωγές. +AccountancyAreaDescBind=ΒΗΜΑ %s: Ελέγξτε ότι η δέσμευση μεταξύ των υφιστάμενων %s γραμμών και του λογαριασμού λογιστικής έχει ολοκληρωθεί, έτσι ώστε η εφαρμογή να είναι σε θέση να καταγράφει τις συναλλαγές στο Καθολικό με ένα κλικ. Συμπληρώστε τις δεσμεύσεις που λείπουν. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescWriteRecords=ΒΗΜΑ %s: Εγγραφή συναλλαγών στο Καθολικό. Για αυτό, μεταβείτε στο μενού %s και πατήστε το κουμπί %s . +AccountancyAreaDescAnalyze=ΒΗΜΑ%s: Προσθέστε ή επεξεργαστείτε υπάρχουσες συναλλαγές και δημιουργήστε αναφορές και εξαγωγές. AccountancyAreaDescClosePeriod=ΒΗΜΑ %s: Κλείσιμο περιόδου, ώστε να μην μπορούμε να κάνουμε τροποποίηση στο μέλλον. @@ -102,122 +104,126 @@ ShowAccountingAccountInJournals=Εμφάνιση λογαριασμού λογι AccountAccountingSuggest=Προτεινόμενος λογαριασμός λογιστικής MenuDefaultAccounts=Προεπιλεγμένοι λογαριασμοί MenuBankAccounts=Τραπεζικοί Λογαριασμοί -MenuVatAccounts=Λογαριασμοί ΦΠΑ +MenuVatAccounts=Λογαριασμοί Φ.Π.Α. MenuTaxAccounts=Λογαριασμοί Φόρων -MenuExpenseReportAccounts=Λογαριασμοί εκθέσεων δαπανών +MenuExpenseReportAccounts=Λογαριασμοί αναφορών εξόδων MenuLoanAccounts=Λογαριασμοί δανείων MenuProductsAccounts=Λογαριασμοί προϊόντων -MenuClosureAccounts=Λογαριασμοί κλεισίματος +MenuClosureAccounts=Κλείσιμο Λογαριασμών MenuAccountancyClosure=Κλείσιμο -MenuAccountancyValidationMovements=Επικυρώστε τις κινήσεις +MenuAccountancyValidationMovements=Επικύρωση κινήσεων ProductsBinding=Λογαριασμοί προϊόντων TransferInAccounting=Μεταφορά στη λογιστική RegistrationInAccounting=Καταγραφή στη λογιστική -Binding=Δεσμευση λογαριασμών -CustomersVentilation=Συνδετικό τιμολόγιο πελατών -SuppliersVentilation=Δεσμευτικό τιμολόγιο προμηθευτή -ExpenseReportsVentilation=Αναφορά σύνδεσης εξόδων -CreateMvts=Δημιουργήστε μία νέα συναλλαγή +Binding=Δέσμευση λογαριασμών +CustomersVentilation=Δέσμευση τιμολογίου πελάτη +SuppliersVentilation=Δέσμευση τιμολογίου προμηθευτή +ExpenseReportsVentilation=Δέσμευση Αναφοράς εξόδων +CreateMvts=Δημιουργία νέας συναλλαγής UpdateMvts=Τροποποίηση συναλλαγής ValidTransaction=Επικύρωση συναλλαγής WriteBookKeeping=Καταγραφή συναλλαγών στη λογιστική Bookkeeping=Καθολικό BookkeepingSubAccount=Βοηθητικό καθολικό -AccountBalance=Υπόλοιπο λογαριασμού +AccountBalance=Ισοζύγιο λογαριασμού ObjectsRef=Αναφορά αντικειμένου προέλευσης -CAHTF=Συνολικός προμηθευτής αγοράς προ φόρων -TotalExpenseReport=Συνολική αναφορά δαπανών +CAHTF=Σύνολο αγορών προμηθευτών προ φόρων +TotalExpenseReport=Σύνολο αναφοράς εξόδων InvoiceLines=Γραμμές τιμολογίων προς δέσμευση InvoiceLinesDone=Δεσμευμένες γραμμές τιμολογίων -ExpenseReportLines=Γραμμές εκθέσεων δαπανών προς δέσμευση -ExpenseReportLinesDone=Δεσμευμένες γραμμές αναφορών δαπανών -IntoAccount=Σύνδεση γραμμής με τον λογιστικό λογαριασμό +ExpenseReportLines=Γραμμές αναφορών εξόδων προς δέσμευση +ExpenseReportLinesDone=Δεσμευμένες γραμμές αναφορών εξόδων +IntoAccount=Δέσμευση γραμμής με τον λογιστικό λογαριασμό TotalForAccount=Σύνολο λογιστικού λογαριασμού Ventilate=Δέσμευση -LineId=Γραμμή ταυτότητας +LineId=Id Γραμμής Processing=Γίνεται επεξεργασία EndProcessing=Η διαδικασία τερματίστηκε. SelectedLines=Επιλεγμένες γραμμές Lineofinvoice=Γραμμή τιμολογίου -LineOfExpenseReport=Γραμμή αναφοράς δαπανών +LineOfExpenseReport=Γραμμή αναφοράς εξόδων NoAccountSelected=Δεν έχει επιλεχθεί λογαριασμός λογιστικής VentilatedinAccount=Δεσμεύτηκε με επιτυχία στο λογαριασμό λογιστικής NotVentilatedinAccount=Δεν δεσμεύεται στον λογαριασμό λογιστικής -XLineSuccessfullyBinded=%s προϊόντα/υπηρεσίες δεσμεύτηκαν επιτυχώς σε λογιστικό λογαριασμό +XLineSuccessfullyBinded=%s προϊόντα/υπηρεσίες δεσμεύτηκαν επιτυχώς σε ένα λογιστικό λογαριασμό XLineFailedToBeBinded=%s προϊόντα/υπηρεσίες δεν δεσμεύτηκαν σε κάποιο λογιστικό λογαριασμό ACCOUNTING_LIMIT_LIST_VENTILATION=Μέγιστος αριθμός γραμμών στη λίστα και στη σελίδα δεσμεύσεων (συνιστάται: 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Ξεκινήστε τη διαλογή της σελίδας "Δεσμευτική ενέργεια" από τα πιο πρόσφατα στοιχεία -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Ξεκινήστε τη διαλογή της σελίδας "Δεσμευτική πραγματοποίηση" από τα πιο πρόσφατα στοιχεία +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Ξεκινήστε την ταξινόμηση της σελίδας "Προς δέσμευση" με τα πιο πρόσφατα στοιχεία +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Ξεκινήστε την ταξινόμηση της σελίδας "Δεσμευμένα" με τα πιο πρόσφατα στοιχεία ACCOUNTING_LENGTH_DESCRIPTION=Μειώστε την περιγραφή προϊόντων και υπηρεσιών σε καταχωρίσεις μετά από x χαρακτήρες (Καλύτερη = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Διαγραφή της φόρμας περιγραφής του λογαριασμού προϊόντος και υπηρεσιών στις καταχωρίσεις μετά από τους χαρακτήρες x (Καλύτερη = 50) -ACCOUNTING_LENGTH_GACCOUNT=Διάρκεια λογαριασμών γενικής λογιστικής (Εάν ορίσετε την τιμή 6 εδώ, ο λογαριασμός '706' θα εμφανιστεί στην οθόνη ως '706000') -ACCOUNTING_LENGTH_AACCOUNT=Μήκος λογαριασμών τρίτου λογαριασμού (Εάν ορίσετε τιμή 6 εδώ, ο λογαριασμός '401' θα εμφανιστεί στην οθόνη ως '401000') +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Μειώστε την περιγραφή του λογαριασμού προϊόντος και υπηρεσιών στις καταχωρίσεις μετά από x χαρακτήρες (Καλύτερη = 50) +ACCOUNTING_LENGTH_GACCOUNT=Μήκος των γενικών λογιστικών λογαριασμών (Εάν ορίσετε την τιμή στο 6 εδώ, ο λογαριασμός '706' θα εμφανίζεται σαν '706000' στην οθόνη) +ACCOUNTING_LENGTH_AACCOUNT=Μήκος των λογαριασμών τρίτων (Εάν ορίσετε την τιμή στο 6 εδώ, ο λογαριασμός "401" θα εμφανίζεται σαν "401000" στην οθόνη) ACCOUNTING_MANAGE_ZERO=Να επιτρέπεται η διαχείριση διαφορετικού αριθμού μηδενικών στο τέλος ενός λογαριασμού λογιστικής. Απαιτείται από ορισμένες χώρες (όπως η Ελβετία). Εάν είναι απενεργοποιημένη (προεπιλογή), μπορείτε να ορίσετε τις ακόλουθες δύο παραμέτρους για να ζητήσετε από την εφαρμογή να προσθέσει εικονικά μηδενικά. BANK_DISABLE_DIRECT_INPUT=Απενεργοποίηση άμεσης καταγραφής συναλλαγής σε τραπεζικό λογαριασμό -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Ενεργοποίηση προσχεδίου εξαγωγής στο ημερολόγιο +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Ενεργοποίηση εξαγωγής προσχεδίου στο ημερολόγιο ACCOUNTANCY_COMBO_FOR_AUX=Ενεργοποίηση σύνθετης λίστας για θυγατρικό λογαριασμό (ενδέχεται να είναι αργή εάν έχετε πολλά τρίτα μέρη, διακοπή της δυνατότητας αναζήτησης σε ένα μέρος της αξίας) -ACCOUNTING_DATE_START_BINDING=Καθορίστε ημερομηνία έναρξης δεσμεύσεων & μεταφοράς στη λογιστική. Κάτω από αυτή την ημερομηνία, οι συναλλαγές δεν θα μεταφερθούν στο λογιστικό. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Κατά τη μεταφορά λογιστικού, επιλέξτε εμφάνιση περιόδου από προεπιλογή +ACCOUNTING_DATE_START_BINDING=Καθορίστε ημερομηνία έναρξης δεσμεύσεων & μεταφοράς στη λογιστική. Πριν από αυτή την ημερομηνία, οι συναλλαγές δεν θα μεταφερθούν στη λογιστική. +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Ποια είναι η προεπιλεγμένη περίοδος στη λογιστική μεταφορά; -ACCOUNTING_SELL_JOURNAL=Ημερολόγιο πωλήσεων -ACCOUNTING_PURCHASE_JOURNAL=Ημερολόγιο αγορών -ACCOUNTING_MISCELLANEOUS_JOURNAL=Ημερολόγιο +ACCOUNTING_SELL_JOURNAL=Ημερολόγιο πωλήσεων (πωλήσεις και επιστροφές) +ACCOUNTING_PURCHASE_JOURNAL=Ημερολόγιο αγοράς (αγορές και επιστροφές) +ACCOUNTING_BANK_JOURNAL=Ημερολόγιο μετρητών (εισπράξεις και εκταμιεύσεις) ACCOUNTING_EXPENSEREPORT_JOURNAL=Ημερολόγιο εξόδων -ACCOUNTING_SOCIAL_JOURNAL=Κοινωνικό ημερολόγιο +ACCOUNTING_MISCELLANEOUS_JOURNAL=Γενικό ημερολόγιο ACCOUNTING_HAS_NEW_JOURNAL=Έχει νέο περιοδικό +ACCOUNTING_INVENTORY_JOURNAL=Ημερολόγιο απογραφής +ACCOUNTING_SOCIAL_JOURNAL=Κοινωνικό ημερολόγιο -ACCOUNTING_RESULT_PROFIT=Λογαριασμός λογαριασμού αποτελεσμάτων (Κέρδος) -ACCOUNTING_RESULT_LOSS=Λογαριασμός λογαριασμού αποτελεσμάτων (Απώλεια) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Περιοδικό κλεισίματος +ACCOUNTING_RESULT_PROFIT=Αποτέλεσμα λογιστικού λογαριασμού (Κέρδος) +ACCOUNTING_RESULT_LOSS=Αποτέλεσμα λογιστικού λογαριασμού (Ζημιά) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Ημερολόγιο κλεισίματος -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Λογαριασμός λογιστικής της μεταβατικής τραπεζικής μεταφοράς -TransitionalAccount=Μεταβατικό τραπεζικό λογαριασμό μεταφοράς +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως λογαριασμός για μεταβατικές τραπεζικές μεταφορές +TransitionalAccount=Λογαριασμός της μεταβατικής τραπεζικής μεταφοράς -ACCOUNTING_ACCOUNT_SUSPENSE=Λογαριασμός λογιστικής αναμονής -DONATION_ACCOUNTINGACCOUNT=Λογαριασμός λογιστικής για την εγγραφή δωρεών -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Λογαριασμός λογιστικής για την εγγραφή συνδρομών +ACCOUNTING_ACCOUNT_SUSPENSE=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο λογαριασμός για μη κατανεμημένα κεφάλαια είτε εισπραχθέντα είτε καταβληθέντα, δηλαδή κεφάλαια σε «αναμονή» +DONATION_ACCOUNTINGACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί για την εγγραφή δωρεών (ενότητα δωρεών) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί για την εγγραφή συνδρομών μελών (Ενότητα μέλους - εάν η συνδρομή έχει καταγραφεί χωρίς τιμολόγιο) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Λογιστικός λογαριασμός από προεπιλογή για εγγραφή κατάθεσης πελάτη -UseAuxiliaryAccountOnCustomerDeposit=Χρησιμοποιήστε δευτερεύοντες λογαριασμούς στις γραμμές καταθέσεων πελατών +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για την εγγραφή κατάθεσης πελατών +UseAuxiliaryAccountOnCustomerDeposit=Αποθηκεύστε τον λογαριασμό πελάτη ως ατομικό λογαριασμό στο θυγατρικό καθολικό για γραμμές προκαταβολών (εάν απενεργοποιηθεί, ο ατομικός λογαριασμός για τις γραμμές προκαταβολών θα παραμείνει κενός) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως προεπιλογή +UseAuxiliaryAccountOnSupplierDeposit=Αποθηκεύστε τον λογαριασμό προμηθευτή ως ατομικό λογαριασμό στο θυγατρικό καθολικό για γραμμές προκαταβολών (εάν απενεργοποιηθεί, ο ατομικός λογαριασμός για τις γραμμές προκαταβολών θα παραμείνει κενός) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Λογαριασμός λογιστικής από προεπιλογή για τα αγορασμένα προϊόντα (χρησιμοποιείται αν δεν ορίζεται στο φύλλο προϊόντων) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Λογαριασμός από προεπιλογή για τα προϊόντα που αγοράστηκαν στην ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο προϊόντος) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Λογαριασμός από προεπιλογή για τα προϊόντα που αγοράστηκαν και εισάγονται εκτός ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο προϊόντος) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Λογαριασμός λογαριασμού από προεπιλογή για τα προϊόντα που πωλούνται (χρησιμοποιείται αν δεν ορίζεται στο φύλλο προϊόντος) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Λογαριασμός λογιστικής από προεπιλογή για τα προϊόντα που πωλούνται στην ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο προϊόντων) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Λογαριασμός λογαριασμού από προεπιλογή για τα προϊόντα που πωλούνται και εξάγονται εκτός ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο προϊόντων) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τα προϊόντα που αγοράστηκαν στην ίδια χώρα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο προϊόντος) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως προεπιλεγμένος λογαριασμός για τα προϊόντα που αγοράστηκαν από την Ε.Ε. σε άλλη χώρα της Ε.Ε. (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο προϊόντος) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τα προϊόντα που αγοράζονται και εισάγονται από οποιαδήποτε άλλη ξένη χώρα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο προϊόντος) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τα πωληθέντα προϊόντα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο προϊόντος) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Λογαριασμός (από το Λογιστικό Σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τα προϊόντα που πωλούνται από την Ε.Ε. σε άλλη χώρα της Ε.Ε. (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο προϊόντος) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τα προϊόντα που πωλούνται και εξάγονται σε οποιαδήποτε άλλη ξένη χώρα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο προϊόντος) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Λογαριασμός λογαριασμού από προεπιλογή για τις υπηρεσίες που αγοράσατε (χρησιμοποιείται αν δεν ορίζεται στο φύλλο εξυπηρέτησης) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Λογαριασμός από προεπιλογή για τις υπηρεσίες που αγοράστηκαν στην ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο υπηρεσίας) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Λογαριασμός από προεπιλογή για τις υπηρεσίες που αγοράστηκαν και εισήχθησαν εκτός ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο υπηρεσίας) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Λογαριασμός λογαριασμού από προεπιλογή για τις υπηρεσίες πώλησης (χρησιμοποιείται αν δεν ορίζεται στο φύλλο εξυπηρέτησης) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Λογαριασμός λογαριασμού από προεπιλογή για τις υπηρεσίες που πωλούνται στην ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο υπηρεσιών) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Λογαριασμός λογαριασμού από προεπιλογή για τις υπηρεσίες που πωλούνται και εξάγονται εκτός ΕΟΚ (χρησιμοποιείται αν δεν ορίζεται στο φύλλο υπηρεσιών) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τις υπηρεσίες που αγοράστηκαν στην ίδια χώρα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο υπηρεσιών) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τις υπηρεσίες που παρέχονται από την Ε.Ε. σε άλλη χώρα της Ε.Ε. (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο υπηρεσιών) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τις υπηρεσίες που αγοράζονται και εισάγονται από άλλη ξένη χώρα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο υπηρεσιών) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τις υπηρεσίες που πωλήθηκαν (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο υπηρεσιών) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τις υπηρεσίες που παρέχονται από την Ε.Ε. σε άλλη χώρα της Ε.Ε. (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο υπηρεσιών) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τις υπηρεσίες που πωλούνται και εξάγονται σε οποιαδήποτε άλλη ξένη χώρα (χρησιμοποιείται εάν δεν ορίζεται στο φύλλο υπηρεσιών) Doctype=Τύπος εγγράφου Docdate=Ημερομηνία -Docref=Παραπομπή +Docref=Αναφορά LabelAccount=Ετικέτα λογαριασμού LabelOperation=Λειτουργία ετικετών Sens=Κατεύθυνση AccountingDirectionHelp=Για έναν λογιστικό λογαριασμό πελάτη, χρησιμοποιήστε την Πίστωση για να καταγράψετε μια πληρωμή που λάβατε
    Για έναν λογιστικό λογαριασμό ενός προμηθευτή, χρησιμοποιήστε τη Χρέωση για να καταγράψετε μια πληρωμή που κάνατε -LetteringCode=Κωδικός γράμματος -Lettering=Γράμματα +LetteringCode=Κωδικός συμφωνίας +Lettering=Συμφωνία Codejournal=Ημερολόγιο -JournalLabel=Ετικέτα περιοδικών -NumPiece=Αριθμός τεμαχίου -TransactionNumShort=Αριθ. συναλλαγή -AccountingCategory=Προσαρμοσμένη ομάδα -GroupByAccountAccounting=Ομαδοποίηση κατά λογαριασμό γενικού καθολικού +JournalLabel=Ετικέτα Ημερολογίου +NumPiece=Αριθμός καταχώρησης +TransactionNumShort=Αριθ. συναλλαγής +AccountingCategory=Custom group of accounts +GroupByAccountAccounting=Ομαδοποίηση ανά λογαριασμό γενικού καθολικού GroupBySubAccountAccounting=Ομαδοποίηση ανά λογαριασμό βοηθητικού καθολικού AccountingAccountGroupsDesc=Μπορείτε να ορίσετε εδώ ορισμένες ομάδες λογιστικού λογαριασμού. Θα χρησιμοποιηθούν για εξατομικευμένες λογιστικές εκθέσεις. -ByAccounts=Με λογαριασμούς -ByPredefinedAccountGroups=Με προκαθορισμένες ομάδες -ByPersonalizedAccountGroups=Με εξατομικευμένες ομάδες +ByAccounts=Ανά λογαριασμούς +ByPredefinedAccountGroups=Ανά προκαθορισμένες ομάδες +ByPersonalizedAccountGroups=Ανά εξατομικευμένες ομάδες ByYear=Ανά έτος NotMatch=Δεν έχει οριστεί DeleteMvt=Διαγράψτε μερικές γραμμές από τη λογιστική @@ -226,118 +232,121 @@ DelYear=Έτος προς διαγραφή DelJournal=Ημερολόγιο προς διαγραφή ConfirmDeleteMvt=Αυτό θα διαγράψει όλες τις γραμμές στη λογιστική για το έτος/μήνα ή/και για ένα συγκεκριμένο ημερολόγιο (Απαιτείται τουλάχιστον ένα κριτήριο). Θα πρέπει να επαναχρησιμοποιήσετε τη δυνατότητα '%s' για να επαναφέρετε τη διαγραμμένη εγγραφή στο καθολικό. ConfirmDeleteMvtPartial=Αυτό θα διαγράψει τη συναλλαγή από τη λογιστική (όλες οι γραμμές που σχετίζονται με την ίδια συναλλαγή θα διαγραφούν) -FinanceJournal=Ημερολόγιο οικονομικών -ExpenseReportsJournal=Έκθεση εκθέσεων δαπανών -DescFinanceJournal=Finance journal including all the types of payments by bank account +FinanceJournal=Ημερολόγιο χρηματοοικονομικών +ExpenseReportsJournal=Ημερολόγιο αναφοράς εξόδων +DescFinanceJournal=Ημερολόγιο χρηματοοικονομικών που περιλαμβάνει όλους τους τύπους πληρωμών μέσω τραπεζικού λογαριασμού DescJournalOnlyBindedVisible=Αυτή είναι μια προβολή αρχείων που είναι δεσμευμένα σε έναν λογιστικό λογαριασμό και μπορούν να καταγραφούν στα Ημερολόγια και στο Καθολικό. VATAccountNotDefined=Δεν έχει οριστεί λογαριασμός για ΦΠΑ -ThirdpartyAccountNotDefined=Ο λογαριασμός για τρίτους δεν έχει οριστεί -ProductAccountNotDefined=Λογαριασμός για το προϊόν δεν έχει οριστεί -FeeAccountNotDefined=Λογαριασμός για αμοιβή δεν ορίζεται +ThirdpartyAccountNotDefined=Ο λογαριασμός για τρίτο μέρος δεν έχει οριστεί +ProductAccountNotDefined=Ο λογαριασμός για το προϊόν δεν έχει οριστεί +FeeAccountNotDefined=Ο λογαριασμός αμοιβών δεν έχει οριστεί BankAccountNotDefined=Ο λογαριασμός για την τράπεζα δεν έχει οριστεί -CustomerInvoicePayment=Πληρωμή τιμολογίου προμηθευτή +CustomerInvoicePayment=Πληρωμή τιμολογίου πελάτη ThirdPartyAccount=Λογαριασμός τρίτου μέρους NewAccountingMvt=Νέα συναλλαγή NumMvts=Αριθμός συναλλαγής ListeMvts=Λίστα κινήσεων -ErrorDebitCredit=Χρεωστικές και Πιστωτικές δεν μπορούν να χουν την ίδια αξία ταυτόχρονα -AddCompteFromBK=Προσθέστε λογαριασμούς λογιστικής στην ομάδα -ReportThirdParty=Δημιουργία λίστας λογαριασμού τρίτου μέρους -DescThirdPartyReport=Συμβουλευτείτε εδώ τη λίστα με τους πελάτες και τους προμηθευτές τρίτων και τους λογαριασμούς τους +ErrorDebitCredit=Η χρέωση και η πίστωση δεν μπορούν να έχουν αξία ταυτόχρονα +AddCompteFromBK=Προσθήκη λογαριασμών λογιστικής στην ομάδα +ReportThirdParty=Λίστα λογαριασμού τρίτου μέρους +DescThirdPartyReport=Συμβουλευτείτε εδώ τη λίστα με τους πελάτες και τους προμηθευτές και τους λογαριασμούς τους ListAccounts=Λίστα των λογιστικών λογαριασμών -UnknownAccountForThirdparty=Άγνωστο λογαριασμό τρίτων. Θα χρησιμοποιήσουμε %s -UnknownAccountForThirdpartyBlocking=Άγνωστο λογαριασμό τρίτων. Σφάλμα αποκλεισμού +UnknownAccountForThirdparty=Άγνωστος λογαριασμός τρίτου μέρους. Θα χρησιμοποιήσουμε %s +UnknownAccountForThirdpartyBlocking=Άγνωστος λογαριασμός τρίτου μέρους. Σφάλμα αποκλεισμού ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Ο λογαριασμός Βοηθητικού καθολικού δεν έχει οριστεί ή το τρίτο μέρος ή ο χρήστης είναι άγνωστος. Θα χρησιμοποιήσουμε %s -ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Άγνωστο τρίτο μέρος και βοηθητικό καθολικό δεν έχει οριστεί για την πληρωμή. Θα διατηρήσουμε κενή την τιμή του λογαριασμού βοηθητικού καθολικού. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Άγνωστο τρίτο μέρος και το βοηθητικό καθολικό δεν έχει οριστεί για την πληρωμή. Θα διατηρήσουμε κενή την τιμή του λογαριασμού βοηθητικού καθολικού. ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Ο λογαριασμός Βοηθητικού καθολικού δεν έχει οριστεί ή το τρίτο μέρος ή ο χρήστης είναι άγνωστος. Σφάλμα αποκλεισμού. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Ο λογαριασμός λογαριασμού τρίτου μέρους και ο λογαριασμός αναμονής δεν έχουν οριστεί. Σφάλμα αποκλεισμού PaymentsNotLinkedToProduct=Πληρωμή που δεν συνδέεται με κανένα προϊόν / υπηρεσία -OpeningBalance=Άνοιγμα υπολοίπου -ShowOpeningBalance=Εμφάνιση αρχικού υπολοίπου -HideOpeningBalance=Κρύψιμο αρχικού υπολοίπου +OpeningBalance=Ισολογισμός έναρξης +ShowOpeningBalance=Εμφάνιση ισολογισμού έναρξης +HideOpeningBalance=Κρύψιμο ισολογισμού έναρξης ShowSubtotalByGroup=Εμφάνιση υποσυνόλου ανά επίπεδο Pcgtype=Ομάδα του λογαριασμού -PcgtypeDesc=Η ομάδα λογαριασμού χρησιμοποιείται ως προκαθορισμένα κριτήρια «φίλτρου» και «ομαδοποίησης» για ορισμένες λογιστικές αναφορές. Για παράδειγμα, τα «ΕΙΣΟΔΗΜΑ» ή «ΕΞΟΔΑ» χρησιμοποιούνται ως ομάδες λογιστικών λογαριασμών προϊόντων για τη δημιουργία της αναφοράς εξόδων / εσόδων. +PcgtypeDesc=Η ομάδα λογαριασμού χρησιμοποιείται ως προκαθορισμένο κριτήριο «φίλτρου» και «ομαδοποίησης» για ορισμένες λογιστικές αναφορές. Για παράδειγμα, «ΕΣΟΔΑ» ή «ΕΞΟΔΑ» χρησιμοποιούνται ως ομάδες λογιστικών λογαριασμών προϊόντων για τη δημιουργία της αναφοράς εξόδων / εσόδων. -Reconcilable=Συμβιβάσιμος +Reconcilable=Προς συμφωνία -TotalVente=Total turnover before tax +TotalVente=Συνολικός κύκλος εργασιών προ φόρων TotalMarge=Συνολικό περιθώριο πωλήσεων -DescVentilCustomer=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών τιμολογίων πελατών που δεσμεύονται (ή όχι) σε λογαριασμό λογιστικής προϊόντων -DescVentilMore=Στις περισσότερες περιπτώσεις, εάν χρησιμοποιείτε προκαθορισμένα προϊόντα ή υπηρεσίες και ορίζετε τον αριθμό λογαριασμού στην κάρτα προϊόντος / υπηρεσίας, η εφαρμογή θα είναι σε θέση να πραγματοποιήσει όλες τις δεσμεύσεις μεταξύ των γραμμών τιμολογίου σας και του λογαριασμού λογιστικής του λογαριασμού σας, ένα κλικ με το κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε κάρτες προϊόντων / υπηρεσιών ή εάν εξακολουθείτε να έχετε κάποιες γραμμές που δεν δεσμεύονται σε ένα λογαριασμό, θα πρέπει να κάνετε μια χειροκίνητη σύνδεση από το μενού " %s ". -DescVentilDoneCustomer=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των πελατών τιμολογίων και τον λογαριασμό λογιστικής του προϊόντος τους -DescVentilTodoCustomer=Δεσμεύστε τις γραμμές τιμολογίου που δεν έχουν ήδη συνδεθεί με έναν λογαριασμό λογιστικής προϊόντος -ChangeAccount=Αλλάξτε το λογαριασμό λογιστικής προϊόντος / υπηρεσίας για επιλεγμένες γραμμές με τον ακόλουθο λογαριασμό λογιστικής: +DescVentilCustomer=Δείτε εδώ τη λίστα των γραμμών τιμολογίων πελάτη που συνδέονται (ή όχι) σε έναν λογαριασμό προϊόντος από το λογιστικό σχέδιο +DescVentilMore=Στις περισσότερες περιπτώσεις, εάν χρησιμοποιείτε προκαθορισμένα προϊόντα ή υπηρεσίες και ορίσετε τον λογαριασμό (από το λογιστικό σχέδιο) στην κάρτα προϊόντος/υπηρεσίας, η εφαρμογή θα μπορεί να δεσμεύει όλες τις γραμμές τιμολογίου σας στον λογιστικό λογαριασμό του λογιστικού σχεδίου σας, με ένα μόνο κλικ στο κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε κάρτες προϊόντων/υπηρεσιών ή εάν εξακολουθείτε να έχετε ορισμένες γραμμές που δεν είναι δεσμευμένες σε έναν λογαριασμό, θα πρέπει να κάνετε μια μη αυτόματη δέσμευση από το μενού " %s ". +DescVentilDoneCustomer=Δείτε εδώ τη λίστα με τις γραμμές τιμολογίων πελατών και τον λογαριασμό προϊόντος τους από το λογιστικό σχέδιο +DescVentilTodoCustomer=Δεσμεύστε τις γραμμές τιμολογίου που δεν έχουν ήδη δεσμευθεί με έναν λογαριασμό προϊόντος από το λογιστικό σχέδιο +ChangeAccount=Αλλάξτε τον λογαριασμό προϊόντος/υπηρεσίας (από το λογιστικό σχέδιο) για τις επιλεγμένες γραμμές με τον ακόλουθο λογαριασμό: Vide=- -DescVentilSupplier=Συμβουλευτείτε εδώ τη λίστα των γραμμών τιμολογίου προμηθευτή που δεσμεύονται ή δεν έχουν ακόμη συνδεθεί με έναν λογαριασμό λογιστικής προϊόντος (εμφανίζονται μόνο εγγραφές που δεν έχουν ήδη μεταφερθεί στη λογιστική) -DescVentilDoneSupplier=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των τιμολογίων προμηθευτών και του λογαριασμού τους -DescVentilTodoExpenseReport=Γραμμές αναφοράς δεσμευμένων δαπανών που δεν έχουν ήδη συνδεθεί με λογαριασμό λογιστικής αμοιβής -DescVentilExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών αναφοράς δαπανών που δεσμεύονται (ή όχι) σε λογαριασμό λογιστικής αμοιβής -DescVentilExpenseReportMore=Εάν ρυθμίσετε τον λογαριασμό λογαριασμών σε γραμμές αναφοράς τύπου εξόδων, η εφαρμογή θα είναι σε θέση να κάνει όλη τη δέσμευση μεταξύ των γραμμών αναφοράς δαπανών σας και του λογαριασμού λογιστικής του λογαριασμού σας, με ένα μόνο κλικ με το κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε λεξικό τελών ή αν έχετε ακόμα ορισμένες γραμμές που δεν δεσμεύονται σε κανένα λογαριασμό, θα πρέπει να κάνετε μια χειροκίνητη σύνδεση από το μενού " %s ". -DescVentilDoneExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των εκθέσεων δαπανών και του λογιστικού λογαριασμού τους +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) +DescVentilDoneSupplier=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των τιμολογίων προμηθευτών και του λογιστικού λογαριασμού τους +DescVentilTodoExpenseReport=Δεσμεύστε τις γραμμές αναφοράς εξόδων που δεν έχουν ήδη δεσμευθεί με ένα Λογιστικός λογαριασμός αμοιβής +DescVentilExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών αναφοράς εξόδων που δεσμεύονται (ή όχι) σε ένα λογαριασμό λογιστικής αμοιβής +DescVentilExpenseReportMore=Εάν ρυθμίσετε τον λογιστικό λογαριασμό σε γραμμές τύπου αναφοράς εξόδων, η εφαρμογή θα είναι σε θέση να κάνει όλη τη δέσμευση μεταξύ των γραμμών αναφοράς εξόδων σας και του λογαριασμού λογιστικής του λογιστικού σχεδίου σας, με ένα μόνο κλικ στο κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε λεξικό αμοιβών ή αν έχετε ακόμα ορισμένες γραμμές που δεν δεσμεύονται σε κανένα λογαριασμό, θα πρέπει να κάνετε μια χειροκίνητη σύνδεση από το μενού "%s". +DescVentilDoneExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των αναφορών εξόδων και του λογιστικού λογαριασμού των αμοιβών τους Closure=Ετήσιο κλείσιμο -DescClosure=Ενημερωθείτε εδώ για τον αριθμό των κινήσεων ανά μήνα που δεν έχουν ακόμη επικυρωθεί και κλειδωθεί +DescClosure=Δείτε εδώ τον αριθμό των κινήσεων ανά μήνα που δεν έχουν ακόμη επικυρωθεί και κλειδωθεί OverviewOfMovementsNotValidated=Επισκόπηση κινήσεων που δεν έχουν επικυρωθεί και κλειδωθεί AllMovementsWereRecordedAsValidated=Όλες οι κινήσεις καταγράφηκαν ως επικυρωμένες και κλειδωμένες NotAllMovementsCouldBeRecordedAsValidated=Δεν ήταν δυνατό να καταγραφούν όλες οι κινήσεις ως επικυρωμένες και κλειδωμένες -ValidateMovements=Επικύρωση και κλείδωμα εγγραφής... -DescValidateMovements=Απαγορεύεται οποιαδήποτε τροποποίηση ή διαγραφή γραφής, γράμματος και διαγραφής. Όλες οι καταχωρήσεις για μια άσκηση πρέπει να επικυρωθούν, διαφορετικά το κλείσιμο δεν θα είναι δυνατό +ValidateMovements=Επικύρωση και κλείδωμα κινήσεων... +DescValidateMovements=Απαγορεύεται οποιαδήποτε τροποποίηση ή διαγραφή γραφής, συμφωνίας και διαγραφής. Όλες οι καταχωρήσεις πρέπει να επικυρωθούν, διαφορετικά το κλείσιμο δεν θα είναι δυνατό ValidateHistory=Δεσμεύστε αυτόματα AutomaticBindingDone=Ολοκληρώθηκαν οι αυτόματες δεσμεύσεις (%s) - Δεν είναι δυνατή η αυτόματη δέσμευση για κάποιες εγγραφές (%s) -ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να διαγράψετε αυτόν τον λογιστικό λογαριασμό γιατί χρησιμοποιείται +ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να καταργήσετε ή να απενεργοποιήσετε αυτόν τον λογαριασμό του λογιστικού σχεδίου επειδή χρησιμοποιείται MvtNotCorrectlyBalanced=Η κίνηση δεν είναι σωστά ισοζυγισμένη. Χρέωση = %s & Πίστωση = %s -Balancing=Εξισορρόπηση -FicheVentilation=Δεσμευτική κάρτα -GeneralLedgerIsWritten=Οι συναλλαγές γράφονται στο Ledger -GeneralLedgerSomeRecordWasNotRecorded=Ορισμένες από τις συναλλαγές δεν μπόρεσαν να πραγματοποιηθούν σε περιοδικά. Εάν δεν υπάρχει άλλο μήνυμα σφάλματος, αυτό πιθανότατα οφείλεται στο γεγονός ότι είχαν ήδη καταχωρηθεί περιοδικά. +Balancing=Ισολογισμός +FicheVentilation=Καρτέλα Δεσμεύσεων +GeneralLedgerIsWritten=Οι συναλλαγές καταχωρήθηκαν στο Καθολικό +GeneralLedgerSomeRecordWasNotRecorded=Δεν ήταν δυνατή η καταγραφή ορισμένων από τις συναλλαγές. Εάν δεν υπάρχει άλλο μήνυμα σφάλματος, αυτό πιθανότατα οφείλεται στο ότι είχαν ήδη καταχωρηθεί στο ημερολόγιο. NoNewRecordSaved=Δεν υπάρχει άλλη εγγραφή για μεταφορά -ListOfProductsWithoutAccountingAccount=Κατάλογος προϊόντων που δεν δεσμεύονται σε κανένα λογιστικό λογαριασμό -ChangeBinding=Αλλάξτε τη σύνδεση +ListOfProductsWithoutAccountingAccount=Κατάλογος προϊόντων που δεν δεσμεύονται σε κανένα λογαριασμό του λογιστικού σχεδίου +ChangeBinding=Αλλάξτε τη δέσμευση Accounted=Καταχωρήθηκε στο καθολικό NotYetAccounted=Δεν έχει μεταφερθεί ακόμη στη λογιστική -ShowTutorial=Εμφάνιση εκπαιδευτικού προγράμματος -NotReconciled=Δεν ταιριάζουν +ShowTutorial=Εμφάνιση Οδηγιών +NotReconciled=Μη συμφωνημένες WarningRecordWithoutSubledgerAreExcluded=Προειδοποίηση, όλες οι γραμμές χωρίς καθορισμένο λογαριασμό βοηθητικού καθολικού φιλτράρονται και εξαιρούνται από αυτήν την προβολή AccountRemovedFromCurrentChartOfAccount=Λογαριασμός λογιστικής που δεν υπάρχει στο τρέχον λογιστικό σχέδιο ## Admin -BindingOptions=Δεσμευτικές επιλογές -ApplyMassCategories=Εφαρμογή κατηγοριών μάζας -AddAccountFromBookKeepingWithNoCategories=Διαθέσιμος λογαριασμός που δεν έχει ακόμα εγγραφεί στην εξατομικευμένη ομάδα -CategoryDeleted=Η κατηγορία για τον λογαριασμό λογιστηρίου έχει καταργηθεί -AccountingJournals=Λογιστικά περιοδικά -AccountingJournal=Λογιστικό περιοδικό -NewAccountingJournal=Νέο λογιστικό περιοδικό +BindingOptions=Επιλογές δέσμευσης +ApplyMassCategories=Εφαρμογή μαζικών κατηγοριών +AddAccountFromBookKeepingWithNoCategories=Ο διαθέσιμος λογαριασμός δεν ειναι ακόμα στην εξατομικευμένη ομάδα +CategoryDeleted=Η κατηγορία για τον λογιστικό λογαριασμό έχει αφαιρεθεί +AccountingJournals=Λογιστικά ημερολόγια +AccountingJournal=Λογιστικό ημερολόγιο +NewAccountingJournal=Νέο λογιστικό ημερολόγιο ShowAccountingJournal=Εμφάνιση ημερολογίου λογιστικής -NatureOfJournal=Φύση του περιοδικού +NatureOfJournal=Φύση του ημερολογίου AccountingJournalType1=Διάφορες εργασίες AccountingJournalType2=Πωλήσεις AccountingJournalType3=Αγορές AccountingJournalType4=Τράπεζα -AccountingJournalType5=Έκθεση δαπανών -AccountingJournalType8=Καταγραφή εμπορευμάτων +AccountingJournalType5=Αναφορές εξόδων +AccountingJournalType8=Απογραφή AccountingJournalType9=Έχει-νέο -ErrorAccountingJournalIsAlreadyUse=Αυτό το περιοδικό χρησιμοποιείται ήδη +GenerationOfAccountingEntries=Δημιουργία λογιστικών εγγραφών +ErrorAccountingJournalIsAlreadyUse=Αυτό το ημερολόγιο χρησιμοποιείται ήδη AccountingAccountForSalesTaxAreDefinedInto=Σημείωση: Ο λογαριασμός λογιστικής για τον φόρο πωλήσεων ορίζεται στο μενού %s - %s NumberOfAccountancyEntries=Αριθμός καταχωρήσεων NumberOfAccountancyMovements=Αριθμός κινήσεων ACCOUNTING_DISABLE_BINDING_ON_SALES=Απενεργοποίηση δέσμευσης και μεταφοράς των πωλήσεων στη λογιστική (τα τιμολόγια πελατών δεν θα λαμβάνονται υπόψη στη λογιστική) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Απενεργοποίηση δέσμευσης και μεταφοράς των αγορών στη λογιστική (τα τιμολόγια προμηθευτών δεν θα λαμβάνονται υπόψη στη λογιστική) -ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Απενεργοποίηση δέσμευσης και μεταφοράς των αναφορών εξόδων (στη λογιστική οι αναφορές δαπανών δεν θα ληφθούν υπόψη στη λογιστική) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Απενεργοποίηση δέσμευσης και μεταφοράς των αναφορών εξόδων (στη λογιστική οι αναφορές εξόδων δεν θα ληφθούν υπόψη στη λογιστική) +ACCOUNTING_ENABLE_LETTERING=Ενεργοποίηση της λειτουργίας συμφωνίας στη λογιστική ## Export +NotExportLettering=Μην εξάγετε τη συμφωνία κατά τη δημιουργία του αρχείου NotifiedExportDate=Επισημάνετε τις εξαγόμενες γραμμές ως Εξαγόμενες (για να τροποποιήσετε μια γραμμή, θα χρειαστεί να διαγράψετε ολόκληρη τη συναλλαγή και να τη μεταφέρετε ξανά στη λογιστική) -NotifiedValidationDate=Επικύρωση και Κλείδωμα των εξαγόμενων καταχωρήσεων (το ίδιο αποτέλεσμα με τη λειτουργία "Κλείσιμο", η τροποποίηση και η διαγραφή των γραμμών ΣΙΓΟΥΡΑ δεν θα είναι δυνατή) +NotifiedValidationDate=Επικύρωση και Κλείδωμα των εξαγόμενων καταχωρήσεων (το ίδιο αποτέλεσμα με τη δυνατότητα "%s", η τροποποίηση και η διαγραφή των γραμμών ΣΙΓΟΥΡΑ δεν θα είναι δυνατή) DateValidationAndLock=Ημερομηνία επικύρωσης και κλειδώματος ConfirmExportFile=Επιβεβαίωση δημιουργίας του λογιστικού αρχείου εξαγωγής ; -ExportDraftJournal=Εξαγωγή σχεδίου περιοδικού -Modelcsv=Πρότυπο εξαγωγής -Selectmodelcsv=Επιλέξτε ένα πρότυπο από την εξαγωγή +ExportDraftJournal=Εξαγωγή προσχεδίου ημερολογίου +Modelcsv=Υπόδειγμα εξαγωγής +Selectmodelcsv=Επιλέξτε ένα υπόδειγμα εξαγωγής Modelcsv_normal=Κλασική εξαγωγή Modelcsv_CEGID=Εξαγωγή για CEGID Expert Comptabilité Modelcsv_COALA=Εξαγωγή για το Sage Coala @@ -346,11 +355,11 @@ Modelcsv_ciel=Εξαγωγή για Sage50, Ciel Compta ή Compta Evo. (Μορφ Modelcsv_quadratus=Εξαγωγή για Quadratus QuadraCompta Modelcsv_ebp=Εξαγωγή για EBP Modelcsv_cogilog=Εξαγωγή για το Cogilog -Modelcsv_agiris=Εξαγωγή για Agiris Isacompta +Modelcsv_agiris=Εξαγωγή Agiris Isacompta Modelcsv_LDCompta=Εξαγωγή για LD Compta (v9) (Δοκιμή) Modelcsv_LDCompta10=Εξαγωγή για LD Compta (v10 και άνω) Modelcsv_openconcerto=Εξαγωγή για OpenConcerto (Test) -Modelcsv_configurable=Εξαγωγή CSV εξαγωγής +Modelcsv_configurable=Εξαγωγή CSV με δυνατότητα διαμόρφωσης Modelcsv_FEC=Εξαγωγή FEC Modelcsv_FEC2=Εξαγωγή FEC (Με γραφή δημιουργίας ημερομηνιών/αντιστροφή εγγράφου) Modelcsv_Sage50_Swiss=Εξαγωγή για Sage 50 Ελβετία @@ -358,38 +367,38 @@ Modelcsv_winfic=Εξαγωγή για Winfic - eWinfic - WinSis Compta Modelcsv_Gestinumv3=Εξαγωγή για Gestinum (v3) Modelcsv_Gestinumv5=Εξαγωγή για Gestinum (v5) Modelcsv_charlemagne=Εξαγωγή για το Aplim Charlemagne -ChartofaccountsId=Λογαριασμός Id +ChartofaccountsId=Αναγνωριστικό λογιστικού σχεδίου ## Tools - Init accounting account on product / service -InitAccountancy=Λογιστική αρχής -InitAccountancyDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για την προετοιμασία ενός λογαριασμού λογιστικής σε προϊόντα και υπηρεσίες που δεν έχουν λογιστικό λογαριασμό που καθορίζεται για τις πωλήσεις και τις αγορές. -DefaultBindingDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για τον ορισμό ενός προεπιλεγμένου λογαριασμού που θα χρησιμοποιηθεί για να συνδέσει τις εγγραφές συναλλαγών σχετικά με τους μισθούς πληρωμής, τη δωρεά, τους φόρους και τις δεξαμενές όταν δεν έχει ήδη καθοριστεί συγκεκριμένος λογαριασμός λογιστικής. +InitAccountancy=Έναρξη λογιστικής +InitAccountancyDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για την προετοιμασία ενός λογαριασμού λογιστικής σε προϊόντα και υπηρεσίες που δεν έχουν λογιστικό λογαριασμό για τις πωλήσεις και τις αγορές. +DefaultBindingDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για τον ορισμό ενός προεπιλεγμένου λογαριασμού που θα χρησιμοποιηθεί για να συνδέσει τις εγγραφές συναλλαγών σχετικά με την πληρωμή μισθών, δωρεές, τους φόρους και τον Φ.Π.Α. όταν δεν έχει ήδη καθοριστεί συγκεκριμένος λογαριασμός λογιστικής. DefaultClosureDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για να ορίσετε τις παραμέτρους που χρησιμοποιούνται για τα λογιστικά κλεισίματα. Options=Επιλογές -OptionModeProductSell=Κατάσταση πωλήσεων -OptionModeProductSellIntra=Mode πωλήσεις που εξάγονται στην ΕΟΚ -OptionModeProductSellExport=Mode πωλήσεις που εξάγονται σε άλλες χώρες -OptionModeProductBuy=Κατάσταση αγορών -OptionModeProductBuyIntra=Λειτουργίες που εισάγονται σε ΕΟΚ -OptionModeProductBuyExport=Λειτουργία που αγοράστηκε εισαγόμενη από άλλες χώρες +OptionModeProductSell=Λειτουργία πωλήσεων +OptionModeProductSellIntra=Λειτουργία πωλήσεων/εξαγωγών στην Ε.Ε. +OptionModeProductSellExport=Λειτουργία πωλήσεων/εξαγωγών σε άλλες χώρες +OptionModeProductBuy=Λειτουργία αγορών +OptionModeProductBuyIntra=Λειτουργία αγορών/εισαγωγών στην Ε.Ε. +OptionModeProductBuyExport=Λειτουργία αγορών/εισαγωγών από άλλες χώρες OptionModeProductSellDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για πωλήσεις. -OptionModeProductSellIntraDesc=Εμφάνιση όλων των προϊόντων με λογιστική καταγραφή πωλήσεων στην ΕΟΚ. -OptionModeProductSellExportDesc=Εμφάνιση όλων των προϊόντων με λογαρια σμό για άλλες ξένες πωλήσεις. +OptionModeProductSellIntraDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό πωλήσεων στην Ε.Ε.. +OptionModeProductSellExportDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για άλλες ξένες πωλήσεις. OptionModeProductBuyDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για αγορές. -OptionModeProductBuyIntraDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για αγορές σε ΕΟΚ. -OptionModeProductBuyExportDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για άλλες αγορές στο εξωτερικό. +OptionModeProductBuyIntraDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για αγορές στην Ε.Ε. +OptionModeProductBuyExportDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για άλλες αγορές από το εξωτερικό. CleanFixHistory=Αφαιρέστε τον κωδικό λογιστικής από γραμμές που δεν υπάρχουν στο λογιστικό σχέδιο -CleanHistory=Επαναφέρετε όλες τις συνδέσεις για το επιλεγμένο έτος +CleanHistory=Επαναφέρετε όλες τις δεσμεύσεις για το επιλεγμένο έτος PredefinedGroups=Προκαθορισμένες ομάδες WithoutValidAccount=Χωρίς έγκυρο αποκλειστικό λογαριασμό WithValidAccount=Με έγκυρο αποκλειστικό λογαριασμό -ValueNotIntoChartOfAccount=Αυτή η αξία του λογαριασμού λογιστικής δεν υπάρχει στο λογαριασμό λογαριασμού +ValueNotIntoChartOfAccount=Αυτή η αξία λογιστικού λογαριασμού δεν υπάρχει στο λογιστικό σχέδιο AccountRemovedFromGroup=Ο λογαριασμός αφαιρέθηκε από την ομάδα SaleLocal=Τοπική πώληση SaleExport=Εξαγωγική πώληση SaleEEC=Πώληση στην Ε.Ε. SaleEECWithVAT=Πώληση στην Ε.Ε. με μη μηδενικό ΦΠΑ, άρα υποθέτουμε ότι ΔΕΝ πρόκειται για ενδοκοινοτική πώληση και ο προτεινόμενος λογαριασμός είναι ο τυπικός λογαριασμός προϊόντος. -SaleEECWithoutVATNumber=Πώληση στην Ε.Ε. χωρίς ΦΠΑ αλλά δεν έχει οριστεί το ΑΦΜ του τρίτου μερους. Επιστρέφουμε στον λογαριασμό προϊόντος για τυπικές πωλήσεις. Μπορείτε να διορθώσετε το ΑΦΜ τρίτου μέρους ή τον λογαριασμό προϊόντος εάν χρειάζεται. +SaleEECWithoutVATNumber=Πώληση στην Ε.Ε. χωρίς ΦΠΑ αλλά δεν έχει οριστεί το ΑΦΜ του τρίτου μέρους. Επιστρέφουμε στον λογαριασμό προϊόντος για τυπικές πωλήσεις. Μπορείτε να διορθώσετε το ΑΦΜ τρίτου μέρους ή τον λογαριασμό προϊόντος εάν χρειάζεται. ForbiddenTransactionAlreadyExported=Απαγορευμένο: Η συναλλαγή έχει επικυρωθεί ή/και έχει εξαχθεί. ForbiddenTransactionAlreadyValidated=Απαγορευμένο: Η συναλλαγή έχει επικυρωθεί. ## Dictionary @@ -398,61 +407,66 @@ Calculated=Υπολογίστηκε Formula=Τύπος ## Reconcile -Unlettering=Ασυμβίβαστο +LetteringAuto=Αυτόματη συμφωνία +LetteringManual=Χειροκίνητη συμφωνία +Unlettering=Αναίρεση λογιστικής συμφωνίας +UnletteringAuto=Αυτόματη αναίρεση λογιστικής συμφωνίας +UnletteringManual=Χειροκίνητη αναίρεση λογιστικής συμφωνίας AccountancyNoLetteringModified=Δεν τροποποιήθηκε η συμφωνία AccountancyOneLetteringModifiedSuccessfully=Μία συμφωνία τροποποιήθηκε με επιτυχία AccountancyLetteringModifiedSuccessfully=Η συμφωνία %s τροποποιήθηκε επιτυχώς -AccountancyNoUnletteringModified=Κανένα ασυμβίβαστο δεν τροποποιήθηκε -AccountancyOneUnletteringModifiedSuccessfully=Ένα ασυμβίβαστο τροποποιήθηκε με επιτυχία -AccountancyUnletteringModifiedSuccessfully=%s ασυμβιβαστο τροποποιήθηκε επιτυχώς +AccountancyNoUnletteringModified=Κανένα μη συμφωνημένο δεν τροποποιήθηκε +AccountancyOneUnletteringModifiedSuccessfully=Ένα μη συμφωνηθέν τροποποιήθηκε με επιτυχία +AccountancyUnletteringModifiedSuccessfully=%s μη συμφωνηθέντα τροποποιήθηκαν επιτυχώς ## Confirm box -ConfirmMassUnlettering=Επιβεβαίωση μαζικής ασυμφωνίας -ConfirmMassUnletteringQuestion=Είστε βέβαιοι ότι θέλετε να καταργήσετε την εναρμόνιση των επιλεγμένων εγγραφών %s; +ConfirmMassUnletteringAuto=Επιβεβαίωση αυτόματης μαζικής αναίρεσης λογιστικής συμφωνίας +ConfirmMassUnletteringManual=Επιβεβαίωση χειροκίνητης μαζικής αναίρεσης λογιστικής συμφωνίας +ConfirmMassUnletteringQuestion=Είστε σίγουροι ότι θέλετε να αναιρέσετε τη λογιστική συμφωνία των %sεπιλεγμένων εγγραφών; ConfirmMassDeleteBookkeepingWriting=Επιβεβαίωση μαζικής διαγραφής ConfirmMassDeleteBookkeepingWritingQuestion=Αυτό θα διαγράψει τη συναλλαγή από τη λογιστική (όλες οι γραμμές που σχετίζονται με την ίδια συναλλαγή θα διαγραφούν) Είστε σίγουροι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; ## Error SomeMandatoryStepsOfSetupWereNotDone=Ορισμένα υποχρεωτικά βήματα της ρύθμισης δεν έγιναν, παρακαλούμε ολοκληρώστε τα ErrorNoAccountingCategoryForThisCountry=Δεν υπάρχει διαθέσιμη ομάδα λογαριασμών λογιστικής για τη χώρα %s (Δες Αρχική - Ρυθμίσεις - Λεξικά) -ErrorInvoiceContainsLinesNotYetBounded=Προσπαθείτε να κάνετε περιοδικές εκδόσεις ορισμένων γραμμών του τιμολογίου %s , αλλά ορισμένες άλλες γραμμές δεν έχουν ακόμη οριοθετηθεί στον λογαριασμό λογιστικής. Η δημοσίευση όλων των γραμμών τιμολογίου για αυτό το τιμολόγιο απορρίπτεται. +ErrorInvoiceContainsLinesNotYetBounded=Προσπαθείτε να καταχωρήσετε στο ημερολόγιο ορισμένες γραμμές του τιμολογίου %s , αλλά ορισμένες άλλες γραμμές δεν είναι ακόμη δεσμευμένες στον λογιστικό λογαριασμό. Η καταχώρηση στο ημερολόγιο όλων των γραμμών τιμολογίων για αυτό το τιμολόγιο απορρίπτεται. ErrorInvoiceContainsLinesNotYetBoundedShort=Ορισμένες γραμμές στο τιμολόγιο δεν δεσμεύονται στο λογαριασμό λογιστικής. ExportNotSupported=Η διαμορφωμένη μορφή εξαγωγής δεν υποστηρίζεται σε αυτή τη σελίδα BookeppingLineAlreayExists=Γραμμές που υπάρχουν ήδη στη λογιστική -NoJournalDefined=Δεν έχει οριστεί περιοδικό -Binded=Γραμμές δεσμευμένες -ToBind=Γραμμές που δεσμεύουν -UseMenuToSetBindindManualy=Οι γραμμές που δεν έχουν ακόμη δεσμευτεί, χρησιμοποιήστε το μενού %s για να κάνετε τη σύνδεση μη αυτόματα +NoJournalDefined=Δεν βρέθηκε ημερολόγιο +Binded=Δεσμευμένες γραμμές +ToBind=Γραμμές προς δέσμευση +UseMenuToSetBindindManualy=Γραμμές που δεν έχουν ακόμη δεσμευτεί, χρησιμοποιήστε το μενού %s για να κάνετε τη δέσμευση χειροκίνητα SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Λυπούμαστε, αυτή η ενότητα δεν είναι συμβατή με την πειραματική λειτουργία των τιμολογίων κατάστασης -AccountancyErrorMismatchLetterCode=Αναντιστοιχία στον κώδικα συμφιλίωσης -AccountancyErrorMismatchBalanceAmount=Το υπόλοιπο (%s) δεν είναι ίσο με 0 +AccountancyErrorMismatchLetterCode=Αναντιστοιχία στον κώδικο συμφωνίας +AccountancyErrorMismatchBalanceAmount=Το ισοζύγιο (%s) δεν είναι ίσο με 0 AccountancyErrorLetteringBookkeeping=Παρουσιάστηκαν σφάλματα σχετικά με τις συναλλαγές: %s +ErrorAccountNumberAlreadyExists=Ο λογιστικός αριθμός %s υπάρχει ήδη ## Import ImportAccountingEntries=Λογιστικές εγγραφές ImportAccountingEntriesFECFormat=Λογιστικές εγγραφές - Μορφή FEC FECFormatJournalCode=Kώδικας ημερολογίου (JournalCode) FECFormatJournalLabel=Ετικέτα ημερολογίου (JournalLib) -FECFormatEntryNum=Αριθμός τεμαχίου (EcritureNum) -FECFormatEntryDate=Ημερομηνία τεμαχίου (EcritureDate) +FECFormatEntryNum=Αριθμός καταχώρησης (EcritureNum) +FECFormatEntryDate=Ημερομηνία καταχώρησης (EcritureDate) FECFormatGeneralAccountNumber=Γενικός αριθμός λογαριασμού (CompteNum) FECFormatGeneralAccountLabel=Γενική ετικέτα λογαριασμού (CompteLib) FECFormatSubledgerAccountNumber=Αριθμός λογαριασμού Βοηθητικού καθολικού (CompAuxNum) FECFormatSubledgerAccountLabel=Αριθμός λογαριασμού Βοηθητικού καθολικού (CompAuxLib) -FECFormatPieceRef=Αναφορά τεμαχίου (PieceRef) -FECFormatPieceDate=Δημιουργία ημερομηνίας τεμαχίου (PieceDate) +FECFormatPieceRef=Αναφορά καταχώρησης (PieceRef) +FECFormatPieceDate=Δημιουργία ημερομηνίας καταχώρησης (PieceDate) FECFormatLabelOperation=Λειτουργία ετικέτας (EcritureLib) -FECFormatDebit=Χρεωστική (Χρεωστική) +FECFormatDebit=Χρέωση (Χρέωση) FECFormatCredit=Πίστωση (Πίστωση) -FECFormatReconcilableCode=Κωδικός συμβιβασμού (EcritureLet) -FECFormatReconcilableDate=Ημερομηνία συμβιβασμού (DateLet) -FECFormatValidateDate=Ημερομηνία επικύρωσης τεμαχίου (ValidDate) +FECFormatReconcilableCode=Κωδικός συμφωνίας (EcritureLet) +FECFormatReconcilableDate=Ημερομηνία συμφωνίας (DateLet) +FECFormatValidateDate=Ημερομηνία επικύρωσης καταχώρησης (ValidDate) FECFormatMulticurrencyAmount=Ποσό πολλαπλών νομισμάτων (Montantdevise) FECFormatMulticurrencyCode=Κωδικός πολλαπλών νομισμάτων (Idevise) DateExport=Ημερομηνία εξαγωγής -WarningReportNotReliable=Προειδοποίηση, αυτή η αναφορά δεν βασίζεται στο Καθολικό, επομένως δεν περιέχει συναλλαγή που τροποποιήθηκε χειροκίνητα στο Καθολικό. Εάν η περιοδική σας έκδοση είναι ενημερωμένη, η προβολή της λογιστικής είναι πιο ακριβής. -ExpenseReportJournal=Ημερολόγιο Έκθεσης Εξόδων -InventoryJournal=Απογραφή Αποθέματος +WarningReportNotReliable=Προειδοποίηση, αυτή η αναφορά δεν βασίζεται στο Καθολικό, επομένως δεν περιέχει συναλλαγή που τροποποιήθηκε χειροκίνητα στο Καθολικό. Εάν τα ημερολόγια σας είναι ενημερωμένα, η προβολή της λογιστικής είναι πιο ακριβής. +ExpenseReportJournal=Ημερολόγιο Αναφοράς Εξόδων NAccounts= %s λογαριασμοί diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index abd84623bbb..f48ca6d0304 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=Εκτύπωση αναφοράς και περιόδου του προϊόντος σε PDF -BoldLabelOnPDF=Εκτυπώστε την ετικέτα του προϊόντος με έντονη γραφή σε PDF +BoldLabelOnPDF=Εκτύπωση ετικέτας του προϊόντος με έντονη γραφή σε PDF Foundation=Οργανισμός Version=Έκδοση Publisher=Εκδότης @@ -34,7 +34,7 @@ PurgeSessions=Διαγραφή συνεδριών ConfirmPurgeSessions=Είστε σίγουροι πως θέλετε να διαγράψετε όλες τις συνεδρίες; Αυτό θα αποσυνδέσει όλους τους χρήστες (εκτός από εσάς). NoSessionListWithThisHandler=Ο φορέας χειρισμού αποθήκευσης συνεδριών που έχει ρυθμιστεί στη PHP σας δεν επιτρέπει την καταχώριση όλων των συνεδριών που εκτελούνται. LockNewSessions=Κλειδώστε τις νέες συνεδρίες -ConfirmLockNewSessions=Είστε βέβαιοι ότι θέλετε να περιορίσετε οποιαδήποτε νέα σύνδεση Dolibarr στον εαυτό σας; Μόνο ο χρήστης %s θα μπορεί να συνδεθεί μετά από αυτό. +ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσετε οποιαδήποτε νέα σύνδεση Dolibarr στον εαυτό σας; Μόνο ο χρήστης %s θα μπορεί να συνδεθεί μετά από αυτό. UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης YourSession=Η συνεδρία σας Sessions=Συνεδρίες χρηστών @@ -45,32 +45,30 @@ PermissionsOnFile=Δικαιώματα στο αρχείο %s NoSessionFound=Η διαμόρφωση της PHP σας φαίνεται να μην επιτρέπει την καταχώρηση των ενεργοποιημένων συνεδριών. Ο κατάλογος που χρησιμοποιείται για την αποθήκευση των περιόδων σύνδεσης (%s) μπορεί να προστατεύεται (για παράδειγμα, από τα δικαιώματα των λειτουργικών συστημάτων ή από την οδηγία PHP open_basedir). DBStoringCharset=Σετ χαρακτήρων βάσης δεδομένων για αποθήκευση δεδομένων DBSortingCharset=Σετ χαρακτήρων βάσης δεδομένων για ταξινόμηση δεδομένων -HostCharset=Host charset -ClientCharset=Client charset +HostCharset=Σετ χαρακτήρων κεντρικού υπολογιστή +ClientCharset=Σετ χαρακτήρων πελάτη ClientSortingCharset=Client collation WarningModuleNotActive=Η ενότητα %s πρέπει να ενεργοποιηθεί WarningOnlyPermissionOfActivatedModules=Εδώ φαίνονται μόνο τα δικαιώματα που σχετίζονται μόνο με ενεργοποιημένες ενότητες. Μπορείτε να ενεργοποιήσετε άλλες ενότητες στο Αρχική-> Ρυθμίσεις-> σελίδα Ενότητες / Εφαρμογές. DolibarrSetup=Εγκατάσταση ή αναβάθμιση του Dolibarr -InternalUser=Εσωτερικός χρήστης -ExternalUser=Εξωτερικός χρήστης InternalUsers=Εσωτερικοί χρήστες ExternalUsers=Εξωτερικοί χρήστες UserInterface=Διεπαφή χρήστη GUISetup=Εμφάνιση SetupArea=Ρύθμιση -UploadNewTemplate=Μεταφόρτωση νέου(-ων) προτύπου(-ων) +UploadNewTemplate=Μεταφόρτωση νέου προτύπου FormToTestFileUploadForm=Φόρμα για να δοκιμάσετε την μεταφόρτωση αρχείων (ανάλογα με τις ρυθμίσεις) ModuleMustBeEnabled=Η ενότητα/εφαρμογή %s πρέπει να είναι ενεργοποιημένη ModuleIsEnabled=Η ενότητα/εφαρμογή %s έχει ενεργοποιηθεί IfModuleEnabled=Σημείωση: ναι, είναι αποτελεσματική μόνο αν η ενότητα %s είναι ενεργοποιημένη -RemoveLock=Αφαιρέστε/μετονομάστε το αρχείο %s, αν υπάρχει, για να επιτραπεί η χρήση του εργαλείου ενημέρωσης/εγκατάστασης. +RemoveLock=Αφαίρεση/μετονομασία του αρχείου %s, αν υπάρχει, για να επιτραπεί η χρήση του εργαλείου ενημέρωσης/εγκατάστασης. RestoreLock=Επαναφέρετε το αρχείο %s, με δικαίωμα ανάγνωσης μόνο, για να απενεργοποιηθεί οποιαδήποτε χρήση του εργαλείου ενημέρωσης/εγκατάστασης. SecuritySetup=Διαχείριση Ασφάλειας PHPSetup=Ρύθμιση PHP OSSetup=Ρύθμιση λειτουργικού συστήματος SecurityFilesDesc=Καθορίστε εδώ τις επιλογές που σχετίζονται με την ασφαλή μεταφόρτωση αρχείων. ErrorModuleRequirePHPVersion=Λάθος, αυτή η ενότητα απαιτεί έκδοση PHP %s ή μεγαλύτερη -ErrorModuleRequireDolibarrVersion=Λάθος, αυτό το module απαιτεί Dolibarr έκδοση %s ή μεγαλύτερη +ErrorModuleRequireDolibarrVersion=Λάθος, αυτό η ενότητα απαιτεί έκδοση Dolibarr %s ή μεγαλύτερη ErrorDecimalLargerThanAreForbidden=Λάθος, ακρίβεια μεγαλύτερη από %s δεν υποστηρίζεται. DictionarySetup=Ρύθμιση λεξικού Dictionary=Λεξικά @@ -89,10 +87,10 @@ NotAvailableWhenAjaxDisabled=Δεν είναι διαθέσιμο όταν η Aj AllowToSelectProjectFromOtherCompany=Σε έγγραφο τρίτου μέρους, μπορείτε να επιλέξετε ένα έργο συνδεδεμένο με άλλο τρίτο μέρος TimesheetPreventAfterFollowingMonths=Αποτρέψτε την καταγραφή χρόνου μετά τον επόμενο αριθμό μηνών JavascriptDisabled=Η JavaScript είναι απενεργοποιημένη -UsePreviewTabs=Χρήση καρτελών προ επισκόπησης -ShowPreview=Εμφάνιση προ επισκόπησης +UsePreviewTabs=Χρήση καρτελών προεπισκόπησης +ShowPreview=Εμφάνιση προεπισκόπησης ShowHideDetails=Εμφάνιση-Απόκρυψη λεπτομερειών -PreviewNotAvailable=Η προ επισκόπηση δεν είναι διαθέσιμη +PreviewNotAvailable=Η προεπισκόπηση δεν είναι διαθέσιμη ThemeCurrentlyActive=Ενεργό θέμα εμφάνισης MySQLTimeZone=TimeZone MySql (βάση δεδομένων) TZHasNoEffect=Οι ημερομηνίες αποθηκεύονται και επιστρέφονται από τον διακομιστή της βάσης δεδομένων σαν να είχαν διατηρηθεί ως υποβληθείσα συμβολοσειρά. Η ζώνη ώρας ισχύει μόνο όταν χρησιμοποιείται η συνάρτηση UNIX_TIMESTAMP (που δεν πρέπει να χρησιμοποιείται από το Dolibarr, επομένως η βάση δεδομένων TZ δεν θα πρέπει να έχει αποτέλεσμα, ακόμη και αν άλλαξε μετά την εισαγωγή δεδομένων). @@ -109,11 +107,11 @@ NextValueForReplacements=Επόμενη αξία (αντικατάστασης) MustBeLowerThanPHPLimit=Σημείωση: η διαμόρφωση της PHP περιορίζει αυτήν τη στιγμή το μέγιστο μέγεθος αρχείου για μεταφόρτωση σε %s %s, ανεξάρτητα από την τιμή αυτής της παραμέτρου NoMaxSizeByPHPLimit=Σημείωση: Κανένα όριο δεν έχει οριστεί στη διαμόρφωση της PHP MaxSizeForUploadedFiles=Μέγιστο μέγεθος για μεταφόρτωση αρχείων (0 για την απενεργοποίηση μεταφορτώσεων) -UseCaptchaCode=Χρησιμοποιήστε το γραφικό κώδικα (CAPTCHA) στη σελίδα εισόδου +UseCaptchaCode=Χρησιμοποιήστε γραφικό κώδικα (CAPTCHA) στη σελίδα σύνδεσης και σε ορισμένες δημόσιες σελίδες AntiVirusCommand=Πλήρης διαδρομή για την εντολή του antivirus -AntiVirusCommandExample=Παράδειγμα για το ClamAv (απαιτείται το clamav-daemon): / usr / bin / clamdscan
    Παράδειγμα για το ClamWin (πολύ αργό): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe -AntiVirusParam= Περισσότερες παράμετροι στην γραμμή εντολής -AntiVirusParamExample=Παράδειγμα για το ClamAv Daemon: --fdpass
    Παράδειγμα για το ClamWin: --database = "C: \\ Program Files (x86) \\ ClamWin \\ lib" +AntiVirusCommandExample=Παράδειγμα για το ClamAv (απαιτείται το clamav-daemon): / usr/bin/clamdscan
    Παράδειγμα για το ClamWin (πολύ αργό): c: \\ Progra ~ 1\\ ClamWin\\ bin\\clamscan.exe +AntiVirusParam= Περισσότερες παράμετροι στην γραμμή εντολών +AntiVirusParamExample=Παράδειγμα για το ClamAv Daemon: --fdpass
    Παράδειγμα για το ClamWin: --database = "C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Ρύθμιση Λογιστικής ενότητας UserSetup=Ρύθμιση χρήστη MultiCurrencySetup=Ρύθμιση πολλαπλών νομισμάτων @@ -140,8 +138,8 @@ OSTZ=Ζώνη ώρας του λειτουργικού συστήματος το PHPTZ=Ζώνη Ώρας διακομιστή PHP DaylingSavingTime=Η θερινή ώρα (χρήστη) CurrentHour=Ώρα PHP (server) -CurrentSessionTimeOut=Χρονικό όριο περιόδου λειτουργίας τρέχουσας συνοδού -YouCanEditPHPTZ=Για να ορίσετε μια διαφορετική ζώνη ώρας PHP (δεν απαιτείται), μπορείτε να προσπαθήσετε να προσθέσετε ένα αρχείο .htaccess με μια γραμμή όπως αυτή "SetEnv TZ Europe / Paris"\n +CurrentSessionTimeOut=Λήξη τρέχουσας σύνδεσης +YouCanEditPHPTZ=Για να ορίσετε μια διαφορετική ζώνη ώρας PHP (δεν απαιτείται), μπορείτε να προσπαθήσετε να προσθέσετε ένα αρχείο .htaccess με μια γραμμή όπως αυτή "SetEnv TZ Europe/Paris"\n HoursOnThisPageAreOnServerTZ=Προειδοποίηση, σε αντίθεση με άλλες οθόνες, οι ώρες σε αυτήν τη σελίδα δεν βρίσκονται στην τοπική ζώνη ώρας, αλλά στη ζώνη ώρας του διακομιστή. Box=Γραφικό στοιχείο Boxes=Γραφικά στοιχεία @@ -163,7 +161,7 @@ PurgeAreaDesc=Αυτή η σελίδα σάς επιτρέπει να διαγρ PurgeDeleteLogFile=Διαγράψτε τα αρχεία καταγραφής, συμπεριλαμβανομένων αυτών%s που είναι ορισμένα για τη χρήση της ενότητας Syslog (χωρίς κίνδυνο απώλειας δεδομένων) PurgeDeleteTemporaryFiles=Διαγράψτε όλα τα αρχεία καταγραφής και τα προσωρινά αρχεία (χωρίς κίνδυνος απώλειας δεδομένων). Η παράμετρος μπορεί να είναι 'tempfilesold', 'logfiles' ή και τα δύο 'tempfilesold+logfiles'. Σημείωση: Η διαγραφή των προσωρινών αρχείων γίνεται μόνο εάν ο κατάλογος temp δημιουργήθηκε πριν από περισσότερες από 24 ώρες. PurgeDeleteTemporaryFilesShort=Διαγραφή αρχείων καταγραφής και προσωρινών αρχείων (χωρίς κίνδυνο απώλειας δεδομένων) -PurgeDeleteAllFilesInDocumentsDir=Διαγράψτε όλα τα αρχεία στον κατάλογο: %s .
    Αυτό θα διαγράψει όλα τα παραγόμενα έγγραφα που σχετίζονται με στοιχεία (τρίτα μέρη, τιμολόγια κ.λ.π.), αρχεία που έχουν μεταφορτωθεί στη μονάδα ECM, αρχεία από αντίγραφα ασφαλείας βάσεων δεδομένων και προσωρινά αρχεία. +PurgeDeleteAllFilesInDocumentsDir=Διαγράψτε όλα τα αρχεία στον κατάλογο: %s .
    Αυτό θα διαγράψει όλα τα παραγόμενα έγγραφα που σχετίζονται με στοιχεία (τρίτα μέρη, τιμολόγια κ.λ.π.), αρχεία που έχουν μεταφορτωθεί στην ενότητα ECM, αρχεία από αντίγραφα ασφαλείας βάσεων δεδομένων και προσωρινά αρχεία. PurgeRunNow=Εκκαθάριση τώρα PurgeNothingToDelete=Δεν υπάρχει κατάλογος ή αρχείο για διαγραφή. PurgeNDirectoriesDeleted=%s αρχεία ή κατάλογοι που διαγραφήκαν. @@ -202,7 +200,7 @@ AddDropTable=Προσθήκη εντολής DROP TABLE ExportStructure=Δομή NameColumn=Ονόματα Στηλών ExtendedInsert=Εκτεταμένη INSERT -NoLockBeforeInsert=Δεν υπάρχουν εντολές κλειδώματος ασφαλείας γύρω από INSERT +NoLockBeforeInsert=No lock commands around INSERT DelayedInsert=Delayed insert EncodeBinariesInHexa=Κωδικοποίηση δυαδικών δεδομένων σε δεκαεξαδική IgnoreDuplicateRecords=Αγνόηση σφαλμάτων διπλότυπων εγγραφών (INSERT IGNORE) @@ -229,7 +227,7 @@ SeeSetupOfModule=Δείτε στην ρύθμιση της ενότητας %s SetOptionTo=Ορίστε την επιλογή %s σε %s Updated=Ενημερωμένο AchatTelechargement=Αγόρασε / Μεταφόρτωσε -GoModuleSetupArea=Για να αναπτύξετε/εγκαταστήσετε μια νέα ενότητα, μεταβείτε στον τομέα ρύθμισης μονάδας: %s . +GoModuleSetupArea=Για να αναπτύξετε/εγκαταστήσετε μια νέα ενότητα, μεταβείτε στον τομέα ρύθμισης ενοτήτων: %s . DoliStoreDesc=DoliStore, η επίσημη αγορά για εξωτερικές ενότητες Dolibarr ERP/CRM DoliPartnersDesc=Κατάλογος εταιρειών που παρέχουν προσαρμοσμένες ενότητες ή δυνατότητες.
    Σημείωση: δεδομένου ότι το Dolibarr είναι μια εφαρμογή ανοιχτού κώδικα, οποιοσδήποτε έμπειρος στον προγραμματισμό PHP θα πρέπει να ειναι ικανός να αναπτύξει μία ενότητα. WebSiteDesc=Εξωτερικοί ιστότοποι για περισσότερες ενότητες ... @@ -246,7 +244,7 @@ AvailableOnlyIfJavascriptAndAjaxNotDisabled=Διατίθεται μόνο εάν Required=Υποχρεωτικό UsedOnlyWithTypeOption=Χρησιμοποιείται μόνο από κάποια επιλογή της ατζέντας Security=Ασφάλεια -Passwords=Συνθηματικά +Passwords=Κωδικοί πρόσβασης DoNotStoreClearPassword=Κρυπτογράφηση κωδικών πρόσβασης που είναι αποθηκευμένοι στη βάση δεδομένων (ΟΧΙ ως απλό κείμενο). Συνιστάται ανεπιφύλακτα να ενεργοποιήσετε αυτήν την επιλογή. MainDbPasswordFileConfEncrypted=Κρυπτογράφηση κωδικού πρόσβασης βάσης δεδομένων που είναι αποθηκευμένος στο conf.php. Συνιστάται ανεπιφύλακτα να ενεργοποιήσετε αυτήν την επιλογή. InstrucToEncodePass=Για κρυπτογραφημένο κωδικό στο αρχείο conf.php, κάντε αντικατάσταση στη γραμμή
    $dolibarr_main_db_pass="...";
    με
    $dolibarr_main_db_pass="crypted:%s"; @@ -284,22 +282,23 @@ Content=Περιεχόμενο ContentForLines=Περιεχόμενο προς εμφάνιση για κάθε προϊόν ή υπηρεσία (από τη μεταβλητή __ΓΡΑΜΜΕΣ__ Περιεχομένου) NoticePeriod=Περίοδος υποβολής αίτησης NewByMonth=Νέο ανά μήνα -Emails=Ηλεκτρονικά μηνύματα -EMailsSetup=Ρύθμιση ηλεκτρονικού ταχυδρομείου +Emails=Emails +EMailsSetup=Ρύθμιση Email EMailsDesc=Αυτή η σελίδα σας επιτρέπει να ορίσετε τις παραμέτρους η επιλογές για αποστολή email. -EmailSenderProfiles=Προφίλ αποστολέων ηλεκτρονικού ταχυδρομείου -EMailsSenderProfileDesc=Μπορείτε να αφήσετε αυτή την ενότητα κενή. Αν εισάγετε email, εδώ θα προστεθούν στη λίστα πιθανών αποστολέων όταν γράφετε ένα νέο email. +EmailSenderProfiles=Προφίλ αποστολέων Email +EMailsSenderProfileDesc=Μπορείτε να αφήσετε αυτή την ενότητα κενή. Αν εισάγετε email εδώ, θα προστεθούν στη λίστα πιθανών αποστολέων όταν γράφετε ένα νέο email. MAIN_MAIL_SMTP_PORT=Θύρα SMTP / SMTPS (προεπιλεγμένη τιμή στο php.ini: %s ) MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (προεπιλεγμένη τιμή στο php.ini: %s ) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Θύρα SMTP / SMTPS (Δεν έχει οριστεί σε PHP σε συστήματα τύπου Unix) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Δεν έχει οριστεί σε PHP σε συστήματα τύπου Unix) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Θύρα SMTP / SMTPS (Δεν έχει οριστεί στην PHP σε συστήματα τύπου Unix) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Δεν έχει οριστεί στην PHP σε συστήματα τύπου Unix) MAIN_MAIL_EMAIL_FROM=Email αποστολέα για αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου (προεπιλεγμένη τιμή στο php.ini: %s ) +EMailHelpMsgSPFDKIM=Για να αποτρέψετε την ταξινόμηση των email από το Dolibarr ως ανεπιθύμητης αλληλογραφίας, βεβαιωθείτε ότι ο διακομιστής είναι εξουσιοδοτημένος να στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου από αυτήν τη διεύθυνση με διαμόρφωση των SPF και DKIM MAIN_MAIL_ERRORS_TO=Το Email που χρησιμοποιείται για σφάλματα επιστρέφει τα email (με πεδία 'Errors-To' στα απεσταλμένα email) -MAIN_MAIL_AUTOCOPY_TO= Αντιγράψτε (Bcc) όλα τα emails που στάλθηκαν +MAIN_MAIL_AUTOCOPY_TO= Αντιγράψτε (Bcc Κρυφή κοινοποίηση) όλα τα αποσταλμένα email στο MAIN_DISABLE_ALL_MAILS=Απενεργοποιήστε όλες τις αποστολές ηλεκτρονικού ταχυδρομείου (για δοκιμαστικούς σκοπούς ή demos) MAIN_MAIL_FORCE_SENDTO=Στείλτε όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου σε (αντί για πραγματικούς παραλήπτες, για σκοπούς δοκιμής) MAIN_MAIL_ENABLED_USER_DEST_SELECT=Προτείνετε email υπάλληλων σας (εάν έχουν οριστεί) στη λίστα των προκαθορισμένων παραληπτών κατά τη σύνταξη ενός νέου email -MAIN_MAIL_SENDMODE=Μέθοδος αποστολής ηλεκτρονικού ταχυδρομείου +MAIN_MAIL_SENDMODE=Μέθοδος αποστολής Email MAIN_MAIL_SMTPS_ID=Αναγνωριστικό SMTP (αν ο διακομιστής αποστολής απαιτεί έλεγχο ταυτότητας) MAIN_MAIL_SMTPS_PW=Κωδικός πρόσβασης SMTP (εάν ο διακομιστής αποστολής απαιτεί έλεγχο ταυτότητας) MAIN_MAIL_EMAIL_TLS=Χρησιμοποιήστε κρυπτογράφηση TLS (SSL) @@ -317,10 +316,10 @@ UserEmail=Email χρήστη CompanyEmail=Email εταιρείας FeatureNotAvailableOnLinux=Αυτή η λειτουργία δεν είναι διαθέσιμη σε συστήματα τυπου Unix. Δοκιμάστε το πρόγραμμα sendmail τοπικά. FixOnTransifex=Διορθώστε τη μετάφραση στην ηλεκτρονική πλατφόρμα μετάφρασης του Dolibarr -SubmitTranslation=Εάν η μετάφραση για αυτήν τη γλώσσα δεν είναι πλήρης ή εντοπίσετε σφάλματα, μπορείτε να τα διορθώσετε τοπικά με την επεξεργασία αρχείων στον κατάλογο langs / %s και στη συνέχεια να υποβάλετε την αλλαγή σας στο www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=Εάν η μετάφραση για αυτήν τη γλώσσα δεν έχει ολοκληρωθεί ή εντοπίσετε σφάλματα, μπορείτε να τα διορθώσετε τοπικά επεξεργαζόμενοι αρχεία στον κατάλογο langs/%s και να υποβάλετε τροποποιημένα αρχεία στο dolibarr.org/forum ή, εάν είστε προγραμματιστής με ενα PR στο github.com/Dolibarr/dolibarr +SubmitTranslation=Εάν η μετάφραση για αυτήν τη γλώσσα δεν είναι πλήρης ή αν εντοπίσετε σφάλματα, μπορείτε να τα διορθώσετε τοπικά με την επεξεργασία αρχείων στον κατάλογο langs / %s και στη συνέχεια να υποβάλετε την αλλαγή σας στο www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Εάν η μετάφραση για αυτήν τη γλώσσα δεν έχει ολοκληρωθεί ή αν εντοπίσετε σφάλματα, μπορείτε να τα διορθώσετε τοπικά επεξεργαζόμενοι αρχεία στον κατάλογο langs/%s και να υποβάλετε τροποποιημένα αρχεία στο dolibarr.org/forum ή, εάν είστε προγραμματιστής με ενα PR στο github.com/Dolibarr/dolibarr ModuleSetup=Ρύθμιση ενότητας -ModulesSetup=Ρύθμιση ενότητες/εφαρμογές +ModulesSetup=Ρύθμιση ενοτήτων/εφαρμογών ModuleFamilyBase=Σύστημα ModuleFamilyCrm=Διαχείριση Πελατειακών Σχέσεων (CRM) ModuleFamilySrm=Διαχείριση σχέσεων προμηθευτών (VRM) @@ -347,7 +346,7 @@ UnpackPackageInModulesRoot=Για να αναπτύξετε/εγκαταστήσ SetupIsReadyForUse=Η εγκατάσταση της ενότητας ολοκληρώθηκε. Ωστόσο, πρέπει να ενεργοποιήσετε και να ρυθμίσετε την ενότητα στην εφαρμογή σας μεταβαίνοντας στη σελίδα: %s . NotExistsDirect=Ο εναλλακτικός ριζικός κατάλογος δεν έχει οριστεί σε έναν υπάρχοντα κατάλογο.
    InfDirAlt=Από την έκδοση 3 και μετά, είναι δυνατό να οριστεί ένας εναλλακτικός ριζικός κατάλογος. Αυτό σας επιτρέπει να αποθηκεύετε, σε έναν αποκλειστικό κατάλογο, πρόσθετα και προσαρμοσμένα πρότυπα.
    Απλώς δημιουργήστε έναν κατάλογο στη ρίζα του Dolibarr (π.χ.: custom).
    -InfDirExample=
    Στη συνέχεια καταχωρίστε τα παρακάτω στο αρχείο conf.php
    $ dolibarr_main_url_root_alt = '/ custom'
    $ dolibarr_main_document_root_alt = '/ path / του / Dolibarr / htdocs / custom'
    Αν αυτές οι γραμμές υπάρχουν και "σχολιασμένες" εχουν ενα "#" στην αρχή, για να ενεργοποιηθούν , απλώς καταργήστε το σχόλιο αφαιρώντας τον χαρακτήρα "#". +InfDirExample=
    Στη συνέχεια καταχωρίστε τα στο αρχείο conf.php
    $ dolibarr_main_url_root_alt = '/custom'
    $ dolibarr_main_document_root_alt = '/path/του/Dolibarr/htdocs/custom'
    Αν αυτές οι γραμμές ειναι "σχολιασμένες" έχουν δηλαδή ενα "#" στην αρχή, για να ενεργοποιηθούν , απλώς καταργήστε το σχόλιο αφαιρώντας τον χαρακτήρα "#". YouCanSubmitFile=Μπορείτε να ανεβάσετε το αρχείο .zip του πακέτου ενότητας από εδώ: CurrentVersion=Έκδοση Dolibarr CallUpdatePage=Περιηγηθείτε στη σελίδα που ενημερώνει τη δομή και τα δεδομένα της βάσης δεδομένων: %s. @@ -361,11 +360,11 @@ WithCounter=Διαχειριστείτε έναν μετρητή GenericMaskCodes=Μπορείτε να εισάγετε οποιαδήποτε μάσκα αρίθμησης. Σε αυτήν τη μάσκα, μπορούν να χρησιμοποιηθούν οι ακόλουθες ετικέτες:
    {000000} αντιστοιχεί σε έναν αριθμό που θα αυξάνεται σε κάθε %s. Εισάγετε τόσα μηδενικά όσο το επιθυμητό μήκος του μετρητή. Ο μετρητής θα συμπληρώνεται με μηδενικά από τα αριστερά για να υπάρχουν τόσα μηδενικά όσα η μάσκα.
    {000000+000} ίδια με την προηγούμενη αλλά εφαρμόζεται μια μετατόπιση που αντιστοιχεί στον αριθμό στα δεξιά του πρόσημου + ξεκινώντας από το πρώτο %s.
    {000000@x} ίδια με την προηγούμενη, αλλά ο μετρητής μηδενίζεται όταν φτάσει ο μήνας x (x μεταξύ 1 και 12, ή 0 για να χρησιμοποιήσετε τους πρώτους μήνες του οικονομικού έτους που ορίζονται στην παραμετροποίηση σας, η 99 για να μηδενίζεται κάθε μήνα). Εάν χρησιμοποιείται αυτή η επιλογή και το x είναι 2 ή μεγαλύτερο, τότε απαιτείται επίσης η ακολουθία {yy}{mm} ή {yyyy}{mm}.
    {dd} ημέρα (01 έως 31).
    {mm} μήνας (01 έως 12).
    {εε} , {yyyy} ή {ε}έτος με χρήση 2, 4 ή 1 αριθμού
    GenericMaskCodes2= {cccc} ο κωδικός πελάτη σε n χαρακτήρες
    {cccc000}ο κωδικός πελάτη σε n χαρακτήρες ακολουθείται από ένα μετρητή αποκλειστικά για τον πελάτη. Αυτός ο μετρητής που είναι αφιερωμένος στον πελάτη επαναφέρεται ταυτόχρονα με τον καθολικό μετρητή.
    {tttt} Ο κωδικός τύπου τρίτου μέρους σε n χαρακτήρες (βλ. μενού Αρχική - Ρυθμίσεις - Λεξικό - Τύποι τρίτων). Εάν προσθέσετε αυτήν την ετικέτα, ο μετρητής θα είναι διαφορετικός για κάθε τύπο τρίτου μέρους.
    GenericMaskCodes3=Όλοι οι άλλοι χαρακτήρες στην μάσκα θα παραμείνουν ίδιοι.
    Κενά διαστήματα δεν επιτρέπονται.
    -GenericMaskCodes3EAN=Όλοι οι άλλοι χαρακτήρες στη μάσκα θα παραμείνουν άθικτοι (εκτός από το * ή το ? στην 13η θέση στο EAN13).
    Δεν επιτρέπονται κενά.
    Στο EAN13, ο τελευταίος χαρακτήρας μετά την τελευταία } στην 13η θέση θα πρέπει να είναι * ή ? . Θα αντικατασταθεί από το κλειδί υπολογισμού.
    +GenericMaskCodes3EAN=Όλοι οι άλλοι χαρακτήρες στη μάσκα θα παραμείνουν ίδιοι (εκτός από το * ή το ? στην 13η θέση στο EAN13).
    Δεν επιτρέπονται κενά.
    Στο EAN13, ο τελευταίος χαρακτήρας μετά την τελευταία } στην 13η θέση θα πρέπει να είναι * ή ? . Θα αντικατασταθεί από το κλειδί υπολογισμού.
    GenericMaskCodes4a=Παράδειγμα για το 99ο %s του τρίτου μέρους TheCompany, με ημερομηνία 31-01-2007:
    GenericMaskCodes4b=Παράδειγμα του τρίτου μέρους που δημιουργήθηκε στις 01-03-2007:
    GenericMaskCodes4c=Παράδειγμα του προϊόντος που δημιουργήθηκε στις 01-03-2007:
    -GenericMaskCodes5= ABC{yy} {mm}-{000000} θα δώσει ABC0701-000099
    {0000+100@1} -ZZZ / {dd}/XXX θα δώσει 0199-ΖΖΖ/31/XXX
    IN{yy}{dd}-{0000}-{t} θα δώσει το IN0701-0099-AΑν είναι ο τύπος της εταιρείας ειναι 'Responsable Inscripto' με κωδικό για τύπο που ειναι 'A_RI' +GenericMaskCodes5= ABC{yy} {mm}-{000000} θα δώσει ABC0701-000099
    {0000+100@1} -ZZZ / {dd}/XXX θα δώσει 0199-ΖΖΖ/31/XXX
    IN{yy}{dd}-{0000}-{t} θα δώσει το IN0701-0099-AΑν ο τύπος της εταιρείας ειναι 'Responsable Inscripto' με κωδικό για τύπο που ειναι 'A_RI' GenericNumRefModelDesc=Επιστρέφει έναν παραμετροποιήσημο αριθμό σύμφωνα με μία ορισμένη μάσκα. ServerAvailableOnIPOrPort=Ο διακομιστής είναι διαθέσιμος στην διεύθυνση %s στην θύρα %s ServerNotAvailableOnIPOrPort=Ο διακομιστής δεν είναι διαθέσιμος στην διεύθυνση %s στην θύρα %s @@ -381,7 +380,7 @@ UseACacheDelay= Καθυστέρηση για την ανταπόκριση εξ DisableLinkToHelpCenter=Απόκρυψη του συνδέσμου " Χρειάζεστε βοήθεια ή υποστήριξη " στη σελίδα σύνδεσης DisableLinkToHelp=Απόκρυψη του συνδέσμου προς την ηλεκτρονική βοήθεια " %s " AddCRIfTooLong=Δεν υπάρχει αυτόματη αναδίπλωση κειμένου, το κείμενο που είναι πολύ μεγάλο δεν θα εμφανιστεί στα έγγραφα. Παρακαλώ προσθέστε επιστροφές μεταφοράς στην περιοχή κειμένου, αν χρειαστεί. -ConfirmPurge=Είστε βέβαιοι ότι θέλετε να εκτελέσετε αυτή την εκκαθάριση;
    Αυτό θα διαγράψει οριστικά όλα τα αρχεία δεδομένων σας χωρίς τρόπο να τα επαναφέρετε (αρχεία ECM, συνημμένα αρχεία ...). +ConfirmPurge=Είστε σίγουροι ότι θέλετε να εκτελέσετε αυτή την εκκαθάριση;
    Αυτό θα διαγράψει οριστικά όλα τα αρχεία δεδομένων σας χωρίς τρόπο να τα επαναφέρετε (αρχεία ECM, συνημμένα αρχεία ...). MinLength=Ελάχιστο μήκος LanguageFilesCachedIntoShmopSharedMemory=Τα αρχεία τύπου .lang έχουν φορτωθεί στην κοινόχρηστη μνήμη LanguageFile=Αρχείο γλώσσας @@ -418,7 +417,7 @@ HideDetailsOnPDF=Απόκρυψη λεπτομερειών γραμμών προ PlaceCustomerAddressToIsoLocation=Χρησιμοποιήστε τη γαλλική τυπική θέση (La Poste) για τη θέση της διεύθυνσης πελατών Library=Βιβλιοθήκη UrlGenerationParameters=Παράμετροι για δημιουργία ασφαλών URL -SecurityTokenIsUnique=Χρησιμοποιήστε ένα μοναδικό Security Token για κάθε διεύθυνση URL +SecurityTokenIsUnique=Χρησιμοποιήστε μια μοναδική παράμετρο κλειδιού ασφαλείας για κάθε σύνδεσμο EnterRefToBuildUrl=Εισαγάγετε αναφορά για το αντικείμενο %s GetSecuredUrl=Πάρτε υπολογιζόμενο URL ButtonHideUnauthorized=Απόκρυψη κουμπιών μη εξουσιοδοτημένων ενεργειών και για εσωτερικούς χρήστες (διαφορετικά απλώς απενεργοποιημένα ) @@ -429,18 +428,20 @@ MassConvert=Ξεκινήστε τη μαζική μετατροπή PriceFormatInCurrentLanguage=Μορφή τιμής στην τρέχουσα γλώσσα String=String String1Line=Συμβολοσειρά (1 γραμμή) -TextLong=Long text +TextLong=Μεγάλο κείμενο TextLongNLines=Μεγάλο κείμενο (n γραμμές) -HtmlText=Html κείμενο -Int=Integer +HtmlText=Κείμενο HTML +Int=Ακέραιος αριθμός Float=Float DateAndTime=Ημερομηνία και ώρα Unique=Μοναδικό Boolean=Boolean (ένα πλαίσιο ελέγχου) ExtrafieldPhone = Τηλέφωνο ExtrafieldPrice = Τιμή +ExtrafieldPriceWithCurrency=Τιμή με νόμισμα ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Επιλογή από λίστα ExtrafieldSelectList = Επιλογή από πίνακα ExtrafieldSeparator=Διαχωριστής (όχι πεδίο) @@ -450,17 +451,17 @@ ExtrafieldCheckBox=Πλαίσια ελέγχου ExtrafieldCheckBoxFromList=Πλαίσια ελέγχου από τον πίνακα ExtrafieldLink=Σύνδεσμος με ένα αντικείμενο ComputedFormula=Υπολογισμένο πεδίο -ComputedFormulaDesc=Μπορείτε να εισαγάγετε εδώ έναν τύπο χρησιμοποιώντας άλλες ιδιότητες αντικειμένου ή οποιαδήποτε κωδικοποίηση PHP για να λάβετε μια δυναμική υπολογισμένη τιμή. Μπορείτε να χρησιμοποιήσετε οποιονδήποτε τύπο συμβατό με PHP, συμπεριλαμβανομένου του "?" τελεστής συνθηκών και ακόλουθο καθολικό αντικείμενο: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
    ΠΡΟΕΙΔΟΠΟΙΗΣΗ : Μόνο ορισμένες ιδιότητες του αντικειμένου $ ενδέχεται να είναι διαθέσιμες. Εάν χρειάζεστε ιδιότητες που δεν έχουν φορτωθεί, απλώς φέρετε στον εαυτό σας το αντικείμενο στον τύπο σας, όπως στο δεύτερο παράδειγμα.
    Η χρήση ενός υπολογισμένου πεδίου σημαίνει ότι δεν μπορείτε να εισαγάγετε στον εαυτό σας καμία τιμή από τη διεπαφή. Επίσης, εάν υπάρχει σφάλμα σύνταξης, ο τύπος ενδέχεται να μην επιστρέψει τίποτα.

    Παράδειγμα τύπου:
    $ αντικείμενο-> id < 10 ? round($object-> id / 2, 2): ($ αντικείμενο-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, )

    Παράδειγμα επαναφόρτωσης αντικειμένου
    (($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetchNoCompute ($ obj-> id? $ obj-> id - $ $ > rowid: $ αντικείμενο-> id))> 0)); $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

    Άλλο παράδειγμα φόρμουλας για την επιβολή φόρτου του αντικειμένου και του γονικού αντικειμένου:
    (($ reloadedobj ) && ($ reloadedobj-> fetchNoCompute ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($ secondloadedobj-> fetchNoCompute ($ reloadedobj-> fk_project)> 0)); $ secondloadedobj-> ref: "Το γονικό έργο δεν βρέθηκε" -Computedpersistent=Αποθηκεύστε το υπολογισμένο πεδίο -ComputedpersistentDesc=Τα υπολογισμένα επιπλέον πεδία θα αποθηκευτούν στη βάση δεδομένων, ωστόσο, η τιμή θα υπολογιστεί εκ νέου μόνο όταν αλλάξει το αντικείμενο αυτού του πεδίου. Εάν το υπολογιζόμενο πεδίο εξαρτάται από άλλα αντικείμενα ή παγκόσμια δεδομένα, αυτή η τιμή μπορεί να είναι λάθος! -ExtrafieldParamHelpPassword=Αφήνοντας αυτό το πεδίο κενό σημαίνει ότι αυτή η τιμή θα αποθηκευτεί χωρίς κρυπτογράφηση (το πεδίο πρέπει να κρυφτεί μόνο με το αστέρι στην οθόνη).
    Ρυθμίστε 'auto' για να χρησιμοποιήσετε τον προεπιλεγμένο κανόνα κρυπτογράφησης για να αποθηκεύσετε τον κωδικό πρόσβασης στη βάση δεδομένων (τότε η ανάγνωση της τιμής θα είναι μόνο ο κατακερματισμός, κανένας τρόπος για να ανακτήσετε την αρχική τιμή) -ExtrafieldParamHelpselect=Η λίστα των τιμών πρέπει να είναι γραμμές με βασικό σχήμα, key,value (όπου το key δεν μπορεί να είναι «0»)

    για παράδειγμα:
    1, value1
    2, value2
    code3, value3
    ...

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη συμπληρωματική λίστα χαρακτηριστικών:
    1, value1 | options_parent_list_code: parent_key
    2, value2 | options_parent_list_code: parent_key

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη λίστα:
    1, value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Η λίστα των τιμών πρέπει να είναι γραμμές με βασικό σχήμα, key,value (όπου το key δεν μπορεί να είναι «0»)

    για παράδειγμα:
    1,value1
    2,value2
    3, value3
    ... +ComputedFormulaDesc=Μπορείτε να εισαγάγετε εδώ έναν τύπο χρησιμοποιώντας άλλες ιδιότητες αντικειμένου ή οποιαδήποτε κωδικοποίηση PHP για να λάβετε μια δυναμικά υπολογισμένη τιμή. Μπορείτε να χρησιμοποιήσετε οποιουσδήποτε τύπους συμβατούς με PHP, συμπεριλαμβανομένου του τελεστή συνθήκης "?" και το ακόλουθο καθολικό αντικείμενο: $db, $conf, $langs, $mysoc, $user, $object .
    ΠΡΟΕΙΔΟΠΟΙΗΣΗ : Μόνο ορισμένες ιδιότητες του $object ενδέχεται να είναι διαθέσιμες. Εάν χρειάζεστε ιδιότητες που δεν έχουν φορτωθεί, απλώς συμπεριλάβετε το αντικείμενο στον τύπο σας όπως στο δεύτερο παράδειγμα.
    Η χρήση ενός υπολογιστικού πεδίου σημαίνει ότι δεν μπορείτε να εισαγάγετε καμία τιμή από τη διεπαφή. Επίσης, εάν υπάρχει συντακτικό σφάλμα, ο τύπος ενδέχεται να μην επιστρέψει τίποτα.

    Παράδειγμα τύπου:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Παράδειγμα για επαναφόρτωση του αντικειμένου
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Άλλο παράδειγμα τύπου για την επιβολή φόρτωσης του αντικειμένου και του γονικού του αντικειμένου:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' +Computedpersistent=Αποθήκευση υπολογισμένου πεδίου +ComputedpersistentDesc=Τα υπολογισμένα επιπλέον πεδία θα αποθηκευτούν στη βάση δεδομένων, ωστόσο, η τιμή θα επανυπολογιστεί μόνο όταν αλλάξει το αντικείμενο αυτού του πεδίου. Εάν το υπολογισμένο πεδίο εξαρτάται από άλλα αντικείμενα ή καθολικά δεδομένα, αυτή η τιμή μπορεί να είναι λανθασμένη!! +ExtrafieldParamHelpPassword=Αφήνοντας αυτό το πεδίο κενό σημαίνει ότι αυτή η τιμή θα αποθηκευτεί χωρίς κρυπτογράφηση (το πεδίο πρέπει να είναι κρυμμένο μόνο από αστεράκια στην οθόνη).
    Ρυθμίστε σε 'auto' για να χρησιμοποιήσετε τον προεπιλεγμένο κανόνα κρυπτογράφησης και να αποθηκεύσετε τον κωδικό πρόσβασης στη βάση δεδομένων (τότε θα είναι αναγνώσιμο μόνο το hash της τιμής και δεν υπάρχει κανένας τρόπος για να ανακτήσετε την αρχική τιμή) +ExtrafieldParamHelpselect=Η λίστα των τιμών πρέπει να είναι γραμμές με βασική μορφή, key,value (όπου το key δεν μπορεί να είναι «0»)

    για παράδειγμα:
    1, value1
    2, value2
    code3, value3
    ...

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη συμπληρωματική λίστα χαρακτηριστικών:
    1, value1 | options_parent_list_code: parent_key
    2, value2 | options_parent_list_code: parent_key

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη λίστα:
    1, value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Η λίστα των τιμών πρέπει να είναι γραμμές με βασική μορφή, key,value (όπου το key δεν μπορεί να είναι «0»)

    για παράδειγμα:
    1,value1
    2,value2
    3, value3
    ... ExtrafieldParamHelpradio=Η λίστα των τιμών πρέπει να είναι γραμμές με βασικό σχήμα, key,value (όπου το key δεν μπορεί να είναι «0»)

    για παράδειγμα:
    1,value1
    2,value2
    3, value3
    ... ExtrafieldParamHelpsellist=Η λίστα τιμών προέρχεται από έναν πίνακα
    Σύνταξη: table_name:label_field:id_field::filtersql
    Παράδειγμα: c_typent:libelle:id::filtersql

    - id_field ειναι οπωσδήποτε ένα primary int key
    - filtersql is a SQL condition.Μπορεί να είναι μια απλή δοκιμή (π.χ. active=1) για να εμφανιστεί μόνο η ενεργή τιμή
    Μπορείτε επίσης να χρησιμοποιήσετε το $ID$ στο φίλτρο που είναι το τρέχον αναγνωριστικό του τρέχοντος αντικειμένου
    Για να χρησιμοποιήσετε ένα SELECT στο φίλτρο χρησιμοποιήστε τη λέξη-κλειδί $SEL$ για την παράκαμψη προστασίας anti-injection.
    εάν θέλετε να φιλτράρετε σε extrafields, χρησιμοποιήστε τη σύνταξη extra.fieldcode=... (όπου ο κωδικός πεδίου είναι ο κωδικός του extrafield)

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη συμπληρωματική λίστα χαρακτηριστικών:
    c_typent:libelle:id:options_parent_list_code|parent_column: φίλτρο

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη:
    c_typent: Libelle: id:parent_list_code |parent_column:filter ExtrafieldParamHelpchkbxlst=Η λίστα τιμών προέρχεται από έναν πίνακα
    Σύνταξη: table_name:label_field:id_field::filtersql
    Παράδειγμα: c_typent:libelle:id::filtersql

    το φίλτρο μπορεί να είναι μια απλή δοκιμή (π.χ. active=1) για να εμφανιστεί μόνο η ενεργή τιμή
    Μπορείτε επίσης να χρησιμοποιήσετε το $ID$ στο φίλτρο που είναι το τρέχον αναγνωριστικό του τρέχοντος αντικειμένου
    Για να κάνετε SELECT στο φίλτρο χρησιμοποιήστε το $SEL$
    εάν θέλετε να φιλτράρετε σε extrafields, χρησιμοποιήστε τη σύνταξη extra.fieldcode=... (όπου ο κωδικός πεδίου είναι ο κωδικός του extrafield)

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη συμπληρωματική λίστα:
    c_typent: Libelle: id: options_ parent_list_code|parent_column:filter

    Για να μπορεί η λίστα να ειναι εξαρτώμενη από μια άλλη:
    c_typent: libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parameters must be ObjectName:ClasspathSyntax:
    ObjectName:Classpath -ExtrafieldParamHelpSeparator=Κρατήστε κενό για έναν απλό διαχωριστή
    Ρυθμίστε το σε 1 για έναν διαχωριστή που αναδιπλώνεται (ανοίγει από προεπιλογή για νέα σύνοδο και στη συνέχεια διατηρείται η κατάσταση για κάθε περίοδο λειτουργίας χρήστη)
    Ρυθμίστε αυτό σε 2 για ένα πτυσσόμενο διαχωριστικό (συρρικνώνεται από προεπιλογή για νέα συνεδρία, τότε η κατάσταση διατηρείται για κάθε συνεδρία χρήστη) +ExtrafieldParamHelpSeparator=Διατήρηση κενού για ένα απλό διαχωριστικό
    Ορίστε το σε 1 για ένα διαχωριστικό που συμπτύσσεται (ανοιχτό από προεπιλογή για νέα περίοδο λειτουργίας, μετά διατηρείται η κατάσταση για κάθε συνεδρία χρήστη)
    Ορίστε το σε 2 για ένα διαχωριστικό που συμπτύσσεται (συμπτυγμένο από προεπιλογή και στη συνέχεια για νέα περίοδο λειτουργίας, η κατάσταση διατηρείται για κάθε συνεδρία χρήστη) LibraryToBuildPDF=Βιβλιοθήκη ενεργοποίησης δημιουργίας PDF LocalTaxDesc=Ορισμένες χώρες ενδέχεται να επιβάλλουν δύο ή τρεις φόρους σε κάθε γραμμή τιμολογίων. Εάν συμβαίνει αυτό, επιλέξτε τον τύπο για τον δεύτερο και τον τρίτο φόρο και τον συντελεστή του. Πιθανοί τύποι είναι:
    1: επιβάλλεται τοπικός φόρος για προϊόντα και υπηρεσίες χωρίς ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό χωρίς φόρο)
    2: ο τοπικός φόρος ισχύει για προϊόντα και υπηρεσίες συμπεριλαμβανομένου του ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό + τον κύριο φόρο)
    3:Ισχύει τοπικός φόρος σε προϊόντα χωρίς ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό χωρίς ΦΠΑ)
    4: Ισχύει τοπικός φόρος για προϊόντα συμπεριλαμβανομένου ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό + κύριος ΦΠΑ)
    5: Ο τοπικός φόρος ισχύει για υπηρεσίες χωρίς ΦΠΑ (υπολογίζεται ο τοπικός φόρος επί του ποσού χωρίς φόρο)
    6: τοπικός φόρος ισχύει για υπηρεσίες συμπεριλαμβανομένου του ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό + φόρο) SMS=SMS @@ -468,16 +469,16 @@ LinkToTestClickToDial=Εισάγετε έναν τηλεφωνικό αριθμ RefreshPhoneLink=Ανανέωση συνδέσμου LinkToTest=Δημιουργήθηκε σύνδεσμος για τον χρήστη %s (κάντε κλικ στον αριθμό τηλεφώνου για να τον δοκιμάσετε) KeepEmptyToUseDefault=Αφήστε κενό για να χρησιμοποιήσετε την προεπιλεγμένη τιμή -KeepThisEmptyInMostCases=Στις περισσότερες περιπτώσεις, μπορείτε να διατηρήσετε αυτό το πεδίο ελεύθερο. +KeepThisEmptyInMostCases=Στις περισσότερες περιπτώσεις, μπορείτε να αφήσετε αυτό το πεδίο κενό. DefaultLink=Προεπιλεγμένος σύνδεσμος SetAsDefault=Ορισμός ως προεπιλογή ValueOverwrittenByUserSetup=Προσοχή, αυτή η τιμή μπορεί να αντικατασταθεί από επιλογή του χρήστη (ο κάθε χρήστης μπορεί να κάνει τον δικό του σύνδεσμο clicktodial) ExternalModule=Εξωτερική ενότητα InstalledInto=Εγκαταστάθηκε στον κατάλογο %s -BarcodeInitForThirdparties=Μαζική έναρξη γραμμικού κώδικα για Τρίτα Μέρη +BarcodeInitForThirdparties=Μαζική έναρξη γραμμικού κώδικα για Πελάτες/Προμηθευτές BarcodeInitForProductsOrServices=Μαζική έναρξη ή επαναφορά barcode για προϊόντα ή υπηρεσίες CurrentlyNWithoutBarCode=Επί του παρόντος, έχετε %s εγγραφές %s %s χωρίς barcode. -InitEmptyBarCode=Τιμή έναρξης για τις επόμενες %sκενές εγγραφές +InitEmptyBarCode=Τιμή έναρξης για τους %s κενούς γραμμικούς κώδικες EraseAllCurrentBarCode=Διαγράψτε όλες τις τρέχουσες τιμές barcode ConfirmEraseAllCurrentBarCode=Είστε σίγουροι ότι θέλετε να διαγράψετε όλες τις τρέχουσες τιμές barcode; AllBarcodeReset=Όλες οι τιμές barcode έχουν αφαιρεθεί @@ -486,25 +487,26 @@ EnableFileCache=Ενεργοποιήστε την προσωρινή μνήμη ShowDetailsInPDFPageFoot=Προσθέστε περισσότερες λεπτομέρειες στο υποσέλιδο, όπως διεύθυνση εταιρείας ή ονόματα διαχειριστών (επιπλέον των επαγγελματικών ταυτοτήτων, του εταιρικού κεφαλαίου και του ΑΦΜ). NoDetails=Δεν υπάρχουν επιπλέον λεπτομέρειες στο υποσέλιδο DisplayCompanyInfo=Εμφάνιση διεύθυνσης επιχείρησης -DisplayCompanyManagers=Εμφάνιση ονόματος διαχειριστή -DisplayCompanyInfoAndManagers=Εμφάνιση της διεύθυνσης της εταιρείας και ονόματα διαχειριστή +DisplayCompanyManagers=Εμφάνιση ονομάτων διαχειριστών +DisplayCompanyInfoAndManagers=Εμφάνιση διεύθυνσης εταιρείας και ονομάτων διαχειριστών EnableAndSetupModuleCron=Αν θέλετε αυτό το επαναλαμβανόμενο τιμολόγιο να παράγεται αυτόματα, η ενότητα * %s * πρέπει να ενεργοποιηθεί και να ρυθμιστεί σωστά. Διαφορετικά, η δημιουργία τιμολογίων πρέπει να γίνεται χειροκίνητα από αυτό το πρότυπο χρησιμοποιώντας το κουμπί * Δημιουργία *. Λάβετε υπόψη ότι ακόμη και αν έχετε ενεργοποιήσει την αυτόματη παραγωγή, μπορείτε ακόμα να ξεκινήσετε με ασφάλεια τη χειροκίνητη παραγωγή. Η δημιουργία αντιγράφων για την ίδια περίοδο δεν είναι δυνατή. ModuleCompanyCodeCustomerAquarium=%s που ακολουθείται από τον κωδικό πελάτη για έναν κωδικό λογιστικής πελάτη ModuleCompanyCodeSupplierAquarium=%s που ακολουθείται από τον κωδικό προμηθευτή για έναν κωδικό λογιστικής προμηθευτή -ModuleCompanyCodePanicum=Επιστρέψτε έναν κενό κωδικό λογιστικής. +ModuleCompanyCodePanicum=Επιστρέφει έναν κενό κωδικό λογιστικής. ModuleCompanyCodeDigitaria=Επιστρέφει έναν σύνθετο λογιστικό κώδικα σύμφωνα με το όνομα του τρίτου μέρους. Ο κώδικας αποτελείται από ένα πρόθεμα που μπορεί να οριστεί στην πρώτη θέση, ακολουθούμενο από τον αριθμό των χαρακτήρων που ορίζονται στον κώδικα τρίτου μέρους. -ModuleCompanyCodeCustomerDigitaria=%s που ακολουθείται από το αποκομμένο όνομα πελάτη από τον αριθμό χαρακτήρων: %s για τον κωδικό λογιστικής πελάτη. -ModuleCompanyCodeSupplierDigitaria=%s που ακολουθείται από το αποκομμένο όνομα προμηθευτή με τον αριθμό χαρακτήρων: %s για τον προμηθευτή λογιστικό κωδικό. -Use3StepsApproval=Από προεπιλογή, οι Εντολές Αγοράς πρέπει να δημιουργηθούν και να εγκριθούν από 2 διαφορετικούς χρήστες (ένα βήμα / χρήστης για δημιουργία και ένα βήμα / χρήστης για έγκριση). Σημειώστε ότι εάν ο χρήστης έχει τόσο άδεια να δημιουργήσει και να εγκρίνει, ένα βήμα / χρήστης θα είναι αρκετό) . Μπορείτε να ζητήσετε με αυτή την επιλογή να εισαγάγετε ένα τρίτο βήμα / έγκριση του χρήστη, εάν το ποσό είναι υψηλότερο από μια ειδική τιμή (ώστε να είναι απαραίτητα 3 βήματα: 1 = επικύρωση, 2 = πρώτη έγκριση και 3 = δεύτερη έγκριση, εάν το ποσό είναι αρκετό).
    Ρυθμίστε αυτό το κενό, εάν είναι αρκετή μία έγκριση (2 βήματα), αλλάξτε τη τιμή σε πολύ χαμηλή τιμή (0,1) εάν απαιτείται πάντα μια δεύτερη έγκριση (3 βήματα). +ModuleCompanyCodeCustomerDigitaria=%s που ακολουθείται από το κομμένο όνομα πελάτη από τον αριθμό χαρακτήρων: %s για τον κωδικό λογιστικής πελάτη. +ModuleCompanyCodeSupplierDigitaria=%s που ακολουθείται από το κομμένο όνομα προμηθευτή με τον αριθμό χαρακτήρων: %s για τον κωδικό λογιστικής προμηθευτή. +Use3StepsApproval=Από προεπιλογή, οι παραγγελίες αγοράς πρέπει να δημιουργούνται και να εγκρίνονται από 2 διαφορετικούς χρήστες (ένα χρήστη για δημιουργία και ένα χρήστη για έγκριση. Λάβετε υπόψη ότι εάν ο χρήστης έχει δικαιώματα δημιουργίας και έγκρισης, ένας χρήστης αρκεί) . Μπορείτε να ζητήσετε με αυτήν την επιλογή να εισάγετε έγκριση ενός τρίτου χρήστη, εάν το ποσό είναι υψηλότερο από μια συγκεκριμένη τιμή (άρα θα χρειαστούν 3 βήματα: 1=επικύρωση, 2=πρώτη έγκριση και 3=δεύτερη έγκριση εάν το ποσό είναι υψηλό).
    Αφήστε το κενό εάν μια έγκριση (2 βήματα) είναι αρκετή, Ενώ αν πάντα απαιτείται μια δεύτερη έγκριση (3 βήματα ορίστε την σε πολύ χαμηλή τιμή (0,1). UseDoubleApproval=Χρησιμοποιήστε μια έγκριση 3 βημάτων όταν το ποσό (χωρίς φόρο) είναι υψηλότερο από... WarningPHPMail=ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η ρύθμιση για την αποστολή email από την εφαρμογή χρησιμοποιεί την προεπιλεγμένη γενική ρύθμιση. Συχνά είναι καλύτερο να ρυθμίζετε τα εξερχόμενα email για να χρησιμοποιείτε τον διακομιστή email του παρόχου υπηρεσιών email σας αντί της προεπιλεγμένης ρύθμισης για διάφορους λόγους: WarningPHPMailA=- Η χρήση του διακομιστή του παρόχου υπηρεσιών email αυξάνει την αξιοπιστία του email σας, επομένως αυξάνει την πιθανότητα παράδοσης των μηνυμάτων σας χωρίς να επισημαίνονται ως SPAM WarningPHPMailB=- Ορισμένοι πάροχοι υπηρεσιών ηλεκτρονικού ταχυδρομείου (όπως το Yahoo) δεν σας επιτρέπουν να στείλετε ένα email από άλλο διακομιστή εκτός από τον δικό τους. Η τρέχουσα ρύθμισή σας, χρησιμοποιεί τον διακομιστή της εφαρμογής για την αποστολή email και όχι τον διακομιστή του παρόχου email σας, επομένως ορισμένοι παραλήπτες (αυτοί που είναι συμβατοί με το περιοριστικό πρωτόκολλο DMARC), θα ρωτήσουν τον πάροχο email σας εάν μπορούν να δεχτούν το email σας και ορισμένοι πάροχοι email (όπως το Yahoo) μπορεί να απαντήσουν "όχι" επειδή ο διακομιστής δεν είναι δικός τους, επομένως καποια από τα αποσταλμένα email σας ενδέχεται να μην γίνονται δεκτά για παράδοση (προσέξτε επίσης το όριο αποστολής του παρόχου email σας). WarningPHPMailC=- Η χρήση του διακομιστή SMTP του δικού σας Παρόχου Υπηρεσιών Email για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου είναι επίσης χρήσιμη καθώς όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται από την εφαρμογή θα αποθηκεύονται και στον κατάλογο "Απεσταλμένα" του γραμματοκιβωτίου σας. -WarningPHPMailD=Επίσης, συνιστάται λοιπόν η αλλαγή της μεθόδου αποστολής e-mail στην τιμή "SMTP". Εάν θέλετε πραγματικά να διατηρήσετε την προεπιλεγμένη μέθοδο "PHP" για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, απλώς αγνοήστε αυτήν την προειδοποίηση ή καταργήστε την, ορίζοντας τη σταθερά MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP σε 1 από το μενού Αρχική - Ρυθμίσεις - Άλλες Ρυθμίσεις. +WarningPHPMailD=Επομένως, συνιστάται η αλλαγή της μεθόδου αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου στην τιμή "SMTP". +WarningPHPMailDbis=Εάν θέλετε πραγματικά να διατηρήσετε την προεπιλεγμένη μέθοδο "PHP" για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, απλώς αγνοήστε αυτήν την προειδοποίηση ή αφαιρέστε την %sκάνοντας κλικ εδώ%s. WarningPHPMail2=Εάν ο πάροχος σας SMTP email χρειάζεται να περιορίσει το πρόγραμμα-πελάτη email σε ορισμένες διευθύνσεις IP (σπάνια), αυτή είναι η διεύθυνση IP του mail user agent (MUA) για την εφαρμογή σας ERP CRM: %s . WarningPHPMailSPF=Εάν το domain name στη διεύθυνση email σας προστατεύεται από μια εγγραφή SPF (ρωτήστε τον καταχωρητή του domain name σας), πρέπει να προσθέσετε τις ακόλουθες IP στην εγγραφή SPF του DNS του domain σας: %s. -ActualMailSPFRecordFound=Βρέθηκε πραγματική εγγραφή SPF: %s +ActualMailSPFRecordFound=Βρέθηκε πραγματική εγγραφή SPF (για email %s): %s ClickToShowDescription=Κάντε κλικ για να εμφανιστεί η περιγραφή DependsOn=Αυτή η ενότητα εξαρτάται από τις ενότητες RequiredBy=Αυτή η ενότητα απαιτείται από τις ενότητες @@ -513,28 +515,28 @@ PageUrlForDefaultValues=Πρέπει να εισαγάγετε τη σχετικ PageUrlForDefaultValuesCreate=
    Παράδειγμα:
    Για τη φόρμα δημιουργίας νέου τρίτου μέρους, είναι %s .
    Για τη διεύθυνση URL των εξωτερικών ενοτήτων που έχουν εγκατασταθεί στον προσαρμοσμένο κατάλογο, μην συμπεριλάβετε το "custom/", οπότε χρησιμοποιήστε διαδρομή όπως το mymodule/mypage.php και όχι το custom/mymodule/mypage.php.
    Εάν θέλετε την προεπιλεγμένη τιμή μόνο αν η url έχει κάποια παράμετρο, μπορείτε να χρησιμοποιήσετε %s PageUrlForDefaultValuesList=
    Παράδειγμα:
    Για τη σελίδα που παραθέτει τρίτα μέρη, είναι %s .
    Για τη διεύθυνση URL των εξωτερικών ενοτήτων που έχουν εγκατασταθεί στον προσαρμοσμένο κατάλογο, μην συμπεριλάβετε το "custom/" αλλά χρησιμοποιήστε μια διαδρομή όπως το mymodule/mypagelist.php και όχι το custom/mymodule/mypagelist.php.
    Εάν θέλετε την προεπιλεγμένη τιμή μόνο αν η url έχει κάποια παράμετρο, μπορείτε να χρησιμοποιήσετε %s AlsoDefaultValuesAreEffectiveForActionCreate=Λάβετε επίσης υπόψη ότι η αντικατάσταση προεπιλεγμένων τιμών για τη δημιουργία φόρμας λειτουργεί μόνο για σελίδες που σχεδιάστηκαν σωστά (με την παράμετρο action=create ή presend...) -EnableDefaultValues=Ενεργοποιήστε την προσαρμογή των προεπιλεγμένων τιμών -EnableOverwriteTranslation=Ενεργοποιήστε τη χρήση αντικατασταθείσας μετάφρασης +EnableDefaultValues=Ενεργοποίηση εξατομίκευσης των προεπιλεγμένων τιμών +EnableOverwriteTranslation=Να επιτρέπεται η τροποποίηση των μεταφράσεων GoIntoTranslationMenuToChangeThis=Έχει βρεθεί μετάφραση για το κλειδί με αυτόν τον κωδικό. Για να αλλάξετε αυτήν την τιμή, πρέπει να την επεξεργαστείτε από το μενού Αρχική-Ρυθμίσεις-Μετάφραση. -WarningSettingSortOrder=Προειδοποίηση, ο ορισμός μιας προεπιλεγμένης σειράς ταξινόμησης μπορεί να οδηγήσει σε τεχνικό σφάλμα κατά τη μετάβαση στη σελίδα της λίστας εάν το πεδίο είναι άγνωστο πεδίο. Εάν αντιμετωπίσετε ένα τέτοιο σφάλμα, επιστρέψτε σε αυτήν τη σελίδα για να καταργήσετε την προεπιλεγμένη σειρά ταξινόμησης και να επαναφέρετε την προεπιλεγμένη συμπεριφορά. +WarningSettingSortOrder=Προειδοποίηση, ο ορισμός μιας προεπιλεγμένης σειράς ταξινόμησης μπορεί να οδηγήσει σε τεχνικό σφάλμα κατά τη μετάβαση στη σελίδα της λίστας εάν το πεδίο είναι άγνωστο. Εάν αντιμετωπίσετε ένα τέτοιο σφάλμα, επιστρέψτε σε αυτήν τη σελίδα για να καταργήσετε την προεπιλεγμένη σειρά ταξινόμησης και να επαναφέρετε την προεπιλεγμένη συμπεριφορά. Field=Πεδίο ProductDocumentTemplates=Πρότυπα εγγράφων για τη δημιουργία εγγράφου προϊόντος -FreeLegalTextOnExpenseReports=Δωρεάν νομικό κείμενο σχετικά με τις εκθέσεις δαπανών -WatermarkOnDraftExpenseReports=Υδατογράφημα για τις εκθέσεις περί δαπανών -ProjectIsRequiredOnExpenseReports=Το έργο είναι υποχρεωτικό για την εισαγωγή αναφοράς εξόδων +FreeLegalTextOnExpenseReports=Ελεύθερο νομικό κείμενο στις αναφορές δαπανών +WatermarkOnDraftExpenseReports=Υδατογράφημα σε προσχέδια αναφορών εξόδων +ProjectIsRequiredOnExpenseReports=Το έργο είναι υποχρεωτικό κατά την εισαγωγή αναφοράς εξόδων PrefillExpenseReportDatesWithCurrentMonth=Προσυμπληρώστε τις ημερομηνίες έναρξης και λήξης της νέας αναφοράς εξόδων με ημερομηνίες έναρξης και λήξης του τρέχοντος μήνα -ForceExpenseReportsLineAmountsIncludingTaxesOnly=Υποχρεώστε την καταχώριση ποσών αναφοράς εξόδων πάντα σε ποσό με φόρους -AttachMainDocByDefault=Ρυθμίστε αυτό στο 1 εάν θέλετε να επισυνάψετε το κύριο έγγραφο σε email από προεπιλογή (αν υπάρχει) -FilesAttachedToEmail=Επισυνάψετε το αρχείο -SendEmailsReminders=Αποστολή υπενθυμίσεων της ημερήσιας διάταξης μέσω ηλεκτρονικού ταχυδρομείου +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Επιβολή καταχώρισης ποσών αναφοράς εξόδων πάντα σε ποσό με Φ.Π.Α. +AttachMainDocByDefault=Ορίστε το σε 1 εάν θέλετε να επισυνάψετε το κύριο έγγραφο στο email από προεπιλογή (εάν υπάρχει) +FilesAttachedToEmail=Επισύναψη αρχείου +SendEmailsReminders=Αποστολή υπενθυμίσεων ατζέντας μέσω email davDescription=Ρυθμίστε έναν διακομιστή WebDAV -DAVSetup=Ρύθμιση της μονάδας DAV -DAV_ALLOW_PRIVATE_DIR=Ενεργοποίηση του γενικού ιδιωτικού καταλόγου (αποκλειστικός κατάλογος WebDAV που ονομάζεται "ιδιωτικός" - απαιτείται σύνδεση) -DAV_ALLOW_PRIVATE_DIRTooltip=Ο γενικός ιδιωτικός κατάλογος είναι ένας κατάλογος WebDAV ο οποίος μπορεί να έχει πρόσβαση οποιοσδήποτε με την εφαρμογή login / pass. -DAV_ALLOW_PUBLIC_DIR=Ενεργοποίηση του γενικού δημόσιου καταλόγου (αποκλειστικός κατάλογος WebDAV που ονομάζεται "δημόσιο" - δεν απαιτείται σύνδεση) -DAV_ALLOW_PUBLIC_DIRTooltip=Ο γενικός δημόσιος κατάλογος είναι ένας κατάλογος WebDAV ο οποίος μπορεί να έχει πρόσβαση οποιοσδήποτε (σε λειτουργία ανάγνωσης και εγγραφής), χωρίς την απαιτούμενη εξουσιοδότηση (λογαριασμός σύνδεσης / κωδικού πρόσβασης). -DAV_ALLOW_ECM_DIR=Ενεργοποίηση του ιδιωτικού καταλόγου DMS / ECM (ριζικός κατάλογος της μονάδας DMS / ECM - απαιτείται σύνδεση) -DAV_ALLOW_ECM_DIRTooltip=Ο ριζικός κατάλογος όπου όλα τα αρχεία μεταφορτώνονται με το χέρι κατά τη χρήση της μονάδας DMS / ECM. Ομοίως με την πρόσβαση από τη διεπαφή ιστού, θα χρειαστείτε έγκυρο όνομα σύνδεσης / κωδικό πρόσβασης με δικαιώματα πρόσβασης για πρόσβαση σε αυτήν. +DAVSetup=Ρύθμιση της ενότητας DAV +DAV_ALLOW_PRIVATE_DIR=Ενεργοποιήστε τον γενικό ιδιωτικό κατάλογο (αποκλειστικός κατάλογος WebDAV με το όνομα "private" - απαιτείται σύνδεση) +DAV_ALLOW_PRIVATE_DIRTooltip=Ο γενικός ιδιωτικός κατάλογος είναι ένας κατάλογος WebDAV στον οποίο μπορεί να έχει πρόσβαση οποιοσδήποτε με τα login / pass της εφαρμογής +DAV_ALLOW_PUBLIC_DIR=Ενεργοποίηση του γενικού δημόσιου καταλόγου (αποκλειστικός κατάλογος WebDAV με το όνομα "δημόσιο" - δεν απαιτείται σύνδεση) +DAV_ALLOW_PUBLIC_DIRTooltip=Ο γενικός δημόσιος κατάλογος είναι ένας κατάλογος WebDAV στον οποίο μπορεί να έχει πρόσβαση οποιοσδήποτε (σε λειτουργία ανάγνωσης και εγγραφής), δεν απαιτείται εξουσιοδότηση (όνομα χρήστη / κωδικός πρόσβασης). +DAV_ALLOW_ECM_DIR=Ενεργοποίηση του ιδιωτικού καταλόγου DMS / ECM (ριζικός κατάλογος της ενότητας DMS / ECM - απαιτείται σύνδεση) +DAV_ALLOW_ECM_DIRTooltip=Ο ριζικός κατάλογος όπου όλα τα αρχεία μεταφορτώνονται χειροκίνητα κατά τη χρήση της ενότητας DMS/ECM. Όπως και για την πρόσβαση από τη διεπαφή ιστού, θα χρειαστείτε ένα έγκυρο όνομα χρήστη/κωδικό πρόσβασης με επαρκή δικαιώματα για πρόσβαση σε αυτό. # Modules Module0Name=Χρήστες και Ομάδες Module0Desc=Διαχείριση χρηστών / εργαζομένων και ομάδων @@ -546,12 +548,12 @@ Module10Name=Λογιστική (απλουστευμένη) Module10Desc=Απλές λογιστικές αναφορές (ημερολόγια, κύκλος εργασιών) με βάση το περιεχόμενο της βάσης δεδομένων. Δεν χρησιμοποιεί κανένα πίνακα καθολικών. Module20Name=Προσφορές Module20Desc=Διαχείριση εμπορικών προσφορών -Module22Name=Μαζικές αποστολές ηλεκτρονικού ταχυδρομείου +Module22Name=Μαζική αποστολή e-mail Module22Desc=Διαχείριση μαζικής αποστολής email Module23Name=Ενέργεια Module23Desc=Παρακολούθηση κατανάλωσης ενέργειας -Module25Name=Πωλήσεις Παραγγελίες -Module25Desc=Διαχείριση Παραγγελιών Πωλήσεων +Module25Name=Εντολές Πωλήσεων +Module25Desc=Διαχείριση Εντολών Πωλήσεων Module30Name=Τιμολόγια Module30Desc=Διαχείριση τιμολογίων και πιστωτικών σημειώσεων για πελάτες. Διαχείριση τιμολογίων και πιστωτικών σημειώσεων για προμηθευτές Module40Name=Προμηθευτές @@ -580,7 +582,7 @@ Module57Name=Πληρωμές μέσω πάγιας εντολής Module57Desc=Διαχείριση πληρωμών πάγιας εντολής. Περιλαμβάνει τη δημιουργία αρχείου SEPA για ευρωπαϊκές χώρες. Module58Name=ClickToDial Module58Desc=Ενσωμάτωση συστήματος ClickToDial (Asterisk, ...) -Module60Name=Αυτοκόλλητες ετικέτες +Module60Name=Αυτοκόλλητα Module60Desc=Διαχείριση αυτοκόλλητων ετικετών Module70Name=Παρεμβάσεις Module70Desc=Διαχείριση παρεμβάσεων @@ -593,7 +595,7 @@ Module85Desc=Διαχείριση τραπεζών και λογαριασμών Module100Name=Εξωτερικός ιστότοπος Module100Desc=Προσθέστε έναν σύνδεσμο σε έναν εξωτερικό ιστότοπο ως εικονίδιο του κύριου μενού. Ο ιστότοπος εμφανίζεται σε ένα πλαίσιο κάτω από το επάνω μενού. Module105Name=Mailman και SPIP -Module105Desc=Mailman ή SPIP διεπαφή για την ενότητα μελών +Module105Desc=Διεπαφή Mailman ή SPIP για την ενότητα μελών Module200Name=LDAP Module200Desc=Συγχρονισμού καταλόγου LDAP Module210Name=PostNuke @@ -608,17 +610,17 @@ Module320Name=RSS Feed Module320Desc=Προσθέστε μια ροή RSS στις σελίδες Dolibarr Module330Name=Σελιδοδείκτες και συντομεύσεις Module330Desc=Δημιουργήστε συντομεύσεις, πάντα προσιτές, στις εσωτερικές ή εξωτερικές σελίδες στις οποίες έχετε συχνά πρόσβαση -Module400Name=Έργα ή οδηγοί -Module400Desc=Διαχείριση έργων, οδηγεί / ευκαιρίες και / ή καθήκοντα. Μπορείτε επίσης να αντιστοιχίσετε οποιοδήποτε στοιχείο (τιμολόγιο, εντολή, πρόταση, παρέμβαση, ...) σε ένα έργο και να πάρετε μια εγκάρσια όψη από την προβολή του έργου. +Module400Name=Έργα ή προοπτικές +Module400Desc=Διαχείριση έργων, προοπτικών/ευκαιριών ή/και εργασιών. Μπορείτε επίσης να αντιστοιχίσετε οποιοδήποτε στοιχείο (τιμολόγιο, παραγγελία, πρόταση, παρέμβαση, ...) σε ένα έργο και να λάβετε μια εγκάρσια προβολή από την προβολή έργου. Module410Name=Ημερολόγιο ιστού -Module410Desc=Διεπαφή ημερολογίου ιστού +Module410Desc=Ενσωμάτωση ημερολογίου ιστού Module500Name=Φόροι & Ειδικά Έξοδα Module500Desc=Διαχείριση άλλων δαπανών (φόροι πωλήσεων, κοινωνικές ή φορολογικές εισφορές, μερίσματα, ...) Module510Name=Μισθοί -Module510Desc=Καταγράψτε και παρακολουθήστε τις πληρωμές των εργαζομένων +Module510Desc=Καταγραφή και παρακολούθηση πληρωμών εργαζομένων Module520Name=Δάνεια Module520Desc=Διαχείριση δανείων -Module600Name=Ειδοποιήσεις για επαγγελματικά γεγονότα +Module600Name=Ειδοποιήσεις για επαγγελματικά συμβάντα Module600Desc=Αποστολή ειδοποιήσεων ηλεκτρονικού ταχυδρομείου που ενεργοποιούνται από ένα επιχειρηματικό συμβάν: ανά χρήστη (καθορισμένη ρύθμιση σε κάθε χρήστη), ανά επαφές τρίτων (καθορισμένη ρύθμιση σε κάθε τρίτο μέρος) ή από συγκεκριμένα μηνύματα ηλεκτρονικού ταχυδρομείου Module600Long=Λάβετε υπόψη ότι αυτή η ενότητα στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου σε πραγματικό χρόνο όταν συμβαίνει ένα συγκεκριμένο επιχειρηματικό συμβάν. Αν ψάχνετε για μια δυνατότητα αποστολής υπενθυμίσεων email για συμβάντα ατζέντας, μεταβείτε στη ρύθμιση της ενότητας Ατζέντα. Module610Name=Παραλλαγές προϊόντων @@ -627,27 +629,27 @@ Module700Name=Δωρεές Module700Desc=Διαχείριση δωρεών Module770Name=Αναφορές εξόδων Module770Desc=Διαχείριση αξιώσεων αναφορών εξόδων (μεταφορές, γεύματα, ...) -Module1120Name=Εμπορικές προτάσεις προμηθευτών -Module1120Desc=Ζητήστε από τον προμηθευτή την εμπορική του πρόταση και τις τιμές +Module1120Name=Εμπορικές προσφορές προμηθευτών +Module1120Desc=Ζητήστε από τον προμηθευτή την εμπορική του προσφορά και τις τιμές Module1200Name=Mantis Module1200Desc=Ενσωμάτωση Mantis Module1520Name=Δημιουργία εγγράφων -Module1520Desc=Μαζική δημιουργία εγγράφων email +Module1520Desc=Δημιουργία εγγράφου για μαζικά email Module1780Name=Ετικέτες/Κατηγορίες Module1780Desc=Δημιουργήστε ετικέτες/κατηγορίες (προϊόντα, πελάτες, προμηθευτές, επαφές ή μέλη) Module2000Name=WYSIWYG editor Module2000Desc=Να επιτρέπεται η επεξεργασία / διαμόρφωση των πεδίων κειμένων χρησιμοποιώντας το CKEditor (html) Module2200Name=Δυναμικές Τιμές -Module2200Desc=Χρησιμοποιήστε εκφράσεις μαθηματικών για την αυτόματη δημιουργία τιμών +Module2200Desc=Χρησιμοποιήστε μαθηματικές εκφράσεις για την αυτόματη δημιουργία τιμών Module2300Name=Προγραμματισμένες εργασίες Module2300Desc=Διαχείριση προγραμματισμένων εργασιών (alias cron ή chrono table) -Module2400Name=Εκδηλώσεις / Ατζέντα +Module2400Name=Συμβάντα / Ατζέντα Module2400Desc=Παρακολούθηση συμβάντων. Καταγράψτε αυτόματα συμβάντα για σκοπούς παρακολούθησης ή καταγράψτε μη αυτόματα συμβάντα ή συσκέψεις. Αυτή είναι η κύρια ενότητα για την καλή διαχείριση σχέσεων πελατών ή προμηθευτών. Module2500Name=DMS / ECM Module2500Desc=Σύστημα Διαχείρισης Εγγράφων / Ηλεκτρονική Διαχείριση Περιεχομένου. Αυτόματη οργάνωση των παραγόμενων ή αποθηκευμένων εγγράφων σας. Μοιραστείτε τα όταν χρειάζεστε. -Module2600Name=Υπηρεσίες API / Web (διακομιστής SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Ενεργοποιήστε τον διακομιστή SOAP του Dolibarr που παρέχει υπηρεσίες API -Module2610Name=Υπηρεσίες API / Web (διακομιστής REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Ενεργοποιήστε τον διακομιστή REST του Dolibarr που παρέχει υπηρεσίες API Module2660Name=Κλήση Υπηρεσιών Ιστού (SOAP client) Module2660Desc=Ενεργοποίηση του client υπηρεσιών ιστού του Dolibarr (Μπορεί να χρησιμοποιηθεί για την προώθηση δεδομένων/αιτημάτων σε εξωτερικούς διακομιστές. Προς το παρόν υποστηρίζονται μόνο εντολές αγοράς.) @@ -657,7 +659,7 @@ Module2800Desc=FTP Client Module2900Name=GeoIP Maxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3200Name=Αναλλοίωτα αρχεία -Module3200Desc=Ενεργοποιήστε ένα αναλλοίωτο αρχείο καταγραφής επιχειρηματικών εκδηλώσεων. Τα γεγονότα αρχειοθετούνται σε πραγματικό χρόνο. Το αρχείο καταγραφής είναι ένας πίνακας μόνο για ανάγνωση των αλυσιδωτών γεγονότων που μπορούν να εξαχθούν. Αυτή η ενότητα μπορεί να είναι υποχρεωτική για ορισμένες χώρες. +Module3200Desc=Ενεργοποιήστε ένα αναλλοίωτο αρχείο καταγραφής επιχειρηματικών εκδηλώσεων. Τα συμβάντα αρχειοθετούνται σε πραγματικό χρόνο. Το αρχείο καταγραφής είναι ένας πίνακας μόνο για ανάγνωση των αλυσιδωτών συμβάντων που μπορούν να εξαχθούν. Αυτή η ενότητα μπορεί να είναι υποχρεωτική για ορισμένες χώρες. Module3400Name=Κοινωνικά Δίκτυα Module3400Desc=Ενεργοποιήστε τα πεδία Κοινωνικών Δικτύων σε τρίτα μέρη και διευθύνσεις (skype, twitter, facebook, ...). Module4000Name=HRM @@ -665,7 +667,7 @@ Module4000Desc=Διαχείριση ανθρώπινου δυναμικού (δ Module5000Name=Multi-company Module5000Desc=Σας επιτρέπει να διαχειρίζεστε πολλές εταιρείες Module6000Name=Ροή εργασίας μεταξύ ενοτήτων -Module6000Desc=Διαχείριση ροής εργασιών μεταξύ διαφορετικών μονάδων (αυτόματη δημιουργία αντικειμένου και/ή αυτόματη αλλαγή κατάστασης) +Module6000Desc=Διαχείριση ροής εργασιών μεταξύ διαφορετικών ενοτήτων (αυτόματη δημιουργία αντικειμένου και/ή αυτόματη αλλαγή κατάστασης) Module10000Name=Ιστοσελίδες Module10000Desc=Δημιουργείστε ιστότοπους (δημόσιους) με έναν κειμενογράφο WYSIWYG. Πρόκειται για ένα CMS για webmaster ή προγραμματιστές (είναι καλύτερο να γνωρίζετε τη γλώσσα HTML και CSS). Απλά ρυθμίστε τον διακομιστή ιστού σας (Apache, Nginx, ...) να δείχνει στον κατάλογο που είναι εγκατεστημένο το Dolibarr ώστε να ειναι online στο διαδίκτυο με το δικό σας όνομα τομέα. Module20000Name=Διαχείριση αιτήματος άδειας @@ -685,19 +687,20 @@ Module50200Desc=Προσφέρετε στους πελάτες μια σελίδ Module50300Name=Stripe Module50300Desc=Προσφέρετε στους πελάτες μια σελίδα ηλεκτρονικής πληρωμής Stripe (πιστωτικές/χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψετε στους πελάτες σας να πραγματοποιούν πληρωμές ad-hoc ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, παραγγελία κ.λπ...) Module50400Name=Λογιστική (διπλή εγγραφή) -Module50400Desc=Λογιστική διαχείριση (διπλοεγγραφές, υποστήριξη Γενικών και Επικουρικών Καθολικών). Εξαγωγή του καθολικού σε πολλά άλλα formats +Module50400Desc=Λογιστική διαχείριση (διπλοεγγραφές, υποστήριξη Γενικών και Επικουρικών Καθολικών). Εξαγωγή του καθολικού σε πολλές άλλες μορφές Module54000Name=PrintIPP Module54000Desc=Άμεση εκτύπωση (χωρίς το άνοιγμα των εγγράφων) χρησιμοποιώντας τη διεπαφή Cups IPP (ο εκτυπωτής πρέπει να είναι ορατός από το διακομιστή και το CUPS πρέπει να ειναι εγκατεστημένο στον διακομιστή). Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία Module55000Desc=Δημιουργήστε ηλεκτρονικές δημοσκοπήσεις, έρευνες ή ψηφοφορίες (όπως Doodle, Studs, RDVz κ.λπ...) Module59000Name=Περιθώρια -Module59000Desc=Ενότητα για να παρακολουθείτε τα περιθώρια +Module59000Desc=Ενότητα παρακολούθησης περιθωρίων Module60000Name=Προμήθειες Module60000Desc=Ενότητα διαχείρισης προμηθειών Module62000Name=Διεθνείς Εμπορικοί Όροι Module62000Desc=Προσθέστε λειτουργίες για τη διαχείριση των διεθνών εμπορικών όρων Module63000Name=Πόροι Module63000Desc=Διαχειριστείτε πόρους (εκτυπωτές, αυτοκίνητα, δωμάτια, ...) για κατανομή σε εκδηλώσεις +Module94160Name=Παραλαβές Permission11=Ανάγνωση τιμολογίων πελατών Permission12=Δημιουργία / τροποποίηση τιμολογίων πελατών Permission13=Ακύρωση τιμολογίων πελατών @@ -714,12 +717,13 @@ Permission27=Διαγραφή εμπορικών προτάσεων Permission28=Εξαγωγή εμπορικών προτάσεων Permission31=Ανάγνωση προϊόντων Permission32=Δημιουργία / τροποποίηση προϊόντων +Permission33=Ανάγνωση τιμών προϊόντων Permission34=Διαγραφή προϊόντων Permission36=Έλεγχος/διαχείριση κρυφών προϊόντων Permission38=Εξαγωγή προϊόντων Permission39=Αγνόηση ελάχιστης τιμής -Permission41=Ανάγνωση έργων και εργασιών (κοινόχρηστα έργα και έργα στα οποία είμαι επαφή). -Permission42=Δημιουργία/τροποποίηση έργων (κοινόχρηστα έργα και έργα των οποίων είμαι επαφή). Μπορεί επίσης να αναθέτει χρήστες σε έργα και εργασίες +Permission41=Ανάγνωση έργων και εργασιών (κοινά έργα και έργα στα οποία είμαι επαφή). +Permission42=Δημιουργία/τροποποίηση έργων (κοινόχρηστα έργα και έργα των οποίων είμαι επαφή). Επίσης ανάθεση χρηστών σε έργα και εργασίες Permission44=Διαγραφή έργων (κοινόχρηστα έργα και έργα στα οποία είμαι επαφή) Permission45=Εξαγωγή έργων Permission61=Ανάγνωση παρεμβάσεων @@ -739,6 +743,7 @@ Permission79=Δημιουργία / τροποποίηση συνδρομών Permission81=Ανάγνωση παραγγελιών πελατών Permission82=Δημιουργία / τροποποίηση παραγγελιών πελατών Permission84=Επικύρωση παραγγελιών πελατών +Permission85=Δημιουργία εγγράφων εντολών πωλήσεων Permission86=Αποστολή παραγγελιών πελατών Permission87=Κλείσιμο παραγγελιών πελατών Permission88=Ακύρωση παραγγελιών πελατών @@ -760,7 +765,7 @@ Permission113=Ρύθμιση οικονομικών λογαριασμών (δη Permission114=Συμφωνία συναλλαγών Permission115=Εξαγωγή συναλλαγών και καταστάσεων λογαριασμών Permission116=Μεταφορές μεταξύ λογαριασμών -Permission117=Διαχείριση διαχείρισης αποστολών +Permission117=Διαχείριση αποστολής επιταγών Permission121=Ανάγνωση τρίτων μερών που συνδέονται με το χρήστη Permission122=Δημιουργία / τροποποίηση τρίτων μερών συνδεδεμένων με το χρήστη Permission125=Διαγραφή τρίτων μερών συνδεδεμένων με το χρήστη @@ -768,8 +773,8 @@ Permission126=Εξαγωγή τρίτων μερών Permission130=Δημιουργία/τροποποίηση στοιχείων πληρωμής τρίτων μερών Permission141=Ανάγνωση όλων των έργων και εργασιών (καθώς και τα ιδιωτικά έργα για τα οποία δεν είμαι επαφή) Permission142=Δημιουργία/τροποποίηση όλων των έργων και εργασιών (καθώς και των ιδιωτικών έργων για τα οποία δεν είμαι επαφή) -Permission144=Διαγραφή όλων των έργων και εργασιών (καθώς και των ιδιωτικών έργων με τα οποία δεν είμαι επαφή) -Permission145=Μπορεί να εισαγάγει τον χρόνο που καταναλώνεται, για εμένα ή την ιεραρχία μου, σε εργασίες που έχουν ανατεθεί (Φύλλο χρόνου) +Permission144=Διαγραφή όλων των έργων και εργασιών (καθώς και των ιδιωτικών έργων για τα οποία δεν είμαι επαφή) +Permission145=Δυνατότητα εισαγωγής του χρόνου που καταναλώνεται, για εμένα ή τους ανωτέρους μου, σε εργασίες που έχουν ανατεθεί (Φύλλο χρόνου) Permission146=Ανάγνωση παρόχων Permission147=Ανάγνωση στατιστικών στοιχείων Permission151=Ανάγνωση εντολών πληρωμής άμεσης χρέωσης @@ -789,239 +794,241 @@ Permission174=Ανάγνωση όλων των ταξιδιών και εξόδ Permission178=Εξαγωγή ταξιδιών και εξόδων Permission180=Ανάγνωση προμηθευτών Permission181=Ανάγνωση παραγγελιών αγοράς -Permission182=Δημιουργία / τροποποίηση εντολών αγοράς -Permission183=Επικύρωση εντολών αγοράς -Permission184=Έγκριση εντολών αγοράς +Permission182=Δημιουργία / τροποποίηση παραγγελιών αγοράς +Permission183=Επικύρωση παραγγελιών αγοράς +Permission184=Έγκριση παραγγελιών αγοράς Permission185=Παραγγελία ή ακύρωση εντολών αγοράς Permission186=Παραλαβή εντολών αγοράς Permission187=Κλείσιμο παραγγελιών αγοράς Permission188=Ακύρωση εντολών αγοράς Permission192=Δημιουργία γραμμών Permission193=Ακύρωση γραμμών -Permission194=Διαβάστε τις γραμμές εύρους ζώνης +Permission194=Ανάγνωση γραμμών εύρους ζώνης Permission202=Δημιουργία συνδέσεων ADSL -Permission203=Παραγγείλετε εντολές σύνδεσης -Permission204=Order connections +Permission203=Εντολές σύνδεσης +Permission204=Εντολές σύνδεσης Permission205=Διαχείριση συνδέσεων -Permission206=Διαβάστε τις συνδέσεις -Permission211=Διαβάστε την τηλεφωνία -Permission212=Παραγγείλετε γραμμές +Permission206=Ανάγνωση συνδέσεων +Permission211=Ανάγνωση τηλεφωνίας +Permission212=Παραγγελία γραμμών σύνδεσης Permission213=Ενεργοποιήση γραμμής -Permission214=Εγκατάσταση τηλεφωνίας -Permission215=Εγκατάσταση παρόχου -Permission221=Διαβάστε μηνύματα ηλεκτρονικού ταχυδρομείου -Permission222=Δημιουργία / τροποποίηση μηνυμάτων ηλεκτρονκού ταχυδρομείου (θέμα, παραλήπτες ...) -Permission223=Επικύρωση μηνυμάτων ηλεκτρονκού ταχυδρομείου (επιτρέπει την αποστολή) +Permission214=Ρύθμιση τηλεφωνίας +Permission215=Ρύθμιση παρόχων +Permission221=Ανάγνωση email +Permission222=Δημιουργία / τροποποίηση μηνυμάτων ηλεκτρονικού ταχυδρομείου (θέμα, παραλήπτες ...) +Permission223=Επικύρωση μηνυμάτων ηλεκτρονικού ταχυδρομείου (επιτρέπει την αποστολή) Permission229=Διαγραφή μηνυμάτων ηλεκτρονικού ταχυδρομείου Permission237=Προβολή παραληπτών και πληροφοριών Permission238=Χειροκίνητη αποστολή αλληλογραφίας Permission239=Διαγραφή μηνυμάτων ηλεκτρονκού ταχυδρομείου μετά την επικύρωση ή την αποστολή -Permission241=Διαβάστε τις κατηγορίες -Permission242=Δημιουργία / τροποποίηση κατηγοριών +Permission241=Ανάγνωση κατηγοριών +Permission242=Δημιουργία/τροποποίηση κατηγοριών Permission243=Διαγραφή κατηγοριών Permission244=Δείτε τα περιεχόμενα των κρυφών κατηγοριών -Permission251=Διαβάστε άλλους χρήστες και ομάδες -PermissionAdvanced251=Διαβάστε άλλους χρήστες -Permission252=Διαβάστε τα δικαιώματα άλλων χρηστών +Permission251=Ανάγνωση άλλων χρηστών και ομάδων +PermissionAdvanced251=Ανάγνωση άλλων χρηστών +Permission252=Ανάγνωση αδειών άλλων χρηστών Permission253=Δημιουργία / τροποποίηση άλλων χρηστών, ομάδων και δικαιωμάτων PermissionAdvanced253=Δημιουργία / τροποποίηση εσωτερικών / εξωτερικών χρηστών και αδειών Permission254=Δημιουργία / τροποποίηση μόνο εξωτερικών χρηστών -Permission255=Τροποποιήστε τον κωδικό άλλων χρηστών -Permission256=Διαγράψτε ή απενεργοποιήστε άλλους χρήστες -Permission262=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΚΑΙ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
    Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
    Δεν ισχύει για έργα (μόνο κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). -Permission263=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΧΩΡΙΣ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
    Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
    Δεν ισχύει για έργα (μόνο κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). -Permission271=Read CA -Permission272=Διαβάστε τιμολόγια +Permission255=Τροποποίηση κωδικού πρόσβασης άλλων χρηστών +Permission256=Διαγραφή ή απενεργοποίηση άλλων χρήστων +Permission262=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΚΑΙ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
    Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
    Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). +Permission263=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΧΩΡΙΣ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
    Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
    Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). +Permission271=Ανάγνωση CA +Permission272=Ανάγνωση τιμολογίων Permission273=Έκδοση τιμολογίων Permission281=Ανάγνωση επαφών Permission282=Δημιουργία/Επεξεργασία επαφών Permission283=Διαγραφή επαφών Permission286=Εξαγωγή επαφών -Permission291=Διαβάστε τα δασμολόγια -Permission292=Ορίστε δικαιώματα σχετικά με τα δασμολόγια -Permission293=Τροποποιήστε τα τιμολόγια του πελάτη -Permission300=Διαβάστε τους γραμμωτούς κώδικες -Permission301=Δημιουργία / τροποποίηση γραμμωτών κωδικών -Permission302=Διαγραφή γραμμωτών κωδικών -Permission311=Διαβάστε τις υπηρεσίες -Permission312=Ανάθεση υπηρεσίας/συνδρομής σε συμβόλαιο -Permission331=Διαβάστε σελιδοδείκτες +Permission291=Ανάγνωση δασμών +Permission292=Ορισμός δικαιωμάτων δασμών +Permission293=Τροποποίηση δασμών πελατών +Permission301=Δημιουργια PDF καταστάσεων με barcodes +Permission304=Δημιουργία / τροποποίηση barcodes +Permission305=Διαγραφή barcodes +Permission311=Ανάγνωση υπηρεσιών +Permission312=Εκχώρηση υπηρεσίας/συνδρομής σε συμβόλαιο +Permission331=Ανάγνωση σελιδοδεικτών Permission332=Δημιουργία / τροποποίηση σελιδοδεικτών Permission333=Διαγραφή σελιδοδεικτών -Permission341=Διαβάστε τις δικές του άδειες -Permission342=Δημιουργήστε / τροποποιήστε τις δικές του πληροφορίες χρηστών -Permission343=Τροποποιήστε τον δικό του κωδικό πρόσβασης -Permission344=Τροποποιήστε τα δικά του δικαιώματα -Permission351=Διαβάστε τις ομάδες -Permission352=Διαβάστε τα δικαιώματα ομάδας +Permission341=Ανάγνωση προσωπικών δικαιωμάτων +Permission342=Δημιουργία/τροποποίηση προσωπικών δικαιωμάτων χρήστη +Permission343=Τροποποίηση ατομικού κωδικού πρόσβασης +Permission344=Τροποποίηση προσωπικών δικαιωμάτων +Permission351=Ανάγνωση ομάδων +Permission352=Ανάγνωση δικαιωμάτων ομάδας Permission353=Δημιουργία / τροποποίηση ομάδων -Permission354=Διαγράψτε ή απενεργοποιήστε τις ομάδες +Permission354=Διαγραφή ή απενεργοποίηση ομάδων Permission358=Εξαγωγή χρηστών -Permission401=Διαβάστε τις εκπτώσεις +Permission401=Ανάγνωση εκπτώσεων Permission402=Δημιουργία / τροποποίηση εκπτώσεων Permission403=Επικύρωση εκπτώσεων Permission404=Διαγραφή εκπτώσεων -Permission430=Χρησιμοποιήστε τη γραμμή εντοπισμού σφαλμάτων -Permission511=Διαβάστε μισθούς και πληρωμές (δικούς σας και υφιστάμενων) +Permission430=Χρήση της γραμμής εντοπισμού σφαλμάτων +Permission511=Ανάγνωση μισθών και πληρωμών (δικών σας και υφιστάμενων) Permission512=Δημιουργία/τροποποίηση μισθών και πληρωμών Permission514=Διαγραφή μισθών και πληρωμών -Permission517=Διαβάστε όλους τους μισθούς και πληρωμές +Permission517=Ανάγνωση όλων των μισθών και πληρωμών Permission519=Εξαγωγή μισθών Permission520=Ανάγνωση δανείων Permission522=Δημιουργία/μεταβολή δανείων Permission524=Διαγραφή δανείων Permission525=Πρόσβαση στον υπολογιστή δανείου Permission527=Εξαγωγή δανείων -Permission531=Διαβάστε τις υπηρεσίες +Permission531=Ανάγνωση υπηρεσιών Permission532=Δημιουργία / τροποποίηση υπηρεσιών +Permission533=Ανάγνωση τιμών υπηρεσιών Permission534=Διαγραφή υπηρεσιών -Permission536=Δείτε / διαχειριστείτε τις κρυφές υπηρεσίες +Permission536=Εμφάνιση / διαχείριση κρυφών υπηρεσιών Permission538=Εξαγωγή υπηρεσιών -Permission561=Διαβάστε τις εντολές πληρωμής με μεταφορά πίστωσης +Permission561=Ανάγνωση εντολών πληρωμής με μεταφορά πίστωσης Permission562=Δημιουργία/τροποποίηση εντολής πληρωμής με μεταφορά πίστωσης Permission563=Αποστολή/Διαβίβαση εντολής πληρωμής με μεταφορά πίστωσης Permission564=Καταγραφή Χρεώσεων/Απορρίψεων μεταφοράς πίστωσης -Permission601=Διαβάστε αυτοκόλλητα +Permission601=Ανάγνωση αυτοκόλλητων Permission602=Δημιουργία/τροποποίηση αυτοκόλλητων Permission609=Διαγραφή αυτοκόλλητων -Permission611=Διαβάστε τα χαρακτηριστικά των παραλλαγών +Permission611=Ανάγνωση χαρακτηριστικών των παραλλαγών Permission612=Δημιουργία/Ενημέρωση χαρακτηριστικών παραλλαγών Permission613=Διαγραφή χαρακτηριστικών παραλλαγών -Permission650=Διαβάστε τα Γραμμάτια Υλικών -Permission651=Δημιουργία / Ενημέρωση τιμολογίων -Permission652=Διαγραφή λογαριασμών -Permission660=Ανάγνωση Παραγγελίας Παραγωγής (MO) -Permission661=Δημιουργία/Ενημέρωση Παραγγελίας Παραγωγής (MO) -Permission662=Διαγραφή εντολής κατασκευής (MO) -Permission701=Διαβάστε τις δωρεές -Permission702=Δημιουργία / τροποποίηση δωρεές -Permission703=Διαγραφή δωρεές -Permission771=Διαβάστε τις αναφορές εξόδων (δικές σας και υφισταμένων) +Permission650=Ανάγνωση καταλόγου υλικών +Permission651=Δημιουργία / Ενημέρωση καταλόγου υλικών +Permission652=Διαγραφή καταλόγου υλικών +Permission660=Ανάγνωση Εντολής Παραγωγής (MO) +Permission661=Δημιουργία/Ενημέρωση Εντολής Παραγωγής (MO) +Permission662=Διαγραφή εντολής παραγωγής (MO) +Permission701=Ανάγνωση δωρεών +Permission702=Δημιουργία/τροποποίηση δωρεών +Permission703=Διαγραφή δωρεών +Permission771=Ανάγνωση αναφορών εξόδων (προσωπικών και υφισταμένων) Permission772=Δημιουργία/τροποποίηση αναφορών εξόδων (για εσάς και τους υφισταμένους σας) -Permission773=Διαγραφή αναφοράς εξόδων -Permission775=Έγκριση εκθέσεων δαπανών +Permission773=Διαγραφή αναφορών εξόδων +Permission775=Έγκριση αναφορών εξόδων Permission776=Πληρωμή αναφοράς εξόδων -Permission777=Διαβάστε όλες τις αναφορές δαπανών (ακόμη και εκείνων των χρηστών που δεν είναι υφιστάμενοι) +Permission777=Ανάγνωση όλων των αναφορών εξόδων (ακόμη και εκείνων των χρηστών που δεν είναι υφιστάμενοι) Permission778=Δημιουργία/τροποποίηση αναφορών εξόδων για όλους Permission779=Εξαγωγή αναφοράς εξόδων -Permission1001=Διαβάστε τα αποθέματα +Permission1001=Ανάγνωση αποθεμάτων Permission1002=Δημιουργία/τροποποίηση αποθηκών Permission1003=Διαγραφή αποθηκών -Permission1004=Διαβάστε τις κινήσεις αποθεμάτων +Permission1004=Ανάγνωση κινήσεων αποθεμάτων Permission1005=Δημιουργία / τροποποίηση των κινήσεων του αποθέματος Permission1011=Προβολή αποθεμάτων -Permission1012=Δημιουργήστε νέο απόθεμα +Permission1012=Δημιουργία νέου απόθεματος Permission1014=Επικύρωση αποθέματος Permission1015=Επιτρέψτε την αλλαγή της τιμής PMP για ένα προϊόν -Permission1016=Διαγραφή αποθέματος +Permission1016=Διαγραφή απογραφής Permission1101=Ανάγνωση αναφορών παράδοσης Permission1102=Δημιουργία/επεξεργασία αναφορών παράδοσης Permission1104=Επικύρωση αναφορών παράδοσης Permission1109=Διαγραφή αναφορών παράδοσης -Permission1121=Διαβάστε τις προτάσεις προμηθευτών -Permission1122=Δημιουργία / τροποποίηση προτάσεων προμηθευτών -Permission1123=Επικυρώστε τις προτάσεις προμηθευτών -Permission1124=Στείλτε προτάσεις προμηθευτών -Permission1125=Διαγραφή προτάσεων προμηθευτών -Permission1126=Κλείστε αιτήσεις τιμών προμηθευτή -Permission1181=Διαβάστε προμηθευτές -Permission1182=Διαβάστε παραγγελίες αγοράς +Permission1121=Ανάγνωση προσφορών προμηθευτών +Permission1122=Δημιουργία / τροποποίηση προσφορών προμηθευτών +Permission1123=Επικύρωση προσφορών προμηθευτών +Permission1124=Αποστολή προσφορών προμηθευτών +Permission1125=Διαγραφή προσφορών προμηθευτών +Permission1126=Κλείσιμο αιτήσεων τιμών προμηθευτή +Permission1181=Ανάγνωση προμηθευτών +Permission1182=Ανάγνωση παραγγελιών αγοράς Permission1183=Δημιουργία / τροποποίηση εντολών αγοράς Permission1184=Επικύρωση εντολών αγοράς -Permission1185=Εγκρίνετε τις παραγγελίες αγοράς -Permission1186=Παραγγείλετε παραγγελίες αγοράς -Permission1187=Αναγνώριση παραλαβής εντολών αγοράς +Permission1185=Έγκριση εντολών αγοράς +Permission1186=Εντολή παραγγελιών αγοράς +Permission1187=Αναγνώριση παραλαβής παραγγελιών αγοράς Permission1188=Διαγραφή εντολών αγοράς -Permission1189=Ελέγξτε/Αποεπιλέξτε μια παραλαβή παραγγελίας -Permission1190=Εγκρίνετε τις εντολές αγοράς (δεύτερη έγκριση) +Permission1189=Επιλογή/Αναίρεση επιλογής μιας παραλαβής παραγγελίας αγοράς +Permission1190=Έγκριση παραγγελιών αγοράς (δεύτερη έγκριση) Permission1191=Εξαγωγή παραγγελιών προμηθευτών και τα χαρακτηριστικά τους -Permission1201=Λάβετε αποτέλεσμα μιας εξαγωγής +Permission1201=Λήψη αποτελέσματος μιας εξαγωγής Permission1202=Δημιουργία / Τροποποίηση εξαγωγής -Permission1231=Διαβάστε τιμολόγια προμηθευτή +Permission1231=Ανάγνωση τιμολογίων προμηθευτή Permission1232=Δημιουργία / τροποποίηση τιμολογίων προμηθευτή Permission1233=Επικύρωση τιμολογίων προμηθευτή Permission1234=Διαγραφή τιμολογίων προμηθευτή -Permission1235=Αποστολή τιμολογίων προμηθευτή μέσω ηλεκτρονικού ταχυδρομείου +Permission1235=Αποστολή τιμολογίων προμηθευτή μέσω email Permission1236=Εξαγωγή τιμολογίων προμηθευτών, χαρακτηριστικών και πληρωμών -Permission1237=Εξαγωγή εντολών αγοράς και των στοιχείων τους -Permission1251=Εκτελέστε μαζικές εισαγωγές εξωτερικών δεδομένων σε βάση δεδομένων (φόρτωση δεδομένων) +Permission1237=Εξαγωγή παραγγελιών αγοράς και των στοιχείων τους +Permission1251=Εκτέλεση μαζικών εισαγωγών εξωτερικών δεδομένων σε βάση δεδομένων (φόρτωση δεδομένων) Permission1321=Εξαγωγή τιμολογίων πελατών, χαρακτηριστικών και πληρωμών -Permission1322=Ανοίξτε ξανά έναν πληρωμένο λογαριασμό -Permission1421=Εξαγωγή παραγγελιών και χαρακτηριστικών πωλήσεων +Permission1322=Άνοιγμα ξανά ενός πληρωμένου λογαριασμού +Permission1421=Εξαγωγή εντολών και χαρακτηριστικών πωλήσεων Permission1521=Ανάγνωση έγγραφων Permission1522=Διαγραφή εγγράφων -Permission2401=Ανάγνωση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος ή απλώς έχει ανατεθεί) -Permission2402=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος) -Permission2403=Διαγραφή ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος) -Permission2411=Διαβάστε τις ενέργειες (συμβάντα ή εργασίες) άλλων -Permission2412=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) άλλων -Permission2413=Διαγραφή ενεργειών (συμβάντων ή εργασιών) άλλων +Permission2401=Ανάγνωση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος ή απλώς του έχουν ανατεθεί) +Permission2402=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη (εάν είναι κάτοχος του συμβάντος) +Permission2403=Διαγραφή ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη (εάν είναι κάτοχος του συμβάντος) +Permission2411=Ανάγνωση ενεργειών (συμβάντων ή εργασιών) άλλων χρηστών +Permission2412=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) άλλων χρηστών +Permission2413=Διαγραφή ενεργειών (συμβάντων ή εργασιών) άλλων χρηστών Permission2414=Εξαγωγή ενεργειών / εργασιών άλλων -Permission2501=Διάβασμα / λήψη εγγράφων +Permission2501=Ανάγνωση/Λήψη εγγράφων Permission2502=Λήψη εγγράφων -Permission2503=Υποβολή ή να διαγράψετε τα έγγραφα +Permission2503=Υποβολή ή διαγραφή εγγράφων Permission2515=Ρύθμιση καταλόγων εγγράφων -Permission2801=Χρησιμοποίησε FTP πελάτη σε λειτουργία ανάγνωσης (περιήγηση και λήψη μόνο) -Permission2802=Χρησιμοποίησε FTP πελάτη σε λειτουργία εγγραφής (διαγραφή ή μεταφόρτωση αρχείων) -Permission3200=Διαβάστε αρχειακά συμβάντα και δακτυλικά αποτυπώματα -Permission3301=Δημιουργήστε νέες ενότητες +Permission2801=Χρήση προγράμματος-πελάτη FTP σε λειτουργία ανάγνωσης (μόνο περιήγηση και λήψη) +Permission2802=Χρήση προγράμματος-πελάτη FTP σε λειτουργία εγγραφής (διαγραφή ή αποστολή αρχείων) +Permission3200=Ανάγνωση αρχειοθετημένων ενεργειών και fingerprints +Permission3301=Δημιουργία νέων ενοτήτων Permission4001= Ανάγνωση δεξιότητας/δουλειάς/θέσης Permission4002=Δημιουργία/τροποποίηση δεξιότητας/δουλειάς/θέσης Permission4003=Διαγραφή δεξιότητας/δουλειάς/θέσης -Permission4020=Ανάγνωση αξιολογήσεων -Permission4021=Δημιουργήστε/τροποποιήστε την αξιολόγησή σας -Permission4022=Επικύρωση αξιολόγησης -Permission4023=Διαγραφή αξιολόγησης -Permission4030=Δείτε το μενού σύγκρισης +Permission4021=Ανάγνωση αξιολογήσεων (δικές σας και των υφισταμένων σας) +Permission4022=Δημιουργία/τροποποίηση αξιολογήσεων +Permission4023=Επικύρωση αξιολόγησης +Permission4025=Διαγραφή αξιολόγησης +Permission4028=Δείτε το μενού σύγκρισης Permission4031=Ανάγνωση προσωπικών πληροφοριών -Permission4032=Γράψτε προσωπικά στοιχεία -Permission10001=Διαβάστε το περιεχόμενο του ιστότοπου +Permission4032=Καταχώριση προσωπικών στοιχείων +Permission4033=Ανάγνωση όλων των αξιολογήσεων (ακόμη και αυτών των μη υφισταμένων χρηστών ) +Permission10001=Ανάγνωση περιεχόμενου ιστότοπου Permission10002=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (περιεχόμενο html και javascript) -Permission10003=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (δυναμικός κώδικας php). Επικίνδυνο, πρέπει να επιφυλάσσεται σε περιορισμένους προγραμματιστές. +Permission10003=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (δυναμικός κώδικας php). Επικίνδυνο, πρέπει να δίνεται μόνο σε προγραμματιστές. Permission10005=Διαγραφή περιεχομένου ιστότοπου -Permission20001=Διαβάστε τις αιτήσεις άδειας (η άδειά σας και αυτές των υφισταμένων σας) -Permission20002=Δημιουργήστε / τροποποιήστε τα αιτήματα άδειας (η άδειά σας και αυτά των υφισταμένων σας) -Permission20003=Διαγραφή των αιτήσεων άδειας +Permission20001=Ανάγνωση αιτημάτων άδειας (προσωπικής άδειας και υφισταμένων) +Permission20002=Δημιουργια / τροποποίηση των αιτήματων αδείας (προσωπικής άδειας σας και αυτές των υφισταμένων σας) +Permission20003=Διαγραφή αιτημάτων άδειας Permission20004=Ανάγνωση όλων των αιτημάτων αδείας (ακόμη και αυτά των χρηστών που δεν είναι υφιστάμενοι) Permission20005=Δημιουργία/τροποποίηση αιτημάτων άδειας για όλους (ακόμη και εκείνων των όχι υφισταμένων χρηστών ) Permission20006=Διαχείριση αιτημάτων άδειας (ρύθμιση και ενημέρωση υπολοίπου) Permission20007=Έγκριση αιτημάτων άδειας -Permission23001=Λεπτομέρειες προγραμματισμένης εργασίας -Permission23002=Δημιουργήστε/ενημερώστε μια προγραμματισμένη εργασία -Permission23003=Διαγράψτε μια προγραμματισμένη εργασία -Permission23004=Εκτελέστε μια προγραμματισμένη εργασία +Permission23001=Ανάγνωση προγραμματισμένης εργασίας +Permission23002=Δημιουργια/ενημέρωση μιας προγραμματισμένης εργασίας +Permission23003=Διαγραφή μιας προγραμματισμένης εργασίας +Permission23004=Εκτέλεση μιας προγραμματισμένης εργασίας Permission50101=Χρήση Σημείου Πώλησης (SimplePOS) Permission50151=Χρήση Σημείου Πώλησης (TakePOS) Permission50152=Επεξεργασία γραμμών πωλήσεων Permission50153=Επεξεργασία παραγγελθέντων γραμμών πωλήσεων -Permission50201=Διαβάστε τις συναλλαγές -Permission50202=Πράξεις εισαγωγής +Permission50201=Ανάγνωση συναλλαγών +Permission50202=Εισαγωγή συναλλαγών Permission50330=Ανάγνωση αντικείμενων του Zapier Permission50331=Δημιουργία/Ενημέρωση αντικειμένων του Zapier Permission50332=Διαγραφή αντικειμένων του Zapier -Permission50401=Δεσμεύστε προϊόντα και τιμολόγια με λογιστικούς λογαριασμούς -Permission50411=Διαβάστε τις λειτουργίες στο βιβλίο -Permission50412=Εγγραφή / Επεξεργασία εργασιών στο ημερολόγιο -Permission50414=Διαγράψτε τις εργασίες στο ημερολόγιο -Permission50415=Διαγράψτε όλες τις λειτουργίες ανά έτος και το ημερολόγιο στο βιβλίο -Permission50418=Λειτουργίες εξαγωγής του βιβλίου -Permission50420=Αναφορές και αναφορές εξαγωγής (κύκλος εργασιών, ισοζύγιο, περιοδικά, ημερολόγιο) -Permission50430=Ορίστε δημοσιονομικές περιόδους. Επικυρώστε τις συναλλαγές και τις κλειστές οικονομικές περιόδους. -Permission50440=Διαχείριση λογαριασμού, ρύθμιση λογιστικής -Permission51001=Διαβάστε τα στοιχεία ενεργητικού -Permission51002=Δημιουργία / ενημέρωση στοιχείων +Permission50401=Σύνδεση προϊόντων και τιμολογίων με λογιστικούς λογαριασμούς +Permission50411= Ανάγνωση μεταβολών καθολικού +Permission50412=Εγγραφή/Επεξεργασία μεταβολών στο καθολικό +Permission50414=Διαγραφή μεταβολών από το καθολικό +Permission50415=Διαγραφή όλων των μεταβολών ανά έτος και ημερολόγιο στο καθολικό +Permission50418=Εξαγωγή μεταβολών του καθολικού +Permission50420=Δημιουργία και εξαγωγή αναφορών (κύκλος εργασιών, ισοζύγιο, περιοδικά, ημερολόγιο) +Permission50430=Ορισμός φορολογικών περιόδων. Επικύρωση συναλλαγών και κλείσιμο φορολογικών περιόδων. +Permission50440=Διαχείριση λογιστικού σχεδίου, ρύθμιση λογιστικής +Permission51001=Ανάγνωση ενεργητικού +Permission51002=Δημιουργία/Ενημέρωση ενεργητικού Permission51003=Διαγραφή στοιχείων ενεργητικού -Permission51005=Ρυθμίστε τα είδη του στοιχείου +Permission51005=Ρύθμιση τύπων ενεργητικού Permission54001=Εκτύπωση -Permission55001=Διαβάστε δημοσκοπήσεις -Permission55002=Δημιουργία/τροποποίηση ερευνών +Permission55001=Ανάγνωση δημοσκοπικής έρευνας +Permission55002=Δημιουργία/τροποποίηση δημοσκοπικών ερευνών Permission59001=Δείτε τα εμπορικά περιθώρια -Permission59002=Ορίστε τα εμπορικά περιθώρια -Permission59003=Διαβάστε το κάθε περιθώριο του χρήστη -Permission63001=Διαβάστε τους πόρους +Permission59002=Ορισμός εμπορικών περιθωρίων +Permission59003=Ανάγνωση περιθωρίου κάθε χρήστη +Permission63001=Ανάγνωση πόρων Permission63002=Δημιουργία / τροποποίηση πόρων -Permission63003=Διαγράψτε τους πόρους -Permission63004=Συνδέστε τους πόρους στις εκδηλώσεις της ατζέντας +Permission63003=Διαγραφή πόρων +Permission63004=Σύνδεση πόρων με εκδηλώσεις της ατζέντας Permission64001=Επιτρέψτε την απευθείας εκτύπωση Permission67000=Επιτρέψτε την εκτύπωση αποδείξεων Permission68001=Ανάγνωση έκθεσης intracomm @@ -1032,36 +1039,36 @@ Permission941602=Δημιουργία και τροποποίηση αποδεί Permission941603=Επικύρωση αποδείξεων Permission941604=Αποστολή αποδείξεων με email Permission941605=Εξαγωγή παραλαβών -Permission941606=Διαγραφή αποδείξεων +Permission941606=Διαγραφή παραλαβών DictionaryCompanyType=Τύποι τρίτου μέρους DictionaryCompanyJuridicalType=Νομικές οντότητες τρίτων DictionaryProspectLevel=Επίπεδο προοπτικής για εταιρείες DictionaryProspectContactLevel=Επίπεδο προοπτικής για επαφές -DictionaryCanton=Κράτη / Επαρχίες +DictionaryCanton=Νομοί/Δήμοι DictionaryRegion=Περιοχές DictionaryCountry=Χώρες DictionaryCurrency=Νόμισμα DictionaryCivility=Τιμητικοί τίτλοι -DictionaryActions=Τύποι συμβάντων ημερήσιας διάταξης +DictionaryActions=Τύποι συμβάντων ατζέντας DictionarySocialContributions=Είδη κοινωνικών ή φορολογικών εισφορών -DictionaryVAT=Τιμές ΦΠΑ ή φόρου επί των πωλήσεων -DictionaryRevenueStamp=Ποσό των φορολογικών σφραγίδων +DictionaryVAT=Ποσοστά ΦΠΑ ή φόρου επί των πωλήσεων +DictionaryRevenueStamp=Ποσό των φορολογικών χαρτόσημων DictionaryPaymentConditions=Όροι πληρωμής DictionaryPaymentModes=Τρόποι πληρωμής -DictionaryTypeContact=Τύποι Επικοινωνίας/Διεύθυνση -DictionaryTypeOfContainer=Ιστοσελίδα - Τύπος ιστοσελίδων / δοχείων +DictionaryTypeContact=Τύποι επικοινωνίας/διευθύνσεων +DictionaryTypeOfContainer=Ιστότοπος - Τύπος σελίδων/κοντέινερ ιστότοπου DictionaryEcotaxe=Οικολογικός φόρος (ΑΗΗΕ) DictionaryPaperFormat=Μορφές χαρτιού DictionaryFormatCards=Μορφές καρτών -DictionaryFees=Έκθεση δαπανών - Τύποι γραμμών αναφοράς δαπανών +DictionaryFees=Αναφορά εξόδων - Τύποι γραμμών αναφοράς εξόδων DictionarySendingMethods=Τρόποι Αποστολής DictionaryStaff=Αριθμός εργαζομένων DictionaryAvailability=Καθυστέρηση παράδοσης DictionaryOrderMethods=Μέθοδοι παραγγελίας -DictionarySource=Προέλευση των προτάσεων/παραγγελιών +DictionarySource=Προέλευση των προσφορών/παραγγελιών DictionaryAccountancyCategory=Εξατομικευμένες ομάδες για αναφορές -DictionaryAccountancysystem=Μοντέλα λογιστικού σχεδίου -DictionaryAccountancyJournal=Λογιστικά περιοδικά +DictionaryAccountancysystem=Υποδείγματα λογιστικού σχεδίου +DictionaryAccountancyJournal=Λογιστικά ημερολόγια DictionaryEMailTemplates=Πρότυπα ηλεκτρονικού ταχυδρομείου DictionaryUnits=Μονάδες DictionaryMeasuringUnits=Μονάδες μέτρησης @@ -1069,23 +1076,27 @@ DictionarySocialNetworks=Κοινωνικά Δίκτυα DictionaryProspectStatus=Κατάσταση προοπτικής για εταιρείες DictionaryProspectContactStatus=Κατάσταση προοπτικής για επαφές DictionaryHolidayTypes=Άδεια - Είδη αδειών -DictionaryOpportunityStatus=Κατάσταση μολύβδου για έργο / μόλυβδο -DictionaryExpenseTaxCat=Έκθεση δαπανών - Κατηγορίες μεταφορών -DictionaryExpenseTaxRange=Έκθεση εξόδων - Εύρος ανά κατηγορία μεταφοράς +DictionaryOpportunityStatus=Κατάσταση δυνητικού πελάτη για έργο/προοπτική +DictionaryExpenseTaxCat=Αναφορά εξόδων- Κατηγορίες μετακίνησης +DictionaryExpenseTaxRange=Αναφορά εξόδων - Εύρος ανά κατηγορία μετακίνησης DictionaryTransportMode=Έκθεση intracomm - Τρόπος μεταφοράς DictionaryBatchStatus=Κατάσταση ποιοτικού ελέγχου παρτίδας/σειράς προϊόντος DictionaryAssetDisposalType=Είδος διάθεσης περιουσιακών στοιχείων TypeOfUnit=Τύπος μονάδας SetupSaved=Οι ρυθμίσεις αποθηκεύτηκαν -SetupNotSaved=Το πρόγραμμα εγκατάστασης δεν αποθηκεύτηκε -BackToModuleList=Επιστροφή στη λίστα λειτουργιών +SetupNotSaved=Η ρύθμιση δεν αποθηκεύτηκε +OAuthServiceConfirmDeleteTitle=Διαγραφή καταχώρισης OAuth +OAuthServiceConfirmDeleteMessage=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την καταχώριση OAuth; Όλα τα υπάρχοντα token για αυτό θα διαγραφούν επίσης. +ErrorInEntryDeletion=Σφάλμα κατά τη διαγραφή καταχώρισης +EntryDeleted=Η καταχώριση διαγράφηκε +BackToModuleList=Επιστροφή στη λίστα Ενοτήτων BackToDictionaryList=Επιστροφή στη λίστα λεξικών -TypeOfRevenueStamp=Είδος φορολογικής σφραγίδας +TypeOfRevenueStamp=Είδος φορολογικού χαρτόσημου VATManagement=Διαχείριση Φορολογίας Πωλήσεων -VATIsUsedDesc=Από προεπιλογή κατά τη δημιουργία προοπτικών, τιμολογίων, παραγγελιών κλπ. Ο συντελεστής φόρου επί των πωλήσεων ακολουθεί τον ισχύοντα κανόνα:
    Αν ο πωλητής δεν υπόκειται σε φόρο επί των πωλήσεων, τότε ο φόρος πωλήσεων είναι μηδενικός. Τέλος κανόνα.
    Εάν η χώρα (πωλητή = χώρα αγοραστή), τότε ο φόρος πωλήσεων εξ ορισμού ισούται με τον φόρο πωλήσεων του προϊόντος στη χώρα του πωλητή. Τέλος κανόνα.
    Εάν ο πωλητής και ο αγοραστής είναι αμφότεροι στην Ευρωπαϊκή Κοινότητα και τα αγαθά είναι προϊόντα που σχετίζονται με τη μεταφορά (μεταφορά εμπορευμάτων, ναυτιλία, αεροπορική εταιρεία), ο προκαθορισμένος ΦΠΑ είναι 0. Ο κανόνας αυτός εξαρτάται από τη χώρα του πωλητή - συμβουλευτείτε τον λογιστή σας. Ο ΦΠΑ πρέπει να καταβάλλεται από τον αγοραστή στο τελωνείο της χώρας του και όχι στον πωλητή. Τέλος κανόνα.
    Εάν ο πωλητής και ο αγοραστής είναι και οι δύο στην Ευρωπαϊκή Κοινότητα και ο αγοραστής δεν είναι εταιρεία (με καταχωρημένο ενδοκοινοτικό αριθμό ΦΠΑ), τότε ο ΦΠΑ είναι μηδενικός του συντελεστή ΦΠΑ της χώρας του πωλητή. Τέλος κανόνα.
    Εάν ο πωλητής και ο αγοραστής είναι και οι δύο στην Ευρωπαϊκή Κοινότητα και ο αγοραστής είναι εταιρεία (με καταχωρημένο ενδοκοινοτικό αριθμό ΦΠΑ), τότε ο ΦΠΑ είναι 0 από προεπιλογή. Τέλος κανόνα.
    Σε κάθε άλλη περίπτωση, η προτεινόμενη αθέτηση είναι ο φόρος πωλήσεων = 0. Τέλος κανόνα. -VATIsNotUsedDesc=Από προεπιλογή, ο προτεινόμενος φόρος πωλήσεων είναι 0 ο οποίος μπορεί να χρησιμοποιηθεί σε περιπτώσεις όπως ενώσεις, ιδιώτες ή μικρές επιχειρήσεις. -VATIsUsedExampleFR=Στη Γαλλία, σημαίνει ότι οι εταιρείες ή οι οργανώσεις έχουν ένα πραγματικό φορολογικό σύστημα (απλοποιημένο πραγματικό ή κανονικό πραγματικό). Ένα σύστημα στο οποίο δηλώνεται ο ΦΠΑ. -VATIsNotUsedExampleFR=Στη Γαλλία, δηλώνονται ενώσεις που δεν έχουν δηλωθεί ως φόρος πωλήσεων ή εταιρείες, οργανώσεις ή ελεύθερα επαγγέλματα που επέλεξαν το φορολογικό σύστημα των μικροεπιχειρήσεων (Φόρος πωλήσεων σε franchise) και κατέβαλαν φόρο επί των πωλήσεων χωρίς καμία δήλωση φόρου επί των πωλήσεων. Αυτή η επιλογή θα εμφανίζει στα τιμολόγια την αναφορά "Μη εφαρμοστέος φόρος πωλήσεων - art-293B του CGI". +VATIsUsedDesc=Από προεπιλογή κατά τη δημιουργία προοπτικών, τιμολογίων, παραγγελιών κ.λπ. ο συντελεστής φόρου επί των πωλήσεων ακολουθεί τον ενεργό τυπικό κανόνα:
    Εάν ο πωλητής δεν υπόκειται σε φόρο επί των πωλήσεων, τότε ο φόρος επί των πωλήσεων είναι προεπιλεγμένος σε 0. Τέλος κανόνα.
    Εάν η (χώρα πωλητή = χώρα του αγοραστή), τότε ο φόρος επί των πωλήσεων από προεπιλογή ισούται με τον φόρο επί των πωλήσεων του προϊόντος στη χώρα του πωλητή. Τέλος κανόνα.
    Εάν ο πωλητής και ο αγοραστής βρίσκονται και οι δύο στην Ευρωπαϊκή Κοινότητα και τα αγαθά είναι προϊόντα που σχετίζονται με τις μεταφορές (μεταφορές, ναυτιλία, αεροπορική εταιρεία), ο προεπιλεγμένος ΦΠΑ είναι 0. Αυτός ο κανόνας εξαρτάται από τη χώρα του πωλητή - συμβουλευτείτε τον λογιστή σας. Ο ΦΠΑ θα πρέπει να καταβληθεί από τον αγοραστή στο τελωνείο της χώρας του και όχι στον πωλητή. Τέλος κανόνα.
    Εάν ο πωλητής και ο αγοραστής βρίσκονται και οι δύο στην Ευρωπαϊκή Κοινότητα και ο αγοραστής δεν είναι εταιρεία (με εγγεγραμμένο ενδοκοινοτικό αριθμό ΦΠΑ), τότε ο ΦΠΑ ειναι ίσος με τον συντελεστή ΦΠΑ της χώρας του πωλητή. Τέλος κανόνα.
    Εάν ο πωλητής και ο αγοραστής βρίσκονται και οι δύο στην Ευρωπαϊκή Κοινότητα και ο αγοραστής είναι εταιρεία (με εγγεγραμμένο ενδοκοινοτικό ΑΦΜ), τότε ο ΦΠΑ είναι 0 από προεπιλογή. Τέλος κανόνα.
    Σε κάθε άλλη περίπτωση, η προτεινόμενη προεπιλογή είναι φόρος πωλήσεων=0. Τέλος κανόνα. +VATIsNotUsedDesc=Από προεπιλογή, ο προτεινόμενος φόρος επί των πωλήσεων είναι 0, ο οποίος μπορεί να χρησιμοποιηθεί για περιπτώσεις όπως ενώσεις, ιδιώτες ή μικρές εταιρείες. +VATIsUsedExampleFR=Στη Γαλλία, σημαίνει εταιρείες ή οργανισμούς που έχουν πραγματικό δημοσιονομικό σύστημα (Απλοποιημένο πραγματικό ή κανονικό πραγματικό). Ένα σύστημα στο οποίο δηλώνεται ο ΦΠΑ. +VATIsNotUsedExampleFR=Στη Γαλλία, σημαίνει ενώσεις που δεν έχουν δηλώσει φόρο επί των πωλήσεων ή εταιρείες, οργανώσεις ή ελεύθερα επαγγέλματα που έχουν επιλέξει το φορολογικό σύστημα μικροεπιχειρήσεων (Φόρος επί των πωλήσεων σε franchise) και πλήρωσαν φόρο επί των πωλήσεων franchise χωρίς δήλωση φόρου επί των πωλήσεων. Αυτή η επιλογή θα εμφανίζει την αναφορά "Μη εφαρμοστέος φόρος επί των πωλήσεων - art-293B of CGI" στα τιμολόγια. ##### Local Taxes ##### TypeOfSaleTaxes=Είδος φόρου επί των πωλήσεων LTRate=Τιμή @@ -1095,7 +1106,7 @@ LocalTax1IsNotUsedDesc=Μην χρησιμοποιείτε άλλο είδος LocalTax1Management=Δεύτερο είδος φόρου LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Μην χρησιμοποιείτε τρίτους φόρους +LocalTax2IsNotUsed=Μην χρησιμοποιείτε τρίτο φόρο LocalTax2IsUsedDesc=Χρησιμοποιήστε έναν τρίτο τύπο φόρου (εκτός από τον πρώτο) LocalTax2IsNotUsedDesc=Μην χρησιμοποιείτε άλλο είδος φόρου (εκτός από τον πρώτο) LocalTax2Management=Τρίτος τύπος φόρου @@ -1104,16 +1115,16 @@ LocalTax2IsNotUsedExample= LocalTax1ManagementES=RE Management LocalTax1IsUsedDescES=Η τιμή του RE από προεπιλογή κατά τη δημιουργία προοπτικών, τιμολογίων, παραγγελιών κ.λπ. ακολουθεί τον ισχύοντα κανόνα:
    Αν ο αγοραστής δεν υποβληθεί σε RE, η τιμή RE είναι προεπιλεγμένη = 0. Τέλος κανόνα.
    Αν ο αγοραστής υποβληθεί σε RE τότε το RE από προεπιλογή. Τέλος κανόνα.
    LocalTax1IsNotUsedDescES=Από προεπιλογή, το προτεινόμενο RE είναι 0. Τέλος κανόνα. -LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE. +LocalTax1IsUsedExampleES=Στην Ισπανία είναι επαγγελματίες που υπόκεινται σε ορισμένα συγκεκριμένα τμήματα της ισπανικής IAE. +LocalTax1IsNotUsedExampleES=Στην Ισπανία είναι επαγγελματίες και εταιρείες και υπόκεινται σε ορισμένα τμήματα της ισπανικής IAE. LocalTax2ManagementES=IRPF Management LocalTax2IsUsedDescES=Το ποσοστό IRPF από προεπιλογή κατά τη δημιουργία προοπτικών, τιμολογίων, παραγγελιών κ.λπ. ακολουθεί τον ενεργό κανόνα αναφοράς:
    Εάν ο πωλητής δεν υποβληθεί σε IRPF, τότε το IRPF είναι προεπιλεγμένο = 0. Τέλος κανόνα.
    Αν ο πωλητής υποβληθεί στο IRPF, τότε το IRPF έχει προεπιλεγεί. Τέλος κανόνα.
    LocalTax2IsNotUsedDescES=Από προεπιλογή, το προτεινόμενο IRPF είναι 0. Τέλος κανόνα. -LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. +LocalTax2IsUsedExampleES=Στην Ισπανία, ελεύθεροι επαγγελματίες και ανεξάρτητοι επαγγελματίες που παρέχουν υπηρεσίες και εταιρείες που έχουν επιλέξει το φορολογικό σύστημα των ενοτήτων. LocalTax2IsNotUsedExampleES=Στην Ισπανία είναι επιχειρήσεις που δεν υπόκεινται σε φορολογικό σύστημα ενοτήτων. RevenueStampDesc=Το "φορολογικό χαρτόσημο" ή "χαρτόσημο εισοδήματος" είναι ένας σταθερός φόρος ανά τιμολόγιο (Δεν εξαρτάται από το ποσό του τιμολογίου). Μπορεί επίσης να είναι ένα ποσοστό φόρου, αλλά η χρήση του δεύτερου ή του τρίτου τύπου φόρου είναι καλύτερη για τους ποσοστιαίους φόρους, καθώς για τα φορολογικά χαρτόσημα δεν παρέχουν καμία αναφορά. Μόνο λίγες χώρες χρησιμοποιούν αυτόν τον τύπο φόρου. -UseRevenueStamp=Χρησιμοποιήστε μια σφραγίδα φόρου -UseRevenueStampExample=Η τιμή της φορολογικής σφραγίδας καθορίζεται από προεπιλογή στη ρύθμιση των λεξικών (%s - %s - %s) +UseRevenueStamp=Χρησιμοποιήστε φορολογικό χαρτόσημο +UseRevenueStampExample=Η αξία του φορολογικού χαρτοσήμου ορίζεται από προεπιλογή στη ρύθμιση των λεξικών (%s - %s - %s) CalcLocaltax=Αναφορές για τοπικούς φόρους CalcLocaltax1=Πωλήσεις - Αγορές CalcLocaltax1Desc=Οι αναφορές τοπικών φόρων υπολογίζονται με τη διαφορά μεταξύ τοπικών πωλήσεων και τοπικών αγορών @@ -1124,47 +1135,47 @@ CalcLocaltax3Desc=Οι αναφορές τοπικών φόρων είναι τ NoLocalTaxXForThisCountry=Σύμφωνα με τη ρύθμιση των φόρων (Βλέπε %s - %s - %s), η χώρα σας δεν χρειάζεται να χρησιμοποιεί τέτοιου είδους φόρους LabelUsedByDefault=Ετικέτα που χρησιμοποιείται από προεπιλογή εάν δεν υπάρχει μετάφραση για τον κώδικα LabelOnDocuments=Ετικέτα στα έγγραφα -LabelOrTranslationKey=Κλειδί ετικέτας ή μετάφρασης +LabelOrTranslationKey=Ετικέτα ή όρος μετάφρασης ValueOfConstantKey=Τιμή σταθεράς διαμόρφωσης ConstantIsOn=Η επιλογή %s είναι ενεργοποιημένη NbOfDays=Αριθ. Ημερών AtEndOfMonth=Στο τέλος του μήνα -CurrentNext=Τρέχουσα / Επόμενη +CurrentNext=Μια δεδομένη ημέρα του μήνα Offset=Απόκλιση -AlwaysActive=Πάντα εν ενεργεία +AlwaysActive=Πάντα ενεργός Upgrade=Αναβάθμιση MenuUpgrade=Αναβάθμιση / Επέκταση -AddExtensionThemeModuleOrOther=Εγκαταστήστε / εγκαταστήστε την εξωτερική εφαρμογή / ενότητα -WebServer=Διακομιστής Ιστοσελίδων -DocumentRootServer=Ριζικός φάκελος διακομιστή ιστοσελίδων -DataRootServer=Φάκελος Εγγράφων +AddExtensionThemeModuleOrOther=Ανάπτυξη / εγκατάσταση εξωτερικής εφαρμογής / ενότητας +WebServer=Διακομιστής Ιστού +DocumentRootServer=Ο ριζικός κατάλογος του διακομιστή Ιστού +DataRootServer=Κατάλογος αρχείων δεδομένων IP=IP Port=Θύρα -VirtualServerName=Virtual server name +VirtualServerName=Όνομα εικονικού διακομιστή OS=OS -PhpWebLink=Web-Php link +PhpWebLink=Σύνδεσμος Web-Php Server=Server Database=Βάση Δεδομένων -DatabaseServer=Υπολογιστής ΒΔ -DatabaseName=Όνομα ΒΔ -DatabasePort=Θύρα ΒΔ -DatabaseUser=Χρήστης ΒΔ -DatabasePassword=Συνθηματικό ΒΔ +DatabaseServer=Κεντρικός υπολογιστής βάσης δεδομένων +DatabaseName=Όνομα βάσης δεδομένων +DatabasePort=Θύρα βάσης δεδομένων +DatabaseUser=Χρήστης βάσης δεδομένων +DatabasePassword=Κωδικός πρόσβασης βάσης δεδομένων Tables=Πίνακες TableName=Όνομα Πίνακα -NbOfRecord=Αριθ. Εγγραφών +NbOfRecord=Αριθμός Εγγραφών Host=Διακομιστής -DriverType=Driver type +DriverType=Τύπος προγράμματος οδήγησης SummarySystem=Σύνοψη πληροφοριών συστήματος -SummaryConst=Λίστα όλων των παραμέτρων ρύθμισης Dolibarr +SummaryConst=Λίστα όλων των παραμέτρων ρύθμισης του Dolibarr MenuCompanySetup=Εταιρεία / Οργανισμός DefaultMenuManager= Τυπικός διαχειριστής μενού DefaultMenuSmartphoneManager=Διαχειριστής μενού Smartphone Skin=Θέμα -DefaultSkin=Προκαθορισμένο Θέμα -MaxSizeList=Max length for list +DefaultSkin=Βασικό Θέμα +MaxSizeList=Μέγιστο μήκος για λίστα DefaultMaxSizeList=Προεπιλεγμένο μέγιστο μέγεθος για λίστες -DefaultMaxSizeShortList=Προεπιλεγμένο μέγιστο μήκος για σύντομες λίστες (δηλ. Σε κάρτα πελάτη) +DefaultMaxSizeShortList=Προεπιλεγμένο μέγιστο μήκος για σύντομες λίστες (π.χ. Σε κάρτα πελάτη) MessageOfDay=Μήνυμα της ημέρας MessageLogin=Μήνυμα σελίδας εισόδου LoginPage=Σελίδα σύνδεσης @@ -1172,7 +1183,7 @@ BackgroundImageLogin=Εικόνα φόντου PermanentLeftSearchForm=Μόνιμη φόρμα αναζήτησης στο αριστερό μενού DefaultLanguage=Προεπιλεγμένη γλώσσα EnableMultilangInterface=Ενεργοποιήστε την πολυγλωσσική υποστήριξη για συσχετισμούς πελατών ή προμηθευτών -EnableShowLogo=Εμφανίστε το λογότυπο της εταιρείας στο μενού +EnableShowLogo=Εμφάνιση λογότυπου εταιρείας στο μενού CompanyInfo=Εταιρεία / Οργανισμός CompanyIds=Ταυτότητα εταιρείας / οργανισμού CompanyName=Όνομα @@ -1182,129 +1193,133 @@ CompanyTown=Πόλη CompanyCountry=Χώρα CompanyCurrency=Βασικό Νόμισμα CompanyObject=Αντικείμενο της εταιρίας -IDCountry=Χώρα αναγνώρισης -Logo=Logo -LogoDesc=Κύριο λογότυπο της εταιρείας. Θα χρησιμοποιηθεί στα παραγόμενα έγγραφα (PDF, ...) +IDCountry=Αναγνωριστικό χώρας +Logo=Λογότυπο +LogoDesc=Το λογότυπο της εταιρείας. Θα χρησιμοποιηθεί στα παραγόμενα έγγραφα (PDF, ...) LogoSquarred=Λογότυπο (τετράγωνο) -LogoSquarredDesc=Πρέπει να είναι ένα τετράγωνο εικονίδιο (πλάτος = ύψος). Αυτό το λογότυπο θα χρησιμοποιηθεί ως το αγαπημένο εικονίδιο ή άλλη ανάγκη, όπως για την επάνω γραμμή μενού (αν δεν είναι απενεργοποιημένη στην εγκατάσταση απεικόνισης). -DoNotSuggestPaymentMode=Χωρίς πρόταση πληρωμής +LogoSquarredDesc=Πρέπει να είναι ένα τετράγωνο εικονίδιο (πλάτος = ύψος). Αυτό το λογότυπο θα χρησιμοποιηθεί ως το αγαπημένο εικονίδιο ή για άλλη χρήση, όπως για την επάνω γραμμή μενού (αν δεν είναι απενεργοποιημένη στην εγκατάσταση απεικόνισης). +DoNotSuggestPaymentMode=Μη προτείνετε NoActiveBankAccountDefined=Δεν έχει οριστεί ενεργός λογαριασμός τράπεζας -OwnerOfBankAccount=Ιδιοκτήτης του λογαριασμού τράπεζας %s -BankModuleNotActive=Bank accounts module not enabled +OwnerOfBankAccount=Ιδιοκτήτης λογαριασμού τράπεζας %s +BankModuleNotActive=Η ενότητα τραπεζικών λογαριασμών δεν είναι ενεργοποιημένη ShowBugTrackLink=Εμφάνιση του συνδέσμου " %s " ShowBugTrackLinkDesc=Διατηρήστε το κενό για να μην εμφανίζεται αυτός ο σύνδεσμος, χρησιμοποιήστε την τιμή "github" για τον σύνδεσμο προς το έργο Dolibarr ή ορίστε απευθείας μια διεύθυνση url "https://..." -Alerts=Συναγερμοί -DelaysOfToleranceBeforeWarning=Εμφάνιση προειδοποιητικής ειδοποίησης για... -DelaysOfToleranceDesc=Ορίστε την καθυστέρηση πριν εμφανιστεί στην οθόνη το εικονίδιο ειδοποίησης %s στην οθόνη για το καθυστερημένο στοιχείο. -Delays_MAIN_DELAY_ACTIONS_TODO=Τα προγραμματισμένα συμβάντα (γεγονότα της ατζέντας) δεν ολοκληρώθηκαν +Alerts=Ειδοποιήσεις +DelaysOfToleranceBeforeWarning=Εμφάνιση προειδοποίησης για... +DelaysOfToleranceDesc=Ρυθμίστε την καθυστέρηση προτού εμφανιστεί στην οθόνη ένα εικονίδιο ειδοποίησης %s για το στοιχείο που έχει καθυστερήσει. +Delays_MAIN_DELAY_ACTIONS_TODO=Τα προγραμματισμένα συμβάντα (γεγονότα της ατζέντας) που δεν ολοκληρώθηκαν Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Το έργο δεν έκλεισε εγκαίρως Delays_MAIN_DELAY_TASKS_TODO=Η προγραμματισμένη εργασία (εργασίες έργου) δεν ολοκληρώθηκε Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Η παραγγελία δεν υποβλήθηκε σε επεξεργασία Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Η παραγγελία αγοράς δεν υποβλήθηκε σε επεξεργασία -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Η πρόταση δεν έκλεισε -Delays_MAIN_DELAY_PROPALS_TO_BILL=Η πρόταση δεν χρεώνεται +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Η προσφορά δεν έκλεισε +Delays_MAIN_DELAY_PROPALS_TO_BILL=Η προσφορά δεν τιμολογήθηκε Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Υπηρεσία για ενεργοποίηση -Delays_MAIN_DELAY_RUNNING_SERVICES=Έληξε υπηρεσία -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Μη πληρωμένο τιμολόγιο πωλητή -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Μη πληρωθέν τιμολόγιο πελατών -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Εκκρεμούσα συμφιλίωση τραπεζών +Delays_MAIN_DELAY_RUNNING_SERVICES=Ληγμένη υπηρεσία +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Ανεξόφλητα τιμολόγια προμηθευτή +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Ανεξόφλητα τιμολόγια πελάτη +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Εκκρεμεί ο τραπεζικός συμβιβασμός Delays_MAIN_DELAY_MEMBERS=Καθυστερημένη συνδρομή μέλους -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Ελέγξτε ότι η κατάθεση δεν έγινε -Delays_MAIN_DELAY_EXPENSEREPORTS=Έκθεση εξόδων για έγκριση -Delays_MAIN_DELAY_HOLIDAYS=Αφήστε τα αιτήματα για έγκριση +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Η κατάθεση επιταγής δεν έγινε +Delays_MAIN_DELAY_EXPENSEREPORTS=Αναφορά εξόδων προς έγκριση +Delays_MAIN_DELAY_HOLIDAYS=Αιτήματα άδειας προς έγκριση SetupDescription1=Πριν ξεκινήσετε τη χρήση του Dolibarr πρέπει να οριστούν ορισμένες αρχικές παράμετροι και να ενεργοποιηθούν / διαμορφωθούν οι ενότητες. SetupDescription2=Οι ακόλουθες δύο ενότητες είναι υποχρεωτικές (οι δύο πρώτες καταχωρίσεις στο μενού Ρύθμιση): -SetupDescription3=  %s -> %s

    Βασικές παράμετροι που χρησιμοποιούνται για την προσαρμογή της προεπιλεγμένης συμπεριφοράς της εφαρμογής σας (π.χ. για λειτουργίες που σχετίζονται με τη χώρα). +SetupDescription3=%s ->%s

    Βασικές παράμετροι που χρησιμοποιούνται για την προσαρμογή της προεπιλεγμένης συμπεριφοράς της εφαρμογής σας (π.χ. για λειτουργίες που σχετίζονται με τη χώρα). SetupDescription4=  %s -> %s

    Αυτό το λογισμικό είναι μια σειρά από πολλές ενότητες / εφαρμογές. Οι ενότητες που σχετίζονται με τις ανάγκες σας πρέπει να ενεργοποιηθούν και να διαμορφωθούν. Οι καταχωρήσεις μενού θα εμφανιστούν με την ενεργοποίηση αυτών των ενοτήτων. -SetupDescription5=Άλλες καταχωρίσεις μενού ρυθμίσεων διαχειρίζονται προαιρετικές παραμέτρ +SetupDescription5=Άλλες καταχωρήσεις του μενού Ρυθμίσεις αφορούν σε προαιρετικές παραμέτρους. SetupDescriptionLink= %s - %s SetupDescription3b=Βασικές παράμετροι που χρησιμοποιούνται για την προσαρμογή της προεπιλεγμένης συμπεριφοράς της εφαρμογής σας (π.χ. για λειτουργίες που σχετίζονται με τη χώρα). -SetupDescription4b=Αυτό το λογισμικό είναι μια σουίτα πολλών λειτουργικών μονάδων/εφαρμογών. Οι ενότητες που σχετίζονται με τις ανάγκες σας πρέπει να είναι ενεργοποιημένες και ρυθμισμένες. Οι καταχωρήσεις μενού θα εμφανιστούν με την ενεργοποίηση αυτών των μονάδων. +SetupDescription4b=Αυτό το λογισμικό είναι μια σουίτα πολλών λειτουργικών ενοτήτων/εφαρμογών. Οι ενότητες που σχετίζονται με τις ανάγκες σας πρέπει να είναι ενεργοποιημένες και ρυθμισμένες. Οι καταχωρήσεις μενού θα εμφανιστούν με την ενεργοποίηση αυτών των ενοτήτων. AuditedSecurityEvents=Συμβάντα ασφαλείας που ελέγχθηκαν NoSecurityEventsAreAduited=Δεν ελέγχονται συμβάντα ασφαλείας. Μπορείτε να τα ενεργοποιήσετε από το μενού %s -Audit=Λογιστικοί έλεγχοι -InfoDolibarr=Πληροφορίες Dolibarr -InfoBrowser=Πληροφορίες Φυλλομετρητή -InfoOS=Πληροφορίες OS -InfoWebServer=Πληροφορίες Web Server -InfoDatabase=Πληροφορίες Συστήματος ΒΔ +Audit=Συμβάντα ασφαλείας +InfoDolibarr=Σχετικά με το Dolibarr +InfoBrowser=Σχετικά με το πρόγραμμα περιήγησης +InfoOS=Σχετικά με το OS +InfoWebServer=Σχετικά με τον διακομιστή Web +InfoDatabase=Πληροφορίες Βάσης Δεδομένων InfoPHP=Πληροφορίες PHP InfoPerf=Πληροφορίες επιδόσεων InfoSecurity=Σχετικά με την Ασφάλεια BrowserName=Όνομα φυλλομετρητή BrowserOS=Λειτουργικό σύστημα φυλλομετρητή ListOfSecurityEvents=Λίστα συμβάντων ασφαλείας Dolibarr -SecurityEventsPurged=Συμβάντα ασφαλείας εξαγνίζονται +SecurityEventsPurged=Εκκαθαρίστηκαν τα συμβάντα ασφαλείας +TrackableSecurityEvents=Συμβάντα ασφαλείας με δυνατότητα παρακολούθησης LogEventDesc=Ενεργοποιήστε την καταγραφή για συγκεκριμένα συμβάντα ασφαλείας. Οι διαχειριστές μέσω του μενού %s - %s . Προειδοποίηση, αυτή η δυνατότητα μπορεί να δημιουργήσει ένα μεγάλο όγκο δεδομένων στη βάση δεδομένων. -AreaForAdminOnly=Οι παράμετροι εγκατάστασης μπορούν να οριστούν μόνο από χρήστες διαχειριστή . -SystemInfoDesc=Οι πληροφορίες συστήματος είναι διάφορες τεχνικές πληροφορίες που λαμβάνετε μόνο στη λειτουργία ανάγνωσης και είναι ορατές μόνο για τους διαχειριστές. -SystemAreaForAdminOnly=Αυτή η περιοχή είναι διαθέσιμη μόνο σε χρήστες διαχειριστή. Τα δικαιώματα χρήστη Dolibarr δεν μπορούν να αλλάξουν αυτόν τον περιορισμό. +AreaForAdminOnly=Οι παράμετροι εγκατάστασης μπορούν να οριστούν μόνο από διαχειριστές . +SystemInfoDesc=Οι πληροφορίες συστήματος είναι διάφορες τεχνικές πληροφορίες που λαμβάνετε μόνο σε λειτουργία ανάγνωσης και είναι ορατές μόνο για τους διαχειριστές. +SystemAreaForAdminOnly=Αυτος ο τομεας είναι διαθέσιμος μόνο σε διαχειριστές. Τα δικαιώματα χρήστη Dolibarr δεν μπορούν να αλλάξουν αυτόν τον περιορισμό. CompanyFundationDesc=Επεξεργαστείτε τις πληροφορίες της εταιρείας / του οργανισμού σας. Κάντε κλικ στο κουμπί "%s" στο κάτω μέρος της σελίδας όταν τελειώσετε. -AccountantDesc=Εάν έχετε έναν εξωτερικό λογιστή / λογιστή, μπορείτε να επεξεργαστείτε εδώ τις πληροφορίες του. -AccountantFileNumber=Λογιστικό κώδικα +MoreNetworksAvailableWithModule=Ενδέχεται να είναι διαθέσιμα περισσότερα κοινωνικά δίκτυα ενεργοποιώντας την ενότητα "Κοινωνικά δίκτυα". +AccountantDesc=Εάν έχετε έναν εξωτερικό λογιστή, μπορείτε να επεξεργαστείτε εδώ τις πληροφορίες του. +AccountantFileNumber=Κωδικός λογιστή DisplayDesc=Οι παράμετροι που επηρεάζουν την εμφάνιση και την παρουσίαση της εφαρμογής μπορούν να τροποποιηθούν εδώ. AvailableModules=Διαθέσιμες εφαρμογές / ενότητες -ToActivateModule=Για να ενεργοποιήσετε Ενθέματα, μεταβείτε στην Περιοχή εγκατάστασης (Αρχική σελίδα-> Ρυθμίσεις-> Ενθέματα). +ToActivateModule=Για να ενεργοποιήσετε ενότητες, μεταβείτε στην Περιοχή εγκατάστασης (Αρχική-> Ρυθμίσεις-> Ενότητες/Εφαρμογές). SessionTimeOut=Λήξη χρόνου για τη συνεδρία -SessionExplanation=Αυτός ο αριθμός εγγυάται ότι η σύνοδος δεν θα λήξει ποτέ πριν από αυτήν την καθυστέρηση, εάν το πρόγραμμα καθαρισμού συνεδριών γίνεται από εσωτερικό πρόγραμμα καθαρισμού συνεδριών PHP (και τίποτα άλλο). Το εσωτερικό καθαριστικό συνεδρίας της PHP δεν εγγυάται ότι η περίοδος λήξης θα λήξει μετά από αυτήν την καθυστέρηση. Θα λήξει μετά από αυτή την καθυστέρηση και όταν εκτελείται το πρόγραμμα καθαρισμού συνεδριών, έτσι ώστε κάθε %s / %s να έχει πρόσβαση, αλλά μόνο κατά την πρόσβαση από άλλες συνεδρίες (εάν η τιμή είναι 0, σημαίνει ότι η εκκαθάριση της περιόδου λειτουργίας γίνεται μόνο από μια εξωτερική διαδικασία) .
    Σημείωση: Σε ορισμένους διακομιστές με μηχανισμό εξωτερικού καθαρισμού συνεδριών (cron κάτω από debian, ubuntu ...), οι συνεδρίες μπορούν να καταστραφούν μετά από μια περίοδο που ορίζεται από μια εξωτερική ρύθμιση, ανεξάρτητα από την αξία που εισάγεται εδώ. +SessionExplanation=Αυτός ο αριθμός εγγυάται ότι η περίοδος λειτουργίας δεν λήγει πριν από αυτό το χρονικό διάστημα, όταν παρέχεται εκκαθάριση περιόδου λειτουργίας από τον εσωτερικό μηχανισμό καθαρισμού της PHP (και κανένας άλλος). Η εκκαθάριση της εσωτερικής περιόδου λειτουργίας PHP δεν εγγυάται ότι η περίοδος λειτουργίας λήγει ακριβώς αυτήν τη στιγμή. Θα λήξει μετά από αυτό το χρονικό διάστημα, αλλά όταν εκκαθαριστούν οι περίοδοι λειτουργίας, που πραγματοποιείται περίπου κάθε %s/%s προσβάσεις, , αλλά μόνο κατά τις προσβάσεις που πραγματοποιούνται από άλλες περιόδους σύνδεσης (εάν η τιμή είναι 0, αυτό σημαίνει ότι ο καθαρισμός της περιόδου σύνδεσης γίνεται με μια εξωτερική διαδικασία).
    \nΣημείωση: σε ορισμένους διακομιστές που είναι εξοπλισμένοι με μηχανισμό καθαρισμού εξωτερικής συνεδρίας (cron στο Debian, Ubuntu…), οι συνεδρίες μπορούν να καταστραφούν μετά από καθυστέρηση, που ορίζεται από μια εξωτερική διαμόρφωση, ανεξάρτητα από την τιμή που εισάγεται εδώ. SessionsPurgedByExternalSystem=Οι περίοδοι σύνδεσης σε αυτόν τον διακομιστή φαίνεται να καθαρίζονται από έναν εξωτερικό μηχανισμό (cron υπό debian, ubuntu ...), πιθανώς κάθε %s δευτερόλεπτα (= η τιμή της παραμέτρου session.gc_maxlifetime). Η Αλλαγή της τιμή της παραμέτρου από εδώ δεν θα έχει κάποιο αποτέλεσμα. Πρέπει να ζητήσετε από τον διαχειριστή του διακομιστή να αλλάξει την καθυστέρηση συνεδρίας. -TriggersAvailable=Available triggers -TriggersDesc=Οι ενεργοποιητές είναι αρχεία που θα τροποποιήσουν τη συμπεριφορά της ροής εργασίας Dolibarr μόλις αντιγραφεί στον κατάλογο htdocs / core / trigger . Συνειδητοποιούν νέες ενέργειες που ενεργοποιούνται σε συμβάντα Dolibarr (δημιουργία νέας εταιρείας, επικύρωση τιμολογίου, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Επιλέξτε τη μέθοδο που θα χρησιμοποιηθεί για τους κωδικούς πρόσβασης που δημιουργούνται αυτόματα. +TriggersAvailable=Διαθέσιμα triggers +TriggersDesc=Τα triggers είναι αρχεία που θα τροποποιήσουν τη συμπεριφορά της ροής εργασίας Dolibarr μόλις αντιγραφουν στον κατάλογο htdocs/core/triggers . Πραγματοποιούν νέες ενέργειες που ενεργοποιούνται από συμβάντα Dolibarr (δημιουργία νέας εταιρείας, επικύρωση τιμολογίου, ...). +TriggerDisabledByName=Τα triggers σε αυτό το αρχείο ειναι απενεργοποιημένα από το επίθημα -NORUN στο όνομά τους. +TriggerDisabledAsModuleDisabled=Τα triggers σε αυτό το αρχείο είναι απενεργοποιημένα επειδή η ενότητα %s είναι απενεργοποιημένη. +TriggerAlwaysActive=Τα triggers σε αυτό το αρχείο είναι πάντα ενεργά, όποιες κι αν είναι οι ενεργοποιημένες ενότητες Dolibarr. +TriggerActiveAsModuleActive=Τα triggers σε αυτό το αρχείο είναι ενεργά καθώς η ενότητα %s είναι ενεργοποιημένη. +GeneratedPasswordDesc=Επιλέξτε τη μέθοδο που θα χρησιμοποιηθεί για κωδικούς πρόσβασης που δημιουργούνται αυτόματα. DictionaryDesc=Εισάγετε όλα τα δεδομένα αναφοράς. Μπορείτε να προσθέσετε τις τιμές σας στην προεπιλογή. ConstDesc=Αυτή η σελίδα επιτρέπει την επεξεργασία (αντικατάσταση) παραμέτρων που δεν είναι διαθέσιμες σε άλλες σελίδες. Αυτές είναι κυρίως δεσμευμένες παράμετροι για προγραμματιστές/ προχωρημένη αντιμετώπιση προβλημάτων μόνο. -MiscellaneousDesc=Όλες οι άλλες παράμετροι που σχετίζονται με την ασφάλεια καθορίζονται εδώ. +MiscellaneousDesc=Όλες οι άλλες παράμετροι που σχετίζονται με την ασφάλεια ορίζονται εδώ. LimitsSetup=Ρύθμιση Ορίων/Ακριβείας -LimitsDesc=Μπορείτε να ορίσετε εδώ όρια, ακρίβειες και βελτιστοποιήσεις που χρησιμοποιούνται από τον Dolibarr -MAIN_MAX_DECIMALS_UNIT=Μέγιστη. δεκαδικά ψηφία για τις τιμές μονάδας -MAIN_MAX_DECIMALS_TOT=Μέγιστη. δεκαδικά ψηφία για τις συνολικές τιμές -MAIN_MAX_DECIMALS_SHOWN=Μέγιστη. δεκαδικά ψηφία για τις τιμές που εμφανίζονται στην οθόνη . Προσθέστε μια ελλειψοειδή ... μετά από αυτήν την παράμετρο (π.χ. "2 ...") αν θέλετε να δείτε το " ... " που έχει προστεθεί στην περικομμένη τιμή. +LimitsDesc=Μπορείτε να ορίσετε όρια, ακρίβεια και βελτιστοποιήσεις που χρησιμοποιούνται από το Dolibarr εδώ +MAIN_MAX_DECIMALS_UNIT=Μέγιστος αριθμός δεκαδικών για τις τιμές μονάδας +MAIN_MAX_DECIMALS_TOT=Μέγιστος αριθμός δεκαδικών για τις συνολικές τιμές +MAIN_MAX_DECIMALS_SHOWN=Μέγιστος αριθμός δεκαδικών για τις τιμές που εμφανίζονται στην οθόνη . Προσθέστε μια έλλειψη ... μετά από αυτήν την παράμετρο (π.χ. "2...") εάν θέλετε να δείτε το " ... " με την κατάληξη στην τιμή. MAIN_ROUNDING_RULE_TOT=Βήμα στρογγυλοποίησης (για χώρες όπου η στρογγυλοποίηση γίνεται σε κάτι διαφορετικό από τη βάση 10. Για παράδειγμα, βάλτε 0,05 αν η στρογγυλοποίηση γίνεται με 0,05 βήματα) -UnitPriceOfProduct=Καθαρή τιμή επί του προϊόντος -TotalPriceAfterRounding=Συνολική τιμή (χωρίς Φ.Π.Α.) μετά από στρογγυλοποίηση -ParameterActiveForNextInputOnly=Παράμετρος αποτελεσματική μόνο για την επόμενη είσοδο -NoEventOrNoAuditSetup=Δεν έχει καταγραφεί κανένα συμβάν ασφαλείας. Αυτό είναι φυσιολογικό εάν ο έλεγχος δεν έχει ενεργοποιηθεί στη σελίδα "Εγκατάσταση - Ασφάλεια - Συμβάντα". +UnitPriceOfProduct=Καθαρή τιμή προϊόντος +TotalPriceAfterRounding=Συνολική τιμή (με ή χωρίς Φ.Π.Α.) μετά από στρογγυλοποίηση +ParameterActiveForNextInputOnly=Η παράμετρος ισχύει μόνο για την επόμενη είσοδο +NoEventOrNoAuditSetup=Δεν έχει καταγραφεί κανένα συμβάν ασφαλείας. Αυτό είναι φυσιολογικό εάν ο Έλεγχος δεν έχει ενεργοποιηθεί στη σελίδα "Ρυθμίσεις - Ασφάλεια - Συμβάντα ασφαλείας". NoEventFoundWithCriteria=Δεν βρέθηκε συμβάν ασφαλείας για αυτά τα κριτήρια αναζήτησης. SeeLocalSendMailSetup=Δείτε την τοπική ρύθμιση sendmail BackupDesc=Ένα πλήρες αντίγραφο ασφαλείας μιας εγκατάστασης Dolibarr απαιτεί δύο βήματα. -BackupDesc2=Δημιουργήστε αντίγραφα ασφαλείας των περιεχομένων του καταλόγου "έγγραφα" ( %s ) που περιέχει όλα τα αρχεία που έχουν μεταφορτωθεί και δημιουργηθεί. Αυτό θα περιλαμβάνει επίσης όλα τα αρχεία σκουπιδιών που δημιουργούνται στο Βήμα 1. Αυτή η λειτουργία μπορεί να διαρκέσει αρκετά λεπτά. -BackupDesc3=Δημιουργήστε αντίγραφα ασφαλείας της δομής και των περιεχομένων της βάσης δεδομένων σας ( %s ) σε ένα αρχείο ένδειξης σφαλμάτων. Για αυτό, μπορείτε να χρησιμοποιήσετε τον ακόλουθο βοηθό. +BackupDesc2=Δημιουργήστε αντίγραφα ασφαλείας των περιεχομένων του καταλόγου "έγγραφα" ( %s ) που περιέχει όλα τα αρχεία που έχουν μεταφορτωθεί και δημιουργηθεί. Αυτό θα περιλαμβάνει επίσης όλα τα αντίγραφα MySql που δημιουργήθηκαν στο Βήμα 1. Αυτή η λειτουργία μπορεί να διαρκέσει αρκετά λεπτά. +BackupDesc3=Δημιουργήστε αντίγραφα ασφαλείας της δομής και των περιεχομένων της βάσης δεδομένων σας ( %s ) σε ένα αρχείο. Για αυτό, μπορείτε να χρησιμοποιήσετε τον παρακάτω βοηθό. BackupDescX=Ο αρχειοθετημένος κατάλογος θα πρέπει να αποθηκεύεται σε ασφαλές μέρος. -BackupDescY=Το αρχείο σφαλμάτων που δημιουργείται πρέπει να αποθηκεύεται σε ασφαλές μέρος. -BackupPHPWarning=Δεν είναι εγγυημένη η δημιουργία αντιγράφων ασφαλείας με αυτήν τη μέθοδο. Προηγούμενο συνιστάται. +BackupDescY=Το αρχείο που δημιουργείται θα πρέπει να αποθηκευτεί σε ασφαλές μέρος. +BackupPHPWarning=Η δημιουργία αντιγράφων ασφαλείας δεν είναι εγγυημένη με αυτήν τη μέθοδο. Προτείνεται η προηγούμενη. RestoreDesc=Για να επαναφέρετε ένα αντίγραφο ασφαλείας Dolibarr, απαιτούνται δύο βήματα. -RestoreDesc2=Επαναφέρετε το αρχείο αντιγράφων ασφαλείας (για παράδειγμα, αρχείο zip) του καταλόγου "έγγραφα" σε μια νέα εγκατάσταση Dolibarr ή σε αυτόν τον τρέχοντα κατάλογο εγγράφων ( %s ). -RestoreDesc3=Επαναφέρετε τη δομή βάσης δεδομένων και τα δεδομένα από ένα αρχείο εφεδρικών αντιγράφων στη βάση δεδομένων της νέας εγκατάστασης Dolibarr ή στη βάση δεδομένων αυτής της τρέχουσας εγκατάστασης ( %s ). Προειδοποίηση, αφού ολοκληρωθεί η επαναφορά, πρέπει να χρησιμοποιήσετε ένα login / password, που υπήρχε από το χρόνο / εγκατάσταση του backup για να συνδεθείτε ξανά.
    Για να επαναφέρετε μια εφεδρική βάση δεδομένων σε αυτήν την τρέχουσα εγκατάσταση, μπορείτε να ακολουθήσετε αυτόν τον βοηθό. -RestoreMySQL=MySQL import -ForcedToByAModule=This rule is forced to %s by an activated module +RestoreDesc2=Επαναφέρετε το αρχείο αντιγράφου ασφαλείας (για παράδειγμα αρχείο zip) του καταλόγου "έγγραφα" σε μια νέα εγκατάσταση Dolibarr ή στον τρέχων κατάλογο εγγράφων ( %s ). +RestoreDesc3=Επαναφέρετε τη δομή της βάσης δεδομένων και τα δεδομένα από ένα αρχείο αντιγράφου ασφαλείας στη βάση δεδομένων της νέας εγκατάστασης Dolibarr ή στη βάση δεδομένων της τρέχουσας εγκατάστασης ( %s ). Προειδοποίηση, μόλις ολοκληρωθεί η επαναφορά, πρέπει να χρησιμοποιήσετε ένα όνομα χρήστη/κωδικό πρόσβασης, που υπήρχε από τον χρόνο δημιουργίας αντιγράφων ασφαλείας/εγκατάστασης για να συνδεθείτε ξανά.
    Για να επαναφέρετε μια βάση δεδομένων αντιγράφων ασφαλείας σε αυτήν την τρέχουσα εγκατάσταση, μπορείτε να ακολουθήσετε αυτόν τον βοηθό. +RestoreMySQL=Εισαγωγή MySQL +ForcedToByAModule=Αυτός ο κανόνας επιβάλλεται σε %s από μια ενεργοποιημένη ενότητα ValueIsForcedBySystem=Αυτή η τιμή είναι κλειδωμένη από το σύστημα. Δεν μπορείς να την αλλάξεις. PreviousDumpFiles=Υπάρχοντα αρχεία αντιγράφων ασφαλείας PreviousArchiveFiles=Υπάρχοντα αρχεία αρχειοθέτησης WeekStartOnDay=Πρώτη μέρα της εβδομάδας RunningUpdateProcessMayBeRequired=Η εκτέλεση της διαδικασίας αναβάθμισης φαίνεται να απαιτείται (Η έκδοση προγράμματος %s διαφέρει από την έκδοση βάσης δεδομένων %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download +YouMustRunCommandFromCommandLineAfterLoginToUser=Πρέπει να εκτελέσετε αυτήν την εντολή από τη γραμμή εντολών μετά τη σύνδεση σε ένα κέλυφος με χρήστη %s ή πρέπει να προσθέσετε την επιλογή -W στο τέλος της γραμμής εντολών για να παρέχετε τον %sκωδικό πρόσβασης. +YourPHPDoesNotHaveSSLSupport=Οι functions SSL δεν είναι διαθέσιμες στην PHP σας +DownloadMoreSkins=Περισσότερα skins για λήψη SimpleNumRefModelDesc=Επιστρέφει τον αριθμό αναφοράς με τη μορφή %syymm-nnnn όπου yy είναι το έτος, mm είναι ο μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά +SimpleRefNumRefModelDesc=Επιστρέφει τον αριθμό αναφοράς στη μορφή n όπου n είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά +AdvancedNumRefModelDesc=Επιστρέφει τον αριθμό αναφοράς με τη μορφή %syymm-nnnn όπου yy είναι το έτος, mm είναι ο μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά SimpleNumRefNoDateModelDesc=Επιστρέφει τον αριθμό αναφοράς στη μορφή %s-nnnn όπου nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά ShowProfIdInAddress=Εμφάνιση επαγγελματικής ταυτότητας με διευθύνσεις ShowVATIntaInAddress=Απόκρυψη ενδοκοινοτικού ΑΦΜ -TranslationUncomplete=Ημιτελής μεταγλώττιση -MAIN_DISABLE_METEO=Απενεργοποιήστε τo εικονίδιο καιρού +TranslationUncomplete=Μερική μετάφραση +MAIN_DISABLE_METEO=Απενεργοποίηση του εικονιδίου καιρού MeteoStdMod=Τυπική λειτουργία -MeteoStdModEnabled=Τυπική λειτουργία ενεργοποιημένη -MeteoPercentageMod=Ποσοστιαία λειτουργία +MeteoStdModEnabled=Η τυπική λειτουργία ενεργοποιήθηκε +MeteoPercentageMod=Λειτουργία ποσοστού MeteoPercentageModEnabled=Η λειτουργία ποσοστού ενεργοποιήθηκε MeteoUseMod=Κάντε κλικ για να χρησιμοποιήσετε το %s -TestLoginToAPI=Δοκιμή για να συνδεθείτε API +TestLoginToAPI=Δοκιμή σύνδεσης στο API ProxyDesc=Ορισμένα χαρακτηριστικά του Dolibarr απαιτούν πρόσβαση στο Internet. Καθορίστε εδώ τις παραμέτρους σύνδεσης στο διαδίκτυο, όπως η πρόσβαση μέσω διακομιστή μεσολάβησης, εάν είναι απαραίτητο. -ExternalAccess=Εξωτερική / Πρόσβαση στο Διαδίκτυο +ExternalAccess=Εξωτερική / Διαδικτυακή Πρόσβαση MAIN_PROXY_USE=Χρησιμοποιήστε έναν διακομιστή μεσολάβησης (διαφορετικά η πρόσβαση είναι απευθείας στο διαδίκτυο) -MAIN_PROXY_HOST=Διακομιστής μεσολάβησης: Όνομα / Διεύθυνση +MAIN_PROXY_HOST=Διακομιστής μεσολάβησης: Όνομα/Διεύθυνση MAIN_PROXY_PORT=Διακομιστής μεσολάβησης: Θύρα MAIN_PROXY_USER=Διακομιστής μεσολάβησης: Σύνδεση / Χρήστης MAIN_PROXY_PASS=Διακομιστής μεσολάβησης: Κωδικός πρόσβασης @@ -1318,8 +1333,8 @@ ExtraFieldsThirdParties=Συμπληρωματικά χαρακτηριστικ ExtraFieldsContacts=Συμπληρωματικά χαρακτηριστικά (επαφές / διεύθυνση) ExtraFieldsMember=Συμπληρωματικά χαρακτηριστικά (μέλος) ExtraFieldsMemberType=Συμπληρωματικά χαρακτηριστικά (τύπος μέλους) -ExtraFieldsCustomerInvoices=Συμπληρωματικές ιδιότητες (τιμολόγια) -ExtraFieldsCustomerInvoicesRec=Συμπληρωματικά χαρακτηριστικά (τιμολόγια προτύπων) +ExtraFieldsCustomerInvoices=Συμπληρωματικά χαρακτηριστικά (τιμολόγια) +ExtraFieldsCustomerInvoicesRec=Συμπληρωματικά χαρακτηριστικά (πρότυπα τιμολόγια) ExtraFieldsSupplierOrders=Συμπληρωματικά χαρακτηριστικά (παραγγελίες) ExtraFieldsSupplierInvoices=Συμπληρωματικά χαρακτηριστικά (τιμολόγια) ExtraFieldsProject=Συμπληρωματικά χαρακτηριστικά (έργα) @@ -1327,40 +1342,40 @@ ExtraFieldsProjectTask=Συμπληρωματικά χαρακτηριστικά ExtraFieldsSalaries=Συμπληρωματικά χαρακτηριστικά (μισθοί) ExtraFieldHasWrongValue=Το χαρακτηριστικό %s έχει λάθος τιμή. AlphaNumOnlyLowerCharsAndNoSpace=μόνο αλφαριθμητικά και πεζά γράμματα χωρίς κενά -SendmailOptionNotComplete=Προσοχή, σε μερικά συστήματα Linux, για να στείλετε e-mail από το e-mail σας, το sendmail εγκατάστασης εκτέλεση πρέπει conatins επιλογή-βα (mail.force_extra_parameters παράμετρος σε php.ini αρχείο σας). Αν δεν ορισμένοι παραλήπτες λαμβάνουν μηνύματα ηλεκτρονικού ταχυδρομείου, προσπαθήστε να επεξεργαστείτε αυτή την PHP με την παράμετρο-mail.force_extra_parameters = βα). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Η δυνατότητα αποστολής μηνυμάτων χρησιμοποιώντας τη μέθοδο "PHP mail direct" θα δημιουργήσει ένα μήνυμα ηλεκτρονικού ταχυδρομείου που ενδέχεται να μην αναλύεται σωστά από ορισμένους διακομιστές αλληλογραφίας λήψης. Το αποτέλεσμα είναι ότι μερικά μηνύματα δεν μπορούν να διαβαστούν από άτομα που φιλοξενούνται από αυτές τις πλατφόρμες. Αυτή είναι η περίπτωση για ορισμένους παρόχους Διαδικτύου (π.χ.: Orange στη Γαλλία). Αυτό δεν είναι ένα πρόβλημα με Dolibarr ή PHP, αλλά με το διακομιστή αλληλογραφίας λήψης. Ωστόσο, μπορείτε να προσθέσετε μια επιλογή MAIN_FIX_FOR_BUGGED_MTA σε 1 στο Setup - Other για να τροποποιήσετε το Dolibarr για να αποφύγετε αυτό. Εντούτοις, ενδέχεται να αντιμετωπίσετε προβλήματα με άλλους διακομιστές που χρησιμοποιούν αυστηρά το πρότυπο SMTP. Η άλλη λύση (συνιστάται) είναι να χρησιμοποιήσετε τη μέθοδο "Βιβλιοθήκη υποδοχής SMTP" η οποία δεν έχει μειονεκτήματα. -TranslationSetup=Εγκατάσταση της μετάφρασης +SendmailOptionNotComplete=Προσοχή, σε μερικά συστήματα Linux, για να στείλετε e-mail από το e-mail σας, η ρύθμιση εκτέλεσης του sendmail πρέπει να περιέχει την επιλογή -ba (παράμετρος mail.force_extra_parameters στο php.ini αρχείο σας). Αν ορισμένοι παραλήπτες δεν λαμβάνουν email ποτε, προσπαθήστε να επεξεργαστείτε αυτή την παράμετρο PHP με mail.force_extra_parameters = -ba). +PathToDocuments=Διαδρομή προς έγγραφα +PathDirectory=Κατάλογος +SendmailOptionMayHurtBuggedMTA=Η δυνατότητα αποστολής μηνυμάτων χρησιμοποιώντας τη μέθοδο "PHP mail direct" θα δημιουργήσει ένα μήνυμα αλληλογραφίας που ενδέχεται να μην αναλυθεί σωστά από ορισμένους διακομιστές αλληλογραφίας λήψης. Το αποτέλεσμα είναι ότι ορισμένα μηνύματα δεν μπορούν να διαβαστούν από παραλήπτες που φιλοξενούνται σε αυτές τις πλατφόρμες με σφάλματα. Αυτό ισχύει για ορισμένους παρόχους Διαδικτύου (π.χ. Orange στη Γαλλία). Αυτό δεν είναι πρόβλημα του Dolibarr ή της PHP αλλά του mail server λήψης. Ωστόσο, μπορείτε να προσθέσετε την επιλογή MAIN_FIX_FOR_BUGGED_MTA στο 1 στο Ρυθμίσεις - Άλλες Ρυθμίσεις ώστε να τροποποιήσετε το Dolibarr και να το παρακάμψετε. Παρόλα αυτά, ενδέχεται να αντιμετωπίσετε προβλήματα με άλλους διακομιστές που χρησιμοποιούν αυστηρά το πρότυπο SMTP. Η άλλη λύση (που συνιστάται) είναι να χρησιμοποιήσετε τη μέθοδο "SMTP socket library" που δεν έχει μειονεκτήματα. +TranslationSetup=Ρύθμιση μετάφρασης TranslationKeySearch=Αναζήτηση ενός κλειδιού ή μιας συμβολοσειράς μετάφρασης TranslationOverwriteKey=Αντικαταστήστε μια μεταφραστική συμβολοσειρά -TranslationDesc=Πώς να ορίσετε τη γλώσσα προβολής:
    * Προεπιλογή / Systemwide: μενού Home -> Setup -> Display
    * Ανά χρήστη: Κάντε κλικ στο όνομα χρήστη που βρίσκεται στο επάνω μέρος της οθόνης και τροποποιήστε την καρτέλα User Display Setup στην κάρτα χρήστη. -TranslationOverwriteDesc=Μπορείτε επίσης να αντικαταστήσετε τις συμβολοσειρές που συμπληρώνουν τον παρακάτω πίνακα. Επιλέξτε τη γλώσσα σας από το αναπτυσσόμενο μενού "%s", εισαγάγετε τη συμβολοσειρά κλειδιού μετάφρασης σε "%s" και η νέα σας μετάφραση στο "%s" +TranslationDesc=Πώς να ορίσετε τη γλώσσα εμφάνισης:
    * Προεπιλογή/Σε όλο το σύστημα: Μενού Αρχική -> Ρυθμίσεις -> Εμφάνιση
    * Ανα χρήστη: Κάντε κλικ στο όνομα χρήστη στο πάνω μέρος της οθόνης και στην οθόνη και τροποποιήστε την καρτέλα Ρύθμιση εμφάνισης χρήστη . +TranslationOverwriteDesc=Μπορείτε επίσης να παρακάμψετε τις συμβολοσειρές Στον παρακάτω πίνακα. Επιλέξτε τη γλώσσα σας από το αναπτυσσόμενο μενού "%s", εισάγετε τη συμβολοσειρά του κλειδιού μετάφρασης στο "%s" και τη νέα σας μετάφραση στο "%s" TranslationOverwriteDesc2=Μπορείτε να χρησιμοποιήσετε την άλλη καρτέλα για να μάθετε ποιο μεταφραστικό κλειδί θέλετε να χρησιμοποιήσετε -TranslationString=Μεταφραστική σειρά -CurrentTranslationString=Τρέχουσα μεταφραστική σειρά +TranslationString=Μεταφραστική συμβολοσειρά +CurrentTranslationString=Τρέχουσα συμβολοσειρά μετάφρασης WarningAtLeastKeyOrTranslationRequired=Απαιτείται ένα κριτήριο αναζήτησης τουλάχιστον για το κλειδί ή τη μεταφραστική συμβολοσειρά NewTranslationStringToShow=Νέα συμβολοσειρά μετάφρασης για εμφάνιση -OriginalValueWas=Η αρχική μετάφραση αντικαθίσταται. Η αρχική τιμή ήταν:

    %s -TransKeyWithoutOriginalValue=Αναγκάσθηκε μια νέα μετάφραση για το κλειδί μετάφρασης ' %s ' που δεν υπάρχει σε κανένα αρχείο γλώσσας -TitleNumberOfActivatedModules=Ενεργοποιημένες μονάδες -TotalNumberOfActivatedModules=Ενεργοποιημένες μονάδες: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -YouMustEnableTranslationOverwriteBefore=Πρέπει πρώτα να ενεργοποιήσετε την αντικατάσταση μετάφρασης για να επιτρέπεται η αντικατάσταση μιας μετάφρασης +OriginalValueWas=Η αρχική μετάφραση αντικαταστάθηκε. Η αρχική τιμή ήταν:

    %s +TransKeyWithoutOriginalValue=Επιβάλατε μια νέα μετάφραση για το κλειδί μετάφρασης ' %s ' που δεν υπάρχει σε κανένα αρχείο γλώσσας +TitleNumberOfActivatedModules=Ενεργοποιημένες ενότητες +TotalNumberOfActivatedModules=Ενεργοποιημένες ενότητες: %s / %s +YouMustEnableOneModule=Πρέπει να ενεργοποιήσετε τουλάχιστον 1 ενότητα +YouMustEnableTranslationOverwriteBefore=Πρέπει πρώτα να ενεργοποιήσετε την αντικατάσταση μετάφρασης για να σας επιτραπεί η αντικατάσταση μιας μετάφρασης ClassNotFoundIntoPathWarning=Η κλάση %s δεν βρέθηκε στη διαδρομή PHP -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Σημειώστε ότι μόνο οι παρακάτω ενότητες είναι διαθέσιμες σε εξωτερικούς χρήστες (ανεξάρτητα από τα δικαιώματα αυτών των χρηστών) και μόνο αν έχουν εκχωρηθεί δικαιώματα:
    -SuhosinSessionEncrypt=Session storage encrypted by Suhosin +YesInSummer=Ναι το καλοκαίρι +OnlyFollowingModulesAreOpenedToExternalUsers=Σημείωση, μόνο οι ακόλουθες ενότητες είναι διαθέσιμες σε εξωτερικούς χρήστες (ανεξάρτητα από τα δικαιώματα αυτών των χρηστών) και μόνο εάν παραχωρηθούν δικαιώματα:
    +SuhosinSessionEncrypt=Αποθηκευτικός χώρος συνεδρίας κρυπτογραφημένος από το Suhosin ConditionIsCurrently=Η κατάσταση είναι αυτή τη στιγμή %s YouUseBestDriver=Χρησιμοποιείτε τον οδηγό %s ο οποίος είναι ο καλύτερος διαθέσιμος οδηγός. YouDoNotUseBestDriver=Χρησιμοποιείτε τον οδηγό %s αλλά συνιστάται ο οδηγός %s. NbOfObjectIsLowerThanNoPb=Έχετε μόνο %s %s στη βάση δεδομένων. Αυτό δεν απαιτεί ιδιαίτερη βελτιστοποίηση. ComboListOptim=Βελτιστοποίηση φόρτωσης συνδυαστικής λίστας SearchOptim=Βελτιστοποίηση αναζήτησης -YouHaveXObjectUseComboOptim=Έχετε %s %s στη βάση δεδομένων. Μπορείτε να μεταβείτε στη ρύθμιση της ενότητας για να ενεργοποιήσετε τη φόρτωση της λίστας συνδυασμών στο συμβάν που πατάτε το πλήκτρο. +YouHaveXObjectUseComboOptim=Έχετε %s %s στη βάση δεδομένων. Μπορείτε να μεταβείτε στη ρύθμιση της ενότητας για να ενεργοποιήσετε τη φόρτωση της λίστας συνδυασμών κατά το πάτημα πλήκτρου YouHaveXObjectUseSearchOptim=Έχετε %s %s στη βάση δεδομένων. Μπορείτε να προσθέσετε τη σταθερά %s σε 1 στο μενού Αρχική-Ρυθμίσεις-Άλλες ρυθμίσεις YouHaveXObjectUseSearchOptimDesc=Αυτό περιορίζει την αναζήτηση στην αρχή των συμβολοσειρών, γεγονός που καθιστά δυνατή τη χρήση ευρετηρίων στη βάση δεδομένων και θα πρέπει να λάβετε άμεση απάντηση. -YouHaveXObjectAndSearchOptimOn=Έχετε %s %s στη βάση δεδομένων και η σταθερά %s έχει οριστεί σε %s στο στο μενού Αρχική-Ρυθμίσεις-Άλλες ρυθμίσεις +YouHaveXObjectAndSearchOptimOn=Έχετε %s %s στη βάση δεδομένων και η σταθερά %s έχει οριστεί σε %s στο μενού Αρχική-Ρυθμίσεις-Άλλες ρυθμίσεις BrowserIsOK=Χρησιμοποιείτε το πρόγραμμα περιήγησης web %s. Αυτό το πρόγραμμα περιήγησης είναι εντάξει για την ασφάλεια και την απόδοση. BrowserIsKO=Χρησιμοποιείτε το πρόγραμμα περιήγησης web %s. Αυτό το πρόγραμμα περιήγησης είναι γνωστό ότι αποτελεί κακή επιλογή για ασφάλεια, απόδοση και αξιοπιστία. Σας συνιστούμε να χρησιμοποιήσετε Firefox, Chrome, Opera ή Safari. PHPModuleLoaded=Το στοιχείο PHP %s έχει φορτωθεί @@ -1369,219 +1384,224 @@ AddRefInList=Εμφάνιση κωδικών Πελάτη/Προμηθευτή. AddVatInList=Εμφάνιση του ΑΦΜ Πελάτη/Προμηθευτή σε συνδυαστικές λίστες. AddAdressInList=Εμφάνιση διεύθυνσης Πελάτη/Προμηθευτή σε σύνθετες λίστες.
    Τα τρίτα μέρη θα εμφανίζονται με τη μορφή ονόματος "The Big Company corp. - 21 jump street 123456 Big town - USA" αντί για "The Big Company corp". AddEmailPhoneTownInContactList=Εμφάνιση email επαφών (ή τηλέφωνα αν δεν έχουν καθοριστεί) και λίστα πληροφοριών πόλης (επιλογή λίστας ή σύνθετο πλαίσιο)
    Οι επαφές θα εμφανιστούν με μια μορφή ονόματος "Dupond Durand - dupond.durand@email.com - Παρίσι" ή "Dupond Durand - 06 07 59 65 66 - Παρίσι» αντί για «Dupond Durand». -AskForPreferredShippingMethod=Ζητήστε την προτιμώμενη μέθοδο αποστολής για τρίτους. +AskForPreferredShippingMethod=Ζητήστε την προτιμώμενη μέθοδο αποστολής για τρίτα μέρη. FieldEdition=Έκδοση στο πεδίο %s -FillThisOnlyIfRequired=Παράδειγμα: +2 (συμπληρώστε μόνο αν ζώνη ώρας αντισταθμίσουν τα προβλήματα για προβλήματα που προέκυψαν) +FillThisOnlyIfRequired=Παράδειγμα: +2 (συμπλήρωση μόνο εάν παρουσιαστούν προβλήματα μετατόπισης ζώνης ώρας) GetBarCode=Πάρτε barcode NumberingModules=Μοντέλα αρίθμησης -DocumentModules=Πρότυπα εγγράφων +DocumentModules=Υποδείγματα εγγράφων ##### Module password generation -PasswordGenerationStandard=Επιστρέφει έναν κωδικό πρόσβασης που δημιουργήθηκε σύμφωνα με τον εσωτερικό αλγόριθμο του Dolibarr: %s χαρακτήρες που περιέχουν κοινόχρηστους αριθμούς και χαρακτήρες με πεζά. +PasswordGenerationStandard=Επιστρέφει έναν κωδικό πρόσβασης που δημιουργήθηκε σύμφωνα με τον εσωτερικό αλγόριθμο του Dolibarr: %s χαρακτήρες που περιέχουν κοινόχρηστους αριθμούς και χαρακτήρες. PasswordGenerationNone=Μην προτείνετε έναν κωδικό πρόσβασης που δημιουργείται. Ο κωδικός πρόσβασης πρέπει να πληκτρολογηθεί μη αυτόματα. -PasswordGenerationPerso=Επιστρέψτε έναν κωδικό πρόσβασης σύμφωνα με τις προσωπικές σας ρυθμίσεις. +PasswordGenerationPerso=Επιστρέφει έναν κωδικό πρόσβασης σύμφωνα με τις προσωπικές σας ρυθμίσεις. SetupPerso=Σύμφωνα με τη διαμόρφωσή σας PasswordPatternDesc=Περιγραφή προτύπου κωδικού πρόσβασης ##### Users setup ##### RuleForGeneratedPasswords=Κανόνες δημιουργίας και επικύρωσης κωδικών πρόσβασης -DisableForgetPasswordLinkOnLogonPage=Να μην εμφανίζεται ο σύνδεσμος "Ξεχασμένος κωδικός πρόσβασης" στη σελίδα Σύνδεση -UsersSetup=Ρυθμίσεις αρθρώματος χρηστών -UserMailRequired=Απαιτείται ηλεκτρονικό ταχυδρομείο για τη δημιουργία νέου χρήστη +DisableForgetPasswordLinkOnLogonPage=Μην εμφανίζεται ο σύνδεσμος "Ξέχασα τον κωδικό πρόσβασης" στη σελίδα σύνδεσης +UsersSetup=Ρύθμιση ενότητας χρηστών +UserMailRequired=Απαιτείται email για τη δημιουργία νέου χρήστη UserHideInactive=Απόκρυψη ανενεργών χρηστών από όλες τις συνδυαστικές λίστες χρηστών (Δεν συνιστάται: αυτό μπορεί να σημαίνει ότι δεν θα μπορείτε να φιλτράρετε ή να κάνετε αναζήτηση σε παλιούς χρήστες σε ορισμένες σελίδες) -UsersDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργούνται από εγγραφή χρήστη +UsersDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργήθηκαν από εγγραφή χρήστη GroupsDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργούνται από εγγραφή ομάδας ##### HRM setup ##### -HRMSetup=Ρύθμιση μονάδας HRM +HRMSetup=Ρύθμιση ενότητας HRM ##### Company setup ##### -CompanySetup=Ρυθμίσεις αρθρώματος Εταιριών +CompanySetup=Ρύθμιση ενότητας Εταιριών CompanyCodeChecker=Επιλογές για την αυτόματη δημιουργία κωδικών πελατών / προμηθευτών -AccountCodeManager=Επιλογές για την αυτόματη δημιουργία κωδικών λογιστικής πελάτη / πωλητή -NotificationsDesc=Οι ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου μπορούν να σταλούν αυτόματα για ορισμένα συμβάντα Dolibarr.
    Οι παραλήπτες των ειδοποιήσεων μπορούν να οριστούν: +AccountCodeManager=Επιλογές για αυτόματη δημιουργία λογιστικών κωδικών πελάτη/προμηθευτή +NotificationsDesc=Οι ειδοποιήσεις μέσω email μπορούν να αποστέλλονται αυτόματα για ορισμένα συμβάντα του Dolibarr.
    Οι παραλήπτες των ειδοποιήσεων μπορούν να οριστούν: NotificationsDescUser=* ανά χρήστη, έναν χρήστη τη φορά. NotificationsDescContact=* ανά επαφές τρίτου μέρους (πελάτες ή προμηθευτές), μία επαφή κάθε φορά. -NotificationsDescGlobal=* ή ορίζοντας καθολικές διευθύνσεις email στη σελίδα εγκατάστασης της μονάδας. +NotificationsDescGlobal=* ή ορίζοντας καθολικές διευθύνσεις email στη σελίδα ρύθμισης της ενότητας. ModelModules=Πρότυπα εγγράφων DocumentModelOdt=Δημιουργία εγγράφων από πρότυπα OpenDocument (αρχεία .ODT / .ODS από LibreOffice, OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Ενεργοποιήστε τη δυνατότητα να συμπληρώνει αυτόματα τις γραμμές πληρωμής σε έντυπο πληρωμής +WatermarkOnDraft=Υδατογράφημα στο προσχέδιο εγγράφου +JSOnPaimentBill=Ενεργοποίηση λειτουργίας για αυτόματη συμπλήρωση γραμμών πληρωμής στη φόρμα πληρωμής CompanyIdProfChecker=Κανόνες για τα επαγγελματικά αναγνωριστικά MustBeUnique=Πρέπει να είναι μοναδικό? -MustBeMandatory=Υποχρεωτική για τη δημιουργία τρίτων (εάν έχει οριστεί ο αριθμός ΦΠΑ ή ο τύπος της εταιρείας); +MustBeMandatory=Υποχρεωτική για τη δημιουργία τρίτων (εάν έχει οριστεί ο αριθμός Α.Φ.Μ. ή ο τύπος της εταιρείας); MustBeInvoiceMandatory=Υποχρεωτική για την επικύρωση τιμολογίων; -TechnicalServicesProvided=Παρέχονται τεχνικές υπηρεσίες +TechnicalServicesProvided=Παρεχόμενες τεχνικές υπηρεσίες #####DAV ##### -WebDAVSetupDesc=Αυτός είναι ο σύνδεσμος για την πρόσβαση στον κατάλογο WebDAV. Περιέχει ένα "δημόσιο" dir ανοιχτό σε οποιονδήποτε χρήστη γνωρίζοντας τη διεύθυνση URL (αν επιτρέπεται πρόσβαση στο δημόσιο κατάλογο) και έναν "ιδιωτικό" κατάλογο ο οποίος χρειάζεται έναν υπάρχοντα λογαριασμό σύνδεσης / κωδικό πρόσβασης για πρόσβαση. -WebDavServer=URL ρίζας του διακομιστή %s: %s +WebDAVSetupDesc=Αυτός είναι ο σύνδεσμος για πρόσβαση στον κατάλογο WebDAV. Περιέχει έναν "δημόσιο" καταλογο ανοιχτό σε οποιονδήποτε χρήστη γνωρίζει τη διεύθυνση URL (αν επιτρέπεται η πρόσβαση σε δημόσιο κατάλογο) και έναν "ιδιωτικό" κατάλογο που χρειάζεται έναν υπάρχοντα λογαριασμό σύνδεσης/κωδικό πρόσβασης. +WebDavServer=URL ρίζας του %sδιακομιστή : %s ##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s +WebCalUrlForVCalExport=Ένας σύνδεσμος εξαγωγής στη μορφή %s είναι διαθέσιμος στον ακόλουθο σύνδεσμο: %s ##### Invoices ##### BillsSetup=Ρύθμιση ενότητας τιμολογίων -BillsNumberingModule=Τιμολόγια και πιστωτικά τιμολόγια μοντέλο αρίθμησης -BillsPDFModules=Μοντέλα εγγράφων τιμολογίου -BillsPDFModulesAccordindToInvoiceType=Τα μοντέλα εγγράφων τιμολογίου σύμφωνα με τον τύπο τιμολογίου -PaymentsPDFModules=Μοντέλα εγγράφων πληρωμής -ForceInvoiceDate=Μετάβαση ημερομηνίας ισχύος τιμολογίου σε ημερομηνία επικύρωσης +BillsNumberingModule=Υπόδειγμα αρίθμησης τιμολογίων και πιστωτικών σημειωμάτων +BillsPDFModules=Υποδείγματα εγγράφων τιμολογίου +BillsPDFModulesAccordindToInvoiceType=Υποδείγματα παραστατικών τιμολογίων ανάλογα με τον τύπο τιμολογίου +PaymentsPDFModules=Υποδείγματα εγγράφων πληρωμής +ForceInvoiceDate=Επιβολή ημερομηνίας ισχύος τιμολογίου σε ημερομηνία επικύρωσης SuggestedPaymentModesIfNotDefinedInInvoice=Προτεινόμενη μέθοδος πληρωμής στο τιμολόγιο από προεπιλογή, εάν δεν ορίζεται στο τιμολόγιο -SuggestPaymentByRIBOnAccount=Προτείνετε την πληρωμή μέσω απόσυρσης στο λογαριασμό +SuggestPaymentByRIBOnAccount=Προτείνετε πληρωμή με ανάληψη από τον λογαριασμό SuggestPaymentByChequeToAddress=Προτείνετε πληρωμή με επιταγή προς FreeLegalTextOnInvoices=Ελεύθερο κείμενο στα τιμολόγια -WatermarkOnDraftInvoices=Υδατογράφημα σχετικά με τα τιμολόγια (κανένα αν δεν είναι κενό) -PaymentsNumberingModule=Μοντέλο αριθμοδότησης πληρωμών +WatermarkOnDraftInvoices=Υδατογράφημα σε πρόχειρα τιμολόγια (κανένα αν είναι κενό) +PaymentsNumberingModule=Πρότυπο αρίθμησης πληρωμών SuppliersPayment=Πληρωμές προμηθευτών -SupplierPaymentSetup=Ρυθμίσεις πληρωμών προμηθευτή +SupplierPaymentSetup=Ρύθμιση πληρωμών προμηθευτή InvoiceCheckPosteriorDate=Ελέγξτε την ημερομηνία του παραστατικού πριν από την επικύρωση InvoiceCheckPosteriorDateHelp=Η επικύρωση ενός τιμολογίου θα απαγορεύεται εάν η ημερομηνία του είναι προγενέστερη από την ημερομηνία του τελευταίου τιμολογίου του ίδιου τύπου. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Ναι, στην κάτω αριστερή γωνία ##### Proposals ##### -PropalSetup=Ρύθμιση ενότητας εμπορικών προτάσεων -ProposalsNumberingModules=Μοντέλα αριθμοδότησης εμπορικών προτάσεων -ProposalsPDFModules=Μοντέλα εγγράφων εμπορικών προτάσεων -SuggestedPaymentModesIfNotDefinedInProposal=Προτεινόμενος τρόπος πληρωμής στην πρόταση από προεπιλογή, εάν δεν ορίζεται στην πρόταση +PropalSetup=Ρύθμιση ενότητας εμπορικών προσφορών +ProposalsNumberingModules=Υποδείγματα αρίθμησης εμπορικών προσφορών +ProposalsPDFModules=Υποδείγματα εγγράφων εμπορικών προσφορών +SuggestedPaymentModesIfNotDefinedInProposal=Προτεινόμενος τρόπος πληρωμής στην προσφορά από προεπιλογή, εάν δεν ορίζεται στην προσφορά FreeLegalTextOnProposal=Ελεύθερο κείμενο στις προσφορές -WatermarkOnDraftProposal=Υδατογράφημα σε προσχέδια εμπορικών προτάσεων (κανένα εάν δεν είναι κενό) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ρωτήστε για τον τραπεζικό λογαριασμό προορισμού της προσφοράς +WatermarkOnDraftProposal=Υδατογράφημα σε προσχέδια εμπορικών προσφορών (κανένα εάν δεν είναι κενό) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ζητήστε τον τραπεζικό λογαριασμό για την προσφορά ##### SupplierProposal ##### -SupplierProposalSetup=Τιμολόγηση προμηθευτών αιτήσεων τιμών -SupplierProposalNumberingModules=Μοντέλα αρίθμησης των προμηθευτών αιτήσεων τιμών -SupplierProposalPDFModules=Οι αιτήσεις τιμών ζητούν από τους προμηθευτές μοντέλα -FreeLegalTextOnSupplierProposal=Δωρεάν κείμενο σχετικά με τους προμηθευτές αιτήσεων τιμών -WatermarkOnDraftSupplierProposal=Υδατογράφημα για τους προμηθευτές αιτήσεων τιμών (δεν υπάρχει εάν είναι άδειο) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ζητήστε τον προορισμό του τραπεζικού λογαριασμού για αίτημα τιμής -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ζητήστε από την αποθήκη προέλευσης για παραγγελία +SupplierProposalSetup=Ρύθμιση ενότητας αιτημάτων τιμής προμηθευτών  +SupplierProposalNumberingModules=Μοντέλα αρίθμησης των αιτημάτων τιμής προμηθευτών  +SupplierProposalPDFModules=Υποδείγματα εγγράφων αιτημάτων τιμής προμηθευτών  +FreeLegalTextOnSupplierProposal=Ελεύθερο κείμενο για αιτήματα τιμών προμηθευτών +WatermarkOnDraftSupplierProposal=Υδατογράφημα σε προσχέδια αιτημάτων τιμής προμηθευτών  (κανένα αν είναι κενό) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ζητήστε τον τραπεζικό λογαριασμό για το αίτημα τιμής +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ζητήστε την Αποθήκη Πηγής για την παραγγελία ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ζητήστε τον προορισμό του τραπεζικού λογαριασμού της εντολής αγοράς +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ζητήστε τον τραπεζικό λογαριασμό της παραγγελίας αγοράς ##### Orders ##### SuggestedPaymentModesIfNotDefinedInOrder=Προτεινόμενη μέθοδος πληρωμής για παραγγελία πώλησης από προεπιλογή, εάν δεν καθορίζεται στην παραγγελία OrdersSetup=Ρύθμιση διαχείρισης παραγγελιών πωλήσεων -OrdersNumberingModules=Μοντέλα αρίθμησης παραγγελιών -OrdersModelModule=Παραγγείλετε μοντέλα εγγράφων +OrdersNumberingModules=Υποδείγματα αρίθμησης παραγγελιών +OrdersModelModule=Υποδείγματα εγγράφων παραγγελίας FreeLegalTextOnOrders=Ελεύθερο κείμενο στις παραγγελίες WatermarkOnDraftOrders=Υδατογράφημα σε προσχέδια παραγγελίας (κανένα εάν δεν είναι κενό) ShippableOrderIconInList=Προσθήκη εικονιδίου στις Παραγγελίες που δείχνει ότι η παραγγελία μπορεί να αποσταλεί -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ρωτήστε τον τραπεζικό λογαριασμό για προορισμό της παραγγελίας +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ζητήστε τον τραπεζικό λογαριασμό της παραγγελίας ##### Interventions ##### -InterventionsSetup=Interventions module setup +InterventionsSetup=Ρύθμιση ενότητας παρεμβάσεων FreeLegalTextOnInterventions=Ελεύθερο κείμενο στα έντυπα παρέμβασης -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) +FicheinterNumberingModules=Υποδείγματα αρίθμησης παρέμβασης +TemplatePDFInterventions=Υποδείγματα εγγράφων καρτών παρέμβασης +WatermarkOnDraftInterventionCards=Υδατογράφημα στα έγγραφα της κάρτας παρέμβασης (κανένα αν είναι κενό) ##### Contracts ##### -ContractsSetup=Ρύθμιση module Συμβάσεις/Συνδρομές -ContractsNumberingModules=Συμβάσεις αρίθμησης ενοτήτων -TemplatePDFContracts=Συμβάσεις μοντέλα εγγράφων +ContractsSetup=Ρύθμιση ενότητας Συμβάσεις/Συνδρομές +ContractsNumberingModules=Ενότητες αρίθμησης συμβάσεων +TemplatePDFContracts=Υποδείγματα εγγράφων συμβάσεων FreeLegalTextOnContracts=Ελεύθερο κείμενο για τις συμβάσεις -WatermarkOnDraftContractCards=Υδατογράφημα σε σχέδια συμβάσεων (κανένα αν είναι άδειο) +WatermarkOnDraftContractCards=Υδατογράφημα σε προσχέδια συμβάσεων (κανένα αν είναι άδειο) ##### Members ##### MembersSetup=Ρύθμιση ενότητας μελών MemberMainOptions=Κύριες επιλογές -AdherentLoginRequired= Διαχείριση μιας Σύνδεση για κάθε μέλος -AdherentMailRequired=Απαιτείται ηλεκτρονικό ταχυδρομείο για τη δημιουργία νέου μέλους -MemberSendInformationByMailByDefault=Τσέκαρε το πλαίσιο ελέγχου για την αποστολή επιβεβαίωσης αλληλογραφίας στα μέλη (επικύρωση ή νέα συνδρομή) είναι ενεργοποιημένη από προεπιλογή +MemberCodeChecker=Επιλογές για αυτόματη δημιουργία κωδικών μελών +AdherentLoginRequired= Διαχείριση μιας Σύνδεσης για κάθε μέλος +AdherentMailRequired=Απαιτείται email για τη δημιουργία νέου μέλους +MemberSendInformationByMailByDefault=Το πλαίσιο ελέγχου για την αποστολή επιβεβαίωσης αλληλογραφίας στα μέλη (επικύρωση ή νέα συνδρομή) είναι ενεργοποιημένο από προεπιλογή MemberCreateAnExternalUserForSubscriptionValidated=Δημιουργήστε στοιχεία σύνδεσης εξωτερικού χρήστη για κάθε επικυρωμένη συνδρομή νέου μέλους -VisitorCanChooseItsPaymentMode=Ο επισκέπτης μπορεί να επιλέξει μεταξύ των διαθέσιμων τρόπων πληρωμής -MEMBER_REMINDER_EMAIL=Ενεργοποιήστε την αυτόματη υπενθύμιση μέσω ηλεκτρονικού ταχυδρομείου των συνδρομών που έχουν λήξει. Σημείωση: Η ενότητα %s πρέπει να ενεργοποιηθεί και να ρυθμιστεί σωστά για να στείλετε υπενθυμίσεις. +VisitorCanChooseItsPaymentMode=Ο επισκέπτης μπορεί να επιλέξει από οποιονδήποτε διαθέσιμο τρόπο πληρωμής +MEMBER_REMINDER_EMAIL=Ενεργοποιήστε την αυτόματη υπενθύμιση μέσω email των ληγμένων συνδρομών. Σημείωση: Η ενότητα %s πρέπει να είναι ενεργοποιημένη και να ρυθμιστεί σωστά για την αποστολή υπενθυμίσεων. MembersDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργούνται από εγγραφή μέλους ##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters +LDAPSetup=Ρύθμιση LDAP +LDAPGlobalParameters=Καθολικές παράμετροι LDAPUsersSynchro=Χρήστες LDAPGroupsSynchro=Ομάδες LDAPContactsSynchro=Επαφές LDAPMembersSynchro=Μέλη LDAPMembersTypesSynchro=Τύποι μελών -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP +LDAPSynchronization=Συγχρονισμός LDAP +LDAPFunctionsNotAvailableOnPHP=Οι functions του LDAP δεν είναι διαθέσιμες στην PHP σας LDAPToDolibarr=LDAP -> Dolibarr DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP +LDAPNamingAttribute=Κλειδί στο LDAP LDAPSynchronizeUsers=Οργάνωση χρηστών στο LDAP LDAPSynchronizeGroups=Οργάνωση ομάδων στο LDAP LDAPSynchronizeContacts=Οργάνωση επαφών στο LDAP LDAPSynchronizeMembers=Οργάνωση των μελών του Ιδρύματος στο LDAP LDAPSynchronizeMembersTypes=Οργάνωση των τύπων μελών του ιδρύματος στο LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port +LDAPPrimaryServer=Κύριος διακομιστής +LDAPSecondaryServer=Δευτερεύων διακομιστής +LDAPServerPort=Θύρα διακομιστή LDAPServerPortExample=Standard ή StartTLS: 389, LDAP: 636 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS +LDAPServerProtocolVersion=Έκδοση πρωτοκόλλου +LDAPServerUseTLS=Χρησιμοποιήστε το TLS LDAPServerUseTLSExample=Ο LDAP διακομιστής σας χρησιμοποιεί το StartTLS LDAPServerDn=Server DN LDAPAdminDn=Διαχειριστής DN -LDAPAdminDnExample=Ολοκλήρωση DN (ex: cn = admin, dc = παράδειγμα, dc = com ή cn = Administrator, cn = Users, dc = +LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) LDAPPassword=Κωδικός πρόσβασης Διαχειριστή -LDAPUserDn=Users' DN +LDAPUserDn=DN χρηστών LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN +LDAPGroupDn=DN ομάδων LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerExample=Διεύθυνση διακομιστή (π.χ. localhost, 192.168.0.2, ldaps://ldap.example.com/) LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) LDAPDnSynchroActive=Συγχρονισμός χρηστών και ομάδων -LDAPDnSynchroActiveExample=LDAP σε Dolibarr ή Dolibarr σε συγχρονισμό LDAP +LDAPDnSynchroActiveExample=Συγχρονισμός LDAP σε Dolibarr ή Dolibarr σε LDAP LDAPDnContactActive=Συγχρονισμός επαφών -LDAPDnContactActiveExample=Ενεργοποίηση / Απενεργοποίηση συγχρονισμού +LDAPDnContactActiveExample=Ενεργοποιημένος/Απενεργοποιημένος συγχρονισμός LDAPDnMemberActive=Συγχρονισμός μελών -LDAPDnMemberActiveExample=Ενεργοποίηση / Απενεργοποίηση συγχρονισμού +LDAPDnMemberActiveExample=Ενεργοποιημένος/Απενεργοποιημένος συγχρονισμός LDAPDnMemberTypeActive=Συγχρονισμός τύπων μελών -LDAPDnMemberTypeActiveExample=Ενεργοποίηση / Απενεργοποίηση συγχρονισμού -LDAPContactDn=Dolibarr contacts' DN +LDAPDnMemberTypeActiveExample=Ενεργοποιημένος/Απενεργοποιημένος συγχρονισμός +LDAPContactDn=DN επαφών Dolibarr LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr μέλη DN +LDAPMemberDn=DN μελών Dolibarr LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPMemberTypeDn=Τα μέλη Dolibarr τύπου DN -LDAPMemberTypepDnExample=Ολοκλήρωση DN (ex: ou = μέλοςstypes, dc = παράδειγμα, dc = com) -LDAPMemberTypeObjectClassList=List of objectClass -LDAPMemberTypeObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection +LDAPMemberObjectClassList=Λίστα objectClass +LDAPMemberObjectClassListExample=Λίστα objectClass που καθορίζουν τα χαρακτηριστικά εγγραφής (π.χ. top, inetOrgPerson ή top, χρήστης για ενεργό κατάλογο) +LDAPMemberTypeDn=DN τύπων μελών Dolibarr +LDAPMemberTypepDnExample=Complete DN (ex: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeObjectClassList=Λίστα objectClass +LDAPMemberTypeObjectClassListExample=Λίστα objectClass που καθορίζουν τα χαρακτηριστικά εγγραφής (π.χ. top, inetOrgPerson ή top, χρήστης για ενεργό κατάλογο) +LDAPUserObjectClassList=Λίστα objectClass +LDAPUserObjectClassListExample=Λίστα objectClass που καθορίζουν τα χαρακτηριστικά εγγραφής (π.χ. top, inetOrgPerson ή top, χρήστης για ενεργό κατάλογο) +LDAPGroupObjectClassList=Λίστα objectClass +LDAPGroupObjectClassListExample=Λίστα objectClass που καθορίζουν τα χαρακτηριστικά εγγραφής (π.χ. top, inetOrgPerson ή top, χρήστης για ενεργό κατάλογο) +LDAPContactObjectClassList=Λίστα objectClass +LDAPContactObjectClassListExample=Λίστα objectClass που καθορίζουν τα χαρακτηριστικά εγγραφής (π.χ. top, inetOrgPerson ή top, χρήστης για ενεργό κατάλογο) +LDAPTestConnect=Δοκιμή σύνδεσης LDAP LDAPTestSynchroContact=Έλεγχος συγχρονισμού επαφών LDAPTestSynchroUser=Έλεγχος συγχρονισμού χρηστών LDAPTestSynchroGroup=Έλεγχος συγχρονισμού ομάδας LDAPTestSynchroMember=Έλεγχος συγχρονισμού μελών -LDAPTestSynchroMemberType=Συγχρονισμός τύπου μέλους δοκιμής +LDAPTestSynchroMemberType=Έλεγχος συγχρονισμού τύπου μελών LDAPTestSearch= Δοκιμάστε μια αναζήτηση LDAP -LDAPSynchroOK=Δοκιμή συγχρονισμού πέτυχε -LDAPSynchroKO=Δοκιμή συγχρονισμού απέτυχε -LDAPSynchroKOMayBePermissions=Δοκιμή συγχρονισμού απέτυχε. Ελέγξτε ότι η σύνδεση με το διακομιστή έχει ρυθμιστεί σωστά και επιτρέπει τις ενημερώσεις LDAP -LDAPTCPConnectOK=Σύνδεση TCP σε επιτυχημένο διακομιστή LDAP (Server = %s, Port = %s) -LDAPTCPConnectKO=Η σύνδεση TCP στο διακομιστή LDAP απέτυχε (Server = %s, Port = %s) -LDAPBindOK=Σύνδεση / Πιστοποίηση σε διακομιστή LDAP με επιτυχία (Server = %s, Port = %s, Admin = %s, Κωδικός πρόσβασης = %s) -LDAPBindKO=Η σύνδεση / επαλήθευση ταυτότητας σε διακομιστή LDAP απέτυχε (Server = %s, Port = %s, Admin = %s, Password = %s) +LDAPSynchroOK=Επιτυχής δοκιμή συγχρονισμού +LDAPSynchroKO=Αποτυχία δοκιμής συγχρονισμού +LDAPSynchroKOMayBePermissions=Αποτυχία δοκιμής συγχρονισμού. Βεβαιωθείτε ότι η σύνδεση με τον διακομιστή έχει ρυθμιστεί σωστά και επιτρέπει ενημερώσεις LDAP +LDAPTCPConnectOK=Επιτυχής σύνδεση TCP με διακομιστή LDAP (Server=%s, Port=%s) +LDAPTCPConnectKO=Η σύνδεση TCP με τον διακομιστή LDAP απέτυχε (Server=%s, Port=%s) +LDAPBindOK=Σύνδεση / Πιστοποίηση σε διακομιστή LDAP επιτυχής (Server = %s, Port = %s, Admin = %s, Κωδικός πρόσβασης = %s) +LDAPBindKO=Η σύνδεση / επαλήθευση ταυτότητας με διακομιστή LDAP απέτυχε (Server = %s, Port = %s, Admin = %s, Password = %s) LDAPSetupForVersion3=Ο διακομιστής LDAP έχει ρυθμιστεί για την έκδοση 3 LDAPSetupForVersion2=Ο διακομιστής LDAP έχει ρυθμιστεί για την έκδοση 2 LDAPDolibarrMapping=Dolibarr Mapping LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) +LDAPFieldLoginUnix=Είσοδος (unix) LDAPFieldLoginExample=Παράδειγμα: uid LDAPFilterConnection=Φίλτρο αναζήτησης -LDAPFilterConnectionExample=Παράδειγμα: & (objectClass = inetOrgPerson) +LDAPFilterConnectionExample=Παράδειγμα: &(objectClass=inetOrgPerson) LDAPGroupFilterExample=Παράδειγμα: &(objectClass=groupOfUsers) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Παράδειγμα: samaccountname +LDAPFieldLoginSamba=Είσοδος (samba, activedirectory) +LDAPFieldLoginSambaExample=Παράδειγμα: τοονομασυνδεσηςσας LDAPFieldFullname=Πλήρες όνομα LDAPFieldFullnameExample=Παράδειγμα: cn LDAPFieldPasswordNotCrypted=Ο κωδικός πρόσβασης δεν είναι κρυπτογραφημένος -LDAPFieldPasswordCrypted=Ο κωδικός είναι κρυπτογραφημένος +LDAPFieldPasswordCrypted=Κωδικός πρόσβασης κρυπτογραφημένος LDAPFieldPasswordExample=Παράδειγμα: userPassword LDAPFieldCommonNameExample=Παράδειγμα: cn -LDAPFieldName=Επίθετο +LDAPFieldName=Όνομα LDAPFieldNameExample=Παράδειγμα: sn LDAPFieldFirstName=Όνομα LDAPFieldFirstNameExample=Παράδειγμα: givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Παράδειγμα: αλληλογραφία +LDAPFieldMail=Διεύθυνση email +LDAPFieldMailExample=Παράδειγμα: mail LDAPFieldPhone=Επαγγελματικός αριθμός τηλεφώνου LDAPFieldPhoneExample=Παράδειγμα: αριθμός τηλεφώνου LDAPFieldHomePhone=Προσωπικός αριθμός τηλεφώνου LDAPFieldHomePhoneExample=Παράδειγμα: homephone LDAPFieldMobile=Κινητό τηλέφωνο LDAPFieldMobileExample=Παράδειγμα: κινητό -LDAPFieldFax=Fax number +LDAPFieldFax=Αριθμός fax LDAPFieldFaxExample=Παράδειγμα: faximiletelefononumber LDAPFieldAddress=Οδός LDAPFieldAddressExample=Παράδειγμα: δρόμος @@ -1606,203 +1626,203 @@ LDAPFieldTitle=Θέση εργασίας LDAPFieldTitleExample=Παράδειγμα: τίτλος LDAPFieldGroupid=Αναγνωριστικό ομάδας LDAPFieldGroupidExample=Παράδειγμα: gidnumber -LDAPFieldUserid=Ταυτότητα χρήστη +LDAPFieldUserid=Αναγνωριστικό χρήστη LDAPFieldUseridExample=Παραδείγματα: uidnumber -LDAPFieldHomedirectory=Αρχική σελίδα +LDAPFieldHomedirectory=Home directory LDAPFieldHomedirectoryExample=Παράδειγμα: homedirectory -LDAPFieldHomedirectoryprefix=Πρόθεμα καταλόγου αρχικής σελίδας -LDAPSetupNotComplete=Η ρύθμιση LDAP δεν ολοκληρώθηκε (πηγαίνετε σε άλλες καρτέλες) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Δεν παρέχεται κανένας διαχειριστής ή κωδικός πρόσβασης. Η πρόσβαση LDAP θα είναι ανώνυμη και σε λειτουργία μόνο για ανάγνωση. -LDAPDescContact=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε δεδομένα που βρίσκεται στις επαφές Dolibarr. -LDAPDescUsers=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε δεδομένα που βρέθηκε στους χρήστες του Dolibarr. -LDAPDescGroups=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε δεδομένα που βρίσκεται στις ομάδες Dolibarr. -LDAPDescMembers=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε στοιχείο που βρίσκεται στη μονάδα μελών Dolibarr. +LDAPFieldHomedirectoryprefix=Πρόθεμα Home directory +LDAPSetupNotComplete=Η ρύθμιση του LDAP δεν ολοκληρώθηκε (πηγαίνετε σε άλλες καρτέλες) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Δεν δόθηκε διαχειριστής ή κωδικός πρόσβασης . Η πρόσβαση LDAP θα είναι ανώνυμη και σε λειτουργία μόνο για ανάγνωση. +LDAPDescContact=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε δεδομένο που βρέθηκε στις επαφές Dolibarr. +LDAPDescUsers=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε δεδομένο που βρέθηκε στους χρήστες του Dolibarr. +LDAPDescGroups=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε δεδομένο που βρέθηκε στις ομάδες Dolibarr. +LDAPDescMembers=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε στοιχείο που βρίσκεται στην ενότητα μελών Dolibarr. LDAPDescMembersTypes=Αυτή η σελίδα σάς επιτρέπει να ορίσετε το όνομα των χαρακτηριστικών LDAP στο δέντρο LDAP για κάθε στοιχείο που βρίσκεται σε τύπους μελών Dolibarr. -LDAPDescValues=Οι τιμές παραδειγμάτων σχεδιάζονται για το OpenLDAP με τα παρακάτω φορτωμένα σχήματα: core.schema, cosine.schema, inetorgperson.schema ). Εάν χρησιμοποιείτε αυτές τις τιμές και του OpenLDAP, τροποποιήστε το αρχείο ρύθμισης LDAP slapd.conf για να έχετε φορτώσει όλα αυτά τα διαγράμματα. +LDAPDescValues=Οι παραδειγματικές τιμές έχουν σχεδιαστεί για το OpenLDAP με τα ακόλουθα φορτωμένα σχήματα: core.schema, cosine.schema, inetorgperson.schema ). Εάν χρησιμοποιείτε αυτές τις τιμές και το OpenLDAP, τροποποιήστε το αρχείο διαμόρφωσης LDAP slapd.conf για να φορτωθούν όλα αυτά τα σχήματα. ForANonAnonymousAccess=Για μια επαληθευμένη πρόσβαση (για παράδειγμα, για πρόσβαση εγγραφής) -PerfDolibarr=Επιδόσεις ρύθμισης/βελτιστοποίηση της αναφοράς -YouMayFindPerfAdviceHere=Αυτή η σελίδα παρέχει μερικές επιταγές ή συμβουλές σχετικά με την απόδοση. +PerfDolibarr=Αναφορά ρύθμισης/βελτιστοποίησης απόδοσης +YouMayFindPerfAdviceHere=Αυτή η σελίδα παρέχει ορισμένους ελέγχους ή συμβουλές σχετικά με την απόδοση. NotInstalled=Μη εγκατεστημένο. NotSlowedDownByThis=Δεν επιβραδύνεται από αυτό. NotRiskOfLeakWithThis=Δεν υπάρχει κίνδυνος διαρροής με αυτό. ApplicativeCache=Εφαρμογή Cache -MemcachedNotAvailable=Δεν βρέθηκε applicative προσωρινή μνήμη. Μπορείτε να βελτιώσετε την απόδοση με την εγκατάσταση ενός Memcached διακομιστή προσωρινής μνήμης και ένα module θα είναι σε θέση να χρησιμοποίηση το διακομιστή προσωρινής μνήμης.
    Περισσότερες πληροφορίες εδώ http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    Σημειώστε ότι πολλοί πάροχοι web hosting δεν παρέχουν διακομιστή cache. -MemcachedModuleAvailableButNotSetup=Το module memcached για εφαρμογή cache βρέθηκε, αλλά η εγκατάσταση του module δεν είναι πλήρης. -MemcachedAvailableAndSetup=Το module memcache προορίζεται για χρήση memcached του διακομιστή όταν είναι ενεργοποιημένη. +MemcachedNotAvailable=Δεν βρέθηκε εφαρμοστική κρυφή μνήμη. Μπορείτε να βελτιώσετε την απόδοση εγκαθιστώντας έναν διακομιστή προσωρινής μνήμης Memcached και μια ενότητα που μπορεί να χρησιμοποιήσει αυτόν τον διακομιστή προσωρινής μνήμης.
    Περισσότερες πληροφορίες εδώ http://wiki.dolibarr.org/index.php/Module_MemCached_EN .
    Σημειώστε ότι πολλοί πάροχοι φιλοξενίας Ιστού δεν παρέχουν τέτοιο διακομιστή προσωρινής μνήμης. +MemcachedModuleAvailableButNotSetup=Βρέθηκε η ενότητα memcached για την εφαρμοστική κρυφή μνήμη, αλλά η εγκατάσταση της ενότητας δεν έχει ολοκληρωθεί. +MemcachedAvailableAndSetup=Η ενότητα memcached που αφορά στη χρήση διακομιστή memcached είναι ενεργοποιημένη. OPCodeCache=OPCode cache NoOPCodeCacheFound=Δεν βρέθηκε προσωρινή μνήμη OPCode. Ίσως χρησιμοποιείτε μια προσωρινή μνήμη OPCode διαφορετική από XCache ή eAccelerator (καλή), ή ίσως δεν έχετε OPCode cache (πολύ κακή). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Αρχεία τύπου %s αποθηκεύονται προσωρινά από το διακομιστή HTTP -FilesOfTypeNotCached=Αρχεία τύπου %s δεν αποθηκεύονται προσωρινά από το διακομιστή HTTP -FilesOfTypeCompressed=Τα αρχεία τύπου %s συμπιέζονται από το διακομιστή HTTP -FilesOfTypeNotCompressed=Αρχεία τύπου %s δεν συμπιέζονται από το διακομιστή HTTP +HTTPCacheStaticResources=HTTP cache για στατικούς πόρους (css, img, javascript) +FilesOfTypeCached=Τα αρχεία τύπου %s αποθηκεύονται προσωρινά από τον διακομιστή HTTP +FilesOfTypeNotCached=Τα αρχεία τύπου %s δεν αποθηκεύονται προσωρινά από τον διακομιστή HTTP +FilesOfTypeCompressed=Τα αρχεία του τύπου %s συμπιέζονται από διακομιστή HTTP +FilesOfTypeNotCompressed=Τα αρχεία του τύπου %s δεν συμπιέζονται από διακομιστή HTTP CacheByServer=Cache από τον server -CacheByServerDesc=Για παράδειγμα, χρησιμοποιώντας την οδηγία Apache "ExpiresByType image / gif A2592000" +CacheByServerDesc=Για παράδειγμα, χρησιμοποιώντας την οδηγία Apache "ExpiresByType image/gif A2592000" CacheByClient=Cache από τον browser CompressionOfResources=Συμπίεση HTTP απαντήσεων -CompressionOfResourcesDesc=Για παράδειγμα, χρησιμοποιώντας την οδηγία Apache "AddOutputFilterByType DEFLATE" -TestNotPossibleWithCurrentBrowsers=Μια τέτοια αυτόματη ανίχνευση δεν είναι δυνατόν με τα τρέχουσα προγράμματα περιήγησης -DefaultValuesDesc=Εδώ μπορείτε να ορίσετε την προεπιλεγμένη τιμή που θέλετε να χρησιμοποιήσετε κατά τη δημιουργία μιας νέας εγγραφής ή / και τα προεπιλεγμένα φίλτρα ή τη σειρά ταξινόμησης κατά την εγγραφή των εγγραφών. -DefaultCreateForm=Προεπιλεγμένες τιμές (για χρήση σε έντυπα) +CompressionOfResourcesDesc=Για παράδειγμα, χρησιμοποιώντας την οδηγία Apache "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=Μια τέτοια αυτόματη ανίχνευση δεν είναι δυνατή με τα τρέχοντα προγράμματα περιήγησης +DefaultValuesDesc=Εδώ μπορείτε να ορίσετε την προεπιλεγμένη τιμή που θέλετε να χρησιμοποιήσετε κατά τη δημιουργία μιας νέας εγγραφής ή / και τα προεπιλεγμένα φίλτρα ή τη σειρά ταξινόμησης κατά την παρουσίαση λίστας εγγραφών. +DefaultCreateForm=Προεπιλεγμένες τιμές (για χρήση σε φόρμες) DefaultSearchFilters=Προεπιλεγμένα φίλτρα αναζήτησης -DefaultSortOrder=Προκαθορισμένες παραγγελίες +DefaultSortOrder=Προεπιλεγμένες σειρές ταξινόμησης DefaultFocus=Προεπιλεγμένα πεδία εστίασης DefaultMandatory=Υποχρεωτικά πεδία φόρμας ##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Υπηρεσίες εγκατάστασης μονάδας -ProductServiceSetup=Προϊόντα και Υπηρεσίες εγκατάστασης μονάδων +ProductSetup=Ρύθμιση ενότητας προϊόντων +ServiceSetup=Ρύθμιση ενότητας υπηρεσιών +ProductServiceSetup=Ρύθμιση ενοτήτων προϊόντων και υπηρεσιών NumberOfProductShowInSelect=Μέγιστος αριθμός προϊόντων που θα εμφανίζονται σε λίστες επιλογών συνδυασμού (0 = κανένα όριο) ViewProductDescInFormAbility=Εμφάνιση περιγραφών προϊόντων σε γραμμές αντικειμένων (αλλιώς εμφανίστε την περιγραφή σε ένα αναδυόμενο παράθυρο επεξήγησης ) OnProductSelectAddProductDesc=Πώς να χρησιμοποιήσετε την περιγραφή των προϊόντων όταν προσθέτετε ένα προϊόν ως γραμμή ενός εγγράφου AutoFillFormFieldBeforeSubmit=Συμπληρώστε αυτόματα το πεδίο εισαγωγής περιγραφής με την περιγραφή του προϊόντος DoNotAutofillButAutoConcat=Μην συμπληρώνετε αυτόματα το πεδίο εισαγωγής με περιγραφή του προϊόντος. Η περιγραφή του προϊόντος θα συνδεθεί αυτόματα με την περιγραφή που εισάγατε. DoNotUseDescriptionOfProdut=Η περιγραφή του προϊόντος δεν θα συμπεριληφθεί ποτέ στην περιγραφή των γραμμών των εγγράφων -MergePropalProductCard=Ενεργοποίηση στην καρτέλα Συνημμένα αρχεία προϊόντος / υπηρεσίας μια επιλογή για τη συγχώνευση προϊόντος PDF σε πρόταση PDF azur εάν το προϊόν / η υπηρεσία περιλαμβάνεται στην πρόταση +MergePropalProductCard=Ενεργοποίηση στην καρτέλα Συνημμένα αρχεία προϊόντος / υπηρεσίας μια επιλογή για τη συγχώνευση προϊόντος PDF σε πρόταση PDF azur εάν το προϊόν / η υπηρεσία περιλαμβάνεται στην προσφορά ViewProductDescInThirdpartyLanguageAbility=Εμφάνιση περιγραφών προϊόντων σε φόρμες στη γλώσσα του τρίτου μέρους (αλλιώς στη γλώσσα του χρήστη) -UseSearchToSelectProductTooltip=Επίσης, αν έχετε μεγάλο αριθμό προϊόντων (> 100.000), μπορείτε να αυξήσετε την ταχύτητα ρυθμίζοντας σταθερά το PRODUCT_DONOTSEARCH_ANYWHERE στο 1 στο Setup-> Other. Η αναζήτηση θα περιορίζεται στην αρχή της συμβολοσειράς. +UseSearchToSelectProductTooltip=Επίσης, εάν έχετε μεγάλο αριθμό προϊόντων (> 100 000), μπορείτε να αυξήσετε την ταχύτητα ορίζοντας την σταθερά PRODUCT_DONOTSEARCH_ANYWHERE σε 1 στο Ρυθμίσεις->Άλλες Ρυθμίσεις. Στη συνέχεια, η αναζήτηση θα περιοριστεί στην αρχή της συμβολοσειράς. UseSearchToSelectProduct=Περιμένετε έως ότου πιέσετε ένα κλειδί πριν φορτώσετε το περιεχόμενο της λίστας σύνθετων προϊόντων (Αυτό μπορεί να αυξήσει την απόδοση εάν έχετε μεγάλο αριθμό προϊόντων, αλλά είναι λιγότερο βολικό) SetDefaultBarcodeTypeProducts=Προεπιλεγμένος τύπος barcode για χρήση σε προϊόντα -SetDefaultBarcodeTypeThirdParties=Προεπιλεγμένος τύπος barcode για χρήση από τρίτα μέρη -UseUnits=Ορίστε μια μονάδα μέτρησης για την ποσότητα κατά την έκδοση παραγγελιών, προτάσεων ή γραμμών τιμολογίου -ProductCodeChecker= Ενότητα για την παραγωγή και τον έλεγχο κωδικού προϊόντος (προϊόν ή υπηρεσία) +SetDefaultBarcodeTypeThirdParties=Προεπιλεγμένος τύπος barcode για χρήση σε τρίτα μέρη +UseUnits=Ορίστε μια μονάδα μέτρησης για την ποσότητα κατά την έκδοση παραγγελιών, προσφορών ή γραμμών τιμολογίου +ProductCodeChecker= Ενότητα για την δημιουργία και τον έλεγχο κωδικού προϊόντος (προϊόν ή υπηρεσία) ProductOtherConf= Διαμόρφωση Προϊόντος / Υπηρεσίας IsNotADir=δεν είναι κατάλογος ##### Syslog ##### SyslogSetup=Ρύθμιση ενότητας καταγραφών SyslogOutput=Αποτελέσματα καταγραφών -SyslogFacility=Ευκολία +SyslogFacility=Λειτουργία SyslogLevel=Επίπεδο -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=Μπορείτε να χρησιμοποιήσετε το DOL_DATA_ROOT / dolibarr.log για ένα αρχείο καταγραφής στον κατάλογο Dolibarr "documents". Μπορείτε να ορίσετε μια διαφορετική διαδρομή για να αποθηκεύσετε αυτό το αρχείο. -ErrorUnknownSyslogConstant=Η σταθερά %s δεν είναι η γνωστή σταθερά Syslog -OnlyWindowsLOG_USER=Στα Windows, θα υποστηρίζεται μόνο η δυνατότητα LOG_USER +SyslogFilename=Όνομα αρχείου και διαδρομή +YouCanUseDOL_DATA_ROOT=Μπορείτε να χρησιμοποιήσετε το DOL_DATA_ROOT/dolibarr.log για ένα αρχείο καταγραφής στον κατάλογο "documents" του Dolibarr. Μπορείτε να ορίσετε και μια διαφορετική διαδρομή για να αποθηκεύσετε αυτό το αρχείο. +ErrorUnknownSyslogConstant=Η σταθερά %s δεν είναι μια γνωστή σταθερά Syslog +OnlyWindowsLOG_USER=Στα Windows, θα υποστηρίζεται μόνο η λειτουργία LOG_USER CompressSyslogs=Συμπίεση και δημιουργία αντιγράφων ασφαλείας των αρχείων καταγραφής εντοπισμού σφαλμάτων (που δημιουργούνται από την ενότητα Καταγραφή για σφάλμα) SyslogFileNumberOfSaves=Αριθμός αρχείων καταγραφής αντιγράφων ασφαλείας προς διατήρηση -ConfigureCleaningCronjobToSetFrequencyOfSaves=Ρυθμίστε τη διαμόρφωση της προγραμματισμένης εργασίας για να ορίσετε την εφεδρική συχνότητα καταγραφής +ConfigureCleaningCronjobToSetFrequencyOfSaves=Διαμορφώστε την προγραμματισμένη εργασία καθαρισμού για να ορίσετε τη συχνότητα δημιουργίας αντιγράφων ασφαλείας αρχείων καταγραφής ##### Donations ##### -DonationsSetup=Ρύθμιση ενθέματος δωρεάς +DonationsSetup=Ρύθμιση ενότητας δωρεάς DonationsReceiptModel=Πρότυπο παραλαβής δωρεάς ##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Ένθεμα μορφής εκτύπωσης -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=Δεν ορίστηκε γεννήτρια -FormatNotSupportedByGenerator=Μορφή που δεν υποστηρίζεται από αυτήν τη γεννήτρια -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 +BarcodeSetup=Ρύθμιση γραμμωτού κώδικα +PaperFormatModule=Ενότητα μορφής εκτύπωσης +BarcodeEncodeModule=Τύπος κωδικοποίησης barcode +CodeBarGenerator=Εφαρμογή δημιουργίας barcode +ChooseABarCode=Δεν ορίστηκε εφαρμογή δημιουργίας +FormatNotSupportedByGenerator=Μορφή που δεν υποστηρίζεται από αυτήν εφαρμογή δημιουργίας +BarcodeDescEAN8=Barcode τύπου EAN8 +BarcodeDescEAN13=Barcode τύπου EAN13 +BarcodeDescUPC=Barcode τύπου UPC +BarcodeDescISBN=Barcode τύπου ISBN +BarcodeDescC39=Barcode τύπου C39 +BarcodeDescC128=Barcode τύπου C128 BarcodeDescDATAMATRIX=Barcode τύπου Datamatrix BarcodeDescQRCODE=Barcode τύπου QR κώδικα -GenbarcodeLocation=Γραμμή εντολών γραμμής εντολών παραγωγής γραμμικού κώδικα (χρησιμοποιείται από τον εσωτερικό κινητήρα για ορισμένους τύπους γραμμικού κώδικα). Πρέπει να είναι συμβατό με το "genbarcode".
    Για παράδειγμα: / usr / local / bin / genbarcode +GenbarcodeLocation=Εργαλείο γραμμής εντολών δημιουργίας γραμμικού κώδικα (χρησιμοποιείται από τον εσωτερικό κινητήρα για ορισμένους τύπους γραμμωτού κώδικα). Πρέπει να είναι συμβατό με το "genbarcode".
    Για παράδειγμα: /usr/local/bin/genbarcode BarcodeInternalEngine=Εσωτερική μηχανή -BarCodeNumberManager=Διαχειριστής για την αυτόματη αρίθμηση του barcode +BarCodeNumberManager=Διαχειριστής για τον αυτόματο καθορισμό αριθμών γραμμωτού κώδικα ##### Prelevements ##### -WithdrawalsSetup=Ρύθμιση της πληρωμής άμεσων χρεώσεων της ενότητας +WithdrawalsSetup=Ρύθμιση ενότητας πληρωμών άμεσης χρέωσης ##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed +ExternalRSSSetup=Ρύθμιση εισαγωγών εξωτερικού RSS +NewRSS=Νέα ροή RSS RSSUrl=RSS URL -RSSUrlExample=Μια ενδιαφέρουσα RSS ροή +RSSUrlExample=Μια ενδιαφέρουσα ροή RSS ##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Email αποστολέα (Από) για τα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται μέσω της ενότητας ηλεκτρονικού ταχυδρομείου +MailingSetup=Ρύθμιση ενότητας EMailing +MailingEMailFrom=Email αποστολέα (Από) για email που αποστέλλονται μέσω της ενότητας EMailing MailingEMailError=Επιστροφή ηλεκτρονικού ταχυδρομείου (Λάθη-σε) για μηνύματα ηλεκτρονικού ταχυδρομείου με σφάλματα -MailingDelay=Δευτερόλεπτα για να περιμένετε μετά την αποστολή του επόμενου μηνύματος +MailingDelay=Δευτερόλεπτα αναμονής μετά την αποστολή του επόμενου μηνύματος ##### Notification ##### -NotificationSetup=Ρύθμιση λειτουργικής μονάδας ειδοποίησης ηλεκτρονικού ταχυδρομείου -NotificationEMailFrom=Email αποστολέα (Από) για μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται από τη λειτουργική μονάδα Ειδοποιήσεις +NotificationSetup=Ρύθμιση ενότητας ειδοποίησεων ηλεκτρονικού ταχυδρομείου +NotificationEMailFrom=Email αποστολέα (Από) για μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται από τη ενότητα Ειδοποιήσεων FixedEmailTarget=Παραλήπτης NotificationDisableConfirmMessageContact=Απόκρυψη της λίστας παραληπτών (που έχουν εγγραφεί ως επαφή) των ειδοποιήσεων στο μήνυμα επιβεβαίωσης NotificationDisableConfirmMessageUser=Απόκρυψη της λίστας των παραληπτών (που έχουν εγγραφεί ως χρήστης) των ειδοποιήσεων στο μήνυμα επιβεβαίωσης NotificationDisableConfirmMessageFix=Απόκρυψη της λίστας παραληπτών (που έχουν εγγραφεί ως καθολικό email) των ειδοποιήσεων στο μήνυμα επιβεβαίωσης ##### Sendings ##### -SendingsSetup=Ρύθμιση μονάδας αποστολής -SendingsReceiptModel=Αποστολή μοντέλου απόδειξη παραλαβής -SendingsNumberingModules=Σας αποστολές αρίθμησης ενοτήτων -SendingsAbility=Υποστηρίξτε τα φύλλα αποστολής για παραδόσεις πελατών -NoNeedForDeliveryReceipts=Στις περισσότερες περιπτώσεις, τα φύλλα αποστολής χρησιμοποιούνται τόσο ως φύλλα για παραδόσεις πελατών (κατάλογος προϊόντων προς αποστολή) όσο και ως φύλλα που παραλαμβάνονται και υπογράφονται από τον πελάτη. Ως εκ τούτου, η παραλαβή των παραδόσεων προϊόντων είναι διπλότυπο και σπάνια ενεργοποιείται. -FreeLegalTextOnShippings=Ελεύθερο κείμενο για τις μεταφορές +SendingsSetup=Ρύθμιση ενότητας αποστολών +SendingsReceiptModel=Υπόδειγμα απόδειξης αποστολής +SendingsNumberingModules=Ενότητες αρίθμησης αποστόλων +SendingsAbility=Υποστήριξη φύλλων αποστολής για παραδόσεις πελατών +NoNeedForDeliveryReceipts=Στις περισσότερες περιπτώσεις, τα φύλλα αποστολής χρησιμοποιούνται τόσο ως φύλλα για παραδόσεις πελατών (κατάλογος προϊόντων προς αποστολή) όσο και ως φύλλα που παραλαμβάνονται και υπογράφονται από τον πελάτη. Ως εκ τούτου, η παραλαβή των παραδόσεων προϊόντων είναι διπλότυπο χαρακτηριστικό και σπάνια ενεργοποιείται. +FreeLegalTextOnShippings=Ελεύθερο κείμενο στις αποστολές ##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Μοντέλο απόδειξης παράδοσης προϊόντων +DeliveryOrderNumberingModules=Ενότητα αρίθμησης αποδείξεων παραδόσεων προϊόντων +DeliveryOrderModel=Υπόδειγμα απόδειξης παράδοσης προϊόντων DeliveriesOrderAbility=Υποστήριξη αποδείξεων παραδόσεων προϊόντων FreeLegalTextOnDeliveryReceipts=Ελεύθερο κείμενο στις αποδείξεις παραλαβής ##### FCKeditor ##### -AdvancedEditor=Εξελιγμένο πρόγραμμα επεξεργασίας +AdvancedEditor=Προηγμένος επεξεργαστής ActivateFCKeditor=Ενεργοποιήστε το προηγμένο πρόγραμμα επεξεργασίας για: -FCKeditorForNotePublic=WYSIWIG δημιουργία/έκδοση του πεδίου «δημόσιες σημειώσεις» στοιχείων -FCKeditorForNotePrivate=WYSIWIG δημιουργία/έκδοση του πεδίου "ιδιωτικές σημειώσεις" στοιχείων -FCKeditorForCompany=WYSIWIG δημιουργία/έκδοση της περιγραφής πεδίου στοιχείων (εκτός προϊόντων/υπηρεσιών) -FCKeditorForProduct=WYSIWIG δημιουργία/έκδοση της περιγραφής πεδίου προϊόντων/υπηρεσιών -FCKeditorForProductDetails=WYSIWIG δημιουργία/έκδοση γραμμών λεπτομερειών προϊόντων για όλες τις οντότητες (προσφορες, παραγγελίες, τιμολόγια κ.λ.π...). Προειδοποίηση: Η χρήση αυτής της επιλογής για αυτήν την περίπτωση δεν συνιστάται, καθώς μπορεί να δημιουργήσει προβλήματα με ειδικούς χαρακτήρες και τη μορφοποίηση σελίδων κατά τη δημιουργία αρχείων PDF. -FCKeditorForMailing= Δημιουργία / έκδοση WYSIWIG για μαζικά eMailings (Εργαλεία-> eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=Δημιουργία / έκδοση WYSIWIG για όλα τα μηνύματα (εκτός από τα εργαλεία-> eMailing) -FCKeditorForTicket=Δημιουργία / έκδοση WYSIWIG για εισιτήρια +FCKeditorForNotePublic=WYSIWYG δημιουργία/έκδοση του πεδίου «δημόσιες σημειώσεις» στοιχείων +FCKeditorForNotePrivate=WYSIWYG δημιουργία/έκδοση του πεδίου "ιδιωτικές σημειώσεις" στοιχείων +FCKeditorForCompany=WYSIWYG δημιουργία/έκδοση της περιγραφής πεδίου στοιχείων (εκτός προϊόντων/υπηρεσιών) +FCKeditorForProductDetails=WYSIWIG δημιουργία/διόρθωση περιγραφής προϊόντων ή γραμμών για αντικείμενα (γραμμές προσφορών, παραγγελίες, τιμολόγια κ.λπ...). +FCKeditorForProductDetails2=Προειδοποίηση: Η χρήση αυτής της επιλογής για αυτήν την περίπτωση δεν συνιστάται, καθώς μπορεί να δημιουργήσει προβλήματα με ειδικούς χαρακτήρες και τη μορφοποίηση σελίδας κατά τη δημιουργία αρχείων PDF. +FCKeditorForMailing= Δημιουργία / έκδοση WYSIWYG για μαζικά eMailings (Εργαλεία-> eMailing) +FCKeditorForUserSignature=WYSIWYG δημιουργία/έκδοση υπογραφής χρήστη +FCKeditorForMail=Δημιουργία/έκδοση WYSIWYG για όλη την αλληλογραφία (εκτός από Εργαλεία->EMailing) +FCKeditorForTicket=Δημιουργία / έκδοση WYSIWYG για εισιτήρια ##### Stock ##### -StockSetup=Ρύθμιση μονάδας αποθέματος -IfYouUsePointOfSaleCheckModule=Εάν χρησιμοποιείτε τη μονάδα POS (Point of Sale) που παρέχεται εξ ορισμού ή μια εξωτερική μονάδα, αυτή η ρύθμιση ενδέχεται να αγνοηθεί από τη μονάδα POS. Οι περισσότερες μονάδες POS σχεδιάζονται από προεπιλογή για να δημιουργήσουν άμεσα ένα τιμολόγιο και να μειώσουν το απόθεμα ανεξάρτητα από τις επιλογές εδώ. Επομένως, εάν χρειάζεστε ή όχι να μειώσετε το απόθεμα κατά την εγγραφή μιας πώλησης από το POS σας, ελέγξτε επίσης τη ρύθμιση της μονάδας POS. +StockSetup=Ρύθμιση ενότητας αποθέματος +IfYouUsePointOfSaleCheckModule=Εάν χρησιμοποιείτε τη μονάδα Point of Sale (POS) που παρέχεται από προεπιλογή ή μια εξωτερική ενότητα, αυτή η ρύθμιση ενδέχεται να αγνοηθεί από τη ενότητα POS σας. Οι περισσότερες ενότητες POS έχουν σχεδιαστεί από προεπιλογή για να δημιουργούν ένα τιμολόγιο αμέσως και να μειώνουν το απόθεμα ανεξάρτητα από τις επιλογές εδώ. Επομένως, εάν θέλετε ή όχι να έχετε μείωση αποθεμάτων κατά την εγγραφή μιας πώλησης από το POS σας, ελέγξτε επίσης τη ρύθμιση της ενότητας POS. ##### Menu ##### MenuDeleted=Το μενού διαγράφηκε Menu=Μενού Menus=Μενού TreeMenuPersonalized=Εξατομικευμένα μενού -NotTopTreeMenuPersonalized=Εξατομικευμένα μενού που δεν συνδέονται με μια καταχώρηση κορυφαίου μενού -NewMenu=New menu -MenuHandler=Χειριστής μενού -MenuModule=Source module +NotTopTreeMenuPersonalized=Εξατομικευμένα μενού που δεν συνδέονται με μια καταχώρηση του επάνω μενού +NewMenu=Νέο μενού +MenuHandler=Πρόγραμμα χειρισμού μενού +MenuModule=Ενότητα Μενού HideUnauthorizedMenu=Απόκρυψη μη εξουσιοδοτημένων μενού και για εσωτερικούς χρήστες (απλώς γκριζαρισμένα διαφορετικά) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module +DetailId=Αναγνωριστικό μενού +DetailMenuHandler=Πρόγραμμα χειρισμού μενού όπου θα εμφανίζεται το νέο μενού +DetailMenuModule=Όνομα ενότητας εάν η καταχώριση μενού προέρχεται από μια ενότητα DetailType=Τύπος μενού (πάνω ή αριστερά) -DetailTitre=Ετικέτα μενού ή κωδικό ετικέτας για μετάφραση -DetailUrl=Διεύθυνση URL όπου σας στέλνει το μενού (Απόλυτη σύνδεση URL ή εξωτερικός σύνδεσμος με http://) +DetailTitre=Ετικέτα μενού ή κωδικός ετικέτας για μετάφραση +DetailUrl=URL στην οποία ανακατευθύνει το μενού (Σχετικός σύνδεσμος URL ή εξωτερικός σύνδεσμος με https://) DetailEnabled=Προϋπόθεση εμφάνισης ή μη εγγραφής -DetailRight=Συνθήκη για την εμφάνιση γκρι μενού χωρίς άδεια -DetailLangs=Lang file name for label code translation +DetailRight=Συνθήκη για την εμφάνιση γκρι μενού μη εξουσιοδοτημένων +DetailLangs=Όνομα αρχείου Lang για μετάφραση κώδικα ετικέτας DetailUser=Intern / Extern / All -Target=Target +Target=Στόχος DetailTarget=Στόχευση συνδέσμων (_blank top ανοίγει ένα νέο παράθυρο) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Διαγραφή καταχωρήσεων μενού -ConfirmDeleteMenu=Είστε βέβαιοι ότι θέλετε να διαγράψετε την καταχώρηση μενού %s ? -FailedToInitializeMenu=Αποτυχία προετοιμασίας μενού +DetailLevel=Επίπεδο (-1: επάνω μενού, 0: μενού κεφαλίδας, >0 μενού και υπομενού) +ModifMenu=Αλλαγή μενού +DeleteMenu=Διαγραφή καταχώρισης μενού +ConfirmDeleteMenu=Είστε σίγουροι ότι θέλετε να διαγράψετε την καταχώρηση μενού %s ? +FailedToInitializeMenu=Αποτυχία αρχικοποίησης μενού ##### Tax ##### TaxSetup=Ρύθμιση ενότητας φόρων, κοινωνικών ή φορολογικών εισφορών και μερισμάτων OptionVatMode=Οφειλόμενο ΦΠΑ -OptionVATDefault=Βασική βάση -OptionVATDebitOption=Βάσει δεδουλευμένων -OptionVatDefaultDesc=Ο ΦΠΑ οφείλεται:
    - κατά την παράδοση αγαθών (βάσει της ημερομηνίας του τιμολογίου)
    - για τις πληρωμές για υπηρεσίες +OptionVATDefault=Τυπική βάση +OptionVATDebitOption=Βάση των Δεδουλευμένων +OptionVatDefaultDesc=Οφείλεται ΦΠΑ:
    - κατά την παράδοση αγαθών (βάσει ημερομηνίας τιμολογίου)
    - για πληρωμές για υπηρεσίες OptionVatDebitOptionDesc=Ο ΦΠΑ οφείλεται:
    - κατά την παράδοση αγαθών (βάσει της ημερομηνίας του τιμολογίου)
    - στο τιμολόγιο (χρέωση) για τις υπηρεσίες OptionPaymentForProductAndServices=Ταμειακή βάση για προϊόντα και υπηρεσίες -OptionPaymentForProductAndServicesDesc=Ο ΦΠΑ οφείλεται:
    - για την πληρωμή αγαθών
    - για τις πληρωμές για υπηρεσίες +OptionPaymentForProductAndServicesDesc=Ο Φ.Π.Α. οφείλεται:
    - για την πληρωμή αγαθών
    - για τις πληρωμές για υπηρεσίες SummaryOfVatExigibilityUsedByDefault=Χρόνος επιλεξιμότητας του ΦΠΑ από προεπιλογή σύμφωνα με την επιλεγμένη επιλογή: OnDelivery=Κατά την αποστολή OnPayment=Κατά την πληρωμή OnInvoice=Κατά την έκδοση τιμ/γίου -SupposedToBePaymentDate=Ημερομηνία πληρωμής που χρησιμοποιήθηκε -SupposedToBeInvoiceDate=Ημερομηνία τιμολογίου που χρησιμοποιήθηκε +SupposedToBePaymentDate=Χρησιμοποιήθηκε η ημερομηνία πληρωμής +SupposedToBeInvoiceDate=Χρησιμοποιήθηκε η ημερομηνία τιμολογίου Buy=Αγορά Sell=Πώληση InvoiceDateUsed=Ημερομηνία τιμολογίου που χρησιμοποιήθηκε -YourCompanyDoesNotUseVAT=Η εταιρεία σας έχει οριστεί να μην χρησιμοποιεί ΦΠΑ (Αρχική σελίδα - Εγκατάσταση - Εταιρεία / Οργανισμός), επομένως δεν υπάρχουν επιλογές ΦΠΑ για την εγκατάσταση. +YourCompanyDoesNotUseVAT=Η εταιρεία σας έχει οριστεί να μην χρησιμοποιεί ΦΠΑ (Αρχική - Ρυθμίσεις - Εταιρεία / Οργανισμός), επομένως δεν υπάρχουν επιλογές ΦΠΑ για την εγκατάσταση. AccountancyCode=Λογιστικός κώδικας -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code +AccountancyCodeSell=Λογιστικός κώδικας πώλησης +AccountancyCodeBuy=Λογιστικός κώδικας αγοράς CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Διατηρήστε το πλαίσιο ελέγχου "Αυτόματη δημιουργία πληρωμής" κενό από προεπιλογή κατά τη δημιουργία νέου φόρου ##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Κλειδί για την έγκριση σύνδεσης εξαγωγής +AgendaSetup=Ρύθμιση ενότητας συμβάντων και ατζέντας +PasswordTogetVCalExport=Κωδικός για την έγκριση συνδέσμου εξαγωγής SecurityKey = Κλειδί ασφαλείας PastDelayVCalExport=Μην εξάγετε συμβάν παλαιότερο από -AGENDA_USE_EVENT_TYPE=Χρήση τύπων συμβάντων (διαχειρίζεται το μενού Ρύθμιση -> Λεξικά -> Τύπος συμβάντων ημερήσιας διάταξης) +AGENDA_USE_EVENT_TYPE=Χρήση τύπων συμβάντων (διαχείριση στο μενού Ρυθμίσεις -> Λεξικά -> Τύπος συμβάντων ατζέντας) AGENDA_USE_EVENT_TYPE_DEFAULT=Αυτόματη ρύθμιση αυτής της προεπιλεγμένης τιμής για τον τύπο συμβάντος στη φόρμα δημιουργίας συμβάντος AGENDA_DEFAULT_FILTER_TYPE=Αυτόματη ρύθμιση αυτού του τύπου συμβάντος στο φίλτρο αναζήτησης της προβολής ατζέντας AGENDA_DEFAULT_FILTER_STATUS=Αυτόματη ρύθμιση αυτής της κατάστασης για συμβάντα στο φίλτρο αναζήτησης της προβολής ατζέντας @@ -1813,162 +1833,163 @@ AGENDA_REMINDER_EMAIL=Ενεργοποίηση υπενθύμισης συμβά AGENDA_REMINDER_EMAIL_NOTE=Σημείωση: Η συχνότητα της προγραμματισμένης εργασίας %s πρέπει να είναι αρκετή για να είστε σίγουροι ότι η υπενθύμιση αποστέλλεται τη σωστή στιγμή. AGENDA_SHOW_LINKED_OBJECT=Εμφάνιση συνδεδεμένου αντικειμένου στην προβολή ατζέντας ##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Η διεύθυνση URL ονομάζεται όταν γίνεται κλικ στο τηλέφωνο picto. Στη διεύθυνση URL, μπορείτε να χρησιμοποιήσετε ετικέτες
    __PHONETO__ που θα αντικατασταθεί με τον αριθμό τηλεφώνου του ατόμου που καλεί
    __PHONEFROM__ που θα αντικατασταθεί με τον αριθμό τηλεφώνου του καλούντος (του δικού σας)
    __LOGIN__ που θα αντικατασταθεί με σύνδεση με κλικ (καθορισμένη στην κάρτα χρήστη)
    __PASS__ που θα αντικατασταθεί με κωδικό πρόσβασης (που ορίζεται στην κάρτα χρήστη). -ClickToDialDesc=Αυτή η ενότητα αλλάζει τους αριθμούς τηλεφώνου, όταν χρησιμοποιείτε desktop υπολογιστή, σε συνδέσμους με δυνατότητα κλικ. Ένα κλικ θα καλέσει τον αριθμό. Αυτό μπορεί να χρησιμοποιηθεί για την έναρξη της τηλεφωνικής κλήσης όταν χρησιμοποιείτε ένα soft phone στον επιτραπέζιο υπολογιστή σας ή όταν χρησιμοποιείτε για παράδειγμα ένα σύστημα CTI που βασίζεται στο πρωτόκολλο SIP. Σημείωση: Όταν χρησιμοποιείτε smartphone, μπορείτε πάντα να κάνετε κλικ στους αριθμούς τηλεφώνου. -ClickToDialUseTelLink=Χρησιμοποιήστε μόνο έναν σύνδεσμο "τηλ::" σε αριθμούς τηλεφώνου +ClickToDialSetup=Ρύθμιση ενότητας Click To Dial +ClickToDialUrlDesc=Η URL καλείται όταν γίνει ένα κλικ στην εικόνα του τηλεφώνου. Στη URL, μπορείτε να χρησιμοποιήσετε tags
    __PHONETO__ που θα αντικατασταθεί με τον αριθμό τηλεφώνου του προσώπου που θέλετε να καλέσετε
    __PHONEFROM__ που θα αντικατασταθεί με τον αριθμό τηλεφώνου του καλούντα (ο δικός σας)
    __LOGIN__ που θα αντικατασταθεί με το όνομα χρήστη της clicktodial σύνδεσης (καθορίζεται στην κάρτα χρήστη)
    __PASS__ που θα αντικατασταθεί με τον κωδικό πρόσβασης clicktodial (που ορίζεται στην κάρτα χρήστη). +ClickToDialDesc=Αυτή η ενότητα μετατρέπει τους αριθμούς τηλεφώνου, όταν χρησιμοποιείτε desktop υπολογιστή, σε συνδέσμους με δυνατότητα κλικ. Ένα κλικ θα καλέσει τον αριθμό. Αυτό μπορεί να χρησιμοποιηθεί για την έναρξη της τηλεφωνικής κλήσης όταν χρησιμοποιείτε ένα soft phone στον desktop υπολογιστή σας ή όταν χρησιμοποιείτε για παράδειγμα ένα σύστημα CTI που βασίζεται στο πρωτόκολλο SIP. Σημείωση: Όταν χρησιμοποιείτε smartphone, μπορείτε πάντα να κάνετε κλικ στους αριθμούς τηλεφώνου. +ClickToDialUseTelLink=Χρησιμοποιήστε απλώς έναν σύνδεσμο "tel:" στους αριθμούς τηλεφώνου ClickToDialUseTelLinkDesc=Χρησιμοποιήστε αυτήν τη μέθοδο, εάν οι χρήστες σας έχουν ένα softphone ή μια διεπαφή λογισμικού, εγκατεστημένη στον ίδιο υπολογιστή με το πρόγραμμα περιήγησης και καλούνται όταν γίνει κλικ σε έναν σύνδεσμο που ξεκινά με "tel:" στο πρόγραμμα περιήγησης σας. Εάν χρειάζεστε έναν σύνδεσμο που ξεκινά με "sip:" ή μια πλήρη λύση διακομιστή (δεν χρειάζεται εγκατάσταση τοπικού λογισμικού), πρέπει να το ορίσετε σε "Όχι" και να συμπληρώσετε το επόμενο πεδίο. ##### Point Of Sale (CashDesk) ##### CashDesk=Σημείο πώλησης -CashDeskSetup=Λειτουργία μονάδας σημείου πώλησης -CashDeskThirdPartyForSell=Προκαθορισμένο κοινό τρίτο μέρος για χρήση για πωλήσεις -CashDeskBankAccountForSell=Default account to use to receive cash payments +CashDeskSetup=Ρύθμιση ενότητας Point of Sales +CashDeskThirdPartyForSell=Προεπιλεγμένο γενικό τρίτο μέρος για χρήση για πωλήσεις +CashDeskBankAccountForSell=Προεπιλεγμένος λογαριασμός που χρησιμοποιείται για τη λήψη πληρωμών με μετρητά CashDeskBankAccountForCheque=Ο προεπιλεγμένος λογαριασμός που θα χρησιμοποιηθεί για την παραλαβή πληρωμών με επιταγή -CashDeskBankAccountForCB=Default account to use to receive payments by credit cards +CashDeskBankAccountForCB=Προεπιλεγμένος λογαριασμός που χρησιμοποιηθεί για τη λήψη πληρωμών με πιστωτικές κάρτες CashDeskBankAccountForSumup=Προεπιλεγμένη τράπεζα για χρήση με πληρωμές SumUp -CashDeskDoNotDecreaseStock=Απενεργοποίηση της μείωσης της μετοχής όταν πραγματοποιείται πώληση από το σημείο πώλησης (εάν "όχι", μειώνεται το απόθεμα για κάθε πώληση που γίνεται από το POS, ανεξάρτητα από την επιλογή που έχει οριστεί στην ενότητα Ενότητα). -CashDeskIdWareHouse=Αναγκαστικός περιορισμός αποθήκης για μείωση των αποθεμάτων +CashDeskDoNotDecreaseStock=Απενεργοποιήστε τη μείωση των αποθεμάτων όταν μια πώληση πραγματοποιείται από το Σημείο πώλησης (εάν "όχι", η μείωση των αποθεμάτων γίνεται για κάθε πώληση που πραγματοποιείται από το POS, ανεξάρτητα από την επιλογή που έχει οριστεί στην ενότητα Απόθεμα). +CashDeskIdWareHouse=Αναγκαστικός περιορισμός αποθήκης χρήσης για μείωση των αποθεμάτων StockDecreaseForPointOfSaleDisabled=Η μείωση του αποθέματος από το σημείο πώλησης είναι απενεργοποιημένη -StockDecreaseForPointOfSaleDisabledbyBatch=Η μείωση του αποθέματος στο POS δεν είναι συμβατή με τη διαχείριση σειριακής / παρτίδας μονάδας (αυτή τη στιγμή είναι ενεργή), επομένως η μείωση του αποθέματος είναι απενεργοποιημένη. +StockDecreaseForPointOfSaleDisabledbyBatch=Η μείωση του αποθέματος στο POS δεν είναι συμβατή με τη διαχείριση της ενότητας παρτίδες/σειριακοί αριθμοί (που αυτή τη στιγμή είναι ενεργή), επομένως η μείωση του αποθέματος είναι απενεργοποιημένη. CashDeskYouDidNotDisableStockDecease=Δεν απενεργοποιήσατε τη μείωση των μετοχών όταν πραγματοποιείτε μια πώληση από το σημείο πώλησης. Ως εκ τούτου απαιτείται αποθήκη. -CashDeskForceDecreaseStockLabel=Αναγκάστηκε η μείωση των αποθεμάτων για προϊόντα παρτίδας. -CashDeskForceDecreaseStockDesc=Μειώστε πρώτα από τις παλαιότερες ημερομηνίες φαγητού και πώλησης. -CashDeskReaderKeyCodeForEnter=Κωδικός κλειδιού για το "Enter" που ορίζεται στον αναγνώστη γραμμωτού κώδικα (Παράδειγμα: 13) +CashDeskForceDecreaseStockLabel=Η μείωση των αποθεμάτων για τα προϊόντα παρτίδας ήταν αναγκαστική. +CashDeskForceDecreaseStockDesc=Μειώστε πρώτα από τις παλαιότερες ημερομηνίες κατανάλωσης και πώλησης. +CashDeskReaderKeyCodeForEnter=Κωδικός κλειδιού ASCII για το "Enter" που ορίζεται στο πρόγραμμα ανάγνωσης γραμμωτού κώδικα (Παράδειγμα: 13) ##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=Αυτή η ενότητα σάς επιτρέπει να διαχειρίζεστε σελιδοδείκτες. Μπορείτε επίσης να προσθέσετε συντομεύσεις σε όλες τις σελίδες Dolibarr ή σε εξωτερικούς ιστότοπους στο αριστερό σας μενού. +BookmarkSetup=Ρύθμιση ενότητας σελιδοδεικτών +BookmarkDesc=Αυτή η ενότητα σάς επιτρέπει να διαχειρίζεστε σελιδοδείκτες. Μπορείτε επίσης να προσθέσετε συντομεύσεις σε όλες τις σελίδες του Dolibarr ή σε εξωτερικούς ιστότοπους στο αριστερό σας μενού. NbOfBoomarkToShow=Μέγιστος αριθμός σελιδοδεικτών που εμφανίζονται στο αριστερό μενού ##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=Ενεργοποιώντας αυτή την ενότητα, ο Dolibarr γίνεται διακομιστής υπηρεσίας ιστού για την παροχή διαφόρων υπηρεσιών διαδικτύου. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here +WebServicesSetup=Ρύθμιση ενότητας Webservices +WebServicesDesc=Ενεργοποιώντας αυτή την ενότητα, το Dolibarr γίνεται διακομιστής υπηρεσίας ιστού για την παροχή διαφόρων υπηρεσιών διαδικτύου. +WSDLCanBeDownloadedHere=Τα αρχεία περιγραφής WSDL των παρεχόμενων υπηρεσιών μπορείτε να τα κατεβάσετε εδώ EndPointIs=Οι πελάτες SOAP πρέπει να στείλουν τα αιτήματά τους στο τελικό σημείο Dolibarr που διατίθεται στη διεύθυνση URL ##### API #### -ApiSetup=Ρύθμιση μονάδας API -ApiDesc=Ενεργοποιώντας αυτή την ενότητα, ο Dolibarr γίνεται διακομιστής REST για την παροχή διαφόρων υπηρεσιών ιστού. +ApiSetup=Ρύθμιση ενότητας API +ApiDesc=Με την ενεργοποίηση αυτής της ενότητας, το Dolibarr γίνεται διακομιστής REST για να παρέχει διάφορες υπηρεσίες web. ApiProductionMode=Ενεργοποιήστε τη λειτουργία παραγωγής (αυτό θα ενεργοποιήσει τη χρήση μνήμης cache για τη διαχείριση υπηρεσιών) ApiExporerIs=Μπορείτε να εξερευνήσετε και να δοκιμάσετε τα API στη διεύθυνση URL -OnlyActiveElementsAreExposed=Μόνο τα στοιχεία από τα ενεργοποιημένα στοιχεία είναι εκτεθειμένα +OnlyActiveElementsAreExposed=Εκτίθενται μόνο στοιχεία από ενεργοποιημένες ενότητες ApiKey=Κλειδί για το API -WarningAPIExplorerDisabled=Ο εξερευνητής API έχει απενεργοποιηθεί. Ο εξερευνητής API δεν απαιτείται να παρέχει υπηρεσίες API. Είναι ένα εργαλείο για τον προγραμματιστή να εντοπίσει / δοκιμάσει τα API REST. Αν χρειάζεστε αυτό το εργαλείο, μεταβείτε στη ρύθμιση API REST για να το ενεργοποιήσετε. +WarningAPIExplorerDisabled=Ο API explorer έχει απενεργοποιηθεί. Ο API explorer δεν απαιτείται να παρέχει υπηρεσίες API. Είναι ένα εργαλείο για τον προγραμματιστή ώστε να εντοπίσει / δοκιμάσει τα REST APIs. Αν χρειάζεστε αυτό το εργαλείο, μεταβείτε στη ρύθμιση της ενότητας API REST για να το ενεργοποιήσετε. ##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Δωρεάν κείμενο σχετικά με τις αποδείξεις ελέγχου -BankOrderShow=Σειρά Εμφάνιση των τραπεζικών λογαριασμών για τις χώρες που χρησιμοποιούν "λεπτομερή αριθμός τράπεζα" -BankOrderGlobal=Γενικός +BankSetupModule=Ρύθμιση ενότητας τράπεζας +FreeLegalTextOnChequeReceipts=Ελευθερο κείμενο στις αποδείξεις επιταγών +BankOrderShow=Εμφάνιση σειράς τραπεζικών λογαριασμών για χώρες που χρησιμοποιούν "αναλυτικό αριθμό τράπεζας" +BankOrderGlobal=Γενική BankOrderGlobalDesc=Γενική σειρά εμφάνισης -BankOrderES=Ισπανικά -BankOrderESDesc=Ισπανικά σειρά εμφάνισης -ChequeReceiptsNumberingModule=Ελέγξτε τη λειτουργική μονάδα αριθμοδότησης εισιτηρίων +BankOrderES=Ισπανική +BankOrderESDesc=Ισπανική σειρά εμφάνισης +ChequeReceiptsNumberingModule=Ελέγξτε την ενότητα αρίθμησης αποδείξεων ##### Multicompany ##### -MultiCompanySetup=Multi-company module setup +MultiCompanySetup=Ρύθμιση ενότητας πολλαπλών εταιρειών ##### Suppliers ##### -SuppliersSetup=Ρύθμιση μονάδας προμηθευτή -SuppliersCommandModel=Πλήρες πρότυπο της εντολής αγοράς -SuppliersCommandModelMuscadet=Πλήρες πρότυπο της εντολής αγοράς (παλιά εφαρμογή του προτύπου cornas) +SuppliersSetup=Ρύθμιση ενότητας προμηθευτή +SuppliersCommandModel=Πλήρες πρότυπο παραγγελιών αγοράς +SuppliersCommandModelMuscadet=Πλήρες πρότυπο παραγγελιών αγοράς (παλιά εφαρμογή του προτύπου cornas) SuppliersInvoiceModel=Πλήρες πρότυπο τιμολογίου προμηθευτή -SuppliersInvoiceNumberingModel=Αριθμητικά μοντέλα τιμολογίων προμηθευτών +SuppliersInvoiceNumberingModel=Υποδείγματα Αρίθμησης τιμολογίων προμηθευτών IfSetToYesDontForgetPermission=Αν είναι ρυθμισμένη σε μη μηδενική τιμή, μην ξεχάσετε να δώσετε δικαιώματα σε ομάδες ή χρήστες που επιτρέπονται για τη δεύτερη έγκριση ##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Διαδρομή προς αρχείο που περιέχει το Maxmind ip στη μετάφραση χώρας.
    Παραδείγματα:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. +GeoIPMaxmindSetup=Ρύθμιση ενότητας GeoIP Maxmind +PathToGeoIPMaxmindCountryDataFile=Διαδρομή προς το αρχείο που περιέχει τη μετάφραση του Maxmind GeoIP +NoteOnPathLocation=Σημειώστε ότι το αρχείο δεδομένων ip ανά χώρα πρέπει να βρίσκεται μέσα σε έναν κατάλογο που να έχει δικαιώματα ανάγνωσης η PHP σας (Ελέγξτε τις ρυθμίσεις PHP open_basedir και τα δικαιώματα του συστήματος αρχείων). +YouCanDownloadFreeDatFileTo=Μπορείτε να κάνετε λήψη μιας δωρεάν δοκιμαστικής έκδοσης του αρχείου χώρας Maxmind GeoIP στη διεύθυνση %s. YouCanDownloadAdvancedDatFileTo=Μπορείτε επίσης να κατεβάσετε μια πιο πλήρη έκδοση , με ενημερώσεις, του αρχείου χώρας Maxmind GeoIP στο %s. -TestGeoIPResult=Test of a conversion IP -> country +TestGeoIPResult=Δοκιμή μετατροπής IP -> χώρα ##### Projects ##### -ProjectsNumberingModules=Εργασίες αρίθμησης ενθεμάτων -ProjectsSetup=Project module setup -ProjectsModelModule=Εργασίες έργου αναφοράς εγγράφων -TasksNumberingModules=Εργασίες αριθμοδότησης μονάδας -TaskModelModule=Εργασίες υπόδειγμα εγγράφου αναφορών -UseSearchToSelectProject=Περιμένετε μέχρι να πιεστεί ένα πλήκτρο πριν φορτώσετε το περιεχόμενο της λίστας σύνθετων έργων.
    Αυτό μπορεί να βελτιώσει την απόδοση εάν έχετε μεγάλο αριθμό έργων, αλλά είναι λιγότερο βολικό. +ProjectsNumberingModules=Ενότητα αρίθμησης έργων +ProjectsSetup=Ρύθμιση ενότητας έργου +ProjectsModelModule=Υπόδειγμα εγγράφου αναφορών έργου +TasksNumberingModules=Ενότητα αρίθμησης εργασιών +TaskModelModule=Υπόδειγμα εγγράφου αναφορών εργασιών +UseSearchToSelectProject=Περιμένετε μέχρι να πατηθεί ένα πλήκτρο πριν φορτώσετε το περιεχόμενο της σύνθετης λίστας έργου.
    Αυτό μπορεί να βελτιώσει την απόδοση εάν έχετε μεγάλο αριθμό έργων, αλλά είναι λιγότερο βολικό. ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Λογιστικές περιόδους +AccountingPeriods=Λογιστικές περίοδοι AccountingPeriodCard=Λογιστική περίοδος NewFiscalYear=Νέα λογιστική περίοδος -OpenFiscalYear=Ανοικτή λογιστική περίοδος +OpenFiscalYear=Άνοιγμα λογιστικής περιόδου CloseFiscalYear=Κλείσιμο λογιστικής περιόδου -DeleteFiscalYear=Διαγραφή περιόδου λογιστικής -ConfirmDeleteFiscalYear=Είστε σίγουροι ότι θα διαγράψετε αυτήν τη λογιστική περίοδο; +DeleteFiscalYear=Διαγραφή λογιστικής περιόδου +ConfirmDeleteFiscalYear=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη λογιστική περίοδο; ShowFiscalYear=Εμφάνιση λογιστικής περιόδου -AlwaysEditable=Μπορεί πάντα να επεξεργαστεί -MAIN_APPLICATION_TITLE=Αναγκαστικό ορατό όνομα της εφαρμογής (προειδοποίηση: η ρύθμιση του δικού σας ονόματος μπορεί να δημιουργήσει πρόβλημα στη λειτουργία Αυτόματης συμπλήρωσης σύνδεσης όταν χρησιμοποιείτε το DoliDroid εφαρμογή για κινητά) +AlwaysEditable=Πάντα επεξεργάσιμο +MAIN_APPLICATION_TITLE=Επιβολή ορατού ονόματος εφαρμογής (προειδοποίηση: ο ορισμός του δικού σας ονόματος εδώ μπορεί να διακόψει τη δυνατότητα σύνδεσης αυτόματης συμπλήρωσης όταν χρησιμοποιείτε την εφαρμογή DoliDroid για κινητά) NbMajMin=Ελάχιστος αριθμός κεφαλαίων χαρακτήρων NbNumMin=Ελάχιστος αριθμός αριθμητικών χαρακτήρων NbSpeMin=Ελάχιστος αριθμός ειδικών χαρακτήρων -NbIteConsecutive=Ελάχιστος αριθμός επανάληψης ίδιων χαρακτήρων +NbIteConsecutive=Μέγιστος αριθμός επανάληψης ίδιων χαρακτήρων NoAmbiCaracAutoGeneration=Μη χρησιμοποιείται διφορούμενους χαρακτήρες ("1","l","i","|","0","O") για αυτόματη δημιουργία -SalariesSetup=Ρύθμιση module μισθών +SalariesSetup=Ρύθμιση ενότητας μισθών SortOrder=Σειρά ταξινόμησης Format=Μορφή -TypePaymentDesc=0: Είδος πληρωμής πελάτη, 1: Τύπος πληρωμής προμηθευτή, 2: Τρόπος πληρωμής τόσο από τους πελάτες όσο και από τους προμηθευτές -IncludePath=Συμπεριλάβετε τη διαδρομή (οριστεί σε μεταβλητή %s) -ExpenseReportsSetup=Ρύθμιση εκθέσεων δαπανών ενότητας +TypePaymentDesc=0: Τύπος πληρωμής πελάτη, 1: Τύπος πληρωμής προμηθευτή, 2: Τύπος πληρωμής τόσο πελατών όσο και προμηθευτών +IncludePath=Συμπερίληψη διαδρομής (που ορίζεται στη μεταβλητή %s) +ExpenseReportsSetup=Ρύθμιση της ενότητας Αναφορές Εξόδων TemplatePDFExpenseReports=Πρότυπα εγγράφων για τη δημιουργία εγγράφου αναφοράς δαπανών -ExpenseReportsRulesSetup=Ρύθμιση εκθέσεων εξόδων για τους module - Κανόνες -ExpenseReportNumberingModules=Μονάδα αρίθμησης αναφορών εξόδων +ExpenseReportsRulesSetup=Ρύθμιση της ενότητας Αναφορές Εξόδων - Κανόνες +ExpenseReportNumberingModules=Ενότητα αρίθμησης εκθέσεων δαπανών NoModueToManageStockIncrease=Δεν έχει ενεργοποιηθεί καμία ενότητα ικανή να διαχειριστεί την αυτόματη αύξηση των αποθεμάτων. Η αύξηση των αποθεμάτων θα γίνεται μόνο με χειροκίνητη εισαγωγή. -YouMayFindNotificationsFeaturesIntoModuleNotification=Μπορείτε να βρείτε επιλογές για ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου ενεργοποιώντας και διαμορφώνοντας την ενότητα "Ειδοποίηση". +YouMayFindNotificationsFeaturesIntoModuleNotification=Μπορείτε να βρείτε επιλογές για ειδοποιήσεις μέσω email ενεργοποιώντας και διαμορφώνοντας την ενότητα "Ειδοποίηση". TemplatesForNotifications=Πρότυπα για ειδοποιήσεις -ListOfNotificationsPerUser=Λίστα αυτόματων ειδοποιήσεων ανά χρήστη * -ListOfNotificationsPerUserOrContact=Κατάλογος πιθανών αυτόματων ειδοποιήσεων (σε επιχειρηματικό συμβάν) διαθέσιμων ανά χρήστη * ή ανά επαφή ** +ListOfNotificationsPerUser=Λίστα αυτόματων ειδοποιήσεων ανά χρήστη* +ListOfNotificationsPerUserOrContact=Λίστα πιθανών αυτόματων ειδοποιήσεων (σε επιχειρηματικό συμβάν) διαθέσιμων ανά χρήστη * ή ανά επαφή ** ListOfFixedNotifications=Λίστα αυτόματων σταθερών ειδοποιήσεων -GoOntoUserCardToAddMore=Μεταβείτε στην καρτέλα "Ειδοποιήσεις" ενός χρήστη για να προσθέσετε ή να καταργήσετε ειδοποιήσεις για χρήστες +GoOntoUserCardToAddMore=Μεταβείτε στην καρτέλα "Ειδοποιήσεις" ενός χρήστη για να προσθέσετε ή να αφαιρέσετε ειδοποιήσεις για τους χρήστες GoOntoContactCardToAddMore=Μεταβείτε στην καρτέλα "Ειδοποιήσεις" τρίτου μέρους για να προσθέσετε ή να καταργήσετε ειδοποιήσεις για επαφές / διευθύνσεις Threshold=Κατώφλι -BackupDumpWizard=Οδηγός για την δημιουργία του αρχείου σκουπιδιών στη βάση δεδομένων -BackupZipWizard=Οδηγός για να αρχειοθετησετε τον κατάλογο των εγγράφων -SomethingMakeInstallFromWebNotPossible=Δεν είναι δυνατή η εγκατάσταση εξωτερικής μονάδας από τη διεπαφή ιστού για τον ακόλουθο λόγο: +BackupDumpWizard=Οδηγός δημιουργίας του αρχείου αντιγράφου ασφαλείας της βάσης δεδομένων +BackupZipWizard=Οδηγός δημιουργίας αρχείου του κατάλογου των εγγράφων +SomethingMakeInstallFromWebNotPossible=Η εγκατάσταση εξωτερικής ενότητας δεν είναι δυνατή από τη διεπαφή ιστού για τον ακόλουθο λόγο: SomethingMakeInstallFromWebNotPossible2=Για το λόγο αυτό, η διαδικασία αναβάθμισης που περιγράφεται εδώ είναι μια χειρωνακτική διαδικασία που μπορεί να εκτελέσει μόνο ένας προνομιούχος χρήστης. -InstallModuleFromWebHasBeenDisabledByFile=Η εγκατάσταση εξωτερικής μονάδας από εφαρμογή έχει απενεργοποιηθεί από τον διαχειριστή σας. Πρέπει να τον ζητήσετε να καταργήσει το αρχείο %s για να επιτρέψει αυτή τη λειτουργία. -ConfFileMustContainCustom=Η εγκατάσταση ή η δημιουργία μιας εξωτερικής μονάδας από την εφαρμογή πρέπει να αποθηκεύσει τα αρχεία μονάδας στον κατάλογο %s . Για να επεξεργαστείτε αυτόν τον κατάλογο από Dolibarr, πρέπει να ρυθμίσετε το conf / conf.php για να προσθέσετε τις 2 γραμμές οδηγίας:
    $ dolibarr_main_url_root_alt = '/ έθιμο';
    $ dolibarr_main_document_root_alt = '%s / custom'; -HighlightLinesOnMouseHover=Επισημάνετε τις γραμμές του πινάκου όταν περνάει το ποντίκι -HighlightLinesColor=Επισημάνετε το χρώμα της γραμμής όταν το ποντίκι περάσει (χρησιμοποιήστε το 'ffffff' για να μην επισημανθεί) -HighlightLinesChecked=Επισημάνετε το χρώμα της γραμμής όταν την ελέγξετε (χρησιμοποιήστε το 'ffffff' για να μην επισημανθεί) +InstallModuleFromWebHasBeenDisabledContactUs=Η εγκατάσταση ή η ανάπτυξη εξωτερικών λειτουργικών μονάδων ή δυναμικών ιστοσελίδων, από την εφαρμογή, είναι προς το παρόν κλειδωμένη για λόγους ασφαλείας. Επικοινωνήστε μαζί μας εάν χρειάζεται να ενεργοποιήσετε αυτήν τη δυνατότητα. +InstallModuleFromWebHasBeenDisabledByFile=Η εγκατάσταση εξωτερικής ενότητας από την εφαρμογή έχει απενεργοποιηθεί από τον διαχειριστή σας. Πρέπει να του ζητήσετε να αφαιρέσει το αρχείο %s για να επιτραπεί αυτή η δυνατότητα. +ConfFileMustContainCustom=Κατά την εγκατάσταση ή τη δημιουργία μιας εξωτερικής ενότητας από την εφαρμογή πρέπει να αποθηκεύσετε τα αρχεία της ενότητας στον κατάλογο %s . Για να υποβληθεί σε επεξεργασία αυτού ο κατάλογος από το Dolibarr, πρέπει να ρυθμίσετε το conf/conf.php και να προσθέσετε τις 2 γραμμές οδηγιών:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Επισήμανση των γραμμών του πίνακα όταν περνάει ο δρομέας του ποντικιού από πάνω +HighlightLinesColor=Επισήμανση του χρώματος της γραμμής όταν περνάει ο δρομέας του ποντικιού από πάνω (χρησιμοποιήστε 'ffffff' για να μην γίνει επισήμανση) +HighlightLinesChecked=Χρώμα επισήμανσης γραμμής όταν αυτή επιλέγεται (χρησιμοποιήστε 'ffffff' για να μην επισημανθεί) UseBorderOnTable=Εμφάνιση περιγραμμάτων αριστερά-δεξιά στους πίνακες -BtnActionColor=Χρώμα του κουμπιού δράσης -TextBtnActionColor=Χρώμα κειμένου του κουμπιού δράσης +BtnActionColor=Χρώμα του κουμπιού ενέργειας +TextBtnActionColor=Χρώμα κειμένου του κουμπιού ενέργειας TextTitleColor=Χρώμα κειμένου του τίτλου σελίδας -LinkColor=Χρώμα σε συνδέσμους -PressF5AfterChangingThis=Πατήστε CTRL + F5 στο πληκτρολόγιο ή διαγράψτε την προσωρινή μνήμη του προγράμματος περιήγησής σας αφού αλλάξετε αυτήν την τιμή για να την έχετε αποτελεσματική +LinkColor=Χρώμα συνδέσμων +PressF5AfterChangingThis=Πατήστε το συνδυασμό πλήκτρων CTRL+F5 στο πληκτρολόγιο ή διαγράψτε την προσωρινή μνήμη του προγράμματος περιήγησης σας αφού αλλάξετε αυτήν την τιμή για να είναι αποτελεσματική NotSupportedByAllThemes=Θα λειτουργεί με βασικά θέματα, μπορεί να μην υποστηρίζεται από εξωτερικά θέματα BackgroundColor=Χρώμα φόντου TopMenuBackgroundColor=Χρώμα φόντου για το επάνω μενού -TopMenuDisableImages=Απόκρυψη εικόνων στο μενού "Κορυφαία" +TopMenuDisableImages=Εικονίδιο ή Κείμενο στο επάνω μενού LeftMenuBackgroundColor=Χρώμα φόντου για το αριστερό μενού BackgroundTableTitleColor=Χρώμα φόντου για τη γραμμή επικεφαλίδας του πίνακα BackgroundTableTitleTextColor=Χρώμα κειμένου για τη γραμμή τίτλου πίνακα BackgroundTableTitleTextlinkColor=Χρώμα κειμένου για τη γραμμή συνδέσμου τίτλου πίνακα BackgroundTableLineOddColor=Χρώμα φόντου για τις περιττές (μονές) γραμμές του πίνακα BackgroundTableLineEvenColor=Χρώμα φόντου για τις άρτιες (ζυγές) γραμμές του πίνακα -MinimumNoticePeriod=Ελάχιστη περίοδος προειδοποίησης (Η αίτησή σας πρέπει να γίνει πριν από αυτή την καθυστέρηση) +MinimumNoticePeriod=Ελάχιστη περίοδος προειδοποίησης (Η αίτηση σας για άδεια πρέπει να υποβληθεί πριν από αυτό το διάστημα) NbAddedAutomatically=Αριθμός ημερών που προστίθενται στους μετρητές χρηστών (αυτόματα) κάθε μήνα EnterAnyCode=Αυτό το πεδίο περιέχει μια αναφορά για τον προσδιορισμό της γραμμής. Εισάγετε οποιαδήποτε τιμή της επιλογής σας, αλλά χωρίς ειδικούς χαρακτήρες. -Enter0or1=Εισαγάγετε 0 ή 1 -UnicodeCurrency=Εισαγάγετε εδώ μεταξύ τιράντες, λίστα αριθμού byte που αντιπροσωπεύει το σύμβολο νομίσματος. Για παράδειγμα: για το $, πληκτρολογήστε [36] - για την Βραζιλία, το πραγματικό R $ [82,36] - για €, πληκτρολογήστε [8364] +Enter0or1=Εισαγωγή 0 ή 1 +UnicodeCurrency=Εισαγετε εδώ ανάμεσα σε αγκύλες λίστα με αριθμό byte που αντιπροσωπεύει το σύμβολο νομίσματος. Για παράδειγμα: για $, πληκτρολογήστε [36] - για Βραζιλία real R$ [82,36] - για €, πληκτρολογήστε [8364] ColorFormat=Το χρώμα RGB είναι σε μορφή HEX, π.χ.: FF0000 -PictoHelp=Όνομα εικονιδίου σε μορφή:
    - image.png για ένα αρχείο εικόνας στον τρέχοντα κατάλογο θεμάτων
    - image.png@module εάν το αρχείο βρίσκεται στον κατάλογο /img/ μιας ενότητας
    - fa-xxx για ένα FontAwesome fa-xxx εικονίδιο
    - fonwtawesome_xxx_fa_color_size για ένα FontAwesome fa-xxx εικονίδιο (με πρόθεμα, χρώμα και μέγεθος) +PictoHelp=Όνομα εικονιδίου σε μορφή:
    - image.png για ένα αρχείο εικόνας στον τρέχοντα κατάλογο θεμάτων
    - image.png@module εάν το αρχείο βρίσκεται στον κατάλογο /img/ μιας ενότητας
    - fa-xxx για ένα FontAwesome fa-xxx εικονίδιο
    - fontawesome_xxx_fa_color_size για ένα FontAwesome fa-xxx εικονίδιο (με πρόθεμα, χρώμα και μέγεθος) PositionIntoComboList=Θέση γραμμής σε σύνθετο πλαίσιο SellTaxRate=Συντελεστής φόρου επί των πωλήσεων -RecuperableOnly=Ναι για ΦΠΑ "Δεν γίνεται αντιληπτό αλλά ανακτήσιμο" αφιερωμένο σε κάποια χώρα στη Γαλλία. Διατηρήστε την τιμή "Όχι" σε όλες τις άλλες περιπτώσεις. -UrlTrackingDesc=Αν ο παροχέας ή η υπηρεσία μεταφορών προσφέρει μια σελίδα ή έναν ιστότοπο για να ελέγξει την κατάσταση των αποστολών σας, μπορείτε να την εισάγετε εδώ. Μπορείτε να χρησιμοποιήσετε το κλειδί {TRACKID} στις παραμέτρους διεύθυνσης URL, ώστε το σύστημα να το αντικαταστήσει με τον αριθμό καταδίωξης που εισήγαγε ο χρήστης στην κάρτα αποστολής. -OpportunityPercent=Όταν δημιουργείτε ένα μόλυβδο, θα ορίσετε ένα εκτιμώμενο ποσό έργου / οδηγού. Σύμφωνα με την κατάσταση του μολύβδου, το ποσό αυτό μπορεί να πολλαπλασιαστεί με αυτό το ποσοστό για να εκτιμηθεί το συνολικό ποσό που μπορεί να δημιουργήσει το σύνολο των πελατών σας. Η τιμή είναι ένα ποσοστό (μεταξύ 0 και 100). -TemplateForElement=Αυτό το πρότυπο αλληλογραφίας σχετίζεται με το είδος αντικειμένου; Ένα πρότυπο email είναι διαθέσιμο μόνο όταν χρησιμοποιείτε το κουμπί "Αποστολή email" από το σχετικό αντικείμενο. +RecuperableOnly=Ναι για τον ΦΠΑ "Not Perceived but Recoverable" αφιερωμένο για κάποιο state στη Γαλλία. Διατηρήστε την τιμή στο "Όχι" σε όλες τις άλλες περιπτώσεις. +UrlTrackingDesc=Εάν ο πάροχος ή η υπηρεσία μεταφοράς προσφέρει μια σελίδα ή έναν ιστότοπο για να ελέγχετε την κατάσταση των αποστολών σας, μπορείτε να την εισάγετε εδώ. Μπορείτε να χρησιμοποιήσετε το κλειδί {TRACKID} στις παραμέτρους της διεύθυνσης URL, ώστε το σύστημα να το αντικαταστήσει με τον αριθμό παρακολούθησης που ο χρήστης εισήγαγε στην κάρτα αποστολής. +OpportunityPercent=Όταν δημιουργήσετε έναν υποψήφιο πελάτη, θα ορίσετε ένα εκτιμώμενο ποσό έργου/δυνητικού πελάτη. Ανάλογα με την κατάσταση του δυνητικού πελάτη, αυτό το ποσό μπορεί να πολλαπλασιαστεί με αυτό το ποσοστό για να αξιολογηθεί το συνολικό ποσό που μπορούν να δημιουργήσουν όλοι οι δυνητικοί πελάτες σας. Η τιμή είναι ένα ποσοστό (μεταξύ 0 και 100). +TemplateForElement=Με ποιο είδος αντικειμένου σχετίζεται αυτό το πρότυπο αλληλογραφίας; Ένα πρότυπο email είναι διαθέσιμο μόνο όταν χρησιμοποιείτε το κουμπί "Αποστολή email" από το σχετικό αντικείμενο. TypeOfTemplate=Τύπος πρότυπου TemplateIsVisibleByOwnerOnly=Το πρότυπο είναι ορατό μόνο για τον κάτοχο VisibleEverywhere=Ορατό παντού -VisibleNowhere=Ορατό από πουθενά -FixTZ=TimeZone fix +VisibleNowhere=Μη ορατό +FixTZ=Διόρθωση ζώνης ώρας FillFixTZOnlyIfRequired=Παράδειγμα: +2 (συμπληρώστε μόνο αν υπάρχει πρόβλημα) -ExpectedChecksum=Αναμενόμενο Checksum -CurrentChecksum=Σύνολο ελέγχου +ExpectedChecksum=Αναμενόμενο άθροισμα ελέγχου +CurrentChecksum=Τρέχον άθροισμα ελέγχου ExpectedSize=Αναμενόμενο μέγεθος CurrentSize=Τρέχον μέγεθος -ForcedConstants=Απαιτούμενες σταθερές τιμές +ForcedConstants=Απαιτούμενες τιμές σταθερών (constants) MailToSendProposal=Προσφορές πελατών -MailToSendOrder=Παραγγελίες πωλήσεων +MailToSendOrder=Εντολές πωλήσεων MailToSendInvoice=Τιμολόγια πελατών MailToSendShipment=Αποστολές MailToSendIntervention=Παρεμβάσεις @@ -1977,59 +1998,61 @@ MailToSendSupplierOrder=Εντολές αγοράς MailToSendSupplierInvoice=Τιμολόγια προμηθευτή MailToSendContract=Συμβόλαια MailToSendReception=Παραλαβές -MailToThirdparty=Πελ./Προμ. +MailToExpenseReport=Αναφορές εξόδων +MailToThirdparty=Τρίτα μέρη MailToMember=Μέλη MailToUser=Χρήστες MailToProject=Έργα -MailToTicket=Εισιτήρια +MailToTicket=Tickets ByDefaultInList=Εμφάνιση από προεπιλογή στην προβολή λίστας YouUseLastStableVersion=Χρησιμοποιείτε την πιο πρόσφατη σταθερή έκδοση -TitleExampleForMajorRelease=Παράδειγμα μηνύματος που μπορείτε να χρησιμοποιήσετε για να ανακοινώσετε αυτή τη σημαντική έκδοση (διστάσετε να το χρησιμοποιήσετε στις ιστοσελίδες σας) -TitleExampleForMaintenanceRelease=Παράδειγμα μηνύματος που μπορείτε να χρησιμοποιήσετε για να ανακοινώσετε αυτήν την έκδοση συντήρησης (μπορείτε να το χρησιμοποιήσετε στους ιστοτόπους σας) -ExampleOfNewsMessageForMajorRelease=Το Dolibarr ERP & CRM %s είναι διαθέσιμο. Η έκδοση %s είναι μια σημαντική έκδοση με πολλά νέα χαρακτηριστικά τόσο για τους χρήστες όσο και για τους προγραμματιστές. Μπορείτε να το κατεβάσετε από την περιοχή λήψης της διαδικτυακής πύλης https://www.dolibarr.org (υποδιαιρέσεις σταθερών εκδόσεων). Μπορείτε να διαβάσετε το ChangeLog για την πλήρη λίστα αλλαγών. -ExampleOfNewsMessageForMaintenanceRelease=Το Dolibarr ERP & CRM %s είναι διαθέσιμο. Η έκδοση %s είναι μια έκδοση συντήρησης, έτσι περιέχει μόνο διορθώσεις σφαλμάτων. Συνιστούμε σε όλους τους χρήστες να αναβαθμίσουν σε αυτήν την έκδοση. Μια έκδοση συντήρησης δεν εισάγει νέες λειτουργίες ή αλλαγές στη βάση δεδομένων. Μπορείτε να το κατεβάσετε από την περιοχή λήψης της πύλης https://www.dolibarr.org (υποκατάστατο Σταθερές εκδόσεις). Μπορείτε να διαβάσετε το ChangeLog για την πλήρη λίστα των αλλαγών. -MultiPriceRuleDesc=Όταν είναι ενεργοποιημένη η επιλογή "Πολλά επίπεδα τιμών ανά προϊόν / υπηρεσία", μπορείτε να ορίσετε διαφορετικές τιμές (μία ανά επίπεδο τιμής) για κάθε προϊόν. Για να εξοικονομήσετε χρόνο, μπορείτε να εισαγάγετε έναν κανόνα για να υπολογίσετε αυτόματα μια τιμή για κάθε επίπεδο με βάση την τιμή του πρώτου επιπέδου, οπότε θα πρέπει να εισαγάγετε μόνο μια τιμή για το πρώτο επίπεδο για κάθε προϊόν. Αυτή η σελίδα έχει σχεδιαστεί για να σας εξοικονομήσει χρόνο αλλά είναι χρήσιμη μόνο αν οι τιμές σας για κάθε επίπεδο είναι σχετικές με το πρώτο επίπεδο. Μπορείτε να αγνοήσετε αυτή τη σελίδα στις περισσότερες περιπτώσεις. +TitleExampleForMajorRelease=Παράδειγμα μηνύματος που μπορείτε να χρησιμοποιήσετε για να ανακοινώσετε αυτή τη σημαντική έκδοση (μην διστάσετε να το χρησιμοποιήσετε στις ιστοσελίδες σας) +TitleExampleForMaintenanceRelease=Παράδειγμα μηνύματος που μπορείτε να χρησιμοποιήσετε για να ανακοινώσετε αυτήν την έκδοση συντήρησης (μπορείτε να το χρησιμοποιήσετε στις ιστοσελίδες σας) +ExampleOfNewsMessageForMajorRelease=Το Dolibarr ERP & CRM %s είναι διαθέσιμο. Η έκδοση %s είναι μια σημαντική έκδοση με πολλές νέες δυνατότητες τόσο για χρήστες όσο και για προγραμματιστές. Μπορείτε να το κατεβάσετε από την περιοχή λήψης της πύλης https://www.dolibarr.org (στον υποκατάλογο σταθερών εκδόσεων). Μπορείτε να διαβάσετε το ChangeLog για την πλήρη λίστα αλλαγών. +ExampleOfNewsMessageForMaintenanceRelease=Το Dolibarr ERP & CRM %s είναι διαθέσιμο. Η έκδοση %s είναι μια έκδοση συντήρησης, επομένως περιέχει μόνο διορθώσεις σφαλμάτων. Συνιστούμε σε όλους τους χρήστες να κάνουν αναβάθμιση σε αυτήν την έκδοση. Μια έκδοση συντήρησης δεν εισάγει νέες δυνατότητες ή αλλαγές στη βάση δεδομένων. Μπορείτε να το κατεβάσετε από την περιοχή λήψης της πύλης https://www.dolibarr.org (στον υποκατάλογο σταθερών εκδόσεων). Μπορείτε να διαβάσετε το ChangeLog για την πλήρη λίστα αλλαγών. +MultiPriceRuleDesc=Όταν είναι ενεργοποιημένη η επιλογή "Πολλά επίπεδα τιμών ανά προϊόν/υπηρεσία", μπορείτε να ορίσετε διαφορετικές τιμές (μία ανά επίπεδο τιμής) για κάθε προϊόν. Για να εξοικονομήσετε χρόνο, εδώ μπορείτε να εισαγάγετε έναν κανόνα για να υπολογίσετε αυτόματα μια τιμή για κάθε επίπεδο με βάση την τιμή του πρώτου επιπέδου, επομένως θα πρέπει να εισαγάγετε μόνο μια τιμή για το πρώτο επίπεδο για κάθε προϊόν. Αυτή η σελίδα έχει σχεδιαστεί για να σας εξοικονομεί χρόνο, αλλά είναι χρήσιμη μόνο εάν οι τιμές σας για κάθε επίπεδο είναι σε σχέση με το πρώτο επίπεδο. Μπορείτε να αγνοήσετε αυτήν τη σελίδα στις περισσότερες περιπτώσεις. ModelModulesProduct=Πρότυπα για έγγραφα προϊόντων WarehouseModelModules=Πρότυπα για έγγραφα αποθηκών ToGenerateCodeDefineAutomaticRuleFirst=Για να μπορείτε να δημιουργείτε αυτόματα κωδικούς, πρέπει πρώτα να ορίσετε έναν διαχειριστή για τον αυτόματο ορισμό του αριθμού γραμμικού κώδικα. -SeeSubstitutionVars=Δείτε τη σημείωση * για λίστα πιθανών μεταβλητών υποκατάστασης +SeeSubstitutionVars=Δείτε τη σημείωση * για τη λίστα πιθανών μεταβλητών αντικατάστασης SeeChangeLog=Δείτε το αρχείο ChangeLog (μόνο στα αγγλικά) AllPublishers=Όλοι οι εκδότες UnknownPublishers=Άγνωστοι εκδότες -AddRemoveTabs=Προσθέστε ή καταργήστε καρτέλες +AddRemoveTabs=Προσθήκη ή κατάργηση καρτέλων AddDataTables=Προσθήκη πινάκων αντικειμένων -AddDictionaries=Προσθέστε πίνακες λεξικών -AddData=Προσθέστε δεδομένα αντικειμένων ή λεξικών -AddBoxes=Προσθέστε γραφικά στοιχεία +AddDictionaries=Προσθήκη πινάκων λεξικών +AddData=Προσθήκη δεδομένων αντικειμένων ή λεξικών +AddBoxes=Προσθήκη γραφικών στοιχείων AddSheduledJobs=Προσθήκη προγραμματισμένων εργασιών -AddHooks=Προσθέστε γάντζους -AddTriggers=Προσθήκη ενεργοποιήσεων +AddHooks=Προσθήκη hooks +AddTriggers=Προσθήκη triggers AddMenus=Προσθήκη μενού AddPermissions=Προσθήκη δικαιωμάτων -AddExportProfiles=Προσθέστε προφίλ εξαγωγής +AddExportProfiles=Προσθήκη προφίλ εξαγωγής AddImportProfiles=Προσθήκη προφίλ εισαγωγής -AddOtherPagesOrServices=Προσθέστε άλλες σελίδες ή υπηρεσίες -AddModels=Προσθέστε πρότυπα εγγράφου ή αρίθμησης -AddSubstitutions=Προσθέστε υποκαταστάσεις κλειδιών +AddOtherPagesOrServices=Προσθήκη άλλων σελίδων ή υπηρεσίων +AddModels=Προσθήκη πρότυπων εγγράφων ή αρίθμησης +AddSubstitutions=Προσθήκη αντικαταστάσεων κλειδιών DetectionNotPossible=Η ανίχνευση δεν είναι δυνατή -UrlToGetKeyToUseAPIs=Url για να πάρει το διακριτικό για να χρησιμοποιήσει το API (αφού έχει ληφθεί το token, αποθηκεύεται στον πίνακα χρηστών βάσης δεδομένων και πρέπει να παρέχεται σε κάθε κλήση API) +UrlToGetKeyToUseAPIs=Διεύθυνση URL για λήψη token για χρήση API (μετά τη λήψη του token, αυτό αποθηκεύεται στον πίνακα χρηστών της βάσης δεδομένων και πρέπει να παρέχεται σε κάθε κλήση API) ListOfAvailableAPIs=Λίστα διαθέσιμων API -activateModuleDependNotSatisfied=Η ενότητα "%s" εξαρτάται από τη λειτουργική μονάδα "%s", η οποία λείπει, επομένως η ενότητα "%1$s" ενδέχεται να μην λειτουργεί σωστά. Εγκαταστήστε την ενότητα "%2$s" ή απενεργοποιήστε την ενότητα "%1$s" εάν θέλετε να είστε ασφαλείς από οποιαδήποτε έκπληξη +activateModuleDependNotSatisfied=Η ενότητα "%s" εξαρτάται από την ενότητα "%s", η οποία λείπει, επομένως η ενότητα "%1$s" ενδέχεται να μην λειτουργεί σωστά. Εγκαταστήστε την ενότητα "%2$s" ή απενεργοποιήστε την ενότητα "%1$s" για να αποφύγετε ενδεχόμενα προβλήματα CommandIsNotInsideAllowedCommands=Η εντολή που προσπαθείτε να εκτελέσετε δεν βρίσκεται στη λίστα επιτρεπόμενων εντολών που ορίζονται στην παράμετρο $ dolibarr_main_restrict_os_commands στο αρχείο conf.php . -LandingPage=Σελίδα στόχος -SamePriceAlsoForSharedCompanies=Αν χρησιμοποιείτε μια ενότητα πολλαπλών εταιρειών, με την επιλογή "Ενιαία τιμή", η τιμή θα είναι επίσης ίδια για όλες τις εταιρείες, εάν τα προϊόντα μοιράζονται μεταξύ των περιβαλλόντων -ModuleEnabledAdminMustCheckRights=Η μονάδα έχει ενεργοποιηθεί. Οι άδειες για τις ενεργοποιημένες μονάδες δόθηκαν μόνο σε διαχειριστές. Ίσως χρειαστεί να χορηγήσετε δικαιώματα σε άλλους χρήστες ή ομάδες με μη αυτόματο τρόπο, εάν είναι απαραίτητο. -UserHasNoPermissions=Αυτός ο χρήστης δεν έχει οριστεί δικαιώματα -TypeCdr=Χρησιμοποιήστε το "Κανένας" εάν η ημερομηνία πληρωμής είναι η ημερομηνία του τιμολογίου συν ένα δέλτα σε ημέρες (δέλτα είναι πεδίο "%s")
    Χρησιμοποιήστε το "Στο τέλος του μήνα", εάν, μετά το δέλτα, η ημερομηνία πρέπει να αυξηθεί για να φτάσει στο τέλος του μήνα (+ ένα προαιρετικό "%s" σε ημέρες)
    Χρησιμοποιήστε το "Τρέχουσα / Επόμενη" για να έχετε την ημερομηνία πληρωμής ως το πρώτο Nth του μήνα μετά το δέλτα (το delta είναι πεδίο "%s", το N αποθηκεύεται στο πεδίο "%s") -BaseCurrency=Νόμισμα αναφοράς της εταιρείας (πηγαίνετε σε ρύθμιση της εταιρείας για να το αλλάξετε αυτό) +LandingPage=Σελίδα προορισμού +SamePriceAlsoForSharedCompanies=Εάν χρησιμοποιείτε μια ενότητα πολλαπλών εταιρειών, με την επιλογή "Ενιαία τιμή", η τιμή θα είναι επίσης η ίδια για όλες τις εταιρείες εάν τα προϊόντα μοιράζονται μεταξύ περιβαλλόντων +ModuleEnabledAdminMustCheckRights=Η ενότητα έχει ενεργοποιηθεί. Τα δικαιώματα για ενεργοποιημένες ενότητες δόθηκαν μόνο σε διαχειριστές. Ίσως χρειαστεί να εκχωρήσετε δικαιώματα σε άλλους χρήστες ή ομάδες χειροκίνητα, εάν το κρίνετε απαραίτητο. +UserHasNoPermissions=Αυτός ο χρήστης δεν έχει καθορισμένα δικαιώματα +TypeCdr=Χρησιμοποιήστε "Καμία" εάν η ημερομηνία προθεσμίας πληρωμής είναι η ημερομηνία του τιμολογίου συν ένα δέλτα σε ημέρες (το δέλτα είναι το πεδίο "%s")
    Χρησιμοποιήστε "Στο τέλος του μήνα", εάν, μετά το δέλτα, η ημερομηνία πρέπει να αυξηθεί για να φτάσετε στο τέλος του μήνα (+ ένα προαιρετικό "%s" σε ημέρες)
    Χρησιμοποιήστε το "Τρέχον/Επόμενο" για να έχετε την ημερομηνία προθεσμίας πληρωμής το πρώτο Ν του μήνα μετά το δέλτα (το δέλτα είναι το πεδίο "%s", το N αποθηκεύεται στο πεδίο "%s") +BaseCurrency=Νόμισμα αναφοράς της εταιρείας (πηγαίνετε στη ρύθμιση της εταιρείας για να το αλλάξετε) WarningNoteModuleInvoiceForFrenchLaw=Αυτή η ενότητα %s συμμορφώνεται με τους γαλλικούς νόμους (Loi Finance 2016). WarningNoteModulePOSForFrenchLaw=Αυτή η ενότητα %s συμμορφώνεται με τους γαλλικούς νόμους (Loi Finance 2016), επειδή η ενότητα Μη αναστρέψιμες καταγραφές ενεργοποιείται αυτόματα. -WarningInstallationMayBecomeNotCompliantWithLaw=Προσπαθείτε να εγκαταστήσετε την ενότητα %s που είναι μια εξωτερική μονάδα. Η ενεργοποίηση μιας εξωτερικής μονάδας σημαίνει ότι εμπιστεύεστε τον εκδότη της συγκεκριμένης ενότητας και ότι είστε βέβαιοι ότι η ενότητα αυτή δεν επηρεάζει δυσμενώς τη συμπεριφορά της εφαρμογής σας και συμμορφώνεται με τους νόμους της χώρας σας (%s). Εάν η ενότητα εισάγει ένα παράνομο χαρακτηριστικό, είστε υπεύθυνοι για τη χρήση παράνομου λογισμικού. -MAIN_PDF_MARGIN_LEFT=Αριστερό περιθώριο σε PDF +WarningInstallationMayBecomeNotCompliantWithLaw=Προσπαθείτε να εγκαταστήσετε την εξωτερική ενότητα%s . Η ενεργοποίηση μιας εξωτερικής ενότητας σημαίνει ότι εμπιστεύεστε τον εκδότη της συγκεκριμένης ενότητας και ότι είστε βέβαιοι ότι η ενότητα αυτή δεν επηρεάζει δυσμενώς τη συμπεριφορά της εφαρμογής σας και συμμορφώνεται με τους νόμους της χώρας σας (%s). Εάν η ενότητα εισάγει ένα παράνομο χαρακτηριστικό, είστε υπεύθυνοι για τη χρήση αυτού του παράνομου λογισμικού. +MAIN_PDF_MARGIN_LEFT=Αριστερό περιθώριο στο PDF MAIN_PDF_MARGIN_RIGHT=Δεξί περιθώριο στο PDF -MAIN_PDF_MARGIN_TOP=Κορυφή περιθώριο σε PDF -MAIN_PDF_MARGIN_BOTTOM=Κάτω περιθώριο σε PDF -MAIN_DOCUMENTS_LOGO_HEIGHT=Ύψος για το λογότυπο σε PDF +MAIN_PDF_MARGIN_TOP=Πάνω περιθώριο στο PDF +MAIN_PDF_MARGIN_BOTTOM=Κάτω περιθώριο στο PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=Ύψος λογότυπου στο PDF +DOC_SHOW_FIRST_SALES_REP=Εμφάνιση πρώτου αντιπροσώπου πωλήσεων MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Προσθήκη στήλης για εικόνα στις γραμμές προσφορών MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Το πλάτος της στήλης εάν προστεθεί μια εικόνα σε γραμμές MAIN_PDF_NO_SENDER_FRAME=Απόκρυψη περιγραμμάτων στο πλαίσιο διεύθυνσης αποστολέα @@ -2040,138 +2063,152 @@ PROPOSAL_PDF_HIDE_PAYMENTTERM=Απόκρυψη όρων πληρωμής PROPOSAL_PDF_HIDE_PAYMENTMODE=Απόκρυψη τρόπου πληρωμής MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Προσθήκη ηλεκτρονικής υπογραφής σε PDF NothingToSetup=Δεν απαιτείται συγκεκριμένη ρύθμιση για αυτήν την ενότητα. -SetToYesIfGroupIsComputationOfOtherGroups=Ορίστε αυτό το ναι αν αυτή η ομάδα είναι ένας υπολογισμός άλλων ομάδων -EnterCalculationRuleIfPreviousFieldIsYes=Εισαγάγετε τον κανόνα υπολογισμού εάν το προηγούμενο πεδίο είχε οριστεί σε Ναι.
    Για παράδειγμα:
    CODEGRP1+CODEGRP2 -SeveralLangugeVariatFound=Πολλές γλωσσικές παραλλαγές βρέθηκαν -RemoveSpecialChars=Καταργήστε τους ειδικούς χαρακτήρες +SetToYesIfGroupIsComputationOfOtherGroups=Ορίστε αυτό σε ναι εάν αυτή η ομάδα είναι ένας υπολογισμός άλλων ομάδων +EnterCalculationRuleIfPreviousFieldIsYes=Εισάγετε κανόνα υπολογισμού εάν το προηγούμενο πεδίο είχε οριστεί σε Ναι.
    Για παράδειγμα:
    CODEGRP1+CODEGRP2 +SeveralLangugeVariatFound=Βρέθηκαν αρκετές παραλλαγές γλώσσας +RemoveSpecialChars=Κατάργηση ειδικών χαρακτήρων COMPANY_AQUARIUM_CLEAN_REGEX=Φίλτρο Regex για καθαρισμό τιμής (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Φίλτρο Regex για καθαρισμό τιμής (COMPANY_DIGITARIA_CLEAN_REGEX) -COMPANY_DIGITARIA_UNIQUE_CODE=Διπλότυπο δεν επιτρέπεται -GDPRContact=Υπεύθυνος Προστασίας Δεδομένων (DPO, Προστασία δεδομένων ή επικοινωνία GDPR) +COMPANY_DIGITARIA_UNIQUE_CODE=Δεν επιτρέπεται το διπλότυπο +RemoveSpecialWords=Καθαρισμός ορισμένων λέξεων κατά τη δημιουργία υπολογαριασμών για πελάτες ή προμηθευτές +RemoveSpecialWordsHelp=Καθορίστε τις λέξεις που πρέπει να καθαριστούν πριν από τον υπολογισμό του λογαριασμού πελάτη ή προμηθευτή. Χρησιμοποιήστε ένα ";" ανάμεσα σε κάθε λέξη +GDPRContact=Υπεύθυνος Προστασίας Δεδομένων (DPO, Προστασία Προσωπικών Δεδομένων ή επαφή GDPR) GDPRContactDesc=Εάν αποθηκεύετε προσωπικά δεδομένα στο Πληροφοριακό σας Σύστημα, μπορείτε να ορίσετε την επαφή που είναι υπεύθυνη για τον Γενικό Κανονισμό Προστασίας Δεδομένων εδώ -HelpOnTooltip=Βοήθεια κειμένου για να εμφανιστεί στο tooltip -HelpOnTooltipDesc=Βάλτε εδώ ένα κείμενο ή ένα πλήκτρο μετάφρασης για να εμφανιστεί το κείμενο σε μια επεξήγηση όταν το πεδίο εμφανίζεται σε μια φόρμα +HelpOnTooltip=Κείμενο βοήθειας προς εμφάνιση στο αναδυόμενο πλαίσιο επεξήγησης(tooltip) +HelpOnTooltipDesc=Τοποθετήστε κείμενο ή ένα κλειδί μετάφρασης εδώ για να εμφανίζεται στο αναδυόμενο πλαίσιο επεξήγησης(tooltip) όταν αυτό το πεδίο εμφανίζεται σε μια φόρμα YouCanDeleteFileOnServerWith=Μπορείτε να διαγράψετε αυτό το αρχείο στο διακομιστή με γραμμή εντολών:
    %s -ChartLoaded=Λογαριασμός που έχει φορτωθεί +ChartLoaded=Φορτώθηκε το λογιστικό σχέδιο SocialNetworkSetup=Ρύθμιση της ενότητας Κοινωνικά δίκτυα EnableFeatureFor=Ενεργοποίηση χαρακτηριστικών για %s -VATIsUsedIsOff=Σημείωση: Η επιλογή χρήσης Φόρου Πωλήσεων ή ΦΠΑ έχει οριστεί σε Off (Απενεργοποίηση) στο μενού %s - %s, οπότε ο φόρος πωλήσεων ή ο Vat που θα χρησιμοποιηθούν θα είναι πάντα 0 για τις πωλήσεις. -SwapSenderAndRecipientOnPDF=Αντικαταστήστε τη θέση διευθύνσεων αποστολέα και παραλήπτη σε έγγραφα PDF +VATIsUsedIsOff=Σημείωση: Η επιλογή χρήσης Φόρου Πωλήσεων ή Φ.Π.Α. έχει οριστεί σε Off (Απενεργοποίηση) στο μενού %s - %s, οπότε ο Φόρος Πωλήσεων ή ο Φ.Π.Α. που θα χρησιμοποιηθούν θα είναι πάντα 0 για τις πωλήσεις. +SwapSenderAndRecipientOnPDF=Εναλλαγή θέσης διεύθυνσης αποστολέα και παραλήπτη σε έγγραφα PDF FeatureSupportedOnTextFieldsOnly=Προειδοποίηση, η δυνατότητα υποστηρίζεται μόνο σε πεδία κειμένου και συνδυαστικές λίστες. Επίσης, πρέπει να οριστεί μια παράμετρος URL action=create ή action=edit Ή το όνομα της σελίδας πρέπει να τελειώνει με 'new.php' για να ενεργοποιηθεί αυτή η δυνατότητα. -EmailCollector=Συλλέκτης ηλεκτρονικού ταχυδρομείου -EmailCollectorDescription=Προσθέστε μια προγραμματισμένη εργασία και μια σελίδα ρύθμισης για να σαρώσετε τακτικά παράθυρα email (χρησιμοποιώντας το πρωτόκολλο IMAP) και να καταγράψετε τα μηνύματα που έχετε λάβει στην αίτησή σας, στο σωστό μέρος ή / και να δημιουργήσετε αυτόματα τις εγγραφές (όπως οι οδηγοί). -NewEmailCollector=Νέος συλλέκτης ηλεκτρονικού ταχυδρομείου -EMailHost=Υποδοχή διακομιστή IMAP ηλεκτρονικού ταχυδρομείου +EmailCollector=Συλλέκτης email +EmailCollectors=Συλλέκτες email +EmailCollectorDescription=Προσθέστε μια προγραμματισμένη εργασία και μια σελίδα ρύθμισης για να σαρώνετε τακτικά τα email (χρησιμοποιώντας το πρωτόκολλο IMAP) και να καταγράφετε τα email που λαμβάνονται στην εφαρμογή σας, στο σωστό μέρος ή/και να δημιουργείτε ορισμένες εγγραφές αυτόματα (όπως δυνητικούς πελάτες). +NewEmailCollector=Νέος Συλλέκτης Email +EMailHost=Κεντρικός υπολογιστής διακομιστή IMAP email +EMailHostPort=Θύρα email διακομιστή IMAP +loginPassword=Όνομα σύνδεσης/Κωδικός πρόσβασης +oauthToken=Oauth2 token +accessType=Τύπος πρόσβασης +oauthService=Υπηρεσία Oauth +TokenMustHaveBeenCreated=Η ενότητα OAuth2 πρέπει να είναι ενεργοποιημένη και να έχει δημιουργηθεί ένα διακριτικό oauth2 με τα σωστά δικαιώματα (για παράδειγμα, το πεδίο "gmail_full" με το OAuth για το Gmail). MailboxSourceDirectory=Κατάλογος προέλευσης γραμματοκιβωτίου MailboxTargetDirectory=Κατάλογος προορισμού γραμματοκιβωτίου -EmailcollectorOperations=Λειτουργίες από συλλέκτη -EmailcollectorOperationsDesc=Οι λειτουργίες εκτελούνται από πάνω προς τα κάτω -MaxEmailCollectPerCollect=Μέγιστος αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου που συλλέγονται ανά συλλογή +EmailcollectorOperations=Λειτουργίες συλλέκτη +EmailcollectorOperationsDesc=Οι λειτουργίες εκτελούνται με σειρά από πάνω προς τα κάτω +MaxEmailCollectPerCollect=Μέγιστος αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου που συλλέγονται +TestCollectNow=Δοκιμαστική συλλογή CollectNow=Συλλέξτε τώρα -ConfirmCloneEmailCollector=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε τον συλλέκτη email %s; -DateLastCollectResult=Ημερομηνία τελευταίας προσπάθειας είσπραξης -DateLastcollectResultOk=Ημερομηνία τελευταίας επιτυχούς είσπραξης +ConfirmCloneEmailCollector=Είστε σίγουροι ότι θέλετε να αντιγράψετε τον συλλέκτη email %s; +DateLastCollectResult=Ημερομηνία τελευταίας προσπάθειας συλλογής +DateLastcollectResultOk=Ημερομηνία τελευταίας επιτυχούς συλλογής LastResult=Τελευταίο αποτέλεσμα -EmailCollectorHideMailHeaders=Μην συμπεριλάβετε το περιεχόμενο της κεφαλίδας email στο αποθηκευμένο περιεχόμενο των συλλεγόμενων e-mail -EmailCollectorHideMailHeadersHelp=Όταν είναι ενεργοποιημένο, οι κεφαλίδες e-mail δεν προστίθενται στο τέλος του περιεχομένου email που αποθηκεύεται ως συμβάντα. -EmailCollectorConfirmCollectTitle=Το email συλλέγει επιβεβαίωση +EmailCollectorHideMailHeaders=Μην συμπεριλάβετε το περιεχόμενο της κεφαλίδας του email στο αποθηκευμένο περιεχόμενο των συλλεγόμενων e-mail +EmailCollectorHideMailHeadersHelp=Όταν είναι ενεργοποιημένο, οι κεφαλίδες e-mail δεν προστίθενται στο τέλος του περιεχομένου email που αποθηκεύεται ως συμβάν ατζέντας. +EmailCollectorConfirmCollectTitle=Επιβεβαίωση συλλογής email EmailCollectorConfirmCollect=Θέλετε να εκτελέσετε αυτόν τον συλλέκτη τώρα; -EmailCollectorExampleToCollectTicketRequestsDesc=Συλλέξτε email που ταιριάζουν με ορισμένους κανόνες και δημιουργήστε αυτόματα ένα εισιτήριο (η ενότητα εισιτηρίων πρέπει να είναι ενεργοποιημένη) με τις πληροφορίες email. Μπορείτε να χρησιμοποιήσετε αυτόν τον συλλέκτη εάν παρέχετε κάποια υποστήριξη μέσω email, έτσι το αίτημα εισιτηρίου σας θα δημιουργηθεί αυτόματα. Ενεργοποιήστε επίσης τη Συλλογή_Απαντήσεων για να συλλέξετε απαντήσεις του πελάτη σας απευθείας στην προβολή εισιτηρίων (πρέπει να απαντήσετε μεσα από το Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Παράδειγμα συλλογής του αιτήματος εισιτηρίου (μόνο το πρώτο μήνυμα) +EmailCollectorExampleToCollectTicketRequestsDesc=Συλλέξτε email που ταιριάζουν με ορισμένους κανόνες και δημιουργήστε αυτόματα ένα ticket (η ενότητα tickets πρέπει να είναι ενεργοποιημένη) με τις πληροφορίες email. Μπορείτε να χρησιμοποιήσετε αυτόν τον συλλέκτη εάν παρέχετε κάποια υποστήριξη μέσω email, έτσι το ticket του αιτήματος σας θα δημιουργηθεί αυτόματα. Ενεργοποιήστε επίσης τη Συλλογή_Απαντήσεων για να συλλέξετε απαντήσεις του πελάτη σας απευθείας στην προβολή ticket (πρέπει να απαντήσετε μέσα από το Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Παράδειγμα συλλογής του ticket αιτήματος (μόνο το πρώτο μήνυμα) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Σαρώστε τον κατάλογο "Απεσταλμένα" του γραμματοκιβωτίου σας για να βρείτε email που στάλθηκαν ως απάντηση άλλου email απευθείας από το λογισμικό email σας και όχι από το Dolibarr. Εάν βρεθεί ένα τέτοιο μήνυμα ηλεκτρονικού ταχυδρομείου, το συμβάν απάντησης καταγράφεται στο Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Παράδειγμα συλλογής απαντήσεων ηλεκτρονικού ταχυδρομείου που αποστέλλονται από εξωτερικό λογισμικό ηλεκτρονικού ταχυδρομείου -EmailCollectorExampleToCollectDolibarrAnswersDesc=Συλλέξτε όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που είναι απάντηση σε ένα email που στάλθηκε από την εφαρμογή σας. Ένα συμβάν (Η ενοτητα Ατζέντα πρέπει να είναι ενεργοποιημένη) με την απάντηση μέσω email θα καταγραφεί στο καλό μέρος. Για παράδειγμα, εάν στείλετε μια εμπορική πρόταση, παραγγελία, τιμολόγιο ή μήνυμα για ένα εισιτήριο μέσω email από την εφαρμογή και ο πελάτης απαντήσει στο email σας, το σύστημα θα καταλάβει αυτόματα την απάντηση και θα την προσθέσει στο ERP σας. +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Παράδειγμα συλλογής απαντήσεων email που στάλθηκαν από εξωτερικό λογισμικό ηλεκτρονικού ταχυδρομείου +EmailCollectorExampleToCollectDolibarrAnswersDesc=Συλλέξτε όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που είναι απάντηση σε ένα email που στάλθηκε από την εφαρμογη σας. Ένα συμβάν (Η ενότητα ατζέντα πρέπει να είναι ενεργοποιημένη) με την απάντηση μέσω email θα καταγραφεί. Για παράδειγμα, εάν στείλετε μια εμπορική προσφορά, παραγγελία, τιμολόγιο ή μήνυμα για ένα ticket μέσω email από την εφαρμογή και ο παραλήπτης απαντήσει στο email σας, το σύστημα θα καταλάβει αυτόματα την απάντηση και θα την προσθέσει στο ERP σας. EmailCollectorExampleToCollectDolibarrAnswers=Παράδειγμα συλλογής όλων των εισερχόμενων μηνυμάτων ως απαντήσεων σε μηνύματα που αποστέλλονται από το Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Συλλέξτε email που ταιριάζουν με ορισμένους κανόνες και δημιουργήστε αυτόματα έναν υποψήφιο πελάτη (η ενότητα Έργο πρέπει να είναι ενεργοποιημένη) με τις πληροφορίες email. Μπορείτε να χρησιμοποιήσετε αυτόν τον συλλέκτη εάν θέλετε να ακολουθήσετε το προβάδισμά σας χρησιμοποιώντας τη μονάδα Project (1 υποψήφιος πελάτης = 1 έργο), έτσι ώστε οι υποψήφιοι πελάτες σας να δημιουργούνται αυτόματα. Εάν ο συλλέκτης Collect_Responses είναι επίσης ενεργοποιημένος, όταν στέλνετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου από τους δυνητικούς πελάτες, τις προτάσεις σας ή οποιοδήποτε άλλο αντικείμενο, ενδέχεται επίσης να δείτε απαντήσεις των πελατών ή των συνεργατών σας απευθείας στην εφαρμογή.
    Σημείωση: Με αυτό το αρχικό παράδειγμα, δημιουργείται ο τίτλος του υποψήφιου πελάτη συμπεριλαμβανομένου του email. Εάν το τρίτο μέρος δεν μπορεί να βρεθεί στη βάση δεδομένων (νέος πελάτης), ο υποψήφιος πελάτης θα προσαρτηθεί στο τρίτο μέρος με αναγνωριστικό 1. +EmailCollectorExampleToCollectLeadsDesc=Συλλέξτε email που ταιριάζουν με ορισμένους κανόνες και δημιουργήστε αυτόματα έναν υποψήφιο πελάτη (η ενότητα Έργο πρέπει να είναι ενεργοποιημένη) με τις πληροφορίες email. Μπορείτε να χρησιμοποιήσετε αυτόν τον συλλέκτη εάν θέλετε να ακολουθήσετε την προοπτική αυτή χρησιμοποιώντας την ενότητα Έργο (1 υποψήφιος πελάτης = 1 έργο), έτσι ώστε οι υποψήφιοι πελάτες σας να δημιουργούνται αυτόματα. Εάν ο συλλέκτης Collect_Responses είναι επίσης ενεργοποιημένος, όταν στέλνετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου από τους δυνητικούς πελάτες, τις προτάσεις σας ή οποιοδήποτε άλλο αντικείμενο, ενδέχεται επίσης να δείτε απαντήσεις των πελατών ή των συνεργατών σας απευθείας στην εφαρμογή.
    Σημείωση: Με αυτό το αρχικό παράδειγμα, δημιουργείται ο τίτλος του υποψήφιου πελάτη συμπεριλαμβανομένου του email. Εάν το τρίτο μέρος δεν μπορεί να βρεθεί στη βάση δεδομένων (νέος πελάτης), ο υποψήφιος πελάτης θα προσαρτηθεί στο τρίτο μέρος με αναγνωριστικό 1. EmailCollectorExampleToCollectLeads=Παράδειγμα συλλογής προοπτικών -EmailCollectorExampleToCollectJobCandidaturesDesc=Συλλέξτε μηνύματα ηλεκτρονικού ταχυδρομείου που αφορούν προσφορές εργασίας (Πρέπει να είναι ενεργοποιημένη η πρόσληψη ενότητας). Μπορείτε να ολοκληρώσετε αυτόν τον συλλέκτη εάν θέλετε να δημιουργήσετε αυτόματα μια υποψηφιότητα για ένα αίτημα εργασίας. Σημείωση: Με αυτό το αρχικό παράδειγμα, δημιουργείται ο τίτλος της υποψηφιότητας συμπεριλαμβανομένου του email. +EmailCollectorExampleToCollectJobCandidaturesDesc=Συλλέξτε μηνύματα ηλεκτρονικού ταχυδρομείου που αιτήσεις πρόσληψης (Πρέπει να είναι ενεργοποιημένη η ενότητα πρόσληψη ). Μπορείτε να συμπληρώσετε αυτόν τον συλλέκτη εάν θέλετε να δημιουργήσετε αυτόματα μια υποψηφιότητα για ένα αίτημα εργασίας. Σημείωση: Με αυτό το αρχικό παράδειγμα, δημιουργείται ο τίτλος της υποψηφιότητας συμπεριλαμβανομένου του email. EmailCollectorExampleToCollectJobCandidatures=Παράδειγμα συλλογής υποψηφιοτήτων για θέσεις εργασίας που ελήφθησαν μέσω e-mail -NoNewEmailToProcess=Δεν υπάρχει νέο μήνυμα ηλεκτρονικού ταχυδρομείου (φίλτρα που ταιριάζουν) για επεξεργασία -NothingProcessed=Τίποτα δεν έγινε -XEmailsDoneYActionsDone=%s τα κατάλληλα μηνύματα ηλεκτρονικού ταχυδρομείου, τα emails %s υποβλήθηκαν σε επιτυχή επεξεργασία (για %s η εγγραφή / οι ενέργειες έγιναν) -RecordEvent=Καταγραφή ενός συμβάντος στην ατζέντα (με τον τύπο Email αποστολή ή λήψη) +NoNewEmailToProcess=Δεν υπάρχει νέο email (αντίστοιχα φίλτρα) για επεξεργασία +NothingProcessed=Δεν έγινε τίποτα +XEmailsDoneYActionsDone=%s email που πληρούν τα κριτήρια, %s email επιτυχώς επεξεργασμένα (για %s εγγραφή/ενέργειες που έχουν ολοκληρωθεί) +RecordEvent=Καταγραφή ενός συμβάντος στην ατζέντα (με τον τύπο Email απεσταλμένα ή εισερχόμενα) CreateLeadAndThirdParty=Δημιουργήστε έναν υποψήφιο πελάτη (και τρίτο μέρος εάν είναι απαραίτητο) -CreateTicketAndThirdParty=Δημιουργήστε ένα εισιτήριο (συνδεδεμένο με ενα τρίτο μέρος, εάν το τρίτο μέρος φορτώθηκε από προηγούμενη λειτουργία ή μαντεύτηκε από ένα πρόγραμμα παρακολούθησης στην κεφαλίδα email, χωρίς τρίτο μέρος διαφορετικά) -CodeLastResult=Τελευταίος κωδικός αποτελέσματος -NbOfEmailsInInbox=Αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου στον κατάλογο προέλευσης +CreateTicketAndThirdParty=Δημιουργήστε ένα ticket (συνδεδεμένο με ένα τρίτο μέρος, εάν το τρίτο μέρος φορτώθηκε από προηγούμενη λειτουργία ή μαντεύτηκε από ένα πρόγραμμα παρακολούθησης στην κεφαλίδα email, διαφορετικά χωρίς τρίτο μέρος) +CodeLastResult=Κωδικός Τελευταίου αποτελέσματος +NbOfEmailsInInbox=Αριθμός email στον κατάλογο προέλευσης LoadThirdPartyFromName=Φόρτωση αναζήτησης τρίτου μέρους στο %s (μόνο φόρτωση) LoadThirdPartyFromNameOrCreate=Φόρτωση αναζήτησης τρίτου μέρους στο %s (δημιουργία αν δεν βρεθεί) AttachJoinedDocumentsToObject=Αποθηκεύστε τα συνημμένα αρχεία σε έγγραφα αντικειμένων εάν βρεθεί μια αναφορά ενός αντικειμένου στο θέμα του email. WithDolTrackingID=Μήνυμα από μια συνομιλία που ξεκίνησε από ένα πρώτο email που στάλθηκε από το Dolibarr WithoutDolTrackingID=Μήνυμα από μια συνομιλία που ξεκίνησε από ένα πρώτο email που ΔΕΝ εστάλη από το Dolibarr -WithDolTrackingIDInMsgId=Μήνυμα που στάλθηκε από το Dolibarr +WithDolTrackingIDInMsgId=Το μήνυμα στάλθηκε από το Dolibarr WithoutDolTrackingIDInMsgId=Το μήνυμα ΔΕΝ εστάλη από το Dolibarr CreateCandidature=Δημιουργία αίτησης εργασίας FormatZip=Zip MainMenuCode=Κωδικός εισόδου μενού (mainmenu) ECMAutoTree=Εμφάνιση αυτόματης δομής ECM -OperationParamDesc=Καθορίστε τους κανόνες που θα χρησιμοποιηθούν για την εξαγωγή ή τον ορισμό τιμών.
    Παράδειγμα για λειτουργίες που χρειάζονται εξαγωγή ονόματος από το θέμα του email:
    name=EXTRACT:SUBJECT:Μήνυμα από την εταιρεία ([^\n] *)
    Παράδειγμα για λειτουργίες που δημιουργούν αντικείμενα:
    objproperty1 = SET: η τιμή για σύνολο
    objproperty2 = SET: μια τιμή περιλαμβανομένης αξία των __objproperty1__
    objproperty3 = SETIFEMPTY: αξία χρησιμοποιείται αν το objproperty3 δεν έχει ήδη οριστεί
    objproperty4 = EXTRACT: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:M [^\\s]*)

    Χρησιμοποιήστε ένα ; char ως διαχωριστικό για εξαγωγή ή ρύθμιση πολλών ιδιοτήτων. -OpeningHours=Ωρες λειτουργίας -OpeningHoursDesc=Πληκτρολογήστε εδώ τις κανονικές ώρες λειτουργίας της εταιρείας σας. +OperationParamDesc=Καθορίστε τους κανόνες που θα χρησιμοποιηθούν για την εξαγωγή ορισμένων δεδομένων ή ορίστε τιμές που θα χρησιμοποιηθούν για την λειτουργία.

    Παράδειγμα εξαγωγής ονόματος εταιρείας από το θέμα του email σε μια προσωρινή μεταβλητή:
    tmp_var=EXTRACT:SUBJECT:Μήνυμα από την εταιρεία ([^\n]*)

    Παραδειγματα ρύθμισης ιδιοτήτων ενός αντικειμένου προς δημιουργία:
    objproperty1=SET:μια τιμή ενσωματωμένη στον κώδικα
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:μια τιμή (αρκεί να μην έχει ήδη οριστεί η ιδιότητα)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY: το όνομα της εταιρείας είναι\\s([^\\s]*)

    Χρησιμοποιήστε ένα ; char ως διαχωριστικό για εξαγωγή ή ρύθμιση πολλών ιδιοτήτων. +OpeningHours=Ώρες λειτουργίας +OpeningHoursDesc=Εισάγετε εδώ το κανονικό ωράριο λειτουργίας της εταιρείας σας. ResourceSetup=Διαμόρφωση της ενότητας πόρων UseSearchToSelectResource=Χρησιμοποιήστε μια φόρμα αναζήτησης για να επιλέξετε έναν πόρο (και όχι μια αναπτυσσόμενη λίστα). -DisabledResourceLinkUser=Απενεργοποιήστε τη λειτουργία για να συνδέσετε μια πηγή στους χρήστες -DisabledResourceLinkContact=Απενεργοποιήστε τη δυνατότητα σύνδεσης ενός πόρου με τις επαφές -EnableResourceUsedInEventCheck=Να απαγορεύεται η χρήση του ίδιου πόρου την ίδια στιγμή στην ατζέντα -ConfirmUnactivation=Επιβεβαιώστε την επαναφορά της μονάδας +DisabledResourceLinkUser=Απενεργοποίηση της δυνατότητας σύνδεσης ενός πόρου με χρήστες +DisabledResourceLinkContact=Απενεργοποίηση της δυνατότητας σύνδεσης ενός πόρου με τις επαφές +EnableResourceUsedInEventCheck=Απαγόρευση της χρήσης του ίδιου πόρου την ίδια στιγμή στην ατζέντα +ConfirmUnactivation=Επιβεβαιώστε την επαναφορά της ενότητας OnMobileOnly=Σε μικρή οθόνη (smartphone) μόνο DisableProspectCustomerType=Απενεργοποιήστε τον τύπο τρίτου μέρους "Προοπτική + Πελάτης" (άρα το τρίτο μέρος πρέπει να είναι "Προοπτική" ή "Πελάτης", αλλά δεν μπορεί να είναι και τα δύο) -MAIN_OPTIMIZEFORTEXTBROWSER=Απλοποιήστε τη διεπαφή για τυφλό άτομο -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Ενεργοποιήστε αυτήν την επιλογή εάν είστε τυφλός ή χρησιμοποιείτε την εφαρμογή από ένα πρόγραμμα περιήγησης κειμένου όπως Lynx ή Links. -MAIN_OPTIMIZEFORCOLORBLIND=Αλλάξτε το χρώμα της διεπαφής για τον τυφλό χρώμα -MAIN_OPTIMIZEFORCOLORBLINDDesc=Ενεργοποιήστε αυτή την επιλογή αν είστε τυφλός, σε μερικές περιπτώσεις το περιβάλλον εργασίας θα αλλάξει τη ρύθμιση χρώματος για να αυξηθεί η αντίθεση. +MAIN_OPTIMIZEFORTEXTBROWSER=Απλοποιήση της διεπαφής για άτομα με προβλήματα όρασης +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Ενεργοποιήστε αυτήν την επιλογή εάν έχετε προβλήματα όρασης ή εάν χρησιμοποιείτε την εφαρμογή από ένα πρόγραμμα περιήγησης κειμένου όπως το Lynx ή το Links. +MAIN_OPTIMIZEFORCOLORBLIND=Αλλαγή χρώματος διεπαφής για άτομα με αχρωματοψία +MAIN_OPTIMIZEFORCOLORBLINDDesc=Ενεργοποιήστε αυτήν την επιλογή εάν έχετε αχρωματοψία, σε ορισμένες περιπτώσεις η διεπαφή θα αλλάξει τη ρύθμιση χρώματος για να αυξήσει την αντίθεση. Protanopia=Πρωτανοπία -Deuteranopes=Deuteranopes -Tritanopes=Tritanopes -ThisValueCanOverwrittenOnUserLevel=Αυτή η τιμή μπορεί να αντικατασταθεί από κάθε χρήστη από τη σελίδα χρήστη - η καρτέλα '%s' -DefaultCustomerType=Προεπιλεγμένος τύπος τρίτου μέρους για τη φόρμα δημιουργίας νέου πελάτη -ABankAccountMustBeDefinedOnPaymentModeSetup=Σημείωση: Ο τραπεζικός λογαριασμός πρέπει να οριστεί στη λειτουργική μονάδα κάθε τρόπου πληρωμής (Paypal, Stripe, ...) για να λειτουργήσει αυτό το χαρακτηριστικό. -RootCategoryForProductsToSell=Κατηγορία ρίζας των προϊόντων που πωλούνται -RootCategoryForProductsToSellDesc=Εάν ορίζεται, μόνο τα προϊόντα εντός αυτής της κατηγορίας ή τα παιδιά αυτής της κατηγορίας θα είναι διαθέσιμα στο σημείο πώλησης +Deuteranopes=Δευτερανωπία +Tritanopes=Τριτανωπία +ThisValueCanOverwrittenOnUserLevel=Αυτή η τιμή μπορεί να αντικατασταθεί από κάθε χρήστη από τη σελίδα του - καρτέλα '%s' +DefaultCustomerType=Προεπιλεγμένος τύπος τρίτου μέρους για τη φόρμα δημιουργίας "Νέου πελάτη" +ABankAccountMustBeDefinedOnPaymentModeSetup=Σημείωση: Ο τραπεζικός λογαριασμός πρέπει να οριστεί στη λειτουργική ενότητα κάθε τρόπου πληρωμής (Paypal, Stripe, ...) για να λειτουργήσει αυτό το χαρακτηριστικό. +RootCategoryForProductsToSell=Κατηγορία ρίζας προϊόντων προς πώληση +RootCategoryForProductsToSellDesc=Εάν οριστεί, μόνο προϊόντα εντός αυτής της κατηγορίας ή θυγατρικά αυτής της κατηγορίας θα είναι διαθέσιμα στο Σημείο Πώλησης DebugBar=Γραμμή εντοπισμού σφαλμάτων -DebugBarDesc=Γραμμή εργαλείων που συνοδεύεται από πολλά εργαλεία για την απλούστευση του εντοπισμού σφαλμάτων -DebugBarSetup=Ρύθμιση DebugBar +DebugBarDesc=Γραμμή εργαλείων με πολλά εργαλεία για την διευκόλυνση σας στον εντοπισμό σφαλμάτων +DebugBarSetup=Ρύθμιση γραμμής εντοπισμού σφαλμάτων GeneralOptions=Γενικές επιλογές -LogsLinesNumber=Αριθμός γραμμών που θα εμφανίζονται στην καρτέλα "Αρχεία καταγραφής" +LogsLinesNumber=Αριθμός γραμμών για εμφάνιση στην καρτέλα αρχείων καταγραφής UseDebugBar=Χρησιμοποιήστε τη γραμμή εντοπισμού σφαλμάτων -DEBUGBAR_LOGS_LINES_NUMBER=Αριθμός τελευταίων γραμμών καταγραφής που διατηρούνται στην κονσόλα -WarningValueHigherSlowsDramaticalyOutput=Προειδοποίηση, οι υψηλότερες τιμές επιβραδύνουν την δραματική παραγωγή -ModuleActivated=Η ενότητα %s ενεργοποιείται και επιβραδύνει τη διεπαφή -ModuleActivatedWithTooHighLogLevel=Η μονάδα %s ενεργοποιήθηκε με πολύ υψηλό επίπεδο καταγραφής (προσπαθήστε να χρησιμοποιήσετε χαμηλότερο επίπεδο για καλύτερες επιδόσεις και ασφάλεια) +DEBUGBAR_LOGS_LINES_NUMBER=Αριθμός των τελευταίων γραμμών καταγραφής προς διατήρηση στην κονσόλα +WarningValueHigherSlowsDramaticalyOutput=Προειδοποίηση, οι υψηλότερες τιμές επιβραδύνουν δραματικά την έξοδο +ModuleActivated=Η ενότητα %s ειναι ενεργοποιημένη και επιβραδύνει τη διεπαφή +ModuleActivatedWithTooHighLogLevel=Η ενότητα %s ενεργοποιήθηκε με πολύ υψηλό επίπεδο καταγραφής (προσπαθήστε να χρησιμοποιήσετε χαμηλότερο επίπεδο για καλύτερες επιδόσεις και ασφάλεια) ModuleSyslogActivatedButLevelNotTooVerbose=Η ενότητα %s είναι ενεργοποιημένη και το επίπεδο καταγραφής (%s) είναι σωστό (όχι πολύ αναλυτικό) IfYouAreOnAProductionSetThis=Εάν βρίσκεστε σε περιβάλλον παραγωγής, θα πρέπει να ορίσετε αυτήν την ιδιότητα σε %s. AntivirusEnabledOnUpload=Ενεργοποίηση προστασίας από ιούς σε μεταφορτωμένα αρχεία SomeFilesOrDirInRootAreWritable=Ορισμένα αρχεία ή κατάλογοι δεν βρίσκονται σε λειτουργία μόνο για ανάγνωση -EXPORTS_SHARE_MODELS=Τα μοντέλα εξαγωγής είναι κοινά με όλους -ExportSetup=Ρύθμιση εξαγωγής της ενότητας -ImportSetup=Ρύθμιση εισαγωγής λειτουργικής μονάδας -InstanceUniqueID=Μοναδικό αναγνωριστικό της παρουσίας +EXPORTS_SHARE_MODELS=Τα μοντέλα εξαγωγής είναι κοινά σε όλους +ExportSetup=Ρύθμιση ενότητας Εξαγωγή +ImportSetup=Ρύθμιση ενότητας Εισαγωγή +InstanceUniqueID=Μοναδικό αναγνωριστικό της συνεδρίας SmallerThan=Μικρότερη από -LargerThan=Μεγαλύτερο από +LargerThan=Μεγαλύτερη από IfTrackingIDFoundEventWillBeLinked=Λάβετε υπόψη ότι εάν ένα αναγνωριστικό παρακολούθησης ενός αντικειμένου βρεθεί στο ηλεκτρονικό ταχυδρομείο ή εάν το μήνυμα ηλεκτρονικού ταχυδρομείου είναι απάντηση σε ένα email που έχει ήδη παραληφθεί και συνδέεται με ένα αντικείμενο, το συμβάν που δημιουργήθηκε θα συνδεθεί αυτόματα με το γνωστό σχετικό αντικείμενο. -WithGMailYouCanCreateADedicatedPassword=Με ένα λογαριασμό GMail, εάν έχετε ενεργοποιήσει την επικύρωση 2 βημάτων, σας συνιστούμε να δημιουργήσετε έναν ειδικό δευτερεύοντα κωδικό πρόσβασης για την εφαρμογή αντί να χρησιμοποιήσετε τη δική σας passsword από https://myaccount.google.com/. +WithGMailYouCanCreateADedicatedPassword=Με ένα λογαριασμό GMail, εάν έχετε ενεργοποιήσει την επικύρωση 2 βημάτων, σας συνιστούμε να δημιουργήσετε έναν ειδικό δευτερεύοντα κωδικό πρόσβασης για την εφαρμογή από https://myaccount.google.com/, αντί να χρησιμοποιήσετε τον υπάρχοντα κωδικό πρόσβασης EmailCollectorTargetDir=Μπορεί να είναι επιθυμητή συμπεριφορά να μετακινήσετε το email σε άλλη ετικέτα/κατάλογο όταν έχει επιτυχώς υποβληθεί σε επεξεργασία. Ορίστε το όνομα του καταλόγου εδώ για να χρησιμοποιήσετε αυτήν τη δυνατότητα (ΜΗΝ χρησιμοποιείτε ειδικούς χαρακτήρες στο όνομα). Σημειώστε ότι πρέπει επίσης να χρησιμοποιήσετε έναν λογαριασμό σύνδεσης με δικαιώματα ανάγνωσης/εγγραφής. EmailCollectorLoadThirdPartyHelp=Μπορείτε να χρησιμοποιήσετε αυτήν την ενέργεια για να χρησιμοποιήσετε το περιεχόμενο των email για να βρείτε και να φορτώσετε ένα υπάρχον τρίτο μέρος στη βάση δεδομένων σας. Το τρίτο μέρος που βρέθηκε (ή δημιουργήθηκε) θα χρησιμοποιηθεί για τις ακόλουθες ενέργειες που το χρειάζονται.
    Για παράδειγμα, εάν θέλετε να δημιουργήσετε ένα τρίτο μέρος με ένα όνομα που έχει εξαχθεί από μια συμβολοσειρά «Όνομα: όνομα προς εύρεση» που υπάρχει στο σώμα, χρησιμοποιήστε το email του αποστολέα ως email, μπορείτε να ορίσετε το πεδίο παραμέτρου ως εξής:
    'email= HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=Σημείο τερματισμού για %s: %s -DeleteEmailCollector=Διαγραφή συλλέκτη ηλεκτρονικού ταχυδρομείου -ConfirmDeleteEmailCollector=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το συλλέκτη email; -RecipientEmailsWillBeReplacedWithThisValue=Τα μηνύματα ηλεκτρονικού ταχυδρομείου παραλήπτη θα αντικατασταθούν πάντα με αυτήν την τιμή +DeleteEmailCollector=Διαγραφή συλλέκτη email +ConfirmDeleteEmailCollector=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον συλλέκτη email; +RecipientEmailsWillBeReplacedWithThisValue=Τα email των παραληπτών θα αντικαθίστανται πάντα με αυτήν την τιμή AtLeastOneDefaultBankAccountMandatory=Πρέπει να οριστεί τουλάχιστον ένας προεπιλεγμένος τραπεζικός λογαριασμός -RESTRICT_ON_IP=Να επιτρέπεται η πρόσβαση στο API μόνο σε συγκεκριμένες διευθύνσεις IP πελάτη (δεν επιτρέπεται η χρήση μπαλαντέρ, αφήστε κενό διάστημα μεταξύ των τιμών). Κενή τιμή σημαίνει ότι κάθε πελάτης μπορεί να έχει πρόσβαση. +RESTRICT_ON_IP=Να επιτρέπεται η πρόσβαση στην API μόνο σε συγκεκριμένες διευθύνσεις IP πελάτη (δεν επιτρέπεται η χρήση μπαλαντέρ, αφήστε κενό διάστημα μεταξύ των τιμών). Κενή τιμή σημαίνει ότι κάθε πελάτης μπορεί να έχει πρόσβαση. IPListExample=127.0.0.1 192.168.0.2 [::1] -BaseOnSabeDavVersion=Με βάση τη βιβλιοθήκη SabreDAV έκδοση +BaseOnSabeDavVersion=Βασισμένο στην έκδοση της βιβλιοθήκης SabreDAV NotAPublicIp=Δεν είναι δημόσια IP -MakeAnonymousPing=Δημιουργήστε ένα ανώνυμο Ping '+1' στο διακομιστή βάσης Dolibarr (που γίνεται 1 φορά μόνο μετά την εγκατάσταση) για να επιτρέψετε στο ίδρυμα να μετρήσει τον αριθμό της εγκατάστασης Dolibarr. -FeatureNotAvailableWithReceptionModule=Η λειτουργία δεν είναι διαθέσιμη όταν είναι ενεργοποιημένη η λειτουργία Υποδοχή +MakeAnonymousPing=Πραγματοποιήστε ένα ανώνυμο Ping '+1' στον διακομιστή του Dolibarr (εκτελείται 1 φορά μόνο μετά την εγκατάσταση) για να επιτρέψετε στον οργανισμό να μετρήσει τον αριθμό των εγκαταστάσεων Dolibarr. +FeatureNotAvailableWithReceptionModule=Η δυνατότητα δεν είναι διαθέσιμη όταν η ενότητα Παραλαβή είναι ενεργοποιημένη EmailTemplate=Πρότυπο email -EMailsWillHaveMessageID=Τα μηνύματα ηλεκτρονικού ταχυδρομείου θα έχουν μια ετικέτα "Αναφορές" που ταιριάζουν με αυτή τη σύνταξη +EMailsWillHaveMessageID=Τα μηνύματα ηλεκτρονικού ταχυδρομείου θα έχουν μια ετικέτα "References" που ταιριάζει με αυτήν τη σύνταξη PDF_SHOW_PROJECT=Εμφάνιση έργου στο έγγραφο ShowProjectLabel=Ετικέτα έργου -PDF_USE_ALSO_LANGUAGE_CODE=Εάν θέλετε να αντιγράψετε ορισμένα κείμενα στο PDF σας σε 2 διαφορετικές γλώσσες στο ίδιο δημιουργημένο PDF, πρέπει να ορίσετε εδώ αυτήν τη δεύτερη γλώσσα, ώστε το παραγόμενο PDF να περιέχει 2 διαφορετικές γλώσσες στην ίδια σελίδα, αυτή που επιλέγεται κατά τη δημιουργία PDF και αυτή ( μόνο λίγα πρότυπα PDF το υποστηρίζουν αυτό). Κρατήστε κενό για 1 γλώσσα ανά PDF. -PDF_USE_A=Δημιουργήστε έγγραφα PDF με μορφή PDF/A αντί για προεπιλεγμένη μορφή PDF +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Συμπεριλάβετε διακριτικό τίτλο στην ονομασία τρίτου μέρους +THIRDPARTY_ALIAS=Όνομα τρίτου μέρους - Διακριτικός τίτλος τρίτου μέρους +ALIAS_THIRDPARTY=Διακριτικός τίτλος τρίτου μέρους - Όνομα τρίτου μέρους +PDFIn2Languages=Εμφάνιση ετικετών σε 2 διαφορετικές γλώσσες στα PDF +PDF_USE_ALSO_LANGUAGE_CODE=Εάν θέλετε να έχετε κείμενα σε 2 διαφορετικές γλώσσες στο ίδιο PDF, πρέπει να ορίσετε εδώ αυτή τη δεύτερη γλώσσα ώστε το PDF που θα δημιουργηθεί να περιέχει 2 διαφορετικές γλώσσες στην ίδια σελίδα ( μόνο λίγα πρότυπα PDF το υποστηρίζουν). Διατηρήστε το κενό για 1 γλώσσα ανά PDF. +PDF_USE_A=Δημιουργήστε έγγραφα PDF με μορφή PDF/A αντί για την προεπιλεγμένη μορφή PDF FafaIconSocialNetworksDesc=Εισαγάγετε εδώ τον κωδικό ενός εικονιδίου FontAwesome. Εάν δεν γνωρίζετε τι είναι το FontAwesome, μπορείτε να χρησιμοποιήσετε τη γενική τιμή fa-address-book. -RssNote=Σημείωση: Κάθε ορισμός τροφοδοσίας RSS παρέχει ένα widget που πρέπει να ενεργοποιήσετε για να το έχετε διαθέσιμο στον πίνακα ελέγχου -JumpToBoxes=Μετάβαση στη ρύθμιση -> Widgets +RssNote=Σημείωση: Κάθε ορισμός ροής RSS παρέχει ένα γραφικό στοιχείο που πρέπει να ενεργοποιήσετε για να το έχετε διαθέσιμο στον πίνακα εργαλείων +JumpToBoxes=Μετάβαση σε Ρυθμίσεις -> Γραφικά στοιχεία MeasuringUnitTypeDesc=Χρησιμοποιήστε εδώ μια τιμή όπως "μέγεθος", "επιφάνεια", "όγκος", "βάρος", "χρόνος" MeasuringScaleDesc=Η κλίμακα είναι ο αριθμός των θέσεων που πρέπει να μετακινήσετε το δεκαδικό μέρος ώστε να ταιριάζει με την προεπιλεγμένη μονάδα αναφοράς. Για τον τύπο μονάδας "time", είναι ο αριθμός των δευτερολέπτων. Οι τιμές μεταξύ 80 και 99 είναι δεσμευμένες τιμές. TemplateAdded=Προστέθηκε πρότυπο @@ -2186,48 +2223,49 @@ ModuleActivatedMayExposeInformation=Αυτή η επέκταση PHP ενδέχ ModuleActivatedDoNotUseInProduction=Έχει ενεργοποιηθεί μια ενότητα σχεδιασμένη για την ανάπτυξη. Μην την ενεργοποιείτε σε περιβάλλον παραγωγής. CombinationsSeparator=Διαχωριστικός χαρακτήρας για συνδυασμούς προϊόντων SeeLinkToOnlineDocumentation=Για παραδείγματα δείτε τον σύνδεσμο προς την ηλεκτρονική τεκμηρίωση στο επάνω μενού -SHOW_SUBPRODUCT_REF_IN_PDF=Εάν χρησιμοποιείται η δυνατότητα "%s" της μονάδας %s , εμφανίστε τις λεπτομέρειες των υποπροϊόντων ενός κιτ σε PDF. +SHOW_SUBPRODUCT_REF_IN_PDF=Εάν χρησιμοποιείται η δυνατότητα "%s" της ενότητας %s , εμφανίστε τις λεπτομέρειες των υποπροϊόντων ενός κιτ σε PDF. AskThisIDToYourBank=Επικοινωνήστε με την τράπεζά σας για να λάβετε αυτό το αναγνωριστικό -AdvancedModeOnly=Η άδεια είναι διαθέσιμη μόνο στη λειτουργία σύνθετης άδειας -ConfFileIsReadableOrWritableByAnyUsers=Το αρχείο conf είναι αναγνώσιμο ή εγγράψιμο από οποιονδήποτε χρήστη. Δώστε άδεια μόνο σε χρήστη και ομάδα του διακομιστή web. +AdvancedModeOnly=Η άδεια είναι διαθέσιμη μόνο στη λειτουργία για προχωρημένους +ConfFileIsReadableOrWritableByAnyUsers=Το αρχείο conf είναι αναγνώσιμο ή εγγράψιμο από οποιονδήποτε χρήστη. Δώστε άδεια μόνο σε χρήστη και ομάδα του διακομιστή web. MailToSendEventOrganization=Οργάνωση Εκδηλώσεων -MailToPartnership=Συνεργάτης +MailToPartnership=Συνεργάτη AGENDA_EVENT_DEFAULT_STATUS=Προεπιλεγμένη κατάσταση συμβάντος κατά τη δημιουργία ενός συμβάντος από τη φόρμα YouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP -IfCLINotRequiredYouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP, εκτός εάν χρειάζεται να εκτελέσετε εντολές συστήματος σε προσαρμοσμένο κώδικα -PHPFunctionsRequiredForCLI=Για σκοπούς (όπως προγραμματισμένη δημιουργία αντιγράφων ασφαλείας εργασιών ή εκτέλεση προγράμματος antiivurs), πρέπει να διατηρήσετε τις λειτουργίες της PHP +IfCLINotRequiredYouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP, εκτός εάν χρειάζεται να εκτελέσετε εντολές συστήματος με προσαρμοσμένο κώδικα +PHPFunctionsRequiredForCLI=Για λειτουργίες shell (όπως προγραμματισμένη δημιουργία αντιγράφων ασφαλείας εργασιών ή εκτέλεση προγράμματος προστασίας από ιούς), πρέπει να διατηρήσετε τις PHP functions NoWritableFilesFoundIntoRootDir=Δεν βρέθηκαν εγγράψιμα αρχεία ή κατάλογοι των κοινών προγραμμάτων στον ριζικό σας κατάλογο (Καλό) RecommendedValueIs=Συνιστάται: %s Recommended=Προτεινόμενη NotRecommended=Δεν προτείνεται -ARestrictedPath=Κάποια περιορισμένη διαδρομή -CheckForModuleUpdate=Ελέγξτε για ενημερώσεις εξωτερικών μονάδων -CheckForModuleUpdateHelp=Αυτή η ενέργεια θα συνδεθεί με τους επεξεργαστές εξωτερικών λειτουργικών μονάδων για να ελέγξει εάν είναι διαθέσιμη μια νέα έκδοση. +ARestrictedPath=Κάποια περιορισμένη διαδρομή για αρχεία δεδομένων +CheckForModuleUpdate=Ελέγξτε για ενημερώσεις εξωτερικών ενοτήτων +CheckForModuleUpdateHelp=Αυτή η ενέργεια θα συνδεθεί με τους επεξεργαστές εξωτερικών ενοτήτων για να ελέγξει εάν είναι διαθέσιμη μια νέα έκδοση. ModuleUpdateAvailable=Υπάρχει διαθέσιμη ενημέρωση -NoExternalModuleWithUpdate=Δεν βρέθηκαν ενημερώσεις για εξωτερικές μονάδες +NoExternalModuleWithUpdate=Δεν βρέθηκαν ενημερώσεις για εξωτερικές ενότητες SwaggerDescriptionFile=Αρχείο περιγραφής Swagger API (για χρήση με redoc για παράδειγμα) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Ενεργοποιήσατε το ξεπερασμένο πλέον WS API. Αντ' αυτού πρέπει να χρησιμοποιήσετε το REST API -RandomlySelectedIfSeveral=Τυχαία επιλεγμένη αν είναι διαθέσιμες αρκετές φωτογραφίες -DatabasePasswordObfuscated=Ο κωδικός πρόσβασης βάσης δεδομένων είναι ασαφής στο αρχείο conf -DatabasePasswordNotObfuscated=Ο κωδικός πρόσβασης της βάσης δεδομένων ΔΕΝ είναι ασαφής στο αρχείο conf -APIsAreNotEnabled=Οι λειτουργικές μονάδες API δεν είναι ενεργοποιημένες +RandomlySelectedIfSeveral=Τυχαία επιλεγμένη αν είναι διαθέσιμες αρκετές εικόνες +SalesRepresentativeInfo=Για Προσφορές, Παραγγελίες, Τιμολόγια. +DatabasePasswordObfuscated=Ο κωδικός πρόσβασης βάσης δεδομένων είναι μη αναγνωρίσιμος(obfuscated) στο αρχείο conf +DatabasePasswordNotObfuscated=Ο κωδικός πρόσβασης της βάσης δεδομένων ΔΕΝ είναι μη αναγνωρίσιμος(obfuscated) στο αρχείο conf +APIsAreNotEnabled=Οι ενότητες API δεν είναι ενεργοποιημένες YouShouldSetThisToOff=Θα πρέπει να το ρυθμίσετε στο 0 ή off InstallAndUpgradeLockedBy=Η εγκατάσταση και οι αναβαθμίσεις είναι κλειδωμένες από το αρχείο %s OldImplementation=Παλαιότερη υλοποίηση PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Εάν είναι ενεργοποιημένες ορισμένες ενότητες ηλεκτρονικής πληρωμής (Paypal, Stripe, ...), προσθέστε έναν σύνδεσμο στο PDF για να πραγματοποιηθεί η ηλεκτρονική πληρωμή -DashboardDisableGlobal=Απενεργοποιήστε καθολικά όλα τα εικονίδια των ανοιχτών αντικειμένων -BoxstatsDisableGlobal=Απενεργοποιήστε πλήρως τα στατιστικά στοιχεία πλαισίου +DashboardDisableGlobal=Καθολική απενεργοποίηση όλων των εικονιδίων των ανοιχτών αντικειμένων +BoxstatsDisableGlobal=Πλήρης απενεργοποίηση των στατιστικών στοιχείων πλαισίου DashboardDisableBlocks=Εικονίδια ανοιχτών αντικειμένων (για επεξεργασία ή καθυστερημένα) στον κύριο πίνακα εργαλείων -DashboardDisableBlockAgenda=Απενεργοποιήστε το εικονίδιο για την ατζέντα -DashboardDisableBlockProject=Απενεργοποιήστε το εικονίδιο για έργα -DashboardDisableBlockCustomer=Απενεργοποιήστε το εικονίδιο για πελάτες -DashboardDisableBlockSupplier=Απενεργοποιήστε το εικονίδιο για προμηθευτές -DashboardDisableBlockContract=Απενεργοποιήστε το εικονίδιο για συμβόλαια -DashboardDisableBlockTicket=Απενεργοποιήστε το εικονίδιο για εισιτήρια -DashboardDisableBlockBank=Απενεργοποιήστε το εικονίδιο για τράπεζες -DashboardDisableBlockAdherent=Απενεργοποιήστε το εικονίδιο για συνδρομές -DashboardDisableBlockExpenseReport=Απενεργοποιήστε το εικονίδιο για αναφορές εξόδων -DashboardDisableBlockHoliday=Απενεργοποιήστε το εικονίδιο για άδειες +DashboardDisableBlockAgenda=Απενεργοποίηση του εικονιδίου ατζέντας +DashboardDisableBlockProject=Απενεργοποίηση του εικονίδιου για έργα +DashboardDisableBlockCustomer=Απενεργοποίηση του εικονιδίου για πελάτες +DashboardDisableBlockSupplier=Απενεργοποίηση του εικονιδίου για προμηθευτές +DashboardDisableBlockContract=Απενεργοποίηση του εικονιδίου για συμβόλαια +DashboardDisableBlockTicket=Απενεργοποίηση του εικονιδίου για tickets +DashboardDisableBlockBank=Απενεργοποίηση του εικονιδίου για τράπεζες +DashboardDisableBlockAdherent=Απενεργοποίηση του εικονιδίου για συνδρομές +DashboardDisableBlockExpenseReport=Απενεργοποίηση του εικονιδίου για αναφορές εξόδων +DashboardDisableBlockHoliday=Απενεργοποίηση του εικονιδίου για άδειες EnabledCondition=Προϋπόθεση να είναι ενεργοποιημένο το πεδίο (αν δεν είναι ενεργοποιημένο, η ορατότητα θα είναι πάντα απενεργοποιημένη) IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Εάν θέλετε να χρησιμοποιήσετε δεύτερο φόρο, πρέπει να ενεργοποιήσετε και τον πρώτο φόρο επί των πωλήσεων IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Εάν θέλετε να χρησιμοποιήσετε τρίτο φόρο, πρέπει να ενεργοποιήσετε και τον πρώτο φόρο επί των πωλήσεων @@ -2247,14 +2285,22 @@ LateWarningAfter=Προειδοποίηση μετά την "καθυστέρη TemplateforBusinessCards=Πρότυπο για μια επαγγελματική κάρτα σε διαφορετικό μέγεθος InventorySetup= Ρύθμιση αποθέματος ExportUseLowMemoryMode=Χρησιμοποιήστε low memory mode -ExportUseLowMemoryModeHelp=Χρησιμοποιήστε low memory mode για να εκτελέσετε το exec του dump (η συμπίεση γίνεται μέσω ενός pipe αντί στη μνήμη PHP). Αυτή η μέθοδος δεν επιτρέπει τον έλεγχο ολοκλήρωσης του αρχείου και δεν θα αναφερθεί μήνυμα σφάλματος εάν αποτύχει. +ExportUseLowMemoryModeHelp=Χρησιμοποιήστε τη λειτουργία χαμηλής μνήμης για να δημιουργήσετε το αρχείου αντιγράφου ασφαλείας (η συμπίεση γίνεται μέσω pipe αντί της μνήμης PHP). Αυτή η μέθοδος δεν επιτρέπει τον έλεγχο ακεραιότητας του αρχείου και δεν μπορεί να αναφερθεί μήνυμα σφάλματος εάν αποτύχει. Χρησιμοποιήστε το εάν αντιμετωπίζετε αρκετά σφάλματα μνήμης. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Διεπαφή για αποστολή σε μια διεύθυνση URL ενεργειών του Dolibarr +WebhookSetup = Ρύθμιση webhook +Settings = Ρυθμίσεις +WebhookSetupPage = Σελίδα ρύθμισης Webhook ShowQuickAddLink=Εμφάνιση ενός κουμπιού για γρήγορη προσθήκη ενός στοιχείου στο επάνω δεξιά μενού + HashForPing=Hash που χρησιμοποιείται για ping ReadOnlyMode=Σε λειτουργία "Μόνο για ανάγνωση". DEBUGBAR_USE_LOG_FILE=Χρησιμοποιήστε το αρχείο dolibarr.log για να παγιδεύσετε αρχεία καταγραφής UsingLogFileShowAllRecordOfSubrequestButIsSlower=Χρησιμοποιήστε το αρχείο dolibarr.log για να παγιδεύσετε τα αρχεία καταγραφής αντί για τη σύλληψη ζωντανής μνήμης. Επιτρέπει τη σύλληψη όλων των αρχείων καταγραφής αντί μόνο του αρχείου καταγραφής της τρέχουσας διαδικασίας (συμπεριλαμβανομένου αυτού των σελίδων υποαιτημάτων ajax), αλλά θα κάνει την παρουσία σας πολύ πολύ αργή. Δεν προτείνεται. FixedOrPercent=Σταθερό (χρησιμοποιήστε λέξη-κλειδί "σταθερό") ή ποσοστό (χρησιμοποιήστε λέξη-κλειδί "ποσοστό") -DefaultOpportunityStatus=Προεπιλεγμένη κατάσταση ευκαιρίας (πρώτη κατάσταση όταν δημιουργείται υποψήφιος πελάτης) +DefaultOpportunityStatus=Προεπιλεγμένη κατάσταση ευκαιρίας (πρώτη κατάσταση όταν δημιουργείται μια προοπτική) + IconAndText=Εικονίδιο και κείμενο TextOnly=Μόνο Κείμενο IconOnlyAllTextsOnHover=Μόνο εικονίδιο - Όλα τα κείμενα εμφανίζονται κάτω από το εικονίδιο όταν μετακινείτε το ποντίκι πάνω από το μενού. @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Μόνο εικονίδιο - Το κείμενο του ε IconOnly=Μόνο εικονίδιο - Κείμενο μόνο στο αναδυόμενο πλαίσιο επεξήγησης INVOICE_ADD_ZATCA_QR_CODE=Εμφάνιση του κωδικού QR ZATCA στα τιμολόγια INVOICE_ADD_ZATCA_QR_CODEMore=Ορισμένες αραβικές χώρες χρειάζονται αυτόν τον κωδικό QR στα τιμολόγιά τους +INVOICE_ADD_SWISS_QR_CODE=Εμφάνιση του ελβετικού κωδικού QR-Bill στα τιμολόγια +INVOICE_SHOW_SHIPPING_ADDRESS=Εμφάνιση διεύθυνσης αποστολής +INVOICE_SHOW_SHIPPING_ADDRESSMore=Υποχρεωτική αναφορά για τη Γαλλία UrlSocialNetworksDesc=Σύνδεσμος URL του κοινωνικού δικτύου. Χρησιμοποιήστε το {socialid} για το τμήμα της μεταβλητής που περιέχει το αναγνωριστικό του κοινωνικού δικτύου. +IfThisCategoryIsChildOfAnother=Αν αυτή η κατηγορία είναι θυγατρική μιας άλλης +DarkThemeMode=Λειτουργία σκούρου θέματος(Dark theme) +AlwaysDisabled=Πάντα απενεργοποιημένο +AccordingToBrowser=Ανάλογα με το πρόγραμμα περιήγησης +AlwaysEnabled=Πάντα ενεργοποιημένο +DoesNotWorkWithAllThemes=Δεν ειναι συμβατό με όλα τα θέματα +NoName=Χωρίς Όνομα +ShowAdvancedOptions= Εμφάνιση σύνθετων επιλογών +HideAdvancedoptions= Απόκρυψη σύνθετων επιλογών +CIDLookupURL=Η ενότητα φέρνει μια διεύθυνση URL που μπορεί να χρησιμοποιηθεί από ένα εξωτερικό εργαλείο για τη λήψη του ονόματος ενός τρίτου μέρους ή μιας επαφής από τον αριθμό τηλεφώνου του. Η διεύθυνση URL προς χρήση είναι: +OauthNotAvailableForAllAndHadToBeCreatedBefore=Ο έλεγχος ταυτότητας OAUTH2 δεν είναι διαθέσιμος για όλους τους κεντρικούς υπολογιστές και ένα token με τα σωστά δικαιώματα έπρεπε να έχει δημιουργηθεί με τη ενότητα OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Υπηρεσία ελέγχου ταυτότητας OAUTH2 +DontForgetCreateTokenOauthMod=Ένα token με τα σωστά δικαιώματα έπρεπε να έχει δημιουργηθεί με τη ενότητα OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Μέθοδος πιστοποίησης +UsePassword=Χρησιμοποιήστε έναν κωδικό πρόσβασης +UseOauth=Χρησιμοποιήστε ένα token OAUTH +Images=Eικόνες +MaxNumberOfImagesInGetPost=Μέγιστος επιτρεπόμενος αριθμός εικόνων προς υποβολή σε ένα πεδίο HTML μιας φόρμας +MaxNumberOfPostOnPublicPagesByIP=Μέγιστος αριθμός αναρτήσεων σε δημόσιες σελίδες με την ίδια διεύθυνση IP σε ένα μήνα +CIDLookupURL=Η ενότητα φέρνει μια διεύθυνση URL που μπορεί να χρησιμοποιηθεί από ένα εξωτερικό εργαλείο για τη λήψη του ονόματος ενός τρίτου μέρους ή μιας επαφής από τον αριθμό τηλεφώνου του. Η διεύθυνση URL προς χρήση είναι: +ScriptIsEmpty=Το script είναι κενό +ShowHideTheNRequests=Εμφάνιση/απόκρυψη των %s αιτημάτων SQL +DefinedAPathForAntivirusCommandIntoSetup=Ορίστε μια διαδρομή για ένα πρόγραμμα προστασίας από ιούς στο %s +TriggerCodes=Συμβάντα που ξεκινούν άλλες ενέργειες +TriggerCodeInfo=Εισάγετε εδώ τον κώδικα των trigger που θα δημιουργήσει μια ανάρτηση ενός αιτήματος ιστού (επιτρέπονται μόνο εξωτερικές διευθύνσεις URL). Μπορείτε να εισάγετε πολλούς κώδικες trigger διαχωρισμένους από κόμμα. +EditableWhenDraftOnly=Εάν δεν είναι επιλεγμένο, η τιμή μπορεί να τροποποιηθεί μόνο όταν το αντικείμενο ειναι σε κατάσταση προσχεδίου +CssOnEdit=Css σε σελίδες επεξεργασίας +CssOnView=Css σε σελίδες προβολής +CssOnList=Css σε σελίδες λίστας +HelpCssOnEditDesc=Css που χρησιμοποιείται κατά την επεξεργασία του πεδίου.
    Παράδειγμα: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Css που χρησιμοποιείται κατά την προβολή του πεδίου. +HelpCssOnListDesc=Css που χρησιμοποιείται όταν βρίσκεται μέσα σε έναν πίνακα λίστας.
    Παράδειγμα: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Απόκρυψη της ποσότητας που παραγγέλθηκε στα παραγόμενα έγγραφα για παραλαβές +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Εμφάνιση της τιμής στα παραγόμενα έγγραφα για παραλαβές +WarningDisabled=Η προειδοποίηση είναι απενεργοποιημένη +LimitsAndMitigation=Όρια πρόσβασης και περιορισμός +DesktopsOnly=Μόνο Desktops +DesktopsAndSmartphones=Desktops και smartphones +AllowOnlineSign=Να επιτρέπεται η online υπογραφή +AllowExternalDownload=Να επιτρέπεται εξωτερική λήψη (χωρίς σύνδεση, χρησιμοποιώντας κοινόχρηστο σύνδεσμο) +DeadlineDayVATSubmission=Προθεσμία υποβολής ΦΠΑ για τον επόμενο μήνα +MaxNumberOfAttachementOnForms=Μέγιστος αριθμός επισυναπτόμενων αρχείων σε μια φόρμα +IfDefinedUseAValueBeetween=Εάν ορίζεται, χρησιμοποιήστε μια τιμή μεταξύ %s και %s diff --git a/htdocs/langs/el_GR/agenda.lang b/htdocs/langs/el_GR/agenda.lang index f24b7153050..09dd46c4ea3 100644 --- a/htdocs/langs/el_GR/agenda.lang +++ b/htdocs/langs/el_GR/agenda.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=Αναγνωριστικό συμβάντος Actions=Ενέργειες -Agenda=Ημερολόγιο -TMenuAgenda=Ημερολόγιο -Agendas=Ημερολόγια +Agenda=Ατζέντα +TMenuAgenda=Ατζέντα +Agendas=Ατζέντες LocalAgenda=Προεπιλεγμένο ημερολόγιο -ActionsOwnedBy=Το γεγονός ανήκει -ActionsOwnedByShort=Ιδιοκτήτης -AffectedTo=Ανάθεση σε -Event=Εκδήλωση -Events=Ενέργειες -EventsNb=Αριθμός γεγονότων -ListOfActions=Λίστα γεγονότων +ActionsOwnedBy=Ενέργεια χρήστη +ActionsOwnedByShort=Χρήστης +AffectedTo=Ανατεθειμένο σε +Event=Συμβάν +Events=Συμβάντα +EventsNb=Αριθμός ενεργειών +ListOfActions=Λίστα ενεργειών EventReports=Αναφορές συμβάντων Location=Τοποθεσία -ToUserOfGroup=Αντιστοιχισμένο συμβάν σε οποιονδήποτε χρήστη στην ομάδα -EventOnFullDay=Ολοήμερο Γεγονός +ToUserOfGroup=Συμβάν που ανατέθηκε σε χρήστη της ομάδας +EventOnFullDay=Ολοήμερο συμβάν MenuToDoActions=Όλες οι ημιτελής ενέργειες -MenuDoneActions=Όλες οι ολοκληρ. ενέργειες -MenuToDoMyActions=Ημιτελής ενέργειες +MenuDoneActions=Όλες οι ολοκληρωμένες ενέργειες +MenuToDoMyActions=Ημιτελείς ενέργειες MenuDoneMyActions=Ολοκληρωμένες ενέργειες ListOfEvents=Λίστα συμβάντων (προεπιλεγμένο ημερολόγιο) -ActionsAskedBy=Ενέργειες που καταχωρήθηκαν από +ActionsAskedBy=Ενέργειες που ανατέθηκαν από ActionsToDoBy=Ενέργειες που ανατέθηκαν σε ActionsDoneBy=Ενέργειες που ολοκληρώθηκαν από ActionAssignedTo=Ενέργεια ανατεθειμένη σε @@ -31,11 +31,11 @@ ViewWeek=Προβολή εβδομάδας ViewPerUser=Προβολή ανά χρήστη ViewPerType=Προβολή ανά τύπο AutoActions= Αυτόματη συμπλήρωση ημερολογίου -AgendaAutoActionDesc= Εδώ μπορείτε να ορίσετε τα γεγονότα που θέλετε να δημιουργήσει αυτόματα το Dolibarr στην Ατζέντα. Αν δεν υπάρχει τίποτα, θα συμπεριληφθούν μόνο οι μη αυτόματες ενέργειες στα αρχεία καταγραφής και θα εμφανίζονται στην Ατζέντα. Η αυτόματη παρακολούθηση επιχειρηματικών ενεργειών που πραγματοποιούνται σε αντικείμενα (επικύρωση, αλλαγή κατάστασης) δεν θα αποθηκευτεί. -AgendaSetupOtherDesc= Αυτή η σελίδα παρέχει επιλογές που επιτρέπουν την εξαγωγή των συμβάντων Dolibarr σε ένα εξωτερικό ημερολόγιο (Thunderbird, Google Calendar κ.λπ.) -AgendaExtSitesDesc=Αυτή η σελίδα σας επιτρέπει να ρυθμίσετε εξωτερικά ημερολόγια. -ActionsEvents=Γεγονότα για τα οποία θα δημιουργήσουν εγγραφή στο ημερολόγιο, αυτόματα -EventRemindersByEmailNotEnabled=Οι υπενθυμίσεις συμβάντων μέσω email δεν ενεργοποιήθηκαν στη ρύθμιση της μονάδας %s. +AgendaAutoActionDesc= Εδώ μπορείτε να ορίσετε συμβάντα που θέλετε να δημιουργεί αυτόματα το Dolibarr στην Ατζέντα. Εάν δεν έχει επιλεγεί τίποτα, μόνο οι μη αυτόματες ενέργειες θα περιλαμβάνονται στα αρχεία καταγραφής και θα εμφανίζονται στην Ατζέντα. Η αυτόματη παρακολούθηση των επιχειρηματικών ενεργειών που γίνονται σε αντικείμενα (επικύρωση, αλλαγή κατάστασης) δεν θα αποθηκευτεί. +AgendaSetupOtherDesc= Αυτή η σελίδα παρέχει επιλογές που επιτρέπουν την εξαγωγή των συμβάντων σας στο Dolibarr σε ένα εξωτερικό ημερολόγιο (Thunderbird, Google Calendar κ.λπ.) +AgendaExtSitesDesc=Αυτή η σελίδα σας επιτρέπει να ρυθμίσετε τον συγχρονισμό και την εμφάνιση εξωτερικών ημερολόγιων στην ατζέντα του Dolibarr. +ActionsEvents=Συμβάντα που θα καταγράφουν αυτόματα στην Ατζέντα +EventRemindersByEmailNotEnabled=Οι υπενθυμίσεις συμβάντων μέσω email δεν ενεργοποιήθηκαν στη ρύθμιση της ενότητας %s. ##### Agenda event labels ##### NewCompanyToDolibarr=Το τρίτο μέρος %s δημιουργήθηκε COMPANY_MODIFYInDolibarr=Το τρίτο μέρος %s τροποποιήθηκε @@ -44,48 +44,51 @@ ContractValidatedInDolibarr=Η σύμβαση %s επικυρώθηκε CONTRACT_DELETEInDolibarr=Η σύμβαση %s διαγράφηκε PropalClosedSignedInDolibarr=Η προσφορά %s υπεγράφη PropalClosedRefusedInDolibarr=Η πρόσφορα %s απορρίφθηκε -PropalValidatedInDolibarr=Η πρόταση %s επικυρώθηκε +PropalValidatedInDolibarr=Η προσφορά %s επικυρώθηκε PropalBackToDraftInDolibarr=Επιστροφή της προσφοράς %s σε κατάσταση προσχεδίου PropalClassifiedBilledInDolibarr=Η προσφορά %s ταξινομήθηκε ως τιμολογημένη InvoiceValidatedInDolibarr=Το τιμολόγιο %s επικυρώθηκε -InvoiceValidatedInDolibarrFromPos=Το τιμολόγιο επικυρώθηκε από το POS -InvoiceBackToDraftInDolibarr=Τιμολόγιο %s θα επιστρέψει στην κατάσταση του σχεδίου -InvoiceDeleteDolibarr=Τιμολόγιο %s διαγράφεται +InvoiceValidatedInDolibarrFromPos=Το τιμολόγιο %s επικυρώθηκε από το POS +InvoiceBackToDraftInDolibarr=Επιστροφή του τιμολογίου %s σε κατάσταση προσχεδίου +InvoiceDeleteDolibarr=Το τιμολόγιο %s διαγράφηκε InvoicePaidInDolibarr=Το τιμολόγιο %s άλλαξε σε πληρωμένο InvoiceCanceledInDolibarr=Το τιμολόγιο %s ακυρώθηκε MemberValidatedInDolibarr=Το μέλος %s επικυρώθηκε MemberModifiedInDolibarr=Το μέλος %s τροποποιήθηκε -MemberResiliatedInDolibarr=Το μέλος %s τερματίστηκε +MemberResiliatedInDolibarr=Το μέλος %s διαγράφηκε MemberDeletedInDolibarr=Το μέλος %s διαγράφηκε +MemberExcludedInDolibarr=Το μέλος %sεξαιρέθηκε MemberSubscriptionAddedInDolibarr=Προστέθηκε συνδρομή %s για το μέλος %s MemberSubscriptionModifiedInDolibarr=Η συνδρομή %s για το μέλος %s τροποποιήθηκε MemberSubscriptionDeletedInDolibarr=Η συνδρομή %s για το μέλος %s διαγράφηκε ShipmentValidatedInDolibarr=Η αποστολή %s επικυρώθηκε ShipmentClassifyClosedInDolibarr=Η αποστολή %s ταξινομήθηκε ως τιμολογημένη -ShipmentUnClassifyCloseddInDolibarr=Η αποστολή %s ταξινομήθηκε εκ νέου -ShipmentBackToDraftInDolibarr=Η αποστολή %s επιστρέφει στην κατάσταση του σχεδίου +ShipmentUnClassifyCloseddInDolibarr=Η αποστολή %s ταξινομήθηκε ως ανοικτή ξανά +ShipmentBackToDraftInDolibarr=Επιστροφή της αποστολης %s σε κατάσταση προσχεδίου ShipmentDeletedInDolibarr=Η αποστολή %s διαγράφηκε ShipmentCanceledInDolibarr=Η αποστολή %s ακυρώθηκε -ReceptionValidatedInDolibarr=Η λήψη %s επικυρώθηκε +ReceptionValidatedInDolibarr=Η παραλαβή %s επικυρώθηκε +ReceptionDeletedInDolibarr=Η παραλαβή %s διαγράφηκε ReceptionClassifyClosedInDolibarr=Η παραλαβή %s ταξινομήθηκε ως κλειστή -OrderCreatedInDolibarr=Παραγγελία %s +OrderCreatedInDolibarr=Η Παραγγελία %s δημιουργήθηκε OrderValidatedInDolibarr=Η παραγγελία %s επικυρώθηκε -OrderDeliveredInDolibarr=Παραγγελία %s κατατάσσεται παραδοτέα -OrderCanceledInDolibarr=Παραγγελία %s ακυρώθηκε -OrderBilledInDolibarr=Παραγγελία %s κατατάσσεται χρεωμένη -OrderApprovedInDolibarr=Παραγγελία %s εγκρίθηκε -OrderRefusedInDolibarr=Παραγγελία %s απορριφθεί -OrderBackToDraftInDolibarr=Παραγγελία %s θα επιστρέψει στην κατάσταση σχέδιο -ProposalSentByEMail=Η εμπορική πρόταση %s στάλθηκε μέσω email +OrderDeliveredInDolibarr=Η παραγγελία %s ταξινομήθηκε ως παραδομένη +OrderCanceledInDolibarr=Η παραγγελία %s ακυρώθηκε +OrderBilledInDolibarr=Η παραγγελία %s ταξινομήθηκε ως τιμολογημένη +OrderApprovedInDolibarr=Η παραγγελία %s εγκρίθηκε +OrderRefusedInDolibarr=Η παραγγελία %s απορρίφθηκε +OrderBackToDraftInDolibarr=Επιστροφή της παραγγελίας %s σε κατάσταση προσχεδίου +ProposalSentByEMail=Η προσφορά %s στάλθηκε μέσω email ContractSentByEMail=Η σύμβαση %s στάλθηκε μέσω email -OrderSentByEMail=Η παραγγελία πωλήσεων %s στάλθηκε με email +OrderSentByEMail=Η παραγγελία πωλήσεων %s στάλθηκε μέσω email InvoiceSentByEMail=Το τιμολόγιο πελάτη %s στάλθηκε μέσω email -SupplierOrderSentByEMail=Παραγγελία αγοράς %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου +SupplierOrderSentByEMail=Η εντολή αγοράς %s στάλθηκε μέσω email ORDER_SUPPLIER_DELETEInDolibarr=Η εντολή αγοράς %s διαγράφηκε -SupplierInvoiceSentByEMail=Τιμολόγιο πωλητή %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου -ShippingSentByEMail=Η αποστολή %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου +SupplierInvoiceSentByEMail=Το τιμολόγιο προμηθευτή %s στάλθηκε μέσω email +ShippingSentByEMail=Η αποστολή %s στάλθηκε μέσω email ShippingValidated= Η αποστολή %s επικυρώθηκε -InterventionSentByEMail=Η παρέμβαση %s στάλθηκε με ηλεκτρονικό ταχυδρομείο +InterventionSentByEMail=Η παρέμβαση %s στάλθηκε μέσω email +ProjectSentByEMail=Το έργο %s στάλθηκε μέσω email ProposalDeleted=Η προσφορά διαγράφηκε OrderDeleted=Η παραγγελία διαγράφηκε InvoiceDeleted=Το τιμολόγιο διαγράφηκε @@ -96,81 +99,83 @@ CONTACT_DELETEInDolibarr=Η επαφή %s διαγράφηκε PRODUCT_CREATEInDolibarr=Το προϊόν %s δημιουργήθηκε PRODUCT_MODIFYInDolibarr=Το προϊόν %s τροποποιήθηκε PRODUCT_DELETEInDolibarr=Το προϊόν %s διαγράφηκε -HOLIDAY_CREATEInDolibarr=Αίτηση για άδεια %s δημιουργήθηκε -HOLIDAY_MODIFYInDolibarr=Αίτηση για άδεια %s τροποποιήθηκε -HOLIDAY_APPROVEInDolibarr=Η αίτηση για άδεια %s εγκρίθηκε +HOLIDAY_CREATEInDolibarr=Το αίτημα άδειας %s δημιουργήθηκε +HOLIDAY_MODIFYInDolibarr=Το αίτημα άδειας %s τροποποιήθηκε +HOLIDAY_APPROVEInDolibarr=Το αίτημα άδειας %s εγκρίθηκε HOLIDAY_VALIDATEInDolibarr=Το αίτημα άδειας %s επικυρώθηκε -HOLIDAY_DELETEInDolibarr=Αίτηση άδειας %s διαγράφηκε -EXPENSE_REPORT_CREATEInDolibarr=Αναφορά εξόδων %s δημιουργήθηκε -EXPENSE_REPORT_VALIDATEInDolibarr=Έκθεση δαπανών %s επικυρωθεί -EXPENSE_REPORT_APPROVEInDolibarr=Έκθεση δαπανών %s εγκριθεί -EXPENSE_REPORT_DELETEInDolibarr=Αναφορά εξόδων %s διαγράφηκε -EXPENSE_REPORT_REFUSEDInDolibarr=Η έκθεση δαπανών %s απορρίφθηκε -PROJECT_CREATEInDolibarr=Έργο %s δημιουργήθηκε +HOLIDAY_DELETEInDolibarr=Το αίτημα άδειας %s διαγράφηκε +EXPENSE_REPORT_CREATEInDolibarr=Η αναφορά εξόδων %s δημιουργήθηκε +EXPENSE_REPORT_VALIDATEInDolibarr=Η αναφορά εξόδων %s επικυρώθηκε +EXPENSE_REPORT_APPROVEInDolibarr=Η αναφορά εξόδων %s εγκρίθηκε +EXPENSE_REPORT_DELETEInDolibarr=Η αναφορά εξόδων %s διαγράφηκε +EXPENSE_REPORT_REFUSEDInDolibarr=Η αναφορά εξόδων %s απορρίφθηκε +PROJECT_CREATEInDolibarr=Το έργο %s δημιουργήθηκε PROJECT_MODIFYInDolibarr=Το έργο %s τροποποιήθηκε PROJECT_DELETEInDolibarr=Το έργο %s διαγράφηκε -TICKET_CREATEInDolibarr=Το εισιτήριο %s δημιουργήθηκε -TICKET_MODIFYInDolibarr=Το εισιτήριο %s τροποποιήθηκε -TICKET_ASSIGNEDInDolibarr=Το εισιτήριο %s εκχωρήθηκε -TICKET_CLOSEInDolibarr=Το εισιτήριο %s έκλεισε -TICKET_DELETEInDolibarr=Το εισιτήριο %s διαγράφηκε +TICKET_CREATEInDolibarr=Το ticket %s δημιουργήθηκε +TICKET_MODIFYInDolibarr=Το ticket %s τροποποιήθηκε +TICKET_ASSIGNEDInDolibarr=Το ticket %s ανατέθηκε +TICKET_CLOSEInDolibarr=Το ticket %s έκλεισε +TICKET_DELETEInDolibarr=Το ticket %s διαγράφηκε BOM_VALIDATEInDolibarr=Το BOM επικυρώθηκε -BOM_UNVALIDATEInDolibarr=Το BOM δεν έχει εγκριθεί -BOM_CLOSEInDolibarr=Το BOM είναι απενεργοποιημένο -BOM_REOPENInDolibarr=Ανοίξτε ξανά το BOM +BOM_UNVALIDATEInDolibarr=Το BOM δεν είναι επικυρωμένο +BOM_CLOSEInDolibarr=Το BOM απενεργοποιήθηκε +BOM_REOPENInDolibarr=Το BOM άνοιξε ξανά BOM_DELETEInDolibarr=Το BOM διαγράφηκε MRP_MO_VALIDATEInDolibarr=Το ΜΟ επικυρώθηκε -MRP_MO_UNVALIDATEInDolibarr=Το MO ορίστηκε σε πρόχειρη κατάσταση +MRP_MO_UNVALIDATEInDolibarr=Επιστροφή του MO σε κατάσταση προσχεδίου MRP_MO_PRODUCEDInDolibarr=Το ΜΟ παράχθηκε MRP_MO_DELETEInDolibarr=Το MO διαγράφηκε -MRP_MO_CANCELInDolibarr=MO ακυρώθηκε +MRP_MO_CANCELInDolibarr=Το MO ακυρώθηκε PAIDInDolibarr=%s πληρώθηκε ##### End agenda events ##### AgendaModelModule=Πρότυπα εγγράφων για συμβάν DateActionStart=Ημερομηνία έναρξης DateActionEnd=Ημερομηνία λήξης AgendaUrlOptions1=Μπορείτε ακόμη να προσθέσετε τις ακόλουθες παραμέτρους για να φιλτράρετε τα αποτέλεσμα: -AgendaUrlOptions3=logina=%s να περιορίσει την παραγωγή ενεργειών που ανήκουν στον χρήστη %s. -AgendaUrlOptionsNotAdmin=logina =! %s για να περιορίσετε την έξοδο σε ενέργειες που δεν ανήκουν στον χρήστη %s . -AgendaUrlOptions4=logint = %s για να περιορίσετε την έξοδο σε ενέργειες που έχουν εκχωρηθεί στο χρήστη %s (ιδιοκτήτης και άλλοι). -AgendaUrlOptionsProject=project = __ PROJECT_ID__ για να περιορίσετε την έξοδο σε ενέργειες που σχετίζονται με το έργο __PROJECT_ID__ . +AgendaUrlOptions3= logina= για περιορισμό της εξόδου σε ενέργειες που ανήκουν σε έναν χρήστη %s. +AgendaUrlOptionsNotAdmin= logina=! για περιορισμό της εξόδου σε ενέργειες που δεν ανήκουν στον χρήστη %s. +AgendaUrlOptions4= logint= για περιορισμό της εξόδου σε ενέργειες που έχουν ανατεθεί στον χρήστη %s(ιδιοκτήτης και άλλοι) +AgendaUrlOptionsProject= έργο=__PROJECT_ID__ για περιορισμό της εξόδου σε ενέργειες που συνδέονται με το έργο __PROJECT_ID__ . AgendaUrlOptionsNotAutoEvent=notactiontype = systemauto για την εξαίρεση αυτόματων συμβάντων. -AgendaUrlOptionsIncludeHolidays= includeholidays=1 για να συμπεριλάβει εκδηλώσεις εορτών. +AgendaUrlOptionsIncludeHolidays= includeholidays=1 για να συμπεριληφθούν εκδηλώσεις εορτών. AgendaShowBirthdayEvents=Γενέθλια επαφών AgendaHideBirthdayEvents=Απόκρυψη γενεθλίων των επαφών -Busy=Απασχολ. -ExportDataset_event1=Κατάλογος των εκδηλώσεων -DefaultWorkingDays=Προεπιλογή εργάσιμες ημέρες που κυμαίνονται την εβδομάδα (παράδειγμα: 1-5, 1-6) -DefaultWorkingHours=Προεπιλογή ώρες εργασίας ανά ημέρα (Παράδειγμα: 9-18) +Busy=Απασχολημένος +ExportDataset_event1=Λίστα συμβάντων ατζέντας +DefaultWorkingDays=Εύρος προεπιλεγμένων εργάσιμων ημερών της εβδομάδας (Παράδειγμα: 1-5, 1-6) +DefaultWorkingHours=Προεπιλεγμένες ώρες εργασίας την ημέρα (Παράδειγμα: 9-18) # External Sites ical ExportCal=Εξαγωγή ημερολογίου ExtSites=Εισαγωγή εξωτερικών ημερολογίων -ExtSitesEnableThisTool=Εμφάνιση εξωτερικών ημερολογίων (που ορίζονται στην παγκόσμια ρύθμιση) στην Ατζέντα. Δεν επηρεάζει τα εξωτερικά ημερολόγια που ορίζονται από τους χρήστες. +ExtSitesEnableThisTool=Εμφάνιση εξωτερικών ημερολογίων (που ορίστηκαν στην καθολική ρύθμιση) στην Ατζέντα. Δεν επηρεάζει τα εξωτερικά ημερολόγια που ορίστηκαν από τους χρήστες. ExtSitesNbOfAgenda=Αριθμός ημερολογίων -AgendaExtNb=Αριθμός ημερολογίου. %s +AgendaExtNb=Ημερολόγιο αρ. %s ExtSiteUrlAgenda=URL για να αποκτήσετε πρόσβαση στο .ical αρχείο ExtSiteNoLabel=Χωρίς Περιγραφή VisibleTimeRange=Ορατό χρονικό εύρος -VisibleDaysRange=Ορατό φάσμα ημερών +VisibleDaysRange=Εύρος ορατών ημερών AddEvent=Δημιουργία συμβάντος MyAvailability=Η διαθεσιμότητα μου -ActionType=Τύπος συμβάντος -DateActionBegin=Έναρξη ημερομηνίας του συμβάντος -ConfirmCloneEvent=Είστε σίγουροι πως θέλετε να κλωνοποιήσετε την εκδήλωση %s; -RepeatEvent=Επανάληψη συμβάντος +ActionType=Τύπος ενέργειας +DateActionBegin=Ημερομηνία έναρξης ενέργειας +ConfirmCloneEvent=Είστε σίγουροι πως θέλετε να αντιγράψετε το συμβάν %s; +RepeatEvent=Επανάληψη ενέργειας OnceOnly=Μόνο μία φορά -EveryWeek=Εβδομαδιαίο -EveryMonth=Μηνιαίο +EveryDay=Κάθε μέρα +EveryWeek=Κάθε εβδομάδα +EveryMonth=Κάθε μήνα DayOfMonth=Ημέρα του Μήνα DayOfWeek=Ημέρα της εβδομάδας -DateStartPlusOne=Έναρξη ημέρας + 1 ώρα -SetAllEventsToTodo=Ρυθμίστε όλα τα συμβάντα για να κάνετε +DateStartPlusOne=Ημερομηνία έναρξης + 1 ώρα +SetAllEventsToTodo=Ορισμός όλων των ενεργειών ως εκκρεμών SetAllEventsToInProgress=Ορίστε όλα τα συμβάντα σε εξέλιξη SetAllEventsToFinished=Ορίστε όλα τα συμβάντα ως ολοκληρωμένα -ReminderTime=Περίοδος υπενθύμισης πριν από την εκδήλωση +ReminderTime=Περίοδος υπενθύμισης πριν από την ενέργεια TimeType=Τύπος διάρκειας ReminderType=Τύπος επανάκλησης -AddReminder=Δημιουργήστε μια αυτόματη ειδοποίηση υπενθύμισης για αυτό το συμβάν -ErrorReminderActionCommCreation=Σφάλμα κατά τη δημιουργία της ειδοποίησης υπενθύμισης για αυτό το συμβάν -BrowserPush=Περιήηση αναδυόμενης ειδοποίησης +AddReminder=Δημιουργήστε μια αυτόματη ειδοποίηση υπενθύμισης για αυτή την ενέργεια +ErrorReminderActionCommCreation=Σφάλμα κατά τη δημιουργία της ειδοποίησης υπενθύμισης για αυτή την ενέργεια +BrowserPush=Αναδυόμενη ειδοποίηση προγράμματος περιήγησης ActiveByDefault=Ενεργοποιημένο από προεπιλογή +Until=μέχρι diff --git a/htdocs/langs/el_GR/assets.lang b/htdocs/langs/el_GR/assets.lang index c22f6a43f92..42f57f2be23 100644 --- a/htdocs/langs/el_GR/assets.lang +++ b/htdocs/langs/el_GR/assets.lang @@ -23,7 +23,7 @@ AccountancyCodeDepreciationExpense=Λογιστικός κωδικός (λογα AssetsLines=Περιουσιακά στοιχεία DeleteType=Διαγραφή DeleteAnAssetType=Διαγραφή ενός τύπου ενεργητικού -ConfirmDeleteAssetType=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό τον τύπο ενεργητικού; +ConfirmDeleteAssetType=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό τον τύπο ενεργητικού; ShowTypeCard=Εμφάνιση τύπου "%s" # Module label 'ModuleAssetsName' @@ -79,16 +79,16 @@ AssetDateAcquisition=Ημερομηνία Απόκτησης AssetDateStart=Ημερομηνία έναρξης λειτουργίας AssetAcquisitionType=Τρόπος απόκτησης AssetAcquisitionTypeNew=Νέο -AssetAcquisitionTypeOccasion=Μεταχειρισμένο -AssetType=Τύπος περιουσιακού στοιχείου +AssetAcquisitionTypeOccasion=Μεταχειρισμένα +AssetType=Τύπος ενεργητικού AssetTypeIntangible=Αϋλο AssetTypeTangible=Απτό AssetTypeInProgress=Σε εξέλιξη AssetTypeFinancial=Χρηματοοικονομικό AssetNotDepreciated=Δεν αποσβέστηκε AssetDisposal=Διάθεση -AssetConfirmDisposalAsk=Είστε βέβαιοι ότι θέλετε να διαθέσετε το περιουσιακό στοιχείο %s ; -AssetConfirmReOpenAsk=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά το στοιχείο %s ; +AssetConfirmDisposalAsk=Είστε σίγουροι ότι θέλετε να διαθέσετε αυτό το περιουσιακό στοιχείο %s ; +AssetConfirmReOpenAsk=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το στοιχείο %s ; # # Asset status @@ -102,15 +102,15 @@ AssetRecorded=Καταγεγραμμένο # AssetDisposalDate=Ημερομηνία διάθεσης AssetDisposalAmount=Αξία διάθεσης -AssetDisposalType=Είδος διάθεσης +AssetDisposalType=Τύπος διάθεσης AssetDisposalDepreciated=Απόσβεση του έτους μεταφοράς AssetDisposalSubjectToVat=Η διάθεση υπόκειται σε ΦΠΑ # # Asset model # -AssetModel=Μοντέλο περιουσιακού στοιχείου -AssetModels=Μοντέλα περιουσιακών στοιχείων +AssetModel=Τύπος ενεργητικού +AssetModels=Τύποι ενεργητικού # # Asset depreciation options @@ -121,7 +121,7 @@ AssetDepreciationOptionDepreciationType=Μέθοδος απόσβεσης AssetDepreciationOptionDepreciationTypeLinear=Γραμμική AssetDepreciationOptionDepreciationTypeDegressive=Προοδευτική AssetDepreciationOptionDepreciationTypeExceptional=Εξαιρετική -AssetDepreciationOptionDegressiveRate=Φθίνουσα απόσβεση +AssetDepreciationOptionDegressiveRate=Φθίνων συντελεστής AssetDepreciationOptionAcceleratedDepreciation=Ταχεία απόσβεση (φόρος) AssetDepreciationOptionDuration=Διάρκεια AssetDepreciationOptionDurationType=Τύπος διάρκειας @@ -168,7 +168,7 @@ AssetDepreciationReversal=Αντιστροφή # # Errors # -AssetErrorAssetOrAssetModelIDNotProvide=Το αναγνωριστικό του στοιχείου ή ο ήχος του μοντέλου δεν έχει παρασχεθεί +AssetErrorAssetOrAssetModelIDNotProvide=Το αναγνωριστικό του στοιχείου ή του τύπου δεν έχει παρασχεθεί AssetErrorFetchAccountancyCodesForMode=Σφάλμα κατά την ανάκτηση των λογιστικών λογαριασμών για τη λειτουργία απόσβεσης '%s' AssetErrorDeleteAccountancyCodesForMode=Σφάλμα κατά τη διαγραφή λογιστικών λογαριασμών από τη λειτουργία απόσβεσης '%s' AssetErrorInsertAccountancyCodesForMode=Σφάλμα κατά την εισαγωγή των λογιστικών λογαριασμών του τρόπου απόσβεσης '%s' diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang index 4b6c2472f2a..b94c14f4b1c 100644 --- a/htdocs/langs/el_GR/banks.lang +++ b/htdocs/langs/el_GR/banks.lang @@ -1,21 +1,21 @@ # Dolibarr language file - Source file is en_US - banks Bank=Τράπεζα MenuBankCash=Τράπεζες | Μετρητά -MenuVariousPayment=Διάφορες πληρωμές -MenuNewVariousPayment=Νέα Διάφορα πληρωμή +MenuVariousPayment=Άλλου τύπου πληρωμές +MenuNewVariousPayment=Νέα άλλου τύπου πληρωμή BankName=Όνομα Τράπεζας FinancialAccount=Λογαριασμός BankAccount=Τραπεζικός Λογαριασμός BankAccounts=Τραπεζικοί Λογαριασμοί -BankAccountsAndGateways=Τραπεζικοί λογαριασμοί θυρίδες +BankAccountsAndGateways=Τραπεζικοί λογαριασμοί | Πύλες πληρωμών ShowAccount=Εμφάνιση λογαριασμού -AccountRef=Αναγνωριστικό Λογιστικού Λογαριασμού -AccountLabel=Ετικέτα Λογιστικού Λογαριασμού +AccountRef=Αναγνωριστικό λογαριασμού +AccountLabel=Ετικέτα λογαριασμού CashAccount=Λογαριασμός Μετρητών CashAccounts=Λογαριασμοί Μετρητών CurrentAccounts=Λογαριασμοί Όψεως SavingAccounts=Λογαριασμοί ταμιευτηρίου -ErrorBankLabelAlreadyExists=Η ετικέτα για αυτόν τον Λογιστικό Λογαριασμό, υπάρχει ήδη +ErrorBankLabelAlreadyExists=Η ετικέτα για αυτόν τον λογαριασμό, υπάρχει ήδη BankBalance=Υπόλοιπο BankBalanceBefore=Υπόλοιπο πριν BankBalanceAfter=Υπόλοιπο μετά @@ -23,24 +23,24 @@ BalanceMinimalAllowed=Ελάχιστο Επιτρεπτό Υπόλοιπο BalanceMinimalDesired=Ελάχιστο Επιθυμητό Υπόλοιπο InitialBankBalance=Αρχικό Υπόλοιπο EndBankBalance=Τελικό Υπόλοιπο -CurrentBalance=Τρέχων Υπόλοιπο +CurrentBalance=Τρέχον Υπόλοιπο FutureBalance=Μελλοντικό Υπόλοιπο ShowAllTimeBalance=Εμφάνιση Υπολοίπου από την αρχή AllTime=Από την αρχή -Reconciliation=Πραγματοποίηση Συναλλαγών +Reconciliation=Συμφωνία RIB=Αριθμός Τραπ. Λογαριασμού IBAN=IBAN BIC=Κωδικός BIC / SWIFT -SwiftValid=Κωδικός BIC / SWIFT έγκυρος +SwiftValid=Έγκυρος κωδικός BIC / SWIFT SwiftNotValid=Κωδικός BIC / SWIFT μη έγκυρος IbanValid=Έγκυρο IBAN IbanNotValid=Μη έγκυρο IBAN StandingOrders=Εντολές άμεσης χρέωσης StandingOrder=Εντολή άμεσης χρέωσης PaymentByDirectDebit=Πληρωμή με άμεση χρέωση -PaymentByBankTransfers=Πληρωμές μέσω μεταφοράς πιστώσεως -PaymentByBankTransfer=Πληρωμή μέσω μεταφοράς πιστώσεως -AccountStatement=Κίνηση Λογαριασμού +PaymentByBankTransfers=Πληρωμές μέσω μεταφοράς πίστωσης +PaymentByBankTransfer=Πληρωμή μέσω μεταφοράς πίστωσης +AccountStatement=Αντίγραφο κίνησης λογαριασμού AccountStatementShort=Κίνηση AccountStatements=Κινήσεις Λογαριασμού LastAccountStatements=Τελευταίες Κινήσεις Λογαριασμού @@ -48,65 +48,65 @@ IOMonthlyReporting=Μηνιαία Αναφορά BankAccountDomiciliation=Διεύθυνση τράπεζας BankAccountCountry=Χώρα λογαριασμού BankAccountOwner=Ιδιοκτήτης Λογαριασμού -BankAccountOwnerAddress=Διεύθυνση Ιδιοκτήτη +BankAccountOwnerAddress=Διεύθυνση Ιδιοκτήτη λογαριασμού CreateAccount=Δημιουργία Λογαριασμού NewBankAccount=Νέος Λογαριασμός -NewFinancialAccount=Νέος Λογιστικός Λογαριασμός -MenuNewFinancialAccount=Νέος Λογιστικός Λογαριασμός +NewFinancialAccount=Νέος λογαριασμός +MenuNewFinancialAccount=Νέος λογαριασμός EditFinancialAccount=Επεξεργασία Λογαριασμού -LabelBankCashAccount=Τράπεζα ή την ετικέτα μετρητών +LabelBankCashAccount=Ετικέτα τράπεζας ή μετρητών AccountType=Τύπος Λογαριασμού -BankType0=Ταμιευτηρίου Λογαριασμός -BankType1=Λογαριασμός Όψεως +BankType0=Λογαριασμός ταμιευτηρίου +BankType1=Λογαριασμός Όψεως ή πιστωτικής κάρτας BankType2=Λογαριασμός Μετρητών -AccountsArea=Περιοχή Τραπεζικών Λογαριασμών +AccountsArea=Τομέας λογαριασμών AccountCard=Καρτέλα Λογαριασμού DeleteAccount=Διαγραφή Λογαριασμού ConfirmDeleteAccount=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον λογαριασμό; Account=Λογαριασμός -BankTransactionByCategories=Καταχωρήσεις τραπεζών ανά κατηγορίες -BankTransactionForCategory=Καταχωρήσεις τραπεζών για την κατηγορία %s -RemoveFromRubrique=Αφαίρεση του συνδέσμου με κατηγορία -RemoveFromRubriqueConfirm=Είστε βέβαιοι ότι θέλετε να καταργήσετε τη σύνδεση μεταξύ της καταχώρισης και της κατηγορίας αυτής; -ListBankTransactions=Κατάλογος Τραπεζικών καταχωρήσεων -IdTransaction=ID Συναλλαγής -BankTransactions=Καταχωρήσεις τραπεζών -BankTransaction=Τραπεζική εγγραφή -ListTransactions=Λίστα εγγραφών -ListTransactionsByCategory=Λίστα καταχωρίσεων / κατηγοριών -TransactionsToConciliate=Εγγραφές για συμβιβασμό -TransactionsToConciliateShort=Πραγματοποίηση Συναλλαγής -Conciliable=Μπορεί να πραγματοποιηθεί -Conciliate=Πραγματοποίηση Συναλλαγής -Conciliation=Πραγματοποίηση Συναλλαγής +BankTransactionByCategories=Τραπεζικές συναλλαγές ανά κατηγορίες +BankTransactionForCategory=Τραπεζικές συναλλαγές για την κατηγορία %s +RemoveFromRubrique=Αφαίρεση συνδέσμου με κατηγορία +RemoveFromRubriqueConfirm=Είστε σίγουροι ότι θέλετε να καταργήσετε τη σύνδεση μεταξύ της καταχώρισης και της κατηγορίας αυτής; +ListBankTransactions=Λίστα Τραπεζικών συναλλαγών +IdTransaction=Αναγνωριστικό συναλλαγής +BankTransactions=Τραπεζικές συναλλαγές +BankTransaction=Τραπεζική συναλλαγή +ListTransactions=Λίστα συναλλαγών +ListTransactionsByCategory=Λίστα συναλλαγών / κατηγοριών +TransactionsToConciliate=Συναλλαγές προς συμφωνία +TransactionsToConciliateShort=Προς συμφωνία +Conciliable=Μπορεί να συμφωνηθεί +Conciliate=Συμφωνία +Conciliation=Συμφωνία SaveStatementOnly=Αποθήκευση δήλωσης μόνο -ReconciliationLate=Πραγματοποίηση Συναλλαγής +ReconciliationLate=Καθυστερημένη συμφωνία IncludeClosedAccount=Συμπερίληψη Κλειστών Λογαριασμών -OnlyOpenedAccount=Μόνο ανοικτούς λογαριασμούς -AccountToCredit=Πίστωση στον Λογαριασμό -AccountToDebit=Χρέωση στον Λογαριασμό -DisableConciliation=Απενεργοποίηση της ιδιότητας συμφωνία από αυτό τον λογαριασμό -ConciliationDisabled=Η ιδιότητα συμφωνία απενεργοποιήθηκε. -LinkedToAConciliatedTransaction=Συνδέεται με μια συμβιβαστική είσοδο +OnlyOpenedAccount=Μόνο ανοιχτοί λογαριασμοί +AccountToCredit=Λογαριασμός προς πίστωση +AccountToDebit=Λογαριασμός προς χρέωση +DisableConciliation=Απενεργοποίηση της λειτουργίας συμφωνίας από αυτό τον λογαριασμό +ConciliationDisabled=Η λειτουργία συμφωνίας απενεργοποιήθηκε. +LinkedToAConciliatedTransaction=Συνδέεται με μια συμφωνημένη συναλλαγή StatusAccountOpened=Ανοιχτός StatusAccountClosed=Κλειστός AccountIdShort=Αριθμός LineRecord=Συναλλαγή AddBankRecord=Προσθήκη καταχώρησης AddBankRecordLong=Προσθήκη εγγραφής με μη αυτόματο τρόπο  -Conciliated=Συγχωρήθηκε -ReConciliedBy=Πραγματοποίηση Συναλλαγής από +Conciliated=Συμφωνήθηκε +ReConciliedBy=Συμφωνήθηκε από DateConciliating=Ημερομ. Πραγματοποίησης Συναλλαγής BankLineConciliated=Η συναλλαγή συμφωνείται με την τραπεζική απόδειξη -BankLineReconciled=Συγχωρήθηκε -BankLineNotReconciled=Δεν ταιριάζουν +BankLineReconciled=Συμφωνήθηκε +BankLineNotReconciled=Δεν συμφωνήθηκε CustomerInvoicePayment=Πληρωμή Πελάτη SupplierInvoicePayment=Πληρωμή προμηθευτή SubscriptionPayment=Πληρωμή συνδρομής -WithdrawalPayment=Debit payment order -SocialContributionPayment=Σίγουρα θέλετε να μαρκάρετε αυτό το αξιόγραφο σαν απορριφθέν; -BankTransfer=μεταφορά πιστώσεως -BankTransfers=μεταφορές πιστώσεως +WithdrawalPayment=Χρεωστική εντολή πληρωμής +SocialContributionPayment=Πληρωμή κοινωνικού/φορολογικού φόρου +BankTransfer=Μεταφορά πίστωσης +BankTransfers=Μεταφορές πιστώσεων MenuBankInternalTransfer=Εσωτερική μεταφορά TransferDesc=Χρησιμοποιήστε εσωτερική μεταφορά για μεταφορά από έναν λογαριασμό σε άλλο, η εφαρμογή θα γράψει δύο εγγραφές: μια χρέωση στον λογαριασμό προέλευσης και μια πίστωση στον λογαριασμό προορισμού. Το ίδιο ποσό, ετικέτα και ημερομηνία θα χρησιμοποιηθούν για αυτήν τη συναλλαγή. TransferFrom=Από @@ -114,21 +114,21 @@ TransferTo=Προς TransferFromToDone=Η μεταφορά από %s στον %s του %s %s έχει καταγραφεί. CheckTransmitter=Αποστολέας ValidateCheckReceipt=Επικύρωση αυτής της απόδειξης παραλαβής επιταγής; -ConfirmValidateCheckReceipt=Είστε βέβαιοι ότι θέλετε να υποβάλετε αυτήν την απόδειξη επιταγής για επικύρωση; Καμία αλλαγή δεν θα είναι δυνατή μετά την επικύρωση. -DeleteCheckReceipt=Διαγραφή απόδειξης παραλαβής επιταγής; -ConfirmDeleteCheckReceipt=Είστε σίγουροι πως θέλετε να διαγράψετε αυτή την απόδειξη παραλαβής επιταγής; +ConfirmValidateCheckReceipt=Είστε σίγουροι ότι θέλετε να υποβάλετε αυτήν την απόδειξη επιταγής για επικύρωση; Καμία αλλαγή δεν θα είναι δυνατή μετά την επικύρωση. +DeleteCheckReceipt=Διαγραφή αυτής της απόδειξης επιταγής; +ConfirmDeleteCheckReceipt=Είστε σίγουροι πως θέλετε να διαγράψετε αυτή την απόδειξη επιταγής; BankChecks=Τραπεζικές Επιταγές -BankChecksToReceipt=Επιταγές που αναμένουν κατάθεση -BankChecksToReceiptShort=Επιταγές που αναμένουν κατάθεση -ShowCheckReceipt=Ελέγξτε την απόδειξη κατάθεσης -NumberOfCheques=Αριθ. Ελέγχου -DeleteTransaction=Διαγραφή συμμετοχής -ConfirmDeleteTransaction=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την καταχώρηση; -ThisWillAlsoDeleteBankRecord=Αυτό θα διαγράψει επίσης την εισερχόμενη είσοδο στην τράπεζα +BankChecksToReceipt=Επιταγές σε αναμονή κατάθεσης +BankChecksToReceiptShort=Επιταγές σε αναμονή κατάθεσης +ShowCheckReceipt=Εμφάνιση απόδειξης κατάθεσης επιταγής +NumberOfCheques=Αριθμός επιταγής +DeleteTransaction=Διαγραφή συναλλαγής +ConfirmDeleteTransaction=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την συναλλαγή; +ThisWillAlsoDeleteBankRecord=Αυτό θα διαγράψει επίσης την δημιουργημένη τραπεζική καταχώριση BankMovements=Κινήσεις -PlannedTransactions=Προγραμματισμένες καταχωρήσεις +PlannedTransactions=Προγραμματισμένες συναλλαγές Graph=Γραφήματα -ExportDataset_banque_1=Τραπεζικές εγγραφές και αποδείξεις κατάθεσης +ExportDataset_banque_1=Τραπεζικές συναλλαγές και κίνηση λογαριασμού ExportDataset_banque_2=Απόδειξη κατάθεσης TransactionOnTheOtherAccount=Συναλλαγή σε άλλο λογαριασμό PaymentNumberUpdateSucceeded=Ο αριθμός πληρωμής ενημερώθηκε με επιτυχία @@ -140,38 +140,38 @@ BankTransactionLine=Τραπεζική εγγραφή AllAccounts=Όλοι οι τραπεζικοί και ταμιακοί λογαριασμοί BackToAccount=Επιστροφή στον λογαριασμό ShowAllAccounts=Εμφάνιση Όλων των Λογαριασμών -FutureTransaction=Μελλοντική συναλλαγή. Δεν μπορεί να συμφιλιωθεί. +FutureTransaction=Μελλοντική συναλλαγή. Δεν μπορεί να συμφωνηθεί SelectChequeTransactionAndGenerate=Επιλέξτε/φιλτράρετε τις επιταγές που θα συμπεριληφθούν στην απόδειξη κατάθεσης επιταγών. Στη συνέχεια, κάντε κλικ στο "Δημιουργία". -InputReceiptNumber=Επιλέξτε την κατάσταση των τραπεζών που συνδέονται με τη διαδικασία συνδιαλλαγής. Χρησιμοποιήστε μια σύντομη αριθμητική τιμή όπως: YYYYMM ή YYYYMMDD +InputReceiptNumber=Επιλέξτε την τραπεζική κίνηση που σχετίζεται με τη συνδιαλλαγή. Χρησιμοποιήστε μια αριθμητική τιμή με δυνατότητα ταξινόμησης: ΕΕΕΕΜΜ ή ΕΕΕΕΜΜΗΗ EventualyAddCategory=Τέλος, καθορίστε μια κατηγορία στην οποία θα ταξινομηθούν οι εγγραφές -ToConciliate=Για συνδιαλλαγή; +ToConciliate=Για συμφωνία; ThenCheckLinesAndConciliate=Στη συνέχεια, ελέγξτε τις γραμμές που υπάρχουν στο αντίγραφο κίνησης του τραπεζικού λογαριασμού και κάντε κλικ -DefaultRIB=Προεπιλογή BAN +DefaultRIB=Προεπιλεγμένο BAN AllRIB=Όλα τα BAN LabelRIB=Ετικέτα BAN NoBANRecord=Καμία εγγραφή BAN DeleteARib=Διαγραφή BAN εγγραφή ConfirmDeleteRib=Είστε σίγουροι πως θέτε να διαγράψετε αυτό το IBAN; -RejectCheck=Ελέγξτε την επιστροφή +RejectCheck=Η επιταγή επιστράφηκε ConfirmRejectCheck=Είστε σίγουροι πως θέλετε να σημειώσετε αυτή την επιταγή ως απορριφθείσα; -RejectCheckDate=Ημερομηνία ελέγχου επιστροφής -CheckRejected=Ελέγξτε την επιστροφή -CheckRejectedAndInvoicesReopened=Έλεγχος επιστρεφόμενων και άνοιγμα τιμολογίων +RejectCheckDate=Ημερομηνία επιστροφής της επιταγής +CheckRejected=Η επιταγή επιστράφηκε +CheckRejectedAndInvoicesReopened=Η επιταγή επιστράφηκε και τα τιμολόγια ανοίγουν ξανά BankAccountModelModule=Πρότυπα εγγράφων για τραπεζικούς λογαριασμούς -DocumentModelSepaMandate=Υπόδειγμα εντολής ΕΧΠΕ +DocumentModelSepaMandate=Πρότυπο εντολής SEPA. Χρήσιμο μόνο για ευρωπαϊκές χώρες στην Ε.Ε. DocumentModelBan=Πρότυπο για εκτύπωση σελίδας με πληροφορίες BAN. NewVariousPayment=Νέα άλλου τύπου πληρωμή VariousPayment=Άλλου τύπου πληρωμή VariousPayments=Άλλου τύπου πληρωμές ShowVariousPayment=Εμφάνιση Άλλου τύπου πληρωμών -AddVariousPayment=Προσθήκη Άλλου τύπου πληρωμών +AddVariousPayment=Προσθήκη Άλλου τύπου πληρωμή VariousPaymentId=ID πληρωμής άλλου τύπου VariousPaymentLabel=Ετικέτα πληρωμής άλλου τύπου -ConfirmCloneVariousPayment=Επιβεβαίωση του κλώνου μιας πληρωμής άλλου τύπου -SEPAMandate=Εντολές άμεσης χρέωσης -YourSEPAMandate=Οι εντολές άμεσης χρέωσης σας. -FindYourSEPAMandate=Αυτή είναι η εντολή ΕΧΠΕ για να εξουσιοδοτήσετε την εταιρεία μας να κάνει άμεση εντολή χρέωσης στην τράπεζά σας. Επιστρέψτε το υπογεγραμμένο (σάρωση του υπογεγραμμένου εγγράφου) ή στείλτε το ταχυδρομικώς η με mail -AutoReportLastAccountStatement=Συμπληρώστε αυτόματα το πεδίο ' αριθμός τραπεζικού λογαριασμού ' με τον τελευταίο αριθμό τραπεζικής δήλωσης όταν κάνετε τη συμφωνία. +ConfirmCloneVariousPayment=Επιβεβαίωση την αντιγραφή μιας πληρωμής άλλου τύπου +SEPAMandate=Εντολή SEPA +YourSEPAMandate=Η εντολή σας στον SEPA +FindYourSEPAMandate=Αυτή είναι η εντολή σας από τον SEPA για να εξουσιοδοτήσετε την εταιρεία μας να κάνει εντολή άμεσης χρέωσης στην τράπεζά σας. Επιστρέψτε το υπογεγραμμένο (σάρωση του υπογεγραμμένου εγγράφου) ή στείλτε το ταχυδρομικά στη διεύθυνση +AutoReportLastAccountStatement=Συμπληρώστε αυτόματα το πεδίο «αριθμός κίνησης τραπεζικού λογαριασμού» με τον τελευταίο αριθμό κίνησης κατά τη συμφωνία CashControl=Έλεγχος μετρητών POS NewCashFence=Νέος έλεγχος μετρητών (άνοιγμα ή κλείσιμο) BankColorizeMovement=Χρωματισμός κινήσεων @@ -180,8 +180,9 @@ BankColorizeMovementName1=Χρώμα φόντου για την κίνηση χ BankColorizeMovementName2=Χρώμα φόντου για την πιστωτική κίνηση IfYouDontReconcileDisableProperty=Εάν δεν πραγματοποιήσετε τις τραπεζικές συμφωνίες σε ορισμένους τραπεζικούς λογαριασμούς, απενεργοποιήστε την ιδιότητα "%s" σε αυτούς για να καταργήσετε αυτήν την προειδοποίηση. NoBankAccountDefined=Δεν έχει οριστεί τραπεζικός λογαριασμός -NoRecordFoundIBankcAccount=Δεν βρέθηκε κανένα αρχείο σε τραπεζικό λογαριασμό. Συνήθως, αυτό συμβαίνει όταν μια εγγραφή έχει διαγραφεί με χειροκίνητο τρόπο από τη λίστα συναλλαγών στον τραπεζικό λογαριασμό (για παράδειγμα κατά τη διάρκεια συμφωνίας του τραπεζικού λογαριασμού). Άλλος λόγος είναι ότι η πληρωμή καταγράφηκε όταν η ενότητα/εφαρμογή "%s" ήταν απενεργοποιημένη. +NoRecordFoundIBankcAccount=Δεν βρέθηκε κάποιο αρχείο στον τραπεζικό λογαριασμό. Συνήθως, αυτό συμβαίνει όταν μια εγγραφή έχει διαγραφεί με μη αυτόματο τρόπο από τη λίστα συναλλαγών στον τραπεζικό λογαριασμό (για παράδειγμα κατά τη διάρκεια συμφωνίας του τραπεζικού λογαριασμού). Ένας άλλος λόγος είναι ότι η πληρωμή καταγράφηκε όταν η ενότητα "%s" ήταν απενεργοποιημένη. AlreadyOneBankAccount=Έχει ήδη οριστεί ένας τραπεζικός λογαριασμός SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Μεταφορά SEPA: 'Τύπος Πληρωμής' στο επίπεδο 'Μεταφορά Πίστωσης' SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Όταν δημιουργείτε ένα αρχείο SEPA XML για μεταφορές πίστωσης, η ενότητα "Πληροφορίες Τύπου πληρωμής" μπορεί τώρα να τοποθετηθεί στην ενότητα "Πληροφορίες Μεταφοράς Πίστωσης" (αντί της ενότητας "Πληρωμή"). Συνιστούμε ανεπιφύλακτα να μην το επιλέξετε ώστε να παραμείνουν η Πληροφορίες Τύπου πληρωμής σε επίπεδο πληρωμής, καθώς όλες οι τράπεζες δεν θα το αποδεχτούν απαραίτητα σε επίπεδο Πληροφοριών Μεταφοράς Πίστωσης. Επικοινωνήστε με την τράπεζά σας προτού τοποθετήσετε το Πληροφορίες Τύπου πληρωμής σε επίπεδο Πληροφοριών Μεταφοράς Πίστωσης. ToCreateRelatedRecordIntoBank=Για να δημιουργήσετε σχετικό τραπεζικό αρχείο που λείπει +BanklineExtraFields=Επιπλέον πεδία τραπεζικής γραμμής diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index 575e1334576..8fed9327ac5 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -8,27 +8,30 @@ BillsCustomersUnpaid=Ανεξόφλητα τιμολόγια πελάτη BillsCustomersUnpaidForCompany=Ανεξόφλητα τιμολόγια πελατών για %s BillsSuppliersUnpaid=Ανεξόφλητα τιμολόγια προμηθευτή BillsSuppliersUnpaidForCompany=Ανεξόφλητα τιμολόγια προμηθευτών για %s -BillsLate=Καθυστερημένες Πληρωμές -BillsStatistics=Στατιστικά για τα τιμολόγια των πελατών +BillsLate=Καθυστερημένες πληρωμές +BillsStatistics=Στατιστικά τιμολογίων πελατών BillsStatisticsSuppliers=Στατιστικά τιμολογίων προμηθευτών DisabledBecauseDispatchedInBookkeeping=Απενεργοποιήθηκε επειδή το τιμολόγιο καταχωρήθηκε στη λογιστική DisabledBecauseNotLastInvoice=Απενεργοποιημένο επειδή το τιμολόγιο δεν μπορεί να διαγράφει. Ορισμένα τιμολόγια καταγράφηκαν μετά από αυτό και θα χαλάσει τη σειρά της αυτόματης αρίθμησης. -DisabledBecauseNotErasable=Απενεργοποιημένο επειδή δεν μπορεί να διαγραφή -InvoiceStandard=Τυπικό Τιμολόγιο -InvoiceStandardAsk=Τυπικό Τιμολόγιο +DisabledBecauseNotLastSituationInvoice=Απενεργοποιήθηκε επειδή το τιμολόγιο δεν μπορεί να διαγραφεί. Αυτό το τιμολόγιο δεν είναι το τελευταίο στον κύκλο τιμολογίων κατάστασης. +DisabledBecauseNotErasable=Απενεργοποιημένο επειδή δεν μπορεί να διαγραφεί +InvoiceStandard=Τιμολόγιο +InvoiceStandardAsk=Τιμολόγιο InvoiceStandardDesc=Αυτό το είδος τιμολογίου είναι το τυπικό τιμολόγιο. +InvoiceStandardShort=Τυπικό InvoiceDeposit=Απόδειξη είσπραξης προκαταβολής. InvoiceDepositAsk=Απόδειξη είσπραξης προκαταβολής. InvoiceDepositDesc=Αυτός ο τύπος απόδειξης χρησιμοποιείται όταν λαμβάνετε μια προκαταβολή. InvoiceProForma=Προτιμολόγιο InvoiceProFormaAsk=Προτιμολόγιο -InvoiceProFormaDesc=Το Προτιμολόγιο είναι η εικόνα ενός πραγματικού τιμολογίου, χωρίς όμως να έχει χρηματική αξία +InvoiceProFormaDesc=Το Προτιμολόγιο είναι μια εικόνα ενός πραγματικού τιμολογίου αλλά δεν έχει λογιστική αξία. InvoiceReplacement=Τιμολόγιο Αντικατάστασης -InvoiceReplacementAsk=Αντικατάσταση τιμολογίου με -InvoiceReplacementDesc=Το τιμολόγιο αντικατάστασης χρησιμοποιείται για την πλήρη αντικατάσταση ενός τιμολογίου χωρίς πληρωμή που έχει ήδη παραληφθεί.

    Σημείωση: Μπορούν να αντικατασταθούν μόνο τιμολόγια χωρίς πληρωμή. Εάν το τιμολόγιο που αντικαταστήσατε δεν έχει κλείσει ακόμα, θα κλείσει αυτόματα για να «εγκαταλειφθεί». +InvoiceReplacementShort=Αντικατάστασης +InvoiceReplacementAsk=Τιμολόγιο αντικατάστασης για το τιμολόγιο +InvoiceReplacementDesc=Τοτιμολόγιο αντικατάστασης χρησιμοποιείται για την πλήρη αντικατάσταση ενός τιμολογίου που έχει παραληφθεί από τον πελάτη αλλά δεν έχει πληρωθεί.

    Σημείωση: Μπορούν να αντικατασταθούν μόνο τιμολόγια χωρίς πληρωμή. Εάν το τιμολόγιο που αντικαταστήσατε δεν έχει κλείσει ακόμα, θα κλείσει αυτόματα ως «εγκαταλειμμένο». InvoiceAvoir=Πιστωτικό τιμολόγιο InvoiceAvoirAsk=Πιστωτικό τιμολόγιο για την διόρθωση τιμολογίου -InvoiceAvoirDesc=Το πιστωτικό σημείωμα είναι ένα αρνητικό τιμολόγιο που χρησιμοποιείται για να διορθωθεί το γεγονός ότι ένα τιμολόγιο εμφανίζει ένα ποσό που διαφέρει από το ποσό που έχει πράγματι καταβληθεί (π.χ. ο πελάτης κατέβαλε πάρα πολύ κατά λάθος ή δεν θα πληρώσει το πλήρες ποσό από την επιστροφή ορισμένων προϊόντων). +InvoiceAvoirDesc=Το πιστωτικό τιμολόγιο είναι ένα αρνητικό τιμολόγιο που χρησιμοποιείται για να διορθωθεί το γεγονός ότι ένα τιμολόγιο εμφανίζει ένα ποσό που διαφέρει από το ποσό που έχει πράγματι καταβληθεί (π.χ. ο πελάτης κατέβαλε περισσότερα κατά λάθος ή δεν θα πληρώσει το πλήρες ποσό από την επιστροφή ορισμένων προϊόντων). invoiceAvoirWithLines=Δημιουργία Πιστωτικού τιμολογίου με γραμμές από το τιμολόγιο προέλευσης. invoiceAvoirWithPaymentRestAmount=Δημιουργήστε Πιστωτικό Τιμολόγιο με το υπόλοιπο πριν από την καταβολή του τιμολογίου invoiceAvoirLineWithPaymentRestAmount=Πιστωτικό τιμολόγιο για το υπολειπόμενο ανεξόφλητο ποσό @@ -37,13 +40,13 @@ ReplacementInvoice=Τιμολόγιο Αντικατάστασης ReplacedByInvoice=Αντικαταστάθηκε από το τιμολόγιο %s ReplacementByInvoice=Αντικαταστάθηκε από τιμολόγιο CorrectInvoice=Διόρθωση Τιμολογίου %s -CorrectionInvoice=Τιμολόγιο Διόρθωσης +CorrectionInvoice=Σχετικό παραστατικό UsedByInvoice=Χρησιμοποιήθηκε στην πληρωμή του τιμολογίου %s -ConsumedBy=Consumed by -NotConsumed=Not consumed -NoReplacableInvoice=Δεν μπορούν να αντικατασταθούν τιμολόγια +ConsumedBy=Καταναλώθηκε από +NotConsumed=Δεν καταναλώθηκε +NoReplacableInvoice=Δεν υπάρχουν αντικαταστάσιμα τιμολόγια NoInvoiceToCorrect=Δεν υπάρχουν τιμολόγια προς διόρθωση -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Ήταν πηγή ενός ή περισσότερων πιστωτικών σημειώσεων CardBill=Καρτέλα Τιμολογίου PredefinedInvoices=Προκαθορισμένα τιμολόγια Invoice=Τιμολόγιο @@ -63,14 +66,14 @@ PaymentBack=Επιστροφή χρημάτων CustomerInvoicePaymentBack=Επιστροφή χρημάτων Payments=Πληρωμές PaymentsBack=Επιστροφές χρημάτων -paymentInInvoiceCurrency=in invoices currency -PaidBack=Αποζημιώθηκε +paymentInInvoiceCurrency=σε νόμισμα τιμολογίων +PaidBack=Επιστροφή χρημάτων DeletePayment=Διαγραφή Πληρωμής ConfirmDeletePayment=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την πληρωμή; ConfirmConvertToReduc=Θέλετε να μετατρέψετε αυτό το %s σε διαθέσιμη πίστωση; -ConfirmConvertToReduc2=Το ποσό θα αποθηκευτεί σε όλες τις εκπτώσεις και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση για ένα τρέχον ή μελλοντικό τιμολόγιο για αυτόν τον πελάτη. +ConfirmConvertToReduc2=Το ποσό θα αποθηκευτεί μεταξύ όλων των εκπτώσεων και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση σε ένα τρέχον ή ένα μελλοντικό τιμολόγιο που αφορά αυτόν τον πελάτη. ConfirmConvertToReducSupplier=Θέλετε να μετατρέψετε αυτό το %s σε διαθέσιμη πίστωση; -ConfirmConvertToReducSupplier2=Το ποσό θα αποθηκευτεί σε όλες τις εκπτώσεις και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση για ένα τρέχον ή μελλοντικό τιμολόγιο για αυτόν τον προμηθευτή. +ConfirmConvertToReducSupplier2=Το ποσό θα αποθηκευτεί μεταξύ όλων των εκπτώσεων και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση σε ένα τρέχον ή ένα μελλοντικό τιμολόγιο για αυτόν τον προμηθευτή. SupplierPayments=Πληρωμές προμηθευτών ReceivedPayments=Ληφθείσες Πληρωμές ReceivedCustomersPayments=Ληφθείσες Πληρωμές από πελάτες @@ -86,26 +89,26 @@ PaymentModes=Τρόποι Πληρωμής DefaultPaymentMode=Προκαθορισμένος τρόπος πληρωμής DefaultBankAccount=Προεπιλεγμένος τραπεζικός λογαριασμός IdPaymentMode=Τρόπος Πληρωμής (id) -CodePaymentMode=Τρόπος Πληρωμής (code) -LabelPaymentMode=Τρόπος Πληρωμής (label) +CodePaymentMode=Τρόπος πληρωμής (κωδικός) +LabelPaymentMode=Τρόπος Πληρωμής (ετικέτα) PaymentModeShort=Τρόπος Πληρωμής PaymentTerm=Ορος πληρωμής PaymentConditions=Όροι πληρωμής PaymentConditionsShort=Όροι πληρωμής -PaymentAmount=Σύνολο πληρωμής -PaymentHigherThanReminderToPay=Η πληρωμή είναι μεγαλύτερη από το υπόλοιπο +PaymentAmount=Ποσό πληρωμής +PaymentHigherThanReminderToPay=Πληρωμή υψηλότερη από την υπενθύμιση πληρωμής HelpPaymentHigherThanReminderToPay=Προσοχή, το ποσό πληρωμής ενός ή περισσότερων λογαριασμών είναι μεγαλύτερο από το οφειλόμενο ποσό.
    Επεξεργαστείτε την καταχώρησή σας, ή διαφορετικά επιβεβαιώστε και αναλογιστείτε αν πρέπει να δημιουργήσετε ένα πιστωτικό σημείωμα για το επιπλέον ποσό που λάβατε για κάθε τιμολόγιο. HelpPaymentHigherThanReminderToPaySupplier=Προσοχή, το ποσό πληρωμής ενός ή περισσότερων λογαριασμών είναι μεγαλύτερο από το οφειλόμενο ποσό.
    Επεξεργαστείτε την καταχώρησή σας, διαφορετικά επιβεβαιώστε και σκεφτείτε να δημιουργήσετε ένα πιστωτικό σημείωμα για την επιπλέον πληρωμή για κάθε επιπλέον χρεωστικό τιμολόγιο. -ClassifyPaid=Χαρακτηρισμός ως 'Πληρωμένο'' -ClassifyUnPaid=Χαρακτηρισμός ως "Απλήρωτο'' -ClassifyPaidPartially=Χαρακτηρισμός ως 'Μερικώς εξοφλημένο' -ClassifyCanceled=Χαρακτηρισμός ως 'Εγκαταλελειμμένο' -ClassifyClosed=Χαρακτηρισμός ως 'Κλειστό' -ClassifyUnBilled=Ταξινομήστε τα «Μη τιμολογημένα» +ClassifyPaid=Ταξινόμηση ως 'Πληρωμένο'' +ClassifyUnPaid=Ταξινόμηση ως "Απλήρωτο'' +ClassifyPaidPartially=Ταξινόμηση ως 'Μερικώς εξοφλημένο' +ClassifyCanceled=Ταξινόμηση ως 'Εγκαταλελειμμένο' +ClassifyClosed=Ταξινόμηση ως 'Κλειστό' +ClassifyUnBilled=Ταξινόμηση ως 'Μη τιμολογημένο' CreateBill=Δημιουργία Τιμολογίου CreateCreditNote=Δημιουργία πιστωτικού τιμολογίου -AddBill=Δημιουργία τιμολογίου ή δημιουργία σημείωσης -AddToDraftInvoices=Προσθήκη στο πρόχειρο τιμολόγιο +AddBill=Δημιουργία τιμολογίου ή πιστωτικού σημειώματος +AddToDraftInvoices=Προσθήκη στο προσχέδιο τιμολογίου DeleteBill=Διαγραφή Τιμολογίου SearchACustomerInvoice=Αναζήτηση τιμολογίου πελάτη SearchASupplierInvoice=Αναζήτηση τιμολογίου προμηθευτή @@ -113,19 +116,19 @@ CancelBill=Ακύρωση Τιμολογίου SendRemindByMail=Αποστολή υπενθύμισης με email DoPayment=Εισαγωγή πληρωμής DoPaymentBack=Εισαγωγή επιστροφής χρημάτων -ConvertToReduc=Μαρκάρετε ως διαθέσιμη πίστωση -ConvertExcessReceivedToReduc=Μετατρέψτε το επιπλέον ποσό που καταβλήθηκε σε διαθέσιμη πίστωση +ConvertToReduc=Επισήμανση ως διαθέσιμη πίστωση +ConvertExcessReceivedToReduc=Μετατρέψτε το πλεόνασμα που ελήφθη σε διαθέσιμη πίστωση ConvertExcessPaidToReduc=Μετατρέψτε το επιπλέον ποσό που καταβλήθηκε σε διαθέσιμη έκπτωση EnterPaymentReceivedFromCustomer=Εισαγωγή πληρωμής από πελάτη -EnterPaymentDueToCustomer=Πληρωμή προς προμηθευτή +EnterPaymentDueToCustomer=Πληρωμή οφειλής πελάτη DisabledBecauseRemainderToPayIsZero=Ανενεργό λόγο μηδενικού υπολοίπου πληρωμής PriceBase=Βασική τιμή BillStatus=Κατάσταση τιμολογίου StatusOfGeneratedInvoices=Κατάσταση δημιουργηθέντων τιμολογίων -BillStatusDraft=Πρόχειρο (απαιτείται επικύρωση) +BillStatusDraft=Προσχέδιο (πρέπει να επικυρωθεί) BillStatusPaid=Πληρωμένο -BillStatusPaidBackOrConverted=Επιστροφή χρημάτων ή πιστωτική κάρτα -BillStatusConverted=Καταβάλλεται (έτοιμο προς κατανάλωση στο τελικό τιμολόγιο) +BillStatusPaidBackOrConverted=Επιστροφή χρημάτων πιστωτικού σημειώματος ή επισήμανση ως διαθέσιμης πίστωσης +BillStatusConverted=Πληρωμένο (έτοιμο για κατανάλωση στο τελικό τιμολόγιο) BillStatusCanceled=Εγκαταλελειμμένο BillStatusValidated=Επικυρωμένο (χρήζει πληρωμής) BillStatusStarted=Ξεκίνησε @@ -133,61 +136,62 @@ BillStatusNotPaid=Απλήρωτο BillStatusNotRefunded=Δεν έχει γίνει επιστροφή χρημάτων BillStatusClosedUnpaid=Κλειστό (απλήρωτο) BillStatusClosedPaidPartially=Πληρωμένο (μερικώς) -BillShortStatusDraft=Πρόχειρο +BillShortStatusDraft=Προσχέδιο BillShortStatusPaid=Πληρωμένο -BillShortStatusPaidBackOrConverted=Επιστρέφονται ή μετατρέπονται -Refunded=Επιστροφή χρημάτων -BillShortStatusConverted=Επεξεργάστηκε +BillShortStatusPaidBackOrConverted=Έχει επιστραφεί ή μετατραπεί +Refunded=Έγινε επιστροφή χρημάτων +BillShortStatusConverted=Πληρωμένο BillShortStatusCanceled=Εγκαταλελειμμένο BillShortStatusValidated=Επικυρωμένο BillShortStatusStarted=Ξεκίνησε BillShortStatusNotPaid=Απλήρωτο -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=Δεν έγινε επιστροφή χρημάτων BillShortStatusClosedUnpaid=Κλειστό BillShortStatusClosedPaidPartially=Πληρωμένο (μερικώς) PaymentStatusToValidShort=Προς επικύρωση ErrorVATIntraNotConfigured=Ο ενδοκοινοτικός αριθμός ΦΠΑ δεν έχει καθοριστεί ακόμη -ErrorNoPaiementModeConfigured=Δεν έχει οριστεί προεπιλεγμένος τύπος πληρωμής. Μεταβείτε στην επιλογή ενότητας Τιμολόγιο για να διορθώσετε αυτό το θέμα. -ErrorCreateBankAccount=Δημιουργήστε έναν τραπεζικό λογαριασμό και, στη συνέχεια, μεταβείτε στο πλαίσιο εγκατάστασης της ενότητας Τιμολόγιο για να ορίσετε τους τύπους πληρωμής +ErrorNoPaiementModeConfigured=Δεν έχει οριστεί προεπιλεγμένος τύπος πληρωμής. Μεταβείτε στη ρύθμιση της ενότητας τιμολογίου για να το διορθώσετε. +ErrorCreateBankAccount=Δημιουργήστε έναν τραπεζικό λογαριασμό και, στη συνέχεια, μεταβείτε στη ρύθμιση της ενότητας Τιμολόγιο για να ορίσετε τους τύπους πληρωμής ErrorBillNotFound=Το τιμολόγιο %s δεν υπάρχει ErrorInvoiceAlreadyReplaced=Σφάλμα, προσπαθήσατε να επικυρώσετε ένα τιμολόγιο για να αντικαταστήσετε το τιμολόγιο %s. Αλλά αυτό έχει ήδη αντικατασταθεί από το τιμολόγιο %s. -ErrorDiscountAlreadyUsed=Error, discount already used -ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount -ErrorInvoiceOfThisTypeMustBePositive=Σφάλμα, αυτός ο τύπος τιμολογίου πρέπει να έχει ένα ποσό εκτός του φόρου θετικό (ή null) +ErrorDiscountAlreadyUsed=Σφάλμα, η έκπτωση έχει ήδη χρησιμοποιηθεί +ErrorInvoiceAvoirMustBeNegative=Σφάλμα, το σωστό τιμολόγιο πρέπει να έχει αρνητικό ποσό +ErrorInvoiceOfThisTypeMustBePositive=Σφάλμα, αυτός ο τύπος τιμολογίου πρέπει να έχει ένα θετικό ποσό εκτός του φόρου θετικό (ή μηδέν) ErrorCantCancelIfReplacementInvoiceNotValidated=Σφάλμα, δεν μπορείτε να ακυρώσετε ένα τιμολόγιο που έχει αντικατασταθεί από ένα άλλο που είναι ακόμα σε κατάσταση προχείρου -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Αυτό το μέρος ή άλλο χρησιμοποιείται ήδη οπότε οι σειρές έκπτωσης δεν μπορούν να καταργηθούν. +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Αυτό ή ένα άλλο μέρος χρησιμοποιείται ήδη, επομένως η σειρά εκπτώσεων δεν μπορεί να αφαιρεθεί. ErrorInvoiceIsNotLastOfSameType=Σφάλμα: Η ημερομηνία του τιμολογίου %s είναι %s. Θα πρέπει να είναι παλαιότερη η ίδια με την τελευταία καταχωρημένη ημερομηνία για τον ίδιο τύπο τιμολογίων (%s). Παρακαλώ αλλάξτε την ημερομηνία του τιμολογίου BillFrom=Από BillTo=Στοιχεία Πελάτη +ShippingTo=Αποστολή σε ActionsOnBill=Ενέργειες στο τιμολόγιο RecurringInvoiceTemplate=Πρότυπο / Επαναλαμβανόμενο τιμολόγιο -NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation. -FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. -NotARecurringInvoiceTemplate=Not a recurring template invoice +NoQualifiedRecurringInvoiceTemplateFound=Κανένα πρότυπο επαναλαμβανόμενου τιμολογίου δεν είναι κατάλληλο για δημιουργία. +FoundXQualifiedRecurringInvoiceTemplate=Βρέθηκαν %s πρότυπα επαναλαμβανόμενων τιμολογίων κατάλληλα για δημιουργία. +NotARecurringInvoiceTemplate=Δεν είναι πρότυπο επαναλαμβανόμενου τιμολογίου NewBill=Νέο τιμολόγιο -LastBills=Latest %s invoices -LatestTemplateInvoices=Τα τελευταία τιμολόγια προτύπων %s -LatestCustomerTemplateInvoices=Τελευταία τιμολόγια προτύπου πελάτη %s -LatestSupplierTemplateInvoices=Τελευταία τιμολόγια προτύπου προμηθευτή %s -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Τελευταία τιμολόγια προμηθευτών %s +LastBills=Τελευταία %s τιμολόγια +LatestTemplateInvoices=Τελευταία %s πρότυπα τιμολογίων +LatestCustomerTemplateInvoices=Τελευταία %s πρότυπα τιμολογίων πελατών +LatestSupplierTemplateInvoices=Τελευταία %s πρότυπα τιμολογίων προμηθευτή +LastCustomersBills=Τελευταία %s τιμολόγια πελατών +LastSuppliersBills=Τελευταία %s τιμολόγια προμηθευτών AllBills=Όλα τα τιμολόγια -AllCustomerTemplateInvoices=Όλα τα τιμολόγια προτύπων +AllCustomerTemplateInvoices=Όλα τα πρότυπα τιμολογίων OtherBills=Άλλα τιμολόγια DraftBills=Προσχέδια τιμολογίων -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Σχέδιο τιμολόγια προμηθευτή +CustomersDraftInvoices=Προσχέδια τιμολογίων πελατών +SuppliersDraftInvoices=Προσχέδια τιμολογίων προμηθευτων Unpaid=Απλήρωτο ErrorNoPaymentDefined=Σφάλμα Δεν έχει οριστεί πληρωμή -ConfirmDeleteBill=Είσαστε σίγουρος ότι θέλετε να διαγράψετε αυτό το τιμολόγιο; +ConfirmDeleteBill=Είσαστε σίγουροι ότι θέλετε να διαγράψετε αυτό το τιμολόγιο; ConfirmValidateBill=Είστε σίγουροι πως θέλετε να επικυρώσετε αυτό το τιμολόγιο με αριθμό παραστατικού %s; -ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? -ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? -ConfirmCancelBill=Are you sure you want to cancel invoice %s? -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? -ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=Αυτό το τιμολόγιο δεν έχει καταβληθεί πλήρως. Ποιος είναι ο λόγος για το κλείσιμο αυτού του τιμολογίου; -ConfirmClassifyPaidPartiallyReasonAvoir=Το υπόλοιπο που δεν πληρώθηκε (%s %s) είναι μια έκπτωση που δόθηκε επειδή η πληρωμή έγινε πριν από τη λήξη. Κανονίζω τον ΦΠΑ με πιστωτικό σημείωμα. +ConfirmUnvalidateBill=Είστε σίγουροι ότι θέλετε να αλλάξετε το τιμολόγιο %s σε κατάσταση προσχεδίου; +ConfirmClassifyPaidBill=Είστε σίγουροι ότι θέλετε να ορισετε το τιμολόγιο %s ως πληρωμένο; +ConfirmCancelBill=Είστε σίγουροι ότι θέλετε να ακυρώσετε το τιμολόγιο %s; +ConfirmCancelBillQuestion=Για πιο λόγο θέλετε να Ταξινομήσετε αυτό το τιμολόγιο ως "εγκαταλελειμμένο"; +ConfirmClassifyPaidPartially=Είστε σίγουροι ότι θέλετε να ορίσετε το τιμολόγιο %s ως πληρωμένο; +ConfirmClassifyPaidPartiallyQuestion=Αυτό το τιμολόγιο δεν έχει εξοφληθεί πλήρως. Ποιος είναι ο λόγος για το κλείσιμο αυτού του τιμολογίου; +ConfirmClassifyPaidPartiallyReasonAvoir=Το υπόλοιπο που δεν πληρώθηκε (%s %s) είναι μια έκπτωση που δόθηκε επειδή η πληρωμή έγινε πριν από τη λήξη. Τακτοποιώ τον Φ.Π.Α. με πιστωτικό σημείωμα. ConfirmClassifyPaidPartiallyReasonDiscount=Το υπόλοιπο που δεν πληρώθηκε (%s %s) είναι μια έκπτωση που δόθηκε επειδή η πληρωμή έγινε πριν από τη λήξη. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Παραμένουν απλήρωτα (%s %s) έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Δέχομαι να χάσω το ΦΠΑ για την έκπτωση αυτή. ConfirmClassifyPaidPartiallyReasonDiscountVat=Παραμένουν απλήρωτα (%s %s) έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Έχω την επιστροφή του ΦΠΑ για την έκπτωση αυτή χωρίς πιστωτικό τιμολόγιο. @@ -195,89 +199,89 @@ ConfirmClassifyPaidPartiallyReasonBadCustomer=Κακός πελάτης ConfirmClassifyPaidPartiallyReasonBankCharge=Παρακράτηση από τράπεζα (ενδιάμεσες τραπεζικές προμήθειες) ConfirmClassifyPaidPartiallyReasonProductReturned=Τα προϊόντα επιστράφηκαν μερικώς ConfirmClassifyPaidPartiallyReasonOther=Ποσό εγκαταλελειμμένο για άλλους λόγους -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Αυτή η επιλογή είναι δυνατή αν έχουν δοθεί κατάλληλα σχόλια στο τιμολόγιό σας. (Παράδειγμα «Μόνο ο φόρος που αντιστοιχεί στην πράγματι καταβληθείσα τιμή παρέχει δικαίωμα προς έκπτωση») -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Σε ορισμένες χώρες, αυτή η επιλογή μπορεί να είναι δυνατή μόνο εάν το τιμολόγιό σας περιέχει σωστές σημειώσεις. +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Αυτή η επιλογή είναι δυνατή αν έχουν δοθεί κατάλληλα σχόλια στο τιμολόγιο σας. (Παράδειγμα «Μόνο ο φόρος που αντιστοιχεί στην πραγματικά καταβληθείσα τιμή παρέχει δικαίωμα προς παρακράτηση») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Σε ορισμένες χώρες, αυτή η επιλογή μπορεί να είναι δυνατή μόνο εάν το τιμολόγιο σας περιέχει σωστές σημειώσεις. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Επιλέξτε αυτή την επιλογή αν οι υπόλοιπες δεν ταιριάζουν ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Ένας κακός πελάτης είναι ένας πελάτης που αρνείται να πληρώσει το χρέος του. -ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned +ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Αυτή η επιλογή χρησιμοποιείται όταν η πληρωμή δεν έχει ολοκληρωθεί επειδή ορισμένα από τα προϊόντα επιστράφηκαν ConfirmClassifyPaidPartiallyReasonBankChargeDesc=Το μη καταβληθέν ποσό είναι προμήθειες μεσάζουσας τράπεζας , που αφαιρούνται απευθείας από το σωστό ποσό που κατέβαλε ο Πελάτης. -ConfirmClassifyPaidPartiallyReasonOtherDesc=Χρησιμοποιήστε αυτήν την επιλογή αν δεν είναι κατάλληλες όλες οι άλλες, για παράδειγμα στην ακόλουθη περίπτωση:
    - η πληρωμή δεν ολοκληρώθηκε επειδή ορισμένα προϊόντα αποστέλλονται πίσω
    - το ποσό που ζητήθηκε είναι πολύ σημαντικό επειδή μια έκπτωση ξεχάστηκε
    Σε όλες τις περιπτώσεις, η υπέρμετρη αξίωση πρέπει να διορθωθεί στο λογιστικό σύστημα δημιουργώντας ένα πιστωτικό σημείωμα. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Χρησιμοποιήστε αυτήν την επιλογή αν όλες οι άλλες δεν είναι κατάλληλες, για παράδειγμα στην ακόλουθη περίπτωση:
    - η πληρωμή δεν ολοκληρώθηκε επειδή ορισμένα προϊόντα επιστράφηκαν
    - το ποσό που ζητήθηκε είναι πολύ μεγάλο επειδή μια έκπτωση ξεχάστηκε
    Σε όλες τις περιπτώσεις, η υπέρμετρη αξίωση πρέπει να διορθωθεί στο λογιστικό σύστημα δημιουργώντας ένα πιστωτικό σημείωμα. ConfirmClassifyAbandonReasonOther=Άλλος -ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ConfirmClassifyAbandonReasonOtherDesc=Αυτή η επιλογή θα χρησιμοποιηθεί σε όλες τις άλλες περιπτώσεις. Για παράδειγμα, επειδή σκοπεύετε να δημιουργήσετε ένα τιμολόγιο αντικατάστασης. +ConfirmCustomerPayment=Επιβεβαιώνετε αυτήν την καταχώριση πληρωμής για %s %s; +ConfirmSupplierPayment=Επιβεβαιώνετε αυτήν την καταχώριση πληρωμής για %s %s; +ConfirmValidatePayment=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την πληρωμή; Καμία αλλαγή δεν θα μπορεί να γίνει μετά την επικύρωση της πληρωμής. ValidateBill=Επικύρωση τιμολογίου -UnvalidateBill=Μη επαληθευμένο τιμολόγιο +UnvalidateBill=Κατάργηση επικύρωσης τιμολογίου NumberOfBills=Αριθμός τιμολογίων NumberOfBillsByMonth=Αριθμός τιμολογίων ανά μήνα AmountOfBills=Ποσό τιμολογίων AmountOfBillsHT=Ποσό τιμολογίων (καθαρό από φόρο) -AmountOfBillsByMonthHT=Ποσό των τιμολογίων ανά μήνα (μετά από φόρους) +AmountOfBillsByMonthHT=Ποσό των τιμολογίων ανά μήνα (καθαρό από φόρους) UseSituationInvoices=Να επιτρέπεται το τιμολόγιο κατάστασης UseSituationInvoicesCreditNote=Επιτρέψτε το πιστωτικό σημείωμα τιμολογίου κατάστασης -Retainedwarranty=Διατηρημένη εγγύηση -AllowedInvoiceForRetainedWarranty=Διατηρούμενη εγγύηση που μπορεί να χρησιμοποιηθεί στους ακόλουθους τύπους τιμολογίων -RetainedwarrantyDefaultPercent=Διατηρημένο ποσοστό εξόφλησης εγγύησης -RetainedwarrantyOnlyForSituation=Διαθέστε την "διατηρούμενη εγγύηση" διαθέσιμη μόνο για τιμολόγια κατάστασης -RetainedwarrantyOnlyForSituationFinal=Σε τιμολόγια κατάστασης, η παγκόσμια έκπτωση "διατηρούμενη εγγύηση" εφαρμόζεται μόνο στην τελική κατάσταση -ToPayOn=Να πληρώσετε για %s -toPayOn=να πληρώσει για %s -RetainedWarranty=Διατηρημένη εγγύηση -PaymentConditionsShortRetainedWarranty=Διατηρημένοι όροι πληρωμής εγγύησης +Retainedwarranty=Κρατημένη εγγύηση +AllowedInvoiceForRetainedWarranty=Κρατημένη εγγύηση που μπορεί να χρησιμοποιηθεί στους ακόλουθους τύπους τιμολογίων +RetainedwarrantyDefaultPercent=Προκαθορισμένο ποσοστό κρατημένης εγγύησης +RetainedwarrantyOnlyForSituation=Κάντε την "Κρατημένη εγγύηση" διαθέσιμη μόνο για τιμολόγια κατάστασης +RetainedwarrantyOnlyForSituationFinal=Στα τιμολόγια κατάστασης η συνολική έκπτωση της "Κρατημένης εγγύησης" εφαρμόζεται μόνο στην τελική κατάσταση +ToPayOn=Για πληρωμή στο %s +toPayOn=Για πληρωμή στο %s +RetainedWarranty=Κρατημένη εγγύηση +PaymentConditionsShortRetainedWarranty=Όροι πληρωμής Κρατημένης εγγύησης DefaultPaymentConditionsRetainedWarranty=Προεπιλεγμένοι όροι πληρωμής της εγγύησης setPaymentConditionsShortRetainedWarranty=Ορίστε τους όρους πληρωμής της εγγύησης -setretainedwarranty=Ορίστε την παραληφθείσα εγγύηση -setretainedwarrantyDateLimit=Ορίστε το όριο ημερομηνίας εγγύησης που διατηρήθηκε -RetainedWarrantyDateLimit=Διατηρημένο όριο ημερομηνίας εγγύησης +setretainedwarranty=Ορίστε την εγγύηση +setretainedwarrantyDateLimit=Ορίστε το όριο ημερομηνίας της εγγύησης +RetainedWarrantyDateLimit=Όριο ημερομηνίας εγγύησης RetainedWarrantyNeed100Percent=Το τιμολόγιο κατάστασης πρέπει να είναι στο 100%% για να εμφανίζεται σε PDF AlreadyPaid=Ήδη πληρωμένο -AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Ήδη πληρωμένο (χωρίς πιστώσεις ή καταθέσεις) +AlreadyPaidBack=Έχουν ήδη επιστραφεί +AlreadyPaidNoCreditNotesNoDeposits=Έχει ήδη πληρωθεί (χωρίς πιστωτικές σημειώσεις και προκαταβολές) Abandoned=Εγκαταλελειμμένο RemainderToPay=Παραμένουν απλήρωτα RemainderToPayMulticurrency=Παραμένει απλήρωτο, αρχικό νόμισμα RemainderToTake=Υπόλοιπο ποσό να ληφθεί RemainderToTakeMulticurrency=Υπολειπόμενο ποσό προς λήψη, αρχικό νόμισμα -RemainderToPayBack=Remaining amount to refund -RemainderToPayBackMulticurrency=Υπόλοιπο ποσό για επιστροφή χρημάτων, αρχικό νόμισμα -NegativeIfExcessRefunded=αρνητικό εάν επιστραφεί επιπλέον ποσό +RemainderToPayBack=Το υπόλοιπο ποσό για επιστροφή χρημάτων +RemainderToPayBackMulticurrency=Υπόλοιπο για επιστροφή χρημάτων, αρχικό νόμισμα +NegativeIfExcessRefunded=αρνητικό εάν επιστραφεί το επιπλέον ποσό Rest=Εκκρεμής AmountExpected=Ποσό που ζητήθηκε -ExcessReceived=Περίσσεια που λήφθηκε -ExcessReceivedMulticurrency=Επιπλέον ποσό που ελήφθη, αρχικό νόμισμα -NegativeIfExcessReceived=αρνητικό εάν ληφθεί πλεονάζων -ExcessPaid=Πληρωμή υπέρβασης -ExcessPaidMulticurrency=Επιπλέον ποσό πληρωμένο, αρχικό νόμισμα -EscompteOffered=Discount offered (payment before term) +ExcessReceived=Επιπλέον ποσό που εισπράχθηκε +ExcessReceivedMulticurrency=Επιπλέον ποσό που εισπράχθηκε, αρχικό νόμισμα +NegativeIfExcessReceived=αρνητικό εάν εισπράχθηκε παραπάνω +ExcessPaid=Πληρώθηκε το επιπλέον ποσό +ExcessPaidMulticurrency=Πληρώθηκε το επιπλέον ποσό, αρχικό νόμισμα +EscompteOffered=Προσφέρθηκε έκπτωση (πληρωμή πριν από την προθεσμία) EscompteOfferedShort=Έκπτωση SendBillRef=Υποβολή των τιμολογίων %s SendReminderBillRef=Υποβολή των τιμολογίων %s (υπενθύμιση) SendPaymentReceipt=Υποβολή απόδειξης πληρωμής %s -NoDraftBills=Δεν υπάρχουν προσχέδια -NoOtherDraftBills=Δεν υπάρχουν άλλα προσχέδια +NoDraftBills=Δεν υπάρχουν προσχέδια τιμολογίων +NoOtherDraftBills=Δεν υπάρχουν άλλα προσχέδια τιμολογίων NoDraftInvoices=Δεν υπάρχουν προσχέδια τιμολογίων -RefBill=Κωδ. τιμολογίου +RefBill=Αναφ. τιμολογίου ToBill=Προς τιμολόγηση RemainderToBill=Υπόλοιπο προς χρέωση SendBillByMail=Αποστολή τιμολογίου με email SendReminderBillByMail=Αποστολή υπενθύμισης με email RelatedCommercialProposals=Σχετικές προσφορές -RelatedRecurringCustomerInvoices=Related recurring customer invoices +RelatedRecurringCustomerInvoices=Σχετικά επαναλαμβανόμενα τιμολόγια πελατών MenuToValid=Προς επικύρωση -DateMaxPayment=Προθεσμία Πληρωμής +DateMaxPayment=Προθεσμία Πληρωμής ως DateInvoice=Ημερομηνία τιμολογίου -DatePointOfTax=Point of tax +DatePointOfTax=Ημερομηνία φορολογικής επιλεξιμότητας NoInvoice=Δεν υπάρχει τιμολόγιο NoOpenInvoice=Χωρίς ανοιχτό τιμολόγιο NbOfOpenInvoices=Αριθμός ανοιχτών τιμολογίων -ClassifyBill=Κατηγοριοποίηση Τιμολογίου +ClassifyBill=Ταξινόμηση Τιμολογίου SupplierBillsToPay=Μη πληρωθέντα τιμολόγια προμηθευτή CustomerBillsUnpaid=Ανεξόφλητα τιμολόγια πελάτη -NonPercuRecuperable=Non-recoverable +NonPercuRecuperable=Μη ανακτήσιμο SetConditions=Ορίστε τους όρους πληρωμής SetMode=Ορίστε τον τύπο πληρωμής -SetRevenuStamp=Set revenue stamp +SetRevenuStamp=Ορισμός χαρτοσήμου εσόδων Billed=Τιμολογημένο RecurringInvoices=Επαναλαμβανόμενα τιμολόγια RecurringInvoice=Επαναλαμβανόμενο τιμολόγιο @@ -285,128 +289,128 @@ RepeatableInvoice=Πρότυπο τιμολογίου RepeatableInvoices=Πρότυπο τιμολόγιο RecurringInvoicesJob=Δημιουργία επαναλαμβανόμενων τιμολογίων ( τιμολόγια πωλήσεων) RecurringSupplierInvoicesJob=Δημιουργία επαναλαμβανόμενων τιμολογίων ( τιμολόγια αγορών) -Repeatable=Πρώτυπο -Repeatables=Πρώτυπα +Repeatable=Πρότυπο +Repeatables=Πρότυπα ChangeIntoRepeatableInvoice=Μετατροπή σε πρότυπο τιμολόγιο -CreateRepeatableInvoice=Δημιουργία πρότυπο τιμολόγιο +CreateRepeatableInvoice=Δημιουργία πρότυπου τιμολογίου CreateFromRepeatableInvoice=Δημιουργία από πρότυπο τιμολόγιο CustomersInvoicesAndInvoiceLines=Τιμολόγια πελατών και λεπτομέρειες τιμολογίου -CustomersInvoicesAndPayments=Πληρωμές και τιμολόγια πελατών +CustomersInvoicesAndPayments=Τιμολόγια και πληρωμές πελατών ExportDataset_invoice_1=Τιμολόγια πελατών και λεπτομέρειες τιμολογίου -ExportDataset_invoice_2=Πληρωμές και τιμολόγια πελατών -ProformaBill=Proforma Bill: +ExportDataset_invoice_2=Τιμολόγια και πληρωμές πελατών +ProformaBill=Προτιμολόγιο: Reduction=Μείωση ReductionShort=Έκπτωση Reductions=Μειώσεις ReductionsShort=Έκπτωση Discounts=Εκπτώσεις -AddDiscount=Δημιουργία απόλυτη έκπτωση -AddRelativeDiscount=Δημιουργία σχετική έκπτωση +AddDiscount=Δημιουργία έκπτωσης +AddRelativeDiscount=Δημιουργία σχετικής έκπτωσης EditRelativeDiscount=Επεξεργασία σχετικής έκπτωσης AddGlobalDiscount=Προσθήκη έκπτωσης EditGlobalDiscounts=Επεξεργασία απόλυτη εκπτώσεις AddCreditNote=Δημιουργία πιστωτικού τιμολογίου -ShowDiscount=Εμφάνιση εκπτώσεων -ShowReduc=Δείξτε την έκπτωση +ShowDiscount=Εμφάνιση έκπτωσης +ShowReduc=Εμφάνιση έκπτωσης ShowSourceInvoice=Εμφάνιση του τιμολογίου προέλευσης RelativeDiscount=Σχετική έκπτωση GlobalDiscount=Συνολική έκπτωση -CreditNote=Πίστωση -CreditNotes=Πιστώσεις -CreditNotesOrExcessReceived=Πιστωτικές σημειώσεις ή υπερβολική παραλαβή -Deposit=Κατάθεση -Deposits=Καταθέσεις +CreditNote=Πιστωτικό σημείωμα +CreditNotes=Πιστωτικές σημειώσεις +CreditNotesOrExcessReceived=Πιστωτικές σημειώσεις ή επιπλέον εισπραχθέν +Deposit=Προκαταβολή +Deposits=Προκαταβολές DiscountFromCreditNote=Έκπτωση από το πιστωτικό τιμολόγιο %s -DiscountFromDeposit=Πληρωμές από το τιμολόγιο κατάθεσης %s -DiscountFromExcessReceived=Πληρωμές που υπερβαίνουν το τιμολόγιο %s -DiscountFromExcessPaid=Πληρωμές που υπερβαίνουν το τιμολόγιο %s -AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +DiscountFromDeposit=Προκαταβολές από τιμολόγιο %s +DiscountFromExcessReceived=Πληρωμές πάνω από την αξία του τιμολογίου %s +DiscountFromExcessPaid=Πληρωμές πάνω από την αξία του τιμολογίου %s +AbsoluteDiscountUse=Αυτό το είδος πίστωσης μπορεί να χρησιμοποιηθεί στο τιμολόγιο πριν από την επικύρωσή του +CreditNoteDepositUse=Το τιμολόγιο πρέπει να επικυρωθεί για να χρησιμοποιήσετε αυτού του είδους τις πιστώσεις NewGlobalDiscount=Νέα απόλυτη έκπτωση NewRelativeDiscount=Νέα σχετική έκπτωση DiscountType=Τύπος έκπτωσης NoteReason=Σημείωση/Αιτία ReasonDiscount=Αιτία -DiscountOfferedBy=Παραχωρούνται από -DiscountStillRemaining=Εκπτώσεις ή διαθέσιμες πιστώσεις +DiscountOfferedBy=Εγκρίθηκε από +DiscountStillRemaining=Διαθέσιμες εκπτώσεις ή πιστώσεις DiscountAlreadyCounted=Εκπτώσεις ή πιστώσεις που έχουν ήδη καταναλωθεί CustomerDiscounts=Εκπτώσεις πελατών SupplierDiscounts=Εκπτώσεις προμηθευτών BillAddress=Διεύθυνση χρέωσης HelpEscompte=Αυτή η έκπτωση είναι μια έκπτωση που παραχωρήθηκε στον πελάτη, επειδή η πληρωμή έγινε πριν από την ημερομηνία λήξης. HelpAbandonBadCustomer=Το ποσό αυτό έχει εγκαταλειφθεί (ο πελάτης λέγεται ότι είναι κακός πελάτης) και θεωρείται εξαιρετική ζημία. -HelpAbandonOther=Το ποσό αυτό έχει εγκαταλειφθεί επειδή ήταν λάθος (λάθος πελάτης ή τιμολόγιο αντικαταστάθηκε από άλλο, για παράδειγμα) +HelpAbandonOther=Το ποσό αυτό έχει εγκαταλειφθεί επειδή ήταν λάθος (για παράδειγμα λάθος πελάτης ή τιμολόγιο που αντικαταστάθηκε από άλλο, ) IdSocialContribution=Κοινωνική εισφορά / Φορολογικά id πληρωμής PaymentId=Κωδ. Πληρωμής PaymentRef=Αναφ. πληρωμής -InvoiceId=Κωδ. Τιμολογίου +InvoiceId=Αναγνωριστικό τιμολογίου InvoiceRef=Αρ. Τιμολογίου -InvoiceDateCreation=Ημερ. δημιουργίας τιμολογίου +InvoiceDateCreation=Ημερομηνία δημιουργίας τιμολογίου InvoiceStatus=Κατάσταση τιμολογίου InvoiceNote=Σημείωση τιμολογίου InvoicePaid=Το τιμολόγιο εξοφλήθηκε -InvoicePaidCompletely=Πληρωμή Εξ'ολοκλήρου -InvoicePaidCompletelyHelp=Τιμολόγιο που πληρώθηκε εξ' ολοκλήρου. Αυτό εξαιρεί τα τιμολόγια που πληρώθηκαν τμηματικά. Για να λάβετε τον κατάλογο όλων των τιμολογίων «κλειστών» ή μη κλειστών, προτιμήστε να χρησιμοποιήσετε ένα φίλτρο στην κατάσταση του τιμολογίου. -OrderBilled=Παραγγελία χρεώνεται +InvoicePaidCompletely=Πληρώθηκε πλήρως +InvoicePaidCompletelyHelp=Τιμολόγιο που πληρώθηκε εξ' ολοκλήρου. Αυτό εξαιρεί τα τιμολόγια που πληρώθηκαν τμηματικά. Για να λάβετε τον κατάλογο όλων των ¨κλειστών" ή μη "κλειστών" τιμολογίων , προτιμήστε να χρησιμοποιήσετε ένα φίλτρο στην κατάσταση του τιμολογίου. +OrderBilled=Η παραγγελία τιμολογήθηκε DonationPaid=Η δωρεά πληρώθηκε PaymentNumber=Αριθμός πληρωμής -RemoveDiscount=Αφαίρεση έκπτωσης -WatermarkOnDraftBill=Υδατογράφημα σε προσχέδια +RemoveDiscount=Κατάργηση της έκπτωσης +WatermarkOnDraftBill=Υδατογράφημα σε πρόχειρα τιμολόγια (τίποτα αν είναι κενό) InvoiceNotChecked=Δεν έχει επιλεγεί τιμολόγιο -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? -DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced +ConfirmCloneInvoice=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτό το τιμολόγιο %s ; +DisabledBecauseReplacedInvoice=Η ενέργεια απενεργοποιήθηκε επειδή το τιμολόγιο έχει αντικατασταθεί DescTaxAndDividendsArea=Ο τομέας αυτός παρουσιάζει μια σύνοψη όλων των πληρωμών που έγιναν για ειδικά έξοδα. Εδώ περιλαμβάνονται μόνο οι εγγραφές με πληρωμές κατά τη διάρκεια του καθορισμένου έτους. NbOfPayments=Αριθμός πληρωμών SplitDiscount=Χωρισμός έκπτωσης σε δύο μέρη -ConfirmSplitDiscount=Είστε βέβαιοι ότι θέλετε να χωρίσετε αυτή την έκπτωση %s %s σε δύο μικρότερες εκπτώσεις; -TypeAmountOfEachNewDiscount=Μέγεθος εισόδου για κάθε ένα από τα δύο μέρη: +ConfirmSplitDiscount=Είστε σίγουροι ότι θέλετε να χωρίσετε αυτή την έκπτωση %s %s σε δύο μικρότερες εκπτώσεις; +TypeAmountOfEachNewDiscount=Καταχωρίστε το ποσό για καθένα από τα δύο μέρη: TotalOfTwoDiscountMustEqualsOriginal=Το σύνολο των δύο νέων εκπτώσεων πρέπει να είναι ίσο με το αρχικό ποσό έκπτωσης. -ConfirmRemoveDiscount=Are you sure you want to remove this discount? -RelatedBill=Σχετιζόμενο τιμολόγιο -RelatedBills=Σχετιζόμενα τιμολόγια +ConfirmRemoveDiscount=Είστε σίγουροι ότι θέλετε να καταργήσετε αυτήν την έκπτωση; +RelatedBill=Σχετικό τιμολόγιο +RelatedBills=Σχετικά τιμολόγια RelatedCustomerInvoices=Σχετικά τιμολόγια πελατών RelatedSupplierInvoices=Σχετικά τιμολόγια προμηθευτή LatestRelatedBill=Τελευταίο σχετικό τιμολόγιο -WarningBillExist=Προειδοποίηση, υπάρχει ένα ή περισσότερα τιμολόγια +WarningBillExist=Προειδοποίηση, υπάρχουν ήδη ένα ή περισσότερα τιμολόγια MergingPDFTool=Συγχώνευση εργαλείο PDF AmountPaymentDistributedOnInvoice=Ποσό πληρωμής κατανεμημένο στο τιμολόγιο PaymentOnDifferentThirdBills=Επιτρέψτε πληρωμές σε διαφορετικούς λογαριασμούς τρίτων, αλλά στην ίδια μητρική εταιρεία -PaymentNote=Σημείωση πληρωμής -ListOfPreviousSituationInvoices=List of previous situation invoices -ListOfNextSituationInvoices=List of next situation invoices +PaymentNote=Σημείωμα πληρωμής +ListOfPreviousSituationInvoices=Λίστα προηγούμενων τιμολογίων κατάστασης +ListOfNextSituationInvoices=Λίστα επόμενων τιμολογίων κατάστασης ListOfSituationInvoices=Λίστα τιμολογίων κατάστασης CurrentSituationTotal=Συνολική τρέχουσα κατάσταση -DisabledBecauseNotEnouthCreditNote=Για να καταργήσετε ένα τιμολόγιο κατάστασης από τον κύκλο, αυτό το πιστωτικό σημείωμα του τιμολογίου πρέπει να καλύπτει αυτό το σύνολο τιμολογίων +DisabledBecauseNotEnouthCreditNote=Για να καταργήσετε ένα τιμολόγιο κατάστασης από τον κύκλο, το σύνολο αυτού του πιστωτικού τιμολογίου πρέπει να καλύπτει το σύνολο αυτού του τιμολογίου RemoveSituationFromCycle=Καταργήστε αυτό το τιμολόγιο από τον κύκλο -ConfirmRemoveSituationFromCycle=Καταργήστε αυτό το τιμολόγιο %s από τον κύκλο; +ConfirmRemoveSituationFromCycle=Θέλετε να καταργήστε αυτό το τιμολόγιο %s από τον κύκλο; ConfirmOuting=Επιβεβαιώστε την έξοδο FrequencyPer_d=Κάθε %s ημέρες FrequencyPer_m=Κάθε %s μήνες FrequencyPer_y=Κάθε %s χρόνια FrequencyUnit=Μονάδα συχνότητας -toolTipFrequency=Παραδείγματα:
    Set 7, Day : δώστε ένα νέο τιμολόγιο κάθε 7 ημέρες
    Ορίστε 3, Μήνας : δώστε ένα νέο τιμολόγιο κάθε 3 μήνες +toolTipFrequency=Παραδείγματα:
    Ορισμός 7, Ημέρα :δινει ένα νέο τιμολόγιο κάθε 7 ημέρες
    Ορισμός 3, μήνα: δίνει ένα νέο τιμολόγιο ανά 3 μηνες NextDateToExecution=Ημερομηνία δημιουργίας του επόμενου τιμολογίου -NextDateToExecutionShort=Ημερομηνία επόμενης γεν. +NextDateToExecutionShort=Ημερομηνία επόμενης δημ. DateLastGeneration=Ημερομηνία τελευταίας δημιουργίας -DateLastGenerationShort=Ημερομηνία τελευταίας γεν. -MaxPeriodNumber=Μέγιστη. αριθμός δημιουργίας τιμολογίου -NbOfGenerationDone=Αριθμός γεννήσεων τιμολογίων που έχουν ήδη γίνει +DateLastGenerationShort=Ημερομηνία τελευταίας δημ. +MaxPeriodNumber=Μέγιστος αριθμός δημιουργίας τιμολογίων +NbOfGenerationDone=Αριθμός τιμολογίων που έχουν ήδη δημιουργηθει NbOfGenerationOfRecordDone=Αριθμός δημιουργίας εγγραφών που έχουν ήδη γίνει -NbOfGenerationDoneShort=Αριθμός γενεάς που έγινε -MaxGenerationReached=Ο μέγιστος αριθμός γενεών έφτασε +NbOfGenerationDoneShort=Αριθμός δημιουργιών που έχουν γίνει +MaxGenerationReached=Συμπληρώθηκε ο μέγιστος αριθμός δημιουργιών InvoiceAutoValidate=Αυτόματη επικύρωση τιμολογίων -GeneratedFromRecurringInvoice=Generated from template recurring invoice %s -DateIsNotEnough=Date not reached yet -InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s -GeneratedFromTemplate=Δημιουργήθηκε από το τιμολόγιο προτύπου %s +GeneratedFromRecurringInvoice=Δημιουργήθηκε από το πρότυπο επαναλαμβανόμενο τιμολόγιο %s +DateIsNotEnough=Η ημερομηνία δεν έχει φτάσει ακόμα +InvoiceGeneratedFromTemplate=Τιμολόγιο %s που δημιουργήθηκε από το επαναλαμβανόμενο πρότυπο τιμολόγιο %s +GeneratedFromTemplate=Δημιουργήθηκε από το πρότυπο τιμολόγιο %s WarningInvoiceDateInFuture=Προειδοποίηση, η ημερομηνία τιμολογίου είναι μεγαλύτερη από την τρέχουσα ημερομηνία -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +WarningInvoiceDateTooFarInFuture=Προειδοποίηση, η ημερομηνία τιμολογίου είναι αρκετά μεταγενέστερη από την τρέχουσα ημερομηνία ViewAvailableGlobalDiscounts=Δείτε τις διαθέσιμες εκπτώσεις -GroupPaymentsByModOnReports=Ομαδικές πληρωμές κατά τρόπο λειτουργίας στις αναφορές +GroupPaymentsByModOnReports=Ομαδικές πληρωμές ανά τρόπο λειτουργίας στις αναφορές # PaymentConditions Statut=Κατάσταση -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Άμεσα Πληρωτέο +PaymentConditionRECEP=Άμεσα Πληρωτέο PaymentConditionShort30D=30 ημέρες PaymentCondition30D=30 ημέρες PaymentConditionShort30DENDMONTH=30 ημέρες από το τέλος του μήνα @@ -416,111 +420,112 @@ PaymentCondition60D=60 ημέρες PaymentConditionShort60DENDMONTH=60 ημέρες από το τέλος του μήνα PaymentCondition60DENDMONTH=Μέσα στις 60 ημέρες που ακολουθούν από το τέλος του μήνα PaymentConditionShortPT_DELIVERY=Αποστολή -PaymentConditionPT_DELIVERY=Με αντικαταβολή +PaymentConditionPT_DELIVERY=Κατά την παράδοση PaymentConditionShortPT_ORDER=Παραγγελία PaymentConditionPT_ORDER=Κατόπιν παραγγελίας PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% προκαταβολικά, 50%% κατά την παράδοση -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days -PaymentConditionShort14DENDMONTH=14 days of month-end -PaymentCondition14DENDMONTH=Within 14 days following the end of the month -PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% κατάθεση -PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% κατάθεση, υπόλοιπο κατά την παράδοση +PaymentConditionShort10D=10 μέρες +PaymentCondition10D=10 μέρες +PaymentConditionShort10DENDMONTH=10 ημέρες από το τέλος του μήνα +PaymentCondition10DENDMONTH=Εντός 10 ημερών από το τέλος του μήνα +PaymentConditionShort14D=14 ημέρες +PaymentCondition14D=14 ημέρες +PaymentConditionShort14DENDMONTH=14 ημέρες από το τέλος του μήνα +PaymentCondition14DENDMONTH=Εντός 14 ημερών από το τέλος του μήνα +PaymentConditionShortDEP30PCTDEL=__ΠΟΣΟΣΤΟ_ΚΑΤΑΘΕΣΗΣ__%% κατάθεση +PaymentConditionDEP30PCTDEL=__ΠΟΣΟΣΤΟ_ΚΑΤΑΘΕΣΗΣ__%% κατάθεση, υπόλοιπο κατά την παράδοση FixAmount=Σταθερό ποσό - 1 γραμμή με την ετικέτα '%s' -VarAmount=Μεταβλητή ποσού (%% tot.) -VarAmountOneLine=Μεταβλητή ποσότητα (%% tot.) - 1 γραμμή με την ετικέτα '%s' -VarAmountAllLines=Μεταβλητό ποσό (%% συνολικά) - όλες οι γραμμές από τις αρχικές +VarAmount=Μεταβλητό ποσό (%% συνολικά) +VarAmountOneLine=Μεταβλητό ποσό (%% συνολικά) - 1 γραμμή με ετικέτα "%s" +VarAmountAllLines=Μεταβλητό ποσό (%% συνολικά) - όλες οι γραμμές DepositPercent=Κατάθεση %% DepositGenerationPermittedByThePaymentTermsSelected=Αυτό επιτρέπεται βάση των επιλεγμένων όρων πληρωμής GenerateDeposit=Δημιουργήστε μια %s%%απόδειξη κατάθεσης -ValidateGeneratedDeposit=Επικυρώστε την κατάθεση που δημιουργήθηκε -DepositGenerated=Δημιουργήθηκε κατάθεση +ValidateGeneratedDeposit=Επικύρωση της κατάθεσης που δημιουργήθηκε +DepositGenerated=Η κατάθεση δημιουργήθηκε ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Μπορείτε να δημιουργήσετε αυτόματα μια κατάθεση μόνο από μια πρόσφορα ή μια παραγγελία -ErrorPaymentConditionsNotEligibleToDepositCreation=Οι επιλεγμένοι όροι πληρωμής δεν είναι κατάλληλοι για αυτόματη δημιουργία καταθέσεων +ErrorPaymentConditionsNotEligibleToDepositCreation=Οι επιλεγμένοι όροι πληρωμής δεν είναι κατάλληλοι για αυτόματη δημιουργία κατάθεσης # PaymentType PaymentTypeVIR=Τραπεζική μεταφορά PaymentTypeShortVIR=Τραπεζική μεταφορά -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Εντολή πληρωμής άμεσης χρέωσης +PaymentTypePREdetails=(στο λογαριασμό *-%s) +PaymentTypeShortPRE=Χρεωστική εντολή πληρωμής PaymentTypeLIQ=Μετρητά PaymentTypeShortLIQ=Μετρητά PaymentTypeCB=Πιστωτική κάρτα PaymentTypeShortCB=Πιστωτική κάρτα PaymentTypeCHQ=Επιταγή PaymentTypeShortCHQ=Επιταγή -PaymentTypeTIP=TIP (Documents against Payment) -PaymentTypeShortTIP=TIP Payment +PaymentTypeTIP=TIP (Έγγραφα έναντι πληρωμής) +PaymentTypeShortTIP=Πληρωμή TIP PaymentTypeVAD=Διαδικτυακή πληρωμή PaymentTypeShortVAD=Διαδικτυακή πληρωμή -PaymentTypeTRA=Bank draft -PaymentTypeShortTRA=Πρόχειρο +PaymentTypeTRA=Προσχέδιο +PaymentTypeShortTRA=Προσχέδιο PaymentTypeFAC=Παράγοντας PaymentTypeShortFAC=Παράγοντας PaymentTypeDC=Χρεωστική/Πιστωτική κάρτα PaymentTypePP=PayPal -BankDetails=Πληροφορίες τράπεζας +BankDetails=Στοιχεία τράπεζας BankCode=Κωδικός τράπεζας DeskCode=Κωδικός υποκαταστήματος BankAccountNumber=Αριθμός Λογαριασμού -BankAccountNumberKey=Αθροιστικό Checksum +BankAccountNumberKey=Checksum(άθροισμα ελέγχου) Residence=Διεύθυνση -IBANNumber=Αριθμός λογαριασμού IBAN +IBANNumber=IBAN Αριθμού λογαριασμού IBAN=IBAN CustomerIBAN=IBAN πελάτη SupplierIBAN=IBAN προμηθευτή BIC=BIC/SWIFT BICNumber=Κωδικός BIC / SWIFT ExtraInfos=Επιπρόσθετες Πληροφορίες -RegulatedOn=Ρυθμιζόμενη για +RegulatedOn=Ρυθμίστηκαν την ChequeNumber=Αριθμός Επιταγής ChequeOrTransferNumber=Αρ. Επιταγής/Μεταφοράς -ChequeBordereau=Check schedule -ChequeMaker=Έλεγχος/Μεταφορά αποστολέα +ChequeBordereau=Κατάσταση(λίστα) επιταγών +ChequeMaker=Αποστολέας Επιταγής/Μεταφοράς ChequeBank=Τράπεζα Επιταγής CheckBank=Επιταγή -NetToBePaid=Φόρος προς πληρωμή +NetToBePaid=Καθαρό προς πληρωμή PhoneNumber=Τηλ FullPhoneNumber=Τηλέφωνο -TeleFax=Φαξ -PrettyLittleSentence=Accept the amount of payments due by checks issued in my name as a Member of an accounting association approved by the Fiscal Administration. +TeleFax=Fax +PrettyLittleSentence=Αποδεχτείτε το ποσό των πληρωμών που οφείλονται με επιταγές που εκδόθηκαν στο όνομά μου ως Μέλος λογιστικού συλλόγου εγκεκριμένου από τη Δημοσιονομική Διοίκηση. IntracommunityVATNumber=Ενδοκοινοτικό ΑΦΜ -PaymentByChequeOrderedTo=Ελέγξτε τις πληρωμές (συμπεριλαμβανομένου του φόρου) καταβάλλονται στο %s, στείλτε στο -PaymentByChequeOrderedToShort=Έλεγχος πληρωμών (συμπεριλαμβανομένου του φόρου) καταβάλλονται σε +PaymentByChequeOrderedTo=Οι πληρωμές με επιταγή (συμπεριλαμβανομένου του φόρου) είναι πληρωτέες σε %s, αποστολή στο +PaymentByChequeOrderedToShort=Οι πληρωμές με επιταγή (συμπεριλαμβανομένου του φόρου) ειναι καταβλητέες προς SendTo=Αποστολή σε PaymentByTransferOnThisBankAccount=Πληρωμή με μεταφορά στον ακόλουθο τραπεζικό λογαριασμό -VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI -VATIsNotUsedForInvoiceAsso=* Μη εφαρμόσιμος Φ.Π.Α. art-261-7 of CGI -LawApplicationPart1=By application of the law 80.335 of 12/05/80 +VATIsNotUsedForInvoice=* Μη εφαρμοστέο ΦΠΑ άρθρο-293B του CGI +VATIsNotUsedForInvoiceAsso=* Μη εφαρμοστέο ΦΠΑ άρθρο-261-7 του CGI +LawApplicationPart1=Με εφαρμογή του νόμου 80.335 της 12/05/80 LawApplicationPart2=τα εμπορεύματα παραμένουν στην κυριότητα του -LawApplicationPart3=ο πωλητής μέχρι την πλήρη πληρωμή του +LawApplicationPart3=πωλητή μέχρι την πλήρη πληρωμή του LawApplicationPart4=η τιμή τους. -LimitedLiabilityCompanyCapital=SARL with Capital of +LimitedLiabilityCompanyCapital=SARL με Κεφάλαιο UseLine=Εφαρμογή UseDiscount=Χρήση έκπτωσης UseCredit=Χρήση πίστωσης UseCreditNoteInInvoicePayment=Μείωση ποσού πληρωμής με αυτή την πίστωση -MenuChequeDeposits=Ελέγξτε τις καταθέσεις +MenuChequeDeposits=Πληρωμές με επιταγή MenuCheques=Επιταγές -MenuChequesReceipts=Ελέγξτε τις αποδείξεις +MenuChequesReceipts=Αποδείξεις επιταγών NewChequeDeposit=Νέα κατάθεση -ChequesReceipts=Ελέγξτε τις αποδείξεις +ChequesReceipts=Αποδείξεις επιταγών ChequesArea=Τομέας επιταγών -ChequeDeposits=Ελέγξτε τις καταθέσεις +ChequeDeposits=Πληρωμές με επιταγή Cheques=Επιταγές -DepositId=Id Κατάθεση +DepositId=Αναγνωριστικό Κατάθεσης NbCheque=Αριθμός επιταγών -CreditNoteConvertedIntoDiscount=This %s has been converted into %s -UsBillingContactAsIncoiveRecipientIfExist=Χρησιμοποιήστε την επαφή / διεύθυνση με τον τύπο "επαφή χρέωσης" αντί για τη διεύθυνση τρίτων ως παραλήπτη τιμολογίων +CreditNoteConvertedIntoDiscount=Αυτό το %s έχει μετατραπεί σε %s +UsBillingContactAsIncoiveRecipientIfExist=Χρησιμοποιήστε επαφή/διεύθυνση με τον τύπο "επαφή χρέωσης" αντί για διεύθυνση τρίτου μέρους ως παραλήπτη για τα τιμολόγια ShowUnpaidAll=Εμφάνιση όλων των απλήρωτων τιμολογίων ShowUnpaidLateOnly=Εμφάνιση μόνο των καθυστερημένων απλήρωτων τιμολογίων PaymentInvoiceRef=Πληρωμή τιμολογίου %s ValidateInvoice=Επικύρωση τιμολογίου -ValidateInvoices=Validate invoices +ValidateInvoices=Επικύρωση τιμολογίων Cash=Μετρητά Reported=Με καθυστέρηση DisabledBecausePayments=Δεν είναι δυνατόν, δεδομένου ότι υπάρχουν ορισμένες πληρωμές @@ -528,81 +533,81 @@ CantRemovePaymentWithOneInvoicePaid=Δεν μπορείτε να καταργή CantRemovePaymentVATPaid=Δεν είναι δυνατή η κατάργηση της πληρωμής, καθώς η δήλωση ΦΠΑ έχει ταξινομηθεί ως πληρωμένη CantRemovePaymentSalaryPaid=Δεν είναι δυνατή η κατάργηση της πληρωμής, καθώς ο μισθός ταξινομήθηκε ως πληρωμένος ExpectedToPay=Αναμενόμενη Πληρωμή -CantRemoveConciliatedPayment=Δεν είναι δυνατή η κατάργηση της κοινής πληρωμής +CantRemoveConciliatedPayment=Δεν είναι δυνατή η κατάργηση της συμφωνημένης πληρωμής PayedByThisPayment=Πληρωθείτε αυτό το ποσό -ClosePaidInvoicesAutomatically=Ταξινόμηση αυτόματα όλα τα τυποποιημένα, προκαθορισμένα ή αντικαταστατικά τιμολόγια ως "Πληρωμένα" όταν η πληρωμή γίνει εξ ολοκλήρου. -ClosePaidCreditNotesAutomatically=Ταξινόμηση αυτόματα όλες τις πιστωτικές σημειώσεις ως "Πληρωθεί" όταν η επιστροφή γίνεται εξ ολοκλήρου. -ClosePaidContributionsAutomatically=Ταξινόμηση αυτόματα όλες τις κοινωνικές ή φορολογικές εισφορές ως "Πληρωθεί" όταν η πληρωμή γίνει εξ ολοκλήρου. -ClosePaidVATAutomatically=Ταξινομήστε αυτόματα τη δήλωση ΦΠΑ ως «Εξοφλημένο» όταν η πληρωμή γίνει εξ ολοκλήρου. +ClosePaidInvoicesAutomatically=Ταξινομήστε αυτόματα όλα τα τυπικά τιμολόγια, τα τιμολόγια προκαταβολής ή αντικατάστασης ως "Πληρωμένα" όταν η πληρωμή γίνει εξ ολοκλήρου. +ClosePaidCreditNotesAutomatically=Ταξινομήστε αυτόματα όλα τα πιστωτικά σημειώματα ως "Πληρωμένα" όταν ολοκληρωθεί η επιστροφή χρημάτων. +ClosePaidContributionsAutomatically=Αυτόματη ταξινόμηση όλων των κοινωνικών ή φορολογικών εισφορών ως "Πληρωμένες" όταν η πληρωμή γίνεται εξ ολοκλήρου. +ClosePaidVATAutomatically=Ταξινομήστε αυτόματα τη δήλωση ΦΠΑ ως "Πληρωμένο" όταν η πληρωμή γίνει εξ ολοκλήρου. ClosePaidSalaryAutomatically=Ταξινομήστε αυτόματα τον μισθό ως "Πληρωμένο" όταν η πληρωμή γίνει εξ ολοκλήρου. -AllCompletelyPayedInvoiceWillBeClosed=Όλα τα τιμολόγια που δεν πληρώνουν υπόλοιπο θα κλείσουν αυτόματα με την κατάσταση "Πληρωμή". +AllCompletelyPayedInvoiceWillBeClosed=Όλα τα τιμολόγια χωρίς υπόλοιπο προς πληρωμή θα κλείσουν αυτόματα στην κατάσταση "Πληρωμένο". ToMakePayment=Πληρωμή -ToMakePaymentBack=Pay back -ListOfYourUnpaidInvoices=Κατάλογος των απλήρωτων τιμολογίων -NoteListOfYourUnpaidInvoices=Σημείωση: Αυτή η λίστα περιέχει μόνο τα τιμολόγια για λογαριασμό Πελ./Προμ. που συνδέονται με τον εκπρόσωπο πώλησης. -RevenueStamp=Φορόσημο -YouMustCreateInvoiceFromThird=Αυτή η επιλογή είναι διαθέσιμη μόνο όταν δημιουργείτε τιμολόγιο από την καρτέλα "Πελάτης" τρίτου μέρους -YouMustCreateInvoiceFromSupplierThird=Αυτή η επιλογή είναι διαθέσιμη μόνο κατά τη δημιουργία τιμολογίου από την καρτέλα "Προμηθευτής" τρίτου μέρους -YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice -PDFCrabeDescription=Πρότυπο τιμολόγιο PDF Crabe. Ένα πλήρες πρότυπο τιμολογίου (παλιά εφαρμογή του προτύπου Sponge) -PDFSpongeDescription=Τιμολόγιο πρότυπο PDF Σφουγγάρι. Ένα πλήρες πρότυπο τιμολογίου -PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices -TerreNumRefModelDesc1=Επιστρέφει τη μορφή %syymm-nnnn για τυπικά τιμολόγια και %syymm-nnnn για πιστωτικές σημειώσεις όπου yy είναι έτος, mm είναι μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς διακοπή και χωρίς επιστροφή στο 0 -MarsNumRefModelDesc1=Επιστρέφει τη μορφή %syymm-nnnn για τυπικά τιμολόγια, %syymm-nnnn για τιμολόγια αντικατάστασης, %syymm-nnnn για τιμολόγια προκαταβολής και %syymm-nnnn για τιμολόγια αντικατάστασης, %syymm-nnnn για πιστωτικά τιμολόγια όπου yy είναι το έτος,mm ο μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς διακοπή και χωρίς επιστροφή στο 0 -TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Αριθμός επιστροφής με τη μορφή %syymm-nnnn για τυπικά τιμολόγια, %syymm-nnnn για πιστωτικά σημειώματα και %syymm-nnnn για τιμολόγια προκαταβολής όπου το yy είναι το έτος,mm ο μήνας και nnnn ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς διακοπή χωρίς επιστροφή στο 0 -EarlyClosingReason=Πρώιμος λόγος κλεισίματος -EarlyClosingComment=Πρώιμο σημείωμα κλεισίματος +ToMakePaymentBack=Επιστροφή χρημάτων +ListOfYourUnpaidInvoices=Λίστα απλήρωτων τιμολογίων +NoteListOfYourUnpaidInvoices=Σημείωση: Αυτή η λίστα περιέχει μόνο τιμολόγια για τρίτα μέρη με τα οποία είστε συνδεδεμένοι ως εκπρόσωπος πωλήσεων. +RevenueStamp=Φορολογικό χαρτόσημο +YouMustCreateInvoiceFromThird=Αυτή η επιλογή είναι διαθέσιμη μόνο κατά τη δημιουργία τιμολογίου από την καρτέλα "Πελάτης" τρίτου μέρους +YouMustCreateInvoiceFromSupplierThird=Αυτή η επιλογή είναι διαθέσιμη μόνο κατά τη δημιουργία τιμολογίου από την καρτέλα "Προμηθευτής" τρίτου μέρους +YouMustCreateStandardInvoiceFirstDesc=Πρέπει πρώτα να δημιουργήσετε ένα τυπικό τιμολόγιο και μετά να το μετατρέψετε σε "πρότυπο" για να δημιουργήσετε ένα νέο πρότυπο τιμολόγιο +PDFCrabeDescription=Πρότυπο τιμολόγιο PDF Crabe. Ένα πλήρες πρότυπο τιμολογίου (παλιά υλοποίηση του προτύπου Sponge) +PDFSpongeDescription=Πρότυπο PDF τιμολογίου Sponge. Ένα πλήρες πρότυπο τιμολογίου +PDFCrevetteDescription=Πρότυπο PDF τιμολογίου Crevette. Ένα πλήρες πρότυπο τιμολογίου για τιμολόγια κατάστασης +TerreNumRefModelDesc1=Επιστρέφει αριθμό της μορφής %syymm-nnnn για τυπικά τιμολόγια και %syymm-nnnn για πιστωτικές σημειώσεις όπου yy είναι έτος, mm είναι μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς διακοπή και χωρίς επιστροφή στο 0 +MarsNumRefModelDesc1=Επιστρέφει αριθμό της μορφής %syymm-nnnn για τυπικά τιμολόγια, %syymm-nnnn για τιμολόγια αντικατάστασης, %syymm-nnnn για αποδείξεις προκαταβολής και %syymm-nnnn για πιστωτικές σημειώσεις όπου yy είναι έτος, mm είναι μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς διακοπή και χωρίς επιστροφή στο 0 +TerreNumRefModelError=Ένας λογαριασμός που ξεκινά με $syymm υπάρχει ήδη και δεν είναι συμβατός με αυτό το μοντέλο ακολουθίας. Αφαιρέστε το ή μετονομάστε το για να ενεργοποιήσετε αυτήν την ενότητα. +CactusNumRefModelDesc1=Επιστρέφει αριθμό της μορφής %syymm-nnnn για τυπικά τιμολόγια, %syymm-nnnn για πιστωτικά σημειώματα και %syymm-nnnn για αποδείξεις προκαταβολής όπου το yy είναι το έτος,mm ο μήνας και nnnn ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς διακοπή και χωρίς επιστροφή στο 0 +EarlyClosingReason=Λόγος πρόωρου κλεισίματος +EarlyClosingComment=Σημείωση πρόωρου κλεισίματος ##### Types de contacts ##### -TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice -TypeContact_facture_external_BILLING=Αντιπρόσωπος τιμολογίου πελάτη -TypeContact_facture_external_SHIPPING=Αντιπρόσωπος αποστολής πελάτη -TypeContact_facture_external_SERVICE=Αντιπρόσωπος υπηρεσίας πελάτη -TypeContact_invoice_supplier_internal_SALESREPFOLL=Αντιπροσωπευτικό τιμολόγιο πωλητή +TypeContact_facture_internal_SALESREPFOLL=Εκπρόσωπος που παρακολουθεί το τιμολόγιο πελάτη +TypeContact_facture_external_BILLING=Επαφή τιμολογίου πελάτη +TypeContact_facture_external_SHIPPING=Επαφή αποστολής πελάτη +TypeContact_facture_external_SERVICE=Επαφή υπηρεσίας πελάτη +TypeContact_invoice_supplier_internal_SALESREPFOLL=Εκπρόσωπος που παρακολουθεί το τιμολόγιο προμηθευτή TypeContact_invoice_supplier_external_BILLING=Επαφή τιμολογίου προμηθευτή TypeContact_invoice_supplier_external_SHIPPING=Επαφή αποστολής προμηθευτή TypeContact_invoice_supplier_external_SERVICE=Επαφή υπηρεσιών προμηθευτή # Situation invoices InvoiceFirstSituationAsk=Κατάσταση πρώτου τιμολογίου -InvoiceFirstSituationDesc=Η κατάσταση τιμολογίων συνδέονται με καταστάσεις που σχετίζονται σε πρόοδο, για παράδειγμα, της προόδου μιας κατασκευής. Κάθε κατάσταση είναι συνδεδεμένη με ένα τιμολόγιο. -InvoiceSituation=Κατάσταση τιμολογίου -PDFInvoiceSituation=Κατάσταση τιμολογίου +InvoiceFirstSituationDesc=Τα τιμολόγια καταστάσεων τιμολόγια καταστάσεων συνδέονται με καταστάσεις που σχετίζονται με μια εξέλιξη, για παράδειγμα την εξέλιξη μιας κατασκευής. Κάθε κατάσταση συνδέεται με ένα τιμολόγιο. +InvoiceSituation=Τιμολόγιο κατάστασης +PDFInvoiceSituation=Τιμολόγιο κατάστασης InvoiceSituationAsk=Τιμολόγιο που έπεται της κατάστασης InvoiceSituationDesc=Δημιουργία μιας νέας κατάστασης μετά από μια ήδη υπάρχουσα -SituationAmount=Κατάσταση τιμολογίου ποσό (καθαρό) +SituationAmount=Ποσό τιμολογίου κατάστασης (καθαρό) SituationDeduction=Αφαίρεση κατάστασης -ModifyAllLines=Τροποποίηση σε όλες τις γραμμές +ModifyAllLines=Τροποποίηση όλων των γραμμών CreateNextSituationInvoice=Δημιουργήστε την επόμενη κατάσταση -ErrorFindNextSituationInvoice=Σφάλμα αδύνατο να βρεθεί ο επόμενος κύκλος περιπτ -ErrorOutingSituationInvoiceOnUpdate=Δεν είναι δυνατή η εξόρυξη αυτού του τιμολογίου κατάστασης. -ErrorOutingSituationInvoiceCreditNote=Δεν είναι δυνατή η εξόρυξη συνδεδεμένου πιστωτικού σημείου. +ErrorFindNextSituationInvoice=Σφάλμα, αδυναμία εύρεσης αναφοράς κύκλου επόμενης κατάστασης +ErrorOutingSituationInvoiceOnUpdate=Δεν είναι δυνατή η έκδοση αυτού του τιμολογίου κατάστασης. +ErrorOutingSituationInvoiceCreditNote=Δεν είναι δυνατή η έξοδος συνδεδεμένου πιστωτικού σημειώματος. NotLastInCycle=Το τιμολόγιο δεν είναι το τελευταίο της σειράς και δεν πρέπει να τροποποιηθεί DisabledBecauseNotLastInCycle=Η επόμενη κατάσταση υπάρχει ήδη. DisabledBecauseFinal=Η κατάσταση αυτή είναι οριστική. -situationInvoiceShortcode_AS=ΟΠΩΣ ΚΑΙ +situationInvoiceShortcode_AS=ΤΚ situationInvoiceShortcode_S=Κ CantBeLessThanMinPercent=Η πρόοδος δεν μπορεί να είναι μικρότερη από την αξία του στην προηγούμενη κατάσταση. NoSituations=Δεν υπάρχουν ανοικτές καταστάσεις InvoiceSituationLast=Τελικό και γενικό τιμολόγιο PDFCrevetteSituationNumber=Κατάσταση N°%s -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT -PDFCrevetteSituationInvoiceTitle=Κατάσταση τιμολογίου -PDFCrevetteSituationInvoiceLine=Κατάσταση Αριθ. %s: Inv. Αριθ. %s για %s -TotalSituationInvoice=Συνολική κατάσταση -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line -updatePriceNextInvoiceErrorUpdateline=Σφάλμα: ενημέρωση τιμής στη γραμμή τιμολογίου: %s -ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices. -ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu %s - %s - %s. +PDFCrevetteSituationInvoiceLineDecompte=Τιμολόγιο κατάστασης - COUNT +PDFCrevetteSituationInvoiceTitle=Τιμολόγιο κατάστασης +PDFCrevetteSituationInvoiceLine=Κατάσταση N°%s: Τιμ. N°%s σε %s +TotalSituationInvoice=Σύνολο κατάστασης +invoiceLineProgressError=Η πρόοδος της γραμμής τιμολογίου δεν μπορεί να είναι μεγαλύτερη ή ίση με την επόμενη γραμμή τιμολογίου +updatePriceNextInvoiceErrorUpdateline=Σφάλμα: ενημερώστε την τιμή στη γραμμή τιμολογίου: %s +ToCreateARecurringInvoice=Για να δημιουργήσετε ένα επαναλαμβανόμενο τιμολόγιο για αυτήν τη σύμβαση, δημιουργήστε πρώτα αυτό το προσχέδιο τιμολογίου, στη συνέχεια μετατρέψτε το σε πρότυπο τιμολογίου και καθορίστε τη συχνότητα δημιουργίας μελλοντικών τιμολογίων. +ToCreateARecurringInvoiceGene=Για τη δημιουργια τιμολογίων τακτικά και μη αυτόματα, απλώς μεταβείτε στο μενού %s - %s - %s . ToCreateARecurringInvoiceGeneAuto=Αν χρειαστεί να δημιουργήσετε αυτομάτως τέτοιου είδους τιμολόγια, ζητήστε από τον διαχειριστή σας να ενεργοποιήσει και να ρυθμίσει την ενότητα %s . Λάβετε υπόψη ότι και οι δύο μέθοδοι (χειροκίνητες και αυτόματες) μπορούν να χρησιμοποιηθούν χωρίς να υπάρχει κίνδυνος επανάληψης. -DeleteRepeatableInvoice=Delete template invoice -ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice? +DeleteRepeatableInvoice=Διαγραφή προτύπου τιμολογίου +ConfirmDeleteRepeatableInvoice=Είστε σίγουροι ότι θέλετε να διαγράψετε το πρότυπο τιμολόγιο; CreateOneBillByThird=Δημιουργία ενός τιμολογίου ανά τρίτο μέρος (διαφορετικά, ένα τιμολόγιο ανά επιλεγμένο αντικείμενο) -BillCreated=%s τιμολόγιο(α) δημιουργήθηκε(αν) +BillCreated=Δημιουργία %s τιμολογίου(ων) BillXCreated=Δημιουργήθηκε το τιμολόγιο %s StatusOfGeneratedDocuments=Κατάσταση δημιουργίας εγγράφων -DoNotGenerateDoc=Μην δημιουργείτε αρχείο εγγράφων +DoNotGenerateDoc=Μην δημιουργείτε αρχείο εγγράφου AutogenerateDoc=Αυτόματη δημιουργία αρχείου εγγράφου -AutoFillDateFrom=Ορίστε την ημερομηνία έναρξης για γραμμή υπηρεσιών με ημερομηνία τιμολόγησης +AutoFillDateFrom=Ορίστε ως ημερομηνία έναρξης για τη γραμμή εξυπηρέτησης την ημερομηνία τιμολογίου AutoFillDateFromShort=Ορίστε την ημερομηνία έναρξης AutoFillDateTo=Ορίστε την ημερομηνία λήξης της γραμμής εξυπηρέτησης με την επόμενη ημερομηνία τιμολόγησης AutoFillDateToShort=Ορίστε την ημερομηνία λήξης @@ -612,7 +617,7 @@ BILL_SUPPLIER_DELETEInDolibarr=Το τιμολόγιο προμηθευτή δι UnitPriceXQtyLessDiscount=Τιμή μονάδας x Ποσότητα - Έκπτωση CustomersInvoicesArea=Τομέας τιμολόγησης πελατών SupplierInvoicesArea=Τομέας τιμολόγησης προμηθευτών -SituationTotalRayToRest=Υπενθύμιση πληρωμής χωρίς φόρο +SituationTotalRayToRest=Το υπόλοιπο προς πληρωμή χωρίς Φ.Π.Α. PDFSituationTitle=Κατάσταση αρ. %d SituationTotalProgress=Συνολική πρόοδος %d %% SearchUnpaidInvoicesWithDueDate=Αναζήτηση απλήρωτων τιμολογίων με ημερομηνία λήξης = %s @@ -620,4 +625,9 @@ NoPaymentAvailable=Δεν υπάρχει διαθέσιμη πληρωμή γι PaymentRegisteredAndInvoiceSetToPaid=Η πληρωμή καταχωρήθηκε και το τιμολόγιο %s ορίστηκε ως πληρωμένο SendEmailsRemindersOnInvoiceDueDate=Αποστολή υπενθύμισης μέσω email για απλήρωτα τιμολόγια MakePaymentAndClassifyPayed=Καταγραφή πληρωμής -BulkPaymentNotPossibleForInvoice=Δεν είναι δυνατή η μαζική πληρωμή για το τιμολόγιο %s (κακός τύπος ή κατάσταση) +BulkPaymentNotPossibleForInvoice=Δεν είναι δυνατή η μαζική πληρωμή για το τιμολόγιο %s (λάθος τύπος ή κατάσταση) +MentionVATDebitOptionIsOn=Δυνατότητα πληρωμής φόρου βάσει χρεώσεων +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Διανομή αγαθών +MentionCategoryOfOperations1=Παροχή υπηρεσιών +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/el_GR/blockedlog.lang b/htdocs/langs/el_GR/blockedlog.lang index 319dba5722c..b42c868d85e 100644 --- a/htdocs/langs/el_GR/blockedlog.lang +++ b/htdocs/langs/el_GR/blockedlog.lang @@ -1,57 +1,57 @@ BlockedLog=Αμετάβλητα αρχεία καταγραφής Field=Πεδίο BlockedLogDesc=Αυτή η ενότητα παρακολουθεί ορισμένα συμβάντα σε ένα αμετάβλητο αρχείο καταγραφής (το οποίο δεν μπορείτε να τροποποιήσετε μόλις καταγραφεί) σε ενα block chain, σε πραγματικό χρόνο. Αυτή η ενότητα παρέχει συμβατότητα με τις απαιτήσεις των νόμων ορισμένων χωρών (όπως η Γαλλία με το νόμο Finance 2016 - Norme NF525). -Fingerprints=Αρχειοθετημένα συμβάντα και δακτυλικά αποτυπώματα +Fingerprints=Αρχειοθετημένες ενέργειες και δακτυλικά αποτυπώματα FingerprintsDesc=Αυτό είναι το εργαλείο για να περιηγηθείτε ή να εξαγάγετε τα αμετάβλητα αρχεία καταγραφής. Αμετάβλητα αρχεία καταγραφής δημιουργούνται και αρχειοθετούνται τοπικά σε ένα ειδικό πίνακα, σε πραγματικό χρόνο όταν καταγράφετε ένα επιχειρηματικό γεγονός. Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να εξαγάγετε αυτό το αρχείο και να το αποθηκεύσετε για εξωτερική υποστήριξη (ορισμένες χώρες, όπως η Γαλλία, ζητάνε να γίνεται ετησίως). Σημειώστε ότι δεν υπάρχει καμία δυνατότητα για εκκαθάριση αυτού του αρχείου καταγραφής και κάθε προσπάθεια αλλαγής απευθείας σε αυτό το αρχείο καταγραφής (π.χ. από έναν χάκερ) θα αναφέρεται με ένα μη έγκυρο δακτυλικό αποτύπωμα. Εάν θέλετε πραγματικά να εκκαθαρίσετε αυτόν τον πίνακα επειδή χρησιμοποιήσατε την εφαρμογή σας για δοκιμαστικό σκοπό και θέλετε να καθαρίσετε τα δεδομένα σας για να ξεκινήσετε την παραγωγή σας, μπορείτε να ζητήσετε από τον μεταπωλητή ή τον διαχειριστή της βάσης δεδοµένων σας να επαναφέρει τη βάση δεδομένων σας (όλα τα δεδομένα θα χαθούν). CompanyInitialKey=Αρχικό κλειδί εταιρείας (hash of genesis block) BrowseBlockedLog=Αμετάβλητα αρχεία καταγραφής ShowAllFingerPrintsMightBeTooLong=Εμφάνιση όλων των αρχειοθετημένων αρχείων καταγραφής (μπορεί να είναι μεγάλα) ShowAllFingerPrintsErrorsMightBeTooLong=Εμφάνιση όλων των μη έγκυρων αρχείων καταγραφής (μπορεί να είναι μεγάλα) -DownloadBlockChain=Κατεβάστε τα δακτυλικά αποτυπώματα +DownloadBlockChain=Λήψη Block Chain KoCheckFingerprintValidity=Η αρχειοθετημένη καταχώριση αρχείου καταγραφής δεν είναι έγκυρη. Σημαίνει ότι κάποιος (ένας χάκερ;) έχει τροποποιήσει ορισμένα δεδομένα αυτής της εγγραφής μετά την καταγραφή της, ή έχει διαγράψει την προηγούμενη αρχειοθετημένη εγγραφή (ελέγξτε ότι η γραμμή με το προηγούμενο # υπάρχει) ή έχει τροποποιήσει το άθροισμα ελέγχου(checksum) της προηγούμενης εγγραφής. OkCheckFingerprintValidity=Η αρχειοθετημένη εγγραφή αρχείου καταγραφής είναι έγκυρη. Τα δεδομένα σε αυτή τη γραμμή δεν τροποποιήθηκαν και η καταχώρηση ακολουθεί την προηγούμενη. OkCheckFingerprintValidityButChainIsKo=Το αρχειοθετημένο αρχείο καταγραφής φαίνεται έγκυρο σε σύγκριση με το προηγούμενο, αλλά η αλυσίδα είχε αλλοιωθεί στο παρελθόν. AddedByAuthority=Αποθηκευμένο σε απομακρυσμένη αρχή NotAddedByAuthorityYet=Δεν έχει ακόμη αποθηκευτεί σε απομακρυσμένη αρχή ShowDetails=Εμφάνιση λεπτομερειών αποθήκευσης -logPAYMENT_VARIOUS_CREATE=Η πληρωμή (δεν έχει εκχωρηθεί σε τιμολόγιο) δημιουργήθηκε -logPAYMENT_VARIOUS_MODIFY=Η πληρωμή (δεν έχει εκχωρηθεί σε τιμολόγιο) τροποποιήθηκε -logPAYMENT_VARIOUS_DELETE=Πληρωμή (δεν έχει εκχωρηθεί σε τιμολόγιο) λογική διαγραφή +logPAYMENT_VARIOUS_CREATE=Δημιουργήθηκε η πληρωμή (δεν εκχωρείται σε τιμολόγιο). +logPAYMENT_VARIOUS_MODIFY=Τροποποιήθηκε η πληρωμή (δεν έχει αντιστοιχιστεί σε τιμολόγιο). +logPAYMENT_VARIOUS_DELETE=Λογική διαγραφή πληρωμής (δεν εκχωρείται σε τιμολόγιο). logPAYMENT_ADD_TO_BANK=Η πληρωμή προστέθηκε στην τράπεζα logPAYMENT_CUSTOMER_CREATE=Δημιουργήθηκε πληρωμή πελάτη -logPAYMENT_CUSTOMER_DELETE=Λογική διαγραφή πληρωμής πελατών +logPAYMENT_CUSTOMER_DELETE=Λογική διαγραφή πληρωμής πελάτη logDONATION_PAYMENT_CREATE=Δημιουργήθηκε η πληρωμή δωρεάς -logDONATION_PAYMENT_DELETE=Δωρεά λογική διαγραφή πληρωμής +logDONATION_PAYMENT_DELETE=Λογική διαγραφή πληρωμής δωρεάς logBILL_PAYED=Πληρωμένο τιμολόγιο πελάτη -logBILL_UNPAYED=Το τιμολόγιο πελατών έχει οριστεί ως μη πληρωμένο +logBILL_UNPAYED=Το τιμολόγιο πελάτη ορίστηκε ως απλήρωτο logBILL_VALIDATE=Το τιμολόγιο πελάτη επικυρώθηκε -logBILL_SENTBYMAIL=Τα τιμολόγια πελατών αποστέλλονται ταχυδρομικώς -logBILL_DELETE=Το τιμολόγιο πελατών διαγράφηκε λογικά -logMODULE_RESET=Η μονάδα BlockedLog απενεργοποιήθηκε -logMODULE_SET=Η μονάδα BlockedLog ήταν ενεργοποιημένη -logDON_VALIDATE=Επικύρωση δωρεάς -logDON_MODIFY=Μετατροπή δωρεάς -logDON_DELETE=Δωρεά λογική διαγραφή +logBILL_SENTBYMAIL=Αποστολή τιμολογίου πελάτη μέσω email +logBILL_DELETE=Το τιμολόγιο πελάτη διαγράφηκε λογικά  +logMODULE_RESET=Η ενότητα BlockedLog απενεργοποιήθηκε +logMODULE_SET=Η ενότητα BlockedLog ενεργοποιήθηκε +logDON_VALIDATE=Η δωρεά επικυρώθηκε +logDON_MODIFY=Η δωρεά τροποποιήθηκε +logDON_DELETE=Λογική διαγραφή δωρεάς logMEMBER_SUBSCRIPTION_CREATE=Δημιουργία συνδρομής μέλους logMEMBER_SUBSCRIPTION_MODIFY=Η συνδρομή μέλους τροποποιήθηκε -logMEMBER_SUBSCRIPTION_DELETE=Συνδρομή λογικής διαγραφής μέλους +logMEMBER_SUBSCRIPTION_DELETE=Λογική διαγραφή συνδρομής μέλους logCASHCONTROL_VALIDATE=Καταγραφή κλεισίματος ταμείου -BlockedLogBillDownload=Λήψη τιμολογίου πελατών -BlockedLogBillPreview=Προβολή τιμολογίου πελατών -BlockedlogInfoDialog=Στοιχεία καταγραφής -ListOfTrackedEvents=Λίστα συμβάντων που παρακολουθούνται -Fingerprint=Δακτυλικό αποτύπωμα +BlockedLogBillDownload=Λήψη τιμολογίου πελάτη +BlockedLogBillPreview=Προεπισκόπηση τιμολογίου πελάτη +BlockedlogInfoDialog=Στοιχεία αρχείου καταγραφής +ListOfTrackedEvents=Λίστα συμβάντων υπό ελεγχο +Fingerprint=Fingerprint DownloadLogCSV=Εξαγωγή αρχειοθετημένων αρχείων καταγραφής (CSV) -logDOC_PREVIEW=Προεπισκόπηση ενός επικυρωμένου εγγράφου για εκτύπωση ή λήψη -logDOC_DOWNLOAD=Λήψη επικυρωμένου εγγράφου για εκτύπωση ή αποστολή +logDOC_PREVIEW=Προ επισκόπηση ενός επικυρωμένου εγγράφου για εκτύπωση ή λήψη +logDOC_DOWNLOAD=Λήψη ενός επικυρωμένου εγγράφου για εκτύπωση ή αποστολή DataOfArchivedEvent=Πλήρη δεδομένα αρχειοθετημένου γεγονότος -ImpossibleToReloadObject=Το αρχικό αντικείμενο (πληκτρολογήστε %s, id %s) δεν είναι συνδεδεμένο (ανατρέξτε στη στήλη "Πλήρες αρχείο δεδομένων" για να λάβετε αναλλοίωτα αποθηκευμένα δεδομένα) -BlockedLogAreRequiredByYourCountryLegislation=Μπορείτε να ζητήσετε από τη νομοθεσία της χώρας σας τη λειτουργική μονάδα Unalterable Logs. Η απενεργοποίηση αυτής της ενότητας μπορεί να καταστήσει τυχόν μελλοντικές συναλλαγές άκυρες σε σχέση με το νόμο και τη χρήση νόμιμου λογισμικού, καθώς δεν μπορούν να επικυρωθούν από φορολογικό έλεγχο. -BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Το μη τροποποιημένο τμήμα καταγραφής ενεργοποιήθηκε λόγω της νομοθεσίας της χώρας σας. Η απενεργοποίηση αυτής της ενότητας μπορεί να καταστήσει τυχόν μελλοντικές συναλλαγές άκυρες σε σχέση με το νόμο και τη χρήση νόμιμου λογισμικού, καθώς δεν μπορούν να επικυρωθούν από φορολογικό έλεγχο. -BlockedLogDisableNotAllowedForCountry=Κατάλογος χωρών όπου η χρήση αυτής της λειτουργικής μονάδας είναι υποχρεωτική (απλά για να αποφευχθεί η απενεργοποίηση της μονάδας από λάθος, εάν η χώρα σας βρίσκεται σε αυτή τη λίστα, δεν είναι δυνατή η απενεργοποίηση της ενότητας χωρίς την πρώτη επεξεργασία αυτής της λίστας. κρατήστε ένα κομμάτι στο μη αναστρέψιμο αρχείο καταγραφής). +ImpossibleToReloadObject=Το αρχικό αντικείμενο (τύπος %s, id %s) δεν είναι συνδεδεμένο (δείτε τη στήλη "Πλήρη δεδομένα" για να λάβετε αμετάβλητα αποθηκευμένα δεδομένα) +BlockedLogAreRequiredByYourCountryLegislation=Η ενότητα Αμετάβλητα αρχεία καταγραφής ενδέχεται να απαιτείται από τη νομοθεσία της χώρας σας. Η απενεργοποίηση αυτής της ενότητας μπορεί να καταστήσει άκυρες τυχόν μελλοντικές συναλλαγές σε σχέση με τη νομοθεσία και τη χρήση νομικού λογισμικού, καθώς δεν μπορούν να επικυρωθούν από φορολογικό έλεγχο. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Η ενότητα Αμετάβλητα αρχεία καταγραφής ενεργοποιήθηκε λόγω της νομοθεσίας της χώρας σας. Η απενεργοποίηση αυτής της ενότητας μπορεί να καταστήσει άκυρες τυχόν μελλοντικές συναλλαγές σε σχέση με τη νομοθεσία και τη χρήση νομικού λογισμικού, καθώς δεν μπορούν να επικυρωθούν από φορολογικό έλεγχο. +BlockedLogDisableNotAllowedForCountry=Λίστα χωρών όπου η χρήση αυτής της ενότητας είναι υποχρεωτική (απλώς για να αποφευχθεί η κατά λάθος απενεργοποίηση της ενότητας, εάν η χώρα σας βρίσκεται σε αυτήν τη λίστα, η απενεργοποίηση της ενότητας δεν είναι δυνατή χωρίς να επεξεργαστείτε πρώτα αυτήν τη λίστα. Σημειώστε επίσης ότι η ενεργοποίηση/απενεργοποίηση αυτής της ενότητας θα αποθηκευτεί στο αμετάβλητο αρχείο καταγραφής). OnlyNonValid=Μη έγκυρη -TooManyRecordToScanRestrictFilters=Πάρα πολλές εγγραφές για σάρωση / ανάλυση. Περιορίστε τη λίστα με πιο περιοριστικά φίλτρα. -RestrictYearToExport=Περιορίστε μήνα / έτος για εξαγωγή -BlockedLogEnabled=Έχει ενεργοποιηθεί το σύστημα για την παρακολούθηση εγγραφών σε μη τροποποιήσημα αρχεία καταγραφής -BlockedLogDisabled=Έχει απενεργοποιηθεί το σύστημα για την παρακολούθηση εγγραφών σε μη τροποποιήσημα αρχεία καταγραφής ύστερα από αρκετή καταγραφή. Αποθηκεύσαμε ένα ειδικό Fingerprint για να παρακολουθούμε την αλυσίδα ως σπασμένη. -BlockedLogDisabledBis=Έχει απενεργοποιηθεί το σύστημα για την παρακολούθηση εγγραφών σε μη τροποποιήσημα αρχεία καταγραφής. Αυτό είναι δυνατόν γιατί καμιά εγγραφή δεν έχει γίνει ακόμα. +TooManyRecordToScanRestrictFilters=Πάρα πολλές εγγραφές για σάρωση / ανάλυση. Περιορίστε τη λίστα με τη χρήση φίλτρων. +RestrictYearToExport=Ορισμός μήνα / έτους για εξαγωγή +BlockedLogEnabled=Έχει ενεργοποιηθεί το σύστημα για την παρακολούθηση συμβάντων σε μη τροποποιήσημα αρχεία καταγραφής +BlockedLogDisabled=Έχει απενεργοποιηθεί το σύστημα για την παρακολούθηση συμβάντων σε μη τροποποιήσημα αρχεία καταγραφής αφού έχει γίνει ήδη καταγραφή. Αποθηκεύσαμε ένα ειδικό Fingerprint για να παρακολουθούμε την αλυσίδα ως σπασμένη. +BlockedLogDisabledBis=Έχει απενεργοποιηθεί το σύστημα για την παρακολούθηση συμβάντων σε μη τροποποιήσημα αρχεία καταγραφής. Αυτό είναι δυνατόν γιατί καμιά εγγραφή δεν έχει γίνει ακόμα. diff --git a/htdocs/langs/el_GR/bookmarks.lang b/htdocs/langs/el_GR/bookmarks.lang index 398c61c3d7f..9a0f5303f6f 100644 --- a/htdocs/langs/el_GR/bookmarks.lang +++ b/htdocs/langs/el_GR/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Επιλέξτε εάν η συ BookmarksManagement=Διαχείριση σελιδοδεικτών BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Δεν έχουν οριστεί σελιδοδείκτες +NoBookmarkFound=Δεν βρέθηκε σελιδοδείκτης diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang index b142b8a6e2d..c3728d5600e 100644 --- a/htdocs/langs/el_GR/boxes.lang +++ b/htdocs/langs/el_GR/boxes.lang @@ -1,19 +1,19 @@ # Dolibarr language file - Source file is en_US - boxes BoxDolibarrStateBoard=Στατιστικά για τα κύρια επιχειρηματικά αντικείμενα στη βάση δεδομένων -BoxLoginInformation=πληροφορίες σύνδεσης +BoxLoginInformation=Πληροφορίες σύνδεσης BoxLastRssInfos=Πληροφορίες RSS BoxLastProducts=Τελευταία %s Προϊόντα / Υπηρεσίες -BoxProductsAlertStock=Ειδοποιήσεις αποθεμάτων για προϊόντα -BoxLastProductsInContract=Τελευταία προϊόντα / υπηρεσίες που συνάπτονται με %s +BoxProductsAlertStock=Ειδοποιήσεις αποθέματος προϊόντων +BoxLastProductsInContract=Τελευταία %s προϊόντα/υπηρεσίες με σύμβαση BoxLastSupplierBills=Τελευταία τιμολόγια προμηθευτή BoxLastCustomerBills=Τελευταία τιμολόγια πελατών BoxOldestUnpaidCustomerBills=Παλαιότερα μη πληρωμένα τιμολόγια πελατών -BoxOldestUnpaidSupplierBills=Παλαιότερα μη πληρωμένα τιμολόγια προμηθευτή +BoxOldestUnpaidSupplierBills=Παλαιότερα μη πληρωμένα τιμολόγια προμηθευτών BoxLastProposals=Τελευταίες εμπορικές προτάσεις BoxLastProspects=Τελευταίες τροποποιημένες προοπτικές -BoxLastCustomers=Πρόσφατα τροποποιημένοι πελάτες -BoxLastSuppliers=Πρόσφατα τροποποιημένοι προμηθευτές -BoxLastCustomerOrders=Τελευταίες παραγγελίες πωλήσεων +BoxLastCustomers=Τελευταίοι τροποποιημένοι πελάτες +BoxLastSuppliers=Τελευταίοι τροποποιημένοι προμηθευτές +BoxLastCustomerOrders=Τελευταίες εντολές πωλήσεων BoxLastActions=Τελευταίες ενέργειες BoxLastContracts=Τελευταία συμβόλαια BoxLastContacts=Τελευταίες επαφές/διευθύνσεις @@ -21,42 +21,44 @@ BoxLastMembers=Τελευταία μέλη BoxLastModifiedMembers=Τελευταία τροποποιημένα μέλη BoxLastMembersSubscriptions=Τελευταίες συνδρομές μελών BoxFicheInter=Τελευταίες παρεμβάσεις -BoxCurrentAccounts=Άνοιξε το ισοζύγιο των λογαριασμών +BoxCurrentAccounts=Ισοζύγιο ανοιχτών λογαριασμών BoxTitleMemberNextBirthdays=Γενέθλια αυτού του μήνα (μέλη) BoxTitleMembersByType=Μέλη ανά τύπο και κατάσταση BoxTitleMembersSubscriptionsByYear=Συνδρομές μελών ανά έτος -BoxTitleLastRssInfos=Τα %s πιο πρόσφατα νέα από %s -BoxTitleLastProducts=Προϊόντα / Υπηρεσίες: τελευταία τροποποίηση %s -BoxTitleProductsAlertStock=Προϊόντα: προειδοποίηση αποθέματος -BoxTitleLastSuppliers=Οι τελευταίοι %s κατέγραψαν προμηθευτές -BoxTitleLastModifiedSuppliers=Προμηθευτές: τελευταία τροποποίηση %s -BoxTitleLastModifiedCustomers=Πελάτες: τελευταία τροποποίηση %s +BoxTitleLastRssInfos=Τα τελευταία %s νέα από %s +BoxTitleLastProducts=Προϊόντα / Υπηρεσίες: τελευταία %s τροποποιημένα +BoxTitleProductsAlertStock=Προϊόντα: ειδοποίηση αποθέματος +BoxTitleLastSuppliers=Τελευταίοι %s καταγεγραμμένοι προμηθευτές +BoxTitleLastModifiedSuppliers=Προμηθευτές: τελευταίοι %s τροποποιημένοι +BoxTitleLastModifiedCustomers=Πελάτες: τελευταίοι %s τροποποιημένοι BoxTitleLastCustomersOrProspects=Τελευταίοι %s πελάτες ή προοπτικές -BoxTitleLastCustomerBills=Τελευταία τιμολόγια πελατών τροποποιημένα %s +BoxTitleLastCustomerBills=Τελευταία %s τροποποιημένα τιμολόγια πελατών BoxTitleLastSupplierBills=Τελευταία %s τροποποιημένα τιμολόγια προμηθευτών -BoxTitleLastModifiedProspects=Προοπτικές: τελευταία τροποποίηση %s +BoxTitleLastModifiedProspects=Προοπτικές: τελευταία %s τροποποιημένη BoxTitleLastModifiedMembers=Τελευταία %s Μέλη -BoxTitleLastFicheInter=Latest %s modified interventions -BoxTitleOldestUnpaidCustomerBills=Τιμολόγια Πελατών: παλαιότερη %s απλήρωτη -BoxTitleOldestUnpaidSupplierBills=Τιμολόγια προμηθευτών: παλαιότερη %s απλήρωτη -BoxTitleCurrentAccounts=Άνοιγμα Λογαριασμών: υπόλοιπα -BoxTitleSupplierOrdersAwaitingReception=Ο προμηθευτής παραγγέλλει αναμονή για λήψη -BoxTitleLastModifiedContacts=Επαφές / διευθύνσεις: τελευταία τροποποίηση %s -BoxMyLastBookmarks=Σελιδοδείκτες: τελευταίες %s +BoxTitleLastFicheInter=Τελευταίες %s τροποποιημένες παρεμβάσεις +BoxTitleOldestUnpaidCustomerBills=Τιμολόγια Πελατών: παλαιότερα %s απλήρωτα +BoxTitleOldestUnpaidSupplierBills=Τιμολόγια προμηθευτών: παλαιότερα %s απλήρωτα +BoxTitleCurrentAccounts=Ανοιχτοί Λογαριασμοί: ισοζύγια +BoxTitleSupplierOrdersAwaitingReception=Παραγγελίες προμηθευτών εν αναμονή παραλαβής +BoxTitleLastModifiedContacts=Επαφές / διευθύνσεις: τελευταίες %s τροποποιημένες +BoxMyLastBookmarks=Σελιδοδείκτες: τελευταίοι %s BoxOldestExpiredServices=Παλαιότερες ενεργές υπηρεσίες που έχουν λήξει -BoxLastExpiredServices=Τελευταίες %s παλαιότερες επαφές με ενεργές υπηρεσίες λήξαν -BoxTitleLastActionsToDo=Τελευταίες %s ενέργειες προς πραγμαοποίηση -BoxTitleLastContracts=Τα πιο πρόσφατα %s συμβόλαια που τροποποιήθηκαν -BoxTitleLastModifiedDonations=Τελευταίες %s δωρεές που τροποποιήθηκαν +BoxOldestActions=Οι παλαιότερα ενέργειες σε αναμονή +BoxLastExpiredServices=Τελευταίες %s παλαιότερες επαφές με ενεργές υπηρεσίες που έληξαν +BoxTitleLastActionsToDo=Τελευταίες %s ενέργειες προς πραγματοποίηση +BoxTitleOldestActionsToDo=Τα παλαιότερα %s συμβάντα που πρέπει να γίνουν, μη ολοκληρωμένα +BoxTitleLastContracts=Τελευταία %s τροποποιημένα συμβόλαια +BoxTitleLastModifiedDonations=Τελευταίες %s τροποποιημένες δωρεές BoxTitleLastModifiedExpenses=Τελευταίες %s αναφορές εξόδων που τροποποιήθηκαν BoxTitleLatestModifiedBoms=Τελευταία %s BOM που τροποποιήθηκαν -BoxTitleLatestModifiedMos=Τελευταίες %s Παραγγελίες Κατασκευής που τροποποιήθηκαν +BoxTitleLatestModifiedMos=Τελευταίες %s Παραγγελίες παραγωγής που τροποποιήθηκαν BoxTitleLastOutstandingBillReached=Πελάτες με υπέρβαση του μέγιστου οφειλόμενου BoxGlobalActivity=Η γενική δραστηριότητα για (τιμολόγια, προσφορές, παραγγελίες) BoxGoodCustomers=Καλοί πελάτες -BoxTitleGoodCustomers=%s καλών πελατών +BoxTitleGoodCustomers=%s Καλοί πελάτες BoxScheduledJobs=Προγραμματισμένες εργασίες -BoxTitleFunnelOfProspection=Lead funnel +BoxTitleFunnelOfProspection=Διαδικασία Αξιοποίησης Προοπτικών FailedToRefreshDataInfoNotUpToDate=Αποτυχία ανανέωσης ροής RSS. Τελευταία επιτυχημένη ημερομηνία ανανέωσης: %s LastRefreshDate=Ημερομηνία τελευταίας ανανέωσης NoRecordedBookmarks=Δεν υπάρχουν σελιδοδείκτες που ορίζονται. Κάντε κλικ εδώ για να προσθέσετε σελιδοδείκτες. @@ -64,57 +66,57 @@ ClickToAdd=Πατήστε εδώ για προσθήκη. NoRecordedCustomers=Δεν υπάρχουν καταχωρημένοι πελάτες NoRecordedContacts=Δεν υπάρχουν καταγεγραμμένες επαφές NoActionsToDo=Δεν υπάρχουν ενέργειες που πρέπει να γίνουν -NoRecordedOrders=Δεν έχουν καταγραφεί εντολές πώλησης +NoRecordedOrders=Δεν υπάρχουν καταγεγραμμένες εντολές πωλήσεων NoRecordedProposals=Δεν υπάρχουν καταχωρημένες προσφορές -NoRecordedInvoices=Δεν έχουν καταγραφεί τιμολόγια πελατών -NoUnpaidCustomerBills=Δεν έχουν καταβληθεί τιμολόγια πελατών -NoUnpaidSupplierBills=Δεν έχουν καταβληθεί τιμολόγια προμηθευτή -NoModifiedSupplierBills=Δεν έχουν καταγραφεί τιμολόγια προμηθευτή +NoRecordedInvoices=Δεν υπάρχουν καταγεγραμμένα τιμολόγια πελατών +NoUnpaidCustomerBills=Δεν υπάρχουν απλήρωτα τιμολόγια πελατών +NoUnpaidSupplierBills=Δεν υπάρχουν απλήρωτα τιμολόγια προμηθευτών +NoModifiedSupplierBills=Δεν υπάρχουν καταγεγραμμένα τιμολόγια προμηθευτή NoRecordedProducts=Δεν υπάρχουν καταχωρημένα προϊόντα/υπηρεσίες -NoRecordedProspects=Δεν υπάρχουν προσφορές +NoRecordedProspects=Καμία καταγεγραμμένη προοπτική NoContractedProducts=Δεν υπάρχουν καταχωρημένα συμβόλαια με προϊόντα/υπηρεσίες NoRecordedContracts=Δεν υπάρχουν καταχωρημένα συμβόλαια -NoRecordedInterventions=Δεν καταγράφονται παρεμβάσεις +NoRecordedInterventions=Δεν έχουν καταγραφεί παρεμβάσεις BoxLatestSupplierOrders=Τελευταίες παραγγελίες αγοράς -BoxLatestSupplierOrdersAwaitingReception=Τελευταίες παραγγελίες αγοράς (με εκκρεμότητα λήψης) -NoSupplierOrder=Δεν καταγράφεται εντολή αγοράς +BoxLatestSupplierOrdersAwaitingReception=Τελευταίες παραγγελίες αγοράς (εν αναμονή παραλαβής) +NoSupplierOrder=Καμία καταγεγραμμένη εντολή αγοράς BoxCustomersInvoicesPerMonth=Τιμολόγιο Πελατών ανά μήνα BoxSuppliersInvoicesPerMonth=Τιμολόγια προμηθευτή ανά μήνα BoxCustomersOrdersPerMonth=Παραγγελίες Πωλήσεων ανά μήνα -BoxSuppliersOrdersPerMonth=Παραγγελίες παραγγελίας ανά μήνα +BoxSuppliersOrdersPerMonth=Παραγγελίες προμηθευτών ανά μήνα BoxProposalsPerMonth=Προσφορές ανά μήνα -NoTooLowStockProducts=Κανένα προϊόν δεν βρίσκεται κάτω από το χαμηλό όριο αποθεμάτων -BoxProductDistribution=Προϊόντα / Υπηρεσίες Διανομή +NoTooLowStockProducts=Κανένα προϊόν δεν είναι κάτω από το όριο χαμηλότερου αποθεμάτος +BoxProductDistribution=Διανομή προϊόντων/υπηρεσιών ForObject=Στο %s -BoxTitleLastModifiedSupplierBills=Τιμολόγια προμηθευτή: τροποποιήθηκε τελευταία %s -BoxTitleLatestModifiedSupplierOrders=Παραγγελίες προμηθευτή: τελευταία τροποποιημένη %s -BoxTitleLastModifiedCustomerBills=Τιμολόγια πελατών: τροποποιήθηκε τελευταία %s -BoxTitleLastModifiedCustomerOrders=Παραγγελίες πώλησης: τελευταία τροποποίηση %s -BoxTitleLastModifiedPropals=Τελευταίες τροποποιημένες προτάσεις %s +BoxTitleLastModifiedSupplierBills=Τιμολόγια προμηθευτή: τελευταία %s τροποποιημένα +BoxTitleLatestModifiedSupplierOrders=Παραγγελίες προμηθευτή: τελευταίες %s τροποποιημένες +BoxTitleLastModifiedCustomerBills=Τιμολόγια πελατών: τελευταία %s τροποποίημενα +BoxTitleLastModifiedCustomerOrders=Παραγγελίες πωλήσεων: τελευταίες %sτροποποίημενες +BoxTitleLastModifiedPropals=Τελευταίες %s τροποποιημένες προσφορές BoxTitleLatestModifiedJobPositions=Τελευταίες %s τροποποιημένες θέσεις εργασίας -BoxTitleLatestModifiedCandidatures=Τελευταίες %s τροποποιημένες εφαρμογές εργασίας +BoxTitleLatestModifiedCandidatures=Τελευταίες %s τροποποιημένες αιτήσεις πρόσληψης ForCustomersInvoices=Τιμολόγια Πελάτη ForCustomersOrders=Παραγγελίες πελατών ForProposals=Προσφορές -LastXMonthRolling=Ο τελευταίος κύλινδρος %s μήνα -ChooseBoxToAdd=Προσθέστε widget στον πίνακα ελέγχου -BoxAdded=Το Widget προστέθηκε στον πίνακα ελέγχου σας +LastXMonthRolling=Τελευταίοι %s κυλιόμενοι μήνες +ChooseBoxToAdd=Προσθήκη γραφικού στοιχείου στον πίνακα ελέγχου +BoxAdded=Το γραφικό στοιχείο προστέθηκε στον πίνακα ελέγχου. BoxTitleUserBirthdaysOfMonth=Γενέθλια αυτού του μήνα (χρήστες) BoxLastManualEntries=Τελευταία εγγραφή στη λογιστική που καταχωρήθηκε χειροκίνητα ή χωρίς έγγραφο πηγής BoxTitleLastManualEntries=%s τελευταίες εγγραφές που έχουν εισαχθεί χειροκίνητα ή χωρίς έγγραφο προέλευσης -NoRecordedManualEntries=Δεν καταγράφονται μη καταχωρημένα μητρώα στη λογιστική -BoxSuspenseAccount=Αρίθμηση λογιστικής λειτουργίας με λογαριασμό αναμονής -BoxTitleSuspenseAccount=Αριθμός μη διατεθέντων γραμμών -NumberOfLinesInSuspenseAccount=Αριθμός γραμμής σε λογαριασμό αναμονής -SuspenseAccountNotDefined=Ο λογαριασμός Suspense δεν έχει οριστεί +NoRecordedManualEntries=Καμία καταγραφή χειροκίνητων εγγραφών στη λογιστική +BoxSuspenseAccount=Καταμέτρηση λογιστικής λειτουργίας με μεταβατικό λογαριασμό +BoxTitleSuspenseAccount=Αριθμός μη εκχωρημένων γραμμών +NumberOfLinesInSuspenseAccount=Αριθμός γραμμών στον μεταβατικό λογαριασμό +SuspenseAccountNotDefined=Δεν έχει οριστεί μεταβατικός λογαριασμός BoxLastCustomerShipments=Τελευταίες αποστολές πελάτη BoxTitleLastCustomerShipments=Τελευταίες %s αποστολές πελάτη NoRecordedShipments=Καμία καταγεγραμμένη αποστολή πελάτη BoxCustomersOutstandingBillReached=Πελάτες που έχουν φτάσει το όριο μέγιστου οφειλόμενου # Pages -UsersHome=Αρχικοί χρήστες και ομάδες -MembersHome=Αρχική Συνδρομή -ThirdpartiesHome=Αρχική Τρίτοι -TicketsHome=Αρχικά Εισιτήρια -AccountancyHome=Αρχική Λογιστική +UsersHome=Χρήστες και ομάδες +MembersHome=Μέλη +ThirdpartiesHome=Τρίτα μέρη +TicketsHome=Εισιτήρια +AccountancyHome=Λογιστική ValidatedProjects=Επικυρωμένα έργα diff --git a/htdocs/langs/el_GR/cashdesk.lang b/htdocs/langs/el_GR/cashdesk.lang index 5b554ba8cfa..602c85b4f90 100644 --- a/htdocs/langs/el_GR/cashdesk.lang +++ b/htdocs/langs/el_GR/cashdesk.lang @@ -16,7 +16,7 @@ AddThisArticle=Προσθέστε αυτό το προϊόν RestartSelling=Επιστρέψτε στην πώληση SellFinished=Ολοκληρωμένη πώληση PrintTicket=Εκτύπωση Απόδειξης -SendTicket=Στείλτε εισιτήριο +SendTicket=Αποστολή εισιτηρίου NoProductFound=Το προϊόν δεν βρέθηκε ProductFound=Το προϊόν βρέθηκε NoArticle=Κανένα προϊόν @@ -35,17 +35,17 @@ UserNeedPermissionToEditStockToUsePos=Ζητάτε να μειώσετε το α DolibarrReceiptPrinter=Dolibarr εκτυπωτής αποδείξεων PointOfSale=Σημείο πώλησης PointOfSaleShort=POS -CloseBill=Κλείστε τον Bill -Floors=Δάπεδα -Floor=Πάτωμα -AddTable=Προσθήκη πίνακα +CloseBill=Κλείσιμο λογαριασμού +Floors=Floors +Floor=Floor +AddTable=Προσθήκη τραπεζιού Place=Θέση -TakeposConnectorNecesary=Απαιτείται 'Connector TakePOS' -OrderPrinters=Προσθέστε ένα κουμπί για να στείλετε την παραγγελία σε ορισμένους εκτυπωτές, χωρίς πληρωμή (για παράδειγμα για να στείλετε μια παραγγελία σε μια κουζίνα) +TakeposConnectorNecesary=Απαιτείται "TakePOS Connector". +OrderPrinters=Προσθέστε ένα κουμπί για να στείλετε την παραγγελία σε ορισμένους εκτυπωτές, δεν αφορά σε πληρωμή (για παράδειγμα για να στείλετε μια παραγγελία σε μια κουζίνα) NotAvailableWithBrowserPrinter=Δεν είναι διαθέσιμο όταν ο εκτυπωτής για παραλαβή έχει ρυθμιστεί στο πρόγραμμα περιήγησης SearchProduct=Αναζήτηση προϊόντος -Receipt=Παραλαβή -Header=Επί κεφαλής +Receipt=Απόδειξη +Header=Κεφαλίδα Footer=Υποσέλιδο AmountAtEndOfPeriod=Ποσό στο τέλος της περιόδου (ημέρα, μήνας ή έτος) TheoricalAmount=Θεωρητικό ποσό @@ -53,58 +53,58 @@ RealAmount=Πραγματικό ποσό CashFence=Κλείσιμο ταμείου CashFenceDone=Το ταμείο έκλεισε για την περίοδο NbOfInvoices=Πλήθος τιμολογίων -Paymentnumpad=Τύπος πλακέτας για να πληκτρολογήσετε την πληρωμή +Paymentnumpad=Τύπος Pad για εισαγωγή πληρωμής Numberspad=Αριθμητικό Pad -BillsCoinsPad=Νομίσματα και τραπεζογραμμάτια Pad -DolistorePosCategory=Δομοστοιχεία TakePOS και άλλες λύσεις POS για Dolibarr +BillsCoinsPad=Pad Νομισμάτων και τραπεζογραμμάτιων +DolistorePosCategory=Ενότητα TakePOS και άλλες λύσεις POS για Dolibarr TakeposNeedsCategories=Το TakePOS χρειάζεται τουλάχιστον μία κατηγορία προϊόντων για να λειτουργήσει -TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=Το TakePOS χρειάζεται τουλάχιστον 1 κατηγορία προϊόντων στην κατηγορία %s για να λειτουργήσει -OrderNotes=Μπορεί να προσθέσει μερικές σημειώσεις σε κάθε παραγγελία +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=Το TakePOS χρειάζεται τουλάχιστον 1 κατηγορία προϊόντων υπο την κατηγορία %s για να λειτουργήσει +OrderNotes=Δυνατότητα προσθήκης σημειώσεων σε κάθε παραγγελία CashDeskBankAccountFor=Προεπιλεγμένος λογαριασμός που θα χρησιμοποιηθεί για πληρωμές σε -NoPaimementModesDefined=Δεν έχει ρυθμιστεί η λειτουργία πρατηρίου που έχει οριστεί στη διαμόρφωση του TakePOS -TicketVatGrouped=Ομαδικός ΦΠΑ ανά τιμή σε εισιτήρια | αποδείξεις -AutoPrintTickets=Εκτυπώστε αυτόματα εισιτήρια | αποδείξεις +NoPaimementModesDefined=Δεν έχει οριστεί τρόπος πληρωμής στη διαμόρφωση του TakePOS +TicketVatGrouped=Ομαδοποίηση Φ.Π.Α. κατά συντελεστή σε εισιτήρια|αποδείξεις +AutoPrintTickets=Αυτόματη εκτύπωση εισιτηρίων|αποδείξεων PrintCustomerOnReceipts=Εκτύπωση πελάτη σε εισιτήρια | αποδείξεις -EnableBarOrRestaurantFeatures=Ενεργοποιήστε τις λειτουργίες του μπαρ ή του εστιατορίου +EnableBarOrRestaurantFeatures=Ενεργοποίηση λειτουργιών για Μπαρ ή Εστιατόριο ConfirmDeletionOfThisPOSSale=Επιβεβαιώνετε τη διαγραφή αυτής της τρέχουσας πώλησης; -ConfirmDiscardOfThisPOSSale=Θέλετε να απορρίψετε αυτήν την τρέχουσα πώληση; +ConfirmDiscardOfThisPOSSale=Θέλετε να απορρίψετε αυτήν την πώληση; History=Ιστορικό -ValidateAndClose=Επικυρώστε και κλείστε +ValidateAndClose=Επικύρωση και κλείσιμο Terminal=Τερματικό NumberOfTerminals=Αριθμός τερματικών TerminalSelect=Επιλέξτε το τερματικό που θέλετε να χρησιμοποιήσετε: -POSTicket=POS Ticket +POSTicket=Εισιτήριο POS POSTerminal=Τερματικό POS -POSModule=Μονάδα POS -BasicPhoneLayout=Χρησιμοποιήστε τη βασική διάταξη για τα τηλέφωνα +POSModule=Ενότητα POS +BasicPhoneLayout=Χρησιμοποιήστε τη βασική διάταξη για τηλέφωνα SetupOfTerminalNotComplete=Η εγκατάσταση του τερματικού %s δεν έχει ολοκληρωθεί DirectPayment=Άμεση πληρωμή DirectPaymentButton=Προσθέστε ένα κουμπί "Άμεση πληρωμή με μετρητά". InvoiceIsAlreadyValidated=Το τιμολόγιο έχει ήδη επικυρωθεί -NoLinesToBill=Δεν υπάρχουν γραμμές που να χρεώνουν -CustomReceipt=Προσαρμοσμένη παραλαβή -ReceiptName=Όνομα παραλαβής -ProductSupplements=Διαχειριστείτε τα συμπληρώματα προϊόντων -SupplementCategory=Συμπλήρωμα κατηγορίας +NoLinesToBill=Δεν υπάρχουν γραμμές για χρέωση +CustomReceipt=Προσαρμοσμένη απόδειξη +ReceiptName=Όνομα απόδειξης +ProductSupplements=Διαχείριση τα συμπληρώματα προϊόντων +SupplementCategory=Κατηγορία συμπληρώματος ColorTheme=Χρώμα θέματος Colorful=Πολύχρωμα HeadBar=Μπάρα Κεφαλίδας SortProductField=Πεδίο διαλογής προϊόντων -Browser=Browser +Browser=Περιηγητής BrowserMethodDescription=Απλή και εύκολη εκτύπωση απόδειξης. Μόνο μερικές παράμετροι για τη διαμόρφωση της απόδειξης. Εκτύπωση μέσω προγράμματος περιήγησης. -TakeposConnectorMethodDescription=Εξωτερική μονάδα με επιπλέον χαρακτηριστικά. Δυνατότητα εκτύπωσης από το cloud. +TakeposConnectorMethodDescription=Εξωτερική ενότητα με επιπλέον χαρακτηριστικά. Δυνατότητα εκτύπωσης από το cloud. PrintMethod=Μέθοδος εκτύπωσης -ReceiptPrinterMethodDescription=Δυνατή μέθοδος με πολλές παραμέτρους. Πλήρως προσαρμόσιμο με πρότυπα. Ο διακομιστής που φιλοξενεί την εφαρμογή δεν μπορεί να βρίσκεται στο Cloud (πρέπει να έχει πρόσβαση στους εκτυπωτές του δικτύου σας). +ReceiptPrinterMethodDescription=Ισχυρή μέθοδος με πολλές παραμέτρους. Πλήρως προσαρμόσιμο με πρότυπα. Ο διακομιστής που φιλοξενεί την εφαρμογή δεν μπορεί να βρίσκεται στο Cloud (πρέπει να έχει πρόσβαση στους εκτυπωτές του δικτύου σας). ByTerminal=Από τερματικό -TakeposNumpadUsePaymentIcon=Χρησιμοποιήστε το εικονίδιο αντί για το κείμενο στα κουμπιά πληρωμής του πληκτρολογίου numpad +TakeposNumpadUsePaymentIcon=Χρήση εικονιδίου αντί για κείμενο στα κουμπιά πληρωμής του numpad CashDeskRefNumberingModules=Ενότητα αρίθμησης για πωλήσεις POS -CashDeskGenericMaskCodes6 =  
    {TN} ετικέτα χρησιμοποιείται για την προσθήκη του αριθμού τερματικού -TakeposGroupSameProduct=Ομαδοποιήστε τις ίδιες σειρές προϊόντων +CashDeskGenericMaskCodes6 =
    {TN} Η ετικέτα χρησιμοποιείται για την προσθήκη του αριθμού τερματικού +TakeposGroupSameProduct=Ομαδοποίηση των ίδιων σειρών προϊόντων StartAParallelSale=Ξεκινήστε μια νέα παράλληλη πώληση SaleStartedAt=Η πώληση ξεκίνησε στο %s -ControlCashOpening=Ανοίξτε το αναδυόμενο παράθυρο "Έλεγχος ταμείου" κατά το άνοιγμα του POS +ControlCashOpening=Άνοιγμα του αναδυόμενου παραθύρου "Έλεγχος ταμείου" κατά το άνοιγμα του POS CloseCashFence=Κλείσιμο ταμείου -CashReport=Έκθεση μετρητών +CashReport=Αναφορά μετρητών MainPrinterToUse=Κύριος εκτυπωτής προς χρήση OrderPrinterToUse=Παραγγείλετε τον εκτυπωτή για χρήση MainTemplateToUse=Κύριο πρότυπο για χρήση @@ -119,20 +119,21 @@ Appearance=Εμφάνιση HideCategoryImages=Απόκρυψη εικόνων κατηγορίας HideProductImages=Απόκρυψη εικόνων προϊόντων NumberOfLinesToShow=Αριθμός γραμμών εικόνων προς εμφάνιση -DefineTablePlan=Καθορισμός σχεδίου πινάκων +DefineTablePlan=Καθορισμός σχεδίου τραπεζιών GiftReceiptButton=Προσθέστε ένα κουμπί "Απόδειξη δώρου". GiftReceipt=Απόδειξη δώρου -ModuleReceiptPrinterMustBeEnabled=Η εφαρμογή/ενότητα Receipt Printer πρέπει να έχει ενεργοποιηθεί πρώτα +ModuleReceiptPrinterMustBeEnabled=Η ενότητα Receipt Printer πρέπει να έχει ενεργοποιηθεί πρώτα AllowDelayedPayment=Να επιτρέπεται η καθυστερημένη πληρωμή PrintPaymentMethodOnReceipts=Εκτύπωση τρόπου πληρωμής σε εισιτήρια|αποδείξεις WeighingScale=Ζυγαριά -ShowPriceHT = Εμφάνιση της στήλης με την τιμή χωρίς φόρο (στην οθόνη) -ShowPriceHTOnReceipt = Εμφάνιση της στήλης με την τιμή χωρίς φόρο (στην απόδειξη) +ShowPriceHT = Εμφάνιση της στήλης με την τιμή χωρίς Φ.Π.Α. (στην οθόνη) +ShowPriceHTOnReceipt = Εμφάνιση της στήλης με την τιμή χωρίς Φ.Π.Α. (στην απόδειξη) CustomerDisplay=Εμφάνιση πελάτη SplitSale=Split sale -PrintWithoutDetailsButton=Προσθέστε το κουμπί "Εκτύπωση χωρίς λεπτομέρειες". +PrintWithoutDetailsButton=Προσθηκη κουμπιού "Εκτύπωση χωρίς λεπτομέρειες". PrintWithoutDetailsLabelDefault=Ετικέτα γραμμής από προεπιλογή στην εκτύπωση χωρίς λεπτομέρειες PrintWithoutDetails=Εκτύπωση χωρίς λεπτομέρειες -YearNotDefined=Το έτος δεν ορίστηκε +YearNotDefined=Το έτος δεν έχει οριστεί TakeposBarcodeRuleToInsertProduct=Κανόνας γραμμικού κώδικα για την εισαγωγή προϊόντος TakeposBarcodeRuleToInsertProductDesc=Κανόνας εξαγωγής αναφοράς προϊόντος + ποσότητας από σαρωμένο γραμμωτό κώδικα.
    Εάν είναι κενό (προεπιλεγμένη τιμή), η εφαρμογή θα χρησιμοποιήσει τον πλήρη γραμμωτό κώδικα που έχει σαρωθεί για να βρει το προϊόν.

    Αν οριστεί, η σύνταξη πρέπει να είναι:
    ref:NB+qu:NB+qd:NB+αλλα:NB
    όπου ΝΒ είναι ο αριθμός των χαρακτήρων που θα χρησιμοποιηθεί για την εξαγωγή δεδομένων από το σαρωμένα barcode με:
    • ref: αναφορά προϊόντος
    • qu : ποσότητα κατά την εισαγωγή στοιχείου (μονάδες)
    • qd : ποσότητα κατά την εισαγωγή στοιχείου (δεκαδικά)
    • άλλα : άλλοι χαρακτήρες
    +AlreadyPrinted=Ήδη εκτυπωμένο diff --git a/htdocs/langs/el_GR/categories.lang b/htdocs/langs/el_GR/categories.lang index 4c298f875ef..6e3d6276045 100644 --- a/htdocs/langs/el_GR/categories.lang +++ b/htdocs/langs/el_GR/categories.lang @@ -8,15 +8,15 @@ In=Μέσα AddIn=Προσθήκη σε modify=Αλλαγή Classify=Ταξινόμηση -CategoriesArea=Πεδίο Ετικέτες/Κατηγορίες -ProductsCategoriesArea=Πεδίο Προϊόντα/Υπηρεσίες Ετικέτες/Κατηγορίες -SuppliersCategoriesArea=Περιοχή ετικετών/κατηγοριών προμηθευτή -CustomersCategoriesArea=Περιοχή ετικετών/κατηγοριών πελατών -MembersCategoriesArea=Περιοχή ετικετών/κατηγοριών μελών -ContactsCategoriesArea=Περιοχή ετικετών/κατηγοριών επαφών -AccountsCategoriesArea=Περιοχή ετικετών/κατηγοριών τραπεζικού λογαριασμού -ProjectsCategoriesArea=Πεδίο Ετικετών/Κατηγοριών έργου -UsersCategoriesArea=Περιοχή ετικετών/κατηγοριών χρήστη +CategoriesArea=Τομέας ετικετών/κατηγοριών +ProductsCategoriesArea=Τομέας ετικετών/κατηγοριών προϊόντων/υπηρεσιών +SuppliersCategoriesArea=Τομέας ετικετών/κατηγοριών προμηθευτή +CustomersCategoriesArea=Τομέας ετικετών/κατηγοριών πελατών +MembersCategoriesArea=Τομέας ετικετών/κατηγοριών μελών +ContactsCategoriesArea=Τομέας ετικετών/κατηγοριών επαφών +AccountsCategoriesArea=Τομέας ετικετών/κατηγοριών τραπεζικού λογαριασμού +ProjectsCategoriesArea=Τομέας ετικετών/κατηγοριών έργου +UsersCategoriesArea=Τομέας ετικετών/κατηγοριών χρήστη SubCats=Υποκατηγορίες CatList=Λίστα Ετικετών/Κατηγοριών CatListAll=Λίστα ετικετών/κατηγοριών (όλοι οι τύποι) @@ -31,71 +31,73 @@ FoundCats=Εύρεση ετικετών/κατηγοριών ImpossibleAddCat=Αδυναμία προσθήκης της Ετικέτας/Κατηγορίας %s WasAddedSuccessfully=%s προστέθηκε με επιτυχία. ObjectAlreadyLinkedToCategory=Το στοιχείο έχει ήδη συνδεθεί με αυτή την ετικέτα/κατηγορία -ProductIsInCategories=Το προϊόν/υπηρεσία έχει ήδη συνδεθεί με τις παρακάτω ετικέτες/κατηγορίες -CompanyIsInCustomersCategories=This third party is linked to following customers/prospects tags/categories -CompanyIsInSuppliersCategories=Αυτό το τρίτο μέρος συνδέεται με τις ακόλουθες ετικέτες / κατηγορίες πωλητών -MemberIsInCategories=This member is linked to following members tags/categories -ContactIsInCategories=Αυτή η επαφή είναι συνδεδεμένη με τις ακόλουθες ετικέτες/κατηγορίες -ProductHasNoCategory=This product/service is not in any tags/categories -CompanyHasNoCategory=This third party is not in any tags/categories -MemberHasNoCategory=This member is not in any tags/categories -ContactHasNoCategory=Αυτή η επαφή δεν είναι συνδεδεμένη με καμία ετικέτα/κατηγορία -ProjectHasNoCategory=This project is not in any tags/categories +ProductIsInCategories=Το προϊόν/η υπηρεσία συνδέεται με τις ακόλουθες ετικέτες/κατηγορίες +CompanyIsInCustomersCategories=Αυτό το τρίτο μέρος συνδέεται με τις ακόλουθες ετικέτες/κατηγορίες πελατών/προοπτικών +CompanyIsInSuppliersCategories=Αυτό το τρίτο μέρος συνδέεται με τις ακόλουθες ετικέτες / κατηγορίες προμηθευτών +MemberIsInCategories=Αυτό το μέλος συνδέεται με τις ακόλουθες ετικέτες/κατηγορίες μελών +ContactIsInCategories=Αυτή η επαφή συνδέεται με τις ακόλουθες ετικέτες/κατηγορίες επαφών +ProductHasNoCategory=Αυτό το προϊόν/υπηρεσία δεν περιλαμβάνεται σε καμία ετικέτα/κατηγορία +CompanyHasNoCategory=Αυτό το τρίτο μέρος δεν ανήκει σε καμιά ετικέτα/κατηγορία +MemberHasNoCategory=Αυτό το μέλος δεν ανήκει σε καμία ετικέτα/κατηγορία +ContactHasNoCategory=Αυτή η επαφή δεν ανήκει σε καμία ετικέτα/κατηγορία +ProjectHasNoCategory=Αυτό το έργο δεν ανήκει σε καμία ετικέτα/κατηγορία ClassifyInCategory=Προσθήκη σε ετικέτα/κατηγορία NotCategorized=Χωρίς ετικέτα/κατηγορία -CategoryExistsAtSameLevel=Η κατηγορία αυτή υπάρχει ήδη με αυτό το όνομα +CategoryExistsAtSameLevel=Αυτή η κατηγορία υπάρχει ήδη με αυτήν την αναφορά ContentsVisibleByAllShort=Περιεχόμενα ορατά από όλους ContentsNotVisibleByAllShort=Περιεχόμενα μη ορατά από όλους DeleteCategory=Διαγραφή ετικέτας/κατηγορίας ConfirmDeleteCategory=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ετικέτα/κατηγορία; NoCategoriesDefined=Δεν ορίστηκε ετικέτα/κατηγορία SuppliersCategoryShort=Ετικέτα / κατηγορία προμηθευτών -CustomersCategoryShort=Πελάτες ετικέτα/κατηγορία -ProductsCategoryShort=Προϊόντα ετικέτα/κατηγορία -MembersCategoryShort=Μέλη ετικέτα/κατηγορία +CustomersCategoryShort=Ετικέτα/κατηγορία πελατών +ProductsCategoryShort=Ετικέτα/κατηγορία προϊόντων +MembersCategoryShort=Ετικέτα/κατηγορία μελών SuppliersCategoriesShort=Ετικέτες / κατηγορίες πωλητών -CustomersCategoriesShort=Πελάτες ετικέτες/κατ +CustomersCategoriesShort=Ετικέτες/κατηγορίες πελατών ProspectsCategoriesShort=Ετικέτες/Κατηγορίες Προοπτικών -CustomersProspectsCategoriesShort=Cust./Prosp. ετικέτες / κατηγορίες -ProductsCategoriesShort=Προϊόντα ετικέτες/κατ -MembersCategoriesShort=Μέλη ετικέτες/κατ +CustomersProspectsCategoriesShort=Ετικέτες/κατηγορίες Πελ./Προοπ. +ProductsCategoriesShort=Ετικέτες/κατηγορίες προϊόντων +MembersCategoriesShort=Ετικέτες/κατηγορίες μελών ContactCategoriesShort=Ετικέτες/Κατηγορίας Επαφών AccountsCategoriesShort=Ετικέτες/Κατηγορίες Λογαριασμών -ProjectsCategoriesShort=Projects tags/categories +ProjectsCategoriesShort=Ετικέτες/κατηγορίες έργων UsersCategoriesShort=Ετικέτες / κατηγορίες χρηστών StockCategoriesShort=Ετικέτες / κατηγορίες αποθήκης ThisCategoryHasNoItems=Αυτή η κατηγορία δεν περιέχει στοιχεία. -CategId=Ετικέτα/κατηγορία id +CategId=Αναγνωριστικό ετικέτας/κατηγορίας ParentCategory=Γονική ετικέτα/κατηγορία -ParentCategoryLabel=Ταμπέλα γονικής ετικέτας/κατηγορίας +ParentCategoryLabel=Ετικέτα γονικής ετικέτας/κατηγορίας CatSupList=Λίστα ετικετών/κατηγοριών προμηθευτών -CatCusList=Λίστα ετικετών/κατηγοριών πελατών/υποψήφιων πελατών -CatProdList=Λίστα προϊόντων ετικέτες/κατηγορίες -CatMemberList=Λίστα μελών ετικέτες/κατηγορίες +CatCusList=Λίστα ετικετών/κατηγοριών πελατών/προοπτικών +CatProdList=Λίστα ετικετών/κατηγοριών προϊόντων +CatMemberList=Λίστα ετικετών/κατηγοριών μελών CatContactList=Λίστα ετικετών/κατηγοριών επαφών CatProjectsList=Λίστα ετικετών/κατηγοριών έργων CatUsersList=Λίστα ετικετών/κατηγοριών χρηστών CatSupLinks=Σύνδεσμοι μεταξύ προμηθευτών και ετικετών/κατηγοριών -CatCusLinks=Συνδέσεις μεταξύ πελατών/προοπτικών και ετικετών/κατηγοριών +CatCusLinks=Σύνδεσμοι μεταξύ πελατών/προοπτικών και ετικετών/κατηγοριών CatContactsLinks=Σύνδεσμοι μεταξύ επαφών / διευθύνσεων και ετικετών / κατηγοριών -CatProdLinks=Συνδέσεις μεταξύ προϊόντων/υπηρεσιών και ετικετών/κατηγοριών +CatProdLinks=Σύνδεσμοι μεταξύ προϊόντων/υπηρεσιών και ετικετών/κατηγοριών CatMembersLinks=Σύνδεσμοι μεταξύ μελών και ετικετών/κατηγοριών -CatProjectsLinks=Links between projects and tags/categories +CatProjectsLinks=Σύνδεσμοι μεταξύ έργων και ετικετών/κατηγοριών CatUsersLinks=Σύνδεσμοι μεταξύ χρηστών και ετικετών/κατηγοριών DeleteFromCat=Αφαίρεση αυτής της ετικέτας/κατηγορίας ExtraFieldsCategories=Συμπληρωματικά χαρακτηριστικά CategoriesSetup=Ρύθμιση ετικετών/κατηγοριών -CategorieRecursiv=Αυτόματη σύνδεση με μητρική ετικέτα/κατηγορία -CategorieRecursivHelp=Εάν είναι ενεργοποιημένη η επιλογή, όταν προσθέσετε ένα προϊόν σε μια υποκατηγορία, το προϊόν θα προστεθεί επίσης στην κατηγορία γονέων. +CategorieRecursiv=Αυτόματη σύνδεση με γονική ετικέτα/κατηγορία +CategorieRecursivHelp=Εάν η επιλογή είναι ενεργοποιημένη, όταν προσθέτετε ένα προϊόν σε μια υποκατηγορία, το προϊόν θα προστίθεται επίσης στη γονική κατηγορία. AddProductServiceIntoCategory=Προσθέστε το ακόλουθο προϊόν/υπηρεσία AddCustomerIntoCategory=Εκχώρηση κατηγορίας στον πελάτη AddSupplierIntoCategory=Εκχώρηση κατηγορίας στον προμηθευτή AssignCategoryTo=Εκχώρηση κατηγορίας σε ShowCategory=Εμφάνιση ετικέτας/κατηγορίας -ByDefaultInList=By default in list +ByDefaultInList=Από προεπιλογή στη λίστα ChooseCategory=Επιλέξτε κατηγορία StocksCategoriesArea=Κατηγορίες Αποθήκης +TicketsCategoriesArea=Κατηγορίες ticket ActionCommCategoriesArea=Κατηγορίες εκδηλώσεων WebsitePagesCategoriesArea=Κατηγορίες Σελίδας-Κοντέινερ KnowledgemanagementsCategoriesArea=Κατηγορίες άρθρου KM UseOrOperatorForCategories=Χρησιμοποιήστε τον τελεστή 'OR' για κατηγορίες +AddObjectIntoCategory=Προσθήκη αντικειμένου στην κατηγορία diff --git a/htdocs/langs/el_GR/commercial.lang b/htdocs/langs/el_GR/commercial.lang index 61c4069b15c..746c112fe41 100644 --- a/htdocs/langs/el_GR/commercial.lang +++ b/htdocs/langs/el_GR/commercial.lang @@ -1,81 +1,81 @@ # Dolibarr language file - Source file is en_US - commercial Commercial=Εμπορικό -CommercialArea=Περιοχή Εμπορικού +CommercialArea=Τομέας Εμπορικού Customer=Πελάτης Customers=Πελάτες Prospect=Προοπτική Prospects=Προοπτικές -DeleteAction=Διαγραφή ενός συμβάντος +DeleteAction=Διαγραφή μιας ενέργειας NewAction=Νέο συμβάν AddAction=Δημιουργία συμβάντος AddAnAction=Δημιουργία συμβάντος -AddActionRendezVous=Δημιουργήστε μια εκδήλωση ραντεβού -ConfirmDeleteAction=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το γεγονός; -CardAction=Καρτέλα Συμβάντος +AddActionRendezVous=Δημιουργία ραντεβού +ConfirmDeleteAction=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ενέργεια; +CardAction=Καρτέλα Ενεργειών ActionOnCompany=Σχετιζόμενη επιχείριση ActionOnContact=Σχετιζόμενη επαφή TaskRDVWith=Συνάντηση με %s -ShowTask=Εμφάνιση Εργασίας -ShowAction=Εμφάνιση Συμβάντος +ShowTask=Εμφάνιση εργασίας +ShowAction=Εμφάνιση ενέργειας ActionsReport=Αναφορά Ενεργειών -ThirdPartiesOfSaleRepresentative=Στοιχείο με τον αντιπρόσωπο πωλήσεων -SaleRepresentativesOfThirdParty=Εκπρόσωποι πωλήσεων τρίτου μέρους +ThirdPartiesOfSaleRepresentative=Τρίτα μέρη με αντιπρόσωπο πωλήσεων +SaleRepresentativesOfThirdParty=Αντιπρόσωποι πωλήσεων τρίτων SalesRepresentative=Αντιπρόσωπος πωλήσεων SalesRepresentatives=Αντιπρόσωποι πωλήσεων -SalesRepresentativeFollowUp=Αντιπρόσωπο πωλήσεων (παρακολούθηση) +SalesRepresentativeFollowUp=Αντιπρόσωπος πωλήσεων (παρακολούθηση) SalesRepresentativeSignature=Αντιπρόσωπος πωλήσεων (υπογραφή) -NoSalesRepresentativeAffected=No particular sales representative affected +NoSalesRepresentativeAffected=Δεν έχει οριστεί συγκεκριμένος αντιπρόσωπος πωλήσεων ShowCustomer=Εμφάνιση Πελάτη ShowProspect=Εμφάνιση Προοπτικής ListOfProspects=Λίστα Προοπτικών ListOfCustomers=Λίστα Πελατών LastDoneTasks=Πιο πρόσφατες %s ολοκληρωμένες πράξεις LastActionsToDo=Παλαιότερες %s ημιτελείς ενέργειες -DoneAndToDoActions=Ολοκληρωμένα και τρέχοντα συμβάντα -DoneActions=Ολοκληρωμένα συμβάντα -ToDoActions=Ημιτελή συμβάντα -SendPropalRef=Υποβολή των προσφορών %s +DoneAndToDoActions=Ενέργειες ολοκληρωμένες και προς εκτέλεση +DoneActions=Ολοκληρωμένες ενέργειες +ToDoActions=Ημιτελείς ενέργειες +SendPropalRef=Υποβολή της προσφοράς %s SendOrderRef=Υποβολή της παραγγελίας %s StatusNotApplicable=Χωρίς δυνατότητα εφαρμογής -StatusActionToDo=Να γίνουν +StatusActionToDo=Προς εκτέλεση StatusActionDone=Ολοκληρωμένη StatusActionInProcess=Σε εξέλιξη -TasksHistoryForThisContact=Γεγονότα για το πρόσωπο επικοινωνίας +TasksHistoryForThisContact=Ενέργειες αυτής της επαφής LastProspectDoNotContact=Να μην γίνει επικοινωνία LastProspectNeverContacted=Δεν έχει γίνει επικοινωνία LastProspectToContact=Να γίνει επικοινωνία LastProspectContactInProcess=Επικοινωνία σε εξέλιξη -LastProspectContactDone=Η επικοινωνία έγινε +LastProspectContactDone=Η επαφή ολοκληρώθηκε ActionAffectedTo=Η ενέργεια αφορά τον/την ActionDoneBy=Η ενέργεια έγινε από τον/την ActionAC_TEL=Τηλεφώνημα -ActionAC_FAX=Αποστολή FAX +ActionAC_FAX=Αποστολή fax ActionAC_PROP=Αποστολή προσφορας με email ActionAC_EMAIL=Αποστολή email -ActionAC_EMAIL_IN=Υποδοχή μηνυμάτων ηλεκτρονικού ταχυδρομείου +ActionAC_EMAIL_IN=Λήψη email ActionAC_RDV=Συναντήσεις -ActionAC_INT=Παρέμβαση on site -ActionAC_FAC=Αποστολή Τιμολογίου στον πελάτη με email -ActionAC_REL=Αποστολή Τιμολογίου στον πελάτη με email (υπενθύμιση) +ActionAC_INT=Eπί τόπου παρέμβαση +ActionAC_FAC=Αποστολή τιμολογίου πελάτη μέσω email +ActionAC_REL=Αποστολή τιμολογίου πελάτη μέσω email (υπενθύμιση) ActionAC_CLO=Κλείσιμο ActionAC_EMAILING=Αποστολή μαζικών email -ActionAC_COM=Στείλτε την παραγγελία πώλησης μέσω ταχυδρομείου -ActionAC_SHIP=Αποστολή αποστολής με e-mail -ActionAC_SUP_ORD=Αποστολή εντολής αγοράς μέσω ταχυδρομείου +ActionAC_COM=Αποστολή παραγγελίας πωλήσεων μέσω ταχυδρομείου +ActionAC_SHIP=Αποστολή μέσω ταχυδρομείου +ActionAC_SUP_ORD=Αποστολή παραγγελίας αγοράς μέσω ταχυδρομείου ActionAC_SUP_INV=Αποστολή τιμολογίου προμηθευτή μέσω ταχυδρομείου ActionAC_OTH=Άλλο ActionAC_OTH_AUTO=Άλλος τύπος ActionAC_MANUAL=Χειροκίνητα εισηγμένα συμβάντα -ActionAC_AUTO=Αυτόματα εισηγμένα συμβάντα +ActionAC_AUTO=Αυτόματα εισαγμένα συμβάντα ActionAC_OTH_AUTOShort=Άλλο -ActionAC_EVENTORGANIZATION=Εκδηλώσεις οργάνωσης εκδηλώσεων +ActionAC_EVENTORGANIZATION=Ενέργειες οργάνωσης εκδηλώσης Stats=Στατιστικά πωλήσεων StatusProsp=Κατάσταση προοπτικής -DraftPropals=Σχέδιο εμπορικών προσφορών +DraftPropals=Προσχέδιο προσφορών NoLimit=Κανένα όριο ToOfferALinkForOnlineSignature=Σύνδεσμος για ηλεκτρονική υπογραφή -WelcomeOnOnlineSignaturePage=Καλώς ήρθατε στη σελίδα για να δεχτείτε εμπορικές προτάσεις από %s -ThisScreenAllowsYouToSignDocFrom=Αυτή η οθόνη σάς επιτρέπει να δεχτείτε και να υπογράψετε ή να αρνηθείτε μια πρόταση / εμπορική πρόταση -ThisIsInformationOnDocumentToSign=Αυτές είναι οι πληροφορίες σχετικά με το έγγραφο που αποδέχεστε ή απορρίπτετε +WelcomeOnOnlineSignaturePage=Καλώς ήρθατε στη σελίδα αποδοχής εμπορικών προτάσεων από %s +ThisScreenAllowsYouToSignDocFrom=Αυτή η οθόνη σάς επιτρέπει να αποδεχτείτε και να υπογράψετε ή να αρνηθείτε μια προσφορά +ThisIsInformationOnDocumentToSign=Αυτές είναι οι πληροφορίες σχετικά με το έγγραφο προς αποδοχή ή απορρίψη SignatureProposalRef=Υπογραφή προσφοράς / εμπορικής πρότασης %s -FeatureOnlineSignDisabled=Χαρακτηριστικό για απενεργοποίηση υπογραφής σε απευθείας σύνδεση ή δημιουργία εγγράφου προτού ενεργοποιηθεί η δυνατότητα +FeatureOnlineSignDisabled=Η δυνατότητα για ηλεκτρονική υπογραφή απενεργοποιήθηκε ή δημιουργήθηκε έγγραφο πριν από την ενεργοποίηση της δυνατότητας diff --git a/htdocs/langs/el_GR/companies.lang b/htdocs/langs/el_GR/companies.lang index af84c23a449..661a9fe9688 100644 --- a/htdocs/langs/el_GR/companies.lang +++ b/htdocs/langs/el_GR/companies.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - companies ErrorCompanyNameAlreadyExists=Το όνομα τις εταιρίας %s υπάρχει ήδη. Επιλέξτε κάποιο άλλο. ErrorSetACountryFirst=Πρώτα πρέπει να οριστεί η χώρα -SelectThirdParty=Επιλέξτε ένα Πελ./Προμ. +SelectThirdParty=Επιλογή τρίτου μέρους ConfirmDeleteCompany=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την εταιρία και όλες τις σχετικές πληροφορίες αυτής; -DeleteContact=Διαγραφή προσώπου επικοινωνίας +DeleteContact=Διαγραφή επαφής / διεύθυνσης ConfirmDeleteContact=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την επαφή και όλες τις σχετικές πληροφορίες αυτής; MenuNewThirdParty=Νέο τρίτο μέρος MenuNewCustomer=Νέος πελάτης @@ -13,26 +13,26 @@ MenuNewPrivateIndividual=Νέος Ιδιώτης NewCompany=Νέα εταιρία ( προοπτική, πελάτης, προμηθευτής) NewThirdParty=Νέο τρίτο μέρος (προοπτική, πελάτης, προμηθευτής) CreateDolibarrThirdPartySupplier=Δημιουργία τρίτου μέρους (προμηθευτής) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Δημιουργία τρίτου μέρους CreateThirdPartyAndContact=Δημιουργία τρίτου μέρους + θυγατρικής επαφής -ProspectionArea=Περιοχή προοπτικής -IdThirdParty=Αναγνωριστικό +ProspectionArea=Τομέας προοπτικών +IdThirdParty=Αναγνωριστικό τρίτου μέρους IdCompany=Αναγνωριστικό εταιρίας -IdContact=Αναγνωριστικό αντιπροσώπου +IdContact=Αναγνωριστικό επαφής ThirdPartyAddress=Διεύθυνση τρίτου μέρους ThirdPartyContacts=Επαφές τρίτου μέρους ThirdPartyContact=Επαφή / διεύθυνση τρίτου μέρους Company=Εταιρία CompanyName=Όνομα εταιρίας -AliasNames=Ψευδώνυμο (εμπορικό, εμπορικό σήμα, ...) +AliasNames=Διακριτικός τίτλος (εμπορικό, εμπορικό σήμα, ...) AliasNameShort=Διακριτικός τίτλος Companies=Εταιρίες -CountryIsInEEC=Η χώρα είναι εντός της Ευρωπαϊκής Οικονομικής Κοινότητας +CountryIsInEEC=Η χώρα βρίσκεται εντός της Ευρωπαϊκής Οικονομικής Κοινότητας PriceFormatInCurrentLanguage=Μορφή εμφάνισης τιμής στην τρέχουσα γλώσσα και νόμισμα ThirdPartyName=Όνομα τρίτου μέρους -ThirdPartyEmail=Ηλεκτρονικό ταχυδρομείο τρίτου μέρους +ThirdPartyEmail=Email τρίτου μέρους ThirdParty=Τρίτο μέρος -ThirdParties=Πελάτες/Συνεργάτες +ThirdParties=Πελάτες/Προμηθευτές ThirdPartyProspects=Προοπτικές ThirdPartyProspectsStats=Προοπτικές ThirdPartyCustomers=Πελάτες @@ -41,14 +41,14 @@ ThirdPartyCustomersWithIdProf12=Πελάτες με %s ή %s ThirdPartySuppliers=Προμηθευτές ThirdPartyType=Τύπος τρίτου μέρους Individual=Ιδιώτης -ToCreateContactWithSameName=Θα δημιουργήσει αυτόματα μια επαφή / διεύθυνση με τις ίδιες πληροφορίες με το τρίτο μέρος στο τρίτο μέρος. Στις περισσότερες περιπτώσεις, ακόμη και αν το τρίτο σας πρόσωπο είναι φυσικό πρόσωπο, είναι αρκετό να δημιουργηθεί ένα τρίτο μέρος μόνο του. +ToCreateContactWithSameName=Θα δημιουργήσει αυτόματα μια επαφή / διεύθυνση με τις ίδιες πληροφορίες με το τρίτο μέρος στην καρτέλα τρίτου μέρους. Στις περισσότερες περιπτώσεις, ακόμη και αν το τρίτο μέρος είναι φυσικό πρόσωπο, αρκεί απλά η δημιουργία του τρίτου μέρους. ParentCompany=Γονική εταιρία Subsidiaries=Θυγατρικές ReportByMonth=Αναφορά ανά Μήνα ReportByCustomers=Αναφορά ανά Πελάτη ReportByThirdparties=Αναφορά ανά Τρίτο Μέρος ReportByQuarter=Αναφορά ανά Τιμή -CivilityCode=Προσφωνήσεις +CivilityCode=Προσφώνηση RegisteredOffice=Έδρα της εταιρείας Lastname=Επίθετο Firstname=Όνομα @@ -59,14 +59,15 @@ UserTitle=Τίτλος NatureOfThirdParty=Φύση του τρίτου μέρους NatureOfContact=Φύση της επαφής Address=Διεύθυνση -State=Πολιτεία/Επαρχία -StateCode=Κωδικός κράτους / επαρχίας -StateShort=Κατάσταση +State=Νομός/Δήμος +StateId=Αναγνωριστικό Νομού +StateCode=Κωδικός Νομού / Δήμου +StateShort=Νομός Region=Περιοχή -Region-State=Περιοχή - Κράτος +Region-State=Περιοχή - Δήμος Country=Χώρα CountryCode=Κωδικός χώρας -CountryId=Id Χώρας +CountryId=Αναγνωριστικό χώρας Phone=Τηλέφωνο PhoneShort=Τηλέφωνο Skype=Skype @@ -75,7 +76,7 @@ Chat=Συνομιλία PhonePro=Επαγγ. τηλέφωνο PhonePerso=Προσωπ. τηλέφωνο PhoneMobile=Κιν. τηλέφωνο -No_Email=Απορρίψτε μαζικά μηνύματα ηλεκτρονικού ταχυδρομείου +No_Email=Απόρριψη μαζικών Email Fax=Φαξ Zip=Ταχ. Κώδικας Town=Πόλη @@ -85,14 +86,14 @@ DefaultLang=Προεπιλεγμένη γλώσσα VATIsUsed=Φόρος πωλήσεων που χρησιμοποιήθηκε VATIsUsedWhenSelling=Αυτό προσδιορίζει αν το τρίτο μέρος περιλαμβάνει φόρο πώλησης ή όχι όταν εκδίδει τιμολόγιο στους δικούς του πελάτες VATIsNotUsed=Ο φόρος επί των πωλήσεων δεν χρησιμοποιείται -CopyAddressFromSoc=Αντιγράψτε τη διεύθυνση από στοιχεία τρίτου μέρους -ThirdpartyNotCustomerNotSupplierSoNoRef=Τρίτο μέρος ούτε πελάτης ούτε πωλητής, κανένα διαθέσιμο αντικείμενο αναφοράς -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Τρίτο μέρος ούτε πελάτης ούτε πωλητής, οι εκπτώσεις δεν είναι διαθέσιμες -PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +CopyAddressFromSoc=Αντιγραφή διεύθυνσης από τα στοιχεία τρίτου μέρους +ThirdpartyNotCustomerNotSupplierSoNoRef=Το τρίτο μέρος δεν είναι πελάτης ή προμηθευτής, κανένα διαθέσιμο αντικείμενο αναφοράς +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Το τρίτο μέρος δεν είναι πελάτης ή προμηθευτής, δεν υπάρχουν διαθέσιμες εκπτώσεις +PaymentBankAccount=Τραπεζικός λογαριασμός πληρωμών +OverAllProposals=Σύνολο Προσφορών +OverAllOrders=Σύνολο Παραγγελιών +OverAllInvoices=Σύνολο Τιμολογίων +OverAllSupplierProposals=Σύνολο Αιτημάτων τιμής ##### Local Taxes ##### LocalTax1IsUsed=Χρησιμοποιήστε το δεύτερο φόρο LocalTax1IsUsedES= RE is used @@ -101,24 +102,24 @@ LocalTax2IsUsed=Χρησιμοποιήστε τον τρίτο φόρο LocalTax2IsUsedES= IRPF is used LocalTax2IsNotUsedES= IRPF is not used WrongCustomerCode=Άκυρος κωδικός πελάτη -WrongSupplierCode=Ο κωδικός προμηθευτή είναι άκυρος -CustomerCodeModel=Μοντέλου κωδικού πελάτη -SupplierCodeModel=Πρότυπο κώδικα προμηθευτή +WrongSupplierCode=Άκυρος κωδικός προμηθευτή +CustomerCodeModel=Μοντέλο κωδικού πελάτη +SupplierCodeModel=Μοντέλο κωδικού προμηθευτή Gencod=Barcode GencodBuyPrice=Barcode αναφοράς τιμής ##### Professional ID ##### ProfId1Short=Επάγγελμα ProfId2Short=Δ.Ο.Υ. -ProfId3Short=Prof. id 3 -ProfId4Short=Prof. id 4 -ProfId5Short=Καθ. id 5 -ProfId6Short=Επαγγελματική ταυτότητα 6 +ProfId3Short=Επαγγ. ταυτ. 3 +ProfId4Short=Επαγγ. ταυτ. 4 +ProfId5Short=Επαγγ. ταυτ. 5 +ProfId6Short=Επαγγ. ταυτ. 6 ProfId1=ΕΠΑΓΓΕΛΜΑ ProfId2=Δ.Ο.Υ. -ProfId3=Επαγγελματική ταυτότητα 3 -ProfId4=Επαγγελματική ταυτότητα 4 -ProfId5=Επαγγελματική ταυτότητα 5 -ProfId6=Επαγγελματική ταυτότητα 6 +ProfId3=ΕΠΑΓΓΕΛΜΑΤΙΚΗ ΤΑΥΤΟΤΗΤΑ 3 +ProfId4=ΕΠΑΓΓΕΛΜΑΤΙΚΗ ΤΑΥΤΟΤΗΤΑ 4 +ProfId5=ΕΠΑΓΓΕΛΜΑΤΙΚΗ ΤΑΥΤΟΤΗΤΑ 5 +ProfId6=ΕΠΑΓΓΕΛΜΑΤΙΚΗ ΤΑΥΤΟΤΗΤΑ 6 ProfId1AR=Prof Id 1 (CUIT/CUIL) ProfId2AR=Prof Id 2 (Revenu brutes) ProfId3AR=- @@ -155,7 +156,7 @@ ProfId3CH=Prof Id 1 (Federal number) ProfId4CH=Prof Id 2 (Αριθμός Εμπορικής Εγγραφής) ProfId5CH=Αριθμός EORI ProfId6CH=- -ProfId1CL=Ο καθηγητής Id 1 (RUT) +ProfId1CL=Prof Id 1 (R.U.T.) ProfId2CL=- ProfId3CL=- ProfId4CL=- @@ -163,17 +164,17 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Πιστοποιητικό καταθέσεων) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Άλλα) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Πιστοποιητικό καταθέσεων +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Άλλα-οι ProfId6ShortCM=- -ProfId1CO=Καθ Id 1 (RUT) +ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- ProfId3CO=- ProfId4CO=- @@ -219,7 +220,7 @@ ProfId1IN=Prof Id 1 (TIN) ProfId2IN=Prof Id 2 ProfId3IN=Prof Id 3 ProfId4IN=Prof Id 4 -ProfId5IN=Καθ ID 5 +ProfId5IN=Prof Id 5 ProfId6IN=- ProfId1IT=- ProfId2IT=- @@ -235,13 +236,13 @@ ProfId5LU=Αριθμός EORI ProfId6LU=- ProfId1MA=Id prof. 1 (RC) ProfId2MA=Id prof. 2 (Patente) -ProfId3MA=Id prof. 3 (ΑΝ) +ProfId3MA=Id prof. 3 (I.F.) ProfId4MA=Id prof. 4 (CNSS) ProfId5MA=Id prof. 5 (I.C.E.) ProfId6MA=- ProfId1MX=Ο καθηγητής Id 1 (RFC). ProfId2MX=Ο καθηγητής ID 2 (R.. Π. IMSS) -ProfId3MX=Ο καθηγητής Id 3 (Profesional Χάρτη) +ProfId3MX=Prof Id 3 (Profesional Charter) ProfId4MX=- ProfId5MX=- ProfId6MX=- @@ -299,7 +300,7 @@ ProfId3DZ=NIF ProfId4DZ=NIS VATIntra=ΑΦΜ VATIntraShort=ΑΦΜ -VATIntraSyntaxIsValid=Το συντακτικό είναι έγκυρο +VATIntraSyntaxIsValid=Η σύνταξη είναι έγκυρη VATReturn=Επιστροφή ΦΠΑ ProspectCustomer=Προοπτική / Πελάτης Prospect=Προοπτική @@ -309,95 +310,95 @@ CustomerRelativeDiscount=Σχετική έκπτωση πελάτη SupplierRelativeDiscount=Σχετική έκπτωση προμηθευτή CustomerRelativeDiscountShort=Σχετική έκπτωση CustomerAbsoluteDiscountShort=Απόλυτη έκπτωση -CompanyHasRelativeDiscount=This customer has a discount of %s%% -CompanyHasNoRelativeDiscount=This customer has no relative discount by default +CompanyHasRelativeDiscount=Αυτός ο πελάτης έχει προεπιλεγμένη έκπτωση %s%% +CompanyHasNoRelativeDiscount=Αυτός ο πελάτης δεν έχει σχετική έκπτωση από προεπιλογή HasRelativeDiscountFromSupplier=Έχετε προεπιλεγμένη έκπτωση %s%% από αυτόν τον προμηθευτή HasNoRelativeDiscountFromSupplier=Δεν έχετε προεπιλεγμένη σχετική έκπτωση από αυτόν τον προμηθευτή -CompanyHasAbsoluteDiscount=Αυτός ο πελάτης έχει διαθέσιμες εκπτώσεις (σημειώσεις πιστωτικών μονάδων ή προκαταβολές) για %s %s +CompanyHasAbsoluteDiscount=Αυτός ο πελάτης έχει διαθέσιμες εκπτώσεις (πιστωτικές σημειώσεις ή προκαταβολές) για %s %s CompanyHasDownPaymentOrCommercialDiscount=Αυτός ο πελάτης έχει διαθέσιμες εκπτώσεις (εμπορικές, προκαταβολές) για %s %s -CompanyHasCreditNote=Ο πελάτης εξακολουθεί να έχει πιστωτικά τιμολόγια για %s %s -HasNoAbsoluteDiscountFromSupplier=Δεν διαθέτετε πίστωση έκπτωσης από αυτόν τον πωλητή +CompanyHasCreditNote=Αυτός ο πελάτης έχει ακόμα πιστωτικές σημειώσεις για %s %s +HasNoAbsoluteDiscountFromSupplier=Δεν έχετε διαθέσιμη πίστωση έκπτωσης από αυτόν τον προμηθευτή HasAbsoluteDiscountFromSupplier=Έχετε διαθέσιμες εκπτώσεις (πιστωτικές σημειώσεις ή προκαταβολές) για %s %s από αυτόν τον προμηθευτή HasDownPaymentOrCommercialDiscountFromSupplier=Έχετε διαθέσιμες εκπτώσεις (εμπορικές, προκαταβολές) για %s %s από αυτόν τον προμηθευτή HasCreditNoteFromSupplier=Έχετε πιστωτικές σημειώσεις για %s %s από αυτόν τον προμηθευτή -CompanyHasNoAbsoluteDiscount=This customer has no discount credit available +CompanyHasNoAbsoluteDiscount=Αυτός ο πελάτης δεν έχει διαθέσιμη πίστωση έκπτωσης CustomerAbsoluteDiscountAllUsers=Απόλυτες εκπτώσεις πελατών (που χορηγούνται από όλους τους χρήστες) -CustomerAbsoluteDiscountMy=Απόλυτες εκπτώσεις πελατών (χορηγούνται μόνοι σας) -SupplierAbsoluteDiscountAllUsers=Απόλυτες εκπτώσεις πωλητών (καταχωρημένες από όλους τους χρήστες) +CustomerAbsoluteDiscountMy=Απόλυτες εκπτώσεις πελατών (χορηγούνται από Εσάς) +SupplierAbsoluteDiscountAllUsers=Απόλυτες εκπτώσεις προμηθευτών (που εισάγονται από όλους τους χρήστες) SupplierAbsoluteDiscountMy=Απόλυτες εκπτώσεις πωλητών (καταχωρημένες από εσάς) DiscountNone=Καμία Vendor=Προμηθευτής Supplier=Προμηθευτής AddContact=Δημιουργία επαφής -AddContactAddress=Δημιουργία επαφής/διεύθυνση +AddContactAddress=Δημιουργία επαφής/διεύθυνσης EditContact=Επεξεργασία επαφής EditContactAddress=Επεξεργασία επαφής/διεύθυνσης Contact=Επαφή/Διεύθυνση -Contacts=Αντιπρόσωποι -ContactId=Contact id +Contacts=Επαφές/Διευθύνσεις +ContactId=Αναγνωριστικό επαφής ContactsAddresses=Επαφές/Διευθύνσεις -FromContactName=Name: -NoContactDefinedForThirdParty=Δεν έχει ορισθεί πρόσωπο επικοινωνίας για αυτόν τον Πελ/Προμ -NoContactDefined=Δεν έχει ορισθεί πρόσωπο επικοινωνίας -DefaultContact=Προκαθορισμένος εκπρόσωπος/διεύθυνση +FromContactName=Όνομα: +NoContactDefinedForThirdParty=Δεν έχει οριστεί επαφή για αυτό το τρίτο μέρος +NoContactDefined=Δεν έχει οριστεί επαφή +DefaultContact=Προεπιλεγμένη επαφή/διεύθυνση ContactByDefaultFor=Προεπιλεγμένη επαφή / διεύθυνση για -AddThirdParty=Δημιουργήστε Πελ./Προμ. -DeleteACompany=Διαγραφή εταιρίας +AddThirdParty=Δημιουργία τρίτου μέρους +DeleteACompany=Διαγραφή εταιρείας PersonalInformations=Προσωπικά δεδομένα -AccountancyCode=Λογιστική λογαριασμού +AccountancyCode=Λογιστικός λογαριασμός CustomerCode=Κωδικός πελάτη SupplierCode=Κωδικός προμηθευτή CustomerCodeShort=Κωδικός πελάτη SupplierCodeShort=Κωδικός προμηθευτή CustomerCodeDesc=Κωδικός πελάτη, μοναδικός για κάθε πελάτη -SupplierCodeDesc=Κωδικός προμηθευτή, μοναδικό για όλους τους προμηθευτές -RequiredIfCustomer=Απαιτείται αν το στοιχείο είναι πελάτης ή προοπτική -RequiredIfSupplier=Απαιτείται αν κάποιος τρίτος είναι πωλητής -ValidityControledByModule=Η εγκυρότητα ελέγχεται από τη μονάδα +SupplierCodeDesc=Κωδικός προμηθευτή, μοναδικός για κάθε προμηθευτή +RequiredIfCustomer=Απαιτείται εάν το τρίτο μέρος είναι πελάτης ή υποψήφιος πελάτης +RequiredIfSupplier=Απαιτείται εάν το τρίτο μέρος είναι προμηθευτής +ValidityControledByModule=Η εγκυρότητα ελέγχεται από τη ενότητα ThisIsModuleRules=Κανόνες για αυτήν την ενότητα -ProspectToContact=Προοπτική σε Επαφή -CompanyDeleted="%s" διαγράφηκε από την βάση δεδομένων -ListOfContacts=Λίστα αντιπροσώπων -ListOfContactsAddresses=Λίστα αντιπροσώπων -ListOfThirdParties=Κατάλογος τρίτων μερών +ProspectToContact=Προοπτική για επικοινωνία +CompanyDeleted=Η εταιρεία "%s" διαγράφηκε από τη βάση δεδομένων. +ListOfContacts=Λίστα επαφών/διευθύνσεων +ListOfContactsAddresses=Λίστα επαφών/διευθύνσεων +ListOfThirdParties=Λίστα τρίτων μερών ShowCompany=Τρίτο Μέρος ShowContact=Επαφή-Διεύθυνση ContactsAllShort=Όλα (Χωρίς Φίλτρο) -ContactType=Τύπος αντιπροσώπου επικοινωνίας -ContactForOrders=Αντιπρόσωπος επικοινωνίας για παραγγελία -ContactForOrdersOrShipments=Order's or shipment's contact -ContactForProposals=Αντιπρόσωπος επικοινωνίας για πρόταση -ContactForContracts=Αντιπρόσωπος επικοινωνίας για συμβόλαιο -ContactForInvoices=Αντιπρόσωπος επικοινωνίας για τιμολόγιο -NoContactForAnyOrder=Αυτός ο αντιπρόσωπος δεν αντιστοιχεί σε καμία παραγγελία -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment -NoContactForAnyProposal=Αυτός ο αντιπρόσωπος δεν αντιστοιχεί σε καμία εμπορική πρόταση -NoContactForAnyContract=Αυτός ο αντιπρόσωπος δεν αντιστοιχεί σε κανένα συμβόλαιο -NoContactForAnyInvoice=Αυτός ο αντιπρόσωπος δεν αντιστοιχεί σε κανένα τιμολόγιο -NewContact=Νέος αντιπρόσωπος επικοινωνίας +ContactType=Ρόλος επαφής +ContactForOrders=Επαφή για παραγγελίες +ContactForOrdersOrShipments=Επαφή για παραγγελίες ή αποστολές +ContactForProposals=Επαφή για προσφορές +ContactForContracts=Επαφή για συμβάσεις +ContactForInvoices=Επαφή λογιστηρίου +NoContactForAnyOrder=Αυτή η επαφή δεν είναι επαφή για οποιαδήποτε παραγγελία +NoContactForAnyOrderOrShipments=Αυτή η επαφή δεν είναι επαφή για οποιαδήποτε παραγγελία ή αποστολή +NoContactForAnyProposal=Αυτή η επαφή δεν είναι επαφή για οποιαδήποτε εμπορική προσφορά +NoContactForAnyContract=Αυτή η επαφή δεν είναι επαφή για καμία σύμβαση +NoContactForAnyInvoice=Αυτή η επαφή δεν είναι επαφή για κανένα τιμολόγιο +NewContact=Νέα επαφή NewContactAddress=Νέα επαφή / διεύθυνση -MyContacts=Αντιπρόσωποι επικοινωνίας +MyContacts=Οι επαφές μου Capital=Κεφάλαιο -CapitalOf=Capital of %s +CapitalOf=Κεφάλαιο της %s EditCompany=Επεξεργασία Εταιρίας -ThisUserIsNot=Αυτός ο χρήστης δεν είναι προοπτική, πελάτης ή πωλητής +ThisUserIsNot=Αυτός ο χρήστης δεν είναι υποψήφιος πελάτης, πελάτης ή προμηθευτής VATIntraCheck=Έλεγχος -VATIntraCheckDesc=Το αναγνωριστικό ΦΠΑ πρέπει να περιλαμβάνει το πρόθεμα χώρας. Ο σύνδεσμος %s χρησιμοποιεί την ευρωπαϊκή υπηρεσία ελέγχου ΦΠΑ (VIES), η οποία απαιτεί πρόσβαση στο Διαδίκτυο από το διακομιστή Dolibarr. +VATIntraCheckDesc=Το ΑΦΜ πρέπει να περιλαμβάνει το πρόθεμα χώρας. Ο σύνδεσμος %s χρησιμοποιεί την ευρωπαϊκή υπηρεσία ελέγχου ΦΠΑ (VIES), η οποία απαιτεί πρόσβαση στο Διαδίκτυο από το διακομιστή Dolibarr. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do -VATIntraCheckableOnEUSite=Ελέγξτε το ενδοκοινοτικό αναγνωριστικό ΦΠΑ στον δικτυακό τόπο της Ευρωπαϊκής Επιτροπής +VATIntraCheckableOnEUSite=Ελέγξτε το ενδοκοινοτικό ΑΦΜ στον δικτυακό τόπο της Ευρωπαϊκής Επιτροπής VATIntraManualCheck=Μπορείτε επίσης να ελέγξετε με μη αυτόματο τρόπο στον ιστότοπο της Ευρωπαϊκής Επιτροπής %s -ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s). -NorProspectNorCustomer=Δεν προοπτική, ούτε πελάτης -JuridicalStatus=Τύπος νομικού προσώπου +ErrorVATCheckMS_UNAVAILABLE=Ο έλεγχος δεν είναι δυνατός. Η υπηρεσία ελέγχου δεν παρέχεται από το κράτος μέλος (%s). +NorProspectNorCustomer=Ούτε προοπτική, ούτε πελάτης +JuridicalStatus=Τύπος επιχειρηματικής οντότητας Workforce=Αριθμός εργαζομένων -Staff=Εργαζόμενοι -ProspectLevelShort=Δυναμική -ProspectLevel=Δυναμική προοπτικής -ContactPrivate=Προσωπική +Staff=Υπάλληλοι +ProspectLevelShort=Πιθανότητα +ProspectLevel=Πιθανότητα προοπτικής +ContactPrivate=Ιδιωτική ContactPublic=Κοινόχρηστη ContactVisibility=Ορατότητα -ContactOthers=Άλλο -OthersNotLinkedToThirdParty=Άλλα που δεν συνδέονται με κάποιο στοιχείο +ContactOthers=Άλλη +OthersNotLinkedToThirdParty=Άλλοι, που δεν συνδέονται με τρίτο μέρος ProspectStatus=Κατάσταση Προοπτικής PL_NONE=Καμία PL_UNKNOWN=Άγνωστη @@ -405,95 +406,95 @@ PL_LOW=Χαμηλή PL_MEDIUM=Μέτρια PL_HIGH=Υψηλή TE_UNKNOWN=- -TE_STARTUP=Νέα +TE_STARTUP=Startup TE_GROUP=Μεγάλη εταιρία TE_MEDIUM=Μεσαία εταιρία -TE_ADMIN=Δημόσιο +TE_ADMIN=Δημόσια υπηρεσία TE_SMALL=Μικρή εταιρία TE_RETAIL=Έμπορος λιανικής TE_WHOLE=Χονδρέμπορος -TE_PRIVATE=Ανεξάρτητο πρόσωπο +TE_PRIVATE=Ελεύθερος επαγγελματίας TE_OTHER=Άλλο StatusProspect-1=Να μην γίνει επικοινωνία StatusProspect0=Δεν έγινε ποτε επικοινωνία StatusProspect1=Προς επικοινωνία StatusProspect2=Επικοινωνία σε εξέλιξη -StatusProspect3=Η επικοινωνία πραγματοποιήθηκε +StatusProspect3=Πραγματοποιήθηκε επικοινωνία ChangeDoNotContact=Αλλαγή κατάστασης σε 'Να μην γίνει επικοινωνία' ChangeNeverContacted=Αλλαγή κατάστασης σε 'Δεν έγινε ποτέ επικοινωνία' ChangeToContact=Αλλαγή κατάστασης σε "Προς επικοινωνία" ChangeContactInProcess=Αλλαγή κατάστασης σε 'Η Επικοινωνία βρίσκεται σε Εξέλιξη' ChangeContactDone=Αλλαγή κατάστασης σε 'Η Επικοινωνία Έγινε' ProspectsByStatus=Προοπτικές ανά κατάσταση -NoParentCompany=Τίποτα -ExportCardToFormat=Export card to format -ContactNotLinkedToCompany=Ο αντιπρόσωπος δεν αντιστοιχεί σε κάποιο στοιχείο +NoParentCompany=Καμία +ExportCardToFormat=Εξαγωγή κάρτας σε μορφή +ContactNotLinkedToCompany=Η επαφή δεν συνδέεται με κανένα τρίτο μέρος DolibarrLogin=Είσοδος Dolibarr NoDolibarrAccess=Χωρίς πρόσβαση στο Dolibarr -ExportDataset_company_1=Τρίτα μέρη (εταιρείες / ιδρύματα / φυσικοί) και οι ιδιότητές τους -ExportDataset_company_2=Οι επαφές και οι ιδιότητές τους -ImportDataset_company_1=Τρίτα μέρη και τις ιδιότητές τους -ImportDataset_company_2=Πρόσθετες επαφές / διευθύνσεις και χαρακτηριστικά τρίτων μερών -ImportDataset_company_3=Τραπεζικοί λογαριασμοί τρίτων μερών +ExportDataset_company_1=Πελάτες/Προμηθευτές (εταιρείες / ιδρύματα / φυσικά πρόσωπα) και οι ιδιότητές τους +ExportDataset_company_2=Επαφές και οι ιδιότητες τους +ImportDataset_company_1=Πελάτες/Προμηθευτές και οι ιδιότητές τους +ImportDataset_company_2=Πρόσθετες επαφές/διευθύνσεις και χαρακτηριστικά Πελατών/Προμηθευτών +ImportDataset_company_3=Τραπεζικοί λογαριασμοί Πελατών/Προμηθευτών ImportDataset_company_4=Αντιπρόσωποι πωλήσεων τρίτων μερών (εκχώρηση εκπροσώπων πωλήσεων / χρηστών σε εταιρείες) PriceLevel=Επίπεδο τιμών PriceLevelLabels=Ετικέτες επιπέδου τιμής DeliveryAddress=Διεύθυνση αποστολής -AddAddress=Δημιουργία διεύθυνσης -SupplierCategory=Κατηγορία προμηθευτών +AddAddress=Προσθήκη διεύθυνσης +SupplierCategory=Κατηγορία προμηθευτή JuridicalStatus200=Ανεξάρτητος DeleteFile=Διαγραφή Αρχείου ConfirmDeleteFile=Είστε σίγουροι ότι θέλετε να διαγράψετε το αρχείο; -AllocateCommercial=Έχει αποδοθεί σε αντιπρόσωπο πωλήσεων +AllocateCommercial=Ανατέθηκε σε αντιπρόσωπο πωλήσεων Organization=Οργανισμός FiscalYearInformation=Οικονομικό έτος -FiscalMonthStart=Μήνας Εκκίνησης Οικονομικού Έτους +FiscalMonthStart=Μήνας έναρξης του οικονομικού έτους SocialNetworksInformation=Κοινωνικά δίκτυα -SocialNetworksFacebookURL=Facebook URL σύνδεσμος -SocialNetworksTwitterURL=Twitter URL σύνδεσμος -SocialNetworksLinkedinURL=Linkedin URL σύνδεσμος -SocialNetworksInstagramURL=Instagram URL σύνδεσμος -SocialNetworksYoutubeURL=Youtube URL σύνδεσμος -SocialNetworksGithubURL=Github URL σύνδεσμος -YouMustAssignUserMailFirst=Πρέπει να δημιουργήσετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου για αυτόν τον χρήστη πριν να μπορέσετε να προσθέσετε μια ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου. -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party +SocialNetworksFacebookURL=Facebook URL +SocialNetworksTwitterURL=Twitter URL +SocialNetworksLinkedinURL=Linkedin URL +SocialNetworksInstagramURL=Instagram URL +SocialNetworksYoutubeURL=Youtube URL +SocialNetworksGithubURL=Github URL +YouMustAssignUserMailFirst=Πρέπει να δημιουργήσετε ένα email για αυτόν τον χρήστη προτού μπορέσετε να προσθέσετε μια ειδοποίηση μέσω email. +YouMustCreateContactFirst=Για να μπορείτε να προσθέσετε ειδοποιήσεις email, πρέπει πρώτα να ορίσετε επαφές με έγκυρα email για το τρίτο μέρος ListSuppliersShort=Λίστα προμηθευτών -ListProspectsShort=Κατάλογος προοπτικών -ListCustomersShort=Κατάλογος πελατών +ListProspectsShort=Λίστα προοπτικών +ListCustomersShort=Λίστα πελατών ThirdPartiesArea=Τρίτα μέρη / Επαφές LastModifiedThirdParties=Τα τελευταία %s τροποποιημένα Τρίτα Μέρη UniqueThirdParties=Συνολικός αριθμός Τρίτων Μερών -InActivity=Ανοίξτε -ActivityCeased=Κλειστό -ThirdPartyIsClosed=Third party is closed -ProductsIntoElements=Κατάλογος των προϊόντων/υπηρεσιών σε %s -CurrentOutstandingBill=Τρέχον εκκρεμείς λογαριασμός -OutstandingBill=Μέγιστο. για εκκρεμείς λογαριασμό -OutstandingBillReached=Max. for outstanding bill reached +InActivity=Ενεργή +ActivityCeased=Ανενεργή +ThirdPartyIsClosed=Το τρίτο μέρος έκλεισε +ProductsIntoElements=Λίστα προϊόντων/υπηρεσιών που αφορούν%s +CurrentOutstandingBill=Τρέχων ανεξόφλητος λογαριασμός +OutstandingBill=Μέγιστο οφειλόμενου ποσού +OutstandingBillReached=Έχει ξεπεραστεί το μέγιστο επιτρεπόμενο ποσό οφειλής OrderMinAmount=Ελάχιστο ποσό για παραγγελία -MonkeyNumRefModelDesc=Επιστρέφει έναν αριθμό με τη μορφή %syymm-nnnn για τον κωδικό πελάτη και %syymm-nnnn για τον κωδικό προμηθευτή όπου yy είναι έτος, mm είναι month και nnnn είναι μια ακολουθία χωρίς διακοπή και καμία επιστροφή στο 0. -LeopardNumRefModelDesc=Customer/supplier code is free. This code can be modified at any time. -ManagingDirectors=Διαχειριστής (ες) ονομασία (CEO, διευθυντής, πρόεδρος ...) -MergeOriginThirdparty=Διπλότυπο Πελ./Προμ. ( Πελ./Προμ. θέλετε να διαγραφεί) -MergeThirdparties=Συγχώνευση Πελ./Προμ. -ConfirmMergeThirdparties=Είστε βέβαιοι ότι θέλετε να συγχωνεύσετε το επιλεγμένο τρίτο μέρος με το τρέχων; Όλα τα συνδεδεμένα αντικείμενα (τιμολόγια, παραγγελίες, ...) θα μεταφερθούν στο τρέχων τρίτο μέρος, στη συνέχεια το επιλεγμένο τρίτο μέρος θα διαγραφεί. +MonkeyNumRefModelDesc=Επιστρέφει έναν αριθμό με τη μορφή %syymm-nnnn για τον κωδικό πελάτη και %syymm-nnnn για τον κωδικό προμηθευτή όπου yy είναι το έτος, mm είναι ο μήνας και nnnn είναι μια ακολουθία αυτόματης αρίθμησης χωρίς επιτρεπτή διακοπή και καμία επιστροφή στο 0. +LeopardNumRefModelDesc=Ο κωδικός πελάτη/προμηθευτή δεν είναι κλειδωμένος. Αυτός ο κωδικός μπορεί να τροποποιηθεί ανά πάσα στιγμή. +ManagingDirectors=Όνομα μάνατζερ (CEO, διευθυντής, πρόεδρος ...) +MergeOriginThirdparty=Διπλότυπο τρίτο μέρος (τρίτο μέρος που θέλετε να διαγράψετε) +MergeThirdparties=Συγχώνευση τρίτων μερών +ConfirmMergeThirdparties=Είστε σίγουροι ότι θέλετε να συγχωνεύσετε το επιλεγμένο τρίτο μέρος με το τρέχων; Όλα τα συνδεδεμένα αντικείμενα (τιμολόγια, παραγγελίες, ...) θα μεταφερθούν στο τρέχων τρίτο μέρος, στη συνέχεια το επιλεγμένο τρίτο μέρος θα διαγραφεί. ThirdpartiesMergeSuccess=Τα τρίτα μέρη έχουν συγχωνευθεί -SaleRepresentativeLogin=Login of sales representative -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative -ErrorThirdpartiesMerge=Παρουσιάστηκε σφάλμα κατά τη διαγραφή των τρίτων. Ελέγξτε το αρχείο καταγραφής. Οι αλλαγές έχουν επανέλθει. -NewCustomerSupplierCodeProposed=Κωδικός πελάτη ή προμηθευτή που έχει ήδη χρησιμοποιηθεί, προτείνεται ένας νέος κωδικός -KeepEmptyIfGenericAddress=Διατηρήστε αυτό το πεδίο κενό εάν αυτή η διεύθυνση είναι γενική διεύθυνση +SaleRepresentativeLogin=Login αντιπροσώπου πωλήσεων +SaleRepresentativeFirstname=Όνομα αντιπροσώπου πωλήσεων +SaleRepresentativeLastname=Επώνυμο αντιπροσώπου πωλήσεων +ErrorThirdpartiesMerge=Παρουσιάστηκε σφάλμα κατά τη διαγραφή τρίτων μερών. Ελέγξτε το αρχείο καταγραφής. Δεν έγιναν αλλαγές. +NewCustomerSupplierCodeProposed=Ο κωδικός πελάτη ή προμηθευτή χρησιμοποιείται ήδη, προτείνεται νέος κωδικός +KeepEmptyIfGenericAddress=Διατηρήστε αυτό το πεδίο κενό εάν αυτή η διεύθυνση είναι μια γενική διεύθυνση #Imports PaymentTypeCustomer=Τύπος Πληρωμής - Πελάτης PaymentTermsCustomer=Όροι πληρωμής - Πελάτης -PaymentTypeSupplier=Τύπος πληρωμής - Πωλητής -PaymentTermsSupplier=Όρος πληρωμής - Πωλητής -PaymentTypeBoth=Τύπος Πληρωμής - Πελάτης και Πωλητής -MulticurrencyUsed=Χρησιμοποιήστε το Πολλαπλάσιο +PaymentTypeSupplier=Τύπος πληρωμής - Προμηθευτής +PaymentTermsSupplier=Όρος πληρωμής - Προμηθευτής +PaymentTypeBoth=Τύπος Πληρωμής - Πελάτης και Προμηθευτής +MulticurrencyUsed=Χρήση πολυνομισματικού MulticurrencyCurrency=Νόμισμα InEEC=Ευρώπη (ΕΕ) RestOfEurope=Υπόλοιπη Ευρώπη (ΕΕ) -OutOfEurope=Εκτός Ευρώπης (ΕΟΚ) -CurrentOutstandingBillLate=Τρέχων εκκρεμής λογαριασμός καθυστερημένος +OutOfEurope=Εκτός Ευρώπης (ΕΕ) +CurrentOutstandingBillLate=Καθυστερημένος ανεξόφλητος λογαριασμός BecarefullChangeThirdpartyBeforeAddProductToInvoice=Προσοχή, ανάλογα με τις ρυθμίσεις τιμής του προϊόντος σας, θα πρέπει να αλλάξετε το Τρίτο Μέρος πριν προσθέσετε το προϊόν στο POS. diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang index 439b728ebe6..1a105ccd0ee 100644 --- a/htdocs/langs/el_GR/compta.lang +++ b/htdocs/langs/el_GR/compta.lang @@ -1,84 +1,86 @@ # Dolibarr language file - Source file is en_US - compta -MenuFinancial=Τιμολόγηση | Πληρωμή -TaxModuleSetupToModifyRules=Πηγαίνετε στο setup Φόροι module να τροποποιήσετε τους κανόνες για τον υπολογισμό -TaxModuleSetupToModifyRulesLT=Πηγαίνετε στο ρύθμιση Εταιρείας για την τροποποίηση κανόνων υπολογισμού +MenuFinancial=Τιμολόγηση | Πληρωμές +TaxModuleSetupToModifyRules=Μετάβαση στη ρύθμιση της ενότητας Φόροι για την τροποποίηση κανόνων υπολογισμού +TaxModuleSetupToModifyRulesLT=Μετάβαση στη ρύθμιση Εταιρείας για την τροποποίηση κανόνων υπολογισμού OptionMode=Επιλογές λογιστικής -OptionModeTrue=Επιλογές εσόδων-εξόδων -OptionModeVirtual=Option Claims-Debts -OptionModeTrueDesc=In this context, the turnover is calculated over payments (date of payments). The validity of the figures is assured only if the book-keeping is scrutinized through the input/output on the accounts via invoices. -OptionModeVirtualDesc=In this context, the turnover is calculated over invoices (date of validation). When these invoices are due, whether they have been paid or not, they are listed in the turnover output. -FeatureIsSupportedInInOutModeOnly=Feature only available in CREDITS-DEBTS accountancy mode (See Accountancy module configuration) -VATReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Tax module setup. +OptionModeTrue=Έσοδα-Έξοδα +OptionModeVirtual=Απαιτήσεις-Οφειλές +OptionModeTrueDesc=Στο πλαίσιο αυτό, ο κύκλος εργασιών(τζίρος) υπολογίζεται επί των πληρωμών (ημερομηνία πληρωμών). Η εγκυρότητα των στοιχείων διασφαλίζεται μόνο εάν η τήρηση λογιστικών βιβλίων ελέγχεται ενδελεχώς μέσω των εισροών/εκροών στους λογαριασμούς μέσω τιμολογίων. +OptionModeVirtualDesc=Στο πλαίσιο αυτό, ο κύκλος εργασιών(τζίρος) υπολογίζεται από τα τιμολόγια (ημερομηνία επικύρωσης). Όταν αυτά τα τιμολόγια είναι ληξιπρόθεσμα, είτε έχουν εξοφληθεί είτε όχι, εμφανίζονται στην έξοδο του κύκλου εργασιών. +FeatureIsSupportedInInOutModeOnly=Η λειτουργία είναι διαθέσιμη μόνο στη λειτουργία λογιστικής ΠΙΣΤΩΣΕΙΣ-ΧΡΕΩΣΕΙΣ (Ανατρέξτε στη διαμόρφωση της ενότητας Λογιστικής) +VATReportBuildWithOptionDefinedInModule=Τα ποσά που εμφανίζονται εδώ υπολογίζονται χρησιμοποιώντας κανόνες που ορίζονται από τη ρύθμιση της φορολογικής ενότητας. LTReportBuildWithOptionDefinedInModule=Τα ποσά που εμφανίζονται εδώ υπολογίζονται με βάση τους κανόνες που ορίζονται από την εγκατάσταση της Εταιρείας. -Param=Παραμετροποίηση +Param=Ρύθμιση RemainingAmountPayment=Ποσό πληρωμής που απομένει: Account=Λογαριασμός -Accountparent=Parent account -Accountsparent=Parent accounts +Accountparent=Γονικός λογαριασμός +Accountsparent=Γονικοί λογαριασμοί Income=Έσοδα Outcome=Έξοδα MenuReportInOut=Έσοδα / Έξοδα ReportInOut=Ισοζύγιο εσόδων και εξόδων -ReportTurnover=Ο κύκλος εργασιών τιμολογείται -ReportTurnoverCollected=Ο κύκλος εργασιών συγκεντρώθηκε -PaymentsNotLinkedToInvoice=Η πληρωμή δεν είναι συνδεδεμένη με κάποιο τιμολόγιο, οπότε δεν συνδέετε με κάποιο στοιχείο/αντιπρόσωπο -PaymentsNotLinkedToUser=Η πληρωμή δεν είναι συνδεδεμένη με κάποιον πελάτη +ReportTurnover=Τιμολογημένος κύκλος εργασιών(τζίρος) +ReportTurnoverCollected=Κύκλος εργασιών(τζίρος) που έχει εισπραχθεί +PaymentsNotLinkedToInvoice=Οι πληρωμές δεν συνδέονται με κανένα τιμολόγιο, επομένως δεν συνδέονται και με κανένα τρίτο μέρος +PaymentsNotLinkedToUser=Οι πληρωμές δεν συνδέονται με κανέναν χρήστη Profit=Κέρδος AccountingResult=Λογιστικό αποτέλεσμα -BalanceBefore=Υπόλοιπο (πριν) +BalanceBefore=Ισοζύγιο (πριν) Balance=Ισοζύγιο Debit=Χρέωση Credit=Πίστωση +AccountingDebit=Χρέωση +AccountingCredit=Πίστωση Piece=Λογιστικό Εγγρ. AmountHTVATRealReceived=Σύνολο καθαρών εισπράξεων AmountHTVATRealPaid=Σύνολο καθαρών πληρωμένων -VATToPay=Φορολογικές πωλήσεις -VATReceived=Έλαβε φόρο -VATToCollect=Αγορές φόρων -VATSummary=Φόρος μηνιαίως -VATBalance=Ισοζύγιο φόρου -VATPaid=Πληρωμή φόρου +VATToPay=Φ.Π.Α. πωλήσεων +VATReceived=Φ.Π.Α. που ελήφθη +VATToCollect=Φ.Π.Α. αγορών +VATSummary=Φ.Π.Α. μήνα +VATBalance=Ισοζύγιο Φ.Π.Α. +VATPaid=Φ.Π.Α. που πληρώθηκε LT1Summary=Φορολογική περίληψη 2 -LT2Summary=Φύση 3 περίληψη +LT2Summary=Φορολογική περίληψη 3 LT1SummaryES=RE Υπόλοιπο LT2SummaryES=IRPF Υπόλοιπο LT1SummaryIN=CGST Υπόλοιπο LT2SummaryIN=SGST Balance -LT1Paid=Φόρος 2 πληρώνεται -LT2Paid=Φόρος 3 πληρώνεται +LT1Paid=Φόρος 2 που πληρώθηκε +LT2Paid=Φόρος 3 που πληρώθηκε LT1PaidES=RE Πληρωμένα -LT2PaidES=Αμειβόμενος IRPF -LT1PaidIN=CGST Αμειβόμενος -LT2PaidIN=Το SGST πληρώθηκε +LT2PaidES=IRPF που πληρώθηκε +LT1PaidIN=CGST που πληρώθηκε +LT2PaidIN=Το SGST που πληρώθηκε LT1Customer=Φορολογικές πωλήσεις 2 -LT1Supplier=Φόρος 2 αγορές +LT1Supplier=Φορολογικές αγορές 2 LT1CustomerES=RE πωλήσεις LT1SupplierES=RE αγορές LT1CustomerIN=CGST πωλήσεις LT1SupplierIN=CGST αγορές LT2Customer=Φορολογικές πωλήσεις 3 -LT2Supplier=Φόρος 3 αγορές +LT2Supplier=Φορολογικές αγορές 3 LT2CustomerES=IRPF πωλήσεις LT2SupplierES=IRPF αγορές LT2CustomerIN=Πωλήσεις SGST LT2SupplierIN=Οι αγορές SGST -VATCollected=VAT collected +VATCollected=Φ.Π.Α. που εισπραχθηκε StatusToPay=Προς πληρωμή SpecialExpensesArea=Περιοχή για όλες τις ειδικές πληρωμές -VATExpensesArea=Περιοχή όλων των πληρωμών TVA +VATExpensesArea=Τομέας όλων των πληρωμών Φ.Π.Α. SocialContribution=Κοινωνική ή φορολογική εισφορά SocialContributions=Κοινωνικές ή φορολογικές εισφορές -SocialContributionsDeductibles=Deductible social or fiscal taxes -SocialContributionsNondeductibles=Nondeductible social or fiscal taxes +SocialContributionsDeductibles=Εκπιπτόμενοι κοινωνικοί ή φορολογικοί φόροι +SocialContributionsNondeductibles=Μη εκπιπτόμενοι κοινωνικοί ή φορολογικοί φόροι DateOfSocialContribution=Ημερομηνία κοινωνικού ή φορολογικού φόρου -LabelContrib=Label contribution -TypeContrib=Type contribution +LabelContrib=Ετικέτα συνδρομής +TypeContrib=Τύπος συνδρομής MenuSpecialExpenses=Ειδικά έξοδα -MenuTaxAndDividends=Taxes and dividends +MenuTaxAndDividends=Φόροι και μερίσματα MenuSocialContributions=Κοινωνικές/φορολογικές εισφορές -MenuNewSocialContribution=Νέα Κοιν/Φορ εισφορά +MenuNewSocialContribution=Νέα κοινωνική/φορολογική εισφορά NewSocialContribution=Νέα Κοινωνική/Φορολογική εισφορά -AddSocialContribution=Add social/fiscal tax +AddSocialContribution=Προσθήκη κοινωνικής/φορολογικής εισφοράς ContributionsToPay=Κοινωνικές/Φορολογικές εισφορές προς πληρωμή AccountancyTreasuryArea=Τομέας χρεώσεων και πληρωμών NewPayment=Νέα Πληρωμή @@ -92,206 +94,206 @@ ListOfCustomerPayments=Λίστα πληρωμών πελατών ListOfSupplierPayments=Λίστα πληρωμών προμηθευτών DateStartPeriod=Ημερομηνία έναρξης περιόδου DateEndPeriod=Ημερομηνία λήξης περιόδου -newLT1Payment=New tax 2 payment -newLT2Payment=New tax 3 payment -LT1Payment=Tax 2 payment -LT1Payments=Tax 2 payments +newLT1Payment=Νέα πληρωμή φόρου 2 +newLT2Payment=Νέα πληρωμή φόρου 3 +LT1Payment=Πληρωμή φόρου 2 +LT1Payments=Πληρωμές φόρου 2 LT2Payment=Tax 3 payment -LT2Payments=Tax 3 payments +LT2Payments=Πληρωμές φόρου 3 newLT1PaymentES=Νέα πληρωμή RE -newLT2PaymentES=Νέα IRPF πληρωμής -LT1PaymentES=RE Πληρωμής +newLT2PaymentES=Νέα πληρωμή IRPF +LT1PaymentES=Πληρωμή RE LT1PaymentsES=RE Πληρωμές -LT2PaymentES=IRPF Πληρωμής +LT2PaymentES=Πληρωμή IRPF LT2PaymentsES=Πληρωμές IRPF -VATPayment=Πληρωμή ΦΠΑ πωλήσεων -VATPayments=Πληρωμές ΦΠΑ πωλήσεων -VATDeclarations=Δηλώσεις ΦΠΑ -VATDeclaration=Δήλωση ΦΠΑ -VATRefund=Sales tax refund -NewVATPayment=Νέα καταβολή φόρου επί των πωλήσεων +VATPayment=Πληρωμή Φ.Π.Α. πωλήσεων +VATPayments=Πληρωμές Φ.Π.Α. πωλήσεων +VATDeclarations=Δηλώσεις Φ.Π.Α. +VATDeclaration=Δήλωση Φ.Π.Α. +VATRefund=Επιστροφή φόρου επί των πωλήσεων +NewVATPayment=Νέα πληρωμή φόρου επί των πωλήσεων NewLocalTaxPayment=Νέα πληρωμή φόρου %s -Refund=Refund +Refund=Επιστροφή χρημάτων SocialContributionsPayments=Πληρωμές Κοινωνικών/Φορολογικών εισφορών -ShowVatPayment=Εμφάνιση πληρωμής φόρου +ShowVatPayment=Εμφάνιση πληρωμής ΦΠΑ TotalToPay=Σύνολο πληρωμής BalanceVisibilityDependsOnSortAndFilters=Το υπόλοιπο είναι ορατό σε αυτήν τη λίστα μόνο εάν ο πίνακας είναι ταξινομημένος σε %s και φιλτράρεται σε 1 τραπεζικό λογαριασμό (χωρίς άλλα φίλτρα) -CustomerAccountancyCode=Κωδικός λογιστικής πελάτη -SupplierAccountancyCode=Κωδικός Προμηθευτή -CustomerAccountancyCodeShort=Cust. account. code -SupplierAccountancyCodeShort=Sup. account. code +CustomerAccountancyCode=Λογιστικός κωδικός πελάτη +SupplierAccountancyCode=Λογιστικός κωδικός προμηθευτή +CustomerAccountancyCodeShort=Λογιστικός κωδικός πελάτη +SupplierAccountancyCodeShort=Λογιστικός κωδικός προμηθευτή AccountNumber=Αριθμός Λογαριασμού NewAccountingAccount=Νέος Λογαριασμός -Turnover=Ο κύκλος εργασιών τιμολογείται -TurnoverCollected=Ο κύκλος εργασιών συγκεντρώθηκε -SalesTurnoverMinimum=Ελάχιστος κύκλος εργασιών -ByExpenseIncome=By expenses & incomes -ByThirdParties=Ανά στοιχεία +Turnover=Τιμολογημένος κύκλος εργασιών(τζίρος) +TurnoverCollected=Κύκλος εργασιών(τζίρος) που εισπράχθηκε +SalesTurnoverMinimum=Ελάχιστος κύκλος εργασιών(τζίρος) +ByExpenseIncome=Ανα έξοδα και έσοδα +ByThirdParties=Ανά τρίτα μέρη ByUserAuthorOfInvoice=Ανά συντάκτη τιμολογίου -CheckReceipt=Έλεγχος Πίστωσης -CheckReceiptShort=Check deposit -LastCheckReceiptShort=Latest %s check receipts +CheckReceipt=Κατάθεση επιταγής +CheckReceiptShort=Κατάθεση επιταγής +LastCheckReceiptShort=Τελευταίες %s αποδείξεις επιταγών NewCheckReceipt=Νέα έκπτωση NewCheckDeposit=Νέα κατάθεση επιταγής -NewCheckDepositOn=Create receipt for deposit on account: %s -NoWaitingChecks=Δεν υπάρχουν επιταγές που αναμένουν κατάθεση. -DateChequeReceived=Ελέγξτε την ημερομηνία λήψης -NbOfCheques=Αριθμός ελέγχων +NewCheckDepositOn=Δημιουργία απόδειξης για κατάθεση στο λογαριασμό: %s +NoWaitingChecks=Δεν υπάρχουν επιταγές +DateChequeReceived=Ημερομηνία παραλαβής επιταγής +NbOfCheques=Αριθμός επιταγών PaySocialContribution=Πληρωμή Κοινωνικής/Φορολογικής εισφοράς -PayVAT=Πληρώστε δήλωση ΦΠΑ -PaySalary=Πληρώστε μισθό +PayVAT=Πληρώμη Φ.Π.Α. +PaySalary=Πληρωμή μισθού ConfirmPaySocialContribution=Είστε σίγουροι ότι θέλετε να ταξινομήσετε αυτόν τον κοινωνικό ή φορολογικό φόρο ως πληρωμένο; -ConfirmPayVAT=Είστε βέβαιοι ότι θέλετε να κατατάξετε αυτήν τη δήλωση ΦΠΑ ως πληρωμένη; -ConfirmPaySalary=Είστε βέβαιοι ότι θέλετε να ταξινομήσετε αυτήν την καρτέλα μισθού ως πληρωμένη; +ConfirmPayVAT=Είστε σίγουροι ότι θέλετε να Ταξινομήσετε αυτήν τη δήλωση ΦΠΑ ως πληρωμένη; +ConfirmPaySalary=Είστε σίγουροι ότι θέλετε να ταξινομήσετε αυτήν την καρτέλα μισθού ως πληρωμένη; DeleteSocialContribution=Διαγραφή Κοινωνικής/Φορολογικής εισφοράς DeleteVAT=Διαγραφή δήλωσης ΦΠΑ DeleteSalary=Διαγραφή καρτέλας μισθού -DeleteVariousPayment=Διαγράψτε μια διαφορετική πληρωμή -ConfirmDeleteSocialContribution=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την πληρωμή κοινωνικής/φορολογικής εισφοράς; -ConfirmDeleteVAT=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη δήλωση ΦΠΑ; -ConfirmDeleteSalary=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον μισθό; -ConfirmDeleteVariousPayment=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη διαφορετική πληρωμή; +DeleteVariousPayment=Διαγράψτε μια πληρωμή +ConfirmDeleteSocialContribution=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την πληρωμή κοινωνικής/φορολογικής εισφοράς; +ConfirmDeleteVAT=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη δήλωση ΦΠΑ; +ConfirmDeleteSalary=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον μισθό; +ConfirmDeleteVariousPayment=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη πληρωμή; ExportDataset_tax_1=Κοινωνικές/Φορολογικές εισφορές και πληρωμές -CalcModeVATDebt=Κατάσταση %sΦΠΑ επί των λογιστικών υποχρεώσεων%s -CalcModeVATEngagement=Κατάσταση %sΦΠΑ επί των εσόδων-έξοδα%s. -CalcModeDebt=Ανάλυση των καταγεγραμμένων συναλλαγών ακόμα και αν δεν έχουν καταχωρηθεί στο λογιστικό βιβλίο -CalcModeEngagement=Ανάλυση γνωστών καταγεγραμμένων πληρωμών, ακόμη και αν δεν έχουν ακόμη καταλογιστεί στο Ledger. -CalcModeBookkeeping=Ανάλυση δεδομένων που έχουν καταχωρηθεί στον πίνακα Λογαριασμού Λογιστηρίου. +CalcModeVATDebt=Λειτουργία %sΦΠΑ επί την λογιστική δέσμευσης%s +CalcModeVATEngagement=Λειτουργία %sΦΠΑ επί των εσόδων-έξοδων%s. +CalcModeDebt=Ανάλυση των καταγεγραμμένων συναλλαγών ακόμα και αν δεν έχουν καταχωρηθεί στο Καθολικό. +CalcModeEngagement=Ανάλυση γνωστών καταγεγραμμένων πληρωμών, ακόμη και αν δεν έχουν ακόμη καταχωρηθεί στο Καθολικό. +CalcModeBookkeeping=Ανάλυση δεδομένων που καταχωρήθηκαν στον πίνακα λογιστικής καθολικού. CalcModeLT1= Λειτουργία %sRE στα τιμολόγια πελατών - τιμολόγια προμηθευτών%s CalcModeLT1Debt=Λειτουργία %sRE στα τιμολόγια των πελατών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT1Rec= Λειτουργία %sRE στα τιμολόγια των προμηθευτών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT2= Λειτουργία %sIRPF στα τιμολόγια πελατών - τιμολόγια προμηθευτών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT2Debt=Λειτουργία %sIRPF στα τιμολόγια των πελατών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT2Rec= Λειτουργία %sIRPF στα τιμολόγια των προμηθευτών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) -AnnualSummaryDueDebtMode=Υπόλοιπο των εσόδων και εξόδων, ετήσια σύνοψη -AnnualSummaryInputOutputMode=Υπόλοιπο των εσόδων και εξόδων, ετήσια σύνοψη +AnnualSummaryDueDebtMode=Ισοζύγιο εσόδων και εξόδων, ετήσια σύνοψη +AnnualSummaryInputOutputMode=Ισοζύγιο εσόδων και εξόδων, ετήσια σύνοψη AnnualByCompanies=Ισοζύγιο εσόδων και εξόδων, βάσει προκαθορισμένων ομάδων λογαριασμού AnnualByCompaniesDueDebtMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sClaims-Debts%s δήλωσε τη λογιστική δέσμευσης . -AnnualByCompaniesInputOutputMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sIncomes-Expenses%s δήλωσε ταμειακή λογιστική . +AnnualByCompaniesInputOutputMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sΈσοδα-Έξοδα%s δήλωσε ταμειακή λογιστική . SeeReportInInputOutputMode=Δείτε την %sανάλυση των πληρωμών%s για έναν υπολογισμό που βασίζεται στις καταγεγραμμενες πληρωμές ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό -SeeReportInDueDebtMode=Δείτε την %sανάλυση των καταγεγραμμένων εγγράφων%s για έναν υπολογισμό που βασίζεται σε γνωστάκαταγεγραμμένα έγγραφα ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό +SeeReportInDueDebtMode=Δείτε την %sανάλυση των καταγεγραμμένων εγγράφων%s για έναν υπολογισμό που βασίζεται στα γνωστάκαταγεγραμμένα έγγραφα ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό SeeReportInBookkeepingMode=Δείτε την %sανάλυση του λογιστικού πίνακα καθολικού%s για μια αναφορά που βασίζεται στονΛογιστικό πίνακα Καθολικού -RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included +RulesAmountWithTaxIncluded=- Στα ποσά που εμφανίζονται περιλαμβάνονται όλοι οι φόροι RulesAmountWithTaxExcluded=- Τα ποσά των τιμολογίων που εμφανίζονται δεν συμπεριλαμβάνουν Φ.Π.Α. RulesResultDue=- Περιλαμβάνει όλα τα τιμολόγια, έξοδα, ΦΠΑ, δωρεές, μισθούς, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία τιμολόγησης των τιμολογίων και στην ημερομηνία λήξης για έξοδα ή πληρωμές φόρων. Για τους μισθούς χρησιμοποιείται η ημερομηνία λήξης της περιόδου. -RulesResultInOut=- Περιλαμβάνει τις πραγματικές πληρωμές σε τιμολόγια, έξοδα, ΦΠΑ και μισθούς.
    - Βασίζεται στις ημερομηνίες πληρωμής των τιμολογίων, εξόδων, ΦΠΑ, δωρεών και μισθών. -RulesCADue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του πελάτη, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία χρέωσης αυτών των τιμολογίων.
    -RulesCAIn=- Περιλαμβάνει όλες τις πραγματικές πληρωμές τιμολογίων που εισπράττονται από πελάτες.
    - Βασίζεται στην ημερομηνία πληρωμής αυτών των τιμολογίων
    -RulesCATotalSaleJournal=Περιλαμβάνει όλες τις πιστωτικές γραμμές από το περιοδικό Sale. +RulesResultInOut=- Περιλαμβάνει τις πραγματικές πληρωμές σε τιμολόγια, έξοδα, Φ.Π.Α. και μισθούς.
    - Βασίζεται στις ημερομηνίες πληρωμής των τιμολογίων, εξόδων, Φ.Π.Α., δωρεών και μισθών. +RulesCADue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του πελάτη, είτε πληρώνονται είτε όχι.
    - Είναι Βασισμένο στην ημερομηνία χρέωσης αυτών των τιμολογίων.
    +RulesCAIn=- Περιλαμβάνει όλες τις πραγματικές πληρωμές τιμολογίων που εισπράχθηκαν από πελάτες.
    - Είναι Βασισμένο στην ημερομηνία πληρωμής αυτών των τιμολογίων
    +RulesCATotalSaleJournal=Περιλαμβάνει όλες τις πιστωτικές γραμμές από το Ημερολόγιο Πωλήσεων. RulesSalesTurnoverOfIncomeAccounts=Περιλαμβάνει (πίστωση - χρέωση) γραμμών για λογαριασμούς προϊόντων στην ομάδα ΕΣΟΔΑ -RulesAmountOnInOutBookkeepingRecord=Περιλαμβάνει την εγγραφή στον Λογαριασμό σας με Λογαριασμούς Λογαριασμού που έχει την ομάδα "ΕΞΟΔΑ" ή "ΕΙΣΟΔΟΣ" -RulesResultBookkeepingPredefined=Περιλαμβάνει την εγγραφή στον Λογαριασμό σας με Λογαριασμούς Λογαριασμού που έχει την ομάδα "ΕΞΟΔΑ" ή "ΕΙΣΟΔΟΣ" -RulesResultBookkeepingPersonalized=Εμφανίζει ρεκόρ στο Λογαριασμό σας με λογαριασμούς λογαριασμών ομαδοποιημένους από εξατομικευμένες ομάδες +RulesAmountOnInOutBookkeepingRecord=Περιλαμβάνει εγγραφή στο Καθολικό σας με λογιστικούς λογαριασμούς που έχουν την ομάδα "ΕΞΟΔΑ" ή "ΕΣΟΔΑ" +RulesResultBookkeepingPredefined=Περιλαμβάνει εγγραφή στο Καθολικό σας με λογιστικούς λογαριασμούς που έχουν την ομάδα "ΕΞΟΔΑ" ή "ΕΣΟΔΑ" +RulesResultBookkeepingPersonalized=Εμφανίζει εγγραφές στο Καθολικό σας με λογιστικούς λογαριασμούς ομαδοποιημένους κατά εξατομικευμένες ομάδες SeePageForSetup=Δείτε το μενού %s για τη ρύθμιση -DepositsAreNotIncluded=- Δεν συμπεριλαμβάνονται τα τιμολόγια για τις προκαταβολές -DepositsAreIncluded=- Down payment invoices are included +DepositsAreNotIncluded=- Δεν συμπεριλαμβάνονται οι αποδείξεις προκαταβολών +DepositsAreIncluded=- Συμπεριλαμβάνονται και οι αποδείξεις προκαταβολών LT1ReportByMonth=Αναφορά φόρου 2 ανά μήνα LT2ReportByMonth=Αναφορά φόρου 3 ανά μήνα -LT1ReportByCustomers=Αναφέρετε τον φόρο 2 από τρίτους -LT2ReportByCustomers=Αναφορά φόρου 3 από τρίτους +LT1ReportByCustomers=Αναφορά φόρου 2 ανά τρίτο μέρος +LT2ReportByCustomers=Αναφορά φόρου 3 ανά τρίτο μέρος LT1ReportByCustomersES=Αναφορά Πελ./Προμ. RE -LT2ReportByCustomersES=Έκθεση του τρίτου IRPF -VATReport=Έκθεση φόρου επί των πωλήσεων -VATReportByPeriods=Έκθεση φόρου επί των πωλήσεων ανά περίοδο -VATReportByMonth=Έκθεση φόρου επί των πωλήσεων ανά μήνα -VATReportByRates=Έκθεση φόρου επί των πωλήσεων ανα συντελεστή -VATReportByThirdParties=Έκθεση φόρου επί των πωλήσεων ανά τρίτο μέρος -VATReportByCustomers=Έκθεση φόρου επί των πωλήσεων ανά πελάτη -VATReportByCustomersInInputOutputMode=Αναφορά από τον ΦΠΑ των πελατών εισπράττεται και καταβάλλεται -VATReportByQuartersInInputOutputMode=Αναφορά κατά συντελεστή φόρου επί των πωλήσεων του φόρου που εισπράχθηκε και καταβλήθηκε +LT2ReportByCustomersES=Αναφορά ανά τρίτο μέρος IRPF +VATReport=Αναφορά φόρου πωλήσεων +VATReportByPeriods=Αναφορά φόρου πωλήσεων ανά περίοδο +VATReportByMonth=Αναφορά φόρου πωλήσεων ανά μήνα +VATReportByRates=Αναφορά φόρου πωλήσεων ανά συντελεστή +VATReportByThirdParties=Αναφορά φόρου πωλήσεων ανά τρίτο μέρος +VATReportByCustomers=Αναφορά φόρου πωλήσεων ανά πελάτη +VATReportByCustomersInInputOutputMode=Αναφορά ανά Φ.Π.Α. πελάτη που εισπράχθηκε και καταβλήθηκε +VATReportByQuartersInInputOutputMode=Αναφορά ανά συντελεστή φόρου πωλήσεων που εισπράχθηκε και καταβλήθηκε VATReportShowByRateDetails=Εμφάνιση λεπτομερειών αυτού του συντελεστή -LT1ReportByQuarters=Αναφέρετε τον φόρο 2 με βάση την τιμή -LT2ReportByQuarters=Αναφέρετε τον φόρο 3 με βάση την τιμή -LT1ReportByQuartersES=Αναφορά με ποσοστό RE -LT2ReportByQuartersES=Αναφορά IRPF επιτόκιο -SeeVATReportInInputOutputMode=Δείτε την αναφορά %s είσπραξης ΦΠΑ%s για έναν τυπικό υπολογισμό -SeeVATReportInDueDebtMode=Δείτε την αναφορά %sΦΠΑ χρεώσεων%s για έναν υπολογισμό με δυνατότητα επιλογής στην τιμολόγηση +LT1ReportByQuarters=Αναφορά φόρου 2 με βάση την τιμή +LT2ReportByQuarters=Αναφορά φόρου 3 με βάση την τιμή +LT1ReportByQuartersES=Αναφορά ανά ποσοστό RE +LT2ReportByQuartersES=Αναφορά ανά ποσοστό IRPF +SeeVATReportInInputOutputMode=Δείτε την αναφορά %s είσπραξης Φ.Π.Α.%s για έναν τυπικό υπολογισμό +SeeVATReportInDueDebtMode=Δείτε την αναφορά %sΦ.Π.Α. χρεώσεων%s για έναν υπολογισμό με δυνατότητα επιλογής στην τιμολόγηση RulesVATInServices=- Για τις υπηρεσίες, η αναφορά περιλαμβάνει τον ΦΠΑ των πληρωμών που πράγματι εισπράχθηκαν ή καταβλήθηκαν με βάση την ημερομηνία πληρωμής. -RulesVATInProducts=- Για τα υλικά περιουσιακά στοιχεία, η έκθεση περιλαμβάνει τον ΦΠΑ με βάση την ημερομηνία πληρωμής. +RulesVATInProducts=- Για τα υλικά περιουσιακά στοιχεία, η αναφορά περιλαμβάνει τον Φ.Π.Α. με βάση την ημερομηνία πληρωμής. RulesVATDueServices=- Για τις υπηρεσίες, η αναφορά περιλαμβάνει ΦΠΑ ληξιπρόθεσμων τιμολογίων, πληρωμένου ή μη, με βάση την ημερομηνία τιμολογίου. -RulesVATDueProducts=- Για τα υλικά περιουσιακά στοιχεία, η αναφορά περιλαμβάνει τον ΦΠΑ των οφειλόμενων τιμολογίων, με βάση την ημερομηνία του τιμολογίου. -OptionVatInfoModuleComptabilite=Note: For material assets, it should use the date of delivery to be more fair. -ThisIsAnEstimatedValue=Πρόκειται για μια προεπισκόπηση που βασίζεται σε επιχειρηματικά γεγονότα και όχι στον τελικό πίνακα, έτσι ώστε τα τελικά αποτελέσματα να διαφέρουν από αυτές τις τιμές προεπισκόπησης +RulesVATDueProducts=- Για τα υλικά περιουσιακά στοιχεία, η αναφορά περιλαμβάνει τον Φ.Π.Α. των οφειλόμενων τιμολογίων, με βάση την ημερομηνία του τιμολογίου. +OptionVatInfoModuleComptabilite=Σημείωση: Για τα υλικά περιουσιακά στοιχεία, θα πρέπει να χρησιμοποιεί την ημερομηνία παράδοσης για να είναι πιο δίκαιη. +ThisIsAnEstimatedValue=Αυτή είναι μια προεπισκόπηση, που βασίζεται σε επαγγελματικά συμβάντα και όχι από τον τελικό πίνακα του καθολικού, επομένως τα τελικά αποτελέσματα ενδέχεται να διαφέρουν από αυτές τις τιμές προεπισκόπησης PercentOfInvoice=%%/τιμολόγιο NotUsedForGoods=Δεν γίνεται χρήση σε υλικά αγαθά -ProposalStats=Στατιστικά στοιχεία σχετικά με τις προτάσεις +ProposalStats=Στατιστικά στοιχεία προσφορών OrderStats=Στατιστικά στοιχεία για τις παραγγελίες InvoiceStats=Στατιστικά στοιχεία για τους λογαριασμούς -Dispatch=Dispatching -Dispatched=Dispatched -ToDispatch=To dispatch -ThirdPartyMustBeEditAsCustomer=Το στοιχείο πρέπει να ορισθεί ως πελάτης +Dispatch=Αποστολή +Dispatched=Απεσταλμένο +ToDispatch=Για αποστολή +ThirdPartyMustBeEditAsCustomer=Το τρίτο μέρος πρέπει να ορίζεται ως πελάτης SellsJournal=Ημερολόγιο πωλήσεων PurchasesJournal=Ημερολόγιο Αγορών DescSellsJournal=Ημερολόγιο πωλήσεων DescPurchasesJournal=Ημερολόγιο Αγορών -CodeNotDef=Δεν προσδιορίζεται -WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. -DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. -Pcg_version=Chart of accounts models +CodeNotDef=Δεν έχει οριστεί +WarningDepositsNotIncluded=Οι αποδείξεις προκαταβολών δεν περιλαμβάνονται σε αυτήν την έκδοση της ενότητας λογιστικής. +DatePaymentTermCantBeLowerThanObjectDate=Η ημερομηνία προθεσμίας πληρωμής δεν μπορεί να είναι προγενέστερη της ημερομηνίας αντικειμένου. +Pcg_version=Υποδείγματα λογιστικών σχεδίων Pcg_type=Pcg type Pcg_subtype=Pcg subtype -InvoiceLinesToDispatch=Invoice lines to dispatch +InvoiceLinesToDispatch=Γραμμές τιμολογίων για αποστολή ByProductsAndServices=Ανά προϊόν και υπηρεσία -RefExt=Εξωτερικές αναφορές +RefExt=Εξωτερική αναφ ToCreateAPredefinedInvoice=Για να δημιουργήσετε ένα πρότυπο τιμολόγιο, δημιουργήστε ένα τυπικό τιμολόγιο και, στη συνέχεια, χωρίς να το επικυρώσετε, κάντε κλικ στο κουμπί "%s". LinkedOrder=Σύνδεση με παραγγελία Mode1=Μέθοδος 1 Mode2=Μέθοδος 2 -CalculationRuleDesc=Για να υπολογιστεί το συνολικό ΦΠΑ, υπάρχουν δύο μέθοδοι:
    Μέθοδος 1 στρογγυλοποίηση ΦΠΑ για κάθε γραμμή, στη συνέχεια, αθροίζοντας τους.
    Μέθοδος 2 αθροίζοντας όλων των ΦΠΑ σε κάθε γραμμή, τότε η στρογγυλοποίηση είναι στο αποτέλεσμα.
    Το τελικό αποτέλεσμα μπορεί να διαφέρει από λίγα λεπτά. Προεπιλεγμένη λειτουργία είναι η λειτουργία %s. +CalculationRuleDesc=Για τον υπολογισμό του συνολικού ΦΠΑ, υπάρχουν δύο μέθοδοι:
    Μέθοδος 1 στρογγυλοποίηση του ΦΠΑ σε κάθε γραμμή και, στη συνέχεια, η άθροισή τους.
    Μέθοδος 2 άθροιση του ΦΠΑ σε κάθε γραμμή και, στη συνέχεια, στρογγυλοποίηση.
    Το τελικό αποτέλεσμα μπορεί να διαφέρει κατά λίγα λεπτά. Προεπιλεγμένη λειτουργία είναι η %s. CalculationRuleDescSupplier=Σύμφωνα με τον προμηθευτή, επιλέξτε κατάλληλη μέθοδο για να εφαρμόσετε τον ίδιο κανόνα υπολογισμού και για να λάβετε το ίδιο αποτέλεσμα που αναμένεται από τον προμηθευτή σας. -TurnoverPerProductInCommitmentAccountingNotRelevant=Η αναφορά κύκλου εργασιών που συλλέγεται ανά προϊόν δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για το τιμολόγιο κύκλου εργασιών. -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Η αναφορά του κύκλου εργασιών που έχει συγκεντρωθεί ανά φορολογικό συντελεστή πώλησης δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για το τιμολόγιο κύκλου εργασιών. +TurnoverPerProductInCommitmentAccountingNotRelevant=Η αναφορά κύκλου εργασιών που εισπράχθηκε ανά προϊόν δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για τον κύκλο εργασιών τιμολογημένων στοιχείων +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Η αναφορά του κύκλου εργασιών που εισπράχθηκε ανά συντελεστή φόρου πώλησης δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για τιμολογημένο κύκλο εργασιών. CalculationMode=Τρόπος υπολογισμού -AccountancyJournal=Λογιστικό περιοδικό λογιστικής -ACCOUNTING_VAT_SOLD_ACCOUNT=Λογαριασμός λογιστικής από προεπιλογή για Φ.Π.Α. στις πωλήσεις (χρησιμοποιείται αν δεν ορίζεται στη ρύθμιση λεξικού ΦΠΑ) -ACCOUNTING_VAT_BUY_ACCOUNT=Λογαριασμός λογιστικής από προεπιλογή για Φ.Π.Α. στις αγορές (χρησιμοποιείται αν δεν έχει οριστεί στη ρύθμιση λεξικού ΦΠΑ) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται σε κάρτα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για τη Γενική Λογιστική και ως προεπιλεγμένη αξία της λογιστικής Subledger, εάν δεν έχει οριστεί ειδικό λογαριασμός λογιστικής πελάτη σε τρίτους. -ACCOUNTING_ACCOUNT_SUPPLIER=Λογαριασμός λογιστικής που χρησιμοποιείται για τους τρίτους προμηθευτές -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται σε κάρτα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για τη Γενική Λογιστική και ως προεπιλεγμένη αξία της λογιστικής της Subleger εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής αποκλειστικής προμήθειας σε τρίτους. -ConfirmCloneTax=Επιβεβαιώστε τον κλώνο ενός κοινωνικού / φορολογικού φόρου -ConfirmCloneVAT=Επιβεβαιώστε τον κλώνο μιας δήλωσης ΦΠΑ -ConfirmCloneSalary=Επιβεβαιώστε τον κλώνο ενός μισθού -CloneTaxForNextMonth=Clone it for next month +AccountancyJournal=Ημερολόγιο λογιστικού κώδικα +ACCOUNTING_VAT_SOLD_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τον ΦΠΑ επί των πωλήσεων (χρησιμοποιείται εάν δεν ορίζεται στη ρύθμιση του λεξικού ΦΠΑ) +ACCOUNTING_VAT_BUY_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τον ΦΠΑ στις αγορές (χρησιμοποιείται εάν δεν ορίζεται στη ρύθμιση λεξικού ΦΠΑ) +ACCOUNTING_VAT_PAY_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως προεπιλεγμένος λογαριασμός για την πληρωμή ΦΠΑ +ACCOUNTING_ACCOUNT_CUSTOMER=Λογαριασμός (από το Λογιστικό Σχέδιο) που χρησιμοποιείται για τρίτους "πελάτες". +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται στην κάρτα τρίτων θα χρησιμοποιηθεί μόνο για τη λογιστική Βοηθητικού καθολικού. Αυτό θα χρησιμοποιηθεί για το Γενικό Καθολικό και ως προεπιλεγμένη τιμή της λογιστικής Βοηθητικού καθολικού εάν δεν έχει καθοριστεί αποκλειστικός λογιστικός λογαριασμός πελάτη σε τρίτο μέρος. +ACCOUNTING_ACCOUNT_SUPPLIER=Λογαριασμός (από το Λογιστικό Σχέδιο) που χρησιμοποιείται για τους τρίτους "προμηθευτές" +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται στην στην καρτέλα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική του Βοηθητικού καθολικού. Αυτό θα χρησιμοποιηθεί για το Γενικό Καθολικό και ως προεπιλεγμένη τιμή της λογιστικής του Βοηθητικού καθολικού εάν δεν έχει καθοριστεί αποκλειστικός λογιστικός λογαριασμός προμηθευτή στο τρίτο μέρος. +ConfirmCloneTax=Επιβεβαιώστε την αντιγραφή ενός κοινωνικού / φορολογικού φόρου +ConfirmCloneVAT=Επιβεβαιώστε την αντιγραφή μιας δήλωσης ΦΠΑ +ConfirmCloneSalary=Επιβεβαιώστε την αντιγραφή ενός μισθού +CloneTaxForNextMonth=Αντιγραφή για επόμενο μήνα SimpleReport=Απλή αναφορά -AddExtraReport=Extra reports (add foreign and national customer report) +AddExtraReport=Επιπλέον αναφορές (προσθήκη αναφοράς ξένων και εθνικών πελατών) OtherCountriesCustomersReport=Αναφορά για πελάτες εξωτερικού -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code -SameCountryCustomersWithVAT=National customers report -BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Με βάση το ότι τα δύο πρώτα γράμματα του ΑΦΜ διαφέρουν από τον κωδικό χώρας της εταιρείας σας +SameCountryCustomersWithVAT=Αναφορά εθνικών πελατών +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Με βάση το ότι τα δύο πρώτα γράμματα του ΑΦΜ είναι ίδια με τον κωδικό χώρας της εταιρείας σας LinkedFichinter=Σύνδεσμος σε μία παρέμβαση ImportDataset_tax_contrib=Κοινωνικές/φορολογικές εισφορές -ImportDataset_tax_vat=Vat payments -ErrorBankAccountNotFound=Error: Bank account not found -FiscalPeriod=Accounting period -ListSocialContributionAssociatedProject=List of social contributions associated with the project +ImportDataset_tax_vat=Πληρωμές Φ.Π.Α. +ErrorBankAccountNotFound=Σφάλμα: Ο τραπεζικός λογαριασμός δεν βρέθηκε +FiscalPeriod=Λογιστική περίοδος +ListSocialContributionAssociatedProject=Λίστα κοινωνικών εισφορών που σχετίζονται με το έργο DeleteFromCat=Κατάργηση από τη λογιστική ομάδα -AccountingAffectation=Λογιστική εκχώρηση -LastDayTaxIsRelatedTo=Την τελευταία ημέρα της περιόδου ο φόρος σχετίζεται με -VATDue=Φόρος πωλήσεων που αξιώνεται -ClaimedForThisPeriod=Ισχυρίζεται για την περίοδο +AccountingAffectation=Λογιστική κατανομή +LastDayTaxIsRelatedTo=Τελευταία ημέρα της περιόδου με την οποία ο φόρος σχετίζεται +VATDue=Φόρος πωλήσεων που αξιώθηκε +ClaimedForThisPeriod=Αξίωση για την περίοδο PaidDuringThisPeriod=Πληρώθηκε για αυτήν την περίοδο PaidDuringThisPeriodDesc=Αυτό είναι το άθροισμα όλων των πληρωμών που συνδέονται με δηλώσεις ΦΠΑ που έχουν ημερομηνία λήξης περιόδου στο επιλεγμένο εύρος ημερομηνιών ByVatRate=Με φορολογικό συντελεστή πώλησης -TurnoverbyVatrate=Ο κύκλος εργασιών τιμολογείται από το συντελεστή φόρου πώλησης -TurnoverCollectedbyVatrate=Ο κύκλος εργασιών που εισπράττεται από το φορολογικό συντελεστή πώλησης -PurchasebyVatrate=Ποσοστό φόρου επί των πωλήσεων +TurnoverbyVatrate=Κύκλος εργασιών που τιμολογήθηκε με συντελεστή φόρου επί των πωλήσεων +TurnoverCollectedbyVatrate=Ο κύκλος εργασιών που εισπράχθηκε με συντελεστή φόρου επί των πωλήσεων +PurchasebyVatrate=Συντελεστής φόρου αγοράς βάσει πώλησης LabelToShow=Σύντομη ετικέτα -PurchaseTurnover=Κύκλος εργασιών αγοράς -PurchaseTurnoverCollected=Συλλέχθηκε ο κύκλος εργασιών αγοράς -RulesPurchaseTurnoverDue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του προμηθευτή, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία τιμολογίου αυτών των τιμολογίων.
    +PurchaseTurnover=Κύκλος εργασιών αγορών +PurchaseTurnoverCollected=Ο κύκλος εργασιών αγορών που εισπράχθηκε +RulesPurchaseTurnoverDue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του προμηθευτή, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία επικύρωσης αυτών των τιμολογίων.
    RulesPurchaseTurnoverIn=- Περιλαμβάνει όλες τις αποτελεσματικές πληρωμές τιμολογίων που πραγματοποιούνται σε προμηθευτές.
    - Βασίζεται στην ημερομηνία πληρωμής αυτών των τιμολογίων
    -RulesPurchaseTurnoverTotalPurchaseJournal=Περιλαμβάνει όλες τις χρεωστικές γραμμές από το περιοδικό αγορών. +RulesPurchaseTurnoverTotalPurchaseJournal=Περιλαμβάνει όλες τις χρεωστικές γραμμές από το ημερολόγιο αγορών. RulesPurchaseTurnoverOfExpenseAccounts=Περιλαμβάνει (χρέωση - πίστωση) γραμμών για λογαριασμούς προϊόντων στην ομάδα ΕΞΟΔΑ -ReportPurchaseTurnover=Τιμολόγηση κύκλου εργασιών αγοράς -ReportPurchaseTurnoverCollected=Συλλέχθηκε ο κύκλος εργασιών αγοράς +ReportPurchaseTurnover=Ο κύκλος εργασιών αγορών που τιμολογήθηκε +ReportPurchaseTurnoverCollected=Ο κύκλος εργασιών αγορών που εισπράχθηκε IncludeVarpaysInResults = Συμπεριλάβετε διάφορες πληρωμές στις αναφορές IncludeLoansInResults = Συμπεριλάβετε δάνεια στις αναφορές -InvoiceLate30Days = Ανείσπρακτα (> 30 ημέρες) -InvoiceLate15Days = Ανείσπρακτα (15 έως 30 ημέρες) -InvoiceLateMinus15Days = Ανείσπρακτα (< 15 ημέρες) +InvoiceLate30Days = Με καθυστέρηση (> 30 ημέρες) +InvoiceLate15Days = Με καθυστέρηση (15 έως 30 ημέρες) +InvoiceLateMinus15Days = Με καθυστέρηση (< 15 ημέρες) InvoiceNotLate = Προς είσπραξη (< 15 ημέρες) InvoiceNotLate15Days = Προς είσπραξη (15 έως 30 ημέρες) InvoiceNotLate30Days = Προς είσπραξη (> 30 ημέρες) @@ -300,3 +302,4 @@ InvoiceToPay15Days=Προς πληρωμή (15 έως 30 ημέρες) InvoiceToPay30Days=Προς πληρωμή (> 30 ημέρες) ConfirmPreselectAccount=Προεπιλογή κωδικού λογιστικής ConfirmPreselectAccountQuestion=Είστε σίγουροι ότι θέλετε να προεπιλέξετε τις %sεπιλεγμένες γραμμές με αυτόν τον κωδικό λογιστικής; +AmountPaidMustMatchAmountOfDownPayment=Το ποσό που καταβλήθηκε πρέπει να αντιστοιχεί στο ποσό της προκαταβολής diff --git a/htdocs/langs/el_GR/contracts.lang b/htdocs/langs/el_GR/contracts.lang index 0b3d4a3c755..31cc7d184ca 100644 --- a/htdocs/langs/el_GR/contracts.lang +++ b/htdocs/langs/el_GR/contracts.lang @@ -1,107 +1,107 @@ # Dolibarr language file - Source file is en_US - contracts -ContractsArea=Περιοχή Συμβολαίων -ListOfContracts=Λίστα Συμβολαίων -AllContracts=Όλα τα συμβόλαια -ContractCard=Καρτέλα Συμβολαίου -ContractStatusNotRunning=Σε αργία +ContractsArea=Τομέας συμβάσεων +ListOfContracts=Λίστα συμβάσεων +AllContracts=Όλες οι συμβάσεις +ContractCard=Καρτέλα Σύμβασης +ContractStatusNotRunning=Ανενεργή ContractStatusDraft=Προσχέδιο ContractStatusValidated=Επικυρώθηκε -ContractStatusClosed=Έκλεισε -ServiceStatusInitial=Σε αργία -ServiceStatusRunning=Σε εξέλιξη -ServiceStatusNotLate=Σε εξέλιξη, δεν έχει λήξει +ContractStatusClosed=Τερματισμένη +ServiceStatusInitial=Ανενεργή +ServiceStatusRunning=Ενεργή +ServiceStatusNotLate=Ενεργή, δεν έχει λήξει ServiceStatusNotLateShort=Δεν έχει λήξει -ServiceStatusLate=Σε εξέλιξη, Έληξε +ServiceStatusLate=Ενεργή, Έληξε ServiceStatusLateShort=Έληξε -ServiceStatusClosed=Έκλεισε -ShowContractOfService=Show contract of service -Contracts=Συμβόλαια +ServiceStatusClosed=Τερματισμένη +ShowContractOfService=Εμφάνιση σύμβασης υπηρεσιών +Contracts=Συμβάσεις ContractsSubscriptions=Συμβάσεις/Συνδρομές -ContractsAndLine=Συμβόλαια και η γραμμή των συμβολαίων -Contract=Συμβόλαιο -ContractLine=Γραμμή επαφής -ContractLines=Γραμμές συμβολαίων -Closing=Κλείσιμο -NoContracts=Κανένα Συμβόλαιο +ContractsAndLine=Συμβάσεις και γραμμή των συμβάσεων +Contract=Σύμβαση +ContractLine=Γραμμή σύμβασης +ContractLines=Γραμμές συμβάσεων +Closing=Τερματισμός +NoContracts=Καμιά Σύμβαση MenuServices=Υπηρεσίες MenuInactiveServices=Ανενεργές Υπηρεσίες MenuRunningServices=Ενεργές Υπηρεσίες MenuExpiredServices=Ληγμένες Υπηρεσίες MenuClosedServices=Τερματισμένες Υπηρεσίες -NewContract=Νέο Συμβόλαιο -NewContractSubscription=Νέο συμβόλαιο ή συνδρομή +NewContract=Νέα σύμβαση +NewContractSubscription=Νέα σύμβαση ή συνδρομή AddContract=Δημιουργία σύμβασης -DeleteAContract=Διαγραφή Συμβολαίου -ActivateAllOnContract=Ενεργοποιήστε όλες τις υπηρεσίες -CloseAContract=Τερματισμός Συμβολαίου -ConfirmDeleteAContract=Είστε σίγουροι πως θέλετε να διαγράψετε αυτό το συμβόλαιο και όλες τις υπηρεσίες του; -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmActivateAllOnContract=Αυτό θα ανοίξει όλες τις υπηρεσίες (δεν είναι ακόμα ενεργές). Είστε βέβαιοι ότι θέλετε να ανοίξετε όλες τις υπηρεσίες; -ConfirmCloseContract=Αυτό θα κλείσει όλες τις υπηρεσίες (που έχουν λήξει ή όχι). Είστε σίγουροι ότι θέλετε να κλείσετε αυτό το συμβόλαιο; -ConfirmCloseService=Are you sure you want to close this service with date %s? -ValidateAContract=Επικύρωση συμβολαίου +DeleteAContract=Διαγραφή Σύμβασης +ActivateAllOnContract=Ενεργοποίηση όλων των υπηρεσιών +CloseAContract=Τερματισμός Σύμβασης +ConfirmDeleteAContract=Είστε σίγουροι πως θέλετε να διαγράψετε αυτή τη σύμβαση και όλες τις υπηρεσίες αυτής; +ConfirmValidateContract=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτή τη σύμβαση υπό το όνομα %s? +ConfirmActivateAllOnContract=Αυτό θα εκκινήσει όλες τις υπηρεσίες (που δεν είναι ακόμα ενεργές). Είστε σίγουροι ότι θέλετε να εκκινήσετε όλες τις υπηρεσίες; +ConfirmCloseContract=Αυτό θα τερματίσει όλες τις υπηρεσίες (ενεργές και μη). Είστε σίγουροι ότι θέλετε να διακόψετε αυτή τη σύμβαση; +ConfirmCloseService=Είστε σίγουροι ότι θέλετε να τερματίσετε αυτήν την υπηρεσία με ημερομηνία %s ; +ValidateAContract=Επικύρωση σύμβασης ActivateService=Ενεργοποίηση Υπηρεσίας -ConfirmActivateService=Are you sure you want to activate this service with date %s? -RefContract=Αναφορά συμβολαίου -DateContract=Ημερομηνία συμβολαίου +ConfirmActivateService=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε αυτήν την υπηρεσία με ημερομηνία %s? +RefContract=Αναφορά σύμβασης +DateContract=Ημερομηνία σύμβασης DateServiceActivate=Ημερομηνία ενεργοποίησης υπηρεσίας ListOfServices=Λίστα υπηρεσιών ListOfInactiveServices=Λίστα μη ενεργών υπηρεσιών -ListOfExpiredServices=Λίστα εκπρόθεσμων ενεργών υπηρεσιών -ListOfClosedServices=Λίστα κλεισμένων υπηρεσιών -ListOfRunningServices=Λίστα τρέχουσων υπηρεσιών -NotActivatedServices=Inactive services (among validated contracts) +ListOfExpiredServices=Λίστα ενεργών υπηρεσιών που έχουν λήξει +ListOfClosedServices=Λίστα τερματισμένων υπηρεσιών +ListOfRunningServices=Λίστα ενεργών υπηρεσιών +NotActivatedServices=Ανενεργές υπηρεσίες (μεταξύ των επικυρωμένων συμβάσεων) BoardNotActivatedServices=Υπηρεσίες προς ενεργοποίηση σε επικυρωμένα συμβόλαια -BoardNotActivatedServicesShort=Υπηρεσίες για ενεργοποίηση -LastContracts=Τελευταία %s Συμβόλαια +BoardNotActivatedServicesShort=Υπηρεσίες προς ενεργοποίηση +LastContracts=Τελευταίες %s συμβάσεις LastModifiedServices=Τελευταίες %s τροποποιημένες υπηρεσίες -ContractStartDate=Ημερ. έναρξης -ContractEndDate=Ημερ. τέλους -DateStartPlanned=Planned start date -DateStartPlannedShort=Planned start date -DateEndPlanned=Planned end date -DateEndPlannedShort=Planned end date -DateStartReal=Real start date -DateStartRealShort=Real start date -DateEndReal=Real end date -DateEndRealShort=Real end date -CloseService=Close service -BoardRunningServices=Υπηρεσίες που εκτελούνται -BoardRunningServicesShort=Υπηρεσίες που εκτελούνται -BoardExpiredServices=Οι υπηρεσίες έληξαν -BoardExpiredServicesShort=Οι υπηρεσίες έληξαν +ContractStartDate=Ημερομηνία έναρξης +ContractEndDate=Ημερομηνία λήξης +DateStartPlanned=Προγραμματισμένη ημερομηνία έναρξης +DateStartPlannedShort=Προγραμματισμένη ημερομηνία έναρξης +DateEndPlanned=Προγραμματισμένη ημερομηνία λήξης +DateEndPlannedShort=Προγραμματισμένη ημερομηνία λήξης +DateStartReal=Πραγματική ημερομηνία έναρξης +DateStartRealShort=Πραγματική ημερομηνία έναρξης +DateEndReal=Πραγματική ημερομηνία λήξης +DateEndRealShort=Πραγματική ημερομηνία λήξης +CloseService=Τερματισμός υπηρεσίας +BoardRunningServices=Ενεργές υπηρεσίες +BoardRunningServicesShort=Ενεργές υπηρεσίες +BoardExpiredServices=Ληγμένες υπηρεσίες +BoardExpiredServicesShort=Ληγμένες υπηρεσίες ServiceStatus=Κατάσταση υπηρεσίας -DraftContracts=Προσχέδια συμβολαίων -CloseRefusedBecauseOneServiceActive=Η σύμβαση δεν μπορεί να κλείσει καθώς υπάρχει τουλάχιστον μία ανοικτή υπηρεσία σε αυτήν -ActivateAllContracts=Ενεργοποιήστε όλες τις γραμμές συμβάσεων -CloseAllContracts=Close all contract lines -DeleteContractLine=Delete a contract line -ConfirmDeleteContractLine=Are you sure you want to delete this contract line? -MoveToAnotherContract=Move service into another contract. -ConfirmMoveToAnotherContract=I choosed new target contract and confirm I want to move this service into this contract. -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Renew contract line (number %s) -ExpiredSince=Expiration date -NoExpiredServices=Δεν έληξε ενεργές υπηρεσίες -ListOfServicesToExpireWithDuration=Λίστα των Υπηρεσιών λήγει σε %s ημέρες -ListOfServicesToExpireWithDurationNeg=Κατάλογος των υπηρεσιών έληξε από περισσότερες, από %s ημέρες -ListOfServicesToExpire=Κατάλογος Υπηρεσιών προς λήξει -NoteListOfYourExpiredServices=Αυτή η λίστα περιέχει μόνο τις υπηρεσίες των συμβάσεων για λογαριασμό ΠΕΛ./ΠΡΟΜ. που συνδέονται ως εκπρόσωπος πώληση. -StandardContractsTemplate=Οι πρότυπες συμβάσεις -ContactNameAndSignature=Για %s, το όνομα και η υπογραφή: +DraftContracts=Προσχέδια συμβάσεων +CloseRefusedBecauseOneServiceActive=Η σύμβαση δεν μπορεί να κλείσει καθώς υπάρχει τουλάχιστον μία ενεργή υπηρεσία σε αυτήν +ActivateAllContracts=Ενεργοποίηση όλων των γραμμών συμβάσεων +CloseAllContracts=Διακοπή όλων των γραμμών συμβάσεων +DeleteContractLine=Διαγραφή γραμμής σύμβασης +ConfirmDeleteContractLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη γραμμή σύμβασης; +MoveToAnotherContract=Μεταφορά υπηρεσίας σε άλλη σύμβαση +ConfirmMoveToAnotherContract=Επέλεξα νέα σύμβαση και επιβεβαιώνω ότι θέλω να μεταφέρω αυτήν την υπηρεσία σε αυτήν. +ConfirmMoveToAnotherContractQuestion=Επιλέξτε σε ποια υπάρχουσα σύμβαση (του ίδιου πελάτη), θέλετε να μεταφέρετε αυτήν την υπηρεσία; +PaymentRenewContractId=Ανανέωση σύμβασης %s (υπηρεσία %s) +ExpiredSince=Ημερομηνία λήξης +NoExpiredServices=Δεν υπάρχουν ενεργές υπηρεσίες που έχουν λήξει +ListOfServicesToExpireWithDuration=Λίστα Υπηρεσιών που λήγουν σε %s ημέρες +ListOfServicesToExpireWithDurationNeg=Υπηρεσίες που έχουν λήξει πάνω από, %s ημέρες +ListOfServicesToExpire=Λίστα υπηρεσιών προς λήξη +NoteListOfYourExpiredServices=Αυτή η λίστα περιέχει μόνο τις υπηρεσίες των συμβάσεων για τρίτα μέρη στα οποία είστε εκπρόσωποι πωλήσεων. +StandardContractsTemplate=Πρότυπο τυπικών συμβάσεων +ContactNameAndSignature=Για %s, όνομα και υπογραφή: OnlyLinesWithTypeServiceAreUsed=Μόνο εγγραφές τύπου "Υπηρεσία" θα αντιγραφούν. -ConfirmCloneContract=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε τη σύμβαση %s ; -LowerDateEndPlannedShort=Χαμηλότερη προγραμματισμένη ημερομηνία λήξης των ενεργών υπηρεσιών +ConfirmCloneContract=Είστε σίγουροι ότι θέλετε να αντιγράψετε τη σύμβαση %s ; +LowerDateEndPlannedShort=Κατώτερη προγραμματισμένη ημερομηνία λήξης των ενεργών υπηρεσιών SendContractRef=Στοιχεία σύμβασης __REF__ OtherContracts=Άλλες συμβάσεις ##### Types de contacts ##### -TypeContact_contrat_internal_SALESREPSIGN=Σύμβαση πώλησης υπογραφή εκπροσώπου -TypeContact_contrat_internal_SALESREPFOLL=Πωλήσεις εκπρόσωπος παρακολούθηση των συμβάσεων -TypeContact_contrat_external_BILLING=Χρέωση επαφή με τον πελάτη -TypeContact_contrat_external_CUSTOMER=Παρακολούθηση της επαφής με τον πελάτη -TypeContact_contrat_external_SALESREPSIGN=Υπογραφή σύμβασης επαφή με τον πελάτη -HideClosedServiceByDefault=Απόκρυψη κλειστών υπηρεσιών από προεπιλογή -ShowClosedServices=Εμφάνιση κλειστών υπηρεσιών -HideClosedServices=Απόκρυψη κλειστών υπηρεσιών -UserStartingService=Εκκίνηση υπηρεσίας χρήστη -UserClosingService=Κλείσιμο υπηρεσίας χρήστη +TypeContact_contrat_internal_SALESREPSIGN=Εκπρόσωπος πωλήσεων αρμόδιος για την υπογραφή της σύμβασης +TypeContact_contrat_internal_SALESREPFOLL=Εκπρόσωπος πωλήσεων υπεύθυνος για τη σύμβαση +TypeContact_contrat_external_BILLING=Επαφή λογιστηρίου πελάτη +TypeContact_contrat_external_CUSTOMER=Επαφή περαιτέρω επικοινωνίας με τον πελάτη +TypeContact_contrat_external_SALESREPSIGN=Επαφή για την υπογραφή σύμβασης με τον πελάτη +HideClosedServiceByDefault=Απόκρυψη τερματισμένων υπηρεσιών από προεπιλογή +ShowClosedServices=Εμφάνιση τερματισμένων υπηρεσιών +HideClosedServices=Απόκρυψη τερματισμένων υπηρεσιών +UserStartingService=Χρήστης που εκκίνησε την υπηρεσία +UserClosingService=Χρήστης που τερμάτισε την υπηρεσία diff --git a/htdocs/langs/el_GR/cron.lang b/htdocs/langs/el_GR/cron.lang index 9959bf37d38..9d006be9a8f 100644 --- a/htdocs/langs/el_GR/cron.lang +++ b/htdocs/langs/el_GR/cron.lang @@ -1,75 +1,75 @@ # Dolibarr language file - Source file is en_US - cron # About page # Right -Permission23101 = Λεπτομέρειες προγραμματισμένης εργασίας +Permission23101 = Ανάγνωση Προγραμματισμένης εργασίας Permission23102 = Δημιουργία/ενημέρωση προγραμματισμένης εργασίας Permission23103 = Διαγραφή προγραμματισμένης εργασίας Permission23104 = Εκτέλεση προγραμματισμένης εργασίας # Admin -CronSetup=Προγραμματισμένη ρύθμιση διαχείρισης των εργασιών +CronSetup=Ρύθμιση διαχείρισης προγραμματισμένων εργασιών URLToLaunchCronJobs=URL για να ελέγξετε και να ξεκινήσετε τις κατάλληλες εργασίες cron από ένα πρόγραμμα περιήγησης OrToLaunchASpecificJob=Ή για να ελέγξετε και να ξεκινήσετε μια συγκεκριμένη εργασία από ένα πρόγραμμα περιήγησης KeyForCronAccess=Κλειδί ασφαλείας για το URL για να ξεκινήσει η εργασία cron FileToLaunchCronJobs=Γραμμή εντολών για έλεγχο και εκκίνηση ειδικών εργασιών cron -CronExplainHowToRunUnix=Στο Unix περιβάλλον θα πρέπει να χρησιμοποιήσετε την ακόλουθη καταχώρηση crontab για να τρέχει η γραμμή εντολών καθένα 5 λεπτά -CronExplainHowToRunWin=Στο περιβάλλον Microsoft (tm) των Windows μπορείτε να χρησιμοποιήσετε τα εργαλεία προγραμματισμένης εργασίας για να εκτελέσετε τη γραμμή εντολών κάθε 5 λεπτά -CronMethodDoesNotExists=Class %s does not contains any method %s +CronExplainHowToRunUnix=Στο περιβάλλον Unix θα πρέπει να χρησιμοποιήσετε την ακόλουθη καταχώρηση crontab για να εκτελείτε τη γραμμή εντολών κάθε 5 λεπτά +CronExplainHowToRunWin=Στο περιβάλλον των Microsoft (tm) Windows μπορείτε να χρησιμοποιήσετε τα εργαλεία προγραμματισμένης εργασίας για να εκτελέσετε τη γραμμή εντολών κάθε 5 λεπτά +CronMethodDoesNotExists=Η κλάση %s δεν περιέχει καμία μέθοδο %s CronMethodNotAllowed=Η μέθοδος %s της κλάσης %s βρίσκεται στη μαύρη λίστα των απαγορευμένων μεθόδων -CronJobDefDesc=Τα προφίλ εργασίας Cron ορίζονται στο αρχείο περιγραφικής ενότητας. Όταν η ενότητα είναι ενεργοποιημένη, φορτώνεται και είναι διαθέσιμη, ώστε να μπορείτε να διαχειριστείτε τις εργασίες από το μενού εργαλείων admin %s. -CronJobProfiles=Λίστα προκαθορισμένων προφίλ εργασίας cron +CronJobDefDesc=Τα προφίλ εργασίας Cron ορίζονται στο αρχείο παραμετροποιήσεων της ενότητας. Όταν η ενότητα είναι ενεργοποιημένη, φορτώνονται και είναι διαθέσιμες, ώστε να μπορείτε να διαχειριστείτε τις εργασίες από το μενού Εργαλεία διαχειριστή %s. +CronJobProfiles=Λίστα προκαθορισμένων προφίλ εργασιών cron # Menu -EnabledAndDisabled=Ενεργοποίηση και απενεργοποίηση +EnabledAndDisabled=Ενεργοποιημένες και απενεργοποιημένες # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Output τελευταίας εκτέλεσης Cron +CronLastResult=Αποτέλεσμα τελευταίας εκτέλεσης Cron CronCommand=Εντολή CronList=Προγραμματισμένες εργασίες CronDelete=Διαγραφή προγραμματισμένων εργασιών -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job -CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronConfirmDelete=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτές τις προγραμματισμένες εργασίες; +CronExecute=Εκκίνηση τώρα +CronConfirmExecute=Είστε σίγουροι ότι θέλετε να εκτελέσετε αυτές τις προγραμματισμένες εργασίες τώρα; +CronInfo=Η ενότητα προγραμματισμένης εργασίας επιτρέπει τον προγραμματισμό εργασιών ώστε να εκτελούνται αυτόματα. Οι εργασίες μπορούν επίσης να ξεκινήσουν χειροκίνητα. CronTask=Εργασία CronNone=Καμία CronDtStart=Όχι πριν CronDtEnd=Όχι μετά CronDtNextLaunch=Επόμενη εκτέλεση -CronDtLastLaunch=Start date of latest execution -CronDtLastResult=End date of latest execution +CronDtLastLaunch=Ημερομηνία έναρξης της τελευταίας εκτέλεσης +CronDtLastResult=Ημερομηνία λήξης της τελευταίας εκτέλεσης CronFrequency=Συχνότητα -CronClass=Κατηγορία +CronClass=Κλάση CronMethod=Μέθοδος -CronModule=Module +CronModule=Ενότητα CronNoJobs=Δεν έχουν καταχωρηθεί εργασίες CronPriority=Προτεραιότητα CronLabel=Ετικέτα -CronNbRun=Αριθμός εκτοξεύσεων -CronMaxRun=Μέγιστος αριθμός εκτοξεύσεων +CronNbRun=Αριθμός εκκινήσεων Cron +CronMaxRun=Μέγιστος αριθμός εκκινήσεων CronEach=Κάθε -JobFinished=Ξεκίνησε και τελείωσε +JobFinished=Η εργασία ξεκίνησε και ολοκληρώθηκε Scheduled=Προγραμματισμένες #Page card CronAdd= Προσθήκη εργασίας -CronEvery=Execute job each -CronObject=Instance/Object to create +CronEvery=Εκτέλεση εργασίας κάθε +CronObject=Αντικείμενο προς δημιουργία CronArgs=Παράμετροι CronSaveSucess=Επιτυχής αποθήκευση CronNote=Σχόλιο CronFieldMandatory=Τα πεδία %s είναι υποχρεωτικά CronErrEndDateStartDt=Η ημερομηνία λήξης δεν μπορεί να είναι πριν από την ημερομηνία έναρξης -StatusAtInstall=Κατάσταση κατά την εγκατάσταση της μονάδας -CronStatusActiveBtn=Προγραμματισμός +StatusAtInstall=Κατάσταση κατά την εγκατάσταση της ενότητας +CronStatusActiveBtn=Ενεργοποίηση προγραμματισμού CronStatusInactiveBtn=Απενεργοποίηση CronTaskInactive=Αυτή η εργασία είναι απενεργοποιημένη (δεν έχει προγραμματιστεί) CronId=Id -CronClassFile=Filename with class -CronModuleHelp=Όνομα του καταλόγου μονάδων Dolibarr (επίσης λειτουργούν με εξωτερική μονάδα Dolibarr).
    Για παράδειγμα, για να καλέσουμε τη μέθοδο fetch του προϊόντος Dolibarr Product / htdocs / product / class / product.class.php, η τιμή για την ενότητα είναι
    προϊόν -CronClassFileHelp=Η σχετική διαδρομή και το όνομα του αρχείου για φόρτωση (η διαδρομή είναι σχετική με τον κεντρικό κατάλογο διακομιστή ιστού).
    Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product htdocs / product / class / product.class.php , η τιμή για το όνομα αρχείου κλάσης είναι
    προϊόν / κλάση / product.class.php -CronObjectHelp=Το όνομα αντικειμένου που θα φορτωθεί.
    Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για το όνομα του αρχείου κλάσης είναι
    Προϊόν -CronMethodHelp=Η μέθοδος αντικειμένου για την εκκίνηση.
    Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για τη μέθοδο είναι
    φέρω -CronArgsHelp=Τα επιχειρήματα της μεθόδου.
    Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για τους paramters μπορεί να είναι
    0, ProductRef +CronClassFile=Όνομα αρχείου με κλάση +CronModuleHelp=Όνομα του καταλόγου ενοτήτων Dolibarr (επίσης λειτουργούν με εξωτερική ενότητα Dolibarr).
    Για παράδειγμα, για να καλέσουμε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr / htdocs / product / class / product.class.php, η τιμή για την ενότητα είναι
    προϊόν +CronClassFileHelp=Η σχετική διαδρομή και το όνομα του αρχείου για φόρτωση (η διαδρομή είναι σχετική με τον κεντρικό κατάλογο διακομιστή ιστού).
    Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr htdocs/product/class/product.class.php , η τιμή για το όνομα αρχείου κλάσης είναι
    product/class/product.class.php +CronObjectHelp=Το όνομα αντικειμένου που θα φορτωθεί.
    Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr /htdocs/product/class/product.class.php, η τιμή για το όνομα του αρχείου κλάσης είναι
    Product +CronMethodHelp=Η μέθοδος αντικειμένου για την εκκίνηση.
    Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr /htdocs/product/class/product.class.php, η τιμή για τη μέθοδο είναι
    fetch +CronArgsHelp=Τα επιχειρήματα της μεθόδου.
    Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για τις παραμέτρους μπορεί να είναι
    0, ProductRef CronCommandHelp=Γραμμή εντολών του συστήματος προς εκτέλεση. -CronCreateJob=Create new Scheduled Job +CronCreateJob=Δημιουργία νέας προγραμματισμένης εργασίας CronFrom=Από # Info # Common @@ -78,16 +78,23 @@ CronType_method=Μέθοδος κλήσης μιας κλάσης PHP CronType_command=Εντολή Shell CronCannotLoadClass=Δεν είναι δυνατή η φόρτωση του αρχείου κλάσης %s (για χρήση της κλάσης %s) CronCannotLoadObject=Το αρχείο κλάσης %s φορτώθηκε, αλλά το αντικείμενο %s δεν βρέθηκε σε αυτό -UseMenuModuleToolsToAddCronJobs=Μεταβείτε στο μενού " Αρχική σελίδα - Εργαλεία διαχειριστή - Προγραμματισμένες εργασίες " για να δείτε και να επεξεργαστείτε προγραμματισμένες εργασίες. -JobDisabled=Job disabled -MakeLocalDatabaseDumpShort=Αντίγραφο ασφαλείας τοπικής βάσης δεδομένων -MakeLocalDatabaseDump=Δημιουργήστε μια τοπική χωματερή βάση δεδομένων. Οι παράμετροι είναι: συμπίεση ('gz' ή 'bz' ή 'none'), backup type ('mysql', 'pgsql', 'auto'), -MakeSendLocalDatabaseDumpShort=Αποστολή αντιγράφου ασφαλείας τοπικής βάσης δεδομένων -MakeSendLocalDatabaseDump=Αποστολή αντιγράφου ασφαλείας τοπικής βάσης δεδομένων μέσω email. Οι παράμετροι είναι: προς, από, θέμα, μήνυμα, όνομα αρχείου (Όνομα αρχείου που εστάλη), φίλτρο ('sql' μόνο για αντίγραφο ασφαλείας της βάσης δεδομένων) -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. -DATAPOLICYJob=Cleaner δεδομένων και ανώνυμος -JobXMustBeEnabled=Η προγραμματισμένη εργασία %s πρέπει να είναι ενεργοποιηθεί +UseMenuModuleToolsToAddCronJobs=Μεταβείτε στο μενού "Αρχική - Εργαλεία διαχειριστή - Προγραμματισμένες εργασίες" για να δείτε και να επεξεργαστείτε προγραμματισμένες εργασίες. +JobDisabled=Η εργασία απενεργοποιήθηκε +MakeLocalDatabaseDumpShort=Τοπικό αντίγραφο ασφαλείας βάσης δεδομένων +MakeLocalDatabaseDump=Δημιουργήστε ένα τοπικό αντίγραφο της βάσης δεδομένων. Οι παράμετροι είναι: συμπίεση ('gz' ή 'bz' ή 'none'), τύπος αντιγράφου ασφαλείας ('mysql', 'pgsql', 'auto'), 1, 'auto' ή όνομα αρχείου προς δημιουργία, αριθμός αρχείων αντιγράφων ασφαλείας προς διατήρηση +MakeSendLocalDatabaseDumpShort=Αποστολή τοπικού αντιγράφου ασφαλείας της βάσης δεδομένων +MakeSendLocalDatabaseDump=Αποστολή τοπικού αντιγράφου ασφαλείας της βάσης δεδομένων μέσω email. Οι παράμετροι είναι: προς, από, θέμα, μήνυμα, όνομα αρχείου (Όνομα αρχείου που εστάλη), φίλτρο ('sql' μόνο για αντίγραφο ασφαλείας της βάσης δεδομένων) +BackupIsTooLargeSend=Λυπούμαστε, το τελευταίο αρχείο αντιγράφου ασφαλείας είναι πολύ μεγάλο για να σταλεί μέσω email +CleanUnfinishedCronjobShort=Εκκαθάριση ημιτελούς cronjob +CleanUnfinishedCronjob=Εκκαθάριση cronjob που κόλλησε κατά την εκτέλεση όταν η διεργασία δεν εκτελείται πλέον +WarningCronDelayed=Προσοχή, για λόγους απόδοσης, όποια και αν είναι η επόμενη ημερομηνία εκτέλεσης των ενεργοποιημένων εργασιών, οι εργασίες σας ενδέχεται να καθυστερήσουν το πολύ %s ώρες, πριν εκτελεστούν. +DATAPOLICYJob=Καθαρισμός δεδομένων και ανωνυμοποιητής +JobXMustBeEnabled=Η προγραμματισμένη εργασία %s πρέπει να είναι ενεργοποιημένη +EmailIfError=Email για προειδοποίηση σφάλματος +ErrorInBatch=Σφάλμα κατά την εκτέλεση της εργασίας %s + # Cron Boxes -LastExecutedScheduledJob=Τελευταία προγραμματισμένη εργασία που εκτελέστηκε +LastExecutedScheduledJob=Τελευταία εκτελεσμένη προγραμματισμένη εργασία NextScheduledJobExecute=Επόμενη προγραμματισμένη εργασία προς εκτέλεση -NumberScheduledJobError=Αριθμός λανθασμένων προγραμματισμένων εργασιών +NumberScheduledJobError=Αριθμός προγραμματισμένων εργασιών σε κατάσταση λάθους +NumberScheduledJobNeverFinished=Αριθμός προγραμματισμένων εργασιών που δεν ολοκληρώθηκαν ποτέ diff --git a/htdocs/langs/el_GR/datapolicy.lang b/htdocs/langs/el_GR/datapolicy.lang new file mode 100644 index 00000000000..6dcd402dc13 --- /dev/null +++ b/htdocs/langs/el_GR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Πολιτική Προστασίας Δεδομένων +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Ενότητα διαχείρισης προστασίας δεδομένων (Συμμόρφωση με τον GDPR) + +# +# Administration page +# +datapolicySetup = Ρύθμιση Ενότητας Πολιτικής Προστασίας Δεδομένων +Deletion = Διαγραφή δεδομένων +datapolicySetupPage = Σύμφωνα και με τη νομοθεσία της χώρας μας (Παράδειγμα Άρθρο 5 του GDPR), τα προσωπικά δεδομένα πρέπει να διατηρούνται για περίοδο που δεν υπερβαίνει την απαραίτητη για τους σκοπούς για τους οποίους συλλέχθηκαν, εκτός από αρχειακούς σκοπούς.
    Η διαγραφή θα γίνει αυτόματα μετά από μια ορισμένη περίοδο χωρίς συμβάν (το χρονικό διάστημα που θα έχετε υποδείξει παρακάτω). +NB_MONTHS = %s μήνες +ONE_YEAR = 1 χρόνος +NB_YEARS = %s χρόνια +DATAPOLICY_TIERS_CLIENT = Πελάτης +DATAPOLICY_TIERS_PROSPECT = Προοπτική +DATAPOLICY_TIERS_PROSPECT_CLIENT = Προοπτική/Πελάτης +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ούτε προοπτική/Ούτε πελάτης +DATAPOLICY_TIERS_FOURNISSEUR = Προμηθευτής +DATAPOLICY_CONTACT_CLIENT = Πελάτης +DATAPOLICY_CONTACT_PROSPECT = Προοπτική +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Προοπτική/Πελάτης +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ούτε προοπτική/Ούτε πελάτης +DATAPOLICY_CONTACT_FOURNISSEUR = Προμηθευτής +DATAPOLICY_ADHERENT = Μέλος +DATAPOLICY_Tooltip_SETUP = Τύπος επαφής - Υποδείξτε τις επιλογές σας για κάθε τύπο. +DATAPOLICYMail = Ρύθμιση email +DATAPOLICYSUBJECTMAIL = Θέμα email +DATAPOLICYCONTENTMAIL = Το περιεχόμενο του email +DATAPOLICYSUBSITUTION = Μπορείτε να χρησιμοποιήσετε τις ακόλουθες μεταβλητές στο email σας (το LINKACCEPT επιτρέπει τη δημιουργία ενός συνδέσμου που καταγράφει τη συγκατάθεση του ατόμου, το LINKREFUSED καθιστά δυνατή την καταγραφή της άρνησης συγκατάθεσης του ατόμου): +DATAPOLICYACCEPT = Μήνυμα μετά από συγκατάθεση +DATAPOLICYREFUSE = Μήνυμα μετά από άρνηση συγκατάθεσης +SendAgreementText = Μπορείτε να στείλετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου GDPR σε όλες τις σχετικές επαφές σας (που δεν έχουν λάβει ακόμη email και για τις οποίες δεν έχετε καταχωρίσει τίποτα σχετικά με τη συμφωνία GDPR τους). Για να το κάνετε αυτό, χρησιμοποιήστε το παρακάτω κουμπί. +SendAgreement = Αποστολή email +AllAgreementSend = Όλα τα email έχουν σταλεί +TXTLINKDATAPOLICYACCEPT = Κείμενο για τον σύνδεσμο "συγκατάθεση" +TXTLINKDATAPOLICYREFUSE = Κείμενο για τον σύνδεσμο "άρνηση συγκατάθεσης" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Επεξεργασία προσωπικών δεδομένων +DATAPOLICY_consentement = Ελήφθη συγκατάθεση για την επεξεργασία προσωπικών δεδομένων +DATAPOLICY_opposition_traitement = Δεν δίνει συγκατάθεση για την επεξεργασία των προσωπικών δεδομένων +DATAPOLICY_opposition_prospection = Δεν δίνει συγκατάθεση για την επεξεργασία των προσωπικών δεδομένων για χρήση ως προοπτική + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Ανωνυμοποίηση τρίτου μέρους +DATAPOLICY_POPUP_ANONYME_TEXTE = Δεν μπορείτε να διαγράψετε αυτήν την επαφή από το Dolibarr επειδή υπάρχουν σχετικά στοιχεία. Σύμφωνα με τον GDPR, είστε υποχρεωμένοι να ανωνυμοποιήσετε τα δεδομένα. Θα θέλατε να συνεχίσετε; + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Φορητότητα GDPR +DATAPOLICY_PORTABILITE_TITLE = Εξαγωγή προσωπικών δεδομένων +DATAPOLICY_PORTABILITE_CONFIRMATION = Είστε σίγουροι ότι θέλετε να εξαγάγετε τα προσωπικά δεδομένα αυτής της επαφής; + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Ανωνυμοποιήθηκε η %s + +# V2 +DATAPOLICYReturn = Επικύρωση GDPR +DATAPOLICY_date = Ημερομηνία συγκατάθεσης/μη συγκατάθεσης GDPR +DATAPOLICY_send = Ημερομηνία αποστολής email συγκατάθεσης +DATAPOLICYReturn = Επικύρωση GDPR +DATAPOLICY_SEND = Αποστολή email GDPR +MailSent = Το E-mail έχει σταλεί + +# ERROR +ErrorSubjectIsRequired = Σφάλμα: Το θέμα του email είναι υποχρεωτικό. Συμπληρώστε το στη ρύθμιση της ενότητας +=Λόγω τεχνικού προβλήματος, δεν μπορέσαμε να καταχωρήσουμε την επιλογή σας. Ζητούμε συγγνώμη για αυτό. Επικοινωνήστε μαζί μας για να μας στείλετε την επιλογή σας. +NUMBER_MONTH_BEFORE_DELETION = Αριθμός μήνα πριν από τη διαγραφή diff --git a/htdocs/langs/el_GR/dict.lang b/htdocs/langs/el_GR/dict.lang index 28389f31222..059e51b2f41 100644 --- a/htdocs/langs/el_GR/dict.lang +++ b/htdocs/langs/el_GR/dict.lang @@ -15,7 +15,7 @@ CountryUS=Ηνωμένες Πολιτείες Αμερικής CountryMA=Μαρόκο CountryDZ=Αλγερία CountryCA=Καναδάς -CountryTG=Togo +CountryTG=Τόγκο CountryGA=Γκαμπόν CountryNL=Ολλανδία CountryHU=Ουγγαρία @@ -31,50 +31,50 @@ CountryMC=Μονακό CountryAU=Αυστραλία CountrySG=Σιγκαπούρη CountryAF=Αφγανιστάν -CountryAX=Åland Islands +CountryAX=Νήσοι Άλαντ CountryAL=Αλβανία -CountryAS=American Samoa +CountryAS=Αμερικανική Σαμόα CountryAD=Ανδόρα -CountryAO=Αγκόλα -CountryAI=Anguilla +CountryAO=Ανγκόλα +CountryAI=Ανγκουίλα CountryAQ=Ανταρκτική -CountryAG=Antigua and Barbuda +CountryAG=Αντίγκουα και Μπαρμπούντα CountryAM=Αρμενία CountryAW=Αρούμπα CountryAT=Αυστρία CountryAZ=Αζερμπαϊτζάν CountryBS=Μπαχάμες -CountryBH=Bahrain -CountryBD=Bangladesh +CountryBH=Μπαχρέιν +CountryBD=Μπαγκλαντές CountryBB=Μπαρπέιντος CountryBY=Λευκορωσία CountryBZ=Μπελίζ -CountryBJ=Benin -CountryBM=Bermuda +CountryBJ=Μπενίν +CountryBM=Βερμούδες CountryBT=Μπουτάν CountryBO=Βολιβία CountryBA=Βοσνία και Ερζεγοβίνη CountryBW=Μποτσουάνα -CountryBV=Bouvet Island +CountryBV=Νησί Μπουβέ CountryBR=Βραζιλία -CountryIO=British Indian Ocean Territory -CountryBN=Brunei Darussalam +CountryIO=Βρετανικά Εδάφη Ινδικού Ωκεανού +CountryBN=Μπρουνέι CountryBG=Βουλγαρία CountryBF=Μπουρκίνα Φάσο CountryBI=Μπουρούντι CountryKH=Καμπότζη CountryCV=Πράσινο Ακρωτήριο CountryKY=Νησιά Κέιμαν -CountryCF=Central African Republic +CountryCF=Κεντροαφρικανική Δημοκρατία CountryTD=Τσαντ CountryCL=Χιλή -CountryCX=Christmas Island -CountryCC=Cocos (Keeling) Islands +CountryCX=Νήσος των Χριστουγέννων +CountryCC=Νησιά Κόκος CountryCO=Κολομβία -CountryKM=Comoros +CountryKM=Κομόρες CountryCG=Κονγκό -CountryCD=Congo, The Democratic Republic of the -CountryCK=Cook Islands +CountryCD=Κονγκό, Λαϊκή Δημοκρατία του +CountryCK=Νησιά Κουκ CountryCR=Κόστα Ρίκα CountryHR=Κροατία CountryCU=Κούβα @@ -82,12 +82,12 @@ CountryCY=Κύπρος CountryCZ=Τσεχική Δημοκρατία CountryDK=Δανία CountryDJ=Τζιμπουτί -CountryDM=Dominica +CountryDM=Ντομίνικα CountryDO=Δομινικανή Δημοκρατία CountryEC=Εκουαδόρ CountryEG=Αίγυπτος CountrySV=Ελ Σαλβαδόρ -CountryGQ=Equatorial Guinea +CountryGQ=Ισημερινή Γουινέα CountryER=Ερυθραία CountryEE=Εσθονία CountryET=Αιθιοπία @@ -97,7 +97,7 @@ CountryFJ=Νησιά Φίτζι CountryFI=Φινλανδία CountryGF=Γαλλική Γουϊνέα CountryPF=Γαλλική Πολυνησία -CountryTF=French Southern Territories +CountryTF=Γαλλικά νότια και ανταρκτικά νησιά CountryGM=Γκάμπια CountryGE=Γεωργία CountryGH=Γκάνα @@ -109,11 +109,11 @@ CountryGP=Γουαδελούπη CountryGU=Γκουάμ CountryGT=Γουατεμάλα CountryGN=Γουϊνέα -CountryGW=Guinea-Bissau -CountryGY=Guyana +CountryGW=Γουινέα Μπισάου +CountryGY=Γουιάνα CountryHT=Αϊτή -CountryHM=Heard Island and McDonald -CountryVA=Holy See (Vatican City State) +CountryHM=Νήσοι Χερντ και Μακ Ντόναλντ +CountryVA=Βατικανό CountryHN=Ονδούρα CountryHK=Χονγκ Κονγκ CountryIS=Ισλανδία @@ -134,119 +134,119 @@ CountryKW=Κουβέιτ CountryKG=Κιργιζιστάν CountryLA=Λάος CountryLV=Λετονία -CountryLB=Lebanon -CountryLS=Lesotho +CountryLB=Λίβανος +CountryLS=Λεσότο CountryLR=Λιβερία CountryLY=Λιβύη CountryLI=Λιχτενστάιν CountryLT=Λιθουανία CountryLU=Λουξεμβούργο -CountryMO=Macao +CountryMO=Μακάο CountryMK=Δημοκρατία της Βόρειας Μακεδονίας CountryMG=Μαδαγασκάρη -CountryMW=Malawi +CountryMW=Μαλάουι CountryMY=Μαλαισία CountryMV=Μαλδίβες CountryML=Μάλι CountryMT=Μάλτα -CountryMH=Marshall Islands -CountryMQ=Martinique +CountryMH=Νήσοι Μάρσαλ +CountryMQ=Μαρτινίκα CountryMR=Μαυριτανία -CountryMU=Mauritius -CountryYT=Mayotte +CountryMU=Μαυρίκιος +CountryYT=Μαγιότ CountryMX=Μεξικό CountryFM=Μικρονησία CountryMD=Μολδαβία CountryMN=Μογγολία -CountryMS=Monserrat +CountryMS=Μονσεράτ CountryMZ=Μοζαμβίκη CountryMM=Μιανμάρ (Βιρμανία) CountryNA=Ναμίμπια -CountryNR=Nauru +CountryNR=Ναούρου CountryNP=Νεπάλ -CountryAN=Netherlands Antilles -CountryNC=New Caledonia +CountryAN=Ολλανδικές Αντίλλες +CountryNC=Νέα Καληδονία CountryNZ=Νέα Ζηλανδία CountryNI=Νικαράγουα CountryNE=Νίγηρας CountryNG=Νιγηρία -CountryNU=Niue -CountryNF=Norfolk Island -CountryMP=Northern Mariana Islands +CountryNU=Νίουε +CountryNF=Νησί Νόρφολκ +CountryMP=Βόρειες Μαριάνες Νήσοι CountryNO=Νορβηγία CountryOM=Ομάν CountryPK=Πακιστάν -CountryPW=Palau +CountryPW=Παλάου CountryPS=Παλαιστινιακό έδαφος, κατεχόμενο CountryPA=Παναμάς CountryPG=Παπούα Νέα Γουινέα CountryPY=Παραγουάη CountryPE=Περού CountryPH=Φιλιππίνες -CountryPN=Pitcairn Islands +CountryPN=Νησιά Πίτκερν CountryPL=Πολωνία CountryPR=Πουέρτο Ρίκο CountryQA=Κατάρ CountryRE=Reunion CountryRO=Ρουμανία CountryRW=Ρουάντα -CountrySH=Saint Helena -CountryKN=Saint Kitts and Nevis -CountryLC=Saint Lucia -CountryPM=Saint Pierre and Miquelon -CountryVC=Saint Vincent and Grenadines -CountryWS=Samoa +CountrySH=Αγία Ελένη +CountryKN=Άγιος Χριστόφορος και Νέβις +CountryLC=Αγία Λουκία +CountryPM=Νήσοι Αγίου Πέτρου και Μιχαήλ +CountryVC=Άγιος Βικέντιος και Γρεναδίνες +CountryWS=Σαμόα CountrySM=Σαν Μαρίνο -CountryST=Sao Tome and Principe +CountryST=Σάο Τομέ και Πρίνσιπε CountryRS=Σερβία CountrySC=Σεϋχέλλες CountrySL=Σιέρρα Λεόνε CountrySK=Σλοβακία CountrySI=Σλοβενία -CountrySB=Solomon Islands +CountrySB=Νησιά του Σολομώντα CountrySO=Σομαλία CountryZA=Νότια Αφρική -CountryGS=South Georgia and the South Sandwich Islands +CountryGS=Νότια Γεωργία και τα Νότια Σάντουιτς Νησιά CountryLK=Σρι Λάνκα CountrySD=Σουδάν -CountrySR=Suriname -CountrySJ=Svalbard and Jan Mayen -CountrySZ=Swaziland +CountrySR=Σουρινάμ +CountrySJ=Σβάλμπαρντ και Γιαν Μάγιεν +CountrySZ=Σουαζιλάνδη CountrySY=Συρία CountryTW=Ταϊβάν CountryTJ=Τατζικιστάν CountryTZ=Τανζανία CountryTH=Ταϊλάνδη -CountryTL=Timor-Leste -CountryTK=Tokelau +CountryTL=Ανατολικό Τιμόρ +CountryTK=Τοκελάου CountryTO=Τόνγκα -CountryTT=Trinidad and Tobago +CountryTT=Τρινιντάντ και Τομπάγκο CountryTR=Τουρκία -CountryTM=Turkmenistan +CountryTM=Τουρκμενιστάν CountryTC=Νήσοι Τερκς και Κάικος -CountryTV=Tuvalu +CountryTV=Τουβαλού CountryUG=Ουγκάντα CountryUA=Ουκρανία CountryAE=Ηνωμένα Αραβικά Εμιράτα -CountryUM=United States Minor Outlying Islands +CountryUM=Μικρά Απομακρυσμένα Νησιά Ηνωμένων Πολιτειών CountryUY=Ουρουγουάη CountryUZ=Ουζμπεκιστάν -CountryVU=Vanuatu +CountryVU=Βανουάτου CountryVE=Βενεζουέλα CountryVN=Βιετνάμ -CountryVG=Virgin Islands, British -CountryVI=Virgin Islands, U.S. -CountryWF=Wallis and Futuna -CountryEH=Western Sahara +CountryVG=Βρετανικές Παρθένοι Νήσοι +CountryVI=Αμερικανικές Παρθένοι Νήσοι +CountryWF=Ουώλλις και Φουτούνα +CountryEH=Δυτική Σαχάρα CountryYE=Υεμένη CountryZM=Ζάμπια CountryZW=Ζιμπάμπουε -CountryGG=Guernsey -CountryIM=Isle of Man -CountryJE=Jersey -CountryME=Montenegro -CountryBL=Saint Barthelemy -CountryMF=Saint Martin +CountryGG=Γκέρνσεϊ +CountryIM=Νήσος Μαν +CountryJE=Τζέρσεϊ +CountryME=Μαυροβούνιο +CountryBL=Άγιος Βαρθολομαίος +CountryMF=Άγιος Μαρτίνος ##### Civilities ##### CivilityMME=Κυρία @@ -256,57 +256,57 @@ CivilityMTRE=Master CivilityDR=Δόκτορας ##### Currencies ##### Currencyeuros=€ -CurrencyAUD=AU Dollars -CurrencySingAUD=AU Dollar -CurrencyCAD=CAN Dollars -CurrencySingCAD=CAN Dollar -CurrencyCHF=Swiss Francs -CurrencySingCHF=Swiss Franc -CurrencyEUR=ευρώ +CurrencyAUD=Δολάρια Αυστραλίας +CurrencySingAUD=Δολάριο Αυστραλίας +CurrencyCAD=Δολάρια Καναδά +CurrencySingCAD=Δολάριο Καναδά +CurrencyCHF=Ελβετικά Φράγκα +CurrencySingCHF=Ελβετικό Φράγκο +CurrencyEUR=Ευρώ CurrencySingEUR=€ -CurrencyFRF=French Francs -CurrencySingFRF=French Franc -CurrencyGBP=GB Pounds -CurrencySingGBP=GB Pound -CurrencyINR=Indian rupees -CurrencySingINR=Indian rupee -CurrencyMAD=Dirham -CurrencySingMAD=Dirham -CurrencyMGA=Ariary -CurrencySingMGA=Ariary -CurrencyMUR=Mauritius rupees -CurrencySingMUR=Mauritius rupee -CurrencyNOK=Norwegian krones -CurrencySingNOK=κορώνες Νορβηγίας -CurrencyTND=Tunisian dinars -CurrencySingTND=Tunisian dinar +CurrencyFRF=Γαλλικά Φράγκα +CurrencySingFRF=Γαλλικό Φράγκο +CurrencyGBP=Λίρες Αγγλίας +CurrencySingGBP=Λίρα Αγγλίας +CurrencyINR=Ινδικές ρουπίες +CurrencySingINR=Ινδική ρουπία +CurrencyMAD=Ντιράμ +CurrencySingMAD=Ντιράμ +CurrencyMGA=Αριάρι +CurrencySingMGA=Αριάρι +CurrencyMUR=Ρουπίες Μαυρικίου +CurrencySingMUR=Ρουπία Μαυρικίου +CurrencyNOK=Νορβηγικές κορώνες +CurrencySingNOK=Κορώνες Νορβηγίας +CurrencyTND=Δηνάρια Τυνησίας +CurrencySingTND=Δηνάριο Τυνησίας CurrencyUSD=Δολάρια Ηνωμένων Πολιτειών -CurrencySingUSD=Αμερικάνικο δολάριο +CurrencySingUSD=Δολάριο ΗΠΑ CurrencyUAH=Γρίβνα CurrencySingUAH=Γρίβνα -CurrencyXAF=CFA Francs BEAC -CurrencySingXAF=CFA Franc BEAC -CurrencyXOF=CFA Francs BCEAO -CurrencySingXOF=CFA Franc BCEAO -CurrencyXPF=CFP Francs -CurrencySingXPF=CFP Franc +CurrencyXAF=Φράγκα CFA Κεντρικής Αφρικής BEAC +CurrencySingXAF=Φράγκo CFA Κεντρικής Αφρικής BEAC +CurrencyXOF=Φράγκα CFA Κεντρικής Αφρικής BCEAO +CurrencySingXOF=Φράγκο CFA Κεντρικής Αφρικής BEAC +CurrencyXPF=Φράγκα CFP +CurrencySingXPF=Φράγκο CFP CurrencyCentEUR=σεντς CurrencyCentSingEUR=σεντ -CurrencyCentINR=paisa -CurrencyCentSingINR=paise -CurrencyThousandthSingTND=χιλιοστός +CurrencyCentINR=πάισα +CurrencyCentSingINR=πάισε +CurrencyThousandthSingTND=χιλιάδες #### Input reasons ##### DemandReasonTypeSRC_INTE=Διαδίκτυο -DemandReasonTypeSRC_CAMP_MAIL=Εκστρατεία για τις Ταχυδρομικές -DemandReasonTypeSRC_CAMP_EMAIL=Στέλνοντας εκστρατεία -DemandReasonTypeSRC_CAMP_PHO=Εκστρατεία Τηλέφωνο +DemandReasonTypeSRC_CAMP_MAIL=Καμπάνια αλληλογραφίας +DemandReasonTypeSRC_CAMP_EMAIL=Καμπάνια αποστολής email +DemandReasonTypeSRC_CAMP_PHO=Τηλεφωνική καμπάνια DemandReasonTypeSRC_CAMP_FAX=Εκστρατεία Fax -DemandReasonTypeSRC_COMM=Εμπορική επικοινωνία -DemandReasonTypeSRC_SHOP=Shop Επικοινωνία +DemandReasonTypeSRC_COMM=Εμπορική επαφή +DemandReasonTypeSRC_SHOP=Επαφή καταστήματος DemandReasonTypeSRC_WOM=Από στόμα σε στόμα -DemandReasonTypeSRC_PARTNER=Partner +DemandReasonTypeSRC_PARTNER=Συνέταιρος DemandReasonTypeSRC_EMPLOYEE=Υπάλληλος -DemandReasonTypeSRC_SPONSORING=Sponsorship +DemandReasonTypeSRC_SPONSORING=Χρηματοδότηση DemandReasonTypeSRC_SRC_CUSTOMER=Εισερχόμενη επαφή πελάτη #### Paper formats #### PaperFormatEU4A0=Format 4A0 @@ -353,7 +353,7 @@ ExpAuto10PCV=10 CV και περισσότερο ExpAuto11PCV=11 CV και περισσότερο ExpAuto12PCV=12 CV και περισσότερα ExpAuto13PCV=13 CV και περισσότερο -ExpCyclo=Χωρητικότητα μικρότερη έως 50cm3 +ExpCyclo=Χωρητικότητα μικρότερη στα 50cm3 ExpMoto12CV=Μοτοσικλέτα 1 ή 2 CV ExpMoto345CV=Μοτοσικλέτα 3, 4 ή 5 CV ExpMoto5PCV=Μοτοσικλέτα 5 CV και περισσότερο diff --git a/htdocs/langs/el_GR/ecm.lang b/htdocs/langs/el_GR/ecm.lang index acdcbae10ad..872c78f4733 100644 --- a/htdocs/langs/el_GR/ecm.lang +++ b/htdocs/langs/el_GR/ecm.lang @@ -5,9 +5,10 @@ ECMSectionManual=Χειροκίνητος κατάλογος ECMSectionAuto=Αυτόματος κατάλογος ECMSectionsManual=Χειροκίνητο δέντρο ECMSectionsAuto=Αυτόματο δέντρο -ECMSections=Φάκελοι +ECMSectionsMedias=Medias tree +ECMSections=Κατάλογοι ECMRoot=ECM Root -ECMNewSection=Νέος Φάκελος +ECMNewSection=Νέος κατάλογος ECMAddSection=Προσθήκη καταλόγου ECMCreationDate=Ημερομηνία Δημιουργίας ECMNbOfFilesInDir=Αριθμός αρχείων στον κατάλογο @@ -16,34 +17,36 @@ ECMNbOfFilesInSubDir=Αριθμός αρχείων σε υπο-καταλόγο ECMCreationUser=Δημιουργός ECMArea=Περιοχή DMS / ECM ECMAreaDesc=Η περιοχή DMS / ECM (Συστήματα Διαχείρισης Εγγράφων / Ηλεκτρονική Διαχείριση Περιεχομένου) σας επιτρέπει να αποθηκεύετε, να μοιράζεστε και να αναζητάτε γρήγορα όλα τα είδη εγγράφων στο Dolibarr. -ECMAreaDesc2=* Automatic directories are filled automatically when adding documents from card of an element.
    * Manual directories can be used to save documents not linked to a particular element. -ECMSectionWasRemoved=Directory %s has been deleted. +ECMAreaDesc2a=* Οι μη αυτόματοι κατάλογοι μπορούν να χρησιμοποιηθούν για την αποθήκευση εγγράφων που δεν συνδέονται με ένα συγκεκριμένο στοιχείο. +ECMAreaDesc2b=* Οι αυτόματοι κατάλογοι συμπληρώνονται αυτόματα κατά την προσθήκη εγγράφων από τη σελίδα ενός στοιχείου. +ECMAreaDesc3=* Οι κατάλογοι πολυμέσων είναι φάκελοι στον υποκατάλογο /medias του καταλόγου εγγράφων, αναγνώσιμα από όλους χωρίς να χρειάζεται συνδεση. Χρησιμοποιούνται για την αποθήκευση αρχείων εικόνας από ηλεκτρονική αλληλογραφία ή κάποια ενότητα του ιστότοπου. +ECMSectionWasRemoved=Ο κατάλογος %s έχει διαγραφεί. ECMSectionWasCreated=Ο κατάλογος %s έχει δημιουργηθεί. -ECMSearchByKeywords=Search by keywords -ECMSearchByEntity=Search by object -ECMSectionOfDocuments=Directories of documents +ECMSearchByKeywords=Αναζήτηση με λέξεις-κλειδιά +ECMSearchByEntity=Αναζήτηση κατά αντικείμενο +ECMSectionOfDocuments=Κατάλογοι εγγράφων ECMTypeAuto=Αυτόματα ECMDocsBy=Έγγραφα που συνδέονται με το %s -ECMNoDirectoryYet=Δεν δημιουργήθηκε φάκελος -ShowECMSection=Εμφάνιση φακέλου -DeleteSection=Διαγραφή φακέλου -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? -ECMDirectoryForFiles=Relative directory for files -CannotRemoveDirectoryContainsFilesOrDirs=Η κατάργηση δεν είναι δυνατή επειδή περιέχει ορισμένα αρχεία ή δευτερεύοντες καταλόγους +ECMNoDirectoryYet=Δεν δημιουργήθηκε κατάλογος +ShowECMSection=Εμφάνιση καταλόγου +DeleteSection=Κατάργηση καταλόγου +ConfirmDeleteSection=Μπορείτε να επιβεβαιώσετε ότι θέλετε να διαγράψετε τον κατάλογο %s; +ECMDirectoryForFiles=Σχετικός κατάλογος αρχείων +CannotRemoveDirectoryContainsFilesOrDirs=Η κατάργηση δεν είναι δυνατή επειδή περιέχει ορισμένα αρχεία ή υπο-καταλόγους CannotRemoveDirectoryContainsFiles=Η αφαίρεση δεν είναι δυνατή επειδή περιέχει ορισμένα αρχεία -ECMFileManager=Διαχειριστής Αρχείων +ECMFileManager=Διαχείριση αρχείων ECMSelectASection=Επιλέξτε έναν κατάλογο στο δέντρο ... -DirNotSynchronizedSyncFirst=Αυτός ο κατάλογος φαίνεται να δημιουργείται ή να τροποποιείται εκτός της μονάδας ECM. Πρέπει πρώτα να κάνετε κλικ στο κουμπί "Επανασύνδεση" για να συγχρονίσετε το δίσκο και τη βάση δεδομένων για να αποκτήσετε περιεχόμενο αυτού του καταλόγου. -ReSyncListOfDir=Επανασυνδέστε τη λίστα των καταλόγων -HashOfFileContent=Διαγραφή περιεχομένου αρχείου +DirNotSynchronizedSyncFirst=Αυτός ο κατάλογος φαίνεται να έχει δημιουργηθεί ή τροποποιηθεί εκτός της ενότητας ECM. Πρέπει πρώτα να κάνετε κλικ στο κουμπί "Επανασυγχρονισμός" για να συγχρονίσετε το δίσκο και τη βάση δεδομένων για να λάβετε το περιεχόμενο αυτού του καταλόγου. +ReSyncListOfDir=Επανασυγχρονισμός λίστας καταλόγων +HashOfFileContent=Hash περιεχομένου αρχείου NoDirectoriesFound=Δεν βρέθηκαν κατάλογοι -FileNotYetIndexedInDatabase=Αρχείο που δεν έχει ακόμη ευρετηριαστεί στη βάση δεδομένων (δοκιμάστε να το μεταφορτώσετε ξανά) -ExtraFieldsEcmFiles=Extrafields Αρχεία Ecm -ExtraFieldsEcmDirectories=Κατάλογοι Extrafields Ecm +FileNotYetIndexedInDatabase=Το αρχείο δεν έχει καταχωρηθεί ακόμη στη βάση δεδομένων (προσπαθήστε να το ανεβάσετε ξανά) +ExtraFieldsEcmFiles=Επιπλέον πεδία αρχείων Ecm +ExtraFieldsEcmDirectories=Επιπλέον πεδία Καταλόγων Ecm ECMSetup=Ρύθμιση ECM -GenerateImgWebp=Δημιουργήστε αντίγραφα όλων των εικόνων με μια άλλη έκδοση με μορφή .webp +GenerateImgWebp=Δημιουργήστε αντίγραφα όλων των εικόνων με μια άλλη έκδοση σε μορφή .webp ConfirmGenerateImgWebp=Εάν επιβεβαιώσετε, θα δημιουργήσετε μια εικόνα σε μορφή .webp για όλες τις εικόνες που βρίσκονται αυτήν τη στιγμή σε αυτόν τον φάκελο (οι υποφάκελοι δεν περιλαμβάνονται)... ConfirmImgWebpCreation=Επιβεβαιώστε την δημιουργία διπλοτύπων όλων των εικόνων -SucessConvertImgWebp=Δημιουργήθηκαν επιτυχώς διπλότυπα των εικονων +SucessConvertImgWebp=Δημιουργήθηκαν επιτυχώς διπλότυπα των εικόνων ECMDirName=Όνομα καταλόγου ECMParentDirectory=Γονικός κατάλογος diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang index 02319bb6dfa..6b3bd6c7ef3 100644 --- a/htdocs/langs/el_GR/errors.lang +++ b/htdocs/langs/el_GR/errors.lang @@ -4,7 +4,7 @@ NoErrorCommitIsDone=Κανένα σφάλμα # Errors ErrorButCommitIsDone=Βρέθηκαν σφάλματα, αλλά επικυρώνουμε παρόλα αυτά -ErrorBadEMail=Το email %s είναι λάθος +ErrorBadEMail=Η διεύθυνση email %s είναι λάθος ErrorBadMXDomain=Το email %s φαίνεται λανθασμένο (ο τομέας δεν έχει έγκυρη εγγραφή MX) ErrorBadUrl=Η διεύθυνση URL %s δεν ειναι σωστή ErrorBadValueForParamNotAString=Κακή τιμή για την παράμετρο σας. συνδέεται αόριστα όταν λείπει η μετάφραση. @@ -14,243 +14,247 @@ ErrorLoginAlreadyExists=Η σύνδεση %s υπάρχει ήδη. ErrorGroupAlreadyExists=Η ομάδα %s υπάρχει ήδη. ErrorEmailAlreadyExists=Το email %s υπάρχει ήδη. ErrorRecordNotFound=Η εγγραφή δεν βρέθηκε. +ErrorRecordNotFoundShort=Δεν βρέθηκε ErrorFailToCopyFile=Απέτυχε η αντιγραφή του αρχείου '%s' στο '%s'. -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. -ErrorFailToRenameFile=Απέτυχε η μετονομασία του αρχείου "%s» σε «%s». -ErrorFailToDeleteFile=Αποτυχία για να αφαιρέσετε το αρχείο %s. -ErrorFailToCreateFile=Απέτυχε η δημιουργία του αρχείου %s. -ErrorFailToRenameDir=Απέτυχε να μετονομάσετε «%s» κατάλογο σε «%s». -ErrorFailToCreateDir=Αποτυχία δημιουργίας καταλόγου %s. -ErrorFailToDeleteDir=Αποτυχία για να διαγράψετε τον κατάλογο «%s». -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorFailToCopyDir=Απέτυχε η αντιγραφή του καταλόγου ' %s ' στο ' %s '. +ErrorFailToRenameFile=Απέτυχε η μετονομασία του αρχείου ' %s ' σε ' %s '. +ErrorFailToDeleteFile=Αποτυχία κατάργησης του αρχείου ' %s '. +ErrorFailToCreateFile=Απέτυχε η δημιουργία του αρχείου '%s'. +ErrorFailToRenameDir=Απέτυχε η μετονομασία του καταλόγου ' %s ' σε ' %s '. +ErrorFailToCreateDir=Αποτυχία δημιουργίας του καταλόγου ' %s '. +ErrorFailToDeleteDir=Απέτυχε η διαγραφή του καταλόγου " %s ". +ErrorFailToMakeReplacementInto=Απέτυχε η αντικατάσταση του αρχείου " %s ". +ErrorFailToGenerateFile=Απέτυχε η δημιουργία του αρχείου " %s ". ErrorThisContactIsAlreadyDefinedAsThisType=Η επαφή αυτή έχει ήδη οριστεί ως επαφή για αυτόν τον τύπο. -ErrorCashAccountAcceptsOnlyCashMoney=Αυτό τραπεζικός λογαριασμός είναι ένας λογαριασμός σε μετρητά, έτσι ώστε να δέχεται πληρωμές σε μετρητά τύπου μόνο. -ErrorFromToAccountsMustDiffers=Πηγή και τους στόχους των τραπεζικών λογαριασμών πρέπει να είναι διαφορετικό. -ErrorBadThirdPartyName=Κακή τιμή για όνομα τρίτου μέρους +ErrorCashAccountAcceptsOnlyCashMoney=Αυτός ο τραπεζικός λογαριασμός είναι λογαριασμός μετρητών, επομένως δέχεται πληρωμές μόνο με μετρητά. +ErrorFromToAccountsMustDiffers=Οι τραπεζικοί λογαριασμοί προέλευσης και στόχοι πρέπει να είναι διαφορετικοί. +ErrorBadThirdPartyName=Λάθος τιμή για όνομα τρίτου μέρους ForbiddenBySetupRules=Απαγορεύεται από τους κανόνες εγκατάστασης ErrorProdIdIsMandatory=Το %s είναι υποχρεωτικό ErrorAccountancyCodeCustomerIsMandatory=Ο λογιστικός κωδικός του πελάτη %s είναι υποχρεωτικός ErrorBadCustomerCodeSyntax=Λάθος σύνταξη για τον κωδικό πελάτη -ErrorBadBarCodeSyntax=Κακή σύνταξη για τον γραμμωτό κώδικα. Μπορεί να ορίσετε έναν κακό τύπο γραμμωτού κώδικα ή έχετε ορίσει μια μάσκα γραμμωτού κώδικα για την αρίθμηση που δεν ταιριάζει με την τιμή που σαρώθηκε. -ErrorCustomerCodeRequired=Κωδικός πελάτη απαιτείται +ErrorBadBarCodeSyntax=Λάθος σύνταξη για γραμμωτό κώδικα. Μπορεί να έχετε ορίσει έναν κακό τύπο γραμμικού κώδικα ή να έχετε ορίσει μια μάσκα γραμμικού κώδικα για αρίθμηση που δεν ταιριάζει με την τιμή που έχει σαρωθεί. +ErrorCustomerCodeRequired=Απαιτείται κωδικός πελάτη ErrorBarCodeRequired=Απαιτείται γραμμικός κώδικας -ErrorCustomerCodeAlreadyUsed=Ο κωδικός πελάτη που έχει ήδη χρησιμοποιηθεί -ErrorBarCodeAlreadyUsed=Ο γραμμικός κώδικας που χρησιμοποιείται ήδη -ErrorPrefixRequired=Απαιτείται Πρόθεμα -ErrorBadSupplierCodeSyntax=Κακή σύνταξη για τον κωδικό προμηθευτή +ErrorCustomerCodeAlreadyUsed=Ο κωδικός πελάτη χρησιμοποιείται ήδη +ErrorBarCodeAlreadyUsed=Ο γραμμωτός κώδικας χρησιμοποιείται ήδη +ErrorPrefixRequired=Απαιτείται πρόθεμα +ErrorBadSupplierCodeSyntax=Λάθος σύνταξη για τον κωδικό προμηθευτή ErrorSupplierCodeRequired=Απαιτείται κωδικός προμηθευτή -ErrorSupplierCodeAlreadyUsed=Κωδικός προμηθευτή που χρησιμοποιήθηκε ήδη -ErrorBadParameters=Λάθος παράμετρος +ErrorSupplierCodeAlreadyUsed=Ο κωδικός προμηθευτή χρησιμοποιείται ήδη +ErrorBadParameters=Λάθος παράμετροι ErrorWrongParameters=Λάθος ή ελλείπεις παράμετροι -ErrorBadValueForParameter=Η τιμή '%s' δεν είναι έγγυρη για την παράμετρο '%s' +ErrorBadValueForParameter=Λανθασμένη τιμή "%s" για την παράμετρο "%s" ErrorBadImageFormat=Το αρχείο εικόνας δεν έχει μια υποστηριζόμενη μορφή (Η PHP σας δεν υποστηρίζει λειτουργίες για να μετατρέψετε τις εικόνες αυτής της μορφής) ErrorBadDateFormat=Η τιμή «%s« δεν έχει σωστή μορφή ημερομηνίας ErrorWrongDate=Η ημερομηνία δεν είναι σωστή! -ErrorFailedToWriteInDir=Αποτυχία εγγραφής στον %s φάκελο -ErrorFoundBadEmailInFile=Βρέθηκε εσφαλμένη σύνταξη e-mail για %s γραμμές στο αρχείο (%s γραμμή παράδειγμα με e-mail = %s) +ErrorFailedToWriteInDir=Απέτυχε η εγγραφή στον κατάλογο %s +ErrorFailedToBuildArchive=Αποτυχία δημιουργίας αρχείου αρχειοθέτησης %s +ErrorFoundBadEmailInFile=Βρέθηκε λανθασμένη σύνταξη email για %s γραμμές στο αρχείο (παράδειγμα γραμμής %s με email=%s) ErrorUserCannotBeDelete=Ο χρήστης δεν μπορεί να διαγραφεί. Ίσως σχετίζεται με οντότητες Dolibarr. ErrorFieldsRequired=Ορισμένα υποχρεωτικά πεδία έχουν μείνει κενά. ErrorSubjectIsRequired=Το θέμα του email είναι υποχρεωτικό -ErrorFailedToCreateDir=Αποτυχία δημιουργίας φακέλου. Βεβαιωθείτε ότι ο Web server χρήστης έχει δικαιώματα να γράψει στο φάκελο εγγράφων του Dolibarr. Αν η safe_mode παράμετρος είναι ενεργοποιημένη για την PHP, ελέγξτε ότι τα αρχεία php του Dolibarr ανήκουν στον web server χρήστη (ή ομάδα). +ErrorFailedToCreateDir=Αποτυχία δημιουργίας καταλόγου. Ελέγξτε ότι ο χρήστης του διακομιστή Web έχει δικαιώματα εγγραφής στον κατάλογο εγγράφων Dolibarr. Εάν η παράμετρος safe_mode είναι ενεργοποιημένη σε αυτήν την PHP, ελέγξτε ότι τα αρχεία php Dolibarr ανήκουν σε χρήστη (ή ομάδα) διακομιστή web. ErrorNoMailDefinedForThisUser=Δεν έχει οριστεί mail για αυτόν το χρήστη ErrorSetupOfEmailsNotComplete=Η ρύθμιση των email δεν έχει ολοκληρωθεί ErrorFeatureNeedJavascript=Αυτό το χαρακτηριστικό χρειάζεται ενεργοποιημένη την javascript. Αλλάξτε την ρύθμιση στο Ρυθμίσεις - Εμφάνιση. -ErrorTopMenuMustHaveAParentWithId0=Ένα μενού του «Top» τύπου δεν μπορεί να έχει ένα μενού γονέα. Βάλτε 0 στο μενού του γονέα ή να επιλέξετε ένα μενού του τύπου «αριστερά». -ErrorLeftMenuMustHaveAParentId=Ένα μενού της «Αριστεράς» τύπου πρέπει να έχει ένα id γονέα. -ErrorFileNotFound=Το αρχείο δεν βρέθηκε %s (Λανθασμένη διαδρομή, λανθασμένη δικαιώματα ή δεν επιτρέπεται η πρόσβαση από την PHP openbasedir ή safe_mode παράμετρος) -ErrorDirNotFound=%s Directory δεν βρέθηκε (Bad μονοπάτι, λάθος άδειες ή δεν επιτρέπεται η πρόσβαση από την PHP openbasedir ή safe_mode παράμετρος) -ErrorFunctionNotAvailableInPHP=%s Λειτουργία απαιτείται για αυτό το χαρακτηριστικό, αλλά δεν είναι διαθέσιμα σε αυτή την έκδοση / setup της PHP. +ErrorTopMenuMustHaveAParentWithId0=Ένα μενού τύπου "Top" δεν μπορεί να έχει γονικό μενού. Βάλτε 0 στο γονικό μενού ή επιλέξτε ένα μενού τύπου «Left». +ErrorLeftMenuMustHaveAParentId=Ένα μενού τύπου "Left" πρέπει να έχει αναγνωριστικό γονέα. +ErrorFileNotFound=Το αρχείο %s δεν βρέθηκε (Λάθος διαδρομή, λανθασμένα δικαιώματα, η πρόσβαση δεν επιτρέπεται από την PHP openbasedir ή την παράμετρο safe_mode) +ErrorDirNotFound=Δεν βρέθηκε ο κατάλογος %s (Λάθος διαδρομή, λανθασμένα δικαιώματα, η πρόσβαση δεν επιτρέπεται από την PHP openbasedir ή την παράμετρο safe_mode) +ErrorFunctionNotAvailableInPHP=Η Function %s απαιτείται για αυτήν τη δυνατότητα, αλλά δεν είναι διαθέσιμη σε αυτήν την έκδοση/ρύθμιση της PHP. ErrorDirAlreadyExists=Ένας κατάλογος με αυτό το όνομα υπάρχει ήδη. ErrorFileAlreadyExists=Ένα αρχείο με αυτό το όνομα υπάρχει ήδη. ErrorDestinationAlreadyExists=Υπάρχει ήδη ένα άλλο αρχείο με το όνομα %s . ErrorPartialFile=Ο διακομιστής δεν έλαβε ολόκληρο το αρχείο. -ErrorNoTmpDir=Ο προσωρινός φάκελος %s δεν υπάρχει. +ErrorNoTmpDir=Ο προσωρινός κατάλογος %s δεν υπάρχει. ErrorUploadBlockedByAddon=Η μεταφόρτωση απετράπει από ένα PHP / Apache plugin. ErrorFileSizeTooLarge=Το μέγεθος του αρχείου είναι πολύ μεγάλο ή το αρχείο δεν παρέχεται. ErrorFieldTooLong=Το πεδίο %s είναι πολύ μεγάλο. -ErrorSizeTooLongForIntType=Το μέγεθος είναι υπερβολικά μεγάλο για τιμή τύπου ακεραίου (%s είναι το μέγιστο πλήθος ψηφίων) -ErrorSizeTooLongForVarcharType=Το μέγεθος είναι υπερβολικά μεγάλο για τιμή τύπου αλφαριθμητικού (%s είναι το μέγιστο πλήθος χαρακτήρων) -ErrorNoValueForSelectType=Παρακαλούμε συμπληρώστε τιμή για την αναδυόμενη λίστα επιλογής -ErrorNoValueForCheckBoxType=Παρακαλούμε συμπληρώστε τιμή για την λίστα επιλογής -ErrorNoValueForRadioType=Παρακαλούμε συμπληρώστε τιμή για την λίστα επιλογής μίας επιλογής -ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value +ErrorSizeTooLongForIntType=Το μέγεθος είναι υπερβολικά μεγάλο για τιμή τύπου int (ακεραίου) (%s ψηφία το περισσότερο +ErrorSizeTooLongForVarcharType=Το μέγεθος είναι υπερβολικά μεγάλο για τιμή τύπου string (%s ψηφία το περισσότερο) +ErrorNoValueForSelectType=Παρακαλώ συμπληρώστε την τιμή για τη λίστα επιλογής +ErrorNoValueForCheckBoxType=Παρακαλώ συμπληρώστε την τιμή για τη λίστα πλαισίου ελέγχου +ErrorNoValueForRadioType=Παρακαλώ συμπληρώστε την τιμή για τη λίστα τύπου radio +ErrorBadFormatValueList=Η τιμή της λίστας δεν μπορεί να έχει περισσότερα από ένα κόμμα: %s , αλλά χρειάζεται τουλάχιστον ένα: κλειδί, τιμή ErrorFieldCanNotContainSpecialCharacters=Το πεδίο %s δεν πρέπει να περιέχει ειδικούς χαρακτήρες. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Το πεδίο %s δεν πρέπει να περιέχει ειδικούς χαρακτήρες ούτε κεφαλαίους χαρακτήρες και δεν μπορεί να περιέχει μόνο αριθμούς. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Το πεδίο %s δεν πρέπει να περιέχει ειδικούς χαρακτήρες, ούτε κεφαλαίους χαρακτήρες και πρέπει να ξεκινά με αλφαβητικό χαρακτήρα (a-z) ErrorFieldMustHaveXChar=Το πεδίο %s πρέπει να έχει τουλάχιστον %s χαρακτήρες. -ErrorNoAccountancyModuleLoaded=Δεν έχει ενεργοποιηθεί λογιστική μονάδα +ErrorNoAccountancyModuleLoaded=Δεν έχει ενεργοποιηθεί η ενότητα λογιστικής ErrorExportDuplicateProfil=Αυτό το όνομα προφίλ υπάρχει ήδη για αυτό το σύνολο των εξαγωγών. ErrorLDAPSetupNotComplete=Η αντιστοίχιση Dolibarr-LDAP δεν είναι πλήρης. -ErrorLDAPMakeManualTest=Ένα αρχείο. Ldif έχει δημιουργηθεί στον φάκελο %s. Προσπαθήστε να το φορτώσετε χειροκίνητα από την γραμμή εντολών για να έχετε περισσότερες πληροφορίες σχετικά με τα σφάλματα. -ErrorCantSaveADoneUserWithZeroPercentage=Δεν είναι δυνατή η αποθήκευση μιας ενέργειας με "κατάσταση δεν έχει ξεκινήσει" εάν συμπληρώνεται επίσης το πεδίο "done by". +ErrorLDAPMakeManualTest=Ένα αρχείο .ldif έχει δημιουργηθεί στον κατάλογο %s. Προσπαθήστε να το φορτώσετε χειροκίνητα από τη γραμμή εντολών για να έχετε περισσότερες πληροφορίες σχετικά με τα σφάλματα. +ErrorCantSaveADoneUserWithZeroPercentage=Δεν είναι δυνατή η αποθήκευση μιας ενέργειας με "κατάσταση μη έναρξης" εάν το πεδίο "ολοκληρώθηκε από" είναι επίσης συμπληρωμένο. ErrorRefAlreadyExists=Η αναφορά %s υπάρχει ήδη. -ErrorPleaseTypeBankTransactionReportName=Παρακαλούμε εισάγετε το όνομα του τραπεζικού λογαριασμού όπου πρέπει να αναφέρεται η καταχώρηση (Format YYYYMM ή YYYYMMDD) -ErrorRecordHasChildren=Δεν ήταν δυνατή η διαγραφή της εγγραφής, δεδομένου ότι έχει ορισμένα αρχεία παιδιών. -ErrorRecordHasAtLeastOneChildOfType=Το αντικείμενο %s έχει τουλάχιστον ένα child τύπου %s +ErrorPleaseTypeBankTransactionReportName=Παρακαλώ εισάγετε το όνομα του τραπεζικού λογαριασμού που πρέπει να καταχωρηθεί η εγγραφή (Μορφή YYYYMM ή YYYYMMDD) +ErrorRecordHasChildren=Απέτυχε η διαγραφή της εγγραφής, καθώς έχει ορισμένες θυγατρικές εγγραφές. +ErrorRecordHasAtLeastOneChildOfType=Το αντικείμενο %s έχει τουλάχιστον ένα θυγατρικό τύπου %s ErrorRecordIsUsedCantDelete=Δεν είναι δυνατή η διαγραφή εγγραφής. Χρησιμοποιείται ήδη ή συμπεριλαμβάνεται σε άλλο αντικείμενο. -ErrorModuleRequireJavascript=Η Javascript πρέπει να είναι άτομα με ειδικές ανάγκες να μην έχουν αυτή τη δυνατότητα εργασίας. Για να ενεργοποιήσετε / απενεργοποιήσετε το Javascript, πηγαίνετε στο μενού Home-> Setup-> Εμφάνιση. -ErrorPasswordsMustMatch=Και οι δύο πληκτρολογήσει τους κωδικούς πρόσβασης πρέπει να ταιριάζουν μεταξύ τους -ErrorContactEMail=Παρουσιάστηκε τεχνικό σφάλμα. Παρακαλούμε, επικοινωνήστε με τον διαχειριστή με το ακόλουθο μήνυμα ηλεκτρονικού ταχυδρομείου %s και δώστε τον κωδικό σφάλματος %s στο μήνυμά σας ή προσθέστε ένα αντίγραφο οθόνης αυτής της σελίδας. -ErrorWrongValueForField=Πεδίο %s : ' %s ' δεν ταιριάζει με τον κανόνα regex %s -ErrorFieldValueNotIn=Πεδίο %s : ' %s ' δεν είναι μια τιμή που βρέθηκε στο πεδίο %s του %s -ErrorFieldRefNotIn=Πεδίο %s : ' %s ' δεν είναι %s υπάρχουσα αναφορά -ErrorsOnXLines=βρέθηκαν σφάλματα %s -ErrorFileIsInfectedWithAVirus=Το πρόγραμμα προστασίας από ιούς δεν ήταν σε θέση να επικυρώσει το αρχείο (αρχείο μπορεί να μολυνθεί από έναν ιό) -ErrorSpecialCharNotAllowedForField=Ειδικοί χαρακτήρες δεν επιτρέπονται για το πεδίο "%s" -ErrorNumRefModel=Μια αναφορά υπάρχει στη βάση δεδομένων (%s) και δεν είναι συμβατές με αυτόν τον κανόνα αρίθμηση. Αφαιρέστε το αρχείο ή μετονομαστεί αναφοράς για να ενεργοποιήσετε αυτή την ενότητα. -ErrorQtyTooLowForThisSupplier=Ποσότητα πολύ χαμηλή για αυτόν τον πωλητή ή καμία τιμή που ορίζεται για αυτό το προϊόν για αυτόν τον προμηθευτή +ErrorModuleRequireJavascript=Η Javascript δεν πρέπει να είναι απενεργοποιημένη για να λειτουργεί αυτή η δυνατότητα. Για να ενεργοποιήσετε/απενεργοποιήσετε τη Javascript, μεταβείτε στο μενού Αρχικη->Ρυθμίσεις->Εμφάνιση. +ErrorPasswordsMustMatch=Και οι δύο πληκτρολογημένοι κωδικοί πρόσβασης πρέπει να ταιριάζουν μεταξύ τους +ErrorContactEMail=Παρουσιάστηκε τεχνικό σφάλμα. Επικοινωνήστε με τον διαχειριστή στο ακόλουθο email %s και δώστε τον κωδικό σφάλματος %s ή ένα print screen +ErrorWrongValueForField=Το πεδίο %s : ' %s ' δεν ταιριάζει με τον κανόνα regex %s +ErrorHtmlInjectionForField=Πεδίο %s : Η τιμή ' %s' περιέχει μη επιτρεπτά κακόβουλα δεδομένα +ErrorFieldValueNotIn=Πεδίο %s : ' %s ' δεν ειναι η τιμή που βρέθηκε στο πεδίο %s του %s +ErrorFieldRefNotIn=Πεδίο %s : ' %s ' δεν ειναι %s υπάρχουσας αναφοράς +ErrorMultipleRecordFoundFromRef=Βρέθηκαν αρκετές εγγραφές κατά την αναζήτηση για την αναφορά %s . Δεν υπάρχει τρόπος αντιστοίχισης κάποιου ID. +ErrorsOnXLines=%sσφάλματα βρέθηκαν +ErrorFileIsInfectedWithAVirus=Το πρόγραμμα προστασίας από ιούς δεν μπόρεσε να επικυρώσει το αρχείο (το αρχείο ενδέχεται να έχει μολυνθεί από ιό) +ErrorNumRefModel=Υπάρχει μια αναφορά στη βάση δεδομένων (%s) και δεν είναι συμβατή με αυτόν τον κανόνα αρίθμησης. Καταργήστε την εγγραφή ή την μετονομάστε την αναφορά για να ενεργοποιήσετε αυτήν την ενότητα. +ErrorQtyTooLowForThisSupplier=Πολύ χαμηλή ποσότητα για αυτόν τον προμηθευτή ή δεν έχει καθοριστεί τιμή σε αυτό το προϊόν για αυτόν τον προμηθευτή ErrorOrdersNotCreatedQtyTooLow=Ορισμένες παραγγελίες δεν έχουν δημιουργηθεί λόγω υπερβολικά μικρών ποσοτήτων -ErrorModuleSetupNotComplete=Η εγκατάσταση του module %s φαίνεται να είναι ατελής. Πηγαίνετε στην Αρχική σελίδα - Εγκατάσταση - Ενότητες για ολοκλήρωση. +ErrorModuleSetupNotComplete=Η ρύθμιση της ενότητας %s φαίνεται να μην έχει ολοκληρωθεί. Μεταβείτε στο Αρχική - Ρυθμίσεις - Ενότητες / Εφαρμογές για ολοκλήρωση. ErrorBadMask=Σφάλμα στην μάσκα -ErrorBadMaskFailedToLocatePosOfSequence=Σφάλμα, μάσκα χωρίς τον αύξοντα αριθμό -ErrorBadMaskBadRazMonth=Σφάλμα, κακή αξία επαναφορά -ErrorMaxNumberReachForThisMask=Ο μέγιστος αριθμός που επιτεύχθηκε για αυτήν τη μάσκα +ErrorBadMaskFailedToLocatePosOfSequence=Σφάλμα, μάσκα χωρίς αύξοντα αριθμό +ErrorBadMaskBadRazMonth=Σφάλμα, κακή τιμή επαναφοράς +ErrorMaxNumberReachForThisMask=Συμπληρώθηκε ο μέγιστος αριθμός για αυτήν τη μάσκα ErrorCounterMustHaveMoreThan3Digits=Ο μετρητής πρέπει να έχει περισσότερα από 3 ψηφία ErrorSelectAtLeastOne=Σφάλμα, επιλέξτε τουλάχιστον μία καταχώριση. ErrorDeleteNotPossibleLineIsConsolidated=Η διαγραφή δεν είναι δυνατή επειδή η εγγραφή συνδέεται με μια τραπεζική συναλλαγή που είναι συμβιβασμένη -ErrorProdIdAlreadyExist=%s έχει ανατεθεί σε άλλη τρίτη +ErrorProdIdAlreadyExist=Η%s ανήκει σε άλλο προϊόν ErrorFailedToSendPassword=Αποτυχία αποστολής κωδικού -ErrorFailedToLoadRSSFile=Αποτυγχάνει να πάρει RSS feed. Προσπαθήστε να προσθέσετε σταθερή MAIN_SIMPLEXMLLOAD_DEBUG εάν τα μηνύματα λάθους δεν παρέχει αρκετές πληροφορίες. -ErrorForbidden=Access denied.
    You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. -ErrorForbidden2=Η άδεια για αυτή τη σύνδεση μπορεί να οριστεί από το διαχειριστή σας Dolibarr από το μενού %s-> %s. -ErrorForbidden3=Φαίνεται ότι Dolibarr δεν χρησιμοποιείται μέσω επικυρωμένο συνεδρία. Ρίξτε μια ματιά στην τεκμηρίωση της εγκατάστασης Dolibarr να ξέρει πώς να διαχειριστεί authentications (htaccess, mod_auth ή άλλα ...). +ErrorFailedToLoadRSSFile=Αποτυχία λήψης ροής RSS. Προσπαθήστε να προσθέσετε τη σταθερά MAIN_SIMPLEXMLLOAD_DEBUG εάν τα μηνύματα σφάλματος δεν παρέχουν αρκετές πληροφορίες. +ErrorForbidden=Δεν επιτρέπεται η πρόσβαση.
    Προσπαθείτε να αποκτήσετε πρόσβαση σε μια σελίδα, περιοχή ή δυνατότητα μιας απενεργοποιημένης ενότητας ή χωρίς να βρίσκεστε σε μια επαληθευμένη περίοδο λειτουργίας ή δεν επιτρέπεται στον χρήστη σας. +ErrorForbidden2=Η άδεια για αυτή τη σύνδεση μπορεί να οριστεί από το διαχειριστή σας από το μενού %s-> %s. +ErrorForbidden3=Φαίνεται ότι το Dolibarr δεν χρησιμοποιείται μέσω επικυρωμένης συνεδρίας. Ρίξτε μια ματιά στην τεκμηρίωση εγκατάστασης του Dolibarr για να μάθετε πώς να διαχειρίζεστε τους ελέγχους ταυτότητας (htaccess, mod_auth ή άλλα...). ErrorForbidden4=Σημείωση: διαγράψτε τα cookies του προγράμματος περιήγησης σας για να διαγράψετε τις υπάρχουσες περιόδους σύνδεσης για αυτήν τη σύνδεση. -ErrorNoImagickReadimage=Κατηγορία imagick δεν βρίσκεται σε αυτό το PHP. Δεν προεπισκόπηση μπορεί να είναι διαθέσιμες. Οι διαχειριστές μπορούν να απενεργοποιήσουν αυτή την καρτέλα από το πρόγραμμα Εγκατάστασης μενού - Οθόνη. -ErrorRecordAlreadyExists=Εγγραφή υπάρχει ήδη +ErrorNoImagickReadimage=Η κλάση Imagick δεν υπαρχει σε αυτήν την PHP. Η προεπισκόπηση δεν είναι διαθέσιμη . Οι διαχειριστές μπορούν να απενεργοποιήσουν αυτήν την καρτέλα από το μενού Ρυθμίσεις - Εμφάνιση. +ErrorRecordAlreadyExists=Η εγγραφή υπάρχει ήδη ErrorLabelAlreadyExists=Αυτή η ετικέτα υπάρχει ήδη -ErrorCantReadFile=Αποτυχία ανάγνωσης αρχείου "%s» -ErrorCantReadDir=Αποτυχία ανάγνωσης »%s» κατάλογο +ErrorCantReadFile=Απέτυχε η ανάγνωση του αρχείου "%s" +ErrorCantReadDir=Απέτυχε η ανάγνωση του καταλόγου "%s" ErrorBadLoginPassword=Το Όνομα Χρήστη ή ο Κωδικός Χρήστη είναι λάθος ErrorLoginDisabled=Ο λογαριασμός σας έχει απενεργοποιηθεί -ErrorFailedToRunExternalCommand=Αποτυχία εκτέλεσης εξωτερικής εντολής. Ελέγξτε ότι είναι διαθέσιμη και οτι μπορεί να εκτελεστεί από τον χρήστη PHP του διακομιστή σας. Ελέγξτε επίσης ότι η εντολή δεν προστατεύεται σε επίπεδο κελύφους από ένα επίπεδο ασφαλείας όπως το apparmor. -ErrorFailedToChangePassword=Αποτυχία να αλλάξετε τον κωδικό πρόσβασης -ErrorLoginDoesNotExists=Χρήστης με %s login δεν θα μπορούσε να βρεθεί. -ErrorLoginHasNoEmail=Αυτός ο χρήστης δεν έχει τη διεύθυνση ηλεκτρονικού ταχυδρομείου. Επεξεργασία ματαιώθηκε. -ErrorBadValueForCode=Κακό αξία για τον κωδικό ασφαλείας. Δοκιμάστε ξανά με νέα τιμή ... -ErrorBothFieldCantBeNegative=Πεδία %s %s και δεν μπορεί να είναι τόσο αρνητικές όσο +ErrorFailedToRunExternalCommand=Αποτυχία εκτέλεσης εξωτερικής εντολής. Ελέγξτε ότι είναι διαθέσιμη και ότι μπορεί να εκτελεστεί από τον χρήστη PHP του διακομιστή σας. Ελέγξτε επίσης ότι η εντολή δεν προστατεύεται σε επίπεδο κελύφους από ένα επίπεδο ασφαλείας όπως το apparmor. +ErrorFailedToChangePassword=Αποτυχία αλλαγής κωδικού πρόσβασης +ErrorLoginDoesNotExists=Ο χρήστης με σύνδεση %s δεν βρέθηκε. +ErrorLoginHasNoEmail=Αυτός ο χρήστης δεν έχει διεύθυνση email. Η διαδικασία διακόπηκε. +ErrorBadValueForCode=Λάθος τιμή για τον κωδικό ασφαλείας. Δοκιμάστε ξανά με νέα τιμή... +ErrorBothFieldCantBeNegative=Τα πεδία %s και %s δεν μπορούν να είναι και τα δύο αρνητικά ErrorFieldCantBeNegativeOnInvoice=Το πεδίο %s δεν μπορεί να είναι αρνητικό σε αυτόν τον τύπο τιμολογίου. Εάν πρέπει να προσθέσετε μια γραμμή έκπτωσης, απλώς δημιουργήστε πρώτα την έκπτωση (από το πεδίο '%s' στην κάρτα τρίτου μέρους) και εφαρμόστε την στο τιμολόγιο. ErrorLinesCantBeNegativeForOneVATRate=Το σύνολο των γραμμών (καθαρό από φόρους) δεν μπορεί να είναι αρνητικό για έναν δεδομένο μη μηδενικό συντελεστή ΦΠΑ (Βρέθηκε αρνητικό σύνολο για τον συντελεστή ΦΠΑ %s %%). ErrorLinesCantBeNegativeOnDeposits=Οι γραμμές δεν μπορούν να είναι αρνητικές σε μια κατάθεση. Θα αντιμετωπίσετε προβλήματα όταν θα χρειαστεί να καταναλώσετε την προκαταβολή στο τελικό τιμολόγιο εάν το κάνετε. -ErrorQtyForCustomerInvoiceCantBeNegative=Η ποσότητα στην γραμμή στα τιμολόγια των πελατών δεν μπορεί να είναι αρνητική -ErrorWebServerUserHasNotPermission=Λογαριασμό χρήστη %s χρησιμοποιείται για την εκτέλεση του web server δεν έχει άδεια για τη συγκεκριμένη -ErrorNoActivatedBarcode=Δεν ενεργοποιείται τύπου barcode -ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP -ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package -ErrorModuleFileRequired=You must select a Dolibarr module package file -ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal -ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base -ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base -ErrorNewValueCantMatchOldValue=New value can't be equal to old one -ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. -ErrorToConnectToMysqlCheckInstance=Η σύνδεση με τη βάση δεδομένων αποτυγχάνει. Ελέγξτε ότι ο διακομιστής βάσης δεδομένων εκτελείται (για παράδειγμα, με το mysql / mariadb, μπορείτε να το ξεκινήσετε από τη γραμμή εντολών με το 'sudo service mysql start'). -ErrorFailedToAddContact=Failed to add contact -ErrorDateMustBeBeforeToday=Η ημερομηνία πρέπει να είναι προγενέστερη τη σημερινής +ErrorQtyForCustomerInvoiceCantBeNegative=Η ποσότητα στην γραμμή των τιμολογίων πελατών δεν μπορεί να είναι αρνητική +ErrorWebServerUserHasNotPermission=Ο λογαριασμός χρήστη %s που χρησιμοποιείται για την εκτέλεση του διακομιστή web δεν έχει άδεια για αυτό +ErrorNoActivatedBarcode=Δεν έχει ενεργοποιηθεί κάποιος τύπος γραμμικού κώδικα +ErrUnzipFails=Αποτυχία αποσυμπίεσης του %s με το ZipArchive +ErrNoZipEngine=Δεν υπάρχει μηχανή για συμπίεση/αποσυμπίεση αρχείου %s σε αυτήν την PHP +ErrorFileMustBeADolibarrPackage=Το αρχείο %s πρέπει να είναι πακέτο zip Dolibarr +ErrorModuleFileRequired=Πρέπει να επιλέξετε ένα αρχείο πακέτου ενότητας του Dolibarr +ErrorPhpCurlNotInstalled=Το PHP CURL δεν είναι εγκατεστημένο, αυτό είναι απαραίτητο για να συνδεθείτε με το Paypal +ErrorFailedToAddToMailmanList=Απέτυχε η προσθήκη της εγγραφής %s στη λίστα Mailman %s ή στη βάση SPIP +ErrorFailedToRemoveToMailmanList=Απέτυχε η κατάργηση της εγγραφής %s από τη λίστα Mailman %s ή από τη βάση SPIP +ErrorNewValueCantMatchOldValue=Η νέα τιμή δεν μπορεί να είναι ίση με την παλιά +ErrorFailedToValidatePasswordReset=Αποτυχία επαναφοράς κωδικού πρόσβασης. Ίσως η επαναφορά να έχει ήδη γίνει (αυτός ο σύνδεσμος μπορεί να χρησιμοποιηθεί μόνο μία φορά). Εάν όχι, προσπαθήστε να επανεκκινήσετε τη διαδικασία επαναφοράς. +ErrorToConnectToMysqlCheckInstance=Η σύνδεση με τη βάση δεδομένων αποτυγχάνει. Ελέγξτε ότι ο διακομιστής βάσης δεδομένων εκτελείται (για παράδειγμα, με το mysql/mariadb, μπορείτε να τον εκκινήσετε από τη γραμμή εντολών με το 'sudo service mysql start'). +ErrorFailedToAddContact=Αποτυχία προσθήκης επαφής +ErrorDateMustBeBeforeToday=Η ημερομηνία πρέπει να είναι προγενέστερη της σημερινής ErrorDateMustBeInFuture=Η ημερομηνία πρέπει να είναι μεταγενέστερη της σημερινής -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. -ErrorPHPNeedModule=Σφάλμα, η PHP σας πρέπει να έχει το module %s εγκατεστημένο για να χρησιμοποιήσετε αυτήν τη δυνατότητα. -ErrorOpenIDSetupNotComplete=Μπορείτε να ρυθμίσετε το Dolibarr αρχείο config να επιτρέψει OpenID ταυτότητα, αλλά το URL OpenID υπηρεσίας δεν ορίζεται σε συνεχή %s -ErrorWarehouseMustDiffers=Η πηγή και ο στόχος των αποθηκών πρέπει να είναι διαφορετικός. -ErrorBadFormat=Κακή μορφή! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. -ErrorThereIsSomeDeliveries=Σφάλμα υπάρχουν κάποιες παραδόσεις που συνδέονται με την εν λόγω αποστολή. Η διαγραφή απορρίφθηκε. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled -ErrorCantDeletePaymentSharedWithPayedInvoice=Δεν είναι δυνατή η διαγραφή πληρωμής που έχει μοιραστεί με τουλάχιστον ένα τιμολόγιο με κατάσταση πληρωμής -ErrorPriceExpression1=Αδύνατη η ανάθεση στην σταθερά '%s' +ErrorPaymentModeDefinedToWithoutSetup=Ένας τρόπος πληρωμής ορίστηκε στον τύπο %s, αλλά η ρύθμιση της ενότητας Τιμολόγιο δεν ολοκληρώθηκε για τον καθορισμό πληροφοριών που θα εμφανίζονται για αυτόν τον τρόπο πληρωμής. +ErrorPHPNeedModule=Σφάλμα, η PHP σας θα πρέπει να έχει εγκατεστημένη την ενότητα %s για να χρησιμοποιηθεί αυτή η δυνατότητα. +ErrorOpenIDSetupNotComplete=Ρυθμίσατε το αρχείο διαμόρφωσης Dolibarr ετσι ωστε να επιτρέπεται ο έλεγχος ταυτότητας OpenID, αλλά η διεύθυνση URL της υπηρεσίας OpenID δεν ορίζεται στη σταθερά %s +ErrorWarehouseMustDiffers=Οι αποθήκες πηγής και προορισμού πρέπει να διαφέρουν +ErrorBadFormat=Λάθος μορφή! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Σφάλμα, αυτό το μέλος δεν είναι ακόμη συνδεδεμένο με κανένα τρίτο μέρος. Συνδέστε το μέλος με ένα υπάρχον τρίτο μέρος ή δημιουργήστε ένα νέο τρίτο μέρος πριν δημιουργήσετε συνδρομή με το τιμολόγιο. +ErrorThereIsSomeDeliveries=Σφάλμα, υπάρχουν ορισμένες παραδόσεις που συνδέονται με αυτήν την αποστολή. Η διαγραφή απορρίφθηκε. +ErrorCantDeletePaymentReconciliated=Δεν είναι δυνατή η διαγραφή μιας πληρωμής που είχε δημιουργήσει μια τραπεζική καταχώριση που συμβιβάστηκε +ErrorCantDeletePaymentSharedWithPayedInvoice=Δεν είναι δυνατή η διαγραφή πληρωμής που έχει μοιραστεί με τουλάχιστον ένα τιμολόγιο σε κατάσταση πληρωμένου +ErrorPriceExpression1=Δεν είναι δυνατή η ανάθεση στη σταθερά '%s' ErrorPriceExpression2=Αδυναμία επαναπροσδιορισμού ενσωματωμένης λειτουργίας '%s' ErrorPriceExpression3=Μη ορισμένη μεταβλητή '%s' στον ορισμό συνάρτησης -ErrorPriceExpression4=Άγνωστος χαρακτήρας '%s' -ErrorPriceExpression5=Μη αναμενόμενο '%s' -ErrorPriceExpression6=Λάθος αριθμός παραμέτρων (%s δόθηκαν, %s αναμενώμενα) +ErrorPriceExpression4=Μη επιτρεπτός χαρακτήρας "%s" +ErrorPriceExpression5=Μη αναμενόμενη '%s' +ErrorPriceExpression6=Λάθος αριθμός παραμέτρων (%s δόθηκαν, %s αναμενόμενα) ErrorPriceExpression8=Μη αναμενόμενος τελεστής '%s' -ErrorPriceExpression9=Μη αναμενόμενο σφάλμα -ErrorPriceExpression10=Ο χειριστής '%s' δεν έχει τελεστή -ErrorPriceExpression11=Περιμένει '%s' +ErrorPriceExpression9=Παρουσιάστηκε απροσδόκητο σφάλμα +ErrorPriceExpression10=Ο τελεστής '%s' δεν έχει τελεστή +ErrorPriceExpression11=Αναμένοντας "%s" ErrorPriceExpression14=Διαίρεση με το μηδέν -ErrorPriceExpression17=Μη ορισμένη μεταβλητή '%s' +ErrorPriceExpression17=Μη καθορισμένη μεταβλητή '%s' ErrorPriceExpression19=Η έκφραση δεν βρέθηκε ErrorPriceExpression20=Κενή έκφραση ErrorPriceExpression21=Κενό αποτέλεσμα '%s' ErrorPriceExpression22=Αρνητικό αποτέλεσμα '%s' -ErrorPriceExpression23=Άγνωστη ή μη καθορισμένη μεταβλητή '%s' στο %s -ErrorPriceExpression24=Η μεταβλητή '%s' υπάρχει αλλά δεν έχει αξία +ErrorPriceExpression23=Άγνωστη ή μη καθορισμένη μεταβλητή '%s' σε %s +ErrorPriceExpression24=Η μεταβλητή '%s' υπάρχει αλλά δεν έχει αξία ErrorPriceExpressionInternal=Εσωτερικό σφάλμα '%s' -ErrorPriceExpressionUnknown=Άγνωστο σφάλμα '%s' -ErrorSrcAndTargetWarehouseMustDiffers=Η πηγή και ο στόχος των αποθηκών πρέπει να είναι διαφορετικός. -ErrorTryToMakeMoveOnProductRequiringBatchData=Σφάλμα, προσπαθώντας να πραγματοποιήσετε μια κίνηση αποθέματος χωρίς πολλές / σειριακές πληροφορίες, στο προϊόν '%s' που απαιτεί πολλές / σειριακές πληροφορίες -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action -ErrorGlobalVariableUpdater0=HTTP request failed with error '%s' -ErrorGlobalVariableUpdater1=Invalid JSON format '%s' -ErrorGlobalVariableUpdater2=Missing parameter '%s' -ErrorGlobalVariableUpdater3=The requested data was not found in result -ErrorGlobalVariableUpdater4=SOAP client failed with error '%s' -ErrorGlobalVariableUpdater5=No global variable selected +ErrorPriceExpressionUnknown=Άγνωστο σφάλμα "%s" +ErrorSrcAndTargetWarehouseMustDiffers=Οι αποθήκες πηγής και προορισμού πρέπει να διαφέρουν +ErrorTryToMakeMoveOnProductRequiringBatchData=Σφάλμα, προσπάθεια πραγματοποίησης κίνησης αποθεμάτων χωρίς πληροφορίες παρτίδας/σειριακού αριθμού, στο προϊόν '%s' που τις απαιτεί +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Όλες οι καταγεγραμμένες παραλαβές πρέπει πρώτα να επαληθευτούν (εγκριθούν ή να απορριφθούν) προτού τους επιτραπεί αυτή την ενέργεια +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Όλες οι καταγεγραμμένες παραλαβές πρέπει πρώτα να επαληθευτούν (εγκριθούν) προτού τους επιτραπεί αυτή την ενέργεια +ErrorGlobalVariableUpdater0=Το αίτημα HTTP απέτυχε με σφάλμα "%s" +ErrorGlobalVariableUpdater1=Μη έγκυρη μορφή JSON '%s' +ErrorGlobalVariableUpdater2=Λείπει παράμετρος '%s' +ErrorGlobalVariableUpdater3=Τα ζητούμενα δεδομένα δεν βρέθηκαν ως αποτέλεσμα +ErrorGlobalVariableUpdater4=Ο SOAP client απέτυχε με σφάλμα "%s" +ErrorGlobalVariableUpdater5=Δεν έχει επιλεγεί καθολική μεταβλητή ErrorFieldMustBeANumeric=Το πεδίο %s πρέπει να περιέχει αριθμητική τιμή -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided -ErrorOppStatusRequiredIfAmount=Ορίζετε ένα εκτιμώμενο ποσό για αυτό το μόλυβδο. Επομένως, πρέπει επίσης να εισάγετε την κατάστασή του. -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) +ErrorMandatoryParametersNotProvided=Δεν παρέχονται υποχρεωτικές παράμετροι +ErrorOppStatusRequiredIfAmount=Ορίσατε ένα εκτιμώμενο ποσό για αυτόν τον δυνητικό πελάτη. Πρέπει λοιπόν να εισάγετε και την κατάστασή του. +ErrorFailedToLoadModuleDescriptorForXXX=Απέτυχε η φόρτωση της κλάσης περιγραφικού αρχείου της ενότητας για %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Λάθος ορισμός διάταξης μενού στο περιγραφικό αρχείο της ενότητας (λάθος τιμή για το κλειδί fk_menu) ErrorSavingChanges=Παρουσιάστηκε σφάλμα κατά την αποθήκευση των αλλαγών -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship -ErrorFileMustHaveFormat=File must have format %s +ErrorWarehouseRequiredIntoShipmentLine=Απαιτείται αποθήκη στη γραμμή για αποστολή +ErrorFileMustHaveFormat=Το αρχείο πρέπει να έχει μορφή %s ErrorFilenameCantStartWithDot=Το όνομα αρχείου δεν μπορεί να ξεκινά με ένα '.' -ErrorSupplierCountryIsNotDefined=Χώρα για αυτόν τον προμηθευτή δεν έχει οριστεί. Διορθώστε πρώτα αυτό. -ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. -ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. -ErrorTaskAlreadyAssigned=Task already assigned to user -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorModuleFileSeemsToHaveAWrongFormat2=Τουλάχιστον ένας υποχρεωτικός κατάλογος πρέπει να υπάρχει στο zip της λειτουργικής μονάδας: %s ή %s -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s -ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. -ErrorNoWarehouseDefined=Error, no warehouses defined. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Η επικύρωση της μάζας δεν είναι δυνατή όταν η επιλογή αύξησης / μείωσης αποθέματος έχει οριστεί σε αυτήν την ενέργεια (πρέπει να επικυρώσετε μία προς μία, ώστε να μπορείτε να ορίσετε την αποθήκη για αύξηση / μείωση) -ErrorObjectMustHaveStatusDraftToBeValidated=Το αντικείμενο %s πρέπει να έχει την κατάσταση 'Draft' για επικύρωση. -ErrorObjectMustHaveLinesToBeValidated=Το αντικείμενο %s πρέπει να έχει επικυρωμένες γραμμές. -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Μόνο επικυρωμένα τιμολόγια μπορούν να σταλούν με τη μαζική ενέργεια "Αποστολή μέσω ηλεκτρονικού ταχυδρομείου". -ErrorChooseBetweenFreeEntryOrPredefinedProduct=Πρέπει να επιλέξετε αν το άρθρο είναι ένα προκαθορισμένο προϊόν ή όχι -ErrorDiscountLargerThanRemainToPaySplitItBefore=Η έκπτωση που προσπαθείτε να εφαρμόσετε είναι μεγαλύτερη από την αποπληρωμή. Διαχωρίστε την έκπτωση σε 2 μικρότερες εκπτώσεις πριν. -ErrorFileNotFoundWithSharedLink=Το αρχείο δεν βρέθηκε. Μπορεί να τροποποιηθεί το κλειδί κοινής χρήσης ή να καταργηθεί πρόσφατα το αρχείο. -ErrorProductBarCodeAlreadyExists=Ο γραμμωτός κώδικας προϊόντος %s υπάρχει ήδη σε άλλη αναφορά προϊόντος. +ErrorSupplierCountryIsNotDefined=Η χώρα για αυτόν τον προμηθευτή δεν έχει οριστεί. Διορθώστε αυτό πρώτα. +ErrorsThirdpartyMerge=Αποτυχία συγχώνευσης των δύο εγγραφών. Το αίτημα ακυρώθηκε. +ErrorStockIsNotEnoughToAddProductOnOrder=Το απόθεμα του προϊόντος %sδεν επαρκεί για να το προσθέσετε σε νέα παραγγελία. +ErrorStockIsNotEnoughToAddProductOnInvoice=Το απόθεμα του προϊόντος %s δεν επαρκεί για να το προσθέσετε σε νέο τιμολόγιο +ErrorStockIsNotEnoughToAddProductOnShipment=Το απόθεμα του προϊόντος %s δεν επαρκεί για να το προσθέσετε σε μια νέα αποστολή +ErrorStockIsNotEnoughToAddProductOnProposal=Το απόθεμα του προϊόντος %sδεν επαρκεί για να το προσθέσετε σε μια νέα προσφορά +ErrorFailedToLoadLoginFileForMode=Αποτυχία λήψης του κλειδιού σύνδεσης για τη λειτουργία '%s'. +ErrorModuleNotFound=Το αρχείο της ενότητας δεν βρέθηκε. +ErrorFieldAccountNotDefinedForBankLine=Η τιμή του λογαριασμού λογιστικής δεν έχει οριστεί για το αναγνωριστικό γραμμής πηγής %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Η τιμή του λογαριασμού λογιστικής δεν έχει οριστεί για το αναγνωριστικό τιμολογίου %s (%s) +ErrorFieldAccountNotDefinedForLine=Η τιμή του λογαριασμού λογιστικής δεν έχει οριστεί για τη γραμμη (%s) +ErrorBankStatementNameMustFollowRegex=Σφάλμα, το όνομα της κίνησης τράπεζας πρέπει να ακολουθεί τον ακόλουθο κανόνα σύνταξης %s +ErrorPhpMailDelivery=Βεβαιωθείτε ότι δεν χρησιμοποιείτε πολύ μεγάλο αριθμό παραληπτών και ότι το περιεχόμενο του email σας δεν μοιάζει με ανεπιθύμητο περιεχόμενο. Ζητήστε επίσης από τον διαχειριστή σας να ελέγξει τα αρχεία καταγραφής τείχους προστασίας και διακομιστή για πληρέστερες πληροφορίες. +ErrorUserNotAssignedToTask=Ο χρήστης πρέπει να ανατεθεί σε εργασία για να μπορεί να εισάγει τον χρόνο που καταναλώθηκε. +ErrorTaskAlreadyAssigned=Η εργασία έχει ήδη ανατεθεί στον χρήστη +ErrorModuleFileSeemsToHaveAWrongFormat=Το πακέτο της ενότητας φαίνεται να έχει λάθος μορφή. +ErrorModuleFileSeemsToHaveAWrongFormat2=Τουλάχιστον ένας υποχρεωτικός κατάλογος πρέπει να υπάρχει στο zip της ενότητας: %s ή %s +ErrorFilenameDosNotMatchDolibarrPackageRules=Το όνομα του πακέτου της ενότητας ( %s ) δεν ταιριάζει με την αναμενόμενη σύνταξη ονόματος: %s +ErrorDuplicateTrigger=Σφάλμα, διπλότυπο όνομα trigger %s. Έχει ήδη φορτωθεί από το %s. +ErrorNoWarehouseDefined=Σφάλμα, δεν έχουν καθοριστεί αποθήκες. +ErrorBadLinkSourceSetButBadValueForRef=Ο σύνδεσμος που χρησιμοποιείτε δεν είναι έγκυρος. Ορίζεται μια «πηγή» για πληρωμή, αλλά η τιμή για την «αναφορά» δεν είναι έγκυρη. +ErrorTooManyErrorsProcessStopped=Πάρα πολλά λάθη. Η διαδικασία διακόπηκε. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Η μαζική επικύρωση δεν είναι δυνατή όταν έχει οριστεί η επιλογή αύξησης/μείωσης του αποθέματος σε αυτήν την ενέργεια (πρέπει να τις επικυρώσετε μία προς μία, ώστε να μπορείτε να ορίσετε την αποθήκη για αύξηση/μείωση) +ErrorObjectMustHaveStatusDraftToBeValidated=Το αντικείμενο %s πρέπει να έχει την κατάσταση «Προσχέδιο» για να επικυρωθεί. +ErrorObjectMustHaveLinesToBeValidated=Το αντικείμενο %s πρέπει να έχει γραμμές για επικύρωση. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Μόνο επικυρωμένα τιμολόγια μπορούν να αποσταλούν χρησιμοποιώντας τη μαζική ενέργεια "Αποστολή μέσω email". +ErrorChooseBetweenFreeEntryOrPredefinedProduct=Πρέπει να επιλέξετε αν είναι ένα προκαθορισμένο προϊόν ή όχι +ErrorDiscountLargerThanRemainToPaySplitItBefore=Η έκπτωση που προσπαθείτε να εφαρμόσετε είναι μεγαλύτερη από από το υπόλοιπο πληρωμής. Διαχωρίστε την έκπτωση σε 2 μικρότερες εκπτώσεις πριν. +ErrorFileNotFoundWithSharedLink=Το αρχείο δεν βρέθηκε. Ίσως το κοινό κλειδί τροποποιήθηκε ή το αρχείο καταργήθηκε πρόσφατα. +ErrorProductBarCodeAlreadyExists=Ο γραμμωτός κώδικας του προϊόντος %s υπάρχει ήδη σε άλλη αναφορά προϊόντος. ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Σημειώστε επίσης ότι η χρήση κιτ για αυτόματη αύξηση/μείωση υποπροϊόντων δεν είναι δυνατή όταν τουλάχιστον ένα υποπροϊόν (ή υποπροϊόν υποπροϊόντων) χρειάζεται αριθμό σειράς/παρτίδας. -ErrorDescRequiredForFreeProductLines=Η περιγραφή είναι υποχρεωτική για γραμμές με δωρεάν προϊόν +ErrorDescRequiredForFreeProductLines=Η περιγραφή είναι υποχρεωτική για γραμμές με ελεύθερο προϊόν ErrorAPageWithThisNameOrAliasAlreadyExists=Η σελίδα / κοντέινερ %s έχει το ίδιο όνομα ή εναλλακτικό ψευδώνυμο με εκείνο που προσπαθείτε να χρησιμοποιήσετε -ErrorDuringChartLoad=Σφάλμα κατά τη φόρτωση του γραφήματος λογαριασμών. Εάν δεν έχουν φορτωθεί μερικοί λογαριασμοί, μπορείτε να τις εισαγάγετε με μη αυτόματο τρόπο. -ErrorBadSyntaxForParamKeyForContent=Κακή σύνταξη για παράμετρο κλειδί για ικανοποίηση. Πρέπει να έχει μια τιμή ξεκινώντας με %s ή %s -ErrorVariableKeyForContentMustBeSet=Σφάλμα, πρέπει να οριστεί η σταθερά με το όνομα %s (με περιεχόμενο κειμένου για εμφάνιση) ή %s (με εξωτερική διεύθυνση URL για εμφάνιση). +ErrorDuringChartLoad=Σφάλμα κατά τη φόρτωση του λογιστικού σχεδίου. Εάν δεν φορτώθηκαν λίγοι λογαριασμοί, μπορείτε να τους εισαγάγετε χειροκίνητα. +ErrorBadSyntaxForParamKeyForContent=Λάθος σύνταξη για την παράμετρο keyforcontent. Πρέπει να έχει μια τιμή ξεκινώντας με %s ή %s +ErrorVariableKeyForContentMustBeSet=Σφάλμα, πρέπει να οριστεί η σταθερά με όνομα %s (με περιεχόμενο κειμένου προς εμφάνιση) ή %s (με εξωτερικό url για εμφάνιση). ErrorURLMustEndWith=Η διεύθυνση URL %s πρέπει να καταλήγει σε %s ErrorURLMustStartWithHttp=Η διεύθυνση URL %s πρέπει να ξεκινά με http: // ή https: // ErrorHostMustNotStartWithHttp=Το host name %s ΔΕΝ πρέπει να ξεκινά με http:// ή https:// ErrorNewRefIsAlreadyUsed=Σφάλμα, η νέα αναφορά χρησιμοποιείται ήδη ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Σφάλμα, διαγραφή πληρωμής που συνδέεται με κλειστό τιμολόγιο δεν είναι δυνατή. ErrorSearchCriteriaTooSmall=Τα κριτήρια αναζήτησης δεν είναι αρκετά. -ErrorObjectMustHaveStatusActiveToBeDisabled=Τα αντικείμενα πρέπει να έχουν την κατάσταση 'Ενεργή' για απενεργοποίηση -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Τα αντικείμενα πρέπει να έχουν την κατάσταση 'Προετοιμασία' ή 'Απενεργοποίηση' για ενεργοποίηση -ErrorNoFieldWithAttributeShowoncombobox=Κανένα πεδίο δεν έχει την ιδιότητα 'showoncombobox' στον ορισμό του αντικειμένου '%s'. Κανένας τρόπος να δείξουμε τον συνθέτη. +ErrorObjectMustHaveStatusActiveToBeDisabled=Τα αντικείμενα πρέπει να έχουν την κατάσταση «Ενεργά» για να απενεργοποιηθούν +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Τα αντικείμενα πρέπει να έχουν την κατάσταση «Προσχέδιο» ή «Απενεργοποιημένο» για να ενεργοποιηθούν +ErrorNoFieldWithAttributeShowoncombobox=Κανένα πεδίο δεν έχει την ιδιότητα "showoncombobox" στον ορισμό του αντικειμένου "%s". Δεν υπάρχει τρόπος να εμφανίσουμε τη λίστα σύνθετου πλαισίου. ErrorFieldRequiredForProduct=Το πεδίο '%s' απαιτείται για το προϊόν %s -ProblemIsInSetupOfTerminal=Πρόβλημα στη ρύθμιση του τερματικού %s. -ErrorAddAtLeastOneLineFirst=Προσθέστε πρώτα τουλάχιστον μια γραμμή +AlreadyTooMuchPostOnThisIPAdress=Έχετε ήδη δημοσιεύσει πάρα πολλά σε αυτήν τη διεύθυνση IP. +ProblemIsInSetupOfTerminal=Το πρόβλημα είναι στη ρύθμιση του τερματικού %s. +ErrorAddAtLeastOneLineFirst=Προσθέστε τουλάχιστον μία γραμμή πρώτα ErrorRecordAlreadyInAccountingDeletionNotPossible=Σφάλμα, η εγγραφή έχει ήδη μεταφερθεί στη λογιστική, η διαγραφή δεν είναι δυνατή. ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Σφάλμα, η γλώσσα είναι υποχρεωτική εάν ορίσετε τη σελίδα ως μετάφραση άλλης. -ErrorLanguageOfTranslatedPageIsSameThanThisPage=Σφάλμα, η γλώσσα της μεταφρασμένης σελίδας είναι ίδια από αυτήν. -ErrorBatchNoFoundForProductInWarehouse=Δεν βρέθηκε παρτίδα / σειριακή για το προϊόν "%s" στην αποθήκη "%s". -ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Δεν υπάρχει αρκετή ποσότητα για αυτήν την παρτίδα / σειριακό για το προϊόν "%s" στην αποθήκη "%s". -ErrorOnlyOneFieldForGroupByIsPossible=Είναι δυνατό μόνο 1 πεδίο για την «Ομάδα κατά» (άλλα απορρίπτονται) -ErrorTooManyDifferentValueForSelectedGroupBy=Βρέθηκαν πάρα πολλές διαφορετικές τιμές (περισσότερες από %s ) για το πεδίο " %s ", οπότε δεν μπορούμε να το χρησιμοποιήσουμε ως γραφικά " Το πεδίο "Group By" έχει αφαιρεθεί. Μπορεί να θέλετε να το χρησιμοποιήσετε ως άξονα X; -ErrorReplaceStringEmpty=Σφάλμα, η συμβολοσειρά για αντικατάσταση είναι κενή +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Σφάλμα, η γλώσσα της μεταφρασμένης σελίδας είναι ίδια με αυτήν. +ErrorBatchNoFoundForProductInWarehouse=Δεν βρέθηκε παρτίδα / σειριακός αριθμός για το προϊόν "%s" στην αποθήκη "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Δεν υπάρχει αρκετή ποσότητα για αυτήν την παρτίδα / σειριακό αριθμό για το προϊόν "%s" στην αποθήκη "%s". +ErrorOnlyOneFieldForGroupByIsPossible=Μόνο 1 πεδίο για την «Ομαδοποίηση κατά» είναι δυνατό (τα άλλα απορρίπτονται) +ErrorTooManyDifferentValueForSelectedGroupBy=Βρέθηκαν πάρα πολλές διαφορετικές τιμές (περισσότερες από %s ) για το πεδίο " %s ", οπότε δεν μπορούμε να το χρησιμοποιήσουμε ως «Ομαδοποίηση κατά» για γραφικά " Το πεδίο «Ομαδοποίηση κατά» έχει αφαιρεθεί. Μπορεί να θέλατε να το χρησιμοποιήσετε ως άξονα X; +ErrorReplaceStringEmpty=Σφάλμα, η συμβολοσειρά(string) για αντικατάσταση είναι κενή ErrorProductNeedBatchNumber=Σφάλμα, το προϊόν " %s " χρειάζεται παρτίδα/σειριακό αριθμό ErrorProductDoesNotNeedBatchNumber=Σφάλμα, το προϊόν " %s " δεν δέχεται αριθμό παρτίδας/σειριακού αριθμού ErrorFailedToReadObject=Σφάλμα, αποτυχία ανάγνωσης αντικειμένου τύπου %s @@ -270,63 +274,73 @@ ErrorYouMustFirstSetupYourChartOfAccount=Πρέπει πρώτα να ρυθμί ErrorFailedToFindEmailTemplate=Αδυναμία εύρεσης προτύπου με κωδικό όνομα %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Η διάρκεια δεν έχει οριστεί στην υπηρεσία. Δεν υπάρχει τρόπος υπολογισμού της ωριαίας τιμής. ErrorActionCommPropertyUserowneridNotDefined=Απαιτείται το owner id του χρήστη -ErrorActionCommBadType=Ο επιλεγμένος τύπος συμβάντος (αναγνωριστικό: %n, κωδικός: %s) δεν υπάρχει στο λεξικό Τύπου συμβάντος +ErrorActionCommBadType=Ο επιλεγμένος τύπος συμβάντος (αναγνωριστικό: %s, κωδικός: %s) δεν υπάρχει στο λεξικό Τύπου συμβάντος CheckVersionFail=Αποτυχία ελέγχου έκδοσης ErrorWrongFileName=Το όνομα του αρχείου δεν μπορεί να έχει __ΚΑΤΙ__ σε αυτό ErrorNotInDictionaryPaymentConditions=Δεν υπάρχει στο Λεξικό Όρων Πληρωμής, παρακαλώ τροποποιήστε. ErrorIsNotADraft=Το %s δεν είναι πρόχειρο ErrorExecIdFailed=Δεν είναι δυνατή η εκτέλεση της εντολής "id" -ErrorBadCharIntoLoginName=Μη εξουσιοδοτημένος χαρακτήρας στο όνομα σύνδεσης -ErrorRequestTooLarge=Σφάλμα, το αίτημα είναι πολύ μεγάλο +ErrorBadCharIntoLoginName=Μη έγκυρος χαρακτήρας στο πεδίο %s +ErrorRequestTooLarge=Σφάλμα, το αίτημα είναι πολύ μεγάλο ή η περίοδος λειτουργίας έληξε ErrorNotApproverForHoliday=Δεν είστε ο υπεύθυνος έγκρισης για την άδεια %s ErrorAttributeIsUsedIntoProduct=Αυτό το χαρακτηριστικό χρησιμοποιείται σε μία ή περισσότερες παραλλαγές προϊόντων ErrorAttributeValueIsUsedIntoProduct=Αυτή η τιμή χαρακτηριστικού χρησιμοποιείται σε μία ή περισσότερες παραλλαγές προϊόντος ErrorPaymentInBothCurrency=Σφάλμα, όλα τα ποσά πρέπει να εισαχθούν στην ίδια στήλη ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Προσπαθείτε να πληρώσετε τιμολόγια στο νόμισμα %s από έναν λογαριασμό με το νόμισμα %s ErrorInvoiceLoadThirdParty=Δεν είναι δυνατή η φόρτωση αντικειμένου τρίτου μέρους για το τιμολόγιο "%s" -ErrorInvoiceLoadThirdPartyKey=Το κλειδί τρίτου μέρους "%s" δεν έχει οριστεί για τιμολόγιο "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Η διαγραφή γραμμής δεν επιτρέπεται από την πραγματική κατάσταση του αντικειμένου +ErrorInvoiceLoadThirdPartyKey=Το κλειδί τρίτου μέρους "%s" δεν έχει οριστεί για το τιμολόγιο "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Η διαγραφή γραμμής δεν επιτρέπεται από την τωρινή κατάσταση του αντικειμένου ErrorAjaxRequestFailed=To αίτημα AJAX απέτυχε +ErrorThirpdartyOrMemberidIsMandatory=Τρίτο μέρος ή Μέλος της εταιρικής σχέσης είναι υποχρεωτικό +ErrorFailedToWriteInTempDirectory=Αποτυχία εγγραφής στον κατάλογο temp +ErrorQuantityIsLimitedTo=Η ποσότητα περιορίζεται σε %s +ErrorFailedToLoadThirdParty=Αποτυχία εύρεσης/φόρτωσης τρίτου μέρους από id=%s, email=%s, όνομα=%s +ErrorThisPaymentModeIsNotSepa=Αυτός ο τρόπος πληρωμής δεν είναι τύπου SEPA +ErrorStripeCustomerNotFoundCreateFirst=Αυτό το τρίτο μέρος δεν έχει οριστεί ως πελάτης Stripe (ή έχει οριστεί σε τιμή που έχει διαγραφεί από το Stripe). Πρώτα δημιουργήστε το (ή επισυνάψτε το ξανά). +ErrorCharPlusNotSupportedByImapForSearch=Η αναζήτηση IMAP δεν μπορεί να πραγματοποιηθεί σε αποστολέα ή παραλήπτη για μια συμβολοσειρά που περιέχει τον χαρακτήρα + +ErrorTableNotFound=Ο πίνακας %s δεν βρέθηκε +ErrorValueForTooLow=Η τιμή για %s είναι πολύ χαμηλή +ErrorValueCantBeNull=Η τιμή για %s δεν μπορεί να είναι μηδενική +ErrorDateOfMovementLowerThanDateOfFileTransmission=Η ημερομηνία της τραπεζικής συναλλαγής δεν μπορεί να είναι παλαιότερη από την ημερομηνία αποστολής του αρχείου +ErrorTooMuchFileInForm=Πάρα πολλά αρχεία στην φόρμα, ο μέγιστος αριθμός είναι %s αρχεία # Warnings -WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Η παράμετρος PHP upload_max_filesize (%s) είναι υψηλότερη από την παράμετρο PHP post_max_size (%s). Αυτό δεν είναι μια σταθερή ρύθμιση. -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=Κάντε κλικ εδώ για να ορίσετε υποχρεωτικές παραμέτρους +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Η παράμετρος PHP upload_max_filesize (%s) είναι υψηλότερη από την παράμετρο PHP post_max_size (%s). Αυτή δεν είναι μια συνεπής ρύθμιση. +WarningPasswordSetWithNoAccount=Ορίστηκε κωδικός πρόσβασης για αυτό το μέλος. Ωστόσο, δεν δημιουργήθηκε λογαριασμός χρήστη. Επομένως, αυτός ο κωδικός πρόσβασης είναι αποθηκευμένος, αλλά δεν μπορεί να χρησιμοποιηθεί για τη σύνδεση στο Dolibarr. Μπορεί να χρησιμοποιηθεί από μια εξωτερική ενότητα/διεπαφή, αλλά αν δεν χρειάζεται να ορίσετε κανένα στοιχείο σύνδεσης ή κωδικό πρόσβασης για ένα μέλος, μπορείτε να απενεργοποιήσετε την επιλογή "Διαχείριση σύνδεσης για κάθε μέλος" από τη ρύθμιση της ενότητας μέλους. Εάν θέλετε να διαχειριστείτε μια σύνδεση, αλλά δεν χρειάζεστε κωδικό πρόσβασης, μπορείτε να διατηρήσετε αυτό το πεδίο κενό για να αποφύγετε αυτήν την προειδοποίηση. Σημείωση: Το email μπορεί επίσης να χρησιμοποιηθεί ως σύνδεση εάν το μέλος είναι συνδεδεμένο με έναν χρήστη. +WarningMandatorySetupNotComplete=Κάντε κλικ εδώ για να ρυθμίσετε τις κύριες παραμέτρους WarningEnableYourModulesApplications=Κάντε κλικ εδώ για να ενεργοποιήσετε τις ενότητες και τις εφαρμογές σας -WarningSafeModeOnCheckExecDir=Προειδοποίηση, PHP safe_mode επιλογή είναι τόσο εντολή αυτή πρέπει να αποθηκεύονται σε ένα κατάλογο που δηλώνονται από safe_mode_exec_dir παράμετρο php. +WarningSafeModeOnCheckExecDir=Προειδοποίηση, η επιλογή PHP safe_mode είναι ενεργοποιημένη, επομένως η εντολή πρέπει να αποθηκευτεί σε έναν κατάλογο που δηλώνεται από την παράμετρο php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Ένας σελιδοδείκτης με αυτόν τον τίτλο ή το στόχο αυτό (URL) υπάρχει ήδη. -WarningPassIsEmpty=Προειδοποίηση, password της βάσης δεδομένων είναι άδειο. Αυτή είναι μια τρύπα ασφαλείας. Θα πρέπει να προσθέσετε έναν κωδικό πρόσβασης στη βάση δεδομένων σας και να αλλάξετε conf.php αρχείο σας για να εκφραστεί αυτό. -WarningConfFileMustBeReadOnly=Προειδοποίηση, config αρχείο σας (htdocs / conf / conf.php) μπορούν να αντικατασταθούν από τον web server. Αυτό είναι ένα σοβαρό κενό ασφαλείας. Τροποποιήστε τα δικαιώματα στο αρχείο για να είναι σε λειτουργία μόνο για ανάγνωση για τη λειτουργία των χρηστών του συστήματος που χρησιμοποιείται από τον διακομιστή Web. Εάν χρησιμοποιείτε Windows και μορφή FAT για το δίσκο σας, πρέπει να ξέρετε ότι αυτό το σύστημα αρχείων δεν επιτρέπει να προσθέσετε δικαιώματα στο αρχείο, οπότε δεν μπορεί να είναι απολύτως ασφαλής. -WarningsOnXLines=Προειδοποιήσεις στα %s γραμμές κώδικα -WarningNoDocumentModelActivated=Δεν έχει ενεργοποιηθεί κανένα μοντέλο για την παραγωγή εγγράφων. Ένα πρότυπο θα επιλεγεί από προεπιλογή μέχρι να ελέγξετε τη ρύθμιση της μονάδας σας. -WarningLockFileDoesNotExists=Προειδοποίηση, αφού ολοκληρωθεί η εγκατάσταση, πρέπει να απενεργοποιήσετε τα εργαλεία εγκατάστασης / μετάβασης προσθέτοντας ένα αρχείο install.lock στον κατάλογο %s . Η παράλειψη της δημιουργίας αυτού του αρχείου αποτελεί σοβαρό κίνδυνο για την ασφάλεια. -WarningUntilDirRemoved=Όλες οι προειδοποιήσεις ασφαλείας (ορατές μόνο από τους χρήστες διαχειριστή) θα παραμείνουν ενεργοποιημένες όσο υπάρχει ευπάθεια (ή ότι η σταθερή MAIN_REMOVE_INSTALL_WARNING προστίθεται στο Setup -> Other). -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. -WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). +WarningPassIsEmpty=Προειδοποίηση, ο κωδικός πρόσβασης της βάσης δεδομένων είναι κενός. Αυτό είναι ένα κενό ασφαλείας. Θα πρέπει να προσθέσετε έναν κωδικό πρόσβασης στη βάση δεδομένων σας και να αλλάξετε το αρχείο conf.php ώστε να χρησιμοποιείται αυτό. +WarningConfFileMustBeReadOnly=Προειδοποίηση, το αρχείο ρυθμίσεων ( htdocs/conf/conf.php ) μπορεί να αντικατασταθεί από τον διακομιστή web. Αυτό είναι ένα σοβαρό κενό ασφαλείας. Τροποποιήστε τα δικαιώματα στο αρχείο ώστε να είναι σε λειτουργία μόνο για ανάγνωση για χρήστη του λειτουργικού συστήματος που χρησιμοποιείται από τον διακομιστή Ιστού. Εάν χρησιμοποιείτε μορφή Windows και FAT για τον δίσκο σας, πρέπει να γνωρίζετε ότι αυτό το σύστημα αρχείων δεν επιτρέπει την προσθήκη δικαιωμάτων σε αρχείο, επομένως δεν μπορεί να είναι απολύτως ασφαλές. +WarningsOnXLines=Προειδοποιήσεις στις %s εγγραφές κώδικα +WarningNoDocumentModelActivated=Δεν έχει ενεργοποιηθεί κανένα μοντέλο για την παραγωγή εγγράφων. Ένα πρότυπο θα επιλεγεί από προεπιλογή μέχρι να ελέγξετε τη ρύθμιση της ενότητας σας. +WarningLockFileDoesNotExists=Προειδοποίηση, αφού ολοκληρωθεί η εγκατάσταση, πρέπει να απενεργοποιήσετε τα εργαλεία εγκατάστασης / μετεγκατάστασης προσθέτοντας ένα αρχείο install.lock στον κατάλογο %s . Η παράλειψη της δημιουργίας αυτού του αρχείου αποτελεί σοβαρό κίνδυνο για την ασφάλεια. +WarningUntilDirRemoved=Αυτή η προειδοποίηση ασφαλείας θα παραμείνει ενεργή όσο υπάρχει η ευπάθεια. +WarningCloseAlways=Προειδοποίηση, το κλείσιμο πραγματοποιείται ακόμη και αν το ποσό διαφέρει μεταξύ των στοιχείων πηγής και προορισμού. Ενεργοποιήστε αυτήν τη δυνατότητα με προσοχή. +WarningUsingThisBoxSlowDown=Προειδοποίηση, χρησιμοποιώντας αυτό το πλαίσιο επιβραδύνετε σοβαρά όλες τις σελίδες που εμφανίζουν το πλαίσιο. +WarningClickToDialUserSetupNotComplete=Η ρύθμιση των πληροφοριών ClickToDial για τον χρήστη σας δεν έχει ολοκληρωθεί (δείτε την καρτέλα ClickToDial στην κάρτα χρήστη σας). WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Απενεργοποιημένη λειτουργία όταν οι ρυθμίσεις της οθόνης έχουν προσαρμοστεί για χρήση από άτομα με προβλήματα όρασης ή φυλλομετρητές κειμένου. WarningPaymentDateLowerThanInvoiceDate=Η ημερομηνία πληρωμής (%s) είναι νωρίτερα από την ημερομηνία του τιμολογίου (%s) για το τιμολόγιο %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. -WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. -WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language -WarningNumberOfRecipientIsRestrictedInMassAction=Προειδοποίηση, ο αριθμός διαφορετικών παραληπτών περιορίζεται στο %s όταν χρησιμοποιείτε τις μαζικές ενέργειες σε λίστες -WarningDateOfLineMustBeInExpenseReportRange=Προειδοποίηση, η ημερομηνία της γραμμής δεν βρίσκεται στο εύρος της έκθεσης δαπανών +WarningTooManyDataPleaseUseMoreFilters=Πάρα πολλά δεδομένα (περισσότερες από %sγραμμές). Χρησιμοποιήστε περισσότερα φίλτρα ή ορίστε τη σταθερά %s σε υψηλότερο όριο. +WarningSomeLinesWithNullHourlyRate=Κάποιοι χρόνοι καταγράφηκαν από ορισμένους χρήστες ενώ η ωριαία τιμή τους δεν είχε καθοριστεί. Χρησιμοποιήθηκε μια τιμή 0 %s ανά ώρα, αλλά αυτό μπορεί να οδηγήσει σε λανθασμένη εκτίμηση του χρόνου που δαπανήθηκε. +WarningYourLoginWasModifiedPleaseLogin=Η σύνδεσή σας τροποποιήθηκε. Για λόγους ασφαλείας θα πρέπει να συνδεθείτε με τη νέα σας σύνδεση πριν από την επόμενη ενέργεια. +WarningAnEntryAlreadyExistForTransKey=Υπάρχει ήδη μια καταχώριση για το κλειδί μετάφρασης για αυτήν τη γλώσσα +WarningNumberOfRecipientIsRestrictedInMassAction=Προειδοποίηση, ο αριθμός διαφορετικών παραληπτών περιορίζεται σε %s όταν χρησιμοποιείτε τις μαζικές ενέργειες σε λίστες +WarningDateOfLineMustBeInExpenseReportRange=Προειδοποίηση, η ημερομηνία γραμμής δεν είναι στο εύρος της αναφοράς εξόδων WarningProjectDraft=Το έργο είναι ακόμα σε κατάσταση προχείρου. Μην ξεχάσετε να το επικυρώσετε εάν σκοπεύετε να χρησιμοποιήσετε εργασίες. WarningProjectClosed=Το έργο είναι κλειστό. Πρέπει πρώτα να το ανοίξετε ξανά. -WarningSomeBankTransactionByChequeWereRemovedAfter=Ορισμένες τραπεζικές συναλλαγές καταργήθηκαν μετά την ενσωμάτωσής τους εκεί οπου δημιουργήθηκαν. Επομένως, οι έλεγχοι και το σύνολο της απόδειξης μπορεί να διαφέρουν από τον αριθμό και το σύνολο της λίστας. +WarningSomeBankTransactionByChequeWereRemovedAfter=Ορισμένες τραπεζικές συναλλαγές αφαιρέθηκαν μετά τη δημιουργία της απόδειξης. Επομένως, ο αριθμός των επιταγών και το σύνολο των αποδείξεων ενδέχεται να διαφέρουν από τον αριθμό και το σύνολο στη λίστα. WarningFailedToAddFileIntoDatabaseIndex=Προειδοποίηση, απέτυχε η προσθήκη καταχώρισης αρχείου στον πίνακα ευρετηρίου βάσης δεδομένων ECM WarningTheHiddenOptionIsOn=Προειδοποίηση, η κρυφή επιλογή %s είναι ενεργοποιημένη. WarningCreateSubAccounts=Προειδοποίηση, δεν μπορείτε να δημιουργήσετε απευθείας έναν δευτερεύοντα λογαριασμό, πρέπει να δημιουργήσετε ένα τρίτο μέρος ή έναν χρήστη και να του εκχωρήσετε έναν λογιστικό κωδικό για να τους βρείτε σε αυτήν τη λίστα WarningAvailableOnlyForHTTPSServers=Διατίθεται μόνο εάν χρησιμοποιείτε ασφαλή σύνδεση HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Η ενότητα %s δεν έχει ενεργοποιηθεί. Έτσι, μπορεί να χάσετε πολλές λειτουργίες. -WarningPaypalPaymentNotCompatibleWithStrict=Η τιμή "Αυστηρή" κάνει τις λειτουργίες ηλεκτρονικής πληρωμής να μην λειτουργούν σωστά. Χρησιμοποιήστε την τιμη 'Lax' . +WarningPaypalPaymentNotCompatibleWithStrict=Η τιμή "Αυστηρή" κάνει τις λειτουργίες ηλεκτρονικής πληρωμής να μην λειτουργούν σωστά. Χρησιμοποιήστε την τιμή 'Χαλαρή' . +WarningThemeForcedTo=Προειδοποίηση, έχει γίνει επιβολή του θέματος %s από την κρυφή σταθερά MAIN_FORCETEME +WarningPagesWillBeDeleted=Προειδοποίηση, αυτό θα διαγράψει επίσης όλες τις υπάρχουσες σελίδες/container του ιστότοπου. Θα πρέπει να εξάγετε τον ιστότοπό σας νωρίτερα, ώστε να έχετε ένα αντίγραφο ασφαλείας για να μπορείτε να τον εισάγετε ξανά αργότερα αν χρειαστει. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Η αυτόματη επικύρωση είναι απενεργοποιημένη όταν η επιλογή μείωσης του αποθέματος έχει οριστεί στην "Επικύρωση τιμολογίου". -<<<<<<< ΚΕΦΑΛΙΔΑ -======= -<<<<<<< ΚΕΦΑΛΙΔΑ -<<<<<<< ΚΕΦΑΛΙΔΑ ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Η τιμή δεν είναι έγκυρη RequireAtLeastXString = Απαιτεί τουλάχιστον %s χαρακτήρα(ες) @@ -344,15 +358,6 @@ RequireValidDuration = Απαιτείται έγκυρη διάρκεια RequireValidExistingElement = Απαιτείται μια υπάρχουσα τιμή RequireValidBool = Απαιτείται έγκυρο boolean BadSetupOfField = Σφάλμα κακή ρύθμιση του πεδίου -BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation -BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion -BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class -<<<<<<< ΚΕΦΑΛΙΔΑ -======= -======= -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git +BadSetupOfFieldClassNotFoundForValidation = Σφάλμα κακής ρύθμισης πεδίου: Η κλάση δεν βρέθηκε για επικύρωση +BadSetupOfFieldFileNotFound = Σφάλμα κακής ρύθμισης πεδίου : Το αρχείο δεν βρέθηκε για συμπερίληψη +BadSetupOfFieldFetchNotCallable = Σφάλμα κακής ρύθμισης του πεδίου : Fetch not callable on class diff --git a/htdocs/langs/el_GR/eventorganization.lang b/htdocs/langs/el_GR/eventorganization.lang index 96ddde17344..323f4f14049 100644 --- a/htdocs/langs/el_GR/eventorganization.lang +++ b/htdocs/langs/el_GR/eventorganization.lang @@ -18,7 +18,7 @@ # Generic # ModuleEventOrganizationName = Οργάνωση Εκδηλώσεων -EventOrganizationDescription = Οργάνωση εκδήλωσης μέσω Ενότητας Έργου +EventOrganizationDescription = Οργάνωση εκδήλωσης μέσω της Ενότητας Έργου EventOrganizationDescriptionLong= Διαχειριστείτε τη διοργάνωση μιας εκδήλωσης (παράσταση, συνέδρια, συμμετέχοντες ή ομιλητές, με δημόσιες σελίδες για πρόταση, ψηφοφορία ή εγγραφή) # # Menu @@ -48,23 +48,26 @@ EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Πρότυπο email για α EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Πρότυπο email για χρήση κατά την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από τη μαζική αποστολή "Αποστολή email" σε ομιλητές EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Πρότυπο email για χρήση κατά την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από τη μαζική αποστολή "Αποστολή email" στη λίστα συμμετεχόντων EVENTORGANIZATION_FILTERATTENDEES_CAT = Στη φόρμα δημιουργίας/προσθήκης συμμετέχοντα, περιορίζει τη λίστα τρίτων μόνο σε τρίτα μέρη της κατηγορίας -EVENTORGANIZATION_FILTERATTENDEES_TYPE = Στη φόρμα δημιουργίας/προσθήκης συμμετέχοντα, τη λίστα τρίτων μερών περιορίζεται σε τρίτα μέρη με τη φύση +EVENTORGANIZATION_FILTERATTENDEES_TYPE = Στη φόρμα για τη δημιουργία/προσθήκης ενός συμμετέχοντα, περιορίζει τη λίστα τρίτων σε τρίτα μέρη με τη φύση # # Object # EventOrganizationConfOrBooth= Συνέδριο ή Περίπτερο +EventOrganizationConfOrBoothes=Συνέδρια ή Περίπτερα ManageOrganizeEvent = Διαχειριστείτε την οργάνωση μιας εκδήλωσης ConferenceOrBooth = Συνέδριο ή Περίπτερο ConferenceOrBoothTab = Συνέδριο ή Περίπτερο AmountPaid = Ποσό που καταβλήθηκε DateOfRegistration = Ημερομηνία εγγραφής ConferenceOrBoothAttendee = Συμμετέχων σε συνέδριο ή περίπτερο +ApplicantOrVisitor=Αιτών ή επισκέπτης +Speaker=Ομιλητής # # Template Mail # -YourOrganizationEventConfRequestWasReceived = Το αίτημά σας για συνδιάσκεψη ελήφθη +YourOrganizationEventConfRequestWasReceived = Το αίτημά σας για συνέδριο ελήφθη YourOrganizationEventBoothRequestWasReceived = Το αίτημά σας για περίπτερο ελήφθη EventOrganizationEmailAskConf = Αίτημα για συνέδριο EventOrganizationEmailAskBooth = Αίτημα για περίπτερο @@ -78,7 +81,7 @@ ToSpeakers=Σε ομιλητές # Event # AllowUnknownPeopleSuggestConf=Επιτρέψτε σε όλους να προτείνουν συνέδρια -AllowUnknownPeopleSuggestConfHelp=Επιτρέψτε σε άγνωστα άτομα να προτείνουν μια διάσκεψη που θέλουν να κάνουν +AllowUnknownPeopleSuggestConfHelp=Επιτρέψτε σε άγνωστα άτομα να προτείνουν ένα συνέδριο που θέλουν να διοργανώσουν AllowUnknownPeopleSuggestBooth=Επιτρέψτε σε όλους να κάνουν αίτηση για περίπτερο AllowUnknownPeopleSuggestBoothHelp=Επιτρέψτε σε άγνωστα άτομα να κάνουν αίτηση για περίπτερο PriceOfRegistration=Τιμή εγγραφής @@ -90,19 +93,19 @@ ConferenceOrBoothInformation=Πληροφορίες για το συνέδριο Attendees=Συμμετέχοντες ListOfAttendeesOfEvent=Λίστα συμμετεχόντων της εκδήλωσης DownloadICSLink = Λήψη συνδέσμου ICS -EVENTORGANIZATION_SECUREKEY = Seed για να εξασφαλίσετε το κλειδί για τη δημόσια σελίδα εγγραφής για να προτείνετε μια διάσκεψη +EVENTORGANIZATION_SECUREKEY = Seed για να εξασφαλίσετε το κλειδί για τη δημόσια σελίδα εγγραφής για την πρόταση συνεδρίου SERVICE_BOOTH_LOCATION = Υπηρεσία που χρησιμοποιείται για τη γραμμή τιμολογίου σχετικά με τη θέση του περιπτέρου SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Υπηρεσία που χρησιμοποιείται για τη γραμμή τιμολογίου σχετικά με τη συνδρομή ενός συμμετέχοντος σε μια εκδήλωση NbVotes=Αριθμός ψήφων # # Status # -EvntOrgDraft = Πρόχειρο +EvntOrgDraft = Προσχέδιο EvntOrgSuggested = Προτεινόμενα EvntOrgConfirmed = Επιβεβαιωμένο EvntOrgNotQualified = Μη επιλεγμένο EvntOrgDone = Ολοκληρωμένες -EvntOrgCancelled = Ακυρώθηκε +EvntOrgCancelled = Ακυρωμένες # # Public page # @@ -112,33 +115,34 @@ EvntOrgRegistrationHelpMessage = Εδώ, μπορείτε να ψηφίσετε EvntOrgRegistrationConfHelpMessage = Εδώ, μπορείτε να προτείνετε ένα νέο συνέδριο για προώθηση κατά τη διάρκεια της εκδήλωσης. EvntOrgRegistrationBoothHelpMessage = Εδώ, μπορείτε να κάνετε αίτηση για να έχετε ένα περίπτερο κατά τη διάρκεια της εκδήλωσης. ListOfSuggestedConferences = Λίστα προτεινόμενων συνεδρίων -ListOfSuggestedBooths = Λίστα προτεινόμενων περιπτέρων -ListOfConferencesOrBooths=Κατάλογος συνεδρίων ή περιπτέρων του έργου εκδήλωσης +ListOfSuggestedBooths=Προτεινόμενα περίπτερα +ListOfConferencesOrBooths=Συνέδρια ή περίπτερα του έργου εκδήλωσης SuggestConference = Προτείνετε ένα νέο συνέδριο SuggestBooth = Προτείνετε ένα περίπτερο ViewAndVote = Δείτε και ψηφίστε για προτεινόμενες εκδηλώσεις PublicAttendeeSubscriptionGlobalPage = Δημόσιος σύνδεσμος για εγγραφή στην εκδήλωση PublicAttendeeSubscriptionPage = Δημόσιος σύνδεσμος για εγγραφή σε αυτήν την εκδήλωση μόνο  MissingOrBadSecureKey = Το κλειδί ασφαλείας δεν είναι έγκυρο ή λείπει -EvntOrgWelcomeMessage = Αυτή η φόρμα σάς επιτρέπει να εγγραφείτε ως νέος συμμετέχων στην εκδήλωση: %s -EvntOrgDuration = Αυτή η διάσκεψη ξεκινά στις %s και τελειώνει στις %s. -ConferenceAttendeeFee = Χρέωση συμμετεχόντων στο συνέδριο για την εκδήλωση : «%s» που διεξάγεται από %s έως %s. +EvntOrgWelcomeMessage = Αυτή η φόρμα σάς επιτρέπει να εγγραφείτε ως νέος συμμετέχων στην εκδήλωση +EvntOrgDuration = Αυτό το συνέδριο ξεκινά στις %s και τελειώνει στις %s. +ConferenceAttendeeFee = Χρέωση συμμετεχόντων στο συνέδριο για την εκδήλωση : "%s" που διεξάγεται από %s έως %s. BoothLocationFee = Θέση περιπτέρου για την εκδήλωση : "%s" που διεξάγεται από %s έως %s -EventType = Τύπος συμβάντος -LabelOfBooth=Ετικέτα περιπτέρου -LabelOfconference=Ετικέτα συνεδρίου +EventType = Τύπος εκδήλωσης +LabelOfBooth=Ταμπέλα περιπτέρου +LabelOfconference=Ταμπέλα συνεδρίου ConferenceIsNotConfirmed=Η εγγραφή δεν είναι διαθέσιμη, το συνέδριο δεν έχει επιβεβαιωθεί ακόμα DateMustBeBeforeThan=Το %s πρέπει να είναι πριν από το %s DateMustBeAfterThan=Το %s πρέπει να είναι μετά το %s - +MaxNbOfAttendeesReached=Ο μέγιστος αριθμός συμμετεχόντων έχει συμπληρωθεί NewSubscription=Εγγραφή OrganizationEventConfRequestWasReceived=Η πρότασή σας για μια διάσκεψη έχει ληφθεί OrganizationEventBoothRequestWasReceived=Το αίτημά σας για ένα περίπτερο έχει ληφθεί OrganizationEventPaymentOfBoothWasReceived=Η πληρωμή για το περίπτερό σας έχει καταγραφεί OrganizationEventPaymentOfRegistrationWasReceived=Η πληρωμή σας για την εγγραφή της εκδήλωσής έχει καταγραφεί -OrganizationEventBulkMailToAttendees=Αυτή είναι μια υπενθύμιση για τη συμμετοχή σας στην εκδήλωση ως συμμετέχων +OrganizationEventBulkMailToAttendees=Αυτή είναι μια υπενθύμιση για τη συμμετοχή σας στην εκδήλωση OrganizationEventBulkMailToSpeakers=Αυτή είναι μια υπενθύμιση για τη συμμετοχή σας στην εκδήλωση ως ομιλητής OrganizationEventLinkToThirdParty=Σύνδεσμος με τρίτο μέρος (πελάτη, προμηθευτή ή συνεργάτη) +OrganizationEvenLabelName=Δημόσια ονομασία του συνεδρίου ή του περιπτέρου NewSuggestionOfBooth=Αίτηση για περίπτερο NewSuggestionOfConference=Αίτηση για συνέδριο @@ -154,7 +158,7 @@ VoteOk = Η ψήφος σας έγινε αποδεκτή. AlreadyVoted = Έχετε ήδη ψηφίσει για αυτήν την εκδήλωση. VoteError = Παρουσιάστηκε σφάλμα κατά την ψηφοφορία, παρακαλώ δοκιμάστε ξανά. -SubscriptionOk = Η εγγραφή σας έχει επικυρωθεί +SubscriptionOk=Η εγγραφή σας έχει καταγραφεί ConfAttendeeSubscriptionConfirmation = Επιβεβαίωση της συνδρομής σας σε μια εκδήλωση Attendee = Συμμετέχων PaymentConferenceAttendee = Πληρωμή συμμετεχόντων στο συνέδριο @@ -162,6 +166,7 @@ PaymentBoothLocation = Πληρωμή θέσης περιπτέρου DeleteConferenceOrBoothAttendee=Κατάργηση συμμετέχοντος RegistrationAndPaymentWereAlreadyRecorder=Μια εγγραφή και μια πληρωμή έχουν ήδη καταγραφεί για το email %s EmailAttendee=Email του συμμετέχοντα +EmailCompany=Εταιρικό email EmailCompanyForInvoice=Διεύθυνση ηλεκτρονικού ταχυδρομείου εταιρείας (για τιμολόγιο, εάν διαφέρει από το email του συμμετέχοντα) ErrorSeveralCompaniesWithEmailContactUs=Έχουν βρεθεί πολλές εταιρείες με αυτό το email, επομένως δεν μπορούμε να επικυρώσουμε αυτόματα την εγγραφή σας. Παρακαλώ επικοινωνήστε μαζί μας στο %s ErrorSeveralCompaniesWithNameContactUs=Έχουν βρεθεί πολλές εταιρείες με αυτό το όνομα, επομένως δεν μπορούμε να επικυρώσουμε αυτόματα την εγγραφή σας. Παρακαλώ επικοινωνήστε μαζί μας στο %s diff --git a/htdocs/langs/el_GR/exports.lang b/htdocs/langs/el_GR/exports.lang index 25cf82bad9c..0a1e9ef0cad 100644 --- a/htdocs/langs/el_GR/exports.lang +++ b/htdocs/langs/el_GR/exports.lang @@ -3,138 +3,143 @@ ExportsArea=Εξαγωγές ImportArea=Εισαγωγή NewExport=Νέα εξαγωγή NewImport=Νέα εισαγωγή -ExportableDatas=Exportable dataset -ImportableDatas=Importable dataset -SelectExportDataSet=Choose dataset you want to export... -SelectImportDataSet=Choose dataset you want to import... +ExportableDatas=Εξαγώγιμο σύνολο δεδομένων +ImportableDatas=Εισαγώγιμο σύνολο δεδομένων +SelectExportDataSet=Επιλέξτε το σύνολο δεδομένων που θέλετε να εξάγετε... +SelectImportDataSet=Επιλέξτε το σύνολο δεδομένων που θέλετε να εισάγετε... SelectExportFields=Επιλέξτε τα πεδία που θέλετε να εξάγετε ή επιλέξτε ένα προκαθορισμένο προφίλ εξαγωγής -SelectImportFields=Επιλέξτε τα πεδία αρχείων προέλευσης που θέλετε να εισαγάγετε και το πεδίο στόχων τους στη βάση δεδομένων, μετακινώντας τα πάνω και κάτω με την άγκυρα %s ή επιλέγοντας ένα προκαθορισμένο προφίλ εισαγωγής: -NotImportedFields=Fields of source file not imported -SaveExportModel=Αποθηκεύστε τις επιλογές σας ως προφίλ / πρότυπο εξαγωγής (για επαναχρησιμοποίηση). +SelectImportFields=Επιλέξτε τα πεδία της πηγής που θέλετε να εισάγετε και τα αντίστοιχα πεδία στα οποία θέλετε να εισαχθούν στη βάση δεδομένων, μετακινώντας τα πάνω και κάτω με την άγκυρα %s ή επιλέγοντας ένα προκαθορισμένο προφίλ εισαγωγής: +NotImportedFields=Πεδία του αρχείου προέλευσης που δεν εισήχθησαν +SaveExportModel=Αποθηκεύστε τις επιλογές σας ως ενα προφίλ/πρότυπο εξαγωγής (για επαναχρησιμοποίηση). SaveImportModel=Αποθήκευση αυτού του προφίλ εισαγωγής (για επαναχρησιμοποίηση) ... -ExportModelName=Export profile name +ExportModelName=Όνομα προφίλ εξαγωγής ExportModelSaved=Το προφίλ εξαγωγής αποθηκεύτηκε ως %s . -ExportableFields=Exportable fields -ExportedFields=Exported fields -ImportModelName=Import profile name +ExportableFields=Εξαγώγιμα πεδία +ExportedFields=Εξαγμένα πεδία +ImportModelName=Όνομα προφίλ εισαγωγής ImportModelSaved=Το προφίλ εισαγωγής αποθηκεύτηκε ως %s . -DatasetToExport=Dataset to export -DatasetToImport=Import file into dataset -ChooseFieldsOrdersAndTitle=Choose fields order... -FieldsTitle=Fields title -FieldTitle=Field title -NowClickToGenerateToBuildExportFile=Τώρα, επιλέξτε τη μορφή αρχείου στο σύνθετο πλαίσιο και κάντε κλικ στο "Δημιουργία" για να δημιουργήσετε το αρχείο εξαγωγής ... +ImportProfile=Προφίλ εισαγωγής +DatasetToExport=Σύνολο δεδομένων για εξαγωγή +DatasetToImport=Εισαγωγή αρχείου στο σύνολο δεδομένων +ChooseFieldsOrdersAndTitle=Επιλογή σειράς πεδίων... +FieldsTitle=Τίτλος πεδίων +FieldTitle=Τίτλος πεδίου +NowClickToGenerateToBuildExportFile=Τώρα, επιλέξτε τη μορφή αρχείου στο σύνθετο πλαίσιο και κάντε κλικ στη "Δημιουργία" για να δημιουργήσετε το αρχείο εξαγωγής ... AvailableFormats=Διαθέσιμες μορφές LibraryShort=Library ExportCsvSeparator=Csv διαχωριστικό χαρακτήρων ImportCsvSeparator=Csv διαχωριστικό χαρακτήρων -Step=Step +Step=Βήμα FormatedImport=Βοηθός εισαγωγής FormatedImportDesc1=Αυτή η ενότητα σάς επιτρέπει να ενημερώσετε υπάρχοντα δεδομένα ή να προσθέσετε νέα αντικείμενα στη βάση δεδομένων από ένα αρχείο χωρίς τεχνικές γνώσεις, χρησιμοποιώντας έναν βοηθό. -FormatedImportDesc2=Το πρώτο βήμα είναι να επιλέξετε το είδος των δεδομένων που θέλετε να εισαγάγετε, στη συνέχεια τη μορφή του αρχείου προέλευσης και, στη συνέχεια, τα πεδία που θέλετε να εισαγάγετε. +FormatedImportDesc2=Το πρώτο βήμα είναι να επιλέξετε το είδος των δεδομένων που θέλετε να εισάγετε, στη συνέχεια τη μορφή του αρχείου προέλευσης και μετά τα πεδία που θέλετε να εισάγετε. FormatedExport=Βοηθός εξαγωγής FormatedExportDesc1=Αυτά τα εργαλεία επιτρέπουν την εξαγωγή εξατομικευμένων δεδομένων χρησιμοποιώντας έναν βοηθό, για να σας βοηθήσουν στη διαδικασία χωρίς να χρειάζεστε τεχνικές γνώσεις. FormatedExportDesc2=Το πρώτο βήμα είναι να επιλέξετε ένα προκαθορισμένο σύνολο δεδομένων, κατόπιν τα πεδία που θέλετε να εξάγετε και με ποια σειρά. -FormatedExportDesc3=Όταν επιλέγονται δεδομένα για εξαγωγή, μπορείτε να επιλέξετε τη μορφή του αρχείου εξόδου. -Sheet=Sheet -NoImportableData=No importable data (no module with definitions to allow data imports) +FormatedExportDesc3=Όταν επιλεχθούν τα δεδομένα για εξαγωγή, μπορείτε να επιλέξετε τη μορφή του αρχείου εξόδου. +Sheet=Φύλλο +NoImportableData=Δεν υπάρχουν δεδομένα προς εισαγωγή (καμία ενότητα με ορισμούς που να επιτρέπουν την εισαγωγή δεδομένων) FileSuccessfullyBuilt=Το αρχείο δημιουργήθηκε -SQLUsedForExport=Το SQL Request χρησιμοποιείται για την εξαγωγή δεδομένων -LineId=Id of line +SQLUsedForExport=Αίτημα SQL που χρησιμοποιήθηκε για την εξαγωγή δεδομένων +LineId=Αναγνωριστικό γραμμής LineLabel=Ετικέτα της γραμμής -LineDescription=Description of line -LineUnitPrice=Unit price of line -LineVATRate=VAT Rate of line -LineQty=Quantity for line -LineTotalHT=Ποσό εκτός από φόρο για τη γραμμή -LineTotalTTC=Amount with tax for line -LineTotalVAT=Amount of VAT for line -TypeOfLineServiceOrProduct=Type of line (0=product, 1=service) -FileWithDataToImport=File with data to import -FileToImport=Source file to import +LineDescription=Περιγραφή γραμμής +LineUnitPrice=Τιμή μονάδας γραμμής +LineVATRate=Συντελεστής ΦΠΑ γραμμής +LineQty=Ποσότητα για γραμμή +LineTotalHT=Ποσό χωρίς φόρος για γραμμή +LineTotalTTC=Ποσό με φόρο για γραμμή +LineTotalVAT=Ποσό Φ.Π.Α. για γραμμή +TypeOfLineServiceOrProduct=Τύπος γραμμής (0=προϊόν, 1=υπηρεσία) +FileWithDataToImport=Αρχείο με δεδομένα για εισαγωγή +FileToImport=Αρχείο προέλευσης για εισαγωγή FileMustHaveOneOfFollowingFormat=Το αρχείο για εισαγωγή πρέπει να έχει μία από τις ακόλουθες μορφές +DownloadEmptyExampleShort=Λήψη δείγματος αρχείου DownloadEmptyExample=Κάντε λήψη ενός προτύπου αρχείου με παραδείγματα και πληροφορίες για πεδία που μπορείτε να εισαγάγετε StarAreMandatory=Στο πρότυπο αρχείο, όλα τα πεδία με * είναι υποχρεωτικά. ChooseFormatOfFileToImport=Επιλέξτε τη μορφή αρχείου που θα χρησιμοποιηθεί ως μορφή αρχείου εισαγωγής κάνοντας κλικ στο εικονίδιο %s για να το επιλέξετε ... -ChooseFileToImport=Μεταφορτώστε το αρχείο και κάντε κλικ στο εικονίδιο %s για να επιλέξετε αρχείο ως αρχείο εισαγωγής πηγής ... -SourceFileFormat=Source file format -FieldsInSourceFile=Fields in source file -FieldsInTargetDatabase=Τομείς-στόχοι που Dolibarr δεδομένων (bold = υποχρεωτικό) -Field=Field -NoFields=No fields -MoveField=Move field column number %s -ExampleOfImportFile=Example_of_import_file -SaveImportProfile=Save this import profile -ErrorImportDuplicateProfil=Failed to save this import profile with this name. An existing profile already exists with this name. -TablesTarget=Targeted tables -FieldsTarget=Targeted fields -FieldTarget=Targeted field -FieldSource=Source field -NbOfSourceLines=Number of lines in source file -NowClickToTestTheImport=Ελέγξτε ότι η μορφή αρχείου (οριοθέτες πεδίων και συμβολοσειρών) του αρχείου σας ταιριάζει με τις επιλογές που εμφανίζονται και ότι έχετε παραλείψει τη γραμμή κεφαλίδας ή αυτές θα επισημανθούν ως σφάλματα στην ακόλουθη προσομοίωση.
    Κάντε κλικ στο κουμπί " %s " για να εκτελέσετε έλεγχο της δομής / περιεχομένου του αρχείου και να προσομοιώσετε τη διαδικασία εισαγωγής.
    Δεν θα αλλάξουν δεδομένα στη βάση δεδομένων σας . +ChooseFileToImport=Μεταφορτώστε το αρχείο και κάντε κλικ στο εικονίδιο %s για να επιλέξετε αρχείο ως αρχείο εισαγωγής προέλευσης ... +SourceFileFormat=Μορφή αρχείου προέλευσης +FieldsInSourceFile=Πεδία αρχείου προέλευσης +FieldsInTargetDatabase=Πεδία στόχευσης στη βάση δεδομένων Dolibarr (έντονα=υποχρεωτικά) +Field=Πεδίο +NoFields=Χωρίς πεδία +MoveField=Μετακίνηση πεδίου αριθμού στήλης %s +ExampleOfImportFile=Παράδειγμα_αρχείου_εισαγωγής +SaveImportProfile=Αποθήκευση προφίλ εισαγωγής +ErrorImportDuplicateProfil=Αποτυχία αποθήκευσης αυτού του προφίλ εισαγωγής με αυτό το όνομα. Υπάρχει ήδη ένα υπάρχον προφίλ με αυτό το όνομα. +TablesTarget=Πίνακες προορισμού +FieldsTarget=Πεδία προορισμού +FieldTarget=Πεδίο προορισμού +FieldSource=Προέλευση πεδίου +NbOfSourceLines=Αριθμός γραμμών στο αρχείο προέλευσης +NowClickToTestTheImport=Ελέγξτε ότι η μορφή αρχείου (οριοθέτες πεδίων και συμβολοσειρών) του αρχείου σας ταιριάζουν με τις επιλογές που εμφανίζονται και ότι έχετε παραλείψει τη γραμμή κεφαλίδας, διαφορετικά θα επισημανθούν ως σφάλματα στην ακόλουθη προσομοίωση.
    Κάντε κλικ στο κουμπί " %s " για να εκτελέσετε έλεγχο της δομής/περιεχομένων του αρχείου και να προσομοιώσετε τη διαδικασία εισαγωγής.
    Δεν θα αλλάξουν δεδομένα στη βάση δεδομένων σας . RunSimulateImportFile=Εκτέλεση προσομοίωσης εισαγωγής FieldNeedSource=Το πεδίο απαιτεί δεδομένα από το αρχείο προέλευσης -SomeMandatoryFieldHaveNoSource=Some mandatory fields have no source from data file -InformationOnSourceFile=Information on source file -InformationOnTargetTables=Information on target fields -SelectAtLeastOneField=Switch at least one source field in the column of fields to export -SelectFormat=Choose this import file format +SomeMandatoryFieldHaveNoSource=Ορισμένα υποχρεωτικά πεδία δεν έχουν αντιστοιχιστεί με το αρχείο δεδομένων προέλευσης +InformationOnSourceFile=Πληροφορίες για το αρχείο προέλευσης +InformationOnTargetTables=Πληροφορίες για τα πεδία προορισμού +SelectAtLeastOneField=Επιλέξτε τουλάχιστον ένα πεδίο στη στήλη των πεδίων για εξαγωγή +SelectFormat=Επιλέξτε αυτήν τη μορφή αρχείου εισαγωγής RunImportFile=Εισαγωγή δεδομένων -NowClickToRunTheImport=Ελέγξτε τα αποτελέσματα της προσομοίωσης εισαγωγής. Διορθώστε τυχόν σφάλματα και επαναλάβετε τη δοκιμή.
    Όταν η προσομοίωση δεν αναφέρει σφάλματα, μπορείτε να προχωρήσετε στην εισαγωγή των δεδομένων στη βάση δεδομένων. +NowClickToRunTheImport=Ελέγξτε τα αποτελέσματα της προσομοίωσης εισαγωγής. Διορθώστε τυχόν σφάλματα και δοκιμάστε ξανά.
    Όταν η προσομοίωση δεν αναφέρει σφάλματα, μπορείτε να προχωρήσετε στην εισαγωγή των δεδομένων στη βάση δεδομένων. DataLoadedWithId=Τα εισαγόμενα δεδομένα θα έχουν ένα επιπλέον πεδίο σε κάθε πίνακα βάσης δεδομένων με αυτό το αναγνωριστικό εισαγωγής: %s , ώστε να είναι δυνατή η αναζήτηση σε περίπτωση διερεύνησης ενός προβλήματος που σχετίζεται με αυτήν την εισαγωγή. -ErrorMissingMandatoryValue=Τα υποχρεωτικά δεδομένα είναι κενά στο αρχείο προέλευσης για το πεδίο %s . -TooMuchErrors=Υπάρχουν ακόμα %s άλλες γραμμές πηγής με σφάλματα, αλλά η απόδοση ήταν περιορισμένη. -TooMuchWarnings=Υπάρχουν ακόμα %s άλλες πηγές με προειδοποιήσεις, αλλά η απόδοση ήταν περιορισμένη. -EmptyLine=Empty line (will be discarded) +ErrorMissingMandatoryValue=Τα υποχρεωτικά δεδομένα είναι κενά στο αρχείο προέλευσης στη στήλη %s . +TooMuchErrors=Υπάρχουν ακόμη άλλες %s γραμμές προέλευσης με σφάλματα, αλλά η έξοδος έχει περιοριστεί. +TooMuchWarnings=Υπάρχουν ακόμη άλλες %s γραμμές πηγής με προειδοποιήσεις, αλλά η έξοδος έχει περιοριστεί. +EmptyLine=Κενή γραμμή (θα απορριφθεί) CorrectErrorBeforeRunningImport=Πρέπει να διορθώσετε όλα τα σφάλματα πριν εκτελέσετε την οριστική εισαγωγή. -FileWasImported=Αρχείο εισήχθη με %s αριθμό. -YouCanUseImportIdToFindRecord=Μπορείτε να βρείτε όλες τις εισαγόμενες εγγραφές στη βάση δεδομένων σας φιλτράροντας στο πεδίο import_key = '%s' . -NbOfLinesOK=Number of lines with no errors and no warnings: %s. -NbOfLinesImported=Number of lines successfully imported: %s. -DataComeFromNoWhere=Value to insert comes from nowhere in source file. -DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. -DataComeFromIdFoundFromRef=Η τιμή που προέρχεται από τον αριθμό πεδίου %s του αρχείου προέλευσης θα χρησιμοποιηθεί για να βρει την ταυτότητα του γονικού αντικειμένου που θα χρησιμοποιήσει (έτσι το αντικείμενο %s που έχει το αρχείο αναφοράς από το αρχείο προέλευσης πρέπει να υπάρχει στη βάση δεδομένων). -DataComeFromIdFoundFromCodeId=Ο κώδικας που προέρχεται από τον αριθμό πεδίου %s του αρχείου προέλευσης θα χρησιμοποιηθεί για να βρει την ταυτότητα του γονικού αντικειμένου που θα χρησιμοποιήσει (οπότε ο κώδικας από το αρχείο προέλευσης πρέπει να υπάρχει στο λεξικό %s ). Σημειώστε ότι εάν γνωρίζετε το id, μπορείτε επίσης να το χρησιμοποιήσετε στο αρχείο προέλευσης αντί του κώδικα. Η εισαγωγή θα πρέπει να λειτουργεί και στις δύο περιπτώσεις. -DataIsInsertedInto=Data coming from source file will be inserted into the following field: +FileWasImported=Το αρχείο εισήχθη με αριθμό %s . +YouCanUseImportIdToFindRecord=Μπορείτε να βρείτε όλες τις εισαγόμενες εγγραφές στη βάση δεδομένων σας φιλτράροντας στο πεδίο import_key='%s' . +NbOfLinesOK=Αριθμός γραμμών χωρίς σφάλματα και χωρίς προειδοποιήσεις: %s . +NbOfLinesImported=Αριθμός γραμμών που εισήχθησαν με επιτυχία: %s . +DataComeFromNoWhere=Η τιμή για εισαγωγή δεν προέρχεται από το αρχείο προέλευσης. +DataComeFromFileFieldNb=Η τιμή προς εισαγωγή προέρχεται από τη στήλη %s στο αρχείο προέλευσης. +DataComeFromIdFoundFromRef=Η τιμή που προέρχεται από τη στήλη %s του αρχείου προέλευσης θα χρησιμοποιηθεί για την εύρεση του αναγνωριστικού του γονικού αντικειμένου που θα χρησιμοποιηθεί (έτσι το αντικείμενο %s που έχει αυτή την αναφορά πρέπει να υπάρχει στη βάση δεδομένων). +DataComeFromIdFoundFromCodeId=Ο κωδικός που προέρχεται από τη στήλη %s του αρχείου προέλευσης θα χρησιμοποιηθεί για να βρεθεί το αναγνωριστικό του γονικού αντικειμένου που θα χρησιμοποιηθεί (έτσι ο κωδικός από το αρχείο προέλευσης πρέπει να υπάρχει στο λεξικό %s). Σημειώστε ότι εάν γνωρίζετε το αναγνωριστικό, μπορείτε επίσης να το χρησιμοποιήσετε στο αρχείο προέλευσης αντί για τον κώδικα. Η εισαγωγή θα πρέπει να λειτουργεί και στις δύο περιπτώσεις. +DataIsInsertedInto=Τα δεδομένα που προέρχονται από το αρχείο προέλευσης θα εισαχθούν στο ακόλουθο πεδίο: DataIDSourceIsInsertedInto=Το αναγνωριστικό του γονικού αντικειμένου, που βρέθηκε χρησιμοποιώντας τα δεδομένα στο αρχείο προέλευσης, θα εισαχθεί στο ακόλουθο πεδίο: -DataCodeIDSourceIsInsertedInto=Το αναγνωριστικό της γονικής γραμμής, που βρέθηκε από τον κώδικα, θα εισαχθεί στο ακόλουθο πεδίο: -SourceRequired=Data value is mandatory -SourceExample=Example of possible data value -ExampleAnyRefFoundIntoElement=Κάθε σχ βρέθηκαν για %s στοιχείο +DataCodeIDSourceIsInsertedInto=Το αναγνωριστικό της γονικής γραμμής, που βρέθηκε από τον κωδικό, θα εισαχθεί στο ακόλουθο πεδίο: +SourceRequired=Η τιμή δεδομένων είναι υποχρεωτική +SourceExample=Παράδειγμα πιθανής τιμής δεδομένων +ExampleAnyRefFoundIntoElement=Οποιαδήποτε αναφορά βρέθηκε για το στοιχείο %s ExampleAnyCodeOrIdFoundIntoDictionary=Κάθε κωδικός (ή id) που βρέθηκαν στο λεξικό %s -CSVFormatDesc=Τιμές διαχωρισμένες με κόμματα μορφή αρχείου (.csv).
    Αυτή είναι μια μορφή αρχείου κειμένου όπου τα πεδία διαχωρίζονται από διαχωριστικό [%s]. Αν διαχωριστικό βρίσκεται μέσα σε ένα περιεχόμενο πεδίου, το πεδίο είναι στρογγυλεμένο με στρογγυλό χαρακτήρα [%s]. Ο χαρακτήρας Escape για να ξεφύγει ο στρογγυλός χαρακτήρας είναι [%s]. +CSVFormatDesc= Αρχείο μορφής τιμών διαχωρισμένων με κόμμα (.csv).
    Πρόκειται για μια μορφή αρχείου κειμένου όπου τα πεδία διαχωρίζονται με διαχωριστικό [%s ]. Εάν βρεθεί διαχωριστικό μέσα σε περιεχόμενο πεδίου, το πεδίο στρογγυλοποιείται με στρογγυλό χαρακτήρα [ %s ]. Ο χαρακτήρας διαφυγής για διαφυγή στρογγυλού χαρακτήρα είναι [ %s ]. Excel95FormatDesc=Μορφή αρχείου Excel (.xls)
    Αυτή είναι η εγγενής μορφή Excel 95 (BIFF5). Excel2007FormatDesc=Μορφή αρχείου Excel (.xlsx)
    Αυτή είναι η εγγενής μορφή Excel 2007 (SpreadsheetML). TsvFormatDesc=Tab Separated Value file format (.tsv)
    This is a text file format where fields are separated by a tabulator [tab]. -ExportFieldAutomaticallyAdded=Το πεδίο %s προστέθηκε αυτόματα. Θα αποτρέψει την ύπαρξη παρόμοιων γραμμών σαν διπλοεγγεγραμμένες εγγραφές (με ην προσθήκη αυτού του πεδίου, όλες οι γραμμές θα έχουν το δικό τους μοναδικό χαρακτηριστικό και θα διαφέρουν). +ExportFieldAutomaticallyAdded=Το πεδίο %s προστέθηκε αυτόματα. Θα αποφύγει να έχετε παρόμοιες γραμμές που θα αντιμετωπίζονται ως διπλότυπη εγγραφή (με προσθήκη αυτού του πεδίου, όλες οι γραμμές θα έχουν το δικό τους αναγνωριστικό και θα διαφέρουν). CsvOptions=Επιλογές μορφοποίησης CSV Separator=Διαχωριστής πεδίων Enclosure=Διαχωριστικό συμβολοσειράς SpecialCode=Ειδικός κωδικός ExportStringFilter=%% επιτρέπει την αντικατάσταση ενός ή περισσότερων χαρακτήρων στο κείμενο του -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: Φιλτράρει κατά ένα έτος / μήνα / ημέρα
    ΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΜΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧ ΥΠΕΧΩΔΕ ΦΥΣΙΚΟ ΑΕΡΙΟ
    > ΕΕΕΕ,> ΕΕΕΕ,> YYYYMMDD: φίλτρα για όλα τα επόμενα έτη / μήνες / ημέρες
    <YYYY, <YYYYMM, <YYYYMMDD: φίλτρα σε όλα τα προηγούμενα έτη / μήνες / ημέρες +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: φιλτράρει κατά ένα έτος/μήνα/ημέρα
    YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: φιλτράρει σε ένα εύρος ετών/μήνων/ημέρων
    > YYYY, > YYYYMM, > YYYYMMDD: φιλτράρει τα επόμενα έτη/μήνες/ημέρες
    < YYYY, < YYYYMM, < YYYYMMDD: φίλτρα για όλα τα προηγούμενα έτη/μήνες/ημέρες ExportNumericFilter=NNNNN filters by one value
    NNNNN+NNNNN filters over a range of values
    < NNNNN filters by lower values
    > NNNNN filters by higher values -ImportFromLine=Η εισαγωγή ξεκινάει από τη γραμμή νούμερο -EndAtLineNb=Τέλος στη γραμμή νούμερο -ImportFromToLine=Όριο εύρους (Από - έως). Π.χ. να παραλείψετε γραμμή (ες) κεφαλίδας. -SetThisValueTo2ToExcludeFirstLine=Για παράδειγμα, ορίστε αυτήν την τιμή σε 3 για να αποκλείσετε τις 2 πρώτες γραμμές.
    Εάν οι γραμμές κεφαλίδας δεν παραλείπονται, αυτό θα έχει ως αποτέλεσμα πολλαπλά σφάλματα στη προσομοίωση εισαγωγής. -KeepEmptyToGoToEndOfFile=Κρατήστε αυτό το πεδίο κενό για να επεξεργαστείτε όλες τις γραμμές μέχρι το τέλος του αρχείου. -SelectPrimaryColumnsForUpdateAttempt=Επιλέξτε στήλες που θα χρησιμοποιηθούν ως πρωτεύον κλειδί για μια εισαγωγή UPDATE +ImportFromLine=Η εισαγωγή ξεκινάει από τον αριθμό γραμμής +EndAtLineNb=Σταματάει στον αριθμό γραμμής +ImportFromToLine=Όριο εύρους (Από - Έως). Π.χ. για παράλειψη γραμμής κεφαλίδας. +SetThisValueTo2ToExcludeFirstLine=Για παράδειγμα, ορίστε αυτήν την τιμή σε 3 για να εξαιρέσετε τις 2 πρώτες γραμμές.
    Εάν οι γραμμές κεφαλίδας ΔΕΝ παραληφθούν, αυτό θα οδηγήσει σε πολλαπλά σφάλματα στην Προσομοίωση Εισαγωγής. +KeepEmptyToGoToEndOfFile=Διατηρήστε αυτό το πεδίο κενό για να επεξεργαστείτε όλες τις γραμμές μέχρι το τέλος του αρχείου. +SelectPrimaryColumnsForUpdateAttempt=Επιλέξτε στήλη(ες) που θα χρησιμοποιηθούν ως πρωτεύον κλειδί για μια εισαγωγή UPDATE UpdateNotYetSupportedForThisImport=Η ενημέρωση δεν υποστηρίζεται για αυτόν τον τύπο εισαγωγής (μόνο εισαγωγή) -NoUpdateAttempt=Δεν έγινε προσπάθεια ενημέρωσης, εισάγεται μόνο -ImportDataset_user_1=Χρήστες (υπαλλήλους ή όχι) και ιδιότητες +NoUpdateAttempt=Δεν πραγματοποιήθηκε καμία προσπάθεια ενημέρωσης, μόνο εισαγωγή +ImportDataset_user_1=Χρήστες (υπάλληλοι ή όχι) και ιδιότητες ComputedField=Υπολογισμένο πεδίο ## filters SelectFilterFields=Αν θέλετε να φιλτράρετε ορισμένες τιμές, απλά εισάγετε τις τιμές εδώ. FilteredFields=Φιλτραρισμένα πεδία -FilteredFieldsValues=Αξία φίλτρου +FilteredFieldsValues=Τιμή για φίλτρο FormatControlRule=Μορφοποίηση του κανόνα ελέγχου ## imports updates KeysToUseForUpdates=Πλήκτρο (στήλη) που χρησιμοποιείται για την ενημέρωση των υφιστάμενων δεδομένων -NbInsert=Number of inserted lines: %s -NbUpdate=Number of updated lines: %s -MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s -StocksWithBatch=Αποθέματα και τοποθεσία (αποθήκη) προϊόντων με αριθμό παρτίδας/σειράς +NbInsert=Αριθμός εισαγόμενων γραμμών: %s +NbUpdate=Αριθμός ενημερωμένων γραμμών: %s +MultipleRecordFoundWithTheseFilters=Έχουν βρεθεί πολλές εγγραφές με αυτά τα φίλτρα: %s +StocksWithBatch=Αποθέματα και τοποθεσία (αποθήκη) προϊόντων με αριθμό παρτίδας/σειριακού αριθμού WarningFirstImportedLine=Οι πρώτες γραμμές δεν θα εισαχθούν με την τρέχουσα επιλογή NotUsedFields=Τα πεδία της βάσης δεδομένων που δεν χρησιμοποιούνται -SelectImportFieldsSource = Επιλέξτε τα πεδία αρχείου προέλευσης που θέλετε να εισαγάγετε και το πεδίο προορισμού τους στη βάση δεδομένων επιλέγοντας τα πεδία σε κάθε επιλεγμένο πλαίσιο ή επιλέξτε ένα προκαθορισμένο προφίλ εισαγωγής: +SelectImportFieldsSource = Επιλέξτε τα πεδία αρχείου προέλευσης που θέλετε να εισάγετε και το πεδίο προορισμού τους στη βάση δεδομένων επιλέγοντας τα πεδία σε κάθε επιλεγμένο πλαίσιο ή επιλέξτε ένα προκαθορισμένο προφίλ εισαγωγής: +MandatoryTargetFieldsNotMapped=Ορισμένα υποχρεωτικά πεδία δεν αντιστοιχίζονται +AllTargetMandatoryFieldsAreMapped=Όλα τα πεδία που χρειάζονται μια υποχρεωτική τιμή αντιστοιχίζονται +ResultOfSimulationNoError=Αποτέλεσμα προσομοίωσης: Κανένα σφάλμα diff --git a/htdocs/langs/el_GR/externalsite.lang b/htdocs/langs/el_GR/externalsite.lang deleted file mode 100644 index c456ea335ee..00000000000 --- a/htdocs/langs/el_GR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Ρύθμιση συνδέσμου σε εξωτερικό ιστότοπο -ExternalSiteURL=Διεύθυνση URL εξωτερικού ιστότοπου περιεχομένου HTML iframe -ExternalSiteModuleNotComplete=Η ενότητα Εξωτερικός Ιστότοπος δεν έχει ρυθμιστεί σωστά. -ExampleMyMenuEntry=Το μενού μου diff --git a/htdocs/langs/el_GR/ftp.lang b/htdocs/langs/el_GR/ftp.lang deleted file mode 100644 index 265c008b7e3..00000000000 --- a/htdocs/langs/el_GR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Ρύθμιση μονάδας FTP ή SFTP Client -NewFTPClient=Ρύθμιση νέας σύνδεσης FTP/FTPS -FTPArea=Περιοχή FTP/FTPS -FTPAreaDesc=Αυτή η οθόνη εμφανίζει μια προβολή ενός διακομιστή FTP και SFTP. -SetupOfFTPClientModuleNotComplete=Η εγκατάσταση της μονάδας πελάτη FTP ή SFTP φαίνεται να είναι ελλιπής -FTPFeatureNotSupportedByYourPHP=Η PHP σας δεν υποστηρίζει λειτουργίες FTP ή SFTP -FailedToConnectToFTPServer=Απέτυχε η σύνδεση με τον διακομιστή (διακομιστής %s, θύρα %s) -FailedToConnectToFTPServerWithCredentials=Απέτυχε η σύνδεση στο διακομιστή με καθορισμένη σύνδεση/κωδικό πρόσβασης -FTPFailedToRemoveFile=Αποτυχία διαγραφής αρχείου%s. -FTPFailedToRemoveDir=Αποτυχία κατάργησης του καταλόγου %s : ελέγξτε τα δικαιώματα και ότι ο κατάλογος είναι κενός. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Επιλέξτε μια τοποθεσία FTP/SFTP από το μενού... -FailedToGetFile=Αποτυχία λήψης αρχείων %s diff --git a/htdocs/langs/el_GR/holiday.lang b/htdocs/langs/el_GR/holiday.lang index 21eda65858e..63b8a5d3c3b 100644 --- a/htdocs/langs/el_GR/holiday.lang +++ b/htdocs/langs/el_GR/holiday.lang @@ -3,78 +3,78 @@ HRM=HRM Holidays=Αδεια CPTitreMenu=Αδεια MenuReportMonth=Μηνιαία αναφορά -MenuAddCP=Αίτηση νέας αποχώρησης -NotActiveModCP=Πρέπει να ενεργοποιήσετε την ενότητα "Αφήστε" για να δείτε αυτή τη σελίδα. +MenuAddCP=Νέα αίτηση άδειας +NotActiveModCP=Πρέπει να ενεργοποιήσετε την ενότητα Άδειες για να δείτε αυτήν τη σελίδα. AddCP=Κάντε αίτηση άδειας DateDebCP=Ημερ. έναρξης DateFinCP=Ημερ. τέλους -DraftCP=Σχέδιο +DraftCP=Προσχέδιο ToReviewCP=Εν αναμονή έγκρισης -ApprovedCP=Εγκεκριμένο +ApprovedCP=Εγκεκριμένη CancelCP=Ακυρώθηκε -RefuseCP=Απόρριψη +RefuseCP=Απορρίφθηκε ValidatorCP=Υπεύθυνος έγκρισης -ListeCP=Λίστα άδειας -Leave=Αφήστε το αίτημα -LeaveId=Αφήστε το αναγνωριστικό -ReviewedByCP=Θα πρέπει να επανεξεταστεί από -UserID=ταυτότητα χρήστη +ListeCP=Λίστα αδειών +Leave=Αίτημα άδειας +LeaveId=Αναγνωριστικό άδειας +ReviewedByCP=Θα εγκριθεί από +UserID=Αναγνωριστικό χρήστη UserForApprovalID=Χρήστη για αναγνωριστικό έγκρισης UserForApprovalFirstname=Όνομα του χρήστη της έγκρισης UserForApprovalLastname=Επώνυμο του χρήστη της έγκρισης UserForApprovalLogin=Σύνδεση χρήστη έγκρισης DescCP=Περιγραφή -SendRequestCP=Δημιουργήστε το αίτημα άδειας -DelayToRequestCP=Tα αιτήματα πρέπει να γίνονται τουλάχιστον %s ημέρα(ες) πριν από τις. -MenuConfCP=Ισορροπία άδειας +SendRequestCP=Δημιουργία αιτήματος άδειας +DelayToRequestCP=Τα αιτήματα αδείας πρέπει να υποβάλλονται τουλάχιστον %s ημέρα(ες) πριν από αυτές. +MenuConfCP=Υπόλοιπο άδειας SoldeCPUser=Υπόλοιπο αδείας (σε ημέρες) %s ErrorEndDateCP=Πρέπει να επιλέξετε μια ημερομηνία λήξης μεγαλύτερη από την ημερομηνία έναρξης. ErrorSQLCreateCP=Παρουσιάστηκε σφάλμα στην SQL κατά τη διάρκεια της δημιουργίας: -ErrorIDFicheCP=Παρουσιάστηκε σφάλμα, η αίτηση άδειας δεν υπάρχει. +ErrorIDFicheCP=Παρουσιάστηκε σφάλμα, το αίτημα άδειας δεν υπάρχει. ReturnCP=Επιστροφή στην προηγούμενη σελίδα -ErrorUserViewCP=Δεν έχετε άδεια για να διαβάσετε αυτή την αίτηση αδείας. +ErrorUserViewCP=Δεν είστε εξουσιοδοτημένοι να διαβάσετε αυτό το αίτημα άδειας. InfosWorkflowCP=Πληροφορίες για την ροή εργασιών RequestByCP=Ζητήθηκε από -TitreRequestCP=Αφήστε το αίτημα -TypeOfLeaveId=Είδος αναγνωριστικού άδειας -TypeOfLeaveCode=Τύπος κωδικού άδειας -TypeOfLeaveLabel=Τύπος ετικέτας άδειας +TitreRequestCP=Αίτημα άδειας +TypeOfLeaveId=Αναγνωριστικό είδους άδειας +TypeOfLeaveCode=Κωδικός είδους άδειας +TypeOfLeaveLabel=Ετικέτα είδους άδειας NbUseDaysCP=Αριθμός ημερών χρησιμοποιημένης άδειας NbUseDaysCPHelp=Ο υπολογισμός συμπεριλαμβάνει τις μη εργάσιμες ημέρες και τις αργίες που ορίζονται στο λεξικό. NbUseDaysCPShort=Ημέρες άδειας NbUseDaysCPShortInMonth=Ημέρες άδειας ανά μήνα -DayIsANonWorkingDay=%s είναι μια μη εργάσιμη μέρα +DayIsANonWorkingDay=Η %s είναι μια μη εργάσιμη μέρα DateStartInMonth=Ημερομηνία έναρξης του μήνα DateEndInMonth=Ημερομηνία λήξης μήνα EditCP=Επεξεργασία DeleteCP=Διαγραφή ActionRefuseCP=Απορρίφθηκε -ActionCancelCP=Άκυρο +ActionCancelCP=Ακύρωση StatutCP=Κατάσταση -TitleDeleteCP=Διαγράψτε την αίτηση άδειας -ConfirmDeleteCP=Επιβεβαιώστε τη διαγραφή αυτήν την αίτηση άδειας; -ErrorCantDeleteCP=Σφάλμα δεν έχετε το δικαίωμα να διαγράψει αυτό το αίτημα αδείας. -CantCreateCP=Δεν έχετε το δικαίωμα να ζητήσετε άδεια. +TitleDeleteCP=Διαγραφή αιτήματος άδειας +ConfirmDeleteCP=Επιβεβαίωση διαγραφής αυτής της αίτησης αδείας; +ErrorCantDeleteCP=Σφάλμα δεν έχετε το δικαίωμα να διαγράψετε αυτό το αίτημα άδειας. +CantCreateCP=Δεν έχετε το δικαίωμα να κάνετε αιτήματα άδειας. InvalidValidatorCP=Πρέπει να επιλέξεις τον προϊστάμενο για την αίτηση άδειας σου. NoDateDebut=Πρέπει να επιλέξετε μια ημερομηνία έναρξης. NoDateFin=Πρέπει να επιλέξετε μια ημερομηνία λήξης. ErrorDureeCP=Η αίτηση άδειας δεν περιέχει εργάσιμες ημέρες -TitleValidCP=Εγκρίνετε την αίτηση άδειας -ConfirmValidCP=Είστε βέβαιοι ότι θέλετε να εγκρίνει την αίτηση άδειας; +TitleValidCP=Εγκρίνετε το αίτημα άδειας +ConfirmValidCP=Είστε σίγουροι ότι θέλετε να εγκρίνετε το αίτημα άδειας; DateValidCP=Ημερομηνία έγκρισης -TitleToValidCP=Στείλτε αίτηση άδειας -ConfirmToValidCP=Είστε βέβαιοι ότι θέλετε να στείλετε την αίτηση άδειας; -TitleRefuseCP=Αρνηθείτε την αίτηση άδειας -ConfirmRefuseCP=Είστε βέβαιοι ότι θέλετε να απορρίψει την αίτηση άδειας; +TitleToValidCP=Αποστολή αιτήματος άδειας +ConfirmToValidCP=Είστε σίγουροι ότι θέλετε να στείλετε το αίτημα άδειας; +TitleRefuseCP=Απόρριψη αιτήματος αδείας +ConfirmRefuseCP=Είστε σίγουροι ότι θέλετε να απορρίψετε το αίτημα άδειας; NoMotifRefuseCP=Πρέπει να επιλέξετε ένα λόγο απόρριψης της αίτησης. TitleCancelCP=Ακυρώστε την αίτηση άδειας -ConfirmCancelCP=Είστε βέβαιοι ότι θέλετε να ακυρώσετε την αίτηση άδειας; +ConfirmCancelCP=Είστε σίγουροι ότι θέλετε να ακυρώσετε το αίτημα αδείας; DetailRefusCP=Λόγος για την απόρριψη -DateRefusCP=Ημερομηνία της άρνησης -DateCancelCP=Ημερομηνία της ακύρωσης +DateRefusCP=Ημερομηνία απόρριψης +DateCancelCP=Ημερομηνία ακύρωσης DefineEventUserCP=Αναθέστε μια έκτακτη άδεια για έναν χρήστη addEventToUserCP=Αφήστε την ανάθεση -NotTheAssignedApprover=Δεν είστε ο αποδέκτης +NotTheAssignedApprover=Δεν είστε ο εκχωρημένος υπεύθυνος έγκρισης MotifCP=Λόγος UserCP=Χρήστης ErrorAddEventToUserCP=Παρουσιάστηκε σφάλμα κατά την προσθήκη τις έκτακτης άδειας. @@ -88,52 +88,52 @@ NewSoldeCP=Νέο υπόλοιπο alreadyCPexist=Υπάρχει ήδη αίτηση άδειας για αυτήν τη περίοδο. FirstDayOfHoliday=Πρώτη μέρα άδειας LastDayOfHoliday=Τελευταία μέρα άδειας -BoxTitleLastLeaveRequests=Latest %s modified leave requests +BoxTitleLastLeaveRequests=Τελευταία %sτροποποιημένα αιτήματα άδειας HolidaysMonthlyUpdate=Μηνιαία ενημέρωση ManualUpdate=Χειροκίνητη ενημέρωση -HolidaysCancelation=Αφήστε το αίτημα ακύρωσης -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name -TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed -LastHolidays=Τα τελευταία %s κάνουν αιτήσεις άδειας +HolidaysCancelation=Ακύρωση αιτήματος άδειας +EmployeeLastname=Επώνυμο υπαλλήλου +EmployeeFirstname=Όνομα υπαλλήλου +TypeWasDisabledOrRemoved=Ο τύπος άδειας (id %s) απενεργοποιήθηκε ή καταργήθηκε +LastHolidays=Τα τελευταία %s αιτήματα άδειας AllHolidays=Όλα τα αιτήματα άδειας HalfDay=Μισή ημέρα -NotTheAssignedApprover=Δεν είστε ο αποδέκτης -LEAVE_PAID=Διακοπές μετ'αποδοχών +NotTheAssignedApprover=Δεν είστε ο εκχωρημένος υπεύθυνος έγκρισης +LEAVE_PAID=Διακοπές μετ'αποδοχών LEAVE_SICK=Αναρρωτική άδεια LEAVE_OTHER=Άλλη άδεια -LEAVE_PAID_FR=Διακοπές μετ'αποδοχών +LEAVE_PAID_FR=Διακοπές μετ'αποδοχών ## Configuration du Module ## -LastUpdateCP=Τελευταία αυτόματη ενημέρωση της κατανομής άδειας -MonthOfLastMonthlyUpdate=Μήνας της τελευταίας αυτόματης ενημέρωσης της κατανομής άδειας +LastUpdateCP=Τελευταία αυτόματη ενημέρωση της κατανομής αδειών +MonthOfLastMonthlyUpdate=Μήνας της τελευταίας αυτόματης ενημέρωσης της κατανομής αδειών UpdateConfCPOK=Ενημερώθηκε με επιτυχία. Module27130Name= Διαχείριση των αιτήσεων αδειών Module27130Desc= Διαχείριση των αιτήσεων αδειών ErrorMailNotSend=Παρουσιάστηκε σφάλμα κατά την αποστολή e-mail: -NoticePeriod=Notice period +NoticePeriod=Περίοδος προειδοποίησης #Messages -HolidaysToValidate=Επικύρωση των αιτήσεων για τις άδειες -HolidaysToValidateBody=Παρακάτω είναι ένα αίτημα άδειας για την επικύρωση -HolidaysToValidateDelay=Αυτή η αίτηση αδείας θα πραγματοποιηθεί εντός προθεσμίας μικρότερης των %s ημερών. +HolidaysToValidate=Επικύρωση αιτημάτων άδειας +HolidaysToValidateBody=Παρακάτω είναι ένα αίτημα άδειας προς επικύρωση +HolidaysToValidateDelay=Αυτή η αίτηση άδειας θα πραγματοποιηθεί εντός περιόδου μικρότερης των %s ημερών. HolidaysToValidateAlertSolde=Ο χρήστης που έκανε αυτήν την αίτηση άδειας δεν έχει αρκετές διαθέσιμες ημέρες. -HolidaysValidated=Επικυρώθηκαν οι αιτήσεις άδειας +HolidaysValidated=Επικυρωμένα αιτήματα άδειας HolidaysValidatedBody=Η αίτηση αδείας %s στο %s έχει επικυρωθεί. -HolidaysRefused=Αίτηση αρνήθηκε +HolidaysRefused=Το αίτημα απορρίφθηκε HolidaysRefusedBody=Το αίτημα άδειας για %s στο %s απορρίφθηκε για τον ακόλουθο λόγο: -HolidaysCanceled=Ακυρώθηκε το αίτημα αδείας +HolidaysCanceled=Ακυρωμένο αίτημα αδείας HolidaysCanceledBody=Η αίτηση αδείας σας για %s στο %s έχει ακυρωθεί. -FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
    0: Not followed by a counter. -NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter -GoIntoDictionaryHolidayTypes=Πηγαίνετε στο σπίτι - Ρύθμιση - Λεξικά - Τύπος άδειας για τη ρύθμιση των διαφορετικών τύπων φύλλων. +FollowedByACounter=1: Αυτό το είδος άδειας πρέπει να ακολουθείται από μετρητή. Ο μετρητής αυξάνεται χειροκίνητα ή αυτόματα και όταν επικυρωθεί ένα αίτημα άδειας, ο μετρητής μειώνεται.
    0: Δεν ακολουθείται από μετρητή. +NoLeaveWithCounterDefined=Δεν έχουν οριστεί τύποι άδειας που πρέπει να ακολουθούνται από μετρητή +GoIntoDictionaryHolidayTypes=Πηγαίνετε στο Αρχικη - Ρυθμίσεις - Λεξικά - Τύπος άδειας για τη ρύθμιση των διαφορετικών τύπων αδειών. HolidaySetup=Ρύθμιση της ενότητας Άδειες HolidaysNumberingModules=Μοντέλα αρίθμησης για αιτήματα άδειας -TemplatePDFHolidays=Πρότυπο για αιτήσεις άδειας PDF -FreeLegalTextOnHolidays=Δωρεάν κείμενο σε μορφή PDF -WatermarkOnDraftHolidayCards=Υδατογραφήματα σε σχέδια αιτήσεων άδειας -HolidaysToApprove=Διακοπές για έγκριση +TemplatePDFHolidays=Πρότυπο PDF για αιτήματα άδειας +FreeLegalTextOnHolidays=Ελεύθερο κείμενο σε pdf +WatermarkOnDraftHolidayCards=Υδατογραφήματα σε προσχέδια αιτημάτων αδείας +HolidaysToApprove=Διακοπές προς έγκριση NobodyHasPermissionToValidateHolidays=Κανείς δεν έχει άδεια να επικυρώσει διακοπές -HolidayBalanceMonthlyUpdate=Μηνιαία ενημέρωση του ισοζυγίου των εορτών -XIsAUsualNonWorkingDay=Το %s είναι συνήθως ΜΗ εργάσιμη ημέρα +HolidayBalanceMonthlyUpdate=Μηνιαία ενημέρωση του υπολοιπου των εορτών +XIsAUsualNonWorkingDay=Η %s είναι συνήθως ΜΗ εργάσιμη ημέρα BlockHolidayIfNegative=Αποκλεισμός εάν το υπόλοιπο είναι αρνητικό LeaveRequestCreationBlockedBecauseBalanceIsNegative=Η δημιουργία αυτού του αιτήματος άδειας έχει αποκλειστεί επειδή το υπόλοιπό σας είναι αρνητικό -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Το αίτημα αδείας%s πρέπει να είναι πρόχειρο, ακυρωμένο ή απορριφθέν για να διαγράφει +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Το αίτημα αδείας%s πρέπει να είναι προσχέδιο, ακυρωμένο ή απορριφθέν για να διαγράφει diff --git a/htdocs/langs/el_GR/hrm.lang b/htdocs/langs/el_GR/hrm.lang index 4a306b45cc7..e6eb6107843 100644 --- a/htdocs/langs/el_GR/hrm.lang +++ b/htdocs/langs/el_GR/hrm.lang @@ -3,88 +3,90 @@ # Admin HRM_EMAIL_EXTERNAL_SERVICE=E-mail για αποτροπή εξωτερικών υπηρεσιών στο HRM -Establishments=Εγκαταστάσεις -Establishment=Εγκατάσταση -NewEstablishment=Νέα εγκατάσταση -DeleteEstablishment=Διαγραφή εγκατάστασης -ConfirmDeleteEstablishment= Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την σύσταση ? -OpenEtablishment=Άνοιγμα εγκατάστασης -CloseEtablishment=Κλείσιμο εγκατάστασης +Establishments=Επιχειρήσεις +Establishment=Επιχείρηση +NewEstablishment=Νέα επιχείρηση +DeleteEstablishment=Διαγραφή επιχείρησης +ConfirmDeleteEstablishment= Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την επιχείρηση ? +OpenEtablishment=Άνοιγμα επιχείρησης +CloseEtablishment=Κλείσιμο επιχείρησης # Dictionary DictionaryPublicHolidays=Άδεια - Επίσημες αργίες -DictionaryDepartment=HRM - Λίστα τμημάτων +DictionaryDepartment=HRM - Οργανωτική Μονάδα DictionaryFunction=HRM - Θέσεις εργασίας # Module -Employees=Εργαζόμενοι +Employees=Υπάλληλοι Employee=Υπάλληλος -NewEmployee=Νέος εργαζόμενος -ListOfEmployees=Λίστα εργαζομένων -HrmSetup=Ρύθμιση μονάδας HRM +NewEmployee=Νέος υπάλληλος +ListOfEmployees=Λίστα υπαλλήλων +HrmSetup=Ρύθμιση ενότητας HRM SkillsManagement=Διαχείριση δεξιοτήτων -HRM_MAXRANK=Μέγιστος αριθμός επιπέδων για την κατάταξη μιας ικανότητας +HRM_MAXRANK=Μέγιστος αριθμός επιπέδων για την κατάταξη μιας δεξιότητας HRM_DEFAULT_SKILL_DESCRIPTION=Προεπιλεγμένη περιγραφή των βαθμών όταν δημιουργείται η ικανότητα -deplacement=Μετατόπιση +deplacement=Ωράριο DateEval=Ημερομηνία αξιολόγησης -JobCard=Κάρτα εργασίας -JobPosition=Εργασία +JobCard=Καρτέλα θέσεων εργασίας +JobPosition=Θέση εργασίας JobsPosition=Θέσεις εργασίας NewSkill=Νέα Δεξιότητα SkillType=Τύπος δεξιότητας -Skilldets=Κατάλογος βαθμών για αυτήν την ικανότητα -Skilldet=Επίπεδο ικανοτήτων +Skilldets=Λίστα βαθμών για αυτήν την δεξιότητα +Skilldet=Επίπεδο δεξιοτήτων rank=Κατάταξη ErrNoSkillSelected=Δεν έχει επιλεγεί δεξιότητα -ErrSkillAlreadyAdded=Αυτή η ικανότητα βρίσκεται ήδη στη λίστα -SkillHasNoLines=Αυτή η ικανότητα δεν έχει γραμμές -skill=Επιδεξιότητα +ErrSkillAlreadyAdded=Αυτή η δεξιότητα βρίσκεται ήδη στη λίστα +SkillHasNoLines=Αυτή η δεξιότητα δεν έχει γραμμές +skill=Δεξιότητα Skills=Δεξιότητες -SkillCard=Κάρτα δεξιοτήτων -EmployeeSkillsUpdated=Οι δεξιότητες των εργαζομένων έχουν ενημερωθεί (δείτε την καρτέλα "δεξιότητες" της κάρτας υπαλλήλου) +SkillCard=Καρτέλα δεξιοτήτων +EmployeeSkillsUpdated=Οι δεξιότητες των εργαζομένων έχουν ενημερωθεί (δείτε την καρτέλα "Δεξιότητες" της καρτέλας υπαλλήλου) Eval=Αξιολόγηση Evals=Αξιολογήσεις NewEval=Νέα αξιολόγηση ValidateEvaluation=Επικύρωση αξιολόγησης -ConfirmValidateEvaluation=Είστε σιγουριοι ότι θέλετε να επικυρώσετε αυτήν την αξιολόγηση με αναφορά %s ; -EvaluationCard=Κάρτα αξιολόγησης -RequiredRank=Απαιτούμενος βαθμός για αυτή τη θέση εργασίας -EmployeeRank=Κατάταξη υπαλλήλου για αυτήν την ικανότητα +ConfirmValidateEvaluation=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την αξιολόγηση με αναφορά %s ; +EvaluationCard=Καρτέλα αξιολόγησης +RequiredRank=Απαιτούμενη κατάταξη για αυτή τη θέση εργασίας +EmployeeRank=Κατάταξη υπαλλήλου για αυτήν την δεξιότητα EmployeePosition=Θέση υπαλλήλου EmployeePositions=Θέσεις υπαλλήλων EmployeesInThisPosition=Υπάλληλοι σε αυτή τη θέση group1ToCompare=Ομάδα χρηστών για ανάλυση group2ToCompare=Δεύτερη ομάδα χρηστών για σύγκριση -OrJobToCompare=Συγκρίνετε με τις απαιτήσεις εργασιακών δεξιοτήτων +OrJobToCompare=Σύγκριση βάση των απαραίτητων εργασιακών δεξιοτήτων difference=Διαφορά CompetenceAcquiredByOneOrMore=Ικανότητα που αποκτήθηκε από έναν ή περισσότερους χρήστες αλλά δεν ζητήθηκε από τον δεύτερο αξιολογητή -MaxlevelGreaterThan=Μέγιστο επίπεδο μεγαλύτερο από αυτό που ζητήθηκε +MaxlevelGreaterThan=Μέγιστο επίπεδο μεγαλύτερο από το ζητούμενο MaxLevelEqualTo=Μέγιστο επίπεδο ίσο με το ζητούμενο -MaxLevelLowerThan=Μέγιστο επίπεδο χαμηλότερο από αυτό της ζήτησης -MaxlevelGreaterThanShort=Επίπεδο εργαζομένου μεγαλύτερο από αυτό που ζητήθηκε -MaxLevelEqualToShort=Το επίπεδο των εργαζομένων είναι το ζήτουμενο -MaxLevelLowerThanShort=Το επίπεδο των εργαζομένων είναι χαμηλότερο από αυτή τη ζήτηση -SkillNotAcquired=Ικανότητα που δεν αποκτήθηκε από όλους τους χρήστες και ζητήθηκε από τον δεύτερο συγκριτή +MaxLevelLowerThan=Μέγιστο επίπεδο χαμηλότερο από το ζητούμενο +MaxlevelGreaterThanShort=Το επίπεδο του εργαζομένου είναι μεγαλύτερο από το ζητούμενο +MaxLevelEqualToShort=Το επίπεδο του εργαζομένου είναι ίσο με το ζητούμενο +MaxLevelLowerThanShort=Το επίπεδο του εργαζομένου είναι χαμηλότερο από το ζητούμενο +SkillNotAcquired=Ικανότητα που δεν αποκτήθηκε από όλους τους χρήστες και ζητήθηκε από τον δεύτερο αξιολογητή legend=Ετικέτα TypeSkill=Τύπος δεξιότητας -AddSkill=Προσθέστε δεξιότητες στην εργασία -RequiredSkills=Απαραίτητα προσόντα για αυτή τη δουλειά +AddSkill=Προσθέστε δεξιότητες στην θέση εργασίας +RequiredSkills=Απαιτούμενες δεξιότητες για αυτή τη θέση εργασίας UserRank=Κατάταξη χρήστη SkillList=Λίστα δεξιοτήτων SaveRank=Αποθήκευση κατάταξης -knowHow=Τεχνογνωσία -HowToBe=Πώς να είσαι -knowledge=Γνώση +TypeKnowHow=Τεχνογνωσία +TypeHowToBe=Περιγραφή +TypeKnowledge=Γνώσεις AbandonmentComment=Σχόλιο εγκατάλειψης DateLastEval=Ημερομηνία τελευταίας αξιολόγησης NoEval=Δεν έγινε αξιολόγηση για αυτόν τον υπάλληλο HowManyUserWithThisMaxNote=Αριθμός χρηστών με αυτήν την κατάταξη HighestRank=Ανώτατη κατάταξη SkillComparison=Σύγκριση δεξιοτήτων -ActionsOnJob=Εκδηλώσεις σε αυτή τη δουλειά +ActionsOnJob=Ενέργειες σε αυτή τη θέση εργασίας VacantPosition=κενές θέσεις εργασίας VacantCheckboxHelper=Επιλέγοντας αυτήν την επιλογή θα εμφανιστούν μη καλυμμένες θέσεις (κενή θέση εργασίας) SaveAddSkill = Προσθήκη δεξιότητας(ων) SaveLevelSkill = Το επίπεδο δεξιοτήτων αποθηκεύτηκε DeleteSkill = Η δεξιότητα αφαιρέθηκε -SkillsExtraFields=Συμπληρωματικά χαρακτηριστικά (Ικανότητες) -JobsExtraFields=Συμπληρωματικά χαρακτηριστικά (Emplois) +SkillsExtraFields=Συμπληρωματικά χαρακτηριστικά (Δεξιότητες) +JobsExtraFields=Συμπληρωματικά χαρακτηριστικά (Υπάλληλοι) EvaluationsExtraFields=Συμπληρωματικά χαρακτηριστικά (Αξιολογήσεις) +NeedBusinessTravels=Ανάγκη επαγγελματικών ταξιδιών +NoDescription=Χωρίς περιγραφή diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang index ef2b799bb34..4e1ea55486c 100644 --- a/htdocs/langs/el_GR/install.lang +++ b/htdocs/langs/el_GR/install.lang @@ -4,31 +4,32 @@ MiscellaneousChecks=Ελέγχος Προαπαιτούμενων ConfFileExists=Το αρχείο ρυθμίσεων %s υπάρχει. ConfFileDoesNotExistsAndCouldNotBeCreated=Το αρχείο διαμόρφωσης %s δεν υπάρχει και δεν μπορεί να δημιουργηθεί! ConfFileCouldBeCreated=Το αρχείο ρυθμίσεων %sθα μπορούσε να δημιουργηθεί. -ConfFileIsNotWritable=Το αρχείο διαμόρφωσης %s δεν είναι εγγράψιμο. Ελέγξτε τα δικαιώματα. Για πρώτη εγκατάσταση, ο διακομιστής ιστού σας πρέπει να μπορεί να γράφει σε αυτό το αρχείο κατά τη διάρκεια της διαδικασίας διαμόρφωσης ("chmod 666" για παράδειγμα σε λειτουργικό σύστημα Unix). +ConfFileIsNotWritable=Το αρχείο διαμόρφωσης %s δεν είναι εγγράψιμο. Ελέγξτε τα δικαιώματα. Για πρώτη εγκατάσταση, ο διακομιστής ιστού σας πρέπει να μπορεί να γράφει σε αυτό το αρχείο κατά τη διάρκεια της διαδικασίας διαμόρφωσης ("chmod 666" για παράδειγμα σε λειτουργικό σύστημα Unix). ConfFileIsWritable=Το αρχείο ρυθμίσεων %s είναι εγγράψιμο. ConfFileMustBeAFileNotADir=Το αρχείο διαμόρφωσης %s πρέπει να είναι ένα αρχείο, όχι ένας κατάλογος. -ConfFileReload=Επαναφόρτωση παραμέτρων από αρχείο ρυθμίσεων. -NoReadableConfFileSoStartInstall=Το αρχείο διαμόρφωσης conf/conf.php δεν υπάρχει ή δεν μπορεί να αναγνώσιμο. Θα εκτελέσουμε τη διαδικασία εγκατάστασης για να προσπαθήσουμε να την αρχικοποιήσουμε. +ConfFileReload=Επαναφόρτωση παραμέτρων από το αρχείο διαμόρφωσης. +NoReadableConfFileSoStartInstall=Το αρχείο διαμόρφωσης conf/conf.php δεν υπάρχει ή δεν είναι αναγνώσιμο. Θα εκτελέσουμε τη διαδικασία εγκατάστασης για να προσπαθήσουμε να το αρχικοποιήσουμε. PHPSupportPOSTGETOk=Η PHP υποστηρίζει μεταβλητές POST και GET. PHPSupportPOSTGETKo=Είναι πιθανό η ρύθμισή σας PHP να μην υποστηρίζει τις μεταβλητές POST ή / και GET. Ελέγξτε την παράμετρο variables_order στο php.ini. PHPSupportSessions=Η PHP υποστηρίζει συνεδρίες. -PHPSupport=Η PHP υποστηρίζει %s λειτουργίες . -PHPMemoryOK=Your PHP max session memory is set to %s. This should be enough. -PHPMemoryTooLow=Η μνήμη συνεδρίας PHP max έχει οριστεί σε %s bytes. Αυτό είναι πολύ χαμηλό. Αλλάξτε το php.ini για να ρυθμίσετε την παράμετρο memory_limit σε τουλάχιστον bytes %s . -Recheck=Κάντε κλικ εδώ για μια λεπτομερέστερη δοκιμή -ErrorPHPDoesNotSupportSessions=Η εγκατάσταση της PHP δεν υποστηρίζει περιόδους σύνδεσης. Αυτή η λειτουργία απαιτείται για να μπορέσει ο Dolibarr να λειτουργήσει. Ελέγξτε τη ρύθμιση PHP και τις άδειες χρήσης του καταλόγου των περιόδων σύνδεσης. +PHPSupport=Η PHP υποστηρίζει %s functions . +PHPMemoryOK=Η μέγιστη μνήμη λειτουργίας περιόδου PHP έχει οριστεί σε %s . Αυτό θα πρέπει να είναι αρκετό. +PHPMemoryTooLow=Η μέγιστη μνήμη λειτουργίας περιόδου PHP έχει οριστεί σε %s bytes. Αυτό είναι πολύ χαμηλό. Αλλάξτε το php.ini για να ρυθμίσετε την παράμετρο memory_limit σε τουλάχιστον %s bytes . +Recheck=Κάντε κλικ εδώ για μια πιο λεπτομερή δοκιμή +ErrorPHPDoesNotSupportSessions=Η εγκατάσταση της PHP δεν υποστηρίζει περιόδους σύνδεσης. Αυτή η λειτουργία απαιτείται για να μπορέσει το Dolibarr να λειτουργήσει. Ελέγξτε τη ρύθμιση PHP και τις άδειες χρήσης του καταλόγου των περιόδων σύνδεσης. ErrorPHPDoesNotSupport=Η εγκατάσταση της PHP σας δεν υποστηρίζει %s λειτουργίες . -ErrorDirDoesNotExists=Κατάλογος %s δεν υπάρχει. +ErrorDirDoesNotExists=Ο κατάλογος %s δεν υπάρχει. ErrorGoBackAndCorrectParameters=Επιστρέψτε και ελέγξτε / διορθώστε τις παραμέτρους. -ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'. -ErrorFailedToCreateDatabase=Απέτυχε η δημιουργία της βάσης δεδομένων '%s'. -ErrorFailedToConnectToDatabase=Απέτυχε η σύνδεση με τη βάση δεδομένων '%s'. -ErrorDatabaseVersionTooLow=Η έκδοση της βάσης δεδομένων (%s), είναι πολύ παλιά. %s Έκδοση ή μεγαλύτερη απαιτείται. -ErrorPHPVersionTooLow=Έκδοση της PHP είναι πολύ παλιά. Έκδοση %s απαιτείται -ErrorConnectedButDatabaseNotFound=Η σύνδεση με το διακομιστή ήταν επιτυχής αλλά η βάση δεδομένων '%s' δεν βρέθηκε. +ErrorWrongValueForParameter=Μπορεί να έχετε πληκτρολογήσει λάθος τιμή για την παράμετρο '%s'. +ErrorFailedToCreateDatabase=Αποτυχία δημιουργίας βάσης δεδομένων "%s". +ErrorFailedToConnectToDatabase=Αποτυχία σύνδεσης στη βάση δεδομένων '%s'. +ErrorDatabaseVersionTooLow=Η έκδοση της βάσης δεδομένων (%s), είναι πολύ παλιά. Έκδοση %sή μεγαλύτερη απαιτείται. +ErrorPHPVersionTooLow=Η έκδοση PHP είναι πολύ παλιά. Απαιτείται η έκδοση %s ή μεταγενέστερη. +ErrorPHPVersionTooHigh=Η έκδοση PHP είναι πολύ νέα. Απαιτείται η έκδοση %s ή παλαιοτερη +ErrorConnectedButDatabaseNotFound=Η σύνδεση με τον διακομιστή ήταν επιτυχής, αλλά η βάση δεδομένων '%s' δεν βρέθηκε. ErrorDatabaseAlreadyExists=Η βάση δεδομένων '%s' υπάρχει ήδη. -IfDatabaseNotExistsGoBackAndUncheckCreate=Εάν η βάση δεδομένων δεν υπάρχει, επιστρέψτε και ελέγξτε την επιλογή "Δημιουργία βάσης δεδομένων". -IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. +IfDatabaseNotExistsGoBackAndUncheckCreate=Εάν η βάση δεδομένων δεν υπάρχει, επιστρέψτε και ελέγξτε την επιλογή "Δημιουργία βάσης δεδομένων". +IfDatabaseExistsGoBackAndCheckCreate=Εάν υπάρχει ήδη βάση δεδομένων, επιστρέψτε και καταργήστε την επιλογή "Δημιουργία βάσης δεδομένων". WarningBrowserTooOld=Η έκδοση του προγράμματος περιήγησης είναι πολύ παλιά. Η αναβάθμιση του προγράμματος περιήγησης σε μια πρόσφατη έκδοση των Firefox, Chrome ή Opera συνιστάται ιδιαίτερα. PHPVersion=Έκδοση PHP License=Χρήση άδειας @@ -37,177 +38,177 @@ WebPagesDirectory=Κατάλογος όπου αποθηκεύονται οι σ DocumentsDirectory=Ο κατάλογος για την αποθήκευση φορτώθηκε και τα έγγραφα που δημιουργήθηκαν URLRoot=URL Root ForceHttps=Εξαναγκασμός για ασφαλείς συνδέσεις (https) -CheckToForceHttps=Check this option to force secure connections (https).
    This requires that the web server is configured with an SSL certificate. +CheckToForceHttps=Επιλέξτε αυτήν την επιλογή για να επιβάλετε ασφαλείς συνδέσεις (https).
    Αυτό απαιτεί ο διακομιστής web να έχει ρυθμιστεί με πιστοποιητικό SSL. DolibarrDatabase=Dolibarr βάση δεδομένων DatabaseType=Τύπος βάσης δεδομένων DriverType=Τύπος Driver Server=Server -ServerAddressDescription=Όνομα ή διεύθυνση IP για το διακομιστή βάσης δεδομένων. Συνήθως 'localhost' όταν ο διακομιστής βάσης δεδομένων φιλοξενείται στον ίδιο διακομιστή με τον εξυπηρετητή ιστού. +ServerAddressDescription=Όνομα ή διεύθυνση IP για το διακομιστή βάσης δεδομένων. Συνήθως "localhost" όταν ο διακομιστής της βάσης δεδομένων φιλοξενείται στον ίδιο διακομιστή με τον διακομιστή web. ServerPortDescription=Θύρα του διακομιστή βάσης δεδομένων. Αφήστε το πεδίο κενό αν δεν το γνωρίζετε. DatabaseServer=Server της βάσης δεδομένων DatabaseName=Όνομα της βάσης δεδομένων DatabasePrefix=Πρόθεμα πίνακα βάσεων δεδομένων -DatabasePrefixDescription=Πρόθεμα πίνακα βάσεων δεδομένων. Εάν είναι κενή, η προεπιλεγμένη τιμή είναι llx_. +DatabasePrefixDescription=Πρόθεμα πίνακα βάσης δεδομένων. Εάν είναι κενό, η προεπιλογή είναι llx_. AdminLogin=Λογαριασμός χρήστη για τον κάτοχο της βάσης δεδομένων Dolibarr. -PasswordAgain=Επαναφέρετε την επιβεβαίωση κωδικού πρόσβασης +PasswordAgain=Πληκτρολογήστε ξανά την επιβεβαίωση κωδικού πρόσβασης AdminPassword=Κωδικός ιδιοκτήτη της βάσης δεδομένων Dolibarr. CreateDatabase=Δημιουργία βάσης δεδομένων -CreateUser=Δημιουργήστε λογαριασμό χρήστη ή χορηγήστε δικαιώματα λογαριασμού χρήστη στη βάση δεδομένων Dolibarr -DatabaseSuperUserAccess=Database server - Superuser access +CreateUser=Δημιουργήστε λογαριασμό χρήστη ή παραχωρήστε άδεια λογαριασμού χρήστη στη βάση δεδομένων Dolibarr +DatabaseSuperUserAccess=Διακομιστής βάσης δεδομένων - Πρόσβαση υπερχρήστη CheckToCreateDatabase=Επιλέξτε το πλαίσιο εάν η βάση δεδομένων δεν υπάρχει ακόμα και πρέπει να δημιουργηθεί.
    Σε αυτή την περίπτωση, πρέπει επίσης να συμπληρώσετε το όνομα χρήστη και τον κωδικό πρόσβασης για το λογαριασμό superuser στο κάτω μέρος αυτής της σελίδας. -CheckToCreateUser=Επιλέξτε το πλαίσιο εάν:
    ο λογαριασμός χρήστη βάσης δεδομένων δεν υπάρχει ακόμα και πρέπει να δημιουργηθεί ή
    εάν ο λογαριασμός χρήστη υπάρχει αλλά η βάση δεδομένων δεν υπάρχει και τα δικαιώματα πρέπει να παραχωρηθούν.
    Σε αυτή την περίπτωση, πρέπει να εισαγάγετε το λογαριασμό χρήστη και τον κωδικό πρόσβασης καθώς και το όνομα και τον κωδικό πρόσβασης του υπερ-χρηστών στο κάτω μέρος αυτής της σελίδας. Εάν δεν έχει επιλεγεί αυτό το πλαίσιο, ο κάτοχος της βάσης δεδομένων και ο κωδικός πρόσβασης πρέπει να υπάρχουν ήδη. -DatabaseRootLoginDescription=Superuser όνομα λογαριασμού (για τη δημιουργία νέων βάσεων δεδομένων ή νέων χρηστών), υποχρεωτική εάν η βάση δεδομένων ή ο ιδιοκτήτης της δεν υπάρχει ήδη. -KeepEmptyIfNoPassword=Αφήστε κενό εάν ο υπερ-χρήστης δεν έχει κωδικό πρόσβασης (ΔΕΝ συνιστάται) +CheckToCreateUser=Επιλέξτε το πλαίσιο εάν:
    ο λογαριασμός χρήστη της βάσης δεδομένων δεν υπάρχει ακόμη και γι' αυτό πρέπει να δημιουργηθεί ή
    εάν ο λογαριασμός χρήστη υπάρχει αλλά η βάση δεδομένων δεν υπάρχει και πρέπει να παραχωρηθούν δικαιώματα.
    Σε αυτήν την περίπτωση, πρέπει να εισαγάγετε τον λογαριασμό χρήστη και τον κωδικό πρόσβασης και επίσης το όνομα και τον κωδικό πρόσβασης του λογαριασμού υπερχρήστη στο κάτω μέρος αυτής της σελίδας. Εάν αυτό το πλαίσιο δεν είναι επιλεγμένο, ο κάτοχος της βάσης δεδομένων και ο κωδικός πρόσβασης πρέπει να υπάρχουν ήδη. +DatabaseRootLoginDescription=Όνομα λογαριασμού υπερχρήστη (για τη δημιουργία νέων βάσεων δεδομένων ή νέων χρηστών), υποχρεωτικό εάν η βάση δεδομένων ή ο κάτοχός της δεν υπάρχει ήδη. +KeepEmptyIfNoPassword=Αφήστε κενό εάν ο υπερχρήστης δεν έχει κωδικό πρόσβασης (ΔΕΝ συνιστάται) SaveConfigurationFile=Αποθήκευση παραμέτρων σε ServerConnection=Σύνδεση με το διακομιστή DatabaseCreation=Δημιουργία βάσης δεδομένων -CreateDatabaseObjects=Database objects creation +CreateDatabaseObjects=Δημιουργία αντικειμένων βάσης δεδομένων ReferenceDataLoading=Reference data loading -TablesAndPrimaryKeysCreation=Tables and Primary keys creation -CreateTableAndPrimaryKey=Create table %s -CreateOtherKeysForTable=Create foreign keys and indexes for table %s -OtherKeysCreation=Foreign keys and indexes creation -FunctionsCreation=Functions creation -AdminAccountCreation=Administrator login creation +TablesAndPrimaryKeysCreation=Δημιουργία πινάκων και πρωτευόντων κλειδιών +CreateTableAndPrimaryKey=Δημιουργία πίνακα %s +CreateOtherKeysForTable=Δημιουργήστε ξένα κλειδιά και ευρετήρια για τον πίνακα %s +OtherKeysCreation=Δημιουργία ξένων κλειδιών και ευρετηρίων +FunctionsCreation=Δημιουργία Functions +AdminAccountCreation=Δημιουργία σύνδεσης διαχειριστή PleaseTypePassword=Πληκτρολογήστε έναν κωδικό πρόσβασης, οι άδειοι κωδικοί πρόσβασης δεν επιτρέπονται! -PleaseTypeALogin=Πληκτρολογήστε μια σύνδεση! +PleaseTypeALogin=Παρακαλώ πληκτρολογήστε το όνομα χρήστη! PasswordsMismatch=Οι κωδικοί πρόσβασης διαφέρουν, δοκιμάστε ξανά! -SetupEnd=End of setup -SystemIsInstalled=This installation is complete. -SystemIsUpgraded=Dolibarr has been upgraded successfully. -YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below: -AdminLoginCreatedSuccessfuly=Επιτυχής δημουργία σύνδεσης του διαχειριστή '%s' στο Dolibarr -GoToDolibarr=Go to Dolibarr -GoToSetupArea=Go to Dolibarr (setup area) +SetupEnd=Τέλος εγκατάστασης +SystemIsInstalled=Αυτή η εγκατάσταση έχει ολοκληρωθεί. +SystemIsUpgraded=Το Dolibarr αναβαθμίστηκε με επιτυχία. +YouNeedToPersonalizeSetup=Πρέπει να διαμορφώσετε το Dolibarr ώστε να ταιριάζει στις ανάγκες σας (εμφάνιση, χαρακτηριστικά, ...). Για να το κάνετε αυτό, ακολουθήστε τον παρακάτω σύνδεσμο: +AdminLoginCreatedSuccessfuly=Το όνομα χρήστη διαχειριστή '%s' του Dolibarr δημιουργήθηκε επιτυχώς +GoToDolibarr=Μετάβαση στο Dolibarr +GoToSetupArea=Μετάβαση στο Dolibarr (Τομέα ρυθμίσεων) MigrationNotFinished=Η έκδοση της βάσης δεδομένων δεν είναι εντελώς ενημερωμένη: εκτελέστε ξανά τη διαδικασία αναβάθμισης. -GoToUpgradePage=Go to upgrade page again -WithNoSlashAtTheEnd=Without the slash "/" at the end -DirectoryRecommendation= ΣΗΜΑΝΤΙΚΟ : Πρέπει να χρησιμοποιήσετε έναν κατάλογο ο οποίος βρίσκεται εκτός των ιστοσελίδων (οπότε μην χρησιμοποιείτε υποκατάλογο προηγούμενης παραμέτρου). -LoginAlreadyExists=Already exists -DolibarrAdminLogin=Dolibarr admin login -AdminLoginAlreadyExists=Ο λογαριασμός διαχειριστή Dolibarr ' %s ' υπάρχει ήδη. Επιστρέψτε αν θέλετε να δημιουργήσετε ένα άλλο. +GoToUpgradePage=Μετάβαση ξανά στη σελίδα αναβάθμισης +WithNoSlashAtTheEnd=Χωρίς την κάθετο "/" στο τέλος +DirectoryRecommendation= ΣΗΜΑΝΤΙΚΟ : Πρέπει να χρησιμοποιήσετε έναν κατάλογο ο οποίος βρίσκεται εκτός των ιστοσελίδων (οπότε μην χρησιμοποιείτε υποκατάλογο της προηγούμενης παραμέτρου). +LoginAlreadyExists=Υπάρχει ήδη +DolibarrAdminLogin=Όνομα χρήστη διαχειριστή Dolibarr +AdminLoginAlreadyExists=Ο λογαριασμός διαχειριστή Dolibarr " %s " υπάρχει ήδη. Επιστρέψτε αν θέλετε να δημιουργήσετε ένα άλλο. FailedToCreateAdminLogin=Αποτυχία δημιουργίας λογαριασμού διαχειριστή του Dolibarr. -WarningRemoveInstallDir=Προειδοποίηση, για λόγους ασφαλείας, μόλις ολοκληρωθεί η εγκατάσταση ή η αναβάθμιση, πρέπει να προσθέσετε ένα αρχείο που καλείται install.lock στον κατάλογο εγγράφων Dolibarr, προκειμένου να αποφευχθεί ξανά η τυχαία / κακόβουλη χρήση των εργαλείων εγκατάστασης. -FunctionNotAvailableInThisPHP=Δεν είναι διαθέσιμο σε αυτήν την PHP -ChoosedMigrateScript=Choose migration script +WarningRemoveInstallDir=Προειδοποίηση, για λόγους ασφαλείας, μόλις ολοκληρωθεί η εγκατάσταση ή η αναβάθμιση, θα πρέπει να προσθέσετε ένα αρχείο που ονομάζεται install.lock στον κατάλογο εγγράφων του Dolibarr, προκειμένου να αποτραπεί ξανά η τυχαία/κακόβουλη χρήση των εργαλείων εγκατάστασης. +FunctionNotAvailableInThisPHP=Δεν είναι διαθέσιμη σε αυτήν την PHP +ChoosedMigrateScript=Επιλέξτε script μετεγκατάστασης DataMigration=Μετακίνηση βάσης δεδομένων (δεδομένα) DatabaseMigration=Μετακίνηση βάσης δεδομένων (δομή + μερικά δεδομένα) ProcessMigrateScript=Script processing -ChooseYourSetupMode=Choose your setup mode and click "Start"... -FreshInstall=Fresh install -FreshInstallDesc=Χρησιμοποιήστε αυτήν τη λειτουργία, εάν αυτή είναι η πρώτη σας εγκατάσταση. Εάν όχι, αυτή η λειτουργία μπορεί να επιδιορθώσει μια μη ολοκληρωμένη προηγούμενη εγκατάσταση. Εάν θέλετε να αναβαθμίσετε την έκδοση σας, επιλέξτε τη λειτουργία "Αναβάθμιση". -Upgrade=Upgrade -UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data. -Start=Start -InstallNotAllowed=Setup not allowed by conf.php permissions -YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process. -CorrectProblemAndReloadPage=Διορθώστε το πρόβλημα και πατήστε F5 για να φορτώσετε ξανά τη σελίδα. -AlreadyDone=Already migrated -DatabaseVersion=Database version -ServerVersion=Database server version -YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it. +ChooseYourSetupMode=Επιλέξτε τη λειτουργία ρύθμισης και κάντε κλικ στο "Έναρξη"... +FreshInstall=Νέα εγκατάσταση +FreshInstallDesc=Χρησιμοποιήστε αυτήν τη λειτουργία εάν αυτή είναι η πρώτη σας εγκατάσταση. Εάν όχι, αυτή η λειτουργία μπορεί να επιδιορθώσει μια ημιτελή προηγούμενη εγκατάσταση. Εάν θέλετε να αναβαθμίσετε την έκδοσή σας, επιλέξτε τη λειτουργία "Αναβάθμιση". +Upgrade=Αναβάθμιση +UpgradeDesc=Χρησιμοποιήστε αυτήν τη λειτουργία εάν έχετε αντικαταστήσει παλιά αρχεία Dolibarr με αρχεία νεότερης έκδοσης. Αυτό θα αναβαθμίσει τη βάση δεδομένων και τα δεδομένα σας. +Start=Έναρξη +InstallNotAllowed=Η ρύθμιση δεν επιτρέπεται από τα δικαιώματα του conf.php +YouMustCreateWithPermission=Πρέπει να δημιουργήσετε το αρχείο %s και να ορίσετε δικαιώματα εγγραφής σε αυτό για τον διακομιστή web κατά τη διαδικασία εγκατάστασης. +CorrectProblemAndReloadPage=Παρακαλώ διορθώστε το πρόβλημα και πατήστε F5 για να φορτώσετε ξανά τη σελίδα. +AlreadyDone=Η μετεγκατάσταση έχει ολοκληρωθεί +DatabaseVersion=Έκδοση βάσης δεδομένων +ServerVersion=Έκδοση διακομιστή βάσης δεδομένων +YouMustCreateItAndAllowServerToWrite=Πρέπει να δημιουργήσετε αυτόν τον κατάλογο και να επιτρέψετε στον διακομιστή web να εγγράψει σε αυτόν. DBSortingCollation=Character sorting order -YouAskDatabaseCreationSoDolibarrNeedToConnect=Έχετε επιλέξει τη δημιουργία βάσης δεδομένων %s , αλλά για αυτό, ο Dolibarr πρέπει να συνδεθεί με τον διακομιστή %s με δικαιώματα χρήστη super %s . -YouAskLoginCreationSoDolibarrNeedToConnect=Επιλέξατε να δημιουργήσετε τον χρήστη βάσης δεδομένων %s , αλλά για αυτό, ο Dolibarr πρέπει να συνδεθεί με τον διακομιστή %s με δικαιώματα χρήστη super %s . -BecauseConnectionFailedParametersMayBeWrong=Η σύνδεση βάσης δεδομένων απέτυχε: οι παραμέτρους κεντρικού υπολογιστή ή υπερ-χρήστης πρέπει να είναι λάθος. -OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s -RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue. -FieldRenamed=Field renamed -IfLoginDoesNotExistsCheckCreateUser=Εάν ο χρήστης δεν υπάρχει ακόμα, πρέπει να επιλέξετε την επιλογή "Δημιουργία χρήστη" -ErrorConnection=Server " %s ", όνομα βάσης δεδομένων " %s ", σύνδεση " %s " ή κωδικός πρόσβασης στη βάση δεδομένων μπορεί να είναι λάθος ή η έκδοση του προγράμματος-πελάτη PHP μπορεί να είναι πολύ παλιά σε σύγκριση με την έκδοση της βάσης δεδομένων. -InstallChoiceRecommanded=Recommended choice to install version %s from your current version %s -InstallChoiceSuggested=Install choice suggested by installer. -MigrateIsDoneStepByStep=Η στοχευμένη έκδοση (%s) έχει ένα κενό από διάφορες εκδόσεις. Ο οδηγός εγκατάστασης θα επανέλθει για να υποδείξει μια περαιτέρω μετανάστευση μόλις αυτό ολοκληρωθεί. -CheckThatDatabasenameIsCorrect=Βεβαιωθείτε ότι το όνομα της βάσης δεδομένων " %s " είναι σωστό. -IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database". -OpenBaseDir=PHP openbasedir parameter -YouAskToCreateDatabaseSoRootRequired=Ελέγξατε το πλαίσιο "Δημιουργία βάσης δεδομένων". Για το σκοπό αυτό, πρέπει να δώσετε τον κωδικό πρόσβασης / κωδικό πρόσβασης του χρήστη superuser (στο κάτω μέρος της φόρμας). -YouAskToCreateDatabaseUserSoRootRequired=Ελέγξατε το πλαίσιο "Δημιουργία κατόχου βάσης δεδομένων". Για το σκοπό αυτό, πρέπει να δώσετε τον κωδικό πρόσβασης / κωδικό πρόσβασης του χρήστη superuser (στο κάτω μέρος της φόρμας). -NextStepMightLastALongTime=Το τρέχον βήμα μπορεί να διαρκέσει αρκετά λεπτά. Περιμένετε έως ότου εμφανιστεί η επόμενη οθόνη εντελώς πριν συνεχίσετε. +YouAskDatabaseCreationSoDolibarrNeedToConnect=Έχετε επιλέξει τη δημιουργία βάσης δεδομένων %s , αλλά για αυτό, το Dolibarr πρέπει να συνδεθεί με τον διακομιστή %s με δικαιώματα υπερχρήστη %s . +YouAskLoginCreationSoDolibarrNeedToConnect=Επιλέξατε να δημιουργήσετε τον χρήστη βάσης δεδομένων %s , αλλά για αυτό, το Dolibarr πρέπει να συνδεθεί με τον διακομιστή %s με δικαιώματα υπερχρήστη%s . +BecauseConnectionFailedParametersMayBeWrong=Η σύνδεση της βάσης δεδομένων απέτυχε: οι παράμετροι κεντρικού υπολογιστή ή υπερχρήστη πρέπει να είναι λανθασμένες. +OrphelinsPaymentsDetectedByMethod=Εντοπίστηκαν ασύνδετες πληρωμές με τη μέθοδο %s +RemoveItManuallyAndPressF5ToContinue=Αφαιρέστε το χειροκίνητα και πατήστε F5 για να συνεχίσετε. +FieldRenamed=Το πεδίο μετονομάστηκε +IfLoginDoesNotExistsCheckCreateUser=Εάν ο χρήστης δεν υπάρχει ακόμα, πρέπει να ελέγξετε την επιλογή "Δημιουργία χρήστη" +ErrorConnection=Ο διακομιστής " %s ", Το όνομα βάσης δεδομένων " %s ",το όνομα χρήστη " %s ", ή ο κωδικός πρόσβασης της βάσης δεδομένων μπορεί να ειναι λανθασμένα ή έκδοση της PHP μπορεί να ειναι αρκετά παλιά σε σχέση με την έκδοση της βάσης δεδομένων. +InstallChoiceRecommanded=Συνιστώμενη επιλογή για εγκατάσταση της έκδοσης %s από την τρέχουσα έκδοση %s +InstallChoiceSuggested= Προτεινόμενη επιλογή εγκατάστασης . +MigrateIsDoneStepByStep=Η στοχευμένη έκδοση (%s) έχει ένα κενό πολλών εκδόσεων. Ο οδηγός εγκατάστασης θα προτείνει μια περαιτέρω μετεγκατάσταση μόλις ολοκληρωθεί αυτή. +CheckThatDatabasenameIsCorrect=Ελέγξτε ότι το όνομα της βάσης δεδομένων " %s " είναι σωστό. +IfAlreadyExistsCheckOption=Εάν αυτό το όνομα είναι σωστό και αυτή η βάση δεδομένων δεν υπάρχει ακόμα, πρέπει να ελέγξετε την επιλογή "Δημιουργία βάσης δεδομένων". +OpenBaseDir=Παράμετρος openbasedir PHP +YouAskToCreateDatabaseSoRootRequired=Επιλέξατε το πλαίσιο "Δημιουργία βάσης δεδομένων". Για αυτό, πρέπει να δώσετε το όνομα χρήστη/κωδικό πρόσβασης του υπερχρήστη (κάτω μέρος της φόρμας). +YouAskToCreateDatabaseUserSoRootRequired=Επιλέξατε το πλαίσιο "Δημιουργία κατόχου βάσης δεδομένων". Για αυτό, πρέπει να δώσετε το όνομα χρήστη/κωδικό πρόσβασης του υπερχρήστη (κάτω μέρος της φόρμας). +NextStepMightLastALongTime=Το τρέχον βήμα μπορεί να διαρκέσει αρκετά λεπτά. Περιμένετε μέχρι να εμφανιστεί πλήρως η επόμενη οθόνη πριν συνεχίσετε. MigrationCustomerOrderShipping=Μετεγκατάσταση της αποστολής για αποθήκευση παραγγελιών πωλήσεων MigrationShippingDelivery=Upgrade storage of shipping MigrationShippingDelivery2=Upgrade storage of shipping 2 -MigrationFinished=Μετανάστευση τελειώσει -LastStepDesc=Τελευταίο βήμα : Καθορίστε εδώ τα στοιχεία σύνδεσης και τον κωδικό πρόσβασης που θέλετε να χρησιμοποιήσετε για να συνδεθείτε στο Dolibarr. Μην χάσετε αυτό, καθώς είναι ο κύριος λογαριασμός για τη διαχείριση όλων των άλλων / πρόσθετων λογαριασμών χρηστών. -ActivateModule=Ενεργοποίηση %s ενότητα +MigrationFinished=Η μετεγκατάσταση ολοκληρώθηκε +LastStepDesc= Τελευταίο βήμα : Ορίστε εδώ το όνομα χρήστη και τον κωδικό πρόσβασης που θέλετε να χρησιμοποιήσετε για να συνδεθείτε στο Dolibarr. Μην το χάσετε, καθώς είναι ο κύριος λογαριασμός για τη διαχείριση όλων των άλλων/πρόσθετων λογαριασμών χρηστών. +ActivateModule=Ενεργοποίηση ενότητας %s ShowEditTechnicalParameters=Κάντε κλικ εδώ για να δείτε/επεξεργαστείτε προηγμένες παραμέτρους (κατάσταση έμπειρου χρήστη) -WarningUpgrade=Προειδοποίηση: Πραγματοποιήσατε πρώτα ένα backup της βάσης δεδομένων; Αυτό συνιστάται ιδιαίτερα. Η απώλεια δεδομένων (εξαιτίας, για παράδειγμα, σφαλμάτων στο mysql έκδοση 5.5.40 / 41/42/43) μπορεί να είναι δυνατή κατά τη διάρκεια αυτής της διαδικασίας, οπότε είναι απαραίτητο να πάρετε μια πλήρη χωματερή της βάσης δεδομένων σας πριν ξεκινήσετε οποιαδήποτε μετανάστευση. Κάντε κλικ στο κουμπί OK για να ξεκινήσετε τη διαδικασία μετάβασης ... -ErrorDatabaseVersionForbiddenForMigration=Η έκδοση της βάσης δεδομένων σας είναι %s. Έχει ένα κρίσιμο σφάλμα, καθιστώντας δυνατή την απώλεια δεδομένων εάν κάνετε αλλαγές στη βάση δεδομένων σας, όπως απαιτείται από τη διαδικασία της μετάβασης. Για το λόγο του, η μετάβαση δεν θα επιτρέπεται μέχρι να αναβαθμίσετε τη βάση δεδομένων σας σε μια έκδοση στρώματος (patched) (λίστα γνωστών εκδόσεων buggy: %s) +WarningUpgrade=Προειδοποίηση:\nΕκτελέσατε πρώτα ένα αντίγραφο ασφαλείας της βάσης δεδομένων;\nΑυτό συνιστάται ιδιαίτερα. Η απώλεια δεδομένων (για παράδειγμα λόγω σφαλμάτων στην έκδοση mysql 5.5.40/41/42/43) μπορεί να είναι δυνατή κατά τη διάρκεια αυτής της διαδικασίας, επομένως είναι απαραίτητο να κάνετε ένα αντίγραφο της βάσης δεδομένων σας πριν ξεκινήσετε οποιαδήποτε μετεγκατάσταση.\n\nΚάντε κλικ στο OK για να ξεκινήσει η διαδικασία μετεγκατάστασης... +ErrorDatabaseVersionForbiddenForMigration=Η έκδοση της βάσης δεδομένων σας είναι η%s. Έχει ένα κρίσιμο σφάλμα, καθιστώντας δυνατή την απώλεια δεδομένων εάν κάνετε δομικές αλλαγές στη βάση δεδομένων σας, όπως απαιτείται από τη διαδικασία μετεγκατάστασης. Για τον λόγο αυτό, η μετεγκατάσταση δεν θα επιτρέπεται μέχρι να αναβαθμίσετε τη βάση δεδομένων σας σε έκδοση επιπέδου (patched) (λίστα γνωστών προβληματικων εκδόσεων: %s) KeepDefaultValuesWamp=Χρησιμοποιήσατε τον οδηγό ρύθμισης Dolibarr από το DoliWamp, έτσι οι τιμές που προτείνονται εδώ είναι ήδη βελτιστοποιημένες. Αλλάξτε τα μόνο αν ξέρετε τι κάνετε. KeepDefaultValuesDeb=Χρησιμοποιήσατε τον οδηγό ρύθμισης Dolibarr από ένα πακέτο Linux (Ubuntu, Debian, Fedora ...), έτσι οι τιμές που προτείνονται εδώ είναι ήδη βελτιστοποιημένες. Πρέπει να εισαχθεί μόνο ο κωδικός πρόσβασης του κατόχου της βάσης δεδομένων για δημιουργία. Αλλάξτε άλλες παραμέτρους μόνο αν γνωρίζετε τι κάνετε. KeepDefaultValuesMamp=Χρησιμοποιήσατε τον οδηγό ρύθμισης Dolibarr από το DoliMamp, έτσι οι τιμές που προτείνονται εδώ είναι ήδη βελτιστοποιημένες. Αλλάξτε τα μόνο αν ξέρετε τι κάνετε. KeepDefaultValuesProxmox=Χρησιμοποιήσατε τον οδηγό ρύθμισης Dolibarr από μια εικονική συσκευή Proxmox, έτσι οι τιμές που προτείνονται εδώ έχουν ήδη βελτιστοποιηθεί. Αλλάξτε τα μόνο αν ξέρετε τι κάνετε. -UpgradeExternalModule=Εκτελέστε ειδική διαδικασία αναβάθμισης της εξωτερικής μονάδας -SetAtLeastOneOptionAsUrlParameter=Ορίστε τουλάχιστον μία επιλογή ως παράμετρο στη διεύθυνση URL. Για παράδειγμα: '... repair.php? Standard = confirmed' +UpgradeExternalModule=Εκτελέστε ειδική διαδικασία αναβάθμισης εξωτερικής ενότητας +SetAtLeastOneOptionAsUrlParameter=Ορίστε τουλάχιστον μία επιλογή ως παράμετρο στο URL. Για παράδειγμα: '...repair.php?standard=confirmed' NothingToDelete=Τίποτα για καθαρισμό / διαγραφή -NothingToDo=Τίποτα να κάνω +NothingToDo=Καμία ενέργεια ######### # upgrade -MigrationFixData=Fix for denormalized data -MigrationOrder=Data migration for customer's orders -MigrationSupplierOrder=Μεταφορά δεδομένων για παραγγελίες του πωλητή -MigrationProposal=Data migration for commercial proposals -MigrationInvoice=Data migration for customer's invoices -MigrationContract=Data migration for contracts -MigrationSuccessfullUpdate=Upgrade successful -MigrationUpdateFailed=Failed upgrade process -MigrationRelationshipTables=Data migration for relationship tables (%s) -MigrationPaymentsUpdate=Payment data correction -MigrationPaymentsNumberToUpdate=%s payment(s) to update -MigrationProcessPaymentUpdate=Update payment(s) %s -MigrationPaymentsNothingToUpdate=No more things to do -MigrationPaymentsNothingUpdatable=No more payments that can be corrected -MigrationContractsUpdate=Contract data correction -MigrationContractsNumberToUpdate=%s contract(s) to update -MigrationContractsLineCreation=Create contract line for contract ref %s -MigrationContractsNothingToUpdate=No more things to do -MigrationContractsFieldDontExist=Το πεδίο fk_facture δεν υπάρχει πια. Τίποτα να κάνω. -MigrationContractsEmptyDatesUpdate=Contract empty date correction +MigrationFixData=Διόρθωση για μη κανονικά δεδομένα +MigrationOrder=Μεταφορά δεδομένων για παραγγελίες πελάτη +MigrationSupplierOrder=Μεταφορά δεδομένων για παραγγελίες προμηθευτών +MigrationProposal=Μεταφορά δεδομένων για εμπορικές προσφορές +MigrationInvoice=Μεταφορά δεδομένων για τιμολόγια πελατών +MigrationContract=Μεταφορά δεδομένων για συμβάσεις +MigrationSuccessfullUpdate=Επιτυχής αναβάθμιση +MigrationUpdateFailed=Η διαδικασία αναβάθμισης απέτυχε +MigrationRelationshipTables=Μετακίνηση δεδομένων για πίνακες σχέσεων (%s) +MigrationPaymentsUpdate=Διόρθωση δεδομένων πληρωμής +MigrationPaymentsNumberToUpdate=%s πληρωμές για ενημέρωση +MigrationProcessPaymentUpdate=Ενημέρωση πληρωμών %s +MigrationPaymentsNothingToUpdate=Δεν υπάρχουν άλλες πληρωμές για ενημέρωση +MigrationPaymentsNothingUpdatable=Δεν υπάρχουν άλλες πληρωμές που μπορούν να διορθωθούν +MigrationContractsUpdate=Διόρθωση δεδομένων συμβάσεων +MigrationContractsNumberToUpdate=%s συμβάσεις για ενημέρωση +MigrationContractsLineCreation=Δημιουργία γραμμής σύμβασης για την αναφορά σύμβασης%s +MigrationContractsNothingToUpdate=Δεν υπάρχουν άλλες συμβάσεις για ενημέρωση +MigrationContractsFieldDontExist=Το πεδίο fk_facture δεν υπάρχει πια. Καμιά ενέργεια. +MigrationContractsEmptyDatesUpdate=Διόρθωση κενής ημερομηνίας σύμβασης MigrationContractsEmptyDatesUpdateSuccess=Η διόρθωση της άδειας ημερομηνίας της σύμβασης έγινε με επιτυχία -MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct -MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct -MigrationContractsInvalidDatesUpdate=Bad value date contract correction -MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=%s) -MigrationContractsInvalidDatesNumber=%s contracts modified -MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct -MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction -MigrationContractsIncoherentCreationDateUpdateSuccess=Επιτυχής διόρθωση εσφαλμένης τιμής ημερομηνίας δημιουργίας συμβολαίου -MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct -MigrationReopeningContracts=Open contract closed by error -MigrationReopenThisContract=Reopen contract %s -MigrationReopenedContractsNumber=%s contracts modified -MigrationReopeningContractsNothingToUpdate=No closed contract to open -MigrationBankTransfertsUpdate=Ενημέρωση συνδέσμων μεταξύ τραπεζικής εισαγωγής και τραπεζικής μεταφοράς -MigrationBankTransfertsNothingToUpdate=All links are up to date +MigrationContractsEmptyDatesNothingToUpdate=Δεν υπάρχει κενή ημερομηνία σύμβασης για διόρθωση +MigrationContractsEmptyCreationDatesNothingToUpdate=Δεν υπάρχει ημερομηνία δημιουργίας σύμβασης για διόρθωση +MigrationContractsInvalidDatesUpdate=Διόρθωση σύμβασης με λάθος ημερομηνία +MigrationContractsInvalidDateFix=Σωστό συμβόλαιο %s (Ημερομηνία σύμβασης=%s, Ημερομηνία έναρξης υπηρεσίας min=%s) +MigrationContractsInvalidDatesNumber=%s συμβάσεις τροποποιήθηκαν +MigrationContractsInvalidDatesNothingToUpdate=Δεν υπάρχει ημερομηνία με λάθος τιμή για διόρθωση +MigrationContractsIncoherentCreationDateUpdate=Διόρθωση λανθασμένης τιμής ημερομηνίας δημιουργίας σύμβασης +MigrationContractsIncoherentCreationDateUpdateSuccess=Επιτυχής διόρθωση εσφαλμένης τιμής ημερομηνίας δημιουργίας σύμβασης +MigrationContractsIncoherentCreationDateNothingToUpdate=Δεν υπάρχει λάθος τιμή ημερομηνίας δημιουργίας σύμβασης για διόρθωση +MigrationReopeningContracts=Άνοιγμα συμβάσεων που έκλεισαν με λάθος +MigrationReopenThisContract=Ανοίξτε ξανά τη σύμβαση %s +MigrationReopenedContractsNumber=%s συμβάσεις τροποποιήθηκαν +MigrationReopeningContractsNothingToUpdate=Δεν υπάρχει κλειστή σύμβαση για άνοιγμα +MigrationBankTransfertsUpdate=Ενημέρωση συνδέσμων μεταξύ τραπεζικών εγγραφών και τραπεζικών μεταφορών +MigrationBankTransfertsNothingToUpdate=Όλοι οι σύνδεσμοι είναι ενημερωμένοι MigrationShipmentOrderMatching=Sendings receipt update MigrationDeliveryOrderMatching=Delivery receipt update -MigrationDeliveryDetail=Delivery update -MigrationStockDetail=Update stock value of products -MigrationMenusDetail=Update dynamic menus tables -MigrationDeliveryAddress=Update delivery address in shipments -MigrationProjectTaskActors=Μετανάστευση δεδομένων για τον πίνακα llx_projet_task_actors -MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact -MigrationProjectTaskTime=Update time spent in seconds -MigrationActioncommElement=Ενημέρωση στοιχεία για τις δράσεις -MigrationPaymentMode=Μεταφορά δεδομένων για τον τύπο πληρωμής +MigrationDeliveryDetail=Ενημέρωση παράδοσης +MigrationStockDetail=Ενημέρωση αξίας αποθεμάτων προϊόντων +MigrationMenusDetail=Ενημέρωση πινάκων δυναμικών μενού +MigrationDeliveryAddress=Ενημέρωση διεύθυνσης παράδοσης στις αποστολές +MigrationProjectTaskActors=Μετακίνηση δεδομένων για τον πίνακα llx_projet_task_actors +MigrationProjectUserResp=Πεδίο μετεγκατάστασης δεδομένων fk_user_resp του llx_projet στο llx_element_contact +MigrationProjectTaskTime=Ενημέρωση χρόνου που ξοδεύτηκε σε δευτερόλεπτα +MigrationActioncommElement=Ενημέρωση δεδομένων για ενέργειες +MigrationPaymentMode=Μεταφορά δεδομένων για τύπο πληρωμής MigrationCategorieAssociation=Μετακίνηση των κατηγοριών -MigrationEvents=Μετανάστευση συμβάντων για προσθήκη του κατόχου συμβάντος στον πίνακα αντιστοιχιών -MigrationEventsContact=Μετανάστευση συμβάντων για προσθήκη επαφής συμβάντων στον πίνακα αντιστοιχιών -MigrationRemiseEntity=Ενημέρωση φορέα τιμών πεδίου στον πίνακα llx_societe_remise +MigrationEvents=Μεταφορά συμβάντων για προσθήκη κατόχου συμβάντος στον πίνακα ανάθεσης +MigrationEventsContact=Μετεγκατάσταση συμβάντων για προσθήκη επαφής συμβάντων στον πίνακα ανάθεσης +MigrationRemiseEntity=Ενημερώστε την τιμή πεδίου οντότητας για llx_societe_remise MigrationRemiseExceptEntity=Ενημέρωση φορέα τιμών πεδίου στον πίνακα llx_societe_remise_except MigrationUserRightsEntity=Ενημερώστε την τιμή πεδίου οντότητας των llx_user_rights MigrationUserGroupRightsEntity=Ενημερώστε την τιμή πεδίου οντότητας του llx_usergroup_rights MigrationUserPhotoPath=Μετανάστευση φωτογραφικών διαδρομών για χρήστες MigrationFieldsSocialNetworks=Μετεγκατάσταση χρηστών πεδίων κοινωνικών δικτύων (%s) -MigrationReloadModule=Επαναφόρτωση ενθεμάτων %s -MigrationResetBlockedLog=Επαναφορά της μονάδας BlockedLog για τον αλγόριθμο v7 +MigrationReloadModule=Επαναφόρτωση της ενότητας %s +MigrationResetBlockedLog=Επαναφορά της ενότητας BlockedLog για τον αλγόριθμο v7 MigrationImportOrExportProfiles=Μετεγκατάσταση προφίλ εισαγωγής ή εξαγωγής (%s) ShowNotAvailableOptions=Εμφάνιση μη διαθέσιμων επιλογών HideNotAvailableOptions=Απόκρυψη μη διαθέσιμων επιλογών -ErrorFoundDuringMigration=Παρουσιάστηκε σφάλμα κατά τη διάρκεια της διαδικασίας μετάβασης, επομένως το επόμενο βήμα δεν είναι διαθέσιμο. Για να αγνοήσετε τα σφάλματα, μπορείτε να κάνετε κλικ εδώ , αλλά η εφαρμογή ή ορισμένες λειτουργίες ενδέχεται να μην λειτουργούν σωστά μέχρι να επιλυθούν τα σφάλματα. +ErrorFoundDuringMigration=Αναφέρθηκαν σφάλματα κατά τη διαδικασία μετεγκατάστασης, επομένως το επόμενο βήμα δεν είναι διαθέσιμο. Για να αγνοήσετε τα σφάλματα, μπορείτε να κάντε κλικ εδώ , αλλά η εφαρμογή ή ορισμένες λειτουργίες ενδέχεται να μην λειτουργούν σωστά μέχρι να επιλυθούν τα σφάλματα. YouTryInstallDisabledByDirLock=Η εφαρμογή προσπάθησε να αυτο-αναβαθμιστεί, αλλά οι σελίδες εγκατάστασης / αναβάθμισης έχουν απενεργοποιηθεί για λόγους ασφαλείας (ο κατάλογος μετονομάζεται σε κατάληξη .lock).
    -YouTryInstallDisabledByFileLock=Η εφαρμογή προσπάθησε να αυτο-αναβαθμιστεί, αλλά οι σελίδες εγκατάστασης / αναβάθμισης έχουν απενεργοποιηθεί για λόγους ασφαλείας (με την ύπαρξη ενός αρχείου κλειδώματος install.lock στον κατάλογο εγγράφων dolibarr).
    -ClickHereToGoToApp=Κάντε κλικ εδώ για να μεταβείτε στην αίτησή σας +YouTryInstallDisabledByFileLock=Η εφαρμογή προσπάθησε να αυτο-αναβαθμιστεί, αλλά οι σελίδες εγκατάστασης / αναβάθμισης έχουν απενεργοποιηθεί για λόγους ασφαλείας (με την ύπαρξη ενός αρχείου κλειδώματος install.lock στον κατάλογο εγγράφων του dolibarr).
    +ClickHereToGoToApp=Κάντε κλικ εδώ για να μεταβείτε στην εφαρμογή σας ClickOnLinkOrRemoveManualy=Εάν μια αναβάθμιση βρίσκεται σε εξέλιξη, παρακαλώ περιμένετε. Εάν όχι, κάντε κλικ στον παρακάτω σύνδεσμο. Εάν βλέπετε πάντα την ίδια σελίδα, πρέπει να αφαιρέσετε/μετονομάσετε το αρχείο install.lock στον κατάλογο εγγράφων. -Loaded=Φορτωμένος +Loaded=Φορτωμένο FunctionTest=Δοκιμή λειτουργίας diff --git a/htdocs/langs/el_GR/interventions.lang b/htdocs/langs/el_GR/interventions.lang index 91d2a2cf35b..a88e3346568 100644 --- a/htdocs/langs/el_GR/interventions.lang +++ b/htdocs/langs/el_GR/interventions.lang @@ -9,62 +9,64 @@ ListOfInterventions=Λίστα παρεμβάσεων ActionsOnFicheInter=Δράσεις για την παρέμβαση LastInterventions=Τελευταίες %s παρεμβάσεις AllInterventions=Όλες οι παρεμβάσεις -CreateDraftIntervention=Δημιουργία πρόχειρη -InterventionContact=Παρέμβαση επαφής +CreateDraftIntervention=Δημιουργία πρόχειρης παρέμβασης +InterventionContact=Επαφή παρέμβασης DeleteIntervention=Διαγραφή παρέμβασης ValidateIntervention=Επικύρωση παρέμβασης ModifyIntervention=Τροποποίηση παρέμβασης DeleteInterventionLine=Διαγραφή γραμμής παρέμβασης ConfirmDeleteIntervention=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την παρέμβαση; -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Είστε σίγουρος ότι θέλετε να μεταβάλετε αυτή την παρέμβαση; -ConfirmDeleteInterventionLine=Είστε σίγουρος ότι θέλετε να διαγράψετε αυτή τη γραμμή της παρέμβασης; -ConfirmCloneIntervention=Are you sure you want to clone this intervention? -NameAndSignatureOfInternalContact=Όνομα και υπογραφή των παρεμβαινόντων: +ConfirmValidateIntervention=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την παρέμβαση με το όνομα %s ; +ConfirmModifyIntervention=Είστε σίγουροι ότι θέλετε να μεταβάλετε αυτή την παρέμβαση; +ConfirmDeleteInterventionLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη γραμμή της παρέμβασης; +ConfirmCloneIntervention=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτήν την παρέμβαση; +NameAndSignatureOfInternalContact=Όνομα και υπογραφή του παρεμβαίνοντα: NameAndSignatureOfExternalContact=Όνομα και υπογραφή του πελάτη: DocumentModelStandard=Τυπικό είδος εγγράφου παρέμβασης -InterventionCardsAndInterventionLines=Παρεμβάσεις και τις γραμμές των παρεμβάσεων -InterventionClassifyBilled=Ταξινομήστε τα "Τιμολογημένα" -InterventionClassifyUnBilled=Ταξινομήστε τα μη "Τιμολογημένα" -InterventionClassifyDone=Classify "Done" -StatusInterInvoiced=Τιμολογείται +InterventionCardsAndInterventionLines=Παρεμβάσεις και γραμμές παρεμβάσεων +InterventionClassifyBilled=Ταξινόμηση ως "Τιμολογημένη" +InterventionClassifyUnBilled=Ταξινόμηση ως "Μη τιμολογημένη" +InterventionClassifyDone=Ταξινόμηση ως "Εκτελεσμένη" +StatusInterInvoiced=Τιμολογήθηκε SendInterventionRef=Υποβολή παρέμβασης %s -SendInterventionByMail=Αποστολή παρέμβασης μέσω ηλεκτρονικού ταχυδρομείου -InterventionCreatedInDolibarr=Παρέμβαση %s δημιουργήθηκε -InterventionValidatedInDolibarr=Παρέμβαση %s επικυρώθηκε -InterventionModifiedInDolibarr=Παρέμβαση %s τροποποιήθηκε -InterventionClassifiedBilledInDolibarr=Σετ Παρέμβασης %s όπως τιμολογείται -InterventionClassifiedUnbilledInDolibarr=Σετ Παρέμβαση %s ως μη τιμολογημένο -InterventionSentByEMail=Η παρέμβαση %s στάλθηκε με ηλεκτρονικό ταχυδρομείο -InterventionDeletedInDolibarr=Παρέμβαση %s διαγράφετε -InterventionsArea=Περιοχή παρεμβάσεων -DraftFichinter=Πρόχειρες παρεμβάσεις -LastModifiedInterventions=Latest %s modified interventions -FichinterToProcess=Interventions to process -TypeContact_fichinter_external_CUSTOMER=Σε συνέχεια επαφή με τον πελάτη -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card -PrintProductsOnFichinterDetails=παρεμβάσεις που προέρχονται από παραγγελίες -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders -UseDurationOnFichinter=Κρύβει το πεδίο διάρκειας για εγγραφές παρέμβασης -UseDateWithoutHourOnFichinter=Κρύβει ώρες και λεπτά από το πεδίο ημερομηνίας για τα αρχεία παρέμβασης +SendInterventionByMail=Αποστολή παρέμβασης με email +InterventionCreatedInDolibarr=Η παρέμβαση %s δημιουργήθηκε +InterventionValidatedInDolibarr=Η παρέμβαση %s επικυρώθηκε +InterventionModifiedInDolibarr=Η παρέμβαση %s τροποποιήθηκε +InterventionClassifiedBilledInDolibarr=Η παρέμβαση %s ορίστηκε ως τιμολογημένη +InterventionClassifiedUnbilledInDolibarr=Η παρέμβαση %s ορίστηκε ως μη τιμολογημένη +InterventionSentByEMail=Η παρέμβαση %s εστάλη μέσω email +InterventionDeletedInDolibarr=Η παρέμβαση %s διαγράφηκε +InterventionsArea=Τομέας παρεμβάσεων +DraftFichinter=Προσχέδια παρεμβάσεων +LastModifiedInterventions=Τελευταίες %s τροποποιημένες παρεμβάσεις +FichinterToProcess=Παρεμβάσεις προς επεξεργασία +TypeContact_fichinter_external_CUSTOMER=Επακόλουθη επικοινωνία με τον πελάτη +PrintProductsOnFichinter=Τυπώστε και γραμμές τύπου «προϊόν» (όχι μόνο υπηρεσίες) στην κάρτα παρέμβασης +PrintProductsOnFichinterDetails=παρεμβάσεις που προκύπτουν από παραγγελίες +UseServicesDurationOnFichinter=Χρησιμοποιήστε τη διάρκεια υπηρεσιών για παρεμβάσεις που δημιουργούνται από παραγγελίες +UseDurationOnFichinter=Απόκρυψη του πεδίου διάρκειας για εγγραφές της παρέμβασης +UseDateWithoutHourOnFichinter=Απόκρυψη ωρών και λεπτών του πεδίου ημερομηνίας για εγγραφές παρέμβασης InterventionStatistics=Στατιστικά παρεμβάσεων NbOfinterventions=Αριθ. Καρτών παρέμβασης NumberOfInterventionsByMonth=Αριθμός καρτών παρέμβασης ανά μήνα (ημερομηνία επικύρωσης) -AmountOfInteventionNotIncludedByDefault=Το ποσό της παρέμβασης δεν συμπεριλαμβάνεται εξ ορισμού στο κέρδος (στις περισσότερες περιπτώσεις, τα φύλλα εργασίας χρησιμοποιούνται για τον υπολογισμό του χρόνου που δαπανάται). Προσθέστε την επιλογή PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT σε 1 στο σπίτι-setup-άλλη για να τις συμπεριλάβετε. -InterId=Κωδ παρέμβασης +AmountOfInteventionNotIncludedByDefault=Το ποσό της παρέμβασης δεν περιλαμβάνεται εξ ορισμού στο κέρδος (στις περισσότερες περιπτώσεις, τα φύλλα καταγραφής χρόνου χρησιμοποιούνται για τον υπολογισμό του χρόνου που δαπανάται). Προσθέστε την επιλογή PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT στο 1 στο Αρχική-Ρυθμίσεις-Άλλες Ρυθμίσεις για να τις συμπεριλάβετε. +InterId=Αναγνωριστικό παρέμβασης InterRef=Αναφ παρέμβασης InterDateCreation=Ημερομηνία δημιουργίας παρέμβασης InterDuration=Διάρκεια παρέμβασης InterStatus=Κατάσταση παρέμβασης InterNote=Σημείωση παρέμβασης InterLine=Γραμμή παρέμβασης -InterLineId=Κωδ γραμμής παρέμβασης +InterLineId=Αναγνωριστικό γραμμής παρέμβασης InterLineDate=Ημερομηνία γραμμής παρέμβασης InterLineDuration=Διάρκεια γραμμής παρέμβασης InterLineDesc=Περιγραφή γραμμής παρέμβασης RepeatableIntervention=Πρότυπο παρέμβασης ToCreateAPredefinedIntervention=Για να δημιουργήσετε μια προκαθορισμένη ή επαναλαμβανόμενη παρέμβαση, δημιουργήστε μια κοινή παρέμβαση και μετατρέψτε την σε πρότυπο παρέμβασης -ConfirmReopenIntervention=Είστε βέβαιοι ότι θέλετε να ανοίξετε την παρέμβαση %s ; +ConfirmReopenIntervention=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά την παρέμβαση %s ; GenerateInter=Δημιουργία παρέμβασης FichinterNoContractLinked=Η παρέμβαση %s έχει δημιουργηθεί χωρίς συνδεδεμένο συμβόλαιο. ErrorFicheinterCompanyDoesNotExist=Η εταιρεία δεν υπάρχει. Δεν έχει δημιουργηθεί παρέμβαση. +NextDateToIntervention=Ημερομηνία δημιουργίας επόμενης παρέμβασης +NoIntervention=Καμία παρέμβαση diff --git a/htdocs/langs/el_GR/intracommreport.lang b/htdocs/langs/el_GR/intracommreport.lang index d07c71cbc4f..e8ce0a13ae2 100644 --- a/htdocs/langs/el_GR/intracommreport.lang +++ b/htdocs/langs/el_GR/intracommreport.lang @@ -1,11 +1,11 @@ -Module68000Name = Έκθεση Intracomm +Module68000Name = Intracomm report Module68000Desc = Διαχείριση αναφορών Intracomm (Υποστήριξη για γαλλική μορφή DEB/DES) -IntracommReportSetup = Ρύθμιση μονάδας Intracommreport -IntracommReportAbout = Σχετικά με το intracommreport +IntracommReportSetup = Ρύθμιση ενότητας Intracomm report +IntracommReportAbout = Σχετικά με το intracomm report # Setup INTRACOMMREPORT_NUM_AGREMENT=Αριθμός έγκρισης (εκδίδεται από το cisd του συνημμένου) -INTRACOMMREPORT_TYPE_ACTEUR=Τύπος d'acteur +INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions @@ -14,7 +14,7 @@ INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant # Menu -MenuIntracommReport=Έκθεση Intracomm +MenuIntracommReport=Intracomm report MenuIntracommReportNew=Νέα δήλωση MenuIntracommReportList=Λίστα @@ -22,7 +22,7 @@ MenuIntracommReportList=Λίστα NewDeclaration=Νέα δήλωση Declaration=Δήλωση AnalysisPeriod=Περίοδος ανάλυσης -TypeOfDeclaration=Είδος δήλωσης +TypeOfDeclaration=Τύπος δήλωσης DEB=Δήλωση ανταλλαγής αγαθών (DEB) DES=Δήλωση ανταλλαγής υπηρεσιών (DES) @@ -33,7 +33,7 @@ IntracommReportTitle=Προετοιμασία αρχείου XML σε μορφή IntracommReportList=Λίστα δημιουργούμενων δηλώσεων IntracommReportNumber=Αριθμός δήλωσης IntracommReportPeriod=Περίοδος ανάλυσης -IntracommReportTypeDeclaration=Είδος δήλωσης +IntracommReportTypeDeclaration=Τύπος δήλωσης IntracommReportDownload=λήψη αρχείου XML # Invoice diff --git a/htdocs/langs/el_GR/knowledgemanagement.lang b/htdocs/langs/el_GR/knowledgemanagement.lang index e4668a62caf..c56508e4245 100644 --- a/htdocs/langs/el_GR/knowledgemanagement.lang +++ b/htdocs/langs/el_GR/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Άρθρα KnowledgeRecord = Άρθρο KnowledgeRecordExtraFields = Επιπλέον πεδία για το άρθρο GroupOfTicket=Ομάδα εισιτηρίων -YouCanLinkArticleToATicketCategory=Μπορείτε να συνδέσετε ένα άρθρο με μια ομάδα εισιτηρίων (έτσι το άρθρο θα προταθεί κατά το άνοιγμα νέων εισιτηρίων) +YouCanLinkArticleToATicketCategory=Μπορείτε να συνδέσετε το άρθρο με μια ομάδα ticket (έτσι το άρθρο θα επισημαίνεται σε όλα τα tickets αυτής της ομάδας) SuggestedForTicketsInGroup=Προτείνεται για εισιτήρια όταν η ομάδα είναι SetObsolete=Ορισμός ως ξεπερασμένο diff --git a/htdocs/langs/el_GR/languages.lang b/htdocs/langs/el_GR/languages.lang index c2c080976de..cdac03cd502 100644 --- a/htdocs/langs/el_GR/languages.lang +++ b/htdocs/langs/el_GR/languages.lang @@ -13,6 +13,7 @@ Language_az_AZ=Αζερμπαϊτζανικά Language_bn_BD=Μπενγκάλι Language_bn_IN=Μπενγκάλι (Ινδία) Language_bg_BG=Βουλγαρικά +Language_bo_CN=Θιβετιανά Language_bs_BA=Βοσνιακά Language_ca_ES=Καταλανικά Language_cs_CZ=Τσεχικά @@ -39,6 +40,7 @@ Language_es_AR=Ισπανικά (Αργεντινή) Language_es_BO=Ισπανικά (Βολιβία) Language_es_CL=Ισπανικά (Χιλή) Language_es_CO=Ισπανικά (Κολομβία) +Language_es_CR=Ισπανικά (Κόστα Ρίκα) Language_es_DO=Ισπανικά (Δομινικανή Δημοκρατία) Language_es_EC=Ισπανικά (Εκουαδόρ) Language_es_GT=Ισπανικά (Γουατεμάλα) @@ -93,6 +95,7 @@ Language_nl_BE=Ολλανδικά (Βέλγιο) Language_nl_NL=Ολλανδικά Language_pl_PL=Πολωνικά Language_pt_AO=Πορτογαλικά (Αγκόλα) +Language_pt_MZ=Πορτογαλικά (Μοζαμβίκη) Language_pt_BR=Πορτογαλικά (Βραζιλίας) Language_pt_PT=Πορτογαλικά Language_ro_MD=Ρουμανικά (Μολδαβία) diff --git a/htdocs/langs/el_GR/ldap.lang b/htdocs/langs/el_GR/ldap.lang index 9d4e9462f60..ce71b71b688 100644 --- a/htdocs/langs/el_GR/ldap.lang +++ b/htdocs/langs/el_GR/ldap.lang @@ -20,10 +20,10 @@ LDAPFieldSkypeExample=Παράδειγμα: skypeName UserSynchronized=Συγχρονισμένος χρήστης GroupSynchronized=Συγχρονισμένη ομάδα MemberSynchronized=Συγχρονισμένο μέλος -MemberTypeSynchronized=Συγχρονισμένος τύπος μέλους +MemberTypeSynchronized=Ο τύπος μέλους είναι συγχρονισμένος ContactSynchronized=Επικοινωνία συγχρονισμένη ForceSynchronize=Δυναμικός συγχρονισμός Dolibarr -> LDAP -ErrorFailedToReadLDAP=Αποτυχία ανάγνωσης LDAP βάση δεδομένων. Ελέγξτε LDAP εγκατάσταση module και την προσβασιμότητα της βάσης δεδομένων. +ErrorFailedToReadLDAP=Αποτυχία ανάγνωσης της LDAP βάση δεδομένων. Ελέγξτε τη ρύθμιση της ενότητας LDAP και την προσβασιμότητα της βάσης δεδομένων. PasswordOfUserInLDAP=Κωδικός πρόσβασης χρήστη στο LDAP LDAPPasswordHashType=Τύπος hash κωδικού πρόσβασης LDAPPasswordHashTypeExample=Τύπος hash κωδικού πρόσβασης που χρησιμοποιείται στον διακομιστή diff --git a/htdocs/langs/el_GR/loan.lang b/htdocs/langs/el_GR/loan.lang index b18bbc1acf3..9d6a9874c85 100644 --- a/htdocs/langs/el_GR/loan.lang +++ b/htdocs/langs/el_GR/loan.lang @@ -3,32 +3,32 @@ Loan=Δάνειο Loans=Δάνεια NewLoan=Νέο δάνειο ShowLoan=Εμφάνιση Δανείου -PaymentLoan=Πληρωμή δανείων -LoanPayment=Πληρωμή δανείων +PaymentLoan=Πληρωμή δανείου +LoanPayment=Πληρωμή δανείου ShowLoanPayment=Εμφάνιση Πληρωμής Δανείου -LoanCapital=Κεφάλαιο Κίνησης -Insurance=Ασφάλεια Αυτοκινήτου -Interest=Χρεωστικοί Τόκοι -Nbterms=Αριθμός των όρων -Term=Ορος +LoanCapital=Κεφάλαιο +Insurance=Ασφάλιση +Interest=Επιτόκιο +Nbterms=Αριθμός περιόδων +Term=Περίοδος LoanAccountancyCapitalCode=Κεφάλαιο λογιστικού λογαριασμού LoanAccountancyInsuranceCode=Ασφάλιση λογιστικού λογαριασμού -LoanAccountancyInterestCode=Τόκος λογιστικού λογαριασμού +LoanAccountancyInterestCode=Επιτόκιο λογιστικού λογαριασμού ConfirmDeleteLoan=Επιβεβαίωση διαγραφής δανείου LoanDeleted=Το Δάνειο διαγράφηκε με επιτυχία -ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Πληρωμή δανείου -ListLoanAssociatedProject=Κατάλογος δανείου που σχετίζεται με το έργο -AddLoan=Δημιουργήστε δάνειο +ConfirmPayLoan=Επιβεβαίωση πληρωμής δανείου +LoanPaid=Πληρωμές δανείου +ListLoanAssociatedProject=Λίστα δανείων που σχετίζονται με το έργο +AddLoan=Δημιουργία δανείου FinancialCommitment=Χρηματοδοτική δέσμευση -InterestAmount=Χρεωστικοί Τόκοι -CapitalRemain=Το κεφάλαιο παραμένει -TermPaidAllreadyPaid = Αυτός ο όρος είναι ήδη πληρωμένος -CantUseScheduleWithLoanStartedToPaid = Δεν είναι δυνατή η χρήση του scheduler για ένα δάνειο μετά την έναρξη των πληρωμών -CantModifyInterestIfScheduleIsUsed = Δεν μπορείτε να τροποποιήσετε τον τόκο εάν έχει ξεκινήσει η διαδικασία. +InterestAmount=Επιτόκιο +CapitalRemain=Κεφάλαιο που απομένει +TermPaidAllreadyPaid = Αυτή η περίοδος είναι ήδη πληρωμένη +CantUseScheduleWithLoanStartedToPaid = Δεν είναι δυνατή η δημιουργία χρονοδιαγράμματος δάνειου για το οποίο έχουν ξεκινήσει η πληρωμές +CantModifyInterestIfScheduleIsUsed = Δεν μπορείτε να τροποποιήσετε το επιτόκιο εάν χρησιμοποιείτε χρονοδιάγραμμα # Admin ConfigLoan=Διαμόρφωση της ενότητας δανείου -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Λογιστικό κεφάλαιο λογαριασμού από προεπιλογή -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Λογιστικός τόκος λογαριασμού από προεπιλογή -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Λογιστική ασφάλιση λογαριασμού από προεπιλογή +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί από προεπιλογή για κεφάλαια (ενότητα δανείου) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί από προεπιλογή για τόκους (ενότητα δανείου) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί από προεπιλογή για ασφάλιση (ενότητα δανείου) CreateCalcSchedule=Επεξεργασία οικονομικής δέσμευσης diff --git a/htdocs/langs/el_GR/mailmanspip.lang b/htdocs/langs/el_GR/mailmanspip.lang index 928fc330e69..79a1fb3d63e 100644 --- a/htdocs/langs/el_GR/mailmanspip.lang +++ b/htdocs/langs/el_GR/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Η δοκιμή ενεργοποίησης συνδρομ MailmanDeletionSuccess=Η δοκιμή κατάργησης συνδρομής εκτελέστηκε με επιτυχία SynchroMailManEnabled=Θα πραγματοποιηθεί ενημέρωση του Mailman SynchroSpipEnabled=Θα πραγματοποιηθεί ενημέρωση του Spip -DescADHERENT_MAILMAN_ADMINPW=Κωδικός πρόσβασης διαχειριστή του Mailman  +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Κωδικός πρόσβασης διαχειριστή του Mailman  DescADHERENT_MAILMAN_URL=URL για συνδρομές Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL για κατάργηση συνδρομών Mailman DescADHERENT_MAILMAN_LISTS=Λίστα (ες) για την αυτόματη αναγραφή των νέων μελών (χωρισμένες με κόμμα) diff --git a/htdocs/langs/el_GR/mails.lang b/htdocs/langs/el_GR/mails.lang index cdf90eb63aa..9965724bf0f 100644 --- a/htdocs/langs/el_GR/mails.lang +++ b/htdocs/langs/el_GR/mails.lang @@ -2,8 +2,8 @@ Mailing=EMailing EMailing=EMailing EMailings=EMailings -AllEMailings=Όλα τα μηνύματα ηλεκτρονικής αλληλογραφίας -MailCard=EMailing card +AllEMailings=Όλα τα email +MailCard=Κάρτελα email MailRecipients=Παραλήπτες MailRecipient=Παραλήπτης MailTitle=Περιγραφή @@ -11,83 +11,83 @@ MailFrom=Αποστολέας MailErrorsTo=Σφάλματα σε MailReply=Απάντηση σε MailTo=Παραλήπτης(ες) -MailToUsers=Στο χρήστη (ες) -MailCC=Αντιγραφή σε -MailToCCUsers=Αντιγραφή σε χρήστη(ες) +MailToUsers=Προς +MailCC=Κοινοποίηση σε +MailToCCUsers=Κοινοποίηση σε χρήστη(ες) MailCCC=Cached copy to MailTopic=Θέμα Email MailText=Μήνυμα -MailFile=Επισυναπτώμενα Αρχεία -MailMessage=Κείμενο email +MailFile=Επισυναπτόμενα Αρχεία +MailMessage=Σώμα email SubjectNotIn=Όχι στο θέμα BodyNotIn=Όχι στο Σώμα -ShowEMailing=Show emailing -ListOfEMailings=List of emailings -NewMailing=New emailing -EditMailing=Edit emailing -ResetMailing=Resend emailing -DeleteMailing=Delete emailing -DeleteAMailing=Delete an emailing -PreviewMailing=Preview emailing -CreateMailing=Create emailing -TestMailing=Test email -ValidMailing=Valid emailing +ShowEMailing=Εμφάνιση email +ListOfEMailings=Λίστα email +NewMailing=Νέα αποστολή email +EditMailing=Επεξεργασία email +ResetMailing=Εκ νέου αποστολή email +DeleteMailing=Διαγραφή email +DeleteAMailing=Διαγραφή ενός email +PreviewMailing=Προεπισκόπηση email +CreateMailing=Δημιουργία email +TestMailing=Δοκιμαστικό email +ValidMailing=Επικύρωση email MailingStatusDraft=Προσχέδιο MailingStatusValidated=Επικυρωμένο MailingStatusSent=Απεσταλμένο MailingStatusSentPartialy=Μερικώς απεσταλμένα -MailingStatusSentCompletely=Στάλθηκε πλήρως +MailingStatusSentCompletely=Πλήρως απεσταλμένα MailingStatusError=Σφάλμα -MailingStatusNotSent=Δεν στάλθηκε -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) -MailingSuccessfullyValidated=Το Ηλεκτρονικό ταχυδρομείο επικυρωθίκε με επιτυχία -MailUnsubcribe=Διαγραφή -MailingStatusNotContact=Μην επιτρέπετε την επαφή πια +MailingStatusNotSent=Προσχέδια +MailSuccessfulySent=Το email (από %s προς %s) απεστάλη επιτυχώς +MailingSuccessfullyValidated=Το email επικυρώθηκε με επιτυχία +MailUnsubcribe=Κατάργηση εγγραφής +MailingStatusNotContact=Να μην χρησιμοποιείται MailingStatusReadAndUnsubscribe=Read and unsubscribe -ErrorMailRecipientIsEmpty=Email recipient is empty -WarningNoEMailsAdded=No new Email to add to recipient's list. -ConfirmValidMailing=Are you sure you want to validate this emailing? -ConfirmResetMailing=Προειδοποίηση, ενεργοποιώντας εκ νέου την αποστολή e-mail %s , θα επιτρέψετε την εκ νέου αποστολή αυτού του μηνύματος ηλεκτρονικού ταχυδρομείου σε μια μαζική αποστολή αλληλογραφίας. Είστε βέβαιοι ότι θέλετε να το κάνετε αυτό; -ConfirmDeleteMailing=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου; -NbOfUniqueEMails=Αριθμός μοναδικών μηνυμάτων ηλεκτρονικού ταχυδρομείου -NbOfEMails=Αριθμός Emails -TotalNbOfDistinctRecipients=Number of distinct recipients -NoTargetYet=No recipients defined yet (Go on tab 'Recipients') -NoRecipientEmail=Δεν υπάρχει ηλεκτρονικό ταχυδρομείο παραλήπτη για %s -RemoveRecipient=Remove recipient -YouCanAddYourOwnPredefindedListHere=To create your email selector module, see htdocs/core/modules/mailings/README. -EMailTestSubstitutionReplacedByGenericValues=When using test mode, substitutions variables are replaced by generic values -MailingAddFile=Attach this file -NoAttachedFiles=No attached files -BadEMail=Κακή τιμή για το μήνυμα ηλεκτρονικού ταχυδρομείου +ErrorMailRecipientIsEmpty=Το πεδίο παραλήπτη του email είναι κενό +WarningNoEMailsAdded=Δεν υπάρχει νέο email για προσθήκη στη λίστα παραληπτών. +ConfirmValidMailing=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτό το email; +ConfirmResetMailing=Προειδοποίηση, ενεργοποιώντας εκ νέου την αποστολή e-mail %s , θα επιτρέψετε την εκ νέου αποστολή αυτού του μηνύματος ηλεκτρονικού ταχυδρομείου σε μια μαζική αποστολή αλληλογραφίας. Είστε σίγουροι ότι αυτό θέλετε; +ConfirmDeleteMailing=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το email; +NbOfUniqueEMails=Αριθμός μοναδικών email +NbOfEMails=Αριθμός Email +TotalNbOfDistinctRecipients=Αριθμός διακριτών παραληπτών +NoTargetYet=Δεν έχουν οριστεί ακόμη παραλήπτες (Μεταβείτε στην καρτέλα "Παραλήπτες") +NoRecipientEmail=Δεν υπάρχει διεύθυνση email για %s +RemoveRecipient=Αφαίρεση παραλήπτη +YouCanAddYourOwnPredefindedListHere=Για τη δημιουργία της δικής σας ενότητας επιλογέα email, ανατρέξτε στο htdocs/core/modules/mailings/README. +EMailTestSubstitutionReplacedByGenericValues=Όταν χρησιμοποιείτε τη δοκιμαστική λειτουργία, οι μεταβλητές αντικατάστασης αντικαθίστανται από γενικές τιμές +MailingAddFile=Επισύναψη αρχείου +NoAttachedFiles=Δεν υπάρχουν συνημμένα αρχεία +BadEMail=Λάθος στη διεύθυνση email EMailNotDefined=Το email δεν έχει οριστεί -ConfirmCloneEMailing=Are you sure you want to clone this emailing? -CloneContent=Clone message -CloneReceivers=Cloner recipients +ConfirmCloneEMailing=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτό το email; +CloneContent=Αντιγραφή Μηνύματος +CloneReceivers=Αντιγραφή Παραληπτών DateLastSend=Ημερομηνία τελευταίας αποστολής -DateSending=Date sending -SentTo=Sent to %s +DateSending=Ημερομηνία αποστολής +SentTo=Στάλθηκε σε %s MailingStatusRead=Ανάγνωση -YourMailUnsubcribeOK=Το e - mail %s καταργείται σωστά από τη λίστα αλληλογραφίας -ActivateCheckReadKey=Το κλειδί που χρησιμοποιείται για την κρυπτογράφηση της διεύθυνσης URL που χρησιμοποιείται για τη λειτουργία "Έγγραφο ανάγνωσης" και "Κατάργηση εγγραφής" -EMailSentToNRecipients=Το μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται στους παραλήπτες %s. -EMailSentForNElements=Το ηλεκτρονικό ταχυδρομείο στάλθηκε για στοιχεία %s. -XTargetsAdded=%s παραλήπτες που προστέθηκαν στο κατάλογο των στόχων -OnlyPDFattachmentSupported=Αν τα έγγραφα PDF δημιουργήθηκαν ήδη για τα αντικείμενα που θα αποσταλούν, θα επισυνάπτονται στο ηλεκτρονικό ταχυδρομείο. Εάν όχι, δεν θα αποσταλεί κανένα μήνυμα ηλεκτρονικού ταχυδρομείου (επίσης, σημειώστε ότι μόνο έγγραφα pdf υποστηρίζονται ως συνημμένα στη μαζική αποστολή σε αυτή την έκδοση). -AllRecipientSelected=Οι παραλήπτες της εγγραφής %s έχουν επιλεγεί (αν είναι γνωστό το email τους). -GroupEmails=Ομαδικά μηνύματα ηλεκτρονικού ταχυδρομείου -OneEmailPerRecipient=Ένα μήνυμα ηλεκτρονικού ταχυδρομείου ανά παραλήπτη (από προεπιλογή, επιλέγεται ένα μήνυμα ηλεκτρονικού ταχυδρομείου ανά εγγραφή) -WarningIfYouCheckOneRecipientPerEmail=Προειδοποίηση, αν επιλέξετε αυτό το πλαίσιο, σημαίνει ότι θα αποσταλεί μόνο ένα μήνυμα ηλεκτρονικού ταχυδρομείου για πολλές διαφορετικές εγγραφές, επομένως εάν το μήνυμά σας περιέχει μεταβλητές υποκατάστασης που αναφέρονται σε δεδομένα ενός αρχείου, δεν είναι δυνατή η αντικατάστασή τους. -ResultOfMailSending=Αποτέλεσμα της μαζικής αποστολής ηλεκτρονικού ταχυδρομείου +YourMailUnsubcribeOK=Το email %s έχει καταργηθεί σωστά από τη λίστα αλληλογραφίας +ActivateCheckReadKey=Κλειδί που χρησιμοποιείται για την κρυπτογράφηση διεύθυνσης URL, χρησιμοποιείται για τη λειτουργία "Απόδειξη ανάγνωσης" και "Κατάργηση εγγραφής". +EMailSentToNRecipients=Το email στάλθηκε σε %s παραλήπτες . +EMailSentForNElements=Το email στάλθηκε για %s στοιχεία . +XTargetsAdded=%s παραλήπτες προστέθηκαν στο κατάλογο των στόχων +OnlyPDFattachmentSupported=Εάν τα έγγραφα PDF έχουν ήδη δημιουργηθεί για τα αντικείμενα προς αποστολή, θα επισυναφθούν στο email. Εάν όχι, δεν θα σταλεί email (επίσης, σημειώστε ότι μόνο έγγραφα pdf υποστηρίζονται ως συνημμένα σε μαζική αποστολή σε αυτήν την έκδοση). +AllRecipientSelected=Οι παραλήπτες της %sεγγραφής έχουν επιλεγεί (αν είναι γνωστό το email τους). +GroupEmails=Ομαδικά email +OneEmailPerRecipient=Ένα email ανά παραλήπτη (από προεπιλογή, επιλεγμένο ένα email ανά εγγραφή) +WarningIfYouCheckOneRecipientPerEmail=Προειδοποίηση, εάν επιλέξετε αυτό το πλαίσιο, σημαίνει ότι θα σταλεί μόνο ένα email για πολλές διαφορετικές επιλεγμένες εγγραφές, επομένως, εάν το μήνυμά σας περιέχει μεταβλητές αντικατάστασης που αναφέρονται σε δεδομένα μιας εγγραφής, δεν θα είναι δυνατή η αντικατάστασή τους. +ResultOfMailSending=Αποτέλεσμα μαζικής αποστολής email NbSelected=Ο αριθμός είναι επιλεγμένος NbIgnored=Ο αριθμός αγνοήθηκε NbSent=Ο αριθμός αποστέλλεται -SentXXXmessages=%s αποστέλλεται μήνυμα (ες). +SentXXXmessages=%s μήνυμα(τα) στάλθηκαν. ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Επαφές ανά κατηγορία τρίτων -MailingModuleDescContactsByCategory=Contacts by categories -MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescContactsByCategory=Επαφές ανά κατηγορία +MailingModuleDescContactsByFunction=Επαφές ανά θέση MailingModuleDescEmailsFromFile=Τα μηνύματα ηλεκτρονικού ταχυδρομείου από το αρχείο MailingModuleDescEmailsFromUser=Εισαγωγή μηνυμάτων ηλεκτρονικού ταχυδρομείου από το χρήστη MailingModuleDescDolibarrUsers=Χρήστες με μηνύματα ηλεκτρονικού ταχυδρομείου @@ -96,23 +96,23 @@ SendingFromWebInterfaceIsNotAllowed=Η αποστολή από τη διεπαφ EmailCollectorFilterDesc=Όλα τα φίλτρα πρέπει να ταιριάζουν για να συλλεχθεί ένα email # Libelle des modules de liste de destinataires mailing -LineInFile=Σειρά %s στο αρχείο +LineInFile=Γραμμή %s στο αρχείο RecipientSelectionModules=Ορίζονται αιτήματα για την επιλογή του παραλήπτη MailSelectedRecipients=Επιλεγμένοι αποδέκτες MailingArea=Emailings περιοχή -LastMailings=Latest %s emailings +LastMailings=Τελευταία %s email TargetsStatistics=Στατιστικά στοχων NbOfCompaniesContacts=Μοναδικές επαφές/διευθύνσεις MailNoChangePossible=Παραλήπτες με επικυρωμένες ηλεκτρονικές διευθύνσεις δεν μπορούν να αλλάξουν -SearchAMailing=Αναζήτηση Ταχυδρομείου -SendMailing=Αποστολή ηλεκτρονικού ταχυδρομείου +SearchAMailing=Αναζήτηση αλληλογραφίας +SendMailing=Αποστολή email SentBy=Στάλθηκε από -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: +MailingNeedCommand=Η αποστολή ενός email μπορεί να πραγματοποιηθεί από τη γραμμή εντολών. Ζητήστε από τον διαχειριστή του διακομιστή σας να εκκινήσει την ακόλουθη εντολή για να στείλετε το email σε όλους τους παραλήπτες: MailingNeedCommand2=Μπορείτε, ωστόσο, να τους στείλετε σε απευθείας σύνδεση με την προσθήκη της παραμέτρου MAILING_LIMIT_SENDBYWEB με την αξία του μέγιστου αριθμού των μηνυμάτων ηλεκτρονικού ταχυδρομείου που θέλετε να στείλετε από τη συνεδρία. Για το σκοπό αυτό, πηγαίνετε στο Αρχική - Ρυθμίσεις - Άλλες Ρυθμίσεις. -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ? +ConfirmSendingEmailing=Εάν θέλετε να στείλετε email απευθείας από αυτήν την οθόνη, παρακαλώ επιβεβαιώστε LimitSendingEmailing=Σημείωση: Η αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από διαδικτυακή διεπαφή γίνεται αρκετές φορές για λόγους ασφαλείας και τη λήξη χρόνου, %s παραλήπτες ταυτόχρονα για κάθε συνεδρία αποστολής. TargetsReset=Εκκαθάριση λίστας -ToClearAllRecipientsClickHere=Κάντε κλικ εδώ για να καταργήσετε τη λίστα παραληπτών για αυτό το ηλεκτρονικό ταχυδρομείο +ToClearAllRecipientsClickHere=Κάντε κλικ εδώ για να διαγράψετε τη λίστα παραληπτών για αυτό το email ToAddRecipientsChooseHere=Προσθέστε παραλήπτες επιλέγοντας από τις λίστες NbOfEMailingsReceived=Μαζικές αποστολές έλαβαν NbOfEMailingsSend=Μαζική αλληλογραφία αποστέλλεται @@ -120,13 +120,13 @@ IdRecord=ID record DeliveryReceipt=Delivery Ack. YouCanUseCommaSeparatorForSeveralRecipients=Μπορείτε να χρησιμοποιήσετε το κόμμα σαν διαχωριστή για να καθορίσετε πολλούς παραλήπτες. TagCheckMail=Παρακολούθηση άνοιγμα της αλληλογραφίας -TagUnsubscribe=link διαγραφής +TagUnsubscribe=Σύνδεσμος απεγγραφής TagSignature=Υπογραφή του χρήστη αποστολής EMailRecipient=Email παραλήπτη -TagMailtoEmail=E-mail παραλήπτη (συμπεριλαμβανομένου του συνδέσμου html "mailto:") -NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. +TagMailtoEmail=Email παραλήπτη (συμπεριλαμβανομένου του συνδέσμου html "mailto:") +NoEmailSentBadSenderOrRecipientEmail=Δεν εστάλη email. Λάθος email αποστολέα ή παραλήπτη. Ελέγξτε το προφίλ χρήστη. # Module Notifications -Notifications=Notifications +Notifications=Ειδοποιήσεις NotificationsAuto=Αυτόματες Ειδοποιήσεις NoNotificationsWillBeSent=Δεν έχουν προγραμματιστεί αυτόματες ειδοποιήσεις μέσω mail για αυτή την εταιρεία και συμβάντα αυτού του τύπου ANotificationsWillBeSent=1 αυτόματη ειδοποίηση θα σταλεί μέσω email @@ -141,28 +141,28 @@ YouCanAlsoUseSupervisorKeyword=You can also add the keyword __SUPERVISOR NbOfTargetedContacts=Τρέχων αριθμός των στοχευμένων ηλεκτρονικών μηνυμάτων της επαφής UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other -MailAdvTargetRecipients=Recipients (advanced selection) +MailAdvTargetRecipients=Παραλήπτες (προχωρημένη επιλογή) AdvTgtTitle=Συμπληρώστε τα πεδία εισαγωγής για να επιλέξετε εκ των προτέρων τα τρίτα μέρη ή τις επαφές / διευθύνσεις που θέλετε να στοχεύσετε AdvTgtSearchTextHelp=Χρησιμοποιήστε το ως χαρακτήρες μπαλαντέρ. Για παράδειγμα, για να βρείτε όλα τα στοιχεία όπως jean, joe, jim , μπορείτε να πληκτρολογήσετε %%, μπορείτε επίσης να χρησιμοποιήσετε το σύμβολο ; ως διαχωριστικό για την τιμη και να χρησιμοποιήσετε το σύμβολο ! για να εξαιρέσετε κάποιες τιμές από την αναζήτηση. Για παράδειγμα η αναζήτηση jean;joe;jim%%;!jimo;!jima%% θα στοχεύει σε όλες τις τιμές που περιέχουν jean και joe, σε αυτές που ξεκινούν με jim αλλά όχι με jimo και σε καμιά που ξεκινάει με jima -AdvTgtSearchIntHelp=Use interval to select int or float value +AdvTgtSearchIntHelp=Χρησιμοποιήστε το διάστημα για να επιλέξετε τιμή int ή float AdvTgtMinVal=Ελάχιστη τιμή AdvTgtMaxVal=Μέγιστη τιμή AdvTgtSearchDtHelp=Use interval to select date value AdvTgtStartDt=Start dt. AdvTgtEndDt=End dt. AdvTgtTypeOfIncudeHelp=Στόχευση ηλεκτρονικού ταχυδρομείου τρίτου μέρους και ηλεκτρονικού ταχυδρομείου της επαφής τρίτου μέρους, ή απλώς ηλεκτρονικού ταχυδρομείου τρίτου μέρους ή απλά ηλεκτρονικού ταχυδρομείου επικοινωνίας -AdvTgtTypeOfIncude=Type of targeted email +AdvTgtTypeOfIncude=Τύπος στοχευμένου email AdvTgtContactHelp=Use only if you target contact into "Type of targeted email" -AddAll=Add all -RemoveAll=Remove all -ItemsCount=Item(s) -AdvTgtNameTemplate=Filter name -AdvTgtAddContact=Προσθέστε μηνύματα ηλεκτρονικού ταχυδρομείου σύμφωνα με τα κριτήρια -AdvTgtLoadFilter=Load filter -AdvTgtDeleteFilter=Delete filter -AdvTgtSaveFilter=Save filter -AdvTgtCreateFilter=Create filter -AdvTgtOrCreateNewFilter=Name of new filter +AddAll=Προσθήκη όλων +RemoveAll=Αφαίρεση όλων +ItemsCount=Αντικείμενο(α) +AdvTgtNameTemplate=Όνομα φίλτρου +AdvTgtAddContact=Προσθέστε email σύμφωνα με τα κριτήρια +AdvTgtLoadFilter=Φόρτωση φίλτρου +AdvTgtDeleteFilter=Διαγραφή φίλτρου +AdvTgtSaveFilter=Αποθήκευση φίλτρου +AdvTgtCreateFilter=Δημιουργία φίλτρου +AdvTgtOrCreateNewFilter=Όνομα νέου φίλτρου NoContactWithCategoryFound=Δεν βρέθηκε κατηγορία που να συνδέεται με ορισμένες επαφές/διευθύνσεις NoContactLinkedToThirdpartieWithCategoryFound=Δεν βρέθηκε κατηγορία που να συνδέεται με κάποια τρίτα μέρη OutGoingEmailSetup=Εξερχόμενα email @@ -178,3 +178,4 @@ IsAnAnswer=Είναι μια απάντηση ενός αρχικού email RecordCreatedByEmailCollector=Εγγραφή που δημιουργήθηκε από τον Συλλέκτη Email %s από το email %s DefaultBlacklistMailingStatus=Προεπιλεγμένη τιμή για το πεδίο '%s' κατά τη δημιουργία μιας νέας επαφής DefaultStatusEmptyMandatory=Κενό αλλά υποχρεωτικό +WarningLimitSendByDay=ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η ρύθμιση ή η σύμβαση της εγκατάστασης σας περιορίζει τον αριθμό των email σας ανά ημέρα σε %s . Η προσπάθεια αποστολής περισσότερων ενδέχεται να έχει ως αποτέλεσμα την επιβράδυνση ή την αναστολή της εγκατάστασης σας. Επικοινωνήστε με την υποστήριξή σας εάν χρειάζεστε υψηλότερο όριο. diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 9256f72576a..7ded4b3fd62 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,11 +34,12 @@ NoTemplateDefined=Δεν υπάρχει διαθέσιμο πρότυπο για AvailableVariables=Διαθέσιμες μεταβλητές αντικατάστασης NoTranslation=Δεν μεταφράστηκε Translation=Μετάφραση +Translations=Μεταφράσεις CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Εισαγάγετε μη κενά κριτήρια αναζήτησης EnterADateCriteria=Εισαγάγετε κριτήρια ημερομηνίας -NoRecordFound=Δεν υπάρχουν καταχωρημένα στοιχεία -NoRecordDeleted=Δεν διαγράφηκε εγγραφή +NoRecordFound=Κανένα αρχείο δεν βρέθηκε +NoRecordDeleted=Κανένα αρχείο δεν διαγράφηκε NotEnoughDataYet=Τα δεδομένα δεν είναι επαρκή NoError=Κανένα Σφάλμα Error=Σφάλμα @@ -48,28 +55,28 @@ ErrorUnknown=Άγνωστο σφάλμα ErrorSQL=Σφάλμα SQL ErrorLogoFileNotFound=Το λογότυπο '%s' δεν βρέθηκε ErrorGoToGlobalSetup=Μεταβείτε στη ρύθμιση "Εταιρεία/Οργανισμός" για να το διορθώσετε -ErrorGoToModuleSetup=Πηγαίνετε στις ρυθμίσεις του αρθρώματος για να το διορθώσετε. +ErrorGoToModuleSetup=Πηγαίνετε στις ρυθμίσεις της ενότητας για να το διορθώσετε. ErrorFailedToSendMail=Αποτυχία αποστολής mail (αποστολέας=%s, παραλήπτης=%s) ErrorFileNotUploaded=Το αρχείο δεν φορτώθηκε. Βεβαιωθείτε ότι το μέγεθος δεν υπερβαίνει το μέγιστο επιτρεπόμενο όριο, ότι υπάρχει διαθέσιμος χώρος στο δίσκο και ότι δεν υπάρχει ήδη ένα αρχείο με το ίδιο όνομα σε αυτόν τον κατάλογο. ErrorInternalErrorDetected=Εντοπίστηκε Σφάλμα ErrorWrongHostParameter=Λάθος παράμετρος διακομιστή -ErrorYourCountryIsNotDefined=Η χώρα σας δεν έχει οριστεί. Μεταβείτε στην Αρχική σελίδα-Επεξεργασία-Επεξεργασία και δημοσιεύστε την φόρμα πάλι. -ErrorRecordIsUsedByChild=Αποτυχία κατάργησης αυτής της εγγραφής. Αυτή η εγγραφή χρησιμοποιείται από τουλάχιστον ένα παιδικό αρχείο. -ErrorWrongValue=Εσφαλμένη Τιμή -ErrorWrongValueForParameterX=Εσφαλμένη Τιμή για την παράμετρο %s +ErrorYourCountryIsNotDefined=Η χώρα σας δεν έχει οριστεί. Μεταβείτε στην Αρχική-Ρυθμίσεις-Εταιρεία / Οργανισμός και δημοσιεύστε την φόρμα πάλι. +ErrorRecordIsUsedByChild=Αποτυχία κατάργησης αυτής της εγγραφής. Αυτή η εγγραφή χρησιμοποιείται από τουλάχιστον ένα θυγατρικό αρχείο. +ErrorWrongValue=Λάθος τιμή +ErrorWrongValueForParameterX=Λανθασμένη τιμή για την παράμετρο %s ErrorNoRequestInError=Δεν υπάρχει αίτημα στο Σφάλμα ErrorServiceUnavailableTryLater=Η υπηρεσία δεν είναι διαθέσιμη προς το παρόν. Δοκιμάστε ξανά αργότερα.  -ErrorDuplicateField=Διπλόεγγραφή (Διπλή τιμή σε πεδίο με ξεχωριστές τιμές) -ErrorSomeErrorWereFoundRollbackIsDone=Εντοπίστηκαν ορισμένες σφάλματα. Οι αλλαγές έχουν επανέλθει. -ErrorConfigParameterNotDefined=Η παράμετρος %s δεν έχει οριστεί στο αρχείο ρυθμίσεων Dolibarr conf.php . +ErrorDuplicateField=Διπλότυπη τιμή σε ένα μοναδικό πεδίο +ErrorSomeErrorWereFoundRollbackIsDone=Βρέθηκαν ορισμένα σφάλματα. Οι αλλαγές έχουν ανατραπεί. +ErrorConfigParameterNotDefined=Η παράμετρος %s δεν έχει οριστεί στο αρχείο διαμόρφωσης του Dolibarr conf.php. ErrorCantLoadUserFromDolibarrDatabase=Αποτυχία εύρεσης του χρήστη %s στην βάση δεδομένων του Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Σφάλμα, δεν ορίστηκαν ποσοστά φόρων για την χώρα '%s'. ErrorNoSocialContributionForSellerCountry=Σφάλμα, καμία κοινωνική εισφορά / φόροι ορίζονται για τη χώρα '%s'. ErrorFailedToSaveFile=Σφάλμα, αποτυχία αποθήκευσης αρχείου -ErrorCannotAddThisParentWarehouse=Προσπαθείτε να προσθέσετε μια γονική αποθήκη η οποία είναι ήδη παιδί μιας υπάρχουσας αποθήκης +ErrorCannotAddThisParentWarehouse=Προσπαθείτε να προσθέσετε μια γονική αποθήκη που είναι ήδη θυγατρική μιας υπάρχουσας αποθήκης FieldCannotBeNegative=Το πεδίο "%s" δεν μπορεί να είναι αρνητικό MaxNbOfRecordPerPage=Μέγιστος αριθμός εγγραφών ανά σελίδα -NotAuthorized=Δεν έχετε εξουσιοδότηση για να το πραγματοποιήσετε +NotAuthorized=Δεν έχετε εξουσιοδότηση(δικαιώματα) για να κάνετε αυτό. SetDate=Ορισμός ημερομηνίας SelectDate=Επιλέξτε μια ημερομηνία SeeAlso=Δείτε επίσης %s @@ -82,9 +89,9 @@ FileRenamed=Το αρχείο μετονομάστηκε με επιτυχία FileGenerated=Το αρχείο δημιουργήθηκε με επιτυχία FileSaved=Το αρχείο αποθηκεύτηκε με επιτυχία FileUploaded=Το αρχείο ανέβηκε με επιτυχία -FileTransferComplete=Τα αρχεία που ανεβάζετε με επιτυχία -FilesDeleted=Τα αρχεία διαγράφηκαν με επιτυχία -FileWasNotUploaded=Επιλέχθηκε ένα αρχείο για επισύναψη, αλλά δεν έχει μεταφερθεί ακόμη. Πατήστε στο "Επισύναψη Αρχείου". +FileTransferComplete=Τα αρχεία μεταφορτωθήκαν επιτυχώς +FilesDeleted=Τα αρχεία διαγράφηκαν επιτυχώς +FileWasNotUploaded=Ένα αρχείο έχει επιλεγεί για επισύναψη αλλά δεν έχει μεταφορτωθεί ακόμη. Κάντε κλικ στο "Επισύναψη αρχείου" για αυτό. NbOfEntries=Αριθ. Εγγραφών GoToWikiHelpPage=Online βοήθεια (απαιτείται σύνδεση στο internet) GoToHelpPage=Βοήθεια @@ -105,20 +112,20 @@ HomeArea=Αρχική LastConnexion=Τελευταία σύνδεση PreviousConnexion=Προηγούμενη σύνδεση PreviousValue=Προηγούμενη τιμή -ConnectedOnMultiCompany=Σύνδεση στην οντότητα +ConnectedOnMultiCompany=Συνδεδεμένο στο περιβάλλον ConnectedSince=Σύνδεση από -AuthenticationMode=Μέθοδος σύνδεσης -RequestedUrl=Αιτηθέν URL -DatabaseTypeManager=Τύπος διαχειριστή βάσης δεδομένων -RequestLastAccessInError=Σφάλμα στην αίτηση πρόσβασης της τελευταία βάσης δεδομένων -ReturnCodeLastAccessInError=Επιστρεφόμενος κωδικός για το σφάλμα στην αίτηση πρόσβασης της τελευταίας βάση δεδομένων -InformationLastAccessInError=Πληροφορίες για το σφάλμα στην αίτηση πρόσβασης της τελευταίας βάση δεδομένων -DolibarrHasDetectedError=Το Dolibarr ανίχνευσε τεχνικό σφάλμα -YouCanSetOptionDolibarrMainProdToZero=Μπορείτε να διαβάσετε το αρχείο καταγραφής ή να ορίσετε την επιλογή $ dolibarr_main_prod στο '0' στο αρχείο ρυθμίσεων για να λάβετε περισσότερες πληροφορίες. +AuthenticationMode=Λειτουργία ελέγχου ταυτότητας +RequestedUrl=URL που ζητήθηκε +DatabaseTypeManager=Διαχειριστής τύπου βάσης δεδομένων +RequestLastAccessInError=Τελευταίο σφάλμα αιτήματος πρόσβασης στη βάση δεδομένων +ReturnCodeLastAccessInError=Κωδικός επιστροφής για το τελευταίο σφάλμα αιτήματος πρόσβασης στη βάση δεδομένων +InformationLastAccessInError=Πληροφορίες για το τελευταίο σφάλμα αιτήματος πρόσβασης στη βάση δεδομένων +DolibarrHasDetectedError=Το Dolibarr εντόπισε ένα τεχνικό σφάλμα +YouCanSetOptionDolibarrMainProdToZero=Μπορείτε να διαβάσετε το αρχείο καταγραφής ή να ορίσετε την επιλογή $dolibarr_main_prod σε '0' στο αρχείο διαμόρφωσης για να λάβετε περισσότερες πληροφορίες. InformationToHelpDiagnose=Αυτές οι πληροφορίες μπορεί να είναι χρήσιμες για διαγνωστικούς σκοπούς (μπορείτε να ορίσετε την επιλογή $dolibarr_main_prod σε '1' για να αποκρύψετε ευαίσθητες πληροφορίες) -MoreInformation=Περισσότερς Πληροφορίες +MoreInformation=Περισσότερες πληροφορίες TechnicalInformation=Τεχνικές πληροφορίες -TechnicalID=Τεχνική ταυτότητα ID +TechnicalID=ID Τεχνικής πληροφορίας LineID=Αναγνωριστικό γραμμής NotePublic=Σημειώσεις (δημόσιες) NotePrivate=Σημειώσεις (προσωπικές) @@ -136,7 +143,7 @@ Home=Αρχική Help=Βοήθεια OnlineHelp=Online Βοήθεια PageWiki=Σελίδα Wiki -MediaBrowser=Πρόγραμμα περιήγησης μέσων +MediaBrowser=Πρόγραμμα περιήγησης πολυμέσων Always=Πάντα Never=Ποτέ Under=κάτω @@ -163,7 +170,7 @@ Close=Κλείσιμο CloseAs=Αλλαγή κατάστασης σε CloseBox=Καταργήστε το γραφικό στοιχείο από τον πίνακα ελέγχου Confirm=Επιβεβαίωση -ConfirmSendCardByMail=Θέλετε πραγματικά να στείλετε το περιεχόμενο αυτής της καρτέλας μέσω ταχυδρομείου στο %s ; +ConfirmSendCardByMail=Θέλετε πραγματικά να στείλετε το περιεχόμενο αυτής της καρτέλας μέσω email στο %s ; Delete=Διαγραφή Remove=Αφαίρεση Resiliate=Τερματισμός @@ -179,16 +186,16 @@ SaveAs=Αποθήκευση Ως SaveAndStay=Αποθήκευση και Νέο SaveAndNew=Αποθήκευση και Νέο TestConnection=Δοκιμή σύνδεσης -ToClone=Κλωνοποίηση -ConfirmCloneAsk=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε το αντικείμενο %s ; -ConfirmClone=Επιλέξτε τα δεδομένα που θέλετε να κλωνοποιήσετε: -NoCloneOptionsSpecified=Δεν καθορίστηκαν δεδομένα προς κλωνοποίηση. +ToClone=Αντιγραφή +ConfirmCloneAsk=Είστε σίγουροι ότι θέλετε να αντιγράψετε το αντικείμενο %s ; +ConfirmClone=Επιλέξτε τα δεδομένα που θέλετε να αντιγράψετε: +NoCloneOptionsSpecified=Δεν καθορίστηκαν δεδομένα προς αντιγραφή Of=του Go=Μετάβαση Run=Εκτέλεση CopyOf=Αντίγραφο του Show=Εμφάνιση -Hide=Κρύβω +Hide=Απόκρυψη ShowCardHere=Εμφάνιση Κάρτας Search=Αναζήτηση SearchOf=Αναζήτηση @@ -199,13 +206,14 @@ Valid=Έγκυρο Approve=Έγκριση Disapprove=Δεν εγκρίνεται ReOpen=Εκ νέου άνοιγμα -Upload=Ανεβάστε +OpenVerb=Ανοιχτά +Upload=Μεταφόρτωση ToLink=Σύνδεσμος Select=Επιλογή SelectAll=Επιλογή όλων Choose=Επιλογή Resize=Αλλαγή διαστάσεων -ResizeOrCrop=Αλλαγή μεγέθους ή περικοπή +ResizeOrCrop=Αλλαγή διαστάσεων ή Περικοπή Recenter=Επαναφορά στο κέντρο Author=Συντάκτης User=Χρήστης @@ -215,9 +223,9 @@ Groups=Ομάδες UserGroup=Ομάδα χρηστών UserGroups=Ομάδες χρηστών NoUserGroupDefined=Κανένας χρήστης δεν ορίζεται στην ομάδα -Password=Συνθηματικό -PasswordRetype=Επαναπληκτρολόγηση κωδικού -NoteSomeFeaturesAreDisabled=Πολλές δυνατότητες είναι απενεργοποιημένες σε αυτή την παρουσίαση. +Password=Κωδικός πρόσβασης +PasswordRetype=Επαναλάβετε τον κωδικό πρόσβασης σας +NoteSomeFeaturesAreDisabled=Σημειώστε ότι πολλές δυνατότητες/ενότητες είναι απενεργοποιημένες σε αυτήν την επίδειξη. Name=Όνομα NameSlashCompany=Όνομα / Εταιρεία Person=Άτομο @@ -241,14 +249,14 @@ Info=Ιστορικό Family=Οικογένεια Description=Περιγραφή Designation=Περιγραφή -DescriptionOfLine=Description of line -DateOfLine=Ημερομηνία της γραμμής -DurationOfLine=Διάρκεια της γραμμής +DescriptionOfLine=Περιγραφή γραμμής +DateOfLine=Ημερομηνία γραμμής +DurationOfLine=Διάρκεια γραμμής ParentLine=Αναγνωριστικό γονικής γραμμής -Model=Πρότυπο Doc +Model=Πρότυπο εγγράφου DefaultModel=Προεπιλεγμένο πρότυπο εγγράφου Action=Ενέργεια -About=Πληροφορίες +About=Σχετικά με Number=Αριθμός NumberByMonth=Αναφορές συνόλων ανά μήνα AmountByMonth=Ποσό ανά μήνα @@ -259,8 +267,8 @@ Logout=Αποσύνδεση NoLogoutProcessWithAuthMode=Δεν εφαρμόζεται το χαρακτηριστικό αποσύνδεσης με λειτουργία ελέγχου ταυτότητας %s Connection=Είσοδος Setup=Ρυθμίσεις -Alert=Συναγερμός -MenuWarnings=Συναγερμοί +Alert=Ειδοποίηση +MenuWarnings=Ειδοποιήσεις Previous=Προηγούμ. Next=Επόμ. Cards=Καρτέλες @@ -300,9 +308,9 @@ RegistrationDate=Ημερομηνία Εγγραφής UserCreation=Χρήστης δημιουργίας UserModification=Χρήστης τροποποίησης UserValidation=Χρήστης επικύρωσης -UserCreationShort=Δημιουργία χρήστη -UserModificationShort=Τροποποιών χρήστης -UserValidationShort=Εγκυρος. χρήστης +UserCreationShort=Χρήστης δημιουργίας +UserModificationShort=Χρήστης τροποποίησης +UserValidationShort=Χρήστης επικύρωσης DurationYear=έτος DurationMonth=μήνας DurationWeek=εβδομάδα @@ -333,12 +341,12 @@ Tomorrow=Αύριο Morning=Πρωί Afternoon=Απόγευμα Quadri=Τετραπλής -MonthOfDay=Μήνας από την ημέρα +MonthOfDay=Μήνας της ημέρας DaysOfWeek=Ημέρες της εβδομάδας HourShort=Ω -MinuteShort=mn -Rate=Βαθμός -CurrencyRate=Ποσοστό μετατροπής νομίσματος +MinuteShort=λ +Rate=Τιμή +CurrencyRate=Τιμή μετατροπής νομίσματος UseLocalTax=με Φ.Π.Α Bytes=Bytes KiloBytes=Kilobytes @@ -355,7 +363,7 @@ Tb=Tb Cut=Αποκοπή Copy=Αντιγραφή Paste=Επικόλληση -Default=Προκαθορ. +Default=Προκαθορισμένο DefaultValue=Προκαθορισμένη Τιμή DefaultValues=Προεπιλεγμένες τιμές / φίλτρα / ταξινόμηση Price=Τιμή @@ -365,12 +373,12 @@ UnitPriceHT=Τιμή μονάδας (εκτός) UnitPriceHTCurrency=Τιμή μονάδας (εκτός) (νόμισμα) UnitPriceTTC=Τιμή Μονάδος PriceU=Τιμή μον. -PriceUHT=Τιμή μον. -PriceUHTCurrency=Τιμή μονάδας (καθαρό) (νόμισμα) +PriceUHT=Τιμή μον. (καθαρή) +PriceUHTCurrency=Τιμή μον. (καθαρή) (νόμισμα) PriceUTTC=Τιμή μον. (συμπ. Φ.Π.Α.) Amount=Ποσό AmountInvoice=Ποσό Τιμολογίου -AmountInvoiced=Ποσό τιμολογημένο +AmountInvoiced=Ποσό που τιμολογήθηκε AmountInvoicedHT=Ποσό που τιμολογήθηκε (χωρίς φόρο) AmountInvoicedTTC=Ποσό που τιμολογήθηκε (συμπ. φόρου) AmountPayment=Ποσό Πληρωμής @@ -380,7 +388,7 @@ AmountHT=Ποσό (εκτός φόρου) AmountTTC=Ποσό (με Φ.Π.Α.) AmountVAT=Ποσό Φόρου MulticurrencyAlreadyPaid=Ήδη πληρωμένο, αρχικό νόμισμα -MulticurrencyRemainderToPay=Πληρώστε, αρχικό νόμισμα +MulticurrencyRemainderToPay=Υπόλοιπο προς πληρωμή, αρχικό νόμισμα MulticurrencyPaymentAmount=Ποσό πληρωμής, αρχικό νόμισμα MulticurrencyAmountHT=Ποσό (εκτός φόρου), αρχικό νόμισμα MulticurrencyAmountTTC=Ποσό (με φόρους), αρχικό νόμισμα @@ -392,8 +400,8 @@ AmountLT1ES=Ποσό RE AmountLT2ES=Ποσό IRPF AmountTotal=Συνολικό Ποσό AmountAverage=Μέσο Ποσό -PriceQtyMinHT=Τιμή ελάχιστη ποσότητα. (εκτός φόρου) -PriceQtyMinHTCurrency=Τιμή ελάχιστη ποσότητα. (εκτός φόρου) (νόμισμα) +PriceQtyMinHT=Τιμή ελάχιστης ποσότητας (εκτός φόρου) +PriceQtyMinHTCurrency=Τιμή ελάχιστης ποσότητας (εκτός φόρου) (νόμισμα) PercentOfOriginalObject=Ποσοστό του αρχικού αντικειμένου AmountOrPercent=Ποσό ή ποσοστό Percentage=Ποσοστό @@ -401,33 +409,33 @@ Total=Σύνολο SubTotal=Υποσύνολο TotalHTShort=Σύνολο (εκτός) TotalHT100Short=Σύνολο 100%% (εκτός) -TotalHTShortCurrency=Σύνολο (εξαιρουμένου του νομίσματος) +TotalHTShortCurrency=Σύνολο (χωρίς Φ.Π.Α. σε νόμισμα) TotalTTCShort=Σύνολο (με Φ.Π.Α.) TotalHT=Σύνολο χωρίς ΦΠΑ -TotalHTforthispage=Συνολικά (χωρίς φόρο) για αυτήν τη σελίδα +TotalHTforthispage=Σύνολο (χωρίς φόρο) για αυτήν τη σελίδα Totalforthispage=Σύνολο για αυτή τη σελίδα TotalTTC=Σύνολο (με Φ.Π.Α.) -TotalTTCToYourCredit=Σύνολο (με ΦΠΑ) στο υπόλοιπο +TotalTTCToYourCredit=Σύνολο (συμπ. φόρου) στην πίστωσή σας TotalVAT=Συνολικός Φ.Π.Α. TotalVATIN=Σύνολο IGST -TotalLT1=Συνολικός Φ.Π.Α. 2 -TotalLT2=Συνολικός Φ.Π.Α. 3 +TotalLT1=Συνολικός φόρος 2 +TotalLT2=Συνολικός φόρος 3 TotalLT1ES=Σύνολο RE TotalLT2ES=Σύνολο IRPF TotalLT1IN=Σύνολο CGST TotalLT2IN=Σύνολο SGST -HT=Excl. φόρος -TTC=με Φ.Π.Α -INCVATONLY=Inc. ΦΠΑ -INCT=Inc. όλους τους φόρους +HT=Εκτός φόρων +TTC=Με Φ.Π.Α. +INCVATONLY=Με Φ.Π.Α. +INCT=Με όλους τους φόρους VAT=Φ.Π.Α VATIN=IGST VATs=Φόροι επί των πωλήσεων VATINs=Φόροι IGST LT1=Φόρος πωλήσεων 2 -LT1Type=Φόρος πωλήσεων 2 τύπου +LT1Type=Τύπος φόρου πωλήσεων 2 LT2=Φόρος πωλήσεων 3 -LT2Type=Φόρος πωλήσεων 3 τύπου +LT2Type=Τύπος φόρου πωλήσεων 3 LT1ES=ΑΠΕ LT2ES=IRPF LT1IN=CGST @@ -437,12 +445,12 @@ VATRate=Συντελεστής Φ.Π.Α. RateOfTaxN=Συντελεστής φόρου %s VATCode=Κωδικός φορολογικού συντελεστή VATNPR=Φορολογικός συντελεστής NPR -DefaultTaxRate=Προκαθορισμένος συντελεστής φορολογίας -Average=Μ.Ο. +DefaultTaxRate=Προκαθορισμένος φορολογικός συντελεστής +Average=Μέση τιμή Sum=Σύνολο Delta=Δέλτα StatusToPay=Προς πληρωμή -RemainToPay=Πληρώστε +RemainToPay=Υπόλοιπο προς πληρωμή Module=Ενότητα / Εφαρμογή Modules=Ενότητες / Εφαρμογές Option=Επιλογή @@ -451,15 +459,15 @@ List=Λίστα FullList=Πλήρης Λίστα FullConversation=Πλήρης συνομιλία Statistics=Στατιστικά -OtherStatistics=Οι άλλες στατιστικές +OtherStatistics=Άλλα στατιστικά στοιχεία Status=Κατάσταση Favorite=Αγαπημένα -ShortInfo=Info. -Ref=Κωδ. -ExternalRef=Κωδ. extern +ShortInfo=Πληροφορίες +Ref=Αναφ. +ExternalRef=εξωτερική Αναφ. RefSupplier=Αναφ. Προμηθευτή -RefPayment=Κωδ. πληρωμής -CommercialProposalsShort=Εμπορικές προτάσεις +RefPayment=Αναφ. πληρωμής +CommercialProposalsShort=Εμπορικές προσφορές Comment=Σχόλιο Comments=Σχόλια ActionsToDo=Ενέργειες που πρέπει να γίνουν @@ -470,24 +478,25 @@ ActionRunningNotStarted=Δεν έχουν ξεκινήσει ActionRunningShort=Σε εξέλιξη ActionDoneShort=Ολοκληρωμένες ActionUncomplete=Ατελής -LatestLinkedEvents=Τα πιο πρόσφατα συνδεδεμένα συμβάντα %s +LatestLinkedEvents=Τελευταία %s συνδεδεμένα συμβάντα CompanyFoundation=Εταιρεία / Οργανισμός Accountant=Λογιστής -ContactsForCompany=Επαφές για αυτό το στοιχείο -ContactsAddressesForCompany=Επαφές/Διευθύνσεις για αυτό το στοιχείο. -AddressesForCompany=Διευθύνσεις για αυτό τον Πελ./Προμ. -ActionsOnCompany=Εκδηλώσεις για αυτό το τρίτο μέρος -ActionsOnContact=Εκδηλώσεις για αυτήν την επαφή / διεύθυνση -ActionsOnContract=Εκδηλώσεις για αυτή τη σύμβαση -ActionsOnMember=Εκδηλώσεις σχετικά με αυτό το μέλος -ActionsOnProduct=Εκδηλώσεις σχετικά με αυτό το προϊόν -NActionsLate=%s καθυστερ. +ContactsForCompany=Επαφές για αυτό το τρίτο μέρος +ContactsAddressesForCompany=Επαφές/διευθύνσεις για αυτό το τρίτο μέρος +AddressesForCompany=Διευθύνσεις για αυτό το τρίτο μέρος +ActionsOnCompany=Ενέργειες για αυτό το τρίτο μέρος +ActionsOnContact=Ενέργειες για αυτήν την επαφή / διεύθυνση +ActionsOnContract=Ενέργειες για αυτή τη σύμβαση +ActionsOnMember=Ενέργειες σχετικά με αυτό το μέλος +ActionsOnProduct=Ενέργειες σχετικά με αυτό το προϊόν +ActionsOnAsset=Ενέργειες για αυτό το πάγιο στοιχείο +NActionsLate=%s σε καθυστέρηση ToDo=Να γίνουν -Completed=Ολοκληρώθηκε το +Completed=Ολοκληρωμένα Running=Σε εξέλιξη RequestAlreadyDone=Η αίτηση έχει ήδη καταγραφεί Filter=Φίλτρο -FilterOnInto=Κριτήρια αναζήτησης '%s' σε πεδίο +FilterOnInto=Κριτήρια αναζήτησης '%s' στα πεδία%s RemoveFilter=Αφαίρεση φίλτρου ChartGenerated=Το γράφημα δημιουργήθηκε ChartNotGenerated=Το γράφημα δεν δημιουργήθηκε @@ -497,21 +506,21 @@ Duration=Διάρκεια TotalDuration=Συνολική Διάρκεια Summary=Σύνοψη DolibarrStateBoard=Στατιστικά στοιχεία βάσης δεδομένων -DolibarrWorkBoard=Άνοιγμα αντικειμένων +DolibarrWorkBoard=Ανοιχτά αντικείμενα NoOpenedElementToProcess=Δεν υπάρχει ανοιχτό στοιχείο για επεξεργασία -Available=Σε διάθεση -NotYetAvailable=Δεν είναι ακόμη σε διάθεση -NotAvailable=Χωρίς διάθεση +Available=Διαθέσιμα +NotYetAvailable=Δεν είναι ακόμη διαθέσιμα +NotAvailable=Μη διαθέσιμα Categories=Ετικέτες/Κατηγορίες Category=Ετικέτα/Κατηγορία -By=Από +By=Ανά From=Από FromDate=Από FromLocation=Από to=πρός -To=πρός -ToDate=πρός -ToLocation=πρός +To=Προς +ToDate=έως +ToLocation=Προς at=στο and=και or=ή @@ -535,19 +544,19 @@ Drafts=Προσχέδια StatusInterInvoiced=Τιμολογήθηκε Validated=Επικυρωμένο ValidatedToProduce=Επικυρώθηκε (Για παραγωγή) -Opened=Άνοιγμα -OpenAll=Άνοιγμα (Όλα) +Opened=Ανοιχτά +OpenAll=Ανοιχτό (Όλα) ClosedAll=Κλειστό (Όλα) New=Νέο Discount=Έκπτωση Unknown=Άγνωστο General=Γενικά Size=Μέγεθος -OriginalSize=Αυθεντικό μέγεθος +OriginalSize=Αρχικό μέγεθος Received=Παραλήφθηκε -Paid=Πληρωμές -Topic=Αντικείμενο -ByCompanies=Ανά στοιχείο +Paid=Πληρωμένα +Topic=Θέμα +ByCompanies=Ανά τρίτα μέρη ByUsers=Ανα χρήστη Links=Σύνδεσμοι Link=Σύνδεσμος @@ -555,20 +564,20 @@ Rejects=Απορρίψεις Preview=Προεπισκόπηση NextStep=Επόμενο Βήμα Datas=Δεδομένα -None=None -NoneF=None +None=Κανένα +NoneF=Καμία NoneOrSeveral=Κανένα ή πολλά Late=Καθυστερ. -LateDesc=Ένα στοιχείο ορίζεται ως Καθυστέρηση σύμφωνα με τη διαμόρφωση του συστήματος στο μενού Αρχική σελίδα - Ρύθμιση - Ειδοποιήσεις. +LateDesc=Ένα στοιχείο ορίζεται ως Καθυστερημένο σύμφωνα με τη διαμόρφωση του συστήματος στο μενού Αρχική - Ρυθμίσεις - Ειδοποιήσεις. NoItemLate=Δεν υπάρχει καθυστερημένο στοιχείο -Photo=Φωτογραφία -Photos=Φωτογραφίες -AddPhoto=Προσθήκη Φωτογραφίας +Photo=Εικόνα +Photos=Εικόνες +AddPhoto=Προσθήκη εικόνας DeletePicture=Διαγραφή εικόνας ConfirmDeletePicture=Επιβεβαίωση διαγραφής εικόνας Login=Σύνδεση LoginEmail=Σύνδεση (email) -LoginOrEmail=Σύνδεση ή ηλεκτρονικό ταχυδρομείο +LoginOrEmail=Όνομα σύνδεσης ή email CurrentLogin=Τρέχουσα Σύνδεση EnterLoginDetail=Εισαγάγετε στοιχεία σύνδεσης January=Ιανουάριος @@ -607,20 +616,20 @@ MonthShort09=Σεπ MonthShort10=Οκτ MonthShort11=Νοέ MonthShort12=Δεκ -MonthVeryShort01=J -MonthVeryShort02=Π -MonthVeryShort03=Δ -MonthVeryShort04=ΕΝΑ -MonthVeryShort05=Δ -MonthVeryShort06=J -MonthVeryShort07=J -MonthVeryShort08=ΕΝΑ -MonthVeryShort09=Κ +MonthVeryShort01=Ι +MonthVeryShort02=Φ +MonthVeryShort03=Μ +MonthVeryShort04=Α +MonthVeryShort05=Μ +MonthVeryShort06=Ι +MonthVeryShort07=Ι +MonthVeryShort08=Α +MonthVeryShort09=Σ MonthVeryShort10=Ο MonthVeryShort11=Ν -MonthVeryShort12=ρε +MonthVeryShort12=Δ AttachedFiles=Επισυναπτόμενα αρχεία και έγγραφα -JoinMainDoc=Συμμετοχή στο κύριο έγγραφο +JoinMainDoc=Επισυνάψτε το κύριο έγγραφο JoinMainDocOrLastGenerated=Στείλτε το κύριο έγγραφο ή το τελευταίο που δημιουργήθηκε εάν δεν βρεθεί DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD @@ -638,15 +647,15 @@ File=Αρχείο Files=Αρχεία NotAllowed=Δεν επιτρέπεται ReadPermissionNotAllowed=Δεν υπάρχει δικαίωμα ανάγνωσης -AmountInCurrency=Σύνολο σε %s +AmountInCurrency=Ποσό σε νόμισμα %s Example=Παράδειγμα Examples=Παραδείγματα -NoExample=Δεν υπάρχει παράδειγμα +NoExample=Κανένα παράδειγμα FindBug=Αναφορά σφάλματος -NbOfThirdParties=Αριθμός στοιχείων +NbOfThirdParties=Αριθμός τρίτων μερών NbOfLines=Αριθμός Γραμμών NbOfObjects=Αριθμός Αντικειμένων -NbOfObjectReferers=Πλήθος σχετιζόμενων αντικειμένων +NbOfObjectReferers=Αριθμός σχετικών στοιχείων Referers=Σχετιζόμενα αντικείμενα TotalQuantity=Συνολική ποσότητα DateFromTo=Από %s μέχρι %s @@ -654,23 +663,23 @@ DateFrom=Από %s DateUntil=Μέχρι %s Check=Έλεγχος Uncheck=Αποεπιλογή -Internal=Internal -External=External -Internals=Internal -Externals=External +Internal=Εσωτερικός +External=Εξωτερικός +Internals=Εσωτερικοί +Externals=Εξωτερικοί Warning=Προειδοποίηση Warnings=Προειδοποιήσεις BuildDoc=Δημιουργία Doc Entity=Οντότητα Entities=Οντότητες CustomerPreview=Προεπισκόπηση Πελάτη -SupplierPreview=Προβολή προμηθευτή +SupplierPreview=Προεπισκόπηση προμηθευτή ShowCustomerPreview=Εμφάνιση Προεπισκόπησης Πελάτη ShowSupplierPreview=Εμφάνιση προεπισκόπησης προμηθευτή RefCustomer=Κωδ. Πελάτη InternalRef=Εσωτερική αναφορά Currency=Νόμισμα -InfoAdmin=Πληροφορία για τους διαχειριστές +InfoAdmin=Πληροφορίες για διαχειριστές Undo=Αναίρεση Redo=Επανεκτέλεση ExpandAll=Επέκταση όλων @@ -681,54 +690,55 @@ FeatureNotYetSupported=Η δυνατότητα δεν υποστηρίζεται CloseWindow=Κλείσιμο Παραθύρου Response=Απάντηση Priority=Προτεραιότητα -SendByMail=Απόστειλε μέσω ηλεκτρονικού ταχυδρομείου +SendByMail=Αποστολή μέσω email MailSentBy=Το email στάλθηκε από -NotSent=Δεν αποστέλλεται +NotSent=Δεν εστάλη TextUsedInTheMessageBody=Κείμενο email SendAcknowledgementByMail=Αποστολή email επιβεβαίωσης SendMail=Αποστολή email Email=Email NoEMail=Χωρίς email -AlreadyRead=Διαβάσατε ήδη +AlreadyRead=Διαβασμένα NotRead=Αδιάβαστο NoMobilePhone=Χωρείς κινητό τηλέφωνο Owner=Ιδιοκτήτης -FollowingConstantsWillBeSubstituted=Οι ακόλουθες σταθερές θα αντικαταστασθούν με τις αντίστοιχες τιμές +FollowingConstantsWillBeSubstituted=Οι ακόλουθες σταθερές θα αντικατασταθούν με τις αντίστοιχες τιμές Refresh=Ανανέωση BackToList=Επιστροφή στη Λίστα BackToTree=Επιστροφή στην δομή δέντρου GoBack=Επιστροφή CanBeModifiedIfOk=Μπορεί να τροποποιηθεί αν είναι έγκυρο -CanBeModifiedIfKo=Τροποποιήσιμο αν δεν είναι έγκυρο +CanBeModifiedIfKo=Μπορεί να τροποποιηθεί εάν δεν ισχύει ValueIsValid=Η τιμή είναι έγκυρη ValueIsNotValid=Η τιμή δεν είναι έγκυρη RecordCreatedSuccessfully=Η εγγραφή δημιουργήθηκε με επιτυχία RecordModifiedSuccessfully=Η εγγραφή τροποποιήθηκε με επιτυχία -RecordsModified=Η εγγραφή τροποποιήθηκε %s -RecordsDeleted=Η εγγραφή (ες) %s διαγράφηκε +RecordsModified=%s εγγραφές τροποποιήθηκαν +RecordsDeleted=%s εγγραφές διαγράφηκαν RecordsGenerated=%s καταγεγραμμένες εγγραφές AutomaticCode=Αυτόματος Κωδικός FeatureDisabled=Η δυνατότητα είναι απενεργοποιημένη MoveBox=Μετακίνηση widget Offered=Προσφέρθηκε -NotEnoughPermissions=Δεν έχετε τα απαραίτητα δικαιώματα -SessionName=Όνομα συνόδου +NotEnoughPermissions=Δεν έχετε τα απαραίτητα δικαιώματα για αυτή την ενέργεια +UserNotInHierachy=Αυτή η ενέργεια αφορά τους επόπτες αυτού του χρήστη +SessionName=Όνομα συνεδρίας Method=Μέθοδος Receive=Παραλαβή -CompleteOrNoMoreReceptionExpected=Ολοκληρώθηκε ή δεν αναμένετε κάτι περισσότερο +CompleteOrNoMoreReceptionExpected=Ολοκληρώθηκε ή δεν αναμένεται κάτι περισσότερο ExpectedValue=Αναμενόμενη αξία ExpectedQty=Αναμενόμενη ποσότητα PartialWoman=Μερική TotalWoman=Συνολικές NeverReceived=Δεν παραλήφθηκε Canceled=Ακυρώθηκε -YouCanChangeValuesForThisListFromDictionarySetup=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού Ρύθμιση - Λεξικά +YouCanChangeValuesForThisListFromDictionarySetup=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού Ρυθμίσεις - Λεξικά YouCanChangeValuesForThisListFrom=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού %s -YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που χρησιμοποιείται κατά τη δημιουργία μιας νέας εγγραφής στη ρύθμιση μονάδων +YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που χρησιμοποιείται κατά τη δημιουργία μιας νέας εγγραφής στη ρύθμιση της ενότητας Color=Χρώμα Documents=Συνδεδεμένα Αρχεία Documents2=Έγγραφα -UploadDisabled=Το ανέβασμα αρχείων έχει απενεργοποιηθεί +UploadDisabled=Η μεταφόρτωση απενεργοποιήθηκε MenuAccountancy=Λογιστική MenuECM=Έγγραφα MenuAWStats=AWStats @@ -738,103 +748,104 @@ MenuTaxesAndSpecialExpenses=Φόροι | Ειδικά έξοδα ThisLimitIsDefinedInSetup=Όριο Dolibarr (Μενού Ρυθμίσεις-Ασφάλεια): %s Kb, Όριο PHP: %s Kb ThisLimitIsDefinedInSetupAt=Όριο Dolibarr (Μενού %s): %s Kb, όριο PHP (Param %s): %s Kb NoFileFound=Δεν έχουν μεταφορτωθεί έγγραφα -CurrentUserLanguage=Τρέχουσα Γλώσσα -CurrentTheme=Τρέχων Θέμα -CurrentMenuManager=Τρέχουσα διαχειρηση μενού -Browser=Browser +CurrentUserLanguage=Τρέχουσα γλώσσα +CurrentTheme=Τρέχον θέμα +CurrentMenuManager=Τρέχουσα διαχείριση μενού +Browser=Πρόγραμμα περιήγησης Layout=Σχέδιο Screen=Οθόνη -DisabledModules=Απενεργοποιημένες Μονάδες +DisabledModules=Απενεργοποιημένες ενότητες For=Για ForCustomer=Για τον πελάτη Signature=Υπογραφή DateOfSignature=Ημερομηνία υπογραφής -HidePassword=Εμφάνιση πραγματικής εντολής με απόκρυψη του κωδικού -UnHidePassword=Εμφάνιση πραγματικής εντολής με εμφάνιση του κωδικού -Root=Ρίζα -RootOfMedias=Ρίζα δημόσιων μέσων (/ media) +HidePassword=Εμφάνιση πραγματικής εντολής με απόκρυψη του κωδικού πρόσβασης +UnHidePassword=Εμφάνιση πραγματικής εντολής με εμφάνιση του κωδικού πρόσβασης +Root=Ριζικός κατάλογος +RootOfMedias=Ριζικός κατάλογος δημόσιων πολυμέσων (/medias) Informations=Πληροφορίες Page=Σελίδα Notes=Σημειώσεις -AddNewLine=Προσθήκη Γραμμής +AddNewLine=Προσθήκη νέας γραμμής AddFile=Προσθήκη Αρχείου FreeZone=Προϊόν ελεύθερου κειμένου FreeLineOfType=Στοιχείο ελεύθερου κειμένου, πληκτρολογήστε: -CloneMainAttributes=Κλωνοποίηση αντικειμένου με τα βασικά του χαρακτηριστικά +CloneMainAttributes=Αντιγραφή αντικειμένου με τα βασικά του χαρακτηριστικά ReGeneratePDF=Επαναπαραγωγή PDF -PDFMerge=Ενσωμάτωση PDF -Merge=Ενσωμάτωση -DocumentModelStandardPDF=Πρότυπο πρότυπο PDF -PrintContentArea=Εμγάνιση σελίδας για εκτύπωση -MenuManager=Menu manager +PDFMerge=Συγχώνευση PDF +Merge=Συγχώνευση +DocumentModelStandardPDF=Τυπικό πρότυπο PDF +PrintContentArea=Εμφάνιση σελίδας για εκτύπωση της κύριας περιοχής περιεχομένου +MenuManager=Διαχείριση μενού WarningYouAreInMaintenanceMode=Προσοχή, βρίσκεστε σε λειτουργία συντήρησης: επιτρέπεται μόνο η σύνδεση %s να χρησιμοποιεί την εφαρμογή σε αυτή τη λειτουργία. CoreErrorTitle=Σφάλμα συστήματος CoreErrorMessage=Λυπούμαστε, παρουσιάστηκε ένα σφάλμα. Επικοινωνήστε με το διαχειριστή του συστήματος σας για να ελέγξετε τα αρχεία καταγραφής ή να απενεργοποιήστε το $ dolibarr_main_prod = 1 για να πάρετε περισσότερες πληροφορίες. CreditCard=Πιστωτική Κάρτα ValidatePayment=Επικύρωση πληρωμής CreditOrDebitCard=Πιστωτική ή χρεωστική κάρτα -FieldsWithAreMandatory=Τα πεδία %s είναι υποχρεωτικά -FieldsWithIsForPublic=Τα πεδία με %s εμφανίζονται στη δημόσια λίστα των μελών. Αν δεν το θέλετε, καταργήστε την επιλογή του πλαισίου "δημόσιο". +FieldsWithAreMandatory=Τα πεδία με%s είναι υποχρεωτικά +FieldsWithIsForPublic=Τα πεδία με %s εμφανίζονται στη δημόσια λίστα μελών. Εάν δεν το θέλετε αυτό, καταργήστε την επιλογή του πλαισίου "δημόσιο". AccordingToGeoIPDatabase=(σύμφωνα με τη μετατροπή GeoIP) Line=Γραμμή -NotSupported=Χωρίς Υποστήριξη +NotSupported=Δεν υποστηρίζεται RequiredField=Απαιτούμενο Πεδίο Result=Αποτέλεσμα ToTest=Δοκιμή -ValidateBefore=Η καρτέλα πρέπει να επικυρωθεί πριν χρησιμοποιηθεί αυτή τη δυνατότητα +ValidateBefore=Το στοιχείο πρέπει να επικυρωθεί πριν χρησιμοποιήσετε αυτήν τη δυνατότητα Visibility=Ορατότητα -Totalizable=Συνολικά -TotalizableDesc=Αυτό το πεδίο είναι συνολικά σε λίστα +Totalizable=Αθροίσιμο +TotalizableDesc=Αυτό το πεδίο αθροίζεται στη λίστα Private=Προσωπικό Hidden=Κρυφό Resources=Πόροι Source=Πηγή Prefix=Πρόθεμα -Before=Προτού +Before=Πριν After=Μετά IPAddress=Η διεύθυνση IP Frequency=Συχνότητα -IM=Άμεσων μηνυμάτων +IM=Υπηρεσία άμεσης ανταλλαγής μηνυμάτων NewAttribute=Νέο χαρακτηριστικό -AttributeCode=Κωδικός Ιδιότητα +AttributeCode=Κωδικός χαρακτηριστικού URLPhoto=URL της φωτογραφία / λογότυπο -SetLinkToAnotherThirdParty=Σύνδεση με άλλο Στοιχείο -LinkTo=Σύνδεση σε -LinkToProposal=Σύνδεση σε προσφορά +SetLinkToAnotherThirdParty=Σύνδεση με άλλο τρίτο μέρος +LinkTo=Σύνδεση με +LinkToProposal=Σύνδεση με προσφορά +LinkToExpedition= Σύνδεση με την καμπάνια LinkToOrder=Σύνδεση με παραγγελία -LinkToInvoice=Σύνδεση σε τιμολόγιο +LinkToInvoice=Σύνδεση με τιμολόγιο LinkToTemplateInvoice=Σύνδεση με το τιμολόγιο προτύπου -LinkToSupplierOrder=Σύνδεση με την παραγγελία αγοράς -LinkToSupplierProposal=Σύνδεση με την πρόταση προμηθευτή -LinkToSupplierInvoice=Σύνδεση με το τιμολόγιο προμηθευτή -LinkToContract=Σύνδεση με συμβόλαιο -LinkToIntervention=Σύνδεση σε παρέμβαση -LinkToTicket=Σύνδεση με το εισιτήριο -LinkToMo=Σύνδεσμος προς Mo +LinkToSupplierOrder=Σύνδεση με παραγγελία αγοράς +LinkToSupplierProposal=Σύνδεση με πρσφορά προμηθευτή +LinkToSupplierInvoice=Σύνδεση με τιμολόγιο προμηθευτή +LinkToContract=Σύνδεση με σύμβαση +LinkToIntervention=Σύνδεση με παρέμβαση +LinkToTicket=Σύνδεση με το ticket +LinkToMo=Σύνδεση με Mo CreateDraft=Δημιουργία σχεδίου SetToDraft=Επιστροφή στο προσχέδιο -ClickToEdit=Κάντε κλικ για να επεξεργαστείτε +ClickToEdit=Κάντε κλικ για επεξεργασία ClickToRefresh=Κάντε κλικ για ανανέωση -EditWithEditor=Επεξεργασία με CKEditor +EditWithEditor=Επεξεργασία με το CKEditor EditWithTextEditor=Επεξεργασία με πρόγραμμα επεξεργασίας κειμένου -EditHTMLSource=Επεξεργασία προέλευσης HTML -ObjectDeleted=Αντικείμενο %s διαγράφεται -ByCountry=Με τη χώρα -ByTown=Με την πόλη -ByDate=Με ημερομηνία -ByMonthYear=Με μήνας / έτος -ByYear=Με χρόνια +EditHTMLSource=Επεξεργασία πηγής HTML +ObjectDeleted=Το αντικείμενο %s διαγράφηκε +ByCountry=Ανά χώρα +ByTown=Ανά πόλη +ByDate=Ανά ημερομηνία +ByMonthYear=Ανά μήνα/έτος +ByYear=Ανά έτος ByMonth=Με το μήνα -ByDay=Μέχρι την ημέρα -BySalesRepresentative=Με τον αντιπρόσωπο πωλήσεων +ByDay=Ανά μέρα +BySalesRepresentative=Ανά αντιπρόσωπο πωλήσεων LinkedToSpecificUsers=Συνδέεται με μια συγκεκριμένη επαφή χρήστη NoResults=Δεν υπάρχουν αποτελέσματα AdminTools=Εργαλεία διαχειριστή SystemTools=Εργαλεία συστήματος -ModulesSystemTools=Εργαλεία πρόσθετων +ModulesSystemTools=Εργαλεία ενοτήτων Test=Δοκιμή Element=Στοιχείο -NoPhotoYet=Δεν υπαρχουν διαθεσημες φωτογραφίες ακόμα +NoPhotoYet=Δεν υπάρχουν διαθέσιμες εικόνες Dashboard=Πίνακας ελέγχου MyDashboard=Ο πίνακας ελέγχου μου Deductible=Εκπίπτουν @@ -842,13 +853,13 @@ from=από toward=προς Access=Πρόσβαση SelectAction=Επιλογή ενέργειας -SelectTargetUser=Επιλέξτε το χρήστη / υπάλληλο στόχου +SelectTargetUser=Επιλέξτε χρήστη/υπάλληλο-στόχο HelpCopyToClipboard=Χρησιμοποιήστε το Ctrl + C για να αντιγράψετε στο πρόχειρο SaveUploadedFileWithMask=Αποθηκεύστε το αρχείο στον server με το όνομα "%s" (αλλιώς "%s") OriginFileName=Αρχική Ονομασία SetDemandReason=Ρυθμίστε την πηγή SetBankAccount=Προσδιορίστε Τραπεζικό λογαριασμό -AccountCurrency=Τραπεζικός λογαριασμός +AccountCurrency=Νόμισμα Λογαριασμού ViewPrivateNote=Προβολή σημειώσεων XMoreLines=%s γραμμή (ές) κρυμμένη ShowMoreLines=Εμφάνιση περισσότερων / λιγότερων γραμμών @@ -858,8 +869,8 @@ SelectElementAndClick=Επιλέξτε ένα στοιχείο και κάντε PrintFile=Εκτύπωση του αρχείου %s ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό λογαριασμό ShowIntervention=Εμφάνιση παρέμβασης -ShowContract=Εμφάνιση συμβολαίου -GoIntoSetupToChangeLogo=Μεταβείτε στην Αρχική σελίδα - Εγκατάσταση - Εταιρεία για να αλλάξετε το λογότυπο ή να μεταβείτε στην Αρχική σελίδα - Ρύθμιση - Εμφάνιση για απόκρυψη. +ShowContract=Εμφάνιση σύμβασης +GoIntoSetupToChangeLogo=Μεταβείτε στην Αρχική - Ρυθμίσεις - Εταιρεία / Οργανισμός για να αλλάξετε το λογότυπο ή μεταβείτε στην Αρχική - Ρυθμίσεις - Εμφάνιση για απόκρυψη αυτού. Deny=Άρνηση Denied=Άρνηση ListOf=Λίστα %s @@ -869,30 +880,30 @@ Genderman=Αρσενικό Genderwoman=Θηλυκό Genderother=Άλλο ViewList=Προβολή λίστας -ViewGantt=Gantt θέα -ViewKanban=Θέα στο Kanban +ViewGantt=Προβολή τύπου Gantt +ViewKanban=Προβολή τύπου Kanban Mandatory=Υποχρεωτικό Hello=Χαίρετε -GoodBye=Αντιο σας +GoodBye=Αντίο σας Sincerely=Ειλικρινώς -ConfirmDeleteObject=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το αντικείμενο; +ConfirmDeleteObject=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αντικείμενο; DeleteLine=Διαγραφή γραμμής -ConfirmDeleteLine=Είστε σίγουρος ότι θέλετε να διαγράψετε αυτή τη γραμμή; +ConfirmDeleteLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη γραμμή; ErrorPDFTkOutputFileNotFound=Σφάλμα: το αρχείο δεν δημιουργήθηκε. Ελέγξτε ότι το 'pdftk' είναι εγκατεστημένο σε έναν κατάλογο που περιλαμβάνεται στο environment variable $PATH (μόνο linux/unix) ή επικοινωνήστε με τον διαχειριστή του συστήματός σας. -NoPDFAvailableForDocGenAmongChecked=Δεν υπήρχε αρχείο PDF για την παραγωγή εγγράφων μεταξύ των καταχωρημένων εγγραφών -TooManyRecordForMassAction=Έχουν επιλεγεί πάρα πολλά αρχεία για μαζική δράση. Η ενέργεια περιορίζεται σε μια λίστα αρχείων %s. +NoPDFAvailableForDocGenAmongChecked=Δεν υπήρχε αρχείο PDF για την παραγωγή εγγράφων μεταξύ των επιλεγμένων εγγραφών +TooManyRecordForMassAction=Έχουν επιλεγεί πάρα πολλά αρχεία για μαζική δράση. Η ενέργεια περιορίζεται σε μια λίστα %sαρχείων . NoRecordSelected=Δεν έχει επιλεγεί εγγραφή -MassFilesArea=Περιοχή για αρχεία που δημιουργούνται από μαζικές ενέργειες -ShowTempMassFilesArea=Εμφάνιση περιοχής αρχείων που έχουν δημιουργηθεί με μαζικές ενέργειες -ConfirmMassDeletion=Διαγραφή μαζικής επιβεβαίωσης -ConfirmMassDeletionQuestion=Είστε βέβαιοι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; +MassFilesArea=Τομέας αρχείων που δημιουργήθηκαν από μαζικές ενέργειες +ShowTempMassFilesArea=Εμφάνιση τομέα αρχείων που έχουν δημιουργηθεί με μαζικές ενέργειες +ConfirmMassDeletion=Επιβεβαίωση μαζικής διαγραφής +ConfirmMassDeletionQuestion=Είστε σίγουροι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; RelatedObjects=Σχετικά Αντικείμενα -ClassifyBilled=Χαρακτηρισμός ως τιμολογημένο -ClassifyUnbilled=Ταξινόμηση των μη τιμολογημένων +ClassifyBilled=Ταξινόμηση ως τιμολογημένο +ClassifyUnbilled=Ταξινόμηση ως μη τιμολογημένο Progress=Πρόοδος -ProgressShort=Progr. -FrontOffice=Μπροστινό γραφείο -BackOffice=Back office +ProgressShort=Πρόοδος +FrontOffice=Front office +BackOffice=Υποστήριξη Submit=Υποβολή View=Προβολή Export=Εξαγωγή @@ -904,55 +915,56 @@ IncludeDocsAlreadyExported=Συμπεριλάβετε έγγραφα που έχ ExportOfPiecesAlreadyExportedIsEnable=Η εξαγωγή τεμαχίων που έχουν ήδη εξαχθεί είναι δυνατή ExportOfPiecesAlreadyExportedIsDisable=Η εξαγωγή τεμαχίων που έχουν ήδη εξαχθεί είναι απενεργοποιημένη AllExportedMovementsWereRecordedAsExported=Όλες οι εξαγόμενες κινήσεις καταγράφηκαν ως εξαγόμενες -NotAllExportedMovementsCouldBeRecordedAsExported=Δεν μπορούν να καταγραφούν όλες οι εξαγόμενες κινήσεις ως εξαγωγές -Miscellaneous=Miscellaneous +NotAllExportedMovementsCouldBeRecordedAsExported=Δεν ήταν δυνατή η καταγραφή όλων των εξαγόμενων κινήσεων +Miscellaneous=Διάφορα Calendar=Ημερολόγιο GroupBy=Ομαδοποίηση κατά... ViewFlatList=Προβολή λίστας ViewAccountList=Προβολή καθολικού ViewSubAccountList=Προβολή καθολικού δευτερεύοντος λογαριασμού -RemoveString=Αφαιρέστε τη συμβολοσειρά '%s' +RemoveString=Κατάργηση συμβολοσειράς '%s' SomeTranslationAreUncomplete=Ορισμένες από τις διαθέσιμες γλώσσες ενδέχεται να έχουν μεταφραστεί μόνο εν μέρει ή να περιέχουν σφάλματα. Βοηθήστε στη διόρθωση της γλώσσας σας κάνοντας εγγραφή στο https://transifex.com/projects/p/dolibarr/ για να προσθέσετε τις βελτιώσεις σας. DirectDownloadLink=Δημόσιος σύνδεσμος λήψης PublicDownloadLinkDesc=Απαιτείται μόνο ο σύνδεσμος για τη λήψη του αρχείου DirectDownloadInternalLink=Ιδιωτικός σύνδεσμος λήψης -PrivateDownloadLinkDesc=Πρέπει να είστε συνδεδεμένοι και χρειάζεστε δικαιώματα για να δείτε ή να κατεβάσετε το αρχείο -Download=Κατεβάστε -DownloadDocument=Κάντε λήψη εγγράφου +PrivateDownloadLinkDesc=Πρέπει να είστε συνδεδεμένοι και να έχετε τα απαραίτητα δικαιώματα για να δείτε ή να κατεβάσετε το αρχείο +Download=Λήψη +DownloadDocument=Λήψη εγγράφου +DownloadSignedDocument=Λήψη υπογεγραμμένου εγγράφου ActualizeCurrency=Ενημέρωση τιμής νομίσματος Fiscalyear=Οικονομικό έτος -ModuleBuilder=Ενότητα και Εργαλείο δημιουργίας εφαρμογών +ModuleBuilder=Εφαρμογή δημιουργίας ενοτήτων SetMultiCurrencyCode=Ορισμός νομίσματος BulkActions=Μαζικές ενέργειες -ClickToShowHelp=Κάντε κλικ για να εμφανιστεί η βοήθεια βοήθειας -WebSite=Δικτυακός τόπος +ClickToShowHelp=Κάντε κλικ για να εμφανιστεί το αναδυόμενο πλαίσιο βοήθειας +WebSite=Ιστοσελίδα WebSites=Ιστοσελίδες -WebSiteAccounts=Λογαριασμοί ιστοτόπων +WebSiteAccounts=Λογαριασμοί ιστοσελίδας ExpenseReport=Αναφορά εξόδων ExpenseReports=Αναφορές εξόδων HR=HR HRAndBank=HR και Τράπεζα AutomaticallyCalculated=Αυτόματα υπολογισμένο -TitleSetToDraft=Επιστρέψτε στο σχέδιο -ConfirmSetToDraft=Είστε βέβαιοι ότι θέλετε να επιστρέψετε στην κατάσταση Προετοιμασίας; +TitleSetToDraft=Επιστροφή σε προσχέδιο +ConfirmSetToDraft=Είστε σίγουροι ότι θέλετε να επιστρέψετε στην κατάσταση Προσχεδίου; ImportId=Εισαγωγή αναγνωριστικού -Events=Ενέργειες +Events=Συμβάντα EMailTemplates=Πρότυπα ηλεκτρονικού ταχυδρομείου -FileNotShared=Αρχείο που δεν μοιράζεται με εξωτερικό κοινό +FileNotShared=Αρχείο που δεν μοιράζεται με εξωτερικούς χρήστες Project=Έργο Projects=Έργα -LeadOrProject=Μόλυβδος | Εργο -LeadsOrProjects=Οδηγεί | Εργα -Lead=Οδηγω -Leads=Οδηγεί -ListOpenLeads=Κατάλογος ανοικτών αγωγών -ListOpenProjects=Κατάλογος ανοιχτών έργων -NewLeadOrProject=Νέο έργο ή έργο -Rights=Άδειες +LeadOrProject=Προοπτική | Έργο +LeadsOrProjects=Προοπτικές | Έργα +Lead=Προοπτική +Leads=Προοπτικές +ListOpenLeads=Λίστα ανοικτών προοπτικών +ListOpenProjects=Λίστα ανοιχτών έργων +NewLeadOrProject=Νέα προοπτική ή έργο +Rights=Δικαιώματα LineNb=Αριθμός γραμμής. IncotermLabel=Διεθνείς Εμπορικοί Όροι -TabLetteringCustomer=Γράμματα πελατών -TabLetteringSupplier=Επιστολές πωλητών +TabLetteringCustomer=Λογιστική συμφωνία πελατών +TabLetteringSupplier=Λογιστική συμφωνία προμηθευτών Monday=Δευτέρα Tuesday=Τρίτη Wednesday=Τετάρτη @@ -1015,13 +1027,13 @@ billion=δισεκατομμύριο trillion=τρισεκατομμύριο quadrillion=τετρακισεκατομμύριο SelectMailModel=Επιλέξτε ένα πρότυπο ηλεκτρονικού ταχυδρομείου -SetRef=Ρύθμιση αναφ -Select2ResultFoundUseArrows=Βρέθηκαν αποτελέσματα. Χρησιμοποιήστε τα βέλη για να επιλέξετε. -Select2NotFound=Δεν υπάρχουν αποτελέσματα +SetRef=Αναφορά Σετ +Select2ResultFoundUseArrows=Βρέθηκαν ορισμένα αποτελέσματα. Χρησιμοποιήστε τα βέλη για να επιλέξετε. +Select2NotFound=Δεν βρέθηκε αποτέλεσμα Select2Enter=Εισαγωγή Select2MoreCharacter=ή περισσότερους χαρακτήρες Select2MoreCharacters=ή περισσότερους χαρακτήρες -Select2MoreCharactersMore=Σύνταξη αναζήτησης:
    | Ή (α | β)
    * Οποιοσδήποτε χαρακτήρας (a * b)
    ^ Ξεκινήστε με (^ ab)
    $ Τέλος με (ab $)
    +Select2MoreCharactersMore=Σύνταξη αναζήτησης:
    | Ή (α | β)
    * Οποιοσδήποτε χαρακτήρας (α * β)
    ^ Ξεκινήστε με (^ ab)
    $ Τέλος με (αβ $)
    Select2LoadingMoreResults=Φόρτωση περισσότερων αποτελεσμάτων Select2SearchInProgress=Αναζήτηση σε εξέλιξη SearchIntoThirdparties=Πελ./Προμ. @@ -1035,16 +1047,17 @@ SearchIntoMO=Εντολές Παραγωγής SearchIntoTasks=Εργασίες SearchIntoCustomerInvoices=Τιμολόγια πελατών SearchIntoSupplierInvoices=Τιμολόγια προμηθευτή -SearchIntoCustomerOrders=Παραγγελίες πωλήσεων -SearchIntoSupplierOrders=Εντολές αγοράς +SearchIntoCustomerOrders=Εντολές πωλήσεων +SearchIntoSupplierOrders=Παραγγελίες αγοράς SearchIntoCustomerProposals=Προσφορές -SearchIntoSupplierProposals=Προτάσεις πωλητών +SearchIntoSupplierProposals=Προσφορές προμηθευτών SearchIntoInterventions=Παρεμβάσεις SearchIntoContracts=Συμβόλαια SearchIntoCustomerShipments=Αποστολές Πελάτη SearchIntoExpenseReports=Αναφορές εξόδων SearchIntoLeaves=Άδεια -SearchIntoTickets=Εισιτήρια +SearchIntoKM=Γνωσιακή βάση +SearchIntoTickets=Tickets SearchIntoCustomerPayments=Πληρωμές πελατών SearchIntoVendorPayments=Πληρωμές προμηθευτών SearchIntoMiscPayments=Διάφορες πληρωμές @@ -1060,7 +1073,7 @@ Monthly=Μηνιαία Quarterly=Τριμηνιαία Annual=Ετήσια Local=Τοπικά -Remote=Απομακρυσμένα +Remote=Απομακρυσμένο LocalAndRemote=Τοπικά και απομακρυσμένα KeyboardShortcut=Συντόμευση πληκτρολογίου AssignedTo=Ανάθεση σε @@ -1078,17 +1091,17 @@ NoFilesUploadedYet=Παρακαλώ μεταφορτώστε ένα έγγραφ SeePrivateNote=Δείτε την ιδιωτική σημείωση PaymentInformation=Πληροφορίες Πληρωμής ValidFrom=Ισχύει από -ValidUntil=Εγκυρο μέχρι +ValidUntil=Έγκυρο μέχρι NoRecordedUsers=Δεν υπάρχουν χρήστες ToClose=Προς κλείσιμο ToRefuse=Προς απόρριψη ToProcess=Προς επεξεργασία ToApprove=Προς έγκριση GlobalOpenedElemView=Σφαιρική άποψη -NoArticlesFoundForTheKeyword=Δεν βρέθηκε κανένα άρθρο για τη λέξη-κλειδί ' %s ' -NoArticlesFoundForTheCategory=Δεν βρέθηκε κανένα άρθρο για την κατηγορία +NoArticlesFoundForTheKeyword=Δεν βρέθηκε άρθρο για τη λέξη-κλειδί " %s " +NoArticlesFoundForTheCategory=Δεν βρέθηκε άρθρο για την κατηγορία ToAcceptRefuse=Αποδοχή | άρνηση -ContactDefault_agenda=Εκδήλωση +ContactDefault_agenda=Συμβάν ContactDefault_commande=Παραγγελία ContactDefault_contrat=Συμβόλαιο ContactDefault_facture=Τιμολόγιο @@ -1097,12 +1110,12 @@ ContactDefault_invoice_supplier=Τιμολόγιο Προμηθευτή ContactDefault_order_supplier=Εντολή αγοράς ContactDefault_project=Έργο ContactDefault_project_task=Εργασία -ContactDefault_propal=Πρόταση +ContactDefault_propal=Προσφορά ContactDefault_supplier_proposal=Προσφορά Προμηθευτή -ContactDefault_ticket=Εισιτήριο -ContactAddedAutomatically=Η επαφή που προστέθηκε από τους ρόλους του τρίτου μέρους επικοινωνίας +ContactDefault_ticket=Ticket +ContactAddedAutomatically=Η επαφή προστέθηκε από ρόλους τρίτων επαφών More=Περισσότερα -ShowDetails=Εμφάνισε λεπτομέρειες +ShowDetails=Εμφάνιση λεπτομερειών CustomReports=Προσαρμοσμένες αναφορές StatisticsOn=Στατιστικά στοιχεία για SelectYourGraphOptionsFirst=Επιλέξτε τις επιλογές γραφήματος για να δημιουργήσετε ένα γράφημα @@ -1125,9 +1138,9 @@ MODIFYInDolibarr=Η εγγραφή %s τροποποιήθηκε DELETEInDolibarr=Η εγγραφή %s διαγράφηκε VALIDATEInDolibarr=Η εγγραφή %s επικυρώθηκε APPROVEDInDolibarr=Εγκρίθηκε η εγγραφή %s -DefaultMailModel=Προεπιλεγμένο μοντέλο αλληλογραφίας +DefaultMailModel=Προεπιλεγμένο πρότυπο αλληλογραφίας PublicVendorName=Επωνυμία προμηθευτή -DateOfBirth=Ημερομηνία γεννήσεως +DateOfBirth=Ημερομηνία γέννησης SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Το Security token έχει λήξει, επομένως η ενέργεια ακυρώθηκε. Παρακαλώ προσπαθήστε ξανά. UpToDate=Ενημερωμένο OutOfDate=Ξεπερασμένο @@ -1135,22 +1148,36 @@ EventReminder=Υπενθύμιση συμβάντος UpdateForAllLines=Ενημέρωση για όλες τις γραμμές OnHold=Σε Αναμονή Civility=Ευγένεια -AffectTag=Επιβολή ετικέτας +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Ορισμός επόπτη CreateExternalUser=Δημιουργία εξωτερικού χρήστη -ConfirmAffectTag=Μαζική επιβολή ετικετών -ConfirmAffectTagQuestion=Είστε σίγουροι ότι θέλετε να επιβάλετε τις ετικέτες στις επιλεγμένες εγγραφές %s; +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Ρόλος που ανατίθεται σε κάθε έργο +TasksRole=Ρόλος που ανατίθεται σε κάθε εργασία κάθε έργου +ConfirmSetSupervisor=Μαζικός ορισμός Επόπτη +ConfirmUpdatePrice=Επιλέξτε ένα ποσοστό αύξησης/μείωσης τιμής +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε τον επόπτη στις %s επιλεγμένες εγγραφές; +ConfirmUpdatePriceQuestion=Είστε σίγουροι ότι θέλετε να ενημερώσετε την τιμή των %s επιλεγμένων εγγραφών ; CategTypeNotFound=Δεν βρέθηκε τύπος ετικέτας για τον τύπο των εγγραφών +Rate=Τιμή +SupervisorNotFound=Δεν βρέθηκε Επόπτης CopiedToClipboard=Αντιγράφηκε στο πρόχειρο InformationOnLinkToContract=Το ποσό αυτό είναι μόνο το σύνολο όλων των γραμμών της σύμβασης. Δεν λαμβάνεται υπόψη η έννοια του χρόνου. ConfirmCancel=Είστε σίγουροι ότι θέλετε να ακυρώσετε EmailMsgID=Email MsgID +EmailDate=Ημερομηνία email +SetToStatus=Ορισμός σε κατάσταση %s SetToEnabled=Ορίστε σε ενεργοποιημένη -SetToDisabled=Ορίστηκε σε απενεργοποιημένη +SetToDisabled=Ορίστε σε απενεργοποιημένη ConfirmMassEnabling=επιβεβαίωση μαζικής ενεργοποίησης -ConfirmMassEnablingQuestion=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε την(τις) %sεπιλεγμένη(ες) εγγραφη(ές); +ConfirmMassEnablingQuestion=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε τις %sεπιλεγμένες εγγραφές; ConfirmMassDisabling=επιβεβαίωση μαζικής απενεργοποίησης ConfirmMassDisablingQuestion=Είστε σίγουροι ότι θέλετε να απενεργοποιήσετε τις επιλεγμένες εγγραφές %s; -RecordsEnabled=%s εγγραφή(ές) ενεργοποιημένες +RecordsEnabled=Ενεργοποιήθηκαν %s εγγραφές RecordsDisabled=%s εγγραφές απενεργοποιήθηκαν RecordEnabled=Η εγγραφή ενεργοποιήθηκε RecordDisabled=Η εγγραφή απενεργοποιήθηκε @@ -1172,8 +1199,14 @@ Terminated=Ακυρωμένο AddLineOnPosition=Προσθήκη γραμμής στη θέση (στο τέλος αν είναι κενή) ConfirmAllocateCommercial=Επιβεβαίωση ορισμού αντιπροσώπου πωλήσεων ConfirmAllocateCommercialQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε τις επιλεγμένες εγγραφές %s; -CommercialsAffected=Εκπρόσωποι πωλήσεων που αφορά -CommercialAffected=Εκπρόσωποι πωλήσεων που αφορά -YourMessage=Το μήνυμα σας +CommercialsAffected=Ορίστηκαν αντιπρόσωποι πωλήσεων +CommercialAffected=Ορίστηκε αντιπρόσωπος πωλήσεων +YourMessage=Το μήνυμά σας YourMessageHasBeenReceived=Το μήνυμά σας έχει ληφθεί. Θα απαντήσουμε ή θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό. UrlToCheck=URL για έλεγχο +Automation=Αυτοματισμός +CreatedByEmailCollector=Δημιουργήθηκε από τον συλλέκτη Email +CreatedByPublicPortal=Δημιουργήθηκε από Δημόσια πύλη +UserAgent=User Agent +InternalUser=Εσωτερικός χρήστης +ExternalUser=Εξωτερικός χρήστης diff --git a/htdocs/langs/el_GR/margins.lang b/htdocs/langs/el_GR/margins.lang index 40df1eddafb..48dd84e4e9c 100644 --- a/htdocs/langs/el_GR/margins.lang +++ b/htdocs/langs/el_GR/margins.lang @@ -5,10 +5,10 @@ Margins=Περιθώρια TotalMargin=Συνολικό Περιθώριο MarginOnProducts=Περιθώριο / Προϊόντα MarginOnServices=Περιθώριο / Υπηρεσίες -MarginRate=Ποσοστό περιθωρίου επί της % +MarginRate=Ποσοστό περιθωρίου επί της %% MarkRate=Ποσοστό Κέρδους -DisplayMarginRates=Εμφάνιση ποσοστό κέρδους -DisplayMarkRates=Εμφάνιση σημειωμένων τιμών +DisplayMarginRates=Εμφάνιση ποσοστών περιθωρίου +DisplayMarkRates=Εμφάνιση ποσοστών κέρδους InputPrice=Εισαγωγή τιμής margin=Διαχείριση των ποσοστών κέρδους margesSetup=Ρύθμιση της διαχείρισης ποσοστών κέρδους @@ -16,7 +16,7 @@ MarginDetails=Λεπτομέρειες Περιθωρίων ProductMargins=Περιθώρια προϊόντος CustomerMargins=Περιθώρια πελατών SalesRepresentativeMargins=Περιθώρια αντιπρόσωπου πωλήσεων -ContactOfInvoice=Επικοινωνία με το τιμολόγιο +ContactOfInvoice=Επαφή τιμολογίου UserMargins=Περιθώρια χρήστη ProductService=Προϊόν ή Υπηρεσία AllProducts=Όλα τα προϊόντα και οι υπηρεσίες @@ -32,14 +32,14 @@ MARGIN_TYPE=Τιμή αγοράς/κόστους που προτείνεται MargeType1=Περιθώριο για την καλύτερη τιμή προμηθευτή MargeType2=Περιθώριο στη μέση σταθμισμένη τιμή (WAP) MargeType3=Περιθώριο στην τιμή κόστους -MarginTypeDesc=* Περιθώριο με την καλύτερη τιμή αγοράς = Τιμή πώλησης - Καλύτερη τιμή πωλητή που ορίζεται στην κάρτα προϊόντος
    * Περιθώριο σταθμισμένης μέσης τιμής (WAP) = Τιμή πώλησης - Σταθμισμένη μέση τιμή προϊόντος (WAP) ή καλύτερη τιμή προμηθευτή εάν το WAP δεν έχει καθοριστεί ακόμη
    * Περιθώριο στην τιμή κόστους = τιμή πώλησης - τιμή κόστους οριζόμενη στην κάρτα προϊόντος ή WAP, εάν η τιμή κόστους δεν έχει καθοριστεί ή η καλύτερη τιμή πωλητή αν το WAP δεν έχει οριστεί ακόμη +MarginTypeDesc=* Περιθώριο στην καλύτερη τιμή αγοράς = Τιμή πώλησης - Η καλύτερη τιμή πωλητή που ορίζεται στην κάρτα προϊόντος
    * Περιθώριο στη σταθμισμένη μέση τιμή (WAP) = Τιμή πώλησης - Μέση σταθμισμένη τιμή προϊόντος (WAP) ή καλύτερη τιμή πωλητή εάν το WAP δεν έχει οριστεί ακόμη
    * Περιθώριο σε Τιμή κόστους = Τιμή πώλησης - τιμή κόστους που καθορίζεται στην κάρτα προϊόντος ή στο WAP εάν η τιμή κόστους δεν έχει καθοριστεί ή η καλύτερη τιμή πωλητή εάν το WAP δεν έχει ακόμη καθοριστεί CostPrice=Τιμή κόστους -UnitCharges=Χρεώσεων -Charges=Επιβαρύνσεις +UnitCharges=Χρεώσεις μονάδων +Charges=Χρεώσεις AgentContactType=τύπος επαφής εμπορικός αντιπρόσωπου -AgentContactTypeDetails=Ορίστε ποιος τύπος επαφής (συνδεδεμένος στα τιμολόγια) θα χρησιμοποιηθεί για την αναφορά περιθωρίου ανά επαφή / διεύθυνση. Σημειώστε ότι η ανάγνωση των στατιστικών στοιχείων μιας επαφής δεν είναι αξιόπιστη, διότι στις περισσότερες περιπτώσεις η επαφή μπορεί να μην ορίζεται σαφώς στα τιμολόγια. -rateMustBeNumeric=Βαθμολογήστε πρέπει να είναι μια αριθμητική τιμή -markRateShouldBeLesserThan100=Το ποσοστό πρέπει να είναι χαμηλότερη από 100 +AgentContactTypeDetails=Καθορίστε ποιος τύπος επαφής (συνδεδεμένος στα τιμολόγια) θα χρησιμοποιηθεί για την αναφορά περιθωρίου ανά επαφή/διεύθυνση. Σημειώστε ότι η ανάγνωση στατιστικών στοιχείων σε μια επαφή δεν είναι αξιόπιστη, καθώς στις περισσότερες περιπτώσεις η επαφή μπορεί να μην ορίζεται ρητά στα τιμολόγια. +rateMustBeNumeric=Το ποσοστό πρέπει να είναι μια αριθμητική τιμή +markRateShouldBeLesserThan100=Το ποσοστό κέρδους πρέπει να είναι χαμηλότερο από 100 ShowMarginInfos=Δείτε πληροφορίες για τα περιθώρια CheckMargins=Λεπτομέρεια περιθωρίων MarginPerSaleRepresentativeWarning=Η αναφορά περιθωρίου ανά χρήστη χρησιμοποιεί τη σχέση μεταξύ τρίτων μερών και αντιπροσώπων πωλήσεων για να υπολογίσει το περιθώριο κάθε αντιπροσώπου πωλήσεων. Επειδή ορισμένα τρίτα μέρη ενδέχεται να μην έχουν εξειδικευμένο αντιπρόσωπο πώλησης και ορισμένα τρίτα μέρη ενδέχεται να συνδέονται με πολλούς αντιπρόσωπους, ορισμένα ποσά ενδέχεται να μην περιλαμβάνονται στην έκθεση (εάν δεν υπάρχει αντιπρόσωπος πώλησης) και μερικά ενδέχεται να εμφανίζονται σε διαφορετικές γραμμές (για κάθε αντιπρόσωπο πώλησης) . diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang index 9a12a0c43bc..1884393ae06 100644 --- a/htdocs/langs/el_GR/members.lang +++ b/htdocs/langs/el_GR/members.lang @@ -7,14 +7,15 @@ Members=Μέλη ShowMember=Εμφάνιση καρτέλας μέλους UserNotLinkedToMember=Ο χρήστης δεν συνδέετε με κάποιο μέλος ThirdpartyNotLinkedToMember=Το τρίτο μέρος δεν συνδέεται με κάποιο μέλος -MembersTickets=Φύλλο διεύθυνσης μέλους +MembersTickets=Κατάσταση(Φύλλο) διευθύνσεων μελών FundationMembers=Μέλη οργανισμού ListOfValidatedPublicMembers=Λίστα πιστοποιημένων φανερών μελών -ErrorThisMemberIsNotPublic=Το μέλος δεν είναι δημόσιο +ErrorThisMemberIsNotPublic=Αυτό το μέλος δεν είναι δημόσιο ErrorMemberIsAlreadyLinkedToThisThirdParty=Ένα άλλο μέλος (όνομα: %s, login: %s) έχει ήδη συνδεθεί με τρίτο μέρος %s. Καταργήστε αυτόν τον σύνδεσμο πρώτα επειδή ένα τρίτο μέρος δεν μπορεί να συνδέεται μόνο με ένα μέλος (και το αντίστροφο). ErrorUserPermissionAllowsToLinksToItselfOnly=Για λόγους ασφαλείας, πρέπει να σας παραχωρηθούν δικαιώματα επεξεργασίας όλων των χρηστών για να μπορείτε να συνδέσετε ένα μέλος με έναν χρήστη που δεν είναι δικός σας. SetLinkToUser=Σύνδεσμος σε χρήστη του Dolibarr SetLinkToThirdParty=Σύνδεσμος με τρίτο μέρος του Dolibarr +MemberCountersArePublic=Οι μετρητές έγκυρων μελών είναι δημόσιοι MembersCards=Δημιουργία καρτών για μέλη MembersList=Κατάλογος μελών MembersListToValid=Λίστα μελών (προς επικύρωση) @@ -35,7 +36,9 @@ DateEndSubscription=Ημερομηνία λήξης συνδρομής μέλο EndSubscription=Τέλος ιδιότητας συνδρομής μέλους SubscriptionId=Αναγνωριστικό συνδρομής WithoutSubscription=Χωρίς συνδρομή +WaitingSubscription=Σε αναμονή συνδρομής MemberId=Αναγνωριστικό μέλους +MemberRef= Αναφ. Μέλους NewMember=Νέο μέλος MemberType=Τύπος μέλους MemberTypeId=Αναγνωριστικό τύπου μέλους @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Αυτός ο τύπος Μέλους δεν μπορ NewSubscription=Νέα συνδρομή NewSubscriptionDesc=Αυτή η φόρμα σας επιτρέπει να καταγράψετε την συνδρομή σας ως νέο μέλος του ιδρύματος. Αν θέλετε να ανανεώσετε τη συνδρομή σας (αν είστε ήδη μέλος), επικοινωνήστε με το συμβούλιο του ιδρύματος μέσω e-mail %s. Subscription=Συνδρομή +AnyAmountWithAdvisedAmount=Οποιοδήποτε ποσό της επιλογής σας, συνιστάται %s +AnyAmountWithoutAdvisedAmount=Οποιοδήποτε ποσό της επιλογής σας +CanEditAmountShort=Οποιοδήποτε ποσό +CanEditAmountShortForValues=συνιστάται, οποιοδήποτε ποσό +MembershipDuration=Διάρκεια +GetMembershipButtonLabel=Εγγραφή Subscriptions=Συνδρομές SubscriptionLate=Καθυστερημένη πληρωμή συνδρομής SubscriptionNotReceived=Η πληρωμή της συνδρομής δεν ελήφθη ποτέ @@ -95,16 +104,16 @@ ConfirmResiliateMember=Είστε σίγουροι ότι θέλετε να κα DeleteMember=Διαγραφή ενός μέλους ConfirmDeleteMember=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μέλος (Η διαγραφή ενός μέλους θα διαγράψει όλες τις συνδρομές του); DeleteSubscription=Διαγραφή συνδρομής -ConfirmDeleteSubscription=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη συνδρομή; +ConfirmDeleteSubscription=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη συνδρομή; Filehtpasswd=htpasswd file ValidateMember=Επικύρωση ενός μέλους -ConfirmValidateMember=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτό το μέλος; +ConfirmValidateMember=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτό το μέλος; FollowingLinksArePublic=Οι παρακάτω σύνδεσμοι είναι ανοιχτές σελίδες που δεν προστατεύονται από οποιαδήποτε άδεια του Dolibarr. Δεν είναι μορφοποιημένες σελίδες, παρέχονται ως παράδειγμα για να παρουσιάσουν τον τρόπο ταξινόμησης της βάσης δεδομένων των μελών. -PublicMemberList=Λίστα δημόσιων μελών +PublicMemberList=Δημόσια λίστα μελών BlankSubscriptionForm=Δημόσια φόρμα εγγραφής BlankSubscriptionFormDesc=Το Dolibarr μπορεί να σας παράσχει ένα δημόσιο URL / ιστοσελίδα για να επιτρέψει στους εξωτερικούς επισκέπτες να ζητήσουν να εγγραφούν στο ίδρυμα. Εάν είναι ενεργοποιημένη μια ηλεκτρονική ενότητα πληρωμής, μπορεί να παρέχεται αυτόματα και μια φόρμα πληρωμής. -EnablePublicSubscriptionForm=Ενεργοποιήστε τον δημόσιο ιστότοπο με φόρμα αυτοεξυπηρέτησης -ForceMemberType=Αναγκάστε τον τύπο μέλους +EnablePublicSubscriptionForm=Ενεργοποίηση του δημόσιου ιστότοπου με φόρμα αυτο-εγγραφής +ForceMemberType=Επιβολή του τύπου μέλους ExportDataset_member_1=Μέλη και συνδρομές ImportDataset_member_1=Μέλη LastMembersModified=Τελευταία %s μέλη που τροποποιήθηκαν @@ -124,99 +133,102 @@ SendingEmailOnMemberValidation=Αποστολή email επικύρωσης νέ SendingEmailOnNewSubscription=Αποστολή email νέας συνδρομής SendingReminderForExpiredSubscription=Αποστολή υπενθύμισης για συνδρομές που έχουν λήξει SendingEmailOnCancelation=Αποστολή email κατάργησης μελους -SendingReminderActionComm=Αποστολή υπενθύμισης για εκδήλωση ατζέντας +SendingReminderActionComm=Αποστολή υπενθύμισης για συμβάν ατζέντας # Topic of email templates YourMembershipRequestWasReceived=Η συνδρομή σας ελήφθη. -YourMembershipWasValidated=Η ιδιότητα μέλους σας επικυρώθηκε -YourSubscriptionWasRecorded=Η τελευταία σας συνδρομή καταγράφηκε +YourMembershipWasValidated=Η συνδρομή σας επικυρώθηκε +YourSubscriptionWasRecorded=Η νέα σας συνδρομή καταγράφηκε SubscriptionReminderEmail=υπενθύμιση συνδρομής -YourMembershipWasCanceled=Η εγγραφή σας ακυρώθηκε -CardContent=Περιεχόμενα καρτέλας +YourMembershipWasCanceled=Η συνδρομή σας ακυρώθηκε +CardContent=Το περιεχόμενο της κάρτας μέλους σας # Text of email templates -ThisIsContentOfYourMembershipRequestWasReceived=Θα θέλαμε να σας ενημερώσουμε ότι το αίτημά σας για συμμετοχή έγινε δεκτό.

    +ThisIsContentOfYourMembershipRequestWasReceived=Θέλουμε να σας ενημερώσουμε ότι το αίτημα συμμετοχής σας ελήφθη.

    ThisIsContentOfYourMembershipWasValidated=Θέλουμε να σας ενημερώσουμε ότι η ιδιότητα μέλους σας έχει επικυρωθεί με τις ακόλουθες πληροφορίες:

    -ThisIsContentOfYourSubscriptionWasRecorded=Θέλουμε να σας ενημερώσουμε ότι η νέα συνδρομή σας έχει καταγραφεί.

    -ThisIsContentOfSubscriptionReminderEmail=Θα θέλαμε να σας ενημερώσουμε ότι η συνδρομή σας πρόκειται να λήξει ή έχει ήδη λήξει (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Ελπίζουμε ότι θα το ανανεώσετε.

    +ThisIsContentOfYourSubscriptionWasRecorded=Θέλουμε να σας ενημερώσουμε ότι η νέα σας συνδρομή καταγράφηκε. Παρακαλώ δείτε το συνημμένο τιμολόγιο.

    +ThisIsContentOfSubscriptionReminderEmail=Θα θέλαμε να σας ενημερώσουμε ότι η συνδρομή σας πρόκειται να λήξει ή έχει ήδη λήξει (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Ελπίζουμε ότι θα την ανανεώσετε.

    ThisIsContentOfYourCard=Αυτή είναι μια περίληψη των πληροφοριών που έχουμε σχετικά με εσάς. Επικοινωνήστε μαζί μας αν κάτι είναι λανθασμένο.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Αντικείμενο του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης που λαμβάνεται σε περίπτωση αυτόματης εγγραφής επισκέπτη DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Περιεχόμενο του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης που λαμβάνεται σε περίπτωση αυτόματης εγγραφής επισκέπτη DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την αυτόματη εγγραφή μέλους -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου σε μέλος σχετικά με την επικύρωση μέλους +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την επικύρωση της ιδιότητας του ως μέλος DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε νέα καταχώρηση συνδρομής DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή υπενθύμισης email όταν η συνδρομή πρόκειται να λήξει -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου σε μέλος σχετικά με την ακύρωση μέλους -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε περίπτωση αποκλεισμού μέλους +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την ακύρωση της συνδρομής του +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε περίπτωση αποκλεισμού του DescADHERENT_MAIL_FROM=Email αποστολέα για αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου -DescADHERENT_ETIQUETTE_TYPE=Format of labels page -DescADHERENT_ETIQUETTE_TEXT=Text printed on member address sheets -DescADHERENT_CARD_TYPE=Format of cards page -DescADHERENT_CARD_HEADER_TEXT=Text printed on top of member cards -DescADHERENT_CARD_TEXT=Text printed on member cards (align on left) -DescADHERENT_CARD_TEXT_RIGHT=Text printed on member cards (align on right) +DescADHERENT_ETIQUETTE_TYPE=Μορφή σελίδας ετικετών +DescADHERENT_ETIQUETTE_TEXT=Κείμενο τυπωμένο σε καταστάσεις διευθύνσεων μέλους +DescADHERENT_CARD_TYPE=Σελίδα της μορφής των καρτών μέλους +DescADHERENT_CARD_HEADER_TEXT=Κείμενο τυπωμένο στο πάνω μέρος των καρτών μελών +DescADHERENT_CARD_TEXT=Κείμενο τυπωμένο σε κάρτες μελών (στοίχιση αριστερά) +DescADHERENT_CARD_TEXT_RIGHT=Κείμενο τυπωμένο σε κάρτες μελών (στοίχιση δεξιά) DescADHERENT_CARD_FOOTER_TEXT=Κείμενο που θα εκτυπωθεί στο κάτω μέρος της κάρτας μέλους -ShowTypeCard=Show type '%s' -HTPasswordExport=htpassword file generation +ShowTypeCard=Εμφάνιση τύπου '%s' +HTPasswordExport=δημιουργία αρχείου htpassword NoThirdPartyAssociatedToMember=Κανένα τρίτο μέρος δεν σχετίζεται με αυτό το μέλος MembersAndSubscriptions=Μέλη και Συνδρομές -MoreActions=Complementary action on recording +MoreActions=Συμπληρωματική ενέργεια κατά την καταγραφή MoreActionsOnSubscription=Συμπληρωματική ενέργεια που προτείνεται από προεπιλογή κατά την καταγραφή μιας συνδρομής, η οποία πραγματοποιείται επίσης αυτόματα με την ηλεκτρονική πληρωμή μιας συνδρομής MoreActionBankDirect=Δημιουργήστε μια απευθείας εγγραφή σε τραπεζικό λογαριασμό MoreActionBankViaInvoice=Δημιουργήστε ένα τιμολόγιο και μια πληρωμή σε τραπεζικό λογαριασμό -MoreActionInvoiceOnly=Create an invoice with no payment +MoreActionInvoiceOnly=Δημιουργήστε ένα τιμολόγιο χωρίς πληρωμή LinkToGeneratedPages=Δημιουργία επαγγελματικών καρτών ή καταστάσεων διευθύνσεων -LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. -DocForAllMembersCards=Generate business cards for all members (Format for output actually setup : %s) -DocForOneMemberCards=Generate business cards for a particular member (Format for output actually setup: %s) -DocForLabels=Generate address sheets (Format for output actually setup: %s) +LinkToGeneratedPagesDesc=Αυτή η οθόνη σάς επιτρέπει να δημιουργείτε αρχεία PDF με επαγγελματικές κάρτες για όλα τα μέλη σας. +DocForAllMembersCards=Δημιουργία επαγγελματικών καρτών για όλα τα μέλη +DocForOneMemberCards=Δημιουργία επαγγελματικών καρτών για ένα συγκεκριμένο μέλος +DocForLabels=Δημιουργια Καταστάσεων(Φύλλων) διευθύνσεων SubscriptionPayment=Πληρωμή συνδρομής LastSubscriptionDate=Ημερομηνία τελευταίας πληρωμής συνδρομής LastSubscriptionAmount=Ποσό τελευταίας συνδρομής LastMemberType=Τύπος τελευταίου μέλους -MembersStatisticsByCountries=Μέλη στατιστικές ανά χώρα -MembersStatisticsByState=Τα μέλη στατιστικών στοιχείων από πολιτεία / επαρχία -MembersStatisticsByTown=Τα μέλη στατιστικών στοιχείων από την πόλη -MembersStatisticsByRegion=Στατιστικά Μελών ανά περιοχή +MembersStatisticsByCountries=Στατιστικά στοιχεία μελών ανά χώρα +MembersStatisticsByState=Στατιστικά στοιχεία μελών ανά Νομό/Δήμο +MembersStatisticsByTown=Στατιστικά μελών ανά πόλη +MembersStatisticsByRegion=Στατιστικά στοιχεία μελών ανά περιοχή NbOfMembers=Συνολικός αριθμός μελών NbOfActiveMembers=Συνολικός αριθμός ενεργών μελών -NoValidatedMemberYet=Δεν επικυρώνονται τα μέλη βρέθηκαν +NoValidatedMemberYet=Δεν βρέθηκαν επικυρωμένα μέλη MembersByCountryDesc=Αυτή η οθόνη εμφανίζει τα στατιστικά στοιχεία των μελών ανά χώρα. Τα γραφήματα και διαγράμματα εξαρτώνται από τη διαθεσιμότητα της διαδικτυακής υπηρεσίας γραφημάτων της Google καθώς και από τη διαθεσιμότητα μιας λειτουργικής σύνδεσης στο διαδίκτυο. -MembersByStateDesc=Αυτή η οθόνη εμφανίζει στατιστικά στοιχεία μελών ανά πολιτεία/επαρχία/καντόνι. +MembersByStateDesc=Αυτή η οθόνη εμφανίζει στατιστικά στοιχεία μελών ανά Νομό/Δήμο/Κοινότητα. MembersByTownDesc=Αυτή η οθόνη εμφανίζει στατιστικά των μελών ανά πόλη. MembersByNature=Αυτή η οθόνη εμφανίζει στατιστικά στοιχεία μελών ανά φύση. -MembersByRegion=Αυτή η οθόνη εμφανίζει στατιστικά των μελών ανά περιοχή. -MembersStatisticsDesc=Επιλέξτε στατιστικά στοιχεία που θέλετε να διαβάσετε ... -MenuMembersStats=Στατιστικά +MembersByRegion=Αυτή η οθόνη εμφανίζει στατιστικά μελών ανά περιοχή. +MembersStatisticsDesc=Επιλέξτε στατιστικά στοιχεία που θέλετε να διαβάσετε... +MenuMembersStats=Στατιστικά στοιχεία LastMemberDate=Ημερομηνία εγγραφής τελευταίου μέλους LatestSubscriptionDate=Ημερομηνία τελευταίας συνδρομής MemberNature=Φύση του μέλους MembersNature=Φύση των μελών Public=Οι πληροφορίες είναι δημόσιες -NewMemberbyWeb=Νέο μέλος πρόσθεσε. Εν αναμονή έγκρισης -NewMemberForm=Νέα μορφή μέλος +NewMemberbyWeb=Προστέθηκε νέο μέλος. Εν αναμονή έγκρισης +NewMemberForm=Φόρμα νέου μέλους SubscriptionsStatistics=Στατιστικά στοιχεία συνδρομών NbOfSubscriptions=Αριθμός συνδρομών AmountOfSubscriptions=Ποσό που εισπράχθηκε από συνδρομές -TurnoverOrBudget=Κύκλος εργασιών (για μια επιχείρηση), ή του προϋπολογισμού (για ένα ίδρυμα) +TurnoverOrBudget=Κύκλος εργασιών (για εταιρεία) ή προϋπολογισμός (για ίδρυμα) DefaultAmount=Προκαθορισμένο ποσό συνδρομών -CanEditAmount=Ο επισκέπτης μπορεί να επιλέξει/επεξεργαστεί το ποσό της συνεισφοράς του -MEMBER_NEWFORM_PAYONLINE=Μετάβαση στην ολοκληρωμένη ηλεκτρονική σελίδα πληρωμής -ByProperties=Εκ ΦΥΣΕΩΣ +CanEditAmount=Το ποσό της συνδρομής είναι της δίκης σας επιλογής +CanEditAmountDetail=Ο επισκέπτης μπορεί να επιλέξει/επεξεργαστεί το ποσό της συνεισφοράς του ανεξάρτητα από τον τύπο μέλους +AmountIsLowerToMinimumNotice=Επί συνολικού οφειλόμενου των %s +MEMBER_NEWFORM_PAYONLINE=Μετά την ηλεκτρονική εγγραφή, μεταβείτε αυτόματα στη σελίδα ηλεκτρονικής πληρωμής +ByProperties=Ανά φύση MembersStatisticsByProperties=Στατιστικά στοιχεία μελών κατά φύση VATToUseForSubscriptions=Συντελεστής ΦΠΑ που χρησιμοποιείται για εισφορές NoVatOnSubscription=Χωρίς ΦΠΑ για εισφορές -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Προϊόν που χρησιμοποιείται για τη γραμμή συνεισφοράς στο τιμολόγιο: %s -NameOrCompany=Όνομα ή Επωνυμία -SubscriptionRecorded=Καταγράφηκε η συνεισφορά -NoEmailSentToMember=Δεν αποστέλλεται μήνυμα ηλεκτρονικού ταχυδρομείου στο μέλος -EmailSentToMember=Το email αποστέλλεται στο μέλος στο %s -SendReminderForExpiredSubscriptionTitle=Στείλτε υπενθύμιση μέσω email για συνδρομές που έχουν λήξει +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Προϊόν που χρησιμοποιείται για τη γραμμή συνδρομής στο τιμολόγιο: %s +NameOrCompany=Όνομα ή Εταιρία +SubscriptionRecorded=Η συνδρομή καταγράφηκε +NoEmailSentToMember=Δεν εστάλη email στο μέλος +EmailSentToMember=Το email στάλθηκε στο μέλος την %s +SendReminderForExpiredSubscriptionTitle=Αποστολή υπενθύμισης μέσω email για συνδρομές που έχουν λήξει SendReminderForExpiredSubscription=Αποστολή υπενθύμισης μέσω email στα μέλη όταν η συνδρομή πρόκειται να λήξει (η παράμετρος είναι ο αριθμός ημερών πριν από το τέλος της ιδιότητας μέλους για την αποστολή της υπενθύμισης. Μπορεί να είναι μια λίστα ημερών που χωρίζονται με ερωτηματικό, για παράδειγμα '10;5;0;-5 ') -MembershipPaid=Καταβολή συνδρομής για την τρέχουσα περίοδο (μέχρι %s) -YouMayFindYourInvoiceInThisEmail=Μπορείτε να βρείτε το τιμολόγιο που επισυνάπτεται σε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου -XMembersClosed=%s μέλος (τα) έκλεισε +MembershipPaid=Η συνδρομή καταβλήθηκε για την τρέχουσα περίοδο (έως %s) +YouMayFindYourInvoiceInThisEmail=Σε αυτό το email θα βρείτε συνημμένο το τιμολόγιο σας +XMembersClosed=%s μέλη έκλεισαν XExternalUserCreated=Δημιουργήθηκαν %s εξωτερικοί χρήστες ForceMemberNature=Επιβολή φύσης μέλους(Άτομο ή Εταιρεία) -CreateDolibarrLoginDesc=Η δημιουργία σύνδεσης χρήστη για τα μέλη τους επιτρέπει να συνδεθούν με την εφαρμογή. Ανάλογα με τις εξουσιοδοτήσεις που χορηγούνται, θα μπορούν, για παράδειγμα, να συμβουλεύονται ή να τροποποιούν οι ίδιοι το αρχείο τους. -CreateDolibarrThirdPartyDesc=Ένα τρίτο μέρος είναι η νομική οντότητα που θα χρησιμοποιηθεί στο τιμολόγιο εάν αποφασίσετε να δημιουργήσετε τιμολόγιο για κάθε συνεισφορά. Θα μπορείτε να το δημιουργήσετε αργότερα κατά τη διαδικασία καταγραφής της συνεισφοράς. +CreateDolibarrLoginDesc=Η δημιουργία σύνδεσης χρήστη για τα μέλη τους επιτρέπει να συνδεθούν με την εφαρμογή. Ανάλογα με τις εξουσιοδοτήσεις που χορηγούνται, θα μπορούν, για παράδειγμα, να συμβουλεύονται ή να τροποποιούν οι ίδιοι τα αρχεία τους. +CreateDolibarrThirdPartyDesc=Ένα τρίτο μέρος είναι η νομική οντότητα που θα χρησιμοποιηθεί στο τιμολόγιο εάν αποφασίσετε να δημιουργήσετε τιμολόγιο για κάθε συνδρομή. Θα μπορείτε να το δημιουργήσετε αργότερα κατά τη διαδικασία καταγραφής της συνδρομής. MemberFirstname=Όνομα μέλους MemberLastname=Επώνυμο μέλους +MemberCodeDesc=Κωδικός μέλους, μοναδικός για όλα τα μέλη diff --git a/htdocs/langs/el_GR/modulebuilder.lang b/htdocs/langs/el_GR/modulebuilder.lang index 326b2d2c0b1..5663900d9fa 100644 --- a/htdocs/langs/el_GR/modulebuilder.lang +++ b/htdocs/langs/el_GR/modulebuilder.lang @@ -3,153 +3,154 @@ ModuleBuilderDesc=Αυτό το εργαλείο πρέπει να χρησιμ EnterNameOfModuleDesc=Εισάγετε το όνομα της ενότητας/εφαρμογής που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyModule, EcommerceForShop, SyncWithMySystem...) EnterNameOfObjectDesc=Εισάγετε το όνομα του αντικειμένου που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyObject, Student, Teacher...). Θα δημιουργηθούν, το αρχείο κλάσης CRUD αλλά και το αρχείο API, οι σελίδες για λίστα/προσθήκη/επεξεργασία/διαγραφή αντικειμένου και αρχεία SQL. EnterNameOfDictionaryDesc=Εισάγετε το όνομα του λεξικού που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyDico...). Θα δημιουργηθεί το αρχείο κλάσης, αλλά και το αρχείο SQL. -ModuleBuilderDesc2=Διαδρομή όπου παράγονται / επεξεργάζονται μονάδες (πρώτος κατάλογος για εξωτερικές μονάδες που ορίζονται στο %s): %s -ModuleBuilderDesc3=Παραγόμενα / επεξεργάσιμα δομοστοιχεία βρέθηκαν: %s -ModuleBuilderDesc4=Μια ενότητα ανιχνεύεται ως 'επεξεργάσιμη' όταν το αρχείο %s υπάρχει στη ρίζα του καταλόγου μονάδων -NewModule=Νέο Άρθρωμα +ModuleBuilderDesc2=Διαδρομή όπου δημιουργούνται/επεξεργάζονται οι ενότητες (πρώτος κατάλογος για εξωτερικές ενότητες που ορίζεται σε %s): %s +ModuleBuilderDesc3=Βρέθηκαν δημιουργημένες/επεξεργάσιμες ενότητες: %s +ModuleBuilderDesc4=Μια ενότητα ανιχνεύεται ως "επεξεργάσιμη&" όταν το αρχείο %s υπάρχει στη ρίζα του καταλόγου ενοτήτων +NewModule=Νέα ενότητα NewObjectInModulebuilder=Νέο αντικείμενο NewDictionary=Νέο λεξικό -ModuleKey=Πλήκτρο μονάδας -ObjectKey=Πλήκτρο αντικειμένου +ModuleKey=κλειδί ενότητας +ObjectKey=Κλειδί αντικειμένου DicKey=Κλειδί λεξικού ModuleInitialized=Η ενότητα αρχικοποιήθηκε -FilesForObjectInitialized=Τα αρχεία για νέο αντικείμενο '%s' έχουν αρχικοποιηθεί -FilesForObjectUpdated=Τα αρχεία για το αντικείμενο '%s' ενημερώνονται (αρχείο .sql και αρχείο .class.php) -ModuleBuilderDescdescription=Εισαγάγετε εδώ όλες τις γενικές πληροφορίες που περιγράφουν την ενότητα σας. -ModuleBuilderDescspecifications=Μπορείτε να εισάγετε εδώ μια λεπτομερή περιγραφή των προδιαγραφών της μονάδας σας που δεν έχει ήδη δομηθεί σε άλλες καρτέλες. Έτσι έχετε εύκολη πρόσβαση σε όλους τους κανόνες που πρέπει να αναπτυχθούν. Επίσης, αυτό το περιεχόμενο κειμένου θα συμπεριληφθεί στην παραγόμενη τεκμηρίωση (δείτε την τελευταία καρτέλα). Μπορείτε να χρησιμοποιήσετε τη μορφή Markdown, αλλά συνιστάται να χρησιμοποιήσετε τη μορφή Asciidoc (σύγκριση μεταξύ .md και .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). -ModuleBuilderDescobjects=Καθορίστε εδώ τα αντικείμενα που θέλετε να διαχειριστείτε με την ενότητα σας. Θα δημιουργηθεί μια κλάση CRUD DAO, αρχεία SQL, λίστα καταγραφής αντικειμένων, δημιουργία / επεξεργασία / προβολή μιας εγγραφής και ένα API. +FilesForObjectInitialized=Αρχικοποιήθηκαν τα αρχεία για το νέο αντικείμενο '%s' +FilesForObjectUpdated=Ενημερώθηκαν τα αρχεία για το αντικείμενο "%s" (αρχεία .sql και αρχείο .class.php) +ModuleBuilderDescdescription=Εισάγετε εδώ όλες τις γενικές πληροφορίες που περιγράφουν την ενότητα σας. +ModuleBuilderDescspecifications=Μπορείτε να εισάγετε εδώ μια λεπτομερή περιγραφή των προδιαγραφών της ενότητας σας που δεν έχει ήδη δομηθεί σε άλλες καρτέλες. Έτσι έχετε εύκολη πρόσβαση σε όλους τους κανόνες που πρέπει να αναπτυχθούν. Επίσης, αυτό το περιεχόμενο κειμένου θα συμπεριληφθεί στην παραγόμενη τεκμηρίωση (δείτε την τελευταία καρτέλα). Μπορείτε να χρησιμοποιήσετε τη μορφή Markdown, αλλά συνιστάται να χρησιμοποιήσετε τη μορφή Asciidoc (σύγκριση μεταξύ .md και .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=Καθορίστε εδώ τα αντικείμενα που θέλετε να διαχειριστείτε με την ενότητα σας. Θα δημιουργηθούν μια κλάση CRUD DAO, αρχεία SQL, σελίδα λίστας καταγραφής αντικειμένων, δημιουργία/επεξεργασία/προβολή μιας εγγραφής και ένα API. ModuleBuilderDescmenus=Αυτή η καρτέλα είναι αφιερωμένη στον ορισμό καταχωρήσεων μενού που παρέχονται από την ενότητα σας. ModuleBuilderDescpermissions=Αυτή η καρτέλα είναι αφιερωμένη στον ορισμό των νέων δικαιωμάτων που θέλετε να παρέχετε με την ενότητα σας. -ModuleBuilderDesctriggers=Αυτή είναι η άποψη των ενεργοποιητών που παρέχονται από την ενότητα σας. Για να συμπεριλάβετε τον κώδικα που εκτελείται όταν ξεκινά ένα ενεργοποιημένο επιχειρηματικό συμβάν, απλά επεξεργαστείτε αυτό το αρχείο. -ModuleBuilderDeschooks=Αυτή η καρτέλα είναι αφιερωμένη στα άγκιστρα. -ModuleBuilderDescwidgets=Αυτή η καρτέλα είναι αφιερωμένη στη διαχείριση / δημιουργία widgets. -ModuleBuilderDescbuildpackage=Μπορείτε να δημιουργήσετε εδώ ένα πακέτο πακέτου "έτοιμο για διανομή" (ένα κανονικό αρχείο .zip) της μονάδας σας και ένα αρχείο τεκμηρίωσης "έτοιμο για διανομή". Απλά κάντε κλικ στο κουμπί για να δημιουργήσετε το πακέτο ή το αρχείο τεκμηρίωσης. -EnterNameOfModuleToDeleteDesc=Μπορείτε να διαγράψετε την υπομονάδα σας. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Όλα τα αρχεία κωδικοποίησης της μονάδας (δημιουργούνται ή δημιουργούνται χειροκίνητα) ΚΑΙ δομημένα δεδομένα και τεκμηρίωση θα διαγραφούν! -EnterNameOfObjectToDeleteDesc=Μπορείτε να διαγράψετε ένα αντικείμενο. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Όλα τα αρχεία κωδικοποίησης (που δημιουργούνται ή δημιουργούνται χειροκίνητα) που σχετίζονται με αντικείμενο θα διαγραφούν! +ModuleBuilderDesctriggers=Αυτή είναι η προβολή των triggers που παρέχονται από την ενότητα σας. Για να συμπεριλάβετε κώδικα που εκτελείται όταν ξεκινά ένα triggered επιχειρηματικό συμβάν, απλά επεξεργαστείτε αυτό το αρχείο. +ModuleBuilderDeschooks=Αυτή η καρτέλα είναι αφιερωμένη στα hooks. +ModuleBuilderDescwidgets=Αυτή η καρτέλα είναι αφιερωμένη στη διαχείριση/δημιουργία γραφικών στοιχείων(widgets). +ModuleBuilderDescbuildpackage=Μπορείτε να δημιουργήσετε εδώ ένα "έτοιμο για διανομή" πακέτο (δηλαδή ένα κανονικό αρχείο .zip) της ενότητας σας και ένα "έτοιμο για διανομή" αρχείο τεκμηρίωσης. Απλά κάντε κλικ στο κουμπί για να δημιουργήσετε το πακέτο ή το αρχείο τεκμηρίωσης. +EnterNameOfModuleToDeleteDesc=Μπορείτε να διαγράψετε την ενότητα σας. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Όλα τα αρχεία της ενότητας (αυτόματα ή χειροκίνητα δημιουργημένα) καθώς ΚΑΙ τα δομημένα δεδομένα και η τεκμηρίωση θα διαγραφούν! +EnterNameOfObjectToDeleteDesc=Μπορείτε να διαγράψετε ένα αντικείμενο. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Όλα τα αρχεία κωδικοποίησης (αυτόματα ή χειροκίνητα δημιουργημένα) που σχετίζονται με το αντικείμενο θα διαγραφούν! DangerZone=Επικίνδυνη ζώνη BuildPackage=Δημιουργία πακέτου -BuildPackageDesc=Μπορείτε να δημιουργήσετε ένα πακέτο zip της αίτησής σας έτσι ώστε να είστε έτοιμοι να το διανείμετε σε οποιοδήποτε Dolibarr. Μπορείτε επίσης να το διανείμετε ή να το πουλήσετε στην αγορά όπως το DoliStore.com . -BuildDocumentation=Δημιουργία εγγράφων +BuildPackageDesc=Μπορείτε να δημιουργήσετε ένα πακέτο zip της εφαρμογής σας ώστε να είστε έτοιμοι να το διανείμετε σε οποιαδήποτε έκδοση Dolibarr. Μπορείτε επίσης να το διανείμετε ή να το πουλήσετε σε κάποιο marketplace όπως τo DoliStore.com . +BuildDocumentation=Τεκμηρίωση δημιουργίας πακετου ModuleIsNotActive=Αυτή η ενότητα δεν έχει ενεργοποιηθεί ακόμα. Μεταβείτε στο %s για να το ενεργοποιήσετε ή κάντε κλικ εδώ -ModuleIsLive=Αυτή η ενότητα έχει ενεργοποιηθεί. Οποιαδήποτε αλλαγή μπορεί να σπάσει ένα τρέχον ζωντανό χαρακτηριστικό. +ModuleIsLive=Αυτή η ενότητα έχει ενεργοποιηθεί. Οποιαδήποτε αλλαγή μπορεί να προκαλέσει άμεση δυσλειτουργία. DescriptionLong=Μεγάλη περιγραφή -EditorName=Όνομα του συντάκτη +EditorName=Όνομα εκδότη EditorUrl=Διεύθυνση URL του επεξεργαστή DescriptorFile=Περιγραφικό αρχείο της ενότητας ClassFile=Αρχείο για την κλάση PHP DAO CRUD -ApiClassFile=Αρχείο για την τάξη API της PHP -PageForList=PHP σελίδα για λίστα καταγραφής -PageForCreateEditView=Σελίδα PHP για δημιουργία / επεξεργασία / προβολή μιας εγγραφής +ApiClassFile=Αρχείο για την κλάση API της PHP +PageForList=Σελίδα PHP για λίστα καταγραφής +PageForCreateEditView=Σελίδα PHP για δημιουργία/επεξεργασία/προβολή μιας εγγραφής PageForAgendaTab=Σελίδα PHP για καρτέλα συμβάντος -PageForDocumentTab=PHP σελίδα για καρτέλα έγγραφο -PageForNoteTab=Σελίδα PHP για την καρτέλα σημείωσης +PageForDocumentTab=Σελίδα PHP για καρτέλα εγγράφου +PageForNoteTab=Σελίδα PHP για καρτέλα σημειώσεων PageForContactTab=Σελίδα PHP για καρτέλα επαφών -PathToModulePackage=Διαδρομή προς φερμουάρ του πακέτου ενότητας / εφαρμογής -PathToModuleDocumentation=Διαδρομή αρχείου τεκμηρίωσης ενότητας / εφαρμογής (%s) -SpaceOrSpecialCharAreNotAllowed=Δεν επιτρέπονται χώροι ή ειδικοί χαρακτήρες. -FileNotYetGenerated=Αρχείο που δεν έχει ακόμα δημιουργηθεί +PathToModulePackage=Διαδρομή προς το αρχείο zip του πακέτου της ενότητας/εφαρμογής +PathToModuleDocumentation=Διαδρομή προς το αρχείο τεκμηρίωσης ενότητας/εφαρμογής (%s) +SpaceOrSpecialCharAreNotAllowed=Δεν επιτρέπονται κενά(space) ή ειδικοί χαρακτήρες. +FileNotYetGenerated=Το αρχείο δεν έχει δημιουργηθεί ακόμη RegenerateClassAndSql=Αναγκαστική ενημέρωση των αρχείων .class και .sql RegenerateMissingFiles=Δημιουργία αρχείων που λείπουν SpecificationFile=Αρχείο τεκμηρίωσης -LanguageFile=Αρχείο για τη γλώσσα +LanguageFile=Αρχείο γλώσσας ObjectProperties=Ιδιότητες αντικειμένου -ConfirmDeleteProperty=Είστε βέβαιοι ότι θέλετε να διαγράψετε την ιδιότητα %s ; Αυτό θα αλλάξει τον κώδικα στην τάξη PHP, αλλά και θα αφαιρέσει τη στήλη από τον ορισμό πίνακα του αντικειμένου. -NotNull=Οχι κενό +ConfirmDeleteProperty=Είστε σίγουροι ότι θέλετε να διαγράψετε την ιδιότητα %s; Αυτό θα αλλάξει τον κώδικα στην κλαση PHP αλλά και θα αφαιρέσει τη στήλη από τον πίνακα ορισμού του αντικειμένου. +NotNull=Not NULL NotNullDesc=1=Ορίστε τη βάση δεδομένων σε NOT NULL, 0=Να επιτρέπονται null τιμές, -1=Να επιτρέπονται null τιμές επιβάλλοντας την τιμή σε NULL εάν είναι κενή ('' ή 0) -SearchAll=Χρησιμοποιείται για την αναζήτηση όλων -DatabaseIndex=Δείκτης βάσης δεδομένων -FileAlreadyExists=Το αρχείο%s ήδη υπάρχει -TriggersFile=Αρχείο για τον κωδικό ενεργοποίησης -HooksFile=Αρχείο για τον κωδικό γάντζων -ArrayOfKeyValues=Διάταξη πλήκτρου-κύματος -ArrayOfKeyValuesDesc=Πλαίσιο κλειδιών και τιμών αν το πεδίο είναι μια λίστα συνδυασμών με σταθερές τιμές -WidgetFile=Αρχείο εικονοστοιχείων -CSSFile=CSS +SearchAll=Χρησιμοποιείται για την "αναζήτηση" +DatabaseIndex=Ευρετήριο βάσης δεδομένων +FileAlreadyExists=Το αρχείο %s υπάρχει ήδη +TriggersFile=Αρχείο για τον κώδικα triggers +HooksFile=Αρχείο για τον κώδικα hooks +ArrayOfKeyValues=Διάταξη κλειδιού-τιμής +ArrayOfKeyValuesDesc=Διάταξη κλειδιών και τιμών αν το πεδίο είναι ένα πλαίσιο λίστας(combo box) με σταθερές τιμές +WidgetFile=Αρχείο widget +CSSFile=αρχείο CSS JSFile=Αρχείο Javascript ReadmeFile=Αρχείο Readme ChangeLog=Αρχείο ChangeLog -TestClassFile=Αρχείο για την τάξη της μονάδας PHP +TestClassFile=Αρχείο για την κλάση PHP Unit Test SqlFile=Αρχείο sql PageForLib=Αρχείο για την κοινή βιβλιοθήκη PHP -PageForObjLib=Αρχείο για τη βιβλιοθήκη PHP αφιερωμένη στο αντικείμενο +PageForObjLib=Αρχείο για τη βιβλιοθήκη PHP αφιερωμένη στα αντικείμενα(objects) SqlFileExtraFields=Αρχείο Sql για συμπληρωματικά χαρακτηριστικά SqlFileKey=Αρχείο Sql για κλειδιά SqlFileKeyExtraFields=Αρχείο Sql για κλειδιά συμπληρωματικών χαρακτηριστικών AnObjectAlreadyExistWithThisNameAndDiffCase=Ένα αντικείμενο υπάρχει ήδη με αυτό το όνομα και μια διαφορετική περίπτωση -UseAsciiDocFormat=Μπορείτε να χρησιμοποιήσετε τη μορφή Markdown, αλλά συνιστάται να χρησιμοποιήσετε τη μορφή Asciidoc (omparison μεταξύ .md και .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +UseAsciiDocFormat=Μπορείτε να χρησιμοποιήσετε τη μορφή Markdown, αλλά συνιστάται να χρησιμοποιήσετε τη μορφή Asciidoc (σύγκριση μεταξύ .md και .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) IsAMeasure=Είναι ένα μέτρο -DirScanned=Κατάλογος σάρωση -NoTrigger=Δεν ενεργοποιείται -NoWidget=Δεν γραφικό στοιχείο +DirScanned=Ο κατάλογος σαρώθηκε +NoTrigger=Χωρίς trigger +NoWidget=Χωρίς γραφικό στοιχείο GoToApiExplorer=API explorer ListOfMenusEntries=Λίστα καταχωρήσεων μενού ListOfDictionariesEntries=Λίστα καταχωρήσεων λεξικών ListOfPermissionsDefined=Λίστα καθορισμένων δικαιωμάτων SeeExamples=Δείτε παραδείγματα εδώ -EnabledDesc=Προϋπόθεση να είναι ενεργό αυτό το πεδίο (Παραδείγματα: 1 ή $ conf-> global-> MYMODULE_MYOPTION) +EnabledDesc=Προϋπόθεση να είναι ενεργό αυτό το πεδίο (Παραδείγματα: 1 ή $conf->global->MYMODULE_MYOPTION) VisibleDesc=Είναι ορατό το πεδίο; (Παραδείγματα: 0=Ποτέ δεν είναι ορατό, 1=Ορατό στη λίστα και δημιουργία/ενημέρωση/προβολή φορμών, 2=Ορατό μόνο στη λίστα, 3=Ορατό μόνο στη φόρμα δημιουργίας/ενημέρωσης/προβολής (όχι στη λίστα), 4=Ορατό στη λίστα και ενημέρωση/προβολή μόνο φόρμας (όχι δημιουργία), 5=Ορατό μόνο στη φόρμα προβολής και λίστας (όχι δημιουργία, όχι ενημέρωση).

    Η χρήση αρνητικής τιμής σημαίνει ότι το πεδίο δεν εμφανίζεται από προεπιλογή στη λίστα, αλλά μπορεί να επιλεγεί για προβολή).

    Μπορεί να είναι μια έκφραση, για παράδειγμα:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) DisplayOnPdfDesc=Εμφανίστε αυτό το πεδίο σε συμβατά έγγραφα PDF, μπορείτε να διαχειριστείτε τη θέση με το πεδίο "Position".
    Επί του παρόντος, γνωστά μοντέλα συμβατών PDF είναι: eratosthene (παραγγελίες), espadon (αποστολές), sponge (τιμολόγια), cyan (προσφορές), cornas (παραγγελίες προμηθευτή)

    Για έγγραφα:
    0 = δεν εμφανίζονται
    1 = εμφανίζονται
    2 = εμφανίζονται μόνο αν δεν είναι κενά

    Για τις γραμμές εγγράφου:
    0 = δεν εμφανίζονται
    1 = εμφανίζονται σε μια στήλη
    3 = εμφανιζονται στη στήλη περιγραφής της γραμμής μετά την περιγραφή
    4 = εμφανίζονται στη στήλη περιγραφής μετά την περιγραφή μόνο αν δεν είναι κενή DisplayOnPdf=Εμφάνιση σε PDF -IsAMeasureDesc=Μπορεί η τιμή του πεδίου να συσσωρευτεί για να πάρει ένα σύνολο σε λίστα; (Παραδείγματα: 1 ή 0) +IsAMeasureDesc=Μπορεί η τιμή του πεδίου να αθροιστεί για να πάρει ένα σύνολο σε λίστα; (Παραδείγματα: 1 ή 0) SearchAllDesc=Χρησιμοποιείται το πεδίο για την αναζήτηση από το εργαλείο γρήγορης αναζήτησης; (Παραδείγματα: 1 ή 0) -SpecDefDesc=Εισαγάγετε εδώ όλη την τεκμηρίωση που θέλετε να παράσχετε με τη λειτουργική σας μονάδα, η οποία δεν έχει ήδη καθοριστεί από άλλες καρτέλες. Μπορείτε να χρησιμοποιήσετε το .md ή καλύτερα, την πλούσια σύνταξη .asciidoc. -LanguageDefDesc=Εισαγάγετε σε αυτό το αρχείο όλα τα κλειδιά και τη μετάφραση για κάθε αρχείο γλώσσας. -MenusDefDesc=Καθορίστε εδώ τα μενού που παρέχονται από την ενότητα σας +SpecDefDesc=Εισάγετε εδώ όλη την τεκμηρίωση που θέλετε να παράσχετε με την ενότητα σας, η οποία δεν έχει ήδη καθοριστεί από άλλες καρτέλες. Μπορείτε να χρησιμοποιήσετε το .md ή καλύτερα, την πλούσια σύνταξη .asciidoc. +LanguageDefDesc=Εισάγετε σε αυτό το αρχείο όλα τα κλειδιά και τη μετάφραση για κάθε αρχείο γλώσσας. +MenusDefDesc=Καθορίστε εδώ τα μενού που θα παρέχονται από την ενότητα σας DictionariesDefDesc=Καθορίστε εδώ τα λεξικά που παρέχονται από την ενότητα σας PermissionsDefDesc=Καθορίστε εδώ τα νέα δικαιώματα που παρέχονται από την ενότητα σας MenusDefDescTooltip=Τα μενού που παρέχονται από την ενότητα/εφαρμογή σας ορίζονται στον πίνακα $this->menus στο αρχείο περιγραφής της ενότητας. Μπορείτε να επεξεργαστείτε αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή.

    Σημείωση: Μόλις καθοριστεί (και ενεργοποιηθεί ξανά η ενότητα), τα μενού είναι επίσης ορατά στο πρόγραμμα επεξεργασίας μενού που είναι διαθέσιμο στους διαχειριστές στο %s. -DictionariesDefDescTooltip=Τα λεξικά που παρέχονται από την υπομονάδα / εφαρμογή σας καθορίζονται στη συστοιχία $ this-> λεξικά στο αρχείο περιγραφής του module. Μπορείτε να επεξεργαστείτε χειροκίνητα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή.

    Σημείωση: Αφού οριστεί (και ενεργοποιηθεί ξανά η ενότητα), τα λεξικά είναι επίσης ορατά στην περιοχή εγκατάστασης σε χρήστες διαχειριστή στο %s. -PermissionsDefDescTooltip=Τα δικαιώματα που παρέχονται από την ενότητα/εφαρμογή σας καθορίζονται στη συστοιχία $ this-> rights στην ενότητα περιγραφής αρχείου. Μπορείτε να επεξεργαστείτε χειροκίνητα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή.

    Σημείωση: Μόλις οριστεί (και ενεργοποιηθεί ξανά η ενότητα), τα δικαιώματα είναι ορατά στην προεπιλεγμένη ρύθμιση %s. -HooksDefDesc=Ορίστε στην ιδιότητα module_parts ['hooks'] , στον περιγραφέα της μονάδας, το πλαίσιο των άγκιστρων που θέλετε να διαχειριστείτε (η λίστα των πλαισίων μπορεί να βρεθεί από μια αναζήτηση στο ' initHooks ' ( 'in core code).
    Επεξεργαστείτε το αρχείο αγκίστρου για να προσθέσετε τον κώδικα των αγκιστρωμένων λειτουργιών σας (οι συναρπαστικές λειτουργίες μπορούν να βρεθούν με μια αναζήτηση στο ' executeHooks ' στον βασικό κώδικα). -TriggerDefDesc=Καθορίστε στο αρχείο ενεργοποίησης τον κώδικα που θέλετε να εκτελείτε όταν εκτελείται ένα επαγγελματικό συμβάν εκτός της ενότητας (συμβάντα που ενεργοποιούνται από άλλες ενότητες). +DictionariesDefDescTooltip=Τα λεξικά που παρέχονται από την ενότητα/εφαρμογή σας καθορίζονται στη διάταξη $this->dictionaries στο αρχείο περιγραφής της ενότητας. Μπορείτε να επεξεργαστείτε χειροκίνητα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή.

    Σημείωση: Αφού οριστεί (και ενεργοποιηθεί ξανά η ενότητα), τα λεξικά είναι επίσης ορατά στις Ρυθμίσεις σε χρήστες με δικαιώματα διαχειριστή στο %s. +PermissionsDefDescTooltip=Τα δικαιώματα που παρέχονται από την ενότητα/εφαρμογή σας καθορίζονται στη διάταξη $ this-> rights στο αρχειο περιγραφής της ενότητας. Μπορείτε να επεξεργαστείτε χειροκίνητα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή.

    Σημείωση: Μόλις οριστεί (και ενεργοποιηθεί ξανά η ενότητα), τα δικαιώματα είναι ορατά στην προεπιλεγμένη ρύθμιση δικαιωμάτων %s. +HooksDefDesc=Καθορίστε στην ιδιότητα module_parts['hooks'] , στο αρχείο περιγραφής της ενότητας, το context των hooks που θέλετε να διαχειριστείτε (η λίστα των context μπορεί να βρεθεί με μια αναζήτηση στο ' initHooks(' στον core code).
    Επεξεργαστείτε το αρχείο hook για να προσθέσετε τον κώδικα των συνδεδεμένων συναρτήσεων (οι συναρτήσεις με δυνατότητα hook μπορούν να βρεθούν με μια αναζήτηση στο 'executeHooks' στον core code). +TriggerDefDesc=Καθορίστε στο αρχείο trigger τον κώδικα που θέλετε να εκτελείτε όταν εκτελείται ένα επαγγελματικό συμβάν εκτός της ενότητας (συμβάντα που ενεργοποιούνται από άλλες ενότητες). SeeIDsInUse=Δείτε τα αναγνωριστικά που χρησιμοποιούνται στην εγκατάσταση σας -SeeReservedIDsRangeHere=Δείτε το φάσμα των αποκλειστικών αναγνωριστικών +SeeReservedIDsRangeHere=Δείτε το εύρος των δεσμευμένων αναγνωριστικών ToolkitForDevelopers=Εργαλειοθήκη για προγραμματιστές Dolibarr -TryToUseTheModuleBuilder=Αν έχετε γνώσεις SQL και PHP, μπορείτε να χρησιμοποιήσετε τον οδηγό εγγενών κατασκευαστών ενοτήτων.
    Ενεργοποιήστε την ενότητα %s και χρησιμοποιήστε τον οδηγό κάνοντας κλικ στο στο πάνω δεξιό μενού.
    Προειδοποίηση: Πρόκειται για ένα προηγμένο χαρακτηριστικό προγραμματιστή, μην πειραματιστείτε στην τοποθεσία παραγωγής σας! -SeeTopRightMenu=Βλέπω στο πάνω δεξιό μενού +TryToUseTheModuleBuilder=Αν έχετε γνώσεις SQL και PHP, μπορείτε να χρησιμοποιήσετε τον οδηγό της εγγενούς κατασκευής ενοτήτας.
    Ενεργοποιήστε την ενότητα %s και χρησιμοποιήστε τον οδηγό κάνοντας κλικ στο στο πάνω δεξιό μενού.
    Προειδοποίηση: Πρόκειται για ένα προηγμένο χαρακτηριστικό για προγραμματιστές, μην πειραματιστείτε στο παραγωγικό σας site αλλά σε δοκιμαστικό περιβάλλον μόνο +SeeTopRightMenu=Δείτε στο επάνω δεξιά μενού AddLanguageFile=Προσθήκη αρχείου γλώσσας -YouCanUseTranslationKey=Μπορείτε να χρησιμοποιήσετε εδώ ένα κλειδί που είναι το κλειδί μετάφρασης που βρίσκεται στο αρχείο γλώσσας (δείτε την καρτέλα "Γλώσσες") +YouCanUseTranslationKey=Μπορείτε να χρησιμοποιήσετε εδώ ένα κλειδί που είναι το κλειδί μετάφρασης που βρίσκεται στο αρχείο γλώσσας (δείτε την καρτέλα "Γλώσσες") DropTableIfEmpty=(Διαγράψτε τον πίνακα αν είναι άδειος) TableDoesNotExists=Ο πίνακας %s δεν υπάρχει TableDropped=Ο πίνακας %s διαγράφηκε -InitStructureFromExistingTable=Δημιουργήστε τη συμβολοσειρά συστοιχιών δομής ενός υπάρχοντος πίνακα +InitStructureFromExistingTable=Δημιουργήστε τη διαταξη δομής ενός υπάρχοντος πίνακα UseAboutPage=Μην δημιουργήσετε τη σελίδα Πληροφορίες UseDocFolder=Απενεργοποίηση του φακέλου τεκμηρίωσης UseSpecificReadme=Χρησιμοποιήστε ένα συγκεκριμένο ReadMe -ContentOfREADMECustomized=Σημείωση: Το περιεχόμενο του αρχείου README.md έχει αντικατασταθεί από τη συγκεκριμένη τιμή που έχει οριστεί στη ρύθμιση του ModuleBuilder. +ContentOfREADMECustomized=Σημείωση: Το περιεχόμενο του αρχείου README.md έχει αντικατασταθεί από συγκεκριμένη τιμή που έχει οριστεί στη ρύθμιση του ModuleBuilder. RealPathOfModule=Πραγματική διαδρομή της ενότητας ContentCantBeEmpty=Το περιεχόμενο του αρχείου δεν μπορεί να είναι άδειο -WidgetDesc=Μπορείτε να δημιουργήσετε και να επεξεργαστείτε εδώ τα widget που θα ενσωματωθούν με τη μονάδα σας. +WidgetDesc=Μπορείτε να δημιουργήσετε και να επεξεργαστείτε εδώ τα γραφικά στοιχεία(widgets) που θα ενσωματωθούν με τη μονάδα σας. CSSDesc=Μπορείτε να δημιουργήσετε και να επεξεργαστείτε εδώ ένα αρχείο με εξατομικευμένο CSS ενσωματωμένο στην ενότητα σας. -JSDesc=Μπορείτε να δημιουργήσετε και να επεξεργαστείτε εδώ ένα αρχείο με ενσωματωμένο Javascript με την ενότητα σας. +JSDesc=Μπορείτε να δημιουργήσετε και να επεξεργαστείτε εδώ ένα αρχείο με Javascript ενσωματωμένο με την ενότητα σας. CLIDesc=Μπορείτε να δημιουργήσετε εδώ ορισμένα scripts γραμμής εντολών που θέλετε να παρέχετε με την ενότητα σας. CLIFile=Αρχείο CLI NoCLIFile=Δεν υπάρχουν αρχεία CLI UseSpecificEditorName = Χρησιμοποιήστε ένα συγκεκριμένο όνομα επεξεργαστή -UseSpecificEditorURL = Χρησιμοποιήστε μια συγκεκριμένη διεύθυνση επεξεργασίας -UseSpecificFamily = Χρησιμοποιήστε μια συγκεκριμένη οικογένεια +UseSpecificEditorURL = Χρησιμοποιήστε μια συγκεκριμένη διεύθυνση URL επεξεργασίας +UseSpecificFamily = Χρησιμοποιήστε μια συγκεκριμένη κατηγορία UseSpecificAuthor = Χρησιμοποιήστε έναν συγκεκριμένο συντάκτη UseSpecificVersion = Χρησιμοποιήστε μια συγκεκριμένη αρχική έκδοση IncludeRefGeneration=Η αναφορά του αντικειμένου πρέπει να δημιουργείται αυτόματα από προσαρμοσμένους κανόνες αρίθμησης IncludeRefGenerationHelp=Επιλέξτε αυτό εάν θέλετε να συμπεριλάβετε κώδικα για τη διαχείριση της αυτόματης δημιουργίας αναφοράς χρησιμοποιώντας προσαρμοσμένους κανόνες αρίθμησης IncludeDocGeneration=Θέλω να δημιουργήσω ορισμένα έγγραφα από πρότυπα για το αντικείμενο -IncludeDocGenerationHelp=Εάν το ελέγξετε αυτό, θα δημιουργηθεί κάποιος κώδικας για να προσθέσετε ένα πλαίσιο "Δημιουργία εγγράφου" στην εγγραφή. -ShowOnCombobox=Δείξτε την αξία σε συνδυασμό -KeyForTooltip=Κλειδί για επεξήγηση εργαλείου +IncludeDocGenerationHelp=Εάν το επιλέξετε, θα δημιουργηθεί κάποιος κώδικας για να προσθέσετε ένα πλαίσιο "Δημιουργία εγγράφου" στην εγγραφή. +ShowOnCombobox=Εμφάνιση τιμής στο combobox +KeyForTooltip=Κλειδί αναδυόμενου πλαισίου επεξήγησης(tooltip) CSSClass=CSS για επεξεργασία/δημιουργία φόρμας CSSViewClass=CSS για φόρμα ανάγνωσης CSSListClass=CSS για λίστα -NotEditable=Δεν είναι δυνατή η επεξεργασία +NotEditable=Μη επεξεργάσιμο ForeignKey=Ξένο κλειδί TypeOfFieldsHelp=Τύπος πεδίων:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' σημαίνει ότι προσθέτουμε ένα κουμπί + μετά τον συνδυασμό για να δημιουργήσουμε την εγγραφή
    'φίλτρο' είναι μια συνθήκη sql, για παράδειγμα:'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Μεταροπέας από Ascii σε HTML AsciiToPdfConverter=Μεταροπέας από Ascii σε PDF TableNotEmptyDropCanceled=Ο πίνακας δεν είναι άδειος. Η διαγραφή ακυρώθηκε. -ModuleBuilderNotAllowed=Το εργαλείο δημιουργίας ενοτήτων είναι διαθέσιμο αλλά δεν επιτρέπεται στον χρήστη σας. -ImportExportProfiles=Εισαγωγή και εξαγωγή προφίλ -ValidateModBuilderDesc=Ορίστε το σε 1 εάν θέλετε να καλείται η μέθοδος $this->validateField() του αντικειμένου για την επικύρωση του περιεχομένου του πεδίου κατά την εισαγωγή ή την ενημέρωση. Ορίστε 0 εάν δεν απαιτείται επικύρωση. +ModuleBuilderNotAllowed=Το εργαλείο δημιουργίας ενοτήτων(module builder) είναι διαθέσιμο αλλά δεν επιτρέπεται στον χρήστη σας. +ImportExportProfiles=Προφίλ εισαγωγής και εξαγωγής +ValidateModBuilderDesc=Ορίστε το σε 1 εάν θέλετε να καλείται η μέθοδος $this->validateField() του αντικειμένου για την επικύρωση του περιεχομένου του πεδίου κατά την εισαγωγή ή την ενημέρωση. Ορίστε σε 0 εάν δεν απαιτείται επικύρωση. WarningDatabaseIsNotUpdated=Προειδοποίηση: Η βάση δεδομένων δεν ενημερώνεται αυτόματα, πρέπει να διαγράψετε τους πίνακες και να απενεργοποιήσετε-ενεργοποιήσετε την ενότητα για την αναδημιουργία πινάκων LinkToParentMenu=Γονικό μενού (fk_xxxxmenu) ListOfTabsEntries=Λίστα καταχωρήσεων καρτελών TabsDefDesc=Ορίστε εδώ τις καρτέλες που παρέχονται από την ενότητα σας -TabsDefDescTooltip=Οι καρτέλες που παρέχονται από την ενότητα/εφαρμογή σας ορίζονται στον πίνακα $this->tabs στο αρχείο περιγραφής της ενότητας. Μπορείτε να επεξεργαστείτε μη αυτόματα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή. +TabsDefDescTooltip=Οι καρτέλες που παρέχονται από την ενότητα/εφαρμογή σας ορίζονται στον πίνακα $this->tabs στο αρχείο περιγραφής της ενότητας. Μπορείτε να επεξεργαστείτε μη αυτόματα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή. +BadValueForType=Λάθος τιμή για τον τύπο %s diff --git a/htdocs/langs/el_GR/mrp.lang b/htdocs/langs/el_GR/mrp.lang index ef1ec64f668..181ede5bfec 100644 --- a/htdocs/langs/el_GR/mrp.lang +++ b/htdocs/langs/el_GR/mrp.lang @@ -11,8 +11,8 @@ Bom=Κατάλογοι Υλικών BillOfMaterials=Κατάλογος Υλικών BillOfMaterialsLines=Γραμμές Κατάλογου Υλικών BOMsSetup=Ρύθμιση της ενότητας BOM -ListOfBOMs=Λίστα Καταλογών Υλικών - BOM -ListOfManufacturingOrders=Κατάλογος Εντολών Παραγωγής +ListOfBOMs=Κατάλογοι Υλικών - BOM +ListOfManufacturingOrders=Εντολές Παραγωγής NewBOM=Νέος κατάλογος υλικών ProductBOMHelp=Προϊόν για δημιουργία (ή αποσυναρμολόγηση) με αυτό το BOM.
    Σημείωση: Τα προϊόντα με την ιδιότητα «Φύση προϊόντος» = «Πρώτη ύλη» δεν είναι ορατά σε αυτήν τη λίστα. BOMsNumberingModules=Πρότυπα αρίθμησης BOM @@ -24,10 +24,11 @@ WatermarkOnDraftBOMs=Υδατογράφημα σε προσχέδιο BOM FreeLegalTextOnMOs=Ελεύθερο κείμενο σε έγγραφο της MO WatermarkOnDraftMOs=Υδατογράφημα σε προσχέδιο της ΜΟ ConfirmCloneBillOfMaterials=Είστε σίγουροι ότι θέλετε να κλωνοποιήσετε τον κατάλογο υλικών %s; -ConfirmCloneMo=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την Εντολή Παραγωγής %s; +ConfirmCloneMo=Είστε σίγουροι ότι θέλετε να αντιγράψετε την Εντολή Παραγωγής %s; ManufacturingEfficiency=Αποτελεσματικότητα παραγωγής ConsumptionEfficiency=Αποτελεσματικότητα κατανάλωσης -ValueOfMeansLoss=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% κατά την κατασκευή ή την αποσυναρμολόγηση +Consumption=Κατανάλωση +ValueOfMeansLoss=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% κατά την παραγωγής ή την αποσυναρμολόγηση ValueOfMeansLossForProductProduced=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% του παραγόμενου προϊόντος DeleteBillOfMaterials=Διαγραφή κατάλογου υλικών DeleteMo=Διαγραφή Εντολής Παραγωγής @@ -43,7 +44,7 @@ EstimatedDuration=Εκτιμώμενη Διάρκεια EstimatedDurationDesc=Εκτιμώμενη διάρκεια για την κατασκευή (ή την αποσυναρμολόγηση) αυτού του προϊόντος χρησιμοποιώντας αυτό το BOM ConfirmValidateBom=Είστε σίγουροι ότι θέλετε να επικυρώσετε το BOM με την αναφορά %s ;(θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) ConfirmCloseBom=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτό το BOM; (δεν θα μπορείτε πλέον να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) -ConfirmReopenBom=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το BOM; (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) +ConfirmReopenBom=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά αυτό το BOM; (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) StatusMOProduced=Παράχθηκε QtyFrozen=Κατεψυγμένη ποσότητα QuantityFrozen=Κατεψυγμένη ποσότητα @@ -59,7 +60,7 @@ ToProduce=Προς παραγωγή ToObtain=Προς απόκτηση QtyAlreadyConsumed=Η ποσότητα καταναλώθηκε ήδη QtyAlreadyProduced=Η ποσότητα έχει ήδη παραχθεί -QtyRequiredIfNoLoss=Ποσότητα που απαιτείται εάν δεν υπάρχει απώλεια (η απόδοση κατασκευής είναι 100%%) +QtyRequiredIfNoLoss=Ποσότητα που απαιτείται εάν δεν υπάρχει απώλεια (η απόδοση παραγωγής είναι 100%%) ConsumeOrProduce=Καταναλώστε ή Παράγετε ConsumeAndProduceAll=Καταναλώστε και παράξτε τα όλα Manufactured=Κατασκευάστηκε @@ -82,6 +83,7 @@ ProductsToProduce=Προϊόντα για παραγωγή UnitCost=Κόστος μονάδας TotalCost=Συνολικό κόστος BOMTotalCost=Το κόστος για την παραγωγή αυτού του BOM με βάση το κόστος κάθε ποσότητας και προϊόντος προς κατανάλωση (χρησιμοποιήστε την τιμή κόστους εάν έχει οριστεί, διαφορετικά τη μέση σταθμισμένη τιμή εάν έχει οριστεί, διαφορετικά την καλύτερη τιμή αγοράς) +BOMTotalCostService=Εάν η ενότητα "Workstation" είναι ενεργοποιημένη και ένας σταθμός εργασίας ορίζεται από προεπιλογή στη γραμμή, τότε ο υπολογισμός είναι "ποσότητα (μετατροπή σε ώρες) x σταθμός εργασίας ahr", διαφορετικά "ποσότητα (μετατροπή σε ώρες) x τιμή κόστους της υπηρεσίας" GoOnTabProductionToProduceFirst=Πρέπει πρώτα να έχετε ξεκινήσει την παραγωγή για να κλείσετε μια Εντολή Παραγωγής (Ανατρέξτε στην καρτέλα '%s'). Αλλά μπορείτε να την ακυρώσετε. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ένα κιτ δεν μπορεί να χρησιμοποιηθεί σε BOM ή MO Workstation=Σταθμός εργασίας @@ -111,4 +113,8 @@ CollapseBOMHelp=Μπορείτε να ορίσετε την προεπιλεγμ MOAndLines=Εντολές και γραμμές παραγωγής MoChildGenerate=Δημιουργία θυγατρικού Mo ParentMo=Γονικό MO -MOChild=MO Παιδί +MOChild=Θυγατρικό MO +BomCantAddChildBom=Η ονοματολογία %s υπάρχει ήδη στο δέντρο που οδηγεί στην ονοματολογία %s +BOMNetNeeds = Καθαρές ανάγκες BOM +BOMProductsList=Προϊόντα BOM +BOMServicesList=Υπηρεσίες BOM diff --git a/htdocs/langs/el_GR/oauth.lang b/htdocs/langs/el_GR/oauth.lang index bf9dd9c16b8..885656a347e 100644 --- a/htdocs/langs/el_GR/oauth.lang +++ b/htdocs/langs/el_GR/oauth.lang @@ -1,32 +1,36 @@ # Dolibarr language file - Source file is en_US - oauth ConfigOAuth=Διαμόρφωση OAuth OAuthServices=Υπηρεσίες OAuth -ManualTokenGeneration=Δημιουργία χειροκίνητου διακριτικού -TokenManager=Διαχειριστής Token -IsTokenGenerated=Έχει δημιουργηθεί διακριτικό; -NoAccessToken=Δεν υπάρχει διακριτικό πρόσβασης αποθηκευμένο στην τοπική βάση δεδομένων -HasAccessToken=Το διακριτικό πρόσβασης δημιουργήθηκε και αποθηκεύτηκε στην τοπική βάση δεδομένων -NewTokenStored=Το διακριτικό περιελήφθη και αποθηκεύτηκε +ManualTokenGeneration=Χειροκίνητη δημιουργία token +TokenManager=Διαχειριστής token +IsTokenGenerated=Έχει δημιουργηθεί token; +NoAccessToken=Κανένα token πρόσβασης δεν αποθηκεύτηκε στην τοπική βάση δεδομένων +HasAccessToken=Ένα token πρόσβασης δημιουργήθηκε και αποθηκεύτηκε στην τοπική βάση δεδομένων +NewTokenStored=Το token αποθηκεύτηκε ToCheckDeleteTokenOnProvider=Πατήστε εδώ για να ελέγξετε/διαγράψετε την εξουσιοδότηση που έχει αποθηκευτεί από %s πάροχο ανοιχτού πρωτοκόλλου εξουσιοδότησης OAuth -TokenDeleted=Το διακριτικό έχει διαγραφεί -RequestAccess=Κάντε κλικ εδώ για να ζητήσετε / ανανεώσετε την πρόσβαση και να λάβετε ένα νέο διακριτικό για αποθήκευση -DeleteAccess=Κάντε κλικ εδώ για να διαγράψετε το διακριτικό +TokenDeleted=Το token διαγράφηκε +RequestAccess=Κάντε κλικ εδώ για να ζητήσετε/ανανεώσετε την πρόσβαση και να λάβετε ένα νέο token +DeleteAccess=Κάντε κλικ εδώ για να διαγράψετε το token UseTheFollowingUrlAsRedirectURI=Χρησιμοποιήστε την ακόλουθη διεύθυνση URL ως URI ανακατεύθυνσης κατά τη δημιουργία των διαπιστευτηρίων σας με τον παροχέα υπηρεσιών OAuth: -ListOfSupportedOauthProviders=Καταχωρίστε τα διαπιστευτήρια που παρέχει ο πάροχος υπηρεσιών OAuth2. Υποστηρίζονται μόνο υποστηριζόμενοι πάροχοι OAuth2 εδώ. Αυτές οι υπηρεσίες μπορούν να χρησιμοποιηθούν από άλλες μονάδες που χρειάζονται έλεγχο ταυτότητας OAuth2. -OAuthSetupForLogin=Για να δημιουργήσετε ένα διακριτικό OAuth +ListOfSupportedOauthProviders=Προσθέστε τους πάροχους σας OAuth2 token. Στη συνέχεια, μεταβείτε στη σελίδα διαχειριστή του παρόχου OAuth για να δημιουργήσετε/λάβετε ένα αναγνωριστικό και ένα μυστικό OAuth και να τα αποθηκεύσετε εδώ. Μόλις τελειώσετε, ενεργοποιήστε την άλλη καρτέλα για να δημιουργήσετε το token σας. +OAuthSetupForLogin=Σελίδα διαχείρισης (δημιουργία/διαγραφή) OAuth token SeePreviousTab=Δείτε την προηγούμενη καρτέλα -OAuthIDSecret=OAuth ID και μυστικό -TOKEN_REFRESH=Ανανέωση σημείου Token -TOKEN_EXPIRED=Το κουπόνι έληξε -TOKEN_EXPIRE_AT=Το Token λήγει στο -TOKEN_DELETE=Διαγραφή αποθηκευμένου διακριτικού -OAUTH_GOOGLE_NAME=OAuth υπηρεσία Google +OAuthProvider=Πάροχος OAuth +OAuthIDSecret=OAuth ID και Secret +TOKEN_REFRESH=Ανανέωση token +TOKEN_EXPIRED=Το token έληξε +TOKEN_EXPIRE_AT=Το token λήγει +TOKEN_DELETE=Διαγραφή αποθηκευμένου token +OAUTH_GOOGLE_NAME=Υπηρεσία Google OAuth OAUTH_GOOGLE_ID=Αναγνωριστικό Google OAuth -OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Μεταβείτε σε αυτή τη σελίδα και μετά "Διαπιστευτήρια" για να δημιουργήσετε διαπιστευτήρια OAuth -OAUTH_GITHUB_NAME=Υπηρεσία OAuth GitHub -OAUTH_GITHUB_ID=Αναγνωριστικό OAuth GitHub -OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Μεταβείτε σε αυτή τη σελίδα και στη συνέχεια "Εγγραφή νέας εφαρμογής" για να δημιουργήσετε διαπιστευτήρια OAuth +OAUTH_GOOGLE_SECRET=Google OAuth Secret +OAUTH_GITHUB_NAME=Υπηρεσία GitHub OAuth +OAUTH_GITHUB_ID=Αναγνωριστικό GitHub OAuth +OAUTH_GITHUB_SECRET=GitHub OAuth Secret +OAUTH_URL_FOR_CREDENTIAL=Μεταβείτε σε αυτή τη σελίδα για να δημιουργήσετε ή να λάβετε το αναγνωριστικό και το Secret OAuth OAUTH_STRIPE_TEST_NAME=Δοκιμή OAuth Stripe -OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Ζωντανά +OAUTH_STRIPE_LIVE_NAME=OAuth Stripe +OAUTH_ID=Αναγνωριστικό OAuth +OAUTH_SECRET=Secret OAuth +OAuthProviderAdded=Προστέθηκε πάροχος OAuth +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Υπάρχει ήδη μια καταχώριση για αυτόν τον πάροχο και την ετικέτα OAuth  diff --git a/htdocs/langs/el_GR/opensurvey.lang b/htdocs/langs/el_GR/opensurvey.lang index fe92b6c07b0..7793120c14a 100644 --- a/htdocs/langs/el_GR/opensurvey.lang +++ b/htdocs/langs/el_GR/opensurvey.lang @@ -1,63 +1,63 @@ # Dolibarr language file - Source file is en_US - opensurvey -Survey=Ψηφοφορία -Surveys=Ψηφοφορίες -OrganizeYourMeetingEasily=Οργανώστε τις συναντήσεις και τις δημοσκοπήσεις σας εύκολα. Πρώτα επιλέξτε τον τύπο της δημοσκόπησης ... -NewSurvey=Νέα δημοσκόπηση -OpenSurveyArea=Περιοχή δημοσκοπήσεων +Survey=Δημοσκοπική έρευνα +Surveys=Δημοσκοπικές έρευνες +OrganizeYourMeetingEasily=Οργανώστε τις συναντήσεις και τις δημοσκοπήσεις σας εύκολα. Πρώτα επιλέξτε τον τύπο της δημοσκοπικής έρευνας ... +NewSurvey=Νέα δημοσκοπική έρευνα +OpenSurveyArea=Τομεας δημοσκοπήσεων AddACommentForPoll=Μπορείτε να προσθέσετε ένα σχόλιο στη δημοσκόπηση ... -AddComment=Προσθέστε σχόλιο -CreatePoll=Δημιουργία δημοσκόπησης +AddComment=Προσθήκη σχολίου +CreatePoll=Δημιουργία δημοσκοπικής έρευνας PollTitle=Τίτλος δημοσκόπησης -ToReceiveEMailForEachVote=Θα λάβετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου για κάθε ψηφοφορία -TypeDate=Ημερομηνία -TypeClassic=Πρότυπο +ToReceiveEMailForEachVote=Λάβετε ένα email για κάθε ψήφο +TypeDate=Τύπου ημερομηνίας +TypeClassic=Βασικός τύπος OpenSurveyStep2=Επιλέξτε τις ημερομηνίες σας μεταξύ των ελεύθερων ημερών (γκρι). Οι επιλεγμένες ημέρες είναι πράσινες. Μπορείτε να καταργήσετε την επιλογή μιας ημέρας που επιλέξατε προηγουμένως, κάνοντας κλικ ξανά σε αυτήν RemoveAllDays=Αφαιρέστε όλες τις ημέρες CopyHoursOfFirstDay=Αντιγραφή ωρών της πρώτης ημέρας RemoveAllHours=Αφαιρέστε όλες τις ώρες SelectedDays=Επιλεγμένες ημέρες -TheBestChoice=Η καλύτερη επιλογή σήμερα είναι -TheBestChoices=Οι καλύτερες επιλογές σήμερα είναι +TheBestChoice=Η καλύτερη επιλογή αυτή τη στιγμή είναι +TheBestChoices=Οι καλύτερες επιλογές αυτή τη στιγμή είναι with=με OpenSurveyHowTo=Εάν συμφωνείτε να ψηφίσετε σε αυτή τη δημοσκόπηση, θα πρέπει να δώσετε το όνομά σας, επιλέξετε τις τιμές που ταιριάζουν καλύτερα για σας και επιβεβαιώστε με το πλήκτρο συν στο τέλος της γραμμής. CommentsOfVoters=Σχόλια των ψηφοφόρων -ConfirmRemovalOfPoll=Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτή τη δημοσκόπηση (και όλες τις ψήφους) +ConfirmRemovalOfPoll=Είστε σίγουροι ότι θέλετε να καταργήσετε αυτήν τη δημοσκόπηση (και όλες τις ψήφους) RemovePoll=Κατάργηση δημοσκόπησης -UrlForSurvey=URL για να πάρετε άμεση πρόσβαση σε δημοσκόπηση -PollOnChoice=Θέλετε να δημιουργήσετε μια δημοσκόπηση πολλαπλών επιλογών για μια δημοσκόπηση. Πρώτα εισάγετε όλες τις πιθανές επιλογές για την ψηφοφορία σας: -CreateSurveyDate=Δημιουργήστε μια ημερομηνία των δημοσκοπήσεων -CreateSurveyStandard=Δημιουργήστε ένα πρότυπο δημοσκόπησης +UrlForSurvey=URL για να αποκτήσετε άμεση πρόσβαση στη δημοσκόπηση +PollOnChoice=Δημιουργείτε μια δημοσκόπηση πολλαπλών επιλογών. Εισάγετε πρώτα όλες τις πιθανές επιλογές για τη δημοσκόπηση σας: +CreateSurveyDate=Δημιουργήστε μια δημοσκόπηση ημερομηνίας +CreateSurveyStandard=Δημιουργήστε μια τυπική δημοσκόπηση CheckBox=Απλό πλαίσιο επιλογής -YesNoList=Λίστα (άδειο/ναι/όχι) -PourContreList=Λίστα (άδειο/για/από) -AddNewColumn=Προσθέσετε νέα στήλη -TitleChoice=Επιλέξτε ετικέτα +YesNoList=Λίστα (κενό/ναι/όχι) +PourContreList=Λίστα (κενό/υπέρ/κατά) +AddNewColumn=Προσθήκη νέας στήλης +TitleChoice=Ετικέτα επιλογής ExportSpreadsheet=Εξαγωγή αποτελεσμάτων σε υπολογιστικό φύλλο -ExpireDate=Όριο ημερομηνίας +ExpireDate=Ημερομηνία λήξης NbOfSurveys=Αριθμός δημοσκοπήσεων -NbOfVoters=Χωρίς ψηφοφόρους +NbOfVoters=Αριθμός ψηφοφόρων SurveyResults=Αποτελέσματα -PollAdminDesc=Έχετε την άδεια για να αλλάξει όλες τις γραμμές ψηφοφορίας της δημοσκόπησης αυτής με το κουμπί "Επεξεργασία". Μπορείτε, επίσης, να αφαιρέσετε μια στήλη ή μια γραμμή με %s. Μπορείτε επίσης να προσθέσετε μια νέα στήλη με %s. -5MoreChoices=5 περισσότερες επιλογές +PollAdminDesc=Επιτρέπεται να αλλάξετε όλες τις γραμμές ψήφου αυτής της δημοσκόπησης με το κουμπί "Επεξεργασία". Μπορείτε, επίσης, να αφαιρέσετε μια στήλη ή μια γραμμή με %s. Μπορείτε επίσης να προσθέσετε μια νέα στήλη με %s. +5MoreChoices=5 ακόμη επιλογές Against=Κατά -YouAreInivitedToVote=Μπορείτε προσκαλέσετε να ψηφίσουν για αυτή τη δημοσκόπηση -VoteNameAlreadyExists=Το όνομα αυτό χρησιμοποιείται ήδη για αυτή τη δημοσκόπηση -AddADate=Προσθέσετε μια ημερομηνία -AddStartHour=Προσθέσετε ώρα έναρξη -AddEndHour=Προσθέσετε ώρα λήξης -votes=vote(s) +YouAreInivitedToVote=Σας προσκαλούμε να ψηφίσετε σε αυτήν τη δημοσκοπική έρευνα +VoteNameAlreadyExists=Αυτό το όνομα χρησιμοποιήθηκε ήδη για αυτήν τη δημοσκόπηση +AddADate=Προσθήκη ημερομηνίας +AddStartHour=Προσθήκη ώρας έναρξης +AddEndHour=Προσθήκη ώρας λήξης +votes=ψήφοι NoCommentYet=Δεν έχουν αναρτηθεί σχόλια για αυτή τη δημοσκόπηση ακόμα -CanComment=Οι ψηφοφόροι μπορούν να σχολιάσουν στη δημοσκόπηση +CanComment=Οι ψηφοφόροι μπορούν να σχολιάσουν τη δημοσκόπηση YourVoteIsPrivate=Αυτή η δημοσκόπηση είναι ιδιωτική, κανείς δεν μπορεί να δει την ψήφο σας. YourVoteIsPublic=Αυτή η δημοσκόπηση είναι δημόσια, οποιοσδήποτε έχει τον σύνδεσμο μπορεί να δει την ψήφο σας. -CanSeeOthersVote=Οι ψηφοφόροι μπορούν να δουν την ψήφο άλλων -SelectDayDesc=Για κάθε επιλεγμένη ημέρα, μπορείτε να επιλέξετε ή όχι τις ώρες συνάντησης με την ακόλουθη μορφή:
    - άδειο,
    - "8h", "8H" ή "8:00" για να δώσετε μια ώρα έναρξης της συνάντησης,
    - "8-11", "8h-11h", "8H-11H" ή "8: 00-11: 00" για την ώρα έναρξης και λήξης μιας σύσκεψης,
    - "8h15-11h15", "8H15-11H15" ή "8: 15-11: 15" για το ίδιο πράγμα αλλά με λεπτά. +CanSeeOthersVote=Οι ψηφοφόροι μπορούν να δουν την ψήφο των άλλων +SelectDayDesc=Για κάθε επιλεγμένη ημέρα, μπορείτε να επιλέξετε ή όχι ώρες σύσκεψης στην ακόλουθη μορφή:
    - κενό,
    - "8h", "8H" ή "8:00" για να δώσετε την ώρα έναρξης μιας σύσκεψης,
    - "8- 11", "8h-11h", "8H-11H" ή "8:00-11:00" για να δώσετε την ώρα έναρξης και λήξης μιας σύσκεψης,
    - "8h15-11h15", "8H15-11H15" ή "8: 15-11:15" το ίδιο με το προηγούμενο αλλά με λεπτά. BackToCurrentMonth=Πίσω στον τρέχοντα μήνα -ErrorOpenSurveyFillFirstSection=Δεν έχετε συμπληρώσει το πρώτο τμήμα για τη δημιουργία τις δημοσκόπησης +ErrorOpenSurveyFillFirstSection=Δεν έχετε συμπληρώσει την πρώτη ενότητα της δημιουργίας δημοσκόπησης ErrorOpenSurveyOneChoice=Εισάγετε τουλάχιστον μία επιλογή ErrorInsertingComment=Υπήρξε ένα σφάλμα κατά την εισαγωγή του σχόλιου σας MoreChoices=Εισάγετε περισσότερες επιλογές για τους ψηφοφόρους -SurveyExpiredInfo=Η δημοσκόπηση αυτή έχει λήξει ή ο χρόνος ψηφοφορίας έληξε. -EmailSomeoneVoted=%s έχει γεμίσει μια γραμμή. \nΜπορείτε να βρείτε τη δημοσκόπηση σας στο σύνδεσμο:\n %s +SurveyExpiredInfo=Η ψηφοφορία έχει κλείσει ή έχει λήξει η καθυστέρηση της ψηφοφορίας. +EmailSomeoneVoted=Το %s έχει συμπληρώσει μια γραμμή.\nΜπορείτε να βρείτε τη δημοσκόπηση σας στον σύνδεσμο:\n%s ShowSurvey=Εμφάνιση έρευνας -UserMustBeSameThanUserUsedToVote=Θα πρέπει να έχετε ψηφίσει και να χρησιμοποιήσετε το ίδιο όνομα χρήστη που χρησιμοποιήθηκε για την ψήφο, να δημοσιεύσετε ένα σχόλιο +UserMustBeSameThanUserUsedToVote=Πρέπει να έχετε ψηφίσει και να χρησιμοποιησατε το ίδιο όνομα χρήστη με εκείνον που ψήφισε, για να δημοσιεύσετε ένα σχόλιο diff --git a/htdocs/langs/el_GR/orders.lang b/htdocs/langs/el_GR/orders.lang index 3e99ce1fa3e..ee15f50fb2f 100644 --- a/htdocs/langs/el_GR/orders.lang +++ b/htdocs/langs/el_GR/orders.lang @@ -1,8 +1,9 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Περιοχή παραγγελιών πελατών -SuppliersOrdersArea=Περιοχή παραγγελιών αγοράς +OrderExists=Μια παραγγελία ήταν ήδη ανοιχτή και συνδεδεμένη με αυτήν την προσφορά, επομένως καμία άλλη παραγγελία δεν δημιουργήθηκε αυτόματα +OrdersArea=Τομέας παραγγελιών πελατών +SuppliersOrdersArea=Τομέας παραγγελιών αγοράς OrderCard=Καρτέλα παραγγελίας -OrderId=Αρ.Παραγγελίας +OrderId=Αναγνωριστικό Παραγγελίας Order=Παραγγελία PdfOrderTitle=Παραγγελία Orders=Παραγγελίες @@ -12,60 +13,60 @@ OrderDateShort=Ημερομηνία παραγγελίας OrderToProcess=Παραγγελία προς επεξεργασία NewOrder=Νέα παραγγελία NewSupplierOrderShort=Νέα παραγγελία -NewOrderSupplier=Νέα εντολή αγοράς -ToOrder=Δημιουργία πραγγελίας +NewOrderSupplier=Νέα Παραγγελία Αγοράς +ToOrder=Δημιουργία παραγγελίας MakeOrder=Δημιουργία παραγγελίας SupplierOrder=Παραγγελία αγοράς -SuppliersOrders=Εντολές αγοράς -SaleOrderLines=Γραμμές παραγγελιών πωλήσεων +SuppliersOrders=Παραγγελίες αγοράς +SaleOrderLines=Γραμμές εντολών πωλήσεων PurchaseOrderLines=Γραμμές παραγγελιών αγοράς -SuppliersOrdersRunning=Τρέχουσες εντολές αγοράς -CustomerOrder=Παραγγελία πώλησης -CustomersOrders=Παραγγελίες πωλήσεων -CustomersOrdersRunning=Τρέχουσες παραγγελίες πωλήσεων -CustomersOrdersAndOrdersLines=Παραγγελίες πωλήσεων και λεπτομέρειες παραγγελίας -OrdersDeliveredToBill=Παραγγελίες πωλήσεων που παραδίδονται στο λογαριασμό -OrdersToBill=Παραγγελίες πωλήσεων που παραδόθηκαν -OrdersInProcess=Παραγγελίες πωλήσεων σε εξέλιξη -OrdersToProcess=Παραγγελίες πωλήσεων για επεξεργασία +SuppliersOrdersRunning=Τρέχουσες παραγγελίες αγοράς +CustomerOrder=Εντολή πώλησης +CustomersOrders=Εντολές πωλήσεων +CustomersOrdersRunning=Τρέχουσες εντολές πωλήσεων +CustomersOrdersAndOrdersLines=Εντολές πωλήσεων και λεπτομέρειες παραγγελίας +OrdersDeliveredToBill=Παραδομένες εντολές πωλήσεων προς τιμολόγηση +OrdersToBill=Παραδομένες εντολές πωλήσεων +OrdersInProcess=Εντολές πωλήσεων σε εξέλιξη +OrdersToProcess=Εντολές πωλήσεων προς επεξεργασία SuppliersOrdersToProcess=Παραγγελίες αγοράς για επεξεργασία -SuppliersOrdersAwaitingReception=Οι εντολές αγοράς αναμένουν τη λήψη -AwaitingReception=Αναμονή λήψης +SuppliersOrdersAwaitingReception=Παραγγελίες αγοράς εν αναμονή παραλαβής +AwaitingReception=Εν αναμονή παραλαβής StatusOrderCanceledShort=Ακυρωμένη StatusOrderDraftShort=Προσχέδιο StatusOrderValidatedShort=Επικυρωμένη -StatusOrderSentShort=Αποστολή στη διαδικασία +StatusOrderSentShort=Σε εξέλιξη StatusOrderSent=Αποστολή σε εξέλιξη StatusOrderOnProcessShort=Παραγγέλθηκε StatusOrderProcessedShort=Ολοκληρωμένη StatusOrderDelivered=Παραδόθηκε StatusOrderDeliveredShort=Παραδόθηκε -StatusOrderToBillShort=Για πληρωμή +StatusOrderToBillShort=Παραδόθηκε StatusOrderApprovedShort=Εγκεκριμένη -StatusOrderRefusedShort=Αρνήθηκε +StatusOrderRefusedShort=Απορρίφθηκε StatusOrderToProcessShort=Προς επεξεργασία -StatusOrderReceivedPartiallyShort=Λήφθηκε μερικώς -StatusOrderReceivedAllShort=Τα προϊόντα που ελήφθησαν +StatusOrderReceivedPartiallyShort=Εν μέρει παραλήφθηκε +StatusOrderReceivedAllShort=Προϊόντα που παραλήφθηκαν StatusOrderCanceled=Ακυρωμένη StatusOrderDraft=Προσχέδιο (χρειάζεται επικύρωση) StatusOrderValidated=Επικυρωμένη StatusOrderOnProcess=Παραγγέλθηκε - Αναμονή παραλαβής StatusOrderOnProcessWithValidation=Παραγγέλθηκε - Αναμονή παραλαβής ή επικύρωσης StatusOrderProcessed=Ολοκληρωμένη -StatusOrderToBill=Προς πληρωμή -StatusOrderApproved=Εγγεκριμένη -StatusOrderRefused=Αρνήθηκε -StatusOrderReceivedPartially=Λήφθηκε μερικώς -StatusOrderReceivedAll=Όλα τα προϊόντα που ελήφθησαν -ShippingExist=Μια αποστολή, υπάρχει -QtyOrdered=Qty ordered -ProductQtyInDraft=Ποσότητα του προϊόντος στην πρόχειρη παραγγελία -ProductQtyInDraftOrWaitingApproved=Ποσότητα του προϊόντος στο σχέδιο ή στις παραγγελίες που έχουν εγκριθεί, δεν έχει ακόμα παραγγελθεί +StatusOrderToBill=Παραδόθηκε +StatusOrderApproved=Εγκρίθηκε +StatusOrderRefused=Απορρίφθηκε +StatusOrderReceivedPartially=Εν μέρει παραλήφθηκε +StatusOrderReceivedAll=Παραλήφθηκαν όλα τα προϊόντα +ShippingExist=Υπάρχει αποστολή +QtyOrdered=Ποσότητα παραγγελίας +ProductQtyInDraft=Ποσότητα προϊόντος στα προσχέδια παραγγελίων +ProductQtyInDraftOrWaitingApproved=Ποσότητα προϊόντος σε προσχέδια ή σε παραγγελίες αναμονή έγκρισης , δεν έχει δοθεί εντολή ακόμη MenuOrdersToBill=Παραγγελίες προς χρέωση MenuOrdersToBill2=Χρεώσιμες παραγγελίες ShipProduct=Αποστολή Προϊόντος CreateOrder=Δημιουργία παραγγελίας -RefuseOrder=Άρνηση παραγγελίας +RefuseOrder=Απόρριψη παραγγελίας ApproveOrder=Έγκριση παραγγελίας Approve2Order=Έγκριση παραγγελίας (δεύτερο επίπεδο) UserApproval=Χρήστης για έγκριση @@ -77,124 +78,124 @@ CancelOrder=Ακύρωση παραγγελίας OrderReopened= Παραγγελία %s Ανοίγει ξανά AddOrder=Δημιουργία παραγγελίας AddSupplierOrderShort=Δημιουργία παραγγελίας -AddPurchaseOrder=Δημιουργία εντολής αγοράς -AddToDraftOrders=Προσθήκη στο σχέδιο παραγγελιας +AddPurchaseOrder=Δημιουργία παραγγελίας αγοράς +AddToDraftOrders=Προσθήκη στο προσχέδιο παραγγελίας ShowOrder=Εμφάνιση παραγγελίας -OrdersOpened=Παραγγελίες για επεξεργασία +OrdersOpened=Παραγγελίες προς επεξεργασία NoDraftOrders=Δεν υπάρχουν προσχέδια παραγγελιών -NoOrder=Αρ. παραγγελίας -NoSupplierOrder=Δεν υπάρχει εντολή αγοράς -LastOrders=Τελευταίες παραγγελίες πωλήσεων %s -LastCustomerOrders=Τελευταίες παραγγελίες πωλήσεων %s -LastSupplierOrders=Τελευταίες παραγγελίες αγοράς %s +NoOrder=Καμιά παραγγελία +NoSupplierOrder=Δεν υπάρχει παραγγελία αγοράς +LastOrders=Τελευταίες %s εντολές πωλήσεων +LastCustomerOrders=Τελευταίες %s εντολές πωλήσεων +LastSupplierOrders=Τελευταίες %sπαραγγελίες αγοράς LastModifiedOrders=Τελευταίες %s τροποποιημένες παραγγελίες AllOrders=Όλες οι παραγγελίες -NbOfOrders=Πλήθος παραγγελιών +NbOfOrders=Αριθμός παραγγελιών OrdersStatistics=Στατιστικά παραγγελιών OrdersStatisticsSuppliers=Στατιστικά παραγγελίας αγοράς -NumberOfOrdersByMonth=Πλήθος παραγγελιών ανά μήνα +NumberOfOrdersByMonth=Αριθμός παραγγελιών ανά μήνα AmountOfOrdersByMonthHT=Ποσό παραγγελιών ανά μήνα (εκτός φόρου) ListOfOrders=Λίστα παραγγελιών CloseOrder=Κλείσιμο Παραγγελίας -ConfirmCloseOrder=Είστε βέβαιοι ότι θέλετε να ορίσετε αυτήν την παραγγελία ως παραδομένη; Μόλις παραδοθεί μια παραγγελία, μπορεί να οριστεί ως τιμολογημένη. -ConfirmDeleteOrder=Είστε σίγουρος ότι θέλετε να διαγράψετε την παραγγελία; -ConfirmValidateOrder=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτήν την παραγγελία με το όνομα %s ? -ConfirmUnvalidateOrder=Είστε βέβαιοι ότι θέλετε να επαναφέρετε τη σειρά %s για την κατάσταση κατάστασης; -ConfirmCancelOrder=Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν την παραγγελία; -ConfirmMakeOrder=Είστε βέβαιοι ότι θέλετε να επιβεβαιώσετε ότι πραγματοποιήσατε αυτήν την παραγγελία στο %s ; +ConfirmCloseOrder=Είστε σίγουροι ότι θέλετε να ορίσετε αυτήν την παραγγελία ως παραδομένη; Μόλις παραδοθεί μια παραγγελία, μπορεί να οριστεί ως τιμολογημένη. +ConfirmDeleteOrder=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την παραγγελία; +ConfirmValidateOrder=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την παραγγελία με το όνομα %s ; +ConfirmUnvalidateOrder=Είστε σίγουροι ότι θέλετε να επαναφέρετε την παραγγελία %s σε κατάσταση προσχεδίου; +ConfirmCancelOrder=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτήν την παραγγελία; +ConfirmMakeOrder=Είστε σίγουροι ότι θέλετε να επιβεβαιώσετε ότι πραγματοποιήσατε αυτήν την παραγγελία στο %s ; GenerateBill=Δημιουργία τιμολογίου -ClassifyShipped=Χαρακτηρισμός ως παραδοτέο -PassedInShippedStatus=ταξινομημένη παραδόθηκε +ClassifyShipped=Ταξινόμηση ως παραδομένη +PassedInShippedStatus=Ταξινόμηση ως παραδομένη YouCantShipThis=Δεν μπορώ να το ταξινομήσω αυτό. Ελέγξτε τα δικαιώματα χρήστη DraftOrders=Προσχέδια παραγγελιών -DraftSuppliersOrders=Σχέδια εντολών αγοράς +DraftSuppliersOrders=Προσχέδια παραγγελιών αγοράς OnProcessOrders=Παραγγελίες σε εξέλιξη -RefOrder=Κωδ. παραγγελίας +RefOrder=Αναφ. παραγγελίας RefCustomerOrder=Αναφ. παραγγελίας για τον πελάτη -RefOrderSupplier=Αναφ. παραγγελία για τον πωλητή -RefOrderSupplierShort=Αναφ. προμηθευτής παραγγελιών -SendOrderByMail=Αποστολή παραγγελίας με email +RefOrderSupplier=Αναφ. παραγγελίας για τον προμηθευτή +RefOrderSupplierShort=Αναφ. προμηθευτή παραγγελίας +SendOrderByMail=Αποστολή παραγγελίας μέσω ταχυδρομείου ActionsOnOrder=Ενέργειες στην παραγγελία -NoArticleOfTypeProduct=No article of type 'product' so no shippable article for this order +NoArticleOfTypeProduct=Δεν υπάρχει αντικείμενο τύπου «προϊόν», επομένως δεν υπάρχει αντικείμενο αποστολής για αυτήν την παραγγελία OrderMode=Μέθοδος παραγγελίας -AuthorRequest=Request author -UserWithApproveOrderGrant=Users granted with "approve orders" permission. -PaymentOrderRef=Payment of order %s -ConfirmCloneOrder=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε αυτή την παραγγελία %s ? -DispatchSupplierOrder=Λήψη εντολής αγοράς %s -FirstApprovalAlreadyDone=Η πρώτη έγκριση ήδη έγινε -SecondApprovalAlreadyDone=Δεύτερη έγκριση έγινε ήδη -SupplierOrderReceivedInDolibarr=Η εντολή αγοράς %s έλαβε %s -SupplierOrderSubmitedInDolibarr=Παραγγελία αγοράς %s -SupplierOrderClassifiedBilled=Η εντολή αγοράς %s έχει οριστεί ως τιμολογημένη +AuthorRequest=Αιτών +UserWithApproveOrderGrant=Χρήστες στους οποίους χορηγείται άδεια "έγκρισης παραγγελιών". +PaymentOrderRef=Πληρωμή της παραγγελίας %s +ConfirmCloneOrder=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτή την παραγγελία %s ? +DispatchSupplierOrder=Λήψη παραγγελίας αγοράς %s +FirstApprovalAlreadyDone=Η πρώτη έγκριση έχει ήδη γίνει +SecondApprovalAlreadyDone=Η δεύτερη έγκριση έχει ήδη γίνει +SupplierOrderReceivedInDolibarr=Η παραγγελία αγοράς %s παρελήφθη %s +SupplierOrderSubmitedInDolibarr=Η παραγγελία αγοράς %s καταχωρήθηκε +SupplierOrderClassifiedBilled=Η παραγγελία αγοράς %s έχει οριστεί ως τιμολογημένη OtherOrders=Άλλες παραγγελίες SupplierOrderValidatedAndApproved=Η παραγγελία του προμηθευτή έχει επικυρωθεί και εγκριθεί: %s SupplierOrderValidated=Η παραγγελία του προμηθευτή είναι επικυρωμένη: %s ##### Types de contacts ##### -TypeContact_commande_internal_SALESREPFOLL=Αντιπροσωπευτική συνέχεια παραγγελίας πώλησης -TypeContact_commande_internal_SHIPPING=Representative following-up shipping -TypeContact_commande_external_BILLING=Customer invoice contact -TypeContact_commande_external_SHIPPING=Customer shipping contact -TypeContact_commande_external_CUSTOMER=Customer contact following-up order -TypeContact_order_supplier_internal_SALESREPFOLL=Εκπρόσωπος εντολής παρακολούθησης -TypeContact_order_supplier_internal_SHIPPING=Representative following-up shipping +TypeContact_commande_internal_SALESREPFOLL=Εκπρόσωπος εξέλιξης εντολής πώλησης +TypeContact_commande_internal_SHIPPING=Εκπρόσωπος εξέλιξης αποστολής +TypeContact_commande_external_BILLING=Επαφή τιμολογίου πελάτη +TypeContact_commande_external_SHIPPING=Επαφή αποστολής πελάτη +TypeContact_commande_external_CUSTOMER=Επαφή εξέλιξης παραγγελίας πελάτη +TypeContact_order_supplier_internal_SALESREPFOLL=Εκπρόσωπος εξέλιξης παραγγελίας αγοράς +TypeContact_order_supplier_internal_SHIPPING=Εκπρόσωπος εξέλιξης αποστολής TypeContact_order_supplier_external_BILLING=Επαφή τιμολογίου προμηθευτή TypeContact_order_supplier_external_SHIPPING=Επαφή αποστολής προμηθευτή -TypeContact_order_supplier_external_CUSTOMER=Παραγγελία παρακολούθησης επικοινωνίας προμηθευτή -Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Constant COMMANDE_SUPPLIER_ADDON not defined -Error_COMMANDE_ADDON_NotDefined=Constant COMMANDE_ADDON not defined -Error_OrderNotChecked=Δεν υπάρχουν παραγγελίες στο επιλεγμένο τιμολόγιο +TypeContact_order_supplier_external_CUSTOMER=Επαφή εξέλιξης παραγγελίας προμηθευτή +Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Η σταθερά COMMANDE_SUPPLIER_ADDON δεν έχει οριστεί +Error_COMMANDE_ADDON_NotDefined=Η σταθερά COMMANDE_ADDON δεν έχει οριστεί +Error_OrderNotChecked=Δεν επιλέχθηκαν παραγγελίες για τιμολόγηση # Order modes (how we receive order). Not the "why" are keys stored into dict.lang OrderByMail=Ταχυδρομείο -OrderByFax=Φαξ +OrderByFax=Fax OrderByEMail=Email OrderByWWW=Online OrderByPhone=Τηλέφωνο # Documents models -PDFEinsteinDescription=Ένα πλήρες μοντέλο παραγγελίας (παλιά εφαρμογή του προτύπου Eratosthene) -PDFEratostheneDescription=Ένα πλήρες μοντέλο παραγγελίας -PDFEdisonDescription=Απλό πρότυπο παραγγελίας -PDFProformaDescription=Ένα πλήρες πρότυπο τιμολογίου Proforma -CreateInvoiceForThisCustomer=Τιμολογημένες παραγγελίες -CreateInvoiceForThisSupplier=Τιμολογημένες παραγγελίες -CreateInvoiceForThisReceptions=Τιμολόγηση παραλαβών -NoOrdersToInvoice=Δεν υπάρχουν τιμολογημένες παραγγελίες -CloseProcessedOrdersAutomatically=Χαρακτηρίστε σε «εξέλιξη» όλες τις επιλεγμένες παραγγελίες. +PDFEinsteinDescription=Ένα πλήρες μοντέλο παραγγελιών (παλιά εφαρμογή του προτύπου Eratosthene) +PDFEratostheneDescription=Ένα πλήρες μοντέλο παραγγελιών +PDFEdisonDescription=Ένα απλό πρότυπο παραγγελιών +PDFProformaDescription=Ένα πλήρες πρότυπο προτιμολογίου (Proforma) +CreateInvoiceForThisCustomer=Τιμολόγηση παραγγελιών +CreateInvoiceForThisSupplier=Τιμολόγηση παραγγελιών +CreateInvoiceForThisReceptions=Παραλαβές προς τιμολόγηση +NoOrdersToInvoice=Δεν υπάρχουν παραγγελίες προς τιμολόγηση +CloseProcessedOrdersAutomatically=Ταξινομήστε "Επεξεργασμένες" όλες τις επιλεγμένες παραγγελίες. OrderCreation=Δημιουργία Παραγγελίας -Ordered=Παραγγελια +Ordered=Παραγγελίες OrderCreated=Οι παραγγελίες σας έχουν δημιουργηθεί OrderFail=Ένα σφάλμα συνέβη κατά τη δημιουργία των παραγγελιών CreateOrders=Δημιουργία παραγγελιών ToBillSeveralOrderSelectCustomer=Για να δημιουργήσετε ένα τιμολόγιο για αρκετές παραγγελίες, κάντε κλικ πρώτα στον πελάτη, στη συνέχεια, επιλέξτε "%s". OptionToSetOrderBilledNotEnabled=Η επιλογή από την ενότητα Ροής εργασιών, για να ορίσετε την παραγγελία ως "Τιμολογημένη" αυτόματα όταν επικυρώνεται το τιμολόγιο, δεν είναι ενεργοποιημένη, επομένως θα πρέπει να ορίσετε την κατάσταση των παραγγελιών ως "Τιμολογημένες" χειροκίνητα μετά τη δημιουργία του τιμολογίου. IfValidateInvoiceIsNoOrderStayUnbilled=Εάν η επικύρωση τιμολογίου είναι «Όχι», η παραγγελία θα παραμείνει στην κατάσταση «Μη τιμολογημένη» μέχρι να επικυρωθεί το τιμολόγιο. -CloseReceivedSupplierOrdersAutomatically=Κλείστε τη σειρά για την κατάσταση "%s" αυτόματα αν ληφθούν όλα τα προϊόντα. -SetShippingMode=Ορίστε τη λειτουργία αποστολής -WithReceptionFinished=Με την ολοκλήρωση της λήψης +CloseReceivedSupplierOrdersAutomatically=Κλείσιμο παραγγελίας σε κατάσταση "%s" αυτόματα εάν ληφθούν όλα τα προϊόντα. +SetShippingMode=Ρυθμίστε τη λειτουργία αποστολής +WithReceptionFinished=Με την ολοκλήρωση της παραλαβής #### supplier orders status StatusSupplierOrderCanceledShort=Ακυρώθηκε -StatusSupplierOrderDraftShort=Πρόχειρο +StatusSupplierOrderDraftShort=Προσχέδιο StatusSupplierOrderValidatedShort=Επικυρώθηκε -StatusSupplierOrderSentShort=Αποστολή στη διαδικασία +StatusSupplierOrderSentShort=Σε εξέλιξη StatusSupplierOrderSent=Αποστολή σε εξέλιξη StatusSupplierOrderOnProcessShort=Παραγγέλθηκε -StatusSupplierOrderProcessedShort=Επεξεργασμένα +StatusSupplierOrderProcessedShort=Ολοκληρώθηκε StatusSupplierOrderDelivered=Παραδόθηκε StatusSupplierOrderDeliveredShort=Παραδόθηκε StatusSupplierOrderToBillShort=Παραδόθηκε StatusSupplierOrderApprovedShort=Εγκεκριμένη StatusSupplierOrderRefusedShort=Απορρίφθηκε -StatusSupplierOrderToProcessShort=Για την διαδικασία -StatusSupplierOrderReceivedPartiallyShort=Λήφθηκε μερικώς -StatusSupplierOrderReceivedAllShort=Τα προϊόντα που ελήφθησαν +StatusSupplierOrderToProcessShort=Προς επεξεργασία +StatusSupplierOrderReceivedPartiallyShort=Εν μέρει παραλήφθηκε +StatusSupplierOrderReceivedAllShort=Τα προϊόντα παρελήφθησαν StatusSupplierOrderCanceled=Ακυρώθηκε -StatusSupplierOrderDraft=Πρόχειρο (Χρειάζεται επικύρωση) +StatusSupplierOrderDraft=Προσχέδιο (Χρειάζεται επικύρωση) StatusSupplierOrderValidated=Επικυρώθηκε StatusSupplierOrderOnProcess=Παραγγέλθηκε - Αναμονή παραλαβής StatusSupplierOrderOnProcessWithValidation=Παραγγέλθηκε - Αναμονή παραλαβής ή επικύρωσης -StatusSupplierOrderProcessed=Επεξεργασμένα +StatusSupplierOrderProcessed=Ολοκληρώθηκε StatusSupplierOrderToBill=Παραδόθηκε -StatusSupplierOrderApproved=Εγκεκριμένη +StatusSupplierOrderApproved=Εγκρίθηκε StatusSupplierOrderRefused=Απορρίφθηκε -StatusSupplierOrderReceivedPartially=Λήφθηκε μερικώς -StatusSupplierOrderReceivedAll=Όλα τα προϊόντα που ελήφθησαν +StatusSupplierOrderReceivedPartially=Εν μέρει παραλήφθηκε +StatusSupplierOrderReceivedAll=Όλα τα προϊόντα παραλήφθηκαν diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index 470d87827c6..ef1066eb4d7 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -12,26 +12,26 @@ MonthOfInvoice=Μήνας (αριθμός 1-12) της ημερομηνίας τ TextMonthOfInvoice=Μήνας (κείμενο) της ημερομηνίας του τιμολογίου PreviousMonthOfInvoice=Προηγούμενος μήνας (αριθμός 1-12) της ημερομηνίας του τιμολογίου TextPreviousMonthOfInvoice=Προηγούμενος μήνας (κείμενο) της ημερομηνίας του τιμολογίου -NextMonthOfInvoice=Μετά τον μήνα (αριθμός 1-12) της ημερομηνίας του τιμολογίου -TextNextMonthOfInvoice=Μετά τον μήνα (κείμενο) της ημερομηνίας του τιμολογίου +NextMonthOfInvoice=Επόμενος μήνας (αριθμός 1-12) της ημερομηνίας τιμολογίου +TextNextMonthOfInvoice=Επόμενος μήνας (κείμενο) ημερομηνίας τιμολογίου PreviousMonth=Προηγούμενος μήνας CurrentMonth=Τρέχων μήνας -ZipFileGeneratedInto=Το αρχείο Zip δημιουργήθηκε σε %s . -DocFileGeneratedInto=Το αρχείο Doc δημιουργήθηκε σε %s . -JumpToLogin=Ασύνδετος. Μετάβαση στη σελίδα σύνδεσης ... -MessageForm=Μήνυμα σε ηλεκτρονική φόρμα πληρωμής +ZipFileGeneratedInto=Το αρχείο zip δημιουργήθηκε στο %s . +DocFileGeneratedInto=Το αρχείο εγγράφου Doc δημιουργήθηκε στο %s . +JumpToLogin=Έγινε αποσύνδεση. Μετάβαση στη σελίδα σύνδεσης... +MessageForm=Μήνυμα στην ηλεκτρονική φόρμα πληρωμής MessageOK=Μήνυμα στη σελίδα επιστροφής για επικυρωμένη πληρωμή MessageKO=Μήνυμα στη σελίδα επιστροφής για μια ακυρωμένη πληρωμή -ContentOfDirectoryIsNotEmpty=Το περιεχόμενο αυτού του καταλόγου δεν είναι άδειο. +ContentOfDirectoryIsNotEmpty=Το περιεχόμενο αυτού του καταλόγου δεν είναι κενό. DeleteAlsoContentRecursively=Επιλέξτε για να διαγράψετε όλο το περιεχόμενο αναδρομικά PoweredBy=Powered by -YearOfInvoice=Έτος της ημερομηνίας του τιμολογίου -PreviousYearOfInvoice=Προηγούμενο έτος της ημερομηνίας του τιμολογίου -NextYearOfInvoice=Μετά το έτος της ημερομηνίας του τιμολογίου -DateNextInvoiceBeforeGen=Ημερομηνία επόμενου τιμολογίου (πριν από την παραγωγή) -DateNextInvoiceAfterGen=Ημερομηνία επόμενου τιμολογίου (μετά την παραγωγή) -GraphInBarsAreLimitedToNMeasures=Τα Grapics περιορίζονται σε μετρήσεις %s σε λειτουργία "Bars". Η λειτουργία «Γραμμές» επιλέχθηκε αυτόματα. -OnlyOneFieldForXAxisIsPossible=Μόνο 1 πεδίο είναι επί του παρόντος δυνατός ως Άξονας Χ. Έχει επιλεγεί μόνο το πρώτο επιλεγμένο πεδίο. +YearOfInvoice=Έτος ημερομηνίας τιμολογίου +PreviousYearOfInvoice=Προηγούμενο έτος ημερομηνίας τιμολογίου +NextYearOfInvoice=Επόμενο έτος ημερομηνίας τιμολογίου +DateNextInvoiceBeforeGen=Ημερομηνία επόμενου τιμολογίου (πριν από την δημιουργία) +DateNextInvoiceAfterGen=Ημερομηνία επόμενου τιμολογίου (μετά την δημιουργία) +GraphInBarsAreLimitedToNMeasures=Τα γραφικά περιορίζονται σε %s μετρήσεις στη λειτουργία "Μπάρες". Αντ' αυτού, επιλέχθηκε αυτόματα η λειτουργία "Γραμμές". +OnlyOneFieldForXAxisIsPossible=Μόνο 1 πεδίο είναι προς το παρόν δυνατό στον Άξονα X. Έχει χρησιμοποιηθεί μόνο το πρώτο επιλεγμένο πεδίο. AtLeastOneMeasureIsRequired=Απαιτείται τουλάχιστον 1 πεδίο για μέτρηση AtLeastOneXAxisIsRequired=Απαιτείται τουλάχιστον 1 πεδίο για τον άξονα Χ LatestBlogPosts=Τελευταίες δημοσιεύσεις ιστολογίου @@ -39,83 +39,85 @@ notiftouser=Προς χρήστες notiftofixedemail=Προς συγκεκριμένο email notiftouserandtofixedemail=Προς χρήστη και συγκεκριμένο email Notify_ORDER_VALIDATE=Η εντολή πώλησης έχει επικυρωθεί -Notify_ORDER_SENTBYMAIL=Η εντολή πωλήσεων αποστέλλεται μέσω ταχυδρομείου -Notify_ORDER_SUPPLIER_SENTBYMAIL=Η εντολή αγοράς στάλθηκε μέσω ηλεκτρονικού ταχυδρομείου -Notify_ORDER_SUPPLIER_VALIDATE=Καταγράφεται η εντολή αγοράς -Notify_ORDER_SUPPLIER_APPROVE=Η παραγγελία εγκρίθηκε -Notify_ORDER_SUPPLIER_REFUSE=Η παραγγελία αγοράς απορρίφθηκε -Notify_PROPAL_VALIDATE=Η εμπ. πρόταση πελάτη επικυρώθηκε -Notify_PROPAL_CLOSE_SIGNED=Η πρόταση πελάτη έκλεισε υπογεγραμμένη -Notify_PROPAL_CLOSE_REFUSED=Η πρόταση πελάτη έκλεισε -Notify_PROPAL_SENTBYMAIL=Εμπορικές προτάσεις που αποστέλλονται ταχυδρομικώς -Notify_WITHDRAW_TRANSMIT=Μετάδοση απόσυρση -Notify_WITHDRAW_CREDIT=Πιστωτικές απόσυρση -Notify_WITHDRAW_EMIT=Εκτελέστε την απόσυρση -Notify_COMPANY_CREATE=Τρίτο κόμμα δημιουργήθηκε +Notify_ORDER_SENTBYMAIL=Η εντολή πωλήσεων στάλθηκε μέσω ταχυδρομείου +Notify_ORDER_SUPPLIER_SENTBYMAIL=Η εντολή αγοράς στάλθηκε μέσω email +Notify_ORDER_SUPPLIER_VALIDATE=Η εντολή αγοράς καταγράφηκε +Notify_ORDER_SUPPLIER_APPROVE=Η εντολή αγοράς εγκρίθηκε +Notify_ORDER_SUPPLIER_REFUSE=Η εντολή αγοράς απορρίφθηκε +Notify_PROPAL_VALIDATE=Η πρόσφορα πελάτη επικυρώθηκε +Notify_PROPAL_CLOSE_SIGNED=Η πρόσφορα πελάτη έκλεισε υπογεγραμμένη +Notify_PROPAL_CLOSE_SIGNED_WEB=Η προσφορά πελάτη έκλεισε υπογεγραμμένη στη σελίδα του portal +Notify_PROPAL_CLOSE_REFUSED=Η πρόσφορα πελάτη έκλεισε, απορρίφθηκε +Notify_PROPAL_CLOSE_REFUSED_WEB=Η προσφορά πελάτη έκλεισε απορρίφθηκε στη σελίδα του portal +Notify_PROPAL_SENTBYMAIL=Η Εμπορική προσφορά απεστάλη ταχυδρομικώς +Notify_WITHDRAW_TRANSMIT=Μετάδοση ανάληψης +Notify_WITHDRAW_CREDIT=Πίστωση ανάληψης +Notify_WITHDRAW_EMIT=Εκτέλεση ανάληψης +Notify_COMPANY_CREATE=Τρίτο μέρος δημιουργήθηκε Notify_COMPANY_SENTBYMAIL=Μηνύματα που αποστέλλονται από την κάρτα Πελ./Προμ. Notify_BILL_VALIDATE=Το τιμολόγιο πελάτη επικυρώθηκε -Notify_BILL_UNVALIDATE=Τιμολόγιο του Πελάτη μη επικυρωμένο -Notify_BILL_PAYED=Πληρωμή τιμολογίου πελάτη -Notify_BILL_CANCEL=Τιμολογίου Πελατών ακυρώσεις -Notify_BILL_SENTBYMAIL=Τιμολογίου Πελατών σταλούν ταχυδρομικώς -Notify_BILL_SUPPLIER_VALIDATE=Το τιμολόγιο πωλητή επικυρώθηκε -Notify_BILL_SUPPLIER_PAYED=Πληρωμή τιμολογίου προμηθευτή -Notify_BILL_SUPPLIER_SENTBYMAIL=Τιμολόγιο πωλητή αποστέλλεται μέσω ταχυδρομείου -Notify_BILL_SUPPLIER_CANCELED=Το τιμολόγιο πωλητή ακυρώθηκε -Notify_CONTRACT_VALIDATE=Επικυρωμένη σύμβαση -Notify_FICHINTER_VALIDATE=Επικυρωθεί Παρέμβαση +Notify_BILL_UNVALIDATE=Το τιμολόγιο πελάτη δεν είναι επικυρωμένο +Notify_BILL_PAYED=Το τιμολόγιο πελάτη πληρώθηκε +Notify_BILL_CANCEL=Το τιμολόγιο πελάτη ακυρώθηκε +Notify_BILL_SENTBYMAIL=Το τιμολόγιο πελάτη στάλθηκε με mail +Notify_BILL_SUPPLIER_VALIDATE=Το τιμολόγιο προμηθευτή επικυρώθηκε +Notify_BILL_SUPPLIER_PAYED=Το τιμολόγιο προμηθευτή πληρώθηκε +Notify_BILL_SUPPLIER_SENTBYMAIL=Το τιμολόγιο προμηθευτή στάλθηκε με mail +Notify_BILL_SUPPLIER_CANCELED=Το τιμολόγιο προμηθευτή ακυρώθηκε +Notify_CONTRACT_VALIDATE=Η σύμβαση επικυρώθηκε +Notify_FICHINTER_VALIDATE=Η παρέμβαση επικυρώθηκε Notify_FICHINTER_ADD_CONTACT=Προσθήκη επαφής στην παρέμβαση -Notify_FICHINTER_SENTBYMAIL=Παρέμβαση αποστέλλεται μέσω ταχυδρομείου -Notify_SHIPPING_VALIDATE=Αποστολή επικυρωθεί -Notify_SHIPPING_SENTBYMAIL=Αποστολές αποστέλλονται με το ταχυδρομείο -Notify_MEMBER_VALIDATE=Επικυρωθεί μέλη +Notify_FICHINTER_SENTBYMAIL=Η παρέμβαση στάλθηκε με mail +Notify_SHIPPING_VALIDATE=Η Αποστολή επικυρώθηκε +Notify_SHIPPING_SENTBYMAIL=Η αποστολή απεστάλη ταχυδρομικώς +Notify_MEMBER_VALIDATE=Το μέλος επικυρώθηκε Notify_MEMBER_MODIFY=Το μέλος τροποποιήθηκε -Notify_MEMBER_SUBSCRIPTION=Εγγραφεί μέλος -Notify_MEMBER_RESILIATE=Το μέλος τερμάτισε -Notify_MEMBER_DELETE=Διαγράφεται μέλη +Notify_MEMBER_SUBSCRIPTION=Το μέλος εγγράφηκε +Notify_MEMBER_RESILIATE=Το μέλος αποχώρησε +Notify_MEMBER_DELETE=Το μέλος διαγράφηκε Notify_PROJECT_CREATE=Δημιουργία έργου Notify_TASK_CREATE=Η εργασία δημιουργήθηκε Notify_TASK_MODIFY=Η εργασία τροποποιήθηκε Notify_TASK_DELETE=Η εργασία διαγράφηκε -Notify_EXPENSE_REPORT_VALIDATE=Έκθεση εξόδων επικυρωμένη (απαιτείται έγκριση) -Notify_EXPENSE_REPORT_APPROVE=Η έκθεση εξόδων εγκρίθηκε -Notify_HOLIDAY_VALIDATE=Ακύρωση αίτησης επικυρωμένου (απαιτείται έγκριση) -Notify_HOLIDAY_APPROVE=Αφήστε την αίτηση να εγκριθεί +Notify_EXPENSE_REPORT_VALIDATE=Η αναφορά εξόδων επικυρώθηκε (απαιτείται έγκριση) +Notify_EXPENSE_REPORT_APPROVE=Η αναφορά εξόδων εγκρίθηκε +Notify_HOLIDAY_VALIDATE=Το αίτημα άδειας επικυρώθηκε (απαιτείται έγκριση) +Notify_HOLIDAY_APPROVE=Το αίτημα άδειας εγκρίθηκε Notify_ACTION_CREATE=Προστέθηκε ενέργεια στην Ατζέντα -SeeModuleSetup=Δείτε την ρύθμιση του module %s -NbOfAttachedFiles=Πλήθος επισυναπτώμενων αρχείων/εγγράφων -TotalSizeOfAttachedFiles=Συνολικό μέγεθος επισυναπτώμενων αρχείων/εγγράφων +SeeModuleSetup=Δείτε τη ρύθμιση της ενότητας %s +NbOfAttachedFiles=Αριθμός συνημμένων αρχείων/εγγράφων +TotalSizeOfAttachedFiles=Συνολικό μέγεθος συνημμένων αρχείων/εγγράφων MaxSize=Μέγιστο μέγεθος AttachANewFile=Επισύναψη νέου αρχείου/εγγράφου -LinkedObject=Συνδεδεμένα αντικείμενα -NbOfActiveNotifications=Αριθμός ειδοποιήσεων (αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου παραλήπτη) +LinkedObject=Συνδεδεμένο αντικείμενο +NbOfActiveNotifications=Αριθμός ειδοποιήσεων (αριθμός ληφθέντων μηνυμάτων email) PredefinedMailTest=__(Hello)__\nΑυτό είναι ένα δοκιμαστικό μήνυμα που στάλθηκε στη διεύθυνση __EMAIL__.\nΟι γραμμές χωρίζονται με επιστροφή φορέα.\n\n__USER_SGNATURE__ PredefinedMailTestHtml=__(Hello)__
    Αυτή είναι μια δοκιμαστική αλληλογραφία στη διεύθυνση __EMAIL__ (η λέξη δοκιμαστική πρέπει να είναι με έντονη γραφή).
    Οι γραμμές χωρίζονται με επιστροφή φορέα.

    __USER_SIGNATURE__ -PredefinedMailContentContract=__ (Γεια σας) __ __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendInvoice=__ (Γεια σας) __ Βρείτε τιμολόγιο __REF__ επισυνάπτεται __ONLINE_PAYMENT_TEXT_AND_URL__ __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__ (Γεια σας) __ Θα θέλαμε να σας υπενθυμίσουμε ότι το τιμολόγιο __REF__ φαίνεται να μην έχει πληρωθεί. Ένα αντίγραφο του τιμολογίου επισυνάπτεται ως υπενθύμιση. __ONLINE_PAYMENT_TEXT_AND_URL__ __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendProposal=__ (Γεια σας) __ Παρακαλούμε βρείτε την εμπορική πρόταση __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__ (Γεια σας) __ Παρακαλούμε βρείτε αίτημα τιμής __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendOrder=__ (Γεια σας) __ Βρείτε εντολή __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendSupplierOrder=__ (Γεια σας) __ Βρείτε την παραγγελία σας __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__ (Γεια σας) __ Βρείτε το τιμολόγιο __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendShipping=__ (Γεια σας) __ Παρακαλούμε βρείτε την αποστολή __REF__ συνημμένο __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendFichInter=__ (Γεια σας) __ Βρείτε την παρέμβαση __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentLink=Μπορείτε να κάνετε κλικ στον παρακάτω σύνδεσμο για να πραγματοποιήσετε την πληρωμή σας, αν δεν έχει γίνει ήδη. %s -PredefinedMailContentGeneric=__ (Γεια σας) __ __ (ειλικρινά) __ __USER_SIGNATURE__ +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__(Hello)__\n\nΠαρακαλώ δείτε το τιμολόγιο __REF__ που επισυνάπτεται \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nΘα θέλαμε να σας υπενθυμίσουμε ότι το τιμολόγιο __REF__ φαίνεται να μην έχει πληρωθεί. Ένα αντίγραφο του τιμολογίου επισυνάπτεται ως υπενθύμιση.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=__(Hello)__\n\nΠαρακαλώ δείτε την προσφορά __REF__ που επισυνάπτεται \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nΠαρακαλώ δείτε την προσφορά __REF__ που επισυνάπτεται\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη εντολή __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη παραγγελία μας __REF__ \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nΠαρακαλώ δείτε το συνημμένο τιμολόγιο __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη αποστολή __REF__ \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη παρέμβαση __REF__ \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentLink=Μπορείτε να κάνετε κλικ στον παρακάτω σύνδεσμο για να πραγματοποιήσετε την πληρωμή σας, αν δεν έχει γίνει ήδη. \n\n%s\n\n +PredefinedMailContentGeneric=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendActionComm=Υπενθύμιση συμβάντος "__EVENT_LABEL__" στην __EVENT_DATE__ στις __EVENT_TIME__

    Αυτό είναι ένα αυτόματο μήνυμα, μην απαντήσετε. -DemoDesc=Το Dolibarr είναι ένα συμπαγές ERP / CRM που υποστηρίζει διάφορες λειτουργικές μονάδες. Ένα demo που παρουσιάζει όλες τις μονάδες δεν έχει νόημα καθώς το σενάριο αυτό δεν εμφανίζεται ποτέ (αρκετές εκατοντάδες διαθέσιμες). Έτσι, πολλά προφίλ επίδειξης είναι διαθέσιμα. +DemoDesc=Το Dolibarr είναι ένα συμπαγές ERP/CRM που υποστηρίζει πολλές επιχειρηματικές ενότητες. Μια επίδειξη που παρουσιάζει όλες τις ενότητες δεν έχει νόημα, καθώς αυτό το σενάριο δεν συμβαίνει ποτέ (πολλές εκατοντάδες διαθέσιμες). Έτσι, πολλά προφίλ επίδειξης είναι διαθέσιμα. ChooseYourDemoProfil=Επιλέξτε το προφίλ επίδειξης που ταιριάζει καλύτερα στις ανάγκες σας ... -ChooseYourDemoProfilMore=... ή να δημιουργήσετε το δικό σας προφίλ
    (επιλογή χειροκίνητης μονάδας) -DemoFundation=Διαχειριστείτε τα μέλη του ιδρύματος -DemoFundation2=Διαχειριστείτε τα μέλη και τον τραπεζικό λογαριασμό του ιδρύματος -DemoCompanyServiceOnly=Εταιρική ή ανεξάρτητη υπηρεσία πώλησης +ChooseYourDemoProfilMore=...ή δημιουργήστε το δικό σας προφίλ
    (μη αυτόματη επιλογή ενότητας) +DemoFundation=Διαχείριση μελών ενός ιδρύματος +DemoFundation2=Διαχείριση μελών και τραπεζικού λογαριασμού ενός ιδρύματος +DemoCompanyServiceOnly=Εταιρική ή ανεξάρτητη υπηρεσία πώλησης μόνο DemoCompanyShopWithCashDesk=Διαχειριστείτε ένα κατάστημα με ταμείο -DemoCompanyProductAndStocks=Κατάστημα πώλησης προϊόντων με σημείο πώλησης -DemoCompanyManufacturing=Εταιρεία κατασκευής προϊόντων -DemoCompanyAll=Εταιρεία με πολλαπλές δραστηριότητες (όλες τις κύριες ενότητες) +DemoCompanyProductAndStocks=Κατάστημα πώλησης προϊόντων με σημείο πώλησης POS +DemoCompanyManufacturing=Εταιρεία παραγωγής προϊόντων +DemoCompanyAll=Εταιρεία με πολλαπλές δραστηριότητες (όλες οι κύριες ενότητες) CreatedBy=Δημιουργήθηκε από %s -ModifiedBy=Τροποποίηθηκε από %s +ModifiedBy=Τροποποιήθηκε από %s ValidatedBy=Επικυρώθηκε από %s SignedBy=Υπογεγραμμένο από %s ClosedBy=Έκλεισε από %s @@ -124,23 +126,23 @@ ModifiedById=Αναγνωριστικό χρήστη που έκανε την τ ValidatedById=Ταυτότητα χρήστη που επικύρωσε CanceledById=Ταυτότητα χρήστη που ακύρωσε ClosedById=Ταυτότητα χρήστη που έκλεισε -CreatedByLogin=Χρήστης σύνδεσης που δημιούργησε -ModifiedByLogin=Εγγραφή χρήστη που έκανε την τελευταία αλλαγή +CreatedByLogin=Είσοδος χρήστη που δημιούργησε +ModifiedByLogin=Χρήστης σύνδεσης που έκανε την τελευταία αλλαγή ValidatedByLogin=Χρήστης σύνδεσης που επικύρωσε CanceledByLogin=Χρήστης σύνδεσης που ακύρωσε ClosedByLogin=Χρήστης σύνδεσης που έκλεισε -FileWasRemoved=File %s was removed -DirWasRemoved=Directory %s was removed -FeatureNotYetAvailable=Δεν υπάρχει ακόμα διαθέσιμη λειτουργία στην τρέχουσα έκδοση +FileWasRemoved=Το αρχείο %s καταργήθηκε +DirWasRemoved=Ο κατάλογος %s καταργήθηκε +FeatureNotYetAvailable=Η δυνατότητα δεν είναι ακόμη διαθέσιμη στην τρέχουσα έκδοση FeatureNotAvailableOnDevicesWithoutMouse=Η δυνατότητα δεν είναι διαθέσιμη σε συσκευές χωρίς ποντίκι -FeaturesSupported=Υποστηριζόμενα χαρακτηριστικά +FeaturesSupported=Υποστηριζόμενες λειτουργίες Width=Πλάτος Height=Ύψος Depth=Βάθος Top=Κορυφή Bottom=Κάτω μέρος Left=Αριστερά -Right=Δικαίωμα +Right=Δεξιά CalculatedWeight=Υπολογισμένο βάρος CalculatedVolume=Υπολογισμένος όγκος Weight=Βάρος @@ -148,30 +150,30 @@ WeightUnitton=τόνος WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg -WeightUnitpound=Λίβρες +WeightUnitpound=λίβρα WeightUnitounce=ουγκιά Length=Μήκος LengthUnitm=m LengthUnitdm=dm LengthUnitcm=cm LengthUnitmm=mm -Surface=Εμβαδό -SurfaceUnitm2=μ² +Surface=Επιφάνεια +SurfaceUnitm2=m² SurfaceUnitdm2=dm² -SurfaceUnitcm2=εκ² -SurfaceUnitmm2=χιλ² +SurfaceUnitcm2=cm² +SurfaceUnitmm2=mm² SurfaceUnitfoot2=ft² SurfaceUnitinch2=in² Volume=Όγκος -VolumeUnitm3=μ³ +VolumeUnitm3=m³ VolumeUnitdm3=dm³ (L) -VolumeUnitcm3=εκ³ (μλ) -VolumeUnitmm3=χιλ³ +VolumeUnitcm3=cm³ (ml) +VolumeUnitmm3=mm³ (µl) VolumeUnitfoot3=ft³ VolumeUnitinch3=in³ VolumeUnitounce=ουγκιά VolumeUnitlitre=λίτρο -VolumeUnitgallon=gallon +VolumeUnitgallon=γαλόνι SizeUnitm=m SizeUnitdm=dm SizeUnitcm=cm @@ -179,76 +181,80 @@ SizeUnitmm=mm SizeUnitinch=ίντσα SizeUnitfoot=πόδι SizeUnitpoint=σημείο -BugTracker=Tracker Bug -SendNewPasswordDesc=Αυτή η φόρμα σάς επιτρέπει να ζητήσετε νέο κωδικό πρόσβασης. Θα σταλεί στη διεύθυνση ηλεκτρονικού ταχυδρομείου σας.
    Η αλλαγή θα τεθεί σε ισχύ μόλις κάνετε κλικ στον σύνδεσμο επιβεβαίωσης στο μήνυμα ηλεκτρονικού ταχυδρομείου.
    Ελέγξτε τα εισερχόμενά σας. +BugTracker=Παρακολούθηση σφαλμάτων +SendNewPasswordDesc=Αυτή η φόρμα σάς επιτρέπει να ζητήσετε νέο κωδικό πρόσβασης. Θα σταλεί στη διεύθυνση email σας.
    Η αλλαγή θα τεθεί σε ισχύ μόλις κάνετε κλικ στον σύνδεσμο επιβεβαίωσης στο email.
    Ελέγξτε τα εισερχόμενά σας. +EnterNewPasswordHere=Εισάγετε τον νέο σας κωδικό πρόσβασης εδώ BackToLoginPage=Επιστροφή στην σελίδα εισόδου -AuthenticationDoesNotAllowSendNewPassword=Λειτουργία ελέγχου ταυτότητας είναι %s.
    Σε αυτή τη λειτουργία, Dolibarr δεν μπορεί να γνωρίζει ούτε αλλαγή του κωδικού πρόσβασής σας.
    Επικοινωνήστε με το διαχειριστή του συστήματός σας, εάν θέλετε να αλλάξετε τον κωδικό πρόσβασής σας. +AuthenticationDoesNotAllowSendNewPassword=Η λειτουργία ελέγχου ταυτότητας είναι %s .
    Σε αυτήν τη λειτουργία, το Dolibarr δεν μπορεί να γνωρίζει ούτε να αλλάξει τον κωδικό πρόσβασης σας.
    Επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν θέλετε να αλλάξετε τον κωδικό πρόσβασης σας. EnableGDLibraryDesc=Εγκαταστήστε ή ενεργοποιήστε τη βιβλιοθήκη GD στην εγκατάσταση της PHP για να χρησιμοποιήσετε αυτήν την επιλογή. -ProfIdShortDesc=Καθ %s ταυτότητα είναι μια ενημερωτική ανάλογα με τρίτη χώρα μέρος.
    Για παράδειγμα, για %s χώρα, είναι %s κώδικα. +ProfIdShortDesc= Prof Id %s είναι μια πληροφορία ανάλογα με τη χώρα τρίτου μέρους.
    Για παράδειγμα, για τη χώρα %s , είναι ο κωδικός %s. DolibarrDemo=Dolibarr ERP / CRM demo StatsByNumberOfUnits=Στατιστικά στοιχεία για το σύνολο των ποσοτήτων προϊόντων / υπηρεσιών StatsByNumberOfEntities=Στατιστικά στοιχεία για τον αριθμό των παραπομπών οντοτήτων (αριθμός τιμολογίων ή παραγγελιών...) -NumberOfProposals=Αριθμός προτάσεων -NumberOfCustomerOrders=Αριθμός παραγγελιών πωλήσεων +NumberOfProposals=Αριθμός προσφορών +NumberOfCustomerOrders=Αριθμός εντολών πωλήσεων NumberOfCustomerInvoices=Αριθμός τιμολογίων πελατών -NumberOfSupplierProposals=Αριθμός προτάσεων πωλητών -NumberOfSupplierOrders=Αριθμός εντολών αγοράς +NumberOfSupplierProposals=Αριθμός προσφορών προμηθευτών +NumberOfSupplierOrders=Αριθμός παραγγελιών αγοράς NumberOfSupplierInvoices=Αριθμός τιμολογίων προμηθευτή NumberOfContracts=Αριθμός συμβάσεων -NumberOfMos=Αριθμός παραγγελιών κατασκευής -NumberOfUnitsProposals=Αριθμός μονάδων για προτάσεις -NumberOfUnitsCustomerOrders=Αριθμός μονάδων επί παραγγελιών πωλήσεων +NumberOfMos=Αριθμός παραγγελιών παραγωγής +NumberOfUnitsProposals=Αριθμός μονάδων στις προτάσεις +NumberOfUnitsCustomerOrders=Αριθμός μονάδων σε παραγγελίες πώλησης NumberOfUnitsCustomerInvoices=Αριθμός μονάδων σε τιμολόγια πελατών -NumberOfUnitsSupplierProposals=Αριθμός μονάδων σε προτάσεις πωλητών -NumberOfUnitsSupplierOrders=Αριθμός μονάδων στις εντολές αγοράς -NumberOfUnitsSupplierInvoices=Αριθμός μονάδων σε τιμολόγια πωλητών +NumberOfUnitsSupplierProposals=Αριθμός μονάδων σε προσφορές προμηθευτών +NumberOfUnitsSupplierOrders=Αριθμός μονάδων στις παραγγελίες αγορών +NumberOfUnitsSupplierInvoices=Αριθμός μονάδων σε τιμολόγια προμηθευτών NumberOfUnitsContracts=Αριθμός μονάδων στις συμβάσεις -NumberOfUnitsMos=Αριθμός μονάδων προς παραγωγή σε παραγγελίες κατασκευής +NumberOfUnitsMos=Αριθμός μονάδων προς παραγωγή σε παραγγελίες παραγωγής EMailTextInterventionAddedContact=Μια νέα παρέμβαση %s σας έχει εκχωρηθεί. -EMailTextInterventionValidated=Η %s παρέμβαση έχει επικυρωθεί. +EMailTextInterventionValidated=Η παρέμβαση %s έχει επικυρωθεί. EMailTextInvoiceValidated=Το τιμολόγιο %s έχει επικυρωθεί. EMailTextInvoicePayed=Το τιμολόγιο %s έχει καταβληθεί. -EMailTextProposalValidated=Η πρόταση %s έχει επικυρωθεί. -EMailTextProposalClosedSigned=Η πρόταση %s έχει κλείσει υπογεγραμμένη. +EMailTextProposalValidated=Η προσφορά %s έχει επικυρωθεί. +EMailTextProposalClosedSigned=Η προσφορά %s έχει κλείσει υπογεγραμμένη. +EMailTextProposalClosedSignedWeb=Η προσφορά %s έχει κλείσει υπογράφηκε στη σελίδα του portal. +EMailTextProposalClosedRefused=Η προσφορά %s απορρίφθηκε και έκλεισε. +EMailTextProposalClosedRefusedWeb=Η προσφορά %s έχει κλείσει απορρίφθηκε στη σελίδα του portal. EMailTextOrderValidated=Η παραγγελία %s έχει επικυρωθεί. EMailTextOrderApproved=Η παραγγελία %s έχει εγκριθεί. -EMailTextOrderValidatedBy=Η παραγγελία %s έχει εγγραφεί από %s. +EMailTextOrderValidatedBy=Η παραγγελία %s έχει καταγραφεί από τον %s. EMailTextOrderApprovedBy=Η παραγγελία %s έχει εγκριθεί από %s. EMailTextOrderRefused=Η παραγγελία %s απορρίφθηκε. EMailTextOrderRefusedBy=Η παραγγελία %s απορρίφθηκε από %s. EMailTextExpeditionValidated=Η αποστολή %s έχει επικυρωθεί. -EMailTextExpenseReportValidated=Η έκθεση δαπανών %s έχει επικυρωθεί. -EMailTextExpenseReportApproved=Η έκθεση δαπανών %s έχει εγκριθεί. -EMailTextHolidayValidated=Ακύρωση αίτησης %s έχει επικυρωθεί. +EMailTextExpenseReportValidated=Η αναφορά εξόδων %s έχει επικυρωθεί. +EMailTextExpenseReportApproved=Η αναφορά εξόδων %s έχει εγκριθεί. +EMailTextHolidayValidated=Το αίτημα άδειας %s έχει επικυρωθεί. EMailTextHolidayApproved=Το αίτημα άδειας %s έχει εγκριθεί. EMailTextActionAdded=Η ενέργεια %s προστέθηκε στην Ατζέντα. -ImportedWithSet=Η εισαγωγή των δεδομένων που +ImportedWithSet=Δεδομένα εισαγωγής DolibarrNotification=Αυτόματη ειδοποίηση -ResizeDesc=Εισάγετε το νέο πλάτος ή το νέο ύψος. Λόγος θα διατηρηθούν κατά τη διάρκεια της αλλαγής μεγέθους ... -NewLength=Νέο βάρος +ResizeDesc=Εισαγάγετε νέο πλάτος Ή νέο ύψος. Η αναλογία θα διατηρηθεί κατά την αλλαγή μεγέθους... +NewLength=Νέο πλάτος NewHeight=Νέο ύψος NewSizeAfterCropping=Νέο μέγεθος μετά το ψαλίδισμα -DefineNewAreaToPick=Ορίστε νέα περιοχή στην εικόνα για να πάρει (αριστερό κλικ στην εικόνα στη συνέχεια σύρετε μέχρι να φτάσετε στην απέναντι γωνία) -CurrentInformationOnImage=Αυτό το εργαλείο έχει σχεδιαστεί για να σας βοηθήσει να αλλάξετε το μέγεθος ή την περικοπή μιας εικόνας. Αυτές είναι οι πληροφορίες σχετικά με την τρέχουσα επεξεργασμένη εικόνα +DefineNewAreaToPick=Ορίστε νέα περιοχή στην εικόνα για επιλογή (αριστερό κλικ στην εικόνα και μετά σύρετε μέχρι να φτάσετε στην απέναντι γωνία) +CurrentInformationOnImage=Αυτό το εργαλείο σχεδιάστηκε για να σας βοηθήσει να αλλάξετε το μέγεθος ή να περικόψετε μια εικόνα. Αυτές είναι οι πληροφορίες για την τρέχουσα επεξεργασμένη εικόνα ImageEditor=Επεξεργαστής εικόνας -YouReceiveMailBecauseOfNotification=Αυτό το μήνυμα επειδή το email σας έχει προστεθεί στη λίστα των στόχων που πρέπει να ενημερώνεται για συγκεκριμένα γεγονότα σε %s λογισμικό της %s. -YouReceiveMailBecauseOfNotification2=Το γεγονός είναι το ακόλουθο: -ThisIsListOfModules=Αυτή είναι μια λίστα των modules που έχουν επιλέξει αυτό το προφίλ demo (μόνο οι περισσότερες κοινές ενότητες είναι ορατά σε αυτό το demo). Επεξεργασία αυτό να έχει μια πιο εξατομικευμένη επίδειξη και κάντε κλικ στο "Start". -UseAdvancedPerms=Χρησιμοποιήστε την προηγμένη δικαιώματα κάποιων ενοτήτων +YouReceiveMailBecauseOfNotification=Λαμβάνετε αυτό το μήνυμα επειδή το email σας έχει προστεθεί στη λίστα επαφών που πρέπει να ενημερώνεται για συγκεκριμένα συμβάντα στο λογισμικό %s της %s. +YouReceiveMailBecauseOfNotification2=Αυτό ειναι το ακόλουθο συμβάν: +ThisIsListOfModules=Αυτή είναι μια λίστα των ενοτήτων που έχουν προεπιλεγεί για αυτό το προφίλ demo (μόνο οι βασικές ενότητες είναι ενεργές σε αυτό το demo). Επεξεργαστείτε αυτό για να έχετε μια πιο εξατομικευμένη επίδειξη και κάντε κλικ στο "Έναρξη" +UseAdvancedPerms=Χρησιμοποιήστε τα προηγμένα δικαιώματα ορισμένων ενοτήτων FileFormat=Μορφή αρχείου SelectAColor=Επιλέξτε ένα χρώμα AddFiles=Προσθήκη αρχείων StartUpload=Έναρξη μεταφόρτωσης -CancelUpload=Ακύρωση ανεβάσετε -FileIsTooBig=Τα αρχεία είναι πολύ μεγάλο -PleaseBePatient=Please be patient... +CancelUpload=Ακύρωση μεταφόρτωσης +FileIsTooBig=Τα αρχεία είναι πολύ μεγάλα +PleaseBePatient=Παρακαλώ να είστε υπομονετικοί... NewPassword=Νέος Κωδικός ResetPassword=Επαναφέρετε τον κωδικό πρόσβασης -RequestToResetPasswordReceived=Ζητήθηκε να αλλάξετε τον κωδικό πρόσβασής σας. +RequestToResetPasswordReceived=Έχει ληφθεί ένα αίτημα για αλλαγή του κωδικού πρόσβασης σας. NewKeyIs=Αυτό είναι το νέο σας κλειδί για να συνδεθείτε NewKeyWillBe=Το νέο σας κλειδί για να συνδεθείτε με το λογισμικό είναι ClickHereToGoTo=Κάντε κλικ εδώ για να μεταβείτε στο %s -YouMustClickToChange=Θα πρέπει πρώτα να κάνετε κλικ στον παρακάτω σύνδεσμο για να επικυρώσει την αλλαγή του κωδικού πρόσβασης +YouMustClickToChange=Θα πρέπει πρώτα να κάνετε κλικ στον παρακάτω σύνδεσμο για να επικυρώσετε την αλλαγή του κωδικού πρόσβασης ConfirmPasswordChange=Επιβεβαιώστε την αλλαγή κωδικού πρόσβασης ForgetIfNothing=Αν δεν ζητήσατε αυτή την αλλαγή, απλά ξεχάστε αυτό το email. Τα διαπιστευτήριά σας παραμένουν ασφαλή. IfAmountHigherThan=Εάν το ποσό υπερβαίνει %s @@ -256,45 +262,45 @@ SourcesRepository=Αποθετήριο για τις πηγές Chart=Γράφημα PassEncoding=Κωδικοποίηση κωδικού πρόσβασης PermissionsAdd=Προστέθηκαν δικαιώματα -PermissionsDelete=Οι άδειες έχουν καταργηθεί -YourPasswordMustHaveAtLeastXChars=Ο κωδικός πρόσβασής σας πρέπει να έχει τουλάχιστον %s χαρακτήρες +PermissionsDelete=Τα δικαιώματα καταργήθηκαν +YourPasswordMustHaveAtLeastXChars=Ο κωδικός πρόσβασης σας πρέπει να έχει τουλάχιστον %s χαρακτήρες PasswordNeedAtLeastXUpperCaseChars=Ο κωδικός πρόσβασης χρειάζεται τουλάχιστον %s κεφαλαίους χαρακτήρες PasswordNeedAtLeastXDigitChars=Ο κωδικός πρόσβασης χρειάζεται τουλάχιστον %s αριθμητικούς χαρακτήρες PasswordNeedAtLeastXSpecialChars=Ο κωδικός πρόσβασης χρειάζεται τουλάχιστον %s ειδικούς χαρακτήρες PasswordNeedNoXConsecutiveChars=Ο κωδικός πρόσβασης δεν πρέπει να έχει %s διαδοχικούς παρόμοιους χαρακτήρες -YourPasswordHasBeenReset=Ο κωδικός πρόσβασής σας έχει επαναφερθεί με επιτυχία +YourPasswordHasBeenReset=Ο κωδικός πρόσβασης σας επαναφέρθηκε με επιτυχία ApplicantIpAddress=Διεύθυνση IP του αιτούντος -SMSSentTo=Τα SMS αποστέλλονται στο %s -MissingIds=Λείπει IDs -ThirdPartyCreatedByEmailCollector=Το τρίτο μέρος δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το MSGID e-mail %s -ContactCreatedByEmailCollector=Επαφή / διεύθυνση που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s -ProjectCreatedByEmailCollector=Έργο που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s -TicketCreatedByEmailCollector=Εισιτήριο που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s +SMSSentTo=Το SMS εστάλη στο %s +MissingIds=Χαμένα αναγνωριστικά +ThirdPartyCreatedByEmailCollector=Τρίτο μέρος που δημιουργήθηκε από συλλέκτη email από email MSGID %s +ContactCreatedByEmailCollector=Επαφή/διεύθυνση που δημιουργήθηκε από συλλέκτη email από email MSGID %s +ProjectCreatedByEmailCollector=Έργο που δημιουργήθηκε από συλλέκτη email από email MSGID %s +TicketCreatedByEmailCollector=Ticket που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s OpeningHoursFormatDesc=Χρησιμοποιήστε το "-" για να διαχωρίσετε τις ώρες ανοίγματος και κλεισίματος.
    Χρησιμοποιήστε "κενό" για να εισάγετε διαφορετικές περιοχές.
    Παράδειγμα: 8-12 14-18 SuffixSessionName=Κατάληξη για το όνομα της συνεδρίας LoginWith=Συνδεθείτε με %s ##### Export ##### -ExportsArea=Exports area -AvailableFormats=Available formats -LibraryUsed=Library used +ExportsArea=Τομέας εξαγωγών +AvailableFormats=Διαθέσιμες μορφές +LibraryUsed=Library που χρησιμοποιήθηκε LibraryVersion=Έκδοση βιβλιοθήκης -ExportableDatas=Exportable data -NoExportableData=No exportable data (no modules with exportable data loaded, or missing permissions) +ExportableDatas=Εξαγώγιμα δεδομένα +NoExportableData=Δεν υπάρχουν εξαγώγιμα δεδομένα (δεν υπάρχουν ενότητες με φορτωμένα εξαγώγιμα δεδομένα ή χωρίς δικαιώματα) ##### External sites ##### -WebsiteSetup=Εγκατάσταση δικτυακού τόπου ενότητας +WebsiteSetup=Ρύθμιση της ενότητας Ιστοσελίδων WEBSITE_PAGEURL=Σύνδεσμος URL της σελίδας WEBSITE_TITLE=Τίτλος WEBSITE_DESCRIPTION=Περιγραφή WEBSITE_IMAGE=Εικόνα -WEBSITE_IMAGEDesc=Σχετική διαδρομή του μέσου εικόνας. Μπορείτε να το κρατήσετε κενό καθώς σπάνια χρησιμοποιείται (μπορεί να χρησιμοποιηθεί από δυναμικό περιεχόμενο για να εμφανιστεί μια μικρογραφία σε μια λίστα αναρτήσεων ιστολογίου). Χρησιμοποιήστε το __WEBSITE_KEY__ στη διαδρομή εάν η διαδρομή εξαρτάται από το όνομα του ιστότοπου (για παράδειγμα: image / __ WEBSITE_KEY __ / stories / myimage.png). +WEBSITE_IMAGEDesc=Σχετική διαδρομή του μέσου εικόνας. Μπορείτε να το αφήσετε άδειο καθώς σπάνια χρησιμοποιείται (μπορεί να χρησιμοποιηθεί από δυναμικό περιεχόμενο για να εμφανιστεί μια μικρογραφία σε μια λίστα αναρτήσεων ιστολογίου). Χρησιμοποιήστε __WEBSITE_KEY__ στη διαδρομή εάν η διαδρομή εξαρτάται από το όνομα ιστότοπου (για παράδειγμα: image/__WEBSITE_KEY__/stories/myimage.png). WEBSITE_KEYWORDS=Λέξεις κλειδιά LinesToImport=Γραμμές για εισαγωγή MemoryUsage=Χρήση μνήμης RequestDuration=Διάρκεια αίτησης ProductsPerPopularity=Προϊόντα/Υπηρεσίες κατά δημοτικότητα -PopuProp=Προϊόντα / Υπηρεσίες κατά δημοτικότητα στις Προτάσεις +PopuProp=Προϊόντα/Υπηρεσίες κατά δημοτικότητα στις Προσφορές PopuCom=Προϊόντα / Υπηρεσίες κατά δημοτικότητα στις παραγγελίες ProductStatistics=Στατιστικά Προϊόντων / Υπηρεσιών NbOfQtyInOrders=Ποσότητα σε παραγγελίες @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Είστε σίγουροι ότι θέλετε να " ConfirmBtnCommonTitle = Επιβεβαιώστε την ενέργειά σας CloseDialog = Κλείσιμο Autofill = Αυτόματη συμπλήρωση + +# externalsite +ExternalSiteSetup=Ρύθμιση συνδέσμου σε εξωτερικό ιστότοπο +ExternalSiteURL=Διεύθυνση URL εξωτερικού ιστότοπου περιεχομένου HTML iframe +ExternalSiteModuleNotComplete=Η ενότητα Εξωτερικός Ιστότοπος δεν έχει ρυθμιστεί σωστά. +ExampleMyMenuEntry=Το μενού μου + +# ftp +FTPClientSetup=Ρύθμιση ενότητας FTP ή SFTP Client +NewFTPClient=Ρύθμιση νέας σύνδεσης FTP/SFTP +FTPArea=Τομεας FTP/SFTP +FTPAreaDesc=Αυτή η οθόνη εμφανίζει μια προβολή ενός διακομιστή FTP ή SFTP. +SetupOfFTPClientModuleNotComplete=Η εγκατάσταση της ενότητας πελάτη FTP ή SFTP φαίνεται να είναι ελλιπής +FTPFeatureNotSupportedByYourPHP=Η PHP σας δεν υποστηρίζει λειτουργίες FTP ή SFTP +FailedToConnectToFTPServer=Απέτυχε η σύνδεση με τον διακομιστή (διακομιστής %s, θύρα %s) +FailedToConnectToFTPServerWithCredentials=Απέτυχε η σύνδεση στο διακομιστή με καθορισμένο όνομα χρήστη/κωδικό πρόσβασης +FTPFailedToRemoveFile=Αποτυχία διαγραφής αρχείου%s. +FTPFailedToRemoveDir=Αποτυχία κατάργησης του καταλόγου %s : ελέγξτε τα δικαιώματα και ότι ο κατάλογος είναι κενός. +FTPPassiveMode=Παθητική λειτουργία +ChooseAFTPEntryIntoMenu=Επιλέξτε μια τοποθεσία FTP/SFTP από το μενού... +FailedToGetFile=Αποτυχία λήψης αρχείων %s +ErrorFTPNodisconnect=Σφάλμα αποσύνδεσης διακομιστή FTP/SFTP +FileWasUpload=Το αρχείο %s μεταφορτώθηκε +FTPFailedToUploadFile=Απέτυχε η μεταφόρτωση του αρχείου %s . +AddFolder=Δημιουργια φακέλου +FileWasCreateFolder=Ο φάκελος %s έχει δημιουργηθεί +FTPFailedToCreateFolder=Απέτυχε η δημιουργία του φακέλου %s . diff --git a/htdocs/langs/el_GR/partnership.lang b/htdocs/langs/el_GR/partnership.lang index 16649b4b5d3..305cba8f54b 100644 --- a/htdocs/langs/el_GR/partnership.lang +++ b/htdocs/langs/el_GR/partnership.lang @@ -42,7 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks για έλεγχο PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Αριθμός ημερών πριν από την κατάσταση ακύρωσης μιας συνεργασίας όταν έχει λήξει μια συνδρομή ReferingWebsiteCheck=Έλεγχος αναφοράς ιστότοπου ReferingWebsiteCheckDesc=Μπορείτε να ενεργοποιήσετε μια δυνατότητα για να ελέγχετε ότι οι συνεργάτες σας έχουν προσθέσει έναν σύνδεσμο backlink του ιστότοπου σας στον δικό τους ιστότοπο. -PublicFormRegistrationPartnerDesc=Το Dolibarr μπορεί να σας παρέχει μια δημόσια διεύθυνση URL/ιστότοπο για να επιτρέπετε σε εξωτερικούς επισκέπτες η αίτηση συμμετοχής στο πρόγραμμα συνεργασίας. +PublicFormRegistrationPartnerDesc=Το Dolibarr μπορεί να σας παρέχει μια δημόσια διεύθυνση URL/ιστότοπο για να επιτρέπεται σε εξωτερικούς επισκέπτες η αίτηση συμμετοχής στο πρόγραμμα συνεργασίας. # # Object @@ -55,7 +55,7 @@ DatePartnershipEnd=Ημερομηνία λήξης ReasonDecline=Λόγος απόρριψης ReasonDeclineOrCancel=Λόγος απόρριψης PartnershipAlreadyExist=Υπάρχει ήδη Συνεργασία -ManagePartnership=Διαχειριστείτε τη συνεργασία +ManagePartnership=Διαχείριση της συνεργασίας BacklinkNotFoundOnPartnerWebsite=Ο σύνδεσμος Backlink δεν βρέθηκε στον ιστότοπο του συνεργάτη ConfirmClosePartnershipAsk=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτήν τη συνεργασία; PartnershipType=Τύπος συνεργασίας diff --git a/htdocs/langs/el_GR/paybox.lang b/htdocs/langs/el_GR/paybox.lang index 526e6f8aa95..3d34ad1474e 100644 --- a/htdocs/langs/el_GR/paybox.lang +++ b/htdocs/langs/el_GR/paybox.lang @@ -1,28 +1,28 @@ # Dolibarr language file - Source file is en_US - paybox -PayBoxSetup=Paybox μονάδα ρύθμισης -PayBoxDesc=Αυτή η ενότητα προσφέρει σελίδες που επιτρέπουν την πληρωμή στο Paybox από πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για ελεύθερη πληρωμή ή για πληρωμή σε συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία, ...) -FollowingUrlAreAvailableToMakePayments=Μετά από τις διευθύνσεις URL είναι διαθέσιμοι να προσφέρουν μια σελίδα σε έναν πελάτη να προβεί σε πληρωμή σε Dolibarr αντικείμενα -PaymentForm=Έντυπο πληρωμής -WelcomeOnPaymentPage=Καλώς ήλθατε στην ηλεκτρονική υπηρεσία πληρωμών μας -ThisScreenAllowsYouToPay=Αυτή η οθόνη σας επιτρέπει να κάνετε μια online πληρωμή %s. -ThisIsInformationOnPayment=Πρόκειται για πληροφορίες σχετικά με την πληρωμή να γίνει -ToComplete=Για να ολοκληρώσετε +PayBoxSetup=Ρύθμιση ενότητας PayBox +PayBoxDesc=Αυτή η ενότητα προσφέρει σελίδες που επιτρέπουν την πληρωμή στο Paybox από πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για ελεύθερη πληρωμή ή για πληρωμή σε συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, παραγγελία, ...) +FollowingUrlAreAvailableToMakePayments=Οι ακόλουθες διευθύνσεις URL είναι διαθέσιμες για να προσφέρουν μια σελίδα σε έναν πελάτη για να πραγματοποιήσει μια πληρωμή σε αντικείμενα του Dolibarr +PaymentForm=Φόρμα πληρωμής +WelcomeOnPaymentPage= Καλώς ήλθατε στην υπηρεσία διαδικτυακών πληρωμών +ThisScreenAllowsYouToPay=Σε αυτή την οθόνη μπορείτε να κάνετε μια ηλεκτρονική πληρωμή στο %s. +ThisIsInformationOnPayment=Πληροφορίες σχετικά με την πληρωμή σας +ToComplete=Προς ολοκλήρωση YourEMail=E-mail για να λάβετε επιβεβαίωση της πληρωμής Creditor=Πιστωτής PaymentCode=Κωδικός Πληρωμής -PayBoxDoPayment=Πληρώστε με το Paybox -YouWillBeRedirectedOnPayBox=Θα μεταφερθείτε σε προστατευμένη σελίδα Paybox να εισάγετε τα στοιχεία της πιστωτικής σας κάρτας -Continue=Επόμενη -SetupPayBoxToHavePaymentCreatedAutomatically=Ρυθμίστε το Paybox με τη διεύθυνση url %s για να δημιουργήσετε αυτόματα πληρωμή όταν επικυρωθεί από το Paybox. -YourPaymentHasBeenRecorded=Η σελίδα αυτή επιβεβαιώνει ότι η πληρωμή σας έχει καταγραφεί. Σας ευχαριστώ. -YourPaymentHasNotBeenRecorded=Η πληρωμή σας ΔΕΝ έχει εγγραφεί και η συναλλαγή έχει ακυρωθεί. Σας ευχαριστώ. +PayBoxDoPayment=Πληρώστε με Paybox +YouWillBeRedirectedOnPayBox=Θα ανακατευθυνθείτε σε ασφαλή σελίδα του Paybox για να εισαγάγετε τα στοιχεία της πιστωτικής σας κάρτας +Continue=Επόμενο +SetupPayBoxToHavePaymentCreatedAutomatically=Ρυθμίστε το Paybox σας με τη διεύθυνση url %s για την αυτόματη δημιουργία πληρωμής όταν γίνεται επικύρωση από το Paybox. +YourPaymentHasBeenRecorded=Σελίδα επιβεβαίωσης καταγραφής της πληρωμής σας. Ευχαριστούμε. +YourPaymentHasNotBeenRecorded=Η πληρωμή σας ΔΕΝ έχει καταγραφεί και η συναλλαγή έχει ακυρωθεί. Ευχαριστούμε. AccountParameter=Παράμετροι λογαριασμού UsageParameter=Παράμετροι χρήσης InformationToFindParameters=Βοήθεια για να βρείτε %s τα στοιχεία του λογαριασμού σας -PAYBOX_CGI_URL_V2=Url της ενότητας Paybox CGI για την πληρωμή -CSSUrlForPaymentForm=Url CSS φύλλο στυλ για το έντυπο πληρωμής -NewPayboxPaymentReceived=Νέα πληρωμή Paybox που λήφθηκε -NewPayboxPaymentFailed=Νέα πληρωμή Paybox προσπάθησαν αλλά απέτυχαν +PAYBOX_CGI_URL_V2=Διεύθυνση Url της ενότητας Paybox CGI για την πληρωμή +CSSUrlForPaymentForm=URL CSS style sheet για φόρμα πληρωμής +NewPayboxPaymentReceived=Νέα πληρωμή Paybox ελήφθη +NewPayboxPaymentFailed=Η πληρωμή Paybox απέτυχε PAYBOX_PAYONLINE_SENDEMAIL=Ειδοποίηση ηλεκτρονικού ταχυδρομείου μετά από προσπάθεια πληρωμής (επιτυχία ή αποτυχία) PAYBOX_PBX_SITE=Τιμή για PBX SITE PAYBOX_PBX_RANG=Τιμή για PBX Rang diff --git a/htdocs/langs/el_GR/paypal.lang b/htdocs/langs/el_GR/paypal.lang index 3bdb26a3bb0..5fe01fead73 100644 --- a/htdocs/langs/el_GR/paypal.lang +++ b/htdocs/langs/el_GR/paypal.lang @@ -1,36 +1,36 @@ # Dolibarr language file - Source file is en_US - paypal -PaypalSetup=Άμεση εγκατάσταση μονάδας +PaypalSetup=Ρύθμιση ενότητας PayPal PaypalDesc=Αυτή η ενότητα επιτρέπει την πληρωμή από πελάτες μέσω του PayPal . Αυτό μπορεί να χρησιμοποιηθεί για μια ad-hoc πληρωμή ή για μια πληρωμή που σχετίζεται με ένα αντικείμενο Dolibarr (τιμολόγιο, παραγγελία, ...) -PaypalOrCBDoPayment=Πληρώστε με PayPal (Κάρτα ή PayPal) -PaypalDoPayment=Πληρώστε με PayPal +PaypalOrCBDoPayment=Πληρωμή με PayPal (Κάρτα ή PayPal) +PaypalDoPayment=Πληρωμή με PayPal PAYPAL_API_SANDBOX=Λειτουργία δοκιμής / sandbox -PAYPAL_API_USER=API όνομα χρήστη -PAYPAL_API_PASSWORD=API κωδικό πρόσβασης -PAYPAL_API_SIGNATURE=API υπογραφή -PAYPAL_SSLVERSION=Curl SSL Version -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Προσφορά "ολοκληρωμένης" πληρωμής (Πιστωτική κάρτα + PayPal) ή "PayPal" μόνο -PaypalModeIntegral=Ενσωματωμένο -PaypalModeOnlyPaypal=PayPal μόνο +PAYPAL_API_USER=Όνομα χρήστη API +PAYPAL_API_PASSWORD=Κωδικός πρόσβασης API +PAYPAL_API_SIGNATURE=Υπογραφή API +PAYPAL_SSLVERSION=Έκδοση Curl SSL +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Προσφορά "ολοκληρωμένης" πληρωμής (Πιστωτική κάρτα + PayPal) ή μόνο "PayPal" +PaypalModeIntegral=Ολοκληρωμένη +PaypalModeOnlyPaypal=Μόνο PayPal ONLINE_PAYMENT_CSS_URL=Προαιρετική διεύθυνση URL του φύλλου στυλ CSS στη σελίδα ηλεκτρονικών πληρωμών -ThisIsTransactionId=Αυτό είναι id της συναλλαγής: %s -PAYPAL_ADD_PAYMENT_URL=Συμπεριλάβετε τη διεύθυνση URL πληρωμής του PayPal όταν στέλνετε ένα έγγραφο μέσω ηλεκτρονικού ταχυδρομείου -NewOnlinePaymentReceived=Υποβλήθηκε νέα ηλεκτρονική πληρωμή -NewOnlinePaymentFailed=Η νέα ηλεκτρονική πληρωμή προσπάθησε αλλά απέτυχε -ONLINE_PAYMENT_SENDEMAIL=Διεύθυνση ηλεκτρονικού ταχυδρομείου για ειδοποιήσεις μετά από κάθε απόπειρα πληρωμής (για επιτυχία και αποτυχία) -ReturnURLAfterPayment=Επιστροφή στο URL μετά από την πληρωμή +ThisIsTransactionId=Αυτό είναι το αναγνωριστικό της συναλλαγής: %s +PAYPAL_ADD_PAYMENT_URL=Συμπεριλάβετε τη διεύθυνση URL πληρωμής του PayPal όταν στέλνετε ένα έγγραφο μέσω Email +NewOnlinePaymentReceived=Λήφθηκε νέα ηλεκτρονική πληρωμή +NewOnlinePaymentFailed=Η νέα ηλεκτρονική πληρωμή απέτυχε +ONLINE_PAYMENT_SENDEMAIL=Email για ειδοποιήσεις μετά από κάθε απόπειρα πληρωμής (για επιτυχία και αποτυχία) +ReturnURLAfterPayment=URL επιστροφής μετά από την πληρωμή ValidationOfOnlinePaymentFailed=Η επικύρωση της ηλεκτρονικής πληρωμής απέτυχε -PaymentSystemConfirmPaymentPageWasCalledButFailed=Η σελίδα επιβεβαίωσης πληρωμής κλήθηκε από το σύστημα πληρωμών επέστρεψε λάθος +PaymentSystemConfirmPaymentPageWasCalledButFailed=Η σελίδα επιβεβαίωσης πληρωμής που κλήθηκε από το σύστημα πληρωμών επέστρεψε ένα σφάλμα SetExpressCheckoutAPICallFailed=Η κλήση API SetExpressCheckout απέτυχε. DoExpressCheckoutPaymentAPICallFailed=Η κλήση API DoExpressCheckoutPayment απέτυχε. DetailedErrorMessage=Λεπτομερές μήνυμα λάθους ShortErrorMessage=Σύντομο μήνυμα σφάλματος -ErrorCode=Λάθος κωδικός +ErrorCode=Κωδικός λάθους ErrorSeverityCode=Κωδικός σοβαρότητας σφάλματος OnlinePaymentSystem=Ηλεκτρονικό σύστημα πληρωμών -PaypalLiveEnabled=PayPal "ζωντανή" λειτουργία ενεργοποιημένη (διαφορετικά δοκιμή / mode sandbox) +PaypalLiveEnabled=Η λειτουργία "live" του PayPal είναι ενεργοποιημένη (αλλιώς λειτουργία δοκιμής/δοκιμών δοκιμών) PaypalImportPayment=Εισαγωγή πληρωμών PayPal -PostActionAfterPayment=Δημοσίευση ενεργειών μετά από πληρωμές -ARollbackWasPerformedOnPostActions=Έγινε επαναφορά σε όλες τις ενέργειες Post. Πρέπει να ολοκληρώσετε μη αυτόματα τις ενέργειες αν είναι απαραίτητες. +PostActionAfterPayment=Post actions μετά από πληρωμές +ARollbackWasPerformedOnPostActions=Έγινε επαναφορά σε όλες τις Post actions. Πρέπει να ολοκληρώσετε μη αυτόματα τις Post actions αν είναι απαραίτητες. ValidationOfPaymentFailed=Η επικύρωση της πληρωμής απέτυχε CardOwner=Κάτοχος κάρτας -PayPalBalance=Paypal πίστωσης +PayPalBalance=Πίστωση Paypal diff --git a/htdocs/langs/el_GR/printing.lang b/htdocs/langs/el_GR/printing.lang index b9cc758e331..038c9679a2d 100644 --- a/htdocs/langs/el_GR/printing.lang +++ b/htdocs/langs/el_GR/printing.lang @@ -2,23 +2,23 @@ Module64000Name=Εκτύπωση με ένα κλικ Module64000Desc=Ενεργοποιήστε το Σύστημα Εκτύπωσης με ένα κλικ PrintingSetup=Ρύθμιση του Συστήματος Εκτύπωσης με ένα κλικ -PrintingDesc=Αυτή η μονάδα προσθέτει ένα κουμπί Εκτύπωσης σε διάφορες ενότητες για να επιτρέπει την απευθείας εκτύπωση εγγράφων σε έναν εκτυπωτή χωρίς να χρειάζεται να ανοίξετε το έγγραφο σε άλλη εφαρμογή. +PrintingDesc=Αυτή η ενότητα προσθέτει ένα κουμπί Εκτύπωσης σε διάφορες ενότητες για να επιτρέπει την απευθείας εκτύπωση εγγράφων σε έναν εκτυπωτή χωρίς να χρειάζεται να ανοίξετε το έγγραφο σε άλλη εφαρμογή. MenuDirectPrinting=Εργασίες Εκτύπωσης με ένα κλικ DirectPrint=Εκτύπωση με ένα κλικ PrintingDriverDesc=Διαμόρφωση μεταβλητών για τον οδηγό εκτύπωσης. ListDrivers=Λίστα οδηγών PrintTestDesc=Λίστα Εκτυπωτών. FileWasSentToPrinter=Το αρχείο %s στάλθηκε στον εκτυπωτή -ViaModule=μέσω της μονάδας -NoActivePrintingModuleFound=Δεν υπάρχει ενεργό πρόγραμμα οδήγησης για την εκτύπωση εγγράφου. Ελέγξτε τη ρύθμιση της μονάδας %s. +ViaModule=μέσω της ενότητας +NoActivePrintingModuleFound=Δεν υπάρχει ενεργός driver για την εκτύπωση εγγράφου. Ελέγξτε τη ρύθμιση της ενότητας %s. PleaseSelectaDriverfromList=Παρακαλώ επιλέξτε ένα πρόγραμμα οδήγησης από τη λίστα. -PleaseConfigureDriverfromList=Προσαρμόστε το επιλεγμένο πρόγραμμα οδήγησης από τη λίστα. +PleaseConfigureDriverfromList=Διαμορφώστε το επιλεγμένο πρόγραμμα οδήγησης από τη λίστα. SetupDriver=Ρυθμίσεις του προγράμματος οδήγησης TargetedPrinter=Στοχευμένη εκτύπωση UserConf=Ρύθμιση ανά χρήστη PRINTGCP_INFO=Ρύθμιση API Google OAuth PRINTGCP_AUTHLINK=Επικύρωση -PRINTGCP_TOKEN_ACCESS=Το Token OAuth του Google Cloud Print +PRINTGCP_TOKEN_ACCESS=Το token OAuth του Google Cloud Print PrintGCPDesc=Αυτό το πρόγραμμα οδήγησης επιτρέπει την απευθείας αποστολή εγγράφων σε εκτυπωτή χρησιμοποιώντας το Google Cloud Print. GCP_Name=Όνομα GCP_displayName=Εμφανιζόμενο όνομα @@ -46,8 +46,8 @@ IPP_Device=Συσκευή IPP_Media=Μέσα εκτύπωσης IPP_Supported=Τύπος των μέσων DirectPrintingJobsDesc=Αυτή η σελίδα παραθέτει τις εργασίες εκτύπωσης που βρέθηκαν για τους διαθέσιμους εκτυπωτές. -GoogleAuthNotConfigured=Το Google OAuth δεν έχει ρυθμιστεί. Ενεργοποιήστε την ενότητα OAuth και ορίστε ένα αναγνωριστικό / μυστικό Google. -GoogleAuthConfigured=Τα διαπιστευτήρια του Google OAuth βρέθηκαν στη ρύθμιση του module OAuth. +GoogleAuthNotConfigured=Το Google OAuth δεν έχει ρυθμιστεί. Ενεργοποιήστε την ενότητα OAuth και ορίστε ένα Google ID/Secret. +GoogleAuthConfigured=Τα διαπιστευτήρια του Google OAuth βρέθηκαν στη ρύθμιση της ενότητας OAuth. PrintingDriverDescprintgcp=Διαμόρφωση μεταβλητών οδηγών εκτύπωσης του Google Cloud Print. PrintingDriverDescprintipp=Διαμόρφωση μεταβλητών οδηγών εκτύπωσης Cups. PrintTestDescprintgcp=Λίστα εκτυπωτών με δυνατότητα Google Cloud Print. diff --git a/htdocs/langs/el_GR/productbatch.lang b/htdocs/langs/el_GR/productbatch.lang index 12e3ec0401b..4f6858b46d6 100644 --- a/htdocs/langs/el_GR/productbatch.lang +++ b/htdocs/langs/el_GR/productbatch.lang @@ -17,8 +17,9 @@ printBatch=Παρτίδα/Σειριακός αριθμός: %s printEatby=Λήξη ανάλωσης: %s printSellby=Πώληση έως: %s printQty=Ποσότητα: %d +printPlannedWarehouse=Αποθήκη: %s AddDispatchBatchLine=Προσθέστε μια γραμμή για την αποστολή παρτίδας -WhenProductBatchModuleOnOptionAreForced=Όταν η επιλογή παρτίδας / σειριακού αριθμού είναι ενεργοποιημένη, στην αυτόματη μείωση των αποθεμάτων είναι αναγκαστικά επιλεγμένη η «Μείωση πραγματικών αποθεμάτων κατά την επικύρωση αποστολής» και στην αυτόματη λειτουργία αύξησης είναι αναγκαστικά επιλεγμένη η «Αύξηση των πραγματικών αποθεμάτων κατά τη χειροκίνητη αποστολή σε αποθήκες» και δεν μπορεί να γίνει επεξεργασία. Οι άλλες επιλογές μπορούν να οριστούν όπως θέλετε. +WhenProductBatchModuleOnOptionAreForced=Όταν η ενότητα παρτίδας / σειριακού αριθμού είναι ενεργοποιημένη, στην αυτόματη μείωση των αποθεμάτων είναι αναγκαστικά επιλεγμένη η «Μείωση πραγματικών αποθεμάτων κατά την επικύρωση αποστολής» και στην αυτόματη λειτουργία αύξησης είναι αναγκαστικά επιλεγμένη η «Αύξηση των πραγματικών αποθεμάτων κατά τη χειροκίνητη αποστολή σε αποθήκες» και δεν μπορεί να γίνει επεξεργασία. Οι άλλες επιλογές μπορούν να οριστούν όπως θέλετε. ProductDoesNotUseBatchSerial=Το προιόν δεν χρησιμοποιεί παρτίδα/σειριακό αριθμό ProductLotSetup=Ρύθμιση της ενότητας παρτίδα/σειριακός αριθμός ShowCurrentStockOfLot=Εμφάνιση παρόντος αποθέματος για ζεύγος προϊόν/παρτίδα @@ -33,7 +34,7 @@ BatchSerialNumberingModules=Κανόνας αρίθμησης για αυτόμ QtyToAddAfterBarcodeScan=Ποσότητα έως %s για κάθε σκαναρισμένο barcode/παρτίδα/σειριακό αριθμό LifeTime=Διάρκεια ζωής (σε ημέρες) EndOfLife=Τέλος κύκλου ζωής -ManufacturingDate=Ημερομηνία κατασκευής +ManufacturingDate=Ημερομηνία παραγωγής DestructionDate=Ημερομηνία καταστροφής FirstUseDate=Ημερομηνία πρώτης χρήσης QCFrequency=Συχνότητα ποιοτικού ελέγχου (σε ημέρες) diff --git a/htdocs/langs/el_GR/products.lang b/htdocs/langs/el_GR/products.lang index b1ac16ce02b..ac8eac8a0da 100644 --- a/htdocs/langs/el_GR/products.lang +++ b/htdocs/langs/el_GR/products.lang @@ -84,7 +84,7 @@ EditSellingPriceLabel=Επεξεργασία ετικέτας τιμής πώλ CantBeLessThanMinPrice=Η τιμή πώλησης δεν μπορεί να είναι χαμηλότερη από την ελάχιστη επιτρεπόμενη για αυτό το προϊόν (%s χωρίς Φ.Π.Α). Αυτό το μήνυμα μπορεί επίσης να εμφανιστεί εάν πληκτρολογήσετε μια πολύ σημαντική έκπτωση. ContractStatusClosed=Κλειστό ErrorProductAlreadyExists=Ένα προϊόν με κωδικό %s υπάρχει ήδη. -ErrorProductBadRefOrLabel=Λάθος τιμή για την αναφορά ή την ετικέτα. +ErrorProductBadRefOrLabel=Λανθασμένη τιμή για αναφορά ή ετικέτα. ErrorProductClone=Παρουσιάστηκε πρόβλημα κατά την προσπάθεια κλωνοποίησης του προϊόντος ή της υπηρεσίας. ErrorPriceCantBeLowerThanMinPrice=Σφάλμα, η τιμή δεν μπορεί να είναι χαμηλότερη από την ελάχιστη τιμή. Suppliers=Προμηθευτές @@ -136,7 +136,7 @@ DeleteProductLine=Διαγραφή σειράς προϊόντων ConfirmDeleteProductLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη γραμμή προϊόντος; ProductSpecial=Ειδικό QtyMin=Ελάχιστη. ποσότητα αγοράς -PriceQtyMin=Τιμή ελάχιστη ποσότητα. +PriceQtyMin=Τιμή ελάχιστης ποσότητας. PriceQtyMinCurrency=Τιμή (νόμισμα) για αυτήν την ποσότητα. WithoutDiscount=Χωρίς έκπτωση VATRateForSupplierProduct=ΦΠΑ (για αυτόν τον προμηθευτή / προϊόν) @@ -165,7 +165,7 @@ CloneCategoriesProduct=Επαναχρησιμοποιήστε συνδεδεμέ CloneCompositionProduct=Επαναχρησιμοποιήστε εικονικα προϊόντα/υπηρεσιες CloneCombinationsProduct=Επαναχρησιμοποιήστε τις παραλλαγές προϊόντων ProductIsUsed=Μεταχειρισμένο -NewRefForClone=Ref. of new product/service +NewRefForClone=Αναφ. νέου προϊόντος/υπηρεσίας SellingPrices=Τιμές Πώλησης BuyingPrices=Τιμές Αγοράς CustomerPrices=Τιμές Πελατών @@ -237,8 +237,8 @@ unitFT3=ft³ unitIN3=in³ unitOZ3=ουγκιά unitgallon=γαλόνι -ProductCodeModel=Προϊόν κωδ. Πρότυπο -ServiceCodeModel=Υπηρεσία κωδ. Πρότυπο +ProductCodeModel=Πρότυπο αναφοράς προϊόντος +ServiceCodeModel=Πρότυπο αναφοράς υπηρεσίας CurrentProductPrice=Τρέχουσα Τιμή AlwaysUseNewPrice=Να χρησιμοποιείτε πάντα την τρέχουσα τιμή προϊόντος/υπηρεσίας AlwaysUseFixedPrice=Χρησιμοποιήστε τη σταθερή τιμή @@ -255,7 +255,7 @@ VariantLabelExample=Παραδείγματα: Χρώμα, Μέγεθος ### composition fabrication Build=Παράγω ProductsMultiPrice=Προϊόντα και τιμές για κάθε τμήμα τιμών -ProductsOrServiceMultiPrice=Τιμές πελατών (προϊόντων ή υπηρεσιών, πολυ-τιμές) +ProductsOrServiceMultiPrice=Τιμές πελατών (προϊόντων ή υπηρεσιών, πολλαπλές τιμές) ProductSellByQuarterHT=Κύκλος εργασιών τριμηνιαία πριν από τη φορολογία ServiceSellByQuarterHT=Κύκλος εργασιών ανά τρίμηνο προ φόρων Quarter1=1ο. Τέταρτο @@ -282,7 +282,7 @@ AddCustomerPrice=Προσθήκη τιμής ανά πελάτη ForceUpdateChildPriceSoc=Ορίστε την ίδια τιμή στις θυγατρικές του πελάτη PriceByCustomerLog=Καταγραφή προηγούμενων τιμών πελατών MinimumPriceLimit=Η ελάχιστη τιμή δεν μπορεί να είναι χαμηλότερη από %s -MinimumRecommendedPrice=Η ελάχιστη συνιστώμενη τιμή είναι: %s +MinimumRecommendedPrice=Η ελάχιστη προτεινόμενη τιμή είναι: %s PriceExpressionEditor=Επεξεργαστής συνάρτησης τιμών PriceExpressionSelected=Επιλεγμένη έκφραση τιμής PriceExpressionEditorHelp1="τιμή = 2 + 2" ή "2 + 2" για τον καθορισμό της τιμής. Χρησιμοποιήστε ; για να διαχωρίσετε τις εκφράσεις @@ -330,13 +330,13 @@ TranslatedNote=Μεταφρασμένες σημειώσεις ProductWeight=Βάρος για 1 προϊόν ProductVolume=Όγκος για 1 προϊόν WeightUnits=Μονάδα βάρους -VolumeUnits=Μονάδα έντασης ήχου +VolumeUnits=Μονάδα όγκου WidthUnits=Πλάτος LengthUnits=Μήκος HeightUnits=Ύψος SurfaceUnits=Μονάδα επιφάνειας SizeUnits=Μονάδα μεγέθους -DeleteProductBuyPrice=Διαγράψτε την τιμή αγοράς +DeleteProductBuyPrice=Διαγραφή τιμής αγοράς ConfirmDeleteProductBuyPrice=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την τιμή αγοράς; SubProduct=Υποπροϊόν ProductSheet=Φύλλο προϊόντος @@ -344,7 +344,7 @@ ServiceSheet=Φύλλο εξυπηρέτησης PossibleValues=Πιθανές τιμές GoOnMenuToCreateVairants=Πηγαίνετε στο μενού %s - %s για να προετοιμάσετε παραλλαγές χαρακτηριστικών (όπως χρώματα, μέγεθος, ...) UseProductFournDesc=Προσθέστε μια δυνατότητα για να ορίσετε την περιγραφή του προϊόντος που ορίστηκε από τους προμηθευτές (για κάθε αναφορά προμηθευτή) επιπρόσθετα της περιγραφής για τους πελάτες -ProductSupplierDescription=Περιγραφή του πωλητή για το προϊόν +ProductSupplierDescription=Περιγραφή προμηθευτή για το προϊόν UseProductSupplierPackaging=Χρησιμοποιήστε τη συσκευασία στις τιμές προμηθευτή (επανυπολογίστε τις ποσότητες σύμφωνα με τη συσκευασία που καθορίζεται στην τιμή προμηθευτή κατά την προσθήκη / ενημέρωση της γραμμής στα έγγραφα προμηθευτών) PackagingForThisProduct=Συσκευασία PackagingForThisProductDesc=Θα αγοράσετε αυτόματα ένα πολλαπλάσιο αυτής της ποσότητας. @@ -362,7 +362,7 @@ ProductCombinationAlreadyUsed=Παρουσιάστηκε σφάλμα κατά ProductCombinations=Παραλλαγές PropagateVariant=Διαφορετικές παραλλαγές HideProductCombinations=Απόκρυψη παραλλαγών προϊόντων στον επιλογέα προϊόντων -ProductCombination=Παραλαγή +ProductCombination=Παραλλαγή NewProductCombination=Νέα παραλλαγή EditProductCombination=Επεξεργασία παραλλαγής NewProductCombinations=Νέες παραλλαγές @@ -378,9 +378,9 @@ WeightImpact=Επιπτώσεις στο βάρος NewProductAttribute=Νέο χαρακτηριστικό NewProductAttributeValue=Νέα τιμή χαρακτηριστικού ErrorCreatingProductAttributeValue=Παρουσιάστηκε σφάλμα κατά τη δημιουργία της τιμής του χαρακτηριστικού. Θα μπορούσε να είναι επειδή υπάρχει ήδη μια υπάρχουσα τιμή με αυτή την αναφορά -ProductCombinationGeneratorWarning=Εάν συνεχίσετε, προτού δημιουργήσετε νέες παραλλαγές, όλες οι προηγούμενες θα διαγραφούν. Οι ήδη υπάρχοντες θα ενημερωθούν με τις νέες τιμές -TooMuchCombinationsWarning=Η παραγωγή πολλών παραλλαγών μπορεί να οδηγήσει σε υψηλή CPU, χρήση μνήμης και Dolibarr δεν είναι σε θέση να τα δημιουργήσει. Η ενεργοποίηση της επιλογής "%s" μπορεί να βοηθήσει στη μείωση της χρήσης της μνήμης. -DoNotRemovePreviousCombinations=Μην αφαιρέσετε προηγούμενες παραλλαγές +ProductCombinationGeneratorWarning=Εάν συνεχίσετε, πριν δημιουργήσετε νέες παραλλαγές, όλες οι προηγούμενες θα ΔΙΑΓΡΑΦΟΥΝ. Οι ήδη υπάρχουσες θα ενημερωθούν με τις νέες τιμές +TooMuchCombinationsWarning=Η δημιουργία πολλών παραλλαγών μπορεί να έχει ως αποτέλεσμα υψηλή χρήση CPU και μνήμης με συνέπεια το Dolibarr να μην μπορεί να τις δημιουργήσει. Η ενεργοποίηση της επιλογής "%s" μπορεί να βοηθήσει στη μείωση της χρήσης μνήμης. +DoNotRemovePreviousCombinations=Μην αφαιρείτε προηγούμενες παραλλαγές UsePercentageVariations=Χρησιμοποιήστε ποσοστιαίες παραλλαγές PercentageVariation=Ποσοστιαία μεταβολή ErrorDeletingGeneratedProducts=Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής των υπαρχουσών παραλλαγών προϊόντων @@ -394,13 +394,13 @@ ConfirmCloneProductCombinations=Θέλετε να αντιγράψετε όλε CloneDestinationReference=Παραπομπή προϊόντος προορισμού ErrorCopyProductCombinations=Παρουσιάστηκε σφάλμα κατά την αντιγραφή των παραλλαγών του προϊόντος ErrorDestinationProductNotFound=Το προϊόν προορισμού δεν βρέθηκε -ErrorProductCombinationNotFound=Παραλλαγή προϊόντος δεν βρέθηκε -ActionAvailableOnVariantProductOnly=Δράση διαθέσιμη μόνο για την παραλλαγή του προϊόντος +ErrorProductCombinationNotFound=Η παραλλαγή προϊόντος δεν βρέθηκε +ActionAvailableOnVariantProductOnly=Η ενέργεια είναι διαθέσιμη μόνο για την παραλλαγή του προϊόντος ProductsPricePerCustomer=Τιμές προϊόντων ανά πελάτη ProductSupplierExtraFields=Πρόσθετα χαρακτηριστικά (τιμές προμηθευτή) DeleteLinkedProduct=Διαγράψτε το θυγατρικό προϊόν που συνδέεται με τον συνδυασμό AmountUsedToUpdateWAP=Ποσό που θα χρησιμοποιηθεί για την ενημέρωση της σταθμισμένης μέσης τιμής -PMPValue=Μέση σταθμική τιμή +PMPValue=Σταθμισμένη μέση τιμή PMPValueShort=WAP mandatoryperiod=Υποχρεωτικές περίοδοι mandatoryPeriodNeedTobeSet=Σημείωση: Πρέπει να καθοριστεί η περίοδος (ημερομηνία έναρξης και λήξης). diff --git a/htdocs/langs/el_GR/projects.lang b/htdocs/langs/el_GR/projects.lang index f8f49d5e233..7e7dbb4f0b2 100644 --- a/htdocs/langs/el_GR/projects.lang +++ b/htdocs/langs/el_GR/projects.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - projects -RefProject=Κωδ. έργου -ProjectRef=Αναφορά έργου. -ProjectId=Id Έργου +RefProject=Αναφ. έργου +ProjectRef=Αναφ. έργου. +ProjectId=Αναγνωριστικό έργου ProjectLabel=Ετικέτα έργου -ProjectsArea=Περιοχή έργων +ProjectsArea=Τομέας Έργων ProjectStatus=Κατάσταση έργου SharedProject=Όλοι PrivateProject=Εκχωρημένες επαφές @@ -11,55 +11,58 @@ ProjectsImContactFor=Έργα για τα οποία είμαι αποκλεισ AllAllowedProjects=Όλα τα έργα που μπορώ να διαβάσω (δικά μου + δημόσια) AllProjects=Όλα τα έργα MyProjectsDesc=Αυτή η προβολή περιορίζεται στα έργα για τα οποία είστε επαφή -ProjectsPublicDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα σας επιτρέπεται να διαβάσετε. +ProjectsPublicDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα που επιτρέπεται να διαβάσετε. TasksOnProjectsPublicDesc=Αυτή η προβολή παρουσιάζει όλες τις εργασίες στα έργα που επιτρέπεται να διαβάσετε. -ProjectsPublicTaskDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τα καθήκοντα που επιτρέπεται να δείτε. -ProjectsDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα (δικαιώματα χρήστη να δώσει δικαίωμα για να δείτε τα πάντα). +ProjectsPublicTaskDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες που επιτρέπεται να διαβάσετε. +ProjectsDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα (τα δικαιώματα χρήστη σας δίνουν την άδεια να βλέπετε τα πάντα). TasksOnProjectsDesc=Αυτή η προβολή παρουσιάζει όλες τις εργασίες σε όλα τα έργα (οι άδειες χρήστη σας επιτρέπουν να δείτε τα πάντα). MyTasksDesc=Αυτή η προβολή περιορίζεται στα έργα ή εργασίες για τα οποία είστε επαφή -OnlyOpenedProject=Είναι ορατά μόνο τα ανοιχτά έργα (δεν εμφανίζονται έργα σε μορφή πρόχειρης ή κλειστής). +OnlyOpenedProject=Είναι ορατά μόνο τα ανοιχτά έργα (δεν εμφανίζονται τα προσχέδια ή τα κλειστά εργα). ClosedProjectsAreHidden=Τα κλειστά έργα δεν είναι ορατά. -TasksPublicDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα και τα καθήκοντα που επιτρέπεται να διαβάζουν. -TasksDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα και τα καθήκοντα (δικαιώματα χρήστη να δώσει δικαίωμα για να δείτε τα πάντα). -AllTaskVisibleButEditIfYouAreAssigned=Όλες οι εργασίες για πιστοποιημένα έργα είναι ορατές, αλλά μπορείτε να εισάγετε χρόνο μόνο για εργασία που έχει εκχωρηθεί σε επιλεγμένο χρήστη. Εκχωρήστε εργασία αν χρειαστεί να εισαγάγετε χρόνο σε αυτήν. -OnlyYourTaskAreVisible=Μόνο εργασίες που σας έχουν ανατεθεί είναι ορατές. Αν χρειάζεται να εισάγετε χρόνο στην εργασία και η εργασία δεν είναι ορατή, πρέπει να αντιστοιχίσετε την εργασία στον εαυτό σας. +TasksPublicDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες που επιτρέπεται να διαβάσετε. +TasksDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες (τα δικαιώματα χρήστη σας δίνουν την άδεια να βλέπετε τα πάντα). +AllTaskVisibleButEditIfYouAreAssigned=Όλες οι εργασίες για πιστοποιημένα έργα είναι ορατές, αλλά μπορείτε να εισάγετε χρόνο μόνο για εργασία που έχει εκχωρηθεί σε επιλεγμένο χρήστη. Εκχωρήστε εργασία αν χρειαστεί να εισάγετε χρόνο σε αυτήν. +OnlyYourTaskAreVisible=Μόνο εργασίες που σας έχουν ανατεθεί είναι ορατές. Αν χρειάζεται να εισάγετε χρόνο στην εργασία και η εργασία δεν είναι ορατή, πρέπει να αναθέσετε την εργασία στον εαυτό σας. +ImportDatasetProjects=Έργα ή ευκαιρίες ImportDatasetTasks=Καθήκοντα έργων -ProjectCategories=Ετικέτες / κατηγορίες έργου +ProjectCategories=Ετικέτες/κατηγορίες έργου NewProject=Νέο Έργο AddProject=Δημιουργία έργου DeleteAProject=Διαγραφή Έργου DeleteATask=Διαγραφή Εργασίας -ConfirmDeleteAProject=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το έργο; -ConfirmDeleteATask=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την εργασία; +ConfirmDeleteAProject=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το έργο; +ConfirmDeleteATask=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την εργασία; OpenedProjects=Ανοιχτά έργα -OpenedTasks=Άνοιγμα εργασιών +OpenedTasks=Ανοιχτές εργασίες OpportunitiesStatusForOpenedProjects=Ποσό προοπτικών ανοιχτών έργων ανά κατάσταση OpportunitiesStatusForProjects=Ποσό προοπτικών έργων ανά κατάσταση ShowProject=Εμφάνιση έργου ShowTask=Εμφάνιση Εργασίας -SetProject=Set project -NoProject=No project defined or owned +SetThirdParty=Ορισμός τρίτου μέρους +SetProject=Ορισμός έργου +OutOfProject=Εκτός έργου +NoProject=Κανένα έργο δεν έχει οριστεί ή εκχωρηθεί NbOfProjects=Αριθμός έργων NbOfTasks=Αριθμός εργασιών -TimeSpent=Χρόνος που δαπανήθηκε -TimeSpentByYou=Χρόνος που δαπανάται από εσάς -TimeSpentByUser=Χρόνος που δαπανάται από τον χρήστη -TimesSpent=Ο χρόνος που δαπανάται +TimeSpent=Χρόνος που ξοδεύτηκε +TimeSpentByYou=Χρόνος που ξοδεύτηκε από εσάς +TimeSpentByUser=Χρόνος που ξοδεύτηκε από χρήστη +TimesSpent=Χρόνος που δαπανήθηκε TaskId=Αναγνωριστικό εργασίας RefTask=Αναφορά εργασίας LabelTask=Ετικέτα εργασιών -TaskTimeSpent=Ο χρόνος που δαπανάται σε εργασίες +TaskTimeSpent=Χρόνος που ξοδεύτηκε σε εργασίες TaskTimeUser=Χρήστης TaskTimeNote=Σημείωση TaskTimeDate=Ημερομηνία -TasksOnOpenedProject=Καθήκοντα σε ανοικτά έργα -WorkloadNotDefined=Ο φόρτος εργασίας δεν ορίζεται -NewTimeSpent=Ο χρόνος που δαπανάται -MyTimeSpent=Ο χρόνος μου πέρασε -BillTime=Ο χρόνος που πέρασε -BillTimeShort=Χρόνος λογαριασμού -TimeToBill=Χρόνος που δεν χρεώνεται -TimeBilled=Χρόνος χρέωσης +TasksOnOpenedProject=Εργασίες σε ανοιχτά έργα +WorkloadNotDefined=Ο φόρτος εργασίας δεν έχει καθοριστεί +NewTimeSpent=Χρόνος που ξοδεύτηκε +MyTimeSpent=Ο χρόνος που δαπάνησα +BillTime=Χρέωση του χρόνου που δαπανήθηκε +BillTimeShort=Χρέωση χρόνου +TimeToBill=Χρόνος που δεν χρεώθηκε +TimeBilled=Χρόνος που χρεώθηκε Tasks=Εργασίες Task=Εργασία TaskDateStart=Ημερομηνία έναρξης εργασιών @@ -67,16 +70,16 @@ TaskDateEnd=Ημερομηνία λήξης εργασιών TaskDescription=Περιγραφή των εργασιών NewTask=Νέα Εργασία AddTask=Δημιουργία εργασίας -AddTimeSpent=Δημιουργήστε χρόνο που δαπανάται -AddHereTimeSpentForDay=Προσθέστε εδώ χρόνο που δαπανάται για αυτήν την ημέρα / εργασία +AddTimeSpent=Δημιουργήστε χρόνο που δαπανήθηκε +AddHereTimeSpentForDay=Προσθέστε εδώ χρόνο που δαπανήθηκε για αυτήν την ημέρα / εργασία AddHereTimeSpentForWeek=Προσθέστε εδώ χρόνο που δαπανάται για αυτήν την εβδομάδα / εργασία Activity=Δραστηριότητα Activities=Εργασίες/Δραστηριότητες -MyActivities=Οι εργασίες/δραστηρ. μου +MyActivities=Οι εργασίες/δραστηρίοτητες μου MyProjects=Τα έργα μου -MyProjectsArea=Τα έργα μου Περιοχή +MyProjectsArea=Τομέας έργων μου DurationEffective=Αποτελεσματική διάρκεια -ProgressDeclared=Ορίστε την πραγματική πρόοδο +ProgressDeclared=Δηλώθηκε πραγματική πρόοδος TaskProgressSummary=Πρόοδος εργασιών CurentlyOpenedTasks=Ανοιχτές εργασίες TheReportedProgressIsLessThanTheCalculatedProgressionByX=Η δηλωμένη πραγματική πρόοδος είναι μικρότερη κατά %s από την πρόοδο που έχει καταναλωθεί @@ -86,143 +89,144 @@ WhichIamLinkedTo=με το οποίο είμαι συνδεδεμένος WhichIamLinkedToProject=που είμαι συνδεδεμένος με το έργο Time=Χρόνος TimeConsumed=Έχει καταναλωθεί -ListOfTasks=Κατάλογος εργασιών +ListOfTasks=Λίστα εργασιών GoToListOfTimeConsumed=Μεταβείτε στη λίστα του χρόνου που έχει καταναλωθεί GanttView=Gantt View ListWarehouseAssociatedProject=Λίστα αποθηκών που σχετίζονται με το έργο -ListProposalsAssociatedProject=Κατάλογος των εμπορικών προτάσεων που σχετίζονται με το έργο -ListOrdersAssociatedProject=Κατάλογος παραγγελιών πωλήσεων που σχετίζονται με το έργο -ListInvoicesAssociatedProject=Κατάλογος των τιμολογίων πελατών που σχετίζονται με το έργο +ListProposalsAssociatedProject=Λίστα των εμπορικών προσφορών που σχετίζονται με το έργο +ListOrdersAssociatedProject=Λίστα εντολών πωλήσεων που σχετίζονται με το έργο +ListInvoicesAssociatedProject=Λίστα τιμολογίων πελατών που σχετίζονται με το έργο ListPredefinedInvoicesAssociatedProject=Λίστα πρότυπων τιμολογίων πελάτη που σχετίζονται με το έργο ListSupplierOrdersAssociatedProject=Κατάλογος εντολών αγοράς που σχετίζονται με το έργο -ListSupplierInvoicesAssociatedProject=Λίστα τιμολογίων πωλητών που σχετίζονται με το έργο -ListContractAssociatedProject=Κατάλογος των συμβάσεων που σχετίζονται με το έργο -ListShippingAssociatedProject=Κατάλογος αποστολών που σχετίζονται με το έργο -ListFichinterAssociatedProject=Κατάλογος παρεμβάσεων που σχετίζονται με το έργο -ListExpenseReportsAssociatedProject=Κατάλογος εκθέσεων δαπανών που σχετίζονται με το έργο -ListDonationsAssociatedProject=Κατάλογος δωρεών που σχετίζονται με το έργο -ListVariousPaymentsAssociatedProject=Κατάλογος των διαφόρων πληρωμών που σχετίζονται με το έργο -ListSalariesAssociatedProject=Κατάλογος των μισθών που σχετίζονται με το σχέδιο -ListActionsAssociatedProject=Κατάλογος συμβάντων που σχετίζονται με το έργο -ListMOAssociatedProject=Κατάλογος παραγγελιών κατασκευής που σχετίζονται με το έργο -ListTaskTimeUserProject=Κατάλογος του χρόνου που καταναλώνεται για τα καθήκοντα του έργου -ListTaskTimeForTask=Κατάλογος του χρόνου που καταναλώνεται στην εργασία +ListSupplierInvoicesAssociatedProject=Λίστα τιμολογίων προμηθευτών που σχετίζονται με το έργο +ListContractAssociatedProject=Λίστα συμβάσεων που σχετίζονται με το έργο +ListShippingAssociatedProject=Λίστα αποστολών που σχετίζονται με το έργο +ListFichinterAssociatedProject=Λίστα παρεμβάσεων που σχετίζονται με το έργο +ListExpenseReportsAssociatedProject=Λίστα εκθέσεων δαπανών που σχετίζονται με το έργο +ListDonationsAssociatedProject=Λίστα δωρεών που σχετίζονται με το έργο +ListVariousPaymentsAssociatedProject=Λίστα διαφόρων πληρωμών που σχετίζονται με το έργο +ListSalariesAssociatedProject=Λίστα πληρωμών μισθών που σχετίζονται με το σχέδιο +ListActionsAssociatedProject=Λίστα ενεργειών που σχετίζονται με το έργο +ListMOAssociatedProject=Λίστα παραγγελιών παραγωγής που σχετίζονται με το έργο +ListTaskTimeUserProject=Λίστα χρόνου που καταναλώθηκε σε καθήκοντα του έργου +ListTaskTimeForTask=Λίστα χρόνου που καταναλώθηκε στην εργασία ActivityOnProjectToday=Δραστηριότητα στο έργο σήμερα ActivityOnProjectYesterday=Δραστηριότητα στο έργο χθες ActivityOnProjectThisWeek=Δραστηριότητα στο έργο αυτή την εβδομάδα ActivityOnProjectThisMonth=Δραστηριότητα στο έργο αυτό το μήνα -ActivityOnProjectThisYear=Δραστηριότητα στο έργο αυτού του έτους -ChildOfProjectTask=Παιδί του έργου / εργασίας -ChildOfTask=Παιδί της αποστολής -TaskHasChild=Η εργασία έχει παιδί -NotOwnerOfProject=Δεν ιδιοκτήτης αυτού του ιδιωτικού έργου, -AffectedTo=Κατανέμονται σε -CantRemoveProject=Το έργο δεν μπορεί να διαγραφεί καθώς συνδέεται με κάποιο άλλο αντικείμενο (τιμολόγιο, εντολές ή αντίστοιχο). Δείτε την καρτέλα '%s'. -ValidateProject=Επικύρωση projet -ConfirmValidateProject=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτό το έργο; +ActivityOnProjectThisYear=Δραστηριότητα στο έργο φέτος +ChildOfProjectTask=Θυγατρικό έργο/εργασία +ChildOfTask=δευτερεύουσα εργασία +TaskHasChild=Η εργασία έχει υποεργασία +NotOwnerOfProject=Δεν είστε υπεύθυνος αυτού του ιδιωτικού έργου +AffectedTo=Κατανεμήθηκε σε +CantRemoveProject=Το έργο δεν μπορεί να διαγραφεί καθώς συνδέεται με κάποιο άλλο αντικείμενο (τιμολόγιο, εντολές ή αλλο). Δείτε την καρτέλα '%s'. +ValidateProject=Επικύρωση έργου +ConfirmValidateProject=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτό το έργο; CloseAProject=Κλείσιμο έργου -ConfirmCloseAProject=Είστε βέβαιοι ότι θέλετε να κλείσετε αυτό το έργο; -AlsoCloseAProject=Επίσης, κλείστε το έργο (κρατήστε το ανοιχτό αν εξακολουθείτε να χρειαστεί να ακολουθήσετε τα καθήκοντα παραγωγής σε αυτό) +ConfirmCloseAProject=Είστε σίγουροι ότι θέλετε να κλείσετε αυτό το έργο; +AlsoCloseAProject=Επίσης κλείσε το έργο +AlsoCloseAProjectTooltip=Αφήστε το ανοιχτό εάν χρειάζεται να παρακολουθήσετε τις εργασίες παραγωγής σε αυτό ReOpenAProject=Άνοιγμα έργου -ConfirmReOpenAProject=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το έργο; -ProjectContact=Αντιπρόσωποι του έργου +ConfirmReOpenAProject=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά αυτό το έργο; +ProjectContact=Επαφές έργου TaskContact=Επαφές εργασιών -ActionsOnProject=Δράσεις για το έργο -YouAreNotContactOfProject=Δεν έχετε μια επαφή του ιδιωτικού έργου, -UserIsNotContactOfProject=Ο χρήστης δεν είναι μια επαφή αυτού του ιδιωτικού έργου -DeleteATimeSpent=Διαγράψτε το χρόνο που δαπανάται -ConfirmDeleteATimeSpent=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον χρόνο; -DoNotShowMyTasksOnly=Δείτε επίσης τα καθήκοντα που δεν ανατέθηκαν σε μένα +ActionsOnProject=Ενέργειες για το έργο +YouAreNotContactOfProject=Δεν είστε επαφή αυτού του ιδιωτικού έργου +UserIsNotContactOfProject=Ο χρήστης δεν είναι επαφή αυτού του ιδιωτικού έργου +DeleteATimeSpent=Διαγραφή χρόνου που δαπανήθηκε +ConfirmDeleteATimeSpent=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον χρόνο που δαπανήθηκε; +DoNotShowMyTasksOnly=Δείτε επίσης καθήκοντα που δεν ανατέθηκαν σε μένα ShowMyTasksOnly=Δείτε τα καθήκοντα που σας έχουν ανατεθεί TaskRessourceLinks=Επαφές της εργασίας -ProjectsDedicatedToThisThirdParty=Έργα που αφορούν αυτό το στοιχείο +ProjectsDedicatedToThisThirdParty=Έργα που αφορούν αυτό το τρίτο μέρος NoTasks=Δεν υπάρχουν εργασίες για αυτό το έργο LinkedToAnotherCompany=Συνδέεται με άλλο τρίτο μέρος -TaskIsNotAssignedToUser=Εργασία δεν έχει εκχωρηθεί στο χρήστη. Χρησιμοποιήστε το κουμπί ' %s ' για να εκχωρήσετε εργασία τώρα. -ErrorTimeSpentIsEmpty=Χρόνος που δαπανάται είναι άδειο +TaskIsNotAssignedToUser=Η εργασία δεν έχει ανατεθεί στον χρήστη. Χρησιμοποιήστε το κουμπί ' %s ' για να αναθέσετε την εργασία τώρα. +ErrorTimeSpentIsEmpty=Ο χρόνος που δαπανήθηκε είναι κενός TimeRecordingRestrictedToNMonthsBack=Η καταγραφή χρόνου περιορίζεται σε %s μήνες πίσω -ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλα τα καθήκοντα του έργου (%s καθηκόντων προς το παρόν) και όλες οι είσοδοι του χρόνου. -IfNeedToUseOtherObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδέεται με το έργο να δημιουργήσει, διατηρήσει αυτό το κενό να έχει το έργο να είναι πολλαπλών τρίτους. -CloneTasks=Clone tasks -CloneContacts=Clone contacts -CloneNotes=Clone notes -CloneProjectFiles=Κλώνος έργου εντάχθηκαν αρχεία -CloneTaskFiles=Ο κλώνος εργασία (ες) εντάχθηκαν αρχεία (εάν εργασία (ες) που κλωνοποιήθηκε) -CloneMoveDate=Ενημέρωση έργου / εργασιών που χρονολογούνται από τώρα; -ConfirmCloneProject=Είστε σίγουροι ότι θα κλωνοποιήσετε αυτό το έργο; +ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλες τις εργασίες του έργου ( %s εργασίες αυτή τη στιγμή) και όλες τις εισροές του χρόνου που δαπανήθηκε. +IfNeedToUseOtherObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδεθούν με το έργο προς δημιουργία, διατηρήστε αυτό κενό ώστε το έργο να είναι πολλαπλών τρίτων μερών. +CloneTasks=Αντιγραφή εργασιών +CloneContacts=Αντιγραφή επαφών +CloneNotes=Αντιγραφή σημειώσεων +CloneProjectFiles=Αντιγραφή αρχείων έργου +CloneTaskFiles=Αντιγραφή κοινών αρχείων εργασιών (εάν έχουν αντιγραφεί οι εργασίες) +CloneMoveDate=Ενημέρωση του έργου/των εργασιών από τώρα; +ConfirmCloneProject=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτό το έργο; ProjectReportDate=Αλλάξτε τις ημερομηνίες των εργασιών σύμφωνα με την ημερομηνία έναρξης του νέου έργου -ErrorShiftTaskDate=Impossible to shift task date according to new project start date -ProjectsAndTasksLines=Projects and tasks -ProjectCreatedInDolibarr=Έργο %s δημιουργήθηκε +ErrorShiftTaskDate=Αδύνατη η αλλαγή της ημερομηνίας εργασίας σύμφωνα με την ημερομηνία έναρξης του νέου έργου +ProjectsAndTasksLines=Έργα και εργασίες +ProjectCreatedInDolibarr=Το έργο %s δημιουργήθηκε ProjectValidatedInDolibarr=Το έργο %s επικυρώθηκε ProjectModifiedInDolibarr=Το έργο %s τροποποιήθηκε -TaskCreatedInDolibarr=Εργασία %s δημιουργήθηκε -TaskModifiedInDolibarr=Εργασία %s τροποποιήθηκε -TaskDeletedInDolibarr=Εργασία %s διαγράφηκε +TaskCreatedInDolibarr=Δημιουργήθηκε η εργασία %s +TaskModifiedInDolibarr=Η εργασία %s τροποποιήθηκε +TaskDeletedInDolibarr=Η εργασία %s διαγράφηκε OpportunityStatus=Κατάσταση προοπτικής OpportunityStatusShort=Κατάσταση προοπτικής OpportunityProbability=Πιθανότητα προοπτικής OpportunityProbabilityShort=Πιθαν. προοπτικής OpportunityAmount=Ποσό προοπτικής OpportunityAmountShort=Ποσό προοπτικής -OpportunityWeightedAmount=Σταθμισμένο ποσό ευκαιρίας -OpportunityWeightedAmountShort=Αντί. σταθμισμένο ποσό +OpportunityWeightedAmount=Amount of opportunity, weighted by probability +OpportunityWeightedAmountShort=Σταθμισμένο ποσό ευκαιρίας OpportunityAmountAverageShort=Μέσο ποσό προοπτικής OpportunityAmountWeigthedShort=Σταθμισμένο ποσό προοπτικής -WonLostExcluded=Κερδισμένο / Lost αποκλεισμένο +WonLostExcluded=Κερδισμένες/χαμένες εξαιρούνται ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Επικεφαλής του έργου TypeContact_project_external_PROJECTLEADER=Επικεφαλής του έργου TypeContact_project_internal_PROJECTCONTRIBUTOR=Συνεισφέρων TypeContact_project_external_PROJECTCONTRIBUTOR=Συνεισφέρων -TypeContact_project_task_internal_TASKEXECUTIVE=Εκτελεστική ομάδα -TypeContact_project_task_external_TASKEXECUTIVE=Εκτελεστική ομάδα +TypeContact_project_task_internal_TASKEXECUTIVE=Υπεύθυνος εργασίας +TypeContact_project_task_external_TASKEXECUTIVE=Υπεύθυνος εργασίας TypeContact_project_task_internal_TASKCONTRIBUTOR=Συνεισφέρων TypeContact_project_task_external_TASKCONTRIBUTOR=Συνεισφέρων SelectElement=Επιλέξτε το στοιχείο AddElement=Σύνδεση με το στοιχείο -LinkToElementShort=Σύνδεση σε +LinkToElementShort=Σύνδεση με # Documents models DocumentModelBeluga=Πρότυπο εγγράφου έργου για επισκόπηση συνδεδεμένων αντικειμένων DocumentModelBaleine=Πρότυπο εγγράφου έργου για εργασίες -DocumentModelTimeSpent=Πρότυπο αναφοράς έργου για το χρόνο που δαπανάται -PlannedWorkload=Σχέδιο φόρτου εργασίας +DocumentModelTimeSpent=Πρότυπο αναφοράς έργου για το χρόνο που δαπανήθηκε +PlannedWorkload=Προγραμματισμένος φόρτος εργασίας PlannedWorkloadShort=Φόρτος εργασίας ProjectReferers=Σχετικά αντικείμενα ProjectMustBeValidatedFirst=Το έργο πρέπει να επικυρωθεί πρώτα -MustBeValidatedToBeSigned=Το %s πρέπει πρώτα να επικυρωθεί για να οριστεί σε Υπογεγραμμένο. +MustBeValidatedToBeSigned=Το %s πρέπει πρώτα να επικυρωθεί για να οριστεί ως Υπογεγραμμένο. FirstAddRessourceToAllocateTime=Ορίστε έναν πόρο χρήστη ως επαφή του έργου για να διαθέσετε χρόνο InputPerDay=Εισαγωγή ανά ημέρα InputPerWeek=Εισαγωγή ανά εβδομάδα -InputPerMonth=Είσοδος / εισαγωγή ανά μήνα -InputDetail=Λεπτομέρειες εισόδου -TimeAlreadyRecorded=Αυτός είναι ο χρόνος που έχει ήδη εγγραφεί για αυτήν την εργασία / ημέρα και ο χρήστης %s +InputPerMonth=Εισαγωγή ανά μήνα +InputDetail=Λεπτομέρειες εισαγωγής +TimeAlreadyRecorded=Αυτός είναι ο χρόνος που δαπανήθηκε και ήδη καταγράφηκε για αυτήν την εργασία/ημέρα και χρήστη %s ProjectsWithThisUserAsContact=Έργα με αυτόν τον χρήστη ως επαφή ProjectsWithThisContact=Έργα με αυτήν την επαφή -TasksWithThisUserAsContact=Εργασίες που έχουν εκχωρηθεί σε αυτόν τον χρήστη +TasksWithThisUserAsContact=Εργασίες που έχουν ανατεθεί σε αυτόν τον χρήστη ResourceNotAssignedToProject=Δεν έχει ανατεθεί σε έργο ResourceNotAssignedToTheTask=Δεν έχει ανατεθεί στην εργασία -NoUserAssignedToTheProject=Δεν έχουν ανατεθεί χρήστες σε αυτό το έργο -TimeSpentBy=Χρόνος που πέρασε -TasksAssignedTo=Οι εργασίες που έχουν εκχωρηθεί στο -AssignTaskToMe=Αντιστοίχηση εργασίας στον εαυτό μου -AssignTaskToUser=Αναθέστε εργασία σε %s -SelectTaskToAssign=Επιλέξτε εργασία για εκχώρηση ... +NoUserAssignedToTheProject=Δεν έχουν εκχωρηθεί χρήστες σε αυτό το έργο +TimeSpentBy=Χρόνος που δαπανήθηκε από +TasksAssignedTo=Οι εργασίες που έχουν ανατεθεί στο +AssignTaskToMe=Ανάθεση εργασίας στον εαυτό μου +AssignTaskToUser=Ανάθεση εργασία στο %s +SelectTaskToAssign=Επιλέξτε εργασία για ανάθεση... AssignTask=Ανάθεση ProjectOverview=Επισκόπηση -ManageTasks=Χρησιμοποιήστε έργα για να παρακολουθήσετε εργασίες και / ή να αναφέρετε το χρόνο που ξοδεύετε (φύλλα εργασίας) -ManageOpportunitiesStatus=Χρησιμοποιήστε τα έργα για να παρακολουθήσετε τις προοπτικές / ευκαιρίες +ManageTasks=Χρησιμοποιήστε έργα για να παρακολουθήσετε εργασίες και / ή να αναφέρετε το χρόνο που δαπανάται (φύλλα εργασίας) +ManageOpportunitiesStatus=Χρησιμοποιήστε τα έργα για να παρακολουθήσετε τις προοπτικές/ευκαιρίες ProjectNbProjectByMonth=Αριθμός δημιουργηθέντων έργων ανά μήνα ProjectNbTaskByMonth=Αριθμός δημιουργημένων εργασιών ανά μήνα ProjectOppAmountOfProjectsByMonth=Ποσό προοπτικών ανά μήνα -ProjectWeightedOppAmountOfProjectsByMonth=Σταθμισμένο ποσό προοπτικών κατά μήνα -ProjectOpenedProjectByOppStatus=Ανοιχτές προοπτικές έργων ανά κατάσταση προοπτικής +ProjectWeightedOppAmountOfProjectsByMonth=Σταθμισμένο ποσό προοπτικών ανά μήνα +ProjectOpenedProjectByOppStatus=Άνοιγμα προοπτικής/έργου ανά κατάσταση προοπτικής ProjectsStatistics=Στατιστικά έργων ή προοπτικών TasksStatistics=Στατιστικά εργασιών των έργων ή των προοπτικών TaskAssignedToEnterTime=Η εργασία έχει εκχωρηθεί. Πρέπει να είναι δυνατή η εισαγωγή του χρόνου αυτού του έργου. -IdTaskTime=Χρόνος εργασίας Id -YouCanCompleteRef=Εάν θέλετε να συμπληρώσετε το ref με κάποιο επίθημα, συνιστάται να προσθέσετε ένα χαρακτήρα για να το διαχωρίσετε, οπότε η αυτόματη αρίθμηση θα εξακολουθήσει να λειτουργεί σωστά για τα επόμενα έργα. Για παράδειγμα %s-MYSUFFIX -OpenedProjectsByThirdparties=Ανοίξτε έργα από τρίτους +IdTaskTime=Αναγνωριστικό χρόνου εργασίας +YouCanCompleteRef=Εάν θέλετε να συμπληρώσετε την αναφορά με κάποιο επίθημα, συνιστάται να προσθέσετε έναν χαρακτήρα - για να το διαχωρίσετε, έτσι η αυτόματη αρίθμηση θα εξακολουθεί να λειτουργεί σωστά για τα επόμενα έργα. Για παράδειγμα %s-MYSUFFIX +OpenedProjectsByThirdparties=Ανοιχτά έργα ανά τρίτο μέρος OnlyOpportunitiesShort=Μόνο προοπτικές OpenedOpportunitiesShort=Ανοιχτές προοπτικές NotOpenedOpportunitiesShort=Δεν είναι ανοιχτή προοπτική @@ -232,34 +236,34 @@ OpportunityPonderatedAmount=Σταθμισμένο ποσό προοπτικών OpportunityPonderatedAmountDesc=Ποσό προοπτικών σταθμισμένο με βάση την πιθανότητα OppStatusPROSP=Προοπτική OppStatusQUAL=Προσόν -OppStatusPROPO=Πρόταση +OppStatusPROPO=Προσφορά OppStatusNEGO=Διαπραγμάτευση OppStatusPENDING=Εκκρεμεί -OppStatusWON=Κέρδισε -OppStatusLOST=Χαμένος +OppStatusWON=Έκλεισε +OppStatusLOST=Χάθηκε Budget=Προϋπολογισμός -AllowToLinkFromOtherCompany=Επιτρέψτε τη σύνδεση του έργου με άλλη εταιρεία

    Υποστηριζόμενες τιμές:
    - Κρατήστε κενό: Μπορεί να συνδέσει οποιοδήποτε έργο της εταιρείας (προεπιλογή)
    - "όλα": Μπορεί να συνδέσει οποιαδήποτε έργα, ακόμα και έργα άλλων εταιρειών
    - Μια λίστα με IDs τρίτων που χωρίζονται με κόμματα: μπορούν να συνδέσουν όλα τα έργα αυτών των τρίτων μερών (Παράδειγμα: 123,4795,53)
    -LatestProjects=Τελευταία έργα %s -LatestModifiedProjects=Τελευταία τροποποιημένα έργα %s +AllowToLinkFromOtherCompany=Να επιτρέπεται η σύνδεση ενός στοιχείου με ένα έργο άλλης εταιρείας

    Υποστηριζόμενες τιμές:
    - Κενό: Σύνδεση στοιχείων με οποιοδήποτε έργο της ίδιας εταιρείας (προεπιλογή)
    -"all": Σύνδεση στοιχείων με οποιοδήποτε έργο οποιασδήποτε εταιρείας
    - Μια λίστα αναγνωριστικών τρίτων μερών που χωρίζονται με κόμμα: Σύνδεση στοιχείων με οποιοδήποτε έργο των συγκεκριμένων τρίτων μερών (Παράδειγμα: 123,4795,53) +LatestProjects=Τελευταία %s έργα +LatestModifiedProjects=Τελευταία %s τροποποιημένα έργα OtherFilteredTasks=Άλλες φιλτραρισμένες εργασίες -NoAssignedTasks=Δεν εντοπίστηκαν καθήκοντα που έχουν ανατεθεί (αναθέστε το έργο / εργασίες στον τρέχοντα χρήστη από το κορυφαίο πλαίσιο επιλογής για να εισάγετε χρόνο σε αυτό) -ThirdPartyRequiredToGenerateInvoice=Ένα τρίτο μέρος πρέπει να οριστεί στο έργο για να μπορεί να το τιμολογεί. -ThirdPartyRequiredToGenerateInvoice=Ένα τρίτο μέρος πρέπει να οριστεί στο έργο για να μπορεί να το τιμολογεί. +NoAssignedTasks=Δεν βρέθηκαν ανατεθειμένες εργασίες (αναθέστε έργο/εργασίες στον τρέχοντα χρήστη από το επάνω πλαίσιο επιλογής για να εισαγάγετε χρόνο σε αυτό) +ThirdPartyRequiredToGenerateInvoice=Ένα τρίτο μέρος πρέπει να έχει οριστεί στο έργο για να μπορεί να τιμολογηθεί. +ThirdPartyRequiredToGenerateInvoice=Ένα τρίτο μέρος πρέπει να έχει οριστεί στο έργο για να μπορεί να τιμολογηθεί. ChooseANotYetAssignedTask=Επιλέξτε μια εργασία που δεν σας έχει ανατεθεί ακόμη # Comments trans AllowCommentOnTask=Επιτρέψτε στα σχόλια των χρηστών τις εργασίες -AllowCommentOnProject=Να επιτρέπεται στα σχόλια των χρηστών τα έργα +AllowCommentOnProject=Επιτρέψτε τα σχόλια των χρηστών σε έργα DontHavePermissionForCloseProject=Δεν έχετε δικαιώματα για να κλείσετε το έργο %s DontHaveTheValidateStatus=Το έργο %s πρέπει να είναι ανοικτό για να κλείσει RecordsClosed=%s κλειστά έργα SendProjectRef=Πληροφορίες έργου %s ModuleSalaryToDefineHourlyRateMustBeEnabled=Η ενότητα "Μισθοί" πρέπει να είναι ενεργοποιημένη για να καθορίζει την ωριαία τιμή του εργαζόμενου ώστε να έχει αξιοποιηθεί ο χρόνος που δαπανάται -NewTaskRefSuggested=Η αναφορά εργασίας που έχει ήδη χρησιμοποιηθεί, απαιτείται νέα αναφορά εργασίας -TimeSpentInvoiced=Χρόνος που δαπανήθηκε χρεώνεται -TimeSpentForIntervention=Ο χρόνος που δαπανάται -TimeSpentForInvoice=Ο χρόνος που δαπανάται +NewTaskRefSuggested=Η αναφορά εργασίας χρησιμοποιείται ήδη, απαιτείται νέα αναφορά εργασίας +TimeSpentInvoiced=Τιμολογήθηκε ο χρόνος που δαπανήθηκε +TimeSpentForIntervention=Χρόνος που δαπανήθηκε +TimeSpentForInvoice=Ο χρόνος που δαπανήθηκε OneLinePerUser=Μια γραμμή ανά χρήστη -ServiceToUseOnLines=Υπηρεσία για χρήση σε γραμμές +ServiceToUseOnLines=Υπηρεσία για χρήση σε γραμμές από προεπιλογή InvoiceGeneratedFromTimeSpent=Το τιμολόγιο %s δημιουργήθηκε από το χρόνο που αφιερώσατε στο έργο InterventionGeneratedFromTimeSpent=Η παρέμβαση %s έχει δημιουργηθεί από τον χρόνο που δαπανήθηκε στο έργο ProjectBillTimeDescription=Επιλέξτε στην περίπτωση που εισάγετε φύλλο κατανομής χρόνου για τα καθήκοντα του έργου και σχεδιάζετε να δημιουργήσετε τιμολόγιο(α) από το δελτίο χρόνου για να χρεώσετε τον πελάτη του έργου (μην το επιλέξετε αν σκοπεύετε να δημιουργήσετε τιμολόγιο που δεν βασίζεται σε καταγεγραμμένα φύλλα χρόνου). Σημείωση: Για να δημιουργήσετε τιμολόγιο, μεταβείτε στην καρτέλα 'Χρόνος που δαπανήθηκε' του έργου και επιλέξτε τις γραμμές που θα συμπεριληφθούν. @@ -268,29 +272,30 @@ ProjectFollowTasks=Ακολουθήστε τις εργασίες ή τον χρ Usage=Χρήση UsageOpportunity=Χρήση: Ευκαιρία UsageTasks=Χρήση: Εργασίες -UsageBillTimeShort=Χρήση: Χρόνος λογαριασμού +UsageBillTimeShort=Χρήση: τιμολόγηση χρόνου InvoiceToUse=Προσχέδιο τιμολογίου προς χρήση -InterToUse=Σχέδιο παρέμβασης προς χρήση +InterToUse=Προσχέδιο παρέμβασης προς χρήση NewInvoice=Νέο τιμολόγιο NewInter=Νέα παρέμβαση OneLinePerTask=Μια γραμμή ανά εργασία OneLinePerPeriod=Μία γραμμή ανά περίοδο OneLinePerTimeSpentLine=Ορισμός μίας γραμμής για κάθε χρονικό διάστημα που δαπανήθηκε AddDetailDateAndDuration=Με ημερομηνία και διάρκεια στην περιγραφή της γραμμής -RefTaskParent=Αναφ. Γονική εργασία +RefTaskParent=Αναφ. Γονικής εργασίας ProfitIsCalculatedWith=Το κέρδος υπολογίζεται χρησιμοποιώντας AddPersonToTask=Προσθήκη και στις εργασίες -UsageOrganizeEvent=Χρήση: Οργάνωση συμβάντος -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Καταχώρηση του έργου ως ολοκληρωμένου όταν όλες οι εργασίες έχουν ολοκληρωθεί (100 %% πρόοδος) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Σημείωση: τα υπάρχοντα έργα με όλες τις εργασίες τους σε 100 %% πρόοδο δεν θα επηρεαστούν: θα χρειαστεί να τα κλείσετε χειροκίνητα. Η επιλογή αυτή επηρεάζει μόνο τα ανοιχτά έργα. +UsageOrganizeEvent=Χρήση: Οργάνωση εκδήλωσης +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Ταξινόμηση έργου ως κλειστό όταν όλες οι εργασίες έχουν ολοκληρωθεί (100 %% πρόοδος) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Σημείωση: Αυτή η επιλογή επηρεάζει μόνο ανοιχτά έργα. Τα υπάρχοντα έργα με όλες τις εργασίες να έχουν ήδη οριστεί σε πρόοδο 100%% δεν θα επηρεαστούν: θα πρέπει να τα κλείσετε χειροκίνητα. SelectLinesOfTimeSpentToInvoice=Επιλέξτε τις γραμμές κατανάλωσης χρόνου που δεν έχουν τιμολογηθεί και έπειτα την μαζική εντολή "Δημιουργία τιμολογίου" για να τα τιμολογήσετε. ProjectTasksWithoutTimeSpent=Εργασίες έργου χωρίς χρόνο που έχει δαπανηθεί FormForNewLeadDesc=Σας ευχαριστούμε που συμπληρώσατε την ακόλουθη φόρμα επικοινωνίας. Μπορείτε επίσης να μας στείλετε απευθείας email στο %s. ProjectsHavingThisContact=Έργα που έχουν αυτή την επαφή StartDateCannotBeAfterEndDate=Η ημερομηνία λήξης δεν μπορεί να είναι πριν από την ημερομηνία έναρξης -ErrorPROJECTLEADERRoleMissingRestoreIt=Ο ρόλος "PROJECTLEADER" λείπει ή έχει απενεργοποιηθεί, επαναφέρετε στο λεξικό τύπων επαφών +ErrorPROJECTLEADERRoleMissingRestoreIt=Ο ρόλος "PROJECTLEADER" λείπει ή έχει απενεργοποιηθεί, επαναφέρετε το στο λεξικό τύπων επαφών LeadPublicFormDesc=Μπορείτε να ενεργοποιήσετε εδώ μια δημόσια σελίδα για να επιτρέψετε στους υποψήφιους πελάτες σας να κάνουν μια πρώτη επαφή μαζί σας από μια δημόσια ηλεκτρονική φόρμα EnablePublicLeadForm=Ενεργοποιήστε τη δημόσια φόρμα για επικοινωνία NewLeadbyWeb=Το μήνυμα ή το αίτημά σας έχει καταγραφεί. Θα απαντήσουμε ή θα επικοινωνήσουμε μαζί σας σύντομα. -NewLeadForm=Φόρμα νέας επικοινωνίας +NewLeadForm=Νέα φόρμα επικοινωνίας LeadFromPublicForm=Δυνητικός πελάτης από ηλεκτρονική δημόσια φόρμα +ExportAccountingReportButtonLabel=Λήψη αναφοράς diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang index ea99998a3bc..d60cbe650d6 100644 --- a/htdocs/langs/el_GR/propal.lang +++ b/htdocs/langs/el_GR/propal.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - propal -Proposals=Προσφορές -Proposal=Προσφορά +Proposals=Εμπορικές προσφορές +Proposal=Εμπορική προσφορά ProposalShort=Προσφορά -ProposalsDraft=Σχέδιο Προσφοράς -ProposalsOpened=Ανοικτές εμπορικές προτάσεις +ProposalsDraft=Προσχέδιο προσφοράς +ProposalsOpened=Ανοιχτές εμπορικές προσφορές CommercialProposal=Προσφορά -PdfCommercialProposalTitle=Πρόταση +PdfCommercialProposalTitle=Προσφορά ProposalCard=Καρτέλα Προσφοράς NewProp=Νέα Προσφορά NewPropal=Νέα Προσφορά @@ -13,101 +13,106 @@ Prospect=Προοπτική DeleteProp=Διαγραφή Προσφοράς ValidateProp=Επικύρωση Προσφοράς AddProp=Δημιουργία προσφοράς -ConfirmDeleteProp=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την εμπορική πρόταση; -ConfirmValidateProp=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτήν την εμπορική πρόταση με το όνομα %s ; -LastPropals=Τελευταίες προτάσεις %s -LastModifiedProposals=Τελευταίες τροποποιημένες προτάσεις %s +ConfirmDeleteProp=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την εμπορική προσφορά; +ConfirmValidateProp=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την εμπορική προσφορά με το όνομα %s ; +LastPropals=Τελευταίες %s προσφορές +LastModifiedProposals=Τελευταίες %s τροποποιημένες προσφορές AllPropals=Όλες οι Προσφορές SearchAProposal=Εύρεση Προσφοράς -NoProposal=Δεν υπάρχει πρόταση -ProposalsStatistics=Στατιστικά Προσφοράς +NoProposal=Δεν υπάρχει προσφορά +ProposalsStatistics=Στατιστικά Προσφορών NumberOfProposalsByMonth=Αριθμός ανά μήνα -AmountOfProposalsByMonthHT=Ποσό ανά μήνα (εκτός φόρου) +AmountOfProposalsByMonthHT=Ποσό ανά μήνα (χωρίς Φ.Π.Α.) NbOfProposals=Αριθμός Προσφορών ShowPropal=Εμφάνιση Προσφοράς -PropalsDraft=Σχέδιο -PropalsOpened=Άνοιγμα +PropalsDraft=Προσχέδια +PropalsOpened=Ανοιχτές PropalStatusDraft=Προσχέδιο (χρειάζεται επικύρωση) PropalStatusValidated=Επικυρωμένη (η Προσφορά είναι ανοιχτή) -PropalStatusSigned=Υπογραφή (ανάγκες χρέωσης) -PropalStatusNotSigned=Δεν έχει υπογραφεί (κλειστό) -PropalStatusBilled=Χρεώνεται +PropalStatusSigned=Υπογεγραμμένη (χρειάζεται χρέωση) +PropalStatusNotSigned=Δεν έχει υπογραφεί (κλειστή) +PropalStatusBilled=Τιμολογήθηκε PropalStatusDraftShort=Προσχέδιο -PropalStatusValidatedShort=Επικυρωμένο (ανοιχτό) -PropalStatusClosedShort=Κλειστό -PropalStatusSignedShort=Υπογραφή +PropalStatusValidatedShort=Επικυρωμένη (ανοιχτή) +PropalStatusClosedShort=Κλειστή +PropalStatusSignedShort=Υπογεγραμμένη PropalStatusNotSignedShort=Δεν έχει υπογραφεί -PropalStatusBilledShort=Χρεωμένη +PropalStatusBilledShort=Τιμολογήθηκε PropalsToClose=Προσφορές προς κλείσιμο -PropalsToBill=Υπογεγραμμένες Προσφορές προς χρέωση -ListOfProposals=Κατάλογος Προσφορών -ActionsOnPropal=Εκδηλώσεις σχετικά με την Προσφορά -RefProposal=Εμπορική Προσφορά ref +PropalsToBill=Υπογεγραμμένες εμπορικές προσφορές προς τιμολόγηση +ListOfProposals=Λίστα Προσφορών +ActionsOnPropal=Ενέργειες στην Προσφορά +RefProposal=Αναφ. προσφοράς SendPropalByMail=Αποστολή Προσφοράς με e-mail DatePropal=Ημερομηνία της Προσφοράς -DateEndPropal=Ισχύς ημερομηνία λήξης +DateEndPropal=Ημερομηνία λήξης ισχύος ValidityDuration=Διάρκεια ισχύος -SetAcceptedRefused=Ορισμός αποδοχής/άρνησης +SetAcceptedRefused=Ορισμός αποδοχής/απόρριψης ErrorPropalNotFound=Η Προσφορά %s δεν βρέθηκε -AddToDraftProposals=Προσθήκη στο σχέδιο Προσφοράς -NoDraftProposals=Δεν υπάρχουν σχέδια Προσφορών +AddToDraftProposals=Προσθήκη στο προσχέδιο προσφοράς +NoDraftProposals=Δεν υπάρχουν προσχέδια προσφορών CopyPropalFrom=Δημιουργία Προσφοράς με την αντιγραφή υφιστάμενης Προσφοράς -CreateEmptyPropal=Δημιουργήστε άδεια εμπορική πρόταση ή από λίστα προϊόντων / υπηρεσιών -DefaultProposalDurationValidity=Προεπιλογή διάρκεια Προσφοράς ισχύος (σε ημέρες) -DefaultPuttingPricesUpToDate=Από προεπιλογή, ενημερώστε τις τιμές με τις τρέχουσες γνωστές τιμές κατά την κλωνοποίηση μιας πρότασης -UseCustomerContactAsPropalRecipientIfExist=Χρησιμοποιήστε τη διεύθυνση επαφής / διεύθυνσης με τον τύπο "Πρόταση επικοινωνίας μετά την επικοινωνία", αν ορίζεται αντί της διεύθυνσης τρίτων ως διεύθυνση παραλήπτη της πρότασης -ConfirmClonePropal=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την εμπορική πρόταση %s ? -ConfirmReOpenProp=Είστε βέβαιοι ότι θέλετε να ανοίξετε την εμπορική πρόταση %s ? +CreateEmptyPropal=Δημιουργία κενής εμπορικής προσφοράς ή από λίστα προϊόντων / υπηρεσιών +DefaultProposalDurationValidity=Προεπιλεγμένη διάρκεια ισχύος της εμπορικής προσφοράς (σε ημέρες) +DefaultPuttingPricesUpToDate=Από προεπιλογή, ενημέρωση των τιμων με τις τρέχουσες γνωστές τιμές κατά την αντιγραφή μιας προσφορας +UseCustomerContactAsPropalRecipientIfExist=Χρησιμοποιήστε επαφή/διεύθυνση του τύπου «Επαφή προσφοράς» εάν ορίζεται αντί για τη διεύθυνση τρίτου μέρους ως διεύθυνση παραλήπτη προσφοράς +ConfirmClonePropal=Είστε σίγουροι ότι θέλετε να αντιγράψετε την εμπορική προσφορά %s ? +ConfirmReOpenProp=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά την εμπορική προσφορά %s ? ProposalsAndProposalsLines=Προσφορές και γραμμές ProposalLine=Γραμμή Προσφοράς ProposalLines=Γραμμές προσφοράς -AvailabilityPeriod=Καθυστέρηση Διαθεσιμότητα -SetAvailability=Ορισμός καθυστέρησης διαθεσιμότητα +AvailabilityPeriod=Καθυστέρηση διαθεσιμότητας +SetAvailability=Ορισμός καθυστέρησης διαθεσιμότητας AfterOrder=μετά την παραγγελία OtherProposals=Άλλες Προσφορές + ##### Availability ##### AvailabilityTypeAV_NOW=Άμεση AvailabilityTypeAV_1W=1 εβδομάδα AvailabilityTypeAV_2W=2 εβδομάδες AvailabilityTypeAV_3W=3 εβδομάδες -AvailabilityTypeAV_1M=1 μήνα -##### Types de contacts ##### -TypeContact_propal_internal_SALESREPFOLL=Εκπρόσωπος που παρακολουθεί την Προσφορά -TypeContact_propal_external_BILLING=Πελάτης επαφή τιμολόγιο -TypeContact_propal_external_CUSTOMER=Πελάτης επαφή που παρακολουθεί την Προσφορά -TypeContact_propal_external_SHIPPING=Επικοινωνία με τον πελάτη για παράδοση +AvailabilityTypeAV_1M=1 μήνας + +##### Types ofe contacts ##### +TypeContact_propal_internal_SALESREPFOLL=Εκπρόσωπος επικοινωνίας μετά την προσφορά +TypeContact_propal_external_BILLING=Επαφή λογιστηρίου πελάτη +TypeContact_propal_external_CUSTOMER=Επαφή επικοινωνίας πελάτη μετά την προσφορά +TypeContact_propal_external_SHIPPING=Επαφή επικοινωνίας πελάτη για παράδοση + # Document models -DocModelAzurDescription=Ένα πλήρες πρότυπο πρότυπο (παλιά εφαρμογή του Cyan πρότυπο) -DocModelCyanDescription=Ένα πλήρες μοντέλο προτάσεων -DefaultModelPropalCreate=Δημιουργία προεπιλεγμένων μοντέλων -DefaultModelPropalToBill=Προεπιλεγμένο πρότυπο όταν κλείνει μια Προσφορά (να τιμολογηθεί) -DefaultModelPropalClosed=Προεπιλεγμένο πρότυπο όταν κλείνει μια Προσφορά (ατιμολόγητη) -ProposalCustomerSignature=Γραπτή αποδοχή, σφραγίδα εταιρείας, ημερομηνία και υπογραφή -ProposalsStatisticsSuppliers=Στατιστικά στοιχεία για τις προτάσεις προμηθευτών -CaseFollowedBy=Περίπτωση που ακολουθείται -SignedOnly=Μόνο υπογεγραμμένη -NoSign=Ορισμός ως μη υπογεγραμμένη -NoSigned=ορισμός ως μη υπογεγραμμένη CantBeNoSign=δεν μπορεί να οριστεί ως μη υπογεγραμμένη +CaseFollowedBy=Περίπτωση που ακολουθείται από ConfirmMassNoSignature=Επιβεβαίωση μαζικού ορισμού ως Μη υπογεγραμμένη ConfirmMassNoSignatureQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε ως μη υπογεγραμμένες τις επιλεγμένες εγγραφές; -IsNotADraft=δεν είναι προσχέδιο -PassedInOpenStatus=έχει επικυρωθεί -Sign=Υπογραφή -Signed=υπογεγραμμένη -ConfirmMassValidation=Επιβεβαίωση μαζικής επικύρωσης ConfirmMassSignature=Επιβεβαίωση μαζικής υπογραφής +ConfirmMassSignatureQuestion=Είστε σίγουροι ότι θέλετε να υπογράψετε τις επιλεγμένες εγγραφές; +ConfirmMassValidation=Επιβεβαίωση μαζικής επικύρωσης ConfirmMassValidationQuestion=Είστε σίγουροι ότι θέλετε να επικυρώσετε τις επιλεγμένες εγγραφές; -ConfirmMassSignatureQuestion=Είστε βέβαιοι ότι θέλετε να υπογράψετε τις επιλεγμένες εγγραφές; -IdProposal=Αναγνωριστικό προσφοράς +ConfirmRefusePropal=Είστε σίγουροι ότι θέλετε να απορρίψετε αυτήν την εμπορική προσφορά; +ContractSigned=Υπογεγραμμένη σύμβαση +DefaultModelPropalClosed=Προεπιλεγμένο πρότυπο κατά το κλείσιμο μιας προσφοράς (χωρίς τιμολόγηση) +DefaultModelPropalCreate=Δημιουργία προεπιλεγμένου προτύπου +DefaultModelPropalToBill=Προεπιλεγμένο πρότυπο κατά το κλείσιμο μιας προσφοράς (προς τιμολόγηση) +DocModelAzurDescription=Ένα πλήρες πρότυπο προσφορών (παλιά υλοποίηση του προτύπου Cyan) +DocModelCyanDescription=Ένα πλήρες υπόδειγμα προσφορών +FichinterSigned=Η παρέμβαση υπεγράφη IdProduct=Αναγνωριστικό προϊόντος -LineBuyPriceHT=Αγορά Τιμή Ποσό χωρίς φόρο για γραμμή -SignPropal=Αποδοχή προσφοράς +IdProposal=Αναγνωριστικό προσφοράς +IsNotADraft=δεν είναι προσχέδιο +LineBuyPriceHT=Ποσό Αγοράς χωρίς Φ.Π.Α. για γραμμή +NoSign=Απορρίφθηκε +NoSigned=ορισμός ως μη υπογεγραμμένη +PassedInOpenStatus=έχει επικυρωθεί +PropalAlreadyRefused=Η προσφορά έχει ήδη απορριφθεί +PropalAlreadySigned=Η πρόσφορα ειναι ήδη αποδεκτή +PropalRefused=Η προσφορά απορρίφθηκε +PropalSigned=Πρόσφορα αποδεκτή +ProposalCustomerSignature=Γραπτή αποδοχή, σφραγίδα εταιρείας, ημερομηνία και υπογραφή +ProposalsStatisticsSuppliers=Στατιστικά στοιχεία προσφορών προμηθευτών RefusePropal=Απόρριψη προσφοράς Sign=Υπογραφή -NoSign=Ορισμός ως μη υπογεγραμμένη -PropalAlreadySigned=Η πρόσφορα ειναι ήδη αποδεκτή -PropalAlreadyRefused=Η προσφορά έχει ήδη απορριφθεί -PropalSigned=Πρόσφορα αποδεκτή -PropalRefused=Η προσφορά απορρίφθηκε -ConfirmRefusePropal=Είστε βέβαιοι ότι θέλετε να αρνηθείτε αυτήν την εμπορική πρόταση; +SignContract=Υπογραφή σύμβασης +SignFichinter=Υπογραφή παρέμβασης +SignPropal=Αποδοχή προσφοράς +Signed=υπογεγραμμένη +SignedOnly=Μόνο υπογεγραμμένη diff --git a/htdocs/langs/el_GR/receiptprinter.lang b/htdocs/langs/el_GR/receiptprinter.lang index 298e9384da5..b1853399ae1 100644 --- a/htdocs/langs/el_GR/receiptprinter.lang +++ b/htdocs/langs/el_GR/receiptprinter.lang @@ -1,60 +1,60 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Ρύθμιση της μονάδας ReceiptPrinter +ReceiptPrinterSetup=Ρύθμιση της ενότητας ΕκτυπωτήςΑποδείξεων PrinterAdded=Ο εκτυπωτής %s προστέθηκε PrinterUpdated=Ο εκτυπωτής %s ενημερώθηκε -PrinterDeleted=Ο εκτυπωτής %s διαγράφτηκε -TestSentToPrinter=Δοκιμή αποστολής στον εκτυπωτή %s -ReceiptPrinter=Εκτυπωτές παραλαβής -ReceiptPrinterDesc=Ρύθμιση εκτυπωτών παραλαβής +PrinterDeleted=Ο εκτυπωτής %s διαγράφηκε +TestSentToPrinter=Δοκιμαστική αποστολή στον εκτυπωτή %s +ReceiptPrinter=Εκτυπωτές αποδείξεων +ReceiptPrinterDesc=Ρύθμιση εκτυπωτών αποδείξεων ReceiptPrinterTemplateDesc=Ρύθμιση προτύπων -ReceiptPrinterTypeDesc=Παράδειγμα πιθανών τιμών για το πεδίο "Παράμετροι" ανάλογα με τον τύπο του προγράμματος οδήγησης -ReceiptPrinterProfileDesc=Περιγραφή του προφίλ εκτυπωτή παραλαβής +ReceiptPrinterTypeDesc=Παράδειγμα πιθανών τιμών για το πεδίο "Παράμετροι" ανάλογα με τον τύπο του προγράμματος οδήγησης(driver) +ReceiptPrinterProfileDesc=Περιγραφή του προφίλ του εκτυπωτή αποδείξεων ListPrinters=Λίστα εκτυπωτών. -SetupReceiptTemplate=Εγκατάσταση πρώτυπου -CONNECTOR_DUMMY=Εκτυπωτής Dummy +SetupReceiptTemplate=Ρύθμιση προτύπου +CONNECTOR_DUMMY=Εικονικός εκτυπωτής CONNECTOR_NETWORK_PRINT=Δικτυακός εκτυπωτής CONNECTOR_FILE_PRINT=Τοπικός εκτυπωτής CONNECTOR_WINDOWS_PRINT=Τοπικός εκτυπωτής Windows -CONNECTOR_CUPS_PRINT=Εκτυπωτής ποτηριών +CONNECTOR_CUPS_PRINT=Εκτυπωτής Cups CONNECTOR_DUMMY_HELP=Εικονικός εκτυπωτής για ελέγχους, δεν κάνει τίποτα CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1 -CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb: // FooUser: μυστικό @ computername / workgroup / Εκτυπωτής παραλαβής +CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer CONNECTOR_CUPS_PRINT_HELP=Όνομα εκτυπωτή CUPS, παράδειγμα: HPRT_TP805L PROFILE_DEFAULT=Προεπιλεγμένο προφίλ PROFILE_SIMPLE=Απλό προφίλ -PROFILE_EPOSTEP=Epos Προφίλ Tep +PROFILE_EPOSTEP=Προφίλ Epos Tep PROFILE_P822D=Προφίλ P822D -PROFILE_STAR=Προφίλ Αστέρων -PROFILE_DEFAULT_HELP=Προεπιλεγμένο προφίλ κατάλληλο για εκτυπωτές της Epson +PROFILE_STAR=Προφίλ Star +PROFILE_DEFAULT_HELP=Προεπιλεγμένο προφίλ κατάλληλο για εκτυπωτές Epson PROFILE_SIMPLE_HELP=Απλό προφίλ χωρίς γραφικά -PROFILE_EPOSTEP_HELP=Epos Προφίλ Tep -PROFILE_P822D_HELP=P822D Προφίλ χωρίς γραφικά -PROFILE_STAR_HELP=Προφίλ Αστέρων +PROFILE_EPOSTEP_HELP=Προφίλ Epos Tep +PROFILE_P822D_HELP=Προφίλ P822D χωρίς γραφικά +PROFILE_STAR_HELP=Προφίλ Star DOL_LINE_FEED=Παράλειψη γραμμής DOL_ALIGN_LEFT=Αριστερή στοίχιση κειμένου DOL_ALIGN_CENTER=Στοίχιση κειμένου στο κέντρο -DOL_ALIGN_RIGHT=Στοίχιση κειμένου δεξιά -DOL_USE_FONT_A=Χρησιμοποίηση γραμματοσειράς Α στον εκτυπωτή -DOL_USE_FONT_B=Χρησιμοποίηση γραμματοσειράς Β στον εκτυπωτή -DOL_USE_FONT_C=Χρησιμοποίηση γραμματοσειράς Γ στον εκτυπωτή +DOL_ALIGN_RIGHT=Δεξιά στοίχιση κειμένου +DOL_USE_FONT_A=Χρήση της γραμματοσειράς Α του εκτυπωτή +DOL_USE_FONT_B=Χρήση της γραμματοσειράς Β του εκτυπωτή +DOL_USE_FONT_C=Χρήση της γραμματοσειράς C του εκτυπωτή DOL_PRINT_BARCODE=Εκτύπωση barcode -DOL_PRINT_BARCODE_CUSTOMER_ID=Εκτυπώστε αναγνωριστικό πελάτη γραμμωτού κώδικα -DOL_CUT_PAPER_FULL=Κόψτε το εισιτήριο εντελώς -DOL_CUT_PAPER_PARTIAL=Κόψτε το εισιτήριο εν μέρει -DOL_OPEN_DRAWER=Ανοίξτε το συρτάρι -DOL_ACTIVATE_BUZZER=Ενεργοποιήστε το βομβητή -DOL_PRINT_QRCODE=Εκτύπωση QR +DOL_PRINT_BARCODE_CUSTOMER_ID=Εκτύπωση barcode αναγνωριστικού πελάτη +DOL_CUT_PAPER_FULL=Κοπή απόδειξης +DOL_CUT_PAPER_PARTIAL=Μερική κοπή απόδειξης +DOL_OPEN_DRAWER=Άνοιγμα συρταριού μετρητών +DOL_ACTIVATE_BUZZER=Ενεργοποίηση βομβητή +DOL_PRINT_QRCODE=Εκτύπωση κωδικού QR DOL_PRINT_LOGO=Εκτύπωση λογότυπου της εταιρείας μου -DOL_PRINT_LOGO_OLD=Εκτύπωση λογότυπο της εταιρείας μου (παλιούς εκτυπωτές) +DOL_PRINT_LOGO_OLD=Εκτύπωση λογότυπου της εταιρείας μου (παλιοί εκτυπωτές) DOL_BOLD=Έντονη γραφή -DOL_BOLD_DISABLED=Απενεργοποιήση της έντονης γραφής -DOL_DOUBLE_HEIGHT=Διπλό ύψος -DOL_DOUBLE_WIDTH=Διπλό μέγεθος πλάτους +DOL_BOLD_DISABLED=Απενεργοποίηση της έντονης γραφής +DOL_DOUBLE_HEIGHT=Μέγεθος διπλού ύψους +DOL_DOUBLE_WIDTH=Μέγεθος διπλού πλάτους DOL_DEFAULT_HEIGHT_WIDTH=Προεπιλεγμένο μέγεθος ύψους και πλάτους DOL_UNDERLINE=Ενεργοποίηση υπογράμμισης -DOL_UNDERLINE_DISABLED=Απενεργοποιήση υπογράμμισης -DOL_BEEP=Ήχος μπιπ +DOL_UNDERLINE_DISABLED=Απενεργοποίηση υπογράμμισης +DOL_BEEP=Ήχος beep DOL_BEEP_ALTERNATIVE=Ήχος beep (εναλλακτική λειτουργία) DOL_PRINT_CURR_DATE=Εκτύπωση τρέχουσας ημερομηνίας/ώρας DOL_PRINT_TEXT=Εκτύπωση κειμένου @@ -70,15 +70,15 @@ InvoiceRef=Κωδ. τιμολογίου DOL_PRINT_OBJECT_LINES=Γραμμές τιμολογίου DOL_VALUE_CUSTOMER_FIRSTNAME=Όνομα πελάτη DOL_VALUE_CUSTOMER_LASTNAME=Επώνυμο πελάτη -DOL_VALUE_CUSTOMER_MAIL=Αλληλογραφία πελάτη +DOL_VALUE_CUSTOMER_MAIL=Email πελάτη DOL_VALUE_CUSTOMER_PHONE=Τηλέφωνο πελάτη -DOL_VALUE_CUSTOMER_MOBILE=Πελάτης κινητό -DOL_VALUE_CUSTOMER_SKYPE=Πελάτης Skype -DOL_VALUE_CUSTOMER_TAX_NUMBER=Αριθμός φόρου πελάτη +DOL_VALUE_CUSTOMER_MOBILE=Κινητό τηλέφωνο πελάτη +DOL_VALUE_CUSTOMER_SKYPE=Skype Πελάτη +DOL_VALUE_CUSTOMER_TAX_NUMBER=Α.Φ.Μ. πελάτη DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Υπόλοιπο λογαριασμού πελάτη -DOL_VALUE_MYSOC_NAME=Το όνομα της εταιρίας σου -VendorLastname=Επώνυμο πωλητή -VendorFirstname=Όνομα πωλητή -VendorEmail=Email πωλητή -DOL_VALUE_CUSTOMER_POINTS=Βαθμοί πελατών -DOL_VALUE_OBJECT_POINTS=Σημεία αντικειμένου +DOL_VALUE_MYSOC_NAME=Το όνομα της εταιρίας σας +VendorLastname=Επώνυμο προμηθευτή +VendorFirstname=Όνομα προμηθευτή +VendorEmail=Email προμηθευτή +DOL_VALUE_CUSTOMER_POINTS=Πόντοι πελατών +DOL_VALUE_OBJECT_POINTS=Πόντοι αντικειμένου diff --git a/htdocs/langs/el_GR/receptions.lang b/htdocs/langs/el_GR/receptions.lang index 62ac251faf0..b844a24afb2 100644 --- a/htdocs/langs/el_GR/receptions.lang +++ b/htdocs/langs/el_GR/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Προσχέδιο StatusReceptionValidatedShort=Επικυρώθηκε StatusReceptionProcessedShort=Διενεργήθηκε ReceptionSheet=Κατάσταση παραλαβής +ValidateReception=Επικύρωση παραλαβής ConfirmDeleteReception=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την παραλαβή; ConfirmValidateReception=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτή την παραλαβή με αναφορά %s ; ConfirmCancelReception=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτή την παραλαβή; @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Ενότητα αρίθμησης για παραλα ReceptionsReceiptModel=Πρότυπα εγγράφων για παραλαβές NoMorePredefinedProductToDispatch=Δεν υπάρχουν άλλα προκαθορισμένα προϊόντα για αποστολή ReceptionExist=Υπάρχει ήδη μια παραλαβή -ByingPrice=Τιμή αγοράς ReceptionBackToDraftInDolibarr=Επιστροφή σε προσχέδιο της παραλαβής %s ReceptionClassifyClosedInDolibarr=Η παραλαβή %s ταξινομήθηκε ως Κλειστή ReceptionUnClassifyCloseddInDolibarr=Άνοιγμα ξανά της παραλαβής %s diff --git a/htdocs/langs/el_GR/recruitment.lang b/htdocs/langs/el_GR/recruitment.lang index 7beef9ffe88..bdd6b57ced1 100644 --- a/htdocs/langs/el_GR/recruitment.lang +++ b/htdocs/langs/el_GR/recruitment.lang @@ -27,7 +27,7 @@ ModuleRecruitmentDesc = Διαχειριστείτε και παρακολουθ # RecruitmentSetup = Ρύθμιση προσλήψεων Settings = Ρυθμίσεις -RecruitmentSetupPage = Εισαγάγετε εδώ τη ρύθμιση των κύριων επιλογών για τη μονάδα προσλήψεων +RecruitmentSetupPage = Εισαγάγετε εδώ τη ρύθμιση των κύριων επιλογών για την ενότητα προσλήψεων RecruitmentArea=Περιοχή προσλήψεων PublicInterfaceRecruitmentDesc=Οι δημόσιες σελίδες θέσεων εργασίας είναι δημόσιες διευθύνσεις URL για εμφάνιση και απάντηση σε ανοιχτές θέσεις εργασίας. Υπάρχει ένας διαφορετικός σύνδεσμος για κάθε ανοιχτή θέση εργασίας, που βρίσκεται σε κάθε εγγραφή εργασίας. EnablePublicRecruitmentPages=Ενεργοποίηση δημόσιων σελίδων ανοιχτών θέσεων εργασίας @@ -35,7 +35,7 @@ EnablePublicRecruitmentPages=Ενεργοποίηση δημόσιων σελί # # About page # -About = Πληροφορίες +About = Σχετικά με RecruitmentAbout = Σχετικά με τις προσλήψεις RecruitmentAboutPage = Σελίδα σχετικά με τις Προσλήψεις NbOfEmployeesExpected=Προσδοκώμενο νούμερο εργαζομένων @@ -44,7 +44,7 @@ WorkPlace=Χώρος Εργασίας DateExpected=Αναμενόμενη ημερομηνία FutureManager=Μελλοντικός μάνατζερ ResponsibleOfRecruitement=Υπεύθυνος προσλήψεων -IfJobIsLocatedAtAPartner=Εάν η εργασία βρίσκεται σε μερος συνεργάτη +IfJobIsLocatedAtAPartner=Εάν η εργασία βρίσκεται σε χώρο συνεργάτη PositionToBeFilled=Θέση εργασίας PositionsToBeFilled=Θέσεις εργασίας ListOfPositionsToBeFilled=Κατάλογος θέσεων εργασίας @@ -57,15 +57,16 @@ EmailRecruiter=Εmail υπεύθυνου προσλήψεων ToUseAGenericEmail=Για να χρησιμοποιήσετε ένα γενικό email. Εάν δεν έχει οριστεί, θα χρησιμοποιηθεί το email του υπεύθυνου πρόσληψης NewCandidature=Νέα αίτηση ListOfCandidatures=Λίστα αιτήσεων -RequestedRemuneration=Ζητούμενη αμοιβή -ProposedRemuneration=Προτεινόμενη αμοιβή +Remuneration=Μισθός +RequestedRemuneration=Ζητούμενος μισθός +ProposedRemuneration=Προτεινόμενος μισθός ContractProposed=Προτεινόμενη σύμβαση ContractSigned=Υπογεγραμμένη σύμβαση ContractRefused=Η σύμβαση απορρίφθηκε RecruitmentCandidature=Αίτηση JobPositions=Θέσεις εργασίας RecruitmentCandidatures=Αιτήσεις -InterviewToDo=Συνέντευξη για να γίνει +InterviewToDo=Επαφές για παρακολούθηση AnswerCandidature=Απάντηση αίτησης YourCandidature=Η αίτηση σου YourCandidatureAnswerMessage=Σας ευχαριστούμε για την αίτηση σας.
    ... diff --git a/htdocs/langs/el_GR/salaries.lang b/htdocs/langs/el_GR/salaries.lang index 5e7cc1a9d6c..e01b40477b3 100644 --- a/htdocs/langs/el_GR/salaries.lang +++ b/htdocs/langs/el_GR/salaries.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Λογαριασμός λογιστικής που χρησιμοποιείται για τρίτους χρήστες -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Ο αποκλειστικός λογαριασμός λογιστικής που ορίζεται στην κάρτα χρήστη θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για το γενικό βιβλίο και ως προεπιλεγμένη τιμή της λογιστικής Subledger εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής για τον χρήστη. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Λογαριασμός λογαριασμού από προεπιλογή για πληρωμές μισθών +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Λογαριασμός (από το λογιστικό σχέδιο) που χρησιμοποιείται από προεπιλογή για τρίτους "χρήστες". +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Ο αποκλειστικός λογαριασμός λογιστικής που ορίζεται στην κάρτα χρήστη θα χρησιμοποιηθεί μόνο για τη λογιστική του Βοηθητικού καθολικού. Αυτός θα χρησιμοποιηθεί για το Γενικό Καθολικό και ως προεπιλεγμένη τιμή της λογιστικής του Βοηθητικού καθολικού εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής για τον χρήστη. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Προεπιλεγμένος λογαριασμός λογιστικής για πληρωμές μισθών CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Από προεπιλογή, αφήστε κενή την επιλογή "Αυτόματη δημιουργία συνολικής πληρωμής" κατά τη δημιουργία ενός Μισθού Salary=Mισθός Salaries=Μισθοί NewSalary=Νέος μισθός AddSalary=Προσθήκη μισθού -NewSalaryPayment=Νέα καρτέλα μισθού +NewSalaryPayment=Καρτέλα νέου μισθού AddSalaryPayment=Προσθήκη πληρωμής μισθοδοσίας SalaryPayment=Μισθός SalariesPayments=Πληρωμές μισθών @@ -15,13 +15,13 @@ SalariesPaymentsOf=Πληρωμές μισθών του %s ShowSalaryPayment=Εμφάνιση μισθοδοσίας THM=Μέση ωριαία τιμή TJM=Μέση ημερήσια τιμή -CurrentSalary=Τρέχον μισθός -THMDescription=Αυτή η τιμή μπορεί να χρησιμοποιηθεί για τον υπολογισμό του κόστους του χρόνου που καταναλώνεται σε ένα έργο που εισήχθησαν από τους χρήστες, εάν χρησιμοποιείται το project module -TJMDescription=Αυτή η τιμή είναι προς ενημέρωση μόνο και δεν χρησιμοποιείται για υπολογισμό +CurrentSalary= Τρέχων μισθός +THMDescription=Αυτή η τιμή μπορεί να χρησιμοποιηθεί για τον υπολογισμό του κόστους του χρόνου που καταναλώνεται σε ένα έργο που εισήχθη από τους χρήστες, εάν χρησιμοποιείται η ενότητα project +TJMDescription=Αυτή η τιμή είναι προς το παρόν ενημερωτική μόνο και δεν χρησιμοποιείται για κανέναν υπολογισμό LastSalaries=Τελευταίοι %sμισθοί AllSalaries=Όλοι οι μισθοί SalariesStatistics=Στατιστικά στοιχεία μισθών SalariesAndPayments=Μισθοί και πληρωμές ConfirmDeleteSalaryPayment=Θέλετε να διαγράψετε αυτήν την πληρωμή μισθού; -FillFieldFirst=Συμπληρώστε το πεδίο υπαλλήλου πρώτα  +FillFieldFirst=Συμπληρώστε το πεδίο υπαλλήλου πρώτα UpdateAmountWithLastSalary=Καθορίστε το ποσό βάσει του τελευταίου μισθού diff --git a/htdocs/langs/el_GR/sendings.lang b/htdocs/langs/el_GR/sendings.lang index 9300aed40a2..df8e0a2746d 100644 --- a/htdocs/langs/el_GR/sendings.lang +++ b/htdocs/langs/el_GR/sendings.lang @@ -1,76 +1,76 @@ # Dolibarr language file - Source file is en_US - sendings -RefSending=Ref. αποστολή +RefSending=Αναφ. αποστολής Sending=Αποστολή Sendings=Αποστολές AllSendings=Όλες οι αποστολές Shipment=Αποστολή Shipments=Αποστολές -ShowSending=Εμφάνιση μεταφορικών +ShowSending=Εμφάνιση Αποστολών Receivings=Απόδειξεις παράδοσης -SendingsArea=Περιοχή αποστολών -ListOfSendings=Κατάλογος των αποστολών +SendingsArea=Τομέας αποστολών +ListOfSendings=Λίστα αποστολών SendingMethod=Μέθοδο αποστολής LastSendings=Τελευταίες %s αποστολές -StatisticsOfSendings=Στατιστικά στοιχεία για τις αποστολές +StatisticsOfSendings=Στατιστικά στοιχεία αποστολών NbOfSendings=Αριθμός των αποστολών NumberOfShipmentsByMonth=Αριθμός αποστολών ανά μήνα -SendingCard=Κάρτα αποστολής +SendingCard=Καρτέλα αποστολών NewSending=Νέα αποστολή CreateShipment=Δημιουργία αποστολής -QtyShipped=Ποσότητα που αποστέλλεται -QtyShippedShort=Ποσότητα πλοίου. -QtyPreparedOrShipped=Ποσότητα ετοιμάζεται ή αποστέλλεται +QtyShipped=Απεσταλμένη ποσότητα +QtyShippedShort=Απεσταλμένη ποσότητα +QtyPreparedOrShipped=Ποσότητα προς αποστολή ή απεσταλμένη QtyToShip=Ποσότητα προς αποστολή -QtyToReceive=Ποσότητα για να λάβετε -QtyReceived=Ποσότητα παραλαβής +QtyToReceive=Ποσότητα προς παραλαβή +QtyReceived=Ποσότητα που παρελήφθη QtyInOtherShipments=Ποσότητα σε άλλες αποστολές -KeepToShip=Αναμένει για αποστολή +KeepToShip=Παραμένει για αποστολή KeepToShipShort=Παραμένει -OtherSendingsForSameOrder=Άλλες αποστολές για αυτό το σκοπό -SendingsAndReceivingForSameOrder=Αποστολές και αποδείξεις για αυτήν την παραγγελία +OtherSendingsForSameOrder=Άλλες αποστολές για αυτήν την παραγγελία +SendingsAndReceivingForSameOrder=Αποστολές και παραλαβές για αυτήν την παραγγελία SendingsToValidate=Αποστολές για επικύρωση StatusSendingCanceled=Ακυρώθηκε StatusSendingCanceledShort=Ακυρώθηκε -StatusSendingDraft=Σχέδιο +StatusSendingDraft=Προσχέδιο StatusSendingValidated=Επικυρωμένη (προϊόντα για αποστολή ή που έχουν ήδη αποσταλεί) -StatusSendingProcessed=Επεξεργασμένα -StatusSendingDraftShort=Σχέδιο +StatusSendingProcessed=Σε εξέλιξη +StatusSendingDraftShort=Προσχέδιο StatusSendingValidatedShort=Επικυρωμένη -StatusSendingProcessedShort=Επεξεργασμένα +StatusSendingProcessedShort=Σε εξέλιξη SendingSheet=Φύλλο αποστολής -ConfirmDeleteSending=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την αποστολή; -ConfirmValidateSending=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτήν την αποστολή με αναφορά %s ? -ConfirmCancelSending=Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν την αποστολή; -DocumentModelMerou=Mérou A5 μοντέλο -WarningNoQtyLeftToSend=Προσοχή, δεν υπάρχουν είδη που περιμένουν να σταλούν. +ConfirmDeleteSending=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την αποστολή; +ConfirmValidateSending=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την αποστολή με αναφορά %s ? +ConfirmCancelSending=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτήν την αποστολή; +DocumentModelMerou=Μοντέλο Mérou A5 +WarningNoQtyLeftToSend=Προειδοποίηση, κανένα προϊόν δεν ειναι σε αναμονή για αποστολή. StatsOnShipmentsOnlyValidated=Τα στατιστικά αφορούν μόνο επικυρωμένες αποστολές. Η ημερομηνία που χρησιμοποιείται είναι η ημερομηνία επικύρωσης της αποστολής (η προγραμματισμένη ημερομηνία παράδοσης δεν είναι πάντα γνωστή) DateDeliveryPlanned=Προγραμματισμένη ημερομηνία παράδοσης RefDeliveryReceipt=Παραλαβή παράδοσης αναφοράς StatusReceipt=Κατάσταση παραλαβής κατάστασης DateReceived=Παράδοση Ημερομηνία παραλαβής -ClassifyReception=Ταξινόμηση της λήψης +ClassifyReception=Ταξινόμηση παραλαβής SendShippingByEMail=Αποστολή αποστολής μέσω ηλεκτρονικού ταχυδρομείου SendShippingRef=Υποβολή της αποστολής %s -ActionsOnShipping=Εκδηλώσεις για την αποστολή +ActionsOnShipping=Ενέργειες κατά την αποστολή LinkToTrackYourPackage=Σύνδεσμος για να παρακολουθείτε το πακέτο σας ShipmentCreationIsDoneFromOrder=Προς το παρόν, η δημιουργία νέας αποστολής γίνεται από το αρχείο Παραγγελίας Πωλήσεων. -ShipmentLine=Σειρά αποστολής -ProductQtyInCustomersOrdersRunning=Ποσότητα προϊόντος από ανοικτές παραγγελίες πώλησης -ProductQtyInSuppliersOrdersRunning=Ποσότητα προϊόντος από ανοικτές εντολές αγοράς +ShipmentLine=Γραμμή αποστολής +ProductQtyInCustomersOrdersRunning=Ποσότητα προϊόντος από ανοιχτείς εντολές πωλήσεων +ProductQtyInSuppliersOrdersRunning=Ποσότητα προϊόντος από ανοιχτές παραγγελίες αγοράς ProductQtyInShipmentAlreadySent=Ποσότητα προϊόντος από ανοικτή εντολή πωλήσεων που έχει ήδη αποσταλεί ProductQtyInSuppliersShipmentAlreadyRecevied=Ποσότητα προϊόντος από ανοικτές παραγγελίες αγοράς που έχουν ήδη παραληφθεί -NoProductToShipFoundIntoStock=Δεν βρέθηκε προϊόν στο πλοίο στην αποθήκη %s . Διορθώστε το απόθεμα ή επιστρέψτε για να επιλέξετε μια άλλη αποθήκη. -WeightVolShort=Βάρος / Τόμ. +NoProductToShipFoundIntoStock=Δεν βρέθηκε προϊόν προς αποστολή στην αποθήκη %s . Διορθώστε το απόθεμα ή επιλέξτε άλλη αποθήκη. +WeightVolShort=Βάρος/Όγκος ValidateOrderFirstBeforeShipment=Θα πρέπει πρώτα να επικυρώσετε την παραγγελία πριν να μπορέσετε να πραγματοποιήσετε αποστολές. # Sending methods # ModelDocument DocumentModelTyphon=Πληρέστερο πρότυπο έγγραφο για αποδεικτικά παράδοσης (logo. ..) -DocumentModelStorm=Πιο πλήρες μοντέλο εγγράφου για αποδείξεις παράδοσης και συμβατότητα με επιπλέον πεδία (λογότυπο...) -Error_EXPEDITION_ADDON_NUMBER_NotDefined=Σταθερή EXPEDITION_ADDON_NUMBER δεν ορίζεται +DocumentModelStorm=Πληρέστερο πρότυπο έγγραφο για αποδεικτικά παράδοσης και συμβατότητα με επιπλέον πεδία (λογότυπο...) +Error_EXPEDITION_ADDON_NUMBER_NotDefined=Η σταθερά EXPEDITION_ADDON_NUMBER δεν έχει οριστεί SumOfProductVolumes=Άθροισμα όγκου του προϊόντος -SumOfProductWeights=Άθροισμα το βάρος των προϊόντων +SumOfProductWeights=Άθροισμα βάρους προϊόντων # warehouse details DetailWarehouseNumber= Λεπτομέρειες Αποθήκης -DetailWarehouseFormat= W: %s (Ποσότητα: %d) +DetailWarehouseFormat= Α: %s (Ποσότητα: %d) diff --git a/htdocs/langs/el_GR/sms.lang b/htdocs/langs/el_GR/sms.lang index 21df53febec..d91cdbb6876 100644 --- a/htdocs/langs/el_GR/sms.lang +++ b/htdocs/langs/el_GR/sms.lang @@ -1,51 +1,51 @@ # Dolibarr language file - Source file is en_US - sms Sms=Sms -SmsSetup=Sms ρύθμιση -SmsDesc=Αυτή η σελίδα σας επιτρέπει να ορίσετε γενικές επιλογές σε SMS χαρακτηριστικά +SmsSetup=Ρύθμιση SMS +SmsDesc=Αυτή η σελίδα σάς επιτρέπει να ορίσετε καθολικές επιλογές στις λειτουργίες SMS SmsCard=SMS Κάρτα AllSms=Όλες οι καμπάνιες SMS -SmsTargets=Στόχοι -SmsRecipients=Στόχοι -SmsRecipient=Στόχος +SmsTargets=Παραλήπτες +SmsRecipients=Παραλήπτες +SmsRecipient=Παραλήπτης SmsTitle=Περιγραφή SmsFrom=Αποστολέας -SmsTo=Στόχος +SmsTo=Παραλήπτης SmsTopic=Θέμα του SMS SmsText=Μήνυμα SmsMessage=Μήνυμα SMS -ShowSms=Εμφάνιση Sms -ListOfSms=Λίστα καμπανιών SMS +ShowSms=Εμφάνιση SMS +ListOfSms=Λίστα με καμπάνιες SMS NewSms=Νέα καμπάνια SMS -EditSms=Επεξεργασία Sms +EditSms=Επεξεργασία SMS ResetSms=Νέα αποστολή -DeleteSms=Διαγραφή εκστρατείας Sms -DeleteASms=Αφαιρέστε μια εκστρατεία Sms -PreviewSms=Προεπισκόπηση Sms -PrepareSms=Ετοιμάστε Sms -CreateSms=Δημιουργία Sms -SmsResult=Αποτέλεσμα της αποστολής sms -TestSms=Δοκιμή Sms -ValidSms=Επικύρωση Sms -ApproveSms=Έγκριση Sms -SmsStatusDraft=Σχέδιο -SmsStatusValidated=Επικυρωμένη +DeleteSms=Διαγραφή καμπάνιας SMS +DeleteASms=Καταργήστε μια καμπάνια SMS +PreviewSms=Προεπισκόπηση SMS +PrepareSms=Προετοιμασία SMS +CreateSms=Δημιουργία SMS +SmsResult=Αποτέλεσμα αποστολής SMS +TestSms=Δοκιμή SMS +ValidSms=Επικύρωση SMS +ApproveSms=Έγκριση SMS +SmsStatusDraft=Προσχέδιο +SmsStatusValidated=Επικυρωμένο SmsStatusApproved=Εγκεκριμένο SmsStatusSent=Εστάλη SmsStatusSentPartialy=Μερικώς απεσταλμένα -SmsStatusSentCompletely=Εντελώς απεσταλμένα +SmsStatusSentCompletely=Επιτυχώς απεσταλμένα SmsStatusError=Σφάλμα -SmsStatusNotSent=Δεν αποστέλλεται -SmsSuccessfulySent=Έστειλε σωστά Sms (από %s να %s) -ErrorSmsRecipientIsEmpty=Ο αριθμός στόχου είναι άδειος -WarningNoSmsAdded=Κανένα νέο αριθμό τηλεφώνου για να προσθέσετε στη λίστα στόχων -ConfirmValidSms=Επιβεβαιώνετε την εγκυρότητα αυτής της καμπάνιας; -NbOfUniqueSms=Nb DOF μοναδικούς αριθμούς τηλεφώνου -NbOfSms=Nbre του phon αριθμούς +SmsStatusNotSent=Δεν εστάλη +SmsSuccessfulySent=Το SMS στάλθηκε σωστά (από %s σε %s) +ErrorSmsRecipientIsEmpty=Ο αριθμός στόχου είναι κενός +WarningNoSmsAdded=Κανένας νέος αριθμός τηλεφώνου για να προσθέσετε στη λίστα στόχων +ConfirmValidSms=Επιβεβαιώνετε την επικύρωση αυτής της καμπάνιας; +NbOfUniqueSms=Νούμερο μοναδικών τηλεφωνικών αριθμών +NbOfSms=Νούμερο Αριθμών τηλεφώνου ThisIsATestMessage=Αυτό είναι ένα δοκιμαστικό μήνυμα SendSms=Αποστολή SMS -SmsInfoCharRemain=Αρ. υπόλοιπων χαρακτήρων -SmsInfoNumero= (Μορφή διεθνούς δηλαδή: +308997017610) +SmsInfoCharRemain=Αριθμός χαρακτήρων που υπολείπονται +SmsInfoNumero= (διεθνής μορφή π.χ. .: +33899701761) DelayBeforeSending=Καθυστέρηση πριν από την αποστολή (λεπτά) -SmsNoPossibleSenderFound=Δεν υπάρχει αποστολέας. Ελέξτε τις ρυθμίσεις από τον πάροχο των SMS -SmsNoPossibleRecipientFound=Δεν υπάρχει στόχος. Ελέγξτε την εγκατάσταση του SMS του παροχέα σας. -DisableStopIfSupported=Disable STOP message (if supported) +SmsNoPossibleSenderFound=Δεν υπάρχει αποστολέας. Ελέγξτε τις ρυθμίσεις του παρόχου SMS +SmsNoPossibleRecipientFound=Δεν υπάρχει διαθέσιμος παραλήπτης. Ελέγξτε τις ρυθμίσεις του παρόχου SMS +DisableStopIfSupported=Απενεργοποίηση μηνύματος STOP (αν υποστηρίζεται) diff --git a/htdocs/langs/el_GR/stocks.lang b/htdocs/langs/el_GR/stocks.lang index 7fb1dbe0b93..cc8ac9feab1 100644 --- a/htdocs/langs/el_GR/stocks.lang +++ b/htdocs/langs/el_GR/stocks.lang @@ -1,41 +1,41 @@ # Dolibarr language file - Source file is en_US - stocks -WarehouseCard=Κάρτα Αποθήκης +WarehouseCard=Καρτέλα Αποθήκης Warehouse=Αποθήκη Warehouses=Αποθήκες -ParentWarehouse=Μητρική αποθήκη +ParentWarehouse=Κεντρική αποθήκη NewWarehouse=Νέα αποθήκη / τοποθεσία αποθέματος -WarehouseEdit=Τροποποιήστε την αποθήκη +WarehouseEdit=Τροποποίηση αποθήκης MenuNewWarehouse=Νέα αποθήκη WarehouseSource=Πηγή αποθήκευσης WarehouseSourceNotDefined=Δεν έχει οριστεί αποθήκη, AddWarehouse=Δημιουργία αποθήκης -AddOne=Προσθέστε ένα +AddOne=Προσθήκη μιας DefaultWarehouse=Προκαθορισμένη αποθήκη -WarehouseTarget=Στόχος αποθήκη -ValidateSending=Επιβεβαιώστε την αποστολή +WarehouseTarget=Αποθήκη προορισμού +ValidateSending=Επιβεβαίωση αποστολής CancelSending=Ακύρωση αποστολής DeleteSending=Διαγραφή αποστολής -Stock=Στοκ +Stock=Απόθεμα Stocks=Αποθέματα -MissingStocks=Λείπει απόθεμα +MissingStocks=Χαμένα αποθέματα StockAtDate=Αποθέματα κατά την ημερομηνία StockAtDateInPast=Ημερομηνία στο παρελθόν StockAtDateInFuture=Ημερομηνία στο μέλλον -StocksByLotSerial=Αποθέματα ανά παρτίδα / σειρά -LotSerial=Lots / Serials -LotSerialList=Κατάλογος παρτίδων / περιοδικών +StocksByLotSerial=Αποθέματα ανά παρτίδα / σειριακό αριθμό +LotSerial=Παρτίδες/Σειριακοί αριθμοί +LotSerialList=Λίστα παρτίδων / σειριακών αριθμών Movements=Κινήσεις -ErrorWarehouseRefRequired=Αποθήκη όνομα αναφοράς απαιτείται -ListOfWarehouses=Κατάλογος των αποθηκών -ListOfStockMovements=Κατάλογος των κινήσεων των αποθεμάτων -ListOfInventories=Κατάλογος απογραφών -MovementId=Αναγνώριση κίνησης +ErrorWarehouseRefRequired=Απαιτείται όνομα αναφοράς αποθήκης +ListOfWarehouses=Λίστα αποθηκών +ListOfStockMovements=Λίστα κινήσεων των αποθεμάτων +ListOfInventories=Λίστα απογραφών +MovementId=Αναγνωριστικό κίνησης StockMovementForId=Αναγνωριστικό κίνησης %d -ListMouvementStockProject=Κατάλογος των κινήσεων αποθεμάτων που σχετίζονται με το έργο -StocksArea=Περιοχή αποθηκών +ListMouvementStockProject=Λίστα των κινήσεων αποθεμάτων που σχετίζονται με το έργο +StocksArea=Τομέας αποθηκών AllWarehouses=Όλες οι αποθήκες IncludeEmptyDesiredStock=Συμπεριλάβετε επίσης αρνητικό απόθεμα με απροσδιόριστο επιθυμητό απόθεμα -IncludeAlsoDraftOrders=Συμπεριλάβετε επίσης σχέδια παραγγελιών +IncludeAlsoDraftOrders=Συμπεριλάβετε επίσης προσχέδια παραγγελιών Location=Τοποθεσία LocationSummary=Σύντομο όνομα τοποθεσίας NumberOfDifferentProducts=Αριθμός μοναδικών προϊόντων @@ -45,23 +45,23 @@ LastMovements=Τελευταίες κινήσεις Units=Μονάδες Unit=Μονάδα StockCorrection=Διόρθωση αποθέματος -CorrectStock=Σωστή απόθεμα -StockTransfer=Stock Μεταφορά -TransferStock=Μεταφορά μετοχών +CorrectStock=Διόρθωση απόθεματος +StockTransfer=Μεταφορά αποθέματος +TransferStock=Μεταφορά αποθέματος MassStockTransferShort=Μαζική μεταφορά αποθέματος -StockMovement=Μετακίνηση αποθεμάτων +StockMovement=Μετακίνηση αποθέματος StockMovements=Μετακινήσεις αποθεμάτων NumberOfUnit=Αριθμός μονάδων -UnitPurchaseValue=Unit purchase price -StockTooLow=Χρηματιστήριο πολύ χαμηλή +UnitPurchaseValue=Τιμή αγοράς μονάδας +StockTooLow=Το απόθεμα είναι πολύ χαμηλό StockLowerThanLimit=Απόθεμα χαμηλότερο από το όριο συναγερμού (%s) EnhancedValue=Αξία -EnhancedValueOfWarehouses=Αποθήκες αξία +EnhancedValueOfWarehouses=Αξία αποθηκών UserWarehouseAutoCreate=Δημιουργήστε αυτόματα μια αποθήκη χρήστη κατά τη δημιουργία ενός χρήστη -AllowAddLimitStockByWarehouse=Διαχειριστείτε επίσης την τιμή για το ελάχιστο και το επιθυμητό απόθεμα ανά ζεύγος (αποθήκη προϊόντων) επιπλέον της τιμής για το ελάχιστο και το επιθυμητό απόθεμα ανά προϊόν +AllowAddLimitStockByWarehouse=Διαχειριστείτε επίσης την τιμή για το ελάχιστο και το επιθυμητό απόθεμα ανά ζεύγος (αποθήκης- προϊόντων) επιπλέον της τιμής για το ελάχιστο και το επιθυμητό απόθεμα ανά προϊόν RuleForWarehouse=Κανόνας για τις αποθήκες WarehouseAskWarehouseOnThirparty=Ορίστε μια αποθήκη σε τρίτα μέρη -WarehouseAskWarehouseDuringPropal=Ορίστε μια αποθήκη για εμπορικές προτάσεις +WarehouseAskWarehouseDuringPropal=Ορίστε μια αποθήκη για εμπορικές προσφορές WarehouseAskWarehouseDuringOrder=Ορίστε μια αποθήκη για παραγγελίες πωλήσεων WarehouseAskWarehouseDuringProject=Ορίστε μια αποθήκη για Έργα UserDefaultWarehouse=Ορίστε μια αποθήκη στους Χρήστες @@ -69,61 +69,61 @@ MainDefaultWarehouse=Προεπιλεγμένη αποθήκη MainDefaultWarehouseUser=Χρησιμοποιήστε μια προεπιλεγμένη αποθήκη για κάθε χρήστη MainDefaultWarehouseUserDesc=Με την ενεργοποίηση αυτής της επιλογής, κατά τη δημιουργία ενός προϊόντος, η αποθήκη που έχει εκχωρηθεί στο προϊόν θα οριστεί σε αυτήν. Εάν δεν έχει οριστεί αποθήκη στον χρήστη, ορίζεται η προεπιλεγμένη αποθήκη. IndependantSubProductStock=Το απόθεμα προϊόντων και το απόθεμα υποπροϊόντων είναι ανεξάρτητα -QtyDispatched=Ποσότητα αποστέλλονται +QtyDispatched=Απεσταλμένη ποσότητα QtyDispatchedShort=Απεσταλμένη ποσότητα QtyToDispatchShort=Ποσότητα για αποστολή -OrderDispatch=Στοιχεία παραστατικών -RuleForStockManagementDecrease=Επιλέξτε τον Κανόνα για την αυτόματη μείωση των αποθεμάτων (η χειρωνακτική μείωση είναι πάντοτε δυνατή, ακόμη και αν ενεργοποιηθεί ένας κανόνας αυτόματης μείωσης) -RuleForStockManagementIncrease=Επιλέξτε τον Κανόνα για την αυτόματη αύξηση των μετοχών (η χειροκίνητη αύξηση είναι πάντα δυνατή, ακόμη και αν ενεργοποιηθεί ένας κανόνας αυτόματης αύξησης) -DeStockOnBill=Μείωση των πραγματικών αποθεμάτων κατά την επικύρωση του τιμολογίου πελάτη / πιστωτικού σημείου +OrderDispatch=Παραλαβές αντικειμένων +RuleForStockManagementDecrease=Επιλέξτε τον Κανόνα για την αυτόματη μείωση του αποθέματος (η χειρωνακτική μείωση είναι πάντοτε δυνατή, ακόμη και αν ενεργοποιηθεί ένας κανόνας αυτόματης μείωσης) +RuleForStockManagementIncrease=Επιλέξτε τον Κανόνα για την αυτόματη αύξηση του αποθέματος (η χειροκίνητη αύξηση είναι πάντα δυνατή, ακόμη και αν ενεργοποιηθεί ένας κανόνας αυτόματης αύξησης) +DeStockOnBill=Μείωση των πραγματικών αποθεμάτων κατά την επικύρωση του τιμολογίου πελάτη / πιστωτικού σημειώματος DeStockOnValidateOrder=Μείωση των πραγματικών αποθεμάτων κατά την επικύρωση της εντολής πώλησης -DeStockOnShipment=Μειώστε τα πραγματικά αποθέματα κατά την επικύρωση της ναυτιλίας -DeStockOnShipmentOnClosing=Μείωση πραγματικών αποθεμάτων όταν η ναυτιλία είναι κλειστή -ReStockOnBill=Αύξηση των πραγματικών αποθεμάτων κατά την επικύρωση του τιμολογίου πωλητή / πιστωτικού σημειώματος +DeStockOnShipment=Μείωση των πραγματικών αποθεμάτων κατά την επικύρωση της αποστολής +DeStockOnShipmentOnClosing=Μείωση πραγματικών αποθεμάτων όταν η αποστολη είναι κλειστή +ReStockOnBill=Αύξηση των πραγματικών αποθεμάτων κατά την επικύρωση του τιμολογίου προμηθευτή / πιστωτικού σημειώματος ReStockOnValidateOrder=Αύξηση των πραγματικών αποθεμάτων με την έγκριση της εντολής αγοράς ReStockOnDispatchOrder=Αύξηση των πραγματικών αποθεμάτων κατά τη χειρωνακτική αποστολή στην αποθήκη, μετά την παραλαβή της παραγγελίας αγοράς αγαθών StockOnReception=Αύξηση των πραγματικών αποθεμάτων κατά την επικύρωση της παραλαβής -StockOnReceptionOnClosing=Αύξηση των πραγματικών αποθεμάτων όταν η λήψη είναι κλειστή -OrderStatusNotReadyToDispatch=Παραγγελία δεν έχει ακόμη ή όχι περισσότερο μια κατάσταση που επιτρέπει την αποστολή των προϊόντων σε αποθήκες αποθεμάτων. +StockOnReceptionOnClosing=Αύξηση των πραγματικών αποθεμάτων όταν η παραλαβή είναι κλειστή +OrderStatusNotReadyToDispatch=Η παραγγελία δεν είναι ακόμη ή δεν είναι πλέον σε κατάσταση που να επιτρέπει την αποστολή προϊόντων σε αποθήκες αποθεμάτων. StockDiffPhysicTeoric=Επεξήγηση διαφοράς μεταξύ φυσικού και εικονικού αποθέματος -NoPredefinedProductToDispatch=Δεν προκαθορισμένα προϊόντα για αυτό το αντικείμενο. Έτσι, δεν έχει αποστολή σε απόθεμα είναι απαραίτητη. +NoPredefinedProductToDispatch=Δεν υπάρχουν προκαθορισμένα προϊόντα για αυτό το αντικείμενο. Επομένως, δεν απαιτείται αποστολή σε απόθεμα. DispatchVerb=Αποστολή StockLimitShort=Όριο για ειδοποιήσεις StockLimit=Όριο ειδοποιήσεων για το απόθεμα -StockLimitDesc=(κενό) σημαίνει καμία προειδοποίηση.
     Το 0 μπορεί να χρησιμοποιηθεί για την ενεργοποίηση μιας προειδοποίησης μόλις αδειάσει το απόθεμα. +StockLimitDesc=(κενό) σημαίνει καμία προειδοποίηση. Το
    0 μπορεί να χρησιμοποιηθεί για την ενεργοποίηση μιας προειδοποίησης μόλις αδειάσει το απόθεμα. PhysicalStock=Φυσικό απόθεμα -RealStock=Real Χρηματιστήριο +RealStock=Πραγματικό απόθεμα RealStockDesc=Το φυσικό / πραγματικό απόθεμα είναι το απόθεμα που βρίσκεται σήμερα στις αποθήκες. RealStockWillAutomaticallyWhen=Το πραγματικό απόθεμα θα τροποποιηθεί σύμφωνα με αυτόν τον κανόνα (όπως ορίζεται στην ενότητα του αποθέματος): -VirtualStock=Εικονική απόθεμα +VirtualStock=Εικονικό απόθεμα VirtualStockAtDate=Εικονικό απόθεμα σε μελλοντική ημερομηνία VirtualStockAtDateDesc=Εικονικό απόθεμα μόλις ολοκληρωθούν όλες οι εκκρεμείς παραγγελίες που έχουν προγραμματιστεί να διεκπεραιωθούν πριν από την επιλεγμένη ημερομηνία VirtualStockDesc=Το εικονικό απόθεμα είναι το υπολογισμένο απόθεμα που είναι διαθέσιμο μόλις κλείσουν όλες οι ανοιχτές/εκκρεμείς ενέργειες (που επηρεάζουν τα αποθέματα) (ληφθείσες εντολές αγοράς, απεσταλμένες εντολές πωλήσεων, εκτελεσμένες παραγγελίες κατασκευής κ.λπ.) AtDate=Κατά την ημερομηνία -IdWarehouse=Id αποθήκη -DescWareHouse=Αποθήκη Περιγραφή -LieuWareHouse=Αποθήκη Localisation -WarehousesAndProducts=Αποθήκες και τα προϊόντα -WarehousesAndProductsBatchDetail=Αποθήκες και προϊόντα (με λεπτομέρεια ανά παρτίδα / σειρά) +IdWarehouse=Αναγνωριστικό αποθήκης +DescWareHouse=Περιγραφή αποθήκης +LieuWareHouse=Τοποθεσία αποθήκης +WarehousesAndProducts=Αποθήκες και προϊόντα +WarehousesAndProductsBatchDetail=Αποθήκες και προϊόντα (με λεπτομέρεια ανά παρτίδα / σειριακό αριθμό) AverageUnitPricePMPShort=Μέση σταθμική τιμή AverageUnitPricePMPDesc=Η μέση τιμή μονάδας εισόδου που έπρεπε να δαπανήσουμε για να πάρουμε 1 μονάδα προϊόντος στο απόθεμα μας. -SellPriceMin=Πώληση Τιμή μονάδας -EstimatedStockValueSellShort=Τιμή για πώληση -EstimatedStockValueSell=Τιμή για πώληση -EstimatedStockValueShort=Είσοδος αξία μετοχών -EstimatedStockValue=Είσοδος αξία μετοχών +SellPriceMin=Τιμή μονάδας πώλησης +EstimatedStockValueSellShort=Αξία πώλησης +EstimatedStockValueSell=Αξία πώλησης +EstimatedStockValueShort=Εισαγωγή αξίας αποθέματος +EstimatedStockValue=Εισαγωγή αξίας αποθέματος DeleteAWarehouse=Διαγραφή μιας αποθήκης -ConfirmDeleteWarehouse=Είστε βέβαιοι ότι θέλετε να διαγράψετε την αποθήκη %s ? -PersonalStock=Προσωπικά %s απόθεμα -ThisWarehouseIsPersonalStock=Αυτή η αποθήκη αποτελεί προσωπική απόθεμα %s %s -SelectWarehouseForStockDecrease=Επιλέξτε αποθήκη που θα χρησιμοποιηθεί για μείωση αποθεμάτων -SelectWarehouseForStockIncrease=Επιλέξτε αποθήκη που θα χρησιμοποιηθεί για αύξηση των αποθεμάτων -NoStockAction=No stock action +ConfirmDeleteWarehouse=Είστε σίγουροι ότι θέλετε να διαγράψετε την αποθήκη %s ? +PersonalStock=Προσωπικό απόθεμα %s +ThisWarehouseIsPersonalStock=Αυτή η αποθήκη αποτελεί προσωπική απόθεμα του %s %s +SelectWarehouseForStockDecrease=Επιλογή αποθήκης που θα χρησιμοποιηθεί για μείωση αποθεμάτων +SelectWarehouseForStockIncrease=Επιλογή αποθήκης που θα χρησιμοποιηθεί για αύξηση των αποθεμάτων +NoStockAction=Καμία ενέργεια στα αποθέματα DesiredStock=Επιθυμητό απόθεμα -DesiredStockDesc=Αυτό το ποσό μετοχών θα είναι η τιμή που χρησιμοποιείται για τη συμπλήρωση του αποθέματος με τη λειτουργία αναπλήρωσης. +DesiredStockDesc=Αυτό το ποσό αποθέματος θα είναι η αξία που χρησιμοποιείται για την πλήρωση του αποθέματος ανά δυνατότητα αναπλήρωσης. StockToBuy=Για να παραγγείλετε Replenishment=Αναπλήρωση -ReplenishmentOrders=Αναπλήρωση παραγγελίων +ReplenishmentOrders=Παραγγελίες αναπλήρωσης VirtualDiffersFromPhysical=Ανάλογα με τις επιλογές αύξησης/μείωσης αποθέματος, το φυσικό απόθεμα και το εικονικό απόθεμα (φυσικό απόθεμα + ανοιχτές παραγγελίες) ενδέχεται να διαφέρουν UseRealStockByDefault=Χρησιμοποιήστε πραγματικό απόθεμα, αντί για εικονικό απόθεμα, για τη δυνατότητα αναπλήρωσης ReplenishmentCalculation=Η ποσότητα παραγγελίας θα είναι (επιθυμητή ποσότητα - πραγματικό απόθεμα) αντί για (επιθυμητή ποσότητα - εικονικό απόθεμα) @@ -132,50 +132,50 @@ UsePhysicalStock=Χρησιμοποιήστε το φυσικό απόθεμα CurentSelectionMode=Τρέχουσα μέθοδος επιλογής CurentlyUsingVirtualStock=Εικονικό απόθεμα CurentlyUsingPhysicalStock=Φυσικό απόθεμα -RuleForStockReplenishment=Κανόνας για τα αποθέματα αναπλήρωσης -SelectProductWithNotNullQty=Επιλέξτε τουλάχιστον ένα προϊόν με μη τετραγωνικό μηδενικό και έναν προμηθευτή +RuleForStockReplenishment=Κανόνας για την αναπλήρωση των αποθεμάτων +SelectProductWithNotNullQty=Επιλέξτε τουλάχιστον ένα προϊόν με ποσότητα όχι μηδενική και προμηθευτή AlertOnly= Ειδοποιήσεις μόνο IncludeProductWithUndefinedAlerts = Συμπεριλάβετε επίσης αρνητικό απόθεμα για προϊόντα χωρίς καθορισμένη επιθυμητή ποσότητα, για να τα επαναφέρετε στο 0 -WarehouseForStockDecrease=Η αποθήκη %s να να χρησιμοποιηθεί για μείωση αποθεμάτων +WarehouseForStockDecrease=Η αποθήκη %s θα χρησιμοποιηθεί για μείωση αποθεμάτων WarehouseForStockIncrease=Η αποθήκη %s θα χρησιμοποιηθεί για την αύξηση των αποθεμάτων ForThisWarehouse=Για αυτή την αποθήκη -ReplenishmentStatusDesc=Πρόκειται για μια λίστα με όλα τα προϊόντα με αποθέματα χαμηλότερα από τα επιθυμητά αποθέματα (ή χαμηλότερα από την τιμή προειδοποίησης αν έχει επιλεγεί το πλαίσιο ελέγχου "Μόνο προειδοποίηση"). Χρησιμοποιώντας το πλαίσιο ελέγχου, μπορείτε να δημιουργήσετε εντολές αγοράς για να γεμίσετε τη διαφορά. -ReplenishmentStatusDescPerWarehouse=Εάν θέλετε μια αναπλήρωση με βάση την επιθυμητή ποσότητα που ορίζεται ανά αποθήκη, πρέπει να προσθέσετε ένα φίλτρο στην αποθήκη. -ReplenishmentOrdersDesc=Αυτή είναι μια λίστα όλων των ανοιχτών παραγγελιών αγοράς, συμπεριλαμβανομένων προκαθορισμένων προϊόντων. Μόνο ανοιχτές παραγγελίες με προκαθορισμένα προϊόντα, έτσι ώστε παραγγελίες που μπορεί να επηρεάσουν τα αποθέματα, είναι ορατές εδώ. +ReplenishmentStatusDesc=Αυτή είναι μια λίστα με όλα τα προϊόντα με απόθεμα χαμηλότερο από το επιθυμητό (ή χαμηλότερη από την τιμή ειδοποίησης εάν είναι επιλεγμένο το πλαίσιο ελέγχου "μόνο ειδοποίηση"). Χρησιμοποιώντας το πλαίσιο ελέγχου, μπορείτε να δημιουργήσετε εντολές αγοράς για να συμπληρώσετε τη διαφορά. +ReplenishmentStatusDescPerWarehouse=Εάν θέλετε μια αναπλήρωση με βάση την επιθυμητή ποσότητα που έχει οριστεί ανά αποθήκη, πρέπει να προσθέσετε ένα φίλτρο στην αποθήκη. +ReplenishmentOrdersDesc=Αυτή είναι μια λίστα με όλες τις ανοιχτές εντολές αγοράς συμπεριλαμβανομένων των προκαθορισμένων προϊόντων. Μόνο ανοιχτές παραγγελίες με προκαθορισμένα προϊόντα, επομένως οι παραγγελίες που ενδέχεται να επηρεάσουν τα αποθέματα, είναι ορατές εδώ. Replenishments=Αναπληρώσεις NbOfProductBeforePeriod=Ποσότητα του προϊόντος %s σε απόθεμα πριν από την επιλεγμένη περίοδο (< %s) -NbOfProductAfterPeriod=Ποσότητα του προϊόντος %s σε απόθεμα πριν από την επιλεγμένη περίοδο (> %s) +NbOfProductAfterPeriod=Ποσότητα προϊόντος %s σε απόθεμα μετά την επιλεγμένη περίοδο (> %s) MassMovement=Μαζική μετακίνηση -SelectProductInAndOutWareHouse=Επιλέξτε μια αποθήκη προέλευσης και μια αποθήκη-στόχο, ένα προϊόν και μια ποσότητα και, στη συνέχεια, κάντε κλικ στο "%s". Μόλις γίνει αυτό για όλες τις απαιτούμενες κινήσεις, κάντε κλικ στο "%s". -RecordMovement=Μεταφορά εγγραφών -ReceivingForSameOrder=Αποδείξεις για αυτή την παραγγελία -StockMovementRecorded=Οι κινήσεις των αποθεμάτων καταγράφονται -RuleForStockAvailability=Κανόνες σχετικά με τις απαιτήσεις του αποθέματος -StockMustBeEnoughForInvoice=Το επίπεδο αποθεμάτων πρέπει να είναι αρκετό για να προσθέσει το προϊόν / υπηρεσία στο τιμολόγιο (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προστίθεται μια γραμμή στο τιμολόγιο, ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή μετοχών) -StockMustBeEnoughForOrder=Το επίπεδο των αποθεμάτων πρέπει να είναι αρκετό για να προσθέσετε το προϊόν / την υπηρεσία στην παραγγελία (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προσθέτετε μια γραμμή σε παραγγελία ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή μετοχών) -StockMustBeEnoughForShipment= Το επίπεδο αποθεμάτων πρέπει να είναι αρκετό για να προστεθεί το προϊόν / η υπηρεσία στην αποστολή (ο έλεγχος γίνεται σε τρέχον πραγματικό απόθεμα κατά την προσθήκη μιας γραμμής στην αποστολή ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή μετοχών) +SelectProductInAndOutWareHouse=Επιλέξτε μια αποθήκη προέλευσης και μια αποθήκη προορισμού, ένα προϊόν και μια ποσότητα και, στη συνέχεια, κάντε κλικ στο "%s". Μόλις γίνει αυτό για όλες τις απαιτούμενες κινήσεις, κάντε κλικ στο "%s". +RecordMovement=Εγγραφή μεταφοράς +ReceivingForSameOrder=Παραλαβές για αυτήν την παραγγελία +StockMovementRecorded=Καταγράφηκαν κινήσεις μετοχών +RuleForStockAvailability=Κανόνες σχετικά με τις απαιτήσεις στο απόθεμα +StockMustBeEnoughForInvoice=Το επίπεδο αποθεμάτων πρέπει να είναι αρκετό για να προσθέσει το προϊόν / υπηρεσία στο τιμολόγιο (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προστίθεται μια γραμμή στο τιμολόγιο, ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή αποθέματος) +StockMustBeEnoughForOrder=Το επίπεδο των αποθεμάτων πρέπει να είναι αρκετό για να προσθέσετε το προϊόν / την υπηρεσία στην παραγγελία (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προσθέτετε μια γραμμή σε παραγγελία ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή αποθέματος) +StockMustBeEnoughForShipment= Το επίπεδο αποθέματος πρέπει να είναι αρκετό για την προσθήκη προϊόντος/υπηρεσίας στην αποστολή (ο έλεγχος πραγματοποιείται στο τρέχον πραγματικό απόθεμα κατά την προσθήκη γραμμής στην αποστολή, ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή αποθεμάτων) MovementLabel=Ετικέτα λογιστικής κίνησης -TypeMovement=Κατεύθυνση κίνησης -DateMovement=Ημερομηνία μετακίνησης +TypeMovement=Τύπος κίνησης +DateMovement=Ημερομηνία κίνησης InventoryCode=Λογιστική κίνηση ή κωδικός απογραφής IsInPackage=Περιεχόμενα συσκευασίας WarehouseAllowNegativeTransfer=Το απόθεμα μπορεί να είναι αρνητικό -qtyToTranferIsNotEnough=Δεν έχετε αρκετό απόθεμα από την αποθήκη προέλευσης και η ρύθμισή σας δεν επιτρέπει αρνητικά αποθέματα. -qtyToTranferLotIsNotEnough=Δεν έχετε αρκετό απόθεμα, για αυτόν τον αριθμό παρτίδας, από την αποθήκη προέλευσης και οι ρυθμίσεις δεν επιτρέπουν αρνητικά αποθέματα (Ποσότητα για το προϊόν '%s' με παρτίδα '%s' είναι %s στην αποθήκη '%s'). +qtyToTranferIsNotEnough=Δεν έχετε αρκετό απόθεμα στην αποθήκη προέλευσης και η ρύθμισή σας δεν επιτρέπει αρνητικά αποθέματα. +qtyToTranferLotIsNotEnough=Δεν έχετε αρκετό απόθεμα, για αυτόν τον αριθμό παρτίδας, από την αποθήκη προέλευσης και η ρύθμισή σας δεν επιτρέπει αρνητικά αποθέματα (ποσότητα για το προϊόν '%s' με την παρτίδα '%s' είναι %s στην αποθήκη '%s). ShowWarehouse=Εμφάνιση αποθήκης MovementCorrectStock=Διόρθωση αποθέματος για το προϊόν %s -MovementTransferStock=Μετακίνηση του προϊόντος %s σε μια άλλη αποθήκη -InventoryCodeShort=Inv./Mov. κώδικας -NoPendingReceptionOnSupplierOrder=Δεν υπάρχει εκκρεμότητα λήψης λόγω ανοικτής εντολής αγοράς +MovementTransferStock=Μετακίνηση αποθέματος του προϊόντος %s σε μια άλλη αποθήκη +InventoryCodeShort=Κωδικός Αποθεμ./Κιν. +NoPendingReceptionOnSupplierOrder=Δεν υπάρχει αναμενόμενη παραλαβή λόγω ανοικτής εντολής αγοράς ThisSerialAlreadyExistWithDifferentDate=Αυτός ο αριθμός παρτίδας / αύξων αριθμός ( %s ) υπάρχει ήδη αλλά με διαφορετική ημερομηνία κατανάλωσης ή πώλησης (βρέθηκε %s αλλά εισάγετε %s ). -OpenAnyMovement=Άνοιξε (όλες οι κινήσεις) +OpenAnyMovement=Ανοιχτό (όλες οι κινήσεις) OpenInternal=Ανοιχτό (μόνο εσωτερική κίνηση) -UseDispatchStatus=Χρησιμοποιήστε την κατάσταση αποστολής (έγκριση / απόρριψη) για τις σειρές προϊόντων κατά τη λήψη της παραγγελίας αγοράς -OptionMULTIPRICESIsOn=Η επιλογή "διάφορες τιμές ανά τμήμα" είναι ενεργοποιημένη. Σημαίνει ότι ένα προϊόν έχει πολλές τιμές πώλησης, ώστε να μην μπορεί να υπολογιστεί η τιμή πώλησης -ProductStockWarehouseCreated=Το όριο αποθεμάτων για την ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα που δημιουργήθηκε σωστά -ProductStockWarehouseUpdated=Το όριο αποθεμάτων για την ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα ενημερώνονται σωστά -ProductStockWarehouseDeleted=Το όριο αποθεμάτων για προειδοποίηση και το επιθυμητό βέλτιστο απόθεμα διαγράφονται σωστά -AddNewProductStockWarehouse=Ορίστε νέο όριο για την προειδοποίηση και το επιθυμητό βέλτιστο απόθεμα +UseDispatchStatus=Χρησιμοποιήστε μια κατάσταση αποστολής (έγκριση/απόρριψη) για γραμμές προϊόντων κατά την παραλαβή παραγγελίας +OptionMULTIPRICESIsOn=Η επιλογή "πολλές τιμές ανά τμήμα" είναι ενεργοποιημένη. Σημαίνει ότι ένα προϊόν έχει πολλές τιμές πώλησης, επομένως η αξία για την πώληση δεν μπορεί να υπολογιστεί +ProductStockWarehouseCreated=Όριο αποθέματος για ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα δημιουργήθηκαν σωστά +ProductStockWarehouseUpdated=Το όριο αποθέματος για ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα ενημερώθηκαν σωστά +ProductStockWarehouseDeleted=Το όριο αποθέματος για ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα διαγράφηκαν σωστά +AddNewProductStockWarehouse=Ορίστε νέο όριο για ειδοποίηση και επιθυμητό βέλτιστο απόθεμα AddStockLocationLine=Μειώστε την ποσότητα και μετά κάντε κλικ για να χωρίσετε τη γραμμή InventoryDate=Ημερομηνία απογραφής Inventories=Απογραφές @@ -265,6 +265,7 @@ ProductBarcodeDoesNotExist=Προϊόν με barcode δεν υπάρχει WarehouseId=ID αποθήκης WarehouseRef=Αναφορά Αποθήκης SaveQtyFirst=Αποθηκεύστε πρώτα τις πραγματικές ποσότητες που έχουν απογραφεί, πριν ζητήσετε τη δημιουργία της κίνησης των αποθεμάτων. +ToStart=Έναρξη InventoryStartedShort=Σε εξέλιξη ErrorOnElementsInventory=Η λειτουργία ακυρώθηκε για τον ακόλουθο λόγο: ErrorCantFindCodeInInventory=Δεν είναι δυνατή η εύρεση του παρακάτω κωδικού στο απόθεμα @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=Επιτυχία !! Η ποσότητα προσ StockChangeDisabled=Η αλλαγή στο απόθεμα είναι απενεργοποιημένη NoWarehouseDefinedForTerminal=Δεν έχει καθοριστεί αποθήκη για το τερματικό ClearQtys=Καθαρίστε όλες τις ποσότητες +ModuleStockTransferName=Προηγμένη Μεταφορά Αποθεμάτων +ModuleStockTransferDesc=Προηγμένη διαχείριση Μεταφοράς Αποθεμάτων, με δημιουργία φύλλου μεταφοράς +StockTransferNew=Νέα μεταφορά αποθέματος +StockTransferList=Λίστα μεταφοράς αποθεμάτων +ConfirmValidateStockTransfer=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν τη μεταφορά αποθεμάτων με αναφορά %s ; +ConfirmDestock=Μείωση αποθεμάτων με τη μεταφορά %s +ConfirmDestockCancel=Ακύρωση μείωσης αποθεμάτων με τη μεταφορά %s +DestockAllProduct=Μείωση των αποθεμάτων +DestockAllProductCancel=Ακύρωση μείωσης των αποθεμάτων +ConfirmAddStock=Αυξήστε τα αποθέματα με τη μεταφορά %s +ConfirmAddStockCancel=Ακύρωση αύξησης αποθεμάτων με τη μεταφορά %s +AddStockAllProduct=Αύξηση αποθεμάτων +AddStockAllProductCancel=Ακύρωση αύξησης των αποθεμάτων +DatePrevueDepart=Προβλεπόμενη ημερομηνία αναχώρησης +DateReelleDepart=Πραγματική ημερομηνία αναχώρησης +DatePrevueArrivee=Προβλεπόμενη ημερομηνία άφιξης +DateReelleArrivee=Πραγματική ημερομηνία άφιξης +HelpWarehouseStockTransferSource=Εάν οριστεί αυτή η αποθήκη, μόνο η ίδια και οι θυγατρικές της θα είναι διαθέσιμες ως αποθήκες πηγής +HelpWarehouseStockTransferDestination=Εάν οριστεί αυτή η αποθήκη, μόνο η ίδια και οι θυγατρικές της θα είναι διαθέσιμες ως αποθήκες προορισμού +LeadTimeForWarning=Χρόνος παράδοσης πριν από την ειδοποίηση (σε ημέρες) +TypeContact_stocktransfer_internal_STFROM=Αποστολέας μεταφοράς αποθεμάτων +TypeContact_stocktransfer_internal_STDEST=Αποδέκτης μεταφοράς αποθεμάτων +TypeContact_stocktransfer_internal_STRESP=Υπεύθυνος μεταφοράς αποθεμάτων +StockTransferSheet=Φύλλο μεταφοράς αποθεμάτων +StockTransferSheetProforma=Φύλλο Proforma μεταφοράς αποθεμάτων +StockTransferDecrementation=Μείωση των αποθηκών πηγής +StockTransferIncrementation=Αύξηση των αποθηκών προορισμού +StockTransferDecrementationCancel=Ακύρωση μείωσης αποθηκών πηγής +StockTransferIncrementationCancel=Ακύρωση αύξησης αποθηκών προορισμού +StockStransferDecremented=Οι αποθήκες πηγών μειώθηκαν +StockStransferDecrementedCancel=Η μείωση των αποθηκών πηγής ακυρώθηκε +StockStransferIncremented=Κλειστό - Τα αποθέματα μεταφέρθηκαν +StockStransferIncrementedShort=Τα αποθέματα μεταφέρθηκαν +StockStransferIncrementedShortCancel=Ακυρώθηκε η αύξηση των αποθηκών προορισμού +StockTransferNoBatchForProduct=Το προϊόν %s δεν χρησιμοποιεί παρτίδα, διαγράψτε την παρτίδα στη γραμμή και δοκιμάστε ξανά +StockTransferSetup = Διαμόρφωση ενότητας Μεταφοράς Αποθεμάτων +Settings=Ρυθμίσεις +StockTransferSetupPage = Σελίδα διαμόρφωσης ενότητας μεταφοράς αποθεμάτων +StockTransferRightRead=Ανάγνωση μεταφορών αποθεμάτων +StockTransferRightCreateUpdate=Δημιουργία/Ενημέρωση μεταφορών μετοχών +StockTransferRightDelete=Διαγραφή μεταφορών αποθεμάτων +BatchNotFound=Δεν βρέθηκε παρτίδα / σειριακός αριθμός για αυτό το προϊόν diff --git a/htdocs/langs/el_GR/stripe.lang b/htdocs/langs/el_GR/stripe.lang index bb5e5358709..8cd53bcd79e 100644 --- a/htdocs/langs/el_GR/stripe.lang +++ b/htdocs/langs/el_GR/stripe.lang @@ -1,71 +1,72 @@ # Dolibarr language file - Source file is en_US - stripe -StripeSetup=Ρύθμιση μονάδας ταινιών +StripeSetup=Ρύθμιση ενότητας Stripe StripeDesc=Προσφέρετε στους πελάτες σας μια σελίδα διαδικτυακών πληρωμών για πληρωμές με πιστωτικές/χρεωστικές κάρτες μέσω του Stripe . Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψετε στους πελάτες σας να πραγματοποιούν πληρωμές για συγκεκριμένο σκοπό ή για πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, παραγγελία, ...) StripeOrCBDoPayment=Πληρώστε με πιστωτική κάρτα ή Stripe -FollowingUrlAreAvailableToMakePayments=Μετά από τις διευθύνσεις URL είναι διαθέσιμοι να προσφέρουν μια σελίδα σε έναν πελάτη να προβεί σε πληρωμή σε Dolibarr αντικείμενα -PaymentForm=Έντυπο πληρωμής -WelcomeOnPaymentPage=Καλώς ήλθατε στην ηλεκτρονική υπηρεσία πληρωμών μας +FollowingUrlAreAvailableToMakePayments=Οι ακόλουθες διευθύνσεις URL είναι διαθέσιμες για να προσφέρουν σε έναν πελάτη μια σελίδα για να πραγματοποιήσει μια πληρωμή σε αντικείμενα του Dolibarr +PaymentForm=Φόρμα πληρωμής +WelcomeOnPaymentPage=Καλώς ήλθατε στην υπηρεσία διαδικτυακών πληρωμών μας ThisScreenAllowsYouToPay=Αυτή η οθόνη σας επιτρέπει να κάνετε μια online πληρωμή %s. -ThisIsInformationOnPayment=Πρόκειται για πληροφορίες σχετικά με την πληρωμή να γίνει -ToComplete=Για να ολοκληρώσετε +ThisIsInformationOnPayment=Αυτές είναι πληροφορίες σχετικά με την πληρωμή θέλετε να κάνετε +ToComplete=Προς ολοκλήρωση YourEMail=E-mail για να λάβετε επιβεβαίωση της πληρωμής STRIPE_PAYONLINE_SENDEMAIL=Ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου μετά από απόπειρα πληρωμής (επιτυχία ή αποτυχία) Creditor=Πιστωτής PaymentCode=Κωδικός Πληρωμής -StripeDoPayment=Πληρώστε με λωρίδα -YouWillBeRedirectedOnStripe=Θα μεταφερθείτε στη σελίδα Ασφαλής σελίδα Stripe για να εισαγάγετε τις πληροφορίες της πιστωτικής σας κάρτας -Continue=Επόμενη -ToOfferALinkForOnlinePayment=URL για %s πληρωμής -ToOfferALinkForOnlinePaymentOnOrder=URL για την προσφορά %sμιας online πληρωμής σελίδας, για μια παραγγελία πώλησης -ToOfferALinkForOnlinePaymentOnInvoice=URL για την προσφορά %s μιας online πληρωμής, για ένα τιμολόγιο πελάτη -ToOfferALinkForOnlinePaymentOnContractLine=URL για την προσφορά %s μιας online πληρωμής, για μια γραμμή συμβολαίου -ToOfferALinkForOnlinePaymentOnFreeAmount=URL για την προσφορά%s μας online πληρωμής οποιουδήποτε ποσού χωρίς υπάρχον αντικείμενο -ToOfferALinkForOnlinePaymentOnMemberSubscription=URL για την προσφορά %s μιας απευθείας ηλεκτρονικής πληρωμής, για μια συνδρομή μέλους -ToOfferALinkForOnlinePaymentOnDonation=URL για την προσφορά%s μιας online πληρωμής, για την πληρωμή μιας δωρεάς -YouCanAddTagOnUrl=Μπορείτε επίσης να προσθέσετε την παράμετρο url &tag=value σε ένα από αυτά τα URL (απαιτείται μόνο για την ελεύθερη πληρωμής) για να προσθέσετε το δικό σας σχόλιο ετικέτα πληρωμής. .
    Για το URL πληρωμών χωρίς να υπάρχει αντικείμενο, μπορείτε να προσθέσετε την παράμετρο &noidempotency=1 όπως το ίδιο σύνδεσμο με το ίδιο tag μπορεί να χρησιμοποιηθεί πολλές φορές (μερικές πληρωμές μπορούν να οριοθετούνται με όριο πληρωμης το 1 για κάθε διαφορετικό σύνδεσμο χωρίς παραμέτρους) +StripeDoPayment=Πληρώστε με Stripe +YouWillBeRedirectedOnStripe=Θα ανακατευθυνθείτε στην ασφαλή σελίδα Stripe για να εισάγετε τα στοιχεία της πιστωτικής σας κάρτας +Continue=Επόμενο +ToOfferALinkForOnlinePayment=URL για πληρωμή %s +ToOfferALinkForOnlinePaymentOnOrder=URL για να παρέχετε μιας σελίδα online πληρωμής %s για μια παραγγελία πώλησης +ToOfferALinkForOnlinePaymentOnInvoice=URL για να παρέχετε μιας σελίδα online πληρωμής %s για ένα τιμολόγιο πελάτη +ToOfferALinkForOnlinePaymentOnContractLine=URL για να παρέχετε μιας σελίδα online πληρωμής %sγια μια γραμμή συμβολαίου +ToOfferALinkForOnlinePaymentOnFreeAmount=URL για να παρέχετε μιας σελίδα online πληρωμής %s οποιουδήποτε ποσού χωρίς υπάρχον αντικείμενο +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL για να παρέχετε μιας σελίδα online πληρωμής %s για μια συνδρομή μέλους +ToOfferALinkForOnlinePaymentOnDonation=URL για να παρέχετε μιας σελίδα online πληρωμής%s για την πληρωμή μιας δωρεάς +YouCanAddTagOnUrl=Μπορείτε επίσης να προσθέσετε την παράμετρο url &tag= τιμή σε οποιαδήποτε από αυτές τις διευθύνσεις URL (υποχρεωτικό μόνο για πληρωμή που δεν συνδέεται με κάποιο αντικείμενο) για να προσθέσετε το δικό σας σχόλιο tag.
    Για τη διεύθυνση URL των πληρωμών χωρίς υπάρχον αντικείμενο, μπορείτε επίσης να προσθέσετε την παράμετρο &noidempotency=1 , ώστε ο ίδιος σύνδεσμος με την ίδια ετικέτα να μπορεί να χρησιμοποιηθεί πολλές φορές (κάποιος τρόπος πληρωμής μπορεί να περιορίσει την πληρωμή σε 1 για κάθε διαφορετικό σύνδεσμο χωρίς αυτή την παραμετρο) SetupStripeToHavePaymentCreatedAutomatically=Ρυθμίστε το Stripe με url %s για να δημιουργηθεί αυτόματα πληρωμή όταν επικυρωθεί από το Stripe. AccountParameter=Παράμετροι λογαριασμού UsageParameter=Παράμετροι χρήσης -InformationToFindParameters=Βοήθεια για να βρείτε %s τα στοιχεία του λογαριασμού σας +InformationToFindParameters=Βοήθεια για να βρείτε τα στοιχεία του λογαριασμού σας %s STRIPE_CGI_URL_V2=Διεύθυνση Url της ενότητας CGI Stripe για πληρωμή -CSSUrlForPaymentForm=Url CSS φύλλο στυλ για το έντυπο πληρωμής -NewStripePaymentReceived=Πληρωμή της νέας ταινίας Stripe -NewStripePaymentFailed=Η πληρωμή του νέου Stripe προσπάθησε αλλά απέτυχε +CSSUrlForPaymentForm=URL CSS style sheet για φόρμα πληρωμής +NewStripePaymentReceived=Νέα πληρωμή Stripe ελήφθη +NewStripePaymentFailed=Νέα πληρωμή Stripe απέτυχε FailedToChargeCard=Αποτυχία χρέωσης κάρτας -STRIPE_TEST_SECRET_KEY=Μυστικό κλειδί δοκιμής -STRIPE_TEST_PUBLISHABLE_KEY=Κλειδί ελέγχου δοκιμαστικής έκδοσης -STRIPE_TEST_WEBHOOK_KEY=Πλήκτρο δοκιμής Webhook -STRIPE_LIVE_SECRET_KEY=Μυστικό ζωντανό κλειδί -STRIPE_LIVE_PUBLISHABLE_KEY=Δημοσιεύσιμο ζωντανό κλειδί -STRIPE_LIVE_WEBHOOK_KEY=Ζωντανό κλειδί Webhook -ONLINE_PAYMENT_WAREHOUSE=Το απόθεμα που χρησιμοποιείται για μείωση μετοχών όταν γίνεται η ηλεκτρονική πληρωμή
    (TODO Όταν η επιλογή για μείωση του αποθέματος πραγματοποιείται με μια ενέργεια στο τιμολόγιο και η ηλεκτρονική πληρωμή παράγει το τιμολόγιο;) -StripeLiveEnabled=Η λειτουργία Stripe ζωντανά είναι ενεργοποιημένη (διαφορετικά η λειτουργία test / sandbox) +STRIPE_TEST_SECRET_KEY=Δοκιμή μυστικού κλειδιού +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_TEST_WEBHOOK_KEY=Webhook test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +STRIPE_LIVE_WEBHOOK_KEY=Webhook live key +ONLINE_PAYMENT_WAREHOUSE=Απόθεμα προς χρήση για μείωση αποθεμάτων όταν πραγματοποιείται η ηλεκτρονική πληρωμή
    (TODO Όταν η επιλογή μείωσης αποθεμάτων γίνεται σε μια ενέργεια στο τιμολόγιο και η ηλεκτρονική πληρωμή δημιουργεί από μόνη της το τιμολόγιο;) +StripeLiveEnabled=Η λειτουργία Stripe live είναι ενεργοποιημένη (διαφορετικά η λειτουργία test / sandbox) StripeImportPayment=Εισαγωγή πληρωμών Stripe -ExampleOfTestCreditCard=Παράδειγμα πιστωτικής κάρτας για δοκιμή: %s => έγκυρο, %s => σφάλμα CVC, %s => έληξε, %s => αποτυχία χρέωσης -StripeGateways=Πύλες ταινιών +ExampleOfTestCreditCard=Παράδειγμα πιστωτικής κάρτας για δοκιμή: %s => έγκυρο, %s => σφάλμα CVC, %s => έληξε, %s => η χρέωση αποτυγχάνει +StripeGateways=Stripe gateways OAUTH_STRIPE_TEST_ID=Το αναγνωριστικό πελάτη Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=Το αναγνωριστικό πελάτη Stripe Connect (ca _...) -BankAccountForBankTransfer=Τραπεζικός λογαριασμός για πληρωμές αμοιβαίων κεφαλαίων +BankAccountForBankTransfer=Τραπεζικός λογαριασμός για πληρωμές StripeAccount=Λογαριασμός Stripe StripeChargeList=Λίστα χρεώσεων Stripe StripeTransactionList=Κατάλογος των συναλλαγών Stripe -StripeCustomerId=Στοιχείο id του πελάτη -StripePaymentModes=Λειτουργίες πληρωμής με λωρίδες +StripeCustomerId=Αναγνωριστικό πελάτη Sripe +StripePaymentModes=Λειτουργίες πληρωμής Stripe LocalID=Τοπικό αναγνωριστικό -StripeID=Αναγνωριστικό ταινίας -NameOnCard=όνομα στην κάρτα +StripeID=Αναγνωριστικό Stripe +NameOnCard=Ονοματεπώνυμο κατόχου κάρτας CardNumber=Αριθμός κάρτας ExpiryDate=Ημερομηνία λήξης -CVN=CVN +CVN=CVV DeleteACard=Διαγραφή κάρτας -ConfirmDeleteCard=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την πιστωτική ή χρεωστική κάρτα; +ConfirmDeleteCard=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την πιστωτική ή χρεωστική κάρτα; CreateCustomerOnStripe=Δημιουργία πελάτη στο Stripe CreateCardOnStripe=Δημιουργία κάρτας στο Stripe ShowInStripe=Εμφάνιση στο Stripe -StripeUserAccountForActions=Λογαριασμός χρήστη που θα χρησιμοποιηθεί για την ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου ορισμένων συμβάντων Stripe (πληρωμές Stripe) +StripeUserAccountForActions=Λογαριασμός χρήστη που θα χρησιμοποιηθεί για την ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου ορισμένων ενεργειών Stripe (πληρωμές Stripe) StripePayoutList=Λίστα των πληρωμών Stripe -ToOfferALinkForTestWebhook=Σύνδεση με τη ρύθμιση Stripe WebHook για κλήση του IPN (λειτουργία δοκιμής) -ToOfferALinkForLiveWebhook=Σύνδεση στη ρύθμιση Stripe WebHook για κλήση του IPN (ζωντανή λειτουργία) +ToOfferALinkForTestWebhook=Σύνδεσμος για τη ρύθμιση του Stripe WebHook για κλήση του IPN (δοκιμαστική λειτουργία) +ToOfferALinkForLiveWebhook=Σύνδεσμος για τη ρύθμιση του Stripe WebHook για κλήση του IPN (κανονική λειτουργία) PaymentWillBeRecordedForNextPeriod=Η πληρωμή θα καταγραφεί για την επόμενη περίοδο. ClickHereToTryAgain=Κάντε κλικ εδώ για να δοκιμάσετε ξανά ... -CreationOfPaymentModeMustBeDoneFromStripeInterface=Λόγω των κανόνων ισχυρού ελέγχου ταυτότητας πελατών, η δημιουργία κάρτας πρέπει να γίνει από την υποστηριξη του Stripe. Μπορείτε να κάνετε κλικ εδώ για να ενεργοποιήσετε την εγγραφή πελατών Stripe: %s +CreationOfPaymentModeMustBeDoneFromStripeInterface=Λόγω των κανόνων ισχυρού ελέγχου ταυτότητας πελατών, η δημιουργία κάρτας πρέπει να γίνει από την Stripe. Μπορείτε να κάνετε κλικ εδώ για να ενεργοποιήσετε την εγγραφή πελατών Stripe: %s +TERMINAL_LOCATION=Τοποθεσία (διεύθυνση) για τερματικά diff --git a/htdocs/langs/el_GR/supplier_proposal.lang b/htdocs/langs/el_GR/supplier_proposal.lang index 20698923b63..84ef2b03e77 100644 --- a/htdocs/langs/el_GR/supplier_proposal.lang +++ b/htdocs/langs/el_GR/supplier_proposal.lang @@ -1,58 +1,58 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposal=Προτάσεις εμπορικών πωλητών +SupplierProposal=Προσφορές προμηθευτών supplier_proposalDESC=Διαχειριστείτε τα αιτήματα των τιμών προς τους προμηθευτές -SupplierProposalNew=Νέα αίτηση τιμής -CommRequest=Αίτηση τιμής +SupplierProposalNew=Νέο αίτημα τιμής +CommRequest=Αίτημα τιμής CommRequests=Αιτήματα τιμών SearchRequest=Αναζήτηση αιτήματος -DraftRequests=Πρόχειρα αιτήματα -SupplierProposalsDraft=Σχέδια προτάσεων πωλητών -LastModifiedRequests=Τελευταίες %s τροποποιημένες αιτήσεις τιμών -RequestsOpened=Ανοιχτές αιτήσεις τιμών -SupplierProposalArea=Τομέας προτάσεων πωλητών -SupplierProposalShort=Πρόταση πωλητή -SupplierProposals=Προτάσεις πωλητών -SupplierProposalsShort=Προτάσεις πωλητών -AskPrice=Αίτηση τιμής +DraftRequests=Προσχέδια αιτημάτων +SupplierProposalsDraft=Προσχέδια προσφορών προμηθευτών +LastModifiedRequests=Τελευταία %s τροποποιημένα αιτήματα τιμών +RequestsOpened=Ανοιχτά αιτήματα τιμών +SupplierProposalArea=Τομέας προσφορών προμηθευτών +SupplierProposalShort=Προσφορά προμηθευτή +SupplierProposals=Προσφορές προμηθευτών +SupplierProposalsShort=Προσφορές προμηθευτών +AskPrice=Αίτημα τιμής NewAskPrice=Νέα αίτηση τιμής ShowSupplierProposal=Προβολή αίτησης τιμής AddSupplierProposal=Δημιουργία μίας αίτησης τιμής SupplierProposalRefFourn=Αναφορά προμηθευτή SupplierProposalDate=Ημερομηνία παράδοσης -SupplierProposalRefFournNotice=Πριν κλείσετε το "Αποδεκτό", σκεφτείτε να κατανοήσετε τις αναφορές των προμηθευτών. +SupplierProposalRefFournNotice=Πριν κλείσετε σε "Αποδεκτή", μελετήστε τις αναφορές προμηθευτών. ConfirmValidateAsk=Είστε σίγουροι ότι θέλετε να επικυρώσετε την αίτηση τιμής στο όνομα %s ; DeleteAsk=Διαγραφή αίτησης ValidateAsk=Επικύρωση αίτησης -SupplierProposalStatusDraft=Πρόχειρο (Χρειάζεται επικύρωση) +SupplierProposalStatusDraft=Προσχέδιο (Χρειάζεται επικύρωση) SupplierProposalStatusValidated=Επικυρωμένη (η αίτηση είναι ανοικτή) -SupplierProposalStatusClosed=Κλειστό +SupplierProposalStatusClosed=Κλειστή SupplierProposalStatusSigned=Αποδεκτή SupplierProposalStatusNotSigned=Απορρίφθηκε -SupplierProposalStatusDraftShort=Πρόχειρο +SupplierProposalStatusDraftShort=Προσχέδιο SupplierProposalStatusValidatedShort=Επικυρώθηκε -SupplierProposalStatusClosedShort=Κλειστό +SupplierProposalStatusClosedShort=Κλειστή SupplierProposalStatusSignedShort=Αποδεκτή -SupplierProposalStatusNotSignedShort=Αρνήθηκε -CopyAskFrom=Δημιουργήστε ένα αίτημα τιμής, αντιγράφοντας ένα υπάρχον αίτημα +SupplierProposalStatusNotSignedShort=Απορρίφθηκε +CopyAskFrom=Δημιουργήστε ένα αίτημα τιμής αντιγράφοντας ένα υπάρχον αίτημα CreateEmptyAsk=Δημιουργία κενής αίτησης τιμής -ConfirmCloneAsk=Είστε σίγουροι πως θέλετε να κλωνοποιήσετε την αίτηση τιμής %s; -ConfirmReOpenAsk=Είστε σίγουροι πως θέλετε να ξαναανοίξετε την αίτηση τιμής %s; +ConfirmCloneAsk=Είστε σίγουροι πως θέλετε να αντιγράψετε την αίτηση τιμής %s; +ConfirmReOpenAsk=Είστε βέβαιοι ότι θέλετε να ανοίξετε πάλι την αίτηση τιμής %s ; SendAskByMail=Αποστολή αίτησης τιμής με email -SendAskRef=Αποστέλεται η αίτηση τιμής %s -SupplierProposalCard=Ζητήστε κάρτα +SendAskRef=Αποστολή της αίτησης τιμής %s +SupplierProposalCard=Καρτέλα αιτήσεων ConfirmDeleteAsk=Είστε σίγουροι πως θέλετε να διαγράψετε την αίτηση τιμής %s; -ActionsOnSupplierProposal=Εκδηλώσεις σχετικά με την αίτηση τιμής +ActionsOnSupplierProposal=Ενέργειες κατόπιν αιτήσεως τιμής DocModelAuroreDescription=Ένα πλήρες μοντέλο αίτησης τιμής (logo. ..) CommercialAsk=Αίτηση τιμής -DefaultModelSupplierProposalCreate=Δημιουργία προεπιλεγμένων μοντέλων +DefaultModelSupplierProposalCreate=Δημιουργία προεπιλεγμένου μοντέλου DefaultModelSupplierProposalToBill=Προκαθορισμένο πρότυπο κατά το κλείσιμο αιτήματος τιμής (αποδεκτό) DefaultModelSupplierProposalClosed=Προκαθορισμένο πρότυπο κατά το κλείσιμο αίτησης τιμής (απορρίφθηκε) -ListOfSupplierProposals=Λίστα αιτημάτων για προτάσεις πωλητών -ListSupplierProposalsAssociatedProject=Κατάλογος προτάσεων πωλητών που σχετίζονται με το έργο -SupplierProposalsToClose=Προτάσεις πωλητών να κλείσουν -SupplierProposalsToProcess=Προτάσεις πωλητών για επεξεργασία -LastSupplierProposals=Τελευταία αιτήματα τιμών %s +ListOfSupplierProposals=Λίστα αιτημάτων προσφορών προμηθευτή +ListSupplierProposalsAssociatedProject=Λίστα προσφορών προμηθευτών που σχετίζονται με το έργο +SupplierProposalsToClose=Προσφορές προμηθευτών προς κλείσιμο +SupplierProposalsToProcess=Προσφορές προμηθευτών προς επεξεργασία +LastSupplierProposals=Τελευταίες %s αιτήσεις τιμών AllPriceRequests=Όλες οι αιτήσεις -TypeContact_supplier_proposal_external_SHIPPING=Στοιχεία επικοινωνίας προμηθευτή για παράδοση -TypeContact_supplier_proposal_external_BILLING=Στοιχεία επικοινωνίας προμηθευτή για τιμολόγηση -TypeContact_supplier_proposal_external_SERVICE=Εκπρόσωπος που παρακολουθεί την Προσφορά +TypeContact_supplier_proposal_external_SHIPPING=Επαφή προμηθευτή για παράδοση +TypeContact_supplier_proposal_external_BILLING=Επαφή προμηθευτή για τιμολόγηση +TypeContact_supplier_proposal_external_SERVICE=Εκπρόσωπος επικοινωνίας μετά την προσφορά diff --git a/htdocs/langs/el_GR/suppliers.lang b/htdocs/langs/el_GR/suppliers.lang index cb3d6df65bc..14de098199a 100644 --- a/htdocs/langs/el_GR/suppliers.lang +++ b/htdocs/langs/el_GR/suppliers.lang @@ -5,7 +5,7 @@ SupplierInvoices=Τιμολόγια προμηθευτή ShowSupplierInvoice=Εμφάνιση τιμολογίου προμηθευτή NewSupplier=Νέος προμηθευτής History=Ιστορικό -ListOfSuppliers=Κατάλογος προμηθευτών +ListOfSuppliers=Λίστα προμηθευτών ShowSupplier=Εμφάνιση προμηθευτή OrderDate=Ημερομηνία παραγγελίας BuyingPriceMin=Καλύτερη τιμή αγοράς @@ -19,7 +19,7 @@ SupplierPrices=Τιμές προμηθευτών ReferenceSupplierIsAlreadyAssociatedWithAProduct=Η συγκεκριμένη αναφορά αυτού του προμηθευτή έχει ήδη συσχετιστεί με ένα προϊόν: %s NoRecordedSuppliers=Δεν έχει καταγραφεί προμηθευτής SupplierPayment=Πληρωμή προμηθευτή -SuppliersArea=Τομεας προμηθευτή +SuppliersArea=Τομέας προμηθευτή RefSupplierShort=Κωδ. Προμηθευτή Availability=Διαθεσιμότητα ExportDataset_fournisseur_1=Τιμολόγια προμηθευτών και λεπτομέρειες τιμολογίων @@ -28,13 +28,13 @@ ExportDataset_fournisseur_3=Παραγγελίες αγοράς και λεπτ ApproveThisOrder=Έγκριση της παραγγελίας ConfirmApproveThisOrder=Είστε σίγουροι πως θέλετε να επικυρώσετε την παραγγελία %s; DenyingThisOrder=Απόρριψη παραγγελίας -ConfirmDenyingThisOrder=Είστε σίγουροι πως θέλετε να αρνηθείτε αυτή την παραγγελία %s; +ConfirmDenyingThisOrder=Είστε σίγουροι πως θέλετε να απορρίψετε αυτή την παραγγελία %s; ConfirmCancelThisOrder=Είστε σίγουροι πως θέλετε να ακυρώσετε αυτή την παραγγελία %s; AddSupplierOrder=Δημιουργία εντολής αγοράς AddSupplierInvoice=Δημιουργία τιμολογίου προμηθευτή -ListOfSupplierProductForSupplier=Κατάλογος προϊόντων και τιμών για τον προμηθευτή %s -SentToSuppliers=Απεσταλμένο στους προμηθευτές -ListOfSupplierOrders=Κατάλογος παραγγελιών αγοράς +ListOfSupplierProductForSupplier=Λίστα προϊόντων και τιμών για τον προμηθευτή %s +SentToSuppliers=Απεσταλμένες στους προμηθευτές +ListOfSupplierOrders=Λίστα παραγγελιών αγοράς MenuOrdersSupplierToBill=Παραγγελίες αγοράς προς τιμολόγηση NbDaysToDelivery=Καθυστέρηση παράδοσης (ημέρες) DescNbDaysToDelivery=Η μεγαλύτερη καθυστέρηση παράδοσης των προϊόντων από αυτήν την παραγγελία diff --git a/htdocs/langs/el_GR/ticket.lang b/htdocs/langs/el_GR/ticket.lang index c1bf370da4f..9cdf84ef881 100644 --- a/htdocs/langs/el_GR/ticket.lang +++ b/htdocs/langs/el_GR/ticket.lang @@ -19,7 +19,7 @@ # Module56000Name=Tickets -Module56000Desc=Σύστημα ticket για διαχείριση θεμάτων ή αιτήσεων +Module56000Desc=Σύστημα ticket για υποστήριξη αιτημάτων ή προβλημάτων Permission56001=Δείτε τα tickets Permission56002=Τροποποίηση tickets @@ -27,9 +27,10 @@ Permission56003=Διαγραφή tickets Permission56004=Διαχείριση tickets Permission56005=Δείτε τα tickets όλων των τρίτων (δεν ισχύει για εξωτερικούς χρήστες, πάντα περιορίζονται στο τρίτο μέρος από το οποίο εξαρτώνται) +Tickets=Tickets TicketDictType=Ticket - Τύποι TicketDictCategory=Ticket - Ομάδες -TicketDictSeverity=Ticket - Σημαντικότητα +TicketDictSeverity=Ticket - Κρισιμότητα TicketDictResolution=Ticket - Επίλυση TicketTypeShortCOM=Εμπορική ερώτηση @@ -41,7 +42,7 @@ TicketTypeShortPROJET=Έργο TicketTypeShortOTHER=Άλλο TicketSeverityShortLOW=Χαμηλή -TicketSeverityShortNORMAL=Κανονικός +TicketSeverityShortNORMAL=Κανονική TicketSeverityShortHIGH=Υψηλή TicketSeverityShortBLOCKING=Κρίσιμο, Blocking @@ -50,22 +51,22 @@ TicketCategoryShortOTHER=Άλλο ErrorBadEmailAddress=Το πεδίο '%s' είναι εσφαλμένο MenuTicketMyAssign=Τα tickets μου MenuTicketMyAssignNonClosed=Τα ανοιχτά tickets μου -MenuListNonClosed=Ανοίξτε ticket +MenuListNonClosed=Ανοιχτά tickets -TypeContact_ticket_internal_CONTRIBUTOR=Συνεισφέρων -TypeContact_ticket_internal_SUPPORTTEC=Χρήστης σε ανάθεση +TypeContact_ticket_internal_CONTRIBUTOR=Συνεργάτης +TypeContact_ticket_internal_SUPPORTTEC=Ανατεθειμένος χρήστης TypeContact_ticket_external_SUPPORTCLI=Επαφή πελάτη / παρακολούθηση συμβάντος -TypeContact_ticket_external_CONTRIBUTOR=Εξωτερικός συνεισφέρων +TypeContact_ticket_external_CONTRIBUTOR=Εξωτερικός συνεργάτης -OriginEmail=Αναφερόμενο Email +OriginEmail=Email πελάτη που άνοιξε το ticket Notify_TICKET_SENTBYMAIL=Στείλτε μήνυμα ticket μέσω email # Status Read=Έχει αναγνωστεί Assigned=Έχει ανατεθεί InProgress=Σε εξέλιξη -NeedMoreInformation=Σε αναμονή feedback από τον δημιουργό -NeedMoreInformationShort=Σε αναμονή feedback +NeedMoreInformation=Σε αναμονή περισσότερων πληροφοριών από τον χρήστη που άνοιξε το ticket +NeedMoreInformationShort=Σε αναμονή περισσότερων πληροφοριών Answered=Απαντήθηκε Waiting=Σε αναμονή SolvedClosed=Επιλύθηκε @@ -83,102 +84,104 @@ MailToSendTicketMessage=Για να στείλετε email από το μήνυ # # Admin page # -TicketSetup=Ρύθμιση μονάδας ticket +TicketSetup=Ρύθμιση ενότητας ticket TicketSettings=Ρυθμίσεις TicketSetupPage= -TicketPublicAccess=Μια δημόσια διεπαφή που δεν απαιτεί αναγνώριση είναι διαθέσιμη στην παρακάτω διεύθυνση URL +TicketPublicAccess=Μια δημόσια διεπαφή χωρίς υποχρέωση σύνδεσης είναι διαθέσιμη στην παρακάτω διεύθυνση URL TicketSetupDictionaries=Ο τύπος του ticket, ο βαθμός σοβαρότητας και οι αναλυτικοί κωδικοί ρυθμίζονται από λεξικά -TicketParamModule=Ρύθμιση μεταβλητής μονάδας -TicketParamMail=Ρύθμιση ηλεκτρονικού ταχυδρομείου -TicketEmailNotificationFrom=E-mail αποστολέα για απαντήσεις εισιτηρίων -TicketEmailNotificationFromHelp=E-mail αποστολέα για απαντήσεις εισιτηρίων που στάλθηκαν από το Dolibarr -TicketEmailNotificationTo=Ειδοποίηση για τη δημιουργία εισιτηρίου σε αυτήν τη διεύθυνση e-mail -TicketEmailNotificationToHelp=Εάν υπάρχει, αυτή η διεύθυνση e-mail θα ειδοποιηθεί για τη δημιουργία εισιτηρίου +TicketParamModule=Ρύθμιση μεταβλητών ενότητας +TicketParamMail=Ρύθμιση email +TicketEmailNotificationFrom=E-mail αποστολέα για ειδοποίηση σχετικά με τις απαντήσεις +TicketEmailNotificationFromHelp=E-mail αποστολέα που θα χρησιμοποιηθεί για την αποστολή του email ειδοποίησης όταν μια απάντηση παρέχεται από την υποστήριξη. Για παράδειγμα noreply@example.com +TicketEmailNotificationTo=Ειδοποίηση για τη δημιουργία ticket σε αυτήν τη διεύθυνση e-mail +TicketEmailNotificationToHelp=Εάν υπάρχει, αυτή η διεύθυνση e-mail θα ειδοποιηθεί για τη δημιουργία ticket TicketNewEmailBodyLabel=Μήνυμα κειμένου που αποστέλλεται μετά τη δημιουργία ενός ticket TicketNewEmailBodyHelp=Το κείμενο που καθορίζεται εδώ θα εισαχθεί στο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει τη δημιουργία νέου ticket από το δημόσιο περιβάλλον. Οι πληροφορίες σχετικά με τη διαβούλευση με το ticket προστίθενται αυτόματα. TicketParamPublicInterface=Ρύθμιση δημόσιας διεπαφής -TicketsEmailMustExist=Απαιτήστε μια υπάρχουσα διεύθυνση ηλεκτρονικού ταχυδρομείου για να δημιουργήσετε ένα ticket -TicketsEmailMustExistHelp=Στη δημόσια διεπαφή, η διεύθυνση ηλεκτρονικού ταχυδρομείου θα πρέπει ήδη να συμπληρωθεί στη βάση δεδομένων για να δημιουργηθεί ένα νέο ticket. +TicketsEmailMustExist=Απαιτείται μια υπάρχουσα διεύθυνση email για να δημιουργήσετε ένα ticket +TicketsEmailMustExistHelp=Στη δημόσια διεπαφή, η διεύθυνση email θα πρέπει να έχει ήδη συμπληρωθεί στη βάση δεδομένων για να δημιουργηθεί ένα νέο ticket. TicketCreateThirdPartyWithContactIfNotExist=Ζητήστε όνομα και όνομα εταιρείας για άγνωστα email. TicketCreateThirdPartyWithContactIfNotExistHelp=Ελέγξτε εάν υπάρχει τρίτο μέρος ή επαφή για το email που καταχωρίσατε. Εάν όχι, ζητήστε ένα όνομα και ένα όνομα εταιρείας για να δημιουργήσετε ένα τρίτο μέρος με επαφή. PublicInterface=Δημόσια διεπαφή -TicketUrlPublicInterfaceLabelAdmin=Εναλλακτική διεύθυνση URL για δημόσια διασύνδεση -TicketUrlPublicInterfaceHelpAdmin=Είναι δυνατόν να ορίσετε ένα ψευδώνυμο στον διακομιστή ιστού και έτσι να διαθέσετε τη δημόσια διασύνδεση με μια άλλη διεύθυνση URL (ο διακομιστής πρέπει να ενεργεί ως διακομιστής μεσολάβησης σε αυτήν τη νέα διεύθυνση URL) -TicketPublicInterfaceTextHomeLabelAdmin=Καλωσόρισμα κειμένου της δημόσιας διασύνδεσης +TicketUrlPublicInterfaceLabelAdmin=Εναλλακτική διεύθυνση URL για δημόσια διεπαφή +TicketUrlPublicInterfaceHelpAdmin=Είναι δυνατόν να ορίσετε ένα ψευδώνυμο(alias) στον διακομιστή ιστού και έτσι να διαθέσετε τη δημόσια διεπαφή με μια άλλη διεύθυνση URL (ο διακομιστής πρέπει να ενεργεί ως διακομιστής μεσολάβησης(proxy) σε αυτήν τη νέα διεύθυνση URL) +TicketPublicInterfaceTextHomeLabelAdmin=Κείμενο καλωσορίσματος της δημόσιας διεπαφής TicketPublicInterfaceTextHome=Μπορείτε να δημιουργήσετε ένα ticket υποστήριξης ή να προβάλετε ένα υπάρχον από το αναγνωριστικό παρακολούθησης ticket. -TicketPublicInterfaceTextHomeHelpAdmin=Το κείμενο που ορίζεται εδώ θα εμφανιστεί στην αρχική σελίδα της δημόσιας διασύνδεσης. +TicketPublicInterfaceTextHomeHelpAdmin=Το κείμενο που ορίζεται εδώ θα εμφανιστεί στην αρχική σελίδα της δημόσιας διεπαφής. TicketPublicInterfaceTopicLabelAdmin=Τίτλος διεπαφής -TicketPublicInterfaceTopicHelp=Αυτό το κείμενο θα εμφανιστεί ως ο τίτλος της δημόσιας διασύνδεσης. +TicketPublicInterfaceTopicHelp=Αυτό το κείμενο θα εμφανιστεί ως τίτλος της δημόσιας διεπαφής. TicketPublicInterfaceTextHelpMessageLabelAdmin=Βοήθεια κειμένου στην καταχώρηση μηνύματος TicketPublicInterfaceTextHelpMessageHelpAdmin=Αυτό το κείμενο θα εμφανιστεί πάνω από την περιοχή εισαγωγής μηνυμάτων του χρήστη. ExtraFieldsTicket=Επιπλέον χαρακτηριστικά -TicketCkEditorEmailNotActivated=Ο επεξεργαστής HTML δεν είναι ενεργοποιημένος. Καταχωρίστε το περιεχόμενο FCKEDITOR_ENABLE_MAIL σε 1 για να το αποκτήσετε. -TicketsDisableEmail=Μην αποστέλλετε μηνύματα ηλεκτρονικού ταχυδρομείου για τη δημιουργία εισιτηρίων ή την εγγραφή μηνυμάτων -TicketsDisableEmailHelp=Από προεπιλογή, αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργούνται νέα εισιτήρια ή μηνύματα. Ενεργοποιήστε αυτήν την επιλογή για να απενεργοποιήσετε όλες τις * ειδοποιήσεις ηλεκτρονικού ταχυδρομείου -TicketsLogEnableEmail=Ενεργοποιήστε το αρχείο καταγραφής μέσω ηλεκτρονικού ταχυδρομείου -TicketsLogEnableEmailHelp=Σε κάθε αλλαγή, θα σταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου ** σε κάθε επαφή ** που σχετίζεται με το εισιτήριο. -TicketParams=Params +TicketCkEditorEmailNotActivated=Ο επεξεργαστής HTML δεν είναι ενεργοποιημένος. Βάλτε το FCKEDITOR_ENABLE_MAIL σε 1 για να τον ενεργοποιήσετε +TicketsDisableEmail=Μην αποστέλλετε μηνύματα ηλεκτρονικού ταχυδρομείου για τη δημιουργία ticket ή την εγγραφή μηνυμάτων +TicketsDisableEmailHelp=Από προεπιλογή, αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργούνται νέα tickets ή μηνύματα. Ενεργοποιήστε αυτήν την επιλογή για να απενεργοποιήσετε *όλες τις * ειδοποιήσεις ηλεκτρονικού ταχυδρομείου +TicketsLogEnableEmail=Ενεργοποίηση καταγραφής μέσω email +TicketsLogEnableEmailHelp=Σε κάθε αλλαγή, θα σταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου ** σε κάθε επαφή ** που σχετίζεται με το ticket. +TicketParams=Παράμετροι TicketsShowModuleLogo=Εμφανίστε το λογότυπο της ενότητας στη δημόσια διεπαφή -TicketsShowModuleLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε τη λειτουργική μονάδα λογότυπου στις σελίδες της δημόσιας διασύνδεσης -TicketsShowCompanyLogo=Εμφανίστε το λογότυπο της εταιρείας στο δημόσιο περιβάλλον -TicketsShowCompanyLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε το λογότυπο της κύριας εταιρείας στις σελίδες της δημόσιας διασύνδεσης +TicketsShowModuleLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε την ενότητα λογότυπου στις σελίδες της δημόσιας διεπαφής +TicketsShowCompanyLogo=Εμφανίστε το λογότυπο της εταιρείας στη δημόσια διεπαφή +TicketsShowCompanyLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε το λογότυπο της κύριας εταιρείας στις σελίδες της δημόσιας διεπαφής TicketsEmailAlsoSendToMainAddress=Στείλτε επίσης μια ειδοποίηση στην κύρια διεύθυνση email TicketsEmailAlsoSendToMainAddressHelp=Ενεργοποιήστε αυτήν την επιλογή για να στείλετε επίσης ένα μήνυμα ηλεκτρονικού ταχυδρομείου στη διεύθυνση που ορίστηκε στη ρύθμιση "%s" (δείτε την καρτέλα "%s") TicketsLimitViewAssignedOnly=Περιορίστε την εμφάνιση σε tickets που έχουν εκχωρηθεί στον τρέχοντα χρήστη (δεν έχει εφαρμογή για εξωτερικούς χρήστες, πάντα περιορίζονται στο τρίτο μέρος από το οποίο εξαρτώνται) TicketsLimitViewAssignedOnlyHelp=Μόνο tickets που έχουν εκχωρηθεί στον τρέχοντα χρήστη θα είναι ορατά. Δεν ισχύει για χρήστη με δικαιώματα διαχείρισης tickets. -TicketsActivatePublicInterface=Ενεργοποιήστε τη δημόσια διεπαφή +TicketsActivatePublicInterface=Ενεργοποίηση δημόσιας διεπαφής TicketsActivatePublicInterfaceHelp=Η δημόσια διεπαφή επιτρέπει στους επισκέπτες να δημιουργούν tickets. TicketsAutoAssignTicket=Ορίστε αυτόματα τον χρήστη που δημιούργησε το ticket TicketsAutoAssignTicketHelp=Κατά τη δημιουργία ενός ticket, ο χρήστης μπορεί να αντιστοιχιστεί αυτόματα στο ticket. -TicketNumberingModules=Μονάδα αρίθμησης tickets -TicketsModelModule=Πρότυπο έγγραφο για tickets -TicketNotifyTiersAtCreation=Ειδοποιήστε τρίτο μέρος στη δημιουργία -TicketsDisableCustomerEmail=Πάντα να απενεργοποιείτε τα μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργείται ένα ticket από τη δημόσια διασύνδεση -TicketsPublicNotificationNewMessage=Στείλτε email όταν ένα νέο μήνυμα/σχόλιο προστεθεί σε ένα εισιτήριο -TicketsPublicNotificationNewMessageHelp=Αποστολή email όταν προστίθεται νέο μήνυμα από τη δημόσια διεπαφή (στον εκχωρημένο χρήστη ή το email ειδοποιήσεων προς (ενημέρωση) ή/και το email ειδοποιήσεων στο) -TicketPublicNotificationNewMessageDefaultEmail=email ειδοποιήσεων(ενημέρωση) -TicketPublicNotificationNewMessageDefaultEmailHelp=Στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου σε αυτήν τη διεύθυνση για ειδοποιήσεις κάθε νέο μηνύματος, εάν στο εισιτήριο δεν έχει εκχωρηθεί χρήστης ή εάν ο χρήστης δεν έχει κάποιο γνωστό email. -TicketsAutoReadTicket=Αυτόματη επισήμανση του εισιτηρίου ως αναγνωσμένου (όταν δημιουργείται από την υποστήριξη) -TicketsAutoReadTicketHelp=Αυτόματη επισήμανση του εισιτηρίου ως αναγνωσμένου όταν έχει δημιουργηθεί από την υποστήριξη. Όταν το εισιτήριο δημιουργείται από τη δημόσια διεπαφή, το εισιτήριο παραμένει στην κατάσταση "Μη αναγνωσμένο". -TicketsDelayBeforeFirstAnswer=Ένα νέο εισιτήριο θα πρέπει να λάβει μια πρώτη απάντηση πριν από (σε ώρες): -TicketsDelayBeforeFirstAnswerHelp=Εάν ένα νέο εισιτήριο δεν έχει λάβει απάντηση μετά από αυτό το χρονικό διάστημα (σε ώρες), θα εμφανιστεί ένα εικονίδιο προειδοποίησης σημαντικού γεγονότος στην προβολή λίστας. -TicketsDelayBetweenAnswers=Ένα εισιτήριο που δεν έχει επιλυθεί δεν πρέπει να είναι ανενεργό κατά τη διάρκεια (ώρες): -TicketsDelayBetweenAnswersHelp=Εάν ένα εισιτήριο που δεν έχει επιλυθεί που έχει ήδη λάβει απάντηση δεν έχει περαιτέρω αλληλεπίδραση μετά από αυτήν τη χρονική περίοδο (σε ώρες), θα εμφανιστεί ένα εικονίδιο προειδοποίησης στην προβολή λίστας. -TicketsAutoNotifyClose=Αυτόματη ειδοποίηση του τρίτου μέρους κατά το κλείσιμο ενός εισιτηρίου -TicketsAutoNotifyCloseHelp=Όταν κλείνετε ένα εισιτήριο, θα σας προταθεί να στείλετε ένα μήνυμα σε μία από τις επαφές τρίτων. Κατά το μαζικό κλείσιμο, θα σταλεί ένα μήνυμα σε μια επαφή του τρίτου μέρους που είναι συνδεδεμένο με το εισιτήριο. -TicketWrongContact=Η παρεχόμενη επαφή δεν αποτελεί μέρος των επαφών του τρέχοντος εισιτηρίου. Το email δεν στάλθηκε. -TicketChooseProductCategory=Κατηγορία προϊόντος για υποστήριξη εισιτηρίων -TicketChooseProductCategoryHelp=Επιλέξτε την κατηγορία προϊόντων υποστήριξης εισιτηρίων. Αυτό θα χρησιμοποιηθεί για την αυτόματη σύνδεση ενός συμβολαίου με ένα εισιτήριο. +TicketNumberingModules=Ενότητα αρίθμησης ticket +TicketsModelModule=Πρότυπα εγγράφων για tickets +TicketNotifyTiersAtCreation=Ειδοποιήστε το τρίτο μέρος κατά τη δημιουργία +TicketsDisableCustomerEmail=Πάντα να απενεργοποιείτε τα email όταν δημιουργείται ένα ticket από δημόσια διεπαφή +TicketsPublicNotificationNewMessage=Στείλτε email όταν ένα νέο μήνυμα/σχόλιο προστεθεί σε ένα ticket +TicketsPublicNotificationNewMessageHelp=Στείλτε email όταν προστίθεται νέο μήνυμα από τη δημόσια διεπαφή (στον εκχωρημένο χρήστη ή το email ειδοποιήσεων προς (ενημέρωση) ή/και το email ειδοποιήσεων προς) +TicketPublicNotificationNewMessageDefaultEmail=email ειδοποιήσεων προς (ενημέρωση) +TicketPublicNotificationNewMessageDefaultEmailHelp=Στείλτε ένα μήνυμα email σε αυτήν τη διεύθυνση για ειδοποιήσεις κάθε νέου μηνύματος, εάν στο ticket δεν έχει εκχωρηθεί χρήστης ή εάν ο χρήστης δεν έχει κάποιο γνωστό email. +TicketsAutoReadTicket=Αυτόματη επισήμανση του ticket ως αναγνωσμένου (όταν δημιουργείται από την υποστήριξη) +TicketsAutoReadTicketHelp=Αυτόματη επισήμανση του ticket ως αναγνωσμένου όταν έχει δημιουργηθεί από την υποστήριξη. Όταν το ticket δημιουργείται από τη δημόσια διεπαφή, το ticket παραμένει στην κατάσταση "Μη αναγνωσμένο". +TicketsDelayBeforeFirstAnswer=Ένα νέο ticket θα πρέπει να λάβει μια πρώτη απάντηση πριν από (σε ώρες): +TicketsDelayBeforeFirstAnswerHelp=Εάν ένα νέο ticket δεν έχει λάβει απάντηση μετά από αυτό το χρονικό διάστημα (σε ώρες), θα εμφανιστεί ένα εικονίδιο ειδοποίησης σημαντικού γεγονότος στην προβολή λίστας. +TicketsDelayBetweenAnswers=Ένα ticket που δεν έχει επιλυθεί δεν πρέπει να είναι ανενεργό κατά τη διάρκεια (ώρες): +TicketsDelayBetweenAnswersHelp=Εάν ένα ticket που δεν έχει επιλυθεί που έχει ήδη λάβει απάντηση δεν έχει περαιτέρω αλληλεπίδραση μετά από αυτήν τη χρονική περίοδο (σε ώρες), θα εμφανιστεί ένα εικονίδιο προειδοποίησης στην προβολή λίστας. +TicketsAutoNotifyClose=Αυτόματη ειδοποίηση του τρίτου μέρους κατά το κλείσιμο ενός ticket +TicketsAutoNotifyCloseHelp=Κατά το κλείσιμο ενός ticket, θα σας προταθεί να στείλετε ένα μήνυμα σε μία από τις επαφές τρίτων. Κατά το μαζικό κλείσιμο, θα σταλεί ένα μήνυμα σε μια επαφή του τρίτου μέρους που είναι συνδεδεμένο με το ticket. +TicketWrongContact=Η παρεχόμενη επαφή δεν αποτελεί μέρος των επαφών του τρέχοντος ticket. Το email δεν στάλθηκε. +TicketChooseProductCategory=Κατηγορία προϊόντος για υποστήριξη ticket +TicketChooseProductCategoryHelp=Επιλέξτε την κατηγορία προϊόντων υποστήριξης ticket Αυτό θα χρησιμοποιηθεί για την αυτόματη σύνδεση μιας σύμβασης με ένα ticket +TicketUseCaptchaCode=Χρησιμοποιήστε γραφικό κώδικα (CAPTCHA) όταν δημιουργείτε ένα ticket +TicketUseCaptchaCodeHelp=Προσθέτει επαλήθευση CAPTCHA κατά τη δημιουργία νέου ticket. # # Index & list page # -TicketsIndex=Περιοχή tickets +TicketsIndex=Τομέας ticket TicketList=Λίστα tickets TicketAssignedToMeInfos=Αυτή η σελίδα εμφανίζει τη λίστα tickets που έχει δημιουργηθεί ή έχει εκχωρηθεί στον τρέχοντα χρήστη NoTicketsFound=Δεν βρέθηκε ticket -NoUnreadTicketsFound=Δεν βρέθηκαν αδιάβατα ticket -TicketViewAllTickets=Δείτε όλα τα tickets -TicketViewNonClosedOnly=Δείτε μόνο ανοιχτά ticket +NoUnreadTicketsFound=Δεν βρέθηκε αδιάβαστο ticket +TicketViewAllTickets=Εμφάνιση όλων των ticket +TicketViewNonClosedOnly=Εμφάνιση μόνο ανοιχτών ticket TicketStatByStatus=Tickets ανά κατάσταση OrderByDateAsc=Ταξινόμηση κατά αύξουσα ημερομηνία OrderByDateDesc=Ταξινόμηση κατά φθίνουσα ημερομηνία ShowAsConversation=Εμφάνιση ως λίστα συνομιλιών MessageListViewType=Εμφάνιση ως λίστα πίνακα -ConfirmMassTicketClosingSendEmail=Αυτόματη αποστολή email κατά το κλείσιμο εισιτηρίων -ConfirmMassTicketClosingSendEmailQuestion=Θέλετε να ειδοποιήσετε τρίτους όταν κλείνετε αυτά τα εισιτήρια; +ConfirmMassTicketClosingSendEmail=Αυτόματη αποστολή email κατά το κλείσιμο ticket +ConfirmMassTicketClosingSendEmailQuestion=Θέλετε να ειδοποιήσετε τρίτους όταν κλείνετε αυτά τα ticket; # # Ticket card # Ticket=Ticket -TicketCard=Κάρτα ticket -CreateTicket=Δημιουργήστε ticket +TicketCard=Καρτέλα ticket +CreateTicket=Δημιουργία ticket EditTicket=Επεξεργασία ticket TicketsManagement=Διαχείριση tickets CreatedBy=Δημιουργήθηκε από NewTicket=Νέο ticket -SubjectAnswerToTicket=Το ticket απαντήθηκε +SubjectAnswerToTicket=Απάντηση σε ticket TicketTypeRequest=Τύπος αιτήματος TicketCategory=Κατηγοριοποίηση ticket SeeTicket=Δείτε το ticket @@ -187,13 +190,12 @@ TicketReadOn=Συνέχισε να διαβάζεις TicketCloseOn=Ημερομηνία Κλεισίματος MarkAsRead=Μαρκάρετε το ticket ως αναγνωσμένο TicketHistory=Ιστορικό ticket -AssignUser=Αναθέστε στον χρήστη +AssignUser=Εκχώρηση στον χρήστη TicketAssigned=Το ticket έχει πλέον εκχωρηθεί -TicketChangeType=Αλλάξτε τον τύπο -TicketChangeCategory=Αλλάξτε τον αναλυτικό κώδικα -TicketChangeSeverity=Αλλάξτε τη σοβαρότητα -TicketAddMessage=Προσθήκη μηνύματος -AddMessage=Προσθήκη μηνύματος +TicketChangeType=Αλλαγή τύπου +TicketChangeCategory=Αλλαγή αναλυτικού κώδικα +TicketChangeSeverity=Αλλαγή κρισιμότητας +TicketAddMessage=Προσθήκη προσωπικού μηνύματος MessageSuccessfullyAdded=Το ticket προστέθηκε TicketMessageSuccessfullyAdded=Το μήνυμα προστέθηκε με επιτυχία TicketMessagesList=Λίστα μηνυμάτων @@ -201,46 +203,46 @@ NoMsgForThisTicket=Δεν υπάρχει μήνυμα για αυτό το ticke TicketProperties=Κατηγοριοποίηση LatestNewTickets=Τελευταία %s πιο πρόσφατα tickets (δεν έχουν διαβαστεί) TicketSeverity=Κρισιμότητα -ShowTicket=Δείτε το ticket -RelatedTickets=Σχετικό ticket +ShowTicket=Εμφάνιση ticket +RelatedTickets=Σχετικά ticket TicketAddIntervention=Δημιουργία παρέμβασης -CloseTicket=Κλείστε|Επιλύστε το ticket -AbandonTicket=Εγκαταλείψτε το ticket -CloseATicket=Κλείστε|Επιλύστε ένα ticket -ConfirmCloseAticket=Επιβεβαιώστε το κλείσιμο του ticket -ConfirmAbandonTicket=Επιβεβαιώνετε το κλείσιμο του ticket με κατάσταση 'Εγκαταλελειμμένο' -ConfirmDeleteTicket=Επιβεβαιώστε τη διαγραφή του ticket +CloseTicket=Κλείσιμο|Επίλυση +AbandonTicket=Εγκατάλειψη +CloseATicket=Κλείσιμο|Επίλυση ticket +ConfirmCloseAticket=Επιβεβαίωση κλεισίματος ticket +ConfirmAbandonTicket=Επιβεβαιώνετε το κλείσιμο του ticket σε κατάσταση 'Εγκαταλελειμμένο' +ConfirmDeleteTicket=Παρακαλώ επιβεβαιώστε τη διαγραφή του ticket TicketDeletedSuccess=Το ticket διαγράφηκε με επιτυχία -TicketMarkedAsClosed=Το ticket επισημαίνεται ως κλειστό +TicketMarkedAsClosed=Το ticket επισημάνθηκε ως κλειστό TicketDurationAuto=Υπολογισμένη διάρκεια -TicketDurationAutoInfos=Διάρκεια υπολογίζεται αυτόματα από την παρέμβαση +TicketDurationAutoInfos=Η διάρκεια υπολογίζεται αυτόματα από τη σχετική παρέμβαση TicketUpdated=Το ticket ενημερώθηκε -SendMessageByEmail=Αποστολή μηνύματος μέσω ηλεκτρονικού ταχυδρομείου +SendMessageByEmail=Αποστόλη μηνύματος μέσω email TicketNewMessage=Νέο μήνυμα -ErrorMailRecipientIsEmptyForSendTicketMessage=Ο παραλήπτης είναι κενός. Δεν στέλνεται μήνυμα ηλεκτρονικού ταχυδρομείου -TicketGoIntoContactTab=Μεταβείτε στην καρτέλα "Επαφές" για να τις επιλέξετε -TicketMessageMailIntro=Εισαγωγή -TicketMessageMailIntroHelp=Αυτό το κείμενο προστίθεται μόνο στην αρχή του μηνύματος ηλεκτρονικού ταχυδρομείου και δεν θα αποθηκευτεί. -TicketMessageMailIntroLabelAdmin=Εισαγωγικό κείμενο για όλες τις απαντήσεις εισιτηρίων -TicketMessageMailIntroText=Γεια σας,
    Μια νέα απάντηση προστέθηκε σε ένα εισιτήριο που ακολουθείτε. Εδώ είναι το μήνυμα:
    -TicketMessageMailIntroHelpAdmin=Αυτό το κείμενο θα εισαχθεί πριν από την απάντηση όταν απαντάτε σε ένα εισιτήριο από το Dolibarr -TicketMessageMailSignature=Υπογραφή -TicketMessageMailSignatureHelp=Αυτό το κείμενο προστίθεται μόνο στο τέλος του μηνύματος ηλεκτρονικού ταχυδρομείου και δεν θα αποθηκευτεί. -TicketMessageMailSignatureText=Το μήνυμα στάλθηκε από %s μέσω Dolibarr -TicketMessageMailSignatureLabelAdmin=Υπογραφή ηλεκτρονικού ταχυδρομείου απάντησης -TicketMessageMailSignatureHelpAdmin=Αυτό το κείμενο θα εισαχθεί μετά το μήνυμα απάντησης. -TicketMessageHelp=Μόνο αυτό το κείμενο θα αποθηκευτεί στη λίστα μηνυμάτων της κάρτας tickets. +ErrorMailRecipientIsEmptyForSendTicketMessage=Το πεδίο παραλήπτη είναι κενό. Δεν εστάλη το email +TicketGoIntoContactTab=Μεταβείτε στην καρτέλα "Επαφές" για να τις επιλέξετε +TicketMessageMailIntro=Κεφαλίδα μηνύματος +TicketMessageMailIntroHelp=Αυτό το κείμενο προστίθεται μόνο στην αρχή του email και δεν θα αποθηκευτεί. +TicketMessageMailIntroText=Γεια σας,
    Μια νέα απάντηση προστέθηκε σε ένα ticket που ακολουθείτε. Εδώ είναι το μήνυμα:
    +TicketMessageMailIntroHelpAdmin=Αυτό το κείμενο θα εισαχθεί πριν από την απάντηση όταν απαντάτε σε ένα ticket από το Dolibarr +TicketMessageMailFooter=Υποσέλιδο μηνύματος +TicketMessageMailFooterHelp=Αυτό το κείμενο προστίθεται μόνο στο τέλος του μηνύματος που αποστέλλεται με email και δεν θα αποθηκευτεί. +TicketMessageMailFooterText=Το μήνυμα στάλθηκε από %s μέσω Dolibarr +TicketMessageMailFooterHelpAdmin=Αυτό το κείμενο θα εισαχθεί μετά το μήνυμα απάντησης. +TicketMessageHelp=Μόνο αυτό το κείμενο θα αποθηκευτεί στη λίστα μηνυμάτων της κάρτας ticket. TicketMessageSubstitutionReplacedByGenericValues=Οι μεταβλητές αντικατάστασης αντικαθίστανται από γενικές τιμές. -TimeElapsedSince=Χρόνος που πέρασε από τότε -TicketTimeToRead=Ο χρόνος που παρέμενε πριν διαβάσετε +ForEmailMessageWillBeCompletedWith=Για μηνύματα email που αποστέλλονται σε εξωτερικούς χρήστες, το μήνυμα θα συμπληρωθεί με +TimeElapsedSince=Ο χρόνος πέρασε από +TicketTimeToRead=Ο χρόνος που πέρασε πριν από την ανάγνωση TicketTimeElapsedBeforeSince=Χρόνος που πέρασε πριν / από TicketContacts=Επαφές ticket TicketDocumentsLinked=Έγγραφα που συνδέονται με το ticket -ConfirmReOpenTicket=Επιβεβαιώστε ανοίγματος ξανά σε αυτό το ticket; +ConfirmReOpenTicket=Επιβεβαιώνετε το άνοιγμα εκ νέου αυτού του ticket; TicketMessageMailIntroAutoNewPublicMessage=Ένα νέο μήνυμα αναρτήθηκε στο ticket με το θέμα %s: -TicketAssignedToYou=Το ticket έχει ανατεθεί -TicketAssignedEmailBody=Σας έχει ανατεθεί το ticket # %s από %s -MarkMessageAsPrivate=Σημειώστε το μήνυμα ως ιδιωτικό +TicketAssignedToYou=Το ticket σας έχει ανατεθεί +TicketAssignedEmailBody=Σας έχει ανατεθεί το ticket #%s από τον %s +MarkMessageAsPrivate=Επισήμανση μηνύματος ως απόρρητου +TicketMessageSendEmailHelp=Θα σταλεί ένα email σε όλες τις αντιστοιχισμένες επαφές (εσωτερικές επαφές, αλλά και εξωτερικές επαφές, εκτός και εάν είναι επιλεγμένη η επιλογή "%s") TicketMessagePrivateHelp=Αυτό το μήνυμα δεν θα εμφανίζεται σε εξωτερικούς χρήστες TicketEmailOriginIssuer=Δημιουργός στην αρχή των tickets InitialMessage=Αρχικό μήνυμα @@ -248,85 +250,85 @@ LinkToAContract=Σύνδεση με σύμβαση TicketPleaseSelectAContract=Επιλέξτε μια σύμβαση UnableToCreateInterIfNoSocid=Δεν είναι δυνατή η δημιουργία παρέμβασης όταν δεν ορίζεται κάποιο τρίτο μέρος TicketMailExchanges=Ανταλλαγές αλληλογραφίας -TicketInitialMessageModified=Αρχικό μήνυμα τροποποιήθηκε +TicketInitialMessageModified=Το αρχικό μήνυμα τροποποιήθηκε TicketMessageSuccesfullyUpdated=Το μήνυμα ενημερώθηκε με επιτυχία TicketChangeStatus=Αλλαγή κατάστασης TicketConfirmChangeStatus=Επιβεβαιώστε την αλλαγή κατάστασης: %s? -TicketLogStatusChanged=Η κατάσταση άλλαξε: %s to %s -TicketNotNotifyTiersAtCreate=Μην ειδοποιείτε την εταιρεία στη δημιουργία -NotifyThirdpartyOnTicketClosing=Επαφές για ειδοποίηση κατά το κλείσιμο του εισιτηρίου +TicketLogStatusChanged=Η κατάσταση άλλαξε: απο%s σε %s +TicketNotNotifyTiersAtCreate=Μην ειδοποιείτε την εταιρεία κατά την δημιουργία +NotifyThirdpartyOnTicketClosing=Επαφές για ειδοποίηση κατά το κλείσιμο του ticket TicketNotifyAllTiersAtClose=Όλες οι σχετικές επαφές TicketNotNotifyTiersAtClose=Καμία σχετική επαφή -Unread=Αδιάβαστος -TicketNotCreatedFromPublicInterface=Μη διαθέσιμος. Το εισιτήριο δεν δημιουργήθηκε από το δημόσιο περιβάλλον. -ErrorTicketRefRequired=Το όνομα αναφοράς Eισιτηρίου είναι υποχρεωτικό -TicketsDelayForFirstResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από το άνοιγμα του εισιτηρίου χωρίς καμία απάντηση. -TicketsDelayFromLastResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από την τελευταία απάντηση σε αυτό το εισιτήριο. -TicketNoContractFoundToLink=Δεν βρέθηκε συμβόλαιο που να συνδέεται αυτόματα με αυτό το εισιτήριο. Συνδέστε ένα συμβόλαιο χειροκίνητα. -TicketManyContractsLinked=Πολλά συμβόλαια έχουν συνδεθεί αυτόματα με αυτό το εισιτήριο. Βεβαιωθείτε ότι έχετε επαληθεύσει ποιο πρέπει να επιλεγεί. +Unread=Αδιάβαστο +TicketNotCreatedFromPublicInterface=Μη διαθέσιμο. Το ticket δεν δημιουργήθηκε από δημόσια διεπαφή. +ErrorTicketRefRequired=Απαιτείται όνομα αναφοράς ticket +TicketsDelayForFirstResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από το άνοιγμα του ticket χωρίς καμία απάντηση. +TicketsDelayFromLastResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από την τελευταία απάντηση σε αυτό το ticket. +TicketNoContractFoundToLink=Δεν βρέθηκε σύμβαση που να συνδέεται αυτόματα με αυτό το ticket. Συνδέστε μια σύμβαση μη αυτόματα. +TicketManyContractsLinked=Πολλές συμβάσεις έχουν συνδεθεί αυτόματα με αυτό το ticket. Βεβαιωθείτε ότι έχετε επαληθεύσει ποιο πρέπει να επιλεγεί. # # Logs # TicketLogMesgReadBy=Το ticket %s διαβάστηκε από %s -NoLogForThisTicket=Δεν υπάρχει καταγραφή για αυτό το ticket ακόμα -TicketLogAssignedTo=Το ticket %s ανατέθηκε στο %s +NoLogForThisTicket=Δεν υπάρχει αρχείο καταγραφής για αυτό το ticket ακόμα +TicketLogAssignedTo=Το ticket %s ανατέθηκε σε %s TicketLogPropertyChanged=Το ticket %s τροποποιήθηκε: ταξινόμηση από %s σε %s -TicketLogClosedBy=Το ticket %s έκλεισε με %s +TicketLogClosedBy=Το ticket %s έκλεισε απο %s TicketLogReopen=Εκ νέου άνοιγμα του ticket %s # # Public pages # TicketSystem=Σύστημα ticket -ShowListTicketWithTrackId=Εμφάνιση λίστας ticket με βάση το αναγνωριστικό ID -ShowTicketWithTrackId=Εμφάνιση ticket από το αναγνωριστικό ID +ShowListTicketWithTrackId=Εμφάνιση λίστας ticket με βάση το αναγνωριστικό παρακολούθησης +ShowTicketWithTrackId=Εμφάνιση ticket από το αναγνωριστικό παρακολούθησης TicketPublicDesc=Μπορείτε να δημιουργήσετε ένα ticket υποστήριξης ή να επιλέξετε από ένα αναγνωριστικό ID. YourTicketSuccessfullySaved=Το ticket αποθηκεύτηκε με επιτυχία! MesgInfosPublicTicketCreatedWithTrackId=Ένα νέο ticket δημιουργήθηκε με ID %sκαι αναφ. %s -PleaseRememberThisId=Παρακαλούμε να διατηρήσετε τον αριθμό παρακολούθησης που σας ζητάμε αργότερα. -TicketNewEmailSubject=Δημιουργία ticket- Ref %s (δημόσιο ID %s) +PleaseRememberThisId=Παρακαλώ κρατήστε τον αριθμό παρακολούθησης, μπορεί να σας τον ζητήσουμε αργότερα. +TicketNewEmailSubject=Επιβεβαίωση δημιουργίας εισιτηρίου - Αναφ. %s (δημόσιο αναγνωριστικό εισιτηρίου %s) TicketNewEmailSubjectCustomer=Νέο ticket υποστήριξης TicketNewEmailBody=Αυτό είναι ένα αυτόματο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει ότι έχετε καταχωρήσει ένα νέο ticket. TicketNewEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει ότι μόλις δημιουργήθηκε νέο ticket στο λογαριασμό σας. TicketNewEmailBodyInfosTicket=Πληροφορίες για την παρακολούθηση του ticket TicketNewEmailBodyInfosTrackId=Αριθμός παρακολούθησης ticket: %s -TicketNewEmailBodyInfosTrackUrl=Μπορείτε να δείτε την εξέλιξη του εισιτηρίου κάνοντας κλικ στον παρακάτω σύνδεσμο +TicketNewEmailBodyInfosTrackUrl=Μπορείτε να δείτε την εξέλιξη του ticket κάνοντας κλικ στον παρακάτω σύνδεσμο TicketNewEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε την πρόοδο του ticket στη συγκεκριμένη διεπαφή κάνοντας κλικ στον ακόλουθο σύνδεσμο -TicketCloseEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε το ιστορικό αυτού του εισιτηρίου κάνοντας κλικ στον παρακάτω σύνδεσμο +TicketCloseEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε το ιστορικό αυτού του ticket κάνοντας κλικ στον παρακάτω σύνδεσμο TicketEmailPleaseDoNotReplyToThisEmail=Παρακαλώ μην απαντήσετε απευθείας σε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου! Χρησιμοποιήστε το σύνδεσμο για να απαντήσετε μέσω της διεπαφής. TicketPublicInfoCreateTicket=Αυτή η φόρμα σάς επιτρέπει να καταγράψετε ένα ticket υποστήριξης στο σύστημα διαχείρισης. -TicketPublicPleaseBeAccuratelyDescribe=Παρακαλούμε περιγράψτε με ακρίβεια το πρόβλημα. Παρέχετε τις περισσότερες πληροφορίες που είναι δυνατόν να μας επιτρέψουν να προσδιορίσουμε σωστά το αίτημά σας. -TicketPublicMsgViewLogIn=Εισαγάγετε το αναγνωριστικό παρακολούθησης ticket +TicketPublicPleaseBeAccuratelyDescribe=Παρακαλώ διατυπώστε με σαφήνεια την ερώτησή σας. Δώστε τις περισσότερες δυνατές πληροφορίες για να μας επιτρέψετε να αναγνωρίσουμε σωστά το αίτημά σας. +TicketPublicMsgViewLogIn=Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket TicketTrackId=Δημόσιο αναγνωριστικό παρακολούθησης OneOfTicketTrackId=Ένα από τα αναγνωριστικά παρακολούθησης ErrorTicketNotFound=Δεν βρέθηκε ticket με αναγνωριστικό παρακολούθησης %s! Subject=Αντικείμενο ViewTicket=Προβολή ticket -ViewMyTicketList=Δείτε τη λίστα των tickets μου +ViewMyTicketList=Εμφάνιση λίστας των ticket μου ErrorEmailMustExistToCreateTicket=Σφάλμα: η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν βρέθηκε στη βάση δεδομένων μας TicketNewEmailSubjectAdmin=Δημιουργήθηκε νέο ticket - Ref %s (δημόσιο ticket ID %s) TicketNewEmailBodyAdmin=

    Το ticket μόλις δημιουργήθηκε με την ID # %s, δείτε τις πληροφορίες:

    -SeeThisTicketIntomanagementInterface=Δείτε το εισιτήριο στη διεπαφή διαχείρισης +SeeThisTicketIntomanagementInterface=Δείτε το Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket στη διεπαφή διαχείρισης TicketPublicInterfaceForbidden=Η δημόσια διεπαφή για τα tickets δεν ήταν ενεργοποιημένη -ErrorEmailOrTrackingInvalid=Λάθος τιμή ID παρακολούθηση ή ηλεκτρονικού ταχυδρομείου +ErrorEmailOrTrackingInvalid=Λάθος τιμή αναγνωριστικού παρακολούθησης ή email OldUser=Παλιός χρήστης NewUser=Νέος χρήστης NumberOfTicketsByMonth=Αριθμός tickets ανά μήνα NbOfTickets=Αριθμός tickets # notifications -TicketCloseEmailSubjectCustomer=Το εισιτήριο έκλεισε -TicketCloseEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα για να σας ειδοποιήσει ότι το εισιτήριο %s μόλις έκλεισε. -TicketCloseEmailSubjectAdmin=Το εισιτήριο έκλεισε - Réf %s (δημόσιο ID εισιτηρίου %s) -TicketCloseEmailBodyAdmin=Ένα εισιτήριο με ID #%s μόλις έκλεισε, δείτε πληροφορίες: +TicketCloseEmailSubjectCustomer=Το Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket έκλεισε +TicketCloseEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα για να σας ενημερώσουμε ότι το ticket %s μόλις έκλεισε. +TicketCloseEmailSubjectAdmin=Το ticket έκλεισε - Réf %s (δημόσιο ID εισιτηρίου %s) +TicketCloseEmailBodyAdmin=Ένα ticket με ID #%s μόλις έκλεισε, δείτε πληροφορίες: TicketNotificationEmailSubject=Το ticket %s ενημερώθηκε TicketNotificationEmailBody=Αυτό είναι ένα αυτόματο μήνυμα που σας ειδοποιεί ότι το ticket %s μόλις ενημερώθηκε TicketNotificationRecipient=Αποδέκτης ειδοποίησης -TicketNotificationLogMessage=Μηνύματα καταγραφής +TicketNotificationLogMessage=Μήνυμα καταγραφής TicketNotificationEmailBodyInfosTrackUrlinternal=Προβολή ticket σε διεπαφή -TicketNotificationNumberEmailSent=Ειδοποίηση ηλεκτρονικού ταχυδρομείου αποστολή: %s +TicketNotificationNumberEmailSent=Στάλθηκε email ειδοποίησης: %s -ActionsOnTicket=Συμβάντα του ticket +ActionsOnTicket=Ενέργειες στο ticket # # Boxes @@ -339,14 +341,14 @@ BoxLastModifiedTicket=Τελευταία τροποποιημένα tickets BoxLastModifiedTicketDescription=Τα τελευταία %s τροποποιημένα tickets BoxLastModifiedTicketContent= BoxLastModifiedTicketNoRecordedTickets=Δεν υπάρχουν πρόσφατα τροποποιημένα tickets -BoxTicketType=Κατανομή ανοιχτών εισιτηρίων ανά τύπο -BoxTicketSeverity=Αριθμός ανοιχτών εισιτηρίων κατά προτεραιότητα -BoxNoTicketSeverity=Δεν υπάρχουν ανοιχτά εισιτήρια -BoxTicketLastXDays=Αριθμός νέων εισιτηρίων ανά ημέρα τις τελευταίες %s ημέρες -BoxTicketLastXDayswidget = Αριθμός νέων εισιτηρίων ανά ημέρα τις τελευταίες Χ ημέρες -BoxNoTicketLastXDays=Κανένα νέο εισιτήριο τις τελευταίες %s ημέρες -BoxNumberOfTicketByDay=Αριθμός νέων εισιτηρίων ανά ημέρα -BoxNewTicketVSClose=Αριθμός νέων εισιτηρίων έναντι κλειστών εισιτηρίων (σήμερα) -TicketCreatedToday=Το εισιτήριο δημιουργήθηκε σήμερα -TicketClosedToday=Το εισιτήριο έκλεισε σήμερα -KMFoundForTicketGroup=Βρήκαμε θέματα και συχνές ερωτήσεις που μπορεί να απαντήσουν την ερώτησή σας, Παρακαλούμε να τα ελέγξετε πριν υποβάλετε το εισιτήριο +BoxTicketType=Κατανομή ανοιχτών ticket ανά τύπο +BoxTicketSeverity=Αριθμός ανοιχτών ticket κατά κρισιμότητα +BoxNoTicketSeverity=Δεν υπάρχουν ανοιχτά ticket +BoxTicketLastXDays=Αριθμός νέων ticket ανά ημέρα τις τελευταίες %s ημέρες +BoxTicketLastXDayswidget = Αριθμός νέων ticket ανά ημέρα τις τελευταίες Χ ημέρες +BoxNoTicketLastXDays=Κανένα νέο ticket τις τελευταίες %s ημέρες +BoxNumberOfTicketByDay=Αριθμός νέων ticket ανά ημέρα +BoxNewTicketVSClose=Αριθμός νέων ticket έναντι κλειστών ticket (σήμερα) +TicketCreatedToday=Το ticket δημιουργήθηκε σήμερα +TicketClosedToday=Το ticket έκλεισε σήμερα +KMFoundForTicketGroup=Βρήκαμε θέματα και συχνές ερωταπαντήσεις που μπορεί να σας βοηθήσουν, Παρακαλούμε να τα ελέγξετε πριν υποβάλετε το ticket σας diff --git a/htdocs/langs/el_GR/trips.lang b/htdocs/langs/el_GR/trips.lang index da19b185b24..0a2d8ba5aac 100644 --- a/htdocs/langs/el_GR/trips.lang +++ b/htdocs/langs/el_GR/trips.lang @@ -3,43 +3,43 @@ ShowExpenseReport=Εμφάνιση αναφοράς εξόδων Trips=Αναφορές εξόδων TripsAndExpenses=Αναφορές εξόδων TripsAndExpensesStatistics=Στατιστικές αναφορές εξόδων -TripCard=Κάρτα αναφοράς εξόδων +TripCard=Καρτέλα αναφοράς εξόδων AddTrip=Δημιουργία αναφοράς εξόδων ListOfTrips=Λίστα αναφορών εξόδων ListOfFees=Λίστα φόρων TypeFees=Είδη αμοιβών ShowTrip=Εμφάνιση αναφοράς εξόδων NewTrip=Νέα αναφορά εξόδων -LastExpenseReports=Τελευταίες αναφορές δαπανών %s +LastExpenseReports=Τελευταίες %s αναφορές εξόδων AllExpenseReports=Όλες οι αναφορές εξόδων CompanyVisited=Εταιρεία / οργανισμός επισκέφθηκε -FeesKilometersOrAmout=Σύνολο χλμ +FeesKilometersOrAmout=Ποσότητα ή χιλιόμετρα DeleteTrip=Διαγραφή αναφοράς εξόδων -ConfirmDeleteTrip=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την αναφορά εξόδων; +ConfirmDeleteTrip=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την αναφορά εξόδων; ListTripsAndExpenses=Λίστα αναφορών εξόδων -ListToApprove=Αναμονή έγγρισης -ExpensesArea=Περιοχή αναφοράς εξόδων -ClassifyRefunded=Κατηγοριοποίηση ως «επιστράφει» -ExpenseReportWaitingForApproval=Μια νέα έκθεση δαπανών έχει υποβληθεί προς έγκριση -ExpenseReportWaitingForApprovalMessage=Έχει υποβληθεί νέα αναφορά δαπανών και περιμένει έγκριση.
    - Χρήστης: %s
    - Περίοδος: %s
    Κάντε κλικ εδώ για να επικυρώσετε: %s -ExpenseReportWaitingForReApproval=Έχει υποβληθεί μια έκθεση δαπανών για επανέγκριση -ExpenseReportWaitingForReApprovalMessage=Έχει υποβληθεί αναφορά δαπανών και αναμένει επανέγκριση.
    Το %s, αρνηθήκατε να εγκρίνετε την αναφορά εξόδων για το λόγο αυτό: %s.
    Έχει προταθεί μια νέα έκδοση και περιμένει την έγκρισή σας.
    - Χρήστης: %s
    - Περίοδος: %s
    Κάντε κλικ εδώ για να επικυρώσετε: %s -ExpenseReportApproved=Έχει εγκριθεί έκθεση δαπανών -ExpenseReportApprovedMessage=Η έκθεση δαπανών %s εγκρίθηκε.
    - Χρήστης: %s
    - Εγκρίθηκε από: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s -ExpenseReportRefused=Η αναφορά δαπανών απορρίφθηκε -ExpenseReportRefusedMessage=Η αναφορά δαπανών %s απορρίφθηκε.
    - Χρήστης: %s
    - αρνήθηκε από: %s
    - Αιτιολόγηση απόρριψης: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s +ListToApprove=Σε αναμονή για έγκριση +ExpensesArea=Τομέας αναφοράς εξόδων +ClassifyRefunded=Ταξινόμηση ως "Επιστροφή χρημάτων" +ExpenseReportWaitingForApproval=Μια νέα αναφορά εξόδων έχει υποβληθεί προς έγκριση +ExpenseReportWaitingForApprovalMessage=Έχει υποβληθεί νέα αναφορά εξόδων και είναι σε αναμονή έγκρισης.
    - Χρήστης: %s
    - Περίοδος: %s
    Κάντε κλικ εδώ για επικύρωση: %s +ExpenseReportWaitingForReApproval=Έχει υποβληθεί μια αναφορά εξόδων για επανέγκριση +ExpenseReportWaitingForReApprovalMessage=Έχει υποβληθεί αναφορά εξόδων και αναμένει επανέγκριση.
    Την %s, αρνηθήκατε να εγκρίνετε την αναφορά εξόδων για το λόγο αυτό: %s.
    Έχει προταθεί μια νέα έκδοση και περιμένει την έγκρισή σας.
    - Χρήστης: %s
    - Περίοδος: %s
    Κάντε κλικ εδώ για να επικυρώσετε: %s +ExpenseReportApproved=Έχει εγκριθεί η αναφορά εξόδων +ExpenseReportApprovedMessage=Η αναφορά εξόδων %s εγκρίθηκε.
    - Χρήστης: %s
    - Εγκρίθηκε από: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s +ExpenseReportRefused=Η αναφορά εξόδων απορρίφθηκε +ExpenseReportRefusedMessage=Η αναφορά εξόδων %s απορρίφθηκε.
    - Χρήστης: %s
    - απορρίφθηκε από: %s
    - Αιτιολόγηση απόρριψης: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s ExpenseReportCanceled=Η αναφορά εξόδων ακυρώθηκε -ExpenseReportCanceledMessage=Η αναφορά δαπανών %s ακυρώθηκε.
    - Χρήστης: %s
    - Ακυρώθηκε από: %s
    - Αιτιολόγηση για ακύρωση: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s -ExpenseReportPaid=Καταγράφηκε μια αναφορά εξόδων -ExpenseReportPaidMessage=Η αναφορά δαπανών %s καταβλήθηκε.
    - Χρήστης: %s
    - Πληρωμή από: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s -TripId=Αναφορά εξόδων ταυτότητας +ExpenseReportCanceledMessage=Η αναφορά εξόδων %s ακυρώθηκε.
    - Χρήστης: %s
    - Ακυρώθηκε από: %s
    - Αιτιολόγηση για ακύρωση: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s +ExpenseReportPaid=Καταβλήθηκε ποσό αναφοράς εξόδων +ExpenseReportPaidMessage=Η αναφορά εξόδων %s καταβλήθηκε.
    - Χρήστης: %s
    - Πληρωμή από: %s
    Κάντε κλικ εδώ για να εμφανίσετε την αναφορά εξόδων: %s +TripId=Αναγνωριστικό αναφοράς εξόδων AnyOtherInThisListCanValidate=Πρόσωπο που πρέπει να ενημερωθεί για την επικύρωση του αιτήματος. TripSociete=Πληροφορίες εταιρίας -TripNDF=Αναφορά εξόδων πληροφοριών -PDFStandardExpenseReports=Πρότυπο πρότυπο για τη δημιουργία ενός εγγράφου PDF για αναφορά εξόδων -ExpenseReportLine=Γραμμή αναφοράς δαπανών +TripNDF=Πληροφορίες αναφοράς εξόδων +PDFStandardExpenseReports=Τυπικό πρότυπο για τη δημιουργία ενός εγγράφου PDF για την αναφορά εξόδων +ExpenseReportLine=Γραμμή αναφοράς εξόδων TF_OTHER=Άλλο -TF_TRIP=Μεταφορά +TF_TRIP=Μεταφορικά TF_LUNCH=Γεύμα TF_METRO=Μετρό TF_TRAIN=Τρένο @@ -49,11 +49,11 @@ TF_PEAGE=Διόδια TF_ESSENCE=Καύσιμα TF_HOTEL=Ξενοδοχείο TF_TAXI=Ταξί -EX_KME=Χιλιόμετρα κόστος -EX_FUE=Βιογραφικό σημείωμα καυσίμου +EX_KME=κόστος ανά χιλιόμετρο +EX_FUE=καύσιμα EX_HOT=Ξενοδοχείο -EX_PAR=Χώρος στάθμευσης αυτοκινήτου -EX_TOL=Toll CV +EX_PAR=Χώρος στάθμευσης +EX_TOL=Διόδια EX_TAX=Διάφοροι φόροι EX_IND=Αποζημίωση μεταφοράς αποζημιώσεων EX_SUM=Συντήρηση @@ -66,51 +66,51 @@ EX_POS=Ταχυδρομικά τέλη EX_CAM=Συντήρηση και επισκευή βιογραφικού σημειώματος EX_EMM=Γεύμα εργαζομένων EX_GUM=Γεύμα φιλοξενουμένων -EX_BRE=ΠΡΩΙΝΟ ΓΕΥΜΑ +EX_BRE=Πρωινό γεύμα EX_FUE_VP=Fuel PV EX_TOL_VP=Toll PV EX_PAR_VP=Πάρκινγκ PV EX_CAM_VP=PV συντήρηση και επισκευή DefaultCategoryCar=Προεπιλεγμένη λειτουργία μεταφοράς DefaultRangeNumber=Αριθμός προεπιλεγμένου εύρους τιμών -UploadANewFileNow=Μεταφορτώστε τώρα ένα νέο έγγραφο -Error_EXPENSEREPORT_ADDON_NotDefined=Σφάλμα, ο κανόνας για την αναφορά αριθμών αναφορών εξόδων δεν καθορίστηκε στη ρύθμιση της ενότητας 'Έκθεση δαπανών' -ErrorDoubleDeclaration=Έχετε δηλώσει μια άλλη αναφορά εξόδων σε ένα παρόμοιο εύρος ημερομηνιών. -AucuneLigne=Δεν έχει ακόμη δηλωθεί αναφορά δαπανών +UploadANewFileNow=Μεταφορτώστε ένα νέο έγγραφο τώρα +Error_EXPENSEREPORT_ADDON_NotDefined=Σφάλμα, ο κανόνας για την αρίθμηση αναφοράς εξόδων δεν ορίστηκε στη ρύθμιση της ενότητας "Αναφορά εξόδων" +ErrorDoubleDeclaration=Έχετε δηλώσει άλλη αναφορά εξόδων σε παρόμοιο εύρος ημερομηνιών. +AucuneLigne=Δεν έχει δηλωθεί ακόμη αναφορά εξόδων ModePaiement=Τρόπος πληρωμής -VALIDATOR=Ο χρήστης είναι υπεύθυνος για την έγκριση +VALIDATOR=Χρήστης υπεύθυνος για την έγκριση VALIDOR=Εγκρίθηκε από AUTHOR=Αποθηκεύτηκε από AUTHORPAIEMENT=Πληρώθηκε από REFUSEUR=Απορρίφθηκε από CANCEL_USER=Διαγράφηκε από -MOTIF_REFUS=Αιτία -MOTIF_CANCEL=Αιτία +MOTIF_REFUS=Λόγος +MOTIF_CANCEL=Λόγος DATE_REFUS=Ημερομηνία απόρριψης DATE_SAVE=Ημερομηνία Επικύρωσης DATE_CANCEL=Ημερομηνία ακύρωσης DATE_PAIEMENT=Ημερομηνία πληρωμής -ExpenseReportRef=Αναφ. ΑΝΑΦΟΡΑ ΕΞΟΔΩΝ +ExpenseReportRef=Αναφ. αναφοράς εξόδων ValidateAndSubmit=Επικύρωση και υποβολή για έγκριση -ValidatedWaitingApproval=Επικύρωση (αναμονή για έγκριση) -NOT_AUTHOR=Δεν είστε ο συντάκτης αυτής της έκθεσης δαπανών. Η λειτουργία ακυρώθηκε. -ConfirmRefuseTrip=Είστε βέβαιοι ότι θέλετε να αρνηθείτε αυτήν την αναφορά εξόδων; -ValideTrip=Εγκρίνετε την αναφορά εξόδων -ConfirmValideTrip=Είστε βέβαιοι ότι θέλετε να εγκρίνετε αυτή την αναφορά εξόδων; +ValidatedWaitingApproval=Επικυρώθηκε (αναμονή για έγκριση) +NOT_AUTHOR=Δεν είστε ο συντάκτης αυτής της αναφοράς εξόδων. Η λειτουργία ακυρώθηκε. +ConfirmRefuseTrip=Είστε σίγουροι ότι θέλετε να απορρίψετε αυτήν την αναφορά εξόδων; +ValideTrip=Έγκριση αναφοράς εξόδων +ConfirmValideTrip=Είστε σιγουροι ότι θέλετε να εγκρίνετε αυτή την αναφορά εξόδων; PaidTrip=Πληρώστε μια αναφορά εξόδων -ConfirmPaidTrip=Είστε βέβαιοι ότι θέλετε να αλλάξετε την κατάσταση αυτής της αναφοράς εξόδων σε "Paid"; +ConfirmPaidTrip=Είστε βέβαιοι ότι θέλετε να αλλάξετε την κατάσταση αυτής της αναφοράς εξόδων σε "Πληρωμένη"; ConfirmCancelTrip=Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν την αναφορά εξόδων; -BrouillonnerTrip=Μεταφέρετε την αναφορά δαπανών στην κατάσταση "Σχέδιο" -ConfirmBrouillonnerTrip=Είστε βέβαιοι ότι θέλετε να μετακινήσετε αυτή την αναφορά δαπανών στην κατάσταση "Σχέδιο"; +BrouillonnerTrip=Μετακίνηση αναφοράς εξόδων στην κατάσταση "Προσχέδιο" +ConfirmBrouillonnerTrip=Είστε σίγουροι ότι θέλετε να μετακινήσετε αυτήν την αναφορά εξόδων στην κατάσταση "Προσχέδιο"; SaveTrip=Επικύρωση αναφοράς εξόδων -ConfirmSaveTrip=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτήν την αναφορά εξόδων; +ConfirmSaveTrip=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την αναφορά εξόδων; NoTripsToExportCSV=Δεν υπάρχει αναφορά εξόδων για εξαγωγή για αυτήν την περίοδο. -ExpenseReportPayment=Πληρωμή αναφορών εξόδων +ExpenseReportPayment=Πληρωμή αναφοράς εξόδων ExpenseReportsToApprove=Αναφορές εξόδων για έγκριση ExpenseReportsToPay=Αναφορές εξόδων για πληρωμή ConfirmCloneExpenseReport=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε αυτήν την αναφορά εξόδων; ExpenseReportsIk=Διαμόρφωση χιλιομετρικών χρεώσεων -ExpenseReportsRules=Κανόνες έκθεσης δαπανών +ExpenseReportsRules=Κανόνες αναφοράς εξόδων ExpenseReportIkDesc=Μπορείτε να τροποποιήσετε τον υπολογισμό των εξόδων χιλιομέτρων ανά κατηγορία και εύρος που έχουν οριστεί προηγουμένως. d είναι η απόσταση σε χιλιόμετρα ExpenseReportRulesDesc=Μπορείτε να ορίσετε κανόνες μέγιστου ποσού για αναφορές εξόδων. Αυτοί οι κανόνες θα εφαρμόζονται όταν ένα νέο έξοδο προστίθεται σε μια αναφορά εξόδων expenseReportOffset=Απόκλιση @@ -118,33 +118,33 @@ expenseReportCoef=Συντελεστής expenseReportTotalForFive=Παράδειγμα με d = 5 expenseReportRangeFromTo=από %d σε %d expenseReportRangeMoreThan=περισσότερο από %d -expenseReportCoefUndefined=(τιμή δεν ορίζεται) +expenseReportCoefUndefined=(η τιμή δεν έχει καθοριστεί) expenseReportCatDisabled=Απενεργοποιημένη κατηγορία - δείτε το λεξικό c_exp_tax_cat -expenseReportRangeDisabled=Η εμβέλεια είναι απενεργοποιημένη - ανατρέξτε στη λέξη c_exp_tax_range -expenseReportPrintExample=αντιστάθμιση + (dx coef) = %s -ExpenseReportApplyTo=Εφαρμόζω σε -ExpenseReportDomain=Τομέας για την εφαρμογή -ExpenseReportLimitOn=Περιορίστε το +expenseReportRangeDisabled=Το εύρος είναι απενεργοποιημένο - ανατρέξτε στο λεξικό c_exp_tax_range +expenseReportPrintExample=Απόκλιση + (d x συντελεστής) = %s +ExpenseReportApplyTo=Εφαρμογή σε +ExpenseReportDomain=Τομέας για εφαρμογή +ExpenseReportLimitOn=Περιορισμός σε ExpenseReportDateStart=Ημερομηνία Έναρξης ExpenseReportDateEnd=Ημερομηνία λήξης ExpenseReportLimitAmount=Μέγιστο ποσό ExpenseReportRestrictive=Η υπέρβαση απαγορεύεται -AllExpenseReport=Όλες οι εκθέσεις δαπανών -OnExpense=Γραμμή δαπανών -ExpenseReportRuleSave=Ο κανόνας αναφοράς δαπανών αποθηκεύτηκε +AllExpenseReport=Όλοι οι τύποι αναφορών εξόδων +OnExpense=Γραμμή εξόδων +ExpenseReportRuleSave=Ο κανόνας αναφοράς εξόδων αποθηκεύτηκε ExpenseReportRuleErrorOnSave=Σφάλμα: %s RangeNum=Εύρος %d ExpenseReportConstraintViolationError=Υπέρβαση του μέγιστου ποσού (κανόνας %s): το %s είναι υψηλότερο από το %s (Η υπέρβαση απαγορεύεται) -byEX_DAY=ανά ημέρα (περιορισμός στο %s) -byEX_MON=ανά μήνα (περιορισμός στο %s) -byEX_YEA=ανά έτος (περιορισμός στο %s) -byEX_EXP=ανά γραμμή (περιορισμός στο %s) +byEX_DAY=ανά ημέρα (περιορισμός σε %s) +byEX_MON=ανά μήνα (περιορισμός σε %s) +byEX_YEA=ανά έτος (περιορισμός σε %s) +byEX_EXP=ανά γραμμή (περιορισμός σε %s) ExpenseReportConstraintViolationWarning=Υπέρβαση του μέγιστου ποσού (κανόνας %s): το %s είναι υψηλότερο από το %s (Υπέρβαση εξουσιοδοτημένου) nolimitbyEX_DAY=ανά ημέρα (χωρίς περιορισμό) nolimitbyEX_MON=ανά μήνα (χωρίς περιορισμό) nolimitbyEX_YEA=ανά έτος (χωρίς περιορισμό) nolimitbyEX_EXP=κατά γραμμή (χωρίς περιορισμό) CarCategory=Κατηγορία οχήματος -ExpenseRangeOffset=Ποσό αντιστάθμισης: %s +ExpenseRangeOffset=Ποσό απόκλισης: %s RangeIk=Εύρος χιλιομέτρων -AttachTheNewLineToTheDocument=Συνδέστε τη γραμμή σε ένα φορτωμένο έγγραφο +AttachTheNewLineToTheDocument=Συνδέστε τη γραμμή με ένα μεταφορτωμένο έγγραφο diff --git a/htdocs/langs/el_GR/users.lang b/htdocs/langs/el_GR/users.lang index 378d76f415f..24f318bfb6e 100644 --- a/htdocs/langs/el_GR/users.lang +++ b/htdocs/langs/el_GR/users.lang @@ -1,18 +1,18 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=Περιοχή HRM +HRMArea=Τομέας HRM UserCard=Καρτέλα Χρήστη GroupCard=Καρτέλα Ομάδας Permission=Άδεια Permissions=Άδειες -EditPassword=Επεξεργασία κωδικού -SendNewPassword=Επαναδημιουργία και αποστολή κωδικού -SendNewPasswordLink=Αποστολή URL για επαναφορά κωδικού -ReinitPassword=Επαναδημιουργία κωδικού -PasswordChangedTo=Ο κωδικός άλλαξε σε: %s -SubjectNewPassword=Ο νέος σας κωδικός για %s -GroupRights=Άδειες ομάδας -UserRights=Άδειες χρήστη -Credentials=Προσόντα +EditPassword=Επεξεργασία κωδικού πρόσβασης +SendNewPassword=Επαναδημιουργία και αποστολή κωδικού πρόσβασης +SendNewPasswordLink=Αποστολή συνδέσμου για επαναφορά κωδικού πρόσβασης +ReinitPassword=Επαναδημιουργία κωδικού πρόσβασης +PasswordChangedTo=Ο κωδικός πρόσβασης άλλαξε σε: %s +SubjectNewPassword=Ο νέος σας κωδικός πρόσβασης για %s +GroupRights=Δικαιώματα ομάδας +UserRights=Δικαιώματα χρήστη +Credentials=Διαπιστευτήρια UserGUISetup=Ρύθμιση εμφάνισης χρήστη DisableUser=Απενεργοποίηση DisableAUser=Απενεργοποίηση ενός χρήστη @@ -21,22 +21,22 @@ DeleteAUser=Διαγραφή ενός χρήστη EnableAUser=Ενεργοποίηση ενός χρήστη DeleteGroup=Διαγραφή DeleteAGroup=Διαγραφή μιας ομάδας -ConfirmDisableUser=Είστε σίγουρος ότι θέλετε να απενεργοποιήσετε το χρήστη %s; -ConfirmDeleteUser=Είστε σίγουρος ότι θέλετε να διαγράψετε το χρήστη %s; -ConfirmDeleteGroup=Είστε σίγουρος ότι θέλετε να διαγράψετε την ομάδα %s; -ConfirmEnableUser=Είστε σίγουρος ότι θέλετε να ενεργοποιήσετε τον χρήστη %s; -ConfirmReinitPassword=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο κωδικό για τον χρήστη %s; -ConfirmSendNewPassword=Είστε σίγουρος ότι θέλετε να δημιουργήσετε και να αποστείλετε καινούριο κωδικό για τον χρήστη %s; +ConfirmDisableUser=Είστε σίγουροι ότι θέλετε να απενεργοποιήσετε το χρήστη %s; +ConfirmDeleteUser=Είστε σίγουροι ότι θέλετε να διαγράψετε το χρήστη %s; +ConfirmDeleteGroup=Είστε σίγουροι ότι θέλετε να διαγράψετε την ομάδα %s; +ConfirmEnableUser=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε τον χρήστη %s; +ConfirmReinitPassword=Είστε σίγουροι ότι θέλετε να δημιουργήσετε καινούριο κωδικό για τον χρήστη %s; +ConfirmSendNewPassword=Είστε σίγουροι ότι θέλετε να δημιουργήσετε και να αποστείλετε καινούριο κωδικό για τον χρήστη %s; NewUser=Νέος χρήστης CreateUser=Δημιουργία χρήστη -LoginNotDefined=Το όνομα χρήστη δεν είναι καθορισμένο -NameNotDefined=Το όνομα δεν είναι καθορισμένο +LoginNotDefined=Το όνομα χρήστη δεν έχει οριστεί. +NameNotDefined=Το όνομα δεν έχει οριστεί. ListOfUsers=Λίστα χρηστών SuperAdministrator=Υπερδιαχειριστής -SuperAdministratorDesc=Διαχειριστής με όλα τα δικαιώματα +SuperAdministratorDesc=Καθολικός διαχειριστής AdministratorDesc=Διαχειριστής DefaultRights=Προεπιλεγμένα δικαιώματα -DefaultRightsDesc=Καθορίστε εδώ τα προεπιλεγμένα δικαιώματα που χορηγούνται αυτόματα σε ένα νέο χρήστη (για να τροποποιήσετε τα δικαιώματα για τους υπάρχοντες χρήστες, πηγαίνετε στην κάρτα χρήστη). +DefaultRightsDesc=Καθορίστε εδώ τα προεπιλεγμένα δικαιώματα που χορηγούνται αυτόματα σε ένα νέο χρήστη (για να τροποποιήσετε τα δικαιώματα για τους υπάρχοντες χρήστες, πηγαίνετε στην καρτέλα χρήστη). DolibarrUsers=Χρήστες Dolibarr LastName=Επίθετο FirstName=Όνομα @@ -44,83 +44,83 @@ ListOfGroups=Λίστα ομάδων NewGroup=Νέα ομάδα CreateGroup=Δημιουργία ομάδας RemoveFromGroup=Αφαίρεση από την ομάδα -PasswordChangedAndSentTo=Password changed and sent to %s. +PasswordChangedAndSentTo=Ο κωδικός πρόσβασης άλλαξε και στάλθηκε στο %s . PasswordChangeRequest=Αίτημα αλλαγής κωδικού πρόσβασης για %s -PasswordChangeRequestSent=Request to change password for %s sent to %s. +PasswordChangeRequestSent=Το αίτημα για αλλαγή κωδικού πρόσβασης για %s στάλθηκε στο %s . IfLoginExistPasswordRequestSent=Εάν αυτή η σύνδεση αφορά έγκυρο λογαριασμό, έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. IfEmailExistPasswordRequestSent=Εάν αυτό το email είναι έγκυρος λογαριασμός, έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. -ConfirmPasswordReset=Επιβεβαιώστε την επαναφορά κωδικού πρόσβασης +ConfirmPasswordReset=Επιβεβαίωση της επαναφοράς κωδικού πρόσβασης MenuUsersAndGroups=Χρήστες και Ομάδες -LastGroupsCreated=Οι τελευταίες ομάδες %s δημιουργήθηκαν -LastUsersCreated=Τελευταίοι %s χρήστε που δημιουργήθηκαν +LastGroupsCreated=Οι τελευταίες %s ομάδες που δημιουργήθηκαν +LastUsersCreated=Τελευταίοι %s χρήστες που δημιουργήθηκαν ShowGroup=Εμφάνιση ομάδας ShowUser=Εμφάνιση χρήστη NonAffectedUsers=Non affected users -UserModified=User modified successfully -PhotoFile=Photo file -ListOfUsersInGroup=List of users in this group -ListOfGroupsForUser=List of groups for this user -LinkToCompanyContact=Link to third party / contact -LinkedToDolibarrMember=Link to member +UserModified=Ο χρήστης τροποποιήθηκε με επιτυχία +PhotoFile=Αρχείο φωτογραφίας +ListOfUsersInGroup=Λίστα χρηστών σε αυτήν την ομάδα +ListOfGroupsForUser=Λίστα ομάδων για αυτόν τον χρήστη +LinkToCompanyContact=Σύνδεσμος προς τρίτο μέρος / επαφή +LinkedToDolibarrMember=Σύνδεσμος με μέλος LinkedToDolibarrUser=Σύνδεσμος προς χρήστη LinkedToDolibarrThirdParty=Σύνδεσμος προς τρίτο μέρος -CreateDolibarrLogin=Create a user -CreateDolibarrThirdParty=Create a third party -LoginAccountDisableInDolibarr=Account disabled in Dolibarr. +CreateDolibarrLogin=Δημιουργία ενός χρήστη +CreateDolibarrThirdParty=Δημιουργία τρίτου μέρους +LoginAccountDisableInDolibarr=Ο λογαριασμός απενεργοποιήθηκε στο Dolibarr. UsePersonalValue=Use personal value -InternalUser=Internal user -ExportDataset_user_1=Χρήστες και τις ιδιότητές τους +InternalUser=Εσωτερικός χρήστης +ExportDataset_user_1=Οι χρήστες και οι ιδιότητές τους DomainUser=Domain user %s -Reactivate=Reactivate -CreateInternalUserDesc=Αυτή η φόρμα σάς επιτρέπει να δημιουργήσετε έναν εσωτερικό χρήστη στην εταιρεία / οργανισμό σας. Για να δημιουργήσετε έναν εξωτερικό χρήστη (πελάτη, προμηθευτή κ.λπ.), χρησιμοποιήστε το κουμπί "Δημιουργία χρήστη Dolibarr" από την κάρτα επαφών του τρίτου μέρους. -InternalExternalDesc=Ένας εσωτερικός χρήστης είναι ένας χρήστης που ανήκει στην εταιρεία/οργανισμό σας ή είναι συνεργάτης χρήστης εκτός του οργανισμού σας που μπορεί να χρειάζεται να δει περισσότερα δεδομένα από τα δεδομένα που σχετίζονται με την εταιρεία του (το σύστημα αδειών θα καθορίσει τι μπορεί ή τι δεν μπορεί να δει ή να κάνει).
    Ένας εξωτερικός χρήστης είναι ένας πελάτης, προμηθευτής ή άλλος που πρέπει να βλέπει ΜΟΝΟ δεδομένα που σχετίζονται με τον εαυτό του (Η δημιουργία εξωτερικού χρήστη για τρίτο μέρος μπορεί να γίνει από την εγγραφή επαφής του τρίτου μέρους).

    Και στις δύο περιπτώσεις, πρέπει να εκχωρήσετε δικαιώματα για τις δυνατότητες που χρειάζεται ο χρήστης. -PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. -Inherited=Inherited +Reactivate=Επανενεργοποίηση +CreateInternalUserDesc=Αυτή η φόρμα σάς επιτρέπει να δημιουργήσετε έναν εσωτερικό χρήστη στην εταιρεία/οργανισμό σας. Για να δημιουργήσετε έναν εξωτερικό χρήστη (πελάτη, προμηθευτή κ.λπ. ..), χρησιμοποιήστε το κουμπί "Δημιουργία χρήστη Dolibarr" από την κάρτα επικοινωνίας αυτού του τρίτου μέρους. +InternalExternalDesc=Ένας εσωτερικός χρήστης είναι ένας χρήστης που ανήκει στην εταιρεία/οργανισμό σας ή είναι συνεργάτης χρήστης εκτός του οργανισμού σας που μπορεί να χρειάζεται να δει περισσότερα δεδομένα από τα δεδομένα που σχετίζονται με την εταιρεία του (το σύστημα δικαιωμάτων θα καθορίσει τι μπορεί ή τι δεν μπορεί να δει ή να κάνει).
    Ένας εξωτερικός χρήστης είναι ένας πελάτης, προμηθευτής ή άλλος που πρέπει να βλέπει ΜΟΝΟ δεδομένα που σχετίζονται με τον εαυτό του (Η δημιουργία εξωτερικού χρήστη για τρίτο μέρος μπορεί να γίνει από την εγγραφή επαφής του τρίτου μέρους).

    Και στις δύο περιπτώσεις, πρέπει να εκχωρήσετε δικαιώματα για τις δυνατότητες που χρειάζεται ο χρήστης. +PermissionInheritedFromAGroup=Η άδεια παραχωρήθηκε επειδή κληρονομήθηκε από μια ομάδα του χρήστη +Inherited=Κληρονομήθηκε UserWillBe=Ο χρήστης που δημιουργήθηκε θα είναι -UserWillBeInternalUser=Δημιουργήθηκε χρήστη θα είναι ένας εσωτερικός χρήστης (επειδή δεν συνδέεται με ένα συγκεκριμένο τρίτο μέρος) -UserWillBeExternalUser=Δημιουργήθηκε χρήστης θα είναι μια εξωτερική χρήστη (επειδή συνδέονται με μια συγκεκριμένη τρίτο μέρος) +UserWillBeInternalUser=Ο χρήστης που δημιουργήθηκε θα είναι εσωτερικός χρήστης (επειδή δεν συνδέεται με συγκεκριμένο τρίτο μέρος) +UserWillBeExternalUser=Ο χρήστης που δημιουργήθηκε θα είναι εξωτερικός χρήστης (επειδή συνδέεται με ένα συγκεκριμένο τρίτο μέρος) IdPhoneCaller=Id phone caller -NewUserCreated=User %s created -NewUserPassword=Password change for %s +NewUserCreated=Ο χρήστης %s δημιουργήθηκε +NewUserPassword=Αλλαγή κωδικού πρόσβασης για %s NewPasswordValidated=Ο νέος σας κωδικός έχει επικυρωθεί και πρέπει να χρησιμοποιηθεί τώρα για να συνδεθείτε. -EventUserModified=User %s modified -UserDisabled=User %s disabled -UserEnabled=User %s activated -UserDeleted=User %s removed -NewGroupCreated=Group %s created -GroupModified=Ομάδα %s τροποποιημένη -GroupDeleted=Group %s removed -ConfirmCreateContact=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτή την επαφή; -ConfirmCreateLogin=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτό το μέλος; -ConfirmCreateThirdParty=Είστε βέβαιοι ότι θέλετε να δημιουργήσετε ένα τρίτο μέρος για αυτό το μέλος; +EventUserModified=Ο χρήστης %s τροποποιήθηκε +UserDisabled=Ο χρήστης %s απενεργοποιήθηκε +UserEnabled=Ο χρήστης %s ενεργοποιήθηκε +UserDeleted=Ο χρήστης %s καταργήθηκε +NewGroupCreated=Δημιουργήθηκε η ομάδα %s +GroupModified=Η ομάδα %s τροποποιήθηκε +GroupDeleted=Η ομάδα %s καταργήθηκε +ConfirmCreateContact=Είστε σίγουροι ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτή την επαφή; +ConfirmCreateLogin=Είστε σίγουροι ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτό το μέλος; +ConfirmCreateThirdParty=Είστε σίγουροι ότι θέλετε να δημιουργήσετε ένα τρίτο μέρος για αυτό το μέλος; LoginToCreate=Login to create -NameToCreate=Name of third party to create -YourRole=Your roles -YourQuotaOfUsersIsReached=Your quota of active users is reached ! +NameToCreate=Όνομα τρίτου μέρους προς δημιουργία +YourRole=Οι ρόλοι σας +YourQuotaOfUsersIsReached=Συμπληρώθηκε το όριο ενεργών χρηστών σας! NbOfUsers=Αριθμός χρηστών NbOfPermissions=Αριθμός αδειών -DontDowngradeSuperAdmin=Μόνο μια superadmin μπορεί να προβεί στην ανακατάταξη ενός superadmin +DontDowngradeSuperAdmin=Μόνο ένας υπερδιαχειριστής μπορεί να υποβαθμίσει έναν υπερδιαχειριστή HierarchicalResponsible=Επόπτης HierarchicView=Ιεραρχική προβολή -UseTypeFieldToChange=Χρησιμοποιήστε είδος πεδίου για να αλλάξετε -OpenIDURL=OpenID URL +UseTypeFieldToChange=Χρησιμοποιήστε τύπο πεδίου προς αλλαγή +OpenIDURL=Διεύθυνση URL OpenID LoginUsingOpenID=Χρησιμοποιήστε το OpenID για να συνδεθείτε WeeklyHours=Ώρες εργασίας (ανά εβδομάδα) -ExpectedWorkedHours=Αναμενόμενες ώρες εργασίας την εβδομάδα -ColorUser=Χρώμα του χρήστη +ExpectedWorkedHours=Αναμενόμενες ώρες εργασίας ανά εβδομάδα +ColorUser=Χρώμα χρήστη DisabledInMonoUserMode=Απενεργοποιημένο σε κατάσταση συντήρησης -UserAccountancyCode=Κωδικός λογαριασμού χρήστη +UserAccountancyCode=Λογιστικός κωδικός χρήστη UserLogoff=Αποσύνδεση χρήστη UserLogged=Ο χρήστης καταγράφηκε DateOfEmployment=Ημερομηνία πρόσληψης -DateEmployment=Θέση εργασίας +DateEmployment=Εργασία DateEmploymentStart=Ημερομηνία Έναρξης Απασχόλησης DateEmploymentEnd=Ημερομηνία λήξης απασχόλησης RangeOfLoginValidity=Εύρος διάρκειας εγκυρότητας πρόσβασης CantDisableYourself=Δεν μπορείτε να απενεργοποιήσετε το δικό σας αρχείο χρήστη -ForceUserExpenseValidator=Έγκριση έκθεσης εξόδου ισχύος -ForceUserHolidayValidator=Έγκριση αίτησης για άδεια εξόδου -ValidatorIsSupervisorByDefault=Από προεπιλογή, ο επικυρωτής είναι ο επόπτης του χρήστη. Κρατήστε κενό για να διατηρήσετε αυτή τη συμπεριφορά. +ForceUserExpenseValidator=Επιβολή επικύρωσης αναφοράς εξόδων +ForceUserHolidayValidator=Επιβολή επικύρωσης αιτήματος άδειας +ValidatorIsSupervisorByDefault=Από προεπιλογή, ο επικυρωτής είναι ο επόπτης του χρήστη. Αφήστε κενό για να διατηρήσετε αυτή τη συμπεριφορά. UserPersonalEmail=Προσωπικό email UserPersonalMobile=Προσωπικό κινητό τηλέφωνο WarningNotLangOfInterface=Προειδοποίηση, αυτή είναι η κύρια γλώσσα που μιλά ο χρήστης και όχι η γλώσσα της διεπαφής που επέλεξε να δει. Για να αλλάξετε τη γλώσσα διεπαφής που είναι ορατή από αυτόν τον χρήστη, μεταβείτε στην καρτέλα %s diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang index 46c04f3276a..5a801bdc195 100644 --- a/htdocs/langs/el_GR/website.lang +++ b/htdocs/langs/el_GR/website.lang @@ -1,143 +1,146 @@ # Dolibarr language file - Source file is en_US - website Shortname=Κώδικας -WebsiteSetupDesc=Δημιουργήστε εδώ τις ιστοσελίδες που θέλετε να χρησιμοποιήσετε. Στη συνέχεια, μεταβείτε στο μενού Websites για να τις επεξεργαστείτε. -DeleteWebsite=Διαγραφή ιστοχώρου -ConfirmDeleteWebsite=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον ιστότοπο; Όλες οι σελίδες και το περιεχόμενό της θα καταργηθούν επίσης. Τα αρχεία που μεταφορτώνονται (όπως στον κατάλογο medias, στην ενότητα ECM, ...) θα παραμείνουν. -WEBSITE_TYPE_CONTAINER=Τύπος σελίδας / δοχείο +WebsiteName=Όνομα της ιστοσελίδας +WebsiteSetupDesc=Δημιουργήστε εδώ τις ιστοσελίδες που θέλετε να χρησιμοποιήσετε. Στη συνέχεια, μεταβείτε στο μενού Ιστοσελίδες για να τις επεξεργαστείτε. +DeleteWebsite=Διαγραφή ιστότοπου +ConfirmDeleteWebsite=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον ιστότοπο; Όλες οι σελίδες και το περιεχόμενό του θα αφαιρεθούν επίσης. Τα μεταφορτωμένα αρχεία (όπως στον κατάλογο μέσων, στην ενότητα ECM, ...) θα παραμείνουν. +WEBSITE_TYPE_CONTAINER=Τύπος σελίδας/κοντέινερ WEBSITE_PAGE_EXAMPLE=Web σελίδα που θα χρησιμοποιηθεί ως παράδειγμα WEBSITE_PAGENAME=Όνομα / ψευδώνυμο σελίδας WEBSITE_ALIASALT=Εναλλακτικά ονόματα σελίδων / ψευδώνυμα WEBSITE_ALIASALTDesc=Χρησιμοποιήστε εδώ μια λίστα με άλλα ονόματα / ψευδώνυμα, ώστε η σελίδα να είναι επίσης προσπελάσιμη χρησιμοποιώντας αυτά τα άλλα ονόματα / ψευδώνυμα (για παράδειγμα το παλιό όνομα μετά τη μετονομασία του ψευδωνύμου για να κρατήσει backlink σε παλιές συνδέσεις / ονόματα εργασίας). Η σύνταξη είναι:
    εναλλακτικήεπιλογή1, εναλλακτικήεπιλογή2, ... -WEBSITE_CSS_URL=URL του εξωτερικού αρχείου CSS +WEBSITE_CSS_URL=URL εξωτερικού αρχείου CSS WEBSITE_CSS_INLINE=Περιεχόμενο αρχείου CSS (κοινό σε όλες τις σελίδες) WEBSITE_JS_INLINE=Περιεχόμενο αρχείου Javascript (κοινό σε όλες τις σελίδες) WEBSITE_HTML_HEADER=Προσθήκη στο κάτω μέρος της κεφαλίδας HTML (κοινό σε όλες τις σελίδες) WEBSITE_ROBOT=Αρχείο ρομπότ (robots.txt) -WEBSITE_HTACCESS=Ιστοσελίδα .htaccess +WEBSITE_HTACCESS=Αρχείο .htaccess ιστότοπου WEBSITE_MANIFEST_JSON=Αρχείο manifest.json ιστότοπου -WEBSITE_README=Αρχείο README.md WEBSITE_KEYWORDSDesc=Χρησιμοποιήστε κόμμα για να διαχωρίσετε τιμές -EnterHereLicenseInformation=Εισάγετε εδώ μεταδεδομένα ή πληροφορίες άδειας χρήσης για να συμπληρώσετε ένα αρχείο README.md. εάν διανέμετε τον ιστότοπό σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο πειρασμών. -HtmlHeaderPage=Κεφαλίδα HTML (ειδικά για αυτή τη σελίδα) -PageNameAliasHelp=Όνομα ή ψευδώνυμο της σελίδας.
    Αυτό το ψευδώνυμο χρησιμοποιείται επίσης για τη δημιουργία μιας διεύθυνσης SEO όταν ο ιστότοπος έτρεξε από ένα Virtual host ενός διακομιστή Web (όπως Apacke, Nginx, ...). Χρησιμοποιήστε το κουμπί " %s " για να επεξεργαστείτε αυτό το ψευδώνυμο. -EditTheWebSiteForACommonHeader=Σημείωση: Εάν θέλετε να ορίσετε μια εξατομικευμένη κεφαλίδα για όλες τις σελίδες, επεξεργαστείτε την κεφαλίδα σε επίπεδο ιστότοπου αντί για σελίδα / κοντέινερ. +EnterHereReadmeInformation=Εισάγετε εδώ μια περιγραφή του ιστότοπου. Εάν διανείμετε τον ιστότοπο σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο του προτύπου. +EnterHereLicenseInformation=Εισάγετε εδώ την ΑΔΕΙΑ του κωδικού της ιστοσελίδας. Εάν διανείμετε τον ιστότοπο σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο του προτύπου. +HtmlHeaderPage=Κεφαλίδα HTML (συγκεκριμένη μόνο για αυτήν τη σελίδα) +PageNameAliasHelp=Όνομα ή ψευδώνυμο(alias) της σελίδας.
    Αυτό το ψευδώνυμο χρησιμοποιείται επίσης για τη δημιουργία διεύθυνσης URL SEO όταν ο ιστότοπος εκτελείται από έναν εικονικό κεντρικό υπολογιστή ενός διακομιστή Web (όπως Apacke, Nginx, ...). Χρησιμοποιήστε το κουμπί " %s " για να επεξεργαστείτε αυτό το ψευδώνυμο. +EditTheWebSiteForACommonHeader=Σημείωση: Εάν θέλετε να ορίσετε μια εξατομικευμένη κεφαλίδα(header) για όλες τις σελίδες, επεξεργαστείτε την κεφαλίδα σε επίπεδο ιστότοπου αντί για της σελίδας/κοντέινερ. MediaFiles=Βιβλιοθήκη πολυμέσων EditCss=Επεξεργασία ιδιοτήτων ιστοτόπου EditMenu=Επεξεργασία μενού -EditMedias=Επεξεργασία μέσων +EditMedias=Επεξεργασία πολυμέσων EditPageMeta=Επεξεργασία ιδιοτήτων σελίδας / κοντέινερ -EditInLine=Επεξεργασία εν σειρά +EditInLine=Γρήγορη επεξεργασία AddWebsite=Προσθήκη ιστοτόπου -Webpage=Ιστοσελίδα / δοχείο -AddPage=Προσθήκη σελίδας / δοχείου +Webpage=Ιστοσελίδα/κοντέινερ +AddPage=Προσθήκη σελίδας/κοντέινερ PageContainer=Σελίδα -PreviewOfSiteNotYetAvailable=Η προεπισκόπηση του ιστότοπου σας %s δεν είναι ακόμη διαθέσιμη. Πρέπει πρώτα να ' Εισαγάγετε ένα πλήρες πρότυπο ιστότοπου ' ή απλώς ' Προσθέστε μια σελίδα/κοντέινερ '. -RequestedPageHasNoContentYet=Η σελίδα που ζητήθηκε με id %s δεν έχει ακόμα περιεχόμενο, ή το αρχείο cache .tpl.php καταργήθηκε. Επεξεργαστείτε το περιεχόμενο της σελίδας για να το επιλύσετε. -SiteDeleted=Ο ιστότοπος "%s" διαγράφηκε -PageContent=Σελίδα / Contenair -PageDeleted=Σελίδα / Contenair '%s' της ιστοσελίδας %s διαγράφεται -PageAdded=Σελίδα / Contenair '%s' προστέθηκε -ViewSiteInNewTab=Προβολή χώρου σε νέα καρτέλα +PreviewOfSiteNotYetAvailable=Η προ επισκόπηση του ιστότοπου σας %s δεν είναι ακόμη διαθέσιμη. Πρέπει πρώτα να ' Εισαγετε ένα πλήρες πρότυπο ιστότοπου ' ή απλώς ' Προσθέστε μια σελίδα/κοντέινερ '. +RequestedPageHasNoContentYet=Η ζητούμενη σελίδα με αναγνωριστικό %s δεν έχει ακόμη περιεχόμενο ή το αρχείο προσωρινής μνήμης .tpl.php αφαιρέθηκε. Επεξεργαστείτε το περιεχόμενο της σελίδας για να προχωρήσετε. +SiteDeleted=Ο ιστότοπος '%s' διαγράφηκε +PageContent=Σελίδα/Contenair +PageDeleted=Η σελίδα/Contenair '%s' του ιστότοπου %s διαγράφηκε +PageAdded=Προστέθηκε η σελίδα/Contenair '%s' +ViewSiteInNewTab=Προβολή ιστότοπου σε νέα καρτέλα ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα -SetAsHomePage=Ορισμός σαν αρχική σελίδα +SetAsHomePage=Ορισμός ως αρχική σελίδα RealURL=Πραγματική διεύθυνση URL -ViewWebsiteInProduction=Προβάλετε τον ιστότοπο χρησιμοποιώντας τις διευθύνσεις URL για το σπίτι +ViewWebsiteInProduction=Προβάλετε τον ιστότοπο χρησιμοποιώντας τις διευθύνσεις URL της αρχικής σελίδας +Virtualhost=Εικονικός κεντρικός υπολογιστής ή domain name +VirtualhostDesc=Το όνομα του εικονικού κεντρικού υπολογιστή ή του τομέα (Για παράδειγμα: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Χρήση με Apache / Nginx / ...
    Δημιουργήστε στον διακομιστή σας (Apache, Nginx, ...) ένα αποκλειστικό Virtual Host με το PHP ενεργοποιημένο και έναν ριζικό κατάλογο αρχείων στο
    %s ExampleToUseInApacheVirtualHostConfig=Παράδειγμα χρήσης στη ρύθμιση εικονικού κεντρικού υπολογιστή Apache: YouCanAlsoTestWithPHPS=Χρήση με ενσωματωμένο διακομιστή PHP
    Στο περιβάλλον ανάπτυξης, μπορεί να προτιμάτε να δοκιμάσετε τον ιστότοπο με τον ενσωματωμένο διακομιστή ιστού PHP (απαιτείται PHP 5.5) εκτελώντας
    php -S 0.0.0.0:8080 -t %s YouCanAlsoDeployToAnotherWHP= Δημιουργήστε τον ιστότοπο σας με έναν άλλο πάροχο φιλοξενίας Dolibarr
    Εάν δεν διαθέτετε διακομιστή ιστού όπως ο Apache ή ο NGinx διαθέσιμο στο διαδίκτυο, μπορείτε να εξαγάγετε και να εισαγάγετε τον ιστότοπο σας από ένα πάροχο Dolibarr σε άλλο πάροχο Dolibarr που παρέχει πλήρη ενσωμάτωση με την ενότητα Ιστοσελίδας. Μπορείτε να βρείτε μια λίστα με παρόχους φιλοξενίας Dolibarr στο https://saas.dolibarr.org -CheckVirtualHostPerms=Ελέγξτε επίσης ότι ο χρήστης virtual host (για παράδειγμα www-data) έχει %s δικαιώματα σε αρχεία στο
    %s +CheckVirtualHostPerms=Ελέγξτε επίσης ότι ο χρήστης εικονικού κεντρικού υπολογιστή (για παράδειγμα www-data) έχει %s δικαιώματα σε αρχεία στο
    %s ReadPerm=Ανάγνωση -WritePerm=Γράφω +WritePerm=Εγγραφή TestDeployOnWeb=Δοκιμή / ανάπτυξη στο διαδίκτυο -PreviewSiteServedByWebServer=Προεπισκόπηση %s σε μια νέα καρτέλα.

    Το %s θα εξυπηρετηθεί από έναν εξωτερικό διακομιστή ιστού (όπως Apache, Nginx, IIS). Πρέπει να εγκαταστήσετε και να εγκαταστήσετε αυτόν τον εξυπηρετητή πριν να τονίσετε στον κατάλογο:
    %s
    URL που εξυπηρετείται από εξωτερικό διακομιστή:
    %s +PreviewSiteServedByWebServer= Προεπισκόπηση σε μια νέα καρτέλα.

    Ο %s θα εξυπηρετείται από έναν εξωτερικό διακομιστή ιστού (όπως Apache, Nginx, IIS). Πρέπει να εγκαταστήσετε και να εγκαταστήσετε αυτόν τον εξυπηρετητή πριν ανακατευθύνετε σε αυτόν τον κατάλογο:
    %s
    URL που εξυπηρετείται από εξωτερικό διακομιστή:
    %s PreviewSiteServedByDolibarr= Προεπισκόπηση %s σε νέα καρτέλα.

    Ο %s θα εξυπηρετείται από τον διακομιστή Dolibarr, επομένως δεν χρειάζεται επιπλέον διακομιστή ιστού (όπως Apache, Nginx, IIS) για να εγκατασταθεί.
    Το άβολο είναι ότι οι διευθύνσεις URL των σελίδων δεν είναι φιλικές προς το χρήστη και ξεκινούν με τη διαδρομή του Dolibarr σας.
    URL που εξυπηρετούνται από Dolibarr:
    %s

    Για να χρησιμοποιήσετε το δικό σας web server για την εξυπηρέτηση αυτής της ιστοσελίδας, δημιουργήστε ενα virtual host που ανακατευθύνει στον κατάλογο
    %s
    στη συνέχεια, πληκτρολογήστε το όνομα του εικονικού διακομιστή στις ιδιότητες αυτού του ιστότοπου και κάντε κλικ στον σύνδεσμο "Δοκιμή/Ανάπτυξη στον Ιστό". VirtualHostUrlNotDefined=Η διεύθυνση URL του εικονικού κεντρικού υπολογιστή που εξυπηρετείται από εξωτερικό διακομιστή ιστού δεν έχει οριστεί NoPageYet=Δεν υπάρχουν ακόμη σελίδες -YouCanCreatePageOrImportTemplate=Μπορείτε να δημιουργήσετε μια νέα σελίδα ή να εισαγάγετε ένα πλήρες πρότυπο ιστότοπου +YouCanCreatePageOrImportTemplate=Μπορείτε να δημιουργήσετε μια νέα σελίδα ή να εισάγετε ένα πλήρες πρότυπο ιστότοπου SyntaxHelp=Βοήθεια για συγκεκριμένες συμβουλές σύνταξης -YouCanEditHtmlSourceckeditor=Μπορείτε να επεξεργαστείτε τον πηγαίο κώδικα HTML χρησιμοποιώντας το κουμπί "Source" στο πρόγραμμα επεξεργασίας. +YouCanEditHtmlSourceckeditor=Μπορείτε να επεξεργαστείτε τον πηγαίο κώδικα HTML χρησιμοποιώντας το κουμπί "Πηγή" στο πρόγραμμα επεξεργασίας. YouCanEditHtmlSource=
    Μπορείτε να συμπεριλάβετε κώδικα PHP σε αυτήν την πηγή χρησιμοποιώντας ετικέτες <?php ?>. Οι ακόλουθες καθολικές μεταβλητές είναι διαθέσιμες: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Μπορείτε επίσης να συμπεριλάβετε το περιεχόμενο μιας άλλης σελίδας / Container με την ακόλουθη σύνταξη:
    <?php includeContainer('alias_of_container_to_include'); ?>

    Μπορείτε να κάνετε ανακατεύθυνση σε άλλη σελίδα / Container με την ακόλουθη σύνταξη (Σημείωση: μην κανετε output περιεχομένου πριν από μια ανακατεύθυνση):
    < php redirectToContainer ( «alias_of_container_to_redirect_to»)? ; >

    Για να προσθέσετε ένα σύνδεσμο σε μια άλλη σελίδα, χρησιμοποιήστε τη σύνταξη:
    <a href = «alias_of_page_to_link_to.php» >mylink<a>

    Για να συμπεριλάβετεένα σύνδεσμο μεταφορτωσης(download) ένα αρχείο που είναι αποθηκευμένο στον φάκελο documents , χρησιμοποιήστε το document.phpwrapper:
    παράδειγμα, για ένα αρχείο που βρίσκεται στο documents/ECM (πρέπει να είστε συνδεδεμένοι), η σύνταξη είναι:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    για ένα αρχείο που βρίσκεται στο documents/media (ανοιχτός κατάλογος με δημόσια πρόσβαση), η σύνταξη είναι:
    <a href="/document.php?modulepart=media&file=[relative_dir/]filename.ext">
    Για ένα διαμοιραζόμενο αρχείο με έναν σύνδεσμο(ανοικτή πρόσβαση χρησιμοποιώντας το sharing hash key του αρχείου), η σύνταξη είναι:
    <a href="/document.php?hashp=publicsharekeyoffile">

    για να περιλαμβάνει μια εικόνααποθηκευμενη στον φακελοdocuments, χρησιμοποιήστε τηνviewimage.php wrapper:
    Παράδειγμα, για μια εικόνα στο documents/media (ανοιχτός κατάλογος με δημόσια πρόσβαση), η σύνταξη είναι:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Για τον διαμοιρασμό εικόνας με ένα σύνδεσμο (δώσε πρόσβαση χρησιμοποιώντας το sharing hash key του αρχείου), η σύνταξη είναι:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSourceMore=
    Περισσότερα παραδείγματα HTML ή δυναμικού κώδικα είναι διαθέσιμα στο τεκμηρίωση του wiki
    . -ClonePage=Σελίδα κλωνοποίησης / κοντέινερ -CloneSite=Κλωνήστε τον ιστότοπο +ClonePage=Κλωνοποίηση σελίδας/κοντέινερ +CloneSite=Κλωνοποίηση ιστοσελίδας SiteAdded=Προστέθηκε ιστότοπος -ConfirmClonePage=Εισαγάγετε τον κωδικό / ψευδώνυμο της νέας σελίδας και αν πρόκειται για μετάφραση της κλωνοποιημένης σελίδας. -PageIsANewTranslation=Η νέα σελίδα είναι μια μετάφραση της τρέχουσας σελίδας; -LanguageMustNotBeSameThanClonedPage=Κλωνίζετε μια σελίδα ως μετάφραση. Η γλώσσα της νέας σελίδας πρέπει να είναι διαφορετική από τη γλώσσα της σελίδας πηγής. -ParentPageId=Αναγνωριστικό σελίδας γονέων +ConfirmClonePage=Παρακαλώ εισάγετε τον κωδικό / ψευδώνυμο της νέας σελίδας και αν πρόκειται για μετάφραση της κλωνοποιημένης σελίδας. +PageIsANewTranslation=Η νέα σελίδα είναι μετάφραση της τρέχουσας σελίδας; +LanguageMustNotBeSameThanClonedPage=Κλωνοποιείτε μια σελίδα ως μετάφραση. Η γλώσσα της νέας σελίδας πρέπει να είναι διαφορετική από τη γλώσσα της αρχικής σελίδας. +ParentPageId=Αναγνωριστικό γονικής σελίδας WebsiteId=Αναγνωριστικό ιστοτόπου -CreateByFetchingExternalPage=Δημιουργία σελίδας / κοντέινερ με ανάκτηση σελίδας από εξωτερική διεύθυνση URL ... -OrEnterPageInfoManually=Ή δημιουργήστε σελίδα από το μηδέν ή από ένα πρότυπο σελίδας ... +CreateByFetchingExternalPage=Δημιουργία σελίδας/contenair με ανάκτηση σελίδας από εξωτερική διεύθυνση URL ... +OrEnterPageInfoManually=Ή δημιουργήστε σελίδα από την αρχή ή από ένα πρότυπο σελίδας ... FetchAndCreate=Λήψη και Δημιουργία ExportSite=Εξαγωγή ιστότοπου ImportSite=Εισαγωγή προτύπου ιστότοπου IDOfPage=Αναγνωριστικό σελίδας -Banner=Πανό -BlogPost=Ανάρτηση -WebsiteAccount=Λογαριασμός ιστοτόπου +Banner=Banner +BlogPost=Blog post +WebsiteAccount=Λογαριασμός ιστότοπου WebsiteAccounts=Λογαριασμοί ιστοτόπων AddWebsiteAccount=Δημιουργία λογαριασμού ιστότοπου BackToListForThirdParty=Επιστροφή στη λίστα για το τρίτο μέρος -DisableSiteFirst=Απενεργοποιήστε πρώτα τον ιστότοπο -MyContainerTitle=Ο τίτλος ιστότοπού μου -AnotherContainer=Αυτός είναι ο τρόπος με τον οποίο μπορείτε να συμπεριλάβετε περιεχόμενο μιας άλλης σελίδας / κοντέινερ (ενδεχομένως να έχετε ένα σφάλμα αν ενεργοποιήσετε τον δυναμικό κώδικα επειδή ο ενσωματωμένος υποελεγχος δεν υπάρχει) -SorryWebsiteIsCurrentlyOffLine=Λυπούμαστε, αυτός ο ιστότοπος είναι εκτός σύνδεσης. Παρακαλώ ξανασκέδασε αργότερα ... +DisableSiteFirst=Απενεργοποιήστε τον ιστότοπο πρώτα +MyContainerTitle=Ο τίτλος του ιστότοπου μου +AnotherContainer=Αυτός είναι ο τρόπος για να συμπεριλάβετε περιεχόμενο μιας άλλης σελίδας/contenair (ενδεχομένως να έχετε ένα σφάλμα αν ενεργοποιήσετε τον δυναμικό κώδικα επειδή το ενσωματωμένο subcontainer μπορεί να μην υπάρχει) +SorryWebsiteIsCurrentlyOffLine=Λυπούμαστε, αυτός ο ιστότοπος είναι προς το παρόν εκτός σύνδεσης. Παρακαλώ επιστρέψτε αργότερα... WEBSITE_USE_WEBSITE_ACCOUNTS=Ενεργοποιήστε τον πίνακα λογαριασμού web site -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Ενεργοποιήστε τον πίνακα για να αποθηκεύσετε λογαριασμούς ιστότοπων (login / pass) για κάθε ιστότοπο / τρίτο μέρος -YouMustDefineTheHomePage=Πρέπει πρώτα να ορίσετε την προεπιλεγμένη Αρχική σελίδα -OnlyEditionOfSourceForGrabbedContentFuture=Προειδοποίηση: Η δημιουργία ιστοσελίδας με εισαγωγή εξωτερικής ιστοσελίδας προορίζεται για έμπειρους χρήστες. Ανάλογα με την πολυπλοκότητα της σελίδας προέλευσης, το αποτέλεσμα της εισαγωγής ενδέχεται να διαφέρει από το πρωτότυπο. Επίσης, εάν η σελίδα προέλευσης χρησιμοποιεί κοινά στυλ CSS ή javascript σε διένεξη, ενδέχεται να σπάσει την εμφάνιση ή τις δυνατότητες του προγράμματος επεξεργασίας ιστότοπου όταν εργάζεστε σε αυτήν τη σελίδα. Αυτή η μέθοδος είναι ένας πιο γρήγορος τρόπος για να δημιουργήσετε μια σελίδα, αλλά συνιστάται να δημιουργήσετε τη νέα σας σελίδα από το μηδέν ή από ένα προτεινόμενο πρότυπο σελίδας.
    Σημειώστε επίσης ότι ο ενσωματωμένος επεξεργαστής ενδέχεται να μην λειτουργεί σωστά όταν χρησιμοποιείται σε μια αρπαγή εξωτερική σελίδα. +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Ενεργοποιήστε τον πίνακα για να αποθηκεύετε λογαριασμούς ιστότοπων (login / pass) για κάθε ιστότοπο / τρίτο μέρος +YouMustDefineTheHomePage=Πρέπει πρώτα να ορίσετε την Αρχική σελίδα +OnlyEditionOfSourceForGrabbedContentFuture=Προειδοποίηση: Η δημιουργία ιστοσελίδας με εισαγωγή εξωτερικής ιστοσελίδας αφορά έμπειρους χρήστες. Ανάλογα με την πολυπλοκότητα της σελίδας προέλευσης, το αποτέλεσμα της εισαγωγής ενδέχεται να διαφέρει από το πρωτότυπο. Επίσης, εάν η σελίδα προέλευσης χρησιμοποιεί κοινά στυλ CSS ή javascript σε διένεξη, ενδέχεται να σπάσει την εμφάνιση ή τις δυνατότητες του προγράμματος επεξεργασίας ιστότοπου όταν εργάζεστε σε αυτήν τη σελίδα. Αυτή η μέθοδος είναι ένας πιο γρήγορος τρόπος για να δημιουργήσετε μια σελίδα, αλλά συνιστάται να δημιουργήσετε τη νέα σας σελίδα από το μηδέν ή από ένα προτεινόμενο πρότυπο σελίδας.
    Σημειώστε επίσης ότι ο ενσωματωμένος επεξεργαστής ενδέχεται να μην λειτουργεί σωστά όταν χρησιμοποιείται με κώδικα μιας εξωτερικής σελίδας. OnlyEditionOfSourceForGrabbedContent=Μόνο έκδοση πηγής HTML είναι δυνατή όταν το περιεχόμενο έχει ληφθεί από έναν εξωτερικό ιστότοπο -GrabImagesInto=Πιάσε επίσης τις εικόνες που βρέθηκαν στο css και τη σελίδα. +GrabImagesInto=Λήψη και των εικόνων που βρέθηκαν στο css και τη σελίδα. ImagesShouldBeSavedInto=Οι εικόνες πρέπει να αποθηκεύονται στον κατάλογο -WebsiteRootOfImages=Ο κατάλογος root για εικόνες ιστότοπων +WebsiteRootOfImages=Κατάλογος εικόνων του ιστότοπου SubdirOfPage=Υπο-κατάλογος αφιερωμένος στη σελίδα -AliasPageAlreadyExists=Η σελίδα αλλοιώσεων %s υπάρχει ήδη +AliasPageAlreadyExists=Η σελίδα ψευδώνυμου %s υπάρχει ήδη CorporateHomePage=Αρχική σελίδα της εταιρείας EmptyPage=Κενή σελίδα ExternalURLMustStartWithHttp=Η εξωτερική διεύθυνση URL πρέπει να ξεκινά με http: // ή https: // -ZipOfWebsitePackageToImport=Μεταφορτώστε το αρχείο Zip του πακέτου πρότυπου ιστότοπου +ZipOfWebsitePackageToImport=Ανεβάστε το αρχείο Zip του πακέτου προτύπων ιστότοπου ZipOfWebsitePackageToLoad=ή Επιλέξτε ένα διαθέσιμο πακέτο πρότυπου ιστότοπου ShowSubcontainers=Εμφάνιση δυναμικού περιεχομένου InternalURLOfPage=Εσωτερική διεύθυνση URL της σελίδας -ThisPageIsTranslationOf=Αυτή η σελίδα / δοχείο είναι μια μετάφραση του +ThisPageIsTranslationOf=Αυτή η Σελίδα/Contenair είναι μια μετάφραση του ThisPageHasTranslationPages=Αυτή η σελίδα / κοντέινερ έχει μετάφραση NoWebSiteCreateOneFirst=Δεν έχει δημιουργηθεί ακόμα ιστότοπος. Δημιουργήστε ένα πρώτα. -GoTo=Παω σε -DynamicPHPCodeContainsAForbiddenInstruction=Μπορείτε να προσθέσετε δυναμικό κώδικα PHP που περιέχει την εντολή PHP ' %s ' που είναι απαγορευμένη από προεπιλογή ως δυναμικό περιεχόμενο (δείτε τις κρυφές επιλογές WEBSITE_PHP_ALLOW_xxx για να αυξήσετε τη λίστα επιτρεπόμενων εντολών). -NotAllowedToAddDynamicContent=Δεν έχετε δικαίωμα να προσθέσετε ή να επεξεργαστείτε δυναμικό περιεχόμενο PHP σε ιστότοπους. Ζητήστε άδεια ή απλά να διατηρήσετε τον κώδικα σε ετικέτες php χωρίς τροποποίηση. +GoTo=Μετάβαση σε +DynamicPHPCodeContainsAForbiddenInstruction=Προσθέσατε δυναμικό κώδικα PHP που περιέχει την εντολή PHP ' %s ' αυτό απαγορεύεται ως δυναμικό περιεχόμενο (δείτε κρυφές επιλογές WEBSITE_PHPx για να συμπληρώσετε την λίστα επιτρεπτών εντολών ALLOW_x). +NotAllowedToAddDynamicContent=Δεν έχετε δικαίωμα να προσθέσετε ή να επεξεργαστείτε δυναμικό περιεχόμενο PHP σε ιστότοπους. Ζητήστε άδεια ή απλά να διατηρήσετε τον κώδικα σε php tags χωρίς τροποποίηση. ReplaceWebsiteContent=Αναζήτηση ή Αντικατάσταση περιεχομένου ιστότοπου -DeleteAlsoJs=Διαγράψτε επίσης όλα τα αρχεία javascript ειδικά για αυτόν τον ιστότοπο; -DeleteAlsoMedias=Διαγράψτε επίσης όλα τα αρχεία μέσων που αφορούν συγκεκριμένα αυτόν τον ιστότοπο; +DeleteAlsoJs=Διαγράψτε επίσης όλα τα αρχεία javascript αυτού του ιστότοπου; +DeleteAlsoMedias=Διαγράψτε επίσης όλα τα αρχεία πολυμέσων που αφορούν συγκεκριμένα αυτόν τον ιστότοπο; MyWebsitePages=Οι σελίδες του ιστότοπού μου -SearchReplaceInto=Αναζήτηση | Αντικαταστήστε το +SearchReplaceInto=Αναζήτηση | Αντικατάσταση ReplaceString=Νέα συμβολοσειρά -CSSContentTooltipHelp=Εισάγετε εδώ το περιεχόμενο CSS. Για να αποφύγετε οποιαδήποτε σύγκρουση με το CSS της εφαρμογής, βεβαιωθείτε ότι έχετε προκαταλάβει όλες τις δηλώσεις με την κλάση .bodywebsite. Για παράδειγμα:

    #mycssselector, input.myclass: hover {...}
    πρέπει να είναι
    .bodywebsite #mycssselector, .website input.myclass: hover {...}

    Σημείωση: Εάν έχετε ένα μεγάλο αρχείο χωρίς αυτό το πρόθεμα, μπορείτε να χρησιμοποιήσετε το 'lessc' για να το μετατρέψετε για να προσθέσετε παντού το πρόθεμα .bodywebsite. -LinkAndScriptsHereAreNotLoadedInEditor=Προειδοποίηση: Αυτό το περιεχόμενο εξάγεται μόνο όταν πρόσβαση σε ιστότοπο από διακομιστή. Δεν χρησιμοποιείται στη λειτουργία Επεξεργασίας, οπότε αν χρειαστεί να φορτώσετε τα αρχεία javascript και στη λειτουργία επεξεργασίας, προσθέστε στη σελίδα σας την ετικέτα 'script src = ...'. +CSSContentTooltipHelp=Εισάγετε εδώ περιεχόμενο CSS. Για να αποφύγετε οποιαδήποτε διένεξη με το CSS της εφαρμογής, φροντίστε να προσθεσετε στην αρχη όλωνς των δηλώσεων την κλάση .bodywebsite. Για παράδειγμα το:

    #mycssselector, input.myclass:hover { ... }
    πρέπει να γίνει
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }

    Σημείωση: Αν έχετε ένα μεγάλο αρχείο χωρίς αυτό το πρόθεμα, μπορείτε να χρησιμοποιήσετε το 'lessc' για να το μετατρέψετε ώστε να προσαρτήσετε το πρόθεμα .bodywebsite παντού. +LinkAndScriptsHereAreNotLoadedInEditor=Προειδοποίηση: Αυτό το περιεχόμενο εμφανίζεται μόνο όταν γίνεται πρόσβαση στον ιστότοπο από διακομιστή. Δεν χρησιμοποιείται στη λειτουργία επεξεργασίας, οπότε αν χρειάζεται να φορτώσετε αρχεία javascript και σε λειτουργία επεξεργασίας, απλώς προσθέστε την ετικέτα σας 'script src=...' στη σελίδα. Dynamiccontent=Δείγμα μιας σελίδας με δυναμικό περιεχόμενο ImportSite=Εισαγωγή προτύπου ιστότοπου -EditInLineOnOff=Η λειτουργία 'Edit inline' είναι %s -ShowSubContainersOnOff=Η κατάσταση εκτέλεσης 'δυναμικού περιεχομένου' είναι %s -GlobalCSSorJS=Παγκόσμιο αρχείο CSS / JS / Header της ιστοσελίδας +EditInLineOnOff=Η λειτουργία «Γρήγορης επεξεργασίας» είναι %s +ShowSubContainersOnOff=Η λειτουργία εκτέλεσης του «δυναμικού περιεχομένου» είναι %s +GlobalCSSorJS=Καθολικό αρχείο CSS/JS/Header του ιστότοπου BackToHomePage=Επιστροφή στην αρχική σελίδα... -TranslationLinks=Μεταφραστικές συνδέσεις +TranslationLinks=Σύνδεσμοι μετάφρασης YouTryToAccessToAFileThatIsNotAWebsitePage=Προσπαθείτε να αποκτήσετε πρόσβαση σε μια σελίδα που δεν είναι διαθέσιμη.
    (ref=%s, type=%s, status=%s) UseTextBetween5And70Chars=Για καλές πρακτικές SEO, χρησιμοποιήστε ένα κείμενο μεταξύ 5 και 70 χαρακτήρων MainLanguage=Κύρια γλώσσα OtherLanguages=Άλλες γλώσσες -UseManifest=Καταχωρίστε ένα αρχείο manifest.json -PublicAuthorAlias=Δημόσιο συντάκτης ψευδώνυμο -AvailableLanguagesAreDefinedIntoWebsiteProperties=Οι διαθέσιμες γλώσσες ορίζονται σε ιδιότητες ιστότοπου -ReplacementDoneInXPages=Η αντικατάσταση έγινε σε σελίδες ή κοντέινερ %s +UseManifest=Παρέχετε ένα αρχείο manifest.json +PublicAuthorAlias=Ψευδώνυμο δημόσιου συντάκτη +AvailableLanguagesAreDefinedIntoWebsiteProperties=Οι διαθέσιμες γλώσσες ορίζονται στις ιδιότητες του ιστότοπου +ReplacementDoneInXPages=Η αντικατάσταση έγινε σε %s Σελίδες ή Contenair RSSFeed=RSS Feed RSSFeedDesc=Μπορείτε να λάβετε μια ροή RSS με πιο πρόσφατα άρθρα με τον τύπο 'blogpost' χρησιμοποιώντας αυτήν τη διεύθυνση URL PagesRegenerated=%s σελίδα(ες)/κοντέινερ(ς) αναδημιουργήθηκαν RegenerateWebsiteContent=Αναδημιουργήστε αρχεία κρυφής μνήμης ιστότοπου AllowedInFrames=Επιτρεπόμενα σε πλαίσιο DefineListOfAltLanguagesInWebsiteProperties=Καθορίστε τη λίστα όλων των διαθέσιμων γλωσσών στις ιδιότητες του ιστότοπου. -GenerateSitemaps=Δημιουργία αρχείου sitemap του ιστότοπου +GenerateSitemaps=Δημιουργία αρχείου ιστότοπου sitemap.xml ConfirmGenerateSitemaps=Εάν επιβεβαιώσετε, θα διαγράψετε το υπάρχον αρχείο sitemap... ConfirmSitemapsCreation=Επιβεβαιώστε τη δημιουργία sitemap SitemapGenerated=Δημιουργήθηκε το αρχείο sitemap %s @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Το Favicon πρέπει να είναι png ErrorFaviconSize=Το Favicon πρέπει να έχει μέγεθος 16x16, 32x32 ή 64x64 FaviconTooltip=Μεταφορτώστε μια εικόνα που πρέπει να είναι png (16x16, 32x32 ή 64x64) +NextContainer=Επόμενη σελίδα/κοντέινερ +PreviousContainer=Προηγούμενη σελίδα/κοντέινερ +WebsiteMustBeDisabled=Ο ιστότοπος πρέπει να είναι σε κατάσταση "%s" +WebpageMustBeDisabled=Η ιστοσελίδα πρέπει να είναι σε κατάσταση "%s" +SetWebsiteOnlineBefore=Όταν ο ιστότοπος είναι εκτός σύνδεσης, όλες οι σελίδες είναι εκτός σύνδεσης. Αλλάξτε την κατάσταση του ιστότοπου πρώτα. +Booking=Κράτηση +Reservation=Κράτηση diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang index 3785deefb9f..1148a3e2f71 100644 --- a/htdocs/langs/el_GR/withdrawals.lang +++ b/htdocs/langs/el_GR/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Τιμολόγιο σε αναμονή γι AmountToWithdraw=Ποσό για ανάληψη AmountToTransfer=Ποσό προς μεταφορά NoInvoiceToWithdraw=Δεν υπάρχει ανοιχτό τιμολόγιο για το '%s' σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην κάρτα τιμολογίου για να υποβάλετε ένα αίτημα. -NoSupplierInvoiceToWithdraw=Δεν υπάρχει τιμολόγιο προμηθευτή με ανοιχτά «Άμεσα αιτήματα πίστωσης» σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην κάρτα τιμολογίου για να υποβάλετε ένα αίτημα. +NoSupplierInvoiceToWithdraw=Κανένα τιμολόγιο προμηθευτή με ανοιχτό '%s' δεν ειναι σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην καρτέλα τιμολογίου για να υποβάλετε ένα αίτημα. ResponsibleUser=Υπεύθυνος χρήστης WithdrawalsSetup=Ρύθμιση πληρωμής άμεσης χρέωσης CreditTransferSetup=Ρύθμιση μεταφοράς πίστωσης @@ -42,15 +42,16 @@ CreditTransferStatistics=Στατιστικά στοιχεία μεταφορά Rejects=Απορρίψεις LastWithdrawalReceipt=Τελευταίες %s εισπράξεις άμεσης χρέωσης MakeWithdrawRequest=Υποβάλετε αίτημα πληρωμής με άμεση χρέωση +MakeWithdrawRequestStripe=Υποβάλετε αίτημα πληρωμής άμεσης χρέωσης μέσω Stripe MakeBankTransferOrder=Υποβάλετε αίτημα μεταφοράς πίστωσης WithdrawRequestsDone=%s αιτήματα πληρωμής άμεσης χρέωσης καταγράφηκαν BankTransferRequestsDone=%s αιτήματα μεταφοράς πίστωσης καταγράφηκαν -ThirdPartyBankCode=Τραπεζικός κωδικός τρίτου μέρους -NoInvoiceCouldBeWithdrawed=Κανένα τιμολόγιο δεν χρεώθηκε με επιτυχία. Βεβαιωθείτε ότι τα τιμολόγια είναι σε εταιρείες με έγκυρο αριθμό IBAN και ότι ο IBAN έχει UMR (Unique Mandate Reference) με τον τρόπο %s . +ThirdPartyBankCode=Κωδικός τράπεζας τρίτου μέρους +NoInvoiceCouldBeWithdrawed=Κανένα τιμολόγιο δεν χρεώθηκε με επιτυχία. Ελέγξτε ότι τα τιμολόγια είναι σε εταιρείες με έγκυρο IBAN και ότι το IBAN διαθέτει UMR (Μοναδική αναφορά εντολής) με λειτουργία %s . WithdrawalCantBeCreditedTwice=Αυτή η απόδειξη ανάληψης έχει ήδη επισημανθεί ως πιστωμένη. Αυτό δεν μπορεί να γίνει δύο φορές, καθώς αυτό ενδέχεται να δημιουργήσει διπλές πληρωμές και εγγραφές τραπεζών. ClassCredited=Ταξινόμηση ως πιστωμένη ClassDebited=Ταξινόμηση ως χρεωμένη -ClassCreditedConfirm=Είστε σίγουροι ότι θέλετε να χαρακτηρίσετε αυτήν την απόδειξη ανάληψης ως πιστωμένη στον τραπεζικό σας λογαριασμό; +ClassCreditedConfirm=Είστε σίγουροι ότι θέλετε να Ταξινομήσετε αυτήν την απόδειξη ανάληψης ως πιστωμένη στον τραπεζικό σας λογαριασμό; TransData=Ημερομηνία μετάδοσης TransMetod=Μέθοδος μετάδοσης Send=Αποστολή @@ -59,11 +60,11 @@ StandingOrderReject=Έκδοση απόρριψης WithdrawsRefused=Η άμεση χρέωση απορρίφθηκε WithdrawalRefused=Απόσυρση απορρίφθηκε CreditTransfersRefused=Οι μεταφορές πιστώσης απορρίφθηκαν -WithdrawalRefusedConfirm=Είστε σίγουροι ότι θέλετε να εισάγετε μια απόρριψη αναμονής για την κοινωνία +WithdrawalRefusedConfirm=Είστε σίγουροι ότι θέλετε να εισάγετε μια απόρριψη ανάληψης για την εταιρεία RefusedData=Ημερομηνία απόρριψης RefusedReason=Λόγος απόρριψης -RefusedInvoicing=Χρέωσης για την απόρριψη -NoInvoiceRefused=Μην φορτίζετε την απόρριψη +RefusedInvoicing=Χρέωση της απόρριψης +NoInvoiceRefused=Μην χρεώσετε την απόρριψη InvoiceRefused=Τιμολόγιο απορρίφθηκε (Φορτίστε την απόρριψη στον πελάτη) StatusDebitCredit=Κατάσταση χρέωσης / πίστωσης StatusWaiting=Αναμονή @@ -86,7 +87,7 @@ CreateForSepaRCUR=Δημιουργία αρχείου άμεσης χρέωση CreateAll=Δημιουργία αρχείου άμεσης χρέωσης CreateFileForPaymentByBankTransfer=Δημιουργία αρχείου μεταφορά πίστωσης CreateSepaFileForPaymentByBankTransfer=Δημιουργία αρχείου μεταφοράς πίστωσης (SEPA) -CreateGuichet=Μόνο το γραφείο +CreateGuichet=Μόνο ταμείο CreateBanque=Μόνο τράπεζα OrderWaiting=Αναμονή για επεξεργασία NotifyTransmision=Καταγραφή αποστολής αρχείου της παραγγελίας @@ -100,8 +101,11 @@ CreditDate=Πίστωση την WithdrawalFileNotCapable=Αδύνατο να δημιουργηθεί το αρχείο απόδειξης ανάληψης για τη χώρα σας %s (η χώρα σας δεν υποστηρίζεται) ShowWithdraw=Εμφάνιση εντολής άμεσης χρέωσης IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Ωστόσο, εάν το τιμολόγιο έχει τουλάχιστον μία εντολή πληρωμής άμεσης χρέωσης που δεν έχει ακόμη υποβληθεί σε επεξεργασία, δεν θα οριστεί ως πληρωμένο για να επιτραπεί η διαχείριση προηγούμενη ανάληψης. -DoStandingOrdersBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή πληρωμής άμεσης χρέωσης. Μόλις τελειώσετε, μεταβείτε στο μενού Τράπεζα->Πληρωμή με άμεση χρέωση για να δημιουργήσετε και να διαχειριστείτε την εντολή άμεσης χρέωσης. Όταν η εντολή άμεσης χρέωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. -DoCreditTransferBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή μεταφοράς πίστωσης. Μόλις τελειώσετε, μεταβείτε στο μενού Τράπεζα->Πληρωμή με μεταφορά πίστωσης για να δημιουργήσετε και να διαχειριστείτε την εντολή μεταφοράς πίστωσης. Όταν η εντολή μεταφοράς πίστωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. +DoStandingOrdersBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή πληρωμής με πάγια εντολή. Μόλις τελειώσετε, μπορείτε να μεταβείτε στο μενού "Τράπεζα->Πληρωμή με πάγια εντολή" για να δημιουργήσετε και να διαχειριστείτε ένα αρχείο εντολής άμεσης χρέωσης. +DoStandingOrdersBeforePayments2=Μπορείτε επίσης να στείλετε ένα αίτημα απευθείας σε έναν επεξεργαστή πληρωμών SEPA όπως το Stripe, ... +DoStandingOrdersBeforePayments3=Όταν η εντολή άμεσης χρέωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. +DoCreditTransferBeforePayments=Σε αυτή η καρτέλα σάς δίνεται η δυνατότητα να ζητήσετε εντολή μεταφοράς πίστωσης. Μόλις τελειώσετε, μεταβείτε στο μενού "Τράπεζα->Πληρωμή με μεταφορά πίστωσης" για να δημιουργήσετε και να διαχειριστείτε ένα αρχείο εντολής μεταφοράς πίστωσης. +DoCreditTransferBeforePayments3=Όταν η εντολή μεταφοράς πίστωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. WithdrawalFile=Αρχείο χρεωστικής εντολής CreditTransferFile=Αρχείο μεταφοράς πίστωσης SetToStatusSent=Ορίστε σε κατάσταση "Αρχείο εστάλη" @@ -109,22 +113,22 @@ ThisWillAlsoAddPaymentOnInvoice=Αυτό θα καταγράψει επίσης StatisticsByLineStatus=Στατιστικά στοιχεία ανα κατάσταση των γραμμών RUM=UMR DateRUM=Ημερομηνία υπογραφής εντολής -RUMLong=Μοναδική αναφορά εντολής -RUMWillBeGenerated=Αν είναι άδειο, θα δημιουργηθεί ένα UMR (Μοναδική αναφορά εντολής) μόλις αποθηκευτούν οι πληροφορίες του τραπεζικού λογαριασμού. +RUMLong=Αναφορά Μοναδικής εντολής(UMR) +RUMWillBeGenerated=Αν είναι κενό, θα δημιουργηθεί ένα UMR (Μοναδική αναφορά εντολής) μόλις αποθηκευτούν οι πληροφορίες του τραπεζικού λογαριασμού. WithdrawMode=Λειτουργία άμεσης χρέωσης (FRST ή RECUR) WithdrawRequestAmount=Ποσό αίτησης άμεσης χρέωσης: BankTransferAmount=Ποσό αιτήματος μεταφοράς πίστωσης: -WithdrawRequestErrorNilAmount=Δεν είναι δυνατή η δημιουργία αίτησης άμεσης χρέωσης για άδειο ποσό. +WithdrawRequestErrorNilAmount=Δεν είναι δυνατή η δημιουργία αίτησης άμεσης χρέωσης για μηδενικό ποσό. SepaMandate=Εντολή άμεσης χρέωσης SEPA SepaMandateShort=Εντολή SEPA PleaseReturnMandate=Παρακαλούμε επιστρέψτε αυτή τη φόρμα εντολής με email στο %s ή μέσω ταχυδρομείου στο -SEPALegalText=Με την υπογραφή αυτής της φόρμας εντολής, εξουσιοδοτείτε (A) %s να στέλνει οδηγίες στην τράπεζά σας για να χρεώσει τον λογαριασμό σας και (B) την τράπεζά σας να χρεώσει τον λογαριασμό σας σύμφωνα με τις οδηγίες του %s. Ως μέρος των δικαιωμάτων σας, δικαιούστε επιστροφή χρημάτων από την τράπεζά σας σύμφωνα με τους όρους και τις προϋποθέσεις της συμφωνίας σας με την τράπεζά σας. Τα δικαιώματά σας σχετικά με την παραπάνω εντολή εξηγούνται σε δήλωση που μπορείτε να λάβετε από την τράπεζά σας. -CreditorIdentifier=Αναγνωριστικό πιστωτή +SEPALegalText=Με την υπογραφή αυτής της φόρμας εντολής, εξουσιοδοτείτε (A) %s και τον πάροχο υπηρεσιών πληρωμών του να στέλνουν οδηγίες στην τράπεζά σας για χρέωση του λογαριασμού σας και (Β) την τράπεζά σας να χρεώσει τον λογαριασμό σας σύμφωνα με τις οδηγίες του %s. Ως μέρος των δικαιωμάτων σας, δικαιούστε επιστροφή χρημάτων από την τράπεζά σας σύμφωνα με τους όρους και τις προϋποθέσεις της συμφωνίας σας με την τράπεζά σας. Τα δικαιώματά σας σχετικά με την παραπάνω εντολή εξηγούνται σε δήλωση που μπορείτε να λάβετε από την τράπεζά σας. +CreditorIdentifier=Αναγνωριστικό Πιστωτή CreditorName=Όνομα πιστωτή SEPAFillForm=(B) Παρακαλούμε συμπληρώστε όλα τα πεδία με την ένδειξη * SEPAFormYourName=Το όνομά σας -SEPAFormYourBAN=Το όνομα τραπεζικού λογαριασμού σας (IBAN) -SEPAFormYourBIC=Ο κωδικός αναγνώρισης τραπεζών (BIC) +SEPAFormYourBAN=Το όνομα του τραπεζικού σας λογαριασμού (IBAN) +SEPAFormYourBIC=Ο κωδικός αναγνώρισης της τράπεζας σας (BIC) SEPAFrstOrRecur=Είδος πληρωμής ModeRECUR=Επαναλαμβανόμενη πληρωμή ModeFRST=Εφάπαξ πληρωμή @@ -138,19 +142,19 @@ ExecutionDate=Ημερομηνία εκτέλεσης CreateForSepa=Δημιουργήστε αρχείο άμεσης χρέωσης ICS=Αναγνωριστικό Πιστωτή - ICS IDS=Αναγνωριστικό οφειλέτη -END_TO_END="EndToEndId" Ετικέτα XML SEPA - Μοναδική ταυτότητα που αντιστοιχεί σε κάθε συναλλαγή -USTRD="Μη δομημένη" ετικέτα XML SEPA +END_TO_END=Ετικέτα SEPA XML "EndToEndId" - Εκχωρείται μοναδικό αναγνωριστικό ανά συναλλαγή +USTRD="Μη δομημένη" ετικέτα XML SEPA ADDDAYS=Προσθήκη ημερών στην Ημερομηνία Εκτέλεσης NoDefaultIBANFound=Δεν βρέθηκε προεπιλεγμένο IBAN για αυτό το τρίτο μέρος ### Notifications InfoCreditSubject=Πληρωμή εντολής πληρωμής άμεσης χρέωσης %s από την τράπεζα -InfoCreditMessage=Η εντολή πληρωμής άμεσης χρέωσης %s έχει καταβληθεί από την τράπεζα
    Στοιχεία πληρωμής: %s +InfoCreditMessage=Η εντολή πληρωμής άμεσης χρέωσης %s έχει πληρωθεί από την τράπεζα
    Δεδομένα πληρωμής: %s InfoTransSubject=Διαβίβαση εντολής πληρωμής άμεσης χρέωσης %s στην τράπεζα InfoTransMessage=Η εντολή πληρωμής άμεσης χρέωσης %s έχει σταλεί στην τράπεζα από %s %s.

    InfoTransData=Ποσό: %s
    Μέθοδος: %s
    Ημερομηνία: %s InfoRejectSubject=Η εντολή πληρωμής άμεσης χρέωσης απορρίφθηκε -InfoRejectMessage=Γεια σας,

    η εντολή πληρωμής άμεσης χρέωσης του τιμολογίου %s σχετικά με την εταιρεία %s, με το ποσό %s απορρίφθηκε από την τράπεζα.

    -
    %s -ModeWarning=Επιλογή για την πραγματική κατάσταση, δεν είχε καθοριστεί, σταματάμε μετά από αυτή την προσομοίωση +InfoRejectMessage=Γεια σας,

    η εντολή πληρωμής άμεσης χρέωσης του τιμολογίου %s που σχετίζεται με την εταιρεία %s, με ποσό %s απορρίφθηκε από την τράπεζα.

    --
    %s +ModeWarning=Η επιλογή για πραγματική λειτουργία δεν ορίστηκε, σταματάμε μετά από αυτήν την προσομοίωση ErrorCompanyHasDuplicateDefaultBAN=Η εταιρεία με αναγνωριστικό %s έχει περισσότερους από έναν προεπιλεγμένους τραπεζικούς λογαριασμούς. Δεν υπάρχει τρόπος να ξέρετε ποιο θα χρησιμοποιηθεί. ErrorICSmissing=Λείπει το ICS στον τραπεζικό λογαριασμό %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Το συνολικό ποσό της εντολής πάγιας εντολής διαφέρει από το άθροισμα των γραμμών diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang index 62f2748e3dc..43b91415825 100644 --- a/htdocs/langs/el_GR/workflow.lang +++ b/htdocs/langs/el_GR/workflow.lang @@ -7,7 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Δημιουργήστε αυτόματα descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά την υπογραφή μιας εμπορικής πρότασης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την πρόταση) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά την επικύρωση μιας σύμβασης descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά το κλείσιμο μιας εντολής πώλησης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την εντολή) -descWORKFLOW_TICKET_CREATE_INTERVENTION=Κατά τη δημιουργία εισιτηρίου, δημιουργήστε αυτόματα μια παρέμβαση. +descWORKFLOW_TICKET_CREATE_INTERVENTION=Κατά τη δημιουργία ticket, δημιουργήστε αυτόματα μια παρέμβαση. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Ταξινόμηση της προσφοράς συνδεδεμένης πηγής ως τιμολογημένη όταν η εντολή πώλησης έχει οριστεί ως τιμολογημένη (και εάν το ποσό της εντολής είναι ίδιο με το συνολικό ποσό της συνδεδεμένης υπογεγραμμένης προσφοράς) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Ταξινόμηση της προσφοράς συνδεδεμένης πηγής ως τιμολογημένη όταν επικυρωθεί το τιμολόγιο πελάτη (και εάν το ποσό του τιμολογίου είναι ίδιο με το συνολικό ποσό της συνδεδεμένης υπογεγραμμένης προσφοράς) @@ -22,15 +22,15 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Ταξινόμηση descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Ταξινόμηση της παραγγελίας αγοράς συνδεδεμένης πηγής ως ληφθείσας όταν επικυρωθεί μια παραλαβή (και εάν η ποσότητα που παρελήφθη από όλες τις παραλαβές είναι η ίδια με την παραγγελία αγοράς προς ενημέρωση) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Ταξινόμηση παραγγελίας αγοράς από συνδεδεμένη πηγή ως ληφθείσας όταν μια παραλαβή είναι κλειστή (και εάν η ποσότητα που παρελήφθη από όλες τις παραλαβές είναι η ίδια με την παραγγελία αγοράς προς ενημέρωση) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Ταξινόμηση παραλαβών ως "τιμολογημένες" όταν επικυρωθεί μια συνδεδεμένη παραγγελία προμηθευτή +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Ταξινόμηση των παραλαβών σε "τιμολογημένες" όταν επικυρώνεται ένα συνδεδεμένο τιμολόγιο αγοράς (και εάν το ποσό του τιμολογίου είναι το ίδιο με το συνολικό ποσό των συνδεδεμένων παραλαβών) # Automatically link ticket to contract -descWORKFLOW_TICKET_LINK_CONTRACT=Κατά τη δημιουργία ενός εισιτηρίου, συνδέστε τα διαθέσιμα συμβόλαια του αντίστοιχου τρίτου μέρους +descWORKFLOW_TICKET_LINK_CONTRACT=Κατά τη δημιουργία ενός ticket, συνδέστε τα διαθέσιμα συμβόλαια του αντίστοιχου τρίτου μέρους descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Όταν συνδέετε συμβόλαια, αναζητήστε μεταξύ αυτών των μητρικών εταιρειών # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Κλείστε όλες τις παρεμβάσεις που συνδέονται με το εισιτήριο όταν ένα εισιτήριο είναι κλειστό +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Κλείστε όλες τις παρεμβάσεις που συνδέονται με το ticket εάν αυτό είναι κλειστό AutomaticCreation=Αυτόματη δημιουργία AutomaticClassification=Αυτόματη ταξινόμηση # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Ταξινόμηση αποστολής συνδεδεμένης πηγής ως κλειστή όταν επικυρωθεί το τιμολόγιο πελάτη +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Ταξινόμηση της αποστολής συνδεδεμένης προέλευσης ως κλειστής όταν επικυρωθεί το τιμολόγιο πελάτη (και εάν το ποσό του τιμολογίου είναι ίδιο με το συνολικό ποσό των συνδεδεμένων αποστολών) AutomaticClosing=Αυτόματο κλείσιμο AutomaticLinking=Αυτόματη σύνδεση diff --git a/htdocs/langs/en_AE/hrm.lang b/htdocs/langs/en_AE/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_AE/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_AE/propal.lang b/htdocs/langs/en_AE/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_AE/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_AU/hrm.lang b/htdocs/langs/en_AU/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_AU/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_AU/propal.lang b/htdocs/langs/en_AU/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_AU/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_CA/hrm.lang b/htdocs/langs/en_CA/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_CA/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_CA/propal.lang b/htdocs/langs/en_CA/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_CA/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang index 0afbc72c036..b1f36ec14ad 100644 --- a/htdocs/langs/en_GB/accountancy.lang +++ b/htdocs/langs/en_GB/accountancy.lang @@ -49,16 +49,10 @@ XLineFailedToBeBinded=%s products/services were not linked to any finance accoun ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin sorting the page "Links to do" by the most recent elements ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin sorting the page "Links done" by the most recent elements ACCOUNTING_LENGTH_GACCOUNT=Length of the General Ledger accounts (If you set value to 6 here, the account '706' will appear as '706000' on screen) -ACCOUNTING_SELL_JOURNAL=Sales journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal -ACCOUNTING_ACCOUNT_SUSPENSE=Suspense account -DONATION_ACCOUNTINGACCOUNT=Finance account to register donations -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Default sales account (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Default services purchase account (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Default services sales account (used if not defined in the service sheet) LabelAccount=Account name LabelOperation=Account operation NumPiece=Item number +AccountingCategory=Custom group of accounts AccountingAccountGroupsDesc=Here you can define some groups of financial accounts. They will be used for personalised accounting reports. ByPersonalizedAccountGroups=By personalised groups FeeAccountNotDefined=Account for fees not defined @@ -69,19 +63,13 @@ ErrorDebitCredit=Debit and Credit fields cannot have values at the same time AddCompteFromBK=Add finance accounts to the group ListAccounts=List of the financial accounts Pcgtype=Group account -DescVentilCustomer=View the list of customer invoice lines linked (or not) to a product financial account -DescVentilDoneCustomer=View a detailed list of invoices, customers and their product financial account -DescVentilTodoCustomer=Link invoice lines not already linked with a product finance account -ChangeAccount=Change the product/service finance account for selected lines with the following finance account: DescVentilTodoExpenseReport=Link expense report lines not already linked with a fee finance account DescVentilExpenseReport=View here the list of expense report lines linked (or not) to a fee finance account DescVentilDoneExpenseReport=View here the list of the lines of expense reports and their fees account ValidateHistory=Link Automatically -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this finance account because it is used FicheVentilation=Link card GeneralLedgerIsWritten=Transactions are written to the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalised. If there is no other error message, this is probably because they were already journalised. -ListOfProductsWithoutAccountingAccount=List of products not linked to any finance account ChangeBinding=Change the link Accounted=Posted in ledger ApplyMassCategories=Apply bulk categories diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 140e92f0fcc..f61f52381f7 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -45,7 +45,5 @@ CompanyZip=Postcode LDAPFieldZip=Postcode GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
    For example: /usr/local/bin/genbarcode FormatZip=Postcode -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax diff --git a/htdocs/langs/en_GB/externalsite.lang b/htdocs/langs/en_GB/externalsite.lang deleted file mode 100644 index 1febedb9fed..00000000000 --- a/htdocs/langs/en_GB/externalsite.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteModuleNotComplete=Module "External Site" was not configured properly. diff --git a/htdocs/langs/en_GB/ftp.lang b/htdocs/langs/en_GB/ftp.lang deleted file mode 100644 index f1ea309c715..00000000000 --- a/htdocs/langs/en_GB/ftp.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPFailedToRemoveFile=Failed to delete file %s. diff --git a/htdocs/langs/en_GB/hrm.lang b/htdocs/langs/en_GB/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_GB/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_GB/loan.lang b/htdocs/langs/en_GB/loan.lang index cf7160c883c..25939cdd6fd 100644 --- a/htdocs/langs/en_GB/loan.lang +++ b/htdocs/langs/en_GB/loan.lang @@ -10,6 +10,3 @@ LoanPaid=Loan Repaid ListLoanAssociatedProject=List of loans associated with this project AddLoan=Create new loan CapitalRemain=Capital Balance -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Financial account - Capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Financial account - Interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Financial account - Insurance by default diff --git a/htdocs/langs/en_GB/main.lang b/htdocs/langs/en_GB/main.lang index 5617fe77778..b5606763a65 100644 --- a/htdocs/langs/en_GB/main.lang +++ b/htdocs/langs/en_GB/main.lang @@ -40,3 +40,4 @@ Canceled=Cancelled Color=Colour NoPhotoYet=No picture available yet SearchIntoSupplierProposals=Vendor quotes +Terminate=Deactivate diff --git a/htdocs/langs/en_GB/other.lang b/htdocs/langs/en_GB/other.lang new file mode 100644 index 00000000000..42139bcfa76 --- /dev/null +++ b/htdocs/langs/en_GB/other.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - other +ExternalSiteModuleNotComplete=Module "External Site" was not configured properly. +FTPFailedToRemoveFile=Failed to delete file %s. diff --git a/htdocs/langs/en_GB/salaries.lang b/htdocs/langs/en_GB/salaries.lang index 6023f538fa0..8e0e7e8632f 100644 --- a/htdocs/langs/en_GB/salaries.lang +++ b/htdocs/langs/en_GB/salaries.lang @@ -1,4 +1,3 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Financial account used for user third parties SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Financial account by default for wage payments SalariesPayments=Salaries payment diff --git a/htdocs/langs/en_GB/stocks.lang b/htdocs/langs/en_GB/stocks.lang index ba358dbb241..1af3630e4e0 100644 --- a/htdocs/langs/en_GB/stocks.lang +++ b/htdocs/langs/en_GB/stocks.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - stocks StocksArea=Warehouse area -MassStockTransferShort=Bulk stock transfer QtyDispatchedShort=Quantity dispatched QtyToDispatchShort=Quantity to be dispatched OrderStatusNotReadyToDispatch=Order Status does not allow dispatching of products in stock warehouses. diff --git a/htdocs/langs/en_GB/trips.lang b/htdocs/langs/en_GB/trips.lang index 31e58b7f935..b9af13b26fa 100644 --- a/htdocs/langs/en_GB/trips.lang +++ b/htdocs/langs/en_GB/trips.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - trips -TripsAndExpensesStatistics=Expense report statistics -FeesKilometersOrAmout=Amount or Miles -TripNDF=Information expense report -TF_METRO=Tube -ErrorDoubleDeclaration=You have submitted another expense report in a similar date range. BrouillonnerTrip=Move expense report status back to "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report status back to "Draft"? +ErrorDoubleDeclaration=You have submitted another expense report in a similar date range. +FeesKilometersOrAmout=Amount or Miles +TripNDF=Information expense report +TripsAndExpensesStatistics=Expense report statistics +TF_METRO=Tube diff --git a/htdocs/langs/en_IN/hrm.lang b/htdocs/langs/en_IN/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_IN/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_SG/hrm.lang b/htdocs/langs/en_SG/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_SG/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_SG/propal.lang b/htdocs/langs/en_SG/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_SG/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 0f85c4b1c33..5fb63c1c2ae 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -161,42 +163,47 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -211,7 +218,8 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -259,19 +267,20 @@ ShowSubtotalByGroup=Show subtotal by level Pcgtype=Group of account PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -279,24 +288,25 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting @@ -319,9 +329,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -329,10 +340,14 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedExportFull=Export documents ? DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal @@ -398,7 +413,11 @@ Calculated=Calculated Formula=Formula ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +426,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +447,8 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=Accounting entries @@ -453,6 +475,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index e4725704dd5..421ba4f6fa2 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Client collation WarningModuleNotActive=Module %s must be enabled WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user InternalUsers=Internal users ExternalUsers=External users UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Full path to antivirus command AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= More parameters on command line @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) @@ -439,8 +438,10 @@ Unique=Unique Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table ExtrafieldSeparator=Separator (not a field) @@ -477,7 +478,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=All barcode values have been removed @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Enable usage of overwritten translation +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Field @@ -645,9 +647,9 @@ Module2400Name=Events/Agenda Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. Module2500Name=DMS / ECM Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=API/Web services (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) +Module2610Name=API / Web services (REST server) Module2610Desc=Enable the Dolibarr REST server providing API services Module2660Name=Call WebServices (SOAP client) Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) @@ -658,6 +660,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3200Name=Unalterable Archives Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. +Module3300Name=Module Builder +Module3200Desc=A RAD (Rapid Application Development - low-code and no-code) tool to help developers or advanced users to build their own module/application. Module3400Name=Social Networks Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). Module4000Name=HRM @@ -698,6 +702,7 @@ Module62000Name=Incoterms Module62000Desc=Add features to manage Incoterms Module63000Name=Resources Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module94160Name=Receptions Permission11=Read customer invoices Permission12=Create/modify customer invoices Permission13=Invalidate customer invoices @@ -714,6 +719,7 @@ Permission27=Delete commercial proposals Permission28=Export commercial proposals Permission31=Read products Permission32=Create/modify products +Permission33=Read prices products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products @@ -739,6 +745,7 @@ Permission79=Create/modify subscriptions Permission81=Read customers orders Permission82=Create/modify customers orders Permission84=Validate customers orders +Permission85=Generate the documents sales orders Permission86=Send customers orders Permission87=Close customers orders Permission88=Cancel customers orders @@ -840,9 +847,9 @@ Permission286=Export contacts Permission291=Read tariffs Permission292=Set permissions on the tariffs Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Read services Permission312=Assign service/subscription to contract Permission331=Read bookmarks @@ -874,6 +881,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Read services Permission532=Create/modify services +Permission533=Read prices services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services @@ -897,7 +905,7 @@ Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission772=Create/modify expense reports (for you and your subordinates) Permission773=Delete expense reports Permission775=Approve expense reports Permission776=Pay expense reports @@ -968,13 +976,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1078,6 +1087,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Setup saved SetupNotSaved=Setup not saved +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Back to Module list BackToDictionaryList=Back to Dictionaries list TypeOfRevenueStamp=Type of tax stamp @@ -1129,7 +1142,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1235,11 +1248,13 @@ BrowserName=Browser name BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. AccountantFileNumber=Accountant code DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1305,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP DownloadMoreSkins=More skins to download SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1393,7 @@ GetBarCode=Get barcode NumberingModules=Numbering models DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. PasswordGenerationPerso=Return a password according to your personally defined configuration. SetupPerso=According to your configuration @@ -1430,6 +1447,10 @@ SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1472,11 +1493,12 @@ WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) ##### Members ##### MembersSetup=Members module setup MemberMainOptions=Main options +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Manage a Login for each member AdherentMailRequired=Email required to create a new member MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1760,8 @@ ActivateFCKeditor=Activate advanced editor for: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) FCKeditorForUserSignature=WYSIWIG creation/edition of user signature FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) @@ -1762,7 +1784,7 @@ DetailMenuHandler=Menu handler where to show new menu DetailMenuModule=Module name if menu entry come from a module DetailType=Type of menu (top or left) DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Condition to show or not entry DetailRight=Condition to display unauthorized grey menus DetailLangs=Lang file name for label code translation @@ -1833,7 +1855,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatib CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Bookmark module setup BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. @@ -1871,7 +1893,7 @@ SuppliersInvoiceNumberingModel=Vendor invoices numbering models IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. @@ -1922,6 +1944,7 @@ BackupDumpWizard=Wizard to build the database dump file BackupZipWizard=Wizard to build the archive of documents directory SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over @@ -1977,6 +2000,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Contracts MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Third parties MailToMember=Members MailToUser=Users @@ -2030,6 +2054,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2072,8 @@ RemoveSpecialChars=Remove special characters COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip @@ -2063,11 +2090,18 @@ EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect +TestCollectNow=Test collect CollectNow=Collect now ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try @@ -2106,7 +2140,7 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\s*([^\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\s([^\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\s*([^\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\s([^\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module @@ -2169,8 +2203,9 @@ EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name -THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2199,12 +2234,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Recommended NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2212,6 +2247,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2251,14 +2287,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an object, in top right menu +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2266,4 +2310,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. \ No newline at end of file +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 272ec22df5c..2016172c381 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Member %s validated MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted +MemberExcludedInDolibarr=Member %s excluded MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted @@ -67,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status ShipmentDeletedInDolibarr=Shipment %s deleted ShipmentCanceledInDolibarr=Shipment %s canceled ReceptionValidatedInDolibarr=Reception %s validated +ReceptionDeletedInDolibarr=Reception %s deleted ReceptionClassifyClosedInDolibarr=Reception %s classified closed OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Vendor invoice %s sent by email ShippingSentByEMail=Shipment %s sent by email ShippingValidated= Shipment %s validated InterventionSentByEMail=Intervention %s sent by email +ProjectSentByEMail=Project %s sent by email ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted @@ -135,7 +138,7 @@ AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not own AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=__PROJECT_ID__ to restrict output to actions linked to project __PROJECT_ID__. AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto to exclude automatic events. -AgendaUrlOptionsIncludeHolidays=includeholidays=1 to include events of holidays. +AgendaUrlOptionsIncludeHolidays=includeholidays=1 to include events of holidays. AgendaShowBirthdayEvents=Birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts Busy=Busy @@ -159,6 +162,7 @@ DateActionBegin=Start event date ConfirmCloneEvent=Are you sure you want to clone the event %s? RepeatEvent=Repeat event OnceOnly=Once only +EveryDay=Every day EveryWeek=Every week EveryMonth=Every month DayOfMonth=Day of month @@ -174,3 +178,4 @@ AddReminder=Create an automatic reminder notification for this event ErrorReminderActionCommCreation=Error creating the reminder notification for this event BrowserPush=Browser Popup Notification ActiveByDefault=Enabled by default +Until=until diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 22ca3f4cec1..183620c72da 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Customers invoices statistics BillsStatisticsSuppliers=Vendors invoices statistics DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter. +DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable. This invoice is not the last one in situation invoice cycle. DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. +InvoiceStandardShort=Standard InvoiceDeposit=Down payment invoice InvoiceDepositAsk=Down payment invoice InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. @@ -24,6 +26,7 @@ InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice +InvoiceReplacementShort=Replacement InvoiceReplacementAsk=Replacement invoice for invoice InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

    Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or ano ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. BillFrom=From BillTo=To +ShippingTo=Shipping to ActionsOnBill=Actions on invoice RecurringInvoiceTemplate=Template / Recurring invoice NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation. @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=The chose payment conditions PaymentTypeVIR=Bank transfer PaymentTypeShortVIR=Bank transfer PaymentTypePRE=Direct debit payment order +PaymentTypePREdetails=(on account *-%s) PaymentTypeShortPRE=Debit payment order PaymentTypeLIQ=Cash PaymentTypeShortLIQ=Cash @@ -620,4 +625,9 @@ NoPaymentAvailable=No payment available for %s PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices MakePaymentAndClassifyPayed=Record payment -BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) \ No newline at end of file +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/en_US/blockedlog.lang b/htdocs/langs/en_US/blockedlog.lang index a1046827559..9fdef53260f 100644 --- a/htdocs/langs/en_US/blockedlog.lang +++ b/htdocs/langs/en_US/blockedlog.lang @@ -14,28 +14,6 @@ OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to prev AddedByAuthority=Stored into remote authority NotAddedByAuthorityYet=Not yet stored into remote authority ShowDetails=Show stored details -logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created -logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified -logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion -logPAYMENT_ADD_TO_BANK=Payment added to bank -logPAYMENT_CUSTOMER_CREATE=Customer payment created -logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion -logDONATION_PAYMENT_CREATE=Donation payment created -logDONATION_PAYMENT_DELETE=Donation payment logical deletion -logBILL_PAYED=Customer invoice paid -logBILL_UNPAYED=Customer invoice set unpaid -logBILL_VALIDATE=Customer invoice validated -logBILL_SENTBYMAIL=Customer invoice send by mail -logBILL_DELETE=Customer invoice logically deleted -logMODULE_RESET=Module BlockedLog was disabled -logMODULE_SET=Module BlockedLog was enabled -logDON_VALIDATE=Donation validated -logDON_MODIFY=Donation modified -logDON_DELETE=Donation logical deletion -logMEMBER_SUBSCRIPTION_CREATE=Member subscription created -logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified -logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion -logCASHCONTROL_VALIDATE=Cash desk closing recording BlockedLogBillDownload=Customer invoice download BlockedLogBillPreview=Customer invoice preview BlockedlogInfoDialog=Log Details @@ -54,4 +32,30 @@ TooManyRecordToScanRestrictFilters=Too many records to scan/analyze. Please rest RestrictYearToExport=Restrict month / year to export BlockedLogEnabled=System to track events into unalterable logs has been enabled BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken -BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. \ No newline at end of file +BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. + +## logTypes +logBILL_DELETE=Customer invoice logically deleted +logBILL_PAYED=Customer invoice paid +logBILL_SENTBYMAIL=Customer invoice send by mail +logBILL_UNPAYED=Customer invoice set unpaid +logBILL_VALIDATE=Customer invoice validated +logCASHCONTROL_VALIDATE=Cash desk closing recording +logDOC_DOWNLOAD=Download of a validated document in order to print or send +logDOC_PREVIEW=Preview of a validated document in order to print or download +logDONATION_PAYMENT_CREATE=Donation payment created +logDONATION_PAYMENT_DELETE=Donation payment logical deletion +logDON_DELETE=Donation logical deletion +logDON_MODIFY=Donation modified +logDON_VALIDATE=Donation validated +logMEMBER_SUBSCRIPTION_CREATE=Member subscription created +logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion +logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified +logMODULE_RESET=Module BlockedLog was disabled +logMODULE_SET=Module BlockedLog was enabled +logPAYMENT_ADD_TO_BANK=Payment added to bank +logPAYMENT_CUSTOMER_CREATE=Customer payment created +logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion +logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created +logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion +logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified diff --git a/htdocs/langs/en_US/bookmarks.lang b/htdocs/langs/en_US/bookmarks.lang index be0f2f7e25d..26551eee4f0 100644 --- a/htdocs/langs/en_US/bookmarks.lang +++ b/htdocs/langs/en_US/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should BookmarksManagement=Bookmarks management BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=No bookmarks defined +NoBookmarkFound=No bookmark found \ No newline at end of file diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index 2ace1eb97e1..0ac1ecce545 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified BoxMyLastBookmarks=Bookmarks: latest %s BoxOldestExpiredServices=Oldest active expired services +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Latest %s oldest contacts with active expired services BoxTitleLastActionsToDo=Latest %s actions to do +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Latest %s contracts which were modified BoxTitleLastModifiedDonations=Latest %s donations which were modified BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang index b53eb235c29..9cde66460d3 100644 --- a/htdocs/langs/en_US/cashdesk.lang +++ b/htdocs/langs/en_US/cashdesk.lang @@ -59,7 +59,7 @@ BillsCoinsPad=Coins and banknotes Pad DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr TakeposNeedsCategories=TakePOS needs at least one product categorie to work TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS needs at least 1 product category under the category %s to work -OrderNotes=Can add some notes to each ordered items +OrderNotes=Can add some notes to each ordered items CashDeskBankAccountFor=Default account to use for payments in NoPaimementModesDefined=No paiment mode defined in TakePOS configuration TicketVatGrouped=Group VAT by rate in tickets|receipts @@ -118,7 +118,7 @@ ScanToOrder=Scan QR code to order Appearance=Appearance HideCategoryImages=Hide Category Images HideProductImages=Hide Product Images -NumberOfLinesToShow=Number of lines of images to show +NumberOfLinesToShow=Number of lines of images to show DefineTablePlan=Define tables plan GiftReceiptButton=Add a "Gift receipt" button GiftReceipt=Gift receipt @@ -136,4 +136,12 @@ PrintWithoutDetails=Print without details YearNotDefined=Year is not defined TakeposBarcodeRuleToInsertProduct=Barcode rule to insert product TakeposBarcodeRuleToInsertProductDesc=Rule to extract the product reference + a quantity from a scanned barcode.
    If empty (default value), application will use the full barcode scanned to find the product.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    -AlreadyPrinted=Already printed \ No newline at end of file +AlreadyPrinted=Already printed +HideCategories=Hide categories +HideStockOnLine=Hide stock on line +ShowOnlyProductInStock=Show the products in stock +ShowCategoryDescription=Show category description +ShowProductReference=Show reference of products +UsePriceHT=Use price excl. taxes and not price incl. taxes +TerminalName=Terminal %s +TerminalNameDesc=Terminal name diff --git a/htdocs/langs/en_US/categories.lang b/htdocs/langs/en_US/categories.lang index a2d05767cae..0493968798e 100644 --- a/htdocs/langs/en_US/categories.lang +++ b/htdocs/langs/en_US/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=This member is not in any tags/categories ContactHasNoCategory=This contact is not in any tags/categories ProjectHasNoCategory=This project is not in any tags/categories ClassifyInCategory=Add to tag/category +RemoveCategory=Remove category NotCategorized=Without tag/category CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all @@ -67,6 +68,7 @@ StockCategoriesShort=Warehouse tags/categories ThisCategoryHasNoItems=This category does not contain any items. CategId=Tag/category id ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,7 +88,7 @@ DeleteFromCat=Remove from tags/category ExtraFieldsCategories=Complementary attributes CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically -CategorieRecursivHelp=If option is on, when you add a product into a subcategory, product will also be added into the parent category. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Add the following product/service AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier @@ -95,7 +97,9 @@ ShowCategory=Show tag/category ByDefaultInList=By default in list ChooseCategory=Choose category StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/en_US/commercial.lang b/htdocs/langs/en_US/commercial.lang index 21d282cd794..eba95a8aabb 100644 --- a/htdocs/langs/en_US/commercial.lang +++ b/htdocs/langs/en_US/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Prospect status DraftPropals=Draft commercial proposals NoLimit=No limit ToOfferALinkForOnlineSignature=Link for online signature -WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s -ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal -ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Signature of quote/commercial proposal %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index c4a964b6b62..e022c7cb09f 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Address State=State/Province +StateId=State ID StateCode=State/Province code StateShort=State Region=Region Region-State=Region - State Country=Country CountryCode=Country code -CountryId=Country id +CountryId=Country ID Phone=Phone PhoneShort=Phone Skype=Skype @@ -312,11 +313,11 @@ CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default HasRelativeDiscountFromSupplier=You have a default discount of %s%% from this vendor -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor +HasNoRelativeDiscountFromSupplier=No default relative discount from this vendor CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for %s %s CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this vendor +HasNoAbsoluteDiscountFromSupplier=No discount/credit available from this vendor HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for %s %s from this vendor HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for %s %s from this vendor HasCreditNoteFromSupplier=You have credit notes for %s %s from this vendor @@ -443,7 +444,7 @@ AddAddress=Add address SupplierCategory=Vendor category JuridicalStatus200=Independent DeleteFile=Delete file -ConfirmDeleteFile=Are you sure you want to delete this file? +ConfirmDeleteFile=Are you sure you want to delete this file %s? AllocateCommercial=Assigned to sales representative Organization=Organization FiscalYearInformation=Fiscal Year @@ -497,3 +498,5 @@ RestOfEurope=Rest of Europe (EEC) OutOfEurope=Out of Europe (EEC) CurrentOutstandingBillLate=Current outstanding bill late BecarefullChangeThirdpartyBeforeAddProductToInvoice=Be carefull, depending on your product price settings, you should change thirdparty before adding product to POS. +EmailAlreadyExistsPleaseRewriteYourCompanyName=email already exists please rewrite your company name +TwoRecordsOfCompanyName=more than one record exists for this company please contact us to complete your partnership request" \ No newline at end of file diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 0e61076345b..b3d5f675830 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Balance Debit=Debit Credit=Credit +AccountingDebit=Debit +AccountingCredit=Credit Piece=Accounting Doc. AmountHTVATRealReceived=Net collected AmountHTVATRealPaid=Net paid @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Calculation mode AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment \ No newline at end of file diff --git a/htdocs/langs/en_US/contracts.lang b/htdocs/langs/en_US/contracts.lang index 8d209623c1b..ab94a63bcc3 100644 --- a/htdocs/langs/en_US/contracts.lang +++ b/htdocs/langs/en_US/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Move service into another contract. ConfirmMoveToAnotherContract=I choosed new target contract and confirm I want to move this service into this contract. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Renew contract line (number %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Expiration date NoExpiredServices=No expired active services ListOfServicesToExpireWithDuration=List of Services to expire in %s days diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang index 9705f8823b0..19572c361ad 100644 --- a/htdocs/langs/en_US/cron.lang +++ b/htdocs/langs/en_US/cron.lang @@ -26,7 +26,7 @@ CronCommand=Command CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Comment CronFieldMandatory=Fields %s is mandatory CronErrEndDateStartDt=End date cannot be before start date StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep MakeSendLocalDatabaseDumpShort=Send local database backup MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/datapolicy/langs/en_US/datapolicy.lang b/htdocs/langs/en_US/datapolicy.lang similarity index 100% rename from htdocs/datapolicy/langs/en_US/datapolicy.lang rename to htdocs/langs/en_US/datapolicy.lang diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang index 0524cf1ca18..00ab5a05f24 100644 --- a/htdocs/langs/en_US/dict.lang +++ b/htdocs/langs/en_US/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs. +CivilityMMEShort=Mrs. CivilityMR=Mr. +CivilityMRShort=Mr. CivilityMLE=Ms. CivilityMTRE=Master CivilityDR=Doctor diff --git a/htdocs/langs/en_US/ecm.lang b/htdocs/langs/en_US/ecm.lang index 494a6c55164..5ced4ec5617 100644 --- a/htdocs/langs/en_US/ecm.lang +++ b/htdocs/langs/en_US/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manual directory ECMSectionAuto=Automatic directory ECMSectionsManual=Manual tree ECMSectionsAuto=Automatic tree +ECMSectionsMedias=Medias tree ECMSections=Directories ECMRoot=ECM Root ECMNewSection=New directory @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Number of files in sub-directories ECMCreationUser=Creator ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatic directories are filled automatically when adding documents from card of an element.
    * Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Directory %s has been deleted. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Search by keywords diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 2857d7a3f54..b3eeae4606b 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Login %s already exists. ErrorGroupAlreadyExists=Group %s already exists. ErrorEmailAlreadyExists=Email %s already exists. ErrorRecordNotFound=Record not found. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Failed to copy file '%s' into '%s'. ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. ErrorFailToRenameFile=Failed to rename file '%s' into '%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Image file has not a supported format (Your PHP does not sup ErrorBadDateFormat=Value '%s' has wrong date format ErrorWrongDate=Date is not correct! ErrorFailedToWriteInDir=Failed to write in directory %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields have been left blank. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Please fill value for checkbox list ErrorNoValueForRadioType=Please fill value for radio list ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value ErrorFieldCanNotContainSpecialCharacters=The field %s must not contains special characters. -ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters and cannot contain only numbers. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=The field %s must have at least %s characters. ErrorNoAccountancyModuleLoaded=No accountancy module activated ErrorExportDuplicateProfil=This profile name already exists for this export set. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript must not be disabled to have this featur ErrorPasswordsMustMatch=Both typed passwords must match each other ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s errors found ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the file (file might be infected by a virus) -ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s" ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities @@ -241,11 +244,12 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist. ErrorFieldRequiredForProduct=Field '%s' is required for product %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s. ErrorAddAtLeastOneLineFirst=Add at least one line first ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible. ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Error, language is mandatory if you set the page as a translation of another one. -ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one. ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in warehouse "%s". ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s". ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded) @@ -270,29 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large -ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired +ErrorNotApproverForHoliday=You are not the approver for leave %s ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column -ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status ErrorAjaxRequestFailed=Request failed ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=Click here to setup mandatory parameters +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications WarningSafeModeOnCheckExecDir=Warning, PHP option safe_mode is on so command must be stored inside a directory declared by php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) already exists. @@ -301,7 +316,7 @@ WarningConfFileMustBeReadOnly=Warning, your config file (htdocs/conf/conf.php WarningsOnXLines=Warnings on %s source record(s) WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). @@ -323,7 +338,9 @@ WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connec WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME - +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". + # Validate RequireValidValue = Value not valid RequireAtLeastXString = Requires at least %s character(s) diff --git a/htdocs/langs/en_US/eventorganization.lang b/htdocs/langs/en_US/eventorganization.lang index 858e0937788..17cdda6525e 100644 --- a/htdocs/langs/en_US/eventorganization.lang +++ b/htdocs/langs/en_US/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Conference Or Booth +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = Conference Or Booth ConferenceOrBoothTab = Conference Or Booth AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Conference Or Booth Attendee +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = List of suggested conferences -ListOfSuggestedBooths = List of suggested booths -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Suggest a new conference SuggestBooth = Suggest a booth ViewAndVote = View and vote for suggested events PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = The security key is invalid or missing -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = This conference starts on %s and ends on %s. ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s @@ -130,7 +133,7 @@ LabelOfconference=Conference label ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s must be before %s DateMustBeAfterThan=%s must be after %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registration OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -154,7 +158,7 @@ VoteOk = Your vote has been accepted. AlreadyVoted = You have already voted for this event. VoteError = An error has occurred during the vote, please try again. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event Attendee = Attendee PaymentConferenceAttendee = Conference attendee payment @@ -162,6 +166,7 @@ PaymentBoothLocation = Booth location payment DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation diff --git a/htdocs/langs/en_US/expensereports.lang b/htdocs/langs/en_US/expensereports.lang index 6a305e43ad7..5a5e06cf9c7 100644 --- a/htdocs/langs/en_US/expensereports.lang +++ b/htdocs/langs/en_US/expensereports.lang @@ -1,3 +1,160 @@ +# Dolibarr language file - Source file is en_US - expensereports.lang +# copied from trips.lang + +AUTHOR=Recorded by +AUTHORPAIEMENT=Paid by +AddTrip=Create expense report +AllExpenseReport=All type of expense report +AllExpenseReports=All expense reports +AnyOtherInThisListCanValidate=Person to be informed for validating the request. +AttachTheNewLineToTheDocument=Attach the line to an uploaded document +AucuneLigne=There is no expense report declared yet +BrouillonnerTrip=Move back expense report to status "Draft" +byEX_DAY=by day (limitation to %s) +byEX_EXP=by line (limitation to %s) +byEX_MON=by month (limitation to %s) +byEX_YEA=by year (limitation to %s) +CANCEL_USER=Deleted by +CarCategory=Vehicle category +ClassifyRefunded=Classify 'Refunded' +CompanyVisited=Company/organization visited +ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? +ConfirmCancelTrip=Are you sure you want to cancel this expense report? +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? +ConfirmDeleteTrip=Are you sure you want to delete this expense report? +ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? +ConfirmRefuseTrip=Are you sure you want to deny this expense report? +ConfirmSaveTrip=Are you sure you want to validate this expense report? +ConfirmValideTrip=Are you sure you want to approve this expense report? +DATE_CANCEL=Cancelation date +DATE_PAIEMENT=Payment date +DATE_REFUS=Deny date +DATE_SAVE=Validation date +DefaultCategoryCar=Default transportation mode +DefaultRangeNumber=Default range number +DeleteTrip=Delete expense report +ErrorDoubleDeclaration=You have declared another expense report into a similar date range. +Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' +ExpenseRangeOffset=Offset amount: %s +expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary +expenseReportCoef=Coefficient +expenseReportCoefUndefined=(value not defined) +expenseReportOffset=Offset +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay +expenseReportRangeFromTo=from %d to %d +expenseReportRangeMoreThan=more than %d +expenseReportTotalForFive=Example with d = 5 +ExpenseReportApplyTo=Apply to +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.
    - User: %s
    - Approved by: %s
    Click here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s +ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) +ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpenseReportDateEnd=Date end +ExpenseReportDateStart=Date start +ExpenseReportDomain=Domain to apply +ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers +ExpenseReportLimitAmount=Max amount +ExpenseReportLimitOn=Limit on +ExpenseReportLine=Expense report line +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.
    - User: %s
    - Paid by: %s
    Click here to show the expense report: %s +ExpenseReportPayment=Expense report payment +ExpenseReportRef=Ref. expense report +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s +ExpenseReportRestrictive=Exceeding forbidden +ExpenseReportRuleErrorOnSave=Error: %s +ExpenseReportRuleSave=Expense report rule saved +ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report +ExpenseReportWaitingForApproval=A new expense report has been submitted for approval +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.
    - User: %s
    - Period: %s
    Click here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.
    The %s, you refused to approve the expense report for this reason: %s.
    A new version has been proposed and waiting for your approval.
    - User: %s
    - Period: %s
    Click here to validate: %s +ExpenseReportsIk=Configuration of mileage charges +ExpenseReportsRules=Expense report rules +ExpenseReportsToApprove=Expense reports to approve +ExpenseReportsToPay=Expense reports to pay +ExpensesArea=Expense reports area +FeesKilometersOrAmout=Amount or kilometers +LastExpenseReports=Latest %s expense reports +ListOfFees=List of fees +ListOfTrips=List of expense reports +ListToApprove=Waiting for approval +ListTripsAndExpenses=List of expense reports +MOTIF_CANCEL=Reason +MOTIF_REFUS=Reason +ModePaiement=Payment mode +NewTrip=New expense report +nolimitbyEX_DAY=by day (no limitation) +nolimitbyEX_EXP=by line (no limitation) +nolimitbyEX_MON=by month (no limitation) +nolimitbyEX_YEA=by year (no limitation) +NoTripsToExportCSV=No expense report to export for this period. +NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. +OnExpense=Expense line +PDFStandardExpenseReports=Standard template to generate a PDF document for expense report +PaidTrip=Pay an expense report +REFUSEUR=Denied by +RangeIk=Mileage range +RangeNum=Range %d +SaveTrip=Validate expense report +ShowExpenseReport=Show expense report +ShowTrip=Show expense report +TripCard=Expense report card +TripId=Id expense report +TripNDF=Informations expense report +TripSociete=Information company +Trips=Expense reports +TripsAndExpenses=Expense reports +TripsAndExpensesStatistics=Expense reports statistics +TypeFees=Types of fees +UploadANewFileNow=Upload a new document now +VALIDATOR=User responsible for approval +VALIDOR=Approved by +ValidateAndSubmit=Validate and submit for approval +ValidatedWaitingApproval=Validated (waiting for approval) +ValideTrip=Approve expense report + +## Dictionary +EX_BRE=Breakfast +EX_CAM=CV maintenance and repair +EX_CAM_VP=PV maintenance and repair +EX_CAR=Car rental +EX_CUR=Customers receiving +EX_DOC=Documentation +EX_EMM=Employees meal +EX_FUE=Fuel CV +EX_FUE_VP=Fuel PV +EX_GUM=Guests meal +EX_HOT=Hotel +EX_IND=Indemnity transportation subscription +EX_KME=Mileage costs +EX_OTR=Other receiving +EX_PAR=Parking CV +EX_PAR_VP=Parking PV +EX_POS=Postage +EX_SUM=Maintenance supply +EX_SUO=Office supplies +EX_TAX=Various Taxes +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Bus +TF_CAR=Car +TF_ESSENCE=Fuel +TF_HOTEL=Hotel +TF_LUNCH=Lunch +TF_METRO=Metro +TF_OTHER=Other +TF_PEAGE=Toll +TF_TAXI=Taxi +TF_TRAIN=Train +TF_TRIP=Transportation + + +## add new (not from trips.lang) ExpenseReportPayments=Expense report payments # # error diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang index f06acd49f41..eb0c03fd56f 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -95,8 +95,8 @@ NbOfLinesOK=Number of lines with no errors and no warnings: %s. NbOfLinesImported=Number of lines successfully imported: %s. DataComeFromNoWhere=Value to insert comes from nowhere in source file. DataComeFromFileFieldNb=Value to insert comes from column %s in source file. -DataComeFromIdFoundFromRef=Value that comes from column %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). -DataComeFromIdFoundFromCodeId=Code that comes from column %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. +DataComeFromIdFoundFromRef=The value that comes from the source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=Data coming from source file will be inserted into the following field: DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: @@ -134,11 +134,14 @@ FormatControlRule=Format control rule ## imports updates KeysToUseForUpdates=Key (column) to use for updating existing data NbInsert=Number of inserted lines: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=Number of updated lines: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s StocksWithBatch=Stocks and location (warehouse) of products with batch/serial number WarningFirstImportedLine=The first line(s) will not be imported with the current selection NotUsedFields=Fields of database not used SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: MandatoryTargetFieldsNotMapped=Some mandatory target fields are not mapped -AllTargetMandatoryFieldsAreMapped=All target fields that need a mandatory value are mapped \ No newline at end of file +AllTargetMandatoryFieldsAreMapped=All target fields that need a mandatory value are mapped +ResultOfSimulationNoError=Result of simulation: No error \ No newline at end of file diff --git a/htdocs/langs/en_US/externalsite.lang b/htdocs/langs/en_US/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/en_US/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/en_US/ftp.lang b/htdocs/langs/en_US/ftp.lang deleted file mode 100644 index 254a2a698ce..00000000000 --- a/htdocs/langs/en_US/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP or SFTP Client module setup -NewFTPClient=New FTP/FTPS connection setup -FTPArea=FTP/FTPS Area -FTPAreaDesc=This screen shows a view of an FTP et SFTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions -FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index 3d0ae64be0f..8290f14a765 100644 --- a/htdocs/langs/en_US/holiday.lang +++ b/htdocs/langs/en_US/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Start date @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Reason UserCP=User ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -131,9 +143,16 @@ TemplatePDFHolidays=Template for leave requests PDF FreeLegalTextOnHolidays=Free text on PDF WatermarkOnDraftHolidayCards=Watermarks on draft leave requests HolidaysToApprove=Holidays to approve -NobodyHasPermissionToValidateHolidays=Nobody has permission to validate holidays -HolidayBalanceMonthlyUpdate=Monthly update of holiday balance +NobodyHasPermissionToValidateHolidays=Nobody has permission to validate leave requests +HolidayBalanceMonthlyUpdate=Monthly update of leave balance XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase leave balance +HolidayRecordsIncreased= %s leave balances increased +HolidayRecordIncreased=Leave balance increased +ConfirmMassIncreaseHoliday=Bulk leave balance increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/en_US/hrm.lang b/htdocs/langs/en_US/hrm.lang index ff917913eee..592009b8697 100644 --- a/htdocs/langs/en_US/hrm.lang +++ b/htdocs/langs/en_US/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Employees @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -JobPosition=Job -JobsPosition=Jobs +JobPosition=Job profile +JobsPosition=Job profiles NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -70,9 +70,9 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee @@ -86,5 +86,7 @@ SaveAddSkill = Skill(s) added SaveLevelSkill = Skill(s) level saved DeleteSkill = Skill removed SkillsExtraFields=Attributs supplémentaires (Compétences) -JobsExtraFields=Attributs supplémentaires (Emplois) +JobsExtraFields=Attributs supplémentaires (Job profile) EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels +NoDescription=No description \ No newline at end of file diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index a6716034c2d..d0c841fe802 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'. ErrorFailedToCreateDatabase=Failed to create database '%s'. ErrorFailedToConnectToDatabase=Failed to connect to database '%s'. ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. -ErrorPHPVersionTooLow=PHP version too old. Version %s is required. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Database '%s' already exists. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. @@ -49,7 +51,6 @@ DatabaseName=Database name DatabasePrefix=Database table prefix DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_. AdminLogin=User account for the Dolibarr database owner. -PasswordAgain=Retype password confirmation AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database CreateUser=Create user account or grant user account permission on the Dolibarr database @@ -211,3 +212,6 @@ ClickHereToGoToApp=Click here to go to your application ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory. Loaded=Loaded FunctionTest=Function test +NodoUpgradeAfterDB=No action requested by external modules after upgrade of database +NodoUpgradeAfterFiles=No action requested by external modules after upgrade of files or directories +MigrationContractLineRank=Migrate Contract Line to use Rank (and enable Reorder) diff --git a/htdocs/langs/en_US/interventions.lang b/htdocs/langs/en_US/interventions.lang index a57a84fc4c8..4119973d6dd 100644 --- a/htdocs/langs/en_US/interventions.lang +++ b/htdocs/langs/en_US/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Are you sure you want to open back the intervention %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 9241120c9db..2473659a5c7 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Open Upload=Upload ToLink=Link Select=Select @@ -216,8 +224,9 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Password -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. +YourUserFile=Your user file Name=Name NameSlashCompany=Name / Company Person=Person @@ -345,7 +354,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -481,6 +490,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -712,6 +722,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -801,6 +812,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -919,6 +931,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1044,6 +1057,7 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1115,6 +1129,7 @@ DeleteFileText=Do you really want delete this file? ShowOtherLanguages=Show other languages SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language NotUsedForThisCustomer=Not used for this customer +NotUsedForThisVendor=Not used for this vendor AmountMustBePositive=Amount must be positive ByStatus=By status InformationMessage=Information @@ -1135,15 +1150,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1172,9 +1201,18 @@ Terminated=Terminated AddLineOnPosition=Add line on position (at the end if empty) ConfirmAllocateCommercial=Assign sales representative confirmation ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? -CommercialsAffected=Sales representatives affected -CommercialAffected=Sales representative affected +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=Your message YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. UrlToCheck=Url to check -Automation=Automation \ No newline at end of file +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user +NoSpecificContactAddress=No specific contact or address +NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate. +HideOnVCard=Hide %s +AddToContacts=Add address to my contacts diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index 22060706a36..eb911c1cdbf 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=For security reasons, you must be granted permissions to edit all users to be able to link a member to a user that is not yours. SetLinkToUser=Link to a Dolibarr user SetLinkToThirdParty=Link to a Dolibarr third party +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=List of members MembersListToValid=List of draft members (to be validated) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Member id +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=New member MemberType=Member type MemberTypeId=Member type id @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=New contribution NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Late SubscriptionNotReceived=Contribution never received @@ -89,7 +98,7 @@ MorAndPhy=Corporation and Individual Reenable=Re-Enable ExcludeMember=Exclude a member Exclude=Exclude -ConfirmExcludeMember=Are you sure you want to exclude this member ? +ConfirmExcludeMember=Are you sure you want to exclude this member ? ResiliateMember=Terminate a member ConfirmResiliateMember=Are you sure you want to terminate this member? DeleteMember=Delete a member @@ -135,7 +144,7 @@ CardContent=Content of your member card # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Turnover (for a company) or Budget (for a foundation) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Jump on integrated online payment page +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -219,4 +230,5 @@ ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. MemberFirstname=Member firstname -MemberLastname=Member lastname \ No newline at end of file +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index b17ab4fdeb2..cefdfaa1b41 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=A module is detected as 'editable' when the file %s%s? This will change code in PHP class but also remove column from table definition of object. NotNull=Not NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Is a measure DirScanned=Directory scanned NoTrigger=No trigger NoWidget=No widget -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=List of menu entries ListOfDictionariesEntries=List of dictionaries entries ListOfPermissionsDefined=List of defined permissions SeeExamples=See examples here -EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Display on PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0) SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0) SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Use a specific editor URL UseSpecificFamily = Use a specific family UseSpecificAuthor = Use a specific author UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. -ShowOnCombobox=Show value into combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Key for tooltip CSSClass=CSS for edit/create form CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Not editable ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii to HTML converter AsciiToPdfConverter=Ascii to PDF converter TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 7f29b774b29..6bdea0cc951 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -11,8 +11,8 @@ Bom=Bills of Material BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=List of Manufacturing Orders +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=BOM numbering templates @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? ManufacturingEfficiency=Manufacturing efficiency ConsumptionEfficiency=Consumption efficiency +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Delete Bill Of Materials @@ -82,6 +83,7 @@ ProductsToProduce=Products to produce UnitCost=Unit cost TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -112,3 +114,7 @@ MOAndLines=Manufacturing Orders and lines MoChildGenerate=Generate Child Mo ParentMo=MO Parent MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/en_US/oauth.lang b/htdocs/langs/en_US/oauth.lang index dda6f1bdf73..01bb08e38bd 100644 --- a/htdocs/langs/en_US/oauth.lang +++ b/htdocs/langs/en_US/oauth.lang @@ -9,12 +9,14 @@ HasAccessToken=A token was generated and saved into local database NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Click here to delete token +GetAccess=Click here to get a token +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete the token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=See previous tab +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired @@ -23,10 +25,16 @@ TOKEN_DELETE=Delete saved token OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test -OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live \ No newline at end of file +OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists +URLOfServiceForAuthorization=URL provided by OAuth service for authentication +Scopes=Permissions (Scopes) +ScopeUndefined=Permissions (Scopes) undefined (see previous tab) \ No newline at end of file diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index a4261f8e62c..f988cd62f19 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=An order was already open linked to this proposal, so no other order was created automatically OrdersArea=Customers orders area SuppliersOrdersArea=Purchase orders area OrderCard=Order card @@ -95,6 +96,10 @@ OrdersStatisticsSuppliers=Purchase order statistics NumberOfOrdersByMonth=Number of orders by month AmountOfOrdersByMonthHT=Amount of orders by month (excl. tax) ListOfOrders=List of orders +ListOrderLigne=Lines of orders +productobuy=Products to buy only +productonly=Products only +disablelinefree=No lines free CloseOrder=Close order ConfirmCloseOrder=Are you sure you want to set this order to delivered? Once an order is delivered, it can be set to billed. ConfirmDeleteOrder=Are you sure you want to delete this order? @@ -130,6 +135,7 @@ SupplierOrderClassifiedBilled=Purchase Order %s set billed OtherOrders=Other orders SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s SupplierOrderValidated=Supplier order is validated : %s +OrderShowDetail=Show order detail ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Representative following-up sales order TypeContact_commande_internal_SHIPPING=Representative following-up shipping diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index 9857ad821ed..3d92fe4f69b 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Back to login page AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
    In this mode, Dolibarr can't know nor change your password.
    Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Close Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup link to external website +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Failed to remove file %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/en_US/partnership.lang b/htdocs/langs/en_US/partnership.lang index 5c85e4d7830..89a1bfa742d 100644 --- a/htdocs/langs/en_US/partnership.lang +++ b/htdocs/langs/en_US/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnership management PartnershipDescription=Module Partnership management PartnershipDescriptionLong= Module Partnership management Partnership=Partnership +Partnerships=Partnerships AddPartnership=Add partnership CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions PartnershipCheckBacklink=Partnership: Check referring backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnership: Check referring backlink # Menu # NewPartnership=New Partnership +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=List of partnership # @@ -48,8 +50,8 @@ PublicFormRegistrationPartnerDesc=Dolibarr can provide you a public URL/website # Object # DeletePartnership=Delete a partnership -PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party -PartnershipDedicatedToThisMember=Partnership dedicated to this member +PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party +PartnershipDedicatedToThisMember=Partnership dedicated to this member DatePartnershipStart=Start date DatePartnershipEnd=End date ReasonDecline=Decline reason diff --git a/htdocs/langs/en_US/paypal.lang b/htdocs/langs/en_US/paypal.lang index beaf9a5ea3f..a935cd38434 100644 --- a/htdocs/langs/en_US/paypal.lang +++ b/htdocs/langs/en_US/paypal.lang @@ -34,3 +34,4 @@ ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. ValidationOfPaymentFailed=Validation of payment has failed CardOwner=Card holder PayPalBalance=Paypal credit +OnlineSubscriptionPaymentLine=Online subscription recorded on %s
    Paid via %s
    Originating IP address: %s
    Transaction ID: %s diff --git a/htdocs/langs/en_US/productbatch.lang b/htdocs/langs/en_US/productbatch.lang index 4bd64f44577..a1039e05e62 100644 --- a/htdocs/langs/en_US/productbatch.lang +++ b/htdocs/langs/en_US/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Lot/Serial: %s printEatby=Eat-by: %s printSellby=Sell-by: %s printQty=Qty: %d +printPlannedWarehouse=Warehouse: %s AddDispatchBatchLine=Add a line for Shelf Life dispatching WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic stock decrease is forced to 'Decrease real stocks on shipping validation' and automatic increase mode is forced to 'Increase real stocks on manual dispatching into warehouses' and can't be edited. Other options can be defined as you want. ProductDoesNotUseBatchSerial=This product does not use lot/serial number diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 94d77315217..3d5048d99a9 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -345,7 +345,7 @@ PossibleValues=Possible values GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...) UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers ProductSupplierDescription=Vendor description for the product -UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Packaging PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Action only available on the variant of prod ProductsPricePerCustomer=Product prices per customers ProductSupplierExtraFields=Additional Attributes (Supplier Prices) DeleteLinkedProduct=Delete the child product linked to the combination -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Weighted average price PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -416,6 +416,7 @@ ProductsMergeSuccess=Products have been merged ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) InventoryExtraFields= Extra Fields (inventory) ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes @@ -427,3 +428,4 @@ RealValuation=Real Valuation ConfirmEditExtrafield = Select the extrafield you want modify ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index e0fa85dd273..6d2f67ee675 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=This view presents all projects and tasks you are allowed to rea TasksDesc=This view presents all projects and tasks (your user permissions grant you permission to view everything). AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Tasks of projects ProjectCategories=Project tags/categories NewProject=New project @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status OpportunitiesStatusForProjects=Leads amount of projects by status ShowProject=Show project ShowTask=Show task +SetThirdParty=Set third party SetProject=Set project +OutOfProject=Out of project NoProject=No project defined or owned NbOfProjects=Number of projects NbOfTasks=Number of tasks @@ -122,7 +125,8 @@ ValidateProject=Validate projet ConfirmValidateProject=Are you sure you want to validate this project? CloseAProject=Close project ConfirmCloseAProject=Are you sure you want to close this project? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Open project ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Contacts of project @@ -165,7 +169,7 @@ OpportunityProbability=Lead probability OpportunityProbabilityShort=Lead probab. OpportunityAmount=Lead amount OpportunityAmountShort=Lead amount -OpportunityWeightedAmount=Opportunity weighted amount +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. weighted amount OpportunityAmountAverageShort=Average lead amount OpportunityAmountWeigthedShort=Weighted lead amount @@ -238,7 +242,7 @@ OppStatusPENDING=Pending OppStatusWON=Won OppStatusLOST=Lost Budget=Budget -AllowToLinkFromOtherCompany=Allow to link project from other company

    Supported values:
    - Keep empty: Can link any project of the company (default)
    - "all": Can link any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Latest %s projects LatestModifiedProjects=Latest %s modified projects OtherFilteredTasks=Other filtered tasks @@ -259,7 +263,7 @@ TimeSpentInvoiced=Time spent billed TimeSpentForIntervention=Time spent TimeSpentForInvoice=Time spent OneLinePerUser=One line per user -ServiceToUseOnLines=Service to use on lines +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -293,4 +297,5 @@ LeadPublicFormDesc=You can enable here a public page to allow your prospects to EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form \ No newline at end of file +LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report \ No newline at end of file diff --git a/htdocs/langs/en_US/propal.lang b/htdocs/langs/en_US/propal.lang index aa5ef73f7dc..595507a4bf4 100644 --- a/htdocs/langs/en_US/propal.lang +++ b/htdocs/langs/en_US/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Availability delay SetAvailability=Set availability delay AfterOrder=after order OtherProposals=Other proposals + ##### Availability ##### AvailabilityTypeAV_NOW=Immediate AvailabilityTypeAV_1W=1 week AvailabilityTypeAV_2W=2 weeks AvailabilityTypeAV_3W=3 weeks AvailabilityTypeAV_1M=1 month -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representative following-up proposal TypeContact_propal_external_BILLING=Customer invoice contact TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model -DefaultModelPropalCreate=Default model creation -DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) -ProposalCustomerSignature=Written acceptance, company stamp, date and signature -ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -NoSign=Set not signed -NoSigned=set not signed CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by ConfirmMassNoSignature=Bulk Not signed confirmation ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? -IsNotADraft=is not a draft -PassedInOpenStatus=has been validated -Sign=Sign -Signed=signed -ConfirmMassValidation=Bulk Validate confirmation ConfirmMassSignature=Bulk Signature confirmation -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=Proposal ID +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +DefaultModelPropalCreate=Default model creation +DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal +NoSign=Refuse +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted +ProposalCustomerSignature=Written acceptance, company stamp, date and signature +ProposalsStatisticsSuppliers=Vendor proposals statistics RefusePropal=Refuse proposal Sign=Sign -NoSign=Refuse -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/en_US/receptions.lang b/htdocs/langs/en_US/receptions.lang index 5b51f5ba071..7324f14f2e0 100644 --- a/htdocs/langs/en_US/receptions.lang +++ b/htdocs/langs/en_US/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Draft StatusReceptionValidatedShort=Validated StatusReceptionProcessedShort=Processed ReceptionSheet=Reception sheet +ValidateReception=Validate reception ConfirmDeleteReception=Are you sure you want to delete this reception? ConfirmValidateReception=Are you sure you want to validate this reception with reference %s? ConfirmCancelReception=Are you sure you want to cancel this reception? diff --git a/htdocs/langs/en_US/recruitment.lang b/htdocs/langs/en_US/recruitment.lang index 888f6fe5225..686722a48c5 100644 --- a/htdocs/langs/en_US/recruitment.lang +++ b/htdocs/langs/en_US/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... diff --git a/htdocs/langs/en_US/salaries.lang b/htdocs/langs/en_US/salaries.lang index 20a10694500..d5f5b7e7544 100644 --- a/htdocs/langs/en_US/salaries.lang +++ b/htdocs/langs/en_US/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Salary diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index f28151c9efe..f789ce283e5 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Date in the future StocksByLotSerial=Stocks by lot/serial LotSerial=Lots/Serials LotSerialList=List of lot/serials +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Movements ErrorWarehouseRefRequired=Warehouse reference name is required ListOfWarehouses=List of warehouses @@ -48,7 +49,7 @@ StockCorrection=Stock correction CorrectStock=Correct stock StockTransfer=Stock transfer TransferStock=Transfer stock -MassStockTransferShort=Mass stock transfer +MassStockTransferShort=Bulk stock change StockMovement=Stock movement StockMovements=Stock movements NumberOfUnit=Number of units @@ -146,8 +147,9 @@ Replenishments=Replenishments NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s) NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement -SelectProductInAndOutWareHouse=Select a source warehouse and a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Record transfer +RecordMovements=Record stock movements ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -234,7 +236,7 @@ StockIncrease=Stock increase StockDecrease=Stock decrease InventoryForASpecificWarehouse=Inventory for a specific warehouse InventoryForASpecificProduct=Inventory for a specific product -StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Force to AlwaysShowFullArbo=Display full tree of warehouse on popup of warehouse links (Warning: This may decrease dramatically performances) StockAtDatePastDesc=You can view here the stock (real stock) at a given date in the past @@ -265,11 +267,12 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Started ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. -StockChangeDisabled=Change on stock disabled +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal ClearQtys=Clear all quantities ModuleStockTransferName=Advanced Stock Transfer diff --git a/htdocs/langs/en_US/stripe.lang b/htdocs/langs/en_US/stripe.lang index 0a376ca9fb1..2a3f988cebf 100644 --- a/htdocs/langs/en_US/stripe.lang +++ b/htdocs/langs/en_US/stripe.lang @@ -61,6 +61,7 @@ DeleteACard=Delete Card ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card? CreateCustomerOnStripe=Create customer on Stripe CreateCardOnStripe=Create card on Stripe +CreateBANOnStripe=Create bank on Stripe ShowInStripe=Show in Stripe StripeUserAccountForActions=User account to use for email notification of some Stripe events (Stripe payouts) StripePayoutList=List of Stripe payouts @@ -68,4 +69,6 @@ ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mo ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. ClickHereToTryAgain=Click here to try again... -CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s \ No newline at end of file +CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s +TERMINAL_LOCATION=Location (address) for terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe \ No newline at end of file diff --git a/htdocs/langs/en_US/suppliers.lang b/htdocs/langs/en_US/suppliers.lang index 15da3f0638a..08895194016 100644 --- a/htdocs/langs/en_US/suppliers.lang +++ b/htdocs/langs/en_US/suppliers.lang @@ -4,6 +4,7 @@ SuppliersInvoice=Vendor invoice SupplierInvoices=Vendor invoices ShowSupplierInvoice=Show Vendor Invoice NewSupplier=New vendor +NewSupplierInvoice = New vendor invoice History=History ListOfSuppliers=List of vendors ShowSupplier=Show vendor diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang index 8ff20570316..ea560012afc 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,8 +91,8 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -204,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -219,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Signature -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang index 9210ede360c..b37233a526f 100644 --- a/htdocs/langs/en_US/trips.lang +++ b/htdocs/langs/en_US/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Show expense report -Trips=Expense reports -TripsAndExpenses=Expenses reports -TripsAndExpensesStatistics=Expense reports statistics -TripCard=Expense report card +AUTHOR=Recorded by +AUTHORPAIEMENT=Paid by AddTrip=Create expense report -ListOfTrips=List of expense reports -ListOfFees=List of fees -TypeFees=Types of fees -ShowTrip=Show expense report -NewTrip=New expense report -LastExpenseReports=Latest %s expense reports +AllExpenseReport=All type of expense report AllExpenseReports=All expense reports -CompanyVisited=Company/organization visited -FeesKilometersOrAmout=Amount or kilometers -DeleteTrip=Delete expense report -ConfirmDeleteTrip=Are you sure you want to delete this expense report? -ListTripsAndExpenses=List of expense reports -ListToApprove=Waiting for approval -ExpensesArea=Expense reports area +AnyOtherInThisListCanValidate=Person to be informed for validating the request. +AttachTheNewLineToTheDocument=Attach the line to an uploaded document +AucuneLigne=There is no expense report declared yet +BrouillonnerTrip=Move back expense report to status "Draft" +byEX_DAY=by day (limitation to %s) +byEX_EXP=by line (limitation to %s) +byEX_MON=by month (limitation to %s) +byEX_YEA=by year (limitation to %s) +CANCEL_USER=Deleted by +CarCategory=Vehicle category ClassifyRefunded=Classify 'Refunded' +CompanyVisited=Company/organization visited +ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? +ConfirmCancelTrip=Are you sure you want to cancel this expense report? +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? +ConfirmDeleteTrip=Are you sure you want to delete this expense report? +ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? +ConfirmRefuseTrip=Are you sure you want to deny this expense report? +ConfirmSaveTrip=Are you sure you want to validate this expense report? +ConfirmValideTrip=Are you sure you want to approve this expense report? +DATE_CANCEL=Cancelation date +DATE_PAIEMENT=Payment date +DATE_REFUS=Deny date +DATE_SAVE=Validation date +DefaultCategoryCar=Default transportation mode +DefaultRangeNumber=Default range number +DeleteTrip=Delete expense report +ErrorDoubleDeclaration=You have declared another expense report into a similar date range. +Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' +ExpenseRangeOffset=Offset amount: %s +expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary +expenseReportCoef=Coefficient +expenseReportCoefUndefined=(value not defined) +expenseReportOffset=Offset +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay +expenseReportRangeFromTo=from %d to %d +expenseReportRangeMoreThan=more than %d +expenseReportTotalForFive=Example with d = 5 +ExpenseReportApplyTo=Apply to +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.
    - User: %s
    - Approved by: %s
    Click here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s +ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) +ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpenseReportDateEnd=Date end +ExpenseReportDateStart=Date start +ExpenseReportDomain=Domain to apply +ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers +ExpenseReportLimitAmount=Max amount +ExpenseReportLimitOn=Limit on +ExpenseReportLine=Expense report line +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.
    - User: %s
    - Paid by: %s
    Click here to show the expense report: %s +ExpenseReportPayment=Expense report payment +ExpenseReportRef=Ref. expense report +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s +ExpenseReportRestrictive=Exceeding forbidden +ExpenseReportRuleErrorOnSave=Error: %s +ExpenseReportRuleSave=Expense report rule saved +ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report ExpenseReportWaitingForApproval=A new expense report has been submitted for approval ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.
    - User: %s
    - Period: %s
    Click here to validate: %s ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.
    The %s, you refused to approve the expense report for this reason: %s.
    A new version has been proposed and waiting for your approval.
    - User: %s
    - Period: %s
    Click here to validate: %s -ExpenseReportApproved=An expense report was approved -ExpenseReportApprovedMessage=The expense report %s was approved.
    - User: %s
    - Approved by: %s
    Click here to show the expense report: %s -ExpenseReportRefused=An expense report was refused -ExpenseReportRefusedMessage=The expense report %s was refused.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s -ExpenseReportCanceled=An expense report was canceled -ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s -ExpenseReportPaid=An expense report was paid -ExpenseReportPaidMessage=The expense report %s was paid.
    - User: %s
    - Paid by: %s
    Click here to show the expense report: %s -TripId=Id expense report -AnyOtherInThisListCanValidate=Person to be informed for validating the request. -TripSociete=Information company -TripNDF=Informations expense report -PDFStandardExpenseReports=Standard template to generate a PDF document for expense report -ExpenseReportLine=Expense report line -TF_OTHER=Other -TF_TRIP=Transportation -TF_LUNCH=Lunch -TF_METRO=Metro -TF_TRAIN=Train -TF_BUS=Bus -TF_CAR=Car -TF_PEAGE=Toll -TF_ESSENCE=Fuel -TF_HOTEL=Hotel -TF_TAXI=Taxi -EX_KME=Mileage costs -EX_FUE=Fuel CV -EX_HOT=Hotel -EX_PAR=Parking CV -EX_TOL=Toll CV -EX_TAX=Various Taxes -EX_IND=Indemnity transportation subscription -EX_SUM=Maintenance supply -EX_SUO=Office supplies -EX_CAR=Car rental -EX_DOC=Documentation -EX_CUR=Customers receiving -EX_OTR=Other receiving -EX_POS=Postage -EX_CAM=CV maintenance and repair -EX_EMM=Employees meal -EX_GUM=Guests meal -EX_BRE=Breakfast -EX_FUE_VP=Fuel PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parking PV -EX_CAM_VP=PV maintenance and repair -DefaultCategoryCar=Default transportation mode -DefaultRangeNumber=Default range number -UploadANewFileNow=Upload a new document now -Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' -ErrorDoubleDeclaration=You have declared another expense report into a similar date range. -AucuneLigne=There is no expense report declared yet -ModePaiement=Payment mode -VALIDATOR=User responsible for approval -VALIDOR=Approved by -AUTHOR=Recorded by -AUTHORPAIEMENT=Paid by -REFUSEUR=Denied by -CANCEL_USER=Deleted by -MOTIF_REFUS=Reason -MOTIF_CANCEL=Reason -DATE_REFUS=Deny date -DATE_SAVE=Validation date -DATE_CANCEL=Cancelation date -DATE_PAIEMENT=Payment date -ExpenseReportRef=Ref. expense report -ValidateAndSubmit=Validate and submit for approval -ValidatedWaitingApproval=Validated (waiting for approval) -NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. -ConfirmRefuseTrip=Are you sure you want to deny this expense report? -ValideTrip=Approve expense report -ConfirmValideTrip=Are you sure you want to approve this expense report? -PaidTrip=Pay an expense report -ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? -ConfirmCancelTrip=Are you sure you want to cancel this expense report? -BrouillonnerTrip=Move back expense report to status "Draft" -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? -SaveTrip=Validate expense report -ConfirmSaveTrip=Are you sure you want to validate this expense report? -NoTripsToExportCSV=No expense report to export for this period. -ExpenseReportPayment=Expense report payment -ExpenseReportsToApprove=Expense reports to approve -ExpenseReportsToPay=Expense reports to pay -ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? ExpenseReportsIk=Configuration of mileage charges ExpenseReportsRules=Expense report rules -ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers -ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report -expenseReportOffset=Offset -expenseReportCoef=Coefficient -expenseReportTotalForFive=Example with d = 5 -expenseReportRangeFromTo=from %d to %d -expenseReportRangeMoreThan=more than %d -expenseReportCoefUndefined=(value not defined) -expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary -expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Apply to -ExpenseReportDomain=Domain to apply -ExpenseReportLimitOn=Limit on -ExpenseReportDateStart=Date start -ExpenseReportDateEnd=Date end -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden -AllExpenseReport=All type of expense report -OnExpense=Expense line -ExpenseReportRuleSave=Expense report rule saved -ExpenseReportRuleErrorOnSave=Error: %s -RangeNum=Range %d -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) -byEX_DAY=by day (limitation to %s) -byEX_MON=by month (limitation to %s) -byEX_YEA=by year (limitation to %s) -byEX_EXP=by line (limitation to %s) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpenseReportsToApprove=Expense reports to approve +ExpenseReportsToPay=Expense reports to pay +ExpensesArea=Expense reports area +FeesKilometersOrAmout=Amount or kilometers +LastExpenseReports=Latest %s expense reports +ListOfFees=List of fees +ListOfTrips=List of expense reports +ListToApprove=Waiting for approval +ListTripsAndExpenses=List of expense reports +MOTIF_CANCEL=Reason +MOTIF_REFUS=Reason +ModePaiement=Payment mode +NewTrip=New expense report nolimitbyEX_DAY=by day (no limitation) +nolimitbyEX_EXP=by line (no limitation) nolimitbyEX_MON=by month (no limitation) nolimitbyEX_YEA=by year (no limitation) -nolimitbyEX_EXP=by line (no limitation) -CarCategory=Vehicle category -ExpenseRangeOffset=Offset amount: %s +NoTripsToExportCSV=No expense report to export for this period. +NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. +OnExpense=Expense line +PDFStandardExpenseReports=Standard template to generate a PDF document for expense report +PaidTrip=Pay an expense report +REFUSEUR=Denied by RangeIk=Mileage range -AttachTheNewLineToTheDocument=Attach the line to an uploaded document +RangeNum=Range %d +SaveTrip=Validate expense report +ShowExpenseReport=Show expense report +ShowTrip=Show expense report +TripCard=Expense report card +TripId=Id expense report +TripNDF=Informations expense report +TripSociete=Information company +Trips=Expense reports +TripsAndExpenses=Expenses reports +TripsAndExpensesStatistics=Expense reports statistics +TypeFees=Types of fees +UploadANewFileNow=Upload a new document now +VALIDATOR=User responsible for approval +VALIDOR=Approved by +ValidateAndSubmit=Validate and submit for approval +ValidatedWaitingApproval=Validated (waiting for approval) +ValideTrip=Approve expense report + +## Dictionary +EX_BRE=Breakfast +EX_CAM=CV maintenance and repair +EX_CAM_VP=PV maintenance and repair +EX_CAR=Car rental +EX_CUR=Customers receiving +EX_DOC=Documentation +EX_EMM=Employees meal +EX_FUE=Fuel CV +EX_FUE_VP=Fuel PV +EX_GUM=Guests meal +EX_HOT=Hotel +EX_IND=Indemnity transportation subscription +EX_KME=Mileage costs +EX_OTR=Other receiving +EX_PAR=Parking CV +EX_PAR_VP=Parking PV +EX_POS=Postage +EX_SUM=Maintenance supply +EX_SUO=Office supplies +EX_TAX=Various Taxes +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Bus +TF_CAR=Car +TF_ESSENCE=Fuel +TF_HOTEL=Hotel +TF_LUNCH=Lunch +TF_METRO=Metro +TF_OTHER=Other +TF_PEAGE=Toll +TF_TAXI=Taxi +TF_TRAIN=Train +TF_TRIP=Transportation diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index c98c1f4902f..2f691153292 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Remove from group PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Request to change password for %s sent to %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Users & Groups @@ -68,7 +68,6 @@ CreateDolibarrLogin=Create a user CreateDolibarrThirdParty=Create a third party LoginAccountDisableInDolibarr=Account disabled in Dolibarr. UsePersonalValue=Use personal value -InternalUser=Internal user ExportDataset_user_1=Users and their properties DomainUser=Domain user %s Reactivate=Reactivate @@ -128,3 +127,8 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows +UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book. +EnablePublicVirtualCard=Enable the public virtual user card +PublicVirtualCardUrl=Public virtual user card \ No newline at end of file diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index b5ef14bd118..742e3afff67 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Code +WebsiteName=Name of the website WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. The files uploaded (like into the medias directory, the ECM module, ...) will remain. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages) WEBSITE_ROBOT=Robot file (robots.txt) WEBSITE_HTACCESS=Website .htaccess file WEBSITE_MANIFEST_JSON=Website manifest.json file -WEBSITE_README=README.md file WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML header (specific to this page only) PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container. @@ -42,6 +43,8 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Example to use in Apache virtual host setup: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index 75cee952bcd..7b8d4ae3f26 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer AmountToWithdraw=Amount to withdraw AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=No invoice open for '%s' is waiting. Go on tab '%s' on invoice card to make a request. -NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=User Responsible WithdrawalsSetup=Direct debit payment setup CreditTransferSetup=Credit transfer setup @@ -42,6 +42,7 @@ CreditTransferStatistics=Credit transfer statistics Rejects=Rejects LastWithdrawalReceipt=Latest %s direct debit receipts MakeWithdrawRequest=Make a direct debit payment request +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Make a credit transfer request WithdrawRequestsDone=%s direct debit payment requests recorded BankTransferRequestsDone=%s credit transfer requests recorded @@ -100,8 +101,11 @@ CreditDate=Credit on WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported) ShowWithdraw=Show Direct Debit Order IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. -DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Payment by direct debit to generate and manage the direct debit order. When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. -DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu Bank->Payment by credit transfer to generate and manage the credit transfer order. When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Debit order file CreditTransferFile=Credit transfer file SetToStatusSent=Set to status "File Sent" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty am SepaMandate=SEPA Direct Debit Mandate SepaMandateShort=SEPA Mandate PleaseReturnMandate=Please return this mandate form by email to %s or by mail to -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Creditor Identifier CreditorName=Creditor Name SEPAFillForm=(B) Please complete all the fields marked * diff --git a/htdocs/langs/en_US/workflow.lang b/htdocs/langs/en_US/workflow.lang index 803a31c9646..a2b6b4c1f95 100644 --- a/htdocs/langs/en_US/workflow.lang +++ b/htdocs/langs/en_US/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked sourc descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the tic AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Automatic closing AutomaticLinking=Automatic linking diff --git a/htdocs/langs/en_ZA/hrm.lang b/htdocs/langs/en_ZA/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_ZA/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_ZA/propal.lang b/htdocs/langs/en_ZA/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_ZA/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang index e01b13955c1..beedcee5010 100644 --- a/htdocs/langs/es_AR/admin.lang +++ b/htdocs/langs/es_AR/admin.lang @@ -76,7 +76,6 @@ NextValueForDeposit=Siguiente valor (pago inicial) NextValueForReplacements=Siguiente valor (reemplazos) NoMaxSizeByPHPLimit=Nota: no hay límite establecido en su configuración de PHP MaxSizeForUploadedFiles=Tamaño máximo para archivos cargados (0 para no permitir ninguna carga) -UseCaptchaCode=Use el código gráfico (CAPTCHA) en la página de inicio de sesión AntiVirusCommand=Ruta completa al comando antivirus AntiVirusCommandExample=Ejemplo para ClamAv Daemon (requiere clamav-daemon): /usr/bin/clamdscan
    Ejemplo para ClamWin (muy muy lento): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam=Más parámetros en la línea de comando @@ -302,7 +301,6 @@ LabelUsedByDefault=Etiqueta utilizada de forma predeterminada si no se puede enc LabelOnDocuments=Etiqueta en los documentos LabelOrTranslationKey=Etiqueta o clave de traducción NbOfDays=Numero de dias -CurrentNext=Actual / Siguiente Offset=Compensar Upgrade=Mejorar MenuUpgrade=Actualizar / Extender @@ -515,7 +513,6 @@ LDAPFieldZip=Cremallera LDAPFieldCompany=Compañía Target=Destino Sell=Vender -TopMenuDisableImages=Hide images in Top menu PositionIntoComboList=Posición de la línea en las listas de combo RecuperableOnly=Sí, para el IVA "No percibido pero recuperable" dedicado a algún estado de Francia. Mantenga el valor en "No" en todos los demás casos. UrlTrackingDesc=Si el proveedor o el servicio de transporte ofrece una página o sitio web para verificar el estado de sus envíos, puede ingresar aquí. Puede usar la clave {TRACKID} en los parámetros de la URL para que el sistema la reemplace con el número de seguimiento que el usuario ingresó en la ficha del viaje. @@ -535,6 +532,7 @@ MailToSendSupplierRequestForQuotation=Solicitud de presupuesto MailToSendSupplierOrder=Ordenes de compra MailToSendSupplierInvoice=Facturas de proveedores MailToSendContract=Los contratos +MailToExpenseReport=Informe de gastos MailToProject=Projectos ByDefaultInList=Mostrar por defecto en la vista de lista YouUseLastStableVersion=Usas la última versión estable @@ -589,10 +587,9 @@ EMailHost=Host de correo electrónico del servidor IMAP EmailcollectorOperations=Operaciones a realizar por coleccionista. EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación NoNewEmailToProcess=No hay correo electrónico nuevo (filtros coincidentes) para procesar -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) CodeLastResult=Último código de resultado ECMAutoTree=Mostrar arbol ECM automatico -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. ResourceSetup=Configuración del módulo de recursos UseSearchToSelectResource=Use un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). DisabledResourceLinkUser=Deshabilitar la función para vincular un recurso a los usuarios @@ -600,3 +597,4 @@ DisabledResourceLinkContact=Deshabilitar función para vincular un recurso a con ConfirmUnactivation=Confirmar el reinicio del módulo OnMobileOnly=Solo en pantalla pequeña (teléfono inteligente) EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +Settings =Ajustes diff --git a/htdocs/langs/es_AR/commercial.lang b/htdocs/langs/es_AR/commercial.lang index d85913580a1..b8b70ff7a01 100644 --- a/htdocs/langs/es_AR/commercial.lang +++ b/htdocs/langs/es_AR/commercial.lang @@ -60,6 +60,5 @@ Stats=Estadísticas de ventas StatusProsp=Estado del cliente potencial DraftPropals=Presupuestos en borrador ToOfferALinkForOnlineSignature=Vínculo para firma digital -ThisScreenAllowsYouToSignDocFrom=Esta pantalla te permitirá aceptar, firmar o rechazar un presupuesto SignatureProposalRef=Firma del presupuesto %s FeatureOnlineSignDisabled=La funcionalidad para la firma digital está deshabilitada o el documento fue generado antes de habilitar la función diff --git a/htdocs/langs/es_AR/companies.lang b/htdocs/langs/es_AR/companies.lang index de5dfa2801f..7abdd92ce94 100644 --- a/htdocs/langs/es_AR/companies.lang +++ b/htdocs/langs/es_AR/companies.lang @@ -41,7 +41,6 @@ Address=Drección State=Estado/Provincia StateCode=Código postal del Estado/Provincia CountryCode=Código de País -CountryId=ID de País Chat=Chate PhonePerso=Teléfono Persona PhoneMobile=Celular @@ -89,8 +88,6 @@ ProfId3BR=IM (Inscripción Municipal) ProfId3CH=ID Prof 1 (Número federal) ProfId4CH=ID Prof 2 (Número de registro comercial) ProfId1CL=ID Prof 1 (RUT) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId3ShortCM=Decree of creation ProfId1CO=ID Prof 1 (RUT) ProfId1DE=ID Prof 1 (USt.-IdNr) ProfId2DE=ID Prof 2 (Ust.-Nr) diff --git a/htdocs/langs/es_AR/datapolicy.lang b/htdocs/langs/es_AR/datapolicy.lang new file mode 100644 index 00000000000..1171dcef5f5 --- /dev/null +++ b/htdocs/langs/es_AR/datapolicy.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - datapolicy +DATAPOLICY_TIERS_PROSPECT =Cliente Potencial +DATAPOLICY_CONTACT_PROSPECT =Cliente Potencial diff --git a/htdocs/langs/es_AR/ecm.lang b/htdocs/langs/es_AR/ecm.lang index a668d35a6b8..099dbdbaf6f 100644 --- a/htdocs/langs/es_AR/ecm.lang +++ b/htdocs/langs/es_AR/ecm.lang @@ -15,7 +15,6 @@ ECMNbOfSubDir=Cantidad de sub-carpetas ECMNbOfFilesInSubDir=Cantidad de archivos en sub-carpetas ECMArea=Area SAD/ACE ECMAreaDesc=El área de SAD/ACE (Sistema de Administración de Documentos / Administración de Contenido Electrónico) te permite guardar, compartir y rápidamente buscar todo tipo de documentos en Dolibarr. -ECMAreaDesc2=* Las carpetas automáticas son llenadas automáticamente al agregar documentos desde la ficha de un elemento.
    * Las carpetas manuales pueden ser usadas para guardar documentos no enlazados a un elemento en particular. ECMSectionWasRemoved=Carpeta %s ha sido eliminada. ECMSectionWasCreated=Carpeta %s ha sido creada. ECMSearchByKeywords=Búsqueda por palabras clave diff --git a/htdocs/langs/es_AR/externalsite.lang b/htdocs/langs/es_AR/externalsite.lang deleted file mode 100644 index b7942f1500e..00000000000 --- a/htdocs/langs/es_AR/externalsite.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Establezca un enlace al sitio web externo -ExternalSiteModuleNotComplete=El módulo SitioExterno no fue configurado apropiadamente. diff --git a/htdocs/langs/es_AR/ftp.lang b/htdocs/langs/es_AR/ftp.lang deleted file mode 100644 index 2ccb645c797..00000000000 --- a/htdocs/langs/es_AR/ftp.lang +++ /dev/null @@ -1,13 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuración de módulo de cliente FTP -NewFTPClient=Configuración de nueva conexión FTP -FTPArea=Area FTP -FTPAreaDesc=Esta pantalla muestra una vista de un servidor FTP. -SetupOfFTPClientModuleNotComplete=La configuración del módulo de cliente FTP parece estar incompleta -FTPFeatureNotSupportedByYourPHP=Tu versión de PHP no soporta funciones FTP -FailedToConnectToFTPServer=Error al conectar al servidor FTP (servidor %s, puerto %s) -FailedToConnectToFTPServerWithCredentials=Error al iniciar sesión en el servidor FTP con el usuario/contraseña definidos -FTPFailedToRemoveFile=Error al remover archivo %s. -FTPFailedToRemoveDir=Error al remover carpeta %s: revise los permisos y que la carpeta esté vacía. -ChooseAFTPEntryIntoMenu=Elija un sitio FTP desde el menú... -FailedToGetFile=Error al obtener archivos %s diff --git a/htdocs/langs/es_AR/hrm.lang b/htdocs/langs/es_AR/hrm.lang index cd3446fed36..00f72f952ca 100644 --- a/htdocs/langs/es_AR/hrm.lang +++ b/htdocs/langs/es_AR/hrm.lang @@ -1,4 +1,3 @@ # Dolibarr language file - Source file is en_US - hrm HRM_EMAIL_EXTERNAL_SERVICE=E-mail para evitar el servicio externo de gestión de RRHH ConfirmDeleteEstablishment=¿Está seguro que quiere eliminar este establecimiento? -DictionaryDepartment=Gestión de RRHH - Departamentos diff --git a/htdocs/langs/es_AR/loan.lang b/htdocs/langs/es_AR/loan.lang index d75a600b702..45c7a9444b2 100644 --- a/htdocs/langs/es_AR/loan.lang +++ b/htdocs/langs/es_AR/loan.lang @@ -14,7 +14,4 @@ ListLoanAssociatedProject=Lista de préstamos asociados con el proyecto AddLoan=Crear préstamo FinancialCommitment=Compromiso financiero ConfigLoan=Configuración del módulo de préstamos -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cuenta contable predeterminada para capital -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Cuenta contable predeterminada para interés -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Cuenta contable predeterminada para seguro CreateCalcSchedule=Editar compromiso financiero diff --git a/htdocs/langs/es_AR/mailmanspip.lang b/htdocs/langs/es_AR/mailmanspip.lang index 700cfd3bb70..840c7e7dd58 100644 --- a/htdocs/langs/es_AR/mailmanspip.lang +++ b/htdocs/langs/es_AR/mailmanspip.lang @@ -7,7 +7,6 @@ MailmanCreationSuccess=La prueba de suscripción se ha ejecutado correctamente MailmanDeletionSuccess=La prueba de desuscripción se ha ejecutado correctamente SynchroMailManEnabled=Será realizada una actualización en la lista de envío de correos SynchroSpipEnabled=Será realizada una actualización en el módulo SPIP -DescADHERENT_MAILMAN_ADMINPW=Contraseña de administrador de Envío de Correos DescADHERENT_MAILMAN_URL=URL para suscripciones a la lista de envío de correos DescADHERENT_MAILMAN_UNSUB_URL=URL para desuscripciones a la lista de envío de correos DescADHERENT_MAILMAN_LISTS=Lista(s) para inscripción automática de nuevos miembros (separados por una coma) diff --git a/htdocs/langs/es_AR/main.lang b/htdocs/langs/es_AR/main.lang index fc6c62ae66c..cfff93840e7 100644 --- a/htdocs/langs/es_AR/main.lang +++ b/htdocs/langs/es_AR/main.lang @@ -137,7 +137,6 @@ ResizeOrCrop=Redimensionar o Recortar Recenter=Recentrar Groups=Los grupos NoUserGroupDefined=No hay grupo de usuario definido -PasswordRetype=Repetir su contraseña NoteSomeFeaturesAreDisabled=Notar que muchas características/módulos están des habilitados en esta demostración. NameSlashCompany=Nombre/Compañía PersonalValue=Valor personal @@ -355,6 +354,7 @@ FindBug=Informar un error NbOfThirdParties=Número de terceras partes NbOfLines=Número de líneas NbOfObjectReferers=Número de items relacionados +Referers=Items relacionados DateFromTo=Desde %s a %s DateFrom=Desde %s Check=Cheque @@ -581,3 +581,4 @@ CustomReports=Informes de clientes SelectYourGraphOptionsFirst=Elija sus opciones de gráfico para construir un gráfico XAxis=Eje-X YAxis=Eje-Y +Terminated=Terminado diff --git a/htdocs/langs/es_AR/members.lang b/htdocs/langs/es_AR/members.lang index db2b184df62..4cb989ea205 100644 --- a/htdocs/langs/es_AR/members.lang +++ b/htdocs/langs/es_AR/members.lang @@ -16,7 +16,6 @@ MembersListQualified=Lista de miembros calificados MenuMembersToValidate=Miembros en Borrador MenuMembersValidated=Miembros válidos MenuMembersResiliated=Miembros terminados -MemberId=ID Miembro MemberTypeId=ID Tipo de Miembro MemberTypeLabel=Etiqueta Tipo de miembro MemberStatusDraft=Borrador (necesita ser validado) @@ -61,7 +60,6 @@ YourMembershipWasValidated=Tu membresía fue validada YourMembershipWasCanceled=Tu membresía fue cancelada CardContent=Contenido de tu ficha de miembro ThisIsContentOfYourMembershipRequestWasReceived=Queremos hacerle saber que se recibió su solicitud de membresía.

    -ThisIsContentOfYourSubscriptionWasRecorded=Queremos hacerle saber que su nueva suscripción fue grabada.

    ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su suscripción está a punto de caducar o que ya venció (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperamos que la renueves.

    ThisIsContentOfYourCard=Este es un resumen de la información que tenemos sobre usted. Por favor contáctenos si algo está incorrecto.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto del correo de notificación recibido en caso de auto-inscripción de un invitado @@ -92,7 +90,6 @@ MembersStatisticsDesc=Elige las estadísticas que deseas visualizar ... NewMemberbyWeb=Nuevo miembro agregado. Esperando aprobación NewMemberForm=Formulario de miembro nuevo TurnoverOrBudget=Volumen de negocios (para una empresa) o Presupuesto (para una fundación) -MEMBER_NEWFORM_PAYONLINE=Ve a la página de pago en línea MembersStatisticsByProperties=Estadísticas de miembros por naturaleza NoEmailSentToMember=No se han enviado correos al miembro EmailSentToMember=Correo enviado al miembro a %s diff --git a/htdocs/langs/es_AR/mrp.lang b/htdocs/langs/es_AR/mrp.lang index 33ede374dad..587b6907944 100644 --- a/htdocs/langs/es_AR/mrp.lang +++ b/htdocs/langs/es_AR/mrp.lang @@ -9,6 +9,5 @@ LatestBOMModified=Ultimas %s Lista de materiales modificada LatestMOModified=Ultimas %s Ordenes de Fabricación modificadas Bom=Listas de materiales BOMsSetup=Configuración de módulo de BOM -ListOfBOMs=Lista de Listas de materiales - BOM -ListOfManufacturingOrders=Lista de Ordenes de Fabricación +ListOfManufacturingOrders=Ordenes de Fabricación MenuMRP=Ordenes de Fabricación diff --git a/htdocs/langs/es_AR/propal.lang b/htdocs/langs/es_AR/propal.lang index 4f0494200d1..fea82797de2 100644 --- a/htdocs/langs/es_AR/propal.lang +++ b/htdocs/langs/es_AR/propal.lang @@ -2,6 +2,7 @@ Proposals=Propuesta comercial ProposalShort=Propuesta ProposalsDraft=Presupuestos en borrador +PdfCommercialProposalTitle=Propuesta Prospect=Cliente Potencia PropalsDraft=Borradores PropalsOpened=Abierto diff --git a/htdocs/langs/es_AR/salaries.lang b/htdocs/langs/es_AR/salaries.lang index 249c6815c03..9ebf17c1590 100644 --- a/htdocs/langs/es_AR/salaries.lang +++ b/htdocs/langs/es_AR/salaries.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta contable utilizada para terceros contratados -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=La cuenta contable definida en la ficha del usuario se usará solo para la contabilidad en el libro mayor. Esta se usará para el Libro Diario y como valor predeterminado de la contabilidad del Libro Mayor si no fue definida una cuenta contable del usuario. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cuenta contable por defecto para pago de sueldos Salary=Sueldo Salaries=Sueldos diff --git a/htdocs/langs/es_BO/hrm.lang b/htdocs/langs/es_BO/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_BO/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_BO/propal.lang b/htdocs/langs/es_BO/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_BO/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_CL/accountancy.lang b/htdocs/langs/es_CL/accountancy.lang index 2bff8d60933..b3f110ea367 100644 --- a/htdocs/langs/es_CL/accountancy.lang +++ b/htdocs/langs/es_CL/accountancy.lang @@ -96,23 +96,9 @@ ACCOUNTING_LENGTH_AACCOUNT=Longitud de las cuentas contables de terceros (si est ACCOUNTING_MANAGE_ZERO=Permite administrar un número diferente de ceros al final de una cuenta contable. Necesitado por algunos países (como Suiza). Si está desactivado (predeterminado), puede configurar los dos parámetros siguientes para solicitar a la aplicación que agregue ceros virtuales. BANK_DISABLE_DIRECT_INPUT=Deshabilitar la grabación directa de transacciones en cuenta bancaria ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilitar exportación de borrador en diario -ACCOUNTING_SELL_JOURNAL=Libro de ventas -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario misceláneo ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario del informe de gastos ACCOUNTING_RESULT_PROFIT=Cuenta contable de resultados (beneficio) ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (pérdida) -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta contable de transferencia bancaria transitoria. -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta de contabilidad de espera -DONATION_ACCOUNTINGACCOUNT=Cuenta de contabilidad para registrar donaciones -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones. -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para los productos comprados (se usa si no se define en la hoja de productos) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta de contabilidad por defecto para los productos vendidos (utilizada si no está definida en la hoja del producto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en la EEC (utilizada si no se define en la hoja de producto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos vendidos y exportados fuera de la EEC (usado si no está definido en la hoja de producto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta de contabilidad por defecto para los servicios comprados (se usa si no se define en la hoja de servicio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta de contabilidad por defecto para los servicios vendidos (utilizada si no está definida en la hoja de servicio) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios vendidos en la EEC (utilizada si no se define en la hoja de servicios) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios vendidos y exportados fuera de la EEC (usado si no está definido en la hoja de servicios) LabelAccount=Cuenta LabelOperation=Operación de etiqueta LetteringCode=Codigo de letras @@ -146,11 +132,6 @@ UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Cuenta de tercero PaymentsNotLinkedToProduct=Pago no vinculado a ningún producto / servicio TotalVente=Volumen de negocios total antes de impuestos TotalMarge=Margen total de ventas -DescVentilCustomer=Consulte aquí la lista de líneas de facturación de clientes vinculadas (o no) a una cuenta de contabilidad de producto -DescVentilMore=En la mayoría de los casos, si utiliza productos o servicios predefinidos y configura el número de cuenta en la tarjeta de producto / servicio, la aplicación podrá hacer todo el enlace entre sus líneas de factura y la cuenta contable de su plan de cuentas, solo en un clic con el botón "%s" . Si la cuenta no se configuró en las tarjetas de producto / servicio o si todavía tiene algunas líneas que no están vinculadas a una cuenta, deberá realizar un enlace manual desde el menú " %s ". -DescVentilDoneCustomer=Consulte aquí la lista de las líneas de clientes de facturas y su cuenta de contabilidad de productos -DescVentilTodoCustomer=Vincular líneas de factura que ya no están vinculadas con una cuenta de contabilidad de producto -ChangeAccount=Cambie la cuenta de contabilidad de producto / servicio para líneas seleccionadas con la siguiente cuenta de contabilidad: DescVentilDoneSupplier=Consulte aquí la lista de las líneas de facturas de proveedores y sus cuentas contables. DescVentilTodoExpenseReport=Vincular las líneas de informe de gastos que ya no están vinculadas con una cuenta de contabilidad de tarifas DescVentilExpenseReport=Consulte aquí la lista de líneas de informe de gastos vinculadas (o no) a una cuenta de contabilidad de tasas @@ -158,12 +139,10 @@ DescVentilExpenseReportMore=Si configura una cuenta contable en el tipo de líne DescVentilDoneExpenseReport=Consulte aquí la lista de las líneas de informes de gastos y su cuenta de contabilidad de tarifas DescValidateMovements=Se prohíbe cualquier modificación o eliminación de escritura, letras y eliminaciones. Todas las entradas para un ejercicio deben validarse; de lo contrario, no será posible cerrar ValidateHistory=Enlazar automáticamente -ErrorAccountancyCodeIsAlreadyUse=No puede eliminar esta cuenta porque está siendo usada Balancing=Equilibrio FicheVentilation=Tarjeta de enlace GeneralLedgerIsWritten=Las transacciones se escriben en el Libro mayor GeneralLedgerSomeRecordWasNotRecorded=Algunas de las transacciones no pueden ser contabilizadas. Si no hay otro mensaje de error, esto es probablemente porque ya estaban en el diario. -ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta de contabilidad ChangeBinding=Cambiar la encuadernación Accounted=Contabilizado en el libro mayor ShowTutorial=Tutorial de presentación @@ -174,7 +153,7 @@ AccountingJournals=Libros contables AccountingJournal=Diario de contabilidad NewAccountingJournal=Nueva revista de contabilidad AccountingJournalType1=Operaciones misceláneas -AccountingJournalType5=Informe de gastos +AccountingJournalType5=Reporte de gastos ErrorAccountingJournalIsAlreadyUse=Este diario ya es uso AccountingAccountForSalesTaxAreDefinedInto=Nota: La cuenta de contabilidad para el impuesto a las ventas se define en el menú %s - %s ExportDraftJournal=Exportar borrador del diario @@ -217,4 +196,3 @@ ToBind=Líneas para enlazar UseMenuToSetBindindManualy=Líneas aún no enlazadas, use el menú %s para hacer el enlace manualmente WarningReportNotReliable=Advertencia, este informe no se basa en el Libro mayor, por lo que no contiene la transacción modificada manualmente en el Libro mayor. Si su publicación está actualizada, la vista de contabilidad es más precisa. ExpenseReportJournal=Diario del informe de gastos -InventoryJournal=Revista de inventario diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 162f856b508..ffa31853958 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -76,7 +76,6 @@ NextValueForReplacements=Siguiente valor (reemplazos) MustBeLowerThanPHPLimit=Nota: su configuración de PHP actualmente limita el máximo para cargar a %s %s, independientemente del valor de este parámetro NoMaxSizeByPHPLimit=Nota: no hay límite establecido en su configuración de PHP MaxSizeForUploadedFiles=Tamaño máximo para los archivos cargados (0 para no permitir ninguna carga) -UseCaptchaCode=Use el código gráfico (CAPTCHA) en la página de inicio de sesión AntiVirusCommand=Ruta completa al comando de antivirus AntiVirusCommandExample=Ejemplo de ClamAv Daemon (requiere clamav-daemon): / usr / bin / clamdscan
    Ejemplo de ClamWin (muy, muy lento): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam=Más parámetros en la línea de comando @@ -341,7 +340,6 @@ DefaultLink=Enlace predeterminado ValueOverwrittenByUserSetup=Advertencia, este valor puede ser sobrescrito por la configuración específica del usuario (cada usuario puede establecer su propia URL de clicktodial) BarcodeInitForProductsOrServices=Inicialización o reinicio masivo del código de barras para productos o servicios CurrentlyNWithoutBarCode=Actualmente, tiene %s registros en %s %s sin código de barras definido. -InitEmptyBarCode=Valor inicial para los próximos %s registros vacíos EraseAllCurrentBarCode=Borrar todos los valores actuales del código de barras ConfirmEraseAllCurrentBarCode=¿Seguro que quieres borrar todos los valores actuales del código de barras? AllBarcodeReset=Todos los valores del código de barras han sido eliminados @@ -446,9 +444,7 @@ Module2300Desc=Gestión programada de trabajos (alias cron o crono tabla) Module2400Name=Eventos / Agenda Module2400Desc=Eventos de pista. Registre eventos automáticos con fines de seguimiento o registre eventos o reuniones manuales. Este es el módulo principal para una buena gestión de relaciones con clientes o proveedores. Module2500Desc=Sistema de gestión de documentos / gestión electrónica de contenidos. Organización automática de sus documentos generados o almacenados. Compártelos cuando lo necesites. -Module2600Name=API / servicios web (servidor SOAP) Module2600Desc=Habilite el servidor Dolibarr SOAP que proporciona servicios de API -Module2610Name=API / servicios web (servidor REST) Module2610Desc=Habilite el servidor REST Dolibarr proporcionando servicios API Module2660Name=Llamar a WebServices (cliente SOAP) Module2660Desc=Habilitar el cliente de servicios web de Dolibarr (puede usarse para enviar datos / solicitudes a servidores externos. Actualmente solo se admiten pedidos de compra). @@ -575,8 +571,6 @@ Permission281=Leer contactos Permission291=Tarifas de lectura Permission292=Establecer permisos sobre las tarifas Permission293=Modificar las tarifas del cliente. -Permission300=Leer codigos de barras -Permission301=Crear / modificar códigos de barras Permission311=Leer Servicios Permission312=Asignar servicio / suscripción al contrato Permission331=Leer marcadores @@ -728,7 +722,6 @@ LabelOnDocuments=Etiqueta en documentos LabelOrTranslationKey=Etiqueta o clave de traducción NbOfDays=Numero de dias AtEndOfMonth=Al final del mes -CurrentNext=Actual / Siguiente Offset=Compensar Upgrade=Mejorar MenuUpgrade=Actualizar / Extender @@ -1138,7 +1131,6 @@ DetailMenuHandler=Manejador de menú donde mostrar el nuevo menú DetailMenuModule=Nombre del módulo si la entrada del menú proviene de un módulo DetailType=Tipo de menú (arriba o izquierda) DetailTitre=Etiqueta de menú o código de etiqueta para la traducción -DetailUrl=URL donde el menú te envía (enlace URL absoluto o enlace externo con http: //) DetailEnabled=Condición para mostrar o no la entrada DetailRight=Condición para mostrar menús grises no autorizados DetailLangs=Nombre de archivo Lang para la traducción del código de etiqueta @@ -1207,7 +1199,6 @@ MultiCompanySetup=Configuración de módulo multi-compañía SuppliersSetup=Configuración del módulo de proveedor SuppliersInvoiceNumberingModel=Facturas de proveedores de numeración de modelos. IfSetToYesDontForgetPermission=Si se establece en un valor no nulo, no olvide proporcionar permisos a grupos o usuarios permitidos para la segunda aprobación -PathToGeoIPMaxmindCountryDataFile=Ruta al archivo que contiene Maxmind ip a la traducción del país.
    Ejemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb NoteOnPathLocation=Tenga en cuenta que su archivo de datos de IP a país debe estar dentro de un directorio que su PHP puede leer (consulte la configuración de PHP open_basedir y los permisos del sistema de archivos). YouCanDownloadFreeDatFileTo=Puede descargar una versión de demostración gratuita del archivo de país Maxip GeoIP en %s. YouCanDownloadAdvancedDatFileTo=También puede descargar una versión más completa, con actualizaciones, del archivo de país Maxip GeoIP en %s. @@ -1255,7 +1246,6 @@ LinkColor=Color de enlaces PressF5AfterChangingThis=Presione CTRL + F5 en el teclado o borre la caché de su navegador después de cambiar este valor para que sea efectivo NotSupportedByAllThemes=Will trabaja con temas centrales, puede no ser compatible con temas externos TopMenuBackgroundColor=Color de fondo para el menú superior -TopMenuDisableImages=Ocultar imágenes en el menú superior LeftMenuBackgroundColor=Color de fondo para el menú izquierdo BackgroundTableTitleColor=Color de fondo para la línea de título de la tabla BackgroundTableLineOddColor=Color de fondo para las líneas de mesa impares @@ -1280,6 +1270,7 @@ MailToSendInvoice=Facturas de cliente MailToSendSupplierRequestForQuotation=Solicitud de presupuesto MailToSendSupplierOrder=Ordenes de compra MailToSendSupplierInvoice=Facturas del vendedor +MailToExpenseReport=Reporte de gastos ByDefaultInList=Mostrar de forma predeterminada en la vista de lista YouUseLastStableVersion=Usas la última versión estable TitleExampleForMajorRelease=Ejemplo de mensaje que puede usar para anunciar esta versión principal (no dude en utilizarla en sus sitios web) @@ -1337,14 +1328,14 @@ EMailHost=Host del servidor de correo electrónico IMAP EmailcollectorOperations=Operaciones a realizar por coleccionista. MaxEmailCollectPerCollect=Número máximo de correos electrónicos recogidos por cobro EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación +EmailCollectorExampleToCollectDolibarrAnswersDesc=Recopile todos los correos electrónicos que sean una respuesta de un correo electrónico enviado desde su aplicación. Un evento (el Módulo Agenda debe estar habilitado) con la respuesta del correo electrónico se registrará en el buen lugar. Por ejemplo, si envías una propuesta comercial, pedido, factura o mensaje de ticket por email desde la aplicación, y el destinatario responde a tu email, el sistema captará automáticamente la respuesta y la añadirá a tu ERP. NoNewEmailToProcess=No hay correo electrónico nuevo (filtros coincidentes) para procesar -XEmailsDoneYActionsDone=correos electrónicos %s calificados, correos electrónicos %s procesados con éxito (para %s registro / acciones realizadas) CodeLastResult=Código de resultado más reciente NbOfEmailsInInbox=Número de correos electrónicos en el directorio de origen LoadThirdPartyFromName=Cargar búsqueda de terceros en %s (solo carga) LoadThirdPartyFromNameOrCreate=Cargar búsqueda de terceros en %s (crear si no se encuentra) ECMAutoTree=Mostrar arbol ECM automatico -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHoursDesc=Introduzca aquí el horario habitual de apertura de su empresa. ResourceSetup=Configuración del módulo de recursos UseSearchToSelectResource=Use un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). diff --git a/htdocs/langs/es_CL/commercial.lang b/htdocs/langs/es_CL/commercial.lang index 33c14696715..2308c317fae 100644 --- a/htdocs/langs/es_CL/commercial.lang +++ b/htdocs/langs/es_CL/commercial.lang @@ -57,6 +57,4 @@ ActionAC_AUTO=Eventos insertados automáticamente Stats=Estadísticas de ventas StatusProsp=Estado de la perspectiva DraftPropals=Cotizaciones borrador -WelcomeOnOnlineSignaturePage=Bienvenido a la página para aceptar propuestas comerciales de %s -ThisScreenAllowsYouToSignDocFrom=Esta pantalla le permite aceptar y firmar, o rechazar, un presupuesto/propuesta comercial SignatureProposalRef=Firma de cotización / propuesta comercial %s diff --git a/htdocs/langs/es_CL/companies.lang b/htdocs/langs/es_CL/companies.lang index 8e083e8f86b..b609dfd5eaf 100644 --- a/htdocs/langs/es_CL/companies.lang +++ b/htdocs/langs/es_CL/companies.lang @@ -40,7 +40,6 @@ Firstname=Primer nombre NatureOfThirdParty=Naturaleza de un tercero State=Estado / Provincia CountryCode=Código de país -CountryId=Identificación del país Call=Llamada PhonePerso=Pers. teléfono No_Email=Rechazar correos electrónicos a granel @@ -68,8 +67,6 @@ ProfId1AR=Prof Id 1 (CUIT / CUIL) ProfId1BE=Prof Id 1 (Número profesional) ProfId3CH=Prof Id 1 (número federal) ProfId4CH=Prof Id 2 (Número de registro comercial) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId3ShortCM=Decree of creation ProfId1ES=Prof Id 1 (CIF / NIF) ProfId2ES=Prof Id 2 (Número de seguridad social) ProfId4ES=Prof Id 4 (Número colegiado) @@ -182,7 +179,6 @@ ImportDataset_company_4=Representantes de ventas de terceros (asignar representa DeliveryAddress=Dirección de entrega SupplierCategory=Categoría del vendedor DeleteFile=Borrar archivo -ConfirmDeleteFile=¿Seguro que quieres eliminar este archivo? AllocateCommercial=Asignado al representante de ventas Organization=Organización FiscalYearInformation=Año fiscal diff --git a/htdocs/langs/es_CL/compta.lang b/htdocs/langs/es_CL/compta.lang index 42e534b97dd..5be8562e7ae 100644 --- a/htdocs/langs/es_CL/compta.lang +++ b/htdocs/langs/es_CL/compta.lang @@ -24,6 +24,7 @@ Profit=Ganancia Balance=Equilibrar Debit=Débito Credit=Crédito +AccountingDebit=Débito Piece=Contabilidad Doc. AmountHTVATRealReceived=Neto recaudado AmountHTVATRealPaid=Neto pagado @@ -168,12 +169,7 @@ CalculationRuleDescSupplier=Según el proveedor, elija el método apropiado para TurnoverPerProductInCommitmentAccountingNotRelevant=El informe de la facturación obtenida por producto no está disponible. Este informe solo está disponible para facturación facturada. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=El informe de Cifra de negocios recaudada por tasa de impuesto a la venta no está disponible. Este informe solo está disponible para facturación facturada. AccountancyJournal=Revista de códigos contables -ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta de contabilidad de forma predeterminada para el IVA sobre las ventas (se usa si no está definido en la configuración del diccionario de IVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta de contabilidad de forma predeterminada para el IVA en compras (se usa si no está definido en la configuración del diccionario de IVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Cuenta de contabilidad por defecto para pagar el IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta de contabilidad utilizada para terceros clientes ACCOUNTING_ACCOUNT_CUSTOMER_Desc=La cuenta contable dedicada definida en la tarjeta de terceros se utilizará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor general y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de cuenta del cliente dedicada a un tercero. -ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta de contabilidad utilizada para terceros proveedores ACCOUNTING_ACCOUNT_SUPPLIER_Desc=La cuenta contable dedicada definida en la tarjeta de terceros se utilizará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de proveedor dedicada en un tercero. ConfirmCloneTax=Confirmar el clon de un impuesto social / fiscal. CloneTaxForNextMonth=Clonarlo para el próximo mes diff --git a/htdocs/langs/es_CL/datapolicy.lang b/htdocs/langs/es_CL/datapolicy.lang new file mode 100644 index 00000000000..f229170f617 --- /dev/null +++ b/htdocs/langs/es_CL/datapolicy.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - datapolicy +DATAPOLICY_TIERS_PROSPECT =Prospectar +DATAPOLICY_CONTACT_PROSPECT =Prospectar diff --git a/htdocs/langs/es_CL/ecm.lang b/htdocs/langs/es_CL/ecm.lang index c8bda73008d..462663342bc 100644 --- a/htdocs/langs/es_CL/ecm.lang +++ b/htdocs/langs/es_CL/ecm.lang @@ -6,7 +6,6 @@ ECMNbOfSubDir=Cantidad de subdirectorios ECMNbOfFilesInSubDir=Número de archivos en subdirectorios ECMArea=Área de DMS / ECM ECMAreaDesc=El área DMS / ECM (Sistema de gestión de documentos / gestión de contenido electrónico) le permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr. -ECMAreaDesc2=* Los directorios automáticos se rellenan automáticamente al agregar documentos desde la tarjeta de un elemento.
    * Los directorios manuales se pueden usar para guardar documentos no vinculados a un elemento en particular. ECMSectionWasRemoved=El directorio %s ha sido borrado. ECMSectionWasCreated=El directorio %s ha sido creado. ECMNoDirectoryYet=Sin directorio creado diff --git a/htdocs/langs/es_CL/errors.lang b/htdocs/langs/es_CL/errors.lang index a558bcdd773..93bfc615ce6 100644 --- a/htdocs/langs/es_CL/errors.lang +++ b/htdocs/langs/es_CL/errors.lang @@ -44,7 +44,6 @@ ErrorDirAlreadyExists=Ya existe un directorio con este nombre. ErrorPartialFile=Archivo no recibido por completo por el servidor. ErrorNoTmpDir=La directiva temporal %s no existe. ErrorUploadBlockedByAddon=Carga bloqueada por un plugin PHP / Apache. -ErrorFileSizeTooLarge=El tamaño del archivo es demasiado grande. ErrorSizeTooLongForIntType=Tamaño demasiado largo para el tipo int (%s dígitos máximo) ErrorSizeTooLongForVarcharType=Tamaño demasiado largo para el tipo de cadena (%s caracteres máximo) ErrorNoValueForSelectType=Por favor complete el valor para la lista de selección @@ -70,7 +69,6 @@ ErrorFieldValueNotIn=El campo %s : ' %s ' no es un valor e ErrorFieldRefNotIn=Campo %s : ' %s ' no es una referencia %s existente ErrorsOnXLines=Se encontraron errores %s ErrorFileIsInfectedWithAVirus=El programa antivirus no pudo validar el archivo (el archivo podría estar infectado por un virus) -ErrorSpecialCharNotAllowedForField=Los caracteres especiales no están permitidos para el campo "%s" ErrorNumRefModel=Existe una referencia en la base de datos (%s) y no es compatible con esta regla de numeración. Elimine la referencia de registro o renombrada para activar este módulo. ErrorQtyTooLowForThisSupplier=Cantidad demasiado baja para este proveedor o ningún precio definido en este producto para este proveedor ErrorOrdersNotCreatedQtyTooLow=Algunos pedidos no se han creado debido a cantidades demasiado bajas diff --git a/htdocs/langs/es_CL/externalsite.lang b/htdocs/langs/es_CL/externalsite.lang deleted file mode 100644 index d9fc1b5c46b..00000000000 --- a/htdocs/langs/es_CL/externalsite.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Enlace de configuración al sitio web externo -ExternalSiteModuleNotComplete=El módulo ExternalSite no se configuró correctamente. diff --git a/htdocs/langs/es_CL/ftp.lang b/htdocs/langs/es_CL/ftp.lang deleted file mode 100644 index 57e90e9ac58..00000000000 --- a/htdocs/langs/es_CL/ftp.lang +++ /dev/null @@ -1,13 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuración del módulo FTP Client -NewFTPClient=Nueva configuración de conexión FTP -FTPArea=Área de FTP -FTPAreaDesc=Esta pantalla muestra una vista de un servidor FTP. -SetupOfFTPClientModuleNotComplete=La configuración del módulo de cliente FTP parece estar incompleta -FTPFeatureNotSupportedByYourPHP=Su PHP no es compatible con funciones de FTP -FailedToConnectToFTPServer=Error al conectarse al servidor FTP (servidor %s, puerto %s) -FailedToConnectToFTPServerWithCredentials=Error al iniciar sesión en el servidor FTP con inicio de sesión / contraseña definidos -FTPFailedToRemoveFile=Falló al eliminar el archivo %s. -FTPFailedToRemoveDir=Error al eliminar el directorio %s : verifique los permisos y que el directorio esté vacío. -ChooseAFTPEntryIntoMenu=Elija un sitio FTP del menú ... -FailedToGetFile=Error al obtener los archivos %s diff --git a/htdocs/langs/es_CL/hrm.lang b/htdocs/langs/es_CL/hrm.lang index 9ad29250e7f..842656e85c7 100644 --- a/htdocs/langs/es_CL/hrm.lang +++ b/htdocs/langs/es_CL/hrm.lang @@ -2,4 +2,4 @@ HRM_EMAIL_EXTERNAL_SERVICE=Correo electrónico para evitar el servicio externo de RRHH ConfirmDeleteEstablishment=¿Estás seguro de que deseas eliminar este establecimiento? OpenEtablishment=Establecimiento abierto -DictionaryDepartment=RRHH - Lista de departamentos +HrmSetup=Configuración del módulo RRHH diff --git a/htdocs/langs/es_CL/install.lang b/htdocs/langs/es_CL/install.lang index 5143b94ad59..9bc3060c806 100644 --- a/htdocs/langs/es_CL/install.lang +++ b/htdocs/langs/es_CL/install.lang @@ -19,7 +19,6 @@ ErrorGoBackAndCorrectParameters=Regresa y revisa / corrige los parámetros. ErrorWrongValueForParameter=Puede haber escrito un valor incorrecto para el parámetro '%s'. ErrorFailedToConnectToDatabase=Error al conectarse a la base de datos '%s'. ErrorDatabaseVersionTooLow=La versión de la base de datos (%s) es demasiado antigua. Se requiere la versión %s o superior. -ErrorPHPVersionTooLow=La versión de PHP es muy antigua. La versión %s es obligatoria. ErrorConnectedButDatabaseNotFound=La conexión al servidor se realizó correctamente, pero no se encontró la base de datos '%s'. IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de datos no existe, regrese y marque la opción "Crear base de datos". IfDatabaseExistsGoBackAndCheckCreate=Si la base de datos ya existe, retroceda y desmarque la opción "Crear base de datos". @@ -35,7 +34,6 @@ ServerAddressDescription=Nombre o dirección IP para el servidor de la base de d ServerPortDescription=Puerto del servidor de base de datos Mantente vacío si desconocido. DatabasePrefix=Prefijo de tabla de base de datos AdminLogin=Cuenta de usuario para el propietario de la base de datos Dolibarr. -PasswordAgain=Vuelva a escribir la confirmación de la contraseña AdminPassword=Contraseña para el propietario de la base de datos Dolibarr. CreateDatabase=Crear base de datos CreateUser=Cree una cuenta de usuario o otorgue permiso de cuenta de usuario en la base de datos de Dolibarr diff --git a/htdocs/langs/es_CL/loan.lang b/htdocs/langs/es_CL/loan.lang index f24bbf5b732..d57bd683827 100644 --- a/htdocs/langs/es_CL/loan.lang +++ b/htdocs/langs/es_CL/loan.lang @@ -18,7 +18,4 @@ FinancialCommitment=Compromiso financiero InterestAmount=Interesar CapitalRemain=Remanente capital ConfigLoan=Configuración del módulo de préstamo -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital de cuenta contable por defecto -LOAN_ACCOUNTING_ACCOUNT_INTEREST=El interés de cuenta contable por defecto -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Seguro de cuenta contable por defecto CreateCalcSchedule=Edita el compromiso financiero diff --git a/htdocs/langs/es_CL/mailmanspip.lang b/htdocs/langs/es_CL/mailmanspip.lang index 34a39aa742a..fdbf3c00d12 100644 --- a/htdocs/langs/es_CL/mailmanspip.lang +++ b/htdocs/langs/es_CL/mailmanspip.lang @@ -6,7 +6,6 @@ MailmanCreationSuccess=La prueba de suscripción se ejecutó con éxito MailmanDeletionSuccess=La prueba de cancelación se ejecutó con éxito SynchroMailManEnabled=Se realizará una actualización de Mailman SynchroSpipEnabled=Se realizará una actualización de Spip -DescADHERENT_MAILMAN_ADMINPW=Contraseña de administrador de Mailman DescADHERENT_MAILMAN_URL=URL para las suscripciones de Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para la cancelación de suscripciones de Mailman DescADHERENT_MAILMAN_LISTS=Lista (s) para la inscripción automática de nuevos miembros (separados por una coma) diff --git a/htdocs/langs/es_CL/main.lang b/htdocs/langs/es_CL/main.lang index 574af50647c..fc98ae0954b 100644 --- a/htdocs/langs/es_CL/main.lang +++ b/htdocs/langs/es_CL/main.lang @@ -127,7 +127,6 @@ Choose=Escoger Resize=Cambiar el tamaño ResizeOrCrop=Cambiar el tamaño o el cultivo NoUserGroupDefined=Ningún grupo de usuarios definido -PasswordRetype=Reescribe tu contraseña NoteSomeFeaturesAreDisabled=Tenga en cuenta que muchas características / módulos están deshabilitados en esta demostración. PersonalValue=Valor personal MultiLanguage=Multi lenguaje diff --git a/htdocs/langs/es_CL/members.lang b/htdocs/langs/es_CL/members.lang index f890213e394..40da43bf457 100644 --- a/htdocs/langs/es_CL/members.lang +++ b/htdocs/langs/es_CL/members.lang @@ -15,7 +15,6 @@ MembersListValid=Lista de miembros válidos MembersListResiliated=Lista de miembros finalizados MembersListQualified=Lista de miembros calificados MenuMembersResiliated=Miembros finalizados -MemberId=Identificación de miembro MemberTypeId=ID de tipo de miembro MemberTypeLabel=Etiqueta de tipo de miembro MemberStatusDraft=Borrador (debe ser validado) @@ -85,7 +84,6 @@ MenuMembersStats=Estadística NewMemberbyWeb=Nuevo miembro agregado. Esperando aprobacion NewMemberForm=Nueva forma de miembro TurnoverOrBudget=Volumen de ventas (empresa) o Cotización (asociación o colectivo) -MEMBER_NEWFORM_PAYONLINE=Salte en la página integrada de pago en línea MembersStatisticsByProperties=Estadísticas de miembros por naturaleza NoEmailSentToMember=No se envió ningún correo electrónico al miembro EmailSentToMember=Correo electrónico enviado al miembro al %s diff --git a/htdocs/langs/es_CL/mrp.lang b/htdocs/langs/es_CL/mrp.lang index 8bce2ae683d..da17feae645 100644 --- a/htdocs/langs/es_CL/mrp.lang +++ b/htdocs/langs/es_CL/mrp.lang @@ -6,8 +6,7 @@ MenuBOM=Facturas de material LatestBOMModified=Últimas %s Cuentas de materiales modificadas LatestMOModified=Últimas %s Ordenes de Fabricación modificadas Bom=Factura de Materiales -ListOfBOMs=Lista de listas de materiales - BOM -ListOfManufacturingOrders=Lista de pedidos de fabricación +ListOfManufacturingOrders=Ordenes de Fabricación BOMsNumberingModules=Plantillas de numeración de listas de materiales BOMsModelModule=Lista de Materiales-BOM plantillas de documentos MOsNumberingModules=Plantilla de numeración MO diff --git a/htdocs/langs/es_CL/oauth.lang b/htdocs/langs/es_CL/oauth.lang index 779555f86ab..a42c3017f03 100644 --- a/htdocs/langs/es_CL/oauth.lang +++ b/htdocs/langs/es_CL/oauth.lang @@ -6,17 +6,11 @@ IsTokenGenerated=¿Se genera token? NoAccessToken=No token de acceso guardado en la base de datos local HasAccessToken=Se generó un token y se guardó en la base de datos local ToCheckDeleteTokenOnProvider=Haga clic aquí para verificar / eliminar la autorización guardada por %s proveedor OAuth -RequestAccess=Haga clic aquí para solicitar / renovar el acceso y recibir un nuevo token para guardar -DeleteAccess=Haga clic aquí para borrar el token UseTheFollowingUrlAsRedirectURI=Use la siguiente URL como el URI de redireccionamiento cuando cree sus credenciales con su proveedor de OAuth: -ListOfSupportedOauthProviders=Ingrese las credenciales proporcionadas por su proveedor OAuth2. Sólo se enumeran aquí los proveedores OAuth2 compatibles. Estos servicios pueden ser utilizados por otros módulos que necesitan autenticación OAuth2. -OAuthSetupForLogin=Página para generar una ficha OAuth SeePreviousTab=Ver la pestaña anterior OAuthIDSecret=ID de OAuth y secreto TOKEN_EXPIRED=Token expiró TOKEN_EXPIRE_AT=Token caduca a las OAUTH_GOOGLE_NAME=OAuth servicio de Google -OAUTH_GOOGLE_DESC=Vaya a esta página y luego "Credenciales" para crear las credenciales de OAuth OAUTH_GITHUB_NAME=Servicio OAuth GitHub OAUTH_GITHUB_ID=Identificación de OAuth GitHub -OAUTH_GITHUB_DESC=Vaya a esta página y luego "Registre una nueva aplicación" para crear las credenciales de OAuth diff --git a/htdocs/langs/es_CL/projects.lang b/htdocs/langs/es_CL/projects.lang index 7afb36f5a70..15025596c77 100644 --- a/htdocs/langs/es_CL/projects.lang +++ b/htdocs/langs/es_CL/projects.lang @@ -68,7 +68,6 @@ TaskHasChild=La tarea tiene un niño NotOwnerOfProject=No es dueño de este proyecto privado ConfirmValidateProject=¿Seguro que quieres validar este proyecto? ConfirmCloseAProject=¿Seguro que quieres cerrar este proyecto? -AlsoCloseAProject=También cierre el proyecto (manténgalo abierto si todavía necesita seguir tareas de producción en él) ReOpenAProject=Proyecto abierto ConfirmReOpenAProject=¿Estás seguro de que quieres volver a abrir este proyecto? ProjectContact=Contactos de proyecto @@ -145,7 +144,6 @@ OpportunityPonderatedAmount=Cantidad ponderada de clientes potenciales OpportunityPonderatedAmountDesc=Cantidad de leads ponderada con probabilidad OppStatusQUAL=Calificación OppStatusPROPO=Cotización -AllowToLinkFromOtherCompany=Permite vincular proyectos de otra empresa.

    Valores soportados:
    - Mantener vacío: puede vincular cualquier proyecto de la empresa (por defecto)
    - "todos": puede vincular cualquier proyecto, incluso proyectos de otras compañías
    - Una lista de identificadores de terceros separados por comas: puede vincular todos los proyectos de estos terceros (Ejemplo: 123,4795,53)
    LatestProjects=Últimos %s proyectos LatestModifiedProjects=Últimos proyectos modificados %s NoAssignedTasks=No se encontraron tareas asignadas (asigne proyectos / tareas al usuario actual desde el cuadro de selección superior para ingresar el tiempo) diff --git a/htdocs/langs/es_CL/propal.lang b/htdocs/langs/es_CL/propal.lang index da08398b488..8f5ec5c079b 100644 --- a/htdocs/langs/es_CL/propal.lang +++ b/htdocs/langs/es_CL/propal.lang @@ -59,9 +59,9 @@ TypeContact_propal_internal_SALESREPFOLL=Comercial seguimiento cotización TypeContact_propal_external_BILLING=Contacto cliente de facturación cotización TypeContact_propal_external_CUSTOMER=Contacto cliente seguimiento cotización TypeContact_propal_external_SHIPPING=Contacto con el cliente para la entrega +CaseFollowedBy=Caso seguido de +DefaultModelPropalClosed=Modelo por defecto al cerrar una cotización (no facturado) DefaultModelPropalCreate=Creación de modelo por defecto DefaultModelPropalToBill=Modelo por defecto al cerrar una cotización (a facturar) -DefaultModelPropalClosed=Modelo por defecto al cerrar una cotización (no facturado) ProposalCustomerSignature=Aprobación, timbre, fecha y firma ProposalsStatisticsSuppliers=Estadísticas de propuestas de proveedores. -CaseFollowedBy=Caso seguido de diff --git a/htdocs/langs/es_CL/salaries.lang b/htdocs/langs/es_CL/salaries.lang index e0d10e61542..b9788f695ea 100644 --- a/htdocs/langs/es_CL/salaries.lang +++ b/htdocs/langs/es_CL/salaries.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta de contabilidad utilizada para terceros usuarios -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=La cuenta de contabilidad dedicada definida en la tarjeta de usuario se usará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de usuario dedicada en el usuario. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cuenta de contabilidad por defecto para pagos de salarios SalariesPayments=Sueldos pagos ShowSalaryPayment=Mostrar pago de sueldo diff --git a/htdocs/langs/es_CL/stocks.lang b/htdocs/langs/es_CL/stocks.lang index f0add21419b..8fc0a138954 100644 --- a/htdocs/langs/es_CL/stocks.lang +++ b/htdocs/langs/es_CL/stocks.lang @@ -22,7 +22,6 @@ NumberOfProducts=Número total de productos StockCorrection=Corrección de stock CorrectStock=Corregir stock StockTransfer=Transferencia de acciones -MassStockTransferShort=Transferencia stock en masa StockMovement=Movimiento de valores StockMovements=Movimientos de acciones NumberOfUnit=Número de unidades @@ -107,7 +106,6 @@ ProductStockWarehouseCreated=Límite de stock para alerta y stock óptimo desead ProductStockWarehouseUpdated=Límite de stock para alerta y stock óptimo deseado correctamente actualizado ProductStockWarehouseDeleted=Límite de stock para alerta y stock óptimo deseado eliminado correctamente AddNewProductStockWarehouse=Establezca un nuevo límite para la alerta y el stock óptimo deseado -AddStockLocationLine=Disminuya la cantidad y luego haga clic para agregar otro almacén para este producto InventoryDate=Fecha de inventario inventorySetup =Configuración de inventario inventoryValidatePermission=Validar el inventario diff --git a/htdocs/langs/es_CL/ticket.lang b/htdocs/langs/es_CL/ticket.lang index c1f9984feda..1a916ed0081 100644 --- a/htdocs/langs/es_CL/ticket.lang +++ b/htdocs/langs/es_CL/ticket.lang @@ -59,8 +59,6 @@ TicketHistory=Historial de Tickets TicketAssigned=Ticket ahora está asignado TicketChangeCategory=Cambiar código analítico TicketChangeSeverity=Cambiar severidad -TicketAddMessage=Añade un mensaje -AddMessage=Añade un mensaje MessageSuccessfullyAdded=Ticket agregado TicketMessageSuccessfullyAdded=Mensaje agregado con éxito TicketMessagesList=Lista de mensajes @@ -73,8 +71,6 @@ TicketDurationAutoInfos=Duración calculada automáticamente a partir de interve SendMessageByEmail=Enviar mensaje por correo electrónico ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatario está vacío. Sin enviar correo electrónico TicketMessageMailIntroHelp=Este texto se agrega solo al comienzo del correo electrónico y no se guardará. -TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. -TicketMessageMailSignatureLabelAdmin=Firma del correo electrónico de respuesta TicketMessageHelp=Solo este texto se guardará en la lista de mensajes en la tarjeta de Tickets. TicketTimeToRead=Tiempo transcurrido antes de leer TicketContacts=Ticket de contactos @@ -104,7 +100,6 @@ TicketNewEmailBodyInfosTicket=Información para monitorear el Ticket TicketNewEmailBodyInfosTrackId=Número de seguimiento de Ticket: %s TicketEmailPleaseDoNotReplyToThisEmail=¡Por favor no responda directamente a este correo! Usa el enlace para responder a la interfaz. TicketPublicInfoCreateTicket=Este formulario le permite registrar un ticket de soporte en nuestro sistema de gestión. -TicketPublicPleaseBeAccuratelyDescribe=Por favor describe con precisión el problema. Proporcione la mayor cantidad de información posible que nos permita identificar correctamente su solicitud. TicketPublicMsgViewLogIn=Ingrese la ID de seguimiento del Ticket TicketTrackId=ID de seguimiento público OneOfTicketTrackId=Una de tus ID de seguimiento diff --git a/htdocs/langs/es_CO/accountancy.lang b/htdocs/langs/es_CO/accountancy.lang index aa96013bb1d..52afc52a574 100644 --- a/htdocs/langs/es_CO/accountancy.lang +++ b/htdocs/langs/es_CO/accountancy.lang @@ -38,6 +38,7 @@ MainAccountForSuppliersNotDefined=Cuenta de contabilidad principal para proveedo MainAccountForUsersNotDefined=Cuenta de contabilidad principal para usuarios no definidos en la configuración. MainAccountForVatPaymentNotDefined=Cuenta contable principal para el pago del IVA no definido en la configuración MainAccountForSubscriptionPaymentNotDefined=Cuenta de contabilidad principal para el pago de la suscripción no definida en la configuración +UserAccountNotDefined=Cuenta de contabilidad para el usuario no definida en la configuración AccountancyArea=Area de contabilidad AccountancyAreaDescActionOnce=Las siguientes acciones generalmente se ejecutan una sola vez, o una vez al año ... AccountancyAreaDescActionFreq=Las siguientes acciones generalmente se ejecutan cada mes, semana o día para compañías muy grandes ... @@ -104,32 +105,32 @@ ACCOUNTING_LENGTH_AACCOUNT=Longitud de las cuentas de contabilidad de terceros ( ACCOUNTING_MANAGE_ZERO=Permitir administrar diferentes números de ceros al final de una cuenta contable. Necesitado por algunos países (como Suiza). Si está desactivado (predeterminado), puede configurar los siguientes dos parámetros para pedirle a la aplicación que agregue ceros virtuales. BANK_DISABLE_DIRECT_INPUT=Deshabilitar el registro directo de la transacción en la cuenta bancaria ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilitar borrador de exportación en la revista -ACCOUNTING_SELL_JOURNAL=Diario de venta -ACCOUNTING_PURCHASE_JOURNAL=Diario de compra -ACCOUNTING_MISCELLANEOUS_JOURNAL=Revista miscelánea +ACCOUNTING_BANK_JOURNAL=Libro de caja (recibos y egresos) ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario de informe de gastos -ACCOUNTING_SOCIAL_JOURNAL=Revista social ACCOUNTING_HAS_NEW_JOURNAL=Tiene nuevo diario +ACCOUNTING_INVENTORY_JOURNAL=diario de inventario +ACCOUNTING_SOCIAL_JOURNAL=Revista social ACCOUNTING_RESULT_PROFIT=Cuenta contable de resultado (beneficio) ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (pérdida) -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta contable de transferencia bancaria transitoria +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta (del plan de cuentas) que se utilizará como cuenta para transferencias bancarias transitorias TransitionalAccount=Cuenta de transferencia bancaria transitoria -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta contable de espera. -DONATION_ACCOUNTINGACCOUNT=Cuenta contable para registrar donaciones. -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Cuenta contable por defecto para registrar el depósito del cliente -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para los productos comprados (se usa si no está definida en la hoja de producto) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los productos comprados en EEC (se usa si no está definido en la hoja de producto) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos comprados e importados fuera de la CEE (se utiliza si no está definido en la ficha del producto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable por defecto para los productos vendidos (se usa si no se define en la hoja del producto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en EEC (usado si no está definido en la hoja de producto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos vendidos y exportados fuera de la CEE (utilizado si no está definido en la hoja de producto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta de contabilidad por defecto para los servicios comprados (se usa si no está definido en la hoja de servicio) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios comprados en EEC (se usa si no está definida en la hoja de servicio) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios comprados e importados fuera de EEC (usado si no está definido en la hoja de servicio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta de contabilidad por defecto para los servicios vendidos (se usa si no se define en la hoja de servicio) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cuenta de contabilidad por defecto para los servicios vendidos en EEC (usado si no está definido en la hoja de servicio) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios vendidos y exportados fuera de EEC (usado si no está definido en la hoja de servicio) +ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta (del plan de cuentas) que se utilizará como cuenta para fondos no asignados recibidos o pagados, es decir, fondos en "espera [ing]" +DONATION_ACCOUNTINGACCOUNT=Cuenta (del plan de cuentas) que se utilizará para registrar donaciones (módulo de donaciones) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta (del plan de cuentas) que se utilizará para registrar las suscripciones de membresía (módulo de membresía, si la membresía se registró sin factura) +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Cuenta (del plan de cuentas) que se utilizará como cuenta predeterminada para registrar el depósito del cliente +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Cuenta (del plan de cuentas) que se utilizará como predeterminada +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los productos comprados dentro del mismo país (se usa si no está definida en la hoja del producto) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los productos comprados de EEC a otro país de EEC (se usa si no está definido en la hoja de producto) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta (del Plan de cuentas) que se utilizará como cuenta predeterminada para los productos comprados e importados de cualquier otro país extranjero (utilizada si no está definida en la ficha del producto) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los productos vendidos (se usa si no está definida en la hoja de producto) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta (del plan de cuentas) que se utilizará como cuenta predeterminada para los productos vendidos desde la CEE a otro país de la CEE (utilizada si no está definida en la ficha del producto) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta (del Plan de cuentas) que se utilizará como cuenta predeterminada para los productos vendidos y exportados a cualquier otro país extranjero (utilizada si no está definida en la ficha del producto) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los servicios comprados dentro del mismo país (se usa si no está definida en la hoja de servicios) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los servicios comprados de EEC a otro país de EEC (se usa si no está definido en la hoja de servicio) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los servicios comprados e importados de otro país extranjero (se usa si no está definido en la hoja de servicios) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para los servicios vendidos (se usa si no está definida en la hoja de servicios) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cuenta (del plan de cuentas) que se utilizará como cuenta predeterminada para los servicios vendidos desde EEC a otro país de EEC (utilizada si no está definida en la hoja de servicio) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cuenta (del Plan de cuentas) que se usará como cuenta predeterminada para los servicios vendidos y exportados a cualquier otro país extranjero (se usa si no está definido en la hoja de servicios) LabelAccount=Etiqueta de cuenta LabelOperation=Operación de etiquetas LetteringCode=Codigo de letras @@ -137,6 +138,7 @@ Codejournal=diario JournalLabel=Etiqueta de diario NumPiece=Número de pieza TransactionNumShort=Num. transacción +AccountingCategory=Grupo personalizado de cuentas GroupByAccountAccounting=Agrupar por cuenta del libro mayor AccountingAccountGroupsDesc=Puede definir aquí algunos grupos de cuentas contables. Serán utilizados para informes contables personalizados. ByPredefinedAccountGroups=Por grupos predefinidos. @@ -173,12 +175,12 @@ PcgtypeDesc=Los grupos de cuentas se utilizan como criterios de 'filtro' y 'agru Reconcilable=Conciliable TotalVente=Rotación total antes de impuestos TotalMarge=Margen total de ventas -DescVentilCustomer=Consulte aquí la lista de líneas de factura del cliente vinculadas (o no) a una cuenta contable del producto -DescVentilMore=En la mayoría de los casos, si utiliza productos o servicios predefinidos y configura el número de cuenta en la tarjeta de producto / servicio, la aplicación podrá hacer todo el enlace entre sus líneas de factura y la cuenta contable de su plan de cuentas, solo en un clic con el botón "%s" . Si la cuenta no se configuró en las tarjetas de productos / servicios o si todavía tiene algunas líneas que no están vinculadas a una cuenta, deberá realizar un enlace manual desde el menú " %s ". -DescVentilDoneCustomer=Consulte aquí la lista de las líneas de facturas de los clientes y su cuenta contable del producto. -DescVentilTodoCustomer=Enlazar líneas de factura aún no vinculadas con una cuenta contable de producto -ChangeAccount=Cambie la cuenta de contabilidad de producto / servicio para las líneas seleccionadas con la siguiente cuenta de contabilidad: -DescVentilSupplier=Consulte aquí la lista de líneas de facturas de proveedores vinculadas o aún no vinculadas a una cuenta de contabilidad de productos (solo están visibles los registros que aún no se han transferido a la contabilidad) +DescVentilCustomer=Consulta aquí la lista de líneas de factura de cliente vinculadas (o no) a una cuenta de producto desde plan de cuentas +DescVentilMore=En la mayoría de los casos, si usa productos o servicios predefinidos y configura la cuenta (desde el plan de cuentas) en la tarjeta de producto/servicio, la aplicación podrá realizar todos los enlaces entre sus líneas de factura y la cuenta contable de su plan. de cuentas, con solo un clic con el botón "%s" . Si la cuenta no se configuró en las tarjetas de productos/servicios o si todavía tiene algunas líneas no vinculadas a una cuenta, deberá realizar un enlace manual desde el menú " %s ". +DescVentilDoneCustomer=Consulta aquí el listado de las líneas de facturas clientes y su cuenta de producto desde plan de cuentas +DescVentilTodoCustomer=Enlazar líneas de factura que aún no están enlazadas con una cuenta de producto del plan de cuentas +ChangeAccount=Cambie la cuenta de producto/servicio (del plan de cuentas) para las líneas seleccionadas con la siguiente cuenta: +DescVentilSupplier=Consulte aquí la lista de líneas de factura de proveedor vinculadas o aún no vinculadas a una cuenta de producto del plan de cuentas (solo se ven los registros que aún no se han transferido en contabilidad) DescVentilDoneSupplier=Consulte aquí el listado de las líneas de facturas de proveedores y su cuenta contable DescVentilTodoExpenseReport=Líneas de informe de gastos de enlace no vinculadas con una cuenta contable de comisiones DescVentilExpenseReport=Consulte aquí la lista de líneas de informe de gastos vinculadas (o no) a una cuenta de contabilidad de comisiones. @@ -186,12 +188,12 @@ DescVentilExpenseReportMore=Si configura una cuenta contable según el tipo de l DescVentilDoneExpenseReport=Consulte aquí la lista de líneas de informes de gastos y sus cuentas contables. DescValidateMovements=Se prohíbe cualquier modificación o eliminación de la escritura, las letras y las eliminaciones. Todas las entradas para un ejercicio deben ser validadas, de lo contrario no será posible cerrar AutomaticBindingDone=Enlaces automáticos realizados (%s) - El enlace automático no es posible para algunos registros (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta de contabilidad porque se usa +ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar o deshabilitar esta cuenta de plan de cuentas porque se usa Balancing=Equilibrio FicheVentilation=Tarjeta de encuadernación GeneralLedgerIsWritten=Las transacciones están escritas en el libro mayor. GeneralLedgerSomeRecordWasNotRecorded=Algunas de las transacciones no pudieron ser periodizadas. Si no hay otro mensaje de error, probablemente sea porque ya estaban registrados. -ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta contable. +ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta o plan de cuentas ChangeBinding=Cambiar el enlace Accounted=Contabilizado en libro mayor NotYetAccounted=Aún no transferido a contabilidad @@ -206,13 +208,14 @@ AccountingJournal=Diario de contabilidad NewAccountingJournal=Nueva revista contable NatureOfJournal=Naturaleza de la revista AccountingJournalType1=Operaciones misceláneas -AccountingJournalType5=Informe de gastos +AccountingJournalType5=Reporte de gastos AccountingJournalType9=Ha-nuevo ErrorAccountingJournalIsAlreadyUse=Esta revista ya está en uso. AccountingAccountForSalesTaxAreDefinedInto=Nota: la cuenta contable del impuesto sobre las ventas se define en el menú %s - %s NumberOfAccountancyMovements=Numero de movimientos ACCOUNTING_DISABLE_BINDING_ON_SALES=Deshabilitar la vinculación y la transferencia en la contabilidad de las ventas (las facturas de los clientes no se tendrán en cuenta en la contabilidad) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deshabilite la vinculación y transferencia en contabilidad en compras (las facturas de proveedores no se tendrán en cuenta en la contabilidad) +NotifiedExportDate=Marque las líneas exportadas como Exportadas (para modificar una línea, deberá eliminar toda la transacción y volver a transferirla a contabilidad) ExportDraftJournal=Exportar borrador de revista Selectmodelcsv=Selecciona un modelo de exportación. Modelcsv_CEGID=Exportación para CEGID Expert Comptabilité @@ -258,6 +261,14 @@ SaleEECWithVAT=Venta en EEC con IVA no nulo, por lo que suponemos que NO es una SaleEECWithoutVATNumber=Venta en CEE sin IVA, pero no se define el ID de IVA del tercero. Recurrimos a la cuenta de producto para las ventas estándar. Puede corregir el ID de IVA del tercero o la cuenta del producto si es necesario. ForbiddenTransactionAlreadyExported=Prohibido: La transacción ha sido validada y/o exportada. ForbiddenTransactionAlreadyValidated=Prohibido: La transacción ha sido validada. +LetteringAuto=conciliar automáticamente +LetteringManual=reconciliar manual +Unlettering=no reconciliar +UnletteringAuto=Auto no reconciliado +UnletteringManual=manual no reconciliado +ConfirmMassUnletteringQuestion=¿Está seguro de que desea anular la conciliación de los registros seleccionados %s? +ConfirmMassDeleteBookkeepingWriting=Confirmación de eliminación masiva +ConfirmMassDeleteBookkeepingWritingQuestion=Esto eliminará la transacción de la contabilidad (se eliminarán todas las líneas relacionadas con la misma transacción) ¿Está seguro de que desea eliminar los registros seleccionados %s? SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de configuración no se realizaron, por favor complete ErrorNoAccountingCategoryForThisCountry=No hay grupo de cuentas contables disponible para el país %s (Consulte Inicio - Configuración - Diccionarios) ErrorInvoiceContainsLinesNotYetBounded=Intenta registrar en el diario algunas líneas de la factura %s , pero algunas otras líneas aún no están vinculadas a la cuenta contable. La periodización de todas las líneas de factura para esta factura se rechazan. @@ -274,4 +285,3 @@ FECFormatCredit=Crédito (crédito) DateExport=Exportación de fecha WarningReportNotReliable=Advertencia, este informe no se basa en el Libro mayor, por lo que no contiene la transacción modificada manualmente en el Libro mayor. Si su publicación está actualizada, la vista de contabilidad es más precisa. ExpenseReportJournal=Diario de informe de gastos -InventoryJournal=Diario de inventario diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index 0216fa063c8..34e0d7f39ca 100644 --- a/htdocs/langs/es_CO/admin.lang +++ b/htdocs/langs/es_CO/admin.lang @@ -80,7 +80,6 @@ NextValueForReplacements=Siguiente valor (reemplazos) MustBeLowerThanPHPLimit=Nota: su configuración de PHP actualmente limita el máximo para cargar a %s %s, independientemente del valor de este parámetro NoMaxSizeByPHPLimit=Nota: en la configuración de su PHP no está definido un límite MaxSizeForUploadedFiles=Tamaño máximo para archivos importados (0 para desactivar cualquier importación) -UseCaptchaCode=Usar código gráfico (CAPTCHA) en la página de inicio de sesión AntiVirusCommand=Ruta completa para el comando del antivirus AntiVirusCommandExample=Ejemplo de ClamAv Daemon (requiere clamav-daemon): /usr/bin/clamdscan
    Ejemplo de ClamWin (muy, muy lento): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam=Más parámetros en la línea de comando @@ -363,7 +362,7 @@ ValueOverwrittenByUserSetup=Advertencia, este valor puede ser sobrescrito por la BarcodeInitForThirdparties=init para código de barras masivo para terceros BarcodeInitForProductsOrServices=Código de barras masivo de inicio o reinicio para productos o servicios. CurrentlyNWithoutBarCode=Actualmente, tienes el registro %s en %s %s sin un código de barras definido. -InitEmptyBarCode=Valor de inicio para los siguientes registros vacíos %s +InitEmptyBarCode=Valor inicial para los %s códigos de barras vacíos EraseAllCurrentBarCode=Borrar todos los valores de código de barras actuales ConfirmEraseAllCurrentBarCode=¿Está seguro de que desea borrar todos los valores de código de barras actuales? AllBarcodeReset=Todos los valores de código de barras han sido eliminados @@ -382,10 +381,11 @@ ModuleCompanyCodeSupplierDigitaria=%s seguido del nombre del proveedor truncado Use3StepsApproval=De forma predeterminada, los pedidos de compra deben ser creados y aprobados por 2 usuarios diferentes (un paso / usuario para crear y un paso / usuario para aprobar. Tenga en cuenta que si el usuario tiene permiso para crear y aprobar, un paso / usuario será suficiente) . Puede pedir con esta opción que introduzca un tercer paso / aprobación del usuario, si la cantidad es mayor que un valor dedicado (por lo que serán necesarios 3 pasos: 1 = validación, 2 = primera aprobación y 3 = segunda aprobación si la cantidad es suficiente).
    Configúrelo en vacío si una aprobación (2 pasos) es suficiente, ajústelo a un valor muy bajo (0.1) si siempre se requiere una segunda aprobación (3 pasos). UseDoubleApproval=Utilice una aprobación de 3 pasos cuando la cantidad (sin impuestos) sea superior a ... WarningPHPMail=ADVERTENCIA: La configuración para enviar correos electrónicos desde la aplicación utiliza la configuración genérica predeterminada. A menudo, es mejor configurar los correos electrónicos salientes para utilizar el servidor de correo electrónico de su proveedor de servicios de correo electrónico en lugar de la configuración predeterminada por varias razones: -WarningPHPMailD=Además, por lo tanto, se recomienda cambiar el método de envío de correos electrónicos al valor "SMTP". Si realmente desea mantener el método "PHP" predeterminado para enviar correos electrónicos, simplemente ignore esta advertencia o elimínela configurando MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constante en 1 en Inicio - Configuración - Otro. +WarningPHPMailD=Por lo tanto, se recomienda cambiar el método de envío de E-mail al valor "SMTP". +WarningPHPMailDbis=Si realmente desea mantener el método "PHP" predeterminado para enviar E-mails, simplemente ignore esta advertencia o elimínela haciendo clic aquí %s%s. WarningPHPMail2=Si su proveedor de correo electrónico SMTP necesita restringir el cliente de correo electrónico a algunas direcciones IP (muy raro), esta es la dirección IP del agente de usuario de correo (MUA) para su aplicación ERP CRM: %s . WarningPHPMailSPF=Si el nombre de dominio en su dirección de correo electrónico del remitente está protegido por un registro SPF (pregunte a su registrador de nombre de dominio), debe agregar las siguientes IP en el registro SPF del DNS de su dominio: %s . -ActualMailSPFRecordFound=Registro de SPF real encontrado: %s +ActualMailSPFRecordFound=Registro SPF real encontrado (para el E-mail %s): %s ClickToShowDescription=Haga clic para mostrar la descripción DependsOn=Este módulo necesita el módulo (s) RequiredBy=Este módulo es requerido por el módulo (s) @@ -395,7 +395,6 @@ PageUrlForDefaultValuesCreate=
    Ejemplo:
    Para el formulario para crear u PageUrlForDefaultValuesList=
    Ejemplo:
    Para la página que enumera terceros, es %s.
    Para la URL de los módulos externos instalados en el directorio personalizado, no incluya "custom/", así que use una ruta como mymodule/mypagelist.php y no custom/mymodule/mypagelist.php.
    Si desea un valor predeterminado solo si la URL tiene algún parámetro, puede usar %s AlsoDefaultValuesAreEffectiveForActionCreate=También tenga en cuenta que sobrescribir los valores predeterminados para la creación de formularios solo funciona para las páginas que se diseñaron correctamente (por lo tanto, con el parámetro action=create o presend...) EnableDefaultValues=Habilitar la personalización de los valores predeterminados -EnableOverwriteTranslation=Habilitar el uso de traducción sobrescrita GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código. Para cambiar este valor, debe editarlo desde Home-Setup-translation. WarningSettingSortOrder=Advertencia: establecer un orden de clasificación predeterminado puede generar un error técnico al acceder a la página de la lista si el campo es un campo desconocido. Si experimenta tal error, vuelva a esta página para eliminar el orden de clasificación predeterminado y restaurar el comportamiento predeterminado. ProductDocumentTemplates=Plantillas de documentos para generar documentos de productos. @@ -487,9 +486,7 @@ Module2300Desc=Gestión de trabajos programados (alias cron o tabla crono) Module2400Name=Eventos / Agenda Module2400Desc=Seguimiento de eventos. Registre eventos automáticos con fines de seguimiento o registre eventos o reuniones manuales. Este es el módulo principal para una buena gestión de relaciones con clientes o proveedores. Module2500Desc=Sistema de gestión documental / Gestión de contenidos electrónicos. Organización automática de sus documentos generados o almacenados. Compártelos cuando los necesites. -Module2600Name=API / servicios web (servidor SOAP) Module2600Desc=Habilitar el servidor Dolibarr SOAP que proporciona servicios API. -Module2610Name=API / servicios web (servidor REST) Module2610Desc=Habilitar el servidor REST de Dolibarr que proporciona servicios API. Module2660Name=Call WebServices (cliente SOAP) Module2660Desc=Habilite el cliente de servicios web Dolibarr (se puede usar para enviar datos / solicitudes a servidores externos. Actualmente, solo se admiten pedidos de compra). @@ -535,6 +532,7 @@ Permission27=Eliminar propuestas comerciales Permission28=Exportar propuestas comerciales. Permission31=Leer productos Permission32=Crear / modificar productos. +Permission33=Leer precios productos Permission36=Ver / administrar productos ocultos Permission45=Proyectos de exportación Permission61=Leer intervenciones @@ -638,7 +636,7 @@ Permission282=Crear / modificar contactos Permission291=Leer tarifas Permission292=Establecer permisos sobre las tarifas. Permission293=Modificar las tarifas del cliente -Permission301=Crear / modificar códigos de barras +Permission301=Generar hojas PDF de códigos de barras Permission311=Servicios de lectura Permission312=Asignar servicio / suscripción al contrato Permission331=Leer marcadores @@ -665,6 +663,7 @@ Permission525=Calculadora de préstamos de acceso Permission527=Préstamos de exportación Permission531=Servicios de lectura Permission532=Crear / modificar servicios. +Permission533=Leer precios servicios Permission536=Ver / administrar servicios ocultos Permission538=Servicios de exportación Permission562=Crear / modificar orden de pago mediante transferencia bancaria @@ -736,7 +735,9 @@ Permission2503=Presentar o borrar documentos Permission2515=Configurar directorios de documentos Permission2801=Usar el cliente FTP en modo de lectura (solo navegar y descargar) Permission2802=Usar el cliente FTP en modo de escritura (eliminar o cargar archivos) -Permission4021=Crea/modifica tu evaluación +Permission4021=Leer evaluaciones (tuyas y de tus subordinados) +Permission4022=Crear/modificar evaluaciones +Permission4033=Leer todas las evaluaciones (incluso las de usuarios no subordinados) Permission10001=Leer el contenido del sitio web Permission10002=Crear / modificar el contenido del sitio web (contenido html y javascript) Permission10003=Crear / modificar el contenido del sitio web (código php dinámico). Peligroso, debe reservarse para desarrolladores restringidos. @@ -807,6 +808,7 @@ DictionaryOpportunityStatus=Principal estado para proyecto / Iniciativa DictionaryExpenseTaxRange=Informe de gastos - Gama por categoría de transporte DictionaryTransportMode=Informe intracomm - modo de transporte DictionaryBatchStatus=Estado del control de calidad del lote / serie del producto +DictionaryAssetDisposalType=Tipo de enajenación de activos BackToModuleList=Volver a la lista de módulos BackToDictionaryList=Volver a la lista de diccionarios TypeOfRevenueStamp=Tipo de timbre fiscal @@ -847,7 +849,6 @@ LabelUsedByDefault=Etiqueta utilizada de forma predeterminada si no se puede enc LabelOnDocuments=Etiqueta en los documentos LabelOrTranslationKey=Etiqueta o clave de traducción NbOfDays=Numero de dias -CurrentNext=Actual / Siguiente Offset=Compensar Upgrade=Mejorar MenuUpgrade=Actualizar / Extender @@ -1035,7 +1036,6 @@ AskForPreferredShippingMethod=Pregunte por el método de envío preferido para t FillThisOnlyIfRequired=Ejemplo: +2 (rellenar solo si se experimentan problemas de compensación de zona horaria) NumberingModules=Modelos de numeración DocumentModules=Modelos de documentos -PasswordGenerationStandard=Devuelve una contraseña generada de acuerdo con el algoritmo interno de Dolibarr: %s caracteres que contienen números compartidos y caracteres en minúsculas. PasswordGenerationNone=No sugiera una contraseña generada. La contraseña debe escribirse manualmente. PasswordGenerationPerso=Devuelva una contraseña de acuerdo con su configuración definida personalmente. SetupPerso=Según su configuración @@ -1311,8 +1311,6 @@ ActivateFCKeditor=Activar editor avanzado para: FCKeditorForNotePublic=Creación / edición WYSIWIG del campo "notas públicas" de elementos FCKeditorForNotePrivate=Creación / edición WYSIWIG del campo "notas privadas" de elementos FCKeditorForCompany=Creación / edición WYSIWIG de la descripción de campo de elementos (excepto productos / servicios) -FCKeditorForProduct=Creación / edición WYSIWIG de la descripción de campo de productos / servicios -FCKeditorForProductDetails=WYSIWIG creación / edición de líneas de detalle de productos para todas las entidades (propuestas, pedidos, facturas, etc ...). Advertencia: El uso de esta opción para este caso no se recomienda seriamente, ya que puede crear problemas con caracteres especiales y formato de página al crear archivos PDF. FCKeditorForMailing=Creación / edición WYSIWIG para eMailings masivos (Herramientas-> eMailing) FCKeditorForUserSignature=Creación / edición WYSIWIG de la firma del usuario. FCKeditorForMail=Creación / edición WYSIWIG para todo el correo (excepto Herramientas-> eMailing) @@ -1328,7 +1326,6 @@ DetailMenuHandler=Manejador de menú donde mostrar nuevo menú. DetailMenuModule=Nombre del módulo si la entrada del menú proviene de un módulo DetailType=Tipo de menú (arriba o izquierda) DetailTitre=Etiqueta de menú o código de etiqueta para traducción -DetailUrl=URL a la que le envió el menú (enlace de URL absoluta o enlace externo con http: //) DetailEnabled=Condición para mostrar o no la entrada. DetailRight=Condición para mostrar menús grises no autorizados DetailLangs=Lang nombre de archivo para la traducción del código de la etiqueta @@ -1387,7 +1384,6 @@ StockDecreaseForPointOfSaleDisabledbyBatch=La disminución de stock en POS no es CashDeskYouDidNotDisableStockDecease=No desactivó la disminución de existencias al realizar una venta desde el punto de venta. Por lo tanto se requiere un almacén. CashDeskForceDecreaseStockLabel=Se obligó a reducir las existencias de productos por lotes. CashDeskForceDecreaseStockDesc=Disminuya primero por las fechas más antiguas de Eatby y Sellby. -CashDeskReaderKeyCodeForEnter=Código clave para "Enter" definido en el lector de códigos de barras (Ejemplo: 13) BookmarkSetup=Configuración del módulo de marcador BookmarkDesc=Este módulo le permite administrar los marcadores. También puede agregar accesos directos a cualquier página de Dolibarr o sitios web externos en su menú de la izquierda. NbOfBoomarkToShow=Número máximo de marcadores para mostrar en el menú de la izquierda @@ -1412,7 +1408,6 @@ SuppliersCommandModelMuscadet=Plantilla completa de orden de compra (implementac SuppliersInvoiceModel=Plantilla completa de factura de proveedor SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de proveedores IfSetToYesDontForgetPermission=Si se establece en un valor no nulo, no olvide proporcionar permisos a los grupos o usuarios autorizados para la segunda aprobación -PathToGeoIPMaxmindCountryDataFile=Ruta al archivo que contiene la traducción de IP de Maxmind al país.
    Ejemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb NoteOnPathLocation=Tenga en cuenta que su archivo de datos de IP a país debe estar dentro de un directorio que su PHP pueda leer (Verifique su configuración de PHP open_basedir y los permisos del sistema de archivos). YouCanDownloadFreeDatFileTo=Puede descargar una versión demo gratuita del archivo de país de Maxmind GeoIP en %s. YouCanDownloadAdvancedDatFileTo=También puede descargar una versión más completa de , con actualizaciones, del archivo de país de Maxmind GeoIP en %s. @@ -1466,7 +1461,6 @@ LinkColor=Color de enlaces PressF5AfterChangingThis=Presione CTRL + F5 en el teclado o borre la caché de su navegador después de cambiar este valor para que sea efectivo NotSupportedByAllThemes=Will trabaja con temas centrales, puede que no sea compatible con temas externos TopMenuBackgroundColor=Color de fondo para el menú superior -TopMenuDisableImages=Ocultar imágenes en el menú superior LeftMenuBackgroundColor=Color de fondo para el menú de la izquierda. BackgroundTableTitleColor=Color de fondo para la línea de título de la tabla BackgroundTableTitleTextColor=Color del texto para la línea del título de la tabla. @@ -1478,6 +1472,7 @@ NbAddedAutomatically=Número de días agregados a los contadores de usuarios (au Enter0or1=Ingrese 0 o 1 UnicodeCurrency=Ingrese aquí entre llaves, lista de bytes que representan el símbolo de moneda. Por ejemplo: para $, ingrese [36] - para brasil R $ [82,36] - para €, ingrese [8364] ColorFormat=El color RGB está en formato HEX, por ejemplo: FF0000 +PictoHelp=Nombre del ícono en formato:
    - image.png para un archivo de imagen en el directorio del tema actual
    - image.png@module si el archivo está en el directorio /img/ de un módulo
    - fa-xxx para un pictograma FontAwesome fa-xxx
    - fonwtawesome_xxx_fa_color_size para un pictograma FontAwesome fa-xxx (con prefijo, color y tamaño establecidos) PositionIntoComboList=Posición de la línea en las listas de combo SellTaxRate=Tasa de impuesto sobre las ventas RecuperableOnly=Sí, para el IVA "No percibido pero recuperable" dedicado a algún estado de Francia. Mantenga el valor en "No" en todos los demás casos. @@ -1498,6 +1493,7 @@ MailToSendSupplierRequestForQuotation=Solicitud de presupuesto MailToSendSupplierOrder=Ordenes de compra MailToSendSupplierInvoice=Facturas de proveedores MailToSendContract=Los contratos +MailToExpenseReport=Reporte de gastos ByDefaultInList=Mostrar por defecto en la vista de lista YouUseLastStableVersion=Usas la última versión estable TitleExampleForMajorRelease=Ejemplo de mensaje que puede usar para anunciar esta versión principal (siéntase libre de usarlo en sus sitios web) @@ -1549,6 +1545,7 @@ EnterCalculationRuleIfPreviousFieldIsYes=Ingrese la regla de cálculo si el camp RemoveSpecialChars=Quitar caracteres especiales COMPANY_AQUARIUM_CLEAN_REGEX=Filtro de expresiones regulares para limpiar el valor (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=No se permite duplicar +RemoveSpecialWordsHelp=Especifique las palabras que se limpiarán antes de calcular la cuenta del cliente o proveedor. Usar una ";" entre cada palabra GDPRContact=Oficial de protección de datos (DPO, privacidad de datos o contacto GDPR) HelpOnTooltip=Texto de ayuda para mostrar en información sobre herramientas HelpOnTooltipDesc=Coloque texto o una clave de traducción aquí para que el texto se muestre en una información sobre herramientas cuando este campo aparezca en un formulario @@ -1561,13 +1558,14 @@ EmailCollector=Recolector de correo electronico EmailCollectorDescription=Agregue un trabajo programado y una página de configuración para escanear regularmente los buzones de correo electrónico (usando el protocolo IMAP) y registre los correos electrónicos recibidos en su aplicación, en el lugar correcto y / o cree algunos registros automáticamente (como clientes potenciales). NewEmailCollector=Nuevo recolector de email EMailHost=Host de correo electrónico del servidor IMAP +EMailHostPort=Puerto de servidor IMAP de correo electrónico EmailcollectorOperations=Operaciones a realizar por coleccionista. EmailcollectorOperationsDesc=Las operaciones se ejecutan de arriba a abajo. MaxEmailCollectPerCollect=Número máximo de correos electrónicos recolectados por recolección DateLastcollectResultOk=Fecha del último éxito de recolección EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación +EmailCollectorExampleToCollectTicketRequestsDesc=Recopile correos electrónicos que coincidan con algunas reglas y cree automáticamente un ticket (el módulo Ticket debe estar habilitado) con la información del correo electrónico. Puede usar este recopilador si brinda algún tipo de soporte por correo electrónico, por lo que su solicitud de boleto se generará automáticamente. Active también Collect_Responses para recopilar respuestas de su cliente directamente en la vista de ticket (debe responder desde Dolibarr). NoNewEmailToProcess=No hay correo electrónico nuevo (filtros coincidentes) para procesar -XEmailsDoneYActionsDone=%s correos electrónicos calificados, %s correos electrónicos procesados correctamente (para %s registro/acciones realizadas) CreateLeadAndThirdParty=Cree un cliente potencial (y un tercero si es necesario) CodeLastResult=Último código de resultado NbOfEmailsInInbox=Número de correos electrónicos en el directorio de origen @@ -1578,7 +1576,7 @@ WithDolTrackingID=Mensaje de una conversación iniciada por un primer correo ele WithoutDolTrackingID=Mensaje de una conversación iniciada por un primer correo electrónico NO enviado desde Dolibarr MainMenuCode=Código de entrada de menú (menú principal) ECMAutoTree=Mostrar árbol ECM automático -OperationParamDesc=Defina las reglas que se utilizarán para extraer o establecer valores.
    Ejemplo de operaciones que necesitan extraer un nombre del asunto del correo electrónico:
    nombre=EXTRACT:SUBJECT:Mensaje de la empresa ([^\n] *)
    Ejemplo para las operaciones que crean objetos:
    objproperty1=SET: el valor puesto
    objproperty2=SET: un valor incluyendo el valor de __objproperty1__
    objproperty3=SETIFEMPTY: valor utilizado si objproperty3 no está ya definido
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:El nombre de mi empresa es\\s( [^\\s]*)

    Use un ; char como separador para extraer o establecer varias propiedades. +OperationParamDesc=Defina las reglas que se utilizarán para extraer algunos datos o establecer los valores que se utilizarán para la operación.

    Ejemplo para extraer el nombre de una empresa del asunto del correo electrónico en una variable temporal:
    tmp_var=EXTRACT:SUBJECT:Mensaje de la empresa ([^\n]*)45

    Ejemplos para establecer las propiedades de un objeto para crear:
    objproperty1=SET: un valor codificado de forma rígida
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY valor: la propiedad no está definida solo si ya está definida
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY: el nombre de mi empresa es\\s([^\\s]*)

    Utilice un ; char como separador para extraer o establecer varias propiedades. OpeningHours=Horario de oficina OpeningHoursDesc=Introduzca aquí el horario habitual de trabajo/servicio de su empresa. ResourceSetup=Configuración del módulo de recursos @@ -1640,9 +1638,10 @@ ConfFileIsReadableOrWritableByAnyUsers=El archivo conf. puede ser leido y escrit MailToSendEventOrganization=Organización del evento MailToPartnership=Camaradería YouShouldDisablePHPFunctions=Debería deshabilitar las funciones de PHP +PHPFunctionsRequiredForCLI=Para fines de shell (como la copia de seguridad de trabajos programados o la ejecución de un programa antivirus), debe mantener las funciones de PHP NoWritableFilesFoundIntoRootDir=No se encontraron archivos o directorios grabables de los programas comunes en su directorio raíz (Perfect!) Recommended=Recomendado -ARestrictedPath=Algún camino restringido +ARestrictedPath=Algunas rutas restringidas para archivos de datos DatabasePasswordNotObfuscated=La contraseña de la base de datos NO está ofuscada en el archivo conf YouShouldSetThisToOff=Debes configurar esto en 0 o apagarlo InstallAndUpgradeLockedBy=La instalación y las actualizaciones están bloqueadas por el archivo %s @@ -1665,3 +1664,15 @@ LanguageAndPresentation=Lenguaje y presentación SkinAndColors=Piel y colores PDF_USE_1A=Generar PDF con formato PDF / A-1b PreviousHash=Hachís anterior +InventorySetup=Configuración de inventario +Settings =Ajustes +DEBUGBAR_USE_LOG_FILE=Use el archivo dolibarr.log para capturar registros +FixedOrPercent=Fijo (use la palabra clave 'fijo') o porcentaje (use la palabra clave 'porcentaje') +CIDLookupURL=El módulo trae una URL que puede ser utilizada por una herramienta externa para obtener el nombre de un tercero o contacto a partir de su número de teléfono. URL a utilizar es: +UsePassword=usa una contraseña +UseOauth=Usar un token OAUTH +ScriptIsEmpty=el guion esta vacio +ShowHideTheNRequests=Mostrar/ocultar las %s solicitudes SQL +DefinedAPathForAntivirusCommandIntoSetup=Defina una ruta para un programa antivirus en %s +TriggerCodeInfo=Ingrese aquí el/los código(s) de activación que deben generar una publicación de una solicitud web (solo se permiten URL externas). Puede introducir varios códigos de activación separados por una coma. +DesktopsAndSmartphones=Computadoras de escritorio y teléfonos inteligentes diff --git a/htdocs/langs/es_CO/agenda.lang b/htdocs/langs/es_CO/agenda.lang index 0bc7437e8c4..3c79770f84a 100644 --- a/htdocs/langs/es_CO/agenda.lang +++ b/htdocs/langs/es_CO/agenda.lang @@ -81,8 +81,10 @@ ExtSiteUrlAgenda=URL para acceder al archivo .ical VisibleTimeRange=Intervalo de tiempo visible ConfirmCloneEvent=¿Está seguro de que desea clonar el evento %s ? OnceOnly=Por una sola vez +EveryDay=Diario DayOfMonth=Dia del mes DateStartPlusOne=Fecha de inicio + 1 hora SetAllEventsToTodo=Establecer todos los eventos como por hacer SetAllEventsToInProgress=Establecer todos los eventos en curso SetAllEventsToFinished=Establecer todos los eventos como finalizados +ActiveByDefault=Habilitado por defecto diff --git a/htdocs/langs/es_CO/assets.lang b/htdocs/langs/es_CO/assets.lang index c802f427db2..018f66968a7 100644 --- a/htdocs/langs/es_CO/assets.lang +++ b/htdocs/langs/es_CO/assets.lang @@ -1,5 +1,10 @@ # Dolibarr language file - Source file is en_US - assets -ConfirmDeleteAssetType=¿Está seguro de que desea eliminar este tipo de activo? -ShowTypeCard=Mostrar tipo '%s' -AssetsTypeId=ID del tipo de activo -AssetsTypeLabel=Etiqueta de tipo de activo +AssetType=tipo de activo +DeleteAnAssetType=Eliminar un modelo de activo +ConfirmDeleteAssetType=¿Está seguro de que desea eliminar este modelo de activo? +ShowTypeCard=Mostrar modelo '%s' +AssetsType=modelo de activos +AssetsTypeId=ID de modelo de activo +AssetsTypeLabel=Etiqueta de modelo de activos +AssetsTypes=Modelos de activos +ConfirmDeleteAsset=¿Realmente desea eliminar este elemento? diff --git a/htdocs/langs/es_CO/banks.lang b/htdocs/langs/es_CO/banks.lang index 904ba2e9fa3..0ec00a247e1 100644 --- a/htdocs/langs/es_CO/banks.lang +++ b/htdocs/langs/es_CO/banks.lang @@ -126,7 +126,9 @@ ConfirmCloneVariousPayment=Confirmar el duplicado de un pago misceláneo YourSEPAMandate=Tu mandato SEPA FindYourSEPAMandate=Este es su mandato SEPA para autorizar a nuestra empresa a realizar una orden de domiciliación bancaria a su banco. Devuélvalo firmado (escaneado del documento firmado) o envíelo por correo a AutoReportLastAccountStatement=Llene automáticamente el campo 'número de extracto bancario' con el último número de extracto al realizar la conciliación +CashControl=control de efectivo en punto de venta BankColorizeMovementDesc=Si esta función está habilitada, puede elegir un color de fondo específico para los movimientos de débito o crédito BankColorizeMovementName2=Color de fondo para movimiento crediticio IfYouDontReconcileDisableProperty=Si no realiza las conciliaciones bancarias en algunas cuentas bancarias, desactive la propiedad "%s" para eliminar esta advertencia. NoRecordFoundIBankcAccount=No se encontró ningún registro en la cuenta bancaria. Por lo general, esto ocurre cuando un registro se ha eliminado manualmente de la lista de transacciones en la cuenta bancaria (por ejemplo, durante una conciliación de la cuenta bancaria). Otra razón es que el pago se registró cuando se deshabilitó el módulo "%s". +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Al generar un archivo XML SEPA para transferencias de crédito, la sección "Información de tipo de pago" ahora se puede colocar dentro de la sección "Información de transacción de transferencia de crédito" (en lugar de la sección "Pago"). Recomendamos enfáticamente dejar esto sin marcar para colocar la información de tipo de pago en el nivel de pago, ya que no todos los bancos la aceptarán necesariamente en el nivel de información de transacción de transferencia de crédito. Comuníquese con su banco antes de colocar PaymentTypeInformation en el nivel CreditTransferTransactionInformation. diff --git a/htdocs/langs/es_CO/bills.lang b/htdocs/langs/es_CO/bills.lang index b9af989bbb7..f9faf79a93e 100644 --- a/htdocs/langs/es_CO/bills.lang +++ b/htdocs/langs/es_CO/bills.lang @@ -63,6 +63,7 @@ PaymentsReportsForYear=Informes de pagos para %s PaymentsAlreadyDone=Pagos ya hechos PaymentsBackAlreadyDone=Reembolsos ya relizados PaymentRule=Regla de pago +PaymentMode=Método de pago PaymentTerm=Plazo de pago PaymentConditions=Términos de pago PaymentConditionsShort=Términos de pago @@ -121,6 +122,7 @@ ErrorCantCancelIfReplacementInvoiceNotValidated=Error, no se puede cancelar una ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte u otra ya está en uso, por lo que no se pueden eliminar las series de descuento. BillFrom=De BillTo=A +ShippingTo=embarcar hacia ActionsOnBill=Acciones en factura RecurringInvoiceTemplate=Plantilla / factura recurrente NoQualifiedRecurringInvoiceTemplateFound=Ninguna factura de plantilla recurrente calificada para generación. diff --git a/htdocs/langs/es_CO/cashdesk.lang b/htdocs/langs/es_CO/cashdesk.lang index eecf4ebaf08..c75cfc88461 100644 --- a/htdocs/langs/es_CO/cashdesk.lang +++ b/htdocs/langs/es_CO/cashdesk.lang @@ -33,6 +33,7 @@ Header=Encabezamiento Footer=Pie de página TheoricalAmount=Cantidad teórica RealAmount=Cantidad real +CashFence=cierre de caja NbOfInvoices=Nb de facturas Paymentnumpad=Tipo de Pad para ingresar el pago Numberspad=Pad de números diff --git a/htdocs/langs/es_CO/categories.lang b/htdocs/langs/es_CO/categories.lang index 7dfd12ed8fc..23bbe40cd9b 100644 --- a/htdocs/langs/es_CO/categories.lang +++ b/htdocs/langs/es_CO/categories.lang @@ -79,6 +79,8 @@ CatUsersLinks=Vínculos entre usuarios y etiquetas / categorías ExtraFieldsCategories=Atributos complementarios CategoriesSetup=Configuración de etiquetas / categorías CategorieRecursiv=Vincular con etiqueta / categoría principal automáticamente +CategorieRecursivHelp=Si la opción está activada, cuando agrega un objeto a una subcategoría, el objeto también se agregará a las categorías principales. AddProductServiceIntoCategory=Agregue el siguiente producto / servicio ShowCategory=Mostrar etiqueta / categoría ChooseCategory=Elegir la categoría +TicketsCategoriesArea=Categorías de entradas diff --git a/htdocs/langs/es_CO/commercial.lang b/htdocs/langs/es_CO/commercial.lang index 4ecf1bf3338..24d83ed3dff 100644 --- a/htdocs/langs/es_CO/commercial.lang +++ b/htdocs/langs/es_CO/commercial.lang @@ -49,12 +49,20 @@ ActionAC_OTH_AUTO=Otro auto ActionAC_MANUAL=Eventos insertados manualmente ActionAC_AUTO=Eventos insertados automáticamente ActionAC_OTH_AUTOShort=Otro +ActionAC_EVENTORGANIZATION=Eventos de organización de eventos Stats=Estadísticas de ventas StatusProsp=Estado cliente potencial DraftPropals=Borrador de propuestas comerciales ToOfferALinkForOnlineSignature=Enlace para firma en línea -WelcomeOnOnlineSignaturePage=Bienvenido a la página para aceptar propuestas comerciales de %s -ThisScreenAllowsYouToSignDocFrom=Esta pantalla le permite aceptar y firmar, o rechazar, una cotización / propuesta comercial -ThisIsInformationOnDocumentToSign=Esta es información en el documento para aceptar o rechazar +WelcomeOnOnlineSignaturePageProposal=Bienvenidos a la pagina para aceptar propuestas comerciales de %s +WelcomeOnOnlineSignaturePageContract=Bienvenido a la página de firma del PDF del contrato %s +WelcomeOnOnlineSignaturePageFichinter=Bienvenido a la página de firma de PDF de intervención %s +ThisScreenAllowsYouToSignDocFromProposal=Esta pantalla le permite aceptar y firmar, o rechazar, una cotización/propuesta comercial +ThisScreenAllowsYouToSignDocFromContract=Esta pantalla le permite firmar contratos en formato PDF en línea. +ThisScreenAllowsYouToSignDocFromFichinter=Esta pantalla le permite firmar la intervención en formato PDF en línea. +ThisIsInformationOnDocumentToSignProposal=Esta es información sobre el documento para aceptar o rechazar +ThisIsInformationOnDocumentToSignContract=Esta es la información sobre el contrato a firmar. +ThisIsInformationOnDocumentToSignFichinter=Esta es la información sobre la intervención para firmar SignatureProposalRef=Firma de cotización / propuesta comercial %s +SignatureFichinterRef=Firma de intervención %s FeatureOnlineSignDisabled=Característica para la firma en línea deshabilitada o documento generado antes de que se habilitara la característica diff --git a/htdocs/langs/es_CO/companies.lang b/htdocs/langs/es_CO/companies.lang index f740d495d5d..f1ccfe0423d 100644 --- a/htdocs/langs/es_CO/companies.lang +++ b/htdocs/langs/es_CO/companies.lang @@ -17,9 +17,11 @@ ParentCompany=Sede principal Subsidiaries=Sucursales RegisteredOffice=Domicilio principal State=Departamento +StateId=ID del Departamento StateCode=Siglas del Departamento StateShort=Departamento Region-State=Región +CountryId=ID del país PhonePro=Autobús. teléfono PhonePerso=Teléf. personal No_Email=Rechazar correos electrónicos masivos @@ -42,7 +44,7 @@ ProfId2AT=Id prof. 2 (USt.-Nr) ProfId3AT=Id prof. 3 (Handelsregister-Nr.) ProfId1CM=Prueba de ID 1 (Registro de Comercio) ProfId2CM=Prueba de ID 2 (Nº de Contribuyente) -ProfId3CM=Prueba de ID 3 (Decreto de creación) +ProfId3CM=Identificación. profe. 3 (No. de decreto de creación) ProfId2ShortCM=Contribuyente No. ProfId2CO=Identificación (CC, NIT, CE) ProfId3CO=CIIU @@ -56,11 +58,11 @@ VATIntraShort=RUT VATReturn=Devolución de IVA SupplierRelativeDiscount=Descuento relativo del proveedor HasRelativeDiscountFromSupplier=Tiene un descuento predeterminado de %s%% de este proveedor -HasNoRelativeDiscountFromSupplier=No tiene ningún descuento relativo predeterminado de este proveedor +HasNoRelativeDiscountFromSupplier=Sin descuento relativo predeterminado de este proveedor CompanyHasAbsoluteDiscount=Este cliente tiene descuentos disponibles (notas de crédito o anticipos) para %s %s CompanyHasDownPaymentOrCommercialDiscount=Este cliente tiene descuentos disponibles (comerciales, anticipos) para %s %s CompanyHasCreditNote=Este cliente tiene %s %s anticipos disponibles -HasNoAbsoluteDiscountFromSupplier=No tiene crédito de descuento disponible de este proveedor +HasNoAbsoluteDiscountFromSupplier=No hay descuento/crédito disponible de este proveedor HasAbsoluteDiscountFromSupplier=Tiene descuentos disponibles (notas de crédito o anticipos) para %s %s de este proveedor HasDownPaymentOrCommercialDiscountFromSupplier=Tiene descuentos disponibles (comerciales, anticipos) para %s %s de este proveedor HasCreditNoteFromSupplier=Tiene notas de crédito para %s %s de este proveedor @@ -99,7 +101,7 @@ ImportDataset_company_1=Terceros y sus propiedades ImportDataset_company_2=Contactos/direcciones y atributos adicionales de terceros ImportDataset_company_4=Representantes de ventas de terceros (asignar representantes de ventas / usuarios a las empresas) PriceLevelLabels=Etiquetas de nivel de precio -ConfirmDeleteFile=¿Está seguro que quiere eliminar este archivo? +ConfirmDeleteFile=¿Está seguro de que desea eliminar este archivo %s? AllocateCommercial=Asignado al representante de ventas FiscalYearInformation=Año fiscal SocialNetworksYoutubeURL=URL de Youtube diff --git a/htdocs/langs/es_CO/compta.lang b/htdocs/langs/es_CO/compta.lang index 546913e832c..8370e813fbc 100644 --- a/htdocs/langs/es_CO/compta.lang +++ b/htdocs/langs/es_CO/compta.lang @@ -23,6 +23,7 @@ Profit=Lucro Balance=Equilibrar Debit=Débito Credit=Crédito +AccountingDebit=Débito Piece=Doc. Contable AmountHTVATRealReceived=Neto recogido AmountHTVATRealPaid=Neto pagado @@ -117,7 +118,9 @@ NbOfCheques=No. de cheques PaySocialContribution=Pagar un impuesto social / fiscal ConfirmPaySocialContribution=¿Seguro que quiere clasificar este impuesto fiscal como pagado? DeleteSocialContribution=Eliminar un pago fiscal social o fiscal. +DeleteVariousPayment=Eliminar un pago diferente ConfirmDeleteSocialContribution=¿Está seguro de que desea eliminar este pago de impuestos fiscales? +ConfirmDeleteVariousPayment=¿Está seguro de que desea eliminar este pago diferente? ExportDataset_tax_1=Impuestos y pagos sociales y fiscales. CalcModeVATDebt=Modo %sVAT en contabilidad de compromiso%s . CalcModeVATEngagement=Modo %sVAT en ingresos-expenses%s . @@ -196,12 +199,12 @@ CalculationRuleDescSupplier=Según el proveedor, elija el método apropiado para TurnoverPerProductInCommitmentAccountingNotRelevant=El informe del volumen de negocios recogido por producto no está disponible. Este informe solo está disponible para facturación facturada. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=El informe del volumen de negocios recaudado por tasa de impuesto de venta no está disponible. Este informe solo está disponible para facturación facturada. AccountancyJournal=Diario de código contable -ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta de contabilidad por defecto para el IVA en las ventas (utilizado si no está definido en la configuración del diccionario del IVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta de contabilidad por defecto para el IVA en las compras (utilizado si no está definido en la configuración del diccionario de IVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Cuenta contable por defecto para el pago del IVA. -ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable utilizada para terceros clientes. +ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta (del plan de cuentas) que se usará como cuenta predeterminada para el IVA sobre las ventas (se usa si no está definida en la configuración del diccionario de IVA) +ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta (del plan de cuentas) que se usará como la cuenta predeterminada para el IVA en las compras (se usa si no está definida en la configuración del diccionario de IVA) +ACCOUNTING_VAT_PAY_ACCOUNT=Cuenta (del plan de cuentas) que se utilizará como cuenta predeterminada para pagar el IVA +ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta (del plan de cuentas) utilizada para terceros "clientes" ACCOUNTING_ACCOUNT_CUSTOMER_Desc=La cuenta contable dedicada definida en la tarjeta de terceros se utilizará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor general y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de cuenta del cliente dedicada a un tercero. -ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable utilizada para terceros proveedores. +ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta (del plan de cuentas) utilizada para los terceros "proveedores" ACCOUNTING_ACCOUNT_SUPPLIER_Desc=La cuenta de contabilidad dedicada definida en la tarjeta de un tercero se usará solo para la contabilidad del Libro auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del libro auxiliar si no se define la cuenta de contabilidad del proveedor dedicada en un tercero. ConfirmCloneTax=Confirmar el clon de un impuesto social / fiscal. ConfirmCloneVAT=Confirmar el duplicado de una declaración de IVA @@ -229,6 +232,7 @@ PurchaseTurnoverCollected=Volumen de compras recogido RulesPurchaseTurnoverDue=- Incluye las facturas vencidas del proveedor, ya sean pagadas o no.
    - Se basa en la fecha de facturación de estas facturas.
    RulesPurchaseTurnoverIn=- Incluye todos los pagos efectivos de facturas hechas a proveedores.
    - Se basa en la fecha de pago de estas facturas
    ReportPurchaseTurnoverCollected=Volumen de compras recogido +InvoiceLate15Days =Tardío (15 a 30 días) InvoiceNotLate =A recoger (<15 días) InvoiceNotLate15Days =A recoger (15 a 30 días) InvoiceNotLate30Days =A recoger (> 30 días) diff --git a/htdocs/langs/es_CO/contracts.lang b/htdocs/langs/es_CO/contracts.lang index 1b3f1b2e9d8..c9c71eefeaf 100644 --- a/htdocs/langs/es_CO/contracts.lang +++ b/htdocs/langs/es_CO/contracts.lang @@ -59,7 +59,6 @@ ConfirmDeleteContractLine=¿Está seguro de que desea eliminar esta línea de co MoveToAnotherContract=Mueva el servicio a otro contrato. ConfirmMoveToAnotherContract=Elegí un nuevo contrato de destino y confirmo que quiero trasladar este servicio a este contrato. ConfirmMoveToAnotherContractQuestion=Elija en qué contrato existente (del mismo tercero), desea trasladar este servicio? -PaymentRenewContractId=Renovar línea de contrato (número %s) ExpiredSince=Fecha de caducidad NoExpiredServices=No hay servicios activos caducados ListOfServicesToExpireWithDuration=Lista de servicios que vencen en %s días @@ -75,3 +74,5 @@ TypeContact_contrat_internal_SALESREPFOLL=Contrato de seguimiento del representa TypeContact_contrat_external_BILLING=Contacto con el cliente de facturación TypeContact_contrat_external_CUSTOMER=Contacto de seguimiento con el cliente TypeContact_contrat_external_SALESREPSIGN=Firma de contrato de contacto con el cliente +UserStartingService=Servicio de inicio de usuario +UserClosingService=Servicio de cierre de usuario diff --git a/htdocs/langs/es_CO/cron.lang b/htdocs/langs/es_CO/cron.lang index 40892fd6122..92a26c0d18b 100644 --- a/htdocs/langs/es_CO/cron.lang +++ b/htdocs/langs/es_CO/cron.lang @@ -17,7 +17,6 @@ CronCommand=Mando CronList=Trabajos programados CronDelete=Eliminar trabajos programados CronConfirmDelete=¿Está seguro de que desea eliminar estos trabajos programados? -CronExecute=Iniciar trabajo programado CronConfirmExecute=¿Está seguro de que desea ejecutar estos trabajos programados ahora? CronInfo=El módulo de trabajos programados permite programar trabajos para ejecutarlos automáticamente. Los trabajos también se pueden iniciar manualmente. CronTask=Trabajo @@ -40,6 +39,7 @@ CronSaveSucess=Guardar con éxito CronFieldMandatory=Los campos %s son obligatorios CronErrEndDateStartDt=La fecha de finalización no puede ser anterior a la fecha de inicio CronStatusInactiveBtn=Desactivar +CronTaskInactive=Este trabajo está inhabilitado (no programado) CronId=Identificación CronModuleHelp=Nombre del directorio del módulo Dolibarr (también funciona con el módulo Dolibarr externo).
    Por ejemplo, para llamar al método de búsqueda de Dolibarr Product object / htdocs / product /class/product.class.php, el valor del módulo es
    product CronClassFileHelp=La ruta relativa y el nombre del archivo a cargar (la ruta es relativa al directorio raíz del servidor web).
    Por ejemplo, para llamar al método de recuperación del objeto de producto Dolibarr htdocs/product/class/ product.class.php , el valor para el nombre del archivo de clase es
    product/class/product.class.php @@ -57,6 +57,7 @@ UseMenuModuleToolsToAddCronJobs=Vaya al menú " Inicio - Herramient JobDisabled=Trabajo inhabilitado MakeLocalDatabaseDumpShort=Copia de seguridad de la base de datos local MakeLocalDatabaseDump=Cree un volcado de base de datos local. Los parámetros son: compresión ('gz' o 'bz' o 'none'), tipo de copia de seguridad ('mysql', 'pgsql', 'auto'), 1, 'auto' o nombre de archivo para compilar, número de archivos de copia de seguridad para mantener +MakeSendLocalDatabaseDump=Enviar copia de seguridad de la base de datos local por correo electrónico. Los parámetros son: para, de, asunto, mensaje, nombre de archivo (Nombre del archivo enviado), filtro ('sql' solo para copia de seguridad de la base de datos) WarningCronDelayed=Atención, por motivos de rendimiento, cualquiera que sea la próxima fecha de ejecución de los trabajos habilitados, sus trabajos pueden retrasarse hasta un máximo de %s horas, antes de ejecutarse. DATAPOLICYJob=Limpiador y anonimizador de datos JobXMustBeEnabled=El trabajo %s debe estar habilitado diff --git a/htdocs/langs/es_CO/datapolicy.lang b/htdocs/langs/es_CO/datapolicy.lang new file mode 100644 index 00000000000..7c294832731 --- /dev/null +++ b/htdocs/langs/es_CO/datapolicy.lang @@ -0,0 +1,9 @@ +# Dolibarr language file - Source file is en_US - datapolicy +datapolicySetup =Configuración de la política de privacidad de datos del módulo +DATAPOLICY_TIERS_PROSPECT_CLIENT =Prospecto/Cliente +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT =Ni prospecto/ni cliente +DATAPOLICY_CONTACT_PROSPECT_CLIENT =Prospecto/Cliente +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT =Ni prospecto/ni cliente +DATAPOLICYMail =Configuración de correos electrónicos +DATAPOLICY_POPUP_ANONYME_TEXTE =No puede eliminar este contacto de Dolibarr porque hay elementos relacionados. De acuerdo con el RGPD, harás anónimos todos estos datos para respetar tus obligaciones. Te gustaria continuar ? +DATAPOLICY_PORTABILITE_CONFIRMATION =Quiere exportar los datos personales de este contacto. Está seguro ? diff --git a/htdocs/langs/es_CO/dict.lang b/htdocs/langs/es_CO/dict.lang index 3f2585b2c22..fefcb9fa85b 100644 --- a/htdocs/langs/es_CO/dict.lang +++ b/htdocs/langs/es_CO/dict.lang @@ -36,7 +36,9 @@ CountryIM=Isla del hombre CountryBL=San Bartolomé CountryMF=San Martín CivilityMME=Señora. +CivilityMMEShort=Sra. CivilityMR=Señor. +CivilityMRShort=Sr. CivilityMLE=Milisegundo. CivilityMTRE=Maestría CurrencyAUD=Dólares australianos diff --git a/htdocs/langs/es_CO/ecm.lang b/htdocs/langs/es_CO/ecm.lang index 8e5fb615fc0..d30bba5d633 100644 --- a/htdocs/langs/es_CO/ecm.lang +++ b/htdocs/langs/es_CO/ecm.lang @@ -6,7 +6,7 @@ ECMCreationDate=Fecha de creación ECMNbOfFilesInSubDir=Número de archivos en subdirectorios ECMArea=Área DMS / ECM ECMAreaDesc=El área DMS / ECM (Document Management System / Electronic Content Management) permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr. -ECMAreaDesc2=* Los directorios automáticos se llenan automáticamente al agregar documentos desde la tarjeta de un elemento.
    * Los directorios manuales se pueden usar para guardar documentos que no están vinculados a un elemento en particular. +ECMAreaDesc3=* Los directorios de medios son archivos en el subdirectorio /medias del directorio de documentos, que todos pueden leer sin necesidad de iniciar sesión y sin necesidad de compartir el archivo explícitamente. Se utiliza para almacenar archivos de imagen del módulo de E-mail o sitio web. ECMSectionWasRemoved=El directorio %s ha sido eliminado. ECMSectionWasCreated=Se ha creado el directorio %s . ECMNoDirectoryYet=No se creó ningún directorio @@ -24,3 +24,4 @@ ExtraFieldsEcmFiles=Archivos Ecm de Extrafields ExtraFieldsEcmDirectories=Directorios de Extrafields Ecm ECMSetup=Configuración de ECM SucessConvertImgWebp=Imágenes duplicadas con éxito +ECMParentDirectory=Directorio de padres diff --git a/htdocs/langs/es_CO/errors.lang b/htdocs/langs/es_CO/errors.lang index d7ee4fe6ffd..3c4522d3f1c 100644 --- a/htdocs/langs/es_CO/errors.lang +++ b/htdocs/langs/es_CO/errors.lang @@ -5,6 +5,7 @@ ErrorBadValueForParamNotAString=Mal valor para su parámetro. Generalmente se ad ErrorRefAlreadyExists=La referencia %s ya existe. ErrorLoginAlreadyExists=El inicio de sesión %s ya existe. ErrorRecordNotFound=Registro no encontrado. +ErrorRecordNotFoundShort=Extraviado ErrorFailToCopyFile=Error al copiar el archivo ' %s ' en ' %s '. ErrorFailToCopyDir=Error al copiar el directorio ' %s ' en ' %s '. ErrorFailToRenameFile=No se pudo cambiar el nombre del archivo ' %s ' a ' %s '. @@ -18,6 +19,7 @@ ErrorFailToGenerateFile=Error al generar el archivo ' %s '. ErrorCashAccountAcceptsOnlyCashMoney=Esta cuenta bancaria es una cuenta de efectivo, por lo que acepta pagos de tipo efectivo únicamente. ErrorFromToAccountsMustDiffers=Las cuentas bancarias de origen y destino deben ser diferentes. ErrorBadThirdPartyName=Valor incorrecto para el nombre de un tercero +ForbiddenBySetupRules=Prohibido por las reglas de configuración ErrorBadCustomerCodeSyntax=Sintaxis incorrecta para el código del cliente ErrorBadBarCodeSyntax=Sintaxis incorrecta para el código de barras. Puede ser que haya configurado un tipo de código de barras incorrecto o haya definido una máscara de código de barras para la numeración que no coincide con el valor escaneado. ErrorCustomerCodeRequired=Se requiere código de cliente @@ -48,7 +50,7 @@ ErrorDirAlreadyExists=Ya existe un directorio con este nombre. ErrorPartialFile=Archivo no recibido completamente por el servidor. ErrorNoTmpDir=La directiva temporal %s no existe. ErrorUploadBlockedByAddon=Carga bloqueada por un complemento PHP / Apache. -ErrorFileSizeTooLarge=El tamaño del archivo es demasiado grande. +ErrorFileSizeTooLarge=El tamaño del archivo es demasiado grande o no se proporciona el archivo. ErrorSizeTooLongForIntType=Tamaño demasiado largo para el tipo int (%s dígitos como máximo) ErrorSizeTooLongForVarcharType=Tamaño demasiado largo para el tipo de cadena (%s caracteres como máximo) ErrorNoValueForSelectType=Por favor complete el valor de la lista de selección @@ -56,7 +58,6 @@ ErrorNoValueForCheckBoxType=Por favor, complete el valor de la lista de casillas ErrorNoValueForRadioType=Por favor complete el valor de la lista de radio ErrorBadFormatValueList=El valor de la lista no puede tener más de una coma: %s , pero necesita al menos una: clave, valor ErrorFieldCanNotContainSpecialCharacters=El campo %s no debe contener caracteres especiales. -ErrorFieldCanNotContainSpecialNorUpperCharacters=El campo %s no debe contener caracteres especiales, ni mayúsculas y no puede contener solo números. ErrorNoAccountancyModuleLoaded=Ningún módulo de contabilidad activado ErrorExportDuplicateProfil=Este nombre de perfil ya existe para este conjunto de exportación. ErrorLDAPSetupNotComplete=La coincidencia Dolibarr-LDAP no está completa. @@ -73,7 +74,6 @@ ErrorWrongValueForField=El campo %s: '%s' no coincide con la regla ErrorFieldValueNotIn=El campo %s : ' %s ' no es un valor que se encuentra en el campo %s de %s ErrorFieldRefNotIn=El campo%s: '%s' no es una referia existente %s ErrorFileIsInfectedWithAVirus=El programa antivirus no pudo validar el archivo (el archivo podría estar infectado por un virus) -ErrorSpecialCharNotAllowedForField=No se permiten caracteres especiales para el campo "%s" ErrorNumRefModel=Existe una referencia en la base de datos (%s) y no es compatible con esta regla de numeración. Elimine el registro o la referencia renombrada para activar este módulo. ErrorQtyTooLowForThisSupplier=Cantidad demasiado baja para este proveedor o ningún precio definido en este producto para este proveedor ErrorOrdersNotCreatedQtyTooLow=Algunos pedidos no se han creado debido a cantidades demasiado bajas. @@ -209,6 +209,8 @@ ErrorReservedKeyword=La palabra ' %s ' es una palabra clave reservada ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=El idioma de la nueva página no debe ser el idioma de origen si está configurado como una traducción de otra página. ErrorYouMustFirstSetupYourChartOfAccount=Primero debe configurar su plan de cuenta ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duración no definida en servicio. No hay forma de calcular el precio por hora. +ErrorNotApproverForHoliday=Usted no es el aprobador de la licencia %s +ErrorFailedToLoadThirdParty=No se pudo encontrar/cargar un tercero desde id=%s, email=%s, nombre=%s WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Su parámetro PHP upload_max_filesize (%s) es mayor que el parámetro PHP post_max_size (%s). Esta no es una configuración consistente. WarningPasswordSetWithNoAccount=Se estableció una contraseña para este miembro. Sin embargo, no se creó ninguna cuenta de usuario. Por lo tanto, esta contraseña se almacena pero no se puede utilizar para iniciar sesión en Dolibarr. Puede ser utilizado por un módulo / interfaz externo, pero si no necesita definir ningún nombre de usuario o contraseña para un miembro, puede deshabilitar la opción "Administrar un inicio de sesión para cada miembro" desde la configuración del módulo Miembro. Si necesita administrar un inicio de sesión pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: El correo electrónico también se puede utilizar como inicio de sesión si el miembro está vinculado a un usuario. WarningEnableYourModulesApplications=Haga clic aquí para habilitar sus módulos y aplicaciones @@ -219,7 +221,6 @@ WarningConfFileMustBeReadOnly=Advertencia, el servidor web puede sobrescribir su WarningsOnXLines=Advertencias sobre %s registro (s) fuente WarningNoDocumentModelActivated=No se ha activado ningún modelo para la generación de documentos. Se elegirá un modelo por defecto hasta que verifique la configuración de su módulo. WarningLockFileDoesNotExists=Advertencia: una vez finalizada la instalación, debe deshabilitar las herramientas de instalación / migración agregando un archivo install.lock en el directorio %s . Omitir la creación de este archivo es un riesgo de seguridad grave. -WarningUntilDirRemoved=Todas las advertencias de seguridad (visibles solo para los usuarios administradores) permanecerán activas mientras la vulnerabilidad esté presente (o si se agrega la constante MAIN_REMOVE_INSTALL_WARNING en Configuración-> Otra configuración). WarningCloseAlways=Advertencia, el cierre se realiza incluso si la cantidad difiere entre los elementos de origen y de destino. Habilite esta función con precaución. WarningUsingThisBoxSlowDown=Advertencia, el uso de este cuadro ralentiza seriamente todas las páginas que muestran el cuadro. WarningClickToDialUserSetupNotComplete=La configuración de la información de ClickToDial para su usuario no está completa (consulte la pestaña ClickToDial en su tarjeta de usuario). diff --git a/htdocs/langs/es_CO/eventorganization.lang b/htdocs/langs/es_CO/eventorganization.lang index 6884bedb6a6..e633590b492 100644 --- a/htdocs/langs/es_CO/eventorganization.lang +++ b/htdocs/langs/es_CO/eventorganization.lang @@ -2,18 +2,21 @@ ModuleEventOrganizationName =Organización del evento EventOrganizationDescriptionLong=Gestionar la organización de un evento (espectáculo, conferencias, asistentes o ponentes, con páginas públicas para sugerencia, voto o registro) Settings=Ajustes -EVENTORGANIZATION_TASK_LABELTooltip =Al validar un evento organizado, algunas tareas se pueden crear automáticamente en el proyecto

    Por ejemplo:
    Enviar llamada para conferencia
    Enviar llamada para stand
    Recibir llamada para conferencias
    Recibir llamada para stand
    Abrir suscripciones a eventos para asistentes
    recordar el evento a los oradores
    Enviar recordatorio del evento al anfitrión del stand
    Enviar recordatorio del evento a los asistentes +EVENTORGANIZATION_TASK_LABELTooltip =When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Enviar un recordatorio del evento a los oradores
    Enviar un recordatorio del evento a los anfitriones del stand
    Enviar un recordatorio del evento a los asistentes EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT =Plantilla de correo electrónico para enviar después de que se haya pagado la inscripción a un evento. EventOrganizationConfOrBooth=Conferencia o stand +EventOrganizationConfOrBoothes=Conferencias o Stands ManageOrganizeEvent =Gestionar la organización de un evento ConferenceOrBooth =Conferencia o stand ConferenceOrBoothTab =Conferencia o stand AmountPaid =Cantidad pagada +Speaker=Vocero ToSpeakers=A los altavoces AllowUnknownPeopleSuggestConf=Permitir que las personas sugieran conferencias AllowUnknownPeopleSuggestBooth=Permitir que las personas soliciten un stand NbVotes=Numero de votos -EvntOrgWelcomeMessage =Este formulario le permite registrarse como nuevo participante del evento: %s +ListOfSuggestedBooths=Stands sugeridos +ListOfConferencesOrBooths=Proyecto de conferencias o stands de evento RegistrationAndPaymentWereAlreadyRecorder=Ya se registró un registro y un pago para el correo electrónico %s EmailAttendee=Correo electrónico del asistente EmailCompanyForInvoice=Correo electrónico de la empresa (para la factura, si es diferente del correo electrónico del asistente) diff --git a/htdocs/langs/es_CO/exports.lang b/htdocs/langs/es_CO/exports.lang index f157547d8c4..218e92254c6 100644 --- a/htdocs/langs/es_CO/exports.lang +++ b/htdocs/langs/es_CO/exports.lang @@ -62,7 +62,7 @@ SelectFormat=Elija este formato de archivo de importación RunImportFile=Datos de importacion NowClickToRunTheImport=Verifique los resultados de la simulación de importación. Corrija los errores y vuelva a realizar la prueba.
    Cuando la simulación no reporta errores, puede proceder a importar los datos a la base de datos. DataLoadedWithId=Los datos importados tendrán un campo adicional en cada tabla de la base de datos con este ID de importación: %s , para permitir la búsqueda en el caso de investigar un problema relacionado con esta importación. -ErrorMissingMandatoryValue=Los datos obligatorios están vacíos en el archivo fuente para el campo %s . +ErrorMissingMandatoryValue=Los datos obligatorios están vacíos en el archivo de origen en la columna %s . TooMuchErrors=Todavía hay %s otras líneas de origen con errores, pero la salida ha sido limitada. TooMuchWarnings=Todavía hay %s otras líneas de origen con advertencias, pero la salida ha sido limitada. EmptyLine=Línea vacía (se descartará) @@ -72,9 +72,9 @@ YouCanUseImportIdToFindRecord=Puede encontrar todos los registros importados en NbOfLinesOK=Número de líneas sin errores ni advertencias: %s . NbOfLinesImported=Número de líneas importadas correctamente: %s . DataComeFromNoWhere=El valor para insertar proviene de la nada en el archivo de origen. -DataComeFromFileFieldNb=El valor para insertar proviene del número de campo %s en el archivo fuente. -DataComeFromIdFoundFromRef=El valor que proviene del número de campo %s del archivo fuente se usará para encontrar la identificación del objeto principal que se va a usar (por lo que el objeto %s debe existir en el archivo fuente de la base de datos). -DataComeFromIdFoundFromCodeId=El código que proviene del número %s de campo del archivo fuente se usará para encontrar el ID del objeto principal a usar (por lo que el código del archivo fuente debe existir en el diccionario %s). Tenga en cuenta que si conoce el ID, también puede usarla en el archivo fuente en lugar del código. La importación debería funcionar en ambos casos. +DataComeFromFileFieldNb=El valor a insertar proviene de la columna %s en el archivo fuente. +DataComeFromIdFoundFromRef=El valor que proviene del archivo fuente se usará para encontrar la identificación del objeto principal que se usará (por lo que el objeto %s que tiene la referencia del archivo fuente debe existir en la base de datos). +DataComeFromIdFoundFromCodeId=El valor del código que proviene del archivo fuente se usará para encontrar la identificación del objeto principal que se usará (por lo que el código del archivo fuente debe existir en el diccionario %s). Tenga en cuenta que si conoce la identificación, también puede usarla en el archivo fuente en lugar del código. La importación debería funcionar en ambos casos. DataIsInsertedInto=Los datos provenientes del archivo de origen se insertarán en el siguiente campo: DataIDSourceIsInsertedInto=La identificación del objeto principal, que se encontró utilizando los datos en el archivo de origen, se insertará en el siguiente campo: DataCodeIDSourceIsInsertedInto=La identificación de la línea principal, que se encontró en el código, se insertará en el siguiente campo: @@ -106,3 +106,4 @@ FilteredFieldsValues=Valor para filtro FormatControlRule=Regla de control de formato KeysToUseForUpdates=Clave (columna) que se utilizará para actualizando datos existentes NbInsert=Número de líneas insertadas: %s +WarningFirstImportedLine=La(s) primera(s) línea(s) no se importarán con la selección actual diff --git a/htdocs/langs/es_CO/externalsite.lang b/htdocs/langs/es_CO/externalsite.lang deleted file mode 100644 index d29b234afae..00000000000 --- a/htdocs/langs/es_CO/externalsite.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteURL=URL del sitio externo del iframe HTML -ExampleMyMenuEntry=Mi entrada en el menú diff --git a/htdocs/langs/es_CO/ftp.lang b/htdocs/langs/es_CO/ftp.lang deleted file mode 100644 index f021b8f4b8b..00000000000 --- a/htdocs/langs/es_CO/ftp.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPFeatureNotSupportedByYourPHP=Su PHP no es compatible con las funciones FTP o SFTP -FailedToConnectToFTPServerWithCredentials=No se pudo ingresar al servidor con el usuario/contraseña definidos -FTPFailedToRemoveFile=No se pudo eliminar el archivo %s . -FTPFailedToRemoveDir=No se pudo eliminar el directorio %s : verifique los permisos y que el directorio esté vacío. diff --git a/htdocs/langs/es_CO/holiday.lang b/htdocs/langs/es_CO/holiday.lang index ad7bd301a26..aa289536cee 100644 --- a/htdocs/langs/es_CO/holiday.lang +++ b/htdocs/langs/es_CO/holiday.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - holiday -Holidays=Salir +Holidays=Sale de CPTitreMenu=Salir MenuAddCP=Nueva solicitud de licencia NotActiveModCP=Debe habilitar el módulo Salir para ver esta página. @@ -105,4 +105,6 @@ FreeLegalTextOnHolidays=Texto libre en PDF WatermarkOnDraftHolidayCards=Marcas de agua en solicitudes de licencia de borrador HolidaysToApprove=Días festivos para aprobar NobodyHasPermissionToValidateHolidays=Nadie tiene permiso para validar las vacaciones. +BlockHolidayIfNegative=Bloquear si el balance es negativo +LeaveRequestCreationBlockedBecauseBalanceIsNegative=La creación de esta solicitud de licencia está bloqueada porque su balance es negativo ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=La solicitud de licencia %s debe ser borrador, cancelada o rechazada para ser eliminada diff --git a/htdocs/langs/es_CO/hrm.lang b/htdocs/langs/es_CO/hrm.lang index c39867bc755..a296080a06a 100644 --- a/htdocs/langs/es_CO/hrm.lang +++ b/htdocs/langs/es_CO/hrm.lang @@ -4,13 +4,16 @@ ConfirmDeleteEstablishment=¿Estás seguro de que deseas eliminar este estableci OpenEtablishment=Establecimiento abierto CloseEtablishment=Establecimiento cerrado DictionaryPublicHolidays=Licencia - Días festivos -DictionaryDepartment=HRM - Lista de departamentos +DictionaryDepartment=HRM - Unidad organizativa DictionaryFunction=HRM - Puestos de trabajo ListOfEmployees=Lista de empleados HrmSetup=Configuración del módulo HRM JobCard=Tarjeta de trabajo -JobPosition=Trabajo +JobPosition=Perfil de trabajo +JobsPosition=Perfiles de trabajo SkillCard=Tarjeta de habilidad EmployeeSkillsUpdated=Se actualizaron las habilidades de los empleados (consulte la pestaña "Habilidades" de la tarjeta de empleado) OrJobToCompare=Compare con los requisitos de habilidades laborales AddSkill=Agregue habilidades al trabajo +TypeKnowHow=Saber cómo +JobsExtraFields=Atributos complementarios (Emplois) diff --git a/htdocs/langs/es_CO/install.lang b/htdocs/langs/es_CO/install.lang index bce0e620c12..25abb1385ae 100644 --- a/htdocs/langs/es_CO/install.lang +++ b/htdocs/langs/es_CO/install.lang @@ -22,7 +22,7 @@ ErrorGoBackAndCorrectParameters=Regresa y revisa / corrige los parámetros. ErrorWrongValueForParameter=Es posible que haya escrito un valor incorrecto para el parámetro '%s'. ErrorFailedToConnectToDatabase=Error al conectarse a la base de datos '%s'. ErrorDatabaseVersionTooLow=Versión de la base de datos (%s) demasiado antigua. Se requiere la versión %s o superior. -ErrorPHPVersionTooLow=La versión de PHP es muy antigua. Se requiere la versión %s. +ErrorPHPVersionTooHigh=Versión de PHP demasiado alta. Se requiere la versión %s o inferior. ErrorConnectedButDatabaseNotFound=La conexión al servidor fue exitosa pero no se encontró la base de datos '%s'. IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de datos no existe, vuelva atrás y marque la opción "Crear base de datos". IfDatabaseExistsGoBackAndCheckCreate=Si la base de datos ya existe, vuelva atrás y desmarque la opción "Crear base de datos". @@ -38,7 +38,6 @@ ServerAddressDescription=Nombre o dirección IP para el servidor de base de dato ServerPortDescription=Puerto del servidor de base de datos. Mantener vacío si se desconoce. DatabasePrefix=Prefijo de tabla de base de datos AdminLogin=Cuenta de usuario para el propietario de la base de datos Dolibarr. -PasswordAgain=Vuelva a escribir la confirmación de la contraseña AdminPassword=Contraseña para el propietario de la base de datos Dolibarr. CreateDatabase=Crear base de datos CreateUser=Cree una cuenta de usuario o otorgue permiso de cuenta de usuario en la base de datos de Dolibarr diff --git a/htdocs/langs/es_CO/knowledgemanagement.lang b/htdocs/langs/es_CO/knowledgemanagement.lang index bc5540d9bec..c371ab6add0 100644 --- a/htdocs/langs/es_CO/knowledgemanagement.lang +++ b/htdocs/langs/es_CO/knowledgemanagement.lang @@ -8,5 +8,6 @@ KnowledgeManagementAboutPage =Gestión del conocimiento sobre la página KnowledgeManagementArea =Conocimiento administrativo MenuKnowledgeRecord =Base de conocimientos GroupOfTicket=Grupo de entradas -YouCanLinkArticleToATicketCategory=Puede vincular un artículo a un grupo de entradas (por lo que el artículo se sugerirá durante la calificación de nuevas entradas) -SuggestedForTicketsInGroup=Sugerido para boletos cuando el grupo es +SuggestedForTicketsInGroup=Sugerido en la creación del ticket +SetObsolete=Establecer como obsoleto +ConfirmReopenKM=¿Desea restaurar este artículo al estado "Validado"? diff --git a/htdocs/langs/es_CO/loan.lang b/htdocs/langs/es_CO/loan.lang index f3f596c1b2b..f3fe2683d81 100644 --- a/htdocs/langs/es_CO/loan.lang +++ b/htdocs/langs/es_CO/loan.lang @@ -18,7 +18,7 @@ InterestAmount=Interesar CapitalRemain=El capital permanece CantModifyInterestIfScheduleIsUsed =No puede modificar el interés si usa el horario ConfigLoan=Configuración del préstamo del módulo -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital de la cuenta contable por defecto -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Intereses de la cuenta contable por defecto -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Seguro de cuenta contable por defecto +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cuenta (del plan de cuentas) que se usará por defecto para el capital (módulo de préstamos) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Cuenta (del plan de cuentas) que se utilizará por defecto para intereses (módulo de préstamo) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Cuenta (del plan de cuentas) que se utilizará por defecto para el seguro (módulo de préstamos) CreateCalcSchedule=Editar compromiso financiero diff --git a/htdocs/langs/es_CO/mailmanspip.lang b/htdocs/langs/es_CO/mailmanspip.lang index 98090117641..f80d5ca93f9 100644 --- a/htdocs/langs/es_CO/mailmanspip.lang +++ b/htdocs/langs/es_CO/mailmanspip.lang @@ -6,7 +6,7 @@ MailmanCreationSuccess=La prueba de suscripción se ejecutó con éxito MailmanDeletionSuccess=La prueba de cancelación de suscripción se ejecutó con éxito SynchroMailManEnabled=Se realizará una actualización de Mailman SynchroSpipEnabled=Se realizará una actualización de Spip -DescADHERENT_MAILMAN_ADMINPW=Contraseña de administrador de Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Contraseña de administrador de Mailman DescADHERENT_MAILMAN_URL=URL de las suscripciones de Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para darse de baja de Mailman DescADHERENT_MAILMAN_LISTS=Lista(s) para la inscripción automática de nuevos miembros (separados por coma) diff --git a/htdocs/langs/es_CO/mails.lang b/htdocs/langs/es_CO/mails.lang index 701711719d6..6c419c6cb77 100644 --- a/htdocs/langs/es_CO/mails.lang +++ b/htdocs/langs/es_CO/mails.lang @@ -5,7 +5,8 @@ EMailings=e-mailing AllEMailings=Todos los e-mailings MailCard=Tarjeta de e-mailing MailRecipient=Recipiente -MailTo=Receptor(es) +MailFrom=De +MailTo=A MailToUsers=Para usuario(s) MailCC=Copiar a MailToCCUsers=Copiar a al(los) usuario(s) @@ -42,7 +43,6 @@ RemoveRecipient=Quitar destinatario YouCanAddYourOwnPredefindedListHere=Para crear su módulo selector de correo electrónico, consulte htdocs / core / modules / mailings / README. EMailTestSubstitutionReplacedByGenericValues=Cuando se usa el modo de prueba, las variables de sustitución se reemplazan por valores genéricos BadEMail=Mal valor para el correo electrónico -EMailNotDefined=Correo electrónico no definido ConfirmCloneEMailing=¿Está seguro de que desea clonar este e-mailing? CloneReceivers=Destinatarios del clonador DateSending=Envío de fecha diff --git a/htdocs/langs/es_CO/main.lang b/htdocs/langs/es_CO/main.lang index ffef2f25c5f..03ec062beaf 100644 --- a/htdocs/langs/es_CO/main.lang +++ b/htdocs/langs/es_CO/main.lang @@ -81,9 +81,11 @@ Hide=Esconder SearchMenuShortCut=Ctrl + Mayús + F QuickAdd=Adición rápida QuickAddMenuShortCut=Ctrl + Mayús + l +OpenVerb=Activo Upload=Subir ResizeOrCrop=Redimensionar o Recortar NoUserGroupDefined=No hay grupo de usuario definido +PasswordRetype=repita su contraseña DescriptionOfLine=Descripción de la línea Model=Plantilla doc DefaultModel=Plantilla de documento predeterminada @@ -155,6 +157,7 @@ DolibarrWorkBoard=Artículos abiertos NoOpenedElementToProcess=Ningún elemento abierto para procesar Categories=Etiquetas / categorías Category=Etiqueta / categoría +Workflow=flujo de trabajo ValidatedToProduce=Validado (Para producir) OpenAll=Abrir (todo) ClosedAll=Cerrado (todo) @@ -298,6 +301,7 @@ SearchIntoContracts=Los contratos SearchIntoCustomerShipments=Envios de clientes SearchIntoExpenseReports=Reporte de gastos SearchIntoLeaves=Salir +SearchIntoKM=Base de conocimientos SearchIntoVendorPayments=Pagos a proveedores NbComments=Numero de comentarios Everybody=Todos @@ -335,11 +339,20 @@ UpToDate=Al día OutOfDate=Vencido EventReminder=Recordatorio de evento Civility=Civilidad -ConfirmAffectTag=Afectar etiqueta en masa -ConfirmAffectTagQuestion=¿Está seguro de que desea afectar las etiquetas a los %s registros seleccionados ? +AffectTag=Asignar etiqueta +AffectUser=Asignar usuario +ConfirmAffectTag=Asignación de etiquetas masivas +ConfirmAffectUser=Asignación masiva de usuarios +ConfirmSetSupervisor=Conjunto de supervisor a granel +ConfirmAffectTagQuestion=¿Está seguro de que desea asignar etiquetas a los %s registros seleccionados? +ConfirmAffectUserQuestion=¿Está seguro de que desea asignar usuarios a los %s registros seleccionados? +ConfirmSetSupervisorQuestion=¿Está seguro de que desea configurar el supervisor para los %s registros seleccionados? +ConfirmUpdatePriceQuestion=¿Está seguro de que desea actualizar el precio de los %s registros seleccionados? InformationOnLinkToContract=Esta cantidad es solo el total de todas las líneas del contrato. No se toma en consideración ninguna noción de tiempo. ConfirmCancel=Estas seguro que quieres cancelar EmailMsgID=MsgID de correo electrónico +EmailDate=Fecha de E-mail +SetToStatus=Establecer en el estado %s SetToEnabled=Establecer como habilitado SetToDisabled=Establecer como deshabilitado ConfirmMassEnablingQuestion=¿Está seguro de que desea habilitar los %s registro(s) seleccionado(s)? @@ -355,3 +368,8 @@ RecordsApproved=%s Registro (s) aprobado ClientTZ=Zona Horaria del Cliente (usuario) CanceledHidden=Cancelado oculto CanceledShown=Se muestra cancelada +Terminate=Terminar +Terminated=Terminado +ConfirmAllocateCommercialQuestion=¿Está seguro de que desea asignar los %s registros seleccionados? +CommercialsAffected=Representantes de ventas asignados +CommercialAffected=representante de ventas asignado diff --git a/htdocs/langs/es_CO/members.lang b/htdocs/langs/es_CO/members.lang index 2e0f1c0ac0a..4ccdc33dd19 100644 --- a/htdocs/langs/es_CO/members.lang +++ b/htdocs/langs/es_CO/members.lang @@ -25,8 +25,9 @@ DateSubscription=Fecha de afiliación DateEndSubscription=Fecha de finalización de la membresía EndSubscription=Fin de la membresía SubscriptionId=ID de contribución -WithoutSubscription=Sin aporte +WithoutSubscription=sin membresía MemberId=Identificación de miembro +MemberRef=Referencia de miembro MemberTypeId=ID de tipo de miembro MemberTypeLabel=Etiqueta de tipo de miembro MemberStatusDraft=Borrador (necesita ser validado) @@ -50,6 +51,8 @@ MemberTypeCanNotBeDeleted=El tipo de miembro no se puede eliminar NewSubscription=Nueva contribución NewSubscriptionDesc=Este formulario le permite registrar su suscripción como nuevo miembro de la fundación. Si desea renovar su suscripción (si ya es miembro), comuníquese con la junta de la fundación por correo electrónico %s. Subscription=Contribución +CanEditAmountShort=Cualquier cantidad +CanEditAmountShortForValues=recomendado, cualquier cantidad Subscriptions=Contribuciones SubscriptionLate=Retraso SubscriptionNotReceived=Contribución nunca recibida @@ -93,7 +96,7 @@ YourMembershipWasCanceled=Tu membresía fue cancelada CardContent=Contenido de su tarjeta de miembro ThisIsContentOfYourMembershipRequestWasReceived=Queremos informarle que se recibió su solicitud de membresía.

    ThisIsContentOfYourMembershipWasValidated=Queremos informarle que su membresía fue validada con la siguiente información:

    -ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarle que se registró su nueva suscripción.

    +ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarle que se registró su nueva suscripción. Encuentre su factura aquí adjunta.

    ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su suscripción está a punto de caducar o que ya ha caducado (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperamos que lo renueve.

    ThisIsContentOfYourCard=Este es un resumen de la información que tenemos sobre usted. Por favor contáctenos si algo es incorrecto.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto del correo electrónico de notificación recibido en caso de autoinscripción de un invitado @@ -137,8 +140,7 @@ NbOfSubscriptions=Numero de contribuciones AmountOfSubscriptions=Monto recaudado de las contribuciones TurnoverOrBudget=Facturación (para una empresa) o Presupuesto (para una fundación) DefaultAmount=Importe predeterminado de la contribución -CanEditAmount=El visitante puede elegir / editar la cantidad de su contribución -MEMBER_NEWFORM_PAYONLINE=Ir a la página de pago en línea integrada +CanEditAmountDetail=El visitante puede elegir/editar el monto de su contribución independientemente del tipo de miembro MembersStatisticsByProperties=Estadísticas de miembros por naturaleza VATToUseForSubscriptions=Tasa de IVA a utilizar para las contribuciones NoVatOnSubscription=Sin IVA por contribuciones diff --git a/htdocs/langs/es_CO/modulebuilder.lang b/htdocs/langs/es_CO/modulebuilder.lang index 58e09df8673..393a7487540 100644 --- a/htdocs/langs/es_CO/modulebuilder.lang +++ b/htdocs/langs/es_CO/modulebuilder.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - modulebuilder +EnterNameOfObjectDesc=Ingrese el nombre del objeto a crear sin espacios. Use mayúsculas para separar palabras (Por ejemplo: MiObjeto, Estudiante, Profesor...). Se generará el archivo de clase CRUD, las páginas para enumerar/añadir/editar/eliminar el objeto y los archivos SQL. ModuleBuilderDesc2=Ruta donde se generan / editan los módulos (primer directorio para módulos externos definido en %s): %s ModuleBuilderDesc3=Módulos generados / editables encontrados: %s ModuleBuilderDesc4=Un módulo se detecta como 'editable' cuando el archivo %s existe en la raíz del directorio del módulo @@ -59,9 +60,10 @@ NoWidget=Sin widget ListOfDictionariesEntries=Lista de entradas de diccionarios ListOfPermissionsDefined=Lista de permisos definidos SeeExamples=Ver ejemplos aquí -EnabledDesc=Condición para tener este campo activo (Ejemplos: 1 o $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=¿El campo es visible? (Ejemplos: 0=Nunca visible, 1=Visible en la lista y crear/actualizar/ver formularios, 2=Visible solo en la lista, 3=Visible en crear/actualizar/ver solo el formulario (no en la lista), 4=Visible en la lista y actualizar/ver solo el formulario (no crear), 5=Visible solo en el formulario de vista final de la lista (no crear, no actualizar).

    Usar un valor negativo significa que el campo no se muestra de forma predeterminada en la lista, pero se puede seleccionar para su visualización).

    Puede ser una expresión, por ejemplo:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Muestre este campo en documentos PDF compatibles, puede administrar la posición con el campo "Posición".
    Actualmente, los modelos PDF compatibles conocidos son: eratosthene (pedido), espadon (envios), sponge (facturas), cyan (propal/presupuesto), cornas (pedido del proveedor)

    Para documento:
    0 = no mostrar
    1 = mostar
    2 = mostrar sólo si no está vacío

    Para lineas de documentos:
    0 = no mostradas
    1 = mostradas en una columna
    3 = mostrar en la columna de descripción de línea después de la descripción
    4 = display en la columna de descripción después de la descripción solo si no está vacía +EnabledDesc=Condición para tener este campo activo.

    Ejemplos:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=¿Se ve el campo? (Ejemplos: 0=Nunca visible, 1=Visible en la lista y formularios de creación/actualización/vista, 2=Visible solo en la lista, 3=Visible solo en el formulario de creación/actualización/vista (no en la lista), 4=Visible en la lista y actualizar/ver formulario solamente (no crear), 5=Visible solo en el formulario de vista final de la lista (no crear, no actualizar)

    El uso de un valor negativo significa que el campo no se muestra de forma predeterminada en la lista, pero se puede seleccionar para verlo). +DisplayOnPdfDesc=Muestre este campo en documentos PDF compatibles, puede administrar la posición con el campo "Posición".
    Para documento :
    0 = no mostrar
    1 = mostrar
    2 = mostrar solo si no vacio

    Para lineas de documento :
    0 = no mostrar
    1 = mostrar en columna
    3 = mostrar en la columna de descripción de línea después de la descripción
    4 = mostrar en la columna de descripción después de la descripción solo si no está vacío +DisplayOnPdf=en PDF IsAMeasureDesc=¿Se puede acumular el valor del campo para obtener un total en la lista? (Ejemplos: 1 o 0) SearchAllDesc=¿Se utiliza el campo para realizar una búsqueda desde la herramienta de búsqueda rápida? (Ejemplos: 1 o 0) SpecDefDesc=Ingrese aquí toda la documentación que desee proporcionar con su módulo que no esté definida por otras pestañas. Puede usar .md o mejor, la rica sintaxis .asciidoc. @@ -69,6 +71,7 @@ LanguageDefDesc=Ingrese en estos archivos, toda la clave y la traducción para c MenusDefDesc=Defina aquí los menús proporcionados por su módulo DictionariesDefDesc=Defina aquí los diccionarios proporcionados por su módulo PermissionsDefDesc=Defina aquí los nuevos permisos proporcionados por su módulo +MenusDefDescTooltip=Los menús proporcionados por su módulo/aplicación se definen en la matriz $this->menus en el archivo descriptor del módulo. Puede editar manualmente este archivo o usar el editor incorporado.

    Nota: Una vez definidos (y el módulo reactivado), los menús también son visibles en el editor de menús disponible para los usuarios administradores en %s. DictionariesDefDescTooltip=Los diccionarios proporcionados por su módulo / aplicación se definen en la matriz $ this-> dictionary en el archivo descriptor del módulo. Puede editar manualmente este archivo o utilizar el editor incorporado.

    Nota: Una vez definidos (y el módulo reactivado), los diccionarios también son visibles en el área de configuración para los usuarios administradores en %s. PermissionsDefDescTooltip=Los permisos proporcionados por su módulo / aplicación se definen en la matriz $ this-> rights en el archivo descriptor del módulo. Puede editar manualmente este archivo o utilizar el editor incorporado.

    Nota: Una vez definidos (y el módulo reactivado), los permisos son visibles en la configuración de permisos predeterminada %s. HooksDefDesc=Defina en la propiedad module_parts['hooks'] , en el descriptor del módulo, el contexto de los ganchos (hooks) que desea administrar (la lista de contextos se puede encontrar mediante una búsqueda en ' initHooks (' en el código central).
    El archivo de gancho (hook) para agregar el código de sus funciones enganchadas (las funciones enganchables se pueden encontrar mediante una búsqueda en ' executeHooks ' en el código central). @@ -92,11 +95,15 @@ UseSpecificEditorURL =Utilice una URL de editor específica UseSpecificFamily =Usa una familia específica UseSpecificAuthor =Usa un autor específico UseSpecificVersion =Utilice una versión inicial específica +IncludeRefGeneration=La referencia de este objeto debe generarse automáticamente mediante reglas de numeración personalizadas. +IncludeDocGeneration=Quiero que la función genere algunos documentos (PDF, ODT) a partir de plantillas para este objeto IncludeDocGenerationHelp=Si marca esto, se generará algún código para agregar un cuadro "Generar documento" en el registro. -ShowOnCombobox=Mostrar valor en el cuadro combinado +ShowOnCombobox=Mostrar valor en cuadros combinados KeyForTooltip=Clave para información sobre herramientas ForeignKey=Clave externa +TypeOfFieldsHelp=Ejemplo:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    ' 1' significa que agregamos un botón + después del combo para crear el registro
    'filtro' es una condición sql, ejemplo: 'status=1 AND fk_user=__USER_ID__ AND entidad IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Convertidor de ascii a HTML AsciiToPdfConverter=Convertidor de ascii a PDF TableNotEmptyDropCanceled=Mesa no vacía. Drop ha sido cancelado. ModuleBuilderNotAllowed=El constructor de módulos está disponible pero no está permitido para su usuario. +TabsDefDescTooltip=Las pestañas proporcionadas por su módulo/aplicación se definen en la matriz $this->tabs en el archivo descriptor del módulo. Puede editar manualmente este archivo o usar el editor integrado. diff --git a/htdocs/langs/es_CO/mrp.lang b/htdocs/langs/es_CO/mrp.lang index ee1902077da..2cfafcc346e 100644 --- a/htdocs/langs/es_CO/mrp.lang +++ b/htdocs/langs/es_CO/mrp.lang @@ -5,8 +5,8 @@ LatestBOMModified=Último %s Listas de materiales modificadas LatestMOModified=Últimas órdenes de fabricación %s modificadas Bom=Facturas de material BOMsSetup=Configuración de la lista de materiales del módulo -ListOfBOMs=Lista de listas de materiales - BOM -ListOfManufacturingOrders=Lista de órdenes de fabricación +ListOfBOMs=Listas de materiales - BOM +ListOfManufacturingOrders=Órdenes de Fabricación BOMsNumberingModules=Plantillas de numeración de listas de materiales BOMsModelModule=Plantillas de documentos BOM MOsNumberingModules=Plantillas de numeración MO @@ -45,5 +45,10 @@ AutoCloseMO=Cerrar automáticamente la Orden de Fabricación si se alcanzan las NoStockChangeOnServices=Sin cambio de stock en los servicios ProductsToProduce=Productos a producir BOMTotalCost=El costo de producir esta lista de materiales en función del costo de cada cantidad y producto a consumir (use el precio de costo si está definido, de lo contrario, el precio promedio ponderado si está definido, de lo contrario, el mejor precio de compra) +BOMTotalCostService=Si el módulo "Estación de trabajo" está activado y una estación de trabajo está definida por defecto en la línea, entonces el cálculo es "cantidad (convertida en horas) x estación de trabajo ahr", de lo contrario, "cantidad (convertida en horas) x precio de costo del servicio" ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit no se puede utilizar en una lista de materiales o un MO CollapseBOMHelp=Puede definir la visualización predeterminada de los detalles de la nomenclatura en la configuración del módulo BOM +MoChildGenerate=Generar hijo MO +MOChild=MO Niño +BOMProductsList=productos de BOM +BOMServicesList=servicios de BOM diff --git a/htdocs/langs/es_CO/oauth.lang b/htdocs/langs/es_CO/oauth.lang index 6005bedbaf5..f6938103fc8 100644 --- a/htdocs/langs/es_CO/oauth.lang +++ b/htdocs/langs/es_CO/oauth.lang @@ -5,19 +5,18 @@ TokenManager=Administrador de tokens IsTokenGenerated=¿Se genera el token? HasAccessToken=Se generó un token y se guardó en la base de datos local ToCheckDeleteTokenOnProvider=Haga clic aquí para verificar / eliminar la autorización guardada por un proveedor de OAuth %s -RequestAccess=Haga clic aquí para solicitar / renovar el acceso y recibir un nuevo token para guardar UseTheFollowingUrlAsRedirectURI=Utilice la siguiente URL como URI de redireccionamiento al crear sus credenciales con su proveedor de OAuth: -ListOfSupportedOauthProviders=Ingrese las credenciales proporcionadas por su proveedor de OAuth2. Aquí solo se enumeran los proveedores de OAuth2 compatibles. Estos servicios pueden ser utilizados por otros módulos que necesitan autenticación OAuth2. SeePreviousTab=Ver pestaña anterior +OAuthProvider=proveedor de OAuth OAuthIDSecret=ID y secreto de OAuth TOKEN_REFRESH=Actualización de Token Presente TOKEN_EXPIRED=Token caducado TOKEN_EXPIRE_AT=El token vence a las OAUTH_GOOGLE_NAME=Servicio OAuth de Google OAUTH_GOOGLE_ID=ID de Google de OAuth -OAUTH_GOOGLE_DESC=Vaya a
    esta página y luego a "Credenciales" para crear credenciales de OAuth OAUTH_GITHUB_NAME=Servicio OAuth GitHub OAUTH_GITHUB_ID=ID de GitHub de OAuth -OAUTH_GITHUB_DESC=Vaya a en esta página y luego a "Registrar una nueva aplicación" para crear credenciales de OAuth. +OAUTH_URL_FOR_CREDENTIAL=Vaya a esta página para crear u obtener su ID y secreto de OAuth OAUTH_STRIPE_TEST_NAME=Prueba de banda de OAuth OAUTH_STRIPE_LIVE_NAME=OAuth Stripe en vivo +OAUTH_SECRET=secreto OAuth diff --git a/htdocs/langs/es_CO/orders.lang b/htdocs/langs/es_CO/orders.lang index 1a851299eec..f79bfbe11db 100644 --- a/htdocs/langs/es_CO/orders.lang +++ b/htdocs/langs/es_CO/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Ya había un pedido abierto vinculado a esta propuesta, por lo que no se creó ningún otro pedido automáticamente OrdersArea=Área de pedidos de clientes SuppliersOrdersArea=Área de órdenes de compra OrderCard=Tarjeta de pedido diff --git a/htdocs/langs/es_CO/other.lang b/htdocs/langs/es_CO/other.lang index a1145b33139..18f663e673f 100644 --- a/htdocs/langs/es_CO/other.lang +++ b/htdocs/langs/es_CO/other.lang @@ -203,3 +203,16 @@ PopuCom=Productos / servicios por popularidad en pedidos ProductStatistics=Estadísticas de productos / servicios NbOfQtyInOrders=Cant. En pedidos ConfirmBtnCommonTitle =Confirma tu acción +Autofill =Autocompletar +ExternalSiteURL=URL del sitio externo del iframe HTML +ExampleMyMenuEntry=Mi entrada en el menú +FailedToConnectToFTPServer=Error al conectarse al servidor (servidor %s, puerto %s) +FailedToConnectToFTPServerWithCredentials=No se pudo ingresar al servidor con el usuario/contraseña definidos +FTPFailedToRemoveFile=No se pudo eliminar el archivo %s . +FTPFailedToRemoveDir=No se pudo eliminar el directorio %s: verifique los permisos y que el directorio esté vacío. +ChooseAFTPEntryIntoMenu=Elija un sitio FTP/SFTP del menú... +FailedToGetFile=Error al obtener los archivos %s +FileWasUpload=Se cargó el archivo %s +FTPFailedToUploadFile=No se pudo cargar el archivo %s . +FileWasCreateFolder=Se ha creado la carpeta %s +FTPFailedToCreateFolder=No se pudo crear la carpeta %s. diff --git a/htdocs/langs/es_CO/partnership.lang b/htdocs/langs/es_CO/partnership.lang index 122f5cf7523..512a1e0d37d 100644 --- a/htdocs/langs/es_CO/partnership.lang +++ b/htdocs/langs/es_CO/partnership.lang @@ -12,3 +12,4 @@ ReferingWebsiteCheck=Comprobación de la referencia del sitio web DatePartnershipEnd=Fecha final PartnershipCanceled=Cancelado PartnershipManagedFor=Socios son +NewPartnershipRequestDesc=Este formulario le permite solicitar ser parte de uno de nuestros programas de asociación. Si necesita ayuda para completar este formulario, comuníquese por correo electrónico %s. diff --git a/htdocs/langs/es_CO/productbatch.lang b/htdocs/langs/es_CO/productbatch.lang index 4435b1bc075..24103889288 100644 --- a/htdocs/langs/es_CO/productbatch.lang +++ b/htdocs/langs/es_CO/productbatch.lang @@ -23,3 +23,4 @@ SerialNumberAlreadyInUse=El número de serie %s ya se usa para el producto %s BatchSerialNumberingModules=Regla de numeración para la generación automática de número de serie (para productos con propiedad 1 lote / serie único para cada producto) QtyToAddAfterBarcodeScan=Cantidad a %s por cada código de barras/lote/serie escaneado EndOfLife=Fin de la vida +CantMoveNonExistantSerial=Error. Pides un movimiento en un registro de un serial que ya no existe. Puede ser que tome el mismo serial en el mismo almacén varias veces en el mismo envío o que haya sido utilizado por otro envío. Retire este envío y prepare otro. diff --git a/htdocs/langs/es_CO/products.lang b/htdocs/langs/es_CO/products.lang index 6901f598df8..81baa4caa22 100644 --- a/htdocs/langs/es_CO/products.lang +++ b/htdocs/langs/es_CO/products.lang @@ -8,7 +8,6 @@ ProductNoteTranslated=Nota de producto traducida ProductServiceCard=Tarjeta de productos / servicios ProductId=Identificación de producto / servicio ProductVatMassChange=Actualización global del IVA -ProductVatMassChangeDesc=¡Esta herramienta actualiza la tasa de IVA definida en TODOS los productos y servicios ! MassBarcodeInit=Inicio de código de barras masivo MassBarcodeInitDesc=Esta página se puede usar para inicializar un código de barras en objetos que no tienen un código de barras definido. Verifique antes de que se complete la configuración del código de barras del módulo. ProductAccountancyBuyCode=Código contable (compra) @@ -87,7 +86,7 @@ DeleteProductLine=Eliminar línea de productos ConfirmDeleteProductLine=¿Estás seguro de que quieres eliminar esta línea de productos? QtyMin=Min. Cantidad de compra PriceQtyMin=Precio cantidad min. -PriceQtyMinCurrency=Precio (moneda) para esta cantidad. (sin descuento) +PriceQtyMinCurrency=Precio (moneda) para esta cantidad. VATRateForSupplierProduct=Tasa de IVA (para este proveedor / producto) DiscountQtyMin=Descuento para esta cantidad. NoPriceDefinedForThisSupplier=No se ha definido ningún precio / cantidad para este proveedor / producto @@ -140,7 +139,6 @@ Quarter1=1er. Trimestre Quarter2=2do. Trimestre Quarter3=3er. Trimestre Quarter4=4to. Trimestre -BarCodePrintsheet=Imprimir código de barras PageToGenerateBarCodeSheets=Con esta herramienta, puede imprimir hojas de pegatinas de códigos de barras. Elija el formato de su página de pegatinas, el tipo de código de barras y el valor del código de barras, luego haga clic en el botón %s . NumberOfStickers=Número de stickers para imprimir en la página. PrintsheetForOneBarCode=Imprimir varios adhesivos para un código de barras @@ -200,9 +198,8 @@ SizeUnits=Unidad de tamaño ConfirmDeleteProductBuyPrice=¿Estás seguro de que quieres eliminar este precio de compra? UseProductFournDesc=Agregue una función para definir la descripción del producto definida por los proveedores (para cada referencia de proveedor) además de la descripción para los clientes ProductSupplierDescription=Descripción del proveedor del producto -UseProductSupplierPackaging=Utilice el empaque en los precios del proveedor (vuelva a calcular las cantidades de acuerdo con el empaque establecido en el precio del proveedor al agregar / actualizar la línea en los documentos del proveedor) +UseProductSupplierPackaging=Use empaques para precios redondeados a múltiplos para precios de compra (recalcule las cantidades de acuerdo con los múltiplos establecidos en los precios de compra al agregar/actualizar una línea en los documentos de un proveedor) PackagingForThisProduct=embalaje -PackagingForThisProductDesc=En el pedido del proveedor, solicitará automáticamente esta cantidad (o un múltiplo de esta cantidad). No puede ser inferior a la cantidad mínima de compra. QtyRecalculatedWithPackaging=La cantidad de la línea se volvió a calcular de acuerdo con el embalaje del proveedor. VariantAttributes=Atributos variantes ProductAttributes=Atributos de variante para productos. @@ -239,9 +236,10 @@ ActionAvailableOnVariantProductOnly=Acción solo disponible en la variante de pr ProductsPricePerCustomer=Precios de productos por cliente ProductSupplierExtraFields=Atributos adicionales (precios de proveedores) DeleteLinkedProduct=Eliminar el producto secundario vinculado a la combinación -AmountUsedToUpdateWAP=Cantidad a utilizar para actualizar el precio medio ponderado +AmountUsedToUpdateWAP=Monto unitario a utilizar para actualizar el Precio Promedio Ponderado PMPValue=Precio promedio ponderado mandatoryPeriodNeedTobeSet=Nota: Debe definirse el período (fecha de inicio y finalización) mandatoryHelper=Marque esto si desea un mensaje para el usuario al crear / validar una factura, propuesta comercial, orden de venta sin ingresar una fecha de inicio y finalización en las líneas con este servicio.
    Tenga en cuenta que el mensaje es una advertencia y no un error de bloqueo. SwitchOnSaleStatus=Activar estado de venta SwitchOnPurchaseStatus=Activar estado de compra +StockMouvementExtraFields=Campos extra (movimiento de stock) diff --git a/htdocs/langs/es_CO/projects.lang b/htdocs/langs/es_CO/projects.lang index f4eeb0b6b2c..2454caa9c2d 100644 --- a/htdocs/langs/es_CO/projects.lang +++ b/htdocs/langs/es_CO/projects.lang @@ -23,6 +23,7 @@ OpportunitiesStatusForOpenedProjects=Lleva cantidad de proyectos abiertos por es OpportunitiesStatusForProjects=Lleva cantidad de proyectos por estado. ShowProject=Mostrar proyecto SetProject=Proyecto conjunto +OutOfProject=fuera del proyecto NoProject=Ningún proyecto definido o propio TimeSpent=Tiempo usado TimeSpentByYou=Tiempo pasado por ti @@ -81,7 +82,8 @@ CantRemoveProject=Este proyecto no se puede eliminar ya que algunos otros objeto ValidateProject=Validar projet ConfirmValidateProject=¿Seguro que quieres validar este proyecto? ConfirmCloseAProject=¿Seguro que quieres cerrar este proyecto? -AlsoCloseAProject=También cierre el proyecto (manténgalo abierto si aún necesita seguir las tareas de producción en él) +AlsoCloseAProject=Cerrar también proyecto +AlsoCloseAProjectTooltip=Manténgalo abierto si aún necesita seguir las tareas de producción en él. ReOpenAProject=Proyecto abierto ConfirmReOpenAProject=¿Seguro que quieres volver a abrir este proyecto? ActionsOnProject=Eventos en proyecto @@ -118,7 +120,7 @@ OpportunityProbability=Probabilidad de la Iniciativa OpportunityProbabilityShort=Prob. de Iniciativa OpportunityAmount=Monto de iniciativa OpportunityAmountShort=Monto de iniciativa -OpportunityWeightedAmount=Importe ponderado de oportunidad +OpportunityWeightedAmount=Cantidad de oportunidad, ponderada por probabilidad OpportunityWeightedAmountShort=Op. cantidad ponderada OpportunityAmountAverageShort=Monto promedio OpportunityAmountWeigthedShort=Monto ponderado @@ -171,7 +173,7 @@ OpportunityPonderatedAmount=Cantidad ponderada de clientes potenciales OpportunityPonderatedAmountDesc=Cantidad de leads ponderada con probabilidad OppStatusQUAL=Calificación OppStatusPROPO=Propuesta -AllowToLinkFromOtherCompany=Permitir vincular proyecto de otra empresa

    Valores admitidos:
    - Mantener vacío: Puede vincular cualquier proyecto de la empresa (predeterminado)
    - "todos": Puede vincular cualquier proyecto, incluso proyectos de otras empresas.
    - Una lista de IDs de terceros separados por comas: puede vincular todos los proyectos de estos terceros (Ejemplo: 123,4795,53)
    +AllowToLinkFromOtherCompany=Permitir vincular un elemento con un proyecto de otra empresa

    Valores admitidos:
    - Mantener vacío: puede vincular elementos con cualquier proyecto de la misma empresa (predeterminado)
    - "todos", incluso puede vincular elementos con cualquier proyecto proyectos de otras empresas
    - Una lista de ID de terceros separados por comas: puede vincular elementos con cualquier proyecto de estos terceros (Ejemplo: 123,4795,53)
    LatestProjects=Últimos proyectos %s LatestModifiedProjects=Últimos proyectos modificados %s NoAssignedTasks=No se encontraron tareas asignadas (asigne proyectos / tareas al usuario actual desde el cuadro de selección superior para ingresar el tiempo) @@ -186,7 +188,6 @@ NewTaskRefSuggested=La referencia de tarea ya se usó, se requiere una nueva ref TimeSpentInvoiced=Tiempo invertido facturado TimeSpentForIntervention=Tiempo usado TimeSpentForInvoice=Tiempo usado -ServiceToUseOnLines=Servicio para usar en líneas InvoiceGeneratedFromTimeSpent=La factura %s se ha generado a partir del tiempo dedicado al proyecto InterventionGeneratedFromTimeSpent=La intervención %s se ha generado a partir del tiempo dedicado al proyecto ProjectBillTimeDescription=Verifique si ingresa la hoja de tiempo en las tareas del proyecto Y planea generar factura(s) a partir de la hoja de tiempo para facturar al cliente del proyecto (no verifique si planea crear una factura que no se base en las hojas de tiempo ingresadas). Nota: Para generar factura, vaya a la pestaña 'Tiempo invertido' del proyecto y seleccione las líneas para incluir. @@ -197,7 +198,7 @@ InvoiceToUse=Proyecto de factura a utilizar InterToUse=Proyecto de intervención a utilizar NewInter=Nueva intervención ProfitIsCalculatedWith=La ganancia se calcula usando -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: los proyectos existentes con todas las tareas en 100%% no se verán afectados: tendrá que cerrarlos manualmente. Esta opción solo afecta a proyectos abiertos. ProjectTasksWithoutTimeSpent=Proyecto de tareas sin tiempo invertido FormForNewLeadDesc=Gracias por llenar el siguiente formulario para contactarnos. También puede enviarnos un correo electrónico directamente a %s . StartDateCannotBeAfterEndDate=La fecha de finalización no puede ser anterior a la fecha de inicio +ErrorPROJECTLEADERRoleMissingRestoreIt=Falta el rol "PROJECTLEADER" o se ha desactivado, restablezca en el diccionario de tipos de contacto diff --git a/htdocs/langs/es_CO/propal.lang b/htdocs/langs/es_CO/propal.lang index 00700b4e8c0..315c8fc64b6 100644 --- a/htdocs/langs/es_CO/propal.lang +++ b/htdocs/langs/es_CO/propal.lang @@ -44,6 +44,7 @@ NoDraftProposals=No hay borradores de propuestas CopyPropalFrom=Crear propuesta comercial copiando propuesta existente CreateEmptyPropal=Crear propuesta comercial vacía o de lista de productos / servicios DefaultProposalDurationValidity=Duración predeterminada de la validez de la propuesta comercial (en días) +DefaultPuttingPricesUpToDate=De forma predeterminada, actualice los precios con los precios actuales conocidos al clonar una propuesta UseCustomerContactAsPropalRecipientIfExist=Use el contacto / dirección con el tipo 'Propuesta de seguimiento de contacto' si se define en lugar de la dirección de un tercero como dirección del destinatario de la propuesta ConfirmClonePropal=¿Estás seguro de que deseas clonar la propuesta comercial %s ? ConfirmReOpenProp=¿Seguro que quieres volver a abrir la propuesta comercial %s ? @@ -59,21 +60,25 @@ TypeContact_propal_internal_SALESREPFOLL=Propuesta de seguimiento representativa TypeContact_propal_external_BILLING=Contacto factura cliente TypeContact_propal_external_CUSTOMER=Propuesta de seguimiento de contacto con el cliente TypeContact_propal_external_SHIPPING=Contacto con el cliente para la entrega -DocModelAzurDescription=Un modelo de propuesta completo (implementación anterior de la plantilla Cyan) -DocModelCyanDescription=Un modelo de propuesta completo +CaseFollowedBy=Caso seguido de +ConfirmMassNoSignature=Confirmación masiva no firmada +ConfirmRefusePropal=¿Seguro que quiere rechazar esta propuesta comercial? +DefaultModelPropalClosed=Plantilla predeterminada al cerrar una propuesta comercial (no facturada) DefaultModelPropalCreate=Creación de modelo predeterminado DefaultModelPropalToBill=Plantilla predeterminada al cerrar una propuesta comercial (a facturar) -DefaultModelPropalClosed=Plantilla predeterminada al cerrar una propuesta comercial (no facturada) -ProposalsStatisticsSuppliers=Estadísticas de propuestas de proveedores -CaseFollowedBy=Caso seguido de -Sign=Firmar -IdProposal=ID de propuesta +DocModelAzurDescription=Un modelo de propuesta completo (implementación anterior de la plantilla Cyan) +DocModelCyanDescription=Un modelo de propuesta completo IdProduct=identificación de producto +IdProposal=ID de propuesta LineBuyPriceHT=Precio de compra Importe neto de impuestos para la línea -SignPropal=Aceptar propuesta -RefusePropal=Rechazar propuesta -PropalAlreadySigned=Propuesta ya aceptada +NoSign=Negar +NoSigned=conjunto no firmado PropalAlreadyRefused=Propuesta ya rechazada -PropalSigned=Propuesta aceptada +PropalAlreadySigned=Propuesta ya aceptada PropalRefused=Propuesta rechazada -ConfirmRefusePropal=¿Seguro que quiere rechazar esta propuesta comercial? +PropalSigned=Propuesta aceptada +ProposalsStatisticsSuppliers=Estadísticas de propuestas de proveedores +RefusePropal=Rechazar propuesta +Sign=Firmar +SignFichinter=Señal de intervención +SignPropal=Aceptar propuesta diff --git a/htdocs/langs/es_CO/receiptprinter.lang b/htdocs/langs/es_CO/receiptprinter.lang index f63b80fa446..8c30cee3b37 100644 --- a/htdocs/langs/es_CO/receiptprinter.lang +++ b/htdocs/langs/es_CO/receiptprinter.lang @@ -4,7 +4,7 @@ PrinterAdded=Se agregó la impresora %s TestSentToPrinter=Prueba enviada a la impresora %s ReceiptPrinter=Impresoras de recibos ReceiptPrinterDesc=Configuración de impresoras de recibos -ReceiptPrinterTypeDesc=Descripción del tipo de impresora de recibos +ReceiptPrinterTypeDesc=Ejemplo de valores posibles para el campo "Parámetros" según el tipo de controlador ReceiptPrinterProfileDesc=Descripción del perfil de la impresora de recibos ListPrinters=Lista de impresoras SetupReceiptTemplate=Configuración de plantilla diff --git a/htdocs/langs/es_CO/receptions.lang b/htdocs/langs/es_CO/receptions.lang index fb9a67d8272..67d2f3c817c 100644 --- a/htdocs/langs/es_CO/receptions.lang +++ b/htdocs/langs/es_CO/receptions.lang @@ -25,5 +25,4 @@ ProductQtyInSuppliersReceptionAlreadyRecevied=Cantidad de producto de la orden d ValidateOrderFirstBeforeReception=Primero debes validar el pedido antes de poder realizar recepciones. ReceptionsReceiptModel=Plantillas de documentos para recepciones NoMorePredefinedProductToDispatch=No más productos predefinidos para enviar -ByingPrice=Precio de oferta ReceptionUnClassifyCloseddInDolibarr=Recepción %s re-abrir diff --git a/htdocs/langs/es_CO/recruitment.lang b/htdocs/langs/es_CO/recruitment.lang index d963dc83278..15de1630371 100644 --- a/htdocs/langs/es_CO/recruitment.lang +++ b/htdocs/langs/es_CO/recruitment.lang @@ -13,7 +13,6 @@ EmailRecruiter=Reclutador de correo electrónico ToUseAGenericEmail=Utilizar un correo electrónico genérico. Si no se define, se utilizará el correo electrónico del responsable de contratación. ListOfCandidatures=Lista de aplicaciones RecruitmentCandidature=Aplicación -InterviewToDo=Entrevista para hacer YourCandidature=Tu aplicación YourCandidatureAnswerMessage=Gracias por tu aplicación.
    ... JobClosedTextCandidateFound=El puesto de trabajo está cerrado. El puesto ha sido cubierto. @@ -21,3 +20,4 @@ JobClosedTextCanceled=El puesto de trabajo está cerrado. ExtrafieldsJobPosition=Atributos complementarios (puestos de trabajo) ExtrafieldsApplication=Atributos complementarios (solicitudes de empleo) MakeOffer=Haz una oferta +WeAreRecruiting=estamos reclutando Esta es una lista de vacantes a cubrir... diff --git a/htdocs/langs/es_CO/salaries.lang b/htdocs/langs/es_CO/salaries.lang index a59dad2e27c..e7ed10391d5 100644 --- a/htdocs/langs/es_CO/salaries.lang +++ b/htdocs/langs/es_CO/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta contable utilizada para usuarios de terceros -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=La cuenta de contabilidad dedicada definida en la tarjeta de usuario se usará solo para la contabilidad del libro auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del libro auxiliar si la cuenta de contabilidad del usuario dedicada no está definida. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta (del plan de cuentas) utilizada por defecto para terceros "usuarios" +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=La cuenta dedicada definida en la tarjeta de usuario se usará solo para contabilidad auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de contabilidad de usuario dedicada en el usuario. CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Por defecto, deje vacía la opción "Crear automáticamente un pago total" al crear un salario. AddSalaryPayment=Agregar pago de salario THM=Tarifa por hora promedio diff --git a/htdocs/langs/es_CO/stocks.lang b/htdocs/langs/es_CO/stocks.lang index 137e6c47dfe..d0d630fc59d 100644 --- a/htdocs/langs/es_CO/stocks.lang +++ b/htdocs/langs/es_CO/stocks.lang @@ -30,7 +30,7 @@ NumberOfProducts=Número total de productos StockCorrection=Corrección de stock CorrectStock=Stock correcto StockTransfer=Transferencia de acciones -MassStockTransferShort=Transferencia masiva de existencias +MassStockTransferShort=Cambio de existencias a granel StockMovement=Movimiento de valores NumberOfUnit=Número de unidades UnitPurchaseValue=Precio unitario de compra @@ -103,6 +103,7 @@ Replenishments=Reabastecimientos NbOfProductBeforePeriod=Cantidad de producto %s en stock antes del período seleccionado (<%s) NbOfProductAfterPeriod=Cantidad de producto %s en stock después del período seleccionado (> %s) MassMovement=Movimiento masivo +SelectProductInAndOutWareHouse=Seleccione un almacén de origen (opcional), un almacén de destino, un producto y una cantidad, luego haga clic en "%s". Una vez hecho esto para todos los movimientos requeridos, haga clic en "%s". RecordMovement=Transferencia de registros ReceivingForSameOrder=Recibos de este pedido StockMovementRecorded=Movimientos de stock registrados @@ -127,7 +128,6 @@ ProductStockWarehouseCreated=Límite de stock para alerta y stock óptimo desead ProductStockWarehouseUpdated=Límite de stock para alerta y stock óptimo deseado actualizado correctamente ProductStockWarehouseDeleted=Límite de stock para alerta y stock óptimo deseado eliminado correctamente AddNewProductStockWarehouse=Establecer un nuevo límite de alerta y stock óptimo deseado -AddStockLocationLine=Disminuya la cantidad y luego haga clic para agregar otro almacén para este producto InventoryDate=Fecha de inventario inventorySetup =Configuración de inventario inventoryListEmpty=No hay inventario en progreso @@ -160,12 +160,29 @@ StockIncreaseAfterCorrectTransfer=Incrementar por corrección / transferencia StockDecreaseAfterCorrectTransfer=Disminuir por corrección / transferencia StockIncrease=Aumento de stock StockDecrease=Disminución de stock +StockIsRequiredToChooseWhichLotToUse=Se requiere un stock existente para poder elegir qué lote usar AlwaysShowFullArbo=Mostrar el árbol completo del almacén en la ventana emergente de los enlaces del almacén (Advertencia: esto puede disminuir drásticamente el rendimiento) UpdateByScaning=Complete la cantidad real escaneando ImportFromCSV=Importar lista CSV de movimiento InfoTemplateImport=El archivo cargado debe tener este formato (* son campos obligatorios):
    Source Warehouse * | Almacén de destino * | Producto * | Cantidad * | Lote / número de serie
    El separador de caracteres CSV debe ser " %s " +AutofillWithExpected=Rellene la cantidad real con la cantidad esperada ProductBatchDoesNotExist=El producto con lote / serie no existe InventoryStartedShort=Empezado QtyWasAddedToTheScannedBarcode=Éxito !! La cantidad se agregó a todos los códigos de barras solicitados. Puede cerrar la herramienta Escáner. -StockChangeDisabled=Cambio en stock deshabilitado +StockChangeDisabled=Cambio de stock deshabilitado NoWarehouseDefinedForTerminal=No hay almacén definido para terminal +ModuleStockTransferName=Transferencia avanzada de acciones +ModuleStockTransferDesc=Gestión avanzada de Stock Transfer, con generación de ficha de transferencia +StockTransferNew=Nueva transferencia de acciones +StockTransferList=Lista de transferencias de acciones +ConfirmValidateStockTransfer=¿Está seguro de que desea validar esta transferencia de acciones con la referencia %s? +DateReelleDepart=fecha real de salida +TypeContact_stocktransfer_internal_STFROM=Remitente de la transferencia de acciones +TypeContact_stocktransfer_internal_STDEST=Destinatario de la transferencia de acciones +TypeContact_stocktransfer_internal_STRESP=Responsable de transferencia de acciones. +StockTransferSheet=Hoja de transferencia de acciones +StockTransferSheetProforma=Hoja de transferencia de acciones proforma +StockStransferIncremented=Cerrado - Acciones transferidas +StockStransferIncrementedShort=Acciones transferidas +StockTransferSetupPage =Página de configuración del módulo de transferencia de acciones +StockTransferRightRead=Leer transferencias de acciones diff --git a/htdocs/langs/es_CO/ticket.lang b/htdocs/langs/es_CO/ticket.lang index 02301c15de2..bd8be927d60 100644 --- a/htdocs/langs/es_CO/ticket.lang +++ b/htdocs/langs/es_CO/ticket.lang @@ -25,6 +25,7 @@ TicketPublicAccess=Una interfaz pública que no requiere identificación está d TicketSetupDictionaries=El tipo de ticket, severidad y códigos analíticos son configurables desde diccionarios TicketParamModule=Configuración de variables de módulo TicketParamMail=Configuración de correo electrónico +TicketEmailNotificationFromHelp=Correo electrónico del remitente para usar para enviar el correo electrónico de notificación cuando se proporciona una respuesta dentro de la oficina administrativa. Por ejemplo noreply@example.com TicketNewEmailBodyHelp=El texto especificado aquí se insertará en el correo electrónico confirmando la creación de un nuevo ticket desde la interfaz pública. La información sobre la consulta del ticket se agrega automáticamente. TicketParamPublicInterface=Configuración de la interfaz pública TicketsEmailMustExist=Requerir una dirección de correo electrónico existente para crear un ticket @@ -55,6 +56,10 @@ TicketNotifyTiersAtCreation=Notificar a terceros en la creación TicketsDisableCustomerEmail=Desactive siempre los correos electrónicos cuando se crea un ticket desde la interfaz pública TicketsPublicNotificationNewMessageHelp=Enviar correo electrónico (s) cuando se agrega un nuevo mensaje desde la interfaz pública (al usuario asignado o el correo electrónico de notificaciones a (actualización) y / o el correo electrónico de notificaciones a) TicketPublicNotificationNewMessageDefaultEmail=Notificaciones por correo electrónico a (actualización) +TicketsDelayBeforeFirstAnswerHelp=Si un nuevo ticket no ha recibido una respuesta después de este período de tiempo (en horas), se mostrará un icono de advertencia importante en la vista de lista. +TicketsDelayBetweenAnswersHelp=Si un ticket sin resolver que ya recibió una respuesta no ha tenido más interacción después de este período de tiempo (en horas), se mostrará un icono de advertencia en la vista de lista. +TicketsAutoNotifyCloseHelp=Al cerrar un ticket, se le propondrá enviar un mensaje a uno de los contactos de un tercero. En el cierre masivo, se enviará un mensaje a un contacto del tercero vinculado al boleto. +TicketWrongContact=El contacto proporcionado no forma parte de los contactos del ticket actual. Correo electrónico no enviado. TicketsIndex=Zona de entradas TicketList=Lista de tickets TicketAssignedToMeInfos=Esta página muestra la lista de tickets creada por o asignada al usuario actual @@ -64,6 +69,8 @@ TicketViewAllTickets=Ver todas las entradas TicketStatByStatus=Entradas por estado ShowAsConversation=Mostrar como lista de conversaciones MessageListViewType=Mostrar como lista de tablas +ConfirmMassTicketClosingSendEmail=Envía automáticamente correos electrónicos al cerrar tickets +ConfirmMassTicketClosingSendEmailQuestion=¿Quieres avisar a terceros al cerrar estos tickets? TicketCard=Tarjeta de entrada CreateTicket=Crear Ticket TicketsManagement=Gestión de entradas @@ -76,8 +83,6 @@ TicketAssigned=El ticket ahora está asignado TicketChangeType=Tipo de cambio TicketChangeCategory=Cambiar el código analítico TicketChangeSeverity=Cambiar la gravedad -TicketAddMessage=Añade un mensaje -AddMessage=Añade un mensaje MessageSuccessfullyAdded=Ticket agregado TicketMessageSuccessfullyAdded=Mensaje agregado exitosamente TicketMessagesList=Lista de mensajes @@ -85,16 +90,12 @@ NoMsgForThisTicket=No hay mensaje para este ticket LatestNewTickets=Latest %s entradas más nuevas (no leídas) ShowTicket=Ver boleto RelatedTickets=Entradas relacionadas -CloseTicket=Cerrar | Resolver ticket -AbandonTicket=Billete de abandono ConfirmAbandonTicket=¿Confirmas el cierre del ticket al estado 'Abandonado'? ConfirmDeleteTicket=Confirma la eliminación del ticket SendMessageByEmail=Enviar mensaje por correo electrónico ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatario está vacío. No enviar correo electrónico TicketGoIntoContactTab=Vaya a la pestaña "Contactos" para seleccionarlos. TicketMessageMailIntroHelp=Este texto se agrega solo al comienzo del correo electrónico y no se guardará. -TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. -TicketMessageMailSignatureLabelAdmin=Firma del correo electrónico de respuesta TicketMessageHelp=Solo este texto se guardará en la lista de mensajes de la tarjeta del ticket. TicketTimeToRead=Tiempo transcurrido antes de leer TicketContacts=Ticket de contactos @@ -123,7 +124,6 @@ TicketNewEmailBodyCustomer=Este es un correo electrónico automático para confi TicketNewEmailBodyInfosTicket=Información para el seguimiento del ticket TicketEmailPleaseDoNotReplyToThisEmail=¡Por favor no responda directamente a este correo! Utilice el enlace para responder a la interfaz. TicketPublicInfoCreateTicket=Este formulario le permite registrar un ticket de soporte en nuestro sistema de gestión. -TicketPublicPleaseBeAccuratelyDescribe=Describe el problema con precisión. Proporcione la mayor cantidad de información posible que nos permita identificar correctamente su solicitud. TicketPublicMsgViewLogIn=Ingrese el ID de seguimiento del boleto TicketTrackId=ID de seguimiento público OneOfTicketTrackId=Uno de sus ID de seguimiento @@ -137,6 +137,8 @@ SeeThisTicketIntomanagementInterface=Ver ticket en la interfaz de gestión ErrorEmailOrTrackingInvalid=Valor incorrecto para el ID de seguimiento o el correo electrónico NewUser=Nuevo Usuario NbOfTickets=Numero de tickets +TicketCloseEmailSubjectCustomer=Boleto cerrado +TicketCloseEmailSubjectAdmin=Ticket cerrado - Réf %s (ID de ticket público %s) TicketNotificationRecipient=Destinatario de la notificación TicketNotificationEmailBodyInfosTrackUrlinternal=Ver el ticket en la interfaz TicketNotificationNumberEmailSent=Correo electrónico de notificación enviado: %s diff --git a/htdocs/langs/es_CO/users.lang b/htdocs/langs/es_CO/users.lang index 1aa7835c43f..7569c03c066 100644 --- a/htdocs/langs/es_CO/users.lang +++ b/htdocs/langs/es_CO/users.lang @@ -31,7 +31,7 @@ RemoveFromGroup=Sacar del grupo PasswordChangedAndSentTo=La contraseña cambió y se envió a %s . PasswordChangeRequest=Solicitud de cambio de contraseña para %s PasswordChangeRequestSent=Solicitud de cambio de contraseña para %s enviada a %s . -IfLoginExistPasswordRequestSent=Si este inicio de sesión es una cuenta válida, se ha enviado un correo electrónico para restablecer la contraseña. +IfLoginExistPasswordRequestSent=Si este inicio de sesión es una cuenta válida (con un E-mail válido), se ha enviado un E-mail para restablecer la contraseña. MenuUsersAndGroups=Usuarios y Grupos LastGroupsCreated=Últimos grupos %s creados LastUsersCreated=Últimos usuarios creados %s @@ -75,6 +75,7 @@ DisabledInMonoUserMode=Deshabilitado en modo de mantenimiento UserAccountancyCode=Código de contabilidad del usuario UserLogoff=Cierre de sesión de usuario UserLogged=Usuario registrado +DateEmploymentStart=Fecha de inicio del empleo DateEmploymentEnd=Fecha de finalización del empleo ForceUserExpenseValidator=Validador del informe de gastos de la fuerza ForceUserHolidayValidator=Validador de solicitud de licencia forzosa diff --git a/htdocs/langs/es_CO/website.lang b/htdocs/langs/es_CO/website.lang index 7c082941998..7c199bb14a9 100644 --- a/htdocs/langs/es_CO/website.lang +++ b/htdocs/langs/es_CO/website.lang @@ -9,7 +9,8 @@ WEBSITE_CSS_URL=URL del archivo CSS externo WEBSITE_CSS_INLINE=Contenido de archivo CSS (común a todas las páginas) WEBSITE_ROBOT=Archivo de robot (robots.txt) WEBSITE_KEYWORDSDesc=Use una coma para separar valores -EnterHereLicenseInformation=Ingrese aquí los metadatos o la información de la licencia para completar un archivo README.md. si distribuye su sitio web como una plantilla, el archivo se incluirá en el paquete temptate. +EnterHereReadmeInformation=Introduzca aquí una descripción del sitio web. Si distribuye su sitio web como plantilla, el archivo se incluirá en el paquete tentate. +EnterHereLicenseInformation=Introduzca aquí la LICENCIA del código del sitio web. Si distribuye su sitio web como plantilla, el archivo se incluirá en el paquete tentate. HtmlHeaderPage=Encabezado HTML (específico de esta página únicamente) PageNameAliasHelp=Nombre o alias de la página.
    Este alias también se usa para falsificar una URL de SEO cuando el sitio web se ejecuta desde un host virtual de un servidor web (como Apacke, Nginx, ...). Utilice el botón " %s " para editar este alias. EditTheWebSiteForACommonHeader=Nota: Si desea definir un encabezado personalizado para todas las páginas, edítelo en el nivel del sitio en lugar de en la página / contenedor. @@ -30,6 +31,7 @@ PageAdded=Page / Contenair '%s' agregado SetAsHomePage=Establecer como página de inicio RealURL=URL real ViewWebsiteInProduction=Ver el sitio web usando URL de inicio +VirtualhostDesc=El nombre del host virtual o dominio (por ejemplo: www.miwebsite.com, miempresa.net, ...) SetHereVirtualHost= Úselo con Apache / NGinx / ...
    Cree en su servidor web (Apache, Nginx, ...) un host virtual dedicado con PHP habilitado y un directorio raíz en
    %s YouCanAlsoTestWithPHPS= Usar con el servidor PHP integrado
    En el entorno de desarrollo, es posible que prefiera probar el sitio con el servidor web integrado PHP (se requiere PHP 5.5) ejecutando
    php -S 0.0.0.0:8080 -t %s YouCanAlsoDeployToAnotherWHP= Ejecute su sitio web con otro proveedor de alojamiento Dolibarr
    Si no tiene un servidor web como Apache o NGinx disponible en Internet, puede exportar e importar su sitio web a otra instancia de Dolibarr proporcionada por otro proveedor de alojamiento Dolibarr que proporcione integración con el módulo de sitio web. Puede encontrar una lista de algunos proveedores de alojamiento Dolibarr en https://saas.dolibarr.org @@ -91,5 +93,4 @@ UseManifest=Proporcione un archivo manifest.json ReplacementDoneInXPages=Reemplazo hecho en %s páginas o contenedores RSSFeedDesc=Puede obtener un feed RSS de los últimos artículos con el tipo 'blogpost' utilizando esta URL PagesRegenerated=%s página (s) / contenedor (s) regenerado -GenerateSitemaps=Generar archivo de mapa del sitio web ErrorFaviconSize=El favicon debe tener un tamaño de 16 x 16, 32 x 32 o 64 x 64 diff --git a/htdocs/langs/es_CO/withdrawals.lang b/htdocs/langs/es_CO/withdrawals.lang index 38e533e6b22..1810869338e 100644 --- a/htdocs/langs/es_CO/withdrawals.lang +++ b/htdocs/langs/es_CO/withdrawals.lang @@ -22,7 +22,6 @@ SupplierInvoiceWaitingWithdraw=Factura de proveedor en espera de pago mediante t InvoiceWaitingWithdraw=Factura en espera de débito automático AmountToWithdraw=Cantidad a retirar NoInvoiceToWithdraw=No hay ninguna factura abierta para '%s' esperando. Vaya a la pestaña '%s' en la tarjeta de factura para realizar una solicitud. -NoSupplierInvoiceToWithdraw=No se espera ninguna factura de proveedor con 'Solicitudes de débito automático' abiertas. Vaya a la pestaña '%s' en la tarjeta de factura para realizar una solicitud. ResponsibleUser=Usuario responsable WithdrawalsSetup=Configuración de pago por débito automático CreditTransferSetup=Configuración de transferencia bancaria @@ -80,8 +79,6 @@ CreditDate=Crédito en WithdrawalFileNotCapable=No se puede generar el archivo de recibo de retiro para su país %s (Su país no es compatible) ShowWithdraw=Mostrar orden de débito automático IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Sin embargo, si la factura tiene al menos una orden de pago por débito automático que aún no se ha procesado, no se establecerá como pagada para permitir la gestión previa de retiros. -DoStandingOrdersBeforePayments=Esta pestaña le permite solicitar una orden de pago mediante débito automático. Una vez hecho esto, acceda al menú Banco->Pago por débito automático para generar y gestionar la orden de débito automático. Cuando se cierra la orden de débito automático, el pago de las facturas se registrará automáticamente y las facturas se cerrarán si el resto a pagar es nulo. -DoCreditTransferBeforePayments=Esta pestaña le permite solicitar una orden de transferencia bancaria. Una vez hecho esto, vaya al menú Banco-> Pago por transferencia bancaria para generar y administrar la orden de transferencia bancaria. Cuando se cierra la orden de transferencia bancaria, el pago de las facturas se registrará automáticamente y las facturas se cerrarán si el resto a pagar es nulo. WithdrawalFile=Archivo de orden de débito SetToStatusSent=Establecer en estado "Archivo enviado" ThisWillAlsoAddPaymentOnInvoice=Esto también registrará los pagos en las facturas y los clasificará como "Pagados" si el resto por pagar es nulo. @@ -95,7 +92,6 @@ BankTransferAmount=Monto de la solicitud de transferencia bancaria: WithdrawRequestErrorNilAmount=No se puede crear una solicitud de débito automático por un monto vacío. SepaMandate=Mandato de débito automático SEPA PleaseReturnMandate=Envíe este formulario de mandato por correo electrónico a %s o por correo postal a -SEPALegalText=Al firmar este formulario de mandato, autoriza a (A) %s a enviar instrucciones a su banco para que debite su cuenta y (B) a su banco a que debite su cuenta de acuerdo con las instrucciones de %s. Como parte de sus derechos, tiene derecho a un reembolso de su banco según los términos y condiciones de su acuerdo con su banco. Sus derechos con respecto al mandato anterior se explican en una declaración que puede obtener de su banco. CreditorIdentifier=Identificador del acreedor (CI) CreditorName=Nombre del acreedor SEPAFillForm=(B) Por favor complete todos los campos marcados * diff --git a/htdocs/langs/es_CO/workflow.lang b/htdocs/langs/es_CO/workflow.lang index 326b17aadd9..0975adac66d 100644 --- a/htdocs/langs/es_CO/workflow.lang +++ b/htdocs/langs/es_CO/workflow.lang @@ -14,5 +14,3 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasifique el pedido de ventas de o descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Clasifique el pedido de venta de origen vinculado como enviado cuando se cierra un envío (y si la cantidad enviada por todos los envíos es la misma que en el pedido para actualizar) descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasifique la propuesta del proveedor de origen vinculado como facturada cuando se valida la factura del proveedor (y si el monto de la factura es el mismo que el monto total de la propuesta vinculada) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasifique el pedido de compra de origen vinculado como facturado cuando se valida la factura del proveedor (y si el monto de la factura es el mismo que el monto total del pedido vinculado) -descWORKFLOW_BILL_ON_RECEPTION=Clasifique las recepciones como "facturadas" cuando un pedido de proveedor vinculado is validado -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifique el envío de origen vinculado como cerrado cuando se valida la factura del cliente diff --git a/htdocs/langs/es_CR/admin.lang b/htdocs/langs/es_CR/admin.lang new file mode 100644 index 00000000000..52d3b029a72 --- /dev/null +++ b/htdocs/langs/es_CR/admin.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - admin +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    diff --git a/htdocs/langs/es_CR/hrm.lang b/htdocs/langs/es_CR/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_CR/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_CR/main.lang b/htdocs/langs/es_CR/main.lang new file mode 100644 index 00000000000..2e691473326 --- /dev/null +++ b/htdocs/langs/es_CR/main.lang @@ -0,0 +1,21 @@ +# Dolibarr language file - Source file is en_US - main +DIRECTION=ltr +FONTFORPDF=helvetica +FONTSIZEFORPDF=10 +SeparatorDecimal=. +SeparatorThousand=, +FormatDateShort=%m/%d/%Y +FormatDateShortInput=%m/%d/%Y +FormatDateShortJava=MM/dd/yyyy +FormatDateShortJavaInput=MM/dd/yyyy +FormatDateShortJQuery=mm/dd/yy +FormatDateShortJQueryInput=mm/dd/yy +FormatHourShortJQuery=HH:MI +FormatHourShort=%I:%M %p +FormatHourShortDuration=%H:%M +FormatDateTextShort=%b %d, %Y +FormatDateText=%B %d, %Y +FormatDateHourShort=%m/%d/%Y %I:%M %p +FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourTextShort=%b %d, %Y, %I:%M %p +FormatDateHourText=%B %d, %Y, %I:%M %p diff --git a/htdocs/langs/es_CR/propal.lang b/htdocs/langs/es_CR/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_CR/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_DO/hrm.lang b/htdocs/langs/es_DO/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_DO/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_DO/propal.lang b/htdocs/langs/es_DO/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_DO/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_EC/accountancy.lang b/htdocs/langs/es_EC/accountancy.lang index 56a5c3e928d..a9c11f18148 100644 --- a/htdocs/langs/es_EC/accountancy.lang +++ b/htdocs/langs/es_EC/accountancy.lang @@ -94,28 +94,10 @@ ACCOUNTING_LENGTH_AACCOUNT=Longitud de las cuentas contables de terceros (si est ACCOUNTING_MANAGE_ZERO=Permitir gestionar diferentes números de ceros al final de una cuenta contable. Necesario por algunos países (como Suiza). Si está desactivado (predeterminado), puede configurar los siguientes dos parámetros para pedirle a la aplicación que agregue ceros virtuales. BANK_DISABLE_DIRECT_INPUT=Inhabilitar la grabación directa de la transacción en una cuenta bancaria ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilitar la exportación del borrador en el diario -ACCOUNTING_SELL_JOURNAL=Vender un diario -ACCOUNTING_PURCHASE_JOURNAL=Diario de compra -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario diverso ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario de informes de gastos ACCOUNTING_RESULT_PROFIT=Cuenta contable de resultados (beneficio) ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (pérdida) -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta contable de transferencia bancaria transitoria TransitionalAccount=Cuenta de transferencia bancaria transitoria -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta de cuenta de espera -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para los productos comprados (se usa si no se define en la hoja de productos) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los productos comprados en EEC (se usa si no se define en la hoja de productos) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos comprados e importados fuera de la CEE (usado si no está definido en la hoja de productos) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable por defecto para los productos vendidos (utilizada si no se define en la hoja del producto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en la CEE (utilizada si no se define en la hoja de producto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos vendidos y exportados fuera de la CEE (usado si no está definido en la hoja de producto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable por defecto para los servicios comprados (utilizado si no se define en la hoja de servicio) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios comprados en EEC (utilizada si no está definida en la hoja de servicios) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios comprados e importados fuera de la CEE (se usa si no se define en la hoja de servicios) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Contabilidad por defecto para los servicios vendidos (utilizado si no se define en la hoja de servicio) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios vendidos en la CEE (utilizada si no se define en la hoja de servicios) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios vendidos y exportados fuera de la CEE (usado si no está definido en la hoja de servicios) LabelAccount=Cuenta de etiqueta LabelOperation=Operación de etiquetas LetteringCode=Codigo de letras @@ -151,24 +133,16 @@ OpeningBalance=Saldo de apertura Reconcilable=Conciliable TotalVente=Volumen de negocios total antes de impuestos TotalMarge=Margen total de ventas -DescVentilCustomer=Consulte aquí la lista de líneas de factura de cliente vinculadas (o no) a una cuenta de contabilidad de producto -DescVentilMore=En la mayoría de los casos, si utiliza productos o servicios predefinidos y configura el número de cuenta en la tarjeta de producto/servicio, la aplicación podrá realizar todas las vinculaciones entre sus líneas de factura y la cuenta contable de su plan de cuentas, solo en un clic con el botón "%s". Si la cuenta no se configuró en las tarjetas de producto/servicio o si todavía tiene algunas líneas que no están vinculadas a una cuenta, deberá realizar un enlace manual desde el menú "%s". -DescVentilDoneCustomer=Consulte aquí la lista de líneas de clientes de facturas y su cuenta de contabilidad de productos -DescVentilTodoCustomer=Vincular líneas de factura no consolidadas con una cuenta de contabilidad de producto -ChangeAccount=Cambie la cuenta de contabilidad de producto/servicio para las líneas seleccionadas con la siguiente cuenta de contabilidad: -DescVentilSupplier=Consulte aquí la lista de líneas de factura del proveedor vinculadas o aún no vinculadas a una cuenta contable del producto (solo se puede ver el registro que no se ha transferido en la contabilidad) DescVentilDoneSupplier=Consulte aquí la lista de las líneas de facturas de proveedores y su cuenta contable DescVentilTodoExpenseReport=Vincular las líneas de informes de gastos no consolidadas con una cuenta de contabilidad de cargos DescVentilExpenseReport=Consulte aquí la lista de líneas de reporte de gastos vinculadas (o no) a una cuenta contable de honorarios DescVentilExpenseReportMore=Si configura una cuenta contable en el tipo de líneas de informe de gastos, la aplicación podrá hacer todo el enlace entre sus líneas de informe de gastos y la cuenta contable de su plan de cuentas, solo con un clic con el botón "%s". Si la cuenta no se configuró en el diccionario de tarifas o si todavía tiene algunas líneas que no están vinculadas a ninguna cuenta, deberá realizar un enlace manual desde el menú "%s". DescVentilDoneExpenseReport=Consulte aquí la lista de las líneas de informes de gastos y su cuenta contable de honorarios DescValidateMovements=Se prohíbe cualquier modificación o eliminación de escritura, letras y eliminaciones. Todas las entradas para un ejercicio deben validarse; de lo contrario, no será posible cerrar -ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta de contabilidad porque se utiliza Balancing=Balance FicheVentilation=Tarjeta obligatoria GeneralLedgerIsWritten=Las transacciones se escriben en el libro mayor GeneralLedgerSomeRecordWasNotRecorded=Algunas de las transacciones no pueden ser contabilizadas. Si no hay otro mensaje de error, esto es probablemente porque ya estaban en el diario. -ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta contable ChangeBinding=Cambiar la encuadernación Accounted=Contabilizado en el libro mayor ShowTutorial=Tutorial de presentación @@ -180,7 +154,7 @@ AccountingJournals=Diarios/libros de contabilidad AccountingJournal=Diario de contabilidad NewAccountingJournal=Nueva revista de contabilidad AccountingJournalType1=Operaciones misceláneas / varias -AccountingJournalType5=Informe de gastos +AccountingJournalType5=Reporte de gastos AccountingJournalType9=Tiene nuevo ErrorAccountingJournalIsAlreadyUse=Esta revista ya utiliza AccountingAccountForSalesTaxAreDefinedInto=Nota: la cuenta de contabilidad para el impuesto a las ventas se define en el menú %s - %s @@ -229,4 +203,3 @@ ToBind=Líneas para atar UseMenuToSetBindindManualy=Líneas aún no enlazadas, use el menú %s para hacer el enlace manualmente. WarningReportNotReliable=Advertencia, este informe no se basa en el Libro mayor, por lo que no contiene la transacción modificada manualmente en el Libro mayor. Si su publicación está actualizada, la vista de contabilidad es más precisa. ExpenseReportJournal=Diario del informe de gastos -InventoryJournal=Diario de inventario diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index 08c988ea83e..46393f0ddb1 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -69,7 +69,6 @@ NextValueForDeposit=Siguiente valor NextValueForReplacements=Siguiente valor (sustituciones) NoMaxSizeByPHPLimit=Nota: No hay límite en tu configuración de PHP MaxSizeForUploadedFiles=Tamaño máximo de los archivos cargados (0 para rechazar cualquier subida) -UseCaptchaCode=Utilizar código gráfico (CAPTCHA) en la página de inicio de sesión AntiVirusCommand= Ruta completa al comando antivirus AntiVirusCommandExample=Ejemplo para ClamAv Daemon (requiere clamav-daemon): /usr/bin/clamdscan
    Ejemplo para ClamWin (muy muy lento): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Más parámetros de línea de comandos @@ -336,7 +335,6 @@ ValueOverwrittenByUserSetup=Advertencia: este valor puede ser sobrescrito por la BarcodeInitForThirdparties=Inicio masivo de código de barras para terceros. BarcodeInitForProductsOrServices=Inicio de código de barras masivo o restablecimiento de productos o servicios CurrentlyNWithoutBarCode=Actualmente, tiene %s registrado en %s %s sin código de barras definido. -InitEmptyBarCode=init valor para el siguiente %s registro vacío EraseAllCurrentBarCode=Borrar todos los valores de códigos de barras actuales ConfirmEraseAllCurrentBarCode=¿Está seguro de que desea borrar todos los valores de códigos de barras actuales? AllBarcodeReset=Todos los valores de código de barras se han eliminado @@ -365,7 +363,6 @@ PageUrlForDefaultValuesCreate=Ejemplo:
    Para el formulario para crear un nue PageUrlForDefaultValuesList=
    Ejemplo:
    Para la página que enumera a terceros, es %s .
    Para la URL de los módulos externos instalados en el directorio personalizado, no incluya la "personalización /" por lo que use una ruta como mymodule / mypagelist.php y no custom / mymodule / mypagelist.php.
    Si desea un valor predeterminado solo si url tiene algún parámetro, puede usar %s < / fuerte> AlsoDefaultValuesAreEffectiveForActionCreate=También tenga en cuenta que la sobrescritura de los valores predeterminados para la creación de formularios funciona solo para páginas que se diseñaron correctamente (así que con el parámetro action=create or presend...) EnableDefaultValues=Habilitar la personalización de los valores por defecto. -EnableOverwriteTranslation=Habilitar el uso de traducción sobrescrita GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código. Para cambiar este valor, debe editarlo desde Home-Setup-translation. WarningSettingSortOrder=Advertencia: establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de la lista si no hay campo. Si experimenta este error, haga clic aquí para eliminar el orden predeterminado y restaurar el comportamiento predeterminado. ProductDocumentTemplates=Plantillas para generar documento de producto @@ -452,9 +449,7 @@ Module2300Desc=Gestión de trabajos programados (alias cron o chrono table) Module2400Name=Eventos / Agenda Module2400Desc=Eventos de pista. Registre eventos automáticos con fines de seguimiento o registre eventos o reuniones manuales. Este es el módulo principal para una buena gestión de relaciones con clientes o proveedores. Module2500Desc=Sistema de gestión de documentos / gestión electrónica de contenidos. Organización automática de sus documentos generados o almacenados. Compártelos cuando lo necesites. -Module2600Name=API / Servicios Web (servidor SOAP) Module2600Desc=Habilitar el servidor SOAP de Dolibarr que servicios servicios API -Module2610Name=API / Servicios Web (servidor REST) Module2610Desc=Habilitar el servidor REST de Dolibarr que servicios servicios API Module2660Name=Servicios Web de llamadas (cliente SOAP) Module2660Desc=Habilite el cliente de servicios web de Dolibarr (puede usarse para enviar datos / solicitudes a servidores externos. Actualmente solo se admiten pedidos de compra). @@ -587,8 +582,7 @@ Permission282=Crear / modificar contactos Permission291=Leer tarifas Permission292=Establecer permisos en las tarifas Permission293=Modificar las tarifas del cliente. -Permission300=Leer codigos de barras -Permission301=Crear / modificar códigos de barras +Permission304=Crear / modificar códigos de barras Permission311=Leer servicios Permission312=Asignar servicio / suscripción al contrato. Permission331=Leer marcadores @@ -755,7 +749,6 @@ LabelOnDocuments=Etiqueta en los documentos LabelOrTranslationKey=Etiqueta o clave de traducción NbOfDays=Numero de dias AtEndOfMonth=Al final del mes -CurrentNext=Actual / Siguiente Offset=Compensar Upgrade=Actualizar / Mejorar MenuUpgrade=Actualizar / Ampliar @@ -1179,7 +1172,6 @@ DetailId=Identificación del menú DetailMenuHandler=Manejador de menús donde mostrar el nuevo menú DetailMenuModule=Nombre del módulo DetailTitre=Etiqueta de menú o código de etiqueta para la traducción -DetailUrl=URL donde el menú te envía (enlace URL absoluto o enlace externo con http: //) DetailEnabled=Condición para mostrar o no la entrada DetailRight=Condición para mostrar menús grises no autorizados DetailLangs=Nombre de archivo Lang para la traducción de código de etiqueta @@ -1256,7 +1248,6 @@ SuppliersCommandModelMuscadet=Plantilla completa de la orden de compra (antigua SuppliersInvoiceModel=Plantilla completa de factura de proveedor SuppliersInvoiceNumberingModel=Facturas de proveedores de numeración de modelos. IfSetToYesDontForgetPermission=Si se establece en un valor no nulo, no olvide proporcionar permisos a grupos o usuarios permitidos para la segunda aprobación -PathToGeoIPMaxmindCountryDataFile=Ruta al archivo que contiene Maxmind ip a la traducción del país.
    Ejemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb NoteOnPathLocation=Tenga en cuenta que su IP es un archivo de datos de un país debe estar en un directorio que su PHP puede leer. YouCanDownloadFreeDatFileTo=Puede descargar una versión de demostración gratuita del archivo de país Maxmind GeoIP en %s. YouCanDownloadAdvancedDatFileTo=También puede descargar una versión más completa, con actualizaciones, del archivo de país Maxmind GeoIP en %s. @@ -1308,7 +1299,6 @@ LinkColor=Color de los enlaces PressF5AfterChangingThis=Presione CTRL + F5 en el teclado o la memoria del navegador después de cambiar este valor para tenerlo efectivo NotSupportedByAllThemes=Trabajar con temas centrales, no puede ser apoyado por temas externos TopMenuBackgroundColor=Color de fondo para el menú superior -TopMenuDisableImages=Ocultar imágenes en el menú principal LeftMenuBackgroundColor=Color de fondo para el menú de la izquierda BackgroundTableTitleColor=Color de fondo para la línea de título de la tabla BackgroundTableLineOddColor=Color de fondo para líneas de tabla de impares @@ -1336,6 +1326,7 @@ MailToSendShipment=Envios MailToSendSupplierRequestForQuotation=Solicitud de presupuesto / cotización MailToSendSupplierOrder=Ordenes de compra MailToSendSupplierInvoice=Facturas del vendedor / proveedor +MailToExpenseReport=Reporte de gastos MailToThirdparty=Clientes / Proveedores ByDefaultInList=Mostrar de forma predeterminada en la vista de lista YouUseLastStableVersion=Utiliza la última versión estable @@ -1395,13 +1386,12 @@ EmailcollectorOperations=Operaciones a realizar por coleccionista. MaxEmailCollectPerCollect=Número máximo de correos electrónicos recopilados por recopilación EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación NoNewEmailToProcess=No hay correo electrónico nuevo (filtros coincidentes) para procesar -XEmailsDoneYActionsDone=%s correos electrónicos calificados, %s correos electrónicos procesados con éxito (para %s registro/acciones realizadas) CodeLastResult=Último código de resultado NbOfEmailsInInbox=Número de correos electrónicos en el directorio de origen LoadThirdPartyFromName=Cargue la búsqueda de terceros en %s (solo carga) LoadThirdPartyFromNameOrCreate=Cargue la búsqueda de terceros en %s (crear si no se encuentra) ECMAutoTree=Mostrar arbol ECM automatico -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHoursDesc=Ingrese aquí los horarios regulares de su empresa. ResourceSetup=Configuración del módulo de recursos UseSearchToSelectResource=Use un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). diff --git a/htdocs/langs/es_EC/commercial.lang b/htdocs/langs/es_EC/commercial.lang index 85789b47b39..ee890081cfd 100644 --- a/htdocs/langs/es_EC/commercial.lang +++ b/htdocs/langs/es_EC/commercial.lang @@ -60,6 +60,4 @@ ActionAC_OTH_AUTOShort=Automático Stats=Estadísticas de ventas StatusProsp=Estado del prospecto DraftPropals=Proyecto de propuestas comerciales -WelcomeOnOnlineSignaturePage=Bienvenido a la página para aceptar propuestas comerciales de %s -ThisScreenAllowsYouToSignDocFrom=Esta pantalla le permite aceptar y firmar, o rechazar, una propuesta de cotización/comercial SignatureProposalRef=Firma de cotización/propuesta comercial %s. diff --git a/htdocs/langs/es_EC/companies.lang b/htdocs/langs/es_EC/companies.lang index 55ff9fca4a6..dbad8245274 100644 --- a/htdocs/langs/es_EC/companies.lang +++ b/htdocs/langs/es_EC/companies.lang @@ -44,7 +44,6 @@ StateCode=Código de estado / provincia StateShort=Provincia Region-State=Región - Provincia CountryCode=Código de país -CountryId=ID del país Call=Llamada PhonePerso=Teléfono Personal PhoneMobile=Celular @@ -92,8 +91,6 @@ ProfId3BR=IM (Inscripción Municipal) ProfId3CH=ID Prof. 1 (Federal number) ProfId4CH=ID Prof. 2 (Commercial Record number) ProfId1CL=ID Prof. 1 (R.U.T.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId3ShortCM=Decree of creation ProfId1CO=ID Prof. 1 (R.U.T.) ProfId1DE=ID Prof. 1 (USt.-IdNr) ProfId2DE=ID Prof. 2 (USt.-Nr) diff --git a/htdocs/langs/es_EC/compta.lang b/htdocs/langs/es_EC/compta.lang index 9ea4d2f1ac1..b858dee0247 100644 --- a/htdocs/langs/es_EC/compta.lang +++ b/htdocs/langs/es_EC/compta.lang @@ -22,6 +22,7 @@ PaymentsNotLinkedToUser=Pagos no vinculados a ningún usuario Profit=Ganacias Debit=Débito Credit=Crédito +AccountingDebit=Débito Piece=Documentos Contables AmountHTVATRealReceived=Neto recaudado AmountHTVATRealPaid=Neto pagado @@ -170,12 +171,7 @@ CalculationRuleDescSupplier=Según el proveedor, elija el método apropiado para TurnoverPerProductInCommitmentAccountingNotRelevant=El informe de la facturación obtenida por producto no está disponible. Este informe solo está disponible para facturación facturada. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=El informe de Facturación recaudada por tasa de impuesto a la venta IVA no está disponible. Este informe solo está disponible para facturación facturada. AccountancyJournal=Diario de código de contabilidad -ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta de contabilidad de forma predeterminada para el IVA sobre las ventas (se usa si no está definido en la configuración del diccionario de IVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta de contabilidad de forma predeterminada para el IVA en compras (se usa si no está definido en la configuración del diccionario de IVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Cuenta contable por defecto para el pago del IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta de contabilidad utilizada para terceros clientes ACCOUNTING_ACCOUNT_CUSTOMER_Desc=La cuenta contable dedicada definida en la tarjeta de clientes/proveedores se utilizará solo para la contabilidad de Libro Mayor Auxiliar. Este se usará para el Libro Mayor General y como valor predeterminado de la contabilidad del Libro Mayor Auxiliar si no se define una cuenta de cuenta del cliente dedicada a un clientes/proveedores. -ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta de contabilidad utilizada para clientes/proveedores ACCOUNTING_ACCOUNT_SUPPLIER_Desc=La cuenta de contabilidad dedicada definida en la tarjeta de un tercero se usará solo para la contabilidad del Libro auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del libro auxiliar si no se define la cuenta de contabilidad del proveedor dedicada en un tercero. ConfirmCloneTax=Confirmar clonar un impuesto social/fiscal. CloneTaxForNextMonth=Clonarlo para el próximo mes diff --git a/htdocs/langs/es_EC/datapolicy.lang b/htdocs/langs/es_EC/datapolicy.lang new file mode 100644 index 00000000000..960b06beb61 --- /dev/null +++ b/htdocs/langs/es_EC/datapolicy.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - datapolicy +DATAPOLICY_TIERS_PROSPECT =Prospecto +DATAPOLICY_CONTACT_PROSPECT =Prospecto diff --git a/htdocs/langs/es_EC/ecm.lang b/htdocs/langs/es_EC/ecm.lang index 7f8d9157910..0fea60981c8 100644 --- a/htdocs/langs/es_EC/ecm.lang +++ b/htdocs/langs/es_EC/ecm.lang @@ -5,7 +5,6 @@ ECMCreationDate=Fecha de creación ECMNbOfFilesInSubDir=Número de archivos en subdirectorios ECMArea=Área de DMS/ECM ECMAreaDesc=El área SGD/GCE (Sistema de Gestión de Documentos / Gestión de Contenido Electrónico) le permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr. -ECMAreaDesc2=* Los directorios automáticos se rellenan automáticamente al agregar documentos desde la tarjeta de un elemento.
    * Los directorios manuales se pueden utilizar para guardar documentos no vinculados a un elemento en particular. ECMSectionWasRemoved=Se ha eliminado el directorio %s. ECMSectionWasCreated=Directorio %s ha sido creado. ECMSearchByKeywords=Búsqueda por palabras clave diff --git a/htdocs/langs/es_EC/errors.lang b/htdocs/langs/es_EC/errors.lang index 16ec651f406..ae701afac8d 100644 --- a/htdocs/langs/es_EC/errors.lang +++ b/htdocs/langs/es_EC/errors.lang @@ -40,7 +40,6 @@ ErrorDirAlreadyExists=Ya existe un directorio con este nombre. ErrorPartialFile=Archivo no recibido completamente por el servidor. ErrorNoTmpDir=La dirección temporal%s no existe. ErrorUploadBlockedByAddon=Carga bloqueada por un complemento PHP/Apache. -ErrorFileSizeTooLarge=El tamaño del archivo es demasiado grande. ErrorSizeTooLongForIntType=Tamaño demasiado largo para el tipo int (dígitos%s máximo) ErrorSizeTooLongForVarcharType=Tamaño demasiado largo para el tipo de cadena (%s caracteres máximo) ErrorNoValueForSelectType=Por favor, rellene el valor de la lista de selección @@ -65,7 +64,6 @@ ErrorWrongValueForField=El campo %s: '%s' no coincide con la expre ErrorFieldValueNotIn=El campo %s: '%s' no es un valor que se encuentra en el campo %s de %s ErrorFieldRefNotIn=Campo %s: '%s' no es una %s referencia existente ErrorFileIsInfectedWithAVirus=El programa antivirus no pudo validar el archivo (el archivo podría estar infectado por un virus) -ErrorSpecialCharNotAllowedForField=No se permiten caracteres especiales para el campo "%s" ErrorNumRefModel=Existe una referencia en la base de datos (%s) y no es compatible con esta regla de numeración. Elimine la referencia de registro o renombrado para activar este módulo. ErrorQtyTooLowForThisSupplier=Cantidad demasiado baja para este proveedor o ningún precio definido en este producto para este proveedor ErrorOrdersNotCreatedQtyTooLow=Algunos pedidos no se han creado debido a cantidades demasiado bajas @@ -188,7 +186,6 @@ ErrorOnlyOneFieldForGroupByIsPossible=Solo es posible 1 campo para 'Agrupar por' ErrorTooManyDifferentValueForSelectedGroupBy=Se encontraron demasiados valores diferentes (más de %s) para el campo '%s', por lo que no podemos usarlo para los gráficos. El campo 'Agrupar por' ha sido eliminado. ¿Puede ser que quieras usarlo como un eje X? WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Su parámetro PHP upload_max_filesize (%s) es más alto que el parámetro PHP post_max_size (%s). Esta no es una configuración consistente. WarningPasswordSetWithNoAccount=Se ha establecido una contraseña para este miembro. Sin embargo, no se creó ninguna cuenta de usuario. Por lo tanto, esta contraseña está almacenada pero no puede utilizarse para iniciar sesión en Dolibarr. Puede ser utilizado por un módulo / interfaz externo, pero si no necesita definir ningún inicio de sesión ni contraseña para un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" desde la instalación del módulo miembro. Si necesita administrar un inicio de sesión pero no necesita ninguna contraseña, puede mantener este campo vacío para evitar esta advertencia. Nota: El correo electrónico también se puede utilizar como inicio de sesión si el miembro está vinculado a un usuario. -WarningMandatorySetupNotComplete=Haga clic aquí para configurar los parámetros obligatorios. WarningEnableYourModulesApplications=Haga clic aquí para habilitar sus módulos y aplicaciones. WarningSafeModeOnCheckExecDir=Advertencia, la opción PHP safe_mode está activada para que el comando se almacene dentro de un directorio declarado por el parámetro php safe_mode_exec_dir . WarningBookmarkAlreadyExists=Ya existe un marcador con este título o este destino (URL). diff --git a/htdocs/langs/es_EC/externalsite.lang b/htdocs/langs/es_EC/externalsite.lang deleted file mode 100644 index 2ebc56b30e5..00000000000 --- a/htdocs/langs/es_EC/externalsite.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configurar enlace a un sitio web externo -ExternalSiteModuleNotComplete=El módulo SitioExterno no estaba configurado correctamente. -ExampleMyMenuEntry=Mi entrada en el menú diff --git a/htdocs/langs/es_EC/ftp.lang b/htdocs/langs/es_EC/ftp.lang deleted file mode 100644 index 6a3ad20d130..00000000000 --- a/htdocs/langs/es_EC/ftp.lang +++ /dev/null @@ -1,12 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -NewFTPClient=Nueva configuración de conexión FTP -FTPArea=Área de FTP -FTPAreaDesc=Esta pantalla muestra una vista de un servidor FTP. -SetupOfFTPClientModuleNotComplete=La configuración del módulo de cliente FTP parece estar incompleta -FTPFeatureNotSupportedByYourPHP=Su PHP no admite funciones FTP -FailedToConnectToFTPServer=Error al conectarse al servidor FTP (servidor%s, puerto%s) -FailedToConnectToFTPServerWithCredentials=Error al iniciar sesión en el servidor FTP con nombre de usuario/contraseña definidos -FTPFailedToRemoveFile=Error al eliminar el archivo %s. -FTPFailedToRemoveDir=Error al eliminar el directorio %s: verifique los permisos y que el directorio esté vacío. -ChooseAFTPEntryIntoMenu=Elija un sitio FTP del menú ... -FailedToGetFile=Error al obtener los archivos %s diff --git a/htdocs/langs/es_EC/hrm.lang b/htdocs/langs/es_EC/hrm.lang index e98d3dd3801..4e07ce80a63 100644 --- a/htdocs/langs/es_EC/hrm.lang +++ b/htdocs/langs/es_EC/hrm.lang @@ -2,4 +2,5 @@ HRM_EMAIL_EXTERNAL_SERVICE=Correo electrónico para prevenir el servicio externo de RRHH ConfirmDeleteEstablishment=¿Estás seguro de que deseas eliminar este establecimiento? OpenEtablishment=Establecimiento abierto -DictionaryDepartment=RRHH - Lista de departamento +HrmSetup=Configuración del módulo de RRHH (Recursos Humanos) +JobPosition=Trabajo diff --git a/htdocs/langs/es_EC/install.lang b/htdocs/langs/es_EC/install.lang index a7eaf5622a3..f50b423e828 100644 --- a/htdocs/langs/es_EC/install.lang +++ b/htdocs/langs/es_EC/install.lang @@ -22,7 +22,6 @@ ErrorGoBackAndCorrectParameters=Regresa y revisa/corrige los parámetros. ErrorWrongValueForParameter=Es posible que haya escrito un valor incorrecto para el parámetro '%s'. ErrorFailedToConnectToDatabase=Error al conectarse a la base de datos '%s'. ErrorDatabaseVersionTooLow=Versión de base de datos (%s) demasiado antigua. Se requiere la versión%s o superior. -ErrorPHPVersionTooLow=La versión de PHP es demasiado antigua. Se requiere la versión%s. ErrorConnectedButDatabaseNotFound=La conexión al servidor fue exitosa pero la base de datos '%s' no se encontró IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de datos no existe, vuelva atrás y marque la opción "Crear base de datos". IfDatabaseExistsGoBackAndCheckCreate=Si la base de datos ya existe, vuelva atrás y desactive la opción "Crear base de datos". @@ -38,7 +37,6 @@ ServerAddressDescription=Nombre o dirección IP para el servidor de base de dato ServerPortDescription=Puerto del servidor de base de datos. Manténgase vacío si es desconocido. DatabasePrefix=Prefijo de tabla de base de datos AdminLogin=Cuenta de usuario para el propietario de la base de datos Dolibarr. -PasswordAgain=Vuelva a escribir la confirmación de la contraseña AdminPassword=Contraseña para el propietario de la base de datos de Dolibarr. CreateDatabase=Crear base de datos CreateUser=Cree una cuenta de usuario o otorgue permiso de cuenta de usuario en la base de datos de Dolibarr diff --git a/htdocs/langs/es_EC/loan.lang b/htdocs/langs/es_EC/loan.lang index cc9ea776587..8a93714635f 100644 --- a/htdocs/langs/es_EC/loan.lang +++ b/htdocs/langs/es_EC/loan.lang @@ -17,7 +17,4 @@ AddLoan=Crear préstamo FinancialCommitment=Compromiso financiero InterestAmount=Interes ConfigLoan=Configuración del módulo préstamo -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital de cuenta contable por defecto -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Interés de la cuenta contable por defecto -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Seguro de cuenta contable por defecto CreateCalcSchedule=Edita el compromiso financiero diff --git a/htdocs/langs/es_EC/mailmanspip.lang b/htdocs/langs/es_EC/mailmanspip.lang index 6b8fb02ecff..dc6431a176e 100644 --- a/htdocs/langs/es_EC/mailmanspip.lang +++ b/htdocs/langs/es_EC/mailmanspip.lang @@ -6,7 +6,6 @@ MailmanCreationSuccess=La prueba de suscripción se ejecutó correctamente MailmanDeletionSuccess=La prueba de cancelación de la suscripción se ejecutó correctamente SynchroMailManEnabled=Se realizará una actualización Mailman SynchroSpipEnabled=Se realizará una actualización de Spip -DescADHERENT_MAILMAN_ADMINPW=Contraseña del administrador de Mailman DescADHERENT_MAILMAN_URL=URL para las suscripciones de Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para cancelación de suscripciones de Mailman DescADHERENT_MAILMAN_LISTS=Lista(s) para la inscripción automática de nuevos miembros (separados por una coma) diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang index 7256f58d602..380410b1ba1 100644 --- a/htdocs/langs/es_EC/main.lang +++ b/htdocs/langs/es_EC/main.lang @@ -131,7 +131,6 @@ Choose=Escoger Resize=Cambiar el tamaño ResizeOrCrop=Cambiar el tamaño o el cultivo NoUserGroupDefined=No se ha definido ningún grupo de usuarios -PasswordRetype=Reescribe tu contraseña NoteSomeFeaturesAreDisabled=Tenga en cuenta que una gran cantidad de funciones/módulos están deshabilitados en esta demostración. Parameters=parámetros PersonalValue=Valor personal @@ -554,3 +553,5 @@ ContactDefault_propal=Propuesta ContactDefault_supplier_proposal=Propuesta de proveedor ContactAddedAutomatically=Contacto agregado de roles de terceros de contacto ClientTZ=Zona horaria del cliente +Terminate=Terminar +Terminated=Terminado diff --git a/htdocs/langs/es_EC/members.lang b/htdocs/langs/es_EC/members.lang index 3cc65105296..30baa83214c 100644 --- a/htdocs/langs/es_EC/members.lang +++ b/htdocs/langs/es_EC/members.lang @@ -16,7 +16,6 @@ MembersListResiliated=Lista de miembros terminados MembersListQualified=Lista de miembros calificados MenuMembersToValidate=Miembros del draft MenuMembersResiliated=Miembros terminados -MemberId=Identificación de miembro MemberTypeId=ID del tipo de miembro MemberTypeLabel=Etiqueta del tipo de miembro MemberStatusDraft=Proyecto (necesita ser validado) @@ -60,7 +59,6 @@ YourMembershipWasCanceled=Su membresía fue cancelada CardContent=Contenido de su tarjeta de miembro ThisIsContentOfYourMembershipRequestWasReceived=Queremos informarle que se recibió su solicitud de membresía.

    ThisIsContentOfYourMembershipWasValidated=Queremos informarle que su membresía fue validada con la siguiente información:

    -ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarle que su nueva suscripción fue guardada.

    ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su suscripción está a punto de caducar o que ya caducó (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperamos que lo renueves.

    ThisIsContentOfYourCard=Este es un resumen de la información que tenemos sobre usted. Por favor contáctenos si algo es incorrecto.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto del correo electrónico de notificación recibido en caso de autoinscripción de un invitado @@ -94,7 +92,6 @@ MenuMembersStats=Estadística NewMemberbyWeb=Nuevo miembro añadido. Esperando aprobacion NewMemberForm=Formulario para nuevos miembros TurnoverOrBudget=Facturación (para una empresa) o Presupuesto (para una fundación) -MEMBER_NEWFORM_PAYONLINE=Ir a la página de pago en línea integrada MembersStatisticsByProperties=Estadísticas de miembros por naturaleza NoEmailSentToMember=No se envió ningún correo electrónico al miembro EmailSentToMember=Correo electrónico enviado a un miembro en %s diff --git a/htdocs/langs/es_EC/mrp.lang b/htdocs/langs/es_EC/mrp.lang index 136c443a5d8..19bc4e5ab16 100644 --- a/htdocs/langs/es_EC/mrp.lang +++ b/htdocs/langs/es_EC/mrp.lang @@ -4,8 +4,6 @@ MenuBOM=Facturas de material LatestBOMModified=Últimas listas de materiales modificados %s LatestMOModified=Últimas órdenes de fabricación %s modificadas Bom=Facturas de material -ListOfBOMs=Lista de listas de materiales - BOM -ListOfManufacturingOrders=Lista de pedidos de fabricación BOMsNumberingModules=Plantillas de numeración BOM BOMsModelModule=Plantillas de documentos BOM MOsNumberingModules=Plantillas de numeración MO diff --git a/htdocs/langs/es_EC/oauth.lang b/htdocs/langs/es_EC/oauth.lang index bcc7139dc28..39d92c63928 100644 --- a/htdocs/langs/es_EC/oauth.lang +++ b/htdocs/langs/es_EC/oauth.lang @@ -7,10 +7,8 @@ IsTokenGenerated=¿El token se genero? NoAccessToken=Ningún token de acceso guardado en la base de datos local HasAccessToken=Se generó un token y se guardó en la base de datos local ToCheckDeleteTokenOnProvider=Haga clic aquí para comprobar/eliminar la autorización guardada por%s Proveedor de OAuth -RequestAccess=Haga clic aquí para solicitar/renovar el acceso y reciba un nuevo token para guardar DeleteAccess=Haga clic aquí para eliminar token UseTheFollowingUrlAsRedirectURI=Use la siguiente URL como URI de redireccionamiento al crear sus credenciales con su proveedor de OAuth: -ListOfSupportedOauthProviders=Ingrese las credenciales proporcionadas por su proveedor de OAuth2. Aquí solo se enumeran los proveedores de OAuth2 compatibles. Estos servicios pueden ser utilizados por otros módulos que necesitan autenticación OAuth2. SeePreviousTab=Ver pestaña anterior OAuthIDSecret=OAuth ID y secreto TOKEN_REFRESH=Actualizar Token Presente @@ -18,6 +16,4 @@ TOKEN_EXPIRE_AT=El token expira en TOKEN_DELETE=Eliminar el token guardado OAUTH_GOOGLE_NAME=Servicio de Google OAuth OAUTH_GOOGLE_ID=ID de Google de OAuth -OAUTH_GOOGLE_DESC=Vaya a esta página y luego a "Credenciales" para crear credenciales de OAuth OAUTH_GITHUB_NAME=Servicio OAuth GitHub -OAUTH_GITHUB_DESC=Vaya a esta página y luego "Registre una nueva aplicación" para crear credenciales de OAuth diff --git a/htdocs/langs/es_EC/projects.lang b/htdocs/langs/es_EC/projects.lang index c2b71f5ef81..7a2e1f5293f 100644 --- a/htdocs/langs/es_EC/projects.lang +++ b/htdocs/langs/es_EC/projects.lang @@ -73,7 +73,6 @@ TaskHasChild=La tarea tiene subcategorias NotOwnerOfProject=No propietario de este proyecto privado ConfirmValidateProject=¿Está seguro de que desea validar este proyecto? ConfirmCloseAProject=¿Estás seguro de que quieres cerrar este proyecto? -AlsoCloseAProject=También cierre el proyecto (manténgalo abierto si todavía necesita seguir las tareas de producción en él) ReOpenAProject=Proyecto abierto ConfirmReOpenAProject=¿Está seguro de que desea volver a abrir este proyecto? ActionsOnProject=Eventos en el proyecto @@ -153,7 +152,6 @@ OpportunityPonderatedAmount=Cantidad ponderada de clientes potenciales OpportunityPonderatedAmountDesc=Cantidad de clientes potenciales ponderada con probabilidad OppStatusQUAL=Calificación OppStatusPROPO=Propuesta -AllowToLinkFromOtherCompany=Permitir vincular proyecto desde otra empresa

    Valores admitidos:
    - Mantener vacío: Puede vincular cualquier proyecto de la empresa (predeterminado)
    - "todos": puede vincular cualquier proyecto, incluso proyectos de otras empresas
    - Una lista de identificadores de terceros separados por comas: puede vincular todos los proyectos de estos terceros (Ejemplo: 123,4795,53)
    LatestProjects=Últimos %s proyectos LatestModifiedProjects=Últimos proyectos modificados %s NoAssignedTasks=No se encontraron tareas asignadas (asigne proyectos / tareas al usuario actual desde el cuadro de selección superior para ingresar el tiempo) @@ -165,7 +163,6 @@ NewTaskRefSuggested=Referencia de tarea ya utilizada, se requiere una nueva refe TimeSpentInvoiced=Tiempo gastado facturado TimeSpentForIntervention=Tiempo usado TimeSpentForInvoice=Tiempo usado -ServiceToUseOnLines=Servicio a utilizar en líneas InvoiceGeneratedFromTimeSpent=La factura %s se ha generado a partir del tiempo dedicado al proyecto ProjectBillTimeDescription=Verifique si ingresa la hoja de tiempo en las tareas del proyecto Y planea generar factura(s) de la hoja de tiempo para facturar al cliente del proyecto (no verifique si planea crear una factura que no se base en las hojas de tiempo ingresadas). Nota: Para generar la factura, vaya a la pestaña 'Tiempo empleado' del proyecto y seleccione las líneas para incluir. UsageBillTimeShort=Uso: Tiempo a facturar diff --git a/htdocs/langs/es_EC/propal.lang b/htdocs/langs/es_EC/propal.lang index 79174992708..8b38cd39f9f 100644 --- a/htdocs/langs/es_EC/propal.lang +++ b/htdocs/langs/es_EC/propal.lang @@ -5,7 +5,7 @@ ProposalShort=Propuesta ProposalsDraft=Proyecto de anuncios comerciales ProposalsOpened=Abrir propuestas comerciales CommercialProposal=Propuesta comercial -PdfCommercialProposalTitle=Propuesta comercial +PdfCommercialProposalTitle=Propuesta ProposalCard=Tarjeta de propuesta NewProp=Nueva propuesta comercial NewPropal=Nueva propuesta @@ -59,9 +59,10 @@ TypeContact_propal_internal_SALESREPFOLL=Propuestas de seguimiento representativ TypeContact_propal_external_BILLING=Contacto de factura de cliente TypeContact_propal_external_CUSTOMER=Contacto con el cliente TypeContact_propal_external_SHIPPING=Contacto con el cliente para la entrega -DocModelAzurDescription=Un modelo de propuesta completo (implementación anterior de la plantilla Cyan) -DocModelCyanDescription=Un modelo de propuesta completo +DefaultModelPropalClosed=Plantilla predeterminada al cerrar una propuesta empresarial (no facturada) DefaultModelPropalCreate=Creación de modelo predeterminada DefaultModelPropalToBill=Plantilla predeterminada al cerrar una propuesta empresarial (a facturar) -DefaultModelPropalClosed=Plantilla predeterminada al cerrar una propuesta empresarial (no facturada) +DocModelAzurDescription=Un modelo de propuesta completo (implementación anterior de la plantilla Cyan) +DocModelCyanDescription=Un modelo de propuesta completo +NoSign=Desperdicios ProposalsStatisticsSuppliers=Estadísticas de propuestas de proveedores diff --git a/htdocs/langs/es_EC/salaries.lang b/htdocs/langs/es_EC/salaries.lang index ac9132ea254..08cb40fde6f 100644 --- a/htdocs/langs/es_EC/salaries.lang +++ b/htdocs/langs/es_EC/salaries.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Contabilidad utilizada para cliente/proveedor usuarios -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=La cuenta de contabilidad dedicada definida en la tarjeta de usuario se usará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de usuario dedicada en el usuario. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cuenta de contabilidad por defecto para pagos de sueldos Salary=Sueldo Salaries=Sueldos diff --git a/htdocs/langs/es_EC/stocks.lang b/htdocs/langs/es_EC/stocks.lang index 4c33e5346ad..a7df10ebb98 100644 --- a/htdocs/langs/es_EC/stocks.lang +++ b/htdocs/langs/es_EC/stocks.lang @@ -119,7 +119,6 @@ ProductStockWarehouseCreated=Límite de inventario para alerta e inventario ópt ProductStockWarehouseUpdated=Límite de inventario para alerta e inventario óptimo deseado correctamente actualizado ProductStockWarehouseDeleted=Límite de inventario para alerta e inventario óptimo deseado correctamente eliminado AddNewProductStockWarehouse=Establecer un nuevo límite para la alerta y el inventario óptimo deseado -AddStockLocationLine=Disminuir la cantidad a continuación, haga clic para agregar otro almacén para este producto InventoryDate=Fecha del inventario inventorySetup =Configuración del inventario inventoryWritePermission=Actualizar los inventarios @@ -151,4 +150,5 @@ StockIncrease=Aumento de existencias StockDecrease=Disminución de existencias InventoryForASpecificWarehouse=Inventario para un almacén específico InventoryForASpecificProduct=Inventario para un producto específico +ToStart=Comienzo InventoryStartedShort=Empezado diff --git a/htdocs/langs/es_EC/ticket.lang b/htdocs/langs/es_EC/ticket.lang index 657aba67728..470034bd186 100644 --- a/htdocs/langs/es_EC/ticket.lang +++ b/htdocs/langs/es_EC/ticket.lang @@ -52,8 +52,6 @@ TicketHistory=Historial de tickets TicketAssigned=Ticket ahora está asignado TicketChangeCategory=Cambiar código analítico TicketChangeSeverity=Cambiar severidad -TicketAddMessage=Añade un mensaje -AddMessage=Añade un mensaje MessageSuccessfullyAdded=Ticket agregado TicketMessageSuccessfullyAdded=Mensaje agregado con éxito TicketMessagesList=Lista de mensajes @@ -65,9 +63,7 @@ TicketDurationAutoInfos=Duración calculada automáticamente a partir de interve SendMessageByEmail=Enviar mensaje por correo electrónico ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatario está vacío. No se envio el correo electrónico TicketMessageMailIntroHelp=Este texto se agrega solo al comienzo del correo electrónico y no se guardará. -TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. -TicketMessageMailSignatureLabelAdmin=Firma del correo electrónico de respuesta -TicketMessageMailSignatureHelpAdmin=Este texto se inserta después del mensaje de respuesta. +TicketMessageMailFooterHelpAdmin=Este texto se inserta después del mensaje de respuesta. TicketMessageHelp=Solo este texto se guardará en la lista de mensajes en la tarjeta de tickets. TicketTimeToRead=Tiempo transcurrido antes de leer TicketContacts=Boleto de contactos @@ -97,7 +93,6 @@ TicketNewEmailBodyCustomer=Este es un correo electrónico automático para confi TicketNewEmailBodyInfosTicket=Información para monitorear el boleto TicketEmailPleaseDoNotReplyToThisEmail=¡Por favor no responda directamente a este correo! Usa el enlace para responder a la interfaz. TicketPublicInfoCreateTicket=Este formulario le permite registrar un ticket de soporte en nuestro sistema de gestión. -TicketPublicPleaseBeAccuratelyDescribe=Por favor, describa con precisión el problema. Proporcionar la mayor cantidad de información posible que nos permita recibirla de forma incorrecta. TicketPublicMsgViewLogIn=Ingrese el ID de seguimiento de tickets TicketTrackId=ID de seguimiento público OneOfTicketTrackId=Uno de su ID de seguimiento diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 806acd62556..23feaa1f9f3 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Países no incluidos en la CEE CountriesInEECExceptMe=Países en la CEE excepto %s CountriesExceptMe=Todos los países excepto %s AccountantFiles=Exportar documentos de origen -ExportAccountingSourceDocHelp=Con esta herramienta, puede exportar los eventos de origen (lista en CSV y PDF) que se utilizan para generar su contabilidad. +ExportAccountingSourceDocHelp=Con esta herramienta, puede buscar y exportar los eventos de origen que se utilizan para generar su contabilidad.
    El archivo ZIP exportado contendrá las listas de artículos solicitados en CSV, así como sus archivos adjuntos en su formato original (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Para exportar sus diarios, use la entrada de menú %s - %s. +ExportAccountingProjectHelp=Especifique un proyecto si necesita un informe contable solo para un proyecto específico. Los informes de gastos y los pagos de préstamos no se incluyen en los informes de proyectos. VueByAccountAccounting=Ver por cuenta contable VueBySubAccountAccounting=Ver por subcuenta contable @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Cuenta contable para proveedores no definida e MainAccountForUsersNotDefined=Cuenta contable para usuarios no definida en la configuración MainAccountForVatPaymentNotDefined=Cuenta contable para IVA no definida en la configuración MainAccountForSubscriptionPaymentNotDefined=Cuenta contable para subscripciones no definida en la configuración +UserAccountNotDefined=Cuenta contable para usuarios no definida en la configuración AccountancyArea=Área contabilidad AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Desactivar transacciones directas en cuenta bancaria ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilitar exportación de borradores al diario ACCOUNTANCY_COMBO_FOR_AUX=Habilite la lista combinada para la cuenta subsidiaria (puede ser lento si tiene muchos terceros, rompa la capacidad de buscar en una parte del valor) ACCOUNTING_DATE_START_BINDING=Defina una fecha para comenzar a vincular y transferir en contabilidad. Por debajo de esta fecha, las transacciones no se transferirán a contabilidad. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=En la transferencia de contabilidad, seleccione el período que se muestra de forma predeterminada +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=En la transferencia de contabilidad, ¿cuál es el período seleccionado por defecto? -ACCOUNTING_SELL_JOURNAL=Diario de ventas -ACCOUNTING_PURCHASE_JOURNAL=Diario de compras -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de operaciones diversas +ACCOUNTING_SELL_JOURNAL=Diario de ventas (ventas y devoluciones) +ACCOUNTING_PURCHASE_JOURNAL=Diario de compras (compras y devoluciones) +ACCOUNTING_BANK_JOURNAL=Libro de caja (recibos y desembolsos) ACCOUNTING_EXPENSEREPORT_JOURNAL=Informe de gastos diario -ACCOUNTING_SOCIAL_JOURNAL=Diario social +ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario general ACCOUNTING_HAS_NEW_JOURNAL=Tiene un nuevo diario +ACCOUNTING_INVENTORY_JOURNAL=Diario de inventario +ACCOUNTING_SOCIAL_JOURNAL=Diario social ACCOUNTING_RESULT_PROFIT=Cuenta contable de resultados (Ganancias) ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (Pérdidas) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Diario de cierre -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta de caja +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Cuenta de transferencia bancaria de transición -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta operaciones pendientes de asignar -DONATION_ACCOUNTINGACCOUNT=Cuenta contable para registrar donaciones -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar subscripciones +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Cuenta contable por defecto para registrar el anticipo del cliente -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Almacene la cuenta del cliente como cuenta individual en el libro mayor auxiliar para las líneas de anticipos (si está deshabilitada, la cuenta individual para las líneas de anticipos permanecerá vacía) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Almacene la cuenta del proveedor como cuenta individual en el libro mayor auxiliar para las líneas de anticipos (si está deshabilitada, la cuenta individual para las líneas de anticipos permanecerá vacía) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable predeterminada para los productos comprados (usada si no se define en el producto) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los productos comprados en CEE (usada si no se define en el producto) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos comprados e importados fuera de la CEE (usada si no se define en el producto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable predeterminada para los productos vendidos (usada si no se define en el producto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable predeterminada para los productos vendidos en la CEE (usada si no se define en el producto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable predeterminada para los productos vendidos fuera de la CEE (usada si no se define en el producto) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable predeterminada para los servicios comprados (usada si no se define en el servicio) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios comprados en CEE (usada si no se define en el servicio) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios comprados e importados fuera de la CEE (usada si no se define en el servicio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta contable predeterminada para los servicios vendidos (usada si no se define en el servicio) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cuenta contable predeterminada para los servicios vendidos en la CEE (usada si no se define en el servicio) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cuenta contable predeterminada para los servicios vendidos fuera de la CEE (usada si no se define en el producto) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tipo de documento Docdate=Fecha @@ -211,7 +217,7 @@ Codejournal=Diario JournalLabel=Etiqueta del diario NumPiece=Apunte TransactionNumShort=Núm. transacción -AccountingCategory=Grupo personalizado +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Agrupar por cuenta del Libro Mayor GroupBySubAccountAccounting=Agrupar por cuenta de libro mayor auxiliar AccountingAccountGroupsDesc=Puedes definir aquí algunos grupos de cuentas contables. Se usarán para informes de contabilidad personalizados. @@ -265,13 +271,13 @@ Reconcilable=Reconciliable TotalVente=Total facturación antes de impuestos TotalMarge=Total margen ventas -DescVentilCustomer=Consulte aquí la lista de líneas de facturas a clientes enlazadas (o no) a una cuenta contable de producto -DescVentilMore=En la mayoría de los casos, si utiliza productos o servicios predefinidos y establece la cuenta contable en la ficha del producto/servicio, la aplicación será capaz de hacer toda la contabilización entre las líneas de la factura y la cuenta contable de su plan general contable, con un clic en el botón "%s", Si no se ha establecido la cuenta contable en la ficha del producto/servicio o si todavía tiene algunas líneas no contabilizadas a alguna cuenta, tendrá que hacer una contabilización manual desde el menú "%s". -DescVentilDoneCustomer=Consulte aquí las líneas de facturas a clientes y las cuentas contables de sus productos -DescVentilTodoCustomer=Contabilizar líneas de factura aún no contabilizadas con una cuenta contable de producto -ChangeAccount=Cambie la cuenta del producto/servicio para las líneas seleccionadas a la cuenta: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consulte aquí la lista de líneas de facturas de proveedor vinculadas (o no) a una cuenta contable del producto (solo se pueden ver registros que no se han transferido a contabilidad) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consulte aquí las líneas de facturas de proveedores y sus cuentas contables DescVentilTodoExpenseReport=Contabilizar líneas de informes de gastos aún no contabilizadas con una cuenta contable de gastos DescVentilExpenseReport=Consulte aquí la lista de líneas de informes de gastos (o no) a una cuenta contable de gastos @@ -279,31 +285,31 @@ DescVentilExpenseReportMore=Si configura la cuentas contables de los tipos de in DescVentilDoneExpenseReport=Consulte aquí las líneas de informes de gastos y sus cuentas contables Closure=Cierre anual -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validar y bloquear registro... +DescClosure=Consulta aquí el número de movimientos por mes aún no validados y bloqueados +OverviewOfMovementsNotValidated=Resumen de movimientos no validados y bloqueados +AllMovementsWereRecordedAsValidated=Todos los movimientos fueron registrados como validados y bloqueados. +NotAllMovementsCouldBeRecordedAsValidated=No todos los movimientos se pudieron registrar como validados y bloqueados +ValidateMovements=Validar y bloquear movimientos... DescValidateMovements=Se prohíbe cualquier modificación o eliminación de registros. Todas las entradas para un ejercicio deben validarse; de lo contrario, no será posible cerrarlo ValidateHistory=Vincular automáticamente AutomaticBindingDone=Vinculaciones automáticas realizadas (%s) - La vinculación automática no es posible para algunos registros (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movimiento no equilibrado correctamente. Débito = %s & Crédito = %s Balancing=Saldo FicheVentilation=Ficha contable GeneralLedgerIsWritten=Transacciones escritas en el Libro Mayor GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones no pueden contabilizarse. Si no hay otro mensaje de error, es probable que ya estén contabilizadas. NoNewRecordSaved=No más registros para transferir -ListOfProductsWithoutAccountingAccount=Listado de productos sin cuentas contables +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Cambiar la unión Accounted=Contabilizada en el Libro Mayor NotYetAccounted=Aún no contabilizado en el libro mayor ShowTutorial=Ver Tutorial NotReconciled=No reconciliado WarningRecordWithoutSubledgerAreExcluded=Advertencia, todas las líneas sin cuenta de libro mayor auxiliar definida se filtran y excluyen de esta vista -AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +AccountRemovedFromCurrentChartOfAccount=Cuenta contable que no existe en el plan de cuentas actual ## Admin BindingOptions=Opciones de enlace @@ -319,9 +325,10 @@ AccountingJournalType1=Operaciones varias AccountingJournalType2=Ventas AccountingJournalType3=Compras AccountingJournalType4=Banco -AccountingJournalType5=Informes de gastos +AccountingJournalType5=Gastos AccountingJournalType8=Inventario AccountingJournalType9=Haber +GenerationOfAccountingEntries=Generación de asientos contables ErrorAccountingJournalIsAlreadyUse=Este diario ya esta siendo usado AccountingAccountForSalesTaxAreDefinedInto=Nota: La cuenta contable del IVA a las ventas se define en el menú %s - %s NumberOfAccountancyEntries=Número de entradas @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Número de movimientos ACCOUNTING_DISABLE_BINDING_ON_SALES=Deshabilitar la vinculación y la transferencia en la contabilidad de ventas (las facturas de los clientes no se tendrán en cuenta en la contabilidad) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deshabilitar la vinculación y transferencia en contabilidad en compras (las facturas de proveedores no se tendrán en cuenta en la contabilidad) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Desactive la vinculación y transferencia en contabilidad en informes de gastos (los informes de gastos no se tendrán en cuenta en la contabilidad) +ACCOUNTING_ENABLE_LETTERING=Habilitar la función de letras en la contabilidad. ## Export +NotExportLettering=No exportar las letras al generar el archivo. NotifiedExportDate=Marcar las líneas exportadas como Exportadas (para modificar una línea, deberá eliminar toda la transacción y volver a transferirla a contabilidad) -NotifiedValidationDate=Validar y bloquear las entradas exportadas (mismo efecto que la función "Cierre", no será posible DEFINITIVAMENTE la modificación y eliminación de las líneas) +NotifiedValidationDate=Valide y bloquee las entradas exportadas (mismo efecto que la función "%s", la modificación y eliminación de las líneas DEFINITIVAMENTE no será posible) DateValidationAndLock=Validación de fecha y bloqueo ConfirmExportFile=¿Confirmación de la generación del archivo de exportación contable? ExportDraftJournal=Exportar libro borrador @@ -398,19 +407,24 @@ Calculated=Calculado Formula=Fórmula ## Reconcile -Unlettering=Unreconcile -AccountancyNoLetteringModified=No reconcile modified -AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified -AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified -AccountancyNoUnletteringModified=No unreconcile modified -AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified -AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified +LetteringAuto=Conciliar automáticamente +LetteringManual=Conciliar manual +Unlettering=No reconciliar +UnletteringAuto=No reconciliar en automático +UnletteringManual=No reconciliar en manual +AccountancyNoLetteringModified=Sin reconciliación modificada +AccountancyOneLetteringModifiedSuccessfully=Una conciliación modificada con éxito +AccountancyLetteringModifiedSuccessfully=%s reconciliación modificada con éxito +AccountancyNoUnletteringModified=Sin modificación no reconciliada +AccountancyOneUnletteringModifiedSuccessfully=Una no reconciliada modificada con éxito +AccountancyUnletteringModifiedSuccessfully=%s no reconciliado modificado con éxito ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Confirmación masiva de anulación de conciliación automática +ConfirmMassUnletteringManual=Confirmación de no conciliación manual masiva +ConfirmMassUnletteringQuestion=¿Está seguro de que desea anular la conciliación de los %sregistros seleccionados? ConfirmMassDeleteBookkeepingWriting=Confirmación de borrado en lote -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeleteBookkeepingWritingQuestion=Esto eliminará la transacción de la contabilidad (se eliminarán todas las líneas relacionadas con la misma transacción). ¿Está seguro de que desea eliminar los %s registros seleccionados? ## Error SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos necesarios de la configuración no están realizados, por favor complételos. @@ -424,9 +438,10 @@ Binded=Líneas contabilizadas ToBind=Líneas a contabilizar UseMenuToSetBindindManualy=No es posible autodetectar, utilice el menú %s para realizar el apunte manualmente SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Lo sentimos, este módulo no es compatible con la función experimental de facturas de situación. -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code -AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 -AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +AccountancyErrorMismatchLetterCode=Discrepancia en el código de conciliación +AccountancyErrorMismatchBalanceAmount=El saldo (%s) no es igual a 0 +AccountancyErrorLetteringBookkeeping=Se han producido errores con respecto a las transacciones: %s +ErrorAccountNumberAlreadyExists=El número de contabilidad %s ya existe ## Import ImportAccountingEntries=Entradas contables @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Código multidivisa (Idevise) DateExport=Fecha de exportación WarningReportNotReliable=Advertencia, este informe no se basa en el Libro mayor, por lo que no contiene modificaciones manualmente modificadas en el Libro mayor.. Si su diario está actualizado, la vista contable es más precisa. ExpenseReportJournal=Informe de gastos diario -InventoryJournal=Inventario NAccounts=%s cuentas diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 93b8193acf6..495988c089b 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Colación de clientes WarningModuleNotActive=El módulo %s debe ser activado WarningOnlyPermissionOfActivatedModules=Atención, solamente los permisos relacionados con los módulos activados se indican aquí. Puede activar los otros módulos en la página Configuración->Módulos DolibarrSetup=Instalación/Actualización de Dolibarr -InternalUser=Usuario interno -ExternalUser=Usuario externo InternalUsers=Usuarios internos ExternalUsers=Usuarios externos UserInterface=Interfaz de usuario @@ -109,7 +107,7 @@ NextValueForReplacements=Próximo valor (rectificativas) MustBeLowerThanPHPLimit=Nota: Su PHP limita el tamaño máximo de archivos a subir a %s %s, cualquiera que sea el valor de este parámetro NoMaxSizeByPHPLimit=Ninguna limitación interna en su servidor PHP MaxSizeForUploadedFiles=Tamaño máximo de los documentos a subir (0 para prohibir la subida) -UseCaptchaCode=Utilización de código gráfico (CAPTCHA) en la página de inicio de sesión +UseCaptchaCode=Use código gráfico (CAPTCHA) en la página de inicio de sesión y algunas páginas públicas AntiVirusCommand=Ruta completa hacia el comando del antivirus AntiVirusCommandExample=Ejemplo para ClamAv Daemon (requiere clamav-daemon): /usr/bin/clamdscan
    Ejemplo para ClamWin (muy lento): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe\n  AntiVirusParam= Parámetros complementarios en la línea de comandos @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Nombre host o ip del servidor SMTP (Por defecto en php.ini MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Puerto del servidor SMTP (No definido en PHP en sistemas de tipo Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nombre servidor o ip del servidor SMTP (No definido en PHP en sistemas de tipo Unix) MAIN_MAIL_EMAIL_FROM=E-mail del remitente para e-mails automáticos (por defecto en php.ini: %s) +EMailHelpMsgSPFDKIM=Para evitar que los correos electrónicos de Dolibarr se clasifiquen como spam, asegúrese de que el servidor esté autorizado para enviar correos electrónicos desde esta dirección mediante la configuración SPF y DKIM. MAIN_MAIL_ERRORS_TO=E-mail a usar para los e-mails de error enviados (campo 'Errors-To' en los emails enviados) MAIN_MAIL_AUTOCOPY_TO= Enviar copia oculta (Bcc) de todos los emails enviados a MAIN_DISABLE_ALL_MAILS=Deshabilitar todos los envíos de e-mail (para propósitos de prueba o demostraciones) @@ -439,8 +438,10 @@ Unique=Único Boolean=Boolean (un checkbox) ExtrafieldPhone = Teléfono ExtrafieldPrice = Precio +ExtrafieldPriceWithCurrency=Precio con moneda ExtrafieldMail = Correo ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Lista de selección ExtrafieldSelectList = Lista desde una tabla ExtrafieldSeparator=Separador (No es un campo) @@ -477,7 +478,7 @@ InstalledInto=Instalado en el directorio %s BarcodeInitForThirdparties=Inicialización masiva de códigos de barras para terceros BarcodeInitForProductsOrServices=Inicio masivo de código de barras para productos o servicios CurrentlyNWithoutBarCode=Actualmente tiene %s registros de %s %s sin código de barras definido. -InitEmptyBarCode=Iniciar valor para los %s registros vacíos +InitEmptyBarCode=Valor inicial para los códigos de barras vacíos %s EraseAllCurrentBarCode=Eliminar todos los valores actuales de códigos de barras ConfirmEraseAllCurrentBarCode=¿Está seguro de querer eliminar todos los registros actuales de códigos de barras? AllBarcodeReset=Todos los códigos de barras han sido eliminados @@ -501,10 +502,11 @@ WarningPHPMail=ADVERTENCIA: La configuración para enviar correos electrónicos WarningPHPMailA=- El uso del servidor del proveedor de servicios de correo electrónico aumenta la confiabilidad de su correo electrónico, por lo que aumenta la entrega sin ser marcado como SPAM WarningPHPMailB=- Algunos proveedores de servicios de correo electrónico (como Yahoo) no le permiten enviar un correo electrónico desde otro servidor que no sea su propio servidor. Su configuración actual utiliza el servidor de la aplicación para enviar correo electrónico y no el servidor de su proveedor de correo electrónico, por lo que algunos destinatarios (el que es compatible con el protocolo restrictivo DMARC) le preguntarán a su proveedor de correo electrónico si pueden aceptar su correo electrónico y algunos proveedores de correo electrónico. (como Yahoo) puede responder "no" porque el servidor no es de ellos, por lo que es posible que algunos de sus correos electrónicos enviados no sean aceptados para la entrega (tenga cuidado también con la cuota de envío de su proveedor de correo electrónico). WarningPHPMailC=- El uso del servidor SMTP de su propio proveedor de servicios de correo electrónico para enviar correos electrónicos también es interesante, por lo que todos los correos electrónicos enviados desde la aplicación también se guardarán en el directorio "Enviados" de su buzón. -WarningPHPMailD=Además, por lo tanto, se recomienda cambiar el método de envío de correos electrónicos al valor "SMTP". Si realmente desea mantener el método "PHP" predeterminado para enviar correos electrónicos, simplemente ignore esta advertencia o elimínela configurando la constante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP a 1 en Inicio - Configuración - Otras Configuraciones. +WarningPHPMailD=Por lo tanto, se recomienda cambiar el método de envío de correos electrónicos al valor "SMTP". +WarningPHPMailDbis=Si realmente desea mantener el método "PHP" predeterminado para enviar correos electrónicos, simplemente ignore esta advertencia o elimínela haciendo %sclic aquí%s. WarningPHPMail2=Si su proveedor SMTP de correo electrónico necesita restringir el cliente de correo electrónico a algunas direcciones IP (muy raro), esta es la dirección IP de su aplicación ERP CRM: %s. WarningPHPMailSPF=Si el nombre de dominio en su dirección de correo electrónico del remitente está protegido por un registro SPF (pregunte a su registrador de nombre de dominio), debe agregar las siguientes IP en el registro SPF del DNS de su dominio: %s. -ActualMailSPFRecordFound=Registro de SPF actual encontrado: %s +ActualMailSPFRecordFound=Registro SPF real encontrado (para el correo electrónico %s): %s ClickToShowDescription=Clic para ver la descripción DependsOn=Este módulo necesita el módulo(s) RequiredBy=Este módulo es requerido por los módulos @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Ejemplo:
    Para el formulario para crear u PageUrlForDefaultValuesList=
    Ejemplo:
    Para la página que lista a terceros, es %s .
    Para la URL de los módulos externos instalados en el directorio custom, no incluya "custom/" así que use la ruta como mymodule/mypagelist.php y no custom/mymodule/mypagelist.php.
    Si desea un valor predeterminado solo si url tiene algún parámetro, puede usar %s AlsoDefaultValuesAreEffectiveForActionCreate=También tenga en cuenta que la sobrescritura de valores predeterminados para la creación de formularios funciona solo para las páginas que se diseñaron correctamente (por lo tanto, con el parámetro action = create o presend ...) EnableDefaultValues=Habilitar el uso de valores predeterminados personalizados -EnableOverwriteTranslation=Habilitar el uso de la traducción sobrescrita +EnableOverwriteTranslation=Permitir la personalización de las traducciones GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código. Para cambiar este valor, debe editarlo desde Inicio-Configuración-Traducción. WarningSettingSortOrder=Atención, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si un campo es un campo desconocido. Si experimenta un error de este tipo, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado. Field=Campo @@ -645,9 +647,9 @@ Module2400Name=Eventos/Agenda Module2400Desc=Sigue los eventos o citas. Registra eventos automáticos a fin de realizar seguimiento o registra eventos manuales o reuniones. Este es el módulo más importante para una buena gestión de relaciones con clientes o proveedores. Module2500Name=GED / SGD Module2500Desc=Sistema de Gestión de Documentos / Gestión Electrónica de Contenidos. Organización automática de sus documentos generados o almacenados. Compártalos cuando lo necesite. -Module2600Name=API/Servicios web (servidor SOAP) +Module2600Name=API / Servicios web (servidor SOAP) Module2600Desc=Habilitar los servicios Dolibarr SOAP proporcionando servicios API -Module2610Name=API/Servicios web (servidor REST) +Module2610Name=API / Servicios web (servidor REST) Module2610Desc=Habilitar los servicios Dolibarr REST proporcionando servicios API Module2660Name=Llamada Webservices (Cliente SOAP) Module2660Desc=Activa los servicios web de Dolibarr (puede ser utilizado para grabar datos/solicitudes de servidores externos. De momento solo se soporta pedidos a proveedor) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Añade funciones para gestionar Incoterm Module63000Name=Recursos Module63000Desc=Gestiona recursos (impresoras, automóviles, salas, ...) para compartirlos en los eventos +Module94160Name=Recepciones Permission11=Consultar facturas Permission12=Crear/Modificar facturas Permission13=Desvalidar facturas de cliente @@ -714,13 +717,14 @@ Permission27=Eliminar presupuestos Permission28=Exportar los presupuestos Permission31=Consultar productos Permission32=Crear/modificar productos +Permission33=Leer precios de productos Permission34=Eliminar productos Permission36=Ver/gestionar los productos ocultos Permission38=Exportar productos Permission39=Ignorar precio mínimo -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). +Permission42=Crear/modificar proyectos (proyectos compartidos y proyectos de los que soy contacto). También puede asignar usuarios a proyectos y tareas. +Permission44=Eliminar proyectos (proyectos compartidos y proyectos de los que soy contacto) Permission45=Exportar proyectos Permission61=Consultar intervenciones Permission62=Crear/modificar intervenciones @@ -739,6 +743,7 @@ Permission79=Crear/modificar cotizaciones Permission81=Consultar pedidos de clientes Permission82=Crear/modificar pedidos de clientes Permission84=Validar pedidos de clientes +Permission85=Generar los documentos de órdenes de venta. Permission86=Enviar pedidos de clientes Permission87=Cerrar pedidos de clientes Permission88=Anular pedidos de clientes @@ -766,10 +771,10 @@ Permission122=Crear/modificar empresas Permission125=Eliminar empresas Permission126=Exportar las empresas Permission130=Crear/modificar información de pago de terceros -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=Leer todos los proyectos y tareas (así como los proyectos privados para los que no soy un contacto) +Permission142=Crear/modificar todos los proyectos y tareas (así como los proyectos privados para los que no soy un contacto) +Permission144=Eliminar todos los proyectos y tareas (así como los proyectos privados no soy un contacto) +Permission145=Puede ingresar el tiempo consumido, para mí o mi jerarquía, en tareas asignadas (Hoja de tiempo) Permission146=Consultar proveedores Permission147=Consultar estadísticas Permission151=Leer domiciliaciones @@ -840,9 +845,9 @@ Permission286=Exportar contactos Permission291=Consultar tarifas Permission292=Definir permisos sobre las tarifas Permission293=Modificar tarifas de clientes -Permission300=Leer códigos de barras -Permission301=Crear/modificar códigos de barras -Permission302=Eliminar códigos de barras +Permission301=Generar hojas de códigos de barras +Permission304=Crear/modificar códigos de barras +Permission305=Eliminar códigos de barras Permission311=Consultar servicios Permission312=Asignar servicios/suscripciones a un contrato Permission331=Consultar marcadores @@ -874,6 +879,7 @@ Permission525=Calculadora de crédito Permission527=Exportar crédito Permission531=Consultar servicios Permission532=Crear/modificar servicios +Permission533=Leer precios de servicios Permission534=Eliminar servicios Permission536=Ver/gestionar los servicios ocultos Permission538=Exportar servicios @@ -884,9 +890,9 @@ Permission564=Registrar Abonos/Devoluciones de transferencias bancarias Permission601=Leer etiquetas autoadhesivas Permission602=Crear/modificar etiquetas autoadhesivas Permission609=Eliminar etiquetas autoadhesivas -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants +Permission611=Leer atributos de variantes +Permission612=Crear/Actualizar atributos de variantes +Permission613=Eliminar atributos de variantes Permission650=Leer lista de materiales Permission651=Crear/Actualizar lista de material Permission652=Eliminar lista de material @@ -968,13 +974,14 @@ Permission3301=Generar nuevos módulos Permission4001=Leer habilidad/trabajo/puesto Permission4002=Crear/modificar habilidad/trabajo/puesto Permission4003=Eliminar habilidad/trabajo/puesto -Permission4020=Leer evaluaciones -Permission4021=Crear/modificar tu evaluación -Permission4022=Validar evaluación -Permission4023=Eliminar evaluación -Permission4030=Ver menú de comparación -Permission4031=Read personal information -Permission4032=Write personal information +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validar evaluación +Permission4025=Eliminar evaluación +Permission4028=Ver menú de comparación +Permission4031=Leer información personal +Permission4032=escribir información personal +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Leer contenido del sitio web Permission10002=Crear modificar contenido del sitio web (contenido html y javascript) Permission10003=Crear/modificar contenido del sitio web (código php dinámico). Peligroso, debe reservarse a desarrolladores restringidos. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Tipo de disposición de activos TypeOfUnit=Tipo de unidad SetupSaved=Configuración guardada SetupNotSaved=Configuración no guardada +OAuthServiceConfirmDeleteTitle=Eliminar entrada de OAuth +OAuthServiceConfirmDeleteMessage=¿Está seguro de que desea eliminar esta entrada de OAuth? Todos los tokens existentes para él también se eliminarán. +ErrorInEntryDeletion=Error en la eliminación de la entrada +EntryDeleted=Entrada eliminada BackToModuleList=Volver al listado de módulos BackToDictionaryList=Volver al listado de diccionarios TypeOfRevenueStamp=Tipos de sellos fiscales @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Valor de una constante de configuración ConstantIsOn=La opción %s está activada NbOfDays=Nº de días AtEndOfMonth=A fin de mes -CurrentNext=Actual/Siguiente +CurrentNext=Un día dado en el mes Offset=Decálogo AlwaysActive=Siempre activo Upgrade=Actualización @@ -1235,11 +1246,13 @@ BrowserName=Nombre del navegador BrowserOS=S.O. del navegador ListOfSecurityEvents=Listado de eventos de seguridad Dolibarr SecurityEventsPurged=Eventos de seguridad purgados +TrackableSecurityEvents=Eventos de seguridad rastreables LogEventDesc=Activa el registro de eventos de seguridad aquí. Los administradores pueden ver su contenido a través de menú %s-%s.Atención, esta característica puede consumir una gran cantidad de datos en la base de datos. AreaForAdminOnly=Los parámetros de configuración solamente pueden ser tratados por usuarios administrador SystemInfoDesc=La información del sistema es información técnica accesible solamente en solo lectura a los administradores. SystemAreaForAdminOnly=Esta área está disponible solo para usuarios administradores. Los permisos de usuario de Dolibarr no pueden cambiar esta restricción. CompanyFundationDesc=Edite la información de su empresa/organización. Haga clic en el botón "%s" en la parte inferior de la página cuando haya terminado. +MoreNetworksAvailableWithModule=Es posible que haya más redes sociales disponibles habilitando el módulo "Redes sociales". AccountantDesc=Si tiene un contable/asesor externo, puede editar aquí su información. AccountantFileNumber=Código contable DisplayDesc=Aquí se pueden modificar los parámetros que afectan al aspecto y la presentación de la aplicación. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar el comando desde YourPHPDoesNotHaveSSLSupport=Funciones SSL no disponibles en su PHP DownloadMoreSkins=Más temas para descargar SimpleNumRefModelDesc=Devuelve el número de referencia en el formato %syymm-nnnn donde aa es el año, mm es el mes y nnnn es un número secuencial que se incrementa automáticamente sin reinicio. +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Devuelve el número de referencia en el formato %syymm-nnnn donde aa es el año, mm es el mes y nnnn es un número secuencial que se incrementa automáticamente sin reinicio. SimpleNumRefNoDateModelDesc=Devuelve el número de referencia en el formato %s-nnnn donde nnnn es un número secuencial que se incrementa automáticamente sin reinicio ShowProfIdInAddress=Mostrar el identificador profesional en las direcciones ShowVATIntaInAddress=Ocultar el identificador IVA Intracomunitario en las direcciones @@ -1346,7 +1361,7 @@ TransKeyWithoutOriginalValue=Forzó una nueva traducción para la clave de tradu TitleNumberOfActivatedModules=Módulos activados TotalNumberOfActivatedModules=Módulos activados: %s / %s YouMustEnableOneModule=Debe activar al menos un módulo. -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +YouMustEnableTranslationOverwriteBefore=Primero debe habilitar la sobrescritura de traducción para poder reemplazar una traducción ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP YesInSummer=Sí en verano OnlyFollowingModulesAreOpenedToExternalUsers=Atención: únicamente los módulos siguientes están disponibles a usuarios externos (sea cual sea el permiso de dichos usuarios) y solo si se otorgan permisos:
    @@ -1376,7 +1391,7 @@ GetBarCode=Obtener código de barras NumberingModules=Módulos de numeración DocumentModules=Modelos de documento ##### Module password generation -PasswordGenerationStandard=Devuelve una contraseña generada de acuerdo con el algoritmo interno de Dolibarr: %s caracteres que contienen números y caracteres en minúsculas mezclados. +PasswordGenerationStandard=Devuelve una contraseña generada según el algoritmo interno de Dolibarr: %s caracteres que contienen números y caracteres compartidos. PasswordGenerationNone=No sugerir ninguna contraseña generada. La contraseña debe ser escrita manualmente. PasswordGenerationPerso=Devuelve una contraseña según la configuración definida. SetupPerso=Obteniendo tu configuración @@ -1428,8 +1443,12 @@ WatermarkOnDraftInvoices=Marca de agua en las facturas borrador (en caso de esta PaymentsNumberingModule=Numeración de modelos de pagos SuppliersPayment=Pagos a proveedor SupplierPaymentSetup=Configuración de pagos a proveedores -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceCheckPosteriorDate=Verifique la fecha de fabricación antes de la validación +InvoiceCheckPosteriorDateHelp=Estará prohibida la validación de una factura si su fecha es anterior a la fecha de la última factura del mismo tipo. +InvoiceOptionCategoryOfOperations=Mostrar la mención "categoría de operaciones" en la factura. +InvoiceOptionCategoryOfOperationsHelp=Dependiendo de la situación, la mención aparecerá en la forma:
    - Categoría de operaciones: Entrega de bienes
    - Categoría de operaciones: Prestación de servicios
    - Categoría de operaciones: Mixtas - Entrega de bienes y prestación de servicios +InvoiceOptionCategoryOfOperationsYes1=Sí, debajo del bloque de direcciones +InvoiceOptionCategoryOfOperationsYes2=Sí, en la esquina inferior izquierda ##### Proposals ##### PropalSetup=Configuración del módulo Presupuestos ProposalsNumberingModules=Módulos de numeración de presupuestos @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Marca de agua en contratos (nada si está vacía) ##### Members ##### MembersSetup=Configuración del módulo Asociaciones MemberMainOptions=Opciones principales +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Gestionar un login para cada miembro AdherentMailRequired=E-Mail obligatorio para crear un miembro nuevo MemberSendInformationByMailByDefault=Casilla de verificación para enviar el correo de confirmación (validación ó nueva cotización) a los miembros es por defecto "sí" MemberCreateAnExternalUserForSubscriptionValidated=Crear un nuevo usuario externo para cada nueva suscripción de miembro validada -VisitorCanChooseItsPaymentMode=El visitante puede elegir entre los modos de pago disponibles +VisitorCanChooseItsPaymentMode=El visitante puede elegir entre cualquier modo de pago disponible MEMBER_REMINDER_EMAIL=Habilitar recordatorio de eventos por e-mail de suscripciones expiradas. Nota: El módulo %s debe estar habilitado y configurado correctamente para que el recordatorio se envíe. MembersDocModules=Plantillas de documentos para documentos generados a partir de registros de miembros ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Activar editor avanzado para : FCKeditorForNotePublic=Creación/edición WYSIWIG del campo "notas públicas" de elementos FCKeditorForNotePrivate=Creación/edición WYSIWIG del campo "notas privadas" de elementos FCKeditorForCompany=Creación/edición WYSIWIG en el campo de la descripción de los elementos (excepto en productos/servicios) -FCKeditorForProduct=Creación/edición WYSIWIG en el campo de la descripción de los productos/servicios -FCKeditorForProductDetails=creación/edición WYSIWIG de líneas de detalle de productos para todas las entidades (presupuestos, pedidos, facturas, etc...). Advertencia: El uso de esta opción para este caso es seriamente no recomendada, ya que puede crear problemas con caracteres especiales y formato de página al crear archivos PDF. +FCKeditorForProductDetails=Creación/edición WYSIWIG de descripción de productos o líneas para objetos (líneas de propuestas, pedidos, facturas, etc...). +FCKeditorForProductDetails2=Advertencia: No se recomienda seriamente utilizar esta opción para este caso, ya que puede crear problemas con los caracteres especiales y el formato de página al crear archivos PDF. FCKeditorForMailing= Creación/edición WYSIWIG de los E-Mails (Utilidades->E-Mailings) FCKeditorForUserSignature=Creación/edición WYSIWIG de la firma de usuarios FCKeditorForMail=Creación/edición WYSIWIG de todos los e-mails ( excepto Utilidades->E-Mailings) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Nombre del gestor de menús DetailMenuModule=Nombre del módulo si la entrada del menú es resultante de un módulo DetailType=Tipo de menú (superior o izquierdo) DetailTitre=Etiqueta de menú -DetailUrl=URL de la página hacia la cual el menú apunta +DetailUrl=URL donde te envía el menú (enlace URL relativo o enlace externo con https://) DetailEnabled=Condición de mostrar o no DetailRight=Condición de visualización completa o restringida DetailLangs=Archivo .lang para la traducción del título @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=El decremento de stock en TPV no es c CashDeskYouDidNotDisableStockDecease=Usted no ha desactivado el decremento de stock al hacer una venta desde TPV. Así que se requiere un almacén. CashDeskForceDecreaseStockLabel=El decremento de stock para productos con lote ha sido forzada. CashDeskForceDecreaseStockDesc=Disminuir primero por las fechas más antiguas de caducidad y venta. -CashDeskReaderKeyCodeForEnter=Código de clave para "Enter" definido en el lector de código de barras (Ejemplo: 13) +CashDeskReaderKeyCodeForEnter=Código ASCII clave para "Enter" definido en el lector de código de barras (Ejemplo: 13) ##### Bookmark ##### BookmarkSetup=Configuración del módulo Marcadores BookmarkDesc=Este módulo le permite gestionar los enlaces y accesos directos. También permite añadir cualquier página de Dolibarr o enlace web en el menú de acceso rápido de la izquierda. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de proveedor IfSetToYesDontForgetPermission=Si se establece en un valor no nulo, no olvide proporcionar permisos a los grupos o usuarios permitidos para la segunda aprobación ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuración del módulo GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Ruta al archivo que contiene la ip Maxmind ip a la traducción del país.
    Ejemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Ruta al archivo que contiene Maxmind ip a la traducción del país NoteOnPathLocation=Tenga en cuenta que este archivo debe estar en un directorio accesible desde su PHP (Compruebe la configuración de open_basedir de su PHP y los permisos de archivo/directorios). YouCanDownloadFreeDatFileTo=Puede descargarse una versión demo gratuita del archivo de países Maxmind GeoIP en la dirección %s. YouCanDownloadAdvancedDatFileTo=También puede descargarse una versión más completa del archivo de países Maxmind GeoIP en la dirección %s. @@ -1922,12 +1942,13 @@ BackupDumpWizard=Asistente para compilar el archivo de volcado de la base de dat BackupZipWizard=Asistente para construir el directorio de archivo de documentos SomethingMakeInstallFromWebNotPossible=No es posible la instalación de módulos externos desde la interfaz web por la siguiente razón: SomethingMakeInstallFromWebNotPossible2=Por esta razón, explicaremos aquí los pasos del proceso de actualización manual que puede realizar un usuario con privilegios. +InstallModuleFromWebHasBeenDisabledContactUs=La instalación o desarrollo de módulos externos o sitios web dinámicos, desde la aplicación, está actualmente bloqueada por motivos de seguridad. Póngase en contacto con nosotros si necesita habilitar esta función. InstallModuleFromWebHasBeenDisabledByFile=La instalación de módulos externos desde la aplicación se encuentra desactivada por el administrador. Debe requerirle que elimine el archivo %s para habilitar esta funcionalidad. ConfFileMustContainCustom=La instalación o construcción de un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio %s. Para que este directorio sea procesado por Dolibarr, debe configurar su conf/conf.php para agregar las 2 líneas de directiva:
    $dolibarr_main_url_root_alt = '/custom';
    $dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Resaltar líneas de los listados cuando el ratón pasa por encima de ellas HighlightLinesColor=Resalta el color de la línea cuando el ratón pasa por encima (usar 'ffffff' para no resaltar) HighlightLinesChecked=Resalta el color de la línea cuando se marca (use 'ffffff' para no resaltar) -UseBorderOnTable=Show left-right borders on tables +UseBorderOnTable=Mostrar bordes de izquierda a derecha en las tablas BtnActionColor=Color del botón de acción TextBtnActionColor=Color del texto del botón de acción TextTitleColor=Color para la página de título @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Para que sea eficaz el cambio, presione CTRL+F5 en el t NotSupportedByAllThemes=Funciona con temas del core, puede no funcionar con temas externos BackgroundColor=Color de fondo TopMenuBackgroundColor=Color de fondo para el Menú superior -TopMenuDisableImages=Ocultar imágenes en el Menú superior +TopMenuDisableImages=Icono o texto en el menú superior LeftMenuBackgroundColor=Color de fondo para el Menú izquierdo BackgroundTableTitleColor=Color de fondo para Tabla título línea BackgroundTableTitleTextColor=Color del texto para la línea de título de la tabla @@ -1949,7 +1970,7 @@ EnterAnyCode=Este campo contiene una referencia para identificar la línea. Ingr Enter0or1=Introduzca 0 ó 1 UnicodeCurrency=Ingrese aquí entre llaves, lista con número de byte que representa el símbolo de moneda. Por ejemplo: para $, introduzca [36] - para Brasil Real R$ [82,36] - para €, introduzca [8364] ColorFormat=El color RGB es en formato HEX, ej: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Nombre del icono en formato:
    - image.png para un archivo de imagen en el directorio del tema actual
    - image.png@module si el archivo está en el directorio /img/ de un módulo
    - fa-xxx para un pictograma FontAwesome fa-xxx
    - fonwtawesome_xxx_fa_color_size para un pictograma FontAwesome fa-xxx (con prefijo, color y tamaño establecidos) PositionIntoComboList=Posición de la línea en listas de combo SellTaxRate=Tasa de IVA RecuperableOnly=Sí para el IVA "Non Perçue Récupérable" usados en algunas provincias en Francia. Mantenga el valor a "No" en los demás casos. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Pedidos a proveedor MailToSendSupplierInvoice=Facturas proveedor MailToSendContract=Contratos MailToSendReception=Recepciones +MailToExpenseReport=Gastos MailToThirdparty=Terceros MailToMember=Miembros MailToUser=Usuarios @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Margen derecho en PDF MAIN_PDF_MARGIN_TOP=Margen superior en PDF MAIN_PDF_MARGIN_BOTTOM=Margen inferior en PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Altura del logo en PDF +DOC_SHOW_FIRST_SALES_REP=Mostrar primer representante de ventas MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Añadir una columna para una imagen en las líneas de presupuesto MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Ancho de la columna si se añade una imagen en las líneas MAIN_PDF_NO_SENDER_FRAME=Ocultar bordes en el marco de la dirección del emisor @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Eliminar caracteres especiales COMPANY_AQUARIUM_CLEAN_REGEX=Filtro Regex para limpiar el valor (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtro de expresiones regulares para limpiar el valor (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicado no permitido +RemoveSpecialWords=Limpiar ciertas palabras al generar subcuentas para clientes o proveedores +RemoveSpecialWordsHelp=Especifique las palabras que se limpiarán antes de calcular la cuenta del cliente o proveedor. Utilizar una ";" entre cada palabra GDPRContact=Oficina Protección de datos (DPO, Políticas de privacidad o contacto GDPR) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Si almacena datos personales en su Sistema de Información, puede nombrar al contacto responsable del Reglamento General de Protección de Datos aquí HelpOnTooltip=Texto de ayuda a mostrar en la ventana emergente HelpOnTooltipDesc=Coloque aquí un texto o una clave de traducción para mostrar información emergente cuando este campo aparezca en un formulario YouCanDeleteFileOnServerWith=Puede eliminar este archivo del servidor con la línea de comandos:
    %s @@ -2059,39 +2084,47 @@ VATIsUsedIsOff=Nota: La opción de usar el IVA se ha establecido como De SwapSenderAndRecipientOnPDF=Intercambiar dirección de remitente y destinatario en documentos PDF FeatureSupportedOnTextFieldsOnly=Advertencia, función compatible solo con campos de texto y listas desplegables. Además, se debe establecer un parámetro de URL action=create o action=edit O el nombre de la página debe terminar con 'new.php' para activar esta función. EmailCollector=Recolector de correo +EmailCollectors=Recolectores de correo electrónico EmailCollectorDescription=Añade una tarea programada y una página de configuración para escanear los buzones de e-mail con regularidad (utilizando el protocolo IMAP) y registra los e-mails recibidos en su aplicación, en el lugar correcto y/o crea registros automáticamente (como leads). NewEmailCollector=Nuevo recolector de e-mail EMailHost=Host del servidor de e-mail IMAP +EMailHostPort=Puerto de correo electrónico servidor IMAP +loginPassword=Contraseña de inicio de sesión +oauthToken=Token Oauth2 +accessType=Tipo de acceso +oauthService=Servicio de autenticación +TokenMustHaveBeenCreated=El módulo OAuth2 debe estar habilitado y se debe haber creado un token oauth2 con los permisos correctos (por ejemplo, alcance "gmail_full" con OAuth para Gmail). MailboxSourceDirectory=Directorio fuente del buzón MailboxTargetDirectory=Directorio de destino del buzón EmailcollectorOperations=Operaciones a realizar por el colector EmailcollectorOperationsDesc=Las operaciones se ejecutan de arriba hacia abajo. MaxEmailCollectPerCollect=Número máximo de e-mails recolectados por la recolección +TestCollectNow=Recopilación de prueba CollectNow=Recoger ahora -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? +ConfirmCloneEmailCollector=¿Está seguro de que desea clonar el recopilador de correo electrónico %s? DateLastCollectResult=Fecha del último intento de recolección DateLastcollectResultOk=Fecha de la última recolección con éxito LastResult=Último resultado -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeaders=No incluya el contenido del encabezado del correo electrónico en el contenido guardado de los correos electrónicos recopilados +EmailCollectorHideMailHeadersHelp=Cuando está habilitado, los encabezados de correo electrónico no se agregan al final del contenido del correo electrónico que se guarda como un evento de agenda. EmailCollectorConfirmCollectTitle=Confirmación recolección e-mail -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorConfirmCollect=¿Desea ejecutar este recopilador ahora? +EmailCollectorExampleToCollectTicketRequestsDesc=Recopile correos electrónicos que coincidan con algunas reglas y cree automáticamente un ticket (el módulo Ticket debe estar habilitado) con la información del correo electrónico. Puede usar este recopilador si brinda algún tipo de soporte por correo electrónico, por lo que su solicitud de boleto se generará automáticamente. Active también Collect_Responses para recopilar las respuestas de su cliente directamente en la vista del ticket (debe responder desde Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Ejemplo de recopilación de la solicitud de ticket (solo el primer mensaje) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Escanee el directorio "Enviado" de su buzón para encontrar correos electrónicos que se enviaron como respuesta a otro correo electrónico directamente desde su software de correo electrónico y no desde Dolibarr. Si se encuentra dicho correo electrónico, el evento de respuesta se registra en Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Ejemplo de recopilación de respuestas de correo electrónico enviadas desde un software de correo electrónico externo +EmailCollectorExampleToCollectDolibarrAnswersDesc=Recopile todos los correos electrónicos que son una respuesta de un correo electrónico enviado desde su aplicación. Un evento (el Módulo Agenda debe estar habilitado) con la respuesta del correo electrónico se registrará en el buen lugar. Por ejemplo, si envías una propuesta comercial, pedido, factura o mensaje de ticket por email desde la aplicación, y el destinatario responde a tu email, el sistema captará automáticamente la respuesta y la añadirá a tu ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Ejemplo recopilando todos los mensajes entrantes como respuestas a mensajes enviados desde Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Recopile correos electrónicos que coincidan con algunas reglas y cree automáticamente un cliente potencial (el Proyecto del módulo debe estar habilitado) con la información del correo electrónico. Puedes usar este recopilador si quieres seguir tu lead usando el módulo Proyecto (1 lead = 1 proyecto), por lo que tus leads se generarán automáticamente. Si el recopilador Collect_Responses también está habilitado, cuando envía un correo electrónico desde sus clientes potenciales, propuestas o cualquier otro objeto, también puede ver las respuestas de sus clientes o socios directamente en la aplicación.
    Nota: Con este ejemplo inicial se genera el título del lead incluyendo el email. Si no se puede encontrar al tercero en la base de datos (nuevo cliente), el cliente potencial se adjuntará al tercero con ID 1. +EmailCollectorExampleToCollectLeads=Ejemplo de recopilación de clientes potenciales +EmailCollectorExampleToCollectJobCandidaturesDesc=Recopile los correos electrónicos que solicitan ofertas de trabajo (el Módulo de Reclutamiento debe estar habilitado). Puede completar este recopilador si desea crear automáticamente una candidatura para una solicitud de trabajo. Nota: Con este ejemplo inicial se genera el título de la candidatura incluyendo el correo electrónico. +EmailCollectorExampleToCollectJobCandidatures=Ejemplo de recogida de candidaturas de trabajo recibidas por correo electrónico NoNewEmailToProcess=No hay e-mails nuevos (filtros coincidentes) para procesar NothingProcessed=Nada hecho -XEmailsDoneYActionsDone=%s e-mails analizados, %s e-mails procesados ​​con éxito (para %s registro/acciones realizadas) +XEmailsDoneYActionsDone=%s correos electrónicos precalificados, %s correos electrónicos procesados con éxito (para %s registro/acciones realizadas) RecordEvent=Registrar un evento en agenda (con tipo Email enviado o recibido) CreateLeadAndThirdParty=Crear un cliente potencial (y un tercero si es necesario) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +CreateTicketAndThirdParty=Cree un ticket (vinculado a un tercero si el tercero se cargó mediante una operación anterior o se adivinó a partir de un rastreador en el encabezado del correo electrónico, sin tercero de lo contrario) CodeLastResult=Resultado último código NbOfEmailsInInbox=Número de emails en el directorio fuente LoadThirdPartyFromName=Cargar terceros buscando en %s (solo carga) @@ -2105,14 +2138,14 @@ CreateCandidature=Crear solicitud de empleo FormatZip=Código postal MainMenuCode=Código de entrada del menú (menú principal) ECMAutoTree=Mostrar arbol automático GED -OperationParamDesc=Defina las reglas que se utilizarán para extraer o establecer valores.
    Ejemplo de operaciones que necesitan extraer un nombre del asunto del correo electrónico:
    name=EXTRACT:SUBJECT:Mensaje de la empresa([^\n] *)
    Ejemplo para las operaciones que crean objetos:
    objproperty1=SET: el valor a establecer
    objproperty2=SET: un valor incluyendo el valor de __objproperty1__
    objproperty3=SETIFEMPTY: valor utilizado si objproperty3 no está ya definido
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:El nombre de mi empresa es\\s( [^\\s]*)

    Use un ; como separador para extraer o establecer varias propiedades. +OperationParamDesc=Defina las reglas que se utilizarán para extraer algunos datos o establecer los valores que se utilizarán para la operación.

    Ejemplo para extraer el nombre de una empresa del asunto del correo electrónico en una variable temporal:
    tmp_var=EXTRACT:ASUNTO:Mensaje de la empresa ([^\n]*)

    Ejemplos para establecer las propiedades de un objeto para crear:
    objproperty1=SET:un valor codificado de forma rígida
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY: valor solo si la propiedad no está definida
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY: El nombre de la empresa es\\s([^\\s]*)

    Utilice el caracter ; como separador para extraer o establecer varias propiedades. OpeningHours=Horario de apertura OpeningHoursDesc=Teclea el horario normal de apertura de tu compañía. ResourceSetup=Configuración del módulo Recursos UseSearchToSelectResource=Utilice un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). DisabledResourceLinkUser=Desactivar funcionalidad de enlazar recursos a usuarios DisabledResourceLinkContact=Desactivar funcionalidad de enlazar recurso a contactos -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Prohibir el uso del mismo recurso al mismo tiempo en la agenda ConfirmUnactivation=Confirme el restablecimiento del módulo OnMobileOnly=Sólo en pantalla pequeña (smartphone) DisableProspectCustomerType=Deshabilite el tipo de tercero "Cliente potencial + Cliente" (por lo que el tercero debe ser "Cliente potencial" o "Cliente", pero no puede ser ambos) @@ -2157,7 +2190,7 @@ DeleteEmailCollector=Eliminar el recolector de e-mail ConfirmDeleteEmailCollector=¿Está seguro de que querer eliminar este recolector de e-mail? RecipientEmailsWillBeReplacedWithThisValue=Los e-mails del destinatario siempre serán reemplazados por este valor AtLeastOneDefaultBankAccountMandatory=Se debe definir al menos una cuenta bancaria predeterminada -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +RESTRICT_ON_IP=Permita el acceso a la API solo a ciertas direcciones IP de clientes (comodín no permitido, use espacio entre valores). Vacío significa que todos los clientes pueden acceder. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Basado en la versión de la biblioteca SabreDAV NotAPublicIp=No es una IP pública @@ -2167,6 +2200,10 @@ EmailTemplate=Plantilla para e-mail EMailsWillHaveMessageID=Los e-mais tendrán una etiqueta 'Referencias' que coincida con esta sintaxis PDF_SHOW_PROJECT=Mostrar proyecto en documento ShowProjectLabel=Etiqueta del proyecto +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Incluir alias en nombre de terceros +THIRDPARTY_ALIAS=Nombre de tercero - Alias de tercero +ALIAS_THIRDPARTY=Alias de tercero - Nombre de tercero +PDFIn2Languages=Mostrar etiquetas en PDF en 2 idiomas diferentes PDF_USE_ALSO_LANGUAGE_CODE=Si desea duplicar algunos textos en su PDF en 2 idiomas diferentes en el mismo PDF generado, debe establecer aquí este segundo idioma para que el PDF generado contenga 2 idiomas diferentes en la misma página, el elegido al generar el PDF y este ( solo unas pocas plantillas PDF lo admiten). Mantener vacío para 1 idioma por PDF. PDF_USE_A=Generar documentos PDF con formato PDF/A en lugar del formato PDF predeterminado FafaIconSocialNetworksDesc=Ingrese aquí el código de un ícono FontAwesome. Si no sabe qué es FontAwesome, puede usar el valor genérico fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partner AGENDA_EVENT_DEFAULT_STATUS=Estado de evento predeterminado al crear un evento desde el formulario YouShouldDisablePHPFunctions=Deberías deshabilitar las funciones de PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Excepto si necesita ejecutar comandos del sistema en código personalizado, debe deshabilitar las funciones PHP -PHPFunctionsRequiredForCLI=Para fines de shell (como una copia de seguridad programada de trabajos o ejecutar un programa anitivurs), debe mantener las funciones de PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No se encontraron archivos o directorios grabables de los programas comunes en su directorio raíz (Bueno) RecommendedValueIs=Recomendado: %s Recommended=Recomendada NotRecommended=No recomendado -ARestrictedPath=Alguna ruta restringida +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Compruebe si hay actualizaciones de módulos externos CheckForModuleUpdateHelp=Esta acción se conectará a los editores de módulos externos para comprobar si hay una nueva versión disponible. ModuleUpdateAvailable=Hay una actualización disponible @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No se encontraron actualizaciones para módulos exter SwaggerDescriptionFile=Archivo de descripción de la API de Swagger (para usar con redoc, por ejemplo) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Habilitó la API WS obsoleta. En su lugar, debería utilizar la API REST. RandomlySelectedIfSeveral=Seleccionado aleatoriamente si hay varias imágenes disponibles +SalesRepresentativeInfo=Para Propuestas, Pedidos, Facturas. DatabasePasswordObfuscated=La contraseña de la base de datos está oculta en el archivo conf DatabasePasswordNotObfuscated=La contraseña de la base de datos NO está oculta en el archivo conf APIsAreNotEnabled=Los módulos de API no están habilitados @@ -2247,19 +2285,73 @@ LateWarningAfter=Advertencia "tarde" después TemplateforBusinessCards=Plantilla para una tarjeta de presentación en diferentes tamaños InventorySetup= Configuración inventario ExportUseLowMemoryMode=Usar un modo de poca memoria -ExportUseLowMemoryModeHelp=Use el modo de memoria baja para ejecutar el archivo ejecutable del volcado (la compresión se realiza a través de una canalización en lugar de en la memoria PHP). Este método no permite verificar que el archivo esté completo y no se puede informar un mensaje de error si falla. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +ExportUseLowMemoryModeHelp=Use el modo de memoria baja para generar el archivo de volcado (la compresión se realiza a través de una canalización en lugar de en la memoria PHP). Este método no permite verificar que el archivo esté completo y no se puede informar un mensaje de error si falla. Úselo si no experimenta suficientes errores de memoria. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interfaz para capturar disparadores de dolibarr y enviarlo a una URL +WebhookSetup = Configuración de webhook +Settings = Configuraciones +WebhookSetupPage = Página de configuración del webhook +ShowQuickAddLink=Mostrar un botón para agregar rápidamente un elemento en el menú superior derecho + +HashForPing=Hash utilizado para hacer ping +ReadOnlyMode=¿Está la instancia en modo "Solo lectura"? +DEBUGBAR_USE_LOG_FILE=Use el archivo dolibarr.log para capturar registros +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Utilice el archivo dolibarr.log para atrapar registros en lugar de capturar la memoria en vivo. Permite capturar todos los registros en lugar de solo el registro del proceso actual (incluido el de las páginas de subsolicitudes de ajax), pero hará que su instancia sea muy lenta. No recomendado. +FixedOrPercent=Fijo (use la palabra clave 'fixed') o porcentaje (use la palabra clave 'percent') +DefaultOpportunityStatus=Estado de oportunidad predeterminado (primer estado cuando se crea el cliente potencial) + +IconAndText=Icono y texto +TextOnly=Solo texto +IconOnlyAllTextsOnHover=Solo ícono: todos los textos aparecen debajo del ícono en la barra de menú de desplazamiento del mouse +IconOnlyTextOnHover=Solo ícono: el texto del ícono aparece debajo del ícono al pasar el mouse sobre el ícono +IconOnly=Solo icono: solo texto en la información sobre herramientas +INVOICE_ADD_ZATCA_QR_CODE=Mostrar el código QR de ZATCA en las facturas +INVOICE_ADD_ZATCA_QR_CODEMore=Algunos países árabes necesitan este código QR en sus facturas +INVOICE_ADD_SWISS_QR_CODE=Mostrar el código QR-Bill suizo en las facturas +INVOICE_SHOW_SHIPPING_ADDRESS=Mostrar dirección de envío +INVOICE_SHOW_SHIPPING_ADDRESSMore=Mención obligatoria para Francia +UrlSocialNetworksDesc=Enlace URL de la red social. Use {socialid} para la parte variable que contiene la identificación de la red social. +IfThisCategoryIsChildOfAnother=Si esta categoría es hija de otra +DarkThemeMode=Modo de tema oscuro +AlwaysDisabled=Siempre deshabilitado +AccordingToBrowser=Según navegador +AlwaysEnabled=Siempre habilitado +DoesNotWorkWithAllThemes=No funcionará con todos los temas. +NoName=Sin nombre +ShowAdvancedOptions= Mostrar opciones avanzadas +HideAdvancedoptions= Ocultar opciones avanzadas +CIDLookupURL=El módulo trae una URL que puede ser utilizada por una herramienta externa para obtener el nombre de un tercero o contacto a partir de su número de teléfono. La URL a utilizar es: +OauthNotAvailableForAllAndHadToBeCreatedBefore=La autenticación OAUTH2 no está disponible para todos los hosts, y se debe haber creado un token con los permisos correctos en sentido ascendente con el módulo OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Servicio de autenticación OAUTH2 +DontForgetCreateTokenOauthMod=Se debe haber creado un token con los permisos correctos en sentido ascendente con el módulo OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Método de autenticación +UsePassword=Utiliza una contraseña +UseOauth=Utiliza un token OAUTH +Images=Imágenes +MaxNumberOfImagesInGetPost=Número máximo de imágenes permitidas en un campo HTML enviado en un formulario +MaxNumberOfPostOnPublicPagesByIP=Número máximo de publicaciones en páginas públicas con la misma dirección IP en un mes +CIDLookupURL=El módulo trae una URL que puede ser utilizada por una herramienta externa para obtener el nombre de un tercero o contacto a partir de su número de teléfono. La URL a utilizar es: +ScriptIsEmpty=El script esta vacio +ShowHideTheNRequests=Mostrar/ocultar las %s solicitude(s) SQL +DefinedAPathForAntivirusCommandIntoSetup=Defina una ruta para un programa antivirus en %s +TriggerCodes=Eventos activables +TriggerCodeInfo=Ingrese aquí los códigos de activación que deben generar una publicación de una solicitud web (solo se permiten URL externas). Puede introducir varios códigos de activación separados por una coma. +EditableWhenDraftOnly=Si no está marcado, el valor solo se puede modificar cuando el objeto tiene un estado de borrador +CssOnEdit=Css en páginas de edición +CssOnView=Css en las páginas de visualización +CssOnList=Css en páginas de lista +HelpCssOnEditDesc=El Css utilizado al editar el campo.
    Ejemplo: "minwidth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=El Css utilizado al visualizar el campo. +HelpCssOnListDesc=El Css utilizado cuando el campo está dentro de una tabla de lista.
    Ejemplo: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Ocultar la cantidad pedida en los documentos generados para recepciones +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Mostrar el precio en los documentos generados para recepciones +WarningDisabled=Advertencia deshabilitada +LimitsAndMitigation=Límites de acceso y mitigación +DesktopsOnly=Solo equipos de escritorio +DesktopsAndSmartphones=Ordenadores de escritorio y teléfonos inteligentes +AllowOnlineSign=Permitir la firma en línea +AllowExternalDownload=Permitir descarga externa (sin inicio de sesión, usando un enlace compartido) +DeadlineDayVATSubmission=Fecha límite para la presentación de IVA en el próximo mes +MaxNumberOfAttachementOnForms=Número máximo de archivos unidos en un formulario +IfDefinedUseAValueBeetween=Si está definido, use un valor entre %s y %s diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index d1b89436a17..64baafbcd01 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -45,7 +45,7 @@ CONTRACT_DELETEInDolibarr=Contrato %s eliminado PropalClosedSignedInDolibarr=Presupuesto %s firmado PropalClosedRefusedInDolibarr=Presupuesto %s rechazado PropalValidatedInDolibarr=Presupuesto %s validado -PropalBackToDraftInDolibarr=Proposal %s go back to draft status +PropalBackToDraftInDolibarr=Propuesta %s volver al estado de borrador PropalClassifiedBilledInDolibarr=Presupuesto %s clasificado facturado InvoiceValidatedInDolibarr=Factura %s validada InvoiceValidatedInDolibarrFromPos=Factura %s validada desde TPV @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Miembro %s validado MemberModifiedInDolibarr=Miembro %s modificado MemberResiliatedInDolibarr=Miembro %s terminado MemberDeletedInDolibarr=Miembro %s eliminado +MemberExcludedInDolibarr=Miembro %s excluido MemberSubscriptionAddedInDolibarr=Subscripción %s del miembro %s añadida MemberSubscriptionModifiedInDolibarr=Suscripción %s del miembro %s modificada MemberSubscriptionDeletedInDolibarr=Suscripción %s del miembro %s eliminada @@ -67,7 +68,8 @@ ShipmentBackToDraftInDolibarr=Envío %s ha sido devuelto al estado de borrador ShipmentDeletedInDolibarr=Expedición %s eliminada ShipmentCanceledInDolibarr=Envío %s cancelado ReceptionValidatedInDolibarr=Recepción %s validada -ReceptionClassifyClosedInDolibarr=Reception %s classified closed +ReceptionDeletedInDolibarr=Recepción %s eliminado +ReceptionClassifyClosedInDolibarr=Recepción %s clasificado cerrado OrderCreatedInDolibarr=Pedido %s creado OrderValidatedInDolibarr=Pedido %s validado OrderDeliveredInDolibarr=Pedido %s clasificado como enviado @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Factura de proveedor %s enviada por e-mail ShippingSentByEMail=Expedición %s enviada por email ShippingValidated= Expedición %s validada InterventionSentByEMail=Intervención %s enviada por e-mail +ProjectSentByEMail=Proyecto %s enviado por correo electrónico ProposalDeleted=Presupuesto eliminado OrderDeleted=Pedido eliminado InvoiceDeleted=Factura eliminada @@ -159,6 +162,7 @@ DateActionBegin=Fecha de inicio del evento ConfirmCloneEvent=¿Esta seguro de querer clonar el evento %s? RepeatEvent=Repetir evento OnceOnly=Una sola vez +EveryDay=Todos los días EveryWeek=Cada semana EveryMonth=Cada mes DayOfMonth=Día del mes @@ -174,3 +178,4 @@ AddReminder=Crea una notificación de recordatorio automática para este evento ErrorReminderActionCommCreation=Error al crear la notificación de recordatorio para este evento BrowserPush=Notificación emergente del navegador ActiveByDefault=Activado por defecto +Until=Hasta que diff --git a/htdocs/langs/es_ES/assets.lang b/htdocs/langs/es_ES/assets.lang index 99b1a479095..a3eb7fd150d 100644 --- a/htdocs/langs/es_ES/assets.lang +++ b/htdocs/langs/es_ES/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,52 +16,171 @@ # # Generic # -Assets = Activos -NewAsset = Nuevo activo -AccountancyCodeAsset = Código contable (activo) -AccountancyCodeDepreciationAsset = Código contable (cuenta depreciación activo) -AccountancyCodeDepreciationExpense = Código contable (cuenta depreciación gastos) -NewAssetType=Nuevo tipo de activo -AssetsTypeSetup=Configuración tipos de activos -AssetTypeModified=Tipo de activo modificado -AssetType=Tipo de activo +NewAsset=Nuevo activo +AccountancyCodeAsset=Código contable (activo) +AccountancyCodeDepreciationAsset=Código de contabilidad (cuenta de activo de depreciación) +AccountancyCodeDepreciationExpense=Código contable (cuenta de gastos de depreciación) AssetsLines=Activos DeleteType=Eliminar -DeleteAnAssetType=Eliminar un tipo de activo -ConfirmDeleteAssetType=¿Está seguro de querer eliminar este tipo de activo? -ShowTypeCard=Ver tipo '%s' +DeleteAnAssetType=Eliminar un modelo de activo +ConfirmDeleteAssetType=¿Está seguro de que desea eliminar este modelo de activos? +ShowTypeCard=Mostrar modelo '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Activos +ModuleAssetsName=Activos # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Descripción bien +ModuleAssetsDesc=Descripción de los activos # # Admin page # -AssetsSetup = Configuración activos -Settings = Configuraciones -AssetsSetupPage = Configuración activos -ExtraFieldsAssetsType = Campos adicionales (tipos de activos) -AssetsType=Tipo de activo -AssetsTypeId=Id tipo de activo -AssetsTypeLabel=Etiqueta tipo de activo -AssetsTypes=Tipos de activos +AssetSetup=Configuración de activos +AssetSetupPage=Página de configuración de activos +ExtraFieldsAssetModel=Atributos complementarios (Modelo de activos) + +AssetsType=Modelo de activos +AssetsTypeId=Id. de modelo de activo +AssetsTypeLabel=Etiqueta del modelo de activos +AssetsTypes=Modelos de activos +ASSET_ACCOUNTANCY_CATEGORY=Grupo de contabilidad de activos fijos # # Menu # -MenuAssets = Activos -MenuNewAsset = Nuevo bien -MenuTypeAssets = Tipo de activos -MenuListAssets = Listado -MenuNewTypeAssets = Nuevo -MenuListTypeAssets = Listado +MenuAssets=Activos +MenuNewAsset=Nuevo activo +MenuAssetModels=Activos del modelo +MenuListAssets=Lista +MenuNewAssetModel=Modelo del nuevo activo +MenuListAssetModels=Lista # # Module # +ConfirmDeleteAsset=¿Realmente desea eliminar este recurso? + +# +# Tab +# +AssetDepreciationOptions=Opciones de depreciación +AssetAccountancyCodes=Cuentas contables +AssetDepreciation=Depreciación + +# +# Asset +# Asset=Activo -NewAssetType=Nuevo tipo de activo -NewAsset=Nuevo activo -ConfirmDeleteAsset=¿Está seguro de que desea eliminar este activo? +Assets=Activos +AssetReversalAmountHT=Cantidad de inversión (sin impuestos) +AssetAcquisitionValueHT=Importe de la adquisición (sin impuestos) +AssetRecoveredVAT=IVA recuperado +AssetReversalDate=Fecha de reversión +AssetDateAcquisition=Fecha de adquisición +AssetDateStart=Fecha de puesta en marcha +AssetAcquisitionType=Tipo de adquisición +AssetAcquisitionTypeNew=Nuevo +AssetAcquisitionTypeOccasion=Usado +AssetType=Tipo de activo +AssetTypeIntangible=Intangible +AssetTypeTangible=Tangible +AssetTypeInProgress=En progreso +AssetTypeFinancial=Financiero +AssetNotDepreciated=No depreciado +AssetDisposal=Disposición +AssetConfirmDisposalAsk=¿Está seguro de que desea deshacerse del activo %s? +AssetConfirmReOpenAsk=¿Está seguro de que desea reabrir el recurso %s? + +# +# Asset status +# +AssetInProgress=En progreso +AssetDisposed=Disposed +AssetRecorded=Contabilizado + +# +# Asset disposal +# +AssetDisposalDate=Fecha de eliminación +AssetDisposalAmount=Valor de enajenación +AssetDisposalType=Tipo de eliminación +AssetDisposalDepreciated=Depreciar el año de la transferencia +AssetDisposalSubjectToVat=Enajenación sujeta a IVA + +# +# Asset model +# +AssetModel=Modelo del activo +AssetModels=Modelos de activos + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Depreciación económica +AssetDepreciationOptionAcceleratedDepreciation=Depreciación acelerada (impuestos) +AssetDepreciationOptionDepreciationType=Tipo de depreciación +AssetDepreciationOptionDepreciationTypeLinear=Lineal +AssetDepreciationOptionDepreciationTypeDegressive=Degresivo +AssetDepreciationOptionDepreciationTypeExceptional=Excepcional +AssetDepreciationOptionDegressiveRate=Tasa decreciente +AssetDepreciationOptionAcceleratedDepreciation=Acelerado (impuesto) +AssetDepreciationOptionDuration=Duración +AssetDepreciationOptionDurationType=Tipo de duración +AssetDepreciationOptionDurationTypeAnnual=Anual +AssetDepreciationOptionDurationTypeMonthly=Mensual +AssetDepreciationOptionDurationTypeDaily=Diario +AssetDepreciationOptionRate=Tasa (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Base de amortización (sin IVA) +AssetDepreciationOptionAmountBaseDeductibleHT=Base deducible (sin IVA) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Cantidad total de la última depreciación (sin IVA) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Depreciación económica +AssetAccountancyCodeAsset=Activo +AssetAccountancyCodeDepreciationAsset=Depreciación +AssetAccountancyCodeDepreciationExpense=Gastos de depreciación +AssetAccountancyCodeValueAssetSold=Valor del activo enajenado +AssetAccountancyCodeReceivableOnAssignment=Cuenta por cobrar por enajenación +AssetAccountancyCodeProceedsFromSales=Productos de la eliminación +AssetAccountancyCodeVatCollected=IVA cobrado +AssetAccountancyCodeVatDeductible=IVA recuperado en activos +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Depreciación acelerada (impuestos) +AssetAccountancyCodeAcceleratedDepreciation=Cuenta +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Gastos de depreciación +AssetAccountancyCodeProvisionAcceleratedDepreciation=Reposesión/Provisión + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Deprbase de liquidación (excl. IVA) +AssetDepreciationBeginDate=Inicio de depreciación el +AssetDepreciationDuration=Duración +AssetDepreciationRate=Tasa (%%) +AssetDepreciationDate=Fecha de depreciación +AssetDepreciationHT=Depreciación (sin IVA) +AssetCumulativeDepreciationHT=Depreciación acumulada (sin IVA) +AssetResidualHT=Valor residual (sin IVA) +AssetDispatchedInBookkeeping=Depreciación registrada +AssetFutureDepreciationLine=Depreciación futura +AssetDepreciationReversal=Reversión + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=No se proporcionó la identificación del recurso o el sonido del modelo +AssetErrorFetchAccountancyCodesForMode=Error al recuperar las cuentas contables para el modo de depreciación '%s' +AssetErrorDeleteAccountancyCodesForMode=Error al eliminar cuentas contables del modo de depreciación '%s' +AssetErrorInsertAccountancyCodesForMode=Error al insertar las cuentas contables del modo de depreciación '%s' +AssetErrorFetchDepreciationOptionsForMode=Error al recuperar opciones para el modo de depreciación '%s' +AssetErrorDeleteDepreciationOptionsForMode=Error al eliminar las opciones del modo de depreciación '%s' +AssetErrorInsertDepreciationOptionsForMode=Error al insertar las opciones del modo de depreciación '%s' +AssetErrorFetchDepreciationLines=Error al recuperar líneas de depreciación registradas +AssetErrorClearDepreciationLines=Error al purgar líneas de depreciación registradas (reversión y futuro) +AssetErrorAddDepreciationLine=Error al agregar una línea de depreciación +AssetErrorCalculationDepreciationLines=Error al calcular las líneas de depreciación (recuperación y futuro) +AssetErrorReversalDateNotProvidedForMode=No se proporciona la fecha de reversión para el método de depreciación '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=La fecha de reversión debe ser mayor o igual que el comienzo del año fiscal actual para el método de depreciación '%s' +AssetErrorReversalAmountNotProvidedForMode=No se proporciona el importe de reversión para el modo de depreciación '%s'. +AssetErrorFetchCumulativeDepreciation=Error al recuperar la cantidad de depreciación acumulada de la línea de depreciación +AssetErrorSetLastCumulativeDepreciation=Error al registrar el último monto de depreciación acumulada diff --git a/htdocs/langs/es_ES/banks.lang b/htdocs/langs/es_ES/banks.lang index 71f4fe82367..cf9b1648f10 100644 --- a/htdocs/langs/es_ES/banks.lang +++ b/htdocs/langs/es_ES/banks.lang @@ -172,8 +172,8 @@ SEPAMandate=Mandato SEPA YourSEPAMandate=Su mandato SEPA FindYourSEPAMandate=Este es su mandato SEPA para autorizar a nuestra empresa a realizar un petición de débito directo a su banco. Gracias por devolverlo firmado (escaneo del documento firmado) o enviado por correo a AutoReportLastAccountStatement=Rellenar automáticamente el campo 'número de extracto bancario' con el último número de extracto cuando realice la conciliación -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=Control de efectivo en punto de venta +NewCashFence=Nuevo control de caja (apertura o cierre) BankColorizeMovement=Colorear movimientos BankColorizeMovementDesc=Si esta función está activada, puede elegir un color de fondo específico para los movimientos de débito o crédito BankColorizeMovementName1=Color de fondo para el movimiento de débito @@ -183,5 +183,6 @@ NoBankAccountDefined=Sin cuenta bancaria definida NoRecordFoundIBankcAccount=No se encontró ningún registro en la cuenta bancaria. Por lo general, esto ocurre cuando un registro se ha eliminado manualmente de la lista de transacciones en la cuenta bancaria (por ejemplo, durante una conciliación de la cuenta bancaria). Otra razón es que el pago se registró cuando el módulo "%s" estaba deshabilitado. AlreadyOneBankAccount=Ya se ha definido una cuenta bancaria SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Transferencia SEPA: 'Tipo de pago' a nivel de 'Transferencia de crédito' -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Al generar un archivo SEPA XML para transferencias de crédito, la sección "PaymentTypeInformation" ahora se puede colocar dentro de la sección "CreditTransferTransactionInformation" (en lugar de la sección "Pago"). Recomendamos enfáticamente dejar esto sin marcar para colocar la información de tipo de pago en el nivel de pago, ya que no todos los bancos la aceptarán necesariamente en el nivel de información de transacción de transferencia de crédito. Comuníquese con su banco antes de colocar PaymentTypeInformation en el nivel CreditTransferTransactionInformation. ToCreateRelatedRecordIntoBank=Para crear un registro bancario relacionado faltante +BanklineExtraFields=Campos adicionales de línea bancaria diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index cf5fc6626cf..37088aff502 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Estadísticas de facturas a clientes BillsStatisticsSuppliers=Estadísticas de facturas de proveedores DisabledBecauseDispatchedInBookkeeping=Desactivado porque la factura se contabilizó DisabledBecauseNotLastInvoice=Desactivado porque la factura no se puede borrar. Se han creado facturas después de esta y crearían huecos en el contador. +DisabledBecauseNotLastSituationInvoice=Deshabilitado porque la factura no se puede borrar. Esta factura no es la última en ciclo de facturación de situación. DisabledBecauseNotErasable=Desactivado ya que no puede eliminarse InvoiceStandard=Factura estándar InvoiceStandardAsk=Factura estándar InvoiceStandardDesc=Este tipo de factura es la factura tradicional. +InvoiceStandardShort=Estándar InvoiceDeposit=Factura de anticipo InvoiceDepositAsk=Factura de anticipo InvoiceDepositDesc=La factura de anticipo es el tipo de factura que se crea a la recepción de un anticipo, si no es posible realizar el pago sobre una factura definitiva. @@ -24,6 +26,7 @@ InvoiceProForma=Factura pro-forma InvoiceProFormaAsk=Factura pro-forma InvoiceProFormaDesc=La factura pro-forma es la imagen de una factura definitiva, pero que no tiene ningún valor contable. InvoiceReplacement=Factura rectificativa +InvoiceReplacementShort=Reemplazo InvoiceReplacementAsk=Factura rectificativa de la factura InvoiceReplacementDesc=La factura rectificativa sirve para cancelar y sustituir una factura existente sobre la que aún no hay pagos recibidos.

    Nota: Sólo pueden rectificarse las facturas sin pagos registrados. Si esta última no está cerrada, pasará automáticamente al estado 'abandonada'. InvoiceAvoir=Abono @@ -81,7 +84,7 @@ PaymentsReports=Informes de pagos PaymentsAlreadyDone=Pagos efectuados PaymentsBackAlreadyDone=Reembolsos ya realizados PaymentRule=Forma de pago -PaymentMode=Método de pago +PaymentMode=Forma de pago PaymentModes=Métodos de pago DefaultPaymentMode=Método de pago por defecto DefaultBankAccount=Cuenta bancaria predeterminada @@ -156,9 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=Error, una factura de tipo Abono debe tener un i ErrorInvoiceOfThisTypeMustBePositive=Error, este tipo de factura debe tener una ase imponible positiva (o nula) ErrorCantCancelIfReplacementInvoiceNotValidated=Error, no es posible cancelar una factura que ha sido sustituida por otra que se encuentra en el estado 'borrador '. ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte u otra ya ha sido usada, la serie de descuento no se puede eliminar. -ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. +ErrorInvoiceIsNotLastOfSameType=Error: La fecha de la factura %s es %s. Debe ser posterior o igual a la última fecha para facturas del mismo tipo (%s). Por favor cambie la fecha de la factura. BillFrom=Emisor BillTo=Enviar a +ShippingTo=Enviar a: ActionsOnBill=Eventos sobre la factura RecurringInvoiceTemplate=Plantilla/Factura recurrente NoQualifiedRecurringInvoiceTemplateFound=Sin plantilla de factura recurrente apta para la generación @@ -283,8 +287,8 @@ RecurringInvoices=Facturas recurrentes RecurringInvoice=Factura recurrente RepeatableInvoice=Plantilla de factura RepeatableInvoices=Plantilla de facturas -RecurringInvoicesJob=Generation of recurring invoices (sales invoices) -RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +RecurringInvoicesJob=Generación de facturas recurrentes (facturas de venta) +RecurringSupplierInvoicesJob=Generación de facturas recurrentes (facturas de compra) Repeatable=Plantilla Repeatables=Plantillas ChangeIntoRepeatableInvoice=Convertir en plantilla @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 días PaymentCondition14D=14 días PaymentConditionShort14DENDMONTH=14 días fin de mes PaymentCondition14DENDMONTH=14 días a fin de més +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% depósito +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% depósito, resto contra entrega FixAmount=Cantidad fija -1 línea con la etiqueta '%s' VarAmount=Importe variable (%% total) VarAmountOneLine=Cantidad variable (%% tot.) - 1 línea con la etiqueta '%s' VarAmountAllLines=Cantidad variable (%% tot.) - todas las líneas desde el origen +DepositPercent=Depósito %% +DepositGenerationPermittedByThePaymentTermsSelected=Esto está permitido por las condiciones de pago seleccionadas +GenerateDeposit=Genere una factura de depósito %s%% +ValidateGeneratedDeposit=Validar el depósito generado +DepositGenerated=Depósito generado +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Solo puede generar automáticamente un depósito a partir de una propuesta o un pedido +ErrorPaymentConditionsNotEligibleToDepositCreation=Las condiciones de pago elegidas no son elegibles para la generación automática de depósitos # PaymentType PaymentTypeVIR=Transferencia bancaria PaymentTypeShortVIR=Transferencia bancaria PaymentTypePRE=Domiciliación +PaymentTypePREdetails=(a cuenta *-%s) PaymentTypeShortPRE=Domiciliación PaymentTypeLIQ=Efectivo PaymentTypeShortLIQ=Efectivo @@ -612,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Pago registrado y factura %s marcada como p SendEmailsRemindersOnInvoiceDueDate=Enviar recordatorio por correo electrónico de facturas impagadas MakePaymentAndClassifyPayed=Registro de pago BulkPaymentNotPossibleForInvoice=El pago masivo no es posible para la factura %s (tipo o estado incorrecto) +MentionVATDebitOptionIsOn=Opción de tributar en base a débitos +MentionCategoryOfOperations=Categoría de operaciones +MentionCategoryOfOperations0=Entrega de bienes +MentionCategoryOfOperations1=Provisión de servicios +MentionCategoryOfOperations2=Mixto - Entrega de bienes y prestación de servicios diff --git a/htdocs/langs/es_ES/bookmarks.lang b/htdocs/langs/es_ES/bookmarks.lang index a147978b0d1..61b91326927 100644 --- a/htdocs/langs/es_ES/bookmarks.lang +++ b/htdocs/langs/es_ES/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Elija si la página enlazada deb BookmarksManagement=Gestión de marcadores BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=No hay marcadores definidos +NoBookmarkFound=No se encontró ningún marcador diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index f3142cb5242..5df1fa1126d 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Últimas suscripciones de miembros BoxFicheInter=Últimas intervenciones BoxCurrentAccounts=Balance de cuentas abiertas BoxTitleMemberNextBirthdays=Cumpleaños de este mes (miembros) -BoxTitleMembersByType=Miembros por tipo +BoxTitleMembersByType=Miembros por tipo y estado BoxTitleMembersSubscriptionsByYear=Suscripciones de miembros por año BoxTitleLastRssInfos=Últimas %s noticias de %s BoxTitleLastProducts=Productos/Servicios: últimos %s modificados @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Pedidos a proveedores en espera de recep BoxTitleLastModifiedContacts=Últimos %s contactos/direcciones modificados BoxMyLastBookmarks=Marcadores: últimos %s BoxOldestExpiredServices=Servicios antiguos expirados +BoxOldestActions=Eventos más antiguos por hacer BoxLastExpiredServices=Últimos %s contratos más antiguos con servicios expirados BoxTitleLastActionsToDo=Últimas %s acciones a realizar +BoxTitleOldestActionsToDo=Eventos %s más antiguos por hacer, no completados BoxTitleLastContracts=Últimos %s contratos modificados BoxTitleLastModifiedDonations=Últimas %s donaciones modificadas BoxTitleLastModifiedExpenses=Últimos %s informes de gastos modificados diff --git a/htdocs/langs/es_ES/cashdesk.lang b/htdocs/langs/es_ES/cashdesk.lang index 30f630595a4..0204a62b549 100644 --- a/htdocs/langs/es_ES/cashdesk.lang +++ b/htdocs/langs/es_ES/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Pié de página AmountAtEndOfPeriod=Importe al final del período (día, mes o año) TheoricalAmount=Importe teórico RealAmount=Importe real -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Cierre de caja +CashFenceDone=Cierre de caja realizado para el período NbOfInvoices=Nº de facturas Paymentnumpad=Tipo de Pad para introducir el pago. Numberspad=Teclado numérico @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} tag es usado para añadir el número TakeposGroupSameProduct=Agrupar mismas líneas de producto StartAParallelSale=Nueva venta simultánea  SaleStartedAt=Oferta comenzada en %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Abra la ventana emergente "Control de caja de efectivo" al abrir el POS +CloseCashFence=Cerrar control de caja CashReport=Arqueo MainPrinterToUse=Impresora principal OrderPrinterToUse=Impresora de pedido @@ -136,3 +136,4 @@ PrintWithoutDetails=Imprimir sin detalles YearNotDefined=El año no está definido TakeposBarcodeRuleToInsertProduct=Regla de código de barras para insertar producto TakeposBarcodeRuleToInsertProductDesc=Regla para extraer la referencia del producto + una cantidad de un código de barras escaneado.
    Si está vacío (valor predeterminado), la aplicación utilizará el código de barras completo escaneado para encontrar el producto.

    Si se define, sintaxis debe ser:
    ref:NB+qu:NB+qd:NB+other:NB
    donde NB es el número de caracteres a utilizar para extraer datos del código de barras escaneado con:
    • ref : referencia del producto
    • qu : cantidad de conjunto al insertar elementos (unidades)
    • qd : cantidad de conjunto al insertar artículo (decimales)
    • otra : otros caracteres
    +AlreadyPrinted=Ya impreso diff --git a/htdocs/langs/es_ES/categories.lang b/htdocs/langs/es_ES/categories.lang index 3b97fb4ffb2..ae1eb6261a8 100644 --- a/htdocs/langs/es_ES/categories.lang +++ b/htdocs/langs/es_ES/categories.lang @@ -90,11 +90,14 @@ CategorieRecursivHelp=Si la opción está activada, cuando agrega un producto a AddProductServiceIntoCategory=Añadir el siguiente producto/servicio AddCustomerIntoCategory=Asignar categoría al cliente AddSupplierIntoCategory=Asignar categoría a proveedor +AssignCategoryTo=Asignar categoría a ShowCategory=Mostrar etiqueta/categoría ByDefaultInList=Por defecto en lista ChooseCategory=Elija una categoría StocksCategoriesArea=Categorías de almacén +TicketsCategoriesArea=Categorías de Tickets ActionCommCategoriesArea=Categorías de eventos WebsitePagesCategoriesArea=Categorías de contenedor de página KnowledgemanagementsCategoriesArea=Categorías de artículos de KM UseOrOperatorForCategories=Utilice el operador 'OR' para las categorías +AddObjectIntoCategory=Agregar objeto a la categoría diff --git a/htdocs/langs/es_ES/commercial.lang b/htdocs/langs/es_ES/commercial.lang index 5fe49a5b4f4..8292b6391d6 100644 --- a/htdocs/langs/es_ES/commercial.lang +++ b/htdocs/langs/es_ES/commercial.lang @@ -68,13 +68,22 @@ ActionAC_OTH_AUTO=Eventos creados automáticamente ActionAC_MANUAL=Eventos creados manualmente ActionAC_AUTO=Eventos creados automáticamente ActionAC_OTH_AUTOShort=Auto +ActionAC_EVENTORGANIZATION=Eventos de organización Stats=Estadísticas de venta StatusProsp=Estado prospección DraftPropals=Presupuestos borrador NoLimit=Sin límite ToOfferALinkForOnlineSignature=Enlace para la firma en línea -WelcomeOnOnlineSignaturePage=Bienvenido a la página para aceptar presupuestos de %s -ThisScreenAllowsYouToSignDocFrom=Esta pantalla le permite aceptar y firmar, o rechazar, una presupuesto/propuesta comercial -ThisIsInformationOnDocumentToSign=Esta es la información del documento para aceptar o rechazar +WelcomeOnOnlineSignaturePageProposal=Bienvenido a la página para firmar presupuestos de %s +WelcomeOnOnlineSignaturePageContract=Bienvenido a la página para firmar contratos de %s +WelcomeOnOnlineSignaturePageFichinter=Bienvenido a la página para firmar intervenciones de %s +ThisScreenAllowsYouToSignDocFromProposal=Esta página permite aceptar y firmar o rechazar un presupuesto o propuesta comercial. +ThisScreenAllowsYouToSignDocFromContract=Esta página permite aceptar y firmar el contrato PDF online. +ThisScreenAllowsYouToSignDocFromFichinter=Esta página permite aceptar y firmar una intervención en formato PDF online. +ThisIsInformationOnDocumentToSignProposal=Esta es la información del presupuesto para aceptar o rechazar +ThisIsInformationOnDocumentToSignContract=Esta es la información del contrato a firmar +ThisIsInformationOnDocumentToSignFichinter=Esta es la información de la intervención a firmar SignatureProposalRef=Firma del presupuesto/propuesta comercial %s +SignatureContractRef=Firma del contrato %s +SignatureFichinterRef=Firma de la intervención %s FeatureOnlineSignDisabled=Característica para la firma en línea inhabilitada o documento generado antes de que se habilitara la característica diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index d0e50c90c44..e12c0e84e1f 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -19,7 +19,7 @@ ProspectionArea=Área de prospección IdThirdParty=ID tercero IdCompany=Id empresa IdContact=Id contacto -ThirdPartyAddress=Third-party address +ThirdPartyAddress=Dirección de terceros ThirdPartyContacts=Contactos terceros ThirdPartyContact=Contactos/direcciones terceros Company=Empresa @@ -52,21 +52,22 @@ CivilityCode=Código cortesía RegisteredOffice=Domicilio social Lastname=Apellidos Firstname=Nombre -RefEmployee=Employee reference -NationalRegistrationNumber=National registration number +RefEmployee=Referencia del empleado +NationalRegistrationNumber=Número de registro nacional PostOrFunction=Puesto de trabajo UserTitle=Título de cortesía NatureOfThirdParty=Naturaleza del tercero NatureOfContact=Naturaleza del contacto Address=Dirección State=Provincia +StateId=ID Estado StateCode=Código de estado/provincia StateShort=Estado Region=Región Region-State=Región - Estado Country=País CountryCode=Código país -CountryId=Id país +CountryId=ID País Phone=Teléfono PhoneShort=Teléfono Skype=Skype @@ -105,7 +106,7 @@ WrongSupplierCode=Código proveedor incorrecto CustomerCodeModel=Modelo de código cliente SupplierCodeModel=Modelo de código proveedor Gencod=Código de barras -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=Código de barras de precio ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Identificación. profe. 1 (Registro Mercantil) ProfId2CM=Identificación. profe. 2 (Número de Identificación Fiscal ) -ProfId3CM=Identificación. profe. 3 (Decreto de creación) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId3CM=Identificación. prof. 3 (Nº de Decreto de creación) +ProfId4CM=Identificación. profe. 4 (Certificado de depósito No.) +ProfId5CM=Identificación. profe. 5 (Otros) ProfId6CM=- ProfId1ShortCM=Registro Mercantil ProfId2ShortCM=NIF (Número de Identificación Fiscal) -ProfId3ShortCM=Decreto de creación -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=Nº de decreto de creación +ProfId4ShortCM=Certificado de depósito No. ProfId5ShortCM=Otros ProfId6ShortCM=- ProfId1CO=R.U.T. @@ -363,7 +364,7 @@ ListOfThirdParties=Listado de terceros ShowCompany=Tercero ShowContact=Contacto/Dirección ContactsAllShort=Todos (sin filtro) -ContactType=Contact role +ContactType=Rol de contacto ContactForOrders=Contacto de pedidos ContactForOrdersOrShipments=Contacto de pedidos o envíos ContactForProposals=Contacto de presupuestos diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang index 333d853061c..066ccdf318d 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (antes) Balance=Saldo Debit=Debe Credit=Haber +AccountingDebit=Debe +AccountingCredit=Crédito Piece=Doc. contabilidad AmountHTVATRealReceived=Total repercutido AmountHTVATRealPaid=Total pagado @@ -146,11 +148,11 @@ ConfirmPaySalary=¿Está seguro de que desea clasificar esta tarjeta salarial co DeleteSocialContribution=Eliminar un pago de tasa social o fiscal DeleteVAT=Eliminar una declaración de IVA DeleteSalary=Eliminar una tarjeta de salario -DeleteVariousPayment=Delete a various payment +DeleteVariousPayment=Eliminar un pago vario ConfirmDeleteSocialContribution=¿Está seguro de que desea eliminar este pago de impuestos sociales / fiscales? ConfirmDeleteVAT=¿Está seguro de que desea eliminar esta declaración de IVA? -ConfirmDeleteSalary=Are you sure you want to delete this salary ? -ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? +ConfirmDeleteSalary=¿Está seguro de que desea eliminar este salario? +ConfirmDeleteVariousPayment=¿Está seguro de que desea eliminar este pago vario? ExportDataset_tax_1=tasas sociales y fiscales y pagos CalcModeVATDebt=Modo %sIVA sobre facturas emitidas%s. CalcModeVATEngagement=Modo %sIVA sobre facturas cobradas%s. @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=El informe del volumen de ve TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=El informe Volumen de ventas cobradas por tasa de impuesto no está disponible. Este informe solo está disponible para volumen de ventas emitidas. CalculationMode=Modo de cálculo AccountancyJournal=Código contable diario -ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta contable por defecto para el IVA de ventas (usado si no se define en el diccionario de IVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta contable por defecto para el IVA de compras (usado si no se define en el diccionario de IVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable usada para clientes +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero -ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable usada para proveedores +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero ConfirmCloneTax=Confirmar la clonación de una tasa social/fiscal ConfirmCloneVAT=Confirmar la clonación de una declaración de IVA @@ -289,9 +291,9 @@ ReportPurchaseTurnover=Volumen de compras facturado ReportPurchaseTurnoverCollected=Volumen de compras pagadas IncludeVarpaysInResults = Incluir varios pagos en informes IncludeLoansInResults = Incluir préstamos en informes -InvoiceLate30Days = Late (> 30 days) -InvoiceLate15Days = Late (15 to 30 days) -InvoiceLateMinus15Days = Late (< 15 days) +InvoiceLate30Days = Tardío (> 30 días) +InvoiceLate15Days = Tarde (15 a 30 días) +InvoiceLateMinus15Days = Tardío (< 15 días) InvoiceNotLate = A cobrar (< 15 días) InvoiceNotLate15Days = A cobrar (de 15 a 30 días) InvoiceNotLate30Days = A cobrar(>30 días) @@ -300,3 +302,4 @@ InvoiceToPay15Days=A pagar (de 15 a 30 días) InvoiceToPay30Days=A pagar (>30 días) ConfirmPreselectAccount=Preseleccionar el código de contabilidad ConfirmPreselectAccountQuestion=¿Está seguro de que desea preseleccionar las%s líneas seleccionadas con este código de contabilidad? +AmountPaidMustMatchAmountOfDownPayment=El monto pagado debe coincidir con el monto del pago inicial diff --git a/htdocs/langs/es_ES/contracts.lang b/htdocs/langs/es_ES/contracts.lang index 0978f7d1301..c1a8919b3fd 100644 --- a/htdocs/langs/es_ES/contracts.lang +++ b/htdocs/langs/es_ES/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contratos/Suscripciones ContractsAndLine=Contratos y líneas de contratos Contract=Contrato ContractLine=Línea de contrato +ContractLines=Líneas de contrato Closing=Cierre NoContracts=Sin contratos MenuServices=Servicios @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=¿Está seguro de querer eliminar esta línea de contr MoveToAnotherContract=Mover el servicio a otro contrato de este tercero. ConfirmMoveToAnotherContract=He elegido el contrato y confirmo el cambio de servicio en el presente contrato. ConfirmMoveToAnotherContractQuestion=Elija cualquier otro contrato del mismo tercero, ¿desea mover este servicio? -PaymentRenewContractId=Renovación servicio (número %s) +PaymentRenewContractId=Renovar contrato %s (servicio %s) ExpiredSince=Expirado desde el NoExpiredServices=Sin servicios activos expirados ListOfServicesToExpireWithDuration=Listado de servicios activos a expirar en %s días @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Contacto cliente firmante del contrato HideClosedServiceByDefault=Ocultar servicios cerrados por defecto ShowClosedServices=Mostrar servicios cerrados HideClosedServices=Ocultar servicios cerrados +UserStartingService=Usuario inicio del servicio +UserClosingService=Usuario cierre del servicio diff --git a/htdocs/langs/es_ES/cron.lang b/htdocs/langs/es_ES/cron.lang index 25537c7cbbc..ed2d6a53dcc 100644 --- a/htdocs/langs/es_ES/cron.lang +++ b/htdocs/langs/es_ES/cron.lang @@ -26,7 +26,7 @@ CronCommand=Comando CronList=Tareas programadas CronDelete=Borrar tareas programadas CronConfirmDelete=¿Está seguro de querer eliminar esta tarea programada? -CronExecute=Ejecutar tarea programada +CronExecute=Lanzar ahora CronConfirmExecute=¿Está seguro de querer ejecutar esta tarea programada ahora? CronInfo=Tareas programadas le permite ejecutar tareas que han sido programadas. Las tareas también pueden iniciarse manualmente. CronTask=Tarea @@ -58,7 +58,7 @@ CronNote=Comentario CronFieldMandatory=campos %s son obligatorios CronErrEndDateStartDt=La fecha de finalizacion no puede ser anterior a la fecha de inicio StatusAtInstall=Estado en la instalación del módulo -CronStatusActiveBtn=Calendario +CronStatusActiveBtn=Habilitar programación CronStatusInactiveBtn=Inactivo CronTaskInactive=Este trabajo está desactivado (no programado) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Vaya al menú "Inicio - Herramienta JobDisabled=Tarea desactivada MakeLocalDatabaseDumpShort=Copia local de la base de datos MakeLocalDatabaseDump=Crear una copia local de la base de datos. Los parámetros son: compresión ('gz' o 'bz' o 'ninguno'), tipo de copia de seguridad ('mysql' o 'pgsql'), 1, 'auto' o nombre de archivo para construir, nº de archivos de copia de seguridad a mantener +MakeSendLocalDatabaseDumpShort=Enviar copia de seguridad de la base de datos local +MakeSendLocalDatabaseDump=Enviar copia de seguridad de la base de datos local por e-mail. Los parámetros son: para, de, asunto, mensaje, nombre de archivo (Nombre del archivo enviado), filtro ('sql' solo para copia de seguridad de la base de datos) +BackupIsTooLargeSend=Lo sentimos, el último archivo de copia de seguridad es demasiado grande para enviarlo por correo electrónico +CleanUnfinishedCronjobShort=Limpiar cronjob sin terminar +CleanUnfinishedCronjob=Limpie el cronjob atascado en el procesamiento cuando el proceso ya no se está ejecutando WarningCronDelayed=Atención: para mejorar el rendimiento, cualquiera que sea la próxima fecha de ejecución de las tareas activas, sus tareas pueden retrasarse un máximo de %s horas antes de ejecutarse DATAPOLICYJob=Limpiador de datos y anonimizador JobXMustBeEnabled=La tarea %s debe estar habilitada +EmailIfError=Correo electrónico para advertencia de error +ErrorInBatch=Error al ejecutar el trabajo %s + # Cron Boxes LastExecutedScheduledJob=Última tarea programada ejecutada NextScheduledJobExecute=Siguiente tarea programada para ejecutar NumberScheduledJobError=Número de tareas programadas con error +NumberScheduledJobNeverFinished=Número de trabajos programados que nunca terminaron diff --git a/htdocs/langs/es_ES/datapolicy.lang b/htdocs/langs/es_ES/datapolicy.lang new file mode 100644 index 00000000000..2aae78822c0 --- /dev/null +++ b/htdocs/langs/es_ES/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Política de privacidad de datos +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Módulo para gestionar la Privacidad de los Datos (Conformidad con el RGPD) + +# +# Administration page +# +datapolicySetup = Configuración del módulo de Política de Privacidad de Datos +Deletion = Eliminación de datos +datapolicySetupPage = Dependiendo de las leyes de sus países (Ejemplo Artículo 5 del RGPD), los datos personales deben conservarse durante un período que no supere el necesario para los fines para los que fueron recopilados, excepto para fines de archivo.
    El borrado se realizará automáticamente después de un cierto tiempo sin evento (el tiempo que habrá indicado a continuación). +NB_MONTHS = %s meses +ONE_YEAR = 1 año +NB_YEARS = %s años +DATAPOLICY_TIERS_CLIENT = Cliente +DATAPOLICY_TIERS_PROSPECT = Cliente potencial +DATAPOLICY_TIERS_PROSPECT_CLIENT = Cliente potencial/Cliente +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = No es cliente potencial/cliente +DATAPOLICY_TIERS_FOURNISSEUR = Proveedor +DATAPOLICY_CONTACT_CLIENT = Cliente +DATAPOLICY_CONTACT_PROSPECT = Cliente potencial +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Cliente potencial/Cliente +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = No es cliente potencial/cliente +DATAPOLICY_CONTACT_FOURNISSEUR = Proveedor +DATAPOLICY_ADHERENT = Miembro +DATAPOLICY_Tooltip_SETUP = Tipo de contacto - Indique sus opciones para cada tipo. +DATAPOLICYMail = Configuración de E-Mail +DATAPOLICYSUBJECTMAIL = Asunto del correo electrónico +DATAPOLICYCONTENTMAIL = Contenido del correo electrónico +DATAPOLICYSUBSITUTION = Puede utilizar las siguientes variables en su correo electrónico (LINKACCEPT permite crear un enlace que registre el acuerdo de la persona, LINKREFUSED permite registrar el rechazo de la persona): +DATAPOLICYACCEPT = Mensaje después del acuerdo +DATAPOLICYREFUSE = Mensaje después del desacuerdo +SendAgreementText = Puede enviar un correo electrónico de GDPR a todos sus contactos relevantes (que aún no han recibido un correo electrónico y para los cuales no ha registrado nada sobre su acuerdo de GDPR). Para ello, utilice el siguiente botón. +SendAgreement = Enviar correos electrónicos +AllAgreementSend = Todos los correos electrónicos han sido enviados. +TXTLINKDATAPOLICYACCEPT = Texto para el enlace "acuerdo" +TXTLINKDATAPOLICYREFUSE = Texto para el enlace "desacuerdo" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = RGPD: Tratamiento de datos personales +DATAPOLICY_consentement = Consentimiento obtenido para el tratamiento de datos personales +DATAPOLICY_opposition_traitement = Se opone al tratamiento de sus datos personales +DATAPOLICY_opposition_prospection = Se opone al tratamiento de sus datos personales con fines de prospección + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizar a un tercero +DATAPOLICY_POPUP_ANONYME_TEXTE = No puede eliminar este contacto de Dolibarr porque hay elementos relacionados. De acuerdo con el RGPD, harás anónimos todos estos datos para respetar tus obligaciones. ¿Desea continuar? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilidad RGPD +DATAPOLICY_PORTABILITE_TITLE = Exportación de datos personales +DATAPOLICY_PORTABILITE_CONFIRMATION = Quiere exportar los datos personales de este contacto. ¿Está seguro? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonimizó el %s + +# V2 +DATAPOLICYReturn = Validación del RGPD +DATAPOLICY_date = Fecha de acuerdo/desacuerdo RGPD +DATAPOLICY_send = Fecha de envío del correo electrónico del acuerdo +DATAPOLICYReturn = Validación del RGPD +DATAPOLICY_SEND = Enviar correo electrónico de RGPD +MailSent = E-mail ha sido enviado + +# ERROR +ErrorSubjectIsRequired = Error: el asunto del correo electrónico es obligatorio. Indícalo en la configuración del módulo. +=Debido a un problema técnico, no pudimos registrar su elección. Nos disculpamos por eso. Póngase en contacto con nosotros para enviarnos su elección. +NUMBER_MONTH_BEFORE_DELETION = Número de mes antes de la eliminación diff --git a/htdocs/langs/es_ES/dict.lang b/htdocs/langs/es_ES/dict.lang index d0e6c7147b3..85072512edc 100644 --- a/htdocs/langs/es_ES/dict.lang +++ b/htdocs/langs/es_ES/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint-Martin ##### Civilities ##### CivilityMME=Señora +CivilityMMEShort=Señora CivilityMR=Señor +CivilityMRShort=Señor CivilityMLE=Señorita CivilityMTRE=Don CivilityDR=Doctor diff --git a/htdocs/langs/es_ES/donations.lang b/htdocs/langs/es_ES/donations.lang index 95e6156b36f..ddc8bfd65b6 100644 --- a/htdocs/langs/es_ES/donations.lang +++ b/htdocs/langs/es_ES/donations.lang @@ -7,7 +7,6 @@ AddDonation=Crear una donación NewDonation=Nueva donación DeleteADonation=Eliminar una donación ConfirmDeleteADonation=¿Esta seguro de querer eliminar esta donación? -ShowDonation=Mostrar donación PublicDonation=Donación pública DonationsArea=Área de donaciones DonationStatusPromiseNotValidated=Promesa no validada @@ -26,10 +25,11 @@ LastModifiedDonations=Últimas %s donaciones modificadas DonationRecipient=Beneficiario IConfirmDonationReception=El beneficiario confirma la recepción, como donación, de la siguiente cantidad MinimumAmount=El importe mínimo es %s -FreeTextOnDonations=Texto libre a mostrar a pié de página +FreeTextOnDonations=Texto libre a mostrar a pie de página FrenchOptions=Opciones para Francia DONATION_ART200=Mostrar artículo 200 del CGI si se está interesado DONATION_ART238=Mostrar artículo 238 del CGI si se está interesado DONATION_ART885=Mostrar artículo 885 del CGI si se está interesado DonationPayment=Pago de donación DonationValidated=Donación %s validada +DonationUseThirdparties=Utilice un tercero existente como coordenadas de los donantes diff --git a/htdocs/langs/es_ES/ecm.lang b/htdocs/langs/es_ES/ecm.lang index 61a7c144be5..aef8d8e9a39 100644 --- a/htdocs/langs/es_ES/ecm.lang +++ b/htdocs/langs/es_ES/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Directorio manual ECMSectionAuto=Directorio automático ECMSectionsManual=Árbol manual ECMSectionsAuto=Árbol automático +ECMSectionsMedias=Árbol de medios ECMSections=Directorios ECMRoot=Raíz del ECM ECMNewSection=Nuevo directorio @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Número de archivos en los subdirectorios ECMCreationUser=Creador ECMArea=Área SGD/GED ECMAreaDesc=El área SGD/GED (Sistema Gestión Documental / Gestión Electrónica de Documentos) le permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr. -ECMAreaDesc2=Puede crear directorios manuales y adjuntar los documentos
    Los directorios automáticos son rellenados automáticamente en la adición de un documento en una ficha. +ECMAreaDesc2a=* Los directorios manuales se pueden utilizar para guardar documentos no vinculados a un elemento en particular. +ECMAreaDesc2b=* Los directorios automáticos se llenan automáticamente al agregar documentos desde la página de un elemento. +ECMAreaDesc3=* Los directorios de medios son archivos en el subdirectorio /medias del directorio de documentos, que todos pueden leer sin necesidad de iniciar sesión y sin necesidad de compartir el archivo explícitamente. Se utiliza para almacenar archivos de imagen del módulo de correo electrónico o sitio web. ECMSectionWasRemoved=El directorio %s ha sido eliminado ECMSectionWasCreated=El directorio %s ha sido creado. ECMSearchByKeywords=Buscar por palabras clave diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index 1c8597c2b51..05b14db7725 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=El login %s ya existe. ErrorGroupAlreadyExists=El grupo %s ya existe. ErrorEmailAlreadyExists=El correo electrónico %s ya existe. ErrorRecordNotFound=Registro no encontrado +ErrorRecordNotFoundShort=No encontrado ErrorFailToCopyFile=Error al copiar el archivo '%s' en '%s'. ErrorFailToCopyDir=Error al copiar el directorio '%s' en '%s'. ErrorFailToRenameFile=Error al renombrar el archivo '%s' a '%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=El archivo de imagen es de un formato no soportado (Su PHP n ErrorBadDateFormat=El valor '%s' tiene un formato de fecha no reconocido ErrorWrongDate=¡La fecha no es correcta! ErrorFailedToWriteInDir=Imposible escribir en el directorio %s +ErrorFailedToBuildArchive=Error al crear el archivo de almacenamiento %s ErrorFoundBadEmailInFile=Encontrada sintaxis incorrecta en email en %s líneas en archivo (ejemplo linea %s con email=%s) ErrorUserCannotBeDelete=No puede eliminarse el usuario. Es posible que esté asociado a ítems de Dolibarr ErrorFieldsRequired=Algunos campos obligatorios se han dejado en blanco. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Los valores de la lista deben ser indicados ErrorNoValueForRadioType=Los valores de la lista deben ser indicados ErrorBadFormatValueList=El valor de la lista no puede tener más de una coma: %s, pero es necesaria al menos una: clave,valor ErrorFieldCanNotContainSpecialCharacters=El campo %s no debe contener carácteres especiales -ErrorFieldCanNotContainSpecialNorUpperCharacters=El campo %s no debe contener carácteres especiales, ni caracteres en mayúsculas y no puede contener sólo números +ErrorFieldCanNotContainSpecialNorUpperCharacters=El campo %s no debe contener caracteres especiales, ni mayúsculas, y debe comenzar con un carácter alfabético (a-z) ErrorFieldMustHaveXChar=El campo %s debe tener al menos %s caracteres. ErrorNoAccountancyModuleLoaded=Módulo de contabilidad no activado ErrorExportDuplicateProfil=El nombre de este perfil ya existe para este conjunto de exportación @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript no debe estar desactivado para que esta ErrorPasswordsMustMatch=Las 2 contraseñas indicadas deben corresponderse ErrorContactEMail=Se ha producido un error técnico. Contacte con el administrador al e-mail %s, indicando el código de error %s en su mensaje, o puede también adjuntar una copia de pantalla de esta página. ErrorWrongValueForField=Valor incorrecto para el campo número %s: '%s' no cumple con la regla %s +ErrorHtmlInjectionForField=Campo %s : El valor ' %s ' contiene datos maliciosos no permitidos ErrorFieldValueNotIn=Valor incorrecto del campo número %s: '%s' no es un valor disponible en el campo %s de la tabla %s ErrorFieldRefNotIn=Valor incorrecto para el campo número %s: '%s' no es una referencia existente en %s +ErrorMultipleRecordFoundFromRef=Se encontraron varios registros al buscar desde ref %s . No hay forma de saber qué ID usar. ErrorsOnXLines=%s errores encontrados ErrorFileIsInfectedWithAVirus=¡El antivirus no ha podido validar este archivo (es probable que esté infectado por un virus)! -ErrorSpecialCharNotAllowedForField=Los caracteres especiales no son admitidos por el campo "%s" ErrorNumRefModel=Hay una referencia en la base de datos (%s) y es incompatible con esta numeración. Elimine la línea o renombre la referencia para activar este módulo. ErrorQtyTooLowForThisSupplier=Cantidad insuficiente para este proveedor o no hay precio definido en este producto para este proveedor ErrorOrdersNotCreatedQtyTooLow=Algunos pedidos no se han creado debido a una cantidad demasiado baja @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Los objetos deben tener el estado 'A ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Los objetos deben tener el estado 'Borrador' o 'Deshabilitad' para ser habilitados ErrorNoFieldWithAttributeShowoncombobox=Ningún campo tiene la propiedad 'showoncombobo' en la definición del objeto '%s'. No hay forma de mostrar el combolist. ErrorFieldRequiredForProduct=El campo '%s' es obligatorio para el producto %s +AlreadyTooMuchPostOnThisIPAdress=Ya has publicado demasiado en esta dirección IP. ProblemIsInSetupOfTerminal=Problema en la configuración del terminal %s. ErrorAddAtLeastOneLineFirst=Introduzca al menos una opción ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, el registro ya se transfirió en contabilidad, la eliminación no es posible. @@ -270,28 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Primero debe configurar su plan de cuen ErrorFailedToFindEmailTemplate=No se pudo encontrar la plantilla con el nombre de código %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duración no definida en el servicio. No hay forma de calcular el precio por hora. ErrorActionCommPropertyUserowneridNotDefined=Se requiere el propietario del usuario -ErrorActionCommBadType=El tipo de evento seleccionado (id: %n, código: %s) no existe en el diccionario de tipo de evento +ErrorActionCommBadType=El tipo de evento seleccionado (id: %s, código: %s) no existe en el diccionario de tipo de evento CheckVersionFail=Error de verificación de versión ErrorWrongFileName=El nombre del archivo no puede contener __SOMETHING__ ErrorNotInDictionaryPaymentConditions=No está en el Diccionario de términos de pago, modifíquelo. ErrorIsNotADraft=%s no es un borrador ErrorExecIdFailed=No se puede ejecutar el comando "id" -ErrorBadCharIntoLoginName=Carácter no autorizado en el nombre de inicio de sesión -ErrorRequestTooLarge=Error, solicitud demasiado grande +ErrorBadCharIntoLoginName=Carácter no autorizado en el campo %s +ErrorRequestTooLarge=Error, solicitud demasiado grande o sesión caducada ErrorNotApproverForHoliday=Usted no es el aprobador del día libre %s ErrorAttributeIsUsedIntoProduct=Este atributo se utiliza en una o más variantes de producto ErrorAttributeValueIsUsedIntoProduct=Este valor de atributo se utiliza en una o más variantes de producto -ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column -ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s -ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" -ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by actual object status -ErrorAjaxRequestFailed=Request failed +ErrorPaymentInBothCurrency=Error, todos los montos deben ingresarse en la misma columna +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Intenta pagar facturas en la moneda %s desde una cuenta con la moneda %s +ErrorInvoiceLoadThirdParty=No se puede cargar el objeto de terceros para la factura "%s" +ErrorInvoiceLoadThirdPartyKey=Clave de terceros "%s" no configurada para la factura "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Eliminar línea no está permitido por el estado actual del objeto +ErrorAjaxRequestFailed=Solicitud fallida +ErrorThirpdartyOrMemberidIsMandatory=Tercero o Miembro de la sociedad es obligatorio +ErrorFailedToWriteInTempDirectory=Error al escribir en el directorio temporal +ErrorQuantityIsLimitedTo=La cantidad está limitada a %s +ErrorFailedToLoadThirdParty=No se pudo encontrar/cargar un tercero desde id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Este modo de pago no es una cuenta bancaria +ErrorStripeCustomerNotFoundCreateFirst=El cliente de Stripe no está configurado para este tercero (o configurado en un valor eliminado en el lado de Stripe). Créelo (o vuelva a adjuntarlo) primero. +ErrorCharPlusNotSupportedByImapForSearch=La búsqueda IMAP no puede buscar en el remitente o el destinatario una cadena que contenga el carácter + +ErrorTableNotFound=Tabla %s no encontrada +ErrorValueForTooLow=El valor para %s es demasiado bajo +ErrorValueCantBeNull=El valor para %s no puede ser nulo +ErrorDateOfMovementLowerThanDateOfFileTransmission=La fecha de la transacción bancaria no puede ser anterior a la fecha de transmisión del archivo +ErrorTooMuchFileInForm=Demasiados archivos en el formulario, el número máximo es %s archivo(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=El parámetro PHP upload_max_filesize (%s) es más alto que el parámetro PHP post_max_size (%s). Esta no es una configuración consistente. WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario. -WarningMandatorySetupNotComplete=Haga clic aquí para configurar los parámetros obligatorios +WarningMandatorySetupNotComplete=Haga clic aquí para configurar los parámetros principales WarningEnableYourModulesApplications=Haga clic aquí para activar sus módulos y aplicaciones WarningSafeModeOnCheckExecDir=Atención, está activada la opción PHP safe_mode, el comando deberá estar dentro de un directorio declarado dentro del parámetro php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Ya existe un marcador con este título o esta URL. @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Atención, su archivo (htdocs/conf/conf.php WarningsOnXLines=Alertas en %s líneas fuente WarningNoDocumentModelActivated=No hay ningún modelo para la generación del documento activado. Se tomará un modelo por defecto hasta que se configure el módulo. WarningLockFileDoesNotExists=Atención: Una vez terminada la instalación, deben desactivarse las herramientas de instalación/actualización añadiendo el archivo install.lock en el directorio %s. La ausencia de este archivo representa un fallo grave de seguridad. -WarningUntilDirRemoved=Las alertas de seguridad sólo son visibles a los administradores y permanecen activas hasta que el problema sea resuelto (o si la constante MAIN_REMOVE_INSTALL_WARNING es definida en Configuración->Varios) +WarningUntilDirRemoved=Esta advertencia de seguridad permanecerá activa mientras la vulnerabilidad esté presente. WarningCloseAlways=Aviso, el cierre es realizado aunque la cantidad total difiera entre los elementos de origen y destino. Active esta funcionalidad con precaución. WarningUsingThisBoxSlowDown=Atención, el uso de este panel provoca serias ralentizaciones en las páginas que muestran este panel. WarningClickToDialUserSetupNotComplete=La configuración de ClickToDial para su cuenta de usuario no está completa (vea la pestaña ClickToDial en su ficha de usuario) @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Advertencia, no puede crear directamente una subcuenta, WarningAvailableOnlyForHTTPSServers=Disponible solo si usa una conexión segura HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=El módulo %s no se ha habilitado. Así que puede perderse muchos eventos aquí. WarningPaypalPaymentNotCompatibleWithStrict=El valor 'Estricto' hace que las funciones de pago en línea no funcionen correctamente. Utilice 'Lax' en su lugar. +WarningThemeForcedTo=Advertencia, el tema ha sido forzado a %s por la constante oculta MAIN_FORCETHEME +WarningPagesWillBeDeleted=Advertencia, esto también eliminará todas las páginas/contenedores existentes del sitio web. Debe exportar su sitio web antes, para tener una copia de seguridad para volver a importarlo más tarde. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=La validación automática está deshabilitada cuando la opción para disminuir el stock está configurada en "Validación de facturas". -<<<<<<< HEAD -======= -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Valor no válido RequireAtLeastXString = Requiere al menos %s carácter(es) @@ -347,12 +361,3 @@ BadSetupOfField = Error de configuración incorrecta del campo BadSetupOfFieldClassNotFoundForValidation = Error de configuración incorrecta del campo: clase no encontrada para validación BadSetupOfFieldFileNotFound = Error de configuración incorrecta del campo: no se encontró el archivo para su inclusión BadSetupOfFieldFetchNotCallable = Error de configuración incorrecta del campo: la recuperación no se puede llamar en la clase -<<<<<<< HEAD -======= -======= -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/es_ES/eventorganization.lang b/htdocs/langs/es_ES/eventorganization.lang index 8ea50dc2eb1..09528daad51 100644 --- a/htdocs/langs/es_ES/eventorganization.lang +++ b/htdocs/langs/es_ES/eventorganization.lang @@ -38,6 +38,7 @@ Settings=Configuraciones EventOrganizationSetupPage = Página de configuración de organización de eventos EVENTORGANIZATION_TASK_LABEL = Etiqueta de tareas para crear automáticamente cuando se valida el proyecto EVENTORGANIZATION_TASK_LABELTooltip = Cuando valida un evento organizado, algunas tareas se pueden crear automáticamente en el proyecto

    Por ejemplo:
    Enviar llamada para conferencia
    Enviar llamada para cabina
    Recibir llamada para conferencias
    Recibir llamada para cabina
    Abrir suscripciones a eventos para asistentes
    Enviar recordatorio del evento a los oradores
    Enviar recordatorio del evento al anfitrión del stand
    Enviar recordatorio del evento a los asistentes +EVENTORGANIZATION_TASK_LABELTooltip2=Manténgalo vacío si no necesita crear tareas automáticamente. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoría para agregar a terceros creada automáticamente cuando alguien sugiere una conferencia EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categoría para agregar a terceros creada automáticamente cuando sugieren un stand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Plantilla de correo electrónico para enviar después de recibir una sugerencia de conferencia. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = En el formulario para crear/agregar un # Object # EventOrganizationConfOrBooth= Conferencia o cabina +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Gestionar la organización de eventos ConferenceOrBooth = Conferencia o cabina ConferenceOrBoothTab = Conferencia o cabina AmountPaid = Importe pagado DateOfRegistration = Fecha de registro ConferenceOrBoothAttendee = Asistente a la conferencia o al stand +ApplicantOrVisitor=Solicitante o visitante +Speaker=Altavoz # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Aquí puede votar por una conferencia o sugerir EvntOrgRegistrationConfHelpMessage = Aquí, puede sugerir una nueva conferencia para animar durante el evento. EvntOrgRegistrationBoothHelpMessage = Aquí, puede postularse para tener un stand durante el evento. ListOfSuggestedConferences = Lista de conferencias sugeridas -ListOfSuggestedBooths = Lista de cabinas sugeridas -ListOfConferencesOrBooths=Lista de conferencias o stands del proyecto del evento +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Sugerir una nueva conferencia SuggestBooth = Sugerir un stand ViewAndVote = Ver y votar eventos sugeridos PublicAttendeeSubscriptionGlobalPage = Enlace público para la inscripción al evento PublicAttendeeSubscriptionPage = Enlace público para registrarse solo en este evento MissingOrBadSecureKey = La clave de seguridad no es válida o falta -EvntOrgWelcomeMessage = Este formulario le permite registrarse como nuevo participante del evento: %s +EvntOrgWelcomeMessage = Este formulario le permite registrarse como nuevo participante del evento EvntOrgDuration = Esta conferencia comienza el %s y termina el %s. ConferenceAttendeeFee = Cuota de asistente a la conferencia para el evento: '%s' que ocurre desde %s a %s. BoothLocationFee = Ubicación del stand para el evento: '%s' que ocurre desde %s a %s @@ -129,7 +133,7 @@ LabelOfconference=Etiqueta de conferencia ConferenceIsNotConfirmed=La inscripción no está disponible, la conferencia aún no está confirmada. DateMustBeBeforeThan=%s debe ser anterior a %s DateMustBeAfterThan=%s debe ser posterior a %s - +MaxNbOfAttendeesReached=Se ha alcanzado el número máximo de participantes NewSubscription=Registro OrganizationEventConfRequestWasReceived=Se ha recibido su sugerencia para una conferencia OrganizationEventBoothRequestWasReceived=Se ha recibido su solicitud de stand @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Se ha registrado el pago de la OrganizationEventBulkMailToAttendees=Este es un recordatorio sobre su participación en el evento como asistente. OrganizationEventBulkMailToSpeakers=Este es un recordatorio sobre su participación en el evento como ponente. OrganizationEventLinkToThirdParty=Enlace a un tercero (cliente, proveedor o socio) +OrganizationEvenLabelName=Nombre público de la conferencia o stand NewSuggestionOfBooth=Solicitud de stand NewSuggestionOfConference=Solicitud de conferencia @@ -153,7 +158,7 @@ VoteOk = Tu voto ha sido aceptado. AlreadyVoted = Ya has votado por este evento. VoteError = Se produjo un error durante la votación, inténtelo de nuevo. -SubscriptionOk = Tu registro ha sido validado +SubscriptionOk=Su registro ha sido registrado ConfAttendeeSubscriptionConfirmation = Confirmación de su suscripción a un evento Attendee = Asistente PaymentConferenceAttendee = Pago de asistentes a la conferencia @@ -161,7 +166,9 @@ PaymentBoothLocation = Pago por ubicación de stand DeleteConferenceOrBoothAttendee=Eliminar asistente RegistrationAndPaymentWereAlreadyRecorder=Ya se registró un registro y un pago para el e-mail %s EmailAttendee=E-mail del asistente +EmailCompany=Correo electrónico de la empresa EmailCompanyForInvoice=E-mailde la empresa (para la factura, si es diferente del e-mail del asistente) ErrorSeveralCompaniesWithEmailContactUs=Se han encontrado varias empresas con este e-mail, por lo que no podemos validar automáticamente su registro. Póngase en contacto con nosotros en %s para una validación manual ErrorSeveralCompaniesWithNameContactUs=Se han encontrado varias empresas con este nombre por lo que no podemos validar automáticamente su registro. Póngase en contacto con nosotros en %s para una validación manual NoPublicActionsAllowedForThisEvent=No hay acciones públicas abiertas al público para este evento. +MaxNbOfAttendees=Número máximo de asistentes diff --git a/htdocs/langs/es_ES/exports.lang b/htdocs/langs/es_ES/exports.lang index 06a1de08316..d70f6bc6389 100644 --- a/htdocs/langs/es_ES/exports.lang +++ b/htdocs/langs/es_ES/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Campos exportables ExportedFields=Campos a exportar ImportModelName=Nombre del perfil de importación ImportModelSaved=Perfil de importación guardado como %s. +ImportProfile=Importar perfil DatasetToExport=Conjunto de datos a exportar DatasetToImport=Lote de datos a importar ChooseFieldsOrdersAndTitle=Elija el orden de los campos... @@ -53,8 +54,9 @@ TypeOfLineServiceOrProduct=Tipo de línea (0=producto, 1=servicio) FileWithDataToImport=Archivo que contiene los datos a importar FileToImport=Archivo origen a importar FileMustHaveOneOfFollowingFormat=El archivo de importación debe tener uno de los siguientes formatos -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields +DownloadEmptyExampleShort=Descargar un archivo de muestra +DownloadEmptyExample=Descargue un archivo de plantilla con ejemplos e información sobre los campos que puede importar +StarAreMandatory=En el archivo de plantilla, todos los campos con un * son campos obligatorios ChooseFormatOfFileToImport=Elija el formato de archivo que desea importar haciendo en la imagen %s para seleccionarlo... ChooseFileToImport=Cargue el archivo y luego haga clic en el icono %s para seleccionar el archivo como archivo de importación de origen ... SourceFileFormat=Formato del archivo origen @@ -82,7 +84,7 @@ SelectFormat=Seleccione este formato de archivo de importación RunImportFile=Importación de datos NowClickToRunTheImport=Compruebe los resultados de la simulación de importación. Corrija los errores y vuelva a realizar la prueba.
    Cuando la simulación no muestre errores, puede proceder a importar los datos a la base de datos. DataLoadedWithId=Los datos importados tendrán un campo adicional en cada tabla de base de datos con este ID de importación: %s, para permitir su búsqueda en el caso de investigar un problema relacionado con esta importación. -ErrorMissingMandatoryValue=Dato obligatorio no indicado en el archivo fuente, campo número %s. +ErrorMissingMandatoryValue=Los datos obligatorios están vacíos en el archivo de origen en la columna %s . TooMuchErrors=Todavía hay %s líneas con error, pero su visualización ha sido limitada. TooMuchWarnings=Todavía hay %s líneas con warnings, pero su visualización ha sido limitada. EmptyLine=Línea en blanco @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Puede encontrar los registros de esta importación NbOfLinesOK=Número de líneas sin errores ni warnings: %s. NbOfLinesImported=Número de líneas correctamente importadas: %s. DataComeFromNoWhere=El valor a insertar no corresponde a ningún campo del archivo origen. -DataComeFromFileFieldNb=El valor a insertar se corresponde al campo número %s del archivo origen. -DataComeFromIdFoundFromRef=El valor dado por el campo %s del archivo origen será utilizado para encontrar el ID del objeto padre a usar (el objeto %s con la referencia del archivo origen debe existir en Dolibarr). -DataComeFromIdFoundFromCodeId=El código del campo número %s del archivo de origen se utilizará para encontrar el id del objeto padre a usar (el código del archivo de origen debe existir en el diccionario %s). Tenga en cuenta que si conoce el id, puede usarlo en lugar del código en el archivo de origen. La importación funcionará en los 2 casos. +DataComeFromFileFieldNb=El valor a insertar proviene de la columna %s en el archivo fuente. +DataComeFromIdFoundFromRef=El valor que proviene del archivo fuente se usará para encontrar la identificación del objeto principal que se usará (por lo que el objeto %s que tiene la referencia del archivo fuente debe existir en la base de datos). +DataComeFromIdFoundFromCodeId=El valor del código que proviene del archivo fuente se usará para encontrar la identificación del objeto principal que se usará (por lo que el código del archivo fuente debe existir en el diccionario %s ). Tenga en cuenta que si conoce la identificación, también puede usarla en el archivo fuente en lugar del código. La importación debería funcionar en ambos casos. DataIsInsertedInto=Los datos del archivo de origen se insertarán en el siguiente campo: DataIDSourceIsInsertedInto=El ID del objeto padre encontrado a partir del dato origen, se insertará en el siguiente campo: DataCodeIDSourceIsInsertedInto=El id de la línea padre encontrada a partir del código, se insertará en el siguiente campo: @@ -132,9 +134,14 @@ FormatControlRule=Regla formato de control ## imports updates KeysToUseForUpdates=Clave (columna) a usar para actualizar datos existentes NbInsert=Número de líneas añadidas: %s +NbInsertSim=Número de líneas que se insertarán: %s NbUpdate=Número de líneas actualizadas: %s +NbUpdateSim=Número de líneas que se actualizarán: %s MultipleRecordFoundWithTheseFilters=Se han encontrado varios registros con estos filtros: %s StocksWithBatch=Existencias y ubicación (almacén) de productos con número de lote / serie -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used -SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +WarningFirstImportedLine=La primera(s) línea(s) no se importarán con la selección actual +NotUsedFields=Campos de la base de datos no utilizados +SelectImportFieldsSource = Elija los campos del archivo de origen que desea importar y su campo de destino en la base de datos eligiendo los campos en cada cuadro de selección, o seleccione un perfil de importación predefinido: +MandatoryTargetFieldsNotMapped=Algunos campos de destino obligatorios no están asignados +AllTargetMandatoryFieldsAreMapped=Todos los campos de destino que necesitan un valor obligatorio se asignan +ResultOfSimulationNoError=Resultado de la simulación: Sin error diff --git a/htdocs/langs/es_ES/externalsite.lang b/htdocs/langs/es_ES/externalsite.lang deleted file mode 100644 index d66d608abbf..00000000000 --- a/htdocs/langs/es_ES/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configuración del enlace al sitio web externo -ExternalSiteURL=URL del sitio externo de contenido de iframe HTML -ExternalSiteModuleNotComplete=El módulo Sitio web externo no ha sido configurado correctamente. -ExampleMyMenuEntry=Mi entrada de menú diff --git a/htdocs/langs/es_ES/ftp.lang b/htdocs/langs/es_ES/ftp.lang deleted file mode 100644 index 4dcb9e6c0ce..00000000000 --- a/htdocs/langs/es_ES/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuración del módulo de cliente FTP o SFTP -NewFTPClient=Nueva configuración de conexión FTP / FTPS -FTPArea=Área FTP / FTPS -FTPAreaDesc=Esta pantalla muestra una vista de un servidor FTP y SFTP. -SetupOfFTPClientModuleNotComplete=La configuración del módulo de cliente FTP o SFTP parece estar incompleta -FTPFeatureNotSupportedByYourPHP=Su PHP no admite funciones FTP o SFTP -FailedToConnectToFTPServer=No se pudo conectar al servidor (servidor %s, puerto %s) -FailedToConnectToFTPServerWithCredentials=Error al iniciar sesión en el servidor con inicio de sesión/contraseña definidos -FTPFailedToRemoveFile=No se pudo eliminar el archivo %s. -FTPFailedToRemoveDir=No se pudo eliminar el directorio %s (Compruebe los permisos y que el directorio está vacío). -FTPPassiveMode=Modo pasivo -ChooseAFTPEntryIntoMenu=Elija un sitio FTP / SFTP del menú ... -FailedToGetFile=No se pudieron obtener los archivos %s diff --git a/htdocs/langs/es_ES/holiday.lang b/htdocs/langs/es_ES/holiday.lang index 48fb8be6ac9..e6262965eed 100644 --- a/htdocs/langs/es_ES/holiday.lang +++ b/htdocs/langs/es_ES/holiday.lang @@ -134,6 +134,6 @@ HolidaysToApprove=Vacaciones para aprobar NobodyHasPermissionToValidateHolidays=Nadie tiene permiso para validar días libres HolidayBalanceMonthlyUpdate=Actualización mensual del saldo de vacaciones XIsAUsualNonWorkingDay=%s es normalmente un día NO laborable -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative +BlockHolidayIfNegative=Bloquear si saldo negativo +LeaveRequestCreationBlockedBecauseBalanceIsNegative=La creación de esta solicitud de licencia está bloqueada porque su saldo es negativo ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=La solicitud de abandono %s debe ser borrador, cancelada o rechazada para ser eliminada diff --git a/htdocs/langs/es_ES/hrm.lang b/htdocs/langs/es_ES/hrm.lang index 722722a2f4d..501f717ec88 100644 --- a/htdocs/langs/es_ES/hrm.lang +++ b/htdocs/langs/es_ES/hrm.lang @@ -70,12 +70,23 @@ RequiredSkills=Habilidades requeridas para este trabajo UserRank=Rango de usuario SkillList=Lista de habilidades SaveRank=Guardar rango -knowHow=Saber como -HowToBe=Cómo ser -knowledge=Conocimiento +TypeKnowHow=Saber como +TypeHowToBe=Cómo ser +TypeKnowledge=Conocimiento AbandonmentComment=Comentario de abandono DateLastEval=Fecha última evaluación NoEval=No se ha realizado ninguna evaluación para este empleado HowManyUserWithThisMaxNote=Número de usuarios con este rango HighestRank=Rango más alto SkillComparison=Comparación de habilidades +ActionsOnJob=Eventos en este trabajo +VacantPosition=vacante de trabajo +VacantCheckboxHelper=Al marcar esta opción, se mostrarán los puestos vacantes (vacante de trabajo) +SaveAddSkill = Habilidad(es) añadidas +SaveLevelSkill = Nivel de habilidad(es) guardado +DeleteSkill = Habilidad eliminada +SkillsExtraFields=Atributos suplementarios (Competencias) +JobsExtraFields=Atributos complementarios (Trabajos) +EvaluationsExtraFields=Atributos complementarios (Evaluaciones) +NeedBusinessTravels=Necesita viajes de negocios +NoDescription=Sin descripción diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang index 38d131de05d..a547fdfe6b7 100644 --- a/htdocs/langs/es_ES/install.lang +++ b/htdocs/langs/es_ES/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=El archivo %s no es modificable. Para una primera i ConfFileIsWritable=El archivo %s es modificable. ConfFileMustBeAFileNotADir=El archivo de configuración %s tiene que ser un archivo, no un directorio. ConfFileReload=Recargar toda la información del archivo de configuración. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=El archivo de configuración conf/conf.php no existe o no se puede leer. Ejecutaremos el proceso de instalación para intentar inicializarlo. PHPSupportPOSTGETOk=Este PHP soporta bien las variables POST y GET. PHPSupportPOSTGETKo=Es posible que este PHP no soporte las variables POST y/o GET. Compruebe el parámetro variables_order del php.ini. PHPSupportSessions=Este PHP soporta sesiones @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Indicó quizá un valor incorrecto para el parámetr ErrorFailedToCreateDatabase=Error al crear la base de datos '%s'. ErrorFailedToConnectToDatabase=Error de conexión a la base de datos '%s'. ErrorDatabaseVersionTooLow=Versión de la base de datos (%s) demasiado antigua. Se requiere versión %s o superior. -ErrorPHPVersionTooLow=Versión de PHP demasiado antigua. Se requiere versión %s o superior. +ErrorPHPVersionTooLow=Versión de PHP demasiado antigua. Se requiere la versión %s o superior. +ErrorPHPVersionTooHigh=Versión de PHP demasiado alta. Se requiere la versión %s o anterior. ErrorConnectedButDatabaseNotFound=La conexión al servidor es correcta pero no se encuentra la base de datos '%s' ErrorDatabaseAlreadyExists=La base de datos '%s' ya existe. IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de datos no existe, vuelva atrás y active la opción "Crear base de datos" diff --git a/htdocs/langs/es_ES/interventions.lang b/htdocs/langs/es_ES/interventions.lang index 83471928031..d0348e7112c 100644 --- a/htdocs/langs/es_ES/interventions.lang +++ b/htdocs/langs/es_ES/interventions.lang @@ -66,3 +66,7 @@ RepeatableIntervention=Plantilla de intervención ToCreateAPredefinedIntervention=Para crear una intervención predefinida o recurrente, cree una intervención común y conviértala en plantilla de intervención ConfirmReopenIntervention=¿Está seguro de querer volver a abrir la intervención %s ? GenerateInter=Generar intervención +FichinterNoContractLinked=La intervención %s se ha creado sin un contrato vinculado. +ErrorFicheinterCompanyDoesNotExist=La empresa no existe. No se ha creado la intervención. +NextDateToIntervention=Fecha para la próxima generación de intervención +NoIntervention=Sin intervención diff --git a/htdocs/langs/es_ES/knowledgemanagement.lang b/htdocs/langs/es_ES/knowledgemanagement.lang index 2c0c2c3797b..2029a596f18 100644 --- a/htdocs/langs/es_ES/knowledgemanagement.lang +++ b/htdocs/langs/es_ES/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Artículos KnowledgeRecord = Artículo KnowledgeRecordExtraFields = Campos adicionales para el artículo GroupOfTicket=Grupo de tickets -YouCanLinkArticleToATicketCategory=Puede vincular un artículo a un grupo de tickets (por lo que el artículo se sugerirá durante la calificación de nuevos tickets) +YouCanLinkArticleToATicketCategory=Puede vincular el artículo a un grupo de tickets (para que el artículo se resalte en cualquier ticket de este grupo) SuggestedForTicketsInGroup=Sugerido para tickets cuando el grupo es SetObsolete=Marcar como obsoleto diff --git a/htdocs/langs/es_ES/languages.lang b/htdocs/langs/es_ES/languages.lang index 34495b20bb8..5d67299fa1b 100644 --- a/htdocs/langs/es_ES/languages.lang +++ b/htdocs/langs/es_ES/languages.lang @@ -1,8 +1,9 @@ # Dolibarr language file - Source file is en_US - languages Language_am_ET=Etíope Language_ar_AR=Árabe -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=Árabe (Argelia) Language_ar_EG=Árabe (Egipto) +Language_ar_JO=Árabe (Jordania) Language_ar_MA=Árabe (marruecos) Language_ar_SA=Árabe Language_ar_TN=Árabe (Túnez) @@ -12,9 +13,11 @@ Language_az_AZ=Azerbaiyano Language_bn_BD=Bengalí Language_bn_IN=Bengalí (India) Language_bg_BG=Búlgaro +Language_bo_CN=Tibetano Language_bs_BA=Bosnio Language_ca_ES=Catalán Language_cs_CZ=Checo +Language_cy_GB=Galés Language_da_DA=Danés Language_da_DK=Danés Language_de_DE=Alemán @@ -22,6 +25,7 @@ Language_de_AT=Alemán (Austria) Language_de_CH=Alemán (Suiza) Language_el_GR=Griego Language_el_CY=Griego (Chipre) +Language_en_AE=Inglés (Emiratos Árabes Unidos) Language_en_AU=Inglés (Australia) Language_en_CA=Inglés (Canadá) Language_en_GB=Inglés (Reino Unido) @@ -36,6 +40,7 @@ Language_es_AR=Español (Argentina) Language_es_BO=Español (Bolivia) Language_es_CL=Español (Chile) Language_es_CO=Español (Colombia) +Language_es_CR=Español (Costa Rica) Language_es_DO=Español (República Dominicana) Language_es_EC=Español (Ecuador) Language_es_GT=Español (Guatemala) @@ -83,18 +88,21 @@ Language_lt_LT=Lituano Language_lv_LV=Latvio Language_mk_MK=Macedonio Language_mn_MN=Mongol +Language_my_MM=Birmano Language_nb_NO=Noruego (Bokmål) Language_ne_NP=Nepalí Language_nl_BE=Neerlandés (Bélgica) Language_nl_NL=Holandés Language_pl_PL=Polaco Language_pt_AO=Portugués (Angola) +Language_pt_MZ=Portugués (Mozambique) Language_pt_BR=Portugués (Brasil) Language_pt_PT=Portugués Language_ro_MD=Rumano (Moldavia) Language_ro_RO=Rumano Language_ru_RU=Ruso Language_ru_UA=Ruso (Ucrania) +Language_ta_IN=Tamil Language_tg_TJ=Tayiko Language_tr_TR=Turco Language_sl_SI=Esloveno @@ -106,6 +114,7 @@ Language_sr_RS=Serbio Language_sw_SW=Kiswahili Language_th_TH=Tailandés Language_uk_UA=Ucranio +Language_ur_PK=Urdu Language_uz_UZ=Uzbeco Language_vi_VN=Vietnamita Language_zh_CN=Chino diff --git a/htdocs/langs/es_ES/loan.lang b/htdocs/langs/es_ES/loan.lang index 45cadda49d5..0c8223a69d6 100644 --- a/htdocs/langs/es_ES/loan.lang +++ b/htdocs/langs/es_ES/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Prestamo InterestAmount=Interés CapitalRemain=Capital restante TermPaidAllreadyPaid = Este plazo ya está pagado -CantUseScheduleWithLoanStartedToPaid = No se puede usar el programador para un préstamo con el pago iniciado +CantUseScheduleWithLoanStartedToPaid = No se puede generar una línea de tiempo para un préstamo con un pago iniciado CantModifyInterestIfScheduleIsUsed = No puede modificar el interés si usa el programador # Admin ConfigLoan=Configuración del módulo préstamos -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cuenta contable por defecto para el capital -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Cuenta contable por defecto para el interés -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Cuenta contable por defecto para el seguro +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Editar el prestamo diff --git a/htdocs/langs/es_ES/mailmanspip.lang b/htdocs/langs/es_ES/mailmanspip.lang index 55657883dc2..6e91e73e6a3 100644 --- a/htdocs/langs/es_ES/mailmanspip.lang +++ b/htdocs/langs/es_ES/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Suscripción de prueba ejecutada correctamente MailmanDeletionSuccess=Desuscripción de prueba fue ejecutada correctamente SynchroMailManEnabled=Una actualización de Mailman será efectuada SynchroSpipEnabled=Una actualización de Mailman será efectuada -DescADHERENT_MAILMAN_ADMINPW=Contraseña de administrador Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Contraseña de administrador Mailman DescADHERENT_MAILMAN_URL=URL para las suscripciones Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para las desuscripciones Mailman DescADHERENT_MAILMAN_LISTS=Lista(s) para la suscripción automática de los nuevos miembros (separados por comas) diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index ae24ec982fd..d79f9eeeea8 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -60,7 +60,7 @@ EMailTestSubstitutionReplacedByGenericValues=En modo prueba, las variables de su MailingAddFile=Adjuntar este archivo NoAttachedFiles=Sin archivos adjuntos BadEMail=E-Mail incorrecto -EMailNotDefined=Email not defined +EMailNotDefined=Correo electrónico no definido ConfirmCloneEMailing=¿Está seguro de querer clonar este e-mailing? CloneContent=Clonar mensaje CloneReceivers=Clonar destinatarios @@ -178,3 +178,4 @@ IsAnAnswer=Es una respuesta de un e-mail inicial. RecordCreatedByEmailCollector=Registro creado por el Recopilador de E-Mails %s del e-mail %s DefaultBlacklistMailingStatus=Valor predeterminado para el campo '%s' al crear un nuevo contacto DefaultStatusEmptyMandatory=Vacío pero obligatorio +WarningLimitSendByDay=ADVERTENCIA: La configuración o el contrato de su instancia limita su número de correos electrónicos por día a %s . Intentar enviar más puede provocar que su instancia se ralentice o se suspenda. Póngase en contacto con su soporte si necesita una cuota más alta. diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 94d5ac2923e..74e2e5dbe69 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Sin plantilla definida para este tipo de e-mail AvailableVariables=Variables de substitución disponibles NoTranslation=Sin traducción Translation=Traducción +Translations=Traducciones CurrentTimeZone=Zona horaria PHP (Servidor) EmptySearchString=Ingrese una cadena de búsqueda no vacía EnterADateCriteria=Ingrese un criterio de fecha @@ -199,6 +206,7 @@ Valid=Validar Approve=Aprobar Disapprove=Desaprobar ReOpen=Reabrir +OpenVerb=Abierto Upload=Enviar archivo ToLink=Enlace Select=Seleccionar @@ -216,7 +224,7 @@ UserGroup=Grupo de usuario UserGroups=Grupos de Usuarios NoUserGroupDefined=No hay definido grupo de usuarios Password=Contraseña -PasswordRetype=Repetir contraseña +PasswordRetype=Repite tu contraseña NoteSomeFeaturesAreDisabled=Atención, sólo unos pocos módulos/funcionalidades han sido activados en esta demo. Name=Nombre NameSlashCompany=Nombre / Empresa @@ -244,7 +252,7 @@ Designation=Descripción DescriptionOfLine=Descripción de línea DateOfLine=Fecha de la línea DurationOfLine=Duración de la línea -ParentLine=Parent line ID +ParentLine=ID de línea principal Model=Plantilla documento DefaultModel=Plantilla por defecto Action=Acción @@ -481,6 +489,7 @@ ActionsOnContact=Eventos de este contacto/dirección ActionsOnContract=Eventos respecto al contrato ActionsOnMember=Eventos respecto a este miembro ActionsOnProduct=Eventos sobre este producto +ActionsOnAsset=Eventos para este activo fijo NActionsLate=%s en retraso ToDo=A realizar Completed=Realizado @@ -621,7 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Archivos y documentos adjuntos JoinMainDoc=Unir al documento principal -JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found +JoinMainDocOrLastGenerated=Enviar el documento principal o el último generado si no se encuentra DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -712,6 +721,7 @@ FeatureDisabled=Función desactivada MoveBox=Mover panel Offered=Oferta NotEnoughPermissions=No tiene permisos para esta acción +UserNotInHierachy=Esta acción está reservada a los supervisores de este usuario. SessionName=Nombre sesión Method=Método Receive=Recepción @@ -801,6 +811,7 @@ URLPhoto=Url de la foto/logo SetLinkToAnotherThirdParty=Vincular a otro tercero LinkTo=Enlazar a LinkToProposal=Enlazar a presupuesto +LinkToExpedition= Enlace a la expedición LinkToOrder=Enlazar a pedido LinkToInvoice=Enlazar a factura LinkToTemplateInvoice=Enlazar a plantilla de factura @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Enlace de descarga privado PrivateDownloadLinkDesc=Debe iniciar sesión y necesita permisos para ver o descargar el archivo Download=Descargar DownloadDocument=Descargar el documento +DownloadSignedDocument=Descargar documento firmado ActualizeCurrency=Actualizar el tipo de cambio Fiscalyear=Año fiscal ModuleBuilder=Módulo Builder @@ -1044,6 +1056,7 @@ SearchIntoContracts=Contratos SearchIntoCustomerShipments=Envíos a clientes SearchIntoExpenseReports=Informes de gastos SearchIntoLeaves=Día libre +SearchIntoKM=Base de Conocimientos SearchIntoTickets=Tickets SearchIntoCustomerPayments=Pagos de clientes SearchIntoVendorPayments=Pagos a proveedor @@ -1135,15 +1148,29 @@ EventReminder=Recordatorio evento UpdateForAllLines=Actualización para todas las líneas OnHold=En espera Civility=Título Cortesía -AffectTag=Afectar etiqueta +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Establecer supervisor CreateExternalUser=Crear usuario externo -ConfirmAffectTag=Afectar etiquetas masivas -ConfirmAffectTagQuestion=¿Está seguro de que desea asignar las etiquetas a los %s registros seleccionados? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Rol asignado en cada proyecto +TasksRole=Rol asignado en cada tarea de cada proyecto +ConfirmSetSupervisor=Conjunto de supervisor masivo +ConfirmUpdatePrice=Elija una tarifa de precio de aumento/disminución +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=¿Está seguro de que desea configurar el supervisor para los %sregistros seleccionados? +ConfirmUpdatePriceQuestion=¿Está seguro de que desea actualizar el precio de los %sregistros seleccionados? CategTypeNotFound=No se encontró ningún tipo de etiqueta para el tipo de registros +Rate=Tipo +SupervisorNotFound=Supervisor no encontrado CopiedToClipboard=Copiado al portapapeles InformationOnLinkToContract=Este importe es solo el total de todas las líneas del contrato. No se toma en consideración ninguna noción de tiempo. ConfirmCancel=Estás seguro que quieres cancelar EmailMsgID=MsgID de e-mail +EmailDate=Fecha de correo electrónico +SetToStatus=Set to status %s SetToEnabled=Establecer como activado SetToDisabled=Establecer como desactivado ConfirmMassEnabling=confirmación de habilitación masiva @@ -1169,11 +1196,17 @@ CanceledHidden=Ocultar cancelado CanceledShown=Mostrar cancelado Terminate=Cancelar Terminated=De baja -AddLineOnPosition=Add line on position (at the end if empty) -ConfirmAllocateCommercial=Assign sales representative confirmation -ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? -CommercialsAffected=Sales representatives affected -CommercialAffected=Sales representative affected -YourMessage=Votre message -YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. -UrlToCheck=Url to check +AddLineOnPosition=Agregar línea en la posición (al final si está vacío) +ConfirmAllocateCommercial=Asignar confirmación de representante de ventas +ConfirmAllocateCommercialQuestion=¿Está seguro de que desea asignar los %sregistros seleccionados? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Tu mensaje +YourMessageHasBeenReceived=Tu mensaje ha sido recibido. Le responderemos o contactaremos con usted lo antes posible. +UrlToCheck=URL para comprobar +Automation=Automatización +CreatedByEmailCollector=Creado por el recopilador de correo electrónico +CreatedByPublicPortal=Creado desde el portal público +UserAgent=Agente de usuario +InternalUser=Usuario interno +ExternalUser=Usuario externo diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang index 35d298fca8c..4c9e9824ab0 100644 --- a/htdocs/langs/es_ES/members.lang +++ b/htdocs/langs/es_ES/members.lang @@ -15,7 +15,8 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Otro miembro (nombre: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=Por razones de seguridad, debe poseer los derechos de modificación de todos los usuarios para poder vincular un miembro a un usuario que no sea usted mismo. SetLinkToUser=Vincular a un usuario Dolibarr SetLinkToThirdParty=Vincular a un tercero Dolibarr -MembersCards=Generation of cards for members +MemberCountersArePublic=Los contadores de miembros válidos son públicos +MembersCards=Generación de tarjetas para socios MembersList=Listado de miembros MembersListToValid=Listado de miembros borrador (a validar) MembersListValid=Listado de miembros validados @@ -34,8 +35,10 @@ DateSubscription=Fecha afiliación DateEndSubscription=Fecha fin afiliación EndSubscription=Fin afiliación SubscriptionId=ID afiliación -WithoutSubscription=Sin suscripción -MemberId=ID miembro +WithoutSubscription=Sin membresía +WaitingSubscription=Membresía pendiente +MemberId=Miembro ID +MemberRef=Ref de miembro NewMember=Nuevo miembro MemberType=Tipo de miembro MemberTypeId=ID tipo de miembro @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=El tipo de miembro no puede ser eliminado NewSubscription=Nueva afiliación NewSubscriptionDesc=Utilice este formulario para registrarse como un nuevo miembro de la asociación. Para una renovación, si ya es miembro, póngase en contacto con la asociación a través del e-mail %s. Subscription=Afiliación +AnyAmountWithAdvisedAmount=Cualquier cantidad de su elección, recomendado %s +AnyAmountWithoutAdvisedAmount=Cualquier cantidad de su elección +CanEditAmountShort=Cualquier importe +CanEditAmountShortForValues=recomendado, cualquier importe +MembershipDuration=Duración +GetMembershipButtonLabel=Unirse Subscriptions=Afiliaciones SubscriptionLate=En retraso SubscriptionNotReceived=Afiliación no recibida @@ -135,7 +144,7 @@ CardContent=Contenido de su ficha de miembro # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Queremos informarle que se ha solicitado una nueva membresía.

    ThisIsContentOfYourMembershipWasValidated=Queremos hacerle saber que su membresía fue validada con la siguiente información:

    -ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarle que su nueva suscripción fue grabada.

    +ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarle que se registró su nueva suscripción. Encuentre su factura aquí adjunta.

    ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su nueva suscripción está a punto o ha expirado (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperamos que pueda renovarla

    ThisIsContentOfYourCard=Este es un recordatorio de la información que obtenemos sobre usted. No dude en contactar con nosotros si algo le parece incorrecto.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto del e-mail recibido en caso de auto-inscripción de un invitado @@ -163,7 +172,7 @@ MoreActionsOnSubscription=Acción complementaria sugerida por defecto al registr MoreActionBankDirect=Crear un registro directo en la cuenta bancaria MoreActionBankViaInvoice=Crear una factura y un pago en la cuenta bancaria MoreActionInvoiceOnly=Creación factura sin pago -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Generación de tarjetas de presentación u hojas de direcciones LinkToGeneratedPagesDesc=Esta pantalla le permite crear plantillas de tarjetas de presentación para los miembros o para cada miembro en particular. DocForAllMembersCards=Generación de tarjetas para todos los miembros DocForOneMemberCards=Generación de tarjetas para un miembro en particular @@ -198,8 +207,10 @@ NbOfSubscriptions=Número de cotizaciones AmountOfSubscriptions=Cantidad recaudada de las suscripciones TurnoverOrBudget=Volumen de ventas (empresa) o Presupuesto (asociación o colectivo) DefaultAmount=Importe por defecto cotización -CanEditAmount=El visitante puede elegir/modificar el importe de su cotización -MEMBER_NEWFORM_PAYONLINE=Ir a la página integrada de pago en línea +CanEditAmount=El monto de la suscripción es gratis +CanEditAmountDetail=El visitante puede elegir/editar el importe de su contribución independientemente del tipo de miembro +AmountIsLowerToMinimumNotice=sobre una deuda total de %s +MEMBER_NEWFORM_PAYONLINE=Después del registro en línea, cambie automáticamente a la página de pago en línea ByProperties=Por naturaleza MembersStatisticsByProperties=Estadísticas de los miembros por naturaleza VATToUseForSubscriptions=Tasa de IVA para las afiliaciones @@ -218,3 +229,6 @@ XExternalUserCreated=%s usuarios externos creados ForceMemberNature=Naturaleza del miembro de la fuerza (individual o corporativo) CreateDolibarrLoginDesc=La creación de un login de usuario para los miembros les permite conectarse a la aplicación. En función de las autorizaciones otorgadas, podrán, por ejemplo, consultar o modificar ellos mismos su expediente. CreateDolibarrThirdPartyDesc=Un tercero es la entidad legal que se utilizará en la factura si decide generar una factura para cada contribución. Podrá crearlo más tarde durante el proceso de registro de la contribución. +MemberFirstname=Nombre del miembro +MemberLastname=Apellido del miembro +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/es_ES/modulebuilder.lang b/htdocs/langs/es_ES/modulebuilder.lang index 39891fba3e0..12f0fb3e1b9 100644 --- a/htdocs/langs/es_ES/modulebuilder.lang +++ b/htdocs/langs/es_ES/modulebuilder.lang @@ -1,17 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Esta herramienta solo debe ser utilizada por usuarios o desarrolladores experimentados. Proporciona utilidades para crear o editar su propio módulo. La documentación para el desarrollo manual alternativo está aquí . -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +EnterNameOfModuleDesc=Ingrese el nombre del módulo/aplicación para crear sin espacios. Use mayúsculas para separar palabras (por ejemplo: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Ingrese el nombre del objeto a crear sin espacios. Use mayúsculas para separar palabras (Por ejemplo: MiObjeto, Estudiante, Profesor...). Se generarán el archivo de clase CRUD, pero también el archivo API, las páginas para enumerar/agregar/editar/eliminar objetos y archivos SQL. +EnterNameOfDictionaryDesc=Ingrese el nombre del diccionario para crear sin espacios. Use mayúsculas para separar palabras (Por ejemplo: MyDico...). Se generará el archivo de clase, pero también el archivo SQL. ModuleBuilderDesc2=Ruta donde los módulos son generados/editados (primer directorio para módulos externos definido en %s): %s ModuleBuilderDesc3=Módulos generados/editables encontrados: %s ModuleBuilderDesc4=Un módulo se detecta como 'editable' cuando el archivo %s existe en la raíz del directorio del módulo NewModule=Nuevo módulo NewObjectInModulebuilder=Nuevo objeto -NewDictionary=New dictionary +NewDictionary=Nuevo diccionario ModuleKey=Clave del módulo ObjectKey=Clave del objeto -DicKey=Dictionary key +DicKey=Clave de diccionario ModuleInitialized=Módulo inicializado FilesForObjectInitialized=Ficheros para el nuevo objeto '%s' inicializado FilesForObjectUpdated=Ficheros del objeto '%s' actualizado (ficheros .sql y fichero .class.php) @@ -55,7 +55,7 @@ LanguageFile=Archivo para el idioma ObjectProperties=Propiedades del objeto ConfirmDeleteProperty=¿Está seguro de querer eliminar la propiedad %s? Esto cambiará código en la clase PHP pero también eliminará la columna de la definición de la tabla del objeto. NotNull=No NULL -NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +NotNullDesc=1=Establecer la base de datos en NO NULL, 0=Permitir valores nulos, -1=Permitir valores nulos forzando el valor a NULL si está vacío ('' o 0) SearchAll=Usada para 'buscar todo' DatabaseIndex=Indice de la base de datos FileAlreadyExists=Fichero %s ya existe @@ -130,9 +130,9 @@ UseSpecificEditorURL = Usar un editor específico URL UseSpecificFamily = Usar una familia específica UseSpecificAuthor = Usar un autor especifico UseSpecificVersion = Usar una versión inicial específica -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeRefGeneration=La referencia del objeto debe generarse automáticamente mediante reglas de numeración personalizadas. +IncludeRefGenerationHelp=Marque esto si desea incluir código para administrar la generación de la referencia automáticamente usando reglas de numeración personalizadas +IncludeDocGeneration=Quiero generar algunos documentos a partir de plantillas para el objeto. IncludeDocGenerationHelp=Si marca esto, se generará código para agregar un panel "Generar documento" en el registro. ShowOnCombobox=Mostrar valor en el combobox KeyForTooltip=Clave para tooltip @@ -147,9 +147,10 @@ AsciiToPdfConverter=Conversor de ASCII a PDF TableNotEmptyDropCanceled=La tabla no está vacía. La eliminación ha sido cancelada. ModuleBuilderNotAllowed=El constructor de módulos está disponible pero no permitido para su usuario. ImportExportProfiles=Importar y exportar perfiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Establézcalo en 1 si desea que se llame al método $this->validateField() del objeto para validar el contenido del campo durante la inserción o la actualización. Establezca 0 si no se requiere validación. WarningDatabaseIsNotUpdated=Advertencia: la base de datos no se actualiza automáticamente, debe destruir las tablas y deshabilitar-habilitar el módulo para que se vuelvan a crear las tablas LinkToParentMenu=Menú principal (fk_xxxxmenu) -ListOfTabsEntries=List of tab entries -TabsDefDesc=Define here the tabs provided by your module -TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +ListOfTabsEntries=Lista de entradas de pestañas +TabsDefDesc=Defina aquí las pestañas proporcionadas por su módulo +TabsDefDescTooltip=Las pestañas proporcionadas por su módulo/aplicación se definen en la matriz $this->tabs en el archivo descriptor del módulo. Puede editar manualmente este archivo o usar el editor incorporado. +BadValueForType=Valor incorrecto para el tipo %s diff --git a/htdocs/langs/es_ES/mrp.lang b/htdocs/langs/es_ES/mrp.lang index f7567b70703..3ef082668bf 100644 --- a/htdocs/langs/es_ES/mrp.lang +++ b/htdocs/langs/es_ES/mrp.lang @@ -11,8 +11,8 @@ Bom=Lista de materiales BillOfMaterials=Lista de materiales BillOfMaterialsLines=Líneas de lista de materiales BOMsSetup=Configuración del módulo BOM -ListOfBOMs=Lista de facturas de materiales - BOM -ListOfManufacturingOrders=Listado de Órdenes de Fabricación +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Órdenes de fabricación NewBOM=Nueva lista de materiales ProductBOMHelp=Producto para crear (o desmontar) con esta lista de materiales.
    Nota: Los productos con la propiedad 'Naturaleza del producto' = 'Materia prima' no están visibles en esta lista. BOMsNumberingModules=Modelos de numeración BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=¿Está seguro de que desea clonar la lista de mater ConfirmCloneMo=¿Esta seguro de querer clonar la Orden de Fabricación %s? ManufacturingEfficiency=Eficiencia de fabricación ConsumptionEfficiency=Eficiencia de consumo +Consumption=Consumo ValueOfMeansLoss=El valor de 0.95 significa un promedio de 5%% de pérdida durante la producción ValueOfMeansLossForProductProduced=El valor de 0.95 significa un promedio de 5%% de pérdida del producto producido DeleteBillOfMaterials=Eliminar Lista de material @@ -82,6 +83,7 @@ ProductsToProduce=Productos para producir UnitCost=Costo unitario TotalCost=Coste total BOMTotalCost=El costo para producir esta Lista de Materiales en función del costo de cada cantidad y producto a consumir (use el precio de costo si está definido, de lo contrario, el precio promedio ponderado si está definido, o el mejor precio de compra) +BOMTotalCostService=Si el módulo "Estación de trabajo" está activado y una estación de trabajo está definida por defecto en la línea, entonces el cálculo es "cantidad (convertida en horas) x hora estación de trabajo", de lo contrario, "cantidad (convertida en horas) x precio de costo del servicio" GoOnTabProductionToProduceFirst=Primero debe haber iniciado la producción para cerrar una orden de fabricación (consulte la pestaña '%s'). Pero puedes cancelarlo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit no se puede usar en una Lista de Materiales (BOM) o una Orden de Fabricación (MO) Workstation=Puesto de trabajo @@ -109,6 +111,10 @@ THMEstimatedHelp=Esta tarifa permite definir un costo de previsión del artícul BOM=Lista de materiales CollapseBOMHelp=Puede definir la visualización predeterminada de los detalles de la nomenclatura en la configuración del módulo Lista de Materiales MOAndLines=Órdenes de fabricación y líneas -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +MoChildGenerate=Generar MO hijo +ParentMo=MO Padre +MOChild=MO Hijo +BomCantAddChildBom=La nomenclatura %s ya está presente en el árbol que conduce a la nomenclatura %s +BOMNetNeeds = Necesidades netas de la lista de materiales +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/es_ES/oauth.lang b/htdocs/langs/es_ES/oauth.lang index 5ab2c5d0e02..c013fee5b5e 100644 --- a/htdocs/langs/es_ES/oauth.lang +++ b/htdocs/langs/es_ES/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Se ha generado y guardado en la base de datos local un token NewTokenStored=Token recibido y guardado ToCheckDeleteTokenOnProvider=Haga clic aquí para comprobar/eliminar la autorización guardada por el proveedor de OAuth %s TokenDeleted=Token eliminado -RequestAccess=Haga clic aquí para consultar/renovar acceso y recibir un nuevo token a guardar +RequestAccess=Haga clic aquí para solicitar/renovar el acceso y recibir un nuevo token DeleteAccess=Haga clic aquí para eliminar el token UseTheFollowingUrlAsRedirectURI=Utilice la siguiente dirección URL como redireccionamiento URI al crear su credencial de su proveedor OAuth: -ListOfSupportedOauthProviders=Indique aquí la credencial proporcionada por su proveedor de OAuth2. Sólo son mostrados los proveedores OAuth2 soportados. Esta configuración puede ser usada por otros módulos que requieren autenticación OAuth2. -OAuthSetupForLogin=Página para generar un token OAuth +ListOfSupportedOauthProviders=Agregue sus proveedores de tokens OAuth2. Luego, vaya a la página de administración de su proveedor de OAuth para crear/obtener una ID y un secreto de OAuth y guárdelos aquí. Una vez hecho esto, cambie a la otra pestaña para generar su token. +OAuthSetupForLogin=Página para administrar (generar/eliminar) tokens OAuth SeePreviousTab=Ver la pestaña previa +OAuthProvider=Proveedor de OAuth OAuthIDSecret=ID OAuth y contraseña TOKEN_REFRESH=Refresco del token actual TOKEN_EXPIRED=Token expirado @@ -23,10 +24,13 @@ TOKEN_DELETE=Eliminar token guardado OAUTH_GOOGLE_NAME=Servicio Oauth Google OAUTH_GOOGLE_ID=Id Oauth Google OAUTH_GOOGLE_SECRET=Oauth Google Secret -OAUTH_GOOGLE_DESC=Vaya a esta página y luego "Credenciales" para crear credenciales de OAuth OAUTH_GITHUB_NAME=Servicio Oauth GitHub OAUTH_GITHUB_ID=Id Oauth Github OAUTH_GITHUB_SECRET=Oauth GitHub Secret -OAUTH_GITHUB_DESC=Vaya a en esta página y luego "Registrar una nueva aplicación" para crear credenciales de OAuth. +OAUTH_URL_FOR_CREDENTIAL=Vaya a esta página para crear u obtener su ID y secreto de OAuth OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=ID de OAuth +OAUTH_SECRET=Secreto OAuth +OAuthProviderAdded=Proveedor de OAuth agregado +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Ya existe una entrada de OAuth para este proveedor y etiqueta diff --git a/htdocs/langs/es_ES/orders.lang b/htdocs/langs/es_ES/orders.lang index 7244aed6e6b..ca42b8cba96 100644 --- a/htdocs/langs/es_ES/orders.lang +++ b/htdocs/langs/es_ES/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Ya había un pedido abierto vinculado a este presupuesto, por lo que no se ha creado ningún otro pedido automáticamente OrdersArea=Área pedidos de clientes SuppliersOrdersArea=Área pedidos a proveedores OrderCard=Ficha pedido @@ -68,6 +69,8 @@ CreateOrder=Crear pedido RefuseOrder=Rechazar el pedido ApproveOrder=Aprobar pedido Approve2Order=Aprobar pedido (segundo nivel) +UserApproval=Usuario para aprobación +UserApproval2=Usuario para aprobación (segundo nivel) ValidateOrder=Validar el pedido UnvalidateOrder=Desvalidar el pedido DeleteOrder=Eliminar el pedido @@ -102,6 +105,8 @@ ConfirmCancelOrder=¿Está seguro de querer anular este pedido? ConfirmMakeOrder=¿Está seguro de querer confirmar este pedido en fecha de %s ? GenerateBill=Facturar ClassifyShipped=Clasificar enviado +PassedInShippedStatus=clasificado entregado +YouCantShipThis=No puedo clasificar esto. Por favor, compruebe los permisos de usuario DraftOrders=Pedidos borrador DraftSuppliersOrders=Pedidos a proveedor en borrador OnProcessOrders=Pedidos en proceso diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index ef32ec62163..6dafd0a7044 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Aprobación pedido a proveedor Notify_ORDER_SUPPLIER_REFUSE=Rechazo pedido a proveedor Notify_PROPAL_VALIDATE=Validación presupuesto cliente Notify_PROPAL_CLOSE_SIGNED=Presupuesto cerrado como firmado +Notify_PROPAL_CLOSE_SIGNED_WEB=Presupuesto de cliente cerrado y firmado en la página del portal Notify_PROPAL_CLOSE_REFUSED=Presupuesto cerrado como rechazado +Notify_PROPAL_CLOSE_REFUSED_WEB=Presupuesto de cliente cerrado y rechazado en la página del portal Notify_PROPAL_SENTBYMAIL=Envío presupuesto por e-mail Notify_WITHDRAW_TRANSMIT=Transmisión domiciliación Notify_WITHDRAW_CREDIT=Abono domiciliación @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=... o construya su perfil
    (modo de selección manual DemoFundation=Gestión de miembros de una asociación DemoFundation2=Gestión de miembros y tesorería de una asociación DemoCompanyServiceOnly=Empresa o trabajador por cuenta propia realizando servicios -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=Administrar una tienda con una caja de efectivo DemoCompanyProductAndStocks=Tienda de venta de productos con punto de venta DemoCompanyManufacturing=Empresa de fabricación de productos DemoCompanyAll=Empresa con actividades múltiples (todos los módulos principales) @@ -181,6 +183,7 @@ SizeUnitfoot=pie SizeUnitpoint=punto BugTracker=Incidencias SendNewPasswordDesc=Este formulario le permite obtener una nueva contraseña. Le será enviada a su e-mail.
    El cambio será efectivo una vez haga clic en el enlace de confirmación del e-mail.
    Revise su e-mail. +EnterNewPasswordHere=Ingrese su nueva contraseña aquí BackToLoginPage=Volver a la página de conexión AuthenticationDoesNotAllowSendNewPassword=El modo de autentificación de Dolibarr está configurado como "%s".
    En este modo Dolibarr no puede conocer ni modificar su contraseña
    Contacte con su administrador para conocer las modalidades de cambio. EnableGDLibraryDesc=Instale o active la libreria GD en su PHP para poder usar esta opción @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Factura %s ha sido validada. EMailTextInvoicePayed=La factura %s ha sido pagada. EMailTextProposalValidated=El presupuesto %s ha sido validado. EMailTextProposalClosedSigned=El presupuesto %s ha sido cerrado y firmado. +EMailTextProposalClosedSignedWeb=El presupuesto %s se ha cerrado y firmado en la página del portal. +EMailTextProposalClosedRefused=El presupuesto %s ha sido cerrado y rechazado. +EMailTextProposalClosedRefusedWeb=El presupuesto %s se ha cerrado y rechazado en la página del portal. EMailTextOrderValidated=El pedido %s ha sido validado. EMailTextOrderApproved=El pedido %s ha sido aprobado EMailTextOrderValidatedBy=El pedido %s ha sido registrado por %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = ¿Está seguro de que desea "%s"? ConfirmBtnCommonTitle = Confirme su acción CloseDialog = Cerrar Autofill = Autorellenar + +# externalsite +ExternalSiteSetup=Configuración del enlace al sitio web externo +ExternalSiteURL=URL del sitio externo de contenido de iframe HTML +ExternalSiteModuleNotComplete=El módulo Sitio web externo no ha sido configurado correctamente. +ExampleMyMenuEntry=Mi entrada de menú + +# ftp +FTPClientSetup=Configuración del módulo de cliente FTP o SFTP +NewFTPClient=Nueva configuración de conexión FTP/SFTP +FTPArea=Área FTP/SFTP +FTPAreaDesc=Esta pantalla muestra una vista de un servidor FTP y SFTP. +SetupOfFTPClientModuleNotComplete=La configuración del módulo de cliente FTP o SFTP parece estar incompleta +FTPFeatureNotSupportedByYourPHP=Su PHP no admite funciones FTP o SFTP +FailedToConnectToFTPServer=No se pudo conectar al servidor (servidor %s, puerto %s) +FailedToConnectToFTPServerWithCredentials=Error al iniciar sesión en el servidor con inicio de sesión/contraseña definidos +FTPFailedToRemoveFile=No se pudo eliminar el archivo %s. +FTPFailedToRemoveDir=No se pudo eliminar el directorio %s (Compruebe los permisos y que el directorio está vacío). +FTPPassiveMode=Modo pasivo +ChooseAFTPEntryIntoMenu=Elija un sitio FTP / SFTP del menú ... +FailedToGetFile=No se pudieron obtener los archivos %s +ErrorFTPNodisconnect=Error al desconectar el servidor FTP/SFTP +FileWasUpload=Se ha cargado el archivo %s +FTPFailedToUploadFile=No se pudo cargar el archivo %s . +AddFolder=Crear carpeta +FileWasCreateFolder=Se ha creado la carpeta %s +FTPFailedToCreateFolder=No se pudo crear la carpeta %s . diff --git a/htdocs/langs/es_ES/partnership.lang b/htdocs/langs/es_ES/partnership.lang index 14359e6c6ac..ba961ddcc42 100644 --- a/htdocs/langs/es_ES/partnership.lang +++ b/htdocs/langs/es_ES/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Gestión Asociaciones PartnershipDescription=Gestión Módulo Asociaciones PartnershipDescriptionLong= Gestión Módulo Asociaciones Partnership=Partner +Partnerships=Asociaciones AddPartnership=Agregar asociación CancelPartnershipForExpiredMembers=Asociación: cancelar la asociación de miembros con suscripciones caducadas PartnershipCheckBacklink=Asociación: compruebe el vínculo de retroceso de referencia @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Asociación: compruebe el vínculo de retroceso de refe # Menu # NewPartnership=Nueva Asociación +NewPartnershipbyWeb= Su asociación se agregó con éxito. ListOfPartnerships=Listado de Asociaciones # @@ -42,6 +44,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks para comprobar PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Número de días antes de cancelar el estado de una asociación cuando una suscripción ha expirado ReferingWebsiteCheck=Comprobación de la referencia al sitio ReferingWebsiteCheckDesc=Puede habilitar una función para verificar que sus socios hayan agregado un vínculo de retroceso a los dominios de su sitio web en su propio sitio web. +PublicFormRegistrationPartnerDesc=Dolibarr puede proporcionarle una URL/sitio web público para permitir que los visitantes externos soliciten ser parte del programa de asociación. # # Object @@ -59,6 +62,12 @@ BacklinkNotFoundOnPartnerWebsite=Vínculo de retroceso no encontrado en el sitio ConfirmClosePartnershipAsk=¿Está seguro de que desea cancelar esta asociación? PartnershipType=Tipo de asociación PartnershipRefApproved=Asociación %s aprobada +KeywordToCheckInWebsite=Si desea verificar que una palabra clave determinada esté presente en el sitio web de cada socio, defina esta palabra clave aquí +PartnershipDraft=Borrador +PartnershipAccepted=Aceptado +PartnershipRefused=Rechazado +PartnershipCanceled=Anulado +PartnershipManagedFor=Los Partners son # # Template Mail @@ -82,11 +91,6 @@ CountLastUrlCheckError=Número de errores para la última verificación de URL LastCheckBacklink=Fecha de la última verificación de URL ReasonDeclineOrCancel=Razón de rechazo -# -# Status -# -PartnershipDraft=Borrador -PartnershipAccepted=Aceptado -PartnershipRefused=Rechazado -PartnershipCanceled=Anulado -PartnershipManagedFor=Los Partners son +NewPartnershipRequest=Nueva solicitud de asociación +NewPartnershipRequestDesc=Este formulario le permite solicitar ser parte de uno de nuestros programas de asociación. Si necesita ayuda para completar este formulario, comuníquese por correo electrónico %s . + diff --git a/htdocs/langs/es_ES/paypal.lang b/htdocs/langs/es_ES/paypal.lang index fe9b97d6a19..daf565deb6d 100644 --- a/htdocs/langs/es_ES/paypal.lang +++ b/htdocs/langs/es_ES/paypal.lang @@ -34,3 +34,4 @@ ARollbackWasPerformedOnPostActions=Se realizó una reversión en todas las accio ValidationOfPaymentFailed=La validación del pago Paypal ha fallado CardOwner=Titular de la tarjeta PayPalBalance=Crédito paypal +OnlineSubscriptionPaymentLine=Suscripción en línea registrada en %s
    Pagada a través de %s
    Dirección IP de origen: %s
    ID de transacción: %s diff --git a/htdocs/langs/es_ES/productbatch.lang b/htdocs/langs/es_ES/productbatch.lang index a6281edf01a..beb5d9b7194 100644 --- a/htdocs/langs/es_ES/productbatch.lang +++ b/htdocs/langs/es_ES/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Lote/Serie %s printEatby=Caducidad: %s printSellby=Límite venta: %s printQty=Cant.: %d +printPlannedWarehouse=Almacén: %s AddDispatchBatchLine=Añada una línea para despacho por caducidad WhenProductBatchModuleOnOptionAreForced=Cuando el módulo de lotes/series está activado, el incremento y disminución de stock se fuerza en la validación de los envíos y la recepción manual y no se puede editar. Las otras opciones pueden ser definidas como desee. ProductDoesNotUseBatchSerial=Este producto no usa lotes/series @@ -43,3 +44,4 @@ HideLots=Ocultar lotes OutOfOrder=Fuera de servicio InWorkingOrder=En orden de trabajo ToReplace=Reemplazar +CantMoveNonExistantSerial=Error. Pides un movimiento en un registro de una serie que ya no existe. Puede ser que tome la misma serie en el mismo almacén varias veces en el mismo envío o que haya sido utilizada por otro envío. Retire este envío y prepare otro. diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index c11249bb2cf..0cb9839ff64 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=¿Está seguro de querer eliminar esta línea de produc ProductSpecial=Especial QtyMin=Cantidad mínima PriceQtyMin=Precio cantidad mínima -PriceQtyMinCurrency=Precio (moneda) para esta cantidad mínima (sin descuento) +PriceQtyMinCurrency=Precio (moneda) para esta cantidad +WithoutDiscount=Sin descuento VATRateForSupplierProduct=Tasa IVA (para este producto/proveedor) DiscountQtyMin=Descuento para esta cantidad NoPriceDefinedForThisSupplier=Ningún precio/cant. definido para este proveedor/producto @@ -346,7 +347,7 @@ UseProductFournDesc=Añade una funcionalidad para definir la descripción del pr ProductSupplierDescription=Descripción del proveedor para el producto. UseProductSupplierPackaging=Utilice el embalaje según los precios del proveedor (recalcule las cantidades según el conjunto de envases según el precio del proveedor al agregar / actualizar la línea en los documentos del proveedor) PackagingForThisProduct=Embalaje -PackagingForThisProductDesc=En el pedido del proveedor, solicitará automáticamente esta cantidad (o un múltiplo de esta cantidad). No puede ser inferior a la cantidad mínima de compra +PackagingForThisProductDesc=Automáticamente comprará un múltiplo de esta cantidad. QtyRecalculatedWithPackaging=La cantidad de la línea se recalculó de acuerdo con el embalaje del proveedor. #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Marque esto si desea un mensaje para el usuario al crear/validar DefaultBOM=Lista de materiales predeterminada DefaultBOMDesc=La lista de materiales predeterminada que se recomienda utilizar para fabricar este producto. Este campo solo se puede establecer si la naturaleza del producto es '%s'. Rank=Rango +MergeOriginProduct=Producto duplicado (producto que desea eliminar) +MergeProducts=Fusionar productos +ConfirmMergeProducts=¿Está seguro de que desea fusionar el producto elegido con el actual? Todos los objetos vinculados (facturas, pedidos, ...) se moverán al producto actual, después de lo cual se eliminará el producto elegido. +ProductsMergeSuccess=Los productos se han fusionado +ErrorsProductsMerge=Errores en la fusión de productos SwitchOnSaleStatus=Cambiar estado de oferta SwitchOnPurchaseStatus=Activar el estado de la compra StockMouvementExtraFields= Campos adicionales (movimientos de stock) +InventoryExtraFields= Campos adicionales (inventario) +ScanOrTypeOrCopyPasteYourBarCodes=Escanee o escriba o copie/pegue sus códigos de barras +PuttingPricesUpToDate=Actualizar precios con precios actuales conocidos +PMPExpected=PMP esperado +ExpectedValuation=Valoración Esperada +PMPReal=PMP real +RealValuation=Valoración real +ConfirmEditExtrafield = Seleccione el campo extra que desea modificar +ConfirmEditExtrafieldQuestion = ¿Está seguro de que desea modificar este campo adicional? +ModifyValueExtrafields = Modificar valor de un campo extra diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index b96058a2106..93aa683671a 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Etiqueta proyecto ProjectsArea=Área Proyectos ProjectStatus=Estado del proyecto SharedProject=Proyecto compartido -PrivateProject=Assigned contacts +PrivateProject=Contactos asignados ProjectsImContactFor=Proyectos de los que soy contacto explícito AllAllowedProjects=Todos los proyectos que puedo leer (míos + públicos) AllProjects=Todos los proyectos @@ -23,6 +23,7 @@ TasksPublicDesc=Esta vista muestra todos los proyectos y tareas en los que usted TasksDesc=Esta vista muestra todos los proyectos y tareas (sus permisos de usuario le permiten tener una visión completa). AllTaskVisibleButEditIfYouAreAssigned=Todas las tareas de este proyecto son visibles, pero solo puede indicar tiempos en las tareas que tenga asignadas. Asígnese tareas si desea indicar tiempos en ellas. OnlyYourTaskAreVisible=Solo las tareas asignadas a usted son visibles. Si necesita ingresar el tiempo en una tarea y si la tarea no está visible aquí, entonces debe asignarse la tarea a usted mismo. +ImportDatasetProjects=Proyectos u oportunidades ImportDatasetTasks=Tareas de proyectos ProjectCategories=Etiquetas/categorías de proyectos NewProject=Nuevo proyecto @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Importe oportunidades de proyectos por esta OpportunitiesStatusForProjects=Importe oportunidades de proyectos por estado ShowProject=Ver proyecto ShowTask=Ver tarea +SetThirdParty=Establecer tercero SetProject=Definir proyecto +OutOfProject=Fuera del proyecto NoProject=Ningún proyecto definido NbOfProjects=Numero de proyectos NbOfTasks=Numero de tareas @@ -122,7 +125,8 @@ ValidateProject=Validar proyecto ConfirmValidateProject=¿Está seguro de querer validar este proyecto? CloseAProject=Cerrar proyecto ConfirmCloseAProject=¿Está seguro de querer cerrar este proyecto? -AlsoCloseAProject=Cerrar también el proyecto (mantener abierto si todavía necesita seguir las tareas de producción en él) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Reabrir proyecto ConfirmReOpenAProject=Está seguro de querer reabrir este proyecto? ProjectContact=Contactos del proyecto @@ -165,7 +169,7 @@ OpportunityProbability=Probabilidad de oportunidades OpportunityProbabilityShort=Prob. Opor. OpportunityAmount=Importe oportunidad OpportunityAmountShort=Importe oportunidad -OpportunityWeightedAmount=Cantidad ponderada de oportunidad +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Cantidad ponderada op. OpportunityAmountAverageShort=Importe medio oportunidad OpportunityAmountWeigthedShort=Importe ponderado oportunidad @@ -238,7 +242,7 @@ OppStatusPENDING=Pendiente OppStatusWON=Ganado OppStatusLOST=Perdido Budget=Presupuesto -AllowToLinkFromOtherCompany=Permitir vincular proyecto de otra empresa

    Valores admitidos:
    - Mantener vacío: puede vincular cualquier proyecto de la empresa (predeterminado)
    - "all": puede vincular cualquier proyecto, incluso proyectos de otras empresas
    - Una lista de identificación de terceros separada por comas: puede vincular todos los proyectos de esos terceros definidos (Ejemplo: 123,4795,53)
    +AllowToLinkFromOtherCompany=Permitir vincular un elemento con un proyecto de otra empresa

    Valores admitidos:
    - Mantener vacío: puede vincular elementos con cualquier proyecto de la misma empresa (predeterminado)
    - "all": puede vincular elementos con cualquier proyecto, incluso proyectos de otras empresas
    - Una lista de ID de terceros separados por comas: puede vincular elementos con cualquier proyecto de estos terceros (Ejemplo: 123,4795,53)
    LatestProjects=Últimos %s presupuestos LatestModifiedProjects=Últimos %s proyectos modificados OtherFilteredTasks=Otras tareas filtradas @@ -259,7 +263,7 @@ TimeSpentInvoiced=Tiempo transcurrido facturado TimeSpentForIntervention=Tiempos dedicados TimeSpentForInvoice=Tiempos dedicados OneLinePerUser=Una línea por usuario -ServiceToUseOnLines=Servicio a utilizar en lineas. +ServiceToUseOnLines=Servicio a utilizar en líneas por defecto InvoiceGeneratedFromTimeSpent=Se ha generado la factura %s a partir del tiempo empleado en el proyecto InterventionGeneratedFromTimeSpent=Se ha generado la intervención %s a partir del tiempo empleado en el proyecto ProjectBillTimeDescription=Verifique si ingresa la hoja de horas trabajadas en las tareas del proyecto y planea generar factura(s) a partir de la hoja para facturar al cliente del proyecto (no lo verifique si planea crear una factura que no se base en las hojas de horas trabajadas ingresadas). Nota: Para generar la factura, vaya a la pestaña 'Tiempo empleado' del proyecto y seleccione las líneas a incluir. @@ -282,15 +286,16 @@ ProfitIsCalculatedWith=El beneficio se calcula usando AddPersonToTask=Agregar también a las tareas UsageOrganizeEvent=Uso: Organización de eventos PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Clasifique el proyecto como cerrado cuando se completen todas sus tareas (progreso 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: los proyectos existentes con todas las tareas en 100%% no se verán afectados: tendrás que cerrarlos manualmente. Esta opción solo afecta a proyectos abiertos. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: los proyectos existentes con todas las tareas ya configuradas en un progreso de 100%% no se verán afectados: deberá cerrarlos manualmente. Esta opción solo afecta a los proyectos abiertos. SelectLinesOfTimeSpentToInvoice=Seleccione las líneas de tiempo invertido que no se hayan facturado y, a continuación, realice la acción masiva "Generar factura" para facturarlas. ProjectTasksWithoutTimeSpent=Tareas de proyecto sin tiempo invertido FormForNewLeadDesc=Gracias por llenar el siguiente formulario para contactarnos. También puede enviarnos un e-mail directamente a %s. ProjectsHavingThisContact=Proyectos que tienen este contacto StartDateCannotBeAfterEndDate=La fecha de finalizacion no puede ser anterior a la fecha de inicio ErrorPROJECTLEADERRoleMissingRestoreIt=Falta el rol "PROJECTLEADER" o se ha desactivado, restablezcalo en el diccionario de tipos de contacto -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +LeadPublicFormDesc=Puede habilitar aquí una página pública para permitir que sus prospectos hagan un primer contacto con usted desde un formulario público en línea +EnablePublicLeadForm=Habilitar el formulario público de contacto +NewLeadbyWeb=Su mensaje o solicitud ha sido grabada. Le responderemos o contactaremos con usted pronto. +NewLeadForm=Nuevo formulario de contacto +LeadFromPublicForm=Cliente potencial en línea desde un formulario público +ExportAccountingReportButtonLabel=Obtener informe diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index 2f31aab4e89..9eb5f02bdd7 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Tiempo de entrega SetAvailability=Definir el tiempo de entrega AfterOrder=desde la firma OtherProposals=Otros presupuestos + ##### Availability ##### AvailabilityTypeAV_NOW=Inmediata AvailabilityTypeAV_1W=1 semana AvailabilityTypeAV_2W=2 semanas AvailabilityTypeAV_3W=3 semanas AvailabilityTypeAV_1M=1 mes -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Comercial seguimiento presupuesto TypeContact_propal_external_BILLING=Contacto cliente de facturación presupuesto TypeContact_propal_external_CUSTOMER=Contacto cliente seguimiento presupuesto TypeContact_propal_external_SHIPPING=Contacto cliente para envíos + # Document models -DocModelAzurDescription=Un modelo de presupuesto completa (implementación anterior de la plantilla Cyan) -DocModelCyanDescription=Un modelo de presupuesto completo -DefaultModelPropalCreate=Modelo por defecto -DefaultModelPropalToBill=Modelo por defecto al cerrar un presupuesto (a facturar) -DefaultModelPropalClosed=Modelo por defecto al cerrar un presupuesto (no facturado) -ProposalCustomerSignature=Aceptación por escrito, sello de la empresa, fecha y firma -ProposalsStatisticsSuppliers=Estadísticas presupuestos de proveedores -CaseFollowedBy=Caso seguido por -SignedOnly=Solo firmado -NoSign=Establecer no firmado -NoSigned=establecer no firmado CantBeNoSign=no se puede establecer no firmado +CaseFollowedBy=Caso seguido por ConfirmMassNoSignature=Confirmación masiva no firmado ConfirmMassNoSignatureQuestion=¿Está seguro de que desea configurar los registros seleccionados como no firmados? -IsNotADraft=no es un borrador -PassedInOpenStatus=ha sido validado -Sign=Firma -Signed=firmado -ConfirmMassValidation=Confirmación de validación masiva ConfirmMassSignature=Confirmación de firma masiva -ConfirmMassValidationQuestion=¿Está seguro de que desea validar los registros seleccionados? ConfirmMassSignatureQuestion=¿Está seguro de que desea firmar los registros seleccionados? -IdProposal=ID de Presupuesto +ConfirmMassValidation=Confirmación de validación masiva +ConfirmMassValidationQuestion=¿Está seguro de que desea validar los registros seleccionados? +ConfirmRefusePropal=¿Está seguro de querer rechazar este presupuesto? +ContractSigned=Contrato firmado +DefaultModelPropalClosed=Modelo por defecto al cerrar un presupuesto (no facturado) +DefaultModelPropalCreate=Modelo por defecto +DefaultModelPropalToBill=Modelo por defecto al cerrar un presupuesto (a facturar) +DocModelAzurDescription=Un modelo de presupuesto completa (implementación anterior de la plantilla Cyan) +DocModelCyanDescription=Un modelo de presupuesto completo +FichinterSigned=Intervención firmada IdProduct=ID del Producto +IdProposal=ID de Presupuesto +IsNotADraft=no es un borrador LineBuyPriceHT=Precio de compra Importe neto de impuestos por línea -SignPropal=Aceptar presupuesto +NoSign=Rechazar +NoSigned=establecer no firmado +PassedInOpenStatus=ha sido validado +PropalAlreadyRefused=Presupuesto ya rechazado +PropalAlreadySigned=Presupuesto ya aceptado +PropalRefused=Presupuesto rechazado +PropalSigned=Presupuesto aceptado +ProposalCustomerSignature=Aceptación por escrito, sello de la empresa, fecha y firma +ProposalsStatisticsSuppliers=Estadísticas presupuestos de proveedores RefusePropal=Rechazar presupuesto Sign=Firma -NoSign=Establecer no firmado -PropalAlreadySigned=Presupuesto ya aceptado -PropalAlreadyRefused=Presupuesto ya rechazado -PropalSigned=Presupuesto aceptado -PropalRefused=Presupuesto rechazado -ConfirmRefusePropal=¿Está seguro de querer rechazar este presupuesto? +SignContract=Firmar contrato +SignFichinter=Firmar intervención +SignPropal=Aceptar presupuesto +Signed=firmado +SignedOnly=Solo firmado diff --git a/htdocs/langs/es_ES/receptions.lang b/htdocs/langs/es_ES/receptions.lang index b6f437b9d45..c7d6f1f7e3c 100644 --- a/htdocs/langs/es_ES/receptions.lang +++ b/htdocs/langs/es_ES/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Borrador StatusReceptionValidatedShort=Validado StatusReceptionProcessedShort=Procesados ReceptionSheet=Hoja de recepción +ValidateReception=Validar recepción ConfirmDeleteReception=¿Está seguro de querer eliminar esta recepción? ConfirmValidateReception=¿Está seguro de querer validar esta recepción con la referencia %s? ConfirmCancelReception=¿Está seguro de querer cancelar esta recepción? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Módulo de numeración para recepciones ReceptionsReceiptModel=Modelos de documentos para recepciones. NoMorePredefinedProductToDispatch=No hay más productos predefinidos para enviar ReceptionExist=Existe una recepción -ByingPrice=Precio de compra ReceptionBackToDraftInDolibarr=Recepción %s volver al borrador ReceptionClassifyClosedInDolibarr=Recepción %s clasificado Cerrado ReceptionUnClassifyCloseddInDolibarr=Recepción %s Reabrir diff --git a/htdocs/langs/es_ES/recruitment.lang b/htdocs/langs/es_ES/recruitment.lang index 9d0d7e1e38a..472d6dda9ea 100644 --- a/htdocs/langs/es_ES/recruitment.lang +++ b/htdocs/langs/es_ES/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-mail contratador ToUseAGenericEmail=Utilizar un e-mail genérico. Si no se define, se utilizará el e-mail del responsable de contratación NewCandidature=Nueva aplicación ListOfCandidatures=Listado de aplicaciones -RequestedRemuneration=Retribución solicitada -ProposedRemuneration=Retribución propuesta +Remuneration=Salario +RequestedRemuneration=Salario solicitado +ProposedRemuneration=Salario propuesto ContractProposed=Contrato propuesto ContractSigned=Contrato firmado ContractRefused=Contrato rechazado RecruitmentCandidature=Aplicacion JobPositions=Puestos de trabajo RecruitmentCandidatures=Aplicaciones -InterviewToDo=Entrevista para realizar +InterviewToDo=Contactos a seguir AnswerCandidature=Respuesta de la aplicación YourCandidature=Su aplicación YourCandidatureAnswerMessage=Gracias por su aplicación.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=El puesto de trabajo esta cerrado ExtrafieldsJobPosition=Campos adicionales (puestos de trabajo) ExtrafieldsApplication=Campos adicionales (solicitudes de empleo) MakeOffer=Realizar un presupuesto +WeAreRecruiting=Estamos reclutando. Esta es una lista de vacantes a cubrir... +NoPositionOpen=No hay posiciones abiertas en este momento diff --git a/htdocs/langs/es_ES/salaries.lang b/htdocs/langs/es_ES/salaries.lang index 7e90e136877..14544cdfc32 100644 --- a/htdocs/langs/es_ES/salaries.lang +++ b/htdocs/langs/es_ES/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta contable usada para los usuarios -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de usuario para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del usuario +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cuenta contable por defecto para pagos de salarios CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=De forma predeterminada, deje vacía la opción "Crear automáticamente un pago total" al crear un Salario. Salary=Salario diff --git a/htdocs/langs/es_ES/stocks.lang b/htdocs/langs/es_ES/stocks.lang index e6b8c861172..364a6259321 100644 --- a/htdocs/langs/es_ES/stocks.lang +++ b/htdocs/langs/es_ES/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Límite stock para alertas y stock óptimo deseado ProductStockWarehouseUpdated=Límite stock para alertas y stock óptimo deseado actualizado correctamente ProductStockWarehouseDeleted=Límite stock para alertas y stock óptimo deseado eliminado correctamente AddNewProductStockWarehouse=Indicar nuevo límite para alertas y stock óptimo deseado -AddStockLocationLine=Disminuya la cantidad, y a continuación, haga clic para agregar otro almacén para este producto +AddStockLocationLine=Disminuya la cantidad y luego haga clic para dividir la línea InventoryDate=Fecha inventario Inventories=Inventarios NewInventory=Nuevo inventario @@ -254,7 +254,7 @@ ReOpen=Reabrir ConfirmFinish=¿Confirmas el cierre del inventario? Esto generará todos los movimientos de stock para actualizar su stock a la cantidad real que ingresó en el inventario. ObjectNotFound=%s no encontrado MakeMovementsAndClose=Generar movimientos y cerrar -AutofillWithExpected=Reemplazar la cantidad real con la cantidad esperada +AutofillWithExpected=Llene la cantidad real con la cantidad esperada ShowAllBatchByDefault=De forma predeterminada, muestra los detalles del lote en la pestaña "stock" del producto CollapseBatchDetailHelp=Puede establecer la visualización predeterminada de los detalles del lote en la configuración del módulo de existencias ErrorWrongBarcodemode=Modo de código de barras desconocido @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=El producto con código de barras no existe WarehouseId=ID de almacén WarehouseRef=Ref de almacén SaveQtyFirst=Guarde primero las cantidades reales inventariadas, antes de solicitar la creación del movimiento de existencias. +ToStart=Comenzar InventoryStartedShort=Pago parcial ErrorOnElementsInventory=Operación cancelada por el siguiente motivo: ErrorCantFindCodeInInventory=No puedo encontrar el siguiente código en el inventario QtyWasAddedToTheScannedBarcode=Éxito !! La cantidad se agregó a todo el código de barras solicitado. Puede cerrar la herramienta del escáner. StockChangeDisabled=Cambio en stock desactivado NoWarehouseDefinedForTerminal=Sin almacén definido para terminal +ClearQtys=Borrar todas las cantidades +ModuleStockTransferName=Transferencia avanzada de Stock +ModuleStockTransferDesc=Gestión avanzada de Transferencia de Stock, con generación de ficha de transferencia +StockTransferNew=Nueva transferencia de stock +StockTransferList=Lista de transferencias de stock +ConfirmValidateStockTransfer=¿Está seguro de que desea validar esta transferencia de stock con la referencia %s ? +ConfirmDestock=Disminución de existencias con transferencia %s +ConfirmDestockCancel=Cancelar disminución de existencias con transferencia %s +DestockAllProduct=Disminución de existencias +DestockAllProductCancel=Cancelar disminución de existencias +ConfirmAddStock=Aumentar existencias con transferencia %s +ConfirmAddStockCancel=Cancelar aumento de existencias con transferencia %s +AddStockAllProduct=Aumento de existencias +AddStockAllProductCancel=Cancelar aumento de existencias +DatePrevueDepart=Fecha prevista de salida +DateReelleDepart=Fecha real de salida +DatePrevueArrivee=Fecha prevista de llegada +DateReelleArrivee=Fecha real de llegada +HelpWarehouseStockTransferSource=Si se establece este almacén, solo él mismo y sus elementos secundarios estarán disponibles como almacén de origen +HelpWarehouseStockTransferDestination=Si se establece este almacén, solo él mismo y sus hijos estarán disponibles como almacén de destino +LeadTimeForWarning=Plazo antes de la alerta (en días) +TypeContact_stocktransfer_internal_STFROM=Remitente de la transferencia de existencias +TypeContact_stocktransfer_internal_STDEST=Destinatario de la transferencia de existencias +TypeContact_stocktransfer_internal_STRESP=Responsable de transferencia de existencias. +StockTransferSheet=Hoja de transferencia de existencias +StockTransferSheetProforma=Hoja de transferencia de existencias proforma +StockTransferDecrementation=Reducir los almacenes de origen +StockTransferIncrementation=Aumentar los almacenes de destino +StockTransferDecrementationCancel=Cancelar disminución de almacenes de origen +StockTransferIncrementationCancel=Cancelar aumento de almacenes de destino +StockStransferDecremented=Los almacenes de origen disminuyeron +StockStransferDecrementedCancel=Disminución de almacenes de origen cancelada +StockStransferIncremented=Cerrado - Existencias transferidas +StockStransferIncrementedShort=Existencias transferidas +StockStransferIncrementedShortCancel=Ampliación de almacenes de destino cancelada +StockTransferNoBatchForProduct=El producto %s no usa el lote, borre el lote en línea y vuelva a intentarlo +StockTransferSetup = Configuración del módulo de transferencia de existencias +Settings=Configuraciones +StockTransferSetupPage = Página de configuración del módulo de transferencia de existencias +StockTransferRightRead=Leer transferencias de existencias +StockTransferRightCreateUpdate=Crear/Actualizar transferencias de existencias +StockTransferRightDelete=Eliminar transferencias de existencias +BatchNotFound=Lote/serie no encontrado para este producto diff --git a/htdocs/langs/es_ES/stripe.lang b/htdocs/langs/es_ES/stripe.lang index a3967805873..eccb8b77b3b 100644 --- a/htdocs/langs/es_ES/stripe.lang +++ b/htdocs/langs/es_ES/stripe.lang @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=Enlace para configurar Stripe WebHook para llamar a l PaymentWillBeRecordedForNextPeriod=El pago se registrará para el próximo período. ClickHereToTryAgain=Haga clic aquí para volver a intentarlo ... CreationOfPaymentModeMustBeDoneFromStripeInterface=Debido a las fuertes reglas de autenticación del cliente, la creación de una tarjeta debe hacerse desde la oficina administrativa de Stripe. Puede hacer clic aquí para activar el registro de cliente de Stripe: %s +TERMINAL_LOCATION=Ubicación (dirección) para terminales diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang index 3ca5ccc0155..f643cb49028 100644 --- a/htdocs/langs/es_ES/suppliers.lang +++ b/htdocs/langs/es_ES/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Nombre del comprador AllProductServicePrices=Todos los precios de producto / servicio AllProductReferencesOfSupplier=Todas las referencias del proveedor BuyingPriceNumShort=Precios de proveedores +RepeatableSupplierInvoice=Plantilla de factura de proveedor +RepeatableSupplierInvoices=Plantilla de facturas de proveedores +RepeatableSupplierInvoicesList=Plantilla de facturas de proveedores +RecurringSupplierInvoices=Facturas recurrentes de proveedores +ToCreateAPredefinedSupplierInvoice=Para crear una plantilla de factura de proveedor, debe crear una factura estándar, luego, sin validarla, haga clic en el botón "%s". +GeneratedFromSupplierTemplate=Generado a partir de la plantilla de factura de proveedor %s +SupplierInvoiceGeneratedFromTemplate=Factura de proveedor %s Generada a partir de la plantilla de factura de proveedor %s diff --git a/htdocs/langs/es_ES/ticket.lang b/htdocs/langs/es_ES/ticket.lang index 2bbd0a8bad9..c54e1bde536 100644 --- a/htdocs/langs/es_ES/ticket.lang +++ b/htdocs/langs/es_ES/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Eliminar tickets Permission56004=Administrar tickets Permission56005=Ver tickets de todos los terceros (no aplicable para usuarios externos, siempre estará limitada al tercero del que dependen) +Tickets=Tickets TicketDictType=Tipo de tickets TicketDictCategory=Categorías de tickets TicketDictSeverity=Gravedad de los tickets @@ -90,15 +91,17 @@ TicketPublicAccess=Una interfaz pública que no requiere identificación está d TicketSetupDictionaries=Los tipos de categorías y los niveles de gravedad se pueden configurar en los diccionarios TicketParamModule=Configuración de variables del módulo TicketParamMail=Configuración de E-Mail -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=E-mail del remitente para notificación de respuestas +TicketEmailNotificationFromHelp=Correo electrónico del remitente para usar para enviar el correo electrónico de notificación cuando se proporciona una respuesta desde Dolibarr. Por ejemplo noreply@example.com +TicketEmailNotificationTo=Notificar creación de ticket a esta dirección de correo electrónico +TicketEmailNotificationToHelp=Si está presente, esta dirección de correo electrónico será notificada de la creación de un ticket. TicketNewEmailBodyLabel=Mensaje de texto enviado después de crear un ticket TicketNewEmailBodyHelp=El texto especificado aquí se insertará en el e-mail de confirmación de creación de un nuevo ticket desde la interfaz pública. La información sobre la consulta del ticket se agrega automáticamente. TicketParamPublicInterface=Configuración de interfaz pública TicketsEmailMustExist=Requerir una dirección de e-mail existente para crear un ticket TicketsEmailMustExistHelp=En la interfaz pública, la dirección de email debe ser rellenada en la base de datos para crear un nuevo ticket. +TicketCreateThirdPartyWithContactIfNotExist=Pregunte el nombre y el nombre de la empresa para correos electrónicos desconocidos. +TicketCreateThirdPartyWithContactIfNotExistHelp=Compruebe si existe un tercero o un contacto para el correo electrónico ingresado. Si no, pide un nombre y una razón social para crear un tercero con contacto. PublicInterface=Interfaz pública. TicketUrlPublicInterfaceLabelAdmin=URL alternativa de interfaz pública TicketUrlPublicInterfaceHelpAdmin=Es posible definir un alias para el servidor web y así poner a disposición la interfaz pública a otra dirección IP. @@ -145,8 +148,10 @@ TicketsDelayBetweenAnswersHelp=Si un ticket sin resolver que ya recibió una res TicketsAutoNotifyClose=Notificar automáticamente a un tercero al cerrar un ticket TicketsAutoNotifyCloseHelp=Al cerrar un ticket, se le propondrá enviar un mensaje a uno de los contactos de un tercero. En el cierre masivo, se enviará un mensaje a un contacto del tercero vinculado al ticket. TicketWrongContact=El contacto proporcionado no forma parte de los contactos del ticket actual. E-Mail no enviado. -TicketChooseProductCategory=Product category for ticket support -TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketChooseProductCategory=Categoría de producto para soporte de tickets +TicketChooseProductCategoryHelp=Seleccione la categoría de producto de soporte de tickets. Esto se usará para vincular automáticamente un contrato a un boleto. +TicketUseCaptchaCode=Usar código gráfico (CAPTCHA) al crear un ticket +TicketUseCaptchaCodeHelp=Agrega verificación de CAPTCHA al crear un nuevo ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=El Ticket ha sido asignado TicketChangeType=Cambiar tipo TicketChangeCategory=Cambiar categoría TicketChangeSeverity=Cambiar gravedad -TicketAddMessage=Añadir mensaje -AddMessage=Añadir mensaje +TicketAddMessage=Agregar mensaje privado MessageSuccessfullyAdded=Ticket añadido TicketMessageSuccessfullyAdded=Mensaje añadido correctamente TicketMessagesList=Listado de mensajes @@ -202,8 +206,8 @@ TicketSeverity=Gravedad ShowTicket=Ver ticket RelatedTickets=Tickets relacionados TicketAddIntervention=Crear intervención -CloseTicket=Cerrar|Resolver ticket -AbandonTicket=Abandonar ticket +CloseTicket=Cerrar|Resolver +AbandonTicket=Abandonar CloseATicket=Cerrar | Resolver un ticket ConfirmCloseAticket=Confirmar el cierre del ticket ConfirmAbandonTicket=¿Confirma el cierre del ticket al estado 'Abandonado'? @@ -217,18 +221,17 @@ SendMessageByEmail=Enviar mensaje por e-mail TicketNewMessage=Nuevo mensaje ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatario está vacío. No se ha enviado el email TicketGoIntoContactTab=Vaya a la pestaña "Contactos" para seleccionarlos -TicketMessageMailIntro=Introducción +TicketMessageMailIntro=Encabezado del mensaje TicketMessageMailIntroHelp=Este texto es añadido solo al principio del email y no será salvado. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Firma -TicketMessageMailSignatureHelp=Este texto se agrega solo al final del e-mail y no se guardará. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Firma del e-mail de respuesta -TicketMessageMailSignatureHelpAdmin=Este texto se insertará después del mensaje de respuesta. +TicketMessageMailIntroText=Hola,
    Se ha agregado una nueva respuesta a un ticket que sigues. Aquí está el mensaje:
    +TicketMessageMailIntroHelpAdmin=Este texto se insertará antes de la respuesta al responder a un ticket de Dolibarr +TicketMessageMailFooter=Pie de página del mensaje +TicketMessageMailFooterHelp=Este texto se agrega solo al final del mensaje enviado por correo electrónico y no se guardará. +TicketMessageMailFooterText=Mensaje enviado por %s vía Dolibarr +TicketMessageMailFooterHelpAdmin=Este texto se insertará después del mensaje de respuesta. TicketMessageHelp=Solo este texto se guardará en la lista de mensajes en la ficha del ticket TicketMessageSubstitutionReplacedByGenericValues=Las variables de sustitución se reemplazan por valores genéricos. +ForEmailMessageWillBeCompletedWith=Para los mensajes de correo electrónico enviados a usuarios externos, el mensaje se completará con TimeElapsedSince=Tiempo transcurrido desde TicketTimeToRead=Tiempo transcurrido antes de leer el ticket TicketTimeElapsedBeforeSince=Tiempo transcurrido antes / desde @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Se publicó un nuevo mensaje en el ti TicketAssignedToYou=Ticket asignado TicketAssignedEmailBody=Se le ha asignado el ticket #%s por %s MarkMessageAsPrivate=Marcar mensaje como privado +TicketMessageSendEmailHelp=Se enviará un correo electrónico a todos los contactos asignados (contactos internos, pero también contactos externos, excepto si se marca la opción "%s") TicketMessagePrivateHelp=Este mensaje no se mostrará a los usuarios externos TicketEmailOriginIssuer=Emisor al origen de los tickets InitialMessage=Mensaje inicial @@ -260,8 +264,8 @@ TicketNotCreatedFromPublicInterface=No disponible. El ticket no se creó desde l ErrorTicketRefRequired=La referencia del ticket es obligatoria TicketsDelayForFirstResponseTooLong=Ha transcurrido demasiado tiempo desde la apertura del ticket sin ninguna respuesta. TicketsDelayFromLastResponseTooLong=Ha transcurrido demasiado tiempo desde la última respuesta en este ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. -TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. +TicketNoContractFoundToLink=No se encontró ningún contrato vinculado automáticamente a este ticket. Vincule un contrato manualmente. +TicketManyContractsLinked=Muchos contratos se han vinculado automáticamente a este ticket. Asegúrese de verificar cuál debe elegir. # # Logs @@ -289,12 +293,12 @@ TicketNewEmailBody=Este es un e-mail automático para confirmar que ha registrad TicketNewEmailBodyCustomer=Este es un e-mail automático para confirmar que se acaba de crear un nuevo ticket en su cuenta. TicketNewEmailBodyInfosTicket=Información para monitorear el ticket TicketNewEmailBodyInfosTrackId=Número de seguimiento del ticket: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=Puede ver el progreso del ticket haciendo clic en el siguiente enlace TicketNewEmailBodyInfosTrackUrlCustomer=Puede ver el progreso del ticket en la interfaz específica haciendo clic en el siguiente enlace TicketCloseEmailBodyInfosTrackUrlCustomer=Puede consultar el historial de este ticket haciendo clic en el siguiente enlace TicketEmailPleaseDoNotReplyToThisEmail=¡Por favor no responda directamente a este correo! Use el enlace para responder. TicketPublicInfoCreateTicket=Este formulario le permite registrar un ticket de soporte en nuestro sistema. -TicketPublicPleaseBeAccuratelyDescribe=Por favor describa precisamente el problema. Provea la mayor cantidad de información posible para permitirnos identificar su solicitud. +TicketPublicPleaseBeAccuratelyDescribe=Describa con precisión su pregunta. Proporcione la mayor cantidad de información posible que nos permita identificar correctamente su solicitud. TicketPublicMsgViewLogIn=Ingrese el ID de seguimiento del ticket TicketTrackId=ID Público de seguimiento OneOfTicketTrackId=Una de sus ID de seguimiento diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang index 442e7e421ce..e6d8164287c 100644 --- a/htdocs/langs/es_ES/users.lang +++ b/htdocs/langs/es_ES/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Eliminar del grupo PasswordChangedAndSentTo=Contraseña cambiada y enviada a %s. PasswordChangeRequest=Solicitud para cambiar la contraseña de %s PasswordChangeRequestSent=Petición de cambio de contraseña para %s enviada a %s. -IfLoginExistPasswordRequestSent=Si este inicio de sesión es una cuenta válida, se ha enviado un e-mail para restablecer la contraseña. +IfLoginExistPasswordRequestSent=Si este inicio de sesión es una cuenta válida (con un correo electrónico válido), se ha enviado un correo electrónico para restablecer la contraseña. IfEmailExistPasswordRequestSent=Si este correo electrónico es una cuenta válida, se ha enviado un correo electrónico para restablecer la contraseña. ConfirmPasswordReset=Confirmar restablecimiento de contraseña MenuUsersAndGroups=Usuarios y grupos @@ -68,7 +68,6 @@ CreateDolibarrLogin=Crear una cuenta de usuario CreateDolibarrThirdParty=Crear un tercero LoginAccountDisableInDolibarr=La cuenta está desactivada en Dolibarr UsePersonalValue=Utilizar valores personalizados -InternalUser=Usuario interno ExportDataset_user_1=Usuarios y sus propiedades. DomainUser=Usuario de dominio Reactivate=Reactivar @@ -124,7 +123,9 @@ ValidatorIsSupervisorByDefault=Por defecto, el validador es el supervisor del us UserPersonalEmail=Email personal UserPersonalMobile=Teléfono móvil personal WarningNotLangOfInterface=Atención, este es el idioma principal que habla el usuario, no el idioma del entorno que eligió ver. Para cambiar el idioma del entorno visible por este usuario, vaya a la pestaña %s -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +DateLastLogin=Fecha último inicio de sesión +DatePreviousLogin=Fecha de inicio de sesión anterior +IPLastLogin=IP último inicio de sesión +IPPreviousLogin=IP inicio de sesión anterior +ShowAllPerms=Mostrar todas las filas de permisos +HideAllPerms=Ocultar todas las filas de permisos diff --git a/htdocs/langs/es_ES/website.lang b/htdocs/langs/es_ES/website.lang index f2c80e1f5db..1032059a351 100644 --- a/htdocs/langs/es_ES/website.lang +++ b/htdocs/langs/es_ES/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Código +WebsiteName=Nombre del sitio web WebsiteSetupDesc=Cree aquí los sitios web que necesite. Entonces entre en el menú de sitios web para editarlos. DeleteWebsite=Eliminar sitio web ConfirmDeleteWebsite=¿Está seguro de querer eliminar este sitio web? Todas las páginas y contenido también sera eliminado. Los archivos cargados (como en el directorio de medios, el módulo GED ...) permanecerán. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Adición en la parte inferior del encabezado HTML (común a WEBSITE_ROBOT=Archivo de robots (robots.txt) WEBSITE_HTACCESS=Archivo .htaccess del sitio web WEBSITE_MANIFEST_JSON=Archivo manifest.json del sitio web -WEBSITE_README=Archivo README.md WEBSITE_KEYWORDSDesc=Usar coma para separar valores -EnterHereLicenseInformation=Ingrese aquí metadatos o información de licencia para llenar un archivo README.md. si distribuye su sitio web como plantilla, el archivo se incluirá en el paquete template. +EnterHereReadmeInformation=Introduzca aquí una descripción del sitio web. Si distribuye su sitio web como plantilla, el archivo se incluirá en el paquete template. +EnterHereLicenseInformation=Introduzca aquí la LICENCIA del código del sitio web. Si distribuye su sitio web como plantilla, el archivo se incluirá en el paquete template. HtmlHeaderPage=Encabezado HTML (específico de esta página solamente) PageNameAliasHelp=Nombre o alias de la página.
    Este alias es utilizado también para construir una URL SEO cuando el website sea lanzado desde un Host Virtual de un servidor (como Apache, Nginx...). Usar el botón "%s" para editar este alias. EditTheWebSiteForACommonHeader=Nota: Si desea definir un encabezado personalizado para todas las páginas, edite el encabezado en el nivel del sitio en lugar de en la página/contenedor. @@ -42,6 +43,8 @@ ViewPageInNewTab=Ver página en una pestaña nueva SetAsHomePage=Establecer como Página de inicio RealURL=URL Real ViewWebsiteInProduction=Ver sitio web usando la URL de inicio +Virtualhost=Host virtual o nombre de dominio +VirtualhostDesc=El nombre del host virtual o dominio (por ejemplo: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Usar con Apache/NGinx /...
    Crea en su servidor web (Apache, Nginx, ...) de un host virtual dedicado con PHP habilitado y un directorio raíz en
    %s ExampleToUseInApacheVirtualHostConfig=Ejemplo para usar en la configuración del host virtual Apache: YouCanAlsoTestWithPHPS=En el entorno de desarrollo, es posible que prefiera probar el sitio con el servidor web incrustado de PHP (se requiere PHP 5.5) ejecutando
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s página(s)/contenedor(s) regenerados RegenerateWebsiteContent=Regenerar archivos de caché del sitio web AllowedInFrames=Permitido en marcos DefineListOfAltLanguagesInWebsiteProperties=Defina la lista de todos los idiomas disponibles en las propiedades del sitio web. -GenerateSitemaps=Generar archivo de mapa del sitio del sitio web +GenerateSitemaps=Generar archivo sitemap.xml del sitio web ConfirmGenerateSitemaps=Si confirma, borrará el archivo de mapa del sitio existente ... ConfirmSitemapsCreation=Confirmar la generación del mapa del sitio SitemapGenerated=Archivo de mapa del sitio %s generado @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=El favicon debe ser png ErrorFaviconSize=El favicon debe tener un tamaño de 16x16, 32x32 o 64x64 FaviconTooltip=Sube una imagen que debe ser png (16x16, 32x32 o 64x64) +NextContainer=Página siguiente/contenedor +PreviousContainer=Página anterior/contenedor +WebsiteMustBeDisabled=El sitio web debe tener el estado "%s" +WebpageMustBeDisabled=La página web debe tener el estado "%s" +SetWebsiteOnlineBefore=Cuando el sitio web está fuera de línea, todas las páginas están fuera de línea. Cambiar el estado del sitio web primero. +Booking=Reserva +Reservation=Reserva diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index 5352e73d433..8088a98beb2 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Factura de proveedor pendiente de transferencia b InvoiceWaitingWithdraw=Facturas en espera de domiciliación InvoiceWaitingPaymentByBankTransfer=Factura en espera de transferencia bancaria AmountToWithdraw=Cantidad a domiciliar +AmountToTransfer=La cantidad a transferir NoInvoiceToWithdraw=No hay niguna factura abierta esperando para '%s' . Vaya a la pestaña '%s' de la factura para realizar una solicitud. -NoSupplierInvoiceToWithdraw=No hay ninguna factura de proveedor con 'Solicitudes de crédito directas' pendientes. Vaya a la pestaña '%s' en la pestaña de factura para hacer una solicitud. +NoSupplierInvoiceToWithdraw=No hay ninguna factura de proveedor con '%s' abierta. Vaya a la pestaña '%s' en la tarjeta de factura para realizar una solicitud. ResponsibleUser=Usuario responsable de las domiciliaciones WithdrawalsSetup=Configuración de las domiciliaciones CreditTransferSetup=Configuración de transferencias bancarias @@ -41,6 +42,7 @@ CreditTransferStatistics=Estadísticas de transferencias bancarias Rejects=Devoluciones LastWithdrawalReceipt=Las %s últimas domiciliaciones MakeWithdrawRequest=Realizar una petición de domiciliación +MakeWithdrawRequestStripe=Realice una solicitud de pago por domiciliación bancaria a través de Stripe MakeBankTransferOrder=Realizar una solicitud de transferencia bancaria WithdrawRequestsDone=%s domiciliaciones registradas BankTransferRequestsDone=%s solicitudes de transferencia de crédito registradas @@ -99,8 +101,11 @@ CreditDate=Abonada el WithdrawalFileNotCapable=No es posible generar el fichero bancario de domiciliación para el país %s (El país no está soportado) ShowWithdraw=Mostrar domiciliación IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Sin embargo, si la factura tiene pendiente algún pago por domiciliación no procesado, no será marcada como pagada para permitir la gestión de la domiciliación. -DoStandingOrdersBeforePayments=Esta pestaña le permite realizar una petición de domiciliación. Una vez realizadas las peticiones, vaya al menú Bancos->Pagos para gestionar la domiciliación. Al cerrar una domiciliación, los pagos de las facturas se registrarán automáticamente, y las facturas completamente pagadas serán cerradas. -DoCreditTransferBeforePayments=Esta pestaña le permite realizar una petición de transferencia bancaria. Una vez realizadas las peticiones, vaya al menú Bancos->Pagos para gestionar la petición. Al cerrar una petición, los pagos de las facturas se registrarán automáticamente, y las facturas completamente pagadas serán cerradas. +DoStandingOrdersBeforePayments=Esta pestaña le permite solicitar una orden de pago domiciliada. Una vez hecho esto, puede ir al menú "Banco->Pago por domiciliación" para generar y administrar un archivo de orden de domiciliación. +DoStandingOrdersBeforePayments2=También puede enviar una solicitud directamente a un procesador de pago SEPA como Stripe, ... +DoStandingOrdersBeforePayments3=Cuando se cierra la orden de débito directo, el pago de las facturas se registrará automáticamente y las facturas se cerrarán si el saldo a pagar es nulo. +DoCreditTransferBeforePayments=Esta pestaña le permite solicitar una orden de transferencia de crédito. Una vez hecho esto, vaya al menú "Banco->Pago por transferencia de crédito" para generar y administrar un archivo de orden de transferencia de crédito. +DoCreditTransferBeforePayments3=Cuando se cierra la orden de transferencia de crédito, el pago de las facturas se registrará automáticamente y las facturas se cerrarán si el resto por pagar es nulo. WithdrawalFile=Archivo de domiciliación CreditTransferFile=Archivo de transferencia bancaria SetToStatusSent=Clasificar como "Archivo enviado" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=No es posible crear una domiciliación sin importe SepaMandate=Mandato SEPA SepaMandateShort=Mandato SEPA PleaseReturnMandate=Devuelva este formulario de mandato por e-mail a %s o por correo a -SEPALegalText=Al firmar este formulario de mandato, usted autoriza a (A) %s a enviar instrucciones a su banco para debitar su cuenta y (B) a su banco para debitar su cuenta de acuerdo con las instrucciones de %s. Como parte de sus derechos, tiene derecho a un reembolso de su banco según los términos y condiciones de su acuerdo con su banco. Sus derechos con respecto al mandato anterior se explican en una declaración que puede obtener de su banco. +SEPALegalText=Al firmar este formulario de mandato, usted autoriza (A) %s y a su proveedor de servicios de pago a enviar instrucciones a su banco para que realice un cargo en su cuenta y (B) a su banco para que realice un cargo en su cuenta de acuerdo con las instrucciones de %s. Como parte de sus derechos, tiene derecho a un reembolso de su banco según los términos y condiciones de su acuerdo con su banco. Sus derechos con respecto al mandato anterior se explican en una declaración que puede obtener de su banco. CreditorIdentifier=Identificador Acreedor CreditorName=Nombre acreedor SEPAFillForm=(B) Rellene todos los campos marcados c * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Fecha de ejecución CreateForSepa=Crear archivo SEPA ICS=Identificador del acreedor - ICS +IDS=Identificador deudor END_TO_END=Etiqueta XML SEPA "EndToEndId" - ID única asignada por transacción USTRD=Etiqueta SEPA XML "Unstructured" ADDDAYS=Añadir días a la fecha de ejecución @@ -154,3 +160,4 @@ ErrorICSmissing=Falta ICS en la cuenta bancaria %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=El monto total de la orden de domiciliación bancaria difiere de la suma de líneas WarningSomeDirectDebitOrdersAlreadyExists=Advertencia: ya hay algunas órdenes de domiciliación bancaria pendientes (%s) solicitadas por un monto de %s WarningSomeCreditTransferAlreadyExists=Advertencia: ya hay una transferencia de crédito pendiente (%s) solicitada por un monto de %s +UsedFor=Usado para %s diff --git a/htdocs/langs/es_ES/workflow.lang b/htdocs/langs/es_ES/workflow.lang index 0a4b026910b..4d66e803a61 100644 --- a/htdocs/langs/es_ES/workflow.lang +++ b/htdocs/langs/es_ES/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasificar automátic descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Clasifique la orden de compra de fuente vinculada como recibida cuando se valida una recepción (y si la cantidad recibida por todas las recepciones es la misma que en la orden de compra para actualizar) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Clasifique la orden de compra de fuente vinculada como recibida cuando una recepción está cerrada (y si la cantidad recibida por todas las recepciones es la misma que en la orden de compra para actualizar) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Clasificar las recepciones como "facturadas" cuando se valida un pedido de proveedor vinculado +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Clasificar las recepciones como "facturadas" cuando se valida una factura de compra vinculada (y si el monto de la factura es el mismo que el monto total de las recepciones vinculadas) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Al crear un ticket, vincule los contratos disponibles de terceros coincidentes descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=A la hora de vincular contratos, buscar entre los de las casas matrices @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Cerrar todas las intervenciones vinculada AutomaticCreation=Creación automática AutomaticClassification=Clasificación automática # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasificar el envío vinculado como cerrado cuando se valida la factura del cliente -AutomaticClosing=Automatic closing -AutomaticLinking=Automatic linking +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifique el envío de origen vinculado como cerrado cuando se valide la factura del cliente (y si el monto de la factura es el mismo que el monto total de los envíos vinculados) +AutomaticClosing=Cierre automático +AutomaticLinking=Enlace automático diff --git a/htdocs/langs/es_GT/hrm.lang b/htdocs/langs/es_GT/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_GT/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_GT/propal.lang b/htdocs/langs/es_GT/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_GT/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_HN/hrm.lang b/htdocs/langs/es_HN/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_HN/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_HN/main.lang b/htdocs/langs/es_HN/main.lang index 0d6b013ca18..7f44762de77 100644 --- a/htdocs/langs/es_HN/main.lang +++ b/htdocs/langs/es_HN/main.lang @@ -3,19 +3,22 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. -SeparatorThousand=None -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +SeparatorThousand=, +FormatDateShort=%d/%m/%Y +FormatDateShortInput=%d/%m/%Y +FormatDateShortJava=dd/MM/yyyy +FormatDateShortJavaInput=dd/MM/yyyy +FormatDateShortJQuery=dd/mm/yy +FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourShort=%d/%m/%Y %I:%M %p +FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +DateFormatYYYYMM=AAAA-MM +DateFormatYYYYMMDD=AAAA-MM-DD +DateFormatYYYYMMDDHHMM=AAAA-MM-DD HH:SS diff --git a/htdocs/langs/es_HN/propal.lang b/htdocs/langs/es_HN/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_HN/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang index 1ae2423f16f..50e369435ae 100644 --- a/htdocs/langs/es_MX/accountancy.lang +++ b/htdocs/langs/es_MX/accountancy.lang @@ -24,20 +24,15 @@ MainAccountForVatPaymentNotDefined=Cuenta contable principal para el pago del IV MainAccountForSubscriptionPaymentNotDefined=Cuenta contable principal para el pago de suscripción no definida en la configuración AccountancyArea=Área contable AccountancyAreaDescActionOnce=Las siguientes acciones generalmente se ejecutan una sola vez, o una vez al año ... -AccountancyAreaDescActionOnceBis=Deben realizarse los siguientes pasos para ahorrarle tiempo en el futuro sugiriéndole la cuenta contable predeterminada correcta al realizar la periodización (registro de escritura en diarios y libro mayor) AccountancyAreaDescActionFreq=Las siguientes acciones generalmente se ejecutan cada mes, semana o día para empresas muy grandes ... -AccountancyAreaDescJournalSetup=PASO %s: Cree o verifique el contenido de su lista de diario desde el menú %s AccountancyAreaDescVat=PASO %s: Defina cuentas contables para cada tipo de IVA. Para esto, use la entrada del menú %s. AccountancyAreaDescDefault=PASO %s: Defina cuentas contables predeterminadas. Para esto, use la entrada del menú %s. -AccountancyAreaDescExpenseReport=PASO %s: Defina cuentas contables predeterminadas para cada tipo de reporte de gastos. Para esto, use la entrada del menú %s. AccountancyAreaDescSal=PASO %s: Defina cuentas contables predeterminadas para el pago de salarios. Para esto, use la entrada del menú %s. -AccountancyAreaDescContrib=PASO %s: Defina cuentas contables predeterminadas para gastos especiales (impuestos varios). Para esto, use la entrada del menú %s. AccountancyAreaDescDonation=PASO %s: Defina cuentas contables predeterminadas para donaciones. Para esto, use la entrada del menú %s. AccountancyAreaDescSubscription=PASO %s: Defina cuentas contables predeterminadas para la suscripción de miembros. Para esto, use la entrada del menú %s. AccountancyAreaDescMisc=PASO %s: Defina la cuenta predeterminada obligatoria y las cuentas contables predeterminadas para transacciones misceláneas. Para esto, use la entrada del menú %s. AccountancyAreaDescLoan=PASO %s: Defina cuentas contables predeterminadas para préstamos. Para esto, use la entrada del menú %s. AccountancyAreaDescBank=PASO %s: Defina las cuentas contables y el código de diario para cada banco y cuentas financieras. Para esto, use la entrada del menú %s. -AccountancyAreaDescProd=PASO %s: Defina cuentas contables en sus productos / servicios. Para esto, use la entrada del menú %s. AccountancyAreaDescBind=PASO %s: Compruebe el enlace entre las líneas %s existentes y la cuenta de contabilidad está terminada, para que la aplicación pueda registrar las transacciones en el libro mayor en un solo clic. Complete los enlaces que falten. Para ello, utilice la entrada de menú %s. AccountancyAreaDescWriteRecords=PASO %s: Escriba las transacciones en el libro mayor. Para esto, vaya al menú %s , y haga clic en el botón %s . AccountancyAreaDescAnalyze=PASO %s: Agregue o edite transacciones existentes y genere informes y exportaciones. @@ -82,25 +77,13 @@ XLineFailedToBeBinded=%s productos / servicios no estaban vinculados a ninguna c ACCOUNTING_LIST_SORT_VENTILATION_TODO=Comience la ordenación de la página "Enlazar para hacer" por los elementos más recientes ACCOUNTING_LIST_SORT_VENTILATION_DONE=Comience la ordenación de la página "Enlace realizado" por los elementos más recientes BANK_DISABLE_DIRECT_INPUT=Deshabilitar el registro directo de la transacción en la cuenta bancaria -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de varios ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario de reporte de gastos -ACCOUNTING_SOCIAL_JOURNAL=Diario Social ACCOUNTING_HAS_NEW_JOURNAL=Tiene nuevo diario +ACCOUNTING_SOCIAL_JOURNAL=Diario Social ACCOUNTING_RESULT_PROFIT=Cuenta contable de resultados (Ganancia) ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (Pérdida) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Cierre Diario -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta contable de transferencia bancaria transitoria TransitionalAccount=Cuenta de transferencia bancaria transitoria -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta contable de espera -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para los productos comprados (se usa si no se define en la hoja de productos) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los productos comprados en EEC (se usa si no se define en la hoja de productos) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos comprados e importados fuera de la EEC (usado si no está definido en la hoja de productos) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable por defecto para los productos vendidos (si no ha sido definida en la hoja \nproducto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en la EEC (utilizada si no se define en la hoja de producto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos vendidos y exportados fuera de la EEC (usado si no está definido en la hoja de producto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable por defecto para los servicios comprados (si no ha sido definida en la hoja \nservicio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta contable por defecto para los servicios vendidos (si no ha sido definida en la hoja servicio) LabelAccount=Descripción de la cuenta DelYear=Año a borrar DelJournal=Diario a borrar @@ -115,14 +98,12 @@ Reconcilable=Conciliable TotalVente=Facturación total antes de impuestos TotalMarge=Margen de ventas total DescVentilExpenseReport=Consulte aquí la lista de líneas de reporte de gastos vinculadas (o no) a una cuenta de contabilidad de comisiones -ErrorAccountancyCodeIsAlreadyUse=Error, no es posible eliminar ésta cuenta contable porque está siendo usada ShowTutorial=Mostrar Tutorial AccountingJournal=Diario de contabilidad -AccountingJournalType5=Informe de gastos +AccountingJournalType5=Reporte de gastos AccountingJournalType9=Tiene nuevo ErrorAccountingJournalIsAlreadyUse=Este diario ya está en uso ExportDraftJournal=Exportar borrador de diario SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de la instalación no se realizaron, favor de completar ExportNotSupported=El formato de exportación configurado no se admite en esta página NoJournalDefined=Ningún diario definido -InventoryJournal=Diario de inventario diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 504bddb9753..4097de49b9f 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -71,7 +71,6 @@ NextValueForDeposit=Valor siguiente (pago inicial) NextValueForReplacements=Valor siguiente (sustituciones) NoMaxSizeByPHPLimit=Nota: No hay límite establecido en la configuración de PHP MaxSizeForUploadedFiles=El tamaño máximo para los archivos subidos (0 para no permitir ninguna carga) -UseCaptchaCode=Utilizar el código gráfico (CAPTCHA) en la página de inicio de sesión AntiVirusCommand=Ruta completa del comando del antivirus AntiVirusParam=Más parámetros de línea de comandos ComptaSetup=Establecer modulo de Contabilidad @@ -268,15 +267,15 @@ MailToSendProposal=Propuestas de clientes MailToSendInvoice=Facturas de clientes MailToSendSupplierOrder=Ordenes de compra MailToSendSupplierInvoice=Facturas de proveedor +MailToExpenseReport=Reporte de gastos AllPublishers=Todos los editores AddMenus=Añadir menús AddPermissions=Añadir permisos CodeLastResult=Último código de resultado -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    ShowProjectLabel=Etiqueta de proyecto TemplateAdded=Plantilla agregada MailToSendEventOrganization=Organización de Eventos ModuleUpdateAvailable=Una actualización está disponible -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +Settings =Configuración diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang index 5994d9bd951..311aef483f7 100644 --- a/htdocs/langs/es_MX/companies.lang +++ b/htdocs/langs/es_MX/companies.lang @@ -26,7 +26,6 @@ Lastname=Apellido Firstname=Nombre(s) State=Estado/Provincia CountryCode=Código de país -CountryId=ID de país PhonePerso=Teléfono particular PhoneMobile=Celular No_Email=Rechazar correos masivos @@ -74,9 +73,7 @@ ProfId5CH=número EORI ProfId1CL=ID Prof 1 (R.U.T.) ProfId1CM=Identificación prof. 1 (Registro de Comercio) ProfId2CM=Identificación prof. 2 (Nº de Contribuyente) -ProfId3CM=Identificación prof. 3 (Decreto de creación) ProfId2ShortCM=Contribuyente No. -ProfId3ShortCM=Decree of creation ProfId1CO=ID Prof 1 (R.U.T) ProfId1DE=ID Prof 1 (USt.-IdNr) ProfId2DE=ID Prof 2 (USt.-Nr) diff --git a/htdocs/langs/es_MX/externalsite.lang b/htdocs/langs/es_MX/externalsite.lang deleted file mode 100644 index 0576f5b0be1..00000000000 --- a/htdocs/langs/es_MX/externalsite.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configurar vínculo a un sitio web externo -ExternalSiteModuleNotComplete=El módulo ExternalSite no estaba configurado correctamente. -ExampleMyMenuEntry=Mi entrada en el menú diff --git a/htdocs/langs/es_MX/ftp.lang b/htdocs/langs/es_MX/ftp.lang deleted file mode 100644 index 68ba0a1ab91..00000000000 --- a/htdocs/langs/es_MX/ftp.lang +++ /dev/null @@ -1,11 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuración del módulo Cliente FTP -NewFTPClient=Configuración de nueva conexión FTP -FTPAreaDesc=Esta pantalla muestra una vista de un servidor FTP -SetupOfFTPClientModuleNotComplete=La configuración del módulo Cliente FTP parece estar incompleta -FailedToConnectToFTPServer=Error al conectarse al servidor FTP (servidor %s, puerto %s) -FailedToConnectToFTPServerWithCredentials=Error al iniciar sesión en el servidor FTP con el login/password definidos -FTPFailedToRemoveFile=Error al eliminar el archivo %s . -FTPFailedToRemoveDir=Error al eliminar el directorio %s : verifique los permisos y que el directorio esté vacío. -ChooseAFTPEntryIntoMenu=Elija un sitio FTP del menú... -FailedToGetFile=Error al obtener archivos %s diff --git a/htdocs/langs/es_MX/hrm.lang b/htdocs/langs/es_MX/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_MX/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_MX/install.lang b/htdocs/langs/es_MX/install.lang index a936800f65d..c79b58e2009 100644 --- a/htdocs/langs/es_MX/install.lang +++ b/htdocs/langs/es_MX/install.lang @@ -10,7 +10,6 @@ ErrorDirDoesNotExists=El directorio %s no existe. ErrorWrongValueForParameter=Puede haber escrito un valor incorrecto para el parámetro '%s'. ErrorFailedToConnectToDatabase=Error al conectar con la base de datos '%s'. ErrorDatabaseVersionTooLow=La versión de base de datos (%s) es demasiado antigua. Se requiere la versión %s o superior. -ErrorPHPVersionTooLow=La versión de PHP es demasiado antigua. Se requiere la versión %s. IfDatabaseExistsGoBackAndCheckCreate=Si ya existe la base de datos, vuelva atrás y desmarque la opción "Crear base de datos". License=Uso de licencia WebPagesDirectory=Directorio donde se almacenan las páginas web diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang index 62d1df1d2c1..02d95c7f932 100644 --- a/htdocs/langs/es_MX/main.lang +++ b/htdocs/langs/es_MX/main.lang @@ -109,6 +109,7 @@ Hide=Ocultar ShowCardHere=Ver la ficha QuickAdd=Adición rápida Valid=Válido +OpenVerb=Abierta Upload=Cargar ToLink=Vínculo ResizeOrCrop=Redimensionar o Recortar @@ -321,6 +322,7 @@ SearchIntoSupplierOrders=Ordenes de compra SearchIntoCustomerProposals=Propuestas comerciales SearchIntoSupplierProposals=Presupuestos de Proveedor SearchIntoExpenseReports=Reporte de gastos +SearchIntoVendorPayments=Pagos al proveedor SearchIntoMiscPayments=Varios pagos AssignedTo=Asignado a ToProcess=Procesar @@ -328,3 +330,4 @@ ContactDefault_agenda=Evento ContactDefault_order_supplier=Orden de compra ContactDefault_propal=Cotización ClientTZ=Zona Horaria cliente (usuario) +Terminate=Terminar diff --git a/htdocs/langs/es_MX/oauth.lang b/htdocs/langs/es_MX/oauth.lang index 922201394e7..8463f33d959 100644 --- a/htdocs/langs/es_MX/oauth.lang +++ b/htdocs/langs/es_MX/oauth.lang @@ -7,16 +7,12 @@ IsTokenGenerated=¿Se generó el token? NoAccessToken=Ningún token de acceso guardado en la base de datos local HasAccessToken=Se generó un token y se guardó en la base de datos local. ToCheckDeleteTokenOnProvider=Haga clic aquí para verificar / eliminar la autorización guardada por el proveedor de OAuth %s -RequestAccess=Haga clic aquí para solicitar / renovar el acceso y recibir un nuevo token para guardar UseTheFollowingUrlAsRedirectURI=Use la siguiente URL como URI de redireccionamiento al crear sus credenciales con su proveedor de OAuth: -ListOfSupportedOauthProviders=Ingrese las credenciales proporcionadas por su proveedor de OAuth2. Aquí solo se enumeran los proveedores de OAuth2 compatibles. Estos servicios pueden ser utilizados por otros módulos que necesitan autenticación OAuth2. SeePreviousTab=Ver pestaña anterior OAuthIDSecret=ID OAuth y Secret TOKEN_EXPIRED=Token caducado TOKEN_EXPIRE_AT=El token caduca a las OAUTH_GOOGLE_NAME=Servicio de Google OAuth OAUTH_GOOGLE_ID=ID de Google OAuth -OAUTH_GOOGLE_DESC=Vaya a esta página y luego a "Credenciales" para crear credenciales de OAuth OAUTH_GITHUB_NAME=Servicio OAuth GitHub OAUTH_GITHUB_ID=Id OAuth GitHub -OAUTH_GITHUB_DESC=Vaya a esta página y luego "Registre una nueva aplicación" para crear credenciales de OAuth diff --git a/htdocs/langs/es_MX/stocks.lang b/htdocs/langs/es_MX/stocks.lang index 8e9b1e95980..3b13c6c09d3 100644 --- a/htdocs/langs/es_MX/stocks.lang +++ b/htdocs/langs/es_MX/stocks.lang @@ -3,4 +3,5 @@ Location=Ubicación inventoryEdit=Editar inventoryDeleteLine=Borrar línea ListInventory=Lista +ToStart=Iniciar InventoryStartedShort=Iniciado diff --git a/htdocs/langs/es_PA/hrm.lang b/htdocs/langs/es_PA/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_PA/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_PA/propal.lang b/htdocs/langs/es_PA/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_PA/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_PE/accountancy.lang b/htdocs/langs/es_PE/accountancy.lang index 2cc89dfcbf1..a43c2546c0d 100644 --- a/htdocs/langs/es_PE/accountancy.lang +++ b/htdocs/langs/es_PE/accountancy.lang @@ -34,12 +34,8 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Comienza la clasificación de la página " ACCOUNTING_LENGTH_DESCRIPTION=Truncar la descripción de los productos y servicios en los listados después de los caracteres x (mejor = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar el formulario de descripción de la cuenta de producto y servicios en los listados después de los caracteres x (mejor = 50) ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas de contabilidad general (si establece el valor a 6 aquí, la cuenta '706' aparecerá como '706000' en la pantalla) -ACCOUNTING_SELL_JOURNAL=Diario de Venta -ACCOUNTING_PURCHASE_JOURNAL=Diario de Compra -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario diverso ACCOUNTING_EXPENSEREPORT_JOURNAL=Informe de Gastos Diario ACCOUNTING_SOCIAL_JOURNAL=Diario Social -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta contable de espera Codejournal=Periódico FinanceJournal=Periodo Financiero TotalMarge=Margen total de ventas diff --git a/htdocs/langs/es_PE/hrm.lang b/htdocs/langs/es_PE/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_PE/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_PE/main.lang b/htdocs/langs/es_PE/main.lang index da0ff47ca90..605eea23aee 100644 --- a/htdocs/langs/es_PE/main.lang +++ b/htdocs/langs/es_PE/main.lang @@ -49,6 +49,7 @@ Run=Ejecutar Show=Mostrar Hide=Ocultar SearchOf=Buscar +OpenVerb=Abrir Upload=Subir AmountVAT=Importe impuesto MulticurrencyAmountVAT=Importe impuesto, moneda original @@ -72,3 +73,4 @@ ContactDefault_invoice_supplier=Factura de Proveedor ContactDefault_order_supplier=Orden de Compra ContactDefault_propal=Cotización ContactDefault_supplier_proposal=Cotización de Proveedor +Terminate=Terminar diff --git a/htdocs/langs/es_PE/mrp.lang b/htdocs/langs/es_PE/mrp.lang index e4ded5756ef..6c1c12763f6 100644 --- a/htdocs/langs/es_PE/mrp.lang +++ b/htdocs/langs/es_PE/mrp.lang @@ -11,8 +11,7 @@ LatestMOModified=Últimas %s Órdenes de Fabricación modificadas Bom=Listas de Material BillOfMaterials=Lista de Materiales BillOfMaterialsLines=Lineas de Lista de Materiales -ListOfBOMs=Listado de Lista De Material - BOM -ListOfManufacturingOrders=Lista de Órdenes de Fabricación +ListOfManufacturingOrders=Órdenes de Fabricación BOMsNumberingModules=Plantillas de numeración BOM BOMsModelModule=Plantillas de documento BOM MOsNumberingModules=Numeración de plantillas MO diff --git a/htdocs/langs/es_PE/externalsite.lang b/htdocs/langs/es_PE/other.lang similarity index 75% rename from htdocs/langs/es_PE/externalsite.lang rename to htdocs/langs/es_PE/other.lang index 5250a01cd56..f0d2c0c5feb 100644 --- a/htdocs/langs/es_PE/externalsite.lang +++ b/htdocs/langs/es_PE/other.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is en_US - externalsite +# Dolibarr language file - Source file is en_US - other ExternalSiteSetup=Configurar enlace al sitio web externo ExternalSiteModuleNotComplete=El modulo Sitio Web Externo no esta configurado apropiadamente ExampleMyMenuEntry=Mi entrada al menú diff --git a/htdocs/langs/es_PE/salaries.lang b/htdocs/langs/es_PE/salaries.lang deleted file mode 100644 index f7ca43beb1f..00000000000 --- a/htdocs/langs/es_PE/salaries.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta contable usada por el usuario del tercero diff --git a/htdocs/langs/es_PY/hrm.lang b/htdocs/langs/es_PY/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_PY/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_PY/propal.lang b/htdocs/langs/es_PY/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_PY/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_US/hrm.lang b/htdocs/langs/es_US/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_US/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_US/propal.lang b/htdocs/langs/es_US/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_US/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_UY/hrm.lang b/htdocs/langs/es_UY/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_UY/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_UY/propal.lang b/htdocs/langs/es_UY/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/es_UY/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/es_VE/accountancy.lang b/htdocs/langs/es_VE/accountancy.lang deleted file mode 100644 index f860205b216..00000000000 --- a/htdocs/langs/es_VE/accountancy.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_VE/admin.lang b/htdocs/langs/es_VE/admin.lang index 785d24f60e4..5ac3d8e921b 100644 --- a/htdocs/langs/es_VE/admin.lang +++ b/htdocs/langs/es_VE/admin.lang @@ -31,7 +31,5 @@ WatermarkOnDraftSupplierProposal=Marca de agua en solicitudes de precios a prove LDAPMemberObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) LDAPUserObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) LDAPContactObjectClassListExample=Lista de objectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) -TopMenuDisableImages=Hide images in Top menu -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    diff --git a/htdocs/langs/es_VE/companies.lang b/htdocs/langs/es_VE/companies.lang index f5eac2411df..0bc5270fc2a 100644 --- a/htdocs/langs/es_VE/companies.lang +++ b/htdocs/langs/es_VE/companies.lang @@ -7,9 +7,7 @@ LocalTax2IsUsed=Sujeto ProfId1AT=Id prof. 1 (USt.-IdNr) ProfId2AT=Id prof. 2 (USt.-Nr) ProfId3AT=Id prof. 3 (Handelsregister-Nr.) -ProfId3CM=Id. prof. 3 (Decree of creation) ProfId2ShortCM=R.I.F. -ProfId3ShortCM=Decree of creation ProfId1ES=CI/ RIF ProfId2ES=- ProfId3ES=- diff --git a/htdocs/langs/es_VE/compta.lang b/htdocs/langs/es_VE/compta.lang index b94bc90d190..a502597e79c 100644 --- a/htdocs/langs/es_VE/compta.lang +++ b/htdocs/langs/es_VE/compta.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - compta +AccountingCredit=Haber LT1SummaryES=- LT2SummaryES=Balance de ISLR LT1PaidES=- diff --git a/htdocs/langs/es_VE/donations.lang b/htdocs/langs/es_VE/donations.lang new file mode 100644 index 00000000000..a79a3594d5d --- /dev/null +++ b/htdocs/langs/es_VE/donations.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - donations +FreeTextOnDonations=Texto libre a mostrar a pié de página diff --git a/htdocs/langs/es_VE/hrm.lang b/htdocs/langs/es_VE/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/es_VE/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/es_VE/mails.lang b/htdocs/langs/es_VE/mails.lang new file mode 100644 index 00000000000..37566920b0c --- /dev/null +++ b/htdocs/langs/es_VE/mails.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - mails +MailFrom=Emisor +MailTo=Hacia diff --git a/htdocs/langs/es_VE/main.lang b/htdocs/langs/es_VE/main.lang index 55e67bea58a..bbb458384d7 100644 --- a/htdocs/langs/es_VE/main.lang +++ b/htdocs/langs/es_VE/main.lang @@ -19,6 +19,7 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M +OpenVerb=Abierta DateEnd=Fecha finalización AmountLT1ES=Importe de retención AmountLT2ES=Importe ISLR diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index 78e4226468b..9c12b91c36f 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Dokumendi tüüp Docdate=Kuupäev @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Aasta järgi NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Müügid AccountingJournalType3=Ostud AccountingJournalType4=Pank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Eksportimise mudel @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 1de664e36f6..3ca9ddef1cc 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=Järgmine väärtus (asendused) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Märkus: PHP seadistustes pole piiri määratletud MaxSizeForUploadedFiles=Üleslaetava faili maksimaalne suurus (0 keelab failide üleslaadimise) -UseCaptchaCode=Kasuta sisselogimise lehel graafilist koodi (CAPTCHA) +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Täielik süsteemi rada antiviiruse käsuni AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Lisaparameetrid, mida käsureal edastada @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass-vöötkoodi loomine kolmandatele osapooltele BarcodeInitForProductsOrServices=Toodete/teenuste jaoks massiline vöötkoodide loomine või lähtestamine CurrentlyNWithoutBarCode=Praegu on teil %s kirje %s %s kohta ilma vöötkoodi määramata. -InitEmptyBarCode=Järgmise %s tühja kirje lähtestamise väärtus +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Kustuta kõik hetkel kasutatavad vöötkoodide väärtused ConfirmEraseAllCurrentBarCode=Kas soovite kindlasti kõik praegused vöötkoodi väärtused kustutada? AllBarcodeReset=Kõik triipkoodi väärtused on eemaldatud @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Klõpsake kirjelduse nägemiseks DependsOn=See moodul vajab moodulit RequiredBy=See moodul on mooduli(te) poolt nõutav @@ -714,6 +714,7 @@ Permission27=Pakkumiste kustutamine Permission28=Pakkumiste ekspor Permission31=Toodete vaatamine Permission32=Toodete loomine/muutmine +Permission33=Read prices products Permission34=Toodete kustutamine Permission36=Peidetud toodete vaatamine/haldamine Permission38=Toodete eksport @@ -739,6 +740,7 @@ Permission79=Tellimuste loomine/muutmine Permission81=Müügitellimuste vaatamine Permission82=Müügitellimuste loomine/muutmine Permission84=Müügitellimuste kinnitamine +Permission85=Generate the documents sales orders Permission86=Müügitellimuste saatmine Permission87=Müügitellimuste sulgemine Permission88=Müügitellimuste tühistamine @@ -874,6 +876,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Teenuste vaatamine Permission532=Teenuste loomine/muutmine +Permission533=Read prices services Permission534=Teenuste kustutamine Permission536=Peidetud teenuste vaatamine/haldamine Permission538=Teenuste eksport @@ -1129,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=Kuu lõpus -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Nihe AlwaysActive=Alati aktiivne Upgrade=Uuenda @@ -1235,6 +1238,7 @@ BrowserName=Sirvija nimi BrowserOS=Sirvija operatsioonisüsteem ListOfSecurityEvents=Dolibarri turvasündmuste nimekiri SecurityEventsPurged=Turvasündmused tühjendatud +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Süsteemi info sisaldab mitmesugust tehnilist infot, mida ei saa muuta ning mis on nähtav vaid administraatoritele. @@ -1936,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1977,6 +1981,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Tarnija arved MailToSendContract=Lepingud MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Kolmandad isikud MailToMember=Liikmed MailToUser=Kasutajad @@ -2030,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2059,9 +2065,16 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector @@ -2073,14 +2086,14 @@ DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2101,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2118,7 @@ CreateCandidature=Create job application FormatZip=Postiindeks MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module @@ -2167,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2208,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2248,13 +2265,21 @@ TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Seaded +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2287,23 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/et_EE/companies.lang b/htdocs/langs/et_EE/companies.lang index 1527d83086c..9e04b905e3b 100644 --- a/htdocs/langs/et_EE/companies.lang +++ b/htdocs/langs/et_EE/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Aadress State=Osariik/provints +StateId=State ID StateCode=State/Province code StateShort=State Region=Piirkond Region-State=Region - State Country=Riik CountryCode=Riigi kood -CountryId=Riigi ID +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Teised ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/et_EE/compta.lang b/htdocs/langs/et_EE/compta.lang index af41d62219d..53db841f4d9 100644 --- a/htdocs/langs/et_EE/compta.lang +++ b/htdocs/langs/et_EE/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Saldo Debit=Deebet Credit=Kreedit +AccountingDebit=Deebet +AccountingCredit=Kreedit Piece=Konto dok. AmountHTVATRealReceived=Kogutud neto AmountHTVATRealPaid=Makstud neto @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Režiim %stekkepõhise raamatupidamise KM%s. CalcModeVATEngagement=Režiim %stulude-kulude KM%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Arvutusrežiim AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/et_EE/contracts.lang b/htdocs/langs/et_EE/contracts.lang index bf42bc2460c..faf78241dff 100644 --- a/htdocs/langs/et_EE/contracts.lang +++ b/htdocs/langs/et_EE/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Lepingud/Tellimused ContractsAndLine=Contracts and line of contracts Contract=Leping ContractLine=Lepingu rida +ContractLines=Contract lines Closing=Sulgemine NoContracts=Lepinguid pole MenuServices=Teenused @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Liiguta teenus mõnda teise lepingusse. ConfirmMoveToAnotherContract=Valisin uue lepingu ja kinnitan, et soovin selle teenuse viia üle sellesse lepingusse. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Pikenda lepingu rida (number %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Aegumistähtaeg NoExpiredServices=Aegunud aktiivseid teenuseid ei ole ListOfServicesToExpireWithDuration=%s päeva pärast aeguvate teenuste nimekiri @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Kliendi kontakt, kes allkirjastas lepi HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/et_EE/cron.lang b/htdocs/langs/et_EE/cron.lang index bce6fea2e1c..107cdc76e22 100644 --- a/htdocs/langs/et_EE/cron.lang +++ b/htdocs/langs/et_EE/cron.lang @@ -26,7 +26,7 @@ CronCommand=Käsk CronList=Plaanitud käivitused CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Tegevus @@ -58,7 +58,7 @@ CronNote=Kommentaar CronFieldMandatory=Välja %s täitmine on nõutud CronErrEndDateStartDt=Lõppkuupäev ei saa olla alguskuupäevast varasem StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Lülita välja CronTaskInactive=This job is disabled (not scheduled) CronId=ID @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/et_EE/datapolicy.lang b/htdocs/langs/et_EE/datapolicy.lang new file mode 100644 index 00000000000..c5967052aa6 --- /dev/null +++ b/htdocs/langs/et_EE/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Klient +DATAPOLICY_TIERS_PROSPECT = Huviline +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Hankija +DATAPOLICY_CONTACT_CLIENT = Klient +DATAPOLICY_CONTACT_PROSPECT = Huviline +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Hankija +DATAPOLICY_ADHERENT = Liige +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/et_EE/dict.lang b/htdocs/langs/et_EE/dict.lang index 0e7e96d0450..962d31bf5cb 100644 --- a/htdocs/langs/et_EE/dict.lang +++ b/htdocs/langs/et_EE/dict.lang @@ -21,7 +21,7 @@ CountryNL=Madalmaad CountryHU=Ungari CountryRU=Venemaa CountrySE=Rootsi -CountryCI=Elevandiluurannik +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentiina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Pr +CivilityMMEShort=Pr CivilityMR=Hr +CivilityMRShort=Hr CivilityMLE=Prl CivilityMTRE=Master CivilityDR=Dr diff --git a/htdocs/langs/et_EE/ecm.lang b/htdocs/langs/et_EE/ecm.lang index 00037bd3ede..eb0204161b6 100644 --- a/htdocs/langs/et_EE/ecm.lang +++ b/htdocs/langs/et_EE/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Kaust käsitsi ECMSectionAuto=Kaust automaatselt ECMSectionsManual=Puu käsitsi ECMSectionsAuto=Puu automaatselt +ECMSectionsMedias=Medias tree ECMSections=Kaustad ECMRoot=ECM Root ECMNewSection=Uus kaust @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Faile alamkaustades ECMCreationUser=Looja ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Kaustad täidetakse automaatselt dokumentide lisamisel elemendi kaardilt.
    * Käsitsi kaustasid saab kasutada ühegi elemendita sidumata dokumentide salvestamiseks. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Kaust %s on kustutatud. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Otsi märksõnade järgi diff --git a/htdocs/langs/et_EE/errors.lang b/htdocs/langs/et_EE/errors.lang index e6cb1458234..3e4e7b3638a 100644 --- a/htdocs/langs/et_EE/errors.lang +++ b/htdocs/langs/et_EE/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/et_EE/externalsite.lang b/htdocs/langs/et_EE/externalsite.lang deleted file mode 100644 index 7295cbd8936..00000000000 --- a/htdocs/langs/et_EE/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Seadista link välisele lehele -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=ExternalSite moodul ei ole õigesti seadistatud. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/et_EE/ftp.lang b/htdocs/langs/et_EE/ftp.lang deleted file mode 100644 index d945955a986..00000000000 --- a/htdocs/langs/et_EE/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP kliendi mooduli seadistamine -NewFTPClient=Uue FTP ühenduse seadistamine -FTPArea=FTP ala -FTPAreaDesc=See ekraan näitab FTP serveri vaate sisu -SetupOfFTPClientModuleNotComplete=FTP kliendi mooduli seadistus ei paista olevat täielik -FTPFeatureNotSupportedByYourPHP=Sinu PHP ei toeta FTP funktsioone -FailedToConnectToFTPServer=FTP serveriga ühenduse loomine ebaõnnestus (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Määratletud kasutajanime/parooliga FTP serverisse sisse logimine ebaõnnestus -FTPFailedToRemoveFile=Faili %s kustutamine ebaõnnestus. -FTPFailedToRemoveDir=Kausta %s kustutamine ebaõnnestus (kontrolli õigusi ja seda, et kataloog on tühi). -FTPPassiveMode=Passiivne režiim -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/et_EE/holiday.lang b/htdocs/langs/et_EE/holiday.lang index 275d093c939..556389c89e4 100644 --- a/htdocs/langs/et_EE/holiday.lang +++ b/htdocs/langs/et_EE/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Personalihaldus -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Kuu aruanne MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Alguskuupäev @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Pead valima alguskuupäeva. NoDateFin=Pead valima lõppkuupäeva. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Põhjus UserCP=Kasutaja ErrorAddEventToUserCP=Erakorralise puhkuse lisamisel tekkis viga AddEventToUserOkCP=Erakorralise puhkuse lisamine edukalt lõpetatud. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Eelmine saldo NewSoldeCP=Uus saldo alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Rühmad +users=Kasutajad +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/et_EE/hrm.lang b/htdocs/langs/et_EE/hrm.lang index ffa6f2c2202..741dd2e9e3b 100644 --- a/htdocs/langs/et_EE/hrm.lang +++ b/htdocs/langs/et_EE/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Töötajad @@ -20,13 +20,14 @@ Employee=Töötaja NewEmployee=New employee ListOfEmployees=List of employees HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Tegevus -Jobs=Jobs +JobPosition=Job profile +JobsPosition=Job profiles NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Ametikoht -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,23 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels +NoDescription=No description diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang index dca9094b78c..ab9898d7bd5 100644 --- a/htdocs/langs/et_EE/install.lang +++ b/htdocs/langs/et_EE/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Seadistusfail %s on kirjutatav. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Antud PHP toetab POST ja GET muutujaid. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Antud PHP toetab sessioone. @@ -16,13 +17,6 @@ PHPMemoryOK=Antud PHP poolt kasutatav sessiooni maksimaalne mälu on %s. PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Click here for a more detailed test ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. ErrorDirDoesNotExists=Kausta %s ei ole olemas. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,9 +24,11 @@ ErrorWrongValueForParameter=Parameetri "%s" väärtus on ilmselt vales ErrorFailedToCreateDatabase=Ei suutnud luua andmebaasi '%s ". ErrorFailedToConnectToDatabase=Ei suutnud ühenduda andmebaasiga "%s". ErrorDatabaseVersionTooLow=Andmebaasi versioon (%s) on liiga vana. Vaja on versiooni %s või kõrgemat. -ErrorPHPVersionTooLow=PHP versioon on liiga vana. Vaja on versiooni %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Andmebaas '%s " on juba olemas. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Kui andmebaas on juba olemas, mine tagasi ja võta märge "Loo andmebaas" maha. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/et_EE/mailmanspip.lang b/htdocs/langs/et_EE/mailmanspip.lang index 28db7439f56..b2fb1196703 100644 --- a/htdocs/langs/et_EE/mailmanspip.lang +++ b/htdocs/langs/et_EE/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=Mailmani uuendus käivitatakse SynchroSpipEnabled=SPIP uuendus käivitatakse -DescADHERENT_MAILMAN_ADMINPW=Mailmani administraatori parool +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailmani administraatori parool DescADHERENT_MAILMAN_URL=Mailmani tellimiste URL DescADHERENT_MAILMAN_UNSUB_URL=Mailmani tellimiste tühistamise URL DescADHERENT_MAILMAN_LISTS=List(id), kuhu uued liikmed automaatselt lisatakse (komaga eraldatult) diff --git a/htdocs/langs/et_EE/mails.lang b/htdocs/langs/et_EE/mails.lang index f0a67fe8cea..431457df254 100644 --- a/htdocs/langs/et_EE/mails.lang +++ b/htdocs/langs/et_EE/mails.lang @@ -7,10 +7,10 @@ MailCard=E-postitamise kaart MailRecipients=Saajad MailRecipient=Saaja MailTitle=Kirjeldus -MailFrom=Saatja +MailFrom=Kellelt MailErrorsTo=Vead aadressile MailReply=Vasta -MailTo=Vastuvõtja(d) +MailTo=Kellele MailToUsers=To user(s) MailCC=Koopia MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index 2f646ccbe3d..72abffe2433 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=Tõlge puudub Translation=Tõlge +Translations=Translations CurrentTimeZone=PHP ajavöönd (serveri ajavöönd) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Kehtiv Approve=Kiida heaks Disapprove=Lükka tagasi ReOpen=Ava uuesti +OpenVerb=Avatud Upload=Upload ToLink=Seosta Select=Vali @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Ühtki kasutajate gruppi pole määratletud Password=Parool -PasswordRetype=Korda parooli +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Pane tähele, et palju mooduleid ja funktsioone on demoversioonis keelatud. Name=Nimi NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Kirjeldus DescriptionOfLine=Rea kirjeldus DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Tegevus @@ -344,7 +353,7 @@ KiloBytes=Kilobaiti MegaBytes=Megabaiti GigaBytes=Gigabaiti TeraBytes=Terabaiti -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Selle liikmega seotud tegevused ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s hiljaks jäänud ToDo=Teha Completed=Completed @@ -517,6 +527,7 @@ or=või Other=Muu Others=Teised OtherInformations=Other information +Workflow=Töövoog Quantity=Kogus Qty=Kogus ChangedBy=Muutis @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Manustatud failid ja dokumendid JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Funktsioon välja lülitatud MoveBox=Move widget Offered=Pakutud NotEnoughPermissions=Selle tegevuse sooritamiseks puuduvad õigused +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Sessiooni nimi Method=Meetod Receive=Võta vastu @@ -798,6 +811,7 @@ URLPhoto=Foto/logo URL SetLinkToAnotherThirdParty=Seosta muu kolmanda isikuga LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Viide tellimusele LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Majandusaasta ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Lepingud SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Tarnija maksed @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Määr +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Sisemine kasutaja +ExternalUser=Väline kasutaja diff --git a/htdocs/langs/et_EE/members.lang b/htdocs/langs/et_EE/members.lang index d9d8a787afd..8ca0208be81 100644 --- a/htdocs/langs/et_EE/members.lang +++ b/htdocs/langs/et_EE/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Mõni muu liige (nimi: %s, kas ErrorUserPermissionAllowsToLinksToItselfOnly=Turvalisuse huvides peavad sul olema õigused muuta kõiki kasutajaid enne seda, kui oled võimeline liiget siduma kasutajaga, kes ei ole sina. SetLinkToUser=Seosta Dolibarri kasutajaga SetLinkToThirdParty=Seosta Dolibarri kolmanda isikuga +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Liikmete nimekiri MembersListToValid=Mustandi staatuses olevate liikmete nimekiri (vajab kinnitamist) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Liikme ID +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Uus liige MemberType=Liikme tüüp MemberTypeId=Liikmetüübi ID @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=Uus annetus NewSubscriptionDesc=See vorm võimaldab ühenduse liikmena registreerida liikmemaksu. Oma liikmemaksu värskendamiseks (kui oled juba liige) võta selle vormi kasutamise asemel ühendust sihtasutuse juhatusega e-posti aadressil %s . Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Kestus +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Hilinenud SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Sinu liikmekaardi sisu # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Käive (ettevõttel) või eelarve maht (ühendusel) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Hüppa integreeritud online-makse lehele +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index 834accf173e..d221fd63195 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Müügipakkumine kinnitatud Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Müügipakkumine saadetud postiga Notify_WITHDRAW_TRANSMIT=Tehingu väljamakse Notify_WITHDRAW_CREDIT=Krediidi väljamakse @@ -181,6 +183,7 @@ SizeUnitfoot=jalg SizeUnitpoint=punkt BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Tagasi sisselogimise lehele AuthenticationDoesNotAllowSendNewPassword=Autentimisrežiim on hetkel %s.
    Selles režiimis ei tea Dolibarri sinu parooli ja ei ole ka võimeline seda muutma.
    Parooli muutmiseks võta ühendust oma süsteemiadministraatoriga. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Sulge Autofill = Autofill + +# externalsite +ExternalSiteSetup=Seadista link välisele lehele +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=ExternalSite moodul ei ole õigesti seadistatud. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Faili %s kustutamine ebaõnnestus. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passiivne režiim +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/et_EE/propal.lang b/htdocs/langs/et_EE/propal.lang index e7daaf5386e..9d4d9dcd7fb 100644 --- a/htdocs/langs/et_EE/propal.lang +++ b/htdocs/langs/et_EE/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Pakkumise mustandeid ei ole CopyPropalFrom=Loo pakkumine olemasoleva pakkumise kopeerimise teel CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Pakkumise kehtivus vaikimisi (päevades) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Saadavuse viivitus SetAvailability=Määratle saadavuse viivitus AfterOrder=pärast tellimist OtherProposals=Muud pakkumised + ##### Availability ##### AvailabilityTypeAV_NOW=Kohe AvailabilityTypeAV_1W=1 näda AvailabilityTypeAV_2W=2 nädalat AvailabilityTypeAV_3W=3 nädalat AvailabilityTypeAV_1M=1 kuu -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Pakkumise järelkajaga tegelev müügiesindaja TypeContact_propal_external_BILLING=Müügiarve kontakt TypeContact_propal_external_CUSTOMER=Kliendi kontakt pakkumise järelkaja jaoks TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Vaikimisi mall pakkumise sulgemiseks (arvet ei esitata) DefaultModelPropalCreate=Vaikimisi mudeli loomine DefaultModelPropalToBill=Vaikimisi mall pakkumise sulgemiseks (arve esitada) -DefaultModelPropalClosed=Vaikimisi mall pakkumise sulgemiseks (arvet ei esitata) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Keeldu +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/et_EE/recruitment.lang b/htdocs/langs/et_EE/recruitment.lang index f5373d88475..f21c797b5d4 100644 --- a/htdocs/langs/et_EE/recruitment.lang +++ b/htdocs/langs/et_EE/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Palk +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/et_EE/stocks.lang b/htdocs/langs/et_EE/stocks.lang index 8de88ac3c69..1082daa52af 100644 --- a/htdocs/langs/et_EE/stocks.lang +++ b/htdocs/langs/et_EE/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Alusta InventoryStartedShort=Alustatud ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Seaded +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/et_EE/ticket.lang b/htdocs/langs/et_EE/ticket.lang index c2d2a8f0d6a..72cc56ad90a 100644 --- a/htdocs/langs/et_EE/ticket.lang +++ b/htdocs/langs/et_EE/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Allkiri -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Uus kasutaja NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/et_EE/users.lang b/htdocs/langs/et_EE/users.lang index 34610c3c036..5a64e4c5b2a 100644 --- a/htdocs/langs/et_EE/users.lang +++ b/htdocs/langs/et_EE/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Eemalda grupist PasswordChangedAndSentTo=Salasõna muudetud ja saadetud aadressile %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Kasutaja %s salasõna muutmise plave saadetud aadressile %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Kasutajad ja grupid @@ -68,7 +68,6 @@ CreateDolibarrLogin=Loo kasutaja CreateDolibarrThirdParty=Loo kolmas isi LoginAccountDisableInDolibarr=Konto on Dolibarris blokeeritud. UsePersonalValue=Kasuta isikustatud väärtust -InternalUser=Sisemine kasutaja ExportDataset_user_1=Users and their properties DomainUser=Domeeni kasutaja %s Reactivate=Aktiveeri uuesti @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index f18097cd7fc..ab80d04586d 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -5,8 +5,8 @@ Foundation=Fundazioa Version=Bertsioa Publisher=Publisher VersionProgram=Programa bertsioa -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Hasierako instalazioaren bertsioa +VersionLastUpgrade=Azken bertsioa berritzea VersionExperimental=Esperimentala VersionDevelopment=Garapena VersionUnknown=Ezezaguna @@ -29,27 +29,27 @@ AvailableOnlyOnPackagedVersions=The local file for integrity checking is only av XmlNotFound=Xml Integrity File of application not found SessionId=Sesioaren ID SessionSaveHandler=Kudeatzailea sesioak gordetzeko -SessionSavePath=Session save location +SessionSavePath=Saioa gordetzeko kokapena PurgeSessions=Sesio garbiketa -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. +ConfirmPurgeSessions=Benetan nahi dituzu saio guztiak garbitu? Honek erabiltzaile guztiak deskonektatuko ditu (zu izan ezik). +NoSessionListWithThisHandler=Zure PHPn konfiguratutako gorde saioaren kudeatzaileak ez du onartzen martxan dauden saio guztiak zerrendatzea. LockNewSessions=Konexio berriak blokeatu -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. +ConfirmLockNewSessions=Ziur Dolibarr-eko konexio berri bat zuregana mugatu nahi duzula? %s erabiltzailea bakarrik konektatu ahal izango da horren ondoren. UnlockNewSessions=Konexioaren blokeoa kendu YourSession=Zure sesioa -Sessions=Users Sessions +Sessions=Erabiltzaileen saioak WebUserGroup=Web-zerbitzariaren erabiltzailea/taldea PermissionsOnFiles=Permissions on files PermissionsOnFilesInWebRoot=Permissions on files in web root directory PermissionsOnFile=Permissions on file %s -NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (%s) may be protected (for example by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data +NoSessionFound=Zure PHP konfigurazioak ez du onartzen saio aktiboen zerrenda. Saioak gordetzeko erabiltzen den direktorioa ( %s ) babestuta egon daiteke (adibidez, OS baimenen bidez edo PHP zuzentarauaren open_basedir). +DBStoringCharset=Datu-baseko karaktere multzoa datuak gordetzeko +DBSortingCharset=Datu-baseko karaktere multzoa datuak ordenatzeko HostCharset=Host charset ClientCharset=Client charset ClientSortingCharset=Client collation WarningModuleNotActive=%s moduluak gaituta egon behar du -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. +WarningOnlyPermissionOfActivatedModules=Aktibatutako moduluekin erlazionatutako baimenak bakarrik erakusten dira hemen. Beste modulu batzuk aktibatu ditzakezu Hasiera->Konfigurazioa->Moduluak orrian. DolibarrSetup=Dolibarr instalatu edo eguneratu InternalUser=Barneko erabiltzailea ExternalUser=Kanpoko erabiltzailea @@ -59,24 +59,24 @@ UserInterface=User interface GUISetup=Itxura SetupArea=Konfigurazioa UploadNewTemplate=Upload new template(s) -FormToTestFileUploadForm=Form to test file upload (according to setup) +FormToTestFileUploadForm=Fitxategien igoera probatzeko inprimakia (konfigurazioaren arabera) ModuleMustBeEnabled=The module/application %s must be enabled ModuleIsEnabled=The module/application %s has been enabled -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove/rename file %s if it exists, to allow usage of the Update/Install tool. -RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. +IfModuleEnabled=Oharra: bai eraginkorra da %s gaituta badago bakarrik +RemoveLock=Kendu/aldatu izena fitxategia %s badago, Eguneratu/Instalatu tresna erabiltzeko. +RestoreLock=Leheneratu %s fitxategia, irakurtzeko baimenarekin soilik, Eguneratu/Instalatu tresnaren erabilera gehiago desgaitzeko. SecuritySetup=Segurtasunaren konfigurazioa PHPSetup=PHP setup OSSetup=OS setup SecurityFilesDesc=Define here options related to security about uploading files. ErrorModuleRequirePHPVersion=Errorea, modulu honek PHP-ren %s bertsioa -edo handiagoa- behar du ErrorModuleRequireDolibarrVersion=Errorea, modulu honek Dolibarr-en %s bertsioa -edo handiagoa- behar du -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. +ErrorDecimalLargerThanAreForbidden=Errore bat, %s baino zehaztasun handiagoa ez da onartzen. DictionarySetup=Dictionary setup Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record +ErrorReservedTypeSystemSystemAuto=Motetarako 'system' eta 'systemauto' balioa erreserbatuta dago. 'erabiltzailea' erabil dezakezu balio gisa zure erregistroa gehitzeko ErrorCodeCantContainZero=Kodeak ezin du 0 balioa izan -DisableJavascript=Disable JavaScript and Ajax functions +DisableJavascript=Desgaitu JavaScript eta Ajax funtzioak DisableJavascriptNote=Note: For test or debug purpose only. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. @@ -109,7 +109,7 @@ NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Oharra: zure PHP konfigurazioan ez da limiterik ezarri MaxSizeForUploadedFiles=Igotako fitxategien tamaina maximoa (0 fitxategiak igotzea ezgaitzeko) -UseCaptchaCode=Sarrera orrian kode grafikoa (CAPTCHA) erabili +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Biruskontrako komandoaren kokapen osoa AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= More parameters on command line @@ -408,7 +408,7 @@ PDF=PDF PDFDesc=Global options for PDF generation PDFOtherDesc=PDF Option specific to some modules PDFAddressForging=Rules for address section -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT +HideAnyVATInformationOnPDF=Ezkutatu Salmenten gaineko Zergarekin / BEZarekin lotutako informazio guztia PDFRulesForSalesTax=Rules for Sales Tax / VAT PDFLocaltax=Rules for %s HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -718,9 +718,9 @@ Permission34=Produktuak ezabatu Permission36=See/manage hidden products Permission38=Produktuak esportatu Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Read interventions Permission62=Create/modify interventions @@ -766,9 +766,10 @@ Permission122=Create/modify third parties linked to user Permission125=Delete third parties linked to user Permission126=Export third parties Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Read providers Permission147=Read stats Permission151=Read direct debit payment orders @@ -883,6 +884,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -969,6 +973,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Setup saved SetupNotSaved=Setup not saved @@ -1122,7 +1129,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1187,7 +1194,7 @@ BankModuleNotActive=Bank accounts module not enabled ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Alerts -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1464,7 +1474,7 @@ MembersSetup=Kideak moduluaren konfigurazioa MemberMainOptions=Aukera nagusiak AdherentLoginRequired= Kide bakoitzarentzat Sarrera bat kudeatu AdherentMailRequired=Email required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default +MemberSendInformationByMailByDefault=Kideei posta berrespena bidaltzeko kontrol-laukia (balioztapena edo harpidetza berria) aktibatuta dago lehenespenez MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. @@ -1675,11 +1685,11 @@ DonationsSetup=Donation module setup DonationsReceiptModel=Template of donation receipt ##### Barcode ##### BarcodeSetup=Barcode setup -PaperFormatModule=Print format module +PaperFormatModule=Inprimatzeko formatuaren modulua BarcodeEncodeModule=Barcode encoding type CodeBarGenerator=Barcode generator ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator +FormatNotSupportedByGenerator=Sorgailu honek ez du formatua onartzen BarcodeDescEAN8=EAN8 motako barra-kodea BarcodeDescEAN13=EAN13 motako barra-kodea BarcodeDescUPC=UPC motako barra-kodea @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1949,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server @@ -2057,18 +2069,30 @@ EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2089,7 +2113,7 @@ ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2168,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2206,12 +2233,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2247,35 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +NoName=No name +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: diff --git a/htdocs/langs/eu_ES/companies.lang b/htdocs/langs/eu_ES/companies.lang index 388854d1053..e6bc33658a7 100644 --- a/htdocs/langs/eu_ES/companies.lang +++ b/htdocs/langs/eu_ES/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Address State=State/Province +StateId=State ID StateCode=State/Province code StateShort=State Region=Region Region-State=Region - State Country=Country CountryCode=Country code -CountryId=Country id +CountryId=Country ID Phone=Telefonoa PhoneShort=Telefonoa Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) @@ -312,11 +313,11 @@ CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default HasRelativeDiscountFromSupplier=You have a default discount of %s%% from this vendor -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor +HasNoRelativeDiscountFromSupplier=No default relative discount from this vendor CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for %s %s CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this vendor +HasNoAbsoluteDiscountFromSupplier=No discount/credit available from this vendor HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for %s %s from this vendor HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for %s %s from this vendor HasCreditNoteFromSupplier=You have credit notes for %s %s from this vendor @@ -343,7 +344,7 @@ DefaultContact=Default contact/address ContactByDefaultFor=Default contact/address for AddThirdParty=Create third party DeleteACompany=Delete a company -PersonalInformations=Personal data +PersonalInformations=Datu pertsonalak AccountancyCode=Accounting account CustomerCode=Customer Code SupplierCode=Vendor Code @@ -426,7 +427,7 @@ ChangeContactInProcess=Change status to 'Contact in process' ChangeContactDone=Change status to 'Contact done' ProspectsByStatus=Prospects by status NoParentCompany=None -ExportCardToFormat=Export card to format +ExportCardToFormat=Esportatu txartela formatuan ContactNotLinkedToCompany=Contact not linked to any third party DolibarrLogin=Dolibarr login NoDolibarrAccess=No Dolibarr access @@ -443,10 +444,10 @@ AddAddress=Add address SupplierCategory=Vendor category JuridicalStatus200=Independent DeleteFile=Delete file -ConfirmDeleteFile=Are you sure you want to delete this file? +ConfirmDeleteFile=Are you sure you want to delete this file %s? AllocateCommercial=Assigned to sales representative Organization=Organization -FiscalYearInformation=Fiscal Year +FiscalYearInformation=Urte fiskala FiscalMonthStart=Starting month of the fiscal year SocialNetworksInformation=Social networks SocialNetworksFacebookURL=Facebook URL @@ -497,3 +498,5 @@ RestOfEurope=Rest of Europe (EEC) OutOfEurope=Out of Europe (EEC) CurrentOutstandingBillLate=Current outstanding bill late BecarefullChangeThirdpartyBeforeAddProductToInvoice=Be carefull, depending on your product price settings, you should change thirdparty before adding product to POS. +EmailAlreadyExistsPleaseRewriteYourCompanyName=email already exists please rewrite your company name +TwoRecordsOfCompanyName=more than one record exists for this company please contact us to complete your partnership request" diff --git a/htdocs/langs/eu_ES/datapolicy.lang b/htdocs/langs/eu_ES/datapolicy.lang new file mode 100644 index 00000000000..375b0578299 --- /dev/null +++ b/htdocs/langs/eu_ES/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Bezeroa +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Hornitzailea +DATAPOLICY_CONTACT_CLIENT = Bezeroa +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Hornitzailea +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/eu_ES/dict.lang b/htdocs/langs/eu_ES/dict.lang index d44fcaa0375..ffba9ad9e34 100644 --- a/htdocs/langs/eu_ES/dict.lang +++ b/htdocs/langs/eu_ES/dict.lang @@ -21,7 +21,7 @@ CountryNL=Netherlands CountryHU=Hungary CountryRU=Errusia CountrySE=Suetzia -CountryCI=Ivoiry Coast +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs. +CivilityMMEShort=Mrs. CivilityMR=Jauna +CivilityMRShort=Jauna CivilityMLE=Anderea CivilityMTRE=Master CivilityDR=Doctor @@ -309,17 +311,17 @@ DemandReasonTypeSRC_EMPLOYEE=Langilea DemandReasonTypeSRC_SPONSORING=Sponsorship DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer #### Paper formats #### -PaperFormatEU4A0=Format 4A0 -PaperFormatEU2A0=Format 2A0 -PaperFormatEUA0=Format A0 -PaperFormatEUA1=Format A1 -PaperFormatEUA2=Format A2 -PaperFormatEUA3=Format A3 -PaperFormatEUA4=Format A4 -PaperFormatEUA5=Format A5 -PaperFormatEUA6=Format A6 -PaperFormatUSLETTER=Format Letter US -PaperFormatUSLEGAL=Format Legal US +PaperFormatEU4A0=4A0 formatua +PaperFormatEU2A0=2A0 formatua +PaperFormatEUA0=A0 formatua +PaperFormatEUA1=A1 formatua +PaperFormatEUA2=A2 formatua +PaperFormatEUA3=A3 formatua +PaperFormatEUA4=A4 formatua +PaperFormatEUA5=A5 formatua +PaperFormatEUA6=A6 formatua +PaperFormatUSLETTER=Formateatu letra US +PaperFormatUSLEGAL=Formatua Legal US PaperFormatUSEXECUTIVE=Format Executive US PaperFormatUSLEDGER=Format Ledger/Tabloid PaperFormatCAP1=Format P1 Canada diff --git a/htdocs/langs/eu_ES/errors.lang b/htdocs/langs/eu_ES/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/eu_ES/errors.lang +++ b/htdocs/langs/eu_ES/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/eu_ES/externalsite.lang b/htdocs/langs/eu_ES/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/eu_ES/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/eu_ES/ftp.lang b/htdocs/langs/eu_ES/ftp.lang deleted file mode 100644 index 8d58b5e69db..00000000000 --- a/htdocs/langs/eu_ES/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP bezero modulua konfiguratu -NewFTPClient=FTP konexio berria konfiguratu -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/eu_ES/holiday.lang b/htdocs/langs/eu_ES/holiday.lang index 180e39ed54a..5451d56ae7f 100644 --- a/htdocs/langs/eu_ES/holiday.lang +++ b/htdocs/langs/eu_ES/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Start date @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Reason UserCP=Erabiltzailea ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Taldeak +users=Erabiltzaileak +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang index 939f02c4873..3648034a1d1 100644 --- a/htdocs/langs/eu_ES/main.lang +++ b/htdocs/langs/eu_ES/main.lang @@ -1,26 +1,32 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +FormatDateShort=%Y/%m/%d +FormatDateShortInput=%Y/%m/%d +FormatDateShortJava=yyyy/MM/dd +FormatDateShortJavaInput=yyyy/MM/dd +FormatDateShortJQuery=yy/mm/dd +FormatDateShortJQueryInput=yy/mm/dd FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourShort=%Y/%m/%d %I:%M %p +FormatDateHourSecShort=%Y/%m/%d %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p DatabaseConnection=Database connection @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (zerbitzaria) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Open Upload=Upload ToLink=Esteka Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Pasahitza -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=Izena NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Deskribapena DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -311,7 +320,7 @@ DurationMonths=months DurationWeeks=weeks DurationDays=days Year=Year -Month=Month +Month=Hilabetea Week=Week WeekShort=Week Day=Day @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=Besteak Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=UUUU-HH DateFormatYYYYMMDD=UUUU-HH-EE DateFormatYYYYMMDDHHMM=UUUU-HH-EE OO:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Kontratuak SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Barneko erabiltzailea +ExternalUser=Kanpoko erabiltzailea diff --git a/htdocs/langs/eu_ES/projects.lang b/htdocs/langs/eu_ES/projects.lang index ee6916fbc5e..8224129060e 100644 --- a/htdocs/langs/eu_ES/projects.lang +++ b/htdocs/langs/eu_ES/projects.lang @@ -156,6 +156,7 @@ ProjectsAndTasksLines=Projects and tasks ProjectCreatedInDolibarr=Project %s created ProjectValidatedInDolibarr=Project %s validated ProjectModifiedInDolibarr=Project %s modified +ProjectClosedInDolibarr=Project %s closed TaskCreatedInDolibarr=Task %s created TaskModifiedInDolibarr=Task %s modified TaskDeletedInDolibarr=Task %s deleted diff --git a/htdocs/langs/eu_ES/recruitment.lang b/htdocs/langs/eu_ES/recruitment.lang index 6b0e8117254..3076a538e5c 100644 --- a/htdocs/langs/eu_ES/recruitment.lang +++ b/htdocs/langs/eu_ES/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Soldata +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/eu_ES/users.lang b/htdocs/langs/eu_ES/users.lang index b486ad27267..f20d975f51b 100644 --- a/htdocs/langs/eu_ES/users.lang +++ b/htdocs/langs/eu_ES/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Remove from group PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Request to change password for %s sent to %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Users & Groups @@ -68,7 +68,6 @@ CreateDolibarrLogin=Create a user CreateDolibarrThirdParty=Create a third party LoginAccountDisableInDolibarr=Account disabled in Dolibarr. UsePersonalValue=Use personal value -InternalUser=Barneko erabiltzailea ExportDataset_user_1=Users and their properties DomainUser=Domain user %s Reactivate=Reactivate @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index 5484f0752a5..5b47b8f01da 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=کشورهائی که در اتحادیۀ اروپا نیست CountriesInEECExceptMe=کشورهائی که در اتحادیۀ اروپا هستند به استثناء %s CountriesExceptMe=همۀ کشورها باستثناء %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=در برپاسازی برای تامین کن MainAccountForUsersNotDefined=در برپاسازی برای کاربران حساب حساب‌داری اصلی تعریف نشده است MainAccountForVatPaymentNotDefined=در برپاسازی برای مالیات بر ارزش افزوده حساب حساب‌داری اصلی تعریف نشده است MainAccountForSubscriptionPaymentNotDefined=در برپاسازی برای پرداخت اشتراک حساب حساب‌داری اصلی تعریف نشده است +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=بخش حساب‌داری AccountancyAreaDescIntro=استفاده از بخش حساب‌داری در گام‌های متعددی انجام می‌پذیرد: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=غیرفعال کردن ثبت مستقیم تراکن ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=فعال کردن خروجی پیش‌نویس از دفتر ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=دفتر فروش -ACCOUNTING_PURCHASE_JOURNAL=دفتر خرید -ACCOUNTING_MISCELLANEOUS_JOURNAL=دفتر متفرقه +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=دفتر گزارش هزینه‌ها -ACCOUNTING_SOCIAL_JOURNAL=دفتر اجتماعی +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=دفتر جدید دارد +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=دفتر اجتماعی ACCOUNTING_RESULT_PROFIT=نتیجۀ حساب حساب‌داری (سود) ACCOUNTING_RESULT_LOSS=نتیجۀ حساب حساب‌داری (ضرر) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=دفتر خاتمه -ACCOUNTING_ACCOUNT_TRANSFER_CASH=حساب‌حسابداری انتقال پول بین‌بانکی +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=حساب حساب‌داری انتظار -DONATION_ACCOUNTINGACCOUNT=حساب حساب‌داری ثبت کمک و اعانه -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=حساب حساب‌داری ثبت اشتراک‌ها +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=حساب حساب‌داری پیش‌فرض برای محصولات فروخته شده (در صورت عدم تعریف در برگۀ محصولات استفاده می‌شود) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=حساب حساب‌داری پیش‌فرض برای خدمات خریداری شده (در صورت عدم تعریف در برگۀ خدمات استفاده می‌شود) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=حساب حساب‌داری پیش‌فرض برای خدمات فروخته شده (در صورت عدم تعریف در برگۀ خدمات استفاده می‌شود) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=نوع سند Docdate=تاریخ @@ -211,7 +217,7 @@ Codejournal=دفتر JournalLabel=برچسب دفتر NumPiece=شمارۀ بخش TransactionNumShort=تعداد تراکنش‌ها -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=در این قسمت می‌توانید گروه‌های متشکل از حساب‌حساب‌داری بسازید. این گروه‌ها برای گزارش‌های دل‌خواه حساب‌داری استفاده می‌شود. @@ -265,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=جمع گردش‌مالی پیش‌از محاسبۀ مالیات TotalMarge=حاشیه فروش کل -DescVentilCustomer=در اینجا فهرست سطور صورت‌حساب مشتری را که در یک حساب حساب‌داری محصول بند شده‌اند (یا نشده‌اند) را ملاحظه کنید -DescVentilMore=در اکثر موارد در صورتی‌که از محصولات یا خدمات ازپیش‌تعریف‌شده استفاده کنید و شمارۀ حساب را بر روی کارت محصول/خدمت تعریف کنید، برنامه قادر خواهد بود همۀ بندهای لازم را بین سطور صورت‌حساب و حساب حساب‌داری در ساختار حساب‌های شما ایجاد کنید، فقط با یک کلیک بر روی کلید "%s". در صورتی که حساب در کارت‌های محصول/خدمت تعریف نشده باشد یا این‌که هنوز سطوری داشته باشید که به یک حساب بند نشده باشد، شما باید این بندها را از طریق فهرست "%s" ایجاد نمائید. -DescVentilDoneCustomer=در این قسمت فهرستی از سطور صورت‌حساب‌های مشتری‌ها و حساب حساب‌داری محصولات آن‌ها را ملاحظه کنید -DescVentilTodoCustomer=بندکردن سطور صورت‌حساب‌هائی که فعلا به یک حساب‌حساب‌داری محصول بند نشده‌اند -ChangeAccount=تغییر حساب‌حسابداری محصول/خدمت برای سطور انتخاب شده با حساب‌حسابداری زیر: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=در این قسمت فهرستی از سطور صورت‌حساب‌های تامین کنندگان و حساب‌حساب‌داری آن‌ها ملاحظه کنید DescVentilTodoExpenseReport=بندکردن سطور گزارش هزینه‌هائی که قبلا به حساب‌حسابداری پرداختی بند نشده‌اند DescVentilExpenseReport=در این قسمت فهرستی از سطور گزارش هزینه‌هائی را که به یک حساب‌حساب‌داری پرداخت بندشده‌اند (یا نشده‌اند) را ملاحظه کنید @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=در صورتی‌که شما حساب‌حساب‌ DescVentilDoneExpenseReport=در این قسمت فهرستی از سطور گزارشات هزینه و حساب‌حساب‌داری پرداخت آن‌ها را داشته باشید Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=بندکردن خودکار AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=خطا! شما نمی‌توانید این حساب حساب‌داری را حذف کنید، زیرا در حال استفاده است. +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=تعدیل FicheVentilation=بندشدن کارت GeneralLedgerIsWritten=تراکنش‌ها در دفترکل درج شده GeneralLedgerSomeRecordWasNotRecorded=برخی از تراکنش‌ها امکان دفترنویسی ندارند. در صورتی که خطای دیگری وجود نداشته باشد، این بدان معناست که قبلا در دفتر وارد شده‌اند. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=فهرست محصولاتی که به هیچ حساب حساب‌داری بند نشده‌اند +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=تغییر بند‌شدن‌ها Accounted=در دفترکل حساب‌شده است NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=فعالیت‌های متفرقه AccountingJournalType2=فروش AccountingJournalType3=خرید AccountingJournalType4=بانک -AccountingJournalType5=گزارش هزینه‌ها +AccountingJournalType5=گزارش‌هزینه‌ها AccountingJournalType8=انبار AccountingJournalType9=جدید-دارد +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=این دفتر فعلا در حال استفاده است AccountingAccountForSalesTaxAreDefinedInto=نکته: حساب حساب‌داری برای مالیات بر فروش در گزینۀ %s - %s قابل تعریف است NumberOfAccountancyEntries=تعداد ورودی‌ها @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=تعداد جابجائی‌ها ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=صادرکردن پیش‌نویس دفتر @@ -398,7 +407,11 @@ Calculated=محاسبه‌شده Formula=فرمول ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=تائید حذف گروهی ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=ورودی‌های حساب‌داری @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=هشدار! این گزارش بر مبنای دفتر کل نمی‌باشد، بنابراین دربردارندۀ تراکنش‌هائی که به شکل دستی در دفترکل ویرایش شده‌اند نیست. در صورتی که دفترنویسی شما روزآمد باشد، نمای «دفترنویسی» دقیق‌تر است. ExpenseReportJournal=دفتر گزارش هزینه‌ها -InventoryJournal=دفتر انبار NAccounts=%s accounts diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 06c8610568f..1b11d861453 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=تنظیمات collation مشتری WarningModuleNotActive=واحد %s باید فعال باشد WarningOnlyPermissionOfActivatedModules=تنها مجوزهای مربوط به واحد‌های فعال در اینجا نشان داده شده است. شما می توانید ماژول های دیگر در صفحۀاصلی->برپاسازی->واحد‌ها فعال کنید. DolibarrSetup=نصب یا ارتقای Dolibarr -InternalUser=کاربر داخلی -ExternalUser=کاربر خارجی InternalUsers=کاربران داخلی ExternalUsers=کاربران خارجی UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=ارزش بعدی (جایگزینی) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=توجه: هیچ محدودیتی در پیکربندی PHP شما وجود ندارد MaxSizeForUploadedFiles=حداکثر اندازۀ فایل بارگذاری شده ( برای عدم اجازۀ ارسال فایل عدد 0 را وارد نمائید) -UseCaptchaCode=استفاده از کدهای گرافیکی (CAPTCHA) در صفحۀ ورود +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=مسیر کامل خط‌فرمان ویروس‌کش AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= پارامترهای بیشتر در خط فرمان @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=میزبان SMTP/SMTPS (مقدار پیش‌فرض در p MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=درگاه SMTP/SMTPS (در سامانه‌های ردۀ یونیکس تعریف نشده ) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=میزبان SMTP/SMTPS (در سامانه‌های ردۀ یونیکس تعریف نشده ) MAIN_MAIL_EMAIL_FROM=رایانامۀ ارسال کننده برای ارسال‌های خودکار (مقدار پیش‌فرض در php.ini : %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=رایانامه‌ای که برای ارسال پاسخ در نظر گرفت می‌شود ( بخش‌های "Errors-To" در پیام فرستاده شده) MAIN_MAIL_AUTOCOPY_TO= ارسال یک نسخه (Bcc) از همۀ پیام‌های ارسال شده به MAIN_DISABLE_ALL_MAILS=توقف ارسال همۀ رایانامه‌ها (برای اهداف آزمایشی یا نمایشی) @@ -439,8 +438,10 @@ Unique=منحصربه‌فرد Boolean=بولی (یک کادر تائید) ExtrafieldPhone = تلفن ExtrafieldPrice = قیمت +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = رایانامه ExtrafieldUrl = نشانی اینترنتی +ExtrafieldIP = درگاه اینترنتی ExtrafieldSelect = فهرست قابل انتخاب ExtrafieldSelectList = انتخاب از جدول ExtrafieldSeparator=جداکننده (یک بخش مجزا نیست) @@ -477,7 +478,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=ایجاد دستجمعی بارکد برای اشخاص‌سوم BarcodeInitForProductsOrServices=ایجاد یا بازسازی بارکد برای محصولات یا خدمات CurrentlyNWithoutBarCode=در حال حاضر شما %s ردیف در %s %s دارید که برای آن‌ها بارکد تعریف نشده. -InitEmptyBarCode=مقدار ابتدائی برای %s ردیف خالی بعدی +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=حذف همۀ مقادیر کنونی بارکدها ConfirmEraseAllCurrentBarCode=آیا مطمئن هستید می‌خواهید همۀ مقادیر فعلی بارکدها را حذف کنید؟ AllBarcodeReset=همۀ مقادیر بارکدها حذف شدند @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=در صورتی که ارائۀ خدمات رایانامۀ SMTP شما نیازمند محدود کردن مشتری خدمات رایانامه به درگاه‌های اینترنتی خاص است (در موارد معدود)، این نشانی درگاه اینترنتی کاربر رایانامه (MUA) برای برنامۀ ERP CRM شماست: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=برای دریافت توضیحات کلیک کنید DependsOn=این واحد نیازمند فعالیت واحد‌(های) دیگر است RequiredBy=این واحد توسط واحد(های) دیگر مورد نیاز است @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    مثال:
    برای برگۀ ساخت یک PageUrlForDefaultValuesList=
    مثال:
    برای صفحۀ فهرست اشخاص سوم، به شکل %s می‌باشد.
    برای نشانی مربوط به قسمت‌های خارجی که در یک پوشۀ دلخواه نصب‌شده، از "custom/" استفاده ننمائید، بلکه از مسیری مثل mymodule/mypagelist.php و به شکل custom/mymodule/mypagelist.php نباشد.
    در صورتی که مقدار پیش فرض را در صورت وجود مقادیر در نشانی اینترنتی مورد نظر دارید از %s استفاده کنید AlsoDefaultValuesAreEffectiveForActionCreate=به‌یاد داشته باشید که بازنویسی مقادیر پیش‌فرض برای ساخت برگۀ دریافت اطلاعات تنها برای صفحاتی کار می‌کند که درست طراحی شده باشند ( یعنی با مقدار action=create یا presend...) EnableDefaultValues=فعال‌کردن اختصاصی‌سازی مقادیر پیش‌فرض -EnableOverwriteTranslation=فعال کردن استفاده از ترجمه‌های بازنویسی شده +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=برای این کلید با این کد یک ترجمه پیدا شده است. برای تغییر این مقدار، شما باید از گزینۀ خانه-برپاسازی-ترجمه استفاده نمائید. WarningSettingSortOrder=هشدار! تنظیم ترتیب پیش‌فرض، ممکن است اگر این بخش ناشناخته باشد، به یک خطای فنی در هنگام مراجعه به صفحۀ فهرست مواجه شود.در صورتی که با چنین اشکالی برخوردید، به این صفحه بازگردید تا ترتیب پیش‌فرض را بردارید و به رفتار معمولی بازگردید. Field=بخش @@ -645,9 +647,9 @@ Module2400Name=رخدادها/جلسات Module2400Desc=رهگیری رخدادها. گزارش‌گیری خودکار رخدادها برای اهداف رهگیری یا ثبت دستی رخدادها یا ملاقات‌ها. این واحد مفهومی برای مشتری خوب یا مدیریت ارتباط با تامین کننده است. Module2500Name=DMS / ECM Module2500Desc=سامانۀ مدیریت مستندات / مدیریت محتوای الکترونیکی. سازماندهی خودکار مستندات ذخیره شده یا تولید شدۀ شما. اشتراک‌گذاری در صورت نیاز. -Module2600Name=خدمات مبتنی بر وب یا رابط برنامه‌نویسی کاربردی (سرور SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=فعال‌کردن سرور SOAP مشتمل بر خدمات رابط برنامه‌نویسی کاربردی -Module2610Name=خدمات مبتنی بر وب یا رابط برنامه‌نویسی کاربردی (سرور REST) +Module2610Name=API / Web services (REST server) Module2610Desc=فعال کردن سرور REST مشتمل بر خدمات رابط برنامه نویسی کاربردی Module2660Name=خدمات تماس/فراخوان مبتنی بر وب ( متقاضی SOAP) Module2660Desc=فعال کردن خدمات مبتنی بر وب متقاضی ( قابل استفاده برای ارسال-push داده/درخواست به سرورهای خارجی. فعلا تنها سفارش‌های خرید پشتیبانی می‌شود.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=افزودن قابلیت‌های مدیریت Incoterms که شرایط و قرارداهای ارتباطی تجارت بین الملل است Module63000Name=منابع Module63000Desc=مدیریت منابع (چاپ‌گرها، خودروها، اتاق‌ها و غیره) برای انتساب به رخدادها +Module94160Name=دریافت‌های کالا Permission11=ملاحظۀ صورت‌حساب‌های مشتریان Permission12=ایجاد/ویرایش صورت‌حساب مشتریان Permission13=Invalidate customer invoices @@ -714,6 +717,7 @@ Permission27=حذف پیشنهادات تجاری Permission28=صادرات پیشنهادات تجاری Permission31=ملاحظۀ محصولات Permission32=ساخت/ویرایش محصولات +Permission33=Read prices products Permission34=حذف محصول Permission36=مشاهده/مدیریت محصولات پنهان Permission38=صادرکردن محصولات @@ -739,6 +743,7 @@ Permission79=ساخت/ویراش عضویت‌ها Permission81=ملاحظۀ سفارشات مشتریان Permission82=ساخت/ویرایش سفارشات مشتریان Permission84=اعتباردهی به سفارشات مشتریان +Permission85=Generate the documents sales orders Permission86=ارسال سفارشات مشتریان Permission87=بستن سفارشات مشتریان Permission88=لغو سفارشات مشتریان @@ -840,9 +845,9 @@ Permission286=صادرکردن طرف‌های تماس Permission291=ملاحظۀ تعرفه‌ها Permission292=تعیین مجوزهای مربوط به تعرفه‌ها Permission293=ویرایش تعرفۀ مشتریان -Permission300=ملاحظۀ بارکدها -Permission301=ایجاد/ویرایش بارکدها -Permission302=حذف بارکدها +Permission301=Generate PDF sheets of barcodes +Permission304=ایجاد/ویرایش بارکدها +Permission305=حذف بارکدها Permission311=ملاحظۀ خدمات Permission312=اختصاص‌دادن خدمات/اشتراک‌ها به قرارداد Permission331=ملاحظۀ نشانه‌ها @@ -874,6 +879,7 @@ Permission525=دسترسی به محاسبه‌گر وام Permission527=صادرکردن وام‌ها Permission531=ملاحظۀ خدمات Permission532=ایجاد/ویرایش خدمات +Permission533=Read prices services Permission534=حذف خدمات Permission536=مشاهده/مدیریت خدمات پنهان Permission538=صادرکردن خدمات @@ -968,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=خواندن محتوای وبگاه Permission10002=ساخت/ویرایش محتوای وبگاه (محتوای html و javascript ) Permission10003=ساخت/ویرایش محتوای وبگاه (کد پویای PHP). خطرناک، تنها باید تحت نظر توسعه‌دهندگان مشخص و محدود باشد. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=تنظیمات برپاسازی ذخیره شد SetupNotSaved=تنظیمات برپاسازی ذخیره نشد +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=بازگشت به فهرست واحد‌ها BackToDictionaryList=بازگشت به فهرست واژه‌نامه‌ها TypeOfRevenueStamp=انواع تمبر مالیاتی @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=تعداد روزها AtEndOfMonth=در پایان ماه -CurrentNext=فعلی/بعدی +CurrentNext=A given day in month Offset=جابجائی AlwaysActive=همیشه فعال Upgrade=به‌هنگام‌سازی @@ -1235,11 +1246,13 @@ BrowserName=نام مرورگر BrowserOS=سیستم عامل مرورگر ListOfSecurityEvents=فهرست رویدادهای امنیتی Dolibarr SecurityEventsPurged=رویدادهای امنیتی پاکسازی شد +TrackableSecurityEvents=Trackable security events LogEventDesc=فعال کردن گزارش‌گیری برای روی‌دادهای امنیتی خاص. دسترسی مدیران به گزارش توسط فهرست %s - %s. هشدار، این قابلیت می‌تواند حجم زیادی داده در پایگاه‌داده ذخیره کند. AreaForAdminOnly=مقادیر برپاسازی تنها توسط کاربران مدیر قابل تنظیم است. SystemInfoDesc=اطلاعات سامانه، اطلاعاتی فنی است که در حالت فقط خواندنی است و تنها برای مدیران قابل نمایش است. SystemAreaForAdminOnly=این ناحیه تنها برای کاربران مدیر در دسترس است. مجوزهای کاربران Dolibarr  این محدودیت‌ها را تغییر نمی‌دهد. CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=در صورتی‌که شما یک حساب‌دار/دفتردار بیرونی دارید، می‌توانید اطلاعات وی را این‌جا ویرایش نمائید AccountantFileNumber=کد حساب‌دار DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=شما باید این سطر YourPHPDoesNotHaveSSLSupport=توابع SSL در PHP شما موجود نیست DownloadMoreSkins=پوسته‌های بیشتر برای دریافت SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1391,7 @@ GetBarCode=دریافت بارکد NumberingModules=Numbering models DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=گذرواژۀ پیشنهادی ارائه نشود. گذرواژه‌ها باید به شکل دستی وارد شوند. PasswordGenerationPerso=بازگرداندن یک گذرواژه با توجه به پیکربندی که شما تعریف کرده‌اید. SetupPerso=بسته به پیکربندی تعیین شدۀ شما @@ -1430,6 +1445,10 @@ SuppliersPayment=پرداخت‌های فروشندگان SupplierPaymentSetup=برپاسازی پرداخت‌های فروشندگان InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=راه اندازی ماژول طرح های تجاری ProposalsNumberingModules=مدل شماره طرح تجاری @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=نقش‌پس‌زمینه روی قرارداده ##### Members ##### MembersSetup=برپاسازی واحد اعضا MemberMainOptions=گزینه‌های اصلی +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= مدیریت ورود برای هر عضو AdherentMailRequired=برای ساخت یک عضو یک رایانامه لازم است MemberSendInformationByMailByDefault=کادرتائید برای ارسال تصدیق رایانامه برای اعضا (اعتباردهی یا عضویت جدید) به شکل پیش‌فرض فعال است MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=کاربر می‌تواند از انواع روش پرداخت موجود استفاده نماید +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=فعال‌کردن یادآور خودکار توسط رایانامه برای عضویت‌های منقضی‌شده. توجه: واحد %s برای ارسال صحیح یادآورها نیازمند فعال‌سازی و پیکربندی صحیح است. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=فعال کردن ویرایشگر پیشرفته برای: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= ساخت/ویرایش WYSIWIG برای ارسال رایانامۀ انبوه (ابزار->ارسال رایانامه) FCKeditorForUserSignature=ساخت/ویرایش امضای کاربر توسط WYSIWIG FCKeditorForMail=ساخت/ویرایش همۀ رایانامه‌ها با WYSIWIG (منهای ابزار->ارسال رایانامه) @@ -1762,7 +1782,7 @@ DetailMenuHandler=اداره کنندۀ فهرست برای تعیین مکان DetailMenuModule=نام واحد در صورتی که یک قسمت از فهرست از یک واحد می‌آید DetailType=نوع فهرست (بالا یا چپ) DetailTitre=برچسب فهرست یا کدبرچسب برای ترجمه -DetailUrl=نشانی برای مراجعه (پیوند مطلق نشانی اینترنتی یا نشانی خارجی با http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=شرایط نمایش یا عدم‌نمایش قسمت DetailRight=شرایط نمایش فهرست‌های خاکستری غیرمجاز DetailLangs=نام فایل ترجمه برای کد برچسب ترجمه @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=کاهش موجودی در صندوق CashDeskYouDidNotDisableStockDecease=شما کاهش موجودی با فروش از طریق صندوق را غیرفعال نکرده‌اید، بنابراین تعریف یک انبار موردنیاز است. CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=برپاسازی واحد نشانه‌ها BookmarkDesc=این واحد به شما امکان مدیریت نشانه‌ها را می‌دهد. شما همچنین می‌توانید از این طریق به صفحات مختلف Dolibarr یا سایر نشانی‌های خارجی در فهرست سمت چپ میان‌بر ایجاد کنید. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=روش‌های شماره‌گذاری صورت IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=برپاسازی واحد GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=توجه داشته باشید داده‌های فایل تبدیل درگاه‌اینترنتی به کشور باید در پوشه‌ای باشد که PHP بتواند آن را بخواند (تنظیمات open_basedir  در PHP و مجوزهای فایل را در سامانه بررسی کنید). YouCanDownloadFreeDatFileTo=شما می‌توانید یک نسخۀ نمایشی رایگان از فایل کشورهای GeoIP Maxmind را در %s دریافت نمائید. YouCanDownloadAdvancedDatFileTo=همچنین می‌توانید یک نسخۀ کامل‌تر به همراه بروزرسانی فایل کشورهای Maxmind GeoIP را در %s دریافت نمائید. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Wizard to build the database dump file BackupZipWizard=Wizard to build the archive of documents directory SomethingMakeInstallFromWebNotPossible=نصب یک واحد خارجی از طریق رابط وب به دلایل ذیل ممکن نیست: SomethingMakeInstallFromWebNotPossible2=به این دلیل، روند به‌هنگام‌سازی توضیح داده شده تنها به صورت دستی ممکن خواهد بود که تنها یک کاربر مجاز امکان انجام آن را دارد. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=نصب یک واحد خارجی از داخل برنامه توسط مدیر شما غیرفعال شده است. می‌توانید از وی بخواهید فایل %s را برای ایجاد اجازۀ نصب حذف نماید. ConfFileMustContainCustom=نصب یا ساخت یک واحد خارجی در برنامه نیازمند ذخیرۀ فایل‌های مربوطه در پوشۀ %s است. برای امکان پردازش این پوشه توسط Dolibarr شما باید به فایل conf/conf.php این 2 سطر دستوری را اضافه نمائید:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=برجسته‌کردن سطور جدول در هنگام عبور نشان‌گر موش @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=کلیدهای CTRL+F5 را روی صفحه‌کلید NotSupportedByAllThemes=با پوسته‌های هسته کار می‌کند اما ممکن است در پوسته‌های خارجی پشتیبانی نشود BackgroundColor=رنگ پس‌زمینه TopMenuBackgroundColor=رنگ پس‌زمینۀ فهرست بالا -TopMenuDisableImages=پنهان کردن تصاویر فهرست بالا +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=رنگ پس‌زمینۀ فهرست سمت چپ BackgroundTableTitleColor=رنگ پس‌زمیۀ سطر عنوان جدول BackgroundTableTitleTextColor=رنگ نوشتۀ سطر عنوان جدول @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=سفارشات خرید MailToSendSupplierInvoice=صورت‌حساب‌های فروشندگان MailToSendContract=قراردادها MailToSendReception=دریافت‌های کالا +MailToExpenseReport=گزارش‌هزینه‌ها MailToThirdparty=طرف‌های سوم MailToMember=اعضا MailToUser=کاربران @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=فاصلۀحاشیۀ راست PDF MAIN_PDF_MARGIN_TOP=فاصلۀحاشیۀ بالای PDF MAIN_PDF_MARGIN_BOTTOM=فاصلۀحاشیۀ پائین PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=حذف نویسه‌های خاص COMPANY_AQUARIUM_CLEAN_REGEX=گزینش Regex برای پاک کردن مقدار (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=مأمور حفاظت داده‌ها (DPO، حریم خصوصی یا طرف‌تماس GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=متن راهنما برای نمایش کادر‌نکات @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=نکته: این گزینه برای استفاده از مالی SwapSenderAndRecipientOnPDF=جابه‌جا کردن محل ارسال‌کننده و دریافت کننده در سندهای PDF FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=جمع‌کنندۀ رایانامه +EmailCollectors=Email collectors EmailCollectorDescription=افزودن یک وظیفۀ زمان‌بندی شده و یک صفحۀ برپاسازی برای پویش منظم بخش‌های رایانامه (با استفاده از از پرتکل IMAP) و ثبت رایانامه‌هائی که در برنامۀ شما دریافت شده در محل درست و/یا ایجاد خودکار چند ردیف (مثل سرنخ‌ها). NewEmailCollector=یک جمع‌کنندۀ رایانامۀ جدید EMailHost=میزبان سرور IMAP رایانامه +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=پوشۀ منبع صندوق‌پستی MailboxTargetDirectory=پوشۀ مقصد صندوق‌پستی EmailcollectorOperations=عملیات قابل انجام جمع‌کننده EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=حداکثر تعداد رایانامه‌های جمع‌آوری شده در یک جمع‌آوری +TestCollectNow=Test collect CollectNow=الآن جمع‌آوری شود ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=آخرین نتیجه EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=تائید جمع‌آوری رایانامه EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=رایانامۀ جدیدی (با توجه به گزینش‌ها و صافی‌ها) پیدا نشد که پردازش شود NothingProcessed=کاری انجام نشد -XEmailsDoneYActionsDone=%s رایانامه دارای شرایط لازم بود، %s رایانامه با موفقیت پردازش شد ( برای %s مورد ثبت/کنش انجام شد) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Create job application FormatZip=کدپستی MainMenuCode=کد ورودی فهرست (فهرست اصلی) ECMAutoTree=نمایش ساختاردرختی خودکار ECM -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=ساعات کار OpeningHoursDesc=ساعات کاری معمول شرکت خود را در این بخش وارد نمائید ResourceSetup=پیکربندی واحد منابع @@ -2167,6 +2200,10 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=توصیه شده NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= برپاسازی فهرست‌موجودی ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = تنظیمات +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/fa_IR/categories.lang b/htdocs/langs/fa_IR/categories.lang index 52fc644b6df..894cccec441 100644 --- a/htdocs/langs/fa_IR/categories.lang +++ b/htdocs/langs/fa_IR/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=این عضو در هیچ کلیدواژه/دسته‌بند ContactHasNoCategory=این طرف‌تماس در هیچ کلیدواژه/دسته‌بندی وجود ندارد ProjectHasNoCategory=این طرح در هیچ کلیدواژه/دسته‌بندی وجود ندارد ClassifyInCategory=افزودن به کلیدواژه/دسته‌بندی +RemoveCategory=Remove category NotCategorized=بدون کلیدواژه/دسته‌بندی CategoryExistsAtSameLevel=این رده در حال حاضر با این کد عکس وجود دارد ContentsVisibleByAllShort=مطالب توسط همه قابل مشاهده @@ -67,6 +68,7 @@ StockCategoriesShort=Warehouse tags/categories ThisCategoryHasNoItems=This category does not contain any items. CategId=شناسۀ کلیدواژه/دسته‌بندی ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=حذف از کلیدواژه/دسته‌بندی ExtraFieldsCategories=ویژگی های مکمل CategoriesSetup=برپاسازی کلیدواژه/دسته‌بندی‌ CategorieRecursiv=پیوند خودکار با کلیدواژه/دسته‌بندی والد -CategorieRecursivHelp=اگر این گزینه روشن باشد، در هنگام افزودن یک محصول به یک زیردسته، محصول مورد نظر به دسته‌بندی وارد نیز اضافه خواهد شد +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=افزودن پیگیری محصول/سرویس AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=نمایش کلیدواژه/دسته‌بندی ByDefaultInList=به طور پیش‌فرض در فهرست ChooseCategory=انتخاب دسته‌بندی StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/fa_IR/commercial.lang b/htdocs/langs/fa_IR/commercial.lang index e28e5acd698..c27228b0343 100644 --- a/htdocs/langs/fa_IR/commercial.lang +++ b/htdocs/langs/fa_IR/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=ارسال حمل‌ونقل توسط نامه ActionAC_SUP_ORD=ارسال سفارش خرید توسط نامه ActionAC_SUP_INV=ارسال صورت‌حساب فروشنده از طریق نامه ActionAC_OTH=سایر -ActionAC_OTH_AUTO=روی‌دادهائی که به‌طور خودکار درج شده‌اند +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=روی‌دادهائی که به شکل دستی وارد شده‌اند ActionAC_AUTO=روی‌دادهای درج‌شده به شکل خودکار -ActionAC_OTH_AUTOShort=خودکار +ActionAC_OTH_AUTOShort=سایر +ActionAC_EVENTORGANIZATION=Event organization events Stats=آمار فروش StatusProsp=وضعیت مشتری‌احتمالی DraftPropals=پیش‌نویش پیشنهادات تجاری NoLimit=بدون محدودیت ToOfferALinkForOnlineSignature=پیوند به امضای برخط -WelcomeOnOnlineSignaturePage=به صفحۀ دریافت پیشنهادات تجاری از %s خوش آمدید -ThisScreenAllowsYouToSignDocFrom=این صفحه به شما امکان تائید و امضا، یا رد، یک استعلام قیمت/پیشنهاد تجاری را می‌دهد -ThisIsInformationOnDocumentToSign=این اطلاعات مربوط به سند برای تائید یا رد است +WelcomeOnOnlineSignaturePageProposal=به صفحۀ دریافت پیشنهادات تجاری از %s خوش آمدید +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=این صفحه به شما امکان تائید و امضا، یا رد، یک استعلام قیمت/پیشنهاد تجاری را می‌دهد +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=این اطلاعات مربوط به سند برای تائید یا رد است +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=امضای پیشنهاد تجاری/استعلام‌مظنه %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=قابلیت امضای برخط غیرفعال است یا این سند قبل از فعال کردن این قابلیت ساخته شده است diff --git a/htdocs/langs/fa_IR/companies.lang b/htdocs/langs/fa_IR/companies.lang index 8c127d8648e..45a36aca7b1 100644 --- a/htdocs/langs/fa_IR/companies.lang +++ b/htdocs/langs/fa_IR/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=طبیعت شخص‌سوم NatureOfContact=Nature of Contact Address=نشانی State=ایالت / استان +StateId=State ID StateCode=State/Province code StateShort=استان Region=منطقه Region-State=منطقه - استان Country=کشور CountryCode=کد کشور -CountryId=شناسه کشور +CountryId=Country ID Phone=تلفن PhoneShort=تلفن Skype=اسکایپ @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=دیگران ProfId6ShortCM=- ProfId1CO=شناسۀ کاری 1 (R.U.T.) diff --git a/htdocs/langs/fa_IR/compta.lang b/htdocs/langs/fa_IR/compta.lang index 9ce3756fbdf..b5ec22415c1 100644 --- a/htdocs/langs/fa_IR/compta.lang +++ b/htdocs/langs/fa_IR/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=موجودی (قبلا) Balance=موجودی Debit=بدهکار Credit=بستانکار +AccountingDebit=بدهکار +AccountingCredit=بستانکار Piece=سند حساب‌داری AmountHTVATRealReceived=درآمد خالص AmountHTVATRealPaid=پرداختی خالص @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=حذف یک پرداخت مالیات اجتماعی/ساختاری DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=مالیات‌های اجتماعی و ساختاری و پرداخت‌ها CalcModeVATDebt=حالت %sحساب‌داری مالیات‌بر‌ارزش افزوده تعهدی%s. CalcModeVATEngagement=حالت %sمالیات بر ارزش افزوده در ازای درآمد-هزینه%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=گزارش گردش‌مال TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=گزارش گردش‌مالی بر حسب نرخ مالیات بر فروش فعال نیست. این گزارش صرفا بر حسب گردش مالی صورت‌حساب شده فعال است. CalculationMode=حالت محاسبه AccountancyJournal=دفتر کد حسابداری -ACCOUNTING_VAT_SOLD_ACCOUNT=حساب‌حساب‌داری پیش‌فرض برای مالیات‌برارزش‌افزوده در فروش ( در صورتی که در برپاسازی واژه‌نامۀ مالیات‌بر‌ارزش‌افزوده تعریف نشده باشد، استفاده می‌شود) -ACCOUNTING_VAT_BUY_ACCOUNT=حساب‌حساب‌داری پیش‌فرض برای مالیات‌برارزش‌افزوده در خرید ( در صورتی که در برپاسازی واژه‌نامۀ مالیات‌بر‌ارزش‌افزوده تعریف نشده باشد، استفاده می‌شود) -ACCOUNTING_VAT_PAY_ACCOUNT=حساب‌حساب‌داری پیش‌فرض برای پرداخت مالیات‌برارزش‌افزوده -ACCOUNTING_ACCOUNT_CUSTOMER=حساب‌حساب‌داری پیش‌فرض برای شخص‌سوم‌های مشتری +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=حساب‌حساب‌داری اختصاصی تعریف شده در کارت شخص‌سوم تنها برای حساب‌داری دفترمعین استفاده می‌شود. اگر حساب‌حساب‌داری اختصاصی مشتری در کارت شخص‌سوم تعریف نشده باشد، این یکی فقط برای دفترکل‌مرکزی و به‌عنوان مقدار پیش‌فرض حسابداری دفترمعین استفاده می‌شود. -ACCOUNTING_ACCOUNT_SUPPLIER=حساب حساب‌داری استفاده شده برای اشخاص سوم +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=حساب‌حساب‌داری اختصاصی تعریف شده در کارت شخص‌سوم تنها برای حساب‌داری دفترمعین استفاده می‌شود. اگر حساب‌حساب‌داری اختصاصی مشتری در کارت شخص‌سوم تعریف نشده باشد، این یکی فقط برای دفترکل‌مرکزی و به‌عنوان مقدار پیش‌فرض حسابداری دفترمعین استفاده می‌شود. ConfirmCloneTax=نسخه‌برداری از یک مالیات اجتماعی/ساختاری را تائید کنید ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/fa_IR/contracts.lang b/htdocs/langs/fa_IR/contracts.lang index 0010b765c09..28589f561e1 100644 --- a/htdocs/langs/fa_IR/contracts.lang +++ b/htdocs/langs/fa_IR/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=قراردادها/اشتراک‌ها ContractsAndLine=قراردادها و سطر قراردادها Contract=قرارداد ContractLine=سطر قرارداد +ContractLines=Contract lines Closing=بستن NoContracts=قراردادی نیست MenuServices=خدمات @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=آیا مطمئن هستید می‌خواهید ای MoveToAnotherContract=جابجا کردن خدمات به یک قرارداد دیگر. ConfirmMoveToAnotherContract=من یک قرارداد مقصد جدید انتخاب کردم و تائید می‌کنم که قصد دارم این خدمات را به این قرارداد جدید منتقل کنم. ConfirmMoveToAnotherContractQuestion=انتخاب کنید می‌خواهید این قرارداد را به قرارداد موجود (از همین شخص سوم) منتقل کنید؟ -PaymentRenewContractId=تمدید یک سطر قرارداد (شمارۀ %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=تاریخ انقضا NoExpiredServices=خدمات فعال منقضی شده وجود ندارد ListOfServicesToExpireWithDuration=فهرست خدماتی که در %s روز منقضی خواهند شد @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=طرف‌تماس مشتری امضا HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/fa_IR/cron.lang b/htdocs/langs/fa_IR/cron.lang index 65a628f47cb..fc54b10a328 100644 --- a/htdocs/langs/fa_IR/cron.lang +++ b/htdocs/langs/fa_IR/cron.lang @@ -26,7 +26,7 @@ CronCommand=فرمان CronList=وظایف برنامه‌ریزی‌شده CronDelete=حذف وظایف‌برنامه‌ریزی‌شده CronConfirmDelete=آیا مطمئن هستید می‌خواهید این وظایف‌برنامه‌ریزی‌شده را حذف کنید؟ -CronExecute=اجرای وظیفۀ برنامه‌ریزی‌شده +CronExecute=Launch now CronConfirmExecute=آیا مطمئن هستید می‌خواهید اکنون این وظیفۀ برنامه‌ریزی شده را اجرا کنید؟ CronInfo=واحد وظایف‌برنامه‌ریزی‌شده به شما امکان اجرای خودکار و زمان‌بندی‌شدۀ وظایف را می‌دهد. این وظایف همچنین امکان اجرای دلخواه دستی نیز دارند. CronTask=وظیفه @@ -58,7 +58,7 @@ CronNote=توضیح CronFieldMandatory=بخش %s الزامی است CronErrEndDateStartDt=تاریخ پایان نمی‌تواند قبل از تاریخ شروع باشد StatusAtInstall=وضعیت نصب واحد -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=غیرفعال‌کردن CronTaskInactive=This job is disabled (not scheduled) CronId=شناسه @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=وظیفه غیرفعال است MakeLocalDatabaseDumpShort=پشتیبان‌گیری از پایگاه داده محلی MakeLocalDatabaseDump=نسخه‌برداری-dump از پایگاه دادۀ محلی. مؤلفه‌های مربوطه از قرار: فشرده‌سازی ('gz' یا 'bz' یا 'none')، نوع پشتیبان‌گیری ('mysql', 'pgsql', 'auto'), 1, 'auto' یا نام فایلی که ساخته می‌شود, تعداد فایل‌هائی که نگه‌داری می‌شود است +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=توجه، برای مقاصد بهینه‌سازی، زمان اجرای بعدی وظایف فعال، وظایف شما ممکن است حداکثر %s ساعت قبل از اجرا تاخیر داشته باشد. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/fa_IR/datapolicy.lang b/htdocs/langs/fa_IR/datapolicy.lang new file mode 100644 index 00000000000..2b0ac4d3f5d --- /dev/null +++ b/htdocs/langs/fa_IR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = احتمالی +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = تامین کننده +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = احتمالی +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = تامین کننده +DATAPOLICY_ADHERENT = عضو +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/fa_IR/dict.lang b/htdocs/langs/fa_IR/dict.lang index 64c28335fff..f6a13348261 100644 --- a/htdocs/langs/fa_IR/dict.lang +++ b/htdocs/langs/fa_IR/dict.lang @@ -21,7 +21,7 @@ CountryNL=هلند CountryHU=مجارستان CountryRU=روسیه، CountrySE=سوئد -CountryCI=Ivoiry ساحل +CountryCI=Ivory Coast CountrySN=سنگال CountryAR=آرژانتین CountryCM=کامرون @@ -250,7 +250,9 @@ CountryMF=سنت مارتین ##### Civilities ##### CivilityMME=خانم +CivilityMMEShort=خانم CivilityMR=آقای +CivilityMRShort=آقای CivilityMLE=خانم CivilityMTRE=استاد CivilityDR=دکتر diff --git a/htdocs/langs/fa_IR/ecm.lang b/htdocs/langs/fa_IR/ecm.lang index dc0607959f4..6f19897dc52 100644 --- a/htdocs/langs/fa_IR/ecm.lang +++ b/htdocs/langs/fa_IR/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=پوشۀ دستی ECMSectionAuto=پوشۀ خودکار ECMSectionsManual=درخت دستی ECMSectionsAuto=درخت خودکار +ECMSectionsMedias=Medias tree ECMSections=پوشه‌ه ECMRoot=ریشۀ ECM ECMNewSection=پوشۀ جدید @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=تعداد فایل‌های زیرپوشه‌ها ECMCreationUser=سازنده ECMArea=بخش مدیریت مستندات/محتواها ECMAreaDesc=بخش مدیریت مستندات/محتوا (سامانۀ مدیریت مستندات / مدیریت محتوای الکترونیک) به شما امکان ذخیره، اشتراک‌گذاری و جستجوی سریع هر سندی در Dolibarr را می‌دهد. -ECMAreaDesc2=* پوشه‌های خودکار در هنگام افزودن سندهای مربوط به یک کارت موارد مختلف ایجاد و پر می‌شوند.
    * پوشه‌های دستی، برای ذخیرۀ سندهائی که به هیچ موردی متصل نیستند قابل استفاده هستند. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=پوشۀ %s حذف شد. ECMSectionWasCreated=پوشۀ %s ساخته شد. ECMSearchByKeywords=جستجو با کلمات‌کلیدی diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang index 1231bb9e621..3f78f1adb4f 100644 --- a/htdocs/langs/fa_IR/errors.lang +++ b/htdocs/langs/fa_IR/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) ErrorBadUrl=Url %s is incorrect ErrorBadValueForParamNotAString=برای مؤلفۀ موردنظر مقدار خطائی وارد شده است. عموما در هنگام فقدان ترجمه، الحاق می‌شود. ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=نام‌کاربری %s قبلا وجود داشته است. ErrorGroupAlreadyExists=گروه %s قبلا وجود داشته است. ErrorEmailAlreadyExists=Email %s already exists. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name %s already exist ErrorPartialFile=فایل به طور کامل توسط سرور دریافت نشده است. ErrorNoTmpDir=پوشۀ موقت %s وجود ندارد. ErrorUploadBlockedByAddon=امکان ارسال توسط یک افزونۀ PHP/Apache مسدود شده است -ErrorFileSizeTooLarge=حجم فایل بسیار بزرگ است. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Field %s is too long. ErrorSizeTooLongForIntType=برای این نوع عددصحیح اندازه بسیار بلند است (حداکثر %s رقم) ErrorSizeTooLongForVarcharType=برای این نوع رشتۀ حروقی اندازه بسیار بزرگ است (حداکثر %s نویسه) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=برای کار کردن این قابلیت، جا ErrorPasswordsMustMatch=هر دو گذرواژۀ وارد شده باید مطابق با هم باشند ErrorContactEMail=یک خطای فنی رخ داد، لطفا با سرپرست سامانه با این نشانی %s تماس حاصل نموده و شمارۀ خطای %s را در میان بگذارید، یا یک نسخه از این صفحه را ارسال نمائید. ErrorWrongValueForField=بخش %s:'%s' با قواعد عبارات‌منظم %s نمی‌خواند +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=بخش %s:'%s' جزو مقادیری که در بخش %s از %s هستند نیست. ErrorFieldRefNotIn=بخش %s:'%s' یک ارجاع موجود %s نیست ErrorsOnXLines=%s خطا بروز کرد @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=یک گذرواژه برای این عضو تنظیم شده است. با این‌حال هیچ حساب کاربری‌ای ساخته نشده است. بنابراین این گذرواژه برای ورود به Dolibarr قابل استفاده نیست. ممکن است برای یک رابط/واحد بیرونی قابل استفاده باشد، اما اگر شما نخواهید هیچ نام کاربری ورود و گذرواژه‌ای برای یک عضو استفاده کنید، شما می‌توانید گزینۀ "ایجاد یک نام‌ورد برای هر عضو" را از برپاسازی واحد اعضاء غیرفعال کنید. در صورتی که نیاز دارید که نام‌ورود داشته باشید اما گذرواژه نداشته باشید، می‌توانید این بخش را خالی گذاشته تا از این هشدار بر حذر باشید. نکته: همچنین نشانی رایانامه می‌تواند در صورتی که عضو به یک‌کاربر متصل باشد، می‌‌تواند مورد استفاده قرار گیرد -WarningMandatorySetupNotComplete=این گزینه را برای برپاسازی مؤلفه‌های الزامی کلیک کنید +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=این گزینه را برای فعال کردن واحدها و برنامه‌های مختلف کلیک کنید WarningSafeModeOnCheckExecDir=هشدار، قابلیت safe_mode در PHP روشن است، بنابراین این دستور باید درون یک پوشه که با استفاده از مؤلفۀ PHP با عنوان safe_mode_exec_dir تعریف شده است، قرار گیرد. WarningBookmarkAlreadyExists=یک نشانه با این عنوان یا مقصد نشانی اینترنتی (URL) قبلا وجود داشته است. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/fa_IR/externalsite.lang b/htdocs/langs/fa_IR/externalsite.lang deleted file mode 100644 index 8fde4592056..00000000000 --- a/htdocs/langs/fa_IR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=تنظیم پیوند به وبگاه بیرونی -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=واحد ExternalSite  به درستی پیکربندی نشده است -ExampleMyMenuEntry=عنوان فهرست من diff --git a/htdocs/langs/fa_IR/ftp.lang b/htdocs/langs/fa_IR/ftp.lang deleted file mode 100644 index 83a59f293b6..00000000000 --- a/htdocs/langs/fa_IR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=برپاسازی واحد متقاضی FTP -NewFTPClient=برپاسازی اتصال جدید FTP -FTPArea=بخش FTP -FTPAreaDesc=این صفحه نمائی از سرور FTP را نمایش می‌دهد. -SetupOfFTPClientModuleNotComplete=ظاهرا برپاسازی واحد متقاضی FTP ناقص است -FTPFeatureNotSupportedByYourPHP=PHP شما از توابع FTP پشتیبانی نمی‌کن -FailedToConnectToFTPServer=امکان اتصال به سرور FTP نبود (سرور %s، درگاه %s) -FailedToConnectToFTPServerWithCredentials=امکان ورود به سرور FTP با نام‌ورود/گذرواژه تعریف شده نبود -FTPFailedToRemoveFile=حذف فایل %s مقدور نبود -FTPFailedToRemoveDir=حذف پوشۀ %s مقدور نبود: مجوزها را بررسی کرده و مطمئن شوید پوشه خالی است. -FTPPassiveMode=حالت انفعالی -ChooseAFTPEntryIntoMenu=یک سایت FTP از فهرست انتخاب کنید... -FailedToGetFile=عدم امکان دریافت فایل‌های %s diff --git a/htdocs/langs/fa_IR/holiday.lang b/htdocs/langs/fa_IR/holiday.lang index 823b4377048..3af5f05da71 100644 --- a/htdocs/langs/fa_IR/holiday.lang +++ b/htdocs/langs/fa_IR/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=مدیریت منابع انسانی -Holidays=مرخصی +Holidays=Leaves +Holiday=مرخصی CPTitreMenu=مرخصی MenuReportMonth=گزارش ماهان MenuAddCP=درخواست مرخصی جدید +MenuCollectiveAddCP=New collective leave request NotActiveModCP=شما باید واحد مرخصی را فعال کنید تا این صفحه را ببینید. AddCP=ایجاد یک درخواست مرخصی DateDebCP=تاریخ شروع @@ -56,6 +58,7 @@ ConfirmDeleteCP=حذف این درخواست مرخصی را تائید می‌ ErrorCantDeleteCP=خطا، شما حق حذف این درخواست مرخصی را ندارید. CantCreateCP=شما امکان ایجاد درخواست مرخصی را ندارید. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=شما باید یک تاریخ شروع انتخاب کنید. NoDateFin=شما باید تاریخ پایان را انتخاب کنید. ErrorDureeCP=درخواست مرخصی شما هیچ روزکاری در خود ندارد. @@ -79,6 +82,8 @@ MotifCP=دلیل UserCP=کاربر ErrorAddEventToUserCP=یک خطا در هنگام افزودن یک درخواست استثنائی رخ داد. AddEventToUserOkCP=افزودن مرخصی استثنائی کاملا انجام شد. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=نمایش گزارش تغییرات LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=تعادل قبلی NewSoldeCP=تعادل جدید alreadyCPexist=یک درخواست مرخصی قبلا در همین بازه انجام شده است +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=گروه‌ها +users=کاربر +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=آخرین %s درخواست مرخصی تغییریافته @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/fa_IR/hrm.lang b/htdocs/langs/fa_IR/hrm.lang index ff72d85abc5..b282799ddc5 100644 --- a/htdocs/langs/fa_IR/hrm.lang +++ b/htdocs/langs/fa_IR/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=باز‌کردن بنگاه CloseEtablishment=بستن بنگاه # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=مدیریت منابع انسانی - فهرست بخش‌ها +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=کارمندان @@ -20,13 +20,14 @@ Employee=کارمند NewEmployee=کارمند جدید ListOfEmployees=List of employees HrmSetup=برپاسازی واحد مدیریت منابع انسانی -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=وظیفه -Jobs=Jobs +JobPosition=وظیفه +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=سمت -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang index c5ec977fd63..9418dc5ba06 100644 --- a/htdocs/langs/fa_IR/install.lang +++ b/htdocs/langs/fa_IR/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=فایل پیکربندی %s قابل نوشتن ن ConfFileIsWritable=فایل پیکربندی %s قابل نوشتن است ConfFileMustBeAFileNotADir=فایل پیکربندی %sباید یک فایل باشد، نه یک پوشه. ConfFileReload=بارگذاری مجدد مقادیر از فایل پیکربندی. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=این PHP از قابلیت GET و POST متغیرها پشتیبانی می‌کند. PHPSupportPOSTGETKo=ممکن است برپاسازی PHP شما از قابلیت POST و یا GET متغیرها پشتیبانی نمی‌کند. در php.ini مقدار variables_order را بررسی کنید. PHPSupportSessions=این PHP از قابلیت نشست‌ پشتیبانی می‌کند. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=ممکن است شما یک مقدار اشتباه ErrorFailedToCreateDatabase=امکان ساخت پایگاه‌داده '%s' وجود نداشت. ErrorFailedToConnectToDatabase=امکان اتصال به پایگاه‌داده '%s' وجود نداشت. ErrorDatabaseVersionTooLow=نسخۀ پایگاه داده (%s) بسیار قدیمی است. برای کار نسخۀ %s یا بالاتر احتیاج است -ErrorPHPVersionTooLow=نسخۀ PHP بسیار قدیمی است. برای کار نسخۀ %s نیاز است. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=اتصال به سرویس‌دهنده با موفقیت انجام شد اما پایگاه داده '%s'  پیدا نشد. ErrorDatabaseAlreadyExists=پایگاه دادۀ '%s' از قبل وجود دارد +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=در صورتی که پایگاه داده وجود نداشته باشد، به عقب برگشته و گزینۀ "ساخت پایگاه داده" را کلیک نمائید. IfDatabaseExistsGoBackAndCheckCreate=در صورتی که پایگاه داده از قبل وجود داشته، به عقب بازگشته و گزینۀ "ساخت پایگاه داده" را از حالت تائید بردارید. WarningBrowserTooOld=نسخۀ مرورگر بسیار قدیمی است، ارتقای مرورگر به نسخه‌های اخیر فایرفاکس، کروم یا اپرا به شدت پیشنهاد می‌شود diff --git a/htdocs/langs/fa_IR/loan.lang b/htdocs/langs/fa_IR/loan.lang index fb241660526..ef175c2c0bc 100644 --- a/htdocs/langs/fa_IR/loan.lang +++ b/htdocs/langs/fa_IR/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=تعهد مالی InterestAmount=سود CapitalRemain=سرمایۀ مانده TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=پیکربندی واحد وام -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=حساب‌حساب‌داری سرمایۀ پیش‌فرض -LOAN_ACCOUNTING_ACCOUNT_INTEREST=حساب‌حساب‌داری سود پیش‌فرض -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=حساب‌حساب‌داری بیمۀ پیش‌فرض +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=ویرایش تعهد مالی diff --git a/htdocs/langs/fa_IR/mailmanspip.lang b/htdocs/langs/fa_IR/mailmanspip.lang index 5474d5e829d..36292830cdc 100644 --- a/htdocs/langs/fa_IR/mailmanspip.lang +++ b/htdocs/langs/fa_IR/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=آزمایش عضویت با موفقیت اجرا شد MailmanDeletionSuccess=آزمایش لغوعضویت با موفقیت اجرا شد SynchroMailManEnabled=یک به‌روزرسانی Mailman انجام خواهد شد SynchroSpipEnabled=یک به‌روزرسانی SPIP انجام خواهد شد -DescADHERENT_MAILMAN_ADMINPW=گذرواژۀ مدیری Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=گذرواژۀ مدیری Mailman DescADHERENT_MAILMAN_URL=نشانی عضویت‌های Mailman DescADHERENT_MAILMAN_UNSUB_URL=نشانی لغوعضویت‌های Mailman DescADHERENT_MAILMAN_LISTS=فهرست‌‌های ثبت خودکار اعضای جدید ((جداشده با ویرگول)) diff --git a/htdocs/langs/fa_IR/mails.lang b/htdocs/langs/fa_IR/mails.lang index b58f51f4c83..8d416379d9f 100644 --- a/htdocs/langs/fa_IR/mails.lang +++ b/htdocs/langs/fa_IR/mails.lang @@ -7,10 +7,10 @@ MailCard=ایمیل کارت MailRecipients=دریافت کنندگان MailRecipient=دریافت کننده MailTitle=توصیف -MailFrom=فرستنده +MailFrom=از MailErrorsTo=خطاها به MailReply=پاسخ به -MailTo=گیرنده (ها) +MailTo=به MailToUsers=به کاربر(ان) MailCC=کپی کنید به MailToCCUsers=یک نسخه به کاربر(ان) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index 989faeb7c9f..19e748d4087 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=rtl +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=برای این نوع رایانامه قالبی وجود ن AvailableVariables=متغیرهای موجود برای جایگزینی NoTranslation=بدون ترجمه Translation=ترجمه +Translations=Translations CurrentTimeZone=منطقه زمانی PHP (سرور) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=معتبر Approve=تجویز Disapprove=عدم تجویز ReOpen=دوباره باز کردن +OpenVerb=باز Upload=بالاگذاری ToLink=پیوند Select=انتخاب @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=هیچ گروه‌کاربری تعریف نشده است Password=گذرواژه -PasswordRetype=گذرواژۀ خود را وارد نمائید +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=توجه داشته باشید بسیاری از قابلیت‌ها/واحدها در این نسخۀ نمایشی غیر فهال است Name=نام NameSlashCompany=نام / شرکت @@ -244,6 +252,7 @@ Designation=توضیحات DescriptionOfLine=توضیحات سط DateOfLine=تاریخ سطر DurationOfLine=مدت‌زمان سطر +ParentLine=Parent line ID Model=قالب سن DefaultModel=قابل پیش‌فرض برای سن Action=رویداد @@ -344,7 +353,7 @@ KiloBytes=کیلوبایت MegaBytes=مگابایت GigaBytes=گیگابایت TeraBytes=ترابایت -UserAuthor=Ceated by +UserAuthor=ساخته‌شده توسط UserModif=Updated by b=ب. Kb=کیلوبایت @@ -480,6 +489,7 @@ ActionsOnContact=روی‌دادهای مربوط به این طرف‌تماس/ ActionsOnContract=روی‌دادهای مربوط به این قرارداد ActionsOnMember=روی‌دادهای مربوط به این عضو ActionsOnProduct=روی‌دادهای مربوط به این محصول +ActionsOnAsset=Events for this fixed asset NActionsLate=%s دیرتر ToDo=برای انجام Completed=کامل‌شده @@ -517,6 +527,7 @@ or=یا Other=دیگر Others=دیگران OtherInformations=سایر اطلاعات +Workflow=گردش‌کار Quantity=تعداد Qty=تعداد ChangedBy=تغییر توسط @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=اسناد و فایل‌های پیوست شده JoinMainDoc=ملحق شدن سند اصلی +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=این قابلیت غیرفعال است MoveBox=جابجا کردن وسیله Offered=پیشنهادشده NotEnoughPermissions=شما مجاز به انجام این کار نیستید +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=نام نشست Method=روش Receive=دریافت @@ -798,6 +811,7 @@ URLPhoto=نشانی تصویر/نماد SetLinkToAnotherThirdParty=پیوند به شخص‌سوم دیگر LinkTo=پیوند به LinkToProposal=پیوند به پیشنهاد +LinkToExpedition= Link to expedition LinkToOrder=پیوند به سفارش LinkToInvoice=پیوند به صورت‌حساب LinkToTemplateInvoice=پیوند به قالب صورت‌حساب @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=دریافت DownloadDocument=دریافت سن +DownloadSignedDocument=Download signed document ActualizeCurrency=به‌روز‌رسانی نرخ واحدپولی Fiscalyear=سال مالی ModuleBuilder=واحدساز و برنامه‌ساز @@ -1041,6 +1056,7 @@ SearchIntoContracts=قراردادها SearchIntoCustomerShipments=حمل‌ونقل مشتریان SearchIntoExpenseReports=گزارش‌هزینه‌ها SearchIntoLeaves=ترک +SearchIntoKM=Knowledge base SearchIntoTickets=برگه‌های پشتیبانی SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=پرداخت‌های فروشندگان @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=نرخ +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=از بین بردن +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=کاربر داخلی +ExternalUser=کاربر خارجی diff --git a/htdocs/langs/fa_IR/members.lang b/htdocs/langs/fa_IR/members.lang index 1cc3c0fd56f..5347347f0df 100644 --- a/htdocs/langs/fa_IR/members.lang +++ b/htdocs/langs/fa_IR/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=یکی دیگر از عضو (نام ErrorUserPermissionAllowsToLinksToItselfOnly=به دلایل امنیتی، شما باید مجوز اعطا شده به ویرایش تمام کاربران قادر به پیوند عضو به یک کاربر است که مال شما نیست. SetLinkToUser=پیوند به یک کاربر Dolibarr SetLinkToThirdParty=لینک به شخص ثالث Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=فهرست کاربران MembersListToValid=لیست اعضای پیش نویس (به اعتبار شود) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=نام کاربری +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=عضو جدید MemberType=نوع کاربران MemberTypeId=نوع شناسه عضو @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=سهم های جدید NewSubscriptionDesc=این فرم به شما قابلیت ضبط اشتراک خود را به عنوان یک عضو جدید از پایه و اساس. اگر می خواهید به تمدید اشتراک خود را (اگر در حال حاضر عضو)، لطفا به جای تماس با هیئت مدیره بنیاد از طریق ایمیل٪ است. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=مدت‌زمان +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=دیر SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=محتوا از کارت عضو شما # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=گردش مالی (برای یک شرکت) و یا بودجه (برای پایه) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=پرش در یکپارچه صفحه پرداخت آنلاین +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/fa_IR/mrp.lang b/htdocs/langs/fa_IR/mrp.lang index 3da28f8a37a..e54fefa61f8 100644 --- a/htdocs/langs/fa_IR/mrp.lang +++ b/htdocs/langs/fa_IR/mrp.lang @@ -11,8 +11,8 @@ Bom=Bills of Material BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=برپاسازی واحد صورت‌حساب مواد -ListOfBOMs=فهرست صورت‌حساب‌های مواد - BOM -ListOfManufacturingOrders=List of Manufacturing Orders +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=چگونگی عدددهی صورت‌حساب مواد @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? ManufacturingEfficiency=بازده تولید ConsumptionEfficiency=Consumption efficiency +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Delete Bill Of Materials @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. ProductionForRef=Production of %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached NoStockChangeOnServices=No stock change on services ProductQtyToConsumeByMO=Product quantity still to consume by open MO @@ -80,6 +83,7 @@ ProductsToProduce=Products to produce UnitCost=Unit cost TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index 60ddd34624b..9e5d16d0563 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=پیشنهاد به مشتری اعتبار Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=پیشنهاد تجاری با پست Notify_WITHDRAW_TRANSMIT=خروج خطوط انتقال Notify_WITHDRAW_CREDIT=خروج اعتباری @@ -181,6 +183,7 @@ SizeUnitfoot=پا SizeUnitpoint=نقطه BugTracker=اشکالات SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=بازگشت به صفحه ورود AuthenticationDoesNotAllowSendNewPassword=نحوه تایید٪ s است.
    در این حالت، Dolibarr نمی توانند بفهمند و نه رمز عبور خود را تغییر دهید.
    تماس با مدیر سیستم شما اگر می خواهید رمز عبور خود را تغییر دهید. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = بستن Autofill = Autofill + +# externalsite +ExternalSiteSetup=تنظیم پیوند به وبگاه بیرونی +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=واحد ExternalSite  به درستی پیکربندی نشده است +ExampleMyMenuEntry=عنوان فهرست من + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=حذف فایل %s مقدور نبود +FTPFailedToRemoveDir=حذف پوشۀ %s مقدور نبود: مجوزها را بررسی کرده و مطمئن شوید پوشه خالی است. +FTPPassiveMode=حالت انفعالی +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=عدم امکان دریافت فایل‌های %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/fa_IR/projects.lang b/htdocs/langs/fa_IR/projects.lang index d42d986d8da..9b2d8a9bc73 100644 --- a/htdocs/langs/fa_IR/projects.lang +++ b/htdocs/langs/fa_IR/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=این نما نمایان‌گر همۀ طرح‌ها و وظا TasksDesc=این نما نمایانگر همۀ طرح‌ها و وظایف است ( مجوزهای کاربری شما امکان نمایش همه‌چیز را به شما می‌دهد). AllTaskVisibleButEditIfYouAreAssigned=همۀ وظایف مربوط برای طرح‌های واجد شرایط نمایش داده می‌شوند، اما شما می‌توانید تنها زمان را برای وظایف نسبت دده شده به کاربر انتخابی وارد کنید. وظیفه را در صورتی انتخاب کنید که نیاز داشته باشید زمان در آن زمان وارد کنید. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=وظایف مربوط به طرح‌ها ProjectCategories=برچسب‌ها/دسته‌بندی‌های طرح NewProject=طرح جدید @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=مبلغ سرنخ طرح‌های باز ب OpportunitiesStatusForProjects=مبلغ سرنخ طرح‌ها برحسب وضعیت ShowProject=نمایش طرح ShowTask=نمایش وظیفه +SetThirdParty=Set third party SetProject=تنظیم طرح +OutOfProject=Out of project NoProject=طرحی تعریف یا تصاحب نشده است NbOfProjects=Number of projects NbOfTasks=Number of tasks @@ -122,7 +125,8 @@ ValidateProject=تائیداعتبار طرح ConfirmValidateProject=آیا مطمئنید می‌خواهید اعتبار این طرح را تائید کنید؟ CloseAProject=بستن طرح ConfirmCloseAProject=آیا مطمئن هستید می‌خواهید این طرح را ببندید؟ -AlsoCloseAProject=همچنین طرح بسته شود ( در صورتی که هنوز نیاز دارید وظایف عملیاتی را پیگیری کنید، طرح را باز نگاه دارید) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=بازکردن طرح ConfirmReOpenAProject=آیا مطمئن هستید می‌خواهید این طرح را بازگشائی کنید؟ ProjectContact=طرف‌های تماس طرح @@ -165,7 +169,7 @@ OpportunityProbability=احتمال سرنخ OpportunityProbabilityShort=احتمال سرنخ OpportunityAmount=مبلغ سرنخ OpportunityAmountShort=مبلغ سرنخ -OpportunityWeightedAmount=Opportunity weighted amount +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. weighted amount OpportunityAmountAverageShort=مبلغ میانگین سرنخ OpportunityAmountWeigthedShort=مبلغ متوازن سرنخ @@ -238,7 +242,7 @@ OppStatusPENDING=در انتظار OppStatusWON=برد OppStatusLOST=باخت Budget=بودجه -AllowToLinkFromOtherCompany=امکان پیوند کردن طرح از یک شرکت دیگر

    مقادیر پیشتیبانی شده:
    - خالی رها کردن: امکان پیوند کردن به هر طرحی از شرکت (پیش‌فرض)
    - "همه": امکان پیوند به هر طرحی، حتی طرح‌های مربوط به سایر شرکت‌ها
    - فهرستی از شناسه‌های اشخاص‌سوم که با ویرگول(انگلیسی) از هم جدا شده‌اند: امکان پیوند کردن همۀ طرح‌های این طرف‌های سوم (مثال: 123,4795,53) +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=آخرین %s طرح LatestModifiedProjects=آخرین %s طرح تغییر یافته OtherFilteredTasks=سایر وظایف گُزیده شده @@ -259,7 +263,7 @@ TimeSpentInvoiced=زمان صرف شدۀ صورت‌حساب شده TimeSpentForIntervention=زمان صرف شده TimeSpentForInvoice=زمان صرف شده OneLinePerUser=هر سطر یک کاربر -ServiceToUseOnLines=خدمات برای استفاده بر سطور +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=صورت‌حساب %s بر اساس زمان صرف شده روی طرح تولید شد InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/fa_IR/propal.lang b/htdocs/langs/fa_IR/propal.lang index f945e12b653..f6ef5bef6e9 100644 --- a/htdocs/langs/fa_IR/propal.lang +++ b/htdocs/langs/fa_IR/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=بدون پیش نویس پیشنهادات CopyPropalFrom=ایجاد طرح های تجاری با کپی کردن طرح های موجود CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=پیش فرض طول مدت اعتبار پیشنهاد های تجاری (در روز) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=تاخیر در دسترس SetAvailability=تنظیم تاخیر در دسترس AfterOrder=پس از سفارش OtherProposals=طرح های دیگر + ##### Availability ##### AvailabilityTypeAV_NOW=فوری AvailabilityTypeAV_1W=1 هفته AvailabilityTypeAV_2W=2 هفته AvailabilityTypeAV_3W=3 هفته AvailabilityTypeAV_1M=1 ماه -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=نماینده زیر تا پیشنهاد TypeContact_propal_external_BILLING=تماس با فاکتور به مشتری TypeContact_propal_external_CUSTOMER=تماس با مشتری را در پی بالا پیشنهاد TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=قالب پیش فرض هنگام بستن یک طرح کسب و کار (unbilled) DefaultModelPropalCreate=ایجاد مدل پیش فرض DefaultModelPropalToBill=قالب پیش فرض هنگام بستن یک طرح کسب و کار (به صورتحساب می شود) -DefaultModelPropalClosed=قالب پیش فرض هنگام بستن یک طرح کسب و کار (unbilled) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=رد کردن +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/fa_IR/recruitment.lang b/htdocs/langs/fa_IR/recruitment.lang index 4b4afa90442..f3a96fe5152 100644 --- a/htdocs/langs/fa_IR/recruitment.lang +++ b/htdocs/langs/fa_IR/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=حقوق +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/fa_IR/stocks.lang b/htdocs/langs/fa_IR/stocks.lang index b6cffc97b0e..6d40fbcb7df 100644 --- a/htdocs/langs/fa_IR/stocks.lang +++ b/htdocs/langs/fa_IR/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=محدودیت موجودی برای هشدار و ProductStockWarehouseUpdated=محدودیت موجودی برای هشدار و محدودیت مطلوب به دقت روز‌آمد شد ProductStockWarehouseDeleted=محدودیت موجودی برای هشدار و محدودیت مطلوب به دقت حذف شد AddNewProductStockWarehouse=تعیین یک حد جدید موجودی و موجودی مطلوب برای هشدار -AddStockLocationLine=تعداد را کاهش داده و سپس برای ایجاد یک انبار جدید برای این محصول کلیک نمائید +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=تاریخ فهرست‌موجودی‌کالا Inventories=فهرست‌های‌موجودی NewInventory=فهرست‌موجودی جدید @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=شروع InventoryStartedShort=آغاز شده ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=تنظیمات +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/fa_IR/ticket.lang b/htdocs/langs/fa_IR/ticket.lang index f112843022f..82366e4da30 100644 --- a/htdocs/langs/fa_IR/ticket.lang +++ b/htdocs/langs/fa_IR/ticket.lang @@ -27,6 +27,7 @@ Permission56003=حذف برگه‌ها Permission56004=مدیریت برگه‌ها Permission56005=نمایش همۀ برگه‌های مربوط به اشخاص سوم (برای کاربران خارجی مؤثر نیست و همواره به شخص‌سومی که به‌آن وصل است وابسته است) +Tickets=برگه‌های پشتیبانی TicketDictType=برگه‌ها - انواع TicketDictCategory=برگه‌ها - دسته‌بندی‌ها TicketDictSeverity=برگه‌ها - سطح اهمیت @@ -90,8 +91,8 @@ TicketPublicAccess=یک رابط عمومی که بدون نیاز به تائی TicketSetupDictionaries=نوع برگه، حساسیت آن و کدهای تحلیلی از طریق واژه‌نامه‌ها قابل پیگربندی است TicketParamModule=برپاسازی متغیرهای واحد TicketParamMail=برپاسازی رایانامه -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=پیام متنی ارسال شده پس از ساخت یک برگه @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=نوشته‌ای که اینجا وارد می‌شود TicketParamPublicInterface=برپاسازی رابط عمومی TicketsEmailMustExist=نیاز به یک نشانی رایانامه برای ساخت برگۀ پشتیبانی TicketsEmailMustExistHelp=در رابط عمومی، نشانی رایانامه باید در بانک داده پر شود تا امکان ساخت برگۀ پشتیبانی وجود داشته باشد +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=رابط عمومی TicketUrlPublicInterfaceLabelAdmin=نشانی جایگزین برای رابط عمومی TicketUrlPublicInterfaceHelpAdmin=امکان تعریف یک نشانی جایگزین برای سرور وب و دسترسی به رابط عمومی با یک نشانی دیگر وجود دارد (سرور باید به عنوان یک پراکسی روی این نشانی جدید کار کند) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=اکنون برگه نسبت داده‌شد TicketChangeType=تغییر نوع TicketChangeCategory=تغییر کد تحلیلی-آنالیتیک TicketChangeSeverity=تغییر درجۀ اهمیت -TicketAddMessage=افزودن یک پیام -AddMessage=افزودن یک پیام +TicketAddMessage=Add private message MessageSuccessfullyAdded=برگه اضافه شد TicketMessageSuccessfullyAdded=پیام با موفقیت افزوده شد TicketMessagesList=فهرست پیام‌ها @@ -202,8 +206,8 @@ TicketSeverity=درجۀ اهمیت ShowTicket=نمایش برگه RelatedTickets=برگه‌های مرتبط TicketAddIntervention=ایجاد پادرمیانی -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=توقف پشتیبانی را تائید کنید ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=ارسال پیام توسط رایانامه TicketNewMessage=پیام جدید ErrorMailRecipientIsEmptyForSendTicketMessage=گیرنده خالی است. رایانامه‌ای ارسال نشد. TicketGoIntoContactTab=به زبانۀ "طرف‌های تماس" رفته تا آنان را انتخاب کنید -TicketMessageMailIntro=مقدمه +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=این نوشته تنها در ابتدای رایانامه اضافه خواهد شد و قابل ذخیره نیست -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=امضا -TicketMessageMailSignatureHelp=این نوشته در انتهای متن رایانامه آمده و ذخیره نخواهد شد. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=امضای نامۀ پاسخ -TicketMessageMailSignatureHelpAdmin=این نوشته پس از پیام پاسخ درج خواهد شد +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=این نوشته پس از پیام پاسخ درج خواهد شد TicketMessageHelp=تنها این نوشته در فهرست پیام در کارت برگۀ‌پشتیبانی ذخیره خواهد شد TicketMessageSubstitutionReplacedByGenericValues=متغیرهای جایگزین با مقادیر عمومی جایگزین خواهند شد +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=زمان سپری شده از TicketTimeToRead=زمان سپری شد قبل از خوانده‌شدن TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=یک پیام جدید بر روی ب TicketAssignedToYou=برگه نسبت داده شد TicketAssignedEmailBody=شما به برگۀ #%s نسبت داده شده‌اید، توسط %s MarkMessageAsPrivate=علامت‌زدن پیام به عنوان خصوصی +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=این پیام به کاربران خارجی نمایش داده نخواهد شد TicketEmailOriginIssuer=صادر کننده در اصل برگه‌ها InitialMessage=پیام ابتدائی @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=شما می‌توانید میزان پ TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=لطفا این رایانامه را مستقیما جواب ندهید! برای پاسخ دادن در رابط اختصاصی، روی پیوند کلیک نمائید TicketPublicInfoCreateTicket=این برگه به شما امکان ثبت یک برگۀ پشتیبانی در سامانۀ مدیریت ما را می‌دهد. -TicketPublicPleaseBeAccuratelyDescribe=لطفا مشکل را با دقت توضیح دهید. حداکثر اطلاعاتی که ممکن است درج کنید تا ما بتوانیم درخواست شما را به‌درستی تشخیص دهیم. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=لطفا شناسۀ رهگیری برگه را وارد نمائید TicketTrackId=شناسۀ رهگیری عمومی OneOfTicketTrackId=یکی از شناسه‌های رهگیری شما diff --git a/htdocs/langs/fa_IR/users.lang b/htdocs/langs/fa_IR/users.lang index 2d445b0f99f..08839378ffa 100644 --- a/htdocs/langs/fa_IR/users.lang +++ b/htdocs/langs/fa_IR/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=پاک کردن از گروه PasswordChangedAndSentTo=گذرواژه تغییر یافت و به %s ارسال شد. PasswordChangeRequest=درخواست تغییر گذرواژۀ برای %s PasswordChangeRequestSent=درخواست تغییر گذرواژه برای %s به %s ارسال شد -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=تائید بازنشانی گذرواژه MenuUsersAndGroups=کاربران و گروهها @@ -68,7 +68,6 @@ CreateDolibarrLogin=ساختن یک کاربر CreateDolibarrThirdParty=ایجاد یک شخص‌سوم LoginAccountDisableInDolibarr=حساب در Dolibarr غیرفعال است UsePersonalValue=استفاده از مقداردهی شخصی -InternalUser=کاربر داخلی ExportDataset_user_1=کاربران و مشخصات آنها DomainUser=کاربر دامنه %s Reactivate=دوباره فعال کردن @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index d2dec29ce29..0678ec04501 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=EU: n ulkopuoliset maat CountriesInEECExceptMe=EU-alueen maat, poislukien %s CountriesExceptMe=Kaikki maat, poislukien %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Tilien täsmäytys CustomersVentilation=Asiakaan laskun täsmäytys SuppliersVentilation=Toimittajan laskun kiinnittäminen @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Kuluraportin kiinnittäminen CreateMvts=Luo uusi transaktio UpdateMvts=Transaktion muuttaminen ValidTransaction=Hyväksy transaktio -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Pääkirjanpito BookkeepingSubAccount=Subledger AccountBalance=Tilin saldo @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Myyntipäiväkirja -ACCOUNTING_PURCHASE_JOURNAL=Ostopäiväkirja -ACCOUNTING_MISCELLANEOUS_JOURNAL=Sekalainen päiväkirja +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Kuluraportti päiväkirja -ACCOUNTING_SOCIAL_JOURNAL=Sosiaalinen päiväkirja +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Sosiaalinen päiväkirja ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Asiakirjan tyyppi Docdate=Päiväys @@ -210,7 +217,7 @@ Codejournal=Päiväkirja JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Vuoden mukaan NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Poistettava vuosi DelJournal=Poistettava päiväkirja -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Virhe, tätä kirjanpito tiliä ei voida poistaa koska se on käytössä -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Kirjattu pääkirjanpitoon NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Täsmäyttämätön -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Myynti AccountingJournalType3=Ostot AccountingJournalType4=Pankki -AccountingJournalType5=Expenses report +AccountingJournalType5=Kulutositteet AccountingJournalType8=Varasto AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Vientimalli @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Laskettu Formula=Kaava +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Rivit yhdistetty ToBind=Yhdistettäviä rivejä UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index d16b7ca048d..4c372964f74 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Clientin ulkoasu WarningModuleNotActive=Moduuli %s on oltava käytössä WarningOnlyPermissionOfActivatedModules=Vain aktivoitujen moduulien oikeudet ovat nähtävissä. Voit aktivoida moduuleita Koti - Asetukset - Moduulit - sivulla DolibarrSetup=Dolibarr asennus tai päivitys -InternalUser=Sisäinen käyttäjä -ExternalUser=Ulkoinen käyttäjä InternalUsers=Sisäiset käyttäjät ExternalUsers=Ulkopuoliset käyttäjät UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Seuraava arvo (korvaavat) MustBeLowerThanPHPLimit=Huomaa: PHP-kokoonpanosi rajoittaa tällä hetkellä lähetettävien tiedostojen enimmäiskokoa %s %s tämän parametrin arvosta riippumatta. NoMaxSizeByPHPLimit=Huom: Rajaa ei ole asetettu PHP-asetuksissa MaxSizeForUploadedFiles=Lähetettävien tiedostojen enimmäiskoko (0 estää lähetykset) -UseCaptchaCode=Käytä graafista koodia (CAPTCHA) kirjautumissivulla +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Virustorjuntaohjelman polku AntiVirusCommandExample=Esimerkki ClamAv-daemonille (vaatii clamav-daemonin): /usr/bin/clamdscan
    Esimerkki ClamWinille (erittäin hidas): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Lisää parametreja komentorivillä @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-isäntä (oletusarvo php.ini-tiedostossa: MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Portti (Ei määritelty PHP:hen Unix-tyyppisissä järjestelmissä) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS-isäntä (ei määritelty PHP:ssa Unix-tyyppisissä järjestelmissä) MAIN_MAIL_EMAIL_FROM=Lähettäjän sähköposti automaattisia sähköposteja varten (oletusarvo php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Sähköpostiosoite, jota käytetään virheellisten sähköpostien palautusosoitteena (kentät Errors-To lähetetyissä sähköposteissa) MAIN_MAIL_AUTOCOPY_TO= Kopioi (piilokopio) kaikki lähetetyt sähköpostit osoitteeseen MAIN_DISABLE_ALL_MAILS=Poista kaikki sähköpostin lähettäminen käytöstä (testitarkoituksia tai esittelyjä varten) @@ -439,8 +438,10 @@ Unique=Uniikki Boolean=Boolean (yksi valintaruutu) ExtrafieldPhone = Puhelin ExtrafieldPrice = Hinta +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Sähköposti ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Valitse lista ExtrafieldSelectList = Valitse taulusta ExtrafieldSeparator=Erotin (ei kenttä) @@ -477,7 +478,7 @@ InstalledInto=Asennettu hakemistoon %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Poista kaikki nykyiset viivakoodi arvot ConfirmEraseAllCurrentBarCode=Haluatko varmasti poistaa kaikki nykyiset viivakoodiarvot? AllBarcodeReset=Kaikki viivakoodi arvot on poistettu @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Klikkaa näyttääksesi kuvaus DependsOn=Tämä moduuli tarvitsee moduulit RequiredBy=Moduuli (t) vaativat tämän moduulin @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) EnableDefaultValues=Ota käyttöön oletusarvojen mukauttaminen -EnableOverwriteTranslation=Salli ylikirjoitettujen käännösten käyttäminen +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Kenttä @@ -645,9 +647,9 @@ Module2400Name=Events/Agenda Module2400Desc=Seuraa tapahtumia. Kirjaa automaattiset tapahtumat seurantatarkoituksiin tai tallenna manuaaliset tapahtumat tai kokoukset. Tämä on tärkein asiakas- tai toimittajasuhteiden hallinnan moduuli. Module2500Name=DMS / ECM Module2500Desc=Asiakirjojen hallintajärjestelmä / elektroninen sisällönhallinta. Luomiesi tai tallennettujen asiakirjojesi automaattinen järjestäminen. Jaa ne tarvittaessa. -Module2600Name=API / verkkopalvelut (SOAP-palvelin) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Ota käyttöön Dolibarr SOAP -palvelin, joka tarjoaa API-palveluita -Module2610Name=API / verkkopalvelut (REST-palvelin) +Module2610Name=API / Web services (REST server) Module2610Desc=Ota käyttöön API-palveluita tarjoava Dolibarr REST -palvelin Module2660Name=Kutsu verkkopalveluita (SOAP-asiakas) Module2660Desc=Ota käyttöön Dolibarr-verkkopalvelusovellus (voidaan käyttää tietojen / pyyntöjen siirtämiseen ulkoisille palvelimille. Vain ostotilauksia tuetaan tällä hetkellä.) @@ -698,6 +700,7 @@ Module62000Name=Incoterm-ehdot Module62000Desc=Add features to manage Incoterms Module63000Name=Resurssit Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module94160Name=Receptions Permission11=Lue laskut Permission12=Luo laskut Permission13=Mitätöi asiakaslaskut @@ -714,6 +717,7 @@ Permission27=Poista kaupallinen ehdotuksia Permission28=Vie kauppaoikeuden ehdotuksia Permission31=Lue tuotetta / palvelua Permission32=Luoda / muuttaa tuotetta / palvelua +Permission33=Read prices products Permission34=Poista tuotteita / palveluita Permission36=Vienti tuotteet / palvelut Permission38=Vie tuotteita @@ -739,6 +743,7 @@ Permission79=Luoda / muuttaa tilaukset Permission81=Lue asiakkaiden tilauksia Permission82=Luoda / muuttaa asiakkaiden tilauksia Permission84=Validate asiakkaiden tilauksia +Permission85=Generate the documents sales orders Permission86=Lähetä asiakkaiden tilauksia Permission87=Sulje asiakkaiden tilauksia Permission88=Peruuta asiakkaiden tilauksia @@ -840,9 +845,9 @@ Permission286=Vie yhteystietoja Permission291=Lue tariffit Permission292=Aseta tariffeille oikeudet Permission293=Muokkaa asiakkaan tariffeja -Permission300=Lue viivakoodit -Permission301=Luo/Muokkaa viivakoodeja -Permission302=Poista viivakoodeja +Permission301=Generate PDF sheets of barcodes +Permission304=Luo/Muokkaa viivakoodeja +Permission305=Poista viivakoodeja Permission311=Lue palvelut Permission312=Määritä palvelu / tilaus sopimukseen Permission331=Lue kirjanmerkit @@ -874,6 +879,7 @@ Permission525=Pääsy lainalaskimelle Permission527=Vie Lainat Permission531=Lue palvelut Permission532=Luo/Muokkaa palveluita +Permission533=Read prices services Permission534=Poista palvelut Permission536=Katso / hoitaa piilotettu palvelut Permission538=Vienti palvelut @@ -968,13 +974,14 @@ Permission3301=Luo uusia moduuleja Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Lue verkkosivuston sisältö Permission10002=Luo / muokkaa verkkosivuston sisältöä (HTML- ja Javascript-sisältö) Permission10003=Luo / muokkaa verkkosivuston sisältöä (dynaaminen php-koodi). Vaarallinen, on varattava rajoitetuille kehittäjille. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Yksikön tyyppi SetupSaved=Asetukset tallennettu SetupNotSaved=Asetuksia ei tallennettu +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Takaisin moduuliluetteloon BackToDictionaryList=Back to Dictionaries list TypeOfRevenueStamp=Veroleiman tyyppi @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Vaihtoehto %s on päällä NbOfDays=Päivien lukumäärä AtEndOfMonth=Kuukauden lopussa -CurrentNext=Nykyinen / Seuraava +CurrentNext=A given day in month Offset=Offset AlwaysActive=Aina aktiivinen Upgrade=Päivitys @@ -1235,11 +1246,13 @@ BrowserName=Selaimen nimi BrowserOS=Selaimen OS ListOfSecurityEvents=Luettelo Dolibarr turvallisuus tapahtumat SecurityEventsPurged=Turvallisuus tapahtumia puhdistettava +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Järjestelmän tiedot ovat erinäiset tekniset tiedot saavat lukea vain tila ja näkyvissä vain järjestelmänvalvojat. SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. AccountantFileNumber=Accountant code DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Sinun on suoritettava tämä ko YourPHPDoesNotHaveSSLSupport=SSL toimintoja ei saatavilla PHP DownloadMoreSkins=Lisää nahat ladata SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1391,7 @@ GetBarCode=Hanki viivakoodi NumberingModules=Numerointimallit DocumentModules=Asiakirjamallit ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Älä ehdota luotua salasanaa. Salasana on kirjoitettava manuaalisesti. PasswordGenerationPerso=Palauta salasana henkilökohtaisesti määrittämäsi kokoonpanon mukaan. SetupPerso=Kokoonpanosi mukaan @@ -1430,6 +1445,10 @@ SuppliersPayment=Toimittajien maksut SupplierPaymentSetup=Toimittajamaksujen asetukset InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Kaupalliset ehdotuksia moduulin asetukset ProposalsNumberingModules=Kaupalliset ehdotus numerointiin modules @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Vesileima sopimusluonnoksissa (ei käytössä jos ##### Members ##### MembersSetup=Jäsenet moduulin asetukset MemberMainOptions=Päävaihtoehtoa +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Hallitse Sisään jokaiselle jäsenelle AdherentMailRequired=Uuden jäsenen luomiseen vaaditaan sähköpostiosoite MemberSendInformationByMailByDefault=Checkbox lähettää vahvistusviestin jäsenille on oletusarvoisesti MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Vierailija voi valita käytettävissä olevista maksutavoista +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Ota FCKeditor varten: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG luominen / painos postitusten FCKeditorForUserSignature=WYSIWIG creation/edition of user signature FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Valikko huolitsijan missä osoittavat uuden valikon DetailMenuModule=Moduulin nimi, jos Valikosta kotoisin moduuli DetailType=Tyyppi-valikosta (ylä-tai vasemmalla) DetailTitre=Valikko etiketti tai etiketti koodin käännös -DetailUrl=URL-osoite, jossa valikkopalkki lähettää sinulle (Absoluuttinen URL-linkki tai ulkoinen yhteys http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Ehto näyttää tai tulon DetailRight=Ehto näyttö luvattoman harmaa valikot DetailLangs=Lang tiedoston nimen etiketti koodin käännös @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatib CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup='Kirjanmerkit'-moduulin asetukset BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Toimittajan laskujen numerointimallit IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind moduuli setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Huomaa, että IP-maahan tiedosto on sisällä hakemiston PHP voi lukea (Tarkista PHP open_basedir asetukset ja tiedostojärjestelmän oikeudet). YouCanDownloadFreeDatFileTo=Voit ladata ilmaisen demoversion Maxmind GeoIP maa-tiedoston %s. YouCanDownloadAdvancedDatFileTo=Voit myös ladata pidempään versioon, niiden päivitykset ja Maxmind GeoIP maa-tiedoston %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Ohjattu toiminto tietokannan dump-tiedoston rakentamiseen BackupZipWizard=Ohjattu toiminto asiakirjojen arkiston rakentamiseen SomethingMakeInstallFromWebNotPossible=Ulkoisen moduulin asennus ei ole mahdollista verkkoliitännästä seuraavasta syystä: SomethingMakeInstallFromWebNotPossible2=Tästä syystä tässä kuvattu päivitysprosessi on manuaalinen prosessi, jonka vain etuoikeutettu käyttäjä voi suorittaa. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Järjestelmänvalvoja on poistanut ulkoisen moduulin asennuksen sovelluksesta. Sinun on pyydettävä häntä poistamaan tiedosto %s tämän ominaisuuden sallimiseksi. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Korosta taulukon rivit hiiren liikkuessa niiden päällä @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Paina näppäimistön CTRL + F5 tai tyhjennä selaimen NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Taustaväri TopMenuBackgroundColor=Taustaväri ylävalikolle -TopMenuDisableImages=Piilota kuvat ylävalikosta +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Taustaväri alavalikolle BackgroundTableTitleColor=Taulukon otsikkorivin taustaväri BackgroundTableTitleTextColor=Taulukon otsikkorivin tekstin väri @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Ostotilaukset MailToSendSupplierInvoice=Toimittajan laskut MailToSendContract=Sopimukset MailToSendReception=Receptions +MailToExpenseReport=Kulutositteet MailToThirdparty=Sidosryhmät MailToMember=Jäsenet MailToUser=Käyttäjät @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF:n oikea marginaali MAIN_PDF_MARGIN_TOP=PDF:n ylämarginaali MAIN_PDF_MARGIN_BOTTOM=PDF:n alamarginaali MAIN_DOCUMENTS_LOGO_HEIGHT=Logon korkeus PDF-muodossa +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Poista erikoismerkit COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Kopiota ei sallita +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Tietosuojavastaava (tietosuojavastaava, tietosuoja- tai GDPR-yhteyshenkilö) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Ohjeteksti näytettäväksi työkaluvihjeessä @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Sähköpostin kerääjä +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=Uusi postinkerääjä EMailHost=IMAP-palvelin +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Sähköpostin lähdehakemisto MailboxTargetDirectory=Postilaatikon kohdehakemisto EmailcollectorOperations=Keräilijän tehtävät toiminnot EmailcollectorOperationsDesc=Toiminnot suoritetaan ylhäältä alas järjestyksessä MaxEmailCollectPerCollect=Kerätyn sähköpostin enimmäismäärä keräystä kohti +TestCollectNow=Test collect CollectNow=Kerää nyt ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Viimeisimmän keräysyrityksen päivämäärä DateLastcollectResultOk=Viimeisimmän onnistuneen keräyksen päivämäärä LastResult=Viimeisin tulos EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Sähköpostikeräyksen vahvistus EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Ei uutta käsiteltävää sähköpostia (vastaavat suodattimet) NothingProcessed=Mitään ei tehty -XEmailsDoneYActionsDone=%s -sähköpostia hyväksytty, %s sähköpostien käsittely onnistuneesti (%s-tietuetta / tehtävää suoritettu) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Luo työhakemus FormatZip=Postinumero MainMenuCode=Valikkokoodi (päävalikko) ECMAutoTree=Näytä automaattinen ECM-puu -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Aukioloajat OpeningHoursDesc=Yrityksen tavalliset aukioloajat ResourceSetup=Resurssimoduulin määritys @@ -2167,6 +2200,10 @@ EmailTemplate=Mallisähköposti EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Suositeltava NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Asetukset +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/fi_FI/commercial.lang b/htdocs/langs/fi_FI/commercial.lang index 8968ca8b92d..310b44199fa 100644 --- a/htdocs/langs/fi_FI/commercial.lang +++ b/htdocs/langs/fi_FI/commercial.lang @@ -3,8 +3,8 @@ Commercial=Kaupankäynti CommercialArea=Kaupankäyntialue Customer=Asiakas Customers=Asiakkaat -Prospect=Mahdollisuus -Prospects=Mahdollisuudet +Prospect=Prospekti +Prospects=Prospektit DeleteAction=Poista tapahtuma NewAction=Uusi tapahtuma AddAction=Luo tapahtuma @@ -64,17 +64,26 @@ ActionAC_SHIP=Lähetä toimitus postitse ActionAC_SUP_ORD=Lähetä toimittajan tilaus postitse ActionAC_SUP_INV=Lähetä toimittajan lasku postitse ActionAC_OTH=Muut -ActionAC_OTH_AUTO=Automaattisesti lisätyt tapahtumat +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Käsin lisätyt tapahtumat ActionAC_AUTO=Automaattisesti lisätyt tapahtumat -ActionAC_OTH_AUTOShort=Automaattinen +ActionAC_OTH_AUTOShort=Muu +ActionAC_EVENTORGANIZATION=Event organization events Stats=Myyntitilastot StatusProsp=Mahdollisuuden tila DraftPropals=Tarjousluonnos NoLimit=Rajoittamaton ToOfferALinkForOnlineSignature=Linkki sähköiseen allekirjoitukseen -WelcomeOnOnlineSignaturePage=Tällä sivulla voit hyväksyä %s tarjoukset -ThisScreenAllowsYouToSignDocFrom=Tämä näyttö sallii sinun hyväksyvän ja allekirjoittavan, tai hylkäävän, lainauksen/tarjouspyynnön -ThisIsInformationOnDocumentToSign=Tämä on informaatiota dokumentistä hyväksymiseksi tai hylkäämiseksi +WelcomeOnOnlineSignaturePageProposal=Tällä sivulla voit hyväksyä %s tarjoukset +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Tämä näyttö sallii sinun hyväksyvän ja allekirjoittavan, tai hylkäävän, lainauksen/tarjouspyynnön +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Tämä on informaatiota dokumentistä hyväksymiseksi tai hylkäämiseksi +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Tarjouksen %s allekirjoitus +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Sähköinen allekirjoitus on poissa käytöstä tai dokumentti on luotu ennen sen käyttöönottoa diff --git a/htdocs/langs/fi_FI/companies.lang b/htdocs/langs/fi_FI/companies.lang index 036a383eac0..8f949866099 100644 --- a/htdocs/langs/fi_FI/companies.lang +++ b/htdocs/langs/fi_FI/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Sidosryhmän luonne NatureOfContact=Yhteyshenkilön luonne Address=Osoite State=Postialue +StateId=State ID StateCode=Postinumero StateShort=Valtio Region=Alue Region-State=Alue - Osavaltio Country=Maa CountryCode=Maakoodi -CountryId=Maatunnus +CountryId=Country ID Phone=Puhelin PhoneShort=Puhelin Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Muut ProfId6ShortCM=- ProfId1CO=Professori Id 1 (RUT) diff --git a/htdocs/langs/fi_FI/compta.lang b/htdocs/langs/fi_FI/compta.lang index e86709e5c48..89db9740055 100644 --- a/htdocs/langs/fi_FI/compta.lang +++ b/htdocs/langs/fi_FI/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Saldo Debit=Debet Credit=Credit +AccountingDebit=Debet +AccountingCredit=Credit Piece=Accounting Doc. AmountHTVATRealReceived=HT kerätty AmountHTVATRealPaid=HT maksetaan @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Mode %sVAT on commitment accounting%s. CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Calculation mode AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/fi_FI/contracts.lang b/htdocs/langs/fi_FI/contracts.lang index 4e87012c192..ce7a8cf9a32 100644 --- a/htdocs/langs/fi_FI/contracts.lang +++ b/htdocs/langs/fi_FI/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Sopimukset/Tilaukset ContractsAndLine=Contracts and line of contracts Contract=Sopimus ContractLine=Contract line +ContractLines=Contract lines Closing=Closing NoContracts=Ei sopimuksia MenuServices=Palvelut @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Siirrä palvelua toisen sopimuksen. ConfirmMoveToAnotherContract=I choosed uusi tavoite sopimuksen ja vahvistaa Haluan siirtää tämän palvelua tämän sopimuksen. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Uudista sopimus linja (numero %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Vanhenemispäivä NoExpiredServices=Ei päättynyt aktiiviset palvelut ListOfServicesToExpireWithDuration=List of Services to expire in %s days @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Kirjautuminen sopimus asiakkaiden yhte HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/fi_FI/datapolicy.lang b/htdocs/langs/fi_FI/datapolicy.lang new file mode 100644 index 00000000000..285d0fb065c --- /dev/null +++ b/htdocs/langs/fi_FI/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Asiakas +DATAPOLICY_TIERS_PROSPECT = Prospekti +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Toimittaja +DATAPOLICY_CONTACT_CLIENT = Asiakas +DATAPOLICY_CONTACT_PROSPECT = Prospekti +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Toimittaja +DATAPOLICY_ADHERENT = Jäsen +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/fi_FI/dict.lang b/htdocs/langs/fi_FI/dict.lang index ee3e6c5e049..e8fe4424e02 100644 --- a/htdocs/langs/fi_FI/dict.lang +++ b/htdocs/langs/fi_FI/dict.lang @@ -21,7 +21,7 @@ CountryNL=Alankomaat CountryHU=Unkari CountryRU=Venäjä CountrySE=Ruotsi -CountryCI=Norsunluurannikko +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentiina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs +CivilityMMEShort=Mrs CivilityMR=Hra +CivilityMRShort=Hra CivilityMLE=Nti CivilityMTRE=Mestari CivilityDR=Tohtori diff --git a/htdocs/langs/fi_FI/ecm.lang b/htdocs/langs/fi_FI/ecm.lang index 1b92840f492..66c2191a70a 100644 --- a/htdocs/langs/fi_FI/ecm.lang +++ b/htdocs/langs/fi_FI/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manuaalinen hakemisto ECMSectionAuto=Automaattinen hakemisto ECMSectionsManual=Manuaalinen hakemistopuu ECMSectionsAuto=Automaattinen hakemistopuu +ECMSectionsMedias=Medias tree ECMSections=Hakemistot ECMRoot=ECM Root ECMNewSection=Uusi hakemisto @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Tiedostojen määrä alihakemistoissa ECMCreationUser=Luoja ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automaattiset hakemistot täyttyvät automaattisesti kun lisäät dokumentteja kortille.
    * Manuaalisten hakemistojen avulla voidaan tallentaa asiakirjoja, joita ei ole sidottu tiettyyn osaan. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Hakemisto %s on poistettu. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Etsi avainsanoilla diff --git a/htdocs/langs/fi_FI/errors.lang b/htdocs/langs/fi_FI/errors.lang index bbbace60e76..9a5148d92c3 100644 --- a/htdocs/langs/fi_FI/errors.lang +++ b/htdocs/langs/fi_FI/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/fi_FI/externalsite.lang b/htdocs/langs/fi_FI/externalsite.lang deleted file mode 100644 index 1926b6e7f01..00000000000 --- a/htdocs/langs/fi_FI/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup linkki ulkoiseen sivustoon -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Ulkoisen sivuston Moduuli ei ole oikein konfiguroitu. -ExampleMyMenuEntry=Omassa valikossa diff --git a/htdocs/langs/fi_FI/ftp.lang b/htdocs/langs/fi_FI/ftp.lang deleted file mode 100644 index ea3b84ad187..00000000000 --- a/htdocs/langs/fi_FI/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client-moduuli asennus -NewFTPClient=Uusi FTP-yhteys asetukset -FTPArea=FTP Area -FTPAreaDesc=Tämä ruutu näyttää sisällön FTP-palvelimen mieltä -SetupOfFTPClientModuleNotComplete=Asennus ja FTP-moduuli näyttää ole täydellinen -FTPFeatureNotSupportedByYourPHP=PHP ei tue FTP toiminnot -FailedToConnectToFTPServer=Yhteyden muodostaminen epäonnistui FTP-palvelimen (palvelin %s, portti %s) -FailedToConnectToFTPServerWithCredentials=Epäonnistui kirjautua FTP-palvelimeen on määritelty / salasana -FTPFailedToRemoveFile=Ole poistanut tiedoston %s. -FTPFailedToRemoveDir=Ole poistanut hakemistoon %s (Tarkista oikeudet ja että hakemisto on tyhjä). -FTPPassiveMode=Passiivisena -ChooseAFTPEntryIntoMenu=Valitse FTP osoite valikosta -FailedToGetFile=Tiedostojen %s lataus epäonnistui diff --git a/htdocs/langs/fi_FI/holiday.lang b/htdocs/langs/fi_FI/holiday.lang index f83bf3dc4f6..0e9e5e4e10b 100644 --- a/htdocs/langs/fi_FI/holiday.lang +++ b/htdocs/langs/fi_FI/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Henkilöstöhallinta -Holidays=Poissaolot +Holidays=Leaves +Holiday=Poissaolot CPTitreMenu=Poissaolot MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Aloituspäivämäärä @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Syy UserCP=Käyttäjä ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/fi_FI/hrm.lang b/htdocs/langs/fi_FI/hrm.lang index ea0084467a7..bfd23860d29 100644 --- a/htdocs/langs/fi_FI/hrm.lang +++ b/htdocs/langs/fi_FI/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Avaa laitos CloseEtablishment=Sulje laitos # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Osastolista +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Työntekijät @@ -20,13 +20,14 @@ Employee=Työntekijä NewEmployee=Uusi työntekijä ListOfEmployees=List of employees HrmSetup=Henkilöstöhallinta moduulin asetukset -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs +JobPosition=Job +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Sijainti -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang index 8c282db2d83..b04fead3436 100644 --- a/htdocs/langs/fi_FI/install.lang +++ b/htdocs/langs/fi_FI/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Configuration file %s on kirjoitettavissa. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Tämä PHP tukee muuttujat POST ja GET. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Tämä PHP tukee istuntoja. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Olet ehkä kirjoittanut väärän arvon parametri ' ErrorFailedToCreateDatabase=Luominen epäonnistui tietokanta ' %s'. ErrorFailedToConnectToDatabase=Epäonnistui muodostaa tietokanta ' %s'. ErrorDatabaseVersionTooLow=Tietokannan versio (%s) on liian vanha. Versio %s tai korkeampi on tarpeen. -ErrorPHPVersionTooLow=PHP versio liian vanha. Versio %s on tarpeen. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Database ' %s' on jo olemassa. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Jos tietokanta on jo olemassa, mene takaisin ja poista "Luo tietokanta" vaihtoehto. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/fi_FI/mails.lang b/htdocs/langs/fi_FI/mails.lang index 34268ad2424..accdb253f9b 100644 --- a/htdocs/langs/fi_FI/mails.lang +++ b/htdocs/langs/fi_FI/mails.lang @@ -7,10 +7,10 @@ MailCard=Sähköpostituksen kortti MailRecipients=Vastaanottajat MailRecipient=Vastaanottaja MailTitle=Otsikko -MailFrom=Lähettäjä +MailFrom=Laskuttaja MailErrorsTo=Virheiden MailReply=Vastaa -MailTo=Vastaanotin (s) +MailTo=Vastaanottaja MailToUsers=To user(s) MailCC=Kopioi MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang index 8e4a8be635c..3b423c1a458 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Tämän tyyliselle sähköpostille ei ole pohjaa saatavilla AvailableVariables=Käytettävissä olevat korvaavat muuttujat NoTranslation=Ei käännöstä Translation=Käännös +Translations=Translations CurrentTimeZone=Aikavyöhyke PHP (palvelin) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Voimassa Approve=Hyväksy Disapprove=Poista hyväksyntä ReOpen=Avaa uudelleen +OpenVerb=Avoinna Upload=Lähetä ToLink=Linkki Select=Valitse @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Käyttäjäryhmää ei ole määritelty Password=Salasana -PasswordRetype=Kirjoitta salasana uudelleen +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Huomaa, että monet piirteet / modules on poistettu käytöstä tämän esittelyn. Name=Nimi NameSlashCompany=Nimi / yritys @@ -244,6 +252,7 @@ Designation=Kuvaus DescriptionOfLine=Kuvaus linja DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc-pohja DefaultModel=Oletus doc-pohja Action=Tapahtuma @@ -344,7 +353,7 @@ KiloBytes=Kilotavua MegaBytes=Megatavua GigaBytes=Gigatavua TeraBytes=Teratavua -UserAuthor=Ceated by +UserAuthor=Luonut UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Jäsenen tapahtumat ActionsOnProduct=Tapahtumat tästä tuotteesta +ActionsOnAsset=Events for this fixed asset NActionsLate=%s myöhässä ToDo=Tehtävät Completed=Completed @@ -517,6 +527,7 @@ or=tai Other=Muu Others=Muut OtherInformations=Other information +Workflow=Työtehtävät Quantity=Määrä Qty=Kpl ChangedBy=Muuttanut @@ -619,6 +630,7 @@ MonthVeryShort11=Mar MonthVeryShort12=J AttachedFiles=Liitetyt tiedostot ja asiakirjat JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=VVVV-KK DateFormatYYYYMMDD=VVVV-KK-PP DateFormatYYYYMMDDHHMM=YYYY-KK-PP HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Ominaisuus pois päältä MoveBox=Siirrä widget Offered=Tarjottu NotEnoughPermissions=Sinulla ei ole lupaa tätä toimintaa varten +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Istunnon nimi Method=Menetelmä Receive=Vastaanota @@ -798,6 +811,7 @@ URLPhoto=Kuvan tai logon url SetLinkToAnotherThirdParty=Linkki toiseen sidosryhmään LinkTo=Linkki LinkToProposal=Linkki Tarjoukseen +LinkToExpedition= Link to expedition LinkToOrder=Linkki Tilauksiin LinkToInvoice=Linkki Laskuihin LinkToTemplateInvoice=Linkki mallilaskuun @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Lataa DownloadDocument=Lataa dokumentti +DownloadSignedDocument=Download signed document ActualizeCurrency=Päivitä valuuttakurssi Fiscalyear=Tilivuosi ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Sopimukset SearchIntoCustomerShipments=Asiakas lähetykset SearchIntoExpenseReports=Kuluraportit SearchIntoLeaves=Poissaolot +SearchIntoKM=Knowledge base SearchIntoTickets=Tiketit SearchIntoCustomerPayments=Asiakasmaksut SearchIntoVendorPayments=Toimittajien maksut @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Päivitys kaikille riveille OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Kurssi +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Lopeta +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Sisäinen käyttäjä +ExternalUser=Ulkoinen käyttäjä diff --git a/htdocs/langs/fi_FI/members.lang b/htdocs/langs/fi_FI/members.lang index fdd6297dc74..9fd81f19c76 100644 --- a/htdocs/langs/fi_FI/members.lang +++ b/htdocs/langs/fi_FI/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Toinen jäsen (nimi: %s, kirjautum ErrorUserPermissionAllowsToLinksToItselfOnly=Turvallisuussyistä sinun täytyy myöntää oikeudet muokata kaikki käyttäjät pystyvät linkki jäsenen käyttäjä, joka ei ole sinun. SetLinkToUser=Linkki on Dolibarr käyttäjä SetLinkToThirdParty=Linkki on Dolibarr kolmannen osapuolen +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Luettelo jäsenistä MembersListToValid=Luettelo luonnoksen jäsenten (jotka on vahvistettu) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Jäsen id +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Uusi jäsen MemberType=Jäsen tyyppi MemberTypeId=Jäsen tyyppi id @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=Uusi rahoitusosuus NewSubscriptionDesc=Tämän lomakkeen avulla voit tallentaa tilauksen uutena jäsenenä säätiön. Jos haluat uudistaa tilauksen (jos on jo jäsen), ota yhteyttä säätiön hallituksen sijasta sähköpostitse %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Kesto +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Myöhässä SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Sisältö jäsennimesi kortti # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Liikevaihto (yritykselle) tai budjetti (ja säätiö) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Hyppää integroitu verkossa maksusivulla +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/fi_FI/mrp.lang b/htdocs/langs/fi_FI/mrp.lang index 24fe344aebd..99de8db95d3 100644 --- a/htdocs/langs/fi_FI/mrp.lang +++ b/htdocs/langs/fi_FI/mrp.lang @@ -11,8 +11,8 @@ Bom=Bills of Material BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=List of Manufacturing Orders +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Valmistustilaukset NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=BOM numbering templates @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? ManufacturingEfficiency=Manufacturing efficiency ConsumptionEfficiency=Consumption efficiency +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Delete Bill Of Materials @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. ProductionForRef=Production of %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached NoStockChangeOnServices=No stock change on services ProductQtyToConsumeByMO=Product quantity still to consume by open MO @@ -80,6 +83,7 @@ ProductsToProduce=Products to produce UnitCost=Unit cost TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index 466387849f8..147c69042f9 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Asiakas ehdotus validoidaan Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Kaupallinen ehdotus lähetetään postitse Notify_WITHDRAW_TRANSMIT=Vaihteisto peruuttaminen Notify_WITHDRAW_CREDIT=Luotto peruuttaminen @@ -181,6 +183,7 @@ SizeUnitfoot=jalka SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Takaisin kirjautumissivulle AuthenticationDoesNotAllowSendNewPassword=Authentication mode on %s.
    Tässä tilassa Dolibarr ei voi tietää, eikä vaihtaa salasanasi.
    Ota yhteyttä järjestelmän ylläpitäjään, jos haluat vaihtaa salasanasi. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Lasku %s on maksettu EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Sulje Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup linkki ulkoiseen sivustoon +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Ulkoisen sivuston Moduuli ei ole oikein konfiguroitu. +ExampleMyMenuEntry=Omassa valikossa + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Ole poistanut tiedoston %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passiivisena +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Tiedostojen %s lataus epäonnistui +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/fi_FI/recruitment.lang b/htdocs/langs/fi_FI/recruitment.lang index 048bd27da9b..4b2d3a5aa43 100644 --- a/htdocs/langs/fi_FI/recruitment.lang +++ b/htdocs/langs/fi_FI/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Palkka +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/fi_FI/salaries.lang b/htdocs/langs/fi_FI/salaries.lang index 9d88d32258c..39c3583e78e 100644 --- a/htdocs/langs/fi_FI/salaries.lang +++ b/htdocs/langs/fi_FI/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Käytetty kirjanpitotili käyttäjän sidosryhmille -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Oletus kirjanpitotili palkkamaksuille CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Palkka @@ -24,3 +24,4 @@ SalariesStatistics=Salary statistics SalariesAndPayments=Salaries and payments ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/fi_FI/stocks.lang b/htdocs/langs/fi_FI/stocks.lang index e19a9593166..b82ec5a8304 100644 --- a/htdocs/langs/fi_FI/stocks.lang +++ b/htdocs/langs/fi_FI/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Uudelleenavaa ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Alku InventoryStartedShort=Aloitettu ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Asetukset +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/fi_FI/ticket.lang b/htdocs/langs/fi_FI/ticket.lang index f9e1f7f8e6a..426a643557d 100644 --- a/htdocs/langs/fi_FI/ticket.lang +++ b/htdocs/langs/fi_FI/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Poista tiketit Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tiketit TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,8 +91,8 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=The text specified here will be inserted into the email c TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=Julkisessa käyttöliittymässä sähköpostiosoitteen täytyy olla jo tietokannassa uuden lipun luomiseksi. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Julkinen käyttöliittymä TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Vaihda vakavuus -TicketAddMessage=Lisää viesti -AddMessage=Lisää viesti +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Viesti on onnistuneesti lisätty TicketMessagesList=Message list @@ -202,8 +206,8 @@ TicketSeverity=Vakavuus ShowTicket=See ticket RelatedTickets=Liittyvät tiketit TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=Uusi viesti ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Esittely +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Allekirjoitus -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=Tämä teksti lisätään vastaus viestin jälkeen. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Tämä teksti lisätään vastaus viestin jälkeen. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Aloitusviesti @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Kuvaile tarkasti ongelmasi. Kertomalla mahdollisimman paljon informaatiota autat meitä tunnistamaan pyyntösi oikean ongelman. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID diff --git a/htdocs/langs/fi_FI/users.lang b/htdocs/langs/fi_FI/users.lang index 651bebb4228..00493d036ae 100644 --- a/htdocs/langs/fi_FI/users.lang +++ b/htdocs/langs/fi_FI/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Poista ryhmästä PasswordChangedAndSentTo=Salasana muutettu ja lähetetään %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Pyynnön vaihtaa salasana %s lähetetään %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Käyttäjät & ryhmät @@ -68,7 +68,6 @@ CreateDolibarrLogin=Luo Dolibarr huomioon CreateDolibarrThirdParty=Luo kolmasosaa osapuoli LoginAccountDisableInDolibarr=Huomioon vammaisten Dolibarr. UsePersonalValue=Käytä henkilökohtaista arvo -InternalUser=Sisäinen käyttäjä ExportDataset_user_1=Users and their properties DomainUser=Domain käyttäjän %s Reactivate=Uudelleenaktivoi @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/fi_FI/website.lang b/htdocs/langs/fi_FI/website.lang index 79681c98cce..ef9993fbb79 100644 --- a/htdocs/langs/fi_FI/website.lang +++ b/htdocs/langs/fi_FI/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Koodi +WebsiteName=Name of the website WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. DeleteWebsite=Poista sivusto ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. The files uploaded (like into the medias directory, the ECM module, ...) will remain. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages) WEBSITE_ROBOT=Robot file (robots.txt) WEBSITE_HTACCESS=Website .htaccess file WEBSITE_MANIFEST_JSON=Website manifest.json file -WEBSITE_README=README.md-tiedosto WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML header (specific to this page only) PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container. @@ -42,10 +43,12 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Aseta kotisivuksi RealURL=Lue URL ViewWebsiteInProduction=View web site using home URLs +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Example to use in Apache virtual host setup: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=Luettu WritePerm=Write @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" bu YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Clone page/container CloneSite=Kloonaa sivusto SiteAdded=Website added @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/fr_BE/propal.lang b/htdocs/langs/fr_BE/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/fr_BE/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/fr_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang index 570826a2d43..19b2f9918d8 100644 --- a/htdocs/langs/fr_CA/accountancy.lang +++ b/htdocs/langs/fr_CA/accountancy.lang @@ -39,20 +39,15 @@ MainAccountForVatPaymentNotDefined=Compte comptable principal pour le paiement d MainAccountForSubscriptionPaymentNotDefined=Compte comptable principal pour le paiement de l'abonnement non défini dans la configuration AccountancyArea=Espace comptable AccountancyAreaDescActionOnce=Les actions suivantes sont généralement exécutées une seule fois, ou une fois par an ... -AccountancyAreaDescActionOnceBis=Les étapes suivantes devraient être faites pour vous faire gagner du temps en vous suggérant le bon compte comptable par défaut lors de la journalisation (écriture dans Journals et le grand livre) AccountancyAreaDescActionFreq=Les actions suivantes sont généralement exécutées chaque mois, semaine ou jour pour de très grandes entreprises ... -AccountancyAreaDescJournalSetup=ÉTAPE %s: Créez ou vérifiez le contenu de votre liste de journal à partir du menu %s AccountancyAreaDescVat=ÉTAPE %s: Définissez les comptes comptables pour chaque taux de TVA. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescDefault=ÉTAPE %s: Définissez les comptes comptables par défaut. Pour cela, utilisez l'entrée de menu %s. -AccountancyAreaDescExpenseReport=ÉTAPE %s: Définissez les comptes comptables par défaut pour chaque type de rapport de dépenses. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescSal=ÉTAPE %s: Définissez les comptes comptables par défaut pour le paiement des salaires. Pour cela, utilisez l'entrée de menu %s. -AccountancyAreaDescContrib=ÉTAPE %s: Définissez les comptes comptables par défaut pour les dépenses spéciales (taxes diverses). Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescDonation=ÉTAPE %s: Définissez les comptes comptables par défaut pour le don. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescSubscription=ÉTAPE %s: Définissez les comptes comptables par défaut pour l'abonnement des membres. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescMisc=ÉTAPE %s: Définissez le compte par défaut obligatoire et les comptes comptables par défaut pour les transactions diverses. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescLoan=ÉTAPE %s: Définissez les comptes comptables par défaut pour les prêts. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescBank=ÉTAPE %s: Définissez les comptes comptables et le code du journal pour chaque compte bancaire et financier. Pour cela, utilisez l'entrée de menu %s. -AccountancyAreaDescProd=ÉTAPE %s: Définissez les comptes comptables sur vos produits / services. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescBind=ÉTAPE %s: Vérifiez la liaison entre les lignes %s existantes et le compte comptable est effectué, de sorte que l'application pourra publier des transactions dans Ledger en un seul clic. Compléter les liaisons manquantes. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescWriteRecords=ÉTAPE %s: Écrivez des transactions dans le Ledger. Pour cela, accédez au menu %s, et cliquez sur le bouton %s. AccountancyAreaDescAnalyze=ÉTAPE %s: Ajoutez ou modifiez des transactions existantes et générez des rapports et des exportations. @@ -67,7 +62,6 @@ MenuLoanAccounts=Comptes de prêts MenuProductsAccounts=Comptes de produits MenuAccountancyClosure=Fermeture MenuAccountancyValidationMovements=Valider les écritures -RegistrationInAccounting=Inscription en comptabilité Binding=Liaison aux comptes CustomersVentilation=Contrat de facture client SuppliersVentilation=Reliure de facture fournisseur @@ -96,9 +90,6 @@ ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Tronquer le formulaire de description de c ACCOUNTING_LENGTH_GACCOUNT=Longueur des comptes comptables généraux (Si vous définissez la valeur à 6 ici, le compte '706' apparaîtra comme '706000' à l'écran) BANK_DISABLE_DIRECT_INPUT=Désactiver l'enregistrement direct de la transaction dans le compte bancaire ACCOUNTING_EXPENSEREPORT_JOURNAL=Note de frais -DONATION_ACCOUNTINGACCOUNT=Compte comptable pour enregistrer des dons -ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte comptable par défaut pour les services achetés (utilisé si non défini dans la fiche de service) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte comptable par défaut pour les services vendus (utilisé si non défini dans la fiche de service) NotMatch=Pas encore défini FinanceJournal=Journal des finances ExpenseReportsJournal=Journal des rapports de dépenses @@ -111,20 +102,16 @@ BankAccountNotDefined=Compte pour banque non défini NumMvts=Nombre de transactions AddCompteFromBK=Ajouter des comptes comptables au groupe TotalVente=Chiffre d'affaires total avant taxes -DescVentilCustomer=Consultez ici la liste des lignes de facture client liées (ou non) à un compte comptable produit -DescVentilDoneCustomer=Consultez ici la liste des lignes clients des factures et leur compte comptable produit -DescVentilTodoCustomer=Lier les lignes de facture qui ne sont pas déjà liées avec un compte de comptabilité de produit -ChangeAccount=Modifiez le compte comptable produit / service pour les lignes sélectionnées avec le compte comptable suivant: DescVentilTodoExpenseReport=Les lignes de rapport de frais de liaison ne sont pas déjà liées à un compte comptable DescVentilExpenseReport=Consultez ici la liste des lignes de rapport de dépenses liées (ou non) à un compte comptable de frais DescVentilDoneExpenseReport=Consultez ici la liste des rapports des lignes de dépenses et de leurs comptes comptables -ValidateMovements=Valider les écritures FicheVentilation=Carte de reliure GeneralLedgerIsWritten=Les transactions sont écrites dans le Ledger ChangeBinding=Changer la liaison ApplyMassCategories=Appliquer des catégories de masse CategoryDeleted=La catégorie pour le compte comptable a été supprimée AccountingJournals=Revues comptables +AccountingJournalType5=Note de frais AccountingJournalType9=A-nouveau ErrorAccountingJournalIsAlreadyUse=Ce journal est déjà utilisé ChartofaccountsId=Carte comptable Id diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index a948bec589d..7a2585bf734 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -88,9 +88,7 @@ Module0Desc=Gestion des utilisateurs / employés et des groupes Module42Desc=Installations de journalisation (fichier, syslog, ...). Ces journaux sont à des fins techniques / de débogage. Module75Name=Notes de frais et déplacements Module2400Name=Evénements / Agenda -Module2600Name=services API / Web ( serveur SOAP ) Module2600Desc=Active le serveur de Web Services de Dolibarr -Module2610Name=services API / Web ( serveur REST ) Module2610Desc=Activer le serveur REST de services API de les services Module2660Name=WebServices appel ( client SOAP ) Module4000Name=Gestion des ressources humaines @@ -119,7 +117,6 @@ DictionaryVAT=Taux de TPS/TVH ou de Taxes de Ventes DictionaryAccountancyJournal=Revues comptables SetupNotSaved=Le programme d'installation n'a pas été enregistré LocalTax2Management=Gestion 3ème type de tax -CurrentNext=Actuel / Suivant DefaultMaxSizeList=Longueur maximale des listes CompanyObject=Objet de la compagnie InfoDolibarr=À propos de Dolibarr @@ -198,7 +195,6 @@ HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque d PressF5AfterChangingThis=Appuyez sur CTRL + F5 sur le clavier ou effacez votre cache de navigateur après avoir changé cette valeur pour l'avoir efficace NotSupportedByAllThemes=Will fonctionne avec des thèmes de base, peut ne pas être pris en charge par des thèmes externes TopMenuBackgroundColor=Couleur de fond du menu haut -TopMenuDisableImages=Masquer les images dans le menu principal LeftMenuBackgroundColor=Couleur de fond gauche BackgroundTableTitleColor=Couleur de fond pour le tableau ligne de titre BackgroundTableLineOddColor=Couleur de fond pour les lignes impaires @@ -212,6 +208,7 @@ FillFixTZOnlyIfRequired=Exemple: +2 (remplir seulement si le problème est connu ExpectedChecksum=Somme attendue CurrentChecksum=Somme actuel ForcedConstants=Valeurs constantes requises +MailToExpenseReport=Note de frais MailToMember=Membres ByDefaultInList=Afficher par défaut sur la liste vue TitleExampleForMajorRelease=Exemple de message que vous pouvez utiliser pour annoncer cette version majeure ( se sentir libre de l'utiliser sur vos sites web ) @@ -236,8 +233,7 @@ ListOfAvailableAPIs=Liste des API disponibles LandingPage=Page d'atterrissage ModuleEnabledAdminMustCheckRights=Le module a été activé. Les autorisations pour les modules activés ont été données uniquement aux utilisateurs administratifs. Vous devrez peut-être accorder des autorisations aux autres utilisateurs ou groupes manuellement si nécessaire. BaseCurrency=Monnaie de référence de la société (entrer dans la configuration de l'entreprise pour modifier cela) -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) FormatZip=Code postal -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. UseSearchToSelectResource=Utilisez un formulaire de recherche pour choisir une ressource (plutôt qu'une liste déroulante). EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    diff --git a/htdocs/langs/fr_CA/assets.lang b/htdocs/langs/fr_CA/assets.lang index 71a627cf93f..1bf0b2bbbc4 100644 --- a/htdocs/langs/fr_CA/assets.lang +++ b/htdocs/langs/fr_CA/assets.lang @@ -1,3 +1,3 @@ # Dolibarr language file - Source file is en_US - assets -AssetsLines=Atouts NewAsset=Nouvel Atout +AssetsLines=Atouts diff --git a/htdocs/langs/fr_CA/commercial.lang b/htdocs/langs/fr_CA/commercial.lang index fe52f49e25d..0f68fbd09db 100644 --- a/htdocs/langs/fr_CA/commercial.lang +++ b/htdocs/langs/fr_CA/commercial.lang @@ -9,5 +9,3 @@ SaleRepresentativesOfThirdParty=Représentants commerciaux de tiers LastDoneTasks=Dernières %s actions complétées LastActionsToDo=Le plus ancien %s actions non complétées ActionAC_OTH_AUTO=Événements insérés automatiquement -ThisScreenAllowsYouToSignDocFrom=Cet écran vous permet d'accepter et signer ou de refuser le devis ou la proposition commerciale -ThisIsInformationOnDocumentToSign=Ceci est une information sur le document à accepter ou à refuser diff --git a/htdocs/langs/fr_CA/companies.lang b/htdocs/langs/fr_CA/companies.lang index cf83b494929..9651cc0af4c 100644 --- a/htdocs/langs/fr_CA/companies.lang +++ b/htdocs/langs/fr_CA/companies.lang @@ -12,8 +12,6 @@ LocalTax1IsUsed=Assujeti à la TVQ LocalTax2IsUsed=Assujeti à une troisième taxe ProfId6Short=TVQ ProfId6=TVQ -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId3ShortCM=Decree of creation ProfId1MX=Id. Prof. 1 (R.F.C). ProfId2MX=ID. Prof. 2 (R..P. IMSS) ProfId3MX=Id. Prof. 3 (Charte Profesionnelle) diff --git a/htdocs/langs/fr_CA/compta.lang b/htdocs/langs/fr_CA/compta.lang index 886c9020d9a..405f1af98ce 100644 --- a/htdocs/langs/fr_CA/compta.lang +++ b/htdocs/langs/fr_CA/compta.lang @@ -50,8 +50,6 @@ WarningDepositsNotIncluded=Les factures de acompte ne sont pas incluses dans cet DatePaymentTermCantBeLowerThanObjectDate=La date limite de règlement ne peut être inférieure à la date de l'object Pcg_version=Modèles de plan comptable CalculationRuleDesc=Pour calculer le total de TPS/TVH, il existe 2 modes:
    Le mode 1 consiste à arrondir la TPS/TVH de chaque ligne et à sommer cet arrondi.
    Le mode 2 consiste à sommer la TPS/TVH de chaque ligne puis à l'arrondir.
    Les résultats peuvent différer de quelques centimes. Le mode par défaut est le mode %s. -ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour payer la TVA -ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour les tiers clients AddExtraReport=Rapports supplémentaires (ajouter un rapport client étranger et national) OtherCountriesCustomersReport=Rapport des clients étrangers BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Sur la base des deux premières lettres du numéro de TVA différentes du code de pays de votre entreprise diff --git a/htdocs/langs/fr_CA/dict.lang b/htdocs/langs/fr_CA/dict.lang index 9730214676f..e4c1a7ab0ff 100644 --- a/htdocs/langs/fr_CA/dict.lang +++ b/htdocs/langs/fr_CA/dict.lang @@ -3,7 +3,6 @@ CountryBE=la Belgique CountryUS=États Unis CountryTG=Aller CountryCI=Côte d'Ivoiry -CountrySG=Singapour CountryAT=L'Autriche CountryBB=La Barbade CountryBA=Bosnie Herzégovine diff --git a/htdocs/langs/fr_CA/ecm.lang b/htdocs/langs/fr_CA/ecm.lang index d660995b9f5..c6a678b714f 100644 --- a/htdocs/langs/fr_CA/ecm.lang +++ b/htdocs/langs/fr_CA/ecm.lang @@ -5,7 +5,6 @@ ECMSectionsManual=Arbre manuel ECMSectionsAuto=Arbre automatique ECMAddSection=Ajouter un répertoire ECMCreationDate=Date création -ECMAreaDesc2=* Les répertoires automatiques sont remplis automatiquement lors de l'ajout de documents à partir d'une carte d'un élément.
    * Les répertoires manuels peuvent être utilisés pour enregistrer des documents non liés à un élément particulier. ECMSectionWasRemoved=Le répertoire %s a été supprimé. ECMSectionOfDocuments=Répertoires de documents ShowECMSection=Afficher le répertoire diff --git a/htdocs/langs/fr_CA/errors.lang b/htdocs/langs/fr_CA/errors.lang index 86d639a66e5..2560a86fb1b 100644 --- a/htdocs/langs/fr_CA/errors.lang +++ b/htdocs/langs/fr_CA/errors.lang @@ -51,7 +51,6 @@ ErrorLDAPMakeManualTest=Un fichier .ldif a été généré dans le répertoire % ErrorModuleRequireJavascript=Javascript ne doit pas être désactivé pour que cette fonction fonctionne. Pour activer / désactiver Javascript, accédez au menu Accueil-> Configuration-> Affichage. ErrorPasswordsMustMatch=Les deux mots de passe dactylographiés doivent correspondre les uns aux autres ErrorFileIsInfectedWithAVirus=Le programme antivirus n'a pas pu valider le fichier (le fichier peut être infecté par un virus) -ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas autorisés pour le champ "%s" ErrorNumRefModel=Une référence existe dans la base de données (%s) et n'est pas compatible avec cette règle de numérotation. Supprimez l'enregistrement ou la renommée référence pour activer ce module. ErrorBadMaskBadRazMonth=Erreur, mauvaise valeur de réinitialisation ErrorCounterMustHaveMoreThan3Digits=Le compteur doit avoir plus de 3 chiffres diff --git a/htdocs/langs/fr_CA/externalsite.lang b/htdocs/langs/fr_CA/externalsite.lang deleted file mode 100644 index 01d000d22e0..00000000000 --- a/htdocs/langs/fr_CA/externalsite.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Lien de configuration vers un site Web externe -ExternalSiteModuleNotComplete=Module ExternalSite n'a pas été configuré correctement. -ExampleMyMenuEntry=Entrée de mon menu diff --git a/htdocs/langs/fr_CA/ftp.lang b/htdocs/langs/fr_CA/ftp.lang deleted file mode 100644 index 7b50188c38b..00000000000 --- a/htdocs/langs/fr_CA/ftp.lang +++ /dev/null @@ -1,11 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuration du module client FTP -FTPArea=Zone FTP -FTPAreaDesc=Cet écran vous montre le contenu d'une vue du serveur FTP -SetupOfFTPClientModuleNotComplete=La configuration du module client FTP semble ne pas être complète -FailedToConnectToFTPServer=Impossible de se connecter au serveur FTP (serveur %s, port %s) -FailedToConnectToFTPServerWithCredentials=Échec de la connexion au serveur FTP avec login / mot de passe défini -FTPFailedToRemoveFile=Impossible d'enlever le fichier %s. -FTPFailedToRemoveDir=Impossible de supprimer le répertoire %s (Vérifiez les autorisations et ce répertoire est vide). -ChooseAFTPEntryIntoMenu=Choisissez une entrée FTP dans le menu ... -FailedToGetFile=Impossible d'obtenir des fichiers %s diff --git a/htdocs/langs/fr_CA/hrm.lang b/htdocs/langs/fr_CA/hrm.lang index 84a5e513279..82ec6d751fc 100644 --- a/htdocs/langs/fr_CA/hrm.lang +++ b/htdocs/langs/fr_CA/hrm.lang @@ -4,7 +4,7 @@ Establishments=Établissements Establishment=Établissement OpenEtablishment=Établissement ouvert CloseEtablishment=Établissement proche -DictionaryDepartment=HRM - liste du département Employees=Employés Employee=Employé NewEmployee=Nouvel employé +HrmSetup=Configuration du module de GRH diff --git a/htdocs/langs/fr_CA/install.lang b/htdocs/langs/fr_CA/install.lang index 98fcea448a1..8d8237ae1a4 100644 --- a/htdocs/langs/fr_CA/install.lang +++ b/htdocs/langs/fr_CA/install.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - install +PHPSupportPOSTGETOk=Ce PHP prend bien en charge les variables POST et GET. AdminLoginCreatedSuccessfuly=Connexion administrateur Dolibarr '%s' créé avec succès. FailedToCreateAdminLogin=Impossible de créer un compte administrateur Dolibarr. MigrationContractsIncoherentCreationDateUpdateSuccess=Correction mauvaise valeur de la date de création du contrat effectuée avec succès diff --git a/htdocs/langs/fr_CA/loan.lang b/htdocs/langs/fr_CA/loan.lang index 64738b543c6..9779add3aaa 100644 --- a/htdocs/langs/fr_CA/loan.lang +++ b/htdocs/langs/fr_CA/loan.lang @@ -14,6 +14,3 @@ ConfirmPayLoan=Confirmer classer payé ce prêt LoanPaid=Prêt payé AddLoan=Créer un prêt ConfigLoan=Configuration du prêt du module -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital de comptabilité par défaut -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Compter les intérêts du compte par défaut -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Assurance compte comptable par défaut diff --git a/htdocs/langs/fr_CA/main.lang b/htdocs/langs/fr_CA/main.lang index 61ed834131a..e1658600615 100644 --- a/htdocs/langs/fr_CA/main.lang +++ b/htdocs/langs/fr_CA/main.lang @@ -41,6 +41,7 @@ AddToDraft=Ajouter au projet CloseBox=Supprimer le widget de votre tableau de bord Resiliate=Mettre fin NotValidated=Pas validé +OpenVerb=Ouverte NoteSomeFeaturesAreDisabled=Attention, seules quelques modules/fonctionnalités ont été activés dans cette démo. DefaultModel=Modèle de docteur par défaut Connection=Identifiant diff --git a/htdocs/langs/fr_CA/members.lang b/htdocs/langs/fr_CA/members.lang index 291f2a8737d..268d036a365 100644 --- a/htdocs/langs/fr_CA/members.lang +++ b/htdocs/langs/fr_CA/members.lang @@ -21,7 +21,6 @@ MembersListQualified=Liste des membres qualifiés MenuMembersToValidate=Ébauche de membres MenuMembersValidated=Membres validés MenuMembersResiliated=Membres résiliés -MemberId=ID membres NewMember=Nouveau membre MemberType=Type de membre MemberTypeId=Id. De type membre @@ -77,4 +76,3 @@ MembersStatisticsDesc=Choisissez les statistiques que vous souhaitez lire ... NewMemberbyWeb=Nouveau membre ajouté. En attente d'approbation NewMemberForm=Nouveau formulaire de membre TurnoverOrBudget=Chiffre d'affaires (pour une entreprise) ou Budget (pour une fondation) -MEMBER_NEWFORM_PAYONLINE=Aller sur la page de paiement en ligne intégrée diff --git a/htdocs/langs/fr_CA/oauth.lang b/htdocs/langs/fr_CA/oauth.lang index 6b3a2a7d1b9..5812eed5532 100644 --- a/htdocs/langs/fr_CA/oauth.lang +++ b/htdocs/langs/fr_CA/oauth.lang @@ -6,9 +6,6 @@ HasAccessToken=Un jeton a été généré et enregistré dans la base de donnée NewTokenStored=Jeton reçu et enregistré ToCheckDeleteTokenOnProvider=Cliquez ici pour vérifier / supprimer l'autorisation enregistrée par %s OAuth provider TokenDeleted=Jeton supprimé -RequestAccess=Cliquez ici pour demander / renouveler l'accès et recevoir un nouveau jeton à sauvegarder -DeleteAccess=Cliquez ici pour supprimer le jeton -OAuthSetupForLogin=Page pour générer un jeton OAuth SeePreviousTab=Voir l'onglet précédent TOKEN_EXPIRED=Jeton expiré TOKEN_EXPIRE_AT=Token expire à diff --git a/htdocs/langs/fr_CA/projects.lang b/htdocs/langs/fr_CA/projects.lang index 1a6534f6492..3753ef9fa16 100644 --- a/htdocs/langs/fr_CA/projects.lang +++ b/htdocs/langs/fr_CA/projects.lang @@ -11,7 +11,6 @@ ProjectsPublicTaskDesc=Cette vue présente tous les projets et tâches que vous ProjectsDesc=Cette vue présente tous les projets (vos autorisations d'utilisateur vous permettent d'afficher tout). TasksOnProjectsDesc=Cette vue présente toutes les tâches sur tous les projets (vos autorisations d'utilisateur vous permettent d'afficher tout). OnlyOpenedProject=Seuls les projets ouverts sont visibles (les projets en ébauche ou l'état fermé ne sont pas visibles). -ClosedProjectsAreHidden=Les projets fermés ne sont pas visibles. TasksPublicDesc=Cette vue présente tous les projets et tâches que vous pouvez lire. TasksDesc=Cette vue présente tous les projets et les tâches (vos autorisations d'utilisateur vous accordent l'autorisation de voir tout). ProjectCategories=Étiquettes / catégories de projet @@ -50,7 +49,6 @@ ValidateProject=Valider le projet ConfirmValidateProject=Êtes-vous sûr de vouloir valider ce projet? CloseAProject=Prochain projet ConfirmCloseAProject=Êtes-vous sûr de vouloir fermer ce projet? -AlsoCloseAProject=Fermez également le projet (maintenez-le ouvert si vous devez toujours suivre les tâches de production) ReOpenAProject=Projet ouvert ConfirmReOpenAProject=Êtes-vous sûr de vouloir rouvrir ce projet? ActionsOnProject=Événements sur projet diff --git a/htdocs/langs/fr_CA/propal.lang b/htdocs/langs/fr_CA/propal.lang index 62d0f0fdc10..4b66fa2ece3 100644 --- a/htdocs/langs/fr_CA/propal.lang +++ b/htdocs/langs/fr_CA/propal.lang @@ -35,5 +35,5 @@ AvailabilityTypeAV_NOW=Immédiatement TypeContact_propal_internal_SALESREPFOLL=Proposition de suivi représentative TypeContact_propal_external_BILLING=Contact client facturation TypeContact_propal_external_CUSTOMER=Proposition de suivi du contact client -DefaultModelPropalCreate=Création de modèle par défaut DefaultModelPropalClosed=Modèle par défaut lors de la clôture d'une proposition commerciale (non facturé) +DefaultModelPropalCreate=Création de modèle par défaut diff --git a/htdocs/langs/fr_CA/stocks.lang b/htdocs/langs/fr_CA/stocks.lang index 0d48acac911..39679b84055 100644 --- a/htdocs/langs/fr_CA/stocks.lang +++ b/htdocs/langs/fr_CA/stocks.lang @@ -69,7 +69,6 @@ ProductStockWarehouseCreated=Limite de stock pour l'alerte et le stock optimal s ProductStockWarehouseUpdated=La limite de stock pour l'alerte et le stock optimal souhaité est correctement mis à jour ProductStockWarehouseDeleted=La limite de stock pour l'alerte et le stock optimal souhaité sont correctement supprimés AddNewProductStockWarehouse=Définir une nouvelle limite pour l'alerte et le stock optimal souhaité -AddStockLocationLine=Diminuez la quantité, puis cliquez pour ajouter un autre entrepôt pour ce produit inventorySetup =Configuration de l'inventaire inventoryReadPermission=Voir les stocks inventoryWritePermission=Mise à jour des inventaires diff --git a/htdocs/langs/fr_CH/datapolicy.lang b/htdocs/langs/fr_CH/datapolicy.lang new file mode 100644 index 00000000000..748cdf8362a --- /dev/null +++ b/htdocs/langs/fr_CH/datapolicy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - datapolicy +DATAPOLICY_ADHERENT =Membre diff --git a/htdocs/langs/fr_CH/propal.lang b/htdocs/langs/fr_CH/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/fr_CH/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/fr_CI/propal.lang b/htdocs/langs/fr_CI/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/fr_CI/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/fr_CM/propal.lang b/htdocs/langs/fr_CM/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/fr_CM/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index 190905c760d..291f9a14a5c 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -30,7 +30,7 @@ ChartOfSubaccounts=Plan des comptes auxiliaires ChartOfIndividualAccountsOfSubsidiaryLedger=Plan des comptes auxiliaires CurrentDedicatedAccountingAccount=Compte dédié courant AssignDedicatedAccountingAccount=Nouveau compte à assigner -InvoiceLabel=Description de la facture +InvoiceLabel=Libellé de la facture OverviewOfAmountOfLinesNotBound=Vue des lignes non liées à un compte comptable OverviewOfAmountOfLinesBound=Vue des lignes déjà liées à un compte comptable OtherInfo=Autre information @@ -48,8 +48,9 @@ CountriesNotInEEC=Pays hors CEE CountriesInEECExceptMe=Pays de la CEE sauf %s CountriesExceptMe=Tous les pays sauf %s AccountantFiles=Exporter les documents sources -ExportAccountingSourceDocHelp=Avec cet outil, vous pouvez exporter les événements sources (liste en CSV et PDF) qui servent à générer votre comptabilité. +ExportAccountingSourceDocHelp=Avec cet outil, vous pouvez rechercher et exporter les événements sources qui servent à générer votre comptabilité.
    Le fichier ZIP exporté contiendra les listes des éléments demandés au format CSV, ainsi que leurs fichiers joints dans leur format d'origine (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Pour exporter vos journaux, utilisez l'entrée de menu %s - %s. +ExportAccountingProjectHelp=Spécifiez un projet si vous avez besoin d'un rapport uniquement pour un projet spécifique. Les notes de frais et les remboursements de prêts ne sont pas inclus dans les rapports de projet. VueByAccountAccounting=Vue par comptes comptables VueBySubAccountAccounting=Affichage par compte auxiliaire @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Compte comptable général pour les fournisseu MainAccountForUsersNotDefined=Compte comptable général pour les utilisateurs non défini dans la configuration MainAccountForVatPaymentNotDefined=Compte comptable général pour les paiements de TVA non défini dans la configuration MainAccountForSubscriptionPaymentNotDefined=Le compte comptable général des paiements de cotisations n'est pas défini dans la configuration +UserAccountNotDefined=Compte comptable pour l'utilisateur non défini dans la configuration AccountancyArea=Espace comptabilité AccountancyAreaDescIntro=L'utilisation du module de comptabilité se fait en plusieurs étapes: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Désactiver la saisie directe de transactions en banqu ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Activer l'export brouillon sur les journaux comptables ACCOUNTANCY_COMBO_FOR_AUX=Activer la liste déroulante pour les comptes auxiliaires (des lenteurs peuvent être rencontrées si vous avez de nombreux tiers) ACCOUNTING_DATE_START_BINDING=Définissez une date pour commencer la liaison et le transfert en comptabilité. En dessous de cette date, les transactions ne seront jamais transférées à la comptabilité. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Choix de la période des factures pour le transfert en comptabilité +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Sur virement comptable, quelle est la période sélectionnée par défaut -ACCOUNTING_SELL_JOURNAL=Journal des ventes -ACCOUNTING_PURCHASE_JOURNAL=Journal des achats -ACCOUNTING_MISCELLANEOUS_JOURNAL=Journal des opérations diverses +ACCOUNTING_SELL_JOURNAL=Journal des ventes (ventes et retours) +ACCOUNTING_PURCHASE_JOURNAL=Journal des achats (achats et retours) +ACCOUNTING_BANK_JOURNAL=Journal de caisse (encaissements et décaissements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Journal des notes de frais -ACCOUNTING_SOCIAL_JOURNAL=Journal de paie +ACCOUNTING_MISCELLANEOUS_JOURNAL=Journal général ACCOUNTING_HAS_NEW_JOURNAL=Journal des A-nouveaux +ACCOUNTING_INVENTORY_JOURNAL=Journal d'inventaire +ACCOUNTING_SOCIAL_JOURNAL=Journal de paie ACCOUNTING_RESULT_PROFIT=Compte de résultat (Profit) ACCOUNTING_RESULT_LOSS=Compte de résultat (perte) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal de fermeture -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte comptable de transfert transitoire bancaire +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte (du plan comptable) à utiliser comme compte pour les virements bancaires transitoires TransitionalAccount=Compte transitoire de virement bancaire -ACCOUNTING_ACCOUNT_SUSPENSE=Compte comptable d'attente -DONATION_ACCOUNTINGACCOUNT=Compte comptable pour l'enregistrement des dons -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Compte comptable pour enregistrer les adhésions +ACCOUNTING_ACCOUNT_SUSPENSE=Compte (du plan comptable) à utiliser comme compte pour les fonds non alloués reçus ou payés, c'est-à-dire les fonds en "attente" +DONATION_ACCOUNTINGACCOUNT=Compte (du plan comptable) à utiliser pour enregistrer les dons (module Donation) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Compte (du plan comptable) à utiliser pour enregistrer les souscriptions d'adhésions (module d'adhésion - si adhésion enregistrée sans facture) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Compte comptable par défaut pour les acomptes clients -UseAuxiliaryAccountOnCustomerDeposit=Utiliser des sous-comptes pour les lignes de dépôt des clients +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Compte (du plan comptable) à utiliser comme compte par défaut pour enregistrer le dépôt du client +UseAuxiliaryAccountOnCustomerDeposit=Enregistrer le compte client comme compte individuel dans le grand livre auxiliaire pour les lignes d'acompte (si désactivé, le compte individuel pour les lignes d'acompte restera vide) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Compte (du plan comptable) à utiliser par défaut +UseAuxiliaryAccountOnSupplierDeposit=Stocker le compte fournisseur comme compte individuel dans le grand livre auxiliaire pour les lignes d'acomptes (si désactivé, le compte individuel pour les lignes d'acompte restera vide) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Compte comptable par défaut pour les produits achetés (utilisé si non défini dans la fiche produit) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Compte comptable par défaut pour les produits achetés dans la CEE (utilisé si non défini dans la fiche produit) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Compte comptable par défaut pour les produits achetés et importés hors de la CEE (utilisé si non défini dans la fiche produit) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Compte comptable par défaut pour les produits vendus (utilisé si non défini dans la fiche produit) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Code comptable par défaut pour les produits vendus dans la CEE (utilisé si non définie dans la fiche produit) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Code comptable par défaut pour les produits vendus et exportés hors de la CEE (utilisé si non définie dans la fiche produit) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les produits achetés dans le même pays (utilisé s'il n'est pas défini dans la fiche produit) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les produits achetés de la CEE vers un autre pays de la CEE (utilisé si non défini dans la fiche produit) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les produits achetés et importés de tout autre pays étranger (utilisé s'il n'est pas défini dans la fiche produit) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les produits vendus (utilisé si non défini dans la fiche produit) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Compte (du Plan Comptable) à utiliser comme compte par défaut pour les produits vendus depuis la CEE vers un autre pays de la CEE (utilisé si non défini dans la fiche produit) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les produits vendus et exportés vers tout autre pays étranger (utilisé s'il n'est pas défini dans la fiche produit) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte comptable par défaut pour les services achetés (utilisé si non défini dans la fiche service) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Compte comptable par défaut pour les services achetés dans la CEE (utilisé si non défini dans la fiche service) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Compte comptable par défaut pour les services achetés et importés hors de la CEE (utilisé si non défini dans la fiche service) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte comptable par défaut pour les services vendus (utilisé si non défini dans la fiche service) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Compte comptable par défaut pour les services vendus dans la CEE (utilisé si non défini dans la fiche service) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Code comptable par défaut pour les services vendus et exportés hors de la CEE (utilisé si non définie dans la fiche produit) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les services achetés dans le même pays (utilisé s'il n'est pas défini dans la feuille de services) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les services achetés depuis la CEE vers un autre pays de la CEE (utilisé s'il n'est pas défini dans la feuille de services) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les services achetés et importés d'un autre pays étranger (utilisé s'il n'est pas défini dans la feuille de service) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les services vendus (utilisé s'il n'est pas défini dans la feuille de services) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Compte (du Plan Comptable) à utiliser comme compte par défaut pour les prestations vendues depuis la CEE vers un autre pays de la CEE (utilisé si non défini dans la fiche service) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour les services vendus et exportés vers tout autre pays étranger (utilisé s'il n'est pas défini dans la feuille de service) Doctype=Type de documents Docdate=Date @@ -211,7 +217,7 @@ Codejournal=Journal JournalLabel=Libellé journal NumPiece=Numéro de pièce TransactionNumShort=Num. transaction -AccountingCategory=Groupe comptable personnalisé +AccountingCategory=Groupe de comptes personnalisé GroupByAccountAccounting=Affichage par compte comptable GroupBySubAccountAccounting=Affichage par compte auxiliaire AccountingAccountGroupsDesc=Vous pouvez définir ici des groupes de comptes comptable. Il seront utilisés pour les reporting comptables personnalisés @@ -265,13 +271,13 @@ Reconcilable=Rapprochable TotalVente=Total chiffre affaires hors taxe TotalMarge=Total marge -DescVentilCustomer=Consultez ici la liste des lignes de factures clients liées (ou non) à un compte comptable produit -DescVentilMore=Dans la plupart des cas, si vous utilisez des produits ou des services prédéfinis et vous définissez le numéro de compte comptable sur la fiche produit/service, l'application sera en mesure de faire toute les liaisons entre vos lignes de facture et le compte comptable de votre plan comptable, juste en un clic avec le bouton "%s". Si le compte n'a pas été mis sur les fiches produits/services ou si vous avez encore quelques lignes non liées à un compte, vous devrez faire une liaison manuelle à partir du menu "%s". -DescVentilDoneCustomer=Consultez ici la liste des lignes de factures clients et leur compte comptable produits -DescVentilTodoCustomer=Lier les lignes de factures non déjà liées à un compte comptable produits -ChangeAccount=Modifier le compte comptable produit/service pour les lignes sélectionnées avec le compte comptable suivant: +DescVentilCustomer=Consultez ici la liste des lignes de facture client liées (ou non) à un compte produit du plan comptable +DescVentilMore=Dans la plupart des cas, si vous utilisez des produits ou services prédéfinis et que vous paramétrez le compte (du plan comptable) sur la fiche produit/service, l'application pourra faire toute la liaison entre vos lignes de facture et le compte comptable de votre plan comptable des comptes, juste en un clic avec le bouton "%s" . Si le compte n'a pas été défini sur les fiches produits/services ou s'il vous reste des lignes non liées à un compte, vous devrez effectuer une liaison manuelle depuis le menu " %s ". +DescVentilDoneCustomer=Consultez ici la liste des lignes de factures clients et leur compte produit à partir du plan comptable +DescVentilTodoCustomer=Lier les lignes de facture qui ne sont pas déjà liées à un compte produit à partir d'un plan comptable +ChangeAccount=Modifiez le compte de produit/service (du plan comptable) pour les lignes sélectionnées avec le compte suivant : Vide=- -DescVentilSupplier=Consultez ici la liste des lignes de factures fournisseur liées ou pas encore liées à un compte comptable produit (seuls les enregistrements pas encore transférés en comptabilités sont visibles) +DescVentilSupplier=Consultez ici la liste des lignes de facture fournisseur liées ou non encore liées à un compte article du plan comptable (seuls les enregistrements non encore transférés en comptabilité sont visibles) DescVentilDoneSupplier=Consultez ici la liste des lignes de factures fournisseurs et leur compte comptable DescVentilTodoExpenseReport=Lier les lignes de note de frais par encore liées à un compte comptable DescVentilExpenseReport=Consultez ici la liste des lignes de notes de frais liées (ou non) à un compte comptable @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Si vous avez défini des comptes comptables au nivea DescVentilDoneExpenseReport=Consultez ici la liste des lignes des notes de frais et leur compte comptable Closure=Clôture annuelle -DescClosure=Consulter le nombre de mouvements par mois non validés et les périodes fiscales déjà ouvertes +DescClosure=Consultez ici le nombre de mouvements par mois non encore validés & verrouillés OverviewOfMovementsNotValidated=Aperçu des mouvements non validés et verrouillés AllMovementsWereRecordedAsValidated=Tous les mouvements ont été enregistrés comme validés et ont été verrouillés NotAllMovementsCouldBeRecordedAsValidated=Certains mouvements n'ont pas pu être enregistrés comme validés et n'ont pas été verrouillés -ValidateMovements=Valider et verrouiller l'enregistrement... +ValidateMovements=Valider et verrouiller les mouvements... DescValidateMovements=Toute modification ou suppression d'écriture, de lettrage et de suppression sera interdite. Toutes les entrées pour un exercice doivent être validées, sinon la fermeture ne sera pas possible ValidateHistory=Lier automatiquement AutomaticBindingDone=Liaisons automatiques effectuées (%s) - Liaison automatique impossible pour certains enregistrements (%s) -ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé +ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas supprimer ou désactiver ce compte de plan comptable car il est utilisé MvtNotCorrectlyBalanced=Mouvement non équilibré. Débit = %s & Crédit = %s Balancing=Équilibrage FicheVentilation=Fiche lien GeneralLedgerIsWritten=Les transactions sont enregistrées dans le grand livre GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être journalisées. S'il n'y a pas d'autres messages, c'est probablement car elles sont déjà comptabilisées. NoNewRecordSaved=Aucune ligne à transférer -ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte comptable +ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte de plan comptable ChangeBinding=Changer les liens Accounted=En comptabilité NotYetAccounted=Pas encore transféré en comptabilité @@ -319,9 +325,10 @@ AccountingJournalType1=Opérations diverses AccountingJournalType2=Ventes AccountingJournalType3=Achats AccountingJournalType4=Banque -AccountingJournalType5=Note de frais +AccountingJournalType5=Notes de frais AccountingJournalType8=Inventaire AccountingJournalType9=A-nouveaux +GenerationOfAccountingEntries=Génération des écritures comptables ErrorAccountingJournalIsAlreadyUse=Le journal est déjà utilisé AccountingAccountForSalesTaxAreDefinedInto=Remarque: Le compte comptable pour la TVA est défini dans le menu %s - %s NumberOfAccountancyEntries=Nombre d'entrées @@ -329,10 +336,13 @@ NumberOfAccountancyMovements=Nombre de mouvements ACCOUNTING_DISABLE_BINDING_ON_SALES=Désactiver la liaison et le transfert en comptabilité des factures de ventes (les factures clients ne seront pas prises en compte en comptabilité). ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Désactiver la liaison et le transfert en comptabilité des factures d'achats (les factures fournisseurs ne seront pas prises en compte en comptabilité). ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Désactiver la liaison et le transfert en comptabilité des notes de frais (les notes de frais ne seront pas prises en compte en comptabilité). +ACCOUNTING_ENABLE_LETTERING=Activer la fonction de lettrage dans la comptabilité ## Export +NotExportLettering=Ne pas exporter le lettrage lors de la génération du fichier NotifiedExportDate=Marquer les lignes exportées comme Exportées (pour modifier une ligne, vous devrez supprimer toute la transaction et la retransférer en comptabilité) -NotifiedValidationDate=Validez et verrouillez les entrées exportées (même effet que la fonction "Fermeture", la modification et la suppression des lignes ne seront CERTAINEMENT pas possibles) +NotifiedValidationDate=Validez et verrouillez les entrées exportées (même effet que la fonctionnalité "%s", la modification et la suppression des lignes ne seront définitivement plus possibles) +NotifiedExportFull=Exporter les pièces ? DateValidationAndLock=Validation et verrouillage de la date ConfirmExportFile=Confirmation de la génération du fichier d'export comptable ? ExportDraftJournal=Exporter le journal brouillon @@ -398,7 +408,11 @@ Calculated=Calculé Formula=Formule ## Reconcile +LetteringAuto=Rapprocher automatiquement +LetteringManual=Rapprocher manuel Unlettering=Annuler le rapprochement +UnletteringAuto=Annuler le rapprochement automatique +UnletteringManual=Annuler rapprochement manuel AccountancyNoLetteringModified=Pas de rapprochement modifié AccountancyOneLetteringModifiedSuccessfully=Un rapprochement modifié avec succès AccountancyLetteringModifiedSuccessfully=%s rapprochements modifiés avec succès @@ -407,8 +421,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Une annulation de rapprochement mo AccountancyUnletteringModifiedSuccessfully=%s annulations de rapprochement modifiées avec succès ## Confirm box -ConfirmMassUnlettering=Confirmation d'annulation de rapprochement en masse -ConfirmMassUnletteringQuestion=Êtes-vous sûr de vouloir annuler le rapprochement de(s) %s enregistrement(s) sélectionné(s) ? +ConfirmMassUnletteringAuto=Confirmation d'annulation de rapprochement automatique +ConfirmMassUnletteringManual=Confirmation de dé-rapprochement manuel +ConfirmMassUnletteringQuestion=Voulez-vous vraiment annuler le rapprochement des %s enregistrements sélectionnés ? ConfirmMassDeleteBookkeepingWriting=Confirmation de suppression en masse ConfirmMassDeleteBookkeepingWritingQuestion=Cela supprimera la transaction de la comptabilité (toutes les lignes liées à la même transaction seront supprimées). Êtes-vous sûr de vouloir supprimer le(s) %s enregistrement(s) sélectionné(s) ? @@ -424,9 +439,11 @@ Binded=Lignes liées ToBind=Lignes à lier UseMenuToSetBindindManualy=Lignes non encore liées, utilisez le menu %s pour effectuer la liaison manuellement. SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Désolé ce module n'est pas compatible avec la fonctionnalité expérimentale des factures de situation -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchLetterCode=Non-concordance dans le code de réconciliation AccountancyErrorMismatchBalanceAmount=Le solde (%s) n'est pas égal à 0 AccountancyErrorLetteringBookkeeping=Des erreurs sont survenues concernant les transactions : %s +ErrorAccountNumberAlreadyExists=Le code comptable %s existe déjà +ErrorArchiveAddFile=Impossible d'ajouter le fichier "%s" dans l'archive ## Import ImportAccountingEntries=Écritures comptables @@ -453,6 +470,5 @@ FECFormatMulticurrencyCode=Code multidevise (Idevise) DateExport=Date d'export WarningReportNotReliable=Attention : ce rapport n'est pas basé sur le grand livre et ne contient donc pas les écritures manuelles qui lui ont été ajoutées. Si votre journalisation est à jour, la vue depuis le grand livre sera plus précise. ExpenseReportJournal=Journal des notes de frais -InventoryJournal=Journal d'inventaire NAccounts=%s comptes diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 7ac18213e1e..7bc99f56b19 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Jeu de caractère de tri du client WarningModuleNotActive=Le module %s doit être activé pour utiliser cette fonction. WarningOnlyPermissionOfActivatedModules=Attention, seules les permissions en rapport avec les modules activés sont affichées ici. Vous pouvez activer d'autres modules sur la page Accueil->Configuration->Modules. DolibarrSetup=Installation ou mise à jour de Dolibarr -InternalUser=Utilisateur interne -ExternalUser=Utilisateur externe InternalUsers=Utilisateurs internes ExternalUsers=Utilisateurs externes UserInterface=Interface utilisateur @@ -109,7 +107,7 @@ NextValueForReplacements=Prochaine valeur (factures de remplacement) MustBeLowerThanPHPLimit=Remarque: La configuration de votre PHP limite la taille des envois à %s %s, quelle que soit la valeur de ce paramètre NoMaxSizeByPHPLimit=Aucune limite configurée dans votre serveur PHP MaxSizeForUploadedFiles=Taille maximum des fichiers envoyés (0 pour interdire l'envoi) -UseCaptchaCode=Utilisation du code graphique (CAPTCHA) sur la page de connexion +UseCaptchaCode=Utiliser le code graphique (CAPTCHA) sur la page de connexion et certaines pages publiques AntiVirusCommand=Chemin complet vers la commande antivirus AntiVirusCommandExample=Exemple pour ClamAv Daemon (nécessite clamav-daemon): /usr/bin/clamdscan
    Exemple pour ClamWin (très très lent): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Paramètres supplémentaires sur la ligne de commande @@ -248,7 +246,7 @@ UsedOnlyWithTypeOption=Utilisé par certaines options de l'agenda uniquement Security=Sécurité Passwords=Mots de passe DoNotStoreClearPassword=Chiffrer les mots de passe stockés dans la base de données (PAS en texte brut). Il est fortement recommandé d'activer cette option. -MainDbPasswordFileConfEncrypted=Chiffrer le mot de passe de la base dans le fichier conf.php . Il est fortement recommandé d'activer cette option. +MainDbPasswordFileConfEncrypted=Chiffrer le mot de passe de la base dans le fichier conf.php. Il est fortement recommandé d'activer cette option. InstrucToEncodePass=Pour avoir le mot de passe de la base encodé dans le fichier de configuration conf.php, remplacer dans ce fichier la ligne
    $dolibarr_main_db_pass="...";
    par
    $dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Pour avoir le mot de passe de la base décodé (en clair) dans le fichier de configuration conf.php, remplacer dans ce fichier la ligne
    $dolibarr_main_db_pass="crypted:...";
    par
    $dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection des PDF générés. Activation NON recommandée (rend inopérante la génération de PDF de masse) @@ -285,7 +283,7 @@ ContentForLines=Contenu à afficher pour chaque produit ou service (à partir de NoticePeriod=Délai de prévenance NewByMonth=Mois suivant Emails=Emails -EMailsSetup=Configuration Emails +EMailsSetup=Configuration des mails EMailsDesc=Cette page permet de définir les paramètres et options d'envoi des e-mails. EmailSenderProfiles=Expéditeur des e-mails EMailsSenderProfileDesc=Vous pouvez garder cette section vide. Si vous entrez des emails ici, ils seront ajoutés à la liste des expéditeurs possibles dans la liste déroulante lorsque vous écrivez un nouvel email. @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Par défa MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix) MAIN_MAIL_EMAIL_FROM=Adresse email de l'émetteur pour l'envoi d'emails automatiques (Par défaut dans php.ini: %s) +EMailHelpMsgSPFDKIM=Pour éviter que les e-mails envoyés par Dolibarr soient classés comme spam, assurez-vous que le serveur est autorisé à envoyer des e-mails à partir de cette adresse en configurant les protocoles d’authentification SPF et DKIM. MAIN_MAIL_ERRORS_TO=E-mail utilisé pour les retours d'erreur (champ "Errors-To" dans les e-mails envoyés) MAIN_MAIL_AUTOCOPY_TO= Envoyer systématiquement une copie cachée (Bcc) des emails envoyés à MAIN_DISABLE_ALL_MAILS=Désactiver globalement tout envoi d'emails (pour mode test ou démos) @@ -439,8 +438,10 @@ Unique=Unique Boolean=Boolean (case à cocher unique) ExtrafieldPhone = Téléphone ExtrafieldPrice = Prix +ExtrafieldPriceWithCurrency=Prix avec devise ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Liste de sélection ExtrafieldSelectList = Liste issue d'une table ExtrafieldSeparator=Séparateur (il ne s'agit pas d'un champ de saisie) @@ -477,7 +478,7 @@ InstalledInto=Installé dans le répertoire %s BarcodeInitForThirdparties=Initialisation du code-barre en masse pour les tiers BarcodeInitForProductsOrServices=Initialisation ou purge en masse des codes-barre des produits ou services CurrentlyNWithoutBarCode=Actuellement, vous avez %s enregistrements sur %s %s sans code barre défini. -InitEmptyBarCode=Initialisez les valeurs pour les %s enregistrements vides suivant +InitEmptyBarCode=Valeur d'initialisation pour les %s codes à barres vides EraseAllCurrentBarCode=Efface toutes les valeurs de code-barre ConfirmEraseAllCurrentBarCode=Etes-vous sur de vouloir effacer toutes les valeurs de code-barre ? AllBarcodeReset=Tous les codes-barre ont été supprimés @@ -501,10 +502,11 @@ WarningPHPMail=AVERTISSEMENT: la configuration pour envoyer des e-mails à parti WarningPHPMailA= - L'utilisation des serveurs de prestataires de messagerie augmente le niveau confiance des e-mails, cela augmente donc les chances de délivrabilité en n'étant pas considéré comme spam. WarningPHPMailB=- Certains fournisseurs de services de messagerie (comme Yahoo) ne vous permettent pas d'envoyer un e-mail à partir d'un autre serveur que leur propre serveur. Votre configuration actuelle utilise le serveur de l'application pour envoyer des e-mails et non le serveur de votre fournisseur de messagerie, donc certains destinataires (ceux compatibles avec le protocole DMARC restrictif), demanderont à votre fournisseur de messagerie si ils peuvent accepter votre message et ce fournisseur de messagerie (comme Yahoo) peut répondre «non» parce que le serveur d'envoi n'est pas le leur, aussi une partie de vos e-mails envoyés peuvent ne pas être acceptés pour la livraison (faites également attention au quota d'envoi de votre fournisseur de messagerie). WarningPHPMailC=- Utiliser le serveur SMTP de votre propre fournisseur de services de messagerie pour envoyer des e-mails est également intéressant afin que tous les e-mails envoyés depuis l'application soient également enregistrés dans votre répertoire "Envoyés" de votre boîte aux lettres. -WarningPHPMailD=Aussi, il est recommandé de changer le mode d'envoi des e-mails à la valeur "SMTP". Si vous souhaitez vraiment conserver la méthode "PHP" par défaut pour envoyer des e-mails, ignorez simplement cet avertissement ou supprimez-le en définissant la constante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP sur 1 dans Accueil - Configuration - Autre. +WarningPHPMailD=Il est donc recommandé de changer la méthode d'envoi des e-mails à la valeur "SMTP". +WarningPHPMailDbis=Si vous voulez vraiment conserver la méthode par défaut "PHP" pour envoyer des e-mails, ignorez simplement cet avertissement ou supprimez-le en %scliquant ici%s. WarningPHPMail2=Si votre fournisseur de messagerie SMTP a besoin de restreindre le client de messagerie à certaines adresses IP (très rare), voici l'adresse IP du mail user agent (MUA) de votre application CRM ERP : %s . WarningPHPMailSPF=Si le nom de domaine de votre adresse e-mail d'expéditeur est protégé par un enregistrement SPF (demandez à votre fournisseur de nom de domaine), vous devez inclure les adresses IP suivantes dans l'enregistrement SPF du DNS de votre domaine: %s. -ActualMailSPFRecordFound=Enregistrement SPF réel trouvé : %s +ActualMailSPFRecordFound=Enregistrement SPF réel trouvé (pour l'e-mail %s) : %s ClickToShowDescription=Cliquer pour afficher la description DependsOn=Ce module a besoin du(des) module(s) RequiredBy=Ce module est requis par le ou les module(s) @@ -645,9 +647,9 @@ Module2400Name=Événements/Agenda Module2400Desc=Gestion des événements. Laissez l'application tracer automatiquement les événements pour des besoins de suivi ou enregistrer manuellement des événements ou rendez-vous dans l'agenda. Ceci est le module le plus important pour une bonne Gestion de la Relation Client ou Fournisseur. Module2500Name=GED Module2500Desc=Gestion de documents (GED). Stockage automatic des documents générés ou stockés. Fonction de partage. -Module2600Name=API/Web services (serveur SOAP) +Module2600Name=API / Web services (serveur SOAP) Module2600Desc=Active le server SOAP Dolibarr fournissant des services API -Module2610Name=API/Web services (serveur REST) +Module2610Name=API / Web services (serveur REST) Module2610Desc=Active le server REST Dolibarr fournissant des services API Module2660Name=Appel de Webservices externes (client SOAP) Module2660Desc=Activez le client Dolibarr de services Web (Peut être utilisé pour pousser des données/demandes vers des serveurs externes. Seules les commandes Fournisseurs sont prises en charge pour le moment) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Ajouts de fonctionnalités pour gérer les incoterms Module63000Name=Ressources Module63000Desc=Gère les ressources (imprimantes, voitures, salles...). les ressources peuvent être affectées à des événements. +Module94160Name=Réceptions Permission11=Consulter les factures clients Permission12=Créer/modifier les factures clients Permission13=Dé-valider les factures clients @@ -714,13 +717,14 @@ Permission27=Supprimer les propositions commerciales Permission28=Exporter les propositions commerciales Permission31=Consulter les produits Permission32=Créer/modifier les produits +Permission33=Lire les prix des produits Permission34=Supprimer les produits Permission36=Voir/gérer les produits cachés Permission38=Exporter les produits Permission39=Ignorer le prix minimum -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Lire les projets et les tâches (projets partagés et projets dont je suis un contact). +Permission42=Créer/modifier des projets (projets partagés et projets dont je suis un interlocuteur). Peut également affecter des utilisateurs à des projets et des tâches +Permission44=Supprimer des projets (projets partagés et projets dont je suis un contact) Permission45=Exporter les projets Permission61=Consulter les interventions Permission62=Créer/modifier les interventions @@ -739,6 +743,7 @@ Permission79=Créer/modifier les cotisations Permission81=Consulter les commandes clients Permission82=Créer/modifier les commandes clients Permission84=Valider les commandes clients +Permission85=Générer les documents de commandes clients Permission86=Envoyer les commandes clients Permission87=Clôturer les commandes clients Permission88=Annuler les commandes clients @@ -766,10 +771,10 @@ Permission122=Créer/modifier les tiers (sociétés) liés à l'utilisateur Permission125=Supprimer les tiers (sociétés) liés à l'utilisateur Permission126=Exporter les tiers (sociétés) Permission130=Créer/modifier les informations de paiement des tiers -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=Lire tous les projets et tâches (ainsi que les projets privés pour lesquels je ne suis pas un contact) +Permission142=Créer/modifier tous les projets et tâches (ainsi que les projets privés pour lesquels je ne suis pas un contact) +Permission144=Supprimer tous les projets et tâches (ainsi que les projets privés dont je ne suis pas un contact) +Permission145=Peut saisir le temps consommé, pour moi ou ma hiérarchie, sur les tâches assignées (Timesheet) Permission146=Consulter les fournisseurs Permission147=Consulter les stats Permission151=Consulter les prélèvements @@ -840,9 +845,9 @@ Permission286=Exporter les contacts Permission291=Consulter les tarifs Permission292=Définir les permissions sur les tarifs Permission293=Modifier les tarifs clients -Permission300=Consulter les codes-barres -Permission301=Créer/modifier les codes-barres -Permission302=Supprimer les codes-barres +Permission301=Générer le PDF du code barre +Permission304=Créer/modifier les codes-barres +Permission305=Supprimer les codes-barres Permission311=Consulter les services Permission312=Affecter le service/abonnement au contrat Permission331=Lire les marque-pages @@ -874,6 +879,7 @@ Permission525=Utiliser le calculateur d'emprunts Permission527=Exporter les emprunts Permission531=Consulter les services Permission532=Créer/modifier les services +Permission533=Lire les prix des services Permission534=Supprimer les services Permission536=Voir/gérer les services cachés Permission538=Exporter les services @@ -968,13 +974,14 @@ Permission3301=Générer de nouveaux modules Permission4001=Lire compétence/emploi/poste Permission4002=Créer/modifier une compétence/un emploi/un poste Permission4003=Supprimer compétence/emploi/poste -Permission4020=Lire les évaluations -Permission4021=Créer/modifier votre évaluation -Permission4022=Valider l'évaluation -Permission4023=Supprimer l'évaluation -Permission4030=Voir menu de comparaison +Permission4021=Lire les évaluations (la vôtre et celle de vos subordonnés) +Permission4022=Créer/modifier des évaluations +Permission4023=Valider l'évaluation +Permission4025=Supprimer l'évaluation +Permission4028=Voir menu de comparaison Permission4031=Lire les informations personnelles Permission4032=Ecrire les informations personnelles +Permission4033=Lire toutes les évaluations (même celles des utilisateurs non subordonnés) Permission10001=Lire le contenu du site Permission10002=Créer/modifier le contenu du site Web (contenu HTML et JavaScript) Permission10003=Créer/modifier le contenu du site Web (code php dynamique). Dangereux, doit être réservé à un nombre restreint de développeurs. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type de cession d'actifs TypeOfUnit=Type d'unité SetupSaved=Configuration sauvegardée SetupNotSaved=Configuration non enregistrée +OAuthServiceConfirmDeleteTitle=Supprimer l'entrée OAuth +OAuthServiceConfirmDeleteMessage=Voulez-vous vraiment supprimer cette entrée OAuth ? Tous les jetons existants pour celui-ci seront également supprimés. +ErrorInEntryDeletion=Erreur lors de la suppression de l'entrée +EntryDeleted=Entrée supprimée BackToModuleList=Retour liste des modules BackToDictionaryList=Retour liste des dictionnaires TypeOfRevenueStamp=Type de timbre fiscal @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Valeur de constante de configuration ConstantIsOn=L'option %s est activée NbOfDays=Nb. de jours AtEndOfMonth=En fin de mois -CurrentNext=Current/Next +CurrentNext=Un jour donné du mois Offset=Décalage AlwaysActive=Toujours actif Upgrade=Mise à jour @@ -1235,11 +1246,13 @@ BrowserName=Nom du navigateur BrowserOS=OS du navigateur ListOfSecurityEvents=Liste des événements de sécurité Dolibarr SecurityEventsPurged=Evenement de sécurité purgés +TrackableSecurityEvents=événement de sécurité traçable LogEventDesc=Vous pouvez activer ici l'historique des événements d'audit de sécurité. Cet historique est consultable par les administrateurs dans le menu %s - %s. Attention, cette fonctionnalité peut générer un gros volume de données. AreaForAdminOnly=Les paramètres d'installation ne peuvent être remplis que par les utilisateurs administrateurs uniquement. SystemInfoDesc=Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement. SystemAreaForAdminOnly=Cet espace n'est accessible qu'aux utilisateurs de type administrateur. Aucune permission Dolibarr ne permet d'étendre le cercle des utilisateurs autorisés à cet espace. CompanyFundationDesc=Modifiez les informations de votre société/organisation. Cliquez sur le bouton "%s" en bas de page pour sauvegarder. +MoreNetworksAvailableWithModule=Plus de réseaux sociaux peuvent être disponible en activant le module "Réseaux Sociaux". AccountantDesc=Si vous avez un comptable externe, vous pouvez saisir ici ses informations. AccountantFileNumber=Code comptable DisplayDesc=Les paramètres affectant l'apparence et la présentation de l'application peuvent être modifiés ici. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Vous devez exécuter la command YourPHPDoesNotHaveSSLSupport=Fonctions SSL non présentes dans votre PHP DownloadMoreSkins=Plus de thèmes à télécharger SimpleNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0. +SimpleRefNumRefModelDesc=Renvoie le numéro de référence au format n où n est un numéro séquentiel auto-incrémenté sans réinitialisation +AdvancedNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0. SimpleNumRefNoDateModelDesc=Renvoie le numéro de référence au format %s-nnnn où nnnn est un nombre séquentiel autoincrémenté sans réinitialisation ShowProfIdInAddress=Afficher l'identifiant professionnel dans les adresses ShowVATIntaInAddress=Masquer le numéro de TVA intracommunautaire @@ -1346,7 +1361,7 @@ TransKeyWithoutOriginalValue=Vous avez forcé une nouvelle traduction pour la cl TitleNumberOfActivatedModules=Modules activés TotalNumberOfActivatedModules=Modules activés : %s / %s YouMustEnableOneModule=Vous devez activer au moins une fonctionnalité -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +YouMustEnableTranslationOverwriteBefore=Vous devez d'abord activer l'écrasement de la traduction pour être autorisé à remplacer une traduction ClassNotFoundIntoPathWarning=La classe %s n'a pas été trouvée dans le chemin PHP YesInSummer=Oui en été OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivants sont ouverts aux utilisateurs externes (quelles qu'en soient les permissions de ces utilisateurs) et seulement si les permissions leur ont été données:
    @@ -1376,7 +1391,7 @@ GetBarCode=Récupérer code barre NumberingModules=Modèles de numérotation DocumentModules=Modèles de documents ##### Module password generation -PasswordGenerationStandard=Renvoie un mot de passe généré selon l'algorythme interne de Dolibarr :%s caractères contenant chiffres et minuscules +PasswordGenerationStandard=Renvoie un mot de passe généré selon l'algorithme interne de Dolibarr : %s caractères contenant des nombres et des caractères partagés. PasswordGenerationNone=Ne pas suggérer un mot de passe généré. Le mot de passe doit être entré manuellement. PasswordGenerationPerso=Renvoie un mot de passe en fonction d'une configuration personnalisée. SetupPerso=Selon votre configuration @@ -1430,6 +1445,10 @@ SuppliersPayment=Règlements fournisseurs SupplierPaymentSetup=Configuration des règlements fournisseurs InvoiceCheckPosteriorDate=Vérifier la facture avant validation InvoiceCheckPosteriorDateHelp=Valider une facture est interdit si sa date est antérieur à la date de la dernière facture du même type +InvoiceOptionCategoryOfOperations=Afficher la mention "catégorie d'opérations" sur la facture. +InvoiceOptionCategoryOfOperationsHelp=Selon les cas, la mention apparaîtra sous la forme :
    - Catégorie d'opérations : Livraison de biens
    - Catégorie d'opérations : Prestation de services
    - Catégorie d'opérations : Mixte - Livraison de biens & prestation de services +InvoiceOptionCategoryOfOperationsYes1=Oui, sous le bloc d'adresse +InvoiceOptionCategoryOfOperationsYes2=Oui, dans le coin inférieur gauche ##### Proposals ##### PropalSetup=Configuration du module Propositions Commerciales ProposalsNumberingModules=Modèles de numérotation des propositions commerciales @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Filigrane sur les brouillons de contrats (aucun si ##### Members ##### MembersSetup=Configuration du module Adhérents MemberMainOptions=Options principales +MemberCodeChecker=Options de génération automatique des codes membres AdherentLoginRequired= Gérer un identifiant pour chaque adhérent AdherentMailRequired=Email obligatoire pour créer un nouvel adhérent MemberSendInformationByMailByDefault=Case à cocher pour envoyer un email de confirmation (validation ou nouvelle cotisation) aux adhérents est à oui par défaut. MemberCreateAnExternalUserForSubscriptionValidated=Créer un utilisateur externe pour chaque nouvelle cotisation adhérent validée -VisitorCanChooseItsPaymentMode=Le visiteur peut choisir parmi les modes de paiement disponibles +VisitorCanChooseItsPaymentMode=Le visiteur peut choisir parmi tous les modes de paiement disponibles MEMBER_REMINDER_EMAIL=Activer le rappel automatique par e-mail des adhésions expirées. Remarque: le module %s doit être activé et configuré correctement pour qu'un rappel soit envoyé. MembersDocModules=Modèle de document pour le document généré depuis la fiche d'un adhérent ##### LDAP setup ##### @@ -1610,7 +1630,7 @@ LDAPFieldUserid=Id utilisateur LDAPFieldUseridExample=Exemple: uidnumber LDAPFieldHomedirectory=Répertoire racine LDAPFieldHomedirectoryExample=Exemple: homedirectory -LDAPFieldHomedirectoryprefix=Répertoire racine +LDAPFieldHomedirectoryprefix=Préfixe du répertoire racine LDAPSetupNotComplete=Configuration LDAP incomplète (à compléter sur les autres onglets) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Administrateur ou mot de passe non renseigné. Les accès LDAP seront donc anonymes et en lecture seule. LDAPDescContact=Cette page permet de définir le nom des attributs de l'arbre LDAP pour chaque information des contacts Dolibarr. @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Activer l'éditeur avancé pour : FCKeditorForNotePublic=Création/édition WYSIWIG du champ notes publiques des éléments FCKeditorForNotePrivate=Création/édition WYSIWIG du champ notes privées des éléments FCKeditorForCompany=Création/édition WYSIWIG de la description des éléments (autre que produits/services) -FCKeditorForProduct=Création/édition WYSIWIG du champ description des produits/services -FCKeditorForProductDetails=Création/édition WYSIWYG des lignes de détails produits sur tous les éléments (commandes, propales, factures, etc...). Attention: L'utilisation pour ce cas est fortement déconseillée car peut créer des problèmes dans la gestion de caractères et mise en page des fichiers PDF générés. +FCKeditorForProductDetails=Création/édition WYSIWYG de la description des produits ou des lignes d'un objet (propositions, commandes, factures, etc). +FCKeditorForProductDetails2=ATTENTION : L'utilisation de cette option pour ce cas n'est vraiment pas recommandée car elle peut créer des problèmes avec des caractères spéciaux et la mise en forme des pages lors de la création de fichiers PDF. FCKeditorForMailing= Création/édition WYSIWIG des emailings (Outils->Emailings) FCKeditorForUserSignature=Création/édition WYSIWIG de la signature des utilisateurs FCKeditorForMail=Création/édition WYSIWIG tous les emails (sauf Outils->Emailings) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Nom du gestionnaire menu dans lequel faire apparaitre le nouve DetailMenuModule=Nom du module si l'entrée menu est issue d'un module DetailType=Type de menu (top ou left) DetailTitre=Libellé du menu ou code libellé à traduire -DetailUrl=URL vers laquelle le menu pointe (Lien URL absolu ou lien externe avec http://) +DetailUrl=URL où le menu vous envoie (lien URL relatif ou lien externe avec https://) DetailEnabled=Condition d'affichage ou non DetailRight=Condition d'affichage plein ou grisé DetailLangs=Fichier .lang pour la traduction du code libellé @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=La décrémentation de stock depuis c CashDeskYouDidNotDisableStockDecease=Vous n'avez pas désactivé la réduction de stock lors d'une vente depuis le Point de vente. Par conséquent, un entrepôt est nécessaire. CashDeskForceDecreaseStockLabel=La diminution des stocks de produits soumis à numéros de lots a été forcée. CashDeskForceDecreaseStockDesc=Diminuez d'abord par les dates de DMD/DLUO ou DLC les plus anciennes -CashDeskReaderKeyCodeForEnter=Code clé pour "Entrée" défini dans le lecteur de code-barres (exemple: 13) +CashDeskReaderKeyCodeForEnter=Code ASCII clé pour "Enter" défini dans le lecteur de code-barres (Exemple : 13) ##### Bookmark ##### BookmarkSetup=Configuration du module Marque-pages BookmarkDesc=Ce module vous permet de gérer des liens et raccourcis. Il permet aussi d'ajouter n'importe quelle page de Dolibarr ou lien web dans le menu d'accès rapide sur la gauche. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modèles de numérotation des factures fournisseu IfSetToYesDontForgetPermission=Si positionné sur une valeur non nulle, n'oubliez pas de donner les permissions aux groupes ou utilisateurs qui auront le droit de cette seconde approbation. ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuration du module GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Chemin du fichier Maxmind contenant les conversions IP->Pays.
    Exemples
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Chemin d'accès au fichier contenant la traduction de l'adresse IP Maxmind vers le pays NoteOnPathLocation=Notez que ce fichier doit être dans un répertoire accessible à votre PHP (Vérifiez le paramètre open_basedir de votre PHP et les permissions du fichier/répertoires). YouCanDownloadFreeDatFileTo=Vous pouvez télécharger une version démo gratuite de la base Maxmind à l'adresse %s. YouCanDownloadAdvancedDatFileTo=Vous pouvez aussi télécharger une version plus complète avec mise à jours de la base Maxmind à l'adresse %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Assistant pour créer le fichier dump de la base de données BackupZipWizard=Assistant pour générer l'archive du répertoire documents SomethingMakeInstallFromWebNotPossible=L'installation de module externe est impossible depuis l'interface web pour la raison suivante : SomethingMakeInstallFromWebNotPossible2=Pour cette raison, le processus de mise à jour décrit ici est une processus manuel que seul un utilisateur ayant des droits privilégiés peut réaliser. +InstallModuleFromWebHasBeenDisabledContactUs=L'installation ou le développement de modules externes ou de sites Web dynamiques, à partir de l'application, est actuellement verrouillé pour des raisons de sécurité. Veuillez nous contacter si vous avez besoin d'activer cette fonctionnalité. InstallModuleFromWebHasBeenDisabledByFile=L'installation de module externe depuis l'application a été désactivé par l'administrator. Vous devez lui demander de supprimer le fichier %s pour permettre cette fonctionnalité. ConfFileMustContainCustom=Installer ou créer un module externe à partir de l'application nécessite de sauvegarder les fichiers du module dans le répertoire %s. Pour que ce répertoire soit reconnu par Dolibarr, vous devez paramétrer le fichier de configuration conf/conf.php en ajoutant les 2 lignes suivantes :
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Mettre en surbrillance les lignes de la table lorsque la souris passe au-dessus @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Appuyez sur la touche CTRL+F5 ou videz le cache de votr NotSupportedByAllThemes=Fonctionne avec les thèmes natifs. Non garanti avec d'autres BackgroundColor=Couleur de fond TopMenuBackgroundColor=Couleur de fond pour le menu Haut -TopMenuDisableImages=Cacher les images du menu principal +TopMenuDisableImages=Icône ou texte dans le menu supérieur LeftMenuBackgroundColor=Couleur de fond pour le menu Gauche BackgroundTableTitleColor=Couleur de fond pour la ligne de titres des listes/tableaux BackgroundTableTitleTextColor=Couleur du texte pour la ligne de titre des tableaux @@ -1949,7 +1970,7 @@ EnterAnyCode=Ce champ contient une référence pour identifier l'enregistrement. Enter0or1=Saisir 0 ou 1  UnicodeCurrency=Saisissez ici entre accolades, la liste du numéro des octets qui représentent le symbole de la monnaie. Pour exemple: pour $, entrez [36] - pour le Real Brésilien R$ [82,36] - pour l'euro €, entrez [8364] ColorFormat=La couleur RVB au format HEX est, par exemple: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Nom de l'icône au format :
    - image.png pour un fichier image dans le répertoire du thème courant
    - image.png@module si le fichier est dans le répertoire /img/ d'un module
    - fa-xxx pour un picto FontAwesome fa-xxx
    - fonwtawesome_xxx_fa_color_size pour un picto FontAwesome fa-xxx (avec préfixe, couleur et taille définis) PositionIntoComboList=Position de la ligne dans des listes déroulantes SellTaxRate=Taux de TVA RecuperableOnly=Oui pour une TVA "Non Perçue mais Récupérable" dédiée à certains pays comme la France. Gardez la valeur à "Non" dans tous les autres cas. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Commandes fournisseurs MailToSendSupplierInvoice=Factures fournisseur MailToSendContract=Contrats MailToSendReception=Réceptions +MailToExpenseReport=Notes de frais MailToThirdparty=Tiers MailToMember=Adhérents MailToUser=Utilisateurs @@ -2020,7 +2042,7 @@ LandingPage=Page d'accueil SamePriceAlsoForSharedCompanies=Si vous utilisez un module multi-société, avec le choix «prix unique», le prix sera aussi le même pour toutes les sociétés si les produits sont partagés entre les environnements ModuleEnabledAdminMustCheckRights=Le module a été activé. Les permissions pour le(s) module(s) activé(s) ont été donnés aux utilisateurs admin uniquement. Vous devrez peut-être accorder des autorisations aux autres utilisateurs ou groupes manuellement si nécessaire. UserHasNoPermissions=Cet utilisateur n'a pas de permission définie -TypeCdr=Utilisez "Aucune" si la date du terme de paiement est la date de la facture plus un delta en jours (delta est le champ "%s")
    Utilisez "À la fin du mois", si, après le delta, la date doit être augmentée pour atteindre la fin du mois (+ un optionnel "%s" en jours)
    Utilisez "Coutant/Suivant" pour que la date du terme de paiement soit la premier Nième jour du mois après le delta le delta est le champ "%s", N est stocké dans le champ "%s") +TypeCdr=Utilisez "Aucune" si la date du terme de paiement est la date de la facture plus un delta en jours (delta est le champ "%s")
    Utilisez "À la fin du mois", si, après le delta, la date doit être augmentée pour atteindre la fin du mois (+ un optionnel "%s" en jours)
    Utilisez "Courant/Suivant" pour que la date du terme de paiement soit la premier Nième jour du mois après le delta (le delta est le champ "%s", N est stocké dans le champ "%s") BaseCurrency=Devise par défaut de votre société/institution (Voir Accueil > configuration > Société/Institution) WarningNoteModuleInvoiceForFrenchLaw=Ce module %s permet d'être conforme aux lois françaises (Loi Finance 2016 par exemple). WarningNoteModulePOSForFrenchLaw=Le module %s est conforme à la législation française ( Loi Finance 2016 ) car les logs non réversibles sont automatiquement activés. @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Marge droite sur les PDF MAIN_PDF_MARGIN_TOP=Marge haute sur les PDF MAIN_PDF_MARGIN_BOTTOM=Marge bas sur les PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Hauteur du logo sur les PDFs +DOC_SHOW_FIRST_SALES_REP=Afficher le premier commercial MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Ajouter une colonne pour les images dans les propositions commerciales MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Largeur de la colonne si une image est ajoutée sur les lignes MAIN_PDF_NO_SENDER_FRAME=Masquer les bordures dans le cadre de l'adresse de l'expéditeur @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Supprimer les caractères spéciaux COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex pour nettoyer la valeur (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtre de regex pour nettoyer la valeur (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Doublons non autorisés +RemoveSpecialWords=Nettoyer certains mots lors de la génération de sous-comptes pour les clients ou les fournisseurs +RemoveSpecialWordsHelp=Précisez les mots à nettoyer avant de calculer le compte client ou fournisseur. Utiliser un ";" entre chaque mot GDPRContact=Responsable de la protection des données (DPO ou contact RGPD) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Si vous stockez des données personnelles dans votre système d'information, vous pouvez nommer ici le contact responsable du règlement général sur la protection des données HelpOnTooltip=Texte d'aide à afficher dans l'info-bulle HelpOnTooltipDesc=Mettez du texte ou une clé de traduction ici pour que le texte apparaisse dans une info-bulle lorsque ce champ apparaît dans un formulaire YouCanDeleteFileOnServerWith=Vous pouvez supprimer ce fichier sur le serveur avec la ligne de commande:
    %s @@ -2059,38 +2084,46 @@ VATIsUsedIsOff=Remarque: l'option d'utilisation de la taxe de vente ou de la TVA SwapSenderAndRecipientOnPDF=Inverser la position des adresses expéditeurs et destinataires sur les documents PDF FeatureSupportedOnTextFieldsOnly=Attention, fonctionnalité prise en charge sur les champs de texte et les listes déroulantes uniquement. De plus, un paramètre d'URL action=create ou action=edit doit être défini OU le nom de la page doit se terminer par 'new.php' pour déclencher cette fonctionnalité. EmailCollector=Collecteur de courrier électronique +EmailCollectors=Collecteurs d'e-mails EmailCollectorDescription=Ajoute un travail planifié et une page de configuration pour analyser régulièrement les boîtes aux lettres (à l'aide du protocole IMAP) et enregistrer les courriers électroniques reçus dans votre application, au bon endroit et/ou créer automatiquement certains enregistrements (comme des opportunités). NewEmailCollector=Nouveau collecteur d'email EMailHost=Hôte du serveur de messagerie IMAP +EMailHostPort=Port du serveur de messagerie IMAP +loginPassword=Mot de passe +oauthToken=Jeton Oauth2 +accessType=Type d'accès +oauthService=Service Oauth +TokenMustHaveBeenCreated=Le module OAuth2 doit être activé et un token oauth2 doit avoir été créé avec les bonnes permissions (par exemple scope "gmail_full" avec OAuth pour Gmail). MailboxSourceDirectory=Répertoire source de la boîte aux lettres MailboxTargetDirectory=Répertoire cible de la boîte aux lettres EmailcollectorOperations=Opérations à effectuer par le collecteur EmailcollectorOperationsDesc=Les opérations sont exécutées de haut en bas MaxEmailCollectPerCollect=Nombre maximum d'emails collectés par collecte +TestCollectNow=Tester la collecte CollectNow=Collecter maintenant -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? +ConfirmCloneEmailCollector=Voulez-vous vraiment cloner le collecteur d'e-mails %s ? DateLastCollectResult=Date de la dernière tentative de collecte DateLastcollectResultOk=Date de la dernière collecte réussie LastResult=Dernier résultat -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeaders=Ne pas inclure le contenu de l'en-tête de l'e-mail dans le contenu enregistré des e-mails collectés +EmailCollectorHideMailHeadersHelp=Lorsque cette option est activée, les en-têtes d'e-mail ne sont pas ajoutés à la fin du contenu de l'e-mail enregistré en tant qu'événement de l'agenda. EmailCollectorConfirmCollectTitle=Confirmation de la collecte Email -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorConfirmCollect=Voulez-vous exécuter ce collecteur maintenant ? +EmailCollectorExampleToCollectTicketRequestsDesc=Collectez les e-mails qui correspondent à certaines règles et créez automatiquement un ticket (Module Ticket doit être activé) avec les informations de l'e-mail. Vous pouvez utiliser ce collecteur si vous fournissez une assistance par e-mail, ainsi votre demande de ticket sera automatiquement générée. Activez également Collect_Responses pour collecter les réponses de votre client directement sur la vue du ticket (vous devez répondre depuis Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Exemple de collecte de d'email pour ticket (premier message uniquement) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scannez le répertoire "Envoyés" de votre boîte mail pour retrouver les emails qui ont été envoyés en réponse à un autre email directement depuis votre logiciel de messagerie et non depuis Dolibarr. Si un tel email est trouvé, l'événement de réponse est enregistré dans Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Exemple de collecte de réponses par e-mail envoyées depuis un logiciel de messagerie externe +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collectez tous les e-mails qui sont une réponse à un e-mail envoyé depuis votre application. Un événement (le module Agenda doit être activé) avec la réponse par e-mail sera enregistré au bon endroit. Par exemple, si vous envoyez une proposition commerciale, une commande, une facture ou un message pour un ticket par email depuis l'application, et que le destinataire répond à votre email, le système captera automatiquement la réponse et l'ajoutera dans votre ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Exemple de collecte de tous les messages entrants étant des réponses aux messages envoyés depuis Dolibarr +EmailCollectorExampleToCollectLeadsDesc=Collectez les e-mails qui correspondent à certaines règles et créez automatiquement un prospect (Module Project doit être activé) avec les informations d'e-mail. Vous pouvez utiliser ce collecteur si vous souhaitez suivre votre lead à l'aide du module Project (1 lead = 1 projet), ainsi vos leads seront automatiquement générés. Si le collecteur Collect_Responses est également activé, lorsque vous envoyez un email depuis vos leads, propositions ou tout autre objet, vous pouvez également voir les réponses de vos clients ou partenaires directement sur l'application.
    Remarque : Avec cet exemple initial, le titre du prospect est généré, y compris l'e-mail. Si le tiers est introuvable dans la base de données (nouveau client), le prospect sera associé au tiers avec l'ID 1. +EmailCollectorExampleToCollectLeads=Exemple de collecte de leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collectez les e-mails postulant aux offres d'emploi (le module Recrutement doit être activé). Vous pouvez compléter ce collecteur si vous souhaitez créer automatiquement une candidature pour une demande d'emploi. Remarque : Avec ce premier exemple, le titre de la candidature est généré avec l'e-mail. +EmailCollectorExampleToCollectJobCandidatures=Exemple de collecte de candidatures reçues par e-mail NoNewEmailToProcess=Aucun nouvel email (correspondants aux filtres) à traiter NothingProcessed=Aucune action faite -XEmailsDoneYActionsDone=%s e-mails qualifiés, %s e-mails traités avec succès (pour %s enregistrements/actions réalisés) +XEmailsDoneYActionsDone=%s e-mails pré-qualifiés, %s e-mails traités avec succès (pour %s enregistrement/actions effectuées) RecordEvent=Enregistrer un événement dans l'agenda (avec le type Email envoyé ou reçu) -CreateLeadAndThirdParty=Créer un prospect (et un tiers si nécessaire) +CreateLeadAndThirdParty=Créer une opportunité (et un tiers si nécessaire) CreateTicketAndThirdParty=Créer un ticket (lié à un tiers si le tiers a été chargé par une opération précédente ou a été deviné à partir d'un tracker en en-tête d'email, sans tiers sinon) CodeLastResult=Dernier code de retour NbOfEmailsInInbox=Nombre de courriels dans le répertoire source @@ -2105,14 +2138,14 @@ CreateCandidature=Créer une candidature FormatZip=Zip MainMenuCode=Code d'entrée du menu (mainmenu) ECMAutoTree=Afficher l'arborescence GED automatique -OperationParamDesc=Définissez les règles à utiliser pour extraire ou définir des valeurs.
    Exemple d'opérations nécessitant d'extraire un nom de l'objet d'un e-mail :
    name=EXTRACT:SUBJECT:Message from company ([^\n] *)
    exemple pour des opérations qui créent des objets:
    objproperty1=SET:la valeur d'ensemble
    objproperty2=SET:une valeur incluant __objproperty1__
    objproperty3 = SETIFEMPTY:valeur utilisée si objproperty3 est non déjà défini
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Le nom de ma société est\\s( [^\\s]*)

    Utilisez un caractère ; comme séparateur pour extraire ou définir plusieurs propriétés. +OperationParamDesc=Définissez les règles à utiliser pour extraire certaines données ou définissez les valeurs à utiliser pour l'opération.

    Exemple pour extraire un nom d'entreprise du sujet d'un e-mail dans une variable temporaire :
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Exemples pour définir les propriétés d'un objet à créer :
    objproperty1=SET:une valeur codée en dur
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:une valeur (la valeur sera définie uniquement si la valeur de la propriété n'est pas déjà définie)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:OBJET:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Mon nom de la société est\\s([^\\s]*)

    Utilisez un ; char comme séparateur pour extraire ou définir plusieurs propriétés. OpeningHours=Heures d'ouverture OpeningHoursDesc=Entrez ici les heures d'ouverture régulières de votre entreprise. ResourceSetup=Configuration du module Ressource UseSearchToSelectResource=Utilisez un champ avec auto-complétion pour choisir les ressources (plutôt qu'une liste déroulante). DisabledResourceLinkUser=Désactiver la fonctionnalité pour lier une ressource aux utilisateurs DisabledResourceLinkContact=Désactiver la fonctionnalité pour lier une ressource aux contacts/adresses -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Interdire l'utilisation d'une même ressource au même moment dans l'agenda ConfirmUnactivation=Confirmer réinitialisation du module OnMobileOnly=Sur petit écran (smartphone) uniquement DisableProspectCustomerType=Désactive le type de tiers "Prospect + Client" (les tiers seront donc "Prospect" OU "Client", mais ne peuvent être les deux). @@ -2167,6 +2200,10 @@ EmailTemplate=Modèle d'e-mail EMailsWillHaveMessageID=Les e-mails auront une étiquette 'References' correspondant à cette syntaxe PDF_SHOW_PROJECT=Afficher le projet sur le document ShowProjectLabel=Libellé du projet +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Inclure un alias dans le nom du tiers +THIRDPARTY_ALIAS=Nom du tiers - Alias du tiers +ALIAS_THIRDPARTY=Alias du tiers - Nom du tiers +PDFIn2Languages=Afficher les étiquettes au format PDF dans 2 langues différentes PDF_USE_ALSO_LANGUAGE_CODE=Si vous souhaitez que certains textes de votre PDF soient dupliqués dans 2 langues différentes dans le même PDF généré, vous devez définir ici cette deuxième langue pour que le PDF généré contienne 2 langues différentes dans la même page, celle choisie lors de la génération du PDF et celle-ci (seuls quelques modèles PDF prennent en charge cette fonction). Gardez vide pour 1 langue par PDF. PDF_USE_A=Générer document PDF avec le format PDF/A à la place du format PDF standard FafaIconSocialNetworksDesc=Entrez ici le code d'une icône FontAwesome. Si vous ne savez pas ce qu'est FontAwesome, vous pouvez utiliser la valeur générique fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partenariat AGENDA_EVENT_DEFAULT_STATUS=État de l’événement par défaut lors de la création d’un événement à partir du formulaire YouShouldDisablePHPFunctions=Vous devriez désactiver les fonctions PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Sauf si vous avez besoin de lancer des commandes système, vous devriez désactiver les fonctions PHP -PHPFunctionsRequiredForCLI=Pour un interfaçage (comme des tâches de sauvegarde planifiée ou pour lancer un programme antivirus), vous devez garder les fonctions PHP +PHPFunctionsRequiredForCLI=À des fins de shell (comme la sauvegarde de tâches planifiées ou l'exécution d'un programme antivirus), vous devez conserver les fonctions PHP NoWritableFilesFoundIntoRootDir=Aucun fichier ou répertoire des programmes courants n’a été trouvé en écriture dans votre répertoire racine (Bon) RecommendedValueIs=Recommandé : %s Recommended=Recommandé NotRecommended=Non recommandé -ARestrictedPath=Des chemins restreints +ARestrictedPath=Certains chemins restreints pour les fichiers de données CheckForModuleUpdate=Vérifier les mises à jour des modules externes CheckForModuleUpdateHelp=Cette action se connecte aux éditeurs des modules externes pour vérifier si une nouvelle version est disponible. ModuleUpdateAvailable=Une mise à jour est disponible @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Aucune mise à jour trouvée pour les modules externe SwaggerDescriptionFile=Fichier de description de l’API Swagger (à utiliser avec redoc par exemple) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Vous avez activé l'API WS qui est dépréciée. Vous devriez utiliser l'API REST à la place. RandomlySelectedIfSeveral=Sélectionnée au hasard si plusieurs images sont disponibles +SalesRepresentativeInfo=Pour Propositions, Commandes, Factures DatabasePasswordObfuscated=Le mot de passe de la base de données est masqué dans le fichier de configuration DatabasePasswordNotObfuscated=Le mot de passe de la base de données n'est PAS masqué dans le fichier de configuration APIsAreNotEnabled=Les modules API ne sont pas activés @@ -2247,19 +2285,73 @@ LateWarningAfter=Icône de retard après TemplateforBusinessCards=Modèles de cartes de visite dans différents formats InventorySetup= Configuration du module Inventaire ExportUseLowMemoryMode=Utiliser un mode mémoire faible -ExportUseLowMemoryModeHelp=Utilisez le mode mémoire faible pour exécuter l'exécution du vidage (la compression se fait via un tube plutôt que dans la mémoire PHP). Cette méthode ne permet pas de vérifier que le fichier est terminé et le message d'erreur ne peut pas être signalé en cas d'échec. -ShowQuickAddLink=Show a button to quickly add an element in top right menu +ExportUseLowMemoryModeHelp=Utilisez le mode mémoire faible pour générer le fichier dump (la compression se fait via un pipe plutôt que dans la mémoire PHP). Cette méthode ne permet pas de vérifier que le fichier est complet et le message d'erreur ne peut pas être signalé en cas d'échec. Utilisez ce mode si vous avez des erreurs dues à un manque de mémoire. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface pour déclencher un appel d'URL externe suite à un événement Dolibarr +WebhookSetup = Configuration du webhook +Settings = Paramètres +WebhookSetupPage = Page de configuration du webhook +ShowQuickAddLink=Afficher un bouton pour ajouter rapidement un élément, dans le menu en haut à droite + HashForPing=Hash utilisé pour ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +ReadOnlyMode=L'instance est-elle en mode "Lecture seule" +DEBUGBAR_USE_LOG_FILE=Utilisez le fichier dolibarr.log pour récupérer les traces +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Utilisez le fichier dolibarr.log pour récupérer les traces au lieu de capture live en mémoire. Cela permet de récupérer toutes les traces au lieu des seules traces du processus en cours (donc, y compris celles des pages de sous-requêtes ajax) mais rendra votre instance très très lente. Non recommandé. +FixedOrPercent=Fixe (utilisez le mot-clé 'fixed') ou pourcentage (utilisez le mot-clé 'percent') +DefaultOpportunityStatus=Statut de l'opportunité par défaut (premier statut lors de la création du prospect) + +IconAndText=Icône et texte +TextOnly=Texte seulement +IconOnlyAllTextsOnHover=Icône uniquement - Tous les textes apparaissent sous l'icône sur la barre de menu du survol de la souris +IconOnlyTextOnHover=Icône uniquement - Le texte de l'icône apparaît sous l'icône à la souris survolez l'icône +IconOnly=Icône uniquement - Texte sur l'info-bulle uniquement +INVOICE_ADD_ZATCA_QR_CODE=Afficher le code QR ZATCA sur les factures +INVOICE_ADD_ZATCA_QR_CODEMore=Certains pays arabes ont besoin de ce code QR sur leurs factures +INVOICE_ADD_SWISS_QR_CODE=Afficher la QR-facture suisse sur les factures +INVOICE_SHOW_SHIPPING_ADDRESS=Afficher l'adresse de livraison +INVOICE_SHOW_SHIPPING_ADDRESSMore=Mention obligatoire pour la France +UrlSocialNetworksDesc=Lien url du réseau social. Utilisez {socialid} pour la partie variable qui contient l'identifiant du réseau social. +IfThisCategoryIsChildOfAnother=Si cette catégorie est un enfant d'une autre +DarkThemeMode=Mode thème sombre +AlwaysDisabled=Toujours désactivé +AccordingToBrowser=Selon navigateur +AlwaysEnabled=Toujours activé +DoesNotWorkWithAllThemes=Ne fonctionnera pas avec tous les thèmes +NoName=Sans nom +ShowAdvancedOptions= Afficher les options avancées +HideAdvancedoptions= Cacher les options avancées +CIDLookupURL=Le module apporte une URL qui peut être utilisée par un outil externe pour obtenir le nom d'un tiers ou d'un contact à partir de son numéro de téléphone. L'URL à utiliser est : +OauthNotAvailableForAllAndHadToBeCreatedBefore=L'authentification OAUTH2 n'est pas disponible pour tous les hôtes, et un token avec les bonnes permissions doit avoir été créé auparavant dans le module OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Service d'authentification OAUTH2 +DontForgetCreateTokenOauthMod=Un token avec les bonnes permissions doit avoir été créé auparavant dans le module OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Méthode d'authentification +UsePassword=Utiliser mot de passe +UseOauth=Utiliser un token OAUTH +Images=Images +MaxNumberOfImagesInGetPost=Nombre maximum d'images autorisées dans un champ HTML soumis dans un formulaire +MaxNumberOfPostOnPublicPagesByIP=Nombre maximum de publications sur des pages publiques avec la même adresse IP en un mois +CIDLookupURL=Le module apporte une URL qui peut être utilisée par un outil externe pour obtenir le nom d'un tiers ou d'un contact à partir de son numéro de téléphone. L'URL à utiliser est : +ScriptIsEmpty=Le script est manquant +ShowHideTheNRequests=Afficher/Cacher les %s requête(s) SQL. +DefinedAPathForAntivirusCommandIntoSetup=Définir un chemin pour un programme antivirus dans %s +TriggerCodes=Événements déclenchables +TriggerCodeInfo=Saisissez ici le(s) code(s) déclencheur(s) qui doivent générer la publication d'une requête web (seules les URL externes sont autorisées). Vous pouvez entrer plusieurs codes déclencheurs séparés par une virgule. +EditableWhenDraftOnly=Si décochée, la valeur ne peut être modifiée que lorsque l'objet a un état de brouillon +CssOnEdit=CSS sur les pages d'édition +CssOnView=CSS sur les pages de visualisation +CssOnList=CSS sur les pages de liste +HelpCssOnEditDesc=Le CSS utilisé lors de la modification du champ.
    Exemple : "minwidth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Le CSS utilisé lors de l'affichage du champ. +HelpCssOnListDesc=Le CSS utilisé lorsque le champ est à l'intérieur du tableau d'une liste.
    Exemple : "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Masquer la quantité commandée sur les documents générés pour les réceptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Afficher le prix sur les documents générés pour les réceptions +WarningDisabled=Avertissement désactivé +LimitsAndMitigation=Limites d'accès et atténuation +DesktopsOnly=Ordinateurs de bureau uniquement +DesktopsAndSmartphones=Ordinateurs de bureau et smartphones +AllowOnlineSign=Autoriser la signature en ligne +AllowExternalDownload=Autoriser le téléchargement externe (sans connexion, en utilisant un lien partagé) +DeadlineDayVATSubmission=Date limite pour la soumission de la TVA le mois suivant +MaxNumberOfAttachementOnForms=Nombre maximum de fichiers joints dans un formulaire +IfDefinedUseAValueBeetween=Si défini, utilisez une valeur entre %s et %s diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index 65e06587e88..e5a5fe354c4 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contrat %s supprimé PropalClosedSignedInDolibarr=Proposition %s signée PropalClosedRefusedInDolibarr=Proposition %s refusée PropalValidatedInDolibarr=Proposition %s validée +PropalBackToDraftInDolibarr=Proposition %s de retour au statut de brouillon PropalClassifiedBilledInDolibarr=Proposition %s classée payée InvoiceValidatedInDolibarr=Facture %s validée InvoiceValidatedInDolibarrFromPos=Facture %s validée depuis le Point de Vente @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=Adhérent %s validé MemberModifiedInDolibarr=Adhérent %s modifié MemberResiliatedInDolibarr=Adhérent %s résilié MemberDeletedInDolibarr=Adhérent %s supprimé +MemberExcludedInDolibarr=Adhérent %s exclu MemberSubscriptionAddedInDolibarr=Cotisation %s pour l'adhérent %s ajoutée MemberSubscriptionModifiedInDolibarr=Cotisation %s pour l'adhérent %s modifié MemberSubscriptionDeletedInDolibarr=Cotisation %s pour l'adhérent %s supprimé @@ -66,6 +68,8 @@ ShipmentBackToDraftInDolibarr=Expédition %s remise au statut brouillon ShipmentDeletedInDolibarr=Expédition %s supprimée ShipmentCanceledInDolibarr=Expédition %s annulée ReceptionValidatedInDolibarr=Réception %s validée +ReceptionDeletedInDolibarr=Réception %s supprimée +ReceptionClassifyClosedInDolibarr=Réception %s classée fermée OrderCreatedInDolibarr=Commande %s créée OrderValidatedInDolibarr=Commande %s validée OrderDeliveredInDolibarr=Commande %s classée Livrée @@ -84,6 +88,7 @@ SupplierInvoiceSentByEMail=Facture fournisseur %s envoyée par email ShippingSentByEMail=Bon d'expédition %s envoyé par email ShippingValidated= Expédition %s validée InterventionSentByEMail=Intervention %s envoyé par email +ProjectSentByEMail=Projet %s envoyé par email ProposalDeleted=Proposition commerciale supprimée OrderDeleted=Commande supprimée InvoiceDeleted=Facture supprimée @@ -157,6 +162,7 @@ DateActionBegin=Date début événément ConfirmCloneEvent=Êtes-vous sûr de vouloir cloner cet événement %s ? RepeatEvent=Evénement répétitif OnceOnly=Une seule fois +EveryDay=Chaque jour EveryWeek=Chaque semaine EveryMonth=Chaque mois DayOfMonth=Jour du mois @@ -172,3 +178,4 @@ AddReminder=Créer une notification de rappel automatique pour cet événement ErrorReminderActionCommCreation=Erreur lors de la création de la notification de rappel pour cet événement BrowserPush=Notification par Popup navigateur ActiveByDefault=Activé par défaut +Until=jusqu'à diff --git a/htdocs/langs/fr_FR/assets.lang b/htdocs/langs/fr_FR/assets.lang index d93545cb6a4..a03327da420 100644 --- a/htdocs/langs/fr_FR/assets.lang +++ b/htdocs/langs/fr_FR/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,52 +16,171 @@ # # Generic # -Assets = Immobilisations -NewAsset = Nouvelle immobilisation -AccountancyCodeAsset = Code comptable (immobilisation) -AccountancyCodeDepreciationAsset = Code comptable (compte d'amortissement) -AccountancyCodeDepreciationExpense = Code comptable (compte de charges d'amortissement) -NewAssetType=Nouveau type d'immobilisation -AssetsTypeSetup=Configuration du type d'actifs -AssetTypeModified=Type d'actif modifié -AssetType=Type d'immobilisations +NewAsset=Nouvelle immobilisation +AccountancyCodeAsset=Code comptable (immobilisation) +AccountancyCodeDepreciationAsset=Code comptable (compte d'amortissement) +AccountancyCodeDepreciationExpense=Code comptable (compte de charges d'amortissement) AssetsLines=Immobilisations DeleteType=Supprimer -DeleteAnAssetType=Supprimer un type d'actif -ConfirmDeleteAssetType=Êtes-vous sûr de vouloir supprimer ce type d'actif? -ShowTypeCard=Voir type '%s' +DeleteAnAssetType=Supprimer un modèle d'actif +ConfirmDeleteAssetType=Voulez-vous vraiment supprimer ce modèle d'actif ? +ShowTypeCard=Afficher le modèle '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Immobilisations +ModuleAssetsName=Immobilisations # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Module pour suivre vos immobilisations +ModuleAssetsDesc=Module pour suivre vos immobilisations # # Admin page # -AssetsSetup = Configuration du module immobilisations -Settings = Paramètres -AssetsSetupPage = Page de configuration des actifs -ExtraFieldsAssetsType = Attributs supplémentaires (type d'immobilisation) -AssetsType=Type d'immobilisations -AssetsTypeId=Id du type d'immobilisations -AssetsTypeLabel=Libellé du type d'immobilisations -AssetsTypes=Types d'immobilisations +AssetSetup=Configuration du module immobilisations +AssetSetupPage=Page de configuration des actifs +ExtraFieldsAssetModel=Attributs complémentaires (modèle d'Asset) + +AssetsType=Modèle d'actif +AssetsTypeId=ID du modèle d'actif +AssetsTypeLabel=Libellé du modèle d'actif +AssetsTypes=Modèles d'actifs +ASSET_ACCOUNTANCY_CATEGORY=Groupe de comptabilité des immobilisations # # Menu # -MenuAssets = Immobilisations -MenuNewAsset = Nouvelle immobilisation -MenuTypeAssets = Type d'immobilisations -MenuListAssets = Liste -MenuNewTypeAssets = Nouveau type -MenuListTypeAssets = Liste +MenuAssets=Immobilisations +MenuNewAsset=Nouvelle immobilisation +MenuAssetModels=Actifs du modèle +MenuListAssets=Liste +MenuNewAssetModel=Nouveau modèle d'actif +MenuListAssetModels=Liste # # Module # +ConfirmDeleteAsset=Voulez-vous vraiment supprimer cet élément ? + +# +# Tab +# +AssetDepreciationOptions=Options d'amortissement +AssetAccountancyCodes=Comptes comptables +AssetDepreciation=Dépréciation + +# +# Asset +# Asset=Immobilisations -NewAssetType=Nouveau type d'immobilisation -NewAsset=Nouvelle immobilisation -ConfirmDeleteAsset=Voulez-vous vraiment supprimer cet élément? +Assets=Immobilisations +AssetReversalAmountHT=Montant de l'annulation (hors taxes) +AssetAcquisitionValueHT=Montant de l'acquisition (hors taxes) +AssetRecoveredVAT=TVA récupérée +AssetReversalDate=Date d'annulation +AssetDateAcquisition=Date d'achat +AssetDateStart=Date de démarrage +AssetAcquisitionType=Type d'acquisition +AssetAcquisitionTypeNew=Nouveau type +AssetAcquisitionTypeOccasion=Utilisé +AssetType=Type d'actif +AssetTypeIntangible=Intangible +AssetTypeTangible=Tangible +AssetTypeInProgress=En cours +AssetTypeFinancial=Financier +AssetNotDepreciated=Non amorti +AssetDisposal=Disposition +AssetConfirmDisposalAsk=Êtes-vous sûr de vouloir céder l'actif %s  ? +AssetConfirmReOpenAsk=Voulez-vous vraiment rouvrir l'actif %s  ? + +# +# Asset status +# +AssetInProgress=En cours +AssetDisposed=Disposé +AssetRecorded=Comptabilisé + +# +# Asset disposal +# +AssetDisposalDate=Date de cession +AssetDisposalAmount=Valeur de cession +AssetDisposalType=Type d'élimination +AssetDisposalDepreciated=Amortir l'année du transfert +AssetDisposalSubjectToVat=Cession soumise à TVA + +# +# Asset model +# +AssetModel=Modèle d'actif +AssetModels=Modèles d'actifs + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Amortissement économique +AssetDepreciationOptionAcceleratedDepreciation=Amortissement accéléré (impôt) +AssetDepreciationOptionDepreciationType=Type d'amortissement +AssetDepreciationOptionDepreciationTypeLinear=Linéaire +AssetDepreciationOptionDepreciationTypeDegressive=Dégressif +AssetDepreciationOptionDepreciationTypeExceptional=Exceptionnel +AssetDepreciationOptionDegressiveRate=Tarif dégressif +AssetDepreciationOptionAcceleratedDepreciation=Amortissement accéléré (impôt) +AssetDepreciationOptionDuration=Durée +AssetDepreciationOptionDurationType=Tapez la durée +AssetDepreciationOptionDurationTypeAnnual=Annuel +AssetDepreciationOptionDurationTypeMonthly=Mensuel +AssetDepreciationOptionDurationTypeDaily=du quotidien +AssetDepreciationOptionRate=Taux (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Base d'amortissement (hors TVA) +AssetDepreciationOptionAmountBaseDeductibleHT=Base déductible (hors TVA) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Montant total dernier amortissement (hors TVA) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Amortissement économique +AssetAccountancyCodeAsset=Immobilisations +AssetAccountancyCodeDepreciationAsset=Dépréciation +AssetAccountancyCodeDepreciationExpense=La charge d'amortissement +AssetAccountancyCodeValueAssetSold=Valeur de l'actif cédé +AssetAccountancyCodeReceivableOnAssignment=A recevoir sur cession +AssetAccountancyCodeProceedsFromSales=Produit de la cession +AssetAccountancyCodeVatCollected=TVA collectée +AssetAccountancyCodeVatDeductible=TVA récupérée sur les actifs +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Amortissement accéléré (impôt) +AssetAccountancyCodeAcceleratedDepreciation=Compte +AssetAccountancyCodeEndowmentAcceleratedDepreciation=La charge d'amortissement +AssetAccountancyCodeProvisionAcceleratedDepreciation=Reprise/Fourniture + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Base d'amortissement (hors TVA) +AssetDepreciationBeginDate=Début de l'amortissement le +AssetDepreciationDuration=Durée +AssetDepreciationRate=Taux (%%) +AssetDepreciationDate=Date d'amortissement +AssetDepreciationHT=Amortissement (hors TVA) +AssetCumulativeDepreciationHT=Amortissements cumulés (hors TVA) +AssetResidualHT=Valeur résiduelle (hors TVA) +AssetDispatchedInBookkeeping=Amortissement enregistré +AssetFutureDepreciationLine=Amortissement futur +AssetDepreciationReversal=Renversement + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=L'identifiant de l'élément ou du son du modèle n'a pas été fourni +AssetErrorFetchAccountancyCodesForMode=Erreur lors de la récupération des comptes comptables pour le mode d'amortissement '%s' +AssetErrorDeleteAccountancyCodesForMode=Erreur lors de la suppression des comptes comptables du mode d'amortissement '%s' +AssetErrorInsertAccountancyCodesForMode=Erreur lors de l'insertion des comptes comptables du mode d'amortissement '%s' +AssetErrorFetchDepreciationOptionsForMode=Erreur lors de la récupération des options pour le mode d'amortissement '%s' +AssetErrorDeleteDepreciationOptionsForMode=Erreur lors de la suppression des options de mode d'amortissement '%s' +AssetErrorInsertDepreciationOptionsForMode=Erreur lors de l'insertion des options de mode d'amortissement '%s' +AssetErrorFetchDepreciationLines=Erreur lors de la récupération des lignes d'amortissement enregistrées +AssetErrorClearDepreciationLines=Erreur lors de la purge des lignes d'amortissement comptabilisées (extourne et future) +AssetErrorAddDepreciationLine=Erreur lors de l'ajout d'une ligne d'amortissement +AssetErrorCalculationDepreciationLines=Erreur lors du calcul des lignes d'amortissement (reprise et future) +AssetErrorReversalDateNotProvidedForMode=La date de renversement n'est pas fournie pour la méthode d'amortissement '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=La date d'annulation doit être supérieure ou égale au début de l'exercice en cours pour la méthode d'amortissement '%s' +AssetErrorReversalAmountNotProvidedForMode=Le montant de la contrepassation n'est pas fourni pour le mode d'amortissement '%s'. +AssetErrorFetchCumulativeDepreciation=Erreur lors de la récupération du montant de l'amortissement cumulé à partir de la ligne d'amortissement +AssetErrorSetLastCumulativeDepreciation=Erreur lors de l'enregistrement du dernier montant d'amortissement cumulé diff --git a/htdocs/langs/fr_FR/banks.lang b/htdocs/langs/fr_FR/banks.lang index 6260827ae27..35de9806932 100644 --- a/htdocs/langs/fr_FR/banks.lang +++ b/htdocs/langs/fr_FR/banks.lang @@ -172,8 +172,8 @@ SEPAMandate=Mandat SEPA YourSEPAMandate=Votre mandat SEPA FindYourSEPAMandate=Voici votre mandat SEPA pour autoriser notre société à réaliser les prélèvements depuis votre compte bancaire. Merci de retourner ce mandat signé (scan du document signé) ou en l'envoyant par courrier à AutoReportLastAccountStatement=Remplissez automatiquement le champ 'numéro de relevé bancaire' avec le dernier numéro lors du rapprochement -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=Contrôle de caisse POS +NewCashFence=Nouveau contrôle de caisse (ouverture ou fermeture) BankColorizeMovement=Coloriser les mouvements BankColorizeMovementDesc=Si cette fonction est activée, vous pouvez choisir une couleur de fond spécifique pour les mouvements de débit ou de crédit. BankColorizeMovementName1=Couleur de fond pour les mouvements de débit @@ -185,3 +185,4 @@ AlreadyOneBankAccount=un compte bancaire est déjà défini SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Virement SEPA : 'Type de paiement' au niveau 'Virement' SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=A la génération d'un fichier SEPA XML pour les virements, la section "PaymentTypeInformation" peut maintenant être placée dans la section "CreditTransferTransactionInformation" (à la place de la section "Payment").\nNous recommandons fortement de ne pas cocher cette case pour conserver "PaymentTypeInformation" dans "Payment level" car toutes les banques ne l'accepterons pas obligatoirement au niveau de "CreditTransferTransactionInformation". Contactez votre banque avant de modifier ce paramètre. ToCreateRelatedRecordIntoBank=Pour créer un enregistrement bancaire associé manquant +BanklineExtraFields=Extrait de la ligne bancaire diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 21163098b48..571c9316496 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Statistiques factures clients BillsStatisticsSuppliers=Statistiques factures fournisseurs DisabledBecauseDispatchedInBookkeeping=Action désactivée car facture comptabilisée dans le grand livre DisabledBecauseNotLastInvoice=Action désactivée car facture non supprimable. Des factures ont été créées après celle-ci et cela va créer un trou dans la numérotation des factures. +DisabledBecauseNotLastSituationInvoice=Désactivé car la facture n'est pas effaçable. Cette facture n'est pas la dernière du cycle des factures de situation. DisabledBecauseNotErasable=Désactivé car non supprimable InvoiceStandard=Facture standard InvoiceStandardAsk=Facture standard InvoiceStandardDesc=Ce type de facture est la facture traditionnelle. On l'appelle aussi facture de doit (du verbe devoir). +InvoiceStandardShort=Standard InvoiceDeposit=Facture d'acompte InvoiceDepositAsk=Facture d'acompte InvoiceDepositDesc=Ce type de facture fait suite à réception d'un acompte, s'il n'est pas encore possible de saisir le paiement sur une facture définitive. @@ -24,6 +26,7 @@ InvoiceProForma=Facture proforma InvoiceProFormaAsk=Facture proforma InvoiceProFormaDesc=La facture proforma est une image de facture définitive mais qui n'a aucune valeur comptable. InvoiceReplacement=Facture de remplacement +InvoiceReplacementShort=Remplacement InvoiceReplacementAsk=Facture de remplacement de la facture InvoiceReplacementDesc=La facture de remplacement sert à remplacer complètement une facture existante sur laquelle aucun paiement n'a encore eu lieu.

    Rem: Seules les factures sans aucun paiement peuvent être remplacées. Si ces dernières ne sont pas encore fermées, elles le seront automatiquement au statut 'abandonnée'. InvoiceAvoir=Facture avoir @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Cette partie ou ErrorInvoiceIsNotLastOfSameType=Erreur: La date de la facture %s est %s. Elle doit être postérieur ou égale à la dernière date pour le même type de factures (%s). Veuillez, s'il vous plait, changer la date de la facture. BillFrom=Émetteur BillTo=Adressé à +ShippingTo=Expédition à ActionsOnBill=Événements sur la facture RecurringInvoiceTemplate=Modèle de facture / Facture récurrente NoQualifiedRecurringInvoiceTemplateFound=Pas de facture récurrente qualifiée pour la génération @@ -221,8 +225,8 @@ AllowedInvoiceForRetainedWarranty=Garantie conservée utilisable sur les types d RetainedwarrantyDefaultPercent=Pourcentage par défaut de la retenue de garantie RetainedwarrantyOnlyForSituation=Rendre la "retenue de garantie" disponible uniquement pour les factures de situation RetainedwarrantyOnlyForSituationFinal=Sur les factures de situation, la déduction globale pour "retenue de garantie" n'est appliquée que sur la facture de situation finale -ToPayOn=A payer sur %s -toPayOn=à payer sur %s +ToPayOn=À payer le %s +toPayOn=à payer le %s RetainedWarranty=Retenue de garantie PaymentConditionsShortRetainedWarranty=Conditions de réglement de la retenue de garantie DefaultPaymentConditionsRetainedWarranty=Conditions de paiement par défaut des retenues de garantie @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 jours PaymentCondition14D=14 jours PaymentConditionShort14DENDMONTH=14 jours fin de mois PaymentCondition14DENDMONTH=Sous 14 jours suivant la fin du mois +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% acompte +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% acompte, reste à la livraison FixAmount=Montant Fixe - 1 ligne avec le libellé '%s' VarAmount=Montant variable (%% tot.) VarAmountOneLine=Montant variable (%% tot.) - 1 ligne avec le libellé '%s' VarAmountAllLines=Montant variable (%% tot.) - toutes les lignes identiques +DepositPercent=Acompte %% +DepositGenerationPermittedByThePaymentTermsSelected=Ceci est autorisé par les conditions de paiement sélectionnées +GenerateDeposit=Générer une facture d'acompte de %s%% +ValidateGeneratedDeposit=Valider l'acompte généré +DepositGenerated=Acompte généré +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Vous ne pouvez générer automatiquement un acompte qu'à partir d'une proposition ou d'une commande +ErrorPaymentConditionsNotEligibleToDepositCreation=Les conditions de paiement choisies ne sont pas éligibles à la génération automatique de virements # PaymentType PaymentTypeVIR=Virement bancaire PaymentTypeShortVIR=Virement bancaire PaymentTypePRE=Ordre de prélèvement +PaymentTypePREdetails=(sur compte *-%s) PaymentTypeShortPRE=Ordre de prélèvement PaymentTypeLIQ=Espèce PaymentTypeShortLIQ=Espèce @@ -612,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Paiement enregistré et facture %s passée SendEmailsRemindersOnInvoiceDueDate=Envoyer un rappel par e-mail pour les factures impayées MakePaymentAndClassifyPayed=Enregistrer un paiement BulkPaymentNotPossibleForInvoice=L'enregistrement de paiements en masse n'est pas possible pour la facture %s (mauvais type de facture ou statut) +MentionVATDebitOptionIsOn=Option de paiement de taxe sur débits +MentionCategoryOfOperations=Catégorie d'opérations +MentionCategoryOfOperations0=Livraison de marchandises +MentionCategoryOfOperations1=Fourniture de services +MentionCategoryOfOperations2=Mixte - Livraison de biens & prestation de services diff --git a/htdocs/langs/fr_FR/bookmarks.lang b/htdocs/langs/fr_FR/bookmarks.lang index b449ca7110a..355b1b351e4 100644 --- a/htdocs/langs/fr_FR/bookmarks.lang +++ b/htdocs/langs/fr_FR/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choisir si le raccourci doit ouv BookmarksManagement=Gestion des marque-pages BookmarksMenuShortCut=Ctrl + Maj + m NoBookmarks=Aucun marque page enregistré +NoBookmarkFound=Pas de marque-page trouvé. diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang index 801785a4427..cb09a89023c 100644 --- a/htdocs/langs/fr_FR/boxes.lang +++ b/htdocs/langs/fr_FR/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Dernières cotisations d'adhérents BoxFicheInter=Dernières interventions BoxCurrentAccounts=Balance des comptes ouverts BoxTitleMemberNextBirthdays=Anniversaires de ce mois (adhérents) -BoxTitleMembersByType=Adhérents par type +BoxTitleMembersByType=Adhérents par type et par statut BoxTitleMembersSubscriptionsByYear=Cotisations des adhérents par année BoxTitleLastRssInfos=Les %s dernières informations de %s BoxTitleLastProducts=Les %s derniers produits/services modifiés @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Commandes fournisseurs en attente de ré BoxTitleLastModifiedContacts=Les %s derniers contacts/adresses modifiés BoxMyLastBookmarks=Mes %s derniers marque-pages BoxOldestExpiredServices=Plus anciens services expirés +BoxOldestActions=Événements les plus anciens à faire BoxLastExpiredServices=Les %s plus anciens contrats avec services actifs expirés BoxTitleLastActionsToDo=Les %s derniers événements à réaliser +BoxTitleOldestActionsToDo=Événements %s les plus anciens à faire, non terminés BoxTitleLastContracts=Les %s derniers contrats modifiés BoxTitleLastModifiedDonations=Les %s derniers dons modifiés BoxTitleLastModifiedExpenses=Les %s dernières notes de frais modifiées diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang index 24d35d56a06..049ee169cef 100644 --- a/htdocs/langs/fr_FR/cashdesk.lang +++ b/htdocs/langs/fr_FR/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Bas de page AmountAtEndOfPeriod=Montant en fin de période (jour, mois ou année) TheoricalAmount=Montant théorique RealAmount=Montant réel -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Fermeture de caisse +CashFenceDone=Clôture de caisse effectuée pour la période NbOfInvoices=Nb de factures Paymentnumpad=Type de pavé pour entrer le paiement Numberspad=Pavé numérique @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    La balise {TN} est utilisée pour ajout TakeposGroupSameProduct=Regrouper les mêmes lignes de produits StartAParallelSale=Lancer une nouvelle vente en parallèle SaleStartedAt=Ventes démarrées à %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Ouvrez la fenêtre contextuelle "Contrôle de caisse" lors de l'ouverture du point de vente +CloseCashFence=Fermeture de caisse CashReport=Rapport de caisse MainPrinterToUse=Imprimante principale à utiliser OrderPrinterToUse=Imprimante à utiliser @@ -136,3 +136,12 @@ PrintWithoutDetails=Générer sans les détails YearNotDefined=L'année n'est pas définie TakeposBarcodeRuleToInsertProduct=Règle de lecture du code barre des produits TakeposBarcodeRuleToInsertProductDesc=Règle pour extraire la référence produit + une quantité d'un code barre scanné.
    Si vide (valeur par défaut), l'application utilisera le code-barres complet scanné pour trouver le produit.

    Si elle est définie, la syntaxe doit être:
    ref: NB + Qu: NB + QD: NB + autres: NB
    où NB est le nombre de caractères à utiliser pour extraire les données du code à barres scannés avec:
    • ref : référence produit
    • qu : quantité de jeu lors de l'insertion article (unités)
    • qd: quantité de jeu lors de l'insertion article (décimaux)
    • autre : autres caractères
    +AlreadyPrinted=Déjà imprimé +HideCategories=Cacher catégories +HideStockOnLine=Cacher les stocks sur les lignes +ShowOnlyProductInStock=Afficher les produits en stock +ShowCategoryDescription=Afficher la description de la catégorie +ShowProductReference=Afficher la référence des produits +UsePriceHT=Utiliser le prix HT et non le prix TTC +TerminalName=Terminal %s +TerminalNameDesc=Nom du terminal diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang index feabfac2d3c..235602b4600 100644 --- a/htdocs/langs/fr_FR/categories.lang +++ b/htdocs/langs/fr_FR/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Ce membre n'appartient à aucun(e) tag/catégorie ContactHasNoCategory=Ce contact n'appartient à aucun(e) tag/catégorie ProjectHasNoCategory=Ce projet n'est classé dans aucune catégorie ClassifyInCategory=Ajouter tag/catégorie +RemoveCategory=Supprimer la catégorie NotCategorized=Sans tag/catégorie CategoryExistsAtSameLevel=Ce tag existe déjà avec cette référence ContentsVisibleByAllShort=Contenu visible par tous @@ -62,11 +63,12 @@ MembersCategoriesShort=Tags des adhérents ContactCategoriesShort=Tags de contacts AccountsCategoriesShort=Tags des comptes ProjectsCategoriesShort=Tags de projets -UsersCategoriesShort=Tags utlisateurs +UsersCategoriesShort=Tags utilisateurs StockCategoriesShort=Tags/catégories d’entrepôt ThisCategoryHasNoItems=Cette catégorie ne contient aucun élément. CategId=ID du(de la) tag/catégorie ParentCategory=Catégorie parente +ParentCategoryID=ID de la balise/catégorie parent ParentCategoryLabel=Libellé du tag/catégorie parent CatSupList=Liste des tags/catégories des fournisseurs CatCusList=Liste des tags/catégories des clients/prospects @@ -86,15 +88,18 @@ DeleteFromCat=Enlever des tags/catégories ExtraFieldsCategories=Attributs supplémentaires CategoriesSetup=Configuration des tags/catégories CategorieRecursiv=Lier automatiquement avec le(a) tag/catégorie parent(e) -CategorieRecursivHelp=Si l'option est activé, quand un produit est ajouté dans une sous-catégorie, le produit sera ajouté aussi dans la catégorie parente. +CategorieRecursivHelp=Si l'option est activée, lorsque vous ajoutez un objet dans une sous-catégorie, l'objet sera également ajouté dans les catégories parentes. AddProductServiceIntoCategory=Ajouter le produit/service suivant AddCustomerIntoCategory=Assigner cette catégorie au client AddSupplierIntoCategory=Assigner cette catégorie au fournisseur +AssignCategoryTo=Attribuer une catégorie à ShowCategory=Afficher tag/catégorie ByDefaultInList=Par défaut dans la liste ChooseCategory=Choisissez une catégorie StocksCategoriesArea=Catégories d’entrepôt +TicketsCategoriesArea=Catégories de billets ActionCommCategoriesArea=Catégories d’événements WebsitePagesCategoriesArea=Catégories des pages-conteneurs KnowledgemanagementsCategoriesArea=Catégories d'articles KM UseOrOperatorForCategories=Utiliser l'opérateur 'ou' pour les catégories +AddObjectIntoCategory=Ajouter un objet dans la catégorie diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang index d663185936b..4dbb9576480 100644 --- a/htdocs/langs/fr_FR/commercial.lang +++ b/htdocs/langs/fr_FR/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Status prospection DraftPropals=Propositions brouillons NoLimit=Pas de limite ToOfferALinkForOnlineSignature=Lien pour signature en ligne -WelcomeOnOnlineSignaturePage=Bienvenue sur la page pour accepter les propositions commerciales de %s -ThisScreenAllowsYouToSignDocFrom=Cet écran vous permet d'accepter et signer en ligne, ou de refuser, le devis ou la proposition commerciale -ThisIsInformationOnDocumentToSign=Voici les informations sur le document à accepter ou refuser +WelcomeOnOnlineSignaturePageProposal=Bienvenue sur la page pour accepter les propositions commerciales de %s +WelcomeOnOnlineSignaturePageContract=Bienvenue sur la page de signature du contrat PDF %s +WelcomeOnOnlineSignaturePageFichinter=Bienvenue sur la page de signature de PDF d'intervention %s +ThisScreenAllowsYouToSignDocFromProposal=Cet écran vous permet d'accepter et signer en ligne, ou de refuser, le devis ou la proposition commerciale +ThisScreenAllowsYouToSignDocFromContract=Cet écran vous permet de signer en ligne un contrat au format PDF. +ThisScreenAllowsYouToSignDocFromFichinter=Cet écran vous permet de signer en ligne une intervention au format PDF. +ThisIsInformationOnDocumentToSignProposal=Voici les informations sur le document à accepter ou refuser +ThisIsInformationOnDocumentToSignContract=Voici les informations sur le contrat à signer +ThisIsInformationOnDocumentToSignFichinter=Ceci est une information sur l'intervention à signer SignatureProposalRef=Signature du devis ou proposition commerciale %s +SignatureContractRef=Signature du contrat %s +SignatureFichinterRef=Signature de l'intervention %s FeatureOnlineSignDisabled=Fonctionnalité pour la signature en ligne désactivée ou document généré avant l'activation de la fonctionnalité diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 889f16b3f75..f66d2005c73 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature de tiers NatureOfContact=Nature du contact Address=Adresse State=Département / Canton +StateId=ID d'état StateCode=Code État / Province StateShort=Département Region=Région Region-State=Région - État Country=Pays CountryCode=Code pays -CountryId=Identifiant pays +CountryId=Identifiant du pays Phone=Téléphone PhoneShort=Tél. Skype=Skype @@ -105,7 +106,7 @@ WrongSupplierCode=Code fournisseur incorrect CustomerCodeModel=Modèle de code client SupplierCodeModel=Modèle de code fournisseur Gencod=Code-barres -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=Code barre de la référence prix ##### Professional ID ##### ProfId1Short=Id. prof. 1 ProfId2Short=Id. prof. 2 @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Identifiant. prof. 1 (Registre de Commerce) ProfId2CM=Identifiant. prof. 2 (numéro de contribuable) -ProfId3CM=Identifiant. prof. 3 (Décret de création) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId3CM=Id. prof. 3 (N° Arrêté de création) +ProfId4CM=Id. prof. 4 (N° Attestation de dépôts) +ProfId5CM=Id. prof. 5 (Autres) ProfId6CM=- ProfId1ShortCM=Registre du commerce ProfId2ShortCM=Numéro de contribuable -ProfId3ShortCM=Décret de création -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=N° du décret de création +ProfId4ShortCM=Certificat de dépôt n° ProfId5ShortCM=Autres ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) @@ -312,11 +313,11 @@ CustomerAbsoluteDiscountShort=Remise fixe CompanyHasRelativeDiscount=Ce client a une remise par défaut de %s%% CompanyHasNoRelativeDiscount=Ce client n'a pas de remise relative par défaut HasRelativeDiscountFromSupplier=Vous avez une réduction par défaut de %s%% chez ce fournisseur -HasNoRelativeDiscountFromSupplier=Vous n'avez pas de remise relative par défaut chez ce fournisseur +HasNoRelativeDiscountFromSupplier=Aucune remise relative par défaut de ce fournisseur CompanyHasAbsoluteDiscount=Ce client dispose de crédits disponibles (avoirs ou acomptes) pour un montant de %s %s CompanyHasDownPaymentOrCommercialDiscount=Ce client a une réduction disponible (commercial, acompte) pour %s%s CompanyHasCreditNote=Ce client a %s %s d'avoirs disponibles -HasNoAbsoluteDiscountFromSupplier=Vous n'avez aucun crédit de réduction disponible auprès de ce fournisseur +HasNoAbsoluteDiscountFromSupplier=Aucun rabais/crédit disponible auprès de ce fournisseur HasAbsoluteDiscountFromSupplier=Vous avez des crédits disponibles (avoirs ou acomptes) pour %s %s chez ce fournisseur HasDownPaymentOrCommercialDiscountFromSupplier=Vous avez des crédits disponibles (bon de réductions, acomptes) pour %s %s chez ce fournisseur HasCreditNoteFromSupplier=Vous avez des avoirs pour %s %s chez ce fournisseur @@ -443,7 +444,7 @@ AddAddress=Créer adresse SupplierCategory=Catégorie du fournisseur JuridicalStatus200=Indépendant DeleteFile=Suppression d'un fichier -ConfirmDeleteFile=Êtes-vous sûr de vouloir supprimer ce fichier ? +ConfirmDeleteFile=Êtes-vous sûr de vouloir supprimer ce fichier %s ? AllocateCommercial=Affecter un commercial Organization=Organisme FiscalYearInformation=Exercice fiscal @@ -466,7 +467,7 @@ UniqueThirdParties=Nombre total des tiers InActivity=Ouvert ActivityCeased=Clos ThirdPartyIsClosed=Le tiers est clôturé -ProductsIntoElements=Liste des produits/services jusqu'à %s +ProductsIntoElements=Liste des produits/services présents dans %s CurrentOutstandingBill=Montant encours OutstandingBill=Montant encours autorisé OutstandingBillReached=Montant encours autorisé dépassé @@ -497,3 +498,5 @@ RestOfEurope=Reste de l'Union Européenne (UE) OutOfEurope=Hors Union Européenne (UE) CurrentOutstandingBillLate=Montant impayé arrivé à échéance BecarefullChangeThirdpartyBeforeAddProductToInvoice=Attention : selon votre configuration des prix des produits/services, vous devriez changer le tiers avant d'ajouter le produit +EmailAlreadyExistsPleaseRewriteYourCompanyName=l'e-mail existe déjà, veuillez réécrire le nom de votre entreprise +TwoRecordsOfCompanyName=plusieurs fiches existent pour cette entreprise merci de nous contacter pour compléter votre demande de partenariat" diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 178efeee8f3..58b04bc67bd 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Solde (avant) Balance=Solde Debit=Débit Credit=Crédit +AccountingDebit=Débit +AccountingCredit=Crédit Piece=Pièce AmountHTVATRealReceived=HT collectée AmountHTVATRealPaid=HT payé @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Le rapport de chiffre d'affa TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Le rapport de Chiffre d'affaires encaissé par taux de TVA n'est pas disponible. Ce rapport est uniquement disponible pour le chiffre d'affaires facturé. CalculationMode=Mode de calcul AccountancyJournal=Code journal comptable -ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour la TVA - TVA sur les ventes (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour la TVA - TVA sur les achats (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA -ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour le tiers client +ACCOUNTING_VAT_SOLD_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour la TVA sur les ventes (utilisé s'il n'est pas défini dans la configuration du dictionnaire TVA) +ACCOUNTING_VAT_BUY_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour la TVA sur les achats (utilisé s'il n'est pas défini dans la configuration du dictionnaire TVA) +ACCOUNTING_VAT_PAY_ACCOUNT=Compte (du plan comptable) à utiliser comme compte par défaut pour le paiement de la TVA +ACCOUNTING_ACCOUNT_CUSTOMER=Compte (du plan comptable) utilisé pour les tiers "clients" ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur la fiche tiers sera utilisé pour l'affectation du compte auxiliaire uniquement. Celui-ci sera utilisé pour la comptabilité générale et comme valeur par défaut de la comptabilité auxiliaire si le compte comptable client dédié du ties n'est pas défini. -ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour les tiers fournisseur +ACCOUNTING_ACCOUNT_SUPPLIER=Compte (du Plan Comptable) utilisé pour les tiers "fournisseurs" ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte de comptabilité dédié défini sur la fiche Tiers sera utilisé pour la comptabilité auxiliaire uniquement. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité auxiliaire si le compte de comptabilité fournisseur dédié au tiers n'est pas défini. ConfirmCloneTax=Confirmer le clonage de la charge sociale/fiscale ConfirmCloneVAT=Confirmer le clonage d'une déclaration de TVA @@ -300,3 +302,4 @@ InvoiceToPay15Days=A payer (d'ici 15 à 30 jours) InvoiceToPay30Days=A payer (dans plus de 30 jours) ConfirmPreselectAccount=Présélectionner le code comptable ConfirmPreselectAccountQuestion=Êtes-vous sûr de vouloir présélectionner les %s lignes sélectionnées avec ce code comptable ? +AmountPaidMustMatchAmountOfDownPayment=Le montant payé doit correspondre au montant de l'acompte diff --git a/htdocs/langs/fr_FR/contracts.lang b/htdocs/langs/fr_FR/contracts.lang index 8d89487c5cf..7d6bfc6f2e0 100644 --- a/htdocs/langs/fr_FR/contracts.lang +++ b/htdocs/langs/fr_FR/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contrats/Abonnements ContractsAndLine=Contrats et lignes de contrats Contract=Contrat ContractLine=Ligne de contrat +ContractLines=Lignes du contrat Closing=Fermé NoContracts=Pas de contrats MenuServices=Services @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Êtes-vous sûr de vouloir supprimer cette ligne de co MoveToAnotherContract=Déplacer le service vers un autre contrat de ce tiers. ConfirmMoveToAnotherContract=J'ai choisi le contrat cible et confirme le déplacement du service dans ce contrat. ConfirmMoveToAnotherContractQuestion=Choisissez vers quel autre contrat (du même tiers), vous voulez déplacer ce service ? -PaymentRenewContractId=Renouvellement service (numéro %s) +PaymentRenewContractId=Renouveler le contrat %s (service %s) ExpiredSince=Expiré le NoExpiredServices=Pas de services actifs expirés ListOfServicesToExpireWithDuration=Liste des services actifs expirant dans %s jours @@ -100,5 +101,8 @@ TypeContact_contrat_external_BILLING=Contact client facturation contrat TypeContact_contrat_external_CUSTOMER=Contact client suivi contrat TypeContact_contrat_external_SALESREPSIGN=Contact client signataire contrat HideClosedServiceByDefault=Masquer les services fermés par défaut +AllowOnlineSign=Autoriser la signature en ligne ShowClosedServices=Afficher les services fermés HideClosedServices=Masquer les services fermés +UserStartingService=Utilisateur démarrant le service +UserClosingService=Utilisateur stoppant le service diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang index 64bf5493285..68456166c2c 100644 --- a/htdocs/langs/fr_FR/cron.lang +++ b/htdocs/langs/fr_FR/cron.lang @@ -26,7 +26,7 @@ CronCommand=Commande CronList=Travaux planifiés CronDelete=Effacer les travaux planifiés CronConfirmDelete=Êtes-vous sûr de vouloir supprimer ces travaux planifiées? -CronExecute=Lancer la tache planifiée +CronExecute=Lancer maintenant CronConfirmExecute=Etes-vous sûr que vous voulez exécuter ces travaux planifiées maintenant? CronInfo=Le module de taches planifiés permet de planifier des tâches à exécuter automatiquement. Les travaux planifiés peuvent aussi être lancés manuellement. CronTask=Travail planifié @@ -58,7 +58,7 @@ CronNote=Commentaire CronFieldMandatory=Le champ %s est obligatoire CronErrEndDateStartDt=La date de fin ne peux être avant la date de début StatusAtInstall=Statut lors de l'installation du module -CronStatusActiveBtn=Planifier +CronStatusActiveBtn=Activer la planification CronStatusInactiveBtn=Désactiver CronTaskInactive=Ce travail est désactivé (non planifié) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Aller à la page "Accueil - Outils JobDisabled=Travail désactivé MakeLocalDatabaseDumpShort=Sauvegarde locale de base MakeLocalDatabaseDump=Créez un fichier dump de base local. Les paramètres sont: compression ('gz' ou 'bz' ou 'none'), type de sauvegarde ('mysql', 'pgsql', 'auto'), 1, 'auto' ou nom du fichier à générer, nombre de fichiers de sauvegarde à garder +MakeSendLocalDatabaseDumpShort=Envoyer la sauvegarde de la base de données locale +MakeSendLocalDatabaseDump=Envoyez la sauvegarde de la base de données locale par e-mail. Les paramètres sont : to, from, subject, message, filename (nom du fichier envoyé), filter ('sql' pour la sauvegarde de la base de données uniquement) +BackupIsTooLargeSend=Désolé, le dernier fichier de sauvegarde est trop volumineux pour être envoyé par e-mail +CleanUnfinishedCronjobShort=Nettoyer la tâche planifiée inachevée +CleanUnfinishedCronjob=Nettoyer la tâche planifiée bloquée dans le traitement lorsque le processus n'est plus en cours d'exécution WarningCronDelayed=Attention, à des fins de performance, quelle que soit la prochaine date d'exécution des travaux activés, vos travaux peuvent être retardés jusqu'à %s heures avant d'être exécutés. DATAPOLICYJob=Nettoyeur de données et anonymiseur JobXMustBeEnabled=La tâche planifiée %s doit être activée +EmailIfError=E-mail d'avertissement en cas d'erreur +ErrorInBatch=Erreur lors de l'exécution du travail %s + # Cron Boxes LastExecutedScheduledJob=Dernier travail planifié exécuté NextScheduledJobExecute=Prochaine travail planifié à exécuter NumberScheduledJobError=Nombre de travaux planifiées en erreur +NumberScheduledJobNeverFinished=Nombre de tâches planifiées jamais terminées diff --git a/htdocs/langs/fr_FR/datapolicy.lang b/htdocs/langs/fr_FR/datapolicy.lang new file mode 100644 index 00000000000..16ed7ca5933 --- /dev/null +++ b/htdocs/langs/fr_FR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Politique de confidentialité des données +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module de gestion de la confidentialité des données (conformité avec le RGPD) + +# +# Administration page +# +datapolicySetup = Configuration de la politique de confidentialité des données du module +Deletion = Suppression de données +datapolicySetupPage = En fonction des législations de vos pays (Exemple Article 5 du RGPD), les données personnelles doivent être conservées pendant une durée n'excédant pas celle nécessaire aux finalités pour lesquelles elles ont été collectées, sauf à des fins d'archivage.
    La suppression se fera automatiquement après une certaine durée sans événement (la durée que vous aurez indiquée ci-dessous). +NB_MONTHS = %s mois +ONE_YEAR = 1 an +NB_YEARS = %s ans +DATAPOLICY_TIERS_CLIENT = Client +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Client +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ni prospect/Ni client +DATAPOLICY_TIERS_FOURNISSEUR = Fournisseur +DATAPOLICY_CONTACT_CLIENT = Client +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Client +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ni prospect/Ni client +DATAPOLICY_CONTACT_FOURNISSEUR = Fournisseur +DATAPOLICY_ADHERENT = Adhérent +DATAPOLICY_Tooltip_SETUP = Type de contact - Indiquez vos choix pour chaque type. +DATAPOLICYMail = Configuration des e-mails +DATAPOLICYSUBJECTMAIL = Objet du courriel +DATAPOLICYCONTENTMAIL = Contenu de l'e-mail +DATAPOLICYSUBSITUTION = Vous pouvez utiliser les variables suivantes dans votre email (LINKACCEPT permet de créer un lien enregistrant l'accord de la personne, LINKREFUSED permet d'enregistrer le refus de la personne) : +DATAPOLICYACCEPT = Message après accord +DATAPOLICYREFUSE = Message après désaccord +SendAgreementText = Vous pouvez envoyer un e-mail RGPD à tous vos contacts concernés (qui n'ont pas encore reçu d'e-mail et pour lesquels vous n'avez rien enregistré concernant leur accord RGPD). Pour ce faire, utilisez le bouton suivant. +SendAgreement = Envoyer des emails +AllAgreementSend = Tous les e-mails ont été envoyés +TXTLINKDATAPOLICYACCEPT = Texte pour le lien "accord" +TXTLINKDATAPOLICYREFUSE = Texte pour le lien "désaccord" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = RGPD : Traitement des données personnelles +DATAPOLICY_consentement = Consentement obtenu pour le traitement des données personnelles +DATAPOLICY_opposition_traitement = S'oppose au traitement de ses données personnelles +DATAPOLICY_opposition_prospection = S'oppose au traitement de ses données personnelles à des fins de prospection + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymiser un tiers +DATAPOLICY_POPUP_ANONYME_TEXTE = Vous ne pouvez pas supprimer ce contact de Dolibarr car il y a des éléments liés. Conformément au RGPD, vous rendrez toutes ces données anonymes pour respecter vos obligations. Voulez-vous continuer ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilité RGPD +DATAPOLICY_PORTABILITE_TITLE = Exportation de données personnelles +DATAPOLICY_PORTABILITE_CONFIRMATION = Vous souhaitez exporter les données personnelles de ce contact. Êtes-vous sûr ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymisé le %s + +# V2 +DATAPOLICYReturn = Validation RGPD +DATAPOLICY_date = Date d'accord/désaccord RGPD +DATAPOLICY_send = Date d'envoi de l'e-mail d'accord +DATAPOLICYReturn = Validation RGPD +DATAPOLICY_SEND = Envoyer un e-mail RGPD +MailSent = L'email a été envoyé + +# ERROR +ErrorSubjectIsRequired = Erreur : L'objet de l'email est obligatoire. Indiquez-le dans la configuration du module +=Suite à un problème technique, nous n'avons pas pu enregistrer votre choix. Nous nous en excusons. Contactez-nous pour nous faire part de votre choix. +NUMBER_MONTH_BEFORE_DELETION = Nombre de mois avant la suppression diff --git a/htdocs/langs/fr_FR/dict.lang b/htdocs/langs/fr_FR/dict.lang index 8da0543e2c2..7c7df064619 100644 --- a/htdocs/langs/fr_FR/dict.lang +++ b/htdocs/langs/fr_FR/dict.lang @@ -29,7 +29,7 @@ CountryPT=Portugal CountrySA=Arabie Saoudite CountryMC=Monaco CountryAU=Australie -CountrySG=Singapoure +CountrySG=Singapour CountryAF=Afghanistan CountryAX=Iles Aland CountryAL=Albanie @@ -250,7 +250,9 @@ CountryMF=Saint-Martin ##### Civilities ##### CivilityMME=Madame +CivilityMMEShort=Mme. CivilityMR=Monsieur +CivilityMRShort=M. CivilityMLE=Mademoiselle CivilityMTRE=Maître CivilityDR=Docteur diff --git a/htdocs/langs/fr_FR/ecm.lang b/htdocs/langs/fr_FR/ecm.lang index f1fc5249af7..e728b754dcf 100644 --- a/htdocs/langs/fr_FR/ecm.lang +++ b/htdocs/langs/fr_FR/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Répertoire manuel ECMSectionAuto=Répertoire automatique ECMSectionsManual=Arborescence manuelle ECMSectionsAuto=Arborescence automatique +ECMSectionsMedias=Arborescence des médias ECMSections=Répertoires ECMRoot=Racine ECMNewSection=Nouveau répertoire @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Nombre de fichiers dans les sous-répertoires ECMCreationUser=Créateur ECMArea=Espace GED ECMAreaDesc=L'espace GED (Gestion Électronique de Documents) vous permet de stocker, partager et chercher rapidement tout type de documents dans Dolibarr. -ECMAreaDesc2=* Les répertoires automatiques sont alimentés automatiquement lors de l'ajout d'un document depuis une fiche objet (proposition commerciale, facture...).
    * Les répertoires manuels peuvent être utilisés pour stocker des documents divers, non liés à un objet particulier. +ECMAreaDesc2a=* Les répertoires manuels peuvent être utilisés pour enregistrer des documents non liés à un élément particulier. +ECMAreaDesc2b=* Les répertoires automatiques sont remplis automatiquement lors de l'ajout de documents depuis la page d'un élément. +ECMAreaDesc3=* Les répertoires des médias sont des fichiers dans le sous-répertoire /medias du répertoire des documents, lisibles par tout le monde sans avoir besoin d'être connecté et pas besoin d'avoir le fichier partagé explicitement. Il est utilisé pour stocker des fichiers image à partir d'un module d'e-mailing ou de site Web. ECMSectionWasRemoved=Le répertoire %s a été effacé. ECMSectionWasCreated=Le répertoire %s a été créé. ECMSearchByKeywords=Recherche par mots-clés diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index 234dc56941c..558f9ce9ce1 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=L'identifiant %s existe déjà. ErrorGroupAlreadyExists=Le groupe %s existe déjà. ErrorEmailAlreadyExists=L'e-mail %s existe déjà. ErrorRecordNotFound=Enregistrement non trouvé. +ErrorRecordNotFoundShort=Non trouvé ErrorFailToCopyFile=Echec de la copie du fichier '%s' en '%s'. ErrorFailToCopyDir=Echec de copie du répertoire '%s' vers '%s'. ErrorFailToRenameFile=Echec du renommage du fichier '%s' en '%s'. @@ -32,27 +33,28 @@ ForbiddenBySetupRules=Interdit par les règles de configuration ErrorProdIdIsMandatory=Le %s est obligatoire ErrorAccountancyCodeCustomerIsMandatory=Le code comptable du client %s est obligatoire ErrorBadCustomerCodeSyntax=La syntaxe du code client est incorrecte -ErrorBadBarCodeSyntax=Mauvaise syntaxe pour le code barre. Peut être que vous avez défini un mauvais type de code-barres ou que vous avez défini un masque de code à barres pour la numérotation qui ne correspond pas à la valeur scannée. +ErrorBadBarCodeSyntax=Mauvaise syntaxe pour le code-barres. Peut être que vous avez défini un mauvais type de code-barres ou que vous avez défini un masque de code à barres pour la numérotation qui ne correspond pas à la valeur scannée. ErrorCustomerCodeRequired=Code client obligatoire -ErrorBarCodeRequired=Code-barre requis +ErrorBarCodeRequired=Code-barres requis ErrorCustomerCodeAlreadyUsed=Code client déjà utilisé -ErrorBarCodeAlreadyUsed=Code-barre déjà utilisé -ErrorPrefixRequired=Préfix obligatoire +ErrorBarCodeAlreadyUsed=Code-barres déjà utilisé +ErrorPrefixRequired=Préfixe obligatoire ErrorBadSupplierCodeSyntax=Mauvaise syntaxe pour le code fournisseur ErrorSupplierCodeRequired=Code fournisseur obligatoire ErrorSupplierCodeAlreadyUsed=Code fournisseur déjà utilisé ErrorBadParameters=Paramètres incorrects ErrorWrongParameters=Paramètres incorrects ou manquants ErrorBadValueForParameter=Valeur '%s' incorrecte pour le paramètre '%s' -ErrorBadImageFormat=Cet image est dans un format non pris en charge (Votre PHP ne prend pas en charge les fonctions de conversion de ce format d'image). +ErrorBadImageFormat=Cette image est dans un format non pris en charge (Votre PHP ne prend pas en charge les fonctions de conversion de ce format d'image). ErrorBadDateFormat=La valeur '%s' a un format de date non reconnu -ErrorWrongDate=La date est incorrecte +ErrorWrongDate=La date est incorrecte ! ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s +ErrorFailedToBuildArchive=Échec de la création du fichier d'archive %s ErrorFoundBadEmailInFile=Syntaxe d'email incorrecte trouvée pour %s lignes dans le fichier (exemple ligne %s avec email=%s) ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des éléments de Dolibarr. ErrorFieldsRequired=Des champs obligatoire n'ont pas été remplis. ErrorSubjectIsRequired=L'objet de l'e-mail est obligatoire -ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que le user du serveur Web ait bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre safe_mode a été activé sur ce PHP, vérifiez que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web. +ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que l'utilisateur du serveur Web ait bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre safe_mode a été activé sur ce PHP, vérifiez que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web. ErrorNoMailDefinedForThisUser=Email non défini pour cet utilisateur ErrorSetupOfEmailsNotComplete=La configuration de l'envoi des e-mails n'est pas terminée ErrorFeatureNeedJavascript=Cette fonctionnalité a besoin de javascript activé pour fonctionner. Modifiez dans configuration - affichage. @@ -64,7 +66,7 @@ ErrorFunctionNotAvailableInPHP=La fonction %s est requise pour cette fonc ErrorDirAlreadyExists=Un répertoire portant ce nom existe déjà. ErrorFileAlreadyExists=Un fichier portant ce nom existe déjà. ErrorDestinationAlreadyExists=Un fichier portant le nom %s existe déjà. -ErrorPartialFile=Fichier non reçu intégralement par le serveur. +ErrorPartialFile=Fichier incomplet reçu par le serveur. ErrorNoTmpDir=Répertoire temporaire de réception %s inexistant. ErrorUploadBlockedByAddon=Upload bloqué par un plugin PHP/Apache. ErrorFileSizeTooLarge=La taille du fichier est trop grande ou le fichier n'est pas fourni. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Les valeurs de la liste de case à cochées doivent ErrorNoValueForRadioType=Les valeurs de la liste d'options doivent être renseignées ErrorBadFormatValueList=Les valeurs de la liste ne peuvent pas avoir plus d'une virgule: %s mais il en faut au moins une: clé, valeur ErrorFieldCanNotContainSpecialCharacters=Le champ %s ne peut contenir de caractères spéciaux. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ %s ne doit contenir ni caractères spéciaux ni majuscules et ne peut contenir que des chiffres. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ %s ne doit pas contenir de caractères spéciaux, ni de majuscules, et doit commencer par un caractère alphabétique (a-z) ErrorFieldMustHaveXChar=Le champ %s doit comporter au moins %s caractères. ErrorNoAccountancyModuleLoaded=Aucun module de comptabilité activé ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce lot d'export. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Le javascript ne doit pas être désactivé pour qu ErrorPasswordsMustMatch=Les 2 mots de passe saisis doivent correspondre ErrorContactEMail=Une erreur technique est apparue. Merci de contacter l'administrateur à l'email suivant %s en lui indiquant le code erreur %s dans votre message ou mieux en fournissant une copie d'écran de cette page. ErrorWrongValueForField=Champ %s: '%s' ne respecte pas la règle %s +ErrorHtmlInjectionForField=Champ %s : La valeur ' %s ' contient une donnée malveillante non autorisée ErrorFieldValueNotIn=Champ %s: '%s' n'est pas une valeur disponible dans le champ %s de la table %s ErrorFieldRefNotIn=Champ %s: '%s' n'est pas une référence existante comme %s +ErrorMultipleRecordFoundFromRef=Plusieurs enregistrements trouvés lors de la recherche à partir de la référence %s . Aucun moyen de savoir quel ID utiliser. ErrorsOnXLines=Erreurs sur %s enregistrement(s) source ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est probablement infecté par un virus) ! -ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s" ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module. ErrorQtyTooLowForThisSupplier=Quantité insuffisante pour ce fournisseur ou aucun tarif défini sur ce produit pour ce fournisseur ErrorOrdersNotCreatedQtyTooLow=Certaines commandes n'ont pas été créées en raison de quantités trop faibles @@ -105,7 +108,7 @@ ErrorBadMask=Erreur sur le masque ErrorBadMaskFailedToLocatePosOfSequence=Erreur, masque sans numéro de séquence ErrorBadMaskBadRazMonth=Erreur, mauvais valeur de remise à zéro ErrorMaxNumberReachForThisMask=Nombre maximum atteint pour ce masque -ErrorCounterMustHaveMoreThan3Digits=Le compteur doit avoir au moins 3 positions +ErrorCounterMustHaveMoreThan3Digits=Le compteur doit posséder au moins 3 chiffres ErrorSelectAtLeastOne=Erreur, sélectionnez au moins une entrée. ErrorDeleteNotPossibleLineIsConsolidated=Suppression impossible car l'enregistrement porte sur au moins une transaction bancaire rapprochée ErrorProdIdAlreadyExist=%s est attribué à un autre tiers @@ -129,9 +132,9 @@ ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'email. Impossible de continuer. ErrorBadValueForCode=Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur... ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent être tous deux négatifs ErrorFieldCantBeNegativeOnInvoice=Le champ %s ne peut pas être négatif sur ce type de facture. Si vous devez ajouter une ligne de remise, créez d'abord la remise (à partir du champ '%s' dans la fiche du tiers) et appliquez-la à la facture. -ErrorLinesCantBeNegativeForOneVATRate=Le total des lignes (HT) ne peut pas être négatif pour un taux de TVA non null donné (Un total négatif pour le taux de %s%% a été trouvé). +ErrorLinesCantBeNegativeForOneVATRate=Le total des lignes (HT) ne peut pas être négatif pour un taux de TVA non nul donné (Un total négatif pour le taux de %s%% a été trouvé). ErrorLinesCantBeNegativeOnDeposits=Les lignes ne peuvent pas être négatives dans un acompte. Si vous le faites, vous rencontrerez des problèmes lorsque vous devrez consommer l'acompte dans la facture finale. -ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas être négative dans les factures clients +ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas être négative dans les factures clients ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web %s n'a pas les permissions pour cela ErrorNoActivatedBarcode=Aucun type de code-barres activé ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive @@ -151,8 +154,8 @@ ErrorPaymentModeDefinedToWithoutSetup=Un mode de paiement a été défini de typ ErrorPHPNeedModule=Erreur, votre PHP doit avoir le module %s installé pour utiliser cette fonctionnalité. ErrorOpenIDSetupNotComplete=Vous avez configuré Dolibarr pour accepter l'authentication OpenID, mais l'URL du service OpenID n'est pas défini dans la constante %s ErrorWarehouseMustDiffers=Les entrepôts source et destination doivent être différents -ErrorBadFormat=Mauvais format -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erreur, cet adhérent n'ait pas encore lié à un tiers. Lier le tier à un tiers existant ou créer un nouveau tiers avant de créer une adhésion avec facture. +ErrorBadFormat=Mauvais format ! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erreur, cet adhérent n'est pas encore lié à un tiers. Liez le tiers à un tiers existant ou créez un nouveau tiers avant de créer une adhésion avec facture. ErrorThereIsSomeDeliveries=Erreur, il y a des bordereaux de réception liées à ces expéditions. La suppression est refusée. ErrorCantDeletePaymentReconciliated=Impossible d'effacer un paiement qui a généré une écriture sur le compte bancaire et qui a été rapprochée. ErrorCantDeletePaymentSharedWithPayedInvoice=Impossible d'effacer un paiement qui porte sur au moins une facture qui est à l'état payée. @@ -160,11 +163,11 @@ ErrorPriceExpression1=Ne peut assigner la constante '%s' ErrorPriceExpression2=Ne peut redéfinir la fonction '%s' ErrorPriceExpression3=Variable '%s' non définie dans la définition de fonction ErrorPriceExpression4=Caractère illégal '%s' -ErrorPriceExpression5=Unexpected '%s' +ErrorPriceExpression5='%s' inattendu. ErrorPriceExpression6=Nombre incorrect d'arguments (%s donné,%s attendu) ErrorPriceExpression8=Operateur '%s' non attendu ErrorPriceExpression9=Une erreur inattendue s'est produite -ErrorPriceExpression10=Il manque l'opérande à l'opérateur '%s' +ErrorPriceExpression10=Il manque l'opérande à l'opérateur '%s' ErrorPriceExpression11=Attendu '%s' ErrorPriceExpression14=Division par zéro ErrorPriceExpression17=Variable '%s' non définie @@ -186,16 +189,16 @@ ErrorGlobalVariableUpdater2=Paramètre manquant '%s' ErrorGlobalVariableUpdater3=La donnée recherché n'a pas été trouvée ErrorGlobalVariableUpdater4=Le client SOAP a échoué avec l'erreur '%s' ErrorGlobalVariableUpdater5=Pas de variable globale -ErrorFieldMustBeANumeric=Le champ %s doit être un numérique -ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fournis -ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité. Aussi, vous devez également entrer son statut +ErrorFieldMustBeANumeric=Le champ %s doit être une valeur numérique +ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fourni(s) +ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité. De plus, vous devez également entrer son statut ErrorFailedToLoadModuleDescriptorForXXX=Échec de changement de la classe descripteur du module %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Mauvaise définition du tableau Menu dans le descripteur de module (mauvaise valeur pour la clé fk_menu) ErrorSavingChanges=Une erreur est survenue lors de la sauvegarde des modifications ErrorWarehouseRequiredIntoShipmentLine=L'entrepôt est requis sur la ligne de l'expédition ErrorFileMustHaveFormat=Le fichier doit avoir le format %s ErrorFilenameCantStartWithDot=Le nom de fichier ne peut pas commencer par un '.' -ErrorSupplierCountryIsNotDefined=Le pays pour ce fournisseur n'est pas défini. Corriger cela. +ErrorSupplierCountryIsNotDefined=Le pays pour ce fournisseur n'est pas défini. Corrigez cela. ErrorsThirdpartyMerge=Echec de la fusion de 2 enregistrements. Demande annulée. ErrorStockIsNotEnoughToAddProductOnOrder=Le stock du produit %s est insuffisant pour permettre un ajout dans une nouvelle commande. ErrorStockIsNotEnoughToAddProductOnInvoice=Le stock du produit %s est insuffisant pour permettre un ajout dans une nouvelle facture. @@ -213,7 +216,7 @@ ErrorTaskAlreadyAssigned=Tâche déjà assignée à l'utilisateur ErrorModuleFileSeemsToHaveAWrongFormat=Le package du module semble avoir un mauvais format. ErrorModuleFileSeemsToHaveAWrongFormat2=Au moins un dossier obligatoire doit être présent dans l'archive zip du module : %s ou %s ErrorFilenameDosNotMatchDolibarrPackageRules=Le nom du package du module (%s) ne correspond pas à la syntaxe attendue: %s -ErrorDuplicateTrigger=Erreur, doublon du trigger nommé %s. Déjà chargé à partir de %s. +ErrorDuplicateTrigger=Erreur, doublon du déclencheur nommé %s. Déjà chargé à partir de %s. ErrorNoWarehouseDefined=Erreur, aucun entrepôts défini. ErrorBadLinkSourceSetButBadValueForRef=Le lien que vous utilisez n'est pas valide. Une 'source' pour le paiement est définie, mais la valeur pour 'ref' n'est pas valide. ErrorTooManyErrorsProcessStopped=Trop d'erreurs, Le processus a été arrêté. @@ -222,12 +225,12 @@ ErrorObjectMustHaveStatusDraftToBeValidated=L'objet %s doit être au statut 'Bro ErrorObjectMustHaveLinesToBeValidated=L'objet %s doit contenir des lignes ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Seules les factures validées peuvent être envoyées à l'aide de l'action de masse "Envoyer par courrier électronique". ErrorChooseBetweenFreeEntryOrPredefinedProduct=Vous devez choisir si l'article est un produit prédéfini ou non -ErrorDiscountLargerThanRemainToPaySplitItBefore=La réduction que vous essayez d'appliquer est supérieure au montant du paiement. Auparavant, divisez le rabais en 2 rabais plus petits. +ErrorDiscountLargerThanRemainToPaySplitItBefore=La réduction que vous essayez d'appliquer est supérieure au montant du paiement. Auparavant, divisez la remise en 2 rabais plus petits. ErrorFileNotFoundWithSharedLink=Fichier non trouvé. Peut être que la clé de partage a été modifiée ou le fichier a été récemment supprimé. -ErrorProductBarCodeAlreadyExists=Le code-barre du produit %s existe déjà sur une autre référence de produit +ErrorProductBarCodeAlreadyExists=Le code-barres du produit %s existe déjà sur une autre référence de produit ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Notez également que l'utilisation d'un kit pour augmenter ou réduire automatiquement les sous-produits n'est pas possible lorsqu'au moins un sous-produit (ou sous-produit de sous-produits) a besoin d'un numéro de série/lot. ErrorDescRequiredForFreeProductLines=La description est obligatoire pour les lignes avec un produit non prédéfini -ErrorAPageWithThisNameOrAliasAlreadyExists=La page / container %s a le même nom ou un autre alias que celui que vous tentez d'utiliser. +ErrorAPageWithThisNameOrAliasAlreadyExists=La page/container %s a le même nom ou un autre alias que celui que vous tentez d'utiliser. ErrorDuringChartLoad=Erreur lors du chargement du tableau de compte. Si certains comptes n'ont pas été chargés, vous pouvez toujours les entrer manuellement. ErrorBadSyntaxForParamKeyForContent=Mauvaise syntaxe pour le paramètre keyforcontent. La valeur doit commencer par %s ou %s ErrorVariableKeyForContentMustBeSet=Erreur, la constante nommée %s (avec le contenu de texte à afficher) ou %s (avec l'adresse externe à afficher) doit être fixée. @@ -236,11 +239,12 @@ ErrorURLMustStartWithHttp=L'URL %s doit commencer par http:// ou https:// ErrorHostMustNotStartWithHttp=L'URL %s ne doit PAS commencer par http:// ou https:// ErrorNewRefIsAlreadyUsed=Erreur, la nouvelle référence est déjà utilisée ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Erreur, supprimer le paiement lié à une facture clôturée n'est pas possible. -ErrorSearchCriteriaTooSmall=Critère de recherche trop petit. -ErrorObjectMustHaveStatusActiveToBeDisabled=Les objets doivent avoir le statut 'Actif' pour être désactivés -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Les objets doivent avoir le statut 'Brouillon' ou 'Désactivé' pour être activés +ErrorSearchCriteriaTooSmall=Critère de recherche trop court. +ErrorObjectMustHaveStatusActiveToBeDisabled=Les objets doivent avoir le statut 'Actif' pour pouvoir être désactivés +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Les objets doivent avoir le statut 'Brouillon' ou 'Désactivé' pour pouvoir être activés ErrorNoFieldWithAttributeShowoncombobox=Aucun champ n'a la propriété 'showoncombobox' dans la définition de l'objet '%s'. Pas moyen d'afficher la liste de cases à cocher ErrorFieldRequiredForProduct=Le champ '%s' est obligatoire pour le produit %s +AlreadyTooMuchPostOnThisIPAdress=Vous avez déjà trop posté sur cette adresse IP. ProblemIsInSetupOfTerminal=Le problème est dans la configuration du terminal %s. ErrorAddAtLeastOneLineFirst=Ajouter d'abord au moins une ligne ErrorRecordAlreadyInAccountingDeletionNotPossible=Erreur, l'enregistrement est déjà transféré dans la comptabilité, la suppression n'est pas possible. @@ -270,25 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Vous devez d’abord configurer votre p ErrorFailedToFindEmailTemplate=Aucun gabarit trouvé avec le code %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Durée non définie sur le service. Pas moyen de calculer le prix horaire. ErrorActionCommPropertyUserowneridNotDefined=Le propriétaire de l'utilisateur est requis -ErrorActionCommBadType=Le type d'événement sélectionné (id: %n, code: %s) n'existe pas dans le dictionnaire des types d'événement +ErrorActionCommBadType=Le type d'événement sélectionné (id : %s, code : %s) n'existe pas dans le dictionnaire des types d'événements CheckVersionFail=Échec de la vérification de version ErrorWrongFileName=Le nom du fichier ne peut pas contenir __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Pas dans le dictionnaire des conditions de paiement, veuillez modifier. ErrorIsNotADraft=%s n'est pas au statut brouillon ErrorExecIdFailed=Impossible d'exécuter la commande "id" -ErrorBadCharIntoLoginName=Caractère non autorisé dans le nom de connexion -ErrorRequestTooLarge=Erreur, requête trop conséquente +ErrorBadCharIntoLoginName=Caractère non autorisé dans le champ %s +ErrorRequestTooLarge=Erreur, demande trop volumineuse ou session expirée ErrorNotApproverForHoliday=Vous n'êtes pas l'approbateur du congé %s ErrorAttributeIsUsedIntoProduct=Cet attribut est utilisé dans une ou plusieurs variantes de produit ErrorAttributeValueIsUsedIntoProduct=Cette valeur d'attribut est utilisée dans une ou plusieurs variantes de produit ErrorPaymentInBothCurrency=Erreur, tous les montants doivent être entrés dans la même colonne. -ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Vous essayez de payer une facture en monnaie %s depuis un compte en %s -ErrorAjaxRequestFailed=La requête a échoué +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Vous essayez de payer une facture en devise %s depuis un compte en %s +ErrorInvoiceLoadThirdParty=Impossible de charger l'objet tiers pour la facture "%s" +ErrorInvoiceLoadThirdPartyKey=Clé tiers "%s" non définie pour la facture "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Supprimer une ligne n'est pas autorisée par l'état actuel de l'objet +ErrorAjaxRequestFailed=Demande échouée +ErrorThirpdartyOrMemberidIsMandatory=Définir un tiers ou un adhérent dans le partenariat est obligatoire +ErrorFailedToWriteInTempDirectory=Impossible d'écrire dans le répertoire temporaire +ErrorQuantityIsLimitedTo=La quantité est limitée à %s +ErrorFailedToLoadThirdParty=Impossible de trouver/charger un tiers à partir de id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Ce mode de paiement n'est pas un compte bancaire +ErrorStripeCustomerNotFoundCreateFirst=Le client Stripe n'est pas défini pour ce tiers (ou défini sur une valeur supprimée du côté Stripe). Créez (ou rattachez) d'abord. +ErrorCharPlusNotSupportedByImapForSearch=La recherche IMAP n'est pas en mesure de rechercher dans l'expéditeur ou le destinataire une chaîne contenant le caractère + +ErrorTableNotFound=Table %s introuvable +ErrorValueForTooLow=La valeur pour %s est trop faible +ErrorValueCantBeNull=La valeur pour %s ne peut pas être nulle +ErrorDateOfMovementLowerThanDateOfFileTransmission=La date de l'opération bancaire ne peut être inférieure à la date de transmission du fichier +ErrorTooMuchFileInForm=Trop de fichiers dans le formulaire, le nombre maximum est de %s fichier(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Votre paramètre PHP upload_max_filesize (%s) est supérieur au paramètre PHP post_max_size (%s). Ceci n'est pas une configuration cohérente. -WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur. -WarningMandatorySetupNotComplete=Cliquez ici pour configurer les paramètres obligatoires +WarningPasswordSetWithNoAccount=Un mot de passe a défini pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Ce mot de passe a donc été stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur. +WarningMandatorySetupNotComplete=Cliquez ici pour configurer les paramètres principaux WarningEnableYourModulesApplications=Cliquez ici pour activer vos modules et applications WarningSafeModeOnCheckExecDir=Attention, l'option PHP safe_mode est active, la commande doit dont être dans un répertoire déclaré dans le paramètre php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Un marque-page avec ce titre ou cette destination (URL) existe déjà. @@ -297,15 +316,15 @@ WarningConfFileMustBeReadOnly=Attention, votre fichier de configuration (htdo WarningsOnXLines=Alertes sur %s enregistrement(s) source WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera pris par défaut en attendant la correction de configuration du module. WarningLockFileDoesNotExists=Attention, une fois l'installation terminée, les outils d'installation/migration doivent être désactivés en ajoutant un fichier install.lock dans le répertoire %s. L'absence de ce fichier représente une faille de sécurité. -WarningUntilDirRemoved=Les alertes de sécurité sont visibles par les administrateurs uniquement et resteront actives tant que la vulnérabilité sera avérée (ou que la constante MAIN_REMOVE_INSTALL_WARNING aura été définie dans Configuration->Divers) +WarningUntilDirRemoved=Cet avertissement de sécurité restera actif tant que la vulnérabilité sera présente. WarningCloseAlways=Attention, la fermeture se fait même lorsque le montant diffère. N'activez cette fonctionnalité qu'en connaissance de cause. WarningUsingThisBoxSlowDown=Attention, l'utilisation de cette boîte provoque de sérieux ralentissements des pages affichant cette boîte. WarningClickToDialUserSetupNotComplete=La configuration ClickToDial pour votre compte utilisateur n'est pas complète (voir l'onglet ClickToDial sur votre fiche utilisateur) -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Fonction désactivée quand l'affichage est en mode optimisé pour les personnes aveugles ou les navigateurs textes. +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Fonction désactivée quand l'affichage est en mode optimisé pour les personnes malvoyantes ou les navigateurs textes. WarningPaymentDateLowerThanInvoiceDate=La date de paiement (%s) est inférieure à la date de facturation (%s) de la facture %s. WarningTooManyDataPleaseUseMoreFilters=Trop de données (plus de %s lignes). Utilisez davantage de filtres ou régler la constante %s pour augmenter la limite à une valeur plus élevée. WarningSomeLinesWithNullHourlyRate=Des temps ont été enregistrés par des utilisateurs lorsque leur taux horaire n'était défini. Une valeur de 0 %s a été utilisée, mais cela peut entraîner une mauvaise évaluation du temps passé. -WarningYourLoginWasModifiedPleaseLogin=Votre identifiant a été modifié. Par sécurité, vous devrez vous identifier avec votre nouvel identifiant avant l'action suivante. +WarningYourLoginWasModifiedPleaseLogin=Votre identifiant a été modifié. Par sécurité, vous devrez vous identifier avec votre nouvel identifiant avant la prochaine action. WarningAnEntryAlreadyExistForTransKey=Une donnée identique existe déjà pour la traduction du code dans cette langue WarningNumberOfRecipientIsRestrictedInMassAction=Attention, le nombre de destinataires différents est limité à %s lorsque vous utilisez les actions en masse sur les listes WarningDateOfLineMustBeInExpenseReportRange=Attention, la date de la ligne n'est pas dans la plage de la note de frais @@ -318,23 +337,26 @@ WarningCreateSubAccounts=Attention, vous ne pouvez pas créer directement un com WarningAvailableOnlyForHTTPSServers=Disponible uniquement si une connexion sécurisée HTTPS est utilisée WarningModuleXDisabledSoYouMayMissEventHere=Le module %s n’a pas été activé. Par conséquent, il se peut que vous manquiez beaucoup d’événements ici. WarningPaypalPaymentNotCompatibleWithStrict=La valeur 'Strict' fait que les fonctionnalités de paiement en ligne ne fonctionnent pas correctement. Utilisez plutôt 'Lax'. +WarningThemeForcedTo=Attention, le choix du thème a été forcé à %s par la constante cachée MAIN_FORCETHEME +WarningPagesWillBeDeleted=Attention, cela supprimera également toutes les pages/conteneurs existants du site. Vous devriez exporter votre site Web avant, afin d'avoir une sauvegarde pour le réimporter plus tard. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=La validation automatique est désactivée lorsque l'option de diminution du stock est définie sur "Validation de la facture". # Validate RequireValidValue = Valeur non valide -RequireAtLeastXString = Requiert au moins %s caractère(s) -RequireXStringMax = Requiert %s caractère(s) maximum -RequireAtLeastXDigits = Requiert au moins %s caractère(s) -RequireXDigitsMax = Requiert %scaractère(s) maximum +RequireAtLeastXString = Nécessite au moins %s caractère(s) +RequireXStringMax = Nécessite %s caractère(s) maximum +RequireAtLeastXDigits = Nécessite au moins %s caractère(s) +RequireXDigitsMax = Nécessite %scaractère(s) maximum RequireValidNumeric = Nécessite une valeur numérique RequireValidEmail = L'adresse email n'est pas valide RequireMaxLength = La longueur doit être inférieure à %s caractères RequireMinLength = La longueur doit être supérieure à %s caractère(s) -RequireValidUrl = Une URL valide est requise -RequireValidDate = Date valide requise -RequireANotEmptyValue = Est requis -RequireValidDuration = Une durée valide est requise -RequireValidExistingElement = Une valeur existante est requise -RequireValidBool = Un booléen valide est requis +RequireValidUrl = Une URL valide est demandée +RequireValidDate = Une date valide est nécessaire +RequireANotEmptyValue = Est nécessaire +RequireValidDuration = Une durée valide est nécessaire +RequireValidExistingElement = Une valeur existante est nécessaire +RequireValidBool = Un booléen valide est nécessaire BadSetupOfField = Erreur mauvaise configuration du champ BadSetupOfFieldClassNotFoundForValidation = Erreur mauvaise configuration du champ : Classe introuvable pour validation BadSetupOfFieldFileNotFound = Erreur mauvaise configuration du champ : Fichier introuvable pour l'inclusion diff --git a/htdocs/langs/fr_FR/eventorganization.lang b/htdocs/langs/fr_FR/eventorganization.lang index 496afa7d9e2..a428430c102 100644 --- a/htdocs/langs/fr_FR/eventorganization.lang +++ b/htdocs/langs/fr_FR/eventorganization.lang @@ -32,12 +32,13 @@ PaymentEvent=Paiement de l'événement # Admin page # NewRegistration=Inscription -EventOrganizationSetup=Configuration de l’organisation de l’événement +EventOrganizationSetup=Configuration de l’Organisation d’événements EventOrganization=Organisation d'événements Settings=Paramètres -EventOrganizationSetupPage = Page de configuration de l’organisation de l’événement +EventOrganizationSetupPage = Page de configuration de l’Organisation d’événements EVENTORGANIZATION_TASK_LABEL = Libellé des tâches à créer automatiquement lors de la validation du projet -EVENTORGANIZATION_TASK_LABELTooltip = Lorsque vous validez un événement organisé, certaines tâches peuvent être automatiquement créées dans le projet

    Par exemple :
    Envoyer un appel de conférence
    Envoyer un appel pour le stand
    Recevoir un appel de conférences
    Recevoir un appel de stand
    Ouvrir les inscriptions aux événements pour les participants
    Envoyer un rappel de l’événement aux conférenciers
    Envoyer un rappel de l’événement à l’animateur du stand
    Envoyer un rappel de l’événement aux participants +EVENTORGANIZATION_TASK_LABELTooltip = Lorsque vous validez un événement à organiser, certaines tâches peuvent être créées automatiquement dans le projet

    Par exemple:
    Envoyer Appel à conférences
    Envoyer Appel à Kiosques
    Valider les suggestions des conférences
    Valider les demandes de stand
    Ouvrir les inscriptions aux participants
    Envoyer un rappel de l'événement aux conférenciers
    Envoyer un rappel de l'événement aux hôtes de stands
    Envoyer un rappel de l'événement aux participants +EVENTORGANIZATION_TASK_LABELTooltip2=Laissez vide si vous n'avez pas besoin de créer des tâches automatiquement. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Catégorie à ajouter à des tiers automatiquement créée lorsque quelqu’un suggère une conférence EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Catégorie à ajouter à des tiers automatiquement créée lorsque quelqu’un suggère un stand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Modèle de courriel à envoyer après avoir reçu une suggestion de conférence. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Dans le formulaire pour créer/ajouter # Object # EventOrganizationConfOrBooth= Conférence ou stand +EventOrganizationConfOrBoothes=Conférences ou Stands ManageOrganizeEvent = Gestion d'organisation d'événements ConferenceOrBooth = Conférence ou stand ConferenceOrBoothTab = Conférence ou stand AmountPaid = Montant payé DateOfRegistration = Date d'inscription ConferenceOrBoothAttendee = Participant à la conférence ou au stand +ApplicantOrVisitor=Demandeur ou visiteur +Speaker=Conférencier # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Ici, vous pouvez voter pour une conférence ou EvntOrgRegistrationConfHelpMessage = Ici, vous pouvez suggérer une nouvelle conférence à animer pendant l'événement. EvntOrgRegistrationBoothHelpMessage = Ici, postulez pour tenir un stand pendant l'événement ListOfSuggestedConferences = Liste des conférences suggérées -ListOfSuggestedBooths = Liste des stands suggérés -ListOfConferencesOrBooths=Liste des conférences ou stands du projet événementiel +ListOfSuggestedBooths=Stands suggérés +ListOfConferencesOrBooths=Conférences ou stands de projet événementiel SuggestConference = Proposer une nouvelle conférence SuggestBooth = Proposer un stand ViewAndVote = Voir et voter pour les événements suggérés PublicAttendeeSubscriptionGlobalPage = Lien public pour l'inscription à l'événement PublicAttendeeSubscriptionPage = Lien d’inscription public à un événement MissingOrBadSecureKey = La clé de sécurité est invalide ou manquante -EvntOrgWelcomeMessage = Ce formulaire vous permet de vous inscrire en tant que nouveau participant à l'événement : %s +EvntOrgWelcomeMessage = Ce formulaire vous permet de vous inscrire en tant que nouveau participant à l'événement EvntOrgDuration = Cette conférence commence le %s et se termine le %s. ConferenceAttendeeFee = Frais de participation à la conférence pour l'événement : '%s' se produisant du %s au %s. BoothLocationFee = Frais de participation à l'événement : '%s' se produisant du %s au %s. @@ -129,7 +133,7 @@ LabelOfconference=Libellé de la conférence ConferenceIsNotConfirmed=L'inscription n'est pas autorisée, l'événement n'est pas confirmé DateMustBeBeforeThan=%s doit être avant %s DateMustBeAfterThan=%s doit être après %s - +MaxNbOfAttendeesReached=Le nombre maximum de participants a été atteint NewSubscription=Inscription OrganizationEventConfRequestWasReceived=Votre suggestion de conférence a été reçue OrganizationEventBoothRequestWasReceived=Votre demande de stand a bien été reçue @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Le règlement de votre partici OrganizationEventBulkMailToAttendees=Ceci est une rappel de votre participation à l'événement en tant que participant OrganizationEventBulkMailToSpeakers=Ceci est un rappel de votre participation à l'événement en tant que conférencier OrganizationEventLinkToThirdParty=Lier à un tiers (client, fournisseur ou partenaire) +OrganizationEvenLabelName=Nom public de la conférence ou du stand NewSuggestionOfBooth=Proposition de stand NewSuggestionOfConference=Candidature à une conférence @@ -153,7 +158,7 @@ VoteOk = Votre vote a été accepté. AlreadyVoted = Vous avez déjà voté pour cet événement. VoteError = Une erreur s'est produite lors du vote, veuillez réessayer. -SubscriptionOk = Votre inscription a été validée +SubscriptionOk=Votre inscription a été enregistrée ConfAttendeeSubscriptionConfirmation = Confirmation de votre inscription à un événement Attendee = Participant PaymentConferenceAttendee = Paiement de participation à la conférence @@ -161,7 +166,9 @@ PaymentBoothLocation = Paiement de l'emplacement du stand DeleteConferenceOrBoothAttendee=Supprimer le participant RegistrationAndPaymentWereAlreadyRecorder=Une inscription et un règlement sont déjà enregistrés pour l'e-mail %s EmailAttendee=E-mail du participant +EmailCompany=E-mail de l'entreprise EmailCompanyForInvoice=E-mail de la société pour la facturation (si différent du participant) ErrorSeveralCompaniesWithEmailContactUs=Plusieurs entreprises avec cet email ont été trouvées donc nous ne pouvons pas valider automatiquement votre inscription. Veuillez nous contacter à %s pour une validation manuelle ErrorSeveralCompaniesWithNameContactUs=Plusieurs sociétés portant ce nom ont été trouvées, nous ne pouvons donc pas valider automatiquement votre inscription. Veuillez nous contacter à %s pour une validation manuelle NoPublicActionsAllowedForThisEvent=Aucune action publique n'est ouverte au public pour cet événement +MaxNbOfAttendees=Nombre maximum de participants diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index 731d05f14ea..260bcebda1d 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Champs exportables ExportedFields=Champs à exporter ImportModelName=Nom du profil d'import ImportModelSaved=Profil d'export sauvegardé sous le nom %s. +ImportProfile=Profil d'import DatasetToExport=Lot de données à exporter DatasetToImport=Importer fichier dans la table de ChooseFieldsOrdersAndTitle=Choisissez l'ordre des champs… @@ -53,8 +54,9 @@ TypeOfLineServiceOrProduct=Type de ligne (0=produit, 1=service) FileWithDataToImport=Fichier contenant les données à importer FileToImport=Fichier source à importer FileMustHaveOneOfFollowingFormat=Le fichier à importer doit avoir un des formats suivants -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields +DownloadEmptyExampleShort=Télécharger un fichier d'exemple +DownloadEmptyExample=Téléchargez un fichier modèle avec des exemples et des informations sur les champs que vous pouvez importer +StarAreMandatory=Dans le fichier modèle, tous les champs avec un * sont des champs obligatoires ChooseFormatOfFileToImport=Choisissez le format de fichier à importer en cliquant sur le pictogramme %s pour le sélectionner… ChooseFileToImport=Ajoutez le fichier à importer puis cliquez sur le pictogramme %s pour le sélectionner comme fichier source d'import… SourceFileFormat=Format du fichier source @@ -82,7 +84,7 @@ SelectFormat=Choisir ce format de fichier import RunImportFile=Importer les données NowClickToRunTheImport=Vérifiez le résultat de la simulation. Corriger les erreurs et retester.
    Si tout est bon, lancez l'import définitif en base. DataLoadedWithId=Toutes les données seront chargées avec l'id d'importation suivant: %s pour permettre une recherche sur ce lot de donnée en cas de découverte de problèmes futurs. -ErrorMissingMandatoryValue=Donnée obligatoire non renseignée dans le fichier source, champ numéro %s. +ErrorMissingMandatoryValue=Les données obligatoires sont vides dans le fichier source dans la colonne %s. TooMuchErrors=Il y a encore %s autres lignes en erreur mais leur affichage a été limité. TooMuchWarnings=Il y a encore %s autres lignes en avertissement mais leur affichage a été limité. EmptyLine=Ligne vide (sera ignorée) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Vous pourrez retrouver les enregistrements issus d NbOfLinesOK=Nombre de lignes sans erreur ni avertissement : %s. NbOfLinesImported=Nombre de lignes importées avec succès : %s. DataComeFromNoWhere=La valeur à insérer n'est issue d'aucun champ du fichier source. -DataComeFromFileFieldNb=La valeur à insérer sera issue du champ numéro %s du fichier source. -DataComeFromIdFoundFromRef=La valeur issue du champ numéro %s du fichier source sera utilisée pour trouver l'identifiant de l'objet père à utiliser (L'objet %s ayant la réf. issue du fichier source doit donc exister dans Dolibarr). -DataComeFromIdFoundFromCodeId=Le code issu du champ numéro %s du fichier source sera utilisée pour trouver l'id de l'objet père à utiliser (Le code issue du fichier source doit donc exister dans le dictionnaire %s). Notons que si vous connaissez cet id, vous pouvez l'utiliser dans le fichier source au lieu du code. L'import fonctionnera dans les 2 cas. +DataComeFromFileFieldNb=La valeur à insérer provient de la colonne %s dans le fichier source. +DataComeFromIdFoundFromRef=La valeur qui vient du fichier source sera utilisée pour trouver l'id de l'objet parent à utiliser (donc l'objet %s qui a la réf. du fichier source doit exister dans la base de données). +DataComeFromIdFoundFromCodeId=La valeur du code provenant du fichier source sera utilisée pour trouver l'identifiant de l'objet parent à utiliser (donc le code du fichier source doit exister dans le dictionnaire %s). Notez que si vous connaissez l'identifiant, vous pouvez également l'utiliser dans le fichier source à la place du code. L'importation devrait fonctionner dans les deux cas. DataIsInsertedInto=La donnée issue du fichier source sera insérée dans le champ suivant: DataIDSourceIsInsertedInto=L'identifiant de l'objet père, retrouvé à partir de la donnée dans le fichier source, sera inséré dans le champ suivant : DataCodeIDSourceIsInsertedInto=L'identifiant de la ligne père, retrouvé à partir du code, sera inséré dans le champ suivant : @@ -132,9 +134,14 @@ FormatControlRule=Règle de contrôle de format ## imports updates KeysToUseForUpdates=Clé à utiliser pour mettre à jour les données NbInsert=Nombre de lignes insérées: %s +NbInsertSim=Nombre de lignes qui seront insérées : %s NbUpdate=Nombre de lignes mises à jour: %s +NbUpdateSim=Nombre de lignes qui seront mises à jour : %s MultipleRecordFoundWithTheseFilters=Plusieurs enregistrements ont été trouvés avec ces filtres: %s StocksWithBatch=Stocks et entrepôts des produits avec numéro de lot/série -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used -SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +WarningFirstImportedLine=La ou les premières lignes ne seront pas importées avec la sélection actuelle +NotUsedFields=Champs de la base de données non utilisés +SelectImportFieldsSource = Choisissez les champs du fichier source que vous souhaitez importer et leur champ cible dans la base de données en choisissant les champs dans chaque zone de sélection, ou sélectionnez un profil d'importation prédéfini : +MandatoryTargetFieldsNotMapped=Certains champs cibles obligatoires ne sont pas mis en correspondance +AllTargetMandatoryFieldsAreMapped=Tous les champs cibles qui ont besoin d'une valeur obligatoire sont affectés. +ResultOfSimulationNoError=Résultat de la simulation : Aucune erreur diff --git a/htdocs/langs/fr_FR/externalsite.lang b/htdocs/langs/fr_FR/externalsite.lang deleted file mode 100644 index 04f3ebd8fc8..00000000000 --- a/htdocs/langs/fr_FR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configuration du lien vers le site externe -ExternalSiteURL=URL du site externe du contenu iFrame HTML -ExternalSiteModuleNotComplete=La configuration du module "Site externe" est incomplète. -ExampleMyMenuEntry=Mon entrée de menu diff --git a/htdocs/langs/fr_FR/ftp.lang b/htdocs/langs/fr_FR/ftp.lang deleted file mode 100644 index b28f7f57e03..00000000000 --- a/htdocs/langs/fr_FR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuration du module Client FTP -NewFTPClient=Nouvelle configuration de connexion FTP -FTPArea=Espace FTP -FTPAreaDesc=Cet écran vous présente une vue de serveur FTP -SetupOfFTPClientModuleNotComplete=La configuration du module Client FTP semble incomplète -FTPFeatureNotSupportedByYourPHP=Votre PHP ne prend pas en charge les fonctions FTP -FailedToConnectToFTPServer=Échec de connexion au serveur FTP (serveur: %s, port %s) -FailedToConnectToFTPServerWithCredentials=Échec de connexion avec l'identifiant/mot de passe FTP configuré -FTPFailedToRemoveFile=Échec suppression fichier %s. -FTPFailedToRemoveDir=Échec suppression répertoire %s (Vérifiez les permissions et que le répertoire soit vide). -FTPPassiveMode=Mode passif -ChooseAFTPEntryIntoMenu=Choisissez une entrée FTP dans le menu... -FailedToGetFile=Echec à la récupération du fichier %s diff --git a/htdocs/langs/fr_FR/holiday.lang b/htdocs/langs/fr_FR/holiday.lang index 061eb3b5c77..bca4ba1dd2d 100644 --- a/htdocs/langs/fr_FR/holiday.lang +++ b/htdocs/langs/fr_FR/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=GRH Holidays=Congés +Holiday=Demande de congés CPTitreMenu=Demande de congés MenuReportMonth=État mensuel MenuAddCP=Créer demande de congés +MenuCollectiveAddCP=Nouvelle demande de congé collectif NotActiveModCP=Vous devez activer le module Congés pour afficher cette page. AddCP=Créer une demande de congés DateDebCP=Date Début @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirmer la suppression de cette demande de congés ? ErrorCantDeleteCP=Erreur, vous n'avez pas le droit de supprimer cette demande de congés. CantCreateCP=Erreur, vous n'avez pas le droit de créer une demande de congés. InvalidValidatorCP=Vous devez choisir un approbateur pour votre demande de congés. +InvalidValidator=L'utilisateur choisi n'est pas un approbateur. NoDateDebut=Vous devez choisir une date de début. NoDateFin=Vous devez choisir une date de fin. ErrorDureeCP=Votre demande de congés payés ne contient aucun jour ouvré. @@ -79,6 +82,8 @@ MotifCP=Motif UserCP=Utilisateur ErrorAddEventToUserCP=Une erreur est survenue durant l'ajout du congé exceptionnel. AddEventToUserOkCP=L'ajout du congé exceptionnel à bien été effectué. +ErrorFieldRequiredUserOrGroup=Le champ "groupe" ou le champ "utilisateur" doivent être remplis +fusionGroupsUsers=Le champ "groupes" et le champ "utilisateur" seront fusionnés MenuLogCP=Voir historique modif. LogCP=Historique des mises à jour de jours de congés disponibles ActionByCP=Réalisée par @@ -86,6 +91,13 @@ UserUpdateCP=Mis à jour pour PrevSoldeCP=Précédent Solde NewSoldeCP=Nouveau Solde alreadyCPexist=Une demande de congés a déjà été faite sur cette période. +UseralreadyCPexist=Une demande de congé a déjà été faite pour cette période pour %s. +groups=Groupes +users=Utilisateurs +AutoSendMail=Envoi automatique d'email +NewHolidayForGroup=Nouvelle demande de congé collectif +SendRequestCollectiveCP=Envoyer la demande de congé collectif +AutoValidationOnCreate=Validation automatique FirstDayOfHoliday=Premier jour de congés LastDayOfHoliday=Dernier jour de congés BoxTitleLastLeaveRequests=Les %s dernières demandes de congés modifiées @@ -134,6 +146,13 @@ HolidaysToApprove=Vacances à approuver NobodyHasPermissionToValidateHolidays=Aucun utilisateur ne dispose des permissions pour valider les demandes de congés HolidayBalanceMonthlyUpdate=Mise à jour mensuelle du solde des congés XIsAUsualNonWorkingDay=%s est généralement un jour NON ouvrable -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative +BlockHolidayIfNegative=Bloqué lorsque le solde est négatif +LeaveRequestCreationBlockedBecauseBalanceIsNegative=La création de cette demande de congé est bloquée car votre solde est négatif ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=La demande de congé %s doit être brouillon, annulée ou refusée pour être supprimée +IncreaseHolidays=Augmenter le nombre de jours de vacances +HolidayRecordsIncreased= %s registres de vacances augmentés +HolidayRecordIncreased=Registre de vacances augmenté +ConfirmMassIncreaseHoliday=Augmentation en masse des vacances +NumberDayAddMass=Nombre de jours à ajouter à la sélection +ConfirmMassIncreaseHolidayQuestion=Êtes-vous sûr de vouloir augmenter les vacances du ou des enregistrement(s) sélectionnés %s ? +HolidayQtyNotModified=Le solde des jours restants pour %s n'a pas été modifié diff --git a/htdocs/langs/fr_FR/hrm.lang b/htdocs/langs/fr_FR/hrm.lang index 4a640a2e639..37fcf986485 100644 --- a/htdocs/langs/fr_FR/hrm.lang +++ b/htdocs/langs/fr_FR/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Etablissement ouvert CloseEtablishment=Etablissement fermé # Dictionary DictionaryPublicHolidays=Congés - jours fériés -DictionaryDepartment=GRH - Liste des départements +DictionaryDepartment=HRM - Unité organisationnelle DictionaryFunction=GRH - Liste des fonctions # Module Employees=Salariés @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=Description par défaut des rangs lors de la créa deplacement=Ctrl DateEval=Date d'évaluation JobCard=Fiche emploi -JobPosition=Emploi -JobsPosition=Emplois +JobPosition=Profil de poste +JobsPosition=Profils de poste NewSkill=Nouvelle compétence SkillType=Type de compétence Skilldets=Liste des niveaux pour cette compétence @@ -70,9 +70,9 @@ RequiredSkills=Compétences requises pour cet emploi UserRank=Niveau employé SkillList=Liste compétence SaveRank=Sauvegarder niveau -knowHow=Savoir comment -HowToBe=Comment être -knowledge=Connaissances +TypeKnowHow=Savoir comment +TypeHowToBe=Comment être +TypeKnowledge=Connaissances AbandonmentComment=Commentaire sur l'abandon DateLastEval=Date dernière évaluation NoEval=Aucune évaluation effectuée pour cet employé @@ -88,3 +88,5 @@ DeleteSkill = Compétence supprimée SkillsExtraFields=Attributs supplémentaires (Compétences) JobsExtraFields=Attributs supplémentaires (Emplois) EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Besoin de déplacements professionnels +NoDescription=Pas de description diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang index 5c926a4b5da..f8eeeef324d 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -4,12 +4,12 @@ MiscellaneousChecks=Vérification des prérequis ConfFileExists=Le fichier de configuration %s existe. ConfFileDoesNotExistsAndCouldNotBeCreated=Le fichier de configuration %s n'existe pas et n'a pu être créé ! ConfFileCouldBeCreated=Le fichier de configuration %s a pu être créé. -ConfFileIsNotWritable=Le fichier %s n'est pas modifiable. Pour une première installation, modifiez ses permissions. Le serveur Web doit avoir le droit d'écrire dans ce fichier le temps de la configuration ("chmod 666" par exemple sur un OS compatible Unix). +ConfFileIsNotWritable=Le fichier de configuration %s n'est pas modifiable. Pour une première installation, votre serveur web doit avoir le droit d'écrire dans ce fichier le temps de la configuration ("chmod 666" par exemple sur un OS compatible Unix). ConfFileIsWritable=Le fichier %s est modifiable. ConfFileMustBeAFileNotADir=Le fichier de configuration %s doit être un fichier, pas un répertoire. ConfFileReload=Rechargement des paramètres depuis le fichier de configuration. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. -PHPSupportPOSTGETOk=Ce PHP prend bien en charge les variables POST et GET. +NoReadableConfFileSoStartInstall=Le fichier de configuration conf/conf.php n'existe pas ou n'est pas lisible. Le processus d'installation va être lancé pour essayer de l'initialiser. +PHPSupportPOSTGETOk=Ce PHP prend en charge les variables POST et GET. PHPSupportPOSTGETKo=Il est possible que votre configuration PHP ne supporte pas les variables POST et / ou GET. Vérifiez le paramètre variables_order dans le fichier php.ini. PHPSupportSessions=Ce PHP prend en charge les sessions. PHPSupport=Ce PHP prend en charge les fonctions %s. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Vous avez peut-être saisi une mauvaise valeur pour ErrorFailedToCreateDatabase=Échec de la création de la base '%s'. ErrorFailedToConnectToDatabase=Échec de connexion à la base '%s'. ErrorDatabaseVersionTooLow=Version de base de donnée (%s) trop ancienne. La version %s ou supérieure est requise. -ErrorPHPVersionTooLow=Version de PHP trop ancienne. La version %s est requise. +ErrorPHPVersionTooLow=Version PHP trop ancienne. La version %s ou supérieure est requise. +ErrorPHPVersionTooHigh=Version PHP trop élevée. La version %s ou inférieure est requise. ErrorConnectedButDatabaseNotFound=Connexion au serveur réussie mais base '%s' introuvable. ErrorDatabaseAlreadyExists=La base de données '%s' existe déjà. +ErrorNoMigrationFilesFoundForParameters=Aucun fichier de migration trouvé pour les versions sélectionnées IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base n'existe pas, revenez en arrière et cochez l'option "Créer la base de données". IfDatabaseExistsGoBackAndCheckCreate=Si la base existe déjà, revenez en arrière et désactiver l'option "Créer la base de données". WarningBrowserTooOld=Version du navigateur trop ancienne. Nous vous recommandons de mettre à jour vers une version récente de Firefox, Chrome ou Opera. @@ -49,7 +51,6 @@ DatabaseName=Nom de la base de données DatabasePrefix=Préfixe des tables DatabasePrefixDescription=Préfixe de table de base de données. Si vide, la valeur par défaut est llx_. AdminLogin=Identifiant du propriétaire de la base de données Dolibarr. -PasswordAgain=Vérification du mot de passe AdminPassword=Mot de passe du propriétaire de la base de données Dolibarr. CreateDatabase=Créer la base de données CreateUser=Créer le propriétaire ou lui affecter les droits à la base @@ -211,3 +212,6 @@ ClickHereToGoToApp=Cliquez ici pour aller sur votre application ClickOnLinkOrRemoveManualy=Si une mise à niveau est en cours, veuillez patienter. Si non, cliquez sur le lien suivant. Si vous atteignez toujours cette page, vous devez supprimer manuellement le fichier install.lock dans le répertoire documents Loaded=Chargé FunctionTest=Fonction test +NodoUpgradeAfterDB=Aucune action demandée par les modules externes après la mise à jour de la base de données +NodoUpgradeAfterFiles=Aucune action demandée par les modules externes après la mise à jour des fichiers ou des répertoires +MigrationContractLineRank=Migrer la ligne de contrat pour utiliser le classement (et activer la réorganisation) diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang index 50e6ff1d9d1..9ef05378f60 100644 --- a/htdocs/langs/fr_FR/interventions.lang +++ b/htdocs/langs/fr_FR/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Êtes-vous sur de vouloir ré-ouvrir l'intervention %s . Essayer d'en envoyer plus peut entraîner le ralentissement ou la suspension de votre instance. Veuillez contacter votre support si vous avez besoin d'un quota plus élevé. diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index 41b6188e16e..f6062f39db3 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Pas de modèle défini pour ce type d'email AvailableVariables=Variables de substitution disponibles NoTranslation=Pas de traduction Translation=Traduction +Translations=Traductions CurrentTimeZone=Fuseau horaire PHP (serveur) EmptySearchString=Entrez des critères de recherche non vides EnterADateCriteria=Saisissez une date @@ -199,6 +206,7 @@ Valid=Valider Approve=Approuver Disapprove=Désapprouver ReOpen=Réouvrir +OpenVerb=Ouvert Upload=Envoyer fichier ToLink=Lier Select=Sélectionner @@ -216,7 +224,7 @@ UserGroup=Groupe d'utilisateurs UserGroups=Groupes d'utilisateurs NoUserGroupDefined=Pas de groupe utilisateur défini Password=Mot de passe -PasswordRetype=Retaper le mot de passe +PasswordRetype=Ressaisir le mot de passe NoteSomeFeaturesAreDisabled=Notez que de nombreuses fonctionnalités ne sont pas activées sur le site de démonstration. Name=Nom NameSlashCompany=Nom / Société @@ -481,6 +489,7 @@ ActionsOnContact=Événements à propos de ce contact/adresse ActionsOnContract=Événements pour ce contrat ActionsOnMember=Événements vis à vis de cet adhérent ActionsOnProduct=Événements liés au produit +ActionsOnAsset=Événements pour cette immobilisation NActionsLate=%s en retard ToDo=À faire Completed=Terminé @@ -621,7 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Fichiers et documents joints JoinMainDoc=Joindre le document principal -JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found +JoinMainDocOrLastGenerated=Envoyer le document principal ou le dernier généré s'il n'est pas trouvé DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -712,6 +721,7 @@ FeatureDisabled=Fonction désactivée MoveBox=Déplacer le widget Offered=Offert NotEnoughPermissions=Vous n'avez pas les permissions pour cette action +UserNotInHierachy=Cette action est réservée aux superviseurs de cet utilisateur SessionName=Nom session Method=Méthode Receive=Réceptionner @@ -801,6 +811,7 @@ URLPhoto=URL de la photo/logo SetLinkToAnotherThirdParty=Lier vers un autre tiers LinkTo=Lier à LinkToProposal=Lier à une proposition commerciale +LinkToExpedition= Lien vers l'expédition LinkToOrder=Lier à une commande LinkToInvoice=Lier à une facture LinkToTemplateInvoice=Lien vers le modèle de facture @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Lien de téléchargement privé PrivateDownloadLinkDesc=Vous devez être connecté et vous avez besoin d’autorisations pour afficher ou télécharger le fichier Download=Téléchargement DownloadDocument=Télécharger le document +DownloadSignedDocument=Télécharger le document signé ActualizeCurrency=Mettre à jour le taux de devise Fiscalyear=Exercice fiscal ModuleBuilder=Générateur de Module et Application @@ -1044,6 +1056,7 @@ SearchIntoContracts=Contrats SearchIntoCustomerShipments=Expéditions clients SearchIntoExpenseReports=Notes de frais SearchIntoLeaves=Congés +SearchIntoKM=Base de connaissance SearchIntoTickets=Tickets SearchIntoCustomerPayments=Règlements clients SearchIntoVendorPayments=Règlements fournisseurs @@ -1136,14 +1149,28 @@ UpdateForAllLines=Mise à jour de toutes les lignes OnHold=En attente Civility=Civilité AffectTag=Affecter un tag/catégorie +AffectUser=Attribuer un utilisateur +SetSupervisor=Définir le responsable CreateExternalUser=Créer utilisateur externe -ConfirmAffectTag=Affecter les tags en masse -ConfirmAffectTagQuestion=Êtes-vous sur de vouloir affecter ces catégories aux %s lignes sélectionnées ? +ConfirmAffectTag=Attribution de balises en masse +ConfirmAffectUser=Affectation d'utilisateurs en masse +ProjectRole=Rôle attribué sur chaque projet +TasksRole=Rôle attribué sur chaque tâche de chaque projet +ConfirmSetSupervisor=Ensemble de superviseur en vrac +ConfirmUpdatePrice=Choisissez un taux de prix d'augmentation/diminution +ConfirmAffectTagQuestion=Voulez-vous vraiment attribuer des balises aux enregistrements sélectionnés %s ? +ConfirmAffectUserQuestion=Voulez-vous vraiment affecter des utilisateurs aux enregistrements sélectionnés %s ? +ConfirmSetSupervisorQuestion=Êtes-vous sûr de vouloir définir le superviseur sur le ou les enregistrements sélectionnés %s ? +ConfirmUpdatePriceQuestion=Voulez-vous vraiment mettre à jour le prix du ou des enregistrements %s sélectionnés ? CategTypeNotFound=Aucun type de tag trouvé pour ce type d'enregistrements +Rate=Taux +SupervisorNotFound=Superviseur introuvable CopiedToClipboard=Copié dans le presse-papier InformationOnLinkToContract=Ce montant n’est que le total de toutes les lignes du contrat. Aucune notion de temps n’est prise en considération. ConfirmCancel=Êtes-vous sûr de vouloir annuler EmailMsgID=E-mail MsgID +EmailDate=Date de l'e-mail +SetToStatus=Définir sur le statut %s SetToEnabled=Définir sur activé SetToDisabled=Définir sur désactivé ConfirmMassEnabling=confirmation d'activation en masse @@ -1172,8 +1199,14 @@ Terminated=Résilié AddLineOnPosition=Ajouter une ligne à la position (si vide: à la fin) ConfirmAllocateCommercial=Confirmation d'assignation d'un commercial ConfirmAllocateCommercialQuestion=Etes-vous sûr de vouloir assigner l'enregistrement %s sélectionné ? -CommercialsAffected=Commercial affecté au tiers -CommercialAffected=Commercial affecté au tiers +CommercialsAffected=Des commerciaux affectés +CommercialAffected=Représentant des ventes affecté YourMessage=Votre message YourMessageHasBeenReceived=Votre message a été reçu. Nous vous répondrons ou vous contacterons dans les plus brefs délais. -UrlToCheck=Url to check +UrlToCheck=URL à vérifier +Automation=Automatisation +CreatedByEmailCollector=Créé par Collecteur d'e-mails +CreatedByPublicPortal=Créé à partir du portail public +UserAgent=User Agent +InternalUser=Utilisateur interne +ExternalUser=Utilisateur externe diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index a6f805daca6..024cef5226b 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -15,7 +15,8 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Un autre adhérent (nom: %s, i ErrorUserPermissionAllowsToLinksToItselfOnly=Pour des raisons de sécurité, il faut posséder les droits de modification de tous les utilisateurs pour pouvoir lier un adhérent à un utilisateur autre que vous même. SetLinkToUser=Lier à un utilisateur Dolibarr SetLinkToThirdParty=Lier à un tiers Dolibarr -MembersCards=Generation of cards for members +MemberCountersArePublic=Les compteurs des membres valides sont publics +MembersCards=Génération de cartes pour les membres MembersList=Liste des adhérents MembersListToValid=Liste des adhérents brouillons (à valider) MembersListValid=Liste des adhérents valides @@ -35,7 +36,9 @@ DateEndSubscription=Date fin adhésion EndSubscription=Fin adhésion SubscriptionId=Id adhésion WithoutSubscription=Sans adhésion -MemberId=Id adhérent +WaitingSubscription=Adhésion en attente +MemberId=ID adhérent +MemberRef=Réf adhérent NewMember=Nouvel adhérent MemberType=Type d'adhérent MemberTypeId=Id type adhérent @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Ce type d'adhérent ne peut pas être supprimé NewSubscription=Nouvelle cotisation NewSubscriptionDesc=Ce formulaire permet de vous inscrire comme nouvel adhérent de l'association. Pour un renouvellement (si vous êtes déjà adhérent), contactez plutôt l'association par email %s. Subscription=Adhésion / cotisation +AnyAmountWithAdvisedAmount=N'importe quel montant de votre choix, recommandé %s +AnyAmountWithoutAdvisedAmount=Tout montant de votre choix +CanEditAmountShort=Tout montant +CanEditAmountShortForValues=recommandé, tout montant +MembershipDuration=Durée +GetMembershipButtonLabel=Rejoindre Subscriptions=Adhésions / cotisations SubscriptionLate=En retard SubscriptionNotReceived=Cotisation non reçue @@ -83,8 +92,8 @@ WelcomeEMail=Email de bienvenue SubscriptionRequired=Soumis à cotisation DeleteType=Supprimer VoteAllowed=Vote autorisé -Physical=Personne physique -Moral=Personne morale +Physical=Physique +Moral=Morale MorAndPhy=Personnes morales et physiques Reenable=Réactiver ExcludeMember=Exclure un adhérent @@ -135,7 +144,7 @@ CardContent=Contenu de votre fiche adhérent # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Nous vous informons que votre demande d'adhésion a bien été reçue.

    ThisIsContentOfYourMembershipWasValidated=Nous vous informons que votre adhésion a été validé avec les informations suivantes:

    -ThisIsContentOfYourSubscriptionWasRecorded=Nous vous informons que votre nouvelle cotisation a été enregistrée.

    +ThisIsContentOfYourSubscriptionWasRecorded=Nous voulons vous informer que votre nouvelle cotisation a été enregistrée. Veuillez trouver votre facture ci-jointe.

    ThisIsContentOfSubscriptionReminderEmail=Nous voulons vous informer que votre adhésion est sur le point d'expirer ou a déjà expiré (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Nous espérons que vous pourrez la renouveler, votre soutien nous est précieux.

    ThisIsContentOfYourCard=Ceci est un rappel des informations que nous avons vous concernant. N'hésitez pas à nous contacter en cas d'erreur.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Sujet de l'email reçu en cas d'auto-inscription d'un invité @@ -163,7 +172,7 @@ MoreActionsOnSubscription=Action complémentaire proposée par défaut lors de l MoreActionBankDirect=Création une écriture directe sur le compte bancaire ou caisse MoreActionBankViaInvoice=Créer une facture avec paiement sur compte bancaire ou caisse MoreActionInvoiceOnly=Création facture sans paiement -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Génération de cartes de visite ou de feuilles d'adresses LinkToGeneratedPagesDesc=Cet écran vous permet de générer des planches de cartes de visite ou d'étiquettes d'adresses pour chaque adhérent ou pour un adhérent en particulier. DocForAllMembersCards=Génération de cartes pour tous les adhérents DocForOneMemberCards=Génération de cartes pour un adhérent particulier @@ -198,8 +207,10 @@ NbOfSubscriptions=Nombre de cotisations AmountOfSubscriptions=Montant des cotisations TurnoverOrBudget=Chiffre affaire (pour société) ou Budget (asso ou collectivité) DefaultAmount=Montant par défaut de la cotisation -CanEditAmount=Le visiteur peut modifier / choisir le montant de sa cotisation -MEMBER_NEWFORM_PAYONLINE=Rediriger sur la page intégrée de paiement en ligne +CanEditAmount=Le montant de l'abonnement est gratuit +CanEditAmountDetail=Le visiteur peut choisir/modifier le montant de sa contribution quel que soit le type d'adhérent +AmountIsLowerToMinimumNotice=Le montant est inférieur au montant minimum de %s +MEMBER_NEWFORM_PAYONLINE=Après l'inscription en ligne, basculez automatiquement sur la page de paiement en ligne ByProperties=Par nature MembersStatisticsByProperties=Statistiques des adhérents par nature VATToUseForSubscriptions=Taux de TVA pour les cotisations @@ -218,3 +229,6 @@ XExternalUserCreated=%s utilisateur(s) externe(s) créé(s) ForceMemberNature=Forcer la nature de l'adhérent (personne physique ou morale) CreateDolibarrLoginDesc=La création d'un login utilisateur pour les membres leur permet de se connecter à l'application. En fonction des autorisations accordées, ils pourront par exemple consulter ou modifier eux-mêmes leur dossier. CreateDolibarrThirdPartyDesc=Un tiers est l'entité juridique qui sera utilisée sur la facture si vous décidez de générer une facture pour chaque cotisation. Vous pourrez le créer plus tard au cours du processus d'enregistrement de la cotisation. +MemberFirstname=Prénom du membre +MemberLastname=Nom de famille du membre +MemberCodeDesc=Code membre, unique pour tous les membres diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang index c7781d948ce..9cd5fe23a00 100644 --- a/htdocs/langs/fr_FR/modulebuilder.lang +++ b/htdocs/langs/fr_FR/modulebuilder.lang @@ -1,17 +1,19 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= ID module ModuleBuilderDesc=Cet outil ne doit être utilisé que par des utilisateurs ou des développeurs expérimentés. Il fournit des utilitaires pour construire ou éditer votre propre module. La documentation pour le développement manuel alternatif est ici . -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +EnterNameOfModuleDesc=Entrez le nom du module/application à créer sans espaces. Utilisez des majuscules pour séparer les mots (Par exemple: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Renseignez le nom de l'objet à créer, sans utiliser d'espace. Utilisez des majuscules pour séparer les termes (par exemple : MyObject, Student, Teacher...). Le fichier de classe CRUD, les pages pour lister/ajouter/modifier/supprimer l'objet et les fichiers SQL seront générés. +EnterNameOfDictionaryDesc=Entrez le nom du dictionnaire à créer sans espaces. Utilisez des majuscules pour séparer les mots (Par exemple : MyDico...). Le fichier de classe, mais aussi le fichier SQL seront générés. ModuleBuilderDesc2=Chemin ou les modules sont générés/modifiés (premier répertoire pour les modules externes défini dans %s):%s ModuleBuilderDesc3=Modules générés/éditables trouvés : %s ModuleBuilderDesc4=Un module est détecté comme 'modifiable' quand le fichier %s existe à la racine du répertoire du module NewModule=Nouveau module NewObjectInModulebuilder=Nouvel objet -NewDictionary=New dictionary +NewDictionary=Nouveau dictionnaire +ModuleName=Nom du module ModuleKey=Clé du module ObjectKey=Clé de l'objet -DicKey=Dictionary key +DicKey=Clé du dictionnaire ModuleInitialized=Module initialisé FilesForObjectInitialized=Fichiers pour le nouvel objet '%s' initialisés FilesForObjectUpdated=Les fichiers pour l'objet '%s' ont été mis à jour ( fichiers .sql et .class.php ) @@ -48,14 +50,17 @@ PathToModulePackage=Chemin du zip du package du module/application PathToModuleDocumentation=Chemin d'accès au fichier de documentation du module (%s) SpaceOrSpecialCharAreNotAllowed=Les espaces et les caractères spéciaux ne sont pas autorisés. FileNotYetGenerated=Fichier non encore généré +GenerateCode=Générer le code RegenerateClassAndSql=Forcer la mise à jour des fichiers .class et .sql RegenerateMissingFiles=Générer les fichiers manquant SpecificationFile=Fichier de documentation LanguageFile=Fichier langue ObjectProperties=Propriétés de l'objet +Property=Propriété +PropertyDesc=Une propriété est un attribut qui caractérise un objet. Cet attribut a un code, un libellé et un type avec plusieurs options. ConfirmDeleteProperty=Voulez-vous vraiment supprimer la propriété %s ? Cela modifiera le code de la classe PHP, mais supprimera également la colonne de la définition de la table de l'objet. NotNull=Non NULL -NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +NotNullDesc=1=Définir la base de données sur NOT NULL, 0=Autoriser les valeurs nulles, -1=Autoriser les valeurs nulles en forçant la valeur à NULL si vide ('' ou 0) SearchAll=Utilisé par la "recherche globale" DatabaseIndex=Index en base FileAlreadyExists=Le fichier %s existe déjà @@ -81,15 +86,16 @@ IsAMeasure=Est une mesure DirScanned=Répertoire scanné NoTrigger=Pas de trigger NoWidget=Aucun widget -GoToApiExplorer=Explorateur d'API +ApiExplorer=Explorateur d'API ListOfMenusEntries=Liste des entrées du menu ListOfDictionariesEntries=Liste des entrées de dictionnaires ListOfPermissionsDefined=Liste des permissions SeeExamples=Voir des exemples ici -EnabledDesc=Condition pour que ce champ soit actif (Exemples: 1 ou $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Le champ est-il visible ? (Exemples: 0 = Jamais visible, 1 = Visible sur les listes et formulaires de création/mise à jour/visualisation, 2 = Visible uniquement sur la liste, 3 = Visible uniquement sur le formulaire de création/mise à jour/affichage (pas les listes), 4=Visible sur les listes et formulaire de mise à jour et affichage uniquement (pas en création), 5=Visible sur les listes et formulaire en lecture (pas en création ni modification).

    Utiliser une valeur négative signifie que le champ n'est pas affiché par défaut sur la liste mais peut être sélectionné pour l'affichage).

    Il peut s'agir d'une expression, par exemple :
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Afficher ce champ sur les documents PDF compatibles, vous pouvez gérer la position avec le champ "Position.
    Actuellement, les modèles compatibles PDF connus sont : eratostene (commande), espadon (expédition), sponge (factures), cyan (devis/propositions commerciales), cornas (commande fournisseur)

    Pour le document :
    0 = non affiché
    1 = affiché
    2 = affiché uniquement si non vide

    Pour les lignes de document :
    0 = non affiché
    1 = affiché dans une colonne
    3 = affiché dans la colonne description après la description
    4 = affiché dans la colonne description après la description uniquement si non vide -DisplayOnPdf=Afficher sur PDF +EnabledDesc=Condition pour que ce champs soit actif.

    Exemples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Le champ est-il visible ? (Exemples : 0=Jamais visible, 1=Visible sur la liste et les formulaires de création/mise à jour/affichage, 2=Visible sur la liste uniquement, 3=Visible sur le formulaire de création/mise à jour/affichage uniquement (pas la liste), 4=Visible sur la liste et formulaire de mise à jour/affichage uniquement (pas de création), 5=Visible sur le formulaire d'affichage de fin de liste uniquement (pas de création, pas de mise à jour). +ItCanBeAnExpression=Cela peut être une expression. Exemple :
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Affichez ce champ sur les documents PDF compatibles, vous pouvez gérer la position avec le champ "Position".
    Pour le document :
    0 = non affiché
    1 = affiché
    2 = affiché uniquement si non vide

    Pour les lignes de document :
    0 = non affiché
    1 = affiché dans une colonne
    3 = affiché dans la colonne description après la description
    4 = affiché dans la colonne description après la description uniquement si non vide +DisplayOnPdf=Sur les PDF IsAMeasureDesc=Peut-on cumuler la valeur du champ pour obtenir un total dans les listes ? (Exemples: 1 ou 0) SearchAllDesc=Le champ doit-il être utilisé pour effectuer une recherche à partir de l'outil de recherche rapide ? (Exemples: 1 ou 0) SpecDefDesc=Entrez ici toute la documentation que vous souhaitez joindre au module et qui n'a pas encore été définis dans d'autres onglets. Vous pouvez utiliser .md ou, mieux, la syntaxe enrichie .asciidoc. @@ -105,7 +111,7 @@ TriggerDefDesc=Définissez dans le fichier trigger le code que vous souhaitez ex SeeIDsInUse=Voir les IDs utilisés dans votre installation SeeReservedIDsRangeHere=Voir la plage des ID réservés ToolkitForDevelopers=Boîte à outils pour développeurs Dolibarr -TryToUseTheModuleBuilder=Si vous connaissez SQL et PHP, vous pouvez utiliser l'assistant de création de module natif.
    Activez le module %s et utilisez l'assistant en cliquant sur la . dans le menu en haut à droite.
    Avertissement: Il s'agit d'une fonctionnalité avancée pour les développeurs. Ne pas expérimenter sur votre site de production! +TryToUseTheModuleBuilder=Si vous connaissez SQL et PHP, vous pouvez utiliser l'assistant de création de module natif.
    Activez le module %s et utilisez l'assistant en cliquant sur la dans le menu en haut à droite.
    Avertissement: Il s'agit d'une fonctionnalité avancée pour les développeurs. Ne pas expérimenter sur votre site de production! SeeTopRightMenu=Voir à droite de votre barre de menu principal AddLanguageFile=Ajouter le fichier de langue YouCanUseTranslationKey=Vous pouvez utiliser ici une clé qui est la clé de traduction trouvée dans le fichier de langue (voir l'onglet "Langues") @@ -130,26 +136,32 @@ UseSpecificEditorURL = Utiliser une URL d'éditeur spécifique UseSpecificFamily = Utiliser une famille spécifique UseSpecificAuthor = Utiliser un auteur spécifique UseSpecificVersion = Utiliser une version initiale spécifique -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeRefGeneration=La référence de l'objet doit être générée automatiquement par des règles de numérotation personnalisées +IncludeRefGenerationHelp=Cochez cette case si vous souhaitez inclure du code pour gérer automatiquement la génération de la référence à l'aide de règles de numérotation personnalisées +IncludeDocGeneration=Je souhaite la fonctionnalité pour générer des documents (PDF, ODT) à partir de modèles pour cet objet IncludeDocGenerationHelp=Si vous cochez cette case, du code sera généré pour ajouter une section "Générer un document" sur la fiche de l'objet. -ShowOnCombobox=Afficher la valeur dans la liste déroulante +ShowOnCombobox=Afficher la valeur dans les listes déroulantes KeyForTooltip=Clé pour l'info-bulle CSSClass=CSS pour le formulaire d'édition / création CSSViewClass=CSS pour le formulaire de lecture CSSListClass=CSS pour la liste NotEditable=Non éditable ForeignKey=Clé étrangère -TypeOfFieldsHelp=Type de champs :
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' signifie que nous ajoutons un bouton + après le combo pour créer l'enregistrement
    'filter' est une condition sql, exemple : 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=Si la valeur de ce champ doit être garantie existe dans une autre table. Saisissez ici une valeur correspondant à la syntaxe : nomtable.champparentàvérifier +TypeOfFieldsHelp=Exemple :
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    ' 1' signifie que nous ajoutons un bouton + après le combo pour créer l'enregistrement
    'filter' est une condition sql, exemple : 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=Il s'agit du type de champ/attribut. AsciiToHtmlConverter=Convertisseur Ascii en HTML AsciiToPdfConverter=Convertisseur Ascii en PDF TableNotEmptyDropCanceled=La table n’est pas vide. La suppression a été annulée. ModuleBuilderNotAllowed=Le module builder est activé mais son accès n'est pas autorisé pour votre utilisateur ImportExportProfiles=Profils d'import et d'export -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Définissez ceci sur 1 si vous souhaitez que la méthode $this->validateField() de l'objet soit appelée pour valider le contenu du champ lors de l'insertion ou de la mise à jour. Définissez 0 si aucune validation n'est requise. WarningDatabaseIsNotUpdated=Attention : La base de données n'est pas mise à jour automatiquement, vous devez détruire les tables et désactiver-activer le module pour que les tables soient recréées LinkToParentMenu=Menu parent (fk_xxxxmenu) -ListOfTabsEntries=List of tab entries -TabsDefDesc=Define here the tabs provided by your module -TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +ListOfTabsEntries=Liste des entrées d'onglet +TabsDefDesc=Définissez ici les onglets proposés par votre module +TabsDefDescTooltip=Les onglets fournis par votre module/application sont définis dans le tableau $this->tabs dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré. +BadValueForType=Mauvaise valeur pour le type %s +DefinePropertiesFromExistingTable=Définir des propriétés à partir d'une table existante +DefinePropertiesFromExistingTableDesc=Si une table dans la base de données (pour l'objet à créer) existe déjà, vous pouvez l'utiliser pour définir les propriétés de l'objet. +DefinePropertiesFromExistingTableDesc2=Laisser vide si la table n'existe pas encore. Le générateur de code utilisera différents types de champs pour créer un exemple de table que vous pourrez modifier ultérieurement. diff --git a/htdocs/langs/fr_FR/mrp.lang b/htdocs/langs/fr_FR/mrp.lang index e65244b584f..557b1f09175 100644 --- a/htdocs/langs/fr_FR/mrp.lang +++ b/htdocs/langs/fr_FR/mrp.lang @@ -11,8 +11,8 @@ Bom=Nomenclatures produits (BOM) BillOfMaterials=Nomenclature BOM BillOfMaterialsLines=Lignes de nomenclature BOMsSetup=Configuration du module BOM -ListOfBOMs=Liste des BOMs -ListOfManufacturingOrders=Liste des Ordres de Fabrication +ListOfBOMs=Nomenclatures - Nomenclature +ListOfManufacturingOrders=Ordres Fabrication NewBOM=Nouveau BOM ProductBOMHelp=Produit à créer (ou désassembler) avec cette nomenclature.
    Remarque: les produits avec la propriété 'Nature de produit' = 'Matière première' ne sont pas visibles dans cette liste. BOMsNumberingModules=Modèles de numérotation de BOMs @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Êtes-vous sûr de vouloir cloner cette nomenclature ConfirmCloneMo=Êtes-vous sûr de vouloir cloner l'Ordre de Fabrication %s? ManufacturingEfficiency=Efficacité de fabrication ConsumptionEfficiency=Efficacité de la consommation +Consumption=Consommation ValueOfMeansLoss=Une valeur de 0,95 signifie une moyenne de 5%% de perte lors de la fabrication ou du désassemblage ValueOfMeansLossForProductProduced=Une valeur de 0,95 signifie une moyenne de 5%% de perte de produit fabriqué DeleteBillOfMaterials=Supprimer la nomenclature @@ -81,7 +82,8 @@ ProductsToConsume=Produits à consommer ProductsToProduce=Produits à produire UnitCost=Coût unitaire TotalCost=Coût total -BOMTotalCost=Le coût de production de cette nomenclature basé sur chaque quantité et produit à consommer (utilise le prix de revient si défini, sinon le PMP si défini, sinon le meilleur prix d'achat) +BOMTotalCost=Le coût de production de cette nomenclature basé sur chaque quantité et produit à consommer (utilise le cout de la sous BOM si existante, sinon le prix de revient du produit si défini, sinon le PMP si défini, sinon le meilleur prix d'achat) +BOMTotalCostService=Si le module "Poste de travail" est activé et qu'un poste de travail est défini par défaut sur la ligne, alors le calcul est "quantité (convertie en heures) x poste de travail ahr", sinon "quantité (convertie en heures) x prix de revient du service" GoOnTabProductionToProduceFirst=Vous devez avoir la production pour clôturer un Ordre de Fabrication (voir onglet '%s'). Mais vous pouvez l'annuler. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit ne peut pas être utilisé dans une Nomenclature ou un Ordre de fabrication. Workstation=Poste de travail @@ -109,6 +111,10 @@ THMEstimatedHelp=Ce taux permet de définir un coût prévisionnel de l'article BOM=Nomenclature CollapseBOMHelp=Vous pouvez définir l'affichage par défaut des détails de la nomenclature dans la configuration du module BOM MOAndLines=Ordres de fabrication et lignes -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +MoChildGenerate=Générer OF enfant +ParentMo=OF parent +MOChild=OF Enfant +BomCantAddChildBom=La nomenclature %s est déjà présente dans l'arbre menant à la nomenclature %s +BOMNetNeeds = Besoins nets +BOMProductsList=Les produits de BOM +BOMServicesList=Les services de BOM diff --git a/htdocs/langs/fr_FR/oauth.lang b/htdocs/langs/fr_FR/oauth.lang index e412ee0b9b9..e884f616f39 100644 --- a/htdocs/langs/fr_FR/oauth.lang +++ b/htdocs/langs/fr_FR/oauth.lang @@ -9,12 +9,14 @@ HasAccessToken=Un jeton a été généré et sauvegardé dans la base de donnée NewTokenStored=Jeton reçu et sauvegardé ToCheckDeleteTokenOnProvider=Cliquer ici pour vérifier/effacer les autorisations sauvées par le fournisseur OAuth %s TokenDeleted=Jeton effacé -RequestAccess=Cliquez ici pour demander/renouveler un accès et recevoir un nouveau jeton à sauvegarder -DeleteAccess=Cliquez ici pour effacer le jeton -UseTheFollowingUrlAsRedirectURI=Utilisez l'URL suivante comme URI de redirection quand vous créez un crédit avec votre fournisseur OAuth : -ListOfSupportedOauthProviders=Saisissez ici les identifiants fournis par votre fournisseur OAuth2. Seuls les fournisseurs OAuth2 supportés sont visibles ici. Ce paramétrage est potentiellement utilisé par d'autres modules qui nécessitent une authentification OAuth2. -OAuthSetupForLogin=Page pour générer le jeton OAuth +GetAccess=Cliquez ici pour obtenir un token +RequestAccess=Cliquez ici pour demander/renouveler l'accès et recevoir un nouveau jeton +DeleteAccess=Cliquez ici pour supprimer le jeton +UseTheFollowingUrlAsRedirectURI=Utilisez l'URL suivante comme URI de redirection quand vous créez des identifiants d'accès chez votre fournisseur OAuth : +ListOfSupportedOauthProviders=Ajoutez vos fournisseurs de jetons OAuth2. Ensuite, rendez-vous sur la page d'administration de votre fournisseur OAuth pour créer/obtenir un identifiant et un secret OAuth et enregistrez-les ici. Une fois cela fait, basculez sur l'autre onglet pour générer votre jeton. +OAuthSetupForLogin=Page pour gérer (générer/supprimer) les jetons OAuth SeePreviousTab=Voir onglet précédent +OAuthProvider=Fournisseur OAuth OAuthIDSecret=OAuth ID et secret TOKEN_REFRESH=Token Refresh présent TOKEN_EXPIRED=Token expiré @@ -23,10 +25,16 @@ TOKEN_DELETE=Supprimer jeton enregistré OAUTH_GOOGLE_NAME=Service Oauth Google OAUTH_GOOGLE_ID=Oauth Google Id OAUTH_GOOGLE_SECRET=Oauth Google secret -OAUTH_GOOGLE_DESC=Allez sur cette page puis "Identifiants" pour créer des identifiants OAuth OAUTH_GITHUB_NAME=Service Oauth GitHub OAUTH_GITHUB_ID=Oauth GitHub Id OAUTH_GITHUB_SECRET=Secret Oauth GitHub -OAUTH_GITHUB_DESC=Allez sur cette page puis "Enregistrer une nouvelle application" pour créer des identifiants OAuth +OAUTH_URL_FOR_CREDENTIAL=Accédez à cette page pour créer ou obtenir votre identifiant OAuth et votre secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=ID OAuth +OAUTH_SECRET=Code secret OAuth +OAuthProviderAdded=Fournisseur OAuth ajouté +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Une entrée OAuth pour ce fournisseur et ce libellé existe déjà +URLOfServiceForAuthorization=URL fournie par le service OAuth pour l'authentification +Scopes=Permissions ("Scopes" OAuth) +ScopeUndefined=Permissions (Cibles) non définies (voir onglet précédent) diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index 8b8ffd0337f..06c090a5f30 100644 --- a/htdocs/langs/fr_FR/orders.lang +++ b/htdocs/langs/fr_FR/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Une commande était déjà ouverte liée à cette proposition, donc aucune autre commande n'a été créée automatiquement OrdersArea=Espace commandes clients SuppliersOrdersArea=Espace commandes fournisseurs OrderCard=Fiche commande diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 97abc958da2..adba3a192d2 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Commande fournisseur approuvée Notify_ORDER_SUPPLIER_REFUSE=Commande fournisseur refusée Notify_PROPAL_VALIDATE=Validation proposition commerciale client Notify_PROPAL_CLOSE_SIGNED=Proposition client fermée signée +Notify_PROPAL_CLOSE_SIGNED_WEB=Proposition client fermée signée sur la page du portail Notify_PROPAL_CLOSE_REFUSED=Proposition client fermée refusée +Notify_PROPAL_CLOSE_REFUSED_WEB=Proposition client fermée refusée sur la page du portail Notify_PROPAL_SENTBYMAIL=Envoi proposition commerciale par email Notify_WITHDRAW_TRANSMIT=Transmission prélèvement Notify_WITHDRAW_CREDIT=Crédit prélèvement @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...ou construisez votre propre profil
    (sélection ma DemoFundation=Gestion des adhérents d'une association DemoFundation2=Gestion des adhérents et trésorerie d'une association DemoCompanyServiceOnly=Société ou indépendant faisant du service uniquement -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=Gérer une boutique avec caisse DemoCompanyProductAndStocks=Magasin vendant des produits via points de vente DemoCompanyManufacturing=Société de fabrication de produits DemoCompanyAll=Société avec de multiples activités (tous les modules principaux) @@ -181,6 +183,7 @@ SizeUnitfoot=pied SizeUnitpoint=point BugTracker=Suivi de tickets SendNewPasswordDesc=Ce formulaire permet de faire une demande pour un nouveau mot de passe. Elle sera envoyée à votre adresse email.
    La modification du mot de passe ne sera effective qu'après avoir cliqué sur le lien de confirmation dans cet email.
    Surveillez votre messagerie. +EnterNewPasswordHere=Entrez votre nouveau mot de passe ici BackToLoginPage=Retour page de connexion AuthenticationDoesNotAllowSendNewPassword=Le mode d'authentification de Dolibarr est configuré à "%s".
    Dans ce mode, Dolibarr n'a pas la possibilité de connaître ni de modifier votre mot de passe.
    Contactez votre administrateur pour connaitre les modalités de changement. EnableGDLibraryDesc=Vous devez activer ou installer la librairie GD avec votre PHP pour pouvoir activer cette option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=La facture %s vous concernant a été validée. EMailTextInvoicePayed=La facture %s a été payée. EMailTextProposalValidated=La proposition commerciale %s vous concernant a été validée. EMailTextProposalClosedSigned=La proposition %s a été clôturée signée. +EMailTextProposalClosedSignedWeb=La proposition %s a été clôturée signée via la page du portail client. +EMailTextProposalClosedRefused=La proposition %s a été fermée refusée. +EMailTextProposalClosedRefusedWeb=La proposition %s a été fermée et refusée sur la page du portail. EMailTextOrderValidated=La commande %s a été validée. EMailTextOrderApproved=La commande %s a été approuvée. EMailTextOrderValidatedBy=La commande %s a été enregistrée par %s @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Êtes-vous sûr de vouloir "%s" ? ConfirmBtnCommonTitle = Confirmer votre action CloseDialog = Fermer Autofill = Remplissage automatique + +# externalsite +ExternalSiteSetup=Configuration du lien vers le site externe +ExternalSiteURL=URL du site externe du contenu iFrame HTML +ExternalSiteModuleNotComplete=La configuration du module "Site externe" est incomplète. +ExampleMyMenuEntry=Mon entrée de menu + +# ftp +FTPClientSetup=Connexion client FTP/FTPS +NewFTPClient=Nouvelle connexion FTP/FTPS +FTPArea=Zone FTP/SFTP +FTPAreaDesc=Vue d'un serveur FTP/FTPS +SetupOfFTPClientModuleNotComplete=La configuration du client FTP/FTPS semble incomplète +FTPFeatureNotSupportedByYourPHP=Votre version de PHP ne supporte pas les fonctions FTP/FTPS +FailedToConnectToFTPServer=Échec de connexion au serveur (serveur %s, port %s) +FailedToConnectToFTPServerWithCredentials=Échec de l'identification sur le serveur avec l'identifiant et le mot de passe saisis +FTPFailedToRemoveFile=Échec suppression fichier %s. +FTPFailedToRemoveDir=Échec suppression répertoire %s (Vérifiez les permissions et que le répertoire soit vide). +FTPPassiveMode=Mode passif +ChooseAFTPEntryIntoMenu=Sélection d'un site FTP/FTPS depuis le menu +FailedToGetFile=Echec à la récupération du fichier %s +ErrorFTPNodisconnect=Erreur de déconnexion du serveur FTP/SFTP +FileWasUpload=Le fichier %s a été téléchargé +FTPFailedToUploadFile=Impossible de télécharger le fichier %s. +AddFolder=Créer un dossier +FileWasCreateFolder=Le dossier %s a été créé +FTPFailedToCreateFolder=Échec de la création du dossier %s. diff --git a/htdocs/langs/fr_FR/partnership.lang b/htdocs/langs/fr_FR/partnership.lang index 845bf4ff36c..20c3fc0d801 100644 --- a/htdocs/langs/fr_FR/partnership.lang +++ b/htdocs/langs/fr_FR/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Gestion des partenariats PartnershipDescription=Module de gestion des partenariats PartnershipDescriptionLong= Module de gestion des partenariats Partnership=Partenariat +Partnerships=Partenariats AddPartnership=Ajouter un partenariat CancelPartnershipForExpiredMembers=Partenariat : annuler le partenariat des adhérents dont les cotisations ont expirés PartnershipCheckBacklink=Partenariat : Vérifiez le backlink référent @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partenariat : Vérifiez le backlink référent # Menu # NewPartnership=Nouveau partenariat +NewPartnershipbyWeb= Votre partenariat a été ajouté avec succès. ListOfPartnerships=Listes des partenariats # @@ -42,6 +44,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Liens de retour à vérifier PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb de jours avant l'annulation de l'état d'un partenariat lorsque la cotisation a expiré ReferingWebsiteCheck=Vérification du site référent ReferingWebsiteCheckDesc=Vous pouvez activer une fonctionnalité pour vérifier que vos partenaires ont ajouté un rétrolien vers les domaines de votre site Web sur leur propre site Web. +PublicFormRegistrationPartnerDesc=Dolibarr peut vous fournir une URL/un site Web public pour permettre aux visiteurs externes de demander à faire partie du programme de partenariat. # # Object @@ -59,6 +62,12 @@ BacklinkNotFoundOnPartnerWebsite=Lien de retour non trouvé sur le site web part ConfirmClosePartnershipAsk=Êtes-vous sûr de vouloir annuler ce partenariat ? PartnershipType=Type de partenariat PartnershipRefApproved=Partenariat %s approuvé +KeywordToCheckInWebsite=Si vous souhaitez vérifier qu'un mot-clé donné est présent dans le site de chaque partenaire, définissez ce mot-clé ici +PartnershipDraft=Brouillon +PartnershipAccepted=Accepté +PartnershipRefused=Refusé +PartnershipCanceled=Annulé +PartnershipManagedFor=Les partenaires sont # # Template Mail @@ -82,11 +91,6 @@ CountLastUrlCheckError=Nombre d'erreurs lors de la dernière vérification d'URL LastCheckBacklink=Date de la dernière vérification d'URL ReasonDeclineOrCancel=Raison du refus -# -# Status -# -PartnershipDraft=Brouillon -PartnershipAccepted=Accepté -PartnershipRefused=Refusé -PartnershipCanceled=Annulé -PartnershipManagedFor=Les partenaires sont +NewPartnershipRequest=Nouvelle demande de partenariat +NewPartnershipRequestDesc=Ce formulaire vous permet de demander à faire partie de l'un de nos programmes de partenariat. Si vous avez besoin d'aide pour remplir ce formulaire, veuillez contacter par email %s . + diff --git a/htdocs/langs/fr_FR/paypal.lang b/htdocs/langs/fr_FR/paypal.lang index 0fdb3e38d20..be600a2671b 100644 --- a/htdocs/langs/fr_FR/paypal.lang +++ b/htdocs/langs/fr_FR/paypal.lang @@ -34,3 +34,4 @@ ARollbackWasPerformedOnPostActions=Une annulation a été effectuée sur toutes ValidationOfPaymentFailed=La validation du paiement a échoué CardOwner=Titulaire de la carte PayPalBalance=Crédit Paypal +OnlineSubscriptionPaymentLine=Cotisation en ligne enregistrée sur %s
    Payé via %s
    Adresse IP d'origine : %s
    ID de transaction : %s diff --git a/htdocs/langs/fr_FR/productbatch.lang b/htdocs/langs/fr_FR/productbatch.lang index 68b5e928084..8493e419384 100644 --- a/htdocs/langs/fr_FR/productbatch.lang +++ b/htdocs/langs/fr_FR/productbatch.lang @@ -1,8 +1,8 @@ # ProductBATCH language file - Source file is en_US - ProductBATCH ManageLotSerial=Utiliser les numéros de lots/série -ProductStatusOnBatch=Oui (Lot/Série requis) +ProductStatusOnBatch=Oui (lot/série requis) ProductStatusOnSerial=Oui (numéro de série unique requis) -ProductStatusNotOnBatch=Non (Lot/Série non utilisé) +ProductStatusNotOnBatch=Non (lot/série non utilisé) ProductStatusOnBatchShort=Lot ProductStatusOnSerialShort=Numéro Série ProductStatusNotOnBatchShort=Non @@ -17,6 +17,7 @@ printBatch=Lot/Série: %s printEatby=DMD/DLUO: %s printSellby=DLC: %s printQty=Qté: %d +printPlannedWarehouse=Entrepôt : %s AddDispatchBatchLine=Ajouter une ligne pour la répartition par durée de conservation WhenProductBatchModuleOnOptionAreForced=Quand le module Lot/Série est activé, le mode de décrémentation automatique des stocks est forcé sur 'Décrémenter les stocks réel sur validation d'expédition' et le mode d'incrémentation automatique de stocks est forcé sur 'Incrémenter les stocks réels sur ventilation manuels dans les entrepôts' et ne peut pas être édité. Les autres options peuvent être définies comme vous le voulez. ProductDoesNotUseBatchSerial=Ce produit n'utilise pas les numéros de lot/série @@ -43,4 +44,4 @@ HideLots=Masquer les lots OutOfOrder=Hors d'usage InWorkingOrder=En état de marche ToReplace=Remplacer -CantMoveNonExistantSerial=Erreur : Vous avez demandé un mouvement sur un numéro de série qui n’existe plus. Peut-être avez-vous requis le même numéro de série plusieurs fois dans une même expédition, ou il a déjà servi dans une autre expédition. Supprimez cette expédition et préparez-en une autre. +CantMoveNonExistantSerial=Erreur : un numéro de série sur lequel vous avez demandé un mouvement n'existe plus. Peut-être avez-vous utilisé plusieurs fois le même numéro de série depuis le même entrepôt sur la même expédition, ou peut-être était-il utilisé sur une autre expédition. Supprimez cette expédition et préparez-en une autre. diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index b0073665fc2..0a5d3f3f8ad 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -137,9 +137,10 @@ ConfirmDeleteProductLine=Êtes-vous sûr de vouloir effacer cette ligne produit ProductSpecial=Special QtyMin=Qté achat minimum PriceQtyMin=Prix quantité min. -PriceQtyMinCurrency=Prix ​​(devise) pour cette quantité min. (sans remise) +PriceQtyMinCurrency=Prix (devise) pour cette quantité. +WithoutDiscount=Sans remise VATRateForSupplierProduct=Taux TVA (pour ce produit/fournisseur) -DiscountQtyMin=Remise par défaut quantité min. +DiscountQtyMin=Remise pour cette qté. NoPriceDefinedForThisSupplier=Aucun prix/qté défini pour ce fournisseur/produit NoSupplierPriceDefinedForThisProduct=Aucun prix/qté fournisseur défini pour ce produit PredefinedItem=Article prédéfini @@ -261,7 +262,7 @@ Quarter1=1er trimestre Quarter2=2eme trimestre Quarter3=3eme trimestre Quarter4=4eme trimestre -BarCodePrintsheet=Imprimer le code barre +BarCodePrintsheet=Imprimer des codes-barres PageToGenerateBarCodeSheets=Avec cet outils, vous pouvez imprimer une planche d'étiquette de code-barres. Sélectionner votre format de planche d'étiquette, le type de code-barre et la valeur du code-barre puis cliquer sur le bouton %s. NumberOfStickers=Nombre d'étiquettes à imprimer sur la/les planches PrintsheetForOneBarCode=Imprimer des étiquettes d'un code barre particulier @@ -316,7 +317,7 @@ LastUpdated=Dernière mise à jour CorrectlyUpdated=Mise à jour avec succès PropalMergePdfProductActualFile=Fichiers utilisés pour l'ajout au PDF Azur sont PropalMergePdfProductChooseFile=Sélectionnez les fichiers PDF -IncludingProductWithTag=Inclure les produits/services de(s) catégorie(s) +IncludingProductWithTag=Comprenant des produits/services avec le tag/catégorie DefaultPriceRealPriceMayDependOnCustomer=Prix ​​par défaut, le prix réel peut dépendre du client WarningSelectOneDocument=Sélectionnez au moins un document DefaultUnitToShow=Unité @@ -344,9 +345,9 @@ PossibleValues=Valeurs possibles GoOnMenuToCreateVairants=Allez sur le menu %s - %s pour ajouter les attributs de variantes (comme les couleurs, tailles, ...) UseProductFournDesc=Ajouter une fonctionnalité pour définir la description produit définie par les vendeurs (pour chaque référence vendeur) en plus de la description pour les clients ProductSupplierDescription=Description du fournisseur du produit -UseProductSupplierPackaging=Utiliser le conditionnement/emballage sur les prix fournisseur (recalculer les quantités en fonction de l'emballage défini sur le prix fournisseur lors de l'ajout / mise à jour de la ligne dans les documents fournisseurs) -PackagingForThisProduct=Emballage -PackagingForThisProductDesc=Sur une commande fournisseur, vous commanderez automatiquement cette quantité ou un multiple. +UseProductSupplierPackaging=Utiliser l'emballage pour les prix arrondis aux multiples pour les prix d'achat (recalculer les quantités en fonction des multiples définis sur les prix d'achat lors de l'ajout/de la mise à jour d'une ligne dans les documents d'un fournisseur) +PackagingForThisProduct=Conditionnement +PackagingForThisProductDesc=Vous achèterez automatiquement un multiple de cette quantité. QtyRecalculatedWithPackaging=La quantité de la ligne a été recalculée en fonction de l'emballage du fournisseur #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Action disponible uniquement sur la variante ProductsPricePerCustomer=Prix produit par clients ProductSupplierExtraFields=Attributs supplémentaires (Prix fournisseur) DeleteLinkedProduct=Supprimer le produit enfant lié à la combinaison -AmountUsedToUpdateWAP=Montant à utiliser pour mettre à jour le prix moyen pondéré +AmountUsedToUpdateWAP=Montant unitaire à utiliser pour mettre à jour le prix moyen pondéré PMPValue=Prix moyen pondéré (PMP) PMPValueShort=PMP mandatoryperiod=Plage de date obligatoire @@ -408,7 +409,23 @@ mandatoryHelper=Cochez cette case si vous souhaitez un message à l'utilisateur DefaultBOM=Nomenclature par défaut DefaultBOMDesc=La nomenclature par défaut qu'il est recommandé d'utiliser pour fabriquer ce produit. Ce champ ne peut être défini que si la nature du produit est '%s'. Rank=Classement +MergeOriginProduct=Produit à fusionner (produit qui sera supprimé) +MergeProducts=Fusionner les produits +ConfirmMergeProducts=Etes vous certains de vouloir fusionner le produit sélectionné avec le produit en cours ? Tous les objets (factures, commandes, ...) seront liés au produits en en cours, le produit sélectionné sera ensuite effacé. +ProductsMergeSuccess=Produits fusionnés +ErrorsProductsMerge=Erreur lors de la fusion des produits SwitchOnSaleStatus=Basculer le statut En vente SwitchOnPurchaseStatus=Basculer le statut En achat +UpdatePrice=Augmenter/diminuer le prix client StockMouvementExtraFields= Champs supplémentaires (mouvement de stock) -PuttingPricesUpToDate=Mettre à jour les prix +InventoryExtraFields= Attributs supplémentaires (inventaire) +ScanOrTypeOrCopyPasteYourBarCodes=Scannez ou tapez ou copiez/collez vos codes-barres +PuttingPricesUpToDate=Mise à jour des prix avec les prix connus actuels +PMPExpected=PMP prévu +ExpectedValuation=Valorisation prévue +PMPReal=PMP réel +RealValuation=Valorisation réelle +ConfirmEditExtrafield = Sélectionnez l'extrafield que vous souhaitez modifier +ConfirmEditExtrafieldQuestion = Voulez-vous vraiment modifier cet extrafield ? +ModifyValueExtrafields = Modifier la valeur d'un extrafield +OrProductsWithCategories=Ou des produits avec des tags/catégories diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang index ca8f1e518aa..d3f7edb1e85 100644 --- a/htdocs/langs/fr_FR/projects.lang +++ b/htdocs/langs/fr_FR/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Libellé projet ProjectsArea=Espace projets ProjectStatus=Statut projet SharedProject=Tout le monde -PrivateProject=Assigned contacts +PrivateProject=Contacts assignés ProjectsImContactFor=Projets dont je suis un contact explicite AllAllowedProjects=Tout projet que je peux lire (les miens + public) AllProjects=Tous les projets @@ -18,11 +18,12 @@ ProjectsDesc=Cette vue présente tous les projets (vos habilitations vous offran TasksOnProjectsDesc=Cette vue présente toutes les tâches sur tous les projets (vos permissions d'utilisateur vous accordent la permission de voir tout). MyTasksDesc=Cette vue est restreinte aux projets ou tâches pour lesquels vous êtes un contact affecté. OnlyOpenedProject=Seuls les projets ouverts sont visibles (les projets à l'état brouillon ou fermé ne sont pas visibles). -ClosedProjectsAreHidden=Les projets fermés ne sont pas visible. +ClosedProjectsAreHidden=Les projets fermés ne sont pas visibles. TasksPublicDesc=Cette vue présente tous les projets et tâches pour lesquels vous êtes habilité à avoir une visibilité. TasksDesc=Cette vue présente tous les projets et tâches (vos habilitations vous offrant une vue exhaustive). AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches des projets sont visibles mais il n'est possible de saisir du temps passé que sur celles assignées à l'utilisateur sélectionné.\nAssignez la tâche si elle ne l'est pas déjà pour pouvoir saisir du temps dessus. OnlyYourTaskAreVisible=Seules les tâches qui vous sont assignées sont visibles. Assignez vous une tâche pour la voir et saisir du temps dessus. +ImportDatasetProjects=Projets ou opportunités ImportDatasetTasks=Tâches des projets ProjectCategories=Catégories/tags de projet NewProject=Nouveau projet @@ -37,8 +38,10 @@ OpportunitiesStatusForOpenedProjects=Montant des opportunités ouvertes par stat OpportunitiesStatusForProjects=Montant des opportunités par statut ShowProject=Afficher projet ShowTask=Afficher tâche +SetThirdParty=Définir un tiers SetProject=Définir projet -NoProject=Aucun projet défini ou responsable +OutOfProject=Hors projet +NoProject=Aucun projet défini ou visible NbOfProjects=Nombre de projets NbOfTasks=Nb de tâches TimeSpent=Temps consommé @@ -81,7 +84,7 @@ TaskProgressSummary=Progression de tâche CurentlyOpenedTasks=Tâches actuellement ouvertes TheReportedProgressIsLessThanTheCalculatedProgressionByX=L'avancement réel déclaré est %s moins important que l'avancement de la consommation TheReportedProgressIsMoreThanTheCalculatedProgressionByX=L'avancement réel déclaré est %splus important que l'avancement de la consommation -ProgressCalculated=Avancement sur consommation +ProgressCalculated=Avancement consommation WhichIamLinkedTo=dont je suis contact WhichIamLinkedToProject=dont je suis contact de projet Time=Temps @@ -122,7 +125,8 @@ ValidateProject=Valider projet ConfirmValidateProject=Êtes-vous sûr de vouloir valider ce projet ? CloseAProject=Clore projet ConfirmCloseAProject=Êtes-vous sûr de vouloir clore ce projet ? -AlsoCloseAProject=Fermer également le projet (laissez-le ouvert si vous devez suivre la production de tâches dessus) +AlsoCloseAProject=Fermer également le projet +AlsoCloseAProjectTooltip=Gardez-le ouvert si vous avez encore besoin de suivre des tâches de production dessus ReOpenAProject=Réouvrir projet ConfirmReOpenAProject=Êtes-vous sûr de vouloir rouvrir ce projet ? ProjectContact=Contacts du projet @@ -165,9 +169,9 @@ OpportunityProbability=Probabilité d'opportunité OpportunityProbabilityShort=Prob. opp. OpportunityAmount=Montant opportunité OpportunityAmountShort=Montant opportunité -OpportunityWeightedAmount=Montant pondéré des opportunités +OpportunityWeightedAmount=Quantité d'opportunités, pondérée par la probabilité OpportunityWeightedAmountShort=Montant pondéré opp. -OpportunityAmountAverageShort=montant moyen des opportunités +OpportunityAmountAverageShort=Montant moyen des opportunités OpportunityAmountWeigthedShort=Montant pondéré des opportunités WonLostExcluded=hors opportunités remportées/perdues ##### Types de contacts ##### @@ -238,7 +242,7 @@ OppStatusPENDING=En attente OppStatusWON=Gagné OppStatusLOST=Perdu Budget=Budget -AllowToLinkFromOtherCompany=Permettre de lier un projet à une autre société

    Valeurs supportées:
    - Conserver vide: Peut lier à n'importe quel projet de l'entreprise (défaut)
    - "all": Peut lier à tous les projets, même le projet d'autres sociétés
    - Une liste d'ID de tiers séparés par des virgules: Peut lier à tous les projets de ces tiers définis (Exemple: 123,4795,53)
    +AllowToLinkFromOtherCompany=Permet de lier un élément avec un projet d'une autre société

    Valeurs prises en charge :
    - Garder vide : peut lier des éléments avec n'importe quel projet de la même société (par défaut)
    - "tous" : peut lier des éléments avec n'importe quel projet, même projets d'autres sociétés
    - Une liste d'identifiants tiers séparés par des virgules : permet de lier des éléments à n'importe quel projet de ces tiers (Exemple : 123,4795,53)
    LatestProjects=Les %s derniers projets LatestModifiedProjects=Les %s derniers projets modifiés OtherFilteredTasks=Autres tâches filtrées @@ -259,7 +263,7 @@ TimeSpentInvoiced=Temps passé facturé TimeSpentForIntervention=Temps consommé TimeSpentForInvoice=Temps consommés OneLinePerUser=Une ligne par utilisateur -ServiceToUseOnLines=Service à utiliser sur les lignes +ServiceToUseOnLines=Service à utiliser sur les lignes par défaut InvoiceGeneratedFromTimeSpent=La facture %s a été générée à partir du temps passé sur le projet InterventionGeneratedFromTimeSpent=L'intervention %s a été générée à partir du temps consacré au projet ProjectBillTimeDescription=Cochez si vous saisissez du temps sur les tâches du projet ET prévoyez de générer des factures à partir des temps pour facturer le client du projet (ne cochez pas si vous comptez créer une facture qui n'est pas basée sur la saisie des temps). Note: Pour générer une facture, aller sur l'onglet 'Temps consommé' du project et sélectionnez les lignes à inclure. @@ -282,15 +286,16 @@ ProfitIsCalculatedWith=Le bénéfice est calculé sur la base de AddPersonToTask=Ajouter également aux tâches UsageOrganizeEvent=Utilisation: Organisation d'événements PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classer le projet comme étant clos lorsque toutes ses tâches sont terminées (progression 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Remarque : les projets existants avec toutes les tâches terminées à 100 %% ne seront pas affectés : vous devrez les fermer manuellement. Cette option n’affecte que les projets ouverts. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Remarque : les projets existants avec toutes les tâches déjà définies sur une progression de 100%% ne seront pas affectés : vous devrez les fermer manuellement. Cette option n'affecte que les projets ouverts. SelectLinesOfTimeSpentToInvoice=Sélectionnez les lignes de temps passé non facturées, puis l'action groupée "Générer la facture" pour les facturer ProjectTasksWithoutTimeSpent=Tâches de projet sans temps consommé FormForNewLeadDesc=Veuillez remplir ce formulaire de contact ou écrivez un e-mail à %s. ProjectsHavingThisContact=Projets ayant ce contact StartDateCannotBeAfterEndDate=La date de fin ne peux être avant la date de début ErrorPROJECTLEADERRoleMissingRestoreIt=Le rôle "PROJECTLEADER" est manquant ou a été désactivé, merci de le restaurer dans le dictionnaire des types de contacts -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +LeadPublicFormDesc=Vous pouvez activer ici une page publique pour permettre à vos prospects d'établir un premier contact avec vous depuis un formulaire public en ligne +EnablePublicLeadForm=Activer le formulaire public de contact +NewLeadbyWeb=Votre message ou votre demande a été enregistré. Nous vous répondrons ou vous contacterons bientôt. +NewLeadForm=Nouveau formulaire de contact +LeadFromPublicForm=Lead en ligne à partir d'un formulaire public +ExportAccountingReportButtonLabel=Obtenir un rapport diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index 41483196a39..66a0093db96 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Délai de livraison SetAvailability=Définir le délai de livraison AfterOrder=après commande OtherProposals=Autres propositions + ##### Availability ##### AvailabilityTypeAV_NOW=Immédiate AvailabilityTypeAV_1W=1 semaine AvailabilityTypeAV_2W=2 semaines AvailabilityTypeAV_3W=3 semaines AvailabilityTypeAV_1M=1 mois -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Commercial suivi proposition TypeContact_propal_external_BILLING=Contact client facturation proposition TypeContact_propal_external_CUSTOMER=Contact client suivi proposition TypeContact_propal_external_SHIPPING=Contact client pour la livraison + # Document models -DocModelAzurDescription=Un modèle de proposition complet (ancienne implémentation du modèle Cyan) -DocModelCyanDescription=Un modèle de proposition complet -DefaultModelPropalCreate=Modèle par défaut à la création -DefaultModelPropalToBill=Modèle par défaut lors de la clôture d'une proposition commerciale (à facturer) -DefaultModelPropalClosed=Modèle par défaut lors de la clôture d'une proposition commerciale (non facturée) -ProposalCustomerSignature=Cachet, Date, Signature et mention "Bon pour Accord" -ProposalsStatisticsSuppliers=Statistiques de propositions commerciales -CaseFollowedBy=Affaire suivie par -SignedOnly=Signé seulement -NoSign=Mettre à Non signé -NoSigned=Mettre à Non signé CantBeNoSign=ne peut être mis à Non signé +CaseFollowedBy=Affaire suivie par ConfirmMassNoSignature=Confirmation du passage en Non signé ConfirmMassNoSignatureQuestion=Êtes-vous sûr de vouloir définir comme Non signés les enregistrements sélectionnés ? -IsNotADraft=n'est pas au statut brouillon -PassedInOpenStatus=a été validé -Sign=Signer -Signed=Signée -ConfirmMassValidation=Confirmation de validation en masse ConfirmMassSignature=Confirmation de signature en masse -ConfirmMassValidationQuestion=Etes vous sûrs de vouloir valider les enregistrements sélectionnés ? ConfirmMassSignatureQuestion=Etes vous sûr de vouloir signer les enregistrements sélectionnés ? -IdProposal=ID de la proposition commerciale +ConfirmMassValidation=Confirmation de validation en masse +ConfirmMassValidationQuestion=Etes vous sûrs de vouloir valider les enregistrements sélectionnés ? +ConfirmRefusePropal=Êtes-vous sûr de vouloir refuser cette proposition ? +ContractSigned=Contrat signé +DefaultModelPropalClosed=Modèle par défaut lors de la clôture d'une proposition commerciale (non facturée) +DefaultModelPropalCreate=Modèle par défaut à la création +DefaultModelPropalToBill=Modèle par défaut lors de la clôture d'une proposition commerciale (à facturer) +DocModelAzurDescription=Un modèle de proposition complet (ancienne implémentation du modèle Cyan) +DocModelCyanDescription=Un modèle de proposition complet +FichinterSigned=Intervention signée IdProduct=ID produit +IdProposal=ID de la proposition commerciale +IsNotADraft=n'est pas au statut brouillon LineBuyPriceHT=Prix d'achat HT de la ligne -SignPropal=Accepter la proposition +NoSign=Refuser +NoSigned=Mettre à Non signé +PassedInOpenStatus=a été validé +PropalAlreadyRefused=Proposition déjà refusée +PropalAlreadySigned=Proposition déjà acceptée +PropalRefused=Proposition refusée +PropalSigned=Proposition acceptée +ProposalCustomerSignature=Cachet, Date, Signature et mention "Bon pour Accord" +ProposalsStatisticsSuppliers=Statistiques de propositions commerciales RefusePropal=Refuser la proposition Sign=Signer -NoSign=Mettre à Non signé -PropalAlreadySigned=Proposition déjà acceptée -PropalAlreadyRefused=Proposition déjà refusée -PropalSigned=Proposition acceptée -PropalRefused=Proposition refusée -ConfirmRefusePropal=Êtes-vous sûr de vouloir refuser cette proposition ? +SignContract=Signer le contrat +SignFichinter=Signer l'intervention +SignPropal=Accepter la proposition +Signed=Signée +SignedOnly=Signé seulement diff --git a/htdocs/langs/fr_FR/receiptprinter.lang b/htdocs/langs/fr_FR/receiptprinter.lang index 6c313e08dd8..6964eb61308 100644 --- a/htdocs/langs/fr_FR/receiptprinter.lang +++ b/htdocs/langs/fr_FR/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Test envoyé à l'imprimante %s ReceiptPrinter=Imprimantes Tickets ReceiptPrinterDesc=Réglage des imprimantes de tickets ReceiptPrinterTemplateDesc=Réglage des modèles -ReceiptPrinterTypeDesc=Description des types d'imprimantes de tickets +ReceiptPrinterTypeDesc=Exemple de valeurs possibles pour le champ "Paramètres" selon le type de driver ReceiptPrinterProfileDesc=Description des imprimantes de tickets ListPrinters=Liste des imprimantes SetupReceiptTemplate=Réglage des modèles @@ -54,7 +54,9 @@ DOL_DOUBLE_WIDTH=Double la taille en largeur DOL_DEFAULT_HEIGHT_WIDTH=Hauteur et largeur par défaut  DOL_UNDERLINE=Activer le souligné DOL_UNDERLINE_DISABLED=Désactiver le souligné -DOL_BEEP=Bruit de fond +DOL_BEEP=Notification sonore +DOL_BEEP_ALTERNATIVE=Bip sonore (mode alternatif) +DOL_PRINT_CURR_DATE=Imprimer la date/l'heure actuelle DOL_PRINT_TEXT=Imprimer le texte DateInvoiceWithTime=Date et heure de facturation YearInvoice=Année de facturation diff --git a/htdocs/langs/fr_FR/receptions.lang b/htdocs/langs/fr_FR/receptions.lang index 30ac8e985bc..35e38275cb1 100644 --- a/htdocs/langs/fr_FR/receptions.lang +++ b/htdocs/langs/fr_FR/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Brouillon StatusReceptionValidatedShort=Validé StatusReceptionProcessedShort=Traités ReceptionSheet=Bordereau de réception +ValidateReception=Valider la réception ConfirmDeleteReception=Êtes-vous sûr de vouloir supprimer cette réception ? ConfirmValidateReception=Êtes-vous sûr de vouloir valider cette réception sous la référence %s ? ConfirmCancelReception=Êtes-vous sûr de vouloir annuler cette réception ? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Module de numérotation pour les réceptions ReceptionsReceiptModel=Modèles de document pour les réceptions NoMorePredefinedProductToDispatch=Plus de produits prédéfinis à expédier ReceptionExist=Une réception existe -ByingPrice=Prix d'achat ReceptionBackToDraftInDolibarr=Réception %s retourné en brouillon ReceptionClassifyClosedInDolibarr=Reception %s classée Fermée ReceptionUnClassifyCloseddInDolibarr=Réception %s ré-ouverte diff --git a/htdocs/langs/fr_FR/recruitment.lang b/htdocs/langs/fr_FR/recruitment.lang index f2d8df78aa3..ed017d8b484 100644 --- a/htdocs/langs/fr_FR/recruitment.lang +++ b/htdocs/langs/fr_FR/recruitment.lang @@ -51,26 +51,29 @@ ListOfPositionsToBeFilled=Liste des postes NewPositionToBeFilled=Nouveaux postes JobOfferToBeFilled=Poste à pourvoir -ThisIsInformationOnJobPosition=Informations sur le poste à pourvoir +ThisIsInformationOnJobPosition=Informations sur le profil de poste ContactForRecruitment=Contact pour le recrutement EmailRecruiter=Email recruteur ToUseAGenericEmail=Pour utiliser un e-mail générique. S'il n'est pas défini, l'email du responsable du recrutement sera utilisé NewCandidature=Nouvelle candidature ListOfCandidatures=Liste des candidatures -RequestedRemuneration=Rémunération demandée -ProposedRemuneration=Rémunération proposée +Remuneration=Salaire +RequestedRemuneration=Salaire demandé +ProposedRemuneration=Salaire proposé ContractProposed=Contrat proposé ContractSigned=Contrat signé ContractRefused=Contrat refusé RecruitmentCandidature=Candidature JobPositions=Offres d'emploi RecruitmentCandidatures=Candidatures -InterviewToDo=Entretien à faire +InterviewToDo=Contacts à suivre AnswerCandidature=Réponse de candidature YourCandidature=Votre candidature YourCandidatureAnswerMessage=Merci de votre candidature.
    ... JobClosedTextCandidateFound=Le poste n'est plus ouvert. Le poste a été pourvu. JobClosedTextCanceled=Le poste n'est plus ouvert. -ExtrafieldsJobPosition=Attributs complémentaires (postes) +ExtrafieldsJobPosition=Attributs complémentaires (profils de postes) ExtrafieldsApplication=Attributs complémentaires (candidature) MakeOffer=Faire un offre +WeAreRecruiting=Nous recrutons. Voici une liste de postes à pourvoir... +NoPositionOpen=Aucun poste ouvert pour le moment diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang index 51a430cc9b6..9b89cf2fb68 100644 --- a/htdocs/langs/fr_FR/salaries.lang +++ b/htdocs/langs/fr_FR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilisé pour les utilisateurs -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Le compte comptable défini sur la fiche utilisateur sera utilisé uniquement pour la comptabilité auxiliaire. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité auxiliaire si le compte dédié de l'utilisateur n'est pas défini. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte (issu du Plan Comptable) utilisé par défaut pour les tiers "utilisateurs" +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Le compte dédié défini sur la carte utilisateur sera utilisé uniquement pour la comptabilité Subledger. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité auxiliaire si le compte de comptabilité utilisateur dédié à l'utilisateur n'est pas défini. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les paiements de salaires CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Par défaut, laissez vide l’option "Créer automatiquement un paiement complet" lors de la création d’un salaire Salary=Salaire diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index 65a7495880e..481ca5f312d 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Date dans le futur StocksByLotSerial=Stocks par lot/série LotSerial=Lots/séries LotSerialList=Liste des numéros de lots/séries +SubjectToLotSerialOnly=Produits soumis au lot/série uniquement Movements=Mouvements ErrorWarehouseRefRequired=Le nom de référence de l'entrepôt est obligatoire ListOfWarehouses=Liste des entrepôts @@ -48,7 +49,7 @@ StockCorrection=Correction de stock CorrectStock=Corriger le stock StockTransfer=Transfert de stock TransferStock=Transférer stock -MassStockTransferShort=Transfert stock en masse +MassStockTransferShort=Changement de stock en vrac StockMovement=Mouvement de stock StockMovements=Mouvements de stock NumberOfUnit=Nombre de pièces @@ -146,8 +147,9 @@ Replenishments=Réapprovisionnement NbOfProductBeforePeriod=Quantité du produit %s en stock avant la période sélectionnée (< %s) NbOfProductAfterPeriod=Quantité du produit %s en stock après la période sélectionnée (> %s) MassMovement=Mouvement en masse -SelectProductInAndOutWareHouse=Sélectionnez un entrepôt source et un entrepôt cible, un produit et une quantité puis cliquez sur "%s". Une fois ceci fait pour tous les mouvements requis, cliquez sur "%s". +SelectProductInAndOutWareHouse=Sélectionnez un entrepôt source (optionnel), un entrepôt cible, un produit et une quantité puis cliquez sur "%s". Une fois cela fait pour tous les mouvements requis, cliquez sur "%s". RecordMovement=Enregistrer transfert +RecordMovements=Enregistrer les mouvements de stock ReceivingForSameOrder=Réceptions pour cette commande StockMovementRecorded=Mouvement de stocks enregistré RuleForStockAvailability=Règles d'exigence sur les stocks @@ -234,7 +236,7 @@ StockIncrease=Augmentation du stock StockDecrease=Diminution du stock InventoryForASpecificWarehouse=Inventaire pour un entrepôt spécifique InventoryForASpecificProduct=Inventaire pour un produit spécifique -StockIsRequiredToChooseWhichLotToUse=Le module Stock est requis pour choisir une lot +StockIsRequiredToChooseWhichLotToUse=Un stock existant est nécessaire pour pouvoir choisir le lot à utiliser ForceTo=Forcer à AlwaysShowFullArbo=Afficher l'arborescence complète de l'entrepôt sur la popup du lien entrepôt (Avertissement: cela peut réduire considérablement les performances) StockAtDatePastDesc=Vous pouvez voir ici le stock (stock réel) à une date donnée dans le passé @@ -265,51 +267,53 @@ ProductBarcodeDoesNotExist=Le produit avec ce code-barres n'existe pas WarehouseId=ID entrepôt WarehouseRef=Réf entrepôt SaveQtyFirst=Enregistrez d'abord les quantités réelles inventoriées, avant de demander la création du mouvement de stock. +ToStart=Démarrer InventoryStartedShort=En cours ErrorOnElementsInventory=Opération annulée pour la raison suivante : ErrorCantFindCodeInInventory=Impossible de trouver le code suivant dans l'inventaire QtyWasAddedToTheScannedBarcode=Succès !! La quantité a été ajoutée à tous les codes-barres demandés. Vous pouvez fermer l'outil Scanner. -StockChangeDisabled=Changement sur stock désactivé +StockChangeDisabled=Modification de stock désactivé NoWarehouseDefinedForTerminal=Aucun entrepôt défini pour le terminal -ModuleStockTransferName = Transferts de stocks -ModuleStockTransferDesc = Création d'objets transfert de stocks, avec génération de bons de transfert -StockTransferNew=Nouveau transfert de stocks -StockTransferList=Liste des transferts de stocks -ConfirmValidateStockTransfer=Êtes-vous sûr de vouloir valider ce transfert de stocks sous la référence %s ? -ConfirmDestock=Décrémentation des stocks via transfert %s -ConfirmDestockCancel=Annulation décrémentation des stocks via transfert %s -DestockAllProduct=Décrémentation des stocks -DestockAllProductCancel=Annulation décrémentation des stocks -ConfirmAddStock=Incrémentation des stocks via transfert %s -ConfirmAddStockCancel=Annulation incrémentation des stocks via transfert %s -AddStockAllProduct=Incrémentation des stocks -AddStockAllProductCancel=Annulation incrémentation des stocks -DatePrevueDepart=Date prévue de départ +ClearQtys=Effacer toutes les quantités +ModuleStockTransferName=Transfert de Stock Avancé +ModuleStockTransferDesc=Gestion avancée des transferts de stock, avec génération de feuille de transfert +StockTransferNew=Nouveau transfert de stock +StockTransferList=Liste des transferts de stock +ConfirmValidateStockTransfer=Êtes-vous sûr de vouloir valider ce transfert de stocks avec la référence %s ? +ConfirmDestock=Diminution des stocks avec transfert %s +ConfirmDestockCancel=Annuler la diminution des stocks avec transfert %s +DestockAllProduct=Diminution des stocks +DestockAllProductCancel=Annuler la baisse des stocks +ConfirmAddStock=Augmenter les stocks avec le transfert %s +ConfirmAddStockCancel=Annuler l'augmentation des stocks avec transfert %s +AddStockAllProduct=Augmentation des stocks +AddStockAllProductCancel=Annuler l'augmentation des stocks +DatePrevueDepart=Date de départ prévue DateReelleDepart=Date réelle de départ DatePrevueArrivee=Date prévue d'arrivée -DateReelleArrivee=Date réelle d'arrivée -HelpWarehouseStockTransferSource=Si renseigné, seul cet entrepôt source et ses enfants seront sélectionnables pour l'ajout des lignes -HelpWarehouseStockTransferDestination=Si renseigné, seul cet entrepôt de destination et ses enfants seront sélectionnables pour l'ajout des lignes -LeadTimeForWarning=Délai pour alerte (en jours) -TypeContact_stocktransfer_internal_STFROM=Contact expéditeur transfert de stocks -TypeContact_stocktransfer_internal_STDEST=Contact destinataire transfert de stocks -TypeContact_stocktransfer_internal_STRESP=Responsable du transfert de stocks -StockTransferSheet=Bon de transfert -StockTransferSheetProforma=Bon de transfert proforma -StockTransferDecrementation=Décrémenter les entrepôts sources -StockTransferIncrementation=Incrémenter les entrepôts de destination -StockTransferDecrementationCancel=Annuler décrémentation des entrepôts sources -StockTransferIncrementationCancel=Annuler incrémentation des entrepôts de destination -StockStransferDecremented=Entrepôts sources décrémentés -StockStransferDecrementedCancel=Décrémentation entrepôts source annulée -StockStransferIncremented=Clôturé - Stocks transférés -StockStransferIncrementedShort=Stocks transférés -StockStransferIncrementedShortCancel=Incrémentation entrepôts de destination annulée -StockTransferNoBatchForProduct=Le produit %s ne gère pas les numéros de lot, retirez le lot sur la ligne avant d'exécuter à nouveau cette action -StockTransferSetup = Configuration du module transferts de stocks -StockTransferSetupPage = Page de configuration du module transferts de stocks +DateReelleArrivee=Date d'arrivée réelle +HelpWarehouseStockTransferSource=Si cet entrepôt est défini, seuls lui-même et ses enfants seront disponibles en tant qu'entrepôt source +HelpWarehouseStockTransferDestination=Si cet entrepôt est défini, seul lui-même et ses enfants seront disponibles comme entrepôt de destination +LeadTimeForWarning=Délai avant alerte (en jours) +TypeContact_stocktransfer_internal_STFROM=Expéditeur de transfert de stocks +TypeContact_stocktransfer_internal_STDEST=Bénéficiaire du transfert de stocks +TypeContact_stocktransfer_internal_STRESP=Responsable du transfert des stocks +StockTransferSheet=Feuille de transfert de stocks +StockTransferSheetProforma=Feuille de transferts de stock proforma +StockTransferDecrementation=Diminuer les entrepôts sources +StockTransferIncrementation=Augmenter les entrepôts de destination +StockTransferDecrementationCancel=Annuler la diminution des entrepôts sources +StockTransferIncrementationCancel=Annuler l'augmentation des entrepôts de destination +StockStransferDecremented=Les entrepôts sources ont diminué +StockStransferDecrementedCancel=Diminution des entrepôts sources annulée +StockStransferIncremented=Fermé - Stocks transférés +StockStransferIncrementedShort=Stocks transférées +StockStransferIncrementedShortCancel=Augmentation des entrepôts de destination annulée +StockTransferNoBatchForProduct=Le produit %s n'utilise pas le lot, effacez le lot et réessayez +StockTransferSetup = Configuration du module de Transfert de stocks avancé +Settings=Paramètres +StockTransferSetupPage = Page de configuration du module de Transfert de stocks avancé StockTransferRightRead=Lire les transferts de stocks StockTransferRightCreateUpdate=Créer/Mettre à jour les transferts de stocks StockTransferRightDelete=Supprimer les transferts de stocks -BatchNotFound=Lot / série non trouvé(e) pour ce produit -ClearQtys=Effacer toutes les quantités +BatchNotFound=Lot/série introuvable pour ce produit diff --git a/htdocs/langs/fr_FR/stripe.lang b/htdocs/langs/fr_FR/stripe.lang index 15837306612..07bacfaf054 100644 --- a/htdocs/langs/fr_FR/stripe.lang +++ b/htdocs/langs/fr_FR/stripe.lang @@ -61,6 +61,7 @@ DeleteACard=Supprimer carte ConfirmDeleteCard=Êtes-vous sûr de vouloir supprimer cette carte de crédit ou de débit? CreateCustomerOnStripe=Créer client sur Stripe CreateCardOnStripe=Créer carte sur Stripe +CreateBANOnStripe=Créer une banque sur Stripe ShowInStripe=Afficher dans Stripe StripeUserAccountForActions=Compte d'utilisateur à utiliser pour certains e-mails de notification d'événements Stripe (Stripe payouts) StripePayoutList=Liste des versements par Stripe @@ -69,3 +70,5 @@ ToOfferALinkForLiveWebhook=Lien pour la configuration de Stripe WebHook pour app PaymentWillBeRecordedForNextPeriod=Le paiement sera enregistré pour la prochaine période. ClickHereToTryAgain=Cliquez ici pour essayer à nouveau... CreationOfPaymentModeMustBeDoneFromStripeInterface=En raison des règles d'Authentification Client Forte, la création d'une carte doit être effectuée à partir du backoffice de Stripe. Vous pouvez cliquer ici pour basculer sur la fiche client Stripe: %s +TERMINAL_LOCATION=Emplacement (adresse) des terminaux +RequestDirectDebitWithStripe=Demander un prélèvement automatique avec Stripe diff --git a/htdocs/langs/fr_FR/suppliers.lang b/htdocs/langs/fr_FR/suppliers.lang index dd5402d66ae..f73df3434c9 100644 --- a/htdocs/langs/fr_FR/suppliers.lang +++ b/htdocs/langs/fr_FR/suppliers.lang @@ -4,6 +4,7 @@ SuppliersInvoice=Facture fournisseur SupplierInvoices=Factures fournisseur ShowSupplierInvoice=Montrer la facture fournisseur NewSupplier=Nouveau fournisseur +NewSupplierInvoice = Nouvelle facture du vendeur History=Historique ListOfSuppliers=Liste des fournisseurs ShowSupplier=Afficher fournisseur @@ -32,7 +33,7 @@ ConfirmDenyingThisOrder=Êtes-vous sûr de vouloir refuser la commande fournisse ConfirmCancelThisOrder=Êtes-vous sûr de vouloir annuler la commande fournisseur %s ? AddSupplierOrder=Créer commande fournisseur AddSupplierInvoice=Créer facture fournisseur -ListOfSupplierProductForSupplier=Liste des produits et prix du fournisseurs %s +ListOfSupplierProductForSupplier=Liste des produits et prix du fournisseur %s SentToSuppliers=Envoyés aux fournisseurs ListOfSupplierOrders=Liste des commandes fournisseurs MenuOrdersSupplierToBill=Commandes fournisseurs en facture @@ -46,4 +47,11 @@ ReputationForThisProduct=Réputation BuyerName=Nom de l'acheteur AllProductServicePrices=Tous les prix du produits / service AllProductReferencesOfSupplier=Toutes les références du fournisseur -BuyingPriceNumShort=Prix fournisseurs \ No newline at end of file +BuyingPriceNumShort=Prix fournisseurs +RepeatableSupplierInvoice=Modèle de facture fournisseur +RepeatableSupplierInvoices=Modèle de facture fournisseur +RepeatableSupplierInvoicesList=Modèle de factures fournisseurs +RecurringSupplierInvoices=Factures fournisseurs récurrentes +ToCreateAPredefinedSupplierInvoice=Afin de créer un modèle de facture fournisseur, vous devez créer une facture standard, puis, sans la valider, cliquer sur le bouton "%s". +GeneratedFromSupplierTemplate=Généré(e) depuis le modèle de facture fournisseur %s +SupplierInvoiceGeneratedFromTemplate=Facture fournisseur %s générée depui le modèle de facture fournisseur %s diff --git a/htdocs/langs/fr_FR/ticket.lang b/htdocs/langs/fr_FR/ticket.lang index 486e3799f72..e86f35a52ba 100644 --- a/htdocs/langs/fr_FR/ticket.lang +++ b/htdocs/langs/fr_FR/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Supprimer tickets Permission56004=Gérer les tickets Permission56005=Voir les tickets de tous les tiers (non effectif pour les utilisateurs externes, toujours limité au tiers dont ils dépendent) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Catégorisation du ticket TicketDictSeverity=Ticket - Sévérités @@ -90,17 +91,17 @@ TicketPublicAccess=Une interface publique ne nécessitant aucune identification TicketSetupDictionaries=Les types de ticket, sévérité et codes analytiques sont paramétrables à partir des dictionnaires TicketParamModule=Configuration des variables du module TicketParamMail=Configuration de la messagerie -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=E-mail de l'expéditeur pour la notification des réponses +TicketEmailNotificationFromHelp=E-mail de l'expéditeur à utiliser pour envoyer l'e-mail de notification lorsqu'une réponse est fournie dans le backoffice. Par exemple noreply@example.com +TicketEmailNotificationTo=Notifier la création du ticket à cette adresse e-mail +TicketEmailNotificationToHelp=Si elle est présente, cette adresse e-mail sera notifiée de la création d'un ticket TicketNewEmailBodyLabel=Texte du message envoyé après la création d'un ticket TicketNewEmailBodyHelp=Le texte spécifié ici sera inséré dans l'e-mail confirmant la création d'un nouveau ticket depuis l'interface publique. Les informations sur la consultation du ticket sont automatiquement ajoutées. TicketParamPublicInterface=Configuration de l'interface publique\n TicketsEmailMustExist=Une adresse e-mail existante est requise pour créer un ticket TicketsEmailMustExistHelp=Pour accéder à l'interface publique et créer un nouveau ticket, votre compte doit déjà être existant. -TicketCreateThirdPartyWithContactIfNotExist=Créer un tiers avec contact s'il n'existe pas avec l'email saisi -TicketCreateThirdPartyWithContactIfNotExistHelp=Créer un tiers avec contact s'il n'existe pas avec l'email saisi +TicketCreateThirdPartyWithContactIfNotExist=Demandez le nom et le nom de l'entreprise pour les e-mails inconnus. +TicketCreateThirdPartyWithContactIfNotExistHelp=Vérifiez si un tiers ou un contact existe pour l'e-mail saisi. Sinon, demandez un nom et une raison sociale pour créer un tiers avec contact. PublicInterface=Interface publique TicketUrlPublicInterfaceLabelAdmin=URL alternative pour l'interface publique TicketUrlPublicInterfaceHelpAdmin=Il est possible de définir un alias vers le serveur et de rendre ainsi l'interface publique accessible avec une autre URL (le serveur doit agir comme un proxy sur cette nouvelle URL) @@ -148,7 +149,9 @@ TicketsAutoNotifyClose=Avertir automatiquement un tiers lors de la fermeture d'u TicketsAutoNotifyCloseHelp=Lors de la clôture d'un ticket, il vous sera proposé d'envoyer un message à l'un des contacts tiers. Lors de la fermeture massive, un message sera envoyé à un contact du tiers lié au ticket. TicketWrongContact=Le contact fourni ne fait pas partie des contacts actuels du ticket. E-mail non envoyé. TicketChooseProductCategory=Catégorie de produit pour les tickets -TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketChooseProductCategoryHelp=Sélectionnez la catégorie de produit du support de ticket. Celui-ci sera utilisé pour lier automatiquement un contrat à un ticket. +TicketUseCaptchaCode=Utiliser le code graphique (CAPTCHA) lors de la création d'un ticket +TicketUseCaptchaCodeHelp=Ajoute la vérification CAPTCHA lors de la création d'un nouveau ticket. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=Le ticket est à présent assigné TicketChangeType=Changer le type TicketChangeCategory=Changer le code analytique TicketChangeSeverity=Changer la sévérité -TicketAddMessage=Ajouter un message -AddMessage=Ajouter un message +TicketAddMessage=Ajouter un message privé MessageSuccessfullyAdded=Ticket créé TicketMessageSuccessfullyAdded=Message ajouté avec succès TicketMessagesList=Liste des messages @@ -204,8 +206,8 @@ TicketSeverity=Sévérité ShowTicket=Voir le ticket RelatedTickets=Tickets liés TicketAddIntervention=Créer intervention -CloseTicket=Fermer|Résoudre ticket -AbandonTicket=Abandonner le ticket +CloseTicket=Fermer|Résoudre +AbandonTicket=Abandonner CloseATicket=Fermer|Résoudre un ticket ConfirmCloseAticket=Confirmer la fermeture du ticket ConfirmAbandonTicket=Confirmez-vous la fermeture du ticket au statut 'Abandonné' @@ -219,18 +221,17 @@ SendMessageByEmail=Envoyer ce message par email TicketNewMessage=Nouveau message ErrorMailRecipientIsEmptyForSendTicketMessage=Le destinataire est vide. Aucun e-mail envoyé TicketGoIntoContactTab=Rendez-vous dans le tableau "Contacts" pour les sélectionner -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Entête de message TicketMessageMailIntroHelp=Ce texte est ajouté seulement au début de l'email et ne sera pas sauvegardé. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Signature -TicketMessageMailSignatureHelp=Ce texte est ajouté seulement à la fin de l'email et ne sera pas sauvegardé. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signature de l'email de réponse -TicketMessageMailSignatureHelpAdmin=Ce texte sera inséré après le message de réponse. +TicketMessageMailIntroText=Bonjour,
    Une nouvelle réponse a été ajoutée à un ticket que vous suivez. Voici le message :
    +TicketMessageMailIntroHelpAdmin=Ce texte sera inséré avant la réponse lors d'une réponse à un ticket depuis Dolibarr +TicketMessageMailFooter=Pied de page des messages +TicketMessageMailFooterHelp=Ce texte est ajouté uniquement à la fin du message envoyé par e-mail et ne sera pas enregistré. +TicketMessageMailFooterText=Message envoyé par %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Ce texte sera inséré après le message de réponse. TicketMessageHelp=Seul ce texte sera sauvegardé dans la liste des messages sur la fiche ticket. TicketMessageSubstitutionReplacedByGenericValues=Les variables de substitution sont remplacées par des valeurs génériques. +ForEmailMessageWillBeCompletedWith=Pour les e-mails envoyés à des utilisateurs externes, le message sera complété par TimeElapsedSince=Temps écoulé depuis TicketTimeToRead=Temps écoulé avant la lecture TicketTimeElapsedBeforeSince=Temps écoulé avant / depuis @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Un nouveau message a été posté sur TicketAssignedToYou=Ticket attribué TicketAssignedEmailBody=Vous avez été assigné au ticket #%s par %s MarkMessageAsPrivate=Marquer message comme privé +TicketMessageSendEmailHelp=Un email sera envoyé à tous les contacts assignés (contacts internes, mais aussi contacts externes sauf si l'option "%s" est cochée) TicketMessagePrivateHelp=Ce message ne s'affichera pas pour les utilisateurs externes TicketEmailOriginIssuer=Émetteur à l'origine des tickets InitialMessage=Message initial @@ -262,8 +264,8 @@ TicketNotCreatedFromPublicInterface=Non disponible. Le ticket n’a pas été cr ErrorTicketRefRequired=La référence du ticket est requise TicketsDelayForFirstResponseTooLong=Trop de temps écoulé entre l'ouverture du ticket et une première réponse. TicketsDelayFromLastResponseTooLong=Trop de temps écoulé depuis la dernière réponse de ce ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. -TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. +TicketNoContractFoundToLink=Aucun contrat n'a été trouvé pour être automatiquement lié à ce ticket. Veuillez lier un contrat manuellement. +TicketManyContractsLinked=De nombreux contrats ont été automatiquement liés à ce ticket. Assurez-vous de vérifier ce qui doit être choisi. # # Logs @@ -291,12 +293,12 @@ TicketNewEmailBody=Ceci est un message automatique pour confirmer l'enregistreme TicketNewEmailBodyCustomer=Ceci est un email automatique pour confirmer qu'un nouveau ticket vient d'être créé dans votre compte. TicketNewEmailBodyInfosTicket=Informations pour la surveillance du ticket TicketNewEmailBodyInfosTrackId=Numéro de suivi du ticket : %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=Vous pouvez voir la progression du ticket en cliquant sur le lien suivant TicketNewEmailBodyInfosTrackUrlCustomer=Vous pouvez voir la progression du ticket en cliquant sur le lien ci-dessus. TicketCloseEmailBodyInfosTrackUrlCustomer=Vous pouvez consulter l'historique de ce ticket en cliquant sur le lien suivant TicketEmailPleaseDoNotReplyToThisEmail=Merci de ne pas répondre directement à ce courriel ! Utilisez le lien pour répondre via l'interface. TicketPublicInfoCreateTicket=Ce formulaire vous permet d'enregistrer un ticket dans notre système de gestion. -TicketPublicPleaseBeAccuratelyDescribe=Veuillez décrire avec précision le problème. Fournissez le plus d'informations possibles pour nous permettre d'identifier correctement votre demande. +TicketPublicPleaseBeAccuratelyDescribe=Veuillez décrire précisément votre question. Fournissez le plus d'informations possible pour nous permettre d'identifier correctement votre demande. TicketPublicMsgViewLogIn=Merci d'entrer le code de suivi du ticket TicketTrackId=ID de suivi publique OneOfTicketTrackId=Un de vos ID de suivi diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang index b380258fc99..1d2873de4d9 100644 --- a/htdocs/langs/fr_FR/users.lang +++ b/htdocs/langs/fr_FR/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Supprimer du groupe PasswordChangedAndSentTo=Mot de passe changé et envoyé à %s. PasswordChangeRequest=Demande de changement de mot de passe pour %s PasswordChangeRequestSent=Demande de changement de mot de passe pour %s envoyée à %s. -IfLoginExistPasswordRequestSent=Si cet identifiant est un compte valide, un e-mail de ré-initialisation du mot de passe a été envoyé. +IfLoginExistPasswordRequestSent=Si cette connexion est un compte valide (avec un e-mail valide), un e-mail de réinitialisation du mot de passe a été envoyé. IfEmailExistPasswordRequestSent=Si cet email est un compte valide, un e-mail de ré-initialisation du mot de passe a été envoyé. ConfirmPasswordReset=Confirmer réinitialisation du mot de passe MenuUsersAndGroups=Utilisateurs & Groupes @@ -68,7 +68,6 @@ CreateDolibarrLogin=Créer un compte utilisateur CreateDolibarrThirdParty=Créer un tiers LoginAccountDisableInDolibarr=Le compte est désactivé sur Dolibarr. UsePersonalValue=Utiliser valeur personnalisée -InternalUser=Utilisateur interne ExportDataset_user_1=Utilisateurs et attributs DomainUser=Utilisateur du domaine %s Reactivate=Réactiver @@ -76,7 +75,7 @@ CreateInternalUserDesc=Ce formulaire permet de créer un utilisateur interne à InternalExternalDesc=Un utilisateur interne est un utilisateur qui fait partie de votre société/institution ou un partenaire en dehors de votre organisation qui peut avoir besoin de voir plus de données que les données en rapport avec sa société (le système de permission définira ce qu'il peut ou ne peut pas voir).
    Un utilisateur externe est un compte utilisateur pour un client, fournisseur ou autre qui ne doit voir QUE les données en rapport avec lui même (La création d'un utilisateur externe pour un tiers peut etre fait depuis la fiche d'un contact de tiers).

    Dans les deux cas, vous devez définir les permissions des fonctionnalités dont l'utilisateur a besoin. PermissionInheritedFromAGroup=La permission est accordée car héritée d'un groupe auquel appartient l'utilisateur. Inherited=Hérité -UserWillBe=Créé par l'utilisateur +UserWillBe=L'utilisateur créé sera UserWillBeInternalUser=L'utilisateur créé sera un utilisateur interne (car non lié à un tiers en particulier) UserWillBeExternalUser=L'utilisateur créé sera un utilisateur externe (car lié à un tiers en particulier) IdPhoneCaller=Identifiant appelant (téléphone) @@ -124,7 +123,9 @@ ValidatorIsSupervisorByDefault=Par défaut, le valideur est le responsable hiér UserPersonalEmail=Email personnel UserPersonalMobile=Téléphone portable personnel WarningNotLangOfInterface=Attention, c'est la langue principale parlée par l'utilisateur, pas la langue de l'interface qu'il a choisi de voir. Pour changer la langue de l'interface visible par cet utilisateur, allez sur l'onglet %s -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +DateLastLogin=Date de la dernière connexion +DatePreviousLogin=Date de connexion précédente +IPLastLogin=IP dernière connexion +IPPreviousLogin=Connexion précédente IP +ShowAllPerms=Afficher toutes les lignes d'autorisation +HideAllPerms=Masquer toutes les lignes d'autorisation diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang index 53e07d0dd2e..da4c702a2cb 100644 --- a/htdocs/langs/fr_FR/website.lang +++ b/htdocs/langs/fr_FR/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Code +WebsiteName=Nom du site web WebsiteSetupDesc=Créez ici les sites Web que vous souhaitez utiliser. Ensuite, allez dans le menu Sites Web pour les éditer. DeleteWebsite=Effacer site web ConfirmDeleteWebsite=Êtes-vous sûr de vouloir supprimer ce site web. Toutes les pages et le contenu seront également supprimés. Les fichiers téléversés (comme ceux dans le répertoire medias, dans le module GED, ...) seront conservés. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Ajout en bas de l'en-tête HTML (commun à toutes les pages) WEBSITE_ROBOT=Fichier robot (robots.txt) WEBSITE_HTACCESS=Fichier .htaccess du site web WEBSITE_MANIFEST_JSON=Fichier manifest.json de site Web -WEBSITE_README=Fichier README.md WEBSITE_KEYWORDSDesc=Utiliser une virgule pour séparer les valeurs -EnterHereLicenseInformation=Entrez ici les métadonnées ou les informations de licence pour créer un fichier README.md. Si vous distribuez votre site Web en tant que modèle, le fichier sera inclus dans le package. +EnterHereReadmeInformation=Entrez ici une description du site Web. Si vous distribuez votre site Web en tant que modèle, le fichier sera inclus dans le package de modèles. +EnterHereLicenseInformation=Entrez ici la LICENCE du code du site Web. Si vous distribuez votre site Web en tant que modèle, le fichier sera inclus dans le package de modèles. HtmlHeaderPage=En-tête HTML (spécifique pour la page uniquement) PageNameAliasHelp=Nom ou alias de la page.
    Cet alias est également utilisé pour forger une URL SEO lorsque le site Web est exécuté à partir d'un hôte virtuel d'un serveur Web (comme Apache, Nginx, ...). Utilisez le bouton "%s" pour modifier cet alias. EditTheWebSiteForACommonHeader=Remarque: Si vous souhaitez définir un en-tête personnalisé pour toutes les pages, modifiez l'en-tête au niveau du site plutôt qu'au niveau page/container. @@ -42,6 +43,8 @@ ViewPageInNewTab=Pré-visualiser la page dans un nouvel onglet SetAsHomePage=Définir comme page d'accueil RealURL=URL réelle ViewWebsiteInProduction=Pré-visualiser le site web en utilisant l'URL de la page d'accueil +Virtualhost=Hôte virtuel ou nom de domaine +VirtualhostDesc=Le nom de l'hôte virtuel ou du domaine (par exemple : www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Utilisation avec Apache/NGinx/...
    Créez sur votre serveur Web (Apache, Nginx, ...) un hôte virtuel dédié avec PHP activé et un répertoire racine sur
    %s ExampleToUseInApacheVirtualHostConfig=Exemple à utiliser dans la configuration de l'hôte virtuel Apache: YouCanAlsoTestWithPHPS= Utilisation avec un serveur PHP incorporé
    Sous environnement de développement, vous pouvez préférer tester le site avec le serveur Web PHP intégré (PHP 5.5 requis) en exécutant
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/conteneur(s) régénéré(s) RegenerateWebsiteContent=Régénérer les fichiers de cache du site Web AllowedInFrames=Autorisé dans les Frames DefineListOfAltLanguagesInWebsiteProperties=Définir la liste des langues disponibles dans les propriétés du site web. -GenerateSitemaps=Générer un fichier de plan du site +GenerateSitemaps=Générer le fichier sitemap.xml du site Web ConfirmGenerateSitemaps=Si vous confirmez, vous effacerez le fichier de plan du site existant... ConfirmSitemapsCreation=Confirmer la génération du plan du site SitemapGenerated=Le plan du site %sa été généré @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Le Favicon doit être en png ErrorFaviconSize=Le Favicon doit être de taille 16x16, 32x32 ou 64x64 FaviconTooltip=Téléverser une image qui doit être au format png (16x16, 32x32 ou 64x64) +NextContainer=Page/conteneur suivant(e) +PreviousContainer=Page/conteneur précédent(e) +WebsiteMustBeDisabled=Le site web doit avoir le statut "%s" +WebpageMustBeDisabled=La page Web doit avoir le statut "%s" +SetWebsiteOnlineBefore=Lorsque le site Web est hors ligne, toutes les pages sont hors ligne. Changez d'abord le statut du site Web. +Booking=Réservation +Reservation=Réservation diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index f91ffbd55f3..6620cea6f07 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Facture en attente de virement AmountToWithdraw=Somme à prélever AmountToTransfer=Montant du virement NoInvoiceToWithdraw=Aucune facture ouverte pour '%s' n'est en attente. Allez sur l'onglet '%s' sur la facture pour faire une demande. -NoSupplierInvoiceToWithdraw=Aucune facture fournisseur avec des demandes de virement ouvertes n'est en attente. Allez sur l'onglet '%s' sur la fiche facture pour faire une demande. +NoSupplierInvoiceToWithdraw=Aucune facture fournisseur avec '%s' ouvert n'est en attente. Allez sur l'onglet '%s' sur la fiche de facturation pour faire une demande. ResponsibleUser=Utilisateur responsable WithdrawalsSetup=Configuration des prélèvements CreditTransferSetup=Configuration des virements bancaires @@ -42,6 +42,7 @@ CreditTransferStatistics=Statistiques sur les virements Rejects=Rejets LastWithdrawalReceipt=Les %s derniers bons de prélèvements MakeWithdrawRequest=Faire une demande de prélèvement +MakeWithdrawRequestStripe=Faire une demande de paiement par prélèvement automatique via Stripe MakeBankTransferOrder=Faire une demande de virement WithdrawRequestsDone=%s demandes de prélèvements enregistrées BankTransferRequestsDone=%s demandes de prélèvements enregistrées @@ -100,8 +101,11 @@ CreditDate=Crédité le WithdrawalFileNotCapable=Impossible de générer le fichier de reçu des prélèvement pour votre pays %s (Votre pays n'est pas supporté) ShowWithdraw=Afficher ordre de prélèvement IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Toutefois, si la facture a au moins une demande de prélèvement non traité, elle ne sera pas classée payée afin de permettre le prélèvement d'abord. -DoStandingOrdersBeforePayments=Cet onglet vous permet de demander un prélèvement. Une fois la demande faite, allez dans le menu Banque->Paiement par prélèvement pour générer l'ordre de prélèvement. Lorsque l'ordre de paiement est clos, le paiement sur les factures seront automatiquement enregistrés, et les factures fermées si le reste à payer est nul. -DoCreditTransferBeforePayments=Cet onglet vous permet de demander un ordre de virement. Une fois fait, allez dans le menu Banque ->Paiements par virement pour gérer l'ordre de virement. Lorsque le virement est clôturé, le paiement des factures fournisseurs sera automatiquement enregistré et les factures clôturées si le solde à payer est nul. +DoStandingOrdersBeforePayments=Cet onglet vous permet de demander un ordre de prélèvement automatique. Une fois fait, vous pouvez vous rendre dans le menu "Banque->Paiement par prélèvement" pour générer et gérer un fichier d'ordre de prélèvement. +DoStandingOrdersBeforePayments2=Vous pouvez également envoyer une demande directement à un processeur de paiement SEPA comme Stripe, ... +DoStandingOrdersBeforePayments3=Lors de la clôture d'un ordre de prélèvement, le règlement des factures sera automatiquement enregistré, et les factures clôturées si le reste à payer est nul. +DoCreditTransferBeforePayments=Cet onglet vous permet de demander un ordre de virement. Une fois cela fait, allez dans le menu "Banque->Paiement par virement" pour générer et gérer un fichier d'ordre de virement. +DoCreditTransferBeforePayments3=A la clôture de l'ordre de virement, le règlement des factures sera automatiquement enregistré, et les factures clôturées si le reste à payer est nul. WithdrawalFile=Fichier de prélèvement CreditTransferFile=Fichier de virement SetToStatusSent=Mettre au statut "Fichier envoyé" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Impossible de créer une demande de prélèvement SepaMandate=Mandat prélèvement SEPA SepaMandateShort=Mandat SEPA PleaseReturnMandate=Merci de retourner ce formulaire mandat par email à %s ou par courrier à -SEPALegalText=En signant ce formulaire de mandat, vous autorisez (A) %s à envoyer des instructions à votre banque pour débiter votre compte et (B) votre banque à débiter votre compte conformément aux instructions de %s. Dans le cadre de vos droits, vous avez droit à un remboursement de votre banque selon les termes et conditions de votre accord avec votre banque. Vos droits concernant le mandat ci-dessus sont expliqués dans une déclaration que vous pouvez obtenir auprès de votre banque. +SEPALegalText=En signant ce formulaire de mandat, vous autorisez (A) %s et son prestataire de services de paiement à envoyer des instructions à votre banque pour débiter votre compte et (B) votre banque à débiter votre compte conformément aux instructions de %s. Dans le cadre de vos droits, vous avez droit à un remboursement de votre banque selon les termes et conditions de votre accord avec votre banque. Vos droits concernant le mandat ci-dessus sont expliqués dans une déclaration que vous pouvez obtenir auprès de votre banque. CreditorIdentifier=Identifiant créditeur CreditorName=Nom du créditeur SEPAFillForm=(B) Remplir tous les champs marqués * @@ -137,7 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Date d'éxecution CreateForSepa=Créer fichier de prélèvement automatique ICS=Identifiant du créancier - ICS -IDS=Debitor Identifier +IDS=Identifiant débiteur END_TO_END=Balise XML SEPA "EndToEndId" - Identifiant unique attribué par transaction USTRD=Balise XML SEPA "Non structurée" ADDDAYS=Ajouter des jours à la date d'exécution @@ -156,4 +160,4 @@ ErrorICSmissing=ICS manquant pour le compte bancaire %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Le montant total de l'ordre de prélèvement diffère de la somme des lignes WarningSomeDirectDebitOrdersAlreadyExists=Attention : Il y a déjà des ordres de prélèvement automatique en attente (%s) demandés pour un montant de %s WarningSomeCreditTransferAlreadyExists=Attention : Il y a déjà des virements en attente (%s) demandés pour un montant de %s -UsedFor=Used for %s +UsedFor=Utilisé pour %s diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang index 372a83d73b9..c1d12c6751a 100644 --- a/htdocs/langs/fr_FR/workflow.lang +++ b/htdocs/langs/fr_FR/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classer la ou les com descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classer le bon de commande source liée comme reçu lorsqu'une réception est validée (et si la quantité reçue par toutes les réceptions est la même que dans le bon de commande à mettre à jour) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classer le bon de commande source lié comme reçu lorsqu'une réception est clôturée (et si la quantité reçue par toutes les réceptions est la même que dans le bon de commande à mettre à jour) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Classer les réceptions en "facturées" lorsqu'une commande fournisseur liée est validée +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classer les réceptions en "facturées" lorsqu'une facture d'achat liée est validée (et si le montant de la facture est égal au montant total des réceptions liées) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=A la création d'un ticket, les contacts liés à au tiers sont liés au ticket. descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Les contacts liés au tiers du ticket sont utilisés pour le ticket @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Fermer toutes les interventions liées au AutomaticCreation=Création automatique AutomaticClassification=Classification automatique # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classer l'expédition source liée comme fermée lorsque la facture client est validée +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classer l'expédition source liée comme fermée lorsque la facture client est validée (et si le montant de la facture est le même que le montant total des expéditions liées) AutomaticClosing=Fermeture automatique AutomaticLinking=Liaison automatique diff --git a/htdocs/langs/fr_GA/propal.lang b/htdocs/langs/fr_GA/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/fr_GA/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/gl_ES/accountancy.lang b/htdocs/langs/gl_ES/accountancy.lang index 6616dc76f96..1bcb5190340 100644 --- a/htdocs/langs/gl_ES/accountancy.lang +++ b/htdocs/langs/gl_ES/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Países non CEE CountriesInEECExceptMe=Todos os paises incluidos na CEE excepto %s CountriesExceptMe=Todos os países excepto %s AccountantFiles=Exportar documentos contables -ExportAccountingSourceDocHelp=Con esta ferramenta, pode exportar os eventos de orixe (listaxe en CSV e PDF) que se empregan para xerar a súa contabilidade. +ExportAccountingSourceDocHelp=Con esta ferramenta, pode buscar e exportar os eventos de orixe que se utilizan para xerar a súa contabilidade.
    O ficheiro ZIP exportado conterá as listas de elementos solicitados en CSV, así como os seus ficheiros anexos no seu formato orixinal (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Para exportar as súas revistas, use a entrada de menú %s - %s +ExportAccountingProjectHelp=Especifique un proxecto se precisa un informe contable só para un proxecto específico. Os informes de gastos e pagamentos de préstamos non están incluídos nos informes do proxecto. VueByAccountAccounting=Ver por conta contable VueBySubAccountAccounting=Ver pos subconta contable @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Conta contable principal para provedores non d MainAccountForUsersNotDefined=Conta contable principal para usuarios non definida na configuración MainAccountForVatPaymentNotDefined=Conta contable principal para pagos de IVE non definida na configuración MainAccountForSubscriptionPaymentNotDefined=Conta contable principal para o pago de afiliacións non definida na configuración +UserAccountNotDefined=Conta de contabilidade para o usuario non definida na configuración AccountancyArea=Área contabilidade AccountancyAreaDescIntro=O uso do módulo de contabilidade realízase en varios pasos: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Desactivar transaccións directas en conta bancaria ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilitar exportación de borradores al diario ACCOUNTANCY_COMBO_FOR_AUX=Activar a listaxe combinada para a conta subsidiaria (pode ser lento se ten moitos terceiros, rompe coa capacidade de buscar unha parte do valor) ACCOUNTING_DATE_START_BINDING=Define unha data para comezar a ligar e transferir na contabilidade. Por debaixo desta data, as transaccións non se transferirán á contabilidade. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Na transferencia de contabilidade, selecciona amosar o período por defecto +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Na transferencia de contabilidade, cal é o período seleccionado por defecto -ACCOUNTING_SELL_JOURNAL=Diario de vendas -ACCOUNTING_PURCHASE_JOURNAL=Diario de compras -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de operacións diversas +ACCOUNTING_SELL_JOURNAL=Diario de vendas (vendas e devolucións) +ACCOUNTING_PURCHASE_JOURNAL=Diario de compras (compras e devolucións) +ACCOUNTING_BANK_JOURNAL=Diario de caixa (recibos e desembolsos) ACCOUNTING_EXPENSEREPORT_JOURNAL=Informe de gastos diario -ACCOUNTING_SOCIAL_JOURNAL=Diario social +ACCOUNTING_MISCELLANEOUS_JOURNAL=Xornal xeral ACCOUNTING_HAS_NEW_JOURNAL=Ten un novo diario +ACCOUNTING_INVENTORY_JOURNAL=Diario de inventario +ACCOUNTING_SOCIAL_JOURNAL=Diario social ACCOUNTING_RESULT_PROFIT=Conta contable de resultado (Beneficio) ACCOUNTING_RESULT_LOSS=Conta contable de resultado (Perdas) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Diario de peche -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta contable de transferencia bancaria +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta (do Plan Contable) que se utilizará como conta para transaccións de transferencias bancarias TransitionalAccount=Conta de transferencia bancaria de transición -ACCOUNTING_ACCOUNT_SUSPENSE=Conta contable de operacións pendentes de asignar -DONATION_ACCOUNTINGACCOUNT=Conta contable de rexistro de doacións/subvencións -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conta contable de rexistro subscricións +ACCOUNTING_ACCOUNT_SUSPENSE=Conta (do Plan Contable) que se utilizará como conta para os fondos non asignados recibidos ou pagados, é dicir, fondos "agardando" +DONATION_ACCOUNTINGACCOUNT=Conta (do Plan Contable) que se utilizará para rexistrar doazóns (módulo de Doazóns) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conta (do Plan Contable) que se utilizará para rexistrar subscricións de asociados (módulo de adhesión - se asociado rexistrado sen factura) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Conta contable por defecto para rexistrar os ingresos realizados polo cliente -UseAuxiliaryAccountOnCustomerDeposit=Use subcontas nas liñas de depósito de clientes +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Conta (do Plan Contable) que se utilizará como conta predeterminada para rexistrar o depósito do cliente +UseAuxiliaryAccountOnCustomerDeposit=Almacenar a conta do cliente como unha conta individual para as liñas de anicipo no Libro Maior subsidiario (se está desactivada, a conta individual para as liñas de anticipo permanecerá baleira) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Conta (do Plan Contable) que se utilizará como predeterminada +UseAuxiliaryAccountOnSupplierDeposit=Almacenar a conta do provedor como unha conta individual no libro maior subsidiario para as liñas de anticipo (se está desactivada, a conta individual para as liñas de anticipo permanecerá baleira) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Conta contable predeterminada para os produtos comprados (usada se non está definida na folla de produtos) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Conta contable predeterminada para os produtos comprados na CEE (usada se non está definida na folla de produto) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Conta contable predeterminada para os produtos comprados e importados fóra da CEE (usada se non está definida na folla de produto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conta contable predeterminada para os produtos vendidos (usada se non está definida na folla de produtos) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Conta contable predeterminada para os produtos vendidos na CEE (usada se non está definida na folla de produto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Conta contable predeterminada para os produtos vendidos e exportados fóra da CEE (usada se non está definida na folla de produto) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os produtos adquiridos no mesmo país (utilizada se non está definida na ficha do produto) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os produtos comprados na CEE a outro país da CEE (utilizada se non está definida na ficha do produto) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os produtos comprados e importados de calquera outro país estranxeiro (utilizado se non está definido na ficha do produto) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os produtos vendidos (utilizada se non está definida na ficha do produto) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os produtos vendidos desde a CEE a outro país da CEE (utilizada se non está definida na ficha do produto) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os produtos vendidos e exportados a calquera outro país estranxeiro (utilizado se non está definido na ficha do produto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta contable predeterminada para os servizos comprados (usada se non está definida na folla de servizos) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Conta contable predeterminada para os servizos comprados na CEE (usada se non está definida na folla de servizos) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Conta contable predeterminada para os servizos comprados e importados fóra da CEE (úsase se non está definida na folla de servizos) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta contable predeterminada para os servizos vendidos (usada se non está definida na folla de servizos) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Conta contable predeterminada para os servizos vendidos en EU (usada se non está definida na folla de servizos) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Conta contable predeterminada para os servizos vendidos e exportados fora da EU (usada se non está definida na folla de servizos) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os servizos adquiridos no mesmo país (utilizada se non está definida na folla de servizo) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os servizos adquiridos de CEE a outro país da CEE (utilizado se non está definido na folla de servizo) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os servizos adquiridos e importados doutro país estranxeiro (utilizado se non está definido na folla de servizo) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os servizos prestados (utilizada se non está definida na folla de servizos) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os servizos prestados desde a CEE a outro país da CEE (utilizada se non está definida na folla de servizo) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para os servizos prestados e exportados a calquera outro país estranxeiro (utilizado se non está definido na folla de servizo) Doctype=Tipo de documento Docdate=Data @@ -211,7 +217,7 @@ Codejournal=Diario JournalLabel=Etiqueta diario NumPiece=Apunte TransactionNumShort=Núm. transacción -AccountingCategory=Grupo persoalizado +AccountingCategory=Grupo de contas personalizado GroupByAccountAccounting=Agrupar por conta contable GroupBySubAccountAccounting=Agrupar por subconta contable AccountingAccountGroupsDesc=Pode definir aquí algúns grupos de contas contables. Serán usadas para informes de contabilidade persoalizados. @@ -265,13 +271,13 @@ Reconcilable=Reconciliable TotalVente=Total facturación antes de impostos TotalMarge=Total marxe vendas -DescVentilCustomer=Consulte aquí a lista de liñas de facturas a clientes ligadas (ou non) a unha conta contable de produto -DescVentilMore=Na maioría dos casos, se utiliza produtos ou servizos predefinidos e establece a conta contable na ficha do produto/servizo, a aplicación será capaz de facer toda a contabilización entre as liñas da factura e a conta contable do seu plan xeral contable, cun clic no botón "%s", Se non estableceu a conta contable na ficha do produto/servizo ou se aínda ten algunhas liñas non contabilizadas a alguna conta, terá que facer unha contabilización manual dende o menú "%s". -DescVentilDoneCustomer=Consulte aquí as liñas de facturas a clientes e as contas contables dos seus produtos -DescVentilTodoCustomer=Contabilizar liñas de factura aínda non contabilizadas cunha conta contable de produto -ChangeAccount=Cambie a conta do produto/servizo para as liñas seleccionadas á conta: +DescVentilCustomer=Consulte aquí a listaxe de liñas de factura de clientes ligadas (ou non) a unha conta de produto do plan contable +DescVentilMore=Na maioría dos casos, se usa produtos ou servizos predefinidos e establece a conta (a partir do plan contable) na tarxeta do produto/servizo, a aplicación poderá facer todas as ligazóns entre as liñas de factura e a conta contable do seu plan contable, só cun clic no botón "%s" . Se a conta non se estableceu nas tarxetas de produtos/servizos ou aínda ten algunhas liñas non ligadas a unha conta, terá que facer unha ligazón manual desde o menú " %s ". +DescVentilDoneCustomer=Consulte aquí a listaxe das liñas de facturas dos clientes e a súa conta de produto do plan contable +DescVentilTodoCustomer=Ligar as liñas de factura que non están ligadas a unha conta de produto do plan contable +ChangeAccount=Cambie a conta de produto/servizo (do plan contable) para as liñas seleccionadas coa seguinte conta: Vide=- -DescVentilSupplier=Consulte aquí a listaxe de liñas de facturas de provedores ligadas (ou non) a unha conta contable de produto +DescVentilSupplier=Consulte aquí a listaxe de liñas de facturas de provedores ligadas ou aínda non ligadas a unha conta de produto desde o plan contable (só son visibles os rexistros non transferidos na contabilidade) DescVentilDoneSupplier=Consulte aquí a listaxe de facturas de provedores e as súas contas contables DescVentilTodoExpenseReport=Contabilizar liñas de informes de gastos aínda non contabilizadas cunha conta contable de gastos DescVentilExpenseReport=Consulte aquí a listaxe de liñas de informes de gastos (ou non) a unha conta contable de gastos @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Se configura as contas contables dos tipos de inform DescVentilDoneExpenseReport=Consulte aquí as liñas de informes de gastos e as súas contas contables Closure=Peche anual -DescClosure=Consulte aquí o número de movementos por mes que aínda non están validados e bloqueados +DescClosure=Consulte aquí o número de movementos por mes aínda non validados e bloqueados OverviewOfMovementsNotValidated=Visión xeral dos movementos non validados e bloqueados AllMovementsWereRecordedAsValidated=Todos os movementos rexistráronse como validados e bloqueados NotAllMovementsCouldBeRecordedAsValidated=Non se puideron rexistrar todos os movementos como validados e bloqueados -ValidateMovements=Validar e bloquear o rexistro... +ValidateMovements=Validar e bloquear movementos... DescValidateMovements=Prohíbese calquera modificación ou eliminación de rexistros. Todas as entradas para un exercicio deben validarse doutro xeito ou non será posible pechalo ValidateHistory=Contabilizar automáticamente AutomaticBindingDone=Ligazóns automáticas finalizadas (%s) -A ligazón automática non é posible para algún rexistro (%s) -ErrorAccountancyCodeIsAlreadyUse=Erro, non pode eliminar esta conta xa que está a ser utilizada +ErrorAccountancyCodeIsAlreadyUse=Produciuse un erro, non pode eliminar nin desactivar esta conta do plan contable porque está en uso MvtNotCorrectlyBalanced=Asento con balance contable incorrecto. Débito = %s e crédito = %s Balancing=Saldo FicheVentilation=Ficha contable GeneralLedgerIsWritten=Transaccións escritas no Libro Maior GeneralLedgerSomeRecordWasNotRecorded=Algunhas das operaciones non poden contabilizarse. Se non hai outra mensaxe de erro, é probable que xa estén contabilizadas. NoNewRecordSaved=Non hai máis rexistro para transferir -ListOfProductsWithoutAccountingAccount=Listaxe de produtos sen contas contables +ListOfProductsWithoutAccountingAccount=Listaxe de produtos non ligados a ningunha conta do plan contable ChangeBinding=Cambiar a unión Accounted=Contabilizada no Libro Maior NotYetAccounted=Aínda non transferido á contabilidade @@ -322,6 +328,7 @@ AccountingJournalType4=Banco AccountingJournalType5=Informes de gastos AccountingJournalType8=Inventario AccountingJournalType9=Haber +GenerationOfAccountingEntries=Xeración de asentos contables ErrorAccountingJournalIsAlreadyUse=Este diario xa está a ser utilizado AccountingAccountForSalesTaxAreDefinedInto=Nota: A conta contable do IVE nas vendas defínese no menú %s - %s NumberOfAccountancyEntries=Número de entradas @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Número de movementos ACCOUNTING_DISABLE_BINDING_ON_SALES=Desactivar a ligazón e transferencia na contabilidade das vendas (as facturas do cliente non se terán en conta na contabilidade) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactivar a ligazón e transferencia na contabilidade das compras (as facturas do provedor non se terán en conta na contabilidade) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Desactivar a ligazón e transferencia na contabilidade dos informes de gastos (os informes de gastos non se terán en conta na contabilidade) +ACCOUNTING_ENABLE_LETTERING=Activa a función de letras na contabilidade ## Export +NotExportLettering=Non exporte as letras ao xerar o ficheiro NotifiedExportDate=Marcar as liñas exportadas como Exportadas (para modificar unha liña, terá que eliminar toda a transacción e transferila de novo á contabilidade) -NotifiedValidationDate=Validar e bloquear as entradas exportadas (o mesmo efecto que a función "Peche", a modificación e eliminación das liñas DEFINITIVAMENTE non será posible) +NotifiedValidationDate=Validar e bloquear as entradas exportadas (o mesmo efecto que a función "%s", a modificación e eliminación das liñas DEFINITIVAMENTE non será posible) DateValidationAndLock=Data validación e bloqueo ConfirmExportFile=Confirmación da xeración do ficheiro de exportación contable? ExportDraftJournal=Exportar libro borrador @@ -398,7 +407,11 @@ Calculated=Calculado Formula=Fórmula ## Reconcile +LetteringAuto=Reconciliación automática +LetteringManual=Manual de conciliación Unlettering=Voltar a non conciliado +UnletteringAuto=Auto desconciliar +UnletteringManual=Desconciliar manual AccountancyNoLetteringModified=Non se modificou ningunha conciliación AccountancyOneLetteringModifiedSuccessfully=Unha conciliación modificada con éxito AccountancyLetteringModifiedSuccessfully=%s conciliación modificada correctamente @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Unha desconciliación modificouse AccountancyUnletteringModifiedSuccessfully=%s desconciliación modificada correctamente ## Confirm box -ConfirmMassUnlettering=Confirmación de desconciliación masiva -ConfirmMassUnletteringQuestion=Está certo de querer anular a conciliación dos rexistros seleccionados %s? +ConfirmMassUnletteringAuto=Confirmación masiva de desconciliación automática +ConfirmMassUnletteringManual=Confirmación masiva de desconciliación manual +ConfirmMassUnletteringQuestion=Esta certo de querer anular a conciliación do(s) rexistro(s) seleccionado(s) %s? ConfirmMassDeleteBookkeepingWriting=Confirmación borrado masivo ConfirmMassDeleteBookkeepingWritingQuestion=Isto eliminará a transacción da contabilidade (eliminaranse todas as liñas relacionadas coa mesma transacción) Está certo de querer eliminar o(s) rexistro(s) seleccionado(s) %s? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sent AccountancyErrorMismatchLetterCode=Erro no código de conciliación AccountancyErrorMismatchBalanceAmount=O saldo (%s) non é igual a 0 AccountancyErrorLetteringBookkeeping=Producíronse erros nas transaccións: %s +ErrorAccountNumberAlreadyExists=O número contable %s xa existe ## Import ImportAccountingEntries=Entradas contables @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Código multidivisa (Idivisa) DateExport=Data de exportación WarningReportNotReliable=Advertencia, este informe non está baseado no Libro Maior, polo que non contén modificacións manualmente realizadas no Libro Maior. Se o seu diario está actualizado, a vista contable é mais precisa. ExpenseReportJournal=Informe de gastos diario -InventoryJournal=Diario de inventario NAccounts=%s contas diff --git a/htdocs/langs/gl_ES/admin.lang b/htdocs/langs/gl_ES/admin.lang index c1cd56fe1bd..a45c5ed97ba 100644 --- a/htdocs/langs/gl_ES/admin.lang +++ b/htdocs/langs/gl_ES/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Colación de clientes WarningModuleNotActive=O módulo %s debe ser activado WarningOnlyPermissionOfActivatedModules=Atención, só os permisos relacionados cos módulos activados indícanse aquí. Pode activar os outros módulos na páxina Configuración->Módulos DolibarrSetup=Instalación/Actualización de Dolibarr -InternalUser=Usuario interno -ExternalUser=Usuario externo InternalUsers=Usuarios internos ExternalUsers=Usuarios externos UserInterface=Interface de usuario @@ -109,7 +107,7 @@ NextValueForReplacements=Próximo valor (rectificativas) MustBeLowerThanPHPLimit=Nota: A configuración actual do PHP limita o tamaño máximo de subida a %s %s, calquera que sexa o valor deste parámetro NoMaxSizeByPHPLimit=Ningunha limitación interna configurada no seu servidor PHP MaxSizeForUploadedFiles=Tamaño máximo dos ficheiros a subir (0 para desactivar a subida) -UseCaptchaCode=Utilización de código gráfico (CAPTCHA) na página de inicio de sesión +UseCaptchaCode=Use código gráfico (CAPTCHA) na páxina de inicio de sesión e nalgunhas páxinas públicas AntiVirusCommand=Ruta completa ao comando do antivirus AntiVirusCommandExample=Exemplo para ClamAv (require clamav-daemon):/usr/bin/clamdscan
    Exemplo para ClamWin (moi moi lento): c::\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Mais parámetors na liña de comandos @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Host SMTP/SMTPS (Valor por defecto en php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porto SMTP/SMTPS (Non definido en PHP en sistemas de tipo Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nome/ip servidor SMTP/SMTPS (Non definido en PHP en sistemas tipo Unix) MAIN_MAIL_EMAIL_FROM=Correo electrónico do remitente para correos electrónicos automáticos (valor predeterminado en php.ini: %s ) +EMailHelpMsgSPFDKIM=Para evitar que os correos electrónicos de Dolibarr sexan clasificados como spam, asegúrese de que o servidor estea autorizado para enviar correos electrónicos desde este enderezo mediante a configuración SPF e DKIM MAIN_MAIL_ERRORS_TO=Correo electrónico utilizado enviar os correos electrónicos con erros (campos "Errors-To" nos correos electrónicos enviados) MAIN_MAIL_AUTOCOPY_TO= Enviar a copia oculta (Bcc) de todos os correos electrónicos enviados a MAIN_DISABLE_ALL_MAILS=Deshabilitar todo o envío de correo electrónico (para fins de proba ou demostracións) @@ -439,8 +438,10 @@ Unique=Único Boolean=Boolean (unha caixa de verificación) ExtrafieldPhone = Teléfono ExtrafieldPrice = Prezo +ExtrafieldPriceWithCurrency=Prezo con moeda ExtrafieldMail = Correo ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Listaxe de selección ExtrafieldSelectList = Listaxe dende unha taboa ExtrafieldSeparator=Separador (non é un campo) @@ -471,13 +472,13 @@ KeepEmptyToUseDefault=Deixe baleiro este campo para usar o valor por defecto KeepThisEmptyInMostCases=En moitos casos, pode deixar este campo baleiro. DefaultLink=Ligazón por defecto SetAsDefault=Establecer por defecto -ValueOverwrittenByUserSetup=Atención: Este valor pode ser sobreescrito por un valor específico da configuración do usuario (cada usuario pode ter a súa propia url clicktodial) +ValueOverwrittenByUserSetup=Atención: Este valor pode ser sobrescrito por un valor específico da configuración do usuario (cada usuario pode ter a súa propia url clicktodial) ExternalModule=Módulo externo InstalledInto=Instalado no directory %s BarcodeInitForThirdparties=Inicio de código de barras masivo para terceiros BarcodeInitForProductsOrServices=Inicio masivo de código de barras para produtos ou servizos CurrentlyNWithoutBarCode=Actualmente ten %s rexistros de %s %s sen código de barras definido. -InitEmptyBarCode=Iniciar valor para os %s rexistros baleiros. +InitEmptyBarCode=Valor inicial para os códigos de barras baleiros %s EraseAllCurrentBarCode=Eliminar todos os valores actuais de códigos de barras ConfirmEraseAllCurrentBarCode=¿Está certo de querer eliminar todos os rexistros actuais de códigos de barras? AllBarcodeReset=Todos os códigos de barras foron eliminados @@ -501,10 +502,11 @@ WarningPHPMail=AVISO: a configuración para enviar correos electrónicos desde a WarningPHPMailA=- Usar o servidor do fornecedor de servizos de correo electrónico aumenta a confiabilidade do seu correo electrónico, polo que aumenta a entrega sen ser marcado como SPAM WarningPHPMailB=- Algúns provedores de servizos de correo electrónico (como Yahoo) non permiten enviar un correo electrónico desde outro servidor que o seu propio. A súa configuración actual usa o servidor da aplicación para enviar correo electrónico e non o servidor do seu fornecedor de correo electrónico, polo que algúns destinatarios (o compatible co protocolo DMARC restritivo) preguntarán ao seu fornecedor de correo electrónico se poden aceptar o seu correo electrónico e algúns provedores de correo electrónico. (como Yahoo) pode responder "non" porque o servidor non é seu, polo que poucos dos seus correos electrónicos enviados poden non ser aceptados para a súa entrega (teña coidado tamén coa cota de envío do seu fornecedor de correo electrónico). WarningPHPMailC=- Tamén é interesante usar o servidor SMTP do seu propio fornecedor de servizos de correo electrónico para enviar correos electrónicos, polo que todos os correos electrónicos enviados desde a aplicación tamén se gardarán no directorio "Enviado" da súa caixa de correo. -WarningPHPMailD=Porén, recoméndase cambiar o método de envío de correos electrónicos ao valor "SMTP". Se realmente desexa manter o método predeterminado "PHP" para enviar correos electrónicos, simplemente ignore este aviso ou elimíneo configurando a constante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP en 1 en Inicio-Configuración-Outro. +WarningPHPMailD=Polo tanto, recoméndase cambiar o método de envío dos correos electrónicos co valor "SMTP". +WarningPHPMailDbis=Se realmente quere manter o método "PHP" predeterminado para enviar correos electrónicos, só ten que ignorar este aviso ou elimínao premendo %sprema aquí %s WarningPHPMail2=Se o seu fornecedorr SMTP de correo electrónico precisa restrinxir o cliente de correo electrónico a algúns enderezos IP (moi raro), este é o seu enderezo IP do seu axente de usuario de correo (MUA) da súa aplicación ERP CRM: %s. WarningPHPMailSPF=Se o nome de dominio do enderezo de correo electrónico do seu remitente está protexido por un rexistro SPF (pregúntarlle ao rexistrador do seu nome de dominio), se debe engadir as seguintes IP no rexistro SPF do DNS do seu dominio: %s -ActualMailSPFRecordFound=Atopouse o actual rexistro SPF; %s +ActualMailSPFRecordFound=Atopouse o rexistro SPF actual (para o correo electrónico %s): %s ClickToShowDescription=Clic para ver a descrición DependsOn=Este módulo precisa o módulo(s) RequiredBy=Este módulo é requirido polo(s) módulo(s) @@ -512,9 +514,9 @@ TheKeyIsTheNameOfHtmlField=Este é o nome do campo HTML. Son precisos coñecemen PageUrlForDefaultValues=Debe introducir aquí a URL relativa da páxina. Se inclúe parámetros na URL, os valores predeterminados serán efectivos se todos os parámetros están configurados co mesmo valor. PageUrlForDefaultValuesCreate=
    Exemplo:
    Para o formulario para crear un novo terceiro, é %s .
    Para a URL dos módulos externos instalados no directorio custom, non inclúa "custom/", use a ruta como mymodule/mypage.php e non custom/mymodule/mypage.php.
    Se desexa un valor predeterminado só se a url ten algún parámetro, pode usar %s PageUrlForDefaultValuesList=
    Exemplo:
    Para a páxina que lista terceiros, é %s.
    Para o URL de módulos externos instalados no directorio custom, non inclúa o "custom/" use un camiño como mymodule/mypagelist.php e non custom/mymodule/mypagelist.php.
    Se quere un valor predeterminado só se a URL ten algún parámetro, pode usar %s -AlsoDefaultValuesAreEffectiveForActionCreate=Teña conta tamén que sobreescribir os valores predeterminados para a creación de formularios só funciona para páxinas que foron deseñadas correctamente (polo tanto, co parámetro action = create ou presend ...) +AlsoDefaultValuesAreEffectiveForActionCreate=Teña conta tamén que sobrescribir os valores predeterminados para a creación de formularios só funciona para páxinas que foron deseñadas correctamente (polo tanto, co parámetro action = create ou presend ...) EnableDefaultValues=Activar a personalización dos valores predeterminados -EnableOverwriteTranslation=Activar o uso de traducións sobreescritas +EnableOverwriteTranslation=Permitir a personalización das traducións GoIntoTranslationMenuToChangeThis=Atopouse unha tradución para a clave con este código. Para cambiar este valor, debe editalo desde Inicio-Configuración-Tradución. WarningSettingSortOrder=Aviso, establecer unha orde de clasificación predeterminada pode producir un erro técnico ao entrar na páxina da listaxe se o campo é un campo descoñecido. Se experimentas tal erro, volte a esta páxina para eliminar a orde de clasificación predeterminada e restaurar o comportamento predeterminado.Field=Campo Field=Campo @@ -615,7 +617,7 @@ Module410Desc=Integración con Webcalendar Module500Name=Impostos e gastos especiais Module500Desc=Xestión doutros gastos (impostos sobre vendas, impostos sociais ou fiscais, dividendos, ...) Module510Name=Salarios -Module510Desc=Rexistro e seguemento do pagamento dos salarios aos seus empregados +Module510Desc=Rexistro e seguimento do pagamento dos salarios aos seus empregados Module520Name=Crédito Module520Desc=Xestión de créditos Module600Name=Notificacións en eventos de negocio @@ -642,7 +644,7 @@ Module2200Desc=Activar o uso de expresións matemáticas para auto xerar prezos Module2300Name=Tarefas programadas Module2300Desc=Xestión do traballo programado (alias cron ou chrono taboa) Module2400Name=Eventos/Axenda -Module2400Desc=Siga os eventos ou citas. Deixe que Dolibarr rexistre eventos automáticos co fin de realizar seguemento ou rexistre eventos manuais ou xuntanzas. Este é o módulo principal para unha bona xestión de relacións cos clientes ou provedores. +Module2400Desc=Siga os eventos ou citas. Deixe que Dolibarr rexistre eventos automáticos co fin de realizar seguimento ou rexistre eventos manuais ou xuntanzas. Este é o módulo principal para unha bona xestión de relacións cos clientes ou provedores. Module2500Name=GED / SGD Module2500Desc=Sistema de Xestión de Documentos / Xestión Electrónica de Contidos. Organización automática dos seus documentos xerados o almacenados. Compárta cando o precise. Module2600Name=API/Servizos web (servidor SOAP) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Engade funcións para xestionar Incoterms Module63000Name=Recursos Module63000Desc=Xestionar recursos (impresoras, automóbiles, salas, ...) pode asignalos a eventos +Module94160Name=Recepcións Permission11=Consultar facturas de cliente Permission12=Crear/Modificar facturas de cliente Permission13=Invalidar facturas de cliente @@ -714,6 +717,7 @@ Permission27=Eliminar orzamentos comerciais Permission28=Exportar orzamentos comerciais Permission31=Consultar produtos Permission32=Crear/modificar produtos +Permission33=Ler prezos dos produtos Permission34=Eliminar produtos Permission36=Ver/xestionar produtos ocultos Permission38=Exportar produtos @@ -739,6 +743,7 @@ Permission79=Crear/modificar cotizacións Permission81=Consultar pedimentos de clientes Permission82=Crear/modificar pedimentos de clientes Permission84=Validar pedimentos de clientes +Permission85=Xerar os documentos de pedimentos de cliente Permission86=Enviar pedimentos de clientes Permission87=Pechar pedimentos de clientes Permission88=Anular pedimentos de clientes @@ -840,9 +845,9 @@ Permission286=Exportar contactos Permission291=Consultar tarifas Permission292=Definir permisos sobre as tarifas Permission293=Modificar tarifas de clientes -Permission300=Consultar códigos de barras -Permission301=Crear/modificar códigos de barras -Permission302=Eliminar código de barras +Permission301=Xera follas PDF de códigos de barras +Permission304=Crear/modificar códigos de barras +Permission305=Eliminar código de barras Permission311=Consultar servizos Permission312=Asignar servizos/subscricións a un contrato Permission331=Consultar marcadores @@ -874,6 +879,7 @@ Permission525=Calculadora de crédito Permission527=Exportar crédito Permission531=Consultar servizos Permission532=Crear/modificar servizos +Permission533=Ler prezos dos servizos Permission534=Eliminar servizos Permission536=Ver/xestionar os servizos ocultos Permission538=Exportar servizos @@ -968,13 +974,14 @@ Permission3301=Xerar novos módulos Permission4001=Ler competencia/traballo/posto Permission4002=Crear/modificar competencia/traballo/posto Permission4003=Eliminar competencia/traballo/posto -Permission4020=Ler avaliacións -Permission4021=Crea/modifica a súa avaliación -Permission4022=Validar avaliación -Permission4023=Eliminar avaliación -Permission4030=Ver menú comparativo +Permission4021=Ler avaliacións (a súa e a dos seus subordinados) +Permission4022=Crear/modificar avaliacións +Permission4023=Validar avaliación +Permission4025=Eliminar avaliación +Permission4028=Ver menú comparativo Permission4031=Ler información persoal Permission4032=Escribe información persoal +Permission4033=Ler todas as avaliacións (incluso as de usuarios non subordinados) Permission10001=Ler contido do sitio web Permission10002=Crear modificar contido do sitio web (contido html e javascript) Permission10003=Crear/modificar contido do sitio web (código php dinámico). Perigoso, ten que reservarse a desenvolvedores restrinxidos. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Tipo de disposición de bens TypeOfUnit=Tipo de unidade SetupSaved=Configuración gardada SetupNotSaved=Configuración non gardada +OAuthServiceConfirmDeleteTitle=Eliminar a entrada de OAuth +OAuthServiceConfirmDeleteMessage=Estás certo de querer eliminar esta entrada de OAuth? Tamén se eliminarán todos os tokens existentes. +ErrorInEntryDeletion=Erro na eliminación da entrada +EntryDeleted=Entrada eliminada BackToModuleList=Voltar á lista de módulos BackToDictionaryList=Voltar á lista de diccionarios TypeOfRevenueStamp=Tipos de selos fiscais @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Valor da constante ConstantIsOn=Opción %s está activada NbOfDays=Nº de días AtEndOfMonth=A fin de mes -CurrentNext=Actual/Seguinte +CurrentNext=Un día determinado no mes Offset=Decálogo AlwaysActive=Sempre activo Upgrade=Actualización @@ -1235,11 +1246,13 @@ BrowserName=Nome do navegador BrowserOS=S.O. do navegador ListOfSecurityEvents=Listaxe de eventos de seguridade Dolibarr SecurityEventsPurged=Eventos de seguridade purgados +TrackableSecurityEvents=Eventos de seguridade rastrexables LogEventDesc=Pode habilitar o rexistro de eventos de seguridade aquí. Os administradores poden ver o contido do rexistro ao través do menú %s-%s.Atención, esta característica pode xerar unha gran cantidade de datos na base de datos. AreaForAdminOnly=Os parámetros de configuración poden ser tratados por usuarios administradores exclusivamente. SystemInfoDesc=A información do sistema é información técnica accesible en modo lectura para administradores exclusivamente. SystemAreaForAdminOnly=Esta área é accesible aos usuarios administradores exclusivamente. Os permisos dos usuarios de Dolibarr non permiten cambiar esta restricción. CompanyFundationDesc=Edite a información da súa empresa/entidade. Prema no botón "%s" a pé de páxina cando remate +MoreNetworksAvailableWithModule=Poden estar dispoñibles máis redes sociais activando o módulo "Redes sociais". AccountantDesc=Se ten un contable/auditor externo, pode editar aquí a súa información. AccountantFileNumber=Número de ficheiro DisplayDesc=Os parámetros que afectan ao aspecto e a presentación da aplicación pódense modificar aquí. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Debe executar esta orde dende u YourPHPDoesNotHaveSSLSupport=Funcións SSL non dispoñibles no seu PHP DownloadMoreSkins=Mais temas para descargar SimpleNumRefModelDesc=Devolve o número de referencia no formato %s yymm-nnnn onde yy é o ano, mm é o mes e nnnn é un número secuencial de incremento automático sen restablecer +SimpleRefNumRefModelDesc=Devolve o número de referencia no formato n onde n é un número secuencial de incremento automático sen reinicio +AdvancedNumRefModelDesc=Devolve o número de referencia no formato %s yymm-nnnn onde yy é o ano, mm é o mes e nnnn é un número secuencial de incremento automático sen restablecer SimpleNumRefNoDateModelDesc=Devolve o número de referencia no formato %s-nnnn onde nnnn é un número con incremento automático secuencial sen restablecemento ShowProfIdInAddress=Amosar identificación profesional con enderezos ShowVATIntaInAddress=Ocultar o número de IVE intracomunitario @@ -1333,7 +1348,7 @@ PathDirectory=Directorio SendmailOptionMayHurtBuggedMTA=A función para enviar correos usando o método "PHP mail direct" xerará unha mensaxe de correo que algúns servidores de correo receptores poden non analizar correctamente. O resultado é que algúns correos non poden ser lidos por persoas aloxadas nesas plataformas. É o caso dalgúns fornecedores de Internet (por exemplo: Orange en Franza). Isto non é un problema con Dolibarr ou PHP senón co servidor de correo receptor. Porén, pode engadir unha opción MAIN_FIX_FOR_BUGGED_MTA a 1 en Configuración-Outro para modificar Dolibarr para evitar o erro. Porén, pode ter problemas con outros servidores que usan estritamente o estándar SMTP. A outra solución (recomendada) é empregar o método "SMTP socket library" que non ten desvantaxes. TranslationSetup=Configuración de tradución TranslationKeySearch=Buscar unha chave ou cadea de tradución -TranslationOverwriteKey=Sobreescribir una cadena traducida +TranslationOverwriteKey=Sobrescribir una cadena traducida TranslationDesc=Como configurar o idioma de visualización:
    * Por defecto Sistema: menu Inicio - Configuración - Entorno
    * Por usuario: prema no nome de usuario na parte superior da pantalla e modifique a pestana Configuración da visualización do usuario na tarxeta de usuario. TranslationOverwriteDesc=Tamén pode reemplazar cadeas enchendo a seguinte táboa. Escolla o seu idioma no menú despregable "%s", insira a cadea de clave de tradución en "%s" e a súa nova tradución en "%s" TranslationOverwriteDesc2=Podes usar a outra pestana para axudarche a saber que clave de tradución usar @@ -1376,7 +1391,7 @@ GetBarCode=Obter código de barras NumberingModules=Modelos de numeración DocumentModules=Modelos de documento ##### Module password generation -PasswordGenerationStandard=Volta un contrasinal xerado segundo o algoritmo interno de Dolibarr:%s caracteres, que conteñen números e caracteres en minúsculas mesturados. +PasswordGenerationStandard=Devolve un contrasinal xerado segundo o algoritmo interno de Dolibarr: %s caracteres que conteñen números e caracteres compartidos. PasswordGenerationNone=Non suxerir ningún contrasinal xerada. O contrasinal debe ser escrito manualmente. PasswordGenerationPerso=Volta un contrasinal segundo a configuración definida. SetupPerso=Segundo a túa configuración @@ -1430,6 +1445,10 @@ SuppliersPayment=Pagamentos a provedores SupplierPaymentSetup=Configuración de pagamentos a provedores InvoiceCheckPosteriorDate=Comprobar a data de fabricación antes da validación InvoiceCheckPosteriorDateHelp=Queda prohibida a validación dunha factura se a súa data é anterior á data da última factura do mesmo tipo. +InvoiceOptionCategoryOfOperations=Mostrar a mención "categoría de operacións" na factura. +InvoiceOptionCategoryOfOperationsHelp=Segundo a situación, a mención figurará na forma:
    - Categoría de operacións: Entrega de produtos
    - Categoría de operacións: Prestación de servizos
    - Categoría de operacións: Mixta - Entrega de produtos & Prestación de servizos +InvoiceOptionCategoryOfOperationsYes1=Si, debaixo do bloque de enderezos +InvoiceOptionCategoryOfOperationsYes2=Si, na esquina inferior esquerda ##### Proposals ##### PropalSetup=Configuración do módulo Orzamentos ProposalsNumberingModules=Módulos de numeración de orzamentos @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Marca de auga en contratos (o caso de estar baleir ##### Members ##### MembersSetup=Configuración do módulo Asociacións MemberMainOptions=Opcións principais +MemberCodeChecker=Opcións para a xeración automática de códigos de membros AdherentLoginRequired= Xestionar un login para cada membro AdherentMailRequired=E-Mail obrigatorio para crear un membro novo MemberSendInformationByMailByDefault=Caixa de verificación para enviar o correo de confirmación (validación ou nova cotización) aos membros é por defecto "sí" MemberCreateAnExternalUserForSubscriptionValidated=Crea un inicio de sesión de usuario externo para cada nova subscrición de membro validada -VisitorCanChooseItsPaymentMode=O visitante pode escoller entre os modos de pagamento dispoñibles +VisitorCanChooseItsPaymentMode=O visitante pode escoller entre os modos de pago dispoñibles MEMBER_REMINDER_EMAIL=Habilitar recordatorio de eventos por e-mail de suscripcións expiradas. Nota: O módulo %s debe estar habilitado e configurado correctamente para que o recordatorio sexa enviado. MembersDocModules=Modelos de documentos para documentos xerados a partir do rexistro de membros ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Activar editor avanzado para : FCKeditorForNotePublic=WYSIWYG creación/edición do campo "notas públicas" de elementos FCKeditorForNotePrivate=WYSIWYG creación/edición do campo notas privadas de elementos FCKeditorForCompany=WYSIWYG creación/edición da descrición do campo de elementos (excepto produtos/servizos) -FCKeditorForProduct=WYSIWYG creación/edición da descrición do campo de produtos/servizos -FCKeditorForProductDetails=Creación/edición WYSIWIG das liñas de detalle dos produtos (pedimentos, orzamentos, facturas, etc.). Atención: O uso desta opción non é recomendable xa que pode crear problemas cos caracteres especiais e o formateo de páxina ao xerar ficheiros PDF. +FCKeditorForProductDetails= Creación/edición WYSIWIG de descrición de produtos ou liñas para obxectos (liñas de orzamentos, pedimentos, facturas, etc...). +FCKeditorForProductDetails2=Aviso: non se recomenda usar esta opción para este caso porque pode crear problemas con caracteres especiais e formato de páxina ao crear ficheiros PDF. FCKeditorForMailing= Creación/edición WYSIWIG dos E-Mails (Utilidades->E-Mailings) FCKeditorForUserSignature=Creación/edición WYSIWIG da sinatura de usuarios FCKeditorForMail=Creación/edición WYSIWIG de todos os e-mails ( excepto Utilidades->E-Mailings) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Controlador de menús onde amosar o novo menú DetailMenuModule=Nome do módulo se a entrada do menú provén dun módulo DetailType=Tipo de menú (arriba ou á esquerda) DetailTitre=Etiqueta de menú ou código de etiqueta para a tradución -DetailUrl=URL onde o menú o envía (ligazón URL absoluta ou ligazón externa con http: //) +DetailUrl=URL onde envía o menú (ligazón URL relativa ou ligazón externa con https://) DetailEnabled=Condición para amosar ou non a entrada DetailRight=Condición para amosar menús grises non autorizados DetailLangs=Nome do ficheiro Lang para a tradución de código de etiqueta @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=A diminución de stock no TPV non é CashDeskYouDidNotDisableStockDecease=Non desactivou a diminución de stock ao facer unha venda desde o punto de venda. Por iso é preciso un almacén. CashDeskForceDecreaseStockLabel=Forzouse a diminución do stock de produtos por lotes CashDeskForceDecreaseStockDesc=Diminuír primeiro polas datas máis antigas para comer por e vender por. -CashDeskReaderKeyCodeForEnter=Código clave para "Enter" definido no lector de códigos de barras. (Exemplo:13) +CashDeskReaderKeyCodeForEnter=Código ASCII clave para "Enter" definido no lector de código de barras (Exemplo: 13) ##### Bookmark ##### BookmarkSetup=Configuración do módulo de marcador BookmarkDesc=Este módulo permítelle xestionar marcadores. Tamén pode engadir atallos a calquera páxina de Dolibarr ou sitios web externos no menú esquerdo. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de provedor IfSetToYesDontForgetPermission=Se está seleccionado, non esqueza modificar os permisos nos grupos ou usuarios para permitir a segunda aprobación ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuración do módulo GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Ruta ao ficheiro que contén IP Maxmind á tradución do país.
    Exemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Ruta ao ficheiro que contén a ip Maxmind traducida ao país NoteOnPathLocation=Teña conta que o ficheiro de datos de IP a país debe estar dentro dun directorio que poida ler PHP (Comprobe a configuración de PHP open_basedir e os permisos do sistema de ficheiros). YouCanDownloadFreeDatFileTo=Pode descargar unha versión de demostración gratuíta do ficheiro de país Maxmind GeoIP en %s. YouCanDownloadAdvancedDatFileTo=Tamén pode descargar unha versión máis completa, con actualizacións do ficheiro de país Maxmind GeoIP en %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Asistente para crear unha copia de seguridade da base de datos BackupZipWizard=Asistente para crear unha copia de seguridade do directorio de documentos SomethingMakeInstallFromWebNotPossible=A instalación do módulo externo non é posible desde a interface web polo seguinte motivo: SomethingMakeInstallFromWebNotPossible2=Por este motivo, o proceso de actualización descrito aquí é un proceso manual que só pode realizar un usuario con permisos +InstallModuleFromWebHasBeenDisabledContactUs=A instalación ou o desenvolvemento de módulos externos ou sitios web dinámicos, desde a aplicación, está actualmente bloqueada por motivos de seguridade. Póñase en contacto connosco se precisa activar esta función. InstallModuleFromWebHasBeenDisabledByFile=O seu administrador desactivou a instalación do módulo externo desde a aplicación. Debe pedirlle que elimine o ficheiro %s para permitir esta función. ConfFileMustContainCustom=A instalación ou construción dun módulo externo desde a aplicación precisa gardar os ficheiros do módulo no directorio %s. Para que Dolibarr procese este directorio, debe configurar o seu conf/conf.php para engadir as dúas liñas directivas:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Resalte as liñas da táboa cando pasa o rato por riba @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Prema CTRL+F5 no teclado ou limpe a caché do navegador NotSupportedByAllThemes=Traballará con temas core, pode que non sexan compatibles con temas externos BackgroundColor=Cor de fondo TopMenuBackgroundColor=Cor de fondo para o Menú superior -TopMenuDisableImages=Ocultar imaxes no Menú superior +TopMenuDisableImages=Icona ou texto no menú superior LeftMenuBackgroundColor=Cor de fondo para o Menú esquerdo BackgroundTableTitleColor=Cor de fondo para a Taboa título líña BackgroundTableTitleTextColor=Cor do texto para a liña de título da taboa @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Pedimentos a provedor MailToSendSupplierInvoice=Facturas provedor MailToSendContract=Contratos MailToSendReception=Recepcións +MailToExpenseReport=Informes de gastos MailToThirdparty=Terceiros MailToMember=Membros MailToUser=Usuarios @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Marxe dereito en PDF MAIN_PDF_MARGIN_TOP=Marxe superior en PDF MAIN_PDF_MARGIN_BOTTOM=Marxe inferior en PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Altura para logotipo en PDF +DOC_SHOW_FIRST_SALES_REP=Amosar o primeiro representante de vendas MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Engade unha columna para a imaxe nas liñas de orzamento á cliente MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Largura da columna se se engade unha imaxe nas liñas MAIN_PDF_NO_SENDER_FRAME=Ocultar os bordos no marco do enderezo do remitente @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Eliminar caracteres especiais COMPANY_AQUARIUM_CLEAN_REGEX=Filtro de rexistro para limpar o valor (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtro de rexistro para limpar o valor (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Non se permite duplicado +RemoveSpecialWords=Limpe determinadas palabras ao xerar subcontas para clientes ou provedores +RemoveSpecialWordsHelp=Especifique as palabras a limpar antes de calcular a conta de cliente ou provedor. Use un ";" entre cada palabra GDPRContact=Responsable de protección de datos (DPO, privacidade de datos ou contacto GDPR) GDPRContactDesc=Se almacena datos persoais no seu Sistema de Información, pode nomear aquí o contacto responsable do Regulamento Xeral de Protección de Datos HelpOnTooltip=Texto de axuda para amosar na información de ferramentas @@ -2057,30 +2082,38 @@ SocialNetworkSetup=Configuración do módulo Redes sociais EnableFeatureFor=Activar funcións para %s VATIsUsedIsOff=Nota: A opción para usar Vendas IVE ou IVE configurouse como Desactivado no menú %s -%s, polo que Vendas IVE ou IVE empregados serán sempre 0 para as vendas. SwapSenderAndRecipientOnPDF=Cambiar a posición do remitente e do destinatario en documentos PDF -FeatureSupportedOnTextFieldsOnly=Aviso, función compatible só cos campos de texto e listaxes combinadas. Tamén debe definirse un parámetro URL action=create ou action=edit OU o nome da páxina debe rematar con 'new.php' al trigger de esta función. +FeatureSupportedOnTextFieldsOnly=Aviso, función compatible só cos campos de texto e listaxes combinadas. Tamén debe definirse un parámetro URL action=create ou action=edit OU o nome da páxina debe rematar con 'new.php' ao trigger desta función. EmailCollector=Receptor de correo electrónico +EmailCollectors=Recolectores de correo electrónico EmailCollectorDescription=Engade unha tarefa programada e unha páxina de configuración para escanear regularmente caixas de correo electrónico (usando o protocolo IMAP) e gardarr os correos electrónicos recibidos na súa aplicación no lugar axeitado e/ou crear algúns rexistros automaticamente (como clientes potenciais). NewEmailCollector=Novo receptor de correo electrónico EMailHost=Anfitrión do servidor IMAP de correo electrónico +EMailHostPort=Porto do servidor IMAP de correo electrónico +loginPassword=Inicio de sesión/contrasinal +oauthToken=Token Oauth2 +accessType=Tipo de acceso +oauthService=Servizo de Auth +TokenMustHaveBeenCreated=O módulo OAuth2 debe estar activado e debe crearse un token oauth2 cos permisos correctos (por exemplo, o ámbito "gmail_full" con OAuth para Gmail). MailboxSourceDirectory=Directorio fonte da caixa de correo MailboxTargetDirectory=Directorio de destino da caixa de correo EmailcollectorOperations=Operacións que debe facer o receptor EmailcollectorOperationsDesc=As operacións execútanse de arriba a abaixo MaxEmailCollectPerCollect=Número máximo de correos electrónicos recollidos por recepción +TestCollectNow=Recollida de test CollectNow=Recibir agora ConfirmCloneEmailCollector=Está certo de querer clonar o colector de correo electrónico %s? DateLastCollectResult=Data do último intento de recepción DateLastcollectResultOk=Data da última recepción con éxito LastResult=Último resultado EmailCollectorHideMailHeaders=Non inclúa o contido da cabeceira do correo electrónico no contido gardado dos correos electrónicos recollidos -EmailCollectorHideMailHeadersHelp=Cando está activado, as cabeceiras de correo electrónico non se engaden ao final do contido do correo electrónico que se garda como eventos. +EmailCollectorHideMailHeadersHelp=Cando está activado, as cabeceiras de correo electrónico non se engaden ao final do contido do correo electrónico que se garda como evento da axenda. EmailCollectorConfirmCollectTitle=Confirmación de recepción por correo electrónico EmailCollectorConfirmCollect=Queres executar este colector agora? EmailCollectorExampleToCollectTicketRequestsDesc=Recolle correos electrónicos que coincidan con algunhas regras e cree automaticamente un ticket (o ticket de módulo debe estar activado) coa información do correo electrónico. Pode usar este colector se proporciona algún soporte por correo electrónico, polo que a súa solicitude de entrada xerarase automaticamente. Activa tamén Collect_Responses para recoller as respostas do seu cliente directamente na vista de tickets (debe responder desde Dolibarr). EmailCollectorExampleToCollectTicketRequests=Exemplo de recollida da solicitude de ticket (só a primeira mensaxe) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Analiza o directorio "Enviados" da súa caixa de correo para atopar correos electrónicos que se enviaron como resposta doutro correo electrónico directamente desde o seu software de correo electrónico e non desde Dolibarr. Se se atopa un correo electrónico deste tipo, o evento de resposta rexistrarase en Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Exemplo de recollida de respostas de correo electrónico enviadas desde un software de correo electrónico externo -EmailCollectorExampleToCollectDolibarrAnswersDesc=Recolle todos os correos electrónicos que sexan unha resposta dun correo electrónico enviado desde a súa aplicación. Un evento (debe estar activado o módulo Axenda) coa resposta do correo electrónico rexistrarase no bo lugar. Por exemplo, se envía un orzamento, un pedimento, unha factura ou unha mensaxe para un ticket por correo electrónico desde a aplicación e o seu cliente resposta ao seu correo electrónico, o sistema detectará automaticamente a resposta e engadiraa ao seu ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Recolle todos os correos electrónicos que sexan unha resposta dun correo electrónico enviado desde a súa aplicación. Un evento (debe estar activado o módulo Axenda) coa resposta do correo electrónico rexistrarase no bo lugar. Por exemplo, se envía un orzamento, un pedimento unha factura ou unha mensaxe para un ticket por correo electrónico desde a aplicación e o destinatario responde ao seu correo electrónico, o sistema detectará automaticamente a resposta e engadirá ao seu ERP. EmailCollectorExampleToCollectDolibarrAnswers=Exemplo que recolle todas as mensaxes entrantes como respostas ás mensaxes enviadas desde Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Recolla correos electrónicos que coincidan con algunhas regras e cree automaticamente un cliente potencial (debe estar activado o modulo de Proxectos) coa información do correo electrónico. Pode usar este colector se quere seguir a súa pista usando o módulo Proxecto (1 cliente potencial = 1 proxecto), polo que os seus clientes potenciales xeraranse automaticamente. Se o colector Collect_Responses tamén está activado, cando envía un correo electrónico dos seus clientes potenciales, propostas ou calquera outro obxecto, tamén pode ver as respostas dos seus clientes ou socios directamente na aplicación.
    Nota: con este exemplo inicial, xérase o título do cliente potencial incluíndo o correo electrónico. Se o terceiro non se atopa na base de datos (novo cliente), o cliente potencial unirase ao terceiro co ID 1. EmailCollectorExampleToCollectLeads=Exemplo de recollida de clientes potenciais @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Recoller correos electrónicos EmailCollectorExampleToCollectJobCandidatures=Exemplo de recollida de candidaturas de emprego recibidas por correo electrónico NoNewEmailToProcess=Non hai ningún correo electrónico novo (filtros coincidentes) para procesar NothingProcessed=Nada feito -XEmailsDoneYActionsDone=%s correos electrónicos cualificados, %s correos electrónicos procesados ​​correctamente (para %s rexistro/accións feitas) +XEmailsDoneYActionsDone=Correos electrónicos %s precalificados, correos electrónicos %s procesados correctamente (para %s rexistro/accións realizadas) RecordEvent=Gravar un evento na axenda (co tipo de correo electrónico enviado ou recibido) CreateLeadAndThirdParty=Crear un cliente potencial (e un terceiro se é preciso) CreateTicketAndThirdParty=Crear un ticket (ligado a un terceiro se o terceiro foi cargado por unha operación anterior ou se adiviñou a partir dun rastreador na cabeceira do correo electrónico, sen que o terceiro sexa o contrario) @@ -2105,7 +2138,7 @@ CreateCandidature=Crear solicitude de traballo FormatZip=Zip MainMenuCode=Código de entrada do menú (menú principal) ECMAutoTree=Amosar árbore automático GED -OperationParamDesc=Define as regras a empregar para extraer ou establecer valores.
    Exemplo de operacións que precisan extraer un nome do asunto do correo electrónico:
    name=EXTRACT:SUBJECT:Mensaxe da empresa ([^\n] *)
    Exemplo para operacións que crean obxectos:
    objproperty1 = SET, o valor a establecer
    objproperty2 = SET, un valor incluíndo valor de __objproperty1__
    objproperty3 = SETIFEMPTY: valor utilizado se objproperty3 se non foi definido
    objproperty4 = EXTRACT: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:O nome da miña empresa é\\s( [^\\s]*)

    Use un ; char como separador para extraer ou establecer varias propiedades. +OperationParamDesc=Defina as regras que se empregarán para extraer algúns datos ou establecer valores para utilizar na operación.

    Exemplo para extraer o nome dunha empresa do asunto do correo electrónico nunha variable temporal:
    tmp_var=EXTRACT:SUBJECT:Mensaxe da empresa ([^\n]*)

    Exemplos para definir as propiedades dun obxecto a crear:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use un ; char como separador para extraer propiedades OpeningHours=Horario de apertura OpeningHoursDesc=Introduza aquí o horario habitual da súa empresa. ResourceSetup=Configuración do módulo Recursos @@ -2167,6 +2200,10 @@ EmailTemplate=Modelo para correo electrónico EMailsWillHaveMessageID=Os correos electrónicos terán unha etiqueta "Referencias" que coincide con esta sintaxe PDF_SHOW_PROJECT=Amosar proxecto no documento ShowProjectLabel=Etiqueta do proxecto +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Incluír o alias no nome de terceiros +THIRDPARTY_ALIAS=Nome do terceiro - Alias do terceiro +ALIAS_THIRDPARTY=Alias do terceiros- Nome do terceiro +PDFIn2Languages=Amosa as etiquetas do PDF en 2 idiomas diferentes PDF_USE_ALSO_LANGUAGE_CODE=Se desexa ter algúns textos no seu PDF duplicados en 2 idiomas diferentes no mesmo PDF xerado, debe configurar aquí este segundo idioma para que o PDF xerado conteña 2 idiomas diferentes na mesma páxina, o elixido ao xerar PDF e este (só algúns modelos PDF soportan isto). Mantéñase baleiro por un idioma por PDF. PDF_USE_A=Xera documentos PDF co formato PDF/A en lugar do formato PDF predeterminado FafaIconSocialNetworksDesc=Introduza aquí o código dunha icona FontAwesome. Se non sabe o que é FontAwesome, pode usar o valor xenérico fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Asociación AGENDA_EVENT_DEFAULT_STATUS=Estado predeterminado do evento ao crear un evento desde o formulario YouShouldDisablePHPFunctions=Debería desactivar as funcións PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Agás se precisa executar comandos do sistema nun código personalizado, debería desactivar as funcións PHP -PHPFunctionsRequiredForCLI=Para o obxectico do shell (como a copia de seguridade programada do traballo ou a execución dun programa anitivurs), debe manter as funcións PHP +PHPFunctionsRequiredForCLI=Para fins de shell (como traballos programados de copia de seguridade ou executar un programa antivirus), debe manter as funcións de PHP NoWritableFilesFoundIntoRootDir=Non se atoparon ficheiros ou directorios con permisos de escritura dos programas comúns no directorio raíz (Bo) RecommendedValueIs=Recomendado %s Recommended=Recomendada NotRecommended=Non recomendado -ARestrictedPath=Algún camiño restrinxido +ARestrictedPath=Algún camiño restrinxido para ficheiros de datos CheckForModuleUpdate=Comprobar actualizacións para os módulos externos CheckForModuleUpdateHelp=Esta acción conectara cos editores de módulos externos para comprobar se hai unha nova versión dispoñible. ModuleUpdateAvailable=Unha actualización está dispoñible @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Non foron atopadas actualizacións para módulos exte SwaggerDescriptionFile=Ficheiro de descrición da API Swagger (para uso con redoc por exemplo) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Activada a API WS obsoleta. No seu lugar debería usar a API REST. RandomlySelectedIfSeveral=Selección aleatoria se hai varias imaxes dispoñibles +SalesRepresentativeInfo=Para orzamentos, pedimentos, facturas. DatabasePasswordObfuscated=O contrasinal da base de datos está oculto no ficheiro conf DatabasePasswordNotObfuscated=O contrasinal da base de datos NON está oculto no ficheiro conf APIsAreNotEnabled=Os módulos API non están activos @@ -2247,14 +2285,22 @@ LateWarningAfter=Aviso "atraso" despois TemplateforBusinessCards=Padrón para unha tarxeta de visita de diferentes tamaños InventorySetup= Configuración do inventario ExportUseLowMemoryMode=Use un modo de memoria baixa -ExportUseLowMemoryModeHelp=Use o modo de memoria baixa para executar o exec do volcado (a compresión faise a través dunha tubería en lugar de na memoria PHP). Este método non permite comprobar que o ficheiro está completo e non se pode informar coa mensaxe de erro se falla. +ExportUseLowMemoryModeHelp=Use o modo de memoria baixa para xerar o ficheiro de volcado (a compresión realízase a través dun tubo en lugar de na memoria PHP). Este método non permite comprobar que o ficheiro está completo e non se pode informar da mensaxe de erro se falla. Utilíceo se non experimenta erros de memoria suficientes. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface para capturar os disparadores (triggers) dolibarr e envialos a un URL +WebhookSetup = Configuración de webhook +Settings = Configuracións +WebhookSetupPage = Páxina de configuración de webhook ShowQuickAddLink=Amosa un botón para engadir rapidamente un elemento no menú superior dereito + HashForPing=Hash usado para facer ping ReadOnlyMode=É unha instancia en modo "Só lectura". DEBUGBAR_USE_LOG_FILE=Use o ficheiro dolibarr.log para capturar rexistros UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use o ficheiro dolibarr.log para capturar rexistros en lugar de capturar na memoria en directo. Permite capturar todos os rexistros en lugar de só o rexistro do proceso actual (incluíndo o das páxinas de subsolicitudes ajax), pero fará que a súa instancia sexa moi lenta. Non recomendado. FixedOrPercent=Fixo (use a palabra clave "fixo") ou porcentaxe (use a palabra clave "porcentaxe") DefaultOpportunityStatus=Estado de oportunidade predeterminado (primeiro estado cando se crea un cliente potencial) + IconAndText=Icona e texto TextOnly=Só texto IconOnlyAllTextsOnHover=Só icona: todos os textos aparecen debaixo da icona ao pasar o rato na barra de menú @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Só icona: o texto da icona aparece debaixo da icona ao pasa IconOnly=Só icona: só texto na información sobre ferramentas INVOICE_ADD_ZATCA_QR_CODE=Mostra o código QR ZATCA nas facturas INVOICE_ADD_ZATCA_QR_CODEMore=Algúns países árabes necesitan este código QR nas súas facturas +INVOICE_ADD_SWISS_QR_CODE=Amosa o código suizo QR-Bill nas facturas +INVOICE_SHOW_SHIPPING_ADDRESS=Mostrar o enderezo de envío +INVOICE_SHOW_SHIPPING_ADDRESSMore=Mención obrigatoria para Francia UrlSocialNetworksDesc=Ligazón URL da rede social. Use {socialid} para a parte variable que contén o ID da rede social. +IfThisCategoryIsChildOfAnother=Se esta categoría é filla doutra +DarkThemeMode=Modo de tema escuro +AlwaysDisabled=Sempre desactivado +AccordingToBrowser=Segundo o navegador +AlwaysEnabled=Sempre activado +DoesNotWorkWithAllThemes=Non funcionará con todos os temas +NoName=Sen nome +ShowAdvancedOptions= Mostrar opcións avanzadas +HideAdvancedoptions= Ocultar opcións avanzadas +CIDLookupURL=O módulo trae un URL que pode ser usado por unha ferramenta externa para obter o nome dun terceiro ou contacto do seu número de teléfono. O URL a usar é: +OauthNotAvailableForAllAndHadToBeCreatedBefore=A autenticación OAUTH2 non está dispoñible para todos os hosts e debe crearse un token cos permisos correctos subindo co módulo OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Servizo de autenticación OAUTH2 +DontForgetCreateTokenOauthMod=Debe crearse un token cos permisos correctos co módulo OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Método de autenticación +UsePassword=Use un contrasinal +UseOauth=Usa un token AUTH +Images=Imaxes +MaxNumberOfImagesInGetPost=Número máximo de imaxes permitidas nun campo HTML enviado nun formulario +MaxNumberOfPostOnPublicPagesByIP=Número máximo de publicacións en páxinas públicas co mesmo enderezo IP nun mes +CIDLookupURL=O módulo trae un URL que pode ser usado por unha ferramenta externa para obter o nome dun terceiro ou contacto do seu número de teléfono. O URL a usar é: +ScriptIsEmpty=O script está baleiro +ShowHideTheNRequests=Amosarr/ocultar as solicitudes SQL %s +DefinedAPathForAntivirusCommandIntoSetup=Defina unha ruta para un programa antivirus en %s +TriggerCodes=Eventos desencadenables +TriggerCodeInfo=Introduza aquí o(s) código(s) de activación que deben xerar unha publicación dunha solicitude web (só se permiten URL externos). Pode introducir varios códigos de activación separados por comas. +EditableWhenDraftOnly=Se non está marcado, o valor só se pode modificar cando o obxecto ten un estado de borrador +CssOnEdit=Css nas páxinas de edición +CssOnView=Css nas páxinas de visualización +CssOnList=Css nas páxinas de listas +HelpCssOnEditDesc=O Css usado ao editar o campo.
    Exemplo: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=O Css usado ao ver o campo. +HelpCssOnListDesc=O Css usado cando o campo está dentro dunha táboa de lista.
    Exemplo: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Ocultar a cantidade solicitada nos documentos xerados para recepcións +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Mostra o prezo nos documentos xerados para recepcións +WarningDisabled=Aviso desactivado +LimitsAndMitigation=Límites de acceso e mitigación +DesktopsOnly=Só escritorios +DesktopsAndSmartphones=Escritorios e smartphones +AllowOnlineSign=Permitir a sinatura en liña +AllowExternalDownload=Permitir descarga externa (sen iniciar sesión, usando unha ligazón compartida) +DeadlineDayVATSubmission=Día límite para a presentación de IVE no mes seguinte +MaxNumberOfAttachementOnForms=Número máximo de ficheiros unidos nun formulario +IfDefinedUseAValueBeetween=Se está definido, use un valor entre %s e %s diff --git a/htdocs/langs/gl_ES/agenda.lang b/htdocs/langs/gl_ES/agenda.lang index 001480310bc..9d2bf347b43 100644 --- a/htdocs/langs/gl_ES/agenda.lang +++ b/htdocs/langs/gl_ES/agenda.lang @@ -31,7 +31,7 @@ ViewWeek=Vista semanal ViewPerUser=Vista por usuario ViewPerType=Vista por tipo AutoActions= Inclusión automática na axenda -AgendaAutoActionDesc= Aquí podes definir os eventos que queras que Dolibarr cre automáticamente en Axenda. Se non sinalas nada, só as accións manuais serán visualizadas na axenda. O seguemento automático de accións comerciais sobre obxectos (validación, cambio de estado), non será gardado. +AgendaAutoActionDesc= Aquí podes definir os eventos que queras que Dolibarr cre automáticamente en Axenda. Se non sinalas nada, só as accións manuais serán visualizadas na axenda. O seguimento automático de accións comerciais sobre obxectos (validación, cambio de estado), non será gardado. AgendaSetupOtherDesc= Esta páxina ten opcións que permiten a configuración da exportación dos eventos de Dolibarr a un calendario externo (Thunderbird, Google Calendar etc...) AgendaExtSitesDesc=Esta páxina permite configurar fontes externas de calendarios para ver os seus eventos dentro da axenda Dolibarr. ActionsEvents=Eventos para que Dolibarr cre unha acción na axenda automáticamente @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Membro %s validado MemberModifiedInDolibarr=Membro %s modificado MemberResiliatedInDolibarr=Membro %s rematado MemberDeletedInDolibarr=Membro %s eliminado +MemberExcludedInDolibarr=Membro %s excluído MemberSubscriptionAddedInDolibarr=Subscrición %s do membro %s engadida MemberSubscriptionModifiedInDolibarr=Subscrición %s do membro %s modificada MemberSubscriptionDeletedInDolibarr=Subscrición %s do membro %s eliminada @@ -67,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Expedición %s de volta ao estatus de borrador ShipmentDeletedInDolibarr=Expedición %s eliminada ShipmentCanceledInDolibarr=Envío %s cancelado ReceptionValidatedInDolibarr=Recepción %s validada +ReceptionDeletedInDolibarr=Recepción %s eliminada ReceptionClassifyClosedInDolibarr=Recepción %s clasificada pechada OrderCreatedInDolibarr=Pedimento %s creado OrderValidatedInDolibarr=Pedimento %s validado @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Factura de proveedor %s enviada por e-mail ShippingSentByEMail=Expedición %s enviada por email ShippingValidated= Expedición %s validada InterventionSentByEMail=Intervención %s enviada por e-mail +ProjectSentByEMail=Proxecto %s enviado por correo electrónico ProposalDeleted=Orzamento eliminado OrderDeleted=Pedimento eliminado InvoiceDeleted=Factura eliminada @@ -159,6 +162,7 @@ DateActionBegin=Data de comezo do evento ConfirmCloneEvent=¿Esta certo de querer clonar o evento %s? RepeatEvent=Repetir evento OnceOnly=Só unha vez +EveryDay=Tódolos días EveryWeek=Cada semana EveryMonth=Cada mes DayOfMonth=Día do mes @@ -174,3 +178,4 @@ AddReminder=Crear unha notificación de lembranza automática para este evento ErrorReminderActionCommCreation=Erro ao crear a notificación de lembranza para este evento BrowserPush=Notificación emerxente no navegador ActiveByDefault=Activado por defecto +Until=ata que diff --git a/htdocs/langs/gl_ES/banks.lang b/htdocs/langs/gl_ES/banks.lang index 47f0ce7f5fa..e21e90b021d 100644 --- a/htdocs/langs/gl_ES/banks.lang +++ b/htdocs/langs/gl_ES/banks.lang @@ -185,3 +185,4 @@ AlreadyOneBankAccount=Xa foi definida unha conta bancaria SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Transferencia SEPA: "Tipo de pagamento" no nivel "Transferencia de crédito". SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Cando se xera un ficheiro XML SEPA para pagamento por transferencia, agora pódese colocar a sección "PaymentTypeInformation" dentro da sección "CreditTransferTransactionInformation" (en lugar da sección "Pagamento"). Recomendamos encarecidamente que non se marque esta opción para colocar PaymentTypeInformation a nivel de pagamento, xa que todos os bancos non a aceptarán necesariamente o nivel de CreditTransferTransactionInformation. Poñase en contacto co seu banco antes de colocar PaymentTypeInformation no nivel CreditTransferTransactionInformation. ToCreateRelatedRecordIntoBank=Para crear un rexistro bancario relacionado que falta +BanklineExtraFields=Campos extra da liña bancaria diff --git a/htdocs/langs/gl_ES/bills.lang b/htdocs/langs/gl_ES/bills.lang index 4e949200842..b80295019db 100644 --- a/htdocs/langs/gl_ES/bills.lang +++ b/htdocs/langs/gl_ES/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Estatísticas de facturas a clientes BillsStatisticsSuppliers=Estatísticas de facturas de provedores DisabledBecauseDispatchedInBookkeeping=Desactivado porque a factura contabilizouse DisabledBecauseNotLastInvoice=Desactivado porque a factura non pódese borrar. Foron creadas facturas despois desta e crearían ocos no contador. +DisabledBecauseNotLastSituationInvoice=Desactivouse porque a factura non se pode borrar. Esta factura non é a última en situación na numeración de facturación. DisabledBecauseNotErasable=Desactivado xa que non pode eliminarse InvoiceStandard=Factura estándar InvoiceStandardAsk=Factura estándar InvoiceStandardDesc=Este tipo de factura é a factura tradicional. +InvoiceStandardShort=Estándar InvoiceDeposit=Factura de anticipo InvoiceDepositAsk=Factura de anticipo InvoiceDepositDesc=Este tipo de factura crease cando se recibiu un anticipo. @@ -24,6 +26,7 @@ InvoiceProForma=Factura proforma InvoiceProFormaAsk=Factura proforma InvoiceProFormaDesc=A factura proforma é a imaxe dunha factura definitiva, pero que non ten ningún valor contable. InvoiceReplacement=Factura rectificativa +InvoiceReplacementShort=Substitución InvoiceReplacementAsk=Factura rectificativa da factura InvoiceReplacementDesc=A factura rectificativa serve para cancelar e sustituir unha factura existente sobre a que ainda non hai pagamentos recibidos.

    Nota: Só poden rectificarse as facturas sen pagamentos rexistrados. Se esta última non está pechada, pasará automáticamente ao estado 'abandonada'. InvoiceAvoir=Factura con rectificación parcial @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte ou ou ErrorInvoiceIsNotLastOfSameType=Erro: a data da factura %s é %s. Debe ser posterior ou igual á última data para as facturas do mesmo tipo (%s). Cambie a data da factura. BillFrom=Emisor BillTo=Enviar a: +ShippingTo=Envío a ActionsOnBill=Accións sobre a factura RecurringInvoiceTemplate=Modelo / Factura recorrente NoQualifiedRecurringInvoiceTemplateFound=Non hai ningunha factura de modelo recorrente cualificada para a xeración. @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=As condicións de pagamento e PaymentTypeVIR=Transferencia bancaria PaymentTypeShortVIR=Transferencia bancaria PaymentTypePRE=Domiciliación +PaymentTypePREdetails=(na conta *-%s) PaymentTypeShortPRE=Domiciliación PaymentTypeLIQ=Efectivo PaymentTypeShortLIQ=Efectivo @@ -558,7 +563,7 @@ TypeContact_facture_internal_SALESREPFOLL=Responsable seguimiento factura a clie TypeContact_facture_external_BILLING=Contacto cliente facturación TypeContact_facture_external_SHIPPING=Contacto cliente entregas TypeContact_facture_external_SERVICE=Contacto cliente servizos -TypeContact_invoice_supplier_internal_SALESREPFOLL=Responsable seguemento facturas de provedor +TypeContact_invoice_supplier_internal_SALESREPFOLL=Responsable seguimento facturas de provedor TypeContact_invoice_supplier_external_BILLING=Contacto provedor facturación TypeContact_invoice_supplier_external_SHIPPING=Contacto provedor entregas TypeContact_invoice_supplier_external_SERVICE=Contacto provedor servizos @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Pagamento rexistrado e factura %s configura SendEmailsRemindersOnInvoiceDueDate=Envía lembranza por correo electrónico para as facturas pendentes de pagamento MakePaymentAndClassifyPayed=Rexistro de pagamento BulkPaymentNotPossibleForInvoice=Non é posible o pagamento masivo para a factura %s (tipo ou estado incorrecto) +MentionVATDebitOptionIsOn=Opción de pagar impostos en función de débitos +MentionCategoryOfOperations=Categoría de operacións +MentionCategoryOfOperations0=Entrega de produtos +MentionCategoryOfOperations1=Prestación de servizos +MentionCategoryOfOperations2=Mixto - Entrega de produtos e prestación de servizos diff --git a/htdocs/langs/gl_ES/bookmarks.lang b/htdocs/langs/gl_ES/bookmarks.lang index f494ca0210c..e348b3e0f2b 100644 --- a/htdocs/langs/gl_ES/bookmarks.lang +++ b/htdocs/langs/gl_ES/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escolla se debe abrir a páxina BookmarksManagement=Xestión de marcadores BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Bookmarks non definidos +NoBookmarkFound=Non se atopou ningún marcador diff --git a/htdocs/langs/gl_ES/boxes.lang b/htdocs/langs/gl_ES/boxes.lang index 4f3e0c6580a..3f7b5a246e8 100644 --- a/htdocs/langs/gl_ES/boxes.lang +++ b/htdocs/langs/gl_ES/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Últimas subscricións de membros BoxFicheInter=Últimas intervencións BoxCurrentAccounts=Balance de contas abertas BoxTitleMemberNextBirthdays=Cumpreanos neste mes (Membros) -BoxTitleMembersByType=Membros por tipo +BoxTitleMembersByType=Membros por tipo e estado BoxTitleMembersSubscriptionsByYear=Subscricións de membros por ano BoxTitleLastRssInfos=Últimas %s novas de %s BoxTitleLastProducts=Produtos/Servizos: Últimos %s modificados @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Pedimentos de provedores agardando recep BoxTitleLastModifiedContacts=Contactos/Enderezos: Últimos %s modificados BoxMyLastBookmarks=Últimos %s marcadores BoxOldestExpiredServices=Servizos antigos expirados +BoxOldestActions=Eventos máis antigos que atender BoxLastExpiredServices=Últimos %s contratos mais antigos con servizos expirados BoxTitleLastActionsToDo=Últimas %s accións a realizar +BoxTitleOldestActionsToDo=Eventos %s máis antigos para atender, non completados BoxTitleLastContracts=Últimos %s contratos que foron modificados BoxTitleLastModifiedDonations=Últimas %s subvencións/doazóns que foron modificadas BoxTitleLastModifiedExpenses=Últimos %s informes de gastos que foron modificados diff --git a/htdocs/langs/gl_ES/cashdesk.lang b/htdocs/langs/gl_ES/cashdesk.lang index 5663d5839a7..440c855c674 100644 --- a/htdocs/langs/gl_ES/cashdesk.lang +++ b/htdocs/langs/gl_ES/cashdesk.lang @@ -136,3 +136,4 @@ PrintWithoutDetails=Imprimir sen detalles YearNotDefined=O ano non está establecido TakeposBarcodeRuleToInsertProduct=Regra de código de barras para inserir o produto TakeposBarcodeRuleToInsertProductDesc=Regra para extraer a referencia do produto + unha cantidade dun código de barras escaneado.
    Se está baleiro (valor predeterminado), a aplicación usará o código de barras escaneado completo para atopar o produto.

    Se é definido, a sintaxe debe ser:
    Ref:NB+qu:NB+qd:NB+outro:NB
    onde RN é o número de caracteres a establecer para extraer os datos a partir do código de barras escaneado con:
    • ref : referencia produto
    • qu : cantidade de conxunto cando a inserción de elementos (unidades)
    • qd : cantidade de conxunto cando da inserción de elemento (decimais)
    • outro : outros caracteres
    +AlreadyPrinted=Xa impreso diff --git a/htdocs/langs/gl_ES/categories.lang b/htdocs/langs/gl_ES/categories.lang index 57c51ba8727..f41099a4e99 100644 --- a/htdocs/langs/gl_ES/categories.lang +++ b/htdocs/langs/gl_ES/categories.lang @@ -95,7 +95,9 @@ ShowCategory=Amosar etiqueta/categoría ByDefaultInList=Por defecto na listaxe ChooseCategory=Escoller categoría StocksCategoriesArea=Categorías de almacén +TicketsCategoriesArea=Categorías de Tickets ActionCommCategoriesArea=Categorías de evento WebsitePagesCategoriesArea=Categorías de contedores de páxina KnowledgemanagementsCategoriesArea=Categorías do artigo KM UseOrOperatorForCategories=Use o operador "OR" para as categorías +AddObjectIntoCategory=Engada un obxecto á categoría diff --git a/htdocs/langs/gl_ES/commercial.lang b/htdocs/langs/gl_ES/commercial.lang index d3d132e83b5..ffbfb122012 100644 --- a/htdocs/langs/gl_ES/commercial.lang +++ b/htdocs/langs/gl_ES/commercial.lang @@ -22,7 +22,7 @@ ThirdPartiesOfSaleRepresentative=Terceiros cuxo representante de vendas é SaleRepresentativesOfThirdParty=comerciais do terceiro SalesRepresentative=Comercial SalesRepresentatives=Comerciais -SalesRepresentativeFollowUp=Comercial (seguemento) +SalesRepresentativeFollowUp=Comercial (seguimento) SalesRepresentativeSignature=Comercial (sinatura) NoSalesRepresentativeAffected=Ningún comercial afectado ShowCustomer=Ver cliente @@ -64,17 +64,26 @@ ActionAC_SHIP=Envío expedición por correo ActionAC_SUP_ORD=Envío pedimento a provedor por correo ActionAC_SUP_INV=Envío factura de provedor por correo ActionAC_OTH=Outro -ActionAC_OTH_AUTO=Eventos creados automáticamente +ActionAC_OTH_AUTO=Outro auto ActionAC_MANUAL=Eventos creados manualmente ActionAC_AUTO=Eventos creados automáticamente -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Outro +ActionAC_EVENTORGANIZATION=Eventos de organización de eventos Stats=Estatísticas de venta StatusProsp=Estado prospección DraftPropals=Orzamentos borrador NoLimit=Sen límite ToOfferALinkForOnlineSignature=Enlace para a sinatura en liña -WelcomeOnOnlineSignaturePage=Benvenido á paxina para aceptar orzamentos de %s -ThisScreenAllowsYouToSignDocFrom=Esta pantalla permítelle aceptar e asinar, ou rexeitar, un orzamentos/proposta comercial -ThisIsInformationOnDocumentToSign=Esta é a información do documento para aceptar ou rexeitar +WelcomeOnOnlineSignaturePageProposal=Benvido á paxina para aceptar orzamentos de %s +WelcomeOnOnlineSignaturePageContract=Benvido á páxina de sinatura do contrato en PDF %s +WelcomeOnOnlineSignaturePageFichinter=Benvido á páxina de sinatura de PDF de intervención %s +ThisScreenAllowsYouToSignDocFromProposal=Esta pantalla permítelle aceptar e asinar, ou rexeitar, un orzamento/proposta comercial +ThisScreenAllowsYouToSignDocFromContract=Esta pantalla permítelle asinar contrato en formato PDF en liña. +ThisScreenAllowsYouToSignDocFromFichinter=Esta pantalla permítelle asinar en liña a intervención en formato PDF +ThisIsInformationOnDocumentToSignProposal=Esta é a información do documento para aceptar ou rexeitar +ThisIsInformationOnDocumentToSignContract=Esta é a información do contrato para asinar +ThisIsInformationOnDocumentToSignFichinter=Esta é a información sobre a intervención para asinar SignatureProposalRef=Sinatura do orzamento/proposta comercial %s +SignatureContractRef=Sinatura do contrato %s +SignatureFichinterRef=Sinatura da intervención %s FeatureOnlineSignDisabled=Característica para a sinatura en liña inhabilitada ou documento xerado antes de que fora habilitada a característica diff --git a/htdocs/langs/gl_ES/companies.lang b/htdocs/langs/gl_ES/companies.lang index 577d5591489..8061a2900be 100644 --- a/htdocs/langs/gl_ES/companies.lang +++ b/htdocs/langs/gl_ES/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Natureza do terceiro NatureOfContact=Natureza do contacto Address=Enderezo State=Provincia/Estado +StateId=ID do Estado StateCode=Código Provincia/Estado StateShort=Provincia/Estado Region=Rexión Region-State=Rexión - Estado Country=País CountryCode=Código país -CountryId=Id país +CountryId=ID do País Phone=Teléfono PhoneShort=Teléfono Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Rexistro Mercantil) ProfId2CM=Id. prof. 2 (Número de Contribuínte) -ProfId3CM=Id. prof. 3 (Acta de creación) -ProfId4CM=Id. prof. 4 (Certificado de depósitos) +ProfId3CM=Id. prof. 3 (Nº decreto de creación) +ProfId4CM=Id. prof. 4 (Certificado de depósito núm.) ProfId5CM=Id. prof. 5 (Numero EORI) ProfId6CM=- ProfId1ShortCM=Rexistro Mercantil ProfId2ShortCM=Contribuínte Núm. -ProfId3ShortCM=Acta de creación -ProfId4ShortCM=Certificado de depósitos +ProfId3ShortCM=Nº decreto de creación +ProfId4ShortCM=Certificado de depósito núm. ProfId5ShortCM=Outros ProfId6ShortCM=- ProfId1CO=Id Prof 1 (R.U.T.) diff --git a/htdocs/langs/gl_ES/compta.lang b/htdocs/langs/gl_ES/compta.lang index 48f0be31938..9c51b463043 100644 --- a/htdocs/langs/gl_ES/compta.lang +++ b/htdocs/langs/gl_ES/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (antes) Balance=Saldo Debit=Debe Credit=Haber +AccountingDebit=Debe +AccountingCredit=Haber Piece=Doc. contabilidade AmountHTVATRealReceived=Neto repercutido AmountHTVATRealPaid=Neto xa pago @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=O informe do volume de negoc TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=O informe do volume de negocio recadado por tipo de imposto sobre a venda non está dispoñible. Este informe só está dispoñible para o volume de negocio facturado. CalculationMode=Modo de cálculo AccountancyJournal=Código contable diario -ACCOUNTING_VAT_SOLD_ACCOUNT=Conta contable por defecto para o IVE de vendas (usada se non é definida no diccionario de IVE) -ACCOUNTING_VAT_BUY_ACCOUNT=Conta contable por defecto para o IVE de compras (usada se non é definida no diccionario de IVE) -ACCOUNTING_VAT_PAY_ACCOUNT=Conta contable por defecto para o pagamento de IVE -ACCOUNTING_ACCOUNT_CUSTOMER=Conta contable empregada para terceiros clientes +ACCOUNTING_VAT_SOLD_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para o IVE nas vendas (utilizada se non está definida na configuración do dicionario de IVE) +ACCOUNTING_VAT_BUY_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para o IVE nas compras (utilizada se non está definida na configuración do dicionario de IVE) +ACCOUNTING_VAT_PAY_ACCOUNT=Conta (do Plan Contable) que se utilizará como conta predeterminada para o pagamento do IVE +ACCOUNTING_ACCOUNT_CUSTOMER=Conta (do Plan Contable) utilizada para terceiros "clientes". ACCOUNTING_ACCOUNT_CUSTOMER_Desc=A conta contable adicada definida na tarxeta de terceiros usarase só para a contabilidade do Sub Libro Maior. Esta usarase para o Libro Maior e como valor predeterminado da contabilidade de Sub Libro Maior se non se define unha conta contable de cliente adicada a terceiros. -ACCOUNTING_ACCOUNT_SUPPLIER=Conta contable empregada por terceiros provedores +ACCOUNTING_ACCOUNT_SUPPLIER=Conta (do Plan Contable) utilizada para os terceiros "provedores". ACCOUNTING_ACCOUNT_SUPPLIER_Desc=A conta de contabilidade adicada definida na tarxeta de terceiros usarase só para a contabilidade d a conta maior. Esta usarase para o libro maior e como valor predeterminado da contabilidade de maior se non se define unha conta de contas de provedores adicada a terceiros. ConfirmCloneTax=Confirmar a clonación dunha taxa social/fiscal ConfirmCloneVAT=Confirmar a clonación dunha liquidación de IVE @@ -300,3 +302,4 @@ InvoiceToPay15Days=A pagar (15 a 30 días) InvoiceToPay30Days=A pagar (>30 días) ConfirmPreselectAccount=Preselección da conta contable ConfirmPreselectAccountQuestion=Está certo de querer preseleccionar as %s liñas seleccionadas con esta conta contable? +AmountPaidMustMatchAmountOfDownPayment=O importe abonado debe coincidir co importe do pago inicial diff --git a/htdocs/langs/gl_ES/contracts.lang b/htdocs/langs/gl_ES/contracts.lang index 86f09659f3f..8f018d5c5a7 100644 --- a/htdocs/langs/gl_ES/contracts.lang +++ b/htdocs/langs/gl_ES/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contratos/Subscricións ContractsAndLine=Contratos e liñas de contratos Contract=Contrato ContractLine=Liña de contrato +ContractLines=Liñas de contrato Closing=Pechando NoContracts=Sen contratos MenuServices=Servizos @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=¿Está certo de querer eliminar esta líña do contra MoveToAnotherContract=Mover o servizo a outro contrato deste terceiro. ConfirmMoveToAnotherContract=Escollin o contrato e confirmo o cambio de servizo no presente contrato. ConfirmMoveToAnotherContractQuestion=Escolla calquera outro contrato do mesmo terceiro, ¿desexa mover este servizo? -PaymentRenewContractId=Renovación servizo (número %s) +PaymentRenewContractId=Renovar contrato %s (servizo %s) ExpiredSince=Expirado dende o NoExpiredServices=Sen servizos activos expirados ListOfServicesToExpireWithDuration=Listaxe de servizos activos a expirar en %s días @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Contacto cliente asinante do contrato HideClosedServiceByDefault=Ocultar servizos pechados por defecto ShowClosedServices=Amosar servizos pechados HideClosedServices=Ocultar servizos pechados +UserStartingService=Inicio de servizo do usuario +UserClosingService=Peche de servizo de usuarios diff --git a/htdocs/langs/gl_ES/cron.lang b/htdocs/langs/gl_ES/cron.lang index 25dd993b71c..b0dbea131be 100644 --- a/htdocs/langs/gl_ES/cron.lang +++ b/htdocs/langs/gl_ES/cron.lang @@ -26,7 +26,7 @@ CronCommand=Comando CronList=Tarefas programadas CronDelete=Eliminar tarefas programadas CronConfirmDelete=Está certo de querer eliminar esta tarefa programada? -CronExecute=Iniciar tarefa programada +CronExecute=Inicia agora CronConfirmExecute=Está certo de querer executar estas tarefas programadas agora? CronInfo=O módulo de tarefas programadas permite programar tarefas para executalas automaticamente. As tarefas tamén se poden iniciar manualmente. CronTask=Tarefa @@ -58,7 +58,7 @@ CronNote=Comentario CronFieldMandatory=Os campos %s son obrigados CronErrEndDateStartDt=A data de finalización non pode ser anterior á data de inicio StatusAtInstall=Estado da instalación do módulo -CronStatusActiveBtn=Horario +CronStatusActiveBtn=Activar a programación CronStatusInactiveBtn=Desactivar CronTaskInactive=Este traballo está desactivado (non programado) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Vaia ao menú "Home - Ferramentas d JobDisabled=Tarefa deshabilitada MakeLocalDatabaseDumpShort=Copia local da base de datos MakeLocalDatabaseDump=Cree un volcado da base de datos local. Os parámetros son: compresión ('gz' ou 'bz' ou 'none'), tipo de copia de seguridade ('mysql', 'pgsql', 'auto'), 1, 'auto' ou nome de ficheiro para construír, número de ficheiros de copia de seguridade que gardar +MakeSendLocalDatabaseDumpShort=Enviar copia de seguridade da base de datos local +MakeSendLocalDatabaseDump=Enviar copia de seguridade da base de datos local por correo electrónico. Os parámetros son: to, from, subject, message, filename (nome do ficheiro enviado), filter ('sql' só para a copia de seguridade da base de tados) +BackupIsTooLargeSend=Sentímolo, o último ficheiro de copia de seguranza é demasiado grande para enviarse por correo electrónico +CleanUnfinishedCronjobShort=Limpar o cronjob sen rematar +CleanUnfinishedCronjob=Limpar o cronjob atascado no procesamento cando o proceso xa non se está a executar WarningCronDelayed=Atención, para fins de rendemento, calquera que sexa a próxima data de execución das tarefas habilitadas, é posible que as súas tarefas se retrasen ata un máximo de %s horas antes de executalos. DATAPOLICYJob=Limpar datos e anonimizar JobXMustBeEnabled=Tarefa %s debe ser activada +EmailIfError=Correo electrónico para avisar de erros +ErrorInBatch=Erro ao executar o traballo %s + # Cron Boxes LastExecutedScheduledJob=Última tarefa programada executada NextScheduledJobExecute=Próxima tarefa programada para executar NumberScheduledJobError=Número de tarefas programadas por erro +NumberScheduledJobNeverFinished=Número de traballos programados nunca rematados diff --git a/htdocs/langs/gl_ES/datapolicy.lang b/htdocs/langs/gl_ES/datapolicy.lang new file mode 100644 index 00000000000..a2c3b60bf1f --- /dev/null +++ b/htdocs/langs/gl_ES/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Política de privacidade de datos +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Módulo para xestionar a privacidade de datos (conformidade co GDPR) + +# +# Administration page +# +datapolicySetup = Configuración da política de privacidade dos datos do módulo +Deletion = Eliminación de datos +datapolicySetupPage = Segundo as leis dos seus países (Exemplo Artigo 5 do GDPR), os datos persoais deben conservarse durante un período non superior ao necesario para os fins para os que foron recollidos, excepto para fins de arquivo.
    A eliminación farase automaticamente despois dun tempo determinado sen evento (a duración que indicará a continuación). +NB_MONTHS = %s meses +ONE_YEAR = 1 ano +NB_YEARS = %s anos +DATAPOLICY_TIERS_CLIENT = Cliente +DATAPOLICY_TIERS_PROSPECT = Cliente potencial +DATAPOLICY_TIERS_PROSPECT_CLIENT = Cliente potencial/Cliente +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nin cliente potencial/Nin cliente +DATAPOLICY_TIERS_FOURNISSEUR = Provedor +DATAPOLICY_CONTACT_CLIENT = Cliente +DATAPOLICY_CONTACT_PROSPECT = Cliente potencial +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Cliente potencial/Cliente +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nin cliente potencial/Nin cliente +DATAPOLICY_CONTACT_FOURNISSEUR = Provedor +DATAPOLICY_ADHERENT = Membro +DATAPOLICY_Tooltip_SETUP = Tipo de contacto: indique as súas opcións para cada tipo. +DATAPOLICYMail = Configuración de correos electrónicos +DATAPOLICYSUBJECTMAIL = Asunto do correo electrónico +DATAPOLICYCONTENTMAIL = Contido do correo electrónico +DATAPOLICYSUBSITUTION = Pode usar as seguintes variables no seu correo electrónico (LINKACCEPT permite crear unha ligazón rexistrando o acordo da persoa, LINKREFUSED fai posible rexistrar a negativa da persoa): +DATAPOLICYACCEPT = Mensaxe despois do acordo +DATAPOLICYREFUSE = Mensaxe despois do desacordo +SendAgreementText = Pode enviar un correo electrónico GDPR a todos os seus contactos relevantes (que aínda non recibiron un correo electrónico e para os que non rexistrase nada sobre o seu acordo GDPR). Para iso, use o seguinte botón. +SendAgreement = Enviar correos electrónicos +AllAgreementSend = Enviáronse todos os correos electrónicos +TXTLINKDATAPOLICYACCEPT = Texto para a ligazón "acordo" +TXTLINKDATAPOLICYREFUSE = Texto para a ligazón "desacordo" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: Tratamento de datos persoais +DATAPOLICY_consentement = Consentimento obtido para o tratamento de datos persoais +DATAPOLICY_opposition_traitement = Oponse ao tratamento dos seus datos persoais +DATAPOLICY_opposition_prospection = Oponse ao tratamento dos seus datos persoais con fins de prospección + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizar un terceiro +DATAPOLICY_POPUP_ANONYME_TEXTE = Non pode eliminar este contacto de Dolibarr porque hai elementos relacionados. De acordo co GDPR, fará que todos estes datos sexan anónimos para respectar as súas obrigas. Gustaríalle continuar? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilidade GDPR +DATAPOLICY_PORTABILITE_TITLE = Exportación de datos persoais +DATAPOLICY_PORTABILITE_CONFIRMATION = Quere exportar os datos persoais deste contacto. Está certo ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anónimo %s + +# V2 +DATAPOLICYReturn = Validación GDPR +DATAPOLICY_date = Data do acordo/desacordo GDPR +DATAPOLICY_send = Data de envío do correo electrónico do acordo +DATAPOLICYReturn = Validación GDPR +DATAPOLICY_SEND = Enviar correo electrónico GDPR +MailSent = Enviouse o correo electrónico + +# ERROR +ErrorSubjectIsRequired = Erro: é preciso o asunto do correo electrónico. Indíqueo na configuración do módulo +=Debido a un problema técnico, non puidemos rexistrar a súa elección. Pedimos desculpas por iso. Póñase en contacto connosco para enviarnos a súa elección. +NUMBER_MONTH_BEFORE_DELETION = Número de mes antes da eliminación diff --git a/htdocs/langs/gl_ES/deliveries.lang b/htdocs/langs/gl_ES/deliveries.lang index 60e8ca17833..706a81c435a 100644 --- a/htdocs/langs/gl_ES/deliveries.lang +++ b/htdocs/langs/gl_ES/deliveries.lang @@ -12,7 +12,7 @@ ValidateDeliveryReceiptConfirm=¿Está certo de querer validar esta entrega? DeleteDeliveryReceipt=Eliminar a nota de entrega DeleteDeliveryReceiptConfirm=¿Está certo de querer eliminar a nota de entrega %s? DeliveryMethod=Método de envío -TrackingNumber=Nº de seguemento +TrackingNumber=Nº de seguimento DeliveryNotValidated=Nota de recepción non validada StatusDeliveryCanceled=Anulado StatusDeliveryDraft=Borrador diff --git a/htdocs/langs/gl_ES/dict.lang b/htdocs/langs/gl_ES/dict.lang index 394dc02d94d..1090c0d9eae 100644 --- a/htdocs/langs/gl_ES/dict.lang +++ b/htdocs/langs/gl_ES/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint-Martin ##### Civilities ##### CivilityMME=Señora +CivilityMMEShort=Señora CivilityMR=Señor +CivilityMRShort=Señor CivilityMLE=Señorita CivilityMTRE=Don CivilityDR=Doutor diff --git a/htdocs/langs/gl_ES/ecm.lang b/htdocs/langs/gl_ES/ecm.lang index 25e311ffcf3..f47440871fe 100644 --- a/htdocs/langs/gl_ES/ecm.lang +++ b/htdocs/langs/gl_ES/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Directorio manual ECMSectionAuto=Directorio automático ECMSectionsManual=Árbore manual ECMSectionsAuto=Árbore automática +ECMSectionsMedias=Árbore dos medios ECMSections=Directorios ECMRoot=ECM Raiz ECMNewSection=Novo directorio @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Número de ficheiros en sub-directories ECMCreationUser=Creador ECMArea=Área MS/ECM ECMAreaDesc=O área DMS / ECM (Document Management System / Electronic Content Management) permítelle gardar, compartir e buscar rapidamente todo tipo de documentos en Dolibarr. -ECMAreaDesc2=Pode crear directorios manuais e axuntar os documentos
    Os directorios automáticos son cobertos automáticamente ao engadir un documento nunha ficha. +ECMAreaDesc2a=* Os directorios manuais pódense usar para gardar documentos non ligados a un elemento en particular. +ECMAreaDesc2b=* Os directorios automáticos énchense automaticamente ao engadir documentos desde a páxina dun elemento. +ECMAreaDesc3=* Os directorios de medios son ficheiros do subdirectorio /medias do directorio de documentos, lexibles por todos sen necesidade de rexistrarse e sen necesidade de compartir o ficheiro de forma explícita. Utilízase para almacenar ficheiros de imaxe do módulo de correo electrónico ou sitio web. ECMSectionWasRemoved=O directorio %s foi eliminado ECMSectionWasCreated=O directorio %s foi creado. ECMSearchByKeywords=Buscar por palabras clave diff --git a/htdocs/langs/gl_ES/errors.lang b/htdocs/langs/gl_ES/errors.lang index eda9523d233..06f0cd7f434 100644 --- a/htdocs/langs/gl_ES/errors.lang +++ b/htdocs/langs/gl_ES/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=O login %s xa existe. ErrorGroupAlreadyExists=O grupo %s xa existe. ErrorEmailAlreadyExists=O correo electrónico %s xa existe ErrorRecordNotFound=Rexistro non atopado +ErrorRecordNotFoundShort=Non atopado ErrorFailToCopyFile=Erro ao copiar o ficheiro '%s' en '%s'. ErrorFailToCopyDir=Erro ao copiar o directorio '%s' en '%s'. ErrorFailToRenameFile=Erro ao renomear o ficheiro '%s' a '%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=O ficheiro de imaxe non ten un formato compatible (o seu PHP ErrorBadDateFormat=O valor '%s' ten un formato de data erroneo ErrorWrongDate=A data non correcta! ErrorFailedToWriteInDir=Erro ao escribir no directorio %s +ErrorFailedToBuildArchive=Produciuse un erro ao crear o ficheiro de arquivo %s ErrorFoundBadEmailInFile=Atopouse unha sintaxe de correo electrónico incorrecta para %s liñas no ficheiro (exemplo liña %s con correo electrónico=%s) ErrorUserCannotBeDelete=Non pode eliminarse o usuario. É posible que esté asociado a entidades do Dolibarr ErrorFieldsRequired=Algúns campos obrigatorios están baleiros @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Pregase complete o valor da listaxe de caixa de veri ErrorNoValueForRadioType=Pregase complete o valor da listaxe de radios ErrorBadFormatValueList=O valor da listaxe non pode ter máis dunha coma: %s, pero precisa polo menos unha: chave, valor ErrorFieldCanNotContainSpecialCharacters=O campo %s non debe conter caracteres especiais. -ErrorFieldCanNotContainSpecialNorUpperCharacters=O campo %s non debe conter caracteres especiais nin caracteres en maiúsculas e non pode conter só números. +ErrorFieldCanNotContainSpecialNorUpperCharacters=O campo %s non debe conter caracteres especiais, nin maiúsculas, e debe comezar cun carácter alfabético (a-z) ErrorFieldMustHaveXChar=O campo %s debe ter polo menos %s caracteres. ErrorNoAccountancyModuleLoaded=Non hai ningún módulo de contabilidade activado ErrorExportDuplicateProfil=Este nome de perfil xa existe para este conxunto de exportacións. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Non se debe desactivar Javascript para que esta fun ErrorPasswordsMustMatch=Os dous contrasinais escritos deben coincidir entre si ErrorContactEMail=Produciuse un erro técnico. Póñase en contacto co administrador no seguinte correo electrónico %s e proporcione o código de erro %s na súa mensaxe ou engada unha copia desta páxina. ErrorWrongValueForField=O campo %s:'%s' non coincide coa regra %s +ErrorHtmlInjectionForField=Campo %s : O valor ' %s non contén datos perigosos ' ErrorFieldValueNotIn=Campo %s:'%s' non é un valor atopado no campo %s de %s ErrorFieldRefNotIn=Campo %s:'%s' non é unha referencia %s existente +ErrorMultipleRecordFoundFromRef=Atopáronse varios rexistros ao buscar desde a ref %s . Non hai xeito de saber que identificación usar. ErrorsOnXLines=Atopáronse %s erros ErrorFileIsInfectedWithAVirus=O programa antivirus non puido validar o ficheiro (o ficheiro pode estar infectado por un virus) -ErrorSpecialCharNotAllowedForField=Non se permiten caracteres especiais para o campo %s ErrorNumRefModel=Existe unha referencia na base de datos (%s) e non é compatible con esta regra de numeración. Elimine o rexistro ou renomee a referencia para activar este módulo. ErrorQtyTooLowForThisSupplier=Cantidade insuficiente para este proveedor ou non hai prezo definido neste produto para este provedor ErrorOrdersNotCreatedQtyTooLow=Algúns pedidos non foron creados debido a unha cantidade demasiado baixa @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Os obxectos deben ter o estado "Acti ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Os obxectos deben ter o estado "Borrador" ou "Desactivado" para ser habilitados ErrorNoFieldWithAttributeShowoncombobox=Ningún campo ten a propiedade 'showoncombobox' na definición do obxecto '%s'. Non hai forma de amosar a listaxe combo. ErrorFieldRequiredForProduct=O campo '%s' é obrigado para o produto %s +AlreadyTooMuchPostOnThisIPAdress=Xa publicaches de mais neste enderezo IP. ProblemIsInSetupOfTerminal=O problema está na configuración do terminal %s. ErrorAddAtLeastOneLineFirst=Engada polo menos unha liña primeiro ErrorRecordAlreadyInAccountingDeletionNotPossible=Erro, o rexistro xa se transferiu á contabilidade, non se pode eliminar. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Primeiro debe configurar o seu plan de ErrorFailedToFindEmailTemplate=Fallo ao atopar o modelo co nome de código %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duración non definida no servizo. Non hai forma de calcular o prezo por hora. ErrorActionCommPropertyUserowneridNotDefined=É preciso o supervisor do usuario -ErrorActionCommBadType=O tipo de evento seleccionado (id: %n, código: %s) non existe no diccionario Tipo de Evento +ErrorActionCommBadType=O tipo de evento seleccionado (id: %s, código: %s) non existe no dicionario de tipo de evento CheckVersionFail=Fallou a comprobación da versión ErrorWrongFileName=O nome do ficheiro non pode conte __SOMETHING__ nel ErrorNotInDictionaryPaymentConditions=Non está no Dicionario de Condicións de Pagamento. Modifíqueo. ErrorIsNotADraft=%s non é un borrador ErrorExecIdFailed=Non se pode executar o comando "id" -ErrorBadCharIntoLoginName=Carácter non autorizado no nome de inicio de sesión -ErrorRequestTooLarge=Erro, a solicitude é longa de mais +ErrorBadCharIntoLoginName=Carácter non autorizado no campo %s +ErrorRequestTooLarge=Erro, solicitude demasiado grande ou sesión caducada ErrorNotApproverForHoliday=No es o que aproba a baixa %s ErrorAttributeIsUsedIntoProduct=Este atributo úsase nunha ou máis variantes do produto ErrorAttributeValueIsUsedIntoProduct=Este valor de atributo úsase nunha ou máis variantes do produto @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Erro, todas as cantidades deben introducirse na mesma ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Tenta pagar facturas na moeda %s desde unha conta coa moeda %s ErrorInvoiceLoadThirdParty=Non se pode cargar o obxecto de terceiros para a factura "%s" ErrorInvoiceLoadThirdPartyKey=Chave de terceiros "%s" non definida para a factura "%s" -ErrorDeleteLineNotAllowedByObjectStatus=O estado real do obxecto non permite eliminar a liña +ErrorDeleteLineNotAllowedByObjectStatus=O estado actual do obxecto non permite eliminar a liña ErrorAjaxRequestFailed=Produciuse un erro na solicitude +ErrorThirpdartyOrMemberidIsMandatory=Terceiro ou membro da sociedade é obrigatorio +ErrorFailedToWriteInTempDirectory=Produciuse un erro ao escribir no directorio temporal +ErrorQuantityIsLimitedTo=A cantidade está limitada a %s +ErrorFailedToLoadThirdParty=Produciuse un erro ao atopar/cargar un terceiro desde id=%s, correo electrónico=%s, nome=%s +ErrorThisPaymentModeIsNotSepa=Este modo de pagamento non é unha conta bancaria +ErrorStripeCustomerNotFoundCreateFirst=O cliente de Stripe non está configurado para este terceiro (ou definido nun valor eliminado no lado de Stripe). Créao (ou volte engadir) primeiro. +ErrorCharPlusNotSupportedByImapForSearch=A busca IMAP non é capaz de buscar no remitente ou destinatario unha cadea que conteña o carácter + +ErrorTableNotFound=Non se atopou a táboa %s +ErrorValueForTooLow=O valor de %s é demasiado baixo +ErrorValueCantBeNull=O valor para %s non pode ser nulo +ErrorDateOfMovementLowerThanDateOfFileTransmission=A data da transacción bancaria non pode ser inferior á data de transmisión do ficheiro +ErrorTooMuchFileInForm=Hai demasiados ficheiros no formulario, o número máximo é %s ficheiro(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=O seu parámetro PHP upload_max_filesize (%s) é superior ao parámetro PHP post_max_size (%s). Esta non é unha configuración consistente. WarningPasswordSetWithNoAccount=Estableceuse un contrasinal para este membro. En calquera caso, non se creou ningunha conta de usuario. Polo tanto, este contrasinal está almacenado pero non se pode usar para iniciar sesión en Dolibarr. Pode ser usado por un módulo/interface externo, pero se non precisa definir ningún login ou contrasinal para un membro, pode desactivar a opción "Xestionar un inicio de sesión para cada membro" desde a configuración do módulo Membros. Se precisa xestionar un inicio de sesión pero non precisa ningún contrasinal, pode manter este campo baleiro para evitar este aviso. Nota: o correo electrónico tamén pode ser usado como inicio de sesión se o membro está ligado a un usuario. -WarningMandatorySetupNotComplete=Faga clic aquí para configurar os parámetros obrigatorios +WarningMandatorySetupNotComplete=Prema aquí para configurar os parámetros principais WarningEnableYourModulesApplications=Faga clic aquí para habilitar os seus módulos e aplicacións WarningSafeModeOnCheckExecDir=Aviso, a opción PHP safe_mode está activada polo que o comando debe almacenarse dentro dun directorio declarado polo parámetro php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Xa existe un marcador con este título ou este destino (URL). @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Aviso, o seu ficheiro de configuración (htdocs WarningsOnXLines=Avisos nos rexistro(s) fonte %s WarningNoDocumentModelActivated=Non se activou ningún modelo para a xeración de documentos. Escollerase un modelo por defecto ata que comprobe a configuración do seu módulo. WarningLockFileDoesNotExists=Aviso, unha vez rematada a configuración, debe desactivar as ferramentas de instalación/migración engadindo un ficheiro install.lock ao directorio %s2. Omitir a creación deste ficheiro é un grave risco de seguridade. -WarningUntilDirRemoved=Todos os avisos de seguridade (visibles só polos administradores) permanecerán activos mentres a vulnerabilidade estexa presente (ou se engada esa constante MAIN_REMOVE_INSTALL_WARNING en Configuración-> Outra configuración). +WarningUntilDirRemoved=Este aviso de seguranza permanecerá activo mentres exista a vulnerabilidade. WarningCloseAlways=Aviso, o peche faise aínda que a cantidade difire entre os elementos de orixe e de destino. Active esta función con precaución. WarningUsingThisBoxSlowDown=Aviso, usando este panel ralentiza seriamente todas as páxinas que amosan o panel. WarningClickToDialUserSetupNotComplete=A configuración da información ClickToDial para o seu usuario non está completa (consulte a lapela ClickToDial na súa tarxeta de usuario). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Aviso, non pode crear directamente unha subconta, debe WarningAvailableOnlyForHTTPSServers=Dispoñible só se usa conexión segura HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Non foi activado o módulo %s . Pode que perda moitos eventos aquí WarningPaypalPaymentNotCompatibleWithStrict=O valor "Estricto" fai que as funcións de pago en liña non funcionen correctamente. Use "Laxo" no seu lugar. +WarningThemeForcedTo=Aviso, o tema foi forzado a %s pola constante oculta MAIN_FORCETHEME +WarningPagesWillBeDeleted=Aviso, isto tamén eliminará todas as páxinas/contedores existentes do sitio web. Debería exportar o seu sitio web antes, para ter unha copia de seguridade e poder importalo de novo máis tarde. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=A validación automática está desactivada cando a opción para diminuír o stock está definida en "Validación de facturas". -<<<<<<< CABECEIRA -======= -<<<<<<< CABECEIRA -<<<<<<< CABECEIRA ->>>>>>> rama '15.0' de git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Valor non válido RequireAtLeastXString = Require polo menos %s caracter(es) @@ -347,12 +361,3 @@ BadSetupOfField = Erro de configuración do campo BadSetupOfFieldClassNotFoundForValidation = Erro de configuración do campo: Non se atopou a clase para validación BadSetupOfFieldFileNotFound = Erro de configuración do campo: Non se atopou o ficheiro para a súa inclusión  BadSetupOfFieldFetchNotCallable = Erro de configuración do campo: A recuperación non se pode chamar na clase -<<<<<<< CABECEIRA -======= -======= -======= ->>>>>>> rama '15.0' de git@github.com:Dolibarr/dolibarr.git ->>>>>>> rama '15.0' de git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> rama '15.0' de git@github.com:Dolibarr/dolibarr.git ->>>>>>> rama '15.0' de git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/gl_ES/eventorganization.lang b/htdocs/langs/gl_ES/eventorganization.lang index e540221b042..0899a9ef2aa 100644 --- a/htdocs/langs/gl_ES/eventorganization.lang +++ b/htdocs/langs/gl_ES/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = No formulario para crear/engadir un asi # Object # EventOrganizationConfOrBooth= Conferencia ou Stand +EventOrganizationConfOrBoothes=Conferencias ou Stands ManageOrganizeEvent = Xestionar a organización dun evento ConferenceOrBooth = Conferencia ou Stand ConferenceOrBoothTab = Conferencia ou Stand AmountPaid = Cantidade xa paga DateOfRegistration = Data de rexistro ConferenceOrBoothAttendee = Asistente á conferencia ou stand +ApplicantOrVisitor=Solicitante ou visitante +Speaker=Ponente # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Aquí pode votar por unha conferencia ou suxeri EvntOrgRegistrationConfHelpMessage = Aquí pode suxerir unha nova conferencia para animar durante o evento. EvntOrgRegistrationBoothHelpMessage = Aquí pode solicitar un stand durante o evento. ListOfSuggestedConferences = Listaxe de conferencias suxeridas -ListOfSuggestedBooths = Listaxe de stands suxeridos -ListOfConferencesOrBooths=Listaxe de conferencias ou stands do evento +ListOfSuggestedBooths=Stands suxeridos +ListOfConferencesOrBooths=Conferencias ou stands de eventos do proxecto SuggestConference = Suxerir unha nova conferencia SuggestBooth = Suxerir un stand ViewAndVote = Ver e votar por eventos suxeridos PublicAttendeeSubscriptionGlobalPage = Ligazón pública para a inscrición ao evento PublicAttendeeSubscriptionPage = Ligazón pública para a inscrición só neste evento MissingOrBadSecureKey = A clave de seguridade non é válida ou inexistente -EvntOrgWelcomeMessage = Este formulario permítelle rexistrarse como novo participante no evento: %s +EvntOrgWelcomeMessage = Este formulario permítelle rexistrarse como novo participante no evento EvntOrgDuration = Esta conferencia comeza en %s e remata en %s. ConferenceAttendeeFee = Importe de asistente á conferencia para o evento:' %s ' acontece de %s a %s BoothLocationFee = Localización do stand para o evento: "%s" que acontece do %s ao %s @@ -130,7 +133,7 @@ LabelOfconference=Etiqueta de conferencia ConferenceIsNotConfirmed=Rexistro non dispoñible, a conferencia aínda non está confirmada DateMustBeBeforeThan=%s debe ser antes de %s DateMustBeAfterThan=%s debe ser despois de %s - +MaxNbOfAttendeesReached=Alcanzouse o número máximo de participantes NewSubscription=Rexistro OrganizationEventConfRequestWasReceived=A súa suxestión para unha conferencia foi recibida OrganizationEventBoothRequestWasReceived=A súa solicitude para un stand foi recibida @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=O seu pagamento pola inscrici OrganizationEventBulkMailToAttendees=Esta é unha lembranza da súa participación no evento como asistente OrganizationEventBulkMailToSpeakers=Esta é unha lembranza da súa participación no evento como ponente OrganizationEventLinkToThirdParty=Ligazón a terceiros (cliente, provedor ou asociado) +OrganizationEvenLabelName=Nome público da conferencia ou posto NewSuggestionOfBooth=Solicitude de stand NewSuggestionOfConference=Solicitude para unha conferencia @@ -154,7 +158,7 @@ VoteOk = O seu voto foi aceptado AlreadyVoted = Xa votou para este evento VoteError = Produciuse un erro durante a votación, ténteo de novo. -SubscriptionOk = A súa inscrición foi validada +SubscriptionOk=O seu rexistro foi gravado ConfAttendeeSubscriptionConfirmation = Confirmación da súa subscrición ao evento Attendee = Asistente PaymentConferenceAttendee = Pagamento de asistente á conferencia @@ -162,6 +166,7 @@ PaymentBoothLocation = Pagamento da localización do stand DeleteConferenceOrBoothAttendee=Eliminar asistente RegistrationAndPaymentWereAlreadyRecorder=Xa se rexistrou unha inscrición e un pagamento para este correo electrónico %s EmailAttendee=Correo electrónico do asistente +EmailCompany=Correo electrónico da empresa EmailCompanyForInvoice=Correo electrónico da empresa (para factura, se é diferente do correo electrónico do participante) ErrorSeveralCompaniesWithEmailContactUs=Atopáronse varias empresas con este correo electrónico polo que non podemos validar automaticamente a súa inscrición. Póñase en contacto connosco en %s para unha validación manual ErrorSeveralCompaniesWithNameContactUs=Atopáronse varias empresas con este nome polo que non podemos validar automaticamente a súa inscrición. Póñase en contacto connosco en %s para unha validación manual diff --git a/htdocs/langs/gl_ES/exports.lang b/htdocs/langs/gl_ES/exports.lang index a64d13d7010..24e473286a0 100644 --- a/htdocs/langs/gl_ES/exports.lang +++ b/htdocs/langs/gl_ES/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Campos exportables ExportedFields=Campos a exportar ImportModelName=Nome do perfil de importación ImportModelSaved=Perfil de importación gardado baixo o nome %s. +ImportProfile=Importar perfil DatasetToExport=Conxunto de datos a exportar DatasetToImport=Lote de datos a importar ChooseFieldsOrdersAndTitle=Escolla a orde dos campos... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=Tipo de liña (0=producto, 1=servizo) FileWithDataToImport=Ficheiro cos datos a importar FileToImport=Ficheiro orixe a importar FileMustHaveOneOfFollowingFormat=O ficheiro de importación debe conter un dos seguintes formatos +DownloadEmptyExampleShort=Descargar un ficheiro de mostra DownloadEmptyExample=Descargue un ficheiro de modelo con exemplos e información sobre campos que pode importar StarAreMandatory=No ficheiro de modelo, todos os campos cun * son campos obrigatorios ChooseFormatOfFileToImport=Escolla o formato de ficheiro que desexa importar e prema na imaxe %s para seleccionalo... @@ -82,7 +84,7 @@ SelectFormat=Seleccione este formato de ficheiro de importación RunImportFile=Lanzar a importación NowClickToRunTheImport=Comprobe os resultados da simulación. Se todo foi bien, inicie a importación definitiva. DataLoadedWithId=Todos os datos foron cargados co seguinte id de importación: %s -ErrorMissingMandatoryValue=Dato obrigatorio no indicado no ficheiro fonte, campo número %s. +ErrorMissingMandatoryValue=Os datos obrigatorios están baleiros no ficheiro fonte na columna %s . TooMuchErrors=Ainda existen %s liñas con erro, pero sa súa visualización foi limitada. TooMuchWarnings=Aínda existen %s liñas con warnings, pero a súa visualización foi limitada. EmptyLine=Liña en branco @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Pode atopar os rexistros desta importación na sú NbOfLinesOK=Número de liñas sen erros nin warnings: %s. NbOfLinesImported=Número de liñas correctamente importadas: %s. DataComeFromNoWhere=O valor a insertar non corresponde a ningún campo do ficheiro orixe. -DataComeFromFileFieldNb=O valor a insertar correspondese ao campo número %s do ficheiro orixe. -DataComeFromIdFoundFromRef=O valor que provén do campo número %s do ficheiro fonte usarase para atopar o id do obxecto principal que se vai usar (polo que o obxecto %s que ten a ref. a partir do ficheiro fonte debe existir na base de datos). -DataComeFromIdFoundFromCodeId=O código que provén do campo número %s do ficheiro fonte usarase para atopar o id do obxecto principal que se vai usar (polo que o código do ficheiro fonte debe existir no dicionario %s). Teña conta que se coñece o id, tamén pode usalo no ficheiro fonte no canto do código. A importación debería funcionar nos dous casos. +DataComeFromFileFieldNb=O valor a inserir provén da columna %s no ficheiro fonte. +DataComeFromIdFoundFromRef=O valor que provén do ficheiro de orixe empregarase para atopar o identificador do obxecto pai a usar (polo que o obxecto %s que ten a referencia do ficheiro fonte debe existir na base de datos). +DataComeFromIdFoundFromCodeId=O valor do código que provén do ficheiro fonte utilizarase para atopar o ID do obxecto principal que se vai utilizar (polo que o código do ficheiro fonte debe existir no dicionario %s ). Teña en conta que se coñece o ID, tamén pode usalo no ficheiro fonte en lugar do código. A importación debería funcionar en ambos casos. DataIsInsertedInto=Os datos procedentes do ficheiro fonte engádense no seguinte campo: DataIDSourceIsInsertedInto=O id do obxecto pai, que atopouse usando os datos do ficheiro orixe, inserirase no seguinte campo: DataCodeIDSourceIsInsertedInto=O id da liña pai, que atopouse a partir do código, inserirase no seguinte campo: @@ -132,9 +134,14 @@ FormatControlRule=Regra formato de control ## imports updates KeysToUseForUpdates=Clave a usar para actualizar datos NbInsert=Número de liñas engadidas: %s +NbInsertSim=Número de liñas que se inserirán: %s NbUpdate=Número de liñas actualizadas: %s +NbUpdateSim=Número de liñas que se actualizarán: %s MultipleRecordFoundWithTheseFilters=Atopáronse varios rexistros con estes filtros: %s StocksWithBatch=Existencias e localización (almacén) de produtos con número de lote/serie WarningFirstImportedLine=A(s) primeira(s) liña(s) non se importará(n) coa selección actual NotUsedFields=Campos da base de datos non utilizados SelectImportFieldsSource = Escolla os campos do ficheiro de orixe que quere importar e o seu campo de destino na base de datos escollendo os campos de cada caixa de selección ou seleccione un perfil de importación predefinido: +MandatoryTargetFieldsNotMapped=Algúns campos de destino obrigatorios non están asignados +AllTargetMandatoryFieldsAreMapped=Mapeáronse todos os campos de destino que precisan un valor obrigatorio +ResultOfSimulationNoError=Resultado da simulación: Sen erro diff --git a/htdocs/langs/gl_ES/externalsite.lang b/htdocs/langs/gl_ES/externalsite.lang deleted file mode 100644 index 660ce32365c..00000000000 --- a/htdocs/langs/gl_ES/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configuración da ligazón ao sitio web externo -ExternalSiteURL=URL do sitio externo do contido iframe HTML -ExternalSiteModuleNotComplete=O módulo do sitio externo non foi configurado correctamente. -ExampleMyMenuEntry=O meu menú de entrada diff --git a/htdocs/langs/gl_ES/ftp.lang b/htdocs/langs/gl_ES/ftp.lang deleted file mode 100644 index ec3838e9007..00000000000 --- a/htdocs/langs/gl_ES/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuración do módulo cliente FTP ou SFTP -NewFTPClient=Nova configuración de conexión FTP/SFTP -FTPArea=Área FTP/SFTP -FTPAreaDesc=Esta pantalla amosa unha vista dun servidor FTP/SFTP -SetupOfFTPClientModuleNotComplete=A configuración do módulo cliente FTP ou SFTP parece estar imcompleta -FTPFeatureNotSupportedByYourPHP=O seu PHP non soporta funcións FTP/SFTP' -FailedToConnectToFTPServer=Fallo ao conectar ao servidor (servidor %s, porto %s) -FailedToConnectToFTPServerWithCredentials=Fallo ao iniciar sesión no servidor co inicio de sesión/contrasinal -FTPFailedToRemoveFile=Non foi posible eliminar o ficheiro %s. -FTPFailedToRemoveDir=Non foi posible eliminar o directorio %s (Comprobe os permisos e que o directorio está baleiro). -FTPPassiveMode=Modo pasivo -ChooseAFTPEntryIntoMenu=Escolla un sitio FTP/SFTM no menú ... -FailedToGetFile=Non foi posible acadar os ficheiros %s diff --git a/htdocs/langs/gl_ES/holiday.lang b/htdocs/langs/gl_ES/holiday.lang index 1478f1e5e91..138cb78406c 100644 --- a/htdocs/langs/gl_ES/holiday.lang +++ b/htdocs/langs/gl_ES/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=RRHH Holidays=Vacacións +Holiday=Vacacións CPTitreMenu=Día libre MenuReportMonth=Estado mensual MenuAddCP=Novo pedimento de vacacións +MenuCollectiveAddCP=Nova solicitude de baixa colectiva NotActiveModCP=Debe activar o módulo Días libres para ver esta páxina AddCP=Realizar un pedimento de días libres DateDebCP=Data de inicio @@ -56,6 +58,7 @@ ConfirmDeleteCP=¿Está certo de querer eliminar este pedimento de días libres? ErrorCantDeleteCP=Erro, non ten permisos para eliminar este pedimento de días libres. CantCreateCP=Non ten permisos para realizar pedimentos de días libres. InvalidValidatorCP=Debe escoller o/a responsable da aprobaciónr para a súa solicitude de vacacións. +InvalidValidator=O usuario escollido non tes permiso para aprobación. NoDateDebut=Debe indicar unha data de inicio. NoDateFin=Debe indicar unha data de fin. ErrorDureeCP=O seu pedimento de días libres non contén ningún día hábil. @@ -79,6 +82,8 @@ MotifCP=Razón UserCP=Usuario ErrorAddEventToUserCP=Aconteceu un erro na asignación do permiso excepcional. AddEventToUserOkCP=Engadiuse o permiso excepcional. +ErrorFieldRequiredUserOrGroup=Debe cubrirse o campo "grupo" ou o campo "usuario". +fusionGroupsUsers=O campo de grupos e o campo de usuario fusionaranse MenuLogCP=Ver rexistro de cambios LogCP=Rexistro de todas as actualizacións feitas a "Balance de vacacións" ActionByCP=Actualizado por @@ -86,6 +91,13 @@ UserUpdateCP=Actualizado para PrevSoldeCP=Saldo anterior NewSoldeCP=Novo saldo alreadyCPexist=Xa foi efectuada un pedimento de días libres para este período. +UseralreadyCPexist=Xa se fixo unha solicitude de baixa neste período para %s. +groups=Grupos +users=Usuarios +AutoSendMail=Correo automático +NewHolidayForGroup=Nova solicitude de baixa colectiva +SendRequestCollectiveCP=Enviar solicitude de baixa colectiva +AutoValidationOnCreate=Validación automática FirstDayOfHoliday=Día de inicio da solicitude de vacacións LastDayOfHoliday=Día de finalización da solicitude de vacacións BoxTitleLastLeaveRequests=Últimas %s solicitudes de días libres modificadas @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s é habitualmente un día NON laboral BlockHolidayIfNegative=Bloquear se o saldo é negativo LeaveRequestCreationBlockedBecauseBalanceIsNegative=Bloqueouse a creación desta solicitude de días porque o seu saldo é negativo ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=A solicitude de saída %s debe estar en borrador, cancelada ou rexeitada para ser eliminada +IncreaseHolidays=Aumentar as vacacións +HolidayRecordsIncreased= %s aumentaron os rexistros de vacacións +HolidayRecordIncreased=Aumentou o rexistro de vacacións +ConfirmMassIncreaseHoliday=Aumento masivo de vacacións +NumberDayAddMass=Número de día para engadir á selección +ConfirmMassIncreaseHolidayQuestion=Está certo de querer aumentar as vacacións do(s) rexistro(s) seleccionado(s) %s? +HolidayQtyNotModified=O saldo dos días restantes para %s non se modificou diff --git a/htdocs/langs/gl_ES/hrm.lang b/htdocs/langs/gl_ES/hrm.lang index 46542bdd313..5e3a257ceaf 100644 --- a/htdocs/langs/gl_ES/hrm.lang +++ b/htdocs/langs/gl_ES/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Abrir establecemento CloseEtablishment=Pechar establecemento # Dictionary DictionaryPublicHolidays=Permisos- Días Festivos -DictionaryDepartment=RRHH - Listaxe Departamentos +DictionaryDepartment=HRM - Unidade Organizativa DictionaryFunction=RRHH - Postos de traballo # Module Employees=Empregados @@ -70,9 +70,9 @@ RequiredSkills=Competencias precisas para este traballo UserRank=Rango de usuario SkillList=Listaxe de competencias SaveRank=Gardar rango -knowHow=Coñecemento -HowToBe=Como ser -knowledge=Coñecemento +TypeKnowHow=Coñecemento +TypeHowToBe=Como ser +TypeKnowledge=Coñecemento AbandonmentComment=Comentario de abandono DateLastEval=Data da última avaliación NoEval=Non se fixo ningunha avaliación para este empregado @@ -88,3 +88,5 @@ DeleteSkill = Competencia eliminada SkillsExtraFields=Atributos adicionais (Competencias) JobsExtraFields=Atributos adicionais (Postos) EvaluationsExtraFields=Atributos adicionais (avaliacións) +NeedBusinessTravels=Precisa viaxes de negocios +NoDescription=Sen descrición diff --git a/htdocs/langs/gl_ES/install.lang b/htdocs/langs/gl_ES/install.lang index 81eb34ea2f4..7fd233ea2e3 100644 --- a/htdocs/langs/gl_ES/install.lang +++ b/htdocs/langs/gl_ES/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=O ficheiro de configuración %s non se pode escribi ConfFileIsWritable=O ficheiro de configuración %s é escribíbel. ConfFileMustBeAFileNotADir=O ficheiro de configuración %s debe ser un ficheiro, non un directorio. ConfFileReload=Recargando parámetros do ficheiro de configuración. -NoReadableConfFileSoStartInstall=O ficheiro de configuración conf/conf.php non existe ou non se pode recuperar. Realizaremos o proceso de instalación para tentar inicializalo. +NoReadableConfFileSoStartInstall=O ficheiro de configuración conf/conf.php non existe ou non se pode ler. Realizaremos o proceso de instalación para tentar inicializalo. PHPSupportPOSTGETOk=Este PHP admite variables POST e GET. PHPSupportPOSTGETKo=É posible que a súa configuración de PHP non admita variables POST e/ou GET. Comprobe o parámetro variables_order en php.ini. PHPSupportSessions=Este PHP admite sesións. @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Pode que escribise un valor incorrecto para o parám ErrorFailedToCreateDatabase=Fallo ao crear a base de datos '%s'. ErrorFailedToConnectToDatabase=Produciuse un fallo ao conectarse á base de datos '%s'. ErrorDatabaseVersionTooLow=A versión da base de datos (%s) é antiga de mais. É precisa a versión %s ou superior. -ErrorPHPVersionTooLow=A versión de PHP é antiga de mais. É precisa a versión %s. +ErrorPHPVersionTooLow=A versión de PHP é moi antiga. Requírese a versión %s ou superior. +ErrorPHPVersionTooHigh=Versión de PHP demasiado alta. Requírese a versión %s ou inferior. ErrorConnectedButDatabaseNotFound=Conexión correcta ao servidor pero non se atopou a base de datos '%s'. ErrorDatabaseAlreadyExists=A base de datos '%s' xa existe. IfDatabaseNotExistsGoBackAndUncheckCreate=Se a base de datos non existe, volte atrás e marque a opción "Crear base de datos". diff --git a/htdocs/langs/gl_ES/interventions.lang b/htdocs/langs/gl_ES/interventions.lang index a495186b18c..cf20ab11dfa 100644 --- a/htdocs/langs/gl_ES/interventions.lang +++ b/htdocs/langs/gl_ES/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Estás certo de que queres abrir de novo a intervenci GenerateInter=Xerar intervención FichinterNoContractLinked=A intervención %s creouse sen un contrato ligado. ErrorFicheinterCompanyDoesNotExist=O terceiro non existe. Non se creou a intervención. +NextDateToIntervention=Data para a próxima xeración de intervención +NoIntervention=Sen intervención diff --git a/htdocs/langs/gl_ES/knowledgemanagement.lang b/htdocs/langs/gl_ES/knowledgemanagement.lang index 32e2d1c05dd..01faed8a48c 100644 --- a/htdocs/langs/gl_ES/knowledgemanagement.lang +++ b/htdocs/langs/gl_ES/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Artigos KnowledgeRecord = Artigo KnowledgeRecordExtraFields = Campos extras para Artigos GroupOfTicket=Grupo de tickets -YouCanLinkArticleToATicketCategory=Pode ligar un artigo a un grupo de tickets (polo que o artigo suxerirase durante a cualificación de novos tickets) +YouCanLinkArticleToATicketCategory=Pode ligar o artigo a un grupo de entradas (polo que o artigo destacará en calquera entrada deste grupo) SuggestedForTicketsInGroup=Suxerido para tickes cando o grupo é SetObsolete=Establécese como obsoleto diff --git a/htdocs/langs/gl_ES/languages.lang b/htdocs/langs/gl_ES/languages.lang index f420e7470fd..9bcd20be684 100644 --- a/htdocs/langs/gl_ES/languages.lang +++ b/htdocs/langs/gl_ES/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Etíope Language_ar_AR=Árabe Language_ar_DZ=Árabe (Alxeria) Language_ar_EG=Árabe (Exipto) +Language_ar_JO=Árabe (Xordania) Language_ar_MA=Árabe (Marrocos) Language_ar_SA=Árabe Language_ar_TN=Arabe (Tunez) @@ -12,9 +13,11 @@ Language_az_AZ=Azerí Language_bn_BD=Bengalí Language_bn_IN=Bengali (India) Language_bg_BG=Búlgaro +Language_bo_CN=Tibetano Language_bs_BA=Bosnio Language_ca_ES=Catalán Language_cs_CZ=Checo +Language_cy_GB=Galés Language_da_DA=Danés Language_da_DK=Danés Language_de_DE=Alemán @@ -22,6 +25,7 @@ Language_de_AT=Alemán (Austria) Language_de_CH=Alemán (Suíza) Language_el_GR=Grego Language_el_CY=Grego (Chipre) +Language_en_AE=Inglés (Emiratos Árabes Unidos) Language_en_AU=Inglés (Australia) Language_en_CA=Inglés (Canadá) Language_en_GB=Inglés (Reino Unido) @@ -36,6 +40,7 @@ Language_es_AR=Español (Arxentina) Language_es_BO=Español (Bolivia) Language_es_CL=Español (Chile) Language_es_CO=Español (Colombia) +Language_es_CR=Español (Costa Rica) Language_es_DO=Español (República Dominicana) Language_es_EC=Español (Ecuador) Language_es_GT=Español (Guatemala) @@ -83,18 +88,21 @@ Language_lt_LT=Lituano Language_lv_LV=Letón Language_mk_MK=Macedonio Language_mn_MN=Mongol +Language_my_MM=Birmano Language_nb_NO=Noruegués (Bokmål) Language_ne_NP=Nepali Language_nl_BE=Holandés (Bélxica) Language_nl_NL=Alemán Language_pl_PL=Polaco Language_pt_AO=Portugués (Ángola) +Language_pt_MZ=Portugués (Mozambique) Language_pt_BR=Portugués (Brasil) Language_pt_PT=Portugués Language_ro_MD=Rumano (Moldavia) Language_ro_RO=Romanés Language_ru_RU=Ruso Language_ru_UA=Ruso (Ucraína) +Language_ta_IN=Tamil Language_tg_TJ=Taxico Language_tr_TR=Turco Language_sl_SI=Esloveno @@ -106,6 +114,7 @@ Language_sr_RS=Serbio Language_sw_SW=Kiswahili Language_th_TH=Tailandés Language_uk_UA=Ucraíno +Language_ur_PK=Urdú Language_uz_UZ=Usbeco Language_vi_VN=Vietnamita Language_zh_CN=Chinés diff --git a/htdocs/langs/gl_ES/loan.lang b/htdocs/langs/gl_ES/loan.lang index 5f3de7a9ab7..21a28fa60ab 100644 --- a/htdocs/langs/gl_ES/loan.lang +++ b/htdocs/langs/gl_ES/loan.lang @@ -3,32 +3,32 @@ Loan=Empréstito Loans=Empréstitos NewLoan=Novo empréstito ShowLoan=Ver empréstito -PaymentLoan=Pago de empréstito -LoanPayment=Pago do empréstito -ShowLoanPayment=Consultar pago de empréstito +PaymentLoan=Pagamento de empréstito +LoanPayment=Pagamento do empréstito +ShowLoanPayment=Consultar pagamento de empréstito LoanCapital=Capital Insurance=Seguro -Interest=Interese +Interest=Xuro Nbterms=Número de prazos Term=Prazo LoanAccountancyCapitalCode=Conta contable capital LoanAccountancyInsuranceCode=Conta contable seguro -LoanAccountancyInterestCode=Conta contable interese +LoanAccountancyInterestCode=Conta contable xuro ConfirmDeleteLoan=¿Está certo de querer eliminar este empréstito? LoanDeleted=Empréstito eliminado correctamente -ConfirmPayLoan=¿Esta certo de querer clasificar como pagado este empréstito? +ConfirmPayLoan=¿Está certo de querer clasificar como pagado este empréstito? LoanPaid=Empréstito pagado ListLoanAssociatedProject=Listaxe de empréstitos asociados ao proxecto AddLoan=Crear empréstito FinancialCommitment=Compromiso financieiro -InterestAmount=Interese +InterestAmount=Xuro CapitalRemain=Capital restante TermPaidAllreadyPaid = Este prazo xa está pago -CantUseScheduleWithLoanStartedToPaid = Non pode usar o planificador para un emprétito con pago iniciado -CantModifyInterestIfScheduleIsUsed = Non pode modificar os intereses se xa está planificado +CantUseScheduleWithLoanStartedToPaid = Non se pode xerar un cronograma para un rmpréstito cun pagamento iniciado +CantModifyInterestIfScheduleIsUsed = Non pode modificar os xuros se xa está planificado # Admin ConfigLoan=Configuración do módulo empréstitos -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Conta contable por defecto para o capital -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Conta contable por defecto para o interese -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Conta contable por defecto para o seguro +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Conta (do Plan Contable) que se utilizará por defecto para o capital (módulo Préstamo) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Conta (do Plan Contable) que se utilizará por defecto para os xuros (módulo Préstamo) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Conta (do Plan Contable) que se utilizará por defecto para o seguro (módulo Préstamo) CreateCalcSchedule=Editar o compromiso financieiro diff --git a/htdocs/langs/gl_ES/mailmanspip.lang b/htdocs/langs/gl_ES/mailmanspip.lang index 08dbb902cca..c40e3d707ef 100644 --- a/htdocs/langs/gl_ES/mailmanspip.lang +++ b/htdocs/langs/gl_ES/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscrición de proba executada correctamente MailmanDeletionSuccess=Cancelación de subscrición de proba foi executada correctamente SynchroMailManEnabled=Unha actualización de Mailman será realizada SynchroSpipEnabled=Unha actualización de Spip será realizada -DescADHERENT_MAILMAN_ADMINPW=Contrasinal de administrador Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Contrasinal de administrador Mailman DescADHERENT_MAILMAN_URL=URL para as subscricións Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para a cancelación de subscripcións Mailman DescADHERENT_MAILMAN_LISTS=Lista(s) para a subscripción automática dos novos membros (separados por comas) diff --git a/htdocs/langs/gl_ES/mails.lang b/htdocs/langs/gl_ES/mails.lang index c07d760d06c..54ee641b24a 100644 --- a/htdocs/langs/gl_ES/mails.lang +++ b/htdocs/langs/gl_ES/mails.lang @@ -7,10 +7,10 @@ MailCard=Ficha Mailing MailRecipients=Destinatarios MailRecipient=Destinatario MailTitle=Descrición -MailFrom=Remitente +MailFrom=Emisor MailErrorsTo=Erros a MailReply=Respostar a -MailTo=Destinatario(s) +MailTo=Enviar a: MailToUsers=A usuario(s) MailCC=Copia a MailToCCUsers=Copia a usuario(s) @@ -119,7 +119,7 @@ NbOfEMailingsSend=Mailings masivos enviados IdRecord=ID rexistro DeliveryReceipt=Acuse de recibo. YouCanUseCommaSeparatorForSeveralRecipients=Pode usar o carácter de separación coma para especificar múltiples destinatarios. -TagCheckMail=Seguemento da apertura do email +TagCheckMail=Seguimento da apertura do email TagUnsubscribe=Ligazón de baixa na subscrición TagSignature=Sinatura do usuario que envía EMailRecipient=Mail do destinatario @@ -178,3 +178,4 @@ IsAnAnswer=É unha resposta de un coreo electrónico recibido RecordCreatedByEmailCollector=Rexistro creado polo receptor de correo electrónico %s a partir do correo electrónico %s DefaultBlacklistMailingStatus=Valor predeterminado para o campo '%s' ao crear un novo contacto DefaultStatusEmptyMandatory=Baleiro pero obrigatorio +WarningLimitSendByDay=ADVERTENCIA: a configuración ou o contrato da súa instancia limita o seu número de correos electrónicos ao día a %s . Se tenta enviar máis, pode que a súa instancia se ralentice ou se suspenda. Poñase en contacto co seu servizo de asistencia se precisa unha cota máis alta. diff --git a/htdocs/langs/gl_ES/main.lang b/htdocs/langs/gl_ES/main.lang index 4b818e1fb4e..54f5b211c87 100644 --- a/htdocs/langs/gl_ES/main.lang +++ b/htdocs/langs/gl_ES/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Sen padrón dispoñible para este tipo de cooreo electrónico AvailableVariables=Variables de substitución dispoñibles NoTranslation=Sen tradución Translation=Tradución +Translations=Traducións CurrentTimeZone=Zona horaria PHP (Servidor) EmptySearchString=Entre unha cadea de busca non baleira EnterADateCriteria=Engadir un criterio de data @@ -199,6 +206,7 @@ Valid=Validar Approve=Aprobar Disapprove=Desaprobar ReOpen=Reabrir +OpenVerb=Abertos Upload=Actualizar ficheiro ToLink=Ligazón Select=Seleccionar @@ -216,7 +224,7 @@ UserGroup=Grupo de usuarios UserGroups=Grupos de usuarios NoUserGroupDefined=Non hai definido grupo de usuarios Password=Contrasinal -PasswordRetype=Repetir o teu contrasinal +PasswordRetype=Repita o seu contrasinal NoteSomeFeaturesAreDisabled=Ten conta que moitos módulos/funcionalidades foron desactivados nesta demo. Name=Nome NameSlashCompany=Nome / Empresa @@ -481,6 +489,7 @@ ActionsOnContact=Eventos deste contacto/enderezo ActionsOnContract=Eventos deste contrato ActionsOnMember=Eventos deste membro ActionsOnProduct=Eventos deste produto +ActionsOnAsset=Eventos para este activo fixo NActionsLate=%s en atraso ToDo=A realizar Completed=Realizado @@ -712,6 +721,7 @@ FeatureDisabled=Función desactivada MoveBox=Mover panel Offered=S/Custo NotEnoughPermissions=Non ten permisos para esta acción +UserNotInHierachy=Esta acción está reservada aos supervisores deste usuario SessionName=Nome sesión Method=Método Receive=Recepción @@ -801,6 +811,7 @@ URLPhoto=Url da foto/logo SetLinkToAnotherThirdParty=Ligar a outro terceiro LinkTo=Ligar a LinkToProposal=Ligar a orzamento +LinkToExpedition= Ligazón á expedición LinkToOrder=Ligar a pedimento LinkToInvoice=Ligar a factura LinkToTemplateInvoice=Ligar o padrón de factura @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Ligazón privada de descarga PrivateDownloadLinkDesc=Precisa estar logueado e ter permisos para ver ou descargar o ficheiro Download=Descargar DownloadDocument=Descargar o documento +DownloadSignedDocument=Descargar documento asinado ActualizeCurrency=Actualizar o tipo de cambio Fiscalyear=Ano fiscal ModuleBuilder=Módulo e aplicación Builder @@ -1044,6 +1056,7 @@ SearchIntoContracts=Contratos SearchIntoCustomerShipments=Envíos a clientes SearchIntoExpenseReports=Informes de gastos SearchIntoLeaves=Día libre +SearchIntoKM=Base de Coñecemento SearchIntoTickets=Tickets SearchIntoCustomerPayments=Pagamentos dos clientes SearchIntoVendorPayments=Pagamentos a provedores @@ -1135,15 +1148,29 @@ EventReminder=Recordatorio de evento UpdateForAllLines=Actualizar todas as liñas OnHold=Agardando Civility=Cortesía -AffectTag=Poñer etiqueta +AffectTag=Asignar etiqueta +AffectUser=Asignar usuario +SetSupervisor=Configurar Supervisor CreateExternalUser=Crear usuario externo -ConfirmAffectTag=Poñer etiqueta masiva -ConfirmAffectTagQuestion=Está certo de que quere poñer ás etiquetas dos rexistros seleccionados %s? +ConfirmAffectTag=Asignación masiva de etiquetas +ConfirmAffectUser=Asignación masiva de usuarios +ProjectRole=Papel asignado en cada proxecto +TasksRole=Papel asignado en cada tarefa de cada proxecto +ConfirmSetSupervisor=Configuración masiva de supervisores +ConfirmUpdatePrice=Escolla un aumento/diminución da taxa de prezo +ConfirmAffectTagQuestion=Está certo de querer asignar etiquetas aos rexistros seleccionados %s? +ConfirmAffectUserQuestion=Está certo de querer asignar usuarios aos rexistros seleccionados %s? +ConfirmSetSupervisorQuestion=Está certo de querer configurar o supervisor para o(s) rexistro(s) seleccionado(s) %s? +ConfirmUpdatePriceQuestion=Está certo de querer actualizar o prezo do(s) rexistro(s) seleccionado(s) %s? CategTypeNotFound=Non se atopou ningún tipo de etiqueta para o tipo de rexistros +Rate=Tipo +SupervisorNotFound=Non se atopou o supervisor CopiedToClipboard=Copiado a portapapeis InformationOnLinkToContract=Este importe é só o total de todas as liñas do contrato. Non se ten en conta ningunha noción de tempo. ConfirmCancel=Está certo de querer cancelar EmailMsgID=Correo electónico MsgID +EmailDate=Data do correo electrónico +SetToStatus=Establece o estado %s SetToEnabled=Establecer como activado SetToDisabled=Establecer como desactivado ConfirmMassEnabling=confirmación de habilitación masiva @@ -1172,8 +1199,14 @@ Terminated=De baixa AddLineOnPosition=Engadir liña na posición (ao final se está baleira) ConfirmAllocateCommercial=Asignar a confirmación do representante de vendas ConfirmAllocateCommercialQuestion=Está certo de querer asignar o(s) rexistro(s) seleccionado(s) a %s? -CommercialsAffected=Representantes de vendas afectados -CommercialAffected=Representante de vendas afectado +CommercialsAffected=Representantes de vendas asignados +CommercialAffected=Representante de vendas asignado YourMessage=A súa mensaxe YourMessageHasBeenReceived=Recibiuse a súa mensaxe. Atenderemos ou contactaremos con vostede canto antes. UrlToCheck=URL para comprobar +Automation=Automatización +CreatedByEmailCollector=Creado por Recolector de Correo +CreatedByPublicPortal=Creado a partir do portal público +UserAgent=Axente de usuario +InternalUser=Usuario interno +ExternalUser=Usuario externo diff --git a/htdocs/langs/gl_ES/members.lang b/htdocs/langs/gl_ES/members.lang index 87d54b4007c..6155f7b843f 100644 --- a/htdocs/langs/gl_ES/members.lang +++ b/htdocs/langs/gl_ES/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Outro membro (nome: %s, login: ErrorUserPermissionAllowsToLinksToItselfOnly=Por razóns de seguridade, debe posuir os dereitos de modificación de todos os usuarios para poder ligar un membro a un usuario que non sexa vostede mesmo mesmo. SetLinkToUser=Ligar a un usuario Dolibarr SetLinkToThirdParty=Ligar a un terceiro Dolibarr +MemberCountersArePublic=Os contadores dos membros válidos son públicos MembersCards=Xeración de tarxetas para membros MembersList=Listaxe de membros MembersListToValid=Listaxe de membros borrador (a validar) @@ -34,8 +35,10 @@ DateSubscription=Data de filiación DateEndSubscription=Data de finalización da filiación EndSubscription=Finalización da filiación SubscriptionId=ID de achega -WithoutSubscription=Sen achega -MemberId=ID membro +WithoutSubscription=Sen afiliación +WaitingSubscription=Afiliación pendente +MemberId=Id. do membro +MemberRef=Ref. Membro NewMember=Novo membro MemberType=Tipo de membro MemberTypeId=ID tipo de membro @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=O tipo de membro non pode ser eliminado NewSubscription=Nova afiliación NewSubscriptionDesc=Utilice este formulario para rexistrarse como un novo membro da asociación. Para unha renovación, se xa é membro, póñase en contacto coa asociación ao través do mail %s. Subscription=Achega +AnyAmountWithAdvisedAmount=Calquera cantidade que escolla, recomendado %s +AnyAmountWithoutAdvisedAmount=Calquera cantidade da súa escolla +CanEditAmountShort=Calquera cantidade +CanEditAmountShortForValues=recomendado, calquera cantidade +MembershipDuration=Permanencia +GetMembershipButtonLabel=Únase Subscriptions=Achegas SubscriptionLate=En atraso SubscriptionNotReceived=Achega nunca recibida @@ -135,7 +144,7 @@ CardContent=Contido da súa ficha de membro # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Queremos comunicarlle que se recibiu a súa solicitude de adhesión

    ThisIsContentOfYourMembershipWasValidated=Queremos comunicarlle que a súa subscrición foi validada coa seguinte información:

    -ThisIsContentOfYourSubscriptionWasRecorded=Queremos comunicarlle de que se rexistrou a súa nova subscrición

    +ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarlle de que se rexistrou a súa nova subscrición. Atopará a súa factura aquí axunta.

    ThisIsContentOfSubscriptionReminderEmail=Queremos comunicarlle que a súa subscrición está a piques de caducar ou xa caducou (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Agardamos que a renove

    ThisIsContentOfYourCard=Este é un resumo da información que temos sobre vostede. Póñase en contacto connosco se hai algo incorrecto

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto do correo electrónico de notificación recibido en caso de inscrición automática dun convidado @@ -198,8 +207,10 @@ NbOfSubscriptions=Número de achegas AmountOfSubscriptions=Cantidade recollida das achegas TurnoverOrBudget=Volumen de vendas (para empresa) ou Orzamento (para Fundación) DefaultAmount=Importe da achega por defecto -CanEditAmount=O visitante pode escoller/editar o importe da súa achega -MEMBER_NEWFORM_PAYONLINE=Ir á páxina integrada de pagamento en liña +CanEditAmount=O importe da subscrición é gratuíto +CanEditAmountDetail=O visitante pode escoller/editar a cantidade da súa contribución independentemente do tipo de membro +AmountIsLowerToMinimumNotice=un debito total de %s +MEMBER_NEWFORM_PAYONLINE=Despois do rexistro en liña, cambie automaticamente á páxina de pagamento en liña ByProperties=Por natureza MembersStatisticsByProperties=Estatísticas dos membros por natureza VATToUseForSubscriptions=Tipo do IVE para utilizar nas achegas @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=A creación dun inicio de sesión de usuario para os mem CreateDolibarrThirdPartyDesc=Un terceiro é a persoa xurídica que se usará na factura se decide xerar factura por cada achega. Poderá crealo máis tarde durante o proceso de gravación da achega. MemberFirstname=Nome do membro MemberLastname=Apelido do membro +MemberCodeDesc=Código de membro, único para todos os membros diff --git a/htdocs/langs/gl_ES/modulebuilder.lang b/htdocs/langs/gl_ES/modulebuilder.lang index 69d0c02b528..4fdb87efd4d 100644 --- a/htdocs/langs/gl_ES/modulebuilder.lang +++ b/htdocs/langs/gl_ES/modulebuilder.lang @@ -153,3 +153,4 @@ LinkToParentMenu=Menú principal (fk_xxxxmenu) ListOfTabsEntries=Lista de entradas de pestanas TabsDefDesc=Defina aquí as pestanas que proporciona o seu módulo TabsDefDescTooltip=As pestanas proporcionadas polo seu módulo/aplicación defínense na matriz $this->tabs no ficheiro descritor do módulo. Pode editar este ficheiro manualmente ou usar o editor incorporado. +BadValueForType=Valor incorrecto para o tipo %s diff --git a/htdocs/langs/gl_ES/mrp.lang b/htdocs/langs/gl_ES/mrp.lang index 6f813d54b3b..631d42bb8ee 100644 --- a/htdocs/langs/gl_ES/mrp.lang +++ b/htdocs/langs/gl_ES/mrp.lang @@ -11,8 +11,8 @@ Bom=Listaxes de material BillOfMaterials=Listaxe de materiais BillOfMaterialsLines=Factura de Liñas de Material BOMsSetup=Configuración do módulo BOM -ListOfBOMs=Listaxe de facturas de materiais - BOM -ListOfManufacturingOrders=Listaxe de pedimentos de fabricación +ListOfBOMs=Listas de materiais - BOM +ListOfManufacturingOrders=Pedimentos de fabricación NewBOM=Nova listaxe de materiais ProductBOMHelp=Produto para crear (ou desmontar) con esta Lista de Materiais
    Nota: Os produtos coa propiedade 'Natureza do produto' = 'Materia prima' non están visibles nesta listaxe. BOMsNumberingModules=Modelos de numeración BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Está certo de querer clonar a listaxe de materiais ConfirmCloneMo=Está certo de querer clonar este pedimento de facturación %s? ManufacturingEfficiency=Eficiencia de fabricación ConsumptionEfficiency=Eficienci de consumo +Consumption=Consumo ValueOfMeansLoss=O valor de 0,95 significa unha media de 5%% de perda durante a fabricación ou a desmontaxe ValueOfMeansLossForProductProduced=O valor de 0,95 significa unha media do 5 %% da perda do produto producido DeleteBillOfMaterials=Eliminar listaxe de materiais @@ -82,6 +83,7 @@ ProductsToProduce=Produtos para fabricar UnitCost=Custo unitario TotalCost=Custo total BOMTotalCost=O custo para producir este BOM está en función do custo de cada cantidade e produto a consumir (use o prezo de custo se se define, se non o prezo medio ponderado se se define, se non o mellor prezo de compra) +BOMTotalCostService=Se o módulo "Estación de traballo" está activado e unha estación de traballo está definida por defecto na liña, entón o cálculo é "cantidade (convertida en horas) x estación de traballo ahr", se non "cantidade (convertida en horas) x prezo de custo do servizo" GoOnTabProductionToProduceFirst=Primeiro debe iniciar a produción para pechar un pedimento de fabricación (ver a lapela '%s'). Pero pode cancelalo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Non se pode usar un produto composto nunha BOM nin nunha MO Workstation=Estación de traballo @@ -112,3 +114,7 @@ MOAndLines=Pedimentos e liñas de fabricación MoChildGenerate=Xerar fillo Om ParentMo=OM Pai MOChild=OM Fillo +BomCantAddChildBom=A nomenclatura %s xa está presente na árbore que conduce á nomenclatura %s +BOMNetNeeds = Necesidades netas de BOM +BOMProductsList=Produtos de BOM +BOMServicesList=Servizos de BOM diff --git a/htdocs/langs/gl_ES/oauth.lang b/htdocs/langs/gl_ES/oauth.lang index 1355842921f..5fbff98dd7f 100644 --- a/htdocs/langs/gl_ES/oauth.lang +++ b/htdocs/langs/gl_ES/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Foi xerado e gardado na base de datos local un token NewTokenStored=Token recibido e gardado ToCheckDeleteTokenOnProvider=Faga clic aquí para comprobar/eliminar a autorización gardada polo fornecedor de OAuth %s TokenDeleted=Token eliminado -RequestAccess=Faga clic aquí para consultar/renovar acceso e recibir un novo token a gardar +RequestAccess=Prema aquí para solicitar/renovar o acceso e recibir un novo token DeleteAccess=Faga clic aquí para eliminar o token UseTheFollowingUrlAsRedirectURI=Utilice o seguinte URL como redirección URI cando cree as súas credenciais co seu provedor de OAuth: -ListOfSupportedOauthProviders=Introduza as credenciais proporcionadas polo seu provedor OAuth2. Aquí só figuran os provedores compatibles con OAuth2. Estes servizos poden ser empregados por outros módulos que precisan autenticación OAuth2. -OAuthSetupForLogin=Páxina para xerar un token OAuth +ListOfSupportedOauthProviders=Engada os seus provedores de tokens OAuth2. A continuación, vaia á páxina de administración do seu provedor de OAuth para crear/obter un ID de OAuth e un Segredo e gárdeos aquí. Unha vez feito isto, active a outra pestana para xerar o seu token. +OAuthSetupForLogin=Páxina para xestionar (xerar/eliminar) tokens OAuth SeePreviousTab=Ver a lapela previa +OAuthProvider=Provedor de OAuth OAuthIDSecret=ID OAuth e contrasinal TOKEN_REFRESH=Actualizar o token actual TOKEN_EXPIRED=Token expirado @@ -23,10 +24,13 @@ TOKEN_DELETE=Eliminar token gardado OAUTH_GOOGLE_NAME=Servicio Oauth Google OAUTH_GOOGLE_ID=Id Oauth Google OAUTH_GOOGLE_SECRET=Oauth Google Secret -OAUTH_GOOGLE_DESC=Vaia a esta páxina e a "Credenciais" para crear credenciais Oauth OAUTH_GITHUB_NAME=Servizo Oauth GitHub OAUTH_GITHUB_ID=Id Oauth Github OAUTH_GITHUB_SECRET=Oauth GitHub Secret -OAUTH_GITHUB_DESC=Vaia a esta páxina e a "Rexistrar unha nova aplicación" para crear crecenciais Oauth +OAUTH_URL_FOR_CREDENTIAL=Vaia a esta páxina para crear ou obter o seu ID e Segredo de OAuth OAUTH_STRIPE_TEST_NAME=Test OAuth Stripe OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=ID de OAuth +OAUTH_SECRET=Segredo de OAuth +OAuthProviderAdded=Engadiuse o provedor de OAuth +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Xa existe unha entrada de OAuth e etiqueta para este provedor diff --git a/htdocs/langs/gl_ES/orders.lang b/htdocs/langs/gl_ES/orders.lang index b7b0abc7a20..474de37aa95 100644 --- a/htdocs/langs/gl_ES/orders.lang +++ b/htdocs/langs/gl_ES/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Xa estaba aberta un pedimento ligado a este orzamento, polo que non se creou outro pedimento automaticamente OrdersArea=Área pedimentos de clientes SuppliersOrdersArea=Área pedimentos a provedores OrderCard=Ficha pedimento @@ -131,16 +132,16 @@ OtherOrders=Outros pedimentos SupplierOrderValidatedAndApproved=A orde do provedor está validada e aprobada: %s SupplierOrderValidated=A orde do provedor está validada: %s ##### Types de contacts ##### -TypeContact_commande_internal_SALESREPFOLL=Responsable seguemento do pedimento cliente +TypeContact_commande_internal_SALESREPFOLL=Responsable seguimento do pedimento cliente TypeContact_commande_internal_SHIPPING=Responsable envío pedimento cliente TypeContact_commande_external_BILLING=Contacto cliente facturación pedimento TypeContact_commande_external_SHIPPING=Contacto cliente entrega pedimento -TypeContact_commande_external_CUSTOMER=Contacto cliente seguemento pedimento +TypeContact_commande_external_CUSTOMER=Contacto cliente seguimento pedimento TypeContact_order_supplier_internal_SALESREPFOLL=Comercial seguimento pedimento de compra TypeContact_order_supplier_internal_SHIPPING=Responsable recepción pedimento a provedor TypeContact_order_supplier_external_BILLING=Contacto provedor factura -TypeContact_order_supplier_external_SHIPPING=Contacto seguemento envío aprovedor -TypeContact_order_supplier_external_CUSTOMER=Contacto seguemento pedimento a provedor +TypeContact_order_supplier_external_SHIPPING=Contacto seguimento envío aprovedor +TypeContact_order_supplier_external_CUSTOMER=Contacto seguimento pedimento a provedor Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Constante COMMANDE_SUPPLIER_ADDON no definida Error_COMMANDE_ADDON_NotDefined=Constante COMMANDE_ADDON non definida Error_OrderNotChecked=Non foron seleccionados pedimentos a facturar diff --git a/htdocs/langs/gl_ES/other.lang b/htdocs/langs/gl_ES/other.lang index b85a36abaca..2fc4e810288 100644 --- a/htdocs/langs/gl_ES/other.lang +++ b/htdocs/langs/gl_ES/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Pedimento a provedor aprobado Notify_ORDER_SUPPLIER_REFUSE=Pedimento a provedor rexeitado Notify_PROPAL_VALIDATE=Validación orzamento cliente Notify_PROPAL_CLOSE_SIGNED=Orzamento cliente pechado como asinado +Notify_PROPAL_CLOSE_SIGNED_WEB=Orzamento a cliente asinado e pechado na páxina do portal Notify_PROPAL_CLOSE_REFUSED=Orzamento cliente pechado como rexeitado +Notify_PROPAL_CLOSE_REFUSED_WEB=Orzamento a cliente rexeitado e pechado na páxina do portal Notify_PROPAL_SENTBYMAIL=Envío orzamento cliente por correo electrónico Notify_WITHDRAW_TRANSMIT=Transmisión domiciliación Notify_WITHDRAW_CREDIT=Abono domiciliación @@ -181,6 +183,7 @@ SizeUnitfoot=pe SizeUnitpoint=punto BugTracker=Incidencias SendNewPasswordDesc=Este formulario permítelle solicitar un novo contrasinal. Enviarase ao seu enderezo de correo electrónico.
    O cambio será efectivo unha vez prema na ligazón de confirmación do correo electrónico.
    Comprobe a súa caixa de entrada. +EnterNewPasswordHere=Introduza aquí o seu novo contrasinal BackToLoginPage=Voltar á páxina de inicio de sesión AuthenticationDoesNotAllowSendNewPassword=O modo de autenticación é % s .
    Neste modo, Dolibarr non pode saber nin cambiar o seu contrasinal.
    Póñase en contacto co administrador do sistema se quere cambiar o seu contrasinal. EnableGDLibraryDesc=Instalar ou habilitar a biblioteca GD na súa instalación de PHP para usar esta opción. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Factura %s validada EMailTextInvoicePayed=A factura %s foi pagada. EMailTextProposalValidated=O orzamento %s do seu interese foi validado. EMailTextProposalClosedSigned=O orzamento %s foi pechado e asinado +EMailTextProposalClosedSignedWeb=O orzamento %s foi asinado e pechado na páxina do portal. +EMailTextProposalClosedRefused=O orzamento %s foi rexeitado e pechado. +EMailTextProposalClosedRefusedWeb=O orzamento %s foi rexeitado e pechado na páxina do portal. EMailTextOrderValidated=Pedimento %s validado. EMailTextOrderApproved=Pedimento %s aprobado EMailTextOrderValidatedBy=Pedimento %s rexistrado por %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Está certo de querer "%s"? ConfirmBtnCommonTitle = Confirma a súa acción CloseDialog = Peche Autofill = Cubre automáticamente + +# externalsite +ExternalSiteSetup=Configuración da ligazón ao sitio web externo +ExternalSiteURL=URL do sitio externo do contido iframe HTML +ExternalSiteModuleNotComplete=O módulo do sitio externo non foi configurado correctamente. +ExampleMyMenuEntry=O meu menú de entrada + +# ftp +FTPClientSetup=Configuración do módulo cliente FTP ou SFTP +NewFTPClient=Nova configuración de conexión FTP/SFTP +FTPArea=Área FTP/SFTP +FTPAreaDesc=Esta pantalla amosa unha vista dun servidor FTP/SFTP +SetupOfFTPClientModuleNotComplete=A configuración do módulo cliente FTP ou SFTP parece estar imcompleta +FTPFeatureNotSupportedByYourPHP=O seu PHP non soporta funcións FTP/SFTP' +FailedToConnectToFTPServer=Fallo ao conectar ao servidor (servidor %s, porto %s) +FailedToConnectToFTPServerWithCredentials=Fallo ao iniciar sesión no servidor co inicio de sesión/contrasinal +FTPFailedToRemoveFile=Non foi posible eliminar o ficheiro %s. +FTPFailedToRemoveDir=Non foi posible eliminar o directorio %s (Comprobe os permisos e que o directorio está baleiro). +FTPPassiveMode=Modo pasivo +ChooseAFTPEntryIntoMenu=Escolla un sitio FTP/SFTM no menú ... +FailedToGetFile=Non foi posible acadar os ficheiros %s +ErrorFTPNodisconnect=Produciuse un erro ao desconectar o servidor FTP/SFTP +FileWasUpload=Cargouse o ficheiro %s +FTPFailedToUploadFile=Produciuse un erro ao cargar o ficheiro %s . +AddFolder=Crear cartafol +FileWasCreateFolder=Creouse o cartafol %s +FTPFailedToCreateFolder=Produciuse un erro ao crear o cartafol %s . diff --git a/htdocs/langs/gl_ES/partnership.lang b/htdocs/langs/gl_ES/partnership.lang index b02e7ae8c86..e1fffab3d16 100644 --- a/htdocs/langs/gl_ES/partnership.lang +++ b/htdocs/langs/gl_ES/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Xestión de Asociacións PartnershipDescription=Módulo de xestión de Asociacións PartnershipDescriptionLong= Módulo de xestión de Asociacións Partnership=Asociación +Partnerships=Asociacións AddPartnership=Engade asociado CancelPartnershipForExpiredMembers=Asociación: cancela a asociación de membros con subscricións caducadas PartnershipCheckBacklink=Asociación: comprobe a ligazón de retroceso referente @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Asociación: comprobe a ligazón de retroceso referente # Menu # NewPartnership=Nova Asociación +NewPartnershipbyWeb= A súa asociación engadiuse correctamente. ListOfPartnerships=Listaxe de Asociacións # diff --git a/htdocs/langs/gl_ES/paypal.lang b/htdocs/langs/gl_ES/paypal.lang index 1544765cc29..02f64c1faf9 100644 --- a/htdocs/langs/gl_ES/paypal.lang +++ b/htdocs/langs/gl_ES/paypal.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=Configuración do módulo PayPal -PaypalDesc=Este módulo permite pagos de clientes vía Paypal. Isto pode usarse para realizar calquera pago en relación cun obxecto Dolibarr (facturas, pedimentos ...) +PaypalDesc=Este módulo permite o pagamento dos clientes vía PayPal. Pódese utilizar para un pagamento ad-hoc ou para un pagamento relacionado cun obxecto Dolibarr (factura, pedidmento, ...) PaypalOrCBDoPayment=Pagar con Paypal (tarxeta ou Paypal) PaypalDoPayment=Pago mediante Paypal PAYPAL_API_SANDBOX=Modo de probas/sandbox diff --git a/htdocs/langs/gl_ES/productbatch.lang b/htdocs/langs/gl_ES/productbatch.lang index bedfed40b5c..7782f8e7e60 100644 --- a/htdocs/langs/gl_ES/productbatch.lang +++ b/htdocs/langs/gl_ES/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Lote/Serie %s printEatby=Caducidade: %s printSellby=Vendido por: %s printQty=Cant.: %d +printPlannedWarehouse=Almacén: %s AddDispatchBatchLine=Engada unha liña para despacho por caducidade WhenProductBatchModuleOnOptionAreForced=Cando o módulo Lote/Serie está activado, a diminución automática de stoc está forzada a "Diminuír as existencias reais na validación do envío" e o modo de aumento automático é forzado a "Aumentar as existencias reais no envío manual nos almacéns" e non pode ser editado. Pode definir outras opcións como queira. ProductDoesNotUseBatchSerial=Este produto non usa números de lote/serie @@ -43,3 +44,4 @@ HideLots=Agochar lotes OutOfOrder=Fora de servizo InWorkingOrder=En funcionamento ToReplace=Substituir +CantMoveNonExistantSerial=Erro. Solicita un movemento nun rexistro para unha serie que xa non existe. Pode levar o mesmo número de serie no mesmo almacén varias veces no mesmo envío ou que foi usado por outro envío. Elimine este envío e prepare outro. diff --git a/htdocs/langs/gl_ES/products.lang b/htdocs/langs/gl_ES/products.lang index e33ef8c5f12..7dd2ca5f92f 100644 --- a/htdocs/langs/gl_ES/products.lang +++ b/htdocs/langs/gl_ES/products.lang @@ -262,7 +262,7 @@ Quarter1=1º trimestre Quarter2=2º trimestre Quarter3=3º trimestre Quarter4=4º trimestre -BarCodePrintsheet=Imprimir código de barras +BarCodePrintsheet=Imprimir códigos de barras PageToGenerateBarCodeSheets=Con esta ferramenta pode imprimir follas de pegatinas de código de barras. Escolla o formato da páxina da pegatina, o tipo de código de barras e o valor do código de barras e prema no botón %s. NumberOfStickers=Número de pegatinas para imprimir na páxina PrintsheetForOneBarCode=Imprimir varias pegatinas para un código de barras diff --git a/htdocs/langs/gl_ES/projects.lang b/htdocs/langs/gl_ES/projects.lang index bd007acdfd2..a42a8d47184 100644 --- a/htdocs/langs/gl_ES/projects.lang +++ b/htdocs/langs/gl_ES/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Esta vista amosa todos os proxectos e tarefas nos que vostede te TasksDesc=Esta vista amosa todos os proxectos e tarefas (os seus permisos de usuario permítenlle ter unha visión completa). AllTaskVisibleButEditIfYouAreAssigned=Todas as tarefas deste proxecto son visibles, pero só pode indicar tempos nas tarefas que teña asignadas. Asígnese tarefas se desexa indicar tempos nelas. OnlyYourTaskAreVisible=Só son visibles as tarefas asignadas a vostede. Se precisa introducir tempo nunha tarefa e se a tarefa non é visible aquí, entón debe asignar a tarefa a si mesmo. +ImportDatasetProjects=Proxectos ou oportunidades ImportDatasetTasks=Tarefas de proxectos ProjectCategories=Etiquetas/categorías de proxectos NewProject=Novo proxecto @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Importe oportunidades de proxectos abertos OpportunitiesStatusForProjects=Importe oportunidades de proxectos por estado ShowProject=Ver proxecto ShowTask=Ver tarefa +SetThirdParty=Establecer terceiros SetProject=Definir proxecto +OutOfProject=Fóra de proxecto NoProject=Ningún proxecto definido ou propiedade de NbOfProjects=Nº de proxectos NbOfTasks=Nº de tarefas @@ -122,7 +125,8 @@ ValidateProject=Validar proxecto ConfirmValidateProject=¿Está certo de querer validar este proxecto? CloseAProject=Pechar proxecto ConfirmCloseAProject=¿Está certo de querer pechar este proxecto? -AlsoCloseAProject=Pechar tamén o proxecto (manter aberto se aínda precisa continuar coas tarefas de produción nel) +AlsoCloseAProject=Pechar tamén o proxecto +AlsoCloseAProjectTooltip=Mantér aberto se aínda precisa seguir nel as tarefas de produción ReOpenAProject=Reabrir proxecto ConfirmReOpenAProject=Está certo de querer reabrir este proxecto? ProjectContact=Contactos do proxecto @@ -165,7 +169,7 @@ OpportunityProbability=Probabilidade de oportunidade OpportunityProbabilityShort=Prob. Opor. OpportunityAmount=Importe Oport. OpportunityAmountShort=Importe oportunidade -OpportunityWeightedAmount=Importe ponderado oportunidade +OpportunityWeightedAmount=Cantidade de oportunidade, ponderada pola probabilidade OpportunityWeightedAmountShort=Oport. importe promedio OpportunityAmountAverageShort=Importe promedio oportunidade OpportunityAmountWeigthedShort=Importe ponderado oportunidade @@ -238,7 +242,7 @@ OppStatusPENDING=Pendente OppStatusWON=Gañado OppStatusLOST=Perdido Budget=Orzamento -AllowToLinkFromOtherCompany=Permitir ligar o proxecto doutra empresa

    Valores admitidos:
    - Manter baleiro: pode ligar calquera proxecto da empresa (predeterminado)
    - "todo": pode ligar calquera proxecto, incluso proxectos doutras empresas
    - Unha lista de identificación de terceiros separada por comas: pode ligar todos os proxectos deses terceiros definidos (Exemplo: 123,4795,53)
    +AllowToLinkFromOtherCompany=Permitir ligar un elemento cun proxecto doutra empresa

    Valores admitidos:
    - Manter baleiro: pode ligar elementos do con calquera proxecto do mesmo terceiro (por defecto)
    "todo";- Pode ligar elementos con calquera proxecto, incluso proxectros doutros terceiros
    Unha listaxe de ids de terceiros separados por comas: pode ligar elementos con calquera proxecto destes terceiros (Exemplo: 123,4795,53)
    LatestProjects=Últimos %s proxectos LatestModifiedProjects=Últimos %s proxectos modificados OtherFilteredTasks=Outras tarefas filtradas @@ -259,7 +263,7 @@ TimeSpentInvoiced=Tenpo empregado facturado TimeSpentForIntervention=Tempo empregado TimeSpentForInvoice=Tempo empregado OneLinePerUser=Unha liña por usuario -ServiceToUseOnLines=Servizo a usar en liñas +ServiceToUseOnLines=Servizo para usar nas liñas por defecto InvoiceGeneratedFromTimeSpent=Factura %s foi xerada co tempo empregado no proxecto InterventionGeneratedFromTimeSpent=A intervención %s xerouse a partir do tempo adicado ao proxecto ProjectBillTimeDescription=Comprobe se introduce unha folla de tempo nas tarefas do proxecto e planea xerar factura(s) a partir da folla de tempo para facturar ao cliente do proxecto (non comprobe se pensa crear unha factura que non estexa baseada nas follas de traballo introducidas). Nota: para xerar factura, vaia a pestana "Tempo empregado" do proxecto e selecciona as liñas a incluír. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Beneficio está calculado usando AddPersonToTask=Engadir tamén ás tarefas UsageOrganizeEvent=Uso: organización de eventos PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Clasificar o proxecto como pechado cando se completen todas as súas tarefas (100 %% progreso) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: os proxectos existentes con todas as tarefas en progreso do 100 %% non se verán afectados: terá que pechalos manualmente. Esta opción só afecta a proxectos abertos. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: os proxectos existentes con todas as tarefas xa configuradas cun progreso do 100%% non se verán afectados: terá que pechalos manualmente. Esta opción só afecta aos proxectos abertos. SelectLinesOfTimeSpentToInvoice=Seleccione a liñas de tempo utilizadas que non se facturan e, de seguido, empregue unha acción masiva de "Xerar factura" para facturalas ProjectTasksWithoutTimeSpent=Tarefas do proxecto sen tempo empregado FormForNewLeadDesc=Grazas por encher o seguinte formulario para contactar connosco. Tamén pode enviarnos un correo electrónico directamente a %s @@ -294,3 +298,4 @@ EnablePublicLeadForm=Activa o formulario público de contacto NewLeadbyWeb=A súa mensaxe ou solicitude foi gardada. Atenderemos ou contactaremos con vostede en breve. NewLeadForm=Novo formulario de contacto LeadFromPublicForm=Liderar en liña desde un formulario público +ExportAccountingReportButtonLabel=Obter informe diff --git a/htdocs/langs/gl_ES/propal.lang b/htdocs/langs/gl_ES/propal.lang index 2004d59f20a..b70f834c3c0 100644 --- a/htdocs/langs/gl_ES/propal.lang +++ b/htdocs/langs/gl_ES/propal.lang @@ -55,7 +55,7 @@ CopyPropalFrom=Crear orzamento por copia dun existente CreateEmptyPropal=Crear proposta comercial baleira ou dende a listaxe de produtos/servizos. DefaultProposalDurationValidity=Prazo de validez por defecto (en días) DefaultPuttingPricesUpToDate=Por defecto, actualiza os prezos cos prezos actuais coñecidos ao clonar un orzamento -UseCustomerContactAsPropalRecipientIfExist=Utilizar enderezo do contacto de seguemento do cliente definido, na vez do enderezo do terceiro como destinatario dos orzamentos +UseCustomerContactAsPropalRecipientIfExist=Utilizar enderezo do contacto de seguimento do cliente definido, na vez do enderezo do terceiro como destinatario dos orzamentos ConfirmClonePropal=¿Está certo de querer clonar o orzamento %s? ConfirmReOpenProp=¿Está certo de abrir de novo o orzamento %s? ProposalsAndProposalsLines=Orzamentos e liñas de orzamentos @@ -65,49 +65,54 @@ AvailabilityPeriod=Tempo de entrega SetAvailability=Definir o tempo de entrega AfterOrder=dende a sinatura OtherProposals=Outros orzamentos + ##### Availability ##### AvailabilityTypeAV_NOW=Inmediata AvailabilityTypeAV_1W=1 semana AvailabilityTypeAV_2W=2 semanas AvailabilityTypeAV_3W=3 semanas AvailabilityTypeAV_1M=1 mes -##### Types de contacts ##### -TypeContact_propal_internal_SALESREPFOLL=Comercial seguemento orzamento + +##### Types ofe contacts ##### +TypeContact_propal_internal_SALESREPFOLL=Comercial seguimento orzamento TypeContact_propal_external_BILLING=Contacto cliente de facturación orzamento -TypeContact_propal_external_CUSTOMER=Contacto cliente seguemento orzamento +TypeContact_propal_external_CUSTOMER=Contacto cliente seguimento orzamento TypeContact_propal_external_SHIPPING=Contacto cliente para envíos + # Document models -DocModelAzurDescription=Modelo de orzamento completo (vella implementación de modelo Cyan) -DocModelCyanDescription=Modelo de orzamento completo -DefaultModelPropalCreate=Modelo por defecto -DefaultModelPropalToBill=Modelo por defecto ao pechar un orzamento (a facturar) -DefaultModelPropalClosed=Modelo por defecto ao pechar un orzamento (non facturado) -ProposalCustomerSignature=Aceptado: sinatura dixital (selo da empresa, data e sinatura) -ProposalsStatisticsSuppliers=Estatísticas orzamentos de provedores -CaseFollowedBy=Caso seguido por -SignedOnly=Só asinado -NoSign=Configurado como non asinado -NoSigned=configurar non asinado CantBeNoSign=non se pode configurar sen asinar +CaseFollowedBy=Caso seguido por ConfirmMassNoSignature=Confirmación masiva non asinado ConfirmMassNoSignatureQuestion=Estás certo de querer configurar os rexistros seleccionados a non asinado? -IsNotADraft=non é un borrador -PassedInOpenStatus=foi validado -Sign=Asinado -Signed=asinado -ConfirmMassValidation=Confirmación de validación masiva ConfirmMassSignature=Confirmación de Sinatura masiva -ConfirmMassValidationQuestion=Está certo de querer validar os rexistros seleccionados? ConfirmMassSignatureQuestion=Está certo de querer asinar os rexistros seleccionados? -IdProposal=ID orzamento +ConfirmMassValidation=Confirmación de validación masiva +ConfirmMassValidationQuestion=Está certo de querer validar os rexistros seleccionados? +ConfirmRefusePropal=Está certo de querer rexeitar este orzamento a cliente? +ContractSigned=Contrato asinado +DefaultModelPropalClosed=Modelo por defecto ao pechar un orzamento (non facturado) +DefaultModelPropalCreate=Modelo por defecto +DefaultModelPropalToBill=Modelo por defecto ao pechar un orzamento (a facturar) +DocModelAzurDescription=Modelo de orzamento completo (vella implementación de modelo Cyan) +DocModelCyanDescription=Modelo de orzamento completo +FichinterSigned=Intervención asinada IdProduct=ID Produto +IdProposal=ID orzamento +IsNotADraft=non é un borrador LineBuyPriceHT=Importe do prezo de compra neto sen impostos para a liña -SignPropal=Aceptar orzamento +NoSign=Rexeitar +NoSigned=configurar non asinado +PassedInOpenStatus=foi validado +PropalAlreadyRefused=Orzamento xá rexeitado +PropalAlreadySigned=Orzamento xa aceptado +PropalRefused=Orzamento rexeitado +PropalSigned=Orzamento aceptado +ProposalCustomerSignature=Aceptado: sinatura dixital (selo da empresa, data e sinatura) +ProposalsStatisticsSuppliers=Estatísticas orzamentos de provedores RefusePropal=Rexeitar orzamento Sign=Asinado -NoSign=Configurado como non asinado -PropalAlreadySigned=Orzamento xa aceptado -PropalAlreadyRefused=Orzamento xá rexeitado -PropalSigned=Orzamento aceptado -PropalRefused=Orzamento rexeitado -ConfirmRefusePropal=Está certo de querer rexeitar este orzamento a cliente? +SignContract=Asinar contrato +SignFichinter=Sinatura da intervención +SignPropal=Aceptar orzamento +Signed=asinado +SignedOnly=Só asinado diff --git a/htdocs/langs/gl_ES/receptions.lang b/htdocs/langs/gl_ES/receptions.lang index c91f2a13bb3..78023b5e142 100644 --- a/htdocs/langs/gl_ES/receptions.lang +++ b/htdocs/langs/gl_ES/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Borrador StatusReceptionValidatedShort=Validado StatusReceptionProcessedShort=Procesado ReceptionSheet=Folla de recepción +ValidateReception=Validar recepción ConfirmDeleteReception=¿Está certo de querer eliminar esta recepción? ConfirmValidateReception=¿Está certo de querer validar esta recepción coa referencia %s? ConfirmCancelReception=¿Está certo de querer cancelar esta recepción? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Módulo de numeración para recepcións ReceptionsReceiptModel=Modeloss de documentos para recepcións. NoMorePredefinedProductToDispatch=Non hai máis produtos predefinidos para enviar ReceptionExist=Xa hai unha recepción -ByingPrice=Prezo de compra ReceptionBackToDraftInDolibarr=A recepción %s volta a borrador ReceptionClassifyClosedInDolibarr=Recepción %s clasificada Pechada ReceptionUnClassifyCloseddInDolibarr=A recepción %s volta a abrirse diff --git a/htdocs/langs/gl_ES/recruitment.lang b/htdocs/langs/gl_ES/recruitment.lang index 80129b78512..c0dcb7c8043 100644 --- a/htdocs/langs/gl_ES/recruitment.lang +++ b/htdocs/langs/gl_ES/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Correo electrónico do responsable de contratación ToUseAGenericEmail=Para usar un correo electrónico xenérico. Se non se define, utilizarase o correo electrónico do responsable de contratación NewCandidature=Nova candidatura ListOfCandidatures=Listaxe de candidaturas -RequestedRemuneration=Remuneración solicitada -ProposedRemuneration=Proposta de remuneración +Remuneration=Salario +RequestedRemuneration=Salario solicitado +ProposedRemuneration=Salario proposto ContractProposed=Proposta de contrato ContractSigned=Contrato asinado ContractRefused=Rexeitouse o contrato RecruitmentCandidature=Candidatura JobPositions=Postos de traballo RecruitmentCandidatures=Candidaturas -InterviewToDo=Entrevista a realizar +InterviewToDo=Contactos a seguir AnswerCandidature=Resposta da solicitude YourCandidature=A súa candidatura YourCandidatureAnswerMessage=Grazas pola súa candidatura.
    ... @@ -74,5 +75,5 @@ JobClosedTextCanceled=O posto de traballo está pechado ExtrafieldsJobPosition=Atributos complementarios (postos de traballo) ExtrafieldsApplication=Atributos complementarios (candidaturas) MakeOffer=Facer unha oferta -WeAreRecruiting=Estamos contratanto. Esta é unha lista de prazas abertas para cubrir... +WeAreRecruiting=Estamos contratando. Esta é unha lista de prazas abertas para cubrir... NoPositionOpen=Non hai postos laborais libres polo momento diff --git a/htdocs/langs/gl_ES/salaries.lang b/htdocs/langs/gl_ES/salaries.lang index 334ad06f571..7c7ceaa610a 100644 --- a/htdocs/langs/gl_ES/salaries.lang +++ b/htdocs/langs/gl_ES/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Conta contable usada para os terceiros -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Utilízase unha conta contable adicada definida na ficha de usuario para encher o Libro Maior, ou como valor predeterminado da contabilidade do Libro Maior se non é definida unha conta contable na ficha do usuario +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Conta (do Plan Contable) utilizada por defecto para terceiros "usuarios". +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=A conta contable dedicada e definida na ficha de usuario só se utilizará para Subconta na contabilidade. Esta será usada para o Libro Maior e como valor predeterminado da Subconta na contabilidade se non se define unha conta contable de usuario específica ao usuario. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta contable por defecto para pagamentos de salarios CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=De xeito predeterminado, deixe baleira a opción "Crear automaticamente un pago total" ao crear un Salario Salary=Salario @@ -24,3 +24,4 @@ SalariesStatistics=Estatísticas salariais SalariesAndPayments=Salarios e pagamentos ConfirmDeleteSalaryPayment=Quere eliminar este pagamento de salario? FillFieldFirst=Cubra primeiro o campo do empregado +UpdateAmountWithLastSalary=Establece a cantidade co último salario diff --git a/htdocs/langs/gl_ES/stocks.lang b/htdocs/langs/gl_ES/stocks.lang index 191fd19bedf..0d6311a63a3 100644 --- a/htdocs/langs/gl_ES/stocks.lang +++ b/htdocs/langs/gl_ES/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Límite stock para alertas e stock óptimo desxeado ProductStockWarehouseUpdated=Límite stock para alertas e stock óptimo desexado actualizado correctamente ProductStockWarehouseDeleted=Límite stock para alertas e stock óptimo desexado eliminado correctamente AddNewProductStockWarehouse=Indicar novo límite para alertas e stock óptimo desexado -AddStockLocationLine=Disminúa a cantidade, e a continuación, prema para agregar outro almacén para este produto +AddStockLocationLine=Diminua a cantidade e prema para dividir a liña InventoryDate=Data inventario Inventories=Inventarios NewInventory=Novo inventario @@ -254,7 +254,7 @@ ReOpen=Abrir de novo ConfirmFinish=Está certo de querer pechar o inventario? Isto xerará todos os movementos de stock para actualizar o stock á cantidade real que ingresou no inventario. ObjectNotFound=%s non foi atopado MakeMovementsAndClose=Xera movementos e pecha -AutofillWithExpected=Substitúe a cantidade real pola cantidade agardada +AutofillWithExpected=Encher a cantidade real coa cantidade agardada ShowAllBatchByDefault=De xeito predeterminado, amosa os detalles do lote na lapela "stock" do produto CollapseBatchDetailHelp=Pode configurar a visualización predeterminada do detalle do lote na configuración do modulo stocks ErrorWrongBarcodemode=Modo de código de barras descoñecido @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Produtos con código de barras inexistente WarehouseId=Id do almacén WarehouseRef=Referencia do almacén SaveQtyFirst=Garda primeiro as cantidades reais inventariadas, antes de solicitar a creación do movemento de stock. +ToStart=Inciciar InventoryStartedShort=Pagamento parcial ErrorOnElementsInventory=A operación cancelouse polo seguinte motivo: ErrorCantFindCodeInInventory=Non se pode atopar o seguinte código no inventario QtyWasAddedToTheScannedBarcode=Feito!! Engadiuse a cantidade a todos os códigos de barras solicitados. Pode pechar a ferramenta de escáner. StockChangeDisabled=Cambio de stock desactivado NoWarehouseDefinedForTerminal=Non hai un almacén definido para a terminal +ClearQtys=Borrar todas as cantidades +ModuleStockTransferName=Transferencia de stock avanzada +ModuleStockTransferDesc=Xestión avanzada de Transferencia de Stocks, con xeración de folla de transferencia +StockTransferNew=Nova transferencia de existencias +StockTransferList=Lista de transferencias de existencias +ConfirmValidateStockTransfer=Está certo de querer validar esta transferencia de stocks coa referencia %s ? +ConfirmDestock=Diminución de stocks con transferencia %s +ConfirmDestockCancel=Cancelar diminución de existéncias con transferencia %s +DestockAllProduct=Diminución de existéncias +DestockAllProductCancel=Cancelar diminución de existéncias +ConfirmAddStock=Aumenta as existéncias coa transferencia %s +ConfirmAddStockCancel=Cancelar aumento de existéncias coa transferencia %s +AddStockAllProduct=Aumento de existéncias +AddStockAllProductCancel=Cancelar aumento de existéncias +DatePrevueDepart=Data prevista de saída +DateReelleDepart=Data real de saída +DatePrevueArrivee=Data prevista de chegada +DateReelleArrivee=Data real de chegada +HelpWarehouseStockTransferSource=Se este almacén está configurado, só estarán dispoñibles el mesmo e os seus fillos como almacén de orixe +HelpWarehouseStockTransferDestination=Se este almacén está configurado, só estarán dispoñibles el mesmo e os seus fillos como almacén de destino +LeadTimeForWarning=Prazo de execución antes da alerta (en días) +TypeContact_stocktransfer_internal_STFROM=Remitente da transferencia de existéncias +TypeContact_stocktransfer_internal_STDEST=Destinatario da transferencia de existéncias +TypeContact_stocktransfer_internal_STRESP=Responsable de transferencia de existencias +StockTransferSheet=Folla de transferencia de existéncias +StockTransferSheetProforma=Proforma da folla de transferencia de existéncias +StockTransferDecrementation=Diminuír os almacéns orixe +StockTransferIncrementation=Aumentar os almacéns de destino +StockTransferDecrementationCancel=Cancelar a diminución dos almacéns orixe +StockTransferIncrementationCancel=Cancelar aumento de almacéns de destino +StockStransferDecremented=Os almacéns orixe diminuíron +StockStransferDecrementedCancel=Cancelouse a diminución dos almacéns orixe +StockStransferIncremented=Pechado - As existéncias foron transferidas +StockStransferIncrementedShort=Existéncias transferidas +StockStransferIncrementedShortCancel=Aumento de almacéns de destino cancelados +StockTransferNoBatchForProduct=O produto %s non usa lote, borre o lote en liña e ténteo de novo +StockTransferSetup = Configuración do módulo de transferencia de existéncias +Settings=Configuracións +StockTransferSetupPage = Páxina de configuración do módulo de transferencia de existéncias +StockTransferRightRead=Ler transferencias de existéncias +StockTransferRightCreateUpdate=Crear/Actualizar transferencias de existéncias +StockTransferRightDelete=Eliminar transferencias de existéncias +BatchNotFound=Lote/serie non atopada para este produto diff --git a/htdocs/langs/gl_ES/stripe.lang b/htdocs/langs/gl_ES/stripe.lang index 93c5177ca4a..a661bca00b4 100644 --- a/htdocs/langs/gl_ES/stripe.lang +++ b/htdocs/langs/gl_ES/stripe.lang @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=Ligazón para configurar Stripe WebHook para chamar a PaymentWillBeRecordedForNextPeriod=O pago será rexistrado para o seguinte período. ClickHereToTryAgain= Faga clic aquí para tentalo de novo ... CreationOfPaymentModeMustBeDoneFromStripeInterface=Debido a fortes regras de autenticación do cliente, a creación dunha tarxeta debe facerse desde o backoffice de Stripe. Pode facer clic aquí para activar o rexistro de cliente de Stripe:%s +TERMINAL_LOCATION=Localización (enderezo) dos terminais diff --git a/htdocs/langs/gl_ES/suppliers.lang b/htdocs/langs/gl_ES/suppliers.lang index b49ac0b2e86..f16a8c6694f 100644 --- a/htdocs/langs/gl_ES/suppliers.lang +++ b/htdocs/langs/gl_ES/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Nome do comprador AllProductServicePrices=Todos os prezos de produto/servizo AllProductReferencesOfSupplier=Todas as referencias de provedores de produto/servizo BuyingPriceNumShort=Prezos provedor +RepeatableSupplierInvoice=Padrón de factura do provedor +RepeatableSupplierInvoices=Padrón de facturas de provedores +RepeatableSupplierInvoicesList=Padrón de facturas de provedores +RecurringSupplierInvoices=Facturas de provedores recorrentes +ToCreateAPredefinedSupplierInvoice=Para crear un padrón de factura de provedor, debe crear unha factura estándar, despois, sen validala, premer no botón "%s". +GeneratedFromSupplierTemplate=Xerado a partir do modelo de factura do provedor %s +SupplierInvoiceGeneratedFromTemplate=Factura de provedor %s Xerada a partir do padrón de factura do provedor %s diff --git a/htdocs/langs/gl_ES/ticket.lang b/htdocs/langs/gl_ES/ticket.lang index acf19a6f6d0..da768656b3d 100644 --- a/htdocs/langs/gl_ES/ticket.lang +++ b/htdocs/langs/gl_ES/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Eliminar tickets Permission56004=Administrar tickets Permission56005=Ver tickets de todos os terceiros (non aplicable para usuarios externos, sempre estará limitado ao terceiro do que dependen) +Tickets=Tickets TicketDictType=Tipo de tickets TicketDictCategory=Grupos de tickets TicketDictSeverity=Gravidade dos tickets @@ -90,8 +91,8 @@ TicketPublicAccess=Na seguinte url está dispoñible unha interface pública que TicketSetupDictionaries=Os tipos de categorías e os niveis de gravidade podense configurar nos diccionarios TicketParamModule=Configuración de variables do módulo TicketParamMail=Configuración de correo electrónicol -TicketEmailNotificationFrom=Correo electrónico do remitente para as respostas dos tickets -TicketEmailNotificationFromHelp=Correo electrónico do remitente para as respostas dos tickets enviadas desde Dolibarr +TicketEmailNotificationFrom=Correo electrónico do remitente para notificar as respostas +TicketEmailNotificationFromHelp=Correo electrónico do remitente para usar para enviar o correo electrónico de notificación cando se proporciona unha resposta dentro do backoffice. Por exemplo noreply@example.com TicketEmailNotificationTo=Notificar a creación do ticket a este enderezo de correo electrónico TicketEmailNotificationToHelp=Se está presente, este enderezo de correo electrónico será notificado da creación dun ticket TicketNewEmailBodyLabel=Mensaxe de texto enviado despois de crear un ticket @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Ao pechar un ticket, proporáselle que envíe unha me TicketWrongContact=Se o contacto non forma parte dos contactos actuais dos tickets. Correo electrónico non enviado. TicketChooseProductCategory=Categoría de produto para soporte de tickets TicketChooseProductCategoryHelp=Seleccione a categoría de produto de soporte de tickets. Usarase para ligar automaticamente un contrato a un ticket. +TicketUseCaptchaCode=Use código gráfico (CAPTCHA) ao crear un ticket +TicketUseCaptchaCodeHelp=Engada verificación CAPTCHA ao crear un novo ticket. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=O Ticket foi asignado TicketChangeType=Cambiar tipo TicketChangeCategory=Cambiar categoría TicketChangeSeverity=Cambiar gravidade -TicketAddMessage=Engadir mensaxe -AddMessage=Engadir mensaxe +TicketAddMessage=Engadir mensaxe privada MessageSuccessfullyAdded=Ticket engadido TicketMessageSuccessfullyAdded=Mensaxe engadida correctamente TicketMessagesList=Listaxe de mensaxes @@ -204,8 +206,8 @@ TicketSeverity=Gravidade ShowTicket=Ver ticket RelatedTickets=Tickets relacionados TicketAddIntervention=Crear intervención -CloseTicket=Ticket Pechado/Resolto -AbandonTicket=Ticket abandonado +CloseTicket=Pechar|Resolver +AbandonTicket=Abandonar CloseATicket=Pechar/Resolver un ticket ConfirmCloseAticket=Confirmar o peche do ticket ConfirmAbandonTicket=Confirma o peche do ticket ao estado "Abandonado" @@ -219,18 +221,17 @@ SendMessageByEmail=Enviar mensaxe por e-mail TicketNewMessage=Nova mensaxe ErrorMailRecipientIsEmptyForSendTicketMessage=O destinatario está baleiro. Non foi enviado o email TicketGoIntoContactTab=Vaia á lapela "Contactos" para seleccionalos -TicketMessageMailIntro=Introdución +TicketMessageMailIntro=Cabeceira da mensaxe TicketMessageMailIntroHelp=Este texto é engadido só ao principio do email e non será gardado. -TicketMessageMailIntroLabelAdmin=Texto de introdución a todas as respostas dos tickets TicketMessageMailIntroText=Ola,
    Engadiuse unha nova resposta a un ticket que segue. Aquí está a mensaxe:
    TicketMessageMailIntroHelpAdmin=Este texto inserirase antes da resposta cando se responda a un ticket de Dolibarr -TicketMessageMailSignature=Sinatura -TicketMessageMailSignatureHelp=Este texto será agregado só ao final do correo electrónico e non será gardado. -TicketMessageMailSignatureText=Mensaxe enviada por %s vía Dolibarr -TicketMessageMailSignatureLabelAdmin=Sinatura do correo electónico de resposta -TicketMessageMailSignatureHelpAdmin=Este texto será insertado despois da mensaxe de resposta. +TicketMessageMailFooter=Pé de páxina da mensaxe +TicketMessageMailFooterHelp=Este texto só engádese ao final da mensaxe enviada por correo electrónico e non se gardará. +TicketMessageMailFooterText=Mensaxe enviada por %s vía Dolibarr +TicketMessageMailFooterHelpAdmin=Este texto será insertado despois da mensaxe de resposta. TicketMessageHelp=Só este texto será gardado na listaxe de mensaxes na ficha do ticket TicketMessageSubstitutionReplacedByGenericValues=As variables de substitución son reemplazadas por valores xenéricos. +ForEmailMessageWillBeCompletedWith=Para as mensaxes de correo electrónico enviadas a usuarios externos, a mensaxe completarase con TimeElapsedSince=Tempo transcurrido dende TicketTimeToRead=Tempo transcurrido antes de ler o ticket TicketTimeElapsedBeforeSince=Tempo transcorrido antes / despois @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Publicouse unha nova mensaxe no ticke TicketAssignedToYou=Ticket asignado TicketAssignedEmailBody=Foille asignado o ticket #%s por %s MarkMessageAsPrivate=Marcar mensaxe como privada +TicketMessageSendEmailHelp=Enviarase un correo electrónico a todos os contactos asignados (contactos internos, pero tamén contactos externos, excepto se a opción "%s" está marcada) TicketMessagePrivateHelp=Esta mensaxe non será amosada aos usuarios externos TicketEmailOriginIssuer=Emisor orixe dos tickets InitialMessage=Mensaxe inicial @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Pode ver o progreso do ticket na interfa TicketCloseEmailBodyInfosTrackUrlCustomer=Pode consultar o historial desta entrada premendo no seguinte enlace TicketEmailPleaseDoNotReplyToThisEmail=Prégase non respostar directamente a este correo. Use a ligazón para respostar. TicketPublicInfoCreateTicket=Este formulario permitelle rexistrar un ticket de soporte no noso sistema. -TicketPublicPleaseBeAccuratelyDescribe=Prégase describa de forma precisa o problema. Aporte a maior cantidade de información posible para permitirnos identificar a súa solicitude. +TicketPublicPleaseBeAccuratelyDescribe=Describa con precisión a súa pregunta. Proporcione a maior información posible para permitirnos identificar correctamente a súa solicitude. TicketPublicMsgViewLogIn=Ingrese o ID de seguimento do ticket TicketTrackId=ID público de seguimento OneOfTicketTrackId=Un dos seus ID de seguimento diff --git a/htdocs/langs/gl_ES/users.lang b/htdocs/langs/gl_ES/users.lang index 209e1e88177..54359db27a7 100644 --- a/htdocs/langs/gl_ES/users.lang +++ b/htdocs/langs/gl_ES/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Eliminar do grupo PasswordChangedAndSentTo=Contrasinal cambiado e enviado a %s. PasswordChangeRequest=Solicitude para cambiar o contrasinal de %s PasswordChangeRequestSent=Solicitude de cambio de contrasinal para %s enviado a %s. -IfLoginExistPasswordRequestSent=Se este inicio de sesión é unha conta válida, enviouse un correo electrónico para restablecer o contrasinal. +IfLoginExistPasswordRequestSent=Se este inicio de sesión é unha conta válida (cun correo electrónico válido), enviouse un correo electrónico para restablecer o contrasinal. IfEmailExistPasswordRequestSent=Se este correo electrónico é unha conta válida, enviouse un correo electrónico para restablecer o contrasinal. ConfirmPasswordReset=Confirmar restablecemento de contrasinal MenuUsersAndGroups=Usuarios e grupos @@ -68,7 +68,6 @@ CreateDolibarrLogin=Crear un usuario CreateDolibarrThirdParty=Crear un terceiro LoginAccountDisableInDolibarr=A conta está desactivada en Dolibarr UsePersonalValue=Utilizar valores persoalizados -InternalUser=Usuario interno ExportDataset_user_1=Usuarios e as súas propiedades. DomainUser=Usuario de dominio Reactivate=Reactivar @@ -128,3 +127,5 @@ DateLastLogin=Data último inicio de sesión DatePreviousLogin=Data de inicio de sesión anterior IPLastLogin=IP último inicio de sesión IPPreviousLogin=IP de inicio de sesión anterior +ShowAllPerms=Mostra todas as filas de permisos +HideAllPerms=Ocultar todas as filas de permisos diff --git a/htdocs/langs/gl_ES/website.lang b/htdocs/langs/gl_ES/website.lang index cb01e726bb7..464e789d967 100644 --- a/htdocs/langs/gl_ES/website.lang +++ b/htdocs/langs/gl_ES/website.lang @@ -45,7 +45,7 @@ ViewWebsiteInProduction=Ver o sitio web usando URL de inicio SetHereVirtualHost= Usar con Apache/NGinx/...
    Cree no seu servidor web (Apache, Nginx, ...) un host virtual adicado con PHP habilitado e un directorio raíz en
    %s ExampleToUseInApacheVirtualHostConfig=Exemplo para usar na configuración do host virtual Apache: YouCanAlsoTestWithPHPS= Usar con servidor incorporado PHP
    No entorno de desenvolvemento, pode que prefira probar o sitio co servidor web incorporado PHP (é preciso PHP 5.5) executando
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Execute o seu sitio web con outro provedor de hospedaxe Dolibarr
    Se non ten un servidor web como Apache ou NGinx dispoñible en internet, pode exportar e importar o seu sitio web a outro Dolibarr por outro provedor de hospedaxe Dolibarr que proporciona unha integración completa co módulo do sitio web. Pode atopar unha lista dalgúns provedores de hospedaxe Dolibarr en https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP= Execute o seu sitio web con outro provedor de hospedaxe Dolibarr
    Se non ten un servidor web como Apache ou NGinx dispoñible en internet, pode exportar e importar o seu sitio web a outro Dolibarr proporcionado por outro provedor de hospedaxe Dolibarr que permite unha integración completa co módulo do sitio web. Pode atopar unha listaxe dalgúns provedores de hospedaxe Dolibarr en https://saas.dolibarr.org CheckVirtualHostPerms=Comprobe tamén que o usuario do host virtual (por exemplo, www-data) ten permisos de %s nos ficheiros en
    %s ReadPerm=Ler WritePerm=Escribir @@ -60,7 +60,7 @@ YouCanEditHtmlSourceckeditor=Pode editar o código fonte HTML empregando o botó YouCanEditHtmlSource=
    Pode incluír código PHP nesta fonte empregando etiquetas <?php ?>. Están dispoñibles as seguintes variables: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Tamén podes incluír contido doutra páxina/contedor coa seguinte sintaxe:
    <?php includeContainer('alias_of_container_to_include'); ?>

    Pode facer unha redirección a outra páxina / contedor coa seguinte sintaxe (Nota: non publique ningún contido antes dunha redirección):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    Para engadir unha ligazón a outra páxina, use a sintaxe: :
    <a href="alias_of_page_to_link_to.php">mylink<a>

    Para incluír unha ligazón para descargar un ficheiro almacenado no directorio documentos , use o envoltorio document.php wrapper:
    Exemplo, para un ficheiro en documentos / ecm (hai que rexistralo), a sintaxe é :
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    Para un ficheiro en documentos/medios (abrir o directorio para acceso público), a sintaxe é:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    Para un ficheiro compartido con unha ligazón para compartir (acceso aberto empregando a chave hash para compartir ficheiro), a sintaxe é:
    <a href="/document.php?hashp=publicsharekeyoffile">

    Para incluír unha imaxe almacenada no directorio documentos , use o envoltorio viewimage.php
    Exemplo, para unha imaxe en documentos/medios (directorio aberto para acceso público), a sintaxe é:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Para unha imaxe compartida cunha ligazón de uso compartido (acceso aberto mediante a chave hash para compartir ficheiro), a sintaxe é:
    <img src =" viewimage.php? Hashp=12345679012 ...">
    -YouCanEditHtmlSourceMore=
    Máis exemplos de código HTML ou dinámico dispoñibles na documentación wiki
    +YouCanEditHtmlSourceMore=
    Máis exemplos de código HTML ou dinámico dispoñibles na documentación wiki
    ClonePage=Clonar páxina/contedor CloneSite=Clonar sitio SiteAdded=Sitio web engadido diff --git a/htdocs/langs/gl_ES/withdrawals.lang b/htdocs/langs/gl_ES/withdrawals.lang index 0a1b1d82b55..cc5913bd5f4 100644 --- a/htdocs/langs/gl_ES/withdrawals.lang +++ b/htdocs/langs/gl_ES/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Factura agardando transferencia AmountToWithdraw=Cantidade a retirar/domiciliar AmountToTransfer=Importe a transferir NoInvoiceToWithdraw=Non hai ningunha factura aberta para '%s' agardando. Vaia á lapela '%s' da tarxeta de factura para facer unha solicitude. -NoSupplierInvoiceToWithdraw=Non hai ningunha factura do provedor con "Solicitudes de transferencia" agardando. Vaia á lapela '%s' da tarxeta da factura para facer unha solicitude. +NoSupplierInvoiceToWithdraw=Non está agardando ningunha factura de provedor aberta "%s" . Vaia á lapela "%s" da tarxeta de factura para facer unha solicitude. ResponsibleUser=Usuario responsable das domiciliacións WithdrawalsSetup=Configuración das domiciliacións CreditTransferSetup=Configuración das transferencias @@ -42,6 +42,7 @@ CreditTransferStatistics=Estatísticas das transferencias Rejects=Devolucións LastWithdrawalReceipt=As %s últimas domiciliacións MakeWithdrawRequest=Realizar unha petición de domiciliación +MakeWithdrawRequestStripe=Facer unha solicitude de pagamento por domiciliación bancaria a través de Stripe MakeBankTransferOrder=Realizar unha petición de transferencia WithdrawRequestsDone=%s domiciliacións rexistradas BankTransferRequestsDone=%s transferencias rexistradas @@ -100,8 +101,11 @@ CreditDate=Abonada o WithdrawalFileNotCapable=Non se pode xerar o ficheiro de recibo de retirada para o seu país %s (o seu país non está incluido) ShowWithdraw=Ver domiciliación IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Porén, se a factura ten polo menos unha orde de pagamento por domiciliación bancaria aínda non procesada, non se configurará como paga para permitir a xestión previa da retirada. -DoStandingOrdersBeforePayments=Esta lapela permítelle solicitar unha orde de pagamento por domiciliación bancaria. Unha vez feito isto, entra no menú Banco-> Pago mediante domiciliación bancaria para xerar e xestionar a orde de domiciliación bancaria. Cando se pecha a orde de domiciliación bancaria, o pagamento das facturas rexistrarase automaticamente e as facturas pecharanse se o resto do pago é nulo. -DoCreditTransferBeforePayments=Esta lapela permítelle solicitar unha orde de transferencia. Unha vez feito isto, entra no menú Banco-> Pago mediante transferencia para xerar e xestionar a orde de transferencia. Cando se pecha a orde de transferencia, o pagamento das facturas rexistrarase automaticamente e as facturas pecharanse se o resto do pago é nulo. +DoStandingOrdersBeforePayments=Esta lapela permítelle solicitar unha orde de pagamento domiciliado. Unha vez feito isto, pode ir ao menú "Banco->Pagamento por domiciliación bancaria" para xerar e xestionar un ficheiro de pedimento de domiciliación bancaria. +DoStandingOrdersBeforePayments2=Tamén pode enviar unha solicitude directamente a un procesador de pagamentos SEPA como Stripe, ... +DoStandingOrdersBeforePayments3=Cando se pecha a orde de domiciliación bancaria, o pagamento das facturas rexistrarase automaticamente e as facturas pecharanse se o resto por pagar é nulo. +DoCreditTransferBeforePayments=Esta lapela permítelle solicitar unha orde de transferencia bancaria. Unha vez feito isto, vaia ao menú "Banco->Pagamento por transferencia bancaria" para xerar e xestionar un ficheiro de orde de transferencia bancaria. +DoCreditTransferBeforePayments3=Cando se pecha a orde de transferencia bancaria, o pagamento das facturas rexistrarase automaticamente e as facturas pecharanse se o resto para pagar é nulo. WithdrawalFile=Ficheiro de domiciliación CreditTransferFile=Ficheiro de transferencia SetToStatusSent=Clasificar como "Ficheiro enviado" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Non é posible crear unha domiciliación sen impor SepaMandate=Mandato SEPA de domiciliación SepaMandateShort=Mandato SEPA PleaseReturnMandate=Envíe de volta este formulario de mandato por correo electrónico a %s ou por correo a -SEPALegalText=Ao asinar este formulario de mandato, autorizas (A) a %s a enviar instrucións ao teu banco para realizar un cargo na túa conta e (B) ao teu banco a realizar un cargo na túa conta de acordo coas instrucións de %s. Como parte dos teus dereitos, tes dereito a un reembolso do teu banco segundo os termos e condicións do teu acordo co teu banco. Os seus dereitos con respecto ao mandato anterior explícanse nun comunicado que pode obter do seu banco. +SEPALegalText=Ao asinar este formulario de mandato, autoriza (A) a %s e ao seu provedor de servizos de pagamento a enviar instrucións ao seu banco para que debiten a túa conta e (B) ao seu banco a que debiten a súa conta de acordo coas instrucións de %s. Como parte dos seus dereitos, ten dereito a un reembolso do seu banco segundo os termos e condicións do seu acordo co seu banco. Os seus dereitos con respecto ao mandato anterior explícanse nun comunicado que pode obter no seu banco. CreditorIdentifier=Identificador Acredor CreditorName=Nome acredor SEPAFillForm=(B) Cubra todos os campos marcados con * diff --git a/htdocs/langs/gl_ES/workflow.lang b/htdocs/langs/gl_ES/workflow.lang index d87753aed6b..4a754c5419f 100644 --- a/htdocs/langs/gl_ES/workflow.lang +++ b/htdocs/langs/gl_ES/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasificar o pediment descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Clasifica o pedimento a cliente de orixe ligado como recibido cando se valida unha recepción (e se a cantidade recibida por todas as recepcións é a mesma que no pedimento que se actualiza) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Clasifica o pedimento a cliente de orixe ligado como recibido cando se pecha unha recepción (e se a cantidade recibida por todas as recepcións é a mesma que no pedimento que se actualiza) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Clasificar recepcións a "facturado" cando sexa validado un pedimento a provedor ligado +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Clasifica as recepcións como "facturadas" cando se valida unha factura de compra ligada (e se o importe da factura é o mesmo que o importe total das recepcións ligadas) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Ao crear un ticket, liga os contratos dispoñibles do terceiro coincidente descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Ao ligar contratos, busca entre os das empresas matrices @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Pecha todas as intervencións ligadas ao AutomaticCreation=Creación automática AutomaticClassification=Clasificación automática # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifique o envío orixe ligado como pechado cando a factura ao cliente sexa validada +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifica o envío de orixe ligado como pechado cando se valida a factura do cliente (e se o importe da factura é o mesmo que o importe total dos envíos ligados) AutomaticClosing=Peche automático AutomaticLinking=Ligazón automática diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 9a3360b7938..9d9e1c5fccd 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=הערה: אין גבול מוגדר בתצורת שלך PHP MaxSizeForUploadedFiles=הגודל המקסימלי של קבצים שאפשר להעלות (0 לאסור על כל ההעלאה) -UseCaptchaCode=השתמש בקוד גרפי (CAPTCHA) בדף הכניסה +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=הנתיב המלא האנטי וירוס הפקודה AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= פרמטרים נוספים על שורת הפקודה @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -718,9 +718,9 @@ Permission34=מחק מוצרים Permission36=ראה / ניהול מוצרים מוסתרים Permission38=ייצוא מוצרים Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=לקרוא התערבויות Permission62=צור / לשנות התערבויות @@ -766,9 +766,10 @@ Permission122=ליצור / לשנות צדדים שלישיים קשורה המ Permission125=מחק צדדים שלישיים הקשורים המשתמש Permission126=ייצוא צדדים שלישיים Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=לקרוא ספקי Permission147=קרא את סטטיסטיקת Permission151=Read direct debit payment orders @@ -883,6 +884,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -969,6 +973,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=הגדרת הציל SetupNotSaved=Setup not saved @@ -1122,7 +1129,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=בסוף החודש -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=לקזז AlwaysActive=פעיל תמיד Upgrade=שדרוג @@ -1187,7 +1194,7 @@ BankModuleNotActive=חשבונות בנק המודול לא מופעל ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=התראות -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=סימן מים על חשבוניות טיוטה (כל PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. ##### Proposals ##### PropalSetup=מודול הצעות מסחרי ההתקנה ProposalsNumberingModules=הצעה מסחרית המונה מודולים @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1949,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server @@ -2057,18 +2069,30 @@ EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2089,7 +2113,7 @@ ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2168,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2206,12 +2233,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2247,35 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +NoName=No name +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: diff --git a/htdocs/langs/he_IL/datapolicy.lang b/htdocs/langs/he_IL/datapolicy.lang new file mode 100644 index 00000000000..95f0d4cef1d --- /dev/null +++ b/htdocs/langs/he_IL/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = לקוח +DATAPOLICY_TIERS_PROSPECT = לקוח פוטנציאל +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = לקוח +DATAPOLICY_CONTACT_PROSPECT = לקוח פוטנציאל +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/he_IL/errors.lang b/htdocs/langs/he_IL/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/he_IL/errors.lang +++ b/htdocs/langs/he_IL/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/he_IL/externalsite.lang b/htdocs/langs/he_IL/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/he_IL/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/he_IL/ftp.lang b/htdocs/langs/he_IL/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/he_IL/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/he_IL/holiday.lang b/htdocs/langs/he_IL/holiday.lang index c5aa045afc3..e448f4397c8 100644 --- a/htdocs/langs/he_IL/holiday.lang +++ b/htdocs/langs/he_IL/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Start date @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Reason UserCP=User ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=קבוצות +users=משתמשים +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang index d1013d6c705..0c9d78518aa 100644 --- a/htdocs/langs/he_IL/main.lang +++ b/htdocs/langs/he_IL/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=אזור PHP (שרת) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Open Upload=Upload ToLink=קשר Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=סיסמה -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=שם NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=תאור DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=אחר Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=חוזים SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=פנימית המשתמש +ExternalUser=משתמש חיצוני diff --git a/htdocs/langs/he_IL/users.lang b/htdocs/langs/he_IL/users.lang index fad26a57871..381a918094d 100644 --- a/htdocs/langs/he_IL/users.lang +++ b/htdocs/langs/he_IL/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Remove from group PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Request to change password for %s sent to %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Users & Groups @@ -68,7 +68,6 @@ CreateDolibarrLogin=Create a user CreateDolibarrThirdParty=Create a third party LoginAccountDisableInDolibarr=Account disabled in Dolibarr. UsePersonalValue=Use personal value -InternalUser=פנימית המשתמש ExportDataset_user_1=Users and their properties DomainUser=Domain user %s Reactivate=Reactivate @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/hi_IN/datapolicy.lang b/htdocs/langs/hi_IN/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/hi_IN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/hi_IN/errors.lang b/htdocs/langs/hi_IN/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/hi_IN/errors.lang +++ b/htdocs/langs/hi_IN/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/hi_IN/externalsite.lang b/htdocs/langs/hi_IN/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/hi_IN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/hi_IN/ftp.lang b/htdocs/langs/hi_IN/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/hi_IN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index 383c8595b33..43afc7a404c 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Zomlje koje nisu u EEC CountriesInEECExceptMe=Zemlje u EEC-u osim %s CountriesExceptMe=Sve zemlje osim %s AccountantFiles=Izvoz izvornih dokumenata -ExportAccountingSourceDocHelp=Pomoću ovog alata možete izvesti izvorne događaje (popis u CSV-u i PDF-ovima) koji se koriste za generiranje vašeg računovodstva. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Računovodstveno područje AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Onemogućite izravno bilježenje transakcije na bankov ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -211,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Broj komada TransactionNumShort=Broj prijenosa -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -265,13 +271,13 @@ Reconcilable=Za usklađivanje TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Godišnje zatvaranje -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Potvrda i zaključavanje zapisa... +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Vezati automatski AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete obrisati obračunski račun jer je u upotrebi +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balansiranje FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. NoNewRecordSaved=Nema više zapisa za prijenos -ListOfProductsWithoutAccountingAccount=Popis proizvoda koji nisu vezani ni za jedan računovodstveni konto +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Promijenite povezivanje Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Razne operacije AccountingJournalType2=Prodaja AccountingJournalType3=Nabava AccountingJournalType4=Banka -AccountingJournalType5=Izvještaj o troškovima +AccountingJournalType5=Troškovnici AccountingJournalType8=Zalihe AccountingJournalType9=Ima-novo +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Broj unosa @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Potvrda datuma i zaključavanje ConfirmExportFile=Potvrda generiranja datoteke za izvoz računovodstva? ExportDraftJournal=Export draft journal @@ -398,7 +407,11 @@ Calculated=Izračunato Formula=Formula ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Potvrda skupnog brisanja ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Naž AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Viševalutni kod (Idevise) DateExport=Datum izvoza WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Dnevnik izvješća o troškovima -InventoryJournal=Dnevnik inventara NAccounts=%s računi diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index 1c6f33d0ac9..67b67267f44 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Klijentski collation WarningModuleNotActive=Modul %s mora biti omogućen WarningOnlyPermissionOfActivatedModules=Prikazane su samo dozvole vezane za aktivne module. Možete aktivirati druge module na stranici modula Naslovna -> Podešavanje -> Moduli. DolibarrSetup=Dolibarr instalacija ili nadogradnja -InternalUser=Interni korisnik -ExternalUser=Vanjski korisnik InternalUsers=Interni korisnici ExternalUsers=Vanjski korisnici UserInterface=Korisničko sučelje @@ -109,7 +107,7 @@ NextValueForReplacements=Sljedeća vrijednost (zamjene) MustBeLowerThanPHPLimit=Napomena: vaša PHP konfiguracija trenutno ograničava maksimalnu veličinu datoteke za prijenos na %s %s, bez obzira na vrijednost ovog parametra NoMaxSizeByPHPLimit=Napomena: Limit nije podešen u vašoj PHP konfiguraciji MaxSizeForUploadedFiles=Maksimalna veličina datoteka za upload (0 onemogučuje bilokakav upload) -UseCaptchaCode=Koristi grafički kod (CAPTCHA) na stranici za prijavu +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Puna putanja do antivirusne komande AntiVirusCommandExample=Primjer za ClamAv Daemon (zahtijeva clamav-daemon): /usr/bin/clamdscan
    Primjer za ClamWin (vrlo vrlo spor): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Dodatni parametri za komandnu liniju @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (zadana vrijednost u php.ini: %s ) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS port (nije definiran u PHP-u na sustavima sličnim Unixu) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (nije definirano u PHP-u na sustavima sličnim Unixu) MAIN_MAIL_EMAIL_FROM=E-pošta pošiljatelja za automatske e-poruke (zadana vrijednost u php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=E-pošta korištena za pogrešku vraća e-poštu (polja 'Errors-To' u poslanim porukama e-pošte) MAIN_MAIL_AUTOCOPY_TO= Kopirajte (Bcc) sve poslane e-poruke na MAIN_DISABLE_ALL_MAILS=Onemogućite sva slanja e-pošte (u svrhu testiranja ili demonstracija) @@ -439,8 +438,10 @@ Unique=Unique Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Cijena +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = E-pošta ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Odaberi popis ExtrafieldSelectList = Odaberi iz tabele ExtrafieldSeparator=Razdjelnik (nije polje) @@ -477,7 +478,7 @@ InstalledInto=Instalirano u direktorij %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Masovno postavljanje ili promjena barkodova usluga i proizvoda CurrentlyNWithoutBarCode=Trenutno, imate %s podataka na %s %s bez definiranog barkoda. -InitEmptyBarCode=Inicijalna vrijednost za sljedećih %s praznih podataka +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Obriše sve trenutne vrijednosti barkoda ConfirmEraseAllCurrentBarCode=Jeste li sigurni da želite obrisati sve trenutne barkod vrijednosti ? AllBarcodeReset=Sve barkod vrijednosti su obrisane @@ -501,10 +502,11 @@ WarningPHPMail=UPOZORENJE: Postavke za slanje e-pošte iz aplikacije koriste zad WarningPHPMailA=- Korištenje poslužitelja davatelja usluga e-pošte povećava pouzdanost vaše e-pošte, tako da povećava isporučivost bez označavanja kao SPAM WarningPHPMailB=- Neki davatelji usluga e-pošte (kao što je Yahoo) ne dopuštaju vam slanje e-pošte s drugog poslužitelja osim s njihovog vlastitog poslužitelja. Vaša trenutna postavka koristi poslužitelj aplikacije za slanje e-pošte, a ne poslužitelj vašeg davatelja e-pošte, tako da će neki primatelji (onaj koji je kompatibilan s restriktivnim DMARC protokolom) pitati vašeg davatelja e-pošte može li prihvatiti vašu e-poštu, a neki davatelji e-pošte (poput Yahooa) može odgovoriti "ne" jer poslužitelj nije njihov, tako da nekoliko vaših poslanih e-poruka možda neće biti prihvaćeno za isporuku (pazite i na kvotu slanja vašeg davatelja e-pošte). WarningPHPMailC=- Korištenje SMTP poslužitelja vašeg vlastitog davatelja usluga e-pošte za slanje e-pošte također je zanimljivo tako da će sve e-poruke poslane iz aplikacije također biti spremljene u vaš direktorij "Poslano" vašeg poštanskog sandučića. -WarningPHPMailD=Također, stoga se preporuča promijeniti način slanja e-mailova na vrijednost "SMTP". Ako stvarno želite zadržati zadanu "PHP" metodu za slanje e-pošte, jednostavno zanemarite ovo upozorenje ili ga uklonite postavljanjem MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstante na 1 u Početna - Postavljanje - Ostalo. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Ako vaš SMTP davatelj usluge e-pošte treba ograničiti klijenta e-pošte na neke IP adrese (vrlo rijetko), ovo je IP adresa korisničkog agenta e-pošte (MUA) za vašu ERP CRM aplikaciju: %s . WarningPHPMailSPF=Ako je naziv domene u adresi e-pošte pošiljatelja zaštićen SPF zapisom (pitajte svoj registar imena domene), morate dodati sljedeće IP adrese u SPF zapis DNS-a vaše domene: %s . -ActualMailSPFRecordFound=Pronađen je stvarni SPF zapis: %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Kliknite za prikaz opisa DependsOn=Ovaj modul treba modul(e) RequiredBy=Ovaj modul je potreban za modul(i) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Također imajte na umu da prepisivanje zadanih vrijednosti za kreiranje obrasca radi samo za stranice koje su ispravno dizajnirane (pa s parametrom action=create ili presen...) EnableDefaultValues=Omogućite prilagodbu zadanih vrijednosti -EnableOverwriteTranslation=Omogući korištenje prepisanog prijevoda +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Pronađen je prijevod za ključ s ovim kodom. Da biste promijenili ovu vrijednost, morate je urediti iz Početna > Postavke > Prijevod. WarningSettingSortOrder=Upozorenje, postavljanje zadanog redoslijeda sortiranja može dovesti do tehničke pogreške pri odlasku na stranicu s popisom ako je polje nepoznato. Ako naiđete na takvu pogrešku, vratite se na ovu stranicu da uklonite zadani redoslijed sortiranja i vratite zadano ponašanje. Field=Polje @@ -645,9 +647,9 @@ Module2400Name=Događaji/Raspored Module2400Desc=Pratite događaje. Zabilježite automatske događaje u svrhu praćenja ili zabilježite ručne događaje ili sastanke. Ovo je glavni modul za dobro upravljanje odnosima s kupcima ili dobavljačima. Module2500Name=DMS / ECM Module2500Desc=Sustav za upravljanje dokumentima / Upravljanje elektroničkim sadržajem. Automatska organizacija vaših generiranih ili pohranjenih dokumenata. Podijelite ih kada trebate. -Module2600Name=API/Web servisi (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Omogući Dolibarr SOAP server pružatelja API servisa -Module2610Name=API/Webservis (REST server) +Module2610Name=API / Web services (REST server) Module2610Desc=Omogući Dolibarr REST server pružajući API servise Module2660Name=Call WebServices (SOAP client) Module2660Desc=Omogućite klijenta web usluga Dolibarr (može se koristiti za slanje podataka/zahtjeva na vanjske poslužitelje. Trenutno su podržane samo narudžbe za kupnju.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Dodaj mogučnosti za upravljanje Incoterm-om Module63000Name=Sredstva Module63000Desc=Upravljajte resursima (pisači, automobili, sobe,...) za dodjelu događaja +Module94160Name=Receptions Permission11=Pregledaj izlazne račune Permission12=Izradi/promijeni izlazne račune Permission13=Poništite račune kupaca @@ -714,6 +717,7 @@ Permission27=Obriši ponudu Permission28=Izvezi ponude Permission31=Čitaj proizvode Permission32=Izradi/izmjeni proizvod +Permission33=Read prices products Permission34=Obriši proizvod Permission36=Pregled/upravljanje skrivenim proizvodima Permission38=izvoz proizvoda @@ -739,6 +743,7 @@ Permission79=Izradi/izmjeni pretplate Permission81=Čitaj narudžbe kupca Permission82=Izradi/izmjeni narudžbe kupaca Permission84=Ovjeri narudžbu kupca +Permission85=Generate the documents sales orders Permission86=Pošalji narudžbu kupca Permission87=Zatvori narudžbu kupca Permission88=Otkaži potvrdu @@ -840,9 +845,9 @@ Permission286=Izvezi kontakte Permission291=Čitaj tarife Permission292=Postavi dozvole na tarifama Permission293=Izmijenite tarife kupaca -Permission300=Čitanje crtičnih kodova -Permission301=Stvaranje/izmjena crtičnih kodova -Permission302=Izbrišite crtične kodove +Permission301=Generate PDF sheets of barcodes +Permission304=Stvaranje/izmjena crtičnih kodova +Permission305=Izbrišite crtične kodove Permission311=Čitaj usluge Permission312=Dodavanje usluge/pretplate ugovoru Permission331=Čitaj zabilješke @@ -874,6 +879,7 @@ Permission525=Pristup kreditnom kalkulatoru Permission527=Izvoz kredita Permission531=Čitaj usluge Permission532=Izradi/izmjeni usluge +Permission533=Read prices services Permission534=Obriši usluge Permission536=Vidi/upravljaj skrivenim uslugama Permission538=Izvezi usluge @@ -968,13 +974,14 @@ Permission3301=Generirajte nove module Permission4001=Pročitajte vještinu/posao/poziciju Permission4002=Stvorite/izmijenite vještinu/posao/poziciju Permission4003=Izbrišite vještinu/posao/poziciju -Permission4020=Pročitajte evaluaciju -Permission4021=Napravite/izmijenite svoju evaluaciju -Permission4022=Potvrdite evaluaciju -Permission4023=Izbriši evaluaciju -Permission4030=Pogledajte izbornik za usporedbu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Potvrdite evaluaciju +Permission4025=Izbriši evaluaciju +Permission4028=Pogledajte izbornik za usporedbu Permission4031=Pročitajte osobne podatke Permission4032=Napišite osobne podatke +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Pročitajte sadržaj web stranice Permission10002=Izrada/izmjena sadržaja web stranice (html i javascript sadržaj) Permission10003=Izrada/izmjena sadržaja web stranice (dinamički php kod). Opasno, mora biti rezervirano za programere. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Vrsta raspolaganja imovinom TypeOfUnit=Vrsta jedinice SetupSaved=Postavi spremljeno SetupNotSaved=Postavljanje nije spremljeno +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Povratak na popis modula BackToDictionaryList=Povratak na popis definicija TypeOfRevenueStamp=Vrsta porezne marke @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Vrijednost konfiguracijske konstante ConstantIsOn=Opcija %s je uključena NbOfDays=Broj dana AtEndOfMonth=Na kraju mjeseca -CurrentNext=Trenutni/Sljedeći +CurrentNext=A given day in month Offset=Offset AlwaysActive=Uvjek aktivno Upgrade=Nadogradnja @@ -1235,11 +1246,13 @@ BrowserName=Naziv preglednika BrowserOS=OS preglednika ListOfSecurityEvents=Popis Dolibarr sigurnosnih događaja SecurityEventsPurged=Sigurnosni događaji trajno obrisani +TrackableSecurityEvents=Trackable security events LogEventDesc=Omogućite bilježenje određenih sigurnosnih događaja. Administratori bilježe zapisnik putem izbornika %s - %s . Upozorenje, ova značajka može generirati veliku količinu podataka u bazi podataka. AreaForAdminOnly=Parametre postavljanja mogu postaviti samo administratorski korisnici . SystemInfoDesc=Informacije o sustavu su razne tehničke informacije koje dobivate u načinu samo za čitanje i vidljive samo administratorima. SystemAreaForAdminOnly=Ovo područje je dostupno samo administratorskim korisnicima. Dolibarr korisnička dopuštenja ne mogu promijeniti ovo ograničenje. CompanyFundationDesc=Uredite podatke svoje tvrtke/organizacije. Kliknite na gumb "%s" na dnu stranice kada završite. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Ako imate vanjskog računovođu/knjigovođu, ovdje možete urediti njegove podatke. AccountantFileNumber=Šifra računovođe DisplayDesc=Ovdje se mogu mijenjati parametri koji utječu na izgled i prezentaciju aplikacije. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Ovu naredbu morate pokrenuti iz YourPHPDoesNotHaveSSLSupport=SSL funkcije nisu dostupne u vašem PHP DownloadMoreSkins=Više skinova za skinuti SimpleNumRefModelDesc=Vraća referentni broj u formatu %syymm-nnnn gdje je yy godina, mm je mjesec, a nnnn je sekvencijalni broj koji se automatski povećava bez ponovnog postavljanja +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Vraća referentni broj u formatu %syymm-nnnn gdje je yy godina, mm je mjesec, a nnnn je sekvencijalni broj koji se automatski povećava bez ponovnog postavljanja SimpleNumRefNoDateModelDesc=Vraća referentni broj u formatu %s-nnnn gdje je nnnn sekvencijalni broj koji se automatski povećava bez ponovnog postavljanja ShowProfIdInAddress=Pokažite profesionalni ID s adresama ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1391,7 @@ GetBarCode=Uzmi barkod NumberingModules=Modeli numeriranja DocumentModules=Modeli dokumenata ##### Module password generation -PasswordGenerationStandard=Vratite lozinku generiranu prema internom Dolibarrovom algoritmu: %s znakova koji sadrže zajedničke brojeve i znakove u malim slovima. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Nemojte predlagati generiranu lozinku. Lozinka se mora unijeti ručno. PasswordGenerationPerso=Vrati lozinku prema vašoj osobno postavljenoj konfiguraciji. SetupPerso=Sukladno vašoj konfiguraciji @@ -1430,6 +1445,10 @@ SuppliersPayment=Plaćanja dobavljača SupplierPaymentSetup=Postavljanje plaćanja dobavljača InvoiceCheckPosteriorDate=Prije provjere valjanosti provjerite datum proizvodnje InvoiceCheckPosteriorDateHelp=Provjera valjanosti računa bit će zabranjena ako je datum prije datuma posljednje fakture iste vrste. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Podešavanje modula ponuda ProposalsNumberingModules=Modeli brojeva ponuda @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Vodeni žig na skicama ugovora (ništa ako se osta ##### Members ##### MembersSetup=Podešavanje modula članova MemberMainOptions=Glavne opcije +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Upravljanje prijavom svakog korisnika AdherentMailRequired=E-mail je potreban za stvaranje novog člana MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default MemberCreateAnExternalUserForSubscriptionValidated=Izradite vanjsko korisničko ime za svaku potvrđenu pretplatu novog člana -VisitorCanChooseItsPaymentMode=Posjetitelj može birati između dostupnih načina plaćanja +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Omogućite automatski podsjetnik putem e-pošte o isteklim pretplatama. Napomena: Modul %s mora biti omogućen i ispravno postavljen za slanje podsjetnika. MembersDocModules=Predlošci dokumenata za dokumente generirane iz zapisa članova ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Aktiviraj napredni uređivač za: FCKeditorForNotePublic=WYSIWIG izrada/izdanje polja "javne bilješke" elemenata FCKeditorForNotePrivate=WYSIWIG kreiranje/izdanje polja "privatne bilješke" elemenata FCKeditorForCompany=WYSIWIG kreiranje/izdanje opisa polja elemenata (osim proizvoda/usluga) -FCKeditorForProduct=WYSIWIG izrada/izdanje opisa polja proizvoda/usluga -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Kreiranje/izdanje WYSIWIG-a za masovne slanje e-pošte (Alati->E-pošta) FCKeditorForUserSignature=WYSIWIG kreiranje/izdanje korisničkog potpisa FCKeditorForMail=Izrada/izdanje WYSIWIG-a za svu poštu (osim Alati->E-pošta) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Nosioc izbornika gdje da se prikaže novi izbornik DetailMenuModule=Naziv modula ako stavka izbornika dolazi iz modula DetailType=Vrsta izbornika (gore ili lijevi) DetailTitre=Oznaka izbornika ili oznaka koda za prijevod -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Uvjet za prikaz stavke ili ne DetailRight=Uvjet za prikaz neautoroziranih sivih izbornika DetailLangs=Jezična datoteka za oznakz koda prijevoda @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Smanjenje zaliha u POS-u nije kompati CashDeskYouDidNotDisableStockDecease=Niste onemogućili smanjenje zaliha prilikom prodaje s prodajnog mjesta. Stoga je potrebno skladište. CashDeskForceDecreaseStockLabel=Smanjenje zaliha za proizvode iz serije je prisilno. CashDeskForceDecreaseStockDesc=Prvo smanjite za najstarije datume obroka i datuma prodaje. -CashDeskReaderKeyCodeForEnter=Ključni kod za "Enter" definiran u čitaču bar koda (Primjer: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Podešavanje modula zabilješki BookmarkDesc=Ovaj modul vam omogućuje upravljanje oznakama. Također možete dodati prečace na bilo koje Dolibarr stranice ili vanjske web stranice na lijevom izborniku. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modeli numeriranja faktura dobavljača IfSetToYesDontForgetPermission=Ako je postavljena na vrijednost koja nije null, ne zaboravite dati dopuštenja grupama ili korisnicima kojima je dopušteno drugo odobrenje ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Podešavanje modula GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Čarobnjak za izradu datoteke dump baze podataka BackupZipWizard=Čarobnjak za izgradnju arhive dokumenata direktorija SomethingMakeInstallFromWebNotPossible=Instalacija vanjskog modula nije moguća s web sučelja iz sljedećeg razloga: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Označite linije tablice kada miš prijeđe @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Pritisnite CTRL+F5 na tipkovnici ili izbrišite predmem NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Boja pozadine TopMenuBackgroundColor=Boja pozadine za gornji izbornik -TopMenuDisableImages=Sakrij slike u gornjem izborniku +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Boja pozadine lijevog izbornika BackgroundTableTitleColor=Boja pozadine za zaglavlje tablica BackgroundTableTitleTextColor=Boja teksta za naslovni redak tablice @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Narudžbe dobavljačima MailToSendSupplierInvoice=Ulazni računi MailToSendContract=Ugovori MailToSendReception=Receptions +MailToExpenseReport=Troškovnici MailToThirdparty=Treće osobe MailToMember=Članovi MailToUser=Korisnici @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Desna margina u PDF-u MAIN_PDF_MARGIN_TOP=Gornja margina u PDF-u MAIN_PDF_MARGIN_BOTTOM=Donja margina u PDF-u MAIN_DOCUMENTS_LOGO_HEIGHT=Visina za logo u PDF-u +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Dodajte stupac za sliku u retke prijedloga MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Širina stupca ako se slika dodaje na redove MAIN_PDF_NO_SENDER_FRAME=Sakrij obrube na okviru adrese pošiljatelja @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Uklonite posebne znakove COMPANY_AQUARIUM_CLEAN_REGEX=Redovni izraz filter za čistu vrijednost (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Redovni izraz za čišćenje vrijednosti (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat nije dopušten +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Službenik za zaštitu podataka (DPO, kontakt za privatnost podataka ili GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Tekst pomoći za prikaz u opisu alata @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Zamijenite položaj adrese pošiljatelja i primatelja na PDF dokumentima FeatureSupportedOnTextFieldsOnly=Upozorenje, značajka je podržana samo u tekstualnim poljima i kombiniranim popisima. Također se mora postaviti parametar URL-a action=create ili action=edit ILI naziv stranice mora završavati s 'new.php' da bi se aktivirala ova značajka. EmailCollector=Sakupljač e-pošte +EmailCollectors=Email collectors EmailCollectorDescription=Dodajte zakazani posao i stranicu za postavljanje za redovito skeniranje sandučića e-pošte (pomoću IMAP protokola) i snimanje e-pošte primljenih u vašu aplikaciju, na pravom mjestu i/ili kreiranje nekih zapisa automatski (poput potencijalnih klijenata). NewEmailCollector=Novi sakupljač e-pošte EMailHost=Host IMAP poslužitelja e-pošte +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Izvorni imenik poštanskog sandučića MailboxTargetDirectory=Ciljni direktorij poštanskog sandučića EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operacije se izvode od vrha do dna MaxEmailCollectPerCollect=Max number of emails collected per collect +TestCollectNow=Test collect CollectNow=Prikupite sada ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Datum posljednjeg pokušaja prikupljanja DateLastcollectResultOk=Datum posljednjeg uspjeha prikupljanja LastResult=Najnoviji rezultat EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Nema nove e-pošte (odgovarajući filteri) za obradu NothingProcessed=Ništa nije učinjeno -XEmailsDoneYActionsDone=%s e-poruke kvalificirane, %s e-poruke uspješno obrađene (za %s zapis/radnje izvršene) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Zabilježite događaj u dnevnom redu (s vrstom Email poslana ili primljena) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Napravite prijavu za posao FormatZip=PBR MainMenuCode=Kôd za unos izbornika (glavni izbornik) ECMAutoTree=Prikaži automatsko ECM stablo -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Radno vrijeme OpeningHoursDesc=Ovdje unesite redovno radno vrijeme Vaše tvrtke. ResourceSetup=Configuration of Resource module @@ -2167,6 +2200,10 @@ EmailTemplate=Email predložak EMailsWillHaveMessageID=E-poruke će imati oznaku "Reference" koja odgovara ovoj sintaksi PDF_SHOW_PROJECT=Prikaži projekt na dokumentu ShowProjectLabel=Oznaka projekta +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Generirajte PDF dokumente u formatu PDF/A umjesto zadanog formata PDF FafaIconSocialNetworksDesc=Ovdje unesite kod ikone FontAwesome. Ako ne znate što je FontAwesome, možete koristiti generičku vrijednost fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnerstvo AGENDA_EVENT_DEFAULT_STATUS=Zadani status događaja prilikom kreiranja događaja iz obrasca YouShouldDisablePHPFunctions=Trebali biste onemogućiti PHP funkcije IfCLINotRequiredYouShouldDisablePHPFunctions=Osim ako trebate pokrenuti naredbe sustava u prilagođenom kodu, trebali biste onemogućiti PHP funkcije -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=U vašem korijenskom direktoriju nisu pronađene datoteke za pisanje ili direktoriji uobičajenih programa (Dobro) RecommendedValueIs=Preporučeno: %s Recommended=Preporučeno NotRecommended=Nije preporučeno -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Provjerite ima li ažuriranja vanjskih modula CheckForModuleUpdateHelp=Ova će se radnja povezati s urednicima vanjskih modula kako bi provjerili je li dostupna nova verzija. ModuleUpdateAvailable=Dostupno je ažuriranje @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Nisu pronađena ažuriranja za vanjske module SwaggerDescriptionFile=Datoteka opisa Swagger API-ja (za korištenje s redoc, na primjer) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Omogućili ste zastarjeli WS API. Umjesto toga trebali biste koristiti REST API. RandomlySelectedIfSeveral=Nasumično odaberi ako je dostupno nekoliko slika +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Lozinka baze podataka je prikrivena u conf datoteci DatabasePasswordNotObfuscated=Lozinka baze podataka NIJE prikrivena u conf datoteci APIsAreNotEnabled=API moduli nisu omogućeni @@ -2247,14 +2285,22 @@ LateWarningAfter="Kasno" upozorenje nakon TemplateforBusinessCards=Predložak za posjetnicu u različitim veličinama InventorySetup= Postavljanje zaliha ExportUseLowMemoryMode=Koristite način rada s malo memorije -ExportUseLowMemoryModeHelp=Upotrijebite način rada s malo memorije da izvršite exec ispis (komprimiranje se vrši kroz cijev umjesto u PHP memoriju). Ova metoda ne dopušta provjeru je li datoteka dovršena i poruka o pogrešci se ne može prijaviti ako ne uspije. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Postavke +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/hr_HR/commercial.lang b/htdocs/langs/hr_HR/commercial.lang index 9c8fa30267b..9d0459a543f 100644 --- a/htdocs/langs/hr_HR/commercial.lang +++ b/htdocs/langs/hr_HR/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Status potencijalnog kupca DraftPropals=Skica ponude NoLimit=Bez ograničenja ToOfferALinkForOnlineSignature=Link za online potpis -WelcomeOnOnlineSignaturePage=Dobrodošli na stranicu za prihvaćanje komercijalnih prijedloga od %s -ThisScreenAllowsYouToSignDocFrom=Ovaj zaslon vam omogućuje da prihvatite i potpišete ili odbijete ponudu/komercijalni prijedlog -ThisIsInformationOnDocumentToSign=Ovo je informacija o dokumentu koji treba prihvatiti ili odbiti +WelcomeOnOnlineSignaturePageProposal=Dobrodošli na stranicu za prihvaćanje komercijalnih prijedloga od %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Ovaj zaslon vam omogućuje da prihvatite i potpišete ili odbijete ponudu/komercijalni prijedlog +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Ovo je informacija o dokumentu koji treba prihvatiti ili odbiti +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Potpis ponude/komercijalnog prijedloga %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Značajka za online potpisivanje onemogućena ili dokument generiran prije nego što je značajka omogućena diff --git a/htdocs/langs/hr_HR/companies.lang b/htdocs/langs/hr_HR/companies.lang index 6f64e142770..fbc3866f715 100644 --- a/htdocs/langs/hr_HR/companies.lang +++ b/htdocs/langs/hr_HR/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Priroda treće strane NatureOfContact=Priroda kontakta Address=Adresa State=Država/provincija +StateId=State ID StateCode=Šifra države/pokrajine StateShort=Država Region=Regija Region-State=Regija - Država Country=Država CountryCode=Šifra države -CountryId=ID države +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trgovački registar ProfId2ShortCM=Porezni obveznik br. -ProfId3ShortCM=Dekret o stvaranju -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Ostali ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang index 4705d496e6c..489392888c8 100644 --- a/htdocs/langs/hr_HR/compta.lang +++ b/htdocs/langs/hr_HR/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Stanje (prije) Balance=Stanje Debit=Zaduženje Credit=Kredit +AccountingDebit=Zaduženje +AccountingCredit=Kredit Piece=Računovodstveni dok. AmountHTVATRealReceived=Nije naplaćeno AmountHTVATRealPaid=Neto plaćeno @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Način izračuna AccountancyJournal=Kontni plan -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Potvrdi kloniranje plaćanja društvenog/fiskalnog poreza ConfirmCloneVAT=Potvrdite klon PDV deklaracije @@ -300,3 +302,4 @@ InvoiceToPay15Days=Za plaćanje (15 do 30 dana) InvoiceToPay30Days=Za plaćanje (> 30 dana) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/hr_HR/contracts.lang b/htdocs/langs/hr_HR/contracts.lang index 914d10d0694..02745548de0 100644 --- a/htdocs/langs/hr_HR/contracts.lang +++ b/htdocs/langs/hr_HR/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Ugovori/Pretplate ContractsAndLine=Ugovori i stavke ugovora Contract=Ugovor ContractLine=Stavka ugovora +ContractLines=Contract lines Closing=Zatvaranje NoContracts=Nema ugovora MenuServices=Usluge @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Premjesti usluge u drugi ugovor ConfirmMoveToAnotherContract=Prihvaćam novi prikazani ugovor i potvrđujem da želim premjestit usluge u taj ugovor. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Obnovi liniju ugovora(broj %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Datum isteka NoExpiredServices=Nema isteklih aktivnih usluga ListOfServicesToExpireWithDuration=Lista usluga koja ističe za %s dana @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Potpisivanje ugovora u ime Klijenta HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/hr_HR/cron.lang b/htdocs/langs/hr_HR/cron.lang index c2b9ca55fba..2a5cb217d41 100644 --- a/htdocs/langs/hr_HR/cron.lang +++ b/htdocs/langs/hr_HR/cron.lang @@ -26,7 +26,7 @@ CronCommand=Komanda CronList=Planirani poslovi CronDelete=Obriši planirane zadatke CronConfirmDelete=Jeste li sigurni da želite izbrisati ove zakazane poslove? -CronExecute=Pokreni planirani posao +CronExecute=Launch now CronConfirmExecute=Jeste li sigurni da sada želite izvršiti ove zakazane poslove? CronInfo=Modul zakazanih poslova omogućuje zakazivanje poslova za njihovo automatsko izvršavanje. Poslovi se također mogu pokrenuti ručno. CronTask=Posao @@ -58,7 +58,7 @@ CronNote=Napomena CronFieldMandatory=Polja %s su obavezna CronErrEndDateStartDt=Datum kraja ne može biti prije datuma početka StatusAtInstall=Status pri instalaciji modula -CronStatusActiveBtn=Raspored +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Onemogući CronTaskInactive=Ovaj posao je onemogućen (nije zakazan) CronId=ID @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Lokalni backup baze MakeLocalDatabaseDump=Izradite lokalni dump baze podataka. Parametri su: kompresija ('gz' ili 'bz' ili 'none'), vrsta sigurnosne kopije ('mysql', 'pgsql', 'auto'), 1, 'auto' ili naziv datoteke za izradu, broj datoteka sigurnosne kopije koje treba zadržati MakeSendLocalDatabaseDumpShort=Pošaljite sigurnosnu kopiju lokalne baze podataka MakeSendLocalDatabaseDump=Pošaljite sigurnosnu kopiju lokalne baze podataka putem e-pošte. Parametri su: do, od, predmet, poruka, naziv datoteke (naziv poslane datoteke), filter ('sql' samo za sigurnosnu kopiju baze podataka) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Pažnja, u svrhu izvedbe, bez obzira na sljedeći datum izvršenja omogućenih poslova, vaši poslovi mogu biti odgođeni na maksimalno %s sati prije pokretanja. DATAPOLICYJob=Čistač podataka i anonimizator JobXMustBeEnabled=Posao %s mora biti omogućen +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Posljednji izvršeni zakazani posao NextScheduledJobExecute=Sljedeći zakazani posao za izvršenje NumberScheduledJobError=Broj zakazanih poslova u pogreški +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/hr_HR/datapolicy.lang b/htdocs/langs/hr_HR/datapolicy.lang new file mode 100644 index 00000000000..73e80c1a65d --- /dev/null +++ b/htdocs/langs/hr_HR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Kupac +DATAPOLICY_TIERS_PROSPECT = Potencijalni kupac +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dobavljač +DATAPOLICY_CONTACT_CLIENT = Kupac +DATAPOLICY_CONTACT_PROSPECT = Potencijalni kupac +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dobavljač +DATAPOLICY_ADHERENT = Član +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/hr_HR/dict.lang b/htdocs/langs/hr_HR/dict.lang index 3db1f7c08f3..58672d2f98f 100644 --- a/htdocs/langs/hr_HR/dict.lang +++ b/htdocs/langs/hr_HR/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Gđa. +CivilityMMEShort=Gđa. CivilityMR=G. +CivilityMRShort=G. CivilityMLE=Gđica. CivilityMTRE=Master CivilityDR=Doktor diff --git a/htdocs/langs/hr_HR/ecm.lang b/htdocs/langs/hr_HR/ecm.lang index 5069b1c21a3..b027523aa1b 100644 --- a/htdocs/langs/hr_HR/ecm.lang +++ b/htdocs/langs/hr_HR/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ručna mapa ECMSectionAuto=Automatska mapa ECMSectionsManual=Ručno stablo ECMSectionsAuto=Automatsko stablo +ECMSectionsMedias=Medias tree ECMSections=Mape ECMRoot=ECM Root ECMNewSection=Nova mapa @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Broj datoteka u podmapama ECMCreationUser=Kreirao ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatske mape se popunjavaju automatski kada dodajete dokumente s kartice elemenata.
    * Ručne mape mogu se koristiti za spremanje dokumenata koji nisu povezani s određenim elementom. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Mapa %s je obrisana. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Pretraživanje po ključnim riječima diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang index 1d6bf9b2ee0..6534ae9e7f7 100644 --- a/htdocs/langs/hr_HR/errors.lang +++ b/htdocs/langs/hr_HR/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Prijava %s već postoji. ErrorGroupAlreadyExists=Grupa %s već postoji. ErrorEmailAlreadyExists=E-pošta %s već postoji. ErrorRecordNotFound=Zapis nije pronađen. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Nije uspjelo kopiranje datoteke ' %s ' u ' %s '. ErrorFailToCopyDir=Nije uspjelo kopiranje mape ' %s ' u ' %s '. ErrorFailToRenameFile=Nije uspjelo preimenovanje datoteke ' %s ' u ' %s '. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Datoteka slike nema podržani format (vaš PHP ne podržava ErrorBadDateFormat=Vrijednost '%s' ima pogrešan format datuma ErrorWrongDate=Datum nije točan! ErrorFailedToWriteInDir=Nije uspjelo upisivanje u direktorij %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Pronađena je netočna sintaksa e-pošte za %s retke u datoteci (primjer reda %s s email=%s) ErrorUserCannotBeDelete=Korisnik se ne može izbrisati. Možda je povezan s Dolibarrovim entitetima. ErrorFieldsRequired=Neka obavezna polja ostavljena su prazna. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Please fill value for checkbox list ErrorNoValueForRadioType=Please fill value for radio list ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value ErrorFieldCanNotContainSpecialCharacters=Polje %s ne smije sadržavati posebne znakove. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Polje %s ne smije sadržavati posebne znakove, niti velika slova i ne može sadržavati samo brojeve. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=Polje %s mora imati najmanje %s znakova. ErrorNoAccountancyModuleLoaded=Računovodstveni modul nije aktiviran ErrorExportDuplicateProfil=Ovaj naziv profila već postoji za ovaj skup za izvoz. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript se ne smije onemogućiti da bi ova znač ErrorPasswordsMustMatch=Obje upisane lozinke moraju se međusobno podudarati ErrorContactEMail=Došlo je do tehničke pogreške. Molimo kontaktirajte administratora na sljedeću e-poštu %s i navedite šifru pogreške %s na ovoj stranici ili dodajte ovu stranicu na ekran. ErrorWrongValueForField=Polje %s : ' %s ' ne odgovara regex pravilu %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Polje %s : ' %s ' nije vrijednost koja se nalazi u polju %s tabele %s ErrorFieldRefNotIn=Polje %s: ' %s ' nije %s postojeći ref +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s pronađene pogreške ErrorFileIsInfectedWithAVirus=Antivirusni program nije mogao provjeriti valjanost datoteke (datoteka je možda zaražena virusom) -ErrorSpecialCharNotAllowedForField=Posebni znakovi nisu dopušteni za polje "%s" ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist. ErrorFieldRequiredForProduct=Field '%s' is required for product %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s. ErrorAddAtLeastOneLineFirst=Prvo dodajte barem jedan redak ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible. @@ -270,24 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Nije uspjelo pronaći predložak s kodnim nazivom %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Trajanje nije definirano na usluzi. Nema načina da se izračuna satnica. ErrorActionCommPropertyUserowneridNotDefined=Potreban je vlasnik korisnika -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Provjera verzije nije uspjela ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. ErrorIsNotADraft=%s nije skica ErrorExecIdFailed=Ne može izvršiti naredbu "id" -ErrorBadCharIntoLoginName=Neovlašteni znak u imenu za prijavu -ErrorRequestTooLarge=Pogreška, zahtjev je prevelik +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=You are not the approver for leave %s ErrorAttributeIsUsedIntoProduct=Ovaj se atribut koristi u jednoj ili više varijanti proizvoda ErrorAttributeValueIsUsedIntoProduct=Ova vrijednost atributa koristi se u jednoj ili više varijanti proizvoda ErrorPaymentInBothCurrency=Greška, svi iznosi moraju biti upisani u isti stupac ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Pokušavate plaćati fakture u valuti %s s računa u valuti %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=Kliknite ovdje za postavljanje obaveznih parametara +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Kliknite ovdje da biste omogućili svoje module i aplikacije WarningSafeModeOnCheckExecDir=Warning, PHP option safe_mode is on so command must be stored inside a directory declared by php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=Oznaka s ovim naslovom ili ovim ciljem (URL) već postoji. @@ -296,7 +316,7 @@ WarningConfFileMustBeReadOnly=Warning, your config file (htdocs/conf/conf.php WarningsOnXLines=Upozorenja na %s izvorni zapis(e) WarningNoDocumentModelActivated=Nije aktiviran nijedan model za generiranje dokumenata. Model će biti odabran prema zadanim postavkama dok ne provjerite postavke modula. WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). @@ -317,6 +337,9 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Dostupno samo ako koristite zaštićenu HTTPS vezu. WarningModuleXDisabledSoYouMayMissEventHere=Modul %s nije omogućen. Stoga možete propustiti mnogo događaja ovdje. WarningPaypalPaymentNotCompatibleWithStrict=Vrijednost "Strict" čini da značajke online plaćanja ne rade ispravno. Umjesto toga upotrijebite 'Lax'. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate RequireValidValue = Vrijednost nije važeća diff --git a/htdocs/langs/hr_HR/eventorganization.lang b/htdocs/langs/hr_HR/eventorganization.lang index 641bd90bb8c..c763f8bdd1b 100644 --- a/htdocs/langs/hr_HR/eventorganization.lang +++ b/htdocs/langs/hr_HR/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = U obrascu za stvaranje/dodavanje sudion # Object # EventOrganizationConfOrBooth= Konferencija ili štand +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Upravljajte organizacijom događaja ConferenceOrBooth = Konferencija ili štand ConferenceOrBoothTab = Konferencija ili štand AmountPaid = Uplaćeni iznos DateOfRegistration = Datum registracije ConferenceOrBoothAttendee = Sudionik konferencije ili štanda +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = Popis predloženih konferencija -ListOfSuggestedBooths = Popis predloženih štandova -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Suggest a new conference SuggestBooth = Suggest a booth ViewAndVote = View and vote for suggested events PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = The security key is invalid or missing -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = This conference starts on %s and ends on %s. ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s @@ -130,7 +133,7 @@ LabelOfconference=Conference label ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s must be before %s DateMustBeAfterThan=%s must be after %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registracija OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Veza na treću stranu (kupac, dobavljač ili partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Prijava za štand NewSuggestionOfConference=Prijava za konferenciju @@ -154,7 +158,7 @@ VoteOk = Vaš glas je prihvaćen. AlreadyVoted = Već ste glasali za ovaj događaj. VoteError = Došlo je do pogreške tijekom glasanja, pokušajte ponovo. -SubscriptionOk = Vaša registracija je potvrđena +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Potvrda vaše pretplate na događaj Attendee = Polaznik PaymentConferenceAttendee = Plaćanje sudionika konferencije @@ -162,6 +166,7 @@ PaymentBoothLocation = Plaćanje lokacije štanda DeleteConferenceOrBoothAttendee=Ukloni sudionika RegistrationAndPaymentWereAlreadyRecorder=Registracija i uplata već su zabilježeni za e-mail %s EmailAttendee=E-mail sudionika +EmailCompany=Company email EmailCompanyForInvoice=E-pošta tvrtke (za fakturu, ako se razlikuje od e-pošte sudionika) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation diff --git a/htdocs/langs/hr_HR/externalsite.lang b/htdocs/langs/hr_HR/externalsite.lang deleted file mode 100644 index 1c3fb21742a..00000000000 --- a/htdocs/langs/hr_HR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Postavljanje linkova na vanjske web stranice -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modul ExternalSite nije ispravno podešen. -ExampleMyMenuEntry=Moj izbornik unos diff --git a/htdocs/langs/hr_HR/ftp.lang b/htdocs/langs/hr_HR/ftp.lang deleted file mode 100644 index f44222fdeba..00000000000 --- a/htdocs/langs/hr_HR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Postavljanje modula FTP ili SFTP klijenta -NewFTPClient=Nova postavka FTP/FTPS veze -FTPArea=FTP/FTPS sučelje -FTPAreaDesc=Ovaj zaslon prikazuje prikaz FTP i SFTP poslužitelja. -SetupOfFTPClientModuleNotComplete=Čini se da postavljanje FTP ili SFTP klijentskog modula nije dovršeno -FTPFeatureNotSupportedByYourPHP=Vaš PHP ne podržava FTP ili SFTP funkcije -FailedToConnectToFTPServer=Povezivanje s poslužiteljem nije uspjelo (poslužitelj %s, port %s) -FailedToConnectToFTPServerWithCredentials=Prijava na poslužitelj s definiranom prijavom/lozinkom nije uspjela -FTPFailedToRemoveFile=Neuspješno brisanje datoteke %s. -FTPFailedToRemoveDir=Uklanjanje direktorija %s nije uspjelo: provjerite dopuštenja i je li direktorij prazan. -FTPPassiveMode=Pasivni mod -ChooseAFTPEntryIntoMenu=Odaberite FTP/SFTP stranicu s izbornika... -FailedToGetFile=Neuspješno preuzimanje datoteka %s diff --git a/htdocs/langs/hr_HR/holiday.lang b/htdocs/langs/hr_HR/holiday.lang index c75cc5b15bf..67887fcd065 100644 --- a/htdocs/langs/hr_HR/holiday.lang +++ b/htdocs/langs/hr_HR/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Djelatnici -Holidays=Napusti +Holidays=Leaves +Holiday=Napusti CPTitreMenu=Napusti MenuReportMonth=Mjesečna izjava MenuAddCP=Novi zahtjev odsustva +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Izradi zahtjev odsustva DateDebCP=Datum početka @@ -56,6 +58,7 @@ ConfirmDeleteCP=Potvrdite brisanje ovog zahtjeva ? ErrorCantDeleteCP=Greška nemate pravo za brisanje zahtjeva. CantCreateCP=Nemate pravo za kreiranje zahtjeva. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Morate odabrati datum početka. NoDateFin=Morate odabrati datum završetka. ErrorDureeCP=Vaš zahtjev ne sadrži radni dan. @@ -79,6 +82,8 @@ MotifCP=Razlog UserCP=Korisnik ErrorAddEventToUserCP=Dogodila se greška kod dodavanja specijalnog odsustva. AddEventToUserOkCP=Dodatak specijalnog odsustva je završen. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Pregled dnevnika promjena LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Ažurirao @@ -86,6 +91,13 @@ UserUpdateCP=Ažurirano za PrevSoldeCP=Prijašnje stanje NewSoldeCP=Novo stanje alreadyCPexist=Zahtjev je već napravljen za ovaj period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupe +users=Korisnici +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Zadnja %s izmijenjena zahtjeva za odlaskom @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s je obično NEradni dan BlockHolidayIfNegative=Blokirajte ako je saldo negativan LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/hr_HR/hrm.lang b/htdocs/langs/hr_HR/hrm.lang index ef7455c6bc0..97ebcf09c91 100644 --- a/htdocs/langs/hr_HR/hrm.lang +++ b/htdocs/langs/hr_HR/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Otvori ustanovu CloseEtablishment=Zatvori ustanovu # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - popis odjela +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Zaposlenici @@ -70,9 +70,9 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Popis vještina SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Znanje +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Znanje AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee @@ -88,3 +88,4 @@ DeleteSkill = Vještina uklonjena SkillsExtraFields=Attributs supplémentaires (Compétences) JobsExtraFields=Attributs supplémentaires (Emplois) EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/hr_HR/install.lang b/htdocs/langs/hr_HR/install.lang index 2bfd21a7d5b..5195a2e170d 100644 --- a/htdocs/langs/hr_HR/install.lang +++ b/htdocs/langs/hr_HR/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=U konfiguracijsku datoteku %s nije moguće pisati ConfFileIsWritable=U konfiguracijsku datoteku %s može se pisati. ConfFileMustBeAFileNotADir=Konfiguracijska datoteka %s mora biti datoteka, a ne direktorij. ConfFileReload=Ponovno učitavanje parametara iz konfiguracijske datoteke. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Ovaj PHP podržava varijable POST i GET. PHPSupportPOSTGETKo=Moguće je da vaša PHP postavka ne podržava varijable POST i/ili GET. Provjerite parametar variables_order u php.ini. PHPSupportSessions=Ovaj PHP podržava sesije. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Možda ste upisali pogrešnu vrijednost za parametar ErrorFailedToCreateDatabase=Kreiranje baze podataka '%s' nije uspjelo. ErrorFailedToConnectToDatabase=Povezivanje s bazom podataka '%s' nije uspjelo. ErrorDatabaseVersionTooLow=Verzija baze podataka (%s) prestara. Potrebna je verzija %s ili novija. -ErrorPHPVersionTooLow=PHP verzija prestara. Potrebna je verzija %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Povezivanje s poslužiteljem uspjelo, ali baza podataka '%s' nije pronađena. ErrorDatabaseAlreadyExists=Baza podataka '%s' već postoji. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Ako baza podataka ne postoji, vratite se i označite opciju "Kreiraj bazu podataka". IfDatabaseExistsGoBackAndCheckCreate=Ako baza podataka već postoji, vratite se i poništite opciju "Kreiraj bazu podataka". WarningBrowserTooOld=Verzija preglednika je prestara. Preporuča se nadogradnja preglednika na najnoviju verziju Firefoxa, Chromea ili Opera. diff --git a/htdocs/langs/hr_HR/mailmanspip.lang b/htdocs/langs/hr_HR/mailmanspip.lang index 4558c6834fc..60b4d01ee61 100644 --- a/htdocs/langs/hr_HR/mailmanspip.lang +++ b/htdocs/langs/hr_HR/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Test prijave je uspješno izvršen MailmanDeletionSuccess=Test odjave je uspješno izvršen SynchroMailManEnabled=Mailman će biti ažuriran SynchroSpipEnabled=SPIP će biti ažuriran -DescADHERENT_MAILMAN_ADMINPW=Mailman lozinka administratora +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman lozinka administratora DescADHERENT_MAILMAN_URL=URL za Mailman prijave DescADHERENT_MAILMAN_UNSUB_URL=URL za Mailman odjave DescADHERENT_MAILMAN_LISTS=Lista(e) za automatsku prijavu novih članova (odvojeno zarezom) diff --git a/htdocs/langs/hr_HR/mails.lang b/htdocs/langs/hr_HR/mails.lang index ee11e037600..eb885a097de 100644 --- a/htdocs/langs/hr_HR/mails.lang +++ b/htdocs/langs/hr_HR/mails.lang @@ -7,10 +7,10 @@ MailCard=Kartica elektroničke pošte MailRecipients=Primatelji MailRecipient=Primatelj MailTitle=Opis -MailFrom=Pošiljatelj +MailFrom=Od MailErrorsTo=Pogreške MailReply=Odgovoriti na -MailTo=Primatelj(i) +MailTo=Za MailToUsers=Korisnicima MailCC=Kopirajte u MailToCCUsers=Kopirajte korisniku(cima) @@ -178,3 +178,4 @@ IsAnAnswer=Odgovor je na početni email RecordCreatedByEmailCollector=Zapis kreiran od strane sakupljača e-pošte %s iz e-pošte %s DefaultBlacklistMailingStatus=Zadana vrijednost za polje '%s' prilikom stvaranja novog kontakta DefaultStatusEmptyMandatory=Prazan, ali obavezan +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index 232675f84c9..5672247a0b9 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Nema predloška za taj tip e-pošte AvailableVariables=Dostupne zamjenske vrijednosti NoTranslation=Bez prijevoda Translation=Prijevod +Translations=Translations CurrentTimeZone=Vremenska zona PHP (server) EmptySearchString=Unesite kriterije pretraživanja EnterADateCriteria=Unesite kriterij datuma @@ -199,6 +206,7 @@ Valid=Valjano Approve=Odobri Disapprove=Ne odobri ReOpen=Ponovo otvori +OpenVerb=Otvoreno Upload=Podigni ToLink=Poveznica Select=Odaberi @@ -216,7 +224,7 @@ UserGroup=Grupa korisnika UserGroups=Grupe korisnika NoUserGroupDefined=Grupa korisnika nije izrađena Password=Zaporka -PasswordRetype=Ponovi zaporku +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Uzmite u obzir da je dosta mogućnosti i modula onemogućeno u ovom izlaganju. Name=Ime NameSlashCompany=Ime / Tvrtka @@ -345,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Kreirao +UserAuthor=Izradio UserModif=Ažurirao b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Događaji vezani na ovaj kontakt/adresu ActionsOnContract=Događaji vezani uz ovaj ugovor ActionsOnMember=Događaji vezani uz ovog člana ActionsOnProduct=Radnje vezane uz ovaj proizvod +ActionsOnAsset=Events for this fixed asset NActionsLate=%s kasni ToDo=Za učiniti Completed=Završeno @@ -712,6 +721,7 @@ FeatureDisabled=Mogućnost isključena MoveBox=Pomakni prozorčić Offered=Ponuđeno NotEnoughPermissions=Nemate dozvolu za ovu radnju +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Naziv sjednice Method=Način Receive=Primi @@ -801,6 +811,7 @@ URLPhoto=URL slike/loga SetLinkToAnotherThirdParty=Poveži s drugom trećom osobom LinkTo=Poveži s LinkToProposal=Poveži s ponudom +LinkToExpedition= Link to expedition LinkToOrder=Poveži s narudžbom LinkToInvoice=Poveži s računom LinkToTemplateInvoice=Poveznica na predložak računa @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Privatni link za preuzimanje PrivateDownloadLinkDesc=Morate biti prijavljeni i potrebna su vam dopuštenja za pregled ili preuzimanje datoteke Download=Preuzimanje DownloadDocument=Preuzimanje dokumenta +DownloadSignedDocument=Download signed document ActualizeCurrency=Upiši novi tečaj Fiscalyear=Fiskalna godina ModuleBuilder=Graditelj modula i aplikacija @@ -1044,6 +1056,7 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Pošiljke kupcu SearchIntoExpenseReports=Troškovnici SearchIntoLeaves=Napusti +SearchIntoKM=Knowledge base SearchIntoTickets=Tiketi SearchIntoCustomerPayments=Plaćanja kupaca SearchIntoVendorPayments=Plaćanja dobavljača @@ -1135,15 +1148,29 @@ EventReminder=Podsjetnik na događaj UpdateForAllLines=Ažuriranje za sve linije OnHold=Na čekanju Civility=Uljudnost -AffectTag=Oznaka utjecaja +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Stvorite vanjskog korisnika -ConfirmAffectTag=Utjecaj skupne oznake -ConfirmAffectTagQuestion=Jeste li sigurni da želite utjecati na oznake %s odabranih zapisa? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Nije pronađena vrsta oznake za vrstu zapisa +Rate=Stopa +SupervisorNotFound=Supervisor not found CopiedToClipboard=Kopirano u međuspremnik InformationOnLinkToContract=Ovaj iznos je samo zbroj svih stavki ugovora. Ne uzima se u obzir pojam vremena. ConfirmCancel=Jeste li sigurni da želite otkazati EmailMsgID=ID email poruke +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Postavite na omogućeno SetToDisabled=Postavite na onemogućeno ConfirmMassEnabling=masovno omogućavanje potvrde @@ -1172,5 +1199,14 @@ Terminated=Prekinuto AddLineOnPosition=Dodajte redak na poziciju (na kraju ako je prazan) ConfirmAllocateCommercial=Dodijelite potvrdu prodajnog predstavnika ConfirmAllocateCommercialQuestion=Jeste li sigurni da želite dodijeliti %s odabrane zapise? -CommercialsAffected=Pogođeni su prodajni predstavnici -CommercialAffected=Pogođen prodajni predstavnik +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interni korisnik +ExternalUser=Vanjski korisnik diff --git a/htdocs/langs/hr_HR/members.lang b/htdocs/langs/hr_HR/members.lang index c9f9e655789..f4f6a74f7ab 100644 --- a/htdocs/langs/hr_HR/members.lang +++ b/htdocs/langs/hr_HR/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Drugi član (ime: %s, login: < ErrorUserPermissionAllowsToLinksToItselfOnly=Iz sigurnosnih razloga, morate dodjeliti dozvole svim korisnicima da mogu povezivati članove s korisnicima koji nisu vaši. SetLinkToUser=Poveži s Dolibarr korisnikom SetLinkToThirdParty=Veza na Dolibarr komitenta +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Popis članova MembersListToValid=Popis članova u skicama ( za ovjeru ) @@ -34,8 +35,10 @@ DateSubscription=Datum članstva DateEndSubscription=Datum završetka članstva EndSubscription=Kraj članstva SubscriptionId=Pretplata ID -WithoutSubscription=Bez pretplate -MemberId=Član ID +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Novi član MemberType=Vrsta člana MemberTypeId=Vrsta ID člana @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Vrsta člana ne može se izbrisati NewSubscription=Nova pretplata NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s. Subscription=Pretplata +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Trajanje +GetMembershipButtonLabel=Join Subscriptions=Pretplate SubscriptionLate=Kasni SubscriptionNotReceived=Pretplata nikad zaprimljena @@ -135,7 +144,7 @@ CardContent=Sadržaj vaše članske kartice # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Promet (za tvrtke) ili proračun (za zaklade) DefaultAmount=Default amount of contribution -CanEditAmount=Posjetitelj može odabrati/mjenjati iznos svoje pretplate -MEMBER_NEWFORM_PAYONLINE=Idi na integriranu stranicu online plaćanja +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Po karakteristikama MembersStatisticsByProperties=Statistika članova po karakteristikama VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=Stvoreni su %s vanjski korisnik(i). ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/hr_HR/modulebuilder.lang b/htdocs/langs/hr_HR/modulebuilder.lang index b2aa2ab0c6a..8181f5f9eef 100644 --- a/htdocs/langs/hr_HR/modulebuilder.lang +++ b/htdocs/langs/hr_HR/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=Ovaj alat smiju koristiti samo iskusni korisnici ili programeri. Pruža pomoćne programe za izgradnju ili uređivanje vlastitog modula. Dokumentacija za alternativni ručni razvoj je ovdje . EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Putanja na kojoj se moduli generiraju/uređuju (prvi direktorij za vanjske module definiran u %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Modul se detektira kao 'koji se može uređivati' kada datote NewModule=Novi modul NewObjectInModulebuilder=Novi objekt NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Module key ObjectKey=Object key DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation (%s) SpaceOrSpecialCharAreNotAllowed=Razmaci ili posebni znakovi nisu dopušteni. FileNotYetGenerated=Datoteka još nije generirana +GenerateCode=Generate code RegenerateClassAndSql=Prisilno ažuriranje .class i .sql datoteka RegenerateMissingFiles=Generirajte datoteke koje nedostaju SpecificationFile=File of documentation LanguageFile=Datoteka za jezik ObjectProperties=Object Properties +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. NotNull=Nije NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Is a measure DirScanned=Directory scanned NoTrigger=No trigger NoWidget=No widget -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=Popis unosa u izborniku ListOfDictionariesEntries=List of dictionaries entries ListOfPermissionsDefined=List of defined permissions SeeExamples=Ovdje pogledajte primjere -EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Prikaz u PDF-u +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0) SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0) SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Use a specific editor URL UseSpecificFamily = Use a specific family UseSpecificAuthor = Koristite određenog autora UseSpecificVersion = Koristite određenu početnu verziju -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. -ShowOnCombobox=Show value into combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Key for tooltip CSSClass=CSS za uređivanje/kreiranje obrasca CSSViewClass=CSS za obrazac za čitanje CSSListClass=CSS za popis NotEditable=Nije moguće uređivati ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii u HTML pretvarač AsciiToPdfConverter=Ascii u PDF pretvarač TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=Graditelj modula je dostupan, ali nije dopušten vašem korisniku. ImportExportProfiles=Uvoz i izvoz profila -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Upozorenje: Baza podataka se ne ažurira automatski, morate uništiti tablice i onemogućiti-omogućiti modul za ponovno kreiranje tablica LinkToParentMenu=Roditeljski izbornik (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/hr_HR/mrp.lang b/htdocs/langs/hr_HR/mrp.lang index baac75c4d8c..46ddbdd39f6 100644 --- a/htdocs/langs/hr_HR/mrp.lang +++ b/htdocs/langs/hr_HR/mrp.lang @@ -11,8 +11,8 @@ Bom=Sastavnica BillOfMaterials=Sastavnice BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=Lista proizvodnih naloga +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Proizvodni nalozi NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=BOM numbering templates @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Jeste li sigurni da želite klonirati popis materija ConfirmCloneMo=Jeste li sigurni da želite klonirati proizvodnu narudžbu %s? ManufacturingEfficiency=Učinkovitost proizvodnje ConsumptionEfficiency=Učinkovitost potrošnje +Consumption=Consumption ValueOfMeansLoss=Vrijednost od 0,95 znači prosječno 5%% gubitka tijekom proizvodnje ili rastavljanja ValueOfMeansLossForProductProduced=Vrijednost od 0,95 znači prosječno 5%% gubitka proizvedenog proizvoda DeleteBillOfMaterials=Delete Bill Of Materials @@ -82,6 +83,7 @@ ProductsToProduce=Proizvodi za proizvodnju UnitCost=Jedinični trošak TotalCost=Ukupni trošak BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Radna stanica @@ -112,3 +114,7 @@ MOAndLines=Manufacturing Orders and lines MoChildGenerate=Generate Child Mo ParentMo=MO Parent MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/hr_HR/oauth.lang b/htdocs/langs/hr_HR/oauth.lang index eb04d6d4ea7..d48b3e8f90d 100644 --- a/htdocs/langs/hr_HR/oauth.lang +++ b/htdocs/langs/hr_HR/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Token je generiran i pohranjen u lokalnu bazu NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token obrisan -RequestAccess=Kliknite ovdje za zahtjev/obnavljanje i primanje novog tokena za pohranu +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Kliknite ovdje za brisanje tokena UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=See previous tab +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired @@ -23,10 +24,13 @@ TOKEN_DELETE=Delete saved token OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang index bbe683729bb..693c9f0edc1 100644 --- a/htdocs/langs/hr_HR/other.lang +++ b/htdocs/langs/hr_HR/other.lang @@ -304,3 +304,24 @@ ConfirmBtnCommonContent = Jeste li sigurni da želite "%s"? ConfirmBtnCommonTitle = Potvrdite svoju radnju CloseDialog = Zatvori Autofill = Automatsko popunjavanje + +# externalsite +ExternalSiteSetup=Postavljanje linkova na vanjske web stranice +ExternalSiteURL=URL vanjske web-lokacije HTML iframe sadržaja +ExternalSiteModuleNotComplete=Modul ExternalSite nije ispravno podešen. +ExampleMyMenuEntry=Moj izbornik unos + +# FTP +FTPClientSetup=Postavljanje modula FTP ili SFTP klijenta +NewFTPClient=Nova postavka FTP/FTPS veze +FTPArea=FTP/FTPS sučelje +FTPAreaDesc=Ovaj zaslon prikazuje prikaz FTP i SFTP poslužitelja. +SetupOfFTPClientModuleNotComplete=Čini se da postavljanje FTP ili SFTP klijentskog modula nije dovršeno +FTPFeatureNotSupportedByYourPHP=Vaš PHP ne podržava FTP ili SFTP funkcije +FailedToConnectToFTPServer=Povezivanje s poslužiteljem nije uspjelo (poslužitelj %s, port %s) +FailedToConnectToFTPServerWithCredentials=Prijava na poslužitelj s definiranom prijavom/lozinkom nije uspjela +FTPFailedToRemoveFile=Neuspješno brisanje datoteke %s. +FTPFailedToRemoveDir=Uklanjanje direktorija %s nije uspjelo: provjerite dopuštenja i je li direktorij prazan. +FTPPassiveMode=Pasivni mod +ChooseAFTPEntryIntoMenu=Odaberite FTP/SFTP stranicu s izbornika... +FailedToGetFile=Neuspješno preuzimanje datoteka %s diff --git a/htdocs/langs/hr_HR/projects.lang b/htdocs/langs/hr_HR/projects.lang index c9740e10f82..693ed55a765 100644 --- a/htdocs/langs/hr_HR/projects.lang +++ b/htdocs/langs/hr_HR/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Ovaj popis predstavlja sve projekte i zadatke za koje imate dozv TasksDesc=Ovaj popis predstavlja sve projekte i zadatke (vaše korisničke dozvole odobravaju vam da vidite sve). AllTaskVisibleButEditIfYouAreAssigned=Svi zadaci kvalificiranih projekata su vidljivi, ali možete unijeti vrijeme samo za zadatak dodijeljen odabranom korisniku. Dodijelite zadatak ako na njemu trebate unijeti vrijeme. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Zadaci projekta ProjectCategories=Projektne oznake / kategorije NewProject=Novi projekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Mogući iznos otvorenih projekata po status OpportunitiesStatusForProjects=Mogući iznos projekata po statusu ShowProject=Prikaži projekt ShowTask=Prikaži zadatak +SetThirdParty=Set third party SetProject=Postavi projekt +OutOfProject=Out of project NoProject=Nema definiranih ili vlastih projekata NbOfProjects=Number of projects NbOfTasks=Number of tasks @@ -122,7 +125,8 @@ ValidateProject=Ovjeri projekt ConfirmValidateProject=Jeste li sigurni da želite odobriti ovaj projekt? CloseAProject=Zatvori projekt ConfirmCloseAProject=Jeste li sigurni da želite zatvoriti ovaj projekt? -AlsoCloseAProject=Također zatvorite projekt (držite ga otvorenim ako i dalje trebate slijediti proizvodne zadatke na njemu) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Otvori projekt ConfirmReOpenAProject=Jeste li sigurni da želite ponovo otvoriti ovaj projekt? ProjectContact=Kontakti projekta @@ -165,7 +169,7 @@ OpportunityProbability=Glavna vjerojatnost OpportunityProbabilityShort=Glavna vjer. OpportunityAmount=Glavni iznos OpportunityAmountShort=Glavni iznos -OpportunityWeightedAmount=Opportunity weighted amount +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. weighted amount OpportunityAmountAverageShort=Prosječan glavni iznos OpportunityAmountWeigthedShort=Ponderirani glavni iznos @@ -238,7 +242,7 @@ OppStatusPENDING=Na čekanju OppStatusWON=Dobio OppStatusLOST=Izgubljeno Budget=Proračun -AllowToLinkFromOtherCompany=Dozvoli povezivanje projekta druge tvrtke

    Podržane vrijednosti:
    - Ostavi prazno: može povezati bilo koji projekt tvrtke (zadano)
    - "sve": može povezati bilo koje projekte, čak i projekte drugih tvrtki
    - Popis ID-ova trećih strana odvojen zarezima: može povezati sve projekte ovih trećih strana (Primjer: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Najnoviji %s projekti LatestModifiedProjects=Najnoviji %s modificirani projekti OtherFilteredTasks=Ostali filtrirani zadaci @@ -259,7 +263,7 @@ TimeSpentInvoiced=Naplaćeno utrošeno vrijeme TimeSpentForIntervention=Vrijeme utrošeno TimeSpentForInvoice=Vrijeme utrošeno OneLinePerUser=Jedna linija po korisniku -ServiceToUseOnLines=Usluga za uporabu na linijama +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Račun %s generiran je od vremena utrišenog na projektu InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/hr_HR/propal.lang b/htdocs/langs/hr_HR/propal.lang index 4dbcee5f859..0b5ae848b51 100644 --- a/htdocs/langs/hr_HR/propal.lang +++ b/htdocs/langs/hr_HR/propal.lang @@ -54,9 +54,10 @@ NoDraftProposals=Nema skica ponuda CopyPropalFrom=Izradi ponudu preslikom postojeće ponude CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Osnovni rok valjanosti ponude (u danima) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +ConfirmReOpenProp=Jeste li sigurni da želite ponovno otvoriti ponudu %s ? ProposalsAndProposalsLines=Ponude i stavke ProposalLine=Stavka ponude ProposalLines=Proposal lines @@ -64,36 +65,54 @@ AvailabilityPeriod=Rok isporuke SetAvailability=Odredi rok isporuke AfterOrder=poslije narudžbe OtherProposals=Ostale ponude + ##### Availability ##### AvailabilityTypeAV_NOW=Odmah AvailabilityTypeAV_1W=Tjedan dana AvailabilityTypeAV_2W=Dva tjedna AvailabilityTypeAV_3W=Tri tjedna AvailabilityTypeAV_1M=Mjesec dana -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Suradnik koji prati ponudu TypeContact_propal_external_BILLING=Kontakt osoba pri kupcu za račun TypeContact_propal_external_CUSTOMER=Kontakt osoba pri kupcu za ponudu TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Ugovor potpisan +DefaultModelPropalClosed=Osnovni predložak prilikom zatvaranja poslovne ponude (nenaplaćeno) DefaultModelPropalCreate=Izrada osnovnog modela DefaultModelPropalToBill=Osnovni predložak prilikom zatvaranja poslovne ponude (za naplatu) -DefaultModelPropalClosed=Osnovni predložak prilikom zatvaranja poslovne ponude (nenaplaćeno) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odbij +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Potvrda narudžbe; pečat tvrtke, datum i potpis ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/hr_HR/recruitment.lang b/htdocs/langs/hr_HR/recruitment.lang index 7a68935ff4b..683b5faaceb 100644 --- a/htdocs/langs/hr_HR/recruitment.lang +++ b/htdocs/langs/hr_HR/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-mail regruter ToUseAGenericEmail=Za korištenje generičke e-pošte. Ako nije definirano, koristit će se e-mail odgovornog za zapošljavanje NewCandidature=Nova prijava ListOfCandidatures=Popis prijava -RequestedRemuneration=Zatražena naknada -ProposedRemuneration=Predložena naknada +Remuneration=Plaća +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Predložen ugovor ContractSigned=Ugovor potpisan ContractRefused=Ugovor odbijen RecruitmentCandidature=Prijava JobPositions=Radna mjesta RecruitmentCandidatures=Prijave -InterviewToDo=Intervju za obaviti +InterviewToDo=Contacts to follow AnswerCandidature=Odgovor na prijavu YourCandidature=Vaša prijava YourCandidatureAnswerMessage=Hvala vam na vašoj prijavi.
    ... diff --git a/htdocs/langs/hr_HR/stocks.lang b/htdocs/langs/hr_HR/stocks.lang index 25ade6808fb..e08ea88cd01 100644 --- a/htdocs/langs/hr_HR/stocks.lang +++ b/htdocs/langs/hr_HR/stocks.lang @@ -265,6 +265,7 @@ ProductBarcodeDoesNotExist=Proizvod s bar kodom ne postoji WarehouseId=ID skladišta WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Početak InventoryStartedShort=Započeto ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requ StockChangeDisabled=Promjena zaliha onemogućena NoWarehouseDefinedForTerminal=No warehouse defined for terminal ClearQtys=Očistite sve količine +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Postavke +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/hr_HR/ticket.lang b/htdocs/langs/hr_HR/ticket.lang index a940aeb3182..e2eca0ca620 100644 --- a/htdocs/langs/hr_HR/ticket.lang +++ b/htdocs/langs/hr_HR/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Izbrišite tikete Permission56004=Upravljajte tiketima Permission56005=Pogledajte tikete svih trećih strana (nije na snazi za vanjske korisnike, uvijek su ograničene na treću stranu o kojoj ovise) +Tickets=Tiketi TicketDictType=Tiketi - Vrste TicketDictCategory=Tiketi - Grupe TicketDictSeverity=Tiketi - ozbiljnosti @@ -90,8 +91,8 @@ TicketPublicAccess=Javno sučelje koje ne zahtijeva identifikaciju dostupno je n TicketSetupDictionaries=Tip tiketa, ozbiljnost i analitički kodovi mogu se konfigurirati iz rječnika TicketParamModule=Postavljanje varijable modula TicketParamMail=Postavljanje e-pošte -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Tekstualna poruka poslana nakon kreiranja tiketa @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Ovdje navedeni tekst bit će umetnut u e-poruku kojom se TicketParamPublicInterface=Postavljanje javnog sučelja TicketsEmailMustExist=Zahtijevajte postojeću adresu e-pošte za izradu tiketa TicketsEmailMustExistHelp=U javnom sučelju, e-mail adresa bi već trebala biti popunjena u bazi podataka za kreiranje novog tiketa. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Javno sučelje TicketUrlPublicInterfaceLabelAdmin=Alternativni URL za javno sučelje TicketUrlPublicInterfaceHelpAdmin=Moguće je definirati alias web poslužitelju i tako učiniti dostupnim javno sučelje s drugim URL-om (poslužitelj mora djelovati kao proxy na ovom novom URL-u) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Prilikom zatvaranja tiketa, bit će vam predloženo d TicketWrongContact=Navedeni kontakt nije dio trenutnih kontakata za tiket. E-mail nije poslan. TicketChooseProductCategory=Kategorija proizvoda za podršku tiketa TicketChooseProductCategoryHelp=Odaberite kategoriju proizvoda za podršku tiketa. To će se koristiti za automatsko povezivanje ugovora s tiketom. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Tiket je sada dodijeljen TicketChangeType=Promijenite vrstu TicketChangeCategory=Promijenite analitički kod TicketChangeSeverity=Promijenite ozbiljnost -TicketAddMessage=Dodajte poruku -AddMessage=Dodajte poruku +TicketAddMessage=Add private message MessageSuccessfullyAdded=Tiket je dodan TicketMessageSuccessfullyAdded=Poruka je uspješno dodana TicketMessagesList=Popis poruka @@ -202,8 +206,8 @@ TicketSeverity=Ozbiljnost ShowTicket=Vidi tiket RelatedTickets=Povezani tiketi TicketAddIntervention=Izradi intervenciju -CloseTicket=Zatvori|Riješi tiket -AbandonTicket=Napusti tiket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Zatvori|Riješi tiket ConfirmCloseAticket=Potvrdite zatvaranje tiketa ConfirmAbandonTicket=Potvrđujete li zatvaranje tiketa u status 'Napušteno' @@ -217,18 +221,17 @@ SendMessageByEmail=Pošaljite poruku e-poštom TicketNewMessage=Nova poruka ErrorMailRecipientIsEmptyForSendTicketMessage=Primatelj je prazan. Nema slanja e-pošte TicketGoIntoContactTab=Idite na karticu "Kontakti" da biste ih odabrali -TicketMessageMailIntro=Uvod +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Ovaj tekst se dodaje samo na početak e-pošte i neće biti spremljen. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Potpis -TicketMessageMailSignatureHelp=Ovaj se tekst dodaje samo na kraju e-pošte i neće biti spremljen. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Potpis e-pošte za odgovor -TicketMessageMailSignatureHelpAdmin=Ovaj tekst će biti umetnut nakon poruke odgovora. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Ovaj tekst će biti umetnut nakon poruke odgovora. TicketMessageHelp=Samo će ovaj tekst biti spremljen na popisu poruka na kartici. TicketMessageSubstitutionReplacedByGenericValues=Supstitucijske varijable zamjenjuju se generičkim vrijednostima. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Vrijeme je proteklo od tada TicketTimeToRead=Vrijeme je proteklo prije čitanja TicketTimeElapsedBeforeSince=Vrijeme proteklo prije/od @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Na tiketu je objavljena nova poruka s TicketAssignedToYou=Tiket dodijeljen TicketAssignedEmailBody=Tiket #%s dodijelio vam je %s MarkMessageAsPrivate=Označi poruku kao privatnu +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Ova poruka se neće prikazati vanjskim korisnicima TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Početna poruka @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Molimo vas da precizno opišete problem. Navedite najviše mogućih informacija kako biste nam omogućili da ispravno identificiramo vaš zahtjev. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Javni ID za praćenje OneOfTicketTrackId=Jedan od vaših ID-a za praćenje diff --git a/htdocs/langs/hr_HR/users.lang b/htdocs/langs/hr_HR/users.lang index 5470e0e254f..1d23fcb34d2 100644 --- a/htdocs/langs/hr_HR/users.lang +++ b/htdocs/langs/hr_HR/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Ukloni iz grupe PasswordChangedAndSentTo=Lozinka je promjenjena i poslana %s. PasswordChangeRequest=Zahtjev za promjenu lozinke za %s PasswordChangeRequestSent=Zahtjev za promjenom lozinke za %s je poslana %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Potvrdite resetiranje lozinke MenuUsersAndGroups=Korisnici & Grupe @@ -68,7 +68,6 @@ CreateDolibarrLogin=Izradi korisnika CreateDolibarrThirdParty=Izradi treću osobu LoginAccountDisableInDolibarr=Račun je onemogučen u Dolibarr-u. UsePersonalValue=Koristi osobnu vrijednost -InternalUser=Interni korisnik ExportDataset_user_1=Users and their properties DomainUser=Korisnik na domeni %s Reactivate=Reaktiviraj @@ -114,7 +113,7 @@ UserLogoff=Odjava korisnika UserLogged=Korisnik prijavljen DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang index adcee2de52b..eb6c4c7707e 100644 --- a/htdocs/langs/hr_HR/website.lang +++ b/htdocs/langs/hr_HR/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kod +WebsiteName=Name of the website WebsiteSetupDesc=Ovdje kreirajte web stranice koje želite koristiti. Zatim idite na izbornik Web stranice da ih uredite. DeleteWebsite=Obriši Web mjesto ConfirmDeleteWebsite=Jeste li sigurni da želite izbrisati ovu web stranicu? Sve njegove stranice i sadržaj također će biti uklonjeni. Učitane datoteke (kao u direktorij medija, ECM modul, ...) ostat će. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages) WEBSITE_ROBOT=Datoteka za botove (robots.txt) WEBSITE_HTACCESS=.htaccess datoteka za web stranicu WEBSITE_MANIFEST_JSON=manifest.json datoteka za web stranicu -WEBSITE_README=README.md datoteka WEBSITE_KEYWORDSDesc=Za odvajanje vrijednosti koristite zarez -EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML header (specific to this page only) PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container. @@ -42,6 +43,8 @@ ViewPageInNewTab=Pogledaj stranicu u novom tabu SetAsHomePage=Postavi kao početnu stranicu RealURL=Pravi URL ViewWebsiteInProduction=Pogledaj web lokaciju koristeći URL naslovnice +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Primjer za korištenje u postavljanju virtualnog hosta Apache: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerirajte datoteke predmemorije web stranice AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Definirajte popis svih dostupnih jezika u svojstva web stranice. -GenerateSitemaps=Generirajte Sitemap datoteku +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Ako potvrdite, izbrisat ćete postojeću Sitemap datoteku ... ConfirmSitemapsCreation=Potvrdite generiranje Sitemapa SitemapGenerated=Generirana datoteka Sitemap %s @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon mora biti png ErrorFaviconSize=Favicon mora biti veličine 16x16, 32x32 ili 64x64 FaviconTooltip=Prenesite sliku koja mora biti PNG (16x16, 32x32 ili 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index 22aeeef35d9..f0b8f7983f0 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -1,138 +1,140 @@ # Dolibarr language file - en_US - Accountancy (Double entries) Accountancy=Könyvelés -Accounting=Könyvelés +Accounting=Számvitel ACCOUNTING_EXPORT_SEPARATORCSV=Oszlop határoló az export fájlhoz -ACCOUNTING_EXPORT_DATE=Dátum formátuma az export fájlhoz +ACCOUNTING_EXPORT_DATE=Az exportfájl dátumformátuma ACCOUNTING_EXPORT_PIECE=Darabszám exportálása ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export globális számlákkal ACCOUNTING_EXPORT_LABEL=Címke exportálása -ACCOUNTING_EXPORT_AMOUNT=Exportálási összeg -ACCOUNTING_EXPORT_DEVISE=Pénznem exportálása +ACCOUNTING_EXPORT_AMOUNT=Export mennyiség +ACCOUNTING_EXPORT_DEVISE=Export valuta Selectformat=Válassza ki a fájl formátumát ACCOUNTING_EXPORT_FORMAT=Válassza ki a fájl formátumát -ACCOUNTING_EXPORT_ENDLINE=Válassza ki a kocsi-visszaküldési típust +ACCOUNTING_EXPORT_ENDLINE=Válassza ki a kocsi-visszaküldésének típusát ACCOUNTING_EXPORT_PREFIX_SPEC=Adja meg a fájlnév előtagját ThisService=Ez a szolgáltatás ThisProduct=Ez a termék -DefaultForService=A szolgáltatás alapértelmezett értéke -DefaultForProduct=A termék alapértelmezett értéke +DefaultForService=Alapértelmezett szolgáltatás +DefaultForProduct=Alapértelmezett termék ProductForThisThirdparty=Termék ennek a harmadik félnek ServiceForThisThirdparty=Szolgáltatás ennek a harmadik félnek CantSuggest=Nem tudok javasolni -AccountancySetupDoneFromAccountancyMenu=A könyvelés legtöbb beállítása a %s menüből történik -ConfigAccountingExpert=A modul könyvelés beállítása (kettős bejegyzés) +AccountancySetupDoneFromAccountancyMenu=A könyvelés legtöbb beállítása az %s menüből történik +ConfigAccountingExpert=A könyvelés modul konfigurálása (kettős bejegyzés) Journalization=Újságírás Journals=Folyóiratok JournalFinancial=Pénzügyi mérleg naplók BackToChartofaccounts=Számlatükör visszaküldése -Chartofaccounts=Számlatábla +Chartofaccounts=Számlatükör ChartOfSubaccounts=Egyéni számlák diagramja -ChartOfIndividualAccountsOfSubsidiaryLedger=Leányvállalati főkönyv egyéni számlatáblázata +ChartOfIndividualAccountsOfSubsidiaryLedger=Leányvállalati főkönyv egyéni számlatükre CurrentDedicatedAccountingAccount=Jelenlegi dedikált fiók -AssignDedicatedAccountingAccount=Új fiók hozzárendeléséhez +AssignDedicatedAccountingAccount=Új fiók hozzárendelése InvoiceLabel=Számla címke OverviewOfAmountOfLinesNotBound=A számviteli számlához nem kötött sorok összegének áttekintése -OverviewOfAmountOfLinesBound=A könyvelési számlához már kötött sorok összegének áttekintése -OtherInfo=Egyéb információ -DeleteCptCategory=Számviteli fiók eltávolítása a csoportból -ConfirmDeleteCptCategory=Biztosan eltávolítja ezt a fiókot a könyvelési fiókcsoportból? +OverviewOfAmountOfLinesBound=A számviteli számlához már kötött sorok összegének áttekintése +OtherInfo=Egyéb információk +DeleteCptCategory=Számviteli számla eltávolítása a csoportból +ConfirmDeleteCptCategory=Biztosan eltávolítja ezt a számviteli számlát a számviteli számlacsoportból? JournalizationInLedgerStatus=A naplózás állapota -AlreadyInGeneralLedger=Már áthelyezve a könyvelési naplókba és a főkönyvbe -NotYetInGeneralLedger=Még nincs áthelyezve a könyvelési naplókba és a főkönyvbe -GroupIsEmptyCheckSetup=A csoport üres, ellenőrizze a személyre szabott könyvelési csoport beállítását -DetailByAccount=Részletek megjelenítése fiókonként -AccountWithNonZeroValues=Nullától eltérő értékekkel rendelkező számlák +AlreadyInGeneralLedger=Már átkerült a számviteli naplókba és a főkönyvbe +NotYetInGeneralLedger=Még nem került át a számviteli naplókba és a főkönyvbe +GroupIsEmptyCheckSetup=A csoport üres, ellenőrizze a személyre szabott számviteli csoport beállítását +DetailByAccount=Részletek megjelenítése számlánként +AccountWithNonZeroValues=Nem nulla értékű számlák ListOfAccounts=Számlák listája -CountriesInEEC=Országok az EGK-ban +CountriesInEEC=Az EGK-beli országok CountriesNotInEEC=Az EGK-n kívüli országok CountriesInEECExceptMe=Az EGK országai, kivéve %s CountriesExceptMe=Minden ország, kivéve %s AccountantFiles=Forrásdokumentumok exportálása -ExportAccountingSourceDocHelp=Ezzel az eszközzel exportálhatja azokat a forráseseményeket (listát CSV-ben és PDF-ben), amelyek a könyvelés létrehozására szolgálnak. -ExportAccountingSourceDocHelp2=A naplók exportálásához használja a %s - %s menüpontot. -VueByAccountAccounting=Megtekintés könyvelési fiók szerint -VueBySubAccountAccounting=Megtekintés könyvelési alfiók szerint +ExportAccountingSourceDocHelp=Ezzel az eszközzel megkeresheti és exportálhatja a könyvelés generálásához használt forráseseményeket.
    Az exportált ZIP-fájl tartalmazza a kért elemek listáját CSV-ben, valamint a hozzájuk csatolt fájlokat eredeti formátumukban (PDF, ODT, DOCX...). +ExportAccountingSourceDocHelp2=A naplók exportálásához használja az %s - %s menüpontot. +ExportAccountingProjectHelp=Adjon meg egy projektet, ha csak egy adott projekthez van szüksége számviteli jelentésre. A projektbeszámolók nem tartalmazzák a költségjelentéseket és a hitelkifizetéseket. +VueByAccountAccounting=Megtekintés számviteli számla szerint +VueBySubAccountAccounting=Megtekintés számviteli alszámla szerint -MainAccountForCustomersNotDefined=A beállításban nem definiált ügyfelek fő könyvelési fiókja -MainAccountForSuppliersNotDefined=A beállításban nem definiált szállítók fő könyvelési fiókja -MainAccountForUsersNotDefined=Fő számviteli fiók a beállításokban nem definiált felhasználók számára -MainAccountForVatPaymentNotDefined=Fő számla az áfa befizetéséhez nincs megadva a beállításban -MainAccountForSubscriptionPaymentNotDefined=Az előfizetési fizetés fő könyvelési fiókja nincs megadva a beállításban +MainAccountForCustomersNotDefined=A beállításban nem definiált ügyfelek fő számviteli számlája +MainAccountForSuppliersNotDefined=A beállításban nem definiált szállítók fő számviteli számlája +MainAccountForUsersNotDefined=Fő számviteli számla a beállításban nem definiált felhasználók számára +MainAccountForVatPaymentNotDefined=Az ÁFA befizetés fő számviteli számlája nincs meghatározva a beállításban +MainAccountForSubscriptionPaymentNotDefined=Az előfizetési fizetéshez szükséges fő számla nincs megadva a beállításban +UserAccountNotDefined=A beállításban nincs megadva számviteli számla AccountancyArea=Számviteli terület AccountancyAreaDescIntro=A könyvelési modul használata több lépésben történik: AccountancyAreaDescActionOnce=A következő műveletek általában csak egyszer, vagy évente egyszer kerülnek végrehajtásra... -AccountancyAreaDescActionOnceBis=A következő lépéseket meg kell tennie, hogy a jövőben időt takarítson meg azáltal, hogy automatikusan a helyes alapértelmezett könyvelési fiókot javasolja a számviteli adatátvitel során -AccountancyAreaDescActionFreq=A következő műveleteket általában havonta, hetente vagy naponta hajtják végre a nagyon nagy cégek... +AccountancyAreaDescActionOnceBis=A következő lépéseket meg kell tennie, hogy a jövőben időt takarítson meg azáltal, hogy automatikusan javasolja a helyes alapértelmezett számviteli számlát a számviteli adatok átvitelekor +AccountancyAreaDescActionFreq=A következő műveleteket általában havonta, hetente vagy naponta hajtják végre nagyon nagy cégeknél... -AccountancyAreaDescJournalSetup=%s LÉPÉS: Ellenőrizze folyóiratlista tartalmát a %s menüből -AccountancyAreaDescChartModel=%s LÉPÉS: Ellenőrizze, hogy létezik-e számlatükör-modell, vagy hozzon létre egyet a %s menüből -AccountancyAreaDescChart=%s LÉPÉS: Válassza ki és|vagy töltse ki a számlatervét a %s menüből +AccountancyAreaDescJournalSetup=LÉPÉS %s: Ellenőrizze a naplólista tartalmát az %s menüből +AccountancyAreaDescChartModel=LÉPÉS %s: Ellenőrizze, hogy létezik-e számlatükör-modell, vagy hozzon létre egyet az %s menüből +AccountancyAreaDescChart=LÉPÉS %s: Válassza ki és|vagy töltse ki a számlatervét az %s menüből -AccountancyAreaDescVat=%s LÉPÉS: Határozza meg a könyvelési számlákat az egyes áfakulcsokhoz. Ehhez használja a %s menüpontot. -AccountancyAreaDescDefault=%s LÉPÉS: Az alapértelmezett könyvelési számlák meghatározása. Ehhez használja a %s menüpontot. -AccountancyAreaDescExpenseReport=%s LÉPÉS: Határozza meg az alapértelmezett könyvelési számlákat minden költségjelentéstípushoz. Ehhez használja a %s menüpontot. -AccountancyAreaDescSal=%s LÉPÉS: Határozzon meg alapértelmezett könyvelési számlákat a fizetések kifizetéséhez. Ehhez használja a %s menüpontot. -AccountancyAreaDescContrib=%s LÉPÉS: Adja meg az alapértelmezett könyvelési számlákat az adókhoz (speciális kiadásokhoz). Ehhez használja a %s menüpontot. -AccountancyAreaDescDonation=%s LÉPÉS: Az adományozáshoz alapértelmezett könyvelési számlák meghatározása. Ehhez használja a %s menüpontot. -AccountancyAreaDescSubscription=%s LÉPÉS: Határozza meg az alapértelmezett könyvelési fiókokat a tagok előfizetéséhez. Ehhez használja a %s menüpontot. -AccountancyAreaDescMisc=LÉPÉS %s: Kötelező alapértelmezett fiók és alapértelmezett könyvelési számlák meghatározása a különféle tranzakciókhoz. Ehhez használja a %s menüpontot. -AccountancyAreaDescLoan=%s LÉPÉS: Határozza meg a hitelek alapértelmezett könyvelési számláit. Ehhez használja a %s menüpontot. -AccountancyAreaDescBank=%s LÉPÉS: Határozza meg a könyvelési számlákat és a naplókódot minden bankhoz és pénzügyi számlához. Ehhez használja a %s menüpontot. -AccountancyAreaDescProd=%s LÉPÉS: Határozzon meg könyvelési számlákat a termékekhez/szolgáltatásokhoz. Ehhez használja a %s menüpontot. +AccountancyAreaDescVat=LÉPÉS %s: Határozza meg a számviteli számlákat az egyes áfakulcsokhoz. Ehhez használja az %s menüpontot. +AccountancyAreaDescDefault=LÉPÉS %s: Határozza meg az alapértelmezett számviteli számlákat. Ehhez használja az %s menüpontot. +AccountancyAreaDescExpenseReport=LÉPÉS %s: Határozzon meg alapértelmezett számviteli számlákat minden költségjelentéstípushoz. Ehhez használja az %s menüpontot. +AccountancyAreaDescSal=LÉPÉS %s: Határozzon meg alapértelmezett számviteli számlákat a fizetések kifizetéséhez. Ehhez használja az %s menüpontot. +AccountancyAreaDescContrib=LÉPÉS %s: Határozzon meg alapértelmezett számvitelii számlákat az adókhoz (speciális kiadásokhoz). Ehhez használja az %s menüpontot. +AccountancyAreaDescDonation=LÉPÉS %s: Határozzon meg alapértelmezett számvitelii számlákat az adományozáshoz. Ehhez használja az %s menüpontot. +AccountancyAreaDescSubscription=LÉPÉS %s: Határozza meg az alapértelmezett számviteli számlákat a tagi előfizetéshez. Ehhez használja az %s menüpontot. +AccountancyAreaDescMisc=LÉPÉS %s: Határozza meg a kötelező alapértelmezett számlát és az alapértelmezett számviteli számlákat különféle tranzakciókhoz. Ehhez használja az %s menüpontot. +AccountancyAreaDescLoan=LÉPÉS %s: Határozzon meg alapértelmezett számviteli számlákat a hitelekhez. Ehhez használja az %s menüpontot. +AccountancyAreaDescBank=LÉPÉS %s: Határozza meg a számviteli számlákat és a naplókódot minden bankhoz és pénzügyi számlához. Ehhez használja az %s menüpontot. +AccountancyAreaDescProd=LÉPÉS %s: Határozzon meg számviteli számlákat a termékekhez/szolgáltatásokhoz. Ehhez használja az %s menüpontot. -AccountancyAreaDescBind=%s LÉPÉS: Ellenőrizze a meglévő %s sorok közötti kötést, és a könyvelési számla megtörtént, így az alkalmazás egy kattintással képes lesz naplózni a tranzakciókat a Főkönyvben. Teljes hiányzó kötések. Ehhez használja a %s menüpontot. -AccountancyAreaDescWriteRecords=%s LÉPÉS: Írja be a tranzakciókat a főkönyvbe. Ehhez lépjen a %s menübe, és kattintson a %s gombra. -AccountancyAreaDescAnalyze=%s LÉPÉS: Meglévő tranzakciók hozzáadása vagy szerkesztése, jelentések és exportálások létrehozása. +AccountancyAreaDescBind=LÉPÉS %s: Ellenőrizze, hogy a meglévő %s sorok és a számviteli számla közötti kötés megtörtént, így az alkalmazás egyetlen kattintással képes lesz naplózni a tranzakciókat a Főkönyvben. Teljes hiányzó kötések. Ehhez használja az %s menüpontot. +AccountancyAreaDescWriteRecords=LÉPÉS %s: Írja be a tranzakciókat a főkönyvbe. Ehhez lépjen az %s menübe, és kattintson az %s gombra. +AccountancyAreaDescAnalyze=LÉPÉS %s: Meglévő tranzakciók hozzáadása vagy szerkesztése, valamint jelentések és exportálások létrehozása. -AccountancyAreaDescClosePeriod=LÉPÉS %s: Az időszak lezárása, hogy a jövőben ne tudjunk módosítani. +AccountancyAreaDescClosePeriod=LÉPÉS %s: Zárja be az időszakot, hogy a jövőben ne módosíthassuk. TheJournalCodeIsNotDefinedOnSomeBankAccount=A beállítás egy kötelező lépése nem fejeződött be (a számviteli kódnapló nincs megadva minden bankszámlához) Selectchartofaccounts=Válassza ki az aktív számlatükröt ChangeAndLoad=Változás és betöltés -Addanaccount=Számviteli fiók hozzáadása +Addanaccount=Adjon hozzá egy számviteli számlát AccountAccounting=Számviteli számla AccountAccountingShort=Számla -SubledgerAccount=Alkönyvi fiók -SubledgerAccountLabel=Alkönyvi fiókcímke -ShowAccountingAccount=Számviteli fiók megjelenítése +SubledgerAccount=Alkönyvi számla +SubledgerAccountLabel=Alkönyvi számla címke +ShowAccountingAccount=Számviteli számla megjelenítése ShowAccountingJournal=Számviteli napló megjelenítése ShowAccountingAccountInLedger=Számviteli számla megjelenítése a főkönyvben ShowAccountingAccountInJournals=Számviteli számla megjelenítése a naplókban -AccountAccountingSuggest=Számviteli fiók javasolt -MenuDefaultAccounts=Alapértelmezett fiókok +AccountAccountingSuggest=Javasolt számviteli számla +MenuDefaultAccounts=Alapértelmezett számlák MenuBankAccounts=Bankszámlák MenuVatAccounts=Áfa-számlák MenuTaxAccounts=Adószámlák MenuExpenseReportAccounts=Költségjelentés számlák MenuLoanAccounts=Hitelszámlák -MenuProductsAccounts=Termékfiókok -MenuClosureAccounts=Fiókok bezárása -MenuAccountancyClosure=Bezárás -MenuAccountancyValidationMovements=Elmozdulások érvényesítése -ProductsBinding=Termékfiókok -TransferInAccounting=Átvezetés a könyvelésben -RegistrationInAccounting=Rögzítés a könyvelésben -Binding=Fiókokhoz kötés +MenuProductsAccounts=Termék számlák +MenuClosureAccounts=Számlák lezárása +MenuAccountancyClosure=Lezárás +MenuAccountancyValidationMovements=Érvényesítse a mozgásokat +ProductsBinding=Termékek számlái +TransferInAccounting=Átvezetés a számvitelbe +RegistrationInAccounting=Rögzítés a számvitelbe +Binding=Számlákhoz kötés CustomersVentilation=Vásárlói számlakötés SuppliersVentilation=Szállítói számlakötés ExpenseReportsVentilation=Költségjelentés összerendelése CreateMvts=Új tranzakció létrehozása UpdateMvts=Tranzakció módosítása ValidTransaction=Tranzakció érvényesítése -WriteBookKeeping=Tranzakciók rögzítése a könyvelésben +WriteBookKeeping=Tranzakciók rögzítése a számvitelben Bookkeeping=Főkönyv -BookkeepingSubAccount=Alkönyvező +BookkeepingSubAccount=Alkönyv AccountBalance=Számlaegyenleg ObjectsRef=Forrásobjektum ref -CAHTF=A teljes beszerzési eladó adózás előtt +CAHTF=Teljes beszerzési eladó adózás előtt TotalExpenseReport=Összköltségjelentés InvoiceLines=A kötendő számlák sorai InvoiceLinesDone=Számla kötött sorai ExpenseReportLines=Költségjelentések sorai ExpenseReportLinesDone=Költségjelentések kötött sorai -IntoAccount=Sor kötése a könyvelési számlával -TotalForAccount=A teljes könyvelési számla +IntoAccount=Kötési sor a számviteli számlával +TotalForAccount=Teljes számviteli számla Ventilate=Kötelez @@ -142,200 +144,207 @@ EndProcessing=A folyamat megszakadt. SelectedLines=Kiválasztott sorok Lineofinvoice=Számla sora LineOfExpenseReport=Költségjelentés sora -NoAccountSelected=Nincs kiválasztva könyvelési számla -VentilatedinAccount=Sikeresen hozzárendelve a könyvelési számlához -NotVentilatedinAccount=Nincs a könyvelési számlához kötve -XLineSuccessfullyBinded=%s termék/szolgáltatás sikeresen hozzárendelve egy könyvelési fiókhoz -XLineFailedToBeBinded=%s termék/szolgáltatás nem volt könyvelési fiókhoz kötve +NoAccountSelected=Nincs kiválasztva számviteli számla +VentilatedinAccount=Sikeresen hozzárendelve a számviteli számlához +NotVentilatedinAccount=Nincs számviteli számlához kötve +XLineSuccessfullyBinded=%s termékek/szolgáltatások sikeresen hozzárendelve egy számviteli számlához +XLineFailedToBeBinded=az %s termékek/szolgáltatások nem voltak számviteli számlákhoz kötve -ACCOUNTING_LIMIT_LIST_VENTILATION=A sorok maximális száma a listán és a kötési oldalon (ajánlott: 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Kezdje el az oldal "Binding to do" rendezését a legújabb elemek szerint -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Kezdje el a "Kötés megtörtént" oldal rendezését a legújabb elemek szerint +ACCOUNTING_LIMIT_LIST_VENTILATION=A sorok maximális száma a listán és a kötelező oldalon (ajánlott: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Kezdje el az oldal "Kötelező tennivaló" rendezését a legújabb elemek szerint +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Kezdje el a "Kötelező tennivaló megtörtént" oldal rendezését a legújabb elemek szerint ACCOUNTING_LENGTH_DESCRIPTION=Termék- és szolgáltatásleírás csonkolása a listában x karakter után (Legjobb = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Termék- és szolgáltatásfiókleíró űrlap csonkolása a listákban x karakter után (Legjobb = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Termék- és szolgáltatás számla leíró űrlap csonkolása a listákban x karakter után (Legjobb = 50) ACCOUNTING_LENGTH_GACCOUNT=Általános számviteli számlák hossza (Ha itt 6-ra állítja az értéket, a '706' számla '706000'-ként fog megjelenni a képernyőn) -ACCOUNTING_LENGTH_AACCOUNT=A harmadik féltől származó könyvelési fiókok hossza (ha itt 6-ra állítja az értéket, a '401' számla '401000'-ként fog megjelenni a képernyőn) -ACCOUNTING_MANAGE_ZERO=Különböző számú nullák kezelésének engedélyezése a könyvelési fiók végén. Néhány országnak szüksége van (például Svájcban). Ha ki van kapcsolva (alapértelmezett), akkor a következő két paraméter beállításával kérheti az alkalmazást virtuális nullák hozzáadására. +ACCOUNTING_LENGTH_AACCOUNT=A harmadik féltől származó számviteli számlák hossza (ha itt 6-ra állítja az értéket, a '401' számla '401000'-ként fog megjelenni a képernyőn) +ACCOUNTING_MANAGE_ZERO=Különböző számú nullák kezelésének engedélyezése a számviteli számlák végén. Néhány országnak szüksége van (például Svájcban). Ha ki van kapcsolva (alapértelmezett), akkor a következő két paraméter beállításával kérheti az alkalmazást virtuális nullák hozzáadására. BANK_DISABLE_DIRECT_INPUT=Tranzakció közvetlen rögzítésének letiltása a bankszámlán ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Piszkozatexport engedélyezése a naplóban -ACCOUNTANCY_COMBO_FOR_AUX=Kombinációs lista engedélyezése a leányfiókhoz (lassú lehet, ha sok harmadik fél van, és megszakad az érték egy részének keresése) -ACCOUNTING_DATE_START_BINDING=Határozzon meg egy dátumot a könyvelésben a kötés és átvitel megkezdéséhez. Ezen időpont alatt a tranzakciók nem kerülnek át a könyvelésbe. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=A könyvelési átutaláshoz válassza ki az időszakot alapértelmezés szerint +ACCOUNTANCY_COMBO_FOR_AUX=Kombinációs lista engedélyezése az alszámlához (lassú lehet, ha sok harmadik fél van, és megszakad a keresési képesség az érték egy részén) +ACCOUNTING_DATE_START_BINDING=Határozzon meg egy dátumot a könyvelésbe történő bekötés és átutalás megkezdéséhez. Ezen időpont alatt a tranzakciók nem kerülnek át a könyvelésbe. +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=A könyvelési átutalásnál mi az alapértelmezetten kiválasztott időszak -ACCOUNTING_SELL_JOURNAL=Eladó napló -ACCOUNTING_PURCHASE_JOURNAL=Vásárlási napló -ACCOUNTING_MISCELLANEOUS_JOURNAL=Vegyes naplók +ACCOUNTING_SELL_JOURNAL=Értékesítési napló (eladások és visszaküldések) +ACCOUNTING_PURCHASE_JOURNAL=Vásárlási napló (vásárlás és visszaküldés) +ACCOUNTING_BANK_JOURNAL=Pénztári napló (bevételek és kifizetések) ACCOUNTING_EXPENSEREPORT_JOURNAL=Költségjelentési napló -ACCOUNTING_SOCIAL_JOURNAL=Közösségi napló +ACCOUNTING_MISCELLANEOUS_JOURNAL=Általános napló ACCOUNTING_HAS_NEW_JOURNAL=Új naplója van +ACCOUNTING_INVENTORY_JOURNAL=Leltári napló +ACCOUNTING_SOCIAL_JOURNAL=Közösségi napló ACCOUNTING_RESULT_PROFIT=Eredményelszámolási számla (Profit) -ACCOUNTING_RESULT_LOSS=Eredményelszámolási számla (veszteség) +ACCOUNTING_RESULT_LOSS=Eredményelszámolási számla (Veszteség) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Bezárási napló -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Átmeneti banki átutalás számla +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Átmeneti banki átutalásos számla -ACCOUNTING_ACCOUNT_SUSPENSE=Várakozási számla -DONATION_ACCOUNTINGACCOUNT=Számviteli fiók az adományok regisztrálásához -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Számviteli fiók az előfizetések regisztrálásához +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Alapértelmezés szerint számlaszámla az ügyfél befizetésének regisztrálásához -UseAuxiliaryAccountOnCustomerDeposit=Használjon alszámlákat az ügyfelek betéti sorain +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Tárolja az ügyfél számát egyéni számlaként a alkönyvben az előlegsorokhoz (ha le van tiltva, az előlegsorokhoz tartozó egyéni számla üres marad) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Tárolja a szállítói számlát egyéni számlaként a alkönyvben az előlegsorokhoz (letiltás esetén az előlegsorok egyéni számla üresen marad) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Alapértelmezés szerint a vásárolt termékek számviteli fiókja (használjuk, ha nincs megadva a terméklapon) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Alapértelmezés szerint az EGK-ban vásárolt termékek számviteli fiókja (használjuk, ha nincs megadva a terméklapon) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Alapértelmezés szerint a vásárolt és az EGK-ból importált termékek számviteli fiókja (használjuk, ha nincs megadva a terméklapon) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Alapértelmezés szerint könyvelési számla az eladott termékekhez (használjuk, ha nincs megadva a terméklapon) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Alapértelmezés szerint az EGK-ban értékesített termékek számviteli fiókja (használjuk, ha nincs megadva a terméklapon) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Alapértelmezés szerint az eladott és az EGK-ból exportált termékek számviteli fiókja (használjuk, ha nincs megadva a terméklapon) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Alapértelmezés szerint a megvásárolt szolgáltatások számviteli fiókja (ha a szolgáltatási lapon nincs megadva, akkor használatos) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Alapértelmezés szerint az EGK-ban vásárolt szolgáltatások számviteli fiókja (használjuk, ha nincs megadva a szolgáltatási lapon) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Alapértelmezés szerint a megvásárolt és az EGK-ból importált szolgáltatások számviteli fiókja (használjuk, ha nincs megadva a szolgáltatási lapon) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Alapértelmezés szerint könyvelési számla az eladott szolgáltatásokhoz (használjuk, ha nincs megadva a szolgáltatási lapon) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Alapértelmezés szerint az EGK-ban értékesített szolgáltatások számviteli fiókja (használjuk, ha nincs megadva a szolgáltatási lapon) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Alapértelmezés szerint az eladott és az EGK-ból exportált szolgáltatások számviteli fiókja (használjuk, ha nincs megadva a szolgáltatási lapon) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Dokumentum típusa Docdate=Dátum Docref=Referencia -LabelAccount=Fiók címkézése -LabelOperation=Címkeművelet +LabelAccount=Számla címke +LabelOperation=Címke művelet Sens=Irány -AccountingDirectionHelp=Egy ügyfél könyvelési számlája esetén használja a Creditet a kapott kifizetés rögzítéséhez.
    Szállító könyvelési számlája esetén használja a Debit funkciót az Ön által végrehajtott fizetés rögzítéséhez. -LetteringCode=Betűkód -Lettering=Betűzés +AccountingDirectionHelp=Egy ügyfél számviteli számlája esetén használja a Creditet a kapott kifizetés rögzítéséhez.
    Szállító számviteli számlája esetén használja a Debit funkciót az Ön által végrehajtott fizetés rögzítéséhez. +LetteringCode=Felirat kód +Lettering=Felirat Codejournal=Napló JournalLabel=Naplócímke NumPiece=Darabszám -TransactionNumShort=Szám. tranzakció -AccountingCategory=Egyéni csoport +TransactionNumShort=Tranzakció száma +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Főkönyvi számla szerinti csoportosítás -GroupBySubAccountAccounting=Csoport alkönyvi számla szerint -AccountingAccountGroupsDesc=Itt meghatározhatja a számviteli fiókok néhány csoportját. Személyre szabott számviteli jelentések készítésére szolgálnak majd. +GroupBySubAccountAccounting=Alkönyvi számla szerinti csoportosítás +AccountingAccountGroupsDesc=Itt meghatározhatja a számviteli számlák néhány csoportját. Személyre szabott számviteli jelentések készítésére szolgálnak majd. ByAccounts=Számlák szerint ByPredefinedAccountGroups=Előre meghatározott csoportok szerint ByPersonalizedAccountGroups=Személyre szabott csoportok szerint ByYear=Év szerint NotMatch=Nincs beállítva -DeleteMvt=Néhány műveletsor törlése a könyvelésből +DeleteMvt=Néhány műveletsor törlése a számvitelből DelMonth=A törlés hónapja DelYear=A törlés éve -DelJournal=Törlendő napló +DelJournal=A törlés naplója ConfirmDeleteMvt=Ez törli a könyvelés összes műveletsorát az év/hónap és/vagy egy adott napló esetében (legalább egy feltétel szükséges). Újra fel kell használnia a „%s” szolgáltatást, hogy a törölt rekord visszakerüljön a főkönyvbe. -ConfirmDeleteMvtPartial=Ez törli a tranzakciót a könyvelésből (az ugyanahhoz a tranzakcióhoz kapcsolódó összes műveletsor törlődik) -FinanceJournal=Pénzügyi folyóirat +ConfirmDeleteMvtPartial=Ez törli a tranzakciót a számvitelből (az ugyanahhoz a tranzakcióhoz kapcsolódó összes műveletsor törlődik) +FinanceJournal=Pénzügyi napló ExpenseReportsJournal=Költségjelentési napló DescFinanceJournal=Pénzügyi napló, amely tartalmazza a bankszámlánkénti fizetések összes típusát -DescJournalOnlyBindedVisible=Ez egy könyvelési számlához kötött rekord nézet, amely rögzíthető a naplókban és a főkönyvben. +DescJournalOnlyBindedVisible=Ez egy számvitelii számlához kötött rekord nézet, amely rögzíthető a naplókban és a főkönyvben. VATAccountNotDefined=Nincs megadva az áfa-számla -ThirdpartyAccountNotDefined=Harmadik fél fiókja nincs meghatározva -ProductAccountNotDefined=A termék fiókja nincs megadva -FeeAccountNotDefined=Számla a díjhoz nincs meghatározva +ThirdpartyAccountNotDefined=Harmadik fél számlája nincs meghatározva +ProductAccountNotDefined=A termék számlája nincs megadva +FeeAccountNotDefined=A díj számlája nincs meghatározva BankAccountNotDefined=A bank számla nincs megadva -CustomerInvoicePayment=Számlázó ügyfél fizetése -ThirdPartyAccount=Harmadik fél fiókja +CustomerInvoicePayment=Ügyfél számla fizetése +ThirdPartyAccount=Harmadik fél számlája NewAccountingMvt=Új tranzakció NumMvts=Tranzakciók száma ListeMvts=Mozgások listája ErrorDebitCredit=A terhelésnek és a jóváírásnak nem lehet egyszerre értéke -AddCompteFromBK=Számviteli fiókok hozzáadása a csoporthoz -ReportThirdParty=Harmadik féltől származó fiókok listázása -DescThirdPartyReport=Itt megtekintheti a harmadik féltől származó ügyfelek és szállítók listáját, valamint könyvelési fiókjaikat -ListAccounts=A könyvelési számlák listája -UnknownAccountForThirdparty=Ismeretlen harmadik fél fiókja. %s-t fogunk használni -UnknownAccountForThirdpartyBlocking=Ismeretlen harmadik fél fiókja. Blokkolás hiba -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Alkönyvi fiók nincs megadva, vagy harmadik fél vagy felhasználó ismeretlen. %s-t fogunk használni -ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Harmadik fél ismeretlen és alkönyvtár nincs megadva a fizetésen. Az alkönyvi számla értékét üresen fogjuk hagyni. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Alkönyvi fiók nincs megadva, vagy harmadik fél vagy felhasználó ismeretlen. Blokkolás hiba. -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Ismeretlen harmadik féltől származó fiók és várakozó fiók nincs megadva. Blokkolás hiba +AddCompteFromBK=Számviteli számlák hozzáadása a csoporthoz +ReportThirdParty=Harmadik féltől származó számlák listázása +DescThirdPartyReport=Itt megtekintheti a harmadik féltől származó ügyfelek és szállítók listáját, valamint számviteli számláikat +ListAccounts=A számviteli számlák listája +UnknownAccountForThirdparty=Ismeretlen harmadik fél számlája. %s-t fogunk használni +UnknownAccountForThirdpartyBlocking=Ismeretlen harmadik fél számlája. Blokkolás hiba +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Alkönyvi számla nincs megadva, vagy harmadik fél vagy felhasználó ismeretlen. %s-t fogunk használni +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Harmadik fél ismeretlen és alkönyv nincs megadva a fizetésen. Az alkönyvi számla értékét üresen fogjuk hagyni. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Alkönyvi számla nincs megadva, vagy harmadik fél vagy felhasználó ismeretlen. Blokkolás hiba. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Ismeretlen harmadik féltől származó számla és várakozó számla nincs megadva. Blokkolás hiba PaymentsNotLinkedToProduct=A fizetés semmilyen termékhez/szolgáltatáshoz nem kapcsolódik OpeningBalance=Nyitó egyenleg -ShowOpeningBalance=Nyitóegyenleg megjelenítése -HideOpeningBalance=Nyitóegyenleg elrejtése +ShowOpeningBalance=Nyitó egyenleg megjelenítése +HideOpeningBalance=Nyitó egyenleg elrejtése ShowSubtotalByGroup=Részösszeg megjelenítése szint szerint -Pcgtype=Fiókcsoport -PcgtypeDesc=A számlacsoport előre meghatározott "szűrő" és "csoportosítás" kritériumként használatos egyes számviteli jelentések esetében. Például a „BEVEZETÉS” vagy „KIADÁS” csoportként használatos a termékek számviteli számláihoz a kiadás/bevétel jelentés összeállításához. +Pcgtype=Számla csoport +PcgtypeDesc=A számlacsoport előre meghatározott "szűrő" és "csoportosítás" kritériumként használatos egyes számviteli jelentések esetében. Például a „BEVÉTEL” vagy „KIADÁS” csoportként használatos a termékek számviteli számláihoz a kiadás/bevétel jelentés összeállításához. Reconcilable=Kibékíthető TotalVente=Teljes forgalom adózás előtt TotalMarge=Teljes értékesítési árrés -DescVentilCustomer=Itt megtekintheti a termékkönyvelési fiókhoz kötött (vagy nem) ügyfélszámla sorok listáját -DescVentilMore=A legtöbb esetben, ha előre definiált termékeket vagy szolgáltatásokat használ, és beállítja a számlaszámot a termék-/szolgáltatáskártyán, az alkalmazás képes lesz minden kötést elvégezni a számla sorai és a számlatükör könyvelési számlája között, egyetlen kattintással a „%s” gombbal. Ha a fiók nincs beállítva a termék-/szolgáltatáskártyákon, vagy még mindig vannak olyan sorai, amelyek nincsenek fiókhoz kötve, kézi összerendelést kell végrehajtania a „%s” menüből. -DescVentilDoneCustomer=Itt megtekintheti a vevők számlasorait és termékkönyvelési fiókját -DescVentilTodoCustomer=Számlasorok kötése, amelyek még nem kötöttek egy termékkönyvelési fiókhoz -ChangeAccount=Módosítsa a termék/szolgáltatás könyvelési fiókját a kiválasztott sorokhoz a következő könyvelési fiókkal: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Itt megtekintheti a szállítói számlasorok listáját, amelyek egy termékkönyvelési számlához kötöttek vagy még nem kötöttek (csak a könyvelésbe még át nem vitt rekordok láthatók) -DescVentilDoneSupplier=Itt megtekintheti a szállítói számlák sorainak listáját és a könyvelési fiókjukat +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) +DescVentilDoneSupplier=Itt megtekintheti a szállítói számlák sorainak listáját és a számviteli számlájukat DescVentilTodoExpenseReport=Költségjelentési sorok kötése, amelyek még nincsenek kötve díjszámla számlával DescVentilExpenseReport=Itt megtekintheti a költségelszámolási számlához kötött (vagy nem) költségjelentési sorok listáját -DescVentilExpenseReportMore=Ha a számviteli számlát a költségjelentés-sorokhoz állítja be, az alkalmazás egyetlen kattintással, a gomb megnyomásával képes lesz az összes kötést a költségjelentés sorai és a számlatükör számlaszámla között létrehozni. %s". Ha a fiók nincs beállítva a díjszótárban, vagy ha még mindig vannak olyan sorai, amelyek nem kötöttek egy fiókhoz sem, kézi összerendelést kell végrehajtania a „%s” menüből. +DescVentilExpenseReportMore=Ha a számviteli számlát a költségjelentés-sorokhoz állítja be, az alkalmazás egyetlen kattintással, a gomb megnyomásával képes lesz az összes kötést a költségjelentés sorai és a számlatükör számviteli számla között létrehozni. %s". Ha a számla nincs beállítva a díj szótárban, vagy ha még mindig vannak olyan sorai, amelyek nem kötöttek egy számlához sem, kézi összerendelést kell végrehajtania a „%s” menüből. DescVentilDoneExpenseReport=Itt megtekintheti a költségjelentések sorainak listáját és a díjak elszámolási számláját Closure=Éves zárás -DescClosure=Tekintse meg itt a még nem érvényesített és zárolatlan mozgások számát havi bontásban +DescClosure=Itt tekintheti meg a még nem érvényesített és zárolt mozgások számát havi bontásban OverviewOfMovementsNotValidated=Nem érvényesített és zárolt mozgások áttekintése AllMovementsWereRecordedAsValidated=Minden mozgást érvényesítettként és zárolva rögzítettünk NotAllMovementsCouldBeRecordedAsValidated=Nem minden mozgást lehetett érvényesítettként és zároltként rögzíteni -ValidateMovements=A mozgások érvényesítése -DescValidateMovements=Az írás, betűk és törlések bármilyen módosítása vagy törlése tilos. A gyakorlatra minden nevezést érvényesíteni kell, különben a bezárás nem lehetséges +ValidateMovements=Mozgások érvényesítése és zárolása... +DescValidateMovements=Az írások, betűk és törlések bármilyen módosítása vagy törlése tilos. Egy gyakorlatra minden bejegyzést érvényesíteni kell, különben a zárás nem lehetséges ValidateHistory=Automatikus kötés AutomaticBindingDone=Automatikus összerendelés megtörtént (%s) - Az automatikus kötés bizonyos rekordokhoz (%s) nem lehetséges -ErrorAccountancyCodeIsAlreadyUse=Hiba, nem törölheti ezt a fiókot, mert használatban van +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=A mozgás nem megfelelően kiegyensúlyozott. Terhelés = %s és jóváírás = %s Balancing=Egyensúlyozás FicheVentilation=Kötőkártya GeneralLedgerIsWritten=A tranzakciók a főkönyvbe vannak írva GeneralLedgerSomeRecordWasNotRecorded=Néhány tranzakciót nem lehetett naplózni. Ha nincs más hibaüzenet, ez valószínűleg azért van, mert már naplózva voltak. NoNewRecordSaved=Nincs több rekord átvitelre -ListOfProductsWithoutAccountingAccount=A könyvelési fiókhoz nem kötött termékek listája +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Módosítsa a kötést -Accounted=Kiszámolva a főkönyvben +Accounted=Főkönyvben elszámolva NotYetAccounted=Még nem került át a könyvelésbe ShowTutorial=Oktatóanyag megjelenítése NotReconciled=Nincs egyeztetve -WarningRecordWithoutSubledgerAreExcluded=Figyelmeztetés, minden alkönyvi fiók definiálása nélküli művelet kiszűrésre kerül, és ki van zárva ebből a nézetből +WarningRecordWithoutSubledgerAreExcluded=Figyelmeztetés, minden alkönyvi számla definiálása nélküli művelet kiszűrésre kerül, és ki van zárva ebből a nézetből AccountRemovedFromCurrentChartOfAccount=Számviteli számla, amely nem létezik az aktuális számlatükörben ## Admin BindingOptions=Kötési beállítások ApplyMassCategories=Tömegkategóriák alkalmazása -AddAccountFromBookKeepingWithNoCategories=A rendelkezésre álló fiók még nem szerepel a személyre szabott csoportban -CategoryDeleted=A könyvelési fiók kategóriája eltávolítva +AddAccountFromBookKeepingWithNoCategories=A rendelkezésre álló számla még nem szerepel a személyre szabott csoportban +CategoryDeleted=A számviteli számla kategóriája eltávolítva AccountingJournals=Számviteli naplók AccountingJournal=Számviteli napló NewAccountingJournal=Új számviteli napló ShowAccountingJournal=Számviteli napló megjelenítése -NatureOfJournal=A folyóirat természete +NatureOfJournal=A napló jellege AccountingJournalType1=Vegyes műveletek AccountingJournalType2=Értékesítés AccountingJournalType3=Vásárlások AccountingJournalType4=Bank -AccountingJournalType5=Költségjelentés -AccountingJournalType8=Készlet +AccountingJournalType5=Költségjelentések +AccountingJournalType8=Leltár AccountingJournalType9=Új +GenerationOfAccountingEntries=Számviteli tételek generálása ErrorAccountingJournalIsAlreadyUse=Ez a napló már használatban van -AccountingAccountForSalesTaxAreDefinedInto=Megjegyzés: A forgalmi adó könyvelési fiókja a %s - %s menüben van meghatározva +AccountingAccountForSalesTaxAreDefinedInto=Megjegyzés: A forgalmi adó számviteli számlája a %s - %s menüben van meghatározva NumberOfAccountancyEntries=Bejegyzések száma NumberOfAccountancyMovements=Mozgások száma -ACCOUNTING_DISABLE_BINDING_ON_SALES=A kötés és átvitel letiltása az értékesítési könyvelésben (az ügyfél számláit nem veszik figyelembe a könyvelésben) -ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=A bekötés és az átvitel letiltása a vásárlások könyvelésében (a szállítói számlák nem lesznek figyelembe véve a könyvelésben) -ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=A kötés és átvitel letiltása a könyvelésben a költségjelentéseken (a költségjelentéseket nem veszik figyelembe a könyvelésben) +ACCOUNTING_DISABLE_BINDING_ON_SALES=A kötés és az átvitel letiltása az értékesítési könyvelésben (az ügyfél számláit nem veszik figyelembe a könyvelésben) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=A kötés és az átvitel letiltása a vásárlások könyvelésében (a szállítói számlák nem lesznek figyelembe véve a könyvelésben) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=A kötés és az átvitel letiltása a könyvelésben a költségjelentéseken (a költségjelentéseket nem veszik figyelembe a könyvelésben) +ACCOUNTING_ENABLE_LETTERING=Engedélyezze a feliratozás funkciót a számvitelben ## Export -NotifiedExportDate=Az exportált sorok megjelölése exportáltként (a sorok módosítása nem lehetséges) -NotifiedValidationDate=Érvényesítse az exportált bejegyzéseket (a sorok módosítása vagy törlése nem lehetséges) +NotExportLettering=Ne exportálja a betűket a fájl létrehozásakor +NotifiedExportDate=Az exportált sorok megjelölése Exportáltként (egy sor módosításához törölnie kell a teljes tranzakciót, és újra át kell vinnie a könyvelésbe) +NotifiedValidationDate=Érvényesítse és zárolja az exportált bejegyzéseket (ugyanaz a hatás, mint az "%s" funkciónál, a sorok módosítása és törlése BIZTOSAN nem lehetséges) DateValidationAndLock=Dátumellenőrzés és zárolás ConfirmExportFile=A számviteli exportfájl létrehozásának megerősítése? -ExportDraftJournal=Vázlatos napló exportálása +ExportDraftJournal=Naplótervezet exportálása Modelcsv=Export modell Selectmodelcsv=Válassza ki az exportálási modellt Modelcsv_normal=Klasszikus export @@ -354,7 +363,7 @@ Modelcsv_configurable=Konfigurálható CSV exportálása Modelcsv_FEC=FEC exportálása Modelcsv_FEC2=FEC exportálása (Dátumgenerálás írásával / dokumentum megfordításával) Modelcsv_Sage50_Swiss=Exportálás a Sage 50 Svájc számára -Modelcsv_winfic=Exportálás a Winfichez - eWinfic - WinSis Compta +Modelcsv_winfic=Exportálás a Winfichez - eWinfic - WinSis Compta-hoz Modelcsv_Gestinumv3=Exportálás a Gestinumhoz (v3) Modelcsv_Gestinumv5=Exportálás a Gestinumhoz (v5) Modelcsv_charlemagne=Exportálás az Aplim Charlemagne-hoz @@ -362,34 +371,34 @@ ChartofaccountsId=Számladiagram azonosítója ## Tools - Init accounting account on product / service InitAccountancy=Könyvelés inicializálása -InitAccountancyDesc=Ez az oldal olyan termékek és szolgáltatások könyvelési fiókjának inicializálására használható, amelyek nem rendelkeznek az értékesítéshez és a vásárláshoz meghatározott számviteli fiókkal. -DefaultBindingDesc=Ezen az oldalon lehet beállítani egy alapértelmezett fiókot a fizetések, adományozás, adók és áfa tranzakciós rekordjainak összekapcsolásához, ha még nem volt beállítva konkrét könyvelési számla. +InitAccountancyDesc=Ez az oldal olyan termékek és szolgáltatások számviteli számlájának inicializálására használható, amelyek nem rendelkeznek az értékesítéshez és a vásárláshoz meghatározott számviteli számlával. +DefaultBindingDesc=Ezen az oldalon beállíthat egy alapértelmezett számlát, amellyel összekapcsolhatja a fizetésekkel, adományokkal, adókkal és áfával kapcsolatos tranzakciós rekordokat, ha még nincs beállítva konkrét számviteli számla. DefaultClosureDesc=Ez az oldal használható a könyvelés lezárásához használt paraméterek beállítására. Options=Opciók OptionModeProductSell=Mód értékesítés OptionModeProductSellIntra=EEC-ben exportált mód OptionModeProductSellExport=Más országokba exportált értékesítési módok -OptionModeProductBuy=Módos vásárlások -OptionModeProductBuyIntra=EEC-ben importált vásárlások módban -OptionModeProductBuyExport=Más országokból importált mód vásárolt -OptionModeProductSellDesc=Az összes termék megjelenítése az értékesítés könyvelési fiókjával. -OptionModeProductSellIntraDesc=Az összes termék megjelenítése az EGK-beli értékesítés könyvelési számlájával. -OptionModeProductSellExportDesc=Az összes termék megjelenítése az egyéb külföldi értékesítések könyvelési számlájával. -OptionModeProductBuyDesc=Minden termék megjelenítése a vásárlások könyvelési fiókjával. -OptionModeProductBuyIntraDesc=Az összes termék megjelenítése az EGK-ban történő vásárlások könyvelési számlájával. -OptionModeProductBuyExportDesc=Minden termék megjelenítése könyvelési számlával az egyéb külföldi vásárlásokhoz. -CleanFixHistory=Távolítsa el a könyvelési kódot a nem létező sorokból a számlatükörből +OptionModeProductBuy=Vásárlások módjai +OptionModeProductBuyIntra=EEC-ben importált vásárlások módjai +OptionModeProductBuyExport=Más országokból importált vásárlási módok +OptionModeProductSellDesc=Az összes termék megjelenítése az értékesítés számviteli számlájával. +OptionModeProductSellIntraDesc=Az összes termék megjelenítése az EGK-beli értékesítés számvitelii számlájával. +OptionModeProductSellExportDesc=Az összes termék megjelenítése az egyéb külföldi értékesítések számvitelii számlájával. +OptionModeProductBuyDesc=Minden termék megjelenítése a vásárlások számviteli számlájával. +OptionModeProductBuyIntraDesc=Az összes termék megjelenítése az EGK-ban történő vásárlások számviteli számlájával. +OptionModeProductBuyExportDesc=Minden termék megjelenítése számviteli számlával az egyéb külföldi vásárlásokhoz. +CleanFixHistory=Távolítsa el a számviteli kódot a számlatükör nem létező soraiból CleanHistory=A kiválasztott év összes kötésének visszaállítása PredefinedGroups=Előre meghatározott csoportok -WithoutValidAccount=Érvényes dedikált fiók nélkül -WithValidAccount=Érvényes dedikált fiókkal -ValueNotIntoChartOfAccount=A könyvelési számla értéke nem szerepel a számlatükörben -AccountRemovedFromGroup=A fiók eltávolítva a csoportból +WithoutValidAccount=Érvényes dedikált számla nélkül +WithValidAccount=Érvényes dedikált számlákka +ValueNotIntoChartOfAccount=A számviteli számla értéke nem szerepel a számlatükörben +AccountRemovedFromGroup=A számla eltávolítva a csoportból SaleLocal=Helyi értékesítés SaleExport=Export értékesítés SaleEEC=Eladó az EGK-ban -SaleEECWithVAT=Akció az EGK-ban áfával, nem nullával, ezért feltételezzük, hogy ez NEM közösségen belüli értékesítés, és a javasolt fiók a szabványos termékszámla. -SaleEECWithoutVATNumber=EGK-ban áfa nélkül, de a harmadik fél áfaazonosítója nincs megadva. A szokásos értékesítéseknél a termékszámlára térünk vissza. Szükség esetén javíthatja a harmadik fél vagy a termékfiók áfaazonosítóját. +SaleEECWithVAT=Az EGK-ban történő értékesítés áfával nem nulla, ezért feltételezzük, hogy ez NEM közösségen belüli értékesítés, és a javasolt számla a szabványos termékszámla. +SaleEECWithoutVATNumber=Az EGK-ban történő értékesítés áfa nélkül, de a harmadik fél áfaazonosítója nincs meghatározva. A szokásos értékesítéseknél a termékszámlát használjuk. Szükség esetén javíthatja a harmadik fél vagy a termékszámla áfaazonosítóját. ForbiddenTransactionAlreadyExported=Tiltott: A tranzakciót ellenőrizték és/vagy exportálták. ForbiddenTransactionAlreadyValidated=Tiltott: A tranzakció érvényesítése megtörtént. ## Dictionary @@ -398,7 +407,11 @@ Calculated=Kiszámított Formula=Képlet ## Reconcile +LetteringAuto=Automatikus egyeztetés +LetteringManual=Kézi egyeztetés Unlettering=Egyeztetetlen +UnletteringAuto=Automatikusan egyeztethetetlen +UnletteringManual=Kézzel egyeztethetetlen AccountancyNoLetteringModified=Nincs egyeztetés módosítva AccountancyOneLetteringModifiedSuccessfully=Egy egyeztetés sikeresen módosítva AccountancyLetteringModifiedSuccessfully=%s egyeztetés sikeresen módosítva @@ -407,26 +420,28 @@ AccountancyOneUnletteringModifiedSuccessfully=Egy egyeztetetlen sikeresen módos AccountancyUnletteringModifiedSuccessfully=%s egyeztetetlen sikeresen módosítva ## Confirm box -ConfirmMassUnlettering=Tömeges egyeztetetlen visszaigazolása +ConfirmMassUnletteringAuto=Tömeges automatikus egyeztetés megerősítése +ConfirmMassUnletteringManual=Tömeges kézi egyeztetés visszaigazolása ConfirmMassUnletteringQuestion=Biztosan meg akarja szüntetni az %s kiválasztott rekord(ok) egyeztetését? ConfirmMassDeleteBookkeepingWriting=Tömeges törlés megerősítése ConfirmMassDeleteBookkeepingWritingQuestion=Ezzel törli a tranzakciót a könyvelésből (az ugyanahhoz a tranzakcióhoz kapcsolódó összes sor törlődik) Biztosan törölni szeretné az %s kiválasztott rekordo(ka)t? ## Error SomeMandatoryStepsOfSetupWereNotDone=A beállítás néhány kötelező lépése nem történt meg, kérjük, végezze el őket -ErrorNoAccountingCategoryForThisCountry=Nincs elérhető számviteli fiókcsoport a következő országhoz: %s (Lásd Főoldal - Beállítás - Szótárak) -ErrorInvoiceContainsLinesNotYetBounded=Megpróbálja naplózni a %s számla néhány sorát, de néhány más sor még nincs könyvelési fiókhoz kötve. A számlához tartozó összes számlasor naplózása elutasításra kerül. -ErrorInvoiceContainsLinesNotYetBoundedShort=A számla egyes sorai nincsenek a könyvelési számlához kötve. +ErrorNoAccountingCategoryForThisCountry=Nincs elérhető számviteli számlacsoport a következő országhoz: %s (Lásd Főoldal - Beállítás - Szótárak) +ErrorInvoiceContainsLinesNotYetBounded=Megpróbálja naplózni a számla néhány sorát %s , de néhány más sor még nincs a számviteli számlához kötve. A számlához tartozó összes számlasor naplózása elutasításra kerül. +ErrorInvoiceContainsLinesNotYetBoundedShort=A számla egyes sorai nincsenek számviteli számlához kötve. ExportNotSupported=A beállított exportformátum nem támogatott ezen az oldalon -BookeppingLineAlreayExists=A könyvelésben már létező sorok +BookeppingLineAlreayExists=A könyvelésben már meglévő sorok NoJournalDefined=Nincs napló meghatározva Binded=Sorok kötve ToBind=Kikötendő sorok -UseMenuToSetBindindManualy=A sorok még nincsenek bekötve, használja a %s menüt a kötéshez manuálisan +UseMenuToSetBindindManualy=A sorok még nincsenek bekötve, az %s menü segítségével hajtsa végre a manuális kötést SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sajnos ez a modul nem kompatibilis a szituációs számlák kísérleti funkciójával AccountancyErrorMismatchLetterCode=Nem egyezik az egyeztető kód AccountancyErrorMismatchBalanceAmount=Az egyenleg (%s) nem egyenlő 0-val AccountancyErrorLetteringBookkeeping=Hibák történtek a következő tranzakciókkal kapcsolatban: %s +ErrorAccountNumberAlreadyExists=Az %s számviteli szám már létezik ## Import ImportAccountingEntries=Számviteli bejegyzések @@ -436,10 +451,10 @@ FECFormatJournalLabel=Címkenapló (JournalLib) FECFormatEntryNum=Darabszám (EcritureNum) FECFormatEntryDate=Darab dátuma (EcritureDate) FECFormatGeneralAccountNumber=Általános számlaszám (CompteNum) -FECFormatGeneralAccountLabel=Általános fiókcímke (CompteLib) +FECFormatGeneralAccountLabel=Általános számlacímke (CompteLib) FECFormatSubledgerAccountNumber=Alkönyvi számlaszám (CompAuxNum) FECFormatSubledgerAccountLabel=Alkönyvi számlaszám (CompAuxLib) -FECFormatPieceRef=Darab ref (PieceRef) +FECFormatPieceRef=Darab hiv (PieceRef) FECFormatPieceDate=Dátum létrehozása (PieceDate) FECFormatLabelOperation=Címkeművelet (EcritureLib) FECFormatDebit=Terhelés (terhelés) @@ -451,8 +466,7 @@ FECFormatMulticurrencyAmount=Többvaluta összeg (Montdevise) FECFormatMulticurrencyCode=Több pénznem kódja (ötlet) DateExport=Dátum exportálás -WarningReportNotReliable=Figyelem, ez a jelentés nem a Főkönyvön alapul, így nem tartalmaz a Főkönyvben kézzel módosított tranzakciót. Ha a naplózása naprakész, a könyvelési nézet pontosabb. +WarningReportNotReliable=Figyelem, ez a jelentés nem a Főkönyvön alapul, így nem tartalmaz a Főkönyvben kézzel módosított tranzakciót. Ha a naplózás naprakész, a könyvelési nézet pontosabb. ExpenseReportJournal=Költségjelentési napló -InventoryJournal=Léttári napló -NAccounts=%s fiók +NAccounts=%s számlák diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index d98168ad193..989bba0ff00 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Ügyfél karakterkészlet egyeztetés WarningModuleNotActive=A %s modult engedélyezni kell WarningOnlyPermissionOfActivatedModules=Csak az aktivált modulokkal kacsolatos jogosultságok jelennek meg itt. A többi modul a Home->Beállítás->Modulok oldalon aktiválható. DolibarrSetup=A Dolibarr telepítése vagy frissítése -InternalUser=Belső felhasználó -ExternalUser=Külső felhasználó InternalUsers=Belső felhasználók ExternalUsers=Külső felhasználók UserInterface=Felhasználói felület @@ -109,7 +107,7 @@ NextValueForReplacements=Következő érték (pótlások) MustBeLowerThanPHPLimit=Megjegyzés: a PHP konfigurációja jelenleg korlátozza a feltöltés maximális fájlméretét %s %s, függetlenül a paraméter értékétől NoMaxSizeByPHPLimit=Megjegyzés: A PHP konfigurációban nincs beállítva korlátozás MaxSizeForUploadedFiles=A feltöltött fájlok maximális mérete (0 megtiltja a feltöltést) -UseCaptchaCode=Grafikus kód (CAPTCHA) használata a bejelentkezési oldalon +UseCaptchaCode=Használjon grafikus kódot (CAPTCHA) a bejelentkezési oldalon és néhány nyilvános oldalon AntiVirusCommand=A vírusirtó parancs teljes elérési útvonala AntiVirusCommandExample=Példa ClamAv démonra (clamav-démon szükséges): /usr/bin/clamdscan
    Példa ClamWin-re (nagyon nagyon lassú): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= A parancssor további paraméterei @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (alapértelmezett érték a php.ini fáj MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS port (Unix-szerű rendszerekben nincs meghatározva a PHP-ben) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Unix-szerű rendszerekben nincs meghatározva a PHP-ben) MAIN_MAIL_EMAIL_FROM=Küldő e-mail automatikus e-mailekhez (alapértelmezett érték a php.ini-ben: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=A kézbesítési hibához használt e-mail cím (az elküldött e-mailek „Errors-To” mezői) MAIN_MAIL_AUTOCOPY_TO= Az összes elküldött e-mail másolása (Bcc) MAIN_DISABLE_ALL_MAILS=Az összes e-mail küldés letiltása (teszt vagy demók céljából) @@ -439,8 +438,10 @@ Unique=Egyedi Boolean=Logikai érték (egy jelölőnégyzet) ExtrafieldPhone = Telefon ExtrafieldPrice = Ár +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = E-mail ExtrafieldUrl = Cím +ExtrafieldIP = IP ExtrafieldSelect = Kiválasztó lista ExtrafieldSelectList = Válassz a táblából ExtrafieldSeparator=Elválasztó (nem mező) @@ -477,7 +478,7 @@ InstalledInto=Telepítve az %s könyvtárba BarcodeInitForThirdparties=Tömeges vonalkód készítése partnereknek BarcodeInitForProductsOrServices=A termékek vagy szolgáltatások tömeges vonalkód-indítása vagy visszaállítása CurrentlyNWithoutBarCode=Jelenleg %s rekord van az %s %s vonalkód nélkül. -InitEmptyBarCode=A következő %s üres rekord kezdeti értéke +InitEmptyBarCode=A(z) %s üres vonalkód kezdőértéke EraseAllCurrentBarCode=Törölje az összes jelenlegi vonalkód-értéket ConfirmEraseAllCurrentBarCode=Biztosan törli az összes jelenlegi vonalkód-értéket? AllBarcodeReset=Az összes vonalkód-érték eltávolítva @@ -501,10 +502,11 @@ WarningPHPMail=FIGYELMEZTETÉS: Az e-mailek alkalmazásból történő küldés WarningPHPMailA=- Az e-mail szolgáltató szerverének használata növeli az e-mailek megbízhatóságát, így növeli a kézbesíthetőséget anélkül, hogy SPAM-ként jelölnék meg WarningPHPMailB=- Egyes e-mail szolgáltatók (például a Yahoo) nem engedélyezik, hogy e-mailt küldjön a saját szerverüktől eltérő szerverről. A jelenlegi beállítás az alkalmazás szerverét használja az e-mailek küldésére, nem pedig az e-mail szolgáltató szerverét, így néhány címzett (amely kompatibilis a korlátozó DMARC protokollal) megkérdezi az e-mail szolgáltatóját, hogy elfogadják-e az Ön e-mailjeit, és néhány e-mail szolgáltató. (mint a Yahoo) nemmel válaszolhat, mert a szerver nem az övék, így előfordulhat, hogy néhány elküldött e-mailt nem fogadunk el kézbesítésre (vigyázzon az e-mail szolgáltatója küldési kvótájára is). WarningPHPMailC=- A saját e-mail szolgáltatója SMTP szerverének használata e-mailek küldésére is megfelelő, így az alkalmazásból küldött összes e-mailt a postafiók "Elküldött" könyvtárába is elmentjük. -WarningPHPMailD=Ezért javasolt az e-mailek küldési módját az „SMTP” értékre módosítani. Ha valóban meg szeretné tartani az alapértelmezett „PHP” módszert az e-mailek küldéséhez, hagyja figyelmen kívül ezt a figyelmeztetést, vagy távolítsa el a MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstans 1-re állításával a Kezdőlap - Beállítás - Egyéb részben. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Ha az e-mail SMTP-szolgáltatójának bizonyos IP-címekre kell korlátoznia az e-mail klienst (nagyon ritka), akkor ez az ERP CRM-alkalmazás mail felhasználói ügynökének (MUA) IP-címe: %s. WarningPHPMailSPF=Ha a küldő e-mail címében szereplő domain nevet SPF rekord védi (kérdezze meg a domain név regisztrátorát), akkor a következő IP-címeket kell hozzáadnia a domain DNS SPF rekordjához: %s. -ActualMailSPFRecordFound=A tényleges SPF rekord itt található: %s +ActualMailSPFRecordFound=A tényleges SPF rekord található (a %s e-mailhez): %s ClickToShowDescription=Kattintson a leírás megjelenítéséhez DependsOn=Ehhez a modulhoz szükséges modul(ok) RequiredBy=Ezt a modult más modulok igénylik @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Példa:
    Az új harmadik felet létrehozó PageUrlForDefaultValuesList=
    Példa:
    A harmadik feleket felsoroló oldal esetében ez a %s.
    Az egyéni könyvtárba telepített külső modulok URL-címe esetén ne használja az "egyéni/"-t, így használjon egy elérési utat, például mymodule/mypagelist.php, és ne custom/mymodule/mypagelist.php.
    Ha csak akkor szeretne alapértelmezett értéket, ha az url-nek van valamilyen paramétere, akkor használja a %s parancsot. AlsoDefaultValuesAreEffectiveForActionCreate=Azt is vegye figyelembe, hogy az űrlapkészítés alapértelmezett értékeinek felülírása csak a helyesen megtervezett oldalakon működik (vagyis a paraméter action=create vagy presend ...) EnableDefaultValues=Az alapértelmezett értékek testreszabásának engedélyezése -EnableOverwriteTranslation=A felülírt fordítás használatának engedélyezése +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=A kódhoz tartozó kulcshoz fordítás található. Ezt az értéket a Kezdőlap-Beállítások-Fordítás menüben lehet megváltoztatni. WarningSettingSortOrder=Figyelem, az alapértelmezett rendezési sorrend beállítása technikai hibát okozhat, ha a listaoldalra lép, és egy mező ismeretlen. Ha ilyen hibát tapasztal, térjen vissza erre az oldalra az alapértelmezett rendezési sorrend eltávolításához és az alapértelmezett viselkedés visszaállításához. Field=Mező @@ -645,9 +647,9 @@ Module2400Name=Események/Naptár Module2400Desc=Események nyomonkövetése. Automatikus események naplózása nyomkövetési célokra, vagy a kézzel létrehozott események és találkozók rögzítése. Ez a fő modul a megfelelő ügyfél- vagy kereskedelmi kapcsolatkezeléshez. Module2500Name=DMS / ECM Module2500Desc=Dokumentumkezelő rendszer / elektronikus tartalomkezelés. A generált vagy tárolt dokumentumok automatikus szervezése. Ossza meg őket, amikor szükséges. -Module2600Name=API/Web szolgáltatások (SOAP szerver) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Engedélyezze az API szolgáltatásokat nyújtó Dolibarr SOAP szervert -Module2610Name=API / Web szolgáltatások (REST szerver) +Module2610Name=API / Web services (REST server) Module2610Desc=A Dolibarr REST API szerver engedélyezése Module2660Name=WebServices hívása (SOAP kliens) Module2660Desc=Engedélyezze a Dolibarr webszolgáltatási klienst (Használható adatok / kérések külső kiszolgálókra történő továbbításához. Jelenleg csak a megrendelések támogatottak.) @@ -698,6 +700,7 @@ Module62000Name=Nemzetközi kereskedelmi feltételek Module62000Desc=Funkciók hozzáadása a Nemzetközi kereskedelmi feltételek kezeléséhez Module63000Name=Erőforrások Module63000Desc=Az eseményekhez elosztandó erőforrások (nyomtatók, autók, helyiségek, ...) kezelése +Module94160Name=Átvételek Permission11=Olvassa vevői számlák Permission12=Létrehozza / módosítja vevői számlák Permission13=Érvénytelen vevői számlák @@ -714,6 +717,7 @@ Permission27=Törlés kereskedelmi javaslatok Permission28=Export üzleti ajánlatot Permission31=Olvassa termékek Permission32=Létrehozza / módosítja termékek +Permission33=Olvassa el a termékek árait Permission34=Törlés termékek Permission36=Lásd / kezelhetik rejtett termékek Permission38=Export termékek @@ -739,6 +743,7 @@ Permission79=Létrehozza / módosítja előfizetések Permission81=Olvassa el az ügyfelek megrendelések Permission82=Létrehozza / módosítja ügyfelek megrendelések Permission84=Érvényesítése az ügyfelek megrendelések +Permission85=Az értékesítési rendelések dokumentumainak létrehozása Permission86=Küldje ügyfelek megrendelések Permission87=Bezár az ügyfelek megrendelések Permission88=Mégsem ügyfelek megrendelések @@ -840,9 +845,9 @@ Permission286=Névjegyek exportálása Permission291=Olvassa tarifák Permission292=Engedélyek beállítása a tarifák Permission293=Módosítsa az ügyfelek tarifáit -Permission300=Vonalkódok olvasása -Permission301=Vonalkódok létrehozása/módosítása -Permission302=Vonalkódok törlése +Permission301=Generate PDF sheets of barcodes +Permission304=Vonalkódok létrehozása/módosítása +Permission305=Vonalkódok törlése Permission311=Olvassa szolgáltatások Permission312=Szolgáltatás/előfizetés hozzárendelése a szerződéshez Permission331=Olvassa könyvjelzők @@ -874,6 +879,7 @@ Permission525=Hozzáférés a hitelkalkulátorhoz Permission527=Export hitelek Permission531=Olvassa szolgáltatások Permission532=Létrehozza / módosítja szolgáltatások +Permission533=Olvassa el a szolgáltatások árait Permission534=Törlés szolgáltatások Permission536=Lásd még: / szolgáltatások kezelésére rejtett Permission538=Export szolgáltatások @@ -968,13 +974,14 @@ Permission3301=Új modulok létrehozása Permission4001=Képesség/munka/pozíció olvasása Permission4002=Képesség/munka/pozíció létrehozása/módosítása Permission4003=Képesség/munka/pozíció törlése -Permission4020=Értékelések olvasása -Permission4021=Az értékelés létrehozása/módosítása -Permission4022=Értékelés ellenőrzése -Permission4023=Értékelés törlése -Permission4030=Lásd az összehasonlító menüt +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Értékelés ellenőrzése +Permission4025=Értékelés törlése +Permission4028=Lásd az összehasonlító menüt Permission4031=Személyes adatokat olvasása Permission4032=Személyes adatokat írása +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Olvasd el a webhely tartalmát Permission10002=Webhelytartalom létrehozása/módosítása (html és javascript tartalom) Permission10003=Webhely tartalmának létrehozása/módosítása (dinamikus php kód). Veszélyes, korlátozott fejlesztőknek kell fenntartani. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Az eszközök elidegenítésének típusa TypeOfUnit=Az egység típusa SetupSaved=Beállítás mentett SetupNotSaved=A beállítás nincs elmentve +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Vissza a modulok listájához BackToDictionaryList=Vissza a szótárak listájához TypeOfRevenueStamp=Adóbélyegző típusa @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Egy konfigurációs konstans értéke ConstantIsOn=A %s opció be van kapcsolva NbOfDays=Napok száma AtEndOfMonth=A hónap végén -CurrentNext=Jelenlegi / Következő +CurrentNext=Egy adott nap a hónapban Offset=Offset AlwaysActive=Mindig aktív Upgrade=Upgrade @@ -1235,11 +1246,13 @@ BrowserName=Böngésző neve BrowserOS=Böngésző operációs rendszere ListOfSecurityEvents=Listája Dolibarr biztonsági események SecurityEventsPurged=Biztonsági események kitisztítják +TrackableSecurityEvents=Nyomon követhető biztonsági események LogEventDesc=Adott biztonsági események naplózásának engedélyezése. A napló adminisztrátora a %s - %s menün keresztül. Figyelmeztetés, ez a funkció nagy mennyiségű adatot generálhat az adatbázisban. AreaForAdminOnly=A beállítási paramétereket csak rendszergazdai felhasználók állíthatják be. SystemInfoDesc=Rendszer információk különféle műszaki információkat kapunk a csak olvasható módban, és csak rendszergazdák számára látható. SystemAreaForAdminOnly=Ez a terület csak a rendszergazda felhasználók számára érhető el. A Dolibarr felhasználói engedélyei nem módosíthatják ezt a korlátozást. CompanyFundationDesc=Szerkessze cége/szervezete adatait. Ha elkészült, kattintson a „%s” gombra az oldal alján. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Ha van külső könyvelője / könyvvizsgálója, itt szerkesztheti annak adatait. AccountantFileNumber=Könyvelői kód DisplayDesc=Az alkalmazás megjelenését és megjelenítését befolyásoló paraméterek itt módosíthatók. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Kell futtatni ezt a parancsot a YourPHPDoesNotHaveSSLSupport=SSL funkció nem áll rendelkezésre a PHP DownloadMoreSkins=További bőrök letöltése SimpleNumRefModelDesc=Visszaadja a hivatkozási számot %syymm-nnnn formátumban, ahol az yy az év, a mm a hónap és az nnnn egy szekvenciálisan növekvő szám, nullázás nélkül +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Visszaadja a hivatkozási számot %syymm-nnnn formátumban, ahol az yy az év, a mm a hónap és az nnnn egy szekvenciálisan növekvő szám, nullázás nélkül SimpleNumRefNoDateModelDesc=A hivatkozási számot adja vissza a következő formátumban: %s-nnnn, ahol az nnnn egy szekvenciális automatikusan növekvő szám nullázás nélkül ShowProfIdInAddress=Mutasson szakmai azonosítót címekkel ShowVATIntaInAddress=Közösségen belüli adószám elrejtése @@ -1376,7 +1391,7 @@ GetBarCode=Szerezzen vonalkódot NumberingModules=Számozási modellek DocumentModules=Dokumentummodellek ##### Module password generation -PasswordGenerationStandard=Belső Dolibarr algoritmus szerint generált jelszót ad vissza: %s karakter, amely megosztott számokat és kisbetűs karaktereket tartalmaz. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Nem javasolt a generált jelszó. A jelszót manuálisan kell beírni. PasswordGenerationPerso=Egy jelszóval tér vissza a személyes beállításoknak megfelelően. SetupPerso=A beállításainak megfelelően @@ -1430,6 +1445,10 @@ SuppliersPayment=Szállítói kifizetések SupplierPaymentSetup=Szállítói fizetések beállítása InvoiceCheckPosteriorDate=Ellenőrizze a gyártás dátumát az érvényesítés előtt InvoiceCheckPosteriorDateHelp=A számla érvényesítése tilos, ha annak dátuma korábbi, mint az utolsó azonos típusú számla dátuma. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=A kereskedelmi modul beállítási javaslatok ProposalsNumberingModules=Üzleti ajánlat számozási modulok @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Vízjel a szerződéstervezeteken (nincs, ha üres ##### Members ##### MembersSetup=Tagok modul beállítása MemberMainOptions=Fő opciók +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Készítsen egy Login minden tagja számára AdherentMailRequired=Új tag létrehozásához e-mail cím szükséges MemberSendInformationByMailByDefault=Checkbox levelet küldeni visszaigazolást a tagok (jóváhagyás vagy új előfizetés) alapértelmezés szerint be van MemberCreateAnExternalUserForSubscriptionValidated=Hozzon létre egy külső felhasználói bejelentkezést minden egyes érvényesített új tag-előfizetéshez -VisitorCanChooseItsPaymentMode=A látogató választhat az elérhető fizetési módok közül +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Engedélyezze az automatikus emlékeztetőt e-mailben a lejárt előfizetésekről. Megjegyzés: Az emlékeztetők küldéséhez a %s modult engedélyezni kell, és megfelelően be kell állítani. MembersDocModules=Dokumentumsablonok a tagrekordból generált dokumentumokhoz ##### LDAP setup ##### @@ -1737,10 +1757,10 @@ AdvancedEditor=Speciális szerkesztő ActivateFCKeditor=Aktiválja a fejlett szerkesztő: FCKeditorForNotePublic=Az elemek "nyilvános megjegyzései" mező WYSIWIG létrehozása/kiadása FCKeditorForNotePrivate=WYSIWIG létrehozása/kiadása az elemek "privát megjegyzései" mezőjének -FCKeditorForCompany=Az elemek mezőleírásának WYSIWIG létrehozása/kiadása (kivéve a termékek/szolgáltatások) -FCKeditorForProduct=A termékek/szolgáltatások mező leírásának WYSIWIG létrehozása/kiadása -FCKeditorForProductDetails=WYSIWIG termékrészletező sorok létrehozása/kiadása minden entitáshoz (ajánlatok, rendelések, számlák stb.). Figyelmeztetés: Ebben az esetben ennek a lehetőségnek a használata komolyan nem javasolt, mivel problémákat okozhat a speciális karakterekkel és az oldalformázással a PDF-fájlok létrehozásakor. -FCKeditorForMailing= WYSIWIG létrehozása / kiadás levelek +FCKeditorForCompany=Az elemek mező leírásának WYSIWIG létrehozása/kiadása (kivéve a termékek/szolgáltatások) +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForMailing= WYSIWIG létrehozása/kiadása tömeges e-mailekhez (Eszközök->e-mailezés) FCKeditorForUserSignature=WYSIWIG felhasználói aláírás létrehozása/kiadása FCKeditorForMail=WYSIWIG létrehozása/kiadása minden levélhez (kivéve az Eszközök->e-mailezés) FCKeditorForTicket=WYSIWIG létrehozása/kiadása jegyekhez @@ -1762,7 +1782,7 @@ DetailMenuHandler=Menü, ahol a kezelő jelzi az új menü DetailMenuModule=Modul neve, ha menübejegyzés származnak modul DetailType=Típusa menüben (fent vagy bal oldalt) DetailTitre=Menü címke vagy a címke kódját fordítás -DetailUrl=URL, ahol menüt küld (abszolút URL linket, vagy external link http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Feltétel megjelenítéséhez vagy belépési DetailRight=Feltétel megjeleníteni jogosulatlan szürke menük DetailLangs=Lang fájl nevét címke kód fordítást @@ -1799,9 +1819,9 @@ AccountancyCodeBuy=Vétel számviteli kódja CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=A „Befizetés automatikus létrehozása” jelölőnégyzet alapértelmezés szerint maradjon üresen új adó létrehozásakor ##### Agenda ##### AgendaSetup=Rendezvények és napirend modul beállítási -PasswordTogetVCalExport=Főbb kiviteli engedélyezésének linket +PasswordTogetVCalExport=Kulcs az exportálási link engedélyezéséhez SecurityKey = Biztonsági kulcs -PastDelayVCalExport=Ne export esetén, mint a régebbi +PastDelayVCalExport=Ne exportáljon régebbi eseményt mint AGENDA_USE_EVENT_TYPE=Eseménytípusok használata (a Beállítás menüben -> Szótárak -> A napirendi események típusai) AGENDA_USE_EVENT_TYPE_DEFAULT=Automatikusan állítsa be ezt az alapértelmezett értéket az eseménytípushoz az esemény létrehozási űrlapon AGENDA_DEFAULT_FILTER_TYPE=Az ilyen típusú események automatikus beállítása a napirend nézet keresési szűrőjében @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=A POS készletének csökkenése nem CashDeskYouDidNotDisableStockDecease=Nem tiltotta le a készletcsökkentést, amikor az értékesítési helyről értékesített. Ezért raktárra van szükség. CashDeskForceDecreaseStockLabel=A kötegelt termékek készletének csökkentése kényszerített. CashDeskForceDecreaseStockDesc=Csökkentse először a legrégebbi fogyasztási és eladási dátum szerint. -CashDeskReaderKeyCodeForEnter=A vonalkód olvasóban definiált "Enter" kulcskód (Példa: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Könyvjelző beállítása modul BookmarkDesc=Ez a modul lehetővé teszi a könyvjelzők kezelését. A bal oldali menüben parancsikonokat is hozzáadhat bármely Dolibarr oldalhoz vagy külső webhelyhez. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Szállítói számlaszámozási modellek IfSetToYesDontForgetPermission=Ha nem null értékre van állítva, ne felejtsen el engedélyeket megadni a második jóváhagyásra jogosult csoportoknak vagy felhasználóknak ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP MaxMind modul beállítása -PathToGeoIPMaxmindCountryDataFile=A Maxmind ip-t az országra fordítást tartalmazó fájl elérési útja.
    Példák:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr /share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Ne feledje, hogy az ip-országra adatfájl belül kell lennie egy könyvtárat a PHP tudja olvasni (Ellenőrizze a PHP open_basedir beállítás és fájlrendszer jogosultságok). YouCanDownloadFreeDatFileTo=Tudod letölt egy ingyenes demo verzió az MaxMind GeoIP ország fájlt %s. YouCanDownloadAdvancedDatFileTo=Le is tölthet egy teljes verzió, a frissítésekkel, a MaxMind GeoIP ország fájlt %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Varázsló az adatbázis dump fájl létrehozásához BackupZipWizard=Varázsló a dokumentumok könyvtárának archívumának létrehozásához SomethingMakeInstallFromWebNotPossible=A külső modul telepítése nem lehetséges a webes felületről a következő ok miatt: SomethingMakeInstallFromWebNotPossible2=Ebből az okból kifolyólag az itt leírt frissítési folyamat egy manuális folyamat, amelyet csak kiváltságos felhasználók hajthatnak végre. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=A rendszergazda letiltotta a külső modul alkalmazásból történő telepítését. A funkció engedélyezéséhez meg kell kérnie őt, hogy távolítsa el a(z) %s fájlt. ConfFileMustContainCustom=Külső modul alkalmazásból történő telepítéséhez vagy létrehozásához a modul fájljait a %s könyvtárba kell menteni. Ahhoz, hogy ezt a könyvtárat a Dolibarr feldolgozza, be kell állítania a conf/conf.php fájlt a 2 direktívasor hozzáadásához:
    $dolibarr_main_url_root_alt='/custom';< br>$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=A táblázat vonalainak kiemelése, amikor az egérmozdulat áthalad @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Nyomja meg a CTRL+F5 billentyűkombinációt a billenty NotSupportedByAllThemes=Alaptémákkal működik, külső témák esetleg nem támogatják BackgroundColor=Háttérszín TopMenuBackgroundColor=A felső menü háttérszíne -TopMenuDisableImages=Képek elrejtése a felső menüben +TopMenuDisableImages=Ikon vagy szöveg a felső menüben LeftMenuBackgroundColor=A bal oldali menü háttérszíne BackgroundTableTitleColor=A bal oldali menü háttérszíne BackgroundTableTitleTextColor=A táblázat címsorának szövegszíne @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Beszerzési rendelések MailToSendSupplierInvoice=Szállítói számlák MailToSendContract=Szerződések MailToSendReception=Fogadások +MailToExpenseReport=Költségjelentések MailToThirdparty=Partner MailToMember=Tagok MailToUser=Felhasználók @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF jobb margója MAIN_PDF_MARGIN_TOP=Felső margó a PDF-en MAIN_PDF_MARGIN_BOTTOM=Alsó margó a PDF-en MAIN_DOCUMENTS_LOGO_HEIGHT=A logó magassága PDF-ben +DOC_SHOW_FIRST_SALES_REP=Mutasd meg az első értékesítési képviselőt MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Oszlop hozzáadása a képhez az ajánlatsorokhoz MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Oszlop szélessége, ha kép van hozzáadva a sorokhoz MAIN_PDF_NO_SENDER_FRAME=Szegélyek elrejtése a küldő címkeretén @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Speciális karakterek eltávolítása COMPANY_AQUARIUM_CLEAN_REGEX=Regex szűrő a tiszta értékhez (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex szűrő az érték tisztításához (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikáció nem engedélyezett +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Adatvédelmi tiszt (adatvédelmi tisztviselő, adatvédelmi vagy GDPR kapcsolattartó) GDPRContactDesc=Ha személyes adatokat tárol az Információs Rendszerében, itt meg tudja nevezni az Általános Adatvédelmi Szabályzatért felelős kapcsolattartót HelpOnTooltip=Az eszköztippen megjelenő súgószöveg @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Megjegyzés: A forgalmi adó vagy áfa használatának lehetősé SwapSenderAndRecipientOnPDF=Cserélje fel a feladó és a címzett címét a PDF dokumentumokon FeatureSupportedOnTextFieldsOnly=Figyelem, a funkció csak szövegmezőkben és kombinált listákon támogatott. A funkció aktiválásához be kell állítani egy action=create vagy action=edit URL-paramétert is, VAGY az oldal nevének "new.php"-re kell végződnie. EmailCollector=E-mail gyűjtő +EmailCollectors=E-mail gyűjtők EmailCollectorDescription=Adjon hozzá egy ütemezett feladatot és egy beállítási oldalt az e-mail fiókok rendszeres ellenőrzéséhez (IMAP protokoll használatával), és rögzítse a kapott e-maileket az alkalmazásba, a megfelelő helyre, és/vagy automatikusan hozzon létre néhány rekordot (például leadeket). NewEmailCollector=Új e-mail gyűjtő EMailHost=E-mail IMAP szerver gazdája +EMailHostPort=Az e-mail IMAP-kiszolgáló portja +loginPassword=Bejelentkezés/Jelszó +oauthToken=Oauth2 token +accessType=Hozzáférés típusa +oauthService=Oauth szolgáltatás +TokenMustHaveBeenCreated=Engedélyezni kell az OAuth2 modult, és létre kell hozni egy oauth2 tokent a megfelelő jogosultságokkal (például „gmail_full” hatókörrel a Gmailhez készült OAuth segítségével). MailboxSourceDirectory=Postaláda forráskönyvtára MailboxTargetDirectory=Postaláda célkönyvtár EmailcollectorOperations=A gyűjtő által elvégzendő műveletek EmailcollectorOperationsDesc=A műveletek végrehajtása felülről lefelé haladva történik MaxEmailCollectPerCollect=A gyűjteményenként gyűjthető e-mailek maximális száma +TestCollectNow=Test collect CollectNow=Gyűjtse most ConfirmCloneEmailCollector=Biztosan klónozni szeretné az %s e-mail gyűjtőt? DateLastCollectResult=A legutóbbi gyűjtési kísérlet dátuma DateLastcollectResultOk=A legutóbbi sikeres gyűjtés dátuma LastResult=Legfrissebb eredmény EmailCollectorHideMailHeaders=Ne foglalja bele az e-mail fejléc tartalmát az összegyűjtött e-mailek mentett tartalmába -EmailCollectorHideMailHeadersHelp=Ha engedélyezve van, az e-mail fejlécek nem kerülnek az eseményként mentett e-mail tartalom végére. +EmailCollectorHideMailHeadersHelp=Ha engedélyezve van, az e-mail fejlécek nem kerülnek a napirendi eseményként mentett e-mail tartalom végére. EmailCollectorConfirmCollectTitle=E-mail gyűjtési megerősítés EmailCollectorConfirmCollect=Szeretnéd most működtetni ezt a gyűjtőt? EmailCollectorExampleToCollectTicketRequestsDesc=Gyűjtse össze az egyes szabályoknak megfelelő e-maileket, és hozzon létre automatikusan jegyet (a moduljegyet engedélyezni kell) az e-mail információival. Használhatja ezt a gyűjtőt, ha e-mailben nyújt támogatást, így a jegykérelme automatikusan generálásra kerül. Aktiválja a Collect_Responses funkciót is, hogy közvetlenül a jegynézetben gyűjtse össze ügyfele válaszait (a Dolibarrtól kell válaszolnia). EmailCollectorExampleToCollectTicketRequests=Példa a jegykérés összegyűjtésére (csak az első üzenet) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Vizsgálja át a postafiók "Elküldött" könyvtárát, hogy megtalálja azokat az e-maileket, amelyeket egy másik e-mail válaszaként küldtek közvetlenül az e-mail szoftveréből, és nem a Dolibarrtól. Ha ilyen e-mailt talál, a válasz eseményét rögzíti a Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Példa egy külső levelező szoftverből küldött e-mail válaszok összegyűjtésére -EmailCollectorExampleToCollectDolibarrAnswersDesc=Gyűjtse össze az összes olyan e-mailt, amely válasz az alkalmazásából küldött e-mailekre. Az e-mailes választ tartalmazó eseményt (a modul napirendjét engedélyezni kell) a megfelelő helyen rögzítjük. Például, ha Ön kereskedelmi ajánlatot, megrendelést, számlát vagy jegyüzenetet küld e-mailben az alkalmazásból, és az ügyfél válaszol az e-mailre, a rendszer automatikusan elkapja a választ, és hozzáadja az ERP-hez. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Gyűjtse össze az összes olyan e-mailt, amely válasz az alkalmazásából küldött e-mailekre. Az e-mail választ tartalmazó eseményt (a modul napirendjét engedélyezni kell) a megfelelő helyen rögzítjük. Ha például kereskedelmi ajánlatot, megrendelést, számlát vagy jegyüzenetet küld e-mailben az alkalmazásból, és a címzett válaszol az e-mailre, a rendszer automatikusan elkapja a választ, és hozzáadja az ERP-hez. EmailCollectorExampleToCollectDolibarrAnswers=Példa az összes bejövő üzenet összegyűjtésére, amely válasz a Dolibarrtól küldött üzenetekre. EmailCollectorExampleToCollectLeadsDesc=Gyűjtse össze a bizonyos szabályoknak megfelelő e-maileket, és hozzon létre automatikusan egy lehetőséget (a projekt modult engedélyezni kell) az e-mail információkkal. Használhatja ezt a gyűjtőt, ha követni szeretné a vezető szerepet a Projekt (1 lehetőség = 1 projekt) modul használatával, így a lehetőségek automatikusan generálásra kerülnek. Ha a Collect_Responses gyűjtő is be van kapcsolva, amikor e-mailt küld a potenciális ügyfelektől, ajánlatoktól vagy bármely más objektumtól, akkor közvetlenül az alkalmazáson is láthatja ügyfelei vagy partnerei válaszait.
    Megjegyzés: Ebben a kezdeti példában a lehetőség címe jön létre, beleértve az e-mailt is. Ha a harmadik fél nem található az adatbázisban (új ügyfél), a lehetőség az 1-es azonosítójú harmadik félhez lesz csatolva. EmailCollectorExampleToCollectLeads=Példa lehetőségek gyűjtésére @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Gyűjtse össze az állásajá EmailCollectorExampleToCollectJobCandidatures=Példa az e-mailben kapott álláspályázatok összegyűjtésére NoNewEmailToProcess=Nincs feldolgozandó új e-mail (megfelelő szűrők). NothingProcessed=Semmi sem történt -XEmailsDoneYActionsDone=%s e-mail minősítve, %s e-mail sikeresen feldolgozva (%s rekord/művelet kész) +XEmailsDoneYActionsDone=%s e-mailek előminősítettek, %s e-mailek sikeresen feldolgozva (az %s rekord/műveletek elvégzése esetén) RecordEvent=Esemény rögzítése a napirendben (az elküldött vagy fogadott e-mail típussal) CreateLeadAndThirdParty=Potenciális ügyfél (és szükség esetén harmadik fél) létrehozása CreateTicketAndThirdParty=Jegy létrehozása (harmadik félhez kapcsolva, ha a harmadik felet egy korábbi művelet töltötte be, vagy az e-mail fejlécében lévő nyomkövetőből származik, harmadik fél nélkül) @@ -2105,7 +2138,7 @@ CreateCandidature=Állással kapcsolatos jelentkezés létrehozása FormatZip=Zip MainMenuCode=Menü belépési kód (főmenü) ECMAutoTree=Automatikus ECM fa megjelenítése -OperationParamDesc=Határozza meg az értékek kibontásához vagy beállításához használandó szabályokat.
    Példa olyan műveletekre, amelyeknél nevet kell kivonni az e-mail tárgyából:
    name=EXTRACT:SUBJECT:Üzenet a cégtől ([^\n]*)< br>Példa objektumokat létrehozó műveletekre:
    objproperty1=SET:a beállítandó érték
    objproperty2=SET:a __objproperty1__ értékét tartalmazó érték
    objproperty3=SETIFEMPTY:érték akkor használatos, ha az objproperty3 még nincs megadva
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT :BODY:A cégem neve\\s([^\\s]*)

    Használjon egy ; char elválasztóként több tulajdonság kinyeréséhez vagy beállításához. +OperationParamDesc=Határozza meg azokat a szabályokat, amelyek alapján bizonyos adatokat vagy értékeket szeretne kinyerni a működéshez.

    Példa egy cégnév kinyerésére az e-mail tárgyából egy ideiglenes változóba:
    tmp_var=EXTRACT:SUBJECT:Üzenet a cégtől ([^\n]*)

    Példák egy létrehozandó objektum tulajdonságainak beállítására:
    objproperty1=SET:egy keményen kódolt érték
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:egy érték (az érték csak akkor van beállítva, ha a tulajdonság még nincs megadva)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:A cégem neve\\s([^\\s]*)

    Használjon egy ; karaktert elválasztóként több tulajdonság kinyeréséhez vagy beállításához. OpeningHours=Nyitvatartási idő OpeningHoursDesc=Írja be a cége szokásos nyitvatartási idejét. ResourceSetup=Az erőforrás modul beállítása @@ -2167,6 +2200,10 @@ EmailTemplate=Sablon az e-mailekhez EMailsWillHaveMessageID=Az e-mailekben a szintaxisnak megfelelő "References" címke található PDF_SHOW_PROJECT=Projekt megjelenítése a dokumentumon ShowProjectLabel=Projektcímke +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Adja meg az álnevet a harmadik fél nevében +THIRDPARTY_ALIAS=Harmadik fél neve – Alias harmadik fél +ALIAS_THIRDPARTY=Alias, harmadik fél – Harmadik fél neve +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Ha azt szeretné, hogy a PDF-ben lévő szövegek egy része 2 különböző nyelven legyen megkettőzve ugyanabban a generált PDF-ben, itt be kell állítania ezt a második nyelvet, így a létrehozott PDF 2 különböző nyelvet fog tartalmazni ugyanazon az oldalon, a PDF generálásakor választott nyelvet és ezt egy (csak néhány PDF-sablon támogatja ezt). Tartsa üresen PDF-enként 1 nyelv esetén. PDF_USE_A=PDF dokumentumok generálása PDF/A formátumban az alapértelmezett PDF formátum helyett FafaIconSocialNetworksDesc=Írja be ide a FontAwesome ikon kódját. Ha nem tudja, mi az a FontAwesome, használhatja az általános érték fa-címjegyzékét. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnerség AGENDA_EVENT_DEFAULT_STATUS=Alapértelmezett eseményállapot, amikor eseményt hoz létre az űrlapból YouShouldDisablePHPFunctions=Ki kell tiltania a PHP függvényeket IfCLINotRequiredYouShouldDisablePHPFunctions=Kivéve, ha a rendszerparancsokat egyéni kódban kell futtatnia, le kell tiltania a PHP függvényeket -PHPFunctionsRequiredForCLI=Shellyel kapcsolatos célokra (például ütemezett munka biztonsági mentése vagy anitivurs program futtatása) meg kell tartani a PHP függvényeket +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Nem találhatók írható fájlok vagy általános programok könyvtárai a gyökérkönyvtárban (jó) RecommendedValueIs=Javasolt: %s Recommended=Ajánlott NotRecommended=Nem ajánlott -ARestrictedPath=Néhány korlátozott elérési út +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Külső modulok frissítéseinek ellenőrzése CheckForModuleUpdateHelp=Ez a művelet csatlakozik a külső modulok szerkesztőihez, hogy ellenőrizze, elérhető-e új verzió. ModuleUpdateAvailable=Frissítés elérhető @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Nem találhatók frissítések a külső modulokhoz SwaggerDescriptionFile=Swagger API leíró fájl (például redoc-hoz) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Engedélyezte az elavult WS API-t. Használja helyette a REST API-t. RandomlySelectedIfSeveral=Véletlenszerűen kiválasztott, ha több kép is elérhető +SalesRepresentativeInfo=Ajánlatokhoz, Megrendelésekhez, Számlákhoz. DatabasePasswordObfuscated=Az adatbázis jelszava homályos a konf fájlban DatabasePasswordNotObfuscated=Az adatbázis jelszava NINCS homályos a conf fájlban APIsAreNotEnabled=Az API-modulok nincsenek engedélyezve @@ -2247,14 +2285,22 @@ LateWarningAfter="Késői" figyelmeztetés után TemplateforBusinessCards=Sablon különböző méretű névjegykártyákhoz InventorySetup= Készlet beállítása ExportUseLowMemoryMode=Használjon alacsony memória módot -ExportUseLowMemoryModeHelp=Használja az alacsony memória módot a dump végrehajtásához (a tömörítés csövön keresztül történik, nem pedig a PHP memóriájába). Ez a módszer nem teszi lehetővé annak ellenőrzését, hogy a fájl elkészült-e, és nem lehet hibaüzenetet jelenteni, ha meghiúsul. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interfész a dolibarr triggerek elkapásához és egy URL-re küldéséhez +WebhookSetup = Webhook beállítása +Settings = Beállítások +WebhookSetupPage = Webhook beállítási oldal ShowQuickAddLink=Egy gomb megjelenítése elem gyors hozzáadásához a jobb felső menüben + HashForPing=A pinghez használt hash ReadOnlyMode=A példány "Csak olvasható" módban van DEBUGBAR_USE_LOG_FILE=Használja az dolibarr.log fájlt a naplók csapdába ejtéséhez UsingLogFileShowAllRecordOfSubrequestButIsSlower=Használja a dolibarr.log fájlt a naplók csapdába ejtéséhez az élő memória elfogása helyett. Lehetővé teszi az összes napló elkapását, nem csak az aktuális folyamat naplózását (így az ajax alkérelmek oldalát is), de nagyon lelassítja a példányt. Nem ajánlott. FixedOrPercent=Rögzített (használja a "fix" kulcsszót) vagy százalékos (használja a "százalék" kulcsszót) DefaultOpportunityStatus=Alapértelmezett lehetőség állapota (első állapot a potenciális ügyfelek létrehozásakor) + IconAndText=Ikon és szöveg TextOnly=Csak szöveg IconOnlyAllTextsOnHover=Csak ikon – Minden szöveg az ikon alatt jelenik meg az egérmutató menüsorán @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Csak ikon – Az ikon szövege az ikon alatt jelenik meg, vi IconOnly=Csak ikon – Csak szöveg az eszköztippen INVOICE_ADD_ZATCA_QR_CODE=Mutassa meg a ZATCA QR kódot a számlákon INVOICE_ADD_ZATCA_QR_CODEMore=Egyes arab országoknak szüksége van erre a QR-kódra a számláikon +INVOICE_ADD_SWISS_QR_CODE=Mutassa meg a svájci QR-Bill kódot a számlákon +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=A közösségi hálózat URL-címe. Használja az {socialid} változót a közösségi hálózat azonosítóját tartalmazó változó részhez. +IfThisCategoryIsChildOfAnother=Ha ez a kategória egy másik gyermeke +DarkThemeMode=Sötét téma mód +AlwaysDisabled=Mindig letiltva +AccordingToBrowser=A böngésző szerint +AlwaysEnabled=Mindig engedélyezve +DoesNotWorkWithAllThemes=Nem fog működni minden témával +NoName=Névtelen +ShowAdvancedOptions= Speciális beállítások megjelenítése +HideAdvancedoptions= Speciális beállítások elrejtése +CIDLookupURL=A modul egy URL-t hoz, amelyet egy külső eszköz felhasználhat egy harmadik fél vagy kapcsolat nevének lekérésére a telefonszámából. A használandó URL: +OauthNotAvailableForAllAndHadToBeCreatedBefore=Az OAUTH2 hitelesítés nem érhető el minden gazdagépen, és a megfelelő jogosultságokkal rendelkező tokent az OAUTH-modullal felfelé kell létrehozni. +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 hitelesítési szolgáltatás +DontForgetCreateTokenOauthMod=A megfelelő jogosultságokkal rendelkező tokent az OAUTH modullal felfelé kell létrehozni +MAIN_MAIL_SMTPS_AUTH_TYPE=Hitelesítési módszer +UsePassword=Használjon jelszót +UseOauth=Használjon OAUTH tokent +Images=Képek +MaxNumberOfImagesInGetPost=Egy űrlapon elküldött HTML-mezőben megengedett maximális képek száma +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=A modul egy URL-t hoz, amelyet egy külső eszköz felhasználhat egy harmadik fél vagy kapcsolat nevének lekérésére a telefonszámából. A használandó URL: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/hu_HU/agenda.lang b/htdocs/langs/hu_HU/agenda.lang index ff4cce05e2c..f5c667ac88d 100644 --- a/htdocs/langs/hu_HU/agenda.lang +++ b/htdocs/langs/hu_HU/agenda.lang @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=%s tag jóváhagyva MemberModifiedInDolibarr=%s tag módosítva MemberResiliatedInDolibarr=%s tag megszűnt MemberDeletedInDolibarr=%s tag törölve +MemberExcludedInDolibarr=%s tag kizárva MemberSubscriptionAddedInDolibarr=%s előfizetés hozzáadva %s taghoz MemberSubscriptionModifiedInDolibarr=%s tag előfizetése módosítva MemberSubscriptionDeletedInDolibarr=%s tag %s előfizetése törölve @@ -159,6 +160,7 @@ DateActionBegin=Az esemény kezdő dátuma ConfirmCloneEvent=Biztosan klónozni szeretné a(z) %s eseményt? RepeatEvent=Esemény megismétlése OnceOnly=Csak egyszer +EveryDay=Minden nap EveryWeek=Minden héten EveryMonth=Minden hónap DayOfMonth=A hónap napja @@ -174,3 +176,4 @@ AddReminder=Hozzon létre egy automatikus emlékeztető értesítést ehhez az e ErrorReminderActionCommCreation=Hiba történt az esemény emlékeztető értesítésének létrehozásakor BrowserPush=A böngésző felugró értesítése ActiveByDefault=Alapértelmezés szerint engedélyezve +Until=amíg diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index 2c16a652523..e0dd310975b 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -405,8 +405,8 @@ ViewAvailableGlobalDiscounts=Az elérhető kedvezmények megtekintése GroupPaymentsByModOnReports=A kifizetések csoportosítása mód szerint a jelentésekben # PaymentConditions Statut=Állapot -PaymentConditionShortRECEP=Átvételkor esedékes -PaymentConditionRECEP=Átvételkor esedékes +PaymentConditionShortRECEP=Utánvétel +PaymentConditionRECEP=Utánvétel PaymentConditionShort30D=30 nap PaymentCondition30D=30 nap PaymentConditionShort30DENDMONTH=30 nap a hónap végén @@ -446,6 +446,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=A választott fizetési felt PaymentTypeVIR=Banki átutalás PaymentTypeShortVIR=Banki átutalás PaymentTypePRE=Beszedési megbízás +PaymentTypePREdetails=(a fiókban *-%s) PaymentTypeShortPRE=Teher fizetési megbízás PaymentTypeLIQ=Készpénz PaymentTypeShortLIQ=Kp diff --git a/htdocs/langs/hu_HU/bookmarks.lang b/htdocs/langs/hu_HU/bookmarks.lang index 02b5cc1dbee..163b0ec0495 100644 --- a/htdocs/langs/hu_HU/bookmarks.lang +++ b/htdocs/langs/hu_HU/bookmarks.lang @@ -7,16 +7,17 @@ EditBookmarks=Könyvjelzők listázása/szerkesztése NewBookmark=Új könyvjelző ShowBookmark=Könyvjelző mutatása OpenANewWindow=Új lap megnyitása -ReplaceWindow=Aktuális fül cseréje +ReplaceWindow=Az aktuális lap cseréje BookmarkTargetNewWindowShort=Új lap BookmarkTargetReplaceWindowShort=Aktuális lap BookmarkTitle=Könyvjelző neve UrlOrLink=URL elérési út -BehaviourOnClick=Viselkedés könyvjelző URL kiválasztásakor +BehaviourOnClick=Viselkedés a könyvjelző URL-jének kiválasztásakor CreateBookmark=Könyvjelző lértehozása -SetHereATitleForLink=Adjon meg egy nevet a könyvjelzőnek -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. +SetHereATitleForLink=Állítson be egy nevet a könyvjelzőnek +UseAnExternalHttpLinkOrRelativeDolibarrLink=Külső/abszolút hivatkozás (https://externalurl.com) vagy belső/relatív hivatkozás (/mypage.php) használata. Használhat olyan telefont is, mint a tel:0123456. ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Válassza ki, hogy a hivatkozott oldal az aktuális lapon vagy egy új lapon nyíljon meg BookmarksManagement=Könyvjelzők kezelése BookmarksMenuShortCut=Ctrl + Shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=Nincsenek könyvjelzők meghatározva +NoBookmarkFound=Nem található könyvjelző diff --git a/htdocs/langs/hu_HU/boxes.lang b/htdocs/langs/hu_HU/boxes.lang index cc5a970b5a7..a5a33771eaa 100644 --- a/htdocs/langs/hu_HU/boxes.lang +++ b/htdocs/langs/hu_HU/boxes.lang @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Beszállítói rendelések fogadásra v BoxTitleLastModifiedContacts=Kapcsolatok/Címek: legutóbbi %s módosítás BoxMyLastBookmarks=Könyvjelzők: legutóbbi %s BoxOldestExpiredServices=A legrégebbi aktív lejárt szolgáltatások +BoxOldestActions=Oldest events to do BoxLastExpiredServices=A legújabb %s legrégebbi névjegy aktív lejárt szolgáltatásokkal BoxTitleLastActionsToDo=A legutóbbi %s művelet +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=A legutóbbi %s szerződés, amely módosult BoxTitleLastModifiedDonations=A legutóbbi %s adomány, amely módosult BoxTitleLastModifiedExpenses=A legutóbbi %s költségjelentés, amely módosult diff --git a/htdocs/langs/hu_HU/cashdesk.lang b/htdocs/langs/hu_HU/cashdesk.lang index de9f9af61b6..ebd55bf4814 100644 --- a/htdocs/langs/hu_HU/cashdesk.lang +++ b/htdocs/langs/hu_HU/cashdesk.lang @@ -136,3 +136,4 @@ PrintWithoutDetails=Nyomtatás részletek nélkül YearNotDefined=Az év nincs megadva TakeposBarcodeRuleToInsertProduct=Vonalkód szabály a termék beillesztéséhez TakeposBarcodeRuleToInsertProductDesc=Szabály a termékreferencia + mennyiség kinyerésére a beolvasott vonalkódból.
    Ha üres (alapértelmezett érték), az alkalmazás a teljes beolvasott vonalkódot használja a termék megtalálásához.

    Ha definiálva van, szintaxis kell:
    hiv.: NB + qu: NB + qd NB + egyéb: NB
    ahol NB karakterek száma használni kinyeri az adatokat a beszkennelt vonalkód:
    • hiv. : termék hivatkozási
    • qu : mennyiség beillesztés közben tétel (egység)
    • qd : mennyiség beillesztés közben tétel (tizedes)
    • más : mások karakter
    +AlreadyPrinted=Már kinyomtatva diff --git a/htdocs/langs/hu_HU/categories.lang b/htdocs/langs/hu_HU/categories.lang index 631341fbd12..25f02517fca 100644 --- a/htdocs/langs/hu_HU/categories.lang +++ b/htdocs/langs/hu_HU/categories.lang @@ -95,7 +95,9 @@ ShowCategory=Címke/kategória megjelenítése ByDefaultInList=Alapértelmezés szerint a listában ChooseCategory=Válasszon kategóriát StocksCategoriesArea=Raktári kategóriák +TicketsCategoriesArea=Jegyek kategóriái ActionCommCategoriesArea=Esemény kategóriák WebsitePagesCategoriesArea=Oldal-tároló kategóriák KnowledgemanagementsCategoriesArea=KM cikk kategóriák UseOrOperatorForCategories=Használja az „OR” operátort a kategóriákhoz +AddObjectIntoCategory=Objektum hozzáadása a kategóriába diff --git a/htdocs/langs/hu_HU/commercial.lang b/htdocs/langs/hu_HU/commercial.lang index d6b10d4c1e6..f3424b64b5d 100644 --- a/htdocs/langs/hu_HU/commercial.lang +++ b/htdocs/langs/hu_HU/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Prospect állapot DraftPropals=Készítsen üzleti ajánlatot NoLimit=Nincs határ ToOfferALinkForOnlineSignature=Link az online aláíráshoz -WelcomeOnOnlineSignaturePage=Üdvözöljük az oldalon, ahol elfogadja %s árajánlatait -ThisScreenAllowsYouToSignDocFrom=Ez a képernyő lehetővé teszi egy árajánlat elfogadását és aláírását vagy elutasítását -ThisIsInformationOnDocumentToSign=Ez az elfogadandó vagy elutasítandó dokumentumra vonatkozó információ +WelcomeOnOnlineSignaturePageProposal=Üdvözöljük az oldalon, ahol elfogadja %s árajánlatait +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Ez a képernyő lehetővé teszi egy árajánlat elfogadását és aláírását vagy elutasítását +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Ez az elfogadandó vagy elutasítandó dokumentumra vonatkozó információ +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Árajánlat aláírása: %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Az online aláírás funkció letiltása vagy a szolgáltatás engedélyezése előtt létrehozott dokumentum diff --git a/htdocs/langs/hu_HU/companies.lang b/htdocs/langs/hu_HU/companies.lang index e69dd275237..c4de327829b 100644 --- a/htdocs/langs/hu_HU/companies.lang +++ b/htdocs/langs/hu_HU/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Harmadik fél természete NatureOfContact=A kapcsolattartás jellege Address=Cím State=Állam / Tartomány +StateId=Állami azonosító StateCode=Állam/Tartomány kódja StateShort=Állam/Megye Region=Régió Region-State=Régió - Állam Country=Ország CountryCode=Az ország hívószáma -CountryId=Ország id +CountryId=Országazonosító Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=1. szakmai azonosító (kereskedelmi nyilvántartás) ProfId2CM=2. szakmai azonosító (adózó száma) -ProfId3CM=3. szakmai azonosító (Létrehozási rendelési szám) -ProfId4CM=Id. prof. 4 (Betétigazolás) +ProfId3CM=Id. prof. 3 (Létrehozási rendelet száma) +ProfId4CM=Id. prof. 4 (betéti igazolás sz.) ProfId5CM=Id. prof. 5 (egyéb) ProfId6CM=- ProfId1ShortCM=Kereskedelmi nyilvántartás ProfId2ShortCM=Adófizető sz. -ProfId3ShortCM=Létrehozási rendelési szám. -ProfId4ShortCM=Betéti igazolás +ProfId3ShortCM=Létrehozási rendelet sz. +ProfId4ShortCM=számú letéti igazolás ProfId5ShortCM=Mások ProfId6ShortCM=- ProfId1CO=Szakma ID 1 (RUT) diff --git a/htdocs/langs/hu_HU/compta.lang b/htdocs/langs/hu_HU/compta.lang index e8e456e2f32..cad98592489 100644 --- a/htdocs/langs/hu_HU/compta.lang +++ b/htdocs/langs/hu_HU/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Egyenleg (előtte) Balance=Egyenleg Debit=Terhelés Credit=Hitel +AccountingDebit=Terhelés +AccountingCredit=Hitel Piece=Számviteli dok. AmountHTVATRealReceived=A nettó összegyűlt AmountHTVATRealPaid=Nettó fizetett @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=A termékenként gyűjtött TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=A forgalmi adókulcsonként beszedett forgalomról szóló jelentés nem érhető el. Ez a jelentés csak a számlázott forgalomról érhető el. CalculationMode=Számítási mód AccountancyJournal=Számviteli kódnapló -ACCOUNTING_VAT_SOLD_ACCOUNT=Alapértelmezés szerint az értékesítések áfájához tartozó könyvelési számla (ha nincs megadva az áfaszótárban, akkor használatos) -ACCOUNTING_VAT_BUY_ACCOUNT=Alapértelmezés szerint a vásárlások áfájához tartozó könyvelési számla (használjuk, ha nincs megadva az áfaszótár beállításánál) -ACCOUNTING_VAT_PAY_ACCOUNT=Alapértelmezés szerint az áfa fizetésére szolgáló számviteli fiók -ACCOUNTING_ACCOUNT_CUSTOMER=Az ügyfél harmadik felei számára használt számviteli fiók +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=A harmadik fél kártyáján meghatározott dedikált könyvelési számla csak alkönyvi könyvelésre lesz használva. Ezt a rendszer a főkönyvhez és az alkönyvi könyvelés alapértelmezett értékeként fogja használni, ha nincs meghatározva harmadik fél dedikált ügyfélszámla. -ACCOUNTING_ACCOUNT_SUPPLIER=A szállító harmadik felei számára használt könyvelési fiók +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=A harmadik fél kártyáján meghatározott dedikált könyvelési számla csak alkönyvi könyvelésre lesz használva. Ez lesz a főkönyvhöz és az alkönyvi könyvelés alapértelmezett értékeként használatos, ha nincs meghatározva harmadik fél dedikált szállítói könyvelési számlája. ConfirmCloneTax=Egy szociális/fiskális adó klónjának megerősítése ConfirmCloneVAT=ÁFA-bevallás klónozásának megerősítése @@ -300,3 +302,4 @@ InvoiceToPay15Days=Fizetés (15-30 nap) InvoiceToPay30Days=Fizetés (> 30 nap) ConfirmPreselectAccount=A számviteli kód előre kiválasztása ConfirmPreselectAccountQuestion=Biztosan ki akarja választani a kiválasztott %s sort ezzel a számviteli kóddal? +AmountPaidMustMatchAmountOfDownPayment=A befizetett összegnek meg kell egyeznie az előleg összegével diff --git a/htdocs/langs/hu_HU/contracts.lang b/htdocs/langs/hu_HU/contracts.lang index b7155e5b9d9..52d5ec84eca 100644 --- a/htdocs/langs/hu_HU/contracts.lang +++ b/htdocs/langs/hu_HU/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Szerződések / Előfizetések ContractsAndLine=Szerződések és a szerződések sorai Contract=Szerződés ContractLine=Szerződés tételsor +ContractLines=Szerződési vonalak Closing=Lezár NoContracts=Nincs szerződés MenuServices=Szolgáltatás @@ -31,12 +32,12 @@ NewContract=Új szerződés NewContractSubscription=Új szerződés vagy előfizetés AddContract=Szerződés hozzáadása DeleteAContract=Szerződés törlése -ActivateAllOnContract=Aktiválja az összes szolgáltatást +ActivateAllOnContract=Minden szolgáltatás aktiválása CloseAContract=Szerződés lezárása ConfirmDeleteAContract=Biztos törölni akarja a szerződést és minden hozzá tartozó szolgáltatást? ConfirmValidateContract=Biztos hitelesíteni akarja a szerződést ezen a név alatt%s? -ConfirmActivateAllOnContract=Az összes szolgáltatás megnyitása (még nem aktív). Biztosan megnyitja az összes szolgáltatást? -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? +ConfirmActivateAllOnContract=Ez minden szolgáltatást megnyit (még nem aktív). Biztosan meg akarja nyitni az összes szolgáltatást? +ConfirmCloseContract=Ez minden szolgáltatást bezár (lejárt vagy sem). Biztos benne, hogy fel akarja zárni ezt a szerződést? ConfirmCloseService=Biztos le akarja zárni a %s dátummal ellátott szolgáltatást? ValidateAContract=Szerződés hitelesítése ActivateService=Aktív szolgáltatás @@ -51,7 +52,7 @@ ListOfClosedServices=Lezárt szolgáltatások listája ListOfRunningServices=Futó szolgáltatások listája NotActivatedServices=Inaktív szolgáltatások (a hitelesített szerződések között) BoardNotActivatedServices=Hitelesített szerződésekhez tartozó aktiválandó szolgáltatások -BoardNotActivatedServicesShort=Szolgáltatások aktiváláshoz +BoardNotActivatedServicesShort=Aktiválandó szolgáltatások LastContracts=Utóbbi %s szerződés LastModifiedServices=Legutóbbi %s változás a szolgáltatásokban ContractStartDate=Kezdési dátum @@ -65,21 +66,21 @@ DateStartRealShort=Tényleges kezdési dátum DateEndReal=Tényleges befejezési dátum DateEndRealShort=Tényleges befejezési dátum CloseService=Szolgáltatás lezárása -BoardRunningServices=Futó szolgáltatások -BoardRunningServicesShort=Futó szolgáltatások -BoardExpiredServices=Lejárt szolgáltatások -BoardExpiredServicesShort=Lejárt szolgáltatások +BoardRunningServices=A szolgáltatások futnak +BoardRunningServicesShort=A szolgáltatások futnak +BoardExpiredServices=A szolgáltatások lejártak +BoardExpiredServicesShort=A szolgáltatások lejártak ServiceStatus=Szolgáltatások állapota DraftContracts=Szerződés tervezetek -CloseRefusedBecauseOneServiceActive=A szerződést nem lehet lezárni, mivel van legalább egy nyitott szolgáltatás -ActivateAllContracts=Aktiválja az összes szerződéses sort +CloseRefusedBecauseOneServiceActive=A szerződés nem zárható le, mivel legalább egy nyitott szolgáltatás van rajta +ActivateAllContracts=Az összes szerződéssor aktiválása CloseAllContracts=Minden szerződés sor lezárása DeleteContractLine=Szerződés sor törlése ConfirmDeleteContractLine=Biztos törölni akarja a szerződés sort? MoveToAnotherContract=Szolgáltatás átmozgatása másik szerződéshez. ConfirmMoveToAnotherContract=Új cél szerződést választottam a szolgáltatásnak, és át akarok helyezni a szolgáltatást. ConfirmMoveToAnotherContractQuestion=Melyik létező szerződéshez (ugyan azon harmadik fél) szeretné átmozgatni a szolgáltatást? -PaymentRenewContractId=Szerződés sor megújítása (%s) +PaymentRenewContractId=Szerződés megújítása %s (szolgáltatás %s) ExpiredSince=Lejárati dátum NoExpiredServices=Nincs lejárt aktív szolgáltatások ListOfServicesToExpireWithDuration=%s napon belül lejáró szolgáltatások @@ -89,9 +90,9 @@ NoteListOfYourExpiredServices=Ez a lista csak azoknak a szerződéseknek a szolg StandardContractsTemplate=Általános szerződés minta ContactNameAndSignature=A %s-hez név és aláírás OnlyLinesWithTypeServiceAreUsed=Csak a "Service" szolgáltatás sorok lesznek klónozva. -ConfirmCloneContract=Biztos benne, hogy klónozni kívánja a %s szerződést? -LowerDateEndPlannedShort=Az aktív szolgáltatások tervezett befejezési dátuma -SendContractRef=A szerződésre vonatkozó információk __REF__ +ConfirmCloneContract=Biztosan klónozni szeretné a(z) %s szerződést? +LowerDateEndPlannedShort=Az aktív szolgáltatások alacsonyabb tervezett befejezési dátuma +SendContractRef=Szerződés információ __REF__ OtherContracts=Egyéb szerződések ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Értékesítési képviselő a szerződés aláírásakor @@ -99,6 +100,8 @@ TypeContact_contrat_internal_SALESREPFOLL=Értékesítési képviselő a szerző TypeContact_contrat_external_BILLING=Számlázandó ügyfél TypeContact_contrat_external_CUSTOMER=Ügyfél kapcsolat tartó TypeContact_contrat_external_SALESREPSIGN=A szerződést aláíró személy -HideClosedServiceByDefault=Alapértelmezés szerint elrejti a zárt szolgáltatásokat +HideClosedServiceByDefault=A zárt szolgáltatások elrejtése alapértelmezés szerint ShowClosedServices=Zárt szolgáltatások megjelenítése -HideClosedServices=Zárt szolgáltatások elrejtése +HideClosedServices=Lezárt szolgáltatások elrejtése +UserStartingService=Felhasználó indító szolgáltatás +UserClosingService=Felhasználózárás szolgáltatás diff --git a/htdocs/langs/hu_HU/cron.lang b/htdocs/langs/hu_HU/cron.lang index 5800c0354ec..f5473b43c16 100644 --- a/htdocs/langs/hu_HU/cron.lang +++ b/htdocs/langs/hu_HU/cron.lang @@ -1,91 +1,100 @@ # Dolibarr language file - Source file is en_US - cron # About page # Right -Permission23101 = Ütemezett feladatok megtekintése -Permission23102 = Ütemezett feladatok létrehozása / frissítése -Permission23103 = Ütemezett feladatok törlése +Permission23101 = Ütemezett feladat olvasása +Permission23102 = Ütemezett feladat létrehozása/frissítése +Permission23103 = Ütemezett feladat törlése Permission23104 = Ütemezett feladat végrehajtása # Admin -CronSetup=Scheduled job management setup -URLToLaunchCronJobs=URL to check and launch qualified cron jobs from a browser -OrToLaunchASpecificJob=Or to check and launch a specific job from a browser -KeyForCronAccess=Security key for URL to launch cron jobs -FileToLaunchCronJobs=Command line to check and launch qualified cron jobs -CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes -CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes -CronMethodDoesNotExists=Class %s does not contains any method %s -CronMethodNotAllowed=Method %s of class %s is in blacklist of forbidden methods -CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. -CronJobProfiles=List of predefined cron job profiles +CronSetup=Ütemezett feladatkezelés beállítása +URLToLaunchCronJobs=URL a minősített cron-feladatok böngészőből történő ellenőrzéséhez és elindításához +OrToLaunchASpecificJob=Vagy egy adott feladat ellenőrzéséhez és elindításához böngészőből +KeyForCronAccess=Biztonsági kulcs az URL-hez a cron feladatok elindításához +FileToLaunchCronJobs=Parancssor a minősített cron-feladatok ellenőrzéséhez és elindításához +CronExplainHowToRunUnix=Unix környezetben a következő crontab bejegyzést kell használnia a parancssor 5 percenkénti futtatásához +CronExplainHowToRunWin=A Microsoft(tm) Windows környezetben az Ütemezett feladat eszközöket használhatja a parancssor 5 percenkénti futtatására +CronMethodDoesNotExists=A %s osztály nem tartalmaz %s metódust +CronMethodNotAllowed=A %s osztály %s metódusa a tiltott metódusok feketelistáján van +CronJobDefDesc=A Cron jobprofilok a modulleíró fájlban vannak meghatározva. Amikor a modul aktiválva van, azok betöltődnek és elérhetők, így a feladatokat a %s adminisztrációs eszközök menüből adminisztrálhatja. +CronJobProfiles=Előre meghatározott cron feladatprofilok listája # Menu EnabledAndDisabled=Engedélyezve és letiltva # Page list -CronLastOutput=A legutóbbi futás kimenete -CronLastResult=Latest result code -CronCommand=Command -CronList=Időzített feladatok -CronDelete=Ütemezett feladatok törlése -CronConfirmDelete=Biztosan törölni szeretné ezeket az ütemezett feladatokat? -CronExecute=Indítsa el az ütemezett feladatot -CronConfirmExecute=Biztos benne, hogy most szeretné végrehajtani ezeket az ütemezett feladatokat? -CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. -CronTask=Feladat +CronLastOutput=Utolsó futtatás kimenete +CronLastResult=Legfrissebb eredménykód +CronCommand=Parancs +CronList=Ütemezett munkák +CronDelete=Ütemezett munkák törlése +CronConfirmDelete=Biztosan törölni szeretné ezeket az ütemezett munkákat? +CronExecute=Launch now +CronConfirmExecute=Biztosan most végre akarja hajtani ezeket az ütemezett feladatokat? +CronInfo=Az ütemezett feladat modul lehetővé teszi a feladatok ütemezését az automatikus végrehajtásra. A munkák manuálisan is elindíthatók. +CronTask=Fealdat CronNone=Nincs -CronDtStart=Nem hamarabb mint -CronDtEnd=Nem később mint +CronDtStart=Még nem +CronDtEnd=Nem utána CronDtNextLaunch=Következő végrehajtás -CronDtLastLaunch=Legutóbbi végrehajtás időpontja +CronDtLastLaunch=A legutóbbi végrehajtás kezdő dátuma CronDtLastResult=A legutóbbi végrehajtás befejezési dátuma -CronFrequency=Gyakoriság +CronFrequency=Frekvencia CronClass=Osztály CronMethod=Módszer CronModule=Modul -CronNoJobs=Nincsenek feladatok +CronNoJobs=Nincs regisztrált állás CronPriority=Prioritás -CronLabel=Felirat -CronNbRun=Number of launches -CronMaxRun=Maximum number of launches -CronEach=Every -JobFinished=Job launched and finished +CronLabel=Címke +CronNbRun=Indítások száma +CronMaxRun=Az indítások maximális száma +CronEach=Minden +JobFinished=A feladat elindítása és befejezése Scheduled=Ütemezett #Page card -CronAdd= Add jobs -CronEvery=Végezze el mindegyik feladatot -CronObject=Instance/Object to create +CronAdd= Munkák hozzáadása +CronEvery=Minden feladat végrehajtása +CronObject=Létrehozandó példány/objektum CronArgs=Paraméterek CronSaveSucess=Sikeres mentés CronNote=Megjegyzés -CronFieldMandatory=A %s mezőket kötelező kitölteni -CronErrEndDateStartDt=A befejezés időpontja nem lehet hamarabb mint a kezdet -StatusAtInstall=Status at module installation -CronStatusActiveBtn=Menetrend +CronFieldMandatory=A %s mezők kitöltése kötelező +CronErrEndDateStartDt=A befejező dátum nem lehet korábbi a kezdő dátumnál +StatusAtInstall=Modultelepítési állapot +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Letiltás -CronTaskInactive=This job is disabled (not scheduled) +CronTaskInactive=Ez a feladat le van tiltva (nincs ütemezve) CronId=Id -CronClassFile=Fájlnév osztályokkal -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
    product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
    For example to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
    product/class/product.class.php -CronObjectHelp=The object name to load.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
    Product -CronMethodHelp=The object method to launch.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
    fetch -CronArgsHelp=The method arguments.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
    0, ProductRef -CronCommandHelp=The system command line to execute. +CronClassFile=Fájlnév osztállyal +CronModuleHelp=A Dolibarr modul könyvtárának neve (külső Dolibarr modullal is működik).
    Például a Dolibarr Product objektum /htdocs/product/class/product.class.php lekérési metódusának meghívásához a modul értéke
    product +CronClassFileHelp=A betöltendő relatív elérési út és fájlnév (az elérési út a webszerver gyökérkönyvtárához viszonyítva).
    Például a Dolibarr Product objektum htdocs/product/class/product.class.php lekérési metódusának meghívásához az osztályfájlnév értéke:
    product/class/ termék.osztály.php +CronObjectHelp=A betöltendő objektum neve.
    Például a /htdocs/product/class/product.class.php Dolibarr Product objektum lekérési metódusának meghívásához az osztályfájlnév értéke
    Termék +CronMethodHelp=Az indítandó objektum metódus.
    Például a /htdocs/product/class/product.class.php Dolibarr Product objektum lekérési metódusának meghívásához a metódus értéke
    fetch +CronArgsHelp=A metódus argumentumai.
    Például a Dolibarr Product objektum /htdocs/product/class/product.class.php lekérési metódusának meghívásához a paraméterek értéke lehet
    0, ProductRef +CronCommandHelp=A rendszer végrehajtandó parancssora. CronCreateJob=Új ütemezett feladat létrehozása -CronFrom=Küldő +CronFrom=Feladó # Info # Common CronType=Feladat típusa -CronType_method=Call method of a PHP Class +CronType_method=PHP osztály hívási metódusa CronType_command=Shell parancs -CronCannotLoadClass=Cannot load class file %s (to use class %s) -CronCannotLoadObject=Class file %s was loaded, but object %s was not found into it -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. -JobDisabled=Feladat le tiltva +CronCannotLoadClass=Nem sikerült betölteni a %s osztályfájlt (a %s osztály használatához) +CronCannotLoadObject=A(z) %s osztályfájl betöltve, de a(z) %s objektum nem található benne +UseMenuModuleToolsToAddCronJobs=Lépjen be a "Főoldal - Felügyeleti eszközök - Ütemezett munkák" menübe az ütemezett munkák megtekintéséhez és szerkesztéséhez. +JobDisabled=A feladat letiltva MakeLocalDatabaseDumpShort=Helyi adatbázis biztonsági mentése -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. -DATAPOLICYJob=Data cleaner and anonymizer -JobXMustBeEnabled=Job %s must be enabled +MakeLocalDatabaseDump=Helyi adatbázis kiíratásának létrehozása. A paraméterek a következők: tömörítés ('gz' vagy 'bz' vagy 'none'), biztonsági mentés típusa ('mysql', 'pgsql', 'auto'), 1, 'auto' vagy felépítendő fájlnév, megőrzendő biztonsági mentési fájlok száma +MakeSendLocalDatabaseDumpShort=Helyi adatbázis biztonsági másolatának küldése +MakeSendLocalDatabaseDump=Helyi adatbázis biztonsági másolatának küldése e-mailben. A paraméterek a következők: címzett, feladó, tárgy, üzenet, fájlnév (az elküldött fájl neve), szűrő ('sql' csak az adatbázis biztonsági mentéséhez) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Tisztítsa meg a befejezetlen munkát +CleanUnfinishedCronjob=Tisztítsa meg a feldolgozás alatt elakadt cronjob-ot, amikor a folyamat már nem fut +WarningCronDelayed=Figyelem, a teljesítmény érdekében, függetlenül attól, hogy az engedélyezett feladatok végrehajtásának következő dátuma legyen, a feladatok legfeljebb %s órával késlekedhetnek, mielőtt futnának. +DATAPOLICYJob=Adattisztító és anonimizáló +JobXMustBeEnabled=A %s feladatot engedélyezni kell +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=Utoljára végrehajtott ütemezett feladat +NextScheduledJobExecute=Következő ütemezett végrehajtási feladat +NumberScheduledJobError=A hibás ütemezett feladatok száma +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/hu_HU/datapolicy.lang b/htdocs/langs/hu_HU/datapolicy.lang new file mode 100644 index 00000000000..15413288d14 --- /dev/null +++ b/htdocs/langs/hu_HU/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Vevő +DATAPOLICY_TIERS_PROSPECT = Leendő +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Beszállító +DATAPOLICY_CONTACT_CLIENT = Vevő +DATAPOLICY_CONTACT_PROSPECT = Leendő +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Beszállító +DATAPOLICY_ADHERENT = Tag +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/hu_HU/dict.lang b/htdocs/langs/hu_HU/dict.lang index 9b900be987b..ba714276cfa 100644 --- a/htdocs/langs/hu_HU/dict.lang +++ b/htdocs/langs/hu_HU/dict.lang @@ -21,7 +21,7 @@ CountryNL=Hollandia CountryHU=Magyarország CountryRU=Oroszország CountrySE=Svédország -CountryCI=Ivoiry Coast +CountryCI=Elefántcsontpart CountrySN=Szenegál CountryAR=Argentína CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Szent Márton ##### Civilities ##### CivilityMME=Asszony +CivilityMMEShort=Asszony CivilityMR=Úr +CivilityMRShort=Úr CivilityMLE=Kisasszony CivilityMTRE=Mester CivilityDR=Doktor diff --git a/htdocs/langs/hu_HU/ecm.lang b/htdocs/langs/hu_HU/ecm.lang index 092babdb69c..bce597e4788 100644 --- a/htdocs/langs/hu_HU/ecm.lang +++ b/htdocs/langs/hu_HU/ecm.lang @@ -1,12 +1,13 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=A könyvtárban található dokumentumok száma +ECMNbOfDocs=Dokumentumok száma a könyvtárban ECMSection=Könyvtár ECMSectionManual=Kézi könyvtár ECMSectionAuto=Automatikus könyvtár ECMSectionsManual=Kézi fa ECMSectionsAuto=Automata fa +ECMSectionsMedias=Medias tree ECMSections=Könyvtárak -ECMRoot=ECM Root +ECMRoot=ECM gyökér ECMNewSection=Új könyvtár ECMAddSection=Könyvtár hozzáadása ECMCreationDate=Létrehozás dátuma @@ -14,36 +15,38 @@ ECMNbOfFilesInDir=Fájlok száma a könyvtárban ECMNbOfSubDir=Alkönyvtárok száma ECMNbOfFilesInSubDir=Fájlok száma az alkönyvtárakban ECMCreationUser=Létrehozó -ECMArea=DMS / ECM terület -ECMAreaDesc=A DMS / ECM (dokumentumkezelő rendszer / elektronikus tartalomkezelés) terület lehetővé teszi, hogy bármilyen dokumentumot mentsen, megosszon és gyorsan keressen a Dolibarr-ban. -ECMAreaDesc2=* Az automatikus könyvtárak önmagukat töltik föl amikor dokumentumot adunk valamilyen elem kártyájához.
    * A kézi könyvtárakban elmenthetünk dokumentumokat amik nincsenek csatolva egyetlen elemhez sem. +ECMArea=DMS/ECM terület +ECMAreaDesc=A DMS/ECM (Dokumentumkezelő rendszer / Elektronikus Tartalomkezelés) terület lehetővé teszi a Dolibarrban mindenféle dokumentum mentését, megosztását és gyors keresését. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=%s könyvtár törölve lett. -ECMSectionWasCreated=A(z) %s könyvtár létrehozásra került. +ECMSectionWasCreated=A(z) %s könyvtár létrejött. ECMSearchByKeywords=Kulcsszavak szerinti keresés ECMSearchByEntity=Objektum szerinti keresés ECMSectionOfDocuments=Dokumentumok könyvtárai ECMTypeAuto=Automatikus -ECMDocsBy=Documents linked to %s +ECMDocsBy=Dokumentumok linkelve: %s ECMNoDirectoryYet=Nem lett könyvtár létrehozva ShowECMSection=Könyvtár mutatása DeleteSection=Könyvtár eltávolítása ConfirmDeleteSection=Kérem erősítse meg, valóban törli a %s könyvtárat ? ECMDirectoryForFiles=Relatív könyvtár a fájlokhoz -CannotRemoveDirectoryContainsFilesOrDirs=Az eltávolítás nem lehetséges, mert fájlokat vagy alkönyvtárakat tartalmaz +CannotRemoveDirectoryContainsFilesOrDirs=Az eltávolítás nem lehetséges, mert néhány fájlt vagy alkönyvtárat tartalmaz CannotRemoveDirectoryContainsFiles=Az eltávolítás nem lehetséges, mert tartalmaz néhány fájlt ECMFileManager=Fájl kezelő -ECMSelectASection=Válasszon mappát a könyvtárfában ... -DirNotSynchronizedSyncFirst=Úgy tűnik, hogy ezt a könyvtárat az ECM modulon kívül hozták létre vagy módosították. Először a "Resync" gombra kell kattintania a lemez és az adatbázis szinkronizálásához, hogy megkapja ennek a könyvtárnak a tartalmát. -ReSyncListOfDir=A könyvtárak újraszinkronizálása -HashOfFileContent=A fájl tartalmának hash értéke +ECMSelectASection=Válasszon ki egy könyvtárat a fában... +DirNotSynchronizedSyncFirst=Ez a könyvtár úgy tűnik, hogy az ECM modulon kívül jött létre vagy módosult. Először az "Újraszinkronizálás" gombra kell kattintania a lemez és az adatbázis szinkronizálásához a könyvtár tartalmának lekéréséhez. +ReSyncListOfDir=A könyvtárak listájának újraszinkronizálása +HashOfFileContent=Fájltartalom hash NoDirectoriesFound=Nem található könyvtár -FileNotYetIndexedInDatabase=A fájl még nincs indexelve az adatbázisba (próbálja meg újra feltölteni) -ExtraFieldsEcmFiles=Extrafields Ecm Files -ExtraFieldsEcmDirectories=Extrafields Ecm Directories -ECMSetup=ECM Setup -GenerateImgWebp=Duplicate all images with another version with .webp format -ConfirmGenerateImgWebp=If you confirm, you will generate an image in .webp format for all images currently into this folder (subfolders are not included)... -ConfirmImgWebpCreation=Confirm all images duplication -SucessConvertImgWebp=A képek sokszorosítása sikerült +FileNotYetIndexedInDatabase=A fájl még nincs indexelve az adatbázisban (próbálja meg újra feltölteni) +ExtraFieldsEcmFiles=Extra mezők ECM fájlok +ExtraFieldsEcmDirectories=Extramezős ECM-könyvtárak +ECMSetup=ECM beállítása +GenerateImgWebp=Minden kép megkettőzése egy másik, .webp formátumú verzióval +ConfirmGenerateImgWebp=Ha megerősíti, létrehoz egy képet .webp formátumban az összes jelenleg ebben a mappában lévő képhez (az almappákat nem tartalmazza)... +ConfirmImgWebpCreation=Az összes kép másolásának megerősítése +SucessConvertImgWebp=A képek sikeresen megkettőzve ECMDirName=Könyvtár neve ECMParentDirectory=Szülőkönyvtár diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang index 6e46cdadd26..54b5b229177 100644 --- a/htdocs/langs/hu_HU/errors.lang +++ b/htdocs/langs/hu_HU/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=A %s bejelentkezés már létezik. ErrorGroupAlreadyExists=A %s csoport már létezik. ErrorEmailAlreadyExists=A %s e-mail már létezik. ErrorRecordNotFound=A rekord nem található. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Nem sikerült átmásolni a(z) '%s fájlt a '%s' mappába. ErrorFailToCopyDir=Nem sikerült átmásolni a '%s könyvtárat a '%s' könyvtárba. ErrorFailToRenameFile=Nem sikerült átnevezni a(z) '%s fájlt '%s' névre. @@ -48,6 +49,7 @@ ErrorBadImageFormat=A képfájl formátuma nem támogatott (a PHP nem támogatja ErrorBadDateFormat=A '%s' érték rossz dátumformátumú ErrorWrongDate=Nem helyes a dátum! ErrorFailedToWriteInDir=Nem sikerült írni a %s könyvtárba +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Hibás e-mail szintaxist találtunk a fájl %s sorához (példa: %s, email=%s) ErrorUserCannotBeDelete=A felhasználó nem törölhető. Talán a Dolibarr entitásokhoz kapcsolódik. ErrorFieldsRequired=Néhány kötelező mező üresen maradt. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Kérjük, töltse ki a jelölőnégyzetek listáját ErrorNoValueForRadioType=Kérjük, töltse ki a rádiólista értékét ErrorBadFormatValueList=A listaérték nem tartalmazhat több vesszőt: %s, de legalább egy kell hozzá: kulcs,érték ErrorFieldCanNotContainSpecialCharacters=A %s mező nem tartalmazhat speciális karaktereket. -ErrorFieldCanNotContainSpecialNorUpperCharacters=A %s mező nem tartalmazhat speciális karaktereket, nagybetűket és nem tartalmazhat csak számokat. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=A %s mezőnek legalább %s karakterből kell állnia. ErrorNoAccountancyModuleLoaded=Nincs aktiválva könyvelési modul ErrorExportDuplicateProfil=Ez a profilnév már létezik ehhez az exportkészlethez. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=A szolgáltatás működéséhez a JavaScriptet nem ErrorPasswordsMustMatch=Mindkét beírt jelszónak meg kell egyeznie egymással ErrorContactEMail=Technikai hiba történt. Kérjük, forduljon a rendszergazdához a következő e-mail címre: %s, és adja meg üzenetében a %s hibakódot, vagy adja hozzá az oldal képernyőpéldányát. ErrorWrongValueForField=Mező: %s: '%s' nem egyezik a %s reguláris kifejezéssel +ErrorHtmlInjectionForField= %s mező : Az ' %s a09a4b739f17f értéket nem tartalmazó ErrorFieldValueNotIn=Mező: %s: "%s" nem található a %s/%s mezőben ErrorFieldRefNotIn=Mező: %s: '%s' nem %s létező hivatkozás +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s hiba található ErrorFileIsInfectedWithAVirus=A víruskereső program nem tudta ellenőrizni a fájlt (lehet, hogy a fájlt vírus fertőzte meg) -ErrorSpecialCharNotAllowedForField=Speciális karakterek nem engedélyezettek a "%s" mezőben ErrorNumRefModel=Létezik egy hivatkozás az adatbázisban (%s), és nem kompatibilis ezzel a számozási szabállyal. A modul aktiválásához távolítsa el a rekordot vagy az átnevezett hivatkozást. ErrorQtyTooLowForThisSupplier=A mennyiség túl alacsony ehhez a szállítóhoz, vagy ennek a szállítónak nincs ára meghatározva ehhez a termékhez ErrorOrdersNotCreatedQtyTooLow=Néhány rendelés nem jött létre a túl alacsony mennyiség miatt @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=A letiltáshoz az objektumok állapo ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Az objektumok állapotának 'Piszkozat' vagy 'Letiltva' állapotúnak kell lennie az engedélyezéshez ErrorNoFieldWithAttributeShowoncombobox=A „%s” objektum definíciójában egyetlen mező sem rendelkezik „showoncombobox” tulajdonsággal. Nem lehet megmutatni a kombolistát. ErrorFieldRequiredForProduct=A '%s' mező kitöltése kötelező a(z) %s termékhez +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Probléma a %s terminál beállításában. ErrorAddAtLeastOneLineFirst=Először adjon hozzá legalább egy sort ErrorRecordAlreadyInAccountingDeletionNotPossible=Hiba, a rekord már átkerült a könyvelésbe, a törlés nem lehetséges. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Először be kell állítania a számla ErrorFailedToFindEmailTemplate=Nem sikerült megtalálni a %s kódnevű sablont ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=A szolgáltatás időtartama nincs meghatározva. Nincs mód az óraárak kiszámítására. ErrorActionCommPropertyUserowneridNotDefined=A felhasználó tulajdonosa kötelező -ErrorActionCommBadType=A kiválasztott eseménytípus (azonosító: %n, kód: %s) nem létezik az Eseménytípus szótárban +ErrorActionCommBadType=A kiválasztott eseménytípus (azonosító: %s, kód: %s) nem létezik az Eseménytípus szótárban CheckVersionFail=A verzióellenőrzés sikertelen ErrorWrongFileName=A fájl nevében nem lehet __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Nem szerepel a Fizetési feltételek szótárban, kérjük módosítsa. ErrorIsNotADraft=%s nem piszkozat ErrorExecIdFailed=Nem lehet végrehajtani az "id" parancsot -ErrorBadCharIntoLoginName=Jogosulatlan karakter a bejelentkezési névben -ErrorRequestTooLarge=Hiba, a kérés túl nagy +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=Nem Ön az %s szabadság jóváhagyója ErrorAttributeIsUsedIntoProduct=Ez az attribútum egy vagy több termékváltozatban használatos ErrorAttributeValueIsUsedIntoProduct=Ez az attribútumérték egy vagy több termékváltozatban használatos @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Hiba, minden összeget ugyanabba az oszlopba kell be ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Ön %s pénznemben próbálja kifizetni a számlákat %s pénznemű számláról ErrorInvoiceLoadThirdParty=Nem lehet betölteni harmadik féltől származó objektumot az „%s” számlához ErrorInvoiceLoadThirdPartyKey=Harmadik féltől származó „%s” kulcs nincs beállítva az „%s” számlához -ErrorDeleteLineNotAllowedByObjectStatus=A sor törlését az objektum tényleges állapota nem teszi lehetővé +ErrorDeleteLineNotAllowedByObjectStatus=A sor törlését az objektum aktuális állapota nem teszi lehetővé ErrorAjaxRequestFailed=Kérés sikertelen +ErrorThirpdartyOrMemberidIsMandatory=Harmadik fél vagy partnerségi tag kötelező +ErrorFailedToWriteInTempDirectory=Nem sikerült írni a temp könyvtárba +ErrorQuantityIsLimitedTo=A mennyiség korlátozott: %s +ErrorFailedToLoadThirdParty=Nem sikerült harmadik fél megtalálása/betöltése innen: id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=A PHP paraméter upload_max_filesize (%s) magasabb, mint a PHP post_max_size (%s) paramétere. Ez nem következetes beállítás. WarningPasswordSetWithNoAccount=Jelszó lett beállítva ehhez a taghoz. Felhasználói fiók azonban nem jött létre. Tehát ez a jelszó tárolva van, de nem használható a Dolibarr-ba való bejelentkezéshez. Külső modul/interfész használhatja, de ha nem kell bejelentkezési nevet vagy jelszót megadnia egy taghoz, akkor letilthatja a "Bejelentkezés kezelése minden taghoz" opciót a Tagmodul beállításainál. Ha kezelnie kell a bejelentkezést, de nincs szüksége jelszóra, a figyelmeztetés elkerülése érdekében hagyja üresen ezt a mezőt. Megjegyzés: Az e-mail bejelentkezésként is használható, ha a tag egy felhasználóhoz kapcsolódik. -WarningMandatorySetupNotComplete=Kattintson ide a kötelező paraméterek beállításához +WarningMandatorySetupNotComplete=Kattintson ide a fő paraméterek beállításához WarningEnableYourModulesApplications=Kattintson ide a modulok és alkalmazások engedélyezéséhez WarningSafeModeOnCheckExecDir=Figyelem, a PHP safe_mode opciója be van kapcsolva, ezért a parancsot a safe_mode_exec_dir php paraméter által deklarált könyvtárban kell tárolni. WarningBookmarkAlreadyExists=Már létezik egy könyvjelző ezzel a címmel vagy ezzel a céllal (URL). @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Figyelem, a konfigurációs fájlt (htdocs/conf WarningsOnXLines=Figyelmeztetések %s forrásrekordon WarningNoDocumentModelActivated=Nincs modell a dokumentum generálásához aktiválva. A rendszer alapértelmezés szerint egy modellt választ, amíg nem ellenőrzi a modul beállítását. WarningLockFileDoesNotExists=Figyelem! A telepítés befejezése után le kell tiltania a telepítő/migrációs eszközöket egy install.lock fájl hozzáadásával a %s könyvtárba. A fájl létrehozásának elhagyása súlyos biztonsági kockázatot jelent. -WarningUntilDirRemoved=Minden biztonsági figyelmeztetés (csak az adminisztrátorok számára látható) aktív marad mindaddig, amíg a biztonsági rés fennáll (vagy amíg az állandó MAIN_REMOVE_INSTALL_WARNING hozzáadásra kerül a Beállítás->Egyéb menüben). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Figyelem, a bezárás akkor is megtörténik, ha a forrás és a célelemek mennyisége eltér. Óvatosan engedélyezze ezt a funkciót. WarningUsingThisBoxSlowDown=Figyelem, ennek a doboznak a használata komolyan lelassítja az összes olyan oldalt, amelyen a doboz látható. WarningClickToDialUserSetupNotComplete=A ClickToDial információ beállítása a felhasználó számára nem fejeződött be (lásd a ClickToDial fület a felhasználói kártyán). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Figyelem, nem hozhat létre közvetlenül alfiókot, l WarningAvailableOnlyForHTTPSServers=Csak HTTPS biztonságos kapcsolat használata esetén érhető el. WarningModuleXDisabledSoYouMayMissEventHere=A %s modul nincs engedélyezve. Így sok eseményről lemaradhat itt. WarningPaypalPaymentNotCompatibleWithStrict=A 'Strict' érték miatt az online fizetési funkciók nem működnek megfelelően. Használja helyette a „Lax” szót. +WarningThemeForcedTo=Figyelmeztetés, a témát a MAIN_FORCETHEME rejtett állandó az %s értékre kényszerítette +WarningPagesWillBeDeleted=Figyelmeztetés, ezzel a webhely összes meglévő oldalát/tárolóját is törli. Előtte érdemes exportálnia webhelyét, hogy legyen biztonsági másolata a későbbi újra importáláshoz. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". -<<<<<<< FEJ -======= -<<<<<<< FEJ -<<<<<<< FEJ ->>>>>>> git@github.com:Dolibarr/dolibarr.git '15.0' ága # Validate RequireValidValue = Az érték nem érvényes RequireAtLeastXString = Legalább %s karakter szükséges @@ -347,12 +361,3 @@ BadSetupOfField = Hiba a mező rossz beállításában BadSetupOfFieldClassNotFoundForValidation = Hiba a mező rossz beállításában: Az osztály nem található az ellenőrzéshez BadSetupOfFieldFileNotFound = Hiba a mező rossz beállításában: A fájl nem található a felvételhez BadSetupOfFieldFetchNotCallable = Hiba a mező rossz beállításában: A lekérés nem hívható az osztályban -<<<<<<< FEJ -======= -======= -======= ->>>>>>> git@github.com:Dolibarr/dolibarr.git '15.0' ága ->>>>>>> git@github.com:Dolibarr/dolibarr.git '15.0' ága -======= ->>>>>>> git@github.com:Dolibarr/dolibarr.git '15.0' ága ->>>>>>> git@github.com:Dolibarr/dolibarr.git '15.0' ága diff --git a/htdocs/langs/hu_HU/eventorganization.lang b/htdocs/langs/hu_HU/eventorganization.lang index eb253d63dc4..8970d56af6f 100644 --- a/htdocs/langs/hu_HU/eventorganization.lang +++ b/htdocs/langs/hu_HU/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = A résztvevő létrehozására/hozzáad # Object # EventOrganizationConfOrBooth= Konferencia vagy stand +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Egy esemény szervezésének kezelése ConferenceOrBooth = Konferencia vagy stand ConferenceOrBoothTab = Konferencia vagy stand AmountPaid = Fizetett összeg DateOfRegistration = A regisztráció dátuma ConferenceOrBoothAttendee = Konferencia vagy stand résztvevője +ApplicantOrVisitor=Jelentkező vagy látogató +Speaker=Hangszóró # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Itt szavazhat egy konferenciára, vagy javasolh EvntOrgRegistrationConfHelpMessage = Itt javasolhat egy új konferenciát, amelyet animálhat az esemény alatt. EvntOrgRegistrationBoothHelpMessage = Itt jelentkezhet, hogy standot tarthasson az esemény alatt. ListOfSuggestedConferences = A javasolt konferenciák listája -ListOfSuggestedBooths = A javasolt fülkék listája -ListOfConferencesOrBooths=A konferenciák vagy a rendezvényprojekt standjainak listája +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Új konferencia javaslata SuggestBooth = Javasolj egy fülkét ViewAndVote = A javasolt események megtekintése és szavazás PublicAttendeeSubscriptionGlobalPage = Nyilvános link az eseményre való regisztrációhoz PublicAttendeeSubscriptionPage = Nyilvános hivatkozás csak erre az eseményre való regisztrációhoz MissingOrBadSecureKey = A biztonsági kulcs érvénytelen vagy hiányzik -EvntOrgWelcomeMessage = Ez az űrlap lehetővé teszi, hogy új résztvevőként regisztráljon az eseményre: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Ez a konferencia %s-kor kezdődik és %s-kor ér véget. ConferenceAttendeeFee = Konferencia résztvevői díja az eseményhez: '%s', %s és %s között. BoothLocationFee = A stand helye az eseményhez: '%s', %s és %s között @@ -130,7 +133,7 @@ LabelOfconference=Konferencia címke ConferenceIsNotConfirmed=A regisztráció nem érhető el, a konferencia még nincs megerősítve DateMustBeBeforeThan=az %s előtt az %s előtt kell lennie DateMustBeAfterThan=%s %s után kell lennie - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Regisztráció OrganizationEventConfRequestWasReceived=A konferenciára vonatkozó javaslatát megkaptuk OrganizationEventBoothRequestWasReceived=A standra vonatkozó kérése megérkezett @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Az esemény regisztrációján OrganizationEventBulkMailToAttendees=Ez egy emlékeztető arról, hogy résztvevőként részt vesz az eseményen OrganizationEventBulkMailToSpeakers=Emlékeztető arra, hogy előadóként vesz részt az eseményen OrganizationEventLinkToThirdParty=Harmadik félhez (ügyfélhez, szállítóhoz vagy partnerhez) mutató hivatkozás +OrganizationEvenLabelName=A konferencia vagy stand nyilvános neve NewSuggestionOfBooth=Jelentkezés egy standra NewSuggestionOfConference=Jelentkezés egy konferenciára @@ -154,7 +158,7 @@ VoteOk = Szavazatát elfogadták. AlreadyVoted = Már szavazott erre az eseményre. VoteError = Hiba történt a szavazás során, próbálja újra. -SubscriptionOk = Regisztrációját ellenőriztük +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Egy eseményre való feliratkozás megerősítése Attendee = Résztvevő PaymentConferenceAttendee = Konferencia résztvevőinek kifizetése @@ -162,6 +166,7 @@ PaymentBoothLocation = Fizetés a fülkében DeleteConferenceOrBoothAttendee=Részvevő eltávolítása RegistrationAndPaymentWereAlreadyRecorder=A %s e-mailhez már rögzítésre került egy regisztráció és egy fizetés EmailAttendee=Részvevő e-mail +EmailCompany=Company email EmailCompanyForInvoice=Vállalati e-mail-cím (a számlához, ha eltér a résztvevő e-mail-címétől) ErrorSeveralCompaniesWithEmailContactUs=Több ilyen e-mail-címmel rendelkező céget találtunk, így nem tudjuk automatikusan ellenőrizni regisztrációját. Kérjük, vegye fel velünk a kapcsolatot a %s címen kézi ellenőrzésért ErrorSeveralCompaniesWithNameContactUs=Több ilyen nevű céget találtunk, így nem tudjuk automatikusan ellenőrizni regisztrációját. Kérjük, vegye fel velünk a kapcsolatot a %s címen kézi ellenőrzésért diff --git a/htdocs/langs/hu_HU/exports.lang b/htdocs/langs/hu_HU/exports.lang index 5515fc659aa..8ebfb79b014 100644 --- a/htdocs/langs/hu_HU/exports.lang +++ b/htdocs/langs/hu_HU/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Exportálható mezők ExportedFields=Exportált mezők ImportModelName=Profilnév importálása ImportModelSaved=Importálási profil %s néven mentve. +ImportProfile=Profil importálása DatasetToExport=Exportálandó adatkészlet DatasetToImport=Fájl importálása adatkészletbe ChooseFieldsOrdersAndTitle=Mezők sorrendjének kiválasztása... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=A vonal típusa (0=termék, 1=szolgáltatás) FileWithDataToImport=Importálandó adatokat tartalmazó fájl FileToImport=Importálandó forrásfájl FileMustHaveOneOfFollowingFormat=Az importálandó fájlnak az alábbi formátumok valamelyikével kell rendelkeznie +DownloadEmptyExampleShort=Töltse le a mintafájlt DownloadEmptyExample=Töltse le az importálható mezőkre vonatkozó példákat és információkat tartalmazó sablonfájlt StarAreMandatory=A sablonfájlban minden *-gal jelölt mező kötelező ChooseFormatOfFileToImport=Válassza ki az importfájl formátumként használni kívánt fájlformátumot a %s ikonra kattintva annak kiválasztásához... @@ -82,7 +84,7 @@ SelectFormat=Válassza ki ezt az import fájlformátumot RunImportFile=Adatok importálása NowClickToRunTheImport=Ellenőrizze az importszimuláció eredményeit. Javítsa ki a hibákat, és tesztelje újra.
    Ha a szimuláció nem jelez hibát, folytathatja az adatok importálását az adatbázisba. DataLoadedWithId=Az importált adatokhoz minden adatbázistáblában lesz egy további mező a következő importazonosítóval: %s, hogy az importálással kapcsolatos probléma kivizsgálása esetén kereshetőek legyenek. -ErrorMissingMandatoryValue=A kötelező adatok üresek a forrásfájlban a(z) %s mezőben. +ErrorMissingMandatoryValue=A kötelező adatok üresek a forrásfájl %s oszlopában. TooMuchErrors=Még mindig %s másik forrássor van hibás, de a kimenet korlátozott. TooMuchWarnings=Még mindig %s másik forrássor van figyelmeztetéssel, de a kimenet korlátozott. EmptyLine=Üres sor (eldobásra kerül) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Az összes importált rekordot megtalálhatja az a NbOfLinesOK=A hibák és figyelmeztetések nélküli sorok száma: %s. NbOfLinesImported=A sikeresen importált sorok száma: %s. DataComeFromNoWhere=A beillesztendő érték a forrásfájl semmiből származik. -DataComeFromFileFieldNb=A beszúrandó érték a forrásfájl %s számú mezőjéből származik. -DataComeFromIdFoundFromRef=A forrásfájl %s számú mezőjéből származó érték a használandó szülőobjektum azonosítójának megkeresésére lesz használva (tehát a %s objektum, amelynek a ref. . forrásfájlból léteznie kell az adatbázisban). -DataComeFromIdFoundFromCodeId=A forrásfájl %s számú mezőjéből származó kód a használandó szülőobjektum azonosítójának megkeresésére lesz használva (tehát a forrásfájlból származó kódnak léteznie kell a %s szótárban ). Vegye figyelembe, hogy ha ismeri az azonosítót, a kód helyett a forrásfájlban is használhatja. Az importálásnak mindkét esetben működnie kell. +DataComeFromFileFieldNb=A beszúrandó érték a forrásfájl %s oszlopából származik. +DataComeFromIdFoundFromRef=The value that comes from the source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=A forrásfájlból származó adatok a következő mezőbe kerülnek: DataIDSourceIsInsertedInto=A forrásfájlban található adatok felhasználásával talált szülőobjektum azonosítója a következő mezőbe kerül beillesztésre: DataCodeIDSourceIsInsertedInto=A kódból talált szülősor azonosítója a következő mezőbe kerül beszúrásra: @@ -132,9 +134,14 @@ FormatControlRule=Formatszabályozási szabály ## imports updates KeysToUseForUpdates=A meglévő adatok frissítéséhez használható kulcs (oszlop) NbInsert=A beszúrt sorok száma: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=A frissített sorok száma: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=Több rekordot találtunk a következő szűrőkkel: %s StocksWithBatch=A termékek készletei és helye (raktár) tétel/sorozatszámmal WarningFirstImportedLine=Az első sor(ok) nem lesznek importálva az aktuális kijelöléssel NotUsedFields=Az adatbázis nem használt mezői SelectImportFieldsSource = Válassza ki az importálni kívánt forrásfájlmezőket és azok célmezőit az adatbázisban az egyes kijelölőmezők mezőinek kiválasztásával, vagy válasszon egy előre meghatározott importálási profilt: +MandatoryTargetFieldsNotMapped=Egyes kötelező célmezők nincsenek leképezve +AllTargetMandatoryFieldsAreMapped=Az összes kötelező értéket igénylő célmező le van képezve +ResultOfSimulationNoError=A szimuláció eredménye: Nincs hiba diff --git a/htdocs/langs/hu_HU/externalsite.lang b/htdocs/langs/hu_HU/externalsite.lang deleted file mode 100644 index 73ab6fbae3a..00000000000 --- a/htdocs/langs/hu_HU/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Külső weboldalra mutató link beállítása -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Az ExternalSite modul nincs megfelelően beállítva. -ExampleMyMenuEntry=A menüpontom diff --git a/htdocs/langs/hu_HU/ftp.lang b/htdocs/langs/hu_HU/ftp.lang deleted file mode 100644 index 9d666b1ade1..00000000000 --- a/htdocs/langs/hu_HU/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Kliens modul beállítása -NewFTPClient=Új FTP kapcsolat beállítása -FTPArea=FTP terület -FTPAreaDesc=A képernyő egy FTP-kiszolgáló egy nézetét mutatja. -SetupOfFTPClientModuleNotComplete=Az FTP kliens modul telepítése hiányosnak tűnik -FTPFeatureNotSupportedByYourPHP=A PHP beállítása nem támogatja az FTP funkciókat -FailedToConnectToFTPServer=Nem sikerült csatlakozni az FTP szerverhez (szerver %s, port %s) -FailedToConnectToFTPServerWithCredentials=Nem sikerült bejelentkezni FTP szerverre a megadott felhasználó névvel/jelszóval. -FTPFailedToRemoveFile=Nem sikerült eltávolítani: %s. -FTPFailedToRemoveDir=Az %s könyvtár eltávolítása nem sikerült: ellenőrizze az engedélyeket és hogy a könyvtár üres. -FTPPassiveMode=Passzív mód -ChooseAFTPEntryIntoMenu=Válasszon FTP-helyet a menüből ... -FailedToGetFile=Nem sikerült a %s fájlokat letölteni diff --git a/htdocs/langs/hu_HU/holiday.lang b/htdocs/langs/hu_HU/holiday.lang index ff7ace94f57..432cfc2c483 100644 --- a/htdocs/langs/hu_HU/holiday.lang +++ b/htdocs/langs/hu_HU/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Szabadság +Holidays=Szabadságok +Holiday=Hagyd el CPTitreMenu=Szabadság MenuReportMonth=Havi kimutatás MenuAddCP=Új szabadságkérelem +MenuCollectiveAddCP=Új kollektív szabadságkérelem NotActiveModCP=Engedélyeznie kell az Szabadság modult az oldal megtekintéséhez. AddCP=Szabadság kérelem létrehozása DateDebCP=Kezdő dátum @@ -56,6 +58,7 @@ ConfirmDeleteCP=Megerősíti a szabadság kérelem törlését? ErrorCantDeleteCP=Hiba, hogy nincs joga törölni ezt a szabadság kérelmet. CantCreateCP=Nincs joga szabadság kérelmek benyújtására. InvalidValidatorCP=Ki kell választania szabadság kérelmének jóváhagyóját. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Ki kell választani egy kezdő dátumot. NoDateFin=Ki kell választania egy befejezési dátumot. ErrorDureeCP=A szabadság kérelme nem tartalmaz munkanapot. @@ -79,6 +82,8 @@ MotifCP=Ok UserCP=Felhasználó ErrorAddEventToUserCP=Hiba történt a kivételes szabadság hozzáadása közben. AddEventToUserOkCP=A rendkívüli szabadság hozzáadása befejeződött. +ErrorFieldRequiredUserOrGroup=A "csoport" mezőt vagy a "felhasználó" mezőt ki kell tölteni +fusionGroupsUsers=A csoportok és a felhasználói mező összevonódnak MenuLogCP=Változásnaplók megtekintése LogCP=A "Szabadság egyenleg" összes frissítésének naplója ActionByCP=Frissítette @@ -86,6 +91,13 @@ UserUpdateCP=Frissítve ehhez PrevSoldeCP=Előző egyenleg NewSoldeCP=Új egyenleg alreadyCPexist=Erre az időszakra már küldtek szabadság kérelmet. +UseralreadyCPexist=Erre az időszakra már küldtek szabadságkérést %s számára. +groups=Csoportok +users=Felhasználók +AutoSendMail=Automatikus postázás +NewHolidayForGroup=Új kollektív szabadságkérelem +SendRequestCollectiveCP=Közös szabadsági kérelem küldése +AutoValidationOnCreate=Automatikus érvényesítés FirstDayOfHoliday=A szabadság kérelmének kezdő napja LastDayOfHoliday=A szabadság kérelmének utolsó napja BoxTitleLastLeaveRequests=A legutóbbi %s módosított szabadság kérelem @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s általában NEM munkanap BlockHolidayIfNegative=Letiltás, ha az egyenleg negatív LeaveRequestCreationBlockedBecauseBalanceIsNegative=A szabadság kérelem létrehozása le van tiltva, mert az egyenlege negatív ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=A(z) %s szabadság kérelemnek tervezettnek kell lennie, törölték vagy megtagadták a törlést +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Az %s fennmaradó napjainak egyenlege nem módosult diff --git a/htdocs/langs/hu_HU/hrm.lang b/htdocs/langs/hu_HU/hrm.lang index 575398a8e3a..9d63812f9fd 100644 --- a/htdocs/langs/hu_HU/hrm.lang +++ b/htdocs/langs/hu_HU/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Nyitott létesítmény CloseEtablishment=Létesítmény bezárása # Dictionary DictionaryPublicHolidays=Szabadság - Munkaszüneti napok -DictionaryDepartment=HRM - Osztálylista +DictionaryDepartment=HRM - Szervezeti egység DictionaryFunction=HRM – Munkaköri pozíciók # Module Employees=Alkalmazottak @@ -70,9 +70,9 @@ RequiredSkills=Szükséges készségek ehhez a munkához UserRank=Felhasználói rang SkillList=Képességlista SaveRank=Rang mentése -knowHow=Szakértelem -HowToBe=Hogyan legyünk -knowledge=tudás +TypeKnowHow=Szakértelem +TypeHowToBe=Hogyan legyünk +TypeKnowledge=tudás AbandonmentComment=Elhagyó megjegyzés DateLastEval=Utolsó értékelés dátuma NoEval=Nem történt értékelés ehhez az alkalmazotthoz @@ -88,3 +88,5 @@ DeleteSkill = Képesség eltávolítva SkillsExtraFields=További tulajdonságok (készségek) JobsExtraFields=További tulajdonságok (munkahelyek) EvaluationsExtraFields=További tulajdonságok (értékelések) +NeedBusinessTravels=Üzleti utakra van szükség +NoDescription=Nincs leírás diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang index b14d3c68dfc..ecc3ba04460 100644 --- a/htdocs/langs/hu_HU/install.lang +++ b/htdocs/langs/hu_HU/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=A %s konfigurációs fájl nem írható. Ellenőriz ConfFileIsWritable=%s konfigurációs fájl írható. ConfFileMustBeAFileNotADir=A %s konfigurációs fájlnak fájlnak kell lennie, nem könyvtárnak. ConfFileReload=Paraméterek újratöltése a konfigurációs fájlból. -NoReadableConfFileSoStartInstall=Az conf/conf.php konfigurációs fájl nem létezik, vagy nem használható újra. Futtatjuk a telepítési folyamatot, hogy megpróbáljuk inicializálni. +NoReadableConfFileSoStartInstall=Az conf/conf.php konfigurációs fájl nem létezik vagy nem olvasható. Futtatjuk a telepítési folyamatot, hogy megpróbáljuk inicializálni. PHPSupportPOSTGETOk=Ez a PHP verzió támogatja POST és GET változókat. PHPSupportPOSTGETKo=Lehetséges, hogy a PHP beállítása nem támogatja a POST és/vagy GET változókat. Ellenőrizze a variables_order paramétert a php.ini fájlban. PHPSupportSessions=Ez a PHP verzió támogatja a munkameneteket. @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Lehet, hogy rossz értéket adott meg a(z) '%s' para ErrorFailedToCreateDatabase=Nem sikerült létrehozni a(z) '%s' adatbázist. ErrorFailedToConnectToDatabase=Nem sikerült csatlakozni a(z) '%s' adatbázishoz. ErrorDatabaseVersionTooLow=Az adatbázis (%s) verziója túl alacsony. %s verzió vagy magasabb szükséges -ErrorPHPVersionTooLow=Túl régi a PHP verzió. Legalább %s kell. +ErrorPHPVersionTooLow=A PHP verzió túl régi. Az %s vagy újabb verzió szükséges. +ErrorPHPVersionTooHigh=A PHP verzió túl magas. Az %s vagy régebbi verzió szükséges. ErrorConnectedButDatabaseNotFound=A kiszolgálóhoz való csatlakozás sikeres, de a '%s' adatbázis nem található. ErrorDatabaseAlreadyExists='%s' adatbázis már létezik. IfDatabaseNotExistsGoBackAndUncheckCreate=Ha az adatbázis nem létezik, menjen vissza és jelölje be az "Adatbázis létrehozása" opciót. diff --git a/htdocs/langs/hu_HU/interventions.lang b/htdocs/langs/hu_HU/interventions.lang index c73ca523aa8..572564db6ff 100644 --- a/htdocs/langs/hu_HU/interventions.lang +++ b/htdocs/langs/hu_HU/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Biztosan vissza akarja nyitni a(z) %s beavatkoz GenerateInter=Beavatkozás generálása FichinterNoContractLinked=Az %s beavatkozás csatolt szerződés nélkül jött létre. ErrorFicheinterCompanyDoesNotExist=Társaság nem létezik. Beavatkozás nem jött létre. +NextDateToIntervention=A következő beavatkozás dátumának generálása +NoIntervention=No intervention diff --git a/htdocs/langs/hu_HU/knowledgemanagement.lang b/htdocs/langs/hu_HU/knowledgemanagement.lang index 4f8d74a2f96..7c23f29b925 100644 --- a/htdocs/langs/hu_HU/knowledgemanagement.lang +++ b/htdocs/langs/hu_HU/knowledgemanagement.lang @@ -18,37 +18,37 @@ # # Module label 'ModuleKnowledgeManagementName' -ModuleKnowledgeManagementName = Knowledge Management System +ModuleKnowledgeManagementName = Tudásmenedzsment rendszer # Module description 'ModuleKnowledgeManagementDesc' -ModuleKnowledgeManagementDesc=Manage a Knowledge Management (KM) or Help-Desk base +ModuleKnowledgeManagementDesc=Tudásmenedzsment (KM) vagy Help-Desk bázis kezelése # # Admin page # -KnowledgeManagementSetup = Knowledge Management System setup +KnowledgeManagementSetup = Tudáskezelő rendszer beállítása Settings = Beállítások -KnowledgeManagementSetupPage = Knowledge Management System setup page +KnowledgeManagementSetupPage = Tudáskezelő rendszer beállítási oldala # # About page # About = Névjegy -KnowledgeManagementAbout = About Knowledge Management -KnowledgeManagementAboutPage = Knowledge Management about page +KnowledgeManagementAbout = A tudásmenedzsmentről +KnowledgeManagementAboutPage = Tudáskezelés az oldalról KnowledgeManagementArea = Tudásmenedzsment MenuKnowledgeRecord = Tudásbázis -ListKnowledgeRecord = List of articles -NewKnowledgeRecord = New article -ValidateReply = Validate solution -KnowledgeRecords = Articles -KnowledgeRecord = Árucikk -KnowledgeRecordExtraFields = Extrafields for Article +ListKnowledgeRecord = Cikkek listája +NewKnowledgeRecord = Új cikk +ValidateReply = A megoldás érvényesítése +KnowledgeRecords = Cikkek +KnowledgeRecord = Cikk +KnowledgeRecordExtraFields = Extra mezők a cikkhez GroupOfTicket=Jegyek csoportjai -YouCanLinkArticleToATicketCategory=You can link an article to a ticket group (so the article will be suggested during qualification of new tickets) -SuggestedForTicketsInGroup=Suggested for tickets when group is +YouCanLinkArticleToATicketCategory=A cikket összekapcsolhatja egy jegycsoporttal (így a cikk kiemelve lesz a csoport minden jegyén) +SuggestedForTicketsInGroup=Jegyekhez ajánlott, ha csoport van -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=Beállítás elavultként +ConfirmCloseKM=Megerősíti, hogy a cikk elavultként zárult be? +ConfirmReopenKM=Szeretné visszaállítani ezt a cikket "Érvényesített" állapotba? diff --git a/htdocs/langs/hu_HU/languages.lang b/htdocs/langs/hu_HU/languages.lang index f149fa1eae4..681769b2118 100644 --- a/htdocs/langs/hu_HU/languages.lang +++ b/htdocs/langs/hu_HU/languages.lang @@ -1,53 +1,60 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopian +Language_am_ET=Etióp Language_ar_AR=Arab -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=Arab (Algéria) Language_ar_EG=Arab (Egyiptom) -Language_ar_MA=Arabic (Moroco) +Language_ar_JO=arab (Jordánia) +Language_ar_MA=Arab (marokó) Language_ar_SA=Arab -Language_ar_TN=Arabic (Tunisia) -Language_ar_IQ=Arabic (Iraq) -Language_as_IN=Assamese -Language_az_AZ=Azerbaijani +Language_ar_TN=Arab (Tunézia) +Language_ar_IQ=Arab (Irak) +Language_as_IN=Asszámi +Language_az_AZ=Azerbajdzsán Language_bn_BD=Bengáli -Language_bn_IN=Bengali (India) +Language_bn_IN=Bengáli (India) Language_bg_BG=Bolgár +Language_bo_CN=Ttibeti Language_bs_BA=Bosnyák Language_ca_ES=Katalán Language_cs_CZ=Cseh +Language_cy_GB=Walesi Language_da_DA=Dán Language_da_DK=Dán Language_de_DE=Német Language_de_AT=Német (Ausztria) Language_de_CH=Német (Svájc) +Language_de_LU=German (Luxembourg) Language_el_GR=Görög Language_el_CY=Görög (Ciprus) +Language_en_AE=Angol (Egyesült Arab Emírségek) Language_en_AU=Angol (Ausztrália) Language_en_CA=Angol (Kanada) Language_en_GB=Angol (Egyesült Királyság) Language_en_IN=Angol (India) Language_en_NZ=Angol (Új Zéland) Language_en_SA=English (Szaúd-Arábia) -Language_en_SG=English (Singapore) +Language_en_SG=Angol (Szingapúr) Language_en_US=Angol (Egyesült Államok) Language_en_ZA=English (Dél-Afrika) +Language_en_ZW=English (Zimbabwe) Language_es_ES=Spanyol Language_es_AR=Spanyo (Argentina) Language_es_BO=Spanyol (Bolívia) Language_es_CL=Spanyol (Chile) Language_es_CO=Spanyol (Kolumbia) +Language_es_CR=spanyol (Costa Rica) Language_es_DO=Spanyol (Dominikai Köztársaság) Language_es_EC=Spanyol (Ecuador) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=Spanyol (Guatemala) Language_es_HN=Spanyol (Honduras) Language_es_MX=Spanyol (Mexikó) Language_es_PA=Spanyol (Panama) Language_es_PY=Spanyol (Paraguay) Language_es_PE=Spanyol (Peru) Language_es_PR=Spanyol (Puerto Rico) -Language_es_US=Spanish (USA) +Language_es_US=Spanyol (USA) Language_es_UY=Spanyol (Uruguay) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=Spanyol (Guatemala) Language_es_VE=Spanyol (Venezuela) Language_et_EE=Észt Language_eu_ES=Baszk @@ -56,14 +63,14 @@ Language_fi_FI=Finn Language_fr_BE=Francia (Belgium) Language_fr_CA=Francia (Kanada) Language_fr_CH=Francia (Svájc) -Language_fr_CI=French (Cost Ivory) -Language_fr_CM=French (Cameroun) +Language_fr_CI=Francia (Cost Ivory) +Language_fr_CM=Francia (Kamerun) Language_fr_FR=Francia -Language_fr_GA=French (Gabon) +Language_fr_GA=Francia (Gabon) Language_fr_NC=Francia (Új-Kaledónia) -Language_fr_SN=French (Senegal) +Language_fr_SN=Francia (Szenegál) Language_fy_NL=Fríz -Language_gl_ES=Galician +Language_gl_ES=Galíciai Language_he_IL=Héber Language_hi_IN=Hindi (India) Language_hr_HR=Horvát @@ -71,10 +78,10 @@ Language_hu_HU=Magyar Language_id_ID=Indonéz Language_is_IS=Grönlandi Language_it_IT=Olasz -Language_it_CH=Italian (Switzerland) +Language_it_CH=Olasz (Svájc) Language_ja_JP=Japán Language_ka_GE=Grúz -Language_kk_KZ=Kazakh +Language_kk_KZ=Kazah Language_km_KH=Khmer Language_kn_IN=Kanada Language_ko_KR=Koreai @@ -83,19 +90,22 @@ Language_lt_LT=Litván Language_lv_LV=Lett Language_mk_MK=Macedóniai Language_mn_MN=Mongol +Language_my_MM=Burmai Language_nb_NO=Norvég (Bokmål) -Language_ne_NP=Nepali +Language_ne_NP=Nepáli Language_nl_BE=Holland (Belgium) Language_nl_NL=Holland Language_pl_PL=Lengyel -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=Portugál (Angola) +Language_pt_MZ=Portugál (Mozambik) Language_pt_BR=Portugál (Brazilia) Language_pt_PT=Portugál -Language_ro_MD=Romanian (Moldavia) +Language_ro_MD=Román (Moldávia) Language_ro_RO=Román Language_ru_RU=Orosz Language_ru_UA=Orosz (Ukrajna) -Language_tg_TJ=Tajik +Language_ta_IN=Tamil +Language_tg_TJ=Tádzsik Language_tr_TR=Török Language_sl_SI=Szlovén Language_sv_SV=Svéd @@ -103,12 +113,14 @@ Language_sv_SE=Svéd Language_sq_AL=Albán Language_sk_SK=Szlovák Language_sr_RS=Szerb +Language_sw_KE=Swahili Language_sw_SW=Kiswahili Language_th_TH=Thai Language_uk_UA=Ukrán +Language_ur_PK=Urdu Language_uz_UZ=Üzbég Language_vi_VN=Vietnami Language_zh_CN=Kínai Language_zh_TW=Kínai (hagyományos) -Language_zh_HK=Chinese (Hong Kong) +Language_zh_HK=Kínai (Hongkong) Language_bh_MY=Maláj diff --git a/htdocs/langs/hu_HU/loan.lang b/htdocs/langs/hu_HU/loan.lang index 1efd439d66f..68e53505d69 100644 --- a/htdocs/langs/hu_HU/loan.lang +++ b/htdocs/langs/hu_HU/loan.lang @@ -1,34 +1,34 @@ # Dolibarr language file - Source file is en_US - loan Loan=Hitel -Loans=Kölcsönök -NewLoan=Új hitel\n -ShowLoan=Hitel megjelenítése\n -PaymentLoan=Hiteltörlesztés -LoanPayment=Hiteltörlesztés -ShowLoanPayment=Mutasd a kölcsön kifizetését\n +Loans=Hitelek +NewLoan=Új hitel +ShowLoan=Hitel megjelenítése +PaymentLoan=Hitelfizetés +LoanPayment=Hitelfizetés +ShowLoanPayment=Hitelfizetés megjelenítése LoanCapital=Tőke Insurance=Biztosítás Interest=Kamat -Nbterms=Number of terms -Term=Term -LoanAccountancyCapitalCode=Accounting account capital -LoanAccountancyInsuranceCode=Accounting account insurance -LoanAccountancyInterestCode=Accounting account interest -ConfirmDeleteLoan=Confirm deleting this loan -LoanDeleted=Loan Deleted Successfully -ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Fizetett kölcsön\n -ListLoanAssociatedProject=List of loan associated with the project -AddLoan=Hitel létrehozása\n -FinancialCommitment=Financial commitment +Nbterms=Kifejezések száma +Term=Határidő +LoanAccountancyCapitalCode=Számviteli számla tőke +LoanAccountancyInsuranceCode=Számviteli számlabiztosítás +LoanAccountancyInterestCode=Számviteli számla kamatai +ConfirmDeleteLoan=Erősítse meg a hitel törlését +LoanDeleted=A hitel sikeresen törölve +ConfirmPayLoan=A hitel kifizetésének megerősítése +LoanPaid=Hitel fizetve +ListLoanAssociatedProject=A projekthez társított hitelek listája +AddLoan=Hitel létrehozása +FinancialCommitment=Pénzügyi kötelezettségvállalás InterestAmount=Kamat -CapitalRemain=Capital remain -TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started -CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule +CapitalRemain=Tőke maradt +TermPaidAllreadyPaid = Ez a kifejezés már ki van fizetve +CantUseScheduleWithLoanStartedToPaid = Nem lehet ütemtervet létrehozni egy hitelhez, ha a fizetés megkezdődött +CantModifyInterestIfScheduleIsUsed = Nem módosíthatja az érdeklődést, ha ütemezést használ # Admin -ConfigLoan=Configuration of the module loan -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default -CreateCalcSchedule=Edit financial commitment +ConfigLoan=A hitel modul konfigurálása +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) +CreateCalcSchedule=Pénzügyi kötelezettségvállalás szerkesztése diff --git a/htdocs/langs/hu_HU/mailmanspip.lang b/htdocs/langs/hu_HU/mailmanspip.lang index bab4b3576b4..47819584733 100644 --- a/htdocs/langs/hu_HU/mailmanspip.lang +++ b/htdocs/langs/hu_HU/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -MailmanSpipSetup=Mailman and SPIP module Setup -MailmanTitle=Mailman mailing list system -TestSubscribe=To test subscription to Mailman lists -TestUnSubscribe=To test unsubscribe from Mailman lists -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully -SynchroMailManEnabled=A Mailman update will be performed -SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password -DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions -DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions -DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) -SPIPTitle=SPIP Content Management System -DescADHERENT_SPIP_SERVEUR=SPIP Server -DescADHERENT_SPIP_DB=SPIP database name -DescADHERENT_SPIP_USER=SPIP database login -DescADHERENT_SPIP_PASS=SPIP database password -AddIntoSpip=Add into SPIP -AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? -AddIntoSpipError=Failed to add the user in SPIP -DeleteIntoSpip=Remove from SPIP -DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? -DeleteIntoSpipError=Failed to suppress the user from SPIP -SPIPConnectionFailed=Failed to connect to SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +MailmanSpipSetup=Mailman és SPIP modul beállítása +MailmanTitle=Mailman levelezőlista rendszer +TestSubscribe=A Mailman listákra való feliratkozás tesztelése +TestUnSubscribe=A Mailman listákról való leiratkozás tesztelése +MailmanCreationSuccess=Az előfizetési teszt sikeresen végrehajtva +MailmanDeletionSuccess=A leiratkozási teszt sikeresen végrehajtva +SynchroMailManEnabled=A Mailman frissítés végrehajtásra kerül +SynchroSpipEnabled=A SPIP frissítés végrehajtásra kerül +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman rendszergazdai jelszó +DescADHERENT_MAILMAN_URL=URL a Mailman-előfizetésekhez +DescADHERENT_MAILMAN_UNSUB_URL=URL a Mailman leiratkozásokhoz +DescADHERENT_MAILMAN_LISTS=Lista(k) az új tagok automatikus bejegyzéséhez (vesszővel elválasztva) +SPIPTitle=SPIP Tartalomkezelő rendszer +DescADHERENT_SPIP_SERVEUR=SPIP szerver +DescADHERENT_SPIP_DB=SPIP adatbázis neve +DescADHERENT_SPIP_USER=SPIP adatbázis bejelentkezés +DescADHERENT_SPIP_PASS=SPIP adatbázis jelszava +AddIntoSpip=Hozzáadás a SPIP-hez +AddIntoSpipConfirmation=Biztosan felveszi ezt a tagot a SPIP-be? +AddIntoSpipError=Nem sikerült hozzáadni a felhasználót a SPIP-hez +DeleteIntoSpip=Eltávolítás a SPIP-ből +DeleteIntoSpipConfirmation=Biztosan eltávolítja ezt a tagot a SPIP-ből? +DeleteIntoSpipError=Nem sikerült letiltani a felhasználót a SPIP-ről +SPIPConnectionFailed=Nem sikerült csatlakozni a SPIP-hez +SuccessToAddToMailmanList=%s sikeresen hozzáadva a %s levelezőlistához vagy a SPIP adatbázishoz +SuccessToRemoveToMailmanList=%s sikeresen eltávolítva a %s levelezőlistából vagy a SPIP adatbázisból diff --git a/htdocs/langs/hu_HU/mails.lang b/htdocs/langs/hu_HU/mails.lang index 1a52ca87821..b9fa26c7dec 100644 --- a/htdocs/langs/hu_HU/mails.lang +++ b/htdocs/langs/hu_HU/mails.lang @@ -1,180 +1,181 @@ # Dolibarr language file - Source file is en_US - mails Mailing=Levelezés -EMailing=eLevelezés -EMailings=eLevelezések -AllEMailings=Minden eLevelezés -MailCard=eLevelezés kártya +EMailing=E-mailezés +EMailings=E-mailek +AllEMailings=Minden e-mail +MailCard=E-mail kártya MailRecipients=Címzettek MailRecipient=Címzett MailTitle=Leírás -MailFrom=Küldő -MailErrorsTo=Hiba küldése ide +MailFrom=Feladó +MailErrorsTo=Hibák küldése ide MailReply=Válasz cím -MailTo=Fogadó(k) -MailToUsers=To user(s) -MailCC=Másolat ide -MailToCCUsers=Copy to users(s) -MailCCC=Eltárol másolat ide -MailTopic=Email subject +MailTo=Címzett +MailToUsers=Felhasználó(k)nak +MailCC=Másolás ide +MailToCCUsers=Másolás felhasználó(k)hoz +MailCCC=Gyorsítótárazott másolat ide +MailTopic=E-mail tárgya MailText=Üzenet MailFile=Csatolt fájlok -MailMessage=Email tartalma -SubjectNotIn=Not in Subject -BodyNotIn=Not in Body -ShowEMailing=eLevelezés mutatása -ListOfEMailings=eLevelezések mutatása -NewMailing=Új eLevelezés -EditMailing=eLevelezés szerkesztése -ResetMailing=eLevelezés újraküldése -DeleteMailing=eLevelezés törlése -DeleteAMailing=eLevél törlése -PreviewMailing=eLevelezés előnézete -CreateMailing=eLevelezés létrehozása -TestMailing=Teszt eMail -ValidMailing=Hiteles eLevelezés +MailMessage=E-mail törzse +SubjectNotIn=Nincs a tárgyban +BodyNotIn=Nincs a testben +ShowEMailing=E-mailek megjelenítése +ListOfEMailings=E-mailek listája +NewMailing=Új e-mail +EditMailing=E-mail szerkesztése +ResetMailing=E-mail újraküldése +DeleteMailing=E-mailezés törlése +DeleteAMailing=E-mail törlése +PreviewMailing=E-mailezés előnézete +CreateMailing=E-mail létrehozása +TestMailing=Teszt e-mail +ValidMailing=Érvényes e-mail MailingStatusDraft=Piszkozat -MailingStatusValidated=Hitelesítve +MailingStatusValidated=Érvényesített MailingStatusSent=Elküldve -MailingStatusSentPartialy=Elküldött részben -MailingStatusSentCompletely=Mindenkinek elküldve +MailingStatusSentPartialy=Részben elküldve +MailingStatusSentCompletely=Teljesen elküldve MailingStatusError=Hiba MailingStatusNotSent=Nincs elküldve -MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery -MailingSuccessfullyValidated=EMailing successfully validated -MailUnsubcribe=Unsubscribe -MailingStatusNotContact=Don't contact anymore -MailingStatusReadAndUnsubscribe=Read and unsubscribe -ErrorMailRecipientIsEmpty=eMail címzett üres -WarningNoEMailsAdded=Nincs új a címzettek listájához adható eMail. -ConfirmValidMailing=Are you sure you want to validate this emailing? -ConfirmResetMailing=Warning, by re-initializing emailing %s, you will allow the re-sending this email in a bulk mailing. Are you sure you want to do this? -ConfirmDeleteMailing=Are you sure you want to delete this emailing? -NbOfUniqueEMails=No. of unique emails -NbOfEMails=No. of EMails -TotalNbOfDistinctRecipients=Megkülönböztethető címzettek száma -NoTargetYet=Nincs címzett megadva ('Címzettek fül') -NoRecipientEmail=No recipient email for %s +MailSuccessfulySent=E-mail (%s-tól %s-ig) sikeresen elfogadva kézbesítésre +MailingSuccessfullyValidated=Az e-mailezés sikeresen érvényesítve +MailUnsubcribe=Leiratkozás +MailingStatusNotContact=Ne lépjen kapcsolatba többé +MailingStatusReadAndUnsubscribe=Olvasás és leiratkozás +ErrorMailRecipientIsEmpty=Az e-mail címzettje üres +WarningNoEMailsAdded=Nincs új e-mail a címzettek listájához. +ConfirmValidMailing=Biztosan érvényesíteni szeretné ezt az e-mailt? +ConfirmResetMailing=Figyelem! A(z) %s e-mail újraindításával engedélyezi ennek az e-mailnek a tömeges levélben történő újraküldését. Biztosan ezt akarod csinálni? +ConfirmDeleteMailing=Biztosan törölni szeretné ezt az e-mailt? +NbOfUniqueEMails=Egyedi e-mailek száma +NbOfEMails=E-mailek száma +TotalNbOfDistinctRecipients=Elkülönülő címzettek száma +NoTargetYet=Még nincsenek megadva címzettek (Ugrás a "Címzettek" lapra) +NoRecipientEmail=Nincs címzett e-mail a következőhöz: %s RemoveRecipient=Címzett eltávolítása -YouCanAddYourOwnPredefindedListHere=To create your email selector module, see htdocs/core/modules/mailings/README. -EMailTestSubstitutionReplacedByGenericValues=When using test mode, substitutions variables are replaced by generic values +YouCanAddYourOwnPredefindedListHere=Az e-mail-választó modul létrehozásához lásd: htdocs/core/modules/mailings/README. +EMailTestSubstitutionReplacedByGenericValues=Tesztmód használatakor a helyettesítési változókat általános értékekkel helyettesítik MailingAddFile=A fájl csatolása -NoAttachedFiles=Nem csatolt fájlok -BadEMail=Bad value for Email -EMailNotDefined=Email not defined -ConfirmCloneEMailing=Are you sure you want to clone this emailing? -CloneContent=Clone üzenet -CloneReceivers=Cloner címzettek -DateLastSend=Date of latest sending -DateSending=Dátum küldése -SentTo=Küldött %s -MailingStatusRead=Olvas -YourMailUnsubcribeOK=The email %s is correctly unsubscribe from mailing list -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature -EMailSentToNRecipients=Email sent to %s recipients. -EMailSentForNElements=Email sent for %s elements. -XTargetsAdded=%s recipients added into target list -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version). -AllRecipientSelected=The recipients of the %s record selected (if their email is known). -GroupEmails=Group emails -OneEmailPerRecipient=One email per recipient (by default, one email per record selected) -WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them. -ResultOfMailSending=Result of mass Email sending -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent -SentXXXmessages=%s message(s) sent. -ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? -MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters -MailingModuleDescContactsByCompanyCategory=Contacts by third-party category -MailingModuleDescContactsByCategory=Contacts by categories -MailingModuleDescContactsByFunction=Contacts by position -MailingModuleDescEmailsFromFile=Emails from file -MailingModuleDescEmailsFromUser=Emails input by user -MailingModuleDescDolibarrUsers=Users with Emails -MailingModuleDescThirdPartiesByCategories=Third parties (by categories) -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. -EmailCollectorFilterDesc=All filters must match to have an email being collected +NoAttachedFiles=Nincsenek csatolt fájlok +BadEMail=Rossz az e-mail érték +EMailNotDefined=E-mail nincs megadva +ConfirmCloneEMailing=Biztosan klónozni szeretné ezt az e-mailt? +CloneContent=Üzenet klónozása +CloneReceivers=Cloner címzettjei +DateLastSend=A legutóbbi küldés dátuma +DateSending=Küldés dátuma +SentTo=Elküldve a következőnek: %s +MailingStatusRead=Olvasás +YourMailUnsubcribeOK=A(z) %s e-mail helyesen leiratkozott a levelezőlistáról +ActivateCheckReadKey=Az "Elolvasott nyugta" és a "Leiratkozás" funkcióhoz használt URL titkosítására használt kulcs +EMailSentToNRecipients=E-mail elküldve %s címzettnek. +EMailSentForNElements=E-mail elküldve a %s elemhez. +XTargetsAdded=%s címzett hozzáadva a céllistához +OnlyPDFattachmentSupported=Ha a PDF dokumentumokat már létrehozták az elküldendő objektumokhoz, akkor az e-mailhez csatolva lesznek. Ha nem, a rendszer nem küld e-mailt (azt is vegye figyelembe, hogy ebben a verzióban csak a pdf-dokumentumok támogatottak mellékletként a tömeges küldés során). +AllRecipientSelected=A kiválasztott %s rekord címzettjei (ha ismert az e-mail címük). +GroupEmails=Csoportos e-mailek +OneEmailPerRecipient=Címzettenként egy e-mail (alapértelmezés szerint rekordonként egy e-mail van kiválasztva) +WarningIfYouCheckOneRecipientPerEmail=Figyelem, ha bejelöli ezt a jelölőnégyzetet, az azt jelenti, hogy több különböző kiválasztott rekordhoz csak egy e-mailt küldünk, így ha az üzenet egy rekord adataira hivatkozó helyettesítő változókat tartalmaz, akkor ezek cseréje nem lehetséges. +ResultOfMailSending=Tömeges e-mail küldés eredménye +NbSelected=Kiválasztott szám +NbIgnored=A szám figyelmen kívül hagyva +NbSent=Elküldött szám +SentXXXmessages=%s üzenet elküldve. +ConfirmUnvalidateEmailing=Biztosan módosítani szeretné a(z) %s e-mailt piszkozat állapotra? +MailingModuleDescContactsWithThirdpartyFilter=Kapcsolatfelvétel az ügyfélszűrőkkel +MailingModuleDescContactsByCompanyCategory=Kapcsolatfelvételek harmadik fél kategóriája szerint +MailingModuleDescContactsByCategory=Kategóriák szerinti névjegyek +MailingModuleDescContactsByFunction=Kapcsolattartók pozíció szerint +MailingModuleDescEmailsFromFile=E-mailek fájlból +MailingModuleDescEmailsFromUser=E-mailek a felhasználó által +MailingModuleDescDolibarrUsers=E-mailekkel rendelkező felhasználók +MailingModuleDescThirdPartiesByCategories=Harmadik felek (kategóriák szerint) +SendingFromWebInterfaceIsNotAllowed=A webes felületről történő küldés nem megengedett. +EmailCollectorFilterDesc=Minden szűrőnek meg kell egyeznie ahhoz, hogy e-mailt gyűjtsön # Libelle des modules de liste de destinataires mailing -LineInFile=Vonal %s fájlban -RecipientSelectionModules=Meghatározott kérelmek címzett kiválasztása +LineInFile=%s sor a fájlban +RecipientSelectionModules=Meghatározott kérések a címzett kiválasztásához MailSelectedRecipients=Kiválasztott címzettek -MailingArea=EMailings terület -LastMailings=Latest %s emailings -TargetsStatistics=Célok statisztikák -NbOfCompaniesContacts=Egyedi kapcsolatok a vállalatok -MailNoChangePossible=A címzettek validált emailing nem lehet megváltoztatni -SearchAMailing=Keresés levelezési -SendMailing=Küldés e-mailezés -SentBy=Által küldött -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: -MailingNeedCommand2=Ön azonban elküldheti őket az interneten hozzáadásával paraméter MAILING_LIMIT_SENDBYWEB az értéke max e-mailek száma szeretne küldeni a session. Ehhez menj a Home - telepítés - Más. -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ? -LimitSendingEmailing=Note: Sending of emailings from web interface is done in several times for security and timeout reasons, %s recipients at a time for each sending session. +MailingArea=Levelezési terület +LastMailings=A legújabb %s e-mail +TargetsStatistics=Cél statisztikák +NbOfCompaniesContacts=Egyedi névjegyek/címek +MailNoChangePossible=Az ellenőrzött e-mail címzettjei nem módosíthatók +SearchAMailing=Levelezés keresése +SendMailing=E-mail küldése +SentBy=Küldő +MailingNeedCommand=E-mail küldése parancssorból is végrehajtható. Kérje meg a kiszolgáló rendszergazdáját, hogy indítsa el a következő parancsot, hogy az e-mailt minden címzettnek elküldje: +MailingNeedCommand2=Elküldheti azonban online, ha hozzáadja a MAILING_LIMIT_SENDBYWEB paramétert a munkamenetenként elküldeni kívánt e-mailek maximális számával. Ehhez lépjen a Kezdőlap - Beállítás - Egyéb menüpontra. +ConfirmSendingEmailing=Ha közvetlenül erről a képernyőről szeretne e-mailt küldeni, kérjük, erősítse meg, hogy biztosan szeretne e-mailt küldeni most a böngészőből? +LimitSendingEmailing=Megjegyzés: Az e-mailek webes felületről történő küldése biztonsági és időtúllépési okokból több alkalommal történik, %s címzett egyszerre minden küldési munkamenethez. TargetsReset=Lista törlése -ToClearAllRecipientsClickHere=Kattintson ide, hogy törölje a címzettek listáját erre a levelezés -ToAddRecipientsChooseHere=Add címzettek közül választhatja ki a listák -NbOfEMailingsReceived=Mass emailings kapott -NbOfEMailingsSend=Mass emailings sent +ToClearAllRecipientsClickHere=Kattintson ide az e-mail címzettlistájának törléséhez +ToAddRecipientsChooseHere=Címzettek hozzáadása a listák közül való kiválasztásával +NbOfEMailingsReceived=Tömeges e-mailek érkeztek +NbOfEMailingsSend=Tömeges e-mailek elküldve IdRecord=Azonosító rekord -DeliveryReceipt=Delivery Ack. -YouCanUseCommaSeparatorForSeveralRecipients=Használhatja a vessző megadásához több címzettnek. -TagCheckMail=Track mail opening -TagUnsubscribe=Unsubscribe link -TagSignature=Signature of sending user -EMailRecipient=Recipient Email -TagMailtoEmail=Recipient Email (including html "mailto:" link) -NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. +DeliveryReceipt=Szállítási visszaigazolás. +YouCanUseCommaSeparatorForSeveralRecipients=A vessző elválasztó használatával több címzett is megadható. +TagCheckMail=Levelek megnyitásának nyomon követése +TagUnsubscribe=Leiratkozás link +TagSignature=A küldő felhasználó aláírása +EMailRecipient=Címzett e-mail +TagMailtoEmail=Címzett e-mail (beleértve a html "mailto:" linket) +NoEmailSentBadSenderOrRecipientEmail=Nem küldtek e-mailt. Rossz a feladó vagy a címzett e-mail-címe. Felhasználói profil ellenőrzése. # Module Notifications Notifications=Értesítések -NotificationsAuto=Notifications Auto. -NoNotificationsWillBeSent=No automatic email notifications are planned for this event type and company -ANotificationsWillBeSent=1 automatic notification will be sent by email -SomeNotificationsWillBeSent=%s automatic notifications will be sent by email -AddNewNotification=Subscribe to a new automatic email notification (target/event) -ListOfActiveNotifications=List of all active subscriptions (targets/events) for automatic email notification -ListOfNotificationsDone=List of all automatic email notifications sent -MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. -MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. -MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s. -YouCanAlsoUseSupervisorKeyword=You can also add the keyword __SUPERVISOREMAIL__ to have email being sent to the supervisor of user (works only if an email is defined for this supervisor) -NbOfTargetedContacts=Current number of targeted contact emails -UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other -UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other -MailAdvTargetRecipients=Recipients (advanced selection) -AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target -AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima%% will target all jean, joe, start with jim but not jimo and not everything that starts with jima -AdvTgtSearchIntHelp=Use interval to select int or float value -AdvTgtMinVal=Minimum value -AdvTgtMaxVal=Maximum value -AdvTgtSearchDtHelp=Use interval to select date value -AdvTgtStartDt=Start dt. -AdvTgtEndDt=End dt. -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third-party email or just contact email -AdvTgtTypeOfIncude=Type of targeted email -AdvTgtContactHelp=Use only if you target contact into "Type of targeted email" -AddAll=Add all -RemoveAll=Remove all -ItemsCount=Item(s) -AdvTgtNameTemplate=Filter name -AdvTgtAddContact=Add emails according to criteria -AdvTgtLoadFilter=Load filter -AdvTgtDeleteFilter=Delete filter -AdvTgtSaveFilter=Save filter -AdvTgtCreateFilter=Create filter -AdvTgtOrCreateNewFilter=Name of new filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties -OutGoingEmailSetup=Outgoing emails -InGoingEmailSetup=Incoming emails -OutGoingEmailSetupForEmailing=Outgoing emails (for module %s) -DefaultOutgoingEmailSetup=Same configuration than the global Outgoing email setup +NotificationsAuto=Automatikus értesítések. +NoNotificationsWillBeSent=Nem tervezünk automatikus e-mail értesítést ehhez az eseménytípushoz és vállalathoz +ANotificationsWillBeSent=1 automatikus értesítést küldünk e-mailben +SomeNotificationsWillBeSent=%s automatikus értesítést küld e-mailben +AddNewNotification=Feliratkozás egy új automatikus e-mail értesítésre (cél/esemény) +ListOfActiveNotifications=Az összes aktív előfizetés listája (célok/események) az automatikus e-mail értesítéshez +ListOfNotificationsDone=Az összes elküldött automatikus e-mail értesítés listája +MailSendSetupIs=Az e-mail küldés beállítása '%s'. Ez a mód nem használható tömeges e-mailek küldésére. +MailSendSetupIs2=Először adminisztrátori fiókkal be kell lépnie a %sHome - Beállítás - E-mailek%s menübe, hogy módosítsa a '%s' paramétert a '%s' mód használatához. Ezzel a móddal beléphet az internetszolgáltató által biztosított SMTP-kiszolgáló beállításába, és használhatja a tömeges e-mail funkciót. +MailSendSetupIs3=Ha bármilyen kérdése van az SMTP-szerver beállításával kapcsolatban, felteheti %s-nak. +YouCanAlsoUseSupervisorKeyword=Hozzáadhatja a __SUPERVISOREMAIL__ kulcsszót is, hogy e-mailt küldjön a felhasználó felügyelőjének (csak akkor működik, ha e-mail-cím van megadva ehhez a felügyelőhöz) +NbOfTargetedContacts=A megcélzott kapcsolatfelvételi e-mailek jelenlegi száma +UseFormatFileEmailToTarget=Az importált fájl formátuma email;name;firstname;other +UseFormatInputEmailToTarget=Írjon be egy karakterláncot email;name;firstname;other formátumban +MailAdvTargetRecipients=Címzettek (speciális kiválasztás) +AdvTgtTitle=Töltse ki a beviteli mezőket a célzott harmadik felek vagy elérhetőségek/címek előre kiválasztásához +AdvTgtSearchTextHelp=A %% használata helyettesítő karakterként. Például az összes olyan elem megkereséséhez, mint a jean, joe, jim, beírhatja a következőt: j%%, és használhatja a ; érték elválasztóként, és használja a ! kivéve ezt az értéket. Például a jean;joe;jim%%;!jimo;!jima%% minden jean-t, joe-t megcéloz, jim-mel kezdődik, de nem jimo-t, és nem mindent, ami jimával kezdődik. +AdvTgtSearchIntHelp=Használja az intervallumot az int vagy float érték kiválasztásához +AdvTgtMinVal=Minimális érték +AdvTgtMaxVal=Maximális érték +AdvTgtSearchDtHelp=Használja az intervallumot a dátum értékének kiválasztásához +AdvTgtStartDt=Kezdő dátum +AdvTgtEndDt=Vége dátum +AdvTgtTypeOfIncudeHelp=Harmadik fél cél e-mail-címe és a harmadik fél kapcsolatfelvételi e-mail-címe, vagy csak harmadik fél e-mail-címe vagy csak kapcsolattartási e-mail +AdvTgtTypeOfIncude=Célzott e-mail típusa +AdvTgtContactHelp=Csak akkor használja, ha a kapcsolattartót a "Célzott e-mail típusa"-ba célozza meg. +AddAll=Összes hozzáadása +RemoveAll=Összes eltávolítása +ItemsCount=Tétel(ek) +AdvTgtNameTemplate=Szűrő neve +AdvTgtAddContact=E-mailek hozzáadása a feltételeknek megfelelően +AdvTgtLoadFilter=Szűrő betöltése +AdvTgtDeleteFilter=Szűrő törlése +AdvTgtSaveFilter=Szűrő mentése +AdvTgtCreateFilter=Szűrő létrehozása +AdvTgtOrCreateNewFilter=Az új szűrő neve +NoContactWithCategoryFound=Nem található néhány névjegyhez/címhez kapcsolódó kategória +NoContactLinkedToThirdpartieWithCategoryFound=Nem található néhány harmadik félhez kapcsolódó kategória +OutGoingEmailSetup=Kimenő e-mailek +InGoingEmailSetup=Bejövő e-mailek +OutGoingEmailSetupForEmailing=Kimenő e-mailek (a %s modulhoz) +DefaultOutgoingEmailSetup=Ugyanaz a konfiguráció, mint a globális kimenő e-mail beállítás Information=Információ -ContactsWithThirdpartyFilter=Contacts with third-party filter -Unanswered=Unanswered +ContactsWithThirdpartyFilter=Névjegyek harmadik féltől származó szűrővel +Unanswered=Nem válaszolt Answered=Válaszolt -IsNotAnAnswer=Is not answer (initial email) -IsAnAnswer=Is an answer of an initial email -RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact -DefaultStatusEmptyMandatory=Empty but mandatory +IsNotAnAnswer=Nem válaszol (kezdeti e-mail) +IsAnAnswer=Válasz egy kezdeti e-mailre +RecordCreatedByEmailCollector=A(z) %s e-mail gyűjtő által létrehozott rekord a(z) %s e-mailből +DefaultBlacklistMailingStatus=A '%s' mező alapértelmezett értéke új névjegy létrehozásakor +DefaultStatusEmptyMandatory=Üres, de kötelező +WarningLimitSendByDay=FIGYELMEZTETÉS: A példány beállítása vagy szerződése a napi e-mailek számát %s értékre korlátozza. Ha többet próbál küldeni, előfordulhat, hogy a példány lelassul vagy felfüggeszthető. Ha magasabb kvótára van szüksége, forduljon ügyfélszolgálatához. diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index c70d8ad2a89..d5d9d347d7d 100644 --- a/htdocs/langs/hu_HU/main.lang +++ b/htdocs/langs/hu_HU/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Nem érhető el sablon ehhez az e-mail típushoz AvailableVariables=Elérhető helyettesítő változók NoTranslation=Nincs fordítás Translation=Fordítás +Translations=Translations CurrentTimeZone=TimeZone PHP (szerver) EmptySearchString=Adjon meg nem üres keresési feltételeket EnterADateCriteria=Adja meg a dátum kritériumát @@ -199,6 +206,7 @@ Valid=Hiteles Approve=Jóváhagy Disapprove=Elutasítás ReOpen=Újranyitás +OpenVerb=Nyitva Upload=Feltöltés ToLink=Link Select=Kiválaszt @@ -216,7 +224,7 @@ UserGroup=Felhasználói csoport UserGroups=Felhasználói csoportok NoUserGroupDefined=Nincs felhasználói csoport meghatározva Password=Jelszó -PasswordRetype=Adja meg újra a jelszavát +PasswordRetype=Ismételje meg a jelszavát NoteSomeFeaturesAreDisabled=Megjegyzés: rengeteg modul/eszköz ki van kapcsolva ebben a demóban. Name=Név NameSlashCompany=Név / Cég @@ -345,7 +353,7 @@ KiloBytes=Kilobyte-ok MegaBytes=Megabyte-ok GigaBytes=Gigabyte-ok TeraBytes=TB -UserAuthor=Készítette +UserAuthor=Létrehozta UserModif=Frissítette b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Események ehhez a kapcsolattartóhoz/címhez ActionsOnContract=Események ehhez a szerződéshez ActionsOnMember=Események ezzel a taggal kapcsolatban ActionsOnProduct=Események ezzel a termékkel kapcsolatban +ActionsOnAsset=Events for this fixed asset NActionsLate=%s késés ToDo=Teendő Completed=Befejezve @@ -712,6 +721,7 @@ FeatureDisabled=Tiltott funkció MoveBox=Mozgassa a widgetet Offered=Felajánlott NotEnoughPermissions=Nincs jogosultsága ehhez a művelethez +UserNotInHierachy=Ez a művelet a felhasználó felügyelői számára van fenntartva SessionName=Munkamenet neve Method=Módszer Receive=Kap @@ -801,6 +811,7 @@ URLPhoto=Url fotó / logo SetLinkToAnotherThirdParty=Link egy másik harmadik fél LinkTo=Hivatkozás erre: LinkToProposal=Link az ajánlathoz +LinkToExpedition= Link az expedícióhoz LinkToOrder=Link a rendeléshez LinkToInvoice=Link a számlához LinkToTemplateInvoice=Hivatkozás a sablonszámlához @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Privát letöltési link PrivateDownloadLinkDesc=Be kell jelentkeznie, és engedélyekre van szüksége a fájl megtekintéséhez vagy letöltéséhez Download=Letöltés DownloadDocument=Dokumentum letöltése +DownloadSignedDocument=Download signed document ActualizeCurrency=Árfolyam frissítése Fiscalyear=Pénzügyi év ModuleBuilder=Modul- és alkalmazáskészítő @@ -1044,6 +1056,7 @@ SearchIntoContracts=Szerződések SearchIntoCustomerShipments=Vásárlói kiszállítások SearchIntoExpenseReports=Költség kimutatások SearchIntoLeaves=Hagyd el +SearchIntoKM=Tudásbázis SearchIntoTickets=Jegyek SearchIntoCustomerPayments=Vásárlói fizetések SearchIntoVendorPayments=Szállítói fizetések @@ -1135,15 +1148,29 @@ EventReminder=Esemény emlékeztető UpdateForAllLines=Frissítés minden vonalhoz OnHold=Tart Civility=Udvariasság -AffectTag=Címke hozzárendelése +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Külső felhasználó létrehozása -ConfirmAffectTag=Tömeges címke hatással -ConfirmAffectTagQuestion=Biztosan befolyásolni szeretné a(z) %s kiválasztott rekord(ok) címkéit? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Nem található címketípus a rekordtípusokhoz +Rate=Arány +SupervisorNotFound=Supervisor not found CopiedToClipboard=Vágólapra másolva InformationOnLinkToContract=Ez az összeg csak a szerződés összes sorának összege. Az idő fogalmát nem veszik figyelembe. ConfirmCancel=Biztosan meg akarja szakítani EmailMsgID=E-mail üzenetazonosító +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Engedélyezve SetToDisabled=Letiltva ConfirmMassEnabling=tömegengedélyezés megerősítése @@ -1172,8 +1199,14 @@ Terminated=Kilépett AddLineOnPosition=Sor hozzáadása a pozícióhoz (a végén, ha üres) ConfirmAllocateCommercial=Az értékesítési képviselő megerősítésének hozzárendelése ConfirmAllocateCommercialQuestion=Biztosan hozzá szeretné rendelni az %s kiválasztott rekordo(ka)t? -CommercialsAffected=Az értékesítési képviselők érintettek -CommercialAffected=Az értékesítési képviselő érintett +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=Az üzeneted YourMessageHasBeenReceived=Üzenete megérkezett. A lehető leghamarabb válaszolunk vagy felvesszük Önnel a kapcsolatot. UrlToCheck=Az ellenőrizendő URL +Automation=Automatizálás +CreatedByEmailCollector=Készítette: Email gyűjtő +CreatedByPublicPortal=Nyilvános portálról készült +UserAgent=Felhasználói ügynök +InternalUser=Belső felahsználó +ExternalUser=Külső felhasználó diff --git a/htdocs/langs/hu_HU/members.lang b/htdocs/langs/hu_HU/members.lang index 714cdea08d1..ebf07cd2356 100644 --- a/htdocs/langs/hu_HU/members.lang +++ b/htdocs/langs/hu_HU/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Egy másik tag (név: %s, beje ErrorUserPermissionAllowsToLinksToItselfOnly=Biztonsági okokból engedélyt kell kapnia az összes felhasználó szerkesztéséhez, hogy egy tagot olyan felhasználóhoz tudjon kapcsolni, aki nem az Öné. SetLinkToUser=Link egy Dolibarr felhasználóhoz SetLinkToThirdParty=Hivatkozás egy Dolibarr harmadik félhez +MemberCountersArePublic=Counters of valid members are public MembersCards=Kártyák generálása a tagok számára MembersList=Tagok listája MembersListToValid=Vázlattagok listája (érvényesítésre vár) @@ -34,8 +35,10 @@ DateSubscription=Tagság dátuma DateEndSubscription=A tagság befejezésének dátuma EndSubscription=A tagság vége SubscriptionId=Hozzájárulás azonosítója -WithoutSubscription=Hozzájárulás nélkül -MemberId=Tagazonosító +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Tag-azonosító +MemberRef=Tag Ref NewMember=Új tag MemberType=Tag típusa MemberTypeId=Tag típusazonosító @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=A tagtípus nem törölhető NewSubscription=Új hozzájárulás NewSubscriptionDesc=Ez az űrlap lehetővé teszi, hogy az alapítvány új tagjaként rögzítse előfizetését. Ha meg szeretné újítani előfizetését (ha már tag), kérjük, vegye fel a kapcsolatot az alapítványi kuratóriummal e-mailben %s. Subscription=Hozzájárulás +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Bármennyi +CanEditAmountShortForValues=ajánlott, bármilyen mennyiségben +MembershipDuration=Időtartam +GetMembershipButtonLabel=Join Subscriptions=Hozzájárulások SubscriptionLate=Késő SubscriptionNotReceived=A hozzájárulás nem érkezett meg @@ -135,7 +144,7 @@ CardContent=Tagsági kártya tartalma # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Tájékoztatjuk, hogy tagsági kérelmét megkaptuk.

    ThisIsContentOfYourMembershipWasValidated=Tájékoztatjuk, hogy tagságát a következő adatokkal ellenőriztük:

    -ThisIsContentOfYourSubscriptionWasRecorded=Tájékoztatjuk, hogy új előfizetését rögzítették.

    +ThisIsContentOfYourSubscriptionWasRecorded=Tájékoztatjuk, hogy új előfizetését rögzítettük. Kérjük, számláját itt találja mellékelve.

    ThisIsContentOfSubscriptionReminderEmail=Tájékoztatjuk, hogy előfizetése hamarosan lejár, vagy már lejárt (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Reméljük, meg fogja újítani.

    ThisIsContentOfYourCard=Ez az Önnel kapcsolatos információink összefoglalása. Kérjük, vegye fel velünk a kapcsolatot, ha bármi nem megfelelő.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=A vendég automatikus beiratkozása esetén kapott értesítő e-mail tárgya @@ -198,8 +207,10 @@ NbOfSubscriptions=Hozzájárulások száma AmountOfSubscriptions=A hozzájárulásokból beszedett összeg TurnoverOrBudget=Forgalom (egy cégnél) vagy Költségvetés (alapítványnál) DefaultAmount=A hozzájárulás alapértelmezett összege -CanEditAmount=A látogató kiválaszthatja/szerkesztheti hozzájárulása összegét -MEMBER_NEWFORM_PAYONLINE=Ugrás az integrált online fizetési oldalra +CanEditAmount=Subscription amount is free +CanEditAmountDetail=A látogató tagtípustól függetlenül választhatja/szerkesztheti hozzájárulásának mértékét +AmountIsLowerToMinimumNotice=összesen esedékes %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Természeténél fogva MembersStatisticsByProperties=Tagstatisztikák jellegük szerint VATToUseForSubscriptions=A hozzájárulások áfakulcsa @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=A felhasználói bejelentkezés létrehozása a tagok sz CreateDolibarrThirdPartyDesc=A harmadik fél az a jogi személy, amely a számlán szerepel, ha úgy dönt, hogy minden egyes hozzájáruláshoz számlát állít elő. Később, a hozzájárulás rögzítésének folyamata során tudja létrehozni. MemberFirstname=Tag keresztneve MemberLastname=Tag vezetékneve +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/hu_HU/modulebuilder.lang b/htdocs/langs/hu_HU/modulebuilder.lang index 0313939715e..cb229dc49f9 100644 --- a/htdocs/langs/hu_HU/modulebuilder.lang +++ b/htdocs/langs/hu_HU/modulebuilder.lang @@ -153,3 +153,4 @@ LinkToParentMenu=Szülőmenü (fk_xxxxmenu) ListOfTabsEntries=A lapbejegyzések listája TabsDefDesc=Itt határozhatja meg a modulja által biztosított füleket TabsDefDescTooltip=A modul/alkalmazás által biztosított lapok az $this->tabs tömbben vannak meghatározva a modulleíró fájlban. Ezt a fájlt manuálisan szerkesztheti, vagy használhatja a beágyazott szerkesztőt. +BadValueForType=Rossz érték az %s típushoz diff --git a/htdocs/langs/hu_HU/mrp.lang b/htdocs/langs/hu_HU/mrp.lang index d0ff6f492c7..47b6ed18978 100644 --- a/htdocs/langs/hu_HU/mrp.lang +++ b/htdocs/langs/hu_HU/mrp.lang @@ -11,8 +11,8 @@ Bom=Anyagjegyzékek BillOfMaterials=Anyagjegyzék BillOfMaterialsLines=Anyagjegyzék sorok BOMsSetup=A BOM modul beállítása -ListOfBOMs=Az anyagjegyzékek listája - BOM -ListOfManufacturingOrders=Gyártási megrendelések listája +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Gyártási rendelések NewBOM=Új anyagjegyzék ProductBOMHelp=Az anyagjegyzékkel létrehozandó (vagy szétszedendő) termék.
    Megjegyzés: A 'Nature of product' = 'Nyersanyag' tulajdonságú termékek nem jelennek meg ebben a listában. BOMsNumberingModules=BOM számozási sablonok @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Biztosan klónozni akarja a %s anyagjegyzéket? ConfirmCloneMo=Biztosan klónozni akarja a %s gyártási rendelést? ManufacturingEfficiency=A gyártás hatékonysága ConsumptionEfficiency=Fogyasztási hatékonyság +Consumption=Consumption ValueOfMeansLoss=A 0,95-ös érték átlagosan a gyártás vagy a szétszerelés során keletkező veszteség 5%%-át jelenti ValueOfMeansLossForProductProduced=A 0,95-ös érték átlagosan az előállított termék veszteségének 5%%-át jelenti DeleteBillOfMaterials=Anyagjegyzék törlése @@ -82,6 +83,7 @@ ProductsToProduce=A gyártandó termékek UnitCost=Egységköltség TotalCost=Teljes költség BOMTotalCost=Az anyagjegyzék előállításának költsége az egyes mennyiségek és elfogyasztott termékek költsége alapján (használja az önköltségi árat, ha van, különben az átlagos súlyozott árat, ha van, különben a legjobb vételi árat) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Először el kell indítania a gyártást a gyártási rendelés lezárásához (lásd a '%s' lapot). De lemondhatja. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A készlet nem használható BOM-ban vagy MO-ban Workstation=Munkaállomás @@ -112,3 +114,7 @@ MOAndLines=Gyártási rendelések és sorok MoChildGenerate=Gyermek Mo. generálása ParentMo=MO Szülő MOChild=MO Gyermek +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/hu_HU/oauth.lang b/htdocs/langs/hu_HU/oauth.lang index 075ff49a895..3e9309da2cd 100644 --- a/htdocs/langs/hu_HU/oauth.lang +++ b/htdocs/langs/hu_HU/oauth.lang @@ -1,32 +1,36 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=OAuth Configuration -OAuthServices=OAuth Services -ManualTokenGeneration=Manual token generation +ConfigOAuth=OAuth konfiguráció +OAuthServices=OAuth szolgáltatások +ManualTokenGeneration=Manuális token generálás TokenManager=Token Manager -IsTokenGenerated=Is token generated ? -NoAccessToken=No access token saved into local database -HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received and saved -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider -TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Click here to delete token -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret -TOKEN_REFRESH=Token Refresh Present -TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token -OAUTH_GOOGLE_NAME=OAuth Google service +IsTokenGenerated=Létrejött a token? +NoAccessToken=Nincs hozzáférési token mentve a helyi adatbázisba +HasAccessToken=A tokent létrehozta és elmentette a helyi adatbázisba +NewTokenStored=Token fogadva és elmentve +ToCheckDeleteTokenOnProvider=Kattintson ide a %s OAuth szolgáltató által mentett jogosultság ellenőrzéséhez/törléséhez +TokenDeleted=Token törölve +RequestAccess=Kattintson ide a hozzáférés kéréséhez/megújításához és új token fogadásához +DeleteAccess=Kattintson ide a token törléséhez +UseTheFollowingUrlAsRedirectURI=Használja a következő URL-t átirányítási URI-ként, amikor létrehozza hitelesítő adatait az OAuth-szolgáltatóval: +ListOfSupportedOauthProviders=Adja hozzá OAuth2-token-szolgáltatóit. Ezután lépjen az OAuth-szolgáltató rendszergazdai oldalára, és hozzon létre/szerezzen be egy OAuth-azonosítót és -titkot, majd mentse el őket ide. Ha elkészült, kapcsolja be a másik lapot a token létrehozásához. +OAuthSetupForLogin=Oldal az OAuth-jogkivonatok kezelésére (generálására/törlésére). +SeePreviousTab=Lásd az előző lapot +OAuthProvider=OAuth-szolgáltató +OAuthIDSecret=OAuth-azonosító és titkos +TOKEN_REFRESH=Token frissítése +TOKEN_EXPIRED=Token lejárt +TOKEN_EXPIRE_AT=Token lejárati dátuma +TOKEN_DELETE=Elmentett token törlése +OAUTH_GOOGLE_NAME=OAuth Google szolgáltatás OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials -OAUTH_GITHUB_NAME=OAuth GitHub service -OAUTH_GITHUB_ID=OAuth GitHub Id -OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials -OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test -OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_GITHUB_NAME=OAuth GitHub szolgáltatás +OAUTH_GITHUB_ID=OAuth GitHub-azonosító +OAUTH_GITHUB_SECRET=OAuth GitHub titkos +OAUTH_URL_FOR_CREDENTIAL=Nyissa meg ezt az oldalt az OAuth-azonosító és a titkosság létrehozásához vagy lekéréséhez +OAUTH_STRIPE_TEST_NAME=OAuth kapcsolat teszt +OAUTH_STRIPE_LIVE_NAME=OAuth kapcsolat élő +OAUTH_ID=OAuth-azonosító +OAUTH_SECRET=OAuth titkos +OAuthProviderAdded=OAuth-szolgáltató hozzáadva +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Ehhez a szolgáltatóhoz és címkéhez már létezik OAuth-bejegyzés diff --git a/htdocs/langs/hu_HU/orders.lang b/htdocs/langs/hu_HU/orders.lang index 4ae45aaeced..a61d71399e5 100644 --- a/htdocs/langs/hu_HU/orders.lang +++ b/htdocs/langs/hu_HU/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Az ajánlathoz kapcsolódó megrendelés már nyitva volt, ezért nem jött létre automatikusan más megrendelés OrdersArea=Vevők megrendelései SuppliersOrdersArea=Beszerzési rendelési terület OrderCard=Megrendelőlap diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index f29b80bb26c..37a0ed74e12 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -304,3 +304,24 @@ ConfirmBtnCommonContent = Biztos, hogy "%s"? ConfirmBtnCommonTitle = Erősítse meg a műveletet CloseDialog = Bezárás Autofill = Automatikus kitöltés + +# externalsite +ExternalSiteSetup=Külső weboldalra mutató link beállítása +ExternalSiteURL=A HTML iframe tartalom külső webhely URL-je +ExternalSiteModuleNotComplete=Az ExternalSite modul nincs megfelelően beállítva. +ExampleMyMenuEntry=A menüpontom + +# FTP +FTPClientSetup=FTP vagy SFTP kliens modul beállítása +NewFTPClient=Új FTP/FTPS kapcsolat beállítása +FTPArea=FTP/FTPS terület +FTPAreaDesc=Ez a képernyő egy FTP és SFTP szerver nézetét mutatja. +SetupOfFTPClientModuleNotComplete=Úgy tűnik, az FTP vagy SFTP kliens modul beállítása nem teljes +FTPFeatureNotSupportedByYourPHP=A PHP-d nem támogatja az FTP vagy SFTP funkciókat +FailedToConnectToFTPServer=Nem sikerült csatlakozni a szerverhez (%s szerver, %s port) +FailedToConnectToFTPServerWithCredentials=Nem sikerült bejelentkezni a szerverre meghatározott bejelentkezési névvel/jelszóval +FTPFailedToRemoveFile=Nem sikerült eltávolítani a(z) %s fájlt. +FTPFailedToRemoveDir=Nem sikerült eltávolítani a(z) %s könyvtárat: ellenőrizze a jogosultságokat és azt, hogy a könyvtár üres-e. +FTPPassiveMode=Passzív mód +ChooseAFTPEntryIntoMenu=Válasszon FTP/SFTP webhelyet a menüből... +FailedToGetFile=A %s fájlok letöltése sikertelen diff --git a/htdocs/langs/hu_HU/partnership.lang b/htdocs/langs/hu_HU/partnership.lang index 6136bf4179d..e8ac719fe79 100644 --- a/htdocs/langs/hu_HU/partnership.lang +++ b/htdocs/langs/hu_HU/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnerség kezelése PartnershipDescription=Partnerség modul kezelés PartnershipDescriptionLong= Partnerség modul kezelés Partnership=Partnerség +Partnerships=Partnerships AddPartnership=Partnerség hozzáadása CancelPartnershipForExpiredMembers=Partnerség: A lejárt előfizetéssel rendelkező tagok partnerségének megszüntetése PartnershipCheckBacklink=Partnerség: Ellenőrizze a hivatkozási hivatkozást @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerség: Ellenőrizze a hivatkozási hivatkozást # Menu # NewPartnership=Új partnerség +NewPartnershipbyWeb= Az Ön partnersége sikeresen hozzáadva. ListOfPartnerships=A partnerségek listája # diff --git a/htdocs/langs/hu_HU/paypal.lang b/htdocs/langs/hu_HU/paypal.lang index 64cc9381a8b..666611d5167 100644 --- a/htdocs/langs/hu_HU/paypal.lang +++ b/htdocs/langs/hu_HU/paypal.lang @@ -1,36 +1,36 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=PayPal modul beállítása -PaypalDesc=This module allows payment by customers via PayPal. This can be used for a ad-hoc payment or for a payment related to a Dolibarr object (invoice, order, ...) -PaypalOrCBDoPayment=Pay with PayPal (Card or PayPal) -PaypalDoPayment=Fizess Paypallal -PAYPAL_API_SANDBOX=Üzemmódban végzett vizsgálat / homokozó +PaypalDesc=Ez a modul lehetővé teszi az ügyfelek számára a PayPal keresztül történő fizetést. Ez felhasználható eseti vagy Dolibarr objektumhoz kapcsolódó fizetésre (számla, megrendelés, ...) +PaypalOrCBDoPayment=Fizetés PayPal-lal (kártya vagy PayPal) +PaypalDoPayment=Fizetés PayPal-lal +PAYPAL_API_SANDBOX=Mód teszt/sandbox PAYPAL_API_USER=API felhasználónév PAYPAL_API_PASSWORD=API jelszó PAYPAL_API_SIGNATURE=API aláírás -PAYPAL_SSLVERSION=Curl SSL Version -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer "integral" payment (Credit card+PayPal) or "PayPal" only +PAYPAL_SSLVERSION=Curl SSL verzió +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Csak "integrált" fizetés (hitelkártya+PayPal) vagy "PayPal" ajánlat PaypalModeIntegral=Integrál PaypalModeOnlyPaypal=Csak PayPal -ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page -ThisIsTransactionId=Ez a tranzakció id: %s -PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email -NewOnlinePaymentReceived=New online payment received -NewOnlinePaymentFailed=New online payment tried but failed -ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail) -ReturnURLAfterPayment=Return URL after payment -ValidationOfOnlinePaymentFailed=Az online fizetés ellenőrzése sikertelen -PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error -SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. -DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. -DetailedErrorMessage=Detailed Error Message +ONLINE_PAYMENT_CSS_URL=A CSS-stíluslap opcionális URL-je az online fizetési oldalon +ThisIsTransactionId=Ez a tranzakció azonosítója: %s +PAYPAL_ADD_PAYMENT_URL=A PayPal fizetési URL-címet is adja meg, amikor e-mailben küld dokumentumot +NewOnlinePaymentReceived=Új online fizetés érkezett +NewOnlinePaymentFailed=Új online fizetés próbálkozott, de sikertelen +ONLINE_PAYMENT_SENDEMAIL=E-mail cím minden fizetési kísérlet után (siker és sikertelenség esetén) +ReturnURLAfterPayment=Visszaküldési URL fizetés után +ValidationOfOnlinePaymentFailed=Az online fizetés ellenőrzése nem sikerült +PaymentSystemConfirmPaymentPageWasCalledButFailed=A fizetést megerősítő oldalt a fizetési rendszer hívta meg, és hibát adott vissza +SetExpressCheckoutAPICallFailed=SetExpressCheckout API hívás sikertelen. +DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API hívás sikertelen. +DetailedErrorMessage=Részletes hibaüzenet ShortErrorMessage=Rövid hibaüzenet -ErrorCode=Error Code -ErrorSeverityCode=Error Severity Code -OnlinePaymentSystem=Online payment system -PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode) -PaypalImportPayment=Import PayPal payments -PostActionAfterPayment=Post actions after payments -ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. -ValidationOfPaymentFailed=Validation of payment has failed -CardOwner=Card holder -PayPalBalance=Paypal credit +ErrorCode=Hibakód +ErrorSeverityCode=Hiba súlyossági kódja +OnlinePaymentSystem=Online fizetési rendszer +PaypalLiveEnabled=A PayPal "élő" mód engedélyezve (ellenkező esetben teszt/sandbox mód) +PaypalImportPayment=PayPal fizetések importálása +PostActionAfterPayment=Műveletek a kifizetések után +ARollbackWasPerformedOnPostActions=Minden közzétételi művelet visszaállítása megtörtént. Szükség esetén kézzel kell végrehajtania a bejegyzési műveleteket. +ValidationOfPaymentFailed=A fizetés ellenőrzése nem sikerült +CardOwner=Kártyatartó +PayPalBalance=Paypal jóváírás diff --git a/htdocs/langs/hu_HU/products.lang b/htdocs/langs/hu_HU/products.lang index cef25a5efd6..f1400cf3e12 100644 --- a/htdocs/langs/hu_HU/products.lang +++ b/htdocs/langs/hu_HU/products.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - products -ProductRef=Termék ref. +ProductRef=Termék hiv. ProductLabel=Termékcímke ProductLabelTranslated=Lefordított termékcímke ProductDescription=Termékleírás -ProductDescriptionTranslated=Termékleírás lefordítása -ProductNoteTranslated=A termékleírás lefordítása +ProductDescriptionTranslated=Lefordított termékleírás +ProductNoteTranslated=Lefordított termékjegyzet ProductServiceCard=Termékek/Szolgáltatások kártya TMenuProducts=Termékek TMenuServices=Szolgáltatások @@ -14,38 +14,38 @@ Product=Termék Service=Szolgáltatás ProductId=Termék/szolgáltatás azonosító Create=Létrehozás -Reference=Referencia +Reference=Hivatkozás NewProduct=Új termék NewService=Új szolgáltatás ProductVatMassChange=Globális ÁFA frissítés -ProductVatMassChangeDesc=Ez az eszköz frissíti az MINDEN termékre és szolgáltatásra meghatározott áfakulcsot! +ProductVatMassChangeDesc=Ez az eszköz frissíti az MINDEN terméken és szolgáltatáson meghatározott áfakulcsot! MassBarcodeInit=Tömeges vonalkód inicializálás MassBarcodeInitDesc=Ez az oldal használható vonalkód inicializálására olyan objektumokon, amelyeknél nincs vonalkód. Ellenőrizze, mielőtt a modul vonalkódjának beállítása befejeződik. ProductAccountancyBuyCode=Számviteli kód (vásárlás) ProductAccountancyBuyIntraCode=Számviteli kód (közösségen belüli vásárlás) ProductAccountancyBuyExportCode=Számviteli kód (vásárlási import) ProductAccountancySellCode=Számviteli kód (eladás) -ProductAccountancySellIntraCode=Számviteli kód (Közösségen belüli értékesítés) +ProductAccountancySellIntraCode=Számviteli kód (közösségen belüli értékesítés) ProductAccountancySellExportCode=Számviteli kód (értékesítési export) -ProductOrService=Termék vagy szolgáltatás -ProductsAndServices=Termékek és szolgáltatások -ProductsOrServices=Termékek vagy szolgáltatások +ProductOrService=Termék vagy Szolgáltatás +ProductsAndServices=Termékek és Szolgáltatások +ProductsOrServices=Termékek vagy Szolgáltatások ProductsPipeServices=Termékek | Szolgáltatások ProductsOnSale=Eladható termékek ProductsOnPurchase=Vásárolható termékek ProductsOnSaleOnly=Csak eladható termékek -ProductsOnPurchaseOnly=Csak megvásárolható termékek +ProductsOnPurchaseOnly=Csak vásárolható termékek ProductsNotOnSell=Nem eladható és nem vásárolható termékek -ProductsOnSellAndOnBuy=Eladható és megvásárolható termékek +ProductsOnSellAndOnBuy=Eladható és vásárolható termékek ServicesOnSale=Eladható szolgáltatások ServicesOnPurchase=Vásárolható szolgáltatások ServicesOnSaleOnly=Csak eladható szolgáltatások -ServicesOnPurchaseOnly=Csak megvásárolható szolgáltatások +ServicesOnPurchaseOnly=Csak vásárolható szolgáltatások ServicesNotOnSell=Nem eladható és nem vásárolható szolgáltatások -ServicesOnSellAndOnBuy=Eladható és megvásárolható szolgáltatások -LastModifiedProductsAndServices=A legújabb %s termék/szolgáltatás, amely módosult -LastRecordedProducts=A legutóbbi %s rögzített termék -LastRecordedServices=A legutóbbi %s rögzített szolgáltatás +ServicesOnSellAndOnBuy=Eladható és vásárolható szolgáltatások +LastModifiedProductsAndServices=A legutóbb módosított %s termékek/szolgáltatások +LastRecordedProducts=A legutóbbi %s rögzített termékek +LastRecordedServices=A legutóbbi %s rögzített szolgáltatások CardProduct0=Termék CardProduct1=Szolgáltatás Stock=Készlet @@ -54,13 +54,13 @@ Stocks=A termékek készletei és elhelyezkedése (raktár). Movements=Mozgások Sell=Eladás Buy=Vásárlás -OnSell=Eladó +OnSell=Eladásra OnBuy=Vásárlásra NotOnSell=Nem eladható -ProductStatusOnSell=Eladó -ProductStatusNotOnSell=Nem eladó -ProductStatusOnSellShort=Eladó -ProductStatusNotOnSellShort=Nem eladó +ProductStatusOnSell=Eladásra +ProductStatusNotOnSell=Nem eladható +ProductStatusOnSellShort=Eladásra +ProductStatusNotOnSellShort=Nem eladható ProductStatusOnBuy=Vásárlásra ProductStatusNotOnBuy=Nem vásárolható meg ProductStatusOnBuyShort=Vásárlásra @@ -68,89 +68,89 @@ ProductStatusNotOnBuyShort=Nem vásárolható meg UpdateVAT=Áfa frissítése UpdateDefaultPrice=Alapértelmezett ár frissítése UpdateLevelPrices=Frissítse az árakat minden szinten -AppliedPricesFrom=Alkalmazva +AppliedPricesFrom=tól alkalmazva SellingPrice=Eladási ár SellingPriceHT=Eladási ár (adó nélkül) SellingPriceTTC=Eladási ár (adóval együtt) SellingMinPriceTTC=Minimális eladási ár (adóval együtt) -CostPriceDescription=Ez az ármező (adó nélkül) használható annak rögzítésére, hogy ez a termék átlagosan mennyibe kerül a vállalatnak. Bármilyen ár lehet, amelyet saját maga számít ki, például az átlagos vételárból plusz az átlagos gyártási és forgalmazási költségekből. -CostPriceUsage=Ez az érték felhasználható az árrés kiszámításához. +CostPriceDescription=Ez az ár mező (adó nélkül) használható annak rögzítésére, hogy ez a termék átlagosan mennyibe kerül a vállalatnak. Bármilyen ár lehet, amelyet saját maga számít ki, például az átlagos vételárból plusz az átlagos gyártási és forgalmazási költségekből. +CostPriceUsage=Ezt az értéket fel lehet használni az árrés kiszámításához. ManufacturingPrice=Gyártási ár SoldAmount=Eladott mennyiség -PurchasedAmount=Vásárolt összeg +PurchasedAmount=Vásárolt mennyiség NewPrice=Új ár MinPrice=Min. eladási ár EditSellingPriceLabel=Eladási ár címke szerkesztése -CantBeLessThanMinPrice=Az eladási ár nem lehet alacsonyabb, mint a termék minimális megengedett értéke (%s adó nélkül). Ez az üzenet akkor is megjelenhet, ha túl fontos kedvezményt ír be. +CantBeLessThanMinPrice=Az eladási ár nem lehet alacsonyabb a termékre megengedett minimumnál (%s adó nélkül). Ez az üzenet akkor is megjelenhet, ha túl fontos kedvezményt ír be. ContractStatusClosed=Zárva ErrorProductAlreadyExists=Már létezik %s hivatkozású termék. -ErrorProductBadRefOrLabel=Hibás érték a hivatkozáshoz vagy a címkéhez. +ErrorProductBadRefOrLabel=Hibás referenciaérték vagy címke. ErrorProductClone=Hiba történt a termék vagy szolgáltatás klónozása közben. ErrorPriceCantBeLowerThanMinPrice=Hiba, az ár nem lehet alacsonyabb a minimális árnál. -Suppliers=Szállítók -SupplierRef=Szállító cikkszáma SKU +Suppliers=Forgalmazók +SupplierRef=Forgalmazói SKU ShowProduct=Termék megjelenítése ShowService=Szolgáltatás megjelenítése -ProductsAndServicesArea=Termékek és szolgáltatások terület -ProductsArea=Termékterület -ServicesArea=Szolgáltatási terület +ProductsAndServicesArea=Termékek és szolgáltatások területe +ProductsArea=Termék területe +ServicesArea=Szolgáltatások területe ListOfStockMovements=Készletmozgások listája BuyingPrice=Vételi ár -PriceForEachProduct=Termékek meghatározott áron -SupplierCard=Szállítókártya -PriceRemoved=Az ár eltávolítva +PriceForEachProduct=Termékek egyedi áron +SupplierCard=Forgalmazói kártya +PriceRemoved=Ár eltávolítva BarCode=Vonalkód BarcodeType=Vonalkód típusa SetDefaultBarcodeType=Vonalkód típusának beállítása BarcodeValue=Vonalkód érték NoteNotVisibleOnBill=Megjegyzés (a számlákon, ajánlatokon nem látható...) ServiceLimitedDuration=Ha a termék korlátozott időtartamú szolgáltatás: -FillWithLastServiceDates=Töltsd ki az utolsó szolgáltatási sor dátumával -MultiPricesAbility=Több árszegmens termékenként/szolgáltatásonként (minden vásárló egy árszegmensben van) +FillWithLastServiceDates=Töltse ki az utolsó szolgáltatási sor dátumával +MultiPricesAbility=Több árszegmens termékenként/szolgáltatásonként (minden ügyfél egy árszegmensben van) MultiPricesNumPrices=Árak száma -DefaultPriceType=Alapértelmezett árak alapja (az adó nélkül) új eladási árak hozzáadásakor +DefaultPriceType=Az alapértelmezett árak alapja (adóval és adó nélkül) új eladási árak hozzáadásakor AssociatedProductsAbility=Kitek engedélyezése (több termékből álló készlet) VariantsAbility=Változatok engedélyezése (a termékek változatai, például szín, méret) -AssociatedProducts=Kit -AssociatedProductsNumber=A készletet alkotó termékek száma -ParentProductsNumber=A szülőcsomagoló termék száma -ParentProducts=Szülőtermékek -IfZeroItIsNotAVirtualProduct=Ha 0, akkor ez a termék nem készlet -IfZeroItIsNotUsedByVirtualProduct=Ha 0, akkor ezt a terméket egyetlen készlet sem használja -KeywordFilter=Kulcsszószűrő +AssociatedProducts=Kitek +AssociatedProductsNumber=A kitet alkotó termékek száma +ParentProductsNumber=Alapcsomagolási termék száma +ParentProducts=Alaptermékek +IfZeroItIsNotAVirtualProduct=Ha 0, akkor ez a termék nem kit +IfZeroItIsNotUsedByVirtualProduct=Ha 0, akkor ezt a terméket egyetlen kit sem használja +KeywordFilter=Kulcsszó szűrő CategoryFilter=Kategória szűrő -ProductToAddSearch=A hozzáadni kívánt termék keresése +ProductToAddSearch=Hozzáadni kívánt termék keresése NoMatchFound=Nem található egyezés ListOfProductsServices=Termékek/szolgáltatások listája -ProductAssociationList=A készlet részét képező termékek/szolgáltatások listája -ProductParentList=A terméket komponensként tartalmazó készletek listája -ErrorAssociationIsFatherOfThis=Az egyik kiválasztott termék szülője az aktuális terméknek +ProductAssociationList=A kit részét képező termékek/szolgáltatások listája +ProductParentList=A terméket összetevőként tartalmazó kitek listája +ErrorAssociationIsFatherOfThis=Az egyik kiválasztott termék az aktuális termék szülője DeleteProduct=Termék/szolgáltatás törlése -ConfirmDeleteProduct=Biztosan törölni szeretné ezt a terméket/szolgáltatást? -ProductDeleted=Termék/szolgáltatás "%s" törölve az adatbázisból. +ConfirmDeleteProduct=Biztosan törli ezt a terméket/szolgáltatást? +ProductDeleted=Az "%s" termék/szolgáltatás törölve az adatbázisból. ExportDataset_produit_1=Termékek ExportDataset_service_1=Szolgáltatások ImportDataset_produit_1=Termékek ImportDataset_service_1=Szolgáltatások -DeleteProductLine=Termékvonal törlése -ConfirmDeleteProductLine=Biztosan törölni szeretné ezt a terméksort? -ProductSpecial=Speciális +DeleteProductLine=Termékcsalád törlése +ConfirmDeleteProductLine=Biztos, hogy törölni szeretné ezt a termékcsaládot? +ProductSpecial=Különleges QtyMin=Min. beszerzési mennyiség PriceQtyMin=Ár mennyiség min. -PriceQtyMinCurrency=Ennek a mennyiségnek az ára (pénznem). (Nincs leárazás) +PriceQtyMinCurrency=Ár (pénznem) erre a mennyiségre. WithoutDiscount=Kedvezmény nélkül -VATRateForSupplierProduct=Áfakulcs (ehhez az eladóhoz / termékhez) +VATRateForSupplierProduct=ÁFA kulcs (ehhez a forgalmazóhoz/termékhez) DiscountQtyMin=Kedvezmény erre a mennyiségre. -NoPriceDefinedForThisSupplier=Nincs meghatározott ár/mennyiség ehhez a szállítóhoz/termékhez -NoSupplierPriceDefinedForThisProduct=Nincs gyártói ár/mennyiség meghatározva ehhez a termékhez +NoPriceDefinedForThisSupplier=Ehhez a forgalmazóhoz/termékhez nincs meghatározva ár/mennyiség +NoSupplierPriceDefinedForThisProduct=Ehhez a termékhez nincs meghatározva forgalmazói ár/mennyiség PredefinedItem=Előre meghatározott elem PredefinedProductsToSell=Előre meghatározott termék PredefinedServicesToSell=Előre meghatározott szolgáltatás -PredefinedProductsAndServicesToSell=Előre meghatározott termékek/szolgáltatások eladásra -PredefinedProductsToPurchase=Előre meghatározott termék, amelyeket meg kell vásárolni -PredefinedServicesToPurchase=Előre meghatározott szolgáltatások, amelyeket meg kell vásárolni -PredefinedProductsAndServicesToPurchase=Előre meghatározott termékek/szolgáltatások, amelyeket meg kell vásárolni -NotPredefinedProducts=Nem előre definiált termékek/szolgáltatások +PredefinedProductsAndServicesToSell=Előre meghatározott termékek/szolgáltatások értékesítése +PredefinedProductsToPurchase=Előre meghatározott termék megvásárlása +PredefinedServicesToPurchase=Előre meghatározott szolgáltatások megvásárlása +PredefinedProductsAndServicesToPurchase=Előre meghatározott termékek/szolgáltatások megvásárlása +NotPredefinedProducts=Nem előre meghatározott termékek/szolgáltatások GenerateThumb=Miniatűr kép létrehozása ServiceNb=Szolgáltatás #%s ListProductServiceByPopularity=Termékek/szolgáltatások listája népszerűség szerint @@ -160,17 +160,17 @@ Finished=Gyártott termék RowMaterial=Nyersanyag ConfirmCloneProduct=Biztosan klónozni szeretné a(z) %s terméket vagy szolgáltatást? CloneContentProduct=A termék/szolgáltatás összes fő információjának klónozása -ClonePricesProduct=Klón árak +ClonePricesProduct=Klónozott árak CloneCategoriesProduct=Kapcsolt címkék/kategóriák klónozása CloneCompositionProduct=Virtuális termékek/szolgáltatások klónozása CloneCombinationsProduct=A termékváltozatok klónozása ProductIsUsed=Ez a termék használatban van -NewRefForClone=Új termék/szolgáltatás hivatkozása +NewRefForClone=Új termék/szolgáltatás hivatkozási száma SellingPrices=Eladási árak BuyingPrices=Vételi árak -CustomerPrices=Vásárlói árak -SuppliersPrices=Szállítói árak -SuppliersPricesOfProductsOrServices=Szállítói árak (termékek vagy szolgáltatások) +CustomerPrices=Ügyfél árak +SuppliersPrices=Forgalmazói árak +SuppliersPricesOfProductsOrServices=Forgalmazói árak (termékek vagy szolgáltatások) CustomCode=Vám | Áru | HS kód CountryOrigin=Származási ország RegionStateOrigin=Származási régió @@ -190,7 +190,7 @@ h=h day=nap d=d kilogram=kilogramm -kg=kg +kg=Kg gram=gramm g=g meter=méter @@ -201,7 +201,7 @@ m3=m³ liter=liter l=L unitP=Darab -unitSET=Beállítva +unitSET=Készlet unitS=Második unitH=Óra unitD=Nap @@ -210,7 +210,7 @@ unitM=Méter unitLM=Lineáris méter unitM2=Négyzetméter unitM3=Köbméter -unitL=liter +unitL=Liter unitT=tonna unitKG=kg unitG=gramm @@ -241,123 +241,123 @@ ProductCodeModel=Termékreferencia sablon ServiceCodeModel=Szolgáltatási hivatkozás sablon CurrentProductPrice=Jelenlegi ár AlwaysUseNewPrice=Mindig használja a termék/szolgáltatás aktuális árát -AlwaysUseFixedPrice=Rögzített ár használata -PriceByQuantity=Eltérő árak mennyiség szerint -DisablePriceByQty=Árak letiltása mennyiség szerint +AlwaysUseFixedPrice=Használja a rögzített árat +PriceByQuantity=Különböző árak mennyiség szerint +DisablePriceByQty=Mennyiség szerinti árak letiltása PriceByQuantityRange=Mennyiségtartomány MultipriceRules=Automatikus árak a szegmenshez UseMultipriceRules=Használja az árszegmens szabályokat (a termékmodul beállításában meghatározott) az összes többi szegmens árának automatikus kiszámításához az első szegmens szerint -PercentVariationOver=%% eltérés %s felett -PercentDiscountOver=%% kedvezmény %s felett -KeepEmptyForAutoCalculation=Hagyja üresen, hogy ez automatikusan ki legyen számítva a termékek súlyából vagy térfogatából +PercentVariationOver=%% variáció az %s-hez képest +PercentDiscountOver=%% kedvezmény az %s felett +KeepEmptyForAutoCalculation=Hagyja üresen, hogy ez automatikusan kiszámítható legyen a termékek tömegéből vagy térfogatából VariantRefExample=Példák: SZÍN, MÉRET VariantLabelExample=Példák: Szín, Méret ### composition fabrication Build=Gyártás ProductsMultiPrice=Termékek és árak az egyes árszegmensekhez -ProductsOrServiceMultiPrice=Vásárlói árak (termékek vagy szolgáltatások, többáras) +ProductsOrServiceMultiPrice=Ügyfél árak (termékek vagy szolgáltatások, többáras) ProductSellByQuarterHT=Termékforgalom negyedévente adózás előtt ServiceSellByQuarterHT=Szolgáltatási forgalom negyedévente adózás előtt Quarter1=1. Negyed Quarter2=2. Negyed Quarter3=3. Negyed Quarter4=4. Negyed -BarCodePrintsheet=Vonalkód nyomtatása -PageToGenerateBarCodeSheets=Ezzel az eszközzel vonalkódmatricákat nyomtathat ki. Válassza ki a matricaoldal formátumát, a vonalkód típusát és a vonalkód értékét, majd kattintson a %s gombra. -NumberOfStickers=Az oldalon nyomtatandó matricák száma +BarCodePrintsheet=Vonalkódok nyomtatása +PageToGenerateBarCodeSheets=Ezzel az eszközzel vonalkódmatricákat nyomtathat ki. Válassza ki a matricaoldal formátumát, a vonalkód típusát és a vonalkód értékét, majd kattintson a %s gombra. +NumberOfStickers=Az oldalra nyomtatandó matricák száma PrintsheetForOneBarCode=Több matrica nyomtatása egy vonalkódhoz -BuildPageToPrint=Oldal létrehozása nyomtatáshoz +BuildPageToPrint=Nyomtatandó oldal létrehozása FillBarCodeTypeAndValueManually=Vonalkód típusának és értékének manuális kitöltése. FillBarCodeTypeAndValueFromProduct=Vonalkód típusának és értékének kitöltése a termék vonalkódjából. FillBarCodeTypeAndValueFromThirdParty=Töltse ki a vonalkód típusát és értékét egy harmadik fél vonalkódjából. -DefinitionOfBarCodeForProductNotComplete=A %s termék vonalkódjának típusának vagy értékének meghatározása nem teljes. +DefinitionOfBarCodeForProductNotComplete=A vonalkód típusának vagy értékének meghatározása nem teljes az %s termék esetében. DefinitionOfBarCodeForThirdpartyNotComplete=A vonalkód típusának vagy értékének meghatározása nem teljes a(z) %s harmadik fél számára. -BarCodeDataForProduct=A %s termék vonalkódinformációi: -BarCodeDataForThirdparty=Harmadik fél vonalkódinformációi: %s: -ResetBarcodeForAllRecords=Határozza meg a vonalkód értékét az összes rekordhoz (ez a már definiált vonalkód értéket is visszaállítja új értékekkel) -PriceByCustomer=Eltérő árak minden vásárló számára +BarCodeDataForProduct=Az %s termék vonalkódja: +BarCodeDataForThirdparty=A %s harmadik fél vonalkódja: +ResetBarcodeForAllRecords=Meghatározza a vonalkód értékét az összes rekordhoz (ez egyben visszaállítja a már meghatározott vonalkód értékét az új értékekkel). +PriceByCustomer=Különböző árak minden ügyfél számára PriceCatalogue=Egyetlen eladási ár termékenként/szolgáltatásonként -PricingRule=Eladási árakra vonatkozó szabályok -AddCustomerPrice=Ár hozzáadása ügyfél szerint +PricingRule=Az eladási árakra vonatkozó szabályok +AddCustomerPrice=Árak hozzáadása ügyfél szerint ForceUpdateChildPriceSoc=Állítsa be ugyanazt az árat az ügyfél leányvállalatainál -PriceByCustomerLog=Korábbi vásárlói árak naplója +PriceByCustomerLog=Korábbi ügyfél árak naplója MinimumPriceLimit=A minimális ár nem lehet alacsonyabb, mint %s MinimumRecommendedPrice=A minimális ajánlott ár: %s -PriceExpressionEditor=Árkifejezés-szerkesztő +PriceExpressionEditor=Ár kifejezés szerkesztő PriceExpressionSelected=Kiválasztott árkifejezés -PriceExpressionEditorHelp1="ár = 2 + 2" vagy "2 + 2" az ár beállításához. Használja ; kifejezések elkülönítésére +PriceExpressionEditorHelp1="ár = 2 + 2" vagy "2 + 2" az ár beállításához. Használja a ;-t a kifejezések elválasztására PriceExpressionEditorHelp2=Az extra mezőket olyan változókkal érheti el, mint a #extrafield_myextrafieldkey#, a globális változókat pedig a #global_mycode# segítségével -PriceExpressionEditorHelp3=Mind a termék/szolgáltatás, mind a szállítói árakban a következő változók állnak rendelkezésre:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# -PriceExpressionEditorHelp4=Csak a termék/szolgáltatás árában: #supplier_min_price#
    Csak szállítói árakban: #supplier_quantity# és #supplier_tva_tx# +PriceExpressionEditorHelp3=Mind a termék/szolgáltatás, mind a forgalmazói árakban a következő változók állnak rendelkezésre:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# +PriceExpressionEditorHelp4=Csak a termék/szolgáltatás árában: #supplier_min_price#
    Csak forgalmazói árakban: #supplier_quantity# és #supplier_tva_tx# PriceExpressionEditorHelp5=Elérhető globális értékek: PriceMode=Ár mód PriceNumeric=Szám DefaultPrice=Alapértelmezett ár DefaultPriceLog=A korábbi alapértelmezett árak naplója -ComposedProductIncDecStock=Raktárkészlet növelése/csökkentése szülőmódosításkor -ComposedProduct=Gyermektermékek +ComposedProductIncDecStock=Növekvő/csökkenő készlet az anyavállalat változásakor +ComposedProduct=Gyermek termékek MinSupplierPrice=Minimális vételár MinCustomerPrice=Minimális eladási ár NoDynamicPrice=Nincs dinamikus ár DynamicPriceConfiguration=Dinamikus árkonfiguráció -DynamicPriceDesc=Matematikai képleteket határozhat meg a Vevői vagy Szállítói árak kiszámításához. Az ilyen képletek használhatnak minden matematikai operátort, néhány állandót és változót. Itt adhatja meg a használni kívánt változókat. Ha a változó automatikus frissítést igényel, megadhatja a külső URL-t, hogy a Dolibarr automatikusan frissítse az értéket. +DynamicPriceDesc=Matematikai képleteket határozhat meg az Ügyfél vagy Forgalmazói árak kiszámításához. Az ilyen képletek használhatnak minden matematikai operátort, néhány állandót és változót. Itt adhatja meg a használni kívánt változókat. Ha a változó automatikus frissítést igényel, megadhatja a külső URL-t, hogy a Dolibarr automatikusan frissítse az értéket. AddVariable=Változó hozzáadása AddUpdater=Frissítő hozzáadása GlobalVariables=Globális változók VariableToUpdate=Frissítendő változó GlobalVariableUpdaters=Külső frissítők a változókhoz GlobalVariableUpdaterType0=JSON adatok -GlobalVariableUpdaterHelp0=JSON-adatokat elemzi a megadott URL-ről, a VALUE adja meg a releváns érték helyét, +GlobalVariableUpdaterHelp0=Elemzi a megadott URL-ről származó JSON-adatokat, a VALUE adja meg a releváns érték helyét, GlobalVariableUpdaterHelpFormat0=Kérés formátuma {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=WebService adatok -GlobalVariableUpdaterHelp1=Elemezi a WebService adatokat a megadott URL-ről, az NS a névteret, a VALUE a releváns érték helyét, a DATA az elküldendő adatokat, a METHOD pedig a hívó WS metódus +GlobalVariableUpdaterHelp1=A WebService adatait elemzi a megadott URL-ről, az NS a névteret, a VALUE a releváns érték helyét, a DATA az elküldendő adatokat tartalmazza, a METHOD pedig a hívó WS módszert GlobalVariableUpdaterHelpFormat1=A kérelem formátuma: {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Frissítési időköz (perc) LastUpdated=Utolsó frissítés CorrectlyUpdated=Helyesen frissítve -PropalMergePdfProductActualFile=Az Azur PDF-be való hozzáadásához használt fájlok +PropalMergePdfProductActualFile=A PDF Azur fájlokat a következő fájlokkal lehet hozzáadni a PDF Azurhoz PropalMergePdfProductChooseFile=PDF-fájlok kiválasztása IncludingProductWithTag=Beleértve a címkével ellátott termékeket/szolgáltatásokat -DefaultPriceRealPriceMayDependOnCustomer=Alapértelmezett ár, a valós ár az ügyféltől függhet +DefaultPriceRealPriceMayDependOnCustomer=Alapértelmezett ár, a tényleges ár az ügyféltől függhet WarningSelectOneDocument=Kérjük, válasszon ki legalább egy dokumentumot DefaultUnitToShow=Egység -NbOfQtyInProposals=Ajánlatok mennyisége -ClinkOnALinkOfColumn=Kattintson a %s oszlop hivatkozására a részletes nézet megtekintéséhez... +NbOfQtyInProposals=Mennyiség az árajánlatokban +ClinkOnALinkOfColumn=Kattintson az %s oszlop hivatkozására a részletes nézet megtekintéséhez... ProductsOrServicesTranslations=Termékek/Szolgáltatások fordításai TranslatedLabel=Lefordított címke TranslatedDescription=Lefordított leírás TranslatedNote=Lefordított jegyzetek ProductWeight=1 termék súlya ProductVolume=1 termék mennyisége -WeightUnits=Súlyegység -VolumeUnits=Térfogat mértékegysége -WidthUnits=Szélesség mértékegysége -LengthUnits=Hosszsági egység -HeightUnits=Magasság mértékegysége +WeightUnits=Súly egység +VolumeUnits=Térfogat egység +WidthUnits=Szélesség egység +LengthUnits=Hosszúság egység +HeightUnits=Magasság egység SurfaceUnits=Felületi egység -SizeUnits=Méretegység +SizeUnits=Méret egység DeleteProductBuyPrice=Vételár törlése -ConfirmDeleteProductBuyPrice=Biztosan törölni szeretné ezt a vételárat? -SubProduct=Altermék -ProductSheet=Terméklap -ServiceSheet=Szolgáltatási lap +ConfirmDeleteProductBuyPrice=Biztos, hogy törölni szeretné ezt a vételárat? +SubProduct=Al-termék +ProductSheet=Termék adatlap +ServiceSheet=Szolgáltatási adatlap PossibleValues=Lehetséges értékek -GoOnMenuToCreateVairants=Lépjen a %s - %s menübe az attribútumváltozatok (például színek, méretek, ...) elkészítéséhez. -UseProductFournDesc=Adjon hozzá egy szolgáltatást a szállítók által meghatározott termékleírás meghatározásához (minden szállítói hivatkozáshoz) az ügyfeleknek szóló leírás mellett -ProductSupplierDescription=Szállító leírása a termékhez -UseProductSupplierPackaging=Csomagolás használata a szállítói árakon (a szállítói áron beállított csomagolási mennyiségek újraszámítása a beszállítói dokumentumok sorának hozzáadása/frissítése során) +GoOnMenuToCreateVairants=Lépjen az %s - %s menübe az attribútumváltozatok (például színek, méretek stb.) elkészítéséhez. +UseProductFournDesc=Adjon hozzá egy olyan funkciót, amely a vevőknek szóló leíráson kívül a forgalmazók által meghatározott termékleírást is meghatározza (minden egyes forgalmazói hivatkozáshoz). +ProductSupplierDescription=A termék forgalmazói leírása +UseProductSupplierPackaging=A beszerzési árak többszörösére kerekített árak csomagolásának használata (a mennyiségek újraszámítása a beszerzési árakra beállított szorzóknak megfelelően, amikor a forgalmazói dokumentumokban sorokat adnak hozzá/frissítenek). PackagingForThisProduct=Csomagolás -PackagingForThisProductDesc=Szállítói rendelés esetén automatikusan megrendeli ezt a mennyiséget (vagy ennek többszörösét). Nem lehet kevesebb, mint a minimális vásárlási mennyiség -QtyRecalculatedWithPackaging=A sor mennyiségét a szállítói csomagolásnak megfelelően újraszámoltuk +PackagingForThisProductDesc=Automatikusan ennek a mennyiségnek a többszörösét fogja megvásárolni. +QtyRecalculatedWithPackaging=A sor mennyiségét a szállítói csomagolásnak megfelelően újraszámították. #Attributes -VariantAttributes=Változat attribútumok -ProductAttributes=Változatos attribútumok a termékekhez -ProductAttributeName=%s változat attribútum +VariantAttributes=Változat attribútumai +ProductAttributes=Termékváltozatok attribútumai +ProductAttributeName=Változat attribútum %s ProductAttribute=Változat attribútum -ProductAttributeDeleteDialog=Biztosan törölni szeretné ezt az attribútumot? Minden érték törlődik -ProductAttributeValueDeleteDialog=Biztosan törölni szeretné ennek az attribútumnak a "%s" értékét a "%s" hivatkozással? -ProductCombinationDeleteDialog=Biztosan törölni szeretné a termék "%s" változatát? +ProductAttributeDeleteDialog=Biztos, hogy törölni szeretné ezt az attribútumot? Minden érték törlésre kerül +ProductAttributeValueDeleteDialog=Biztos, hogy törölni szeretné az attribútum "%s" értékét a "%s" hivatkozással? +ProductCombinationDeleteDialog=Biztosan törölni kívánja a(z) " %s " termék változatát? ProductCombinationAlreadyUsed=Hiba történt a változat törlése közben. Kérjük, ellenőrizze, hogy nem használják-e egyetlen objektumban sem ProductCombinations=Változatok PropagateVariant=Változatok terjesztése @@ -368,54 +368,55 @@ EditProductCombination=Változat szerkesztése NewProductCombinations=Új változatok EditProductCombinations=Változatok szerkesztése SelectCombination=Kombináció kiválasztása -ProductCombinationGenerator=Változatgenerátor +ProductCombinationGenerator=Változatok generátor Features=Jellemzők -PriceImpact=Árhatás -ImpactOnPriceLevel=Hatás a %s árszintre -ApplyToAllPriceImpactLevel= Alkalmazás minden szintre -ApplyToAllPriceImpactLevelHelp=Ha ide kattint, ugyanazt az árhatást állítja be minden szinten -WeightImpact=Súlyhatás +PriceImpact=Az árra gyakorolt hatás +ImpactOnPriceLevel=Hatás az árszintre %s +ApplyToAllPriceImpactLevel= Alkalmazni minden szintre +ApplyToAllPriceImpactLevelHelp=Ha ide kattintasz, minden szinten ugyanazt az árat állítod be. +WeightImpact=A súlyra gyakorolt hatás NewProductAttribute=Új attribútum NewProductAttributeValue=Új attribútumérték ErrorCreatingProductAttributeValue=Hiba történt az attribútumérték létrehozásakor. Ez azért lehet, mert már létezik egy érték ezzel a hivatkozással -ProductCombinationGeneratorWarning=Ha folytatja, az új változatok generálása előtt az összes korábbi TÖRLÉS. A már meglévők frissítésre kerülnek az új értékekkel -TooMuchCombinationsWarning=Sok változat generálása magas CPU- és memóriahasználatot eredményezhet, és a Dolibarr nem tudja ezeket létrehozni. A „%s” opció engedélyezése csökkentheti a memóriahasználatot. +ProductCombinationGeneratorWarning=Ha folytatja, az új változatok létrehozása előtt az összes korábbi TÖRLŐDIK. A már meglévők az új értékekkel frissülnek. +TooMuchCombinationsWarning=Sok változat generálása magas CPU- és memóriahasználatot eredményezhet, és a Dolibarr nem tudja létrehozni ezeket. Az „%s” opció engedélyezése csökkentheti a memóriahasználatot. DoNotRemovePreviousCombinations=Ne távolítsa el a korábbi változatokat -UsePercentageVariations=Százalékos eltérések használata +UsePercentageVariations=Használjon százalékos eltéréseket PercentageVariation=Százalékos eltérés ErrorDeletingGeneratedProducts=Hiba történt a meglévő termékváltozatok törlése közben NbOfDifferentValues=Különböző értékek száma NbProducts=Termékek száma ParentProduct=Szülőtermék -HideChildProducts=Változatos termékek elrejtése -ShowChildProducts=Változatos termékek megjelenítése -NoEditVariants=Lépjen a Szülő termékkártyára, és szerkessze a változatok árhatásait a Változatok lapon +HideChildProducts=Termékváltozatok elrejtése +ShowChildProducts=Termékváltozatok megjelenítése +NoEditVariants=Menjen a Szülői termékkártyára, és szerkessze a változatok árhatását a változatok lapon. ConfirmCloneProductCombinations=Szeretné az összes termékváltozatot átmásolni a másik szülőtermékre a megadott hivatkozással? -CloneDestinationReference=Cél termék referencia +CloneDestinationReference=Céltermék hivatkozás ErrorCopyProductCombinations=Hiba történt a termékváltozatok másolása közben ErrorDestinationProductNotFound=A céltermék nem található ErrorProductCombinationNotFound=A termékváltozat nem található -ActionAvailableOnVariantProductOnly=A művelet csak a termék változatán érhető el +ActionAvailableOnVariantProductOnly=A művelet csak a termék változatnál érhető el ProductsPricePerCustomer=Termékárak vásárlónként ProductSupplierExtraFields=További attribútumok (szállítói árak) -DeleteLinkedProduct=A kombinációhoz kapcsolt utódtermék törlése -AmountUsedToUpdateWAP=A súlyozott átlagár frissítéséhez használandó összeg +DeleteLinkedProduct=A kombinációhoz kapcsolódó gyermektermék törlése +AmountUsedToUpdateWAP=A súlyozott átlagár frissítéséhez használandó egységösszeg PMPValue=Súlyozott átlagár PMPValueShort=WAP mandatoryperiod=Kötelező időszakok mandatoryPeriodNeedTobeSet=Megjegyzés: Az időszakot (kezdő és befejező dátum) meg kell határozni -mandatoryPeriodNeedTobeSetMsgValidate=Egy szolgáltatáshoz meg kell adni egy kezdő és befejező időszakot -mandatoryHelper=Jelölje be, ha üzenetet szeretne küldeni a felhasználónak a számla, árajánlat, értékesítési rendelés létrehozásakor/érvényesítésekor anélkül, hogy megadná a kezdési és befejezési dátumot a szolgáltatást használó vonalakon.
    Ne feledje, hogy az üzenet figyelmeztetés, nem pedig blokkoló hiba. +mandatoryPeriodNeedTobeSetMsgValidate=A szolgáltatásnak szüksége van egy kezdő és egy befejező időszakra +mandatoryHelper=Jelölje be ezt a beállítást, ha azt szeretné, hogy a felhasználónak üzenetet küldjön, amikor számlát, árajánlatot, értékesítési rendelést hoz létre/érvényesít anélkül, hogy megadná a kezdő és záró dátumot a sorokon ezzel a szolgáltatással.
    Vegye figyelembe, hogy az üzenet figyelmeztetés, nem pedig blokkoló hiba. DefaultBOM=Alapértelmezett anyagjegyzék -DefaultBOMDesc=A termék gyártásához javasolt alapértelmezett anyagjegyzék. Ez a mező csak akkor állítható be, ha a termék jellege „%s”. +DefaultBOMDesc=A termék gyártásához ajánlott alapértelmezett anyagjegyzék. Ez a mező csak akkor állítható be, ha a termék jellege „%s”. Rank=Rang MergeOriginProduct=Ismétlődő termék (törölni kívánt termék) MergeProducts=Termékek egyesítése -ConfirmMergeProducts=Biztosan egyesíteni szeretné a kiválasztott terméket a jelenlegivel? Minden kapcsolt objektum (számlák, rendelések, ...) átkerül az aktuális termékbe, majd a kiválasztott termék törlődik. +ConfirmMergeProducts=Biztosan egyesíteni szeretné a kiválasztott terméket a jelenlegivel? Minden kapcsolt objektum (számlák, rendelések, ...) átkerül az aktuális termékbe, ami után a kiválasztott termék törlődik. ProductsMergeSuccess=A termékek összevonásra kerültek -ErrorsProductsMerge=A termékek hibái összeolvadnak -SwitchOnSaleStatus=Akciós állapot bekapcsolása -SwitchOnPurchaseStatus=A vásárlás állapotának bekapcsolása +ErrorsProductsMerge=Hibák a termékek egyesítésében +SwitchOnSaleStatus=Akció állapotának bekapcsolása +SwitchOnPurchaseStatus=Vásárlás állapotának bekapcsolása +UpdatePrice=Növeli/csökkenti a ügyfél árat StockMouvementExtraFields= Extra mezők (készlet mozgás) InventoryExtraFields= Extra mezők (leltár) ScanOrTypeOrCopyPasteYourBarCodes=Olvassa be, írja be vagy másolja/illessze be vonalkódjait @@ -425,5 +426,6 @@ ExpectedValuation=Várható értékelés PMPReal=Valós PMP RealValuation=Valódi értékelés ConfirmEditExtrafield = Válassza ki a módosítani kívánt extra mezőt -ConfirmEditExtrafieldQuestion = Biztosan módosítani szeretné ezt az extramezőt? +ConfirmEditExtrafieldQuestion = Biztosan módosítani szeretné ezt az extra mezőt? ModifyValueExtrafields = Extra mező értékének módosítása +OrProductsWithCategories=Vagy címkékkel/kategóriákkal ellátott termékek diff --git a/htdocs/langs/hu_HU/projects.lang b/htdocs/langs/hu_HU/projects.lang index 30d0c08766e..2d6e5d04ec5 100644 --- a/htdocs/langs/hu_HU/projects.lang +++ b/htdocs/langs/hu_HU/projects.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - projects -RefProject=Ref. projektet -ProjectRef=Projekt ref. -ProjectId=Projektazonosító -ProjectLabel=Projektcímke -ProjectsArea=Projektterület +RefProject=Hivatkozás projektre +ProjectRef=Projekt hivatkozás +ProjectId=Projekt azonosító +ProjectLabel=Projekt címke +ProjectsArea=Projektek területe ProjectStatus=Projekt állapota SharedProject=Mindenki PrivateProject=Hozzárendelt névjegyek @@ -11,20 +11,21 @@ ProjectsImContactFor=Projektek, amelyeknek kifejezetten kapcsolattartója vagyok AllAllowedProjects=Minden projekt, amit el tudok olvasni (enyém + nyilvános) AllProjects=Minden projekt MyProjectsDesc=Ez a nézet azokra a projektekre korlátozódik, amelyeknek Ön a kapcsolattartója -ProjectsPublicDesc=Ez a nézet megjeleníti az összes olyan projektet, amelyet olvasni jogosult. -TasksOnProjectsPublicDesc=Ez a nézet megjeleníti az összes olyan feladatot a projekteken, amelyek elolvashatók. -ProjectsPublicTaskDesc=Ez a nézet megjeleníti az összes olyan projektet és feladatot, amelyet elolvashat. -ProjectsDesc=Ez a nézet az összes projektet megjeleníti (a felhasználói engedélyei engedélyt adnak minden megtekintésére). -TasksOnProjectsDesc=Ez a nézet megjeleníti az összes feladatot az összes projektben (a felhasználói engedélyei engedélyt adnak minden megtekintésére). -MyTasksDesc=Ez a nézet azokra a projektekre vagy feladatokra korlátozódik, amelyeknek Ön a kapcsolattartója -OnlyOpenedProject=Csak a nyitott projektek láthatók (a vázlat vagy lezárt állapotú projektek nem láthatók). +ProjectsPublicDesc=Ez a nézet az összes olyan projektet bemutatja, amelynek elolvasására engedélyt kapott. +TasksOnProjectsPublicDesc=Ez a nézet az összes olyan projekt feladatát mutatja, amelynek olvasására engedélyt kapott. +ProjectsPublicTaskDesc=Ez a nézet az összes olyan projektet és feladatot mutatja, amelynek olvasására engedélyt kapott. +ProjectsDesc=Ez a nézet az összes projektet mutatja (a felhasználói engedélyei minden megtekintésére jogosítanak). +TasksOnProjectsDesc=Ez a nézet az összes projekt összes feladatát bemutatja (az Ön felhasználói jogosultságai alapján mindent megtekinthet). +MyTasksDesc=Ez a nézet azokra a projektekre vagy feladatokra korlátozódik, amelyeknek Ön a kapcsolattartója. +OnlyOpenedProject=Csak a nyitott projektek láthatók (a tervezet vagy lezárt státuszú projektek nem láthatók). ClosedProjectsAreHidden=A lezárt projektek nem láthatók. -TasksPublicDesc=Ez a nézet megjeleníti az összes olyan projektet és feladatot, amelyet elolvashat. +TasksPublicDesc=Ez a nézet az összes olyan projektet és feladatot mutatja, amelynek olvasására engedélyt kapott. TasksDesc=Ez a nézet megjeleníti az összes projektet és feladatot (a felhasználói engedélyei engedélyt adnak minden megtekintésére). AllTaskVisibleButEditIfYouAreAssigned=A minősített projektekhez tartozó összes feladat látható, de csak a kiválasztott felhasználóhoz rendelt feladathoz adhat meg időt. Rendeljen ki feladatot, ha időt kell megadnia hozzá. OnlyYourTaskAreVisible=Csak az Önhöz rendelt feladatok láthatók. Ha egy feladathoz időt kell megadnia, és a feladat nem látható itt, akkor a feladatot saját magának kell hozzárendelnie. +ImportDatasetProjects=Projektek vagy lehetőségek ImportDatasetTasks=Projektek feladatai -ProjectCategories=Projektcímkék/kategóriák +ProjectCategories=Projekt címkék/kategóriák NewProject=Új projekt AddProject=Projekt létrehozása DeleteAProject=Projekt törlése @@ -32,13 +33,15 @@ DeleteATask=Feladat törlése ConfirmDeleteAProject=Biztosan törölni szeretné ezt a projektet? ConfirmDeleteATask=Biztosan törölni szeretné ezt a feladatot? OpenedProjects=Nyitott projektek -OpenedTasks=Feladatok megnyitása +OpenedTasks=Nyitott feladatok OpportunitiesStatusForOpenedProjects=A nyitott projektek számát állapot szerint vezeti OpportunitiesStatusForProjects=A projektek számát állapot szerint vezeti ShowProject=Projekt megjelenítése ShowTask=Feladat megjelenítése +SetThirdParty=Harmadik fél beállítása SetProject=Projekt beállítása -NoProject=Nincs definiált vagy tulajdonos projekt +OutOfProject=Kilép a projektből +NoProject=Nincs meghatározott vagy saját projekt NbOfProjects=Projektek száma NbOfTasks=Feladatok száma TimeSpent=Eltöltött idő @@ -46,18 +49,18 @@ TimeSpentByYou=Az Ön által eltöltött idő TimeSpentByUser=A felhasználó által eltöltött idő TimesSpent=Eltöltött idő TaskId=Feladatazonosító -RefTask=Feladat ref. +RefTask=Feladat hivatkozás LabelTask=Feladat címke TaskTimeSpent=Feladatokra fordított idő TaskTimeUser=Felhasználó TaskTimeNote=Megjegyzés TaskTimeDate=Dátum -TasksOnOpenedProject=Feladatok nyitott projekteken +TasksOnOpenedProject=Nyitott projektek feladatai WorkloadNotDefined=A munkaterhelés nincs meghatározva NewTimeSpent=Eltöltött idő MyTimeSpent=Eltöltött időm -BillTime=Számlázzon az eltöltött időről -BillTimeShort=Számlázzon az eltöltött időről +BillTime=Számlázza ki az eltöltött időt +BillTimeShort=Számlázási idő TimeToBill=Nem számlázott idő TimeBilled=Kiszámlázott idő Tasks=Feladatok @@ -67,35 +70,35 @@ TaskDateEnd=Feladat befejezési dátuma TaskDescription=Feladat leírása NewTask=Új feladat AddTask=Feladat létrehozása -AddTimeSpent=Eltöltött idő létrehozása -AddHereTimeSpentForDay=Adja meg ide az erre a napra/feladatra fordított időt -AddHereTimeSpentForWeek=Adja meg ide az erre a hétre/feladatra fordított időt +AddTimeSpent=Az eltöltött idő létrehozása +AddHereTimeSpentForDay=Adja hozzá az erre a napra/feladatra fordított időt +AddHereTimeSpentForWeek=Adja hozzá az erre a hétre/feladatra fordított időt Activity=Tevékenység Activities=Feladatok/tevékenységek MyActivities=Saját feladataim/tevékenységeim MyProjects=Saját projektek MyProjectsArea=Saját projektek területe DurationEffective=Tényleges időtartam -ProgressDeclared=Valódi deklarált haladás -TaskProgressSummary=Feladat folyamata +ProgressDeclared=Valódi előrelépés +TaskProgressSummary=Feladat előrehaladása CurentlyOpenedTasks=Jelenleg nyitott feladatok -TheReportedProgressIsLessThanTheCalculatedProgressionByX=A bejelentett valós haladás %s kisebb, mint a fogyasztás előrehaladása -TheReportedProgressIsMoreThanTheCalculatedProgressionByX=A bejelentett valós haladás több %s, mint a fogyasztás előrehaladása -ProgressCalculated=Fogyasztás előrehaladása -WhichIamLinkedTo=amelyhez linkelve vagyok -WhichIamLinkedToProject=amelyh projekthez vagyok kapcsolva +TheReportedProgressIsLessThanTheCalculatedProgressionByX=A bejelentett valós haladás %s kisebb, mint a fogyasztás terén elért haladás +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=A bejelentett valós haladás több %s, mint a fogyasztás terén elért haladás +ProgressCalculated=Haladás a fogyasztás terén +WhichIamLinkedTo=amihez kapcsolódom +WhichIamLinkedToProject=amely projekthez kapcsolódom Time=Idő -TimeConsumed=Fogyaszt +TimeConsumed=Elfogyasztott ListOfTasks=Feladatok listája -GoToListOfTimeConsumed=Ugrás az elhasznált idő listájához +GoToListOfTimeConsumed=Menjen a felhasznált idő listájához GanttView=Gantt-nézet -ListWarehouseAssociatedProject=A projekthez társított raktárak listája +ListWarehouseAssociatedProject=A projekthez kapcsolódó raktárak listája ListProposalsAssociatedProject=A projekthez kapcsolódó árajánlatok listája ListOrdersAssociatedProject=A projekthez kapcsolódó értékesítési rendelések listája -ListInvoicesAssociatedProject=A projekthez kapcsolódó vevői számlák listája -ListPredefinedInvoicesAssociatedProject=A projekthez kapcsolódó ügyfélsablon számlák listája +ListInvoicesAssociatedProject=A projekthez kapcsolódó ügyfél számlák listája +ListPredefinedInvoicesAssociatedProject=A projekthez kapcsolódó ügyfél sablon számlák listája ListSupplierOrdersAssociatedProject=A projekthez kapcsolódó beszerzési rendelések listája -ListSupplierInvoicesAssociatedProject=A projekthez kapcsolódó szállítói számlák listája +ListSupplierInvoicesAssociatedProject=A projekthez kapcsolódó forgalmazói számlák listája ListContractAssociatedProject=A projekthez kapcsolódó szerződések listája ListShippingAssociatedProject=A projekthez kapcsolódó szállítások listája ListFichinterAssociatedProject=A projekthez kapcsolódó beavatkozások listája @@ -107,24 +110,25 @@ ListActionsAssociatedProject=A projekthez kapcsolódó események listája ListMOAssociatedProject=A projekthez kapcsolódó gyártási rendelések listája ListTaskTimeUserProject=A projekt feladataira fordított idő listája ListTaskTimeForTask=A feladatra fordított idő listája -ActivityOnProjectToday=Tevékenység a projektben ma +ActivityOnProjectToday=Mai tevékenység a projektben ActivityOnProjectYesterday=Tegnapi tevékenység a projektben -ActivityOnProjectThisWeek=Tevékenység a projektben ezen a héten -ActivityOnProjectThisMonth=Tevékenység a projektben ebben a hónapban -ActivityOnProjectThisYear=Tevékenység a projektben ebben az évben +ActivityOnProjectThisWeek=Ezen a héten végzett tevékenység a projektben +ActivityOnProjectThisMonth=Ebben a hónapban végzett tevékenység a projektben +ActivityOnProjectThisYear=Ebben az évben végzett tevékenység a projektben ChildOfProjectTask=A projekt/feladat gyermeke ChildOfTask=A feladat gyermeke -TaskHasChild=A feladatnak gyermeke van +TaskHasChild=A feladatnak van gyermeke NotOwnerOfProject=Nem tulajdonosa ennek a privát projektnek AffectedTo=Kiosztva -CantRemoveProject=Ez a projekt nem távolítható el, mivel néhány más objektum (számla, rendelés vagy egyéb) hivatkozik rá. Lásd a '%s' lapot. +CantRemoveProject=Ez a projekt nem távolítható el, mivel más objektumok (számla, rendelés vagy egyéb) hivatkoznak rá. Lásd az „%s” lapot. ValidateProject=Projekt érvényesítése ConfirmValidateProject=Biztosan érvényesíteni szeretné ezt a projektet? CloseAProject=Projekt bezárása -ConfirmCloseAProject=Biztosan bezárja ezt a projektet? -AlsoCloseAProject=Projekt bezárása is (tartsa nyitva, ha továbbra is követnie kell rajta a termelési feladatokat) +ConfirmCloseAProject=Biztosan be szeretné zárni ezt a projektet? +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Projekt megnyitása -ConfirmReOpenAProject=Biztosan újra akarja nyitni ezt a projektet? +ConfirmReOpenAProject=Biztosan újra szeretné nyitni ezt a projektet? ProjectContact=A projekt elérhetőségei TaskContact=Feladat kapcsolattartói ActionsOnProject=Események a projektben @@ -135,22 +139,22 @@ ConfirmDeleteATimeSpent=Biztosan törölni szeretné ezt az eltöltött időt? DoNotShowMyTasksOnly=Nézze meg a nem hozzám rendelt feladatokat is ShowMyTasksOnly=Csak a hozzám rendelt feladatok megtekintése TaskRessourceLinks=Feladat kapcsolattartói -ProjectsDedicatedToThisThirdParty=Ennek a harmadik félnek szentelt projektek +ProjectsDedicatedToThisThirdParty=Ennek a harmadik félnek ajánlott projektek NoTasks=Nincs feladat ehhez a projekthez -LinkedToAnotherCompany=Más harmadik félhez kapcsolva -TaskIsNotAssignedToUser=A feladat nincs hozzárendelve a felhasználóhoz. A feladat most hozzárendeléséhez használja a '%s' gombot. +LinkedToAnotherCompany=Más harmadik félhez kapcsolódik +TaskIsNotAssignedToUser=A feladat nincs hozzárendelve a felhasználóhoz. A ' %s ' gombbal rendelje hozzá a feladatot most. ErrorTimeSpentIsEmpty=Az eltöltött idő üres TimeRecordingRestrictedToNMonthsBack=Az időrögzítés %s hónapra van korlátozva ThisWillAlsoRemoveTasks=Ez a művelet törli a projekt összes feladatát (jelenleg %s feladat) és a ráfordított idő összes bevitelét. -IfNeedToUseOtherObjectKeepEmpty=Ha egyes objektumokat (számla, rendelés, ...), amelyek egy másik harmadik félhez tartoznak, a projekthez kell kapcsolni a létrehozáshoz, hagyja üresen, hogy a projekt több harmadik fél legyen. +IfNeedToUseOtherObjectKeepEmpty=Ha egyes objektumokat (számla, megrendelés, ...), amelyek egy másik harmadik félhez tartoznak, a projekthez kell kapcsolni a létrehozáshoz, hagyja üresen, hogy a projekt több harmadik fél legyen. CloneTasks=Feladatok klónozása CloneContacts=Névjegyek klónozása CloneNotes=Jegyzetek klónozása CloneProjectFiles=A projekthez kapcsolódó fájlok klónozása CloneTaskFiles=Az egyesített fájlok klónozása (ha a feladat(ok) klónozva) -CloneMoveDate=Frissíti a projekt/feladatok dátumát mostantól? +CloneMoveDate=Frissíti a projekt/feladatok dátumait mostantól? ConfirmCloneProject=Biztosan klónozza ezt a projektet? -ProjectReportDate=A feladatdátumok módosítása a projekt új kezdési dátumának megfelelően +ProjectReportDate=Módosítsa a feladat dátumait a projekt új kezdési dátumának megfelelően ErrorShiftTaskDate=A feladat dátumát nem lehet a projekt új kezdési dátuma szerint eltolni ProjectsAndTasksLines=Projektek és feladatok ProjectCreatedInDolibarr=%s projekt létrehozva @@ -159,16 +163,16 @@ ProjectModifiedInDolibarr=%s projekt módosítva TaskCreatedInDolibarr=%s feladat létrehozva TaskModifiedInDolibarr=%s feladat módosítva TaskDeletedInDolibarr=%s feladat törölve -OpportunityStatus=Potenciális ügyfél állapota -OpportunityStatusShort=Potenciális ügyfél állapota -OpportunityProbability=Lehetőség valószínűsége -OpportunityProbabilityShort=Lehetőség valószínűsége -OpportunityAmount=Lehetőség összege -OpportunityAmountShort=Lehetőség összege -OpportunityWeightedAmount=A lehetőséggel súlyozott összeg +OpportunityStatus=Előrehaladás állapota +OpportunityStatusShort=Előrehaladás állapota +OpportunityProbability=Előrehaladás valószínűség +OpportunityProbabilityShort=Előrehaladás valószín. +OpportunityAmount=Előrehaladás összege +OpportunityAmountShort=Előrehaladás összege +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Lehetőséggel súlyozott összeg -OpportunityAmountAverageShort=Lehetőség átlagos összege -OpportunityAmountWeigthedShort=Súlyozott ólommennyiség +OpportunityAmountAverageShort=Az előrehaladás átlagos összege +OpportunityAmountWeigthedShort=Az előrehaladás súlyozott összege WonLostExcluded=Nyert/Vesztes kizárva ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Projektvezető @@ -180,44 +184,44 @@ TypeContact_project_task_external_TASKEXECUTIVE=Feladat végrehajtó TypeContact_project_task_internal_TASKCONTRIBUTOR=Közreműködő TypeContact_project_task_external_TASKCONTRIBUTOR=Közreműködő SelectElement=Elem kiválasztása -AddElement=Link az elemhez -LinkToElementShort=Hivatkozás +AddElement=Hivatkozás az elemhez +LinkToElementShort=Hivatkozás ehhez # Documents models -DocumentModelBeluga=Projekt dokumentumsablon a csatolt objektumok áttekintéséhez +DocumentModelBeluga=Projektdokumentum sablon a kapcsolódó objektumok áttekintéséhez DocumentModelBaleine=Projekt dokumentumsablon feladatokhoz DocumentModelTimeSpent=Projekt jelentés sablon az eltöltött időhöz -PlannedWorkload=Tervezett munkaterhelés -PlannedWorkloadShort=Munkaterhelés -ProjectReferers=Kapcsolódó tételek +PlannedWorkload=Tervezett munkamennyiség +PlannedWorkloadShort=Munkamennyiség +ProjectReferers=Kapcsolódó elemek ProjectMustBeValidatedFirst=A projektet először érvényesíteni kell -MustBeValidatedToBeSigned=Az %s elemet először érvényesíteni kell, hogy aláírva legyen. +MustBeValidatedToBeSigned=Az %s elemet először érvényesíteni kell, hogy aláírásra kerüljön. FirstAddRessourceToAllocateTime=Felhasználói erőforrás hozzárendelése a projekt kapcsolattartójaként az idő lefoglalásához InputPerDay=Bevitel naponta -InputPerWeek=Heti bevitel +InputPerWeek=Bevitel hetente InputPerMonth=Bevitel havonta InputDetail=Beviteli részletek -TimeAlreadyRecorded=Ez az ehhez a feladathoz/naphoz és %s felhasználóhoz már eltöltött idő +TimeAlreadyRecorded=Ez a feladatra/napra és a felhasználóra %s már feljegyzett idő. ProjectsWithThisUserAsContact=Projektek ezzel a felhasználóval kapcsolattartóként ProjectsWithThisContact=Projektek ezzel a kapcsolattal TasksWithThisUserAsContact=A felhasználóhoz rendelt feladatok ResourceNotAssignedToProject=Nincs projekthez rendelve ResourceNotAssignedToTheTask=Nincs hozzárendelve a feladathoz NoUserAssignedToTheProject=Nincs felhasználó hozzárendelve ehhez a projekthez -TimeSpentBy=Által eltöltött idő -TasksAssignedTo=Feladatok hozzárendelve +TimeSpentBy=Az alábbiak által eltöltött idő +TasksAssignedTo=A következőkhöz rendelt feladatok AssignTaskToMe=Feladat hozzárendelése magamhoz AssignTaskToUser=Feladat hozzárendelése ehhez: %s -SelectTaskToAssign=Válassza ki a hozzárendelendő feladatot... +SelectTaskToAssign=Válassza ki a feladatot a hozzárendeléshez... AssignTask=Hozzárendelés ProjectOverview=Áttekintés ManageTasks=Projektek használata a feladatok követésére és/vagy az eltöltött idő jelentésére (munkaidő-nyilvántartás) -ManageOpportunitiesStatus=Használjon projekteket a vezetők/lehetőségek követésére +ManageOpportunitiesStatus=Használjon projekteket az előrehaladás/lehetőségek követésére ProjectNbProjectByMonth=Létrehozott projektek száma hónaponként ProjectNbTaskByMonth=Létrehozott feladatok száma hónaponként -ProjectOppAmountOfProjectsByMonth=A lehetőségek mennyisége havonta -ProjectWeightedOppAmountOfProjectsByMonth=A lehetőségek súlyozott mennyisége hónaponként -ProjectOpenedProjectByOppStatus=Projekt megnyitása | vezető státusz szerint vezet -ProjectsStatistics=Statisztikák projektekről vagy lehetőségekről +ProjectOppAmountOfProjectsByMonth=Az előrehaladások mennyisége havonta +ProjectWeightedOppAmountOfProjectsByMonth=Az előrehaladások súlyozott mennyisége hónaponként +ProjectOpenedProjectByOppStatus=Nyitott projekt | előrehaladás előrehaladási státusz szerint +ProjectsStatistics=Statisztikák projektekről vagy előrehaladásokról TasksStatistics=Statisztikák projektek vagy lehetőségek feladatairól TaskAssignedToEnterTime=Feladat hozzárendelve. Lehetővé kell tenni az idő megadását erre a feladatra. IdTaskTime=Id feladat ideje @@ -238,7 +242,7 @@ OppStatusPENDING=Függőben OppStatusWON=Nyert OppStatusLOST=Elveszett Budget=Költségvetés -AllowToLinkFromOtherCompany=Más vállalattól származó projekt összekapcsolásának engedélyezése

    Támogatott értékek:
    - Maradjon üresen: A vállalat bármely projektjét összekapcsolhatja (alapértelmezett)
    - "összes": Bármilyen projektet összekapcsolhat, még más vállalatok projektjeit is
    - A harmadik felek azonosítóinak listája vesszővel elválasztva: összekapcsolhatja e harmadik felek összes projektjét (Példa: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=A legújabb %s projekt LatestModifiedProjects=A legutóbbi %s módosított projekt OtherFilteredTasks=Egyéb szűrt feladatok @@ -259,7 +263,7 @@ TimeSpentInvoiced=Kiszámlázott idő TimeSpentForIntervention=Eltöltött idő TimeSpentForInvoice=Eltöltött idő OneLinePerUser=Felhasználónként egy sor -ServiceToUseOnLines=A vonalakon használható szolgáltatás +ServiceToUseOnLines=Alapértelmezés szerint a vonalakon használható szolgáltatás InvoiceGeneratedFromTimeSpent=A %s számla a projektben eltöltött időből készült InterventionGeneratedFromTimeSpent=A %s beavatkozás a projektben eltöltött időből jött létre ProjectBillTimeDescription=Ellenőrizze, hogy megad-e munkaidő-nyilvántartást a projekt feladatairól ÉS azt tervezi, hogy számlá(ka)t generál az időnyilvántartásból, hogy kiszámlázza a projekt ügyfelét (ne ellenőrizze, hogy nem a megadott munkaidő-nyilvántartásokon alapuló számlát tervez-e készíteni). Megjegyzés: Számla generálásához lépjen a projekt „Eltöltött idő” lapjára, és válassza ki a bevonni kívánt sorokat. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=A profit kiszámítása a következővel történik: AddPersonToTask=Hozzáadás a feladatokhoz is UsageOrganizeEvent=Használat: Eseményszervezés PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Projekt besorolása lezártként, ha az összes feladat befejeződött (100%%-os előrehaladás) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Megjegyzés: a 100%%-os előrehaladással rendelkező meglévő projekteket ez nem érinti: manuálisan kell bezárnia őket. Ez az opció csak a nyitott projekteket érinti. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Válassza ki a nem számlázott idősorokat, majd a "Számla generálása" tömeges műveletet a számlázáshoz ProjectTasksWithoutTimeSpent=Projektfeladatok időráfordítás nélkül FormForNewLeadDesc=Köszönjük, hogy kitöltötte a következő űrlapot a kapcsolatfelvételhez. Küldhet nekünk e-mailt közvetlenül is a következő címre: %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Engedélyezze a nyilvános űrlapot a kapcsolatfelvételhez NewLeadbyWeb=Üzenetét vagy kérését rögzítettük. Hamarosan válaszolunk vagy felvesszük Önnel a kapcsolatot. NewLeadForm=Új kapcsolatfelvételi űrlap LeadFromPublicForm=Online lehetőség nyilvános űrlapról +ExportAccountingReportButtonLabel=Jelentés beszerzése diff --git a/htdocs/langs/hu_HU/propal.lang b/htdocs/langs/hu_HU/propal.lang index a2c7f756838..e4b6dc4d14f 100644 --- a/htdocs/langs/hu_HU/propal.lang +++ b/htdocs/langs/hu_HU/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Elérhetőségi késleltetés SetAvailability=Elérhetőségi késleltetés beállítása AfterOrder=rendelés után OtherProposals=Egyéb javaslatok + ##### Availability ##### AvailabilityTypeAV_NOW=Azonnali AvailabilityTypeAV_1W=1 hét AvailabilityTypeAV_2W=2 hét AvailabilityTypeAV_3W=3 hét AvailabilityTypeAV_1M=1 hónap -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Reprezentatív nyomon követési javaslat TypeContact_propal_external_BILLING=Az ügyfél számla kapcsolattartója TypeContact_propal_external_CUSTOMER=Ügyfélkapcsolati követési javaslat TypeContact_propal_external_SHIPPING=Ügyfélkapcsolat a szállításhoz + # Document models -DocModelAzurDescription=Egy teljes ajánlatmodell (a ciánkék sablon régi megvalósítása) -DocModelCyanDescription=A teljes ajánlatmodell -DefaultModelPropalCreate=Alapértelmezett modell létrehozása -DefaultModelPropalToBill=Alapértelmezett sablon üzleti ajánlat lezárásakor (számlázandó) -DefaultModelPropalClosed=Alapértelmezett sablon üzleti ajánlat lezárásakor (számlázatlan) -ProposalCustomerSignature=Írásbeli elfogadás, cégbélyegző, dátum és aláírás -ProposalsStatisticsSuppliers=Szállítói ajánlatok statisztikái -CaseFollowedBy=Eset követi -SignedOnly=Csak aláírva -NoSign=A készlet nincs aláírva -NoSigned=készlet nincs aláírva CantBeNoSign=nem állítható be nincs aláírva +CaseFollowedBy=Eset követi ConfirmMassNoSignature=Tömeges Nem aláírt megerősítés ConfirmMassNoSignatureQuestion=Biztosan nem írja alá a kiválasztott rekordokat? -IsNotADraft=nem piszkozat -PassedInOpenStatus=érvényesítésre került -Sign=Aláírás -Signed=aláírva -ConfirmMassValidation=Tömeges megerősítés megerősítése ConfirmMassSignature=Tömeges aláírás megerősítése -ConfirmMassValidationQuestion=Biztosan érvényesíteni kívánja a kiválasztott rekordokat? ConfirmMassSignatureQuestion=Biztosan aláírja a kiválasztott rekordokat? -IdProposal=Ajánlatazonosító +ConfirmMassValidation=Tömeges megerősítés megerősítése +ConfirmMassValidationQuestion=Biztosan érvényesíteni kívánja a kiválasztott rekordokat? +ConfirmRefusePropal=Biztosan visszautasítja ezt az árajánlatot? +ContractSigned=Szerződés aláírva +DefaultModelPropalClosed=Alapértelmezett sablon üzleti ajánlat lezárásakor (számlázatlan) +DefaultModelPropalCreate=Alapértelmezett modell létrehozása +DefaultModelPropalToBill=Alapértelmezett sablon üzleti ajánlat lezárásakor (számlázandó) +DocModelAzurDescription=Egy teljes ajánlatmodell (a ciánkék sablon régi megvalósítása) +DocModelCyanDescription=A teljes ajánlatmodell +FichinterSigned=Intervention signed IdProduct=Termékazonosító +IdProposal=Ajánlatazonosító +IsNotADraft=nem piszkozat LineBuyPriceHT=Vételi ár a sor adó nélküli összege -SignPropal=Ajánlat elfogadása +NoSign=Elutasítás +NoSigned=készlet nincs aláírva +PassedInOpenStatus=érvényesítésre került +PropalAlreadyRefused=Az ajánlatot már elutasították +PropalAlreadySigned=Az ajánlatot már elfogadták +PropalRefused=Az ajánlat elutasítva +PropalSigned=Az ajánlat elfogadva +ProposalCustomerSignature=Írásbeli elfogadás, cégbélyegző, dátum és aláírás +ProposalsStatisticsSuppliers=Szállítói ajánlatok statisztikái RefusePropal=Ajánlat elutasítása Sign=Aláírás -NoSign=A készlet nincs aláírva -PropalAlreadySigned=Az ajánlatot már elfogadták -PropalAlreadyRefused=Az ajánlatot már elutasították -PropalSigned=Az ajánlat elfogadva -PropalRefused=Az ajánlat elutasítva -ConfirmRefusePropal=Biztosan visszautasítja ezt az árajánlatot? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Ajánlat elfogadása +Signed=aláírva +SignedOnly=Csak aláírva diff --git a/htdocs/langs/hu_HU/recruitment.lang b/htdocs/langs/hu_HU/recruitment.lang index ac9364a8365..9bcbf958251 100644 --- a/htdocs/langs/hu_HU/recruitment.lang +++ b/htdocs/langs/hu_HU/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-mail toborzó ToUseAGenericEmail=Általános e-mail használatához. Ha nincs megadva, a toborzásért felelős e-mail-cím kerül felhasználásra NewCandidature=Új alkalmazás ListOfCandidatures=Alkalmazások listája -RequestedRemuneration=Kért díjazás -ProposedRemuneration=Javasolt díjazás +Remuneration=Fizetés +RequestedRemuneration=Kért fizetés +ProposedRemuneration=Javasolt fizetés ContractProposed=Javasolt szerződés ContractSigned=Szerződés aláírva ContractRefused=A szerződés elutasítva RecruitmentCandidature=Jelentkezés JobPositions=Munkakörök RecruitmentCandidatures=Alkalmazások -InterviewToDo=Interjú +InterviewToDo=Contacts to follow AnswerCandidature=Jelentkezési válasz YourCandidature=Az Ön jelentkezése YourCandidatureAnswerMessage=Köszönjük jelentkezését.
    ... diff --git a/htdocs/langs/hu_HU/salaries.lang b/htdocs/langs/hu_HU/salaries.lang index 02893a0d0f1..e8e2d66c072 100644 --- a/htdocs/langs/hu_HU/salaries.lang +++ b/htdocs/langs/hu_HU/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=A felhasználók harmadik felei számára használt számviteli fiók -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=A felhasználói kártyán definiált dedikált könyvelési számla csak alkönyvelésre lesz használva. Ez lesz a főkönyvhöz és az alkönyvi könyvelés alapértelmezett értékeként használatos, ha a felhasználónál nincs dedikált felhasználói fiók. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Alapértelmezés szerint könyvelési számla a bérfizetéshez CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=A fizetés létrehozásakor alapértelmezés szerint hagyja üresen az "Összfizetés automatikus létrehozása" lehetőséget Salary=Fizetés diff --git a/htdocs/langs/hu_HU/stocks.lang b/htdocs/langs/hu_HU/stocks.lang index 70f08d06502..a660ffaf59f 100644 --- a/htdocs/langs/hu_HU/stocks.lang +++ b/htdocs/langs/hu_HU/stocks.lang @@ -265,6 +265,7 @@ ProductBarcodeDoesNotExist=A vonalkóddal rendelkező termék nem létezik WarehouseId=Raktárazonosító WarehouseRef=Raktári szám SaveQtyFirst=Először mentse el a valós készletezett mennyiségeket, mielőtt a készletmozgás létrehozását kérné. +ToStart=START InventoryStartedShort=Elindult ErrorOnElementsInventory=A művelet a következő ok miatt megszakadt: ErrorCantFindCodeInInventory=Nem található a következő kód a leltárban @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=Siker!! A mennyiség hozzá lett adva az összes StockChangeDisabled=A készlet módosítása letiltva NoWarehouseDefinedForTerminal=Nincs raktár definiálva a terminálhoz ClearQtys=Törölje az összes mennyiséget +ModuleStockTransferName=Speciális készlettranszfer +ModuleStockTransferDesc=A készlettranszfer fejlett kezelése transzfer lap generálásával +StockTransferNew=Új készlet átadása +StockTransferList=Készlettranszferek listája +ConfirmValidateStockTransfer=Biztosan érvényesíteni szeretné ezt a készletátruházást az %s hivatkozással? +ConfirmDestock=Készletek csökkenése átutalással %s +ConfirmDestockCancel=Törölje a készletcsökkentést %s átutalással +DestockAllProduct=A készletek csökkenése +DestockAllProductCancel=Törölje a készletcsökkenést +ConfirmAddStock=A készletek növelése %s átutalással +ConfirmAddStockCancel=Törölje a készlet növelését %s átutalással +AddStockAllProduct=A készletek növekedése +AddStockAllProductCancel=Törölje a készletek növelését +DatePrevueDepart=Az indulás tervezett időpontja +DateReelleDepart=Valódi indulás dátuma +DatePrevueArrivee=Tervezett Érkezés +DateReelleArrivee=Valódi érkezési dátum +HelpWarehouseStockTransferSource=Ha ez a raktár be van állítva, csak ő maga és gyermekei lesznek elérhetőek forrásraktárként +HelpWarehouseStockTransferDestination=Ha ez a raktár be van állítva, csak ő maga és gyermekei lesznek elérhetőek célraktárként +LeadTimeForWarning=Átfutási idő a riasztás előtt (napokban) +TypeContact_stocktransfer_internal_STFROM=Készlet átadás feladója +TypeContact_stocktransfer_internal_STDEST=A készlet átruházás címzettje +TypeContact_stocktransfer_internal_STRESP=A készletek átviteléért felelős +StockTransferSheet=Készlet átadási lap +StockTransferSheetProforma=Proforma részvény átadási lap +StockTransferDecrementation=Csökkentse a forrásraktárak számát +StockTransferIncrementation=Növelje a célraktárak számát +StockTransferDecrementationCancel=Törölje a forrásraktárak csökkentését +StockTransferIncrementationCancel=Törölje a rendeltetési raktárak növelését +StockStransferDecremented=A forrás raktárak csökkentek +StockStransferDecrementedCancel=A forrás raktárak csökkenése törölve +StockStransferIncremented=Lezárva – A készletek átadva +StockStransferIncrementedShort=Átruházott készletek +StockStransferIncrementedShortCancel=A célraktárak számának növelése törölve +StockTransferNoBatchForProduct=Az %s termék nem használja a kötegelt, törölje a tételt a vonalon, és próbálja újra +StockTransferSetup = Készletátviteli modul konfigurációja +Settings=Beállítások +StockTransferSetupPage = A készletátviteli modul konfigurációs oldala +StockTransferRightRead=Olvassa el a készlettranszfereket +StockTransferRightCreateUpdate=Készlettranszferek létrehozása/frissítése +StockTransferRightDelete=Törölje a készlettranszfereket +BatchNotFound=A tétel/sorozat nem található ehhez a termékhez diff --git a/htdocs/langs/hu_HU/stripe.lang b/htdocs/langs/hu_HU/stripe.lang index b4c5b7d90e4..1444c2bfd58 100644 --- a/htdocs/langs/hu_HU/stripe.lang +++ b/htdocs/langs/hu_HU/stripe.lang @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=Link a Stripe WebHook beállításához az IPN hívá PaymentWillBeRecordedForNextPeriod=A fizetés a következő időszakra kerül rögzítésre. ClickHereToTryAgain=Kattintson ide az újrapróbálkozáshoz... CreationOfPaymentModeMustBeDoneFromStripeInterface=Az erős ügyfél-hitelesítési szabályok miatt a kártyát a Stripe backoffice-ból kell létrehozni. Ide kattintva bekapcsolhatja a Stripe ügyfélrekordot: %s +TERMINAL_LOCATION=A terminálok helye (címe). diff --git a/htdocs/langs/hu_HU/suppliers.lang b/htdocs/langs/hu_HU/suppliers.lang index 42699314bb0..baf02fe0a97 100644 --- a/htdocs/langs/hu_HU/suppliers.lang +++ b/htdocs/langs/hu_HU/suppliers.lang @@ -4,6 +4,7 @@ SuppliersInvoice=Szállítói számla SupplierInvoices=Szállítói számlák ShowSupplierInvoice=Szállítói számla megjelenítése NewSupplier=Új szállító +NewSupplierInvoice = Új szállítói számla History=Történet ListOfSuppliers=Szállítók listája ShowSupplier=Szállító megjelenítése diff --git a/htdocs/langs/hu_HU/ticket.lang b/htdocs/langs/hu_HU/ticket.lang index 2a28eca0db7..431c2e7fafb 100644 --- a/htdocs/langs/hu_HU/ticket.lang +++ b/htdocs/langs/hu_HU/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Jegyek törlése Permission56004=Jegyek kezelése Permission56005=Minden harmadik fél jegyeinek megtekintése (külső felhasználókra nem érvényes, mindig csak arra a harmadik félre korlátozódjon, akitől függnek) +Tickets=Jegyek TicketDictType=Jegy - típusok TicketDictCategory=Jegy - Csoportok TicketDictSeverity=Jegy – Súlyosságok @@ -90,8 +91,8 @@ TicketPublicAccess=A következő URL-címen elérhető egy nyilvános interfész TicketSetupDictionaries=A jegy típusa, súlyossága és az analitikai kódok szótárakból konfigurálhatók TicketParamModule=Modulváltozó beállítása TicketParamMail=E-mail beállítása -TicketEmailNotificationFrom=A jegyekre adott válaszokért küldjön e-mailt -TicketEmailNotificationFromHelp=A Dolibarrtól küldött jegyekre adott válaszok küldő e-mailje +TicketEmailNotificationFrom=E-mail küldése a válaszokról +TicketEmailNotificationFromHelp=Küldő e-mail, amellyel értesítő e-mailt küldhet, ha válasz érkezik a háttérirodán belül. Például noreply@example.com TicketEmailNotificationTo=Értesítés a jegy létrehozásáról erre az e-mail címre TicketEmailNotificationToHelp=Ha van, ez az e-mail cím értesítést kap a jegy létrehozásáról TicketNewEmailBodyLabel=Szöveges üzenet a jegy létrehozása után @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=A jegy lezárásakor a rendszer javasolni fogja, hogy TicketWrongContact=A megadott elérhetőség nem része az aktuális jegykapcsolatoknak. Az e-mailt nem küldték el. TicketChooseProductCategory=Termékkategória a jegytámogatáshoz TicketChooseProductCategoryHelp=Válassza ki a jegytámogatás termékkategóriáját. Ez arra szolgál, hogy egy szerződést automatikusan egy jegyhez kapcsoljanak. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=A jegy most hozzá van rendelve TicketChangeType=Típus módosítása TicketChangeCategory=Analitikai kód módosítása TicketChangeSeverity=Súlyosság módosítása -TicketAddMessage=Üzenet hozzáadása -AddMessage=Üzenet hozzáadása +TicketAddMessage=Add private message MessageSuccessfullyAdded=Jegy hozzáadva TicketMessageSuccessfullyAdded=Az üzenet sikeresen hozzáadva TicketMessagesList=Üzenetlista @@ -204,8 +206,8 @@ TicketSeverity=Súlyosság ShowTicket=Lásd a jegyet RelatedTickets=Kapcsolódó jegyek TicketAddIntervention=Beavatkozás létrehozása -CloseTicket=Bezárás|Jegy megoldása -AbandonTicket=Jegy elhagyása +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Bezárás|Jegy megoldása ConfirmCloseAticket=Jegyzárás megerősítése ConfirmAbandonTicket=Megerősíti, hogy a jegy 'Elhagyott' állapotba zárta @@ -219,18 +221,17 @@ SendMessageByEmail=Üzenet küldése e-mailben TicketNewMessage=Új üzenet ErrorMailRecipientIsEmptyForSendTicketMessage=A címzett üres. Nincs e-mail küldés TicketGoIntoContactTab=Kérjük, lépjen a "Kapcsolatok" fülre a kiválasztásához -TicketMessageMailIntro=Bevezetés +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Ez a szöveg csak az e-mail elejére kerül hozzáadásra, és nem kerül mentésre. -TicketMessageMailIntroLabelAdmin=Bevezető szöveg az összes jegyválaszhoz TicketMessageMailIntroText=Üdvözöljük,
    Új válasz került az Ön által követett jegyhez. Íme az üzenet:
    TicketMessageMailIntroHelpAdmin=Ez a szöveg a válasz elé kerül beszúrásra, amikor a Dolibarr jegyére válaszol -TicketMessageMailSignature=Aláírás -TicketMessageMailSignatureHelp=Ez a szöveg csak az e-mail végére kerül hozzáadásra, és nem kerül mentésre. -TicketMessageMailSignatureText=Az üzenetet küldte: %s a Dolibarron keresztül -TicketMessageMailSignatureLabelAdmin=Válasz-e-mail aláírása -TicketMessageMailSignatureHelpAdmin=Ez a szöveg a válaszüzenet után lesz beszúrva. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Az üzenetet küldte: %s a Dolibarron keresztül +TicketMessageMailFooterHelpAdmin=Ez a szöveg a válaszüzenet után lesz beszúrva. TicketMessageHelp=Csak ez a szöveg kerül mentésre a jegykártya üzenetlistájába. TicketMessageSubstitutionReplacedByGenericValues=A helyettesítési változókat általános értékek váltják fel. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Azóta eltelt idő TicketTimeToRead=Az olvasás előtt eltelt idő TicketTimeElapsedBeforeSince=Előtte / azóta eltelt idő @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Új üzenet került a jegyre %s tárg TicketAssignedToYou=Jegy hozzárendelve TicketAssignedEmailBody=A(z) #%s jegyet %s rendelte hozzá MarkMessageAsPrivate=Üzenet megjelölése privátként +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Ez az üzenet nem jelenik meg külső felhasználók számára TicketEmailOriginIssuer=A jegyek kibocsátója InitialMessage=Kezdő üzenet @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=A következő linkre kattintva megtekint TicketCloseEmailBodyInfosTrackUrlCustomer=A jegy történetét a következő linkre kattintva tekintheti meg TicketEmailPleaseDoNotReplyToThisEmail=Kérjük, ne válaszoljon közvetlenül erre az e-mailre! A hivatkozás segítségével válaszoljon a felületre. TicketPublicInfoCreateTicket=Ez az űrlap lehetővé teszi támogatási jegy rögzítését kezelőrendszerünkben. -TicketPublicPleaseBeAccuratelyDescribe=Kérjük, pontosan írja le a problémát. Adja meg a lehető legtöbb információt, hogy helyesen azonosíthassuk kérelmét. +TicketPublicPleaseBeAccuratelyDescribe=Kérjük, pontosan írja le kérdését. Adja meg a lehető legtöbb információt, hogy helyesen azonosíthassuk kérelmét. TicketPublicMsgViewLogIn=Kérjük, adja meg a jegykövetési azonosítót TicketTrackId=Nyilvános követési azonosító OneOfTicketTrackId=Az egyik követőazonosítód diff --git a/htdocs/langs/hu_HU/users.lang b/htdocs/langs/hu_HU/users.lang index 959749a7053..0ac9fc3a4b2 100644 --- a/htdocs/langs/hu_HU/users.lang +++ b/htdocs/langs/hu_HU/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Eltávolítás a csoportból PasswordChangedAndSentTo=A jelszó megváltoztatva és elküldve: %s. PasswordChangeRequest=Kérés a következőhöz: %s PasswordChangeRequestSent=%s által kért jelszóváltoztatás el lett küldve ide: %s. -IfLoginExistPasswordRequestSent=Ha ez a bejelentkezési név érvényes fiók, akkor a rendszer elküldte a jelszó visszaállítására vonatkozó e-mailt. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Ha ez az e-mail egy érvényes fiók, akkor a rendszer elküldte a jelszó visszaállításához szükséges e-mailt. ConfirmPasswordReset=Jelszó visszaállításának megerősítése MenuUsersAndGroups=Felhasználók és csoportok @@ -68,7 +68,6 @@ CreateDolibarrLogin=Felhasználó létrehozása CreateDolibarrThirdParty=Harmadik fél létrehozása LoginAccountDisableInDolibarr=Fiók kiakapcsolva a Dolibarrban. UsePersonalValue=Személyes érték használata -InternalUser=Belső felahsználó ExportDataset_user_1=Felhasználók és tulajdonságaik DomainUser=Domain felhasználók %s Reactivate=Újra aktiválás @@ -128,3 +127,5 @@ DateLastLogin=Az utolsó bejelentkezés dátuma DatePreviousLogin=Az előző bejelentkezés dátuma IPLastLogin=Utolsó bejelentkezés IP címe IPPreviousLogin=Előző bejelentkezés IP címe +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang index 61b8f8885c7..26cb868d8b6 100644 --- a/htdocs/langs/hu_HU/website.lang +++ b/htdocs/langs/hu_HU/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kód +WebsiteName=A weboldal neve WebsiteSetupDesc=Hozza létre itt a használni kívánt webhelyeket. Ezután lépjen be a Webhelyek menübe a szerkesztésükhöz. DeleteWebsite=Webhely törlése ConfirmDeleteWebsite=Biztosan törölni szeretné ezt a webhelyet? Minden oldala és tartalma is eltávolításra kerül. A feltöltött fájlok (például a medias könyvtárba, az ECM modulba, ...) megmaradnak. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Kiegészítés a HTML-fejléc alján (minden oldalon közös WEBSITE_ROBOT=Robot fájl (robots.txt) WEBSITE_HTACCESS=Webhely .htaccess fájl WEBSITE_MANIFEST_JSON=Webhely manifest.json fájl -WEBSITE_README=README.md fájl WEBSITE_KEYWORDSDesc=Használjon vesszőt az értékek elválasztásához -EnterHereLicenseInformation=Írja be ide a metaadatokat vagy a licencinformációkat a README.md fájl kitöltéséhez. ha a webhelyét sablonként terjeszti, a fájl bekerül a temptate csomagba. +EnterHereReadmeInformation=Ide írja be a webhely leírását. Ha webhelyét sablonként terjeszti, a fájl bekerül a temptate csomagba. +EnterHereLicenseInformation=Ide írja be a weboldal kódjának LICENCÉT. Ha a webhelyét sablonként terjeszti, a fájl bekerül a temptate csomagba. HtmlHeaderPage=HTML fejléc (csak erre az oldalra vonatkozik) PageNameAliasHelp=Az oldal neve vagy álneve.
    Ezt az álnevet egy SEO URL hamisításához is használják, amikor a webhely egy webszerver virtuális gazdagépéről fut (például Apacke, Nginx stb.). Az alias szerkesztéséhez használja a "%s" gombot. EditTheWebSiteForACommonHeader=Megjegyzés: Ha személyre szabott fejlécet szeretne definiálni minden oldalhoz, szerkessze a fejlécet a webhely szintjén az oldal/tároló helyett. @@ -42,6 +43,8 @@ ViewPageInNewTab=Oldal megtekintése új lapon SetAsHomePage=Beállítás kezdőlapként RealURL=Valódi URL ViewWebsiteInProduction=Webhely megtekintése otthoni URL-ek használatával +Virtualhost=Virtuális gazdagép vagy domain név +VirtualhostDesc=A virtuális gazdagép vagy tartomány neve (például: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Használat Apache/NGinx/... segítségével
    Hozzon létre webszerverén (Apache, Nginx, ...) egy dedikált virtuális gazdagépet PHP-vel és egy gyökérkönyvtárral a
    %s ExampleToUseInApacheVirtualHostConfig=Példa az Apache virtuális gazdagép beállításához: YouCanAlsoTestWithPHPS=Használat beágyazott PHP szerverrel
    Fejlesztői környezetben érdemes lehet tesztelni a webhelyet a PHP beágyazott webszerverrel (PHP 5.5 szükséges) a
    php -S futtatásával 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s oldal(ok)/tároló(k) újragenerálva RegenerateWebsiteContent=A webhely gyorsítótár fájljainak újragenerálása AllowedInFrames=Keretekben engedélyezett DefineListOfAltLanguagesInWebsiteProperties=Határozza meg az összes elérhető nyelv listáját webhelytulajdonságokba. -GenerateSitemaps=Webhelytérkép fájl létrehozása +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Ha megerősíti, törli a meglévő webhelytérkép fájlt... ConfirmSitemapsCreation=Webhelytérkép létrehozásának megerősítése SitemapGenerated=A(z) %s webhelytérképfájl létrejött @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=A kedvencnek png-nek kell lennie ErrorFaviconSize=A kedvencnek 16x16, 32x32 vagy 64x64 méretűnek kell lennie FaviconTooltip=Töltsön fel egy képet, amelynek png-nek kell lennie (16x16, 32x32 vagy 64x64) +NextContainer=Következő oldal/tároló +PreviousContainer=Előző oldal/tároló +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/hu_HU/withdrawals.lang b/htdocs/langs/hu_HU/withdrawals.lang index eba96d096d5..e83cf1f6b05 100644 --- a/htdocs/langs/hu_HU/withdrawals.lang +++ b/htdocs/langs/hu_HU/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Átutalásra váró számla AmountToWithdraw=Kivonandó összeg AmountToTransfer=Átutalandó összeg NoInvoiceToWithdraw=Nincs nyitott számla '%s' számára. A kérés benyújtásához lépjen a számlakártyán a „%s” fülre. -NoSupplierInvoiceToWithdraw=Nincs nyitott 'Közvetlen jóváírási kérelmet' tartalmazó szállítói számla. A kérés benyújtásához lépjen a számlakártyán a „%s” fülre. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Felelős felhasználó WithdrawalsSetup=A csoportos beszedési megbízás beállítása CreditTransferSetup=Átutalás beállítása @@ -42,6 +42,7 @@ CreditTransferStatistics=Hitelátutalási statisztikák Rejects=Elutasít LastWithdrawalReceipt=A legutóbbi %s csoportos beszedési megbízás bizonylata MakeWithdrawRequest=Közvetlen beszedési megbízás fizetési kérelem benyújtása +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Átutalási kérelem benyújtása WithdrawRequestsDone=%s csoportos beszedési megbízás fizetési kérelmek rögzítve BankTransferRequestsDone=%s átutalási kérelem rögzítve @@ -100,8 +101,11 @@ CreditDate=Jóváírás be WithdrawalFileNotCapable=Nem sikerült létrehozni a visszavonási nyugta fájlt az Ön országához (%s) (az Ön országa nem támogatott) ShowWithdraw=Beszedési megbízás megjelenítése IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Ha azonban a számlának van legalább egy csoportos beszedési megbízása, amelyet még nem dolgoztak fel, akkor azt nem állítja be kifizetettként, hogy lehetővé tegye a kifizetés előzetes kezelését. -DoStandingOrdersBeforePayments=Ez a lap lehetővé teszi csoportos beszedési megbízás kérését. Ha elkészült, lépjen be a Bank->Befizetés csoportos beszedési megbízással menübe a csoportos beszedési megbízás létrehozásához és kezeléséhez. A csoportos beszedési megbízás lezárásakor a számlák kifizetése automatikusan rögzítésre kerül, a számlák pedig lezárásra kerülnek, ha a befizetendő összeg nulla. -DoCreditTransferBeforePayments=Ezen a lapon átutalási megbízást kérhet. Ha elkészült, lépjen a Bank->Fizetés átutalással menübe az átutalási megbízás létrehozásához és kezeléséhez. Az átutalási megbízás lezárásakor a számlák kifizetése automatikusan rögzítésre kerül, a számlák pedig lezárásra kerülnek, ha a fennmaradó összeg nulla. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Beszedési megbízás fájl CreditTransferFile=Hitelátutalási fájl SetToStatusSent=Állítás "Fájl elküldve" állapotra @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Nem lehet beszedési megbízást létrehozni üres SepaMandate=SEPA csoportos beszedési megbízás SepaMandateShort=SEPA megbízás PleaseReturnMandate=Kérjük, küldje vissza ezt a megbízási űrlapot e-mailben az %s címre vagy postai úton a következő címre: -SEPALegalText=E megbízási űrlap aláírásával felhatalmazza (A) %s-t, hogy utasításokat küldjön bankjának a számlája megterhelésére, és (B) bankja számára, hogy megterhelje számláját a %s utasításai szerint. Jogosultsága részeként jogosult a banktól visszatérítésre a bankjával kötött szerződés feltételei szerint. A fenti megbízással kapcsolatos jogait egy nyilatkozat ismerteti, amelyet bankjától szerezhet be. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Hitelező azonosítója CreditorName=Hitelező neve SEPAFillForm=(B) Kérjük, töltse ki az összes *-gal jelölt mezőt diff --git a/htdocs/langs/hu_HU/workflow.lang b/htdocs/langs/hu_HU/workflow.lang index d97d0f48f09..dc5632dab19 100644 --- a/htdocs/langs/hu_HU/workflow.lang +++ b/htdocs/langs/hu_HU/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=A kapcsolt forrás be descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=A kapcsolt forrásból származó beszerzési rendelés besorolása beérkezettként, amikor egy fogadás érvényesül (és ha az összes fogadás által beérkezett mennyiség megegyezik a frissítendő beszerzési rendelésben szereplő mennyiséggel) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=A kapcsolt forrásból származó beszerzési rendelés besorolása a fogadás lezárásakor (és ha az összes fogadás által kapott mennyiség megegyezik a frissítendő beszerzési rendelésben szereplő mennyiséggel) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=A kapcsolt szállítói rendelés érvényesítésekor a fogadásokat "számlázott" kategóriába sorolja +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Jegy létrehozásakor kapcsolja össze a megfelelő harmadik fél elérhető szerződéseit descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=A szerződések összekapcsolásakor keressen az anyavállalatok szerződései között @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=A jegyhez kapcsolódó összes beavatkoz AutomaticCreation=Automatikus létrehozás AutomaticClassification=Automatikus osztályozás # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=A kapcsolt forrásszállítmány besorolása lezártként, amikor az ügyfél számláját ellenőrizték +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Automatikus zárás AutomaticLinking=Automatikus összekapcsolás diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index a785c12bff2..285fde719c3 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Negara bukan di EEC CountriesInEECExceptMe=Negara di EEC kecuali %s CountriesExceptMe=Semua negara kecuali %s AccountantFiles=Ekspor dokumen sumber -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Untuk mengekspor jurnal Anda, gunakan entri menu %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Lihat berdasarkan akun akuntansi VueBySubAccountAccounting=Lihat menurut sub-akun akuntansi @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Akun akuntansi utama untuk vendor tidak ditent MainAccountForUsersNotDefined=Akun akuntansi utama untuk pengguna tidak ditentukan dalam pengaturan MainAccountForVatPaymentNotDefined=Akun akuntansi utama untuk pembayaran PPN tidak ditentukan dalam pengaturan MainAccountForSubscriptionPaymentNotDefined=Akun akuntansi utama untuk pembayaran berlangganan tidak ditentukan dalam pengaturan +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Bidang akuntansi AccountancyAreaDescIntro=Penggunaan modul akuntansi dilakukan dalam beberapa langkah: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Nonaktifkan pencatatan langsung transaksi di rekening ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Aktifkan konsep ekspor di jurnal ACCOUNTANCY_COMBO_FOR_AUX=Aktifkan daftar kombo untuk akun anak perusahaan (mungkin lambat jika Anda memiliki banyak pihak ketiga, hentikan kemampuan untuk mencari sebagian nilai) ACCOUNTING_DATE_START_BINDING=Tentukan tanggal untuk mulai mengikat & mentransfer akuntansi. Di bawah tanggal ini, transaksi tidak akan dialihkan ke akuntansi. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Pada transfer akuntansi, pilih periode yang ditampilkan secara default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Jurnal Penjualan -ACCOUNTING_PURCHASE_JOURNAL=Jurnal Pembelian -ACCOUNTING_MISCELLANEOUS_JOURNAL=Jurnal lain-lain +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Jurnal Sosial +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Memiliki Jurnal baru +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Jurnal Sosial ACCOUNTING_RESULT_PROFIT=Akun akuntansi hasil (Laba) ACCOUNTING_RESULT_LOSS=Hasil akun akuntansi (Rugi) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Jurnal penutupan -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Akun akuntansi transfer bank transisi +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Rekening transfer bank transisi -ACCOUNTING_ACCOUNT_SUSPENSE=Akun akuntansi tunggu -DONATION_ACCOUNTINGACCOUNT=Akun akuntansi untuk mendaftarkan sumbangan -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Akun akuntansi untuk mendaftar langganan +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Akun akuntansi secara default untuk mendaftarkan deposit pelanggan -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Akun akuntansi secara default untuk produk yang dibeli (digunakan jika tidak didefinisikan dalam lembar produk) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Akun akuntansi secara default untuk produk yang dibeli di EEC (digunakan jika tidak didefinisikan dalam lembar produk) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Akun akuntansi secara default untuk produk yang dibeli dan diimpor dari EEC (digunakan jika tidak didefinisikan dalam lembar produk) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Akun akuntansi secara default untuk produk yang dijual (digunakan jika tidak didefinisikan dalam lembar produk) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Akun akuntansi secara default untuk produk yang dijual di EEC (digunakan jika tidak didefinisikan dalam lembar produk) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Akun akuntansi secara default untuk produk yang dijual dan diekspor dari EEC (digunakan jika tidak didefinisikan dalam lembar produk) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Akun akuntansi secara default untuk layanan yang dibeli (digunakan jika tidak didefinisikan dalam lembar layanan) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Akun akuntansi secara default untuk layanan yang dibeli di EEC (digunakan jika tidak didefinisikan dalam lembar layanan) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Akun akuntansi secara default untuk layanan yang dibeli dan diimpor dari EEC (digunakan jika tidak didefinisikan dalam lembar layanan) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Akun akuntansi secara default untuk layanan yang dijual (digunakan jika tidak didefinisikan dalam lembar layanan) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Akun akuntansi secara default untuk layanan yang dijual di EEC (digunakan jika tidak didefinisikan dalam lembar layanan) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Akun akuntansi secara default untuk layanan yang dijual dan diekspor dari EEC (digunakan jika tidak didefinisikan dalam lembar layanan) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tipe Dokumen Docdate=Tanggal @@ -211,7 +217,7 @@ Codejournal=Jurnal JournalLabel=Label jurnal NumPiece=Jumlah potongan TransactionNumShort=Tidak. transaksi -AccountingCategory=Grup khusus +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Kelompokkan menurut akun buku besar GroupBySubAccountAccounting=Kelompokkan menurut akun subledger AccountingAccountGroupsDesc=Anda dapat mendefinisikan di sini beberapa grup akun akuntansi. Mereka akan digunakan untuk laporan akuntansi yang dipersonalisasi. @@ -265,13 +271,13 @@ Reconcilable=Dapat didamaikan TotalVente=Total turnover before tax TotalMarge=Total margin penjualan -DescVentilCustomer=Konsultasikan di sini daftar garis faktur pelanggan yang terikat (atau tidak) ke akun akuntansi produk -DescVentilMore=Dalam kebanyakan kasus, jika Anda menggunakan produk atau layanan yang telah ditentukan dan Anda menetapkan nomor akun pada kartu produk / layanan, aplikasi akan dapat membuat semua ikatan antara jalur faktur Anda dan akun akuntansi dari bagan akun Anda, hanya di satu klik dengan tombol"%s" . Jika akun tidak ditetapkan pada kartu produk / layanan atau jika Anda masih memiliki beberapa jalur yang tidak terikat ke akun, Anda harus membuat pengikatan manual dari menu " %s ". -DescVentilDoneCustomer=Konsultasikan di sini daftar jalur faktur pelanggan dan akun akuntansi produk mereka -DescVentilTodoCustomer=Ikat garis faktur yang belum terikat dengan akun akuntansi produk -ChangeAccount=Ubah akun akuntansi produk / layanan untuk jalur yang dipilih dengan akun akuntansi berikut: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Konsultasikan di sini daftar garis faktur vendor terikat atau belum terikat ke akun akuntansi produk (hanya catatan yang belum ditransfer dalam akuntansi yang terlihat) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Konsultasikan di sini daftar garis faktur vendor dan akun akuntingnya DescVentilTodoExpenseReport=Bind garis laporan pengeluaran belum terikat dengan akun akuntansi biaya DescVentilExpenseReport=Konsultasikan di sini daftar garis laporan pengeluaran yang terikat (atau tidak) ke akun akuntansi biaya @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Jika Anda mengatur akun akuntansi pada jenis garis l DescVentilDoneExpenseReport=Konsultasikan di sini daftar garis laporan pengeluaran dan akun akuntansi biayanya Closure=Penutupan tahunan -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Setiap modifikasi atau penghapusan tulisan, huruf dan penghapusan akan dilarang. Semua entri untuk latihan harus divalidasi jika tidak, penutupan tidak akan mungkin ValidateHistory=Mengikat Secara Otomatis AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Kesalahan, Anda tidak dapat menghapus akun akuntansi ini karena digunakan +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Menyeimbangkan FicheVentilation=Binding card GeneralLedgerIsWritten=Transaksi ditulis dalam Buku Besar GeneralLedgerSomeRecordWasNotRecorded=Beberapa transaksi tidak dapat dijurnal. Jika tidak ada pesan kesalahan lain, ini mungkin karena mereka sudah dijurnal. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Daftar produk yang tidak terikat ke akun akuntansi apa pun +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Ubah ikatannya Accounted=Disumbang dalam buku besar NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Operasi lain-lain AccountingJournalType2=Penjualan AccountingJournalType3=Pembelian AccountingJournalType4=Bank -AccountingJournalType5=Laporan biaya +AccountingJournalType5=Expense reports AccountingJournalType8=Inventaris AccountingJournalType9=Baru +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Jurnal ini sudah digunakan AccountingAccountForSalesTaxAreDefinedInto=Catatan: Akun akuntansi untuk Pajak penjualan didefinisikan ke dalam menu%s-%s NumberOfAccountancyEntries=Jumlah entri @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Jumlah gerakan ACCOUNTING_DISABLE_BINDING_ON_SALES=Nonaktifkan pengikatan & transfer akuntansi pada penjualan (faktur pelanggan tidak akan diperhitungkan dalam akuntansi) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Nonaktifkan pengikatan & transfer akuntansi pada pembelian (faktur vendor tidak akan diperhitungkan dalam akuntansi) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Nonaktifkan pengikatan & transfer akuntansi pada laporan pengeluaran (laporan pengeluaran tidak akan diperhitungkan dalam akuntansi) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Konfirmasi pembuatan file ekspor akuntansi? ExportDraftJournal=Ekspor draft jurnal @@ -398,7 +407,11 @@ Calculated=Terhitung Formula=Rumus ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Entri akuntansi @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Kode multi mata uang (Idevise) DateExport=Tanggal ekspor WarningReportNotReliable=Peringatan, laporan ini tidak didasarkan pada Buku Besar, jadi tidak mengandung transaksi yang dimodifikasi secara manual di Buku Besar. Jika jurnal Anda sudah mutakhir, tampilan pembukuan lebih akurat. ExpenseReportJournal=Jurnal Laporan Biaya -InventoryJournal=Jurnal Persediaan NAccounts=akun %s diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index 107706e511f..6bd4035bdb1 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Pemeriksaan klien WarningModuleNotActive=Modul %s harus diaktifkan WarningOnlyPermissionOfActivatedModules=Hanya perizinan yang berkenaan dengan modul yang diaktifkan yang ditampilkan disini. Anda bisa mengaktifkan modul lain didalam Home->Pengaturan->Halaman Modul. DolibarrSetup=Install atau perbaharui Dolibarr -InternalUser=Pengguna internal -ExternalUser=Pengguna eksternal InternalUsers=Pengguna internal ExternalUsers=Pengguna eksternal UserInterface=Antarmuka pengguna @@ -109,7 +107,7 @@ NextValueForReplacements=Nilai berikutnya (pengganti) MustBeLowerThanPHPLimit=Catatan: konfigurasi PHP Anda saat ini membatasi ukuran file maksimum untuk diunggah ke %s%s, terlepas dari nilai parameter ini NoMaxSizeByPHPLimit=Catatan: Tidak ada batas diatur dalam konfigurasi PHP Anda MaxSizeForUploadedFiles=Ukuran maksimal untuk file upload (0 untuk melarang pengunggahan ada) -UseCaptchaCode=Gunakan kode grafis (CAPTCHA) pada halaman login +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Path lengkap ke perintah antivirus AntiVirusCommandExample=Contoh untuk ClamAv Daemon (memerlukan clamav-daemon): / usr / bin / clamdscan
    Contoh untuk ClamWin (sangat sangat lambat): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Lebih lanjut tentang parameter baris perintah @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Host SMTP / SMTPS (nilai default di php.ini:%s ) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port SMTP / SMTPS (Tidak didefinisikan ke dalam PHP pada sistem mirip Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Tidak didefinisikan ke dalam PHP pada sistem mirip Unix) MAIN_MAIL_EMAIL_FROM=Email pengirim untuk email otomatis (nilai default di php.ini:%s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Email yang digunakan untuk email pengembalian kesalahan (baris 'Kesalahan-Ke' dalam email terkirim) MAIN_MAIL_AUTOCOPY_TO= Salin (Bcc) semua email yang dikirim ke MAIN_DISABLE_ALL_MAILS=Nonaktifkan semua pengiriman email (untuk tujuan pengujian atau demo) @@ -439,8 +438,10 @@ Unique=Unik Boolean=Boolean (satu kotak centang) ExtrafieldPhone = Telepon ExtrafieldPrice = Harga +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Daftar Pilihan ExtrafieldSelectList = Pilih dari tabel ExtrafieldSeparator=Pemisah (bukan baris) @@ -477,7 +478,7 @@ InstalledInto=Diinstal ke direktori %s BarcodeInitForThirdparties=Init barcode massal untuk pihak ketiga BarcodeInitForProductsOrServices=Kode batang massal init atau reset untuk produk atau layanan CurrentlyNWithoutBarCode=Saat ini, Anda memiliki catatan %s pada %s %s tanpa kode barcode yang ditentukan. -InitEmptyBarCode=Nilai init untuk catatan kosong %s berikutnya +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Hapus semua nilai barcode saat ini ConfirmEraseAllCurrentBarCode=Anda yakin ingin menghapus semua nilai barcode saat ini? AllBarcodeReset=Semua nilai barcode telah dihapus @@ -501,10 +502,11 @@ WarningPHPMail=PERINGATAN: Pengaturan untuk mengirim email dari aplikasi menggun WarningPHPMailA=- Menggunakan server Penyedia Layanan Email meningkatkan kepercayaan email Anda, sehingga meningkatkan pengiriman tanpa ditandai sebagai SPAM WarningPHPMailB=- Beberapa Penyedia Layanan Email (seperti Yahoo) tidak mengizinkan Anda mengirim email dari server lain selain dari server mereka sendiri. Pengaturan Anda saat ini menggunakan server aplikasi untuk mengirim email dan bukan server penyedia email Anda, jadi beberapa penerima (yang kompatibel dengan protokol DMARC terbatas), akan menanyakan penyedia email Anda apakah mereka dapat menerima email Anda dan beberapa penyedia email (seperti Yahoo) mungkin menjawab "tidak" karena server tersebut bukan milik mereka, jadi beberapa Email yang Anda kirim mungkin tidak dapat diterima untuk pengiriman (hati-hati juga dengan kuota pengiriman penyedia email Anda). WarningPHPMailC=- Menggunakan server SMTP milik Penyedia Layanan Email Anda sendiri untuk mengirim email juga menarik sehingga semua email yang dikirim dari aplikasi juga akan disimpan ke direktori "Terkirim" di kotak surat Anda. -WarningPHPMailD=Selain itu, disarankan untuk mengubah metode pengiriman email ke "SMTP". Jika Anda benar-benar ingin mempertahankan metode "PHP" default untuk mengirim email, abaikan peringatan ini, atau hapus dengan menyetel konstanta MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP ke 1 di Beranda - Pengaturan - Lainnya. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Jika penyedia SMTP email Anda perlu membatasi klien email ke beberapa alamat IP (sangat jarang), ini adalah alamat IP dari agen pengguna email (MUA) untuk aplikasi ERP CRM Anda:%s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Klik untuk menampilkan deskripsi DependsOn=Modul ini membutuhkan modul RequiredBy=Modul ini diperlukan oleh modul @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Contoh:
    Untuk formulir untuk membuat pi PageUrlForDefaultValuesList=
    Contoh:
    Untuk halaman yang berisi daftar pihak ketiga, itu adalah%s .
    Untuk URL modul eksternal yang diinstal ke direktori custom, jangan sertakan "custom /" jadi gunakan path sepertimymodule / mypagelist.php dan bukan custom / mymodule / mypagelist.php.
    Jika Anda ingin nilai default hanya jika url memiliki beberapa parameter, Anda dapat menggunakan%s AlsoDefaultValuesAreEffectiveForActionCreate=Perhatikan juga bahwa menimpa nilai default untuk pembuatan formulir hanya berfungsi untuk halaman yang dirancang dengan benar (jadi dengan parameter action = create atau presend ...) EnableDefaultValues=Aktifkan penyesuaian nilai default -EnableOverwriteTranslation=Aktifkan penggunaan terjemahan yang ditimpa +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Terjemahan telah ditemukan untuk kunci dengan kode ini. Untuk mengubah nilai ini, Anda harus mengeditnya dari Home-Setup-translation. WarningSettingSortOrder=Peringatan, pengaturan urutan penyortiran default dapat menyebabkan kesalahan teknis saat membuka halaman daftar jika baris adalah baris yang tidak dikenal. Jika Anda mengalami kesalahan seperti itu, kembali ke halaman ini untuk menghapus urutan penyortiran default dan mengembalikan perilaku default. Field=Baris @@ -645,9 +647,9 @@ Module2400Name=Perihal / Agenda Module2400Desc=Lacak agenda. Catat kejadian otomatis untuk tujuan pelacakan atau catat agenda atau pertemuan manual. Ini adalah modul utama untuk Manajemen Hubungan Pelanggan dan Vendor yang baik. Module2500Name=DMS / ECM Module2500Desc=Sistem Manajemen Dokumen / Manajemen Konten Elektronik. Organisasi otomatis dari dokumen Anda yang dihasilkan atau disimpan. Bagikan saat Anda membutuhkannya. -Module2600Name=API / layanan Web (server SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Mengaktifkan server SOAP Dolibarr yang menyediakan layanan API -Module2610Name=API / layanan Web (server REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Aktifkan server Dolibarr REST yang menyediakan layanan API Module2660Name=Hubungi WebServices (klien SOAP) Module2660Desc=Aktifkan klien layanan web Dolibarr (Dapat digunakan untuk mendorong data / permintaan ke server eksternal. Hanya pesanan Pembelian yang didukung saat ini.) @@ -698,6 +700,7 @@ Module62000Name=Istilah Ekonomi Internasional Module62000Desc=Tambahkan fitur untuk mengelola Incoterms Module63000Name=Sumber daya Module63000Desc=Kelola sumber daya (printer, mobil, kamar, ...) untuk dialokasikan ke agenda +Module94160Name=Penerimaan Permission11=Membaca Nota Pelanggan Permission12=Membuat/Merubah Nota Pelanggan Permission13=Faktur pelanggan tidak valid @@ -714,6 +717,7 @@ Permission27=Menghapus Proposal Komersil Permission28=Ekspor proposal komersial Permission31=Membaca Produk Permission32=Membuat/Merubah produk +Permission33=Read prices products Permission34=Menghapus Produk Permission36=Lihat / kelola produk tersembunyi Permission38=Produk ekspor @@ -739,6 +743,7 @@ Permission79=Buat / ubah langganan Permission81=Membaca Pesanan Pelanggan Permission82=Membuat/Merubah Pesanan Pelanggan Permission84=Validasi Pesanan Pelanggan +Permission85=Generate the documents sales orders Permission86=Mengirim Pesanan Pelanggan Permission87=Menutup Pesanan Pelanggan Permission88=Membatalkan Pesanan Pelanggan @@ -840,9 +845,9 @@ Permission286=Ekspor kontak Permission291=Baca tarif Permission292=Tetapkan izin pada tarif Permission293=Ubah tarif pelanggan -Permission300=Baca barcode -Permission301=Buat / modifikasi barcode -Permission302=Hapus barcode +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Membaca Jasa Permission312=Tetapkan layanan / berlangganan ke kontrak Permission331=Baca bookmark @@ -874,6 +879,7 @@ Permission525=Akses kalkulator pinjaman Permission527=Pinjaman ekspor Permission531=Membaca Jasa Permission532=Membuat/Merubah Jasa +Permission533=Read prices services Permission534=Menghapus Jasa Permission536=Lihat / kelola layanan tersembunyi Permission538=Layanan ekspor @@ -968,13 +974,14 @@ Permission3301=Hasilkan modul baru Permission4001=Read skill/job/position Permission4002=Buat/ubah skill/pekerjaan/posisi Permission4003=Hapus skill/pekerjaan/posisi -Permission4020=Read evaluations -Permission4021=Buat/ubah evaluasi Anda -Permission4022=Validasi evaluasi -Permission4023=Hapus evaluasi -Permission4030=Lihat menu perbandingan +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validasi evaluasi +Permission4025=Hapus evaluasi +Permission4028=Lihat menu perbandingan Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Baca konten situs web Permission10002=Buat / ubah konten situs web (konten html dan javascript) Permission10003=Buat / ubah konten situs web (kode php dinamis). Berbahaya, harus disediakan untuk pengembang terbatas. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Jenis unit SetupSaved=Pengaturan disimpan SetupNotSaved=Pengaturan tidak disimpan +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Kembali ke daftar Modul BackToDictionaryList=Kembali ke daftar Kamus TypeOfRevenueStamp=Jenis cap pajak @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Nilai konstanta konfigurasi ConstantIsOn=Opsi %s aktif NbOfDays=Jumlah hari AtEndOfMonth=diakhir bulan -CurrentNext=Sekarang / selanjutnya +CurrentNext=A given day in month Offset=Mengimbangi AlwaysActive=Selalu Aktif Upgrade=Pemutakhiran @@ -1235,11 +1246,13 @@ BrowserName=Nama peramban BrowserOS=OS peramban ListOfSecurityEvents=Daftar agenda keamanan Dolibarr SecurityEventsPurged=Perihal keamanan dibersihkan +TrackableSecurityEvents=Trackable security events LogEventDesc=Aktifkan pencatatan untuk peristiwa keamanan tertentu. Administrator log melalui menu%s - %s . Peringatan, fitur ini dapat menghasilkan sejumlah besar data dalam database. AreaForAdminOnly=Parameter pengaturan dapat diatur oleh pengguna administrator saja. SystemInfoDesc=Informasi sistem adalah informasi teknis lainnya yang Anda dapatkan dalam mode hanya baca dan hanya dapat dilihat oleh administrator. SystemAreaForAdminOnly=Area ini hanya tersedia untuk pengguna administrator. Izin pengguna Dolibarr tidak dapat mengubah batasan ini. CompanyFundationDesc=Edit informasi perusahaan / organisasi Anda. Klik tombol "%s" di bagian bawah halaman setelah selesai. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Jika Anda memiliki akuntan / pemegang buku eksternal, Anda dapat mengedit di sini informasinya. AccountantFileNumber=Kode akuntan DisplayDesc=Parameter yang mempengaruhi tampilan dan presentasi aplikasi dapat dimodifikasi di sini. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Anda harus menjalankan perintah YourPHPDoesNotHaveSSLSupport=Fungsi SSL tidak tersedia di PHP Anda DownloadMoreSkins=Lebih banyak skin untuk diunduh SimpleNumRefModelDesc=Mengembalikan nomor referensi dalam format %syymm-nnnn di mana yy adalah tahun, mm adalah bulan dan nnnn adalah nomor auto-incrementing berurutan tanpa reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Mengembalikan nomor referensi dalam format %s-nnnn di mana nnnn adalah nomor kenaikan otomatis berurutan tanpa reset ShowProfIdInAddress=Tunjukkan ID profesional dengan alamat ShowVATIntaInAddress=Sembunyikan nomor PPN intra-Komunitas @@ -1376,7 +1391,7 @@ GetBarCode=Dapatkan barcode NumberingModules=Model penomoran DocumentModules=Model dokumen ##### Module password generation -PasswordGenerationStandard=Kembalikan kata sandi yang dibuat sesuai dengan algoritma Dolibarr internal: karakter %s yang berisi angka dan karakter bersama dalam huruf kecil. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Jangan menyarankan kata sandi yang dihasilkan. Kata sandi harus diketik secara manual. PasswordGenerationPerso=Kembalikan kata sandi sesuai dengan konfigurasi yang Anda tentukan secara pribadi. SetupPerso=Menurut konfigurasi Anda @@ -1430,6 +1445,10 @@ SuppliersPayment=Pembayaran vendor SupplierPaymentSetup=Pengaturan pembayaran vendor InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Penyiapan modul proposal komersial ProposalsNumberingModules=Model penomoran proposal komersial @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Tanda air pada draft kontrak (tidak ada jika koson ##### Members ##### MembersSetup=Pengaturan modul anggota MemberMainOptions=Opsi utama +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Kelola Login untuk setiap anggota AdherentMailRequired=Diperlukan email untuk membuat anggota baru MemberSendInformationByMailByDefault=Kotak centang untuk mengirim konfirmasi email kepada anggota (validasi atau berlangganan baru) diaktifkan secara default MemberCreateAnExternalUserForSubscriptionValidated=Buat login pengguna eksternal untuk setiap langganan anggota baru yang divalidasi -VisitorCanChooseItsPaymentMode=Pengunjung dapat memilih dari mode pembayaran yang tersedia +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Aktifkan pengingat otomatismelalui emaildari langganan yang kedaluwarsa. Catatan: Modul%s harus diaktifkan dan diatur dengan benar untuk mengirim pengingat. MembersDocModules=Templat dokumen untuk dokumen yang dihasilkan dari catatan anggota ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Aktifkan editor lanjutan untuk: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=Pembuatan / edisi WYSIWIG baris detail produk untuk semua entitas (proposal, pesanan, faktur, dll ...). Peringatan: Menggunakan opsi ini untuk kasus ini sangat tidak disarankan karena dapat menimbulkan masalah dengan karakter khusus dan pemformatan halaman saat membuat file PDF. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Pembuatan / edisi WYSIWIG untuk eMailing massal (Alat-> eMailing) FCKeditorForUserSignature=WYSIWIG pembuatan / edisi tanda tangan pengguna FCKeditorForMail=Pembuatan / edisi WYSIWIG untuk semua email (kecuali Tools-> eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Penangan menu tempat menampilkan menu baru DetailMenuModule=Nama modul jika entri menu berasal dari modul DetailType=Jenis menu (atas atau kiri) DetailTitre=Label menu atau kode label untuk terjemahan -DetailUrl=URL tempat menu dikirimkan kepada Anda (Tautan URL absolut atau tautan eksternal dengan http: //) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Kondisi untuk menunjukkan atau tidak masuk DetailRight=Kondisi untuk menampilkan menu abu-abu yang tidak sah DetailLangs=Nama file Lang untuk terjemahan kode label @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Penurunan stok dalam POS tidak kompat CashDeskYouDidNotDisableStockDecease=Anda tidak menonaktifkan penurunan stok saat melakukan penjualan dari Point of Sale. Karena itu diperlukan gudang. CashDeskForceDecreaseStockLabel=Penurunan stok untuk produk batch terpaksa. CashDeskForceDecreaseStockDesc=Kurangi duluan oleh makan tertua dan jual kurma. -CashDeskReaderKeyCodeForEnter=Kode kunci untuk "Enter" didefinisikan dalam pembaca barcode (Contoh: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Pengaturan modul bookmark BookmarkDesc=Modul ini memungkinkan Anda untuk mengelola bookmark. Anda juga dapat menambahkan pintasan ke halaman Dolibarr atau situs web eksternal di menu sebelah kiri Anda. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Model penomoran faktur vendor IfSetToYesDontForgetPermission=Jika diatur ke nilai bukan nol, jangan lupa untuk memberikan izin kepada grup atau pengguna yang diizinkan untuk persetujuan kedua ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Pengaturan modul GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Jalur ke file yang berisi Maxmind ip ke terjemahan negara.
    Contoh:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP/GeoIP.dat
    /usr/id/pengaturan/pengirimbaca +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Perhatikan bahwa file data ip ke negara Anda harus berada di dalam direktori yang dapat dibaca oleh PHP Anda (Periksa pengaturan open_basedir PHP Anda dan izin sistem file). YouCanDownloadFreeDatFileTo=Anda dapat mengunduhversi demo gratisdari file negara Maxmind GeoIP di %s. YouCanDownloadAdvancedDatFileTo=Anda juga dapat mengunduh versi lengkap , dengan pembaruan,dari file negara Maxmind GeoIP di %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Wizard untuk membangun file dump basis data BackupZipWizard=Wizard untuk membangun arsip direktori dokumen SomethingMakeInstallFromWebNotPossible=Pemasangan modul eksternal tidak dimungkinkan dari antarmuka web karena alasan berikut: SomethingMakeInstallFromWebNotPossible2=Karena alasan ini, proses untuk meningkatkan yang dijelaskan di sini adalah proses manual yang hanya dapat dilakukan oleh pengguna yang memiliki hak istimewa. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Pemasangan modul eksternal dari aplikasi telah dinonaktifkan oleh administrator Anda. Anda harus memintanya untuk menghapus file%s untuk memungkinkan fitur ini. ConfFileMustContainCustom=Menginstal atau membuat modul eksternal dari aplikasi perlu menyimpan file modul ke direktori%s . Untuk membuat direktori ini diproses oleh Dolibarr, Anda harus menyiapkanconf / conf.php untuk menambahkan 2 baris arahan:
    $ dolibarr_main_url_rol 'custom_url';
    $ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Sorot garis-garis tabel ketika mouse bergerak @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Tekan CTRL + F5 pada keyboard atau kosongkan cache brow NotSupportedByAllThemes=Akan berfungsi dengan tema inti, mungkin tidak didukung oleh tema eksternal BackgroundColor=Warna latar belakang TopMenuBackgroundColor=Warna latar untuk menu Top -TopMenuDisableImages=Sembunyikan gambar di menu Atas +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Warna latar belakang untuk menu Kiri BackgroundTableTitleColor=Warna latar belakang untuk garis judul tabel BackgroundTableTitleTextColor=Warna teks untuk baris judul Tabel @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Order pembelian MailToSendSupplierInvoice=Faktur vendor MailToSendContract=Kontrak MailToSendReception=Penerimaan +MailToExpenseReport=Expense reports MailToThirdparty=Pihak Ketiga MailToMember=Anggota MailToUser=Pengguna @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Margin kanan pada PDF MAIN_PDF_MARGIN_TOP=Margin teratas pada PDF MAIN_PDF_MARGIN_BOTTOM=Margin bawah pada PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Tinggi untuk logo di PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Sembunyikan batas pada bingkai alamat pengirim @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Hapus karakter khusus COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter untuk membersihkan nilai (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter untuk membersihkan nilai (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat tidak diizinkan +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Petugas Perlindungan Data (DPO, Privasi Data, atau kontak GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Bantu teks untuk ditampilkan di tooltip @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Catatan: Opsi untuk menggunakan Pajak Penjualan atau PPN telah di SwapSenderAndRecipientOnPDF=Tukar posisi pengirim dan alamat penerima pada dokumen PDF FeatureSupportedOnTextFieldsOnly=Peringatan, fitur hanya didukung pada bidang teks dan daftar kombo. Juga parameter URL action = create atau action = edit harus disetel ATAU nama halaman harus diakhiri dengan 'new.php' untuk memicu fitur ini. EmailCollector=Kolektor email +EmailCollectors=Email collectors EmailCollectorDescription=Tambahkan pekerjaan terjadwal dan halaman pengaturan untuk memindai secara teratur kotak email (menggunakan protokol IMAP) dan merekam email yang diterima ke dalam aplikasi Anda, di tempat yang tepat dan / atau membuat beberapa catatan secara otomatis (seperti lead). NewEmailCollector=Kolektor Email Baru EMailHost=Host server IMAP email +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Direktori sumber kotak surat MailboxTargetDirectory=Direktori target kotak surat EmailcollectorOperations=Operasi yang harus dilakukan oleh kolektor EmailcollectorOperationsDesc=Operasi dijalankan dari urutan atas ke bawah MaxEmailCollectPerCollect=Jumlah email maksimum yang dikumpulkan per kumpulkan +TestCollectNow=Test collect CollectNow=Kumpulkan sekarang ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Tanggal percobaan koleksi terbaru DateLastcollectResultOk=Tanggal keberhasilan koleksi terbaru LastResult=Hasil terbaru EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Konfirmasi pengumpulan email EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Tidak ada email baru (filter yang cocok) untuk diproses NothingProcessed=Tidak ada yang dilakukan -XEmailsDoneYActionsDone=email %s memenuhi syarat, email %s berhasil diproses (untuk catatan / tindakan %s dilakukan) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Buat lamaran kerja FormatZip=Kode Pos MainMenuCode=Kode entri menu (mainmenu) ECMAutoTree=Tampilkan pohon ECM otomatis -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Jam buka OpeningHoursDesc=Masukkan di sini jam buka reguler perusahaan Anda. ResourceSetup=Modul Konfigurasi Sumber Daya @@ -2167,6 +2200,10 @@ EmailTemplate=Template untuk email EMailsWillHaveMessageID=Email akan memiliki tag 'Referensi' yang cocok dengan sintaks ini PDF_SHOW_PROJECT=Tampilkan proyek di dokumen ShowProjectLabel=Label Proyek +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Jika Anda ingin agar beberapa teks dalam PDF Anda digandakan dalam 2 bahasa berbeda dalam PDF yang dihasilkan sama, Anda harus mengatur di sini bahasa kedua ini sehingga PDF yang dihasilkan akan berisi 2 bahasa berbeda di halaman yang sama, yang dipilih saat membuat PDF dan yang ini ( hanya beberapa templat PDF yang mendukung ini). Biarkan kosong untuk 1 bahasa per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Masukkan di sini kode ikon FontAwesome. Jika Anda tidak tahu apa itu FontAwesome, Anda dapat menggunakan fa-address-book nilai umum. @@ -2195,12 +2232,12 @@ MailToPartnership=Kemitraan AGENDA_EVENT_DEFAULT_STATUS=Status acara default saat membuat acara dari formulir YouShouldDisablePHPFunctions=Anda harus menonaktifkan fungsi PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Kecuali jika Anda perlu menjalankan perintah sistem dalam kode khusus, Anda harus menonaktifkan fungsi PHP -PHPFunctionsRequiredForCLI=Untuk tujuan shell (seperti pencadangan pekerjaan terjadwal atau menjalankan program anitivus), Anda harus menyimpan fungsi PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Tidak ada file atau direktori yang dapat ditulis dari program umum yang ditemukan di direktori root Anda (Bagus) RecommendedValueIs=Direkomendasikan: %s Recommended=Direkomendasikan NotRecommended=Tidak direkomendasikan -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Periksa pembaruan modul eksternal CheckForModuleUpdateHelp=Tindakan ini akan terhubung ke editor modul eksternal untuk memeriksa apakah versi baru tersedia. ModuleUpdateAvailable=Pembaruan tersedia @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Tidak ada pembaruan yang ditemukan untuk modul ekster SwaggerDescriptionFile=File deskripsi API Swagger (untuk digunakan dengan redoc misalnya) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Anda mengaktifkan WS API yang tidak digunakan lagi. Anda harus menggunakan REST API sebagai gantinya. RandomlySelectedIfSeveral=Dipilih secara acak jika beberapa gambar tersedia +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Kata sandi database dikaburkan dalam file conf DatabasePasswordNotObfuscated=Kata sandi basis data TIDAK dikaburkan dalam file conf APIsAreNotEnabled=Modul API tidak diaktifkan @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Pengaturan +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/id_ID/assets.lang b/htdocs/langs/id_ID/assets.lang index 3edb66e636f..d62317e748e 100644 --- a/htdocs/langs/id_ID/assets.lang +++ b/htdocs/langs/id_ID/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,52 +16,171 @@ # # Generic # -Assets = Aset -NewAsset = Aset baru -AccountancyCodeAsset = Kode akuntansi (aset) -AccountancyCodeDepreciationAsset = Kode akuntansi (akun penyusutan aset) -AccountancyCodeDepreciationExpense = Kode akuntansi (akun penyusutan pengeluaran) -NewAssetType=Jenis aset baru -AssetsTypeSetup=Pengaturan jenis aset -AssetTypeModified=Jenis aset diubah -AssetType=Jenis aset +NewAsset=Aset baru +AccountancyCodeAsset=Kode akuntansi (aset) +AccountancyCodeDepreciationAsset=Kode akuntansi (akun penyusutan aset) +AccountancyCodeDepreciationExpense=Kode akuntansi (akun penyusutan pengeluaran) AssetsLines=Aset DeleteType=Hapus -DeleteAnAssetType=Hapus jenis aset -ConfirmDeleteAssetType=Anda yakin ingin menghapus jenis aset ini? -ShowTypeCard=Tampilkan jenis '%s' +DeleteAnAssetType=Hapus model aset +ConfirmDeleteAssetType=Anda yakin ingin menghapus aset model ini? +ShowTypeCard=Tampilkan model '1%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Aset +ModuleAssetsName=Aset # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Deskripsi Aset +ModuleAssetsDesc=Deskripsi Aset # # Admin page # -AssetsSetup = Pengaturan aset -Settings = Pengaturan -AssetsSetupPage = Halaman pengaturan aset -ExtraFieldsAssetsType = Atribut pelengkap (jenis aset) -AssetsType=Jenis aset -AssetsTypeId=Id jenis aset -AssetsTypeLabel=Label jenis aset -AssetsTypes=Jenis aset +AssetSetup=Pengaturan aset +AssetSetupPage=Halaman pengaturan aset +ExtraFieldsAssetModel=Complementary attributes (Asset's model) + +AssetsType=Asset model +AssetsTypeId=Asset model id +AssetsTypeLabel=Asset model label +AssetsTypes=Assets models +ASSET_ACCOUNTANCY_CATEGORY=Grup akuntansi aset tetap # # Menu # -MenuAssets = Aset -MenuNewAsset = Aset baru -MenuTypeAssets = Ketikkan aset -MenuListAssets = Daftar -MenuNewTypeAssets = Baru -MenuListTypeAssets = Daftar +MenuAssets=Aset +MenuNewAsset=Aset baru +MenuAssetModels=Model assets +MenuListAssets=Daftar +MenuNewAssetModel=New asset's model +MenuListAssetModels=Daftar # # Module # -Asset=Aset -NewAssetType=Jenis aset baru -NewAsset=Aset baru ConfirmDeleteAsset=Anda yakin ingin menghapus aset ini? + +# +# Tab +# +AssetDepreciationOptions=Pilihan depresiasi +AssetAccountancyCodes=Akun akuntansi +AssetDepreciation=Depresiasi + +# +# Asset +# +Asset=Aset +Assets=Aset +AssetReversalAmountHT=Nilai pembalikan (tanpa pajak) +AssetAcquisitionValueHT=Nilai akuisisi (tanpa pajak) +AssetRecoveredVAT=Recovered VAT +AssetReversalDate=Tanggal pembalikan +AssetDateAcquisition=Tanggal perolehan +AssetDateStart=Date of start-up +AssetAcquisitionType=Jenis akuisisi +AssetAcquisitionTypeNew=Baru +AssetAcquisitionTypeOccasion=Digunakan +AssetType=Jenis aset +AssetTypeIntangible=Tidak berwujud +AssetTypeTangible=Berwujud +AssetTypeInProgress=Dalam proses +AssetTypeFinancial=Finansial +AssetNotDepreciated=Tidak terdepresiasi +AssetDisposal=Pembuangan +AssetConfirmDisposalAsk=Anda yakin ingin membuang aset %s ? +AssetConfirmReOpenAsk=Anda yakin ingin membuka kembali aset %s ? + +# +# Asset status +# +AssetInProgress=Dalam proses +AssetDisposed=Dibuang +AssetRecorded=Diperhitungkan + +# +# Asset disposal +# +AssetDisposalDate=Tanggal dibuang +AssetDisposalAmount=Disposal value +AssetDisposalType=Type of disposal +AssetDisposalDepreciated=Depreciate the year of transfer +AssetDisposalSubjectToVat=Disposal subject to VAT + +# +# Asset model +# +AssetModel=Asset's model +AssetModels=Asset's models + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Depresiasi ekonomi +AssetDepreciationOptionAcceleratedDepreciation=Accelerated depreciation (tax) +AssetDepreciationOptionDepreciationType=Jenis depresiasi +AssetDepreciationOptionDepreciationTypeLinear=Garis lurus +AssetDepreciationOptionDepreciationTypeDegressive=Menurun +AssetDepreciationOptionDepreciationTypeExceptional=Pengecualian +AssetDepreciationOptionDegressiveRate=Tingkat penurunan +AssetDepreciationOptionAcceleratedDepreciation=Accelerated depreciation (tax) +AssetDepreciationOptionDuration=Durasi +AssetDepreciationOptionDurationType=Jenis durasi +AssetDepreciationOptionDurationTypeAnnual=Tahunan +AssetDepreciationOptionDurationTypeMonthly=Bulanan +AssetDepreciationOptionDurationTypeDaily=Harian +AssetDepreciationOptionRate=Nilai (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Dasar depresiasi (tanpa PPN) +AssetDepreciationOptionAmountBaseDeductibleHT=Dasar pengurangan (tanpa PPN) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Total amount last depreciation (excl. VAT) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Depresiasi ekonomi +AssetAccountancyCodeAsset=Aset +AssetAccountancyCodeDepreciationAsset=Depresiasi +AssetAccountancyCodeDepreciationExpense=Biaya depresiasi +AssetAccountancyCodeValueAssetSold=Nilai aset dibuang +AssetAccountancyCodeReceivableOnAssignment=Receivable on disposal +AssetAccountancyCodeProceedsFromSales=Proceeds from disposal +AssetAccountancyCodeVatCollected=PPN dipungut +AssetAccountancyCodeVatDeductible=Recovered VAT on assets +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Accelerated depreciation (tax) +AssetAccountancyCodeAcceleratedDepreciation=Akun +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Biaya depresiasi +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossession/Provision + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Depreciation basis (excl. VAT) +AssetDepreciationBeginDate=Mulai depresiasi pada +AssetDepreciationDuration=Durasi +AssetDepreciationRate=Nilai (1%%) +AssetDepreciationDate=Tanggal depresiasi +AssetDepreciationHT=Depresiasi (tanpa PPN) +AssetCumulativeDepreciationHT=Cumulative depreciation (excl. VAT) +AssetResidualHT=Residual value (excl. VAT) +AssetDispatchedInBookkeeping=Depreciation recorded +AssetFutureDepreciationLine=Future depreciation +AssetDepreciationReversal=Reversal + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Id of the asset or the model sound has not been provided +AssetErrorFetchAccountancyCodesForMode=Error when retrieving the accounting accounts for the '%s' depreciation mode +AssetErrorDeleteAccountancyCodesForMode=Error when deleting accounting accounts from the '%s' depreciation mode +AssetErrorInsertAccountancyCodesForMode=Error when inserting the accounting accounts of the depreciation mode '%s' +AssetErrorFetchDepreciationOptionsForMode=Error when retrieving options for the '%s' depreciation mode +AssetErrorDeleteDepreciationOptionsForMode=Error when deleting the '%s' depreciation mode options +AssetErrorInsertDepreciationOptionsForMode=Error when inserting the '%s' depreciation mode options +AssetErrorFetchDepreciationLines=Error when retrieving recorded depreciation lines +AssetErrorClearDepreciationLines=Error when purging recorded depreciation lines (reversal and future) +AssetErrorAddDepreciationLine=Error when adding a depreciation line +AssetErrorCalculationDepreciationLines=Error when calculating the depreciation lines (recovery and future) +AssetErrorReversalDateNotProvidedForMode=The reversal date is not provided for the '%s' depreciation method +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=The reversal date must be greater than or equal to the beginning of the current fiscal year for the '%s' depreciation method +AssetErrorReversalAmountNotProvidedForMode=The reversal amount is not provided for the depreciation mode '%s'. +AssetErrorFetchCumulativeDepreciation=Error when retrieving the accumulated depreciation amount from the depreciation line +AssetErrorSetLastCumulativeDepreciation=Error when recording the last accumulated depreciation amount diff --git a/htdocs/langs/id_ID/categories.lang b/htdocs/langs/id_ID/categories.lang index 4ed189d352f..8dcc0f0bfdf 100644 --- a/htdocs/langs/id_ID/categories.lang +++ b/htdocs/langs/id_ID/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Anggota ini tidak ada dalam label/kategori apa pun ContactHasNoCategory=Kontak ini tidak ada dalam label/kategori apa pun ProjectHasNoCategory=Proyek ini tidak ada dalam label/kategori apa pun ClassifyInCategory=Tambahkan ke label/kategori +RemoveCategory=Remove category NotCategorized=Tanpa label/kategori CategoryExistsAtSameLevel=Kategori ini sudah ada dengan referensi ini ContentsVisibleByAllShort=Konten terlihat oleh semua @@ -67,6 +68,7 @@ StockCategoriesShort=Label/kategori gudang ThisCategoryHasNoItems=Kategori ini tidak mengandung barang apa pun. CategId=Label/id kategori ParentCategory=Tag/kategori induk +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label tag/kategori induk CatSupList=Daftar tag / kategori vendor CatCusList=Daftar tag / kategori pelanggan / prospek @@ -86,15 +88,18 @@ DeleteFromCat=Hapus dari label/kategori ExtraFieldsCategories=Atribut pelengkap CategoriesSetup=Pengaturan label/kategori CategorieRecursiv=Tautkan dengan label/kategori induk secara otomatis -CategorieRecursivHelp=Jika opsi aktif, ketika Anda menambahkan produk ke dalam subkategori, produk juga akan ditambahkan ke dalam kategori induk. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Tambahkan produk/layanan berikut AddCustomerIntoCategory=Tetapkan kategori untuk pelanggan AddSupplierIntoCategory=Tetapkan kategori ke pemasok +AssignCategoryTo=Assign category to ShowCategory=Tampilkan label/kategori ByDefaultInList=Secara default dalam daftar ChooseCategory=Pilih Kategori StocksCategoriesArea=Kategori Gudang +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Kategori Acara WebsitePagesCategoriesArea=Kategori Penampung Halaman KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Gunakan operator 'OR' untuk kategori +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/id_ID/commercial.lang b/htdocs/langs/id_ID/commercial.lang index d8603381dd9..3222ac45030 100644 --- a/htdocs/langs/id_ID/commercial.lang +++ b/htdocs/langs/id_ID/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Status prospek DraftPropals=Menyusun proposal komersial NoLimit=Tidak ada batas ToOfferALinkForOnlineSignature=Tautan untuk tanda tangan online -WelcomeOnOnlineSignaturePage=Selamat datang di halaman untuk menerima proposal komersial dari %s -ThisScreenAllowsYouToSignDocFrom=Layar ini memungkinkan Anda untuk menerima dan menandatangani, atau menolak, penawaran / proposal komersial -ThisIsInformationOnDocumentToSign=Ini adalah informasi pada dokumen untuk diterima atau ditolak +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Tanda tangan penawaran / proposal komersial %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Fitur untuk penandatanganan online dinonaktifkan atau dokumen dibuat sebelum fitur diaktifkan diff --git a/htdocs/langs/id_ID/companies.lang b/htdocs/langs/id_ID/companies.lang index 528d734d872..669da132c78 100644 --- a/htdocs/langs/id_ID/companies.lang +++ b/htdocs/langs/id_ID/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Sifat pihak ketiga NatureOfContact=Sifat kontak Address=Alamat State=Negara bagian/Provinsi +StateId=State ID StateCode=Kode Negara Bagian/Provinsi StateShort=Negara Region=Wilayah Region-State=Wilayah - Negara Bagian Country=Negara CountryCode=Kode negara -CountryId=ID negara +CountryId=Country ID Phone=Telepon PhoneShort=Telepon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Id Prof 1 (R.U.T.) @@ -443,7 +444,7 @@ AddAddress=Tambahkan alamat SupplierCategory=Kategori vendor JuridicalStatus200=Independen DeleteFile=Menghapus berkas -ConfirmDeleteFile=Anda yakin ingin menghapus file ini? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Ditugaskan ke perwakilan penjualan Organization=Organisasi FiscalYearInformation=Tahun fiskal diff --git a/htdocs/langs/id_ID/compta.lang b/htdocs/langs/id_ID/compta.lang index 3b33003d6b9..3a9796f75a7 100644 --- a/htdocs/langs/id_ID/compta.lang +++ b/htdocs/langs/id_ID/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Saldo (sebelum) Balance=Keseimbangan Debit=Debet Credit=Kredit +AccountingDebit=Debet +AccountingCredit=Kredit Piece=Dokumen Akuntansi AmountHTVATRealReceived=Net dikumpulkan AmountHTVATRealPaid=Dibayar bersih @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Laporan Turnover yang dikump TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Laporan Turnover yang dikumpulkan per tarif pajak penjualan tidak tersedia. Laporan ini hanya tersedia untuk faktur omset. CalculationMode=Mode perhitungan AccountancyJournal=Jurnal kode akuntansi -ACCOUNTING_VAT_SOLD_ACCOUNT=Akun akuntansi secara default untuk PPN pada penjualan (digunakan jika tidak ditentukan pada pengaturan kamus PPN) -ACCOUNTING_VAT_BUY_ACCOUNT=Akun akuntansi secara default untuk PPN pada pembelian (digunakan jika tidak ditentukan pada pengaturan kamus PPN) -ACCOUNTING_VAT_PAY_ACCOUNT=Akun akuntansi secara default untuk membayar PPN -ACCOUNTING_ACCOUNT_CUSTOMER=Akun akuntansi digunakan untuk pihak ketiga pelanggan +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Akun akuntansi khusus yang ditentukan pada kartu pihak ketiga akan digunakan hanya untuk akuntansi Subledger. Yang ini akan digunakan untuk Buku Besar dan sebagai nilai default dari akuntansi Subledger jika akun akuntansi pelanggan khusus pada pihak ketiga tidak didefinisikan. -ACCOUNTING_ACCOUNT_SUPPLIER=Akun akuntansi digunakan untuk pihak ketiga vendor +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Akun akuntansi khusus yang ditentukan pada kartu pihak ketiga akan digunakan hanya untuk akuntansi Subledger. Yang ini akan digunakan untuk Buku Besar Umum dan sebagai nilai default akuntansi Subledger jika akun akuntansi vendor khusus pada pihak ketiga tidak didefinisikan. ConfirmCloneTax=Konfirmasikan klon pajak sosial / fiskal ConfirmCloneVAT=Konfirmasi kloning deklarasi PPN @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/id_ID/contracts.lang b/htdocs/langs/id_ID/contracts.lang index 05e61cc7e5e..be038487e96 100644 --- a/htdocs/langs/id_ID/contracts.lang +++ b/htdocs/langs/id_ID/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Kontrak / Langganan ContractsAndLine=Kontrak dan garis kontrak Contract=Kontrak ContractLine=Garis kontrak +ContractLines=Contract lines Closing=Penutupan NoContracts=Tidak ada kontrak MenuServices=Jasa @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Anda yakin ingin menghapus garis kontrak ini? MoveToAnotherContract=Pindahkan layanan ke dalam kontrak lain. ConfirmMoveToAnotherContract=Saya memilih target kontrak baru dan mengonfirmasi bahwa saya ingin memindahkan layanan ini ke dalam kontrak ini. ConfirmMoveToAnotherContractQuestion=Pilih di kontrak mana yang ada (dengan pihak ketiga yang sama), Anda ingin pindah ke layanan ini? -PaymentRenewContractId=Perpanjang garis kontrak (nomor %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Tanggal habis tempo NoExpiredServices=Tidak ada layanan aktif kedaluwarsa ListOfServicesToExpireWithDuration=Daftar Layanan yang akan kedaluwarsa dalam %s hari @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Menandatangani kontak pelanggan kontra HideClosedServiceByDefault=Sembunyikan layanan tertutup secara default ShowClosedServices=Tampilkan Layanan Tertutup HideClosedServices=Sembunyikan Layanan Tertutup +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/id_ID/cron.lang b/htdocs/langs/id_ID/cron.lang index e71d339424b..5f3623ff6b5 100644 --- a/htdocs/langs/id_ID/cron.lang +++ b/htdocs/langs/id_ID/cron.lang @@ -26,7 +26,7 @@ CronCommand=Perintah CronList=Pekerjaan terjadwal CronDelete=Hapus pekerjaan terjadwal CronConfirmDelete=Anda yakin ingin menghapus pekerjaan terjadwal ini? -CronExecute=Luncurkan pekerjaan terjadwal +CronExecute=Launch now CronConfirmExecute=Apakah Anda yakin ingin menjalankan pekerjaan terjadwal ini sekarang? CronInfo=Modul pekerjaan terjadwal memungkinkan untuk menjadwalkan pekerjaan untuk melaksanakannya secara otomatis. Pekerjaan juga dapat dimulai secara manual. CronTask=Pekerjaan @@ -58,7 +58,7 @@ CronNote=Komentar CronFieldMandatory=Bidang %s wajib diisi CronErrEndDateStartDt=Tanggal akhir tidak boleh sebelum tanggal mulai StatusAtInstall=Status pada pemasangan modul -CronStatusActiveBtn=Susunan acara +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Nonaktifkan CronTaskInactive=Pekerjaan ini dinonaktifkan (tidak dijadwalkan) CronId=Indo @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Buka menu " Beranda - Alat Admin - JobDisabled=Pekerjaan dinonaktifkan MakeLocalDatabaseDumpShort=Pencadangan basis data lokal MakeLocalDatabaseDump=Buat dump basis data lokal. Parameternya adalah: kompresi ('gz' atau 'bz' atau 'tidak ada'), jenis cadangan ('mysql', 'pgsql', 'auto'), 1, 'otomatis' atau nama file yang akan dibuat, jumlah file cadangan yang akan disimpan +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Perhatian, untuk tujuan kinerja, apa pun tanggal berikutnya pelaksanaan pekerjaan yang diaktifkan, pekerjaan Anda mungkin tertunda hingga maksimum %s jam, sebelum dijalankan. DATAPOLICYJob=Pembersih data dan penganonim JobXMustBeEnabled=Pekerjaan %s harus diaktifkan +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Pekerjaan terjadwal yang terakhir dieksekusi NextScheduledJobExecute=Pekerjaan terjadwal berikutnya untuk dieksekusi NumberScheduledJobError=Jumlah pekerjaan terjadwal yang ada kesalahan +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/id_ID/datapolicy.lang b/htdocs/langs/id_ID/datapolicy.lang new file mode 100644 index 00000000000..f4c15bab1be --- /dev/null +++ b/htdocs/langs/id_ID/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Suplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Suplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/id_ID/ecm.lang b/htdocs/langs/id_ID/ecm.lang index 96138c81ff7..48c7314fdc2 100644 --- a/htdocs/langs/id_ID/ecm.lang +++ b/htdocs/langs/id_ID/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Direktori manual ECMSectionAuto=Direktori otomatis ECMSectionsManual=Pohon manual ECMSectionsAuto=Pohon otomatis +ECMSectionsMedias=Medias tree ECMSections=Direktori ECMRoot=Root ECM ECMNewSection=Direktori baru @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Jumlah file dalam sub-direktori ECMCreationUser=Pencipta ECMArea=Area DMS / ECM ECMAreaDesc=Area DMS / ECM (Sistem Manajemen Dokumen / Manajemen Konten Elektronik) memungkinkan Anda untuk menyimpan, berbagi, dan mencari dengan cepat semua jenis dokumen di Dolibarr. -ECMAreaDesc2=* Direktori otomatis diisi secara otomatis saat menambahkan dokumen dari kartu suatu elemen.
    * Direktori manual dapat digunakan untuk menyimpan dokumen yang tidak ditautkan ke elemen tertentu. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Direktori%stelah dihapus. ECMSectionWasCreated=Direktori%stelah dibuat. ECMSearchByKeywords=Cari berdasarkan kata kunci diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang index bbe8da704b3..900cd9ef031 100644 --- a/htdocs/langs/id_ID/errors.lang +++ b/htdocs/langs/id_ID/errors.lang @@ -92,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript tidak boleh dinonaktifkan agar fitur ini ErrorPasswordsMustMatch=Kedua kata sandi yang diketik harus cocok satu sama lain ErrorContactEMail=Terjadi kesalahan teknis. Silakan, hubungi administrator untuk mengikuti email%sdan berikan kode kesalahan%sdi pesan Anda, atau tambahkan halaman ini pada halaman pesan ini, atau tambahkan salinan layar ini pada halaman Anda, atau tambahkan salinan layar ini ke halaman pesan Anda, atau tambahkan salinan layar ini ke halaman pesan Anda, atau tambahkan salinan layar ini ke halaman pesan Anda, atau tambahkan salinan dari layar ini pada halaman pesan Anda, atau tambahkan salinan halaman ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman pesan ini, atau tambahkan salinan dari layar ini pada halaman pesan ini, atau tambahkan salinan dari layar ini pada halaman pesan ini, atau tambahkan salinan dari halaman ini pada halaman ini, atau tambahkan sebuah salinan dari halaman ini pada halaman pesan Anda. ErrorWrongValueForField=Baris %s: '%s' tidak cocok dengan aturan regex %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Bidang%s : ' %s ' bukan nilai yang ditemukan di lapangan%sdari%s ErrorFieldRefNotIn=Baris %s: '%s' bukan sebuah %s ref yang telah ada ErrorsOnXLines=kesalahan %s ditemukan @@ -270,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=Anda harus terlebih dahulu mengatur bag ErrorFailedToFindEmailTemplate=Gagal menemukan template dengan nama kode %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Durasi tidak ditentukan pada layanan. Tidak ada cara untuk menghitung harga per jam. ErrorActionCommPropertyUserowneridNotDefined=Pemilik pengguna diperlukan -ErrorActionCommBadType=Jenis peristiwa yang dipilih (id: %n, kode: %s) tidak ada di kamus Jenis Peristiwa +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Pemeriksaan versi gagal ErrorWrongFileName=Nama file tidak boleh memiliki __SOMETHING__ di dalamnya ErrorNotInDictionaryPaymentConditions=Tidak ada dalam Kamus Istilah Pembayaran, harap ubah. @@ -285,13 +286,16 @@ ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by actual object status +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Parameter PHP Anda upload_max_filesize (%s) lebih tinggi dari parameter PHP post_max_size (%s). Ini bukan pengaturan yang konsisten. WarningPasswordSetWithNoAccount=Kata sandi ditetapkan untuk anggota ini. Namun, tidak ada akun pengguna yang dibuat. Jadi kata sandi ini disimpan tetapi tidak dapat digunakan untuk masuk ke Dolibarr. Ini dapat digunakan oleh modul / antarmuka eksternal tetapi jika Anda tidak perlu mendefinisikan login atau kata sandi untuk anggota, Anda dapat menonaktifkan opsi "Kelola login untuk setiap anggota" dari pengaturan modul Anggota. Jika Anda perlu mengelola login tetapi tidak memerlukan kata sandi, Anda dapat mengosongkan isian ini untuk menghindari peringatan ini. Catatan: Email juga dapat digunakan sebagai login jika anggota tersebut tertaut ke pengguna. -WarningMandatorySetupNotComplete=Klik di sini untuk mengatur parameter wajib +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Klik di sini untuk mengaktifkan modul dan aplikasi Anda WarningSafeModeOnCheckExecDir=Peringatan, opsi PHPsafe_modeaktif sehingga perintah harus disimpan di dalam direktori yang dideklarasikan dengan parameter phpsafe_mode_exec_dir . WarningBookmarkAlreadyExists=Bookmark dengan judul ini atau target (URL) ini sudah ada. @@ -321,12 +325,8 @@ WarningCreateSubAccounts=Peringatan, Anda tidak dapat membuat sub-akun secara la WarningAvailableOnlyForHTTPSServers=Hanya tersedia jika menggunakan koneksi aman HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Modul %s belum diaktifkan. Jadi Anda mungkin melewatkan banyak acara di sini. WarningPaypalPaymentNotCompatibleWithStrict=Nilai 'Strict' membuat fitur pembayaran online tidak berfungsi dengan baik. Gunakan 'Lax' sebagai gantinya. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME -<<<<<<< KEPALA -======= -<<<<<<< KEPALA -<<<<<<< KEPALA ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Nilai tidak valid RequireAtLeastXString = Memerlukan setidaknya %s karakter @@ -347,12 +347,3 @@ BadSetupOfField = Salah pengaturan bidang yang buruk BadSetupOfFieldClassNotFoundForValidation = Salah pengaturan bidang yang buruk: Kelas tidak ditemukan untuk validasi BadSetupOfFieldFileNotFound = Salah pengaturan bidang yang buruk: File tidak ditemukan untuk dimasukkan BadSetupOfFieldFetchNotCallable = Salah pengaturan bidang yang buruk: Ambil tidak dapat dipanggil di kelas -<<<<<<< KEPALA -======= -======= -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/id_ID/eventorganization.lang b/htdocs/langs/id_ID/eventorganization.lang index fcb52f70206..efc6a8d4cba 100644 --- a/htdocs/langs/id_ID/eventorganization.lang +++ b/htdocs/langs/id_ID/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Organisasi acara Settings=Pengaturan EventOrganizationSetupPage = Halaman penyiapan Organisasi Acara EVENTORGANIZATION_TASK_LABEL = Label tugas untuk dibuat secara otomatis saat proyek divalidasi -EVENTORGANIZATION_TASK_LABELTooltip = Saat Anda memvalidasi acara yang terorganisir, beberapa tugas dapat dibuat secara otomatis dalam proyek

    Misalnya:
    Kirim Panggilan untuk Konferensi
    Kirim Panggilan untuk Stan
    Terima panggilan untuk konferensi
    Terima panggilan untuk Stan
    Buka langangan ke acara untuk peserta
    Kirim ingatkan acara ke pembicara
    Kirim pengingat acara ke hoster Stan
    Kirim pengingat acara ke peserta +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategori untuk ditambahkan ke pihak ketiga secara otomatis dibuat ketika seseorang menyarankan konferensi EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategori untuk ditambahkan ke pihak ketiga secara otomatis dibuat saat mereka menyarankan stan EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Template email untuk dikirim setelah menerima saran konferensi. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Konferensi Atau Stan +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Mengelola organisasi acara ConferenceOrBooth = Konferensi Atau Stan ConferenceOrBoothTab = Konferensi Atau Stan AmountPaid = Jumlah yang dibayarkan DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Peserta Konferensi Atau Stan +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = Daftar konferensi yang disarankan -ListOfSuggestedBooths = Daftar stan yang disarankan -ListOfConferencesOrBooths=Daftar konferensi atau stan proyek acara +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Sarankan konferensi baru SuggestBooth = Sarankan stan ViewAndVote = Lihat dan pilih acara yang disarankan PublicAttendeeSubscriptionGlobalPage = Tautan publik untuk pendaftaran acara PublicAttendeeSubscriptionPage = Tautan publik untuk pendaftaran ke acara ini saja MissingOrBadSecureKey = Kunci keamanan tidak valid atau hilang -EvntOrgWelcomeMessage = Formulir ini memungkinkan Anda untuk mendaftar sebagai peserta baru ke acara tersebut : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Konferensi ini dimulai pada %s dan berakhir pada %s. ConferenceAttendeeFee = Biaya peserta konferensi untuk acara: '%s' terjadi dari %s hingga %s. BoothLocationFee = Lokasi stan untuk acara : '%s' terjadi dari %s hingga %s @@ -129,7 +133,7 @@ LabelOfconference=Label konferensi ConferenceIsNotConfirmed=Pendaftaran tidak tersedia, konferensi belum dikonfirmasi DateMustBeBeforeThan=%s harus sebelum %s DateMustBeAfterThan=%s harus setelah %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registrasi OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -153,7 +158,7 @@ VoteOk = Suara Anda telah diterima. AlreadyVoted = Anda telah memilih acara ini. VoteError = Terjadi kesalahan selama pemungutan suara, harap coba lagi. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Konfirmasi langganan Anda ke suatu acara Attendee = Peserta PaymentConferenceAttendee = Pembayaran peserta konferensi @@ -161,7 +166,9 @@ PaymentBoothLocation = Pembayaran lokasi stan DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/id_ID/externalsite.lang b/htdocs/langs/id_ID/externalsite.lang deleted file mode 100644 index d634bdb6786..00000000000 --- a/htdocs/langs/id_ID/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Atur tautan ke situs web eksternal -ExternalSiteURL=URL Situs Eksternal dari konten iframe HTML -ExternalSiteModuleNotComplete=Modul ExternalSite tidak dikonfigurasi dengan benar. -ExampleMyMenuEntry=Entri menu saya diff --git a/htdocs/langs/id_ID/ftp.lang b/htdocs/langs/id_ID/ftp.lang deleted file mode 100644 index 41f331bbf14..00000000000 --- a/htdocs/langs/id_ID/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Pengaturan modul Klien FTP atau SFTP -NewFTPClient=Pengaturan koneksi FTP / FTPS baru -FTPArea=Area FTP / FTPS -FTPAreaDesc=Layar ini menunjukkan tampilan server FTP dan SFTP. -SetupOfFTPClientModuleNotComplete=Penyiapan modul klien FTP atau SFTP tampaknya tidak lengkap -FTPFeatureNotSupportedByYourPHP=PHP Anda tidak mendukung fungsi FTP atau SFTP -FailedToConnectToFTPServer=Gagal terhubung ke server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Gagal masuk ke server dengan login / kata sandi yang ditentukan -FTPFailedToRemoveFile=Gagal menghapus file%s . -FTPFailedToRemoveDir=Gagal menghapus direktori%s : periksa izin dan direktori tersebut kosong. -FTPPassiveMode=Mode pasif -ChooseAFTPEntryIntoMenu=Pilih situs FTP/SFTP dari menu... -FailedToGetFile=Gagal mendapatkan file %s diff --git a/htdocs/langs/id_ID/holiday.lang b/htdocs/langs/id_ID/holiday.lang index f03f385e2b8..32ac4b47c40 100644 --- a/htdocs/langs/id_ID/holiday.lang +++ b/htdocs/langs/id_ID/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Keluar +Holidays=Leaves +Holiday=Keluar CPTitreMenu=Keluar MenuReportMonth=Pernyataan bulanan MenuAddCP=Permintaan cuti baru +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Anda harus mengaktifkan modul Leave untuk melihat halaman ini. AddCP=Buat sebuah permintaan cuti DateDebCP=Tanggal mulai @@ -56,6 +58,7 @@ ConfirmDeleteCP=Konfirmasikan penghapusan permintaan cuti ini? ErrorCantDeleteCP=Kesalahan Anda tidak memiliki hak untuk menghapus permintaan cuti ini. CantCreateCP=Anda tidak memiliki hak untuk mengajukan permintaan cuti. InvalidValidatorCP=Anda harus memilih pemberi persetujuan untuk permintaan cuti Anda. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Anda harus memilih tanggal mulai. NoDateFin=Anda harus memilih tanggal akhir. ErrorDureeCP=Permintaan cuti Anda tidak mengandung hari kerja. @@ -79,6 +82,8 @@ MotifCP=Alasan UserCP=Pengguna ErrorAddEventToUserCP=Terjadi kesalahan saat menambahkan cuti luar biasa. AddEventToUserOkCP=Penambahan cuti luar biasa telah selesai. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Lihat perubahan log LogCP=Log dari semua pembaruan yang dibuat untuk "Saldo Cuti" ActionByCP=diperbaharui oleh @@ -86,6 +91,13 @@ UserUpdateCP=Diperbarui untuk PrevSoldeCP=Saldo sebelumnya NewSoldeCP=Keseimbangan baru alreadyCPexist=Permintaan cuti telah dilakukan pada periode ini. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grup +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Hari awal permintaan cuti LastDayOfHoliday=Permintaan cuti hari terakhir BoxTitleLastLeaveRequests=Permintaan cuti yang dimodifikasi %s terbaru @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s biasanya bukan hari kerja BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/id_ID/hrm.lang b/htdocs/langs/id_ID/hrm.lang index 9e00d361ec6..59dea3f0e29 100644 --- a/htdocs/langs/id_ID/hrm.lang +++ b/htdocs/langs/id_ID/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Pembentukan terbuka CloseEtablishment=Pembentukan tertutup # Dictionary DictionaryPublicHolidays=Cuti - Hari libur nasional -DictionaryDepartment=HRM - Daftar Departement +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Posisi pekerjaan # Module Employees=karyawan @@ -20,14 +20,15 @@ Employee=karyawan NewEmployee=Karyawan Baru ListOfEmployees=Daftar Karyawan HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs -NewSkill=New Skill +JobPosition=Job +JobsPosition=Jobs +NewSkill=Skill baru SkillType=Skill type Skilldets=List of ranks for this skill Skilldet=Skill level @@ -39,17 +40,16 @@ skill=Skill Skills=Skills SkillCard=Skill card EmployeeSkillsUpdated=Employee skills have been updated (see "Skills" tab of employee card) -Eval=Evaluation -Evals=Evaluations -NewEval=New evaluation -ValidateEvaluation=Validate evaluation +Eval=Evaluasi +Evals=Evaluasi +NewEval=Evaluasi baru +ValidateEvaluation=Validasi evaluasi ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with reference %s? EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Posisi -Positions=Positions -PositionCard=Position card +EmployeePosition=Jabatan karyawan +EmployeePositions=Jabatan karyawan EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank -HighestRank=Highest rank -SkillComparison=Skill comparison +HighestRank=Peringkat tertinggi +SkillComparison=Perbandingan skill +ActionsOnJob=Events on this job +VacantPosition=lowongan pekerjaan +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/id_ID/install.lang b/htdocs/langs/id_ID/install.lang index 0b60aa47c40..8aac1bb7f95 100644 --- a/htdocs/langs/id_ID/install.lang +++ b/htdocs/langs/id_ID/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=File konfigurasi%stidak dapat ditulis. Periksa izin ConfFileIsWritable=File konfigurasi%sdapat ditulis. ConfFileMustBeAFileNotADir=File konfigurasi %s harus berupa berkas, bukan direktori. ConfFileReload=Memuat ulang parameter dari file konfigurasi. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP ini mendukung variabel POST dan GET PHPSupportPOSTGETKo=Mungkin pengaturan PHP Anda tidak mendukung variabel POST dan / atau GET. Periksa parametervariable_orderdi php.ini. PHPSupportSessions=PHP ini mendukung sesi. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Anda mungkin telah mengetik nilai yang salah untuk p ErrorFailedToCreateDatabase=Gagal membuat basis data '%s'. ErrorFailedToConnectToDatabase=Gagal untuk terhubung pada basis data '%s' ErrorDatabaseVersionTooLow=Versi basis data (%s) terlalu lama. Dibutuhkan versi %s atau lebih -ErrorPHPVersionTooLow=Versi PHP terlalu lama. Dibutuhkan versi %s +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Koneksi ke server berhasil tetapi database '%s' tidak ditemukan. ErrorDatabaseAlreadyExists=Database '%s' sudah ada. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Jika database tidak ada, kembali dan centang opsi "Buat database". IfDatabaseExistsGoBackAndCheckCreate=Jika database sudah ada, kembali dan hapus centang opsi "Buat database". WarningBrowserTooOld=Versi browser terlalu lama. Memutakhirkan browser Anda ke versi terbaru dari Firefox, Chrome atau Opera sangat disarankan. diff --git a/htdocs/langs/id_ID/knowledgemanagement.lang b/htdocs/langs/id_ID/knowledgemanagement.lang index 640e4c857f0..bd0abf8c6d8 100644 --- a/htdocs/langs/id_ID/knowledgemanagement.lang +++ b/htdocs/langs/id_ID/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Artikel KnowledgeRecord = Artikel KnowledgeRecordExtraFields = Extrafields untuk Artikel GroupOfTicket=Kelompok tiket -YouCanLinkArticleToATicketCategory=Anda dapat menautkan artikel ke grup tiket (sehingga artikel akan disarankan selama kualifikasi tiket baru) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Disarankan untuk tiket saat grup SetObsolete=Set as obsolete diff --git a/htdocs/langs/id_ID/loan.lang b/htdocs/langs/id_ID/loan.lang index a7075015bb9..a69cf7c77dd 100644 --- a/htdocs/langs/id_ID/loan.lang +++ b/htdocs/langs/id_ID/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Komitmen keuangan InterestAmount=Bunga CapitalRemain=Modal tersisa TermPaidAllreadyPaid = Istilah ini sudah dibayar -CantUseScheduleWithLoanStartedToPaid = Tidak dapat menggunakan penjadwalan untuk pinjaman ketika pembayaran telah dimulai +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Anda tidak dapat mengubah minat jika Anda menggunakan jadwal # Admin ConfigLoan=Konfigurasi pinjaman modul -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Modal akun akuntansi secara default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Bunga akun akuntansi secara default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Akuntansi akun asuransi secara default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edit komitmen keuangan diff --git a/htdocs/langs/id_ID/mailmanspip.lang b/htdocs/langs/id_ID/mailmanspip.lang index 27e8a8d2a1c..1f52e313e3d 100644 --- a/htdocs/langs/id_ID/mailmanspip.lang +++ b/htdocs/langs/id_ID/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Tes berlangganan berhasil dilaksanakan MailmanDeletionSuccess=Tes berhenti berlangganan berhasil dilaksanakan SynchroMailManEnabled=Pembaruan tukang pos akan dilakukan SynchroSpipEnabled=Pembaruan Spip akan dilakukan -DescADHERENT_MAILMAN_ADMINPW=Kata sandi administrator tukang pos +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL untuk langganan Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL untuk berhenti berlangganan Mailman DescADHERENT_MAILMAN_LISTS=Daftar untuk prasasti otomatis anggota baru (dipisahkan dengan koma) diff --git a/htdocs/langs/id_ID/mails.lang b/htdocs/langs/id_ID/mails.lang index 2359e36a123..0066881e19e 100644 --- a/htdocs/langs/id_ID/mails.lang +++ b/htdocs/langs/id_ID/mails.lang @@ -7,10 +7,10 @@ MailCard=Kartu EMailing MailRecipients=Penerima MailRecipient=Penerima MailTitle=Keterangan -MailFrom=Pengirim +MailFrom=Dari MailErrorsTo=Kesalahan pada MailReply=Membalas ke -MailTo=Penerima(banyak) +MailTo=Kepada MailToUsers=Kepada pengguna(banyak) MailCC=Salin ke MailToCCUsers=Salin ke pengguna(banyak) @@ -178,3 +178,4 @@ IsAnAnswer=Adalah jawaban dari email awal RecordCreatedByEmailCollector=Catatan dibuat oleh Kolektor Email %s dari email %s DefaultBlacklistMailingStatus=Nilai default untuk bidang '%s' saat membuat kontak baru DefaultStatusEmptyMandatory=Kosong tapi wajib +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index 23fbd8255cb..fe79854e0be 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Tidak ada templat yang tersedia untuk jenis email ini AvailableVariables=Variabel substitusi yang tersedia NoTranslation=Tanpa terjemahan Translation=Terjemahan +Translations=Translations CurrentTimeZone=TimeZone PHP (Server) EmptySearchString=Masukkan kriteria pencarian yang tidak kosong EnterADateCriteria=Masukkan kriteria tanggal @@ -199,6 +206,7 @@ Valid=Sah Approve=Menyetujui Disapprove=Ditolak ReOpen=Buka kembali +OpenVerb=Open Upload=Unggah ToLink=Link Select=Pilih @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Tidak ada grup pengguna yang ditentukan Password=Kata kunci -PasswordRetype=Ketik ulang kata sandi Anda +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Perhatikan bahwa banyak fitur / modul dinonaktifkan dalam demonstrasi ini. Name=Nama NameSlashCompany=Nama / Perusahaan @@ -244,6 +252,7 @@ Designation=Keterangan DescriptionOfLine=Deskripsi garis DateOfLine=Tanggal baris DurationOfLine=Durasi garis +ParentLine=Parent line ID Model=Templat dokumen DefaultModel=Template dokumen default Action=Peristiwa @@ -344,7 +353,7 @@ KiloBytes=Kilobyte MegaBytes=Megabita GigaBytes=Gigabytes TeraBytes=Terabyte -UserAuthor=Dibuat oleh +UserAuthor=Created by UserModif=Diperbaharui oleh b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Perihal untuk kontak / alamat ini ActionsOnContract=Perihal untuk kontrak ini ActionsOnMember=Perihal tentang anggota ini ActionsOnProduct=Perihal tentang produk ini +ActionsOnAsset=Events for this fixed asset NActionsLate=%s terlambat ToDo=Melakukan Completed=Lengkap @@ -517,6 +527,7 @@ or=atau Other=Lainnya Others=Lainnya OtherInformations=Informasi lain +Workflow=Workflow Quantity=Kuantitas Qty=Jumlah ChangedBy=Diubah oleh @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=File dan dokumen terlampir JoinMainDoc=Bergabunglah dengan dokumen utama +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Fitur dinonaktifkan MoveBox=Pindahkan widget Offered=Ditawarkan NotEnoughPermissions=Anda tidak memiliki izin untuk tindakan ini +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Nama sesi Method=Metode Receive=Menerima @@ -798,6 +811,7 @@ URLPhoto=URL foto / logo SetLinkToAnotherThirdParty=Tautan ke pihak ketiga lain LinkTo=Tautan ke LinkToProposal=Tautan ke proposal +LinkToExpedition= Link to expedition LinkToOrder=Tautan ke pesanan LinkToInvoice=Tautan ke faktur LinkToTemplateInvoice=Tautan ke faktur templat @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Tautan unduhan pribadi PrivateDownloadLinkDesc=Anda harus masuk dan Anda memerlukan izin untuk melihat atau mengunduh file Download=Unduh DownloadDocument=Unduh dokumen +DownloadSignedDocument=Download signed document ActualizeCurrency=Perbarui kurs mata uang Fiscalyear=Tahun fiskal ModuleBuilder=Modul dan Pembuat Aplikasi @@ -1041,6 +1056,7 @@ SearchIntoContracts=Kontrak SearchIntoCustomerShipments=Pengiriman pelanggan SearchIntoExpenseReports=Laporan biaya SearchIntoLeaves=Keluar +SearchIntoKM=Dasar pengetahuan SearchIntoTickets=Tiket SearchIntoCustomerPayments=Pembayaran pelanggan SearchIntoVendorPayments=Pembayaran vendor @@ -1132,15 +1148,29 @@ EventReminder=Pengingat Acara UpdateForAllLines=Perbarui untuk semua lini OnHold=Tertahan Civility=Kesopanan -AffectTag=Mempengaruhi Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Buat pengguna eksternal -ConfirmAffectTag=Pengaruh Tag Massal -ConfirmAffectTagQuestion=Yakin ingin memengaruhi tag ke %s rekaman yang dipilih()? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Tidak ada jenis tag yang ditemukan untuk jenis rekaman +Rate=Menilai +SupervisorNotFound=Supervisor not found CopiedToClipboard=Disalin ke papan klip InformationOnLinkToContract=Jumlah ini hanyalah total dari semua garis kontrak. Tidak ada gagasan tentang waktu yang dipertimbangkan. ConfirmCancel=Anda yakin untuk membatalkan EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Aktifkan SetToDisabled=Non-aktifkan ConfirmMassEnabling=konfirmasi global aktivasi @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Pengguna internal +ExternalUser=Pengguna eksternal diff --git a/htdocs/langs/id_ID/members.lang b/htdocs/langs/id_ID/members.lang index 2ee63ea41df..4405393681a 100644 --- a/htdocs/langs/id_ID/members.lang +++ b/htdocs/langs/id_ID/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=anggota lain (nama:%s , login: ErrorUserPermissionAllowsToLinksToItselfOnly=Demi alasan keamanan, Anda harus diberikan izin untuk mengedit semua pengguna agar dapat menautkan anggota ke pengguna yang bukan milik Anda. SetLinkToUser=Tautan ke pengguna Dolibarr SetLinkToThirdParty=Tautan ke pihak ketiga Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Daftar anggota MembersListToValid=Daftar anggota konsep (akan divalidasi) @@ -34,8 +35,10 @@ DateSubscription=Tanggal keanggotaan DateEndSubscription=Tanggal akhir keanggotaan EndSubscription=Akhir keanggotaan SubscriptionId=ID Kontribusi -WithoutSubscription=Tanpa kontribusi -MemberId=Tanda Anggota +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Anggota baru MemberType=Tipe anggota MemberTypeId=ID tipe anggota @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Jenis anggota tidak dapat dihapus NewSubscription=Kontribusi baru NewSubscriptionDesc=Formulir ini memungkinkan Anda untuk merekam langganan Anda sebagai anggota baru yayasan. Jika Anda ingin memperpanjang langganan Anda (jika sudah menjadi anggota), silakan hubungi dewan yayasan melalui email %s. Subscription=Kontribusi +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Durasi +GetMembershipButtonLabel=Join Subscriptions=Kontribusi SubscriptionLate=Terlambat SubscriptionNotReceived=Kontribusi tidak pernah diterima @@ -135,7 +144,7 @@ CardContent=Konten kartu anggota Anda # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Kami ingin memberi tahu Anda bahwa permintaan keanggotaan Anda telah diterima.

    ThisIsContentOfYourMembershipWasValidated=Kami ingin memberi tahu Anda bahwa keanggotaan Anda telah divalidasi dengan informasi berikut:

    -ThisIsContentOfYourSubscriptionWasRecorded=Kami ingin memberi tahu Anda bahwa langganan baru Anda telah direkam.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Kami ingin memberi tahu Anda bahwa langganan Anda akan kedaluwarsa atau telah kedaluwarsa (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Kami harap Anda akan memperbaruinya.

    ThisIsContentOfYourCard=Ini adalah ringkasan informasi yang kami miliki tentang Anda. Silakan hubungi kami jika ada yang salah.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subjek dari email pemberitahuan yang diterima jika ada tulisan otomatis dari seorang tamu @@ -198,8 +207,10 @@ NbOfSubscriptions=Jumlah kontribusi AmountOfSubscriptions=Jumlah yang dikumpulkan dari kontribusi TurnoverOrBudget=Omset (untuk perusahaan) atau Anggaran (untuk yayasan) DefaultAmount=Jumlah kontribusi default -CanEditAmount=Pengunjung dapat memilih/mengedit jumlah kontribusinya -MEMBER_NEWFORM_PAYONLINE=Langsung ke halaman pembayaran online terintegrasi +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Secara alami MembersStatisticsByProperties=Statistik anggota secara alami VATToUseForSubscriptions=Tarif PPN yang digunakan untuk iuran @@ -218,3 +229,6 @@ XExternalUserCreated=%s pengguna eksternal yang dibuat ForceMemberNature=Sifat anggota paksa (Perorangan atau Perusahaan) CreateDolibarrLoginDesc=Pembuatan login pengguna untuk anggota memungkinkan mereka terhubung ke aplikasi. Tergantung pada otorisasi yang diberikan, mereka akan dapat, misalnya, berkonsultasi atau memodifikasi file mereka sendiri. CreateDolibarrThirdPartyDesc=Pihak ketiga adalah badan hukum yang akan digunakan pada faktur jika Anda memutuskan untuk membuat faktur untuk setiap kontribusi. Anda akan dapat membuatnya nanti selama proses pencatatan kontribusi. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/id_ID/modulebuilder.lang b/htdocs/langs/id_ID/modulebuilder.lang index 09854dc68f8..ba01e440f3b 100644 --- a/htdocs/langs/id_ID/modulebuilder.lang +++ b/htdocs/langs/id_ID/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Jalur tempat modul dihasilkan / diedit (direktori pertama untuk modul eksternal didefinisikan menjadi %s):%s ModuleBuilderDesc3=Modul yang dihasilkan / dapat diedit ditemukan:%s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Modul terdeteksi sebagai 'dapat diedit' ketika file%s NewModule=Modul baru NewObjectInModulebuilder=Objek baru NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Kunci modul ObjectKey=Kunci objek DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Path ke zip paket modul / aplikasi PathToModuleDocumentation=Path ke file modul / dokumentasi aplikasi (%s) SpaceOrSpecialCharAreNotAllowed=Spasi atau karakter khusus tidak diperbolehkan. FileNotYetGenerated=File belum dibuat +GenerateCode=Generate code RegenerateClassAndSql=Memaksa pembaruan file .class dan .sql RegenerateMissingFiles=Hasilkan file yang hilang SpecificationFile=File dokumentasi LanguageFile=File untuk bahasa ObjectProperties=Properti Obyek +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Apakah Anda yakin ingin menghapus properti%s ? Ini akan mengubah kode di kelas PHP tetapi juga menghapus kolom dari tabel definisi objek. NotNull=Bukan NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Adalah ukuran DirScanned=Direktori dipindai NoTrigger=Tidak ada pemicu NoWidget=Tidak ada widget -GoToApiExplorer=Penjelajah API +ApiExplorer=Penjelajah API ListOfMenusEntries=Daftar entri menu ListOfDictionariesEntries=Daftar entri kamus ListOfPermissionsDefined=Daftar izin yang ditentukan SeeExamples=Lihat contoh di sini -EnabledDesc=Ketentuan untuk mengaktifkan bidang ini (Contoh: 1 atau $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Apakah bidangnya terlihat? (Contoh: 0 = Tidak pernah terlihat, 1 = Terlihat pada daftar dan membuat / memperbarui / melihat formulir, 2 = Terlihat hanya pada daftar, 3 = Hanya terlihat pada formulir buat / perbarui / lihat (bukan daftar), 4 = Terlihat pada daftar dan perbarui / lihat saja form (bukan buat), 5 = Terlihat hanya pada form tampilan akhir daftar (bukan buat, bukan perbarui).

    Menggunakan nilai negatif berarti bidang tidak ditampilkan secara default pada daftar tetapi dapat dipilih untuk dilihat).

    Ini bisa berupa ekspresi, misalnya:
    preg_match ('/ publik /', $ _SERVER ['PHP_SELF'])? 0: 1
    (hak liburan-> mendefinisikan liburan-> hak): -DisplayOnPdfDesc=Tampilkan bidang ini pada dokumen PDF yang kompatibel, Anda dapat mengatur posisi dengan bidang "Posisi".
    Saat ini, model PDF kompatibel yang dikenal adalah : eratosthene (pesanan), espadon (kapal), spons (faktur), cyan (propal/kutipan), cornas (pesanan pemasok)

    For document :
    0 = tidak tampil
    1 = tampil
    2 = hanya ditampilkan jika tidak kosong

    Untuk baris dokumen :
    0 = tidak tampil
    1 = tampilkan dalam kolom
    3 = tampilkan di kolom baris deskripsi setelah deskripsi
    4 = tampilkan di kolom deskripsi setelah deskripsi hanya jika tidak kosong -DisplayOnPdf=Tampilan di PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Bisakah nilai bidang diakumulasikan untuk mendapatkan total ke dalam daftar? (Contoh: 1 atau 0) SearchAllDesc=Apakah bidang yang digunakan untuk melakukan pencarian dari alat pencarian cepat? (Contoh: 1 atau 0) SpecDefDesc=Masukkan di sini semua dokumentasi yang ingin Anda berikan dengan modul Anda yang belum ditentukan oleh tab lain. Anda dapat menggunakan .md atau lebih baik, sintaks .asciidoc yang kaya. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Gunakan URL editor tertentu UseSpecificFamily = Gunakan keluarga tertentu UseSpecificAuthor = Gunakan penulis tertentu UseSpecificVersion = Gunakan versi awal tertentu -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Jika Anda mencentang ini, beberapa kode akan dibuat untuk menambahkan kotak "Hasilkan dokumen" pada catatan. -ShowOnCombobox=Tunjukkan nilai ke dalam kotak kombo +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Kunci untuk tooltip CSSClass=CSS untuk mengedit/membuat formulir CSSViewClass=CSS untuk membaca formulir CSSListClass=CSS untuk daftar NotEditable=Tidak dapat diedit ForeignKey=Kunci asing -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Pengonversi Ascii ke HTML AsciiToPdfConverter=Pengonversi ascii ke PDF TableNotEmptyDropCanceled=Meja tidak kosong. Drop telah dibatalkan. ModuleBuilderNotAllowed=Pembuat modul tersedia tetapi tidak diizinkan untuk pengguna Anda. ImportExportProfiles=Impor dan ekspor profil -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/id_ID/mrp.lang b/htdocs/langs/id_ID/mrp.lang index 044dce1d6e2..65416f0cf3c 100644 --- a/htdocs/langs/id_ID/mrp.lang +++ b/htdocs/langs/id_ID/mrp.lang @@ -11,8 +11,8 @@ Bom=Bills of Material BillOfMaterials=Bill of material BillOfMaterialsLines=Garis Bill of Material BOMsSetup=Pengaturan modul BOM -ListOfBOMs=Daftar tagihan bahan - BOM -ListOfManufacturingOrders=Daftar Pesanan Manufaktur +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Bill of material baru ProductBOMHelp=Produk untuk dibuat (atau dibongkar) dengan BOM ini.
    Catatan: Produk dengan properti 'Sifat produk' = 'Bahan mentah' tidak terlihat dalam daftar ini. BOMsNumberingModules=Templat penomoran BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Anda yakin ingin mengkloning bill of material %s ? ConfirmCloneMo=Yakin ingin mengkloning Pesanan Manufaktur %s? ManufacturingEfficiency=Efisiensi manufaktur ConsumptionEfficiency=Efisiensi konsumsi +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Nilai 0,95 berarti rata-rata 5%% dari kehilangan produk yang dihasilkan DeleteBillOfMaterials=Hapus Bill Of Material @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=Untuk kuantitas yang harus dibongkar dari %s ConfirmValidateMo=Apakah Anda yakin ingin memvalidasi Pesanan Manufaktur ini? ConfirmProductionDesc=Dengan mengklik '%s', Anda akan memvalidasi konsumsi dan / atau produksi untuk jumlah yang ditentukan. Ini juga akan memperbarui stok dan mencatat pergerakan stok. ProductionForRef=Produksi %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Tutup secara otomatis Order Manufaktur jika jumlah yang dikonsumsi dan diproduksi tercapai NoStockChangeOnServices=Tidak ada perubahan stok pada layanan ProductQtyToConsumeByMO=Kuantitas produk masih dikonsumsi oleh MO terbuka @@ -80,6 +83,7 @@ ProductsToProduce=Produk yang akan diproduksi UnitCost=Biaya satuan TotalCost=Total biaya BOMTotalCost=Biaya untuk menghasilkan BOM ini berdasarkan pada biaya setiap kuantitas dan produk yang akan dikonsumsi (gunakan harga Biaya jika ditentukan, selain itu Harga Rata-rata Tertimbang jika ditentukan, selain itu harga pembelian Terbaik) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Anda harus memulai produksi terlebih dahulu untuk menutup Pesanan Manufaktur (Lihat tab '%s'). Tapi Anda bisa Membatalkannya. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Kit tidak dapat digunakan menjadi BOM atau MO Workstation=Stasiun kerja @@ -107,3 +111,10 @@ THMEstimatedHelp=Tarif ini memungkinkan untuk menentukan perkiraan biaya item BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Pesanan dan baris produksi +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/id_ID/oauth.lang b/htdocs/langs/id_ID/oauth.lang index 32b86a91831..b16c0a83160 100644 --- a/htdocs/langs/id_ID/oauth.lang +++ b/htdocs/langs/id_ID/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Token dibuat dan disimpan ke dalam basis data lokal NewTokenStored=Token diterima dan disimpan ToCheckDeleteTokenOnProvider=Klik di sini untuk memeriksa / menghapus otorisasi yang disimpan oleh penyedia OAuth %s TokenDeleted=Token dihapus -RequestAccess=Klik di sini untuk meminta / memperbarui akses dan menerima token baru untuk disimpan -DeleteAccess=Klik di sini untuk menghapus token +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Gunakan URL berikut sebagai Redirect URI saat membuat kredensial Anda dengan penyedia OAuth Anda: -ListOfSupportedOauthProviders=Masukkan kredensial yang disediakan oleh penyedia OAuth2 Anda. Hanya penyedia OAuth2 yang didukung yang terdaftar di sini. Layanan ini dapat digunakan oleh modul lain yang membutuhkan otentikasi OAuth2. -OAuthSetupForLogin=Halaman untuk menghasilkan token OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Lihat tab sebelumnya +OAuthProvider=OAuth provider OAuthIDSecret=ID dan Rahasia OAuth TOKEN_REFRESH=Token Segarkan Sekarang TOKEN_EXPIRED=Token kedaluwarsa @@ -23,10 +24,13 @@ TOKEN_DELETE=Hapus token yang disimpan OAUTH_GOOGLE_NAME=Layanan Google OAuth OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Pergi ke halaman ini lalu "Kredensial" untuk membuat kredensial OAuth OAUTH_GITHUB_NAME=Layanan GitHub OAuth OAUTH_GITHUB_ID=Id GitHub OAuth OAUTH_GITHUB_SECRET=Rahasia GitHub OAuth -OAUTH_GITHUB_DESC=Pergi ke halaman ini lalu "Daftarkan aplikasi baru" untuk membuat kredensial OAuth +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=Tes Strip OAuth OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang index 8efd4345cb7..4d9f5f7aef5 100644 --- a/htdocs/langs/id_ID/other.lang +++ b/htdocs/langs/id_ID/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Pesanan pembelian disetujui Notify_ORDER_SUPPLIER_REFUSE=Pesanan pembelian ditolak Notify_PROPAL_VALIDATE=Proposal pelanggan divalidasi Notify_PROPAL_CLOSE_SIGNED=Proposal pelanggan ditutup ditandatangani +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Proposal pelanggan yang ditutup ditolak +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Proposal komersial dikirim melalui surat Notify_WITHDRAW_TRANSMIT=Penarikan transmisi Notify_WITHDRAW_CREDIT=Penarikan kredit @@ -181,6 +183,7 @@ SizeUnitfoot=kaki SizeUnitpoint=titik BugTracker=Pelacak bug SendNewPasswordDesc=Formulir ini memungkinkan Anda untuk meminta kata sandi baru. Itu akan dikirim ke alamat email Anda.
    Perubahan akan berlaku setelah Anda mengklik tautan konfirmasi di email.
    Periksa kotak masuk Anda. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Kembali ke halaman login AuthenticationDoesNotAllowSendNewPassword=Mode otentikasi adalah%s .
    Dalam mode ini, Dolibarr tidak dapat mengetahui atau mengubah kata sandi Anda.
    Hubungi administrator sistem Anda jika Anda ingin mengubah kata sandi. EnableGDLibraryDesc=Instal atau aktifkan pustaka GD pada instalasi PHP Anda untuk menggunakan opsi ini. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Faktur %s telah divalidasi. EMailTextInvoicePayed=Faktur %s telah dibayar. EMailTextProposalValidated=Proposal %s telah divalidasi. EMailTextProposalClosedSigned=Proposal %s telah ditutup ditandatangani. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Pesanan %s telah divalidasi. EMailTextOrderApproved=Pesanan %s telah disetujui. EMailTextOrderValidatedBy=Pesanan %s telah direkam oleh %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Apakah Anda yakin ingin "%s" ? ConfirmBtnCommonTitle = Konfirmasikan tindakan Anda CloseDialog = Tutup Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup link to external website +ExternalSiteURL=URL Situs Eksternal dari konten iframe HTML +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=Pengaturan modul Klien FTP atau SFTP +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Gagal menghapus file%s . +FTPFailedToRemoveDir=Gagal menghapus direktori%s : periksa izin dan direktori tersebut kosong. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Pilih situs FTP/SFTP dari menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/id_ID/products.lang b/htdocs/langs/id_ID/products.lang index d35bc34af19..3a45192c48f 100644 --- a/htdocs/langs/id_ID/products.lang +++ b/htdocs/langs/id_ID/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Anda yakin ingin menghapus lini produk ini? ProductSpecial=Khusus QtyMin=Min. jumlah pembelian PriceQtyMin=Kuantitas harga min. -PriceQtyMinCurrency=Harga (mata uang) untuk qty ini. (tidak ada diskon) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=Tarif PPN (untuk vendor / produk ini) DiscountQtyMin=Diskon untuk qty ini. NoPriceDefinedForThisSupplier=Tidak ada harga / jumlah yang ditentukan untuk vendor / produk ini @@ -261,7 +262,7 @@ Quarter1=1 Perempat Quarter2=Ke-2 Perempat Quarter3=Ke-3 Perempat Quarter4=4 Perempat -BarCodePrintsheet=Cetak barcode +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Dengan alat ini, Anda dapat mencetak lembaran stiker barcode. Pilih format halaman stiker Anda, jenis barcode dan nilai barcode, lalu klik tombol%s . NumberOfStickers=Jumlah stiker untuk dicetak pada halaman PrintsheetForOneBarCode=Cetak beberapa stiker untuk satu barcode @@ -344,9 +345,9 @@ PossibleValues=Nilai yang mungkin GoOnMenuToCreateVairants=Buka menu %s - %s untuk menyiapkan varian atribut (seperti warna, ukuran, ...) UseProductFournDesc=Tambahkan fitur untuk mendefinisikan deskripsi produk yang ditentukan oleh vendor (untuk setiap referensi vendor) selain deskripsi untuk pelanggan ProductSupplierDescription=Deskripsi vendor untuk produk -UseProductSupplierPackaging=Gunakan kemasan pada harga pemasok (jumlah ulang sesuai dengan kemasan yang ditetapkan pada harga pemasok saat menambahkan / memperbarui baris dalam dokumen pemasok) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Pengemasan -PackagingForThisProductDesc=Pada pesanan pemasok, Anda akan secara otomatis memesan jumlah ini (atau kelipatan dari jumlah ini). Tidak boleh kurang dari jumlah pembelian minimum +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Kuantitas saluran dihitung ulang sesuai dengan kemasan pemasok #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Tindakan hanya tersedia pada varian produk ProductsPricePerCustomer=Harga produk per pelanggan ProductSupplierExtraFields=Atribut Tambahan (Harga Pemasok) DeleteLinkedProduct=Hapus produk anak yang ditautkan ke kombinasi -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Harga rata-rata yang ditimbang PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=BOM bawaan DefaultBOMDesc=BOM default direkomendasikan untuk digunakan untuk memproduksi produk ini. Bidang ini hanya dapat disetel jika sifat produk adalah '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/id_ID/projects.lang b/htdocs/langs/id_ID/projects.lang index 39110503739..6a26514db7d 100644 --- a/htdocs/langs/id_ID/projects.lang +++ b/htdocs/langs/id_ID/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Tampilan ini menyajikan semua proyek dan tugas yang boleh Anda b TasksDesc=Tampilan ini menyajikan semua proyek dan tugas (izin pengguna Anda memberi Anda izin untuk melihat semuanya). AllTaskVisibleButEditIfYouAreAssigned=Semua tugas untuk proyek yang memenuhi syarat terlihat, tetapi Anda dapat memasukkan waktu hanya untuk tugas yang diberikan kepada pengguna yang dipilih. Tetapkan tugas jika Anda perlu memasukkan waktu untuk itu. OnlyYourTaskAreVisible=Hanya tugas yang diberikan kepada Anda yang terlihat. Jika Anda perlu memasukkan waktu pada suatu tugas dan jika tugas tersebut tidak terlihat di sini, maka Anda perlu menetapkan tugas tersebut untuk diri Anda sendiri. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Tugas proyek ProjectCategories=Tag / kategori proyek NewProject=Proyek baru @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Memimpin jumlah proyek terbuka berdasarkan OpportunitiesStatusForProjects=Memimpin jumlah proyek berdasarkan status ShowProject=Tampilkan proyek ShowTask=Tampilkan tugas +SetThirdParty=Set third party SetProject=Tetapkan proyek +OutOfProject=Out of project NoProject=Tidak ada proyek yang ditentukan atau dimiliki NbOfProjects=Jumlah proyek NbOfTasks=Jumlah tugas @@ -122,7 +125,8 @@ ValidateProject=Validasi projet ConfirmValidateProject=Anda yakin ingin memvalidasi proyek ini? CloseAProject=Tutup proyek ConfirmCloseAProject=Anda yakin ingin menutup proyek ini? -AlsoCloseAProject=Juga tutup proyek (tetap buka jika Anda masih harus mengikuti tugas produksi di atasnya) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Proyek terbuka ConfirmReOpenAProject=Anda yakin ingin membuka kembali proyek ini? ProjectContact=Kontak proyek @@ -165,7 +169,7 @@ OpportunityProbability=Peluang memimpin OpportunityProbabilityShort=Probab timbal. OpportunityAmount=Jumlah timah OpportunityAmountShort=Jumlah timah -OpportunityWeightedAmount=Peluang jumlah tertimbang +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. jumlah tertimbang OpportunityAmountAverageShort=Jumlah timah rata-rata OpportunityAmountWeigthedShort=Jumlah timbal tertimbang @@ -238,7 +242,7 @@ OppStatusPENDING=Tertunda OppStatusWON=Won OppStatusLOST=Kalah Budget=Anggaran -AllowToLinkFromOtherCompany=Izinkan untuk menautkan proyek dari perusahaan lain

    Nilai yang didukung:
    - Tetap kosong: Dapat menautkan proyek apa pun dari perusahaan (proyek apa pun, bahkan proyek "a034f apa saja a034f proyek a034f id pihak ketiga yang dipisahkan oleh koma: dapat menautkan semua proyek dari pihak ketiga ini (Contoh: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Proyek %s terbaru LatestModifiedProjects=Proyek modifikasi %s terbaru OtherFilteredTasks=Tugas yang difilter lainnya @@ -259,7 +263,7 @@ TimeSpentInvoiced=Waktu yang dihabiskan ditagih TimeSpentForIntervention=Waktu yang dihabiskan TimeSpentForInvoice=Waktu yang dihabiskan OneLinePerUser=Satu baris per pengguna -ServiceToUseOnLines=Layanan untuk digunakan secara on line +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Faktur %s telah dihasilkan dari waktu yang dihabiskan untuk proyek InterventionGeneratedFromTimeSpent=Intervensi %s telah dihasilkan dari waktu yang dihabiskan untuk proyek ProjectBillTimeDescription=Periksa apakah Anda memasukkan kartu absen pada tugas proyek DAN Anda berencana untuk membuat faktur dari kartu absen untuk menagih pelanggan proyek (jangan periksa apakah Anda berencana untuk membuat faktur yang tidak didasarkan pada timeshe yang dimasukkan). Catatan: Untuk membuat faktur, buka tab 'Waktu yang dihabiskan' dari proyek dan pilih baris untuk disertakan. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Keuntungan dihitung menggunakan AddPersonToTask=Tambahkan juga ke tugas UsageOrganizeEvent=Penggunaan: Organisasi Acara PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klasifikasikan proyek sebagai tertutup ketika semua tugasnya selesai (kemajuan 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Catatan: progres proyek yang ada dengan semua tugas di 100%% tidak akan terpengaruh: Anda harus menutupnya secara manual. Opsi ini hanya memengaruhi proyek terbuka. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Pilih baris waktu yang dihabiskan yang belum ditagih, lalu tindakan massal "Buat Faktur" untuk menagihnya ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/id_ID/recruitment.lang b/htdocs/langs/id_ID/recruitment.lang index e2617c84686..fc89e03f230 100644 --- a/htdocs/langs/id_ID/recruitment.lang +++ b/htdocs/langs/id_ID/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Perekrut email ToUseAGenericEmail=Untuk menggunakan email umum. Jika tidak ditentukan, email dari penanggung jawab perekrutan akan digunakan NewCandidature=Aplikasi baru ListOfCandidatures=Daftar aplikasi -RequestedRemuneration=Remunerasi yang diminta -ProposedRemuneration=Remunerasi yang diusulkan +Remuneration=Gaji +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Kontrak diusulkan ContractSigned=Kontrak telah ditandatangani ContractRefused=Kontrak ditolak RecruitmentCandidature=Aplikasi JobPositions=Posisi kerja RecruitmentCandidatures=Lamaran -InterviewToDo=Wawancara untuk dilakukan +InterviewToDo=Contacts to follow AnswerCandidature=Jawaban lamaran YourCandidature=Lamaran Anda YourCandidatureAnswerMessage=Terima kasih atas lamaran Anda.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=Posisi pekerjaan ditutup. ExtrafieldsJobPosition=Atribut pelengkap (posisi pekerjaan) ExtrafieldsApplication=Atribut pelengkap (lamaran kerja) MakeOffer=Buat sebuah penawaran +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/id_ID/salaries.lang b/htdocs/langs/id_ID/salaries.lang index c5a70a905ee..49b052d0b1d 100644 --- a/htdocs/langs/id_ID/salaries.lang +++ b/htdocs/langs/id_ID/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Akun akuntansi digunakan untuk pihak ketiga pengguna -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Akun akuntansi khusus yang ditentukan pada kartu pengguna akan digunakan hanya untuk akuntansi Subledger. Yang ini akan digunakan untuk Buku Besar Umum dan sebagai nilai default dari akuntansi Subledger jika akun akuntansi pengguna khusus pada pengguna tidak didefinisikan. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Akun akuntansi secara default untuk pembayaran upah CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Secara default, biarkan kosong opsi "Otomatis buat total pembayaran" saat membuat Gaji Salary=Gaji @@ -24,3 +24,4 @@ SalariesStatistics=Statistik gaji SalariesAndPayments=Gaji dan pembayaran ConfirmDeleteSalaryPayment=Apakah Anda ingin menghapus pembayaran gaji ini? FillFieldFirst=Isi kolom karyawan terlebih dahulu +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/id_ID/stocks.lang b/htdocs/langs/id_ID/stocks.lang index 3dea2654b8d..5715bf5476e 100644 --- a/htdocs/langs/id_ID/stocks.lang +++ b/htdocs/langs/id_ID/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Batas stok untuk peringatan dan stok optimal yang d ProductStockWarehouseUpdated=Batas stok untuk peringatan dan stok optimal yang diinginkan diperbarui dengan benar ProductStockWarehouseDeleted=Batas stok untuk peringatan dan stok optimal yang diinginkan dihapus dengan benar AddNewProductStockWarehouse=Tetapkan batas baru untuk waspada dan stok optimal yang diinginkan -AddStockLocationLine=Kurangi kuantitas kemudian klik untuk menambahkan gudang lain untuk produk ini +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Tanggal inventaris Inventories=Inventories NewInventory=Inventaris baru @@ -254,7 +254,7 @@ ReOpen=Buka kembali ConfirmFinish=Apakah Anda mengkonfirmasi penutupan persediaan? Ini akan menghasilkan semua pergerakan stok untuk memperbarui stok Anda ke jumlah sebenarnya yang Anda masukkan ke dalam inventaris. ObjectNotFound=%s tidak ditemukan MakeMovementsAndClose=Hasilkan gerakan dan tutup -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Isi kuantitas nyata dengan kuantitas yang diharapkan ShowAllBatchByDefault=Secara default, tampilkan detail batch pada tab "stok" produk CollapseBatchDetailHelp=Anda dapat mengatur tampilan default detail batch dalam konfigurasi modul saham ErrorWrongBarcodemode=Mode Kode Batang Tidak Dikenal @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Produk dengan barcode tidak ada WarehouseId=ID Gudang WarehouseRef=Referensi Gudang SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Mulai InventoryStartedShort=Dimulai ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Pengaturan +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/id_ID/ticket.lang b/htdocs/langs/id_ID/ticket.lang index 538d1027999..332177bc765 100644 --- a/htdocs/langs/id_ID/ticket.lang +++ b/htdocs/langs/id_ID/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Hapus tiket Permission56004=Kelola tiket Permission56005=Lihat tiket dari semua pihak ketiga (tidak berlaku untuk pengguna eksternal, selalu terbatas pada pihak ketiga yang mereka andalkan) +Tickets=Tickets TicketDictType=Tiket - Jenis TicketDictCategory=Tiket - Grup TicketDictSeverity=Tiket - Tingkat Permasalahan @@ -90,8 +91,8 @@ TicketPublicAccess=Antarmuka publik yang tidak memerlukan identifikasi tersedia TicketSetupDictionaries=Jenis tiket, keparahan dan kode analitik dapat dikonfigurasi dari kamus TicketParamModule=Pengaturan variabel modul TicketParamMail=Penyiapan email -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Pesan teks dikirim setelah membuat tiket @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Teks yang ditentukan di sini akan dimasukkan ke dalam ema TicketParamPublicInterface=Penyiapan antarmuka publik TicketsEmailMustExist=Membutuhkan alamat email yang ada untuk membuat tiket TicketsEmailMustExistHelp=Di antarmuka publik, alamat email harus sudah diisi dalam database untuk membuat tiket baru. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Antarmuka publik TicketUrlPublicInterfaceLabelAdmin=URL alternatif untuk antarmuka publik TicketUrlPublicInterfaceHelpAdmin=Dimungkinkan untuk mendefinisikan alias ke server web dan dengan demikian menyediakan antarmuka publik dengan URL lain (server harus bertindak sebagai proxy pada URL baru ini) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Tiket sekarang ditugaskan TicketChangeType=Ubah tipe TicketChangeCategory=Ubah kode analitik TicketChangeSeverity=Ubah keparahan -TicketAddMessage=Tambahkan pesan -AddMessage=Tambahkan pesan +TicketAddMessage=Add private message MessageSuccessfullyAdded=Tiket ditambahkan TicketMessageSuccessfullyAdded=Pesan berhasil ditambahkan TicketMessagesList=Daftar pesan @@ -202,8 +206,8 @@ TicketSeverity=Kerasnya ShowTicket=Lihat tiket RelatedTickets=Tiket terkait TicketAddIntervention=Buat intervensi -CloseTicket=Tutup|Pecahkan tiket -AbandonTicket=Abaikan tiket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Tutup|Pecahkan tiket ConfirmCloseAticket=Konfirmasikan penutupan tiket ConfirmAbandonTicket=Apakah Anda mengkonfirmasi penutupan tiket dengan status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Kirim pesan melalui email TicketNewMessage=Pesan baru ErrorMailRecipientIsEmptyForSendTicketMessage=Penerima kosong. Tidak ada email yang dikirim TicketGoIntoContactTab=Buka tab "Kontak" untuk memilihnya -TicketMessageMailIntro=pengantar +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Teks ini hanya ditambahkan di awal email dan tidak akan disimpan. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Tanda tangan -TicketMessageMailSignatureHelp=Teks ini hanya ditambahkan di akhir email dan tidak akan disimpan. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Tanda tangan email respons -TicketMessageMailSignatureHelpAdmin=Teks ini akan dimasukkan setelah pesan respons. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Hanya teks ini yang akan disimpan dalam daftar pesan di kartu tiket. TicketMessageSubstitutionReplacedByGenericValues=Variabel substitusi digantikan oleh nilai generik. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Waktu berlalu sejak itu TicketTimeToRead=Waktu berlalu sebelum membaca TicketTimeElapsedBeforeSince=Waktu berlalu sebelum / sejak @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Pesan baru telah diposting di tiket d TicketAssignedToYou=Tiket ditugaskan TicketAssignedEmailBody=Anda telah diberi tiket # %s oleh %s MarkMessageAsPrivate=Tandai pesan sebagai pribadi +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Pesan ini tidak akan ditampilkan kepada pengguna eksternal TicketEmailOriginIssuer=Penerbit asal tiket InitialMessage=Pesan Awal @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Anda dapat melihat kemajuan tiket di ant TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Tolong jangan balas langsung ke email ini! Gunakan tautan untuk membalas ke antarmuka. TicketPublicInfoCreateTicket=Formulir ini memungkinkan Anda untuk merekam tiket dukungan dalam sistem manajemen kami. -TicketPublicPleaseBeAccuratelyDescribe=Tolong jelaskan masalahnya secara akurat. Berikan sebanyak mungkin informasi untuk memungkinkan kami mengidentifikasi permintaan Anda dengan benar. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Silakan masukkan ID pelacakan tiket TicketTrackId=ID Pelacakan Publik OneOfTicketTrackId=Salah satu ID pelacakan Anda diff --git a/htdocs/langs/id_ID/users.lang b/htdocs/langs/id_ID/users.lang index 3374528f545..c46642b185f 100644 --- a/htdocs/langs/id_ID/users.lang +++ b/htdocs/langs/id_ID/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Hapus dari grup PasswordChangedAndSentTo=Kata sandi diubah dan dikirim ke%s . PasswordChangeRequest=Permintaan untuk mengubah kata sandi untuk%s PasswordChangeRequestSent=Permintaan untuk mengubah kata sandi untuk%sdikirim ke%s . -IfLoginExistPasswordRequestSent=Jika login ini adalah akun yang valid, email untuk mengatur ulang kata sandi telah dikirim. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Jika email ini adalah akun yang valid, email untuk mengatur ulang kata sandi telah dikirim. ConfirmPasswordReset=Konfirmasikan setel ulang kata sandi MenuUsersAndGroups=Pengguna & Grup @@ -68,7 +68,6 @@ CreateDolibarrLogin=Buat pengguna CreateDolibarrThirdParty=Buat pihak ketiga LoginAccountDisableInDolibarr=Akun dinonaktifkan di Dolibarr. UsePersonalValue=Gunakan nilai pribadi -InternalUser=Pengguna internal ExportDataset_user_1=Pengguna dan propertinya DomainUser=Pengguna domain %s Reactivate=Mengaktifkan kembali @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/id_ID/website.lang b/htdocs/langs/id_ID/website.lang index 2066e8a15bd..a08d336592e 100644 --- a/htdocs/langs/id_ID/website.lang +++ b/htdocs/langs/id_ID/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kode +WebsiteName=Name of the website WebsiteSetupDesc=Buat di sini situs web yang ingin Anda gunakan. Kemudian masuk ke menu Website untuk mengeditnya. DeleteWebsite=Hapus situs web ConfirmDeleteWebsite=Anda yakin ingin menghapus situs web ini? Semua halaman dan kontennya juga akan dihapus. File yang diunggah (seperti ke direktori media, modul ECM, ...) akan tetap ada. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Tambahan di bagian bawah Header HTML (umum untuk semua halam WEBSITE_ROBOT=File robot (robots.txt) WEBSITE_HTACCESS=File .htaccess situs web WEBSITE_MANIFEST_JSON=File manifest.json situs web -WEBSITE_README=File README.md WEBSITE_KEYWORDSDesc=Gunakan koma untuk memisahkan nilai -EnterHereLicenseInformation=Masukkan di sini data meta atau informasi lisensi untuk memfilter file README.md. jika Anda mendistribusikan situs web Anda sebagai templat, file tersebut akan dimasukkan ke dalam paket temptate. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Header HTML (khusus untuk halaman ini saja) PageNameAliasHelp=Nama atau alias halaman.
    Alias ini juga digunakan untuk memalsukan URL SEO ketika situs web dijalankan dari host virtual server Web (seperti Apacke, Nginx, ...). Gunakan tombol " %s " untuk mengedit alias ini. EditTheWebSiteForACommonHeader=Catatan: Jika Anda ingin menentukan tajuk yang dipersonalisasi untuk semua halaman, edit tajuk di tingkat situs alih-alih pada halaman / wadah. @@ -42,10 +43,12 @@ ViewPageInNewTab=Lihat halaman di tab baru SetAsHomePage=Setel sebagai homepage RealURL=URL asli ViewWebsiteInProduction=Lihat situs web menggunakan URL beranda +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Gunakan dengan Apache / NGinx /...
    Buat di server web Anda (Apache, Nginx, ...) Host Virtual khusus dengan PHP yang diaktifkan dan direktori Root pada
    %s ExampleToUseInApacheVirtualHostConfig=Contoh untuk digunakan dalam pengaturan host virtual Apache: YouCanAlsoTestWithPHPS= Gunakan dengan server yang telah tertanam PHP
    Pada lingkungan pengembangan software, Anda dapat memilih untuk menguji situs dengan server web yang tertanam PHP (PHP 5.5 diperlukan) dengan menjalankan
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Jalankan situs web Anda dengan penyedia Hosting Dolibarr lain integrasi dengan modul Situs web. Anda dapat menemukan daftar beberapa penyedia hosting Dolibarr di https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Periksa juga bahwa pengguna host virtual (misalnya www-data) memiliki izin %s pada file ke
    %s ReadPerm=Baca WritePerm=Menulis @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Anda dapat mengedit kode sumber HTML menggunakan to YouCanEditHtmlSource=
    Anda dapat mencantumkan kode PHP ke dalam sumber source ini menggunakan tag <? php?>. Variabel global berikut tersedia: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Anda juga dapat mencantumkan konten dari Halaman/Kontainer lainnya dengan sintaks berikut:
    <?php includeContainer ('alias_kontainer_yang_ingin_dicantumkan');?>

    Anda dapat membuat pengalihkan ke Halaman/Kontainer yang lain dengan sintaks berikut (Catatan: Jangan membuat output konten sebelum dialihkan):
    <?php redirectToContainer ('alias_kontainer_yang_ingin dialihkan');>

    Untuk menambahkan link ke halaman lain, gunakan sintaks:
    <a href = "alias_halaman_yang_ingin dihubungkan.php">mylink<a>

    Untuk mencantumkan sebuah link untuk diunduh berkas yang disimpan ke dalam direktori dokumen, gunakan document.php wrapper:
    Contoh, untuk sebuah berkas ke dalam dokumen/ecm (perlu login), sintaksnya adalah:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    Untuk sebuah berkas ke dalam dokumen/media (direktori terbuka untuk akses publik), sintaksnya adalah:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    Untuk berkas yang dibagikan dengan tautan berbagi (akses terbuka menggunakan pembagian kunci hash berkas), sintaksnya adalah:
    <a href="/document.php?hashp=publicsharekeyoffile">

    untuk mencantumkan gambar yang disimpan ke dalam direktori dokumen, gunakan viewimage.php wrapper:
    Contoh, untuk sebuah gambar ke dalam dokumen/media (direktori terbuka untuk akses publik), sintaksnya adalah:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Untuk gambar yang dibagikan dengan tautan berbagi (akses terbuka menggunakan kunci hash berbagi file), sintaksnya adalah:
    <img src = "/ viewimage.php? -YouCanEditHtmlSourceMore=
    Lebih banyak contoh HTML atau kode dinamis yang tersedia di dokumentasi wiki
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Halaman / wadah klon CloneSite=Situs klon SiteAdded=Situs web ditambahkan @@ -137,7 +140,7 @@ PagesRegenerated=%s halaman / wadah dibuat ulang RegenerateWebsiteContent=Regenerasi file cache situs web AllowedInFrames=Diizinkan dalam Bingkai DefineListOfAltLanguagesInWebsiteProperties=Tentukan daftar semua bahasa yang tersedia ke dalam properti situs web. -GenerateSitemaps=Hasilkan file peta situs situs web +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Jika Anda mengonfirmasi, Anda akan menghapus file peta situs yang ada... ConfirmSitemapsCreation=Konfirmasi pembuatan peta situs SitemapGenerated=File peta situs %s dihasilkan @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon harus png ErrorFaviconSize=Favicon harus berukuran 16x16, 32x32 atau 64x64 FaviconTooltip=Unggah gambar yang harus png (16x16, 32x32 atau 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/id_ID/withdrawals.lang b/htdocs/langs/id_ID/withdrawals.lang index 38d0b35743f..d7f7a232526 100644 --- a/htdocs/langs/id_ID/withdrawals.lang +++ b/htdocs/langs/id_ID/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Faktur vendor menunggu pembayaran dengan transfer InvoiceWaitingWithdraw=Faktur menunggu debit langsung InvoiceWaitingPaymentByBankTransfer=Faktur menunggu transfer kredit AmountToWithdraw=Jumlah yang harus ditarik +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=Tidak ada faktur terbuka untuk '%s' sedang menunggu. Buka tab '%s' pada kartu faktur untuk mengajukan permintaan. -NoSupplierInvoiceToWithdraw=Tidak ada faktur pemasok dengan 'Permintaan kredit langsung' terbuka sedang menunggu. Buka tab '%s' pada kartu faktur untuk mengajukan permintaan. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Pengguna Bertanggung Jawab WithdrawalsSetup=Setup pembayaran debit langsung CreditTransferSetup=Pengaturan transfer kredit @@ -41,6 +42,7 @@ CreditTransferStatistics=Statistik transfer kredit Rejects=Tolak LastWithdrawalReceipt=Tanda terima debit langsung %s terbaru MakeWithdrawRequest=Buat permintaan pembayaran debit langsung +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Buat Permintaan Transfer Kredit WithdrawRequestsDone=%s permintaan pembayaran debit langsung dicatat BankTransferRequestsDone=%s permintaan transfer kredit dicatat @@ -99,8 +101,11 @@ CreditDate=Kredit aktif WithdrawalFileNotCapable=Tidak dapat membuat file tanda terima penarikan untuk negara Anda %s (Negara Anda tidak didukung) ShowWithdraw=Tampilkan Pesanan Debit Langsung IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Namun, jika faktur memiliki setidaknya satu pesanan pembayaran debit langsung belum diproses, itu tidak akan ditetapkan sebagai dibayar untuk memungkinkan manajemen penarikan sebelumnya. -DoStandingOrdersBeforePayments=Tab ini memungkinkan Anda untuk meminta pesanan pembayaran debit langsung. Setelah selesai, masuk ke menu Bank->Pembayaran dengan debit langsung untuk menghasilkan dan mengelola pesanan debit langsung. Ketika pesanan debit langsung ditutup, pembayaran pada faktur akan secara otomatis dicatat, dan faktur ditutup jika sisa untuk membayar adalah nol. -DoCreditTransferBeforePayments=Tab ini memungkinkan Anda untuk meminta pesanan transfer kredit. Setelah selesai, masuk ke menu Bank->Pembayaran dengan transfer kredit untuk menghasilkan dan mengelola pesanan transfer kredit. Ketika pesanan transfer kredit ditutup, pembayaran pada faktur akan secara otomatis dicatat, dan faktur ditutup jika sisa untuk dibayarkan adalah nol. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=File pesanan debet CreditTransferFile=File transfer kredit SetToStatusSent=Setel ke status "File Terkirim" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Tidak dapat membuat permintaan debit langsung untu SepaMandate=Mandat Debit Langsung SEPA SepaMandateShort=Mandat SEPA PleaseReturnMandate=Silakan kembalikan formulir mandat ini melalui email ke %s atau melalui email ke -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Pengidentifikasi Kreditor CreditorName=Nama Kreditor SEPAFillForm=(B) Silakan isi semua kolom bertanda * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Tanggal eksekusi CreateForSepa=Buat berkas debet langsung ICS=Pengenal Kreditur - ICS +IDS=Debitor Identifier END_TO_END=Tag XML SEPA "EndToEndId" - Id unik yang ditetapkan untuk setiap transaksi USTRD=Tag XML SEPA "Tidak Terstruktur" ADDDAYS=Tambahkan hari ke Tanggal Eksekusi @@ -154,3 +160,4 @@ ErrorICSmissing=ICS hilang di rekening Bank %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Jumlah total pesanan debit langsung berbeda dari jumlah baris WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/id_ID/workflow.lang b/htdocs/langs/id_ID/workflow.lang index e03e5d5bab4..e33a89e1b0a 100644 --- a/htdocs/langs/id_ID/workflow.lang +++ b/htdocs/langs/id_ID/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Secara otomatis membuat pesanan penjualan s descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Secara otomatis membuat faktur pelanggan setelah proposal komersial ditandatangani (faktur baru akan memiliki jumlah yang sama dengan proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Secara otomatis membuat faktur pelanggan setelah kontrak divalidasi descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Secara otomatis membuat faktur pelanggan setelah pesanan penjualan ditutup (faktur baru akan memiliki jumlah yang sama dengan pesanan) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasifikasi sumber proposal tautan sebagai tertagih saat pesanan penjualan ditetapkan ke tagihan (dan jika jumlah pesanan sama dengan jumlah total proposal tautan yang ditandatangani) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klasifikasi sumber proposal tautan sebagai tertagih saat faktur pelanggan divalidasi (dan jika jumlah faktur sama dengan jumlah total proposal tautan yang ditandatangani) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klasifikasi sumber pesanan pen descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klasifikasi sumber pesanan penjualan tautan sebagai tertagih saat faktur pelanggan ditetapkan untuk dibayar (dan jika jumlah faktur sama dengan jumlah total pesanan tautan) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasifikasi sumber pesanan penjualan sumber tautan sebagai terkirim saat pengiriman divalidasi (dan jika jumlah yang dikirim oleh semua pengiriman sama dengan yang ada dalam pemesanan yan diperbaharui) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Klasifikasikan pesanan penjualan sumber tertaut sebagai dikirim saat pengiriman ditutup (dan jika jumlah yang dikirim oleh semua pengiriman sama dengan pesanan untuk diperbarui) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Klasifikasi sumber proposal vendor tautan sebagai tertagih ketika faktur vendor divalidasi (dan jika jumlah faktur sama dengan jumlah total proposal tautan) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klasifikasi sumber pesanan pembelian tautan sebagai tertagih saat faktur vendor divalidasi (dan jika jumlah faktur sama dengan jumlah total pesanan tautan) -descWORKFLOW_BILL_ON_RECEPTION=Klasifikasikan penerimaan menjadi "ditagih" ketika pesanan pemasok terkait divalidasi +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Tutup semua intervensi yang terkait dengan tiket saat tiket ditutup AutomaticCreation=Pembuatan Otomatis AutomaticClassification=Pengklasifikasian Otomatis # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klasifikasikan pengiriman sumber tertaut sebagai ditutup ketika faktur pelanggan divalidasi +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index 527cbcc8e22..bda8f4ce61b 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Ár NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Velta AccountingJournalType3=Innkaup AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index 540d764bad6..e08f54e6424 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Ath: Ekki eru sett lágmörk á PHP uppsetningu þína MaxSizeForUploadedFiles=Hámarks stærð fyrir skrár (0 til banna allir senda) -UseCaptchaCode=Nota myndræna kóða (Kapteinn) á innskráningarsíðu +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Full slóð að antivirus stjórn AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Fleiri breytur á lína @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -718,9 +718,9 @@ Permission34=Eyða vöru Permission36=Sjá / stjórna falinn vörur Permission38=Útflutningur vöru Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Lesa inngrip Permission62=Búa til / breyta inngrip @@ -766,9 +766,10 @@ Permission122=Búa til / breyta þriðja aðila sem tengist notandi Permission125=Eyða þriðja aðila sem tengist notandi Permission126=Útflutningur þriðja aðila Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Lesa þjónustuveitenda Permission147=Lesa Stats Permission151=Read direct debit payment orders @@ -883,6 +884,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -969,6 +973,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Skipulag vistuð SetupNotSaved=Setup not saved @@ -1122,7 +1129,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=Í lok mánaðar -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Alltaf virkar Upgrade=Uppfærsla @@ -1187,7 +1194,7 @@ BankModuleNotActive=Bankareikninga mát ekki virkt ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Alerts -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. ##### Proposals ##### PropalSetup=Auglýsing tillögur mát skipulag ProposalsNumberingModules=Auglýsing tillögu tala mát @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1949,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server @@ -2057,18 +2069,30 @@ EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2089,7 +2113,7 @@ ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2168,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2206,12 +2233,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2247,35 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +NoName=No name +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: diff --git a/htdocs/langs/is_IS/companies.lang b/htdocs/langs/is_IS/companies.lang index d7e1a85f6e1..f4d4a1f7b2a 100644 --- a/htdocs/langs/is_IS/companies.lang +++ b/htdocs/langs/is_IS/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Heimilisfang State=Ríki / Hérað +StateId=State ID StateCode=State/Province code StateShort=State Region=Svæði Region-State=Region - State Country=Land CountryCode=Landsnúmer -CountryId=Land id +CountryId=Country ID Phone=Sími PhoneShort=Sími Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Aðrir ProfId6ShortCM=- ProfId1CO=Prof Id 1 (Rut) diff --git a/htdocs/langs/is_IS/compta.lang b/htdocs/langs/is_IS/compta.lang index eeedada04b2..2dbab4441e4 100644 --- a/htdocs/langs/is_IS/compta.lang +++ b/htdocs/langs/is_IS/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Jafnvægi Debit=Debit Credit=Greiðslukort +AccountingDebit=Debit +AccountingCredit=Greiðslukort Piece=Accounting Doc. AmountHTVATRealReceived=Net safnað AmountHTVATRealPaid=Net greitt @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Mode %sVAT on commitment accounting%s. CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Calculation mode AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/is_IS/contracts.lang b/htdocs/langs/is_IS/contracts.lang index ecc5d4fa482..c06ac849add 100644 --- a/htdocs/langs/is_IS/contracts.lang +++ b/htdocs/langs/is_IS/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contracts/Subscriptions ContractsAndLine=Contracts and line of contracts Contract=Samningur ContractLine=Contract line +ContractLines=Contract lines Closing=Closing NoContracts=Engir samningar MenuServices=Þjónusta @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Færa þjónustuna í annað samning. ConfirmMoveToAnotherContract=Ég choosed ný markmið samningsins og staðfesta mig langar til að færa þessa þjónustu inn í þennan samning. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Endurnýja samning línu (númer %s ) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Gildistími NoExpiredServices=Engar útrunnin virk þjónusta ListOfServicesToExpireWithDuration=List of Services to expire in %s days @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Undirritun samnings viðskiptavina sam HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/is_IS/datapolicy.lang b/htdocs/langs/is_IS/datapolicy.lang new file mode 100644 index 00000000000..7911560077e --- /dev/null +++ b/htdocs/langs/is_IS/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Viðskiptavinur +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Birgir +DATAPOLICY_CONTACT_CLIENT = Viðskiptavinur +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Birgir +DATAPOLICY_ADHERENT = Aðildarríkin +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/is_IS/dict.lang b/htdocs/langs/is_IS/dict.lang index 0f681b0be1e..604ae32478b 100644 --- a/htdocs/langs/is_IS/dict.lang +++ b/htdocs/langs/is_IS/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holland CountryHU=Ungverjaland CountryRU=Rússland CountrySE=Svíþjóð -CountryCI=Ivoiry Coast +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerún @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Frú +CivilityMMEShort=Frú CivilityMR=Herra +CivilityMRShort=Herra CivilityMLE=Fröken CivilityMTRE=Master CivilityDR=Doctor diff --git a/htdocs/langs/is_IS/ecm.lang b/htdocs/langs/is_IS/ecm.lang index 04144398689..fcab57a8694 100644 --- a/htdocs/langs/is_IS/ecm.lang +++ b/htdocs/langs/is_IS/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Handbók skrá ECMSectionAuto=Sjálfvirk skrá ECMSectionsManual=Handbók tré ECMSectionsAuto=Sjálfvirk tré +ECMSectionsMedias=Medias tree ECMSections=Möppur ECMRoot=ECM Root ECMNewSection=Ný mappa @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Number of files in sub-directories ECMCreationUser=Creator ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Sjálfvirkar framkvæmdarstjóra eru fyllt sjálfkrafa þegar bætt skjölum frá kort af frumefni.
    * Manual framkvæmdarstjóra hægt að nota til að vista skjölin ekki tengd við ákveðna hluti. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Listinn %s hefur verið eytt. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Leita eftir leitarorðum diff --git a/htdocs/langs/is_IS/errors.lang b/htdocs/langs/is_IS/errors.lang index a6d3ae56134..d8282e3e62a 100644 --- a/htdocs/langs/is_IS/errors.lang +++ b/htdocs/langs/is_IS/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/is_IS/externalsite.lang b/htdocs/langs/is_IS/externalsite.lang deleted file mode 100644 index 871f44e7367..00000000000 --- a/htdocs/langs/is_IS/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Skipulag tengjast ytri vef -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/is_IS/ftp.lang b/htdocs/langs/is_IS/ftp.lang deleted file mode 100644 index b5a002890ed..00000000000 --- a/htdocs/langs/is_IS/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Viðskiptavinur mát skipulag -NewFTPClient=Nýr FTP tengingu skipulag -FTPArea=FTP svæði -FTPAreaDesc=Þessi skjár sýnir þér innihald FTP þjóninum að skoða -SetupOfFTPClientModuleNotComplete=Uppsetning á FTP viðskiptavinur eining virðist ekki vera heill -FTPFeatureNotSupportedByYourPHP=Your PHP styður ekki FTP aðgerðir -FailedToConnectToFTPServer=Tókst ekki að tengjast FTP miðlara (miðlara %s, höfn %s) -FailedToConnectToFTPServerWithCredentials=Ekki tókst að skrá þig inn á FTP þjóninum með skilgreint tenging / lykilorð -FTPFailedToRemoveFile=Ekki tókst að fjarlægja skrá %s. -FTPFailedToRemoveDir=Ekki tókst að fjarlægja skrá %s (Athugaðu heimildir og skrá er tóm). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/is_IS/holiday.lang b/htdocs/langs/is_IS/holiday.lang index 2afc9da4ad8..465cc8fb4fa 100644 --- a/htdocs/langs/is_IS/holiday.lang +++ b/htdocs/langs/is_IS/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Upphafsdagur @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Ástæða UserCP=Notandi ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Notendur +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang index 538f6d35faf..640969835b4 100644 --- a/htdocs/langs/is_IS/install.lang +++ b/htdocs/langs/is_IS/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Stillingarskráin %s er writable. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Þetta PHP styður breytur POST og FÁ. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Þetta PHP styður fundur. @@ -16,13 +17,6 @@ PHPMemoryOK=Your PHP max fundur minnið er stillt á %s . Þetta ætti a PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Click here for a more detailed test ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. ErrorDirDoesNotExists=Listinn %s er ekki til. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,9 +24,11 @@ ErrorWrongValueForParameter=Þú gætir hafa slegið rangt gildi fyrir breytu ' ErrorFailedToCreateDatabase=Ekki tókst að búa til gagnagrunn ' %s '. ErrorFailedToConnectToDatabase=Tókst ekki að tengjast við gagnagrunn ' %s '. ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. -ErrorPHPVersionTooLow=PHP útgáfa of gamall. Útgáfa %s er krafist. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=%s Database 'er þegar til. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Ef skráð er þegar til, farðu til baka og veljið "Create gagnagrunninum" valmöguleikann. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/is_IS/mails.lang b/htdocs/langs/is_IS/mails.lang index 02582c67be2..f941da9fa45 100644 --- a/htdocs/langs/is_IS/mails.lang +++ b/htdocs/langs/is_IS/mails.lang @@ -7,10 +7,10 @@ MailCard=Emailing kort MailRecipients=Viðtakendur MailRecipient=Viðtakandi MailTitle=Lýsing -MailFrom=Sendandi +MailFrom=Frá MailErrorsTo=Villur við MailReply=Svara -MailTo=Receiver (s) +MailTo=Senda á MailToUsers=To user(s) MailCC=Afrita á MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang index 349fa522956..fe7b5f6245f 100644 --- a/htdocs/langs/is_IS/main.lang +++ b/htdocs/langs/is_IS/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Þýðing +Translations=Translations CurrentTimeZone=PHP-miðlara Tímasvæði EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Gildir Approve=Samþykkja Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Opnaðu Upload=Upload ToLink=Link Select=Velja @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Lykilorð -PasswordRetype=Sláðu lykilorðið þitt +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Athugaðu að einhver fjöldi af lögun / modules ert fatlaður í þessum mótmælum. Name=Nafn NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Lýsing DescriptionOfLine=Lýsing lína DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Action @@ -344,7 +353,7 @@ KiloBytes=Kílóbæti MegaBytes=Megabæti GigaBytes=Gígabæta TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Viðburðir um þennan notanda ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s seint ToDo=Til að gera Completed=Completed @@ -517,6 +527,7 @@ or=eða Other=Önnur Others=Aðrir OtherInformations=Other information +Workflow=Workflow Quantity=Magn Qty=Magn ChangedBy=Breytt af @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Meðfylgjandi skrár og skjöl JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=ÁÁÁÁ-MM DateFormatYYYYMMDD=ÁÁÁÁ-MM-DD DateFormatYYYYMMDDHHMM=ÁÁÁÁ-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=No links MoveBox=Move widget Offered=Tilboð NotEnoughPermissions=Þú hefur ekki leyfi til að þessar aðgerðir +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session nafn Method=Aðferð Receive=Fá @@ -798,6 +811,7 @@ URLPhoto=Url á mynd / lógó SetLinkToAnotherThirdParty=Tengill á öðrum þriðja aðila LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Samningar SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Verð +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Innri notandi +ExternalUser=Ytri notandi diff --git a/htdocs/langs/is_IS/members.lang b/htdocs/langs/is_IS/members.lang index 14b9bce68fc..0946babd29b 100644 --- a/htdocs/langs/is_IS/members.lang +++ b/htdocs/langs/is_IS/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Annar aðili (nafn: %s , tenging: ErrorUserPermissionAllowsToLinksToItselfOnly=Af öryggisástæðum verður þú að vera veitt leyfi til að breyta öllum notendum að vera fær um að tengja félagi til notanda sem er ekki þinn. SetLinkToUser=Tengill á Dolibarr notanda SetLinkToThirdParty=Tengill á Dolibarr þriðja aðila +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Listi yfir meðlimi MembersListToValid=Listi yfir meðlimi drög (verður staðfest) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Aðildarríkin persónuskilríki +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Nýr meðlimur MemberType=Aðildarríkin tegund MemberTypeId=Aðildarríkin Auðkenni @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=New framlag NewSubscriptionDesc=Þetta eyðublað er hægt að taka áskriftina þína sem nýr aðili að stofnun. Ef þú vilt að endurnýja áskriftina þína (ef þegar meðlimur), vinsamlegast hafðu samband við grunn borð í stað með tölvupósti %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Lengd +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Seint SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Efni meðlimur kortið # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Velta (fyrir fyrirtæki) eða fjárhagsáætlun (um stofnun) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Stökkva á samþætt netinu greiðslu síðu +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index 339ff19aebd..5cef0d64a13 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Viðskiptavinur tillögu staðfestar Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Auglýsing tillögu send með pósti Notify_WITHDRAW_TRANSMIT=Gírskipting afturköllun Notify_WITHDRAW_CREDIT=Credit afturköllun @@ -181,6 +183,7 @@ SizeUnitfoot=fótur SizeUnitpoint=point BugTracker=Bug rekja spor einhvers SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Til baka innskráningarsíðu AuthenticationDoesNotAllowSendNewPassword=Auðkenning háttur er %s .
    Í þessum ham, Dolibarr geta ekki veit né breyta lykilorðinu þínu.
    Hafðu samband við kerfisstjóra ef þú vilt breyta lykilorðinu þínu. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Loka Autofill = Autofill + +# externalsite +ExternalSiteSetup=Skipulag tengjast ytri vef +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Ekki tókst að fjarlægja skrá %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/is_IS/stocks.lang b/htdocs/langs/is_IS/stocks.lang index 2c70b2404ab..64a5fccd3d3 100644 --- a/htdocs/langs/is_IS/stocks.lang +++ b/htdocs/langs/is_IS/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Byrja InventoryStartedShort=Started ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/is_IS/ticket.lang b/htdocs/langs/is_IS/ticket.lang index 5fa6eb23f5b..ce075f48640 100644 --- a/htdocs/langs/is_IS/ticket.lang +++ b/htdocs/langs/is_IS/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Undirskrift -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Nýr notandi NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/is_IS/users.lang b/htdocs/langs/is_IS/users.lang index 987d34b0cf7..7501d233740 100644 --- a/htdocs/langs/is_IS/users.lang +++ b/htdocs/langs/is_IS/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Fjarlægja úr hópi PasswordChangedAndSentTo=Lykilorð breyst og sendur til %s . PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Beiðni um að breyta lykilorðinu fyrir %s sent til %s . -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Notendur & Groups @@ -68,7 +68,6 @@ CreateDolibarrLogin=Búa til notanda CreateDolibarrThirdParty=Búa til þriðja aðila LoginAccountDisableInDolibarr=Reikningur óvirkur í Dolibarr. UsePersonalValue=Nota persónulega gildi -InternalUser=Innri notandi ExportDataset_user_1=Users and their properties DomainUser=Lén notanda %s Reactivate=Endurvekja @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/it_CH/admin.lang b/htdocs/langs/it_CH/admin.lang index c5ab56cb8d8..3b3a8d2c685 100644 --- a/htdocs/langs/it_CH/admin.lang +++ b/htdocs/langs/it_CH/admin.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax diff --git a/htdocs/langs/it_CH/propal.lang b/htdocs/langs/it_CH/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/it_CH/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index b9f2e8501ad..dcb26040ba9 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -24,33 +24,34 @@ ConfigAccountingExpert=Configurazione del modulo contabilità (doppia partita) Journalization=Giornali Journals=Giornali JournalFinancial=Giornali finanziari -BackToChartofaccounts=Ritorna alla lista dell'account +BackToChartofaccounts=Ritorna alla lista dei conti Chartofaccounts=Piano dei conti ChartOfSubaccounts=Piano dei conti individuali -ChartOfIndividualAccountsOfSubsidiaryLedger=Piano dei conti individuali del libro mastro sussidiario -CurrentDedicatedAccountingAccount=Attuale account dedicato -AssignDedicatedAccountingAccount=Nuovo account da assegnare +ChartOfIndividualAccountsOfSubsidiaryLedger=Piano dei conti individuali del registro secondario +CurrentDedicatedAccountingAccount=Conto attuale dedicato +AssignDedicatedAccountingAccount=Conto nuovo da assegnare InvoiceLabel=Etichetta fattura -OverviewOfAmountOfLinesNotBound=Panoramica della quantità di linee non collegate a un account contabile -OverviewOfAmountOfLinesBound=Panoramica della quantità di linee già associate a un account contabile +OverviewOfAmountOfLinesNotBound=Panoramica dell'importo delle righe non vincolate ad una voce del piano dei conti +OverviewOfAmountOfLinesBound=Panoramica dell'importo delle righe già vincolate ad una voce del piano dei conti OtherInfo=Altre informazioni DeleteCptCategory=Rimuovi conto corrente dal gruppo ConfirmDeleteCptCategory=Sei sicuro di voler rimuovere questo account contabile dal gruppo di account contabilità? JournalizationInLedgerStatus=Stato delle registrazioni -AlreadyInGeneralLedger=Già trasferito su giornali e libri contabili contabili +AlreadyInGeneralLedger=Già trasferito in contabilità e nel libro mastro NotYetInGeneralLedger=Non ancora trasferito ai giornali di contabilità e al libro mastro GroupIsEmptyCheckSetup=Il gruppo è vuoto, controlla le impostazioni del gruppo personalizzato di contabilità DetailByAccount=Mostra dettagli dall'account AccountWithNonZeroValues=Account con valori non-zero -ListOfAccounts=Lista degli account +ListOfAccounts=Elenco dei conti CountriesInEEC=Paesi nella CEE CountriesNotInEEC=Paesi al di fuori della CEE CountriesInEECExceptMe=Paesi nella CEE eccetto %s CountriesExceptMe=Tutti i paesi eccetto %s AccountantFiles=Esporta documenti di origine -ExportAccountingSourceDocHelp=Con questo strumento puoi esportare gli eventi di origine (elenco in CSV e PDF) utilizzati per generare la tua contabilità. +ExportAccountingSourceDocHelp=Con questo strumento puoi cercare ed esportare gli eventi di origine utilizzati per generare la tua contabilità.
    Il file ZIP esportato conterrà gli elenchi degli elementi richiesti in CSV, nonché i relativi file allegati nel loro formato originale (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Per esportare i tuoi diari, usa la voce di menu %s - %s. -VueByAccountAccounting=Visualizza per conto contabile +ExportAccountingProjectHelp=Specificare il progetto se è necessario un report contabile solo per un progetto specifico. Le note spese e i pagamenti dei prestiti non sono inclusi nei rapporti di progetto. +VueByAccountAccounting=Elenco movimenti per conto contabile VueBySubAccountAccounting=Visualizza per conto secondario contabile MainAccountForCustomersNotDefined=Account principale di contabilità per i clienti non definito nel setup @@ -58,32 +59,33 @@ MainAccountForSuppliersNotDefined=Account principale di contabilità per fornito MainAccountForUsersNotDefined=Account principale di contabilità per gli utenti non definito nel setup MainAccountForVatPaymentNotDefined=Account principale di contabilità per il pagamento dell'IVA non definito nel setup MainAccountForSubscriptionPaymentNotDefined=Account principale di contabilità per il pagamento degli abbonamenti non definito nel setup +UserAccountNotDefined=Conto Contabile per l'utente non definito nella configurazione AccountancyArea=Area di contabilità AccountancyAreaDescIntro=L'utilizzo del modulo di contabilità è effettuato in diversi step: AccountancyAreaDescActionOnce=Le seguenti azioni vengono di solito eseguite una volta sola, o una volta all'anno... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting +AccountancyAreaDescActionOnceBis=I passaggi successivi dovrebbero essere eseguiti per farti risparmiare tempo in futuro suggerendoti automaticamente il conto di contabilità predefinito corretto durante il trasferimento dei dati in contabilità AccountancyAreaDescActionFreq=Le seguenti azioni vengono di solito eseguite ogni mese, settimana o giorno per le grandi compagnie... -AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s -AccountancyAreaDescChartModel=PASSAGGIO %s: verifica l'esistenza di un modello di piano dei conti o creane uno dal menu %s -AccountancyAreaDescChart=PASSAGGIO %s: selezionare e/o completare il piano dei conti dal menu %s +AccountancyAreaDescJournalSetup=STEP %s: controlla il contenuto dell'elenco dei tuoi giornali dal menu %s +AccountancyAreaDescChartModel=STEP %s: verifica l'esistenza di un modello di piano dei conti o creane uno dal menu %s +AccountancyAreaDescChart=STEP %s: selezionare e/o completare il piano dei conti dal menu %s AccountancyAreaDescVat=STEP %s: Definisci le voci del piano dei conti per ogni IVA/tassa. Per fare ciò usa il menu %s. -AccountancyAreaDescDefault=STEP %s: Definisci gli account di contabilità di default. Per questo, usa la voce menù %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. +AccountancyAreaDescDefault=STEP %s: Definisci i conti di contabilità di default. Per questo, usa la voce menù %s. +AccountancyAreaDescExpenseReport=PASSAGGIO %s: definire i conti contabili predefiniti per ogni tipo di nota spese. A tale scopo, utilizzare la voce di menu %s. AccountancyAreaDescSal=STEP %s: Definisci le voci del piano dei conti per gli stipendi. Per fare ciò usa il menu %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. +AccountancyAreaDescContrib=PASSAGGIO %s: Definire i conti contabili predefiniti per le imposte (spese speciali). A tale scopo, utilizzare la voce di menu %s. AccountancyAreaDescDonation=STEP %s: Definisci le voci del piano dei conti per le donazioni. Per fare ciò usa il menu %s. -AccountancyAreaDescSubscription=STEP %s: Definisci gli account di contabilità di default per le sottoscrizioni membro. Per questo, usa la voce di menù %s. -AccountancyAreaDescMisc=STEP %s: Definisci l'account obbligatorio e gli account di contabilità per le transazioni varie. Per questo, usa la voce di menù %s -AccountancyAreaDescLoan=STEP %s: Definisci gli account di contabilità di default per i prestiti. Per questo, usa la voce di menù %s. +AccountancyAreaDescSubscription=STEP %s: Definisci i conti di contabilità di default per le sottoscrizioni dei membri. Per questo, usa la voce di menù %s. +AccountancyAreaDescMisc=STEP %s: Definisci il conto obbligatorio e il conto di contabilità per i movimenti vari. Per questo, usa la voce di menù %s +AccountancyAreaDescLoan=STEP %s: Definisci i conti di contabilità di default per i prestiti. Per questo, usa la voce di menù %s. AccountancyAreaDescBank=STEP %s: Definisci le voci del piano dei conti per i giornali per ogni banca o conto finanziario. Per fare ciò usa il menu %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. +AccountancyAreaDescProd=PASSO %s: Definisci conti contabili sui tuoi prodotti/servizi. A tale scopo, utilizzare la voce di menu %s. -AccountancyAreaDescBind=STEP %s: Controlla i legami fra queste %s linee esistenti e l'account di contabilità, così che l'applicazione sarà in grado di registrare le transazioni nel Libro contabile in un click. Completa i legami mancanti. Per questo, usa la voce di menù %s. -AccountancyAreaDescWriteRecords=STEP %s: Scrivi le transazioni nel piano contabile. Per fare ciò, vai nel menu %s, e clicca sul bottone %s. -AccountancyAreaDescAnalyze=STEP %s: Aggiunti o modifica le transazioni esistenti e genera i report e exportali. +AccountancyAreaDescBind=STEP %s: Controlla i legami fra queste %s linee esistenti e il conto di contabilità, così che l'applicazione sarà in grado di registrare i movimenti nel Libro contabile in un click. Completa i legami mancanti. Per questo, usa la voce di menù %s. +AccountancyAreaDescWriteRecords=STEP %s: Scrivi i movimenti nel libro mastro. Per fare ciò, vai nel menu %s, e clicca sul bottone %s. +AccountancyAreaDescAnalyze=STEP %s: Aggiungi o modifica i movimenti esistenti e genera i report e le esportazioni. AccountancyAreaDescClosePeriod=STEP %s: Chiudo il periodo così non verranno fatte modifiche in futuro. @@ -96,7 +98,7 @@ AccountAccountingShort=Conto SubledgerAccount=Conto del registro secondario SubledgerAccountLabel=Etichetta del conto Registro secondario ShowAccountingAccount=Mostra conti di contabilità -ShowAccountingJournal=Mostra diario contabile +ShowAccountingJournal=Mostra giornale ShowAccountingAccountInLedger=Mostra conto contabile nel libro mastro ShowAccountingAccountInJournals=Mostra conto contabile nei giornali di registrazione AccountAccountingSuggest=Conto suggerito per contabilità @@ -112,23 +114,23 @@ MenuAccountancyClosure=Chiusura MenuAccountancyValidationMovements=Convalida i movimenti ProductsBinding=Conti prodotti TransferInAccounting=Trasferimento in contabilità -RegistrationInAccounting=Recording in accounting +RegistrationInAccounting=Registrazione in contabilità Binding=Associazione ai conti -CustomersVentilation=Collegamento fatture attive +CustomersVentilation=Associa fatture attive SuppliersVentilation=Associa fattura fornitore ExpenseReportsVentilation=Associa nota spese -CreateMvts=Crea nuova transazione -UpdateMvts=Modifica una transazione -ValidTransaction=Valida transazione -WriteBookKeeping=Record transactions in accounting +CreateMvts=Crea nuovo movimento +UpdateMvts=Modifica movimento +ValidTransaction=Convalida movimento +WriteBookKeeping=Registra i movimenti in contabilità Bookkeeping=Libro contabile -BookkeepingSubAccount=Subledger +BookkeepingSubAccount=Conto secondario AccountBalance=Saldo ObjectsRef=Sorgente oggetto in riferimento CAHTF=Totale acquisto al lordo delle imposte TotalExpenseReport=Rapporto spese totale InvoiceLines=Righe di fatture da vincolare -InvoiceLinesDone=Righe di fatture bloccate +InvoiceLinesDone=Righe di fatture vincolate ExpenseReportLines=Linee di note spese da associare ExpenseReportLinesDone=Linee vincolate di note spese IntoAccount=Collega linee con il piano dei conti @@ -160,43 +162,47 @@ ACCOUNTING_MANAGE_ZERO=Consentire di gestire un diverso numero di zeri alla fine BANK_DISABLE_DIRECT_INPUT=Disabilita la registrazione diretta della transazione nel conto bancario ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Abilita la bozza di esportazione sul giornale ACCOUNTANCY_COMBO_FOR_AUX=Abilita l'elenco combinato per l'account sussidiario (potrebbe essere lento se hai molte terze parti, interrompere la capacità di cercare su una parte del valore) -ACCOUNTING_DATE_START_BINDING=Definisci una data per iniziare la rilegatura e il trasferimento in contabilità. Al di sotto di tale data, le transazioni non saranno trasferite in contabilità. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Al momento del trasferimento contabile, selezionare la visualizzazione del periodo per impostazione predefinita +ACCOUNTING_DATE_START_BINDING=Definisci una data per iniziare il consolidamento e il trasferimento in contabilità. Al di sotto di tale data, i movimenti non saranno trasferiti in contabilità. +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Al momento del trasferimento contabile, qual è il periodo selezionato di default -ACCOUNTING_SELL_JOURNAL=Giornale Vendite -ACCOUNTING_PURCHASE_JOURNAL=Giornale Acquisti -ACCOUNTING_MISCELLANEOUS_JOURNAL=Giornale Varie +ACCOUNTING_SELL_JOURNAL=Giornale vendite (vendite e resi) +ACCOUNTING_PURCHASE_JOURNAL=Giornale acquisti (acquisti e resi) +ACCOUNTING_BANK_JOURNAL=Giornale di cassa (incassi ed esborsi) ACCOUNTING_EXPENSEREPORT_JOURNAL=Giornale Note Spese -ACCOUNTING_SOCIAL_JOURNAL=Giornale Sociale +ACCOUNTING_MISCELLANEOUS_JOURNAL=Giornale generale ACCOUNTING_HAS_NEW_JOURNAL=Ha un nuovo giornale +ACCOUNTING_INVENTORY_JOURNAL=Giornale inventario +ACCOUNTING_SOCIAL_JOURNAL=Giornale Sociale ACCOUNTING_RESULT_PROFIT=Conto contabile risultante (profitto) ACCOUNTING_RESULT_LOSS=Conto contabile risultato (perdita) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Giornale di chiusura -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conto contabile del bonifico bancario transitorio +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Conto di trasferimento bancario transitorio -ACCOUNTING_ACCOUNT_SUSPENSE=Conto di contabilità di attesa -DONATION_ACCOUNTINGACCOUNT=Conto di contabilità per registrare le donazioni -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conto contabile per registrare gli abbonamenti +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Conto contabile per impostazione predefinita per registrare il deposito del cliente -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Memorizzare il conto cliente come conto individuale nel libro mastro sussidiario per le righe di acconto (se disabilitato, il conto individuale per le righe di acconto rimarrà vuoto) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Memorizzare il conto fornitore come conto individuale nel libro mastro sussidiario per le righe di acconto (se disabilitato, il conto individuale per le righe di acconto rimarrà vuoto) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Conto di contabilità predefinito per i prodotti acquistati (se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Conto contabile predefinito per i prodotti acquistati in CEE (usato se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Conto contabile predefinito per i prodotti acquistati e importati al di fuori della CEE (usato se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conto di contabilità predefinito per i prodotti venduti (se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Conto contabile per impostazione predefinita per i prodotti venduti in CEE (utilizzato se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Conto contabile per impostazione predefinita per l'esportazione dei prodotti venduti fuori dalla CEE (utilizzato se non definito nella scheda prodotto) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Conto di contabilità per impostazione predefinita per i servizi acquistati (utilizzato se non definito nel foglio di servizio) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Conto contabile per impostazione predefinita per i servizi acquistati in CEE (usato se non definito nel foglio di servizio) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Conto contabile per impostazione predefinita per i servizi acquistati e importati al di fuori della CEE (usato se non definito nel foglio di servizio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conto di contabilità per impostazione predefinita per i servizi venduti (utilizzato se non definito nel foglio di servizio) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Conto contabile predefinito per i servizi venduti nella CEE (solo se non definito nella scheda servizio) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Conto contabile predefinito per i servizi venduti ed esportati fuori dalla CEE (solo se non definito nella scheda servizio) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tipo documento Docdate=Data @@ -210,68 +216,68 @@ Lettering=Impressioni Codejournal=Giornale JournalLabel=Etichetta del giornale NumPiece=Numero del pezzo -TransactionNumShort=Num. transazione -AccountingCategory=Gruppo personalizzato +TransactionNumShort=Num. movimento +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Raggruppa per conto di contabilità generale -GroupBySubAccountAccounting=Raggruppa per conto subledger +GroupBySubAccountAccounting=Raggruppa per conto secondario AccountingAccountGroupsDesc=Qui puoi definire alcuni gruppi di conti contabili. Saranno utilizzati per rapporti contabili personalizzati. ByAccounts=Per conto ByPredefinedAccountGroups=Per gruppi predefiniti ByPersonalizedAccountGroups=Gruppi personalizzati ByYear=Per anno NotMatch=Non impostato -DeleteMvt=Delete some lines from accounting +DeleteMvt=Elimina alcune righe dalla contabilità DelMonth=Mese da cancellare DelYear=Anno da cancellare DelJournal=Giornale da cancellare -ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) +ConfirmDeleteMvt=Ciò cancellerà tutte le righe contabili per l'anno/mese e/o per un giornale di registrazione specifico (è richiesto almeno un criterio). Dovrai riutilizzare la funzione '%s' per riportare il record eliminato nel libro mastro. +ConfirmDeleteMvtPartial=Questo cancellerà la transazione dalla contabilità (tutte le righe relative alla stessa transazione verranno eliminate) FinanceJournal=Giornale delle finanze ExpenseReportsJournal=Rapporto spese DescFinanceJournal=Giornale finanziario che include tutti i tipi di pagamenti per conto bancario DescJournalOnlyBindedVisible=Questa è una vista di registrazione che è vincolata a un conto contabile e può essere registrata nei giornali e nel libro mastro. VATAccountNotDefined=Conto per IVA non definito ThirdpartyAccountNotDefined=Conto per terze parti non definito -ProductAccountNotDefined=Account per prodotto non definito +ProductAccountNotDefined=Conto per prodotto non definito FeeAccountNotDefined=Conto per tassa non definito BankAccountNotDefined=Conto per banca non definito CustomerInvoicePayment=Pagamento fattura attiva ThirdPartyAccount=Conto terze parti NewAccountingMvt=Nuova transazione -NumMvts=Numero della transazione +NumMvts=Numero movimento ListeMvts=Lista dei movimenti ErrorDebitCredit=Debito e Credito non possono avere un valore contemporaneamente AddCompteFromBK=Aggiungi conto di contabilità al gruppo ReportThirdParty=Elenca conti di terze parti DescThirdPartyReport=Consulta qui l'elenco dei clienti e fornitori di terze parti e i loro conti contabili -ListAccounts=Lista delle voci del piano dei conti +ListAccounts=Elenco delle voci del piano dei conti UnknownAccountForThirdparty=Conto di terze parti sconosciuto. Useremo %s UnknownAccountForThirdpartyBlocking=Conto di terze parti sconosciuto. Errore di blocco -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Account subledger non definito o di terze parti o utente sconosciuto. Useremo %s -ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Terze parti sconosciuta e sottoconti non definiti nel pagamento. Manterremo vuoto il valore sottoconto dell'account. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Account subledger non definito o di terze parti o utente sconosciuto. Errore di blocco. +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Account secondario non definito o terze parte / utente sconosciuto. Verrà usato %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Terza parte sconosciuta e conto secondario non definito nel pagamento. Verrà mantenuto vuoto il valore del conto secondario. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Account secondario non definito o terze parte / utente sconosciuto. Errore bloccante. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third-party account and waiting account not defined. Blocking error -PaymentsNotLinkedToProduct=Payment not linked to any product / service +PaymentsNotLinkedToProduct=Pagamento non collegato a nessun prodotto / servizio OpeningBalance=Saldo di apertura ShowOpeningBalance=Mostra bilancio di apertura HideOpeningBalance=Nascondi bilancio di apertura ShowSubtotalByGroup=Mostra il totale parziale per livello Pcgtype=Gruppo di conto -PcgtypeDesc=Il gruppo di conti viene utilizzato come criterio 'filtro' e 'raggruppamento' predefiniti per alcuni report contabili. Ad esempio, "REDDITO" o "SPESA" sono utilizzati come gruppi per la contabilità dei prodotti per creare il rapporto spese / entrate. +PcgtypeDesc=Il gruppo di conti viene utilizzato come criterio 'filtro' e 'raggruppamento' predefiniti per alcuni report contabili. Ad esempio, "RICAVO" o "COSTO" sono utilizzati come gruppi per la contabilità dei prodotti per creare il rapporto costi / ricavi. Reconcilable=riconciliabile TotalVente=Fatturato totale al lordo delle imposte TotalMarge=Margine totale sulle vendite -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -279,49 +285,50 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Chiusura annuale -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +DescClosure=Consulta qui il numero di movimenti per mese non ancora convalidati e bloccati +OverviewOfMovementsNotValidated=Panoramica dei movimenti non convalidati e bloccati +AllMovementsWereRecordedAsValidated=Tutti i movimenti sono stati registrati come convalidati e bloccati +NotAllMovementsCouldBeRecordedAsValidated=Non tutti i movimenti possono essere registrati come convalidati e bloccati +ValidateMovements=Convalida e blocca i movimenti... DescValidateMovements=Qualsiasi modifica o cancellazione di scrittura, lettura e cancellazione sarà vietata. Tutte le voci per un esercizio devono essere convalidate altrimenti la chiusura non sarà possibile ValidateHistory=Collega automaticamente AutomaticBindingDone=Associazioni automatiche eseguite (%s) - Associazioni automatiche non possibili per alcuni record (%s) -ErrorAccountancyCodeIsAlreadyUse=Errore, non puoi cancellare la voce del piano dei conti perché è utilizzata -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movimento non correttamente bilanciato. Debito = %s e credito = %s Balancing=Balancing FicheVentilation=Binding card -GeneralLedgerIsWritten=Transazioni scritte nel libro contabile -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Lista di prodotti non collegati a nessun piano dei conti +GeneralLedgerIsWritten=Movimenti scritti nel libro mastro contabile +GeneralLedgerSomeRecordWasNotRecorded=Alcuni movimenti non possono essere contabilizzati. Se non ci sono altri messaggi di errore, significa probabilmente che sono già stati contabilizzati. +NoNewRecordSaved=Nessun record da trasferire in contabilità +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Cambia il piano dei conti Accounted=Accounted in ledger NotYetAccounted=Non ancora trasferito in contabilità ShowTutorial=Mostra tutorial NotReconciled=Non conciliata -WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view -AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +WarningRecordWithoutSubledgerAreExcluded=Attenzione, tutte le righe senza conto secondario definito vengono filtrate ed escluse da questa visualizzazione +AccountRemovedFromCurrentChartOfAccount=Conto contabile che non esiste nel piano dei conti corrente ## Admin BindingOptions=Opzioni di rilegatura ApplyMassCategories=Applica categorie di massa AddAccountFromBookKeepingWithNoCategories=Available account not yet in the personalized group CategoryDeleted=Category for the accounting account has been removed -AccountingJournals=Libri contabili -AccountingJournal=Accounting journal -NewAccountingJournal=New accounting journal -ShowAccountingJournal=Mostra diario contabile -NatureOfJournal=Natura del diario -AccountingJournalType1=Miscellaneous operations +AccountingJournals=Giornali (causali) +AccountingJournal=Giornale (causale) +NewAccountingJournal=Nuovo giornale +ShowAccountingJournal=Mostra giornale +NatureOfJournal=Natura del giornale +AccountingJournalType1=Operazioni varie AccountingJournalType2=Vendite AccountingJournalType3=Acquisti AccountingJournalType4=Banca -AccountingJournalType5=Rimborsi spese +AccountingJournalType5=Note spese AccountingJournalType8=Inventario -AccountingJournalType9=Has-new +AccountingJournalType9=Apertura (nuovo anno) +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Questo giornale è già in uso AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -329,13 +336,15 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disabilita vincolante e trasferimento in contabilità sulle vendite (le fatture dei clienti non verranno prese in considerazione in contabilità) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disabilita vincolante e trasferimento in contabilità sugli acquisti (le fatture fornitore non verranno prese in considerazione in contabilità) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disabilita binding e trasferimento in contabilità sulle note spese (le note spese non verranno prese in considerazione in contabilità) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) -DateValidationAndLock=Date validation and lock +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Contrassegna le righe esportate come Esportate (per modificare una riga è necessario eliminare l'intera transazione e ritrasferirla in contabilità) +NotifiedValidationDate=Convalida e Blocca le voci esportate (stesso effetto della funzione "%s", la modifica e la cancellazione delle righe NON sarà SICURAMENTE possibile) +DateValidationAndLock=Convalida e blocco della data ConfirmExportFile=Conferma della generazione del file di esportazione contabile? -ExportDraftJournal=Export draft journal +ExportDraftJournal=Esporta giornale in bozza Modelcsv=Modello di esportazione Selectmodelcsv=Seleziona un modello di esportazione Modelcsv_normal=Esportazione classica @@ -362,83 +371,89 @@ ChartofaccountsId=Id Piano dei Conti ## Tools - Init accounting account on product / service InitAccountancy=Inizializza contabilità -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters used for accounting closures. +InitAccountancyDesc=Questa pagina può essere utilizzata per inizializzare un conto di contabilità collegato ai prodotti e ai servizi che non hanno un conto di contabilità definito per le vendite e gli acquisti. +DefaultBindingDesc=Questa pagina può essere utilizzata per impostare una voce del piano dei conti predefinita da utilizzare per collegare i record delle transazioni di pagamento stipendi, donazioni, tasse e IVA quando non è stato già impostato un conto contabile specifico. +DefaultClosureDesc=In questa pagina è possibile impostare i parametri utilizzati per le chiusure contabili. Options=Opzioni OptionModeProductSell=Modalità vendita -OptionModeProductSellIntra=Mode sales exported in EEC -OptionModeProductSellExport=Mode sales exported in other countries +OptionModeProductSellIntra=Modalità vendita per esportazioni intracomunitarie (CEE) +OptionModeProductSellExport=Modalità vendita per esportazioni in altri paesi (Extra-CEE) OptionModeProductBuy=Modalità acquisto -OptionModeProductBuyIntra=Acquisti in modalità importati in CEE -OptionModeProductBuyExport=Modalità acquistata importata da altri paesi -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductSellIntraDesc=Show all products with accounting account for sales in EEC. -OptionModeProductSellExportDesc=Show all products with accounting account for other foreign sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. +OptionModeProductBuyIntra=Modalità acquisti per importazioni intracomunitarie (CEE) +OptionModeProductBuyExport=Modalità acquisti per importazioni da altri paesi (Extra-CEE) +OptionModeProductSellDesc=Mostra tutti i prodotti con un conto contabile per le vendite +OptionModeProductSellIntraDesc=Mostra tutti i prodotti con un conto contabile per le vendite intracomunitarie (CEE). +OptionModeProductSellExportDesc=Mostra tutti i prodotti con un conto contabile per le vendite estere. +OptionModeProductBuyDesc=Mostra tutti i prodotti con un conto contabile per gli acquisti. OptionModeProductBuyIntraDesc=Mostra tutti i prodotti con conto contabile per gli acquisti in CEE. OptionModeProductBuyExportDesc=Mostra tutti i prodotti con conto contabile per altri acquisti esteri. CleanFixHistory=Remove accounting code from lines that not exists into charts of account CleanHistory=Resetta tutti i collegamenti per l'anno corrente PredefinedGroups=Gruppi predefiniti -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +WithoutValidAccount=Senza un conto dedicato +WithValidAccount=Con un conto dedicato +ValueNotIntoChartOfAccount=Questo valore di voce del piano dei conti non esiste nel piano dei conti AccountRemovedFromGroup=Account removed from group SaleLocal=Local sale SaleExport=Export sale -SaleEEC=Sale in EEC +SaleEEC=Vendite intracomunitarie (CEE) SaleEECWithVAT=Vendita in CEE con IVA non nulla, quindi supponiamo che questa NON sia una vendita intracomunitaria e l'account suggerito sia l'account standard del prodotto. SaleEECWithoutVATNumber=La vendita nella CEE senza IVA ma la partita IVA di terzi non è definita. Eseguiamo il fallback sull'account del prodotto per le vendite standard. È possibile correggere l'ID IVA di terze parti o l'account del prodotto, se necessario. ForbiddenTransactionAlreadyExported=Vietato: la transazione è stata convalidata e/o esportata. -ForbiddenTransactionAlreadyValidated=Vietato: la transazione è stata convalidata. +ForbiddenTransactionAlreadyValidated=Vietato: il movimento è stato convalidato. ## Dictionary Range=Range of accounting account Calculated=Calcolato Formula=Formula ## Reconcile -Unlettering=Unreconcile -AccountancyNoLetteringModified=No reconcile modified -AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified -AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified -AccountancyNoUnletteringModified=No unreconcile modified -AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified -AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified +LetteringAuto=Riconciliazione automatica +LetteringManual=Riconciliazione manuale +Unlettering=Non riconciliarsi +UnletteringAuto=Annulla riconciliazione automatica +UnletteringManual=Annulla riconciliazione manuale +AccountancyNoLetteringModified=Nessuna riconciliazione modificata +AccountancyOneLetteringModifiedSuccessfully=Una riconciliazione modificata con successo +AccountancyLetteringModifiedSuccessfully=%s riconcilia modificato con successo +AccountancyNoUnletteringModified=Nessuna riconciliazione modificata +AccountancyOneUnletteringModifiedSuccessfully=Una riconciliazione modificata con successo +AccountancyUnletteringModifiedSuccessfully=%s annulla la riconciliazione modificata con successo ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Conferma di annullamento riconciliazione automatica massiva +ConfirmMassUnletteringManual=Conferma di annullamento riconciliazione manuale massiva +ConfirmMassUnletteringQuestion=Sei sicuro di voler annullare la riconciliazione dei record selezionati %s? ConfirmMassDeleteBookkeepingWriting=Conferma eliminazione massiva -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeleteBookkeepingWritingQuestion=Questo cancellerà la transazione dalla contabilità (tutte le righe relative alla stessa transazione verranno eliminate) Sei sicuro di voler eliminare i record %s selezionati? ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +SomeMandatoryStepsOfSetupWereNotDone=Alcuni step obbligatori della configurazione non sono stati completati. Si prega di completarli ErrorNoAccountingCategoryForThisCountry=Nessun gruppo di piano dei conti disponibile per il paese %s ( Vedi Home - Impostazioni - Dizionari ) ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice %s, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused. ErrorInvoiceContainsLinesNotYetBoundedShort=Alcune righe della fattura non sono collegato a un piano dei conti. ExportNotSupported=Il formato di esportazione configurato non è supportato in questa pagina BookeppingLineAlreayExists=Lines already existing into bookkeeping -NoJournalDefined=No journal defined +NoJournalDefined=Nessun giornale definito Binded=Linee collegate ToBind=Linee da vincolare -UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually +UseMenuToSetBindindManualy=Righe non ancora vincolate, utilizza il menù %s per effettuare l'associazione manualmente SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Spiacenti, questo modulo non è compatibile con la funzione sperimentale delle fatture di situazione -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code -AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 -AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +AccountancyErrorMismatchLetterCode=Mancata corrispondenza nel codice di riconciliazione +AccountancyErrorMismatchBalanceAmount=Il saldo (%s) non è uguale a 0 +AccountancyErrorLetteringBookkeeping=Si sono verificati errori relativi alle transazioni: %s +ErrorAccountNumberAlreadyExists=Il numero contabile %s esiste già ## Import ImportAccountingEntries=Accounting entries ImportAccountingEntriesFECFormat=Registrazioni contabili - formato FEC -FECFormatJournalCode=Giornale del codice (JournalCode) -FECFormatJournalLabel=Diario delle etichette (JournalLib) +FECFormatJournalCode=Codice giornale +FECFormatJournalLabel=Giornale delle etichette (JournalLib) FECFormatEntryNum=Numero pezzo (EcritureNum) FECFormatEntryDate=Data pezzo (EcritureDate) FECFormatGeneralAccountNumber=Numero di conto generale (CompteNum) FECFormatGeneralAccountLabel=Etichetta account generale (CompteLib) -FECFormatSubledgerAccountNumber=Numero di conto subledger (CompAuxNum) -FECFormatSubledgerAccountLabel=Numero di conto subledger (CompAuxLib) +FECFormatSubledgerAccountNumber=Numero di conto secondario (CompAuxNum) +FECFormatSubledgerAccountLabel=Numero di conto secondario (CompAuxLib) FECFormatPieceRef=Rif pezzo (PieceRef) FECFormatPieceDate=Creazione data pezzo (PieceDate) FECFormatLabelOperation=Operazione etichetta (EcritureLib) @@ -450,9 +465,8 @@ FECFormatValidateDate=Data pezzo convalidata (ValidDate) FECFormatMulticurrencyAmount=Importo multivaluta (Montantdevise) FECFormatMulticurrencyCode=Codice multivaluta (Idevise) -DateExport=Date export +DateExport=Data esportazione WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. -ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal +ExpenseReportJournal=Giornale note spese NAccounts=%s account diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index a3ec23d915e..c787126d4c5 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Client collation WarningModuleNotActive=Il modulo %s deve essere attivato WarningOnlyPermissionOfActivatedModules=Qui vengono mostrate solo le autorizzazioni relative ai moduli attivi. È possibile attivare altri moduli nelle impostazioni - pagina Moduli. DolibarrSetup=Installazione o aggiornamento di Dolibarr -InternalUser=Utente interno -ExternalUser=Utente esterno InternalUsers=Utenti interni ExternalUsers=Utenti esterni UserInterface=Interfaccia utente @@ -63,8 +61,8 @@ FormToTestFileUploadForm=Modulo per provare il caricamento file (secondo la conf ModuleMustBeEnabled=Il modulo/applicazione %s deve essere abilitata ModuleIsEnabled=Il modulo/applicazione %s è stato abilitato IfModuleEnabled=Nota: funziona solo se il modulo %s è attivo -RemoveLock=Remove/rename file %s if it exists, to allow usage of the Update/Install tool. -RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. +RemoveLock=Rimuovere/rinominare il file %s se esiste, per consentire l'utilizzo dello strumento Aggiorna/Installa. +RestoreLock=Ripristina file %s con autorizzazione di sola lettura, per disabilitare qualsiasi ulteriore utilizzo dello strumento Aggiorna/Installa. SecuritySetup=Impostazioni per la sicurezza PHPSetup=Impostazioni PHP OSSetup=Impostazioni OS @@ -83,7 +81,7 @@ UseSearchToSelectContactTooltip=Also if you have a large number of third parties DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.
    This may increase performance if you have a large number of third parties, but it is less convenient. DelaiedFullListToSelectContact=Attendi fino a quando non viene premuto un tasto prima di caricare il contenuto della lista di contatti.
    Questo può migliorare le prestazioni se hai un numero elevato di contatti, ma può essere meno conveniente. NumberOfKeyToSearch=Numero di caratteri per attivare la ricerca: %s -NumberOfBytes=Number of Bytes +NumberOfBytes=Numero di byte SearchString=Search string NotAvailableWhenAjaxDisabled=Non disponibile quando Ajax è disabilitato AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party @@ -109,7 +107,7 @@ NextValueForReplacements=Valore successivo (sostituzioni) MustBeLowerThanPHPLimit=Nota: la tua configurazione PHP attualmente limita la dimensione massima per il caricamento dei file %s %s, indipendentemente dal valore di questo parametro NoMaxSizeByPHPLimit=Nota: nessun limite impostato nella configurazione PHP MaxSizeForUploadedFiles=Dimensione massima dei file caricati (0 per disabilitare l'upload) -UseCaptchaCode=Utilizzare verifica captcha nella pagina di login +UseCaptchaCode=Utilizzare il codice grafico (CAPTCHA) nella pagina di accesso e in alcune pagine pubbliche AntiVirusCommand=Percorso completo programma antivirus AntiVirusCommandExample=Esempio per ClamAv Daemon (richiede clamav-daemon): / usr / bin / clamdscan
    Esempio per ClamWin (molto molto lento): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Più parametri sulla riga di comando @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Host SMTP / SMTPS (predefinito in php.ini: %s ) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP / SMTPS (non definita in PHP su sistemi Unix-like) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Host SMTP / SMTPS (non definito in PHP su sistemi Unix-like) MAIN_MAIL_EMAIL_FROM=Indirizzo mittente per le email automatiche (predefinito in php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Indirizzo a cui inviare eventuali errori (campi 'Errors-To' nelle email inviate) MAIN_MAIL_AUTOCOPY_TO= Indirizzo a cui inviare in copia Ccn tutte le mail in uscita MAIN_DISABLE_ALL_MAILS=Disabilita l'invio delle email (a scopo di test o demo) @@ -439,8 +438,10 @@ Unique=Unico Boolean=booleano (una checkbox) ExtrafieldPhone = Tel. ExtrafieldPrice = Prezzo +ExtrafieldPriceWithCurrency=Prezzo con valuta ExtrafieldMail = Email ExtrafieldUrl = Indirizzo URL +ExtrafieldIP = IP ExtrafieldSelect = Lista di selezione ExtrafieldSelectList = Seleziona dalla tabella ExtrafieldSeparator=Separatore (non è un campo) @@ -477,7 +478,7 @@ InstalledInto=Installato nella directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Valore iniziale per i codici a barre vuoti %s EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Vuoi davvero eliminare tutti i valori attuali dei codici a barre? AllBarcodeReset=All barcode values have been removed @@ -489,9 +490,9 @@ DisplayCompanyInfo=Mostra indirizzo dell'azienda DisplayCompanyManagers=Visualizza nomi responsabili DisplayCompanyInfoAndManagers=Mostra l'indirizzo dell'azienda ed il nome del manager EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible. -ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code -ModuleCompanyCodeSupplierAquarium=%s followed by vendor code for a vendor accounting code -ModuleCompanyCodePanicum=Return an empty accounting code. +ModuleCompanyCodeCustomerAquarium=%s seguito dal codice cliente per il codice di contabilità del cliente +ModuleCompanyCodeSupplierAquarium=%s seguito dal codice fornitore per il codice di contabilità del fornitore +ModuleCompanyCodePanicum=Restituisce un codice contabile vuoto ModuleCompanyCodeDigitaria=Accounting code depends on third-party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third-party code. ModuleCompanyCodeCustomerDigitaria=%s seguito dal nome del cliente troncato dal numero di caratteri: %s per il codice contabile del cliente. ModuleCompanyCodeSupplierDigitaria=%s seguito dal nome del fornitore troncato dal numero di caratteri: %s per il codice contabile del fornitore. @@ -501,10 +502,11 @@ WarningPHPMail=ATTENZIONE: la configurazione per inviare e-mail dall'applicazion WarningPHPMailA=- L'utilizzo del server del provider di servizi di posta elettronica aumenta l'affidabilità della tua e-mail, quindi aumenta la consegna senza essere contrassegnato come SPAM WarningPHPMailB=- Alcuni provider di servizi di posta elettronica (come Yahoo) non consentono di inviare un'e-mail da un server diverso dal proprio server. La tua configurazione attuale utilizza il server dell'applicazione per inviare e-mail e non il server del tuo provider di posta elettronica, quindi alcuni destinatari (quello compatibile con il protocollo restrittivo DMARC), chiederanno al tuo provider di posta elettronica se possono accettare la tua posta e alcuni provider di posta elettronica (come Yahoo) potrebbe rispondere "no" perché il server non è il loro, quindi alcune delle tue email inviate potrebbero non essere accettate per la consegna (attenzione anche alla quota di invio del tuo provider di posta elettronica). WarningPHPMailC=- Anche l'utilizzo del server SMTP del tuo provider di servizi di posta elettronica per inviare e-mail è interessante, quindi tutte le e-mail inviate dall'applicazione verranno salvate anche nella directory "Inviati" della tua casella di posta. -WarningPHPMailD=Inoltre, si consiglia quindi di modificare il metodo di invio delle e-mail sul valore "SMTP". Se vuoi davvero mantenere il metodo "PHP" predefinito per inviare e-mail, ignora questo avviso o rimuovilo impostando la costante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP su 1 in Home - Configurazione - Altro. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=Se il nome a dominio dell'indirizzo email del tuo mittente è protetto da un record SPF (chiedi al tuo registar del nome a dominio), devi aggiungere i seguenti IP nel record SPF del DNS del tuo dominio: %s . -ActualMailSPFRecordFound=Trovato record SPF effettivo: %s +ActualMailSPFRecordFound=Trovato record SPF effettivo (per e-mail %s): %s ClickToShowDescription=Clicca per mostrare la descrizione DependsOn=This module needs the module(s) RequiredBy=Questo modulo è richiesto dal modulo @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) EnableDefaultValues=Abilita l'utilizzo di valori predefiniti personalizzati -EnableOverwriteTranslation=Abilita queste traduzioni personalizzate +EnableOverwriteTranslation=Consenti la personalizzazione delle traduzioni GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Campo @@ -645,9 +647,9 @@ Module2400Name=Eventi/Agenda Module2400Desc=Gestione eventi/compiti e ordine del giorno. Registra manualmente eventi nell'agenda o consenti all'applicazione di registrare eventi automaticamente a scopo di monitoraggio. Questo è il modulo principale per una buona gestione delle relazioni con clienti e fornitori. Module2500Name=DMS / ECM Module2500Desc=Sistema di gestione documentale / Gestione elettronica dei contenuti. Organizzazione automatica dei documenti generati o archiviati. Condivisione con chi ne ha bisogno. -Module2600Name=API/Web services (SOAP server) +Module2600Name=API / Web services (server SOAP) Module2600Desc=Attiva il server SOAP che fornisce i servizi di API -Module2610Name=API/Web services (REST server) +Module2610Name=API / Web services (server REST) Module2610Desc=Attiva il server REST che fornisce i servizi di API Module2660Name=Chiamata WebServices (SOAP client) Module2660Desc=Abilitare il client dei Web service Dolibarr (può essere utilizzato per inviare dati / richieste a server esterni. Attualmente sono supportati solo gli ordini di acquisto). @@ -685,7 +687,7 @@ Module50200Desc=Modulo per offrire una pagina di pagamento che accetti pagamenti Module50300Name=Stripe Module50300Desc=Offri ai clienti una pagina di pagamento online Stripe (carte di credito / debito). Questo modulo può essere usato per consentire ai tuoi clienti di effettuare pagamenti ad-hoc o pagamenti relativi a uno specifico oggetto Dolibarr (fattura, ordine ecc ...) Module50400Name=Contabilità (partita doppia) -Module50400Desc=Gestione contabile (doppie partite, supporto contabilità generale e sussidiaria). Esporta il libro mastro in molti altri formati di software di contabilità. +Module50400Desc=Gestione contabile avanzata (partita doppia, piano dei conti e giornali). Esportazione del libro mastro in diversi altri formati per software contabili. Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). Module55000Name=Sondaggio, Indagine o Votazione @@ -698,6 +700,7 @@ Module62000Name=Import-Export Module62000Desc=Aggiunge funzioni per la gestione Incoterm Module63000Name=Risorse Module63000Desc=Gestione risorse (stampanti, automobili, locali, ...) e loro utilizzo all'interno degli eventi +Module94160Name=Receptions Permission11=Vedere le fatture attive Permission12=Creare fatture attive Permission13=Invalidare le fatture dei clienti @@ -714,13 +717,14 @@ Permission27=Eliminare proposte commerciali Permission28=Esportare proposte commerciali Permission31=Vedere prodotti Permission32=Creare/modificare prodotti +Permission33=Leggi prezzi prodotti Permission34=Eliminare prodotti Permission36=Vedere/gestire prodotti nascosti Permission38=Esportare prodotti Permission39=Ignora il prezzo minimo -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Leggi progetti e attività (progetti condivisi e progetti di cui sono contatto). +Permission42=Creare/modificare progetti (progetti condivisi e progetti di cui sono contatto). Può anche assegnare utenti a progetti e attività +Permission44=Elimina progetti (progetti condivisi e progetti di cui sono contatto) Permission45=Esporta progetti Permission61=Vedere gli interventi Permission62=Creare/modificare gli interventi @@ -739,6 +743,7 @@ Permission79=Creare/modificare gli abbonamenti Permission81=Vedere ordini clienti Permission82=Creare/modificare ordini clienti Permission84=Convalidare degli ordini clienti +Permission85=Genera i documenti ordini cliente Permission86=Inviare ordini clienti Permission87=Chiudere gli ordini clienti Permission88=Annullare ordini clienti @@ -766,10 +771,10 @@ Permission122=Creare/modificare terzi legati all'utente Permission125=Eliminare terzi legati all'utente Permission126=Esportare terzi Permission130=Crea/modifica le informazioni di pagamento di terze parti -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=Leggi tutti i progetti e le attività (nonché i progetti privati ​​per i quali non sono un contatto) +Permission142=Crea/modifica tutti i progetti e le attività (così come i progetti privati ​​per i quali non sono un contatto) +Permission144=Elimina tutti i progetti e le attività (così come i progetti privati ​​Non sono un contatto) +Permission145=Può inserire il tempo impiegato, per me o per la mia gerarchia, sulle attività assegnate (Timesheet) Permission146=Vedere provider Permission147=Vedere statistiche Permission151=Vedere ordini permanenti @@ -788,14 +793,14 @@ Permission173=Elimina nota spese Permission174=Vedere tutti i viaggi e le spese Permission178=Esporta note spese Permission180=Vedere fornitori -Permission181=Read purchase orders -Permission182=Create/modify purchase orders -Permission183=Validate purchase orders -Permission184=Approve purchase orders -Permission185=Order or cancel purchase orders -Permission186=Receive purchase orders -Permission187=Close purchase orders -Permission188=Cancel purchase orders +Permission181=Vedere ordini fornitori +Permission182=Creare/modificare ordini fornitori +Permission183=Convalidare ordini fornitori +Permission184=Approvare ordini fornitori +Permission185=Ordinare o eliminare ordini fornitori +Permission186=Ricevere ordini fornitori +Permission187=Chiudere ordini fornitori +Permission188=Eliminare ordini fornitori Permission192=Creare linee Permission193=Eliminare linee Permission194=Read the bandwidth lines @@ -840,9 +845,9 @@ Permission286=Esportare contatti Permission291=Vedere tariffe Permission292=Impostare permessi per le tariffe Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission301=Genera fogli PDF di codici a barre +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Vedere servizi Permission312=Assegnare un servizio a un contratto Permission331=Vedere segnalibri @@ -874,6 +879,7 @@ Permission525=Access loan calculator Permission527=Esporta prestiti Permission531=Vedere servizi Permission532=Creare/modificare servizi +Permission533=Leggi i prezzi dei servizi Permission534=Eliminare servizi Permission536=Vedere/gestire servizi nascosti Permission538=Esportare servizi @@ -884,9 +890,9 @@ Permission564=Registrare addebiti/rifiuti di bonifici Permission601=Leggi gli adesivi Permission602=Crea/modifica adesivi Permission609=Elimina adesivi -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants +Permission611=Leggi gli attributi delle varianti +Permission612=Crea/aggiorna gli attributi delle varianti +Permission613=Elimina gli attributi delle varianti Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -925,15 +931,15 @@ Permission1124=Send supplier proposals Permission1125=Delete supplier proposals Permission1126=Close supplier price requests Permission1181=Vedere fornitori -Permission1182=Read purchase orders -Permission1183=Create/modify purchase orders -Permission1184=Validate purchase orders -Permission1185=Approve purchase orders -Permission1186=Order purchase orders -Permission1187=Acknowledge receipt of purchase orders -Permission1188=Delete purchase orders +Permission1182=Vedere ordini fornitori +Permission1183=Creare/modificare ordini fornitori +Permission1184=Convalidare ordini fornitori +Permission1185=Approvare ordini fornitori +Permission1186=Ordina ordini fornitori +Permission1187=Confermare la ricezione di ordini fornitori +Permission1188=Eliminare ordini fornitori Permission1189=Selezionare/deselezionare la ricezione di un ordine di acquisto -Permission1190=Approve (second approval) purchase orders +Permission1190=Approvare (seconda approvazione) ordini fornitori Permission1191=Esporta gli ordini dei fornitori e i loro attributi Permission1201=Ottieni il risultato di un esportazione Permission1202=Creare/Modificare esportazioni @@ -943,7 +949,7 @@ Permission1233=Convalidare fatture fornitore Permission1234=Eliminare fatture fornitore Permission1235=Inviare fatture fornitore tramite e-mail Permission1236=Export vendor invoices, attributes and payments -Permission1237=Export purchase orders and their details +Permission1237=Esportare ordini fornitori e i relativi dettagli Permission1251=Eseguire importazioni di massa di dati esterni nel database (data load) Permission1321=Esportare fatture attive, attributi e pagamenti Permission1322=Riaprire le fatture pagate @@ -968,13 +974,14 @@ Permission3301=Genera nuovi moduli Permission4001=Leggi abilità/lavoro/posizione Permission4002=Crea/modifica abilità/lavoro/posizione Permission4003=Elimina abilità/lavoro/posizione -Permission4020=Leggi valutazioni -Permission4021=Crea/modifica la tua valutazione -Permission4022=Convalida la valutazione -Permission4023=Elimina valutazione -Permission4030=Vedi menu di confronto -Permission4031=Read personal information -Permission4032=Write personal information +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu +Permission4031=Leggi le informazioni personali +Permission4032=Scrivi informazioni personali +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1000,14 +1007,14 @@ Permission50330=Leggi gli oggetti di Zapier Permission50331=Crea/Aggiorna oggetti di Zapier Permission50332=Elimina gli oggetti di Zapier Permission50401=Bind products and invoices with accounting accounts -Permission50411=Read operations in ledger -Permission50412=Write/Edit operations in ledger -Permission50414=Delete operations in ledger -Permission50415=Delete all operations by year and journal in ledger -Permission50418=Export operations of the ledger +Permission50411=Vedere le operazioni presenti nel libro mastro +Permission50412=Creare/Modificare le operazioni presenti nel libro mastro +Permission50414=Eliminare le operazioni presenti nel libro mastro +Permission50415=Eliminare tutte le operazioni per anno nel libro mastro +Permission50418=Esportare le operazioni presenti nel libro mastro Permission50420=Report e report sulle esportazioni (fatturato, saldo, giornali, libro mastro) Permission50430=Define and close a fiscal period -Permission50440=Manage chart of accounts, setup of accountancy +Permission50440=Gestione del piano dei conti, configurazione contabilità Permission51001=Read assets Permission51002=Create/Update assets Permission51003=Delete assets @@ -1059,9 +1066,9 @@ DictionaryStaff=Numero di dipendenti DictionaryAvailability=Tempi di consegna DictionaryOrderMethods=Metodi di ordine DictionarySource=Origine delle proposte/ordini -DictionaryAccountancyCategory=Personalized groups for reports +DictionaryAccountancyCategory=Gruppi personalizzati per reportistica avanzata DictionaryAccountancysystem=Modelli per piano dei conti -DictionaryAccountancyJournal=Libri contabili +DictionaryAccountancyJournal=Giornali (causali) DictionaryEMailTemplates=Modelli e-mail DictionaryUnits=Unità DictionaryMeasuringUnits=Unità di misura @@ -1074,10 +1081,14 @@ DictionaryExpenseTaxCat=Note spesa - Categorie di trasporto DictionaryExpenseTaxRange=Note spesa: intervallo per categoria di trasporto DictionaryTransportMode=Rapporto intracomm - Modalità di trasporto DictionaryBatchStatus=Stato del controllo qualità del lotto/serie del prodotto -DictionaryAssetDisposalType=Type of disposal of assets +DictionaryAssetDisposalType=Tipologia di dismissione dei beni TypeOfUnit=Tipo di unità SetupSaved=Impostazioni salvate SetupNotSaved=Impostazioni non salvate +OAuthServiceConfirmDeleteTitle=Cancella valore OAuth +OAuthServiceConfirmDeleteMessage=Sei sicuro di voler eliminare questa voce OAuth? Anche tutti i token esistenti verranno eliminati. +ErrorInEntryDeletion=Errore nella cancellazione della voce +EntryDeleted=Voce Cancellata BackToModuleList=Torna all'elenco dei moduli BackToDictionaryList=Torna all'elenco dei dizionari TypeOfRevenueStamp=Type of tax stamp @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Valore di una costante ConstantIsOn=L'opzione %s è attiva NbOfDays=Numero di giorni AtEndOfMonth=Alla fine del mese -CurrentNext=Corrente/Successivo +CurrentNext=Un dato giorno nel mese Offset=Scostamento AlwaysActive=Sempre attivo Upgrade=Aggiornamento @@ -1194,13 +1205,13 @@ BankModuleNotActive=Modulo conti bancari non attivato ShowBugTrackLink=Mostra il link " %s " ShowBugTrackLinkDesc=Lascia vuoto per non visualizzare questo link, usa il valore 'github' per il link al progetto Dolibarr o definisci direttamente un url 'https://...' Alerts=Avvisi e segnalazioni -DelaysOfToleranceBeforeWarning=Displaying a warning alert for... +DelaysOfToleranceBeforeWarning=Visualizzazione di un avviso di avviso per... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Progetto non chiuso in tempo Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Ordine fornitore non processato Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposta non chiusa Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposta non fatturata Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Servizio da attivare @@ -1235,11 +1246,13 @@ BrowserName=Browser BrowserOS=Sistema operativo ListOfSecurityEvents=Elenco degli eventi di sicurezza Dolibarr SecurityEventsPurged=Eventi di sicurezza eliminati +TrackableSecurityEvents=Eventi di sicurezza tracciabili LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=I parametri di setup possono essere definiti solo da utenti di tipo amministratore. SystemInfoDesc=Le informazioni di sistema sono dati tecnici visibili in sola lettura e solo dagli amministratori. SystemAreaForAdminOnly=Questa area è disponibile solo per gli utenti amministratori. Le autorizzazioni utente Dolibarr non possono modificare questa limitazione. CompanyFundationDesc=Modifica le informazioni dell'azienda / fondazione. Fai clic sul pulsante "%s" nella parte inferiore della pagina. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Se hai un contabile / contabile esterno, puoi modificare qui le sue informazioni. AccountantFileNumber=Accountant code DisplayDesc=I parametri che influenzano l'aspetto e la presentazione dell'applicazione possono essere modificati qui. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=È necessario eseguire questo c YourPHPDoesNotHaveSSLSupport=Il PHP del server non supporta SSL DownloadMoreSkins=Scarica altre skin SimpleNumRefModelDesc=Restituisce il numero di riferimento nel formato %syymm-nnnn dove yy è l'anno, mm è il mese e nnnn è un numero sequenziale a incremento automatico senza reimpostazione +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Restituisce il numero di riferimento nel formato %s-nnnn dove nnnn è un numero sequenziale a incremento automatico senza reimpostazione ShowProfIdInAddress=Mostra l'ID professionale con gli indirizzi ShowVATIntaInAddress=Nascondi partita IVA intracomunitaria @@ -1346,7 +1361,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Moduli attivati TotalNumberOfActivatedModules=Moduli attivati: %s / %s YouMustEnableOneModule=Devi abilitare almeno un modulo -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +YouMustEnableTranslationOverwriteBefore=Devi prima abilitare la sovrascrittura della traduzione per poter sostituire una traduzione ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Si in estate OnlyFollowingModulesAreOpenedToExternalUsers=Nota, solo i seguenti moduli sono disponibili per gli utenti esterni (indipendentemente dalle autorizzazioni di tali utenti) e solo se le autorizzazioni sono concesse:
    @@ -1376,7 +1391,7 @@ GetBarCode=Ottieni codice a barre NumberingModules=Modelli di numerazione DocumentModules=Modelli di documenti ##### Module password generation -PasswordGenerationStandard=Restituisce una password generata secondo l'algoritmo interno di Dolibarr: %s caratteri contenenti numeri condivisi e caratteri in minuscolo. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. PasswordGenerationPerso=Return a password according to your personally defined configuration. SetupPerso=Secondo la tua configurazione @@ -1399,11 +1414,11 @@ NotificationsDesc=Le notifiche e-mail possono essere inviate automaticamente per NotificationsDescUser=* per user, one user at a time. NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time. NotificationsDescGlobal=* o impostando indirizzi email globali nella pagina di configurazione del modulo. -ModelModules=Document Templates +ModelModules=Modelli documento DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) WatermarkOnDraft=Filigrana sulle bozze JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules for Professional IDs +CompanyIdProfChecker=Regole per ID Professionali MustBeUnique=Deve essere unico? MustBeMandatory=Obbligatorio per creare soggetti terzi (se la partita iva o il tipo di soggetto sono definiti)? MustBeInvoiceMandatory=Obbligatorio per convalidare le fatture? @@ -1428,8 +1443,12 @@ WatermarkOnDraftInvoices=Bozze delle fatture filigranate (nessuna filigrana se v PaymentsNumberingModule=Modello per la numerazione dei documenti SuppliersPayment=Pagamenti fornitori SupplierPaymentSetup=Impostazioni pagamenti fornitori -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceCheckPosteriorDate=Controllare la data di fabbricazione prima della convalida +InvoiceCheckPosteriorDateHelp=La convalida di una fattura sarà vietata se la sua data è anteriore alla data dell'ultima fattura dello stesso tipo. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Impostazioni proposte commerciali ProposalsNumberingModules=Modelli di numerazione della proposta commerciale @@ -1447,7 +1466,7 @@ WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (no BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Richiedi conto bancario di destinazione sugli ordini fornitori ##### Orders ##### SuggestedPaymentModesIfNotDefinedInOrder=Modalità di pagamento suggerita sull'ordine cliente per impostazione predefinita se non definita nell'ordine OrdersSetup=Impostazione gestione Ordini Cliente @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Bozze dei contratti filigranate (nessuna filigrana ##### Members ##### MembersSetup=Impostazioni modulo membri MemberMainOptions=Opzioni principali +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Gestire un account di accesso per ogni membro AdherentMailRequired=Email required to create a new member MemberSendInformationByMailByDefault=Checkbox per inviare una mail di conferma per i membri (è attiva per impostazione predefinita) MemberCreateAnExternalUserForSubscriptionValidated=Crea un login utente esterno per ogni nuovo abbonamento membro convalidato -VisitorCanChooseItsPaymentMode=Il visitatore può scegliere tra le modalità di pagamento disponibili +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Modelli di documento per i documenti generati dal record del membro ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Attiva editor avanzato per: FCKeditorForNotePublic=WYSIWIG creazione/edizione del campo "note pubbliche" di elementi FCKeditorForNotePrivate=WYSIWIG creazione/edizione del campo "note private" degli elementi FCKeditorForCompany=WYSIWIG creazione/modifica del campo descrizione degli elementi (esclusi prodotti/servizi) -FCKeditorForProduct=WYSIWIG creazione/edizione del campo descrizione dei prodotti/servizi -FCKeditorForProductDetails=WYSIWIG creazione/modifica di righe di dettaglio prodotti per tutte le entità (proposte, ordini, fatture, ecc...). Avvertenza: l'utilizzo di questa opzione in questo caso è fortemente sconsigliato in quanto può creare problemi con i caratteri speciali e la formattazione della pagina durante la creazione di file PDF. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Editor WYSIWIG per le email FCKeditorForUserSignature=WYSIWIG creazione/modifica della firma utente FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Gestore menu dove mostrare il nuovo menu DetailMenuModule=Nome del modulo, per le voci di menu provenienti da un modulo DetailType=Tipo di menu (in alto o a sinistra) DetailTitre=Etichetta menu o codice per la traduzione -DetailUrl=URL del link del menu (URL assoluto del link o collegamento esterno con http://) +DetailUrl=URL a cui il menu ti invia (link URL relativo o link esterno con https://) DetailEnabled=Condizione per mostrare o meno un campo DetailRight=Visualizza il menu come non attivo (grigio) DetailLangs=Nome del file .lang contenente la traduzione del codice dell'etichetta @@ -1793,7 +1813,7 @@ Buy=Acquista Sell=Vendi InvoiceDateUsed=Data utilizzata per la fatturazione YourCompanyDoesNotUseVAT=La tua azienda è stata definita per non utilizzare l'IVA (Home - Installazione - Azienda / Organizzazione), quindi non ci sono opzioni IVA da impostare. -AccountancyCode=Accounting Code +AccountancyCode=Conto di contabilità AccountancyCodeSell=Codice contabilità vendite AccountancyCodeBuy=Codice contabilità acquisti CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Mantieni la casella di controllo "Crea automaticamente il pagamento" vuota per impostazione predefinita quando crei una nuova tassa @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatib CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. CashDeskForceDecreaseStockLabel=La riduzione delle scorte per i prodotti batch è stata forzata. CashDeskForceDecreaseStockDesc=Diminuisci prima secondo le date più antiche di Eatby e Sellby. -CashDeskReaderKeyCodeForEnter=Codice chiave per "Inserisci" definito nel lettore di codici a barre (Esempio: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Impostazioni modulo segnalibri BookmarkDesc=Questo modulo consente di gestire i segnalibri web. È possibile aggiungere collegamenti a pagine Dolibarr o a qualsiasi altro sito web esterno al menu di sinistra. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modello per la numerazione delle fatture fornitor IfSetToYesDontForgetPermission=Se impostato su un valore non nullo, non dimenticare di fornire autorizzazioni a gruppi o utenti autorizzati per la seconda approvazione ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Impostazioni modulo GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Nota bene: il file deve trovarsi in una directory leggibile da PHP. YouCanDownloadFreeDatFileTo=È disponibile una versione demo gratuita del 'Maxmind GeoIP country file' su %s. YouCanDownloadAdvancedDatFileTo=Altrimenti è disponibile una versione completa, con aggiornamenti al seguente indirizzo: %s @@ -1922,12 +1942,13 @@ BackupDumpWizard=Procedura guidata per creare file di backup del database (dump) BackupZipWizard=Procedura guidata per creare l'archivio della directory dei documenti SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Evidenzia il colore della linea quando passa il mouse (usa 'ffffff' per nessuna evidenziazione) HighlightLinesChecked=Evidenzia il colore della linea quando è selezionata (usa 'ffffff' per nessuna evidenziazione) -UseBorderOnTable=Show left-right borders on tables +UseBorderOnTable=Mostra i bordi sinistro-destro sulle tabelle BtnActionColor=Colore del pulsante di azione TextBtnActionColor=Colore del testo del pulsante di azione TextTitleColor=Colore del testo del titolo della pagina @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Premi CTRL + F5 sulla tastiera o cancella la cache del NotSupportedByAllThemes=Funziona con il tema Eldy ma non è supportato da tutti gli altri temi BackgroundColor=Colore di sfondo TopMenuBackgroundColor=Colore di sfondo menù in alto -TopMenuDisableImages=Nascondi le icone nel menu superiore +TopMenuDisableImages=Icona o testo nel menu in alto LeftMenuBackgroundColor=Colore di sfondo menù laterale BackgroundTableTitleColor=Colore di sfondo della riga di intestazione BackgroundTableTitleTextColor=Colore del testo per la riga del titolo delle tabelle @@ -1949,7 +1970,7 @@ EnterAnyCode=Questo campo contiene un riferimento per identificare la linea. Ins Enter0or1=Inserire 0 o 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=Il colore RGB è nel formato HEX, es:FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Nome dell'icona nel formato:
    - image.png per un file immagine nella directory del tema corrente
    - image.png@module se il file è nella directory /img/ di un modulo
    - fa-xxx per un'immagine FontAwesome fa-xxx
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (con prefisso, colore e dimensione impostati) PositionIntoComboList=Posizione di questo modello nella menu a tendina SellTaxRate=Aliquota dell'imposta sulle vendite RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Ordini d'acquisto MailToSendSupplierInvoice=Fatture Fornitore MailToSendContract=Contratti MailToSendReception=Receptions +MailToExpenseReport=Note spese MailToThirdparty=Soggetti terzi MailToMember=Membri MailToUser=Utenti @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Margine destro sul PDF MAIN_PDF_MARGIN_TOP=Margine superiore sul PDF MAIN_PDF_MARGIN_BOTTOM=Margine inferiore su PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Altezza per logo in PDF +DOC_SHOW_FIRST_SALES_REP=Visualizza prima il referente commerciale MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Aggiungi una colonna per l'immagine sulle righe della proposta MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Larghezza della colonna se viene aggiunta un'immagine su righe MAIN_PDF_NO_SENDER_FRAME=Nascondi i bordi sulla cornice dell'indirizzo del mittente @@ -2047,51 +2070,61 @@ RemoveSpecialChars=Rimuovi caratteri speciali COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter su clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicazione non consentita +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=DPO (Data Protection Officer) o in italiano RPD (Responsabile della Protezione dei Dati) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Se memorizzi dati personali nel tuo Sistema Informativo, puoi nominare qui il contatto responsabile del Regolamento generale sulla protezione dei dati HelpOnTooltip=Testo di aiuto da mostrare come tooltip HelpOnTooltipDesc=Inserisci qui il testo o una chiave di traduzione affinché il testo sia mostrato nel tooltip quando questo campo appare in un form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s -ChartLoaded=Chart of account loaded +ChartLoaded=Piano dei conti caricato SocialNetworkSetup=Setup of module Social Networks EnableFeatureFor=Enable features for %s VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. SwapSenderAndRecipientOnPDF=Scambia la posizione dell'indirizzo del mittente e del destinatario sui documenti PDF FeatureSupportedOnTextFieldsOnly=Attenzione, funzionalità supportata solo su campi di testo ed elenchi combinati. Anche un parametro URL action=create o action=edit deve essere impostato OPPURE il nome della pagina deve terminare con 'new.php' per attivare questa funzione. EmailCollector=Email collector +EmailCollectors=Collezionisti di posta elettronica EmailCollectorDescription=Aggiungi un lavoro programmato e una pagina di configurazione per scansionare regolarmente caselle di posta elettronica (usando il protocollo IMAP) e registrare le email ricevute nella tua applicazione, nel posto giusto e / o creare automaticamente alcuni record (come i lead). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Porta IMAP del server +loginPassword=Login/Password +oauthToken=Token Oauth +accessType=Tipo accesso +oauthService=Servizio Oauth +TokenMustHaveBeenCreated=Il modulo OAuth2 deve essere abilitato e deve essere stato creato un token oauth2 con i permessi corretti (ad esempio scope "gmail_full" con OAuth per Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Le operazioni vengono eseguite dall'alto verso il basso MaxEmailCollectPerCollect=Max number of emails collected per collect +TestCollectNow=Prova raccogliere CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? +ConfirmCloneEmailCollector=Sei sicuro di voler clonare il raccoglitore email %s? DateLastCollectResult=Data dell'ultimo tentativo di ritiro DateLastcollectResultOk=Data dell'ultimo successo di raccolta LastResult=Latest result -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeaders=Non includere il contenuto dell'intestazione dell'e-mail nel contenuto salvato delle e-mail raccolte +EmailCollectorHideMailHeadersHelp=Se abilitate, le intestazioni e-mail non vengono aggiunte alla fine del contenuto e-mail salvato come evento dell'agenda. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorConfirmCollect=Vuoi eseguire questo raccoglitore ora? +EmailCollectorExampleToCollectTicketRequestsDesc=Raccogli le email che corrispondono ad alcune regole e crea automaticamente un ticket (il Modulo Ticket deve essere abilitato) con le informazioni email. Puoi utilizzare questo raccoglitore se fornisci supporto via e-mail, quindi la tua richiesta di ticket verrà generata automaticamente. Attiva anche Collect_Responses per raccogliere le risposte del tuo cliente direttamente nella visualizzazione del ticket (devi rispondere da Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Esempio di ritiro della richiesta del biglietto (solo primo messaggio) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scansiona la directory "Inviati" della tua casella di posta per trovare le e-mail che sono state inviate come risposta a un'altra e-mail direttamente dal tuo software di posta elettronica e non da Dolibarr. Se viene trovata tale e-mail, l'evento di risposta viene registrato in Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Esempio di raccolta di risposte e-mail inviate da un software di posta elettronica esterno +EmailCollectorExampleToCollectDolibarrAnswersDesc=Raccogli tutte le e-mail che sono una risposta a un'e-mail inviata dalla tua applicazione. Un evento (deve essere abilitato Modulo Agenda) con l'e-mail di risposta verrà registrato nella buona posizione. Ad esempio, se invii una proposta commerciale, un ordine, una fattura o un messaggio per un biglietto tramite e-mail dall'applicazione e il destinatario risponde alla tua e-mail, il sistema catturerà automaticamente la risposta e la aggiungerà al tuo ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Esempio che raccoglie tutti i messaggi in entrata come risposte ai messaggi inviati da Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Raccogli le email che corrispondono ad alcune regole e crea automaticamente un lead (il progetto modulo deve essere abilitato) con le informazioni email. Puoi utilizzare questo raccoglitore se vuoi seguire il tuo lead utilizzando il modulo Progetto (1 lead = 1 progetto), quindi i tuoi lead verranno generati automaticamente. Se è abilitato anche il raccoglitore Collect_Responses, quando invii un'e-mail dai tuoi lead, proposte o qualsiasi altro oggetto, potresti anche vedere le risposte dei tuoi clienti o partner direttamente sull'applicazione.
    Nota: con questo esempio iniziale, viene generato il titolo del lead che include l'e-mail. Se la terza parte non può essere trovata nel database (nuovo cliente), il lead sarà allegato alla terza parte con ID 1. +EmailCollectorExampleToCollectLeads=Esempio di raccolta di lead +EmailCollectorExampleToCollectJobCandidaturesDesc=Raccogli le email relative alle offerte di lavoro (il modulo Reclutamento deve essere abilitato). Puoi completare questo raccoglitore se desideri creare automaticamente una candidatura per una richiesta di lavoro. Nota: Con questo primo esempio viene generato il titolo della candidatura comprensivo di email. +EmailCollectorExampleToCollectJobCandidatures=Esempio di raccolta delle candidature ricevute via e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s email prequalificate, %s email elaborate correttamente (per %s record/azioni eseguite) RecordEvent=Registra un evento in agenda (con tipo Email inviata o ricevuta) CreateLeadAndThirdParty=Crea un lead (e una terza parte se necessario) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +CreateTicketAndThirdParty=Crea un ticket (collegato a una terza parte se la terza parte è stata caricata da un'operazione precedente o è stata indovinata da un tracker nell'intestazione dell'e-mail, altrimenti senza terza parte) CodeLastResult=Ultimo codice risultato NbOfEmailsInInbox=Numero di e-mail nella directory di origine LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2105,14 +2138,14 @@ CreateCandidature=Crea domanda di lavoro FormatZip=CAP MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Definire le regole da utilizzare per estrarre o impostare valori.
    Esempio per operazioni che richiedono l'estrazione di un nome dall'oggetto dell'e-mail:
    name=EXTRACT:SUBJECT:Message from company ([^\n] *)
    Esempio di operazioni che creano oggetti:
    objproperty1 = SET: il valore impostato
    objproperty2 = SET: un valore compreso valore __objproperty1__
    objproperty3 = SETIFEMPTY: valore utilizzato se objproperty3 non è già definito
    objproperty4 = ESTRATTO: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Il nome della mia azienda è\\s( [^\\s]*)

    Usa a ; char come separatore per estrarre o impostare più proprietà. +OperationParamDesc=Definire le regole da utilizzare per estrarre alcuni dati o impostare valori da utilizzare per il funzionamento.

    Esempio per estrarre il nome di un'azienda dall'oggetto dell'email in una variabile temporanea:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Esempi per impostare le proprietà di un oggetto da creare:
    objproperty1=SET:un valore hardcoded
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMP solo se la proprietà non è già definita (setavalue)
    objproperty4=ESTRATTO:INTESTAZIONE:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=ESTRATTO:SOGGETTO:([^\n]*)
    object.objproperty5=ESTRATTO:BODY:My il nome dell'azienda è\\s([^\\s]*)

    Utilizzare a ; char come separatore per estrarre o impostare più proprietà. OpeningHours=Orari di apertura OpeningHoursDesc=Inserisci gli orari di apertura regolare della tua azienda. ResourceSetup=Configurazione del modulo Risorse UseSearchToSelectResource=Utilizza il form di ricerca per scegliere una risorsa (invece della lista a tendina) DisabledResourceLinkUser=Disattiva funzionalità per collegare una risorsa agli utenti DisabledResourceLinkContact=Disattiva funzionalità per collegare una risorsa ai contatti -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Vietare l'utilizzo della stessa risorsa contemporaneamente all'ordine del giorno ConfirmUnactivation=Conferma reset del modulo OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disabilita il tipo di terza parte "Prospect + Cliente" (quindi la terza parte deve essere "Prospect" o "Cliente", ma non può essere entrambi) @@ -2157,7 +2190,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +RESTRICT_ON_IP=Consenti l'accesso API solo a determinati IP client (carattere jolly non consentito, usa lo spazio tra i valori). Vuoto significa che tutti i client possono accedere. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2167,6 +2200,10 @@ EmailTemplate=Modello per le e-mail EMailsWillHaveMessageID=Le e-mail avranno un tag "Riferimenti" corrispondente a questa sintassi PDF_SHOW_PROJECT=Mostra progetto su documento ShowProjectLabel=Etichetta del progetto +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Includi alias nel nome di terze parti +THIRDPARTY_ALIAS=Nome terza parte - Alias terza parte +ALIAS_THIRDPARTY=Alias terza parte - Nome terza parte +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Se vuoi avere alcuni testi nel tuo PDF duplicato in 2 lingue diverse nello stesso PDF generato, devi impostare qui la seconda lingua in modo che il PDF generato contenga 2 lingue diverse nella stessa pagina, quella scelta durante la generazione del PDF e questa ( solo pochi modelli PDF supportano questa opzione). Mantieni vuoto per 1 lingua per PDF. PDF_USE_A=Genera documenti PDF in formato PDF/A anziché in formato PDF predefinito FafaIconSocialNetworksDesc=Inserisci qui il codice di un'icona FontAwesome. Se non sai cos'è FontAwesome, puoi utilizzare il valore generico fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Collaborazione AGENDA_EVENT_DEFAULT_STATUS=Stato dell'evento predefinito durante la creazione di un evento dal modulo YouShouldDisablePHPFunctions=Dovresti disabilitare le funzioni PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Tranne se è necessario eseguire i comandi di sistema nel codice personalizzato, è necessario disabilitare le funzioni PHP -PHPFunctionsRequiredForCLI=Ai fini della shell (come il backup di un lavoro pianificato o l'esecuzione di un programma anitivurs), è necessario mantenere le funzioni PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Nessun file scrivibile o directory dei programmi comuni è stato trovato nella directory principale (buono) RecommendedValueIs=Consigliato: %s Recommended=Raccomandata NotRecommended=Non consigliato -ARestrictedPath=Qualche percorso ristretto +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Controlla gli aggiornamenti dei moduli esterni CheckForModuleUpdateHelp=Questa azione si collegherà agli editor di moduli esterni per verificare se è disponibile una nuova versione. ModuleUpdateAvailable=Un aggiornamento è disponibile @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Nessun aggiornamento trovato per i moduli esterni SwaggerDescriptionFile=File di descrizione dell'API Swagger (per l'uso con redoc, ad esempio) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Hai abilitato l'API WS obsoleta. Dovresti invece usare l'API REST. RandomlySelectedIfSeveral=Selezionato casualmente se sono disponibili più immagini +SalesRepresentativeInfo=Per proposte, ordini, fatture. DatabasePasswordObfuscated=La password del database è offuscata nel file conf DatabasePasswordNotObfuscated=La password del database NON è offuscata nel file conf APIsAreNotEnabled=I moduli API non sono abilitati @@ -2229,12 +2267,12 @@ DashboardDisableBlockAdherent=Disabilita il pollice per gli abbonamenti DashboardDisableBlockExpenseReport=Disattiva il pollice per le note spese DashboardDisableBlockHoliday=Disattiva il pollice per le foglie EnabledCondition=Condizione per avere il campo abilitato (se non abilitato, la visibilità sarà sempre disattivata) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se vuoi utilizzare una seconda imposta, devi abilitare anche la prima imposta sulle vendite +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se vuoi utilizzare una terza imposta, devi abilitare anche la prima imposta sulle vendite LanguageAndPresentation=Linguaggio e presentazione -SkinAndColors=Pelle e colori -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax +SkinAndColors=Grafica e colori +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se vuoi utilizzare una seconda imposta, devi abilitare anche la prima imposta sulle vendite +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se vuoi utilizzare una terza imposta, devi abilitare anche la prima imposta sulle vendite PDF_USE_1A=Genera PDF in formato PDF/A-1b MissingTranslationForConfKey = Traduzione mancante per %s NativeModules=Moduli nativi @@ -2244,22 +2282,76 @@ EachTerminalHasItsOwnCounter=Ogni terminale utilizza il proprio contatore. FillAndSaveAccountIdAndSecret=Compila e salva prima l'ID account e il segreto PreviousHash=Hash precedente LateWarningAfter=Avviso di "ritardo" dopo -TemplateforBusinessCards=Template for a business card in different size +TemplateforBusinessCards=Modello per biglietto da visita di diverse dimensioni InventorySetup= Inventory Setup -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +ExportUseLowMemoryMode=Utilizzare una modalità di memoria insufficiente +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interfaccia per catturare i trigger di dolibarr e inviarlo a un URL +WebhookSetup = Configurazione del webhook +Settings = Impostazioni +WebhookSetupPage = Pagina di configurazione del webhook +ShowQuickAddLink=Mostra un pulsante per aggiungere rapidamente un elemento nel menu in alto a destra + +HashForPing=Hash usato per il ping +ReadOnlyMode=L'istanza è in modalità "Sola lettura". +DEBUGBAR_USE_LOG_FILE=Utilizzare il file dolibarr.log per intercettare i log +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Utilizzare il file dolibarr.log per intercettare i registri invece di intercettare la memoria live. Permette di catturare tutti i log invece del solo log del processo corrente (incluso quindi quello delle pagine delle sottorichieste ajax) ma renderà la tua istanza molto molto lenta. Non consigliato. +FixedOrPercent=Fisso (usa la parola chiave 'fisso') o percentuale (usa la parola chiave 'percentuale') +DefaultOpportunityStatus=Stato opportunità predefinito (primo stato al momento della creazione del lead) + +IconAndText=Icona e testo +TextOnly=Solo testo +IconOnlyAllTextsOnHover=Solo icona - Tutti i testi vengono visualizzati sotto l'icona sulla barra dei menu al passaggio del mouse +IconOnlyTextOnHover=Solo icona - Il testo dell'icona viene visualizzato sotto l'icona al passaggio del mouse sull'icona +IconOnly=Solo icona: solo testo nella descrizione comando +INVOICE_ADD_ZATCA_QR_CODE=Mostra il codice QR ZATCA sulle fatture +INVOICE_ADD_ZATCA_QR_CODEMore=Alcuni paesi arabi necessitano di questo codice QR sulle loro fatture +INVOICE_ADD_SWISS_QR_CODE=Mostra il codice QR-Bill svizzero sulle fatture +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=Link URL del social network. Utilizza {socialid} per la parte variabile che contiene l'ID del social network. +IfThisCategoryIsChildOfAnother=Se questa categoria è figlia di un'altra +DarkThemeMode=Modalità tema scuro +AlwaysDisabled=Sempre disabilitato +AccordingToBrowser=Secondo il browser +AlwaysEnabled=Sempre abilitato +DoesNotWorkWithAllThemes=Non funzionerà con tutti i temi +NoName=Senza nome +ShowAdvancedOptions= Visualizza opzioni avanzate +HideAdvancedoptions= Nascondi opzioni avanzate +CIDLookupURL=Il modulo porta un URL che può essere utilizzato da uno strumento esterno per ottenere il nome di una terza parte o un contatto dal suo numero di telefono. L'URL da utilizzare è: +OauthNotAvailableForAllAndHadToBeCreatedBefore=L'autenticazione OAUTH2 non è disponibile per tutti gli host e deve essere stato creato un token con le autorizzazioni corrette a monte utilizzando il modulo OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Servizio di autenticazione OAuth2 +DontForgetCreateTokenOauthMod=A monte del modulo OAUTH deve essere stato creato un token con i permessi corretti +MAIN_MAIL_SMTPS_AUTH_TYPE=Metodo di autenticazione +UsePassword=Usa una password +UseOauth=Usa un token OAUTH +Images=Immagini +MaxNumberOfImagesInGetPost=Numero massimo di immagini consentite in un campo HTML inviato in un modulo +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=Il modulo porta un URL che può essere utilizzato da uno strumento esterno per ottenere il nome di una terza parte o un contatto dal suo numero di telefono. L'URL da utilizzare è: +ScriptIsEmpty=Lo script è vuoto +ShowHideTheNRequests=Mostra/nascondi le richieste SQL %s +DefinedAPathForAntivirusCommandIntoSetup=Definisci un percorso per un programma antivirus in %s +TriggerCodes=Eventi attivabili +TriggerCodeInfo=Inserisci qui il codice (o codici) del/dei trigger che devono generare un post da una richiesta web (sono consentiti solo URL esterni). È possibile inserire più codici per i trigger separati da una virgola. +EditableWhenDraftOnly=Se deselezionato, il valore può essere modificato solo quando l'oggetto nello stato di bozza +CssOnEdit=CSS nelle pagine di modifica +CssOnView=Css nelle pagine di visualizzazione +CssOnList=Css nelle pagine di elenco +HelpCssOnEditDesc=Il Css utilizzato durante la modifica del campo.
    Esempio: "minwidth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Il Css utilizzato durante la visualizzazione del campo. +HelpCssOnListDesc=Il Css utilizzato quando il campo si trova all'interno di una tabella elenco.
    Esempio: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Nascondi la quantità ordinata sui documenti generati per i ricevimenti +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Mostra il prezzo sui documenti generati per i ricevimenti +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Consenti firma online +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/it_IT/agenda.lang b/htdocs/langs/it_IT/agenda.lang index 59afe414529..cffcc04059b 100644 --- a/htdocs/langs/it_IT/agenda.lang +++ b/htdocs/langs/it_IT/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contratto %s cancellato PropalClosedSignedInDolibarr=Proposta %s firmata PropalClosedRefusedInDolibarr=Proposta %s rifiutata PropalValidatedInDolibarr=Proposta convalidata +PropalBackToDraftInDolibarr=Proposta %s torna allo stato di bozza PropalClassifiedBilledInDolibarr=Proposta %s classificata fatturata InvoiceValidatedInDolibarr=Fattura convalidata InvoiceValidatedInDolibarrFromPos=Ricevute %s validate dal POS @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=Membro %s convalidato MemberModifiedInDolibarr=Membro %s modificato MemberResiliatedInDolibarr=Membro %s terminato MemberDeletedInDolibarr=Membro %s eliminato +MemberExcludedInDolibarr=Membro %s escluso MemberSubscriptionAddedInDolibarr=Adesione %s per membro %s aggiunta MemberSubscriptionModifiedInDolibarr=Adesione %s per membro %s modificata MemberSubscriptionDeletedInDolibarr=Adesione %s per membro %s eliminata @@ -66,6 +68,7 @@ ShipmentBackToDraftInDolibarr=La spedizione %s torna allo stato bozza ShipmentDeletedInDolibarr=Spedizione %s eliminata ShipmentCanceledInDolibarr=Spedizione %s annullata ReceptionValidatedInDolibarr=Ricezione %s convalidata +ReceptionClassifyClosedInDolibarr=Ricevimento %s classificato chiuso OrderCreatedInDolibarr=Ordine %s creato OrderValidatedInDolibarr=Ordine convalidato OrderDeliveredInDolibarr=Ordine %s classificato consegnato @@ -157,6 +160,7 @@ DateActionBegin=Data di inizio evento ConfirmCloneEvent=Sei sicuro che vuoi clonare l'evento %s? RepeatEvent=Ripeti evento OnceOnly=Solo una volta +EveryDay=Every day EveryWeek=Ogni settimana EveryMonth=Ogni mese DayOfMonth=Giorno del mese @@ -172,3 +176,4 @@ AddReminder=Crea una notifica di promemoria automatica per questo evento ErrorReminderActionCommCreation=Errore durante la creazione della notifica di promemoria per questo evento BrowserPush=Notifica a comparsa del browser ActiveByDefault=Abilitato per impostazione predefinita +Until=until diff --git a/htdocs/langs/it_IT/assets.lang b/htdocs/langs/it_IT/assets.lang index 6b3e04f6206..b6408755ef8 100644 --- a/htdocs/langs/it_IT/assets.lang +++ b/htdocs/langs/it_IT/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,52 +16,171 @@ # # Generic # -Assets = Cespiti -NewAsset = Nuovo cespite -AccountancyCodeAsset = Codice contabilità (cespite) -AccountancyCodeDepreciationAsset = Codice contabilità (conto ammortamento cespite) -AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account) -NewAssetType=Nuovo tipo cespite -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified -AssetType=Tipo di cespite +NewAsset=Nuovo cespite +AccountancyCodeAsset=Codice contabilità (cespite) +AccountancyCodeDepreciationAsset=Codice contabilità (conto ammortamento cespite) +AccountancyCodeDepreciationExpense=Codice contabilità (conto ammortamento note spese) AssetsLines=Cespiti DeleteType=Elimina -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? -ShowTypeCard=Visualizza la scheda dei tipi +DeleteAnAssetType=Elimina un modello di risorsa +ConfirmDeleteAssetType=Sei sicuro di voler eliminare questo modello di asset? +ShowTypeCard=Mostra il modello '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Cespiti +ModuleAssetsName=Cespiti # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Descrizione espiti +ModuleAssetsDesc=Descrizione cespiti # # Admin page # -AssetsSetup = Configurazione cespiti -Settings = Impostazioni -AssetsSetupPage = Pagina configurazione cespiti -ExtraFieldsAssetsType = Attributi complementari (tipo di risorse) -AssetsType=Tipo di cespite -AssetsTypeId=Id tipo di cespite -AssetsTypeLabel=Etichetta tipo di cespite -AssetsTypes=Tipi di cespite +AssetSetup=Configurazione cespiti +AssetSetupPage=Pagina configurazione cespiti +ExtraFieldsAssetModel=Attributi complementari (modello di asset) + +AssetsType=Modello di risorsa +AssetsTypeId=ID modello asset +AssetsTypeLabel=Etichetta modello asset +AssetsTypes=Modelli di asset +ASSET_ACCOUNTANCY_CATEGORY=Gruppo contabilità cespiti # # Menu # -MenuAssets = Cespiti -MenuNewAsset = Nuovo cespite -MenuTypeAssets = Tipi di cespite -MenuListAssets = Elenco -MenuNewTypeAssets = Nuovo -MenuListTypeAssets = Elenco +MenuAssets=Cespiti +MenuNewAsset=Nuovo cespite +MenuAssetModels=Risorse modello +MenuListAssets=Elenco +MenuNewAssetModel=Il nuovo modello di asset +MenuListAssetModels=Elenco # # Module # +ConfirmDeleteAsset=Vuoi davvero eliminare questo cespite? + +# +# Tab +# +AssetDepreciationOptions=Opzioni di ammortamento +AssetAccountancyCodes=Conti +AssetDepreciation=Ammortamento + +# +# Asset +# Asset=Cespite -NewAssetType=Nuovo tipo cespite -NewAsset=Nuovo cespite -ConfirmDeleteAsset=Sei sicuro di voler eliminare questo cespite? +Assets=Cespiti +AssetReversalAmountHT=Importo di storno (senza tasse) +AssetAcquisitionValueHT=Importo di acquisizione (escluse le tasse) +AssetRecoveredVAT=IVA scaricata +AssetReversalDate=Data di annullamento +AssetDateAcquisition=Data di acquisto +AssetDateStart=Data di avvio +AssetAcquisitionType=Tipo di acquisto +AssetAcquisitionTypeNew=Nuovo +AssetAcquisitionTypeOccasion=Usato +AssetType=Tipo di cespite +AssetTypeIntangible=immateriale +AssetTypeTangible=materiale +AssetTypeInProgress=Avviato +AssetTypeFinancial=Finanziario +AssetNotDepreciated=Non ammortizzato +AssetDisposal=Disposizione +AssetConfirmDisposalAsk=Sei sicuro di voler dismettere il bene %s ? +AssetConfirmReOpenAsk=Sei sicuro di voler riaprire l'asset %s ? + +# +# Asset status +# +AssetInProgress=Avviato +AssetDisposed=Disposto +AssetRecorded=Contabile + +# +# Asset disposal +# +AssetDisposalDate=Data di smaltimento +AssetDisposalAmount=Valore di smaltimento +AssetDisposalType=Tipo di smaltimento +AssetDisposalDepreciated=Svalutare l'anno di trasferimento +AssetDisposalSubjectToVat=Smaltimento soggetto ad IVA + +# +# Asset model +# +AssetModel=Il modello dell'asset +AssetModels=I modelli di asset + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Ammortamento economico +AssetDepreciationOptionAcceleratedDepreciation=Ammortamento anticipato (tasse) +AssetDepreciationOptionDepreciationType=Tipo di ammortamento +AssetDepreciationOptionDepreciationTypeLinear=Lineare +AssetDepreciationOptionDepreciationTypeDegressive=Degressivo +AssetDepreciationOptionDepreciationTypeExceptional=Eccezionale +AssetDepreciationOptionDegressiveRate=Tasso decrescente +AssetDepreciationOptionAcceleratedDepreciation=Ammortamento anticipato (tasse) +AssetDepreciationOptionDuration=Durata +AssetDepreciationOptionDurationType=Digitare durata +AssetDepreciationOptionDurationTypeAnnual=Annuale +AssetDepreciationOptionDurationTypeMonthly=Mensilmente +AssetDepreciationOptionDurationTypeDaily=Quotidiano +AssetDepreciationOptionRate=Vota (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Base di ammortamento (IVA esclusa) +AssetDepreciationOptionAmountBaseDeductibleHT=Base deducibile (IVA esclusa) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Importo totale ultimo ammortamento (IVA esclusa) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Ammortamento economico +AssetAccountancyCodeAsset=Cespite +AssetAccountancyCodeDepreciationAsset=Ammortamento +AssetAccountancyCodeDepreciationExpense=Spesa di ammortamento +AssetAccountancyCodeValueAssetSold=Valore del bene ceduto +AssetAccountancyCodeReceivableOnAssignment=Credito a cessione +AssetAccountancyCodeProceedsFromSales=Proventi da smaltimento +AssetAccountancyCodeVatCollected=IVA riscossa +AssetAccountancyCodeVatDeductible=Recupero IVA sui beni +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Ammortamento anticipato (tasse) +AssetAccountancyCodeAcceleratedDepreciation=Conto +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Spesa di ammortamento +AssetAccountancyCodeProvisionAcceleratedDepreciation=Recupero/fornitura + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Base di ammortamento (IVA esclusa) +AssetDepreciationBeginDate=Inizio ammortamento il +AssetDepreciationDuration=Durata +AssetDepreciationRate=Vota (%%) +AssetDepreciationDate=Data di ammortamento +AssetDepreciationHT=Ammortamento (IVA esclusa) +AssetCumulativeDepreciationHT=Ammortamento cumulato (IVA esclusa) +AssetResidualHT=Valore residuo (IVA esclusa) +AssetDispatchedInBookkeeping=Ammortamento registrato +AssetFutureDepreciationLine=Ammortamento futuro +AssetDepreciationReversal=Inversione + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=L'ID della risorsa o il suono del modello non sono stati forniti +AssetErrorFetchAccountancyCodesForMode=Errore durante il recupero dei conti contabili per la modalità di ammortamento '%s' +AssetErrorDeleteAccountancyCodesForMode=Errore durante l'eliminazione dei conti contabili dalla modalità di ammortamento "%s" +AssetErrorInsertAccountancyCodesForMode=Errore durante l'inserimento dei conti contabili della modalità di ammortamento '%s' +AssetErrorFetchDepreciationOptionsForMode=Errore durante il recupero delle opzioni per la modalità di ammortamento '%s' +AssetErrorDeleteDepreciationOptionsForMode=Errore durante l'eliminazione delle opzioni della modalità di ammortamento "%s" +AssetErrorInsertDepreciationOptionsForMode=Errore durante l'inserimento delle opzioni della modalità di ammortamento "%s" +AssetErrorFetchDepreciationLines=Errore durante il recupero delle righe di ammortamento registrate +AssetErrorClearDepreciationLines=Errore durante l'eliminazione delle righe di ammortamento registrate (storno e futuro) +AssetErrorAddDepreciationLine=Errore durante l'aggiunta di una riga di ammortamento +AssetErrorCalculationDepreciationLines=Errore nel calcolo delle righe di ammortamento (recupero e futuro) +AssetErrorReversalDateNotProvidedForMode=La data di storno non è fornita per il metodo di ammortamento '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=La data di storno deve essere maggiore o uguale all'inizio dell'anno fiscale corrente per il metodo di ammortamento '%s' +AssetErrorReversalAmountNotProvidedForMode=L'importo di storno non è fornito per la modalità di ammortamento '%s'. +AssetErrorFetchCumulativeDepreciation=Errore durante il recupero dell'importo di ammortamento accumulato dalla riga di ammortamento +AssetErrorSetLastCumulativeDepreciation=Errore durante la registrazione dell'ultimo importo di ammortamento accumulato diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang index f550d01d18c..9cb8db34504 100644 --- a/htdocs/langs/it_IT/banks.lang +++ b/htdocs/langs/it_IT/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transazione AddBankRecord=Aggiungi operazione AddBankRecordLong=Aggiungi operazione manualmente Conciliated=Conciliata -ReConciliedBy=Reconciled by +ReConciliedBy=Riconciliato da DateConciliating=Data di conciliazione BankLineConciliated=Voce riconciliata con ricevuta bancaria -BankLineReconciled=Reconciled -BankLineNotReconciled=Not reconciled +BankLineReconciled=Riconciliato +BankLineNotReconciled=Non riconciliato CustomerInvoicePayment=Pagamento fattura attiva SupplierInvoicePayment=Pagamento fornitore SubscriptionPayment=Pagamento adesione @@ -172,8 +172,8 @@ SEPAMandate=Mandato SEPA YourSEPAMandate=I tuoi mandati SEPA FindYourSEPAMandate=Questo è il tuo mandato SEPA che autorizza la nostra azienda ad effettuare un ordine di addebito diretto alla tua banca. Da restituire firmata (scansione del documento firmato) o inviato all'indirizzo email AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=Controllo cassa POS +NewCashFence=Nuovo controllo cassa (apertura o chiusura) BankColorizeMovement=Colora i movimenti BankColorizeMovementDesc=Se questa funzione è abilitata, è possibile scegliere il colore di sfondo specifico per i movimenti di debito o credito BankColorizeMovementName1=Colore di sfondo per il movimento di debito @@ -182,6 +182,6 @@ IfYouDontReconcileDisableProperty=Se non esegui le riconciliazioni bancarie su a NoBankAccountDefined=Nessun conto bancario definito NoRecordFoundIBankcAccount=Nessun record trovato nel conto bancario. Comunemente, ciò si verifica quando un record è stato eliminato manualmente dall'elenco delle transazioni nel conto bancario (ad esempio durante una riconciliazione del conto bancario). Un altro motivo è che il pagamento è stato registrato quando il modulo "%s" è stato disabilitato. AlreadyOneBankAccount=È già stato definito un conto bancario -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. -ToCreateRelatedRecordIntoBank=To create missing related bank record +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Bonifico SEPA: 'Tipo di pagamento' a livello 'Bonifico' +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Quando si genera un file XML SEPA per i bonifici, la sezione "PaymentTypeInformation" può ora essere collocata all'interno della sezione "CreditTransferTransactionInformation" (anziché nella sezione "Pagamento"). Raccomandiamo vivamente di non selezionare questa opzione per posizionare PaymentTypeInformation a livello di pagamento, poiché tutte le banche non lo accetteranno necessariamente a livello di CreditTransferTransactionInformation. Contatta la tua banca prima di inserire PaymentTypeInformation al livello CreditTransferTransactionInformation. +ToCreateRelatedRecordIntoBank=Per creare un record bancario correlato mancante diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang index 8de711bae32..a7e2c7d4d70 100644 --- a/htdocs/langs/it_IT/bills.lang +++ b/htdocs/langs/it_IT/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Statistiche fatture attive BillsStatisticsSuppliers=Statistiche fatture fornitore DisabledBecauseDispatchedInBookkeeping=Disabilitato perché la fattura è stata inviata alla contabilità DisabledBecauseNotLastInvoice=Disabilitato perché la fattura non è cancellabile. Alcune fatture sono state registrate dopo questa e si avrebbero errori nella sequenza di numerazione. +DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable. This invoice is not the last one in situation invoice cycle. DisabledBecauseNotErasable=Disabilitata perché impossibile da cancellare InvoiceStandard=Fattura Standard InvoiceStandardAsk=Fattura Standard InvoiceStandardDesc=Questo tipo di fattura è la fattura più comune. +InvoiceStandardShort=Standard InvoiceDeposit=Fattura d'acconto InvoiceDepositAsk=Fattura d'acconto InvoiceDepositDesc=Questo tipo di fattura viene usata quando si riceve un acconto. @@ -24,6 +26,7 @@ InvoiceProForma=Fattura proforma InvoiceProFormaAsk=Fattura proforma InvoiceProFormaDesc=La fattura proforma è uguale ad una fattura vera, ma non ha valore contabile. InvoiceReplacement=Fattura sostitutiva +InvoiceReplacementShort=Replacement InvoiceReplacementAsk=Fattura sostitutiva InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

    Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Nota di credito @@ -156,9 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=Errore, la fattura a correzione deve avere un im ErrorInvoiceOfThisTypeMustBePositive=Errore, questo tipo di fattura deve avere importo positivo ErrorCantCancelIfReplacementInvoiceNotValidated=Errore, non si può annullare una fattura che è stato sostituita da un'altra fattura non ancora convalidata ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. -ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. +ErrorInvoiceIsNotLastOfSameType=Errore: la data della fattura %s è %s. Deve essere posteriore o uguale all'ultima data per fatture dello stesso tipo (%s). Si prega di modificare la data della fattura. BillFrom=Da BillTo=A +ShippingTo=Shipping to ActionsOnBill=Azioni su fattura RecurringInvoiceTemplate=Template/fatture ricorrenti NoQualifiedRecurringInvoiceTemplateFound=Nessun modello ricorrente di fattura è abilitato per la generazione. @@ -283,8 +287,8 @@ RecurringInvoices=Fatture ricorrenti RecurringInvoice=Fattura ricorrente RepeatableInvoice=Modello fattura RepeatableInvoices=Modello fatture -RecurringInvoicesJob=Generation of recurring invoices (sales invoices) -RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +RecurringInvoicesJob=Generazione di fatture ricorrenti (fatture di vendita) +RecurringSupplierInvoicesJob=Generazione di fatture ricorrenti (fatture di acquisto) Repeatable=Modello Repeatables=Modelli ChangeIntoRepeatableInvoice=Converti in modello di fattura @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 giorni PaymentCondition14D=Pagamento a 14 giorni PaymentConditionShort14DENDMONTH=14 giorni fine mese PaymentCondition14DENDMONTH=Pagamento a 14 giorni fine mese +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposito +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposito, resto alla consegna FixAmount=Importo fisso - 1 riga con etichetta "%s" VarAmount=Importo variabile (%% tot.) VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s' VarAmountAllLines=Importo variabile (%% tot.) - tutte le righe dall'origine +DepositPercent=Deposito %% +DepositGenerationPermittedByThePaymentTermsSelected=Ciò è consentito dai termini di pagamento selezionati +GenerateDeposit=Genera una fattura di deposito %s%% +ValidateGeneratedDeposit=Convalida il deposito generato +DepositGenerated=Deposito generato +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Puoi generare automaticamente un deposito solo da una proposta o da un ordine +ErrorPaymentConditionsNotEligibleToDepositCreation=Le condizioni di pagamento scelte non sono idonee per la generazione automatica del deposito # PaymentType PaymentTypeVIR=Bonifico bancario PaymentTypeShortVIR=Bonifico bancario PaymentTypePRE=Domiciliazione bancaria +PaymentTypePREdetails=(on account *-%s) PaymentTypeShortPRE=Domicil. banc. PaymentTypeLIQ=Pagamento in contanti PaymentTypeShortLIQ=Contanti @@ -485,7 +499,7 @@ PaymentByChequeOrderedToShort=I pagamenti tramite assegno (tasse incluse) devono SendTo=spedire a PaymentByTransferOnThisBankAccount=Pagamento tramite Bonifico sul seguente Conto Bancario VATIsNotUsedForInvoice=* Non applicabile IVA art-293B del CGI -VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI +VATIsNotUsedForInvoiceAsso=* IVA non applicabile art-261-7 CGI LawApplicationPart1=Con l'applicazione della legge 80.335 del 12/05/80 LawApplicationPart2=I beni restano di proprietà della LawApplicationPart3=the seller until full payment of @@ -610,5 +624,10 @@ SearchUnpaidInvoicesWithDueDate=Cerca fatture non pagate con data di scadenza = NoPaymentAvailable=Nessun pagamento disponibile per %s PaymentRegisteredAndInvoiceSetToPaid=Pagamento registrato e fattura %s impostata su pagata SendEmailsRemindersOnInvoiceDueDate=Invia promemoria via e-mail per fatture non pagate -MakePaymentAndClassifyPayed=Record payment -BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +MakePaymentAndClassifyPayed=Registrare il pagamento +BulkPaymentNotPossibleForInvoice=Il pagamento in blocco non è possibile per la fattura %s (tipo o stato errato) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/it_IT/bookmarks.lang b/htdocs/langs/it_IT/bookmarks.lang index 88e23214ccf..a1116c8062f 100644 --- a/htdocs/langs/it_IT/bookmarks.lang +++ b/htdocs/langs/it_IT/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Scegli se la pagina collegata de BookmarksManagement=Gestione segnalibri BookmarksMenuShortCut=Ctrl + Maiusc + m NoBookmarks=Nessun segnalibro definito +NoBookmarkFound=Nessun segnalibro trovato diff --git a/htdocs/langs/it_IT/boxes.lang b/htdocs/langs/it_IT/boxes.lang index 4f7bb3f5d3a..86418b9435c 100644 --- a/htdocs/langs/it_IT/boxes.lang +++ b/htdocs/langs/it_IT/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Ultimi abbonamenti dei membri BoxFicheInter=Ultimi interventi BoxCurrentAccounts=Saldo conti aperti BoxTitleMemberNextBirthdays=Compleanni di questo mese (membri) -BoxTitleMembersByType=Membri per tipo +BoxTitleMembersByType=Membri per tipo e stato BoxTitleMembersSubscriptionsByYear=Abbonamenti membri per anno BoxTitleLastRssInfos=Ultime %s notizie da %s BoxTitleLastProducts=Prodotti/Servizi: ultimi %s modificati @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Ordini dei fornitori in attesa di ricezi BoxTitleLastModifiedContacts=Contatti/indirizzi: ultimi %s modificati BoxMyLastBookmarks=Segnalibri: ultimi %s modificati BoxOldestExpiredServices=Servizi scaduti da più tempo ancora attivi +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Ultimi %s contatti con servizi scaduti ancora attivi BoxTitleLastActionsToDo=Ultime %s azioni da fare +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Gli ultimi contratti %s che sono stati modificati BoxTitleLastModifiedDonations=Ultime donazioni %s che sono state modificate BoxTitleLastModifiedExpenses=Ultime note spese %s che sono state modificate diff --git a/htdocs/langs/it_IT/cashdesk.lang b/htdocs/langs/it_IT/cashdesk.lang index 81475390bd1..cd023006979 100644 --- a/htdocs/langs/it_IT/cashdesk.lang +++ b/htdocs/langs/it_IT/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Footer AmountAtEndOfPeriod=Amount at end of period (day, month or year) TheoricalAmount=Importo teorico RealAmount=Real amount -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Chiusura cassa +CashFenceDone=Chiusura cassa effettuata per il periodo NbOfInvoices=Numero di fatture Paymentnumpad=Type of Pad to enter payment Numberspad=Numbers Pad @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    Il tag {TN} viene utilizzato per aggi TakeposGroupSameProduct=Raggruppa le stesse linee di prodotti StartAParallelSale=Inizia una nuova vendita parallela SaleStartedAt=La vendita è iniziata a %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Apri il popup "Controllo cassa" quando apri il POS +CloseCashFence=Chiudere il controllo della cassa CashReport=Rapporto di cassa MainPrinterToUse=Stampante principale da utilizzare OrderPrinterToUse=Ordine stampante da utilizzare @@ -134,5 +134,6 @@ PrintWithoutDetailsButton=Aggiungi il pulsante "Stampa senza dettagli". PrintWithoutDetailsLabelDefault=Etichetta di linea per impostazione predefinita sulla stampa senza dettagli PrintWithoutDetails=Stampa senza dettagli YearNotDefined=L'anno non è definito -TakeposBarcodeRuleToInsertProduct=Barcode rule to insert product -TakeposBarcodeRuleToInsertProductDesc=Rule to extract the product reference + a quantity from a scanned barcode.
    If empty (default value), application will use the full barcode scanned to find the product.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +TakeposBarcodeRuleToInsertProduct=Regola del codice a barre per inserire il prodotto +TakeposBarcodeRuleToInsertProductDesc=Regola per estrarre il riferimento del prodotto + una quantità da un codice a barre scansionato.
    Se vuoto (valore predefinito), l'applicazione utilizzerà il codice a barre completo scansionato per trovare il prodotto.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +AlreadyPrinted=Già stampato diff --git a/htdocs/langs/it_IT/categories.lang b/htdocs/langs/it_IT/categories.lang index 191d7d1fe51..a70d6d67865 100644 --- a/htdocs/langs/it_IT/categories.lang +++ b/htdocs/langs/it_IT/categories.lang @@ -90,10 +90,12 @@ CategorieRecursivHelp=If option is on, when you add a product into a subcategory AddProductServiceIntoCategory=Aggiungi il seguente prodotto/servizio AddCustomerIntoCategory=Assegna la categoria al cliente AddSupplierIntoCategory=Assegna la categoria al fornitore +AssignCategoryTo=Assegna categoria a ShowCategory=Mostra tag/categoria ByDefaultInList=Default nella lista ChooseCategory=Choose category StocksCategoriesArea=Categorie di magazzino +TicketsCategoriesArea=Categorie dei ticket ActionCommCategoriesArea=Categorie di eventi WebsitePagesCategoriesArea=Pagina-Contenitore delle Categorie KnowledgemanagementsCategoriesArea=Categorie di articoli KM diff --git a/htdocs/langs/it_IT/commercial.lang b/htdocs/langs/it_IT/commercial.lang index 778c71d30d6..e857adbca42 100644 --- a/htdocs/langs/it_IT/commercial.lang +++ b/htdocs/langs/it_IT/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Stato del cliente potenziale DraftPropals=Bozze di proposte commerciali NoLimit=Nessun limite ToOfferALinkForOnlineSignature=Link per firma online -WelcomeOnOnlineSignaturePage=Benvenuti nella pagina per accettare proposte commerciali da %s -ThisScreenAllowsYouToSignDocFrom=Questa schermata consente di accettare e firmare, o rifiutare, un preventivo/proposta commerciale -ThisIsInformationOnDocumentToSign=Queste sono informazioni sul documento da accettare o rifiutare +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Questa schermata consente di accettare e firmare, o rifiutare, un preventivo/proposta commerciale +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Queste sono informazioni sul documento da accettare o rifiutare +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Firma del preventivo/proposta commerciale %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Funzionalità per la firma online disattivata o documento generato prima che la funzione fosse abilitata diff --git a/htdocs/langs/it_IT/companies.lang b/htdocs/langs/it_IT/companies.lang index d712751a0aa..86f02c34c0c 100644 --- a/htdocs/langs/it_IT/companies.lang +++ b/htdocs/langs/it_IT/companies.lang @@ -19,7 +19,7 @@ ProspectionArea=Area clienti potenziali IdThirdParty=Id soggetto terzo IdCompany=Id società IdContact=Id contatto -ThirdPartyAddress=Third-party address +ThirdPartyAddress=Indirizzo di terze parti ThirdPartyContacts=Contatti del soggetto terzo ThirdPartyContact=Contatto/indirizzo del soggetto terzo Company=Società @@ -52,21 +52,22 @@ CivilityCode=Titolo RegisteredOffice=Sede legale Lastname=Cognome Firstname=Nome -RefEmployee=Employee reference -NationalRegistrationNumber=National registration number +RefEmployee=Riferimento dipendente +NationalRegistrationNumber=Numero di registrazione nazionale PostOrFunction=Posizione lavorativa UserTitle=Titolo NatureOfThirdParty=Natura NatureOfContact=Natura del contatto Address=Indirizzo State=Provincia/Cantone/Stato +StateId=ID di stato StateCode=Stato / Provincia StateShort=Stato Region=Regione Region-State=Regione - Stato Country=Paese CountryCode=Codice del paese -CountryId=Id paese +CountryId=ID Paese Phone=Telefono PhoneShort=Telefono Skype=Skype @@ -105,7 +106,7 @@ WrongSupplierCode=Codice fornitore non valido CustomerCodeModel=Modello codice cliente SupplierCodeModel=Modello codice fornitore Gencod=Codice a barre -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=Codice a barre del prezzo rif ##### Professional ID ##### ProfId1Short=C.C.I.A.A. ProfId2Short=R.E.A. @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=ID. prof. 1 (Registro delle imprese) ProfId2CM=ID. prof. 2 (n. contribuente) -ProfId3CM=ID. prof. 3 (Decreto di creazione) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId3CM=Id. prof. 3 (n. del decreto di creazione) +ProfId4CM=Id. prof. 4 (Certificato di deposito n.) +ProfId5CM=Id. prof. 5 (Altri) ProfId6CM=Id Professionale 6 ProfId1ShortCM=Registro delle Imprese ProfId2ShortCM=contribuente n. -ProfId3ShortCM=Decreto di creazione -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=N. di decreto di creazione +ProfId4ShortCM=Certificato di deposito n. ProfId5ShortCM=Altri ProfId6ShortCM=Id Professionale 6 ProfId1CO=RUT @@ -363,7 +364,7 @@ ListOfThirdParties=Elenco dei soggetti terzi ShowCompany=Terze parti ShowContact=Contatto-Indirizzo ContactsAllShort=Tutti (Nessun filtro) -ContactType=Contact role +ContactType=Ruolo di contatto ContactForOrders=Contatto per gli ordini ContactForOrdersOrShipments=Contatto per ordini o spedizioni ContactForProposals=Contatto per le proposte commerciali @@ -443,7 +444,7 @@ AddAddress=Aggiungi un indirizzo SupplierCategory=Categoria fornitore JuridicalStatus200=Indipendente DeleteFile=Cancella il file -ConfirmDeleteFile=Vuoi davvero cancellare questo file? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Assegna un commerciale Organization=Organizzazione FiscalYearInformation=Anno fiscale diff --git a/htdocs/langs/it_IT/compta.lang b/htdocs/langs/it_IT/compta.lang index 1541aec5fbb..2fdaa413faa 100644 --- a/htdocs/langs/it_IT/compta.lang +++ b/htdocs/langs/it_IT/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=I totali qui mostrati sono calcolati usan Param=Configurazione RemainingAmountPayment=Amount payment remaining: Account=Conto -Accountparent=Parent account -Accountsparent=Parent accounts +Accountparent=Conto padre +Accountsparent=Conti padre Income=Entrate Outcome=Uscite MenuReportInOut=Entrate/Uscite @@ -29,15 +29,17 @@ BalanceBefore=Bilancio (precedente) Balance=Saldo Debit=Debito Credit=Credito +AccountingDebit=Debit +AccountingCredit=Credito Piece=Documento contabile AmountHTVATRealReceived=Totale riscosso AmountHTVATRealPaid=Totale pagato VATToPay=Tax sales -VATReceived=Tax received +VATReceived=IVA Incassata VATToCollect=Tax purchases VATSummary=Tax monthly VATBalance=Tax Balance -VATPaid=Tax paid +VATPaid=IVA Versata LT1Summary=Tax 2 summary LT2Summary=Tax 3 summary LT1SummaryES=RE Balance @@ -116,8 +118,8 @@ SocialContributionsPayments=Pagamenti tasse/contributi ShowVatPayment=Visualizza pagamento IVA TotalToPay=Totale da pagare BalanceVisibilityDependsOnSortAndFilters=Il saldo è visibile in questo elenco solo se la tabella è ordinata su %s e filtrata su 1 conto bancario (senza altri filtri) -CustomerAccountancyCode=Customer accounting code -SupplierAccountancyCode=vendor accounting code +CustomerAccountancyCode=Codice contabile cliente +SupplierAccountancyCode=Codice contabile fornitore CustomerAccountancyCodeShort=Cod. cont. cliente SupplierAccountancyCodeShort=Cod. cont. fornitore AccountNumber=Numero di conto @@ -146,11 +148,11 @@ ConfirmPaySalary=Sei sicuro di voler classificare questa busta paga come pagata? DeleteSocialContribution=Cancella il pagamento della tassa/contributo DeleteVAT=Elimina una dichiarazione IVA DeleteSalary=Elimina una scheda stipendio -DeleteVariousPayment=Delete a various payment +DeleteVariousPayment=Elimina un pagamento diverso ConfirmDeleteSocialContribution=Sei sicuro di voler eliminare questo pagamento fiscale/sociale? ConfirmDeleteVAT=Sei sicuro di voler eliminare questa dichiarazione IVA? -ConfirmDeleteSalary=Are you sure you want to delete this salary ? -ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? +ConfirmDeleteSalary=Sei sicuro di voler eliminare questo stipendio? +ConfirmDeleteVariousPayment=Sei sicuro di voler eliminare questi vari pagamenti? ExportDataset_tax_1=Tasse/contributi e pagamenti CalcModeVATDebt=Modalità %sIVA su contabilità d'impegno%s. CalcModeVATEngagement=Calcola %sIVA su entrate-uscite%s @@ -177,7 +179,7 @@ RulesResultDue=- Include tutte le fatture, spese, IVA, donazioni, stipendi, paga RulesResultInOut=- Comprende i pagamenti reali effettuati su fatture, spese, IVA e stipendi.
    - Si basa sulle date di pagamento di fatture, spese, IVA, donazioni e stipendi. RulesCADue=- Include le fatture scadute del cliente indipendentemente dal fatto che siano pagate o meno.
    - Si basa sulla data di fatturazione di queste fatture.
    RulesCAIn=- Comprende le fatture effettivamente pagate dai clienti.
    - Si basa sulla data dei pagamenti.
    -RulesCATotalSaleJournal=It includes all credit lines from the Sale journal. +RulesCATotalSaleJournal=Include tutte le righe di credito dal giornale di registrazione vendite. RulesSalesTurnoverOfIncomeAccounts=Comprende (accredito - addebito) di righe per conti prodotto nel gruppo ENTRATE RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" @@ -243,14 +245,14 @@ CalculationRuleDescSupplier=According to vendor, choose appropriate method to ap TurnoverPerProductInCommitmentAccountingNotRelevant=Il report sul fatturato per prodotto non è disponibile. Questo rapporto è disponibile solo per il fatturato. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Metodo di calcolo -AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Codice contabile predefinito per il pagamento dell'IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. +AccountancyJournal=Libro contabile +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Il conto di contabilità definito nella scheda del soggetto terzo verrà utilizzato solamente per il conto secondario. Questo valore verrà usato per il libro mastro e come valore di default del registro secondario se il codice contabile del cliente non è definito nella scheda del soggetto terzo. +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Il conto di contabilità definito nella scheda del soggetto terzo verrà utilizzato solamente per il conto secondario. Questo valore verrà usato per il libro mastro e come valore di default del registro secondario se il codice contabile del fornitore non è definito nella scheda del soggetto terzo. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Conferma il clone di una dichiarazione IVA ConfirmCloneSalary=Conferma il clone di uno stipendio @@ -268,7 +270,7 @@ ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Scheda periodo di esercizio ListSocialContributionAssociatedProject=Elenco tasse/contributi associati al progetto DeleteFromCat=Remove from accounting group -AccountingAffectation=Accounting assignment +AccountingAffectation=Piano dei conti assegnato LastDayTaxIsRelatedTo=Last day of period the tax is related to VATDue=Sale tax claimed ClaimedForThisPeriod=Claimed for the period @@ -289,9 +291,9 @@ ReportPurchaseTurnover=Fatturato di acquisto fatturato ReportPurchaseTurnoverCollected=Fatturato di acquisto raccolto IncludeVarpaysInResults = Includere vari pagamenti nei rapporti IncludeLoansInResults = Includere prestiti nei report -InvoiceLate30Days = Late (> 30 days) -InvoiceLate15Days = Late (15 to 30 days) -InvoiceLateMinus15Days = Late (< 15 days) +InvoiceLate30Days = In ritardo (> 30 giorni) +InvoiceLate15Days = Tardivo (da 15 a 30 giorni) +InvoiceLateMinus15Days = In ritardo (< 15 giorni) InvoiceNotLate = In scadenza (< 15 giorni) InvoiceNotLate15Days = In scadenza (tra 15 e 30 giorni) InvoiceNotLate30Days = In scadenza (> 30 giorni) @@ -300,3 +302,4 @@ InvoiceToPay15Days=Per pagare (da 15 a 30 giorni) InvoiceToPay30Days=Per pagare (> 30 giorni) ConfirmPreselectAccount=Preseleziona il codice contabile ConfirmPreselectAccountQuestion=Sei sicuro di voler preselezionare le righe selezionate %s con questo codice contabile? +AmountPaidMustMatchAmountOfDownPayment=L'importo pagato deve corrispondere all'importo dell'acconto diff --git a/htdocs/langs/it_IT/contracts.lang b/htdocs/langs/it_IT/contracts.lang index 1df943aee02..0698c8058e2 100644 --- a/htdocs/langs/it_IT/contracts.lang +++ b/htdocs/langs/it_IT/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contratto/sottoscrizione ContractsAndLine=Contratti e righe di contratto Contract=Contratto ContractLine=Riga di contratto +ContractLines=Linee contrattuali Closing=In chiusura NoContracts=Nessun contratto MenuServices=Servizi @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Contatto per la firma dei contratti HideClosedServiceByDefault=Nascondi i servizi chiusi di default ShowClosedServices=Mostra servizi chiusi HideClosedServices=Nascondi servizi chiusi +UserStartingService=Servizio di avvio dell'utente +UserClosingService=Servizio di chiusura dell'utente diff --git a/htdocs/langs/it_IT/cron.lang b/htdocs/langs/it_IT/cron.lang index 165cc02c9c0..339661d2b30 100644 --- a/htdocs/langs/it_IT/cron.lang +++ b/htdocs/langs/it_IT/cron.lang @@ -16,7 +16,7 @@ CronExplainHowToRunWin=In ambienti Microsoft(tm) Windows per lanciare il comando CronMethodDoesNotExists=La classe %s non contiene alcune metodo %s CronMethodNotAllowed=Il metodo %s della classe %s è nella lista nera dei metodi vietati CronJobDefDesc=I profili cron sono definiti nel file di descrizione del modulo. Quando il modulo viene attivao, vengono caricati e resi disponivbili permettendoti di amministrare i processi dal menu strumenti amministrazione %s. -CronJobProfiles=Lista dei profili cron predefiniti +CronJobProfiles=Elenco dei profili cron predefiniti # Menu EnabledAndDisabled=Attivato e disattivato # Page list @@ -26,7 +26,7 @@ CronCommand=Comando CronList=Processi pianificati CronDelete=Cancella i processi pianificati CronConfirmDelete=Vuoi davvero eliminare questi processi pianificati? -CronExecute=Esegui i processi pianificati +CronExecute=Avvia ora CronConfirmExecute=Vuoi davvero eseguire ora i processi pianificati? CronInfo=Il modulo di programmazione permette di pianificare l'esecuzione automatica dei processi. Essi possono anche essere lanciati manualmente. CronTask=Processo @@ -58,7 +58,7 @@ CronNote=Commento CronFieldMandatory=Il campo %s è obbligatorio CronErrEndDateStartDt=La data di fine non può essere precedente a quella di inizio StatusAtInstall=Stato all'installazione del modulo -CronStatusActiveBtn=Programma +CronStatusActiveBtn=Attiva schedulazione CronStatusInactiveBtn=Disattiva CronTaskInactive=Questo processo è disattivo (non pianificato) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Vai nel menu "Home - Strumenti di amministrazion JobDisabled=Processo disabilitato MakeLocalDatabaseDumpShort=Backup del database locale MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql' or 'pgsql'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Invia backup del database locale +MakeSendLocalDatabaseDump=Invia il backup del database locale tramite e-mail. I parametri sono: to, from, subject, message, filename (Nome del file inviato), filter ('sql' solo per il backup del database) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Pulisci cronjob incompiuto +CleanUnfinishedCronjob=Pulisci cronjob bloccato in elaborazione quando il processo non è più in esecuzione WarningCronDelayed=Attenzione, per motivi di performance, qualunque sia la data della prossima esecuzione dei processi attivi, i tuoi processi possono essere ritardati di un massimo di %s ore prima di essere eseguiti DATAPOLICYJob=Pulizia dei dati e anonimizzatore JobXMustBeEnabled=Il job %s deve essere abilitato +EmailIfError=Email di avviso in caso di errore +ErrorInBatch=Errore durante l'esecuzione del lavoro %s + # Cron Boxes LastExecutedScheduledJob=Ultimo processo pianificato eseguito NextScheduledJobExecute=Prossimo processo pianificato da eseguire NumberScheduledJobError=Numero di processi pianificati in errore +NumberScheduledJobNeverFinished=Numero di lavori programmati mai terminati diff --git a/htdocs/langs/it_IT/datapolicy.lang b/htdocs/langs/it_IT/datapolicy.lang new file mode 100644 index 00000000000..7e42afedcbc --- /dev/null +++ b/htdocs/langs/it_IT/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Cliente +DATAPOLICY_TIERS_PROSPECT = Potenziale cliente +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Fornitore +DATAPOLICY_CONTACT_CLIENT = Cliente +DATAPOLICY_CONTACT_PROSPECT = Potenziale cliente +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Fornitore +DATAPOLICY_ADHERENT = Membro +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/it_IT/dict.lang b/htdocs/langs/it_IT/dict.lang index 058888bacef..314f1ae771f 100644 --- a/htdocs/langs/it_IT/dict.lang +++ b/htdocs/langs/it_IT/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Sig.ra +CivilityMMEShort=Sig.ra CivilityMR=Sig. +CivilityMRShort=Sig. CivilityMLE=Signora CivilityMTRE=Signor CivilityDR=Dottore diff --git a/htdocs/langs/it_IT/ecm.lang b/htdocs/langs/it_IT/ecm.lang index 7583353f3c0..572108d20ce 100644 --- a/htdocs/langs/it_IT/ecm.lang +++ b/htdocs/langs/it_IT/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Directory manuale ECMSectionAuto=Directory automatica ECMSectionsManual=Gerarchia manuale ECMSectionsAuto=Gerarchia automatica +ECMSectionsMedias=Medias tree ECMSections=Directory ECMRoot=ECM Radice ECMNewSection=Nuova sezione @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Numero di file nelle sub-directory ECMCreationUser=Creatore ECMArea=Area DMS/ECM ECMAreaDesc=L'area DMS/ECM (Document Management System / Electronic Content Management) consente di salvare, condividere e cercare rapidamente tutti i tipi di documenti in Dolibarr. -ECMAreaDesc2=* Le directory vengono riempite automaticamente quando si aggiungono dei documenti dalla scheda di un elemento.
    * Per salvare documenti non legati ad un elemento si può usare l'aggiunta manuale. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=La directory%s è stata eliminata. ECMSectionWasCreated=Cartella %s è stata creata. ECMSearchByKeywords=Ricerca per parole chiave diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang index f784773bb16..1bceb3d5614 100644 --- a/htdocs/langs/it_IT/errors.lang +++ b/htdocs/langs/it_IT/errors.lang @@ -9,10 +9,12 @@ ErrorBadMXDomain=L'e-mail %s sembra errata (il dominio non ha un record MX valid ErrorBadUrl=L'URL %s non è corretto ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. ErrorRefAlreadyExists=Il riferimento %s esiste già. +ErrorTitleAlreadyExists=Il titolo %s esiste già. ErrorLoginAlreadyExists=L'utente %s esiste già. ErrorGroupAlreadyExists=Il gruppo %s esiste già ErrorEmailAlreadyExists=L'e-mail %s esiste già. ErrorRecordNotFound=Record non trovato +ErrorRecordNotFoundShort=Non trovato ErrorFailToCopyFile=Impossibile copiare il file '%s' in '%s' ErrorFailToCopyDir=Impossibile copiare la directory ' %s ' in ' %s '. ErrorFailToRenameFile=Impossibile rinominare il file '%s' in '%s'. @@ -47,6 +49,7 @@ ErrorBadImageFormat=Tipo file immagine non supportato (la tua installazione di P ErrorBadDateFormat=Il valore '%s' ha un formato della data sbagliato ErrorWrongDate=La data non è corretta! ErrorFailedToWriteInDir=Impossibile scrivere nella directory %s +ErrorFailedToBuildArchive=Impossibile creare il file di archivio %s ErrorFoundBadEmailInFile=Sintassi email errata nelle righe %s del file (ad esempio alla riga %s con email = %s) ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. ErrorFieldsRequired=Mancano alcuni campi obbligatori. @@ -66,7 +69,7 @@ ErrorDestinationAlreadyExists=Esiste già un altro file con il nome %s . ErrorPartialFile=File non completamente ricevuto dal server. ErrorNoTmpDir=La directory temporanea %s non esiste. ErrorUploadBlockedByAddon=Upload bloccato da un plugin di Apache/PHP -ErrorFileSizeTooLarge=La dimensione del file è troppo grande. +ErrorFileSizeTooLarge=La dimensione del file è troppo grande o il file non è fornito. ErrorFieldTooLong=Il campo %s è troppo lungo. ErrorSizeTooLongForIntType=Numero troppo lungo (massimo %s cifre) ErrorSizeTooLongForVarcharType=Stringa troppo lunga (limite di %s caratteri) @@ -75,7 +78,7 @@ ErrorNoValueForCheckBoxType=Per favore immetti un valore per la lista di control ErrorNoValueForRadioType=Per favore immetti un valore per la lista radio ErrorBadFormatValueList=La lista può includere una o più virgole: %s, ma deve essercene almeno una: key,value ErrorFieldCanNotContainSpecialCharacters=The field %s must not contains special characters. -ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters and cannot contain only numbers. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Il campo %s non deve contenere caratteri speciali né maiuscoli e deve iniziare con un carattere alfabetico (a-z) ErrorFieldMustHaveXChar=The field %s must have at least %s characters. ErrorNoAccountancyModuleLoaded=Modulo contabilità disattivato ErrorExportDuplicateProfil=Questo nome profilo già esiste per questo set di esportazione @@ -91,11 +94,12 @@ ErrorModuleRequireJavascript=Per questa funzionalità Javascript deve essere att ErrorPasswordsMustMatch=Le due password digitate devono essere identiche ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Campo %s : Il valore ' %s ' contiene dati dannosi non consentiti ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s errors found ErrorFileIsInfectedWithAVirus=Il programma antivirus non è stato in grado di convalidare il file (il file potrebbe essere infetto) -ErrorSpecialCharNotAllowedForField=I caratteri speciali non sono ammessi per il campo "%s" ErrorNumRefModel=Esiste un riferimento nel database (%s) e non è compatibile con questa regola di numerazione. Rimuovere o rinominare il record per attivare questo modulo. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities @@ -219,7 +223,7 @@ ErrorTooManyErrorsProcessStopped=Troppi errori. Il processo è stato bloccato. ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. ErrorObjectMustHaveLinesToBeValidated=L'oggetto %s deve contenere almeno una riga per essere convalidato. -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Solo le fatture convalidate possono essere inviate utilizzando l'azione massiva "Invia per Email". ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before. ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently. @@ -227,7 +231,7 @@ ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on anothe ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Si noti inoltre che l'utilizzo di kit per aumentare/diminuire automaticamente i sottoprodotti non è possibile quando almeno un sottoprodotto (o un sottoprodotto di sottoprodotti) necessita di un numero di serie/lotto. ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use -ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually. +ErrorDuringChartLoad=Errore durante il caricamento del piano dei conti. Se poche voci non sono state caricate, puoi caricarle manualmente. ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set. ErrorURLMustEndWith=L'URL %s deve terminare %s @@ -240,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Gli oggetti devono avere lo stato 'A ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Gli oggetti devono avere lo stato 'Bozza' o 'Disabilitato' per essere abilitato ErrorNoFieldWithAttributeShowoncombobox=Nessun campo ha la proprietà 'mostra nel quadrato combo' nella definizione dell'oggetto '%s'. Non c'è modo di mostrare la lista combo. ErrorFieldRequiredForProduct=Il campo "%s" è obbligatorio per il prodotto %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Il problema è nella configurazione del terminale %s. ErrorAddAtLeastOneLineFirst=Aggiungi prima almeno una riga ErrorRecordAlreadyInAccountingDeletionNotPossible=Errore, il record è già stato trasferito in contabilità, la cancellazione non è possibile. @@ -269,19 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Devi prima impostare il tuo piano dei c ErrorFailedToFindEmailTemplate=Impossibile trovare il modello con nome in codice %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Durata non definita in servizio. Non c'è modo di calcolare il prezzo orario. ErrorActionCommPropertyUserowneridNotDefined=Il proprietario dell'utente è obbligatorio -ErrorActionCommBadType=Il tipo di evento selezionato (id: %n, codice: %s) non esiste nel dizionario del tipo di evento +ErrorActionCommBadType=Il tipo di evento selezionato (id: %s, codice: %s) non esiste nel dizionario del tipo di evento CheckVersionFail=Controllo della versione fallito ErrorWrongFileName=Il nome del file non può contenere __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Non nel dizionario dei termini di pagamento, modificare. ErrorIsNotADraft=%s non è una bozza ErrorExecIdFailed=Impossibile eseguire il comando "id" -ErrorBadCharIntoLoginName=Carattere non autorizzato nel nome di accesso -ErrorRequestTooLarge=Errore, richiesta troppo grande +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired +ErrorNotApproverForHoliday=Non sei l'approvatore per il congedo %s +ErrorAttributeIsUsedIntoProduct=Questo attributo viene utilizzato in una o più varianti di prodotto +ErrorAttributeValueIsUsedIntoProduct=Questo valore di attributo viene utilizzato in una o più varianti di prodotto +ErrorPaymentInBothCurrency=Errore, tutti gli importi devono essere inseriti nella stessa colonna +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Si tenta di pagare le fatture nella valuta %s da un conto con la valuta %s +ErrorInvoiceLoadThirdParty=Impossibile caricare l'oggetto di terze parti per la fattura "%s" +ErrorInvoiceLoadThirdPartyKey=Chiave di terze parti "%s" non impostata per la fattura "%s" +ErrorDeleteLineNotAllowedByObjectStatus=L'eliminazione della riga non è consentita dallo stato dell'oggetto corrente +ErrorAjaxRequestFailed=Richiesta fallita +ErrorThirpdartyOrMemberidIsMandatory=Terza parte o Membro di partnership è obbligatorio +ErrorFailedToWriteInTempDirectory=Impossibile scrivere nella directory temporanea +ErrorQuantityIsLimitedTo=La quantità è limitata a %s +ErrorFailedToLoadThirdParty=Impossibile trovare/caricare terze parti da id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Questa modalità di pagamento non è un conto bancario +ErrorStripeCustomerNotFoundCreateFirst=Il cliente Stripe non è impostato per questa terza parte (o è impostato su un valore eliminato sul lato Stripe). Crealo (o riattaccalo) prima. +ErrorCharPlusNotSupportedByImapForSearch=La ricerca IMAP non è in grado di cercare nel mittente o nel destinatario una stringa contenente il carattere + +ErrorTableNotFound=Tabella %s non trovata +ErrorValueForTooLow=Il valore per %s è troppo basso +ErrorValueCantBeNull=Il valore per %s non può essere nullo +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=I parametri di configurazione obbligatori non sono ancora stati definiti. +WarningMandatorySetupNotComplete=Fare clic qui per impostare i parametri principali WarningEnableYourModulesApplications=Attiva i moduli/applicazioni per iniziare ad utilizzare il software WarningSafeModeOnCheckExecDir=Attenzione: quando è attiva l'opzione safe_mode, il comando deve essere contenuto in una directory dichiarata dal parametro safe_mode_exec_dir. WarningBookmarkAlreadyExists=Un segnalibro per questo link (URL) o con lo stesso titolo esiste già. @@ -290,7 +316,7 @@ WarningConfFileMustBeReadOnly=Attenzione, il file di configurazione htdocs/co WarningsOnXLines=Warning su %s righe del sorgente WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. WarningLockFileDoesNotExists=Attenzione, una volta terminato il setup, devi disabilitare gli strumenti di installazione/migrazione aggiungendo il file install.lock nella directory %s. Omettendo la creazione di questo file è un grave rischio per la sicurezza. -WarningUntilDirRemoved=Tutti gli avvisi di sicurezza (visibili solo dagli amministratori) rimarranno attivi fintanto che la vulnerabilità è presente (o la costante MAIN_REMOVE_INSTALL_WARNING viene aggiunta in Impostazioni->Altre impostazioni). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Attenzione, la chiusura è effettiva anche se il numero degli elementi non coincide fra inizio e fine. Abilitare questa opzione con cautela. WarningUsingThisBoxSlowDown=Attenzione: l'uso di questo box rallenterà pesantemente tutte le pagine che lo visualizzano WarningClickToDialUserSetupNotComplete=Le impostazioni di informazione del ClickToDial per il tuo utente non sono complete (vedi la scheda ClickToDial sulla tua scheda utente) @@ -307,10 +333,13 @@ WarningProjectClosed=Il progetto è chiuso. È necessario prima aprirlo nuovamen WarningSomeBankTransactionByChequeWereRemovedAfter=Alcune transazioni bancarie sono state rimosse dopo che è stata generata la ricevuta che le includeva. Quindi il numero di assegni e il totale dello scontrino possono differire dal numero e dal totale nell'elenco. WarningFailedToAddFileIntoDatabaseIndex=Avviso, impossibile aggiungere la voce del file nella tabella dell'indice del database ECM WarningTheHiddenOptionIsOn=Attenzione, l'opzione nascosta %s è attiva. -WarningCreateSubAccounts=Attenzione, non puoi creare direttamente un sub account, devi creare una terza parte o un utente e assegnargli un codice contabile per trovarli in questo elenco +WarningCreateSubAccounts=Attenzione, non puoi creare direttamente un registro secondario, devi creare una terza parte o un utente e assegnargli un codice contabile per trovarli in questo elenco WarningAvailableOnlyForHTTPSServers=Disponibile solo se si utilizza una connessione protetta HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Il modulo %s non è stato abilitato. Quindi potresti perdere molti eventi qui. WarningPaypalPaymentNotCompatibleWithStrict=Il valore "Strict" fa sì che le funzioni di pagamento online non funzionino correttamente. Usa invece "Lax". +WarningThemeForcedTo=Attenzione, il tema è stato forzato a %s dalla costante nascosta MAIN_FORCETHEME +WarningPagesWillBeDeleted=Attenzione, questo cancellerà anche tutte le pagine/contenitori esistenti del sito web. Dovresti esportare il tuo sito web prima, così avrai un backup da re-importare in seguito. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=La convalida automatica è disabilitata quando l'opzione per diminuire le scorte è impostata su "Convalida fattura". # Validate RequireValidValue = Valore non valido diff --git a/htdocs/langs/it_IT/eventorganization.lang b/htdocs/langs/it_IT/eventorganization.lang index c96bbd91106..d3162876bbc 100644 --- a/htdocs/langs/it_IT/eventorganization.lang +++ b/htdocs/langs/it_IT/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Organizzazione di eventi Settings=Impostazioni EventOrganizationSetupPage = Pagina di configurazione dell'organizzazione dell'evento EVENTORGANIZATION_TASK_LABEL = Etichetta delle attività da creare automaticamente quando il progetto viene convalidato -EVENTORGANIZATION_TASK_LABELTooltip = Quando si convalida un evento organizzato, alcune operazioni possono essere creati automaticamente nel progetto

    Ad esempio:
    Send Call for Conference
    Invia Invito a Booth
    Ricevi invito a conferenze
    ricevere la chiamata per Booth
    sottoscrizioni aperte agli eventi per i partecipanti
    Invia ricorda l'evento ai relatori
    Invia ricorda l'evento all'host dello stand
    Invia ricorda l'evento ai partecipanti +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Invia un promemoria dell'evento ai relatori
    Invia un promemoria dell'evento agli host dello stand
    Invia un promemoria dell'evento ai partecipanti +EVENTORGANIZATION_TASK_LABELTooltip2=Mantieni vuoto se non è necessario creare attività automaticamente. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoria da aggiungere a terze parti creata automaticamente quando qualcuno suggerisce una conferenza EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categoria da aggiungere a terze parti creata automaticamente quando suggeriscono uno stand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Modello di email da inviare dopo aver ricevuto un suggerimento per una conferenza. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Nel modulo per creare/aggiungere un par # Object # EventOrganizationConfOrBooth= Conferenza o stand +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Gestire l'organizzazione di un evento ConferenceOrBooth = Conferenza o stand ConferenceOrBoothTab = Conferenza o stand AmountPaid = Importo pagato DateOfRegistration = Data di registrazione ConferenceOrBoothAttendee = Partecipante alla conferenza o allo stand +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Qui puoi votare per una conferenza o suggerirne EvntOrgRegistrationConfHelpMessage = Qui puoi suggerire una nuova conferenza da animare durante l'evento. EvntOrgRegistrationBoothHelpMessage = Qui puoi candidarti per avere uno stand durante l'evento. ListOfSuggestedConferences = Elenco delle conferenze suggerite -ListOfSuggestedBooths = Elenco delle cabine consigliate -ListOfConferencesOrBooths=Elenco delle conferenze o degli stand del progetto dell'evento +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Proponi una nuova conferenza SuggestBooth = Suggerisci uno stand ViewAndVote = Visualizza e vota gli eventi suggeriti PublicAttendeeSubscriptionGlobalPage = Link pubblico per la registrazione all'evento PublicAttendeeSubscriptionPage = Link pubblico solo per la registrazione a questo evento MissingOrBadSecureKey = La chiave di sicurezza non è valida o manca -EvntOrgWelcomeMessage = Questo modulo permette di registrarsi come nuovo partecipante all'evento: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Questa conferenza inizia su %s e termina su %s. ConferenceAttendeeFee = Quota di partecipazione alla conferenza per l'evento: "%s" che si verifica da %s a %s. BoothLocationFee = Posizione dello stand per l'evento: '%s' che si verifica da %s a %s @@ -129,7 +133,7 @@ LabelOfconference=Etichetta conferenza ConferenceIsNotConfirmed=Iscrizione non disponibile, conferenza non ancora confermata DateMustBeBeforeThan=%s deve essere prima di %s DateMustBeAfterThan=%s deve essere dopo %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registrazione OrganizationEventConfRequestWasReceived=Il tuo suggerimento per una conferenza è stato ricevuto OrganizationEventBoothRequestWasReceived=La tua richiesta per uno stand è stata ricevuta @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Il tuo pagamento per la regist OrganizationEventBulkMailToAttendees=Questo è un promemoria della tua partecipazione all'evento come partecipante OrganizationEventBulkMailToSpeakers=Questo è un promemoria sulla tua partecipazione all'evento come relatore OrganizationEventLinkToThirdParty=Collegamento a terzi (cliente, fornitore o partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Domanda per uno stand NewSuggestionOfConference=Domanda per una conferenza @@ -153,7 +158,7 @@ VoteOk = Il tuo voto è stato accettato. AlreadyVoted = Hai già votato per questo evento. VoteError = Si è verificato un errore durante la votazione, riprova. -SubscriptionOk = La tua registrazione è stata convalidata +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Conferma della tua iscrizione a un evento Attendee = Partecipante PaymentConferenceAttendee = Pagamento dei partecipanti alla conferenza @@ -161,7 +166,9 @@ PaymentBoothLocation = Pagamento posizione stand DeleteConferenceOrBoothAttendee=Rimuovi partecipante RegistrationAndPaymentWereAlreadyRecorder=Per la mail %s sono già state registrate una registrazione e un pagamento EmailAttendee=E-mail del partecipante +EmailCompany=Company email EmailCompanyForInvoice=Email aziendale (per fattura, se diversa dall'email del partecipante) ErrorSeveralCompaniesWithEmailContactUs=Sono state trovate diverse aziende con questa e-mail, quindi non possiamo convalidare automaticamente la tua registrazione. Vi preghiamo di contattarci all'indirizzo %s per una convalida manuale ErrorSeveralCompaniesWithNameContactUs=Sono state trovate diverse aziende con questo nome, quindi non possiamo convalidare automaticamente la tua registrazione. Si prega di contattarci all'indirizzo %s per una convalida manuale NoPublicActionsAllowedForThisEvent=Nessuna azione pubblica è aperta al pubblico per questo evento +MaxNbOfAttendees=Numero massimo di partecipanti diff --git a/htdocs/langs/it_IT/exports.lang b/htdocs/langs/it_IT/exports.lang index 0681ccd47ce..81439ccf80d 100644 --- a/htdocs/langs/it_IT/exports.lang +++ b/htdocs/langs/it_IT/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Campi esportabili ExportedFields=Campi esportati ImportModelName=Nome del profilo di importazione ImportModelSaved=Profilo importazione salvato con il nome %s. +ImportProfile=Importa profilo DatasetToExport=Dati da esportare DatasetToImport=Dataset da importare ChooseFieldsOrdersAndTitle=Scegli l'ordine dei campi @@ -28,7 +29,7 @@ AvailableFormats=Formati disponibili LibraryShort=Libreria ExportCsvSeparator=Separatore di caratteri CSV ImportCsvSeparator=Separatore di caratteri CSV -Step=Passaggio +Step=Passo FormatedImport=Importazione assistita FormatedImportDesc1=Questa sezione consente di importare dati personalizzati, utilizzando un assistente per aiutarti nel processo anche senza conoscenze tecniche. FormatedImportDesc2=Il primo passo è quello di scegliere un tipo di dati da importare, quindi il file da caricare, quindi di scegliere quali campi si desidera caricare. @@ -53,8 +54,9 @@ TypeOfLineServiceOrProduct=Linea tipo (0 = prodotto, servizio = 1) FileWithDataToImport=File con i dati da importare FileToImport=File da importare FileMustHaveOneOfFollowingFormat=File da importare deve avere uno dei seguenti formati -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields +DownloadEmptyExampleShort=Scarica un file di esempio +DownloadEmptyExample=Scarica un file modello con esempi e informazioni sui campi che puoi importare +StarAreMandatory=Nel file modello, tutti i campi contrassegnati da * sono obbligatori ChooseFormatOfFileToImport=Scegliete il formato di file da utilizzare per l'importazione cliccando sull'icona %s ChooseFileToImport=Scegli il file da importare e poi clicca sull'icona %s SourceFileFormat=Fonte formato di file @@ -82,7 +84,7 @@ SelectFormat=Scegliere questo formato di file di importazione RunImportFile=Lancio l'importazione di file NowClickToRunTheImport=Controllare risultato della simulazione di importazione. Se tutto è ok, avviare l'importazione definitiva. DataLoadedWithId=I dati verranno importati con il seguente import id: %s -ErrorMissingMandatoryValue=I dati obbligatori è vuoto %s file sorgente in campo per. +ErrorMissingMandatoryValue=I dati obbligatori sono vuoti nel file di origine nella colonna %s . TooMuchErrors=C'è ancora %s linee di altra fonte di errori ma la produzione è stata limitata. TooMuchWarnings=C'è ancora %s linee altra fonte con avvisi di uscita, ma è stato limitato. EmptyLine=riga vuota (verrà scartato) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Potete trovare tutti i record importati nel databa NbOfLinesOK=Numero di linee senza errori e senza avvertenze: %s. NbOfLinesImported=Numero di linee importati con successo: %s. DataComeFromNoWhere=Valore da inserire viene dal nulla nel file di origine. -DataComeFromFileFieldNb=Il valore da inserire deriva dal numero del campo %s nel file di origine. -DataComeFromIdFoundFromRef=Valore che viene dal numero %s campo di file sorgente sarà utilizzato per trovare id del genitore oggetto da utilizzare (Così il %s Objet che ha il ref. Dal file sorgente deve esiste in Dolibarr). -DataComeFromIdFoundFromCodeId=Il codice che proviene dal campo numero %s del file sorgente sarà usato per trovare l'id dell'oggetto principale da utilizzare (quindi il codice dal file sorgente deve esistere nel dizionario %s). Nota che se conosci l'id, puoi usarlo anche nel file sorgente invece del codice. L'importazione dovrebbe funzionare in entrambi i casi. +DataComeFromFileFieldNb=Il valore da inserire proviene dalla colonna %s nel file di origine. +DataComeFromIdFoundFromRef=Il valore che deriva dal file di origine verrà utilizzato per trovare l'id dell'oggetto padre da utilizzare (quindi l'oggetto %s che ha il riferimento dal file di origine deve esistere nel database). +DataComeFromIdFoundFromCodeId=Il valore del codice proveniente dal file sorgente verrà utilizzato per trovare l'id dell'oggetto padre da utilizzare (quindi il codice dal file sorgente deve esistere nel dizionario %s ). Nota che se conosci l'id, puoi anche usarlo nel file sorgente invece del codice. L'importazione dovrebbe funzionare in entrambi i casi. DataIsInsertedInto=I dati provenienti dal file sorgente sarà inserito nel campo seguente: DataIDSourceIsInsertedInto=L'id dell'oggetto genitore, che è stato trovato utilizzando i dati nel file sorgente, verrà inserito nel seguente campo: DataCodeIDSourceIsInsertedInto=L'id della linea padre, che è stato trovato dal codice, verrà inserito nel seguente campo: @@ -132,9 +134,14 @@ FormatControlRule=Controllo del formato ## imports updates KeysToUseForUpdates=Chiave da utilizzare per l'aggiornamento dei dati NbInsert=Numero di righe inserite: %s +NbInsertSim=Numero di righe che verranno inserite: %s NbUpdate=Numero di righe aggiornate: %s +NbUpdateSim=Numero di righe che verranno aggiornate: %s MultipleRecordFoundWithTheseFilters=Righe multiple sono state trovate con questi filtri: %s StocksWithBatch=Scorte e ubicazione (magazzino) dei prodotti con numero di lotto / seriale -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used -SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +WarningFirstImportedLine=Le prime righe non verranno importate con la selezione corrente +NotUsedFields=Campi del database non utilizzati +SelectImportFieldsSource = Scegli i campi del file di origine che desideri importare e il relativo campo di destinazione nel database scegliendo i campi in ciascuna casella di selezione o seleziona un profilo di importazione predefinito: +MandatoryTargetFieldsNotMapped=Alcuni campi target obbligatori non sono mappati +AllTargetMandatoryFieldsAreMapped=Tutti i campi target che necessitano di un valore obbligatorio vengono mappati +ResultOfSimulationNoError=Risultato della simulazione: nessun errore diff --git a/htdocs/langs/it_IT/externalsite.lang b/htdocs/langs/it_IT/externalsite.lang deleted file mode 100644 index 8be64cda26a..00000000000 --- a/htdocs/langs/it_IT/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Imposta collegamento a sito esterno -ExternalSiteURL=URL del sito esterno del contenuto iframe HTML -ExternalSiteModuleNotComplete=Il modulo ExternalSite non è configurato correttamente. -ExampleMyMenuEntry=La mia voce di menu diff --git a/htdocs/langs/it_IT/ftp.lang b/htdocs/langs/it_IT/ftp.lang deleted file mode 100644 index e641576f638..00000000000 --- a/htdocs/langs/it_IT/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configurazione del modulo client FTP o SFTP -NewFTPClient=Nuova configurazione della connessione FTP/FTPS -FTPArea=Area FTP/FTPS -FTPAreaDesc=Questa schermata mostra una vista di un server FTP e SFTP. -SetupOfFTPClientModuleNotComplete=La configurazione del modulo client FTP o SFTP sembra essere incompleta -FTPFeatureNotSupportedByYourPHP=Il tuo PHP non supporta le funzioni FTP o SFTP -FailedToConnectToFTPServer=Impossibile connettersi al server (server %s, porta %s) -FailedToConnectToFTPServerWithCredentials=Impossibile accedere al server con login/password definiti -FTPFailedToRemoveFile=Impossibile rimuovere il file %s -FTPFailedToRemoveDir=Impossibile rimuovere la directory %s (Controlla i permessi e che la directory sia vuota) -FTPPassiveMode=Modalità passiva -ChooseAFTPEntryIntoMenu=Scegli un sito FTP/SFTP dal menu... -FailedToGetFile=Errore nell'accesso ai file %s diff --git a/htdocs/langs/it_IT/holiday.lang b/htdocs/langs/it_IT/holiday.lang index 6b6119857af..dd1b461afaa 100644 --- a/htdocs/langs/it_IT/holiday.lang +++ b/htdocs/langs/it_IT/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Risorse umane -Holidays=Ferie / Permessi +Holidays=Permessi/congedi +Holiday=Ferie / Permessi CPTitreMenu=Ferie / Permessi MenuReportMonth=Estratto conto mensile MenuAddCP=Nuova richiesta +MenuCollectiveAddCP=Nuova richiesta di congedo collettivo NotActiveModCP=You must enable the module Leave to view this page. AddCP=Inserisci nuova richiesta DateDebCP=Data di inizio @@ -56,6 +58,7 @@ ConfirmDeleteCP=Vuoi davvero cancellare questa richiesta? ErrorCantDeleteCP=Errore: non hai i permessi necessari per eliminare questa richiesta. CantCreateCP=Non hai i permessi necessari per inserire richieste. InvalidValidatorCP=Devi scegliere l'approvatore per la tua richiesta di congedo. +InvalidValidator=L'utente scelto non è un approvatore. NoDateDebut=Bisogna selezionare una data di inizio. NoDateFin=Bisogna selezionare una data di fine. ErrorDureeCP=La tua richiesta di ferie non comprende giorni lavorativi. @@ -79,6 +82,8 @@ MotifCP=Motivo UserCP=Utente ErrorAddEventToUserCP=Si è verificato un errore nell'assegnazione del permesso straordinario. AddEventToUserOkCP=Permesso straordinario assegnato correttamente. +ErrorFieldRequiredUserOrGroup=È necessario compilare il campo "gruppo" o il campo "utente". +fusionGroupsUsers=Il campo gruppi e il campo utente verranno uniti MenuLogCP=Elenco delle modifiche LogCP=Registro di tutti gli aggiornamenti effettuati su "Saldo delle ferie" ActionByCP=Aggiornato da @@ -86,6 +91,13 @@ UserUpdateCP=Aggiornato per PrevSoldeCP=Saldo precedente NewSoldeCP=Nuovo saldo alreadyCPexist=C'è già una richiesta per lo stesso periodo. +UseralreadyCPexist=È già stata effettuata una richiesta di congedo in questo periodo per %s. +groups=Groups +users=Utenti +AutoSendMail=Invio automatico email +NewHolidayForGroup=Nuova richiesta di congedo collettivo +SendRequestCollectiveCP=Invia richiesta di congedo collettivo +AutoValidationOnCreate=Convalida automatica FirstDayOfHoliday=Inizio giorno di richiesta ferie LastDayOfHoliday=Richiesta di fine giornata di ferie BoxTitleLastLeaveRequests=Ultime %s richieste di assenza modificate @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s è solitamente un giorno NON lavorativo BlockHolidayIfNegative=Blocca se saldo negativo LeaveRequestCreationBlockedBecauseBalanceIsNegative=La creazione di questa richiesta di ferie è bloccata perché il tuo saldo è negativo ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=La richiesta di uscita %s deve essere bozza, annullata o rifiutata per essere eliminata +IncreaseHolidays=Aumenta festività +HolidayRecordsIncreased= %s record vacanze aumentati +HolidayRecordIncreased=Il record vacanze è aumentato +ConfirmMassIncreaseHoliday=Aumento delle vacanze in blocco +NumberDayAddMass=Numero di giorni da aggiungere alla selezione +ConfirmMassIncreaseHolidayQuestion=Sei sicuro di voler aumentare le ferie dei record selezionati %s? +HolidayQtyNotModified=Il saldo dei giorni rimanenti per %s non è stato modificato diff --git a/htdocs/langs/it_IT/hrm.lang b/htdocs/langs/it_IT/hrm.lang index b4028530d38..921b35c179f 100644 --- a/htdocs/langs/it_IT/hrm.lang +++ b/htdocs/langs/it_IT/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Apri azienda CloseEtablishment=Chiudi azienda # Dictionary DictionaryPublicHolidays=Congedo - Giorni festivi -DictionaryDepartment=HRM - Lista dipartimenti +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Posizioni di lavoro # Module Employees=Dipendenti @@ -70,12 +70,22 @@ RequiredSkills=Competenze richieste per questo lavoro UserRank=Classifica utente SkillList=Elenco delle abilità SaveRank=Salva classifica -knowHow=Competenza -HowToBe=Come essere -knowledge=Conoscenza +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Commento sull'abbandono DateLastEval=Data ultima valutazione NoEval=Nessuna valutazione effettuata per questo dipendente HowManyUserWithThisMaxNote=Numero di utenti con questo rango HighestRank=Grado più alto SkillComparison=Confronto delle abilità +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang index a5d63a75907..8fbb9eca9cb 100644 --- a/htdocs/langs/it_IT/install.lang +++ b/htdocs/langs/it_IT/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Il file di configurazione %s non è scrivibile, bis ConfFileIsWritable=Il file di configurazione %s è scrivibile. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=Il file di configurazione conf/conf.php non esiste o non è leggibile. Eseguiremo il processo di installazione per provare a inizializzarlo. PHPSupportPOSTGETOk=PHP supporta le variabili GET e POST. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=PHP supporta le sessioni. @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Potresti aver digitato un valore errato per il param ErrorFailedToCreateDatabase=Impossibile creare il database %s. ErrorFailedToConnectToDatabase=Impossibile collegarsi al database %s. ErrorDatabaseVersionTooLow=La versione del database (%s) è troppo vecchia. È richiesta la versione %s o superiori. -ErrorPHPVersionTooLow=Versione PHP troppo vecchia. E' obbligatoria la versione %s o superiori. +ErrorPHPVersionTooLow=Versione PHP troppo vecchia. È richiesta la versione %s o successiva. +ErrorPHPVersionTooHigh=Versione PHP troppo alta. È richiesta la versione %s o precedente. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Il database %s esiste già. IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". diff --git a/htdocs/langs/it_IT/interventions.lang b/htdocs/langs/it_IT/interventions.lang index 4b84ccad5c9..4033a46086a 100644 --- a/htdocs/langs/it_IT/interventions.lang +++ b/htdocs/langs/it_IT/interventions.lang @@ -66,3 +66,7 @@ RepeatableIntervention=Modello di intervento ToCreateAPredefinedIntervention=Per creare un intervento predefinito o ricorrente, creare un intervento comune e convertirlo in modello di intervento ConfirmReopenIntervention=Sei sicuro di voler riaprire l'intervento %s ? GenerateInter=Genera intervento +FichinterNoContractLinked=L'intervento %s è stato creato senza un contratto collegato. +ErrorFicheinterCompanyDoesNotExist=L'azienda non esiste. L'intervento non è stato creato. +NextDateToIntervention=Date for next intervention generation +NoIntervention=No intervention diff --git a/htdocs/langs/it_IT/knowledgemanagement.lang b/htdocs/langs/it_IT/knowledgemanagement.lang index 17629ad035f..84d7d5eb577 100644 --- a/htdocs/langs/it_IT/knowledgemanagement.lang +++ b/htdocs/langs/it_IT/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Articoli KnowledgeRecord = Articolo KnowledgeRecordExtraFields = Extracampi per l'art GroupOfTicket=Gruppo di biglietti -YouCanLinkArticleToATicketCategory=Puoi collegare un articolo a un gruppo di biglietti (quindi l'articolo verrà suggerito durante la qualificazione dei nuovi biglietti) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Consigliato per i biglietti quando il gruppo è SetObsolete=Imposta come obsoleto diff --git a/htdocs/langs/it_IT/languages.lang b/htdocs/langs/it_IT/languages.lang index 41a98a54664..cb9fe9806bd 100644 --- a/htdocs/langs/it_IT/languages.lang +++ b/htdocs/langs/it_IT/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Etiope Language_ar_AR=Arabo Language_ar_DZ=Arabo (Algeria) Language_ar_EG=Arabo (Egitto) +Language_ar_JO=Arabo (Giordania) Language_ar_MA=Arabo (Marocco) Language_ar_SA=Arabo Language_ar_TN=Arabo (Tunisia) @@ -12,16 +13,20 @@ Language_az_AZ=Azero Language_bn_BD=Bengalese Language_bn_IN=Bengalese (India) Language_bg_BG=Bulgaro +Language_bo_CN=tibetano Language_bs_BA=Bosniaco Language_ca_ES=Catalano Language_cs_CZ=Ceco +Language_cy_GB=gallese Language_da_DA=Danese Language_da_DK=Danese Language_de_DE=Tedesco Language_de_AT=Tedesco (Austria) Language_de_CH=Tedesco (Svizzera) +Language_de_LU=German (Luxembourg) Language_el_GR=Greco Language_el_CY=Greco (Cipro) +Language_en_AE=Inglese (Emirati Arabi Uniti) Language_en_AU=Inglese (Australia) Language_en_CA=Inglese (Canada) Language_en_GB=English (Gran Bretagna) @@ -31,11 +36,13 @@ Language_en_SA=Inglese (Arabia Saudita) Language_en_SG=Inglese (Singapore) Language_en_US=Inglese (Stati Uniti) Language_en_ZA=Inglese (Sud Africa) +Language_en_ZW=English (Zimbabwe) Language_es_ES=Spagnolo Language_es_AR=Spagnolo (Argentina) Language_es_BO=Spagnolo (Bolivia) Language_es_CL=Spagnolo (Cile) Language_es_CO=Spagnolo (Colombia) +Language_es_CR=spagnolo (Costarica) Language_es_DO=Spagnolo ( Repubblica Dominicana) Language_es_EC=Spagnolo (Ecuador) Language_es_GT=Spagnolo (Guatemala) @@ -83,18 +90,21 @@ Language_lt_LT=Lituano Language_lv_LV=Lettone Language_mk_MK=Macedone Language_mn_MN=Mongolo +Language_my_MM=birmano Language_nb_NO=Norvegese (Bokmål) Language_ne_NP=Nepali Language_nl_BE=Olandese (Belgio) Language_nl_NL=Olandese (Paesi Bassi) Language_pl_PL=Polacco Language_pt_AO=Portoghese (Angola) +Language_pt_MZ=Portoghese (Mozambico) Language_pt_BR=Portoghese (Brasile) Language_pt_PT=Portoghese Language_ro_MD=Rumeno (Moldavia) Language_ro_RO=Rumeno Language_ru_RU=Russo Language_ru_UA=Russo (Ucraina) +Language_ta_IN=tamil Language_tg_TJ=tagiko Language_tr_TR=Turco Language_sl_SI=Sloveno @@ -103,9 +113,11 @@ Language_sv_SE=Svedese Language_sq_AL=Albanese Language_sk_SK=Slovacco Language_sr_RS=Serbo +Language_sw_KE=Swahili Language_sw_SW=Kiswahili Language_th_TH=Thai Language_uk_UA=Ucraino +Language_ur_PK=Urdu Language_uz_UZ=Uzbeko Language_vi_VN=Vietnamita Language_zh_CN=Cinese diff --git a/htdocs/langs/it_IT/loan.lang b/htdocs/langs/it_IT/loan.lang index 8b6f0dae914..aba14cfcdfa 100644 --- a/htdocs/langs/it_IT/loan.lang +++ b/htdocs/langs/it_IT/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Financial commitment InterestAmount=Interesse CapitalRemain=Capital remain TermPaidAllreadyPaid = Questo termine è già pagato -CantUseScheduleWithLoanStartedToPaid = Impossibile utilizzare lo scheduler per un prestito con pagamento avviato +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Non è possibile modificare l'interesse se si utilizza la pianificazione # Admin ConfigLoan=Configurazione del modulo prestiti -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edit financial commitment diff --git a/htdocs/langs/it_IT/mailmanspip.lang b/htdocs/langs/it_IT/mailmanspip.lang index 4de2bbf89d0..594cf2dfb52 100644 --- a/htdocs/langs/it_IT/mailmanspip.lang +++ b/htdocs/langs/it_IT/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Test di iscrizione eseguito con successo MailmanDeletionSuccess=Test di disiscrizione eseguito con successo SynchroMailManEnabled=mailman verrà aggiornato SynchroSpipEnabled=SPIP verrà aggiornato -DescADHERENT_MAILMAN_ADMINPW=Password di amministrazione di Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Password di amministrazione di Mailman DescADHERENT_MAILMAN_URL=URL per l'iscrizione a Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL per la disiscrizione da Mailman DescADHERENT_MAILMAN_LISTS=Lista(e) a cui iscrivere automaticamente i nuovi membri (separate da virgola) diff --git a/htdocs/langs/it_IT/mails.lang b/htdocs/langs/it_IT/mails.lang index f732e5789e8..5074f48e307 100644 --- a/htdocs/langs/it_IT/mails.lang +++ b/htdocs/langs/it_IT/mails.lang @@ -178,3 +178,4 @@ IsAnAnswer=È la risposta di una prima email RecordCreatedByEmailCollector=Record creato da Email Collector %s dall'email %s DefaultBlacklistMailingStatus=Valore predefinito per il campo '%s' durante la creazione di un nuovo contatto DefaultStatusEmptyMandatory=Vuoto ma obbligatorio +WarningLimitSendByDay=ATTENZIONE: la configurazione o il contratto della tua istanza limita il numero di email al giorno a %s . Il tentativo di inviarne di più potrebbe comportare un rallentamento o la sospensione dell'istanza. Contatta il tuo supporto se hai bisogno di una quota più alta. diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index 8d94a066667..e3b5134df8a 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Nessun tema disponibile per questo tipo di email AvailableVariables=Variabili di sostituzione disponibili NoTranslation=Nessuna traduzione Translation=Traduzioni +Translations=Traduzioni CurrentTimeZone=Fuso orario attuale EmptySearchString=Inserisci criteri di ricerca non vuoti EnterADateCriteria=Immettere un criterio di data @@ -199,6 +206,7 @@ Valid=Convalida Approve=Approva Disapprove=Riporta in Bozza ReOpen=Riapri +OpenVerb=Open Upload=Upload ToLink=Link Select=Seleziona @@ -216,7 +224,7 @@ UserGroup=Gruppo di utenti UserGroups=Gruppi di utenti NoUserGroupDefined=Gruppo non definito Password=Password -PasswordRetype=Ridigita la password +PasswordRetype=Ripeti la tua password NoteSomeFeaturesAreDisabled=Nota bene: In questo demo alcune funzionalità e alcuni moduli sono disabilitati. Name=Nome NameSlashCompany=Nome / Società @@ -244,6 +252,7 @@ Designation=Descrizione DescriptionOfLine=Linea Descrizione DateOfLine=Data DurationOfLine=Durata +ParentLine=ID linea padre Model=Modello DefaultModel=Modello predefinito Action=Azione @@ -344,7 +353,7 @@ KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Ceato da +UserAuthor=Creato da UserModif=Aggiornato da b=b Kb=Kb @@ -436,7 +445,7 @@ VATRate=Aliquota IVA RateOfTaxN=Aliquota fiscale %s VATCode=Codice aliquota VATNPR=Aliquota NPR -DefaultTaxRate=Valore base tassa +DefaultTaxRate=Valore base IVA Average=Media Sum=Somma Delta=Delta @@ -475,11 +484,12 @@ Accountant=Contabile ContactsForCompany=Contatti per il soggetto terzo ContactsAddressesForCompany=Contatti/indirizzi per questo soggetto terzo AddressesForCompany=Indirizzi per questo soggetto terzo -ActionsOnCompany=Events for this third party +ActionsOnCompany=Eventi legati al soggetto terzo ActionsOnContact=Events for this contact/address ActionsOnContract=Eventi per questo contratto ActionsOnMember=Azioni su questo membro ActionsOnProduct=Eventi su questo prodotto +ActionsOnAsset=Events for this fixed asset NActionsLate=%s azioni in ritardo ToDo=Da fare Completed=Completato @@ -517,6 +527,7 @@ or=o Other=Altro Others=Altri OtherInformations=Altre informazioni +Workflow=Flusso di lavoro Quantity=Quantità Qty=Qtà ChangedBy=Cambiato da @@ -618,7 +629,8 @@ MonthVeryShort10=O MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=File e documenti allegati -JoinMainDoc=Iscriviti al documento principale +JoinMainDoc=Allega il documento principale +JoinMainDocOrLastGenerated=Invia il documento principale o l'ultimo generato se non trovato DateFormatYYYYMM=AAAA-MM DateFormatYYYYMMDD=AAAA-MM-GG DateFormatYYYYMMDDHHMM=AAAA-MM-GG HH:MM @@ -699,7 +711,7 @@ CanBeModifiedIfOk=Può essere modificato se valido CanBeModifiedIfKo=Può essere modificato se non valido ValueIsValid=Il valore è valido ValueIsNotValid=Il valore non è valido -RecordCreatedSuccessfully=Record creato con success0 +RecordCreatedSuccessfully=Record creato con successo RecordModifiedSuccessfully=Record modificati con successo RecordsModified=%s record(s) modificato/i RecordsDeleted=%s record(s) eliminato/i @@ -709,6 +721,7 @@ FeatureDisabled=Funzionalità disabilitata MoveBox=Sposta widget Offered=Offerto NotEnoughPermissions=Non hai l'autorizzazione per svolgere questa azione +UserNotInHierachy=Questa azione è riservata ai supervisori di questo utente SessionName=Nome sessione Method=Metodo Receive=Ricevi @@ -798,6 +811,7 @@ URLPhoto=URL foto/logo SetLinkToAnotherThirdParty=Collega ad altro soggetto terzo LinkTo=Collega a... LinkToProposal=Collega a proposta +LinkToExpedition= Link alla spedizione LinkToOrder=Collega a ordine LinkToInvoice=Collega a fattura attiva LinkToTemplateInvoice=Collega ad un modello di fattura @@ -898,8 +912,8 @@ ExportFilteredList=Esporta lista filtrata ExportList=Esporta lista ExportOptions=Opzioni di esportazione IncludeDocsAlreadyExported=Includi documenti già esportati -ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable -ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable +ExportOfPiecesAlreadyExportedIsEnable=Includi documenti già esportati abilitato +ExportOfPiecesAlreadyExportedIsDisable=Includi documenti già esportati disabilitato AllExportedMovementsWereRecordedAsExported=All exported movements were recorded as exported NotAllExportedMovementsCouldBeRecordedAsExported=Not all exported movements could be recorded as exported Miscellaneous=Varie @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Link per il download privato PrivateDownloadLinkDesc=Devi essere registrato e hai bisogno delle autorizzazioni per visualizzare o scaricare il file Download=Download DownloadDocument=Scarica documento +DownloadSignedDocument=Scarica documento firmato ActualizeCurrency=Aggiorna tasso di cambio Fiscalyear=Anno fiscale ModuleBuilder=Generatore di moduli/applicazioni @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contratti SearchIntoCustomerShipments=Spedizioni cliente SearchIntoExpenseReports=Nota spese SearchIntoLeaves=Ferie / Permessi +SearchIntoKM=Knowledge base SearchIntoTickets=Ticket SearchIntoCustomerPayments=Pagamenti dei clienti SearchIntoVendorPayments=Pagamenti fornitori @@ -1065,7 +1081,7 @@ Deletedraft=Elimina bozza ConfirmMassDraftDeletion=Draft mass delete confirmation FileSharedViaALink=File condiviso con un collegamento pubblico SelectAThirdPartyFirst=Seleziona prima un Soggetto terzo... -YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode +YouAreCurrentlyInSandboxMode=Sei attualmente nella modalità "sandbox" di %s Inventory=Inventario AnalyticCode=Analytic code TMenuMRP=MRP @@ -1132,15 +1148,29 @@ EventReminder=Promemoria evento UpdateForAllLines=Aggiornamento per tutte le linee OnHold=In attesa Civility=Civiltà -AffectTag=Influenza tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Imposta supervisore CreateExternalUser=Crea utente esterno -ConfirmAffectTag=Influenza tag in blocco -ConfirmAffectTagQuestion=Sei sicuro di voler modificare i tag per i record %s selezionati? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Set supervisore in maniera massiva +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Sei sicuro di voler impostare il supervisore sui record selezionati %s? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Nessun tipo di tag trovato per il tipo di record +Rate=Tariffa +SupervisorNotFound=Supervisore non trovato CopiedToClipboard=Copiato negli appunti InformationOnLinkToContract=Questo importo è solo il totale di tutte le linee del contratto. Nessuna nozione di tempo viene presa in considerazione. ConfirmCancel=Sei sicuro di voler annullare EmailMsgID=E-mail MsgID +EmailDate=Data e-mail +SetToStatus=Set to status %s SetToEnabled=Impostare su abilitato SetToDisabled=Impostare su disabilitato ConfirmMassEnabling=conferma di abilitazione di massa @@ -1164,3 +1194,19 @@ NotClosedYet=Non ancora chiuso ClearSignature=Reimposta firma CanceledHidden=Nascosto annullato CanceledShown=Annullato mostrato +Terminate=Termina +Terminated=Terminated +AddLineOnPosition=Aggiungi riga sulla posizione (alla fine se vuota) +ConfirmAllocateCommercial=Assegna la conferma del rappresentante di vendita +ConfirmAllocateCommercialQuestion=Sei sicuro di voler assegnare i record selezionati %s? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Il tuo messaggio +YourMessageHasBeenReceived=Il tuo messaggio è stato ricevuto. Ti risponderemo o ti contatteremo al più presto. +UrlToCheck=URL da controllare +Automation=Automazione +CreatedByEmailCollector=Creato dal raccoglitore di posta elettronica +CreatedByPublicPortal=Creato dal portale pubblico +UserAgent=User Agent +InternalUser=Utente interno +ExternalUser=Utente esterno diff --git a/htdocs/langs/it_IT/margins.lang b/htdocs/langs/it_IT/margins.lang index a6f0f4c3ab1..2b3009f8062 100644 --- a/htdocs/langs/it_IT/margins.lang +++ b/htdocs/langs/it_IT/margins.lang @@ -29,9 +29,9 @@ UseDiscountAsService=Come servizio UseDiscountOnTotal=Sul subtotale MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definisce se, ai fini del calcolo del margine, uno sconto globale debba essere trattato come un prodotto, un servizio o usato solo sul subtotale. MARGIN_TYPE=Prezzo di acquisto / costo suggerito per impostazione predefinita per il calcolo del margine -MargeType1=Margin on Best vendor price -MargeType2=Margin on Weighted Average Price (WAP) -MargeType3=Margin on Cost Price +MargeType1=Margine sul miglior prezzo fornitore +MargeType2=Margine sul prezzo meglio ponderato (WAP) +MargeType3=Margine sul prezzo di costo MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
    * Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined
    * Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined CostPrice=Prezzo di costo UnitCharges=Carico unitario diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index a6bdcf90829..7dd9b89ab53 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -15,7 +15,8 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Un altro membro (nome: %s, log ErrorUserPermissionAllowsToLinksToItselfOnly=Per motivi di sicurezza, è necessario possedere permessi di modifica di tutti gli utenti per poter modificare un membro diverso da sé stessi. SetLinkToUser=Link a un utente Dolibarr SetLinkToThirdParty=Link ad un soggetto terzo -MembersCards=Generation of cards for members +MemberCountersArePublic=Counters of valid members are public +MembersCards=Generazione di tessere per i membri MembersList=Elenco dei membri MembersListToValid=Elenco dei membri del progetto (da convalidare) MembersListValid=Elenco dei membri validi @@ -34,8 +35,10 @@ DateSubscription=Data di adesione DateEndSubscription=Data di fine adesione EndSubscription=Fine adesione SubscriptionId=ID contributo -WithoutSubscription=Senza contributo -MemberId=ID +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=ID membro +MemberRef=Membro Rif NewMember=Nuovo membro MemberType=Tipo membro MemberTypeId=Id membro @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=Nuovo contributo NewSubscriptionDesc=Questo modulo consente di registrare l'adesione di un nuovo membro alla fondazione. Per rinnovare l'adesione (se già iscritto), si prega di contattare la fondazione per email. Subscription=Contributo +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Durata +GetMembershipButtonLabel=Join Subscriptions=Contributi SubscriptionLate=Ritardi SubscriptionNotReceived=Contributo mai ricevuto @@ -135,7 +144,7 @@ CardContent=Contenuto della scheda membro # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -159,11 +168,11 @@ HTPasswordExport=Esporta htpassword NoThirdPartyAssociatedToMember=Nessuna terza parte associata a questo membro MembersAndSubscriptions=Membri e contributi MoreActions=Azioni complementari alla registrazione -MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution +MoreActionsOnSubscription=Azione complementare suggerita di default in sede di registrazione di un contributo, effettuata anche in automatico al momento del pagamento online di un contributo MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account MoreActionInvoiceOnly=Creare una fattura senza pagamento -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Generazione di biglietti da visita o fogli di indirizzi LinkToGeneratedPagesDesc=Questa schermata permette di generare file PDF contenenti i biglietti da visita di tutti i membri o di un determinato membro. DocForAllMembersCards=Genera schede per tutti i membri (formato di output impostato: %s) DocForOneMemberCards=Genera scheda per un membro (formato di output impostato: %s) @@ -198,8 +207,10 @@ NbOfSubscriptions=Numero di contributi AmountOfSubscriptions=Importo raccolto dai contributi TurnoverOrBudget=Giro d'affari (aziende) o Budget (fondazione) DefaultAmount=Importo predefinito del contributo -CanEditAmount=Il visitatore può scegliere/modificare l'importo del suo contributo -MEMBER_NEWFORM_PAYONLINE=Saltate sulla integrato pagina di pagamento online +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=Aliquota IVA da utilizzare per i contributi @@ -218,3 +229,6 @@ XExternalUserCreated=%s utenti esterni creati ForceMemberNature=Natura del membro forzato (individuo o società) CreateDolibarrLoginDesc=La creazione di un login utente per i membri consente loro di connettersi all'applicazione. A seconda delle autorizzazioni concesse, potranno, ad esempio, consultare o modificare autonomamente il proprio fascicolo. CreateDolibarrThirdPartyDesc=Una terza parte è la persona giuridica che verrà utilizzata nella fattura se si decide di generare la fattura per ogni contributo. Potrai crearlo in seguito durante il processo di registrazione del contributo. +MemberFirstname=Nome del membro +MemberLastname=Cognome membro +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/it_IT/modulebuilder.lang b/htdocs/langs/it_IT/modulebuilder.lang index 0febc4d00b6..7f20fe542c4 100644 --- a/htdocs/langs/it_IT/modulebuilder.lang +++ b/htdocs/langs/it_IT/modulebuilder.lang @@ -1,17 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Questo strumento deve essere utilizzato solo da utenti esperti o sviluppatori. Fornisce utilità per creare o modificare il proprio modulo. La documentazione per lo sviluppo manuale alternativo è qui . -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +EnterNameOfModuleDesc=Immettere il nome del modulo/applicazione da creare senza spazi. Usa maiuscolo per separare le parole (ad esempio: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Immettere il nome dell'oggetto da creare senza spazi. Usa maiuscolo per separare le parole (ad esempio: MioOggetto, Studente, Insegnante...). Verranno generati il file di classe CRUD, ma anche il file API, le pagine per elencare/aggiungere/modificare/eliminare oggetti e file SQL. +EnterNameOfDictionaryDesc=Immettere il nome del dizionario da creare senza spazi. Usa maiuscolo per separare le parole (ad esempio: MyDico...). Verrà generato il file di classe, ma anche il file SQL. ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory NewModule=Nuovo modulo NewObjectInModulebuilder=Nuovo oggetto -NewDictionary=New dictionary +NewDictionary=Nuovo dizionario ModuleKey=Module key ObjectKey=Object key -DicKey=Dictionary key +DicKey=Chiave del dizionario ModuleInitialized=Modulo inizializzato FilesForObjectInitialized=Files for new object '%s' initialized FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) @@ -55,7 +55,7 @@ LanguageFile=File for language ObjectProperties=Object Properties ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. NotNull=Not NULL -NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +NotNullDesc=1=Imposta il database su NOT NULL, 0=Consenti valori nulli, -1=Consenti valori null forzando il valore su NULL se vuoto ('' o 0) SearchAll=Used for 'search all' DatabaseIndex=Database index FileAlreadyExists=File %s already exists @@ -97,7 +97,7 @@ LanguageDefDesc=Enter in this files, all the key and the translation for each la MenusDefDesc=Define here the menus provided by your module DictionariesDefDesc=Definisci qui i dizionari forniti dal tuo modulo PermissionsDefDesc=Define here the new permissions provided by your module -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s. +MenusDefDescTooltip=I menu forniti dal modulo/applicazione sono definiti nell'array $this->menus nel file di descrizione del modulo. Puoi modificare manualmente questo file o utilizzare l'editor incorporato.

    Nota: Una volta definiti (e riattivato il modulo), i menu sono visibili anche nell'editor di menu disponibile per gli utenti amministratori su %s. DictionariesDefDescTooltip=I dizionari forniti dal modulo / applicazione sono definiti nell'array $this->dictionaries nel file descrittore del modulo. Puoi modificare manualmente questo file o utilizzare l'editor incorporato.

    Nota: una volta definiti (e riattivato il modulo), i dizionari sono visibili nell'area di configurazione anche agli utenti amministratori su %s. PermissionsDefDescTooltip=The permissions provided by your module/application are defined into the array $this->rights into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), permissions are visible into the default permissions setup %s. HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code).
    Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code). @@ -113,7 +113,7 @@ DropTableIfEmpty=(Distruggi la tabella se vuota) TableDoesNotExists=The table %s does not exists TableDropped=Table %s deleted InitStructureFromExistingTable=Build the structure array string of an existing table -UseAboutPage=Do not generate the About page +UseAboutPage=Non generare la pagina Informazioni UseDocFolder=Disable the documentation folder UseSpecificReadme=Use a specific ReadMe ContentOfREADMECustomized=Nota: il contenuto del file README.md è stato sostituito con il valore specifico definito nell'installazione di ModuleBuilder. @@ -130,9 +130,9 @@ UseSpecificEditorURL = Use a specific editor URL UseSpecificFamily = Use a specific family UseSpecificAuthor = Use a specific author UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeRefGeneration=Il riferimento dell'oggetto deve essere generato automaticamente da regole di numerazione personalizzate +IncludeRefGenerationHelp=Selezionare questa opzione se si desidera includere il codice per gestire la generazione del riferimento automaticamente utilizzando regole di numerazione personalizzate +IncludeDocGeneration=Voglio generare alcuni documenti da modelli per l'oggetto IncludeDocGenerationHelp=Se selezioni questa opzione, verrà generato del codice per aggiungere una casella "Genera documento" al record. ShowOnCombobox=Mostra il valore dentro il combobox KeyForTooltip=Chiave per tooltip @@ -141,15 +141,16 @@ CSSViewClass=CSS per il modulo di lettura CSSListClass=CSS per l'elenco NotEditable=Non modificabile ForeignKey=Chiave esterna -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelp=Tipo di campi:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' significa che aggiungiamo un pulsante + dopo la combinazione per creare il record
    'filtro' è una condizione sql, esempio: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Convertitore da Ascii a HTML AsciiToPdfConverter=Convertitore da Ascii a PDF TableNotEmptyDropCanceled=Tabella non vuota. Il rilascio è stato annullato. ModuleBuilderNotAllowed=Il generatore di moduli è disponibile ma non è consentito all'utente. ImportExportProfiles=Importa ed esporta profili -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. -WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated -LinkToParentMenu=Parent menu (fk_xxxxmenu) -ListOfTabsEntries=List of tab entries -TabsDefDesc=Define here the tabs provided by your module -TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +ValidateModBuilderDesc=Impostalo a 1 se vuoi che il metodo $this->validateField() dell'oggetto venga chiamato per convalidare il contenuto del campo durante l'inserimento o l'aggiornamento. Impostare 0 se non è richiesta alcuna convalida. +WarningDatabaseIsNotUpdated=Avvertenza: il database non viene aggiornato automaticamente, è necessario distruggere le tabelle e disabilitare il modulo per consentire la ricreazione delle tabelle +LinkToParentMenu=Menu principale (fk_xxxxmenu) +ListOfTabsEntries=Elenco delle voci delle schede +TabsDefDesc=Definisci qui le schede fornite dal tuo modulo +TabsDefDescTooltip=Le schede fornite dal modulo/applicazione sono definite nell'array $this->tabs nel file descrittore del modulo. Puoi modificare manualmente questo file o utilizzare l'editor incorporato. +BadValueForType=Valore errato per il tipo %s diff --git a/htdocs/langs/it_IT/mrp.lang b/htdocs/langs/it_IT/mrp.lang index e4c1ce36a2a..af47e37688f 100644 --- a/htdocs/langs/it_IT/mrp.lang +++ b/htdocs/langs/it_IT/mrp.lang @@ -11,8 +11,8 @@ Bom=Distinta base BillOfMaterials=Distinta materiali BillOfMaterialsLines=Righe Distinta Materiali BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=Elenco degli ordini di produzione +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Ordini di produzione NewBOM=Nuova distinta base ProductBOMHelp=Prodotto da creare (o smontare) con questa distinta base.
    Nota: i prodotti con la proprietà 'Natura del prodotto' = 'Materia prima' non sono visibili in questo elenco. BOMsNumberingModules=BOM numbering templates @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Sei sicuro di voler clonare la distinta base %s ? ConfirmCloneMo=Vuoi davvero clonare l'ordine di produzione %s? ManufacturingEfficiency=Manufacturing efficiency ConsumptionEfficiency=Efficienza dei consumi +Consumption=Consumption ValueOfMeansLoss=Il valore di 0,95 indica una media di 5%% di perdita durante la produzione o lo smontaggio ValueOfMeansLossForProductProduced=Il valore di 0,95 indica una media di 5%% di perdita del prodotto prodotto DeleteBillOfMaterials=Delete Bill Of Materials @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=Per una quantità da smontare di %s ConfirmValidateMo=Sei sicuro di voler convalidare questo ordine di produzione? ConfirmProductionDesc=Cliccando su '%s' convaliderai il consumo e / o la produzione per le quantità impostate. Ciò aggiornerà anche le azioni e registrerà i movimenti delle scorte. ProductionForRef=Produzione di %s +CancelProductionForRef=Annullamento del decremento delle scorte di prodotto per il prodotto %s +TooltipDeleteAndRevertStockMovement=Elimina riga e ripristina il movimento delle scorte AutoCloseMO=Chiude automaticamente l'ordine di produzione se vengono raggiunte le quantità da consumare e da produrre NoStockChangeOnServices=Nessuna variazione di stock sui servizi ProductQtyToConsumeByMO=Quantità di prodotto ancora da consumare con MO aperto @@ -80,6 +83,7 @@ ProductsToProduce=Prodotti da produrre UnitCost=Costo unitario TotalCost=Costo totale BOMTotalCost=Il costo per produrre questa distinta base in base al costo di ciascuna quantità e prodotto da consumare (utilizzare il prezzo di costo se definito, altrimenti il prezzo medio ponderato se definito, altrimenti il miglior prezzo di acquisto) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=È necessario prima aver avviato la produzione per chiudere un ordine di produzione (vedere la scheda "%s"). Ma puoi annullarlo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit non può essere utilizzato in una distinta materiali o in un ordine di produzione Workstation=Postazione di lavoro @@ -107,3 +111,10 @@ THMEstimatedHelp=Questa tariffa permette di definire una previsione di costo del BOM=Distinta materiali CollapseBOMHelp=È possibile definire la visualizzazione di default dei dettagli della nomenclatura nella configurazione del modulo BOM MOAndLines=Ordini e linee di produzione +MoChildGenerate=Genera figlio Mo +ParentMo=MO Genitore +MOChild=MO Bambino +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/it_IT/oauth.lang b/htdocs/langs/it_IT/oauth.lang index 1f6d871c7ac..70284f51e10 100644 --- a/htdocs/langs/it_IT/oauth.lang +++ b/htdocs/langs/it_IT/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Un token è stato generato e salvato nel database locale NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token eliminato -RequestAccess=Click qui per richiedere/rinnovare l'accesso e ricevere un nuovo token da salvare -DeleteAccess=Click qui per eliminare il token +RequestAccess=Clicca qui per richiedere/rinnovare l'accesso e ricevere un nuovo token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Usa il seguente indirizzo come Redirect URI quando crei le credenziali sul tuo provider OAuth: -ListOfSupportedOauthProviders=Inserisci qui le credenziali fornite dal tuo provider OAuth. Vengono visualizzati solo i provider supportati. Questa configurazione può essere usata ache dagli altri moduli che necessitano di autenticazione OAuth2. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Aggiungi i tuoi provider di token OAuth2. Quindi, vai sulla pagina di amministrazione del tuo provider OAuth per creare/ottenere un ID OAuth e un segreto e salvarli qui. Una volta terminato, passa all'altra scheda per generare il tuo token. +OAuthSetupForLogin=Pagina per gestire (generare/eliminare) i token OAuth SeePreviousTab=Vedi la scheda precedente +OAuthProvider=Provider OAuth OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token scaduto @@ -23,10 +24,13 @@ TOKEN_DELETE=Elimina il token salvato OAUTH_GOOGLE_NAME=Oauth Google service OAUTH_GOOGLE_ID=Oauth Google Id OAUTH_GOOGLE_SECRET=Oauth Google Secret -OAUTH_GOOGLE_DESC=Vai a questa pagina quindi "Credenziali" per creare credenziali OAuth OAUTH_GITHUB_NAME=Oauth GitHub service OAUTH_GITHUB_ID=Oauth GitHub Id OAUTH_GITHUB_SECRET=Oauth GitHub Secret -OAUTH_GITHUB_DESC=Vai a questa pagina quindi "Registra una nuova applicazione" per creare le credenziali OAuth +OAUTH_URL_FOR_CREDENTIAL=Vai a questa pagina per creare o ottenere il tuo ID OAuth e Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth segreto +OAuthProviderAdded=Aggiunto provider OAuth +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Esiste già una voce OAuth per questo provider ed etichetta diff --git a/htdocs/langs/it_IT/orders.lang b/htdocs/langs/it_IT/orders.lang index 1c204996953..003539cd327 100644 --- a/htdocs/langs/it_IT/orders.lang +++ b/htdocs/langs/it_IT/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Un ordine era già aperto collegato a questa proposta, quindi nessun altro ordine è stato creato automaticamente OrdersArea=Area ordini dei clienti SuppliersOrdersArea=Area ordini d'acquisto OrderCard=Scheda ordine @@ -68,6 +69,8 @@ CreateOrder=Crea ordine RefuseOrder=Rifiuta ordine ApproveOrder=Approva l'ordine Approve2Order=Approva ordine (secondo livello) +UserApproval=Utente per approvazione +UserApproval2=Utente per approvazione (secondo livello) ValidateOrder=Convalida ordine UnvalidateOrder=Invalida ordine DeleteOrder=Elimina ordine @@ -102,6 +105,8 @@ ConfirmCancelOrder=Vuoi davvero annullare questo ordine? ConfirmMakeOrder=Vuoi davvero confermare di aver creato questo ordine su %s? GenerateBill=Genera fattura ClassifyShipped=Classifica come spedito +PassedInShippedStatus=classificato consegnato +YouCantShipThis=Non posso classificare questo. Si prega di controllare i permessi utente DraftOrders=Bozze di ordini DraftSuppliersOrders=Ordini di acquisto in bozza OnProcessOrders=Ordini in lavorazione @@ -122,7 +127,7 @@ FirstApprovalAlreadyDone=Prima approvazione già fatta SecondApprovalAlreadyDone=Seconda approvazione già fatta SupplierOrderReceivedInDolibarr=Ordine fornitore %s ricevuto %s SupplierOrderSubmitedInDolibarr=Ordine di acquisto %s inviato -SupplierOrderClassifiedBilled=Purchase Order %s set billed +SupplierOrderClassifiedBilled=Ordine fornitore %s impostato come fatturato OtherOrders=Altri ordini SupplierOrderValidatedAndApproved=L'ordine del fornitore è convalidato e approvato: %s SupplierOrderValidated=L'ordine del fornitore è convalidato: %s @@ -132,7 +137,7 @@ TypeContact_commande_internal_SHIPPING=Responsabile spedizioni cliente TypeContact_commande_external_BILLING=Contatto fatturazione cliente TypeContact_commande_external_SHIPPING=Contatto spedizioni cliente TypeContact_commande_external_CUSTOMER=Contatto follow-up cliente -TypeContact_order_supplier_internal_SALESREPFOLL=Representative following-up purchase order +TypeContact_order_supplier_internal_SALESREPFOLL=Responsabile ordine fornitore TypeContact_order_supplier_internal_SHIPPING=Responsabile spedizioni fornitore TypeContact_order_supplier_external_BILLING=Contatto fattura fornitore TypeContact_order_supplier_external_SHIPPING=Contatto spedizioni fornitore diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang index 11e531f7219..4ac0ee1b02c 100644 --- a/htdocs/langs/it_IT/other.lang +++ b/htdocs/langs/it_IT/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Gestisci i membri di una Fondazione DemoFundation2=Gestisci i membri e un conto bancario di una Fondazione DemoCompanyServiceOnly=Gestire un'attività freelance di vendita di soli servizi -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=Gestisci un negozio con una cassa DemoCompanyProductAndStocks=Negozio di vendita di prodotti con punto vendita DemoCompanyManufacturing=Azienda produttrice di prodotti DemoCompanyAll=Gestire una piccola o media azienda con più attività (tutti i moduli principali) @@ -303,4 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Seleziona un oggetto per visualizzarne le statist ConfirmBtnCommonContent = Sei sicuro di voler "%s"? ConfirmBtnCommonTitle = Conferma la tua azione CloseDialog = Chiudere -Autofill = Autofill +Autofill = Riempimento automatico + +# externalsite +ExternalSiteSetup=Imposta collegamento a sito esterno +ExternalSiteURL=URL del sito esterno del contenuto iframe HTML +ExternalSiteModuleNotComplete=Il modulo ExternalSite non è configurato correttamente. +ExampleMyMenuEntry=La mia voce di menu + +# FTP +FTPClientSetup=Configurazione del modulo client FTP o SFTP +NewFTPClient=Nuova configurazione della connessione FTP/FTPS +FTPArea=Area FTP/FTPS +FTPAreaDesc=Questa schermata mostra una vista di un server FTP e SFTP. +SetupOfFTPClientModuleNotComplete=La configurazione del modulo client FTP o SFTP sembra essere incompleta +FTPFeatureNotSupportedByYourPHP=Il tuo PHP non supporta le funzioni FTP o SFTP +FailedToConnectToFTPServer=Impossibile connettersi al server (server %s, porta %s) +FailedToConnectToFTPServerWithCredentials=Impossibile accedere al server con login/password definiti +FTPFailedToRemoveFile=Impossibile rimuovere il file %s +FTPFailedToRemoveDir=Impossibile rimuovere la directory %s (Controlla i permessi e che la directory sia vuota) +FTPPassiveMode=Modalità passiva +ChooseAFTPEntryIntoMenu=Scegli un sito FTP/SFTP dal menu... +FailedToGetFile=Errore nell'accesso ai file %s diff --git a/htdocs/langs/it_IT/partnership.lang b/htdocs/langs/it_IT/partnership.lang index cac42a97758..6bdeb0edcf2 100644 --- a/htdocs/langs/it_IT/partnership.lang +++ b/htdocs/langs/it_IT/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Gestione del partenariato PartnershipDescription=Modulo Gestione del partenariato PartnershipDescriptionLong= Modulo Gestione del partenariato Partnership=Collaborazione +Partnerships=Partnerships AddPartnership=Aggiungi partnership CancelPartnershipForExpiredMembers=Partnership: annulla la partnership di membri con abbonamenti scaduti PartnershipCheckBacklink=Partnership: controlla il backlink di riferimento @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnership: controlla il backlink di riferimento # Menu # NewPartnership=Nuova partnership +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=Elenco delle partnership # @@ -42,6 +44,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Backlink da controllare PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb di giorni prima della cancellazione dello stato di una partnership quando un abbonamento è scaduto ReferingWebsiteCheck=Verifica del sito web di riferimento ReferingWebsiteCheckDesc=Puoi abilitare una funzione per verificare che i tuoi partner abbiano aggiunto un backlink ai domini del tuo sito web sul proprio sito web. +PublicFormRegistrationPartnerDesc=Dolibarr può fornirti un URL/sito web pubblico per consentire ai visitatori esterni di richiedere di far parte del programma di partnership. # # Object @@ -59,6 +62,12 @@ BacklinkNotFoundOnPartnerWebsite=Backlink non trovato sul sito web del partner ConfirmClosePartnershipAsk=Sei sicuro di voler annullare questa partnership? PartnershipType=Tipo di partenariato PartnershipRefApproved=Approvata la partnership %s +KeywordToCheckInWebsite=Se vuoi verificare che una determinata parola chiave sia presente nel sito web di ciascun partner, definisci questa parola chiave qui +PartnershipDraft=Assegno circolare +PartnershipAccepted=Accettata +PartnershipRefused=Rifiutato +PartnershipCanceled=Annullata +PartnershipManagedFor=I partner sono # # Template Mail @@ -82,11 +91,6 @@ CountLastUrlCheckError=Numero di errori per l'ultimo controllo URL LastCheckBacklink=Data dell'ultimo controllo dell'URL ReasonDeclineOrCancel=Rifiuta la ragione -# -# Status -# -PartnershipDraft=Assegno circolare -PartnershipAccepted=Accettata -PartnershipRefused=Rifiutato -PartnershipCanceled=Annullata -PartnershipManagedFor=I partner sono +NewPartnershipRequest=Nuova richiesta di partnership +NewPartnershipRequestDesc=Questo modulo ti consente di richiedere di far parte di uno dei nostri programmi di partnership. Se hai bisogno di aiuto per compilare questo modulo, contatta via email %s . + diff --git a/htdocs/langs/it_IT/paybox.lang b/htdocs/langs/it_IT/paybox.lang index d5b9c8d5e06..d7d742abd59 100644 --- a/htdocs/langs/it_IT/paybox.lang +++ b/htdocs/langs/it_IT/paybox.lang @@ -2,15 +2,15 @@ PayBoxSetup=Impostazioni modulo Paybox PayBoxDesc=Questo modulo offre pagine per consentire il pagamento su Paybox da parte dei clienti. Questo può essere utilizzato per un pagamento gratuito o per un pagamento su un particolare oggetto Dolibarr (fattura, ordine, ...) FollowingUrlAreAvailableToMakePayments=Puoi utilizzare i seguenti indirizzi per permettere ai clienti di effettuare pagamenti su Dolibarr -PaymentForm=Forma di pagamento -WelcomeOnPaymentPage=Welcome to our online payment service +PaymentForm=Pagamenti Online +WelcomeOnPaymentPage=Benvenuto sulla nostra piattaforma per i pagamenti online ThisScreenAllowsYouToPay=Questa schermata consente di effettuare un pagamento online su %s. ThisIsInformationOnPayment=Informazioni sul pagamento da effettuare ToComplete=Per completare YourEMail=Email per la conferma del pagamento Creditor=Creditore PaymentCode=Codice pagamento -PayBoxDoPayment=Pay with Paybox +PayBoxDoPayment=Paga con Paybox YouWillBeRedirectedOnPayBox=Verrai reindirizzato alla pagina sicura di Paybox per inserire le informazioni della carta di credito. Continue=Successivo SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. diff --git a/htdocs/langs/it_IT/paypal.lang b/htdocs/langs/it_IT/paypal.lang index 001928baab0..bcb1b6e3ae4 100644 --- a/htdocs/langs/it_IT/paypal.lang +++ b/htdocs/langs/it_IT/paypal.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=Impostazioni Paypal PaypalDesc=Questo modulo consente il pagamento da parte dei clienti tramite PayPal . Questo può essere utilizzato per un pagamento ad hoc o per un pagamento relativo ad un oggetto Dolibarr (fattura, ordine, ...) -PaypalOrCBDoPayment=Pay with PayPal (Card or PayPal) -PaypalDoPayment=Pay with PayPal +PaypalOrCBDoPayment=Paga con PayPal (Carta di credito o PayPal) +PaypalDoPayment=Paga con PayPal PAYPAL_API_SANDBOX=Modalità di test/sandbox PAYPAL_API_USER=Nome utente API PAYPAL_API_PASSWORD=Password API @@ -16,7 +16,7 @@ ThisIsTransactionId=L'id di transazione è: %s PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email NewOnlinePaymentReceived=Nuovo pagamento online ricevuto NewOnlinePaymentFailed=Nuovo tentativo di pagamento online fallito -ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail) +ONLINE_PAYMENT_SENDEMAIL=Indirizzo email per la notifica dopo il pagamento (sia in caso di successo che di fallimento) ReturnURLAfterPayment=URL di ritorno dopo il pagamento ValidationOfOnlinePaymentFailed=Validazione del pagamento online fallita PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error @@ -29,8 +29,9 @@ ErrorSeverityCode=Error Severity Code OnlinePaymentSystem=Sistema di pagamento online PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode) PaypalImportPayment=Import PayPal payments -PostActionAfterPayment=Post actions after payments +PostActionAfterPayment=Azioni automatiche eseguite dopo il pagamento ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. ValidationOfPaymentFailed=Validation of payment has failed -CardOwner=Card holder -PayPalBalance=Paypal credit +CardOwner=Nome e cognome sulla carta +PayPalBalance=Credito Paypal +OnlineSubscriptionPaymentLine=Abbonamento online registrato su %s
    Pagato tramite %s
    Indirizzo IP di origine: %s
    ID transazione: %s diff --git a/htdocs/langs/it_IT/productbatch.lang b/htdocs/langs/it_IT/productbatch.lang index 277322df786..89144d3a587 100644 --- a/htdocs/langs/it_IT/productbatch.lang +++ b/htdocs/langs/it_IT/productbatch.lang @@ -43,3 +43,4 @@ HideLots=Nascondi un sacco OutOfOrder=Fuori servizio InWorkingOrder=Funzionante ToReplace=Sostituire +CantMoveNonExistantSerial=Errore. Chiedi una mossa su un record per un seriale che non esiste più. È possibile che tu abbia preso lo stesso numero di serie nello stesso magazzino più volte nella stessa spedizione o sia stato utilizzato da un'altra spedizione. Rimuovi questa spedizione e preparane un'altra. diff --git a/htdocs/langs/it_IT/products.lang b/htdocs/langs/it_IT/products.lang index 3672c585d54..5f44768a2ca 100644 --- a/htdocs/langs/it_IT/products.lang +++ b/htdocs/langs/it_IT/products.lang @@ -2,7 +2,7 @@ ProductRef=Rif. prodotto ProductLabel=Etichetta prodotto ProductLabelTranslated=Etichetta del prodotto tradotto -ProductDescription=Product description +ProductDescription=Descrizione prodotto ProductDescriptionTranslated=Descrizione del prodotto tradotto ProductNoteTranslated=Tradotto nota prodotto ProductServiceCard=Scheda Prodotti/servizi @@ -21,12 +21,12 @@ ProductVatMassChange=Modifica di massa dell'IVA ProductVatMassChangeDesc=Questo strumento aggiorna l'aliquota IVA definita su TUTTI i prodotti e servizi! MassBarcodeInit=Inizializzazione di massa dei codici a barre MassBarcodeInitDesc=Questa pagina può essere usata per inizializzare un codice a barre di un oggetto che non ha ancora un codice a barre definito. Controlla prima che il setup del modulo Codici a barre sia completo. -ProductAccountancyBuyCode=Codice contabile (acquisto) -ProductAccountancyBuyIntraCode=Codice contabile (acquisto intracomunitario) -ProductAccountancyBuyExportCode=Codice contabile (importazione acquisti) -ProductAccountancySellCode=Codice contabile (vendita) -ProductAccountancySellIntraCode=Codice contabile (vendita intracomunitaria) -ProductAccountancySellExportCode=Codice contabile (vendita per esportazione) +ProductAccountancyBuyCode=Conto contabile (acquisto) +ProductAccountancyBuyIntraCode=Conto contabile (acquisto intracomunitario) +ProductAccountancyBuyExportCode=Conto contabile (importazione acquisti) +ProductAccountancySellCode=Conto contabile (vendita) +ProductAccountancySellIntraCode=Conto contabile (vendita intracomunitaria) +ProductAccountancySellExportCode=Conto contabile (vendita per esportazione) ProductOrService=Prodotto o servizio ProductsAndServices=Prodotti e Servizi ProductsOrServices=Prodotti o servizi @@ -53,7 +53,7 @@ MenuStocks=Scorte Stocks=Stocks and location (warehouse) of products Movements=Movimenti Sell=Vendi -Buy=Purchase +Buy=Acquisto OnSell=In vendita OnBuy=In acquisto NotOnSell=Non in vendita @@ -71,7 +71,7 @@ UpdateLevelPrices=Aggiorna prezzi per ogni livello AppliedPricesFrom=Valido dal SellingPrice=Prezzo di vendita SellingPriceHT=Prezzo di vendita (al netto delle imposte) -SellingPriceTTC=Prezzo di vendita (inclusa IVA) +SellingPriceTTC=Prezzo di vendita (IVA Inclusa) SellingMinPriceTTC=Prezzo minimo di vendita (tasse incluse) CostPriceDescription=Questo campo del prezzo (tasse escluse) può essere utilizzato per acquisire l'importo medio che questo prodotto costa alla tua azienda. Può essere qualsiasi prezzo che calcoli tu stesso, ad esempio, dal prezzo medio di acquisto più il costo medio di produzione e distribuzione. CostPriceUsage=Questo valore può essere utilizzato per il calcolo del margine. @@ -79,7 +79,7 @@ ManufacturingPrice=Prezzo di produzione SoldAmount=Quantità venduta PurchasedAmount=Quantità acquistata NewPrice=Nuovo prezzo -MinPrice=min. prezzo di vendita +MinPrice=Prezzo di vendita minimo EditSellingPriceLabel=Modifica l'etichetta del prezzo di vendita CantBeLessThanMinPrice=Il prezzo di vendita non può essere inferiore al minimo consentito per questo prodotto ( %s IVA esclusa) ContractStatusClosed=Chiuso @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Vuoi davvero cancellare questa linea di prodotti? ProductSpecial=Prodotto speciale QtyMin=Min. quantità d'acquisto PriceQtyMin=Prezzo quantità min. -PriceQtyMinCurrency=Prezzo per questa quantità min. (senza sconto) (valuta) +PriceQtyMinCurrency=Prezzo (valuta) per questa quantità. +WithoutDiscount=Senza sconto VATRateForSupplierProduct=Aliquota IVA (per questo fornitore / prodotto) DiscountQtyMin=Sconto per questa quantità NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product @@ -155,7 +156,7 @@ ServiceNb=Servizio # %s ListProductServiceByPopularity=Elenco dei prodotti/servizi per popolarità ListProductByPopularity=Elenco dei prodotti per popolarità ListServiceByPopularity=Elenco dei servizi per popolarità -Finished=Prodotto creato +Finished=Prodotto fabbricato RowMaterial=Materia prima ConfirmCloneProduct=Vuoi davvero clonare il prodotto / servizio %s ? CloneContentProduct=Clona tutte le informazioni principali del prodotto/servizio @@ -170,13 +171,13 @@ BuyingPrices=Prezzi di acquisto CustomerPrices=Prezzi di vendita SuppliersPrices=Prezzi fornitore SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) -CustomCode=codice Customs|Commodity|HS +CustomCode=Codice doganale | commodity | HS CountryOrigin=Paese d'origine RegionStateOrigin=Regione di origine StateOrigin=Stato|Provincia di origine -Nature=Natura del prodotto (grezzo/lavorato) +Nature=Natura del prodotto (materia prima / finito) NatureOfProductShort=Natura del prodotto -NatureOfProductDesc=Materia prima o prodotto fabbricato +NatureOfProductDesc=Materia prima o prodotto finito ShortLabel=Etichetta breve Unit=Unità p=u. @@ -261,7 +262,7 @@ Quarter1=Primo trimestre Quarter2=Secondo trimestre Quarter3=Terzo trimestre Quarter4=Quarto trimestre -BarCodePrintsheet=Stampa codice a barre +BarCodePrintsheet=Stampa codici a barre PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. NumberOfStickers=Numero di etichette da stampare sulla pagina PrintsheetForOneBarCode=Stampa più etichette per singolo codice a barre @@ -274,7 +275,7 @@ DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of barco BarCodeDataForProduct=Barcode information of product %s: BarCodeDataForThirdparty=Barcode information of third party %s: ResetBarcodeForAllRecords=Definisci il valore del codice a barre per tutti quelli inseriti (questo resetta anche i valori già definiti dei codice a barre con nuovi valori) -PriceByCustomer=Prezzi diversi in base al cliente +PriceByCustomer=Prezzi di vendita personalizzati per cliente PriceCatalogue=Prezzo singolo di vendita per prodotto/servizio PricingRule=Reogle dei prezzi di vendita AddCustomerPrice=Aggiungere prezzo dal cliente @@ -344,9 +345,9 @@ PossibleValues=Valori possibili GoOnMenuToCreateVairants=Vai sul menu %s - %s per preparare le varianti degli attributi (come colori, dimensioni, ...) UseProductFournDesc=Aggiungere una funzione per definire la descrizione del prodotto definita dai fornitori (per ogni riferimento del fornitore) oltre alla descrizione per i clienti ProductSupplierDescription=Vendor description for the product -UseProductSupplierPackaging=Utilizzare l'imballaggio sui prezzi del fornitore (ricalcolare le quantità in base all'imballaggio impostato sul prezzo del fornitore quando si aggiunge / aggiorna la riga nei documenti del fornitore) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Confezione -PackagingForThisProductDesc=Su ordine del fornitore, ordinerai automaticamente questa quantità (o un multiplo di questa quantità). Non può essere inferiore alla quantità di acquisto minima +PackagingForThisProductDesc=Acquisterai automaticamente un multiplo di questa quantità. QtyRecalculatedWithPackaging=La quantità della linea è stata ricalcolata in base all'imballaggio del fornitore #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Action only available on the variant of prod ProductsPricePerCustomer=Product prices per customers ProductSupplierExtraFields=Attributi aggiuntivi (prezzi dei fornitori) DeleteLinkedProduct=Elimina il prodotto figlio collegato alla combinazione -AmountUsedToUpdateWAP=Importo da utilizzare per aggiornare il Prezzo Medio Ponderato +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Media ponderata prezzo PMPValueShort=MPP mandatoryperiod=Periodi obbligatori @@ -408,6 +409,23 @@ mandatoryHelper=Selezionare questa opzione se si desidera un messaggio all'utent DefaultBOM=Distinta base predefinita DefaultBOMDesc=La distinta base predefinita consigliata per la fabbricazione di questo prodotto. Questo campo può essere impostato solo se la natura del prodotto è '%s'. Rank=Rango +MergeOriginProduct=Prodotto duplicato (prodotto che desideri eliminare) +MergeProducts=Unisci i prodotti +ConfirmMergeProducts=Sei sicuro di voler unire il prodotto scelto con quello attuale? Tutti gli oggetti collegati (fatture, ordini, ...) verranno spostati nel prodotto corrente, dopodiché il prodotto scelto verrà eliminato. +ProductsMergeSuccess=I prodotti sono stati uniti +ErrorsProductsMerge=Errori nei prodotti si fondono SwitchOnSaleStatus=Attiva lo stato di vendita SwitchOnPurchaseStatus=Attiva lo stato di acquisto -StockMouvementExtraFields=Campi Extra (movimento stock) +UpdatePrice=Increase/decrease customer price +StockMouvementExtraFields= Campi Extra (movimento stock) +InventoryExtraFields= Campi extra (inventario) +ScanOrTypeOrCopyPasteYourBarCodes=Scansiona o digita o copia/incolla i tuoi codici a barre +PuttingPricesUpToDate=Aggiorna i prezzi con i prezzi noti attuali +PMPExpected=PMP previsto +ExpectedValuation=Valutazione attesa +PMPReal=PMP reale +RealValuation=Valutazione reale +ConfirmEditExtrafield = Seleziona l'extrafield che desideri modificare +ConfirmEditExtrafieldQuestion = Sei sicuro di voler modificare questo extrafield? +ModifyValueExtrafields = Modifica il valore di un extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/it_IT/projects.lang b/htdocs/langs/it_IT/projects.lang index 8699e982a39..df6cdac0215 100644 --- a/htdocs/langs/it_IT/projects.lang +++ b/htdocs/langs/it_IT/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Etichetta progetto ProjectsArea=Sezione progetti ProjectStatus=Stato del progetto SharedProject=Progetto condiviso -PrivateProject=Assigned contacts +PrivateProject=Contatti assegnati ProjectsImContactFor=Progetti per i quali sono esplicitamente un contatto AllAllowedProjects=Tutti i progetti che posso vedere (miei + pubblici) AllProjects=Tutti i progetti @@ -23,6 +23,7 @@ TasksPublicDesc=Questa visualizzazione mostra tutti i progetti e i compiti che h TasksDesc=Questa visualizzazione mostra tutti i progetti e i compiti (hai i privilegi per vedere tutto). AllTaskVisibleButEditIfYouAreAssigned=Tutte le attività dei progetti validati sono visibili, ma puoi inserire le ore solo nelle attività assegnate all'utente selezionato. Assegna delle attività se hai bisogno di inserirci all'interno delle ore. OnlyYourTaskAreVisible=Sono visibili solo le attività assegnate a te. Se devi inserire l'ora in un'attività e se l'attività non è visibile qui, devi assegnarla a te stesso. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Compiti dei progetti ProjectCategories=Tag/Categorie Progetti NewProject=Nuovo progetto @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Importo delle vendite potenziali per stato OpportunitiesStatusForProjects=Quantità di Lead per stato progetto ShowProject=Visualizza progetto ShowTask=Visualizza compito +SetThirdParty=Set third party SetProject=Imposta progetto +OutOfProject=Out of project NoProject=Nessun progetto definito o assegnato NbOfProjects=Num. di progetti NbOfTasks=Numero attività @@ -122,7 +125,8 @@ ValidateProject=Convalida progetto ConfirmValidateProject=Vuoi davvero convalidare il progetto? CloseAProject=Chiudi il progetto ConfirmCloseAProject=Vuoi davvero chiudere il progetto? -AlsoCloseAProject=Chiudu anche il progetto (mantienilo aperto se hai ancora bisogno di seguire le attività in esso contenute) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Apri progetto ConfirmReOpenAProject=Vuoi davvero riaprire il progetto? ProjectContact=Contatti del progetto @@ -165,7 +169,7 @@ OpportunityProbability=Probabilità oppotunità OpportunityProbabilityShort=Probab. opportunità OpportunityAmount=Importo totale opportunità OpportunityAmountShort=Importo totale opportunità -OpportunityWeightedAmount=Importo ponderato per le opportunità +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. importo ponderato OpportunityAmountAverageShort=Importo medio opportunità OpportunityAmountWeigthedShort=Importo pesato opportunità @@ -190,12 +194,12 @@ PlannedWorkload=Carico di lavoro previsto PlannedWorkloadShort=Carico di lavoro ProjectReferers=Elementi correlati ProjectMustBeValidatedFirst=I progetti devono prima essere validati -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. +MustBeValidatedToBeSigned=%s deve essere prima convalidato per essere impostato su Signed. FirstAddRessourceToAllocateTime=Assegnare una risorsa utente come contatto del progetto per allocare il tempo InputPerDay=Input per giorno InputPerWeek=Input per settimana InputPerMonth=Input per mese -InputDetail=Dettagli di input +InputDetail=Dettagli di ingresso TimeAlreadyRecorded=Questo lasso di tempo è già stato registrato per questa attività/giorno e l'utente%s ProjectsWithThisUserAsContact=Progetti con questo utente come contatto ProjectsWithThisContact=Progetti con questo contatto @@ -238,7 +242,7 @@ OppStatusPENDING=In attesa OppStatusWON=Vinto OppStatusLOST=Perso Budget=Budget -AllowToLinkFromOtherCompany=Consenti di collegare progetti di altre società

    Valori supportati:
    - Mantieni vuoto: può collegare qualsiasi progetto dell'azienda (impostazione predefinita)
    - "tutto": può collegare qualsiasi progetto, anche progetti di altre società
    - Un elenco di ID di terze parti separati da virgole: può collegare tutti i progetti di queste terze parti (Esempio: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Ultimi %s progetti LatestModifiedProjects=Ultimi %s progetti modificati OtherFilteredTasks=Altre attività filtrate @@ -259,7 +263,7 @@ TimeSpentInvoiced=Time spent billed TimeSpentForIntervention=Tempo lavorato TimeSpentForInvoice=Tempo lavorato OneLinePerUser=One line per user -ServiceToUseOnLines=Service to use on lines +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project InterventionGeneratedFromTimeSpent=L'intervento %s è stato generato dal tempo dedicato al progetto ProjectBillTimeDescription=Check se inserisci la scheda attività sulle attività del progetto E prevedi di generare fatture dalla scheda attività per fatturare al cliente il progetto (non verificare se si prevede di creare una fattura che non si basa sulle schede attività inserite). Nota: per generare una fattura, vai sulla scheda "Tempo trascorso" del progetto e seleziona le righe da includere. @@ -282,15 +286,16 @@ ProfitIsCalculatedWith=Il profitto viene calcolato utilizzando AddPersonToTask=Aggiungi anche ai seguenti compiti UsageOrganizeEvent=Utilizzo: organizzazione di eventi PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classifica il progetto come chiuso quando tutte le sue attività sono state completate (avanzamento 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: i progetti esistenti con tutte le attività allo stato di avanzamento 100%% non saranno interessati: dovrai chiuderli manualmente. Questa opzione ha effetto solo sui progetti aperti. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Seleziona le righe di tempo trascorse non fatturate, quindi l'azione collettiva "Genera fattura" per fatturarle ProjectTasksWithoutTimeSpent=Attività di progetto senza tempo speso FormForNewLeadDesc=Grazie per aver compilato il seguente modulo per contattarci. Puoi anche inviarci un'e-mail direttamente a %s . ProjectsHavingThisContact=Progetti che hanno questo contatto StartDateCannotBeAfterEndDate=La data di fine non può essere precedente a quella di inizio -ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +ErrorPROJECTLEADERRoleMissingRestoreIt=Il ruolo "PROJECTLEADER" è mancante o è stato disattivato, ripristinare nel dizionario dei tipi di contatto +LeadPublicFormDesc=Puoi abilitare qui una pagina pubblica per consentire ai tuoi potenziali clienti di stabilire un primo contatto con te da un modulo online pubblico +EnablePublicLeadForm=Abilita il modulo pubblico per il contatto +NewLeadbyWeb=Il tuo messaggio o richiesta è stato registrato. Ti risponderemo o ti contatteremo presto. +NewLeadForm=Nuovo modulo di contatto +LeadFromPublicForm=Lead online da modulo pubblico +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/it_IT/propal.lang b/htdocs/langs/it_IT/propal.lang index 39f4064ad1b..2c0bcfec158 100644 --- a/htdocs/langs/it_IT/propal.lang +++ b/htdocs/langs/it_IT/propal.lang @@ -54,7 +54,7 @@ NoDraftProposals=Nessuna bozza di preventivo CopyPropalFrom=Crea preventivo da uno esistente CreateEmptyPropal=Crea un preventivo vuoto o dalla lista dei prodotti/servizi DefaultProposalDurationValidity=Durata di validità predefinita per i preventivi (in giorni) -DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal +DefaultPuttingPricesUpToDate=Per impostazione predefinita, aggiorna i prezzi con i prezzi noti correnti durante la clonazione di una proposta UseCustomerContactAsPropalRecipientIfExist=Usa il contatto/indirizzo con la tipologia "Contatto assegnato al preventico" se definito al posto dell'indirizzo del soggetto terzo come indirizzo di destinazione del preventivo ConfirmClonePropal=Vuoi davvero clonare il preventivo%s? ConfirmReOpenProp=Vuoi davvero riaprire il preventivo %s? @@ -65,49 +65,54 @@ AvailabilityPeriod=Tempi di consegna SetAvailability=Imposta i tempi di consegna AfterOrder=dopo ordine OtherProposals=Altre proposte + ##### Availability ##### AvailabilityTypeAV_NOW=Immediato AvailabilityTypeAV_1W=1 settimana AvailabilityTypeAV_2W=2 settimane AvailabilityTypeAV_3W=3 settimane AvailabilityTypeAV_1M=1 mese -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Responsabile del preventivo TypeContact_propal_external_BILLING=Contatto per la fatturazione TypeContact_propal_external_CUSTOMER=Responsabile per il cliente TypeContact_propal_external_SHIPPING=Contatto cliente per la consegna + # Document models -DocModelAzurDescription=Un modello completo PDF di proposta cliente (vecchia implementazione del modello Cyan) -DocModelCyanDescription=Modello di preventivo completo +CantBeNoSign=non può essere impostato non firmato +CaseFollowedBy=Caso seguito da +ConfirmMassNoSignature=Bulk Conferma non firmata +ConfirmMassNoSignatureQuestion=Sei sicuro di voler impostare non firmati i record selezionati? +ConfirmMassSignature=Conferma della firma in blocco +ConfirmMassSignatureQuestion=Sei sicuro di voler firmare i record selezionati? +ConfirmMassValidation=Conferma di convalida in blocco +ConfirmMassValidationQuestion=Sei sicuro di voler convalidare i record selezionati? +ConfirmRefusePropal=Sei sicuro di voler rifiutare questa proposta commerciale? +ContractSigned=Contratto firmato +DefaultModelPropalClosed=Modello predefinito quando si chiude un preventivo (da non fatturare) DefaultModelPropalCreate=Creazione del modello predefinito DefaultModelPropalToBill=Modello predefinito quando si chiude un preventivo (da fatturare) -DefaultModelPropalClosed=Modello predefinito quando si chiude un preventivo (da non fatturare) +DocModelAzurDescription=Un modello completo PDF di proposta cliente (vecchia implementazione del modello Cyan) +DocModelCyanDescription=Modello di preventivo completo +FichinterSigned=Intervention signed +IdProduct=ID prodotto +IdProposal=ID proposta +IsNotADraft=non è una bozza +LineBuyPriceHT=Prezzo netto di acquisto (IVA Escl.) per riga +NoSign=Rifiuta +NoSigned=set non firmato +PassedInOpenStatus=è stato convalidato +PropalAlreadyRefused=Proposta già rifiutata +PropalAlreadySigned=Proposta già accettata +PropalRefused=Proposta rifiutata +PropalSigned=Proposta accettata ProposalCustomerSignature=Accettazione scritta, timbro, data e firma ProposalsStatisticsSuppliers=Statistiche preventivi fornitori -CaseFollowedBy=Caso seguito da -SignedOnly=Solo firmato -NoSign=Set not signed -NoSigned=set not signed -CantBeNoSign=cannot be set not signed -ConfirmMassNoSignature=Bulk Not signed confirmation -ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? -IsNotADraft=is not a draft -PassedInOpenStatus=has been validated -Sign=Firma -Signed=signed -ConfirmMassValidation=Bulk Validate confirmation -ConfirmMassSignature=Bulk Signature confirmation -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? -ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=ID proposta -IdProduct=ID prodotto -LineBuyPriceHT=Prezzo di acquisto Importo al netto delle tasse per riga -SignPropal=Accetta proposta RefusePropal=Rifiuta la proposta Sign=Firma -NoSign=Set not signed -PropalAlreadySigned=Proposta già accettata -PropalAlreadyRefused=Proposta già rifiutata -PropalSigned=Proposta accettata -PropalRefused=Proposta rifiutata -ConfirmRefusePropal=Sei sicuro di voler rifiutare questa proposta commerciale? +SignContract=Firma il contratto +SignFichinter=Sign intervention +SignPropal=Accetta proposta +Signed=firmato +SignedOnly=Solo firmato diff --git a/htdocs/langs/it_IT/receiptprinter.lang b/htdocs/langs/it_IT/receiptprinter.lang index 566f762bbbd..b77e8c0fe27 100644 --- a/htdocs/langs/it_IT/receiptprinter.lang +++ b/htdocs/langs/it_IT/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Stampa di prova inviata a %s ReceiptPrinter=Receipt printers ReceiptPrinterDesc=Configurazione stampa ricevute ReceiptPrinterTemplateDesc=Setup of Templates -ReceiptPrinterTypeDesc=Description of Receipt Printer's type +ReceiptPrinterTypeDesc=Esempio di possibili valori per il campo "Parametri" in base al tipo di driver ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile ListPrinters=Lista delle stampanti SetupReceiptTemplate=Template Setup @@ -55,8 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Altezza e larghezza predefinite DOL_UNDERLINE=Abilita sottolineatura DOL_UNDERLINE_DISABLED=Disabilita la sottolineatura DOL_BEEP=Suono di Beep -DOL_BEEP_ALTERNATIVE=Suono di Beep (modalità alternativa) -DOL_PRINT_CURR_DATE=Stampa la data/ora corrente +DOL_BEEP_ALTERNATIVE=Segnale acustico (modalità alternativa) +DOL_PRINT_CURR_DATE=Stampa data/ora corrente DOL_PRINT_TEXT=Stampa il testo DateInvoiceWithTime=Data e ora della fattura YearInvoice=Anno della fattura diff --git a/htdocs/langs/it_IT/recruitment.lang b/htdocs/langs/it_IT/recruitment.lang index 0a6a28cc8dc..185761f9f08 100644 --- a/htdocs/langs/it_IT/recruitment.lang +++ b/htdocs/langs/it_IT/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Reclutatore di posta elettronica ToUseAGenericEmail=Per utilizzare un'e-mail generica. Se non definita, verrà utilizzata l'e-mail del responsabile del reclutamento NewCandidature=Nuova applicazione ListOfCandidatures=Elenco delle applicazioni -RequestedRemuneration=Compenso richiesto -ProposedRemuneration=Compenso proposto +Remuneration=Stipendio +RequestedRemuneration=Stipendio richiesto +ProposedRemuneration=Stipendio proposto ContractProposed=Proposta di contratto ContractSigned=Contratto firmato ContractRefused=Contratto rifiutato RecruitmentCandidature=Applicazione JobPositions=Posizione lavorativa RecruitmentCandidatures=Applicazioni -InterviewToDo=Intervista da fare +InterviewToDo=Contatti da seguire AnswerCandidature=Risposta dell'applicazione YourCandidature=La tua applicazione YourCandidatureAnswerMessage=Grazie per la tua candidatura.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=La posizione lavorativa è chiusa. ExtrafieldsJobPosition=Attributi complementari (posizioni lavorative) ExtrafieldsApplication=Attributi complementari (domande di lavoro) MakeOffer=Fare un'offerta +WeAreRecruiting=Stiamo reclutando. Questo è un elenco di posizioni aperte da ricoprire... +NoPositionOpen=Nessuna posizione aperta al momento diff --git a/htdocs/langs/it_IT/salaries.lang b/htdocs/langs/it_IT/salaries.lang index 0610072266c..309bb8c2628 100644 --- a/htdocs/langs/it_IT/salaries.lang +++ b/htdocs/langs/it_IT/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Piano dei conti usato per utenti di soggetti terzi -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Codice contabile predefinito per i pagamenti degli stipendi CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Per impostazione predefinita, lascia vuota l'opzione "Crea automaticamente un pagamento totale" quando crei uno stipendio Salary=Stipendio diff --git a/htdocs/langs/it_IT/stocks.lang b/htdocs/langs/it_IT/stocks.lang index 4a1c3b32740..5d1fa64bef9 100644 --- a/htdocs/langs/it_IT/stocks.lang +++ b/htdocs/langs/it_IT/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Data in futuro StocksByLotSerial=Scorte per lotto / seriale LotSerial=Lotti / Seriali LotSerialList=Elenco lotti / seriali +SubjectToLotSerialOnly=Prodotti soggetti solo a lotto/numero di serie Movements=Movimenti ErrorWarehouseRefRequired=Il nome della referenza di magazzino è obbligatorio ListOfWarehouses=Elenco magazzini @@ -48,7 +49,7 @@ StockCorrection=Variazioni scorte CorrectStock=Variazione scorte StockTransfer=Movimento scorte TransferStock=Trasferimento scorte -MassStockTransferShort=Trasferimento di massa magazzino +MassStockTransferShort=Bulk stock change StockMovement=Movimento scorte StockMovements=Movimenti scorte NumberOfUnit=Numero di unità @@ -75,13 +76,13 @@ QtyToDispatchShort=Q.ta da ricevere OrderDispatch=Ricezione prodotti RuleForStockManagementDecrease=Choose Rule for automatic stock decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Choose Rule for automatic stock increase (manual increase is always possible, even if an automatic increase rule is activated) -DeStockOnBill=Decrease real stocks on validation of customer invoice/credit note +DeStockOnBill=Diminuire le scorte fisiche/reali alla convalida della fattura attiva / nota di credito DeStockOnValidateOrder=Diminuire le scorte fisiche/reali alla convalida degli ordini cliente DeStockOnShipment=Diminuire le scorte fisiche/reali alla convalida della spedizione DeStockOnShipmentOnClosing=Diminuire le scorte fisiche/reali quando la spedizione viene chiusa. ReStockOnBill=Increase real stocks on validation of vendor invoice/credit note -ReStockOnValidateOrder=Increase real stocks on purchase order approval -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouse, after purchase order receipt of goods +ReStockOnValidateOrder=Aumenta scorte effettive all'approvazione dell'ordine fornitore +ReStockOnDispatchOrder=Aumentare le scorte reali durante la ricezione manuale in magazzino, dopo il ricevimento della merce dell'ordine fornitore StockOnReception=Increase real stocks on validation of reception StockOnReceptionOnClosing=Increase real stocks when reception is set to closed OrderStatusNotReadyToDispatch=Lo stato dell'ordine non ne consente la spedizione dei prodotti a magazzino. @@ -141,13 +142,14 @@ WarehouseForStockIncrease=Il magazzino %s sarà usato per l'aumento delle ForThisWarehouse=Per questo magazzino ReplenishmentStatusDesc=Questa è una lista di tutti i prodotti con una giacenza inferiore a quella desiderata (o inferiore al valore di allarme se la casella "solo allarme" è selezionata). Utilizzando la casella di controllo, è possibile creare ordini fornitori per colmare la differenza. ReplenishmentStatusDescPerWarehouse=Se si desidera un rifornimento basato sulla quantità desiderata definita per magazzino, è necessario aggiungere un filtro al magazzino. -ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here. +ReplenishmentOrdersDesc=Questa è l'elenco degli ordini fornitori aperti che includono prodotti predefiniti. Sono visibili qui, solamente gli ordini fornitori aperti con prodotti predefiniti, ossia gli ordini che possono ancora influire sulle scorte. Replenishments=Rifornimento NbOfProductBeforePeriod=Quantità del prodotto %s in magazzino prima del periodo selezionato (< %s) NbOfProductAfterPeriod=Quantità del prodotto %s in magazzino dopo il periodo selezionato (< %s) MassMovement=Movimentazione di massa -SelectProductInAndOutWareHouse=Seleziona un magazzino di origine e un magazzino di destinazione, un prodotto e una quantità, quindi fai clic su "%s". Una volta fatto questo per tutti i movimenti richiesti, fare clic su "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Record transfer +RecordMovements=Record stock movements ReceivingForSameOrder=Ricezioni per questo ordine StockMovementRecorded=Movimentazione di scorte registrata RuleForStockAvailability=Regole sulla fornitura delle scorte @@ -166,7 +168,7 @@ ShowWarehouse=Mostra magazzino MovementCorrectStock=Correzione scorte per il prodotto %s MovementTransferStock=Trasferisci scorte del prodotto %s in un altro magazzino InventoryCodeShort=Codice di inventario o di spostamento -NoPendingReceptionOnSupplierOrder=No pending reception due to open purchase order +NoPendingReceptionOnSupplierOrder=Nessuna ricezione in sospeso dovuta ad ordini fornitori aperti ThisSerialAlreadyExistWithDifferentDate=Questo lotto/numero seriale (%s) esiste già con una differente data di scadenza o di validità (trovata %s, inserita %s ) OpenAnyMovement=Aperto (tutti i movimenti) OpenInternal=Aperto (solo movimento interno) @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Riduci la quantità, quindi fai clic per dividere la riga InventoryDate=Inventory date Inventories=Inventari NewInventory=Nuovo inventario @@ -198,7 +200,7 @@ inventorySelectWarehouse=Warehouse choice inventoryConfirmCreate=Crea inventoryOfWarehouse=Inventari del magazzino: %s inventoryErrorQtyAdd=Error: one quantity is less than zero -inventoryMvtStock=By inventory +inventoryMvtStock=Da inventario inventoryWarningProductAlreadyExists=This product is already into list SelectCategory=Filtro categoria SelectFournisseur=Vendor filter @@ -234,7 +236,7 @@ StockIncrease=Aumento scorte StockDecrease=Diminuzione scorte InventoryForASpecificWarehouse=Inventario per un magazzino specifico InventoryForASpecificProduct=Inventario per un prodotto specifico -StockIsRequiredToChooseWhichLotToUse=Le scorte sono necessarie per scegliere quale lotto utilizzare +StockIsRequiredToChooseWhichLotToUse=È necessario uno stock esistente per poter scegliere quale lotto utilizzare ForceTo=Costringere AlwaysShowFullArbo=Visualizza l'albero completo del magazzino sul popup dei collegamenti del magazzino (avvertenza: questo potrebbe diminuire drasticamente le prestazioni) StockAtDatePastDesc=È possibile visualizzare qui lo stock (stock reale) in una determinata data nel passato @@ -254,7 +256,7 @@ ReOpen=Riapri ConfirmFinish=Confermi la chiusura dell'inventario? Questa azione genererà tutti i movimenti di magazzino per aggiornare le quantità reali dei prodotti inserite nell'inventario. ObjectNotFound=%s non trovato MakeMovementsAndClose=Genera movimenti e chiudi -AutofillWithExpected=Sostituisci la quantità reale con la quantità prevista +AutofillWithExpected=Riempi la quantità reale con la quantità prevista ShowAllBatchByDefault=Per impostazione predefinita, mostra i dettagli del lotto nella scheda "stock" del prodotto CollapseBatchDetailHelp=È possibile impostare la visualizzazione predefinita dei dettagli del lotto nella configurazione del modulo scorte ErrorWrongBarcodemode=Modalità codice a barre sconosciuto @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=Il prodotto con codice a barre non esiste WarehouseId=ID magazzino WarehouseRef=Rif. Magazzino SaveQtyFirst=Salva prima le quantità reali inventariate, prima di chiedere la creazione del movimento stock. +ToStart=Avvio InventoryStartedShort=Iniziata ErrorOnElementsInventory=Operazione annullata per il seguente motivo: ErrorCantFindCodeInInventory=Impossibile trovare il codice seguente nell'inventario QtyWasAddedToTheScannedBarcode=Successo !! La quantità è stata aggiunta a tutto il codice a barre richiesto. È possibile chiudere lo strumento Scanner. -StockChangeDisabled=Cambio su stock disabilitato +StockChangeDisabled=Cambio stock disabilitato NoWarehouseDefinedForTerminal=Nessun magazzino definito per il terminal +ClearQtys=Cancella tutte le quantità +ModuleStockTransferName=Trasferimento azionario avanzato +ModuleStockTransferDesc=Gestione avanzata di Stock Transfer, con generazione di foglio di trasferimento +StockTransferNew=Nuovo trasferimento di azioni +StockTransferList=Elenco trasferimenti di azioni +ConfirmValidateStockTransfer=Sei sicuro di voler convalidare questo trasferimento di azioni con riferimento %s ? +ConfirmDestock=Diminuzione delle scorte con trasferimento %s +ConfirmDestockCancel=Annulla la diminuzione delle scorte con il trasferimento %s +DestockAllProduct=Diminuzione delle scorte +DestockAllProductCancel=Annulla la diminuzione delle scorte +ConfirmAddStock=Aumenta le scorte con il trasferimento %s +ConfirmAddStockCancel=Annulla aumento scorte con trasferimento %s +AddStockAllProduct=Aumento delle scorte +AddStockAllProductCancel=Annulla aumento delle scorte +DatePrevueDepart=Data prevista di partenza +DateReelleDepart=Data di partenza reale +DatePrevueArrivee=Presunta data di arrivo +DateReelleArrivee=Data di arrivo reale +HelpWarehouseStockTransferSource=Se questo warehouse è impostato, solo se stesso ei suoi figli saranno disponibili come warehouse di origine +HelpWarehouseStockTransferDestination=Se questo magazzino è impostato, solo se stesso e i suoi figli saranno disponibili come magazzino di destinazione +LeadTimeForWarning=Lead time prima dell'avviso (in giorni) +TypeContact_stocktransfer_internal_STFROM=Mittente di trasferimento titoli +TypeContact_stocktransfer_internal_STDEST=Destinatario del trasferimento di azioni +TypeContact_stocktransfer_internal_STRESP=Responsabile del trasferimento delle scorte +StockTransferSheet=Foglio trasferimento titoli +StockTransferSheetProforma=Foglio di trasferimento titoli proforma +StockTransferDecrementation=Diminuire i magazzini di origine +StockTransferIncrementation=Aumenta i magazzini di destinazione +StockTransferDecrementationCancel=Annulla la diminuzione dei magazzini di origine +StockTransferIncrementationCancel=Annulla aumento dei magazzini di destinazione +StockStransferDecremented=I magazzini di origine sono diminuiti +StockStransferDecrementedCancel=Diminuzione dei magazzini di origine annullata +StockStransferIncremented=Chiuso - Azioni trasferite +StockStransferIncrementedShort=Azioni trasferite +StockStransferIncrementedShortCancel=Annullato l'aumento dei magazzini di destinazione +StockTransferNoBatchForProduct=Il prodotto %s non utilizza batch, cancella batch in linea e riprova +StockTransferSetup = Configurazione del modulo di trasferimento titoli +Settings=Impostazioni +StockTransferSetupPage = Pagina di configurazione per il modulo di trasferimento titoli +StockTransferRightRead=Leggi i trasferimenti di azioni +StockTransferRightCreateUpdate=Crea/aggiorna i trasferimenti di azioni +StockTransferRightDelete=Elimina i trasferimenti di azioni +BatchNotFound=Lotto/numero di serie non trovato per questo prodotto diff --git a/htdocs/langs/it_IT/stripe.lang b/htdocs/langs/it_IT/stripe.lang index de8144f5037..39246086656 100644 --- a/htdocs/langs/it_IT/stripe.lang +++ b/htdocs/langs/it_IT/stripe.lang @@ -4,7 +4,7 @@ StripeDesc=Offri ai tuoi clienti una pagina di pagamento online per i pagamenti StripeOrCBDoPayment=Paga con carta di credito o Stripe FollowingUrlAreAvailableToMakePayments=Puoi utilizzare i seguenti indirizzi per permettere ai clienti di effettuare pagamenti su Dolibarr PaymentForm=Forma di pagamento -WelcomeOnPaymentPage=Benvenuto sul nostro sistema di pagamento online +WelcomeOnPaymentPage=Benvenuto sulla nostra piattaforma per i pagamenti online ThisScreenAllowsYouToPay=Questa schermata consente di effettuare un pagamento online per %s. ThisIsInformationOnPayment=Informazioni sul pagamento da effettuare ToComplete=Per completare @@ -47,8 +47,8 @@ OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...) OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...) BankAccountForBankTransfer=Conto bancario per il pagamento dei fondi StripeAccount=Stripe account -StripeChargeList=Lista delle spese Stripe -StripeTransactionList=Lista delle transazioni Stripe +StripeChargeList=Elenco addebiti Stripe +StripeTransactionList=Elenco transazioni Stripe StripeCustomerId=ID Cliente Stripe StripePaymentModes=Tipo di pagamento Stripe LocalID=Local ID @@ -61,11 +61,14 @@ DeleteACard=Elimina Carta ConfirmDeleteCard=Sei sicuro che vuoi cancellare questa Carta di Credito/Debito? CreateCustomerOnStripe=Crea cliente su Stripe CreateCardOnStripe=Crea carta su Stripe +CreateBANOnStripe=Create bank on Stripe ShowInStripe=Visualizza su Stripe StripeUserAccountForActions=Conto utente da utilizzare per le notifiche e-mail di alcuni eventi Stripe (pagamenti Stripe) -StripePayoutList=Elenco di pagamenti Stripe +StripePayoutList=Elenco pagamenti Stripe ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. ClickHereToTryAgain=Clicca qui per riprovare... CreationOfPaymentModeMustBeDoneFromStripeInterface=A causa delle forti regole di autenticazione del cliente, la creazione di una carta deve essere effettuata dal backoffice di Stripe. È possibile fare clic qui per attivare il record cliente Stripe: %s +TERMINAL_LOCATION=Location (address) for terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe diff --git a/htdocs/langs/it_IT/suppliers.lang b/htdocs/langs/it_IT/suppliers.lang index c963ccaa797..eed214b9556 100644 --- a/htdocs/langs/it_IT/suppliers.lang +++ b/htdocs/langs/it_IT/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Nome acquirente AllProductServicePrices=Prezzi dei prodotti / servizi AllProductReferencesOfSupplier=Tutti i riferimenti del fornitore BuyingPriceNumShort=Prezzi fornitore +RepeatableSupplierInvoice=Modello di fattura fornitore +RepeatableSupplierInvoices=Modello fatture fornitore +RepeatableSupplierInvoicesList=Modello fatture fornitore +RecurringSupplierInvoices=Fatture fornitori ricorrenti +ToCreateAPredefinedSupplierInvoice=Per creare un modello di fattura fornitore, è necessario creare una fattura standard, quindi, senza convalidarla, fare clic sul pulsante "%s". +GeneratedFromSupplierTemplate=Generato dal modello di fattura fornitore %s +SupplierInvoiceGeneratedFromTemplate=Fattura fornitore %s Generata dal modello di fattura fornitore %s diff --git a/htdocs/langs/it_IT/ticket.lang b/htdocs/langs/it_IT/ticket.lang index db4e7f87e63..ea1df7ffb82 100644 --- a/htdocs/langs/it_IT/ticket.lang +++ b/htdocs/langs/it_IT/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Cancella tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Tipologie TicketDictCategory=Ticket - Gruppi TicketDictSeverity=Ticket - Importanza @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=E-mail del mittente per la notifica sulle risposte +TicketEmailNotificationFromHelp=E-mail mittente da utilizzare per inviare l'e-mail di notifica quando viene fornita una risposta all'interno del backoffice. Ad esempio noreply@example.com +TicketEmailNotificationTo=Segnala la creazione del biglietto a questo indirizzo e-mail +TicketEmailNotificationToHelp=Se presente, a questo indirizzo e-mail verrà notificata la creazione di un biglietto TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=Nell'interfaccia pubblica, l'indirizzo email dovrebbe già essere inserito nel database per creare un nuovo ticket +TicketCreateThirdPartyWithContactIfNotExist=Chiedi il nome e il nome dell'azienda per le email sconosciute. +TicketCreateThirdPartyWithContactIfNotExistHelp=Verificare se esiste una terza parte o un contatto per l'e-mail inserita. In caso contrario, chiedi un nome e un nome di società per creare una terza parte con contatto. PublicInterface=Interfaccia pubblica TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,17 +139,19 @@ TicketsPublicNotificationNewMessage=Invia e-mail quando un nuovo messaggio/comme TicketsPublicNotificationNewMessageHelp=Invia e-mail quando si aggiunge un nuovo messaggio dall'interfaccia pubblica (all'utente assegnato o all'e-mail di notifica a (aggiorna) e / o all'e-mail di notifica a) TicketPublicNotificationNewMessageDefaultEmail=Notifiche via email (aggiornamento) TicketPublicNotificationNewMessageDefaultEmailHelp=Invia un'e-mail a questo indirizzo per ogni nuovo messaggio di notifica se al ticket non è assegnato un utente o se l'utente non ha alcuna e-mail nota. -TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) -TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". -TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): -TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. -TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): -TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. -TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket -TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. -TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. -TicketChooseProductCategory=Product category for ticket support -TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketsAutoReadTicket=Contrassegna automaticamente il biglietto come letto (se creato dal backoffice) +TicketsAutoReadTicketHelp=Contrassegna automaticamente il ticket come letto quando viene creato dal backoffice. Quando il ticket viene creato dall'interfaccia pubblica, il ticket rimane con lo stato "Non letto". +TicketsDelayBeforeFirstAnswer=Un nuovo biglietto dovrebbe ricevere una prima risposta prima (ore): +TicketsDelayBeforeFirstAnswerHelp=Se un nuovo ticket non ha ricevuto risposta dopo questo periodo di tempo (in ore), nella visualizzazione elenco verrà visualizzata un'icona di avviso importante. +TicketsDelayBetweenAnswers=Un ticket non risolto non dovrebbe essere inattivo durante (ore): +TicketsDelayBetweenAnswersHelp=Se un ticket non risolto che ha già ricevuto una risposta non ha avuto ulteriori interazioni dopo questo periodo di tempo (in ore), verrà visualizzata un'icona di avviso nella visualizzazione elenco. +TicketsAutoNotifyClose=Avvisa automaticamente la terza parte alla chiusura di un ticket +TicketsAutoNotifyCloseHelp=Alla chiusura di un ticket, ti verrà proposto di inviare un messaggio a uno dei contatti di terze parti. Alla chiusura di massa verrà inviato un messaggio ad un contatto della terza parte collegato al ticket. +TicketWrongContact=Il contatto fornito non fa parte degli attuali contatti del ticket. E-mail non inviata. +TicketChooseProductCategory=Categoria di prodotti per il supporto dei biglietti +TicketChooseProductCategoryHelp=Seleziona la categoria di prodotto del supporto ticket. Questo verrà utilizzato per collegare automaticamente un contratto a un biglietto. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -163,8 +168,8 @@ OrderByDateAsc=Ordina per data crescente OrderByDateDesc=Ordina per data decrescente ShowAsConversation=Mostra come elenco di conversazioni MessageListViewType=Mostra come elenco di tabelle -ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets -ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? +ConfirmMassTicketClosingSendEmail=Invia automaticamente e-mail alla chiusura dei ticket +ConfirmMassTicketClosingSendEmailQuestion=Vuoi notificare a terzi la chiusura di questi ticket? # # Ticket card @@ -190,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Cambia gravità -TicketAddMessage=Aggiungi un messaggio -AddMessage=Aggiungi un messaggio +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Messaggio aggiunto con successo TicketMessagesList=Message list @@ -202,8 +206,8 @@ TicketSeverity=Gravità ShowTicket=See ticket RelatedTickets=Ticket correlati TicketAddIntervention=Crea intervento -CloseTicket=Chiudi|Risolvi ticket -AbandonTicket=Abbandonare il biglietto +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Chiudi|Risolvi un ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Confermi la chiusura del biglietto allo stato 'Abbandonato' @@ -217,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Il destinatario è vuoto. Nessuna email inviata TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Questo testo viene aggiunto solo all'inizio dell'email e non verrà salvato -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Firma -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Firma dell'email di risposta -TicketMessageMailSignatureHelpAdmin=Questo testo verrà inserito dopo il messaggio di risposta +TicketMessageMailIntroText=Ciao,
    Una nuova risposta è stata aggiunta a un ticket che segui. Ecco il messaggio:
    +TicketMessageMailIntroHelpAdmin=Questo testo verrà inserito prima della risposta quando si risponde a un ticket di Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Tempo trascorso prima/da allora @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assegnato TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -252,16 +256,16 @@ TicketChangeStatus=Modifica stato TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create -NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket -TicketNotifyAllTiersAtClose=All related contacts -TicketNotNotifyTiersAtClose=No related contact +NotifyThirdpartyOnTicketClosing=Contatti da avvisare durante la chiusura del ticket +TicketNotifyAllTiersAtClose=Tutti i contatti correlati +TicketNotNotifyTiersAtClose=Nessun contatto correlato Unread=Unread TicketNotCreatedFromPublicInterface=Non disponibile. Il ticket non è stato creato dall'interfaccia pubblica. ErrorTicketRefRequired=È richiesto il nome di riferimento del biglietto -TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. -TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. -TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. +TicketsDelayForFirstResponseTooLong=Troppo tempo trascorso dall'apertura del ticket senza alcuna risposta. +TicketsDelayFromLastResponseTooLong=È trascorso troppo tempo dall'ultima risposta su questo ticket. +TicketNoContractFoundToLink=Nessun contratto è stato trovato automaticamente collegato a questo biglietto. Si prega di collegare un contratto manualmente. +TicketManyContractsLinked=Molti contratti sono stati automaticamente collegati a questo biglietto. Assicurati di verificare quale dovrebbe essere scelto. # # Logs @@ -289,12 +293,12 @@ TicketNewEmailBody=Questa email automatica conferma che è stato registrato un n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Informazioni utili per tua richiesta TicketNewEmailBodyInfosTrackId=Numero ID della tua richiesta: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=È possibile visualizzare lo stato di avanzamento del ticket cliccando il seguente link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link -TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=Puoi consultare lo storico di questo biglietto cliccando il seguente link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=Questo modulo consente di registrare un ticket di supporto nel nostro sistema di gestione ticketing. -TicketPublicPleaseBeAccuratelyDescribe=Descrivi il problema dettagliatamente. Fornisci più informazioni possibili per consentirci di identificare la tua richiesta. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Inserisci qui il numero della sua richista ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -313,10 +317,10 @@ NewUser=Nuovo utente NumberOfTicketsByMonth=Numero di ticket per mese NbOfTickets=Number of tickets # notifications -TicketCloseEmailSubjectCustomer=Ticket closed -TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. -TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) -TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: +TicketCloseEmailSubjectCustomer=Biglietto chiuso +TicketCloseEmailBodyCustomer=Questo è un messaggio automatico per informarti che il ticket %s è stato appena chiuso. +TicketCloseEmailSubjectAdmin=Biglietto chiuso - Réf %s (ID biglietto pubblico %s) +TicketCloseEmailBodyAdmin=Un ticket con ID #%s è stato appena chiuso, vedi informazioni: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=Questo è un messaggio automatico per confermare che il ticket %s è stato aggiornato TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/it_IT/trips.lang b/htdocs/langs/it_IT/trips.lang index 93c1bbfee3f..f65f77b5311 100644 --- a/htdocs/langs/it_IT/trips.lang +++ b/htdocs/langs/it_IT/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Mostra note spese -Trips=Note spese -TripsAndExpenses=Note spese -TripsAndExpensesStatistics=Statistiche note spese -TripCard=Scheda nota spese +AUTHOR=Registrata da +AUTHORPAIEMENT=Pagata da AddTrip=Crea nota spese -ListOfTrips=Lista delle note spese -ListOfFees=Elenco delle tariffe -TypeFees=Tipi di imposte -ShowTrip=Mostra note spese -NewTrip=Nuova nota spese -LastExpenseReports=Ultime %s note spese +AllExpenseReport=All type of expense report AllExpenseReports=Tutte le note spese -CompanyVisited=Azienda / organizzazione visitata -FeesKilometersOrAmout=Tariffa kilometrica o importo -DeleteTrip=Elimina nota spese -ConfirmDeleteTrip=Vuoi davvero eliminare questa nota spese? -ListTripsAndExpenses=Lista delle note spese -ListToApprove=In attesa di approvazione -ExpensesArea=Area note spese +AnyOtherInThisListCanValidate=Persona da informare per la convalida della richiesta. +AttachTheNewLineToTheDocument=Associa la nuova riga ad un documento esistente +AucuneLigne=Non ci sono ancora note spese +BrouillonnerTrip=Riporta la nota spese allo stato di "bozza" +byEX_DAY=per giorno (limitato a %s) +byEX_EXP=by line (limitation to %s) +byEX_MON=by month (limitation to %s) +byEX_YEA=by year (limitation to %s) +CANCEL_USER=Cancellata da +CarCategory=Categoria veicoli ClassifyRefunded=Classifica come "Rimborsata" +CompanyVisited=Azienda / organizzazione visitata +ConfirmBrouillonnerTrip=Vuoi davvero riportare questa nota spese allo stato "bozza"? +ConfirmCancelTrip=Vuoi davvero eliminare questa nota spese? +ConfirmCloneExpenseReport=Vuoi davvero clonare questa nota spese? +ConfirmDeleteTrip=Vuoi davvero eliminare questa nota spese? +ConfirmPaidTrip=Vuoi davvero modificare lo stato di questa nota spese in "liquidata"? +ConfirmRefuseTrip=Vuoi davvero rifiutare questa nota spese? +ConfirmSaveTrip=Vuoi davvero convalidare questa nota spese? +ConfirmValideTrip=Vuoi davvero approvare questa nota spese? +DATE_CANCEL=Eliminata in data +DATE_PAIEMENT=Liquidata in data +DATE_REFUS=Rifiutata in data +DATE_SAVE=Convalidata in data +DefaultCategoryCar=Default transportation mode +DefaultRangeNumber=Default range number +DeleteTrip=Elimina nota spese +ErrorDoubleDeclaration=Hai già inviata una nota spese per il periodo selezionato +Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' +ExpenseRangeOffset=Offset amount: %s +expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary +expenseReportCoef=Coefficiente +expenseReportCoefUndefined=(Valore non definito) +expenseReportOffset=Scostamento +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay +expenseReportRangeFromTo=from %d to %d +expenseReportRangeMoreThan=più di %d +expenseReportTotalForFive=Example with d = 5 +ExpenseReportApplyTo=Applica a +ExpenseReportApproved=Una nota spese è stata approvata +ExpenseReportApprovedMessage=La nota spese %s è stata approvata.
    - Utente: %s
    - Approvata da: %s
    Clicca qui per visualizzare la nota spese: %s +ExpenseReportCanceled=Una nota spese è stata cancellata +ExpenseReportCanceledMessage=La nota spese %s è stata eliminata.
    - Utente: %s
    - Eliminata da: %s
    - Motivazione eliminazione: %s
    Clicca qui per visualizzare la nota spese: %s +ExpenseReportConstraintViolationError=Importo massimo superato (regola %s): %s è maggiore di %s (Superamento vietato) +ExpenseReportConstraintViolationWarning=Importo massimo superato (regola %s): %s è maggiore di %s (Superamento autorizzato) +ExpenseReportDateEnd=Data fine +ExpenseReportDateStart=Data inizio +ExpenseReportDomain=Dominio da applicare +ExpenseReportIkDesc=È possibile modificare il calcolo dei chilometri di spesa per categoria e intervallo che sono stati precedentemente definiti. d è la distanza in Kilometri +ExpenseReportLimitAmount=Importo massimo +ExpenseReportLimitOn=Limit on +ExpenseReportLine=Riga di nota spese +ExpenseReportPaid=Una nota spese è stata pagata +ExpenseReportPaidMessage=La nota spese %s è stata rimborsata.
    - Utente: %s
    - Pagata da: %s
    Clicca qui per visualizzare la nota spese: %s +ExpenseReportPayment=Pagamento nota spese +ExpenseReportRef=Rif. nota spese +ExpenseReportRefused=Una nota spese è stata rifiutata +ExpenseReportRefusedMessage=La nota spese %s è stata rifiutata.
    - Utente: %s
    - Rifiutata da: %s
    - Motivazione del rifiuto: %s
    Clicca qui per visualizzare la nota spese: %s +ExpenseReportRestrictive=Superamento vietato +ExpenseReportRuleErrorOnSave=Error: %s +ExpenseReportRuleSave=Regola note spese salvata +ExpenseReportRulesDesc=È possibile definire regole di importo massimo per le note spese. Queste regole verranno applicate quando una nuova spesa viene aggiunta a una nota spese ExpenseReportWaitingForApproval=È stata inserita una nuova nota spese da approvare ExpenseReportWaitingForApprovalMessage=Una nuova nota spesa è stata inserita ed è in attesa di approvazione.
    - Utente: %s
    - Periodo: %s
    Clicca qui per convalidare: %s ExpenseReportWaitingForReApproval=Una nota spese è stata sottomessa per la pre-approvazione ExpenseReportWaitingForReApprovalMessage=Una nota spese è stata inviata ed è nuovamente in attesa di approvazione. Il %s, hai rifiutato la nota spese per questa motivazione: %s.
    Una nuova versione è stata proposta e attende la tua approvazione.
    - Utente: %s
    - Periodo: %s
    Clicca qui per convalidare: %s -ExpenseReportApproved=Una nota spese è stata approvata -ExpenseReportApprovedMessage=La nota spese %s è stata approvata.
    - Utente: %s
    - Approvata da: %s
    Clicca qui per visualizzare la nota spese: %s -ExpenseReportRefused=Una nota spese è stata rifiutata -ExpenseReportRefusedMessage=La nota spese %s è stata rifiutata.
    - Utente: %s
    - Rifiutata da: %s
    - Motivazione del rifiuto: %s
    Clicca qui per visualizzare la nota spese: %s -ExpenseReportCanceled=Una nota spese è stata cancellata -ExpenseReportCanceledMessage=La nota spese %s è stata eliminata.
    - Utente: %s
    - Eliminata da: %s
    - Motivazione eliminazione: %s
    Clicca qui per visualizzare la nota spese: %s -ExpenseReportPaid=Una nota spese è stata pagata -ExpenseReportPaidMessage=La nota spese %s è stata rimborsata.
    - Utente: %s
    - Pagata da: %s
    Clicca qui per visualizzare la nota spese: %s -TripId=ID nota spese -AnyOtherInThisListCanValidate=Persona da informare per la convalida della richiesta. -TripSociete=Informazioni azienda -TripNDF=Informazioni nota spese -PDFStandardExpenseReports=Template standard per la generazione dei PDF delle not spese -ExpenseReportLine=Riga di nota spese -TF_OTHER=Altro -TF_TRIP=Trasporto -TF_LUNCH=Pranzo -TF_METRO=Metro -TF_TRAIN=Treno -TF_BUS=Bus -TF_CAR=Auto -TF_PEAGE=Pedaggio -TF_ESSENCE=Carburante -TF_HOTEL=Hotel -TF_TAXI=Taxi -EX_KME=Mileage costs -EX_FUE=Fuel CV -EX_HOT=Hotel -EX_PAR=Parking CV -EX_TOL=Toll CV -EX_TAX=Various Taxes -EX_IND=Indemnity transportation subscription -EX_SUM=Spese di mantenimento -EX_SUO=Office supplies -EX_CAR=Car rental -EX_DOC=Documentazione -EX_CUR=Customers receiving -EX_OTR=Other receiving -EX_POS=Postage -EX_CAM=CV maintenance and repair -EX_EMM=Employees meal -EX_GUM=Guests meal -EX_BRE=Breakfast -EX_FUE_VP=Fuel PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parking PV -EX_CAM_VP=PV maintenance and repair -DefaultCategoryCar=Default transportation mode -DefaultRangeNumber=Default range number -UploadANewFileNow=Carica un nuovo documento ora -Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' -ErrorDoubleDeclaration=Hai già inviata una nota spese per il periodo selezionato -AucuneLigne=Non ci sono ancora note spese -ModePaiement=Modalità di pagamento -VALIDATOR=Utente responsabile per l'approvazione -VALIDOR=Approvata da -AUTHOR=Registrata da -AUTHORPAIEMENT=Pagata da -REFUSEUR=Rifiutata da -CANCEL_USER=Cancellata da -MOTIF_REFUS=Motivo -MOTIF_CANCEL=Motivo -DATE_REFUS=Rifiutata in data -DATE_SAVE=Convalidata in data -DATE_CANCEL=Eliminata in data -DATE_PAIEMENT=Liquidata in data -ExpenseReportRef=Rif. nota spese -ValidateAndSubmit=Convalida e proponi per l'approvazione -ValidatedWaitingApproval=Convalidata (in attesa di approvazione) -NOT_AUTHOR=Non sei l'autore di questa nota spese. Operazione annullata. -ConfirmRefuseTrip=Vuoi davvero rifiutare questa nota spese? -ValideTrip=Approva la nota spese -ConfirmValideTrip=Vuoi davvero approvare questa nota spese? -PaidTrip=Liquida una nota spese -ConfirmPaidTrip=Vuoi davvero modificare lo stato di questa nota spese in "liquidata"? -ConfirmCancelTrip=Vuoi davvero eliminare questa nota spese? -BrouillonnerTrip=Riporta la nota spese allo stato di "bozza" -ConfirmBrouillonnerTrip=Vuoi davvero riportare questa nota spese allo stato "bozza"? -SaveTrip=Convalida la nota spese -ConfirmSaveTrip=Vuoi davvero convalidare questa nota spese? -NoTripsToExportCSV=Nessuna nota spese da esportare per il periodo -ExpenseReportPayment=Pagamento nota spese -ExpenseReportsToApprove=Note spese da approvare -ExpenseReportsToPay=Note spese da pagare -ConfirmCloneExpenseReport=Vuoi davvero clonare questa nota spese? ExpenseReportsIk=Configurazione del rimborso chilometrico ExpenseReportsRules=Regole note spese -ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers -ExpenseReportRulesDesc=È possibile definire regole di importo massimo per le note spese. Queste regole verranno applicate quando una nuova spesa viene aggiunta a una nota spese -expenseReportOffset=Scostamento -expenseReportCoef=Coefficient -expenseReportTotalForFive=Example with d = 5 -expenseReportRangeFromTo=from %d to %d -expenseReportRangeMoreThan=più di %d -expenseReportCoefUndefined=(value not defined) -expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary -expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Apply to -ExpenseReportDomain=Domain to apply -ExpenseReportLimitOn=Limit on -ExpenseReportDateStart=Data inizio -ExpenseReportDateEnd=Data fine -ExpenseReportLimitAmount=Importo massimo -ExpenseReportRestrictive=Superamento vietato -AllExpenseReport=All type of expense report -OnExpense=Expense line -ExpenseReportRuleSave=Regola note spese salvata -ExpenseReportRuleErrorOnSave=Error: %s -RangeNum=Raggio %d -ExpenseReportConstraintViolationError=Importo massimo superato (regola %s): %s è maggiore di %s (Superamento vietato) -byEX_DAY=per giorno (limitato a %s) -byEX_MON=by month (limitation to %s) -byEX_YEA=by year (limitation to %s) -byEX_EXP=by line (limitation to %s) -ExpenseReportConstraintViolationWarning=Importo massimo superato (regola %s): %s è maggiore di %s (Superamento autorizzato) +ExpenseReportsToApprove=Note spese da approvare +ExpenseReportsToPay=Note spese da pagare +ExpensesArea=Area note spese +FeesKilometersOrAmout=Tariffa kilometrica o importo +LastExpenseReports=Ultime %s note spese +ListOfFees=Elenco delle tariffe +ListOfTrips=Elenco note spese +ListToApprove=In attesa di approvazione +ListTripsAndExpenses=Elenco note spese +MOTIF_CANCEL=Motivo +MOTIF_REFUS=Motivo +ModePaiement=Modalità di pagamento +NewTrip=Nuova nota spese nolimitbyEX_DAY=per giorno (illimitato) +nolimitbyEX_EXP=by line (no limitation) nolimitbyEX_MON=by month (no limitation) nolimitbyEX_YEA=by year (no limitation) -nolimitbyEX_EXP=by line (no limitation) -CarCategory=Categoria veicoli -ExpenseRangeOffset=Offset amount: %s +NoTripsToExportCSV=Nessuna nota spese da esportare per il periodo +NOT_AUTHOR=Non sei l'autore di questa nota spese. Operazione annullata. +OnExpense=Expense line +PDFStandardExpenseReports=Template standard per la generazione dei PDF delle not spese +PaidTrip=Liquida una nota spese +REFUSEUR=Rifiutata da RangeIk=Mileage range -AttachTheNewLineToTheDocument=Associa la nuova riga ad un documento esistente +RangeNum=Raggio %d +SaveTrip=Convalida la nota spese +ShowExpenseReport=Mostra note spese +ShowTrip=Mostra note spese +TripCard=Scheda nota spese +TripId=ID nota spese +TripNDF=Informazioni nota spese +TripSociete=Informazioni azienda +Trips=Note spese +TripsAndExpenses=Note spese +TripsAndExpensesStatistics=Statistiche note spese +TypeFees=Tipi di imposte +UploadANewFileNow=Carica un nuovo documento ora +VALIDATOR=Utente responsabile per l'approvazione +VALIDOR=Approvata da +ValidateAndSubmit=Convalida e proponi per l'approvazione +ValidatedWaitingApproval=Convalidata (in attesa di approvazione) +ValideTrip=Approva la nota spese + +## Dictionary +EX_BRE=Breakfast +EX_CAM=CV maintenance and repair +EX_CAM_VP=PV maintenance and repair +EX_CAR=Noleggio auto +EX_CUR=Clienti che ricevono +EX_DOC=Documentazione +EX_EMM=Pasto dei dipendenti +EX_FUE=CV carburante +EX_FUE_VP=Fuel PV +EX_GUM=Pasto degli ospiti +EX_HOT=Hotel +EX_IND=Abbonamento trasporto indennizzo +EX_KME=Spese chilometriche +EX_OTR=Altra ricezione +EX_PAR=Parking CV +EX_PAR_VP=Parking PV +EX_POS=Postage +EX_SUM=Spese di mantenimento +EX_SUO=Forniture per ufficio +EX_TAX=Various Taxes +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Bus +TF_CAR=Auto +TF_ESSENCE=Carburante +TF_HOTEL=Hotel +TF_LUNCH=Pranzo +TF_METRO=Metro +TF_OTHER=Altro +TF_PEAGE=Pedaggio +TF_TAXI=Taxi +TF_TRAIN=Treno +TF_TRIP=Trasporto diff --git a/htdocs/langs/it_IT/users.lang b/htdocs/langs/it_IT/users.lang index 0f45273b8b0..bc2975754e9 100644 --- a/htdocs/langs/it_IT/users.lang +++ b/htdocs/langs/it_IT/users.lang @@ -124,7 +124,7 @@ ValidatorIsSupervisorByDefault=Per impostazione predefinita, il validatore è il UserPersonalEmail=E-mail personale UserPersonalMobile=Cellulare personale WarningNotLangOfInterface=Attenzione, questa è la lingua principale che l'utente parla, non la lingua dell'interfaccia che ha scelto di vedere. Per cambiare la lingua dell'interfaccia visibile da questo utente, vai sulla scheda %s -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +DateLastLogin=Data ultimo accesso +DatePreviousLogin=Data di accesso precedente +IPLastLogin=IP ultimo accesso +IPPreviousLogin=IP di accesso precedente diff --git a/htdocs/langs/it_IT/website.lang b/htdocs/langs/it_IT/website.lang index df1c3006d7a..c178e59594b 100644 --- a/htdocs/langs/it_IT/website.lang +++ b/htdocs/langs/it_IT/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Codice +WebsiteName=Name of the website WebsiteSetupDesc=Crea qui i siti web che desideri utilizzare. Quindi vai nel menu Siti Web per modificarli. DeleteWebsite=Cancella sito web ConfirmDeleteWebsite=Sei sicuro di voler eliminare questo sito web? Verranno rimosse anche tutte le pagine e i suoi contenuti. I file caricati (come quelli nella directory medias, nel modulo ECM, ...) non verranno cancellati. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages) WEBSITE_ROBOT=File Robot (robots.txt) WEBSITE_HTACCESS=Website .htaccess file WEBSITE_MANIFEST_JSON=Website manifest.json file -WEBSITE_README=README.md file WEBSITE_KEYWORDSDesc=Usa una virgola per separare i valori -EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML header (specific to this page only) PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container. @@ -42,6 +43,8 @@ ViewPageInNewTab=Visualizza pagina in una nuova scheda SetAsHomePage=Imposta come homepage RealURL=Indirizzo URL vero ViewWebsiteInProduction=View web site using home URLs +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Usa con Apache / NGinx / ...
    Crea sul tuo server web (Apache, Nginx, ...) un host virtuale dedicato con PHP abilitato e una directory principale su
    %s ExampleToUseInApacheVirtualHostConfig=Esempio da utilizzare nella configurazione dell'host virtuale Apache: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s pagina(e)/contenitore(i) rigenerato RegenerateWebsiteContent=Rigenera i file della cache del sito web AllowedInFrames=Consentito nel frame DefineListOfAltLanguagesInWebsiteProperties=Definisce l'elenco di tutte le lingue disponibili nelle proprietà del sito web. -GenerateSitemaps=Genera file sitemap del sito web +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Se confermi, cancellerai il file sitemap esistente... ConfirmSitemapsCreation=Conferma la generazione del sitemap SitemapGenerated=File sitemap %s generato @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon deve essere png ErrorFaviconSize=La favicon deve essere di dimensioni 16x16, 32x32 o 64x64 FaviconTooltip=Carica un'immagine che deve essere un png (16x16, 32x32 o 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/it_IT/withdrawals.lang b/htdocs/langs/it_IT/withdrawals.lang index 9792251ccbe..b0f951d47e7 100644 --- a/htdocs/langs/it_IT/withdrawals.lang +++ b/htdocs/langs/it_IT/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Fattura fornitore in attesa di pagamento tramite InvoiceWaitingWithdraw=Invoice waiting for direct debit InvoiceWaitingPaymentByBankTransfer=Fattura in attesa di bonifico AmountToWithdraw=Importo da prelevare +AmountToTransfer=Importo da trasferire NoInvoiceToWithdraw=Nessuna fattura aperta per '%s' è in attesa. Vai sulla scheda '%s' sulla scheda fattura per effettuare una richiesta. -NoSupplierInvoiceToWithdraw=Nessuna fattura fornitore con "Richieste di credito diretto" aperte è in attesa. Vai sulla scheda '%s' sulla scheda fattura per effettuare una richiesta. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=User Responsible WithdrawalsSetup=Direct debit payment setup CreditTransferSetup=Impostazione del bonifico @@ -41,6 +42,7 @@ CreditTransferStatistics=Statistiche sul trasferimento di crediti Rejects=Respinge LastWithdrawalReceipt=Latest %s direct debit receipts MakeWithdrawRequest=Effettua una richiesta di addebito diretto +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Invia una richiesta di bonifico WithdrawRequestsDone=%s direct debit payment requests recorded BankTransferRequestsDone=%s richieste di bonifico registrate @@ -99,8 +101,11 @@ CreditDate=Data di accredito WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported) ShowWithdraw=Mostra ordine di addebito diretto IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. -DoStandingOrdersBeforePayments=Questa scheda consente di richiedere un ordine di pagamento con addebito diretto. Una volta fatto, vai nel menu Banca-> Pagamento con addebito diretto per generare e gestire l'ordine di addebito diretto. Quando l'ordine di addebito diretto viene chiuso, il pagamento sulle fatture verrà automaticamente registrato e le fatture chiuse se il resto da pagare è nullo. -DoCreditTransferBeforePayments=Questa scheda consente di richiedere un ordine di bonifico. Una volta fatto, vai nel menu Banca-> Pagamento tramite bonifico per generare e gestire l'ordine di trasferimento del credito. Quando l'ordine di trasferimento del credito viene chiuso, il pagamento sulle fatture verrà automaticamente registrato e le fatture chiuse se il resto da pagare è nullo. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=File ordine di addebito CreditTransferFile=File di trasferimento di credito SetToStatusSent=Imposta stato come "file inviato" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty am SepaMandate=Mandato per addebito diretto SEPA SepaMandateShort=Mandato SEPA PleaseReturnMandate=Si prega di ritornare il mandato tramite email a %s o tramite mail a -SEPALegalText=Firmando questo modulo di mandato, autorizzi (A) %s a inviare istruzioni alla tua banca per addebitare il tuo conto e (B) la tua banca ad addebitare il tuo conto secondo le istruzioni di %s. Come parte dei tuoi diritti, hai diritto a un rimborso dalla tua banca secondo i termini e le condizioni del tuo accordo con la tua banca. I tuoi diritti in merito al mandato di cui sopra sono illustrati in una dichiarazione che puoi ottenere dalla tua banca. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Id Creditore SEPA CreditorName=Creditor Name SEPAFillForm=(B) Completare tutti i campi contrassegnati da * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Execution date CreateForSepa=Create direct debit file ICS=Identificatore del creditore - ICS +IDS=Identificatore debitore END_TO_END="EndToEndId" SEPA XML tag - Unique id assigned per transaction USTRD="Unstructured" SEPA XML tag ADDDAYS=Add days to Execution Date @@ -154,3 +160,4 @@ ErrorICSmissing=ICS mancante nel conto bancario %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=L'importo totale dell'ordine di addebito diretto differisce dalla somma delle righe WarningSomeDirectDebitOrdersAlreadyExists=Avvertenza: sono già stati richiesti ordini di addebito diretto in sospeso (%s) per un importo di %s WarningSomeCreditTransferAlreadyExists=Avvertenza: è già stato richiesto un trasferimento di credito in sospeso (%s) per un importo di %s +UsedFor=Usato per %s diff --git a/htdocs/langs/it_IT/workflow.lang b/htdocs/langs/it_IT/workflow.lang index 03a0abc7627..0ed0577720d 100644 --- a/htdocs/langs/it_IT/workflow.lang +++ b/htdocs/langs/it_IT/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automaticamente un ordine cliente dopo descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crea automaticamente una fattura cliente dopo aver firmato una proposta commerciale (la nuova fattura avrà lo stesso importo della proposta) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla convalida del contratto descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crea automaticamente una fattura cliente dopo che un ordine cliente è stato chiuso (la nuova fattura avrà lo stesso importo dell'ordine) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Alla creazione del ticket, crea automaticamente un intervento. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica come "da fatturare" la/e proposta/e commerciale/i quando l'ordine cliente collegato è impostato come da fatturare (e se l'ammontare dell'ordine è lo stesso ammontare della proposta commerciale firmata e collegata) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica "fatturate" le proposte collegate quando la fattura cliente è validata (e se l'importo della fattura è uguale all'importo totale delle proposte collegate) @@ -17,14 +18,19 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classificare l'ordine client # Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked proposals) # Autoclassify purchase order -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classifica "fatturato" gli ordini fornitori collegati quando la fattura fornitore viene convalidata. (e se l'importo della fattura è uguale all'importo totale di ordini collegati) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classificare l'ordine di acquisto di origine collegato come ricevuto quando viene convalidato un ricevimento (e se la quantità ricevuta da tutti i ricevimenti è la stessa dell'ordine di acquisto da aggiornare) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classificare l'ordine di acquisto di origine collegata come ricevuto alla chiusura di un ricevimento (e se la quantità ricevuta da tutti i ricevimenti è la stessa dell'ordine di acquisto da aggiornare) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Classificare le ricezioni in "fatturate" quando un ordine fornitore collegato viene convalidato +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=Quando crei un biglietto, collega i contratti disponibili di terze parti corrispondenti +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Quando si collegano i contratti, cercare tra quelli delle società madri # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Chiudi tutti gli interventi legati al ticket quando un ticket è chiuso AutomaticCreation=Creazione automatica AutomaticClassification=Classificazione automatica # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classificare la spedizione di origine collegata come chiusa quando la fattura del cliente viene convalidata +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Chiusura automatica +AutomaticLinking=Collegamento automatico diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index cb7843259e1..8642dc56164 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=EECにない国 CountriesInEECExceptMe=%sを除くEECの国 CountriesExceptMe=%sを除く全国 AccountantFiles=ソースドキュメントのエクスポート -ExportAccountingSourceDocHelp=このツールで、会計処理を生成するために使用されるソースイベント(CSVおよびPDFのリスト)をエクスポートできる。 +ExportAccountingSourceDocHelp=このツールを使用すると、アカウンティを生成するために使用されるソースイベントを検索およびエクスポートできる。
    エクスポートされたZIPファイルには、CSVで要求されたアイテムのリストと、元の形式(PDF、ODT、DOCX ...)の添付ファイルが含まれる。 ExportAccountingSourceDocHelp2=仕訳日記帳をエクスポートするには、メニューエントリ%s --%sを使用。 +ExportAccountingProjectHelp=特定のプロジェクトについてのみアカウンティングレポートが必要な場合は、プロジェクトを指定する。経費報告書とローン支払いはプロジェクト報告書に含まれていない。 VueByAccountAccounting=勘定科目順に表示 VueBySubAccountAccounting=会計補助勘定科目で表示 @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=設定で定義されていないベンダー MainAccountForUsersNotDefined=設定で定義されていないユーザのメイン勘定科目 MainAccountForVatPaymentNotDefined=設定で定義されていないVAT支払のメイン勘定科目 MainAccountForSubscriptionPaymentNotDefined=設定で定義されていないサブスクリプション支払のメイン勘定科目 +UserAccountNotDefined=設定で定義されていないユーザの会計勘定科目 AccountancyArea=経理エリア AccountancyAreaDescIntro=会計モジュールの使用は、いくつかのステップで行われる。 @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=銀行口座での取引の直接記録を無効にす ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=仕訳帳で下書きエクスポートを有効にする ACCOUNTANCY_COMBO_FOR_AUX=子会社アカウントのコンボリストを有効にする (取引先が多数あると遅くなるだろうし、値の一部検索機能は壊れる) ACCOUNTING_DATE_START_BINDING=会計で結合と転記を開始する日付を定義する。この日付を下回ると、取引は会計に転記されない。 -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=会計転送では、デフォルトで期間表示を選択する +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=会計転送では、デフォルトで選択される期間は何か -ACCOUNTING_SELL_JOURNAL=販売仕訳帳 -ACCOUNTING_PURCHASE_JOURNAL=購買仕訳帳 -ACCOUNTING_MISCELLANEOUS_JOURNAL=その他仕訳帳 +ACCOUNTING_SELL_JOURNAL=販売仕訳帳 (販売と返品) +ACCOUNTING_PURCHASE_JOURNAL=購買仕訳帳(購入と返品) +ACCOUNTING_BANK_JOURNAL=現金仕訳帳(入出金) ACCOUNTING_EXPENSEREPORT_JOURNAL=経費報告仕訳帳 -ACCOUNTING_SOCIAL_JOURNAL=交際費仕訳帳 +ACCOUNTING_MISCELLANEOUS_JOURNAL=一般仕訳帳 ACCOUNTING_HAS_NEW_JOURNAL=新規仕訳帳がある +ACCOUNTING_INVENTORY_JOURNAL=在庫仕訳帳 +ACCOUNTING_SOCIAL_JOURNAL=交際費仕訳帳 ACCOUNTING_RESULT_PROFIT=結果勘定科目(利益) ACCOUNTING_RESULT_LOSS=結果勘定科目(損失) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=閉鎖の仕訳帳 -ACCOUNTING_ACCOUNT_TRANSFER_CASH=中継銀行振込の会計勘定科目 +ACCOUNTING_ACCOUNT_TRANSFER_CASH=移行用の銀行振込の口座として使用される口座 (勘定科目表から) TransitionalAccount=中継銀行振込口座 -ACCOUNTING_ACCOUNT_SUSPENSE=待機の勘定科目 -DONATION_ACCOUNTINGACCOUNT=寄付を登録するための勘定科目 -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=サブスクリプションを登録するための勘定科目 +ACCOUNTING_ACCOUNT_SUSPENSE=受け取った、または支払った未割り当ての資金、つまり「待機[中]」の資金の口座として使用される口座 (口座チャートから) +DONATION_ACCOUNTINGACCOUNT=寄付の登録に使用するアカウント (勘定科目表から) (寄付モジュール) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=メンバーシップのサブスクリプションを登録するために使用されるアカウント (アカウント チャートから) (メンバーシップ モジュール - メンバーシップが請求書なしで記録されている場合) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=顧客入金を登録するためのデフォルトの勘定科目 -UseAuxiliaryAccountOnCustomerDeposit=顧客の入金ラインでサブアカウントを使用する +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=顧客預金を登録するためのデフォルト口座として使用される口座 (勘定科目表から) +UseAuxiliaryAccountOnCustomerDeposit=顧客アカウントを頭金ラインの補助元帳に個人アカウントとして保存する(無効にした場合、頭金ラインの個人アカウントは空のままになる) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=デフォルトとして使用される勘定科目 (勘定科目表から) +UseAuxiliaryAccountOnSupplierDeposit=仕入先勘定を、前払明細の補助元帳に個別勘定として保管する (無効にすると、前払明細の個別勘定は空のままになる)。 -ACCOUNTING_PRODUCT_BUY_ACCOUNT=購入した製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=EEC域内で購入した製品のデフォルト勘定科目(製品シートで定義されていない場合に使用) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=購入品で、EEC域外から輸入された製品のデフォルト勘定科目(製品シートで定義されていない場合に使用) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=販売された製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=EECで販売された製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=EECから販売およびエクスポートされた製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=同じ国内で購入された製品のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=EEC から別の EEC 国に購入された製品のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=他の外国から購入および輸入された製品のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=販売された製品のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=EEC から別の EEC 国に販売される製品のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=他の外国に販売および輸出される製品のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (製品シートで定義されていない場合に使用) -ACCOUNTING_SERVICE_BUY_ACCOUNT=購入したサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=EECで購入したサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=購入したサービスおよびEECからインポートされたサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=販売されたサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=EECで販売されるサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=EECから販売およびエクスポートされたサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) +ACCOUNTING_SERVICE_BUY_ACCOUNT=同じ国内で購入されたサービスのデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (サービス シートで定義されていない場合に使用) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=EEC から別の EEC 国に購入したサービスのデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (サービス シートで定義されていない場合に使用) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=他の外国から購入および輸入されたサービスのデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (サービス シートで定義されていない場合に使用) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=販売されたサービスのデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (サービス シートで定義されていない場合に使用) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=EEC から別の EEC 国に販売されるサービスのデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (サービス シートで定義されていない場合に使用) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=他の外国に販売および輸出されるサービスのデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (サービス シートで定義されていない場合に使用) Doctype=ドキュメントの種別 Docdate=日付 @@ -211,7 +217,7 @@ Codejournal=仕訳帳 JournalLabel=仕訳帳ラベル NumPiece=個数番号 TransactionNumShort=数トランザクション -AccountingCategory=カスタムグループ +AccountingCategory=アカウントのカスタム グループ GroupByAccountAccounting=総勘定元帳勘定によるグループ化 GroupBySubAccountAccounting=補助元帳アカウントでグループ化 AccountingAccountGroupsDesc=ここで、勘定科目のいくつかのグループを定義できる。それらは、パーソナライズされた会計報告書sに使用される。 @@ -265,13 +271,13 @@ Reconcilable=調整可能 TotalVente=税引前総売上高 TotalMarge=売上総利益 -DescVentilCustomer=製品勘定科目に結合されている(または結合されていない)顧客請求書行のリストをここで参照すること -DescVentilMore=ほとんどの場合、事前定義された製品またはサービスを使用し、製品/サービスカードに勘定科目番号を設定すると、アプリケーションは、請求書の行と勘定科目表の勘定科目の間の全結合をボタン "%s" でワンクリックする。製品/サービスカードに勘定科目が設定されていない場合、または勘定科目に結合されていない行がまだある場合は、メニュー「%s」から手動で結合する必要がある。 -DescVentilDoneCustomer=請求書の顧客の行とその製品勘定科目のリストをここで参照すること -DescVentilTodoCustomer=製品勘定科目にまだ結合されていない請求書行を結合する -ChangeAccount=選択したラインの製品/サービス勘定科目を次の勘定科目に変更する。 +DescVentilCustomer=ここで、勘定科目表から製品アカウントにバインドされている (またはバインドされていない) 顧客請求明細行のリストを参照すること。 +DescVentilMore=ほとんどの場合、定義済みの製品またはサービスを使用し、製品/サービス カードに (勘定科目表から) アカウントを設定すると、アプリケーションは、請求明細行とチャートの会計勘定科目との間のすべてのバインドを行うことができる。ボタン "%s" を 1 回クリックするだけでアカウントの数を指定できる。製品/サービス カードにアカウントが設定されていない場合、またはアカウントにバインドされていない行がまだある場合は、メニュー " %s " から手動でバインドする必要がある。 +DescVentilDoneCustomer=顧客の請求明細行と勘定科目表からの製品勘定のリストを参照すること。 +DescVentilTodoCustomer=勘定科目表からまだ製品勘定にバインドされていない請求書明細をバインドする +ChangeAccount=次の勘定科目を使用して、選択した行の製品/サービス勘定科目を (勘定科目表から) 変更する。 Vide=- -DescVentilSupplier=ここで参照するのは仕入先請求書明細のリストで、それは製品会計勘定科目に引当済または未済のもの(会計でまだ転記されていないレコードのみが表示される) +DescVentilSupplier=勘定科目表から製品アカウントにバインドされている、またはまだバインドされていない仕入先請求明細行のリストを参照すること (経理部門でまだ転送されていないレコードのみが表示される)。 DescVentilDoneSupplier=ベンダーの請求書の行とその勘定科目のリストをここで参照すること DescVentilTodoExpenseReport=まだ料金勘定科目に結合されていない経費報告書行を結合する DescVentilExpenseReport=手数料勘定科目に結合されている(または結合されていない)経費報告行のリストをここで参照すること @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=経費報告行の種別で勘定科目を設定す DescVentilDoneExpenseReport=経費報告書sの行とその手数料勘定科目のリストをここで参照すること Closure=年次閉鎖 -DescClosure=まだ検証およびロックされていない月ごとの動きの数をここで参照すること +DescClosure=まだ検証されておらずロックされていない月ごとの動きの数はこちらを参照すること OverviewOfMovementsNotValidated=検証およびロックされていない動きの概要 AllMovementsWereRecordedAsValidated=全動きは検証され、ロックされたものとして記録された NotAllMovementsCouldBeRecordedAsValidated=全動きを検証済みおよびロック済みとして記録できるわけではない -ValidateMovements=レコードを検証してロックする... +ValidateMovements=動きを検証してロックする... DescValidateMovements=書き込み、レタリング、削除の変更または削除は禁止される。演習の全エントリが要検証済。検証済でないと、閉じることができない。 ValidateHistory=自動的に結合 AutomaticBindingDone=自動結合が実行された(%s)-一部のレコードでは自動結合不可(%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=エラー、この勘定科目表は使用されているため、削除または無効化できない MvtNotCorrectlyBalanced=動きのバランスが正しくない。借方=%s&貸方= %s Balancing=バランシング FicheVentilation=結合カード GeneralLedgerIsWritten=トランザクションは元帳に書き込まれる GeneralLedgerSomeRecordWasNotRecorded=一部のトランザクションは仕訳帳化できない。他にエラーメッセージがない場合は、既に仕訳帳化されている可能性がある。 NoNewRecordSaved=転送するレコードはもうない -ListOfProductsWithoutAccountingAccount=勘定科目に結合されていない製品のリスト +ListOfProductsWithoutAccountingAccount=勘定科目表のいずれの勘定にもバインドされていない製品のリスト ChangeBinding=結合を変更する Accounted=元帳に計上 NotYetAccounted=まだ経理に回していない @@ -319,9 +325,10 @@ AccountingJournalType1=その他の操作 AccountingJournalType2=販売 AccountingJournalType3=購入 AccountingJournalType4=バンク -AccountingJournalType5=経費報告書 +AccountingJournalType5=経費報告書s AccountingJournalType8=目録 AccountingJournalType9=持っている-新規 +GenerationOfAccountingEntries=会計仕訳の生成 ErrorAccountingJournalIsAlreadyUse=この仕訳帳は既に使用されている AccountingAccountForSalesTaxAreDefinedInto=注:消費税の勘定科目は、メニュー %s -- %sに定義されている。 NumberOfAccountancyEntries=エントリー数 @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=楽章の数 ACCOUNTING_DISABLE_BINDING_ON_SALES=販売の会計における結合と転記を無効にする(顧客の請求書は会計に考慮されない) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=購入時の会計における結合と転記を無効にする(ベンダーの請求書は会計で考慮されない) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=経費報告書sの会計における結合と転記を無効にする(経費報告書sは会計で考慮されない) +ACCOUNTING_ENABLE_LETTERING=会計でレタリング機能を有効にする ## Export +NotExportLettering=ファイルの生成時にレタリングをエクスポートしない NotifiedExportDate=エクスポートされた行にエクスポート済みのフラグを付ける(行を変更するには、トランザクション全体を削除して、会計に再転送する必要がある) -NotifiedValidationDate=エクスポートされたエントリの検証とロック(「閉鎖」機能と同じ効果、行の変更と削除は完全に不可能 ) +NotifiedValidationDate=エクスポートされたエントリを検証してロックする(「%s」機能と同じ効果、行の変更と削除は絶対に不可) DateValidationAndLock=日付の検証とロック ConfirmExportFile=会計エクスポートファイルの生成を確定するか? ExportDraftJournal=下書き仕訳帳のエクスポート @@ -398,7 +407,11 @@ Calculated=計算済 Formula=式 ## Reconcile +LetteringAuto=自動照合 +LetteringManual=手動照合 Unlettering=和解しない +UnletteringAuto=自動照合解除 +UnletteringManual=手動照合解除 AccountancyNoLetteringModified=調整は変更されない AccountancyOneLetteringModifiedSuccessfully=1つの調整が正常に変更された AccountancyLetteringModifiedSuccessfully=%s調整が正常に変更された @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=1つの調整解除が正常に変 AccountancyUnletteringModifiedSuccessfully=%sunreconcileが正常に変更された ## Confirm box -ConfirmMassUnlettering=一括調整解除確認 -ConfirmMassUnletteringQuestion=選択した%sレコード(s)の調整を解除してもよいか? +ConfirmMassUnletteringAuto=一括自動照合解除確認 +ConfirmMassUnletteringManual=一括手動照合解除確認 +ConfirmMassUnletteringQuestion=選択した %s レコード(s)を照合解除するか? ConfirmMassDeleteBookkeepingWriting=一括削除確定 ConfirmMassDeleteBookkeepingWritingQuestion=これにより、トランザクションが会計から削除される(同じトランザクションに関連する全行が削除される)。選択した%sレコード(s)を削除してもよいか? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=御 AccountancyErrorMismatchLetterCode=調整コードの不一致 AccountancyErrorMismatchBalanceAmount=残高(%s)が0に等しくない AccountancyErrorLetteringBookkeeping=トランザクションに関してエラーが発生しました:%s +ErrorAccountNumberAlreadyExists=会計番号%sはすでに存在する ## Import ImportAccountingEntries=会計仕訳 @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=他通貨 コード (Idevise) DateExport=日付のエクスポート WarningReportNotReliable=警告、この報告書は元帳に基づいていないため、元帳で手動で変更されたトランザクションは含まれていない。仕訳帳化が最新の場合、簿記ビューはより正確。 ExpenseReportJournal=経費報告仕訳帳 -InventoryJournal=目録仕訳帳 NAccounts=%sアカウント diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index 64ad5341086..58b770f7e93 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=クライアントの文字照合則 WarningModuleNotActive=モジュール%sを有効にする必要がある WarningOnlyPermissionOfActivatedModules=ここには、有効化されたモジュールに関連する権限のみが表示される。ホーム->設定->モジュール ページで他のモジュールを有効化できる。 DolibarrSetup=Dolibarrインストールまたはアップグレード -InternalUser=内部ユーザ -ExternalUser=外部ユーザ InternalUsers=内部ユーザ ExternalUsers=外部ユーザ UserInterface=ユーザインターフェース @@ -109,7 +107,7 @@ NextValueForReplacements=次の値 ( 置換 ) MustBeLowerThanPHPLimit=注:現在、PHP構成では、このパラメーターの値に関係なく、アップロードの最大ファイルサイズが %s %sに制限されている。 NoMaxSizeByPHPLimit=注:お使いのPHP設定では無制限 MaxSizeForUploadedFiles=アップロードファイルの最大サイズ ( 0 で、全アップロード禁止 ) -UseCaptchaCode=ログインページで、グラフィカルコード ( CAPTCHA ) を使用して +UseCaptchaCode=ログインページと一部の公開ページでグラフィカルコード (CAPTCHA) を使用する AntiVirusCommand=アンチウイルスのコマンドへのフルパス AntiVirusCommandExample=ClamAvデーモンの例: ( clamav-daemonが必要 ) /usr/bin/clamdscan
    ClamWinの例: ( 非常に非常に遅い ) c:\\Program~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= コマンドラインで複数のパラメータ @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPSホスト ( php.iniのデフォルト値: MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPSポート ( UnixライクなシステムではPHPに定義されていない ) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPSホスト ( UnixライクなシステムではPHPに定義されていない ) MAIN_MAIL_EMAIL_FROM=自動メールの送信者メール ( php.iniのデフォルト値: %s ) +EMailHelpMsgSPFDKIM=Dolibarr の電子メールがスパムとして分類されるのを防ぐには、サーバーが SPF および DKIM 構成によってこのアドレスからの電子メールの送信を許可されていることを確認すること。 MAIN_MAIL_ERRORS_TO=エラーに使用されたEメールはEメールを返する ( 送信されたEメールのフィールド「Errors-To」 ) MAIN_MAIL_AUTOCOPY_TO= 送信された全メールをコピー ( Bcc ) MAIN_DISABLE_ALL_MAILS=全電子メール送信を無効にする ( テスト目的またはデモ用 ) @@ -439,8 +438,10 @@ Unique=ユニーク Boolean=ブール値 ( 1つのチェックボックス ) ExtrafieldPhone = 電話 ExtrafieldPrice = 価格 +ExtrafieldPriceWithCurrency=通貨での価格 ExtrafieldMail = Eメール ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = リストを選択 ExtrafieldSelectList = 表から選択 ExtrafieldSeparator=セパレーター ( フィールドではない ) @@ -477,7 +478,7 @@ InstalledInto=ディレクトリ%sにインストールされた BarcodeInitForThirdparties=取引先向けの大量バーコード初期化 BarcodeInitForProductsOrServices=製品またはサービスの大量バーコードの初期化またはリセット CurrentlyNWithoutBarCode=現在、%s%sにバーコードが定義されていない%sレコードがある。 -InitEmptyBarCode=次の%s空レコードの初期値 +InitEmptyBarCode=%s 空バーコードの初期値 EraseAllCurrentBarCode=現在のバーコード値をすべて消去する ConfirmEraseAllCurrentBarCode=現在のバーコード値をすべて消去してもよいか? AllBarcodeReset=全バーコード値が削除された @@ -501,10 +502,11 @@ WarningPHPMail=警告:アプリケーションから電子メールを送信 WarningPHPMailA=-電子メールサービスプロバイダーのサーバーを使用すると、電子メールの信頼性が向上するため、スパムとしてフラグが立てられることなく配信可能性が向上する。 WarningPHPMailB=-一部の電子メールサービスプロバイダー ( Yahooなど ) では、独自のサーバー以外のサーバーから電子メールを送信することを許可していない。現在の設定では、電子メールプロバイダーのサーバーではなく、アプリケーションのサーバーを使用して電子メールを送信するため、一部の受信者 ( 制限付きDMARCプロトコルと互換性のある受信者 ) は、電子メールプロバイダーと一部の電子メールプロバイダーを受け入れることができるかどうかを電子メールプロバイダーに尋ねる。 ( Yahooのように ) サーバーが彼らのものではないために「いいえ」と応答する場合がある。そのため、送信された電子メールの一部が配信を受け入れられない場合がある ( 電子メールプロバイダーの送信クォータにも注意すること ) 。 WarningPHPMailC=-独自の電子メールサービスプロバイダーのSMTPサーバーを使用して電子メールを送信することも興味深いので、アプリケーションから送信される全電子メールもメールボックスの「送信済」ディレクトリに保存される。 -WarningPHPMailD=また、メールの送信方法を「SMTP」に変更することを推奨。メールを送信するためにデフォルトの「PHP」メソッドを本当に維持したい場合、この警告を無視するか、ホーム - 設定 - その他 で MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP 定数を1に設定して削除すること。 +WarningPHPMailD=したがって、電子メールの送信方法を値「SMTP」に変更することをお勧めする。 +WarningPHPMailDbis=メールを送信するデフォルトの「PHP」メソッドを本当に維持したい場合は、この警告を無視するか、%sここをクリック%sして削除すること。 WarningPHPMail2=電子メールSMTPプロバイダーが電子メールクライアントをいくつかのIPアドレスに制限する必要がある場合 ( 非常にまれ ) 、これはERP CRMアプリケーションのメールユーザエージェント ( MUA ) のIPアドレス : %s。 WarningPHPMailSPF=送信者のメールアドレスのドメイン名がSPFレコードで保護されている場合(ドメイン名登録者に問い合わせる)、自ドメインのDNSのSPFレコードに次のIPを追加する必要がある: %s。 -ActualMailSPFRecordFound=見つかった実際のSPFレコード:%s +ActualMailSPFRecordFound=実際の SPF レコードが見つかった (電子メール %s の場合): %s ClickToShowDescription=クリックして説明を表示 DependsOn=このモジュールにはモジュールが必要 RequiredBy=このモジュールはモジュールに必要 @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    例:
    新規取引先を作成するフ PageUrlForDefaultValuesList=
    例:
    取引先を一覧表示するページの場合、 %s
    カスタムディレクトリにインストールされた外部モジュールのURLには、「custom /」を含めないため、custom/mymodule/mypagelist.phpではなくmymodule/mypagelist.phpのようなパスを使用する。
    URLに何らかのパラメータがある場合にのみデフォルト値が必要な場合は、 %sを使用できる。 AlsoDefaultValuesAreEffectiveForActionCreate=また、フォーム作成のデフォルト値の上書きは、正しく設計されたページに対してのみ機能することに注意すること ( したがって、パラメーターaction = createまたはpresend ...を使用 ) 。 EnableDefaultValues=デフォルト値のカスタマイズを有効にする -EnableOverwriteTranslation=上書きされた翻訳の使用を有効にする +EnableOverwriteTranslation=翻訳のカスタマイズを許可する GoIntoTranslationMenuToChangeThis=このコードのキーの翻訳が見つかりました。この値を変更するには、Home-Setup-translationから編集する必要がある。 WarningSettingSortOrder=警告、デフォルトのソート順を設定すると、フィールドが不明なフィールドの場合、リストページに移動するときに技術エラーが発生する可能性がある。このようなエラーが発生した場合は、このページに戻ってデフォルトの並べ替え順序を削除し、デフォルトの動作を復元すること。 Field=フィールド @@ -645,9 +647,9 @@ Module2400Name=イベント/議題 Module2400Desc=トラック競技。追跡目的で自動イベントをログに記録するか、手動のイベントまたは会議を記録する。これは、優れた顧客または仕入先関係管理の主要なモジュール。 Module2500Name=DMS / ECM Module2500Desc=ドキュメント管理システム/電子コンテンツ管理。生成または保存されたドキュメントの自動編成。必要なときに共有すること。 -Module2600Name=API / Webサービス ( SOAPサーバー ) +Module2600Name=API・Webサービス(SOAPサーバー) Module2600Desc=APIサービスを提供するDolibarrSOAPサーバーを有効にする -Module2610Name=API / Webサービス ( RESTサーバー ) +Module2610Name=API / Web サービス (REST サーバー) Module2610Desc=APIサービスを提供するDolibarrRESTサーバーを有効にする Module2660Name=Webサービスの呼び出し ( SOAPクライアント ) Module2660Desc=Dolibarr Webサービスクライアントを有効にする ( データ/要求を外部サーバーにプッシュするために使用できる。現在サポートされているのは購買発注のみ ) 。 @@ -682,7 +684,7 @@ Module50150Name=POS TakePOS Module50150Desc=POSモジュールTakePOS ( タッチスクリーンPOS、ショップ、バー、レストラン用 ) 。 Module50200Name=ペイパル Module50200Desc=顧客にPayPalオンライン支払ページ ( PayPalアカウントまたはクレジット/デビットカード ) を提供する。これを使用して、顧客がアドホック支払または特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払を行えるようにすることができる。 -Module50300Name=縞 +Module50300Name=ストライプ Module50300Desc=Stripeオンライン支払ページ ( クレジット/デビットカード ) を顧客に提供する。これを使用して、顧客がアドホック支払または特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払を行えるようにすることができる。 Module50400Name=会計 ( 複式簿記 ) Module50400Desc=会計管理 ( ダブルエントリ、一般および子会社の元帳をサポート ) 。元帳を他のいくつかの会計ソフトウェア形式でエクスポートする。 @@ -698,6 +700,7 @@ Module62000Name=インコタームズ Module62000Desc=インコタームズを管理する機能を追加する Module63000Name=資源 Module63000Desc=イベントに割り当てるためのリソース ( プリンター、車、部屋など ) を管理する +Module94160Name=領収 Permission11=顧客の請求書を読込む Permission12=顧客の請求書を作成/変更 Permission13=顧客の請求書を無効にする @@ -714,12 +717,13 @@ Permission27=商取引提案を削除する。 Permission28=商取引提案をエクスポート Permission31=製品を読込む Permission32=製品を作成/変更 +Permission33=価格製品読込 Permission34=製品を削除する。 Permission36=隠された製品を参照すること/管理 Permission38=製品をエクスポート Permission39=最低価格を無視する Permission41=プロジェクトとタスク(共有プロジェクトと私が連絡先であるプロジェクト)を読込む。 -Permission42=プロジェクト(共有プロジェクトおよび私が連絡先であるプロジェクト)を作成/変更する。プロジェクトやタスクにユーザーを割り当てることもできる +Permission42=プロジェクト(共有プロジェクトおよび私が連絡先であるプロジェクト)を作成/変更する。プロジェクトやタスクにユーザを割り当てることもできる Permission44=プロジェクトを削除する(共有プロジェクトと私が連絡しているプロジェクト) Permission45=プロジェクトをエクスポート Permission61=出張を読込む @@ -739,6 +743,7 @@ Permission79=サブスクリプションを作成/変更 Permission81=お客様の注文を読込む Permission82=作成/変更、顧客の注文 Permission84=お客様の注文を検証 +Permission85=ドキュメントの販売注文を生成する Permission86=お客様の注文を送る Permission87=顧客の注文を閉じる Permission88=お客様の注文を取り消す @@ -840,9 +845,9 @@ Permission286=連絡先をエクスポート Permission291=関税を読込む Permission292=関税のアクセス許可を設定する Permission293=顧客の料金を変更する -Permission300=バーコードを読込む -Permission301=バーコードを作成/変更する -Permission302=バーコードを削除する +Permission301=バーコードの PDF シートを生成する +Permission304=バーコードの作成/変更 +Permission305=バーコードを削除する Permission311=サービスを読込む Permission312=契約にサービス/サブスクリプションを割り当てる Permission331=ブックマークを読み込む @@ -874,6 +879,7 @@ Permission525=アクセスローン計算機 Permission527=ローンをエクスポート Permission531=サービスを読込む Permission532=サービスを作成/変更 +Permission533=価格サービス読込 Permission534=サービスを削除する Permission536=隠されたサービスを参照すること/管理 Permission538=サービスをエクスポート @@ -968,13 +974,14 @@ Permission3301=新規モジュールを生成する Permission4001=技能/職種/役職を読込む Permission4002=技能/職種/役職の作成/変更 Permission4003=技能/職種/役職を削除する -Permission4020=評価を読込む -Permission4021=評価を作成/変更する -Permission4022=評価を検証 -Permission4023=評価を削除する -Permission4030=比較メニューを見る +Permission4021=評価を読む(あなたとあなたの部下) +Permission4022=評価の作成/変更 +Permission4023=評価を検証 +Permission4025=評価を削除 +Permission4028=比較メニューを見る Permission4031=個人情報を読込む Permission4032=個人情報書出 +Permission4033=すべての評価を読む (部下ではないユーザの評価も含む) Permission10001=ウェブサイトのコンテンツを読込む Permission10002=ウェブサイトのコンテンツ ( htmlおよびjavascriptコンテンツ ) を作成/変更する Permission10003=Webサイトのコンテンツ ( 動的PHPコード ) を作成/変更する。危険。制限された開発者に予約する必要がある。 @@ -1058,7 +1065,7 @@ DictionarySendingMethods=配送方法 DictionaryStaff=就業者数 DictionaryAvailability=配達遅延 DictionaryOrderMethods=注文方法 -DictionarySource=提案/受注の起源 +DictionarySource=提案/受注の出処 DictionaryAccountancyCategory=報告書s用にパーソナライズされたグループ DictionaryAccountancysystem=勘定科目表のモデル DictionaryAccountancyJournal=会計仕訳帳 @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=資産の処分の種類 TypeOfUnit=ユニットの種類 SetupSaved=設定が保存された SetupNotSaved=設定が保存されていない +OAuthServiceConfirmDeleteTitle=OAuth エントリの削除 +OAuthServiceConfirmDeleteMessage=この OAuth エントリを削除してもよいか?そのため既存トークンもすべて削除される。 +ErrorInEntryDeletion=エントリ削除エラー +EntryDeleted=エントリが削除された BackToModuleList=モジュールリストに戻る BackToDictionaryList=辞書リストに戻る TypeOfRevenueStamp=税印紙の種類 @@ -1129,7 +1140,7 @@ ValueOfConstantKey=構成定数の値 ConstantIsOn=オプション%sがオンになっている NbOfDays=日数 AtEndOfMonth=今月末に -CurrentNext=現在/次へ +CurrentNext=月の指定日 Offset=オフセット AlwaysActive=常にアクティブ Upgrade=アップグレード @@ -1235,11 +1246,13 @@ BrowserName=ブラウザ名 BrowserOS=ブラウザOS ListOfSecurityEvents=Dolibarrセキュリティイベントのリスト SecurityEventsPurged=セキュリティイベントのパージ +TrackableSecurityEvents=追跡可能なセキュリティ イベント LogEventDesc=特定のセキュリティイベントのログを有効にする。管理者はメニュー%s-%sを介してログを記録する。警告、この機能はデータベースに大量のデータを生成する可能性がある。 AreaForAdminOnly=設定パラメータは、管理者ユーザのみが設定できる。 SystemInfoDesc=システム情報では、読取り専用モードでのみ管理者の目に見える得るその他の技術情報。 SystemAreaForAdminOnly=この領域は、管理者ユーザのみが使用できる。 Dolibarrのユーザ権限は、この制限を変更できない。 CompanyFundationDesc=あなたの法人/組織の情報を編集する。完了したら、ページの下部にある「%s」ボタンをクリックする。 +MoreNetworksAvailableWithModule=「ソーシャル ネットワーク」モジュールを有効にすると、より多くのソーシャル ネットワークを利用できる場合がある。 AccountantDesc=外部の会計士/簿記係がいる場合は、ここでその情報を編集できる。 AccountantFileNumber=会計士コード DisplayDesc=アプリケーションの外観と表示に影響を与えるパラメータは、ここで変更できる。 @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=あなたは、ユーザ%s YourPHPDoesNotHaveSSLSupport=あなたのPHPでのSSLの機能は使用できない DownloadMoreSkins=ダウンロードするには多くのスキン SimpleNumRefModelDesc=参照番号を%syymm-nnnnの形式で返す。ここで、yyは年、mmは月、nnnnはリセットなしの順次自動インクリメント番号。 +SimpleRefNumRefModelDesc=n の形式で参照番号を返す。ここで、n はリセットなしの連続した自動インクリメント番号。 +AdvancedNumRefModelDesc=参照番号を%syymm-nnnnの形式で返す。ここで、yyは年、mmは月、nnnnはリセットなしの順次自動インクリメント番号。 SimpleNumRefNoDateModelDesc=参照番号を%s-nnnnの形式で返する。nnnnはリセットなしの順次自動インクリメント番号 。 ShowProfIdInAddress=住所付きの職業分類IDを表示する ShowVATIntaInAddress=コミュニティ内のVAT番号を非表示にする @@ -1376,7 +1391,7 @@ GetBarCode=バーコードを取得する NumberingModules=ナンバリングモデル DocumentModules=ドキュメントモデル ##### Module password generation -PasswordGenerationStandard=内部Dolibarrアルゴリズムに従って生成されたパスワードを返する:%s共有番号と小文字を含む文字。 +PasswordGenerationStandard=内部 Dolibarr アルゴリズムに従って生成されたパスワードを返す: %s 共有の数字と文字を含む文字列。 PasswordGenerationNone=生成されたパスワードを提案しないこと。パスワードは手動で入力する必要がある。 PasswordGenerationPerso=個人的に定義した構成に従ってパスワードを返する。 SetupPerso=構成に応じて @@ -1430,6 +1445,10 @@ SuppliersPayment=仕入先の支払 SupplierPaymentSetup=仕入先支払の設定 InvoiceCheckPosteriorDate=検証前に製造日を確認すること InvoiceCheckPosteriorDateHelp=請求書の日付が同じタイプの最後の請求書の日付より前である場合、請求書の検証は禁止される。 +InvoiceOptionCategoryOfOperations=請求書に「業務区分」と記載すること。 +InvoiceOptionCategoryOfOperationsHelp=状況に応じて、言及は次の形式で表示される:
    - 業務カテゴリ: 商品の配送
    - 業務カテゴリ: サービスの提供
    - 業務カテゴリ: 混合 - 商品の配送とサービスの提供 +InvoiceOptionCategoryOfOperationsYes1=はい、住所ブロックの下 +InvoiceOptionCategoryOfOperationsYes2=はい、左下隅にある ##### Proposals ##### PropalSetup=商取引提案モジュールの設定 ProposalsNumberingModules=商取引提案採番モデル @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=下書き契約の透かし ( 空ならなし ) ##### Members ##### MembersSetup=構成員モジュールの設定 MemberMainOptions=主なオプション +MemberCodeChecker=会員コード自動生成オプション AdherentLoginRequired= 各構成員のログインを管理する AdherentMailRequired=新規構成員を作成するにはメールが必要 MemberSendInformationByMailByDefault=構成員 ( 検証や新規サブスクリプション ) にメールの確定を送信するチェックボックスはデフォルトでオンになっている MemberCreateAnExternalUserForSubscriptionValidated=検証済新規構成員サブスクリプションごとに外部ユーザログインを作成する -VisitorCanChooseItsPaymentMode=訪問者は利用可能な支払モードから選択できる +VisitorCanChooseItsPaymentMode=訪問者は、利用可能な支払いモードから選択できる MEMBER_REMINDER_EMAIL=期限切れのサブスクリプションの電子メール
    によって自動リマインダーを有効にする。注:モジュール %s を有効にして、リマインダーを送信するように正しく設定する必要がある。 MembersDocModules=構成員レコードから生成されたドキュメント用のドキュメントテンプレート ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=高度なエディタを有効化: FCKeditorForNotePublic=要素の「パブリックノート」フィールドのWYSIWIG作成/編集 FCKeditorForNotePrivate=要素の「プライベートノート」フィールドのWYSIWIG作成/編集 FCKeditorForCompany=要素のフィールド記述のWYSIWIG作成/エディション(製品/サービスを除く) -FCKeditorForProduct=製品/サービスのフィールド記述のWYSIWIG作成/エディション -FCKeditorForProductDetails=WYSIWIGによる製品の作成/編集では、全エンティティ(提案、注文、請求書など)の詳細行が示される。 警告:この場合にこのオプションを使用することは、PDFファイルを作成するときに特殊文字やページの書式設定で問題が発生する可能性があるため、真剣に推奨されない。 +FCKeditorForProductDetails=製品の説明またはオブジェクトの行 (提案、注文、請求書などの行) の WYSIWIG 作成/編集。 +FCKeditorForProductDetails2=警告: この場合にこのオプションを使用することは、PDF ファイルを作成する際に特殊文字やページの書式設定で問題が発生する可能性があるため、強くお勧めしません。 FCKeditorForMailing= 郵送のWYSIWIGエディタの作成/版 FCKeditorForUserSignature=WYSIWIGによるユーザ署名の作成/編集 FCKeditorForMail=全メールのWYSIWIG作成/エディション ( 【ツール】-> 【電子メール】を除く ) @@ -1762,7 +1782,7 @@ DetailMenuHandler=新規メニューを表示するメニューハンドラ DetailMenuModule=モジュール名のメニューエントリは、モジュールから来る場合 DetailType=メニューの種類 ( 上または左 ) DetailTitre=翻訳のためのメニューラベルまたはラベルのコード -DetailUrl=メニューがあなたを送るURL ( 絶対URLリンクの場合はhttp://を使用して外部リンク ) +DetailUrl=メニューの送信先 URL (相対 URL リンクまたは https:// を含む外部リンク) DetailEnabled=エントリを表示したりしないように条件 DetailRight=不正な灰色のメニューを表示するための条件 DetailLangs=ラベルのコード変換のためにラングのファイル名 @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POSの在庫減少は、モジュー CashDeskYouDidNotDisableStockDecease=POSから販売するときに、在庫減少を無効にしなかった。したがって、倉庫が必要。 CashDeskForceDecreaseStockLabel=バッチ製品の在庫減少を余儀なくされた。 CashDeskForceDecreaseStockDesc=最も古いeatbyおよびsellbyの日付で最初に減らする。 -CashDeskReaderKeyCodeForEnter=バーコードリーダーで定義された「Enter」のキーコード ( 例:13 ) +CashDeskReaderKeyCodeForEnter=バーコードリーダーで定義された「Enter」キーの ASCII コード (例: 13) ##### Bookmark ##### BookmarkSetup=モジュールの設定をブックマーク BookmarkDesc=このモジュールを使用すると、ブックマークを管理できる。左側のメニューで、Dolibarrページまたは外部Webサイトへのショートカットを追加することもできる。 @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=仕入先請求採番モデル IfSetToYesDontForgetPermission=null以外の値に設定されている場合は、2回目の承認を許可されたグループまたはユーザにアクセス許可を提供することを忘れないこと ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=のGeoIP Maxmindモジュールの設定 -PathToGeoIPMaxmindCountryDataFile=MaxmindIPから国への翻訳を含むファイルへのパス。
    例:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Maxmind IP から国への変換を含むファイルへのパス NoteOnPathLocation=国のデータファイルへのあなたのIPは、PHPが読込むことができるディレクトリ内になければならないことに注意すること ( お使いのPHPのopen_basedirの設定とファイルシステムのアクセス権を確認する ) 。 YouCanDownloadFreeDatFileTo=あなたは%sでMaxmindののGeoIP国ファイルの無料デモ版をダウンロードすることできる。 YouCanDownloadAdvancedDatFileTo=また、%sでMaxmindののGeoIP国のファイルの更新と 、より完全なバージョンを、ダウンロードすることができる。 @@ -1922,6 +1942,7 @@ BackupDumpWizard=データベースダンプファイルを作成するウィザ BackupZipWizard=ドキュメントディレクトリのアーカイブを構築するウィザード SomethingMakeInstallFromWebNotPossible=次の理由により、Webインターフェイスから外部モジュールをインストールすることはできない。 SomethingMakeInstallFromWebNotPossible2=このため、ここで説明するアップグレードプロセスは、特権ユーザのみが実行できる手動プロセス。 +InstallModuleFromWebHasBeenDisabledContactUs=アプリケーションからの外部モジュールまたは動的 Web サイトのインストールまたは開発は、現在、セキュリティ上の目的でロックされています。この機能を有効にする必要がある場合は、お問い合わせください。 InstallModuleFromWebHasBeenDisabledByFile=アプリケーションからの外部モジュールのインストールが管理者によって無効にされている。この機能を許可するには、ファイル %sを削除するように彼に依頼する必要がある。 ConfFileMustContainCustom=アプリケーションから外部モジュールをインストールまたはビルドするには、モジュールファイルをディレクトリ %sに保存する必要がある。このディレクトリをDolibarrで処理するには、 conf / conf.php を設定して、2つのディレクティブ行を追加する必要がある。
    $ dolibarr_main_url_root_alt = '/ custom';
    $ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=マウスの動きが通過したときにテーブルの行を強調表示する @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=キーボードのCTRL + F5を押すか、この値を NotSupportedByAllThemes=コアテーマで動作するが、外部テーマではサポートされていない可能性がある BackgroundColor=背景色 TopMenuBackgroundColor=トップメニューの背景色 -TopMenuDisableImages=トップメニューで画像を非表示 +TopMenuDisableImages=トップメニューのアイコンまたはテキスト LeftMenuBackgroundColor=左メニューの背景色 BackgroundTableTitleColor=表のタイトル行の背景色 BackgroundTableTitleTextColor=表のタイトル行のテキストの色 @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=購買発注 MailToSendSupplierInvoice=仕入先の請求書 MailToSendContract=契約 MailToSendReception=領収 +MailToExpenseReport=経費報告書s MailToThirdparty=取引先 MailToMember=構成員 MailToUser=ユーザ @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDFの右マージン MAIN_PDF_MARGIN_TOP=PDFの上部マージン MAIN_PDF_MARGIN_BOTTOM=PDFの下マージン MAIN_DOCUMENTS_LOGO_HEIGHT=PDFのロゴの高さ +DOC_SHOW_FIRST_SALES_REP=最初の営業担当者を表示 MAIN_GENERATE_PROPOSALS_WITH_PICTURE=提案行に画像の列を追加 MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=画像が行に追加された場合の列の幅 MAIN_PDF_NO_SENDER_FRAME=送信者アドレスフレームの境界線を非表示にする @@ -2047,6 +2070,8 @@ RemoveSpecialChars=特殊文字を削除する COMPANY_AQUARIUM_CLEAN_REGEX=値をクリーンアップするための正規表現フィルタ ( COMPANY_AQUARIUM_CLEAN_REGEX ) COMPANY_DIGITARIA_CLEAN_REGEX=値をクリーンアップするための正規表現フィルタ ( COMPANY_DIGITARIA_CLEAN_REGEX ) COMPANY_DIGITARIA_UNIQUE_CODE=複製は許可されていない +RemoveSpecialWords=顧客またはサプライヤーのサブアカウントを生成するときに特定の単語を削除する +RemoveSpecialWordsHelp=顧客または仕入先の勘定科目を計算する前に、クリーニングする単語を指定する。 ";" で単語を区切る GDPRContact=データ保護責任者 ( DPO、データプライバシーまたはGDPRの連絡先 ) GDPRContactDesc=個人データを情報システムに保存する場合は、ここで一般データ保護規則の責任者を指名できる HelpOnTooltip=ツールチップに表示するヘルプテキスト @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=注:消費税またはVATを使用するオプションは、 SwapSenderAndRecipientOnPDF=PDFドキュメントの送信者と受信者のアドレス位置を入れ替える FeatureSupportedOnTextFieldsOnly=警告、機能性はテキストフィールドとコンボリストでのみサポートされる。また、この機能性を引き出すには、URLパラメータ action=create または action=edit を設定するか、ページ名が 'new.php' で終わる必要がある。 EmailCollector=メールコレクター +EmailCollectors=メールコレクター EmailCollectorDescription=スケジュールされたジョブと設定ページを追加して、 ( IMAPプロトコルを使用して ) 定期的に電子メールボックスをスキャンし、アプリケーションに受信した電子メールを適切な場所で記録したり、いくつかの記録を自動的に作成したりする ( 引合など ) 。 NewEmailCollector=新規Eメールコレクター EMailHost=電子メールIMAPサーバーのホスト +EMailHostPort=メール IMAP サーバーのポート +loginPassword=ログイン / パスワード +oauthToken=Oauth2 トークン +accessType=アクセス種別 +oauthService=Oauth サービス +TokenMustHaveBeenCreated=モジュール OAuth2 が有効になっている必要があり、oauth2 トークンが正しいアクセス許可で作成されている必要がある (たとえば、Gmail の OAuth でスコープ "gmail_full")。 MailboxSourceDirectory=メールボックスのソースディレクトリ MailboxTargetDirectory=メールボックスのターゲットディレクトリ EmailcollectorOperations=コレクターによる操作 EmailcollectorOperationsDesc=操作は上から下の順序で実行される MaxEmailCollectPerCollect=収集ごとに収集される電子メールの最大数 +TestCollectNow=テストコレクト CollectNow=今すぐ収集 ConfirmCloneEmailCollector=メールコレクタ%sのクローンを作成してもよいか? DateLastCollectResult=最新の取得試行の日付 DateLastcollectResultOk=最新の取得成功の日付 LastResult=最新の結果 EmailCollectorHideMailHeaders=収集された電子メールの保存されたコンテンツに電子メールヘッダーのコンテンツを含めないこと -EmailCollectorHideMailHeadersHelp=有効にすると、イベントとして保存される電子メールコンテンツの最後に電子メールヘッダーが追加されない。 +EmailCollectorHideMailHeadersHelp=有効にすると、アジェンダイベントとして保存される電子メールコンテンツの最後に電子メールヘッダーは追加されない。 EmailCollectorConfirmCollectTitle=メール収集確定 EmailCollectorConfirmCollect=このコレクタを今すぐ実行するか? EmailCollectorExampleToCollectTicketRequestsDesc=いくつかのルールに一致する電子メールを収集し、電子メール情報を含むチケットを自動的に作成する(モジュールチケットを有効化する必要がある)。電子メールでサポートを提供する場合は、このコレクタを使用できるため、チケット要求が自動的に生成される。 Collect_Responsesも有効化して、チケットビューで直接クライアントの回答を収集する(Dolibarrから返信する必要がある)。 EmailCollectorExampleToCollectTicketRequests=チケット要求の収集例(最初のメッセージのみ) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=メールボックスの「送信済み」ディレクトリをスキャンして、Dolibarrからではなく、電子メールソフトウェアから直接別の電子メールの応答として送信された電子メールを見つけます。そのような電子メールが見つかった場合、回答のイベントはDolibarrに記録される EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=外部の電子メールソフトウェアから送信された電子メールの回答を収集する例 -EmailCollectorExampleToCollectDolibarrAnswersDesc=アプリケーションから送信された電子メールの回答である全電子メールを収集する。電子メール応答を含むイベント(モジュールアジェンダを有効にする必要がある)は、適切な場所に記録される。たとえば、アプリケーションから電子メールでチケットの商業提案、注文、請求書、またはメッセージを送信し、顧客が電子メールに応答した場合、システムは自動的に応答をキャッチしてERPに追加する。 +EmailCollectorExampleToCollectDolibarrAnswersDesc=アプリケーションから送信された電子メールの回答であるすべての電子メールを収集する。電子メール応答を含むイベント(モジュールアジェンダを有効にする必要があ)は、適切な場所に記録される。たとえば、アプリケーションから電子メールでチケットの商取引提案、注文、請求書、またはメッセージを送信し、受信者が電子メールに応答すると、システムは自動的に応答をキャッチしてERPに追加する。 EmailCollectorExampleToCollectDolibarrAnswers=Dolibarrから送信されたメッセージへの回答である全受信メッセージを収集する例 EmailCollectorExampleToCollectLeadsDesc=いくつかのルールに一致する電子メールを収集し、電子メール情報を使用してリードを自動的に作成する(モジュールプロジェクトを有効にする必要がある)。モジュールプロジェクト(1リード= 1プロジェクト)を使用してリードをフォローする場合は、このコレクタを使用できる。これにより、リードが自動的に生成される。コレクタのCollect_Responsesも有効になっている場合、リード、プロポーザル、またはその他のオブジェクトから電子メールを送信すると、アプリケーションに直接顧客またはパートナーの回答が表示される場合がある。
    注:この最初の例では、リードのタイトルが電子メールを含めて生成される。サードパーティがデータベース(新規顧客)で見つからない場合、リードはID1のサードパーティに接続される。 EmailCollectorExampleToCollectLeads=リードの収集例 @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=求人に応募するメール EmailCollectorExampleToCollectJobCandidatures=電子メールで受け取った求職者の収集例 NoNewEmailToProcess=処理する新規電子メール ( 一致するフィルタ ) はない NothingProcessed=何もしていない -XEmailsDoneYActionsDone=%s電子メールが修飾され、%s電子メールが正常に処理された ( %sレコード/アクションが実行された場合 ) +XEmailsDoneYActionsDone=%s電子メールは事前に認定され、%s電子メールは正常に処理されました(%sレコード/アクションが実行された場合) RecordEvent=議題にイベントを記録する(送信または受信した電子メールの種類を使用) CreateLeadAndThirdParty=リード(および必要なら取引先)を作成する CreateTicketAndThirdParty=チケットを作成する(取引先が以前の操作によってロードされた場合、またはメールヘッダーのトラッカーから推測された場合は、取引先にリンクされる。それ以外の場合は取引先は含まれない) @@ -2105,7 +2138,7 @@ CreateCandidature=求人応募を作成する FormatZip=郵便番号 MainMenuCode=メニュー入力コード ( メインメニュー ) ECMAutoTree=自動ECMツリーを表示する -OperationParamDesc=値の抽出または設定に使用するルールを定義する。
    電子メールの件名から名前を抽出する必要がある操作の例:
    name=EXTRACT:SUBJECT:法人([^\n]*)からのお知らせ
    オブジェクトを作成する操作の例:
    objproperty1=SET:設定する値
    objproperty2=SET:__objproperty1__の値を含む値
    objproperty3=SETIFEMPTY:objproperty3 が未設定の場合に使われる値
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:法人名は\\s([^\\s]*)

    いくつかのプロパティを抽出または設定するための区切り文字としての文字「;」を使う。 +OperationParamDesc=一部のデータを抽出するために使用するルールを定義するか、操作に使用する値を設定する。

    メールの件名から法人名を一時変数に抽出する例:
    tmp_var=EXTRACT:SUBJECT:【通知】 ([^\n]*) 法人

    作成するオブジェクトのプロパティを設定する例:
    objproperty1=SET: ハードコードされた値
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY 値 (プロパティがまだ設定されていない場合のみ)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My当法人名は\\s([^\\s]*)

    「;」文字をセパレータとして使用して、複数のプロパティを抽出または設定する。 OpeningHours=営業時間 OpeningHoursDesc=あなたの法人の通常の営業時間をここに入力すること。 ResourceSetup=リソースモジュールの構成 @@ -2167,6 +2200,10 @@ EmailTemplate=メールのテンプレート EMailsWillHaveMessageID=電子メールには、この構文に一致するタグ「参照」がある PDF_SHOW_PROJECT=ドキュメントにプロジェクトを表示 ShowProjectLabel=プロジェクトラベル +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=取引先名にエイリアスを含める +THIRDPARTY_ALIAS=取引先に名前を付ける-エイリアス取引先 +ALIAS_THIRDPARTY=エイリアス取引先-取引先に名前を付ける +PDFIn2Languages=ラベルを 2 つの異なる言語で PDF に表示 PDF_USE_ALSO_LANGUAGE_CODE=PDF内の一部のテキストを同じ生成PDFで2つの異なる言語で複製する場合は、ここでこの2番目の言語を設定して、生成されたPDFに同じページに2つの異なる言語が含まれるようにする必要がある。1つはPDFの生成時に選択され、もう1つは ( これをサポートしているPDFテンプレートはごくわずか ) 。 PDFごとに1つの言語を空のままにする。 PDF_USE_A=デフォルト形式のPDFではなくPDF / A形式のPDFドキュメントを生成する FafaIconSocialNetworksDesc=FontAwesomeアイコンのコードをここに入力する。 FontAwesomeとは何かわからない場合は、一般的な値fa-address-bookを使用できる。 @@ -2195,12 +2232,12 @@ MailToPartnership=パートナーシップ AGENDA_EVENT_DEFAULT_STATUS=フォームからイベントを作成するときのデフォルトのイベント状態 YouShouldDisablePHPFunctions=PHP関数を無効にする必要がある IfCLINotRequiredYouShouldDisablePHPFunctions=カスタムコードでシステムコマンドを実行する必要がある場合を除いて、PHP関数を無効にする必要がある -PHPFunctionsRequiredForCLI=シェルの目的(スケジュールされたジョブのバックアップやanitivursプログラムの実行など)では、PHP関数を保持する必要がある +PHPFunctionsRequiredForCLI=シェルの目的 (スケジュールされたジョブのバックアップやウイルス対策プログラムの実行など) では、PHP 関数を保持する必要がある。 NoWritableFilesFoundIntoRootDir=共通プログラムの書き込み可能なファイルまたはディレクトリがルートディレクトリに見つからない(良好) RecommendedValueIs=推奨:%s Recommended=推奨される NotRecommended=推奨されない -ARestrictedPath=いくつかの制限されたパス +ARestrictedPath=データ ファイルの一部の制限付きパス CheckForModuleUpdate=外部モジュールの更新を確認する CheckForModuleUpdateHelp=このアクションは、外部モジュールのエディターに接続して、新しいバージョンが利用可能かどうかを確認する。 ModuleUpdateAvailable=アップデートが利用可能 @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=外部モジュールの更新が見つからない SwaggerDescriptionFile=Swagger API記述ファイル(たとえば、redocで使用するため) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=非推奨のWS APIが有効化された。それよりもREST APIを使用すべきである。 RandomlySelectedIfSeveral=画像が複数ある場合はランダムに選択 +SalesRepresentativeInfo=提案書、注文書、請求書用。 DatabasePasswordObfuscated=データベースのパスワードは conf ファイルで難読化されている DatabasePasswordNotObfuscated=データベースのパスワードは conf ファイルで難読化されていない APIsAreNotEnabled=APIモジュールが有効になっていない @@ -2247,14 +2285,22 @@ LateWarningAfter=後の「遅延」警告 TemplateforBusinessCards=異なるサイズの名刺のテンプレート InventorySetup= 目録設定 ExportUseLowMemoryMode=低メモリモードを使用する -ExportUseLowMemoryModeHelp=低メモリモードを使用して、ダンプのexecを実行する(圧縮は、PHPメモリではなくパイプを介して行われる)。この方法では、ファイルが完了したことを確認できず、失敗した場合はエラーメッセージを報告できない。 +ExportUseLowMemoryModeHelp=低メモリ モードを使用してダンプ ファイルを生成する (圧縮は、PHP メモリではなく、パイプを介して行われます)。このメソッドでは、ファイルが完全であることを確認できず、失敗した場合にエラー メッセージを報告できない。メモリ不足エラーが発生した場合に使用する。 + +ModuleWebhookName = Webhook +ModuleWebhookDesc = dolibarrトリガーをキャッチしてURLに送信するためのインターフェース +WebhookSetup = Webhookのセットアップ +Settings = 設定 +WebhookSetupPage = Webhookセットアップページ ShowQuickAddLink=右上のメニューに要素をすばやく追加するためのボタンを表示する + HashForPing=pingに使用されるハッシュ ReadOnlyMode=インスタンスは「読取り専用」モードか DEBUGBAR_USE_LOG_FILE= dolibarr.log ファイルを使用して、ログをトラップする UsingLogFileShowAllRecordOfSubrequestButIsSlower=ライブメモリをキャッチする代わりに、dolibarr.logファイルを使用してログをトラップする。現在のプロセスのログだけでなく(ajaxサブ要求ページの1つを含む)全ログをキャッチできるが、インスタンスの速度が非常に遅くなる。推奨されない。 FixedOrPercent=固定(キーワード'fixed'を使用)またはパーセント(キーワード'percent'を使用) DefaultOpportunityStatus=デフォルトの商談ステータス(リードが作成されたときの最初のステータス) + IconAndText=アイコンとテキスト TextOnly=テキストのみ IconOnlyAllTextsOnHover=アイコンのみ-すべてのテキストはマウスがメニューバー上にある時アイコン下に表示される @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=アイコンのみ-アイコンのテキストはマウス IconOnly=アイコンのみ-ツールチップのみのテキスト INVOICE_ADD_ZATCA_QR_CODE=請求書にZATCAQRコードを表示する INVOICE_ADD_ZATCA_QR_CODEMore=一部のアラビア語の国では、請求書にこのQRコードが必要 +INVOICE_ADD_SWISS_QR_CODE=請求書にスイスのQR-Billコードを表示する +INVOICE_SHOW_SHIPPING_ADDRESS=配送先住所を表示 +INVOICE_SHOW_SHIPPING_ADDRESSMore=フランスの強制言及 UrlSocialNetworksDesc=ソーシャルネットワークのURLリンク。ソーシャルネットワークIDを含む可変部分には{socialid}を使用する。 +IfThisCategoryIsChildOfAnother=このカテゴリが別カテゴリの子である場合 +DarkThemeMode=ダークテーマモード +AlwaysDisabled=常に無効 +AccordingToBrowser=ブラウザによる +AlwaysEnabled=常に有効 +DoesNotWorkWithAllThemes=すべてのテーマで機能するわけではない +NoName=ノーネーム +ShowAdvancedOptions= 高度なオプションを表示 +HideAdvancedoptions= 詳細オプションを非表示 +CIDLookupURL=このモジュールは、外部ツールがサードパーティの名前またはその電話番号から連絡先を取得するために使用できるURLを提供する。使用するURLは次のとおり。 +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 認証はすべてのホストで利用できるわけではなく、適切な権限を持つトークンが OAUTH モジュールでアップストリームにて作成されている必要がある +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 認証サービス +DontForgetCreateTokenOauthMod=適切な権限を持つトークンが、OAUTH モジュールを使用してアップストリームにて作成されている必要がある +MAIN_MAIL_SMTPS_AUTH_TYPE=認証方法 +UsePassword=パスワードを使用する +UseOauth=OAUTH トークンを使用する +Images=画像 +MaxNumberOfImagesInGetPost=フォームで送信される HTML フィールドで許可される画像の最大数 +MaxNumberOfPostOnPublicPagesByIP=1 か月間に同じ IP アドレスを持つ公開ページへの投稿の最大数 +CIDLookupURL=このモジュールは、外部ツールがサードパーティの名前またはその電話番号から連絡先を取得するために使用できるURLを提供する。使用するURLは次のとおり。 +ScriptIsEmpty=スクリプトが空です +ShowHideTheNRequests=%s SQL リクエスト(s)の表示/非表示 +DefinedAPathForAntivirusCommandIntoSetup=ウイルス対策プログラムのパスを %s に定義する。 +TriggerCodes=トリガー可能なイベント +TriggerCodeInfo=Web リクエストのポストを確実に生成するトリガー コード(s)をここに入力する (外部 URL のみが許可される)。複数のトリガー コードをコンマで区切って入力できる。 +EditableWhenDraftOnly=オフの場合、オブジェクトがドラフト ステータスの場合にのみ値を変更できる +CssOnEdit=編集ページの CSS +CssOnView=ビューページの CSS +CssOnList=リストページのCSS +HelpCssOnEditDesc=フィールドの編集時に使用される Css。
    例: 「minwiwdth100 maxwidth500 widthcentpercentminusx」 +HelpCssOnViewDesc=フィールドを表示するときに使用される Css。 +HelpCssOnListDesc=フィールドがリスト テーブル内にある場合に使用される Css。
    例: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=受信用に生成されたドキュメントで注文数量を非表示にする +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=受付用に生成されたドキュメントに価格を表示する +WarningDisabled=警告無効 +LimitsAndMitigation=アクセス制限と緩和 +DesktopsOnly=デスクトップのみ +DesktopsAndSmartphones=デスクトップとスマートフォン +AllowOnlineSign=オンライン署名を許可する +AllowExternalDownload=外部ダウンロードを許可する (ログインなし、共有リンクを使用) +DeadlineDayVATSubmission=翌月のVAT提出締切日 +MaxNumberOfAttachementOnForms=フォーム内の結合ファイルの最大数 +IfDefinedUseAValueBeetween=定義されている場合は、%s と %s の間の値を使用する diff --git a/htdocs/langs/ja_JP/agenda.lang b/htdocs/langs/ja_JP/agenda.lang index 52b9fe00edd..9ee8f21c982 100644 --- a/htdocs/langs/ja_JP/agenda.lang +++ b/htdocs/langs/ja_JP/agenda.lang @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=構成員%sは承認済 MemberModifiedInDolibarr=構成員%sが修正された MemberResiliatedInDolibarr=構成員%sが解除された MemberDeletedInDolibarr=構成員%sが削除された +MemberExcludedInDolibarr=メンバー%sは除外された MemberSubscriptionAddedInDolibarr=構成員%sのサブスクリプション%sは追加済 MemberSubscriptionModifiedInDolibarr=構成員%sのサブスクリプション%sは変更済 MemberSubscriptionDeletedInDolibarr=構成員%sのサブスクリプション%sは削除済 @@ -67,6 +68,7 @@ ShipmentBackToDraftInDolibarr=出荷%sは下書き状態に戻る ShipmentDeletedInDolibarr=出荷%sは削除済 ShipmentCanceledInDolibarr=発送%sがキャンセルされた ReceptionValidatedInDolibarr=領収%sは検証済 +ReceptionDeletedInDolibarr=受信 %s 削除 ReceptionClassifyClosedInDolibarr=領収%sは閉鎖済指定 OrderCreatedInDolibarr=注文%sは作成済 OrderValidatedInDolibarr=注文%sは検証済 @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=電子メールで送信された仕入先の請求 ShippingSentByEMail=電子メールで送信された出荷%s ShippingValidated= 出荷%sは検証済 InterventionSentByEMail=電子メールで送信された介入%s +ProjectSentByEMail=電子メールで送信されたプロジェクト %s ProposalDeleted=提案は削除済 OrderDeleted=注文は削除済 InvoiceDeleted=請求書は削除済 @@ -159,6 +162,7 @@ DateActionBegin=イベント開始日 ConfirmCloneEvent=イベント%s のクローンを作成してもよいか? RepeatEvent=イベントを繰り返す OnceOnly=一回だけ +EveryDay=毎日 EveryWeek=毎週 EveryMonth=毎月 DayOfMonth=曜日 @@ -174,3 +178,4 @@ AddReminder=このイベントの自動リマインダー通知を作成する ErrorReminderActionCommCreation=このイベントのリマインダー通知の作成中にエラーが発生した BrowserPush=ブラウザのポップアップ通知 ActiveByDefault=デフォルトで有効 +Until=それまで diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index 306afe0b4b6..8b7397ee59f 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=顧客請求書の統計 BillsStatisticsSuppliers=仕入先請求書の統計 DisabledBecauseDispatchedInBookkeeping=請求書が簿記に発送されたため無効 DisabledBecauseNotLastInvoice=請求書が消去できないため無効。この後にいくつか請求書が記録されたら、消去によりカウンターに穴を作成することになる。 +DisabledBecauseNotLastSituationInvoice=請求書は消去できないため、無効になっている。この請求書は、シチュエーション請求書サイクルの最後の請求書ではない。 DisabledBecauseNotErasable=消去できないため無効 InvoiceStandard=標準請求書 InvoiceStandardAsk=標準請求書 InvoiceStandardDesc=この種の請求書は一般的な請求書。 +InvoiceStandardShort=標準 InvoiceDeposit=頭金請求書 InvoiceDepositAsk=頭金請求書 InvoiceDepositDesc=この種の請求書は、頭金を受け取った時に請求される。 @@ -24,6 +26,7 @@ InvoiceProForma=見積請求書 InvoiceProFormaAsk=見積請求書 InvoiceProFormaDesc= 見積請求書は真正の請求書の様相だが、会計的には値がない。 InvoiceReplacement=交換用の請求書 +InvoiceReplacementShort=置換 InvoiceReplacementAsk=請求書の交換請求書 InvoiceReplacementDesc= 交換用請求書は、支払をまだ受け取っていない請求書を完全に交換するために使用される。

    注:交換できるのは、支払のない請求書のみ。交換する請求書がまだ閉じられていない場合は、自動的に閉じられ「放棄」になる。 InvoiceAvoir=貸方表 @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=この部分ま ErrorInvoiceIsNotLastOfSameType=エラー:請求書%sの日付は%s。同じタイプの請求書(%s)の場合は、最終日以降である必要がある。請求書の日付を変更すること。 BillFrom=期初 BillTo=期末 +ShippingTo=への配送 ActionsOnBill=請求書上のアクション RecurringInvoiceTemplate=テンプレート/定期的な請求書 NoQualifiedRecurringInvoiceTemplateFound=生成に適格な定期的なテンプレート請求書はない。 @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=選択した支払い条件 PaymentTypeVIR=銀行振込 PaymentTypeShortVIR=銀行振込 PaymentTypePRE=口座振替の支払注文 +PaymentTypePREdetails=(アカウント *-%s) PaymentTypeShortPRE=デビット支払注文 PaymentTypeLIQ=現金 PaymentTypeShortLIQ=現金 @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=支払は登録済、請求書%sは支払 SendEmailsRemindersOnInvoiceDueDate=未払いの請求書については、メールでリマインダーを送信する MakePaymentAndClassifyPayed=支払の記録 BulkPaymentNotPossibleForInvoice=請求書%s(タイプまたは状態が不良)の一括支払はできない +MentionVATDebitOptionIsOn=借方に基づいて税金を支払うオプション +MentionCategoryOfOperations=操作のカテゴリ +MentionCategoryOfOperations0=商品の配送 +MentionCategoryOfOperations1=サービスの提供 +MentionCategoryOfOperations2=混合 - 商品の配送とサービスの提供 diff --git a/htdocs/langs/ja_JP/bookmarks.lang b/htdocs/langs/ja_JP/bookmarks.lang index 64131eba0ec..cf1d6af74ea 100644 --- a/htdocs/langs/ja_JP/bookmarks.lang +++ b/htdocs/langs/ja_JP/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=リンクされたページを BookmarksManagement=ブックマークの管理 BookmarksMenuShortCut=Ctrl +シフト+ m NoBookmarks=ブックマークが未定義 +NoBookmarkFound=ブックマークが見つからない diff --git a/htdocs/langs/ja_JP/boxes.lang b/htdocs/langs/ja_JP/boxes.lang index 50556765e00..debf3f7b177 100644 --- a/htdocs/langs/ja_JP/boxes.lang +++ b/htdocs/langs/ja_JP/boxes.lang @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=領収待ちのサプライヤー注文 BoxTitleLastModifiedContacts=最近修正された連絡先・アドレス:%s件 BoxMyLastBookmarks=ブックマーク:最新の%s BoxOldestExpiredServices=最も古いアクティブな期限切れのサービス +BoxOldestActions=行う最も古いイベント BoxLastExpiredServices=アクティブな期限切れのサービスを持つ最新の%s最も古い連絡先 BoxTitleLastActionsToDo=実行する最新の%sアクション +BoxTitleOldestActionsToDo=実行する最も古い %s イベント、未完了 BoxTitleLastContracts=変更された最新の%s契約 BoxTitleLastModifiedDonations=変更された最新の%s寄付 BoxTitleLastModifiedExpenses=変更された最新の%s経費報告書s diff --git a/htdocs/langs/ja_JP/cashdesk.lang b/htdocs/langs/ja_JP/cashdesk.lang index 0066fd2f620..b7ce14ca2ff 100644 --- a/htdocs/langs/ja_JP/cashdesk.lang +++ b/htdocs/langs/ja_JP/cashdesk.lang @@ -136,3 +136,4 @@ PrintWithoutDetails=詳細なしで印刷 YearNotDefined=年は未定義 TakeposBarcodeRuleToInsertProduct=製品を挿入するためのバーコードルール TakeposBarcodeRuleToInsertProductDesc=スキャン済バーコードから製品参照+数量を抽出するルール。
    空(デフォルト値)の場合、アプリケーションはスキャンされたバーコードのみを使用して製品を検索する。

    定義済の場合の構文規則:
    ref:NB+qu:NB+qd:NB+other:NB
    上記 NB はスキャン済バーコードからデータ抽出するときに使用する文字数であり:
    • ref : 製品参照
    • qu : 項目追加時の設定数量(units)
    • qd : 項目追加時の設定数量 (decimals)
    • other : その他の文字列
    +AlreadyPrinted=すでに印刷されている diff --git a/htdocs/langs/ja_JP/categories.lang b/htdocs/langs/ja_JP/categories.lang index 311146b8e1e..3a6c0fba446 100644 --- a/htdocs/langs/ja_JP/categories.lang +++ b/htdocs/langs/ja_JP/categories.lang @@ -95,7 +95,9 @@ ShowCategory=タグ/カテゴリを表示 ByDefaultInList=デフォルトでリストに ChooseCategory=カテゴリを選択 StocksCategoriesArea=倉庫カテゴリ +TicketsCategoriesArea=チケットカテゴリ ActionCommCategoriesArea=イベントカテゴリ WebsitePagesCategoriesArea=ページ-コンテナカテゴリ KnowledgemanagementsCategoriesArea=KM項目カテゴリー UseOrOperatorForCategories=カテゴリには「OR」演算子を使用する +AddObjectIntoCategory=オブジェクトをカテゴリに追加 diff --git a/htdocs/langs/ja_JP/commercial.lang b/htdocs/langs/ja_JP/commercial.lang index f5741ede8fa..30db64150bf 100644 --- a/htdocs/langs/ja_JP/commercial.lang +++ b/htdocs/langs/ja_JP/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=見込の状態 DraftPropals=下書き商取引提案 NoLimit=制限なし ToOfferALinkForOnlineSignature=オンライン署名へのリンク -WelcomeOnOnlineSignaturePage=%sからの商取引提案sを受諾するページへようこそ -ThisScreenAllowsYouToSignDocFrom=この画面では、見積書/商取引提案を受諾して署名するか、拒否することができる -ThisIsInformationOnDocumentToSign=これは、承認または拒否するドキュメントに関する情報。 +WelcomeOnOnlineSignaturePageProposal=%sからの商取引提案sを受諾するページへようこそ +WelcomeOnOnlineSignaturePageContract=%s 契約 PDF 署名ページへようこそ +WelcomeOnOnlineSignaturePageFichinter=%s 出張 PDF 署名ページへようこそ +ThisScreenAllowsYouToSignDocFromProposal=この画面では、見積書/商取引提案を受諾して署名するか、拒否することができる +ThisScreenAllowsYouToSignDocFromContract=この画面では、オンラインで PDF 形式の契約書に署名することができる。 +ThisScreenAllowsYouToSignDocFromFichinter=この画面では、オンラインで PDF 形式の出張に署名できる。 +ThisIsInformationOnDocumentToSignProposal=これは、承認または拒否するドキュメントに関する情報。 +ThisIsInformationOnDocumentToSignContract=これは、署名する契約に関する情報です +ThisIsInformationOnDocumentToSignFichinter=署名すべき出張に関して SignatureProposalRef=見積書/商取引提案%s の署名 +SignatureContractRef=契約書の署名 %s +SignatureFichinterRef=出張の署名 %s FeatureOnlineSignDisabled=オンライン署名の機能が無効になっているか、機能が有効になる前にドキュメントが生成された diff --git a/htdocs/langs/ja_JP/companies.lang b/htdocs/langs/ja_JP/companies.lang index 4299b4e0248..d6f1e81f0d8 100644 --- a/htdocs/langs/ja_JP/companies.lang +++ b/htdocs/langs/ja_JP/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=取引先の性質 NatureOfContact=連絡の性質 Address=住所 State=州/地方 +StateId=州ID StateCode=州/地方コード StateShort=州 Region=地域 Region-State=地域 - 州 Country=国 CountryCode=国コード -CountryId=国番号 +CountryId=国ID Phone=電話 PhoneShort=電話 Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. プロフ 1(貿易登録) ProfId2CM=Id. プロフ 2(納税者番号) -ProfId3CM=Id. プロフ 3(作成指令) -ProfId4CM=Id. プロフ 4(譲渡性預金) +ProfId3CM=Id. プロフ3(作成命令の数) +ProfId4CM=Id. プロフ4(預託金証書番号) ProfId5CM=Id. プロフ 5(その他) ProfId6CM=- ProfId1ShortCM=貿易登録 ProfId2ShortCM=納税者番号 -ProfId3ShortCM=作成指令 -ProfId4ShortCM=預金残高証明書 +ProfId3ShortCM=作成令の数 +ProfId4ShortCM=預託金証書番号 ProfId5ShortCM=他人 ProfId6ShortCM=- ProfId1CO=プロフID 1 (R.U.T.) diff --git a/htdocs/langs/ja_JP/compta.lang b/htdocs/langs/ja_JP/compta.lang index 6360919891e..79b039c6b5a 100644 --- a/htdocs/langs/ja_JP/compta.lang +++ b/htdocs/langs/ja_JP/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=残高(前) Balance=残高 Debit=借方 Credit=貸方 +AccountingDebit=借方 +AccountingCredit=貸方 Piece=会計ドキュメント AmountHTVATRealReceived=純回収額 AmountHTVATRealPaid=純支払額 @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=製品ごとに回収済売 TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=売却税率ごとに回収済売上高の報告書は利用できない。この報告書は、請求済売上高に対してのみ使用できる。 CalculationMode=計算モード AccountancyJournal=会計コードジャーナル -ACCOUNTING_VAT_SOLD_ACCOUNT=販売時のVATのデフォルトの勘定科目(VATディクショナリの設定で定義されていない場合に使用) -ACCOUNTING_VAT_BUY_ACCOUNT=購入時のVATのデフォルトの勘定科目(VATディクショナリ設定で定義されていない場合に使用) -ACCOUNTING_VAT_PAY_ACCOUNT=VATを支払うためのデフォルトの勘定科目 -ACCOUNTING_ACCOUNT_CUSTOMER=顧客の第三者に使用される勘定科目 +ACCOUNTING_VAT_SOLD_ACCOUNT=売上に対する VAT の既定の勘定として使用される勘定 (勘定科目表から) (VAT ディクショナリ設定で定義されていない場合に使用) +ACCOUNTING_VAT_BUY_ACCOUNT=購入時の VAT のデフォルト アカウントとして使用されるアカウント (アカウント チャートから) (VAT ディクショナリ設定で定義されていない場合に使用) +ACCOUNTING_VAT_PAY_ACCOUNT=VAT を支払うための既定のアカウントとして使用されるアカウント (アカウント チャートから) +ACCOUNTING_ACCOUNT_CUSTOMER=「顧客」取引先に使用されるアカウント (勘定科目表から) ACCOUNTING_ACCOUNT_CUSTOMER_Desc=取引先カードで定義された専用の勘定科目は、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、取引先の専用顧客勘定科目が定義されていない場合は補助元帳会計のデフォルト値として使用される。 -ACCOUNTING_ACCOUNT_SUPPLIER=ベンダーの取引先に使用される勘定科目 +ACCOUNTING_ACCOUNT_SUPPLIER=「ベンダー」取引先に使用されるアカウント (勘定科目表から) ACCOUNTING_ACCOUNT_SUPPLIER_Desc=取引先カードで定義された専用の勘定科目は、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、取引先の専用仕入先勘定科目が定義されていない場合は補助元帳会計のデフォルト値として使用される。 ConfirmCloneTax=社会税/財政税のクローンを確定する ConfirmCloneVAT=VAT宣言のクローンを確定する @@ -300,3 +302,4 @@ InvoiceToPay15Days=支払(15〜30日) InvoiceToPay30Days=支払(> 30日) ConfirmPreselectAccount=会計コードを予備選択する ConfirmPreselectAccountQuestion=選択済の%s行を、この会計コードで予備選択にしてもよいか? +AmountPaidMustMatchAmountOfDownPayment=支払額は頭金の額と一致する必要がある diff --git a/htdocs/langs/ja_JP/contracts.lang b/htdocs/langs/ja_JP/contracts.lang index bb610dfdd08..18d12af4b91 100644 --- a/htdocs/langs/ja_JP/contracts.lang +++ b/htdocs/langs/ja_JP/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=こ契約行を削除してもよいか? MoveToAnotherContract=別契約にサービスを移動する。 ConfirmMoveToAnotherContract=私は、新規ターゲット契約を選びましたし、私はこ契約には、このサービスを移動することを確定する。 ConfirmMoveToAnotherContractQuestion=このサービスを移動する(同じ取引先の)既存契約を選択するか? -PaymentRenewContractId=契約行(番号%s)を​​更新 +PaymentRenewContractId=契約更新 %s (サービス %s) ExpiredSince=有効期限の日付 NoExpiredServices=失効済アクティブサービス無し ListOfServicesToExpireWithDuration=%s日で失効済になるサービスリスト diff --git a/htdocs/langs/ja_JP/cron.lang b/htdocs/langs/ja_JP/cron.lang index 4c7815d373a..8392bc64805 100644 --- a/htdocs/langs/ja_JP/cron.lang +++ b/htdocs/langs/ja_JP/cron.lang @@ -26,7 +26,7 @@ CronCommand=コマンド CronList=スケジュールされたジョブ CronDelete=スケジュールされたジョブを削除する CronConfirmDelete=これらのスケジュールされたジョブを削除してもよいか? -CronExecute=スケジュールされたジョブを起動する +CronExecute=今すぐ起動 CronConfirmExecute=これらのスケジュールされたジョブを今すぐ実行してもよいか? CronInfo=スケジュールされたジョブモジュールを使用すると、ジョブをスケジュールして自動的に実行できる。ジョブは手動で開始することもできる。 CronTask=ジョブ @@ -58,7 +58,7 @@ CronNote=コメント CronFieldMandatory=フィールド%sは必須 CronErrEndDateStartDt=終了日を開始日より前にすることはできない StatusAtInstall=モジュールインストール時の状態 -CronStatusActiveBtn=スケジュール +CronStatusActiveBtn=スケジューリングを有効にする CronStatusInactiveBtn=無効にする CronTaskInactive=このジョブは無効になっている(スケジュールされていない) CronId=Id @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=ローカルデータベースのバックアップ MakeLocalDatabaseDump=ローカルデータベースダンプを作成する。パラメータは次のもの: 圧縮 ('gz' or 'bz' or 'none')、バックアップ種別 ('mysql', 'pgsql', 'auto')、1、 'auto' またはビルドするファイル名、保持するバックアップファイルの数 MakeSendLocalDatabaseDumpShort=ローカルデータベースのバックアップを送信する MakeSendLocalDatabaseDump=ローカルデータベースのバックアップを電子メールで送信する。パラメータは次のとおり 。to、from、subject、message、filename(送信されたファイルの名前)、filter(データベースのバックアップのみの「sql」) +BackupIsTooLargeSend=前回のバックアップ ファイルが大きすぎてメールで送信できない +CleanUnfinishedCronjobShort=未完了の cronjob を消去 +CleanUnfinishedCronjob=処理が動作していない場合、処理詰まりしている cronjob を消去 WarningCronDelayed=注意、パフォーマンスの目的で、有効なジョブの次の実行日が何であれ、ジョブは実行される前に最大%s時間まで遅延する可能性がある。 DATAPOLICYJob=データクリーナとアノニマイザ JobXMustBeEnabled=ジョブ%sを有効にする必要がある +EmailIfError=エラー時の警告メール +ErrorInBatch=ジョブ実行時のエラー %s + # Cron Boxes LastExecutedScheduledJob=最後に実行されたスケジュールジョブ NextScheduledJobExecute=次に実行する予定のジョブ NumberScheduledJobError=エラーのあるスケジュールジョブの数 +NumberScheduledJobNeverFinished=終了しなかったスケジュール済みジョブの数 diff --git a/htdocs/langs/ja_JP/datapolicy.lang b/htdocs/langs/ja_JP/datapolicy.lang new file mode 100644 index 00000000000..348f7ffa81f --- /dev/null +++ b/htdocs/langs/ja_JP/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = データプライバシーポリシー +# Module description 'ModuledatapolicyDesc' +Module4100Desc = データのプライバシーを管理するモジュール (GDPR に準拠) + +# +# Administration page +# +datapolicySetup = モジュール データのプライバシー ポリシーの設定 +Deletion = データの削除 +datapolicySetupPage = 各国の法律に応じて (GDPR の例 第 5 条 )、個人データは、アーカイブ目的を除き、収集された目的に必要な期間を超えない期間保持する必要がある。
    削除は、イベントが発生しない一定期間 (以下に指定した期間) が経過すると自動的に行われる。 +NB_MONTHS = %s か月 +ONE_YEAR = 1年 +NB_YEARS = %s年 +DATAPOLICY_TIERS_CLIENT = 顧客 +DATAPOLICY_TIERS_PROSPECT = 見込 +DATAPOLICY_TIERS_PROSPECT_CLIENT = 見込客/顧客 +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = 見込客でも顧客でもない +DATAPOLICY_TIERS_FOURNISSEUR = サプライヤー +DATAPOLICY_CONTACT_CLIENT = 顧客 +DATAPOLICY_CONTACT_PROSPECT = 見込 +DATAPOLICY_CONTACT_PROSPECT_CLIENT = 見込客/顧客 +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = 見込客でも顧客でもない +DATAPOLICY_CONTACT_FOURNISSEUR = サプライヤー +DATAPOLICY_ADHERENT = 構成員 +DATAPOLICY_Tooltip_SETUP = 連絡先の種類 - 種類ごとに選択肢を示する。 +DATAPOLICYMail = メール設定 +DATAPOLICYSUBJECTMAIL = メールの件名 +DATAPOLICYCONTENTMAIL = メールの内容 +DATAPOLICYSUBSITUTION = メールでは次の変数を使用できる (LINKACCEPT を使用すると、その人の同意を記録するリンクを作成できる。LINKREFUSED を使用すると、その人の拒否を記録できる): +DATAPOLICYACCEPT = 契約後のメッセージ +DATAPOLICYREFUSE = 同意後のメッセージ +SendAgreementText = 関連するすべての連絡先 (まだメールを受信しておらず、GDPR 契約について何も登録していない連絡先) に GDPR メールを送信できる。これを行うには、次のボタンを使用する。 +SendAgreement = メールを送る +AllAgreementSend = すべてのメールが送信された +TXTLINKDATAPOLICYACCEPT = リンク「同意書」のテキスト +TXTLINKDATAPOLICYREFUSE = リンク「同意しない」のテキスト + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : 個人データの処理 +DATAPOLICY_consentement = 個人データの処理について得られた同意 +DATAPOLICY_opposition_traitement = 彼の個人データの処理に不同意 +DATAPOLICY_opposition_prospection = 調査目的での個人データの処理に不同意 + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = 取引先の匿名化 +DATAPOLICY_POPUP_ANONYME_TEXTE = 関連アイテムがあるため、この連絡先を Dolibarr から削除できない。 GDPR に従って、義務を順守するために、このすべてのデータを匿名化する。続行してよいか? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = 移植性GDPR +DATAPOLICY_PORTABILITE_TITLE = 個人データのエクスポート +DATAPOLICY_PORTABILITE_CONFIRMATION = この連絡先の個人データをエクスポートする。よいか ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = %s を匿名化 + +# V2 +DATAPOLICYReturn = GDPR の検証 +DATAPOLICY_date = 同意日/同意解除日 GDPR +DATAPOLICY_send = 同意メール送信日 +DATAPOLICYReturn = GDPR の検証 +DATAPOLICY_SEND = GDPR メールを送信する +MailSent = メールが送信された + +# ERROR +ErrorSubjectIsRequired = エラー : 電子メールの件名は必須。モジュール設定で指定 +=技術的な問題により、お客様の選択は登録不可。謝罪をする。お問い合わせの上、お客様の選択を送ってください。 +NUMBER_MONTH_BEFORE_DELETION = 削除前の月数 diff --git a/htdocs/langs/ja_JP/dict.lang b/htdocs/langs/ja_JP/dict.lang index 5fe30a20a17..6fb9b7e3258 100644 --- a/htdocs/langs/ja_JP/dict.lang +++ b/htdocs/langs/ja_JP/dict.lang @@ -250,7 +250,9 @@ CountryMF=サンマルタン島 ##### Civilities ##### CivilityMME=ミセス +CivilityMMEShort=ミセス CivilityMR=ミスター +CivilityMRShort=ミスター CivilityMLE=ミズ CivilityMTRE=マスタ CivilityDR=ドクター diff --git a/htdocs/langs/ja_JP/ecm.lang b/htdocs/langs/ja_JP/ecm.lang index b4b9231bc99..a204e318a84 100644 --- a/htdocs/langs/ja_JP/ecm.lang +++ b/htdocs/langs/ja_JP/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=手動のディレクトリ ECMSectionAuto=自動ディレクトリ ECMSectionsManual=手動ツリー ECMSectionsAuto=自動ツリー +ECMSectionsMedias=メディアツリー ECMSections=ディレクトリ ECMRoot=ECMルート ECMNewSection=新規ディレクトリ @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=サブディレクトリ内のファイルの数 ECMCreationUser=クリエイター ECMArea=DMS / ECMエリア ECMAreaDesc=DMS / ECM(ドキュメント管理システム/電子コンテンツ管理)エリアでは、Dolibarr内のあらゆる種類のドキュメントをすばやく保存、共有、検索できる。 -ECMAreaDesc2=要素のカードからドキュメントを追加するときに*自動ディレクトリは自動的に入力される。
    *マニュアルのディレクトリは、特定の要素にリンクされていないドキュメントを保存するために使用することができる。 +ECMAreaDesc2a=* 手動ディレクトリは、特定の要素にリンクされていないドキュメントを保存するために使用できる。 +ECMAreaDesc2b=* 要素のページからドキュメントを追加すると、自動ディレクトリが自動的に入力される。 +ECMAreaDesc3=* Medias ディレクトリは、documents ディレクトリのサブディレクトリ /medias にあるファイルであり、ログに記録する必要も、ファイルを明示的に共有する必要もなく、誰でも読み取ることができる。電子メールまたは ウェブサイト モジュールからの画像ファイルを保存するために使用される。 ECMSectionWasRemoved=ディレクトリの%sが削除されている。 ECMSectionWasCreated=ディレクトリ%sが作成された。 ECMSearchByKeywords=キーワードで検索 diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang index d415243148a..d1385a11b4e 100644 --- a/htdocs/langs/ja_JP/errors.lang +++ b/htdocs/langs/ja_JP/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=ログイン%sは既に存在している。 ErrorGroupAlreadyExists=グループ%sは既に存在している。 ErrorEmailAlreadyExists=メール%sは既に存在する。 ErrorRecordNotFound=レコードが見つからなかった。 +ErrorRecordNotFoundShort=見つからない ErrorFailToCopyFile="%s"にファイル"%s"をコピーに失敗した。 ErrorFailToCopyDir=ディレクトリ ' %s'を ' %s'にコピーできなかった。 ErrorFailToRenameFile="%s"にファイル"%s"をリネームに失敗した。 @@ -48,6 +49,7 @@ ErrorBadImageFormat=画像ファイルはサポートされている形式では ErrorBadDateFormat=値 '%s'に間違った日付の形式になっている ErrorWrongDate=日付が正しくない! ErrorFailedToWriteInDir=ディレクトリ%sの書き込みに失敗した +ErrorFailedToBuildArchive=アーカイブ ファイル %s の構築に失敗した ErrorFoundBadEmailInFile=ファイル内の%s線の発見誤った電子メールのシンタックス(電子メール= %sを使用したサンプルライン%s) ErrorUserCannotBeDelete=ユーザを削除することはできない。多分それはDolibarrエンティティに関連付けられている。 ErrorFieldsRequired=一部の必須フィールドは空白のままになっている。 @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=チェックボックスリストの値を入力す ErrorNoValueForRadioType=ラジオリストの値を入力すること ErrorBadFormatValueList=リスト値に複数のコンマを含めることはできない: %s 、ただし少なくとも1つ必要: key,value ErrorFieldCanNotContainSpecialCharacters=フィールド%sに特殊文字を含めることはできない。 -ErrorFieldCanNotContainSpecialNorUpperCharacters=フィールド%s には、特殊文字や大文字を含めることはできず、数字のみを含めることはできない。 +ErrorFieldCanNotContainSpecialNorUpperCharacters=フィールド %s には、特殊文字や大文字を含めてはならず、アルファベット文字 (a ~ z) で開始する必要がある。 ErrorFieldMustHaveXChar=フィールド%s には、少なくとも%s文字が必要だ。 ErrorNoAccountancyModuleLoaded=有効化済会計モジュールなし ErrorExportDuplicateProfil=このプロファイル名は、このエクスポートセットに既に存在する。 @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascriptがこの機能が動作しているた ErrorPasswordsMustMatch=両方入力したパスワードは、互いに一致している必要がある ErrorContactEMail=技術的なエラーが発生した。次の電子メール%s に管理者に連絡し、メッセージにエラーコード %s を入力するか、このページの画面コピーを追加すること。 ErrorWrongValueForField=フィールド%s : ' %s ' は、正規表現ルール%s に不適合 +ErrorHtmlInjectionForField=フィールド%s: 値 ' %s 'には、許可されない悪意あるデータが含まれる ErrorFieldValueNotIn=フィールド%s:'%s' はフィールド %s である %s にあるものの値とは異なる ErrorFieldRefNotIn=フィールド%s : ' %s' は存在する %s 参照ではない +ErrorMultipleRecordFoundFromRef=ref %s から検索すると、いくつかのレコードが見つかった。使用する ID を知る方法はない。 ErrorsOnXLines=%sエラーが見つかった ErrorFileIsInfectedWithAVirus=ウイルス対策プログラムがファイルを検証ことができなかった(ファイルがウイルスに感染されるかもしれない) -ErrorSpecialCharNotAllowedForField=特殊文字は、フィールド "%s"に許可されていない ErrorNumRefModel=参照は、データベース(%s)に存在し、この発番規則と互換性がない。このモジュールを有効化するため、レコードを削除するか、参照を変更すること。 ErrorQtyTooLowForThisSupplier=このベンダーの数量が少なすぎるか、このベンダーのこの製品に価格が定義されていない ErrorOrdersNotCreatedQtyTooLow=数量が少なすぎるため、一部の注文が作成されていない @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=無効にするには、オブジェ ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=オブジェクトを有効にするには、状態が "下書き" または "無効" である必要がある ErrorNoFieldWithAttributeShowoncombobox=オブジェクト '%s'の定義にプロパティ 'showoncombobox'を持つフィールドはない。コンボリストを表示する方法はない。 ErrorFieldRequiredForProduct=製品%sには、フィールド '%s'が必要だ。 +AlreadyTooMuchPostOnThisIPAdress=あなたはすでにこの IP アドレスに過剰な投稿をしている。 ProblemIsInSetupOfTerminal=ターミナル%sの設定に問題がある。 ErrorAddAtLeastOneLineFirst=最初に少なくとも1行追加する ErrorRecordAlreadyInAccountingDeletionNotPossible=エラー、レコードは既に会計で移動済、削除不可。 @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=最初に勘定科目表を設定する ErrorFailedToFindEmailTemplate=コードネーム%sのテンプレートが見つからない ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=サービスで期間が定義されていない。時給計算する方法がない。 ErrorActionCommPropertyUserowneridNotDefined=ユーザの所有者が必要 -ErrorActionCommBadType=選択したイベント種別 (id: %n, code: %s) がイベント種別辞書に存在しない +ErrorActionCommBadType=選択したイベント タイプ (ID: %s、コード: %s) がイベント タイプ ディクショナリに存在しない CheckVersionFail=バージョンチェックに失敗する ErrorWrongFileName=ファイル名に__SOMETHING__を含めることはできない ErrorNotInDictionaryPaymentConditions=支払条件辞書にないので、変更すること。 ErrorIsNotADraft=%sは下書きではない ErrorExecIdFailed=コマンド「id」を実行できない -ErrorBadCharIntoLoginName=ログイン名に含まれる不正な文字 -ErrorRequestTooLarge=エラー、要求が大きすぎる +ErrorBadCharIntoLoginName=フィールド %s の不正な文字 +ErrorRequestTooLarge=エラー、リクエストが大きすぎるか、セッションの有効期限が切れた ErrorNotApproverForHoliday=あなたは休暇の承認者ではない%s ErrorAttributeIsUsedIntoProduct=この属性は、1つ以上の製品バリアントで使用される ErrorAttributeValueIsUsedIntoProduct=この属性値は、1つ以上の製品バリアントで使用される @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=エラー、全金額を同じ列に入力する必 ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=通貨%sのアカウントから通貨%sで請求書を支払おうとした ErrorInvoiceLoadThirdParty=請求書「%s」の取引先オブジェクトを読み込めない ErrorInvoiceLoadThirdPartyKey=取引先のキー「%s」が請求書「%s」に設定されていない -ErrorDeleteLineNotAllowedByObjectStatus=実際のオブジェクトステータスでは行の削除は許可されていません +ErrorDeleteLineNotAllowedByObjectStatus=現在のオブジェクトステータスでは行の削除は許可されていない ErrorAjaxRequestFailed=申請が失敗 +ErrorThirpdartyOrMemberidIsMandatory=取引先またはパートナーシップのメンバーは必須 +ErrorFailedToWriteInTempDirectory=一時ディレクトリへの書き込みに失敗 +ErrorQuantityIsLimitedTo=数量限定 %s +ErrorFailedToLoadThirdParty=id=%s、email=%s、name=%s による 取引先の検索/読込に失敗した +ErrorThisPaymentModeIsNotSepa=この支払いモードは銀行口座ではない +ErrorStripeCustomerNotFoundCreateFirst=このサードパーティには Stripe カスタマーが設定されていない (または Stripe 側で削除された値に設定されている)。最初に作成 (または再接続) する。 +ErrorCharPlusNotSupportedByImapForSearch=IMAP 検索は、文字 + を含む文字列での送信者または受信者を検索できない +ErrorTableNotFound=テーブル %s が見つかりません +ErrorValueForTooLow= %s の値が低すぎる +ErrorValueCantBeNull= %s の値は null 不可 +ErrorDateOfMovementLowerThanDateOfFileTransmission=銀行取引の日付は、ファイル送信の日付より前にすることはできない +ErrorTooMuchFileInForm=フォーム内のファイルが多すぎる。最大数は %s ファイル (s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=PHPパラメータ upload_max_filesize(%s)は、PHPパラメータ post_max_size(%s)よりも大きくなっている。これは一貫した設定ではない。 WarningPasswordSetWithNoAccount=この構成員にパスワードが設定された。ただし、ユーザアカウントは作成されなかった。したがって、このパスワードは保存されるが、Dolibarrへのログインには使用できない。外部モジュール/インターフェースで使用できるが、構成員のログインやパスワードを定義する必要がない場合は、構成員モジュールの設定から "各構成員のログインを管理する" オプションを無効にすることができる。ログインを管理する必要があるがパスワードは必要ない場合は、このフィールドを空のままにして、この警告を回避できる。注:構成員がユーザにリンクされている場合は、電子メールをログインとして使用することもできる。 -WarningMandatorySetupNotComplete=必須パラメータ を設定するには、ここをクリックすること +WarningMandatorySetupNotComplete=主なパラメータの設定はこちら WarningEnableYourModulesApplications=モジュールとアプリケーションを有効にするには、ここをクリックすること WarningSafeModeOnCheckExecDir=警告、PHPのオプションセーフモードは、PHPのパラメータ safe_mode_exec_dirの宣言されたディレクトリ内に格納する必要があるので、コマンドにある。 WarningBookmarkAlreadyExists=この職種またはこのターゲットを使用して、ブックマーク(URL)が既に存在している。 @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=警告、設定ファイル (htdocs/conf/conf.p WarningsOnXLines=%sソース行に関する警告 WarningNoDocumentModelActivated=ドキュメント生成用のモデルは有効化されていない。モジュールの設定を確認するまで、デフォルトでモデルが選択される。 WarningLockFileDoesNotExists=警告、設定が完了したら、ファイル install.lockをディレクトリ%s に追加して、インストール/移行ツールを無効にする必要がある。このファイルの作成を省略すると、重大なセキュリティリスクが発生する。 -WarningUntilDirRemoved=全セキュリティ警告(管理者ユーザのみに表示)は、脆弱性が存在する限り(または、 設定 -> その他の設定 で定数 MAIN_REMOVE_INSTALL_WARNING が追加されている限り)アクティブなままだ。 +WarningUntilDirRemoved=このセキュリティ警告は、脆弱性が存在する限りアクティブなまま 。 WarningCloseAlways=警告、ソース要素とターゲット要素の間で量が異なっていても、クローズは行われる。この機能は注意して有効にすること。 WarningUsingThisBoxSlowDown=警告、このボックスを使用すると、ボックスを表示している全ページの速度が大幅に低下する。 WarningClickToDialUserSetupNotComplete=ユーザのClickToDial情報の設定が完了していない(ユーザカードのClickToDialタブを参照)。 @@ -321,12 +337,10 @@ WarningCreateSubAccounts=警告、補助勘定科目を直接作成すること WarningAvailableOnlyForHTTPSServers=HTTPSで保護された接続を使用している場合にのみ使用できる。 WarningModuleXDisabledSoYouMayMissEventHere=モジュール%sが有効になっていない。そのため、ここでは多くのイベントを見逃す可能性がある。 WarningPaypalPaymentNotCompatibleWithStrict=値「Strict」では、現在はオンライン支払機能が正常動作せず。代わりに「Lax」を使用すること。 +WarningThemeForcedTo=警告、テーマは隠し定数 MAIN_FORCETHEME によって%sに強制された +WarningPagesWillBeDeleted=警告、これにより、ウェブサイトの既存のページ/コンテナもすべて削除される。事前にウェブサイトをエクスポートする必要があり、後で再インポートするためのバックアップとなる。 +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=「請求書の検証」で在庫を減らすオプションが設定されている場合、自動検証は無効になる。 -<<<<<<< HEAD -======= -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> git@github.com:Dolibarr/dolibarr.gitのブランチ「15.0」 # Validate RequireValidValue = 値が無効. RequireAtLeastXString = 少なくとも%s文字(s)が必要 @@ -347,12 +361,3 @@ BadSetupOfField = フィールドの設定エラー BadSetupOfFieldClassNotFoundForValidation = フィールドの設定エラー:検証用のクラスが見つからない BadSetupOfFieldFileNotFound = フィールドの設定が正しくない:含めるファイルが見つからない BadSetupOfFieldFetchNotCallable = フィールドの設定不正エラー:クラスでフェッチを呼び出せない -<<<<<<< HEAD -======= -======= -======= ->>>>>>> git@github.com:Dolibarr/dolibarr.gitのブランチ「15.0」 ->>>>>>> git@github.com:Dolibarr/dolibarr.gitのブランチ「15.0」 -======= ->>>>>>> git@github.com:Dolibarr/dolibarr.gitのブランチ「15.0」 ->>>>>>> git@github.com:Dolibarr/dolibarr.gitのブランチ「15.0」 diff --git a/htdocs/langs/ja_JP/eventorganization.lang b/htdocs/langs/ja_JP/eventorganization.lang index bc313d0ce82..7784a727c7f 100644 --- a/htdocs/langs/ja_JP/eventorganization.lang +++ b/htdocs/langs/ja_JP/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = 出席者を作成/追加するフォ # Object # EventOrganizationConfOrBooth= 会議またはブース +EventOrganizationConfOrBoothes=会議またはブース ManageOrganizeEvent = イベントの構成を管理する ConferenceOrBooth = 会議またはブース ConferenceOrBoothTab = 会議またはブース AmountPaid = 払込金額 DateOfRegistration = 登録日 ConferenceOrBoothAttendee = 会議またはブースの参加者 +ApplicantOrVisitor=申請者または訪問者 +Speaker=スピーカー # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = ここでは、会議に投票したり、イ EvntOrgRegistrationConfHelpMessage = ここでは、イベント中にアニメーション化する新規会議を提案できる。 EvntOrgRegistrationBoothHelpMessage = ここでは、イベント中にブースを申請することができる。 ListOfSuggestedConferences = 提案された会議のリスト -ListOfSuggestedBooths = 提案ブース一覧 -ListOfConferencesOrBooths=イベントプロジェクトの会議やブースのリスト +ListOfSuggestedBooths=おすすめブース +ListOfConferencesOrBooths=イベントプロジェクトのカンファレンスやブース SuggestConference = 新規会議を提案する SuggestBooth = ブースを提案する ViewAndVote = 提案されたイベントを表示して投票する PublicAttendeeSubscriptionGlobalPage = イベントへの登録のための公開リンク PublicAttendeeSubscriptionPage = このイベントのみに登録するための公開リンク MissingOrBadSecureKey = セキュリティキーが無効であるか欠落している -EvntOrgWelcomeMessage = このフォームを使用すると、イベントの新しい参加者として登録できる: %s +EvntOrgWelcomeMessage = このフォームでは、イベントへの新規参加者として登録できる EvntOrgDuration = この会議は%sで始まり、%sで終わる。 ConferenceAttendeeFee = イベント:「 '%s' 開催は%sから%sまで」への会議参加料金。 BoothLocationFee = イベントのブース位置: '%s' で %s から %s まで @@ -130,7 +133,7 @@ LabelOfconference=会議ラベル ConferenceIsNotConfirmed=登録できない。会議はまだ確定されていない DateMustBeBeforeThan=%sは必ず%sの前 DateMustBeAfterThan=%sは必ず%sの後 - +MaxNbOfAttendeesReached=参加者の最大数に達した NewSubscription=登録 OrganizationEventConfRequestWasReceived=会議への提案を受け取った OrganizationEventBoothRequestWasReceived=ブースのご要望をいただいた @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=イベント登録の支払が OrganizationEventBulkMailToAttendees=これは、参加者としてのイベントへの参加を思い出させるものだ。 OrganizationEventBulkMailToSpeakers=これは、スピーカーとしてのイベントへの参加を思い出させるものだ。 OrganizationEventLinkToThirdParty=サードパーティ(顧客、サプライヤー、またはパートナー)へのリンク +OrganizationEvenLabelName=会議またはブースの公開名 NewSuggestionOfBooth=ブース申請 NewSuggestionOfConference=会議申請 @@ -154,7 +158,7 @@ VoteOk = あなたの投票が承認された。 AlreadyVoted = あなたは既にこのイベントに投票している。 VoteError = 投票中にエラーが発生した。もう一度やり直し願う。 -SubscriptionOk = 登録は検証済 +SubscriptionOk=登録が記録された ConfAttendeeSubscriptionConfirmation = イベントへのサブスクリプションの確定 Attendee = 参加者 PaymentConferenceAttendee = 会議参加者の支払 @@ -162,6 +166,7 @@ PaymentBoothLocation = ブースの場所の支払 DeleteConferenceOrBoothAttendee=出席者を削除する RegistrationAndPaymentWereAlreadyRecorder=電子メール%sの登録と支払は既に記録されている EmailAttendee=参加者の電子メール +EmailCompany=法人のメール EmailCompanyForInvoice=法人の電子メール(請求書に対して、参加者の電子メールと異なる場合) ErrorSeveralCompaniesWithEmailContactUs=このメールを使用している会社がいくつか見つかったため、登録を自動的に検証ことはできない。手動検証については、%sまで問い合わせること。 ErrorSeveralCompaniesWithNameContactUs=この名前の会社がいくつか見つかったため、登録を自動的に検証ことはできない。手動検証については、%sまで問い合わせること。 diff --git a/htdocs/langs/ja_JP/exports.lang b/htdocs/langs/ja_JP/exports.lang index bb71ad8bd21..ea382c41a88 100644 --- a/htdocs/langs/ja_JP/exports.lang +++ b/htdocs/langs/ja_JP/exports.lang @@ -18,6 +18,7 @@ ExportableFields=エクスポート可能なフィールド ExportedFields=エクスポートするフィールド ImportModelName=インポート·プロファイル名 ImportModelSaved= %sとして保存されたインポートプロファイル。 +ImportProfile=プロファイルのインポート DatasetToExport=エクスポートするデータセット DatasetToImport=データセットをインポートするファイル ChooseFieldsOrdersAndTitle=フィールドの順序を選択... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=行の種類(0 =製品、1 =サービス) FileWithDataToImport=インポートするデータを持つファイル FileToImport=インポートするソースファイル FileMustHaveOneOfFollowingFormat=インポートするファイルは、次のいずれかの形式である必要がある +DownloadEmptyExampleShort=サンプルファイルをダウンロードする DownloadEmptyExample=インポートできるフィールドの例と情報を含むテンプレートファイルをダウンロードする StarAreMandatory=テンプレートファイルでは、*が付いているすべてのフィールドは必須フィールド ChooseFormatOfFileToImport=%sアイコンをクリックして選択し、インポートファイル形式として使用するファイル形式を選択する... @@ -82,7 +84,7 @@ SelectFormat=このインポートファイル形式を選択する。 RunImportFile=データのインポート NowClickToRunTheImport=インポートシミュレーションの結果を確認すること。エラーを修正して再テストする。
    シミュレーションでエラーが報告されない場合は、データベースへのデータのインポートに進むことができる。 DataLoadedWithId=インポートされたデータには、各データベーステーブルに次のインポートIDの追加フィールドがある: %s このインポートに関連する問題を調査する場合に、データを検索できるようにする。 -ErrorMissingMandatoryValue=フィールド%sのソースファイルの必須データが空 。 +ErrorMissingMandatoryValue=列%sのソースファイルの必須データが空。 TooMuchErrors=エラーのある%s の他のソース行がまだあるが、出力は制限されている。 TooMuchWarnings=警告のある他のソース行はまだ%s が、出力は制限されている。 EmptyLine=空行(破棄される) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=フィールドimport_key = '%s' でフィ NbOfLinesOK=エラーなしで警告なしの行数:%s。 NbOfLinesImported=正常インポートの行数:%s。 DataComeFromNoWhere=挿入する値は、ソース·ファイル内のどこからも来ていない。 -DataComeFromFileFieldNb=挿入する値は、ソースファイル内のフィールド番号%sから来ている。 -DataComeFromIdFoundFromRef=ソースファイルのフィールド番号%s からの値は、使用する親オブジェクトのIDを見つけるために使用される(したがって、オブジェクト %s がデータベースに存在し、ソースファイルからの参照符号を持つ必要がある)。 -DataComeFromIdFoundFromCodeId=ソースファイルのフィールド番号%s からのコードは、使用する親オブジェクトのIDを見つけるために使用される(したがって、ソースファイルのコードはディクショナリ %s に存在する必要がある)。 IDがわかっている場合、コードの代わりにソースファイルでそれを使用することもできる。インポートはどちらの場合でも機能するはず 。 +DataComeFromFileFieldNb=挿入する値は、ソースファイルの列%sから取得される。 +DataComeFromIdFoundFromRef=ソース ファイルから得られる値は、使用する親オブジェクトの ID を見つけるために使用される (したがって、ソース ファイルからの参照を持つオブジェクト %s がデータベースに存在する必要がある)。 +DataComeFromIdFoundFromCodeId=ソース ファイルからのコードの値は、使用する親オブジェクトの ID を見つけるために使用される (したがって、ソース ファイルからのコードは辞書 %s に存在する必要がある)。 ID が分かっている場合は、コードの代わりにソース ファイルでも使用できることに注意すること。インポートはどちらの場合でも機能するはず。 DataIsInsertedInto=ソースファイルからのデータは、次のフィールドに挿入される。 DataIDSourceIsInsertedInto=ソースファイルのデータを使用して検出された親オブジェクトのIDは、次のフィールドに挿入される。 DataCodeIDSourceIsInsertedInto=コードから見つかった親行のIDは、次のフィールドに挿入される。 @@ -132,9 +134,14 @@ FormatControlRule=フォーマット制御ルール ## imports updates KeysToUseForUpdates=既存のデータを更新するために使用するキー(列) NbInsert=挿入された行数:%s +NbInsertSim=挿入予定行数: %s NbUpdate=更新された行数:%s +NbUpdateSim=更新予定行数: %s MultipleRecordFoundWithTheseFilters=これらのフィルタで複数のレコードが見つかった:%s StocksWithBatch=バッチ/シリアル番号のある製品の在庫と場所(倉庫) WarningFirstImportedLine=最初の行(s)は、現在の選択ではインポートされない NotUsedFields=使用されていないデータベースのフィールド SelectImportFieldsSource = 各選択ボックスのフィールドを選択して、インポートするソースファイルフィールドとデータベース内のターゲットフィールドを選択するか、事前定義されたインポートプロファイルを選択する。 +MandatoryTargetFieldsNotMapped=一部の必須ターゲットフィールドがマップされていない +AllTargetMandatoryFieldsAreMapped=必須値を必要とするすべてのターゲットフィールドがマップされる +ResultOfSimulationNoError=シミュレーション結果:エラーなし diff --git a/htdocs/langs/ja_JP/externalsite.lang b/htdocs/langs/ja_JP/externalsite.lang deleted file mode 100644 index 7be2ce5f257..00000000000 --- a/htdocs/langs/ja_JP/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=外部ウェブサイトへのリンクを設定 -ExternalSiteURL=HTMLiframeコンテンツの外部サイトURL -ExternalSiteModuleNotComplete=モジュールExternalSite(外部サイト)が正しく構成されていない。 -ExampleMyMenuEntry=私のメニューエントリ diff --git a/htdocs/langs/ja_JP/ftp.lang b/htdocs/langs/ja_JP/ftp.lang deleted file mode 100644 index a455763d587..00000000000 --- a/htdocs/langs/ja_JP/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTPまたはSFTPクライアントモジュールの設定 -NewFTPClient=新規FTP / FTPS接続の設定 -FTPArea=FTP / FTPSエリア -FTPAreaDesc=この画面には、FTPおよびSFTPサーバのビューが表示される。 -SetupOfFTPClientModuleNotComplete=FTPまたはSFTPクライアントモジュールの設定が不完全なようだ -FTPFeatureNotSupportedByYourPHP=お使いのPHPはFTPまたはSFTP機能をサポートしていない -FailedToConnectToFTPServer=サーバ(サーバ%s、ポート%s)への接続に失敗した -FailedToConnectToFTPServerWithCredentials=定義されたログイン/パスワードでサーバにログインできなかった -FTPFailedToRemoveFile=ファイルの%sを削除できなかった。 -FTPFailedToRemoveDir=ディレクトリ%s の削除に失敗した:権限を確認し、ディレクトリが空であることを確認すること。 -FTPPassiveMode=パッシブモード -ChooseAFTPEntryIntoMenu=メニューからFTP / SFTPサイトを選択する... -FailedToGetFile=ファイル%sの取得に失敗した diff --git a/htdocs/langs/ja_JP/holiday.lang b/htdocs/langs/ja_JP/holiday.lang index dec4b487e60..a95c16584d1 100644 --- a/htdocs/langs/ja_JP/holiday.lang +++ b/htdocs/langs/ja_JP/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM Holidays=有給休暇 +Holiday=有給休暇 CPTitreMenu=有給休暇 MenuReportMonth=月次報告 MenuAddCP=新規休暇申請 +MenuCollectiveAddCP=新規集団休暇申請 NotActiveModCP=このページを表示するには、モジュールLeaveを有効にする必要がある。 AddCP=休暇申請をする DateDebCP=開始日 @@ -56,6 +58,7 @@ ConfirmDeleteCP=この休暇申請の削除を確定するか? ErrorCantDeleteCP=エラー この休暇申請を削除する権利がない。 CantCreateCP=休暇申請をする権利がない。 InvalidValidatorCP=休暇申請の承認者を選択する必要がある。 +InvalidValidator=選択したユーザは承認者ではない。 NoDateDebut=開始日を選択する必要がある。 NoDateFin=終了日を選択する必要がある。 ErrorDureeCP=休暇申請には就業日が含まれていない。 @@ -79,6 +82,8 @@ MotifCP=理由 UserCP=ユーザ ErrorAddEventToUserCP=例外休暇の追加中にエラーが発生した。 AddEventToUserOkCP=特別休暇の追加が完了した。 +ErrorFieldRequiredUserOrGroup=「グループ」フィールドまたは「ユーザ」フィールドに入力する必要がある +fusionGroupsUsers=グループフィールドとユーザフィールドがマージされる MenuLogCP=変更ログを表示する LogCP="Balance of Leave" に加えられた全更新ログ ActionByCP=更新済の原因 @@ -86,6 +91,13 @@ UserUpdateCP=更新済の対象 PrevSoldeCP=以前のバランス NewSoldeCP=ニューバランス alreadyCPexist=この期間は既に休暇申請が行われている。 +UseralreadyCPexist=%sについては、この期間にすでに休暇申請が行われている。 +groups=グループ +users=ユーザ +AutoSendMail=自動郵送 +NewHolidayForGroup=新規集団休暇申請 +SendRequestCollectiveCP=集団休暇申請の送信 +AutoValidationOnCreate=自動検証 FirstDayOfHoliday=休暇申請の開始日 LastDayOfHoliday=休暇申請の終了日 BoxTitleLastLeaveRequests=最新の%s変更された休暇申請 @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%sは、通常、非稼働日。 BlockHolidayIfNegative=残高がマイナスの場合はブロック LeaveRequestCreationBlockedBecauseBalanceIsNegative=残高がマイナスのため、休暇申請作成はブロックされた ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=休暇申請%sは下書きのままとし、取消済や拒否済のものは削除すること +IncreaseHolidays=休日を増やす +HolidayRecordsIncreased= %s 休日の記録が増加 +HolidayRecordIncreased=休日の記録が伸びた +ConfirmMassIncreaseHoliday=休日一括増額 +NumberDayAddMass=選択に追加する日数 +ConfirmMassIncreaseHolidayQuestion=選択済レコード(s) %s の休日を増やしてもよいか? +HolidayQtyNotModified=%s の残りの日数は変更されていません diff --git a/htdocs/langs/ja_JP/hrm.lang b/htdocs/langs/ja_JP/hrm.lang index b3835267ecc..86d9b71ea52 100644 --- a/htdocs/langs/ja_JP/hrm.lang +++ b/htdocs/langs/ja_JP/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=事業所を開く CloseEtablishment=事業所を閉じる # Dictionary DictionaryPublicHolidays=休暇-祝日 -DictionaryDepartment=HRM - 部門一覧 +DictionaryDepartment=HRM-組織単位 DictionaryFunction=HRM - 役職 # Module Employees=従業員s @@ -70,9 +70,9 @@ RequiredSkills=この仕事に必要なスキル UserRank=ユーザランク SkillList=スキルリスト SaveRank=ランクを保存 -knowHow=ノーハウ -HowToBe=なる方法 -knowledge=知識 +TypeKnowHow=ノーハウ +TypeHowToBe=あるべき姿 +TypeKnowledge=知識 AbandonmentComment=放棄コメント DateLastEval=最終評価日 NoEval=この従業員の評価は行われていない @@ -88,3 +88,5 @@ DeleteSkill = スキルが削除された SkillsExtraFields=追加属性(コンピテンシー) JobsExtraFields=追加属性(求人情報) EvaluationsExtraFields=追加属性(評価) +NeedBusinessTravels=出張が必要 +NoDescription=説明なし diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang index 5ae97fb50d2..6983572ab28 100644 --- a/htdocs/langs/ja_JP/install.lang +++ b/htdocs/langs/ja_JP/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=構成ファイル%sは書き込み可能ではな ConfFileIsWritable=コンフィギュレーションファイルの%sは書き込み可能。 ConfFileMustBeAFileNotADir=構成ファイル%s は、ディレクトリーではなくファイルでなければならない。 ConfFileReload=構成ファイルからパラメーターを再ロードする。 -NoReadableConfFileSoStartInstall=構成ファイルconf/ conf.php が存在しないか、再取得できない。インストールプロセスを実行して、初期化を試みる。 +NoReadableConfFileSoStartInstall=構成ファイルconf/ conf.php が存在しないか、読み取り可能ではない。インストールプロセスを実行して、初期化を試みる。 PHPSupportPOSTGETOk=このPHPは、変数POSTとGETをサポートする。 PHPSupportPOSTGETKo=PHP設定が変数POSTやGETをサポートしない可能性がある。 php.iniのパラメーターvariables_orderを確認すること。 PHPSupportSessions=このPHPは、セッションをサポートする。 @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=あなたは、パラメータ '%s' に間違った ErrorFailedToCreateDatabase=データベース %s を作成できなかった。 ErrorFailedToConnectToDatabase=データベース %s への接続に失敗した。 ErrorDatabaseVersionTooLow=データベースのバージョン (%s) が古すぎる。 バージョン %s 以降が必要。 -ErrorPHPVersionTooLow=PHPのバージョンが古すぎる。バージョン%sが必要。 +ErrorPHPVersionTooLow=PHPバージョンが古すぎ。バージョン%s以降が必要。 +ErrorPHPVersionTooHigh=PHPバージョンが高すぎる。バージョン%s以下が必要。 ErrorConnectedButDatabaseNotFound=サーバーへの接続は成功したが、データベース '%s'が見つからない。 ErrorDatabaseAlreadyExists=データベース %s は既に存在する。 IfDatabaseNotExistsGoBackAndUncheckCreate=データベースが存在しない場合は、戻って "データベースの作成" オプションをオンにする。 diff --git a/htdocs/langs/ja_JP/interventions.lang b/htdocs/langs/ja_JP/interventions.lang index 4649c3ccf8f..8ecd381fd0f 100644 --- a/htdocs/langs/ja_JP/interventions.lang +++ b/htdocs/langs/ja_JP/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=出張 %s を開いてよいか? GenerateInter=出張を生成する FichinterNoContractLinked=出張%sは、リンクされた契約なしで作成された。 ErrorFicheinterCompanyDoesNotExist=法人は存在しない。出張は作成されていない。 +NextDateToIntervention=次回出張日付生成 +NoIntervention=介入なし diff --git a/htdocs/langs/ja_JP/knowledgemanagement.lang b/htdocs/langs/ja_JP/knowledgemanagement.lang index 98ea30c8cb9..7a7e4d63afe 100644 --- a/htdocs/langs/ja_JP/knowledgemanagement.lang +++ b/htdocs/langs/ja_JP/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = 項目s KnowledgeRecord = 項目 KnowledgeRecordExtraFields = 項目のエクストラフィールド GroupOfTicket=チケットのグループ -YouCanLinkArticleToATicketCategory=項目をチケットグループにリンクできる(新規チケット認定時に項目が提案されるようになる) +YouCanLinkArticleToATicketCategory=記事をチケット グループにリンクできる(すると、記事はこのグループのすべてのチケットで強調表示される)。 SuggestedForTicketsInGroup=チケットに対して提案されるのは、グループが SetObsolete=廃止として設定 diff --git a/htdocs/langs/ja_JP/languages.lang b/htdocs/langs/ja_JP/languages.lang index e1d982e8391..b099dd63c48 100644 --- a/htdocs/langs/ja_JP/languages.lang +++ b/htdocs/langs/ja_JP/languages.lang @@ -13,6 +13,7 @@ Language_az_AZ=アゼルバイジャン語 Language_bn_BD=ベンガル語 Language_bn_IN=ベンガル語(インド) Language_bg_BG=ブルガリア語 +Language_bo_CN=チベット人 Language_bs_BA=ボスニア語 Language_ca_ES=カタロニア語 Language_cs_CZ=チェコ語 @@ -39,6 +40,7 @@ Language_es_AR=スペイン語 (アルゼンチン) Language_es_BO=スペイン語 (ボリビア) Language_es_CL=スペイン語 (チリ) Language_es_CO=スペイン語 (コロンビア) +Language_es_CR=スペイン語(コスタリカ) Language_es_DO=スペイン語 (ドミニカ共和国) Language_es_EC=スペイン語 (エクアドル) Language_es_GT=スペイン語(グアテマラ) @@ -93,6 +95,7 @@ Language_nl_BE=オランダ語 (ベルギー) Language_nl_NL=オランダ語 Language_pl_PL=ポーランド語 Language_pt_AO=ポルトガル語(アンゴラ) +Language_pt_MZ=ポルトガル語(モザンビーク) Language_pt_BR=ポルトガル語 (ブラジル) Language_pt_PT=ポルトガル語 Language_ro_MD=ルーマニア語 (モルダビア) diff --git a/htdocs/langs/ja_JP/loan.lang b/htdocs/langs/ja_JP/loan.lang index ee614ce26e4..5d93b24f080 100644 --- a/htdocs/langs/ja_JP/loan.lang +++ b/htdocs/langs/ja_JP/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=財政的コミットメント InterestAmount=興味 CapitalRemain=資本は残る TermPaidAllreadyPaid = この期間は既に支払われている -CantUseScheduleWithLoanStartedToPaid = 支払が開始されたローンにスケジューラを使用できない +CantUseScheduleWithLoanStartedToPaid = 支払いが開始されたローンのタイムラインを生成できません CantModifyInterestIfScheduleIsUsed = スケジュールを使用する場合、利息を変更することはできない # Admin ConfigLoan=モジュールローンの構成 -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=デフォルトの勘定科目資本 -LOAN_ACCOUNTING_ACCOUNT_INTEREST=デフォルトの勘定科目利息 -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=デフォルトの勘定科目保険 +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=デフォルトで資本に使用されるアカウント (勘定科目表から) (ローンモジュール) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=デフォルトで利子に使用される口座 (勘定科目表から) (ローン モジュール) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=デフォルトで保険に使用される口座 (勘定科目表から) (ローン モジュール) CreateCalcSchedule=財政的コミットメントを編集する diff --git a/htdocs/langs/ja_JP/mailmanspip.lang b/htdocs/langs/ja_JP/mailmanspip.lang index 33d3598ec21..e9431eaa712 100644 --- a/htdocs/langs/ja_JP/mailmanspip.lang +++ b/htdocs/langs/ja_JP/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=サブスクリプションテストが正常に実行さ MailmanDeletionSuccess=サブスクリプション解除テストが正常に実行された SynchroMailManEnabled=Mailmanの更新が実行される SynchroSpipEnabled=Spipの更新が実行される -DescADHERENT_MAILMAN_ADMINPW=Mailman管理者パスワード +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman 管理者パスワード DescADHERENT_MAILMAN_URL=MailmanサブスクリプションのURL DescADHERENT_MAILMAN_UNSUB_URL=Mailmanのサブスクリプション解除のURL DescADHERENT_MAILMAN_LISTS=新規構成員の自動登録用のリスト(s)(コンマで区切る) diff --git a/htdocs/langs/ja_JP/mails.lang b/htdocs/langs/ja_JP/mails.lang index 86b956761da..d3b4be716b5 100644 --- a/htdocs/langs/ja_JP/mails.lang +++ b/htdocs/langs/ja_JP/mails.lang @@ -178,3 +178,4 @@ IsAnAnswer=最初のメールの回答 RecordCreatedByEmailCollector=電子メールコレクター%sによって電子メール%sから作成されたレコード DefaultBlacklistMailingStatus=新しい連絡先を作成するときのフィールド「%s」のデフォルト値 DefaultStatusEmptyMandatory=空だが必須 +WarningLimitSendByDay=警告:インスタンスのセットアップまたはコントラクトにより、1日あたりのメール数が%sに制限される。さらに送信しようとすると、インスタンスの速度が低下したり、停止したりする可能性があります。より高い割り当てが必要な場合は、サポートに連絡すること。 diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang index 73c7bae47f3..fae378255eb 100644 --- a/htdocs/langs/ja_JP/main.lang +++ b/htdocs/langs/ja_JP/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=cid0jp FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=このメールタイプには適用可能なテンプレー AvailableVariables=適用可能な代替変数s NoTranslation=翻訳無し Translation=翻訳 +Translations=翻訳 CurrentTimeZone=PHP(サーバー)のタイムゾーン EmptySearchString=空文字以外の検索候補を入力 EnterADateCriteria=日付基準を入力する @@ -199,6 +206,7 @@ Valid=有効な Approve=承認する Disapprove=不承認 ReOpen=再オープン +OpenVerb=開く Upload=アップロード ToLink=リンク Select=選択する @@ -216,7 +224,7 @@ UserGroup=ユーザ・グループ UserGroups=ユーザ・グループs NoUserGroupDefined=ユーザグループが定義されていない Password=パスワード -PasswordRetype=パスワードを再入力 +PasswordRetype=パスワードを繰り返す NoteSomeFeaturesAreDisabled=機能/モジュールの多くは、このデモで無効になっていることに注意すること。 Name=名 NameSlashCompany=名前/法人 @@ -345,7 +353,7 @@ KiloBytes=キロバイト MegaBytes=メガバイト GigaBytes=ギガバイト TeraBytes=テラバイト -UserAuthor=によってCeated +UserAuthor=により作成済 UserModif=更新済の原因 b=B。 Kb=KB @@ -481,6 +489,7 @@ ActionsOnContact=この 連絡先/住所 に関する出来事 ActionsOnContract=この契約に関する出来事 ActionsOnMember=この構成員に関する出来事 ActionsOnProduct=この製品に関する出来事 +ActionsOnAsset=この固定資産のイベント NActionsLate=%s遅延 ToDo=すること Completed=完了済 @@ -712,6 +721,7 @@ FeatureDisabled=機能が無効に MoveBox=ウィジェットの移動 Offered=提供 NotEnoughPermissions=このアクションの権限を持っていない +UserNotInHierachy=このアクションは、このユーザのスーパーバイザに予約された SessionName=セッション名 Method=方法 Receive=受け取る @@ -801,6 +811,7 @@ URLPhoto=写真/ロゴのURL SetLinkToAnotherThirdParty=別の第三者へのリンク LinkTo=リンク先 LinkToProposal=提案へのリンク +LinkToExpedition= 遠征へのリンク LinkToOrder=注文へのリンク LinkToInvoice=請求書へのリンク LinkToTemplateInvoice=テンプレート請求書へのリンク @@ -919,6 +930,7 @@ DirectDownloadInternalLink=非公開ダウンロードリンク PrivateDownloadLinkDesc=ログに記録する必要があり、ファイルを表示またはダウンロードするためのアクセス許可が必要 Download=ダウンロード DownloadDocument=ドキュメントをダウンロード +DownloadSignedDocument=署名済みドキュメントをダウンロード ActualizeCurrency=為替レートを更新する Fiscalyear=会計年度 ModuleBuilder=モジュールとアプリケーションビルダー @@ -1044,6 +1056,7 @@ SearchIntoContracts=契約 SearchIntoCustomerShipments=顧客の出荷 SearchIntoExpenseReports=経費報告書s SearchIntoLeaves=離れる +SearchIntoKM=知識ベース SearchIntoTickets=切符売場 SearchIntoCustomerPayments=顧客の支払 SearchIntoVendorPayments=仕入先の支払 @@ -1135,15 +1148,29 @@ EventReminder=イベントリマインダー UpdateForAllLines=全行を更新 OnHold=保留 Civility=敬称 -AffectTag=タグに影響を与える +AffectTag=タグの割り当て +AffectUser=ユーザの割り当て +SetSupervisor=スーパーバイザを設定 CreateExternalUser=外部ユーザを作成する -ConfirmAffectTag=バルクタグの影響 -ConfirmAffectTagQuestion=選択した%sレコード(s)のタグに影響を与えてもよいか? +ConfirmAffectTag=タグの一括割り当て +ConfirmAffectUser=一括ユーザ割り当て +ProjectRole=各プロジェクトに割り当てられた役割 +TasksRole=各プロジェクトの各タスクに割り当てられた役割 +ConfirmSetSupervisor=バルク スーパーバイザ 設定 +ConfirmUpdatePrice=値上げ/値下げ率を選択 +ConfirmAffectTagQuestion=選択したレコード(s) %s にタグを割り当ててもよいか? +ConfirmAffectUserQuestion=選択したレコード(s) %s にユーザを割り当ててもよろしいですか? +ConfirmSetSupervisorQuestion=スーパーバイザを %s 選択したレコード(s)に設定するか? +ConfirmUpdatePriceQuestion=%s 選択したレコード(s)の価格を更新してもよいか? CategTypeNotFound=レコードのタイプのタグタイプが見つからない +Rate=率 +SupervisorNotFound=スーパーバイザーが見つからない CopiedToClipboard=クリップボードにコピー InformationOnLinkToContract=この金額は、契約の全行の合計にすぎない。時間の概念は考慮されていない。 ConfirmCancel=本当にキャンセルしたいか EmailMsgID=メールMsgID +EmailDate=メール日付 +SetToStatus=ステータス %s に設定 SetToEnabled=有効に設定 SetToDisabled=無効に設定 ConfirmMassEnabling=一括有効化の確定 @@ -1172,8 +1199,14 @@ Terminated=解除された AddLineOnPosition=位置に行を追加(空の場合は最後に) ConfirmAllocateCommercial=営業担当者の確認を割り当てる ConfirmAllocateCommercialQuestion=選択した%sレコード(s)を割り当ててもよいか? -CommercialsAffected=影響を受ける営業担当者 -CommercialAffected=影響を受ける営業担当者 -YourMessage=貴方のメッセージ +CommercialsAffected=営業担当者の割り当て +CommercialAffected=営業担当者の割り当て +YourMessage=あなたのメッセージ YourMessageHasBeenReceived=貴方のメッセージは受理済。できるだけ早く回答または連絡する予定。 UrlToCheck=チェックするURL +Automation=オートメーション +CreatedByEmailCollector=メールコレクターによって作成された +CreatedByPublicPortal=公開ポータルから作成 +UserAgent=ユーザエージェント +InternalUser=内部ユーザ +ExternalUser=外部ユーザ diff --git a/htdocs/langs/ja_JP/members.lang b/htdocs/langs/ja_JP/members.lang index b327d984bdb..b01fef82a5a 100644 --- a/htdocs/langs/ja_JP/members.lang +++ b/htdocs/langs/ja_JP/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=別の構成員(名前:%s ErrorUserPermissionAllowsToLinksToItselfOnly=セキュリティ上の理由から、あなたは全ユーザが自分のものでないユーザに構成員をリンクすることができるように編集する権限を付与する必要がある。 SetLinkToUser=Dolibarrユーザへのリンク SetLinkToThirdParty=Dolibarrの取引先にリンクする +MemberCountersArePublic=有効メンバーのカウンターは公開されている MembersCards=構成員向けカードの生成 MembersList=構成員のリスト MembersListToValid=下書きの構成員のリスト(要検証) @@ -34,8 +35,10 @@ DateSubscription=入会日 DateEndSubscription=成員資格終了日 EndSubscription=成員資格終了 SubscriptionId=拠出金 ID -WithoutSubscription=拠出金なし -MemberId=構成員ID +WithoutSubscription=メンバーシップなし +WaitingSubscription=メンバーシップ保留中 +MemberId=メンバーID +MemberRef=メンバー参照 NewMember=新構成員 MemberType=構成員種別 MemberTypeId=構成員種別ID @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=構成員種別が削除できない NewSubscription=新規貢献 NewSubscriptionDesc=このフォームは、財団の新規構成員としての購読を記録するためのもの。更新を希望される方(既に構成員の方)は、財団理事会までメールで%sご連絡ください。 Subscription=拠出金 +AnyAmountWithAdvisedAmount=任意の量、推奨 %s +AnyAmountWithoutAdvisedAmount=任意の量 +CanEditAmountShort=任意の量 +CanEditAmountShortForValues=推奨、任意の量 +MembershipDuration=期間 +GetMembershipButtonLabel=加入 Subscriptions=拠出金 SubscriptionLate=遅い SubscriptionNotReceived=拠出金未受領 @@ -135,7 +144,7 @@ CardContent=あなたの構成員カードの内容 # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=成員資格の要求を受領したことをお知らせする。

    ThisIsContentOfYourMembershipWasValidated=成員資格が下記の情報で承認されたことをお知らせする:

    -ThisIsContentOfYourSubscriptionWasRecorded=新規サブスクリプションが記録されたことをお知らせする。

    +ThisIsContentOfYourSubscriptionWasRecorded=新しいサブスクリプションが記録されたことをお知らせしたい。同封の請求書をご覧あれ。

    ThisIsContentOfSubscriptionReminderEmail=サブスクリプションの有効期限が近づいているか、既に有効期限が切れていることをお知らせする(__MEMBER_LAST_SUBSCRIPTION_DATE_END__)。更新していただければ幸い。

    ThisIsContentOfYourCard=私共の持っているあなたについて情報の概要。何か相違があればご連絡ください。

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=ゲストの自動登録の場合に受信する通知メールの件名 @@ -198,8 +207,10 @@ NbOfSubscriptions=拠出金の本数 AmountOfSubscriptions=拠出金から集計した金額 TurnoverOrBudget=売上高(法人の場合)または予算(基礎用) DefaultAmount=デフォルトの拠出金金額 -CanEditAmount=訪問者はその拠出金額を選択/編集できる -MEMBER_NEWFORM_PAYONLINE=統合されたオンライン決済のページにジャンプ +CanEditAmount=購読金額は無料 +CanEditAmountDetail=訪問者は、メンバーの種類に関係なく、寄付の金額を選択/編集できる +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=オンライン登録後、オンライン決済ページに自動的に切り替わる ByProperties=本質的に MembersStatisticsByProperties=性質別構成員統計 VATToUseForSubscriptions=拠出金に使用するVAT率 @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=構成員のユーザログインを作成すると、 CreateDolibarrThirdPartyDesc=取引先とは法人であり、拠出金ごとに請求書生成することにした場合に請求書で使用される。後から、拠出金を記録するプロセスにて作成できる。 MemberFirstname=メンバの名 MemberLastname=メンバの姓 +MemberCodeDesc=すべてのメンバーに固有のメンバーコード diff --git a/htdocs/langs/ja_JP/modulebuilder.lang b/htdocs/langs/ja_JP/modulebuilder.lang index 63eeacf005a..47e28f19dbc 100644 --- a/htdocs/langs/ja_JP/modulebuilder.lang +++ b/htdocs/langs/ja_JP/modulebuilder.lang @@ -153,3 +153,4 @@ LinkToParentMenu=親メニュー(fk_xxxxmenu) ListOfTabsEntries=タブエントリのリスト TabsDefDesc=モジュールによって提供されるタブをここで定義する TabsDefDescTooltip=モジュール/アプリケーションによって提供されるタブは、配列 $this->tabsにおいてモジュール記述子ファイルに定義される。このファイルを手動で編集できるし、埋め込みエディターの使用もできる。 +BadValueForType=タイプ%sの値が正しくない diff --git a/htdocs/langs/ja_JP/mrp.lang b/htdocs/langs/ja_JP/mrp.lang index 663143a5c52..62c5695ccfd 100644 --- a/htdocs/langs/ja_JP/mrp.lang +++ b/htdocs/langs/ja_JP/mrp.lang @@ -11,8 +11,8 @@ Bom=部品表 BillOfMaterials=部品表 BillOfMaterialsLines=部品表の行 BOMsSetup=モジュールBOMの設定 -ListOfBOMs=部品表のリスト - BOM -ListOfManufacturingOrders=製造注文のリスト +ListOfBOMs=部品表 - BOM +ListOfManufacturingOrders=製造指図 NewBOM=新規部品表 ProductBOMHelp=このBOMで作成(または分解)する製品。
    注:プロパティ「製品目」=「原材料」を持つ製品はこのリストに表示されない。 BOMsNumberingModules=BOM採番テンプレート @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=部品表%sのクローンを作成してよいか ConfirmCloneMo=製造指図%sのクローンを作成してよいか? ManufacturingEfficiency=製造効率 ConsumptionEfficiency=消費効率 +Consumption=消費 ValueOfMeansLoss=0.95の値は、製造中または分解中の平均5%%の損失を意味する。 ValueOfMeansLossForProductProduced=0.95の値は、生産された製品の損失の平均5%%を意味する DeleteBillOfMaterials=部品表を削除 @@ -82,6 +83,7 @@ ProductsToProduce=生産する製品 UnitCost=単価 TotalCost=総費用 BOMTotalCost=消費する各数量と製品のコストに基づいてこのBOMを生成するためのコスト(定義されている場合は原価、定義されている場合は平均加重価格、それ以外の場合は最良の購入価格を使用) +BOMTotalCostService=「ワークステーション」モジュールがアクティブ化され、ワークステーションがデフォルトでライン上に定義されている場合、計算は「数量 (時間に変換) x ワークステーション ahr」、それ以外の場合は「数量 (時間に変換) x サービスの原価」。 GoOnTabProductionToProduceFirst=製造指図を閉じるには、最初に製造を開始しておく必要がある(タブ '%s'を参照)。ただし、キャンセルすることはできる。 ErrorAVirtualProductCantBeUsedIntoABomOrMo=キットをBOMまたはMOに使用することはできない Workstation=ワークステーション @@ -112,3 +114,7 @@ MOAndLines=製造オーダーとライン MoChildGenerate=子Moを生成する ParentMo=親MO MOChild=子MO +BomCantAddChildBom=命名法 %s は、命名法 %s につながるツリーに既に存在する。 +BOMNetNeeds = BOM 正味必要量 +BOMProductsList=BOMの製品 +BOMServicesList=BOMのサービス diff --git a/htdocs/langs/ja_JP/oauth.lang b/htdocs/langs/ja_JP/oauth.lang index ba235145f19..86639c898c3 100644 --- a/htdocs/langs/ja_JP/oauth.lang +++ b/htdocs/langs/ja_JP/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=トークンを生成し、ローカルデータベースに保 NewTokenStored=トークンを受け取り、保存した ToCheckDeleteTokenOnProvider=ここをクリックすると %s OAuth プロバイダによって保存された承認を確認/削除する TokenDeleted=トークンを削除した -RequestAccess=ここをクリックすると、アクセスを要求/更新し、新規トークンを受け取って保存する +RequestAccess=アクセスをリクエスト/更新して新しいトークンを受け取るには、ここをクリックすること DeleteAccess=ここをクリックするとトークンを削除する UseTheFollowingUrlAsRedirectURI=OAuthプロバイダーで認証情報を作成するときは、リダイレクトURIとして次のURLを使用する。 -ListOfSupportedOauthProviders=OAuth2プロバイダーから提供された資格情報を入力する。サポートされているOAuth2プロバイダーのみがここにリストされている。これらのサービスは、OAuth2認証を必要とする他のモジュールによって使用される場合がある。 -OAuthSetupForLogin=OAuth トークンを生成するページ +ListOfSupportedOauthProviders=OAuth2トークンプロバイダーを追加する。次に、OAuthプロバイダーの管理ページに移動してOAuth IDとシークレットを作成/取得し、ここに保存する。完了したら、他のタブをオンにしてトークンを生成する。 +OAuthSetupForLogin=OAuthトークンを管理(生成/削除)するページ SeePreviousTab=前のタブを表示 +OAuthProvider=OAuthプロバイダー OAuthIDSecret=OAuth ID とシークレット TOKEN_REFRESH=現在のトークンを更新 TOKEN_EXPIRED=トークンの有効期限切れ @@ -23,10 +24,13 @@ TOKEN_DELETE=保存されたトークンを削除 OAUTH_GOOGLE_NAME=OAuthGoogleサービス OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuthGoogleシークレット -OAUTH_GOOGLE_DESC=このページに移動し、次に「Credentials」に移動してOAuthクレデンシャルを作成する OAUTH_GITHUB_NAME=OAuthGitHubサービス OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuthGitHubシークレット -OAUTH_GITHUB_DESC=このページに移動し、次に「新しいアプリケーションを登録する」に移動して、OAuthクレデンシャルを作成する +OAUTH_URL_FOR_CREDENTIAL=このページに移動する OAuthIDとシークレットを作成または取得するには OAUTH_STRIPE_TEST_NAME=OAuthストライプテスト OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuthシークレット +OAuthProviderAdded=OAuthプロバイダーが追加された +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=このプロバイダーとラベルのOAuthエントリは既に存在する diff --git a/htdocs/langs/ja_JP/orders.lang b/htdocs/langs/ja_JP/orders.lang index a30aeeae540..79d1c47c9d9 100644 --- a/htdocs/langs/ja_JP/orders.lang +++ b/htdocs/langs/ja_JP/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=この提案にリンクされた注文はすでに開かれているため、他の注文は自動的に作成されませんでした OrdersArea=お客様の注文エリア SuppliersOrdersArea=購買発注エリア OrderCard=注文カード diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index d31e7dfcaa2..9bd0c380831 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=購買発注が承認された Notify_ORDER_SUPPLIER_REFUSE=購買発注が拒否された Notify_PROPAL_VALIDATE=顧客の提案は検証済 Notify_PROPAL_CLOSE_SIGNED=顧客提案は署名された +Notify_PROPAL_CLOSE_SIGNED_WEB=顧客の提案はポータル ページで署名にて終了 Notify_PROPAL_CLOSE_REFUSED=顧客の提案は拒否された +Notify_PROPAL_CLOSE_REFUSED_WEB=顧客の提案はポータル ページで拒否にて終了 Notify_PROPAL_SENTBYMAIL=電子メールによって送信された商取引提案 Notify_WITHDRAW_TRANSMIT=伝送撤退 Notify_WITHDRAW_CREDIT=クレジット撤退 @@ -181,6 +183,7 @@ SizeUnitfoot=フィート SizeUnitpoint=ポイント BugTracker=バグトラッカー SendNewPasswordDesc=このフォームでは、新規パスワードを要求できる。それはあなたのメールアドレスに送られる。
    メール内の確定リンクをクリックすると、変更が有効になる。
    受信トレイを確定すること。 +EnterNewPasswordHere=ここに新しいパスワードを入力してください BackToLoginPage=ログインページに戻る AuthenticationDoesNotAllowSendNewPassword=認証モードは%s
    このモードではDolibarr上でパスワードの表示も変更もできない。
    パスワードを変更したい場合はシステム管理者に連絡すること。 EnableGDLibraryDesc=このオプションを使用するには、PHPインストールでGDライブラリをインストールまたは有効にする。 @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=請求書%sは検証済。 EMailTextInvoicePayed=請求書%sが支払われた。 EMailTextProposalValidated=提案%sは検証済。 EMailTextProposalClosedSigned=提案%sはクローズドサインされた。 +EMailTextProposalClosedSignedWeb=提案 %s はポータル ページで署名にて終了。 +EMailTextProposalClosedRefused=提案 %s は拒否にて終了。 +EMailTextProposalClosedRefusedWeb=提案 %s はポータル ページで拒否にて終了。 EMailTextOrderValidated=注文%sは検証済。 EMailTextOrderApproved=注文%sが承認された。 EMailTextOrderValidatedBy=注文%sは%sによって記録された。 @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = 「%s」を実行してもよいか? ConfirmBtnCommonTitle = アクションを確定する CloseDialog = 閉じる Autofill = オートフィル + +# externalsite +ExternalSiteSetup=外部ウェブサイトへのリンクを設定 +ExternalSiteURL=HTMLiframeコンテンツの外部サイトURL +ExternalSiteModuleNotComplete=モジュールExternalSite(外部サイト)が正しく構成されていない。 +ExampleMyMenuEntry=私のメニューエントリ + +# ftp +FTPClientSetup=FTPまたはSFTPクライアントモジュールの設定 +NewFTPClient=新しい FTP/SFTP 接続の設定 +FTPArea=FTP/SFTPエリア +FTPAreaDesc=この画面には、FTPおよびSFTPサーバのビューが表示される。 +SetupOfFTPClientModuleNotComplete=FTPまたはSFTPクライアントモジュールの設定が不完全なようだ +FTPFeatureNotSupportedByYourPHP=お使いのPHPはFTPまたはSFTP機能をサポートしていない +FailedToConnectToFTPServer=サーバ(サーバ%s、ポート%s)への接続に失敗した +FailedToConnectToFTPServerWithCredentials=定義されたログイン/パスワードでサーバにログインできなかった +FTPFailedToRemoveFile=ファイルの%sを削除できなかった。 +FTPFailedToRemoveDir=ディレクトリ%s の削除に失敗した:権限を確認し、ディレクトリが空であることを確認すること。 +FTPPassiveMode=パッシブモード +ChooseAFTPEntryIntoMenu=メニューからFTP / SFTPサイトを選択する... +FailedToGetFile=ファイル%sの取得に失敗した +ErrorFTPNodisconnect=FTP/SFTP サーバーの切断エラー +FileWasUpload=ファイル %s がアップロードされた +FTPFailedToUploadFile=ファイル %s のアップロードに失敗した。 +AddFolder=フォルダーを作成 +FileWasCreateFolder=フォルダ %s が作成された +FTPFailedToCreateFolder=フォルダー %s の作成に失敗した。 diff --git a/htdocs/langs/ja_JP/partnership.lang b/htdocs/langs/ja_JP/partnership.lang index 6636b1667ee..adb099cec5e 100644 --- a/htdocs/langs/ja_JP/partnership.lang +++ b/htdocs/langs/ja_JP/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=パートナーシップ管理 PartnershipDescription=モジュールパートナーシップ管理 PartnershipDescriptionLong= モジュールパートナーシップ管理 Partnership=パートナーシップ +Partnerships=パートナーシップ AddPartnership=パートナーシップを追加 CancelPartnershipForExpiredMembers=パートナーシップ: サブスクリプションの有効期限が切れた構成員のパートナーシップをキャンセル PartnershipCheckBacklink=パートナーシップ: 参照元のバックリンクを確認する @@ -28,6 +29,7 @@ PartnershipCheckBacklink=パートナーシップ: 参照元のバックリン # Menu # NewPartnership=新規パートナーシップ +NewPartnershipbyWeb= パートナーシップが正常に追加された。 ListOfPartnerships=パートナーシップのリスト # diff --git a/htdocs/langs/ja_JP/paypal.lang b/htdocs/langs/ja_JP/paypal.lang index 00ab548784b..0eb1ff33f66 100644 --- a/htdocs/langs/ja_JP/paypal.lang +++ b/htdocs/langs/ja_JP/paypal.lang @@ -34,3 +34,4 @@ ARollbackWasPerformedOnPostActions=全Postアクションでロールバック ValidationOfPaymentFailed=支払の検証に失敗した CardOwner=カードホルダー PayPalBalance=ペイパルクレジット +OnlineSubscriptionPaymentLine=%s に記録されたオンライン サブスクリプションは、
    %s 経由で支払われた
    送信元IPアドレス: %s
    トランサクションID: %s diff --git a/htdocs/langs/ja_JP/productbatch.lang b/htdocs/langs/ja_JP/productbatch.lang index 25b2e47030a..a382132cbc0 100644 --- a/htdocs/langs/ja_JP/productbatch.lang +++ b/htdocs/langs/ja_JP/productbatch.lang @@ -17,6 +17,7 @@ printBatch=ロット/シリアル: %s printEatby=賞味: %s printSellby=消費: %s printQty=数量: %d +printPlannedWarehouse=倉庫: %s AddDispatchBatchLine=保存期限割当の行を追加 WhenProductBatchModuleOnOptionAreForced=モジュールロット/シリアルがオンの場合、自動在庫減少は強制的に「出荷検証時に実在庫を削減」し、自動増加モードは強制的に「倉庫への手動割当で実在庫を増やす」となり、編集は不可。他のオプションは必要に応じて定義可能。 ProductDoesNotUseBatchSerial=この製品はロット/シリアル番号を不使用 diff --git a/htdocs/langs/ja_JP/products.lang b/htdocs/langs/ja_JP/products.lang index 7835bd59c73..2b96b855f85 100644 --- a/htdocs/langs/ja_JP/products.lang +++ b/htdocs/langs/ja_JP/products.lang @@ -262,7 +262,7 @@ Quarter1=第 1 四半期 Quarter2=第 2 四半期 Quarter3=第 3 四半期 Quarter4=第 4 四半期 -BarCodePrintsheet=バーコードを印刷 +BarCodePrintsheet=バーコードを印刷する PageToGenerateBarCodeSheets=このツールを使用すると、バーコードステッカーのシートを印刷できる。ステッカーページの形式、バーコードの種別、バーコードの値を選択し、ボタン %sをクリック。 NumberOfStickers=ページに印刷するステッカーの数 PrintsheetForOneBarCode=1つのバーコードに複数のステッカーを印刷 diff --git a/htdocs/langs/ja_JP/projects.lang b/htdocs/langs/ja_JP/projects.lang index 9820d8adcd6..049c0045097 100644 --- a/htdocs/langs/ja_JP/projects.lang +++ b/htdocs/langs/ja_JP/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=このビューには、読取りを許可されている全プ TasksDesc=このビューは、全プロジェクトとタスク(あなたのユーザ権限はあなたに全てを表示する権限を付与)を提示する。 AllTaskVisibleButEditIfYouAreAssigned=資格のあるプロジェクトの全タスクが表示されるが、選択したユーザに割り当てられたタスクの時間のみを入力できる。時間を入力する必要がある場合は、タスクを割り当てる。 OnlyYourTaskAreVisible=自分に割り当てられたタスクのみが表示される。タスクの時間を入力する必要があり、タスクがここに表示されていない場合は、タスクを自分に割り当てる必要がある。 +ImportDatasetProjects=プロジェクトまたは機会 ImportDatasetTasks=プロジェクトのタスク ProjectCategories=プロジェクトタグ/カテゴリ NewProject=新規プロジェクト @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=状態別に開いているプロジェク OpportunitiesStatusForProjects=状態別のプロジェクト数をリード ShowProject=プロジェクトを表示する ShowTask=タスクを表示する +SetThirdParty=取引先を設定 SetProject=プロジェクトを設定する。 +OutOfProject=プロジェクト外 NoProject=はプロジェクトが定義されていないまたは所有している NbOfProjects=プロジェクト数 NbOfTasks=タスクの数 @@ -122,7 +125,8 @@ ValidateProject=プロジェクトを検証 ConfirmValidateProject=このプロジェクトを検証してもよいか? CloseAProject=プロジェクトを閉じる ConfirmCloseAProject=このプロジェクトを終了してもよいか? -AlsoCloseAProject=また、プロジェクトを閉じる(それでも本番タスクを実行する必要がある場合は、開いたままにする) +AlsoCloseAProject=プロジェクトも閉じる +AlsoCloseAProjectTooltip=プロダクション タスクを実行する必要がある場合は、開いたままにしておく ReOpenAProject=開いているプロジェクト ConfirmReOpenAProject=このプロジェクトを再開してもよいか? ProjectContact=プロジェクトの連絡先 @@ -165,7 +169,7 @@ OpportunityProbability=リード確率 OpportunityProbabilityShort=鉛の確率。 OpportunityAmount=鉛量 OpportunityAmountShort=鉛量 -OpportunityWeightedAmount=機会加重量 +OpportunityWeightedAmount=確率で重み付けされた機会の量 OpportunityWeightedAmountShort=おっと。加重量 OpportunityAmountAverageShort=平均鉛量 OpportunityAmountWeigthedShort=加重鉛量 @@ -238,7 +242,7 @@ OppStatusPENDING=保留中 OppStatusWON=勝った OppStatusLOST=失われた Budget=予算 -AllowToLinkFromOtherCompany=他の会社のプロジェクトのリンクを許可する

    サポートされる値:
    - 空のままにする: 会社の任意のプロジェクトをリンクできる(デフォルト)
    - "すべて": 任意のプロジェクトをリンクできる、たとえ他の法人のプロジェクトであっても
    - カンマ区切りの取引先ID: これらの取引先の全プロジェクトをリンクできる(例:123,4795,53)
    +AllowToLinkFromOtherCompany=要素を他法人のプロジェクトにリンクすることを許可する

    使用できる値:
    - 空白のまま: 同じ法人の任意のプロジェクトと要素のリンク可能 (デフォルト)
    - "all": 任意のプロジェクトと要素のリンク可能、他法人のプロジェクトも
    - カンマ区切りの取引先IDリスト: 指定された取引先のプロジェクトと要素のリンク可能(例: 123,4795,53)
    LatestProjects=最新の%sプロジェクト LatestModifiedProjects=最新の%s変更プロジェクト OtherFilteredTasks=その他のフィルタリングされたタスク @@ -259,7 +263,7 @@ TimeSpentInvoiced=請求に費やされた時間 TimeSpentForIntervention=に費や​​された時間は TimeSpentForInvoice=に費や​​された時間は OneLinePerUser=ユーザごとに1行 -ServiceToUseOnLines=行で利用するサービス +ServiceToUseOnLines=デフォルトで回線で使用するサービス InvoiceGeneratedFromTimeSpent=請求書%sは、プロジェクトに費やされた時間から生成された InterventionGeneratedFromTimeSpent=出張%sは、プロジェクトに費やされた時間から生成された ProjectBillTimeDescription=プロジェクトのタスクにタイムシートを入力し、タイムシートから請求書(s)を生成してプロジェクトの顧客に請求する予定があるかどうかを確認する(入力したタイムシートに基づかない請求書を作成する予定があるかどうかは確認しないこと)。注:請求書を生成するには、プロジェクトの"費やした時間"タブに移動し、含める行を選択する。 @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=利益は以下を使用して計算される AddPersonToTask=タスクにも追加 UsageOrganizeEvent=使用法:イベント組織 PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=全タスクが完了したら、プロジェクトをクローズとして分類する(100%%の進行状況) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=注:100%%の進行状況にある全タスクを持つ既存のプロジェクトは影響を受けない。手動で閉じる必要がある。このオプションは、開いているプロジェクトにのみ影響する。 +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=注: すべてのタスクの進行状況が 100%% に設定されている既存のプロジェクトは影響を受けない。手動で閉じる必要がある。このオプションは、開いているプロジェクトにのみ影響する。 SelectLinesOfTimeSpentToInvoice=請求されていない時間の行を選択し、「請求書の生成」を一括して請求する ProjectTasksWithoutTimeSpent=プロジェクトタスクで時間をかけないもの FormForNewLeadDesc=連絡のため、以下のフォームへの記入に対して謝意を申し上げる。また、 %sで直接メール送信することも可能である。 @@ -294,3 +298,4 @@ EnablePublicLeadForm=連絡用の公開フォームを有効にする NewLeadbyWeb=メッセージまたはリクエストは記録済。すぐに回答または連絡する予定。 NewLeadForm=新規問合せフォーム LeadFromPublicForm=公開フォームからのオンライン導線 +ExportAccountingReportButtonLabel=レポートを入手 diff --git a/htdocs/langs/ja_JP/propal.lang b/htdocs/langs/ja_JP/propal.lang index 10bdfd74fa9..f2b2cddaefb 100644 --- a/htdocs/langs/ja_JP/propal.lang +++ b/htdocs/langs/ja_JP/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=可用性の遅延 SetAvailability=可用性の遅延を設定 AfterOrder=ご注文後 OtherProposals=他の提案書 + ##### Availability ##### AvailabilityTypeAV_NOW=即時の AvailabilityTypeAV_1W=1週間 AvailabilityTypeAV_2W=2週間 AvailabilityTypeAV_3W=3週間 AvailabilityTypeAV_1M=1ヶ月 -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=代表的なフォローアップの提案書 TypeContact_propal_external_BILLING=顧客の請求書の連絡先 TypeContact_propal_external_CUSTOMER=顧客の連絡先フォローアップ提案書 TypeContact_propal_external_SHIPPING=配達のための顧客の連絡先 + # Document models -DocModelAzurDescription=完全な提案書モデル(シアンテンプレートの古い実装) -DocModelCyanDescription=完全な提案書モデル -DefaultModelPropalCreate=デフォルトのモデル作成 -DefaultModelPropalToBill=ビジネスプロポーザルを閉じるときのデフォルトテンプレート(請求対象) -DefaultModelPropalClosed=ビジネスプロポーザルを閉じるときのデフォルトテンプレート(未請求) -ProposalCustomerSignature=承諾書、会社印、日付、署名 -ProposalsStatisticsSuppliers=ベンダー提案書統計 -CaseFollowedBy=ケースに続いて -SignedOnly=署名のみ -NoSign=署名されていないセット -NoSigned=署名されていないセット CantBeNoSign=署名せずに設定することはできない +CaseFollowedBy=ケースに続いて ConfirmMassNoSignature=一括無署名確定 ConfirmMassNoSignatureQuestion=選択したレコードに署名しないように設定してもよいか? -IsNotADraft=下書きではない -PassedInOpenStatus=検証済 -Sign=署名 -Signed=署名 -ConfirmMassValidation=一括検証確定 ConfirmMassSignature=一括署名確定 -ConfirmMassValidationQuestion=選択したレコードを検証してもよいか? ConfirmMassSignatureQuestion=選択したレコードに署名してもよいか? -IdProposal=プロポーザルID +ConfirmMassValidation=一括検証確定 +ConfirmMassValidationQuestion=選択したレコードを検証してもよいか? +ConfirmRefusePropal=この商取引提案を拒否してもよいか? +ContractSigned=締結済契約 +DefaultModelPropalClosed=ビジネスプロポーザルを閉じるときのデフォルトテンプレート(未請求) +DefaultModelPropalCreate=デフォルトのモデル作成 +DefaultModelPropalToBill=ビジネスプロポーザルを閉じるときのデフォルトテンプレート(請求対象) +DocModelAzurDescription=完全な提案書モデル(シアンテンプレートの古い実装) +DocModelCyanDescription=完全な提案書モデル +FichinterSigned=署名済出張 IdProduct=製品番号 +IdProposal=プロポーザルID +IsNotADraft=下書きではない LineBuyPriceHT=ラインの購入価格税控除後の金額 -SignPropal=提案を受諾 +NoSign=却下 +NoSigned=署名されていないセット +PassedInOpenStatus=検証済 +PropalAlreadyRefused=提案は既に拒否済 +PropalAlreadySigned=提案は受諾済 +PropalRefused=提案は拒否済 +PropalSigned=提案を受諾 +ProposalCustomerSignature=承諾書、会社印、日付、署名 +ProposalsStatisticsSuppliers=ベンダー提案書統計 RefusePropal=提案を拒否する Sign=署名 -NoSign=署名されていないセット -PropalAlreadySigned=提案は受諾済 -PropalAlreadyRefused=提案は既に拒否済 -PropalSigned=提案を受諾 -PropalRefused=提案は拒否済 -ConfirmRefusePropal=この商取引提案を拒否してもよいか? +SignContract=契約締結 +SignFichinter=出張に署名 +SignPropal=提案を受諾 +Signed=署名 +SignedOnly=署名のみ diff --git a/htdocs/langs/ja_JP/receptions.lang b/htdocs/langs/ja_JP/receptions.lang index a098f0598fa..8a53ebb6f15 100644 --- a/htdocs/langs/ja_JP/receptions.lang +++ b/htdocs/langs/ja_JP/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=下書き StatusReceptionValidatedShort=検証済 StatusReceptionProcessedShort=処理 ReceptionSheet=領収シート +ValidateReception=受信確認 ConfirmDeleteReception=この領収を削除してもよいか? ConfirmValidateReception=参照%s を使用して、この領収を検証してもよいか? ConfirmCancelReception=この領収をキャンセルしてもよいか? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=領収の採番モジュール ReceptionsReceiptModel=領収のドキュメントテンプレート NoMorePredefinedProductToDispatch=ディスパッチする事前定義された製品はもうない ReceptionExist=領収がある -ByingPrice=買取価格 ReceptionBackToDraftInDolibarr=領収%sは下書きに戻す ReceptionClassifyClosedInDolibarr=領収%sは閉鎖済指定 ReceptionUnClassifyCloseddInDolibarr=領収%sは再開 diff --git a/htdocs/langs/ja_JP/recruitment.lang b/htdocs/langs/ja_JP/recruitment.lang index b83e7ac69ac..2b0f4f4d3e4 100644 --- a/htdocs/langs/ja_JP/recruitment.lang +++ b/htdocs/langs/ja_JP/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=メール勧誘担当 ToUseAGenericEmail=一般的な電子メールを使用するには。定義されていない場合は、採用担当者のメールが使用される NewCandidature=新規アプリ ListOfCandidatures=アプリケーションのリスト -RequestedRemuneration=要求された報酬 -ProposedRemuneration=提案された報酬 +Remuneration=給料 +RequestedRemuneration=要求された給与 +ProposedRemuneration=提案された給与 ContractProposed=提案された契約 ContractSigned=契約締結 ContractRefused=契約は拒否された RecruitmentCandidature=応用 JobPositions=役職 RecruitmentCandidatures=アプリケーション -InterviewToDo=する面接 +InterviewToDo=フォローする連絡先 AnswerCandidature=アプリケーションの回答 YourCandidature=あなたの申請 YourCandidatureAnswerMessage=お申し込みいただきありがとうございる。
    ..。 diff --git a/htdocs/langs/ja_JP/salaries.lang b/htdocs/langs/ja_JP/salaries.lang index 1080cd93c71..45ed6078948 100644 --- a/htdocs/langs/ja_JP/salaries.lang +++ b/htdocs/langs/ja_JP/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=ユーザの取引先に使用される勘定科目 -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=ユーザカードで定義された専用の勘定科目は、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、ユーザの専用ユーザ勘定科目が定義されていない場合は補助元帳会計のデフォルト値として使用される。 +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=「ユーザ」取引先にデフォルトで使用されるアカウント (勘定科目表から) +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=ユーザカードに定義された専用口座は補助元帳会計のみに使用される。これは、General Ledger に使用され、ユーザの専用ユーザ アカウンティング アカウントが定義されていない場合は Subledger アカウンティングのデフォルト値として使用される。 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=賃金支払のデフォルトの勘定科目 CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=デフォルトでは、給与を作成するときに ”支払合計を自動的に作成" オプションを空のままにする Salary=給料 diff --git a/htdocs/langs/ja_JP/stocks.lang b/htdocs/langs/ja_JP/stocks.lang index 6530ad80408..8ee1e23e0d1 100644 --- a/htdocs/langs/ja_JP/stocks.lang +++ b/htdocs/langs/ja_JP/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=将来の日付 StocksByLotSerial=ロット/シリアル別の在庫 LotSerial=ロット/シリアル LotSerialList=ロット/シリアルのリスト +SubjectToLotSerialOnly=ロット・シリアルのみの対象製品 Movements=移動 ErrorWarehouseRefRequired=倉庫の参照名を指定する必要がある ListOfWarehouses=倉庫のリスト @@ -48,7 +49,7 @@ StockCorrection=在庫修正 CorrectStock=正しい在庫 StockTransfer=在庫移動 TransferStock=在庫移動 -MassStockTransferShort=大量在庫移動 +MassStockTransferShort=一括在庫変更 StockMovement=在庫推移 StockMovements=在庫推移 NumberOfUnit=ユニット数 @@ -146,8 +147,9 @@ Replenishments=補充 NbOfProductBeforePeriod=選択した期間の前に在庫がある製品%sの数量(<%s) NbOfProductAfterPeriod=選択した期間後の在庫の製品%sの数量(> %s) MassMovement=マス移動 -SelectProductInAndOutWareHouse=ソース倉庫とターゲット倉庫、製品と数量を選択し、「%s」をクリックする。必要な全動きに対してこれが完了したら、「%s」をクリックする。 +SelectProductInAndOutWareHouse=ソース倉庫(オプション)、ターゲット倉庫、製品、および数量を選択し、「%s」をクリックする。必要なすべての移動についてこれが完了したら、「%s」をクリックする。 RecordMovement=レコード移動 +RecordMovements=在庫の動きを記録する ReceivingForSameOrder=この注文の領収書 StockMovementRecorded=記録された在庫推移 RuleForStockAvailability=在庫要件に関する規則 @@ -234,7 +236,7 @@ StockIncrease=在庫増加 StockDecrease=在庫減少 InventoryForASpecificWarehouse=特定の倉庫の目録 InventoryForASpecificProduct=特定の製品の目録 -StockIsRequiredToChooseWhichLotToUse=使用するロットを選択するには在庫が必要 +StockIsRequiredToChooseWhichLotToUse=使用するロットを選択するには、既存の在庫が必要です ForceTo=強制する AlwaysShowFullArbo=倉庫リンクのポップアップに倉庫の完全なツリーを表示する(警告:これによりパフォーマンスが大幅に低下する可能性がある) StockAtDatePastDesc=過去の特定の日付の在庫(実際の在庫)をここで表示できる @@ -265,10 +267,53 @@ ProductBarcodeDoesNotExist=バーコード付き製品は存在しない WarehouseId=倉庫ID WarehouseRef=倉庫参照 SaveQtyFirst=在庫推移の作成を依頼する前に、最初に実際の在庫数量を保存する。 +ToStart=スタート InventoryStartedShort=開始済 ErrorOnElementsInventory=次の理由により、操作がキャンセルされた。 ErrorCantFindCodeInInventory=インベントリに次のコードが見つからない QtyWasAddedToTheScannedBarcode=成功 !!数量は、要求された全バーコードに追加された。スキャナーツールを閉じることができる。 -StockChangeDisabled=在庫変更は無効化済 +StockChangeDisabled=在庫変更無効 NoWarehouseDefinedForTerminal=ターミナル用に倉庫が定義されていない ClearQtys=全数量をクリアする +ModuleStockTransferName=高度な在庫移動 +ModuleStockTransferDesc=移動シートの生成による在庫移動の高度な管理 +StockTransferNew=新規在庫移動 +StockTransferList=在庫移動リスト +ConfirmValidateStockTransfer=参照%sを使用して、この在庫移動を検証するか? +ConfirmDestock=移動%sによる在庫の減少 +ConfirmDestockCancel=移動%sで在庫の減少をキャンセルする +DestockAllProduct=在庫の減少 +DestockAllProductCancel=在庫の減少をキャンセルする +ConfirmAddStock=移動%sで在庫を増やす +ConfirmAddStockCancel=移動%sで在庫の増加をキャンセルする +AddStockAllProduct=在庫の増加 +AddStockAllProductCancel=在庫の増加をキャンセルする +DatePrevueDepart=出発予定日 +DateReelleDepart=実際の出発日 +DatePrevueArrivee=到着の予定日 +DateReelleArrivee=実際の到着日 +HelpWarehouseStockTransferSource=このウェアハウスが設定されている場合、それ自体とその子のみがソースウェアハウスとして使用可能になる +HelpWarehouseStockTransferDestination=このウェアハウスが設定されている場合、それ自体とその子のみが宛先ウェアハウスとして使用可能になる +LeadTimeForWarning=アラートまでのリードタイム(日数) +TypeContact_stocktransfer_internal_STFROM=在庫移動の差出人 +TypeContact_stocktransfer_internal_STDEST=在庫移動の受領者 +TypeContact_stocktransfer_internal_STRESP=在庫移転を担当 +StockTransferSheet=在庫移動シート +StockTransferSheetProforma=見積在庫移動シート +StockTransferDecrementation=ソースウェアハウスを減らす +StockTransferIncrementation=仕向地の倉庫を増やす +StockTransferDecrementationCancel=ソース倉庫の減少をキャンセルする +StockTransferIncrementationCancel=仕向倉庫の増設をキャンセル +StockStransferDecremented=ソースウェアハウスが減少した +StockStransferDecrementedCancel=ソース倉庫の減少がキャンセルされた +StockStransferIncremented=閉鎖済 - 在庫は移動済 +StockStransferIncrementedShort=移動済在庫 +StockStransferIncrementedShortCancel=仕向地倉庫の増設キャンセル +StockTransferNoBatchForProduct=製品%sはバッチを使用せず、オンラインでバッチをクリアして再試行する +StockTransferSetup = 在庫移動モジュールの構成 +Settings=設定 +StockTransferSetupPage = 在庫移動モジュールの設定ページ +StockTransferRightRead=在庫移動を読込む +StockTransferRightCreateUpdate=在庫移動の作成/更新 +StockTransferRightDelete=在庫移動を削除 +BatchNotFound=この製品のロット/シリアルが見つからない diff --git a/htdocs/langs/ja_JP/stripe.lang b/htdocs/langs/ja_JP/stripe.lang index 53195f7903f..68a15282dee 100644 --- a/htdocs/langs/ja_JP/stripe.lang +++ b/htdocs/langs/ja_JP/stripe.lang @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=IPNを呼び出すためのStripeWebHookの設定へ PaymentWillBeRecordedForNextPeriod=支払は次の期間に記録される。 ClickHereToTryAgain= ここをクリックして再試行すること... CreationOfPaymentModeMustBeDoneFromStripeInterface=強力な顧客認証ルールにより、カードの作成はStripeバックオフィスから行う必要がある。 Stripeの顧客レコードをオンにするには、ここをクリックすること:%s +TERMINAL_LOCATION=端末の場所(住所) diff --git a/htdocs/langs/ja_JP/suppliers.lang b/htdocs/langs/ja_JP/suppliers.lang index f0550761e92..243169173c7 100644 --- a/htdocs/langs/ja_JP/suppliers.lang +++ b/htdocs/langs/ja_JP/suppliers.lang @@ -4,6 +4,7 @@ SuppliersInvoice=仕入先請求書 SupplierInvoices=仕入先請求書 ShowSupplierInvoice=仕入先の請求書を表示する NewSupplier=新規仕入先 +NewSupplierInvoice = 新規ベンダーの請求書 History=履歴 ListOfSuppliers=仕入先のリスト ShowSupplier=仕入先を表示 diff --git a/htdocs/langs/ja_JP/ticket.lang b/htdocs/langs/ja_JP/ticket.lang index 1613a79a92b..12e00a0866b 100644 --- a/htdocs/langs/ja_JP/ticket.lang +++ b/htdocs/langs/ja_JP/ticket.lang @@ -27,6 +27,7 @@ Permission56003=チケットを削除する Permission56004=チケットを管理する Permission56005=全取引先のチケットを参照すること(外部ユーザには有効ではなく、常に依存している取引先に限定される) +Tickets=切符売場 TicketDictType=チケット-タイプ TicketDictCategory=チケット-グループ TicketDictSeverity=チケット-重大度 @@ -90,8 +91,8 @@ TicketPublicAccess=IDを必要としない公開インターフェイスは、 TicketSetupDictionaries=チケットのタイプ、重大度、および分析コードは辞書から構成できる TicketParamModule=モジュール変数の設定 TicketParamMail=メールの設定 -TicketEmailNotificationFrom=チケットの回答については、電子メールを送信すること -TicketEmailNotificationFromHelp=Dolibarrから送信されたチケット回答の電子メールを送信する +TicketEmailNotificationFrom=回答の通知のための送信者メール +TicketEmailNotificationFromHelp=バックオフィス内で回答が提供されたときに通知メールを送信するために使用する送信者メール。例: noreply@example.com TicketEmailNotificationTo=このメールアドレスにチケット作成を通知する TicketEmailNotificationToHelp=存在する場合、この電子メールアドレスにチケット作成が通知される TicketNewEmailBodyLabel=チケット作成後に送信されるテキストメッセージ @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=チケットを閉じるときに、サードパー TicketWrongContact=提供された連絡先は、現在のチケット連絡先の一部ではない。メールは送信されない。 TicketChooseProductCategory=チケットサポートの製品カテゴリ TicketChooseProductCategoryHelp=チケットサポートの製品カテゴリを選択する。これは、契約をチケットに自動的にリンクするために使用される。 +TicketUseCaptchaCode=チケットの作成時にグラフィカル コード (CAPTCHA) を使用する +TicketUseCaptchaCodeHelp=新しいチケットを作成するときに CAPTCHA 検証を追加する。 # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=チケットが割り当てられました TicketChangeType=タイプを変更する TicketChangeCategory=分析コードを変更する TicketChangeSeverity=重大度の変更 -TicketAddMessage=メッセージを追加 -AddMessage=メッセージを追加 +TicketAddMessage=プライベート メッセージを追加 MessageSuccessfullyAdded=チケット追加 TicketMessageSuccessfullyAdded=メッセージが正常に追加された TicketMessagesList=メッセージリスト @@ -204,8 +206,8 @@ TicketSeverity=重大度 ShowTicket=チケットを見る RelatedTickets=関連チケット TicketAddIntervention=介入を作成する -CloseTicket=チケットを 閉じる|解決 する -AbandonTicket=チケットを放棄する +CloseTicket=閉鎖|解決 +AbandonTicket=放棄する CloseATicket=チケット1つを 閉じる|解決 する ConfirmCloseAticket=チケットの終了を確定する ConfirmAbandonTicket=チケットを終了し、状態を「放棄」に確定するか @@ -219,18 +221,17 @@ SendMessageByEmail=メールでメッセージを送る TicketNewMessage=新規メッセージ ErrorMailRecipientIsEmptyForSendTicketMessage=受信者は空。メール送信なし TicketGoIntoContactTab=「連絡先」タブに移動して選択すること -TicketMessageMailIntro=前書き +TicketMessageMailIntro=メッセージ ヘッダー TicketMessageMailIntroHelp=このテキストはメールの冒頭にのみ追加され、保存されない。 -TicketMessageMailIntroLabelAdmin=全チケット回答の紹介テキスト TicketMessageMailIntroText=こんにちは、
    あなたがフォローしているチケットに新しい回答が追加された。メッセージは次のとおりです:
    TicketMessageMailIntroHelpAdmin=このテキストは、Dolibarrからのチケットに返信するときに、回答の前に挿入される -TicketMessageMailSignature=署名 -TicketMessageMailSignatureHelp=このテキストはメールの最後にのみ追加され、保存されない。 -TicketMessageMailSignatureText=Dolibarr経由で%sによって送信されたメッセージ -TicketMessageMailSignatureLabelAdmin=返信メールの署名 -TicketMessageMailSignatureHelpAdmin=このテキストは、応答メッセージの後に挿入される。 +TicketMessageMailFooter=メッセージフッター +TicketMessageMailFooterHelp=このテキストは、電子メールで送信されたメッセージの最後にのみ追加され、保存されない。 +TicketMessageMailFooterText=Dolibarr 経由で %s によって送信されたメッセージ +TicketMessageMailFooterHelpAdmin=このテキストは、応答メッセージの後に挿入される。 TicketMessageHelp=このテキストのみがチケットカードのメッセージリストに保存される。 TicketMessageSubstitutionReplacedByGenericValues=置換変数は一般的な値に置き換えられる。 +ForEmailMessageWillBeCompletedWith=外部ユーザに送信されたメール メッセージの場合、メッセージを完了するには、 TimeElapsedSince=からの経過時間 TicketTimeToRead=読込むまでの経過時間 TicketTimeElapsedBeforeSince=前後の経過時間 @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=件名が%sの新規メッセージ TicketAssignedToYou=割り当てられたチケット TicketAssignedEmailBody=%sによってチケット#%sが割り当てられました MarkMessageAsPrivate=メッセージを非公開としてマークする +TicketMessageSendEmailHelp=割り当てられたすべての連絡先に電子メールが送信される (内部連絡先だけでなく、オプション「%s」がチェックされている場合を除き、外部連絡先も含まれる)。 TicketMessagePrivateHelp=このメッセージは外部ユーザには表示されない TicketEmailOriginIssuer=チケットの発行元の発行者 InitialMessage=最初のメッセージ @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=次のリンクをクリックすると TicketCloseEmailBodyInfosTrackUrlCustomer=次のリンクをクリックすると、このチケットの履歴を確認できる TicketEmailPleaseDoNotReplyToThisEmail=このメールに直接返信しないこと。リンクを使用して、インターフェースに返信する。 TicketPublicInfoCreateTicket=このフォームを使用すると、管理システムにサポートチケットを記録できる。 -TicketPublicPleaseBeAccuratelyDescribe=問題を正確に説明すること。お客様の要求を正しく特定できるように、可能な限り多くの情報を提供すること。 +TicketPublicPleaseBeAccuratelyDescribe=質問を正確に説明すること。お客様のリクエストを正確に特定できるよう、できるだけ多くの情報を提供すること。 TicketPublicMsgViewLogIn=チケット追跡IDを入力すること TicketTrackId=公開トラッキングID OneOfTicketTrackId=トラッキングIDの1つ diff --git a/htdocs/langs/ja_JP/users.lang b/htdocs/langs/ja_JP/users.lang index 14fd18b1424..addeadd1116 100644 --- a/htdocs/langs/ja_JP/users.lang +++ b/htdocs/langs/ja_JP/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=グループから削除 PasswordChangedAndSentTo=パスワードが変更され%sに送信された。 PasswordChangeRequest= %sのパスワード変更を要求 PasswordChangeRequestSent=%s のパスワード変更を要求するには %s に送信する。 -IfLoginExistPasswordRequestSent=このログインが有効なアカウントである場合、パスワードをリセットするための電子メールが送信されている。 +IfLoginExistPasswordRequestSent=このログインが有効なアカウント (有効な電子メール) である場合、パスワードをリセットするための電子メールが送信されている。 IfEmailExistPasswordRequestSent=このメールが有効なアカウントである場合、パスワードをリセットするためのメールが送信されている。 ConfirmPasswordReset=パスワードのリセットを確定する MenuUsersAndGroups=ユーザとグループ @@ -68,7 +68,6 @@ CreateDolibarrLogin=ユーザを作成する CreateDolibarrThirdParty=取引先を作成する。 LoginAccountDisableInDolibarr=Dolibarrでアカウントを無効にする。 UsePersonalValue=個人的な値を使用 -InternalUser=内部ユーザ ExportDataset_user_1=ユーザとそのプロパティ DomainUser=ドメインユーザ%s Reactivate=再有効化 @@ -128,3 +127,5 @@ DateLastLogin=最終ログイン日 DatePreviousLogin=前回のログイン日 IPLastLogin=IP最終ログイン IPPreviousLogin=IP前回ログイン +ShowAllPerms=すべての権限行を表示 +HideAllPerms=すべての許可行を非表示 diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang index feb099de343..4833b938f31 100644 --- a/htdocs/langs/ja_JP/website.lang +++ b/htdocs/langs/ja_JP/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=コー​​ド +WebsiteName=ウェブサイトの名前 WebsiteSetupDesc=使用したいウェブサイトをここに作成する。次に、メニューのWebサイトに移動して編集する。 DeleteWebsite=ウェブサイトを削除 ConfirmDeleteWebsite=このWebサイトを削除してもよいか?その全ページとコンテンツも削除される。アップロードされたファイル(メディアディレクトリ、ECMモジュールなど)は残る。 @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=HTMLヘッダーの下部に追加(全ページに共通) WEBSITE_ROBOT=ロボットファイル(robots.txt) WEBSITE_HTACCESS=ウェブサイトの.htaccessファイル WEBSITE_MANIFEST_JSON=ウェブサイトmanifest.jsonファイル -WEBSITE_README=README.mdファイル WEBSITE_KEYWORDSDesc=値を区切るにはコンマを使用する -EnterHereLicenseInformation=ここにメタデータまたはライセンス情報を入力して、README.mdファイルに入力する。ウェブサイトをテンプレートとして配布する場合、ファイルは誘惑パッケージに含まれる。 +EnterHereReadmeInformation=ここに ウェブサイトの説明を入力する。 ウェブサイトをテンプレートとして配布する場合、ファイルは temptate パッケージに含まれる。 +EnterHereLicenseInformation=ここにウェブサイトのコードのライセンスを入力すること。 ウェブサイトをテンプレートとして配布する場合、ファイルは temptate パッケージに含まれる。 HtmlHeaderPage=HTMLヘッダー(このページにのみ固有) PageNameAliasHelp=ページの名前またはエイリアス。
    このエイリアスは、WebサイトがWebサーバーの仮想ホスト(Apacke、Nginxなど)から実行されるときにSEOURLを偽造するためにも使用される。このエイリアスを編集するには、ボタン「%s」を使用する。 EditTheWebSiteForACommonHeader=注:全ページにパーソナライズされたヘッダーを定義する場合は、ページ/コンテナーではなくサイトレベルでヘッダーを編集する。 @@ -42,6 +43,8 @@ ViewPageInNewTab=新規タブでページを表示 SetAsHomePage=ホームページに設定する RealURL=実際のURL ViewWebsiteInProduction=ホームURLを使用してWebサイトを表示する +Virtualhost=仮想ホストまたはドメイン名 +VirtualhostDesc=仮想ホストまたはドメインの名前 (例: www.mywebsite.com 、 mybigcompany.net 、...) SetHereVirtualHost=Apache/NGinx/...で使用
    専用の仮想ホストをWEBサーバ (Apache, Nginx, ...) 上に作成し、PHP 使用可で、ルートディレクトリを以下に指定する
    %s ExampleToUseInApacheVirtualHostConfig=Apache仮想ホストの設定で使用する例: YouCanAlsoTestWithPHPS=PHP組み込みサーバーでの使用
    開発環境では、 PHP組み込みWebサーバ (PHP 5.5 が必要) でサイトをテストするのが都合がいいなら、次のコマンドを動かす
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%sページ(s)/コンテナ(s)が再生成された RegenerateWebsiteContent=Webサイトのキャッシュファイルを再生成する AllowedInFrames=フレームで許可 DefineListOfAltLanguagesInWebsiteProperties=使用可能な全言語のリストをWebサイトのプロパティに定義する。 -GenerateSitemaps=ウェブサイトサイトマップファイルを生成する +GenerateSitemaps=ウェブサイトの sitemap.xml ファイルを生成する ConfirmGenerateSitemaps=確定すると、既存のサイトマップファイルが消去される... ConfirmSitemapsCreation=サイトマップの生成を確定する SitemapGenerated=サイトマップファイル%sが生成された @@ -145,3 +148,10 @@ ImportFavicon=ファビコン ErrorFaviconType=ファビコンはpngを必要とする ErrorFaviconSize=ファビコンのサイズは16x16、32x32、または64x64であること FaviconTooltip=画像をアップロードする、画像はpng (16x16, 32x32 or 64x64) であること +NextContainer=次ページ/コンテナ +PreviousContainer=前ページ/コンテナ +WebsiteMustBeDisabled=ウェブサイトのステータスは「%s」であること +WebpageMustBeDisabled=ウェブページのステータスは「%s」であること +SetWebsiteOnlineBefore=ウェブサイトがオフラインの場合、すべてのページがオフラインになる。最初にウェブサイトのステータスを変更する。 +Booking=予約 +Reservation=予約 diff --git a/htdocs/langs/ja_JP/withdrawals.lang b/htdocs/langs/ja_JP/withdrawals.lang index 6fd0ade4287..bfc22407bc9 100644 --- a/htdocs/langs/ja_JP/withdrawals.lang +++ b/htdocs/langs/ja_JP/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=債権譲渡を待っている請求書 AmountToWithdraw=引落とす金額 AmountToTransfer=送金金額 NoInvoiceToWithdraw='%s'の未処理の請求書は待機していない。請求書カードのタブ「%s」に移動して、要求を行う。 -NoSupplierInvoiceToWithdraw=「直接クレジット要求」が開いているサプライヤの請求書は待機していない。請求書カードのタブ「%s」に移動して、要求を行う。 +NoSupplierInvoiceToWithdraw=未完了の「%s」を持つ仕入先請求書なし。請求書カードのタブ「%s」に移動し、リクエストを行う。 ResponsibleUser=ユーザ責任 WithdrawalsSetup=口座振替の設定 CreditTransferSetup=債権譲渡の設定 @@ -42,6 +42,7 @@ CreditTransferStatistics=債権譲渡統計 Rejects=拒否する LastWithdrawalReceipt=最新の%s口座振替の領収書 MakeWithdrawRequest=口座振替の支払要求を行う +MakeWithdrawRequestStripe=Stripe 経由で口座振替の支払いリクエストを行う MakeBankTransferOrder=債権譲渡を要求する WithdrawRequestsDone=%s口座振替の支払要求が記録された BankTransferRequestsDone=%s債権譲渡要求が記録済 @@ -100,8 +101,11 @@ CreditDate=クレジットで WithdrawalFileNotCapable=お住まいの国の引き出しレシートファイルを生成できない%s(お住まいの国はサポートされていない) ShowWithdraw=口座振替の注文を表示 IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ただし、請求書にまだ処理されていない口座振替の支払注文が少なくとも1つある場合、事前の引き出し管理を可能にするために支払済として設定されない。 -DoStandingOrdersBeforePayments=このタブでは、口座振替の支払注文を要求できる。完了したら、メニューの 銀行 -> 口座振替による支払 に移動して、口座振替の注文を生成および管理する。口座振替の注文が締め切られると、請求書の支払は自動的に記録され、残りの支払がゼロの場合は請求書が締め切られる。 -DoCreditTransferBeforePayments=このタブでは、債権譲渡の注文を要求できる。完了したら、メニュー 銀行 -> 債権譲渡による支払 に移動して、債権譲渡注文を生成および管理する。債権譲渡注文がクローズされると、請求書の支払が自動的に記録され、残りの支払がゼロの場合、請求書はクローズされる。 +DoStandingOrdersBeforePayments=このタブでは、口座振替の支払い注文をリクエストできる。完了したら、「銀行->口座振替による支払い」メニューに移動して、口座振替注文ファイルを生成および管理できる。 +DoStandingOrdersBeforePayments2=Stripe などの SEPA 支払い処理業者にリクエストを直接送信することもできる。 +DoStandingOrdersBeforePayments3=口座振替注文がクローズされると、請求書の支払いが自動的に記録され、残りの支払いがゼロの場合、請求書はクローズされる。 +DoCreditTransferBeforePayments=このタブでは、口座振替注文をリクエストできる。完了したら、「銀行 -> 口座振替による支払い」メニューに移動して、口座振替注文ファイルを生成および管理する。 +DoCreditTransferBeforePayments3=口座振替注文がクローズされると、請求書の支払いが自動的に記録され、残りの支払いがゼロの場合、請求書はクローズされる。 WithdrawalFile=デビット注文ファイル CreditTransferFile=債権譲渡ファイル SetToStatusSent=状態「ファイル送信済」に設定 @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=空の金額の口座振替要求を作成でき SepaMandate=SEPA口座振替の委任 SepaMandateShort=SEPAマンデート PleaseReturnMandate=この委任フォームを電子メールで%sに、または郵送でに返送すること。 -SEPALegalText=この委任フォームに署名することにより、(A)%sが銀行に口座からの引き落としを指示し、(B)銀行が%sからの指示に従って口座から引き落としを行うことを承認する。あなたの権利の一部として、あなたはあなたの銀行とのあなたの合意の条件の下であなたの銀行からの払い戻しを受ける権利がある。上記委任事項に関するあなたの権利は、あなたが銀行から入手できる明細書で説明されている。 +SEPALegalText=この委任状に署名することにより、(A) %s とその決済サービス プロバイダが、%s からの指示に従って、(B) 銀行に口座からの引き落としの指示を送信することを承認したことになる。お客様の権利の一部として、銀行との契約条件に基づいて、銀行から返金を受ける権利がある。上記の委任に関するお客様の権利は、銀行から入手できる明細書に説明されている。 CreditorIdentifier=債権者識別子 CreditorName=債権者名 SEPAFillForm=(B)*のマークが付いている全フィールドに入力すること diff --git a/htdocs/langs/ja_JP/workflow.lang b/htdocs/langs/ja_JP/workflow.lang index ca5945992a0..8e5c9ec5a3b 100644 --- a/htdocs/langs/ja_JP/workflow.lang +++ b/htdocs/langs/ja_JP/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=仕入先の請求書 descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=リンクされたソース購買発注を、領収は検証済なら受領したものとして指定する(ただし、全領収での受領済数量が更新する購買発注と同じである場合)。 descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=リンクされたソース購買発注を、領収終了時に受領したものとして指定する(ただし、全領収での受領数量が更新する購買発注と同じである場合)。 # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=リンクされたサプライヤの注文は検証済なら、領収を「請求済」に指定する +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=リンクされた購入請求書が検証された場合 (および請求書の金額がリンクされた受信の合計金額と同じ場合) に、受信を「請求済み」に分類する。 # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=チケットを作成するときは、一致するサードパーティの利用可能な契約をリンクする descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=契約をリンクする場合は、親会社の契約を検索すること @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=チケットが閉じられたら、チ AutomaticCreation=自動作成 AutomaticClassification=自動分類 # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=顧客の請求書は検証済なら、リンクされたソース出荷をクローズとして分類する +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=顧客の請求書が検証されたときに、リンクされたソース出荷をクローズとして分類する (請求書の金額がリンクされた出荷の合計金額と同じ場合)。 AutomaticClosing=自動クローズ AutomaticLinking=自動リンク diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/ka_GE/datapolicy.lang b/htdocs/langs/ka_GE/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ka_GE/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ka_GE/errors.lang b/htdocs/langs/ka_GE/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/ka_GE/errors.lang +++ b/htdocs/langs/ka_GE/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/ka_GE/externalsite.lang b/htdocs/langs/ka_GE/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/ka_GE/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/ka_GE/ftp.lang b/htdocs/langs/ka_GE/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/ka_GE/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/kk_KZ/accountancy.lang b/htdocs/langs/kk_KZ/accountancy.lang index 10f9c9d5d85..4c8e26da44d 100644 --- a/htdocs/langs/kk_KZ/accountancy.lang +++ b/htdocs/langs/kk_KZ/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=ЕЭК -ке кірмейтін елдер CountriesInEECExceptMe=%s қоспағанда, ЕЭК елдері CountriesExceptMe=%s қоспағанда, барлық елдер AccountantFiles=Бастапқы құжаттарды экспорттау -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Журналдарды экспорттау үшін %s - %s мәзір жазбасын пайдаланыңыз. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Бухгалтерлік шот бойынша қарау VueBySubAccountAccounting=Бухгалтерлік қосалқы шот бойынша қарау @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Орнатуда анықталмаған же MainAccountForUsersNotDefined=Орнатуда анықталмаған пайдаланушылардың негізгі бухгалтерлік шоты MainAccountForVatPaymentNotDefined=ҚҚС төлеудің негізгі бухгалтерлік шоты баптауда анықталмаған MainAccountForSubscriptionPaymentNotDefined=Орнатуда анықталмаған абоненттік төлемнің негізгі бухгалтерлік шоты +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Бухгалтерлік есеп аймағы AccountancyAreaDescIntro=Бухгалтерлік есеп модулін пайдалану бірнеше кезеңнен тұрады: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Банк шотындағы операцияны ті ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Журналға эскиз экспортын қосу ACCOUNTANCY_COMBO_FOR_AUX=Қосалқы шот үшін құрама тізімді қосыңыз (егер сізде үшінші тараптар көп болса, баяу болуы мүмкін, құндылықтың бір бөлігін іздеу мүмкіндігін бұзыңыз) ACCOUNTING_DATE_START_BINDING=Бухгалтерлік есепте байланыстыруды және аударуды бастау күнін анықтаңыз. Осы күннен төмен операциялар бухгалтерлік есепке көшірілмейді. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Бухгалтерлік есепті аудару кезінде әдепкі бойынша кезең көрсетілімін таңдаңыз +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Журнал сату -ACCOUNTING_PURCHASE_JOURNAL=Журнал сатып алу -ACCOUNTING_MISCELLANEOUS_JOURNAL=Әр түрлі журнал +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Шығындар туралы есеп журналы -ACCOUNTING_SOCIAL_JOURNAL=Әлеуметтік журнал +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Жаңа журнал бар +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Әлеуметтік журнал ACCOUNTING_RESULT_PROFIT=Нәтижені есепке алу шоты (пайда) ACCOUNTING_RESULT_LOSS=Нәтижелік бухгалтерлік есеп (залал) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Жабу журналы -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Өтпелі банктік аударымның бухгалтерлік шоты +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Өтпелі банктік аударым шоты -ACCOUNTING_ACCOUNT_SUSPENSE=Күтудің бухгалтерлік есебі -DONATION_ACCOUNTINGACCOUNT=Қайырымдылықты тіркеу үшін бухгалтерлік есеп -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Жазылымдарды тіркеу үшін бухгалтерлік есеп +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Клиенттердің депозитін тіркеу үшін әдепкі бойынша бухгалтерлік есеп -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Сатып алынған өнімдер бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=ЕЭК -те сатып алынған өнімдер бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Сатып алынған және ЕЭК -тен тыс импортталған өнімдер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Сатылған өнімдер бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=ЕЭК -те сатылатын өнімдер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=ЕЭК -тен тыс сатылған және экспортталған өнімдер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Сатып алынған қызметтер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер қызмет парағында анықталмаса қолданылады) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=ЕЭК -те сатып алынған қызметтер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер қызмет парағында анықталмаса қолданылады) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Сатып алынған және ЕЭК -тен тыс импортталған қызметтер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер қызмет парағында анықталмаса қолданылады) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Сатылған қызметтер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер қызмет парағында анықталмаса қолданылады) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=ЕЭК -те сатылатын қызметтер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер қызмет парағында анықталмаса қолданылады) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=ЕЭК -тен тыс сатылатын және экспортталатын қызметтер үшін әдепкі бойынша бухгалтерлік есеп шоты (егер қызмет парағында анықталмаса қолданылады) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Құжат түрі Docdate=Күні @@ -211,7 +217,7 @@ Codejournal=Журнал JournalLabel=Журнал белгісі NumPiece=Бөлшектің нөмірі TransactionNumShort=Сан транзакция -AccountingCategory=Таңдамалы топ +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Бас бухгалтерлік есеп бойынша топтастыру GroupBySubAccountAccounting=Қосалқы шот бойынша топтастыру AccountingAccountGroupsDesc=Мұнда сіз бухгалтерлік есептің кейбір топтарын анықтай аласыз. Олар дербестендірілген бухгалтерлік есептер үшін пайдаланылады. @@ -265,13 +271,13 @@ Reconcilable=Келісімді TotalVente=Салыққа дейінгі жалпы айналым TotalMarge=Жалпы сату маржасы -DescVentilCustomer=Өнімдерді есепке алу шотына байланыстырылған (немесе жоқ) тұтынушылардың шот -фактураларының тізімін осы жерден қараңыз -DescVentilMore=Көп жағдайда, егер сіз алдын ала анықталған өнімдерді немесе қызметтерді пайдалансаңыз және сіз өнімге/қызмет картасына шот нөмірін орнатсаңыз, бағдарлама шот -фактураның сызықтары мен шоттар жоспарының бухгалтерлік шоты арасындағы байланыстыруды жасай алады. «%s» батырмасымен бір шертіңіз. Егер есептік жазба өнімнің/қызмет картасында орнатылмаған болса немесе сізде әлі де тіркелгіге байланбаған жолдар болса, « %s » мәзірінен қолмен байланыстыру қажет болады. -DescVentilDoneCustomer=Мұнда клиенттердің шот -фактураларының тізімі мен олардың өнімдерін есепке алу шотын қараңыз -DescVentilTodoCustomer=Өнімдерді есепке алу шотына әлі байланбаған шот -фактуралық жолдарды байланыстырыңыз -ChangeAccount=Келесі бухгалтерлік шотпен таңдалған жолдар үшін өнімнің/қызметтің есеп шотын өзгертіңіз: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Өнімді есепке алу шотына байланған немесе әлі байланбаған жеткізуші шот -фактураларының тізімін мына жерден қараңыз (тек бухгалтерлік есепке аударылмаған жазба ғана көрінеді) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Мұнда жеткізушілердің шот -фактураларының тізімі мен олардың бухгалтерлік шоты бойынша танысыңыз DescVentilTodoExpenseReport=Төлемді есепке алу шотымен байланыстырылмаған шығыстар туралы есеп беру жолдарын байланыстырыңыз DescVentilExpenseReport=Бұл жерде төлемді есепке алу шотына байланысты (немесе жоқ) шығыстар туралы есеп беру жолдарының тізімін қараңыз @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Егер сіз бухгалтерлік есепт DescVentilDoneExpenseReport=Мұнда шығыстар туралы есептер мен олардың есепке алу шоттарының тізімін қараңыз Closure=Жылдық жабылу -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Жазуды, жазуды және жоюды кез келген өзгертуге немесе жоюға тыйым салынады. Жаттығуға арналған барлық жазбалар тексерілуі керек, әйтпесе жабу мүмкін болмайды ValidateHistory=Автоматты түрде байлау AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Қате, сіз бұл есептік жазбаны жоя алмайсыз, себебі ол пайдаланылады +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Тепе -теңдік FicheVentilation=Міндетті карта GeneralLedgerIsWritten=Мәмілелер кітапта жазылады GeneralLedgerSomeRecordWasNotRecorded=Кейбір транзакциялар журналға енгізілмеді. Егер басқа қате туралы хабар болмаса, бұл олардың журналға енгізілгендіктен болар. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Бухгалтерлік есепке жатпайтын өнімдердің тізімі +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Байланысты өзгерту Accounted=Бухгалтерлік кітапта есепке алынды NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Әр түрлі операциялар AccountingJournalType2=Сату AccountingJournalType3=Сатып алулар AccountingJournalType4=Банк -AccountingJournalType5=Шығындар есебі +AccountingJournalType5=Expense reports AccountingJournalType8=Түгендеу AccountingJournalType9=Жаңасы бар +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Бұл журнал қазірдің өзінде қолданылады AccountingAccountForSalesTaxAreDefinedInto=Ескерту: Сатудан алынатын салықтың бухгалтерлік шоты %s - %s мәзірінде анықталған. NumberOfAccountancyEntries=Жазбалар саны @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Қозғалыс саны ACCOUNTING_DISABLE_BINDING_ON_SALES=Сату кезінде бухгалтерлік есепте байланыстыруды және аударуды өшіру (клиенттердің шот -фактуралары бухгалтерлік есепке алынбайды) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Сатып алу кезінде бухгалтерлік есепте байланыстыруды және аударуды өшіру (жеткізушілердің шот -фактуралары бухгалтерлік есепке алынбайды) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Бухгалтерлік есепте міндеттемелер мен аударымдарды өшіру (шығындар туралы есептер бухгалтерлік есепке алынбайды) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Бухгалтерлік экспорттық файлдың генерациясын растау? ExportDraftJournal=Журналдың жобасын экспорттау @@ -398,7 +407,11 @@ Calculated=Есептелген Formula=Формула ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Бухгалтерлік жазбалар @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Көп валюталық код (Idevise) DateExport=Күнді экспорттау WarningReportNotReliable=Ескерту, бұл есеп кітапқа негізделмеген, сондықтан кітапта қолмен өзгертілген транзакцияны қамтымайды. Егер сіздің журналистика жаңартылған болса, онда бухгалтерлік есеп дәлірек болады. ExpenseReportJournal=Шығындар туралы есеп журналы -InventoryJournal=Түгендеу журналы NAccounts=%s есептік жазбалары diff --git a/htdocs/langs/kk_KZ/admin.lang b/htdocs/langs/kk_KZ/admin.lang index 93a8584ea9c..74043145b74 100644 --- a/htdocs/langs/kk_KZ/admin.lang +++ b/htdocs/langs/kk_KZ/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Клиенттерді салыстыру WarningModuleNotActive= %s модулі қосылуы керек WarningOnlyPermissionOfActivatedModules=Мұнда тек белсендірілген модульдерге қатысты рұқсаттар көрсетіледі. Басқа модульдерді Home-> Setup-> Modules бетінде іске қосуға болады. DolibarrSetup=Dolibarr орнату немесе жаңарту -InternalUser=Ішкі қолданушы -ExternalUser=Сыртқы қолданушы InternalUsers=Ішкі пайдаланушылар ExternalUsers=Сыртқы пайдаланушылар UserInterface=Қолданушы интерфейсі @@ -109,7 +107,7 @@ NextValueForReplacements=Келесі мән (ауыстырулар) MustBeLowerThanPHPLimit=Ескерту: сіздің PHP конфигурациясы қазіргі уақытта %s %s жүктеуге арналған ең үлкен файл өлшемін шектейді, бұл параметрдің мәніне қарамастан. NoMaxSizeByPHPLimit=Ескерту: PHP конфигурациясында шектеу қойылмайды MaxSizeForUploadedFiles=Жүктелген файлдардың максималды өлшемі (0 жүктеуге тыйым салу үшін) -UseCaptchaCode=Кіру бетінде графикалық кодты (CAPTCHA) пайдаланыңыз +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Антивирустық команданың толық жолы AntiVirusCommandExample=ClamAv Daemon үлгісі (clamav-демон қажет):/usr/bin/clamdscan
    ClamWin мысалы (өте баяу): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Пәрмен жолында қосымша параметрлер @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS хост (php.ini әдепкі мәні: %s MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS порты (Unix тәрізді жүйелерде PHP-де анықталмаған) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS хост (Unix тәрізді жүйелерде PHP-ге анықталмаған) MAIN_MAIL_EMAIL_FROM=Автоматты электрондық хаттар үшін жіберуші электрондық поштасы (php.ini әдепкі мәні: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Қате үшін пайдаланылатын электрондық пошта электрондық поштаны қайтарады (жіберілген хаттардағы «Қателер-Кім» өрістері) MAIN_MAIL_AUTOCOPY_TO= Барлық жіберілген электрондық пошталарды (Bcc) көшіріңіз MAIN_DISABLE_ALL_MAILS=Барлық электрондық поштаны жіберуді өшіру (тестілеу немесе демонстрация үшін) @@ -439,8 +438,10 @@ Unique=Бірегей Boolean=Логикалық (бір құсбелгі) ExtrafieldPhone = Телефон ExtrafieldPrice = Бағасы +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Электрондық пошта ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Тізімді таңдаңыз ExtrafieldSelectList = Кестеден таңдаңыз ExtrafieldSeparator=Бөлгіш (өріс емес) @@ -477,7 +478,7 @@ InstalledInto=%s каталогына орнатылды BarcodeInitForThirdparties=Үшінші тараптар үшін жаппай штрих-код BarcodeInitForProductsOrServices=Штрих -кодтың жаппай басталуы немесе өнімдерге немесе қызметтерге қалпына келтіру CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Келесі %s бос жазбалардың бастапқы мәні +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Штрих -кодтың барлық ағымдағы мәндерін өшіріңіз ConfirmEraseAllCurrentBarCode=Штрих -кодтың барлық ағымдағы мәндерін шынымен өшіргіңіз келе ме? AllBarcodeReset=Штрих -кодтың барлық мәндері жойылды @@ -501,10 +502,11 @@ WarningPHPMail=ЕСКЕРТУ: Қолданбадан электрондық х WarningPHPMailA=- Электрондық пошта қызметі провайдерінің серверін пайдалану сіздің электрондық поштаңыздың сенімділігін арттырады, сондықтан ол SPAM ретінде белгіленбестен жеткізу мүмкіндігін арттырады. WarningPHPMailB=- Кейбір электрондық пошта қызметтерін жеткізушілер (Yahoo сияқты) сізге өз серверінен басқа серверден электрондық хат жіберуге рұқсат бермейді. Сіздің қазіргі қондырғыңыз электрондық пошта провайдерінің сервері емес, электрондық поштаны жіберу үшін қосымшаның серверін қолданады, сондықтан кейбір алушылар (шектеулі DMARC протоколымен үйлесімді) сіздің электрондық пошта провайдеріңізден сіздің электрондық поштаңызды және кейбір электрондық пошта провайдерлерін қабылдай алатынын сұрайды. (Yahoo сияқты) «жоқ» деп жауап беруі мүмкін, себебі сервер олардікі емес, сондықтан сіздің жіберген хаттарыңыздың аз бөлігі жеткізілімге қабылданбауы мүмкін (электрондық пошта провайдерінің жіберу квотасына да абай болыңыз). WarningPHPMailC=- Электрондық поштаны жіберу үшін өзіңіздің электрондық пошта қызмет провайдерінің SMTP серверін пайдалану да қызықты, сондықтан қосымшадан жіберілген барлық хаттар сіздің пошта жәшігіңіздің «Жіберілген» каталогына сақталады. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Егер сіздің электрондық пошта SMTP провайдеріңізге электрондық пошта клиентін кейбір IP мекенжайларымен шектеу қажет болса (өте сирек), бұл сіздің ERP CRM қосымшасына арналған пошта пайдаланушы агентінің (MUA) IP мекенжайы: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Сипаттаманы көрсету үшін басыңыз DependsOn=Бұл модульге модульдер қажет RequiredBy=Бұл модуль модульдер үшін қажет @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Мысал:
    Жаңа үшінші та PageUrlForDefaultValuesList=
    Мысал:
    Үшінші жақтарды тізімдейтін бет үшін %s .
    Қолданбалы каталогқа орнатылған сыртқы модульдердің URL мекен -жайы үшін «custom/» қосылмайды, сондықтан mymodule/mypagelist.php сияқты жолды пайдаланыңыз, бірақ custom/mymodule/mypagelist.php емес.
    Егер url параметрі бар болса ғана әдепкі мәнді алғыңыз келсе, %s пайдалануға болады AlsoDefaultValuesAreEffectiveForActionCreate=Сондай -ақ, пішін жасау үшін әдепкі мәндерді қайта жазу дұрыс жасалған беттер үшін ғана жұмыс істейтінін ескеріңіз (сондықтан әрекет = жасау немесе ұсыну параметрімен ...) EnableDefaultValues=Әдепкі мәндерді теңшеуді қосыңыз -EnableOverwriteTranslation=Қайта жазылған аударманы пайдалануды қосу +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Осы код бар кілт үшін аударма табылды. Бұл мәнді өзгерту үшін оны Home-Setup-аудармасынан өңдеу керек. WarningSettingSortOrder=Ескерту, әдепкі сұрыптау тәртібін орнату, егер өріс белгісіз өріс болса, тізім бетіне өту кезінде техникалық қатеге әкелуі мүмкін. Егер сізде осындай қате болса, әдепкі сұрыптау тәртібін жою және әдепкі әрекетті қалпына келтіру үшін осы бетке оралыңыз. Field=Өріс @@ -645,9 +647,9 @@ Module2400Name=Оқиғалар/Күн тәртібі Module2400Desc=Оқиғаларды бақылау. Бақылау мақсатында автоматты оқиғаларды тіркеңіз немесе қолмен оқиғалар мен кездесулерді жазыңыз. Бұл клиенттермен жақсы қарым -қатынасты басқарудың негізгі модулі. Module2500Name=DMS / ECM Module2500Desc=Құжаттарды басқару жүйесі / электронды мазмұнды басқару. Жасалған немесе сақталған құжаттарды автоматты түрде ұйымдастыру. Қажет кезде оларды бөлісіңіз. -Module2600Name=API/Web Services (SOAP сервері) +Module2600Name=API / Web services (SOAP server) Module2600Desc=API қызметтерін ұсынатын Dolibarr SOAP серверін қосыңыз -Module2610Name=API/Web қызметтері (REST сервері) +Module2610Name=API / Web services (REST server) Module2610Desc=API қызметтерін ұсынатын Dolibarr REST серверін қосыңыз Module2660Name=WebServices -ке қоңырау шалыңыз (SOAP клиенті) Module2660Desc=Dolibarr веб -қызметтері клиентін қосыңыз (Деректерді/сұрауларды сыртқы серверлерге жіберу үшін қолдануға болады. Қазіргі уақытта тек сатып алуға тапсырыстарға қолдау көрсетіледі.) @@ -698,6 +700,7 @@ Module62000Name=Инкотермс Module62000Desc=Incoterms басқару үшін мүмкіндіктерді қосыңыз Module63000Name=Ресурстар Module63000Desc=Іс -шараларға бөлу үшін ресурстарды (принтерлер, машиналар, бөлмелер, ...) басқарыңыз +Module94160Name=Receptions Permission11=Клиенттердің шот -фактураларын оқыңыз Permission12=Тұтынушылардың шот -фактураларын жасаңыз/өзгертіңіз Permission13=Тұтынушылардың шот -фактураларын жарамсыз ету @@ -714,6 +717,7 @@ Permission27=Коммерциялық ұсыныстарды жою Permission28=Коммерциялық ұсыныстарды экспорттау Permission31=Өнімдерді оқу Permission32=Өнімдерді жасаңыз/өзгертіңіз +Permission33=Read prices products Permission34=Өнімдерді жою Permission36=Жасырын өнімдерді қараңыз/басқарыңыз Permission38=Өнімдерді экспорттау @@ -739,6 +743,7 @@ Permission79=Жазылымдарды жасаңыз/өзгертіңіз Permission81=Клиенттердің тапсырыстарын оқыңыз Permission82=Тұтынушылардың тапсырыстарын жасаңыз/өзгертіңіз Permission84=Клиенттердің тапсырыстарын тексеру +Permission85=Generate the documents sales orders Permission86=Клиенттерге тапсырыс жіберіңіз Permission87=Клиенттердің тапсырыстарын жабыңыз Permission88=Клиенттердің тапсырыстарын болдырмаңыз @@ -840,9 +845,9 @@ Permission286=Контактілерді экспорттау Permission291=Тарифтерді оқыңыз Permission292=Тарифтерге рұқсат беріңіз Permission293=Клиенттердің тарифтерін өзгерту -Permission300=Штрих -кодтарды оқу -Permission301=Штрихкодтарды жасаңыз/өзгертіңіз -Permission302=Штрих -кодтарды жою +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Қызметтерді оқу Permission312=Келісімшартқа қызмет көрсетуді/жазылуды тағайындаңыз Permission331=Бетбелгілерді оқу @@ -874,6 +879,7 @@ Permission525=Несие калькуляторына қол жеткізу Permission527=Экспорттық несиелер Permission531=Қызметтерді оқу Permission532=Қызметтерді құру/өзгерту +Permission533=Read prices services Permission534=Қызметтерді жою Permission536=Жасырын қызметтерді қараңыз/басқарыңыз Permission538=Экспорттық қызметтер @@ -968,13 +974,14 @@ Permission3301=Жаңа модульдер құру Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Сайт мазмұнын оқыңыз Permission10002=Веб -сайт мазмұнын жасау/өзгерту (html және JavaScript мазмұны) Permission10003=Веб -сайт мазмұнын жасаңыз/өзгертіңіз (динамикалық PHP коды). Қауіпті, шектеулі әзірлеушілерге сақталуы керек. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Бірлік түрі SetupSaved=Орнату сақталды SetupNotSaved=Орнату сақталмады +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Модульдер тізіміне оралу BackToDictionaryList=Сөздіктер тізіміне қайта келу TypeOfRevenueStamp=Салық белгісінің түрі @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Конфигурация константасының мән ConstantIsOn=%s опциясы қосулы NbOfDays=Күндер саны AtEndOfMonth=Айдың соңында -CurrentNext=Ағымдағы/Келесі +CurrentNext=A given day in month Offset=Офсет AlwaysActive=Әрқашан белсенді Upgrade=Жаңалау @@ -1235,11 +1246,13 @@ BrowserName=Браузер аты BrowserOS=Браузер ОЖ ListOfSecurityEvents=Dolibarr қауіпсіздік оқиғаларының тізімі SecurityEventsPurged=Қауіпсіздік шаралары жойылды +TrackableSecurityEvents=Trackable security events LogEventDesc=Белгілі бір қауіпсіздік оқиғалары үшін тіркеуді қосыңыз. Әкімшілер журналды %s - %s мәзірі арқылы жүргізеді. Ескерту, бұл мүмкіндік дерекқорда үлкен көлемдегі деректерді құра алады. AreaForAdminOnly=Орнату параметрлерін тек әкімші пайдаланушылары орната алады. SystemInfoDesc=Жүйелік ақпарат - бұл тек оқу режимінде алатын және тек әкімшілерге көрінетін әр түрлі техникалық ақпарат. SystemAreaForAdminOnly=Бұл аймақ тек әкімші пайдаланушыларға қол жетімді. Dolibarr пайдаланушы рұқсаттары бұл шектеуді өзгерте алмайды. CompanyFundationDesc=Сіздің компанияңыз/ұйымыңыз туралы ақпаратты өңдеңіз. Аяқтағаннан кейін беттің төменгі жағындағы «%s» түймесін басыңыз. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Егер сізде сыртқы бухгалтер/бухгалтер болса, сіз мұнда ақпаратты өңдей аласыз. AccountantFileNumber=Бухгалтерлік код DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=PHP -де SSL функциялары жоқ DownloadMoreSkins=Жүктеу үшін қосымша мұқабалар SimpleNumRefModelDesc=Анықтамалық нөмірді %syymm-nnnn форматында қайтарады, мұнда yy-жыл, мм-ай және nnnn-қалпына келтірусіз автоматты түрде қосылатын нөмір. +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Анықтамалық нөмірді %s-nnnn форматында қайтарады, мұнда nnnn-автоматты түрде ұлғайтылатын реттелмейтін нөмір. ShowProfIdInAddress=Адрестері бар кәсіби идентификаторды көрсетіңіз ShowVATIntaInAddress=Қауымдастық ішіндегі ҚҚС нөмірін жасыру @@ -1376,7 +1391,7 @@ GetBarCode=Штрих -код алыңыз NumberingModules=Нөмірлеу модельдері DocumentModules=Құжат үлгілері ##### Module password generation -PasswordGenerationStandard=Ішкі Dolibarr алгоритміне сәйкес құрылған құпия сөзді қайтарыңыз: %s символдары ортақ сандар мен кіші әріптердегі таңбаларды қамтиды. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Жасалған құпия сөзді ұсынбаңыз. Құпия сөзді қолмен енгізу керек. PasswordGenerationPerso=Жеке конфигурацияға сәйкес құпия сөзді қайтарыңыз. SetupPerso=Сіздің конфигурацияңызға сәйкес @@ -1430,6 +1445,10 @@ SuppliersPayment=Сатушы төлемдері SupplierPaymentSetup=Сатушы төлемдерін реттеу InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Коммерциялық ұсыныстар модулін орнату ProposalsNumberingModules=Коммерциялық ұсыныстарды нөмірлеу модельдері @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Шарт жобаларында су белгіс ##### Members ##### MembersSetup=Мүшелер модулін баптау MemberMainOptions=Негізгі опциялар +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Әр мүшеге кіруді басқарыңыз AdherentMailRequired=Жаңа мүше құру үшін электрондық пошта қажет MemberSendInformationByMailByDefault=Мүшелерге пошталық растауды жіберу құсбелгісі (тексеру немесе жаңа жазылым) әдепкі бойынша қосулы MemberCreateAnExternalUserForSubscriptionValidated=Тексерілген әрбір жаңа мүше жазылымы үшін сыртқы пайдаланушы логинін жасаңыз -VisitorCanChooseItsPaymentMode=Келушілер төлемнің қол жетімді режимдерін таңдай алады +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL= электрондық поштасы арқылы мерзімі өткен жазылымдарды автоматты түрде еске салуды қосыңыз. Ескертпе: %s модулі қосылып, еске салғыштарды жіберу үшін дұрыс орнатылуы керек. MembersDocModules=Мүше жазбасынан жасалған құжаттарға арналған құжат үлгілері ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Қосымша редакторды іске қосыңыз: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG өнімдерінің егжей -тегжейлі желілерін құру/шығару барлық субъектілер үшін (ұсыныстар, тапсырыстар, шот -фактуралар және т.б.). Ескерту: Бұл жағдайда бұл параметрді қолдану қатаң ұсынылмайды, себебі ол PDF файлдарын құру кезінде арнайы таңбалар мен беттерді пішімдеуде қиындықтар тудыруы мүмкін. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG-тің жаппай электрондық поштаны жіберуге арналған құралы/басылымы (Құралдар-> электрондық пошта) FCKeditorForUserSignature=WYSIWIG құру/қолданушы қолтаңбасы FCKeditorForMail=Барлық пошта үшін WYSIWIG құру/шығарылым (Құралдар-> электрондық поштаны қоспағанда) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Мәзір өңдегіші жаңа мәзірді көрсе DetailMenuModule=Егер мәзір енгізу модульден болса, модуль атауы DetailType=Мәзір түрі (жоғарғы немесе сол жақ) DetailTitre=Мәзір жапсырмасы немесе аудармаға арналған жапсырма коды -DetailUrl=Мәзір жіберетін URL (абсолютті URL сілтемесі немесе http: // бар сыртқы сілтеме) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Кіру немесе көрсетпеу шарты DetailRight=Рұқсат етілмеген сұр мәзірлерді көрсету шарты DetailLangs=Белгі кодының аудармасы үшін файлдың аты @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POS акцияларының төме CashDeskYouDidNotDisableStockDecease=Сіз сату нүктесінен сату кезінде акцияның төмендеуін өшірмедіңіз. Сондықтан қойма қажет. CashDeskForceDecreaseStockLabel=Пакеттік өнімдердің қорының төмендеуі мәжбүр болды. CashDeskForceDecreaseStockDesc=Алдымен тамақтану мен сатудың ең ескі күндеріне дейін азайтыңыз. -CashDeskReaderKeyCodeForEnter=Штрихкод оқу құралында анықталған «Enter» кілт коды (Мысал: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Бетбелгі модулін орнату BookmarkDesc=Бұл модуль бетбелгілерді басқаруға мүмкіндік береді. Сонымен қатар, сіз сол жақ мәзірдегі кез келген Dolibarr беттеріне немесе сыртқы веб -сайттарға таңбашалар қоса аласыз. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Сатушы шот -фактураларды н IfSetToYesDontForgetPermission=Егер нөлдік емес мәнге орнатылса, екінші бекітуге рұқсат етілген топтарға немесе пайдаланушыларға рұқсат беруді ұмытпаңыз ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind модулін орнату -PathToGeoIPMaxmindCountryDataFile=Maxmind ip -ден елге аударылған файлға жол.
    Мысалдар:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat a0342fccfr/ip2/go19/z0 +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Сіздің IP -ге арналған деректер файлы PHP оқитын каталогта болуы керек екенін ескеріңіз (PHP open_basedir параметрлерін және файлдық жүйенің рұқсаттарын тексеріңіз). YouCanDownloadFreeDatFileTo= тегін демо нұсқасын Maxmind GeoIP ел файлының %s сайтынан жүктей аласыз. YouCanDownloadAdvancedDatFileTo= толық нұсқасын %s мекенжайы бойынша Maxmind GeoIP ел файлының жаңартуларымен бірге жүктеуге болады. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Деректер қоқыс файлын құру шебері BackupZipWizard=Құжаттар каталогының архивін құру шебері SomethingMakeInstallFromWebNotPossible=Келесі себептерге байланысты веб -интерфейстен сыртқы модульді орнату мүмкін емес: SomethingMakeInstallFromWebNotPossible2=Осы себепті, мұнда сипатталған жаңарту процесі тек артықшылықты пайдаланушы орындай алатын қолмен жасалатын процесс. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Әкімші сыртқы модульді қолданбадан орнатуды өшірді. Сіз бұл мүмкіндікті қамтамасыз ету үшін %s файлын жоюды сұрауыңыз керек. ConfFileMustContainCustom=Қолданбадан сыртқы модульді орнату немесе құру үшін модуль файлдарын %s каталогына сақтау қажет. Бұл каталогты Dolibarr өңдеуі үшін 2 директивалық жолды қосу үшін conf/conf.php конфигурациясын орнату қажет:
    $ dolbarr_main_;
    $ dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Тышқанды жылжыту кезінде кесте сызықтарын бөлектеңіз @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Бұл мәнді өзгерткеннен кейін NotSupportedByAllThemes=Уилл негізгі тақырыптармен жұмыс істейді, сыртқы тақырыптармен қолдау көрсетілмеуі мүмкін BackgroundColor=Фон түсі TopMenuBackgroundColor=Жоғарғы мәзір үшін фон түсі -TopMenuDisableImages=Жоғарғы мәзірде суреттерді жасыру +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Сол жақ мәзір үшін фон түсі BackgroundTableTitleColor=Кестенің тақырып жолының фон түсі BackgroundTableTitleTextColor=Кестенің тақырып жолының мәтін түсі @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Сатып алуға тапсырыстар MailToSendSupplierInvoice=Сатушының шот -фактуралары MailToSendContract=Келісімшарттар MailToSendReception=Қабылдаулар +MailToExpenseReport=Expense reports MailToThirdparty=Үшінші тараптар MailToMember=Мүшелер MailToUser=Пайдаланушылар @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF -те оң жақ шеті MAIN_PDF_MARGIN_TOP=PDF -тегі жоғарғы маржа MAIN_PDF_MARGIN_BOTTOM=PDF -тің төменгі жиегі MAIN_DOCUMENTS_LOGO_HEIGHT=PDF логотипінің биіктігі +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Арнайы таңбаларды алып тастаңыз COMPANY_AQUARIUM_CLEAN_REGEX=Регекс сүзгісі таза мәнге (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Регекс сүзгісі таза мәнге (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Көшірмеге рұқсат жоқ +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Деректерді қорғау жөніндегі қызметкер (DPO, деректердің құпиялылығы немесе GDPR байланысы) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Мәтінді құралдар тақтасында көрсетуге көмектесіңіз @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=PDF құжаттарында жіберуші мен алушының мекенжайын ауыстырыңыз FeatureSupportedOnTextFieldsOnly=Ескерту, мүмкіндік тек мәтін өрістерінде және құрама тізімдерде қолдау көрсетеді. Сонымен қатар URL параметрі action = create немесе action = edit орнатылуы керек НЕМЕСЕ беттің атауы бұл мүмкіндікті іске қосу үшін 'new.php' деп аяқталуы керек. EmailCollector=Электрондық пошта жинаушы +EmailCollectors=Email collectors EmailCollectorDescription=Электрондық пошта жәшіктерін үнемі сканерлеу (IMAP протоколы арқылы) және қабылданған электрондық хаттарды қажет жерде жазу және/немесе автоматты түрде кейбір жазбаларды жасау үшін жоспарланған жұмыс пен орнату бетін қосыңыз. NewEmailCollector=Жаңа электрондық пошта жинаушысы EMailHost=IMAP серверінің электрондық пошта хосты +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Пошта жәшігінің бастапқы каталогы MailboxTargetDirectory=Пошта жәшігінің мақсатты каталогы EmailcollectorOperations=Коллектормен жасалатын операциялар EmailcollectorOperationsDesc=Әрекеттер жоғарыдан төменге қарай орындалады MaxEmailCollectPerCollect=Бір жинауға жиналған электрондық хаттардың максималды саны +TestCollectNow=Test collect CollectNow=Қазір жинаңыз ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Соңғы жинау күні DateLastcollectResultOk=Табыстың соңғы жиналған күні LastResult=Соңғы нәтиже EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Растауды растау туралы электрондық пошта EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Өңделетін жаңа электрондық пошта (сәйкес келетін сүзгілер) жоқ NothingProcessed=Ештеңе жасалмады -XEmailsDoneYActionsDone=%s электрондық поштасы жарамды, %s электрондық поштасы сәтті өңделді (%s жазбасы/әрекеттері үшін) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Жұмысқа өтініш жасаңыз FormatZip=Zip MainMenuCode=Мәзірді енгізу коды (негізгі мәзір) ECMAutoTree=ECM автоматты ағашын көрсету -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Жұмыс уақыты OpeningHoursDesc=Мұнда сіздің компанияңыздың жұмыс уақытын енгізіңіз. ResourceSetup=Ресурс модулінің конфигурациясы @@ -2167,6 +2200,10 @@ EmailTemplate=Электрондық поштаға арналған шабло EMailsWillHaveMessageID=Электрондық хаттарда осы синтаксиске сәйкес келетін 'Әдебиеттер' тегі болады PDF_SHOW_PROJECT=Құжаттағы жобаны көрсету ShowProjectLabel=Жоба белгісі +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Егер сіз PDF -тегі кейбір мәтіндерді бір PDF форматында 2 түрлі тілде қайталағыңыз келсе, мұнда осы екінші тілді орнатуыңыз керек, осылайша жасалған PDF бір бетте 2 түрлі тілді қамтиды, PDF жасау кезінде таңдалған және осы PDF -тің бірнеше үлгілері ғана қолдайды). PDF үшін 1 тіл үшін бос қалдырыңыз. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Мұнда FontAwesome белгішесінің кодын енгізіңіз. Егер сіз FontAwesome деген не екенін білмесеңіз, fa-address-book жалпы мәнін пайдалана аласыз. @@ -2195,12 +2232,12 @@ MailToPartnership=Серіктестік AGENDA_EVENT_DEFAULT_STATUS=Пішіннен оқиға жасаған кездегі әдепкі оқиға күйі YouShouldDisablePHPFunctions=PHP функцияларын өшіру керек IfCLINotRequiredYouShouldDisablePHPFunctions=Жүйелік пәрмендерді реттелетін кодта іске қосу қажет болмаса, PHP функцияларын өшіру керек -PHPFunctionsRequiredForCLI=Қабық үшін (мысалы, жоспарланған жұмыс резервтік көшірмесі немесе антивирустық бағдарламаны іске қосу) PHP функцияларын сақтау қажет +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Түбірлік каталогта жазылатын файлдар немесе жалпы бағдарламалардың каталогтары табылмады (Жақсы) RecommendedValueIs=Ұсынылады: %s Recommended=Ұсынылады NotRecommended=Ұсынылмайды -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Модульдердің сыртқы жаңартуларын тексеріңіз CheckForModuleUpdateHelp=Бұл әрекет жаңа модульдің бар -жоғын тексеру үшін сыртқы модульдердің редакторларына қосылады. ModuleUpdateAvailable=Жаңарту қол жетімді @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Сыртқы модульдер үшін жаңарт SwaggerDescriptionFile=Swagger API сипаттамасы файлы (мысалы, redoc көмегімен пайдалану үшін) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Сіз ескірген WS API қосылды. Оның орнына REST API пайдалану керек. RandomlySelectedIfSeveral=Бірнеше сурет бар кездейсоқ таңдалады +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Мәліметтер қорының құпия сөзі conf файлында жасырылған DatabasePasswordNotObfuscated=Мәліметтер қорының құпия сөзі conf файлында жасырын емес APIsAreNotEnabled=API модульдері қосылмаған @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/kk_KZ/categories.lang b/htdocs/langs/kk_KZ/categories.lang index e801a47d0aa..14d1d344541 100644 --- a/htdocs/langs/kk_KZ/categories.lang +++ b/htdocs/langs/kk_KZ/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Бұл мүше тегтерде/санаттарда жоқ ContactHasNoCategory=Бұл байланыс тегтерде/санаттарда жоқ ProjectHasNoCategory=Бұл жоба тегтерде/санаттарда жоқ ClassifyInCategory=Тегке/санатқа қосу +RemoveCategory=Remove category NotCategorized=Тег/санатсыз CategoryExistsAtSameLevel=Бұл санат осы сілтеме арқылы бұрыннан бар ContentsVisibleByAllShort=Мазмұны барлығына көрінеді @@ -67,6 +68,7 @@ StockCategoriesShort=Қойма тегтері/санаттары ThisCategoryHasNoItems=Бұл санатта ешқандай элементтер жоқ. CategId=Тег/санат идентификаторы ParentCategory=Ата -аналық белгі/категория +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Ата -аналық тегтің/категорияның белгісі CatSupList=Жеткізушілер тегтері/санаттары тізімі CatCusList=Клиенттер тізімі/потенциалды тегтер/санаттар @@ -86,15 +88,18 @@ DeleteFromCat=Тегтерден/санаттан алып тастаңыз ExtraFieldsCategories=Қосымша атрибуттар CategoriesSetup=Тегтер/категорияларды орнату CategorieRecursiv=Ата -аналық тегпен/категориямен автоматты түрде байланыстырыңыз -CategorieRecursivHelp=Егер опция қосулы болса, өнімді ішкі санатқа қосқанда, өнім де ата -аналық санатқа қосылады. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Келесі өнімді/қызметті қосыңыз AddCustomerIntoCategory=Клиентке категорияны тағайындаңыз AddSupplierIntoCategory=Жеткізушіге категория беріңіз +AssignCategoryTo=Assign category to ShowCategory=Тегті/санатты көрсету ByDefaultInList=Тізімде әдепкі бойынша ChooseCategory=Санатты таңдаңыз StocksCategoriesArea=Қойма санаттары +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Оқиға санаттары WebsitePagesCategoriesArea=Контейнерлік беттер санаттары KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Санаттар үшін 'НЕ' операторын қолданыңыз +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/kk_KZ/commercial.lang b/htdocs/langs/kk_KZ/commercial.lang index 97c4b01e2fa..8ec8e70b62d 100644 --- a/htdocs/langs/kk_KZ/commercial.lang +++ b/htdocs/langs/kk_KZ/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Болашақ мәртебесі DraftPropals=Коммерциялық ұсыныстардың жобасы NoLimit=Шек жоқ ToOfferALinkForOnlineSignature=Онлайн қолтаңбаға сілтеме -WelcomeOnOnlineSignaturePage=%s коммерциялық ұсыныстарын қабылдау үшін бетке қош келдіңіз -ThisScreenAllowsYouToSignDocFrom=Бұл экран баға ұсынысын/коммерциялық ұсынысты қабылдауға және оған қол қоюға немесе одан бас тартуға мүмкіндік береді -ThisIsInformationOnDocumentToSign=Бұл қабылдауға немесе бас тартуға болатын құжаттағы ақпарат +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=%s баға белгілеу/коммерциялық ұсыныстың қолы +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Желіде қол қою мүмкіндігі өшірілген немесе функция қосылмай тұрып жасалған құжат diff --git a/htdocs/langs/kk_KZ/companies.lang b/htdocs/langs/kk_KZ/companies.lang index 12f3c65731e..23c7efee851 100644 --- a/htdocs/langs/kk_KZ/companies.lang +++ b/htdocs/langs/kk_KZ/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Үшінші тараптың табиғаты NatureOfContact=Байланыс сипаты Address=Мекенжай State=Штат/провинция +StateId=State ID StateCode=Мемлекет/провинция коды StateShort=Мемлекет Region=Аймақ Region-State=Аймақ - Мемлекет Country=Ел CountryCode=Ел коды -CountryId=Ел идентификаторы +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Skype @@ -105,6 +106,7 @@ WrongSupplierCode=Сатушы коды жарамсыз CustomerCodeModel=Тұтынушы кодының моделі SupplierCodeModel=Сатушы кодының моделі Gencod=Штрих -код +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Проф. Идентификаторы 1 ProfId2Short=Проф. Идентификаторы 2 @@ -162,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Профессор 1 (R.U.T.) ProfId2CO=- @@ -442,7 +444,7 @@ AddAddress=Мекенжай қосу SupplierCategory=Сатушы санаты JuridicalStatus200=Тәуелсіз DeleteFile=Файлды жою -ConfirmDeleteFile=Бұл файлды шынымен жойғыңыз келе ме? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Сату өкіліне тағайындалды Organization=Ұйым FiscalYearInformation=Қаржы жылы diff --git a/htdocs/langs/kk_KZ/compta.lang b/htdocs/langs/kk_KZ/compta.lang index bd4b3527e99..948e33652bc 100644 --- a/htdocs/langs/kk_KZ/compta.lang +++ b/htdocs/langs/kk_KZ/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Баланс (бұрын) Balance=Баланс Debit=Дебет Credit=Несие +AccountingDebit=Debit +AccountingCredit=Credit Piece=Бухгалтерлік құжат AmountHTVATRealReceived=Тор жиналды AmountHTVATRealPaid=Таза төленген @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Өнім бойынша жи TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Сатудан түскен салық мөлшерлемесі бойынша жиналған айналым туралы есеп жоқ. Бұл есеп тек шот -фактурасы бойынша қол жетімді. CalculationMode=Есептеу режимі AccountancyJournal=Бухгалтерлік есеп журналы -ACCOUNTING_VAT_SOLD_ACCOUNT=Сату бойынша ҚҚС бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер ҚҚС сөздігін орнатуда анықталмаса қолданылады) -ACCOUNTING_VAT_BUY_ACCOUNT=Сатып алу кезінде ҚҚС бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер ҚҚС сөздігін орнатуда анықталмаған болса) -ACCOUNTING_VAT_PAY_ACCOUNT=ҚҚС төлеу үшін әдепкі бойынша бухгалтерлік есеп -ACCOUNTING_ACCOUNT_CUSTOMER=Бухгалтерлік шот клиенттерге үшінші тұлғалар үшін қолданылады +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Үшінші тараптың карточкасында анықталған арнайы бухгалтерлік есеп тек қосалқы есепте қолданылады. Егер ол үшінші жақта клиенттердің арнайы есепке алу шоты анықталмаса, бұл Бас кітап үшін және қосалқы есепке алудың әдепкі мәні ретінде пайдаланылады. -ACCOUNTING_ACCOUNT_SUPPLIER=Бухгалтерлік есеп шоты үшінші тараптар үшін қолданылады +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Үшінші тараптың карточкасында анықталған арнайы бухгалтерлік есеп тек қосалқы есепте қолданылады. Егер ол үшінші жақта арнайы жеткізушілердің бухгалтерлік шоты анықталмаса, бұл Бас кітап үшін және қосалқы есепке алудың әдепкі мәні ретінде пайдаланылады. ConfirmCloneTax=Әлеуметтік/фискалдық салықтың клонын растаңыз ConfirmCloneVAT=ҚҚС декларациясының клонын растаңыз @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/kk_KZ/contracts.lang b/htdocs/langs/kk_KZ/contracts.lang index 8bdf87e781c..00793fb649e 100644 --- a/htdocs/langs/kk_KZ/contracts.lang +++ b/htdocs/langs/kk_KZ/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Келісімшарттар/Жазылымдар ContractsAndLine=Шарттар мен келісімшарттар Contract=Келісімшарт ContractLine=Келісімшарттық желі +ContractLines=Contract lines Closing=Жабылу NoContracts=Келісімшарттар жоқ MenuServices=Қызметтер @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Бұл келісімшарт жолын шыныме MoveToAnotherContract=Қызметті басқа келісімшартқа ауыстырыңыз. ConfirmMoveToAnotherContract=Мен жаңа мақсатты келісімшартты таңдадым және бұл қызметті осы келісімшартқа ауыстырғым келетінін растаймын. ConfirmMoveToAnotherContractQuestion=Қандай қолданыстағы келісімшартта (үшінші тараптың) осы қызметті жылжытқыңыз келетінін таңдаңыз? -PaymentRenewContractId=Келісімшарт желісін жаңарту (%s нөмірі) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Мерзімнің өту күні NoExpiredServices=Мерзімі өткен белсенді қызметтер жоқ ListOfServicesToExpireWithDuration=Қызметтер тізімі %s күннен кейін аяқталады @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Келісімшартқа қол қо HideClosedServiceByDefault=Әдепкі бойынша жабық қызметтерді жасыру ShowClosedServices=Жабық қызметтерді көрсету HideClosedServices=Жабық қызметтерді жасыру +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/kk_KZ/cron.lang b/htdocs/langs/kk_KZ/cron.lang index 4b0576c1416..094ca9007f5 100644 --- a/htdocs/langs/kk_KZ/cron.lang +++ b/htdocs/langs/kk_KZ/cron.lang @@ -26,7 +26,7 @@ CronCommand=Пәрмен CronList=Жоспарланған тапсырмалар CronDelete=Жоспарланған тапсырмаларды жою CronConfirmDelete=Бұл жоспарланған тапсырмаларды шынымен жойғыңыз келе ме? -CronExecute=Жоспарланған жұмысты іске қосыңыз +CronExecute=Launch now CronConfirmExecute=Бұл жоспарланған тапсырмаларды дәл қазір орындағыңыз келе ме? CronInfo=Жоспарланған жұмыс модулі тапсырмаларды автоматты түрде орындау үшін оларды жоспарлауға мүмкіндік береді. Жұмыстарды қолмен де бастауға болады. CronTask=Жұмыс @@ -58,7 +58,7 @@ CronNote=Пікір CronFieldMandatory=%s өрістері міндетті болып табылады CronErrEndDateStartDt=Аяқталу күні басталу күнінен бұрын болуы мүмкін емес StatusAtInstall=Модульді орнату кезіндегі күй -CronStatusActiveBtn=Кесте +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Өшіру CronTaskInactive=Бұл жұмыс өшірілген (жоспарланбаған) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Жоспарланған тапсырмалар JobDisabled=Жұмыс өшірілген MakeLocalDatabaseDumpShort=Жергілікті дерекқордың резервтік көшірмесі MakeLocalDatabaseDump=Жергілікті мәліметтер қорының қоқысын жасаңыз. Параметрлер: қысу ('gz' немесе 'bz' немесе 'none'), сақтық көшірме түрі ('mysql', 'pgsql', 'auto'), 1, 'auto' немесе файл атауы, сақталатын резервтік файлдар саны +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Назар аударыңыз, өнімділік мақсатында, қосылған тапсырмаларды орындаудың келесі күні қандай болса да, сіздің жұмысыңыз іске қосылмас бұрын максималды %s сағатқа кешіктірілуі мүмкін. DATAPOLICYJob=Деректерді тазартушы және анонимайзер JobXMustBeEnabled=%s тапсырмасы қосылуы керек +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Соңғы орындалған жоспарланған тапсырма NextScheduledJobExecute=Орындалатын келесі жоспарланған тапсырма NumberScheduledJobError=Қате жоспарланған тапсырмалар саны +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/kk_KZ/datapolicy.lang b/htdocs/langs/kk_KZ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/kk_KZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/kk_KZ/ecm.lang b/htdocs/langs/kk_KZ/ecm.lang index 5119e44bca7..b506dba915e 100644 --- a/htdocs/langs/kk_KZ/ecm.lang +++ b/htdocs/langs/kk_KZ/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Қолмен анықтама ECMSectionAuto=Автоматты каталог ECMSectionsManual=Қолмен ағаш ECMSectionsAuto=Автоматты ағаш +ECMSectionsMedias=Medias tree ECMSections=Каталогтар ECMRoot=ECM түбірі ECMNewSection=Жаңа каталог @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Ішкі каталогтардағы файлдар сан ECMCreationUser=Жаратушы ECMArea=DMS/ECM аймағы ECMAreaDesc=DMS / ECM (Құжаттарды басқару жүйесі / Электрондық мазмұнды басқару) аймағы сізге Dolibarr -да барлық құжаттарды сақтауға, бөлісуге және іздеуге мүмкіндік береді. -ECMAreaDesc2=* Элемент картасынан құжаттарды қосқанда автоматты анықтамалар автоматты түрде толтырылады.
    * Белгілі бір элементпен байланысы жоқ құжаттарды сақтау үшін қолмен каталогтарды пайдалануға болады. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved= %s каталогы жойылды. ECMSectionWasCreated= %s каталогы құрылды. ECMSearchByKeywords=Кілт сөздер бойынша іздеу diff --git a/htdocs/langs/kk_KZ/errors.lang b/htdocs/langs/kk_KZ/errors.lang index e10bb476fff..d3286e7ea4e 100644 --- a/htdocs/langs/kk_KZ/errors.lang +++ b/htdocs/langs/kk_KZ/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=%s электрондық поштасы дұрыс емес с ErrorBadUrl=%s url дұрыс емес ErrorBadValueForParamNotAString=Параметр үшін нашар мән. Ол әдетте аударма болмаған кезде қосылады. ErrorRefAlreadyExists= %s сілтемесі бұрыннан бар. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=%s логині бұрыннан бар. ErrorGroupAlreadyExists=%s тобы бұрыннан бар. ErrorEmailAlreadyExists=%s электрондық поштасы бұрыннан бар. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists= %s атымен басқа файл бұ ErrorPartialFile=Файл серверге толық қабылданбады. ErrorNoTmpDir=%s уақытша директивасы жоқ. ErrorUploadBlockedByAddon=PHP/Apache плагині жүктеуді бұғаттады. -ErrorFileSizeTooLarge=Файл өлшемі тым үлкен. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=%s өрісі тым ұзын. ErrorSizeTooLongForIntType=Int түріне арналған өлшем тым ұзын (%s сандар максимум) ErrorSizeTooLongForVarcharType=Жол түрі үшін өлшем тым ұзын (%s таңбасының максимумы) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Бұл функция жұмыс істеуі үш ErrorPasswordsMustMatch=Екі терілген пароль бір -біріне сәйкес келуі керек ErrorContactEMail=Техникалық қате пайда болды. Хабарламаның %s электрондық поштасын жіберу үшін әкімшіге хабарласыңыз және %s хабарламаңызды жіберіңіз. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Өріс %s : « %s » мән %s %s саласында табылған жоқ ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref ErrorsOnXLines=%s қателері табылды @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=Алдымен сіз өзіңізді ErrorFailedToFindEmailTemplate=%s коды бар үлгі табылмады ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Қызмет көрсету мерзімі анықталмаған. Сағаттық бағаны есептеуге болмайды. ErrorActionCommPropertyUserowneridNotDefined=Пайдаланушының иесі қажет -ErrorActionCommBadType=Таңдалған оқиға түрі (идентификатор: %n, код: %s) оқиға түрі сөздігінде жоқ +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Нұсқаны тексеру сәтсіз аяқталды ErrorWrongFileName=Файл атауында __SOMETHING__ болмайды ErrorNotInDictionaryPaymentConditions=Төлем шарттары сөздігінде жоқ, өзгертіңіз. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Сіздің PHP параметрі upload_max_filesize (%s) PHP параметрі post_max_size (%s) қарағанда жоғары. Бұл дәйекті орнату емес. WarningPasswordSetWithNoAccount=Бұл мүшеге құпия сөз орнатылды. Дегенмен, пайдаланушы тіркелгісі жасалмады. Сондықтан бұл құпия сөз сақталады, бірақ оны Dolibarr жүйесіне кіру үшін қолдануға болмайды. Оны сыртқы модуль/интерфейс қолдануы мүмкін, бірақ егер сіз мүшеге логин мен парольді анықтаудың қажеті болмаса, мүше модулін орнатудан «Әр мүшеге кіруді басқару» опциясын өшіруге болады. Егер сізге логинді басқару қажет болса, бірақ пароль қажет болмаса, бұл ескертуді болдырмау үшін бұл өрісті бос қалдыруға болады. Ескерту: егер мүше пайдаланушыға сілтеме жасаса, электрондық поштаны логин ретінде пайдалануға болады. -WarningMandatorySetupNotComplete=Міндетті параметрлерді орнату үшін мына жерді басыңыз +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Модульдер мен қосымшаларды қосу үшін мына жерді басыңыз WarningSafeModeOnCheckExecDir=Ескерту, PHP safe_mode қосулы, сондықтан пәрмен safe_mode_exec_dir php параметрімен жарияланған каталогта сақталуы керек. WarningBookmarkAlreadyExists=Бұл атауы немесе осы мақсатты (URL) бар бетбелгі бұрыннан бар. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Ескерту, сіз тікелей қосалқы е WarningAvailableOnlyForHTTPSServers=HTTPS қорғалған қосылымы қолданылған жағдайда ғана қол жетімді. WarningModuleXDisabledSoYouMayMissEventHere=%s модулі қосылмаған. Сондықтан сіз мұнда көптеген оқиғаларды жіберіп алуыңыз мүмкін. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/kk_KZ/eventorganization.lang b/htdocs/langs/kk_KZ/eventorganization.lang index f78cda69cec..2034b9d3ef5 100644 --- a/htdocs/langs/kk_KZ/eventorganization.lang +++ b/htdocs/langs/kk_KZ/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Event organization Settings=Параметрлер EventOrganizationSetupPage = Оқиғаны ұйымдастыру беті EVENTORGANIZATION_TASK_LABEL = Жоба расталған кезде автоматты түрде жасалатын тапсырмалар белгісі -EVENTORGANIZATION_TASK_LABELTooltip = Сіз ұйымдасқан оқиғаны тексеру кезінде, кейбір тапсырмалар автоматты түрде жобаға құрылуы мүмкін

    Мысалы: Бут Жіберу
    қатысушыларға арналған іс-шараларға Ашық жазылымдарын
    конференциялар қоңырау алуға
    Бут қоңырау алуға
    Конференцияның үшін
    жіберу қоңыраулар жіберу
    баяндамашыларға оқиғаны еске түсіру +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Біреу конференция ұсынған кезде үшінші тараптарға автоматты түрде қосылатын санат EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Үшінші тараптарға стенд ұсынылған кезде автоматты түрде қосылатын санат EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Конференция туралы ұсынысты алғаннан кейін жіберілетін электрондық пошта үлгісі. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Конференция немесе стенд +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = Конференция немесе стенд ConferenceOrBoothTab = Конференция немесе стенд AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Конференцияға немесе стендке қатысушы +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = Ұсынылған конференциялар тізімі -ListOfSuggestedBooths = Ұсынылған стендтердің тізімі -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Жаңа конференцияны ұсыныңыз SuggestBooth = Стенд ұсыну ViewAndVote = Ұсынылған оқиғаларды қарау және оларға дауыс беру PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = Қауіпсіздік кілті жарамсыз немесе жоқ -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Бұл конференция %s басталып, %s аяқталады. ConferenceAttendeeFee = Конференцияға қатысушылардың ақысы: «%s» - %s - %s аралығында. BoothLocationFee = Іс -шараның стендтік орны: '%s' %s мен %s аралығында болады @@ -129,7 +133,7 @@ LabelOfconference=Конференция белгісі ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s %s алдында болуы керек DateMustBeAfterThan=%s %s кейін болуы керек - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registration OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -153,7 +158,7 @@ VoteOk = Сіздің дауысыңыз қабылданды. AlreadyVoted = Сіз бұл оқиғаға дауыс бердіңіз. VoteError = Дауыс беру кезінде қате пайда болды, қайталап көріңіз. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event Attendee = Қатысушы PaymentConferenceAttendee = Конференцияға қатысушылардың төлемі @@ -161,7 +166,9 @@ PaymentBoothLocation = Букс орналасқан жерді төлеу DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/kk_KZ/externalsite.lang b/htdocs/langs/kk_KZ/externalsite.lang deleted file mode 100644 index a087c46078f..00000000000 --- a/htdocs/langs/kk_KZ/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Сыртқы веб -сайтқа сілтеме орнату -ExternalSiteURL=HTML iframe мазмұнының сыртқы сайт URL мекенжайы -ExternalSiteModuleNotComplete=ExternalSite модулі дұрыс конфигурацияланбаған. -ExampleMyMenuEntry=Менің мәзірге кіру diff --git a/htdocs/langs/kk_KZ/ftp.lang b/htdocs/langs/kk_KZ/ftp.lang deleted file mode 100644 index 9d586217aae..00000000000 --- a/htdocs/langs/kk_KZ/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP немесе SFTP клиент модулін орнату -NewFTPClient=Жаңа FTP/FTPS қосылымын орнату -FTPArea=FTP/FTPS аймағы -FTPAreaDesc=Бұл экран FTP және SFTP серверінің көрінісін көрсетеді. -SetupOfFTPClientModuleNotComplete=FTP немесе SFTP клиенттік модулін орнату аяқталмаған сияқты -FTPFeatureNotSupportedByYourPHP=Сіздің PHP FTP немесе SFTP функцияларын қолдамайды -FailedToConnectToFTPServer=Серверге қосылу мүмкін болмады (%s сервері, %s порты) -FailedToConnectToFTPServerWithCredentials=Анықталған логин/парольмен серверге кіру сәтсіз аяқталды -FTPFailedToRemoveFile= %s файлы жойылмады. -FTPFailedToRemoveDir= %s каталогын жою мүмкін болмады: рұқсаттарды тексеріңіз және каталог бос екенін тексеріңіз. -FTPPassiveMode=Пассивті режим -ChooseAFTPEntryIntoMenu=Мәзірден FTP/SFTP сайтын таңдаңыз ... -FailedToGetFile=%s файлдары алынбады diff --git a/htdocs/langs/kk_KZ/holiday.lang b/htdocs/langs/kk_KZ/holiday.lang index c6a07415bf7..bd8f41811d4 100644 --- a/htdocs/langs/kk_KZ/holiday.lang +++ b/htdocs/langs/kk_KZ/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Шығу +Holidays=Leaves +Holiday=Leave CPTitreMenu=Шығу MenuReportMonth=Ай сайынғы мәлімдеме MenuAddCP=Жаңа демалыс туралы өтініш +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Бұл бетті көру үшін Шығу модулін қосу керек. AddCP=Демалыс туралы өтініш жасаңыз DateDebCP=Басталатын күн @@ -56,6 +58,7 @@ ConfirmDeleteCP=Бұл демалыс туралы сұраудың жойылғ ErrorCantDeleteCP=Қате, сіз бұл демалысты жоюға құқығыңыз жоқ. CantCreateCP=Сіз демалысқа өтініш беруге құқығыңыз жоқ. InvalidValidatorCP=Сіз еңбек демалысына рұқсат берушіні таңдауыңыз керек. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Сіз басталу күнін таңдауыңыз керек. NoDateFin=Сіз аяқталу күнін таңдауыңыз керек. ErrorDureeCP=Сіздің демалыс туралы өтінішіңізде жұмыс күні жоқ. @@ -79,6 +82,8 @@ MotifCP=Себеп UserCP=Қолданушы ErrorAddEventToUserCP=Ерекше демалысты қосу кезінде қате пайда болды. AddEventToUserOkCP=Ерекше демалысты қосу аяқталды. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Өзгерістер журналын қарау LogCP=«Демалыс балансына» енгізілген барлық жаңартулардың журналы ActionByCP=Жаңартқан @@ -86,6 +91,13 @@ UserUpdateCP=Үшін жаңартылды PrevSoldeCP=Алдыңғы қалдық NewSoldeCP=Жаңа баланс alreadyCPexist=Бұл кезеңде еңбек демалысы сұраныс берілді. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Еңбек демалысының басталу күні LastDayOfHoliday=Еңбек демалысының аяқталу күні BoxTitleLastLeaveRequests=Ең соңғы %s өзгертілген демалыс сұраулары @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s әдетте жұмыс істемейтін күн б BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/kk_KZ/hrm.lang b/htdocs/langs/kk_KZ/hrm.lang index 9a4beea5ca4..a48ea239aa9 100644 --- a/htdocs/langs/kk_KZ/hrm.lang +++ b/htdocs/langs/kk_KZ/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Ашық мекеме CloseEtablishment=Жақын мекеме # Dictionary DictionaryPublicHolidays=Демалыс - мереке күндері -DictionaryDepartment=HRM - Бөлімдер тізімі +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - жұмыс орындары # Module Employees=Қызметкерлер @@ -20,13 +20,14 @@ Employee=Қызметкер NewEmployee=Жаңа қызметкер ListOfEmployees=Жұмысшылардың тізімі HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs +JobPosition=Job +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Position -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/kk_KZ/install.lang b/htdocs/langs/kk_KZ/install.lang index cfcabaa481e..b16cace5e25 100644 --- a/htdocs/langs/kk_KZ/install.lang +++ b/htdocs/langs/kk_KZ/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable= %s конфигурация файлы жазыл ConfFileIsWritable= %s конфигурация файлы жазылады. ConfFileMustBeAFileNotADir= %s конфигурация файлы каталог емес, файл болуы керек. ConfFileReload=Конфигурация файлынан параметрлерді қайта жүктеу. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Бұл PHP POST және GET айнымалыларын қолдайды. PHPSupportPOSTGETKo=Мүмкін сіздің PHP орнату POST және/немесе GET айнымалы мәндерін қолдамайды. variables_order параметрін php.ini ішінен тексеріңіз. PHPSupportSessions=Бұл PHP сеанстарды қолдайды. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Сіз '%s' параметріне қате мән ErrorFailedToCreateDatabase='%s' дерекқоры жасалмады. ErrorFailedToConnectToDatabase='%s' дерекқорына қосылу сәтсіз аяқталды. ErrorDatabaseVersionTooLow=Деректер базасының нұсқасы (%s) тым ескі. %s немесе одан жоғары нұсқасы қажет. -ErrorPHPVersionTooLow=PHP нұсқасы тым ескі. %s нұсқасы қажет. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Серверге қосылу сәтті болды, бірақ «%s» дерекқоры табылмады. ErrorDatabaseAlreadyExists='%s' дерекқоры бұрыннан бар. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Егер деректер базасы жоқ болса, қайтып оралыңыз және «Деректер қорын жасау» опциясын тексеріңіз. IfDatabaseExistsGoBackAndCheckCreate=Егер деректер базасы бұрыннан бар болса, қайтып оралыңыз және «Дерекқор құру» опциясын алып тастаңыз. WarningBrowserTooOld=Браузердің нұсқасы тым ескі. Браузерді Firefox, Chrome немесе Opera -ның соңғы нұсқасына жаңарту ұсынылады. diff --git a/htdocs/langs/kk_KZ/knowledgemanagement.lang b/htdocs/langs/kk_KZ/knowledgemanagement.lang index 6edef9a061a..e60076b61c1 100644 --- a/htdocs/langs/kk_KZ/knowledgemanagement.lang +++ b/htdocs/langs/kk_KZ/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Мақалалар KnowledgeRecord = Мақала KnowledgeRecordExtraFields = Мақалаға арналған экстра өрістер GroupOfTicket=Билеттер тобы -YouCanLinkArticleToATicketCategory=Сіз мақаланы билеттер тобына байланыстыра аласыз (сондықтан мақала жаңа билеттерді іріктеу кезінде ұсынылады) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Suggested for tickets when group is SetObsolete=Set as obsolete diff --git a/htdocs/langs/kk_KZ/loan.lang b/htdocs/langs/kk_KZ/loan.lang index 15805658151..cd422798307 100644 --- a/htdocs/langs/kk_KZ/loan.lang +++ b/htdocs/langs/kk_KZ/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Қаржылық міндеттеме InterestAmount=Қызығушылық CapitalRemain=Капитал қалады TermPaidAllreadyPaid = Бұл мерзім толығымен төленген -CantUseScheduleWithLoanStartedToPaid = Төлем басталған кезде несие үшін жоспарлаушыны пайдалану мүмкін емес +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Егер сіз кестені қолдансаңыз, қызығушылықты өзгерте алмайсыз # Admin ConfigLoan=Кредиттік модульді конфигурациялау -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Әдепкі бойынша есеп шотының капиталы -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Әдепкі бойынша бухгалтерлік шоттағы пайыздар -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Әдепкі бойынша бухгалтерлік шотты сақтандыру +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Қаржылық міндеттемені өңдеу diff --git a/htdocs/langs/kk_KZ/mailmanspip.lang b/htdocs/langs/kk_KZ/mailmanspip.lang index dee7712f75e..65ae5adb44b 100644 --- a/htdocs/langs/kk_KZ/mailmanspip.lang +++ b/htdocs/langs/kk_KZ/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Жазылым сынағы сәтті өтті MailmanDeletionSuccess=Жазылымнан бас тарту сынағы сәтті орындалды SynchroMailManEnabled=Пошта хатшысы жаңартылады SynchroSpipEnabled=Spip жаңарту орындалады -DescADHERENT_MAILMAN_ADMINPW=Пошта хатшысы әкімшісінің құпия сөзі +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=Пошталық жазылушыларға арналған URL DescADHERENT_MAILMAN_UNSUB_URL=Пошталық жазылушылардың жазылуларының URL мекенжайы DescADHERENT_MAILMAN_LISTS=Жаңа мүшелерді автоматты түрде жазуға арналған тізімдер (үтірмен бөлінген) diff --git a/htdocs/langs/kk_KZ/mails.lang b/htdocs/langs/kk_KZ/mails.lang index 48493ce026b..4b995dfb0eb 100644 --- a/htdocs/langs/kk_KZ/mails.lang +++ b/htdocs/langs/kk_KZ/mails.lang @@ -7,10 +7,10 @@ MailCard=Электрондық пошта картасы MailRecipients=Алушылар MailRecipient=Алушы MailTitle=Сипаттама -MailFrom=Жіберуші +MailFrom=From MailErrorsTo=Қателері MailReply=Жауап беру -MailTo=Қабылдағыш +MailTo=To MailToUsers=Пайдаланушыларға MailCC=Мына жерге көшіру MailToCCUsers=Пайдаланушыларға көшіру @@ -178,3 +178,4 @@ IsAnAnswer=Бұл бастапқы электрондық поштаға жау RecordCreatedByEmailCollector=%s электрондық пошта жинаушысы %s электрондық поштасынан жасаған жазба DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Бос, бірақ міндетті +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/kk_KZ/main.lang b/htdocs/langs/kk_KZ/main.lang index 83448cb7eae..d1aed3017b1 100644 --- a/htdocs/langs/kk_KZ/main.lang +++ b/htdocs/langs/kk_KZ/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Бұл электрондық пошта түрі үшін ү AvailableVariables=Қол жетімді алмастыру айнымалылары NoTranslation=Аударма жоқ Translation=Аударма +Translations=Translations CurrentTimeZone=PHP TimeZone (сервер) EmptySearchString=Бос емес іздеу критерийлерін енгізіңіз EnterADateCriteria=Күн критерийін енгізіңіз @@ -199,6 +206,7 @@ Valid=Жарамды Approve=Бекіту Disapprove=Қабылдамау ReOpen=Қайта ашу +OpenVerb=Open Upload=Жүктеу ToLink=Сілтеме Select=Таңдаңыз @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Пайдаланушылар тобы анықталмаған Password=Құпия сөз -PasswordRetype=Құпия сөзді қайта теріңіз +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Бұл демонстрацияда көптеген мүмкіндіктер/модульдер өшірілгенін ескеріңіз. Name=Аты NameSlashCompany=Аты / Компания @@ -244,6 +252,7 @@ Designation=Сипаттама DescriptionOfLine=Сызық сипаттамасы DateOfLine=Жолдың күні DurationOfLine=Жолдың ұзақтығы +ParentLine=Parent line ID Model=Құжат үлгісі DefaultModel=Әдепкі құжат үлгісі Action=Оқиға @@ -344,7 +353,7 @@ KiloBytes=Килобайт MegaBytes=Мегабайт GigaBytes=Гигабайт TeraBytes=Терабайт -UserAuthor=Күткен +UserAuthor=Created by UserModif=Жаңартқан b=б. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Бұл байланыс/мекен -жай бойынша оқ ActionsOnContract=Бұл келісімшарт бойынша оқиғалар ActionsOnMember=Бұл мүше туралы оқиғалар ActionsOnProduct=Бұл өнім туралы оқиғалар +ActionsOnAsset=Events for this fixed asset NActionsLate=%s кеш ToDo=Істеу Completed=Аяқталды @@ -517,6 +527,7 @@ or=немесе Other=Басқа Others=Басқалар OtherInformations=Басқа ақпарат +Workflow=Workflow Quantity=Саны Qty=Саны ChangedBy=Өзгерткен @@ -619,6 +630,7 @@ MonthVeryShort11=Н. MonthVeryShort12=D AttachedFiles=Қосылған файлдар мен құжаттар JoinMainDoc=Негізгі құжатқа қосылыңыз +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=ЖЖЖЖ-АА DateFormatYYYYMMDD=ЖЖЖЖ-АА-КК DateFormatYYYYMMDDHHMM=ЖЖЖЖ-АА-КК СС: SS @@ -709,6 +721,7 @@ FeatureDisabled=Мүмкіндік өшірілген MoveBox=Виджетті жылжыту Offered=Ұсынылған NotEnoughPermissions=Сізде бұл әрекетке рұқсат жоқ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Сеанстың атауы Method=Әдіс Receive=Қабылдау @@ -798,6 +811,7 @@ URLPhoto=Фотосуреттің/логотиптің URL мекенжайы SetLinkToAnotherThirdParty=Басқа үшінші тарапқа сілтеме LinkTo=Сілтеме LinkToProposal=Ұсынысқа сілтеме +LinkToExpedition= Link to expedition LinkToOrder=Тапсырысқа сілтеме LinkToInvoice=Шот -фактураға сілтеме LinkToTemplateInvoice=Шот -фактураның үлгісіне сілтеме @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Жеке жүктеу сілтемесі PrivateDownloadLinkDesc=Сіз тіркелуіңіз керек және файлды қарау немесе жүктеу үшін сізге рұқсат қажет Download=Жүктеу DownloadDocument=Құжатты жүктеу +DownloadSignedDocument=Download signed document ActualizeCurrency=Валюта бағамын жаңарту Fiscalyear=Қаржы жылы ModuleBuilder=Модуль және қосымшалар құрастырушысы @@ -1041,6 +1056,7 @@ SearchIntoContracts=Келісімшарттар SearchIntoCustomerShipments=Клиенттерді жеткізу SearchIntoExpenseReports=Шығындар туралы есептер SearchIntoLeaves=Шығу +SearchIntoKM=Knowledge base SearchIntoTickets=Билеттер SearchIntoCustomerPayments=Клиенттердің төлемдері SearchIntoVendorPayments=Сатушы төлемдері @@ -1132,15 +1148,29 @@ EventReminder=Оқиғаны еске салғыш UpdateForAllLines=Барлық жолдар үшін жаңарту OnHold=Күтуде Civility=Азаматтық -AffectTag=Тегке әсер ету +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Сыртқы пайдаланушыны құру -ConfirmAffectTag=Жаппай тегтердің әсері -ConfirmAffectTagQuestion=%s таңдалған жазбаларына тегтерге әсер еткіңіз келетініне сенімдісіз бе? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Жазбалар түрі үшін тег түрі табылмады +Rate=Бағалау +SupervisorNotFound=Supervisor not found CopiedToClipboard=Алмасу буферіне көшірілді InformationOnLinkToContract=Бұл сома келісімшарттың барлық жолдарының жиынтығы ғана. Уақыт ұғымы ескерілмейді. ConfirmCancel=Бас тартқыңыз келетініне сенімдісіз бе? EmailMsgID=MsgID электрондық поштасына жіберіңіз +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Қосылған күйге орнатыңыз SetToDisabled=Өшірілген күйге орнатыңыз ConfirmMassEnabling=растауға мүмкіндік беретін жаппай @@ -1164,3 +1194,19 @@ NotClosedYet=Әлі жабылмаған ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/kk_KZ/members.lang b/htdocs/langs/kk_KZ/members.lang index 16ade0cca3e..0207a69b00f 100644 --- a/htdocs/langs/kk_KZ/members.lang +++ b/htdocs/langs/kk_KZ/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=Қауіпсіздік мақсатында мүшені сіздікі емес пайдаланушымен байланыстыру үшін барлық пайдаланушыларды өңдеуге рұқсат алуыңыз қажет. SetLinkToUser=Dolibarr пайдаланушысына сілтеме SetLinkToThirdParty=Dolibarr үшінші тарапқа сілтеме +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Мүшелердің тізімі MembersListToValid=Жобаға қатысушылардың тізімі (расталады) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Мүше идентификаторы +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Жаңа мүше MemberType=Мүше түрі MemberTypeId=Мүше түрінің идентификаторы @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Мүше түрін жою мүмкін емес NewSubscription=New contribution NewSubscriptionDesc=Бұл форма жазылымды қордың жаңа мүшесі ретінде жазуға мүмкіндік береді. Егер сіз жазылымды жаңартқыңыз келсе (егер оның мүшесі болса), оның орнына %s электрондық поштасына хабарласыңыз. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Кеш SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Мүшелік картаның мазмұны # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Сізге мүшелік сұрауыңыз қабылданғанын хабарлаймыз.

    ThisIsContentOfYourMembershipWasValidated=Сізге мүшелігіңіз келесі ақпаратпен расталғанын хабарлаймыз:

    -ThisIsContentOfYourSubscriptionWasRecorded=Сізге жаңа жазылымыңыз жазылғанын хабарлаймыз.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Жазылымыңыздың мерзімі бітуге жақын немесе аяқталғанын хабарлаймыз (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Сіз оны жаңартасыз деп үміттенеміз.

    ThisIsContentOfYourCard=Бұл сіз туралы бізде бар ақпараттың қысқаша мазмұны. Егер бірдеңе дұрыс болмаса, бізге хабарласыңыз.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Қонақтың автоматты түрде жазылуы кезінде алынған хабарлама электрондық поштасының тақырыбы @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Айналым (компания үшін) немесе бюджет (іргетас үшін) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Біріктірілген онлайн төлем бетіне өтіңіз +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Табиғаты бойынша MembersStatisticsByProperties=Мүшелердің статистикасы табиғаты бойынша VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s сыртқы пайдаланушылар жасалды ForceMemberNature=Мүшелік сипат (жеке немесе корпоративтік) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/kk_KZ/modulebuilder.lang b/htdocs/langs/kk_KZ/modulebuilder.lang index 2945556eb3d..8e7c5fe99f0 100644 --- a/htdocs/langs/kk_KZ/modulebuilder.lang +++ b/htdocs/langs/kk_KZ/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Модульдер жасалатын/өңделетін жол (%s анықталған сыртқы модульдердің бірінші каталогы): %s ModuleBuilderDesc3=Жасалған/өңделетін модульдер табылды: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Модуль каталогының түбірінде %s
    сипатын шынымен жойғыңыз келе ме? Бұл PHP класындағы кодты өзгертеді, сонымен қатар объектінің кесте анықтамасынан бағанды алып тастайды. NotNull=NULL емес NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Өлшем болып табылады DirScanned=Каталог сканерленді NoTrigger=Триггер жоқ NoWidget=Виджет жоқ -GoToApiExplorer=API зерттеушісі +ApiExplorer=API explorer ListOfMenusEntries=Мәзір жазбаларының тізімі ListOfDictionariesEntries=Сөздіктер жазбаларының тізімі ListOfPermissionsDefined=Белгіленген рұқсаттар тізімі SeeExamples=Мысалдарды мына жерден қараңыз -EnabledDesc=Бұл өрісті белсенді ету шарты (Мысалдар: 1 немесе $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Өріс көрініп тұр ма? (Мысалдар: 0 = Ешқашан көрінбейді, 1 = Тізімде көрінеді және формаларды жасайды/жаңартады/қарайды, 2 = Тек тізімде көрінеді, 3 = Тек құру/жаңарту/қарау формасында көрінеді (тізім емес), 4 = Тізімде көрінеді және жаңарту/қарау формасы ғана (жасалмайды), 5 = Тек тізімдегі соңғы көрініс формасы көрінеді (жасамайды, жаңартылмайды).

    Теріс мәнді қолдану өріс тізімде әдепкі бойынша көрсетілмейді, бірақ оны қарау үшін таңдауға болады).

    Бұл өрнек болуы мүмкін, мысалы:
    preg_match ('/public/', $ _SERVER ['PHP_SELF'])? -DisplayOnPdfDesc=Бұл өрісті үйлесімді PDF құжаттарында көрсетіңіз, сіз позицияны «Позиция» өрісімен басқара аласыз.
    Қазіргі уақытта белгілі үйлесімді PDF модельдер болып табылады: eratosthene (бұйрық), espadon (кеме), жөке (шот-фактуралар), көгілдір (PROPAL / тырнақша), cornas (жеткізуші Тапсырыс)

    құжат үшін:
    0 =
    1 көрсетілді емес = құжат желілері үшін

    босатыңыз ғана емес, егер 2 = дисплейде
    дисплей:

    0 =
    1 = кейін сипаттамасы бағанда 4 = дисплейде
    сипаттамасы кейін желісі сипаттамасы бағанда 3 = дисплейде
    бағанда көрсетіледі көрсетіледі емес сипаттамасы бос болмаса -DisplayOnPdf=PDF форматында көрсету +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Тізімге жиынтық алу үшін өрістің мәні жинақталуы мүмкін бе? (Мысалдар: 1 немесе 0) SearchAllDesc=Өріс жылдам іздеу құралынан іздеу үшін пайдаланылады ма? (Мысалдар: 1 немесе 0) SpecDefDesc=Басқа қойындылармен анықталмаған модульмен қамтамасыз еткіңіз келетін барлық құжаттарды осында енгізіңіз. Сіз .md немесе жақсырақ, бай .asciidoc синтаксисін қолдана аласыз. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Белгілі бір редактордың URL меке UseSpecificFamily = Белгілі бір отбасын қолданыңыз UseSpecificAuthor = Белгілі бір авторды қолданыңыз UseSpecificVersion = Нақты бастапқы нұсқаны қолданыңыз -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Егер сіз мұны тексерсеңіз, жазбада «Құжатты жасау» жолағын қосу үшін кейбір код жасалады. -ShowOnCombobox=Комбокске мәнді көрсетіңіз +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Нұсқаулық үшін кілт CSSClass=Пішінді өңдеуге/жасауға арналған CSS CSSViewClass=Оқуға арналған CSS формасы CSSListClass=Тізімге арналған CSS NotEditable=Өңдеуге болмайды ForeignKey=Сыртқы кілт -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii - HTML түрлендіргіші AsciiToPdfConverter=Ascii - PDF түрлендіргіші TableNotEmptyDropCanceled=Кесте бос емес. Түсіру тоқтатылды. ModuleBuilderNotAllowed=Модуль құрастырушысы қол жетімді, бірақ сіздің пайдаланушыға рұқсат етілмеген. ImportExportProfiles=Профильдерді импорттау және экспорттау -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/kk_KZ/mrp.lang b/htdocs/langs/kk_KZ/mrp.lang index f3e1865ae88..e465ac9d1ef 100644 --- a/htdocs/langs/kk_KZ/mrp.lang +++ b/htdocs/langs/kk_KZ/mrp.lang @@ -11,8 +11,8 @@ Bom=Материалдық есепшоттар BillOfMaterials=Материалдық есеп BillOfMaterialsLines=Bill of Materials lines BOMsSetup=BOM модулін орнату -ListOfBOMs=Материалдық төлемдердің тізімі - БМ -ListOfManufacturingOrders=Өндірістік тапсырыстардың тізімі +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Жаңа материалдық шот ProductBOMHelp=Осы БОМ көмегімен жасауға (немесе бөлшектеуге) арналған өнім.
    Ескертпе: 'Өнімнің табиғаты' = 'Шикізат' қасиеті бар өнімдер бұл тізімде көрінбейді. BOMsNumberingModules=БОМ нөмірлеу үлгілері @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=%s есепшотын клондау керек ек ConfirmCloneMo=%s өндірістік тапсырысын клондау керек екеніне сенімдісіз бе? ManufacturingEfficiency=Өндіріс тиімділігі ConsumptionEfficiency=Тұтыну тиімділігі +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=0.95 мәні өндірілген өнімнің жоғалуының орташа 5%% білдіреді. DeleteBillOfMaterials=Материалды жою @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=%s бөлшектеуге болатын мөлшер ү ConfirmValidateMo=Бұл өндірістік тапсырысты растағыңыз келетініне сенімдісіз бе? ConfirmProductionDesc='%s' түймесін басу арқылы сіз белгіленген мөлшердегі тұтынуды және/немесе өндірісті тексересіз. Бұл сонымен қатар акцияларды жаңартады және акцияның қозғалысын жазады. ProductionForRef=%s өндірісі +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Егер тұтынылатын және өндірілетін мөлшерге қол жеткізілсе, Өндірістік тапсырысты автоматты түрде жабыңыз NoStockChangeOnServices=Қызметтерде акцияның өзгеруі жоқ ProductQtyToConsumeByMO=Өнім саны әлі де ашық MO тұтынуы керек @@ -80,6 +83,7 @@ ProductsToProduce=Өндірілетін өнімдер UnitCost=Бірлік құны TotalCost=Жалпы баға BOMTotalCost=Бұл тауарлық банкті өндіруге жұмсалатын шығындар әр өнім мен тұтынылатын өнімнің өзіндік құнына негізделеді (анықталған жағдайда өзіндік құн бағасы, егер анықталса орташа өлшенген баға, басқасы сатып алудың ең жақсы бағасы) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Өндірістік тапсырысты жабу үшін алдымен өндірісті бастауыңыз керек («%s» қойындысын қараңыз). Бірақ сіз одан бас тарта аласыз. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Жиынтықты МБ немесе МО -да қолдануға болмайды Workstation=Жұмыс станциясы @@ -107,3 +111,10 @@ THMEstimatedHelp=Бұл көрсеткіш объектінің болжамды BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/kk_KZ/oauth.lang b/htdocs/langs/kk_KZ/oauth.lang index 8bdb8b1540c..303c260cf55 100644 --- a/htdocs/langs/kk_KZ/oauth.lang +++ b/htdocs/langs/kk_KZ/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Таңбалауыш жасалды және жергілікті NewTokenStored=Токен алды және сақтады ToCheckDeleteTokenOnProvider=%s OAuth провайдері сақтаған авторизацияны тексеру/жою үшін мына жерді басыңыз TokenDeleted=Белгі жойылды -RequestAccess=Кіруді сұрау/жаңарту және сақтау үшін жаңа белгі алу үшін мына жерді басыңыз -DeleteAccess=Белгіні жою үшін мына жерді басыңыз +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=OAuth провайдерімен тіркелгі деректерін жасау кезінде келесі URL мекенжайын қайта бағыттау URI ретінде пайдаланыңыз: -ListOfSupportedOauthProviders=OAuth2 провайдері берген тіркелгі деректерін енгізіңіз. Мұнда тек қолдау көрсетілетін OAuth2 провайдерлері көрсетілген. Бұл қызметтерді OAuth2 аутентификациясын қажет ететін басқа модульдер қолдануы мүмкін. -OAuthSetupForLogin=OAuth таңбалауышын жасауға арналған бет +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Алдыңғы қойындыны қараңыз +OAuthProvider=OAuth provider OAuthIDSecret=OAuth идентификаторы мен құпиясы TOKEN_REFRESH=Жаңарту белгісі TOKEN_EXPIRED=Токеннің мерзімі бітті @@ -23,10 +24,13 @@ TOKEN_DELETE=Сақталған белгіні жою OAUTH_GOOGLE_NAME=OAuth Google қызметі OAUTH_GOOGLE_ID=OAuth Google идентификаторы OAUTH_GOOGLE_SECRET=OAuth Google құпиясы -OAUTH_GOOGLE_DESC= осы бетке өтіңіз содан кейін OAuth тіркелгі деректерін жасау үшін «Тіркелу деректері» OAUTH_GITHUB_NAME=OAuth GitHub қызметі OAUTH_GITHUB_ID=OAuth GitHub идентификаторы OAUTH_GITHUB_SECRET=OAuth GitHub құпиясы -OAUTH_GITHUB_DESC= осы бетке өтіңіз содан кейін OAuth тіркелгі деректерін жасау үшін «Жаңа қосымшаны тіркеңіз». +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth жолақ сынағы OAUTH_STRIPE_LIVE_NAME=OAuth Stripe тікелей эфирі +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/kk_KZ/products.lang b/htdocs/langs/kk_KZ/products.lang index 6ab839803da..475750c35d8 100644 --- a/htdocs/langs/kk_KZ/products.lang +++ b/htdocs/langs/kk_KZ/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Бұл өнім желісін шынымен жойғ ProductSpecial=Арнайы QtyMin=Мин. сатып алу көлемі PriceQtyMin=Баға саны мин. -PriceQtyMinCurrency=Осы бірлік үшін баға (валюта). (жеңілдік жоқ) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=ҚҚС мөлшерлемесі (осы сатушыға/өнімге) DiscountQtyMin=Бұл мөлшерге жеңілдік. NoPriceDefinedForThisSupplier=Бұл сатушыға/өнімге баға/мөлшер анықталмаған @@ -261,7 +262,7 @@ Quarter1=1 -ші. Тоқсан Quarter2=2 -ші. Тоқсан Quarter3=3 -ші. Тоқсан Quarter4=4 -ші. Тоқсан -BarCodePrintsheet=Штрих -кодты басып шығару +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Бұл құралдың көмегімен штрих -код жапсырмаларының парақтарын басып шығаруға болады. Жапсырма бетінің форматын, штрих -код түрін және штрих -код мәнін таңдаңыз, содан кейін %s түймесін басыңыз. NumberOfStickers=Бетте басып шығарылатын стикерлер саны PrintsheetForOneBarCode=Бір штрих -код үшін бірнеше жапсырманы басып шығарыңыз @@ -344,9 +345,9 @@ PossibleValues=Мүмкін мәндер GoOnMenuToCreateVairants=Атрибуттардың нұсқаларын дайындау үшін %s - %s мәзіріне өтіңіз (түстер, өлшемдер, ... сияқты) UseProductFournDesc=Тұтынушыларға арналған сипаттамадан басқа, жеткізушілер анықтайтын өнім сипаттамасын анықтау үшін мүмкіндікті қосыңыз (әрбір жеткізушіге сілтеме бойынша). ProductSupplierDescription=Өнімге сатушының сипаттамасы -UseProductSupplierPackaging=Жеткізуші бағасы бойынша қаптаманы қолданыңыз (жеткізуші құжаттарына жолды қосу/жаңарту кезінде жеткізуші бағасына сәйкес қаптамаға сәйкес мөлшерді қайта есептеңіз) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Қаптама -PackagingForThisProductDesc=Жеткізушінің тапсырысы бойынша сіз автоматты түрде осы мөлшерге (немесе осы санға еселік) тапсырыс бересіз. Сатып алудың минималды мөлшерінен төмен болуы мүмкін емес +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Желі саны жеткізушінің қаптамасына сәйкес қайта есептелді #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Әрекет өнімнің нұсқасын ProductsPricePerCustomer=Бір тұтынушыға өнім бағасы ProductSupplierExtraFields=Қосымша атрибуттар (жеткізуші бағасы) DeleteLinkedProduct=Комбинацияға қосылған еншілес өнімді жойыңыз -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Орташа баға PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/kk_KZ/projects.lang b/htdocs/langs/kk_KZ/projects.lang index 6c4c637acdf..bdd8463cfb3 100644 --- a/htdocs/langs/kk_KZ/projects.lang +++ b/htdocs/langs/kk_KZ/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Бұл көрініс сізге оқуға рұқсат еті TasksDesc=Бұл көрініс барлық жобалар мен тапсырмаларды ұсынады (сіздің пайдаланушы рұқсаттары сізге бәрін қарауға рұқсат береді). AllTaskVisibleButEditIfYouAreAssigned=Білікті жобалар үшін барлық тапсырмалар көрінеді, бірақ сіз тек таңдалған пайдаланушыға берілген тапсырма үшін уақытты енгізе аласыз. Егер уақытты енгізу қажет болса, тапсырма беріңіз. OnlyYourTaskAreVisible=Сізге берілген тапсырмалар ғана көрінеді. Егер сізге тапсырмаға уақытты енгізу қажет болса және егер тапсырма мұнда көрінбесе, онда сіз тапсырманы өзіңізге тағайындауыңыз керек. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Жобалардың міндеттері ProjectCategories=Жоба тегтері/санаттары NewProject=Жаңа жоба @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Мәртебесі бойынша ашық OpportunitiesStatusForProjects=Мәртебесі бойынша жобалардың жетекші саны ShowProject=Жобаны көрсету ShowTask=Тапсырманы көрсету +SetThirdParty=Set third party SetProject=Жобаны орнату +OutOfProject=Out of project NoProject=Ешқандай жоба анықталмаған немесе тиесілі емес NbOfProjects=Жобалар саны NbOfTasks=Тапсырмалар саны @@ -122,7 +125,8 @@ ValidateProject=Жобаны тексеру ConfirmValidateProject=Бұл жобаны растағыңыз келетініне сенімдісіз бе? CloseAProject=Жобаны жабу ConfirmCloseAProject=Бұл жобаны шынымен де жапқыңыз келе ме? -AlsoCloseAProject=Жобаны жабыңыз (егер сіз әлі де өндірістік тапсырмаларды орындауыңыз керек болса, оны ашық ұстаңыз) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Ашық жоба ConfirmReOpenAProject=Бұл жобаны қайта ашқыңыз келетініне сенімдісіз бе? ProjectContact=Жобаның контактілері @@ -165,7 +169,7 @@ OpportunityProbability=Қорғасын ықтималдығы OpportunityProbabilityShort=Қорғасын зонд. OpportunityAmount=Қорғасын сомасы OpportunityAmountShort=Қорғасын сомасы -OpportunityWeightedAmount=Мүмкіндіктердің өлшенген сомасы +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Опп. өлшенген сома OpportunityAmountAverageShort=Жеткізудің орташа мөлшері OpportunityAmountWeigthedShort=Қорғасынның өлшенген мөлшері @@ -238,7 +242,7 @@ OppStatusPENDING=Күтуде OppStatusWON=Жеңді OppStatusLOST=Жоғалды Budget=Бюджет -AllowToLinkFromOtherCompany=Басқа компаниядан жобаны байланыстыруға рұқсат беру үтірмен бөлінген үшінші тарап идентификаторлары: осы үшінші тараптардың барлық жобаларын байланыстыра алады (Мысал: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=%s соңғы жобалары LatestModifiedProjects=Соңғы %s өзгертілген жобалар OtherFilteredTasks=Басқа сүзгіленген тапсырмалар @@ -259,7 +263,7 @@ TimeSpentInvoiced=Есепке жұмсалатын уақыт TimeSpentForIntervention=Өткізілген уақыт TimeSpentForInvoice=Өткізілген уақыт OneLinePerUser=Бір пайдаланушыға бір жол -ServiceToUseOnLines=Желіде қолдануға арналған қызмет +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=%s шот -фактурасы жобаға жұмсалған уақыттан құрылды InterventionGeneratedFromTimeSpent=%s интервенциясы жобаға жұмсалған уақыттан құрылды ProjectBillTimeDescription=Жобаның тапсырмалары бойынша уақыт кестесін енгізгеніңізді тексеріңіз және жобаның тапсырыс берушісіне есеп айырысу үшін уақыт кестесінен шот -фактураларды құруды жоспарлап отырғаныңызды тексеріңіз (енгізілген уақыт кестелеріне негізделмеген шот -фактураны құруды жоспарлап отырғаныңызды тексермеңіз). Ескерту: Шот -фактураны құру үшін, жобаның «Өткізілген уақыт» қойындысына өтіп, қосылатын жолдарды таңдаңыз. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Пайданың көмегімен есептеледі AddPersonToTask=Сонымен қатар тапсырмаларға қосыңыз UsageOrganizeEvent=Қолданылуы: іс -шараны ұйымдастыру PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Жобаны барлық тапсырмалар аяқталған кезде жабық деп жіктеу (100%% барысы) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Ескерту: 100%% барлық тапсырмалары бар қолданыстағы жобаларға әсер етпейді: оларды қолмен жабуға тура келеді. Бұл опция тек ашық жобаларға әсер етеді. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Есепке алынбаған уақытты таңдаңыз, содан кейін оларды есепке алу үшін «Шот -фактураны құру» жаппай әрекетін таңдаңыз ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/kk_KZ/recruitment.lang b/htdocs/langs/kk_KZ/recruitment.lang index 27eba930a63..0f4d4395473 100644 --- a/htdocs/langs/kk_KZ/recruitment.lang +++ b/htdocs/langs/kk_KZ/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Электрондық пошта жалдаушы ToUseAGenericEmail=Жалпы электрондық поштаны пайдалану үшін. Егер анықталмаса, жұмысқа қабылдауға жауапты адамның электрондық поштасы қолданылады NewCandidature=Жаңа қосымша ListOfCandidatures=Өтінімдер тізімі -RequestedRemuneration=Сыйақы сұралды -ProposedRemuneration=Ұсынылған сыйақы +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Ұсынылған келісім ContractSigned=Шартқа қол қойылды ContractRefused=Келісімшарт бас тартты RecruitmentCandidature=Қолдану JobPositions=Жұмыс орындары RecruitmentCandidatures=Қолданбалар -InterviewToDo=Сұхбаттасу +InterviewToDo=Contacts to follow AnswerCandidature=Қолданбалы жауап YourCandidature=Сіздің өтініміңіз YourCandidatureAnswerMessage=Өтінішіңізге рахмет.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=Жұмыс орны жабық. ExtrafieldsJobPosition=Қосымша атрибуттар (лауазымдар) ExtrafieldsApplication=Қосымша атрибуттар (жұмысқа өтініш) MakeOffer=Ұсыныс жасаңыз +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/kk_KZ/salaries.lang b/htdocs/langs/kk_KZ/salaries.lang index 8e9122593d3..728da39846b 100644 --- a/htdocs/langs/kk_KZ/salaries.lang +++ b/htdocs/langs/kk_KZ/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Бухгалтерлік есептік жазба үшінші пайдаланушыларға қолданылады -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Пайдаланушы карточкасында анықталған арнайы есеп шоты тек қосалқы есепке алу үшін қолданылады. Егер ол пайдаланушының арнайы есептік жазбасы анықталмаса, бұл Бас кітап үшін және қосалқы есепке алудың әдепкі мәні ретінде пайдаланылады. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Жалақы төлеу үшін әдепкі бойынша бухгалтерлік есеп CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Әдепкі бойынша, жалақыны құру кезінде «Жалпы төлемді автоматты түрде жасау» опциясын бос қалдырыңыз Salary=Жалақы @@ -24,3 +24,4 @@ SalariesStatistics=Жалақы статистикасы SalariesAndPayments=Жалақы мен төлемдер ConfirmDeleteSalaryPayment=Бұл жалақы төлемін жойғыңыз келе ме? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/kk_KZ/stocks.lang b/htdocs/langs/kk_KZ/stocks.lang index ecdae9e4e8d..feae7346646 100644 --- a/htdocs/langs/kk_KZ/stocks.lang +++ b/htdocs/langs/kk_KZ/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Болашақтағы күн StocksByLotSerial=Лот/серия бойынша акциялар LotSerial=Лоттар/сериялар LotSerialList=Лоттар/сериялардың тізімі +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Қозғалыстар ErrorWarehouseRefRequired=Қойманың анықтамалық атауы қажет ListOfWarehouses=Қоймалар тізімі @@ -48,7 +49,7 @@ StockCorrection=Қорды түзету CorrectStock=Дұрыс қор StockTransfer=Акцияны аудару TransferStock=Акцияны аудару -MassStockTransferShort=Акцияны жаппай тасымалдау +MassStockTransferShort=Bulk stock change StockMovement=Акциялар қозғалысы StockMovements=Акциялар қозғалысы NumberOfUnit=Бірліктер саны @@ -146,8 +147,9 @@ Replenishments=Толықтырулар NbOfProductBeforePeriod=Таңдалған мерзімге дейінгі қорда бар %s өнімінің саны (<%s) NbOfProductAfterPeriod=Таңдалған кезеңнен кейін қоймада бар %s өнімінің саны (> %s) MassMovement=Жаппай қозғалыс -SelectProductInAndOutWareHouse=Бастапқы қойма мен мақсатты қойманы, өнім мен мөлшерді таңдап, «%s» түймесін басыңыз. Бұл барлық қажетті қозғалыстар үшін жасалғаннан кейін, «%s» түймесін басыңыз. +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Жазбаны аудару +RecordMovements=Record stock movements ReceivingForSameOrder=Бұл тапсырыстың түбіртектері StockMovementRecorded=Акциялардың қозғалысы тіркелді RuleForStockAvailability=Акцияларға қойылатын талаптар туралы ережелер @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=Дабылдар мен қалаған оңтайл ProductStockWarehouseUpdated=Дабыл жаңартылған және қалаған оңтайлы акцияларға арналған қор шегі дұрыс жаңартылды ProductStockWarehouseDeleted=Ескертулер мен қалаған оптималды қорлар үшін шектеулер дұрыс жойылды AddNewProductStockWarehouse=Ескерту мен қалаған оңтайлы қор үшін жаңа шектеу қойыңыз -AddStockLocationLine=Саны азайтыңыз, содан кейін осы өнімге басқа қойма қосу үшін басыңыз +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Түгендеу күні Inventories=Inventories NewInventory=Жаңа инвентарь @@ -234,7 +236,7 @@ StockIncrease=Акциялардың көбеюі StockDecrease=Акцияның төмендеуі InventoryForASpecificWarehouse=Белгілі бір қойма үшін инвентаризация InventoryForASpecificProduct=Белгілі бір өнімге арналған инвентаризация -StockIsRequiredToChooseWhichLotToUse=Қандай лот қолданылатынын таңдау үшін акция қажет +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Мәжбүрлеу AlwaysShowFullArbo=Қойма сілтемелерінің қалқымалы терезесінде қойманың толық ағашын көрсету (Ескерту: Бұл өнімділікті күрт төмендетуі мүмкін) StockAtDatePastDesc=Сіз мұнда акцияларды (нақты акцияларды) бұрын берілген күні көре аласыз @@ -254,7 +256,7 @@ ReOpen=Қайта ашу ConfirmFinish=Сіз түгендеудің жабылғанын растайсыз ба? Бұл сіздің акцияңызды инвентаризацияға енгізілген нақты мөлшерге дейін жаңарту үшін барлық акция қозғалысын тудырады. ObjectNotFound=%s табылмады MakeMovementsAndClose=Қозғалыс жасаңыз және жабыңыз -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=Әдепкі бойынша, өнімнің «қор» қойындысында пакеттік мәліметтерді көрсетіңіз CollapseBatchDetailHelp=Сіз пакеттер модулінің конфигурациясында пакеттік егжей -тегжейлі дисплейді орната аласыз ErrorWrongBarcodemode=Штрихкод режимі белгісіз @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=Штрих -коды бар өнім жоқ WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Started ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. -StockChangeDisabled=Change on stock disabled +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/kk_KZ/ticket.lang b/htdocs/langs/kk_KZ/ticket.lang index 26b8925094c..4a7f38b7f5d 100644 --- a/htdocs/langs/kk_KZ/ticket.lang +++ b/htdocs/langs/kk_KZ/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Билеттерді жою Permission56004=Билеттерді басқару Permission56005=Барлық үшінші тараптардың билеттерін қараңыз (сыртқы пайдаланушылар үшін тиімді емес, әрқашан олар тәуелді үшінші жақпен шектеледі) +Tickets=Tickets TicketDictType=Билет - түрлері TicketDictCategory=Билет - топтар TicketDictSeverity=Билет - ауырлық @@ -90,8 +91,8 @@ TicketPublicAccess=Сәйкестендіруді қажет етпейтін ж TicketSetupDictionaries=Билеттің түрі, маңыздылығы мен аналитикалық кодтары сөздіктерден конфигурацияланады TicketParamModule=Айнымалы модульді баптау TicketParamMail=Электрондық поштаны реттеу -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Билетті жасағаннан кейін мәтіндік хабарлама жіберіледі @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Мұнда көрсетілген мәтін ашық и TicketParamPublicInterface=Жалпыға ортақ интерфейсті орнату TicketsEmailMustExist=Билетті жасау үшін бар электрондық пошта мекенжайын талап етіңіз TicketsEmailMustExistHelp=Жалпыға қолжетімді интерфейсте жаңа билетті жасау үшін электрондық пошта мекенжайын дерекқорға енгізу қажет. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Жалпыға ортақ интерфейс TicketUrlPublicInterfaceLabelAdmin=Жалпыға ортақ интерфейске арналған балама URL TicketUrlPublicInterfaceHelpAdmin=Веб -сервердің бүркеншік атын анықтауға және осылайша басқа интерфейспен жалпыға ортақ интерфейсті қол жетімді етуге болады (сервер осы жаңа URL -де прокси ретінде әрекет етуі керек) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Билет енді тағайындалды TicketChangeType=Түрін өзгерту TicketChangeCategory=Аналитикалық кодты өзгертіңіз TicketChangeSeverity=Ауырлық дәрежесін өзгерту -TicketAddMessage=Хабар қосу -AddMessage=Хабар қосу +TicketAddMessage=Add private message MessageSuccessfullyAdded=Билет қосылды TicketMessageSuccessfullyAdded=Хабар сәтті қосылды TicketMessagesList=Хабарламалар тізімі @@ -202,8 +206,8 @@ TicketSeverity=Ауырлығы ShowTicket=Билетті қараңыз RelatedTickets=Қатысты билеттер TicketAddIntervention=Интервенцияны құру -CloseTicket=Жабу | Билетті шешу -AbandonTicket=Билеттен бас тарту +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Жабу | Билетті шешіңіз ConfirmCloseAticket=Билеттің жабылуын растаңыз ConfirmAbandonTicket=Билеттің жабылғанын растадыңыз ба? @@ -217,18 +221,17 @@ SendMessageByEmail=Хабарды электрондық пошта арқылы TicketNewMessage=Жаңа хабарлама ErrorMailRecipientIsEmptyForSendTicketMessage=Алушы бос. Электрондық пошта жіберілмейді TicketGoIntoContactTab=Оларды таңдау үшін «Контактілер» қойындысына өтіңіз -TicketMessageMailIntro=Кіріспе +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Бұл мәтін электрондық поштаның басында ғана қосылады және сақталмайды. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Қолтаңба -TicketMessageMailSignatureHelp=Бұл мәтін электрондық поштаның соңына ғана қосылады және сақталмайды. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Жауап электрондық поштасының қолтаңбасы -TicketMessageMailSignatureHelpAdmin=Бұл мәтін жауап хабарынан кейін енгізіледі. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Билеттер картасындағы хабарламалар тізімінде тек осы мәтін сақталады. TicketMessageSubstitutionReplacedByGenericValues=Ауыстыру айнымалылары жалпы мәндермен ауыстырылады. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Содан бері уақыт өтті TicketTimeToRead=Оқуға дейін уақыт өтті TicketTimeElapsedBeforeSince=Уақыт бұрын / кейін өтті @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Билетте %s деген тақы TicketAssignedToYou=Билет тағайындалды TicketAssignedEmailBody=Сізге %s берген #%s билеті тағайындалды MarkMessageAsPrivate=Хабарды жеке деп белгілеу +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Бұл хабарлама сыртқы пайдаланушыларға көрсетілмейді TicketEmailOriginIssuer=Билеттердің шыққан жеріндегі эмитент InitialMessage=Бастапқы хабарлама @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Келесі сілтемені басу TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Бұл электрондық поштаға тікелей жауап бермеңіз! Интерфейске жауап беру үшін сілтемені пайдаланыңыз. TicketPublicInfoCreateTicket=Бұл форма біздің билік жүйесінде қолдау билетін жазуға мүмкіндік береді. -TicketPublicPleaseBeAccuratelyDescribe=Мәселені нақты сипаттаңыз. Сіздің сұранысты дұрыс анықтауға мүмкіндік беретін барынша көп ақпарат беріңіз. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Билетті қадағалау идентификаторын енгізіңіз TicketTrackId=Жалпы қадағалау идентификаторы OneOfTicketTrackId=Сіздің бақылау идентификаторыңыздың бірі diff --git a/htdocs/langs/kk_KZ/users.lang b/htdocs/langs/kk_KZ/users.lang index b1d4b6e368f..a6510d87401 100644 --- a/htdocs/langs/kk_KZ/users.lang +++ b/htdocs/langs/kk_KZ/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Топтан шығару PasswordChangedAndSentTo=Құпия сөз өзгертілді және %s мекенжайына жіберілді. PasswordChangeRequest= %s паролін өзгертуді сұрау PasswordChangeRequestSent= %s үшін %s поштасына құпия сөзді өзгерту туралы сұрау. -IfLoginExistPasswordRequestSent=Егер бұл кіру жарамды тіркелгі болса, құпия сөзді қалпына келтіру үшін электрондық пошта жіберілді. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Егер бұл электрондық пошта жарамды тіркелгі болса, құпия сөзді қалпына келтіру үшін электрондық пошта жіберілді. ConfirmPasswordReset=Құпия сөзді қалпына келтіруді растаңыз MenuUsersAndGroups=Пайдаланушылар мен топтар @@ -68,7 +68,6 @@ CreateDolibarrLogin=Пайдаланушы жасаңыз CreateDolibarrThirdParty=Үшінші тарап құру LoginAccountDisableInDolibarr=Dolibarr есептік жазбасы өшірілген. UsePersonalValue=Жеке құндылықты қолданыңыз -InternalUser=Ішкі қолданушы ExportDataset_user_1=Қолданушылар және олардың қасиеттері DomainUser=%s домен қолданушысы Reactivate=Қайта қосыңыз @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/kk_KZ/website.lang b/htdocs/langs/kk_KZ/website.lang index 1d2f20af0f0..0dc4bfb2ce7 100644 --- a/htdocs/langs/kk_KZ/website.lang +++ b/htdocs/langs/kk_KZ/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Код +WebsiteName=Name of the website WebsiteSetupDesc=Қолданғыңыз келетін веб -сайттарды осы жерден жасаңыз. Содан кейін оларды өңдеу үшін веб -сайттар мәзіріне өтіңіз. DeleteWebsite=Веб -сайтты жою ConfirmDeleteWebsite=Бұл веб -сайтты шынымен жойғыңыз келе ме? Оның барлық беттері мен мазмұны жойылады. Жүктелген файлдар (мысалы медиа каталогында, ECM модулінде ...) қалады. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=HTML тақырыбының төменгі жағындағ WEBSITE_ROBOT=Роботтық файл (robots.txt) WEBSITE_HTACCESS=Веб -сайт .htaccess файлы WEBSITE_MANIFEST_JSON=Manifest.json веб -сайты -WEBSITE_README=README.md файлы WEBSITE_KEYWORDSDesc=Мәндерді ажырату үшін үтірді қолданыңыз -EnterHereLicenseInformation=Мұнда README.md файлын толтыру үшін мета деректерді немесе лицензия ақпаратын енгізіңіз. егер сіз веб -сайтыңызды шаблон ретінде таратсаңыз, онда файл азғырылған пакетке қосылады. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML тақырыбы (тек осы бетке тән) PageNameAliasHelp=Беттің аты немесе бүркеншік аты.
    Бұл бүркеншік атау веб -сервердің виртуалды хостынан (Apacke, Nginx, ... сияқты) жұмыс жасағанда, SEO URL мекенжайын жасау үшін де қолданылады. Бұл бүркеншік атты өңдеу үшін « %s » түймесін пайдаланыңыз. EditTheWebSiteForACommonHeader=Ескерту: Егер сіз барлық беттерге арналған дербес тақырыпты анықтағыңыз келсе, тақырыпты бетте/контейнерде емес, сайт деңгейінде өңдеңіз. @@ -42,10 +43,12 @@ ViewPageInNewTab=Бетті жаңа қойындыда қарау SetAsHomePage=Басты бет ретінде орнату RealURL=Нақты URL ViewWebsiteInProduction=Негізгі URL мекенжайларын пайдаланып веб -сайтты қараңыз +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Apache виртуалды хостын орнатуда қолданылатын мысал: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Веб -сайтыңызды басқа Dolibarr хостинг провайдерімен іске қосыңыз
    Егер сізде Интернетте Apache немесе NGinx сияқты веб -сервер жоқ болса, сіз өзіңіздің веб -сайтыңызды басқа Dolibarr хостинг провайдерімен қамтамасыз ететін басқа Dolibarr данасына экспорттауға және импорттауға болады. веб -сайт модулімен біріктіру. сайтында кейбір Dolibarr хостинг провайдерлерінің тізімін таба аласыз https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=Оқыңыз WritePerm=Жазу @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Редактордағы «Дереккөз» ба YouCanEditHtmlSource=
    Сіз PHP кодын <? php? a0012c7d7f00770 Келесі жаһандық айнымалылар қол жетімді: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    Сондай -ақ, келесі синтаксисі бар басқа бет/контейнер мазмұнын қосуға болады:
    a0e784c0fc04 ? >


    Сіз келесі синтаксис (: істей емес шығыс нөмірге дейін кез келген мазмұн Ескерту): басқа бет / контейнерлерде бағытын өзгерту енгізе аласыз
    < PHP redirectToContainer ( 'alias_of_container_to_redirect_to'); ? құжаттарына сақталған файлға жүктеуге үшін сілтемені қамтуы үшін
    <a HREF = «alias_of_page_to_link_to.php» >mylink<a>

    : >


    синтаксисті пайдаланыңыз, басқа бетке сілтеме қосу үшін
    каталог, пайдалану document.php Қабық:
    Мысал, құжаттар / ECM (кіруіңіз қажет) ішіне файл үшін, синтаксис:?
    <a HREF = «/ document.php modulepart = ECM & файл = [relative_dir / ] filename.ext «>
    Құжаттарға/медиаларға файл үшін (жалпыға қол жетімді каталог), синтаксис:
    a0e7843947c09bz0 «/document.php?modulepart=medias&file=itorialre_dir/] /document.php?hashp=publicsharekeyoffile">

    , каталогына құжаттарына сақталған бір суретті қамтиды viewimage.php тасымалын пайдалану үшін: мысал
    , сурет үшін құжаттар / бұқаралық ақпарат құралдарының (ашық жалпыға қол жетімді каталог), синтаксис:
    <img src = «/viewimage.php? modulepart = medias&file #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Бөлісу сілтемесімен бөлісілген кескін үшін (файлдың ортақ хэш кілтін қолдана отырып, ашық қатынас), синтаксис:
    <img src = «/viewimage.php? Hashp = 12345679012z00f01f01f0f1f0f4f0f0f0f0f0f09f0f0f0f09b029» -YouCanEditHtmlSourceMore=
    HTML немесе динамикалық кодтың басқа мысалдары қол жетімді вики құжаттамасы
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Бетті/контейнерді клондау CloneSite=Сайтты клондау SiteAdded=Веб -сайт қосылды @@ -137,7 +140,7 @@ PagesRegenerated=%s бет (тер)/контейнер (лер) жаңартыл RegenerateWebsiteContent=Веб -сайттың кэш файлдарын қалпына келтіріңіз AllowedInFrames=Кадрларда рұқсат етілген DefineListOfAltLanguagesInWebsiteProperties=Веб -сайт сипаттарына барлық қол жетімді тілдердің тізімін анықтаңыз. -GenerateSitemaps=Веб -сайттың сайт картасының файлын жасаңыз +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Егер растасаңыз, сайт картасының файлын өшіресіз ... ConfirmSitemapsCreation=Сайт картасының құрылуын растаңыз SitemapGenerated= %s сайт картасының файлы жасалды @@ -145,3 +148,10 @@ ImportFavicon=Фавикон ErrorFaviconType=Фавикон PNG болуы керек ErrorFaviconSize=Favicon өлшемі 16x16, 32x32 немесе 64x64 болуы керек FaviconTooltip=Png (16x16, 32x32 немесе 64x64) болуы керек суретті жүктеңіз +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/kk_KZ/withdrawals.lang b/htdocs/langs/kk_KZ/withdrawals.lang index 7dcc0230860..7e0b0daeab5 100644 --- a/htdocs/langs/kk_KZ/withdrawals.lang +++ b/htdocs/langs/kk_KZ/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Кредиттік аударым арқылы т InvoiceWaitingWithdraw=Шот -фактура тікелей дебетті күтуде InvoiceWaitingPaymentByBankTransfer=Шот -фактура несие аударымын күтуде AmountToWithdraw=Шығарылатын сома +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=«%s» үшін ашық шот жоқ. Сұраныс жасау үшін шот -фактуралық картадағы '%s' қойындысына өтіңіз. -NoSupplierInvoiceToWithdraw=Ашық «Тікелей несие сұраныстары» бар жеткізуші шот -фактурасы күтілмейді. Сұраныс жасау үшін шот -фактуралық картадағы '%s' қойындысына өтіңіз. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Пайдаланушы жауапты WithdrawalsSetup=Тікелей дебеттік төлемді реттеу CreditTransferSetup=Несие аударымын реттеу @@ -41,6 +42,7 @@ CreditTransferStatistics=Несие аударымдарының статист Rejects=Бас тартады LastWithdrawalReceipt=Соңғы %s тікелей дебеттік түсімдер MakeWithdrawRequest=Тікелей дебеттік төлем туралы өтініш жасаңыз +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Несие аудару туралы өтініш жасаңыз WithdrawRequestsDone=%s тікелей дебет бойынша төлем сұраулары жазылды BankTransferRequestsDone=%s несие аудару сұраныстары жазылды @@ -99,8 +101,11 @@ CreditDate=Несие қосылған WithdrawalFileNotCapable=%s (сіздің елге қолдау көрсетілмейді) үшін сіздің елден ақша алу туралы түбіртек файлын жасау мүмкін емес ShowWithdraw=Тікелей дебеттік тапсырысты көрсету IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Алайда, егер шот -фактурада әлі де өңделмеген тікелей дебеттік төлем бойынша кемінде бір тапсырыс болса, ол алдын ала алуды басқаруға мүмкіндік беру үшін төленбейді. -DoStandingOrdersBeforePayments=Бұл қойынды сізге тікелей дебеттік төлем тапсырмасын сұрауға мүмкіндік береді. Дайын болғаннан кейін банктік мәзірге өтіңіз-тікелей дебеттік тапсырысты құру және басқару үшін. Тікелей дебеттік тапсырыс жабылған кезде, шот -фактуралар бойынша төлем автоматты түрде жазылады, ал егер төлемнің қалған бөлігі нөлге тең болса, шот -фактуралар жабылады. -DoCreditTransferBeforePayments=Бұл қойынды несиелік аударым тапсырысын сұрауға мүмкіндік береді. Аяқтағаннан кейін несие аударымының тапсырысын жасау және басқару үшін Банк-> Кредиттік аударым арқылы төлем мәзіріне өтіңіз. Несие аударымының тапсырысы жабылған кезде шот -фактуралар бойынша төлем автоматты түрде жазылады, ал егер төлемнің қалған бөлігі бос болса, шот -фактуралар жабылады. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Дебеттік тапсырыс файлы CreditTransferFile=Несие аудару файлы SetToStatusSent=«Файл жіберілді» күйіне орнатыңыз @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Бос сомаға тікелей дебетті SepaMandate=SEPA тікелей дебеттік мандаты SepaMandateShort=SEPA мандаты PleaseReturnMandate=Бұл мандат формасын %s электрондық поштасына немесе пошта арқылы қайтарыңыз -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Кредитор идентификаторы CreditorName=Кредитордың аты SEPAFillForm=(B) * деп белгіленген барлық өрістерді толтырыңыз. @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Орындау күні CreateForSepa=Тікелей дебеттік файл жасаңыз ICS=Кредитордың идентификаторы - ICS +IDS=Debitor Identifier END_TO_END=«EndToEndId» SEPA XML тегі - бір транзакцияға тағайындалған бірегей идентификатор USTRD=SEPA XML «құрылымдалмаған» тегі ADDDAYS=Орындау күніне күндерді қосыңыз @@ -154,3 +160,4 @@ ErrorICSmissing=%s банктік шотында ICS жоқ TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Тікелей дебеттік тапсырыстың жалпы сомасы жолдардың сомасынан өзгеше WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/kk_KZ/workflow.lang b/htdocs/langs/kk_KZ/workflow.lang index c9ac544255c..20ba196f12d 100644 --- a/htdocs/langs/kk_KZ/workflow.lang +++ b/htdocs/langs/kk_KZ/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Коммерциялық ұсынысқа descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Коммерциялық ұсынысқа қол қойылғаннан кейін клиенттің шот -фактурасын автоматты түрде жасаңыз (жаңа шот -фактурада ұсыныстың сомасы болады) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Келісім -шарт расталғаннан кейін клиенттің шот -фактурасын автоматты түрде жасаңыз descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Сату тапсырысы жабылғаннан кейін клиенттің шот -фактурасын автоматты түрде жасаңыз (жаңа шот -фактурада тапсырыспен бірдей сома болады) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Байланыстырылған бастапқы ұсынысты сату тапсырысы есепке қойылған кезде шот ретінде жіктеңіз (және егер тапсырыс сомасы қол қойылған байланыстырылған ұсыныстың жалпы сомасына тең болса) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Байланыстырылған бастапқы ұсынысты клиенттің шот -фактурасы расталған кезде шот ретінде жіктеңіз (егер шот -фактураның сомасы қол қойылған байланыстырылған ұсыныстың жалпы сомасына тең болса) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Клиенттердің шо descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Байланысты бастапқы сату тапсырысын тұтынушы шот -фактурасы төленген күйге қойылған кезде шот ретінде жіктеңіз (егер шот -фактураның сомасы байланыстырылған тапсырыстың жалпы сомасымен бірдей болса) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Байланысты бастапқы сату тапсырысын жеткізілім расталған кезде жіберілген деп жіктеңіз (және егер барлық жөнелтімдердің саны жаңартылатын тәртіппен бірдей болса) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Байланысты бастапқы сату тапсырысын жеткізілім жабылған кезде жіберілген деп жіктеңіз (және егер барлық жөнелтімдер саны жаңартылатын тәртіппен бірдей болса) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Байланысты көзі бар жеткізуші ұсынысын жеткізуші шот -фактурасы расталған кезде шот ретінде жіктеңіз (егер шот -фактураның сомасы байланыстырылған ұсыныстың жалпы сомасына тең болса) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Сатып алушының шот -фактурасы расталған кезде байланысқан бастапқы сатып алу тапсырысын шот ретінде жіктеңіз (егер шот -фактураның сомасы байланыстырылған тапсырыстың жалпы сомасымен бірдей болса) -descWORKFLOW_BILL_ON_RECEPTION=Байланыстырылған жеткізуші тапсырысы расталған кезде қабылдауды «есепке» жатқызыңыз +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Билет жабылған кезде билетке байланысты барлық араласуларды жабыңыз AutomaticCreation=Автоматты түрде құру AutomaticClassification=Автоматты жіктеу # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Клиенттердің шот -фактурасы расталған кезде байланыстырылған бастапқы жеткізуді жабық деп жіктеңіз +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/km_KH/datapolicy.lang b/htdocs/langs/km_KH/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/km_KH/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/km_KH/errors.lang b/htdocs/langs/km_KH/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/km_KH/errors.lang +++ b/htdocs/langs/km_KH/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/km_KH/externalsite.lang b/htdocs/langs/km_KH/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/km_KH/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/km_KH/ftp.lang b/htdocs/langs/km_KH/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/km_KH/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/km_KH/holiday.lang b/htdocs/langs/km_KH/holiday.lang index 3d0ae64be0f..1921b9ed794 100644 --- a/htdocs/langs/km_KH/holiday.lang +++ b/htdocs/langs/km_KH/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Start date @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Reason UserCP=User ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/km_KH/ticket.lang b/htdocs/langs/km_KH/ticket.lang index 9bcdcb341fd..71f21f3333c 100644 --- a/htdocs/langs/km_KH/ticket.lang +++ b/htdocs/langs/km_KH/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Signature -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=New user NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/kn_IN/companies.lang b/htdocs/langs/kn_IN/companies.lang index e4033b9731e..4060aec5cc0 100644 --- a/htdocs/langs/kn_IN/companies.lang +++ b/htdocs/langs/kn_IN/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=ವಿಳಾಸ State=ರಾಜ್ಯ / ಪ್ರಾಂತ್ಯ +StateId=State ID StateCode=State/Province code StateShort=State Region=ಪ್ರದೇಶ Region-State=Region - State Country=ದೇಶ CountryCode=ದೇಶ ಕೋಡ್ -CountryId=ದೇಶ ಐಡಿ +CountryId=Country ID Phone=ದೂರವಾಣಿ PhoneShort=ದೂರವಾಣಿ Skype=ಸ್ಕೈಪ್ @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/kn_IN/datapolicy.lang b/htdocs/langs/kn_IN/datapolicy.lang new file mode 100644 index 00000000000..9f7ab80b21f --- /dev/null +++ b/htdocs/langs/kn_IN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = ಗ್ರಾಹಕ +DATAPOLICY_TIERS_PROSPECT = ನಿರೀಕ್ಷಿತ +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = ಪೂರೈಕೆದಾರ +DATAPOLICY_CONTACT_CLIENT = ಗ್ರಾಹಕ +DATAPOLICY_CONTACT_PROSPECT = ನಿರೀಕ್ಷಿತ +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = ಪೂರೈಕೆದಾರ +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/kn_IN/errors.lang b/htdocs/langs/kn_IN/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/kn_IN/errors.lang +++ b/htdocs/langs/kn_IN/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/kn_IN/externalsite.lang b/htdocs/langs/kn_IN/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/kn_IN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/kn_IN/ftp.lang b/htdocs/langs/kn_IN/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/kn_IN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/kn_IN/holiday.lang b/htdocs/langs/kn_IN/holiday.lang index 3d0ae64be0f..bfb98a1138b 100644 --- a/htdocs/langs/kn_IN/holiday.lang +++ b/htdocs/langs/kn_IN/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Start date @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Reason UserCP=User ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=ಗುಂಪುಗಳು +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang index ff24fd1b843..870bcf2858d 100644 --- a/htdocs/langs/kn_IN/main.lang +++ b/htdocs/langs/kn_IN/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=ತೆರೆಯಲಾಗಿದೆ Upload=Upload ToLink=Link Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Password -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=ಹೆಸರು NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Description DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=ಇತರ Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index 30f9c2aa668..e2f66380bab 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=원장 BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=매출분개장 -ACCOUNTING_PURCHASE_JOURNAL=구매분개장 -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=날짜 @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=경비 보고서 AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index 59377d0fe73..43cc111e5a0 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=다음 값(대체) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=PHP 설정에서 한도가 설정되어 있지 않습니다. MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Full path to antivirus command AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= More parameters on command line @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=All barcode values have been removed @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -714,13 +714,14 @@ Permission27=Delete commercial proposals Permission28=Export commercial proposals Permission31=Read products Permission32=Create/modify products +Permission33=Read prices products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Read interventions Permission62=Create/modify interventions @@ -739,6 +740,7 @@ Permission79=Create/modify subscriptions Permission81=Read customers orders Permission82=Create/modify customers orders Permission84=Validate customers orders +Permission85=Generate the documents sales orders Permission86=Send customers orders Permission87=Close customers orders Permission88=Cancel customers orders @@ -766,9 +768,10 @@ Permission122=Create/modify third parties linked to user Permission125=Delete third parties linked to user Permission126=Export third parties Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Read providers Permission147=Read stats Permission151=Read direct debit payment orders @@ -873,6 +876,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Read services Permission532=Create/modify services +Permission533=Read prices services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services @@ -883,6 +887,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -969,6 +976,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Setup saved SetupNotSaved=Setup not saved @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1187,7 +1197,7 @@ BankModuleNotActive=Bank accounts module not enabled ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=알리미 -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1228,6 +1238,7 @@ BrowserName=Browser name BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=계약서 MailToSendReception=Receptions +MailToExpenseReport=경비 보고서 MailToThirdparty=협력업체 MailToMember=구성원 MailToUser=사용자 @@ -2019,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,27 +2065,46 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2082,14 +2118,14 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2185,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/ko_KR/companies.lang b/htdocs/langs/ko_KR/companies.lang index d96fdcb98fb..2c70c284ad2 100644 --- a/htdocs/langs/ko_KR/companies.lang +++ b/htdocs/langs/ko_KR/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=주소 State=시 /도 +StateId=State ID StateCode=State/Province code StateShort=상태 Region=지방 Region-State=Region - State Country=국가 CountryCode=국가 코드 -CountryId=국가 ID +CountryId=Country ID Phone=전화 PhoneShort=전화 Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=기타 ProfId6ShortCM=- ProfId1CO=프로필 Id 1 (R.U.T.) @@ -443,7 +444,7 @@ AddAddress=주소 추가 SupplierCategory=Vendor category JuridicalStatus200=독립적인 DeleteFile=파일 삭제 -ConfirmDeleteFile=이 파일을 정말로 삭제 하시겠습니까? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=영업 담당자에게 할당 됨 Organization=조직 FiscalYearInformation=Fiscal Year diff --git a/htdocs/langs/ko_KR/datapolicy.lang b/htdocs/langs/ko_KR/datapolicy.lang new file mode 100644 index 00000000000..2c8d2850ace --- /dev/null +++ b/htdocs/langs/ko_KR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = 고객 +DATAPOLICY_TIERS_PROSPECT = 잠재 고객 +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = 고객 +DATAPOLICY_CONTACT_PROSPECT = 잠재 고객 +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ko_KR/errors.lang b/htdocs/langs/ko_KR/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/ko_KR/errors.lang +++ b/htdocs/langs/ko_KR/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/ko_KR/externalsite.lang b/htdocs/langs/ko_KR/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/ko_KR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/ko_KR/ftp.lang b/htdocs/langs/ko_KR/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/ko_KR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ko_KR/holiday.lang b/htdocs/langs/ko_KR/holiday.lang index fa8e500cd05..339f6e476fc 100644 --- a/htdocs/langs/ko_KR/holiday.lang +++ b/htdocs/langs/ko_KR/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Monthly statement MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=시작일 @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=You must select a start date. NoDateFin=You must select an end date. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=이유 UserCP=사용자 ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Previous Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=그룹 +users=사용자 +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/ko_KR/mails.lang b/htdocs/langs/ko_KR/mails.lang index 23c6d5001f6..9ab5f2a9af4 100644 --- a/htdocs/langs/ko_KR/mails.lang +++ b/htdocs/langs/ko_KR/mails.lang @@ -7,10 +7,10 @@ MailCard=EMailing card MailRecipients=Recipients MailRecipient=Recipient MailTitle=기술 -MailFrom=Sender +MailFrom=부터 MailErrorsTo=Errors to MailReply=Reply to -MailTo=Receiver(s) +MailTo=To MailToUsers=To user(s) MailCC=Copy to MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang index c5b9f89230a..b9db2b52c63 100644 --- a/htdocs/langs/ko_KR/main.lang +++ b/htdocs/langs/ko_KR/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=cid0kr FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=사용 가능한 대체 변수 NoTranslation=번역 없음 Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=유효한 Approve=승인 Disapprove=부결 ReOpen=다시 열기 +OpenVerb=열기 Upload=Upload ToLink=링크 Select=선택 @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=사용자 그룹이 정의되지 않았습니다. Password=암호 -PasswordRetype=암호를 다시 입력하십시오. +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=이 데모에서는 많은 기능 / 모듈이 비활성화되어 있습니다. Name=이름 NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=설명 DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=문서 템플릿 DefaultModel=기본 문서 템플릿 Action=이벤트 @@ -344,7 +353,7 @@ KiloBytes=킬로바이트 MegaBytes=메가 바이트 GigaBytes=기가 바이트 TeraBytes=테라 바이트 -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=이 멤버에 대한 이벤트 ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s 늦게 ToDo=할 일 Completed=Completed @@ -517,6 +527,7 @@ or=또는 Other=기타 Others=기타 OtherInformations=Other information +Workflow=Workflow Quantity=수량 Qty=수량 ChangedBy=변경자 @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=첨부 파일 및 문서 JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=기능 사용 중지됨 MoveBox=위젯 이동 Offered=제안됨 NotEnoughPermissions=이 작업에 대한 권한이 없습니다. +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=세션 이름 Method=방법 Receive=수령 @@ -798,6 +811,7 @@ URLPhoto=사진 / 로고의 URL SetLinkToAnotherThirdParty=다른 협력업체 링크 LinkTo=다음으로 연결 LinkToProposal=제안서 링크 +LinkToExpedition= Link to expedition LinkToOrder=주문 링크 LinkToInvoice=송장 링크 LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=다운로드 DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=환율 업데이트 Fiscalyear=회계 연도 ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=계약서 SearchIntoCustomerShipments=고객 출하 SearchIntoExpenseReports=경비 보고서 SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=율 +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=끝내기 +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=내부 사용자 +ExternalUser=외부 사용자 diff --git a/htdocs/langs/ko_KR/members.lang b/htdocs/langs/ko_KR/members.lang index 77ba9afee60..c5f2948a4d6 100644 --- a/htdocs/langs/ko_KR/members.lang +++ b/htdocs/langs/ko_KR/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=For security reasons, you must be granted permissions to edit all users to be able to link a member to a user that is not yours. SetLinkToUser=Link to a Dolibarr user SetLinkToThirdParty=Link to a Dolibarr third party -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=List of members MembersListToValid=List of draft members (to be validated) MembersListValid=List of valid members @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Member id +MemberId=Member Id +MemberRef=Member Ref NewMember=New member MemberType=Member type MemberTypeId=Member type id @@ -159,11 +160,11 @@ HTPasswordExport=htpassword file generation NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Complementary action on recording -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account MoreActionInvoiceOnly=Create an invoice with no payment -LinkToGeneratedPages=Generate visit cards +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. DocForAllMembersCards=Generate business cards for all members DocForOneMemberCards=Generate business cards for a particular member @@ -218,3 +219,5 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/ko_KR/users.lang b/htdocs/langs/ko_KR/users.lang index 707e56b3577..8541b100b1f 100644 --- a/htdocs/langs/ko_KR/users.lang +++ b/htdocs/langs/ko_KR/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Remove from group PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Request to change password for %s sent to %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Users & Groups @@ -68,7 +68,6 @@ CreateDolibarrLogin=Create a user CreateDolibarrThirdParty=Create a third party LoginAccountDisableInDolibarr=Account disabled in Dolibarr. UsePersonalValue=Use personal value -InternalUser=내부 사용자 ExportDataset_user_1=Users and their properties DomainUser=Domain user %s Reactivate=Reactivate @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index e5bbd886e8d..9fcd2de4073 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=ປະເທດທີ່ບໍ່ຢູ່ໃນ EEC CountriesInEECExceptMe=ປະເທດໃນ EEC ຍົກເວັ້ນ %s CountriesExceptMe=ທຸກປະເທດຍົກເວັ້ນ %s AccountantFiles=ສົ່ງອອກເອກະສານແຫຼ່ງທີ່ມາ -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=ເພື່ອສົ່ງອອກວາລະສານຂອງເຈົ້າ, ໃຊ້ລາຍການເມນູ %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=ເບິ່ງຕາມບັນຊີບັນຊີ VueBySubAccountAccounting=ເບິ່ງຕາມບັນຊີຍ່ອຍບັນຊີ @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=ບັນຊີບັນຊີຫຼັກສ MainAccountForUsersNotDefined=ບັນຊີບັນຊີຫຼັກສໍາລັບຜູ້ໃຊ້ບໍ່ໄດ້ກໍານົດໄວ້ໃນການຕັ້ງ MainAccountForVatPaymentNotDefined=ບັນຊີບັນຊີຫຼັກສໍາລັບການຊໍາລະອາກອນມູນຄ່າເພີ່ມທີ່ບໍ່ໄດ້ກໍານົດໄວ້ໃນການຕັ້ງ MainAccountForSubscriptionPaymentNotDefined=ບັນຊີບັນຊີຫຼັກສໍາລັບການຊໍາລະການສະnotັກໃຊ້ບໍ່ໄດ້ກໍານົດໄວ້ໃນການຕັ້ງ +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=ພື້ນທີ່ການບັນຊີ AccountancyAreaDescIntro=ການ ນຳ ໃຊ້ໂມດູນການບັນຊີແມ່ນເຮັດໄດ້ຫຼາຍຂັ້ນຕອນ: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=ປິດໃຊ້ງານການບັນທຶກ ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=ເປີດໃຊ້ງານການສົ່ງອອກສະບັບຮ່າງໃນວາລະສານ ACCOUNTANCY_COMBO_FOR_AUX=ເປີດໃຊ້ບັນຊີລາຍຊື່ combo ສໍາລັບບັນຊີບໍລິສັດຍ່ອຍ (ອາດຈະຊ້າຖ້າເຈົ້າມີພາກສ່ວນທີສາມຫຼາຍ, ທໍາລາຍຄວາມສາມາດໃນການຊອກຫາສ່ວນໃດສ່ວນນຶ່ງຂອງຄ່າ) ACCOUNTING_DATE_START_BINDING=ກຳ ນົດວັນທີເພື່ອເລີ່ມຜູກມັດແລະໂອນເຂົ້າບັນຊີ. ຕ່ ຳ ກວ່າວັນທີນີ້, ທຸລະ ກຳ ຈະບໍ່ຖືກໂອນເຂົ້າບັນຊີ. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=ກ່ຽວກັບການໂອນບັນຊີ, ເລືອກໄລຍະເວລາສະແດງຕາມຄ່າເລີ່ມຕົ້ນ +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=ມີວາລະສານໃ່ +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=ບັນຊີບັນຊີຜົນໄດ້ຮັບ (ກໍາໄລ) ACCOUNTING_RESULT_LOSS=ຜົນບັນຊີບັນຊີ (ຂາດທຶນ) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=ວາລະສານປິດ -ACCOUNTING_ACCOUNT_TRANSFER_CASH=ບັນຊີບັນຊີຂອງການໂອນທະນາຄານຂ້າມຜ່ານ +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=ບັນຊີໂອນເງິນຜ່ານທະນາຄານຊົ່ວຄາວ -ACCOUNTING_ACCOUNT_SUSPENSE=ບັນຊີບັນຊີຂອງການລໍຖ້າ -DONATION_ACCOUNTINGACCOUNT=ບັນຊີບັນຊີເພື່ອລົງທະບຽນການບໍລິຈາກ -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=ບັນຊີບັນຊີເພື່ອລົງທະບຽນການສະັກໃຊ້ +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=ບັນຊີບັນຊີໂດຍມາດຕະຖານເພື່ອລົງທະບຽນເງິນcustomerາກຂອງລູກຄ້າ -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=ບັນຊີບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຊື້ມາ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຊື້ມາໃນ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=ບັນຊີບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຊື້ມາແລະນໍາເຂົ້າອອກຈາກ EEC (ນໍາໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຂາຍແລ້ວ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຂາຍໃນ EEC (ນໍາໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=ບັນຊີບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຂາຍແລະສົ່ງອອກນອກ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບການບໍລິການທີ່ຊື້ມາ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນບໍລິການ) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບການບໍລິການທີ່ຊື້ໃນ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນເອກະສານການບໍລິການ) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=ບັນຊີການບັນຊີໂດຍມາດຕະຖານສໍາລັບການບໍລິການທີ່ຊື້ມາແລະນໍາເຂົ້າອອກຈາກ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນບໍລິການ) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບການບໍລິການທີ່ຂາຍແລ້ວ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນບໍລິການ) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=ບັນຊີການບັນຊີໂດຍມາດຕະຖານສໍາລັບການບໍລິການທີ່ຂາຍໃນ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນບໍລິການ) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=ບັນຊີບັນຊີໂດຍມາດຕະຖານສໍາລັບການບໍລິການທີ່ຂາຍແລະສົ່ງອອກນອກ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນເອກະສານການບໍລິການ) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=ປະເພດເອກະສານ Docdate=ວັນທີ @@ -211,7 +217,7 @@ Codejournal=Journal JournalLabel=ປ້າຍວາລະສານ NumPiece=ຈໍານວນສິ້ນ TransactionNumShort=ຕົວເລກ. ທຸລະກໍາ -AccountingCategory=ກຸ່ມທີ່ກໍາຫນົດເອງ +AccountingCategory=Custom group of accounts GroupByAccountAccounting=ຈັດກຸ່ມຕາມບັນຊີແຍກປະເພດທົ່ວໄປ GroupBySubAccountAccounting=ຈັດກຸ່ມຕາມບັນຊີ subledger AccountingAccountGroupsDesc=ເຈົ້າສາມາດ ກຳ ນົດທີ່ນີ້ບາງກຸ່ມບັນຊີບັນຊີ. ພວກມັນຈະຖືກນໍາໃຊ້ສໍາລັບບົດລາຍງານການບັນຊີສ່ວນບຸກຄົນ. @@ -265,13 +271,13 @@ Reconcilable=ເຂົ້າກັນໄດ້ TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=ປຶກສາຫາລືຢູ່ທີ່ນີ້ບັນຊີລາຍຊື່ຂອງສາຍໃບເກັບເງິນຂອງລູກຄ້າຜູກມັດ (ຫຼືບໍ່) ເຂົ້າໃນບັນຊີບັນຊີຜະລິດຕະພັນ -DescVentilMore=ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ຖ້າເຈົ້າໃຊ້ຜະລິດຕະພັນຫຼືການບໍລິການທີ່ໄດ້ກໍານົດໄວ້ລ່ວງ ໜ້າ ແລະເຈົ້າຕັ້ງnumberາຍເລກບັນຊີຢູ່ໃນບັດຜະລິດຕະພັນ/ການບໍລິການ, ຄໍາຮ້ອງສະwillັກຈະສາມາດເຮັດການຜູກມັດທັງbetweenົດລະຫວ່າງສາຍໃບເກັບເງິນຂອງເຈົ້າກັບບັນຊີຂອງຕາຕະລາງບັນຊີຂອງເຈົ້າ, ພຽງແຕ່ຢູ່ໃນ ຄລິກດຽວດ້ວຍປຸ່ມ "%s" . ຖ້າບັນຊີບໍ່ໄດ້ຕັ້ງຢູ່ໃນບັດຜະລິດຕະພັນ/ການບໍລິການຫຼືຖ້າເຈົ້າຍັງມີບາງສາຍທີ່ບໍ່ຖືກຜູກມັດກັບບັນຊີ, ເຈົ້າຈະຕ້ອງເຮັດການຜູກມັດດ້ວຍຕົນເອງຈາກເມນູ " %s ". -DescVentilDoneCustomer=ປຶກສາທີ່ນີ້ບັນຊີລາຍຊື່ຂອງແຖວຂອງໃບແຈ້ງ ໜີ້ ລູກຄ້າແລະບັນຊີບັນຊີຜະລິດຕະພັນຂອງເຂົາເຈົ້າ -DescVentilTodoCustomer=ຜູກມັດສາຍໃບຮຽກເກັບເງິນທີ່ຍັງບໍ່ໄດ້ຜູກມັດກັບບັນຊີບັນຊີຜະລິດຕະພັນເທື່ອ -ChangeAccount=ປ່ຽນບັນຊີບັນຊີຜະລິດຕະພັນ/ການບໍລິການສໍາລັບສາຍທີ່ເລືອກດ້ວຍບັນຊີບັນຊີຕໍ່ໄປນີ້: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=ປຶກສາຫາລືຢູ່ທີ່ນີ້ບັນຊີລາຍຊື່ຂອງໃບຮຽກເກັບເງິນຜູ້ຂາຍທີ່ຖືກຜູກມັດຫຼືຍັງບໍ່ທັນຖືກຜູກມັດກັບບັນຊີບັນຊີຜະລິດຕະພັນ (ມີພຽງບັນທຶກທີ່ບໍ່ໄດ້ໂອນເຂົ້າບັນຊີແລ້ວເທົ່ານັ້ນ) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=ປຶກສາທີ່ນີ້ບັນຊີລາຍຊື່ຂອງໃບຮຽກເກັບເງິນຂອງຜູ້ຂາຍແລະບັນຊີບັນຊີຂອງເຂົາເຈົ້າ DescVentilTodoExpenseReport=ຜູກມັດສາຍລາຍງານລາຍຈ່າຍບໍ່ໄດ້ຜູກມັດກັບບັນຊີບັນຊີຄ່າ ທຳ ນຽມແລ້ວ DescVentilExpenseReport=ປຶກສາທີ່ນີ້ລາຍການສາຍລາຍງານລາຍຈ່າຍທີ່ຜູກມັດ (ຫຼືບໍ່) ກັບບັນຊີບັນຊີຄ່າ ທຳ ນຽມ @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=ຖ້າເຈົ້າຕັ້ງບັນຊີ DescVentilDoneExpenseReport=ປຶກສາຫາລືຢູ່ທີ່ນີ້ບັນຊີລາຍຊື່ຂອງລາຍງານຄ່າໃຊ້ຈ່າຍແລະບັນຊີຄ່າທໍານຽມຂອງເຂົາເຈົ້າ Closure=ການປິດປະຈໍາປີ -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=ການດັດແກ້ຫຼືການລຶບລາຍລັກອັກສອນ, ຕົວອັກສອນແລະການລຶບໃດ will ຈະຖືກຫ້າມ. ລາຍການທັງforົດ ສຳ ລັບການອອກ ກຳ ລັງກາຍຕ້ອງຖືກກວດສອບຖ້າບໍ່ດັ່ງນັ້ນຈະປິດບໍ່ໄດ້ ValidateHistory=ຜູກມັດອັດຕະໂນມັດ AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=ການດຸ່ນດ່ຽງ FicheVentilation=ບັດຜູກມັດ GeneralLedgerIsWritten=ທຸລະ ກຳ ຖືກຂຽນໄວ້ໃນປື້ມບັນຊີ GeneralLedgerSomeRecordWasNotRecorded=ບາງທຸລະກໍາບໍ່ສາມາດຖືກເຮັດເປັນວາລະສານໄດ້. ຖ້າບໍ່ມີຂໍ້ຄວາມຜິດພາດອັນອື່ນ, ອັນນີ້ອາດຈະເປັນເພາະວ່າເຂົາເຈົ້າໄດ້ຖືກເຮັດ ໜັງ ສືພິມແລ້ວ. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=ບັນຊີລາຍຊື່ຂອງຜະລິດຕະພັນບໍ່ໄດ້ຜູກມັດກັບບັນຊີການບັນຊີໃດ +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=ປ່ຽນການຜູກມັດ Accounted=ບັນຊີຢູ່ໃນບັນຊີ NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=ການດໍາເນີນງານຕ່າງell AccountingJournalType2=ການຂາຍ AccountingJournalType3=ການຊື້ AccountingJournalType4=ທະນາຄານ -AccountingJournalType5=ບົດລາຍງານຄ່າໃຊ້ຈ່າຍ +AccountingJournalType5=Expense reports AccountingJournalType8=ສາງ AccountingJournalType9=ມີໃຫມ່ +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=ວາລະສານນີ້ຖືກໃຊ້ແລ້ວ AccountingAccountForSalesTaxAreDefinedInto=Noteາຍເຫດ: ບັນຊີບັນຊີສໍາລັບອາກອນການຂາຍໄດ້ກໍານົດໄວ້ໃນເມນູ %s - %s NumberOfAccountancyEntries=ຈຳ ນວນລາຍການ @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=ຈໍານວນຂອງການເຄື່ອ ACCOUNTING_DISABLE_BINDING_ON_SALES=ປິດໃຊ້ງານການຜູກມັດແລະໂອນເຂົ້າບັນຊີກ່ຽວກັບການຂາຍ (ໃບເກັບເງິນຂອງລູກຄ້າຈະບໍ່ຖືກເອົາເຂົ້າໃນບັນຊີ) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=ປິດໃຊ້ງານການຜູກມັດແລະການໂອນບັນຊີຢູ່ໃນການຊື້ (ໃບເກັບເງິນຂອງຜູ້ຂາຍຈະບໍ່ຖືກເອົາເຂົ້າໃນບັນຊີ) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=ປິດໃຊ້ງານການຜູກມັດແລະການໂອນບັນຊີຢູ່ໃນລາຍງານລາຍຈ່າຍ (ບົດລາຍງານຄ່າໃຊ້ຈ່າຍຈະບໍ່ຖືກເອົາເຂົ້າໃນບັນຊີ) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=ການຢືນຢັນການສ້າງເອກະສານການສົ່ງອອກບັນຊີບໍ? ExportDraftJournal=ສົ່ງອອກວາລະສານຮ່າງ @@ -398,7 +407,11 @@ Calculated=ຄຳ ນວນແລ້ວ Formula=ສູດ ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=ລາຍການບັນຊີ @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=ລະຫັດຫຼາຍສະກຸນເງິ DateExport=ວັນທີສົ່ງອອກ WarningReportNotReliable=ຄຳ ເຕືອນ, ບົດລາຍງານນີ້ບໍ່ໄດ້ອີງໃສ່ປຶ້ມບັນຊີ, ສະນັ້ນບໍ່ມີການເຮັດທຸລະ ກຳ ທີ່ດັດແກ້ດ້ວຍຕົນເອງຢູ່ໃນປຶ້ມບັນຊີ. ຖ້າວາລະສານຂອງເຈົ້າໃis່ຫຼ້າສຸດ, ມຸມມອງການເຮັດບັນຊີແມ່ນຖືກຕ້ອງກວ່າ. ExpenseReportJournal=ວາລະສານລາຍງານລາຍຈ່າຍ -InventoryJournal=ວາລະສານສິນຄ້າຄົງຄັງ NAccounts=%s ບັນຊີ diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 69df3c3e9ab..631c0f19433 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=ການລວບລວມລູກຄ້າ WarningModuleNotActive=ຕ້ອງເປີດໃຊ້ໂມດູນ %s WarningOnlyPermissionOfActivatedModules=ສະເພາະການອະນຸຍາດທີ່ກ່ຽວຂ້ອງກັບໂມດູນທີ່ເປີດໃຊ້ງານແລ້ວເທົ່ານັ້ນທີ່ສະແດງຢູ່ທີ່ນີ້. ເຈົ້າສາມາດເປີດໃຊ້ໂມດູນອື່ນຢູ່ໃນ ໜ້າ ທໍາອິດ-> ການຕັ້ງ-> ໜ້າ ໂມດູນ. DolibarrSetup=ຕິດຕັ້ງຫຼືອັບເກຣດ Dolibarr -InternalUser=ຜູ້ໃຊ້ພາຍໃນ -ExternalUser=ຜູ້ໃຊ້ພາຍນອກ InternalUsers=ຜູ້ໃຊ້ພາຍໃນ ExternalUsers=ຜູ້ໃຊ້ພາຍນອກ UserInterface=ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ @@ -109,7 +107,7 @@ NextValueForReplacements=ຄ່າຕໍ່ໄປ (ການປ່ຽນແທ MustBeLowerThanPHPLimit=Noteາຍເຫດ: ການຕັ້ງຄ່າ PHP ຂອງເຈົ້າໃນປັດຈຸບັນຈໍາກັດຂະ ໜາດ ໄຟລສູງສຸດສໍາລັບອັບໂຫລດໃສ່ %s %s, ໂດຍບໍ່ຄໍານຶງເຖິງຄ່າຂອງພາຣາມິເຕີນີ້. NoMaxSizeByPHPLimit=Noteາຍເຫດ: ບໍ່ມີການ ກຳ ນົດຂອບເຂດໃນການຕັ້ງຄ່າ PHP ຂອງເຈົ້າ MaxSizeForUploadedFiles=ຂະ ໜາດ ສູງສຸດ ສຳ ລັບໄຟລ uploaded ທີ່ອັບໂຫລດ (0 ເພື່ອບໍ່ອະນຸຍາດໃຫ້ອັບໂຫລດໃດ) -UseCaptchaCode=ໃຊ້ລະຫັດກຣາຟິກ (CAPTCHA) ຢູ່ໃນ ໜ້າ ເຂົ້າສູ່ລະບົບ +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=ເສັ້ນທາງອັນເຕັມທີ່ກັບຄໍາສັ່ງ antivirus AntiVirusCommandExample=ຕົວຢ່າງສໍາລັບ ClamAv Daemon (ຕ້ອງການ clamav-daemon):/usr/bin/clamdscan
    ຕົວຢ່າງສໍາລັບ ClamWin (ຊ້າຫຼາຍ): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= ຕົວກໍານົດການເພີ່ມເຕີມໃນບັນທັດຄໍາສັ່ງ @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (ຄ່າເລີ່ມຕົ້ນໃ MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=ພອດ SMTP/SMTPS (ບໍ່ໄດ້ ກຳ ນົດໄວ້ໃນ PHP ໃນລະບົບຄ້າຍ Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (ບໍ່ໄດ້ກໍານົດໄວ້ໃນ PHP ໃນລະບົບຄ້າຍ Unix) MAIN_MAIL_EMAIL_FROM=ສົ່ງອີເມວຫາອີເມວອັດຕະໂນມັດ (ຄ່າເລີ່ມຕົ້ນໃນ php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=ອີເມລ used ທີ່ໃຊ້ສໍາລັບການສົ່ງຄືນຄວາມຜິດພາດອີເມລ fields (ພາກສະຫນາມ 'Errors-To' ໃນອີເມລ sent ສົ່ງ) MAIN_MAIL_AUTOCOPY_TO= ສຳ ເນົາ (Bcc) ສົ່ງອີເມວທັງtoົດໄປຫາ MAIN_DISABLE_ALL_MAILS=ປິດການສົ່ງອີເມວທັງ(ົດ (ເພື່ອຈຸດປະສົງການທົດສອບຫຼືການສາທິດ) @@ -439,8 +438,10 @@ Unique=ເປັນເອກະລັກ Boolean=Boolean (ກ່ອງເຄື່ອງoneາຍນຶ່ງ) ExtrafieldPhone = ໂທລະສັບ ExtrafieldPrice = ລາຄາ +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = ອີເມລ ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = ເລືອກລາຍຊື່ ExtrafieldSelectList = ເລືອກຈາກຕາຕະລາງ ExtrafieldSeparator=ຕົວຂັ້ນ (ບໍ່ແມ່ນຊ່ອງຂໍ້ມູນ) @@ -477,7 +478,7 @@ InstalledInto=ຕິດຕັ້ງໃສ່ໄດເຣັກທໍຣີ %s BarcodeInitForThirdparties=ການລິເລີ່ມບາໂຄດ ຈຳ ນວນຫຼາຍ ສຳ ລັບພາກສ່ວນທີສາມ BarcodeInitForProductsOrServices=ເລີ່ມຫຼືຕັ້ງບາໂຄດຄືນໃfor່ ສຳ ລັບຜະລິດຕະພັນຫຼືການບໍລິການ CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=ຄ່າ ທຳ ອິດ ສຳ ລັບບັນທຶກເປົ່າ %s ຖັດໄປ +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=ລຶບຄ່າ barcode ປັດຈຸບັນທັງົດ ConfirmEraseAllCurrentBarCode=ເຈົ້າແນ່ໃຈບໍວ່າເຈົ້າຕ້ອງການລຶບຄ່າ barcode ປັດຈຸບັນທັງ?ົດ? AllBarcodeReset=ຄ່າ barcode ທັງົດຖືກລຶບອອກແລ້ວ @@ -501,10 +502,11 @@ WarningPHPMail=ຄໍາເຕືອນ: ການຕິດຕັ້ງເພື WarningPHPMailA=- ການໃຊ້ເຊີບເວີຂອງຜູ້ໃຫ້ບໍລິການອີເມລ increases ເພີ່ມຄວາມເຊື່ອຖືອີເມລ your ຂອງເຈົ້າໃຫ້ຫຼາຍຂຶ້ນ, ສະນັ້ນມັນເພີ່ມຄວາມສາມາດໃນການຈັດສົ່ງໄດ້ໂດຍທີ່ບໍ່ຖືກflagາຍວ່າເປັນສະແປມ. WarningPHPMailB=- ບາງຜູ້ໃຫ້ບໍລິການອີເມລ like (ເຊັ່ນ Yahoo) ບໍ່ອະນຸຍາດໃຫ້ເຈົ້າສົ່ງອີເມວຈາກເຊີບເວີອື່ນຫຼາຍກວ່າເຊີບເວີຂອງເຂົາເຈົ້າເອງ. ການຕັ້ງຄ່າປັດຈຸບັນຂອງເຈົ້າໃຊ້ເຊີບເວີຂອງແອັບພລິເຄຊັນເພື່ອສົ່ງອີເມວແລະບໍ່ແມ່ນເຊີບເວີຂອງຜູ້ໃຫ້ບໍລິການອີເມວຂອງເຈົ້າ, ສະນັ້ນຜູ້ຮັບບາງຄົນ (ອັນທີ່ເຂົ້າກັນໄດ້ກັບໂປຣໂຕຄໍ DMARC ທີ່ຈໍາກັດ), ຈະຖາມຫາຜູ້ໃຫ້ບໍລິການອີເມວຂອງເຈົ້າຖ້າເຂົາເຈົ້າສາມາດຍອມຮັບອີເມວຂອງເຈົ້າແລະບາງຜູ້ໃຫ້ບໍລິການອີເມວ. (ຄື Yahoo) ອາດຈະຕອບ "ບໍ່" ເພາະວ່າເຊີບເວີບໍ່ແມ່ນຂອງເຂົາເຈົ້າ, ສະນັ້ນອີເມລທີ່ເຈົ້າສົ່ງໄປນັ້ນຈໍານວນ ໜຶ່ງ ອາດຈະບໍ່ຖືກຍອມຮັບສໍາລັບການຈັດສົ່ງ (ຈົ່ງລະວັງໂຄຕ້າສົ່ງຂອງຜູ້ໃຫ້ບໍລິການອີເມລຂອງເຈົ້ານໍາ). WarningPHPMailC=- ການໃຊ້ເຊີບເວີ SMTP ຂອງຜູ້ໃຫ້ບໍລິການອີເມລ your ຂອງເຈົ້າເອງເພື່ອສົ່ງອີເມລ is ກໍ່ເປັນສິ່ງທີ່ ໜ້າ ສົນໃຈດັ່ງນັ້ນອີເມລ sent ທັງsentົດທີ່ສົ່ງຈາກແອັບພລິເຄຊັນກໍ່ຈະຖືກບັນທຶກໄວ້ໃນບັນຊີລາຍການ "ສົ່ງແລ້ວ" ຂອງກ່ອງຈົດyourາຍຂອງເຈົ້າ. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=ຖ້າຜູ້ໃຫ້ບໍລິການ SMTP ອີເມລຂອງເຈົ້າຕ້ອງການຈໍາກັດລູກຄ້າອີເມລ to ຫາບາງທີ່ຢູ່ IP (ຫາຍາກຫຼາຍ), ນີ້ແມ່ນທີ່ຢູ່ IP ຂອງຕົວແທນຜູ້ໃຊ້ຈົດ(າຍ (MUA) ສໍາລັບການສະEັກ ERP CRM ຂອງເຈົ້າ: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=ຄລິກເພື່ອສະແດງລາຍລະອຽດ DependsOn=ໂມດູນນີ້ຕ້ອງການໂມດູນ RequiredBy=ໂມດູນນີ້ຕ້ອງການໂດຍໂມດູນ @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    ຕົວຢ່າງ:
    ສຳ ລັບ PageUrlForDefaultValuesList=
    ຕົວຢ່າງ:
    ສຳ ລັບ ໜ້າ ທີ່ເຮັດລາຍຊື່ພາກສ່ວນທີສາມ, ມັນແມ່ນ %s .
    ສໍາລັບ URL ຂອງໂມດູນພາຍນອກທີ່ຕິດຕັ້ງໃສ່ໄດເຣັກທໍຣີທີ່ກໍານົດເອງ, ບໍ່ລວມເອົາ "ກໍານົດເອງ" ດັ່ງນັ້ນໃຊ້ເສັ້ນທາງເຊັ່ນ mymodule/mypagelist.php ແລະບໍ່ແມ່ນ custom/mymodule/mypagelist.php.
    ຖ້າເຈົ້າຕ້ອງການຄ່າເລີ່ມຕົ້ນພຽງແຕ່ຖ້າ url ມີຕົວກໍານົດບາງອັນ, ເຈົ້າສາມາດໃຊ້ %s AlsoDefaultValuesAreEffectiveForActionCreate=ຍັງຈື່ໄວ້ວ່າການຂຽນທັບຄ່າເລີ່ມຕົ້ນ ສຳ ລັບການສ້າງແບບຟອມເຮັດວຽກໄດ້ສະເພາະ ໜ້າ ທີ່ຖືກອອກແບບຢ່າງຖືກຕ້ອງເທົ່ານັ້ນ (ສະນັ້ນດ້ວຍການປະຕິບັດຕົວກໍານົດການ = ສ້າງຫຼືປົກປ້ອງ ... ) EnableDefaultValues=ເປີດໃຊ້ງານການປັບແຕ່ງຄ່າມາດຕະຖານ -EnableOverwriteTranslation=ເປີດໃຊ້ການໃຊ້ການແປທີ່ຂຽນທັບແລ້ວ +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=ພົບເຫັນການແປພາສາ ສຳ ລັບລະຫັດທີ່ມີລະຫັດນີ້. ເພື່ອປ່ຽນຄ່ານີ້, ເຈົ້າຈະຕ້ອງແກ້ໄຂມັນຈາກ Home-Setup-translation. WarningSettingSortOrder=ຄໍາເຕືອນ, ການຕັ້ງຄໍາສັ່ງຈັດລຽງຕາມຄ່າເລີ່ມຕົ້ນອາດຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດທາງດ້ານເຕັກນິກໃນເວລາໄປຫາ ໜ້າ ລາຍການຖ້າຊ່ອງຂໍ້ມູນເປັນຊ່ອງຂໍ້ມູນທີ່ບໍ່ຮູ້ຈັກ. ຖ້າເຈົ້າປະສົບກັບຄວາມຜິດພາດດັ່ງກ່າວ, ກັບຄືນມາຫາ ໜ້າ ນີ້ເພື່ອເອົາການຈັດຮຽງລໍາດັບເລີ່ມຕົ້ນແລະຟື້ນຟູພຶດຕິກໍາມາດຕະຖານ. Field=ພາກສະຫນາມ @@ -645,9 +647,9 @@ Module2400Name=ເຫດການ/ວາລະ Module2400Desc=ຕິດຕາມເຫດການ. ບັນທຶກເຫດການອັດຕະໂນມັດເພື່ອຈຸດປະສົງການຕິດຕາມຫຼືບັນທຶກເຫດການຫຼືການປະຊຸມດ້ວຍຕົນເອງ. ນີ້ແມ່ນໂມດູນຫຼັກສໍາລັບການຄຸ້ມຄອງຄວາມສໍາພັນຂອງລູກຄ້າຫຼືຜູ້ຂາຍທີ່ດີ. Module2500Name=DMS / ECM Module2500Desc=ລະບົບການຈັດການເອກະສານ / ການຈັດການເນື້ອໃນເອເລັກໂຕຣນິກ. ການຈັດລະບຽບເອກະສານທີ່ສ້າງຂຶ້ນຫຼືເກັບໄວ້ໂດຍອັດຕະໂນມັດຂອງເຈົ້າ. ແບ່ງປັນໃຫ້ເຂົາເຈົ້າໃນເວລາທີ່ທ່ານຕ້ອງການ. -Module2600Name=API/ການບໍລິການເວັບ (ເຊີບເວີ SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=ເປີດໃຊ້ງານເຊີບເວີ Dolibarr SOAP ໃຫ້ການບໍລິການ API -Module2610Name=API/ການບໍລິການເວັບ (ເຊີບເວີ REST) +Module2610Name=API / Web services (REST server) Module2610Desc=ເປີດໃຊ້ງານເຊີບເວີ Dolibarr REST ໃຫ້ການບໍລິການ API Module2660Name=ໂທຫາ WebServices (ລູກຄ້າ SOAP) Module2660Desc=ເປີດໃຊ້ງານລູກຄ້າການບໍລິການເວັບ Dolibarr (ສາມາດໃຊ້ເພື່ອຊຸກດັນຂໍ້ມູນ/ການຮ້ອງຂໍໄປຫາເຊີບເວີພາຍນອກ. ມີພຽງແຕ່ຄໍາສັ່ງຊື້ເທົ່ານັ້ນທີ່ຮອງຮັບໃນປະຈຸບັນ.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=ເພີ່ມຄຸນສົມບັດເພື່ອຈັດການ Incoterms Module63000Name=ຊັບ​ພະ​ຍາ​ກອນ Module63000Desc=ຈັດການຊັບພະຍາກອນ (ເຄື່ອງພິມ, ລົດ, ຫ້ອງ, ... ) ສໍາລັບຈັດສັນໃຫ້ກັບເຫດການ +Module94160Name=Receptions Permission11=ອ່ານໃບແຈ້ງ ໜີ້ ລູກຄ້າ Permission12=ສ້າງ/ແກ້ໄຂໃບແຈ້ງ ໜີ້ ລູກຄ້າ Permission13=ໃບແຈ້ງ ໜີ້ ລູກຄ້າບໍ່ຖືກຕ້ອງ @@ -714,6 +717,7 @@ Permission27=ລຶບຂໍ້ສະ ເໜີ ທາງການຄ້າ Permission28=ສົ່ງອອກຂໍ້ສະ ເໜີ ທາງການຄ້າ Permission31=ອ່ານຜະລິດຕະພັນ Permission32=ສ້າງ/ດັດແກ້ຜະລິດຕະພັນ +Permission33=Read prices products Permission34=ລຶບຜະລິດຕະພັນ Permission36=ເບິ່ງ/ຈັດການຜະລິດຕະພັນທີ່ເຊື່ອງໄວ້ Permission38=ຜະລິດຕະພັນສົ່ງອອກ @@ -739,6 +743,7 @@ Permission79=ສ້າງ/ແກ້ໄຂການສະັກໃຊ້ Permission81=ອ່ານຄໍາສັ່ງຂອງລູກຄ້າ Permission82=ສ້າງ/ແກ້ໄຂຄໍາສັ່ງຂອງລູກຄ້າ Permission84=ກວດສອບ ຄຳ ສັ່ງຂອງລູກຄ້າ +Permission85=Generate the documents sales orders Permission86=ສົ່ງ ຄຳ ສັ່ງໃຫ້ລູກຄ້າ Permission87=ປິດອໍເດີລູກຄ້າສັ່ງ Permission88=ຍົກເລີກຄໍາສັ່ງຂອງລູກຄ້າ @@ -840,9 +845,9 @@ Permission286=ສົ່ງອອກລາຍຊື່ຜູ້ຕິດຕໍ່ Permission291=ອ່ານອັດຕາພາສີ Permission292=ກໍານົດການອະນຸຍາດກ່ຽວກັບອັດຕາພາສີ Permission293=ແກ້ໄຂອັດຕາພາສີຂອງລູກຄ້າ -Permission300=ອ່ານບາໂຄດ -Permission301=ສ້າງ/ປັບປຸງແກ້ໄຂ barcodes -Permission302=ລຶບບາໂຄດ +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=ອ່ານບໍລິການ Permission312=ມອບຫມາຍການບໍລິການ/ການສະຫມັກສັນຍາ Permission331=ອ່ານບຸກມາກ @@ -874,6 +879,7 @@ Permission525=ເຂົ້າເຖິງເຄື່ອງຄິດໄລ່ເ Permission527=ສິນເຊື່ອສົ່ງອອກ Permission531=ອ່ານບໍລິການ Permission532=ສ້າງ/ດັດແກ້ການບໍລິການ +Permission533=Read prices services Permission534=ລຶບການບໍລິການ Permission536=ເບິ່ງ/ຈັດການການບໍລິການທີ່ເຊື່ອງໄວ້ Permission538=ການບໍລິການສົ່ງອອກ @@ -968,13 +974,14 @@ Permission3301=ສ້າງໂມດູນໃ່ Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=ອ່ານເນື້ອໃນເວັບໄຊທ Permission10002=ສ້າງ/ດັດແປງເນື້ອໃນເວັບໄຊທ ((ເນື້ອໃນ html ແລະ javascript) Permission10003=ສ້າງ/ດັດແປງເນື້ອໃນເວັບໄຊທ ((ລະຫັດ php ແບບເຄື່ອນໄຫວ). ອັນຕະລາຍ, ຕ້ອງສະຫງວນໃຫ້ກັບຜູ້ພັດທະນາທີ່ຖືກ ຈຳ ກັດ. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=ປະເພດຂອງ ໜ່ວຍ SetupSaved=ບັນທຶກການຕັ້ງແລ້ວ SetupNotSaved=ບໍ່ໄດ້ບັນທຶກການຕັ້ງຄ່າ +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=ກັບໄປຫາລາຍການໂມດູນ BackToDictionaryList=ກັບໄປຫາລາຍການວັດຈະນານຸກົມ TypeOfRevenueStamp=ປະເພດຂອງສະແຕມພາສີ @@ -1129,7 +1140,7 @@ ValueOfConstantKey=ຄ່າຂອງຄ່າຄົງທີ່ການ ກຳ ConstantIsOn=ຕົວເລືອກ %s ເປີດຢູ່ NbOfDays=ຈຳ ນວນມື້ AtEndOfMonth=ໃນທ້າຍເດືອນ -CurrentNext=ປັດຈຸບັນ/ຕໍ່ໄປ +CurrentNext=A given day in month Offset=ການຊົດເຊີຍ AlwaysActive=ເຄື່ອນໄຫວສະເີ Upgrade=ຍົກລະດັບ @@ -1235,11 +1246,13 @@ BrowserName=ຊື່ຕົວທ່ອງເວັບ BrowserOS=OS ຂອງຕົວທ່ອງເວັບ ListOfSecurityEvents=ລາຍການເຫດການຄວາມປອດໄພຂອງ Dolibarr SecurityEventsPurged=ເຫດການຄວາມປອດໄພຖືກລຶບລ້າງແລ້ວ +TrackableSecurityEvents=Trackable security events LogEventDesc=ເປີດໃຊ້ງານການຕັດໄມ້ທ່ອນສໍາລັບເຫດການຄວາມປອດໄພສະເພາະ. ຜູ້ເບິ່ງແຍງລະບົບບັນທຶກຜ່ານເມນູ %s - %s . ຄຳ ເຕືອນ, ຄຸນສົມບັດນີ້ສາມາດສ້າງຂໍ້ມູນ ຈຳ ນວນຫຼວງຫຼາຍຢູ່ໃນຖານຂໍ້ມູນ. AreaForAdminOnly=ຕົວກໍານົດການຕັ້ງສາມາດກໍານົດໄດ້ໂດຍຜູ້ໃຊ້ບໍລິຫານ ເທົ່ານັ້ນ. SystemInfoDesc=ຂໍ້ມູນລະບົບແມ່ນຂໍ້ມູນທາງເທັກນິກຕ່າງcellທີ່ເຈົ້າໄດ້ຮັບໃນຮູບແບບການອ່ານເທົ່ານັ້ນແລະເບິ່ງເຫັນໄດ້ສໍາລັບຜູ້ບໍລິຫານເທົ່ານັ້ນ. SystemAreaForAdminOnly=ພື້ນທີ່ນີ້ມີໃຫ້ກັບຜູ້ໃຊ້ບໍລິຫານເທົ່ານັ້ນ. ການອະນຸຍາດຂອງຜູ້ໃຊ້ Dolibarr ບໍ່ສາມາດປ່ຽນແປງຂໍ້ຈໍາກັດນີ້ໄດ້. CompanyFundationDesc=ແກ້ໄຂຂໍ້ມູນຂອງບໍລິສັດ/ອົງກອນຂອງເຈົ້າ. ຄລິກທີ່ປຸ່ມ“ %s” ຢູ່ດ້ານລຸ່ມຂອງ ໜ້າ ເມື່ອສໍາເລັດແລ້ວ. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=ຖ້າເຈົ້າມີບັນຊີພາຍນອກ/ນັກບັນຊີ, ເຈົ້າສາມາດແກ້ໄຂຂໍ້ມູນຂອງມັນໄດ້ຢູ່ບ່ອນນີ້. AccountantFileNumber=ລະຫັດບັນຊີ DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=ເຈົ້າຕ້ອງດ YourPHPDoesNotHaveSSLSupport=ຟັງຊັນ SSL ບໍ່ມີຢູ່ໃນ PHP ຂອງເຈົ້າ DownloadMoreSkins=ຜິວ ໜັງ ເພີ່ມເຕີມເພື່ອດາວໂຫລດ SimpleNumRefModelDesc=ຕອບຕົວເລກອ້າງອີງໃນຮູບແບບ %syymm-nnnn ບ່ອນທີ່ yy ແມ່ນປີ, mm ເປັນເດືອນແລະ nnnn ແມ່ນຕົວເລກການເພີ່ມຂຶ້ນໂດຍອັດຕະໂນມັດຕາມລໍາດັບໂດຍບໍ່ມີການຕັ້ງຄ່າຄືນໃ່. +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=ຕອບຕົວເລກອ້າງອີງໃນຮູບແບບ %s-nnnn ບ່ອນທີ່ nnnn ເປັນຕົວເລກການເພີ່ມຂຶ້ນໂດຍອັດຕະໂນມັດຕາມ ລຳ ດັບໂດຍບໍ່ມີການຕັ້ງຄ່າຄືນໃ່. ShowProfIdInAddress=ສະແດງ ID ປະກອບອາຊີບພ້ອມທີ່ຢູ່ ShowVATIntaInAddress=ເຊື່ອງVາຍເລກ VAT ພາຍໃນຊຸມຊົນ @@ -1376,7 +1391,7 @@ GetBarCode=ເອົາບາໂຄດ NumberingModules=ຕົວເລກຕົວເລກ DocumentModules=ແບບເອກະສານ ##### Module password generation -PasswordGenerationStandard=ເອົາລະຫັດຜ່ານທີ່ສ້າງຄືນຕາມລະບົບ Dolibarr ພາຍໃນ: %s ຕົວອັກສອນທີ່ມີຕົວເລກແລະຕົວອັກສອນທີ່ໃຊ້ຮ່ວມກັນໃນຕົວພິມນ້ອຍ. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=ຢ່າແນະ ນຳ ລະຫັດຜ່ານທີ່ສ້າງຂຶ້ນ. ລະຫັດຜ່ານຕ້ອງໄດ້ພິມດ້ວຍຕົນເອງ. PasswordGenerationPerso=ເອົາລະຫັດຜ່ານຄືນມາອີງຕາມການຕັ້ງຄ່າທີ່ໄດ້ກໍານົດໄວ້ເປັນສ່ວນຕົວຂອງເຈົ້າ. SetupPerso=ອີງຕາມການຕັ້ງຄ່າຂອງເຈົ້າ @@ -1430,6 +1445,10 @@ SuppliersPayment=ການຈ່າຍເງິນຂອງຜູ້ຂາຍ SupplierPaymentSetup=ການຕັ້ງຄ່າການຈ່າຍເງິນຂອງຜູ້ຂາຍ InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=ການຕັ້ງຄ່າໂມດູນຂໍ້ສະ ເໜີ ທາງການຄ້າ ProposalsNumberingModules=ຮູບແບບຕົວເລກການສະ ເໜີ ທາງການຄ້າ @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=ລາຍນ້ ຳ ຢູ່ໃນສັນຍາ ##### Members ##### MembersSetup=ການຕັ້ງຄ່າໂມດູນສະມາຊິກ MemberMainOptions=ຕົວເລືອກຫຼັກ +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= ຈັດການເຂົ້າສູ່ລະບົບ ສຳ ລັບສະມາຊິກແຕ່ລະຄົນ AdherentMailRequired=ຕ້ອງການອີເມວເພື່ອສ້າງສະມາຊິກໃ່ MemberSendInformationByMailByDefault=ກ່ອງCheckາຍເພື່ອສົ່ງການຢືນຢັນທາງໄປສະນີຫາສະມາຊິກ (ການກວດສອບຫຼືການສະnewັກສະມາຊິກໃ)່) ແມ່ນເປີດຢູ່ໃນຕອນຕົ້ນ MemberCreateAnExternalUserForSubscriptionValidated=ສ້າງການເຂົ້າສູ່ລະບົບຂອງຜູ້ໃຊ້ພາຍນອກ ສຳ ລັບການສະmemberັກໃຊ້ສະມາຊິກໃeach່ແຕ່ລະຄົນຖືກກວດສອບ -VisitorCanChooseItsPaymentMode=ຜູ້ເຂົ້າຊົມສາມາດເລືອກຈາກຮູບແບບການຈ່າຍເງິນທີ່ມີໃຫ້ +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=ເປີດ ນຳ ໃຊ້ການແຈ້ງເຕືອນອັດຕະໂນມັດ ທາງອີເມລ a ຂອງການສະັກໃຊ້ທີ່iredົດອາຍຸ. Noteາຍເຫດ: ໂມດູນ %s ຕ້ອງຖືກເປີດ ນຳ ໃຊ້ແລະຕັ້ງຄ່າຢ່າງຖືກຕ້ອງເພື່ອສົ່ງການເຕືອນ. MembersDocModules=ແມ່ແບບເອກະສານ ສຳ ລັບເອກະສານທີ່ສ້າງຂຶ້ນຈາກບັນທຶກສະມາຊິກ ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=ເປີດໃຊ້ຕົວແກ້ໄຂຂັ້ນສ FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=ການສ້າງ/ສະບັບຜະລິດຕະພັນຂອງ WYSIWIG ສໍາລັບທຸກຫົວ ໜ່ວຍ (ຂໍ້ສະ ເໜີ, ຄໍາສັ່ງ, ໃບຮຽກເກັບເງິນ, ແລະອື່ນ ... ... ). ຄໍາເຕືອນ: ການໃຊ້ຕົວເລືອກນີ້ສໍາລັບກໍລະນີນີ້ແມ່ນບໍ່ໄດ້ຖືກແນະນໍາຢ່າງຈິງຈັງເພາະມັນສາມາດສ້າງບັນຫາກັບຕົວອັກສອນພິເສດແລະການຈັດຮູບແບບ ໜ້າ ເວລາສ້າງໄຟລ PDF. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= ການສ້າງ/ການພິມ WYSIWIG ສໍາລັບ eMailings ຈໍານວນຫຼວງຫຼາຍ (ເຄື່ອງມື-> eMailing) FCKeditorForUserSignature=ການສ້າງ/ສະບັບລາຍເຊັນຂອງຜູ້ໃຊ້ WYSIWIG FCKeditorForMail=ການສ້າງ/ການພິມ WYSIWIG ສໍາລັບທຸກ mail ຈົດ(າຍ (ຍົກເວັ້ນເຄື່ອງມື-> eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=ຕົວຈັດການເມນູບ່ອນທີ່ DetailMenuModule=ຊື່ໂມດູນຖ້າລາຍການເມນູມາຈາກໂມດູນ DetailType=ປະເພດຂອງເມນູ (ເທິງຫຼືຊ້າຍ) DetailTitre=ປ້າຍເມນູຫຼືລະຫັດປ້າຍ ກຳ ກັບ ສຳ ລັບການແປ -DetailUrl=URL ບ່ອນທີ່ເມນູສົ່ງເຈົ້າ (ລິ້ງ URL ສົມບູນຫຼືລິ້ງພາຍນອກກັບ http: //) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=ເງື່ອນໄຂທີ່ຈະສະແດງຫຼືບໍ່ເຂົ້າ DetailRight=ເງື່ອນໄຂເພື່ອສະແດງເມນູສີເທົາທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ DetailLangs=ຊື່ໄຟລ Lang Lang ສໍາລັບການແປລະຫັດປ້າຍກໍາກັບ @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=ການຫຼຸດລົງຂອ CashDeskYouDidNotDisableStockDecease=ເຈົ້າບໍ່ໄດ້ປິດການຫຼຸດລົງຂອງຫຼັກຊັບເມື່ອເຮັດການຂາຍຈາກຈຸດຂາຍ. ເພາະສະນັ້ນ, ຕ້ອງມີຄັງສິນຄ້າ. CashDeskForceDecreaseStockLabel=ການຫຼຸດລົງຫຼັກຊັບສໍາລັບຜະລິດຕະພັນຊຸດໄດ້ຖືກບັງຄັບ. CashDeskForceDecreaseStockDesc=ຫຼຸດລົງເທື່ອ ທຳ ອິດຕາມວັນກິນແລະຂາຍທີ່ເກົ່າທີ່ສຸດ. -CashDeskReaderKeyCodeForEnter=ລະຫັດກະແຈ ສຳ ລັບ "ໃສ່" ທີ່ໄດ້ ກຳ ນົດໄວ້ໃນເຄື່ອງອ່ານບາໂຄດ (ຕົວຢ່າງ: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=ການຕັ້ງໂມດູນບຸກມາກ BookmarkDesc=ໂມດູນນີ້ອະນຸຍາດໃຫ້ເຈົ້າຈັດການບຸກມາກ. ເຈົ້າຍັງສາມາດເພີ່ມທາງລັດໃສ່ ໜ້າ Dolibarr ໃດ ໜຶ່ງ ຫຼືເວັບໄຊທ external ພາຍນອກຢູ່ໃນເມນູດ້ານຊ້າຍຂອງເຈົ້າ. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=ໃບແຈ້ງ ໜີ້ ຜູ້ຂາຍ IfSetToYesDontForgetPermission=ຖ້າຕັ້ງຄ່າເປັນຄ່າ null, ຢ່າລືມໃຫ້ການອະນຸຍາດແກ່ກຸ່ມຫຼືຜູ້ໃຊ້ໄດ້ຮັບອະນຸຍາດສໍາລັບການອະນຸມັດຄັ້ງທີສອງ ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=ການຕັ້ງໂມດູນ GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=ເສັ້ນທາງໄປຫາໄຟລ containing ທີ່ບັນຈຸ Maxmind ip ກັບການແປປະເທດ.
    ຕົວຢ່າງ:
    /usr/ ທ້ອງຖິ່ນ +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=ຈື່ໄວ້ວ່າໄຟລ data ຂໍ້ມູນ ip ຫາປະເທດຂອງເຈົ້າຕ້ອງຢູ່ພາຍໃນບັນຊີລາຍຊື່ທີ່ PHP ຂອງເຈົ້າສາມາດອ່ານໄດ້ (ກວດເບິ່ງການຕັ້ງຄ່າ PHP open_basedir ຂອງເຈົ້າແລະການອະນຸຍາດລະບົບໄຟລ). YouCanDownloadFreeDatFileTo=ເຈົ້າສາມາດດາວໂລດ ສະບັບຕົວຢ່າງຟຣີ ຂອງໄຟລ country ປະເທດ Maxmind GeoIP ທີ່ %s. YouCanDownloadAdvancedDatFileTo=ເຈົ້າສາມາດດາວໂຫຼດເວີຊັນສົມບູນຂອງ , ພ້ອມການອັບເດດ, ຂອງໄຟລ country ປະເທດ Maxmind GeoIP ຢູ່ %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=ຂອງຄວາມຍາວປາເພື່ອສ້າງ BackupZipWizard=ຕົວຊ່ວຍສ້າງການເກັບບັນທຶກລາຍການເອກະສານ SomethingMakeInstallFromWebNotPossible=ການຕິດຕັ້ງໂມດູນພາຍນອກແມ່ນເປັນໄປບໍ່ໄດ້ຈາກອິນເຕີເຟດເວັບດ້ວຍເຫດຜົນຕໍ່ໄປນີ້: SomethingMakeInstallFromWebNotPossible2=ດ້ວຍເຫດຜົນນີ້, ຂັ້ນຕອນການຍົກລະດັບທີ່ໄດ້ອະທິບາຍໄວ້ນີ້ແມ່ນຂັ້ນຕອນຄູ່ມືພຽງແຕ່ຜູ້ໃຊ້ທີ່ມີສິດພິເສດເທົ່ານັ້ນທີ່ສາມາດປະຕິບັດໄດ້. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=ຜູ້ຄວບຄຸມຂອງເຈົ້າປິດການຕິດຕັ້ງໂມດູນພາຍນອກຈາກແອັບພລິເຄຊັນ. ເຈົ້າຕ້ອງຂໍໃຫ້ລາວເອົາໄຟລ a %s ເພື່ອອະນຸຍາດຄຸນສົມບັດນີ້. ConfFileMustContainCustom=ການຕິດຕັ້ງຫຼືສ້າງໂມດູນພາຍນອກຈາກແອັບພລິເຄຊັນຈໍາເປັນຕ້ອງບັນທຶກໄຟລ module ໂມດູນໃສ່ໃນລະບົບ %s . ເພື່ອໃຫ້ໄດເຣັກທໍຣີນີ້ຖືກປະມວນຜົນໂດຍ Dolibarr, ເຈົ້າຕ້ອງຕັ້ງຄ່າ conf/conf.php ເພື່ອເພີ່ມ 2 ເສັ້ນຄໍາສັ່ງ:
    $ dolibarr_main_url_root_alt;
    $ dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=ເນັ້ນເສັ້ນຕາຕະລາງເມື່ອການເຄື່ອນຍ້າຍເມົ້າຜ່ານ @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=ກົດ CTRL+F5 ຢູ່ເທິງແປ້ນພ NotSupportedByAllThemes=ຈະໃຊ້ໄດ້ກັບຫົວຂໍ້ຫຼັກ, ອາດຈະບໍ່ຮອງຮັບໂດຍຮູບແບບພາຍນອກ BackgroundColor=ສີພື້ນຫຼັງ TopMenuBackgroundColor=ສີພື້ນຫຼັງ ສຳ ລັບເມນູທາງເທີງ -TopMenuDisableImages=ເຊື່ອງຮູບຢູ່ໃນເມນູດ້ານເທິງ +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=ສີພື້ນຫຼັງ ສຳ ລັບເມນູຊ້າຍ BackgroundTableTitleColor=ສີພື້ນຫຼັງ ສຳ ລັບແຖວຫົວຂໍ້ຕາຕະລາງ BackgroundTableTitleTextColor=ສີຂໍ້ຄວາມ ສຳ ລັບແຖວຫົວຂໍ້ຕາຕະລາງ @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=ການສັ່ງຊື້ MailToSendSupplierInvoice=ໃບແຈ້ງ ໜີ້ ຜູ້ຂາຍ MailToSendContract=ສັນຍາ MailToSendReception=ການຮັບ +MailToExpenseReport=Expense reports MailToThirdparty=ພາກສ່ວນທີສາມ MailToMember=ສະມາຊິກ MailToUser=ຜູ້ໃຊ້ @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=ຂອບຂວາເທິງ PDF MAIN_PDF_MARGIN_TOP=ຂອບເທິງສຸດໃນ PDF MAIN_PDF_MARGIN_BOTTOM=ຂອບລຸ່ມສຸດໃນ PDF MAIN_DOCUMENTS_LOGO_HEIGHT=ຄວາມສູງ ສຳ ລັບໂລໂກ້ຢູ່ໃນ PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=ເອົາຕົວອັກສອນພິເສດອອ COMPANY_AQUARIUM_CLEAN_REGEX=ຕົວກອງ Regex ເພື່ອເຮັດຄວາມສະອາດຄ່າ (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=ຕົວກອງ Regex ເພື່ອເຮັດຄວາມສະອາດຄ່າ (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=ບໍ່ອະນຸຍາດໃຫ້ຊໍ້າກັນ +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=ເຈົ້າ ໜ້າ ທີ່ປົກປ້ອງຂໍ້ມູນ (DPO, ຄວາມເປັນສ່ວນຕົວຂອງຂໍ້ມູນຫຼືການຕິດຕໍ່ GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=ຂໍ້ຄວາມຊ່ວຍເຫຼືອເພື່ອສະແດງຢູ່ໃນຄໍາແນະນໍາ @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=າຍເຫດ: ທາງເລືອກທີ່ຈະໃຊ້ SwapSenderAndRecipientOnPDF=ສະຫຼັບ ຕຳ ແໜ່ງ ຜູ້ສົ່ງແລະທີ່ຢູ່ຜູ້ຮັບໃນເອກະສານ PDF FeatureSupportedOnTextFieldsOnly=ຄຳ ເຕືອນ, ຄຸນສົມບັດທີ່ຮອງຮັບໃນຊ່ອງຂໍ້ຄວາມແລະລາຍການຄອມໂບເທົ່ານັ້ນ. ການປະຕິບັດຕົວກໍານົດການ URL = ສ້າງຫຼືການປະຕິບັດ = ດັດແກ້ຕ້ອງຖືກກໍານົດຫຼືຊື່ ໜ້າ ຈະຕ້ອງລົງທ້າຍດ້ວຍ 'new.php' ເພື່ອເປີດໃຊ້ຄຸນສົມບັດນີ້. EmailCollector=ຜູ້ເກັບອີເມລ +EmailCollectors=Email collectors EmailCollectorDescription=ເພີ່ມ ໜ້າ ວຽກທີ່ໄດ້ກໍານົດໄວ້ແລະ ໜ້າ ຕິດຕັ້ງເພື່ອສະແກນກ່ອງອີເມວເປັນປະຈໍາ (ໂດຍໃຊ້ໂປຣໂຕຄໍ IMAP) ແລະບັນທຶກອີເມວທີ່ໄດ້ຮັບເຂົ້າໃນໃບສະັກຂອງເຈົ້າ, ຢູ່ບ່ອນທີ່ຖືກຕ້ອງແລະ/ຫຼືສ້າງບັນທຶກຈໍານວນ ໜຶ່ງ ໂດຍອັດຕະໂນມັດ (ເຊັ່ນ: ນໍາ). NewEmailCollector=ຜູ້ເກັບອີເມລ New ໃຫມ່ EMailHost=ໂຮສຂອງເຊີບເວີ IMAP ຂອງອີເມວ +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=ໄດເຣັກທໍຣີແຫຼ່ງທີ່ມາຂອງກ່ອງຈົດາຍ MailboxTargetDirectory=ບັນຊີລາຍຊື່ເປົ້າboxາຍກ່ອງຈົດາຍ EmailcollectorOperations=ການດໍາເນີນງານທີ່ຕ້ອງເຮັດໂດຍຜູ້ເກັບ EmailcollectorOperationsDesc=ການປະຕິບັດງານແມ່ນ ດຳ ເນີນຈາກ ລຳ ດັບເທິງຫາລຸ່ມ MaxEmailCollectPerCollect=ຈໍານວນສູງສຸດຂອງອີເມລ collected ທີ່ເກັບກໍາຕໍ່ການເກັບກໍາ +TestCollectNow=Test collect CollectNow=ເກັບກໍາໃນປັດຈຸບັນ ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=ວັນທີຂອງການພະຍາຍາມເກັບລ້າສຸດ DateLastcollectResultOk=ວັນທີຂອງຜົນສໍາເລັດເກັບກໍາຫຼ້າສຸດ LastResult=ຜົນໄດ້ຮັບຫຼ້າສຸດ EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=ອີເມລ collect ເກັບກໍາຂໍ້ຢືນຢັນ EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=ບໍ່ມີອີເມວໃ(່ (ການກັ່ນຕອງທີ່ກົງກັນ) ເພື່ອປະມວນຜົນ NothingProcessed=ບໍ່ມີຫຍັງເຮັດ -XEmailsDoneYActionsDone=ອີເມລ %s ມີຄຸນສົມບັດ, ອີເມລ %s ປະສົບຜົນສໍາເລັດ (ສໍາລັບບັນທຶກ/ການກະທໍາ %s ສໍາເລັດ) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=ສ້າງໃບສະjobັກວຽກ FormatZip=Zip MainMenuCode=ລະຫັດການເຂົ້າເມນູ (ເມນູຫຼັກ) ECMAutoTree=ສະແດງຕົ້ນໄມ້ ECM ອັດຕະໂນມັດ -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=ເວລາເປີດ OpeningHoursDesc=ມາທີ່ນີ້ເວລາເປີດປົກກະຕິຂອງບໍລິສັດຂອງເຈົ້າ. ResourceSetup=ການຕັ້ງຄ່າໂມດູນຊັບພະຍາກອນ @@ -2167,6 +2200,10 @@ EmailTemplate=ແມ່ແບບສໍາລັບອີເມລ EMailsWillHaveMessageID=ອີເມວຈະມີແທັກ 'ການອ້າງອີງ' ທີ່ກົງກັບຫຼັກໄວຍາກອນນີ້ PDF_SHOW_PROJECT=ສະແດງໂຄງການຢູ່ໃນເອກະສານ ShowProjectLabel=ປ້າຍຊື່ໂຄງການ +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=ຖ້າເຈົ້າຕ້ອງການໃຫ້ມີຕົວ ໜັງ ສືບາງອັນຢູ່ໃນ PDF ຂອງເຈົ້າຊໍ້າກັນຢູ່ໃນ 2 ພາສາທີ່ແຕກຕ່າງກັນຢູ່ໃນ PDF ທີ່ສ້າງຂຶ້ນອັນດຽວກັນ, ເຈົ້າຕ້ອງຕັ້ງເປັນພາສາທີສອງຢູ່ທີ່ນີ້ເພື່ອໃຫ້ PDF ທີ່ສ້າງຂຶ້ນຈະມີ 2 ພາສາແຕກຕ່າງກັນຢູ່ໃນ ໜ້າ ດຽວ, ອັນທີ່ເລືອກເມື່ອສ້າງ PDF ແລະອັນນີ້ ( ມີພຽງແຕ່ແມ່ແບບ PDF ບາງອັນທີ່ສະ ໜັບ ສະ ໜູນ ອັນນີ້). ຮັກສາຫວ່າງເປົ່າສໍາລັບ 1 ພາສາຕໍ່ PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=ໃສ່ທີ່ນີ້ລະຫັດຂອງໄອຄອນ FontAwesome. ຖ້າເຈົ້າບໍ່ຮູ້ວ່າ FontAwesome ແມ່ນຫຍັງ, ເຈົ້າສາມາດໃຊ້ຄ່າທົ່ວໄປ fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=ການຮ່ວມມື AGENDA_EVENT_DEFAULT_STATUS=ສະຖານະເຫດການເລີ່ມຕົ້ນເມື່ອສ້າງເຫດການຈາກແບບຟອມ YouShouldDisablePHPFunctions=ເຈົ້າຄວນປິດການທໍາງານຂອງ PHP IfCLINotRequiredYouShouldDisablePHPFunctions=ຍົກເວັ້ນຖ້າເຈົ້າຕ້ອງການໃຊ້ ຄຳ ສັ່ງລະບົບໃນລະຫັດ ກຳ ນົດເອງ, ເຈົ້າຈະປິດການ ທຳ ງານ PHP -PHPFunctionsRequiredForCLI=ສໍາລັບຈຸດປະສົງຂອງຫອຍ (ເຊັ່ນ: ການສໍາຮອງຂໍ້ມູນວຽກທີ່ກໍານົດໄວ້ຫຼືການດໍາເນີນໂຄງການ anitivurs), ເຈົ້າຕ້ອງຮັກສາຟັງຊັນ PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=ບໍ່ພົບໄຟລ or ຫຼືບັນຊີລາຍຊື່ຂອງໂປຣແກມທົ່ວໄປທີ່ສາມາດຂຽນເຂົ້າໄປໃນໄດເຣັກທໍຣີຮາກຂອງເຈົ້າໄດ້ (ດີ) RecommendedValueIs=ແນະນໍາ: %s Recommended=ແນະນໍາ NotRecommended=ບໍ່ແນະນໍາ -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=ກວດເບິ່ງການອັບເດດໂມດູນພາຍນອກ CheckForModuleUpdateHelp=ຄຳ ສັ່ງນີ້ຈະເຊື່ອມຕໍ່ຫາຕົວແກ້ໄຂໂມດູນພາຍນອກເພື່ອກວດເບິ່ງວ່າມີເວີຊັນໃis່ຫຼືບໍ່. ModuleUpdateAvailable=ມີອັບເດດມາໃ່ @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=ບໍ່ພົບການອັບເດດ ສຳ SwaggerDescriptionFile=ໄຟລ description ຄໍາອະທິບາຍ Swagger API (ສໍາລັບໃຊ້ກັບ redoc ຕົວຢ່າງ) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=ເຈົ້າໄດ້ເປີດໃຊ້ WS API ທີ່ເຊົາໃຊ້ໄປແລ້ວ. ເຈົ້າຄວນໃຊ້ REST API ແທນ. RandomlySelectedIfSeveral=ເລືອກແບບສຸ່ມຖ້າມີຮູບຫຼາຍຮູບ +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=ລະຫັດຜ່ານຖານຂໍ້ມູນແມ່ນສັບສົນຢູ່ໃນໄຟລ conf conf DatabasePasswordNotObfuscated=ລະຫັດຜ່ານຖານຂໍ້ມູນບໍ່ໄດ້ເຮັດໃຫ້ສັບສົນໃນໄຟລ conf conf APIsAreNotEnabled=ໂມດູນ APIs ບໍ່ໄດ້ຖືກເປີດໃຊ້ງານ @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/lo_LA/categories.lang b/htdocs/langs/lo_LA/categories.lang index 4da4f0fc0c3..10b63678e09 100644 --- a/htdocs/langs/lo_LA/categories.lang +++ b/htdocs/langs/lo_LA/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=ສະມາຊິກຄົນນີ້ບໍ່ໄດ້ຢ ContactHasNoCategory=ລາຍຊື່ຜູ້ຕິດຕໍ່ນີ້ບໍ່ໄດ້ຢູ່ໃນແທັກ/categoriesວດູ່ໃດ ProjectHasNoCategory=ໂຄງການນີ້ບໍ່ໄດ້ຢູ່ໃນແທັກ/categoriesວດູ່ໃດ ClassifyInCategory=ເພີ່ມໃສ່ແທັກ/categoryວດູ່ +RemoveCategory=Remove category NotCategorized=ໂດຍບໍ່ມີແທັກ/categoryວດູ່ CategoryExistsAtSameLevel=categoryວດນີ້ມີຢູ່ແລ້ວກັບການອ້າງອີງນີ້ ContentsVisibleByAllShort=ເນື້ອຫາທັງvisibleົດສາມາດເບິ່ງເຫັນໄດ້ໂດຍທຸກຄົນ @@ -67,6 +68,7 @@ StockCategoriesShort=ແທັກ/categoriesວດູ່ສາງ ThisCategoryHasNoItems=categoryວດນີ້ບໍ່ມີລາຍການໃດ. CategId=Tagາຍເລກປະເພດ/categoryວດູ່ ParentCategory=ແທັກ/ParentວດParentູ່ຫຼັກ +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=ປ້າຍ ກຳ ກັບຂອງແທັກ/categoryວດູ່ຫຼັກ CatSupList=ລາຍຊື່ຜູ້ຂາຍແທັກ/categoriesວດູ່ CatCusList=ລາຍຊື່ລູກຄ້າ/ຄວາມສົດໃສດ້ານແທັກ/categoriesວດູ່ @@ -86,15 +88,18 @@ DeleteFromCat=ລຶບອອກຈາກແທັກ/categoryວດູ່ ExtraFieldsCategories=ຄຸນລັກສະນະເສີມ CategoriesSetup=ການຕິດຕັ້ງແທັກ/categoriesວດູ່ CategorieRecursiv=ເຊື່ອມໂຍງກັບແທັກ/categoryວດparentູ່ຫຼັກໂດຍອັດຕະໂນມັດ -CategorieRecursivHelp=ຖ້າເປີດຕົວເລືອກ, ເມື່ອເຈົ້າເພີ່ມສິນຄ້າໃສ່ໃນcວດຍ່ອຍ, ຜະລິດຕະພັນຈະຖືກເພີ່ມເຂົ້າໃນparentວດູ່ຫຼັກ. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=ເພີ່ມຜະລິດຕະພັນ/ການບໍລິການຕໍ່ໄປນີ້ AddCustomerIntoCategory=ຈັດປະເພດໃຫ້ກັບລູກຄ້າ AddSupplierIntoCategory=ມອບcategoryວດໃຫ້ຜູ້ສະ ໜອງ +AssignCategoryTo=Assign category to ShowCategory=ສະແດງແທັກ/categoryວດູ່ ByDefaultInList=ໂດຍຄ່າເລີ່ມຕົ້ນໃນລາຍການ ChooseCategory=ເລືອກປະເພດ StocksCategoriesArea=ປະເພດສາງ +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=EventວດEventູ່ເຫດການ WebsitePagesCategoriesArea=ປະເພດ ໜ້າ ບັນຈຸ KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=ໃຊ້ຕົວ ດຳ ເນີນການ 'OR' ສຳ ລັບcategoriesວດູ່ +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/lo_LA/commercial.lang b/htdocs/langs/lo_LA/commercial.lang index be4cb90e55d..53cceb229d8 100644 --- a/htdocs/langs/lo_LA/commercial.lang +++ b/htdocs/langs/lo_LA/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=ສະຖານະພາບຄວາມສົດໃສດ້ານ DraftPropals=ຮ່າງບົດສະ ເໜີ ການຄ້າ NoLimit=ບໍ່ມີຂີດ ຈຳ ກັດ ToOfferALinkForOnlineSignature=ເຊື່ອມຕໍ່ສໍາລັບລາຍເຊັນອອນໄລນ -WelcomeOnOnlineSignaturePage=ຍິນດີຕ້ອນຮັບສູ່ ໜ້າ ເວັບເພື່ອຮັບເອົາຂໍ້ສະ ເໜີ ທາງການຄ້າຈາກ %s -ThisScreenAllowsYouToSignDocFrom=ໜ້າ ຈໍນີ້ອະນຸຍາດໃຫ້ເຈົ້າຍອມຮັບແລະເຊັນຊື່, ຫຼືປະຕິເສດ, ການສະ ເໜີ ລາຄາ/ການສະ ເໜີ ທາງການຄ້າ -ThisIsInformationOnDocumentToSign=ນີ້ແມ່ນຂໍ້ມູນຢູ່ໃນເອກະສານເພື່ອຍອມຮັບຫຼືປະຕິເສດ +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=ລາຍເຊັນຂອງໃບສະ ເໜີ ລາຄາ/ການສະ ເໜີ ການຄ້າ %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=ຄຸນນະສົມບັດສໍາລັບການປິດການລົງນາມອອນໄລນ or ຫຼືສ້າງເອກະສານກ່ອນທີ່ຈະເປີດການນໍາໃຊ້ຄຸນສົມບັດ diff --git a/htdocs/langs/lo_LA/companies.lang b/htdocs/langs/lo_LA/companies.lang index 0bfac672240..44b8706202c 100644 --- a/htdocs/langs/lo_LA/companies.lang +++ b/htdocs/langs/lo_LA/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=ລັກສະນະຂອງພາກສ່ວນທີສ NatureOfContact=ລັກສະນະຂອງການຕິດຕໍ່ Address=ທີ່ຢູ່ State=ລັດ/ແຂວງ +StateId=State ID StateCode=ລະຫັດລັດ/ແຂວງ StateShort=ລັດ Region=ພາກພື້ນ Region-State=ພາກພື້ນ - ລັດ Country=ປະເທດ CountryCode=ລະ​ຫັດ​ປະ​ເທດ -CountryId=ລະຫັດປະເທດ +CountryId=Country ID Phone=ໂທລະສັບ PhoneShort=ໂທລະສັບ Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T. ) @@ -443,7 +444,7 @@ AddAddress=ເພີ່ມທີ່ຢູ່ SupplierCategory=categoryວດູ່ຜູ້ຂາຍ JuridicalStatus200=ເອກະລາດ DeleteFile=ລຶບໄຟລ -ConfirmDeleteFile=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບໄຟລນີ້? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=ມອບtoາຍໃຫ້ຕົວແທນ່າຍຂາຍ Organization=ການຈັດຕັ້ງ FiscalYearInformation=ປີການເງິນ diff --git a/htdocs/langs/lo_LA/compta.lang b/htdocs/langs/lo_LA/compta.lang index c57ce0cd794..43e75e9e640 100644 --- a/htdocs/langs/lo_LA/compta.lang +++ b/htdocs/langs/lo_LA/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=ຍອດຄົງເຫຼືອ (ກ່ອນ) Balance=ຍອດເງິນ Debit=ເດບິດ Credit=ສິນເຊື່ອ +AccountingDebit=Debit +AccountingCredit=Credit Piece=ເອກະສານການບັນຊີ. AmountHTVATRealReceived=ເກັບກໍາສຸດທິ AmountHTVATRealPaid=ຈ່າຍສຸດທິ @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=ບໍ່ມີລາຍງ TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=ບໍ່ມີລາຍງານລາຍຮັບຂອງມູນຄ່າການຊື້ຂາຍຕໍ່ອາກອນການຂາຍ. ບົດລາຍງານນີ້ສາມາດໃຊ້ໄດ້ສະເພາະໃບເກັບເງິນລາຍຮັບ. CalculationMode=ຮູບແບບການຄິດໄລ່ AccountancyJournal=ວາລະສານລະຫັດບັນຊີ -ACCOUNTING_VAT_SOLD_ACCOUNT=ບັນຊີບັນຊີຕາມມາດຕະຖານສໍາລັບ VAT ໃນການຂາຍ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນການຕັ້ງວັດຈະນານຸກົມ VAT) -ACCOUNTING_VAT_BUY_ACCOUNT=ບັນຊີບັນຊີຕາມມາດຕະຖານສໍາລັບ VAT ໃນການຊື້ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນການຕັ້ງວັດຈະນານຸກົມ VAT) -ACCOUNTING_VAT_PAY_ACCOUNT=ບັນຊີບັນຊີໂດຍມາດຕະຖານສໍາລັບການຊໍາລະອາກອນມູນຄ່າເພີ່ມ -ACCOUNTING_ACCOUNT_CUSTOMER=ບັນຊີບັນຊີທີ່ໃຊ້ສໍາລັບລູກຄ້າພາກສ່ວນທີສາມ +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=ບັນຊີການບັນຊີສະເພາະທີ່ໄດ້ກໍານົດໄວ້ຢູ່ໃນບັດຂອງບຸກຄົນທີສາມຈະຖືກນໍາໃຊ້ສໍາລັບບັນຊີ Subledger ເທົ່ານັ້ນ. ອັນນີ້ຈະຖືກໃຊ້ສໍາລັບບັນຊີທົ່ວໄປແລະເປັນຄ່າເລີ່ມຕົ້ນຂອງບັນຊີ Subledger ຖ້າບັນຊີບັນຊີລູກຄ້າທີ່ອຸທິດຕົນຢູ່ໃນພາກສ່ວນທີສາມບໍ່ໄດ້ກໍານົດໄວ້. -ACCOUNTING_ACCOUNT_SUPPLIER=ບັນຊີບັນຊີທີ່ໃຊ້ສໍາລັບຜູ້ຂາຍພາກສ່ວນທີສາມ +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=ບັນຊີການບັນຊີສະເພາະທີ່ໄດ້ກໍານົດໄວ້ຢູ່ໃນບັດຂອງບຸກຄົນທີສາມຈະຖືກນໍາໃຊ້ສໍາລັບບັນຊີ Subledger ເທົ່ານັ້ນ. ອັນນີ້ຈະຖືກໃຊ້ສໍາລັບບັນຊີແຍກປະເພດທົ່ວໄປແລະເປັນຄ່າເລີ່ມຕົ້ນຂອງບັນຊີ Subledger ຖ້າບັນຊີບັນຊີຜູ້ຂາຍສະເພາະໃນພາກສ່ວນທີສາມບໍ່ໄດ້ກໍານົດໄວ້. ConfirmCloneTax=ຢືນຢັນການເກັບອາກອນທາງສັງຄົມ/ງົບປະມານ ConfirmCloneVAT=ຢືນຢັນການໂຄນຂອງການປະກາດ VAT @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/lo_LA/contracts.lang b/htdocs/langs/lo_LA/contracts.lang index 2fda76f4179..f560e0304f7 100644 --- a/htdocs/langs/lo_LA/contracts.lang +++ b/htdocs/langs/lo_LA/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=ສັນຍາ/ການສະັກໃຊ້ ContractsAndLine=ສັນຍາແລະເສັ້ນສັນຍາ Contract=ສັນຍາ ContractLine=ສາຍສັນຍາ +ContractLines=Contract lines Closing=ກຳ ລັງປິດ NoContracts=ບໍ່ມີສັນຍາ MenuServices=ການບໍລິການ @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈ MoveToAnotherContract=ຍ້າຍການບໍລິການໄປສູ່ສັນຍາອື່ນ. ConfirmMoveToAnotherContract=ຂ້ອຍເລືອກສັນຍາເປົ້າnewາຍໃand່ແລະຢືນຢັນວ່າຂ້ອຍຕ້ອງການຍ້າຍການບໍລິການນີ້ເຂົ້າໄປໃນສັນຍານີ້. ConfirmMoveToAnotherContractQuestion=ເລືອກສັນຍາທີ່ມີຢູ່ແລ້ວ (ຂອງພາກສ່ວນທີສາມອັນດຽວກັນ), ເຈົ້າຕ້ອງການຍ້າຍການບໍລິການນີ້ໄປຫາບໍ? -PaymentRenewContractId=ຕໍ່ອາຍຸເສັ້ນສັນຍາ (aາຍເລກ %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=ວັນ​ຫມົດ​ອາ​ຍຸ NoExpiredServices=ບໍ່ມີບໍລິການທີ່ ດຳ ເນີນຢູ່iredົດອາຍຸແລ້ວ ListOfServicesToExpireWithDuration=List of Services to expire in %s days @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=ເຊັນການຕິດຕໍ HideClosedServiceByDefault=ເຊື່ອງການບໍລິການທີ່ປິດໄວ້ຕາມຄ່າເລີ່ມຕົ້ນ ShowClosedServices=ສະແດງການບໍລິການທີ່ປິດ HideClosedServices=ເຊື່ອງການບໍລິການທີ່ປິດ +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/lo_LA/cron.lang b/htdocs/langs/lo_LA/cron.lang index e32440347a3..17accf2206c 100644 --- a/htdocs/langs/lo_LA/cron.lang +++ b/htdocs/langs/lo_LA/cron.lang @@ -26,7 +26,7 @@ CronCommand=ຄໍາສັ່ງ CronList=ວຽກທີ່ວາງແຜນໄວ້ CronDelete=ລຶບວຽກທີ່ ກຳ ນົດເວລາໄວ້ CronConfirmDelete=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບວຽກທີ່ ກຳ ນົດເວລາໄວ້ເຫຼົ່ານີ້? -CronExecute=ເປີດວຽກທີ່ໄດ້ ກຳ ນົດໄວ້ +CronExecute=Launch now CronConfirmExecute=ເຈົ້າແນ່ໃຈບໍວ່າເຈົ້າຕ້ອງການປະຕິບັດວຽກທີ່ກໍານົດເວລາເຫຼົ່ານີ້ດຽວນີ້? CronInfo=ໂມດູນວຽກທີ່ ກຳ ນົດເວລາອະນຸຍາດໃຫ້ຈັດຕາຕະລາງວຽກເພື່ອປະຕິບັດພວກມັນໂດຍອັດຕະໂນມັດ. ວຽກຍັງສາມາດເລີ່ມດ້ວຍຕົນເອງໄດ້. CronTask=ວຽກ @@ -58,7 +58,7 @@ CronNote=ຄໍາເຫັນ CronFieldMandatory=ຊ່ອງຂໍ້ມູນ %s ແມ່ນເປັນຂໍ້ບັງຄັບ CronErrEndDateStartDt=ວັນທີສິ້ນສຸດບໍ່ສາມາດແມ່ນກ່ອນວັນທີເລີ່ມຕົ້ນໄດ້ StatusAtInstall=ສະຖານະການຕິດຕັ້ງໂມດູນ -CronStatusActiveBtn=ຕາຕະລາງ +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=ປິດການນຳໃຊ້ CronTaskInactive=ວຽກນີ້ຖືກປິດການ ນຳ ໃຊ້ (ບໍ່ໄດ້ ກຳ ນົດເວລາ) CronId=ໄອດີ @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=ໄປທີ່ເມນູ " Home JobDisabled=ປິດການໃຊ້ວຽກແລ້ວ MakeLocalDatabaseDumpShort=ການສໍາຮອງຖານຂໍ້ມູນທ້ອງຖິ່ນ MakeLocalDatabaseDump=ສ້າງການຖິ້ມຖານຂໍ້ມູນທ້ອງຖິ່ນ. ພາລາມິເຕີແມ່ນ: ການບີບອັດ ('gz' ຫຼື 'bz' ຫຼື 'ບໍ່ມີ'), ປະເພດການ ສຳ ຮອງຂໍ້ມູນ ('mysql', 'pgsql', 'auto'), 1, 'auto' ຫຼືຊື່ໄຟລ to ທີ່ຈະສ້າງ, ຈຳ ນວນຂອງໄຟລ backup ສຳ ຮອງເພື່ອຮັກສາ. +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=ຄວາມເອົາໃຈໃສ່, ເພື່ອຈຸດປະສົງການປະຕິບັດ, ອັນໃດກໍ່ຕາມແມ່ນວັນຕໍ່ໄປຂອງການປະຕິບັດວຽກທີ່ເປີດໃຊ້ງານ, ວຽກຂອງເຈົ້າອາດຈະຖືກຊັກຊ້າເຖິງສູງສຸດ %s ຊົ່ວໂມງ, ກ່ອນຈະຖືກດໍາເນີນການ. DATAPOLICYJob=ຕົວເຮັດຄວາມສະອາດຂໍ້ມູນແລະຕົວລະບຸຕົວຕົນ JobXMustBeEnabled=ຕ້ອງເປີດການ ນຳ ໃຊ້ວຽກ %s +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=ວຽກປະຕິບັດທີ່ ກຳ ນົດໄວ້ເທື່ອສຸດທ້າຍ NextScheduledJobExecute=ວຽກທີ່ໄດ້ວາງແຜນຕໍ່ໄປເພື່ອປະຕິບັດ NumberScheduledJobError=ຈຳ ນວນຂອງການນັດjobsາຍວຽກຜິດພາດ +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/lo_LA/datapolicy.lang b/htdocs/langs/lo_LA/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/lo_LA/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/lo_LA/ecm.lang b/htdocs/langs/lo_LA/ecm.lang index 972b868c980..df7c04dda17 100644 --- a/htdocs/langs/lo_LA/ecm.lang +++ b/htdocs/langs/lo_LA/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=ປື້ມຄູ່ມື ECMSectionAuto=ລະບົບອັດຕະໂນມັດ ECMSectionsManual=ຕົ້ນໄມ້ຄູ່ມື ECMSectionsAuto=ຕົ້ນໄມ້ອັດຕະໂນມັດ +ECMSectionsMedias=Medias tree ECMSections=ບັນຊີລາຍຊື່ ECMRoot=ຮາກ ECM ECMNewSection=ບັນຊີລາຍການໃຫມ່ @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=ຈໍານວນຂອງໄຟລ in ໃນລາຍກ ECMCreationUser=ຜູ້ສ້າງ ECMArea=ພື້ນທີ່ DMS/ECM ECMAreaDesc=ພື້ນທີ່ DMS / ECM (ລະບົບການຈັດການເອກະສານ / ການຈັດການເນື້ອໃນອີເລັກໂທຣນິກ) ຊ່ວຍໃຫ້ເຈົ້າສາມາດບັນທຶກ, ແບ່ງປັນແລະຄົ້ນຫາເອກະສານທຸກປະເພດຢູ່ໃນ Dolibarr ໄດ້ຢ່າງວ່ອງໄວ. -ECMAreaDesc2=* ບັນຊີລາຍການອັດຕະໂນມັດຈະຖືກຕື່ມໃສ່ໂດຍອັດຕະໂນມັດເມື່ອເພີ່ມເອກະສານຈາກບັດຂອງອົງປະກອບໃດນຶ່ງ.
    * ບັນຊີລາຍການຄູ່ມືສາມາດຖືກນໍາໃຊ້ເພື່ອບັນທຶກເອກະສານທີ່ບໍ່ໄດ້ເຊື່ອມຕໍ່ກັບອົງປະກອບສະເພາະ. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=ບັນຊີລາຍການ %s ໄດ້ຖືກລຶບອອກແລ້ວ. ECMSectionWasCreated=ບັນຊີລາຍຊື່ %s ໄດ້ຖືກສ້າງຂຶ້ນແລ້ວ. ECMSearchByKeywords=ຄົ້ນຫາໂດຍຄໍາສໍາຄັນ diff --git a/htdocs/langs/lo_LA/errors.lang b/htdocs/langs/lo_LA/errors.lang index be5f507a576..459f4f84ace 100644 --- a/htdocs/langs/lo_LA/errors.lang +++ b/htdocs/langs/lo_LA/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=ອີເມວ %s ເບິ່ງຄືວ່າບໍ່ຖ ErrorBadUrl=Url %s ບໍ່ຖືກຕ້ອງ ErrorBadValueForParamNotAString=ຄ່າບໍ່ດີ ສຳ ລັບພາຣາມິເຕີຂອງເຈົ້າ. ມັນຕໍ່ທ້າຍໂດຍທົ່ວໄປເມື່ອຂາດການແປພາສາ. ErrorRefAlreadyExists=ມີການອ້າງອີງ %s ຢູ່ແລ້ວ. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=ເຂົ້າສູ່ລະບົບ %s ມີຢູ່ແລ້ວ. ErrorGroupAlreadyExists=ກຸ່ມ %s ມີຢູ່ແລ້ວ. ErrorEmailAlreadyExists=ອີເມວ %s ມີຢູ່ແລ້ວ. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=ໄຟລ Another ອື່ນທີ່ມີຊ ErrorPartialFile=ໄຟລ not ບໍ່ໄດ້ຮັບໂດຍເຊີບເວີ. ErrorNoTmpDir=ບໍ່ມີ directy ຊົ່ວຄາວ %s. ErrorUploadBlockedByAddon=ການອັບໂຫຼດຖືກບລັອກໂດຍປລັກອິນ PHP/Apache. -ErrorFileSizeTooLarge=ຂະ ໜາດ ໄຟລ is ໃຫຍ່ເກີນໄປ. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=ຊ່ອງຂໍ້ມູນ %s ຍາວເກີນໄປ. ErrorSizeTooLongForIntType=ຂະ ໜາດ ຍາວເກີນໄປ ສຳ ລັບປະເພດ int (ຕົວເລກສູງສຸດ %s) ErrorSizeTooLongForVarcharType=ຂະ ໜາດ ຍາວເກີນໄປ ສຳ ລັບປະເພດສະຕຣິງ (ຕົວອັກສອນສູງສຸດ %s) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript ບໍ່ຕ້ອງຖືກປິດ ErrorPasswordsMustMatch=ລະຫັດຜ່ານທີ່ພິມທັງສອງອັນຕ້ອງກົງກັນ ErrorContactEMail=ເກີດຄວາມຜິດພາດທາງເທັກນິກ. ກະລຸນາຕິດຕໍ່ຫາຜູ້ບໍລິຫານເພື່ອຕິດຕາມອີເມລ a %s ແລະໃຫ້ລະຫັດຄວາມຜິດພາດ %s ຢູ່ໃນຂໍ້ຄວາມຂອງເຈົ້າ, ຫຼືເພີ່ມ ໜ້າ ນີ້ໃສ່ ໜ້າ ຈໍສໍາເນົາຂອງເຈົ້າ, ຫຼືເພີ່ມ ໜ້າ ນີ້. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=ພາກສະຫນາມ %s : ' %s ' ບໍ່ແມ່ນມູນຄ່າທີ່ພົບເຫັນໃນພາກສະຫນາມ %s ຂອງ %s ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref ErrorsOnXLines=ພົບຂໍ້ຜິດພາດ %s @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=ກ່ອນອື່ນmustົດທ ErrorFailedToFindEmailTemplate=ການຊອກຫາແມ່ແບບທີ່ມີລະຫັດຊື່ %s ລົ້ມເຫລວ ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=ບໍ່ໄດ້ ກຳ ນົດໄລຍະເວລາການບໍລິການ. ບໍ່ມີທາງທີ່ຈະຄິດໄລ່ລາຄາຊົ່ວໂມງ. ErrorActionCommPropertyUserowneridNotDefined=ເຈົ້າຂອງຜູ້ໃຊ້ແມ່ນຕ້ອງການ -ErrorActionCommBadType=ປະເພດເຫດການທີ່ເລືອກ (id: %n, ລະຫັດ: %s) ບໍ່ມີຢູ່ໃນວັດຈະນານຸກົມປະເພດເຫດການ +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=ກວດສອບເວີຊັນບໍ່ ສຳ ເລັດ ErrorWrongFileName=ຊື່ຂອງໄຟລ cannot ບໍ່ສາມາດມີ __SOMETHING__ ໃນມັນໄດ້ ErrorNotInDictionaryPaymentConditions=ບໍ່ຢູ່ໃນວັດຈະນານຸກົມເງື່ອນໄຂການຈ່າຍເງິນ, ກະລຸນາແກ້ໄຂ. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=ພາຣາມິເຕີ PHP ຂອງເຈົ້າ upload_max_filesize (%s) ສູງກວ່າພາລາມິເຕີ PHP post_max_size (%s). ອັນນີ້ບໍ່ແມ່ນການຕັ້ງທີ່ສອດຄ່ອງ. WarningPasswordSetWithNoAccount=ລະຫັດຜ່ານຖືກຕັ້ງໃຫ້ສະມາຊິກນີ້. ຢ່າງໃດກໍ່ຕາມ, ບໍ່ໄດ້ສ້າງບັນຊີຜູ້ໃຊ້. ສະນັ້ນລະຫັດຜ່ານນີ້ຖືກເກັບໄວ້ແຕ່ບໍ່ສາມາດໃຊ້ເພື່ອເຂົ້າສູ່ລະບົບຫາ Dolibarr ໄດ້. ມັນອາດຈະຖືກໃຊ້ໂດຍໂມດູນ/ອິນເຕີເຟດພາຍນອກແຕ່ຖ້າເຈົ້າບໍ່ຈໍາເປັນຕ້ອງກໍານົດການເຂົ້າສູ່ລະບົບຫຼືລະຫັດຜ່ານສໍາລັບສະມາຊິກ, ເຈົ້າສາມາດປິດຕົວເລືອກ "ຈັດການການເຂົ້າສູ່ລະບົບສໍາລັບສະມາຊິກແຕ່ລະຄົນ" ຈາກການຕັ້ງຄ່າໂມດູນສະມາຊິກ. ຖ້າເຈົ້າຕ້ອງການຈັດການການເຂົ້າສູ່ລະບົບແຕ່ບໍ່ຕ້ອງການລະຫັດຜ່ານໃດ,, ເຈົ້າສາມາດເກັບຊ່ອງນີ້ຫວ່າງໄວ້ເພື່ອຫຼີກເວັ້ນການເຕືອນນີ້. Noteາຍເຫດ: ອີເມລ also ຍັງສາມາດໃຊ້ເປັນການເຂົ້າສູ່ລະບົບໄດ້ຖ້າສະມາຊິກເຊື່ອມໂຍງກັບຜູ້ໃຊ້. -WarningMandatorySetupNotComplete=ຄລິກບ່ອນນີ້ເພື່ອຕັ້ງຄ່າຕົວກໍານົດການບັງຄັບ +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=ຄລິກບ່ອນນີ້ເພື່ອເປີດໃຊ້ໂມດູນແລະການສະັກຂອງເຈົ້າ WarningSafeModeOnCheckExecDir=ຄຳ ເຕືອນ, ຕົວເລືອກ PHP safe_mode ຢູ່ເທິງສະນັ້ນ ຄຳ ສັ່ງຕ້ອງຖືກເກັບໄວ້ພາຍໃນໄດເຣັກທໍຣີທີ່ປະກາດໂດຍ php parameter safe_mode_exec_dir . WarningBookmarkAlreadyExists=ບຸກມາກທີ່ມີຊື່ນີ້ຫຼືເປົ້າ(າຍນີ້ (URL) ມີຢູ່ແລ້ວ. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=ຄຳ ເຕືອນ, ເຈົ້າບໍ່ສາ WarningAvailableOnlyForHTTPSServers=ສາມາດໃຊ້ໄດ້ສະເພາະການໃຊ້ການເຊື່ອມຕໍ່ທີ່ປອດໄພ HTTPS ເທົ່ານັ້ນ. WarningModuleXDisabledSoYouMayMissEventHere=ໂມດູນ %s ບໍ່ໄດ້ຖືກເປີດ ນຳ ໃຊ້. ດັ່ງນັ້ນເຈົ້າອາດຈະພາດເຫດການຫຼາຍຢ່າງຢູ່ທີ່ນີ້. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/lo_LA/eventorganization.lang b/htdocs/langs/lo_LA/eventorganization.lang index 3812ff301c5..6595079d40c 100644 --- a/htdocs/langs/lo_LA/eventorganization.lang +++ b/htdocs/langs/lo_LA/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Event organization Settings=ການຕັ້ງຄ່າ EventOrganizationSetupPage = ໜ້າ ການຕັ້ງອົງການຈັດຕັ້ງເຫດການ EVENTORGANIZATION_TASK_LABEL = ປ້າຍ ກຳ ກັບ ໜ້າ ວຽກເພື່ອສ້າງອັດຕະໂນມັດເມື່ອໂຄງການໄດ້ຮັບການກວດສອບ -EVENTORGANIZATION_TASK_LABELTooltip = ເມື່ອເຈົ້າກວດສອບເຫດການທີ່ມີການຈັດຕັ້ງ, ບາງ ໜ້າ ວຽກສາມາດຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດໃນໂຄງການ

    ຕົວຢ່າງ:
    ສົ່ງສາຍສໍາລັບກອງປະຊຸມ
    ສົ່ງສາຍສໍາລັບກອງປະຊຸມ
    ຮັບສາຍໂທເຂົ້າກອງປະຊຸມ a034 a0342fccf1919bz0 ຮັບສາຍໂທສໍາລັບກອງປະຊຸມ a034 a344 fc f19 a034 ຈັດການສໍາລັບກອງປະຊຸມ ເຕືອນເຫດການໃຫ້ລໍາໂພງ
    ສົ່ງການເຕືອນເຫດການໃຫ້ Booth hoster
    ສົ່ງເຕືອນເຫດການໃຫ້ກັບຜູ້ເຂົ້າຮ່ວມ +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoryວດtoູ່ເພື່ອເພີ່ມໃສ່ພາກສ່ວນທີສາມສ້າງໂດຍອັດຕະໂນມັດເມື່ອມີຄົນແນະ ນຳ ການປະຊຸມ EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categoryວດtoູ່ເພື່ອເພີ່ມໃສ່ພາກສ່ວນທີສາມສ້າງໂດຍອັດຕະໂນມັດເມື່ອພວກເຂົາແນະ ນຳ ບູດ EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = ແມ່ແບບຂອງອີເມລ send ເພື່ອສົ່ງຫຼັງຈາກໄດ້ຮັບຄໍາແນະນໍາຂອງກອງປະຊຸມ. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= ກອງປະຊຸມຫຼືບູດ +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = ກອງປະຊຸມຫຼືບູດ ConferenceOrBoothTab = ກອງປະຊຸມຫຼືບູດ AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = ຜູ້ເຂົ້າຮ່ວມກອງປະຊຸມຫຼືບູດ +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = ລາຍຊື່ກອງປະຊຸມແນະ ນຳ -ListOfSuggestedBooths = ລາຍຊື່ບູດທີ່ແນະ ນຳ -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = ແນະ ນຳ ການປະຊຸມໃ່ SuggestBooth = ແນະ ນຳ ບູດ ViewAndVote = ເບິ່ງແລະລົງຄະແນນສຽງ ສຳ ລັບເຫດການທີ່ແນະ ນຳ PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = ກະແຈຄວາມປອດໄພບໍ່ຖືກຕ້ອງຫຼືບໍ່ມີ -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = ກອງປະຊຸມນີ້ເລີ່ມຕົ້ນໃນ %s ແລະສິ້ນສຸດໃນ %s. ConferenceAttendeeFee = ຄ່າທໍານຽມຜູ້ເຂົ້າຮ່ວມກອງປະຊຸມສໍາລັບເຫດການ: '%s' ເກີດຂຶ້ນຈາກ %s ຫາ %s. BoothLocationFee = ສະຖານທີ່ບູດສໍາລັບເຫດການ: '%s' ເກີດຂຶ້ນຈາກ %s ຫາ %s @@ -129,7 +133,7 @@ LabelOfconference=ປ້າຍປະຊຸມ ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s ຕ້ອງແມ່ນກ່ອນ %s DateMustBeAfterThan=%s ຕ້ອງເປັນຫຼັງຈາກ %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registration OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -153,7 +158,7 @@ VoteOk = ການລົງຄະແນນສຽງຂອງທ່ານໄດ AlreadyVoted = ທ່ານໄດ້ໂຫວດໃຫ້ເຫດການນີ້ແລ້ວ. VoteError = ເກີດຄວາມຜິດພາດໃນລະຫວ່າງການລົງຄະແນນສຽງ, ກະລຸນາລອງໃagain່ອີກຄັ້ງ. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event Attendee = ຜູ້ເຂົ້າຮ່ວມ PaymentConferenceAttendee = ການຈ່າຍເງິນໃຫ້ຜູ້ເຂົ້າຮ່ວມກອງປະຊຸມ @@ -161,7 +166,9 @@ PaymentBoothLocation = ການຊໍາລະສະຖານທີ່ບູດ DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/lo_LA/externalsite.lang b/htdocs/langs/lo_LA/externalsite.lang deleted file mode 100644 index e28d475a5e9..00000000000 --- a/htdocs/langs/lo_LA/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=ຕັ້ງການເຊື່ອມຕໍ່ກັບເວັບໄຊທ external ພາຍນອກ -ExternalSiteURL=URL ເວັບໄຊພາຍນອກຂອງເນື້ອຫາ iframe ຂອງ HTML -ExternalSiteModuleNotComplete=ໂມດູນ ExternalSite ບໍ່ໄດ້ຖືກຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ. -ExampleMyMenuEntry=ລາຍການເມນູຂອງຂ້ອຍ diff --git a/htdocs/langs/lo_LA/ftp.lang b/htdocs/langs/lo_LA/ftp.lang deleted file mode 100644 index d675b92a370..00000000000 --- a/htdocs/langs/lo_LA/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=ການຕັ້ງຄ່າໂມດູນລູກຄ້າ FTP ຫຼື SFTP -NewFTPClient=ການຕັ້ງຄ່າການເຊື່ອມຕໍ່ FTP/FTPS ໃ່ -FTPArea=ພື້ນທີ່ FTP/FTPS -FTPAreaDesc=ໜ້າ ຈໍນີ້ສະແດງໃຫ້ເຫັນມຸມມອງຂອງເຊີບເວີ FTP ແລະ SFTP. -SetupOfFTPClientModuleNotComplete=ການຕັ້ງຄ່າໂມດູນລູກຄ້າ FTP ຫຼື SFTP ເບິ່ງຄືວ່າບໍ່ສົມບູນ -FTPFeatureNotSupportedByYourPHP=PHP ຂອງເຈົ້າບໍ່ຮອງຮັບຟັງຊັນ FTP ຫຼື SFTP -FailedToConnectToFTPServer=ເຊື່ອມຕໍ່ກັບເຊີບເວີບໍ່ໄດ້ (ເຊີບເວີ %s, ຜອດ %s) -FailedToConnectToFTPServerWithCredentials=ເຂົ້າສູ່ລະບົບເຊີບເວີບໍ່ສໍາເລັດດ້ວຍການເຂົ້າສູ່ລະບົບ/ລະຫັດຜ່ານທີ່ກໍານົດໄວ້ -FTPFailedToRemoveFile=ລຶບໄຟລ a %s ບໍ່ ສຳ ເລັດ. -FTPFailedToRemoveDir=ການລຶບບັນຊີລາຍຊື່ %s ລົ້ມເຫລວ: ກວດເບິ່ງການອະນຸຍາດແລະວ່າບັນຊີລາຍການຫວ່າງເປົ່າ. -FTPPassiveMode=ໂiveດຕົວຕັ້ງຕົວຕີ -ChooseAFTPEntryIntoMenu=ເລືອກເວັບໄຊ FTP/SFTP ຈາກເມນູ ... -FailedToGetFile=ຮັບເອົາໄຟລ a %s ບໍ່ ສຳ ເລັດ diff --git a/htdocs/langs/lo_LA/holiday.lang b/htdocs/langs/lo_LA/holiday.lang index be1bfb4e23a..54ec34822ed 100644 --- a/htdocs/langs/lo_LA/holiday.lang +++ b/htdocs/langs/lo_LA/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=ອອກຈາກ +Holidays=Leaves +Holiday=Leave CPTitreMenu=ອອກຈາກ MenuReportMonth=ໃບລາຍງານປະຈໍາເດືອນ MenuAddCP=ຄຳ ຮ້ອງຂໍລາພັກໃNew່ +MenuCollectiveAddCP=New collective leave request NotActiveModCP=ເຈົ້າຕ້ອງເປີດໃຊ້ໂມດູນອອກເພື່ອເບິ່ງ ໜ້າ ນີ້. AddCP=ເຮັດການຮ້ອງຂໍການພັກ DateDebCP=ວັນ​ທີ່​ເລີ່ມ @@ -56,6 +58,7 @@ ConfirmDeleteCP=ຢືນຢັນການລຶບ ຄຳ ຮ້ອງຂໍ ErrorCantDeleteCP=ຜິດພາດເຈົ້າບໍ່ມີສິດລຶບ ຄຳ ຮ້ອງຂໍການລາພັກນີ້. CantCreateCP=ເຈົ້າບໍ່ມີສິດຮ້ອງຂໍການລາພັກ. InvalidValidatorCP=ເຈົ້າຕ້ອງເລືອກຜູ້ອະນຸມັດສໍາລັບຄໍາຮ້ອງຂໍການລາພັກຂອງເຈົ້າ. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=ທ່ານຕ້ອງເລືອກວັນທີເລີ່ມຕົ້ນ. NoDateFin=ທ່ານຕ້ອງເລືອກວັນທີສິ້ນສຸດ. ErrorDureeCP=ຄຳ ຮ້ອງຂໍລາພັກຂອງທ່ານບໍ່ມີມື້ເຮັດວຽກ. @@ -79,6 +82,8 @@ MotifCP=ເຫດ​ຜົນ UserCP=ຜູ້ໃຊ້ ErrorAddEventToUserCP=ເກີດຄວາມຜິດພາດຂຶ້ນໃນລະຫວ່າງການເພີ່ມມື້ພັກພິເສດ. AddEventToUserOkCP=ການເພີ່ມວັນພັກພິເສດໄດ້ ສຳ ເລັດແລ້ວ. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=ເບິ່ງບັນທຶກການປ່ຽນແປງ LogCP=ບັນທຶກການອັບເດດທັງmadeົດທີ່ເຮັດໃຫ້ "ຍອດເຫຼືອຂອງການອອກເດີນທາງ" ActionByCP=ອັບເດດໂດຍ @@ -86,6 +91,13 @@ UserUpdateCP=ອັບເດດ ສຳ ລັບ PrevSoldeCP=ຍອດເງິນຜ່ານມາ NewSoldeCP=ຍອດເງິນໃ່ alreadyCPexist=ຄຳ ຮ້ອງຂໍລາພັກໄດ້ເຮັດ ສຳ ເລັດແລ້ວໃນໄລຍະນີ້. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=ມື້ເລີ່ມຕົ້ນຂອງການຮ້ອງຂໍການລາພັກ LastDayOfHoliday=ມື້ສິ້ນສຸດການຮ້ອງຂໍການລາພັກ BoxTitleLastLeaveRequests=ການຮ້ອງຂໍການອອກຈາກຫຼ້າສຸດ %s @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s ແມ່ນປົກກະຕິແລ້ວແມ່ BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/lo_LA/hrm.lang b/htdocs/langs/lo_LA/hrm.lang index 05584bdc080..8acb1942d00 100644 --- a/htdocs/langs/lo_LA/hrm.lang +++ b/htdocs/langs/lo_LA/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=ເປີດການສ້າງຕັ້ງ CloseEtablishment=ປິດການສ້າງຕັ້ງ # Dictionary DictionaryPublicHolidays=ພັກ - ວັນພັກລັດຖະການ -DictionaryDepartment=HRM - ລາຍຊື່ພະແນກ +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - ຕຳ ແໜ່ງ ວຽກ # Module Employees=ພະນັກງານ @@ -20,13 +20,14 @@ Employee=ລູກ​ຈ້າງ NewEmployee=ພະນັກງານໃ່ ListOfEmployees=ລາຍຊື່ພະນັກງານ HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs +JobPosition=Job +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Position -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/lo_LA/install.lang b/htdocs/langs/lo_LA/install.lang index be72302b56d..10d3f90736d 100644 --- a/htdocs/langs/lo_LA/install.lang +++ b/htdocs/langs/lo_LA/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=ໄຟລ Conf ການຕັ້ງຄ່າ %s ConfFileIsWritable=ໄຟລ Conf ການຕັ້ງຄ່າ %s ແມ່ນສາມາດຂຽນໄດ້. ConfFileMustBeAFileNotADir=ໄຟລ Conf ການຕັ້ງຄ່າ %s ຕ້ອງເປັນໄຟລ,, ບໍ່ແມ່ນບັນຊີລາຍຊື່. ConfFileReload=ກຳ ລັງໂຫຼດຕົວ ກຳ ນົດການຄືນໃfrom່ຈາກໄຟລ configuration ການຕັ້ງຄ່າ. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP ນີ້ຮອງຮັບຕົວແປ POST ແລະ GET. PHPSupportPOSTGETKo=ມັນເປັນໄປໄດ້ວ່າການຕັ້ງ PHP ຂອງເຈົ້າບໍ່ສະ ໜັບ ສະ ໜູນ ຕົວແປ POST ແລະ/ຫຼື GET. ກວດເບິ່ງຕົວກໍານົດການ variables_order ໃນ php.ini. PHPSupportSessions=PHP ນີ້ສະ ໜັບ ສະ ໜູນ ເຊດຊັນຕ່າງ. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=ເຈົ້າອາດຈະພິມຄ່າຜ ErrorFailedToCreateDatabase=ສ້າງຖານຂໍ້ມູນ '%s' ບໍ່ ສຳ ເລັດ. ErrorFailedToConnectToDatabase=ເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ '%s ບໍ່ສໍາເລັດ. ErrorDatabaseVersionTooLow=ເວີຊັນຖານຂໍ້ມູນ (%s) ເກົ່າເກີນໄປ. ຕ້ອງການເວີຊັນ %s ຫຼືສູງກວ່າ. -ErrorPHPVersionTooLow=ເວີຊັນ PHP ເກົ່າເກີນໄປ. ຕ້ອງການເວີຊັນ %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=ການເຊື່ອມຕໍ່ຫາເຊີບເວີ ສຳ ເລັດແຕ່ບໍ່ພົບຖານຂໍ້ມູນ '%s'. ErrorDatabaseAlreadyExists=ຖານຂໍ້ມູນ '%s' ມີຢູ່ແລ້ວ. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=ຖ້າຖານຂໍ້ມູນບໍ່ມີຢູ່, ໃຫ້ກັບຄືນແລະກວດເບິ່ງຕົວເລືອກ "ສ້າງຖານຂໍ້ມູນ". IfDatabaseExistsGoBackAndCheckCreate=ຖ້າຖານຂໍ້ມູນມີຢູ່ແລ້ວ, ກັບຄືນໄປແລະຍົກເລີກການເລືອກ "ສ້າງຖານຂໍ້ມູນ" ທາງເລືອກ. WarningBrowserTooOld=ເວີຊັນຂອງໂປຣແກຣມທ່ອງເວັບເກົ່າເກີນໄປ. ການອັບເກຣດໂປຣແກຣມທ່ອງເວັບຂອງເຈົ້າເປັນ Firefox, Chrome ຫຼື Opera ລຸ້ນລ້າສຸດແມ່ນແນະ ນຳ ໃຫ້ສູງ. diff --git a/htdocs/langs/lo_LA/knowledgemanagement.lang b/htdocs/langs/lo_LA/knowledgemanagement.lang index 475ddd287d8..384148f05a6 100644 --- a/htdocs/langs/lo_LA/knowledgemanagement.lang +++ b/htdocs/langs/lo_LA/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = ບົດຄວາມ KnowledgeRecord = ມາດຕາ KnowledgeRecordExtraFields = Extrafields ສໍາລັບບົດຄວາມ GroupOfTicket=ກຸ່ມຂອງປີ້ -YouCanLinkArticleToATicketCategory=ເຈົ້າສາມາດເຊື່ອມຕໍ່ບົດຄວາມ ໜຶ່ງ ກັບກຸ່ມປີ້ (ສະນັ້ນບົດຄວາມຈະຖືກແນະນໍາໃນລະຫວ່າງຄຸນສົມບັດຂອງປີ້ໃ)່) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Suggested for tickets when group is SetObsolete=Set as obsolete diff --git a/htdocs/langs/lo_LA/loan.lang b/htdocs/langs/lo_LA/loan.lang index 8d9ec8d7e96..16796e417d0 100644 --- a/htdocs/langs/lo_LA/loan.lang +++ b/htdocs/langs/lo_LA/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=ຄໍາຫມັ້ນສັນຍາທາງດ້ານ InterestAmount=ດອກເບ້ຍ CapitalRemain=ທຶນຍັງຄົງຢູ່ TermPaidAllreadyPaid = ໄລຍະນີ້ແມ່ນໄດ້ຈ່າຍເງິນົດແລ້ວ -CantUseScheduleWithLoanStartedToPaid = ບໍ່ສາມາດໃຊ້ ກຳ ນົດເວລາ ສຳ ລັບເງິນກູ້ທີ່ມີການຈ່າຍເງິນເລີ່ມຕົ້ນແລ້ວ +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = ເຈົ້າບໍ່ສາມາດແກ້ໄຂຄວາມສົນໃຈໄດ້ຖ້າເຈົ້າໃຊ້ ກຳ ນົດເວລາ # Admin ConfigLoan=ການ ກຳ ນົດຄ່າເງິນກູ້ຂອງໂມດູນ -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=ບັນຊີທຶນບັນຊີຕາມຄ່າເລີ່ມຕົ້ນ -LOAN_ACCOUNTING_ACCOUNT_INTEREST=ອັດຕາດອກເບ້ຍບັນຊີຕາມຄ່າເລີ່ມຕົ້ນ -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=ການປະກັນບັນຊີບັນຊີຕາມຄ່າເລີ່ມຕົ້ນ +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=ແກ້ໄຂ ຄຳ commitmentັ້ນສັນຍາດ້ານການເງິນ diff --git a/htdocs/langs/lo_LA/mailmanspip.lang b/htdocs/langs/lo_LA/mailmanspip.lang index a628775160e..df9df1752f6 100644 --- a/htdocs/langs/lo_LA/mailmanspip.lang +++ b/htdocs/langs/lo_LA/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=ການທົດສອບການສະcriptionັກ MailmanDeletionSuccess=ການທົດສອບຍົກເລີກການເປັນສະມາຊິກ ສຳ ເລັດແລ້ວ SynchroMailManEnabled=ຈະມີການອັບເດດ Mailman SynchroSpipEnabled=ຈະມີການອັບເດດ Spip -DescADHERENT_MAILMAN_ADMINPW=ລະຫັດຜ່ານຜູ້ບໍລິຫານ Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL ສໍາລັບການສະMailັກໃຊ້ Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL ສໍາລັບການຍົກເລີກການເປັນສະມາຊິກ Mailman DescADHERENT_MAILMAN_LISTS=ລາຍຊື່ ສຳ ລັບການຂຽນຊື່ສະມາຊິກໃautomatic່ໂດຍອັດຕະໂນມັດ (ແຍກດ້ວຍaາຍຈຸດ) diff --git a/htdocs/langs/lo_LA/mails.lang b/htdocs/langs/lo_LA/mails.lang index 40fe167f783..3d040de3564 100644 --- a/htdocs/langs/lo_LA/mails.lang +++ b/htdocs/langs/lo_LA/mails.lang @@ -7,10 +7,10 @@ MailCard=ບັດອີເມລ MailRecipients=ຜູ້ຮັບ MailRecipient=ຜູ້ຮັບ MailTitle=ລາຍລະອຽດ -MailFrom=ຜູ້ສົ່ງ +MailFrom=From MailErrorsTo=ຂໍ້ຜິດພາດໄປຫາ MailReply=ຕອບ​ກັບ -MailTo=ຜູ້ຮັບ +MailTo=To MailToUsers=ເຖິງຜູ້ໃຊ້ MailCC=ອັດ ສຳ ເນົາໃສ່ MailToCCUsers=ອັດ ສຳ ເນົາໃສ່ຜູ້ໃຊ້ @@ -178,3 +178,4 @@ IsAnAnswer=ເປັນ ຄຳ ຕອບຂອງອີເມວເບື້ອ RecordCreatedByEmailCollector=ບັນທຶກທີ່ສ້າງໂດຍຜູ້ເກັບອີເມລ a %s ຈາກອີເມລ a %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=ຫວ່າງແຕ່ບັງຄັບ +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index e929be052f5..04c00c0ec87 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=ບໍ່ມີແມ່ແບບ ສຳ ລັບປະເພ AvailableVariables=ຕົວປ່ຽນການທົດແທນທີ່ມີຢູ່ NoTranslation=ບໍ່ມີການແປ Translation=ການແປພາສາ +Translations=Translations CurrentTimeZone=ເຂດເວລາ PHP (ເຊີບເວີ) EmptySearchString=ປ້ອນເງື່ອນໄຂການຄົ້ນຫາທີ່ບໍ່ຫວ່າງເປົ່າ EnterADateCriteria=ໃສ່ເກນວັນທີ @@ -199,6 +206,7 @@ Valid=ໃຊ້ໄດ້ Approve=ອະນຸມັດ Disapprove=ບໍ່ອະນຸມັດ ReOpen=ເປີດຄືນໃ່ +OpenVerb=Open Upload=ອັບໂຫລດ ToLink=ການເຊື່ອມຕໍ່ Select=ເລືອກ @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=ບໍ່ໄດ້ ກຳ ນົດກຸ່ມຜູ້ໃຊ້ Password=ລະຫັດຜ່ານ -PasswordRetype=ພິມລະຫັດຜ່ານຂອງທ່ານຄືນໃ່ +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=ໃຫ້ສັງເກດວ່າຫຼາຍລັກສະນະ/ໂມດູນຖືກປິດໃຊ້ງານຢູ່ໃນການສາທິດນີ້. Name=ຊື່ NameSlashCompany=ຊື່ / ບໍລິສັດ @@ -244,6 +252,7 @@ Designation=ລາຍລະອຽດ DescriptionOfLine=ລາຍລະອຽດຂອງ DateOfLine=ວັນທີແຖວ DurationOfLine=ໄລຍະເວລາຂອງເສັ້ນ +ParentLine=Parent line ID Model=ແມ່ແບບເອກະສານ DefaultModel=ແມ່ແບບເອກະສານເລີ່ມຕົ້ນ Action=ເຫດການ @@ -344,7 +353,7 @@ KiloBytes=ກິໂລໄບ MegaBytes=ເມກາໄບ GigaBytes=ກິກະໄບ TeraBytes=ເທຣາໄບຕ -UserAuthor=ແຕ່ງຕັ້ງໂດຍ +UserAuthor=Created by UserModif=ອັບເດດໂດຍ b=ຂ Kb=ກ @@ -480,6 +489,7 @@ ActionsOnContact=ເຫດການສໍາລັບການຕິດຕໍ່ ActionsOnContract=ເຫດການສໍາລັບສັນຍານີ້ ActionsOnMember=ເຫດການກ່ຽວກັບສະມາຊິກນີ້ ActionsOnProduct=ເຫດການກ່ຽວກັບຜະລິດຕະພັນນີ້ +ActionsOnAsset=Events for this fixed asset NActionsLate=%s ຊ້າ ToDo=ເພື່ອເຮັດ Completed=ສຳ ເລັດ @@ -517,6 +527,7 @@ or=ຫຼື Other=ອື່ນ Others=ອື່ນ OtherInformations=ຂໍ້​ມູນ​ອື່ນ ໆ +Workflow=Workflow Quantity=ປະລິມານ Qty=ຈຳ ນວນ ChangedBy=ປ່ຽນໂດຍ @@ -619,6 +630,7 @@ MonthVeryShort11=ນ MonthVeryShort12=ງ AttachedFiles=ໄຟລ and ແລະເອກະສານທີ່ຕິດຄັດມາ JoinMainDoc=ເຂົ້າຮ່ວມເອກະສານຫຼັກ +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=ປປປປ-ດດ DateFormatYYYYMMDD=ປປປປ-ດດ-ວວ DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=ປິດການ ນຳ ໃຊ້ຄຸນສົມບັດ MoveBox=ຍ້າຍວິດເຈັດ Offered=ສະ ເໜີ ໃຫ້ NotEnoughPermissions=ເຈົ້າບໍ່ມີສິດອະນຸຍາດ ສຳ ລັບການກະ ທຳ ນີ້ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=ຊື່ເຊດຊັນ Method=ວິທີການ Receive=ຮັບ @@ -798,6 +811,7 @@ URLPhoto=URL ຂອງຮູບ/ໂລໂກ້ SetLinkToAnotherThirdParty=ເຊື່ອມຕໍ່ຫາພາກສ່ວນທີສາມອື່ນ LinkTo=ເຊື່ອມຕໍ່ກັບ LinkToProposal=ເຊື່ອມຕໍ່ກັບຂໍ້ສະ ເໜີ +LinkToExpedition= Link to expedition LinkToOrder=ການເຊື່ອມຕໍ່ກັບຄໍາສັ່ງ LinkToInvoice=ລິ້ງຫາໃບຮຽກເກັບເງິນ LinkToTemplateInvoice=ເຊື່ອມຕໍ່ກັບໃບຮຽກເກັບເງິນແມ່ແບບ @@ -916,6 +930,7 @@ DirectDownloadInternalLink=ລິ້ງດາວໂຫຼດສ່ວນຕົ PrivateDownloadLinkDesc=ເຈົ້າຕ້ອງເຂົ້າສູ່ລະບົບແລະເຈົ້າຕ້ອງການການອະນຸຍາດເພື່ອເບິ່ງຫຼືດາວໂຫຼດໄຟລ Download=ດາວໂຫລດ DownloadDocument=ດາວໂຫລດເອກະສານ +DownloadSignedDocument=Download signed document ActualizeCurrency=ປັບປຸງອັດຕາສະກຸນເງິນ Fiscalyear=ປີການເງິນ ModuleBuilder=ໂມດູນແລະຕົວສ້າງແອັບພລິເຄຊັນ @@ -1041,6 +1056,7 @@ SearchIntoContracts=ສັນຍາ SearchIntoCustomerShipments=ການຂົນສົ່ງຂອງລູກຄ້າ SearchIntoExpenseReports=ລາຍງານລາຍຈ່າຍ SearchIntoLeaves=ອອກຈາກ +SearchIntoKM=Knowledge base SearchIntoTickets=ປີ້ SearchIntoCustomerPayments=ການຊໍາລະເງິນຂອງລູກຄ້າ SearchIntoVendorPayments=ການຈ່າຍເງິນຂອງຜູ້ຂາຍ @@ -1132,15 +1148,29 @@ EventReminder=ການເຕືອນເຫດການ UpdateForAllLines=ອັບເດດທຸກສາຍ OnHold=ພັກໄວ້ Civility=ຄວາມສຸພາບ -AffectTag=ຜົນກະທົບຕໍ່ Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=ສ້າງຜູ້ໃຊ້ພາຍນອກ -ConfirmAffectTag=ຜົນກະທົບແທັກຫຼາຍ -ConfirmAffectTagQuestion=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການສົ່ງຜົນກະທົບຕໍ່ແທັກຫາບັນທຶກທີ່ເລືອກ %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=ບໍ່ພົບປະເພດແທັກ ສຳ ລັບປະເພດບັນທຶກ +Rate=ອັດຕາ +SupervisorNotFound=Supervisor not found CopiedToClipboard=ສຳ ເນົາໄວ້ໃນຄລິບບອດແລ້ວ InformationOnLinkToContract=ຈຳ ນວນນີ້ເປັນພຽງ ຈຳ ນວນທັງofົດຂອງທຸກເສັ້ນຂອງສັນຍາ. ບໍ່ມີແນວຄິດເລື່ອງເວລາໃດຖືກພິຈາລະນາ. ConfirmCancel=ທ່ານແນ່ໃຈບໍ່ວ່າຕ້ອງການຍົກເລີກ EmailMsgID=ອີເມລ s MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=ຕັ້ງເປັນເປີດ ນຳ ໃຊ້ແລ້ວ SetToDisabled=ຕັ້ງເປັນຄົນພິການ ConfirmMassEnabling=ມະຫາຊົນເຮັດໃຫ້ການຢືນຢັນ @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/lo_LA/members.lang b/htdocs/langs/lo_LA/members.lang index e7af7227828..4fd5db35682 100644 --- a/htdocs/langs/lo_LA/members.lang +++ b/htdocs/langs/lo_LA/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=ດ້ວຍເຫດຜົນດ້ານຄວາມປອດໄພ, ເຈົ້າຕ້ອງໄດ້ຮັບການອະນຸຍາດໃຫ້ແກ້ໄຂຜູ້ໃຊ້ທຸກຄົນເພື່ອສາມາດເຊື່ອມໂຍງສະມາຊິກກັບຜູ້ໃຊ້ທີ່ບໍ່ແມ່ນຂອງເຈົ້າ. SetLinkToUser=ເຊື່ອມຕໍ່ກັບຜູ້ໃຊ້ Dolibarr SetLinkToThirdParty=ເຊື່ອມຕໍ່ຫາພາກສ່ວນທີສາມຂອງ Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=ລາຍຊື່ສະມາຊິກ MembersListToValid=ລາຍຊື່ສະມາຊິກຮ່າງ (ເພື່ອກວດສອບ) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ID ສະມາຊິກ +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=ສະມາຊິກໃ່ MemberType=ປະເພດສະມາຊິກ MemberTypeId=typeາຍເລກປະເພດສະມາຊິກ @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=ປະເພດສະມາຊິກບໍ່ສາມ NewSubscription=New contribution NewSubscriptionDesc=ແບບຟອມນີ້ອະນຸຍາດໃຫ້ເຈົ້າບັນທຶກການສະyourັກຂອງເຈົ້າເປັນສະມາຊິກໃof່ຂອງມູນນິທິ. ຖ້າເຈົ້າຕ້ອງການຕໍ່ອາຍຸການສະyourັກໃຊ້ຂອງເຈົ້າ (ຖ້າເປັນສະມາຊິກຢູ່ແລ້ວ), ກະລຸນາຕິດຕໍ່ຄະນະກໍາມະການຮາກຖານແທນທາງອີເມລ a %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=ຊ້າ SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=ເນື້ອໃນຂອງບັດສະມາຊິກຂອ # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=ພວກເຮົາຕ້ອງການແຈ້ງໃຫ້ເຈົ້າຮູ້ວ່າ ຄຳ ຮ້ອງຂໍເປັນສະມາຊິກຂອງເຈົ້າໄດ້ຮັບແລ້ວ.

    ThisIsContentOfYourMembershipWasValidated=ພວກເຮົາຕ້ອງການແຈ້ງໃຫ້ເຈົ້າຮູ້ວ່າການເປັນສະມາຊິກຂອງເຈົ້າໄດ້ຮັບການກວດສອບດ້ວຍຂໍ້ມູນຕໍ່ໄປນີ້:

    -ThisIsContentOfYourSubscriptionWasRecorded=ພວກເຮົາຕ້ອງການແຈ້ງໃຫ້ເຈົ້າຮູ້ວ່າການສະsubscriptionັກສະມາຊິກໃyour່ຂອງເຈົ້າໄດ້ຖືກບັນທຶກໄວ້.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=ພວກເຮົາຕ້ອງການແຈ້ງໃຫ້ທ່ານຮູ້ວ່າການສະັກໃຊ້ຂອງທ່ານກໍາລັງຈະireົດອາຍຸຫຼືexpົດອາຍຸໄປແລ້ວ (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). ພວກເຮົາຫວັງວ່າເຈົ້າຈະຕໍ່ອາຍຸມັນໃ່.

    ThisIsContentOfYourCard=ນີ້ແມ່ນສະຫຼຸບຂໍ້ມູນທີ່ພວກເຮົາມີກ່ຽວກັບເຈົ້າ. ກະລຸນາຕິດຕໍ່ຫາພວກເຮົາຖ້າມີອັນໃດບໍ່ຖືກຕ້ອງ.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=ຫົວຂໍ້ຂອງອີເມວແຈ້ງເຕືອນທີ່ໄດ້ຮັບໃນກໍລະນີທີ່ມີການໃສ່ຊື່ຂອງແຂກຄົນໂດຍອັດຕະໂນມັດ @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=ລາຍຮັບ (ສໍາລັບບໍລິສັດ) ຫຼືງົບປະມານ (ສໍາລັບພື້ນຖານ) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=ໂດດໄປຫາ ໜ້າ ການຊໍາລະເງິນອອນໄລນ integrated ທີ່ປະສົມປະສານ +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=ໂດຍທໍາມະຊາດ MembersStatisticsByProperties=ສະຖິຕິສະມາຊິກໂດຍ ທຳ ມະຊາດ VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=ສ້າງຜູ້ໃຊ້ພາຍນອກ %s ForceMemberNature=ລັກສະນະສະມາຊິກບັງຄັບ (ບຸກຄົນຫຼືບໍລິສັດ) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/lo_LA/modulebuilder.lang b/htdocs/langs/lo_LA/modulebuilder.lang index 383152fa129..2491ae459a4 100644 --- a/htdocs/langs/lo_LA/modulebuilder.lang +++ b/htdocs/langs/lo_LA/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=ເສັ້ນທາງບ່ອນທີ່ມີການສ້າງ/ແກ້ໄຂໂມດູນ (ໄດເຣັກທໍຣີ ທຳ ອິດ ສຳ ລັບໂມດູນພາຍນອກທີ່ ກຳ ນົດໄວ້ໃນ %s): %s ModuleBuilderDesc3=ພົບໂມດູນທີ່ສ້າງຂຶ້ນ/ແກ້ໄຂໄດ້: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=ໂມດູນຖືກກວດພົບວ່າສາມ NewModule=ໂມດູນໃຫມ່ NewObjectInModulebuilder=ວັດຖຸໃ່ NewDictionary=New dictionary +ModuleName=Module name ModuleKey=ປຸ່ມໂມດູນ ObjectKey=ປຸ່ມວັດຖຸ DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=ເສັ້ນທາງໄປຫາ zip ຂອງຊຸດ PathToModuleDocumentation=ເສັ້ນທາງໄປຫາເອກະສານເອກະສານລະຫັດໂມດູນ/ໃບສະັກ (%s) SpaceOrSpecialCharAreNotAllowed=ບໍ່ອະນຸຍາດໃຫ້ມີຍະຫວ່າງຫຼືຕົວອັກສອນພິເສດ. FileNotYetGenerated=ຍັງບໍ່ໄດ້ສ້າງໄຟລເທື່ອ +GenerateCode=Generate code RegenerateClassAndSql=ບັງຄັບອັບເດດໄຟລ. .class ແລະ .sql RegenerateMissingFiles=ສ້າງໄຟລ missing ທີ່ຂາດຫາຍໄປ SpecificationFile=ເອກະສານປະກອບເອກະສານ LanguageFile=ໄຟລ for ສໍາລັບພາສາ ObjectProperties=ຄຸນສົມບັດວັດຖຸ +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບຄຸນສົມບັດ %s ? ອັນນີ້ຈະປ່ຽນລະຫັດໃນຊັ້ນ PHP ແຕ່ຍັງເອົາຖັນອອກມາຈາກການກໍານົດຕາຕະລາງວັດຖຸ. NotNull=ບໍ່ແມ່ນ NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=ເປັນມາດຕະການ DirScanned=ສະແກນບັນຊີລາຍການແລ້ວ NoTrigger=ບໍ່ມີທຣິກເກີ NoWidget=ບໍ່ມີວິດເຈັດ -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=ລາຍການລາຍການເມນູ ListOfDictionariesEntries=ລາຍຊື່ວັດຈະນານຸກົມ ListOfPermissionsDefined=ບັນຊີລາຍຊື່ຂອງການອະນຸຍາດທີ່ກໍານົດໄວ້ SeeExamples=ເບິ່ງຕົວຢ່າງທີ່ນີ້ -EnabledDesc=ເງື່ອນໄຂໃຫ້ພາກສະ ໜາມ ນີ້ເຄື່ອນໄຫວຢູ່ (ຕົວຢ່າງ: 1 ຫຼື $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=ພາກສະຫນາມແມ່ນສັງເກດເຫັນ? (ຕົວຢ່າງ: 0 = ບໍ່ເຄີຍເຫັນ, 1 = ເບິ່ງເຫັນໄດ້ຢູ່ໃນລາຍການແລະສ້າງ/ອັບເດດ/ເບິ່ງແບບຟອມ, 2 = ເບິ່ງເຫັນໄດ້ຢູ່ໃນລາຍການເທົ່ານັ້ນ, 3 = ສາມາດເບິ່ງເຫັນໄດ້ໃນຮູບແບບສ້າງ/ອັບເດດ/ເບິ່ງຮູບແບບເທົ່ານັ້ນ (ບໍ່ມີລາຍຊື່), 4 = ເບິ່ງເຫັນໄດ້ໃນລາຍຊື່ແລະ update/view form only (not create), 5 = Visible on list end view form only (ບໍ່ສ້າງ, ບໍ່ໄດ້ອັບເດດ).

    ມັນສາມາດເປັນການສະແດງອອກ, ຕົວຢ່າງ:
    preg_match ('/public/', $ _SERVER ['PHP_SELF'])? 0: 1
    ($ user-> right->) -DisplayOnPdfDesc=ສະແດງຊ່ອງຂໍ້ມູນນີ້ໃສ່ເອກະສານ PDF ທີ່ເຂົ້າກັນໄດ້, ເຈົ້າສາມາດຈັດການ ຕຳ ແໜ່ງ ດ້ວຍຊ່ອງຂໍ້ມູນ "ຕຳ ແໜ່ງ".
    ໃນປະຈຸບັນ, ຮູບແບບ PDF ທີ່ເຂົ້າກັນໄດ້ເປັນທີ່ຮູ້ຈັກແມ່ນ: eratosthene (ຄໍາສັ່ງ), espadon (ເຮືອ), sponge (ໃບແຈ້ງ ໜີ້), cyan (propal/ໃບສະ ເໜີ ລາຄາ), cornas (ຄໍາສັ່ງຂອງຜູ້ສະ ໜອງ)

    a0e78439009d04d09d04d09d0b0b0b0b0b0b0d0b0b0b0b0b0b0b0b0b0bf0bfd ແມ່ນເຮັດໃຫ້ເປັນໄປໄດ້ = ສະແດງ
    2 = ສະແດງຫນ້າຈໍຖ້າບໍ່ຫວ່າງ

    ສໍາລັບສາຍເອກະສານ:
    0 = ບໍ່ສະແດງ
    1 = ສະແດງໃນຄໍລໍາ
    3 = ການສະແດງໃນຖັນຄໍາອະທິບາຍເສັ້ນພາຍຫຼັງທີ່ຄໍາອະທິບາຍ
    4 = ການສະແດງໃນຖັນຄໍາອະທິບາຍຫຼັງຈາກ ຄໍາອະທິບາຍເທົ່ານັ້ນຖ້າບໍ່ຫວ່າງເປົ່າ -DisplayOnPdf=ສະແດງໃນ PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=ສາມາດສະສົມມູນຄ່າຂອງຊ່ອງຂໍ້ມູນເພື່ອເອົາຈໍານວນທັງintoົດເຂົ້າໃນບັນຊີໄດ້ບໍ? (ຕົວຢ່າງ: 1 ຫຼື 0) SearchAllDesc=ພາກສະ ໜາມ ໄດ້ຖືກນໍາໃຊ້ເພື່ອເຮັດການຄົ້ນຫາຈາກເຄື່ອງມືຄົ້ນຫາໄວບໍ? (ຕົວຢ່າງ: 1 ຫຼື 0) SpecDefDesc=ກະລຸນາໃສ່ເອກະສານທັງyouົດທີ່ເຈົ້າຕ້ອງການສະ ໜອງ ໃຫ້ກັບໂມດູນຂອງເຈົ້າທີ່ບໍ່ໄດ້ຖືກກໍານົດໄວ້ໂດຍແຖບອື່ນຢູ່ແລ້ວ. ເຈົ້າສາມາດໃຊ້ .md ຫຼືດີກວ່າ, ໄວຍາກອນ .asciidoc ອຸດົມສົມບູນ. @@ -130,26 +136,32 @@ UseSpecificEditorURL = ໃຊ້ URL ຕົວແກ້ໄຂສະເພາະ UseSpecificFamily = ໃຊ້ຄອບຄົວສະເພາະ UseSpecificAuthor = ໃຊ້ຜູ້ຂຽນສະເພາະ UseSpecificVersion = ໃຊ້ສະບັບເລີ່ມຕົ້ນສະເພາະ -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=ຖ້າເຈົ້າກວດເບິ່ງອັນນີ້, ລະຫັດບາງອັນຈະຖືກສ້າງຂຶ້ນເພື່ອເພີ່ມກ່ອງ "ສ້າງເອກະສານ" ໃສ່ໃນບັນທຶກ. -ShowOnCombobox=ສະແດງໃຫ້ເຫັນມູນຄ່າໃນການ combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=ກະແຈ ສຳ ລັບ ຄຳ ແນະ ນຳ CSSClass=CSS ສໍາລັບການແກ້ໄຂ/ສ້າງແບບຟອມ CSSViewClass=CSS ສໍາລັບແບບຟອມການອ່ານ CSSListClass=CSS ສຳ ລັບລາຍຊື່ NotEditable=ບໍ່ສາມາດແກ້ໄຂໄດ້ ForeignKey=ກະແຈຕ່າງປະເທດ -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=ຕົວປ່ຽນ Ascii ເປັນ HTML AsciiToPdfConverter=Ascii ເປັນຕົວປ່ຽນ PDF TableNotEmptyDropCanceled=ຕາຕະລາງບໍ່ຫວ່າງເປົ່າ. ການຍົກເລີກໄດ້ຖືກຍົກເລີກ. ModuleBuilderNotAllowed=ຕົວສ້າງໂມດູນສາມາດໃຊ້ໄດ້ແຕ່ບໍ່ອະນຸຍາດໃຫ້ກັບຜູ້ໃຊ້ຂອງເຈົ້າ. ImportExportProfiles=ນຳ ເຂົ້າແລະສົ່ງອອກໂປຣໄຟລ -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/lo_LA/mrp.lang b/htdocs/langs/lo_LA/mrp.lang index 258e31d28f3..0f9ed4894d3 100644 --- a/htdocs/langs/lo_LA/mrp.lang +++ b/htdocs/langs/lo_LA/mrp.lang @@ -11,8 +11,8 @@ Bom=ໃບບິນຄ່າວັດສະດຸ BillOfMaterials=ໃບເກັບເງິນວັດສະດຸ BillOfMaterialsLines=Bill of Materials lines BOMsSetup=ການຕັ້ງຄ່າໂມດູນ BOM -ListOfBOMs=ລາຍການໃບບິນຄ່າວັດສະດຸ - BOM -ListOfManufacturingOrders=ລາຍການຄໍາສັ່ງຜະລິດ +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=ບັນຊີລາຍການໃຫມ່ຂອງອຸປະກອນການ ProductBOMHelp=ຜະລິດຕະພັນເພື່ອສ້າງ (ຫຼືແຍກອອກ) ກັບ BOM ນີ້.
    Noteາຍເຫດ: ຜະລິດຕະພັນທີ່ມີຄຸນສົມບັດ 'ລັກສະນະຂອງຜະລິດຕະພັນ' = 'ວັດຖຸດິບ' ແມ່ນບໍ່ປາກົດໃຫ້ເຫັນໃນລາຍການນີ້. BOMsNumberingModules=ແມ່ແບບຕົວເລກ BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=ເຈົ້າແນ່ໃຈບໍ່ວ່າເ ConfirmCloneMo=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການໂຄນຄໍາສັ່ງການຜະລິດ %s? ManufacturingEfficiency=ປະສິດທິພາບການຜະລິດ ConsumptionEfficiency=ປະສິດທິພາບການບໍລິໂພກ +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=ມູນຄ່າ 0.95 meansາຍເຖິງສະເລ່ຍ 5%% ຂອງການສູນເສຍຜະລິດຕະພັນທີ່ຜະລິດອອກມາ DeleteBillOfMaterials=ລຶບບັນຊີລາຍການວັດສະດຸ @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=ສຳ ລັບປະລິມານທີ່ຈະແ ConfirmValidateMo=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການກວດສອບ ຄຳ ສັ່ງການຜະລິດນີ້? ConfirmProductionDesc=ໂດຍການຄລິກທີ່ '%s', ທ່ານຈະກວດສອບການບໍລິໂພກແລະ/ຫຼືການຜະລິດສໍາລັບປະລິມານທີ່ກໍານົດໄວ້. ອັນນີ້ຍັງຈະປັບປຸງຫຼັກຊັບແລະບັນທຶກການເຄື່ອນໄຫວຂອງຫຼັກຊັບ. ProductionForRef=ການຜະລິດ %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=ປິດ ຄຳ ສັ່ງການຜະລິດໂດຍອັດຕະໂນມັດຖ້າຮອດປະລິມານທີ່ຈະບໍລິໂພກແລະຜະລິດແລ້ວ NoStockChangeOnServices=ບໍ່ມີການປ່ຽນແປງຫຼັກຊັບໃນການບໍລິການ ProductQtyToConsumeByMO=ປະລິມານຜະລິດຕະພັນຍັງຕ້ອງບໍລິໂພກໂດຍການເປີດ MO @@ -80,6 +83,7 @@ ProductsToProduce=ຜະລິດຕະພັນເພື່ອຜະລິດ UnitCost=ຕົ້ນທຶນ TotalCost=ຄ່າ​ໃຊ້​ຈ່າຍ​ທັງ​ຫມົດ BOMTotalCost=ຕົ້ນທຶນໃນການຜະລິດ BOM ນີ້ແມ່ນອີງໃສ່ຕົ້ນທຶນຂອງແຕ່ລະປະລິມານແລະຜະລິດຕະພັນທີ່ຈະບໍລິໂພກ (ໃຊ້ລາຄາຕົ້ນທຶນຖ້າກໍານົດ, ລາຄານໍ້າ ໜັກ ສະເລ່ຍອື່ນຖ້າກໍານົດ, ອັນອື່ນແມ່ນລາຄາຊື້ທີ່ດີທີ່ສຸດ). +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=ທຳ ອິດເຈົ້າຈະຕ້ອງເລີ່ມການຜະລິດເພື່ອປິດ ຄຳ ສັ່ງການຜະລິດ (ເບິ່ງແຖບ '%s'). ແຕ່ເຈົ້າສາມາດຍົກເລີກມັນໄດ້. ErrorAVirtualProductCantBeUsedIntoABomOrMo=ຊຸດບໍ່ສາມາດໃຊ້ເປັນ BOM ຫຼື MO ໄດ້ Workstation=ບ່ອນເຮັດວຽກ @@ -107,3 +111,10 @@ THMEstimatedHelp=ອັດຕານີ້ເຮັດໃຫ້ສາມາດກ BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/lo_LA/oauth.lang b/htdocs/langs/lo_LA/oauth.lang index 8053ffe4d14..c8d87ec0911 100644 --- a/htdocs/langs/lo_LA/oauth.lang +++ b/htdocs/langs/lo_LA/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=ໂທເຄັນໄດ້ຖືກສ້າງຂຶ້ນແ NewTokenStored=Token ໄດ້ຮັບແລະບັນທຶກໄວ້ ToCheckDeleteTokenOnProvider=ຄລິກບ່ອນນີ້ເພື່ອກວດເບິ່ງ/ລຶບການອະນຸຍາດທີ່ບັນທຶກໄວ້ໂດຍຜູ້ໃຫ້ບໍລິການ OAuth %s TokenDeleted=Token ຖືກລຶບແລ້ວ -RequestAccess=ຄລິກບ່ອນນີ້ເພື່ອຮ້ອງຂໍ/ຕໍ່ອາຍຸການເຂົ້າເຖິງແລະຮັບເອົາໂທເຄັນໃto່ເພື່ອບັນທຶກ -DeleteAccess=ຄລິກທີ່ນີ້ເພື່ອລຶບ token +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=ໃຊ້ URL ຕໍ່ໄປນີ້ເປັນ URI ປ່ຽນເສັ້ນທາງເມື່ອສ້າງຂໍ້ມູນປະຈໍາຕົວຂອງເຈົ້າກັບຜູ້ໃຫ້ບໍລິການ OAuth ຂອງເຈົ້າ: -ListOfSupportedOauthProviders=ປ້ອນຂໍ້ມູນປະ ຈຳ ຕົວທີ່ສະ ໜອງ ໃຫ້ໂດຍຜູ້ໃຫ້ບໍລິການ OAuth2 ຂອງເຈົ້າ. ມີແຕ່ຜູ້ໃຫ້ບໍລິການ OAuth2 ທີ່ຮອງຮັບເທົ່ານັ້ນທີ່ມີລາຍຊື່ຢູ່ທີ່ນີ້. ການບໍລິການເຫຼົ່ານີ້ອາດຈະຖືກໃຊ້ໂດຍໂມດູນອື່ນທີ່ຕ້ອງການການກວດຮັບຮອງຄວາມຖືກຕ້ອງ OAuth2. -OAuthSetupForLogin=ໜ້າ ເພື່ອສ້າງໂທເຄັນ OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=ເບິ່ງແຖບກ່ອນ ໜ້າ +OAuthProvider=OAuth provider OAuthIDSecret=ລະຫັດ OAuth ແລະຄວາມລັບ TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=ໂທເຄັນiredົດອາຍຸແລ້ວ @@ -23,10 +24,13 @@ TOKEN_DELETE=ລຶບໂທເຄັນທີ່ບັນທຶກໄວ້ OAUTH_GOOGLE_NAME=ບໍລິການ OAuth Google OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=ໄປທີ່ ໜ້າ ນີ້ ຈາກນັ້ນ "ຂໍ້ມູນປະຈໍາຕົວ" ເພື່ອສ້າງຂໍ້ມູນປະຈໍາຕົວ OAuth OAUTH_GITHUB_NAME=ບໍລິການ OAuth GitHub OAUTH_GITHUB_ID=ID OAuth GitHub OAUTH_GITHUB_SECRET=ຄວາມລັບ OAuth GitHub -OAUTH_GITHUB_DESC=ໄປທີ່ ໜ້າ ນີ້ ຈາກນັ້ນ "ລົງທະບຽນສະັກໃnew່" ເພື່ອສ້າງຂໍ້ມູນປະຈໍາຕົວ OAuth +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=ການທົດສອບ OAuth Stripe OAUTH_STRIPE_LIVE_NAME=ການຖ່າຍທອດສົດ OAuth Stripe +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/lo_LA/products.lang b/htdocs/langs/lo_LA/products.lang index c6ccdc4adba..9804e5edcb9 100644 --- a/htdocs/langs/lo_LA/products.lang +++ b/htdocs/langs/lo_LA/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈ ProductSpecial=ພິເສດ QtyMin=ຂັ້ນຕ່ ຳ ປະລິມານການຊື້ PriceQtyMin=ປະລິມານລາຄາຂັ້ນຕ່ ຳ -PriceQtyMinCurrency=ລາຄາ (ສະກຸນເງິນ) ສຳ ລັບ ຈຳ ນວນນີ້. (ບໍ່ມີສ່ວນຫຼຸດ) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=ອັດຕາອາກອນມູນຄ່າເພີ່ມ (ສຳ ລັບຜູ້ຂາຍ/ຜະລິດຕະພັນນີ້) DiscountQtyMin=ສ່ວນຫຼຸດ ສຳ ລັບ ຈຳ ນວນນີ້. NoPriceDefinedForThisSupplier=ບໍ່ໄດ້ກໍານົດລາຄາ/ຈໍານວນຜູ້ຂາຍ/ຜະລິດຕະພັນນີ້ @@ -261,7 +262,7 @@ Quarter1=ທີ 1. ໄຕມາດ Quarter2=ທີ 2. ໄຕມາດ Quarter3=ທີ 3. ໄຕມາດ Quarter4=ທີ 4. ໄຕມາດ -BarCodePrintsheet=ພິມບາໂຄດ +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=ດ້ວຍເຄື່ອງມືນີ້, ເຈົ້າສາມາດພິມແຜ່ນສະຕິກເກີບາໂຄດໄດ້. ເລືອກຮູບແບບຂອງ ໜ້າ ສະຕິກເກີຂອງເຈົ້າ, ປະເພດບາໂຄດແລະຄ່າຂອງບາໂຄດ, ຈາກນັ້ນຄລິກທີ່ປຸ່ມ %s . NumberOfStickers=ຈຳ ນວນສະຕິກເກີທີ່ຈະພິມໃສ່ໃນ ໜ້າ PrintsheetForOneBarCode=ພິມສະຕິກເກີຫຼາຍອັນສໍາລັບບາໂຄດອັນດຽວ @@ -344,9 +345,9 @@ PossibleValues=ຄ່າທີ່ເປັນໄປໄດ້ GoOnMenuToCreateVairants=ໄປທີ່ເມນູ %s - %s ເພື່ອກະກຽມຕົວແປຄຸນລັກສະນະ (ເຊັ່ນສີ, ຂະ ໜາດ, ... ) UseProductFournDesc=ເພີ່ມຄຸນສົມບັດເພື່ອກໍານົດຄໍາອະທິບາຍຜະລິດຕະພັນທີ່ກໍານົດໂດຍຜູ້ຂາຍ (ສໍາລັບການອ້າງອີງຜູ້ຂາຍແຕ່ລະຄົນ) ນອກຈາກຄໍາອະທິບາຍສໍາລັບລູກຄ້າ ProductSupplierDescription=ລາຍລະອຽດຂອງຜູ້ຂາຍສໍາລັບຜະລິດຕະພັນ -UseProductSupplierPackaging=ໃຊ້ການຫຸ້ມຫໍ່ຕາມລາຄາຜູ້ສະ ໜອງ (ຄິດໄລ່ປະລິມານຄືນໃaccording່ຕາມການຫຸ້ມຫໍ່ທີ່ກໍານົດໄວ້ໃນລາຄາຜູ້ສະ ໜອງ ເມື່ອເພີ່ມ/ປັບປຸງແຖວໃນເອກະສານຜູ້ສະ ໜອງ) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=ການຫຸ້ມຫໍ່ -PackagingForThisProductDesc=ຕາມ ຄຳ ສັ່ງຂອງຜູ້ສະ ໜອງ, ເຈົ້າຈະສັ່ງຊື້ປະລິມານນີ້ໂດຍອັດຕະໂນມັດ (ຫຼືຫຼາຍປະລິມານນີ້). ບໍ່ສາມາດ ໜ້ອຍ ກວ່າຈໍານວນຊື້ຂັ້ນຕ່ ຳ ໄດ້ +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=ປະລິມານຂອງສາຍໄດ້ຖືກຄິດໄລ່ຄືນໃpackaging່ຕາມການຫຸ້ມຫໍ່ຂອງຜູ້ສະ ໜອງ #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=ການກະ ທຳ ພຽງແຕ່ມ ProductsPricePerCustomer=ລາຄາສິນຄ້າຕໍ່ລູກຄ້າ ProductSupplierExtraFields=ຄຸນລັກສະນະເພີ່ມເຕີມ (ລາຄາຜູ້ສະ ໜອງ) DeleteLinkedProduct=ລຶບຜະລິດຕະພັນເດັກທີ່ເຊື່ອມໂຍງກັບການປະສົມປະສານ -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=ນໍ້າ ໜັກ ລາຄາສະເລ່ຍ PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/lo_LA/projects.lang b/htdocs/langs/lo_LA/projects.lang index 421ef1f833d..5133e82e632 100644 --- a/htdocs/langs/lo_LA/projects.lang +++ b/htdocs/langs/lo_LA/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=ທັດສະນະນີ້ສະ ເໜີ ໂຄງກາ TasksDesc=ມຸມມອງນີ້ສະ ເໜີ ໂຄງການແລະ ໜ້າ ວຽກທັງ(ົດ (ການອະນຸຍາດຂອງຜູ້ໃຊ້ຂອງເຈົ້າໃຫ້ການອະນຸຍາດແກ່ເຈົ້າເພື່ອເບິ່ງທຸກຢ່າງ). AllTaskVisibleButEditIfYouAreAssigned=ວຽກທັງforົດ ສຳ ລັບໂຄງການທີ່ມີຄຸນວຸດທິແມ່ນສາມາດເບິ່ງເຫັນໄດ້, ແຕ່ເຈົ້າສາມາດໃສ່ເວລາໄດ້ພຽງແຕ່ ໜ້າ ວຽກທີ່ມອບtoາຍໃຫ້ກັບຜູ້ໃຊ້ທີ່ເລືອກ. ມອບtaskາຍ ໜ້າ ວຽກຖ້າເຈົ້າຕ້ອງການໃສ່ເວລາໃສ່ມັນ. OnlyYourTaskAreVisible=ມີພຽງແຕ່ ໜ້າ ວຽກທີ່ມອບtoາຍໃຫ້ທ່ານເທົ່ານັ້ນ. ຖ້າເຈົ້າຕ້ອງການໃສ່ເວລາຢູ່ໃນ ໜ້າ ວຽກແລະຖ້າບໍ່ເຫັນ ໜ້າ ວຽກຢູ່ທີ່ນີ້, ຈາກນັ້ນເຈົ້າຕ້ອງມອບtaskາຍ ໜ້າ ວຽກໃຫ້ກັບຕົວເຈົ້າເອງ. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=ວຽກງານຂອງໂຄງການ ProjectCategories=ແທັກ/ProjectວດProjectູ່ຂອງໂຄງການ NewProject=ໂຄງການໃຫມ່ @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=ນຳ ໄປສູ່ ຈຳ ນວນໂ OpportunitiesStatusForProjects=ນຳ ພາ ຈຳ ນວນໂຄງການຕາມສະຖານະພາບ ShowProject=ສະແດງໂຄງການ ShowTask=ສະແດງ ໜ້າ ວຽກ +SetThirdParty=Set third party SetProject=ກໍານົດໂຄງການ +OutOfProject=Out of project NoProject=ບໍ່ໄດ້ ກຳ ນົດໂຄງການຫຼືເປັນເຈົ້າຂອງ NbOfProjects=ຈຳ ນວນໂຄງການ NbOfTasks=ຈຳ ນວນ ໜ້າ ວຽກ @@ -122,7 +125,8 @@ ValidateProject=ຮັບຮອງໂຄງການ ConfirmValidateProject=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການກວດສອບໂຄງການນີ້? CloseAProject=ປິດໂຄງການ ConfirmCloseAProject=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການປິດໂຄງການນີ້? -AlsoCloseAProject=ປິດໂຄງການ (ຮັກສາມັນເປີດຖ້າຫາກວ່າທ່ານຍັງຈໍາເປັນຕ້ອງໄດ້ປະຕິບັດຕາມວຽກງານການຜະລິດກ່ຽວກັບມັນ) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=ເປີດໂຄງການ ConfirmReOpenAProject=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການເປີດໂຄງການນີ້ຄືນໃ່? ProjectContact=ຕິດຕໍ່ພົວພັນຂອງໂຄງການ @@ -165,7 +169,7 @@ OpportunityProbability=ຄວາມເປັນໄປໄດ້ຂອງຜູ້ OpportunityProbabilityShort=ນຳ ພາບັນຫາ. OpportunityAmount=ຈຳ ນວນ ນຳ OpportunityAmountShort=ຈຳ ນວນ ນຳ -OpportunityWeightedAmount=ໂອກາດນ້ ຳ ໜັກ ຈຳ ນວນ +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=ກົງກັນຂ້າມ. ຈຳ ນວນນ້ ຳ ໜັກ OpportunityAmountAverageShort=ປະລິມານການນໍາສະເລ່ຍ OpportunityAmountWeigthedShort=ປະລິມານ ນຳ ້ ໜັກ @@ -238,7 +242,7 @@ OppStatusPENDING=ຍັງຄ້າງຢູ່ OppStatusWON=ຊະນະ OppStatusLOST=ເສຍ Budget=ງົບປະມານ -AllowToLinkFromOtherCompany=ອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ໂຄງການຈາກບໍລິສັດອື່ນ

    ຄ່າທີ່ສະ ໜັບ ສະ ໜູນ:
    - ຫວ່າງເປົ່າ: ສາມາດເຊື່ອມໂຍງໂຄງການໃດນຶ່ງຂອງບໍລິສັດ (ມາດຕະຖານ) a0342fccf1919 ໂຄງການຂອງບັນດາໂຄງການອື່ນ any, " ໄອດີຂອງພາກສ່ວນທີສາມທີ່ແຍກກັນດ້ວຍasາຍຈຸດ: ສາມາດເຊື່ອມໂຍງໂຄງການທັງofົດຂອງພາກສ່ວນທີສາມເຫຼົ່ານີ້ໄດ້ (ຕົວຢ່າງ: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=ໂຄງການ %s ຫຼ້າສຸດ LatestModifiedProjects=ໂຄງການດັດແກ້ຫຼ້າສຸດ %s OtherFilteredTasks=ໜ້າ ວຽກອື່ນທີ່ກັ່ນຕອງແລ້ວ @@ -259,7 +263,7 @@ TimeSpentInvoiced=ເວລາທີ່ໃຊ້ຈ່າຍໃບບິນ TimeSpentForIntervention=ເວລາທີ່ໃຊ້ TimeSpentForInvoice=ເວລາທີ່ໃຊ້ OneLinePerUser=ໜຶ່ງ ແຖວຕໍ່ຜູ້ໃຊ້ -ServiceToUseOnLines=ການບໍລິການການນໍາໃຊ້ໃນສາຍ +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=ໃບເກັບເງິນ %s ໄດ້ຖືກສ້າງຂຶ້ນຈາກເວລາທີ່ໃຊ້ຢູ່ໃນໂຄງການ InterventionGeneratedFromTimeSpent=ການແຊກແຊງ %s ໄດ້ຖືກສ້າງຂຶ້ນຈາກເວລາທີ່ໃຊ້ຢູ່ໃນໂຄງການ ProjectBillTimeDescription=ກວດເບິ່ງວ່າເຈົ້າໃສ່ຕາຕະລາງເວລາໃນ ໜ້າ ວຽກຂອງໂຄງການຫຼືບໍ່ແລະເຈົ້າວາງແຜນທີ່ຈະສ້າງໃບແຈ້ງ ໜີ້ ຈາກຕາຕະລາງເວລາເພື່ອຮຽກເກັບເງິນລູກຄ້າຂອງໂຄງການ (ບໍ່ກວດເບິ່ງວ່າເຈົ້າວາງແຜນທີ່ຈະສ້າງໃບແຈ້ງ ໜີ້ ທີ່ບໍ່ອີງໃສ່ຕາຕະລາງເວລາທີ່ປ້ອນເຂົ້າໄປ). Noteາຍເຫດ: ເພື່ອສ້າງໃບແຈ້ງ ໜີ້, ໃຫ້ໄປທີ່ແຖບ 'ເວລາທີ່ໃຊ້' ຂອງໂຄງການແລະເລືອກແຖວເພື່ອລວມເອົາ. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=ກໍາໄລແມ່ນຄິດໄລ່ໂດຍນ AddPersonToTask=ເພີ່ມໃສ່ ໜ້າ ວຽກ ນຳ UsageOrganizeEvent=ການນໍາໃຊ້: ອົງການຈັດຕັ້ງເຫດການ PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=ຈັດປະເພດໂຄງການເປັນປິດເມື່ອວຽກທັງareົດຂອງມັນສໍາເລັດ (ຄວາມຄືບ ໜ້າ 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Noteາຍເຫດ: ໂຄງການທີ່ມີຢູ່ແລ້ວກັບທຸກ ໜ້າ ວຽກຢູ່ທີ່ຄວາມຄືບ ໜ້າ 100%% ຈະບໍ່ໄດ້ຮັບຜົນກະທົບ: ເຈົ້າຈະຕ້ອງປິດພວກມັນດ້ວຍຕົນເອງ. ຕົວເລືອກນີ້ມີຜົນກັບໂຄງການເປີດເທົ່ານັ້ນ. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=ເລືອກແຖວທີ່ໃຊ້ເວລາທີ່ຍັງບໍ່ໄດ້ຮຽກເກັບເງິນ, ຈາກນັ້ນປະຕິບັດຫຼາຍ bulk ອັນ "ສ້າງໃບແຈ້ງ ໜີ້" ເພື່ອເກັບເງິນເຂົາເຈົ້າ ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/lo_LA/recruitment.lang b/htdocs/langs/lo_LA/recruitment.lang index 2e197326a74..ef064760a7e 100644 --- a/htdocs/langs/lo_LA/recruitment.lang +++ b/htdocs/langs/lo_LA/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=ນາຍຈ້າງອີເມລ ToUseAGenericEmail=ເພື່ອໃຊ້ອີເມວທົ່ວໄປ. ຖ້າບໍ່ໄດ້ລະບຸ, ອີເມລ of ຂອງຜູ້ຮັບຜິດຊອບການຮັບສະັກພະນັກງານຈະຖືກນໍາໃຊ້ NewCandidature=ຄໍາຮ້ອງສະຫມັກໃຫມ່ ListOfCandidatures=ລາຍການຄໍາຮ້ອງສະຫມັກ -RequestedRemuneration=ຮ້ອງຂໍຄ່າຕອບແທນ -ProposedRemuneration=ສະ ເໜີ ຄ່າຕອບແທນ +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=ສັນຍາສະ ເໜີ ContractSigned=ເຊັນສັນຍາແລ້ວ ContractRefused=ສັນຍາຖືກປະຕິເສດ RecruitmentCandidature=ຄໍາຮ້ອງສະຫມັກ JobPositions=ຕຳ ແໜ່ງ ວຽກ RecruitmentCandidatures=ຄໍາຮ້ອງສະຫມັກ -InterviewToDo=ສໍາພາດເພື່ອເຮັດ +InterviewToDo=Contacts to follow AnswerCandidature=ຄໍາຕອບຄໍາຮ້ອງສະຫມັກ YourCandidature=ຄໍາຮ້ອງສະຫມັກຂອງທ່ານ YourCandidatureAnswerMessage=ຂອບໃຈສໍາລັບຄໍາຮ້ອງສະຫມັກຂອງເຈົ້າ.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=ຕຳ ແໜ່ງ ວຽກຖືກປິດ. ExtrafieldsJobPosition=ຄຸນສົມບັດເພີ່ມເຕີມ (ຕຳ ແໜ່ງ ວຽກ) ExtrafieldsApplication=ຄຸນລັກສະນະເສີມ (ການສະjobັກວຽກ) MakeOffer=ສະ ເໜີ ໃຫ້ +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/lo_LA/salaries.lang b/htdocs/langs/lo_LA/salaries.lang index df3f50975f0..9c93fbb7d17 100644 --- a/htdocs/langs/lo_LA/salaries.lang +++ b/htdocs/langs/lo_LA/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=ບັນຊີບັນຊີທີ່ໃຊ້ສໍາລັບຜູ້ໃຊ້ພາກສ່ວນທີສາມ -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=ບັນຊີການບັນຊີສະເພາະທີ່ໄດ້ກໍານົດໄວ້ໃນບັດຜູ້ໃຊ້ຈະຖືກນໍາໃຊ້ສໍາລັບບັນຊີ Subledger ເທົ່ານັ້ນ. ອັນນີ້ຈະຖືກໃຊ້ສໍາລັບບັນຊີແຍກປະເພດທົ່ວໄປແລະເປັນຄ່າເລີ່ມຕົ້ນຂອງບັນຊີ Subledger ຖ້າບັນຊີບັນຊີຜູ້ໃຊ້ສະເພາະຢູ່ໃນຜູ້ໃຊ້ບໍ່ໄດ້ກໍານົດໄວ້. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=ບັນຊີບັນຊີໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບການຈ່າຍເງິນຄ່າຈ້າງ CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=ໂດຍຄ່າເລີ່ມຕົ້ນ, ປ່ອຍໃຫ້ທາງເລືອກຫວ່າງເປົ່າ "ສ້າງການຊໍາລະທັງaticallyົດໂດຍອັດຕະໂນມັດ" ເມື່ອສ້າງເງິນເດືອນ Salary=ເງິນເດືອນ @@ -24,3 +24,4 @@ SalariesStatistics=ສະຖິຕິເງິນເດືອນ SalariesAndPayments=ເງິນເດືອນແລະການຈ່າຍເງິນ ConfirmDeleteSalaryPayment=ເຈົ້າຕ້ອງການລຶບການຈ່າຍເງິນເດືອນນີ້ບໍ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/lo_LA/stocks.lang b/htdocs/langs/lo_LA/stocks.lang index c452655f2fc..42f42b2e45f 100644 --- a/htdocs/langs/lo_LA/stocks.lang +++ b/htdocs/langs/lo_LA/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=ວັນທີໃນອະນາຄົດ StocksByLotSerial=ຫຼັກຊັບຕາມຈໍານວນ/ລໍາດັບ LotSerial=ຈໍານວນຫລາຍ/ລໍາດັບ LotSerialList=ບັນຊີລາຍຊື່ຂອງຫຼາຍ/serials +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=ການເຄື່ອນໄຫວ ErrorWarehouseRefRequired=ຕ້ອງລະບຸຊື່ການອ້າງອີງສາງ ListOfWarehouses=ລາຍການສາງ @@ -48,7 +49,7 @@ StockCorrection=ການແກ້ໄຂຫຼັກຊັບ CorrectStock=ຫຼັກຊັບທີ່ຖືກຕ້ອງ StockTransfer=ການໂອນຫຸ້ນ TransferStock=ໂອນຫຸ້ນ -MassStockTransferShort=ການໂອນຫຸ້ນມະຫາຊົນ +MassStockTransferShort=Bulk stock change StockMovement=ການເຄື່ອນໄຫວຫຼັກຊັບ StockMovements=ການເຄື່ອນໄຫວຂອງຫຼັກຊັບ NumberOfUnit=ຈຳ ນວນຫົວ ໜ່ວຍ @@ -146,8 +147,9 @@ Replenishments=ການເຕີມເຕັມ NbOfProductBeforePeriod=ປະລິມານຂອງຜະລິດຕະພັນ %s ຢູ່ໃນຫຼັກຊັບກ່ອນໄລຍະເວລາທີ່ເລືອກ (<%s) NbOfProductAfterPeriod=ປະລິມານຂອງຜະລິດຕະພັນ %s ໃນຫຼັກຊັບຫຼັງຈາກໄລຍະເວລາທີ່ເລືອກ (> %s) MassMovement=ການເຄື່ອນໄຫວຂອງມະຫາຊົນ -SelectProductInAndOutWareHouse=ເລືອກສາງແຫຼ່ງທີ່ມາແລະສາງເປົ້າ,າຍ, ຜະລິດຕະພັນແລະປະລິມານຈາກນັ້ນຄລິກ "%s". ເມື່ອສິ່ງນີ້ ສຳ ເລັດ ສຳ ລັບການເຄື່ອນໄຫວທີ່ຕ້ອງການທັງ,ົດ, ຄລິກທີ່ "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=ບັນທຶກການໂອນ +RecordMovements=Record stock movements ReceivingForSameOrder=ໃບຮັບເງິນສໍາລັບຄໍາສັ່ງນີ້ StockMovementRecorded=ບັນທຶກການເຄື່ອນໄຫວຂອງຮຸ້ນ RuleForStockAvailability=ກົດລະບຽບກ່ຽວກັບຄວາມຕ້ອງການຫຼັກຊັບ @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=ຂີດຈໍາກັດຫຼັກຊັບສ ProductStockWarehouseUpdated=ຂີດຈໍາກັດຫຼັກຊັບສໍາລັບການແຈ້ງເຕືອນແລະຕ້ອງການຫຼັກຊັບທີ່ດີທີ່ສຸດປັບປຸງໃຫ້ຖືກຕ້ອງ ProductStockWarehouseDeleted=ຂີດຈໍາກັດຫຼັກຊັບສໍາລັບການແຈ້ງເຕືອນແລະຕ້ອງການຫຼັກຊັບທີ່ດີທີ່ສຸດຖືກລຶບອອກຢ່າງຖືກຕ້ອງ AddNewProductStockWarehouse=ກໍານົດຂອບເຂດຈໍາກັດໃຫມ່ສໍາລັບການແຈ້ງເຕືອນແລະຕ້ອງການຫຼັກຊັບທີ່ດີທີ່ສຸດ -AddStockLocationLine=ຫຼຸດປະລິມານລົງຈາກນັ້ນຄລິກເພື່ອເພີ່ມສາງອື່ນສໍາລັບຜະລິດຕະພັນນີ້ +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=ວັນທີສິນຄ້າຄົງຄັງ Inventories=Inventories NewInventory=ສິນຄ້າຄົງຄັງໃຫມ່ @@ -234,7 +236,7 @@ StockIncrease=ຫຼັກຊັບເພີ່ມຂຶ້ນ StockDecrease=ຫຼັກຊັບຫຼຸດລົງ InventoryForASpecificWarehouse=ສິນຄ້າຄົງຄັງສໍາລັບສາງສະເພາະ InventoryForASpecificProduct=ສິນຄ້າຄົງຄັງສໍາລັບຜະລິດຕະພັນສະເພາະ -StockIsRequiredToChooseWhichLotToUse=ຕ້ອງມີຫຼັກຊັບເພື່ອເລືອກວ່າຈະໃຊ້ອັນໃດ +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=ບັງຄັບໃຫ້ AlwaysShowFullArbo=ສະແດງຕົ້ນໄມ້ເຕັມສາງຢູ່ໃນປັອບອັບຂອງການເຊື່ອມຕໍ່ສາງ (ຄຳ ເຕືອນ: ອັນນີ້ອາດຈະຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ) StockAtDatePastDesc=ເຈົ້າສາມາດເບິ່ງຫຼັກຊັບ (ຫຼັກຊັບຕົວຈິງ) ຢູ່ທີ່ນີ້ໃນວັນເວລາທີ່ຜ່ານມາ @@ -254,7 +256,7 @@ ReOpen=ເປີດຄືນໃ່ ConfirmFinish=ເຈົ້າຢືນຢັນການປິດສາງບໍ? ອັນນີ້ຈະສ້າງການເຄື່ອນໄຫວຫຼັກຊັບທັງtoົດເພື່ອອັບເດດຫຼັກຊັບຂອງເຈົ້າໃຫ້ເປັນຈໍານວນຕົວຈິງທີ່ເຈົ້າໄດ້ເຂົ້າໄປໃນສາງ. ObjectNotFound=ບໍ່ພົບ %s MakeMovementsAndClose=ສ້າງການເຄື່ອນໄຫວແລະປິດ -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=ຕາມຄ່າເລີ່ມຕົ້ນ, ສະແດງລາຍລະອຽດເປັນຊຸດຢູ່ໃນແຖບ "ຫຼັກຊັບ" ຂອງຜະລິດຕະພັນ CollapseBatchDetailHelp=ເຈົ້າສາມາດ ກຳ ນົດການສະແດງລາຍລະອຽດເປັນຊຸດໃນການຕັ້ງຄ່າໂມດູນຫຼັກຊັບ ErrorWrongBarcodemode=ບໍ່ຮູ້ຈັກໂmodeດບາໂຄດ @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=ບໍ່ມີຜະລິດຕະພັນທີ WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Started ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. -StockChangeDisabled=Change on stock disabled +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/lo_LA/ticket.lang b/htdocs/langs/lo_LA/ticket.lang index 0d495975fcc..cc096e494b5 100644 --- a/htdocs/langs/lo_LA/ticket.lang +++ b/htdocs/langs/lo_LA/ticket.lang @@ -27,6 +27,7 @@ Permission56003=ລຶບປີ້ Permission56004=ຈັດການປີ້ Permission56005=ເບິ່ງປີ້ຂອງພາກສ່ວນທີສາມທັງ(ົດ (ບໍ່ມີປະສິດທິພາບສໍາລັບຜູ້ໃຊ້ພາຍນອກ, ຈໍາກັດສະເພາະກັບບຸກຄົນທີສາມທີ່ພວກເຂົາຂຶ້ນກັບ) +Tickets=Tickets TicketDictType=ປີ້ - ປະເພດ TicketDictCategory=ປີ້ - ກຸ່ມ TicketDictSeverity=ປີ້ - ຄວາມຮຸນແຮງ @@ -90,8 +91,8 @@ TicketPublicAccess=ສ່ວນຕິດຕໍ່ສາທາລະນະທີ TicketSetupDictionaries=ປະເພດຂອງປີ້, ຄວາມຮຸນແຮງແລະລະຫັດການວິເຄາະແມ່ນສາມາດຕັ້ງຄ່າໄດ້ຈາກວັດຈະນານຸກົມ TicketParamModule=ການຕັ້ງຄ່າຕົວປ່ຽນໂມດູນ TicketParamMail=ການຕັ້ງອີເມລ -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=ຂໍ້ຄວາມໄດ້ຖືກສົ່ງຫຼັງຈາກການສ້າງປີ້ @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=ຂໍ້ຄວາມທີ່ລະບຸຢູ່ທີ TicketParamPublicInterface=ຕັ້ງຄ່າສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ສາທາລະນະ TicketsEmailMustExist=ຕ້ອງການທີ່ຢູ່ອີເມວທີ່ມີຢູ່ແລ້ວເພື່ອສ້າງປີ້ TicketsEmailMustExistHelp=ຢູ່ໃນບ່ອນຕິດຕໍ່ສາທາລະນະ, ທີ່ຢູ່ອີເມວຄວນຈະຖືກຕື່ມໃສ່ໃນຖານຂໍ້ມູນເພື່ອສ້າງປີ້ໃnew່. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=ການໂຕ້ຕອບສາທາລະນະ TicketUrlPublicInterfaceLabelAdmin=URL ທາງເລືອກ ສຳ ລັບສ່ວນຕິດຕໍ່ສາທາລະນະ TicketUrlPublicInterfaceHelpAdmin=ມັນເປັນໄປໄດ້ທີ່ຈະກໍານົດນາມແງໃຫ້ກັບເຄື່ອງແມ່ຂ່າຍເວັບແລະດັ່ງນັ້ນຈຶ່ງເຮັດໃຫ້ມີການໂຕ້ຕອບສາທາລະນະກັບ URL ອື່ນ (ເຊີບເວີຕ້ອງເຮັດ ໜ້າ ທີ່ເປັນຕົວແທນໃນ URL ໃthis່ນີ້) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=ຕອນນີ້ໄດ້ມອບicketາຍປີ້ແລ້ TicketChangeType=ປ່ຽນປະເພດ TicketChangeCategory=ປ່ຽນລະຫັດການວິເຄາະ TicketChangeSeverity=ປ່ຽນຄວາມຮຸນແຮງ -TicketAddMessage=ເພີ່ມຂໍ້ຄວາມ -AddMessage=ເພີ່ມຂໍ້ຄວາມ +TicketAddMessage=Add private message MessageSuccessfullyAdded=ເພີ່ມປີ້ແລ້ວ TicketMessageSuccessfullyAdded=ເພີ່ມຂໍ້ຄວາມ ສຳ ເລັດແລ້ວ TicketMessagesList=ລາຍການຂໍ້ຄວາມ @@ -202,8 +206,8 @@ TicketSeverity=ຄວາມຮຸນແຮງ ShowTicket=ເບິ່ງປີ້ RelatedTickets=ປີ້ທີ່ກ່ຽວຂ້ອງ TicketAddIntervention=ສ້າງການແຊກແຊງ -CloseTicket=ປິດ | ແກ້ປີ້ -AbandonTicket=ປະຖິ້ມປີ້ +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=ປິດ | ແກ້ປີ້ ConfirmCloseAticket=ຢືນຢັນການປິດປີ້ ConfirmAbandonTicket=ເຈົ້າຢືນຢັນການປິດປີ້ເຂົ້າສູ່ສະຖານະ 'ປະຖິ້ມ' @@ -217,18 +221,17 @@ SendMessageByEmail=ສົ່ງຂໍ້ຄວາມທາງອີເມລ TicketNewMessage=ຂໍ້ຄວາມໃ່ ErrorMailRecipientIsEmptyForSendTicketMessage=ຜູ້ຮັບບໍ່ຫວ່າງ. ບໍ່ມີອີເມວສົ່ງ TicketGoIntoContactTab=ກະລຸນາເຂົ້າໄປທີ່ແຖບ "ລາຍຊື່ຜູ້ຕິດຕໍ່" ເພື່ອເລືອກພວກມັນ -TicketMessageMailIntro=ການນໍາສະເຫນີ +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=ຂໍ້ຄວາມນີ້ຖືກເພີ່ມໃສ່ແຕ່ຕອນຕົ້ນຂອງອີເມວແລະຈະບໍ່ຖືກບັນທຶກໄວ້. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=ລາຍເຊັນ -TicketMessageMailSignatureHelp=ຂໍ້ຄວາມນີ້ຖືກເພີ່ມເຂົ້າໄປໃນທ້າຍອີເມວເທົ່ານັ້ນແລະຈະບໍ່ຖືກບັນທຶກໄວ້. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=ລາຍເຊັນອີເມວຕອບກັບ -TicketMessageMailSignatureHelpAdmin=ຂໍ້ຄວາມນີ້ຈະຖືກແຊກໃສ່ຫຼັງຈາກຂໍ້ຄວາມຕອບກັບ. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=ສະເພາະຂໍ້ຄວາມນີ້ຈະຖືກບັນທຶກໄວ້ໃນລາຍການຂໍ້ຄວາມຢູ່ໃນບັດປີ້. TicketMessageSubstitutionReplacedByGenericValues=ຕົວປ່ຽນການປ່ຽນແທນໄດ້ຖືກແທນທີ່ດ້ວຍຄຸນຄ່າທົ່ວໄປ. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=ເວລາຜ່ານໄປຕັ້ງແຕ່ TicketTimeToRead=ເວລາໄດ້ຜ່ານໄປກ່ອນທີ່ຈະອ່ານ TicketTimeElapsedBeforeSince=ເວລາຜ່ານໄປກ່ອນ / ນັບຕັ້ງແຕ່ @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=ຂໍ້ຄວາມໃwas່ໄດ TicketAssignedToYou=ມອບicketາຍປີ້ແລ້ວ TicketAssignedEmailBody=ເຈົ້າໄດ້ຮັບມອບtheາຍປີ້ #%s ໂດຍ %s MarkMessageAsPrivate=messageາຍຂໍ້ຄວາມເປັນສ່ວນຕົວ +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=ຂໍ້ຄວາມນີ້ຈະບໍ່ສະແດງໃຫ້ຜູ້ໃຊ້ພາຍນອກເຫັນ TicketEmailOriginIssuer=ຜູ້ອອກແຫຼ່ງທີ່ມາຂອງປີ້ InitialMessage=ຂໍ້ຄວາມເບື້ອງຕົ້ນ @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=ເຈົ້າສາມາດເບິ TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=ກະລຸນາຢ່າຕອບກັບອີເມລ directly ນີ້ໂດຍກົງ! ໃຊ້ຕົວເຊື່ອມຕໍ່ເພື່ອຕອບກັບເຂົ້າໄປໃນອິນເຕີເຟດ. TicketPublicInfoCreateTicket=ແບບຟອມນີ້ອະນຸຍາດໃຫ້ເຈົ້າບັນທຶກປີ້ສະ ໜັບ ສະ ໜູນ ໃນລະບົບການຈັດການຂອງພວກເຮົາ. -TicketPublicPleaseBeAccuratelyDescribe=ກະລຸນາອະທິບາຍບັນຫາໃຫ້ຖືກຕ້ອງ. ໃຫ້ຂໍ້ມູນຫຼາຍທີ່ສຸດເທົ່າທີ່ເປັນໄປໄດ້ເພື່ອອະນຸຍາດໃຫ້ພວກເຮົາລະບຸການຮ້ອງຂໍຂອງເຈົ້າໄດ້ຢ່າງຖືກຕ້ອງ. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=ກະລຸນາໃສ່ ID ຕິດຕາມປີ້ TicketTrackId=ID ຕິດຕາມສາທາລະນະ OneOfTicketTrackId=ຫນຶ່ງໃນ ID ຕິດຕາມຂອງເຈົ້າ diff --git a/htdocs/langs/lo_LA/users.lang b/htdocs/langs/lo_LA/users.lang index 2308fec58ae..e4f54f932b1 100644 --- a/htdocs/langs/lo_LA/users.lang +++ b/htdocs/langs/lo_LA/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=ລຶບຈາກກຸ່ມ PasswordChangedAndSentTo=ປ່ຽນລະຫັດຜ່ານແລະສົ່ງໄປ %s . PasswordChangeRequest=ຂໍປ່ຽນລະຫັດຜ່ານສໍາລັບ %s PasswordChangeRequestSent=ຮ້ອງຂໍໃຫ້ປ່ຽນລະຫັດຜ່ານສໍາລັບ %s ສົ່ງໄປ %s . -IfLoginExistPasswordRequestSent=ຖ້າການເຂົ້າສູ່ລະບົບນີ້ເປັນບັນຊີທີ່ຖືກຕ້ອງ, ໄດ້ມີການສົ່ງອີເມວເພື່ອຕັ້ງລະຫັດຜ່ານໃreset່. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=ຖ້າອີເມວນີ້ເປັນບັນຊີທີ່ຖືກຕ້ອງ, ອີເມລ to ເພື່ອຕັ້ງລະຫັດຜ່ານໃbeen່ໄດ້ຖືກສົ່ງໄປແລ້ວ. ConfirmPasswordReset=ຢືນຢັນການຣີເຊັດລະຫັດຜ່ານ MenuUsersAndGroups=ຜູ້ໃຊ້ & ກຸ່ມ @@ -68,7 +68,6 @@ CreateDolibarrLogin=ສ້າງຜູ້ໃຊ້ CreateDolibarrThirdParty=ສ້າງພາກສ່ວນທີສາມ LoginAccountDisableInDolibarr=ບັນຊີຖືກປິດການ ນຳ ໃຊ້ໃນ Dolibarr. UsePersonalValue=ໃຊ້ຄຸນຄ່າສ່ວນຕົວ -InternalUser=ຜູ້ໃຊ້ພາຍໃນ ExportDataset_user_1=ຜູ້ໃຊ້ແລະຄຸນສົມບັດຂອງເຂົາເຈົ້າ DomainUser=ຜູ້ໃຊ້ໂດເມນ %s Reactivate=ເປີດ ນຳ ໃຊ້ຄືນໃ່ @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/lo_LA/website.lang b/htdocs/langs/lo_LA/website.lang index ddcc387a99b..26c5bb63b7d 100644 --- a/htdocs/langs/lo_LA/website.lang +++ b/htdocs/langs/lo_LA/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=ລະຫັດ +WebsiteName=Name of the website WebsiteSetupDesc=ສ້າງທີ່ນີ້ເວັບໄຊທທີ່ທ່ານຕ້ອງການນໍາໃຊ້. ຈາກນັ້ນເຂົ້າໄປທີ່ເມນູເວັບໄຊທ to ເພື່ອແກ້ໄຂພວກມັນ. DeleteWebsite=ລຶບເວັບໄຊທ ConfirmDeleteWebsite=ເຈົ້າແນ່ໃຈບໍວ່າເຈົ້າຕ້ອງການລຶບເວັບໄຊທນີ້? ທຸກ ໜ້າ ແລະເນື້ອໃນຂອງມັນຈະຖືກເອົາອອກໄປຄືກັນ. ໄຟລ uploaded ທີ່ອັບໂຫຼດ (ເຊັ່ນ: ເຂົ້າໄປໃນບັນຊີລາຍຊື່ສື່, ໂມດູນ ECM, ... ) ຈະຍັງຄົງຢູ່. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=ການເພີ່ມໃສ່ຢູ່ລຸ່ມສຸ WEBSITE_ROBOT=ໄຟລ ot ຫຸ່ນຍົນ (robots.txt) WEBSITE_HTACCESS=ເວັບໄຊທ file. ໄຟລ htaccess WEBSITE_MANIFEST_JSON=ໄຟລ manifest manifest.json ຂອງເວັບໄຊທ -WEBSITE_README=ໄຟລ RE README.md WEBSITE_KEYWORDSDesc=ໃຊ້aາຍຈຸດເພື່ອແຍກຄ່າຕ່າງ -EnterHereLicenseInformation=ໃສ່ບ່ອນນີ້ຂໍ້ມູນ meta ຫຼືຂໍ້ມູນໃບອະນຸຍາດເພື່ອຍື່ນໄຟລ RE README.md. ຖ້າເຈົ້າແຈກຢາຍເວັບໄຊທ your ຂອງເຈົ້າເປັນແມ່ແບບ, ໄຟລ will ຈະຖືກລວມເຂົ້າໃນຊຸດລໍ້ລວງ. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=ສ່ວນຫົວຂອງ HTML (ສະເພາະ ໜ້າ ນີ້ເທົ່ານັ້ນ) PageNameAliasHelp=ຊື່ຫຼືນາມແງຂອງ ໜ້າ.
    ນາມແງນີ້ຍັງຖືກໃຊ້ເພື່ອປອມ URL SEO ໃນເວລາທີ່ເວັບໄຊທ is ຖືກແລ່ນມາຈາກ Virtual host ຂອງ Web server (ເຊັ່ນ Apacke, Nginx, ... ). ໃຊ້ປຸ່ມ " %s " ເພື່ອແກ້ໄຂນາມແງນີ້. EditTheWebSiteForACommonHeader=Noteາຍເຫດ: ຖ້າເຈົ້າຕ້ອງການກໍານົດສ່ວນຫົວສ່ວນບຸກຄົນສໍາລັບທຸກ ໜ້າ, ແກ້ໄຂສ່ວນຫົວຢູ່ໃນລະດັບເວັບໄຊທ instead ແທນທີ່ຈະຢູ່ໃນ ໜ້າ/ຖັງບັນຈຸ. @@ -42,10 +43,12 @@ ViewPageInNewTab=ເບິ່ງ ໜ້າ ຢູ່ໃນແຖບໃ່ SetAsHomePage=ຕັ້ງເປັນ ໜ້າ ຫຼັກ RealURL=URL ທີ່ແທ້ຈິງ ViewWebsiteInProduction=ເບິ່ງເວັບໄຊທ using ໂດຍໃຊ້ URL ຂອງບ້ານ +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= ໃຊ້ກັບ Apache / Nginx / ...
    ສ້າງໃນເຄື່ອງແມ່ຂ່າຍເວັບຂອງທ່ານ (Apache, Nginx, ... ) ເປັນ Host Virtual ອຸທິດກັບ PHP ເປີດແລະລະບົບຮາກໃນ
    %s ExampleToUseInApacheVirtualHostConfig=ຕົວຢ່າງທີ່ຈະໃຊ້ໃນການຕັ້ງຄ່າເຈົ້າພາບ virtual Apache: YouCanAlsoTestWithPHPS= ໃຊ້ກັບ PHP ຝັງ ເຄື່ອງແມ່ຂ່າຍຂອງ
    On ພັດທະນາສະພາບແວດລ້ອມ, ທ່ານອາດຈະຕ້ອງການທີ່ຈະທົດສອບເວັບໄຊທີ່ມີ PHP ຝັງເຄື່ອງແມ່ຂ່າຍເວັບທີ່ (PHP 5.5 ທີ່ກໍານົດໄວ້) ໂດຍໃຊ້
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= ແລ່ນເວັບໄຊທຂອງເຈົ້າກັບຜູ້ໃຫ້ບໍລິການ Dolibarr Hosting ຄົນອື່ນ
    ຖ້າເຈົ້າບໍ່ມີ web server ຄື Apache ຫຼື NGinx ທີ່ມີຢູ່ໃນອິນເຕີເນັດ, ເຈົ້າສາມາດສົ່ງອອກແລະນໍາເຂົ້າເວັບໄຊທ your ຂອງເຈົ້າໃສ່ໃນຕົວຢ່າງ Dolibarr ອື່ນທີ່ສະ ໜອງ ໃຫ້ໂດຍຜູ້ໃຫ້ບໍລິການ Dolibarr ອື່ນທີ່ໃຫ້ບໍລິການເຕັມຮູບແບບ. ການເຊື່ອມໂຍງກັບໂມດູນເວັບໄຊທ. ເຈົ້າສາມາດຊອກຫາລາຍຊື່ຂອງຜູ້ໃຫ້ບໍລິການໂຮສ Dolibarr ບາງອັນຢູ່ https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=ອ່ານ WritePerm=ຂຽນ @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=ເຈົ້າສາມາດແກ້ໄຂລະ YouCanEditHtmlSource=
    ທ່ານສາມາດລວມເອົາລະຫັດ PHP ເຂົ້າໄປໃນແຫຼ່ງນີ້ໂດຍການໃຊ້ແທັກ <? php? > a0a65d071f6f0f. ຕົວແປທົ່ວໂລກຕໍ່ໄປນີ້ມີຢູ່: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    ນອກນັ້ນທ່ານຍັງສາມາດລວມເອົາເນື້ອຫາຂອງ Page/Container ອື່ນທີ່ມີໄວຍະກອນຕໍ່ໄປນີ້:
    a03900 ? >

    ທ່ານສາມາດເຮັດໃຫ້ຕົວຊີ້ທິດທາງທີ່ຫນ້າອື່ນ / ຕູ້ຄອນເທນເນີທີ່ມີ syntax ດັ່ງຕໍ່ໄປນີ້ (ຫມາຍເຫດ: ບໍ່ອອກເນື້ອໃນກ່ອນທີ່ຈະໂອນຄືໃດຫນຶ່ງ):?
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ? >

    ໃນການເພີ່ມການເຊື່ອມຕໍ່ໄປຫາຫນ້າອື່ນ, ໃຊ້ໄວຍາກອນໄດ້:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    ເພື່ອປະກອບມີການເຊື່ອມຕໍ່ ເພື່ອດາວໂຫລດ ໄຟລ໌ເກັບຮັກສາໄວ້ເປັນເອກະສານ ໄດ້ ບັນຊີລາຍຊື່, ໃຊ້ document.php wrapper:
    ຕົວຢ່າງ, ສໍາລັບເອກະສານເຂົ້າໄປໃນເອກະສານ/ecm (ຈໍາເປັນຕ້ອງໄດ້ເຂົ້າສູ່ລະບົບ), syntax ແມ່ນ: a0342fccf00007d007d07d07d07b0d0b0b0c0c0c0 "ສໍາລັບການນໍາໃຊ້ເອກະສານ" ] filename.ext ">

    ສໍາລັບໄຟລ into ເຂົ້າໄປໃນເອກະສານ/ສື່ກາງ (ໄດເຣັກທໍຣີເປີດສໍາລັບການເຂົ້າເຖິງສາທາລະນະ), ໄວຍະກອນແມ່ນ:
    a03900df "/document.php?modulepart=medias&file=[relative_dir/ ]filename.ext">
    ສຳ ລັບໄຟລທີ່ແບ່ງປັນກັບການແບ່ງປັນການເຊື່ອມຕໍ່ (ເປີດການເຂົ້າເຖິງໂດຍໃຊ້ປຸ່ມ hash ການແບ່ງປັນຂອງໄຟລ) a0d09 a04 a04 a04 a07 a04 a04 a07 a03 a a a a a a 0 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a A a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a t a t a d a a d a d a d a d e a d e a e a e a e a e a e a e a e lo a ee a lo /document.php?hashp=publicsharekeyoffile">


    ໄປປະກອບເປັນ ພາບ ເກັບຮັກສາໄວ້ເປັນເອກະສານ ລະບົບ, ນໍາໃຊ້ viewimage.php wrapper:
    ຕົວຢ່າງ, ສໍາລັບຮູບພາບເຂົ້າໄປໃນເອກະສານ / ສື່ມວນຊົນເປັນ (ເປີດ ໄດເຣັກທໍຣີ ສຳ ລັບການເຂົ້າເຖິງສາທາລະນະ), ໄວຍະກອນແມ່ນ:
    <img src = "/viewimage.php? modulepart = medias&file = [relative_dir/] filename.extb07b07b07b07b07f07b07b07b07b07b07b07b0b0b0b07b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b07C07A007A0c07C07 ຍັງເປັນຜູ້ຈັດການຂອງພວກເຮົາ. #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=ສໍາລັບຮູບພາບທີ່ແບ່ງປັນກັບການເຊື່ອມຕໍ່ແບ່ງປັນ (ເປີດການເຂົ້າເຖິງໂດຍໃຊ້ລະຫັດ hash ການແບ່ງປັນຂອງໄຟລ)), ໄວຍະກອນແມ່ນ:
    <img src = "/viewimage.php? hashp = 12345679012 ... " a0012c7d009007700775 a039c087007c007c007c007c0b087c07c0b0785c087b07b0770c087b087b07b0770c07b07b07b07b0775c0b087b087b07b07b087b087b087a087b087b087b087c087c087c07b07b07b087c06b08770 -YouCanEditHtmlSourceMore=
    ຕົວຢ່າງເພີ່ມເຕີມຂອງ HTML ຫຼືລະຫັດແບບເຄື່ອນໄຫວທີ່ມີຢູ່ໃນ ເອກະສານ wiki
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Clone page/container CloneSite=Clone site SiteAdded=ເພີ່ມເວັບໄຊທແລ້ວ @@ -137,7 +140,7 @@ PagesRegenerated=%s ໜ້າ (s)/container (s) ຖືກສ້າງຂຶ້ RegenerateWebsiteContent=ສ້າງໄຟລ cache cache ຂອງເວັບໄຊທຄືນໃ່ AllowedInFrames=ອະນຸຍາດໃຫ້ຢູ່ໃນເຟຣມ DefineListOfAltLanguagesInWebsiteProperties=ກຳ ນົດລາຍຊື່ພາສາທີ່ມີທັງintoົດໃສ່ໃນຄຸນສົມບັດຂອງເວັບໄຊທ. -GenerateSitemaps=ສ້າງໄຟລ em ແຜນທີ່ເວັບໄຊທ +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=ຖ້າເຈົ້າຢືນຢັນ, ເຈົ້າຈະລຶບໄຟລ em ແຜນທີ່ທີ່ມີຢູ່ອອກ ... ConfirmSitemapsCreation=ຢືນຢັນການສ້າງແຜນທີ່ SitemapGenerated=ໄຟລ em ແຜນທີ່ແຜນທີ່ %s ສ້າງຂຶ້ນ @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon ຕ້ອງເປັນ png ErrorFaviconSize=Favicon ຕ້ອງມີຂະ ໜາດ 16x16, 32x32 ຫຼື 64x64 FaviconTooltip=ອັບໂຫຼດຮູບທີ່ຕ້ອງເປັນ png (16x16, 32x32 ຫຼື 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/lo_LA/withdrawals.lang b/htdocs/langs/lo_LA/withdrawals.lang index f00ec20967e..a9aafdaabf2 100644 --- a/htdocs/langs/lo_LA/withdrawals.lang +++ b/htdocs/langs/lo_LA/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=ໃບແຈ້ງ ໜີ້ ຜູ້ຂາຍ InvoiceWaitingWithdraw=ໃບແຈ້ງ ໜີ້ ລໍຖ້າການຫັກເງິນໂດຍກົງ InvoiceWaitingPaymentByBankTransfer=ໃບແຈ້ງ ໜີ້ ລໍຖ້າການໂອນເງິນສິນເຊື່ອ AmountToWithdraw=ຈຳ ນວນທີ່ຈະຖອນໄດ້ +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=ບໍ່ມີໃບຮຽກເກັບເງິນເປີດໃຫ້ '%s' ລໍຖ້າ. ໄປທີ່ແຖບ '%s' ຢູ່ໃນບັດຮຽກເກັບເງິນເພື່ອເຮັດການຮ້ອງຂໍ. -NoSupplierInvoiceToWithdraw=ບໍ່ມີໃບຮຽກເກັບເງິນຜູ້ສະ ໜອງ ທີ່ເປີດ 'ການຮ້ອງຂໍສິນເຊື່ອໂດຍກົງ' ລໍຖ້າຢູ່. ໄປທີ່ແຖບ '%s' ຢູ່ໃນບັດຮຽກເກັບເງິນເພື່ອເຮັດການຮ້ອງຂໍ. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=ຜູ້ຮັບຜິດຊອບ WithdrawalsSetup=ການຕັ້ງຄ່າການຊໍາລະດ້ວຍບັນຊີເດບິດໂດຍກົງ CreditTransferSetup=ການຕັ້ງຄ່າການໂອນສິນເຊື່ອ @@ -41,6 +42,7 @@ CreditTransferStatistics=ສະຖິຕິການໂອນສິນເຊື Rejects=ປະຕິເສດ LastWithdrawalReceipt=ໃບຮັບເງິນເດບິດໂດຍກົງ %s ຫຼ້າສຸດ MakeWithdrawRequest=ຮ້ອງຂໍການຊໍາລະດ້ວຍບັນຊີເດບິດໂດຍກົງ +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=ເຮັດການຮ້ອງຂໍການໂອນເງິນສິນເຊື່ອ WithdrawRequestsDone=%s ຄຳ ຮ້ອງການ ຊຳ ລະບັນຊີໂດຍກົງບັນທຶກແລ້ວ BankTransferRequestsDone=ບັນທຶກ ຄຳ ຂໍໂອນເງິນ %s ແລ້ວ @@ -99,8 +101,11 @@ CreditDate=ສິນເຊື່ອຢູ່ WithdrawalFileNotCapable=ບໍ່ສາມາດສ້າງໄຟລ receipt ໃບຮັບເງິນຖອນເງິນສໍາລັບປະເທດຂອງເຈົ້າ %s (ປະເທດຂອງເຈົ້າບໍ່ຖືກຮອງຮັບ) ShowWithdraw=ສະແດງຄໍາສັ່ງການຫັກບັນຊີໂດຍກົງ IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ແນວໃດກໍ່ຕາມ, ຖ້າໃບຮຽກເກັບເງິນມີຢ່າງ ໜ້ອຍ ໜຶ່ງ ຄໍາສັ່ງຊໍາລະບັນຊີໂດຍກົງທີ່ຍັງບໍ່ທັນດໍາເນີນການ, ມັນຈະບໍ່ຖືກຕັ້ງເປັນຈ່າຍເພື່ອອະນຸຍາດໃຫ້ມີການຈັດການການຖອນເງິນກ່ອນ. -DoStandingOrdersBeforePayments=ແຖບນີ້ອະນຸຍາດໃຫ້ເຈົ້າຮ້ອງຂໍເອົາຄໍາສັ່ງການຊໍາລະເງິນຜ່ານບັນຊີໂດຍກົງ. ເມື່ອ ສຳ ເລັດແລ້ວ, ເຂົ້າໄປທີ່ເມນູທະນາຄານ-> ການຊໍາລະດ້ວຍການຫັກເງິນໂດຍກົງເພື່ອສ້າງແລະຈັດການຄໍາສັ່ງການຫັກເງິນໂດຍກົງ. ເມື່ອຄໍາສັ່ງການຫັກເງິນໂດຍກົງຖືກປິດ, ການຊໍາລະຢູ່ໃນໃບຮຽກເກັບເງິນຈະຖືກບັນທຶກໂດຍອັດຕະໂນມັດ, ແລະໃບແຈ້ງ ໜີ້ ຖືກປິດຖ້າຍັງເຫຼືອເພື່ອຊໍາລະແມ່ນບໍ່ຫວ່າງ. -DoCreditTransferBeforePayments=ແຖບນີ້ອະນຸຍາດໃຫ້ເຈົ້າຮ້ອງຂໍໃບສັ່ງໂອນເງິນສິນເຊື່ອ. ເມື່ອ ສຳ ເລັດແລ້ວ, ເຂົ້າໄປທີ່ເມນູທະນາຄານ-> ຊໍາລະດ້ວຍການໂອນສິນເຊື່ອເພື່ອສ້າງແລະຈັດການຄໍາສັ່ງການໂອນເງິນສິນເຊື່ອ. ເມື່ອຄໍາສັ່ງການໂອນເງິນສິນເຊື່ອຖືກປິດ, ການຊໍາລະເງິນຢູ່ໃນໃບແຈ້ງ ໜີ້ ຈະຖືກບັນທຶກໂດຍອັດຕະໂນມັດ, ແລະໃບແຈ້ງ ໜີ້ ຖືກປິດຖ້າຍັງເຫຼືອເພື່ອຈ່າຍແມ່ນບໍ່ຫວ່າງ. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=ໄຟລ order ການສັ່ງ ໜີ້ CreditTransferFile=ໄຟລ transfer ໂອນເງິນສິນເຊື່ອ SetToStatusSent=ຕັ້ງເປັນສະຖານະ "ສົ່ງໄຟລແລ້ວ" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=ບໍ່ສາມາດສ້າງຄໍາຮ SepaMandate=ຄໍາສັ່ງ SEPA Direct Debit SepaMandateShort=ຄຳ ສັ່ງ SEPA PleaseReturnMandate=ກະລຸນາສົ່ງຄືນແບບຟອມ ຄຳ ສັ່ງນີ້ທາງອີເມລ to ຫາ %s ຫຼືທາງໄປສະນີຫາ -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=ຕົວລະບຸເຈົ້າ ໜີ້ CreditorName=ຊື່ເຈົ້າ ໜີ້ SEPAFillForm=(ຂ) ກະລຸນາຕື່ມຂໍ້ມູນໃສ່ທຸກຊ່ອງທີ່markedາຍໄວ້ * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=ວັນທີປະຕິບັດ CreateForSepa=ສ້າງໄຟລ deb ເດບິດໂດຍກົງ ICS=ຕົວລະບຸເຈົ້າ ໜີ້ - ICS +IDS=Debitor Identifier END_TO_END=ແທັກ SEML XML "EndToEndId" - ລະຫັດທີ່ບໍ່ຊໍ້າກັນຖືກມອບperາຍຕໍ່ທຸລະ ກຳ USTRD=ແທັກ SEPA XML "ບໍ່ມີໂຄງສ້າງ" ADDDAYS=ເພີ່ມມື້ໃສ່ວັນທີປະຕິບັດ @@ -154,3 +160,4 @@ ErrorICSmissing=ບໍ່ມີ ICS ຢູ່ໃນບັນຊີທະນາ TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=ຈໍານວນທັງofົດຂອງຄໍາສັ່ງຫັກເງິນໂດຍກົງແຕກຕ່າງຈາກຈໍານວນແຖວ WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/lo_LA/workflow.lang b/htdocs/langs/lo_LA/workflow.lang index 36c05c40008..2f33616ee98 100644 --- a/htdocs/langs/lo_LA/workflow.lang +++ b/htdocs/langs/lo_LA/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=ສ້າງຄໍາສັ່ງຂາຍ descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=ສ້າງໃບແຈ້ງ ໜີ້ ລູກຄ້າໂດຍອັດຕະໂນມັດຫຼັງຈາກມີການເຊັນບົດສະ ເໜີ ທາງການຄ້າ (ໃບຮຽກເກັບເງິນໃwill່ຈະມີຈໍານວນເທົ່າກັນກັບຂໍ້ສະ ເໜີ) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=ສ້າງໃບແຈ້ງ ໜີ້ ລູກຄ້າໂດຍອັດຕະໂນມັດຫຼັງຈາກສັນຍາໄດ້ຮັບການກວດສອບ descWORKFLOW_ORDER_AUTOCREATE_INVOICE=ສ້າງໃບແຈ້ງ ໜີ້ ລູກຄ້າໂດຍອັດຕະໂນມັດຫຼັງຈາກປິດການສັ່ງຊື້ (ໃບຮຽກເກັບເງິນໃwill່ຈະມີຈໍານວນເທົ່າກັບຄໍາສັ່ງ) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=ຈັດປະເພດຂໍ້ສະ ເໜີ ແຫຼ່ງທີ່ເຊື່ອມໂຍງເປັນໃບບິນເມື່ອຄໍາສັ່ງການຂາຍຖືກຕັ້ງເປັນໃບບິນ (ແລະຖ້າຈໍານວນຄໍາສັ່ງແມ່ນຄືກັນກັບຈໍານວນທັງofົດຂອງການສະ ເໜີ ທີ່ເຊື່ອມໂຍງທີ່ເຊັນແລ້ວ) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=ຈັດປະເພດຂໍ້ສະ ເໜີ ແຫຼ່ງທີ່ເຊື່ອມຕໍ່ເປັນໃບບິນທີ່ໄດ້ຮັບການກວດສອບໃບແຈ້ງ ໜີ້ ຂອງລູກຄ້າ (ແລະຖ້າຈໍານວນໃບຮຽກເກັບເງິນຄືກັນກັບຈໍານວນທັງofົດຂອງຂໍ້ສະ ເໜີ ທີ່ເຊື່ອມໂຍງທີ່ເຊັນແລ້ວ) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=ຈັດປະເພດຄໍ descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=ຈັດປະເພດຄໍາສັ່ງຂາຍແຫຼ່ງທີ່ເຊື່ອມຕໍ່ເປັນການເກັບເງິນເມື່ອໃບເກັບເງິນຂອງລູກຄ້າຖືກກໍານົດໃຫ້ຊໍາລະ (ແລະຖ້າຈໍານວນຂອງໃບຮຽກເກັບເງິນຄືກັນກັບຈໍານວນທັງofົດຂອງຄໍາສັ່ງເຊື່ອມໂຍງ) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=ຈັດປະເພດລໍາດັບການຂາຍແຫຼ່ງທີ່ເຊື່ອມໂຍງເປັນການຈັດສົ່ງເມື່ອການກວດສອບການຂົນສົ່ງຖືກຕ້ອງ (ແລະຖ້າປະລິມານທີ່ການຂົນສົ່ງທັງshippedົດຖືກຈັດສົ່ງແມ່ນຄືກັນກັບໃນຄໍາສັ່ງອັບເດດ). descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=ຈັດປະເພດລໍາດັບການຂາຍແຫຼ່ງທີ່ເຊື່ອມຕໍ່ເປັນການຈັດສົ່ງເມື່ອປິດການຂົນສົ່ງ (ແລະຖ້າປະລິມານການຂົນສົ່ງທັງshippedົດທີ່ສົ່ງອອກແມ່ນຄືກັນກັບໃນຄໍາສັ່ງທີ່ຈະອັບເດດ). -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=ຈັດປະເພດຂໍ້ສະ ເໜີ ຂອງຜູ້ຂາຍແຫຼ່ງເຊື່ອມໂຍງເປັນໃບບິນເມື່ອໃບແຈ້ງ ໜີ້ ຜູ້ຂາຍຖືກກວດສອບ (ແລະຖ້າຈໍານວນໃບຮຽກເກັບເງິນຄືກັນກັບຈໍານວນທັງofົດຂອງການສະ ເໜີ ທີ່ເຊື່ອມໂຍງ) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=ຈັດປະເພດຄໍາສັ່ງຊື້ແຫຼ່ງທີ່ເຊື່ອມຕໍ່ເປັນໃບບິນທີ່ໄດ້ຮັບການກວດສອບໃບແຈ້ງ ໜີ້ ຜູ້ຂາຍ (ແລະຖ້າຈໍານວນໃບຮຽກເກັບເງິນຄືກັນກັບຈໍານວນທັງofົດຂອງຄໍາສັ່ງເຊື່ອມໂຍງ) -descWORKFLOW_BILL_ON_RECEPTION=ຈັດປະເພດການຮັບເພື່ອ "ຮຽກເກັບເງິນ" ເມື່ອຄໍາສັ່ງຂອງຜູ້ສະ ໜອງ ທີ່ເຊື່ອມໂຍງໄດ້ຖືກກວດສອບ +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=ປິດການແຊກແຊງທັງlinkedົດທີ່ເຊື່ອມໂຍງກັບປີ້ເມື່ອປີ້ປິດ AutomaticCreation=ການສ້າງອັດຕະໂນມັດ AutomaticClassification=ການຈັດປະເພດອັດຕະໂນມັດ # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=ຈັດປະເພດການຈັດສົ່ງແຫຼ່ງທີ່ເຊື່ອມຕໍ່ເປັນປິດເມື່ອໃບເກັບເງິນຂອງລູກຄ້າໄດ້ຮັບການກວດສອບ +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index f9ba81ed755..ca41006a026 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Pagrindinė apskaitos sąskaita tiekėjams, ku MainAccountForUsersNotDefined=Pagrindinė apskaitos sąskaita naudotojams, kurie nenustatyti sąrankos metu MainAccountForVatPaymentNotDefined=Pagrindinė apskaitos sąskaita PVM mokėjimui, kuri nėra nustatyta sąrankos metu MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Apskaitos sritis AccountancyAreaDescIntro=Apskaitos modulio naudojimas atliekamas keliais etapais: AccountancyAreaDescActionOnce=Šie veiksmai paprastai atliekami vieną kartą arba kartą per metus ... -AccountancyAreaDescActionOnceBis=Kad ateityje sutaupytumėte laiko, turėtumėte atlikti tolesnius veiksmus, nurodydami teisingą numatytąją apskaitos paskyrą atliekant įvestį (rašydami įrašus žurnaluose ir pagrindinėje knygoje) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=ŽINGSNIS %s: Sukurkite arba patikrinkite savo žurnalo turinį iš meniu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=ŽINGSNIS %s: nustatykite kiekvieno PVM tarifo apskaitos sąskaitas. Tam naudokite meniu punktą %s. AccountancyAreaDescDefault=ŽINGSNIS %s: nustatykite numatytąsias apskaitos sąskaitas. Tam naudokite meniu punktą %s. -AccountancyAreaDescExpenseReport=ŽINGSNIS %s: nustatykite numatytąsias apskaitos sąskaitas kiekvienai išlaidų ataskaitos rūšiai. Tam naudokite meniu punktą %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=ŽINGSNIS %s: nustatykite numatytąsias apskaitos sąskaitas atlyginimų mokėjimams. Tam naudokite meniu punktą %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=ŽINGSNIS %s: nustatykite numatytąsias aukojimo / paramos apskaitos sąskaitas. Tam naudokite meniu punktą %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=ŽINGSNIS %s: nustatykite privalomą numatytąją sąskaitą ir numatytąsias apskaitos sąskaitas įvairiems sandoriams. Tam naudokite meniu punktą %s. AccountancyAreaDescLoan=ŽINGSNIS %s: nustatykite numatytąsias paskolų apskaitos sąskaitas. Tam naudokite meniu punktą %s. AccountancyAreaDescBank=ŽINGSNIS %s: nustatykite kiekvieno banko ir finansinių sąskaitų apskaitos sąskaitas ir žurnalo kodus. Tam naudokite meniu punktą %s. -AccountancyAreaDescProd=ŽINGSNIS %s: nustatykite savo prekių / paslaugų apskaitos sąskaitas. Tam naudokite meniu punktą %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=ŽINGSNIS %s: patikrinkite, ar esamos %s eilutės ir apskaitos sąskaitos yra susietos, tuomet programa galės vienu paspaudimu įvesti operacijas didžiojoje knygoje. Užbaikite trūkstamus susiejimus. Tam naudokite meniu punktą %s. AccountancyAreaDescWriteRecords=ŽINGSNIS%s: rašykite sandorius į didžiąją knygą. Norėdami tai padaryti, eikite į meniu %s ir spustelėkite mygtuką %s . @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Prekių sąskaitos TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Sąskaitų apvadas CustomersVentilation=Kliento sąskaita apvadas SuppliersVentilation=Tiekėjo sąskaitos apvadas @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Išlaidų ataskaita apvadas CreateMvts=Sukurkite naują sandorį UpdateMvts=Sandorio keitimas ValidTransaction=Patikrinti sandorį -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Didžioji knyga BookkeepingSubAccount=Subledger AccountBalance=Sąskaitos balansas @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Išjungti tiesioginį sandorio įrašymą banko sąska ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Įgalinti eksporto projektą žurnale ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Pardavimų žurnalas -ACCOUNTING_PURCHASE_JOURNAL=Pirkimų žurnalas -ACCOUNTING_MISCELLANEOUS_JOURNAL=Įvairiarūšis žurnalas +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Socialinis žurnalas +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Turi naują žurnalą +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Socialinis žurnalas ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Dokumento tipas Docdate=Data @@ -210,7 +217,7 @@ Codejournal=Žurnalas JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Pagal metus NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Žurnalas, kurį norite ištrinti -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Išlaidų ataskaitų žurnalas DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Iš viso pardavimų marža -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Kai kurie sandoriai negalėjo būti įvesti žurnale. Jei nėra kito klaidos pranešimo, tai tikriausiai todėl, kad jie jau buvo įvesti žurnale anksčiau. -NoNewRecordSaved=Daugiau žurnalo įrašų nėra -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Įvairiarūšės operacijos AccountingJournalType2=Pardavimai AccountingJournalType3=Pirkimai AccountingJournalType4=Bankas -AccountingJournalType5=Išlaidų ataskaita +AccountingJournalType5=Išlaidų ataskaitos AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Šis žurnalas jau naudojamas AccountingAccountForSalesTaxAreDefinedInto=Pastaba: Apskaitos sąskaita pardavimų mokestis yra apibrėžta meniu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Eksportuoti žurnalo projektą Modelcsv=Eksporto modelis @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Kai kurie privalomi nustatymo žingsniai nebuvo atlikti, prašome juos užpildyti ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Išlaidų ataskaitos žurnalas -InventoryJournal=Inventoriaus žurnalas NAccounts=%s accounts diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index 4c95f955423..4053f4b2161 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=Kita vertė (papildymas) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=PHP konfiguracijoje ribos nepritaikytos MaxSizeForUploadedFiles=Didžiausias įkeliamo failo dydis (0 - uždrausti betkokius įkėlimus) -UseCaptchaCode=Prisijungimo puslapyje naudoti grafinį kodą (CAPTCHA) +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Pilnas maršrutas iki antivirusinės programos komandos AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Daugiau parametrų komandinėje eilutėje @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Masiniss brūkšninių kodų paleidimas arba atstatymas produktams ar paslaugoms CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Pažymėti vertę kitiems %s tuštiems įrašams +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Ištrinti visas esamas brūkšninių kodų reikšmes ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=Visos brūkšninių kodų vertės buvo ištrintos @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -714,13 +714,14 @@ Permission27=Ištrinti komercinius pasiūlymus Permission28=Eksportuoti komercinius pasiūlymus Permission31=Skaityti produktus Permission32=Sukurti/pakeisti produktus +Permission33=Read prices products Permission34=Ištrinti produktus Permission36=Žiūrėti/tvarkyti paslėptus produktus Permission38=Eksportuoti produktus Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Skaityti intervencijas Permission62=Sukurti/keisti intervencijas @@ -739,6 +740,7 @@ Permission79=Sukurti/pakeisti prenumeratas Permission81=Skaityti klientų užsakymus Permission82=Sukurti/keisti klientų užsakymus Permission84=Patvirtinti klientų užsakymus +Permission85=Generate the documents sales orders Permission86=Siųsti klientų užsakymus Permission87=Uždaryti klientų užsakymus Permission88=Atšaukti klientų užsakymus @@ -766,9 +768,10 @@ Permission122=Sukurti/pakeisti trečiąsias šalis, susijusias su vartotoju Permission125=Ištrinti trečiąsias šalis, susijusias su vartotoju Permission126=Eksportuoti trečiąsias šalis Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Skaityti teikėjus Permission147=Skaityti statistinius duomenis Permission151=Read direct debit payment orders @@ -873,6 +876,7 @@ Permission525=Paskolos skaičiuoklė Permission527=Eksportuoti paskolas Permission531=Skaityti paslaugas Permission532=Sukurti/keisti paslaugas +Permission533=Read prices services Permission534=Ištrinti paslaugas Permission536=Žiūrėti/tvarkyti paslėptas paslaugas Permission538=Eksportuoti paslaugas @@ -883,6 +887,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -969,6 +976,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Nustatymai išsaugoti SetupNotSaved=Setup not saved @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=Mėnesio pabaigoje -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Nuokrypis AlwaysActive=Visada aktyvus Upgrade=Atnaujinti @@ -1187,7 +1197,7 @@ BankModuleNotActive=Banko sąskaitos modulis neįjungtas ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Įspėjimai -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1228,6 +1238,7 @@ BrowserName=Naršyklės pavadinimas BrowserOS=Naršyklės OS ListOfSecurityEvents=Dolibarr saugumo įvykių sąrašas SecurityEventsPurged=Saugumo įvykiai išvalyti +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Sistemos informacija yra įvairi techninė informacija, kurią gausite tik skaitymo režimu, ir bus matoma tik sistemos administratoriams. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=Jūs turite įjungti bent 1 modulį +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Taip vasarą OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Vandens ženklas ant sąskaitos-faktūros projekto (neb PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. ##### Proposals ##### PropalSetup=Komercinių pasiūlymų modulio nuostatos ProposalsNumberingModules=Komercinių pasiūlymų numeracijos modeliai @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Sutartys MailToSendReception=Receptions +MailToExpenseReport=Išlaidų ataskaitos MailToThirdparty=Trečiosios šalys MailToMember=Nariai MailToUser=Vartotojai @@ -2019,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,27 +2065,46 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2082,14 +2118,14 @@ CreateCandidature=Create job application FormatZip=Pašto kodas MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2185,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/lt_LT/companies.lang b/htdocs/langs/lt_LT/companies.lang index 3740b3c9689..b14fb23d2b3 100644 --- a/htdocs/langs/lt_LT/companies.lang +++ b/htdocs/langs/lt_LT/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Adresas State=Valstybė/Regionas +StateId=State ID StateCode=State/Province code StateShort=Būklė Region=Regionas Region-State=Region - State Country=Šalis CountryCode=Šalies kodas -CountryId=Šalies ID +CountryId=Country ID Phone=Telefonas PhoneShort=Telefonas Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Kiti ProfId6ShortCM=- ProfId1CO=Prof ID 1 (R.U.T.) diff --git a/htdocs/langs/lt_LT/compta.lang b/htdocs/langs/lt_LT/compta.lang index b0fecf81759..6ff4840d193 100644 --- a/htdocs/langs/lt_LT/compta.lang +++ b/htdocs/langs/lt_LT/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Balansas Debit=Debetas Credit=Kreditas +AccountingDebit=Debetas +AccountingCredit=Kreditas Piece=Apskaitos dok. AmountHTVATRealReceived=Grynasis sukauptas AmountHTVATRealPaid=Grynasis apmokėtas @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Režimas %sPVM nuo įsipareigojimų apskaitos%s. CalcModeVATEngagement=Režimas %sPVM nuo pajamų-išlaidų%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Skaičiavimo metodas AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/lt_LT/contracts.lang b/htdocs/langs/lt_LT/contracts.lang index 589b91882ca..ca10fd6ed79 100644 --- a/htdocs/langs/lt_LT/contracts.lang +++ b/htdocs/langs/lt_LT/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Sutartys / Abonentai ContractsAndLine=Sutartys ir sutarčių eilutė Contract=Sutartis ContractLine=Sutarties eilutė +ContractLines=Contract lines Closing=Uždarymas NoContracts=Nėra sutarčių MenuServices=Paslaugos @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Perkelti paslaugą į kitą sutartį ConfirmMoveToAnotherContract=Aš pasirinkto naują sutartį ir patvirtinu, kad noriu perkelti šią paslaugą į šią sutartį. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Atnaujinti sutarties eilutę (numeris %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Galiojimo data NoExpiredServices=Nėra pasibaigusių aktyvių paslaugų ListOfServicesToExpireWithDuration=Paslaugų, kurios baigsis už %s dienų, sąrašas @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Sutartį pasirašančio kliento kontak HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/lt_LT/datapolicy.lang b/htdocs/langs/lt_LT/datapolicy.lang new file mode 100644 index 00000000000..a2bd6a17064 --- /dev/null +++ b/htdocs/langs/lt_LT/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Klientas +DATAPOLICY_TIERS_PROSPECT = Numatomas klientas +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Tiekėjas +DATAPOLICY_CONTACT_CLIENT = Klientas +DATAPOLICY_CONTACT_PROSPECT = Numatomas klientas +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Tiekėjas +DATAPOLICY_ADHERENT = Narys +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/lt_LT/dict.lang b/htdocs/langs/lt_LT/dict.lang index 32b569c784c..f7481b3dfc0 100644 --- a/htdocs/langs/lt_LT/dict.lang +++ b/htdocs/langs/lt_LT/dict.lang @@ -21,7 +21,7 @@ CountryNL=Nyderlandai CountryHU=Vengrija CountryRU=Rusija CountrySE=Švedija -CountryCI=Dramblio kaulo krantas +CountryCI=Ivory Coast CountrySN=Senegalas CountryAR=Argentina CountryCM=Kamerūnas @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=p. +CivilityMMEShort=p. CivilityMR=p. +CivilityMRShort=p. CivilityMLE=p. CivilityMTRE=Magistras CivilityDR=Daktaras diff --git a/htdocs/langs/lt_LT/ecm.lang b/htdocs/langs/lt_LT/ecm.lang index a3c668ff1cf..9a2e3a16d58 100644 --- a/htdocs/langs/lt_LT/ecm.lang +++ b/htdocs/langs/lt_LT/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Rankinis katalogas ECMSectionAuto=Automatinis katalogas ECMSectionsManual=Rankinis medis ECMSectionsAuto=Automatinis medis +ECMSectionsMedias=Medias tree ECMSections=Katalogai ECMRoot=ECM Root ECMNewSection=Naujas katalogas @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Failų skaičius pakatalogiuose ECMCreationUser=Kūrėjas ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatiniai katalogai yra užpildomi automatiškai, pridedant dokumentus iš elemento kortelės.
    * Rankiniai katalogai gali būti naudojama saugoti dokumentams, nesusijusiems su konkrečiu elementu. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Katalogas %s buvo ištrintas. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Ieškoti pagal raktinius žodžius diff --git a/htdocs/langs/lt_LT/errors.lang b/htdocs/langs/lt_LT/errors.lang index 7155a7694df..cff79292d37 100644 --- a/htdocs/langs/lt_LT/errors.lang +++ b/htdocs/langs/lt_LT/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/lt_LT/externalsite.lang b/htdocs/langs/lt_LT/externalsite.lang deleted file mode 100644 index 863500a456c..00000000000 --- a/htdocs/langs/lt_LT/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Nustatymų nuoroda į išorinę interneto svetainę -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modulis ExternalSite nebuvo tinkamai sukonfigūruotas. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/lt_LT/ftp.lang b/htdocs/langs/lt_LT/ftp.lang deleted file mode 100644 index 9470fed927c..00000000000 --- a/htdocs/langs/lt_LT/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP kliento modulio nustatymai -NewFTPClient=Naujo FTP prisijungimo nustatymai -FTPArea=FTP sritis -FTPAreaDesc=Šis ekranas rodo FTP serverio vaizdo turinį -SetupOfFTPClientModuleNotComplete=FTP kliento modulio nustatymai yra nepilni -FTPFeatureNotSupportedByYourPHP=Jūsų PHP nepalaiko FTP funkcijos -FailedToConnectToFTPServer=Nepavyko prisijungti prie FTP serverio (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Nepavyko prisijungti prie FTP serverio su nustatytu prisijungimo vardu/slaptažodžiu -FTPFailedToRemoveFile=Nepavyko pašalinti failo %s. -FTPFailedToRemoveDir=Nepavyko pašalinti direktorijos %s (patikrinkite leidimus ir, kad katalogas yra tuščias). -FTPPassiveMode=Pasyvus būdas -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/lt_LT/holiday.lang b/htdocs/langs/lt_LT/holiday.lang index 9df0640e8c6..5ddbfd8ab79 100644 --- a/htdocs/langs/lt_LT/holiday.lang +++ b/htdocs/langs/lt_LT/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Žmogiškųjų išteklių valdymas (HRM) -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Mėnesio suvestinė MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Pradžios data @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Turite pasirinkti pradžios datą. NoDateFin=Turite pasirinkti pabaigos datą. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Priežastis UserCP=Vartotojas ErrorAddEventToUserCP=Pridedant išimtines atostogas įvyko klaida. AddEventToUserOkCP=Išimtinių atostogų pridėjimas baigtas. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Ankstesnis balansas NewSoldeCP=Naujas balansas alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupės +users=Vartotojai +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/lt_LT/hrm.lang b/htdocs/langs/lt_LT/hrm.lang index 942d5f8cef4..1508b8ab0e8 100644 --- a/htdocs/langs/lt_LT/hrm.lang +++ b/htdocs/langs/lt_LT/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Employees @@ -20,13 +20,14 @@ Employee=Darbuotojas NewEmployee=New employee ListOfEmployees=List of employees HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Darbas -Jobs=Jobs +JobPosition=Job profile +JobsPosition=Job profiles NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozicija -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,23 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels +NoDescription=No description diff --git a/htdocs/langs/lt_LT/install.lang b/htdocs/langs/lt_LT/install.lang index 4eada4e4109..b5c7b9f69e4 100644 --- a/htdocs/langs/lt_LT/install.lang +++ b/htdocs/langs/lt_LT/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Konfigūracijos failas %s įrašomas. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Šis PHP palaiko kintamuosius POST ir GET. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Šis PHP palaiko sesijas. @@ -16,13 +17,6 @@ PHPMemoryOK=Jūsų PHP maksimali sesijos atmintis yra nustatyta į %s. To PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Click here for a more detailed test ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. ErrorDirDoesNotExists=Katalogas %s neegzistuoja. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,9 +24,11 @@ ErrorWrongValueForParameter=Galbūt įvedėte neteisingą parametro '%s' reikšm ErrorFailedToCreateDatabase=Nepavyko sukurti duomenų bazės '%s'. ErrorFailedToConnectToDatabase=Nepavyko prisijungti prie duomenų bazės '%s'. ErrorDatabaseVersionTooLow=Duomenų bazės versija (%s) per sena. Reikalinga versija %s arba naujesnė. -ErrorPHPVersionTooLow=PHP versija pernelyg sena. Reikalinga versija %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Duomenų bazė '%s' jau egzistuoja. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Jei duomenų bazė jau yra, eikite atgal ir nuimkite "Sukurti duomenų bazę" opciją. WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/lt_LT/mailmanspip.lang b/htdocs/langs/lt_LT/mailmanspip.lang index 5127f2e280a..ee3b0637443 100644 --- a/htdocs/langs/lt_LT/mailmanspip.lang +++ b/htdocs/langs/lt_LT/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Prenumeratos testas buvo sėkmingai atliktas MailmanDeletionSuccess=Atsisakymo testas buvo sėkmingai atliktas SynchroMailManEnabled=Paštininko atnaujinimas bus atliekamas SynchroSpipEnabled=SPIP atnaujinimas bus atliekamas -DescADHERENT_MAILMAN_ADMINPW=Paštininko administratoriaus slaptažodis +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Paštininko administratoriaus slaptažodis DescADHERENT_MAILMAN_URL=URL Paštininko prisijungimai DescADHERENT_MAILMAN_UNSUB_URL=URL Paštininko prisijungimams DescADHERENT_MAILMAN_LISTS=Naujų narių (atskirtų kableliais) automatinių užrašų sąrašas (-ai) diff --git a/htdocs/langs/lt_LT/mails.lang b/htdocs/langs/lt_LT/mails.lang index 331350bb105..b19b7e977e4 100644 --- a/htdocs/langs/lt_LT/mails.lang +++ b/htdocs/langs/lt_LT/mails.lang @@ -7,10 +7,10 @@ MailCard=E-Pašto kortelė MailRecipients=Gavėjai MailRecipient=Gavėjas MailTitle=Aprašymas -MailFrom=Siuntėjas +MailFrom=Pardavėjas MailErrorsTo=Klaidos MailReply=Atsakyti -MailTo=Gavėjas (-ai) +MailTo=Pirkėjas MailToUsers=To user(s) MailCC=Kopijuoti į MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang index f53efe84de3..7ebfcb6d8c8 100644 --- a/htdocs/langs/lt_LT/main.lang +++ b/htdocs/langs/lt_LT/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=Nėra vertimo Translation=Vertimas +Translations=Translations CurrentTimeZone=Laiko juostos PHP (serveris) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Galiojantis Approve=Patvirtinti Disapprove=Nepritarti ReOpen=Atidaryti iš naujo +OpenVerb=Atidaryta Upload=Upload ToLink=Nuoroda Select=Pasirinkti @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Nėra apibrėžtos vartotojų grupės Password=Slaptažodis -PasswordRetype=Pakartokite slaptažodį +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Atkreipkite dėmesį, kad daug funkcijų/modulių yra išjungti šioje demonstracijoje. Name=Pavadinimas NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Aprašymas DescriptionOfLine=Eilutės aprašymas DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Įvykis @@ -344,7 +353,7 @@ KiloBytes=Kilobaitų MegaBytes=Megabaitų GigaBytes=Gigabaitų TeraBytes=Terabaitų -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Įvykiai su šiuo nariu ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s vėluoja ToDo=Atlikti Completed=Completed @@ -517,6 +527,7 @@ or=arba Other=Kitas Others=Kiti OtherInformations=Kita informacija +Workflow=Darbo eiga Quantity=Kiekis Qty=Kiekis ChangedBy=Pakeitė @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Prikabinti failus ir dokumentus JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Funkcija išjungta MoveBox=Move widget Offered=Pasiūlytas NotEnoughPermissions=Jūs neturite leidimo šiam veiksmui +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Sesijos pavadinimas Method=Metodas Receive=Gauti @@ -798,6 +811,7 @@ URLPhoto=Nuotraukos/logotipo URL SetLinkToAnotherThirdParty=Saitas į kitą trečiąją šalį LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiskaliniai metai ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Sutartys SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Išlaidų ataskaitos SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Laikomas Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Norma +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Vidinis vartotojas +ExternalUser=Išorinis naudotojas diff --git a/htdocs/langs/lt_LT/members.lang b/htdocs/langs/lt_LT/members.lang index 1e6d0d3e61c..b396ce1c48b 100644 --- a/htdocs/langs/lt_LT/members.lang +++ b/htdocs/langs/lt_LT/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Kitas narys (pavadinimas/vardas: % ErrorUserPermissionAllowsToLinksToItselfOnly=Saugumo sumetimais, Jums turi būti suteikti leidimai redaguoti visus vartotojus, kad galėtumėte susieti narį su vartotoju, kuris yra ne Jūsų. SetLinkToUser=Saitas su Dolibarr vartotoju SetLinkToThirdParty=Saitas su Dolibarr trečiąja šalimi +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Narių sąrašas MembersListToValid=Numatomų narių sąrašas (tvirtinimui) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Nario ID +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Naujas narys MemberType=Nario tipas MemberTypeId=Nario tipo ID @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=Nauja įmoka NewSubscriptionDesc=Ši forma leidžia įrašyti Jūsų pasirašymą kaip naują organizacijos narį. Jei norite atnaujinti savo pasirašymą (jei jau narys), prašome vietoj susisiekti su Organizacijos valdyba e-paštu %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Trukmė +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Vėlai SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Jūsų nario kortelės turinys # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Apyvarta (įmonės) arba Biudžeto (organizacijos) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Peršokti į integruotą interneto mokėjimo puslapį +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang index 97858418b48..0821686b797 100644 --- a/htdocs/langs/lt_LT/other.lang +++ b/htdocs/langs/lt_LT/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Kliento pasiūlymas patvirtintas Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Komercinis pasiūlymas nusiųstas paštu Notify_WITHDRAW_TRANSMIT=Perdavimo atsiėmimas Notify_WITHDRAW_CREDIT=Kredito atšaukimas @@ -181,6 +183,7 @@ SizeUnitfoot=pėda SizeUnitpoint=taškas BugTracker=Defekto trekeris SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Atgal į prisijungimo puslapį AuthenticationDoesNotAllowSendNewPassword=Autentifikavimo režimas yra %s.
    Šiame režime Dolibarr negali žinoti, nei pakeisti Jūsų slaptažodžio.
    Susisiekite su sistemos administratoriumi, jei norite pakeisti savo slaptažodį. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Uždaryti Autofill = Autofill + +# externalsite +ExternalSiteSetup=Nustatymų nuoroda į išorinę interneto svetainę +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Modulis ExternalSite nebuvo tinkamai sukonfigūruotas. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Nepavyko pašalinti failo %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Pasyvus būdas +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/lt_LT/propal.lang b/htdocs/langs/lt_LT/propal.lang index aea15c2fcb9..9ccd402a6d4 100644 --- a/htdocs/langs/lt_LT/propal.lang +++ b/htdocs/langs/lt_LT/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Nėra pasiūlymų projekto CopyPropalFrom=Sukurti komercinį pasiūlymą kopijuojant esamą pasiūlymą CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Komercinio pasiūlymo galiojimo trukmė (dienomis) pagal nutylėjimą +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Tinkamumo vėlavimas SetAvailability=Nustatykite tinkamumo vėlavimą AfterOrder=po užsakymo OtherProposals=Kiti pasiūlymai + ##### Availability ##### AvailabilityTypeAV_NOW=Nedelsiamas AvailabilityTypeAV_1W=1 savaitė AvailabilityTypeAV_2W=2 savaitės AvailabilityTypeAV_3W=3 savaitės AvailabilityTypeAV_1M=1 mėnuo -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Tipiškas tęstinis pasiūlymas TypeContact_propal_external_BILLING=Kliento sąskaitos-faktūros kontaktai TypeContact_propal_external_CUSTOMER=Kliento kontaktas tęstiniame pasiūlyme TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Šablonas pagal nutylėjimą, kai uždaromas verslo pasiūlymas (sąskaita-faktūra neišrašoma) DefaultModelPropalCreate=Modelio sukūrimas pagal nutylėjimą DefaultModelPropalToBill=Šablonas pagal nutylėjimą, kai uždaromas verslo pasiūlymas (turi būti išrašyta sąskaita-faktūra) -DefaultModelPropalClosed=Šablonas pagal nutylėjimą, kai uždaromas verslo pasiūlymas (sąskaita-faktūra neišrašoma) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Atmesti +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/lt_LT/recruitment.lang b/htdocs/langs/lt_LT/recruitment.lang index ed93a7680cc..f130daf30f2 100644 --- a/htdocs/langs/lt_LT/recruitment.lang +++ b/htdocs/langs/lt_LT/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Atlyginimas +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/lt_LT/stocks.lang b/htdocs/langs/lt_LT/stocks.lang index 5524ca80de3..a565fd73391 100644 --- a/htdocs/langs/lt_LT/stocks.lang +++ b/htdocs/langs/lt_LT/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Atidaryti iš naujo ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Pradžia InventoryStartedShort=Pradėtas ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/lt_LT/ticket.lang b/htdocs/langs/lt_LT/ticket.lang index b0178064687..67a1470c02f 100644 --- a/htdocs/langs/lt_LT/ticket.lang +++ b/htdocs/langs/lt_LT/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Parašas -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Naujas vartotojas NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/lt_LT/users.lang b/htdocs/langs/lt_LT/users.lang index 57967953111..3ad915e79bb 100644 --- a/htdocs/langs/lt_LT/users.lang +++ b/htdocs/langs/lt_LT/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Pašalinti iš grupės PasswordChangedAndSentTo=Slaptažodis pakeistas ir išsiųstas į %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Prašymas pakeisti slaptažodį %s išsiųstą į %s -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Vartotojai ir grupės @@ -68,7 +68,6 @@ CreateDolibarrLogin=Sukurti vartotoją CreateDolibarrThirdParty=Sukurti trečiąją šalį LoginAccountDisableInDolibarr=Sąskaita Dolibarr išjungta UsePersonalValue=Naudoti asmeninę reikšmę -InternalUser=Vidinis vartotojas ExportDataset_user_1=Users and their properties DomainUser=Domeno Vartotojas %s Reactivate=Atgaivinti @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index ab8121e0de5..5b3d88ad48a 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Valstis, kas nav EEK valstīs CountriesInEECExceptMe=Valstis EEK, izņemot %s CountriesExceptMe=Visas valstis, izņemot %s AccountantFiles=Eksportēt pirmdokumentus -ExportAccountingSourceDocHelp=Izmantojot šo rīku, varat eksportēt avota notikumus (sarakstu CSV un PDF formātā), kas tiek izmantoti jūsu grāmatvedības uzskaitei. +ExportAccountingSourceDocHelp=Izmantojot šo rīku, varat meklēt un eksportēt avota notikumus, kas tiek izmantoti jūsu grāmatvedības uzskaitei.
    Eksportētajā ZIP failā būs pieprasīto vienumu saraksti CSV formātā, kā arī tiem pievienotie faili to sākotnējā formātā (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Lai eksportētu žurnālus, izmantojiet izvēlnes ierakstu %s - %s. +ExportAccountingProjectHelp=Norādiet projektu, ja jums ir nepieciešams grāmatvedības pārskats tikai par konkrētu projektu. Izdevumu atskaites un kredīta maksājumi nav iekļauti projektu pārskatos. VueByAccountAccounting=Skatīt pēc grāmatvedības konta VueBySubAccountAccounting=Skatīt pēc grāmatvedības apakškonta @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Galvenais grāmatvedības konts piegādātāji MainAccountForUsersNotDefined=Galvenais grāmatvedības konts lietotājiem, kas nav definēti iestatījumos MainAccountForVatPaymentNotDefined=Galvenais grāmatvedības konts par PVN maksājumu, kas nav definēts iestatījumos MainAccountForSubscriptionPaymentNotDefined=Galvenais grāmatvedības konts abonēšanas maksā, kas nav definēts iestatījumā +UserAccountNotDefined=Uzskaites konts lietotājam, kas nav definēts iestatījumos AccountancyArea=Grāmatvedības zona AccountancyAreaDescIntro=Grāmatvedības moduļa lietošana tiek veikta vairākos posmos: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Atspējot tiešu darījumu reģistrāciju bankas kont ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Iespējot eksporta projektu žurnālā ACCOUNTANCY_COMBO_FOR_AUX=Iespējot kombinēto sarakstu meitas kontam (tas var būt lēns, ja jums ir daudz trešo pušu, pārtraukt iespēju meklēt daļu vērtības) ACCOUNTING_DATE_START_BINDING=Definējiet datumu, lai sāktu iesiešanu un pārskaitīšanu grāmatvedībā. Zem šī datuma darījumi netiks pārnesti uz grāmatvedību. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Pārsūtot grāmatvedību, pēc noklusējuma atlasiet periodu +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Kāds ir grāmatvedības pārskaitījuma periods, kas atlasīts pēc noklusējuma -ACCOUNTING_SELL_JOURNAL=Pārdošanas žurnāls -ACCOUNTING_PURCHASE_JOURNAL=Pirkuma žurnāls -ACCOUNTING_MISCELLANEOUS_JOURNAL=Dažādi žurnāli +ACCOUNTING_SELL_JOURNAL=Pārdošanas žurnāls (pārdošana un atgriešana) +ACCOUNTING_PURCHASE_JOURNAL=Pirkumu žurnāls (pirkšana un atgriešana) +ACCOUNTING_BANK_JOURNAL=Kases žurnāls (kvītis un izmaksas) ACCOUNTING_EXPENSEREPORT_JOURNAL=Izdevumu atskaites žurnāls -ACCOUNTING_SOCIAL_JOURNAL=Sociālais žurnāls +ACCOUNTING_MISCELLANEOUS_JOURNAL=Vispārējais žurnāls ACCOUNTING_HAS_NEW_JOURNAL=Vai jauns Vēstnesis? +ACCOUNTING_INVENTORY_JOURNAL=Inventāra žurnāls +ACCOUNTING_SOCIAL_JOURNAL=Sociālais žurnāls ACCOUNTING_RESULT_PROFIT=Rezultātu uzskaites konts (peļņa) ACCOUNTING_RESULT_LOSS=Rezultātu uzskaites konts (zaudējumi) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Noslēguma žurnāls -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Grāmatvedības konts bankas pārskaitījuma starp konts +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Pārejas bankas konta pārejas konts -ACCOUNTING_ACCOUNT_SUSPENSE=Gaidīšanas grāmatvedības konts -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Grāmatvedības konts, lai reģistrētu abonementus +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Grāmatvedības konts pēc noklusējuma reģistrē klientu depozītu -UseAuxiliaryAccountOnCustomerDeposit=Izmantojiet apakškontus klientu noguldījumu līnijās +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Saglabājiet klienta kontu kā individuālu kontu meitas virsgrāmatā pirmo iemaksu rindām (ja tas ir atspējots, individuālais konts pirmās iemaksas rindām paliks tukšs) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Saglabājiet piegādātāja kontu kā individuālo kontu meitas virsgrāmatā pirmās iemaksas rindām (ja tas ir atspējots, individuālais konts pirmās iemaksas rindām paliks tukšs) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Nopirkto produktu grāmatvedības konts pēc noklusējuma (tiek izmantots, ja tas nav definēts produktu lapā) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Grāmatvedības konts pēc noklusējuma nopirktajiem produktiem EEK (lietots, ja nav definēts produktu lapā) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Grāmatvedības konts pēc noklusējuma nopirktajiem produktiem un importētajiem no EEK (izmantots, ja tas nav noteikts produkta lapā) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Grāmatvedības konts pēc noklusējuma pārdotajiem produktiem (izmanto, ja produkta lapā nav noteikts). -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Grāmatvedības konts pēc noklusējuma ražojumiem, ko pārdod EEK (izmanto, ja nav definēts produktu lapā) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Grāmatvedības konts pēc noklusējuma produktiem, kas pārdoti un eksportēti no EEK (izmantots, ja tas nav noteikts produkta lapā) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Grāmatvedības konts pēc noklusējuma par nopirktajiem pakalpojumiem (lieto, ja tas nav noteikts pakalpojuma lapā) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Grāmatvedības konts pēc noklusējuma nopirktajiem pakalpojumiem EEK (izmantots, ja pakalpojuma lapā nav noteikts) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Grāmatvedības konts pēc noklusējuma par nopirktajiem pakalpojumiem un ievestajiem no EEK (tiek izmantots, ja pakalpojuma lapā tas nav noteikts) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Grāmatvedības konts pēc noklusējuma pārdotajiem pakalpojumiem (izmanto, ja tas nav noteikts pakalpojuma lapā) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Grāmatvedības konts pēc noklusējuma par pakalpojumiem, kas pārdoti EEK (izmantots, ja nav definēts pakalpojumu lapā) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Grāmatvedības konts pēc noklusējuma par pakalpojumiem, kas pārdoti un eksportēti no EEK (tiek izmantoti, ja tie nav definēti pakalpojumu lapā) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Dokumenta veids Docdate=Datums @@ -211,7 +217,7 @@ Codejournal=Žurnāls JournalLabel=Žurnāla etiķete NumPiece=Gabala numurs TransactionNumShort=Num. darījums -AccountingCategory=Pielāgota grupa +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Grupēt pēc galvenās grāmatas konta GroupBySubAccountAccounting=Grupēt pēc apakšzinēja konta AccountingAccountGroupsDesc=Šeit jūs varat definēt dažas grāmatvedības kontu grupas. Tie tiks izmantoti personificētiem grāmatvedības pārskatiem. @@ -265,13 +271,13 @@ Reconcilable=Samierināms TotalVente=Kopējais apgrozījums pirms nodokļu nomaksas TotalMarge=Kopējā pārdošanas starpība -DescVentilCustomer=Aplūkojiet šeit klienta rēķina līniju sarakstu, kas saistītas (vai nav) ar produktu grāmatvedības kontu -DescVentilMore=Vairumā gadījumu, ja jūs izmantojat iepriekš definētus produktus vai pakalpojumus, un produkta / pakalpojuma kartē norādiet konta numuru, programma varēs veikt visu saistību starp jūsu rēķina līnijām un jūsu kontu plāna grāmatvedības kontu, tikai vienu klikšķi, izmantojot pogu "%s" . Ja konts nav iestatīts uz produktu / pakalpojumu kartēm vai ja jums joprojām ir dažas līnijas, kurām nav saistības ar kontu, izvēlnē " %s " būs jāveic manuāla piesaistīšana. -DescVentilDoneCustomer=Konsultējieties šeit ar rindu rēķinu klientu sarakstu un to produktu uzskaites kontu -DescVentilTodoCustomer=Piesaistiet rēķina līnijas, kas vēl nav saistītas ar produkta grāmatvedības kontu -ChangeAccount=Izmainiet produktu / pakalpojumu grāmatvedības kontu izvēlētajām līnijām ar šādu grāmatvedības kontu: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Šeit atrodams pārdevēju rēķinu rindu saraksts, kas ir piesaistīts vai vēl nav saistīts ar produkta grāmatvedības kontu (ir redzams tikai ieraksts, kas vēl nav pārskaitīts grāmatvedībā) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Šeit skatiet piegādātāju rēķinu un to grāmatvedības kontu sarakstu DescVentilTodoExpenseReport=Bind expense report lines, kas jau nav saistītas ar maksu grāmatvedības kontu DescVentilExpenseReport=Konsultējieties šeit ar izdevumu pārskatu rindiņu sarakstu, kas ir saistoši (vai nē) ar maksu grāmatvedības kontu @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Ja jūs izveidojat grāmatvedības kontu uz izdevumu DescVentilDoneExpenseReport=Konsultējieties šeit ar izdevumu pārskatu rindu sarakstu un to maksu grāmatvedības kontu Closure=Gada slēgšana -DescClosure=Šeit skatiet to kustību skaitu pa mēnešiem, kas vēl nav apstiprinātas un bloķētas +DescClosure=Šeit skatiet kustību skaitu pa mēnešiem, kas vēl nav apstiprinātas un bloķētas OverviewOfMovementsNotValidated=Pārskats par kustībām, kas nav apstiprinātas un bloķētas AllMovementsWereRecordedAsValidated=Visas kustības tika reģistrētas kā apstiprinātas un bloķētas NotAllMovementsCouldBeRecordedAsValidated=Ne visas kustības varēja reģistrēt kā apstiprinātas un bloķētas -ValidateMovements=Apstiprināt un bloķēt ierakstu... +ValidateMovements=Validēt un bloķēt kustības... DescValidateMovements=Jebkādas rakstīšanas, burtu un izdzēsto tekstu izmaiņas vai dzēšana būs aizliegtas. Visi vingrinājumu ieraksti ir jāapstiprina, pretējā gadījumā aizvēršana nebūs iespējama ValidateHistory=Piesaistiet automātiski AutomaticBindingDone=Automātiskā saistīšana ir pabeigta (%s) — dažiem ierakstiem automātiskā saistīšana nav iespējama (%s) -ErrorAccountancyCodeIsAlreadyUse=Kļūda, nevarat izdzēst šo grāmatvedības kontu, jo tas tiek izmantots +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Kustības nav pareizi līdzsvarotas. Debets = %s & kredīts = %s Balancing=Līdzsvarošana FicheVentilation=Iesiešanas kartiņa GeneralLedgerIsWritten=Darījumi ir rakstīti grāmatvedībā GeneralLedgerSomeRecordWasNotRecorded=Daži darījumi nevarēja tikt publicēti žurnālā. Ja nav citas kļūdas ziņojuma, iespējams, ka tie jau tika publicēti. NoNewRecordSaved=Vairs nav pārsūtāmu ierakstu -ListOfProductsWithoutAccountingAccount=Produktu saraksts, uz kuriem nav saistīta kāds grāmatvedības konts +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Mainiet saites Accounted=Uzskaitīts virsgrāmatā NotYetAccounted=Vēl nav pārnests uz grāmatvedību @@ -319,9 +325,10 @@ AccountingJournalType1=Dažādas darbības AccountingJournalType2=Pārdošanas AccountingJournalType3=Pirkumi AccountingJournalType4=Banka -AccountingJournalType5=Izdevumu pārskats +AccountingJournalType5=Izdevumu atskaites AccountingJournalType8=Inventārs AccountingJournalType9=Ir jauns +GenerationOfAccountingEntries=Grāmatvedības ierakstu ģenerēšana ErrorAccountingJournalIsAlreadyUse=Šis žurnāls jau ir izmantots AccountingAccountForSalesTaxAreDefinedInto=Piezīme. Pārdošanas nodokļa grāmatvedības konts ir norādīts izvēlnē %s - %s . NumberOfAccountancyEntries=Ierakstu skaits @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Pārvietošanas skaits ACCOUNTING_DISABLE_BINDING_ON_SALES=Atspējot saistīšanu un pārskaitīšanu pārdošanas grāmatvedībā (klienta rēķini netiks ņemti vērā grāmatvedībā) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Atspējot saistīšanu un pārsūtīšanu pirkumu grāmatvedībā (pārdevēja rēķini netiks ņemti vērā grāmatvedībā) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Atspējojiet grāmatvedībā iesiešanu un pārskaitīšanu izdevumu pārskatos (grāmatvedībā netiks ņemti vērā izdevumu pārskati) +ACCOUNTING_ENABLE_LETTERING=Grāmatvedībā iespējot burtu funkciju ## Export +NotExportLettering=Veidojot failu, neeksportējiet burtus NotifiedExportDate=Atzīmējiet eksportētās rindas kā Eksportētas (lai mainītu rindu, jums būs jāizdzēš viss darījums un atkārtoti jāpārsūta uz grāmatvedību) -NotifiedValidationDate=Apstipriniet un bloķējiet eksportētos ierakstus (tāds pats efekts kā funkcijai "Aizvērt", rindu modifikācija un dzēšana NOTEIKTI nebūs iespējama) +NotifiedValidationDate=Apstipriniet un bloķējiet eksportētos ierakstus (tāds pats efekts kā funkcijai "%s", rindu modifikācija un dzēšana NOTEIKTI nebūs iespējama) DateValidationAndLock=Datuma apstiprināšana un bloķēšana ConfirmExportFile=Apstiprinājums par grāmatvedības eksporta faila ģenerēšanu? ExportDraftJournal=Eksporta žurnāla projekts @@ -398,7 +407,11 @@ Calculated=Aprēķināts Formula=Formula ## Reconcile +LetteringAuto=Saskaņot auto +LetteringManual=Saskaņošanas rokasgrāmata Unlettering=Nesamierināties +UnletteringAuto=Nesaskaņots auto +UnletteringManual=Nesaskaņojama rokasgrāmata AccountancyNoLetteringModified=Saskaņošana nav mainīta AccountancyOneLetteringModifiedSuccessfully=Viens saskaņojums ir veiksmīgi pārveidots AccountancyLetteringModifiedSuccessfully=%s saskaņošana ir veiksmīgi modificēta @@ -407,7 +420,8 @@ AccountancyOneUnletteringModifiedSuccessfully=Viena nesaskaņošana ir veiksmīg AccountancyUnletteringModifiedSuccessfully=%s nesaskaņošana ir veiksmīgi modificēta ## Confirm box -ConfirmMassUnlettering=Lielapjoma nesaskaņošanas apstiprinājums +ConfirmMassUnletteringAuto=Lielapjoma automātiskās nesaskaņošanas apstiprinājums +ConfirmMassUnletteringManual=Lielapjoma manuālas nesaskaņošanas apstiprinājums ConfirmMassUnletteringQuestion=Vai tiešām vēlaties nesaskaņot %s atlasītos ierakstus? ConfirmMassDeleteBookkeepingWriting=Lielapjoma dzēšanas apstiprinājums ConfirmMassDeleteBookkeepingWritingQuestion=Tādējādi darījums tiks dzēsts no uzskaites (tiks dzēstas visas ar to pašu darījumu saistītās rindas) Vai tiešām vēlaties dzēst %s atlasītos ierakstus? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Diem AccountancyErrorMismatchLetterCode=Saskaņošanas koda neatbilstība AccountancyErrorMismatchBalanceAmount=Atlikums (%s) nav vienāds ar 0 AccountancyErrorLetteringBookkeeping=Ir radušās kļūdas saistībā ar darījumiem: %s +ErrorAccountNumberAlreadyExists=Grāmatvedības numurs %s jau pastāv ## Import ImportAccountingEntries=Grāmatvedības ieraksti @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Daudzvalūtu kods (Idevise) DateExport=Eksporta datums WarningReportNotReliable=Brīdinājums. Šis pārskats nav balstīts uz grāmatvedi, tādēļ tajā nav darījumu, kas Manuāli ir manuāli modificēts. Ja žurnāls ir atjaunināts, grāmatvedības skats ir precīzāks. ExpenseReportJournal=Izdevumu atskaites žurnāls -InventoryJournal=Inventāra žurnāls NAccounts=%s konti diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index e2abc15a6bc..08ec9f2dfc2 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Klientu salīdzināšana WarningModuleNotActive=Modulim %s ir jābūt aktivizētam WarningOnlyPermissionOfActivatedModules=Tikai atļaujas, kas saistīti ar aktīviem moduļi tiek parādīts šeit. Jūs varat aktivizēt citus moduļus Mājās->Iestatījumi->moduļi lapā. DolibarrSetup=Dolibarr instalēšana vai atjaunināšana -InternalUser=Iekšējais lietotājs -ExternalUser=Ārējais lietotājs InternalUsers=Iekšējie lietotāji ExternalUsers=Ārējie lietotāji UserInterface=Lietotāja interfeiss @@ -109,7 +107,7 @@ NextValueForReplacements=Tālāk vērtība (nomaiņa) MustBeLowerThanPHPLimit=Piezīme: jūsu PHP konfigurācija šobrīd ierobežo maksimālo augšupielādējamā faila lielumu līdz %s %s, neatkarīgi no šī parametra vērtības NoMaxSizeByPHPLimit=Piezīme: Nav limits tiek noteikts jūsu PHP konfigurācijā MaxSizeForUploadedFiles=Maksimālais augšupielādējamo failu izmērs (0 nepieļaut failu augšupielādi) -UseCaptchaCode=Izmantot grafisko kodu (CAPTCHA) pieteikšanās lapā +UseCaptchaCode=Izmantojiet grafisko kodu (CAPTCHA) pieteikšanās lapā un dažās publiskās lapās AntiVirusCommand=Pilns ceļš antivīrusa komandai AntiVirusCommandExample=ClamAv Daemon piemērs (nepieciešams clamav-daemon): / usr / bin / clamdscan
    ClamWin piemērs (ļoti ļoti lēns): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Papildus komandrindas parametri @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Resursa (noklusējuma vērtība php.ini: %s< MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS ports (nav definēts PHP uz Unix līdzīgām sistēmām) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS resurs (nav definēts PHP Unix līdzīgās sistēmās) MAIN_MAIL_EMAIL_FROM=Sūtītāja e-pasta ziņojums automātiskajiem e-pasta ziņojumiem (noklusējuma vērtība php.ini: %s) +EMailHelpMsgSPFDKIM=Lai Dolibarr e-pasta ziņojumi netiktu klasificēti kā mēstules, pārliecinieties, vai serveris ir pilnvarots sūtīt e-pastus no šīs adreses, izmantojot SPF un DKIM konfigurāciju. MAIN_MAIL_ERRORS_TO=E-pasts, ko izmanto, lai kļūtu, atgriež e-pastus (laukos 'Kļūdas-To' e-pasta ziņojumos) MAIN_MAIL_AUTOCOPY_TO= Kopija (Bcc) visi nosūtītie e-pasta ziņojumi uz MAIN_DISABLE_ALL_MAILS=Atspējot visu e-pasta sūtīšanu (izmēģinājuma nolūkos vai demonstrācijās) @@ -439,8 +438,10 @@ Unique=Unikāls Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefons ExtrafieldPrice = Cena +ExtrafieldPriceWithCurrency=Cena ar valūtu ExtrafieldMail = E-pasts ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Izvēlēties sarakstu ExtrafieldSelectList = Izvēlieties kādu no tabulas ExtrafieldSeparator=Atdalītājs (nevis lauks) @@ -477,7 +478,7 @@ InstalledInto=Instalēta direktorijā %s BarcodeInitForThirdparties=Masveida svītru kodu veidošana trešajām personām BarcodeInitForProductsOrServices=Masveida svītrkodu veidošana produktu vai pakalpojumu atiestatīšana CurrentlyNWithoutBarCode=Pašlaik jums ir %s ierakstu %s %s bez definēta svītrukoda. -InitEmptyBarCode=Sākotnējā vērtība nākamajiem %s tukšajiem ierakstiem +InitEmptyBarCode=Sākotnējā vērtība %s tukšajiem svītrkodiem EraseAllCurrentBarCode=Dzēst visas svītrkodu vērtības ConfirmEraseAllCurrentBarCode=Vai tiešām vēlaties dzēst visas svītrkodu vērtības ? AllBarcodeReset=Visas svītrkodu vērtības dzēstas @@ -501,10 +502,11 @@ WarningPHPMail=BRĪDINĀJUMS. E-pasta ziņojumu sūtīšanai no lietojumprogramm WarningPHPMailA=- E-pasta pakalpojumu sniedzēja servera izmantošana palielina jūsu e-pasta uzticamību, tāpēc tas palielina piegādājamību, nepazīmējot to kā SPAM WarningPHPMailB=- Daži e-pasta pakalpojumu sniedzēji (piemēram, Yahoo) neļauj sūtīt e-pastu no cita servera, izņemot viņu pašu serveri. Pašreizējā iestatījumā e-pasta ziņojumu sūtīšanai tiek izmantots lietojumprogrammas serveris, nevis jūsu e-pasta pakalpojumu sniedzēja serveris, tāpēc daži adresāti (kas ir saderīgi ar ierobežojošo DMARC protokolu) jautās jūsu e-pasta pakalpojumu sniedzējam, vai viņi var pieņemt jūsu e-pastu, un dažiem e-pasta pakalpojumu sniedzējiem (piemēram, Yahoo) var atbildēt "nē", jo serveris nav viņu, tāpēc daži no jūsu nosūtītajiem e-pasta ziņojumiem var netikt pieņemti piegādei (esiet piesardzīgs arī attiecībā uz sava e-pasta pakalpojumu sniedzēja sūtīšanas kvotu). WarningPHPMailC=- Arī sava e-pasta pakalpojumu sniedzēja SMTP servera izmantošana e-pasta ziņojumu sūtīšanai ir interesanta, tāpēc visi no lietojumprogrammas nosūtītie e-pasta ziņojumi tiks saglabāti arī jūsu pastkastes direktorijā Nosūtītie. -WarningPHPMailD=Tāpēc arī ieteicams mainīt e-pasta sūtīšanas metodi uz vērtību "SMTP". Ja jūs patiešām vēlaties saglabāt noklusējuma PHP metodi e -pasta ziņojumu sūtīšanai, vienkārši ignorējiet šo brīdinājumu vai noņemiet to, iestatot iestatījumu MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP uz 1 - Sākums - Iestatīšana - Citi. +WarningPHPMailD=Tāpēc ir ieteicams mainīt e-pasta sūtīšanas metodi uz vērtību "SMTP". +WarningPHPMailDbis=Ja patiešām vēlaties saglabāt noklusējuma "PHP" metodi e-pasta sūtīšanai, vienkārši ignorējiet šo brīdinājumu vai noņemiet to, %snoklikšķinot šeit%s. WarningPHPMail2=Ja jūsu e-pasta SMTP pakalpojumu sniedzējs ierobežo e-pasta klientus uz dažām IP adresēm (ļoti reti), tad jūsu ERP CRM lietojumprogrammas e-pasta lietotāja aģenta (MUA) IP adrese ir: %s. WarningPHPMailSPF=Ja domēna vārds jūsu sūtītāja e-pasta adresē ir aizsargāts ar SPF ierakstu (jautājiet savam domēna vārda reģistratoram), sava domēna DNS SPF ierakstā ir jāpievieno šādi IP: %s . -ActualMailSPFRecordFound=Faktiskais SPF ieraksts atrasts: %s +ActualMailSPFRecordFound=Atrasts faktiskais SPF ieraksts (e-pastam %s): %s ClickToShowDescription=Noklikšķiniet, lai parādītu aprakstu DependsOn=Šim modulim nepieciešams modulis(-i) RequiredBy=Šis modulis nepieciešams modulim (-ļiem) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Piemērs:
    Lai veidlapa izveidotu jaunu t PageUrlForDefaultValuesList=
    Piemērs:
    Lapai, kurā uzskaitītas trešās personas, tas ir %s .
    Par ārējā moduļa URL, kas instalēts pielāgotā direktorijā, neietveriet 'custom /' ceļš, piemēram, mymodule / mypagelist.php un nevis pielāgots / mymodule / mypagelist.php.
    Ja vēlaties noklusējuma vērtību tikai tad, ja URL ir kāds parametrs, varat izmantot %s AlsoDefaultValuesAreEffectiveForActionCreate=Ņemiet vērā arī to, ka veidlapu izveides noklusējuma vērtību pārrakstīšana darbojas tikai tām lapām, kas ir pareizi izstrādātas (tātad ar parametru darbību = izveidot vai prezentēt ...) EnableDefaultValues=Iespējot noklusējuma vērtību pielāgošanu -EnableOverwriteTranslation=Iespējot pārrakstīto tulkojumu izmantošanu +EnableOverwriteTranslation=Atļaut pielāgot tulkojumus GoIntoTranslationMenuToChangeThis=Taustiņam ir atrasts tulkojums ar šo kodu. Lai mainītu šo vērtību, jums ir jārediģē no Mājas-Iestatījumi-tulkošana. WarningSettingSortOrder=Brīdinājums, noklusējuma rūtiņu secības iestatīšana var radīt tehnisku kļūdu, apmeklējot saraksta lapu, ja lauks nav nezināma lauka. Ja rodas šāda kļūda, atgriezieties šajā lapā, lai noņemtu noklusējuma kārtošanas secību un atjaunotu noklusējuma darbību. Field=Lauks @@ -645,9 +647,9 @@ Module2400Name=Pasākumi / darba kārtība Module2400Desc=Sekojiet notikumiem. Reģistrējiet automātiskos notikumus izsekošanas nolūkos vai ierakstiet manuālos notikumus vai sanāksmes. Tas ir galvenais modulis labam klientu vai pārdevēju attiecību pārvaldībai. Module2500Name=DMS / ECM Module2500Desc=Dokumentu vadības sistēma / elektroniskā satura vadība. Jūsu radīto vai saglabāto dokumentu automātiska organizēšana. Kopīgojiet tos pēc vajadzības. -Module2600Name=API/tīmekļa servera pakalpojumi (SOAP serveris) +Module2600Name=API/tīmekļa pakalpojumi (SOAP serveris) Module2600Desc=Iespējot Dolibarr SOAP serveri, kas nodrošina API pakalpojumus -Module2610Name=API/Web services (REST server) +Module2610Name=API/tīmekļa pakalpojumi (REST serveris) Module2610Desc=Enable the Dolibarr REST server providing API services Module2660Name=Izsaukt Web pakalpojumu (SOAP klients) Module2660Desc=Iespējot Dolibarr tīmekļa pakalpojumu klientu (var izmantot datu / pieprasījumu virzīšanai uz ārējiem serveriem. Pašlaik tiek atbalstīti tikai pirkuma pasūtījumi.) @@ -698,6 +700,7 @@ Module62000Name=Inkoterms Module62000Desc=Pievienojiet funkcijas, lai pārvaldītu Incoterms Module63000Name=Resursi Module63000Desc=Pārvaldiet resursus (printerus, automašīnas, telpas, ...), lai piešķirtu notikumiem +Module94160Name=Receptions Permission11=Lasīt klientu rēķinus Permission12=Izveidot / mainīt klientu rēķinus Permission13=Nederīgi klientu rēķini @@ -714,6 +717,7 @@ Permission27=Dzēst komerciālos priekšlikumus Permission28=Eksportēt tirdzniecības priekšlikumus Permission31=Lasīt produktus Permission32=Izveidot / mainīt produktus +Permission33=Izlasiet produktu cenas Permission34=Dzēst produktus Permission36=Skatīt/vadīt slēptos produktus Permission38=Eksportēt produktus @@ -739,6 +743,7 @@ Permission79=Izveidot/mainīt abonementus Permission81=Lasīt klientu pasūtījumus Permission82=Izveidot/mainīt klientu pasūtījumus Permission84=Apstiprināt klientu pasūtījumus +Permission85=Ģenerējiet pārdošanas pasūtījumu dokumentus Permission86=Sūtīt klientu pasūtījumus Permission87=Slēgt klientu pasūtījumus Permission88=Atcelt klientu pasūtījumus @@ -813,7 +818,7 @@ Permission221=Lasīt emailings Permission222=Izveidot/mainīt e-pasta (tēmu, saņēmējus ...) Permission223=Apstiprināt emailings (ļauj sūtīt) Permission229=Dzēst emailings -Permission237=Skatīt saņēmējiem un info +Permission237=Skatīt saņēmējus un info Permission238=Manuāli sūtīt sūtījumus Permission239=Dzēst sūtījumus pēc apstiprināšanas, vai jānosūta Permission241=Lasīt sadaļas @@ -840,9 +845,9 @@ Permission286=Eksportēt kontaktus Permission291=Skatīt tarifus Permission292=Iestatiet atļaujas tarifiem Permission293=Mainīt klienta tarifus -Permission300=Lasīt svītrkodus -Permission301=Izveidojiet/labojiet svītrkodus -Permission302=Svītrkoda dzēšana +Permission301=Ģenerējiet svītrkodu PDF lapas +Permission304=Izveidojiet/labojiet svītrkodus +Permission305=Svītrkoda dzēšana Permission311=Lasīt pakalpojumus Permission312=Piešķirt pakalpojuma/abonēšanas līgumu Permission331=Lasīt grāmatzīmes @@ -874,6 +879,7 @@ Permission525=Piekļuves kredīta kalkulators Permission527=Eksportēt kredītus Permission531=Lasīt pakalpojumus Permission532=Izveidot/mainīt pakalpojumus +Permission533=Izlasiet pakalpojumu cenas Permission534=Dzēst pakalpojumus Permission536=Skatīt/vadīt slēptos pakalpojumus Permission538=Eksportēt pakalpojumus @@ -968,13 +974,14 @@ Permission3301=Ģenerējiet jaunus moduļus Permission4001=Izlasiet prasmes/darbu/amatu Permission4002=Izveidot/mainīt prasmes/darbu/amatu Permission4003=Dzēst prasmi/darbu/amatu -Permission4020=Lasīt vērtējumus -Permission4021=Izveidojiet/pārveidojiet savu vērtējumu -Permission4022=Apstipriniet novērtējumu -Permission4023=Dzēst novērtējumu -Permission4030=Skatiet salīdzināšanas izvēlni +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Izlasiet personisko informāciju Permission4032=Uzrakstiet personisko informāciju +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Lasīt tīmekļa vietnes saturu Permission10002=Izveidot / mainīt vietnes saturu (html un javascript saturu) Permission10003=Izveidojiet / modificējiet vietnes saturu (dinamisko php kodu). Bīstami, tie ir jārezervē ierobežotiem izstrādātājiem. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Aktīvu atsavināšanas veids TypeOfUnit=Vienības veids SetupSaved=Iestatījumi saglabāti SetupNotSaved=Iestatīšana nav saglabāta +OAuthServiceConfirmDeleteTitle=Dzēst OAuth ierakstu +OAuthServiceConfirmDeleteMessage=Vai tiešām vēlaties dzēst šo OAuth ierakstu? Tiks dzēsti arī visi tam esošie marķieri. +ErrorInEntryDeletion=Ieraksta dzēšanas kļūda +EntryDeleted=Ieraksts izdzēsts BackToModuleList=Atpakaļ uz moduļu sarakstu BackToDictionaryList=Atpakaļ uz vārdnīcu sarakstu TypeOfRevenueStamp=Nodokļu zīmoga veids @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Konfigurācijas konstantes vērtība ConstantIsOn=Iespējota opcija %s NbOfDays=Dienu skaits AtEndOfMonth=mēneša beigās -CurrentNext=Pašreizējais / nākamais +CurrentNext=Noteikta diena mēnesī Offset=Kompensācija AlwaysActive=Vienmēr aktīvs Upgrade=Atjaunināt @@ -1235,11 +1246,13 @@ BrowserName=Pārlūkprogrammas nosaukums BrowserOS=Pārlūkprogrammas OS ListOfSecurityEvents=Saraksts ar Dolibarr drošības pasākumiem SecurityEventsPurged=Drošības pasākumi dzēsti +TrackableSecurityEvents=Izsekojami drošības notikumi LogEventDesc=Iespējot konkrētu drošības notikumu reģistrēšanu. Administratori reģistrē izvēlni %s - %s . Brīdinājums: šī funkcija datu bāzē var radīt lielu datu apjomu. AreaForAdminOnly=Iestatīšanas parametrus var iestatīt tikai administratora lietotāji . SystemInfoDesc=Sistēmas informācija ir dažādi tehniskā informācija jums tikai lasīšanas režīmā un redzama tikai administratoriem. SystemAreaForAdminOnly=Šī sadaļa ir pieejama tikai administratora lietotājiem. Dolibarr lietotāja atļaujas nevar mainīt šo ierobežojumu. CompanyFundationDesc=Rediģējiet sava uzņēmuma / organizācijas informāciju. Kad tas ir izdarīts, noklikšķiniet uz pogas "%s" lapas apakšā. +MoreNetworksAvailableWithModule=Iespējojot moduli "Sociālie tīkli", var būt pieejami vairāk sociālo tīklu. AccountantDesc=Ja jums ir ārējais grāmatvedis / grāmatvedis, varat rediģēt šeit savu informāciju. AccountantFileNumber=Grāmatveža kods DisplayDesc=Šeit var mainīt parametrus, kas ietekmē lietojumprogrammas izskatu un noformējumu. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Jums ir palaist šo komandu no YourPHPDoesNotHaveSSLSupport=SSL funkcijas, kas nav pieejama jūsu PHP DownloadMoreSkins=Vairāki izskati lejupielādei SimpleNumRefModelDesc=Atgriež atsauces numuru formātā %syymm-nnnn, kur yy ir gads, mm ir mēnesis un nnnn ir secīgs automātiski palielināms skaitlis bez atiestatīšanas +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Atgriež atsauces numuru formātā %s-nnnn, kur nnnn ir secīgs automātiski pieaugošs skaitlis bez atiestatīšanas ShowProfIdInAddress=Parādīt profesionālo ID ar adresēm ShowVATIntaInAddress=Paslēpt Kopienas iekšējo PVN numuru @@ -1376,7 +1391,7 @@ GetBarCode=Iegūt svītrukodu NumberingModules=Numerācijas modeļi DocumentModules=Dokumentu modeļi ##### Module password generation -PasswordGenerationStandard=Atgrieziet paroli, kas ģenerēta saskaņā ar iekšējo Dolibarr algoritmu: %s rakstzīmes, kas satur kopīgus numurus un rakstzīmes mazajiem burtiem. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Neiesakām ģenerētu paroli. Parole jāieraksta manuāli. PasswordGenerationPerso=Return a password according to your personally defined configuration. SetupPerso=Saskaņā ar jūsu konfigurāciju @@ -1430,6 +1445,10 @@ SuppliersPayment=Pārdevēja maksājumi SupplierPaymentSetup=Pārdevēja maksājumu iestatīšana InvoiceCheckPosteriorDate=Pirms apstiprināšanas pārbaudiet ražošanas datumu InvoiceCheckPosteriorDateHelp=Rēķina apstiprināšana būs aizliegta, ja tā datums ir agrāks par pēdējā tāda paša veida rēķina datumu. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Commercial priekšlikumi modulis uzstādīšana ProposalsNumberingModules=Komerciālie priekšlikumu numerācijas modeļi @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Ūdenszīme uz līgumu projektiem (nav, ja tukšs ##### Members ##### MembersSetup=Dalībnieku moduļa uzstādīšana MemberMainOptions=Galvenās iespējas +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Pārvaldīt Pieteikšanos katram dalībniekam AdherentMailRequired=Lai izveidotu jaunu dalībnieku, nepieciešams e-pasts MemberSendInformationByMailByDefault=Rūtiņu, lai nosūtītu pasta apstiprinājums locekļiem (validāciju vai jauns abonements) ir ieslēgts pēc noklusējuma MemberCreateAnExternalUserForSubscriptionValidated=Katram apstiprinātam jaunam dalībnieka abonementam izveidojiet ārēju lietotāja pieteikuminformāciju -VisitorCanChooseItsPaymentMode=Apmeklētājs var izvēlēties no pieejamiem maksājumu veidiem +VisitorCanChooseItsPaymentMode=Apmeklētājs var izvēlēties kādu no pieejamajiem maksāšanas veidiem MEMBER_REMINDER_EMAIL=Iespējot automātisku atgādinājumu pa e-pastu par beidzies abonementi. Piezīme. Modulim %s jābūt iespējotai un pareizi iestatītai, lai nosūtītu atgādinājumus. MembersDocModules=Dokumentu veidnes dokumentiem, kas ģenerēti no dalībnieku ieraksta ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Aktivizēt uzlabotos redaktoru: FCKeditorForNotePublic=WYSIWIG elementu lauka "publiskās piezīmes" izveide/izdošana FCKeditorForNotePrivate=WYSIWIG elementu lauka "privātās piezīmes" izveide/izdošana FCKeditorForCompany=WYSIWIG elementu (izņemot produktus/pakalpojumus) lauka apraksta izveide/izdevums -FCKeditorForProduct=WYSIWIG produktu/pakalpojumu lauka apraksta izveide/izdevums -FCKeditorForProductDetails=WYSIWIG produktu detaļu līniju izveide / izdevums visām vienībām (priekšlikumi, pasūtījumi, rēķini utt.). Brīdinājums: Šīs opcijas izmantošana šajā gadījumā nav ieteicama, jo, veidojot PDF failus, tas var radīt problēmas ar īpašām rakstzīmēm un lapu formatēšanu. +FCKeditorForProductDetails=WYSIWIG produktu aprakstu vai rindu izveide/izdošana objektiem (priekšlikumu rindas, pasūtījumi, rēķini utt...). +FCKeditorForProductDetails2=Brīdinājums. Šīs opcijas izmantošana šajā gadījumā nav nopietni ieteicama, jo, veidojot PDF failus, tas var radīt problēmas ar speciālajām rakstzīmēm un lappušu formatējumu. FCKeditorForMailing= WYSIWYG izveide/ izdevums masveida emailings (Tools-> e-pastu) FCKeditorForUserSignature=WYSIWYG izveide/labošana lietotāja paraksta FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Izvēlne administrators, kur rādīt jaunu izvēlni DetailMenuModule=Moduļa nosaukums, ja izvēlnes ierakstam nāk no moduļa DetailType=Izvēlnes veids (augšā vai pa kreisi) DetailTitre=Izvēlne etiķete vai etiķete kods tulkošanai -DetailUrl=URL, kur izvēlne nosūtīsim jums (Absolūtais URL saite vai ārējās saites ar http://) +DetailUrl=URL, uz kuru izvēlne jums sūta (relatīvā URL saite vai ārējā saite ar https://) DetailEnabled=Nosacījums, lai parādītu vai ne ierakstu DetailRight=Nosacījums, lai parādītu neatļautās izvēlnes pelēkas DetailLangs=Lang faila nosaukumu etiķetes kodu tulkošanai @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Krājumu samazinājums POS nav sader CashDeskYouDidNotDisableStockDecease=Veicot pārdošanu no pārdošanas vietām, jūs neesat atspējojis krājumu samazināšanos. Tādēļ ir vajadzīga noliktava. CashDeskForceDecreaseStockLabel=Bija spiests samazināt partiju produktu krājumus. CashDeskForceDecreaseStockDesc=Vispirms samaziniet tos pēc vecākajiem ēdināšanas un pārdošanas datumiem. -CashDeskReaderKeyCodeForEnter=Svītrkodu lasītājā definētā atslēgas kods “Enter” (piemērs: 13) +CashDeskReaderKeyCodeForEnter=Atslēga ASCII kods "Enter", kas definēts svītrkoda lasītājā (piemērs: 13) ##### Bookmark ##### BookmarkSetup=Grāmatzīmju moduļa iestatīšana BookmarkDesc=Šis modulis ļauj pārvaldīt grāmatzīmes. Jūs varat pievienot īsceļus jebkurai Dolibarr lapai vai ārējām tīmekļa vietnēm kreisajā izvēlnē. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Pārdevēja rēķinu numerācijas modeļi IfSetToYesDontForgetPermission=Ja ir iestatīta vērtība, kas nav nulles vērtība, neaizmirstiet atļaut grupām vai lietotājiem, kuriem atļauts veikt otro apstiprinājumu ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP MaxMind moduļa iestatīšana -PathToGeoIPMaxmindCountryDataFile=Ceļš uz failu, kas satur Maxmind ip tulkojumu uz valsti.
    Piemēri:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Ceļš uz failu, kurā ir Maxmind ip, uz valsts tulkojumu NoteOnPathLocation=Ņemiet vērā, ka jūsu ip uz valsts datu failā jābūt iekšā direktoriju jūsu PHP var lasīt (uz Jūsu PHP open_basedir iestatīšanu un filesystem atļaujas). YouCanDownloadFreeDatFileTo=Jūs varat lejupielādēt bezmaksas demo versiju MaxMind GeoIP valsts failu no %s. YouCanDownloadAdvancedDatFileTo=Jūs varat arī lejupielādēt pilnīgāku versiju, ar jaunumiem, no MaxMind GeoIP valsts failu no %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Veidnis, lai izveidotu datu bāzes dublējuma failu BackupZipWizard=Vednis, lai izveidotu dokumentu arhīva direktoriju SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=Šī iemesla dēļ šeit aprakstītais process ir manuāls process, kurā var veikt tikai priviliģēts lietotājs. +InstallModuleFromWebHasBeenDisabledContactUs=Ārējo moduļu vai dinamisko vietņu instalēšana vai izstrāde no lietojumprogrammas pašlaik ir bloķēta drošības nolūkos. Lūdzu, sazinieties ar mums, ja nepieciešams iespējot šo funkciju. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Lai instalētu vai izveidotu ārēju moduli no lietojumprogrammas, moduļa faili jāiegādājas direktorijā %s . Lai šo direktoriju apstrādātu Dolibarr, jums ir jāiestata conf / conf.php , lai pievienotu 2 direktīvu līnijas:
    $ dolibarr_main_url_root_alt = "/ custom"; < br> $ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Nospiediet CTRL + F5 uz tastatūras vai dzēsiet pārl NotSupportedByAllThemes=Darbosies ar galvenajām tēmām, to nevar atbalstīt ārējās tēmas BackgroundColor=Fona krāsa TopMenuBackgroundColor=Fona krāsa augšējai izvēlnei -TopMenuDisableImages=Slēpt attēlus augšējā izvēlnē +TopMenuDisableImages=Ikona vai teksts augšējā izvēlnē LeftMenuBackgroundColor=Fona krāsa kreisajai izvēlnei BackgroundTableTitleColor=Fona krāsa tabulas virsraksta līnijai BackgroundTableTitleTextColor=Teksta krāsa tabulas virsraksta rindai @@ -1949,7 +1970,7 @@ EnterAnyCode=Šajā laukā ir norāde, lai identificētu līniju. Ievadiet jebku Enter0or1=Ievadiet 0 vai 1 UnicodeCurrency=Ievadiet šeit starp aplikācijām, baitu skaitļu sarakstu, kas attēlo valūtas simbolu. Piemēram: attiecībā uz $ ievadiet [36] - Brazīlijas reālajam R $ [82,36] - par € ievadiet [8364] ColorFormat=RGB krāsa ir HEX formātā, piemēram: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Ikonas nosaukums formātā:
    - image.png attēla failam pašreizējā motīva direktorijā
    - image.png@module, ja fails ir moduļa direktorijā /img/
    — fonwtawesome_xxx_fa_color_size FontAwesome fa-xxx attēlam (ar prefiksu, krāsu un izmēru komplektu) PositionIntoComboList=Līnijas novietojums kombinētajos sarakstos SellTaxRate=Pārdošanas nodokļa likme RecuperableOnly=Jā par PVN "Neuztverams, bet atgūstams", kas paredzēts dažai Francijas valstij. Uzturiet vērtību "Nē" visos citos gadījumos. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Pirkuma pasūtījumi MailToSendSupplierInvoice=Piegādātāja rēķini MailToSendContract=Līgumi MailToSendReception=Pieņemšanas +MailToExpenseReport=Izdevumu atskaites MailToThirdparty=Trešās puses MailToMember=Dalībnieki MailToUser=Lietotāji @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Labā puse PDF failā MAIN_PDF_MARGIN_TOP=Galvene PDF failā MAIN_PDF_MARGIN_BOTTOM=Kājene PDF failā MAIN_DOCUMENTS_LOGO_HEIGHT=Logotipa augstums PDF formātā +DOC_SHOW_FIRST_SALES_REP=Parādiet pirmo tirdzniecības pārstāvi MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Pievienojiet attēla kolonnu priekšlikuma rindām MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Kolonnas platums, ja līnijām ir pievienots attēls MAIN_PDF_NO_SENDER_FRAME=Slēpt adresāta rāmja robežas @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Noņemt īpašās rakstzīmes COMPANY_AQUARIUM_CLEAN_REGEX=Regex filtrs tīrajai vērtībai (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filtrs, lai notīrītu vērtību (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Dublikāts nav atļauts +RemoveSpecialWords=Izveidojot klientu vai piegādātāju apakškontus, notīriet noteiktus vārdus +RemoveSpecialWordsHelp=Pirms klienta vai piegādātāja konta aprēķināšanas norādiet vārdus, kas jātīra. Lieto ";" starp katru vārdu GDPRContact=Datu aizsardzības inspektors (DPO, datu konfidencialitāte vai GDPR kontakts) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Ja glabājat personas datus savā Informācijas sistēmā, šeit varat nosaukt kontaktpersonu, kas ir atbildīga par Vispārīgo datu aizsardzības regulu HelpOnTooltip=Palīdzības teksts tiek parādīts rīka padomā HelpOnTooltipDesc=Ievietojiet tekstu vai tulkošanas atslēgu šeit, lai teksts tiktu rādīts rīkā, kad šis lauks parādās formā YouCanDeleteFileOnServerWith=Šo failu var dzēst serverī ar komandrindu:
    %s @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Piezīme. Izvēlnē %s - %s izvēlētā pārdošanas nodokļa vai SwapSenderAndRecipientOnPDF=Pārsūtīt sūtītāja un adresāta adreses pozīciju PDF dokumentos FeatureSupportedOnTextFieldsOnly=Brīdinājums, funkcija tiek atbalstīta tikai teksta laukos un kombinētajos sarakstos. Lai aktivizētu šo funkciju, ir jāiestata arī URL parametrs action = create vai action = edit. VAI lapas nosaukumam jābeidzas ar “new.php”. EmailCollector=E-pasta savācējs +EmailCollectors=E-pasta kolekcionāri EmailCollectorDescription=Pievienojiet ieplānoto darbu un iestatīšanas lapu, lai regulāri skenētu e-pasta kastes (izmantojot IMAP protokolu) un ierakstītu savā pieteikumā saņemtos e-pasta ziņojumus pareizajā vietā un / vai automātiski izveidotu ierakstus (piemēram, vadus). NewEmailCollector=Jauns e-pasta savācējs EMailHost=E-pasta IMAP serveris +EMailHostPort=E-pasta IMAP servera ports +loginPassword=Pieslēgšanās parole +oauthToken=Oauth2 pilnvara +accessType=Piekļuves veids +oauthService=Oauth pakalpojums +TokenMustHaveBeenCreated=Ir jābūt iespējotam modulim OAuth2 un jābūt izveidotam oauth2 pilnvarai ar pareizām atļaujām (piemēram, tvērums "gmail_full" ar OAuth pakalpojumam Gmail). MailboxSourceDirectory=Pastkastes avota katalogs MailboxTargetDirectory=Pastkastes mērķa direktorija EmailcollectorOperations=Darbi, ko veic savācējs EmailcollectorOperationsDesc=Darbības tiek veiktas no augšas uz leju secībā MaxEmailCollectPerCollect=Maksimālais savākto e-pasta ziņojumu skaits +TestCollectNow=Testa savākšana CollectNow=Savākt tagad ConfirmCloneEmailCollector=Vai tiešām vēlaties klonēt e-pasta vācēju %s? DateLastCollectResult=Pēdējā savākšanas mēģinājuma datums DateLastcollectResultOk=Pēdējo savākšanas panākumu datums LastResult=Jaunākais rezultāts EmailCollectorHideMailHeaders=Neiekļaujiet e-pasta galvenes saturu apkopoto e-pastu saglabātajā saturā -EmailCollectorHideMailHeadersHelp=Ja tas ir iespējots, e-pasta galvenes netiek pievienotas e-pasta satura beigās, kas tiek saglabāts kā notikumi. +EmailCollectorHideMailHeadersHelp=Ja tas ir iespējots, e-pasta galvenes netiek pievienotas e-pasta satura beigās, kas tiek saglabāts kā dienas kārtības notikums. EmailCollectorConfirmCollectTitle=E-pasts apkopo apstiprinājumu EmailCollectorConfirmCollect=Vai vēlaties vadīt šo kolekcionāru tagad? EmailCollectorExampleToCollectTicketRequestsDesc=Apkopojiet e-pasta ziņojumus, kas atbilst dažiem noteikumiem, un automātiski izveidojiet biļeti (jābūt iespējotai moduļa biļetei) ar e-pasta informāciju. Varat izmantot šo savācēju, ja sniedzat atbalstu pa e-pastu, tāpēc jūsu biļešu pieprasījums tiks automātiski ģenerēts. Aktivizējiet arī Collect_Responses, lai savāktu klienta atbildes tieši biļešu skatā (jums ir jāatbild no Dolibarr). EmailCollectorExampleToCollectTicketRequests=Biļešu pieprasījuma apkopošanas piemērs (tikai pirmā ziņa) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Skenējiet pastkastes direktoriju "Nosūtītie", lai atrastu e-pasta ziņojumus, kas tika nosūtīti kā atbilde uz citu e-pasta ziņojumu tieši no jūsu e-pasta programmatūras, nevis no Dolibarr. Ja šāds e-pasts tiek atrasts, atbildes notikums tiek ierakstīts Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Piemērs e-pasta atbilžu apkopošanai, kas nosūtītas no ārējas e-pasta programmatūras -EmailCollectorExampleToCollectDolibarrAnswersDesc=Apkopojiet visus e-pasta ziņojumus, kas ir atbilde uz e-pasta ziņojumu, kas nosūtīts no jūsu pieteikuma. Notikums (jābūt iespējotam moduļa darba kārtībai) ar e-pasta atbildi tiks ierakstīts pareizajā vietā. Piemēram, ja no lietojumprogrammas pa e-pastu nosūtāt komerciālu piedāvājumu, pasūtījumu, rēķinu vai ziņojumu par biļeti un klients atbild uz jūsu e-pastu, sistēma automātiski uztvers atbildi un pievienos to jūsu ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Apkopojiet visus e-pasta ziņojumus, kas ir atbilde uz e-pasta ziņojumu, kas nosūtīts no jūsu pieteikuma. Notikums (jābūt iespējotam moduļa darba kārtībai) ar e-pasta atbildi tiks ierakstīts pareizajā vietā. Piemēram, ja no lietojumprogrammas e-pastā nosūtāt komerciālu piedāvājumu, pasūtījumu, rēķinu vai biļetes ziņojumu un saņēmējs atbild uz jūsu e-pastu, sistēma automātiski uztvers atbildi un pievienos to jūsu ERP. EmailCollectorExampleToCollectDolibarrAnswers=Piemērs, kurā apkopoti visi ienākošie ziņojumi, kas ir atbildes uz ziņojumiem, kas nosūtīti no Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Apkopojiet e-pasta ziņojumus, kas atbilst dažiem noteikumiem, un automātiski izveidojiet potenciālo pirkumu (jābūt iespējotam moduļa projektam) ar e-pasta informāciju. Varat izmantot šo savācēju, ja vēlaties sekot savai vadībai, izmantojot moduli Projekts (1 potenciālais pirkums = 1 projekts), tāpēc jūsu potenciālie pirkumi tiks ģenerēti automātiski. Ja ir iespējots arī savācējs Collect_Responses, sūtot e-pastu no saviem potenciālajiem pirkumiem, priekšlikumiem vai jebkura cita objekta, jūs varat redzēt arī savu klientu vai partneru atbildes tieši lietojumprogrammā.
    Piezīme. Šajā sākotnējā piemērā tiek ģenerēts potenciālā pirkuma nosaukums, ieskaitot e-pastu. Ja trešo pusi nevar atrast datu bāzē (jauns klients), potenciālais pirkums tiks pievienots trešajai pusei ar ID 1. EmailCollectorExampleToCollectLeads=Potenciālo pirkumu apkopošanas piemērs @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Savāciet e-pasta ziņojumus, EmailCollectorExampleToCollectJobCandidatures=Piemērs e-pastā saņemto darba kandidatūru apkopošanai NoNewEmailToProcess=Nav apstrādāts jauns e-pasts (atbilstošie filtri) NothingProcessed=Nekas nav paveikts -XEmailsDoneYActionsDone=%s kvalificēti e-pasta ziņojumi, %s veiksmīgi apstrādāti e-pasta ziņojumi (par %s ierakstu / veiktajām darbībām) +XEmailsDoneYActionsDone=%s e-pasta ziņojumi ir iepriekš kvalificēti, %s e-pasta ziņojumi ir veiksmīgi apstrādāti (par %s ierakstu/darbības veiktas) RecordEvent=Ierakstiet notikumu dienas kārtībā (ar veidu E-pasts nosūtīts vai saņemts) CreateLeadAndThirdParty=Izveidojiet potenciālo pirkumu (un, ja nepieciešams, trešo pusi) CreateTicketAndThirdParty=Izveidojiet biļeti (saistītu ar trešo pusi, ja trešā puse tika ielādēta ar iepriekšējo darbību vai tika uzminēta no izsekotāja e-pasta galvenē, bez trešās puses citādi) @@ -2105,14 +2138,14 @@ CreateCandidature=Izveidot darba pieteikumu FormatZip=Pasta indekss MainMenuCode=Izvēlnes ievades kods (mainmenu) ECMAutoTree=Rādīt automātisko ECM koku -OperationParamDesc=Definējiet noteikumus, kas jāizmanto, lai iegūtu vai iestatītu vērtības.
    Piemērs darbībām, kurām nepieciešams izvilkt nosaukumu no e-pasta tēmas:
    name=EXTRACT:SUBJECT:Ziņojums no uzņēmuma ([^\n] *)
    Piemērs darbībām, kas rada objekti:
    objproperty1 = SET: vērtība, kas noteikta
    objproperty2 = SET: vērtība, ieskaitot vērtības __objproperty1__
    objproperty3 = SETIFEMPTY: vērtība, ko izmanto, ja objproperty3 jau nav definēts
    objproperty4 = ekstrakts: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:s(uzņēmums [^\\s]*)

    Izmantojiet ; char kā atdalītājs, lai iegūtu vai iestatītu vairākas īpašības. +OperationParamDesc=Definējiet noteikumus, kas jāizmanto, lai iegūtu dažus datus vai iestatītu vērtības, ko izmantot darbībai.

    Piemērs uzņēmuma nosaukuma izvilkšanai no e-pasta tēmas pagaidu mainīgajā:
    tmp_var=EXTRACT:SUBJECT:Ziņojums no uzņēmuma ([^\n]*)

    Piemēri izveidojamā objekta rekvizītu iestatīšanai:
    objproperty1=SET:a cietā kodēta vērtība a0334 uzņēmuma nosaukums ir\\s([^\\s]*)

    Izmantojiet ; char kā atdalītājs, lai iegūtu vai iestatītu vairākas īpašības. OpeningHours=Darba laiks OpeningHoursDesc=Ievadiet šeit sava uzņēmuma pastāvīgo darba laiku. ResourceSetup=Resursu moduļa konfigurēšana UseSearchToSelectResource=Izmantojiet meklēšanas formu, lai izvēlētos resursu (nevis nolaižamo sarakstu). DisabledResourceLinkUser=Atspējot funkciju, lai resursus saistītu ar lietotājiem DisabledResourceLinkContact=Atspējot funkciju, lai resursu saistītu ar kontaktpersonām -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Aizliegt izmantot vienu un to pašu resursu vienlaikus darba kārtībā ConfirmUnactivation=Apstipriniet moduļa atiestatīšanu OnMobileOnly=Tikai mazam ekrānam (viedtālrunim) DisableProspectCustomerType=Atspējojiet trešās puses veidu “Persona + klients” (tātad trešajai pusei ir jābūt “Persona” vai “Klients”, taču tā nevar būt abas) @@ -2167,6 +2200,10 @@ EmailTemplate=E-pasta veidne EMailsWillHaveMessageID=E-pastam būs tags “Atsauces”, kas atbilst šai sintaksei PDF_SHOW_PROJECT=Parādīt projektu dokumentā ShowProjectLabel=Projekta etiķete +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Iekļaujiet aizstājvārdu trešās puses nosaukumā +THIRDPARTY_ALIAS=Trešās puses nosaukums — trešās puses aizstājvārds +ALIAS_THIRDPARTY=Trešās puses aizstājvārds — trešās puses nosaukums +PDFIn2Languages=Rādīt etiķetes PDF formātā 2 dažādās valodās PDF_USE_ALSO_LANGUAGE_CODE=Ja vēlaties, lai daži PDF faili tiktu dublēti 2 dažādās valodās tajā pašā ģenerētajā PDF failā, jums šeit ir jāiestata šī otrā valoda, lai ģenerētais PDF saturētu vienā un tajā pašā lappusē 2 dažādas valodas, vienu izvēloties, ģenerējot PDF, un šo ( tikai dažas PDF veidnes to atbalsta). Vienā PDF formātā atstājiet tukšumu 1 valodā. PDF_USE_A=Ģenerējiet PDF dokumentus PDF/A formātā, nevis noklusējuma formātā PDF FafaIconSocialNetworksDesc=Šeit ievadiet FontAwesome ikonas kodu. Ja jūs nezināt, kas ir FontAwesome, varat izmantot vispārīgo vērtību fa-adrešu grāmata. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnerība AGENDA_EVENT_DEFAULT_STATUS=Noklusējuma notikuma statuss, veidojot notikumu no formas YouShouldDisablePHPFunctions=Jums vajadzētu atspējot PHP funkcijas IfCLINotRequiredYouShouldDisablePHPFunctions=PHP funkcijas ir jāatspējo, izņemot gadījumus, kad sistēmas komandas ir jāpalaiž pielāgotā kodā -PHPFunctionsRequiredForCLI=Apvalka vajadzībām (piemēram, ieplānota darba dublēšana vai anitivurs programmas palaišana) jums ir jāsaglabā PHP funkcijas +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Jūsu saknes direktorijā netika atrasti ierasto failu vai direktoriju kopējās programmas (labi) RecommendedValueIs=Ieteicams: %s Recommended=Ieteicams NotRecommended=Nav ieteicams -ARestrictedPath=Kāds ierobežots ceļš +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Pārbaudiet, vai nav atjaunināti ārējie moduļi CheckForModuleUpdateHelp=Šī darbība izveidos savienojumu ar ārējo moduļu redaktoriem, lai pārbaudītu, vai ir pieejama jauna versija. ModuleUpdateAvailable=Ir pieejams atjauninājums @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Ārējiem moduļiem nav atrasti atjauninājumi SwaggerDescriptionFile=Swagger API apraksta fails (piemēram, lietošanai ar pārorientēšanu) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Jūs iespējojāt novecojušu WS API. Tā vietā jums vajadzētu izmantot REST API. RandomlySelectedIfSeveral=Nejauši izvēlēts, ja ir pieejami vairāki attēli +SalesRepresentativeInfo=Priekšlikumiem, Pasūtījumiem, Rēķiniem. DatabasePasswordObfuscated=Datu bāzes parole ir neskaidra konf failā DatabasePasswordNotObfuscated=Datu bāzes parole NAV apmulsināta conf failā APIsAreNotEnabled=API moduļi nav iespējoti @@ -2247,19 +2285,73 @@ LateWarningAfter="Vēls" brīdinājums pēc TemplateforBusinessCards=Veidne vizītkartei dažādos izmēros InventorySetup= Inventāra iestatīšana ExportUseLowMemoryMode=Izmantojiet mazas atmiņas režīmu -ExportUseLowMemoryModeHelp=Izmantojiet mazas atmiņas režīmu, lai izpildītu izgāztuves izpildi (saspiešana tiek veikta caur cauruli, nevis PHP atmiņā). Šī metode neļauj pārbaudīt, vai fails ir pabeigts, un kļūdas ziņojumu nevar ziņot, ja tas neizdodas. -ShowQuickAddLink=Parādiet pogu, lai augšējā labajā izvēlnē ātri pievienotu elementu +ExportUseLowMemoryModeHelp=Izmantojiet mazas atmiņas režīmu, lai ģenerētu izdrukas failu (saspiešana tiek veikta caur cauruli, nevis PHP atmiņā). Šī metode neļauj pārbaudīt, vai fails ir pilnīgs, un kļūdas ziņojumu nevar ziņot, ja tas neizdodas. Izmantojiet to, ja jums nav pietiekami daudz atmiņas kļūdu. + +ModuleWebhookName = Web aizķere +ModuleWebhookDesc = Interfeiss, lai uztvertu dolibarr aktivizētājus un nosūtītu to uz URL +WebhookSetup = Tīmekļa aizķeres iestatīšana +Settings = Iestatījumi +WebhookSetupPage = Web aizķeres iestatīšanas lapa +ShowQuickAddLink=Rādīt pogu, lai ātri pievienotu elementu augšējā labajā izvēlnē + HashForPing=Hash izmantots ping ReadOnlyMode=Instancē ir tikai lasīšanas režīms DEBUGBAR_USE_LOG_FILE=Izmantojiet failu dolibarr.log , lai notvertu žurnālus UsingLogFileShowAllRecordOfSubrequestButIsSlower=Izmantojiet failu dolibarr.log, lai slazdītu žurnālus, nevis reāllaika atmiņu. Tas ļauj noķert visus žurnālus, nevis tikai pašreizējā procesa žurnālu (tātad, ieskaitot ajax apakšpieprasījumu lapas), taču tas padarīs jūsu gadījumu ļoti lēnu. Nav ieteicams. FixedOrPercent=Fiksēts (izmantojiet atslēgvārdu "labots") vai procenti (izmantojiet atslēgvārdu "procenti") -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +DefaultOpportunityStatus=Noklusējuma iespējas statuss (pirmais statuss, kad tiek izveidots potenciālais pirkums) + +IconAndText=Ikona un teksts +TextOnly=Tikai teksts +IconOnlyAllTextsOnHover=Tikai ikona — visi teksti tiek rādīti zem ikonas peles kursora izvēlņu joslā +IconOnlyTextOnHover=Tikai ikona — ikonas teksts tiek parādīts zem ikonas, novietojot peles kursoru uz ikonas +IconOnly=Tikai ikona — teksts tikai rīka padomos +INVOICE_ADD_ZATCA_QR_CODE=Rādīt ZATCA QR kodu rēķinos +INVOICE_ADD_ZATCA_QR_CODEMore=Dažām arābu valstīm šis QR kods ir nepieciešams savos rēķinos +INVOICE_ADD_SWISS_QR_CODE=Rādīt Šveices QR-rēķina kodu uz rēķiniem +INVOICE_SHOW_SHIPPING_ADDRESS=Rādīt piegādes adresi +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligāta pieminēšana Francijai +UrlSocialNetworksDesc=Sociālā tīkla URL saite. Mainīgajai daļai, kas satur sociālā tīkla ID, izmantojiet {socialid}. +IfThisCategoryIsChildOfAnother=Ja šī kategorija ir citas kategorijas bērns +DarkThemeMode=Tumšā motīva režīms +AlwaysDisabled=Vienmēr atspējots +AccordingToBrowser=Saskaņā ar pārlūkprogrammu +AlwaysEnabled=Vienmēr iespējots +DoesNotWorkWithAllThemes=Nedarbosies ar visām tēmām +NoName=Nav vārda +ShowAdvancedOptions= Rādīt papildu opcijas +HideAdvancedoptions= Slēpt papildu opcijas +CIDLookupURL=Modulis nodrošina URL, ko var izmantot ārējs rīks, lai iegūtu trešās puses vai kontaktpersonas vārdu no tā tālruņa numura. Izmantojamais URL ir: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 autentifikācija nav pieejama visiem resursdatoriem, un iepriekš ar OAUTH moduli ir jābūt izveidotam pilnvarai ar pareizajām atļaujām. +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 autentifikācijas pakalpojums +DontForgetCreateTokenOauthMod=Iepriekš ar OAUTH moduli ir jābūt izveidotam pilnvarai ar pareizajām atļaujām +MAIN_MAIL_SMTPS_AUTH_TYPE=Autentifikācijas metode +UsePassword=Izmantojiet paroli +UseOauth=Izmantojiet OAUTH pilnvaru +Images=Attēli +MaxNumberOfImagesInGetPost=Maksimālais attēlu skaits, kas atļauts veidlapā iesniegtajā HTML laukā +MaxNumberOfPostOnPublicPagesByIP=Maksimālais ziņu skaits publiskās lapās ar vienu un to pašu IP adresi mēnesī +CIDLookupURL=Modulis nodrošina URL, ko var izmantot ārējs rīks, lai iegūtu trešās puses vai kontaktpersonas vārdu no tā tālruņa numura. Izmantojamais URL ir: +ScriptIsEmpty=Skripts ir tukšs +ShowHideTheNRequests=Rādīt/slēpt %s SQL pieprasījumu(s) +DefinedAPathForAntivirusCommandIntoSetup=Definējiet pretvīrusu programmas ceļu uz %s +TriggerCodes=Iedarbināmi notikumi +TriggerCodeInfo=Ievadiet šeit aktivizētāja kodu(-us), kam ir jāģenerē tīmekļa pieprasījuma ziņa (ir atļauti tikai ārējie URL). Varat ievadīt vairākus sprūda kodus, atdalot tos ar komatu. +EditableWhenDraftOnly=Ja nav atzīmēta, vērtību var mainīt tikai tad, ja objektam ir melnraksta statuss +CssOnEdit=Css rediģēšanas lapās +CssOnView=Css skata lapās +CssOnList=Css saraksta lapās +HelpCssOnEditDesc=Css, ko izmanto, rediģējot lauku.
    Piemērs: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Css, ko izmanto, apskatot lauku. +HelpCssOnListDesc=Css, ko izmanto, ja lauks atrodas saraksta tabulā.
    Piemērs: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Slēpt pasūtīto daudzumu uz ģenerētajiem pieņemšanas dokumentiem +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Parādiet cenu uz ģenerētajiem pieņemšanas dokumentiem +WarningDisabled=Brīdinājums ir atspējots +LimitsAndMitigation=Piekļuves ierobežojumi un mazināšana +DesktopsOnly=Tikai galddatoriem +DesktopsAndSmartphones=Galddatori un viedtālruņi +AllowOnlineSign=Atļaut tiešsaistes parakstīšanu +AllowExternalDownload=Atļaut ārēju lejupielādi (bez pieteikšanās, izmantojot koplietotu saiti) +DeadlineDayVATSubmission=PVN iesniegšanas termiņš nākamajā mēnesī +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/lv_LV/agenda.lang b/htdocs/langs/lv_LV/agenda.lang index 8ef8b4abce7..3ab5820a015 100644 --- a/htdocs/langs/lv_LV/agenda.lang +++ b/htdocs/langs/lv_LV/agenda.lang @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Dalībnieks %s apstiprināts MemberModifiedInDolibarr=Dalībnieks %s labots MemberResiliatedInDolibarr=Dalībnieks %s ir izbeigts MemberDeletedInDolibarr=Dalībnieks %s dzēsts +MemberExcludedInDolibarr=Dalībnieks %s ir izslēgts MemberSubscriptionAddedInDolibarr=Abonements %s dalībniekam %s pievienots MemberSubscriptionModifiedInDolibarr=Abonements %s biedram %s ir labots MemberSubscriptionDeletedInDolibarr=Abonements %s dalībniekam %s dzēsts @@ -67,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Sūtījums %s dodas atpakaļ uz melnraksta statusu ShipmentDeletedInDolibarr=Sūtījums %s dzēsts ShipmentCanceledInDolibarr=Sūtījums %s atcelts ReceptionValidatedInDolibarr=Reģistrācija %s validēta +ReceptionDeletedInDolibarr=Reception %s deleted ReceptionClassifyClosedInDolibarr=Reģistratūra %s klasificēta kā slēgta OrderCreatedInDolibarr=Pasūtījums %s izveidots OrderValidatedInDolibarr=Pasūtījums %s pārbaudīts @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Pārdevēja rēķins %s nosūtīts pa e-pastu ShippingSentByEMail=Sūtījums %s nosūtīts pa e-pastu ShippingValidated= Sūtījums %s apstiprināts InterventionSentByEMail=Intervence %s nosūtīta pa e-pastu +ProjectSentByEMail=Projekts %s nosūtīts pa e-pastu ProposalDeleted=Piedāvājums dzēsts OrderDeleted=Pasūtījums dzēsts InvoiceDeleted=Rēķins dzēsts @@ -159,6 +162,7 @@ DateActionBegin=Sākuma datums notikumam ConfirmCloneEvent=Vai tiešām vēlaties klonēt notikumu %s ? RepeatEvent=Atkārtot notikumu OnceOnly=Vienreiz +EveryDay=Katru dienu EveryWeek=Katru nedēļu EveryMonth=Katru mēnesi DayOfMonth=Mēneša diena @@ -174,3 +178,4 @@ AddReminder=Izveidojiet automātisku atgādinājumu par šo notikumu ErrorReminderActionCommCreation=Izveidojot atgādinājumu par šo notikumu, radās kļūda BrowserPush=Paziņojums par pārlūkprogrammas uznirstošo logu ActiveByDefault=Pēc noklusējuma iespējots +Until=līdz diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang index 6c1c66f86d1..29553d7e47e 100644 --- a/htdocs/langs/lv_LV/banks.lang +++ b/htdocs/langs/lv_LV/banks.lang @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandāts YourSEPAMandate=Jūsu SEPA mandāts FindYourSEPAMandate=Tas ir jūsu SEPA mandāts, lai pilnvarotu mūsu uzņēmumu veikt tiešā debeta pasūtījumu savai bankai. Atgriezt to parakstu (skenēt parakstīto dokumentu) vai nosūtīt pa pastu uz AutoReportLastAccountStatement=Veicot saskaņošanu, automātiski aizpildiet lauka “bankas izraksta numurs” ar pēdējo izraksta numuru -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=POS skaidras naudas kontrole +NewCashFence=Jauna skaidras naudas kontrole (atvēršana vai aizvēršana) BankColorizeMovement=Krāsojiet kustības BankColorizeMovementDesc=Ja šī funkcija ir iespējota, jūs varat izvēlēties īpašu fona krāsu debeta vai kredīta pārvietošanai BankColorizeMovementName1=Debeta kustības fona krāsa diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index f4a726e5a99..08766f5db6d 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Klientu rēķinu statistika BillsStatisticsSuppliers=Pārdevēju rēķinu statistika DisabledBecauseDispatchedInBookkeeping=Atspējots, jo rēķins tika nosūtīts uzskaites veikšanai DisabledBecauseNotLastInvoice=Atspējots, jo rēķinu nevar izdzēst. Daži rēķini tika reģistrēti pēc šī rēķina, un tas radīs caurumus skaitītājā. +DisabledBecauseNotLastSituationInvoice=Atspējots, jo rēķinu nevar dzēst. Šis rēķins nav pēdējais situācijas rēķinu ciklā. DisabledBecauseNotErasable=Bloķēts, jo nedrīkst dzēst InvoiceStandard=Standarta rēķins InvoiceStandardAsk=Standarta rēķins InvoiceStandardDesc=Šis rēķins veids ir kopīgs rēķins. +InvoiceStandardShort=Standarta InvoiceDeposit=Sākuma iemaksu rēķins InvoiceDepositAsk=Sākuma iemaksu rēķins InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. @@ -24,6 +26,7 @@ InvoiceProForma=Proformas rēķins InvoiceProFormaAsk=Proforma rēķins InvoiceProFormaDesc=Formāta rēķins ir attēls patiesu rēķina, bet nav nekādas grāmatvedības uzskaites vērtības. InvoiceReplacement=Nomaiņas rēķins +InvoiceReplacementShort=Aizstāšana InvoiceReplacementAsk=Nomaiņa rēķins par rēķinu InvoiceReplacementDesc=Rezerves rēķinu izmanto, lai pilnībā aizstātu rēķinu bez maksājuma, kas jau saņemts.

    Piezīme: var nomainīt tikai rēķinus, kuriem nav maksājuma. Ja aizstātais rēķins vēl nav slēgts, tas tiks automātiski aizvērts, lai to atteiktu. InvoiceAvoir=Kredīta piezīme @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Šī daļa jau i ErrorInvoiceIsNotLastOfSameType=Kļūda: rēķina %s datums ir %s. Tāda paša veida rēķiniem (%s) tam ir jābūt vēlākam vai vienādam ar pēdējo datumu. Lūdzu, mainiet rēķina datumu. BillFrom=No BillTo=Kam +ShippingTo=Sūtīt uz ActionsOnBill=Pasākumi attiecībā uz rēķinu RecurringInvoiceTemplate=Veidne / periodiskais rēķins NoQualifiedRecurringInvoiceTemplateFound=Nav atkārtota veidņu rēķina, kas derīga paaudzei. @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=Izvēlētie maksājuma nosac PaymentTypeVIR=Bankas pārskaitījums PaymentTypeShortVIR=Bankas pārskaitījums PaymentTypePRE=Tiešā debeta maksājuma rīkojums +PaymentTypePREdetails=(kontā *-%s) PaymentTypeShortPRE=Debeta maksājuma rīkojums PaymentTypeLIQ=Skaidra nauda PaymentTypeShortLIQ=Skaidra nauda @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Maksājums reģistrēts un rēķins %s iest SendEmailsRemindersOnInvoiceDueDate=Nosūtiet atgādinājumu pa e-pastu par neapmaksātiem rēķiniem MakePaymentAndClassifyPayed=Ierakstiet maksājumu BulkPaymentNotPossibleForInvoice=Lielapjoma maksājums nav iespējams par rēķinu %s (slikts veids vai statuss) +MentionVATDebitOptionIsOn=Iespēja maksāt nodokli, pamatojoties uz debetu +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/lv_LV/bookmarks.lang b/htdocs/langs/lv_LV/bookmarks.lang index 6a5ed291102..be85996b0e2 100644 --- a/htdocs/langs/lv_LV/bookmarks.lang +++ b/htdocs/langs/lv_LV/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Izvēlieties, vai saistītā lap BookmarksManagement=Grāmatzīmju vadība BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Nav definētu grāmatzīmju +NoBookmarkFound=Grāmatzīme nav atrasta diff --git a/htdocs/langs/lv_LV/boxes.lang b/htdocs/langs/lv_LV/boxes.lang index 2615d12ce7b..2fdb12864c5 100644 --- a/htdocs/langs/lv_LV/boxes.lang +++ b/htdocs/langs/lv_LV/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Jaunākie dalībnieku abonementi BoxFicheInter=Jaunākās intervences BoxCurrentAccounts=Atvērto kontu atlikums BoxTitleMemberNextBirthdays=Šī mēneša dzimšanas dienas (dalībnieki) -BoxTitleMembersByType=Locekļi pēc veida +BoxTitleMembersByType=Dalībnieki pēc veida un statusa BoxTitleMembersSubscriptionsByYear=Dalībnieku abonēšana pēc gada BoxTitleLastRssInfos=Jaunākās %s ziņas no %s BoxTitleLastProducts=Produkti / Pakalpojumi: pēdējais %s modificēts @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Piegādātāju pasūtījumi, kas gaida s BoxTitleLastModifiedContacts=Kontakti/adreses: pēdējie %s labotie BoxMyLastBookmarks=Grāmatzīmes: jaunākās %s BoxOldestExpiredServices=Vecākais aktīvais beidzies pakalpojums +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Jaunākie %s vecākie kontakti ar aktīviem derīguma termiņa beigām BoxTitleLastActionsToDo=Jaunākās %s darbības, ko darīt +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Jaunākie %s līgumi, kas tika mainīti BoxTitleLastModifiedDonations=Jaunākie %s ziedojumi, kas tika mainīti BoxTitleLastModifiedExpenses=Jaunākie %s izdevumu pārskati, kas tika mainīti diff --git a/htdocs/langs/lv_LV/cashdesk.lang b/htdocs/langs/lv_LV/cashdesk.lang index c278e21496a..281188962f6 100644 --- a/htdocs/langs/lv_LV/cashdesk.lang +++ b/htdocs/langs/lv_LV/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Kājene AmountAtEndOfPeriod=Summa perioda beigās (diena, mēnesis vai gads) TheoricalAmount=Teorētiskā summa RealAmount=Reālā summa -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Kases aizvēršana +CashFenceDone=Par periodu veikta kases slēgšana NbOfInvoices=Rēķinu skaits Paymentnumpad=Padeves veids maksājuma ievadīšanai Numberspad=Numbers Pad @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =  
    {TN} tagu izmanto, lai pievienotu te TakeposGroupSameProduct=Grupējiet tās pašas produktu līnijas StartAParallelSale=Sāciet jaunu paralēlu izpārdošanu SaleStartedAt=Pārdošana sākās vietnē %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Atverot POS, atveriet uznirstošo logu "Control cash box". +CloseCashFence=Aizveriet naudas kastes kontroli CashReport=Skaidras naudas pārskats MainPrinterToUse=Galvenais izmantojamais printeris OrderPrinterToUse=Pasūtiet printeri izmantošanai @@ -136,3 +136,4 @@ PrintWithoutDetails=Drukāt bez detaļām YearNotDefined=Gads nav noteikts TakeposBarcodeRuleToInsertProduct=Svītrkoda noteikums produkta ievietošanai TakeposBarcodeRuleToInsertProductDesc=Noteikums produkta atsauces + daudzuma izņemšanai no skenēta svītrkoda.
    Ja tas ir tukšs (noklusējuma vērtība), lietojumprogramma izmantos pilnu skenēto svītrkodu, lai atrastu produktu.

    Ja noteikts, sintakse ir:
    ref: NB + qu: NB + QD: NB uc: NB
    kur NB ir rakstzīmju skaits izmantot, lai iegūtu datus no skenētā svītrkodu ar:
    • ref : produkts atsauce
    • qu : daudzumu kopumu, ievietojot objektu (vienības)
    • QD : daudzumu kopumu, ievietojot objektu (decimāldaļskaitlis)
    • otra : citi simboli
    +AlreadyPrinted=Jau izdrukāts diff --git a/htdocs/langs/lv_LV/categories.lang b/htdocs/langs/lv_LV/categories.lang index 8190b86f2e7..8bdbbcf4761 100644 --- a/htdocs/langs/lv_LV/categories.lang +++ b/htdocs/langs/lv_LV/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=This member is not in any tags/categories ContactHasNoCategory=Šī kontaktpersona nav nevienā tagā /sadaļā ProjectHasNoCategory=Šis projekts nav nevienā tagā / kategorijā ClassifyInCategory=Pievienot tagam / kategorijai +RemoveCategory=Noņemt kategoriju NotCategorized=Bez taga / sadaļas CategoryExistsAtSameLevel=Šī sadaļa jau pastāv ar šo ref ContentsVisibleByAllShort=Saturs redzams visiem @@ -67,6 +68,7 @@ StockCategoriesShort=Noliktavas tagi / kategorijas ThisCategoryHasNoItems=Šajā kategorijā nav nevienas preces. CategId=Tag /sadaļas ID ParentCategory=Vecāku atzīme / kategorija +ParentCategoryID=Vecāka taga/kategorijas ID ParentCategoryLabel=Vecāku taga / kategorijas etiķete CatSupList=Pārdevēju tagu / kategoriju saraksts CatCusList=Klientu / potenciālo klientu tagu / kategoriju saraksts @@ -86,7 +88,7 @@ DeleteFromCat=Noņemt no tagiem / kategorijas ExtraFieldsCategories=Papildus atribūti CategoriesSetup=Tagu / kategoriju iestatīšana CategorieRecursiv=Link with parent tag/category automatically -CategorieRecursivHelp=Ja opcija ir ieslēgta, pievienojot produktu apakškategorijai, produkts tiks pievienots arī vecākajai kategorijai. +CategorieRecursivHelp=Ja opcija ir ieslēgta, pievienojot objektu apakškategorijai, objekts tiks pievienots arī vecākkategorijām. AddProductServiceIntoCategory=Add the following product/service AddCustomerIntoCategory=Piešķirt kategoriju klientam AddSupplierIntoCategory=Piešķirt kategoriju piegādātājam @@ -95,7 +97,9 @@ ShowCategory=Show tag/category ByDefaultInList=By default in list ChooseCategory=Izvēlies sadaļu StocksCategoriesArea=Noliktavas kategorijas +TicketsCategoriesArea=Biļešu kategorijas ActionCommCategoriesArea=Pasākumu kategorijas WebsitePagesCategoriesArea=Lapu konteineru kategorijas KnowledgemanagementsCategoriesArea=KM raksts Kategorijas UseOrOperatorForCategories=Kategorijām izmantojiet operatoru “OR” +AddObjectIntoCategory=Pievienojiet objektu kategorijai diff --git a/htdocs/langs/lv_LV/commercial.lang b/htdocs/langs/lv_LV/commercial.lang index 2a5b51abed4..6a093271f08 100644 --- a/htdocs/langs/lv_LV/commercial.lang +++ b/htdocs/langs/lv_LV/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Prospekta statuss DraftPropals=Izstrādā komerciālos priekšlikumus NoLimit=Nav ierobežojuma ToOfferALinkForOnlineSignature=Saite uz tiešsaistes parakstu -WelcomeOnOnlineSignaturePage=Laipni lūdzam lapā, lai pieņemtu komerciālos piedāvājumus no %s -ThisScreenAllowsYouToSignDocFrom=Šis ekrāns ļauj pieņemt un parakstīt vai noraidīt citātu / komerciālu piedāvājumu -ThisIsInformationOnDocumentToSign=Šī ir informācija par dokumentu, kas pieņemams vai noraidāms +WelcomeOnOnlineSignaturePageProposal=Laipni lūdzam lapā, lai pieņemtu komerciālos piedāvājumus no %s +WelcomeOnOnlineSignaturePageContract=Laipni lūdzam %s līguma PDF parakstīšanas lapā +WelcomeOnOnlineSignaturePageFichinter=Laipni lūdzam %s intervences PDF parakstīšanas lapā +ThisScreenAllowsYouToSignDocFromProposal=Šis ekrāns ļauj pieņemt un parakstīt vai atteikties no piedāvājuma/komerciāla piedāvājuma +ThisScreenAllowsYouToSignDocFromContract=Šis ekrāns ļauj tiešsaistē parakstīt līgumu PDF formātā. +ThisScreenAllowsYouToSignDocFromFichinter=Šis ekrāns ļauj tiešsaistē parakstīt iejaukšanos PDF formātā. +ThisIsInformationOnDocumentToSignProposal=Šī ir informācija par dokumentu, kas pieņemams vai noraidāms +ThisIsInformationOnDocumentToSignContract=Šī ir informācija par parakstāmo līgumu +ThisIsInformationOnDocumentToSignFichinter=Šī ir informācija par iejaukšanos, kas jāparaksta SignatureProposalRef=Cenas / komerciālā piedāvājuma parakstīšana %s +SignatureContractRef=Līguma parakstīšana %s +SignatureFichinterRef=Intervences paraksts %s FeatureOnlineSignDisabled=Pirms funkcija tika aktivizēta, funkcija tiešsaistes parakstīšanai ir atspējota vai dokuments ir izveidots diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang index dd2f5268f35..97e724b6359 100644 --- a/htdocs/langs/lv_LV/companies.lang +++ b/htdocs/langs/lv_LV/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Trešo personu būtība NatureOfContact=Kontakta raksturs Address=Adrese State=Valsts / province +StateId=Valsts ID StateCode=Valsts/provinces kods StateShort=Valsts Region=Rajons Region-State=Reģions - valsts Country=Valsts CountryCode=Valsts kods -CountryId=Valsts id +CountryId=Valsts ID Phone=Telefons PhoneShort=Telefons Skype=Skype @@ -105,7 +106,7 @@ WrongSupplierCode=Pārdevēja kods nav derīgs CustomerCodeModel=Klienta koda modelis SupplierCodeModel=Pārdevēja koda modelis Gencod=Svītrkods -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=Svītrkods cenas ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Tirdzniecības reģistrs) ProfId2CM=Id. prof. 2 (nodokļu maksātāja Nr.) -ProfId3CM=Id. prof. 3 (dibināšanas dekrēts) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId3CM=Id. prof. 3 (Izveides dekrēta Nr.) +ProfId4CM=Id. prof. 4 (Depozīta sertifikāta Nr.) +ProfId5CM=Id. prof. 5 (citi) ProfId6CM=- ProfId1ShortCM=Tirdzniecības reģistrs ProfId2ShortCM=Nodokļu maksātājs Nr. -ProfId3ShortCM=Radīšanas dekrēts -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=izveides dekrēta Nr +ProfId4ShortCM=Depozīta sertifikāts Nr. ProfId5ShortCM=Citi ProfId6ShortCM=- ProfId1CO=Prof ID 1 (RUT) @@ -312,11 +313,11 @@ CustomerAbsoluteDiscountShort=Absolūtā atlaide CompanyHasRelativeDiscount=Šim klientam ir pastāvīgā atlaide %s%% CompanyHasNoRelativeDiscount=Šim klientam nav relatīvā atlaide pēc noklusējuma HasRelativeDiscountFromSupplier=Šī pārdevēja noklusējuma atlaide ir %s%% -HasNoRelativeDiscountFromSupplier=Jums nav noklusējuma relatīvās atlaides no šī pārdevēja +HasNoRelativeDiscountFromSupplier=No šī pārdevēja nav noklusējuma relatīvās atlaides CompanyHasAbsoluteDiscount=Šim klientam ir pieejamas atlaides (kredītpiezīmes vai maksājumi) par %s%s CompanyHasDownPaymentOrCommercialDiscount=Šim klientam ir pieejamas atlaides (komerciālie, iemaksātie maksājumi) par %s %s CompanyHasCreditNote=Šim klientam joprojām ir kredīta piezīmes %s %s -HasNoAbsoluteDiscountFromSupplier=Šim pārdevējam nav pieejama atlaide +HasNoAbsoluteDiscountFromSupplier=No šī pārdevēja nav pieejama neviena atlaide/kredīts HasAbsoluteDiscountFromSupplier=No šī pārdevēja ir pieejamas atlaides (kredītkartes vai iemaksas) par šo piegādātāju %s %s HasDownPaymentOrCommercialDiscountFromSupplier=Jums ir pieejamas atlaides (komerciāli, pirmstermiņa maksājumi) par %s %s no šī pārdevēja HasCreditNoteFromSupplier=Jums ir kredīta piezīmes par šo piegādātāju %s%s @@ -443,7 +444,7 @@ AddAddress=Pievienot adresi SupplierCategory=Pārdevēja sadaļa JuridicalStatus200=Neatkarīgs DeleteFile=Izdzēst failu -ConfirmDeleteFile=Vai jūs tiešām vēlaties izdzēst šo failu? +ConfirmDeleteFile=Vai tiešām vēlaties dzēst šo failu %s ? AllocateCommercial=Piešķirts tirdzniecības pārstāvim Organization=Organizācija FiscalYearInformation=Fiskālais gads @@ -497,3 +498,5 @@ RestOfEurope=Pārējā Eiropa (EEK) OutOfEurope=Ārpus Eiropas (EEK) CurrentOutstandingBillLate=Pašreizējais nesamaksātais rēķins ir nokavēts BecarefullChangeThirdpartyBeforeAddProductToInvoice=Esiet piesardzīgs, atkarībā no produkta cenas iestatījumiem, pirms produkta pievienošanas POS, jums jāmaina trešā puse. +EmailAlreadyExistsPleaseRewriteYourCompanyName=e-pasts jau pastāv, lūdzu, pārrakstiet sava uzņēmuma nosaukumu +TwoRecordsOfCompanyName=šim uzņēmumam ir vairāk nekā viens ieraksts, lūdzu, sazinieties ar mums, lai pabeigtu savu partnerības pieprasījumu" diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang index 338d6aff053..6f949a3985f 100644 --- a/htdocs/langs/lv_LV/compta.lang +++ b/htdocs/langs/lv_LV/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Bilance (pirms) Balance=Bilance Debit=Debets Credit=Kredīts +AccountingDebit=Debets +AccountingCredit=Kredīts Piece=Grāmatvedības dok. AmountHTVATRealReceived=Neto savākti AmountHTVATRealPaid=Neto samaksāts @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Apgrozījuma pārskats, kas TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Apgrozījuma pārskats, kas iegūts no pārdošanas nodokļa likmes, nav pieejams. Šis pārskats ir pieejams tikai apgrozījumam rēķinā. CalculationMode=Aprēķinu režīms AccountancyJournal=Grāmatvedības kodu žurnāls -ACCOUNTING_VAT_SOLD_ACCOUNT=Grāmatvedības konts pēc noklusējuma par PVN pārdošanu (tiek izmantots, ja nav definēts, izmantojot PVN vārdnīcas iestatījumus). -ACCOUNTING_VAT_BUY_ACCOUNT=Grāmatvedības konts pēc noklusējuma par PVN pirkumiem (tiek izmantots, ja nav definēts, izmantojot PVN vārdnīcas iestatījumus). -ACCOUNTING_VAT_PAY_ACCOUNT=Grāmatvedības konts pēc noklusējuma PVN maksāšanai -ACCOUNTING_ACCOUNT_CUSTOMER=Grāmatvedības konts, kas tiek izmantots klientu trešajām pusēm +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Īpašais grāmatvedības konts, kas noteikts trešās personas kartē, tiks izmantots tikai pakārtotajam grāmatvedim. Šis tiek izmantots General Ledger un noklusējuma vērtība Subledged grāmatvedībai, ja trešās personas īpašais klientu grāmatvedības konts nav definēts. -ACCOUNTING_ACCOUNT_SUPPLIER=Pārdevēja trešo personu grāmatvedības konts +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Trešās puses kartē noteiktais īpašais grāmatvedības konts tiks izmantots tikai Subledger grāmatvedībai. Tas tiks izmantots galvenajai grāmatai un Subledger grāmatvedības noklusējuma vērtība, ja nav definēts īpašs pārdevēja grāmatvedības konts trešajā pusē. ConfirmCloneTax=Apstipriniet sociālā / fiskālā nodokļa klonu ConfirmCloneVAT=Apstipriniet PVN deklarācijas klonu @@ -300,3 +302,4 @@ InvoiceToPay15Days=Lai samaksātu (15 līdz 30 dienas) InvoiceToPay30Days=Lai samaksātu (> 30 dienas) ConfirmPreselectAccount=Iepriekš atlasiet grāmatvedības kodu ConfirmPreselectAccountQuestion=Vai tiešām vēlaties iepriekš atlasīt %s atlasītās rindas ar šo grāmatvedības kodu? +AmountPaidMustMatchAmountOfDownPayment=Samaksātajai summai ir jāatbilst pirmās iemaksas summai diff --git a/htdocs/langs/lv_LV/contracts.lang b/htdocs/langs/lv_LV/contracts.lang index 164f1d22ef8..d07e9c17dcc 100644 --- a/htdocs/langs/lv_LV/contracts.lang +++ b/htdocs/langs/lv_LV/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contracts/Subscriptions ContractsAndLine=Līgumi un līgumu līnija Contract=Līgums ContractLine=Līguma līnija +ContractLines=Līguma līnijas Closing=Slēgšana NoContracts=Nav līgumi MenuServices=Pakalpojumi @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Vai tiešām vēlaties dzēst šo līguma līniju? MoveToAnotherContract=Pārvietot servisu citā līgumā. ConfirmMoveToAnotherContract=Es choosed jaunu mērķa līgumu, un apstiprinu, ka vēlaties, lai pārvietotu šo pakalpojumu noslēgtu šo līgumu. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service -PaymentRenewContractId=Atjaunot līgumu pozīcija (numurs %s) +PaymentRenewContractId=Atjaunot līgumu %s (pakalpojums %s) ExpiredSince=Derīguma termiņš NoExpiredServices=Nav beidzies aktīvās pakalpojumi ListOfServicesToExpireWithDuration=Pakalpojumu sarakstu beidzas %s dienās @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Parakstot līgumu klientu kontaktu HideClosedServiceByDefault=Slēpt slēgtos pakalpojumus pēc noklusējuma ShowClosedServices=Rādīt slēgtos pakalpojumus HideClosedServices=Slēpt slēgtos pakalpojumus +UserStartingService=Lietotāja palaišanas pakalpojums +UserClosingService=Lietotāja aizvēršanas pakalpojums diff --git a/htdocs/langs/lv_LV/cron.lang b/htdocs/langs/lv_LV/cron.lang index 062d5230372..11837fbfaa6 100644 --- a/htdocs/langs/lv_LV/cron.lang +++ b/htdocs/langs/lv_LV/cron.lang @@ -26,7 +26,7 @@ CronCommand=Komanda CronList=Plānoti darbi CronDelete=Dzēst ieplānotos darbus CronConfirmDelete=Vai tiešām vēlaties dzēst šos plānotos darbus? -CronExecute=Uzsākt plānoto darbu +CronExecute=Palaist tūlīt CronConfirmExecute=Vai tiešām vēlaties veikt šos plānotos darbus tagad? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Darbs @@ -58,7 +58,7 @@ CronNote=Komentārs CronFieldMandatory=Lauki %s ir obligāti CronErrEndDateStartDt=Beigu datums nevar būt pirms sākuma datuma StatusAtInstall=Statuss moduļa instalācijā -CronStatusActiveBtn=Grafiks +CronStatusActiveBtn=Iespējot plānošanu CronStatusInactiveBtn=Izslēgt CronTaskInactive=Šis darbs ir atspējots (nav ieplānots) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Lai redzētu un rediģētu ieplānotos darbus, d JobDisabled=Darbs ir atspējots MakeLocalDatabaseDumpShort=Lokālās datu bāzes dublēšana MakeLocalDatabaseDump=Izveidojiet vietējo datubāzes dump. Parametri ir: kompresija ("gz" vai "bz" vai "neviens"), dublēšanas veids ("mysql", "pgsql", "auto"), 1, "auto" vai faila nosaukums, +MakeSendLocalDatabaseDumpShort=Nosūtīt vietējās datu bāzes dublējumu +MakeSendLocalDatabaseDump=Nosūtiet vietējās datu bāzes dublējumu pa e-pastu. Parametri ir: kam, no, tēma, ziņojums, faila nosaukums (nosūtītā faila nosaukums), filtrs (“sql” tikai datu bāzes dublēšanai) +BackupIsTooLargeSend=Atvainojiet, pēdējais dublējuma fails ir pārāk liels, lai to nosūtītu pa e-pastu +CleanUnfinishedCronjobShort=Notīriet nepabeigto cronjob +CleanUnfinishedCronjob=Notīriet cronjob, kas iestrēdzis apstrādē, kad process vairs nedarbojas WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Datu tīrītājs un anonimizators JobXMustBeEnabled=Darbam %s jābūt iespējotam +EmailIfError=E-pasts brīdinājumam par kļūdu +ErrorInBatch=Kļūda, palaižot darbu %s + # Cron Boxes LastExecutedScheduledJob=Pēdējais izpildītais plānotais darbs NextScheduledJobExecute=Nākamais ieplānotais izpildāmais darbs NumberScheduledJobError=Ieplānoto darbu skaits kļūdaini +NumberScheduledJobNeverFinished=Ieplānoto darbu skaits, kas nekad nav pabeigts diff --git a/htdocs/langs/lv_LV/datapolicy.lang b/htdocs/langs/lv_LV/datapolicy.lang new file mode 100644 index 00000000000..e4ff6d5bbcc --- /dev/null +++ b/htdocs/langs/lv_LV/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Datu konfidencialitātes politika +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Datu konfidencialitātes pārvaldības modulis (atbilstība GDPR) + +# +# Administration page +# +datapolicySetup = Moduļa datu konfidencialitātes politikas iestatīšana +Deletion = Datu dzēšana +datapolicySetupPage = Atkarībā no jūsu valsts tiesību aktiem (piemērs VDAR 5. pants ), personas dati ir jāuzglabā ne ilgāk par laiku, kas nepieciešams nolūkiem, kādiem tie tika vākti, izņemot arhivēšanas nolūkos.
    Dzēšana tiks veikta automātiski pēc noteikta laika bez notikuma (ilgums, kuru norādīsiet tālāk). +NB_MONTHS = %s mēneši +ONE_YEAR = 1 gads +NB_YEARS = %s gadi +DATAPOLICY_TIERS_CLIENT = Klients +DATAPOLICY_TIERS_PROSPECT = Perspektīva +DATAPOLICY_TIERS_PROSPECT_CLIENT = Iespējamais/klients +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ne potenciālais/ne klients +DATAPOLICY_TIERS_FOURNISSEUR = Piegādātājs +DATAPOLICY_CONTACT_CLIENT = Klients +DATAPOLICY_CONTACT_PROSPECT = Perspektīva +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Iespējamais/klients +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ne potenciālais/ne klients +DATAPOLICY_CONTACT_FOURNISSEUR = Piegādātājs +DATAPOLICY_ADHERENT = Biedrs +DATAPOLICY_Tooltip_SETUP = Saziņas veids — norādiet savu izvēli katram veidam. +DATAPOLICYMail = E-pasta iestatīšana +DATAPOLICYSUBJECTMAIL = E-pasta tēma +DATAPOLICYCONTENTMAIL = E-pasta saturs +DATAPOLICYSUBSITUTION = Savā e-pastā varat izmantot šādus mainīgos (LINKACCEPT ļauj izveidot saiti, kas ieraksta personas piekrišanu, LINKREFUSED ļauj ierakstīt personas atteikumu): +DATAPOLICYACCEPT = Ziņa pēc vienošanās +DATAPOLICYREFUSE = Ziņa pēc nesaskaņas +SendAgreementText = Jūs varat nosūtīt GDPR e-pastu uz visām jūsu attiecīgajām kontaktpersonām (kuras vēl nav saņēmušas e-pastu un kurām neesat reģistrējis neko par viņu GDPR līgumu). Lai to izdarītu, izmantojiet šo pogu. +SendAgreement = Sūtīt ēpastus +AllAgreementSend = Visi e-pasti ir nosūtīti +TXTLINKDATAPOLICYACCEPT = Teksts saitei "vienošanās" +TXTLINKDATAPOLICYREFUSE = Teksts saitei "nepiekrišana" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: personas datu apstrāde +DATAPOLICY_consentement = Saņemta piekrišana personas datu apstrādei +DATAPOLICY_opposition_traitement = Iebilst pret savu personas datu apstrādi +DATAPOLICY_opposition_prospection = Iebilst pret savu personas datu apstrādi izpētes nolūkos + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizēt trešo pusi +DATAPOLICY_POPUP_ANONYME_TEXTE = Jūs nevarat izdzēst šo kontaktpersonu no Dolibarr, jo ir saistīti vienumi. Saskaņā ar GDPR jūs visus šos datus padarīsit anonīmus, lai ievērotu savas saistības. Vai vēlaties turpināt? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Pārnesamība GDPR +DATAPOLICY_PORTABILITE_TITLE = Personas datu eksports +DATAPOLICY_PORTABILITE_CONFIRMATION = Jūs vēlaties eksportēt šīs kontaktpersonas personas datus. Vai tu esi pārliecināts ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonimizēts %s + +# V2 +DATAPOLICYReturn = GDPR validācija +DATAPOLICY_date = Vienošanās/nepiekrišanas datums GDPR +DATAPOLICY_send = Datums nosūtīšanas līguma e-pasts +DATAPOLICYReturn = GDPR validācija +DATAPOLICY_SEND = Nosūtiet GDPR e-pastu +MailSent = E-pasts ir nosūtīts + +# ERROR +ErrorSubjectIsRequired = Kļūda: ir jānorāda e-pasta tēma. Norādiet to moduļa iestatījumos +=Tehniskas problēmas dēļ nevarējām reģistrēt jūsu izvēli. Mēs par to atvainojamies. Sazinieties ar mums, lai nosūtītu mums savu izvēli. +NUMBER_MONTH_BEFORE_DELETION = Mēneša skaits pirms dzēšanas diff --git a/htdocs/langs/lv_LV/dict.lang b/htdocs/langs/lv_LV/dict.lang index 1b232c953ca..d6960e706de 100644 --- a/htdocs/langs/lv_LV/dict.lang +++ b/htdocs/langs/lv_LV/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Kundze +CivilityMMEShort=Kundze CivilityMR=Kungs +CivilityMRShort=Kungs CivilityMLE=Jaunkundze. CivilityMTRE=Meistars CivilityDR=Doktors diff --git a/htdocs/langs/lv_LV/ecm.lang b/htdocs/langs/lv_LV/ecm.lang index 60b7a88cbb4..560089bc4aa 100644 --- a/htdocs/langs/lv_LV/ecm.lang +++ b/htdocs/langs/lv_LV/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manuālā sadaļa ECMSectionAuto=Automātiskā sadaļa ECMSectionsManual=Manuālais koks ECMSectionsAuto=Automātiska koks +ECMSectionsMedias=Mediju koks ECMSections=Katalogi ECMRoot=ECM sakne ECMNewSection=Jauns katalogs @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Failu skaits apakšsadaļās ECMCreationUser=Autors ECMArea=DMS / ECM apgabals ECMAreaDesc=Platība DMS / ECM (Dokumentu pārvaldības sistēma / Elektroniskā satura pārvaldība) ļauj ātri saglabāt, kopīgot un ātri meklēt dokumentus Dolibarr. -ECMAreaDesc2=* Automātiska katalogi tiek aizpildītas automātiski pievienojot dokumentus no kartes elementa.
    * Manual abonentu var tikt izmantoti, lai saglabātu dokumentus nav saistītas ar noteiktu elementa. +ECMAreaDesc2a=* Manuālos direktorijus var izmantot, lai saglabātu dokumentus, kas nav saistīti ar konkrētu elementu. +ECMAreaDesc2b=* Automātiskie direktoriji tiek aizpildīti automātiski, pievienojot dokumentus no elementa lapas. +ECMAreaDesc3=* Medias direktoriji ir faili, kas atrodas dokumentu direktorijas apakšdirektorijā /medias , un tos var lasīt visi bez nepieciešamības reģistrēties un fails nav skaidri jākopīgo. To izmanto, lai saglabātu attēlu failus no e-pasta vai vietnes moduļa. ECMSectionWasRemoved=Katalogs %s ir dzēsts. ECMSectionWasCreated=Katalogs %s ir izveidots. ECMSearchByKeywords=Meklēt pēc atslēgvārdiem diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang index 44aec08f2da..789b4521b87 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Lietotājs %s jau pastāv. ErrorGroupAlreadyExists=Grupa %s jau pastāv. ErrorEmailAlreadyExists=E-pasts %s jau pastāv. ErrorRecordNotFound=Ierakstīt nav atrasts. +ErrorRecordNotFoundShort=Nav atrasts ErrorFailToCopyFile=Neizdevās nokopēt failu '%s' uz '%s'. ErrorFailToCopyDir=Neizdevās kopēt direktoriju '%s' uz ' %s'. ErrorFailToRenameFile=Neizdevās pārdēvēt failu '%s' uz '%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Attēla failam nav atbalstītais formāts (jūsu PHP neatbal ErrorBadDateFormat=Vērtībai '%s' ir nepareizs datuma formāts ErrorWrongDate=Datums nav pareizs ErrorFailedToWriteInDir=Neizdevās ierakstīt direktorijā %s +ErrorFailedToBuildArchive=Neizdevās izveidot arhīva failu %s ErrorFoundBadEmailInFile=Atrasts nepareiza e-pasta sintakse %s līnijām failā (piemērs line %s ar e-pasta = %s) ErrorUserCannotBeDelete=Lietotāju nevar izdzēst. Varbūt tas ir saistīts ar Dolibarr vienībām. ErrorFieldsRequired=Daži obligāti aizpildāmie lauki ir atstāti tukši. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Lūdzu, aizpildiet vērtību rūtiņu sarakstā ErrorNoValueForRadioType=Lūdzu, aizpildiet vērtību radio pogu sarakstā ErrorBadFormatValueList=Saraksta vērtībā nedrīkst būt vairāk par vienu komatu: %s , bet tai ir nepieciešams vismaz viena: atslēga, vērtība ErrorFieldCanNotContainSpecialCharacters=Laukā %s nedrīkst būt īpašas rakstzīmes. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Laukā %s nedrīkst būt speciālās rakstzīmes vai lielformāta rakstzīmes, un tajos nedrīkst būt tikai cipari. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Laukā %s nedrīkst būt ne speciālās rakstzīmes, ne lielie burti, un tam jāsākas ar alfabētisku rakstzīmi (a–z). ErrorFieldMustHaveXChar=Laukā %sjābūt vismaz %s rakstzīmēm. ErrorNoAccountancyModuleLoaded=Nav grāmatvedības modulis aktivizēts ErrorExportDuplicateProfil=Šāds profila nosaukums jau eksistē šim eksportam. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript nedrīkst tikt izslēgti, ka šī funkci ErrorPasswordsMustMatch=Abām ievadītām parolēm jāsakrīt ErrorContactEMail=Radās tehniska kļūda. Lūdzu, sazinieties ar administratoru uz šādu e-pastu %s un savā ziņojumā uzrakstiet kļūdas kodu %s vai pievienojiet šīs lapas ekrāna kopiju. ErrorWrongValueForField=Lauks %s : “ %s ” neatbilst regex noteikumam %s +ErrorHtmlInjectionForField=Lauks %s : Vērtība ' %s a09a4b739f17f satur mazlicious data'nav atļauts ErrorFieldValueNotIn=Lauks %s : “ %s ” nav vērtība, kas norādīta laukā %s no %s ErrorFieldRefNotIn=Lauks %s : “ %s ” nav esošais ref. %s +ErrorMultipleRecordFoundFromRef=Vairāki ieraksti tika atrasti, veicot meklēšanu no ref %s . Nevar zināt, kuru ID izmantot. ErrorsOnXLines=atrastas %s kļūdas ErrorFileIsInfectedWithAVirus=Antivīrusu programma nevarēja pārbaudīt failu (fails varētu būt inficēts ar vīrusu) -ErrorSpecialCharNotAllowedForField=Speciālās rakstzīmes nav atļautas laukam "%s" ErrorNumRefModel=Norāde pastāv to datubāzē (%s), un tas nav saderīgs ar šo numerācijas noteikuma. Noņemt ierakstu vai pārdēvēts atsauci, lai aktivizētu šo moduli. ErrorQtyTooLowForThisSupplier=Šim pārdevējam pārāk zems daudzums vai cena šai precei nav noteikta ErrorOrdersNotCreatedQtyTooLow=Daži pasūtījumi nav izveidoti jo pārāk mazs daudzums @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objektiem jābūt statusam “Aktīv ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objektiem jābūt iespējotiem ar statusu “Melnraksts” vai “Atspējots” ErrorNoFieldWithAttributeShowoncombobox=Nevienam laukam objekta '%s' definīcijā nav rekvizīta 'showoncombobox'. Nekādā veidā nevar parādīt combolist. ErrorFieldRequiredForProduct=Lauks “%s” ir nepieciešams produktam %s +AlreadyTooMuchPostOnThisIPAdress=Jūs jau esat pārāk daudz publicējis šajā IP adresē. ProblemIsInSetupOfTerminal=Problēma termināļa %s iestatīšanā. ErrorAddAtLeastOneLineFirst=Vispirms pievienojiet vismaz vienu rindu ErrorRecordAlreadyInAccountingDeletionNotPossible=Kļūda, ieraksts jau ir pārsūtīts grāmatvedībā, dzēšana nav iespējama. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Vispirms jums ir jāiestata konta plān ErrorFailedToFindEmailTemplate=Neizdevās atrast veidni ar koda nosaukumu %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Ilgums pakalpojumā nav noteikts. Nav iespējams aprēķināt stundas cenu. ErrorActionCommPropertyUserowneridNotDefined=Nepieciešams lietotāja īpašnieks -ErrorActionCommBadType=Atlasītais notikuma veids (id: %n, kods: %s) nepastāv notikuma veida vārdnīcā +ErrorActionCommBadType=Atlasītais notikuma veids (id: %s, kods: %s) nepastāv notikuma veida vārdnīcā CheckVersionFail=Versijas pārbaude neizdevās ErrorWrongFileName=Faila nosaukumā nedrīkst būt __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Nav Maksājumu nosacījumu vārdnīcā, lūdzu, modificējiet. ErrorIsNotADraft=%s nav melnraksts ErrorExecIdFailed=Nevar izpildīt komandu "id" -ErrorBadCharIntoLoginName=Neatļauta rakstzīme pieteikšanās vārdā -ErrorRequestTooLarge=Kļūda, pieprasījums ir pārāk liels +ErrorBadCharIntoLoginName=Neatļauta rakstzīme laukā %s +ErrorRequestTooLarge=Kļūda, pieprasījums ir pārāk liels vai sesija ir beigusies ErrorNotApproverForHoliday=Jūs neesat %s atvaļinājuma apstiprinātājs ErrorAttributeIsUsedIntoProduct=Šis atribūts tiek izmantots vienā vai vairākos produkta variantos ErrorAttributeValueIsUsedIntoProduct=Šī atribūta vērtība tiek izmantota vienā vai vairākos produkta variantos @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Kļūda, visas summas jāievada vienā kolonnā ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Jūs mēģināt apmaksāt rēķinus valūtā %s no konta ar valūtu %s ErrorInvoiceLoadThirdParty=Nevar ielādēt trešās puses objektu rēķinam "%s" ErrorInvoiceLoadThirdPartyKey=Trešās puses atslēga "%s" nav iestatīta rēķinam "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Dzēst rindu nav atļauts faktiskais objekta statuss -ErrorAjaxRequestFailed=Request failed +ErrorDeleteLineNotAllowedByObjectStatus=Pašreizējais objekta statuss neļauj dzēst rindu +ErrorAjaxRequestFailed=Pieprasījums neizdevās +ErrorThirpdartyOrMemberidIsMandatory=Trešās puses vai partnerības dalībnieka dalība ir obligāta +ErrorFailedToWriteInTempDirectory=Neizdevās ierakstīt pagaidu direktorijā +ErrorQuantityIsLimitedTo=Daudzums ir ierobežots līdz %s +ErrorFailedToLoadThirdParty=Neizdevās atrast/ielādēt trešo pusi no id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Šis maksājuma veids nav bankas konts +ErrorStripeCustomerNotFoundCreateFirst=Stripe klients šai trešajai pusei nav iestatīts (vai ir iestatīta vērtība, kas svītrota pusē). Vispirms izveidojiet (vai pievienojiet to atkārtoti). +ErrorCharPlusNotSupportedByImapForSearch=IMAP meklēšana nevar meklēt sūtītājā vai adresātā virkni, kurā ir rakstzīme + +ErrorTableNotFound=Tabula %s nav atrasta +ErrorValueForTooLow= %s vērtība ir pārāk zema +ErrorValueCantBeNull= %s vērtība nevar būt nulle +ErrorDateOfMovementLowerThanDateOfFileTransmission=Bankas darījuma datums nedrīkst būt mazāks par faila pārsūtīšanas datumu +ErrorTooMuchFileInForm=Pārāk daudz failu formā, maksimālais skaits ir %s fails(-i) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Jūsu PHP parametrs upload_max_filesize (%s) ir augstāks nekā PHP parametrs post_max_size (%s). Šī nav konsekventa iestatīšana. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=Noklikšķiniet šeit, lai iestatītu obligātos parametrus +WarningMandatorySetupNotComplete=Noklikšķiniet šeit, lai iestatītu galvenos parametrus WarningEnableYourModulesApplications=Noklikšķiniet šeit, lai iespējotu moduļus un lietojumprogrammas WarningSafeModeOnCheckExecDir=Uzmanību, PHP iespēja safe_mode ir par tik komanda jāuzglabā iekšpusē direktorijā deklarēto php parametru safe_mode_exec_dir. WarningBookmarkAlreadyExists=Ar šo nosaukumu, vai šī mērķa grāmatzīmes (URL) jau pastāv. @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Uzmanību, jūsu config failu (htdocs / conf / WarningsOnXLines=Brīdinājumi par %s avota ierakstu(-iem) WarningNoDocumentModelActivated=Neviens modelis dokumentu ģenerēšanai nav aktivizēts. Modeli izvēlēsies pēc noklusējuma, līdz jūs pārbaudīsit sava moduļa iestatījumus. WarningLockFileDoesNotExists=Brīdinājums, kad iestatīšana ir pabeigta, ir jāizslēdz instalēšanas / migrācijas rīki, pievienojot failu install.lock direktorijā %s . Šī faila izveides neievērošana ir nopietns drošības risks. -WarningUntilDirRemoved=Visi drošības brīdinājumi (redzami tikai administratora lietotājiem) paliks aktīvi, kamēr būs ievainojamība (vai pastāvīgā MAIN_REMOVE_INSTALL_WARNING tiek pievienota iestatījumam-> Citi iestatījumi). +WarningUntilDirRemoved=Šis drošības brīdinājums paliks aktīvs tik ilgi, kamēr pastāv ievainojamība. WarningCloseAlways=Brīdinājums, aizvēršanas tiek darīts, pat ja summa atšķiras no avota un mērķa elementi. Aktivizēt šo funkciju piesardzīgi. WarningUsingThisBoxSlowDown=Uzmanību, izmantojot šo lodziņu palēnināt nopietni visas lapas, kas parāda lodziņu. WarningClickToDialUserSetupNotComplete=Iestatīšana ClickToDial informāciju par jūsu lietotāja nav pilnīga (skat. tab ClickToDial uz jūsu lietotāja kartes). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Brīdinājums: jūs nevarat izveidot tieši apakškontu WarningAvailableOnlyForHTTPSServers=Pieejams tikai tad, ja tiek izmantots HTTPS drošais savienojums. WarningModuleXDisabledSoYouMayMissEventHere=Modulis %s nav iespējots. Tāpēc jūs varat izlaist daudz notikumu šeit. WarningPaypalPaymentNotCompatibleWithStrict=Vērtība “Stingrs” neļauj tiešsaistes maksājumu funkcijām darboties pareizi. Tā vietā izmantojiet “Lax”. +WarningThemeForcedTo=Brīdinājums! Motīvs ir spiests uz %s , izmantojot slēpto konstanti MAIN_FORCETHEME +WarningPagesWillBeDeleted=Brīdinājums, tādējādi tiks dzēstas arī visas esošās vietnes lapas/konteineri. Jums vajadzētu iepriekš eksportēt savu vietni, lai jums būtu dublējums, lai to vēlāk atkārtoti importētu. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automātiskā validācija ir atspējota, ja opcijai "Rēķina apstiprināšana" ir iestatīta iespēja samazināt krājumus. -<<<<<<< GALVA -======= -<<<<<<< GALVA -<<<<<<< GALVA ->>>>>>> git@github.com:Dolibarr/dolibarr.git filiāle “15.0” # Validate RequireValidValue = Vērtība nav derīga RequireAtLeastXString = Nepieciešama vismaz %s rakstzīme (s) @@ -347,12 +361,3 @@ BadSetupOfField = Kļūda, nepareizi iestatot lauku BadSetupOfFieldClassNotFoundForValidation = Kļūda, nepareizi iestatot lauku: klase nav atrasta validācijai BadSetupOfFieldFileNotFound = Kļūda, nepareizi iestatot lauku: fails netika atrasts iekļaušanai BadSetupOfFieldFetchNotCallable = Kļūda, nepareizi iestatot lauku: izgūšana nav izsaucama klasē -<<<<<<< GALVA -======= -======= -======= ->>>>>>> git@github.com:Dolibarr/dolibarr.git filiāle “15.0” ->>>>>>> git@github.com:Dolibarr/dolibarr.git filiāle “15.0” -======= ->>>>>>> git@github.com:Dolibarr/dolibarr.git filiāle “15.0” ->>>>>>> git@github.com:Dolibarr/dolibarr.git filiāle “15.0” diff --git a/htdocs/langs/lv_LV/eventorganization.lang b/htdocs/langs/lv_LV/eventorganization.lang index cff9538f3ca..d37ec669631 100644 --- a/htdocs/langs/lv_LV/eventorganization.lang +++ b/htdocs/langs/lv_LV/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Dalībnieka izveides/pievienošanas vei # Object # EventOrganizationConfOrBooth= Konference vai stends +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Pārvaldiet pasākuma organizēšanu ConferenceOrBooth = Konference vai stends ConferenceOrBoothTab = Konference vai stends AmountPaid = Samaksātā summa DateOfRegistration = Reģistrācijas datums ConferenceOrBoothAttendee = Konferences vai stenda apmeklētājs +ApplicantOrVisitor=Pretendents vai apmeklētājs +Speaker=Skaļrunis # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Šeit varat balsot par konferenci vai ieteikt j EvntOrgRegistrationConfHelpMessage = Šeit varat ieteikt jaunu konferenci, ko animēt pasākuma laikā. EvntOrgRegistrationBoothHelpMessage = Šeit jūs varat pieteikties stendam pasākuma laikā. ListOfSuggestedConferences = Ieteicamo konferenču saraksts -ListOfSuggestedBooths = Ieteicamo kabīņu saraksts -ListOfConferencesOrBooths=Konferenču vai pasākumu projekta kabīņu saraksts +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Ieteikt jaunu konferenci SuggestBooth = Ieteikt stendu ViewAndVote = Skatiet ierosinātos pasākumus un balsojiet par tiem PublicAttendeeSubscriptionGlobalPage = Publiska saite reģistrācijai uz pasākumu PublicAttendeeSubscriptionPage = Publiska saite reģistrācijai tikai uz šo notikumu MissingOrBadSecureKey = Drošības atslēga nav derīga vai tās nav -EvntOrgWelcomeMessage = Šī veidlapa ļauj reģistrēties kā jaunam pasākuma dalībniekam: %s +EvntOrgWelcomeMessage = Šī forma ļauj reģistrēties kā jaunam pasākuma dalībniekam EvntOrgDuration = Šī konference sākas ar %s un beidzas ar %s. ConferenceAttendeeFee = Konferences dalībnieka maksa par pasākumu: '%s', kas notiek no %s līdz %s. BoothLocationFee = Pasākuma stenda atrašanās vieta: '%s', kas notiek no %s līdz %s @@ -130,7 +133,7 @@ LabelOfconference=Konferences etiķete ConferenceIsNotConfirmed=Reģistrācija nav pieejama, konference vēl nav apstiprināta DateMustBeBeforeThan=%s jābūt pirms %s DateMustBeAfterThan=%s jābūt aiz %s - +MaxNbOfAttendeesReached=Ir sasniegts maksimālais dalībnieku skaits NewSubscription=Reģistrācija OrganizationEventConfRequestWasReceived=Jūsu ieteikums par konferenci ir saņemts OrganizationEventBoothRequestWasReceived=Jūsu pieprasījums pēc stenda ir saņemts @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Jūsu maksājums par jūsu not OrganizationEventBulkMailToAttendees=Šis ir atgādinājums par jūsu dalību pasākumā kā apmeklētājam OrganizationEventBulkMailToSpeakers=Šis ir atgādinājums par jūsu dalību pasākumā kā runātājam OrganizationEventLinkToThirdParty=Saite ar trešo pusi (klientu, piegādātāju vai partneri) +OrganizationEvenLabelName=Konferences vai stenda publiskais nosaukums NewSuggestionOfBooth=Pieteikums stendam NewSuggestionOfConference=Pieteikšanās konferencei @@ -154,7 +158,7 @@ VoteOk = Jūsu balsojums ir pieņemts. AlreadyVoted = Jūs jau esat balsojis par šo notikumu. VoteError = Balsojuma laikā radās kļūda. Lūdzu, mēģiniet vēlreiz. -SubscriptionOk = Jūsu reģistrācija ir apstiprināta +SubscriptionOk=Jūsu reģistrācija ir reģistrēta ConfAttendeeSubscriptionConfirmation = Pasākuma abonementa apstiprinājums Attendee = Dalībnieks PaymentConferenceAttendee = Konferences dalībnieka samaksa @@ -162,6 +166,7 @@ PaymentBoothLocation = Kabīnes atrašanās vietas maksājums DeleteConferenceOrBoothAttendee=Noņemt dalībnieku RegistrationAndPaymentWereAlreadyRecorder=Reģistrācija un maksājums jau tika reģistrēts e -pastam %s EmailAttendee=Dalībnieku e -pasts +EmailCompany=Uzņēmuma e-pasts EmailCompanyForInvoice=Uzņēmuma e -pasts (rēķinam, ja atšķiras no dalībnieka e -pasta adreses) ErrorSeveralCompaniesWithEmailContactUs=Ir atrasti vairāki uzņēmumi ar šo e -pastu, tāpēc mēs nevaram automātiski apstiprināt jūsu reģistrāciju. Lūdzu, sazinieties ar mums pa e -pastu %s, lai manuāli apstiprinātu ErrorSeveralCompaniesWithNameContactUs=Ir atrasti vairāki uzņēmumi ar šo nosaukumu, tāpēc mēs nevaram automātiski apstiprināt jūsu reģistrāciju. Lūdzu, sazinieties ar mums pa e -pastu %s, lai manuāli apstiprinātu diff --git a/htdocs/langs/lv_LV/exports.lang b/htdocs/langs/lv_LV/exports.lang index 0ecbf77fc2c..ae4678c6005 100644 --- a/htdocs/langs/lv_LV/exports.lang +++ b/htdocs/langs/lv_LV/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Eksportējami lauki ExportedFields=Eksportēti lauki ImportModelName=Importēšanas profila nosaukums ImportModelSaved=Importa profils tiek saglabāts kā %s. +ImportProfile=Importēt profilu DatasetToExport=Datu kopas eksports DatasetToImport=Importēt failu datu kopā ChooseFieldsOrdersAndTitle=Izvēlieties lauku secību ... @@ -53,8 +54,9 @@ TypeOfLineServiceOrProduct=Veids (0=produkts, 1=pakalpojums) FileWithDataToImport=Fails ar datiem, lai importētu FileToImport=Avota fails, kas jāimportē FileMustHaveOneOfFollowingFormat=Importa failam ir jābūt šādam formātam -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields +DownloadEmptyExampleShort=Lejupielādējiet faila paraugu +DownloadEmptyExample=Lejupielādējiet veidnes failu ar piemēriem un informāciju par laukiem, kurus varat importēt +StarAreMandatory=Veidnes failā visi lauki ar * ir obligāti aizpildāmie lauki ChooseFormatOfFileToImport=Izvēlieties faila formātu, ko izmantot kā importa faila formātu, noklikšķinot uz %s ikonas, lai to atlasītu ... ChooseFileToImport=Augšupielādējiet failu, pēc tam noklikšķiniet uz %s ikonas, lai atlasītu failu kā avota importa failu ... SourceFileFormat=Avota faila formāts @@ -82,7 +84,7 @@ SelectFormat=Izvēlieties šo importa failu formātu RunImportFile=Importēt datus NowClickToRunTheImport=Pārbaudiet importa simulācijas rezultātus. Labojiet kļūdas un atkārtojiet testu.
    Kad simulācijā nav kļūdu, jūs varat turpināt importēt datus datu bāzē. DataLoadedWithId=Importētajiem datiem katrā datu bāzes tabulā būs papildu lauks ar šo ievešanas ID: %s , lai ļautu tai atrast meklēšanu, ja tiek izmeklēta ar šo importu saistīta problēma. -ErrorMissingMandatoryValue=Obligātie dati avota failā ir tukši laukā %s . +ErrorMissingMandatoryValue=Obligātie dati ir tukši avota failā kolonnā %s . TooMuchErrors=Vēl ir %s citas avota līnijas ar kļūdām, taču izlaide ir ierobežota. TooMuchWarnings=Vēl ir %s citas avota līnijas ar brīdinājumiem, bet izlaide ir ierobežota. EmptyLine=Tukšas līnijas (tiks izmestas) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Visus importētos ierakstus varat atrast savā dat NbOfLinesOK=Skaits līniju bez kļūdām un bez brīdinājumiem: %s. NbOfLinesImported=Skaits līniju veiksmīgi importēto: %s. DataComeFromNoWhere=Vērtību, lai ievietotu nāk no nekur avota failā. -DataComeFromFileFieldNb=Vērtību, lai ievietotu nāk no lauka skaits %s, kas avota failā. -DataComeFromIdFoundFromRef=Sākotnējā faila lauka skaitļa %s vērtība tiks izmantota, lai atrastu izmantotā vecā objekta ID (tādēļ objekts %s , kuram ir atsauces no avota faila jābūt datu bāzē). -DataComeFromIdFoundFromCodeId=Avota faila lauka skaitļa kods %s tiks izmantots, lai atrastu izmantojamā vecāka objekta ID (tādēļ vārdnīcas kodam jābūt eksemplāram %s ) Ņemiet vērā, ka, ja jūs zināt id, varat to izmantot arī avota failā, nevis kodu. Importam jādarbojas abos gadījumos. +DataComeFromFileFieldNb=Ievietojamā vērtība nāk no avota faila kolonnas %s . +DataComeFromIdFoundFromRef=Vērtība, kas nāk no avota faila, tiks izmantota, lai atrastu izmantojamā vecākobjekta ID (tādēļ objektam %s , kuram ir atsauce no avota faila, ir jāpastāv datu bāzē). +DataComeFromIdFoundFromCodeId=Koda vērtība, kas nāk no avota faila, tiks izmantota, lai atrastu izmantojamā vecākobjekta ID (tāpēc kodam no avota faila ir jābūt vārdnīcā %s ). Ņemiet vērā: ja zināt ID, varat to izmantot arī avota failā koda vietā. Importam vajadzētu darboties abos gadījumos. DataIsInsertedInto=Dati, kas nāk no avota faila tiks ievietota sekojošā laukā: DataIDSourceIsInsertedInto=Galvenā objekta ID, kas tika atrasts, izmantojot avota faila datus, tiks ievietots šādā laukā: DataCodeIDSourceIsInsertedInto=Galvenās līnijas ID, kas tika atrasts no koda, tiks ievietots šādā laukā: @@ -132,9 +134,14 @@ FormatControlRule=Format control rule ## imports updates KeysToUseForUpdates=Atslēga (sleja), ko izmantot esošo datu atjaunināšanai NbInsert=Ievietoto līniju skaits: %s +NbInsertSim=Ievietoto rindu skaits: %s NbUpdate=Atjaunināto līniju skaits: %s +NbUpdateSim=Atjaunināmo rindu skaits: %s MultipleRecordFoundWithTheseFilters=Ar šiem filtriem tika atrasti vairāki ieraksti: %s StocksWithBatch=Produktu krājumi un atrašanās vieta (noliktava) ar partijas / sērijas numuru WarningFirstImportedLine=Pirmā rindiņa(-as) netiks importēta(-as) ar pašreizējo atlasi NotUsedFields=Datu bāzes lauki netiek izmantoti SelectImportFieldsSource = Izvēlieties avota faila laukus, kurus vēlaties importēt, un to mērķa lauku datu bāzē, izvēloties laukus katrā atlases lodziņā, vai atlasiet iepriekš definētu importēšanas profilu: +MandatoryTargetFieldsNotMapped=Daži obligātie mērķa lauki nav kartēti +AllTargetMandatoryFieldsAreMapped=Visi mērķa lauki, kuriem nepieciešama obligāta vērtība, ir kartēti +ResultOfSimulationNoError=Simulācijas rezultāts: nav kļūdu diff --git a/htdocs/langs/lv_LV/externalsite.lang b/htdocs/langs/lv_LV/externalsite.lang deleted file mode 100644 index 23725bd616a..00000000000 --- a/htdocs/langs/lv_LV/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Ārējo vietņu iestatīšana -ExternalSiteURL=HTML iframe satura ārējās vietnes URL -ExternalSiteModuleNotComplete=Modulis ExternalSite nav pareizi konfigurēts. -ExampleMyMenuEntry=Manas izvēlnes ieraksti diff --git a/htdocs/langs/lv_LV/ftp.lang b/htdocs/langs/lv_LV/ftp.lang deleted file mode 100644 index 6fcdaf66e4b..00000000000 --- a/htdocs/langs/lv_LV/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP vai SFTP klienta moduļa iestatīšana -NewFTPClient=Jauna FTP / FTPS savienojuma iestatīšana -FTPArea=FTP/FTPS sadaļa -FTPAreaDesc=Šajā ekrānā tiek parādīts FTP un SFTP servera skats. -SetupOfFTPClientModuleNotComplete=Šķiet, ka FTP vai SFTP klienta moduļa iestatīšana nav pilnīga -FTPFeatureNotSupportedByYourPHP=Jūsu PHP neatbalsta FTP vai SFTP funkcijas -FailedToConnectToFTPServer=Neizdevās izveidot savienojumu ar serveri (serveris %s, ports %s) -FailedToConnectToFTPServerWithCredentials=Neizdevās pieteikties serverī ar noteiktu pieteikšanās vārdu / paroli -FTPFailedToRemoveFile=Neizdevās noņemt failu %s. -FTPFailedToRemoveDir=Neizdevās noņemt direktoriju %s: pārbaudīt atļaujas un ka katalogs ir tukšs. -FTPPassiveMode=Pasīvais režīms -ChooseAFTPEntryIntoMenu=Izvēlnē izvēlieties FTP / SFTP vietni ... -FailedToGetFile=Neizdevās iegūt failus %s diff --git a/htdocs/langs/lv_LV/holiday.lang b/htdocs/langs/lv_LV/holiday.lang index 5b29fb9dd97..480d77f4526 100644 --- a/htdocs/langs/lv_LV/holiday.lang +++ b/htdocs/langs/lv_LV/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=CRV -Holidays=Prombūtne +Holidays=Lapas +Holiday=Prombūtne CPTitreMenu=Prombūtne MenuReportMonth=Ikmēneša paziņojums MenuAddCP=Jauns atvaļinājuma pieprasījums +MenuCollectiveAddCP=Jauns kolektīvā atvaļinājuma pieprasījums NotActiveModCP=Jums ir jāiespējo modulis Atvaļinājumi, lai apskatītu šo lapu. AddCP=Izveidot atvaļinājuma pieprasījumu DateDebCP=Sākuma datums @@ -56,6 +58,7 @@ ConfirmDeleteCP=Apstiprināt šī atvaļinājuma pieprasījuma dzēšanu? ErrorCantDeleteCP=Kļūda, Jums nav tiesību izdzēst šo atvaļinājuma pieprasījumu. CantCreateCP=Jums nav tiesību veikt atvaļinājumu pieprasījumus. InvalidValidatorCP=Atvaļinājuma pieprasījumam jums jāizvēlas apstiprinātājs. +InvalidValidator=Izvēlētais lietotājs nav apstiprinātājs. NoDateDebut=Jums ir jāizvēlas sākuma datums. NoDateFin=Jums ir jāizvēlas beigu datums. ErrorDureeCP=Jūsu atvaļinājuma pieprasījumā nav darba dienas. @@ -79,6 +82,8 @@ MotifCP=Iemesls UserCP=Lietotājs ErrorAddEventToUserCP=Pievienojot ārpuskārtas atvaļinājumu, radās kļūda. AddEventToUserOkCP=Par ārkārtas atvaļinājumu papildinājums ir pabeigta. +ErrorFieldRequiredUserOrGroup=Jāaizpilda lauks "grupa" vai lauks "lietotājs". +fusionGroupsUsers=Grupu lauks un lietotāja lauks tiks apvienoti MenuLogCP=Skatīt izmaiņu žurnālus LogCP=Visu atjauninājumu žurnāls “Atvaļinājuma atlikums” ActionByCP=Atjaunināja @@ -86,6 +91,13 @@ UserUpdateCP=Atjaunināts PrevSoldeCP=Iepriekšējā bilance NewSoldeCP=Jana Bilance alreadyCPexist=Šajā periodā atvaļinājuma pieprasījums jau ir veikts. +UseralreadyCPexist=Šajā periodā jau ir iesniegts atvaļinājuma pieprasījums par %s. +groups=Grupas +users=Lietotāji +AutoSendMail=Automātiska pasta sūtīšana +NewHolidayForGroup=Jauns kolektīvā atvaļinājuma pieprasījums +SendRequestCollectiveCP=Nosūtiet kolektīvo atvaļinājuma pieprasījumu +AutoValidationOnCreate=Automātiska apstiprināšana FirstDayOfHoliday=Atvaļinājuma sākuma diena LastDayOfHoliday=Atvaļinājuma beigu diena BoxTitleLastLeaveRequests=Jaunākie %s labotie atvaļinājumu pieprasījumi @@ -134,6 +146,13 @@ HolidaysToApprove=Brīvdienas, kas jāapstiprina NobodyHasPermissionToValidateHolidays=Nevienam nav atļaujas apstiprināt brīvdienas HolidayBalanceMonthlyUpdate=Ikmēneša brīvdienu bilances atjauninājums XIsAUsualNonWorkingDay=%s parasti ir NAV darba diena -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative +BlockHolidayIfNegative=Bloķēt, ja atlikums ir negatīvs +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Šī atvaļinājuma pieprasījuma izveide ir bloķēta, jo jūsu bilance ir negatīva ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Atstāšanas pieprasījumam %s jābūt melnrakstam, tas ir jāatceļ vai jāatsakās dzēst +IncreaseHolidays=Palieliniet brīvdienas +HolidayRecordsIncreased= %s svētku ieraksti palielinājās +HolidayRecordIncreased=Pieaudzis svētku rekords +ConfirmMassIncreaseHoliday=Lielapjoma brīvdienu palielināšana +NumberDayAddMass=Dienu skaits, kas jāpievieno atlasei +ConfirmMassIncreaseHolidayQuestion=Vai tiešām vēlaties palielināt %s atlasītā(-u) ieraksta(-u) brīvdienu? +HolidayQtyNotModified=Atlikušo dienu atlikums %s nav mainīts diff --git a/htdocs/langs/lv_LV/hrm.lang b/htdocs/langs/lv_LV/hrm.lang index e14ef1e6379..4c121d33c98 100644 --- a/htdocs/langs/lv_LV/hrm.lang +++ b/htdocs/langs/lv_LV/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Atvērts uzņēmums CloseEtablishment=Aizvērt uzņēmumu # Dictionary DictionaryPublicHolidays=Atvaļinājums - svētku dienas -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizatoriskā vienība DictionaryFunction=HRM - darba vietas # Module Employees=Darbinieki @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=Pakāpju noklusējuma apraksts, kad tiek izveidota deplacement=Shift DateEval=Novērtēšanas datums JobCard=Darba karte -JobPosition=Darbs -JobsPosition=Darbavietas +JobPosition=Darba profils +JobsPosition=Darba profili NewSkill=Jauna prasme SkillType=Prasmju veids Skilldets=Šīs prasmes kategoriju saraksts @@ -70,9 +70,9 @@ RequiredSkills=Nepieciešamās prasmes šim darbam UserRank=Lietotāja rangs SkillList=Prasmju saraksts SaveRank=Saglabāt rangu -knowHow=Zināt, kā -HowToBe=Kā būt -knowledge=Zināšanas +TypeKnowHow=Zināt, kā +TypeHowToBe=Kā būt +TypeKnowledge=Zināšanas AbandonmentComment=Atteikšanās komentārs DateLastEval=Pēdējās vērtēšanas datums NoEval=Šim darbiniekam nav veikts novērtējums @@ -88,3 +88,5 @@ DeleteSkill = Prasme noņemta SkillsExtraFields=Attributs supplémentaires (kompetences) JobsExtraFields=Attributs supplémentaires (Emplois) EvaluationsExtraFields=Atribūti supplémentaires (novērtējumi) +NeedBusinessTravels=Nepieciešami biznesa ceļojumi +NoDescription=Nav apraksta diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang index 0710c1b4bdf..6ceb32e7759 100644 --- a/htdocs/langs/lv_LV/install.lang +++ b/htdocs/langs/lv_LV/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Konfigurācijas failā %s nevar ierakstīt. Pārba ConfFileIsWritable=Konfigurācijas failā %s var ierakstīt. ConfFileMustBeAFileNotADir=Konfigurācijas failam %s jābūt failam, nevis direktorijai. ConfFileReload=Pārsūtot parametrus no konfigurācijas faila. -NoReadableConfFileSoStartInstall=Konfigurācijas fails conf/conf.php neeksistē vai nav atjaunojams. Mēs veiksim instalēšanas procesu, lai mēģinātu to inicializēt. +NoReadableConfFileSoStartInstall=Konfigurācijas fails conf/conf.php neeksistē vai nav lasāms. Mēs veiksim instalēšanas procesu, lai mēģinātu to inicializēt. PHPSupportPOSTGETOk=PHP atbalsta mainīgos POST un GET. PHPSupportPOSTGETKo=Iespējams, ka jūsu PHP iestatīšana neatbalsta mainīgos POST un/vai GET. Pārbaudiet parametru variables_order php.ini. PHPSupportSessions=PHP atbalsta sesijas. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Iespējams, esat ievadījis nepareizu vērtību para ErrorFailedToCreateDatabase=Neizdevās izveidot datubāzi '%s'. ErrorFailedToConnectToDatabase=Neizdevās izveidot savienojumu ar datu bāzi '%s'. ErrorDatabaseVersionTooLow=Datu bāzes versija (%s) pārāk veca. Versija %s vai augstāka ir nepieciešama. -ErrorPHPVersionTooLow=PHP versija ir pārāk veca. Versija %s ir nepieciešama. +ErrorPHPVersionTooLow=PHP versija ir pārāk veca. Nepieciešama versija %s vai jaunāka versija. +ErrorPHPVersionTooHigh=PHP versija ir pārāk augsta. Nepieciešama versija %s vai vecāka versija. ErrorConnectedButDatabaseNotFound=Savienojums ar serveri ir veiksmīgs, bet datubāze '%s' nav atrasta. ErrorDatabaseAlreadyExists=Datubāze '%s' jau eksistē. +ErrorNoMigrationFilesFoundForParameters=Atlasītajām versijām nav atrasts neviens migrācijas fails IfDatabaseNotExistsGoBackAndUncheckCreate=Ja datubāze neeksistē, atgriezieties un atzīmējiet opciju "Izveidot datubāzi". IfDatabaseExistsGoBackAndCheckCreate=Ja datu bāze jau pastāv, dodieties atpakaļ un izņemiet ķeksi "Izveidot datu bāzi". WarningBrowserTooOld=Pārlūkprogrammas versija ir pārāk veca. Ļoti ieteicams jaunināt pārlūku uz jaunāko Firefox, Chrome vai Opera versiju. @@ -49,7 +51,6 @@ DatabaseName=Datubāzes nosaukums DatabasePrefix=Datubāzes tabulu prefikss DatabasePrefixDescription=Datubāzes galda prefikss. Ja tukšs, noklusējums ir llx_. AdminLogin=Dolibarr datu bāzes īpašnieka lietotāja konts. -PasswordAgain=Atkārtot paroles ievadīšanu AdminPassword=Parole Dolibarr datu bāzes īpašniekam. CreateDatabase=Izveidot datubāzi CreateUser=Izveidojiet lietotāja kontu vai piešķiriet lietotāja konta atļauju Dolibarr datubāzei @@ -211,3 +212,6 @@ ClickHereToGoToApp=Noklikšķiniet šeit, lai pārietu uz savu pieteikumu ClickOnLinkOrRemoveManualy=Ja notiek jaunināšana, lūdzu, uzgaidiet. Ja nē, noklikšķiniet uz šīs saites. Ja vienmēr redzat šo pašu lapu, dokumentu direktorijā ir jānoņem/jāpārdēvē fails install.lock. Loaded=Iekrauts FunctionTest=Funkcijas pārbaude +NodoUpgradeAfterDB=Pēc datu bāzes jaunināšanas ārējie moduļi neprasa nekādas darbības +NodoUpgradeAfterFiles=Pēc failu vai direktoriju jaunināšanas ārējie moduļi neprasa nekādas darbības +MigrationContractLineRank=Migrēt līguma rindu, lai izmantotu rangu (un iespējotu pārkārtošanu) diff --git a/htdocs/langs/lv_LV/interventions.lang b/htdocs/langs/lv_LV/interventions.lang index 87563a86b0e..c1526af527d 100644 --- a/htdocs/langs/lv_LV/interventions.lang +++ b/htdocs/langs/lv_LV/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Vai tiešām vēlaties atvērt iejaukšanos %s %s . Mēģinot sūtīt vairāk, jūsu instance var tikt palēnināta vai apturēta. Lūdzu, sazinieties ar atbalsta dienestu, ja jums nepieciešama lielāka kvota. diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index 2d2f7994cf2..932a87c1285 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Šim e-pasta veidam nav pieejamas veidnes AvailableVariables=Pieejamie aizstāšanas mainīgie NoTranslation=Nav iztulkots Translation=Tulkošana +Translations=Tulkojumi CurrentTimeZone=Laika josla PHP (servera) EmptySearchString=Ievadiet meklēšanas kritērijus EnterADateCriteria=Ievadiet datuma kritērijus @@ -199,6 +206,7 @@ Valid=Derīgs Approve=Apstiprināt Disapprove=Noraidīt ReOpen=Atvērt pa jaunu +OpenVerb=Atvērt Upload=Augšupielādēt ToLink=Saite Select=Atlasīt @@ -216,7 +224,7 @@ UserGroup=Lietotāju grupa UserGroups=Lietotāju grupas NoUserGroupDefined=Nav definēta neviena lietotāju grupa Password=Parole -PasswordRetype=PArole atkārtoti +PasswordRetype=Atkārtojiet savu paroli NoteSomeFeaturesAreDisabled=Ņemiet vērā, ka funkcijas / modules daudz ir invalīdi šajā demonstrācijā. Name=Nosaukums NameSlashCompany=Nosaukums/uzņēmums @@ -345,7 +353,7 @@ KiloBytes=Kilobaiti MegaBytes=Megabaiti GigaBytes=Gigabaiti TeraBytes=Terabaiti -UserAuthor=Apkrāpts ar +UserAuthor=Izveidojis UserModif=Atjaunināja b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Notikumi šim kontaktam / adresei ActionsOnContract=Notikumi šim līgumam ActionsOnMember=Pasākumi par šo locekli ActionsOnProduct=Notikumi ar šo produktu +ActionsOnAsset=Notikumi šim pamatlīdzeklim NActionsLate=%s vēlu ToDo=Jāizdara Completed=Pabeigts @@ -712,6 +721,7 @@ FeatureDisabled=Funkcija bloķēta MoveBox=Pārvietot logrīku Offered=Piedāvāts NotEnoughPermissions=Jums nav atļauta šī darbība +UserNotInHierachy=Šo darbību var veikt šī lietotāja uzraugi SessionName=Sesijas nosaukums Method=Metode Receive=Saņemt @@ -801,6 +811,7 @@ URLPhoto=Saite bildei/logo SetLinkToAnotherThirdParty=Saite uz citu trešo personu LinkTo=Saite uz LinkToProposal=Saite uz priekšlikumu +LinkToExpedition= Saite uz ekspedīciju LinkToOrder=Saite uz pasūtījumu LinkToInvoice=Saite uz rēķinu LinkToTemplateInvoice=Saite uz veidnes rēķinu @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Privāta lejupielādes saite PrivateDownloadLinkDesc=Lai skatītu vai lejupielādētu failu, jums ir jāpiesakās un jums ir vajadzīgas atļaujas Download=Lejupielādēt DownloadDocument=Lejupielādēt dokumentu +DownloadSignedDocument=Lejupielādējiet parakstītu dokumentu ActualizeCurrency=Atjaunināt valūtas kursu Fiscalyear=Fiskālais gads ModuleBuilder=Modulis un lietojumprogrammu veidotājs @@ -1044,6 +1056,7 @@ SearchIntoContracts=Līgumi SearchIntoCustomerShipments=Klientu sūtījumi SearchIntoExpenseReports=Izdevumu atskaites SearchIntoLeaves=Atvaļinājumi +SearchIntoKM=Zināšanu bāze SearchIntoTickets=Pieteikumi SearchIntoCustomerPayments=Klientu maksājumi SearchIntoVendorPayments=Pārdevēja maksājumi @@ -1135,15 +1148,29 @@ EventReminder=Atgādinājums par notikumu UpdateForAllLines=Atjauninājums visām līnijām OnHold=On hold Civility=Laipnība -AffectTag=Ietekmēt tagu +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Iestatīt Supervisor CreateExternalUser=Izveidot ārēju lietotāju -ConfirmAffectTag=Masveida tagu ietekme -ConfirmAffectTagQuestion=Vai tiešām vēlaties ietekmēt atlasītā (-o) ieraksta (-u) %s tagus? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Katram projektam piešķirta loma +TasksRole=Katra projekta uzdevumam piešķirta loma +ConfirmSetSupervisor=Lielapjoma uzrauga komplekts +ConfirmUpdatePrice=Izvēlieties cenas palielināšanas/samazināšanās likmi +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Vai tiešām vēlaties iestatīt uzraugu %s atlasītajam(-iem) ierakstam(-iem)? +ConfirmUpdatePriceQuestion=Vai tiešām vēlaties atjaunināt %s atlasītā(-u) ieraksta(-u) cenu? CategTypeNotFound=Ierakstu veidam nav atrasts neviens tagu tips +Rate=Likme +SupervisorNotFound=Pārraugs nav atrasts CopiedToClipboard=Kopēts starpliktuvē InformationOnLinkToContract=Šī summa ir tikai visu līguma rindu kopsumma. Laika jēdziens netiek ņemts vērā. ConfirmCancel=Vai tiešām vēlaties atcelt EmailMsgID=Nosūtīt e-pastu MsgID +EmailDate=E-pasta datums +SetToStatus=Set to status %s SetToEnabled=Iestatīt kā iespējotu SetToDisabled=Iestatīts kā atspējots ConfirmMassEnabling=masu, kas ļauj apstiprināt @@ -1172,8 +1199,14 @@ Terminated=Izbeigta AddLineOnPosition=Pievienot rindiņu pozīcijai (beigās, ja tukša) ConfirmAllocateCommercial=Piešķiriet tirdzniecības pārstāvja apstiprinājumu ConfirmAllocateCommercialQuestion=Vai tiešām vēlaties piešķirt %s atlasītos ierakstus? -CommercialsAffected=Ietekmēti tirdzniecības pārstāvji -CommercialAffected=Ietekmēts tirdzniecības pārstāvis -YourMessage=Votre message -YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. -UrlToCheck=Url to check +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Tava ziņa +YourMessageHasBeenReceived=Jūsu ziņojums ir saņemts. Mēs atbildēsim vai sazināsimies ar jums pēc iespējas ātrāk. +UrlToCheck=Pārbaudāmais URL +Automation=Automatizācija +CreatedByEmailCollector=Izveidoja e-pasta kolekcionārs +CreatedByPublicPortal=Izveidots no publiskā portāla +UserAgent=Lietotāja aģents +InternalUser=Iekšējais lietotājs +ExternalUser=Ārējais lietotājs diff --git a/htdocs/langs/lv_LV/members.lang b/htdocs/langs/lv_LV/members.lang index 44c68cdaa8b..c7f2fccb790 100644 --- a/htdocs/langs/lv_LV/members.lang +++ b/htdocs/langs/lv_LV/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Vēl viens dalībnieks (nosaukums:
    ThisIsContentOfYourMembershipWasValidated=Mēs vēlamies jūs informēt, ka jūsu dalība tika apstiprināta ar šādu informāciju:

    -ThisIsContentOfYourSubscriptionWasRecorded=Mēs vēlamies Jūs informēt, ka jaunais abonements tika reģistrēts.

    +ThisIsContentOfYourSubscriptionWasRecorded=Vēlamies jūs informēt, ka jūsu jaunais abonements ir reģistrēts. Lūdzu, skatiet šeit pievienoto rēķinu.

    ThisIsContentOfSubscriptionReminderEmail=Vēlamies informēt, ka jūsu abonements beidzas vai ir beidzies (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Mēs ceram, ka jūs to atjaunosit.

    ThisIsContentOfYourCard=Tas ir informācijas kopsavilkums, kas mums ir par jums. Lūdzu, sazinieties ar mums, ja kaut kas nav pareizs.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Paziņojuma e-pasta objekts, kas saņemts viesa automātiskās uzrakstīšanas gadījumā @@ -198,8 +207,10 @@ NbOfSubscriptions=Iemaksu skaits AmountOfSubscriptions=No iemaksām iekasētā summa TurnoverOrBudget=Apgrozījums (uzņēmumam) vai budžets (par pamatu) DefaultAmount=Iemaksas noklusējuma summa -CanEditAmount=Apmeklētājs var izvēlēties/rediģēt savu ieguldījumu -MEMBER_NEWFORM_PAYONLINE=Pārlēkt uz integrētu tiešsaistes maksājumu lapā +CanEditAmount=Abonementa summa ir bezmaksas +CanEditAmountDetail=Apmeklētājs var izvēlēties/rediģēt sava ieguldījuma apjomu neatkarīgi no dalībnieka veida +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=Pēc tiešsaistes reģistrācijas automātiski ieslēdziet tiešsaistes maksājumu lapu ByProperties=Pēc būtības MembersStatisticsByProperties=Dalībnieku statistika pēc būtības VATToUseForSubscriptions=PVN likme, ko izmantot iemaksām @@ -218,5 +229,6 @@ XExternalUserCreated=%s izveidots (-i) ārējs (-i) lietotājs (i) ForceMemberNature=Spēka locekļa raksturs (indivīds vai korporācija) CreateDolibarrLoginDesc=Izveidojot lietotājvārdu dalībniekiem, viņi var izveidot savienojumu ar lietojumprogrammu. Atkarībā no piešķirtajām atļaujām viņi, piemēram, varēs paši iepazīties vai mainīt savu failu. CreateDolibarrThirdPartyDesc=Trešā puse ir juridiska persona, kas tiks izmantota rēķinā, ja jūs nolemjat ģenerēt rēķinu par katru ieguldījumu. To varēsit izveidot vēlāk, ieguldījuma ierakstīšanas procesa laikā. -MemberFirstname=Member firstname -MemberLastname=Member lastname +MemberFirstname=Dalībnieka vārds +MemberLastname=Dalībnieka uzvārds +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/lv_LV/modulebuilder.lang b/htdocs/langs/lv_LV/modulebuilder.lang index 9c91bf1333d..da10fcf35ec 100644 --- a/htdocs/langs/lv_LV/modulebuilder.lang +++ b/htdocs/langs/lv_LV/modulebuilder.lang @@ -1,17 +1,19 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Moduļa ID ModuleBuilderDesc=Šo rīku drīkst izmantot tikai pieredzējuši lietotāji vai izstrādātāji. Tas nodrošina utilītas, lai izveidotu vai rediģētu savu moduli. Dokumentācija alternatīvai manuālai izstrādei ir pieejama šeit . -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +EnterNameOfModuleDesc=Ievadiet izveidojamā moduļa/lietojumprogrammas nosaukumu bez atstarpēm. Izmantojiet lielos burtus, lai atdalītu vārdus (piemēram, MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Ievadiet izveidojamā objekta nosaukumu bez atstarpēm. Izmantojiet lielos burtus, lai atdalītu vārdus (piemēram: MyObject, Student, Teacher...). Tiks ģenerēts CRUD klases fails, lapas, lai uzskaitītu/pievienotu/rediģētu/dzēstu objektu, un SQL faili. +EnterNameOfDictionaryDesc=Ievadiet izveidojamās vārdnīcas nosaukumu bez atstarpēm. Izmantojiet lielos burtus, lai atdalītu vārdus (piemēram, MyDico...). Tiks ģenerēts klases fails, kā arī SQL fails. ModuleBuilderDesc2=Ceļš, kurā tiek ģenerēti / rediģēti moduļi (pirmais ārējo moduļu katalogs, kas definēts %s): %s ModuleBuilderDesc3=Atrastie / rediģējamie moduļi: %s ModuleBuilderDesc4=Modulis identificēts kā "rediģējams", kad moduļa saknes direktorijā atrodas fails %s NewModule=Jauns modulis NewObjectInModulebuilder=Jauns objekts -NewDictionary=New dictionary +NewDictionary=Jauna vārdnīca +ModuleName=Moduļa nosaukums ModuleKey=Moduļa atslēga ObjectKey=Objekta atslēga -DicKey=Dictionary key +DicKey=Vārdnīcas atslēga ModuleInitialized=Modulis inicializēts FilesForObjectInitialized=Files for new object '%s' initialized FilesForObjectUpdated=Atjaunots objektu '%s' faili (.sql faili un .class.php fails) @@ -48,11 +50,14 @@ PathToModulePackage=Ceļš uz moduļa / pieteikuma pakotnes rāvienu PathToModuleDocumentation=Ceļš uz moduļa / lietojumprogrammas dokumentācijas failu (%s) SpaceOrSpecialCharAreNotAllowed=Spaces vai speciālās rakstzīmes nav atļautas. FileNotYetGenerated=Fails vēl nav izveidots +GenerateCode=Ģenerēt kodu RegenerateClassAndSql=Force .class un .sql failu atjaunināšana RegenerateMissingFiles=Izveidot trūkstošos failus SpecificationFile=Dokumentācijas fails LanguageFile=Valoda ObjectProperties=Objekta rekvizīti +Property=Īpašums +PropertyDesc=Īpašums ir atribūts, kas raksturo objektu. Šim atribūtam ir kods, etiķete un veids ar vairākām opcijām. ConfirmDeleteProperty=Vai tiešām vēlaties dzēst īpašumu %s ? Tas mainīs kodu PHP klasē, un no tabulas definīcijas kolonnas noņems arī objektu. NotNull=Nav NULL NotNullDesc=1=Iestatīt datu bāzi uz NOT NULL, 0=Atļaut nulles vērtības, -1=Atļaut nulles vērtības, piespiežot vērtību uz NULL, ja tā ir tukša ('' vai 0) @@ -81,15 +86,16 @@ IsAMeasure=Vai pasākums DirScanned=Direktorija skenēta NoTrigger=Nav sprūda NoWidget=Nav logrīku -GoToApiExplorer=API pētnieks +ApiExplorer=API pētnieks ListOfMenusEntries=Izvēlnes ierakstu saraksts ListOfDictionariesEntries=Vārdnīcu ierakstu saraksts ListOfPermissionsDefined=Noteikto atļauju saraksts SeeExamples=Skatiet piemērus šeit -EnabledDesc=Nosacījums, lai šis lauks būtu aktīvs (piemēri: 1 vai $ conf-> globāla-> MYMODULE_MYOPTION) -VisibleDesc=Vai lauks ir redzams? (Piemēri: 0 = nekad nav redzams, 1 = redzams sarakstā un izveidojiet / atjauniniet / skatiet veidlapas, 2 = ir redzams tikai sarakstā, 3 = ir redzams tikai izveides / atjaunināšanas / skata formā (nav sarakstā), 4 = ir redzams sarakstā un tikai atjaunināt / skatīt formu (neveidot), 5 = redzama tikai saraksta beigu skata formā (neveidot, ne atjaunināt).

    Negatīvas vērtības līdzekļu izmantošana lauka pēc noklusējuma netiek parādīta, bet to var atlasīt apskatei).

    Tas var būt izteiciens, piemēram:
    preg_match ('/ public /', $ _SERVER ['PHP_SELF'])? 0: 1
    ($ user-> rights-> rights- -DisplayOnPdfDesc=Parādiet šo lauku saderīgos PDF dokumentos, pozīciju var pārvaldīt, izmantojot lauku “Pozīcija”.
    Pašlaik zināmie saderīgie PDF modeļi ir: eratosthene (pasūtījums), espadon (kuģis), sūklis (rēķini), ciāns (propāls / citāts), radzenes (piegādātāja pasūtījums) = displejs
    2 = parādīt tikai tad, ja nav iztukšot

    dokumentu līnijas:
    0 = nav redzama
    1 = parādīti kolonnā
    3 = displeja līnija apraksta slejā pēc apraksta
    4 = displeja apraksta ailē pēc tam, kad apraksts tikai tad, ja tas nav tukšs -DisplayOnPdf=Displejs PDF formātā +EnabledDesc=Nosacījums, lai šis lauks būtu aktīvs.

    Piemēri:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    LEStrol'Global')Get +VisibleDesc=Vai lauks ir redzams? (Piemēri: 0 = nekad nav redzams, 1 = redzams sarakstā un izveidot/atjaunināt/skatīt veidlapas, 2 = redzams tikai sarakstā, 3 = redzams tikai izveides/atjaunināšanas/skatīšanas formā (nevis sarakstā), 4 = redzams sarakstā un tikai atjaunināt/skatīt veidlapu (neizveidot), 5=redzama tikai saraksta beigu skata veidlapā (nevis izveidot, nevis atjaunināt)

    Negatīvās vērtības izmantošana nozīmē, ka lauks sarakstā netiek rādīts pēc noklusējuma, bet to var atlasīt apskatei). +ItCanBeAnExpression=Tā var būt izteiksme. Piemērs:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Parādiet šo lauku saderīgos PDF dokumentos, jūs varat pārvaldīt pozīciju ar lauku "Pozīcija".
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description kolonna aiz apraksta
    4 = parādīt apraksta slejā tikai pēc apraksta, ja tā nav tukša +DisplayOnPdf=PDF formātā IsAMeasureDesc=Vai lauka vērtību var uzkrāties, lai kopsumma tiktu iekļauta sarakstā? (Piemēri: 1 vai 0) SearchAllDesc=Vai laukums tiek izmantots, lai veiktu meklēšanu no ātrās meklēšanas rīka? (Piemēri: 1 vai 0) SpecDefDesc=Ievadiet šeit visu dokumentāciju, ko vēlaties iesniegt ar savu moduli, kuru vēl nav definējušas citas cilnes. Jūs varat izmantot .md vai labāku, bagātīgo .asciidoc sintaksi. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Izmantojiet konkrētu redaktora URL UseSpecificFamily = Izmantojiet noteiktu ģimeni UseSpecificAuthor = Izmantojiet noteiktu autoru UseSpecificVersion = Izmantojiet konkrētu sākotnējo versiju -IncludeRefGeneration=Objekta atsauce ir jāģenerē automātiski, izmantojot pielāgotus numerācijas noteikumus +IncludeRefGeneration=Šī objekta atsauce ir jāģenerē automātiski, izmantojot pielāgotus numerācijas noteikumus IncludeRefGenerationHelp=Atzīmējiet šo, ja vēlaties iekļaut kodu, lai automātiski pārvaldītu atsauces ģenerēšanu, izmantojot pielāgotus numerācijas noteikumus -IncludeDocGeneration=Es vēlos ģenerēt dažus dokumentus no objekta veidnēm +IncludeDocGeneration=Es vēlos, lai līdzeklis ģenerētu dažus dokumentus (PDF, ODT) no šī objekta veidnēm IncludeDocGenerationHelp=Ja to atzīmēsit, tiks izveidots kāds kods, lai ierakstam pievienotu rūtiņu “Ģenerēt dokumentu”. -ShowOnCombobox=Rādīt vērtību kombinētajā lodziņā +ShowOnCombobox=Rādīt vērtību kombinētajos lodziņos KeyForTooltip=Rīka padoma atslēga CSSClass=CSS rediģēšanas / izveides veidlapai CSSViewClass=CSS lasāmai formai CSSListClass=CSS sarakstam NotEditable=Nav rediģējams ForeignKey=Sveša atslēga -TypeOfFieldsHelp=Lauku tips:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' nozīmē, ka mēs pievienojam pogu + aiz kombinācijas, lai izveidotu ierakstu.
    'filtrs' ir SQL nosacījums, piemēram: 'status=1 AND fk_user=__USER_ID__ UN entītija IN (__SHARED_)'ITIES_SHARED_ENTIES. +ForeignKeyDesc=Ja šī lauka vērtība ir jāgarantē, ka tā pastāv citā tabulā. Ievadiet šeit vērtību, kas atbilst sintakse: tablename.parentfieldtocheck +TypeOfFieldsHelp=Piemērs:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    ' 1' nozīmē, ka mēs pievienojam pogu + aiz kombinācijas, lai izveidotu ierakstu
    'filtrs' ir SQL nosacījums, piemēram: 'status=1 AND fk_user=__USER_ID__ UN entītija IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=Šis ir lauka/atribūta veids. AsciiToHtmlConverter=Ascii uz HTML pārveidotāju AsciiToPdfConverter=Ascii uz PDF pārveidotāju TableNotEmptyDropCanceled=Tabula nav tukša. Dzēšana tika atcelta. ModuleBuilderNotAllowed=Moduļu veidotājs ir pieejams, bet nav atļauts jūsu lietotājam. ImportExportProfiles=Importēt un eksportēt profilus -ValidateModBuilderDesc=Iestatiet šo uz 1, ja vēlaties, lai objekta metode $this->validateField() tiktu izsaukta, lai apstiprinātu lauka saturu ievietošanas vai atjaunināšanas laikā. Iestatiet 0, ja nav nepieciešama apstiprināšana. +ValidateModBuilderDesc=Iestatiet to uz 1, ja vēlaties, lai objekta metode $this->validateField() tiktu izsaukta, lai validētu lauka saturu ievietošanas vai atjaunināšanas laikā. Iestatiet 0, ja nav nepieciešama apstiprināšana. WarningDatabaseIsNotUpdated=Brīdinājums: datu bāze netiek atjaunināta automātiski, jums ir jāiznīcina tabulas un jāatspējo un jāiespējo modulis, lai tabulas tiktu izveidotas atkārtoti. LinkToParentMenu=Vecāku izvēlne (fk_xxxxmenu) ListOfTabsEntries=Cilņu ierakstu saraksts TabsDefDesc=Šeit definējiet moduļa nodrošinātās cilnes TabsDefDescTooltip=Jūsu moduļa/lietojumprogrammas nodrošinātās cilnes ir definētas masīvā $this->tabs moduļa deskriptora failā. Varat manuāli rediģēt šo failu vai izmantot iegulto redaktoru. +BadValueForType=Nepareiza vērtība tipam %s +DefinePropertiesFromExistingTable=Definējiet rekvizītus no esošas tabulas +DefinePropertiesFromExistingTableDesc=Ja datu bāzē tabula (izveidojamajam objektam) jau pastāv, varat to izmantot, lai definētu objekta rekvizītus. +DefinePropertiesFromExistingTableDesc2=Ja tabula vēl nepastāv, atstājiet tukšu. Kodu ģenerators izmantos dažāda veida laukus, lai izveidotu tabulas piemēru, kuru varēsit rediģēt vēlāk. diff --git a/htdocs/langs/lv_LV/mrp.lang b/htdocs/langs/lv_LV/mrp.lang index d38e1e5294c..d5d88fc8fd2 100644 --- a/htdocs/langs/lv_LV/mrp.lang +++ b/htdocs/langs/lv_LV/mrp.lang @@ -11,8 +11,8 @@ Bom=Materiālu rēķini BillOfMaterials=Materiālu rēķins BillOfMaterialsLines=Materiālu rēķina līnijas BOMsSetup=Moduļa BOM iestatīšana -ListOfBOMs=Materiālu rēķinu saraksts - BOM -ListOfManufacturingOrders=Ražošanas pasūtījumu saraksts +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Ražošanas pasūtījumi NewBOM=Jauns materiālu saraksts ProductBOMHelp=Produkts, kuru izveidot (vai izjaukt) ar šo BOM.
    Piezīme: Produkti ar īpašību 'Produkta veids' = 'Izejvielas' šajā sarakstā nav redzami. BOMsNumberingModules=BOM numerācijas veidnes @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Vai tiešām vēlaties klonēt materiālu rēķinu % ConfirmCloneMo=Vai tiešām vēlaties klonēt ražošanas pasūtījumu %s? ManufacturingEfficiency=Ražošanas efektivitāte ConsumptionEfficiency=Patēriņa efektivitāte +Consumption=Patēriņš ValueOfMeansLoss=Vērtība 0,95 nozīmē vidēji 5%% zaudējumus ražošanas vai demontāžas laikā ValueOfMeansLossForProductProduced=Vērtība 0,95 nozīmē saražotā produkta zaudējumu vidējo vērtību 5%% DeleteBillOfMaterials=Dzēst materiālus @@ -82,6 +83,7 @@ ProductsToProduce=Izgatavojamie produkti UnitCost=Vienības cena TotalCost=Kopējās izmaksas BOMTotalCost=Šīs BOM izgatavošanas izmaksas, pamatojoties uz katra patērētā daudzuma un produkta izmaksām (izmantojiet pašizmaksu, ja tā ir noteikta, cita - vidējā svērtā cena, ja ir noteikta, citur - labākā pirkuma cena). +BOMTotalCostService=Ja ir aktivizēts modulis "Darbstacija" un rindā pēc noklusējuma ir definēta darbstacija, tad aprēķins ir "daudzums (pārrēķināts stundās) x darbstacija h", pretējā gadījumā "daudzums (pārrēķināts stundās) x pakalpojuma pašizmaksa" GoOnTabProductionToProduceFirst=Vispirms jums ir jāsāk ražošana, lai aizvērtu ražošanas pasūtījumu (sk. Cilni '%s'). Bet jūs varat to atcelt. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Komplektu nevar izmantot BOM vai MO Workstation=Darbstacija @@ -109,6 +111,10 @@ THMEstimatedHelp=Šī likme ļauj noteikt objekta prognozētās izmaksas BOM=Materiālu rēķins CollapseBOMHelp=Nomenklatūras detaļu noklusējuma displeju var definēt MK moduļa konfigurācijā MOAndLines=Ražošanas pasūtījumi un līnijas -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +MoChildGenerate=Ģenerēt Child Mo +ParentMo=MO Vecāks +MOChild=MO bērns +BomCantAddChildBom=Nomenklatūra %s jau atrodas kokā, kas ved uz nomenklatūru %s +BOMNetNeeds = BOM neto vajadzības +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/lv_LV/oauth.lang b/htdocs/langs/lv_LV/oauth.lang index ba808ac55e7..4db6340f052 100644 --- a/htdocs/langs/lv_LV/oauth.lang +++ b/htdocs/langs/lv_LV/oauth.lang @@ -9,12 +9,14 @@ HasAccessToken=Tika izveidots marķieris un saglabāts lokālajā datu bāzē NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Tokens dzēsts -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Noklikšķiniet šeit, lai izdzēstu marķieri +GetAccess=Noklikšķiniet šeit, lai iegūtu žetonu +RequestAccess=Noklikšķiniet šeit, lai pieprasītu/atjaunotu piekļuvi un saņemtu jaunu pilnvaru +DeleteAccess=Noklikšķiniet šeit, lai dzēstu marķieri UseTheFollowingUrlAsRedirectURI=Izmantot savu akreditācijas datus ar OAuth pakalpojumu sniedzēju, izmantojiet šādu URL kā novirzīšanas URI: -ListOfSupportedOauthProviders=Ievadiet OAuth2 sniedzēja sniegtos akreditācijas datus. Šeit ir uzskaitīti tikai atbalstītie OAuth2 pakalpojumu sniedzēji. Šos pakalpojumus var izmantot citi moduļi, kuriem nepieciešama OAuth2 autentifikācija. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Pievienojiet savus OAuth2 pilnvaras nodrošinātājus. Pēc tam atveriet savu OAuth nodrošinātāja administratora lapu, lai izveidotu/iegūtu OAuth ID un noslēpumu un saglabātu tos šeit. Kad tas ir izdarīts, ieslēdziet otru cilni, lai ģenerētu marķieri. +OAuthSetupForLogin=Lapa, kurā pārvaldīt (ģenerēt/dzēst) OAuth pilnvaras SeePreviousTab=Skatīt iepriekšējo cilni +OAuthProvider=OAuth nodrošinātājs OAuthIDSecret=OAuth ID un slepenais TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Derīguma termiņš ir beidzies @@ -23,10 +25,16 @@ TOKEN_DELETE=Dzēst saglabāto pilnvaru OAUTH_GOOGLE_NAME=OAuth Google pakalpojums OAUTH_GOOGLE_ID=OAuth Google ID OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Dodieties uz šo lapu un pēc tam uz "Akreditācijas dati", lai izveidotu OAuth akreditācijas datus. OAUTH_GITHUB_NAME=OAuth GitHub pakalpojums OAUTH_GITHUB_ID=OAuth GitHub ID OAUTH_GITHUB_SECRET=OAuth GitHub noslēpums -OAUTH_GITHUB_DESC=Dodieties uz šo lapu un pēc tam "Reģistrējiet jaunu lietojumprogrammu", lai izveidotu OAuth akreditācijas datus. +OAUTH_URL_FOR_CREDENTIAL=Dodieties uz šo lapu , lai izveidotu vai iegūtu savu OAuth ID un noslēpumu OAUTH_STRIPE_TEST_NAME=OAuth svītras tests OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth noslēpums +OAuthProviderAdded=Pievienots OAuth nodrošinātājs +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=OAuth ieraksts šim nodrošinātājam un iezīmei jau pastāv +URLOfServiceForAuthorization=URL, ko nodrošina OAuth pakalpojums autentifikācijai +Scopes=Atļaujas (tvērumi) +ScopeUndefined=Atļaujas (tvērumi) nav definētas (skatiet iepriekšējo cilni) diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang index afc336f7da4..6f8c400775c 100644 --- a/htdocs/langs/lv_LV/orders.lang +++ b/htdocs/langs/lv_LV/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Ar šo piedāvājumu saistīts pasūtījums jau bija atvērts, tāpēc neviens cits pasūtījums netika izveidots automātiski OrdersArea=Klienti pasūtījumu sadaļa SuppliersOrdersArea=Pirkumu pasūtījumu apgabals OrderCard=Pasūtījumu kartiņa diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index 9e68485120a..c671d722390 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Pirkuma pasūtījums apstiprināts Notify_ORDER_SUPPLIER_REFUSE=Pirkuma pasūtījums noraidīts Notify_PROPAL_VALIDATE=Klientu priekšlikums apstiprināts Notify_PROPAL_CLOSE_SIGNED=Klienta piedāvājums ir noslēgts parakstīts +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Klienta iesniegtais piedāvājums ir noraidīts +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial priekšlikums nosūtīts pa pastu Notify_WITHDRAW_TRANSMIT=Pārraides atsaukšana Notify_WITHDRAW_CREDIT=Kredīta izņemšana @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=... vai izveidojiet savu profilu
    (manuālā moduļ DemoFundation=Pārvaldīt nodibinājuma dalībniekus DemoFundation2=Pārvaldīt dalībniekus un bankas kontu nodibinājumam DemoCompanyServiceOnly=Tikai uzņēmuma vai ārštata pārdošanas pakalpojums -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=Pārvaldiet veikalu ar naudas kasti DemoCompanyProductAndStocks=Veikals, kas pārdod produktus, izmantojot tirdzniecības vietu DemoCompanyManufacturing=Uzņēmums, kas ražo produktus DemoCompanyAll=Uzņēmums ar vairākām darbībām (visi galvenie moduļi) @@ -181,6 +183,7 @@ SizeUnitfoot=pēda SizeUnitpoint=punkts BugTracker=Kļūdu meklētājs SendNewPasswordDesc=Šī veidlapa ļauj pieprasīt jaunu paroli. Tas tiks nosūtīts uz jūsu e-pasta adresi.
    Mainīšana stāsies spēkā pēc tam, kad noklikšķināsit uz e-pasta ziņojuma apstiprinājuma saites.
    Pārbaudiet savu iesūtni. +EnterNewPasswordHere=Šeit ievadiet savu jauno paroli BackToLoginPage=Atpakaļ uz autorizācijas lapu AuthenticationDoesNotAllowSendNewPassword=Autentifikācijas režīms ir %s.
    Šajā režīmā, Dolibarr nevar zināt, ne nomainīt savu paroli.
    Sazinieties ar sistēmas administratoru, ja jūs vēlaties mainīt savu paroli. EnableGDLibraryDesc=Instalējiet vai iespējojiet GD bibliotēku savā PHP instalācijā, lai izmantotu šo opciju. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Rēķins %s ir apstiprināts. EMailTextInvoicePayed=Rēķins %s ir samaksāts. EMailTextProposalValidated=Priekšlikums %s ir apstiprināts. EMailTextProposalClosedSigned=Priekšlikums %s ir slēgts. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Pasūtījums %s ir apstiprināts. EMailTextOrderApproved=Pasūtījums %s ir apstiprināts. EMailTextOrderValidatedBy=Pasūtījums %s ir reģistrēts ar %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Vai tiešām vēlaties "%s"? ConfirmBtnCommonTitle = Apstipriniet savu darbību CloseDialog = Aizvērt Autofill = Automātiskā aizpilde + +# externalsite +ExternalSiteSetup=Ārējo vietņu iestatīšana +ExternalSiteURL=HTML iframe satura ārējās vietnes URL +ExternalSiteModuleNotComplete=Modulis ExternalSite nav pareizi konfigurēts. +ExampleMyMenuEntry=Manas izvēlnes ieraksti + +# ftp +FTPClientSetup=FTP vai SFTP klienta moduļa iestatīšana +NewFTPClient=Jauna FTP/SFTP savienojuma iestatīšana +FTPArea=FTP/SFTP apgabals +FTPAreaDesc=Šajā ekrānā ir redzams FTP un SFTP servera skats. +SetupOfFTPClientModuleNotComplete=Šķiet, ka FTP vai SFTP klienta moduļa iestatīšana ir nepilnīga +FTPFeatureNotSupportedByYourPHP=Jūsu PHP neatbalsta FTP vai SFTP funkcijas +FailedToConnectToFTPServer=Neizdevās izveidot savienojumu ar serveri (serveris %s, ports %s) +FailedToConnectToFTPServerWithCredentials=Neizdevās pieteikties serverī ar definētu pieteikšanās vārdu/paroli +FTPFailedToRemoveFile=Neizdevās noņemt failu %s. +FTPFailedToRemoveDir=Neizdevās noņemt direktoriju %s: pārbaudīt atļaujas un ka katalogs ir tukšs. +FTPPassiveMode=Pasīvais režīms +ChooseAFTPEntryIntoMenu=Izvēlnē izvēlieties FTP/SFTP vietni... +FailedToGetFile=Neizdevās iegūt failus %s +ErrorFTPNodisconnect=Kļūda, atvienojot FTP/SFTP serveri +FileWasUpload=Fails %s tika augšupielādēts +FTPFailedToUploadFile=Neizdevās augšupielādēt failu %s . +AddFolder=Izveidot mapi +FileWasCreateFolder=Mape %s ir izveidota +FTPFailedToCreateFolder=Neizdevās izveidot mapi %s . diff --git a/htdocs/langs/lv_LV/partnership.lang b/htdocs/langs/lv_LV/partnership.lang index 48cc4282e13..977d036d741 100644 --- a/htdocs/langs/lv_LV/partnership.lang +++ b/htdocs/langs/lv_LV/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnerības vadība PartnershipDescription=Partnerības vadības modulis PartnershipDescriptionLong= Partnerības vadības modulis Partnership=Partnerība +Partnerships=Partnerības AddPartnership=Pievienojiet partnerību CancelPartnershipForExpiredMembers=Partnerība: atceļ partnerību ar abonementiem, kuriem beidzies derīguma termiņš PartnershipCheckBacklink=Partnerība: pārbaudiet atsauces saiti @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerība: pārbaudiet atsauces saiti # Menu # NewPartnership=Jauna partnerība +NewPartnershipbyWeb= Jūsu partnerība tika veiksmīgi pievienota. ListOfPartnerships=Partnerības saraksts # diff --git a/htdocs/langs/lv_LV/paypal.lang b/htdocs/langs/lv_LV/paypal.lang index 50ff6da59c2..cba242cd825 100644 --- a/htdocs/langs/lv_LV/paypal.lang +++ b/htdocs/langs/lv_LV/paypal.lang @@ -34,3 +34,4 @@ ARollbackWasPerformedOnPostActions=Atkārtojums tika veikts visos Post darbībā ValidationOfPaymentFailed=Maksājuma apstiprināšana nav izdevies CardOwner=Kartes turētājs PayPalBalance=Paypal kredīts +OnlineSubscriptionPaymentLine=Tiešsaistes abonements reģistrēts %s
    Apmaksāts, izmantojot %s
    Sākotnējā IP adrese: %s a0342fccfdac49fec IDb8 diff --git a/htdocs/langs/lv_LV/productbatch.lang b/htdocs/langs/lv_LV/productbatch.lang index d9d60b4425b..c9f4aeae91e 100644 --- a/htdocs/langs/lv_LV/productbatch.lang +++ b/htdocs/langs/lv_LV/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Lot/Serial: %s printEatby=Eat-by: %s printSellby=Pārdeva: %s printQty=Daudz.: %d +printPlannedWarehouse=Noliktava: %s AddDispatchBatchLine=Add a line for Shelf Life dispatching WhenProductBatchModuleOnOptionAreForced=Kad modulis Lot / Serial ir ieslēgts, automātiskais krājumu samazinājums ir spiests "Samazināt reālo krājumus kuģošanas apstiprinājumā", un automātiskais palielināšanas režīms ir spiests "Palielināt reālos krājumus, manuāli nosūtīt uz noliktavām" un tos nevar rediģēt. Citas iespējas var definēt pēc vajadzības. ProductDoesNotUseBatchSerial=Šis produkts neizmanto partijas/sērijas numuru @@ -43,3 +44,4 @@ HideLots=Slēpt daudz OutOfOrder=Nedarbojas InWorkingOrder=Darba kārtībā ToReplace=Aizvietot +CantMoveNonExistantSerial=Kļūda. Jūs lūdzat pārcelt uz ierakstu seriālam, kas vairs neeksistē. Iespējams, ka vienā sūtījumā vairākas reizes lietojat vienu un to pašu sēriju vienā noliktavā, vai arī to izmantoja cits sūtījums. Izņemiet šo sūtījumu un sagatavojiet citu. diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index df0e318a44f..8227724b700 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -262,7 +262,7 @@ Quarter1=1. Ceturksnis Quarter2=2. Ceturksnis Quarter3=3. Ceturksnis Quarter4=4. Ceturksnis -BarCodePrintsheet=Drukāt svītrukodu +BarCodePrintsheet=Drukāt svītrkodus PageToGenerateBarCodeSheets=Izmantojot šo rīku, varat drukāt svītrkodu uzlīmes. Izvēlieties uzlīmes lapas formātu, svītrkodu veidu un svītrkoda vērtību, pēc tam noklikšķiniet uz pogas %s . NumberOfStickers=Number of stickers to print on page PrintsheetForOneBarCode=Drukāt vairākas svītrkoda uzlīmes @@ -345,7 +345,7 @@ PossibleValues=Iespējamās vērtības GoOnMenuToCreateVairants=Iet uz izvēlni %s - %s, lai sagatavotu atribūtu variantus (piemēram, krāsas, izmērs, ...) UseProductFournDesc=Pievienojiet līdzekli, lai definētu produkta aprakstu, ko definējuši piegādātāji (katrai pārdevēja atsaucei) papildus aprakstam klientiem ProductSupplierDescription=Produkta pārdevēja apraksts -UseProductSupplierPackaging=Izmantojiet iepakojumu uz piegādātāju cenām (pārrēķiniet daudzumus atbilstoši iepakojumam, kas noteikts pēc piegādātāja cenas, pievienojot / atjauninot rindiņu piegādātāja dokumentos) +UseProductSupplierPackaging=Izmantojiet iepakojumu cenām, kas noapaļotas līdz pirkuma cenu reizinātājiem (pārrēķiniet daudzumus atbilstoši pirkuma cenām iestatītajiem reizinātājiem, pievienojot/atjauninot rindu piegādātāja dokumentos) PackagingForThisProduct=Iepakojums PackagingForThisProductDesc=Jūs automātiski iegādāsities vairākus no šī daudzuma. QtyRecalculatedWithPackaging=Līnijas daudzums tika pārrēķināts atbilstoši piegādātāja iesaiņojumam @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Darbība pieejama tikai produkta variantam ProductsPricePerCustomer=Produktu cenas uz vienu klientu ProductSupplierExtraFields=Papildu atribūti (piegādātāju cenas) DeleteLinkedProduct=Izdzēsiet kombinēto produktu, kas saistīts ar to -AmountUsedToUpdateWAP=Summa, kas jāizmanto vidējās svērtās cenas atjaunināšanai +AmountUsedToUpdateWAP=Vienības summa, kas jāizmanto, lai atjauninātu vidējo svērto cenu PMPValue=Vidējā svērtā cena PMPValueShort=VSC mandatoryperiod=Obligātie periodi @@ -416,6 +416,7 @@ ProductsMergeSuccess=Produkti ir apvienoti ErrorsProductsMerge=Kļūdas produktos saplūst SwitchOnSaleStatus=Ieslēgt pārdošanas statusu SwitchOnPurchaseStatus=Ieslēdziet pirkuma statusu +UpdatePrice=Palielināt/samazināt klientu cenu StockMouvementExtraFields= Papildu lauki (akciju kustība) InventoryExtraFields= Papildu lauki (inventārs) ScanOrTypeOrCopyPasteYourBarCodes=Skenējiet ierakstiet vai kopējiet/ielīmējiet savus svītrkodus @@ -427,3 +428,4 @@ RealValuation=Reālā vērtēšana ConfirmEditExtrafield = Atlasiet papildu lauku, kuru vēlaties modificēt ConfirmEditExtrafieldQuestion = Vai tiešām vēlaties modificēt šo papildu lauku? ModifyValueExtrafields = Mainīt ekstralauka vērtību +OrProductsWithCategories=Vai produkti ar tagiem/kategorijām diff --git a/htdocs/langs/lv_LV/projects.lang b/htdocs/langs/lv_LV/projects.lang index f06d1167d8e..dafe30d0ea7 100644 --- a/htdocs/langs/lv_LV/projects.lang +++ b/htdocs/langs/lv_LV/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Projekta nosaukums ProjectsArea=Projektu sadaļa ProjectStatus=Projekta statuss SharedProject=Visi -PrivateProject=Assigned contacts +PrivateProject=Piešķirtie kontakti ProjectsImContactFor=Projekti, par kuriem tieši esmu kontaktpersona AllAllowedProjects=All project I can read (mine + public) AllProjects=Visi projekti @@ -23,6 +23,7 @@ TasksPublicDesc=Šo viedokli iepazīstina visus projektus un uzdevumus, jums ir TasksDesc=Šo viedokli iepazīstina visus projektus un uzdevumus (jūsu lietotāja atļaujas piešķirt jums atļauju skatīt visu). AllTaskVisibleButEditIfYouAreAssigned=Visi uzdevumi kvalificētiem projektiem ir redzami, taču jūs varat ievadīt laiku tikai tam uzdevumam, kas piešķirts izvēlētajam lietotājam. Piešķirt uzdevumu, ja uz to ir jāievada laiks. OnlyYourTaskAreVisible=Ir redzami tikai jums piešķirtie uzdevumi. Ja jums jāievada uzdevuma izpildes laiks un ja uzdevums šeit nav redzams, jums tas jāpiešķir sev. +ImportDatasetProjects=Projekti vai iespējas ImportDatasetTasks=Projektu uzdevumi ProjectCategories=Projekta tagi / sadaļas NewProject=Jauns projekts @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Sasaistīto projektu skaits pēc statusa OpportunitiesStatusForProjects=Sasniedz projektu skaitu pēc statusa ShowProject=Rādīt projektu ShowTask=Rādīt uzdevumu +SetThirdParty=Iestatiet trešo pusi SetProject=Izvēlēties projektu +OutOfProject=Ārpus projekta NoProject=Neviens projekts nosaka, vai īpašumā NbOfProjects=Projektu skaits NbOfTasks=Uzdevumu skaits @@ -122,7 +125,8 @@ ValidateProject=Apstiprināt projektu ConfirmValidateProject=Vai jūs tiešām vēlaties apstiprināt šo projektu? CloseAProject=Aizvērt projektu ConfirmCloseAProject=Vai tiešām vēlaties aizvērt šo projektu? -AlsoCloseAProject=Arī aizveriet projektu (atstājiet to atvērtu, ja jums joprojām ir jāievēro ražošanas uzdevumi) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Atvērt projektu ConfirmReOpenAProject=Vai tiešām vēlaties atvērt šo projektu vēlreiz? ProjectContact=Projekta kontakti @@ -165,7 +169,7 @@ OpportunityProbability=Svina varbūtība OpportunityProbabilityShort=Svina probabs. OpportunityAmount=Svina daudzums OpportunityAmountShort=Svina summa -OpportunityWeightedAmount=Iespēju svērtā summa +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. svērtā summa OpportunityAmountAverageShort=Vidējā svina summa OpportunityAmountWeigthedShort=Svērtā svina summa @@ -238,7 +242,7 @@ OppStatusPENDING=Gaida OppStatusWON=Uzvarēja OppStatusLOST=Zaudēja Budget=Budžets -AllowToLinkFromOtherCompany=Ļaut sasaistīt projektu no cita uzņēmuma

    Atbalstītās vērtības:
    - Saglabāt tukšu: var saistīt jebkuru uzņēmuma projektu (noklusējums)
    - "viss": var saistīt visi projekti, pat citu uzņēmumu projekti
    - Trešo personu ID saraksts, kas atdalīts ar komatiem: var saistīt visus šo trešo pušu projektus (piemērs: 123,4795,53)
    +AllowToLinkFromOtherCompany=Ļauj saistīt elementu ar cita uzņēmuma projektu

    Atbalstītās vērtības:
    - Palikt tukšu: var saistīt elementus ar jebkuru uzņēmumu ar jebkuriem projektiem, pat 4b2ult projektiem ar to pašu saiti. citu uzņēmumu projekti
    — ar komatiem atdalītu trešo pušu ID saraksts: var saistīt elementus ar jebkuriem šo trešo pušu projektiem (piemērs: 123,4795,53)
    LatestProjects=Pēdējie %s projekti LatestModifiedProjects=Jaunākie %s labotie projekti OtherFilteredTasks=Citi filtrētie uzdevumi @@ -259,7 +263,7 @@ TimeSpentInvoiced=Norēķinātais laiks TimeSpentForIntervention=Laiks, kas patērēts TimeSpentForInvoice=Laiks, kas patērēts OneLinePerUser=Viena līnija katram lietotājam -ServiceToUseOnLines=Pakalpojums, ko izmantot līnijās +ServiceToUseOnLines=Pakalpojums, kas pēc noklusējuma jāizmanto līnijās InvoiceGeneratedFromTimeSpent=Rēķins %s ir radīts no projekta pavadīta laika InterventionGeneratedFromTimeSpent=Intervence %s ir izveidota no projektam pavadītā laika ProjectBillTimeDescription=Pārbaudiet, vai projekta uzdevumos ievadāt laika kontrolsarakstu UN Plānojat no laika kontrolsaraksta ģenerēt rēķinu (rēķinus), lai projekta klientam izrakstītu rēķinu (nepārbaudiet, vai plānojat izveidot rēķinu, kas nav balstīts uz ievadītajām laika kontrollapām). Piezīme. Lai ģenerētu rēķinu, dodieties uz projekta cilni “Pavadītais laiks” un atlasiet iekļaujamās līnijas. @@ -282,15 +286,16 @@ ProfitIsCalculatedWith=Peļņa tiek aprēķināta, izmantojot AddPersonToTask=Pievienojiet arī uzdevumiem UsageOrganizeEvent=Lietošana: Pasākumu organizēšana PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klasificējiet projektu kā slēgtu, kad visi tā uzdevumi ir izpildīti (progress 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Piezīme: esošie projekti ar visiem 100%% uzdevumiem netiks ietekmēti: tie būs jāaizver manuāli. Šī opcija ietekmē tikai atvērtos projektus. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Piezīme: esošie projekti, kuru uzdevumi jau ir iestatīti uz progresu 100%%, netiks ietekmēti: tie būs jāaizver manuāli. Šī opcija ietekmē tikai atvērtos projektus. SelectLinesOfTimeSpentToInvoice=Atlasiet pavadītās laika rindas, kas nav izrakstītas, un pēc tam veiciet lielapjoma darbību “Ģenerēt rēķinu”, lai par tām izrakstītu rēķinus ProjectTasksWithoutTimeSpent=Projekta uzdevumi bez pavadīta laika FormForNewLeadDesc=Paldies, ka aizpildījāt šo veidlapu, lai sazinātos ar mums. Varat arī nosūtīt mums e-pastu tieši uz %s . ProjectsHavingThisContact=Projekti ar šo kontaktpersonu StartDateCannotBeAfterEndDate=Beigu datums nevar būt pirms sākuma datuma ErrorPROJECTLEADERRoleMissingRestoreIt=Trūkst lomas "PROJECTLEADER" vai tā ir deaktivizēta. Lūdzu, atjaunojiet kontaktpersonu veidu vārdnīcā -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +LeadPublicFormDesc=Šeit varat iespējot publisku lapu, lai potenciālie klienti varētu pirmo reizi sazināties ar jums, izmantojot publisku tiešsaistes veidlapu +EnablePublicLeadForm=Iespējojiet publisko saziņas veidlapu +NewLeadbyWeb=Jūsu ziņojums vai pieprasījums ir ierakstīts. Mēs drīzumā atbildēsim vai sazināsimies ar jums. +NewLeadForm=Jauna kontaktu forma +LeadFromPublicForm=Tiešsaistes potenciāls no publiskās veidlapas +ExportAccountingReportButtonLabel=Saņemt atskaiti diff --git a/htdocs/langs/lv_LV/propal.lang b/htdocs/langs/lv_LV/propal.lang index 1727bbc79c8..888aa06748e 100644 --- a/htdocs/langs/lv_LV/propal.lang +++ b/htdocs/langs/lv_LV/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Pieejamība kavēšanās SetAvailability=Uzstādīt pieejamību kavēšanos AfterOrder=pēc pasūtījuma OtherProposals=Citi priekšlikumi + ##### Availability ##### AvailabilityTypeAV_NOW=Nekavējoties AvailabilityTypeAV_1W=1 nedēļa AvailabilityTypeAV_2W=2 nedēļas AvailabilityTypeAV_3W=3 nedēļas AvailabilityTypeAV_1M=1 mēnesis -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Pārstāvis turpinot darboties priekšlikums TypeContact_propal_external_BILLING=Klientu rēķinu kontakts TypeContact_propal_external_CUSTOMER=Klientu kontaktu turpinot darboties priekšlikums TypeContact_propal_external_SHIPPING=Klienta kontaktpersona piegādei + # Document models -DocModelAzurDescription=Pilns piedāvājuma modelis (vecā ciāna veidnes ieviešana) -DocModelCyanDescription=Pilns piedāvājuma paraugs -DefaultModelPropalCreate=Noklusējuma modeļa izveide -DefaultModelPropalToBill=Noklusējuma veidne aizverot uzņēmējdarbības priekšlikumu (tiks izrakstīts rēķins) -DefaultModelPropalClosed=Noklusējuma veidne aizverot uzņēmējdarbības priekšlikumu (unbilled) -ProposalCustomerSignature=Written acceptance, company stamp, date and signature -ProposalsStatisticsSuppliers=Pārdevēja priekšlikumi statistikai -CaseFollowedBy=Lieta seko -SignedOnly=Tikai parakstīts -NoSign=Komplekts nav parakstīts -NoSigned=komplekts nav parakstīts CantBeNoSign=nevar iestatīt neparakstīts +CaseFollowedBy=Lieta seko ConfirmMassNoSignature=Lielapjoma Nav parakstīts apstiprinājums ConfirmMassNoSignatureQuestion=Vai tiešām vēlaties iestatīt neparakstītos atlasītos ierakstus? -IsNotADraft=nav melnraksts -PassedInOpenStatus=ir apstiprināts -Sign=Pierakstīties -Signed=parakstīts -ConfirmMassValidation=Lielapjoma Apstiprinājums ConfirmMassSignature=Lielapjoma paraksta apstiprināšana -ConfirmMassValidationQuestion=Vai tiešām vēlaties apstiprināt atlasītos ierakstus? ConfirmMassSignatureQuestion=Vai tiešām vēlaties parakstīt atlasītos ierakstus? -IdProposal=Priekšlikuma ID +ConfirmMassValidation=Lielapjoma Apstiprinājums +ConfirmMassValidationQuestion=Vai tiešām vēlaties apstiprināt atlasītos ierakstus? +ConfirmRefusePropal=Vai tiešām vēlaties noraidīt šo komerciālo piedāvājumu? +ContractSigned=Līgums parakstīts +DefaultModelPropalClosed=Noklusējuma veidne aizverot uzņēmējdarbības priekšlikumu (unbilled) +DefaultModelPropalCreate=Noklusējuma modeļa izveide +DefaultModelPropalToBill=Noklusējuma veidne aizverot uzņēmējdarbības priekšlikumu (tiks izrakstīts rēķins) +DocModelAzurDescription=Pilns piedāvājuma modelis (vecā ciāna veidnes ieviešana) +DocModelCyanDescription=Pilns piedāvājuma paraugs +FichinterSigned=Iejaukšanās parakstīta IdProduct=Produkta ID +IdProposal=Priekšlikuma ID +IsNotADraft=nav melnraksts LineBuyPriceHT=Pirkt cenu Summa bez nodokļiem līnijai -SignPropal=Pieņemt priekšlikumu +NoSign=Atteikt +NoSigned=komplekts nav parakstīts +PassedInOpenStatus=ir apstiprināts +PropalAlreadyRefused=Priekšlikums jau noraidīts +PropalAlreadySigned=Priekšlikums jau pieņemts +PropalRefused=Priekšlikums noraidīts +PropalSigned=Priekšlikums pieņemts +ProposalCustomerSignature=Written acceptance, company stamp, date and signature +ProposalsStatisticsSuppliers=Pārdevēja priekšlikumi statistikai RefusePropal=Atteikt priekšlikumu Sign=Pierakstīties -NoSign=Komplekts nav parakstīts -PropalAlreadySigned=Priekšlikums jau pieņemts -PropalAlreadyRefused=Priekšlikums jau noraidīts -PropalSigned=Priekšlikums pieņemts -PropalRefused=Priekšlikums noraidīts -ConfirmRefusePropal=Vai tiešām vēlaties noraidīt šo komerciālo piedāvājumu? +SignContract=Parakstiet līgumu +SignFichinter=Parakstīt iejaukšanās +SignPropal=Pieņemt priekšlikumu +Signed=parakstīts +SignedOnly=Tikai parakstīts diff --git a/htdocs/langs/lv_LV/receiptprinter.lang b/htdocs/langs/lv_LV/receiptprinter.lang index 4527dbfadb0..1eeae818913 100644 --- a/htdocs/langs/lv_LV/receiptprinter.lang +++ b/htdocs/langs/lv_LV/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Pārbaude nosūtīta printerim %s ReceiptPrinter=Čeku printeri ReceiptPrinterDesc=Iestatījumi čeku printeriem ReceiptPrinterTemplateDesc=Veidņu iestatīšana -ReceiptPrinterTypeDesc=Description of Receipt Printer's type +ReceiptPrinterTypeDesc=Lauka "Parametri" iespējamo vērtību piemērs atbilstoši draivera veidam ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile ListPrinters=Printeru saraksts SetupReceiptTemplate=Veidņu iestatīšana @@ -54,7 +54,9 @@ DOL_DOUBLE_WIDTH=Dubultā platuma izmērs DOL_DEFAULT_HEIGHT_WIDTH=Noklusējuma augstums un platums DOL_UNDERLINE=Iespējot pasvītrojumu DOL_UNDERLINE_DISABLED=Atspējot pasvītrojumu -DOL_BEEP=Bēdas skaņa +DOL_BEEP=Pīkstiena skaņa +DOL_BEEP_ALTERNATIVE=Pīkstiens (alternatīvais režīms) +DOL_PRINT_CURR_DATE=Drukāt pašreizējo datumu/laiku DOL_PRINT_TEXT=Drukāt tekstu DateInvoiceWithTime=Rēķina datums un laiks YearInvoice=Rēķina gads diff --git a/htdocs/langs/lv_LV/receptions.lang b/htdocs/langs/lv_LV/receptions.lang index 55e7edf3314..bef54c7c963 100644 --- a/htdocs/langs/lv_LV/receptions.lang +++ b/htdocs/langs/lv_LV/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Melnraksts StatusReceptionValidatedShort=Apstiprināts StatusReceptionProcessedShort=Apstrādāts ReceptionSheet=Uzņemšanas lapa +ValidateReception=Apstipriniet uzņemšanu ConfirmDeleteReception=Vai tiešām vēlaties dzēst šo uztveršanu? ConfirmValidateReception=Vai tiešām vēlaties apstiprināt šo saņemšanu ar atsauci %s ? ConfirmCancelReception=Vai tiešām vēlaties atcelt šo uzņemšanu? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Pieņemšanas numurēšanas modulis ReceptionsReceiptModel=Pieņemšanas dokumentu veidnes NoMorePredefinedProductToDispatch=Vairs nav iepriekš nosūtītu produktu ReceptionExist=Reģistratūra pastāv -ByingPrice=Pirkšanas cena ReceptionBackToDraftInDolibarr=Saņemšana %s atpakaļ uz melnrakstu ReceptionClassifyClosedInDolibarr=Reģistratūra %s klasificēta Slēgta ReceptionUnClassifyCloseddInDolibarr=Reģistratūra %s atkal tiek atvērta diff --git a/htdocs/langs/lv_LV/recruitment.lang b/htdocs/langs/lv_LV/recruitment.lang index cd80719e8cd..767e232bb99 100644 --- a/htdocs/langs/lv_LV/recruitment.lang +++ b/htdocs/langs/lv_LV/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-pasta vervētājs ToUseAGenericEmail=Lai izmantotu vispārīgu e-pastu. Ja tas nav noteikts, tiks izmantots e-pasts, kas atbildīgs par personāla atlasi NewCandidature=Jauna lietojumprogramma ListOfCandidatures=Lietojumprogrammu saraksts -RequestedRemuneration=Pieprasītā atlīdzība -ProposedRemuneration=Piedāvātā atlīdzība +Remuneration=Alga +RequestedRemuneration=Pieprasītā alga +ProposedRemuneration=Piedāvātā alga ContractProposed=Piedāvātais līgums ContractSigned=Parakstīts līgums ContractRefused=Līgums atteikts RecruitmentCandidature=Pieteikums JobPositions=Darba pozīcijas RecruitmentCandidatures=Pieteikumi -InterviewToDo=Intervija, kas jādara +InterviewToDo=Kontakti, kam sekot AnswerCandidature=Pieteikuma atbilde YourCandidature=Jūsu pieteikums YourCandidatureAnswerMessage=Paldies par jūsu pieteikumu.
    ... diff --git a/htdocs/langs/lv_LV/salaries.lang b/htdocs/langs/lv_LV/salaries.lang index 1f2a1de754e..85a3291dcfb 100644 --- a/htdocs/langs/lv_LV/salaries.lang +++ b/htdocs/langs/lv_LV/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Grāmatvedības konts, ko izmanto trešām pusēm -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Lietotāja kartē norādītais grāmatvedības konts tiks izmantots tikai pakārtotajam grāmatvedim. Šis viens tiks izmantots General Ledger un noklusējuma vērtība Subledged grāmatvedībai, ja lietotāja definēts lietotāju grāmatvedības konts nav definēts. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Grāmatvedības konts pēc noklusējuma algu maksājumiem CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Pēc noklusējuma, veidojot algu, atstājiet tukšu opciju "Automātiski izveidot kopējo maksājumu" Salary=Alga diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang index 536bcf9e53e..9abb3ea35ac 100644 --- a/htdocs/langs/lv_LV/stocks.lang +++ b/htdocs/langs/lv_LV/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Datums nākotnē StocksByLotSerial=Krājumi pēc partijas/sērijas LotSerial=Daudz / sērijas nr LotSerialList=Partijas saraksts / sērijas nr +SubjectToLotSerialOnly=Produkti, uz kuriem attiecas tikai partija/sērija Movements=Kustības ErrorWarehouseRefRequired=Noliktava nosaukums ir obligāts ListOfWarehouses=Saraksts noliktavās @@ -48,7 +49,7 @@ StockCorrection=Krājumu korekcija CorrectStock=Labot krājumus StockTransfer=Krājumu pārvietošana TransferStock=Pārvietot krājumus -MassStockTransferShort=Masveida krājumu pārvietošana +MassStockTransferShort=Lielapjoma krājumu maiņa StockMovement=Krājumu pārvietošana StockMovements=Krājumu pārvietošanas NumberOfUnit=Vienību skaits @@ -142,13 +143,14 @@ ForThisWarehouse=Šai noliktavai ReplenishmentStatusDesc=Šis ir saraksts ar visiem produktiem, kuru krājumi ir mazāki par vēlamo krājumu (vai ir zemāka par brīdinājuma vērtību, ja ir atzīmēta izvēles rūtiņa "tikai brīdinājums"). Izmantojot izvēles rūtiņu, varat izveidot pirkuma pasūtījumus, lai aizpildītu starpību. ReplenishmentStatusDescPerWarehouse=Ja vēlaties papildināšanu, pamatojoties uz vēlamo daudzumu, kas noteikts katrā noliktavā, jums jāpievieno filtrs noliktavā. ReplenishmentOrdersDesc=Šis ir visu atvērto pirkumu pasūtījumu saraksts, ieskaitot iepriekš definētus produktus. Atveriet pasūtījumus tikai ar iepriekš definētiem produktiem, tāpēc šeit ir redzami pasūtījumi, kas var ietekmēt krājumus. -Replenishments=Papildinājumus +Replenishments=Papildinājumi NbOfProductBeforePeriod=Produktu daudzums %s noliktavā pirms izvēlētā perioda (< %s) NbOfProductAfterPeriod=Produktu daudzums %s krājumā pēc izvēlētā perioda (>%s) MassMovement=Masveida pārvietošana -SelectProductInAndOutWareHouse=Atlasiet avota noliktavu un mērķa noliktavu, produktu un daudzumu, pēc tam noklikšķiniet uz "%s". Kad tas ir izdarīts visām nepieciešamajām kustībām, noklikšķiniet uz "%s". +SelectProductInAndOutWareHouse=Atlasiet avota noliktavu (neobligāti), mērķa noliktavu, produktu un daudzumu, pēc tam noklikšķiniet uz "%s". Kad tas ir izdarīts visām nepieciešamajām kustībām, noklikšķiniet uz "%s". RecordMovement=Ierakstīt pārvietošanu -ReceivingForSameOrder=Receipts for this order +RecordMovements=Reģistrēt krājumu kustību +ReceivingForSameOrder=Kvītis par šo pasūtījumu StockMovementRecorded=Krājumu pārvietošana saglabāta RuleForStockAvailability=Noteikumi krājumu nepieciešamībai StockMustBeEnoughForInvoice=Krājumu līmenim ir jābūt pietiekamam, lai produktu / pakalpojumu pievienotu rēķinam (pārbaudiet, vai pašreizējā reālā krājumā tiek pievienota rinda rēķinā neatkarīgi no automātiskās krājumu maiņas noteikuma) @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=Brīdinājuma krājuma limits un pareizi izveidots ProductStockWarehouseUpdated=Uzturvērtības ierobežojums brīdinājumam un vēlamais optimālais krājums ir pareizi atjaunināts ProductStockWarehouseDeleted=Brīdinājuma krājumu limits un vēlamais optimālais krājums ir pareizi svītrots AddNewProductStockWarehouse=Iestatiet jaunu ierobežojumu brīdinājumam un vēlamo optimālo krājumu -AddStockLocationLine=Samaziniet daudzumu, pēc tam noklikšķiniet, lai pievienotu citu izstrādājumu noliktavu +AddStockLocationLine=Samaziniet daudzumu, pēc tam noklikšķiniet, lai sadalītu līniju InventoryDate=Inventāra datums Inventories=Inventāri NewInventory=Jauns inventārs @@ -234,7 +236,7 @@ StockIncrease=Krājumu pieaugums StockDecrease=Krājumu samazinājums InventoryForASpecificWarehouse=Inventārs konkrētai noliktavai InventoryForASpecificProduct=Inventārs konkrētam produktam -StockIsRequiredToChooseWhichLotToUse=Lai izvēlētos izmantojamo partiju, ir nepieciešami krājumi +StockIsRequiredToChooseWhichLotToUse=Esošs krājums ir nepieciešams, lai varētu izvēlēties, kuru partiju izmantot ForceTo=Piespiest līdz AlwaysShowFullArbo=Parādiet pilnu noliktavas koku uznirstošajās noliktavu saitēs (Brīdinājums: tas var dramatiski samazināt veiktspēju) StockAtDatePastDesc=Šeit varat apskatīt krājumus (reālos krājumus) noteiktā datumā pagātnē @@ -254,7 +256,7 @@ ReOpen=Atvērt pa jaunu ConfirmFinish=Vai jūs apstiprināt inventāra slēgšanu? Tas ģenerēs visas krājumu kustības, lai atjauninātu krājumus līdz reālajam daudzumam, kuru ievadījāt krājumā. ObjectNotFound=%s nav atrasts MakeMovementsAndClose=Ģenerējiet kustības un aizveriet -AutofillWithExpected=Aizstāt reālo daudzumu ar paredzamo daudzumu +AutofillWithExpected=Aizpildiet reālo daudzumu ar paredzamo daudzumu ShowAllBatchByDefault=Pēc noklusējuma parādīt partijas informāciju cilnē “Akciju” CollapseBatchDetailHelp=Krājumu moduļa konfigurācijā varat iestatīt partijas detaļu noklusējuma attēlojumu ErrorWrongBarcodemode=Nezināms svītrkoda režīms @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=Produkts ar svītrkodu neeksistē WarehouseId=Noliktavas ID WarehouseRef=Noliktavas atsauce SaveQtyFirst=Vispirms saglabājiet reālos inventarizētos daudzumus, pirms lūdzat izveidot krājumu kustību. +ToStart=Sākt InventoryStartedShort=Sākts ErrorOnElementsInventory=Operācija tika atcelta šāda iemesla dēļ: ErrorCantFindCodeInInventory=Krājumā nevar atrast šādu kodu QtyWasAddedToTheScannedBarcode=Veiksmi!! Daudzums tika pievienots visam pieprasītajam svītrkodam. Varat aizvērt skenera rīku. -StockChangeDisabled=Izmaiņas krājumā ir atspējotas +StockChangeDisabled=Krājumu maiņa ir atspējota NoWarehouseDefinedForTerminal=Terminālim nav noteikta noliktava +ClearQtys=Notīriet visus daudzumus +ModuleStockTransferName=Uzlabota akciju pārsūtīšana +ModuleStockTransferDesc=Uzlabota krājumu pārsūtīšanas pārvaldība ar pārsūtīšanas lapas ģenerēšanu +StockTransferNew=Jaunu akciju nodošana +StockTransferList=Krājumu pārvedumu saraksts +ConfirmValidateStockTransfer=Vai tiešām vēlaties apstiprināt šo akciju nodošanu ar atsauci %s ? +ConfirmDestock=Krājumu samazinājums ar pārskaitījumu %s +ConfirmDestockCancel=Atcelt krājumu samazināšanu ar pārskaitījumu %s +DestockAllProduct=Krājumu samazināšanās +DestockAllProductCancel=Atcelt krājumu samazināšanu +ConfirmAddStock=Palieliniet krājumus ar pārskaitījumu %s +ConfirmAddStockCancel=Atcelt krājumu palielināšanu ar pārskaitījumu %s +AddStockAllProduct=Krājumu palielināšana +AddStockAllProductCancel=Atcelt krājumu palielināšanu +DatePrevueDepart=Paredzētais izbraukšanas datums +DateReelleDepart=Īstais izbraukšanas datums +DatePrevueArrivee=Paredzētais ierašanās datums +DateReelleArrivee=Īstais ierašanās datums +HelpWarehouseStockTransferSource=Ja šī noliktava ir iestatīta, kā avota noliktava būs pieejama tikai pati un tās atvasinājumi +HelpWarehouseStockTransferDestination=Ja šī noliktava ir iestatīta, kā galamērķa noliktava būs pieejama tikai tā pati un tās bērni +LeadTimeForWarning=Izpildes laiks pirms brīdinājuma (dienās) +TypeContact_stocktransfer_internal_STFROM=Krājumu nodošanas sūtītājs +TypeContact_stocktransfer_internal_STDEST=Krājumu nodošanas saņēmējs +TypeContact_stocktransfer_internal_STRESP=Atbildīgs par krājumu nodošanu +StockTransferSheet=Krājumu nodošanas lapa +StockTransferSheetProforma=Proforma akciju nodošanas lapa +StockTransferDecrementation=Samaziniet avotu noliktavas +StockTransferIncrementation=Palieliniet galamērķa noliktavas +StockTransferDecrementationCancel=Atcelt avota noliktavu samazināšanu +StockTransferIncrementationCancel=Atcelt galamērķa noliktavu palielināšanu +StockStransferDecremented=Avotu noliktavas samazinājās +StockStransferDecrementedCancel=Avota noliktavu samazinājums ir atcelts +StockStransferIncremented=Slēgts — Krājumi nodoti +StockStransferIncrementedShort=Krājumi nodoti +StockStransferIncrementedShortCancel=Galamērķa noliktavu palielināšana ir atcelta +StockTransferNoBatchForProduct=Produktam %s netiek izmantota partija, notīriet sēriju tiešsaistē un mēģiniet vēlreiz +StockTransferSetup = Krājumu pārsūtīšanas moduļa konfigurācija +Settings=Iestatījumi +StockTransferSetupPage = Krājumu nodošanas moduļa konfigurācijas lapa +StockTransferRightRead=Lasīt akciju pārskaitījumus +StockTransferRightCreateUpdate=Izveidot/atjaunināt akciju pārvedumus +StockTransferRightDelete=Dzēst akciju pārskaitījumus +BatchNotFound=Šim produktam partija/sērija nav atrasta diff --git a/htdocs/langs/lv_LV/stripe.lang b/htdocs/langs/lv_LV/stripe.lang index 38fac068250..3cb4db99268 100644 --- a/htdocs/langs/lv_LV/stripe.lang +++ b/htdocs/langs/lv_LV/stripe.lang @@ -61,6 +61,7 @@ DeleteACard=Dzēst karti ConfirmDeleteCard=Vai tiešām vēlaties izdzēst šo kredītkarti vai debetkarti? CreateCustomerOnStripe=Izveidojiet klientu joslā CreateCardOnStripe=Izveidojiet karti joslā +CreateBANOnStripe=Izveidojiet banku vietnē Stripe ShowInStripe=Rādīt joslā StripeUserAccountForActions=Lietotāja konts, lai izmantotu e-pasta paziņojumu par dažiem Stripe notikumiem (Stripe izmaksas) StripePayoutList=Svītru izmaksu saraksts @@ -69,3 +70,5 @@ ToOfferALinkForLiveWebhook=Saite uz iestatījumu Stripe WebHook, lai izsauktu IP PaymentWillBeRecordedForNextPeriod=Maksājums tiks reģistrēts par nākamo periodu. ClickHereToTryAgain=Noklikšķiniet šeit, lai mēģinātu vēlreiz ... CreationOfPaymentModeMustBeDoneFromStripeInterface=Stingro klientu autentifikācijas noteikumu dēļ karte jāizveido no Stripe biroja. Jūs varat noklikšķināt šeit, lai ieslēgtu Stripe klientu ierakstu: %s +TERMINAL_LOCATION=Termināļu atrašanās vieta (adrese). +RequestDirectDebitWithStripe=Pieprasiet tiešo debetu, izmantojot Stripe diff --git a/htdocs/langs/lv_LV/suppliers.lang b/htdocs/langs/lv_LV/suppliers.lang index 1282d01fc9a..d0e74c3fed9 100644 --- a/htdocs/langs/lv_LV/suppliers.lang +++ b/htdocs/langs/lv_LV/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Pircēja vārds AllProductServicePrices=Visas produktu / pakalpojumu cenas AllProductReferencesOfSupplier=Visas pārdevēja atsauces BuyingPriceNumShort=Pārdevēja cenas +RepeatableSupplierInvoice=Piegādātāja rēķina veidne +RepeatableSupplierInvoices=Piegādātāja rēķinu veidne +RepeatableSupplierInvoicesList=Piegādātāja rēķinu veidne +RecurringSupplierInvoices=Atkārtoti piegādātāju rēķini +ToCreateAPredefinedSupplierInvoice=Lai izveidotu piegādātāja rēķina veidni, jums ir jāizveido standarta rēķins, pēc tam bez apstiprināšanas noklikšķiniet uz pogas "%s". +GeneratedFromSupplierTemplate=Ģenerēts no piegādātāja rēķina veidnes %s +SupplierInvoiceGeneratedFromTemplate=Piegādātāja rēķins %s Ģenerēts no piegādātāja rēķina veidnes %s diff --git a/htdocs/langs/lv_LV/ticket.lang b/htdocs/langs/lv_LV/ticket.lang index 0f0ea7186a4..73bf0ff7ab4 100644 --- a/htdocs/langs/lv_LV/ticket.lang +++ b/htdocs/langs/lv_LV/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Dzēst pieteikumus Permission56004=Pieteikumu pārvaldīšana Permission56005=Skatīt visu trešo pušu biļetes (nav efektīvas ārējiem lietotājiem, vienmēr aprobežojas ar trešajām personām, no kurām tie ir atkarīgi) +Tickets=Pieteikumi TicketDictType=Pieteikumu veids TicketDictCategory=Pieteikumu - grupas TicketDictSeverity=Pieteikuma svarīgums @@ -90,8 +91,8 @@ TicketPublicAccess=Publiska saskarne, kurai nav nepieciešama identifikācija, i TicketSetupDictionaries=Pieteikumu, svarīgums un analītiskie kodi ir konfigurējami no vārdnīcās TicketParamModule=Moduļa mainīgā iestatīšana TicketParamMail=E-pasta iestatīšana -TicketEmailNotificationFrom=Biļešu atbildēm sūtīt e-pastu -TicketEmailNotificationFromHelp=Sūtītāja e-pasta atbildes uz biļešu atbildēm, kas nosūtītas no Dolibarr +TicketEmailNotificationFrom=Sūtīt e-pastu, lai saņemtu paziņojumu par atbildēm +TicketEmailNotificationFromHelp=Sūtītāja e-pasts, ko izmantot, lai nosūtītu e-pasta paziņojumu, kad atbilde tiek sniegta aizmugures birojā. Piemēram, noreply@example.com TicketEmailNotificationTo=Paziņot par biļetes izveidi uz šo e-pasta adresi TicketEmailNotificationToHelp=Ja tāda ir, šī e-pasta adrese tiks informēta par biļetes izveidi TicketNewEmailBodyLabel=Īsziņa, kas nosūtīta pēc pieteikuma izveides @@ -99,8 +100,8 @@ TicketNewEmailBodyHelp=Šeit norādītais teksts tiks ievietots e-pastā, apstip TicketParamPublicInterface=Publiskās saskarnes iestatīšana TicketsEmailMustExist=Pieprasīt esošu e-pasta adresi, lai izveidotu pieteikumu TicketsEmailMustExistHelp=Publiskā interfeisa e-pasta adrese jau ir jāaizpilda datu bāzē, lai izveidotu jaunu biļeti. -TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. -TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. +TicketCreateThirdPartyWithContactIfNotExist=Nezināmiem e-pastiem jautājiet vārdu un uzņēmuma nosaukumu. +TicketCreateThirdPartyWithContactIfNotExistHelp=Pārbaudiet, vai ievadītajam e-pastam ir trešā puse vai kontaktpersona. Ja nē, lūdziet vārdu un uzņēmuma nosaukumu, lai izveidotu trešo pusi ar kontaktpersonu. PublicInterface=Publiskā saskarne TicketUrlPublicInterfaceLabelAdmin=Alternatīvs publiskā interfeisa URL TicketUrlPublicInterfaceHelpAdmin=Web serverī ir iespējams definēt pseidonīmus un tādējādi padarīt publisko saskarni pieejamu ar citu URL (serverim šajā jaunajā URL jādarbojas kā starpniekserverim) @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Aizverot biļeti, jums tiks piedāvāts nosūtīt zi TicketWrongContact=Norādītā kontaktpersona nav daļa no pašreizējām biļešu kontaktpersonām. E-pasts nav nosūtīts. TicketChooseProductCategory=Produktu kategorija biļešu atbalstam TicketChooseProductCategoryHelp=Atlasiet biļešu atbalsta produktu kategoriju. Tas tiks izmantots, lai automātiski saistītu līgumu ar biļeti. +TicketUseCaptchaCode=Veidojot biļeti, izmantojiet grafisko kodu (CAPTCHA). +TicketUseCaptchaCodeHelp=Veidojot jaunu biļeti, pievieno CAPTCHA verifikāciju. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=Pieteikums ir piešķirts TicketChangeType=Mainīt veidu TicketChangeCategory=Mainīt analītisko kodu TicketChangeSeverity=Mainīt nozīmīgumu -TicketAddMessage=Pievienot ziņu -AddMessage=Pievienot ziņu +TicketAddMessage=Pievienot privātu ziņu MessageSuccessfullyAdded=Pieteikums pievienots TicketMessageSuccessfullyAdded=Ziņojums ir veiksmīgi pievienots TicketMessagesList=Ziņu saraksts @@ -204,8 +206,8 @@ TicketSeverity=Svarīgums ShowTicket=Apskatīt pieteikumu RelatedTickets=Saistītie pieteikumi TicketAddIntervention=Izveidojiet iejaukšanos -CloseTicket=Aizvērt | Atrisināt biļeti -AbandonTicket=Atteikties no biļetes +CloseTicket=Aizvērt|Atrisināt +AbandonTicket=Pamest CloseATicket=Aizvērt | Atrisiniet biļeti ConfirmCloseAticket=Apstiprināt pieteikuma aizvēršanu ConfirmAbandonTicket=Vai jūs apstiprināt biļetes slēgšanu līdz statusam “Pamesta” @@ -219,18 +221,17 @@ SendMessageByEmail=Nosūtīt ziņu pa e-pastu TicketNewMessage=Jauna ziņa ErrorMailRecipientIsEmptyForSendTicketMessage=Saņēmējs ir tukšs. Nav e-pasta nosūtīt TicketGoIntoContactTab=Lūdzu, dodieties uz cilni "Kontakti", lai tos atlasītu -TicketMessageMailIntro=Ievads +TicketMessageMailIntro=Ziņojuma galvene TicketMessageMailIntroHelp=Šis teksts tiek pievienots tikai e-pasta sākumā un netiks saglabāts. -TicketMessageMailIntroLabelAdmin=Ievadteksts visām biļešu atbildēm TicketMessageMailIntroText=Labdien,
    Biļetei, kurai sekojat, ir pievienota jauna atbilde. Šeit ir ziņojums:
    TicketMessageMailIntroHelpAdmin=Šis teksts tiks ievietots pirms atbildes, atbildot uz biļeti no Dolibarr -TicketMessageMailSignature=Paraksts -TicketMessageMailSignatureHelp=Šis teksts tiek pievienots tikai e-pasta ziņojuma beigās un netiks saglabāts. -TicketMessageMailSignatureText=Ziņojumu nosūtīja %s , izmantojot Dolibarr -TicketMessageMailSignatureLabelAdmin=Atbildes e-pasta paraksts -TicketMessageMailSignatureHelpAdmin=Šis teksts tiks ievietots pēc atbildes ziņojuma. +TicketMessageMailFooter=Ziņojuma kājene +TicketMessageMailFooterHelp=Šis teksts tiek pievienots tikai e-pastā nosūtītās ziņas beigās un netiks saglabāts. +TicketMessageMailFooterText=Ziņojumu nosūtīja %s , izmantojot Dolibarr +TicketMessageMailFooterHelpAdmin=Šis teksts tiks ievietots pēc atbildes ziņojuma. TicketMessageHelp=Tikai šis teksts tiks saglabāts ziņojumu sarakstā uz biļešu kartes. TicketMessageSubstitutionReplacedByGenericValues=Mainīšanas mainīgos aizstāj ar vispārējām vērtībām. +ForEmailMessageWillBeCompletedWith=E-pasta ziņojumiem, kas nosūtīti ārējiem lietotājiem, ziņojums tiks pabeigts ar TimeElapsedSince=Laiks pagājis kopš TicketTimeToRead=Laiks, kas pagājis pirms izlasīšanas TicketTimeElapsedBeforeSince=Laiks, kas pagājis pirms / kopš @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Biļetē tika publicēts jauns ziņoj TicketAssignedToYou=Pieteikums piešķirts TicketAssignedEmailBody=Jums piešķīra pieteikumu # %s %s MarkMessageAsPrivate=Atzīmēt ziņu kā privātu +TicketMessageSendEmailHelp=E-pasts tiks nosūtīts visiem piešķirtajiem kontaktiem (iekšējiem kontaktiem, bet arī ārējiem kontaktiem, izņemot, ja ir atzīmēta opcija "%s") TicketMessagePrivateHelp=Šis ziņojums netiks rādīts ārējiem lietotājiem TicketEmailOriginIssuer=Emitents pēc biļetes avota InitialMessage=Sākotnējā ziņa @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Jūs varat apskatīt pieteikuma statusu TicketCloseEmailBodyInfosTrackUrlCustomer=Ar šīs biļetes vēsturi varat iepazīties, noklikšķinot uz šīs saites TicketEmailPleaseDoNotReplyToThisEmail=Lūdzu, neatbildiet tieši uz šo e-pastu! Izmantojiet saiti, lai atbildētu interfeisu. TicketPublicInfoCreateTicket=Šī veidlapa ļauj ierakstīt atbalsta biļeti mūsu vadības sistēmā. -TicketPublicPleaseBeAccuratelyDescribe=Lūdzu, precīzi aprakstiet problēmu. Iesniedziet pēc iespējas vairāk informācijas, lai mēs varētu pareizi identificēt jūsu pieprasījumu. +TicketPublicPleaseBeAccuratelyDescribe=Lūdzu, precīzi aprakstiet savu jautājumu. Sniedziet pēc iespējas vairāk informācijas, lai mēs varētu pareizi identificēt jūsu pieprasījumu. TicketPublicMsgViewLogIn=Lūdzu, ievadiet biļešu izsekošanas ID TicketTrackId=Publiskais izsekošanas ID OneOfTicketTrackId=Viens no jūsu izsekošanas ID diff --git a/htdocs/langs/lv_LV/users.lang b/htdocs/langs/lv_LV/users.lang index c90e3ec50d4..91892cf79ba 100644 --- a/htdocs/langs/lv_LV/users.lang +++ b/htdocs/langs/lv_LV/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Dzēst no grupas PasswordChangedAndSentTo=Parole nomainīta un nosūtīta %s. PasswordChangeRequest=Pieprasījums nomainīt paroli %s PasswordChangeRequestSent=Pieprasīt, lai nomaina paroli, %s nosūtīt %s. -IfLoginExistPasswordRequestSent=Ja šī pieteikšanās ir derīgs konts, ir nosūtīts e-pasts paroles atiestatīšanai. +IfLoginExistPasswordRequestSent=Ja šis pieteikšanās ir derīgs konts (ar derīgu e-pastu), ir nosūtīts e-pasta ziņojums paroles atiestatīšanai. IfEmailExistPasswordRequestSent=Ja šis e-pasts ir derīgs konts, ir nosūtīts e-pasts paroles atiestatīšanai. ConfirmPasswordReset=Paroles atiestatīšanas apstiprināšana MenuUsersAndGroups=Lietotāji un grupas @@ -68,7 +68,6 @@ CreateDolibarrLogin=Izveidot lietotāju CreateDolibarrThirdParty=Izveidot trešo pusi LoginAccountDisableInDolibarr=Konts bloķēts Dolibarr. UsePersonalValue=Izmantot personisko vērtību -InternalUser=Iekšējais lietotājs ExportDataset_user_1=Lietotāji un to īpašības DomainUser=Domēna lietotājs %s Reactivate=Aktivizēt @@ -128,3 +127,5 @@ DateLastLogin=Pēdējās pieteikšanās datums DatePreviousLogin=Iepriekšējās pieteikšanās datums IPLastLogin=IP pēdējā pieteikšanās IPPreviousLogin=IP iepriekšējā pieteikšanās +ShowAllPerms=Rādīt visas atļauju rindas +HideAllPerms=Slēpt visas atļauju rindas diff --git a/htdocs/langs/lv_LV/website.lang b/htdocs/langs/lv_LV/website.lang index fdc8ffeb8d1..5f8211db2d1 100644 --- a/htdocs/langs/lv_LV/website.lang +++ b/htdocs/langs/lv_LV/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kods +WebsiteName=Vietnes nosaukums WebsiteSetupDesc=Izveidojiet šeit vietnes, kuras vēlaties izmantot. Pēc tam dodieties uz izvēlņu vietnes, lai tās rediģētu. DeleteWebsite=Dzēst mājaslapu ConfirmDeleteWebsite=Vai tiešām vēlaties izdzēst šo vietni? Tiks noņemtas arī visas tā lapas un saturs. Augšupielādētie faili (piemēram, datu nesēju direktorijā, ECM modulī utt.) Paliks. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Papildinājums HTML galvenes apakšā (kopīgs visām lapām WEBSITE_ROBOT=Robotfails (robots.txt) WEBSITE_HTACCESS=Tīmekļa vietne .htaccess fails WEBSITE_MANIFEST_JSON=Vietnes manifest.json fails -WEBSITE_README=Fails README.md WEBSITE_KEYWORDSDesc=Lai atdalītu vērtības, izmantojiet komatu -EnterHereLicenseInformation=Ievadiet šeit meta datus vai licences informāciju, lai aizpildītu README.md failu. ja jūs izplatīsit savu vietni kā veidni, fails tiks iekļauts veidņu paketē. +EnterHereReadmeInformation=Ievadiet šeit vietnes aprakstu. Ja izplatāt savu vietni kā veidni, fails tiks iekļauts kārdinājuma pakotnē. +EnterHereLicenseInformation=Šeit ievadiet vietnes koda LICENCI. Ja izplatāt savu vietni kā veidni, fails tiks iekļauts kārdinājuma pakotnē. HtmlHeaderPage=HTML virsraksts (tikai šai lapai) PageNameAliasHelp=Lapas nosaukums vai pseidonīms.
    Šis aizstājvārds tiek izmantots arī, lai izveidotu SEO vietrādi, ja vietne tiek izmantota no Web servera virtuālās saimniekdatora (piemēram, Apacke, Nginx, ...). Izmantojiet pogu " %s , lai rediģētu šo aizstājvārdu. EditTheWebSiteForACommonHeader=Piezīme: ja vēlaties norādīt personalizētu galveni visām lapām, rediģējiet virsrakstu vietnes līmenī, nevis lapā / konteinerā. @@ -42,6 +43,8 @@ ViewPageInNewTab=Skatīt lapu jaunā cilnē SetAsHomePage=Iestatīt kā mājas lapu RealURL=Reāls URL ViewWebsiteInProduction=Apskatīt vietni, izmantojot mājas URL +Virtualhost=Virtuālais saimniekdators vai domēna nosaukums +VirtualhostDesc=Virtuālā saimniekdatora vai domēna nosaukums (piemēram, www.manavietne.com, mansuznemums.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Piemērs izmantošanai Apache virtuālā resursdatora iestatīšanā: YouCanAlsoTestWithPHPS= Izmantojiet ar PHP serveri.
    Izstrādājot vidi, jūs varat izvēlēties testēt vietni ar PHP tīmekļa serveri (nepieciešams PHP 5.5), palaižot
    php -S 0.0. 0.0 8080-t %s @@ -137,7 +140,7 @@ PagesRegenerated=reģenerēta %s lapa (s) / konteiners (-i) RegenerateWebsiteContent=Atjaunojiet tīmekļa vietnes kešatmiņas failus AllowedInFrames=Atļauts rāmjos DefineListOfAltLanguagesInWebsiteProperties=Vietņu rekvizītos definējiet visu pieejamo valodu sarakstu. -GenerateSitemaps=Ģenerēt vietnes vietnes kartes failu +GenerateSitemaps=Ģenerējiet vietnes sitemap.xml failu ConfirmGenerateSitemaps=Ja apstiprināsit, jūs izdzēsīsit esošo vietnes kartes failu ... ConfirmSitemapsCreation=Apstipriniet vietnes kartes ģenerēšanu SitemapGenerated=Vietnes kartes fails %s ģenerēts @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon jābūt png ErrorFaviconSize=Favicon izmēram jābūt 16x16, 32x32 vai 64x64 FaviconTooltip=Augšupielādējiet attēlu, kuram jābūt png (16x16, 32x32 vai 64x64) +NextContainer=Nākamā lapa/konteiners +PreviousContainer=Iepriekšējā lapa/konteiners +WebsiteMustBeDisabled=Vietnei ir jābūt statusam "%s" +WebpageMustBeDisabled=Tīmekļa lapai ir jābūt statusam "%s" +SetWebsiteOnlineBefore=Kad vietne ir bezsaistē, visas lapas ir bezsaistē. Vispirms mainiet vietnes statusu. +Booking=Rezervēšana +Reservation=Rezervācija diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang index 6882e68056d..7b15cbab87b 100644 --- a/htdocs/langs/lv_LV/withdrawals.lang +++ b/htdocs/langs/lv_LV/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Rēķins gaida pārskaitījumu AmountToWithdraw=Summa atsaukt AmountToTransfer=Pārskaitāmā summa NoInvoiceToWithdraw=Par “%s” nav atvērts rēķins. Dodieties uz rēķina kartes cilni '%s', lai iesniegtu pieprasījumu. -NoSupplierInvoiceToWithdraw=Negaida neviens piegādātāja rēķins ar atvērtiem “Tiešā kredīta pieprasījumiem”. Dodieties uz rēķina kartes cilni '%s', lai iesniegtu pieprasījumu. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Lietotājs ir atbildīgs WithdrawalsSetup=Tiešā debeta maksājuma iestatīšana CreditTransferSetup=Kredīta pārveduma iestatīšana @@ -42,6 +42,7 @@ CreditTransferStatistics=Kredīta pārvedumu statistika Rejects=Atteikumi LastWithdrawalReceipt=Jaunākie %s tiešā debeta ieņēmumi MakeWithdrawRequest=Izveidojiet tiešā debeta maksājumu pieprasījumu +MakeWithdrawRequestStripe=Veiciet tiešā debeta maksājuma pieprasījumu, izmantojot Stripe MakeBankTransferOrder=Veiciet kredīta pārveduma pieprasījumu WithdrawRequestsDone=%s reģistrēti tiešā debeta maksājumu pieprasījumi BankTransferRequestsDone=%s reģistrēti kredīta pārveduma pieprasījumi @@ -100,8 +101,11 @@ CreditDate=Kredīts WithdrawalFileNotCapable=Nevar ģenerēt izņemšanas kvīts failu jūsu valstij %s (jūsu valsts netiek atbalstīta) ShowWithdraw=Rādīt tiešā debeta rīkojumu IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tomēr, ja rēķinam ir vismaz viens tiešā debeta maksājuma rīkojums, kas vēl nav apstrādāts, tas netiks iestatīts kā maksāts, lai varētu veikt iepriekšēju izņemšanas pārvaldību. -DoStandingOrdersBeforePayments=Šī cilne ļauj pieprasīt tiešā debeta maksājuma rīkojumu. Kad tas ir izdarīts, dodieties uz izvēlni Banka-> Maksājums ar tiešo debetu, lai ģenerētu un pārvaldītu tiešā debeta rīkojumu. Kad tiešā debeta maksājums tiek aizvērts, rēķinu apmaksa tiks automātiski reģistrēta, un rēķini tiks aizvērti, ja atlikušais maksājuma apjoms nebūs spēkā. -DoCreditTransferBeforePayments=Šī cilne ļauj pieprasīt kredīta pārveduma rīkojumu. Kad tas ir izdarīts, dodieties uz izvēlni Banka-> Maksājums ar pārskaitījumu, lai ģenerētu un pārvaldītu kredīta pārveduma rīkojumu. Kad kredīta pārveduma pasūtījums tiek aizvērts, rēķinu apmaksa tiks automātiski reģistrēta, un rēķini tiks aizvērti, ja atlikušais maksājuma apjoms nebūs spēkā. +DoStandingOrdersBeforePayments=Šajā cilnē varat pieprasīt tiešā debeta maksājuma uzdevumu. Kad tas ir izdarīts, varat doties uz izvēlni "Banka-> Maksājums ar tiešo debetu", lai ģenerētu un pārvaldītu tiešā debeta pasūtījuma failu. +DoStandingOrdersBeforePayments2=Varat arī nosūtīt pieprasījumu tieši SEPA maksājumu apstrādātājam, piemēram, Stripe, ... +DoStandingOrdersBeforePayments3=Kad tiešā debeta pasūtījums tiek aizvērts, rēķinu apmaksa tiks automātiski reģistrēta, un rēķini tiks aizvērti, ja atlikusī maksājuma summa ir nulle. +DoCreditTransferBeforePayments=Šajā cilnē varat pieprasīt kredīta pārveduma pasūtījumu. Kad tas ir izdarīts, atveriet izvēlni "Banka->Maksājums ar kredīta pārvedumu", lai izveidotu un pārvaldītu Kredīta pārveduma uzdevuma failu. +DoCreditTransferBeforePayments3=Kad kredīta pārveduma pasūtījums tiek aizvērts, rēķinu apmaksa tiks automātiski reģistrēta, un rēķini tiks slēgti, ja atlikusī maksājuma summa ir nulles. WithdrawalFile=Debeta pasūtījuma fails CreditTransferFile=Kredīta pārveduma fails SetToStatusSent=Nomainīt uz statusu "Fails nosūtīts" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Nevar izveidot tīrās summas tiešā debeta piepr SepaMandate=SEPA tiešā debeta pilnvarojums SepaMandateShort=SEPA mandāts PleaseReturnMandate=Lūdzu, atsūtiet šo pilnvaru veidlapu pa e-pastu uz adresi %s vai pa pastu uz -SEPALegalText=Parakstot šo pilnvaru veidlapu, jūs pilnvarojat (A) %s nosūtīt norādījumus jūsu bankai debetēt jūsu kontu un (B) savu banku debetēt jūsu kontu saskaņā ar %s norādījumiem. Kā daļu no jūsu tiesībām jums ir tiesības saņemt naudas atmaksu no bankas saskaņā ar jūsu ar banku noslēgtā līguma noteikumiem un nosacījumiem. Jūsu tiesības saistībā ar iepriekš minēto pilnvarojumu ir izskaidrotas paziņojumā, ko varat saņemt savā bankā. +SEPALegalText=Parakstot šo pilnvaru veidlapu, jūs pilnvarojat (A) %s un tā maksājumu pakalpojumu sniedzēju nosūtīt norādījumus jūsu bankai debetēt jūsu kontu un (B) jūsu bankai debetēt jūsu kontu saskaņā ar %s norādījumiem. Kā daļu no jūsu tiesībām jums ir tiesības uz naudas atmaksu no savas bankas saskaņā ar jūsu ar banku noslēgtā līguma noteikumiem un nosacījumiem. Jūsu tiesības saistībā ar iepriekš minēto pilnvarojumu ir izskaidrotas paziņojumā, ko varat saņemt savā bankā. CreditorIdentifier=Kreditora identifikators CreditorName=Kreditora vārds SEPAFillForm=(B) Lūdzu, aizpildiet visus laukus ar atzīmi * diff --git a/htdocs/langs/lv_LV/workflow.lang b/htdocs/langs/lv_LV/workflow.lang index c7b8d5ac73d..8b4c42911b5 100644 --- a/htdocs/langs/lv_LV/workflow.lang +++ b/htdocs/langs/lv_LV/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klasificēt saistīto descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Klasificēt saistītā avota pirkuma pasūtījumu kā saņemtu, kad saņemšana ir apstiprināta (un ja visu pieņemšanu saņemtais daudzums ir tāds pats kā atjaunināmajā pirkuma pasūtījumā) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Saistītā avota pirkuma pasūtījuma klasificēšana kā saņemta, kad pieņemšana ir slēgta (un ja visu pieņemšanu saņemtais daudzums ir tāds pats kā atjaunināmajā pirkuma pasūtījumā) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Klasificējiet pieņemjumus uz “rēķinu”, kad ir apstiprināts saistītā piegādātāja pasūtījums +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Klasificējiet pieņemšanas kā "rēķins", kad ir apstiprināts saistītais pirkuma rēķins (un ja rēķina summa ir tāda pati kā saistīto pieņemšanu kopējā summa) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Veidojot biļeti, saistiet pieejamos atbilstošās trešās puses līgumus descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Saistot līgumus, meklējiet starp mātesuzņēmumu līgumiem @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Kad biļete ir slēgta, aizveriet visas a AutomaticCreation=Automātiska veidošana AutomaticClassification=Automātiskā klasifikācija # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klasificējiet saistītā avota sūtījumu kā slēgtu, kad tiek apstiprināts klienta rēķins +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klasificēt saistītā avota sūtījumu kā slēgtu, kad klienta rēķins ir apstiprināts (un ja rēķina summa ir tāda pati kā saistīto sūtījumu kopējā summa) AutomaticClosing=Automātiska aizvēršana AutomaticLinking=Automātiska saistīšana diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index c2e6f545edc..28796600183 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Земји што не се во Европска економ CountriesInEECExceptMe=Земји во Европската економска заедница освен %s CountriesExceptMe=Сите земји освен %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Главна сметководствена с MainAccountForUsersNotDefined=Главна сметководствена сметка за корисници кои не се дефинирани во сетапот MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/mk_MK/contracts.lang b/htdocs/langs/mk_MK/contracts.lang index e5923c5019a..cf3e60cc4e4 100644 --- a/htdocs/langs/mk_MK/contracts.lang +++ b/htdocs/langs/mk_MK/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Договори / Претплати ContractsAndLine=Договори и линии на договори Contract=Договор ContractLine=Линија на Договор +ContractLines=Contract lines Closing=Затворање NoContracts=Нема Договори MenuServices=Услуги @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Дали сте сигурни дека сакате MoveToAnotherContract=Преместете ја услугата во друг договор. ConfirmMoveToAnotherContract=Избрав нов договор и потврдувам дека сакам да ја префрлам оваа услуга во овој договор. ConfirmMoveToAnotherContractQuestion=Изберете во кој постоечки договор (од истата трета страна) сакате да ја преместите оваа услуга? -PaymentRenewContractId=Обнови договорна линија (број %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Дата на истекување NoExpiredServices=Нема истечени активни услуги ListOfServicesToExpireWithDuration=Листа на услуги што ќе истечат за %s дена @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Контакт на клиент за HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/mk_MK/cron.lang b/htdocs/langs/mk_MK/cron.lang index 2e379333f80..55e7f474b35 100644 --- a/htdocs/langs/mk_MK/cron.lang +++ b/htdocs/langs/mk_MK/cron.lang @@ -26,7 +26,7 @@ CronCommand=Command CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs ? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now ? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Comment CronFieldMandatory=Fields %s is mandatory CronErrEndDateStartDt=End date cannot be before start date StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/mk_MK/datapolicy.lang b/htdocs/langs/mk_MK/datapolicy.lang new file mode 100644 index 00000000000..a73d94231fb --- /dev/null +++ b/htdocs/langs/mk_MK/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Член +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/mk_MK/dict.lang b/htdocs/langs/mk_MK/dict.lang index ec315d97142..00ab5a05f24 100644 --- a/htdocs/langs/mk_MK/dict.lang +++ b/htdocs/langs/mk_MK/dict.lang @@ -21,7 +21,7 @@ CountryNL=Netherlands CountryHU=Hungary CountryRU=Russia CountrySE=Sweden -CountryCI=Ivoiry Coast +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Cameroon @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs. +CivilityMMEShort=Mrs. CivilityMR=Mr. +CivilityMRShort=Mr. CivilityMLE=Ms. CivilityMTRE=Master CivilityDR=Doctor diff --git a/htdocs/langs/mk_MK/errors.lang b/htdocs/langs/mk_MK/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/mk_MK/errors.lang +++ b/htdocs/langs/mk_MK/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/mk_MK/externalsite.lang b/htdocs/langs/mk_MK/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/mk_MK/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/mk_MK/ftp.lang b/htdocs/langs/mk_MK/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/mk_MK/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/mk_MK/hrm.lang b/htdocs/langs/mk_MK/hrm.lang index 44ca9187486..56248824820 100644 --- a/htdocs/langs/mk_MK/hrm.lang +++ b/htdocs/langs/mk_MK/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Отвори компанија CloseEtablishment=Затвори компанија # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Список на оддели +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Вработени @@ -20,13 +20,14 @@ Employee=Вработен NewEmployee=Нов вработен ListOfEmployees=List of employees HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs +JobPosition=Job +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Position -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/mk_MK/mailmanspip.lang b/htdocs/langs/mk_MK/mailmanspip.lang index bab4b3576b4..6ff3ac9f770 100644 --- a/htdocs/langs/mk_MK/mailmanspip.lang +++ b/htdocs/langs/mk_MK/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=A Mailman update will be performed SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) diff --git a/htdocs/langs/mk_MK/mails.lang b/htdocs/langs/mk_MK/mails.lang index a603476af15..93d7ae079ec 100644 --- a/htdocs/langs/mk_MK/mails.lang +++ b/htdocs/langs/mk_MK/mails.lang @@ -7,10 +7,10 @@ MailCard=EMailing card MailRecipients=Recipients MailRecipient=Recipient MailTitle=Description -MailFrom=Sender +MailFrom=From MailErrorsTo=Errors to MailReply=Reply to -MailTo=Receiver(s) +MailTo=To MailToUsers=To user(s) MailCC=Copy to MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/mk_MK/members.lang b/htdocs/langs/mk_MK/members.lang index 8e702edf0af..0dcfba87555 100644 --- a/htdocs/langs/mk_MK/members.lang +++ b/htdocs/langs/mk_MK/members.lang @@ -15,7 +15,8 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Друг член (име: %s ErrorUserPermissionAllowsToLinksToItselfOnly=Од безбедносни причини, мора да ги имате привилегија за едитирање на сите корисници за тие да можат да линкуваат член до корисник што не е ваш. SetLinkToUser=Врска до корисник на Долибар SetLinkToThirdParty=Врска до трета страна на Долибар -MembersCards=Business cards for members +MemberCountersArePublic=Counters of valid members are public +MembersCards=Generation of cards for members MembersList=Листа на членови MembersListToValid=Список на предлог-членови (што треба да се верификуваат) MembersListValid=Листа на валидни членови @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ИД на член +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Нов член MemberType=Тип на член MemberTypeId=ИД на тип на член @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Типот на член не може да се из NewSubscription=Нов придонес NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Late SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Content of your member card # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -159,11 +168,11 @@ HTPasswordExport=htpassword file generation NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Complementary action on recording -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account MoreActionInvoiceOnly=Create an invoice with no payment -LinkToGeneratedPages=Generate visit cards +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. DocForAllMembersCards=Generate business cards for all members DocForOneMemberCards=Generate business cards for a particular member @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Turnover (for a company) or Budget (for a foundation) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Jump on integrated online payment page +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/mk_MK/oauth.lang b/htdocs/langs/mk_MK/oauth.lang index 075ff49a895..e3af5592a0e 100644 --- a/htdocs/langs/mk_MK/oauth.lang +++ b/htdocs/langs/mk_MK/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=A token was generated and saved into local database NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=See previous tab +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired @@ -23,10 +24,13 @@ TOKEN_DELETE=Delete saved token OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang index 49ff93dd589..b7344157bf3 100644 --- a/htdocs/langs/mk_MK/other.lang +++ b/htdocs/langs/mk_MK/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Manage members of a foundation DemoFundation2=Manage members and bank account of a foundation DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash desk +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Company with multiple activities (all main modules) @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Back to login page AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
    In this mode, Dolibarr can't know nor change your password.
    Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -303,3 +309,31 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Close +Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup link to external website +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Failed to remove file %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/mk_MK/propal.lang b/htdocs/langs/mk_MK/propal.lang index 6c4cd394b24..e58b34d4a62 100644 --- a/htdocs/langs/mk_MK/propal.lang +++ b/htdocs/langs/mk_MK/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=No draft proposals CopyPropalFrom=Create commercial proposal by copying existing proposal CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Default commercial proposal validity duration (in days) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Availability delay SetAvailability=Set availability delay AfterOrder=after order OtherProposals=Other proposals + ##### Availability ##### AvailabilityTypeAV_NOW=Immediate AvailabilityTypeAV_1W=1 week AvailabilityTypeAV_2W=2 weeks AvailabilityTypeAV_3W=3 weeks AvailabilityTypeAV_1M=1 month -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representative following-up proposal TypeContact_propal_external_BILLING=Customer invoice contact TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) DefaultModelPropalCreate=Default model creation DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Refuse +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/mk_MK/recruitment.lang b/htdocs/langs/mk_MK/recruitment.lang index 5e3f22fe352..adbf544fdf6 100644 --- a/htdocs/langs/mk_MK/recruitment.lang +++ b/htdocs/langs/mk_MK/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/mn_MN/datapolicy.lang b/htdocs/langs/mn_MN/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/mn_MN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/mn_MN/errors.lang b/htdocs/langs/mn_MN/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/mn_MN/errors.lang +++ b/htdocs/langs/mn_MN/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/mn_MN/externalsite.lang b/htdocs/langs/mn_MN/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/mn_MN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/mn_MN/ftp.lang b/htdocs/langs/mn_MN/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/mn_MN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ms_MY/accountancy.lang b/htdocs/langs/ms_MY/accountancy.lang new file mode 100644 index 00000000000..2ee700e5af0 --- /dev/null +++ b/htdocs/langs/ms_MY/accountancy.lang @@ -0,0 +1,460 @@ +# Dolibarr language file - en_US - Accountancy (Double entries) +Accountancy=Accountancy +Accounting=Accounting +ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file +ACCOUNTING_EXPORT_DATE=Date format for export file +ACCOUNTING_EXPORT_PIECE=Export the number of piece +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account +ACCOUNTING_EXPORT_LABEL=Export label +ACCOUNTING_EXPORT_AMOUNT=Export amount +ACCOUNTING_EXPORT_DEVISE=Export currency +Selectformat=Select the format for the file +ACCOUNTING_EXPORT_FORMAT=Select the format for the file +ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type +ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name +ThisService=This service +ThisProduct=This product +DefaultForService=Default for service +DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty +CantSuggest=Can't suggest +AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s +ConfigAccountingExpert=Configuration of the module accounting (double entry) +Journalization=Journalization +Journals=Journals +JournalFinancial=Financial journals +BackToChartofaccounts=Return chart of accounts +Chartofaccounts=Chart of accounts +ChartOfSubaccounts=Chart of individual accounts +ChartOfIndividualAccountsOfSubsidiaryLedger=Chart of individual accounts of the subsidiary ledger +CurrentDedicatedAccountingAccount=Current dedicated account +AssignDedicatedAccountingAccount=New account to assign +InvoiceLabel=Invoice label +OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account +OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account +OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group? +JournalizationInLedgerStatus=Status of journalization +AlreadyInGeneralLedger=Already transferred to accounting journals and ledger +NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger +GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group +DetailByAccount=Show detail by account +AccountWithNonZeroValues=Accounts with non-zero values +ListOfAccounts=List of accounts +CountriesInEEC=Countries in EEC +CountriesNotInEEC=Countries not in EEC +CountriesInEECExceptMe=Countries in EEC except %s +CountriesExceptMe=All countries except %s +AccountantFiles=Export source documents +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). +ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. +VueByAccountAccounting=View by accounting account +VueBySubAccountAccounting=View by accounting subaccount + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup +MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup + +AccountancyArea=Accounting area +AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: +AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting +AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s +AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s +AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s + +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. +AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. + +AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. + +TheJournalCodeIsNotDefinedOnSomeBankAccount=A mandatory step in setup has not been completed (accounting code journal not defined for all bank accounts) +Selectchartofaccounts=Select active chart of accounts +ChangeAndLoad=Change and load +Addanaccount=Add an accounting account +AccountAccounting=Accounting account +AccountAccountingShort=Account +SubledgerAccount=Subledger account +SubledgerAccountLabel=Subledger account label +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal +ShowAccountingAccountInLedger=Show accounting account in ledger +ShowAccountingAccountInJournals=Show accounting account in journals +AccountAccountingSuggest=Accounting account suggested +MenuDefaultAccounts=Default accounts +MenuBankAccounts=Bank accounts +MenuVatAccounts=Vat accounts +MenuTaxAccounts=Tax accounts +MenuExpenseReportAccounts=Expense report accounts +MenuLoanAccounts=Loan accounts +MenuProductsAccounts=Product accounts +MenuClosureAccounts=Closure accounts +MenuAccountancyClosure=Closure +MenuAccountancyValidationMovements=Validate movements +ProductsBinding=Products accounts +TransferInAccounting=Transfer in accounting +RegistrationInAccounting=Recording in accounting +Binding=Binding to accounts +CustomersVentilation=Customer invoice binding +SuppliersVentilation=Vendor invoice binding +ExpenseReportsVentilation=Expense report binding +CreateMvts=Create new transaction +UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction +WriteBookKeeping=Record transactions in accounting +Bookkeeping=Ledger +BookkeepingSubAccount=Subledger +AccountBalance=Account balance +ObjectsRef=Source object ref +CAHTF=Total purchase vendor before tax +TotalExpenseReport=Total expense report +InvoiceLines=Lines of invoices to bind +InvoiceLinesDone=Bound lines of invoices +ExpenseReportLines=Lines of expense reports to bind +ExpenseReportLinesDone=Bound lines of expense reports +IntoAccount=Bind line with the accounting account +TotalForAccount=Total accounting account + + +Ventilate=Bind +LineId=Id line +Processing=Processing +EndProcessing=Process terminated. +SelectedLines=Selected lines +Lineofinvoice=Line of invoice +LineOfExpenseReport=Line of expense report +NoAccountSelected=No accounting account selected +VentilatedinAccount=Binded successfully to the accounting account +NotVentilatedinAccount=Not bound to the accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account +XLineFailedToBeBinded=%s products/services were not bound to any accounting account + +ACCOUNTING_LIMIT_LIST_VENTILATION=Maximum number of lines on list and bind page (recommended: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements + +ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third-party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zeros at the end of an accounting account. Needed by some countries (like Switzerland). If set to off (default), you can set the following two parameters to ask the application to add virtual zeros. +BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal +ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) +ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default + +ACCOUNTING_SELL_JOURNAL=Sell journal +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal + +ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) +ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure + +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account + +ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait +DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions + +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) + +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) + +ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) + +Doctype=Type of document +Docdate=Date +Docref=Reference +LabelAccount=Label account +LabelOperation=Label operation +Sens=Direction +AccountingDirectionHelp=For an accounting account of a customer, use Credit to record a payment you have received
    For an accounting account of a supplier, use Debit to record a payment you made +LetteringCode=Lettering code +Lettering=Lettering +Codejournal=Journal +JournalLabel=Journal label +NumPiece=Piece number +TransactionNumShort=Num. transaction +AccountingCategory=Custom group +GroupByAccountAccounting=Group by general ledger account +GroupBySubAccountAccounting=Group by subledger account +AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. +ByAccounts=By accounts +ByPredefinedAccountGroups=By predefined groups +ByPersonalizedAccountGroups=By personalized groups +ByYear=By year +NotMatch=Not Set +DeleteMvt=Delete some lines from accounting +DelMonth=Month to delete +DelYear=Year to delete +DelJournal=Journal to delete +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) +FinanceJournal=Finance journal +ExpenseReportsJournal=Expense reports journal +DescFinanceJournal=Finance journal including all the types of payments by bank account +DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Journals and Ledger. +VATAccountNotDefined=Account for VAT not defined +ThirdpartyAccountNotDefined=Account for third party not defined +ProductAccountNotDefined=Account for product not defined +FeeAccountNotDefined=Account for fee not defined +BankAccountNotDefined=Account for bank not defined +CustomerInvoicePayment=Payment of invoice customer +ThirdPartyAccount=Third-party account +NewAccountingMvt=New transaction +NumMvts=Numero of transaction +ListeMvts=List of movements +ErrorDebitCredit=Debit and Credit cannot have a value at the same time +AddCompteFromBK=Add accounting accounts to the group +ReportThirdParty=List third-party account +DescThirdPartyReport=Consult here the list of third-party customers and vendors and their accounting accounts +ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third-party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third-party account. Blocking error +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or third party or user unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Third-party unknown and subledger not defined on the payment. We will keep the subledger account value empty. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledger account not defined or third party or user unknown. Blocking error. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third-party account and waiting account not defined. Blocking error +PaymentsNotLinkedToProduct=Payment not linked to any product / service +OpeningBalance=Opening balance +ShowOpeningBalance=Show opening balance +HideOpeningBalance=Hide opening balance +ShowSubtotalByGroup=Show subtotal by level + +Pcgtype=Group of account +PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. + +Reconcilable=Reconcilable + +TotalVente=Total turnover before tax +TotalMarge=Total sales margin + +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account +DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account +ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +Vide=- +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account +DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account +DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account +DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "%s". +DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account + +Closure=Annual closure +DescClosure=Consult here the number of movements by month who are not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock record... +DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible + +ValidateHistory=Bind Automatically +AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) + +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +Balancing=Balancing +FicheVentilation=Binding card +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +ChangeBinding=Change the binding +Accounted=Accounted in ledger +NotYetAccounted=Not yet transferred to accounting +ShowTutorial=Show Tutorial +NotReconciled=Not reconciled +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts + +## Admin +BindingOptions=Binding options +ApplyMassCategories=Apply mass categories +AddAccountFromBookKeepingWithNoCategories=Available account not yet in the personalized group +CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccountingJournal=Show accounting journal +NatureOfJournal=Nature of Journal +AccountingJournalType1=Miscellaneous operations +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType5=Expenses report +AccountingJournalType8=Inventory +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use +AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s +NumberOfAccountancyEntries=Number of entries +NumberOfAccountancyMovements=Number of movements +ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) + +## Export +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock +ConfirmExportFile=Confirmation of the generation of the accounting export file ? +ExportDraftJournal=Export draft journal +Modelcsv=Model of export +Selectmodelcsv=Select a model of export +Modelcsv_normal=Classic export +Modelcsv_CEGID=Export for CEGID Expert Comptabilité +Modelcsv_COALA=Export for Sage Coala +Modelcsv_bob50=Export for Sage BOB 50 +Modelcsv_ciel=Export for Sage50, Ciel Compta or Compta Evo. (Format XIMPORT) +Modelcsv_quadratus=Export for Quadratus QuadraCompta +Modelcsv_ebp=Export for EBP +Modelcsv_cogilog=Export for Cogilog +Modelcsv_agiris=Export for Agiris Isacompta +Modelcsv_LDCompta=Export for LD Compta (v9) (Test) +Modelcsv_LDCompta10=Export for LD Compta (v10 & higher) +Modelcsv_openconcerto=Export for OpenConcerto (Test) +Modelcsv_configurable=Export CSV Configurable +Modelcsv_FEC=Export FEC +Modelcsv_FEC2=Export FEC (With dates generation writing / document reversed) +Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland +Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta +Modelcsv_Gestinumv3=Export for Gestinum (v3) +Modelcsv_Gestinumv5=Export for Gestinum (v5) +Modelcsv_charlemagne=Export for Aplim Charlemagne +ChartofaccountsId=Chart of accounts Id + +## Tools - Init accounting account on product / service +InitAccountancy=Init accountancy +InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. +DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. +Options=Options +OptionModeProductSell=Mode sales +OptionModeProductSellIntra=Mode sales exported in EEC +OptionModeProductSellExport=Mode sales exported in other countries +OptionModeProductBuy=Mode purchases +OptionModeProductBuyIntra=Mode purchases imported in EEC +OptionModeProductBuyExport=Mode purchased imported from other countries +OptionModeProductSellDesc=Show all products with accounting account for sales. +OptionModeProductSellIntraDesc=Show all products with accounting account for sales in EEC. +OptionModeProductSellExportDesc=Show all products with accounting account for other foreign sales. +OptionModeProductBuyDesc=Show all products with accounting account for purchases. +OptionModeProductBuyIntraDesc=Show all products with accounting account for purchases in EEC. +OptionModeProductBuyExportDesc=Show all products with accounting account for other foreign purchases. +CleanFixHistory=Remove accounting code from lines that not exists into charts of account +CleanHistory=Reset all bindings for selected year +PredefinedGroups=Predefined groups +WithoutValidAccount=Without valid dedicated account +WithValidAccount=With valid dedicated account +ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +AccountRemovedFromGroup=Account removed from group +SaleLocal=Local sale +SaleExport=Export sale +SaleEEC=Sale in EEC +SaleEECWithVAT=Sale in EEC with a VAT not null, so we suppose this is NOT an intracommunautary sale and the suggested account is the standard product account. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fallback on the product account for standard sales. You can fix the VAT ID of thirdparty or the product account if needed. +ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. +ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. +## Dictionary +Range=Range of accounting account +Calculated=Calculated +Formula=Formula + +## Reconcile +Unlettering=Unreconcile +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnlettering=Bulk Unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + +## Error +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) +ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice %s, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused. +ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account. +ExportNotSupported=The export format setuped is not supported into this page +BookeppingLineAlreayExists=Lines already existing into bookkeeping +NoJournalDefined=No journal defined +Binded=Lines bound +ToBind=Lines to bind +UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists + +## Import +ImportAccountingEntries=Accounting entries +ImportAccountingEntriesFECFormat=Accounting entries - FEC format +FECFormatJournalCode=Code journal (JournalCode) +FECFormatJournalLabel=Label journal (JournalLib) +FECFormatEntryNum=Piece number (EcritureNum) +FECFormatEntryDate=Piece date (EcritureDate) +FECFormatGeneralAccountNumber=General account number (CompteNum) +FECFormatGeneralAccountLabel=General account label (CompteLib) +FECFormatSubledgerAccountNumber=Subledger account number (CompAuxNum) +FECFormatSubledgerAccountLabel=Subledger account number (CompAuxLib) +FECFormatPieceRef=Piece ref (PieceRef) +FECFormatPieceDate=Piece date creation (PieceDate) +FECFormatLabelOperation=Label operation (EcritureLib) +FECFormatDebit=Debit (Debit) +FECFormatCredit=Credit (Credit) +FECFormatReconcilableCode=Reconcilable code (EcritureLet) +FECFormatReconcilableDate=Reconcilable date (DateLet) +FECFormatValidateDate=Piece date validated (ValidDate) +FECFormatMulticurrencyAmount=Multicurrency amount (Montantdevise) +FECFormatMulticurrencyCode=Multicurrency code (Idevise) + +DateExport=Date export +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. +ExpenseReportJournal=Expense Report Journal +InventoryJournal=Inventory Journal + +NAccounts=%s accounts diff --git a/htdocs/langs/ms_MY/admin.lang b/htdocs/langs/ms_MY/admin.lang new file mode 100644 index 00000000000..0b178806c88 --- /dev/null +++ b/htdocs/langs/ms_MY/admin.lang @@ -0,0 +1,2288 @@ +# Dolibarr language file - Source file is en_US - admin +BoldRefAndPeriodOnPDF=Print reference and period of product item in PDF +BoldLabelOnPDF=Print label of product item in Bold in PDF +Foundation=Foundation +Version=Version +Publisher=Publisher +VersionProgram=Version program +VersionLastInstall=Initial install version +VersionLastUpgrade=Latest version upgrade +VersionExperimental=Experimental +VersionDevelopment=Development +VersionUnknown=Unknown +VersionRecommanded=Recommended +FileCheck=Fileset Integrity Checks +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to determine if any files have been modified (e.g by a hacker). +FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added. +FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. +GlobalChecksum=Global checksum +MakeIntegrityAnalysisFrom=Make integrity analysis of application files from +LocalSignature=Embedded local signature (less reliable) +RemoteSignature=Remote distant signature (more reliable) +FilesMissing=Missing Files +FilesUpdated=Updated Files +FilesModified=Modified Files +FilesAdded=Added Files +FileCheckDolibarr=Check integrity of application files +AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when the application is installed from an official package +XmlNotFound=Xml Integrity File of application not found +SessionId=Session ID +SessionSaveHandler=Handler to save sessions +SessionSavePath=Session save location +PurgeSessions=Purge of sessions +ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. +LockNewSessions=Lock new connections +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. +UnlockNewSessions=Remove connection lock +YourSession=Your session +Sessions=Users Sessions +WebUserGroup=Web server user/group +PermissionsOnFiles=Permissions on files +PermissionsOnFilesInWebRoot=Permissions on files in web root directory +PermissionsOnFile=Permissions on file %s +NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (%s) may be protected (for example by OS permissions or by PHP directive open_basedir). +DBStoringCharset=Database charset to store data +DBSortingCharset=Database charset to sort data +HostCharset=Host charset +ClientCharset=Client charset +ClientSortingCharset=Client collation +WarningModuleNotActive=Module %s must be enabled +WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. +DolibarrSetup=Dolibarr install or upgrade +InternalUser=Internal user +ExternalUser=External user +InternalUsers=Internal users +ExternalUsers=External users +UserInterface=User interface +GUISetup=Display +SetupArea=Setup +UploadNewTemplate=Upload new template(s) +FormToTestFileUploadForm=Form to test file upload (according to setup) +ModuleMustBeEnabled=The module/application %s must be enabled +ModuleIsEnabled=The module/application %s has been enabled +IfModuleEnabled=Note: yes is effective only if module %s is enabled +RemoveLock=Remove/rename file %s if it exists, to allow usage of the Update/Install tool. +RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. +SecuritySetup=Security setup +PHPSetup=PHP setup +OSSetup=OS setup +SecurityFilesDesc=Define here options related to security about uploading files. +ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher +ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher +ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. +DictionarySetup=Dictionary setup +Dictionary=Dictionaries +ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record +ErrorCodeCantContainZero=Code can't contain value 0 +DisableJavascript=Disable JavaScript and Ajax functions +DisableJavascriptNote=Note: For test or debug purpose only. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user +UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. +UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.
    This may increase performance if you have a large number of third parties, but it is less convenient. +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. +NumberOfKeyToSearch=Number of characters to trigger search: %s +NumberOfBytes=Number of Bytes +SearchString=Search string +NotAvailableWhenAjaxDisabled=Not available when Ajax disabled +AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party +TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months +JavascriptDisabled=JavaScript disabled +UsePreviewTabs=Use preview tabs +ShowPreview=Show preview +ShowHideDetails=Show-Hide details +PreviewNotAvailable=Preview not available +ThemeCurrentlyActive=Theme currently active +MySQLTimeZone=TimeZone MySql (database) +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +Space=Space +Table=Table +Fields=Fields +Index=Index +Mask=Mask +NextValue=Next value +NextValueForInvoices=Next value (invoices) +NextValueForCreditNotes=Next value (credit notes) +NextValueForDeposit=Next value (down payment) +NextValueForReplacements=Next value (replacements) +MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter +NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration +MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) +UseCaptchaCode=Use graphical code (CAPTCHA) on login page +AntiVirusCommand=Full path to antivirus command +AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe +AntiVirusParam= More parameters on command line +AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ComptaSetup=Accounting module setup +UserSetup=User management setup +MultiCurrencySetup=Multi-currency setup +MenuLimits=Limits and accuracy +MenuIdParent=Parent menu ID +DetailMenuIdParent=ID of parent menu (empty for a top menu) +ParentID=Parent ID +DetailPosition=Sort number to define menu position +AllMenus=All +NotConfigured=Module/Application not configured +Active=Active +SetupShort=Setup +OtherOptions=Other options +OtherSetup=Other Setup +CurrentValueSeparatorDecimal=Decimal separator +CurrentValueSeparatorThousand=Thousand separator +Destination=Destination +IdModule=Module ID +IdPermissions=Permissions ID +LanguageBrowserParameter=Parameter %s +LocalisationDolibarrParameters=Localization parameters +ClientHour=Client time (user) +OSTZ=Server OS Time Zone +PHPTZ=PHP server Time Zone +DaylingSavingTime=Daylight saving time +CurrentHour=PHP Time (server) +CurrentSessionTimeOut=Current session timeout +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server. +Box=Widget +Boxes=Widgets +MaxNbOfLinesForBoxes=Max. number of lines for widgets +AllWidgetsWereEnabled=All available widgets are enabled +PositionByDefault=Default order +Position=Position +MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). +MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
    Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. +MenuForUsers=Menu for users +LangFile=.lang file +Language_en_US_es_MX_etc=Language (en_US, es_MX, ...) +System=System +SystemInfo=System information +SystemToolsArea=System tools area +SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature. +Purge=Purge +PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) +PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Parameter can be 'tempfilesold', 'logfiles' or both 'tempfilesold+logfiles'. Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. +PurgeDeleteTemporaryFilesShort=Delete log and temporary files (no risk of losing data) +PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
    This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files. +PurgeRunNow=Purge now +PurgeNothingToDelete=No directory or files to delete. +PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. +PurgeAuditEvents=Purge all security events +ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +GenerateBackup=Generate backup +Backup=Backup +Restore=Restore +RunCommandSummary=Backup has been launched with the following command +BackupResult=Backup result +BackupFileSuccessfullyCreated=Backup file successfully generated +YouCanDownloadBackupFile=The generated file can now be downloaded +NoBackupFileAvailable=No backup files available. +ExportMethod=Export method +ImportMethod=Import method +ToBuildBackupFileClickHere=To build a backup file, click here. +ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.
    For example: +ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: +ImportMySqlCommand=%s %s < mybackupfile.sql +ImportPostgreSqlCommand=%s %s mybackupfile.sql +FileNameToGenerate=Filename for backup: +Compression=Compression +CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import +CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later +ExportCompatibility=Compatibility of generated export file +ExportUseMySQLQuickParameter=Use the --quick parameter +ExportUseMySQLQuickParameterHelp=The '--quick' parameter helps limit RAM consumption for large tables. +MySqlExportParameters=MySQL export parameters +PostgreSqlExportParameters= PostgreSQL export parameters +UseTransactionnalMode=Use transactional mode +FullPathToMysqldumpCommand=Full path to mysqldump command +FullPathToPostgreSQLdumpCommand=Full path to pg_dump command +AddDropDatabase=Add DROP DATABASE command +AddDropTable=Add DROP TABLE command +ExportStructure=Structure +NameColumn=Name columns +ExtendedInsert=Extended INSERT +NoLockBeforeInsert=No lock commands around INSERT +DelayedInsert=Delayed insert +EncodeBinariesInHexa=Encode binary data in hexadecimal +IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) +AutoDetectLang=Autodetect (browser language) +FeatureDisabledInDemo=Feature disabled in demo +FeatureAvailableOnlyOnStable=Feature only available on official stable versions +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it. +OnlyActiveElementsAreShown=Only elements from enabled modules are shown. +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. +ModulesDesc2=Click the wheel button %s to configure the module/application. +ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. +ModulesMarketPlaces=Find external app/modules +ModulesDevelopYourModule=Develop your own app/modules +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. +DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)... +NewModule=New module +FreeModule=Free +CompatibleUpTo=Compatible with version %s +NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s). +CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s). +SeeInMarkerPlace=See in Market place +SeeSetupOfModule=See setup of module %s +SetOptionTo=Set option %s to %s +Updated=Updated +AchatTelechargement=Buy / Download +GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. +DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules +DoliPartnersDesc=List of companies providing custom-developed modules or features.
    Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module. +WebSiteDesc=External websites for more add-on (non-core) modules... +DevelopYourModuleDesc=Some solutions to develop your own module... +URL=URL +RelativeURL=Relative URL +BoxesAvailable=Widgets available +BoxesActivated=Widgets activated +ActivateOn=Activate on +ActiveOn=Activated on +ActivatableOn=Activatable on +SourceFile=Source file +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled +Required=Required +UsedOnlyWithTypeOption=Used by some agenda option only +Security=Security +Passwords=Passwords +DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option. +MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option. +InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
    $dolibarr_main_db_pass="...";
    by
    $dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
    $dolibarr_main_db_pass="crypted:...";
    by
    $dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation. +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +Feature=Feature +DolibarrLicense=License +Developpers=Developers/contributors +OfficialWebSite=Dolibarr official web site +OfficialWebSiteLocal=Local web site (%s) +OfficialWiki=Dolibarr documentation / Wiki +OfficialDemo=Dolibarr online demo +OfficialMarketPlace=Official market place for external modules/addons +OfficialWebHostingService=Referenced web hosting services (Cloud hosting) +ReferencedPreferredPartners=Preferred Partners +OtherResources=Other resources +ExternalResources=External Resources +SocialNetworks=Social Networks +SocialNetworkId=Social Network ID +ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
    take a look at the Dolibarr Wiki:
    %s +ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
    %s +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. +HelpCenterDesc2=Some of these resources are only available in english. +CurrentMenuHandler=Current menu handler +MeasuringUnit=Measuring unit +LeftMargin=Left margin +TopMargin=Top margin +PaperSize=Paper type +Orientation=Orientation +SpaceX=Space X +SpaceY=Space Y +FontSize=Font size +Content=Content +ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +NoticePeriod=Notice period +NewByMonth=New by month +Emails=Emails +EMailsSetup=Emails setup +EMailsDesc=This page allows you to set parameters or options for email sending. +EmailSenderProfiles=Emails sender profiles +EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email. +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: %s) +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) +MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Suggest emails of employees (if defined) into the list of predefined recipient when writing a new email +MAIN_MAIL_SENDMODE=Email sending method +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos) +MAIN_SMS_SENDMODE=Method to use to send SMS +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) +UserEmail=User email +CompanyEmail=Company Email +FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. +FixOnTransifex=Fix the translation on the online translation platform of project +SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr +ModuleSetup=Module setup +ModulesSetup=Modules/Application setup +ModuleFamilyBase=System +ModuleFamilyCrm=Customer Relationship Management (CRM) +ModuleFamilySrm=Vendor Relationship Management (VRM) +ModuleFamilyProducts=Product Management (PM) +ModuleFamilyHr=Human Resource Management (HR) +ModuleFamilyProjects=Projects/Collaborative work +ModuleFamilyOther=Other +ModuleFamilyTechnic=Multi-modules tools +ModuleFamilyExperimental=Experimental modules +ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) +ModuleFamilyECM=Electronic Content Management (ECM) +ModuleFamilyPortal=Websites and other frontal application +ModuleFamilyInterface=Interfaces with external systems +MenuHandlers=Menu handlers +MenuAdmin=Menu editor +DoNotUseInProduction=Do not use in production +ThisIsProcessToFollow=Upgrade procedure: +ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +StepNb=Step %s +FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s). +DownloadPackageFromWebSite=Download package (for example from the official web site %s). +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: %s +UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. +NotExistsDirect=The alternative root directory is not defined to an existing directory.
    +InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    +InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +YouCanSubmitFile=You can upload the .zip file of module package from here: +CurrentVersion=Dolibarr current version +CallUpdatePage=Browse to the page that updates the database structure and data: %s. +LastStableVersion=Latest stable version +LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP +LastActivationVersion=Latest activation version +UpdateServerOffline=Update server offline +WithCounter=Manage a counter +GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags can be used:
    {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
    {000000+000} same as the previous one but an offset corresponding to the number to the right of the + sign is applied starting on the first %s.
    {000000@x} same as the previous one but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then the sequence {yy}{mm} or {yyyy}{mm} is also required.
    {dd} day (01 to 31).
    {mm} month (01 to 12).
    {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
    +GenericMaskCodes2={cccc} the client code on n characters
    {cccc000} the client code on n characters is followed by a counter dedicated to the customer. This counter dedicated to customer is reset at same time as the global counter.
    {tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
    +GenericMaskCodes3=All other characters in the mask will remain intact.
    Spaces are not allowed.
    +GenericMaskCodes3EAN=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13, the last character after the last } in 13th position should be * or ? . It will be replaced by the calculated key.
    +GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    +GenericMaskCodes4b=Example on third party created on 2007-03-01:
    +GenericMaskCodes4c=Example on product created on 2007-03-01:
    +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' +GenericNumRefModelDesc=Returns a customizable number according to a defined mask. +ServerAvailableOnIPOrPort=Server is available at address %s on port %s +ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s +DoTestServerAvailability=Test server connectivity +DoTestSend=Test sending +DoTestSendHTML=Test sending HTML +ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. +UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. +UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
    It must be the octal value (for example, 0666 means read and write for everyone).
    This parameter is useless on a Windows server. +SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization +UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) +DisableLinkToHelpCenter=Hide the link "Need help or support" on the login page +DisableLinkToHelp=Hide the link to the online help "%s" +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed. +ConfirmPurge=Are you sure you want to execute this purge?
    This will permanently delete all your data files with no way to restore them (ECM files, attached files...). +MinLength=Minimum length +LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory +LanguageFile=Language file +ExamplesWithCurrentSetup=Examples with current configuration +ListOfDirectories=List of OpenDocument templates directories +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

    Put here full path of directories.
    Add a carriage return between eah directory.
    To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

    Files in those directories must end with .odt or .ods. +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories +ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    To know how to create your odt document templates, before storing them in those directories, read wiki documentation: +FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template +FirstnameNamePosition=Position of Name/Lastname +DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: +KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) +TestSubmitForm=Input test form +ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours. +ThemeDir=Skins directory +ConnectionTimeout=Connection timeout +ResponseTimeout=Response timeout +SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ +ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. +SecurityToken=Key to secure URLs +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external vendor, but you can find some on %s +PDF=PDF +PDFDesc=Global options for PDF generation +PDFOtherDesc=PDF Option specific to some modules +PDFAddressForging=Rules for address section +HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT +PDFRulesForSalesTax=Rules for Sales Tax / VAT +PDFLocaltax=Rules for %s +HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT +HideDescOnPDF=Hide products description +HideRefOnPDF=Hide products ref. +HideDetailsOnPDF=Hide product lines details +PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position +Library=Library +UrlGenerationParameters=Parameters to secure URLs +SecurityTokenIsUnique=Use a unique securekey parameter for each URL +EnterRefToBuildUrl=Enter reference for object %s +GetSecuredUrl=Get calculated URL +ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +OldVATRates=Old VAT rate +NewVATRates=New VAT rate +PriceBaseTypeToChange=Modify on prices with base reference value defined on +MassConvert=Launch bulk conversion +PriceFormatInCurrentLanguage=Price Format In Current Language +String=String +String1Line=String (1 line) +TextLong=Long text +TextLongNLines=Long text (n lines) +HtmlText=Html text +Int=Integer +Float=Float +DateAndTime=Date and hour +Unique=Unique +Boolean=Boolean (one checkbox) +ExtrafieldPhone = Phone +ExtrafieldPrice = Price +ExtrafieldMail = Email +ExtrafieldUrl = Url +ExtrafieldSelect = Select list +ExtrafieldSelectList = Select from table +ExtrafieldSeparator=Separator (not a field) +ExtrafieldPassword=Password +ExtrafieldRadio=Radio buttons (one choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
    Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

    Example of formula:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Example to reload object
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Other example of formula to force load of object and its parent object:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' +Computedpersistent=Store computed field +ComputedpersistentDesc=Computed extra fields will be stored in the database, however, the value will only be recalculated when the object of this field is changed. If the computed field depends on other objects or global data this value might be wrong!! +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).
    Set 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value) +ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    In order to have the list depending on another list:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    - id_field is necessarly a primary int key
    - filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter witch is the current id of current object
    To do a SELECT in filter use $SEL$
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
    Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)
    Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session) +LibraryToBuildPDF=Library used for PDF generation +LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:
    1: local tax apply on products and services without vat (localtax is calculated on amount without tax)
    2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)
    3: local tax apply on products without vat (localtax is calculated on amount without tax)
    4: local tax apply on products including vat (localtax is calculated on amount + main vat)
    5: local tax apply on services without vat (localtax is calculated on amount without tax)
    6: local tax apply on services including vat (localtax is calculated on amount + tax) +SMS=SMS +LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s +RefreshPhoneLink=Refresh link +LinkToTest=Clickable link generated for user %s (click phone number to test) +KeepEmptyToUseDefault=Keep empty to use default value +KeepThisEmptyInMostCases=In most cases, you can keep this field empy. +DefaultLink=Default link +SetAsDefault=Set as default +ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) +ExternalModule=External module +InstalledInto=Installed into directory %s +BarcodeInitForThirdparties=Mass barcode init for third-parties +BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services +CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. +InitEmptyBarCode=Init value for next %s empty records +EraseAllCurrentBarCode=Erase all current barcode values +ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +AllBarcodeReset=All barcode values have been removed +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. +EnableFileCache=Enable file cache +ShowDetailsInPDFPageFoot=Add more details into footer, such as company address or manager names (in addition to professional ids, company capital and VAT number). +NoDetails=No additional details in footer +DisplayCompanyInfo=Display company address +DisplayCompanyManagers=Display manager names +DisplayCompanyInfoAndManagers=Display company address and manager names +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible. +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code +ModuleCompanyCodeSupplierAquarium=%s followed by vendor code for a vendor accounting code +ModuleCompanyCodePanicum=Return an empty accounting code. +ModuleCompanyCodeDigitaria=Returns a compound accounting code according to the name of the third party. The code consists of a prefix that can be defined in the first position followed by the number of characters defined in the third party code. +ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by the number of characters: %s for the customer accounting code. +ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code. +Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
    Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. +UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... +WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons: +WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM +WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). +WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. +WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. +WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. +ActualMailSPFRecordFound=Actual SPF record found : %s +ClickToShowDescription=Click to show description +DependsOn=This module needs the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter the relative path of the page URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value. +PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third party, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/", so use path like mymodule/mypage.php and not custom/mymodule/mypage.php.
    If you want default value only if url has some parameter, you can use %s +PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s +AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) +EnableDefaultValues=Enable customization of default values +EnableOverwriteTranslation=Enable usage of overwritten translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports +ProjectIsRequiredOnExpenseReports=The project is mandatory for entering an expense report +PrefillExpenseReportDatesWithCurrentMonth=Pre-fill start and end dates of new expense report with start and end dates of the current month +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Force the entry of expense report amounts always in amount with taxes +AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable) +FilesAttachedToEmail=Attach file +SendEmailsReminders=Send agenda reminders by emails +davDescription=Setup a WebDAV server +DAVSetup=Setup of module DAV +DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) +DAV_ALLOW_PRIVATE_DIRTooltip=The generic private directory is a WebDAV directory anybody can access with its application login/pass. +DAV_ALLOW_PUBLIC_DIR=Enable the generic public directory (WebDAV dedicated directory named "public" - no login required) +DAV_ALLOW_PUBLIC_DIRTooltip=The generic public directory is a WebDAV directory anybody can access (in read and write mode), with no authorization required (login/password account). +DAV_ALLOW_ECM_DIR=Enable the DMS/ECM private directory (root directory of the DMS/ECM module - login required) +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it. +# Modules +Module0Name=Users & Groups +Module0Desc=Users / Employees and Groups management +Module1Name=Third Parties +Module1Desc=Companies and contacts management (customers, prospects...) +Module2Name=Commercial +Module2Desc=Commercial management +Module10Name=Accounting (simplified) +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. +Module20Name=Proposals +Module20Desc=Commercial proposal management +Module22Name=Mass Emailings +Module22Desc=Manage bulk emailing +Module23Name=Energy +Module23Desc=Monitoring the consumption of energies +Module25Name=Sales Orders +Module25Desc=Sales order management +Module30Name=Invoices +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers +Module40Name=Vendors +Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) +Module42Name=Debug Logs +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module43Name=Debug Bar +Module43Desc=A tool for developper adding a debug bar in your browser. +Module49Name=Editors +Module49Desc=Editor management +Module50Name=Products +Module50Desc=Management of Products +Module51Name=Mass mailings +Module51Desc=Mass paper mailing management +Module52Name=Stocks +Module52Desc=Stock management +Module53Name=Services +Module53Desc=Management of Services +Module54Name=Contracts/Subscriptions +Module54Desc=Management of contracts (services or recurring subscriptions) +Module55Name=Barcodes +Module55Desc=Barcode or QR code management +Module56Name=Payment by credit transfer +Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. +Module57Name=Payments by Direct Debit +Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. +Module58Name=ClickToDial +Module58Desc=Integration of a ClickToDial system (Asterisk, ...) +Module60Name=Stickers +Module60Desc=Management of stickers +Module70Name=Interventions +Module70Desc=Intervention management +Module75Name=Expense and trip notes +Module75Desc=Expense and trip notes management +Module80Name=Shipments +Module80Desc=Shipments and delivery note management +Module85Name=Banks & Cash +Module85Desc=Management of bank or cash accounts +Module100Name=External Site +Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. +Module105Name=Mailman and SPIP +Module105Desc=Mailman or SPIP interface for member module +Module200Name=LDAP +Module200Desc=LDAP directory synchronization +Module210Name=PostNuke +Module210Desc=PostNuke integration +Module240Name=Data exports +Module240Desc=Tool to export Dolibarr data (with assistance) +Module250Name=Data imports +Module250Desc=Tool to import data into Dolibarr (with assistance) +Module310Name=Members +Module310Desc=Foundation members management +Module320Name=RSS Feed +Module320Desc=Add a RSS feed to Dolibarr pages +Module330Name=Bookmarks & Shortcuts +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access +Module400Name=Projects or Leads +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. +Module410Name=Webcalendar +Module410Desc=Webcalendar integration +Module500Name=Taxes & Special Expenses +Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module510Name=Salaries +Module510Desc=Record and track employee payments +Module520Name=Loans +Module520Desc=Management of loans +Module600Name=Notifications on business event +Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda. +Module610Name=Product Variants +Module610Desc=Creation of product variants (color, size etc.) +Module700Name=Donations +Module700Desc=Donation management +Module770Name=Expense Reports +Module770Desc=Manage expense reports claims (transportation, meal, ...) +Module1120Name=Vendor Commercial Proposals +Module1120Desc=Request vendor commercial proposal and prices +Module1200Name=Mantis +Module1200Desc=Mantis integration +Module1520Name=Document Generation +Module1520Desc=Mass email document generation +Module1780Name=Tags/Categories +Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) +Module2000Name=WYSIWYG editor +Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2200Name=Dynamic Prices +Module2200Desc=Use maths expressions for auto-generation of prices +Module2300Name=Scheduled jobs +Module2300Desc=Scheduled jobs management (alias cron or chrono table) +Module2400Name=Events/Agenda +Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. +Module2500Name=DMS / ECM +Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. +Module2600Name=API/Web services (SOAP server) +Module2600Desc=Enable the Dolibarr SOAP server providing API services +Module2610Name=API/Web services (REST server) +Module2610Desc=Enable the Dolibarr REST server providing API services +Module2660Name=Call WebServices (SOAP client) +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) +Module2700Name=Gravatar +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access +Module2800Desc=FTP Client +Module2900Name=GeoIPMaxmind +Module2900Desc=GeoIP Maxmind conversions capabilities +Module3200Name=Unalterable Archives +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. +Module3400Name=Social Networks +Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). +Module4000Name=HRM +Module4000Desc=Human resources management (management of department, employee contracts and feelings) +Module5000Name=Multi-company +Module5000Desc=Allows you to manage multiple companies +Module6000Name=Inter-modules Workflow +Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) +Module10000Name=Websites +Module10000Desc=Create websites (public) with a WYSIWYG editor. This is a webmaster or developer oriented CMS (it is better to know HTML and CSS language). Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name. +Module20000Name=Leave Request Management +Module20000Desc=Define and track employee leave requests +Module39000Name=Product Lots +Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products +Module40000Name=Multicurrency +Module40000Desc=Use alternative currencies in prices and documents +Module50000Name=PayBox +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50100Name=POS SimplePOS +Module50100Desc=Point of Sale module SimplePOS (simple POS). +Module50150Name=POS TakePOS +Module50150Desc=Point of Sale module TakePOS (touchscreen POS, for shops, bars or restaurants). +Module50200Name=Paypal +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50300Name=Stripe +Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50400Name=Accounting (double entry) +Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module54000Name=PrintIPP +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). +Module55000Name=Poll, Survey or Vote +Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) +Module59000Name=Margins +Module59000Desc=Module to follow margins +Module60000Name=Commissions +Module60000Desc=Module to manage commissions +Module62000Name=Incoterms +Module62000Desc=Add features to manage Incoterms +Module63000Name=Resources +Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Permission11=Read customer invoices +Permission12=Create/modify customer invoices +Permission13=Invalidate customer invoices +Permission14=Validate customer invoices +Permission15=Send customer invoices by email +Permission16=Create payments for customer invoices +Permission19=Delete customer invoices +Permission21=Read commercial proposals +Permission22=Create/modify commercial proposals +Permission24=Validate commercial proposals +Permission25=Send commercial proposals +Permission26=Close commercial proposals +Permission27=Delete commercial proposals +Permission28=Export commercial proposals +Permission31=Read products +Permission32=Create/modify products +Permission34=Delete products +Permission36=See/manage hidden products +Permission38=Export products +Permission39=Ignore minimum price +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission45=Export projects +Permission61=Read interventions +Permission62=Create/modify interventions +Permission64=Delete interventions +Permission67=Export interventions +Permission68=Send interventions by email +Permission69=Validate interventions +Permission70=Invalidate interventions +Permission71=Read members +Permission72=Create/modify members +Permission74=Delete members +Permission75=Setup types of membership +Permission76=Export data +Permission78=Read subscriptions +Permission79=Create/modify subscriptions +Permission81=Read customers orders +Permission82=Create/modify customers orders +Permission84=Validate customers orders +Permission86=Send customers orders +Permission87=Close customers orders +Permission88=Cancel customers orders +Permission89=Delete customers orders +Permission91=Read social or fiscal taxes and vat +Permission92=Create/modify social or fiscal taxes and vat +Permission93=Delete social or fiscal taxes and vat +Permission94=Export social or fiscal taxes +Permission95=Read reports +Permission101=Read sendings +Permission102=Create/modify sendings +Permission104=Validate sendings +Permission105=Send sendings by email +Permission106=Export sendings +Permission109=Delete sendings +Permission111=Read financial accounts +Permission112=Create/modify/delete and compare transactions +Permission113=Setup financial accounts (create, manage categories of bank transactions) +Permission114=Reconcile transactions +Permission115=Export transactions and account statements +Permission116=Transfers between accounts +Permission117=Manage checks dispatching +Permission121=Read third parties linked to user +Permission122=Create/modify third parties linked to user +Permission125=Delete third parties linked to user +Permission126=Export third parties +Permission130=Create/modify third parties payment information +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission146=Read providers +Permission147=Read stats +Permission151=Read direct debit payment orders +Permission152=Create/modify a direct debit payment orders +Permission153=Send/Transmit direct debit payment orders +Permission154=Record Credits/Rejections of direct debit payment orders +Permission161=Read contracts/subscriptions +Permission162=Create/modify contracts/subscriptions +Permission163=Activate a service/subscription of a contract +Permission164=Disable a service/subscription of a contract +Permission165=Delete contracts/subscriptions +Permission167=Export contracts +Permission171=Read trips and expenses (yours and your subordinates) +Permission172=Create/modify trips and expenses +Permission173=Delete trips and expenses +Permission174=Read all trips and expenses +Permission178=Export trips and expenses +Permission180=Read suppliers +Permission181=Read purchase orders +Permission182=Create/modify purchase orders +Permission183=Validate purchase orders +Permission184=Approve purchase orders +Permission185=Order or cancel purchase orders +Permission186=Receive purchase orders +Permission187=Close purchase orders +Permission188=Cancel purchase orders +Permission192=Create lines +Permission193=Cancel lines +Permission194=Read the bandwidth lines +Permission202=Create ADSL connections +Permission203=Order connections orders +Permission204=Order connections +Permission205=Manage connections +Permission206=Read connections +Permission211=Read Telephony +Permission212=Order lines +Permission213=Activate line +Permission214=Setup Telephony +Permission215=Setup providers +Permission221=Read emailings +Permission222=Create/modify emailings (topic, recipients...) +Permission223=Validate emailings (allows sending) +Permission229=Delete emailings +Permission237=View recipients and info +Permission238=Manually send mailings +Permission239=Delete mailings after validation or sent +Permission241=Read categories +Permission242=Create/modify categories +Permission243=Delete categories +Permission244=See the contents of the hidden categories +Permission251=Read other users and groups +PermissionAdvanced251=Read other users +Permission252=Read permissions of other users +Permission253=Create/modify other users, groups and permissions +PermissionAdvanced253=Create/modify internal/external users and permissions +Permission254=Create/modify external users only +Permission255=Modify other users password +Permission256=Delete or disable other users +Permission262=Extend access to all third parties AND their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission263=Extend access to all third parties WITHOUT their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission271=Read CA +Permission272=Read invoices +Permission273=Issue invoices +Permission281=Read contacts +Permission282=Create/modify contacts +Permission283=Delete contacts +Permission286=Export contacts +Permission291=Read tariffs +Permission292=Set permissions on the tariffs +Permission293=Modify customer's tariffs +Permission300=Read barcodes +Permission301=Create/modify barcodes +Permission302=Delete barcodes +Permission311=Read services +Permission312=Assign service/subscription to contract +Permission331=Read bookmarks +Permission332=Create/modify bookmarks +Permission333=Delete bookmarks +Permission341=Read its own permissions +Permission342=Create/modify his own user information +Permission343=Modify his own password +Permission344=Modify its own permissions +Permission351=Read groups +Permission352=Read groups permissions +Permission353=Create/modify groups +Permission354=Delete or disable groups +Permission358=Export users +Permission401=Read discounts +Permission402=Create/modify discounts +Permission403=Validate discounts +Permission404=Delete discounts +Permission430=Use Debug Bar +Permission511=Read salaries and payments (yours and subordinates) +Permission512=Create/modify salaries and payments +Permission514=Delete salaries and payments +Permission517=Read salaries and payments everybody +Permission519=Export salaries +Permission520=Read Loans +Permission522=Create/modify loans +Permission524=Delete loans +Permission525=Access loan calculator +Permission527=Export loans +Permission531=Read services +Permission532=Create/modify services +Permission534=Delete services +Permission536=See/manage hidden services +Permission538=Export services +Permission561=Read payment orders by credit transfer +Permission562=Create/modify payment order by credit transfer +Permission563=Send/Transmit payment order by credit transfer +Permission564=Record Debits/Rejections of credit transfer +Permission601=Read stickers +Permission602=Create/modify stickers +Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials +Permission660=Read Manufacturing Order (MO) +Permission661=Create/Update Manufacturing Order (MO) +Permission662=Delete Manufacturing Order (MO) +Permission701=Read donations +Permission702=Create/modify donations +Permission703=Delete donations +Permission771=Read expense reports (yours and your subordinates) +Permission772=Create/modify expense reports (for you and your subordinates) +Permission773=Delete expense reports +Permission775=Approve expense reports +Permission776=Pay expense reports +Permission777=Read all expense reports (even those of user not subordinates) +Permission778=Create/modify expense reports of everybody +Permission779=Export expense reports +Permission1001=Read stocks +Permission1002=Create/modify warehouses +Permission1003=Delete warehouses +Permission1004=Read stock movements +Permission1005=Create/modify stock movements +Permission1011=View inventories +Permission1012=Create new inventory +Permission1014=Validate inventory +Permission1015=Allow to change PMP value for a product +Permission1016=Delete inventory +Permission1101=Read delivery receipts +Permission1102=Create/modify delivery receipts +Permission1104=Validate delivery receipts +Permission1109=Delete delivery receipts +Permission1121=Read supplier proposals +Permission1122=Create/modify supplier proposals +Permission1123=Validate supplier proposals +Permission1124=Send supplier proposals +Permission1125=Delete supplier proposals +Permission1126=Close supplier price requests +Permission1181=Read suppliers +Permission1182=Read purchase orders +Permission1183=Create/modify purchase orders +Permission1184=Validate purchase orders +Permission1185=Approve purchase orders +Permission1186=Order purchase orders +Permission1187=Acknowledge receipt of purchase orders +Permission1188=Delete purchase orders +Permission1189=Check/Uncheck a purchase order reception +Permission1190=Approve (second approval) purchase orders +Permission1191=Export supplier orders and their attributes +Permission1201=Get result of an export +Permission1202=Create/Modify an export +Permission1231=Read vendor invoices +Permission1232=Create/modify vendor invoices +Permission1233=Validate vendor invoices +Permission1234=Delete vendor invoices +Permission1235=Send vendor invoices by email +Permission1236=Export vendor invoices, attributes and payments +Permission1237=Export purchase orders and their details +Permission1251=Run mass imports of external data into database (data load) +Permission1321=Export customer invoices, attributes and payments +Permission1322=Reopen a paid bill +Permission1421=Export sales orders and attributes +Permission1521=Read documents +Permission1522=Delete documents +Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to) +Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) +Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) +Permission2411=Read actions (events or tasks) of others +Permission2412=Create/modify actions (events or tasks) of others +Permission2413=Delete actions (events or tasks) of others +Permission2414=Export actions/tasks of others +Permission2501=Read/Download documents +Permission2502=Download documents +Permission2503=Submit or delete documents +Permission2515=Setup documents directories +Permission2801=Use FTP client in read mode (browse and download only) +Permission2802=Use FTP client in write mode (delete or upload files) +Permission3200=Read archived events and fingerprints +Permission3301=Generate new modules +Permission4001=Read skill/job/position +Permission4002=Create/modify skill/job/position +Permission4003=Delete skill/job/position +Permission4020=Read evaluations +Permission4021=Create/modify your evaluation +Permission4022=Validate evaluation +Permission4023=Delete evaluation +Permission4030=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information +Permission10001=Read website content +Permission10002=Create/modify website content (html and javascript content) +Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. +Permission10005=Delete website content +Permission20001=Read leave requests (your leave and those of your subordinates) +Permission20002=Create/modify your leave requests (your leave and those of your subordinates) +Permission20003=Delete leave requests +Permission20004=Read all leave requests (even those of user not subordinates) +Permission20005=Create/modify leave requests for everybody (even those of user not subordinates) +Permission20006=Administer leave requests (setup and update balance) +Permission20007=Approve leave requests +Permission23001=Read Scheduled job +Permission23002=Create/update Scheduled job +Permission23003=Delete Scheduled job +Permission23004=Execute Scheduled job +Permission50101=Use Point of Sale (SimplePOS) +Permission50151=Use Point of Sale (TakePOS) +Permission50152=Edit sales lines +Permission50153=Edit ordered sales lines +Permission50201=Read transactions +Permission50202=Import transactions +Permission50330=Read objects of Zapier +Permission50331=Create/Update objects of Zapier +Permission50332=Delete objects of Zapier +Permission50401=Bind products and invoices with accounting accounts +Permission50411=Read operations in ledger +Permission50412=Write/Edit operations in ledger +Permission50414=Delete operations in ledger +Permission50415=Delete all operations by year and journal in ledger +Permission50418=Export operations of the ledger +Permission50420=Report and export reports (turnover, balance, journals, ledger) +Permission50430=Define fiscal periods. Validate transactions and close fiscal periods. +Permission50440=Manage chart of accounts, setup of accountancy +Permission51001=Read assets +Permission51002=Create/Update assets +Permission51003=Delete assets +Permission51005=Setup types of asset +Permission54001=Print +Permission55001=Read polls +Permission55002=Create/modify polls +Permission59001=Read commercial margins +Permission59002=Define commercial margins +Permission59003=Read every user margin +Permission63001=Read resources +Permission63002=Create/modify resources +Permission63003=Delete resources +Permission63004=Link resources to agenda events +Permission64001=Allow direct printing +Permission67000=Allow printing of receipts +Permission68001=Read intracomm report +Permission68002=Create/modify intracomm report +Permission68004=Delete intracomm report +Permission941601=Read receipts +Permission941602=Create and modify receipts +Permission941603=Validate receipts +Permission941604=Send receipts by email +Permission941605=Export receipts +Permission941606=Delete receipts +DictionaryCompanyType=Third-party types +DictionaryCompanyJuridicalType=Third-party legal entities +DictionaryProspectLevel=Prospect potential level for companies +DictionaryProspectContactLevel=Prospect potential level for contacts +DictionaryCanton=States/Provinces +DictionaryRegion=Regions +DictionaryCountry=Countries +DictionaryCurrency=Currencies +DictionaryCivility=Honorific titles +DictionaryActions=Types of agenda events +DictionarySocialContributions=Types of social or fiscal taxes +DictionaryVAT=VAT Rates or Sales Tax Rates +DictionaryRevenueStamp=Amount of tax stamps +DictionaryPaymentConditions=Payment Terms +DictionaryPaymentModes=Payment Modes +DictionaryTypeContact=Contact/Address types +DictionaryTypeOfContainer=Website - Type of website pages/containers +DictionaryEcotaxe=Ecotax (WEEE) +DictionaryPaperFormat=Paper formats +DictionaryFormatCards=Card formats +DictionaryFees=Expense report - Types of expense report lines +DictionarySendingMethods=Shipping methods +DictionaryStaff=Number of Employees +DictionaryAvailability=Delivery delay +DictionaryOrderMethods=Order methods +DictionarySource=Origin of proposals/orders +DictionaryAccountancyCategory=Personalized groups for reports +DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals +DictionaryEMailTemplates=Email Templates +DictionaryUnits=Units +DictionaryMeasuringUnits=Measuring Units +DictionarySocialNetworks=Social Networks +DictionaryProspectStatus=Prospect status for companies +DictionaryProspectContactStatus=Prospect status for contacts +DictionaryHolidayTypes=Leave - Types of leave +DictionaryOpportunityStatus=Lead status for project/lead +DictionaryExpenseTaxCat=Expense report - Transportation categories +DictionaryExpenseTaxRange=Expense report - Range by transportation category +DictionaryTransportMode=Intracomm report - Transport mode +DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets +TypeOfUnit=Type of unit +SetupSaved=Setup saved +SetupNotSaved=Setup not saved +BackToModuleList=Back to Module list +BackToDictionaryList=Back to Dictionaries list +TypeOfRevenueStamp=Type of tax stamp +VATManagement=Sales Tax Management +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sales Tax rate follows the active standard rule:
    If the seller is not subject to Sales tax, then Sales tax defaults to 0. End of rule.
    If the (seller's country = buyer's country), then the Sales tax by default equals the Sales tax of the product in the seller's country. End of rule.
    If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default VAT is 0. This rule is dependant on the seller's country - please consult with your accountant. The VAT should be paid by the buyer to the customs office in their country and not to the seller. End of rule.
    If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community VAT number) then the VAT defaults to the VAT rate of the seller's country. End of rule.
    If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community VAT number), then the VAT is 0 by default. End of rule.
    In any other case the proposed default is Sales tax=0. End of rule. +VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for cases like associations, individuals or small companies. +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. +VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration. This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices. +##### Local Taxes ##### +TypeOfSaleTaxes=Type of sales tax +LTRate=Rate +LocalTax1IsNotUsed=Do not use second tax +LocalTax1IsUsedDesc=Use a second type of tax (other than first one) +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax1Management=Second type of tax +LocalTax1IsUsedExample= +LocalTax1IsNotUsedExample= +LocalTax2IsNotUsed=Do not use third tax +LocalTax2IsUsedDesc=Use a third type of tax (other than first one) +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax2Management=Third type of tax +LocalTax2IsUsedExample= +LocalTax2IsNotUsedExample= +LocalTax1ManagementES=RE Management +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the buyer is not subjected to RE, RE by default=0. End of rule.
    If the buyer is subjected to RE then the RE by default. End of rule.
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule. +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE. +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE. +LocalTax2ManagementES=IRPF Management +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
    If the seller is subjected to IRPF then the IRPF by default. End of rule.
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule. +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules. +RevenueStampDesc=The "tax stamp" or "revenue stamp" is a fixed tax you per invoice (It does not depend on amount of invoice). It can also be a percent tax but using the second or third type of tax is better for percent taxes as tax stamps does not provide any reporting. Only few countries uses this type of tax. +UseRevenueStamp=Use a tax stamp +UseRevenueStampExample=The value of tax stamp is defined by default into the setup of dictionaries (%s - %s - %s) +CalcLocaltax=Reports on local taxes +CalcLocaltax1=Sales - Purchases +CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases +CalcLocaltax2=Purchases +CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases +CalcLocaltax3=Sales +CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales +NoLocalTaxXForThisCountry=According to the setup of taxes (See %s - %s - %s), your country does not need to use such type of tax +LabelUsedByDefault=Label used by default if no translation can be found for code +LabelOnDocuments=Label on documents +LabelOrTranslationKey=Label or translation key +ValueOfConstantKey=Value of a configuration constant +ConstantIsOn=Option %s is on +NbOfDays=No. of days +AtEndOfMonth=At end of month +CurrentNext=Current/Next +Offset=Offset +AlwaysActive=Always active +Upgrade=Upgrade +MenuUpgrade=Upgrade / Extend +AddExtensionThemeModuleOrOther=Deploy/install external app/module +WebServer=Web server +DocumentRootServer=Web server's root directory +DataRootServer=Data files directory +IP=IP +Port=Port +VirtualServerName=Virtual server name +OS=OS +PhpWebLink=Web-Php link +Server=Server +Database=Database +DatabaseServer=Database host +DatabaseName=Database name +DatabasePort=Database port +DatabaseUser=Database user +DatabasePassword=Database password +Tables=Tables +TableName=Table name +NbOfRecord=No. of records +Host=Server +DriverType=Driver type +SummarySystem=System information summary +SummaryConst=List of all Dolibarr setup parameters +MenuCompanySetup=Company/Organization +DefaultMenuManager= Standard menu manager +DefaultMenuSmartphoneManager=Smartphone menu manager +Skin=Skin theme +DefaultSkin=Default skin theme +MaxSizeList=Max length for list +DefaultMaxSizeList=Default max length for lists +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) +MessageOfDay=Message of the day +MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image +PermanentLeftSearchForm=Permanent search form on left menu +DefaultLanguage=Default language +EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships +EnableShowLogo=Show the company logo in the menu +CompanyInfo=Company/Organization +CompanyIds=Company/Organization identities +CompanyName=Name +CompanyAddress=Address +CompanyZip=Zip +CompanyTown=Town +CompanyCountry=Country +CompanyCurrency=Main currency +CompanyObject=Object of the company +IDCountry=ID country +Logo=Logo +LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...) +LogoSquarred=Logo (squarred) +LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into display setup). +DoNotSuggestPaymentMode=Do not suggest +NoActiveBankAccountDefined=No active bank account defined +OwnerOfBankAccount=Owner of bank account %s +BankModuleNotActive=Bank accounts module not enabled +ShowBugTrackLink=Show the link "%s" +ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' +Alerts=Alerts +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... +DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. +Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time +Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposal not closed +Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate +Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation +Delays_MAIN_DELAY_MEMBERS=Delayed membership fee +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done +Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve +Delays_MAIN_DELAY_HOLIDAYS=Leave requests to approve +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured. +SetupDescription2=The following two sections are mandatory (the two first entries in the Setup menu): +SetupDescription3=%s -> %s

    Basic parameters used to customize the default behavior of your application (e.g for country-related features). +SetupDescription4=%s -> %s

    This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. +SetupDescription5=Other Setup menu entries manage optional parameters. +SetupDescriptionLink=%s - %s +SetupDescription3b=Basic parameters used to customize the default behavior of your application (e.g for country-related features). +SetupDescription4b=This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. +AuditedSecurityEvents=Security events that are audited +NoSecurityEventsAreAduited=No security events are audited. You can enable them from menu %s +Audit=Security events +InfoDolibarr=About Dolibarr +InfoBrowser=About Browser +InfoOS=About OS +InfoWebServer=About Web Server +InfoDatabase=About Database +InfoPHP=About PHP +InfoPerf=About Performances +InfoSecurity=About Security +BrowserName=Browser name +BrowserOS=Browser OS +ListOfSecurityEvents=List of Dolibarr security events +SecurityEventsPurged=Security events purged +LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. +AreaForAdminOnly=Setup parameters can be set by administrator users only. +SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. +SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. +CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. +AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantFileNumber=Accountant code +DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. +AvailableModules=Available app/modules +ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). +SessionTimeOut=Time out for session +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every %s/%s access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).
    Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is. +SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every %s seconds (= value of parameter session.gc_maxlifetime), so changing the value here has no effect. You must ask the server administrator to change session delay. +TriggersAvailable=Available triggers +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...). +TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. +TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. +TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. +TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. +GeneratedPasswordDesc=Choose the method to be used for auto-generated passwords. +DictionaryDesc=Insert all reference data. You can add your values to the default. +ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting only. +MiscellaneousDesc=All other security related parameters are defined here. +LimitsSetup=Limits/Precision setup +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here +MAIN_MAX_DECIMALS_UNIT=Max. decimals for unit prices +MAIN_MAX_DECIMALS_TOT=Max. decimals for total prices +MAIN_MAX_DECIMALS_SHOWN=Max. decimals for prices shown on screen. Add an ellipsis ... after this parameter (e.g. "2...") if you want to see "..." suffixed to the truncated price. +MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +UnitPriceOfProduct=Net unit price of a product +TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding +ParameterActiveForNextInputOnly=Parameter effective for next input only +NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page. +NoEventFoundWithCriteria=No security event has been found for this search criteria. +SeeLocalSendMailSetup=See your local sendmail setup +BackupDesc=A complete backup of a Dolibarr installation requires two steps. +BackupDesc2=Backup the contents of the "documents" directory (%s) containing all uploaded and generated files. This will also include all the dump files generated in Step 1. This operation may last several minutes. +BackupDesc3=Backup the structure and contents of your database (%s) into a dump file. For this, you can use the following assistant. +BackupDescX=The archived directory should be stored in a secure place. +BackupDescY=The generated dump file should be stored in a secure place. +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended. +RestoreDesc=To restore a Dolibarr backup, two steps are required. +RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (%s). +RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.
    To restore a backup database into this current installation, you can follow this assistant. +RestoreMySQL=MySQL import +ForcedToByAModule=This rule is forced to %s by an activated module +ValueIsForcedBySystem=This value is forced by the system. You can't change it. +PreviousDumpFiles=Existing backup files +PreviousArchiveFiles=Existing archive files +WeekStartOnDay=First day of the week +RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. +YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP +DownloadMoreSkins=More skins to download +SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset +ShowProfIdInAddress=Show professional ID with addresses +ShowVATIntaInAddress=Hide intra-Community VAT number +TranslationUncomplete=Partial translation +MAIN_DISABLE_METEO=Disable weather thumb +MeteoStdMod=Standard mode +MeteoStdModEnabled=Standard mode enabled +MeteoPercentageMod=Percentage mode +MeteoPercentageModEnabled=Percentage mode enabled +MeteoUseMod=Click to use %s +TestLoginToAPI=Test login to API +ProxyDesc=Some features of Dolibarr require internet access. Define here the internet connection parameters such as access through a proxy server if necessary. +ExternalAccess=External/Internet Access +MAIN_PROXY_USE=Use a proxy server (otherwise access is direct to the internet) +MAIN_PROXY_HOST=Proxy server: Name/Address +MAIN_PROXY_PORT=Proxy server: Port +MAIN_PROXY_USER=Proxy server: Login/User +MAIN_PROXY_PASS=Proxy server: Password +DefineHereComplementaryAttributes=Define any additional / custom attributes that must be added to: %s +ExtraFields=Complementary attributes +ExtraFieldsLines=Complementary attributes (lines) +ExtraFieldsLinesRec=Complementary attributes (templates invoices lines) +ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) +ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) +ExtraFieldsThirdParties=Complementary attributes (third party) +ExtraFieldsContacts=Complementary attributes (contacts/address) +ExtraFieldsMember=Complementary attributes (member) +ExtraFieldsMemberType=Complementary attributes (member type) +ExtraFieldsCustomerInvoices=Complementary attributes (invoices) +ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices) +ExtraFieldsSupplierOrders=Complementary attributes (orders) +ExtraFieldsSupplierInvoices=Complementary attributes (invoices) +ExtraFieldsProject=Complementary attributes (projects) +ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) +ExtraFieldHasWrongValue=Attribute %s has a wrong value. +AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space +SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). +PathToDocuments=Path to documents +PathDirectory=Directory +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages. +TranslationSetup=Setup of translation +TranslationKeySearch=Search a translation key or string +TranslationOverwriteKey=Overwrite a translation string +TranslationDesc=How to set the display language:
    * Default/Systemwide: menu Home -> Setup -> Display
    * Per user: Click on the username at the top of the screen and modify the User Display Setup tab on the user card. +TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use +TranslationString=Translation string +CurrentTranslationString=Current translation string +WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string +NewTranslationStringToShow=New translation string to show +OriginalValueWas=The original translation is overwritten. Original value was:

    %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exist in any language files +TitleNumberOfActivatedModules=Activated modules +TotalNumberOfActivatedModules=Activated modules: %s / %s +YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +ClassNotFoundIntoPathWarning=Class %s not found in PHP path +YesInSummer=Yes in summer +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    +SuhosinSessionEncrypt=Session storage encrypted by Suhosin +ConditionIsCurrently=Condition is currently %s +YouUseBestDriver=You use driver %s which is the best driver currently available. +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. +ComboListOptim=Combo list loading optimization +SearchOptim=Search optimization +YouHaveXObjectUseComboOptim=You have %s %s in the database. You can go into setup of module to enable loading of combo list on key pressed event. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. +YouHaveXObjectUseSearchOptimDesc=This limits the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to %s in Home-Setup-Other. +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used +AddRefInList=Display Customer/Vendor ref. into combo lists.
    Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp". +AddVatInList=Display Customer/Vendor VAT number into combo lists. +AddAdressInList=Display Customer/Vendor adress into combo lists.
    Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp". +AddEmailPhoneTownInContactList=Display Contact email (or phones if not defined) and town info list (select list or combobox)
    Contacts will appear with a name format of "Dupond Durand - dupond.durand@email.com - Paris" or "Dupond Durand - 06 07 59 65 66 - Paris" instead of "Dupond Durand". +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. +FieldEdition=Edition of field %s +FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) +GetBarCode=Get barcode +NumberingModules=Numbering models +DocumentModules=Document models +##### Module password generation +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. +PasswordGenerationPerso=Return a password according to your personally defined configuration. +SetupPerso=According to your configuration +PasswordPatternDesc=Password pattern description +##### Users setup ##### +RuleForGeneratedPasswords=Rules to generate and validate passwords +DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page +UsersSetup=Users module setup +UserMailRequired=Email required to create a new user +UserHideInactive=Hide inactive users from all combo lists of users (Not recommended: this may means you won't be able to filter or search on old users on some pages) +UsersDocModules=Document templates for documents generated from user record +GroupsDocModules=Document templates for documents generated from a group record +##### HRM setup ##### +HRMSetup=HRM module setup +##### Company setup ##### +CompanySetup=Companies module setup +CompanyCodeChecker=Options for automatic generation of customer/vendor codes +AccountCodeManager=Options for automatic generation of customer/vendor accounting codes +NotificationsDesc=Email notifications can be sent automatically for some Dolibarr events.
    Recipients of notifications can be defined: +NotificationsDescUser=* per user, one user at a time. +NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time. +NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. +ModelModules=Document Templates +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) +WatermarkOnDraft=Watermark on draft document +JSOnPaimentBill=Activate feature to autofill payment lines on payment form +CompanyIdProfChecker=Rules for Professional IDs +MustBeUnique=Must be unique? +MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? +MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided +#####DAV ##### +WebDAVSetupDesc=This is the link to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that needs an existing login account/password for access. +WebDavServer=Root URL of %s server: %s +##### Webcal setup ##### +WebCalUrlForVCalExport=An export link to %s format is available at following link: %s +##### Invoices ##### +BillsSetup=Invoices module setup +BillsNumberingModule=Invoices and credit notes numbering model +BillsPDFModules=Invoice documents models +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type +PaymentsPDFModules=Payment documents models +ForceInvoiceDate=Force invoice date to validation date +SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined on the invoice +SuggestPaymentByRIBOnAccount=Suggest payment by withdrawal on account +SuggestPaymentByChequeToAddress=Suggest payment by check to +FreeLegalTextOnInvoices=Free text on invoices +WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) +PaymentsNumberingModule=Payments numbering model +SuppliersPayment=Vendor payments +SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +##### Proposals ##### +PropalSetup=Commercial proposals module setup +ProposalsNumberingModules=Commercial proposal numbering models +ProposalsPDFModules=Commercial proposal documents models +SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined on the proposal +FreeLegalTextOnProposal=Free text on commercial proposals +WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal +##### SupplierProposal ##### +SupplierProposalSetup=Price requests suppliers module setup +SupplierProposalNumberingModules=Price requests suppliers numbering models +SupplierProposalPDFModules=Price requests suppliers documents models +FreeLegalTextOnSupplierProposal=Free text on price requests suppliers +WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order +##### Suppliers Orders ##### +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order +##### Orders ##### +SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order +OrdersSetup=Sales Orders management setup +OrdersNumberingModules=Orders numbering models +OrdersModelModule=Order documents models +FreeLegalTextOnOrders=Free text on orders +WatermarkOnDraftOrders=Watermark on draft orders (none if empty) +ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order +##### Interventions ##### +InterventionsSetup=Interventions module setup +FreeLegalTextOnInterventions=Free text on intervention documents +FicheinterNumberingModules=Intervention numbering models +TemplatePDFInterventions=Intervention card documents models +WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) +##### Contracts ##### +ContractsSetup=Contracts/Subscriptions module setup +ContractsNumberingModules=Contracts numbering modules +TemplatePDFContracts=Contracts documents models +FreeLegalTextOnContracts=Free text on contracts +WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) +##### Members ##### +MembersSetup=Members module setup +MemberMainOptions=Main options +AdherentLoginRequired= Manage a Login for each member +AdherentMailRequired=Email required to create a new member +MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default +MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated +VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes +MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. +MembersDocModules=Document templates for documents generated from member record +##### LDAP setup ##### +LDAPSetup=LDAP Setup +LDAPGlobalParameters=Global parameters +LDAPUsersSynchro=Users +LDAPGroupsSynchro=Groups +LDAPContactsSynchro=Contacts +LDAPMembersSynchro=Members +LDAPMembersTypesSynchro=Members types +LDAPSynchronization=LDAP synchronisation +LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP +LDAPToDolibarr=LDAP -> Dolibarr +DolibarrToLDAP=Dolibarr -> LDAP +LDAPNamingAttribute=Key in LDAP +LDAPSynchronizeUsers=Organization of users in LDAP +LDAPSynchronizeGroups=Organization of groups in LDAP +LDAPSynchronizeContacts=Organization of contacts in LDAP +LDAPSynchronizeMembers=Organization of foundation's members in LDAP +LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP +LDAPPrimaryServer=Primary server +LDAPSecondaryServer=Secondary server +LDAPServerPort=Server port +LDAPServerPortExample=Standard or StartTLS: 389, LDAPs: 636 +LDAPServerProtocolVersion=Protocol version +LDAPServerUseTLS=Use TLS +LDAPServerUseTLSExample=Your LDAP server use StartTLS +LDAPServerDn=Server DN +LDAPAdminDn=Administrator DN +LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) +LDAPPassword=Administrator password +LDAPUserDn=Users' DN +LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) +LDAPGroupDn=Groups' DN +LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) +LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) +LDAPDnSynchroActive=Users and groups synchronization +LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization +LDAPDnContactActive=Contacts' synchronization +LDAPDnContactActiveExample=Activated/Unactivated synchronization +LDAPDnMemberActive=Members' synchronization +LDAPDnMemberActiveExample=Activated/Unactivated synchronization +LDAPDnMemberTypeActive=Members types' synchronization +LDAPDnMemberTypeActiveExample=Activated/Unactivated synchronization +LDAPContactDn=Dolibarr contacts' DN +LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) +LDAPMemberDn=Dolibarr members DN +LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) +LDAPMemberObjectClassList=List of objectClass +LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) +LDAPMemberTypeDn=Dolibarr members types DN +LDAPMemberTypepDnExample=Complete DN (ex: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeObjectClassList=List of objectClass +LDAPMemberTypeObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) +LDAPUserObjectClassList=List of objectClass +LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) +LDAPGroupObjectClassList=List of objectClass +LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) +LDAPContactObjectClassList=List of objectClass +LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) +LDAPTestConnect=Test LDAP connection +LDAPTestSynchroContact=Test contacts synchronization +LDAPTestSynchroUser=Test user synchronization +LDAPTestSynchroGroup=Test group synchronization +LDAPTestSynchroMember=Test member synchronization +LDAPTestSynchroMemberType=Test member type synchronization +LDAPTestSearch= Test a LDAP search +LDAPSynchroOK=Synchronization test successful +LDAPSynchroKO=Failed synchronization test +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates +LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) +LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPSetupForVersion3=LDAP server configured for version 3 +LDAPSetupForVersion2=LDAP server configured for version 2 +LDAPDolibarrMapping=Dolibarr Mapping +LDAPLdapMapping=LDAP Mapping +LDAPFieldLoginUnix=Login (unix) +LDAPFieldLoginExample=Example: uid +LDAPFilterConnection=Search filter +LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) +LDAPFieldLoginSamba=Login (samba, activedirectory) +LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldFullname=Full name +LDAPFieldFullnameExample=Example: cn +LDAPFieldPasswordNotCrypted=Password not encrypted +LDAPFieldPasswordCrypted=Password encrypted +LDAPFieldPasswordExample=Example: userPassword +LDAPFieldCommonNameExample=Example: cn +LDAPFieldName=Name +LDAPFieldNameExample=Example: sn +LDAPFieldFirstName=First name +LDAPFieldFirstNameExample=Example: givenName +LDAPFieldMail=Email address +LDAPFieldMailExample=Example: mail +LDAPFieldPhone=Professional phone number +LDAPFieldPhoneExample=Example: telephonenumber +LDAPFieldHomePhone=Personal phone number +LDAPFieldHomePhoneExample=Example: homephone +LDAPFieldMobile=Cellular phone +LDAPFieldMobileExample=Example: mobile +LDAPFieldFax=Fax number +LDAPFieldFaxExample=Example: facsimiletelephonenumber +LDAPFieldAddress=Street +LDAPFieldAddressExample=Example: street +LDAPFieldZip=Zip +LDAPFieldZipExample=Example: postalcode +LDAPFieldTown=Town +LDAPFieldTownExample=Example: l +LDAPFieldCountry=Country +LDAPFieldDescription=Description +LDAPFieldDescriptionExample=Example: description +LDAPFieldNotePublic=Public Note +LDAPFieldNotePublicExample=Example: publicnote +LDAPFieldGroupMembers= Group members +LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldBirthdate=Birthdate +LDAPFieldCompany=Company +LDAPFieldCompanyExample=Example: o +LDAPFieldSid=SID +LDAPFieldSidExample=Example: objectsid +LDAPFieldEndLastSubscription=Date of subscription end +LDAPFieldTitle=Job position +LDAPFieldTitleExample=Example: title +LDAPFieldGroupid=Group id +LDAPFieldGroupidExample=Exemple : gidnumber +LDAPFieldUserid=User id +LDAPFieldUseridExample=Exemple : uidnumber +LDAPFieldHomedirectory=Home directory +LDAPFieldHomedirectoryExample=Exemple : homedirectory +LDAPFieldHomedirectoryprefix=Home directory prefix +LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. +LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. +LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. +LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. +LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. +LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members types. +LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. +ForANonAnonymousAccess=For an authenticated access (for a write access for example) +PerfDolibarr=Performance setup/optimizing report +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance. +NotInstalled=Not installed. +NotSlowedDownByThis=Not slowed down by this. +NotRiskOfLeakWithThis=Not risk of leak with this. +ApplicativeCache=Applicative cache +MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
    More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    Note that a lot of web hosting provider does not provide such cache server. +MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. +MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. +OPCodeCache=OPCode cache +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad). +HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) +FilesOfTypeCached=Files of type %s are cached by HTTP server +FilesOfTypeNotCached=Files of type %s are not cached by HTTP server +FilesOfTypeCompressed=Files of type %s are compressed by HTTP server +FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server +CacheByServer=Cache by server +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000" +CacheByClient=Cache by browser +CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=Here you may define the default value you wish to use when creating a new record, and/or default filters or the sort order when you list records. +DefaultCreateForm=Default values (to use on forms) +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields +DefaultMandatory=Mandatory form fields +##### Products ##### +ProductSetup=Products module setup +ServiceSetup=Services module setup +ProductServiceSetup=Products and Services modules setup +NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit) +ViewProductDescInFormAbility=Display product descriptions in lines of items (otherwise show description in a tooltip popup) +OnProductSelectAddProductDesc=How to use the description of the products when adding a product as a line of a document +AutoFillFormFieldBeforeSubmit=Auto fill the description input field with the description of product +DoNotAutofillButAutoConcat=Do not autofill the input field with description of product. Description of the product will be concatenated to the entered description automatically. +DoNotUseDescriptionOfProdut=Description of the product will never be included into the description of lines of documents +MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +SetDefaultBarcodeTypeProducts=Default barcode type to use for products +SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties +UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition +ProductCodeChecker= Module for product code generation and checking (product or service) +ProductOtherConf= Product / Service configuration +IsNotADir=is not a directory! +##### Syslog ##### +SyslogSetup=Logs module setup +SyslogOutput=Logs outputs +SyslogFacility=Facility +SyslogLevel=Level +SyslogFilename=File name and path +YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. +ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant +OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported +CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug) +SyslogFileNumberOfSaves=Number of backup logs to keep +ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency +##### Donations ##### +DonationsSetup=Donation module setup +DonationsReceiptModel=Template of donation receipt +##### Barcode ##### +BarcodeSetup=Barcode setup +PaperFormatModule=Print format module +BarcodeEncodeModule=Barcode encoding type +CodeBarGenerator=Barcode generator +ChooseABarCode=No generator defined +FormatNotSupportedByGenerator=Format not supported by this generator +BarcodeDescEAN8=Barcode of type EAN8 +BarcodeDescEAN13=Barcode of type EAN13 +BarcodeDescUPC=Barcode of type UPC +BarcodeDescISBN=Barcode of type ISBN +BarcodeDescC39=Barcode of type C39 +BarcodeDescC128=Barcode of type C128 +BarcodeDescDATAMATRIX=Barcode of type Datamatrix +BarcodeDescQRCODE=Barcode of type QR code +GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
    For example: /usr/local/bin/genbarcode +BarcodeInternalEngine=Internal engine +BarCodeNumberManager=Manager to auto define barcode numbers +##### Prelevements ##### +WithdrawalsSetup=Setup of module Direct Debit payments +##### ExternalRSS ##### +ExternalRSSSetup=External RSS imports setup +NewRSS=New RSS Feed +RSSUrl=RSS URL +RSSUrlExample=An interesting RSS feed +##### Mailing ##### +MailingSetup=EMailing module setup +MailingEMailFrom=Sender email (From) for emails sent by emailing module +MailingEMailError=Return Email (Errors-to) for emails with errors +MailingDelay=Seconds to wait after sending next message +##### Notification ##### +NotificationSetup=Email Notification module setup +NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +FixedEmailTarget=Recipient +NotificationDisableConfirmMessageContact=Hide the list of recipients (subscribed as contact) of notifications into the confirmation message +NotificationDisableConfirmMessageUser=Hide the list of recipients (subscribed as user) of notifications into the confirmation message +NotificationDisableConfirmMessageFix=Hide the list of recipients (subscribed as global email) of notifications into the confirmation message +##### Sendings ##### +SendingsSetup=Shipping module setup +SendingsReceiptModel=Sending receipt model +SendingsNumberingModules=Sendings numbering modules +SendingsAbility=Support shipping sheets for customer deliveries +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated. +FreeLegalTextOnShippings=Free text on shipments +##### Deliveries ##### +DeliveryOrderNumberingModules=Products deliveries receipt numbering module +DeliveryOrderModel=Products deliveries receipt model +DeliveriesOrderAbility=Support products deliveries receipts +FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts +##### FCKeditor ##### +AdvancedEditor=Advanced editor +ActivateFCKeditor=Activate advanced editor for: +FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements +FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements +FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) +FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) +FCKeditorForUserSignature=WYSIWIG creation/edition of user signature +FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) +FCKeditorForTicket=WYSIWIG creation/edition for tickets +##### Stock ##### +StockSetup=Stock module setup +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup. +##### Menu ##### +MenuDeleted=Menu deleted +Menu=Menu +Menus=Menus +TreeMenuPersonalized=Personalized menus +NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry +NewMenu=New menu +MenuHandler=Menu handler +MenuModule=Source module +HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +DetailId=Id menu +DetailMenuHandler=Menu handler where to show new menu +DetailMenuModule=Module name if menu entry come from a module +DetailType=Type of menu (top or left) +DetailTitre=Menu label or label code for translation +DetailUrl=URL where menu send you (Absolute URL link or external link with http://) +DetailEnabled=Condition to show or not entry +DetailRight=Condition to display unauthorized grey menus +DetailLangs=Lang file name for label code translation +DetailUser=Intern / Extern / All +Target=Target +DetailTarget=Target for links (_blank top opens a new window) +DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) +ModifMenu=Menu change +DeleteMenu=Delete menu entry +ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? +FailedToInitializeMenu=Failed to initialize menu +##### Tax ##### +TaxSetup=Taxes, social or fiscal taxes and dividends module setup +OptionVatMode=VAT due +OptionVATDefault=Standard basis +OptionVATDebitOption=Accrual basis +OptionVatDefaultDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on payments for services +OptionVatDebitOptionDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on invoice (debit) for services +OptionPaymentForProductAndServices=Cash basis for products and services +OptionPaymentForProductAndServicesDesc=VAT is due:
    - on payment for goods
    - on payments for services +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option: +OnDelivery=On delivery +OnPayment=On payment +OnInvoice=On invoice +SupposedToBePaymentDate=Payment date used +SupposedToBeInvoiceDate=Invoice date used +Buy=Buy +Sell=Sell +InvoiceDateUsed=Invoice date used +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organization), so there is no VAT options to setup. +AccountancyCode=Accounting Code +AccountancyCodeSell=Sale account. code +AccountancyCodeBuy=Purchase account. code +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Keep the checkbox “Automatically create the payment” empty by default when creating a new tax +##### Agenda ##### +AgendaSetup=Events and agenda module setup +PasswordTogetVCalExport=Key to authorize export link +SecurityKey = Security Key +PastDelayVCalExport=Do not export event older than +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events) +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view +AGENDA_DEFAULT_VIEW=Which view do you want to open by default when selecting menu Agenda +AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (When remind date is reached, a popup is shown by the browser. Each user can disable such notifications from its browser notification setup). +AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification +AGENDA_REMINDER_EMAIL=Enable event reminder by emails (remind option/delay can be defined on each event). +AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the scheduled job %s must be enough to be sure that the remind are sent at the correct moment. +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view +##### Clicktodial ##### +ClickToDialSetup=Click To Dial module setup +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
    __PHONETO__ that will be replaced with the phone number of person to call
    __PHONEFROM__ that will be replaced with phone number of calling person (yours)
    __LOGIN__ that will be replaced with clicktodial login (defined on user card)
    __PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable. +ClickToDialUseTelLink=Use just a link "tel:" on phone numbers +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface, installed on the same computer as the browser, and called when you click on a link starting with "tel:" in your browser. If you need a link that start with "sip:" or a full server solution (no need of local software installation), you must set this to "No" and fill the next field. +##### Point Of Sale (CashDesk) ##### +CashDesk=Point of Sale +CashDeskSetup=Point of Sales module setup +CashDeskThirdPartyForSell=Default generic third party to use for sales +CashDeskBankAccountForSell=Default account to use to receive cash payments +CashDeskBankAccountForCheque=Default account to use to receive payments by check +CashDeskBankAccountForCB=Default account to use to receive payments by credit cards +CashDeskBankAccountForSumup=Default bank account to use to receive payments by SumUp +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock). +CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled +StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with module Serial/Lot management (currently active) so stock decrease is disabled. +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. +CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. +CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. +CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +##### Bookmark ##### +BookmarkSetup=Bookmark module setup +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. +NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu +##### WebServices ##### +WebServicesSetup=Webservices module setup +WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. +WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here +EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL +##### API #### +ApiSetup=API module setup +ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. +ApiProductionMode=Enable production mode (this will activate use of a cache for services management) +ApiExporerIs=You can explore and test the APIs at URL +OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed +ApiKey=Key for API +WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +##### Bank ##### +BankSetupModule=Bank module setup +FreeLegalTextOnChequeReceipts=Free text on check receipts +BankOrderShow=Display order of bank accounts for countries using "detailed bank number" +BankOrderGlobal=General +BankOrderGlobalDesc=General display order +BankOrderES=Spanish +BankOrderESDesc=Spanish display order +ChequeReceiptsNumberingModule=Check Receipts Numbering Module +##### Multicompany ##### +MultiCompanySetup=Multi-company module setup +##### Suppliers ##### +SuppliersSetup=Vendor module setup +SuppliersCommandModel=Complete template of Purchase Order +SuppliersCommandModelMuscadet=Complete template of Purchase Order (old implementation of cornas template) +SuppliersInvoiceModel=Complete template of Vendor Invoice +SuppliersInvoiceNumberingModel=Vendor invoices numbering models +IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval +##### GeoIPMaxmind ##### +GeoIPMaxmindSetup=GeoIP Maxmind module setup +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). +YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. +YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. +TestGeoIPResult=Test of a conversion IP -> country +##### Projects ##### +ProjectsNumberingModules=Projects numbering module +ProjectsSetup=Project module setup +ProjectsModelModule=Project reports document model +TasksNumberingModules=Tasks numbering module +TaskModelModule=Tasks reports document model +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.
    This may improve performance if you have a large number of projects, but it is less convenient. +##### ECM (GED) ##### +##### Fiscal Year ##### +AccountingPeriods=Accounting periods +AccountingPeriodCard=Accounting period +NewFiscalYear=New accounting period +OpenFiscalYear=Open accounting period +CloseFiscalYear=Close accounting period +DeleteFiscalYear=Delete accounting period +ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? +ShowFiscalYear=Show accounting period +AlwaysEditable=Can always be edited +MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) +NbMajMin=Minimum number of uppercase characters +NbNumMin=Minimum number of numeric characters +NbSpeMin=Minimum number of special characters +NbIteConsecutive=Maximum number of repeating same characters +NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation +SalariesSetup=Setup of module salaries +SortOrder=Sort order +Format=Format +TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and suppliers payment type +IncludePath=Include path (defined into variable %s) +ExpenseReportsSetup=Setup of module Expense Reports +TemplatePDFExpenseReports=Document templates to generate expense report document +ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules +ExpenseReportNumberingModules=Expense reports numbering module +NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. +YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". +TemplatesForNotifications=Templates for notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users +GoOntoContactCardToAddMore=Go to the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +Threshold=Threshold +BackupDumpWizard=Wizard to build the database dump file +BackupZipWizard=Wizard to build the archive of documents directory +SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: +SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over +HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) +HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables +BtnActionColor=Color of the action button +TextBtnActionColor=Text color of the action button +TextTitleColor=Text color of Page title +LinkColor=Color of links +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective +NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes +BackgroundColor=Background color +TopMenuBackgroundColor=Background color for Top menu +TopMenuDisableImages=Icon or Text in Top menu +LeftMenuBackgroundColor=Background color for Left menu +BackgroundTableTitleColor=Background color for Table title line +BackgroundTableTitleTextColor=Text color for Table title line +BackgroundTableTitleTextlinkColor=Text color for Table title link line +BackgroundTableLineOddColor=Background color for odd table lines +BackgroundTableLineEvenColor=Background color for even table lines +MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) +NbAddedAutomatically=Number of days added to counters of users (automatically) each month +EnterAnyCode=This field contains a reference to identify the line. Enter any value of your choice, but without special characters. +Enter0or1=Enter 0 or 1 +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PositionIntoComboList=Position of line into combo lists +SellTaxRate=Sales tax rate +RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. +UrlTrackingDesc=If the provider or transport service offers a page or web site to check the status of your shipments, you may enter it here. You can use the key {TRACKID} in the URL parameters so the system will replace it with the tracking number the user entered into the shipment card. +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of the lead, this amount may be multiplied by this rate to evaluate a total amount all your leads may generate. Value is a percentage (between 0 and 100). +TemplateForElement=This mail template is related to what type of object? An email template is available only when using the "Send Email" button from the related object. +TypeOfTemplate=Type of template +TemplateIsVisibleByOwnerOnly=Template is visible to owner only +VisibleEverywhere=Visible everywhere +VisibleNowhere=Visible nowhere +FixTZ=TimeZone fix +FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) +ExpectedChecksum=Expected Checksum +CurrentChecksum=Current Checksum +ExpectedSize=Expected size +CurrentSize=Current size +ForcedConstants=Required constant values +MailToSendProposal=Customer proposals +MailToSendOrder=Sales orders +MailToSendInvoice=Customer invoices +MailToSendShipment=Shipments +MailToSendIntervention=Interventions +MailToSendSupplierRequestForQuotation=Quotation request +MailToSendSupplierOrder=Purchase orders +MailToSendSupplierInvoice=Vendor invoices +MailToSendContract=Contracts +MailToSendReception=Receptions +MailToThirdparty=Third parties +MailToMember=Members +MailToUser=Users +MailToProject=Projects +MailToTicket=Tickets +ByDefaultInList=Show by default on list view +YouUseLastStableVersion=You use the latest stable version +TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) +TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so contains only bug fixes. We recommend all users to upgrade to this version. A maintenance release does not introduce new features or changes to the database. You may download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read the ChangeLog for complete list of changes. +MultiPriceRuleDesc=When option "Several levels of prices per product/service" is enabled, you can define different prices (one per price level) for each product. To save you time, here you may enter a rule to autocalculate a price for each level based on the price of the first level, so you will have to only enter a price for the first level for each product. This page is designed to save you time but is useful only if your prices for each level are relative to first level. You can ignore this page in most cases. +ModelModulesProduct=Templates for product documents +WarehouseModelModules=Templates for documents of warehouses +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto-define the barcode number. +SeeSubstitutionVars=See * note for list of possible substitution variables +SeeChangeLog=See ChangeLog file (english only) +AllPublishers=All publishers +UnknownPublishers=Unknown publishers +AddRemoveTabs=Add or remove tabs +AddDataTables=Add object tables +AddDictionaries=Add dictionaries tables +AddData=Add objects or dictionaries data +AddBoxes=Add widgets +AddSheduledJobs=Add scheduled jobs +AddHooks=Add hooks +AddTriggers=Add triggers +AddMenus=Add menus +AddPermissions=Add permissions +AddExportProfiles=Add export profiles +AddImportProfiles=Add import profiles +AddOtherPagesOrServices=Add other pages or services +AddModels=Add document or numbering templates +AddSubstitutions=Add keys substitutions +DetectionNotPossible=Detection not possible +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call) +ListOfAvailableAPIs=List of available APIs +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter $dolibarr_main_restrict_os_commands in the conf.php file. +LandingPage=Landing page +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments +ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. +UserHasNoPermissions=This user has no permissions defined +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")
    Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)
    Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software. +MAIN_PDF_MARGIN_LEFT=Left margin on PDF +MAIN_PDF_MARGIN_RIGHT=Right margin on PDF +MAIN_PDF_MARGIN_TOP=Top margin on PDF +MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines +MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame +MAIN_PDF_NO_RECIPENT_FRAME=Hide borders on recipent address frame +MAIN_PDF_HIDE_CUSTOMER_CODE=Hide customer code +MAIN_PDF_HIDE_SENDER_NAME=Hide sender/company name in address block +PROPOSAL_PDF_HIDE_PAYMENTTERM=Hide payments conditions +PROPOSAL_PDF_HIDE_PAYMENTMODE=Hide payment mode +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Add electronic sign in PDF +NothingToSetup=There is no specific setup required for this module. +SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes.
    For example:
    CODEGRP1+CODEGRP2 +SeveralLangugeVariatFound=Several language variants found +RemoveSpecialChars=Remove special characters +COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) +COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +HelpOnTooltip=Help text to show on tooltip +HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form +YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s +ChartLoaded=Chart of account loaded +SocialNetworkSetup=Setup of module Social Networks +EnableFeatureFor=Enable features for %s +VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. +SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. +EmailCollector=Email collector +EmailCollectors=Email collectors +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). +NewEmailCollector=New Email Collector +EMailHost=Host of email IMAP server +MailboxSourceDirectory=Mailbox source directory +MailboxTargetDirectory=Mailbox target directory +EmailcollectorOperations=Operations to do by collector +EmailcollectorOperationsDesc=Operations are executed from top to bottom order +MaxEmailCollectPerCollect=Max number of emails collected per collect +CollectNow=Collect now +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? +DateLastCollectResult=Date of latest collect try +DateLastcollectResultOk=Date of latest collect success +LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. +EmailCollectorConfirmCollectTitle=Email collect confirmation +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +NoNewEmailToProcess=No new email (matching filters) to process +NothingProcessed=Nothing done +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) +RecordEvent=Record an event in agenda (with type Email sent or received) +CreateLeadAndThirdParty=Create a lead (and a third party if necessary) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +CodeLastResult=Latest result code +NbOfEmailsInInbox=Number of emails in source directory +LoadThirdPartyFromName=Load third party searching on %s (load only) +LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) +AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. +WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr +WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr +WithDolTrackingIDInMsgId=Message sent from Dolibarr +WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr +CreateCandidature=Create job application +FormatZip=Zip +MainMenuCode=Menu entry code (mainmenu) +ECMAutoTree=Show automatic ECM tree +OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OpeningHours=Opening hours +OpeningHoursDesc=Enter here the regular opening hours of your company. +ResourceSetup=Configuration of Resource module +UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). +DisabledResourceLinkUser=Disable feature to link a resource to users +DisabledResourceLinkContact=Disable feature to link a resource to contacts +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +ConfirmUnactivation=Confirm module reset +OnMobileOnly=On small screen (smartphone) only +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) +MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes +ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' +DefaultCustomerType=Default thirdparty type for "New customer" creation form +ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. +RootCategoryForProductsToSell=Root category of products to sell +RootCategoryForProductsToSellDesc=If defined, only products inside this category or childs of this category will be available in the Point Of Sale +DebugBar=Debug Bar +DebugBarDesc=Toolbar that comes with a plenty of tools to simplify debugging +DebugBarSetup=DebugBar Setup +GeneralOptions=General Options +LogsLinesNumber=Number of lines to show on logs tab +UseDebugBar=Use the debug bar +DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console +WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output +ModuleActivated=Module %s is activated and slows the interface +ModuleActivatedWithTooHighLogLevel=Module %s is activated with a too high logging level (try to use a lower level for better performances and security) +ModuleSyslogActivatedButLevelNotTooVerbose=Module %s is activated and log level (%s) is correct (not too verbose) +IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. +AntivirusEnabledOnUpload=Antivirus enabled on uploaded files +SomeFilesOrDirInRootAreWritable=Some files or directories are not in a read-only mode +EXPORTS_SHARE_MODELS=Export models are share with everybody +ExportSetup=Setup of module Export +ImportSetup=Setup of module Import +InstanceUniqueID=Unique ID of the instance +SmallerThan=Smaller than +LargerThan=Larger than +IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object. +WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/. +EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account. +EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +EndPointFor=End point for %s : %s +DeleteEmailCollector=Delete email collector +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +IPListExample=127.0.0.1 192.168.0.2 [::1] +BaseOnSabeDavVersion=Based on the library SabreDAV version +NotAPublicIp=Not a public IP +MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation. +FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled +EmailTemplate=Template for email +EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax +PDF_SHOW_PROJECT=Show project on document +ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. +PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF +FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. +RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard +JumpToBoxes=Jump to Setup -> Widgets +MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time" +MeasuringScaleDesc=The scale is the number of places you have to move the decimal part to match the default reference unit. For "time" unit type, it is the number of seconds. Values between 80 and 99 are reserved values. +TemplateAdded=Template added +TemplateUpdated=Template updated +TemplateDeleted=Template deleted +MailToSendEventPush=Event reminder email +SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security +DictionaryProductNature= Nature of product +CountryIfSpecificToOneCountry=Country (if specific to a given country) +YouMayFindSecurityAdviceHere=You may find security advisory here +ModuleActivatedMayExposeInformation=This PHP extension may expose sensitive data. If you don't need it, disable it. +ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment. +CombinationsSeparator=Separator character for product combinations +SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples +SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. +AskThisIDToYourBank=Contact your bank to get this ID +AdvancedModeOnly=Permision available in Advanced permission mode only +ConfFileIsReadableOrWritableByAnyUsers=The conf file is readable or writable by any users. Give permission to web server user and group only. +MailToSendEventOrganization=Event Organization +MailToPartnership=Partnership +AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form +YouShouldDisablePHPFunctions=You should disable PHP functions +IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) +RecommendedValueIs=Recommended: %s +Recommended=Recommended +NotRecommended=Not recommended +ARestrictedPath=Some restricted path +CheckForModuleUpdate=Check for external modules updates +CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. +ModuleUpdateAvailable=An update is available +NoExternalModuleWithUpdate=No updates found for external modules +SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. +RandomlySelectedIfSeveral=Randomly selected if several pictures are available +DatabasePasswordObfuscated=Database password is obfuscated in conf file +DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file +APIsAreNotEnabled=APIs modules are not enabled +YouShouldSetThisToOff=You should set this to 0 or off +InstallAndUpgradeLockedBy=Install and upgrades are locked by the file %s +OldImplementation=Old implementation +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=If some online payment modules are enabled (Paypal, Stripe, ...), add a link on the PDF to make the online payment +DashboardDisableGlobal=Disable globally all the thumbs of open objects +BoxstatsDisableGlobal=Disable totally box statistics +DashboardDisableBlocks=Thumbs of open objects (to process or late) on main dashboard +DashboardDisableBlockAgenda=Disable the thumb for agenda +DashboardDisableBlockProject=Disable the thumb for projects +DashboardDisableBlockCustomer=Disable the thumb for customers +DashboardDisableBlockSupplier=Disable the thumb for suppliers +DashboardDisableBlockContract=Disable the thumb for contracts +DashboardDisableBlockTicket=Disable the thumb for tickets +DashboardDisableBlockBank=Disable the thumb for banks +DashboardDisableBlockAdherent=Disable the thumb for memberships +DashboardDisableBlockExpenseReport=Disable the thumb for expense reports +DashboardDisableBlockHoliday=Disable the thumb for leaves +EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax +LanguageAndPresentation=Language and presentation +SkinAndColors=Skin and colors +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax +PDF_USE_1A=Generate PDF with PDF/A-1b format +MissingTranslationForConfKey = Missing translation for %s +NativeModules=Native modules +NoDeployedModulesFoundWithThisSearchCriteria=No modules found for these search criteria +API_DISABLE_COMPRESSION=Disable compression of API responses +EachTerminalHasItsOwnCounter=Each terminal use its own counter. +FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first +PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: diff --git a/htdocs/langs/ms_MY/agenda.lang b/htdocs/langs/ms_MY/agenda.lang new file mode 100644 index 00000000000..d2d63b3a8e4 --- /dev/null +++ b/htdocs/langs/ms_MY/agenda.lang @@ -0,0 +1,177 @@ +# Dolibarr language file - Source file is en_US - agenda +IdAgenda=ID event +Actions=Events +Agenda=Agenda +TMenuAgenda=Agenda +Agendas=Agendas +LocalAgenda=Default calendar +ActionsOwnedBy=Event owned by +ActionsOwnedByShort=Owner +AffectedTo=Assigned to +Event=Event +Events=Events +EventsNb=Number of events +ListOfActions=List of events +EventReports=Event reports +Location=Location +ToUserOfGroup=Event assigned to any user in the group +EventOnFullDay=Event on all day(s) +MenuToDoActions=All incomplete events +MenuDoneActions=All terminated events +MenuToDoMyActions=My incomplete events +MenuDoneMyActions=My terminated events +ListOfEvents=List of events (default calendar) +ActionsAskedBy=Events reported by +ActionsToDoBy=Events assigned to +ActionsDoneBy=Events done by +ActionAssignedTo=Event assigned to +ViewCal=Month view +ViewDay=Day view +ViewWeek=Week view +ViewPerUser=Per user view +ViewPerType=Per type view +AutoActions= Automatic filling +AgendaAutoActionDesc= Here you may define events which you want Dolibarr to create automatically in Agenda. If nothing is checked, only manual actions will be included in logs and displayed in Agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved. +AgendaSetupOtherDesc= This page provides options to allow the export of your Dolibarr events into an external calendar (Thunderbird, Google Calendar etc...) +AgendaExtSitesDesc=This page allows to declare external sources of calendars to see their events into Dolibarr agenda. +ActionsEvents=Events for which Dolibarr will create an action in agenda automatically +EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup. +##### Agenda event labels ##### +NewCompanyToDolibarr=Third party %s created +COMPANY_MODIFYInDolibarr=Third party %s modified +COMPANY_DELETEInDolibarr=Third party %s deleted +ContractValidatedInDolibarr=Contract %s validated +CONTRACT_DELETEInDolibarr=Contract %s deleted +PropalClosedSignedInDolibarr=Proposal %s signed +PropalClosedRefusedInDolibarr=Proposal %s refused +PropalValidatedInDolibarr=Proposal %s validated +PropalBackToDraftInDolibarr=Proposal %s go back to draft status +PropalClassifiedBilledInDolibarr=Proposal %s classified billed +InvoiceValidatedInDolibarr=Invoice %s validated +InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS +InvoiceBackToDraftInDolibarr=Invoice %s go back to draft status +InvoiceDeleteDolibarr=Invoice %s deleted +InvoicePaidInDolibarr=Invoice %s changed to paid +InvoiceCanceledInDolibarr=Invoice %s canceled +MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified +MemberResiliatedInDolibarr=Member %s terminated +MemberDeletedInDolibarr=Member %s deleted +MemberExcludedInDolibarr=Member %s excluded +MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added +MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified +MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted +ShipmentValidatedInDolibarr=Shipment %s validated +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified re-open +ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status +ShipmentDeletedInDolibarr=Shipment %s deleted +ShipmentCanceledInDolibarr=Shipment %s canceled +ReceptionValidatedInDolibarr=Reception %s validated +ReceptionClassifyClosedInDolibarr=Reception %s classified closed +OrderCreatedInDolibarr=Order %s created +OrderValidatedInDolibarr=Order %s validated +OrderDeliveredInDolibarr=Order %s classified delivered +OrderCanceledInDolibarr=Order %s canceled +OrderBilledInDolibarr=Order %s classified billed +OrderApprovedInDolibarr=Order %s approved +OrderRefusedInDolibarr=Order %s refused +OrderBackToDraftInDolibarr=Order %s go back to draft status +ProposalSentByEMail=Commercial proposal %s sent by email +ContractSentByEMail=Contract %s sent by email +OrderSentByEMail=Sales order %s sent by email +InvoiceSentByEMail=Customer invoice %s sent by email +SupplierOrderSentByEMail=Purchase order %s sent by email +ORDER_SUPPLIER_DELETEInDolibarr=Purchase order %s deleted +SupplierInvoiceSentByEMail=Vendor invoice %s sent by email +ShippingSentByEMail=Shipment %s sent by email +ShippingValidated= Shipment %s validated +InterventionSentByEMail=Intervention %s sent by email +ProposalDeleted=Proposal deleted +OrderDeleted=Order deleted +InvoiceDeleted=Invoice deleted +DraftInvoiceDeleted=Draft invoice deleted +CONTACT_CREATEInDolibarr=Contact %s created +CONTACT_MODIFYInDolibarr=Contact %s modified +CONTACT_DELETEInDolibarr=Contact %s deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted +HOLIDAY_CREATEInDolibarr=Request for leave %s created +HOLIDAY_MODIFYInDolibarr=Request for leave %s modified +HOLIDAY_APPROVEInDolibarr=Request for leave %s approved +HOLIDAY_VALIDATEInDolibarr=Request for leave %s validated +HOLIDAY_DELETEInDolibarr=Request for leave %s deleted +EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created +EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated +EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved +EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted +EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused +PROJECT_CREATEInDolibarr=Project %s created +PROJECT_MODIFYInDolibarr=Project %s modified +PROJECT_DELETEInDolibarr=Project %s deleted +TICKET_CREATEInDolibarr=Ticket %s created +TICKET_MODIFYInDolibarr=Ticket %s modified +TICKET_ASSIGNEDInDolibarr=Ticket %s assigned +TICKET_CLOSEInDolibarr=Ticket %s closed +TICKET_DELETEInDolibarr=Ticket %s deleted +BOM_VALIDATEInDolibarr=BOM validated +BOM_UNVALIDATEInDolibarr=BOM unvalidated +BOM_CLOSEInDolibarr=BOM disabled +BOM_REOPENInDolibarr=BOM reopen +BOM_DELETEInDolibarr=BOM deleted +MRP_MO_VALIDATEInDolibarr=MO validated +MRP_MO_UNVALIDATEInDolibarr=MO set to draft status +MRP_MO_PRODUCEDInDolibarr=MO produced +MRP_MO_DELETEInDolibarr=MO deleted +MRP_MO_CANCELInDolibarr=MO canceled +PAIDInDolibarr=%s paid +##### End agenda events ##### +AgendaModelModule=Document templates for event +DateActionStart=Start date +DateActionEnd=End date +AgendaUrlOptions1=You can also add following parameters to filter output: +AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). +AgendaUrlOptionsProject=project=__PROJECT_ID__ to restrict output to actions linked to project __PROJECT_ID__. +AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto to exclude automatic events. +AgendaUrlOptionsIncludeHolidays=includeholidays=1 to include events of holidays. +AgendaShowBirthdayEvents=Birthdays of contacts +AgendaHideBirthdayEvents=Hide birthdays of contacts +Busy=Busy +ExportDataset_event1=List of agenda events +DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6) +DefaultWorkingHours=Default working hours in day (Example: 9-18) +# External Sites ical +ExportCal=Export calendar +ExtSites=Import external calendars +ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users. +ExtSitesNbOfAgenda=Number of calendars +AgendaExtNb=Calendar no. %s +ExtSiteUrlAgenda=URL to access .ical file +ExtSiteNoLabel=No Description +VisibleTimeRange=Visible time range +VisibleDaysRange=Visible days range +AddEvent=Create event +MyAvailability=My availability +ActionType=Event type +DateActionBegin=Start event date +ConfirmCloneEvent=Are you sure you want to clone the event %s? +RepeatEvent=Repeat event +OnceOnly=Once only +EveryWeek=Every week +EveryMonth=Every month +DayOfMonth=Day of month +DayOfWeek=Day of week +DateStartPlusOne=Date start + 1 hour +SetAllEventsToTodo=Set all events to todo +SetAllEventsToInProgress=Set all events to in progress +SetAllEventsToFinished=Set all events to finished +ReminderTime=Reminder period before the event +TimeType=Duration type +ReminderType=Callback type +AddReminder=Create an automatic reminder notification for this event +ErrorReminderActionCommCreation=Error creating the reminder notification for this event +BrowserPush=Browser Popup Notification +ActiveByDefault=Enabled by default diff --git a/htdocs/langs/ms_MY/assets.lang b/htdocs/langs/ms_MY/assets.lang new file mode 100644 index 00000000000..fd7185d93c0 --- /dev/null +++ b/htdocs/langs/ms_MY/assets.lang @@ -0,0 +1,186 @@ +# Copyright (C) 2018-2022 Alexandre Spangaro +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Generic +# +NewAsset=New asset +AccountancyCodeAsset=Accounting code (asset) +AccountancyCodeDepreciationAsset=Accounting code (depreciation asset account) +AccountancyCodeDepreciationExpense=Accounting code (depreciation expense account) +AssetsLines=Assets +DeleteType=Delete +DeleteAnAssetType=Delete an asset model +ConfirmDeleteAssetType=Are you sure you want to delete this asset model? +ShowTypeCard=Show model '%s' + +# Module label 'ModuleAssetsName' +ModuleAssetsName=Assets +# Module description 'ModuleAssetsDesc' +ModuleAssetsDesc=Assets description + +# +# Admin page +# +AssetSetup=Assets setup +AssetSetupPage=Assets setup page +ExtraFieldsAssetModel=Complementary attributes (Asset's model) + +AssetsType=Asset model +AssetsTypeId=Asset model id +AssetsTypeLabel=Asset model label +AssetsTypes=Assets models +ASSET_ACCOUNTANCY_CATEGORY=Fixed asset accounting group + +# +# Menu +# +MenuAssets=Assets +MenuNewAsset=New asset +MenuAssetModels=Model assets +MenuListAssets=List +MenuNewAssetModel=New asset's model +MenuListAssetModels=List + +# +# Module +# +ConfirmDeleteAsset=Do you really want to remove this asset? + +# +# Tab +# +AssetDepreciationOptions=Depreciation options +AssetAccountancyCodes=Accounting accounts +AssetDepreciation=Depreciation + +# +# Asset +# +Asset=Asset +Assets=Assets +AssetReversalAmountHT=Reversal amount (without taxes) +AssetAcquisitionValueHT=Acquisition amount (without taxes) +AssetRecoveredVAT=Recovered VAT +AssetReversalDate=Reversal date +AssetDateAcquisition=Acquisition date +AssetDateStart=Date of start-up +AssetAcquisitionType=Type of acquisition +AssetAcquisitionTypeNew=New +AssetAcquisitionTypeOccasion=Used +AssetType=Type of asset +AssetTypeIntangible=Intangible +AssetTypeTangible=Tangible +AssetTypeInProgress=In progress +AssetTypeFinancial=Financial +AssetNotDepreciated=Not depreciated +AssetDisposal=Disposal +AssetConfirmDisposalAsk=Are you sure you want to dispose of the asset %s? +AssetConfirmReOpenAsk=Are you sure you want to reopen the asset %s? + +# +# Asset status +# +AssetInProgress=In progress +AssetDisposed=Disposed +AssetRecorded=Accounted + +# +# Asset disposal +# +AssetDisposalDate=Date of disposal +AssetDisposalAmount=Disposal value +AssetDisposalType=Type of disposal +AssetDisposalDepreciated=Depreciate the year of transfer +AssetDisposalSubjectToVat=Disposal subject to VAT + +# +# Asset model +# +AssetModel=Asset's model +AssetModels=Asset's models + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Economic depreciation +AssetDepreciationOptionAcceleratedDepreciation=Accelerated depreciation (tax) +AssetDepreciationOptionDepreciationType=Depreciation type +AssetDepreciationOptionDepreciationTypeLinear=Linear +AssetDepreciationOptionDepreciationTypeDegressive=Degressive +AssetDepreciationOptionDepreciationTypeExceptional=Exceptional +AssetDepreciationOptionDegressiveRate=Degressive rate +AssetDepreciationOptionAcceleratedDepreciation=Accelerated depreciation (tax) +AssetDepreciationOptionDuration=Duration +AssetDepreciationOptionDurationType=Type duration +AssetDepreciationOptionDurationTypeAnnual=Annual +AssetDepreciationOptionDurationTypeMonthly=Monthly +AssetDepreciationOptionDurationTypeDaily=Daily +AssetDepreciationOptionRate=Rate (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Depreciation base (excl. VAT) +AssetDepreciationOptionAmountBaseDeductibleHT=Deductible base (excl. VAT) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Total amount last depreciation (excl. VAT) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Economic depreciation +AssetAccountancyCodeAsset=Asset +AssetAccountancyCodeDepreciationAsset=Depreciation +AssetAccountancyCodeDepreciationExpense=Depreciation expense +AssetAccountancyCodeValueAssetSold=Value of asset disposed +AssetAccountancyCodeReceivableOnAssignment=Receivable on disposal +AssetAccountancyCodeProceedsFromSales=Proceeds from disposal +AssetAccountancyCodeVatCollected=Collected VAT +AssetAccountancyCodeVatDeductible=Recovered VAT on assets +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Accelerated depreciation (tax) +AssetAccountancyCodeAcceleratedDepreciation=Account +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Depreciation expense +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossession/Provision + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Depreciation basis (excl. VAT) +AssetDepreciationBeginDate=Start of depreciation on +AssetDepreciationDuration=Duration +AssetDepreciationRate=Rate (%%) +AssetDepreciationDate=Depreciation date +AssetDepreciationHT=Depreciation (excl. VAT) +AssetCumulativeDepreciationHT=Cumulative depreciation (excl. VAT) +AssetResidualHT=Residual value (excl. VAT) +AssetDispatchedInBookkeeping=Depreciation recorded +AssetFutureDepreciationLine=Future depreciation +AssetDepreciationReversal=Reversal + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Id of the asset or the model sound has not been provided +AssetErrorFetchAccountancyCodesForMode=Error when retrieving the accounting accounts for the '%s' depreciation mode +AssetErrorDeleteAccountancyCodesForMode=Error when deleting accounting accounts from the '%s' depreciation mode +AssetErrorInsertAccountancyCodesForMode=Error when inserting the accounting accounts of the depreciation mode '%s' +AssetErrorFetchDepreciationOptionsForMode=Error when retrieving options for the '%s' depreciation mode +AssetErrorDeleteDepreciationOptionsForMode=Error when deleting the '%s' depreciation mode options +AssetErrorInsertDepreciationOptionsForMode=Error when inserting the '%s' depreciation mode options +AssetErrorFetchDepreciationLines=Error when retrieving recorded depreciation lines +AssetErrorClearDepreciationLines=Error when purging recorded depreciation lines (reversal and future) +AssetErrorAddDepreciationLine=Error when adding a depreciation line +AssetErrorCalculationDepreciationLines=Error when calculating the depreciation lines (recovery and future) +AssetErrorReversalDateNotProvidedForMode=The reversal date is not provided for the '%s' depreciation method +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=The reversal date must be greater than or equal to the beginning of the current fiscal year for the '%s' depreciation method +AssetErrorReversalAmountNotProvidedForMode=The reversal amount is not provided for the depreciation mode '%s'. +AssetErrorFetchCumulativeDepreciation=Error when retrieving the accumulated depreciation amount from the depreciation line +AssetErrorSetLastCumulativeDepreciation=Error when recording the last accumulated depreciation amount diff --git a/htdocs/langs/ms_MY/banks.lang b/htdocs/langs/ms_MY/banks.lang new file mode 100644 index 00000000000..10ba859e71f --- /dev/null +++ b/htdocs/langs/ms_MY/banks.lang @@ -0,0 +1,187 @@ +# Dolibarr language file - Source file is en_US - banks +Bank=Bank +MenuBankCash=Banks | Cash +MenuVariousPayment=Miscellaneous payments +MenuNewVariousPayment=New Miscellaneous payment +BankName=Bank name +FinancialAccount=Account +BankAccount=Bank account +BankAccounts=Bank accounts +BankAccountsAndGateways=Bank accounts | Gateways +ShowAccount=Show Account +AccountRef=Financial account ref +AccountLabel=Financial account label +CashAccount=Cash account +CashAccounts=Cash accounts +CurrentAccounts=Current accounts +SavingAccounts=Savings accounts +ErrorBankLabelAlreadyExists=Financial account label already exists +BankBalance=Balance +BankBalanceBefore=Balance before +BankBalanceAfter=Balance after +BalanceMinimalAllowed=Minimum allowed balance +BalanceMinimalDesired=Minimum desired balance +InitialBankBalance=Initial balance +EndBankBalance=End balance +CurrentBalance=Current balance +FutureBalance=Future balance +ShowAllTimeBalance=Show balance from start +AllTime=From start +Reconciliation=Reconciliation +RIB=Bank Account Number +IBAN=IBAN number +BIC=BIC/SWIFT code +SwiftValid=BIC/SWIFT valid +SwiftNotValid=BIC/SWIFT not valid +IbanValid=BAN valid +IbanNotValid=BAN not valid +StandingOrders=Direct debit orders +StandingOrder=Direct debit order +PaymentByDirectDebit=Payment by direct debit +PaymentByBankTransfers=Payments by credit transfer +PaymentByBankTransfer=Payment by credit transfer +AccountStatement=Account statement +AccountStatementShort=Statement +AccountStatements=Account statements +LastAccountStatements=Last account statements +IOMonthlyReporting=Monthly reporting +BankAccountDomiciliation=Bank address +BankAccountCountry=Account country +BankAccountOwner=Account owner name +BankAccountOwnerAddress=Account owner address +CreateAccount=Create account +NewBankAccount=New account +NewFinancialAccount=New financial account +MenuNewFinancialAccount=New financial account +EditFinancialAccount=Edit account +LabelBankCashAccount=Bank or cash label +AccountType=Account type +BankType0=Savings account +BankType1=Current or credit card account +BankType2=Cash account +AccountsArea=Accounts area +AccountCard=Account card +DeleteAccount=Delete account +ConfirmDeleteAccount=Are you sure you want to delete this account? +Account=Account +BankTransactionByCategories=Bank entries by categories +BankTransactionForCategory=Bank entries for category %s +RemoveFromRubrique=Remove link with category +RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? +ListBankTransactions=List of bank entries +IdTransaction=Transaction ID +BankTransactions=Bank entries +BankTransaction=Bank entry +ListTransactions=List entries +ListTransactionsByCategory=List entries/category +TransactionsToConciliate=Entries to reconcile +TransactionsToConciliateShort=To reconcile +Conciliable=Can be reconciled +Conciliate=Reconcile +Conciliation=Reconciliation +SaveStatementOnly=Save statement only +ReconciliationLate=Reconciliation late +IncludeClosedAccount=Include closed accounts +OnlyOpenedAccount=Only open accounts +AccountToCredit=Account to credit +AccountToDebit=Account to debit +DisableConciliation=Disable reconciliation feature for this account +ConciliationDisabled=Reconciliation feature disabled +LinkedToAConciliatedTransaction=Linked to a conciliated entry +StatusAccountOpened=Open +StatusAccountClosed=Closed +AccountIdShort=Number +LineRecord=Transaction +AddBankRecord=Add entry +AddBankRecordLong=Add entry manually +Conciliated=Reconciled +ReConciliedBy=Reconciled by +DateConciliating=Reconcile date +BankLineConciliated=Entry reconciled with bank receipt +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled +CustomerInvoicePayment=Customer payment +SupplierInvoicePayment=Vendor payment +SubscriptionPayment=Subscription payment +WithdrawalPayment=Debit payment order +SocialContributionPayment=Social/fiscal tax payment +BankTransfer=Credit transfer +BankTransfers=Credit transfers +MenuBankInternalTransfer=Internal transfer +TransferDesc=Use internal transfer to transfer from one account to another, the application will write two records: a debit in the source account and a credit in the target account. The same amount, label and date will be used for this transaction. +TransferFrom=From +TransferTo=To +TransferFromToDone=A transfer from %s to %s of %s %s has been recorded. +CheckTransmitter=Sender +ValidateCheckReceipt=Validate this check receipt? +ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated. +DeleteCheckReceipt=Delete this check receipt? +ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt? +BankChecks=Bank checks +BankChecksToReceipt=Checks awaiting deposit +BankChecksToReceiptShort=Checks awaiting deposit +ShowCheckReceipt=Show check deposit receipt +NumberOfCheques=No. of check +DeleteTransaction=Delete entry +ConfirmDeleteTransaction=Are you sure you want to delete this entry? +ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +BankMovements=Movements +PlannedTransactions=Planned entries +Graph=Graphs +ExportDataset_banque_1=Bank entries and account statement +ExportDataset_banque_2=Deposit slip +TransactionOnTheOtherAccount=Transaction on the other account +PaymentNumberUpdateSucceeded=Payment number updated successfully +PaymentNumberUpdateFailed=Payment number could not be updated +PaymentDateUpdateSucceeded=Payment date updated successfully +PaymentDateUpdateFailed=Payment date could not be updated +Transactions=Transactions +BankTransactionLine=Bank entry +AllAccounts=All bank and cash accounts +BackToAccount=Back to account +ShowAllAccounts=Show for all accounts +FutureTransaction=Future transaction. Unable to reconcile. +SelectChequeTransactionAndGenerate=Select/filter the checks which are to be included in the check deposit receipt. Then, click on "Create". +InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD +EventualyAddCategory=Eventually, specify a category in which to classify the records +ToConciliate=To reconcile? +ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click +DefaultRIB=Default BAN +AllRIB=All BAN +LabelRIB=BAN Label +NoBANRecord=No BAN record +DeleteARib=Delete BAN record +ConfirmDeleteRib=Are you sure you want to delete this BAN record? +RejectCheck=Check returned +ConfirmRejectCheck=Are you sure you want to mark this check as rejected? +RejectCheckDate=Date the check was returned +CheckRejected=Check returned +CheckRejectedAndInvoicesReopened=Check returned and invoices re-open +BankAccountModelModule=Document templates for bank accounts +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only. +DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New miscellaneous payment +VariousPayment=Miscellaneous payment +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payment +AddVariousPayment=Add miscellaneous payment +VariousPaymentId=Miscellaneous payment ID +VariousPaymentLabel=Miscellaneous payment label +ConfirmCloneVariousPayment=Confirm the clone of a miscellaneous payment +SEPAMandate=SEPA mandate +YourSEPAMandate=Your SEPA mandate +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to +AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) +BankColorizeMovement=Colorize movements +BankColorizeMovementDesc=If this function is enable, you can choose specific background color for debit or credit movements +BankColorizeMovementName1=Background color for debit movement +BankColorizeMovementName2=Background color for credit movement +IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined +NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled. +AlreadyOneBankAccount=Already one bank account defined +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. +ToCreateRelatedRecordIntoBank=To create missing related bank record diff --git a/htdocs/langs/ms_MY/bills.lang b/htdocs/langs/ms_MY/bills.lang new file mode 100644 index 00000000000..232b3bb02bd --- /dev/null +++ b/htdocs/langs/ms_MY/bills.lang @@ -0,0 +1,623 @@ +# Dolibarr language file - Source file is en_US - bills +Bill=Invoice +Bills=Invoices +BillsCustomers=Customer invoices +BillsCustomer=Customer invoice +BillsSuppliers=Vendor invoices +BillsCustomersUnpaid=Unpaid customer invoices +BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsSuppliersUnpaid=Unpaid vendor invoices +BillsSuppliersUnpaidForCompany=Unpaid vendors invoices for %s +BillsLate=Late payments +BillsStatistics=Customers invoices statistics +BillsStatisticsSuppliers=Vendors invoices statistics +DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping +DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter. +DisabledBecauseNotErasable=Disabled because cannot be erased +InvoiceStandard=Standard invoice +InvoiceStandardAsk=Standard invoice +InvoiceStandardDesc=This kind of invoice is the common invoice. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. +InvoiceProForma=Proforma invoice +InvoiceProFormaAsk=Proforma invoice +InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. +InvoiceReplacement=Replacement invoice +InvoiceReplacementAsk=Replacement invoice for invoice +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

    Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceAvoir=Credit note +InvoiceAvoirAsk=Credit note to correct invoice +InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). +invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice +invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice +invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount +ReplaceInvoice=Replace invoice %s +ReplacementInvoice=Replacement invoice +ReplacedByInvoice=Replaced by invoice %s +ReplacementByInvoice=Replaced by invoice +CorrectInvoice=Correct invoice %s +CorrectionInvoice=Correction invoice +UsedByInvoice=Used to pay invoice %s +ConsumedBy=Consumed by +NotConsumed=Not consumed +NoReplacableInvoice=No replaceable invoices +NoInvoiceToCorrect=No invoice to correct +InvoiceHasAvoir=Was source of one or several credit notes +CardBill=Invoice card +PredefinedInvoices=Predefined Invoices +Invoice=Invoice +PdfInvoiceTitle=Invoice +Invoices=Invoices +InvoiceLine=Invoice line +InvoiceCustomer=Customer invoice +CustomerInvoice=Customer invoice +CustomersInvoices=Customer invoices +SupplierInvoice=Vendor invoice +SuppliersInvoices=Vendor invoices +SupplierInvoiceLines=Vendor invoice lines +SupplierBill=Vendor invoice +SupplierBills=Vendor invoices +Payment=Payment +PaymentBack=Refund +CustomerInvoicePaymentBack=Refund +Payments=Payments +PaymentsBack=Refunds +paymentInInvoiceCurrency=in invoices currency +PaidBack=Paid back +DeletePayment=Delete payment +ConfirmDeletePayment=Are you sure you want to delete this payment? +ConfirmConvertToReduc=Do you want to convert this %s into an available credit? +ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReducSupplier=Do you want to convert this %s into an available credit? +ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. +SupplierPayments=Vendor payments +ReceivedPayments=Received payments +ReceivedCustomersPayments=Payments received from customers +PayedSuppliersPayments=Payments paid to vendors +ReceivedCustomersPaymentsToValid=Received customers payments to validate +PaymentsReportsForYear=Payments reports for %s +PaymentsReports=Payments reports +PaymentsAlreadyDone=Payments already done +PaymentsBackAlreadyDone=Refunds already done +PaymentRule=Payment rule +PaymentMode=Payment method +PaymentModes=Payment methods +DefaultPaymentMode=Default Payment method +DefaultBankAccount=Default Bank Account +IdPaymentMode=Payment method (id) +CodePaymentMode=Payment method (code) +LabelPaymentMode=Payment method (label) +PaymentModeShort=Payment method +PaymentTerm=Payment Term +PaymentConditions=Payment Terms +PaymentConditionsShort=Payment Terms +PaymentAmount=Payment amount +PaymentHigherThanReminderToPay=Payment higher than reminder to pay +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
    Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
    Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. +ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' +ClassifyPaidPartially=Classify 'Paid partially' +ClassifyCanceled=Classify 'Abandoned' +ClassifyClosed=Classify 'Closed' +ClassifyUnBilled=Classify 'Unbilled' +CreateBill=Create Invoice +CreateCreditNote=Create credit note +AddBill=Create invoice or credit note +AddToDraftInvoices=Add to draft invoice +DeleteBill=Delete invoice +SearchACustomerInvoice=Search for a customer invoice +SearchASupplierInvoice=Search for a vendor invoice +CancelBill=Cancel an invoice +SendRemindByMail=Send reminder by email +DoPayment=Enter payment +DoPaymentBack=Enter refund +ConvertToReduc=Mark as credit available +ConvertExcessReceivedToReduc=Convert excess received into available credit +ConvertExcessPaidToReduc=Convert excess paid into available discount +EnterPaymentReceivedFromCustomer=Enter payment received from customer +EnterPaymentDueToCustomer=Make payment due to customer +DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero +PriceBase=Base price +BillStatus=Invoice status +StatusOfGeneratedInvoices=Status of generated invoices +BillStatusDraft=Draft (needs to be validated) +BillStatusPaid=Paid +BillStatusPaidBackOrConverted=Credit note refund or marked as credit available +BillStatusConverted=Paid (ready for consumption in final invoice) +BillStatusCanceled=Abandoned +BillStatusValidated=Validated (needs to be paid) +BillStatusStarted=Started +BillStatusNotPaid=Not paid +BillStatusNotRefunded=Not refunded +BillStatusClosedUnpaid=Closed (unpaid) +BillStatusClosedPaidPartially=Paid (partially) +BillShortStatusDraft=Draft +BillShortStatusPaid=Paid +BillShortStatusPaidBackOrConverted=Refunded or converted +Refunded=Refunded +BillShortStatusConverted=Paid +BillShortStatusCanceled=Abandoned +BillShortStatusValidated=Validated +BillShortStatusStarted=Started +BillShortStatusNotPaid=Not paid +BillShortStatusNotRefunded=Not refunded +BillShortStatusClosedUnpaid=Closed +BillShortStatusClosedPaidPartially=Paid (partially) +PaymentStatusToValidShort=To validate +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined +ErrorNoPaiementModeConfigured=No default payment type defined. Go to Invoice module setup to fix this. +ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment types +ErrorBillNotFound=Invoice %s does not exist +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s. +ErrorDiscountAlreadyUsed=Error, discount already used +ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount +ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have an amount excluding tax positive (or null) +ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. +ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. +BillFrom=From +BillTo=To +ActionsOnBill=Actions on invoice +RecurringInvoiceTemplate=Template / Recurring invoice +NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation. +FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. +NotARecurringInvoiceTemplate=Not a recurring template invoice +NewBill=New invoice +LastBills=Latest %s invoices +LatestTemplateInvoices=Latest %s template invoices +LatestCustomerTemplateInvoices=Latest %s customer template invoices +LatestSupplierTemplateInvoices=Latest %s vendor template invoices +LastCustomersBills=Latest %s customer invoices +LastSuppliersBills=Latest %s vendor invoices +AllBills=All invoices +AllCustomerTemplateInvoices=All template invoices +OtherBills=Other invoices +DraftBills=Draft invoices +CustomersDraftInvoices=Customer draft invoices +SuppliersDraftInvoices=Vendor draft invoices +Unpaid=Unpaid +ErrorNoPaymentDefined=Error No payment defined +ConfirmDeleteBill=Are you sure you want to delete this invoice? +ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? +ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? +ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? +ConfirmCancelBill=Are you sure you want to cancel invoice %s? +ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? +ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason for closing this invoice? +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I regularize the VAT with a credit note. +ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid (%s %s) is a discount granted because payment was made before term. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I accept to lose the VAT on this discount. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note. +ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer +ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned +ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes. +ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A bad customer is a customer that refuses to pay his debt. +ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:
    - payment not complete because some products were shipped back
    - amount claimed too important because a discount was forgotten
    In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note. +ConfirmClassifyAbandonReasonOther=Other +ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice. +ConfirmCustomerPayment=Do you confirm this payment input for %s %s? +ConfirmSupplierPayment=Do you confirm this payment input for %s %s? +ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ValidateBill=Validate invoice +UnvalidateBill=Unvalidate invoice +NumberOfBills=No. of invoices +NumberOfBillsByMonth=No. of invoices per month +AmountOfBills=Amount of invoices +AmountOfBillsHT=Amount of invoices (net of tax) +AmountOfBillsByMonthHT=Amount of invoices by month (net of tax) +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +AllowedInvoiceForRetainedWarranty=Retained warranty usable on the following types of invoices +RetainedwarrantyDefaultPercent=Retained warranty default percent +RetainedwarrantyOnlyForSituation=Make "retained warranty" available only for situation invoices +RetainedwarrantyOnlyForSituationFinal=On situation invoices the global "retained warranty" deduction is applied only on the final situation +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF +AlreadyPaid=Already paid +AlreadyPaidBack=Already paid back +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) +Abandoned=Abandoned +RemainderToPay=Remaining unpaid +RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToTake=Remaining amount to take +RemainderToTakeMulticurrency=Remaining amount to take, original currency +RemainderToPayBack=Remaining amount to refund +RemainderToPayBackMulticurrency=Remaining amount to refund, original currency +NegativeIfExcessRefunded=negative if excess refunded +Rest=Pending +AmountExpected=Amount claimed +ExcessReceived=Excess received +ExcessReceivedMulticurrency=Excess received, original currency +NegativeIfExcessReceived=negative if excess received +ExcessPaid=Excess paid +ExcessPaidMulticurrency=Excess paid, original currency +EscompteOffered=Discount offered (payment before term) +EscompteOfferedShort=Discount +SendBillRef=Submission of invoice %s +SendReminderBillRef=Submission of invoice %s (reminder) +SendPaymentReceipt=Submission of payment receipt %s +NoDraftBills=No draft invoices +NoOtherDraftBills=No other draft invoices +NoDraftInvoices=No draft invoices +RefBill=Invoice ref +ToBill=To bill +RemainderToBill=Remainder to bill +SendBillByMail=Send invoice by email +SendReminderBillByMail=Send reminder by email +RelatedCommercialProposals=Related commercial proposals +RelatedRecurringCustomerInvoices=Related recurring customer invoices +MenuToValid=To valid +DateMaxPayment=Payment due on +DateInvoice=Invoice date +DatePointOfTax=Point of tax +NoInvoice=No invoice +NoOpenInvoice=No open invoice +NbOfOpenInvoices=Number of open invoices +ClassifyBill=Classify invoice +SupplierBillsToPay=Unpaid vendor invoices +CustomerBillsUnpaid=Unpaid customer invoices +NonPercuRecuperable=Non-recoverable +SetConditions=Set Payment Terms +SetMode=Set Payment Type +SetRevenuStamp=Set revenue stamp +Billed=Billed +RecurringInvoices=Recurring invoices +RecurringInvoice=Recurring invoice +RepeatableInvoice=Template invoice +RepeatableInvoices=Template invoices +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +Repeatable=Template +Repeatables=Templates +ChangeIntoRepeatableInvoice=Convert into template invoice +CreateRepeatableInvoice=Create template invoice +CreateFromRepeatableInvoice=Create from template invoice +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details +CustomersInvoicesAndPayments=Customer invoices and payments +ExportDataset_invoice_1=Customer invoices and invoice details +ExportDataset_invoice_2=Customer invoices and payments +ProformaBill=Proforma Bill: +Reduction=Reduction +ReductionShort=Disc. +Reductions=Reductions +ReductionsShort=Disc. +Discounts=Discounts +AddDiscount=Create discount +AddRelativeDiscount=Create relative discount +EditRelativeDiscount=Edit relative discount +AddGlobalDiscount=Create absolute discount +EditGlobalDiscounts=Edit absolute discounts +AddCreditNote=Create credit note +ShowDiscount=Show discount +ShowReduc=Show the discount +ShowSourceInvoice=Show the source invoice +RelativeDiscount=Relative discount +GlobalDiscount=Global discount +CreditNote=Credit note +CreditNotes=Credit notes +CreditNotesOrExcessReceived=Credit notes or excess received +Deposit=Down payment +Deposits=Down payments +DiscountFromCreditNote=Discount from credit note %s +DiscountFromDeposit=Down payments from invoice %s +DiscountFromExcessReceived=Payments in excess of invoice %s +DiscountFromExcessPaid=Payments in excess of invoice %s +AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation +CreditNoteDepositUse=Invoice must be validated to use this kind of credits +NewGlobalDiscount=New absolute discount +NewRelativeDiscount=New relative discount +DiscountType=Discount type +NoteReason=Note/Reason +ReasonDiscount=Reason +DiscountOfferedBy=Granted by +DiscountStillRemaining=Discounts or credits available +DiscountAlreadyCounted=Discounts or credits already consumed +CustomerDiscounts=Customer discounts +SupplierDiscounts=Vendors discounts +BillAddress=Bill address +HelpEscompte=This discount is a discount granted to customer because payment was made before term. +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss. +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example) +IdSocialContribution=Social/fiscal tax payment id +PaymentId=Payment id +PaymentRef=Payment ref. +InvoiceId=Invoice id +InvoiceRef=Invoice ref. +InvoiceDateCreation=Invoice creation date +InvoiceStatus=Invoice status +InvoiceNote=Invoice note +InvoicePaid=Invoice paid +InvoicePaidCompletely=Paid completely +InvoicePaidCompletelyHelp=Invoice that are paid completely. This excludes invoices that are paid partially. To get list of all 'Closed' or non 'Closed' invoices, prefer to use a filter on the invoice status. +OrderBilled=Order billed +DonationPaid=Donation paid +PaymentNumber=Payment number +RemoveDiscount=Remove discount +WatermarkOnDraftBill=Watermark on draft invoices (nothing if empty) +InvoiceNotChecked=No invoice selected +ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payments during the fixed year are included here. +NbOfPayments=No. of payments +SplitDiscount=Split discount in two +ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into two smaller discounts? +TypeAmountOfEachNewDiscount=Input amount for each of two parts: +TotalOfTwoDiscountMustEqualsOriginal=The total of the two new discounts must be equal to the original discount amount. +ConfirmRemoveDiscount=Are you sure you want to remove this discount? +RelatedBill=Related invoice +RelatedBills=Related invoices +RelatedCustomerInvoices=Related customer invoices +RelatedSupplierInvoices=Related vendor invoices +LatestRelatedBill=Latest related invoice +WarningBillExist=Warning, one or more invoices already exist +MergingPDFTool=Merging PDF tool +AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company +PaymentNote=Payment note +ListOfPreviousSituationInvoices=List of previous situation invoices +ListOfNextSituationInvoices=List of next situation invoices +ListOfSituationInvoices=List of situation invoices +CurrentSituationTotal=Total current situation +DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total +RemoveSituationFromCycle=Remove this invoice from cycle +ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ? +ConfirmOuting=Confirm outing +FrequencyPer_d=Every %s days +FrequencyPer_m=Every %s months +FrequencyPer_y=Every %s years +FrequencyUnit=Frequency unit +toolTipFrequency=Examples:
    Set 7, Day: give a new invoice every 7 days
    Set 3, Month: give a new invoice every 3 month +NextDateToExecution=Date for next invoice generation +NextDateToExecutionShort=Date next gen. +DateLastGeneration=Date of latest generation +DateLastGenerationShort=Date latest gen. +MaxPeriodNumber=Max. number of invoice generation +NbOfGenerationDone=Number of invoice generation already done +NbOfGenerationOfRecordDone=Number of record generation already done +NbOfGenerationDoneShort=Number of generation done +MaxGenerationReached=Maximum number of generations reached +InvoiceAutoValidate=Validate invoices automatically +GeneratedFromRecurringInvoice=Generated from template recurring invoice %s +DateIsNotEnough=Date not reached yet +InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s +GeneratedFromTemplate=Generated from template invoice %s +WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date +WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +ViewAvailableGlobalDiscounts=View available discounts +GroupPaymentsByModOnReports=Group payments by mode on reports +# PaymentConditions +Statut=Status +PaymentConditionShortRECEP=Due Upon Receipt +PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShort30D=30 days +PaymentCondition30D=30 days +PaymentConditionShort30DENDMONTH=30 days of month-end +PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort60D=60 days +PaymentCondition60D=60 days +PaymentConditionShort60DENDMONTH=60 days of month-end +PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShortPT_DELIVERY=Delivery +PaymentConditionPT_DELIVERY=On delivery +PaymentConditionShortPT_ORDER=Order +PaymentConditionPT_ORDER=On order +PaymentConditionShortPT_5050=50-50 +PaymentConditionPT_5050=50%% in advance, 50%% on delivery +PaymentConditionShort10D=10 days +PaymentCondition10D=10 days +PaymentConditionShort10DENDMONTH=10 days of month-end +PaymentCondition10DENDMONTH=Within 10 days following the end of the month +PaymentConditionShort14D=14 days +PaymentCondition14D=14 days +PaymentConditionShort14DENDMONTH=14 days of month-end +PaymentCondition14DENDMONTH=Within 14 days following the end of the month +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposit, remainder on delivery +FixAmount=Fixed amount - 1 line with label '%s' +VarAmount=Variable amount (%% tot.) +VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s' +VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +DepositPercent=Deposit %% +DepositGenerationPermittedByThePaymentTermsSelected=This is permitted by the payment terms selected +GenerateDeposit=Generate a %s%% deposit invoice +ValidateGeneratedDeposit=Validate the generated deposit +DepositGenerated=Deposit generated +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=You can only automatically generate a deposit from a proposal or an order +ErrorPaymentConditionsNotEligibleToDepositCreation=The chose payment conditions are not eligible for automatic deposit generation +# PaymentType +PaymentTypeVIR=Bank transfer +PaymentTypeShortVIR=Bank transfer +PaymentTypePRE=Direct debit payment order +PaymentTypeShortPRE=Debit payment order +PaymentTypeLIQ=Cash +PaymentTypeShortLIQ=Cash +PaymentTypeCB=Credit card +PaymentTypeShortCB=Credit card +PaymentTypeCHQ=Check +PaymentTypeShortCHQ=Check +PaymentTypeTIP=TIP (Documents against Payment) +PaymentTypeShortTIP=TIP Payment +PaymentTypeVAD=Online payment +PaymentTypeShortVAD=Online payment +PaymentTypeTRA=Bank draft +PaymentTypeShortTRA=Draft +PaymentTypeFAC=Factor +PaymentTypeShortFAC=Factor +PaymentTypeDC=Debit/Credit Card +PaymentTypePP=PayPal +BankDetails=Bank details +BankCode=Bank code +DeskCode=Branch code +BankAccountNumber=Account number +BankAccountNumberKey=Checksum +Residence=Address +IBANNumber=IBAN account number +IBAN=IBAN +CustomerIBAN=IBAN of customer +SupplierIBAN=IBAN of vendor +BIC=BIC/SWIFT +BICNumber=BIC/SWIFT code +ExtraInfos=Extra infos +RegulatedOn=Regulated on +ChequeNumber=Check N° +ChequeOrTransferNumber=Check/Transfer N° +ChequeBordereau=Check schedule +ChequeMaker=Check/Transfer sender +ChequeBank=Bank of Check +CheckBank=Check +NetToBePaid=Net to be paid +PhoneNumber=Tel +FullPhoneNumber=Telephone +TeleFax=Fax +PrettyLittleSentence=Accept the amount of payments due by checks issued in my name as a Member of an accounting association approved by the Fiscal Administration. +IntracommunityVATNumber=Intra-Community VAT ID +PaymentByChequeOrderedTo=Check payments (including tax) are payable to %s, send to +PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to +SendTo=sent to +PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account +VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI +LawApplicationPart1=By application of the law 80.335 of 12/05/80 +LawApplicationPart2=the goods remain the property of +LawApplicationPart3=the seller until full payment of +LawApplicationPart4=their price. +LimitedLiabilityCompanyCapital=SARL with Capital of +UseLine=Apply +UseDiscount=Use discount +UseCredit=Use credit +UseCreditNoteInInvoicePayment=Reduce amount to pay with this credit +MenuChequeDeposits=Check Deposits +MenuCheques=Checks +MenuChequesReceipts=Check receipts +NewChequeDeposit=New deposit +ChequesReceipts=Check receipts +ChequesArea=Check deposits area +ChequeDeposits=Check deposits +Cheques=Checks +DepositId=Id deposit +NbCheque=Number of checks +CreditNoteConvertedIntoDiscount=This %s has been converted into %s +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third-party address as recipient for invoices +ShowUnpaidAll=Show all unpaid invoices +ShowUnpaidLateOnly=Show late unpaid invoices only +PaymentInvoiceRef=Payment invoice %s +ValidateInvoice=Validate invoice +ValidateInvoices=Validate invoices +Cash=Cash +Reported=Delayed +DisabledBecausePayments=Not possible since there are some payments +CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid +CantRemovePaymentVATPaid=Can't remove payment since VAT declaration is classified paid +CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +ExpectedToPay=Expected payment +CantRemoveConciliatedPayment=Can't remove reconciled payment +PayedByThisPayment=Paid by this payment +ClosePaidInvoicesAutomatically=Classify automatically all standard, down payment or replacement invoices as "Paid" when payment is done entirely. +ClosePaidCreditNotesAutomatically=Classify automatically all credit notes as "Paid" when refund is done entirely. +ClosePaidContributionsAutomatically=Classify automatically all social or fiscal contributions as "Paid" when payment is done entirely. +ClosePaidVATAutomatically=Classify automatically VAT declaration as "Paid" when payment is done entirely. +ClosePaidSalaryAutomatically=Classify automatically salary as "Paid" when payment is done entirely. +AllCompletelyPayedInvoiceWillBeClosed=All invoices with no remainder to pay will be automatically closed with status "Paid". +ToMakePayment=Pay +ToMakePaymentBack=Pay back +ListOfYourUnpaidInvoices=List of unpaid invoices +NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative. +RevenueStamp=Tax stamp +YouMustCreateInvoiceFromThird=This option is only available when creating an invoice from tab "Customer" of third party +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating an invoice from tab "Vendor" of third party +YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice +PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (old implementation of Sponge template) +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template +PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices +TerreNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +MarsNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. +CactusNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +EarlyClosingReason=Early closing reason +EarlyClosingComment=Early closing note +##### Types de contacts ##### +TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice +TypeContact_facture_external_BILLING=Customer invoice contact +TypeContact_facture_external_SHIPPING=Customer shipping contact +TypeContact_facture_external_SERVICE=Customer service contact +TypeContact_invoice_supplier_internal_SALESREPFOLL=Representative following-up vendor invoice +TypeContact_invoice_supplier_external_BILLING=Vendor invoice contact +TypeContact_invoice_supplier_external_SHIPPING=Vendor shipping contact +TypeContact_invoice_supplier_external_SERVICE=Vendor service contact +# Situation invoices +InvoiceFirstSituationAsk=First situation invoice +InvoiceFirstSituationDesc=The situation invoices are tied to situations related to a progression, for example the progression of a construction. Each situation is tied to an invoice. +InvoiceSituation=Situation invoice +PDFInvoiceSituation=Situation invoice +InvoiceSituationAsk=Invoice following the situation +InvoiceSituationDesc=Create a new situation following an already existing one +SituationAmount=Situation invoice amount(net) +SituationDeduction=Situation subtraction +ModifyAllLines=Modify all lines +CreateNextSituationInvoice=Create next situation +ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref +ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice. +ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note. +NotLastInCycle=This invoice is not the latest in cycle and must not be modified. +DisabledBecauseNotLastInCycle=The next situation already exists. +DisabledBecauseFinal=This situation is final. +situationInvoiceShortcode_AS=AS +situationInvoiceShortcode_S=S +CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation. +NoSituations=No open situations +InvoiceSituationLast=Final and general invoice +PDFCrevetteSituationNumber=Situation N°%s +PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT +PDFCrevetteSituationInvoiceTitle=Situation invoice +PDFCrevetteSituationInvoiceLine=Situation N°%s: Inv. N°%s on %s +TotalSituationInvoice=Total situation +invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line +updatePriceNextInvoiceErrorUpdateline=Error: update price on invoice line: %s +ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices. +ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu %s - %s - %s. +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module %s. Note that both methods (manual and automatic) can be used together with no risk of duplication. +DeleteRepeatableInvoice=Delete template invoice +ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice? +CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per selected object) +BillCreated=%s invoice(s) generated +BillXCreated=Invoice %s generated +StatusOfGeneratedDocuments=Status of document generation +DoNotGenerateDoc=Do not generate document file +AutogenerateDoc=Auto generate document file +AutoFillDateFrom=Set start date for service line with invoice date +AutoFillDateFromShort=Set start date +AutoFillDateTo=Set end date for service line with next invoice date +AutoFillDateToShort=Set end date +MaxNumberOfGenerationReached=Max number of gen. reached +BILL_DELETEInDolibarr=Invoice deleted +BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted +UnitPriceXQtyLessDiscount=Unit price x Qty - Discount +CustomersInvoicesArea=Customer billing area +SupplierInvoicesArea=Supplier billing area +SituationTotalRayToRest=Remainder to pay without taxe +PDFSituationTitle=Situation n° %d +SituationTotalProgress=Total progress %d %% +SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s +NoPaymentAvailable=No payment available for %s +PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid +SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +MakePaymentAndClassifyPayed=Record payment +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) diff --git a/htdocs/langs/ms_MY/blockedlog.lang b/htdocs/langs/ms_MY/blockedlog.lang new file mode 100644 index 00000000000..12f28737d49 --- /dev/null +++ b/htdocs/langs/ms_MY/blockedlog.lang @@ -0,0 +1,57 @@ +BlockedLog=Unalterable Logs +Field=Field +BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). +Fingerprints=Archived events and fingerprints +FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). +CompanyInitialKey=Company initial key (hash of genesis block) +BrowseBlockedLog=Unalterable logs +ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) +ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) +DownloadBlockChain=Download fingerprints +KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists) or has modified checksum of the previous record. +OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. +OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. +AddedByAuthority=Stored into remote authority +NotAddedByAuthorityYet=Not yet stored into remote authority +ShowDetails=Show stored details +logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created +logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified +logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion +logPAYMENT_ADD_TO_BANK=Payment added to bank +logPAYMENT_CUSTOMER_CREATE=Customer payment created +logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion +logDONATION_PAYMENT_CREATE=Donation payment created +logDONATION_PAYMENT_DELETE=Donation payment logical deletion +logBILL_PAYED=Customer invoice paid +logBILL_UNPAYED=Customer invoice set unpaid +logBILL_VALIDATE=Customer invoice validated +logBILL_SENTBYMAIL=Customer invoice send by mail +logBILL_DELETE=Customer invoice logically deleted +logMODULE_RESET=Module BlockedLog was disabled +logMODULE_SET=Module BlockedLog was enabled +logDON_VALIDATE=Donation validated +logDON_MODIFY=Donation modified +logDON_DELETE=Donation logical deletion +logMEMBER_SUBSCRIPTION_CREATE=Member subscription created +logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified +logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion +logCASHCONTROL_VALIDATE=Cash desk closing recording +BlockedLogBillDownload=Customer invoice download +BlockedLogBillPreview=Customer invoice preview +BlockedlogInfoDialog=Log Details +ListOfTrackedEvents=List of tracked events +Fingerprint=Fingerprint +DownloadLogCSV=Export archived logs (CSV) +logDOC_PREVIEW=Preview of a validated document in order to print or download +logDOC_DOWNLOAD=Download of a validated document in order to print or send +DataOfArchivedEvent=Full datas of archived event +ImpossibleToReloadObject=Original object (type %s, id %s) not linked (see 'Full datas' column to get unalterable saved data) +BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be required by the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they cannot be validated by a tax audit. +BlockedLogDisableNotAllowedForCountry=List of countries where usage of this module is mandatory (just to prevent to disable the module by error, if your country is in this list, disable of module is not possible without editing this list first. Note also that enabling/disabling this module will keep a track into the unalterable log). +OnlyNonValid=Non-valid +TooManyRecordToScanRestrictFilters=Too many records to scan/analyze. Please restrict list with more restrictive filters. +RestrictYearToExport=Restrict month / year to export +BlockedLogEnabled=System to track events into unalterable logs has been enabled +BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken +BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. diff --git a/htdocs/langs/ms_MY/bookmarks.lang b/htdocs/langs/ms_MY/bookmarks.lang new file mode 100644 index 00000000000..be0f2f7e25d --- /dev/null +++ b/htdocs/langs/ms_MY/bookmarks.lang @@ -0,0 +1,22 @@ +# Dolibarr language file - Source file is en_US - marque pages +AddThisPageToBookmarks=Add current page to bookmarks +Bookmark=Bookmark +Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks +NewBookmark=New bookmark +ShowBookmark=Show bookmark +OpenANewWindow=Open a new tab +ReplaceWindow=Replace current tab +BookmarkTargetNewWindowShort=New tab +BookmarkTargetReplaceWindowShort=Current tab +BookmarkTitle=Bookmark name +UrlOrLink=URL +BehaviourOnClick=Behaviour when a bookmark URL is selected +CreateBookmark=Create bookmark +SetHereATitleForLink=Set a name for the bookmark +UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab +BookmarksManagement=Bookmarks management +BookmarksMenuShortCut=Ctrl + shift + m +NoBookmarks=No bookmarks defined diff --git a/htdocs/langs/ms_MY/boxes.lang b/htdocs/langs/ms_MY/boxes.lang new file mode 100644 index 00000000000..4173d5e4c7e --- /dev/null +++ b/htdocs/langs/ms_MY/boxes.lang @@ -0,0 +1,121 @@ +# Dolibarr language file - Source file is en_US - boxes +BoxDolibarrStateBoard=Statistics on main business objects in database +BoxLoginInformation=Login Information +BoxLastRssInfos=RSS Information +BoxLastProducts=Latest %s Products/Services +BoxProductsAlertStock=Stock alerts for products +BoxLastProductsInContract=Latest %s contracted products/services +BoxLastSupplierBills=Latest Vendor invoices +BoxLastCustomerBills=Latest Customer invoices +BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices +BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices +BoxLastProposals=Latest commercial proposals +BoxLastProspects=Latest modified prospects +BoxLastCustomers=Latest modified customers +BoxLastSuppliers=Latest modified suppliers +BoxLastCustomerOrders=Latest sales orders +BoxLastActions=Latest actions +BoxLastContracts=Latest contracts +BoxLastContacts=Latest contacts/addresses +BoxLastMembers=Latest members +BoxLastModifiedMembers=Latest modified members +BoxLastMembersSubscriptions=Latest member subscriptions +BoxFicheInter=Latest interventions +BoxCurrentAccounts=Open accounts balance +BoxTitleMemberNextBirthdays=Birthdays of this month (members) +BoxTitleMembersByType=Members by type and status +BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year +BoxTitleLastRssInfos=Latest %s news from %s +BoxTitleLastProducts=Products/Services: last %s modified +BoxTitleProductsAlertStock=Products: stock alert +BoxTitleLastSuppliers=Latest %s recorded suppliers +BoxTitleLastModifiedSuppliers=Vendors: last %s modified +BoxTitleLastModifiedCustomers=Customers: last %s modified +BoxTitleLastCustomersOrProspects=Latest %s customers or prospects +BoxTitleLastCustomerBills=Latest %s modified Customer invoices +BoxTitleLastSupplierBills=Latest %s modified Vendor invoices +BoxTitleLastModifiedProspects=Prospects: last %s modified +BoxTitleLastModifiedMembers=Latest %s members +BoxTitleLastFicheInter=Latest %s modified interventions +BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid +BoxTitleOldestUnpaidSupplierBills=Vendor Invoices: oldest %s unpaid +BoxTitleCurrentAccounts=Open Accounts: balances +BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception +BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified +BoxMyLastBookmarks=Bookmarks: latest %s +BoxOldestExpiredServices=Oldest active expired services +BoxLastExpiredServices=Latest %s oldest contacts with active expired services +BoxTitleLastActionsToDo=Latest %s actions to do +BoxTitleOldestActionsToDo=Oldest %s event to do not completed +BoxTitleLastContracts=Latest %s contracts which were modified +BoxTitleLastModifiedDonations=Latest %s donations which were modified +BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified +BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified +BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified +BoxTitleLastOutstandingBillReached=Customers with maximum outstanding exceeded +BoxGlobalActivity=Global activity (invoices, proposals, orders) +BoxGoodCustomers=Good customers +BoxTitleGoodCustomers=%s Good customers +BoxScheduledJobs=Scheduled jobs +BoxTitleFunnelOfProspection=Lead funnel +FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s +LastRefreshDate=Latest refresh date +NoRecordedBookmarks=No bookmarks defined. +ClickToAdd=Click here to add. +NoRecordedCustomers=No recorded customers +NoRecordedContacts=No recorded contacts +NoActionsToDo=No actions to do +NoRecordedOrders=No recorded sales orders +NoRecordedProposals=No recorded proposals +NoRecordedInvoices=No recorded customer invoices +NoUnpaidCustomerBills=No unpaid customer invoices +NoUnpaidSupplierBills=No unpaid vendor invoices +NoModifiedSupplierBills=No recorded vendor invoices +NoRecordedProducts=No recorded products/services +NoRecordedProspects=No recorded prospects +NoContractedProducts=No products/services contracted +NoRecordedContracts=No recorded contracts +NoRecordedInterventions=No recorded interventions +BoxLatestSupplierOrders=Latest purchase orders +BoxLatestSupplierOrdersAwaitingReception=Latest Purchase Orders (with a pending reception) +NoSupplierOrder=No recorded purchase order +BoxCustomersInvoicesPerMonth=Customer Invoices per month +BoxSuppliersInvoicesPerMonth=Vendor Invoices per month +BoxCustomersOrdersPerMonth=Sales Orders per month +BoxSuppliersOrdersPerMonth=Vendor Orders per month +BoxProposalsPerMonth=Proposals per month +NoTooLowStockProducts=No products are under the low stock limit +BoxProductDistribution=Products/Services Distribution +ForObject=On %s +BoxTitleLastModifiedSupplierBills=Vendor Invoices: last %s modified +BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified +BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified +BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified +BoxTitleLastModifiedPropals=Latest %s modified proposals +BoxTitleLatestModifiedJobPositions=Latest %s modified job positions +BoxTitleLatestModifiedCandidatures=Latest %s modified job applications +ForCustomersInvoices=Customers invoices +ForCustomersOrders=Customers orders +ForProposals=Proposals +LastXMonthRolling=The latest %s month rolling +ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard +BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document +NoRecordedManualEntries=No manual entries record in accountancy +BoxSuspenseAccount=Count accountancy operation with suspense account +BoxTitleSuspenseAccount=Number of unallocated lines +NumberOfLinesInSuspenseAccount=Number of line in suspense account +SuspenseAccountNotDefined=Suspense account isn't defined +BoxLastCustomerShipments=Last customer shipments +BoxTitleLastCustomerShipments=Latest %s customer shipments +NoRecordedShipments=No recorded customer shipment +BoxCustomersOutstandingBillReached=Customers with oustanding limit reached +# Pages +UsersHome=Home users and groups +MembersHome=Home Membership +ThirdpartiesHome=Home Thirdparties +TicketsHome=Home Tickets +AccountancyHome=Home Accountancy +ValidatedProjects=Validated projects diff --git a/htdocs/langs/ms_MY/cashdesk.lang b/htdocs/langs/ms_MY/cashdesk.lang new file mode 100644 index 00000000000..92e16791f08 --- /dev/null +++ b/htdocs/langs/ms_MY/cashdesk.lang @@ -0,0 +1,145 @@ +# Language file - Source file is en_US - cashdesk +CashDeskMenu=Point of sale +CashDesk=Point of sale +CashDeskBankCash=Bank account (cash) +CashDeskBankCB=Bank account (card) +CashDeskBankCheque=Bank account (cheque) +CashDeskWarehouse=Warehouse +CashdeskShowServices=Selling services +CashDeskProducts=Products +CashDeskStock=Stock +CashDeskOn=on +CashDeskThirdParty=Third party +ShoppingCart=Shopping cart +NewSell=New sell +AddThisArticle=Add this article +RestartSelling=Go back on sell +SellFinished=Sale complete +PrintTicket=Print ticket +SendTicket=Send ticket +NoProductFound=No article found +ProductFound=product found +NoArticle=No article +Identification=Identification +Article=Article +Difference=Difference +TotalTicket=Total ticket +NoVAT=No VAT for this sale +Change=Excess received +BankToPay=Account for payment +ShowCompany=Show company +ShowStock=Show warehouse +DeleteArticle=Click to remove this article +FilterRefOrLabelOrBC=Search (Ref/Label) +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock. +DolibarrReceiptPrinter=Dolibarr Receipt Printer +PointOfSale=Point of Sale +PointOfSaleShort=POS +CloseBill=Close Bill +Floors=Floors +Floor=Floor +AddTable=Add table +Place=Place +TakeposConnectorNecesary='TakePOS Connector' required +OrderPrinters=Add a button to send the order to some given printers, without payment (for example to send an order to a kitchen) +NotAvailableWithBrowserPrinter=Not available when printer for receipt is set to browser +SearchProduct=Search product +Receipt=Receipt +Header=Header +Footer=Footer +AmountAtEndOfPeriod=Amount at end of period (day, month or year) +TheoricalAmount=Theorical amount +RealAmount=Real amount +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period +NbOfInvoices=Nb of invoices +Paymentnumpad=Type of Pad to enter payment +Numberspad=Numbers Pad +BillsCoinsPad=Coins and banknotes Pad +DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr +TakeposNeedsCategories=TakePOS needs at least one product categorie to work +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS needs at least 1 product category under the category %s to work +OrderNotes=Can add some notes to each ordered items +CashDeskBankAccountFor=Default account to use for payments in +NoPaimementModesDefined=No paiment mode defined in TakePOS configuration +TicketVatGrouped=Group VAT by rate in tickets|receipts +AutoPrintTickets=Automatically print tickets|receipts +PrintCustomerOnReceipts=Print customer on tickets|receipts +EnableBarOrRestaurantFeatures=Enable features for Bar or Restaurant +ConfirmDeletionOfThisPOSSale=Do your confirm the deletion of this current sale ? +ConfirmDiscardOfThisPOSSale=Do you want to discard this current sale ? +History=History +ValidateAndClose=Validate and close +Terminal=Terminal +NumberOfTerminals=Number of Terminals +TerminalSelect=Select terminal you want to use: +POSTicket=POS Ticket +POSTerminal=POS Terminal +POSModule=POS Module +BasicPhoneLayout=Use basic layout for phones +SetupOfTerminalNotComplete=Setup of terminal %s is not complete +DirectPayment=Direct payment +DirectPaymentButton=Add a "Direct cash payment" button +InvoiceIsAlreadyValidated=Invoice is already validated +NoLinesToBill=No lines to bill +CustomReceipt=Custom Receipt +ReceiptName=Receipt Name +ProductSupplements=Manage supplements of products +SupplementCategory=Supplement category +ColorTheme=Color theme +Colorful=Colorful +HeadBar=Head Bar +SortProductField=Field for sorting products +Browser=Browser +BrowserMethodDescription=Simple and easy receipt printing. Only a few parameters to configure the receipt. Print via browser. +TakeposConnectorMethodDescription=External module with extra features. Posibility to print from the cloud. +PrintMethod=Print method +ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. The server hosting the application can't be in the Cloud (must be able to reach the printers in your network). +ByTerminal=By terminal +TakeposNumpadUsePaymentIcon=Use icon instead of text on payment buttons of numpad +CashDeskRefNumberingModules=Numbering module for POS sales +CashDeskGenericMaskCodes6 =
    {TN} tag is used to add the terminal number +TakeposGroupSameProduct=Group same products lines +StartAParallelSale=Start a new parallel sale +SaleStartedAt=Sale started at %s +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control +CashReport=Cash report +MainPrinterToUse=Main printer to use +OrderPrinterToUse=Order printer to use +MainTemplateToUse=Main template to use +OrderTemplateToUse=Order template to use +BarRestaurant=Bar Restaurant +AutoOrder=Order by the customer himself +RestaurantMenu=Menu +CustomerMenu=Customer menu +ScanToMenu=Scan QR code to see the menu +ScanToOrder=Scan QR code to order +Appearance=Appearance +HideCategoryImages=Hide Category Images +HideProductImages=Hide Product Images +NumberOfLinesToShow=Number of lines of images to show +DefineTablePlan=Define tables plan +GiftReceiptButton=Add a "Gift receipt" button +GiftReceipt=Gift receipt +ModuleReceiptPrinterMustBeEnabled=Module Receipt printer must have been enabled first +AllowDelayedPayment=Allow delayed payment +PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts +WeighingScale=Weighing scale +ShowPriceHT = Display the column with the price excluding tax (on screen) +ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt) +CustomerDisplay=Customer display +SplitSale=Split sale +PrintWithoutDetailsButton=Add "Print without details" button +PrintWithoutDetailsLabelDefault=Line label by default on printing without details +PrintWithoutDetails=Print without details +YearNotDefined=Year is not defined +TakeposBarcodeRuleToInsertProduct=Barcode rule to insert product +TakeposBarcodeRuleToInsertProductDesc=Rule to extract the product reference + a quantity from a scanned barcode.
    If empty (default value), application will use the full barcode scanned to find the product.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +AlreadyPrinted=Already printed +HideCategories=Hide categories +HideStockOnLine=Hide stock on line +ShowOnlyProductInStock=Show the products in stock +ShowCategoryDescription=Show category description +ShowProductReference=Show reference of products +UsePriceHT=Use price excl. taxes and not price incl. taxes diff --git a/htdocs/langs/ms_MY/categories.lang b/htdocs/langs/ms_MY/categories.lang new file mode 100644 index 00000000000..62c2752ff9f --- /dev/null +++ b/htdocs/langs/ms_MY/categories.lang @@ -0,0 +1,102 @@ +# Dolibarr language file - Source file is en_US - categories +Rubrique=Tag/Category +Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions +categories=tags/categories +NoCategoryYet=No tag/category of this type has been created +In=In +AddIn=Add in +modify=modify +Classify=Classify +CategoriesArea=Tags/Categories area +ProductsCategoriesArea=Product/Service tags/categories area +SuppliersCategoriesArea=Vendor tags/categories area +CustomersCategoriesArea=Customer tags/categories area +MembersCategoriesArea=Member tags/categories area +ContactsCategoriesArea=Contact tags/categories area +AccountsCategoriesArea=Bank account tags/categories area +ProjectsCategoriesArea=Project tags/categories area +UsersCategoriesArea=User tags/categories area +SubCats=Sub-categories +CatList=List of tags/categories +CatListAll=List of tags/categories (all types) +NewCategory=New tag/category +ModifCat=Modify tag/category +CatCreated=Tag/category created +CreateCat=Create tag/category +CreateThisCat=Create this tag/category +NoSubCat=No subcategory. +SubCatOf=Subcategory +FoundCats=Found tags/categories +ImpossibleAddCat=Impossible to add the tag/category %s +WasAddedSuccessfully=%s was added successfully. +ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category. +ProductIsInCategories=Product/service is linked to following tags/categories +CompanyIsInCustomersCategories=This third party is linked to following customers/prospects tags/categories +CompanyIsInSuppliersCategories=This third party is linked to following vendors tags/categories +MemberIsInCategories=This member is linked to following members tags/categories +ContactIsInCategories=This contact is linked to following contacts tags/categories +ProductHasNoCategory=This product/service is not in any tags/categories +CompanyHasNoCategory=This third party is not in any tags/categories +MemberHasNoCategory=This member is not in any tags/categories +ContactHasNoCategory=This contact is not in any tags/categories +ProjectHasNoCategory=This project is not in any tags/categories +ClassifyInCategory=Add to tag/category +NotCategorized=Without tag/category +CategoryExistsAtSameLevel=This category already exists with this ref +ContentsVisibleByAllShort=Contents visible by all +ContentsNotVisibleByAllShort=Contents not visible by all +DeleteCategory=Delete tag/category +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? +NoCategoriesDefined=No tag/category defined +SuppliersCategoryShort=Vendors tag/category +CustomersCategoryShort=Customers tag/category +ProductsCategoryShort=Products tag/category +MembersCategoryShort=Members tag/category +SuppliersCategoriesShort=Vendors tags/categories +CustomersCategoriesShort=Customers tags/categories +ProspectsCategoriesShort=Prospects tags/categories +CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories +ProductsCategoriesShort=Products tags/categories +MembersCategoriesShort=Members tags/categories +ContactCategoriesShort=Contacts tags/categories +AccountsCategoriesShort=Accounts tags/categories +ProjectsCategoriesShort=Projects tags/categories +UsersCategoriesShort=Users tags/categories +StockCategoriesShort=Warehouse tags/categories +ThisCategoryHasNoItems=This category does not contain any items. +CategId=Tag/category id +ParentCategory=Parent tag/category +ParentCategoryLabel=Label of parent tag/category +CatSupList=List of vendors tags/categories +CatCusList=List of customers/prospects tags/categories +CatProdList=List of products tags/categories +CatMemberList=List of members tags/categories +CatContactList=List of contacts tags/categories +CatProjectsList=List of projects tags/categories +CatUsersList=List of users tags/categories +CatSupLinks=Links between vendors and tags/categories +CatCusLinks=Links between customers/prospects and tags/categories +CatContactsLinks=Links between contacts/addresses and tags/categories +CatProdLinks=Links between products/services and tags/categories +CatMembersLinks=Links between members and tags/categories +CatProjectsLinks=Links between projects and tags/categories +CatUsersLinks=Links between users and tags/categories +DeleteFromCat=Remove from tags/category +ExtraFieldsCategories=Complementary attributes +CategoriesSetup=Tags/categories setup +CategorieRecursiv=Link with parent tag/category automatically +CategorieRecursivHelp=If option is on, when you add a product into a subcategory, product will also be added into the parent category. +AddProductServiceIntoCategory=Add the following product/service +AddCustomerIntoCategory=Assign category to customer +AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to +ShowCategory=Show tag/category +ByDefaultInList=By default in list +ChooseCategory=Choose category +StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories +ActionCommCategoriesArea=Event Categories +WebsitePagesCategoriesArea=Page-Container Categories +KnowledgemanagementsCategoriesArea=KM article Categories +UseOrOperatorForCategories=Use 'OR' operator for categories diff --git a/htdocs/langs/ms_MY/commercial.lang b/htdocs/langs/ms_MY/commercial.lang new file mode 100644 index 00000000000..21d282cd794 --- /dev/null +++ b/htdocs/langs/ms_MY/commercial.lang @@ -0,0 +1,81 @@ +# Dolibarr language file - Source file is en_US - commercial +Commercial=Commerce +CommercialArea=Commerce area +Customer=Customer +Customers=Customers +Prospect=Prospect +Prospects=Prospects +DeleteAction=Delete an event +NewAction=New event +AddAction=Create event +AddAnAction=Create an event +AddActionRendezVous=Create a Rendez-vous event +ConfirmDeleteAction=Are you sure you want to delete this event? +CardAction=Event card +ActionOnCompany=Related company +ActionOnContact=Related contact +TaskRDVWith=Meeting with %s +ShowTask=Show task +ShowAction=Show event +ActionsReport=Events report +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party +SalesRepresentative=Sales representative +SalesRepresentatives=Sales representatives +SalesRepresentativeFollowUp=Sales representative (follow-up) +SalesRepresentativeSignature=Sales representative (signature) +NoSalesRepresentativeAffected=No particular sales representative assigned +ShowCustomer=Show customer +ShowProspect=Show prospect +ListOfProspects=List of prospects +ListOfCustomers=List of customers +LastDoneTasks=Latest %s completed actions +LastActionsToDo=Oldest %s not completed actions +DoneAndToDoActions=Completed and To do events +DoneActions=Completed events +ToDoActions=Incomplete events +SendPropalRef=Submission of commercial proposal %s +SendOrderRef=Submission of order %s +StatusNotApplicable=Not applicable +StatusActionToDo=To do +StatusActionDone=Complete +StatusActionInProcess=In process +TasksHistoryForThisContact=Events for this contact +LastProspectDoNotContact=Do not contact +LastProspectNeverContacted=Never contacted +LastProspectToContact=To contact +LastProspectContactInProcess=Contact in process +LastProspectContactDone=Contact done +ActionAffectedTo=Event assigned to +ActionDoneBy=Event done by +ActionAC_TEL=Phone call +ActionAC_FAX=Send fax +ActionAC_PROP=Send proposal by mail +ActionAC_EMAIL=Send Email +ActionAC_EMAIL_IN=Reception of Email +ActionAC_RDV=Meetings +ActionAC_INT=Intervention on site +ActionAC_FAC=Send customer invoice by mail +ActionAC_REL=Send customer invoice by mail (reminder) +ActionAC_CLO=Close +ActionAC_EMAILING=Send mass email +ActionAC_COM=Send sales order by mail +ActionAC_SHIP=Send shipping by mail +ActionAC_SUP_ORD=Send purchase order by mail +ActionAC_SUP_INV=Send vendor invoice by mail +ActionAC_OTH=Other +ActionAC_OTH_AUTO=Other auto +ActionAC_MANUAL=Manually inserted events +ActionAC_AUTO=Automatically inserted events +ActionAC_OTH_AUTOShort=Other +ActionAC_EVENTORGANIZATION=Event organization events +Stats=Sales statistics +StatusProsp=Prospect status +DraftPropals=Draft commercial proposals +NoLimit=No limit +ToOfferALinkForOnlineSignature=Link for online signature +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s +ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse +SignatureProposalRef=Signature of quote/commercial proposal %s +FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled diff --git a/htdocs/langs/ms_MY/companies.lang b/htdocs/langs/ms_MY/companies.lang new file mode 100644 index 00000000000..99b9b7b8586 --- /dev/null +++ b/htdocs/langs/ms_MY/companies.lang @@ -0,0 +1,500 @@ +# Dolibarr language file - Source file is en_US - companies +ErrorCompanyNameAlreadyExists=Company name %s already exists. Choose another one. +ErrorSetACountryFirst=Set the country first +SelectThirdParty=Select a third party +ConfirmDeleteCompany=Are you sure you want to delete this company and all related information? +DeleteContact=Delete a contact/address +ConfirmDeleteContact=Are you sure you want to delete this contact and all related information? +MenuNewThirdParty=New Third Party +MenuNewCustomer=New Customer +MenuNewProspect=New Prospect +MenuNewSupplier=New Vendor +MenuNewPrivateIndividual=New private individual +NewCompany=New company (prospect, customer, vendor) +NewThirdParty=New Third Party (prospect, customer, vendor) +CreateDolibarrThirdPartySupplier=Create a third party (vendor) +CreateThirdPartyOnly=Create third party +CreateThirdPartyAndContact=Create a third party + a child contact +ProspectionArea=Prospection area +IdThirdParty=Id third party +IdCompany=Company Id +IdContact=Contact Id +ThirdPartyAddress=Third-party address +ThirdPartyContacts=Third-party contacts +ThirdPartyContact=Third-party contact/address +Company=Company +CompanyName=Company name +AliasNames=Alias name (commercial, trademark, ...) +AliasNameShort=Alias Name +Companies=Companies +CountryIsInEEC=Country is inside the European Economic Community +PriceFormatInCurrentLanguage=Price display format in the current language and currency +ThirdPartyName=Third-party name +ThirdPartyEmail=Third-party email +ThirdParty=Third-party +ThirdParties=Third-parties +ThirdPartyProspects=Prospects +ThirdPartyProspectsStats=Prospects +ThirdPartyCustomers=Customers +ThirdPartyCustomersStats=Customers +ThirdPartyCustomersWithIdProf12=Customers with %s or %s +ThirdPartySuppliers=Vendors +ThirdPartyType=Third-party type +Individual=Private individual +ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough. +ParentCompany=Parent company +Subsidiaries=Subsidiaries +ReportByMonth=Report per month +ReportByCustomers=Report per customer +ReportByThirdparties=Report per thirdparty +ReportByQuarter=Report per rate +CivilityCode=Civility code +RegisteredOffice=Registered office +Lastname=Last name +Firstname=First name +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number +PostOrFunction=Job position +UserTitle=Title +NatureOfThirdParty=Nature of Third party +NatureOfContact=Nature of Contact +Address=Address +State=State/Province +StateId=State ID +StateCode=State/Province code +StateShort=State +Region=Region +Region-State=Region - State +Country=Country +CountryCode=Country code +CountryId=Country ID +Phone=Phone +PhoneShort=Phone +Skype=Skype +Call=Call +Chat=Chat +PhonePro=Bus. phone +PhonePerso=Pers. phone +PhoneMobile=Mobile +No_Email=Refuse bulk emailings +Fax=Fax +Zip=Zip Code +Town=City +Web=Web +Poste= Position +DefaultLang=Default language +VATIsUsed=Sales tax used +VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers +VATIsNotUsed=Sales tax is not used +CopyAddressFromSoc=Copy address from third-party details +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor vendor, discounts are not available +PaymentBankAccount=Payment bank account +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests +##### Local Taxes ##### +LocalTax1IsUsed=Use second tax +LocalTax1IsUsedES= RE is used +LocalTax1IsNotUsedES= RE is not used +LocalTax2IsUsed=Use third tax +LocalTax2IsUsedES= IRPF is used +LocalTax2IsNotUsedES= IRPF is not used +WrongCustomerCode=Customer code invalid +WrongSupplierCode=Vendor code invalid +CustomerCodeModel=Customer code model +SupplierCodeModel=Vendor code model +Gencod=Barcode +GencodBuyPrice=Barcode of price ref +##### Professional ID ##### +ProfId1Short=Prof. id 1 +ProfId2Short=Prof. id 2 +ProfId3Short=Prof. id 3 +ProfId4Short=Prof. id 4 +ProfId5Short=Prof. id 5 +ProfId6Short=Prof. id 6 +ProfId1=Professional ID 1 +ProfId2=Professional ID 2 +ProfId3=Professional ID 3 +ProfId4=Professional ID 4 +ProfId5=Professional ID 5 +ProfId6=Professional ID 6 +ProfId1AR=Prof Id 1 (CUIT/CUIL) +ProfId2AR=Prof Id 2 (Revenu brutes) +ProfId3AR=- +ProfId4AR=- +ProfId5AR=- +ProfId6AR=- +ProfId1AT=Prof Id 1 (USt.-IdNr) +ProfId2AT=Prof Id 2 (USt.-Nr) +ProfId3AT=Prof Id 3 (Handelsregister-Nr.) +ProfId4AT=- +ProfId5AT=EORI number +ProfId6AT=- +ProfId1AU=Prof Id 1 (ABN) +ProfId2AU=- +ProfId3AU=- +ProfId4AU=- +ProfId5AU=- +ProfId6AU=- +ProfId1BE=Prof Id 1 (Professional number) +ProfId2BE=- +ProfId3BE=- +ProfId4BE=- +ProfId5BE=EORI number +ProfId6BE=- +ProfId1BR=- +ProfId2BR=IE (Inscricao Estadual) +ProfId3BR=IM (Inscricao Municipal) +ProfId4BR=CPF +#ProfId5BR=CNAE +#ProfId6BR=INSS +ProfId1CH=UID-Nummer +ProfId2CH=- +ProfId3CH=Prof Id 1 (Federal number) +ProfId4CH=Prof Id 2 (Commercial Record number) +ProfId5CH=EORI number +ProfId6CH=- +ProfId1CL=Prof Id 1 (R.U.T.) +ProfId2CL=- +ProfId3CL=- +ProfId4CL=- +ProfId5CL=- +ProfId6CL=- +ProfId1CM=Id. prof. 1 (Trade Register) +ProfId2CM=Id. prof. 2 (Taxpayer No.) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) +ProfId5CM=Id. prof. 5 (Others) +ProfId6CM=- +ProfId1ShortCM=Trade Register +ProfId2ShortCM=Taxpayer No. +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others +ProfId6ShortCM=- +ProfId1CO=Prof Id 1 (R.U.T.) +ProfId2CO=- +ProfId3CO=- +ProfId4CO=- +ProfId5CO=- +ProfId6CO=- +ProfId1DE=Prof Id 1 (USt.-IdNr) +ProfId2DE=Prof Id 2 (USt.-Nr) +ProfId3DE=Prof Id 3 (Handelsregister-Nr.) +ProfId4DE=- +ProfId5DE=EORI number +ProfId6DE=- +ProfId1ES=Prof Id 1 (CIF/NIF) +ProfId2ES=Prof Id 2 (Social security number) +ProfId3ES=Prof Id 3 (CNAE) +ProfId4ES=Prof Id 4 (Collegiate number) +ProfId5ES=Prof Id 5 (EORI number) +ProfId6ES=- +ProfId1FR=Prof Id 1 (SIREN) +ProfId2FR=Prof Id 2 (SIRET) +ProfId3FR=Prof Id 3 (NAF, old APE) +ProfId4FR=Prof Id 4 (RCS/RM) +ProfId5FR=Prof Id 5 (numéro EORI) +ProfId6FR=- +ProfId1ShortFR=SIREN +ProfId2ShortFR=SIRET +ProfId3ShortFR=NAF +ProfId4ShortFR=RCS +ProfId5ShortFR=EORI +ProfId6ShortFR=- +ProfId1GB=Registration Number +ProfId2GB=- +ProfId3GB=SIC +ProfId4GB=- +ProfId5GB=- +ProfId6GB=- +ProfId1HN=Id prof. 1 (RTN) +ProfId2HN=- +ProfId3HN=- +ProfId4HN=- +ProfId5HN=- +ProfId6HN=- +ProfId1IN=Prof Id 1 (TIN) +ProfId2IN=Prof Id 2 (PAN) +ProfId3IN=Prof Id 3 (SRVC TAX) +ProfId4IN=Prof Id 4 +ProfId5IN=Prof Id 5 +ProfId6IN=- +ProfId1IT=- +ProfId2IT=- +ProfId3IT=- +ProfId4IT=- +ProfId5IT=EORI number +ProfId6IT=- +ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) +ProfId2LU=Id. prof. 2 (Business permit) +ProfId3LU=- +ProfId4LU=- +ProfId5LU=EORI number +ProfId6LU=- +ProfId1MA=Id prof. 1 (R.C.) +ProfId2MA=Id prof. 2 (Patente) +ProfId3MA=Id prof. 3 (I.F.) +ProfId4MA=Id prof. 4 (C.N.S.S.) +ProfId5MA=Id prof. 5 (I.C.E.) +ProfId6MA=- +ProfId1MX=Prof Id 1 (R.F.C). +ProfId2MX=Prof Id 2 (R..P. IMSS) +ProfId3MX=Prof Id 3 (Profesional Charter) +ProfId4MX=- +ProfId5MX=- +ProfId6MX=- +ProfId1NL=KVK nummer +ProfId2NL=- +ProfId3NL=- +ProfId4NL=Burgerservicenummer (BSN) +ProfId5NL=EORI number +ProfId6NL=- +ProfId1PT=Prof Id 1 (NIPC) +ProfId2PT=Prof Id 2 (Social security number) +ProfId3PT=Prof Id 3 (Commercial Record number) +ProfId4PT=Prof Id 4 (Conservatory) +ProfId5PT=Prof Id 5 (EORI number) +ProfId6PT=- +ProfId1SN=RC +ProfId2SN=NINEA +ProfId3SN=- +ProfId4SN=- +ProfId5SN=- +ProfId6SN=- +ProfId1TN=Prof Id 1 (RC) +ProfId2TN=Prof Id 2 (Fiscal matricule) +ProfId3TN=Prof Id 3 (Douane code) +ProfId4TN=Prof Id 4 (BAN) +ProfId5TN=- +ProfId6TN=- +ProfId1US=Prof Id (FEIN) +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- +ProfId1RO=Prof Id 1 (CUI) +ProfId2RO=Prof Id 2 (Nr. Înmatriculare) +ProfId3RO=Prof Id 3 (CAEN) +ProfId4RO=Prof Id 5 (EUID) +ProfId5RO=Prof Id 5 (EORI number) +ProfId6RO=- +ProfId1RU=Prof Id 1 (OGRN) +ProfId2RU=Prof Id 2 (INN) +ProfId3RU=Prof Id 3 (KPP) +ProfId4RU=Prof Id 4 (OKPO) +ProfId5RU=- +ProfId6RU=- +ProfId1UA=Prof Id 1 (EDRPOU) +ProfId2UA=Prof Id 2 (DRFO) +ProfId3UA=Prof Id 3 (INN) +ProfId4UA=Prof Id 4 (Certificate) +ProfId5UA=Prof Id 5 (RNOKPP) +ProfId6UA=Prof Id 6 (TRDPAU) +ProfId1DZ=RC +ProfId2DZ=Art. +ProfId3DZ=NIF +ProfId4DZ=NIS +VATIntra=VAT ID +VATIntraShort=VAT ID +VATIntraSyntaxIsValid=Syntax is valid +VATReturn=VAT return +ProspectCustomer=Prospect / Customer +Prospect=Prospect +CustomerCard=Customer Card +Customer=Customer +CustomerRelativeDiscount=Relative customer discount +SupplierRelativeDiscount=Relative vendor discount +CustomerRelativeDiscountShort=Relative discount +CustomerAbsoluteDiscountShort=Absolute discount +CompanyHasRelativeDiscount=This customer has a default discount of %s%% +CompanyHasNoRelativeDiscount=This customer has no relative discount by default +HasRelativeDiscountFromSupplier=You have a default discount of %s%% from this vendor +HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for %s %s +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s +CompanyHasCreditNote=This customer still has credit notes for %s %s +HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this vendor +HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for %s %s from this vendor +HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for %s %s from this vendor +HasCreditNoteFromSupplier=You have credit notes for %s %s from this vendor +CompanyHasNoAbsoluteDiscount=This customer has no discount credit available +CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users) +CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself) +SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users) +SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) +DiscountNone=None +Vendor=Vendor +Supplier=Vendor +AddContact=Create contact +AddContactAddress=Create contact/address +EditContact=Edit contact +EditContactAddress=Edit contact/address +Contact=Contact/Address +Contacts=Contacts/Addresses +ContactId=Contact id +ContactsAddresses=Contacts/Addresses +FromContactName=Name: +NoContactDefinedForThirdParty=No contact defined for this third party +NoContactDefined=No contact defined +DefaultContact=Default contact/address +ContactByDefaultFor=Default contact/address for +AddThirdParty=Create third party +DeleteACompany=Delete a company +PersonalInformations=Personal data +AccountancyCode=Accounting account +CustomerCode=Customer Code +SupplierCode=Vendor Code +CustomerCodeShort=Customer Code +SupplierCodeShort=Vendor Code +CustomerCodeDesc=Customer Code, unique for all customers +SupplierCodeDesc=Vendor Code, unique for all vendors +RequiredIfCustomer=Required if third party is a customer or prospect +RequiredIfSupplier=Required if third party is a vendor +ValidityControledByModule=Validity controlled by the module +ThisIsModuleRules=Rules for this module +ProspectToContact=Prospect to contact +CompanyDeleted=Company "%s" deleted from database. +ListOfContacts=List of contacts/addresses +ListOfContactsAddresses=List of contacts/addresses +ListOfThirdParties=List of Third Parties +ShowCompany=Third Party +ShowContact=Contact-Address +ContactsAllShort=All (No filter) +ContactType=Contact role +ContactForOrders=Order's contact +ContactForOrdersOrShipments=Order's or shipment's contact +ContactForProposals=Proposal's contact +ContactForContracts=Contract's contact +ContactForInvoices=Invoice's contact +NoContactForAnyOrder=This contact is not a contact for any order +NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment +NoContactForAnyProposal=This contact is not a contact for any commercial proposal +NoContactForAnyContract=This contact is not a contact for any contract +NoContactForAnyInvoice=This contact is not a contact for any invoice +NewContact=New contact +NewContactAddress=New Contact/Address +MyContacts=My contacts +Capital=Capital +CapitalOf=Capital of %s +EditCompany=Edit company +ThisUserIsNot=This user is not a prospect, customer or vendor +VATIntraCheck=Check +VATIntraCheckDesc=The VAT ID must include the country prefix. The link %s uses the European VAT checker service (VIES) which requires internet access from the Dolibarr server. +VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do +VATIntraCheckableOnEUSite=Check the intra-Community VAT ID on the European Commission website +VATIntraManualCheck=You can also check manually on the European Commission website %s +ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s). +NorProspectNorCustomer=Not prospect, nor customer +JuridicalStatus=Business entity type +Workforce=Workforce +Staff=Employees +ProspectLevelShort=Potential +ProspectLevel=Prospect potential +ContactPrivate=Private +ContactPublic=Shared +ContactVisibility=Visibility +ContactOthers=Other +OthersNotLinkedToThirdParty=Others, not linked to a third party +ProspectStatus=Prospect status +PL_NONE=None +PL_UNKNOWN=Unknown +PL_LOW=Low +PL_MEDIUM=Medium +PL_HIGH=High +TE_UNKNOWN=- +TE_STARTUP=Startup +TE_GROUP=Large company +TE_MEDIUM=Medium company +TE_ADMIN=Governmental +TE_SMALL=Small company +TE_RETAIL=Retailer +TE_WHOLE=Wholesaler +TE_PRIVATE=Private individual +TE_OTHER=Other +StatusProspect-1=Do not contact +StatusProspect0=Never contacted +StatusProspect1=To be contacted +StatusProspect2=Contact in process +StatusProspect3=Contact done +ChangeDoNotContact=Change status to 'Do not contact' +ChangeNeverContacted=Change status to 'Never contacted' +ChangeToContact=Change status to 'To be contacted' +ChangeContactInProcess=Change status to 'Contact in process' +ChangeContactDone=Change status to 'Contact done' +ProspectsByStatus=Prospects by status +NoParentCompany=None +ExportCardToFormat=Export card to format +ContactNotLinkedToCompany=Contact not linked to any third party +DolibarrLogin=Dolibarr login +NoDolibarrAccess=No Dolibarr access +ExportDataset_company_1=Third-parties (companies/foundations/physical people) and their properties +ExportDataset_company_2=Contacts and their properties +ImportDataset_company_1=Third-parties and their properties +ImportDataset_company_2=Third-parties additional contacts/addresses and attributes +ImportDataset_company_3=Third-parties Bank accounts +ImportDataset_company_4=Third-parties Sales representatives (assign sales representatives/users to companies) +PriceLevel=Price Level +PriceLevelLabels=Price Level Labels +DeliveryAddress=Delivery address +AddAddress=Add address +SupplierCategory=Vendor category +JuridicalStatus200=Independent +DeleteFile=Delete file +ConfirmDeleteFile=Are you sure you want to delete this file? +AllocateCommercial=Assigned to sales representative +Organization=Organization +FiscalYearInformation=Fiscal Year +FiscalMonthStart=Starting month of the fiscal year +SocialNetworksInformation=Social networks +SocialNetworksFacebookURL=Facebook URL +SocialNetworksTwitterURL=Twitter URL +SocialNetworksLinkedinURL=Linkedin URL +SocialNetworksInstagramURL=Instagram URL +SocialNetworksYoutubeURL=Youtube URL +SocialNetworksGithubURL=Github URL +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification. +YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party +ListSuppliersShort=List of Vendors +ListProspectsShort=List of Prospects +ListCustomersShort=List of Customers +ThirdPartiesArea=Third Parties/Contacts +LastModifiedThirdParties=Latest %s Third Parties which were modified +UniqueThirdParties=Total number of Third Parties +InActivity=Open +ActivityCeased=Closed +ThirdPartyIsClosed=Third party is closed +ProductsIntoElements=List of products/services mapped to %s +CurrentOutstandingBill=Current outstanding bill +OutstandingBill=Max. for outstanding bill +OutstandingBillReached=Max. for outstanding bill reached +OrderMinAmount=Minimum amount for order +MonkeyNumRefModelDesc=Return a number in the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0. +LeopardNumRefModelDesc=The code is free. This code can be modified at any time. +ManagingDirectors=Manager(s) name (CEO, director, president...) +MergeOriginThirdparty=Duplicate third party (third party you want to delete) +MergeThirdparties=Merge third parties +ConfirmMergeThirdparties=Are you sure you want to merge the chosen third party with the current one? All linked objects (invoices, orders, ...) will be moved to the current third party, after which the chosen third party will be deleted. +ThirdpartiesMergeSuccess=Third parties have been merged +SaleRepresentativeLogin=Login of sales representative +SaleRepresentativeFirstname=First name of sales representative +SaleRepresentativeLastname=Last name of sales representative +ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted. +NewCustomerSupplierCodeProposed=Customer or Vendor code already used, a new code is suggested +KeepEmptyIfGenericAddress=Keep this field empty if this address is a generic address +#Imports +PaymentTypeCustomer=Payment Type - Customer +PaymentTermsCustomer=Payment Terms - Customer +PaymentTypeSupplier=Payment Type - Vendor +PaymentTermsSupplier=Payment Term - Vendor +PaymentTypeBoth=Payment Type - Customer and Vendor +MulticurrencyUsed=Use Multicurrency +MulticurrencyCurrency=Currency +InEEC=Europe (EEC) +RestOfEurope=Rest of Europe (EEC) +OutOfEurope=Out of Europe (EEC) +CurrentOutstandingBillLate=Current outstanding bill late +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Be carefull, depending on your product price settings, you should change thirdparty before adding product to POS. diff --git a/htdocs/langs/ms_MY/compta.lang b/htdocs/langs/ms_MY/compta.lang new file mode 100644 index 00000000000..be76a3689eb --- /dev/null +++ b/htdocs/langs/ms_MY/compta.lang @@ -0,0 +1,303 @@ +# Dolibarr language file - Source file is en_US - compta +MenuFinancial=Billing | Payment +TaxModuleSetupToModifyRules=Go to Taxes module setup to modify rules for calculation +TaxModuleSetupToModifyRulesLT=Go to Company setup to modify rules for calculation +OptionMode=Option for accountancy +OptionModeTrue=Option Incomes-Expenses +OptionModeVirtual=Option Claims-Debts +OptionModeTrueDesc=In this context, the turnover is calculated over payments (date of payments). The validity of the figures is assured only if the book-keeping is scrutinized through the input/output on the accounts via invoices. +OptionModeVirtualDesc=In this context, the turnover is calculated over invoices (date of validation). When these invoices are due, whether they have been paid or not, they are listed in the turnover output. +FeatureIsSupportedInInOutModeOnly=Feature only available in CREDITS-DEBTS accountancy mode (See Accountancy module configuration) +VATReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Tax module setup. +LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Company setup. +Param=Setup +RemainingAmountPayment=Amount payment remaining: +Account=Account +Accountparent=Parent account +Accountsparent=Parent accounts +Income=Income +Outcome=Expense +MenuReportInOut=Income / Expense +ReportInOut=Balance of income and expenses +ReportTurnover=Turnover invoiced +ReportTurnoverCollected=Turnover collected +PaymentsNotLinkedToInvoice=Payments not linked to any invoice, so not linked to any third party +PaymentsNotLinkedToUser=Payments not linked to any user +Profit=Profit +AccountingResult=Accounting result +BalanceBefore=Balance (before) +Balance=Balance +Debit=Debit +Credit=Credit +Piece=Accounting Doc. +AmountHTVATRealReceived=Net collected +AmountHTVATRealPaid=Net paid +VATToPay=Tax sales +VATReceived=Tax received +VATToCollect=Tax purchases +VATSummary=Tax monthly +VATBalance=Tax Balance +VATPaid=Tax paid +LT1Summary=Tax 2 summary +LT2Summary=Tax 3 summary +LT1SummaryES=RE Balance +LT2SummaryES=IRPF Balance +LT1SummaryIN=CGST Balance +LT2SummaryIN=SGST Balance +LT1Paid=Tax 2 paid +LT2Paid=Tax 3 paid +LT1PaidES=RE Paid +LT2PaidES=IRPF Paid +LT1PaidIN=CGST Paid +LT2PaidIN=SGST Paid +LT1Customer=Tax 2 sales +LT1Supplier=Tax 2 purchases +LT1CustomerES=RE sales +LT1SupplierES=RE purchases +LT1CustomerIN=CGST sales +LT1SupplierIN=CGST purchases +LT2Customer=Tax 3 sales +LT2Supplier=Tax 3 purchases +LT2CustomerES=IRPF sales +LT2SupplierES=IRPF purchases +LT2CustomerIN=SGST sales +LT2SupplierIN=SGST purchases +VATCollected=VAT collected +StatusToPay=To pay +SpecialExpensesArea=Area for all special payments +VATExpensesArea=Area for all TVA payments +SocialContribution=Social or fiscal tax +SocialContributions=Social or fiscal taxes +SocialContributionsDeductibles=Deductible social or fiscal taxes +SocialContributionsNondeductibles=Nondeductible social or fiscal taxes +DateOfSocialContribution=Date of social or fiscal tax +LabelContrib=Label contribution +TypeContrib=Type contribution +MenuSpecialExpenses=Special expenses +MenuTaxAndDividends=Taxes and dividends +MenuSocialContributions=Social/fiscal taxes +MenuNewSocialContribution=New social/fiscal tax +NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax +ContributionsToPay=Social/fiscal taxes to pay +AccountancyTreasuryArea=Billing and payment area +NewPayment=New payment +PaymentCustomerInvoice=Customer invoice payment +PaymentSupplierInvoice=vendor invoice payment +PaymentSocialContribution=Social/fiscal tax payment +PaymentVat=VAT payment +AutomaticCreationPayment=Automatically record the payment +ListPayment=List of payments +ListOfCustomerPayments=List of customer payments +ListOfSupplierPayments=List of vendor payments +DateStartPeriod=Date start period +DateEndPeriod=Date end period +newLT1Payment=New tax 2 payment +newLT2Payment=New tax 3 payment +LT1Payment=Tax 2 payment +LT1Payments=Tax 2 payments +LT2Payment=Tax 3 payment +LT2Payments=Tax 3 payments +newLT1PaymentES=New RE payment +newLT2PaymentES=New IRPF payment +LT1PaymentES=RE Payment +LT1PaymentsES=RE Payments +LT2PaymentES=IRPF Payment +LT2PaymentsES=IRPF Payments +VATPayment=Sales tax payment +VATPayments=Sales tax payments +VATDeclarations=VAT declarations +VATDeclaration=VAT declaration +VATRefund=Sales tax refund +NewVATPayment=New sales tax payment +NewLocalTaxPayment=New tax %s payment +Refund=Refund +SocialContributionsPayments=Social/fiscal taxes payments +ShowVatPayment=Show VAT payment +TotalToPay=Total to pay +BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted on %s and filtered on 1 bank account (with no other filters) +CustomerAccountancyCode=Customer accounting code +SupplierAccountancyCode=Vendor accounting code +CustomerAccountancyCodeShort=Cust. account. code +SupplierAccountancyCodeShort=Sup. account. code +AccountNumber=Account number +NewAccountingAccount=New account +Turnover=Turnover invoiced +TurnoverCollected=Turnover collected +SalesTurnoverMinimum=Minimum turnover +ByExpenseIncome=By expenses & incomes +ByThirdParties=By third parties +ByUserAuthorOfInvoice=By invoice author +CheckReceipt=Check deposit +CheckReceiptShort=Check deposit +LastCheckReceiptShort=Latest %s check receipts +NewCheckReceipt=New discount +NewCheckDeposit=New check deposit +NewCheckDepositOn=Create receipt for deposit on account: %s +NoWaitingChecks=No checks awaiting deposit. +DateChequeReceived=Check receiving date +NbOfCheques=No. of checks +PaySocialContribution=Pay a social/fiscal tax +PayVAT=Pay a VAT declaration +PaySalary=Pay a salary card +ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid ? +ConfirmPayVAT=Are you sure you want to classify this VAT declaration as paid ? +ConfirmPaySalary=Are you sure you want to classify this salary card as paid? +DeleteSocialContribution=Delete a social or fiscal tax payment +DeleteVAT=Delete a VAT declaration +DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment +ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? +ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? +ExportDataset_tax_1=Social and fiscal taxes and payments +CalcModeVATDebt=Mode %sVAT on commitment accounting%s. +CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. +CalcModeDebt=Analysis of known recorded documents even if they are not yet accounted in ledger. +CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger. +CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table. +CalcModeLT1= Mode %sRE on customer invoices - suppliers invoices%s +CalcModeLT1Debt=Mode %sRE on customer invoices%s +CalcModeLT1Rec= Mode %sRE on suppliers invoices%s +CalcModeLT2= Mode %sIRPF on customer invoices - suppliers invoices%s +CalcModeLT2Debt=Mode %sIRPF on customer invoices%s +CalcModeLT2Rec= Mode %sIRPF on suppliers invoices%s +AnnualSummaryDueDebtMode=Balance of income and expenses, annual summary +AnnualSummaryInputOutputMode=Balance of income and expenses, annual summary +AnnualByCompanies=Balance of income and expenses, by predefined groups of account +AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode %sClaims-Debts%s said Commitment accounting. +AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode %sIncomes-Expenses%s said cash accounting. +SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation based on recorded payments made even if they are not yet accounted in Ledger +SeeReportInDueDebtMode=See %sanalysis of recorded documents%s for a calculation based on known recorded documents even if they are not yet accounted in Ledger +SeeReportInBookkeepingMode=See %sanalysis of bookeeping ledger table%s for a report based on Bookkeeping Ledger table +RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included +RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded +RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. +RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. +RulesCADue=- It includes the customer's due invoices whether they are paid or not.
    - It is based on the billing date of these invoices.
    +RulesCAIn=- It includes all the effective payments of invoices received from customers.
    - It is based on the payment date of these invoices
    +RulesCATotalSaleJournal=It includes all credit lines from the Sale journal. +RulesSalesTurnoverOfIncomeAccounts=It includes (credit - debit) of lines for product accounts in group INCOME +RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" +RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" +RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts grouped by personalized groups +SeePageForSetup=See menu %s for setup +DepositsAreNotIncluded=- Down payment invoices are not included +DepositsAreIncluded=- Down payment invoices are included +LT1ReportByMonth=Tax 2 report by month +LT2ReportByMonth=Tax 3 report by month +LT1ReportByCustomers=Report tax 2 by third party +LT2ReportByCustomers=Report tax 3 by third party +LT1ReportByCustomersES=Report by third party RE +LT2ReportByCustomersES=Report by third party IRPF +VATReport=Sales tax report +VATReportByPeriods=Sales tax report by period +VATReportByMonth=Sales tax report by month +VATReportByRates=Sales tax report by rate +VATReportByThirdParties=Sales tax report by third party +VATReportByCustomers=Sales tax report by customer +VATReportByCustomersInInputOutputMode=Report by the customer VAT collected and paid +VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid +VATReportShowByRateDetails=Show details of this rate +LT1ReportByQuarters=Report tax 2 by rate +LT2ReportByQuarters=Report tax 3 by rate +LT1ReportByQuartersES=Report by RE rate +LT2ReportByQuartersES=Report by IRPF rate +SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation +SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing +RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. +RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. +RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. +RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. +OptionVatInfoModuleComptabilite=Note: For material assets, it should use the date of delivery to be more fair. +ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values +PercentOfInvoice=%%/invoice +NotUsedForGoods=Not used on goods +ProposalStats=Statistics on proposals +OrderStats=Statistics on orders +InvoiceStats=Statistics on bills +Dispatch=Dispatching +Dispatched=Dispatched +ToDispatch=To dispatch +ThirdPartyMustBeEditAsCustomer=Third party must be defined as a customer +SellsJournal=Sales Journal +PurchasesJournal=Purchases Journal +DescSellsJournal=Sales Journal +DescPurchasesJournal=Purchases Journal +CodeNotDef=Not defined +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. +DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. +Pcg_version=Chart of accounts models +Pcg_type=Pcg type +Pcg_subtype=Pcg subtype +InvoiceLinesToDispatch=Invoice lines to dispatch +ByProductsAndServices=By product and service +RefExt=External ref +ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". +LinkedOrder=Link to order +Mode1=Method 1 +Mode2=Method 2 +CalculationRuleDesc=To calculate total VAT, there is two methods:
    Method 1 is rounding vat on each line, then summing them.
    Method 2 is summing all vat on each line, then rounding result.
    Final result may differs from few cents. Default mode is mode %s. +CalculationRuleDescSupplier=According to vendor, choose appropriate method to apply same calculation rule and get same result expected by your vendor. +TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. +CalculationMode=Calculation mode +AccountancyJournal=Accounting code journal +ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. +ConfirmCloneTax=Confirm the clone of a social/fiscal tax +ConfirmCloneVAT=Confirm the clone of a VAT declaration +ConfirmCloneSalary=Confirm the clone of a salary +CloneTaxForNextMonth=Clone it for next month +SimpleReport=Simple report +AddExtraReport=Extra reports (add foreign and national customer report) +OtherCountriesCustomersReport=Foreign customers report +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code +SameCountryCustomersWithVAT=National customers report +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code +LinkedFichinter=Link to an intervention +ImportDataset_tax_contrib=Social/fiscal taxes +ImportDataset_tax_vat=Vat payments +ErrorBankAccountNotFound=Error: Bank account not found +FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project +DeleteFromCat=Remove from accounting group +AccountingAffectation=Accounting assignment +LastDayTaxIsRelatedTo=Last day of period the tax is related to +VATDue=Sale tax claimed +ClaimedForThisPeriod=Claimed for the period +PaidDuringThisPeriod=Paid for this period +PaidDuringThisPeriodDesc=This is the sum of all payments linked to VAT declarations which have an end-of-period date in the selected date range +ByVatRate=By sale tax rate +TurnoverbyVatrate=Turnover invoiced by sale tax rate +TurnoverCollectedbyVatrate=Turnover collected by sale tax rate +PurchasebyVatrate=Purchase by sale tax rate +LabelToShow=Short label +PurchaseTurnover=Purchase turnover +PurchaseTurnoverCollected=Purchase turnover collected +RulesPurchaseTurnoverDue=- It includes the supplier's due invoices whether they are paid or not.
    - It is based on the invoice date of these invoices.
    +RulesPurchaseTurnoverIn=- It includes all the effective payments of invoices done to suppliers.
    - It is based on the payment date of these invoices
    +RulesPurchaseTurnoverTotalPurchaseJournal=It includes all debit lines from the purchase journal. +RulesPurchaseTurnoverOfExpenseAccounts=It includes (debit - credit) of lines for product accounts in group EXPENSE +ReportPurchaseTurnover=Purchase turnover invoiced +ReportPurchaseTurnoverCollected=Purchase turnover collected +IncludeVarpaysInResults = Include various payments in reports +IncludeLoansInResults = Include loans in reports +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) +InvoiceNotLate = To be collected (< 15 days) +InvoiceNotLate15Days = To be collected (15 to 30 days) +InvoiceNotLate30Days = To be collected (> 30 days) +InvoiceToPay=To pay (< 15 days) +InvoiceToPay15Days=To pay (15 to 30 days) +InvoiceToPay30Days=To pay (> 30 days) +ConfirmPreselectAccount=Preselect accountancy code +ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/ms_MY/contracts.lang b/htdocs/langs/ms_MY/contracts.lang new file mode 100644 index 00000000000..8d209623c1b --- /dev/null +++ b/htdocs/langs/ms_MY/contracts.lang @@ -0,0 +1,107 @@ +# Dolibarr language file - Source file is en_US - contracts +ContractsArea=Contracts area +ListOfContracts=List of contracts +AllContracts=All contracts +ContractCard=Contract card +ContractStatusNotRunning=Not running +ContractStatusDraft=Draft +ContractStatusValidated=Validated +ContractStatusClosed=Closed +ServiceStatusInitial=Not running +ServiceStatusRunning=Running +ServiceStatusNotLate=Running, not expired +ServiceStatusNotLateShort=Not expired +ServiceStatusLate=Running, expired +ServiceStatusLateShort=Expired +ServiceStatusClosed=Closed +ShowContractOfService=Show contract of service +Contracts=Contracts +ContractsSubscriptions=Contracts/Subscriptions +ContractsAndLine=Contracts and line of contracts +Contract=Contract +ContractLine=Contract line +ContractLines=Contract lines +Closing=Closing +NoContracts=No contracts +MenuServices=Services +MenuInactiveServices=Services not active +MenuRunningServices=Running services +MenuExpiredServices=Expired services +MenuClosedServices=Closed services +NewContract=New contract +NewContractSubscription=New contract or subscription +AddContract=Create contract +DeleteAContract=Delete a contract +ActivateAllOnContract=Activate all services +CloseAContract=Close a contract +ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? +ConfirmValidateContract=Are you sure you want to validate this contract under name %s? +ConfirmActivateAllOnContract=This will open all services (not yet active). Are you sure you want to open all services? +ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? +ConfirmCloseService=Are you sure you want to close this service with date %s? +ValidateAContract=Validate a contract +ActivateService=Activate service +ConfirmActivateService=Are you sure you want to activate this service with date %s? +RefContract=Contract reference +DateContract=Contract date +DateServiceActivate=Service activation date +ListOfServices=List of services +ListOfInactiveServices=List of not active services +ListOfExpiredServices=List of expired active services +ListOfClosedServices=List of closed services +ListOfRunningServices=List of running services +NotActivatedServices=Inactive services (among validated contracts) +BoardNotActivatedServices=Services to activate among validated contracts +BoardNotActivatedServicesShort=Services to activate +LastContracts=Latest %s contracts +LastModifiedServices=Latest %s modified services +ContractStartDate=Start date +ContractEndDate=End date +DateStartPlanned=Planned start date +DateStartPlannedShort=Planned start date +DateEndPlanned=Planned end date +DateEndPlannedShort=Planned end date +DateStartReal=Real start date +DateStartRealShort=Real start date +DateEndReal=Real end date +DateEndRealShort=Real end date +CloseService=Close service +BoardRunningServices=Services running +BoardRunningServicesShort=Services running +BoardExpiredServices=Services expired +BoardExpiredServicesShort=Services expired +ServiceStatus=Status of service +DraftContracts=Drafts contracts +CloseRefusedBecauseOneServiceActive=Contract can't be closed as there is at least one open service on it +ActivateAllContracts=Activate all contract lines +CloseAllContracts=Close all contract lines +DeleteContractLine=Delete a contract line +ConfirmDeleteContractLine=Are you sure you want to delete this contract line? +MoveToAnotherContract=Move service into another contract. +ConfirmMoveToAnotherContract=I choosed new target contract and confirm I want to move this service into this contract. +ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? +PaymentRenewContractId=Renew contract line (number %s) +ExpiredSince=Expiration date +NoExpiredServices=No expired active services +ListOfServicesToExpireWithDuration=List of Services to expire in %s days +ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days +ListOfServicesToExpire=List of Services to expire +NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative. +StandardContractsTemplate=Standard contracts template +ContactNameAndSignature=For %s, name and signature: +OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +ConfirmCloneContract=Are you sure you want to clone the contract %s? +LowerDateEndPlannedShort=Lower planned end date of active services +SendContractRef=Contract information __REF__ +OtherContracts=Other contracts +##### Types de contacts ##### +TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract +TypeContact_contrat_internal_SALESREPFOLL=Sales representative following-up contract +TypeContact_contrat_external_BILLING=Billing customer contact +TypeContact_contrat_external_CUSTOMER=Follow-up customer contact +TypeContact_contrat_external_SALESREPSIGN=Signing contract customer contact +HideClosedServiceByDefault=Hide closed services by default +ShowClosedServices=Show Closed Services +HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/ms_MY/cron.lang b/htdocs/langs/ms_MY/cron.lang new file mode 100644 index 00000000000..9705f8823b0 --- /dev/null +++ b/htdocs/langs/ms_MY/cron.lang @@ -0,0 +1,93 @@ +# Dolibarr language file - Source file is en_US - cron +# About page +# Right +Permission23101 = Read Scheduled job +Permission23102 = Create/update Scheduled job +Permission23103 = Delete Scheduled job +Permission23104 = Execute Scheduled job +# Admin +CronSetup=Scheduled job management setup +URLToLaunchCronJobs=URL to check and launch qualified cron jobs from a browser +OrToLaunchASpecificJob=Or to check and launch a specific job from a browser +KeyForCronAccess=Security key for URL to launch cron jobs +FileToLaunchCronJobs=Command line to check and launch qualified cron jobs +CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes +CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes +CronMethodDoesNotExists=Class %s does not contains any method %s +CronMethodNotAllowed=Method %s of class %s is in blacklist of forbidden methods +CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. +CronJobProfiles=List of predefined cron job profiles +# Menu +EnabledAndDisabled=Enabled and disabled +# Page list +CronLastOutput=Latest run output +CronLastResult=Latest result code +CronCommand=Command +CronList=Scheduled jobs +CronDelete=Delete scheduled jobs +CronConfirmDelete=Are you sure you want to delete these scheduled jobs? +CronExecute=Launch scheduled job +CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronTask=Job +CronNone=None +CronDtStart=Not before +CronDtEnd=Not after +CronDtNextLaunch=Next execution +CronDtLastLaunch=Start date of latest execution +CronDtLastResult=End date of latest execution +CronFrequency=Frequency +CronClass=Class +CronMethod=Method +CronModule=Module +CronNoJobs=No jobs registered +CronPriority=Priority +CronLabel=Label +CronNbRun=Number of launches +CronMaxRun=Maximum number of launches +CronEach=Every +JobFinished=Job launched and finished +Scheduled=Scheduled +#Page card +CronAdd= Add jobs +CronEvery=Execute job each +CronObject=Instance/Object to create +CronArgs=Parameters +CronSaveSucess=Save successfully +CronNote=Comment +CronFieldMandatory=Fields %s is mandatory +CronErrEndDateStartDt=End date cannot be before start date +StatusAtInstall=Status at module installation +CronStatusActiveBtn=Schedule +CronStatusInactiveBtn=Disable +CronTaskInactive=This job is disabled (not scheduled) +CronId=Id +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
    product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
    For example to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
    product/class/product.class.php +CronObjectHelp=The object name to load.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
    Product +CronMethodHelp=The object method to launch.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
    fetch +CronArgsHelp=The method arguments.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
    0, ProductRef +CronCommandHelp=The system command line to execute. +CronCreateJob=Create new Scheduled Job +CronFrom=From +# Info +# Common +CronType=Job type +CronType_method=Call method of a PHP Class +CronType_command=Shell command +CronCannotLoadClass=Cannot load class file %s (to use class %s) +CronCannotLoadObject=Class file %s was loaded, but object %s was not found into it +UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. +JobDisabled=Job disabled +MakeLocalDatabaseDumpShort=Local database backup +MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. +DATAPOLICYJob=Data cleaner and anonymizer +JobXMustBeEnabled=Job %s must be enabled +# Cron Boxes +LastExecutedScheduledJob=Last executed scheduled job +NextScheduledJobExecute=Next scheduled job to execute +NumberScheduledJobError=Number of scheduled jobs in error diff --git a/htdocs/langs/ms_MY/datapolicy.lang b/htdocs/langs/ms_MY/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ms_MY/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ms_MY/deliveries.lang b/htdocs/langs/ms_MY/deliveries.lang new file mode 100644 index 00000000000..cd8a36e6c70 --- /dev/null +++ b/htdocs/langs/ms_MY/deliveries.lang @@ -0,0 +1,33 @@ +# Dolibarr language file - Source file is en_US - deliveries +Delivery=Delivery +DeliveryRef=Ref Delivery +DeliveryCard=Receipt card +DeliveryOrder=Delivery receipt +DeliveryDate=Delivery date +CreateDeliveryOrder=Generate delivery receipt +DeliveryStateSaved=Delivery state saved +SetDeliveryDate=Set shipping date +ValidateDeliveryReceipt=Validate delivery receipt +ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +DeleteDeliveryReceipt=Delete delivery receipt +DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? +DeliveryMethod=Delivery method +TrackingNumber=Tracking number +DeliveryNotValidated=Delivery not validated +StatusDeliveryCanceled=Canceled +StatusDeliveryDraft=Draft +StatusDeliveryValidated=Received +# merou PDF model +NameAndSignature=Name and Signature: +ToAndDate=To___________________________________ on ____/_____/__________ +GoodStatusDeclaration=Have received the goods above in good condition, +Deliverer=Deliverer: +Sender=Sender +Recipient=Recipient +ErrorStockIsNotEnough=There's not enough stock +Shippable=Shippable +NonShippable=Not Shippable +ShowShippableStatus=Show shippable status +ShowReceiving=Show delivery receipt +NonExistentOrder=Nonexistent order +StockQuantitiesAlreadyAllocatedOnPreviousLines = Stock quantities already allocated on previous lines diff --git a/htdocs/langs/ms_MY/dict.lang b/htdocs/langs/ms_MY/dict.lang new file mode 100644 index 00000000000..0524cf1ca18 --- /dev/null +++ b/htdocs/langs/ms_MY/dict.lang @@ -0,0 +1,359 @@ +# Dolibarr language file - Source file is en_US - dict +CountryFR=France +CountryBE=Belgium +CountryIT=Italy +CountryES=Spain +CountryDE=Germany +CountryCH=Switzerland +# Warning, country code GB is for United Kingdom. UK Does not exists as country code in ISO standard. +CountryGB=United Kingdom +CountryUK=United Kingdom +CountryIE=Ireland +CountryCN=China +CountryTN=Tunisia +CountryUS=United States +CountryMA=Morocco +CountryDZ=Algeria +CountryCA=Canada +CountryTG=Togo +CountryGA=Gabon +CountryNL=Netherlands +CountryHU=Hungary +CountryRU=Russia +CountrySE=Sweden +CountryCI=Ivory Coast +CountrySN=Senegal +CountryAR=Argentina +CountryCM=Cameroon +CountryPT=Portugal +CountrySA=Saudi Arabia +CountryMC=Monaco +CountryAU=Australia +CountrySG=Singapore +CountryAF=Afghanistan +CountryAX=Åland Islands +CountryAL=Albania +CountryAS=American Samoa +CountryAD=Andorra +CountryAO=Angola +CountryAI=Anguilla +CountryAQ=Antarctica +CountryAG=Antigua and Barbuda +CountryAM=Armenia +CountryAW=Aruba +CountryAT=Austria +CountryAZ=Azerbaijan +CountryBS=Bahamas +CountryBH=Bahrain +CountryBD=Bangladesh +CountryBB=Barbados +CountryBY=Belarus +CountryBZ=Belize +CountryBJ=Benin +CountryBM=Bermuda +CountryBT=Bhutan +CountryBO=Bolivia +CountryBA=Bosnia and Herzegovina +CountryBW=Botswana +CountryBV=Bouvet Island +CountryBR=Brazil +CountryIO=British Indian Ocean Territory +CountryBN=Brunei Darussalam +CountryBG=Bulgaria +CountryBF=Burkina Faso +CountryBI=Burundi +CountryKH=Cambodia +CountryCV=Cape Verde +CountryKY=Cayman Islands +CountryCF=Central African Republic +CountryTD=Chad +CountryCL=Chile +CountryCX=Christmas Island +CountryCC=Cocos (Keeling) Islands +CountryCO=Colombia +CountryKM=Comoros +CountryCG=Congo +CountryCD=Congo, The Democratic Republic of the +CountryCK=Cook Islands +CountryCR=Costa Rica +CountryHR=Croatia +CountryCU=Cuba +CountryCY=Cyprus +CountryCZ=Czech Republic +CountryDK=Denmark +CountryDJ=Djibouti +CountryDM=Dominica +CountryDO=Dominican Republic +CountryEC=Ecuador +CountryEG=Egypt +CountrySV=El Salvador +CountryGQ=Equatorial Guinea +CountryER=Eritrea +CountryEE=Estonia +CountryET=Ethiopia +CountryFK=Falkland Islands +CountryFO=Faroe Islands +CountryFJ=Fiji Islands +CountryFI=Finland +CountryGF=French Guiana +CountryPF=French Polynesia +CountryTF=French Southern Territories +CountryGM=Gambia +CountryGE=Georgia +CountryGH=Ghana +CountryGI=Gibraltar +CountryGR=Greece +CountryGL=Greenland +CountryGD=Grenada +CountryGP=Guadeloupe +CountryGU=Guam +CountryGT=Guatemala +CountryGN=Guinea +CountryGW=Guinea-Bissau +CountryGY=Guyana +CountryHT=Haïti +CountryHM=Heard Island and McDonald +CountryVA=Holy See (Vatican City State) +CountryHN=Honduras +CountryHK=Hong Kong +CountryIS=Iceland +CountryIN=India +CountryID=Indonesia +CountryIR=Iran +CountryIQ=Iraq +CountryIL=Israel +CountryJM=Jamaica +CountryJP=Japan +CountryJO=Jordan +CountryKZ=Kazakhstan +CountryKE=Kenya +CountryKI=Kiribati +CountryKP=North Korea +CountryKR=South Korea +CountryKW=Kuwait +CountryKG=Kyrgyzstan +CountryLA=Lao +CountryLV=Latvia +CountryLB=Lebanon +CountryLS=Lesotho +CountryLR=Liberia +CountryLY=Libyan +CountryLI=Liechtenstein +CountryLT=Lithuania +CountryLU=Luxembourg +CountryMO=Macao +CountryMK=Macedonia, the former Yugoslav of +CountryMG=Madagascar +CountryMW=Malawi +CountryMY=Malaysia +CountryMV=Maldives +CountryML=Mali +CountryMT=Malta +CountryMH=Marshall Islands +CountryMQ=Martinique +CountryMR=Mauritania +CountryMU=Mauritius +CountryYT=Mayotte +CountryMX=Mexico +CountryFM=Micronesia +CountryMD=Moldova +CountryMN=Mongolia +CountryMS=Monserrat +CountryMZ=Mozambique +CountryMM=Myanmar (Burma) +CountryNA=Namibia +CountryNR=Nauru +CountryNP=Nepal +CountryAN=Netherlands Antilles +CountryNC=New Caledonia +CountryNZ=New Zealand +CountryNI=Nicaragua +CountryNE=Niger +CountryNG=Nigeria +CountryNU=Niue +CountryNF=Norfolk Island +CountryMP=Northern Mariana Islands +CountryNO=Norway +CountryOM=Oman +CountryPK=Pakistan +CountryPW=Palau +CountryPS=Palestinian Territory, Occupied +CountryPA=Panama +CountryPG=Papua New Guinea +CountryPY=Paraguay +CountryPE=Peru +CountryPH=Philippines +CountryPN=Pitcairn Islands +CountryPL=Poland +CountryPR=Puerto Rico +CountryQA=Qatar +CountryRE=Reunion +CountryRO=Romania +CountryRW=Rwanda +CountrySH=Saint Helena +CountryKN=Saint Kitts and Nevis +CountryLC=Saint Lucia +CountryPM=Saint Pierre and Miquelon +CountryVC=Saint Vincent and Grenadines +CountryWS=Samoa +CountrySM=San Marino +CountryST=Sao Tome and Principe +CountryRS=Serbia +CountrySC=Seychelles +CountrySL=Sierra Leone +CountrySK=Slovakia +CountrySI=Slovenia +CountrySB=Solomon Islands +CountrySO=Somalia +CountryZA=South Africa +CountryGS=South Georgia and the South Sandwich Islands +CountryLK=Sri Lanka +CountrySD=Sudan +CountrySR=Suriname +CountrySJ=Svalbard and Jan Mayen +CountrySZ=Swaziland +CountrySY=Syrian +CountryTW=Taiwan +CountryTJ=Tajikistan +CountryTZ=Tanzania +CountryTH=Thailand +CountryTL=Timor-Leste +CountryTK=Tokelau +CountryTO=Tonga +CountryTT=Trinidad and Tobago +CountryTR=Turkey +CountryTM=Turkmenistan +CountryTC=Turks and Caicos Islands +CountryTV=Tuvalu +CountryUG=Uganda +CountryUA=Ukraine +CountryAE=United Arab Emirates +CountryUM=United States Minor Outlying Islands +CountryUY=Uruguay +CountryUZ=Uzbekistan +CountryVU=Vanuatu +CountryVE=Venezuela +CountryVN=Viet Nam +CountryVG=Virgin Islands, British +CountryVI=Virgin Islands, U.S. +CountryWF=Wallis and Futuna +CountryEH=Western Sahara +CountryYE=Yemen +CountryZM=Zambia +CountryZW=Zimbabwe +CountryGG=Guernsey +CountryIM=Isle of Man +CountryJE=Jersey +CountryME=Montenegro +CountryBL=Saint Barthelemy +CountryMF=Saint Martin + +##### Civilities ##### +CivilityMME=Mrs. +CivilityMR=Mr. +CivilityMLE=Ms. +CivilityMTRE=Master +CivilityDR=Doctor +##### Currencies ##### +Currencyeuros=Euros +CurrencyAUD=AU Dollars +CurrencySingAUD=AU Dollar +CurrencyCAD=CAN Dollars +CurrencySingCAD=CAN Dollar +CurrencyCHF=Swiss Francs +CurrencySingCHF=Swiss Franc +CurrencyEUR=Euros +CurrencySingEUR=Euro +CurrencyFRF=French Francs +CurrencySingFRF=French Franc +CurrencyGBP=GB Pounds +CurrencySingGBP=GB Pound +CurrencyINR=Indian rupees +CurrencySingINR=Indian rupee +CurrencyMAD=Dirham +CurrencySingMAD=Dirham +CurrencyMGA=Ariary +CurrencySingMGA=Ariary +CurrencyMUR=Mauritius rupees +CurrencySingMUR=Mauritius rupee +CurrencyNOK=Norwegian krones +CurrencySingNOK=Norwegian kronas +CurrencyTND=Tunisian dinars +CurrencySingTND=Tunisian dinar +CurrencyUSD=US Dollars +CurrencySingUSD=US Dollar +CurrencyUAH=Hryvnia +CurrencySingUAH=Hryvnia +CurrencyXAF=CFA Francs BEAC +CurrencySingXAF=CFA Franc BEAC +CurrencyXOF=CFA Francs BCEAO +CurrencySingXOF=CFA Franc BCEAO +CurrencyXPF=CFP Francs +CurrencySingXPF=CFP Franc +CurrencyCentEUR=cents +CurrencyCentSingEUR=cent +CurrencyCentINR=paisa +CurrencyCentSingINR=paise +CurrencyThousandthSingTND=thousandth +#### Input reasons ##### +DemandReasonTypeSRC_INTE=Internet +DemandReasonTypeSRC_CAMP_MAIL=Mailing campaign +DemandReasonTypeSRC_CAMP_EMAIL=EMailing campaign +DemandReasonTypeSRC_CAMP_PHO=Phone campaign +DemandReasonTypeSRC_CAMP_FAX=Fax campaign +DemandReasonTypeSRC_COMM=Commercial contact +DemandReasonTypeSRC_SHOP=Shop contact +DemandReasonTypeSRC_WOM=Word of mouth +DemandReasonTypeSRC_PARTNER=Partner +DemandReasonTypeSRC_EMPLOYEE=Employee +DemandReasonTypeSRC_SPONSORING=Sponsorship +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer +#### Paper formats #### +PaperFormatEU4A0=Format 4A0 +PaperFormatEU2A0=Format 2A0 +PaperFormatEUA0=Format A0 +PaperFormatEUA1=Format A1 +PaperFormatEUA2=Format A2 +PaperFormatEUA3=Format A3 +PaperFormatEUA4=Format A4 +PaperFormatEUA5=Format A5 +PaperFormatEUA6=Format A6 +PaperFormatUSLETTER=Format Letter US +PaperFormatUSLEGAL=Format Legal US +PaperFormatUSEXECUTIVE=Format Executive US +PaperFormatUSLEDGER=Format Ledger/Tabloid +PaperFormatCAP1=Format P1 Canada +PaperFormatCAP2=Format P2 Canada +PaperFormatCAP3=Format P3 Canada +PaperFormatCAP4=Format P4 Canada +PaperFormatCAP5=Format P5 Canada +PaperFormatCAP6=Format P6 Canada +#### Expense report categories #### +ExpAutoCat=Car +ExpCycloCat=Moped +ExpMotoCat=Motorbike +ExpAuto3CV=3 CV +ExpAuto4CV=4 CV +ExpAuto5CV=5 CV +ExpAuto6CV=6 CV +ExpAuto7CV=7 CV +ExpAuto8CV=8 CV +ExpAuto9CV=9 CV +ExpAuto10CV=10 CV +ExpAuto11CV=11 CV +ExpAuto12CV=12 CV +ExpAuto3PCV=3 CV and more +ExpAuto4PCV=4 CV and more +ExpAuto5PCV=5 CV and more +ExpAuto6PCV=6 CV and more +ExpAuto7PCV=7 CV and more +ExpAuto8PCV=8 CV and more +ExpAuto9PCV=9 CV and more +ExpAuto10PCV=10 CV and more +ExpAuto11PCV=11 CV and more +ExpAuto12PCV=12 CV and more +ExpAuto13PCV=13 CV and more +ExpCyclo=Capacity lower to 50cm3 +ExpMoto12CV=Motorbike 1 or 2 CV +ExpMoto345CV=Motorbike 3, 4 or 5 CV +ExpMoto5PCV=Motorbike 5 CV and more diff --git a/htdocs/langs/ms_MY/donations.lang b/htdocs/langs/ms_MY/donations.lang new file mode 100644 index 00000000000..d512abb2eea --- /dev/null +++ b/htdocs/langs/ms_MY/donations.lang @@ -0,0 +1,35 @@ +# Dolibarr language file - Source file is en_US - donations +Donation=Donation +Donations=Donations +DonationRef=Donation ref. +Donor=Donor +AddDonation=Create a donation +NewDonation=New donation +DeleteADonation=Delete a donation +ConfirmDeleteADonation=Are you sure you want to delete this donation? +PublicDonation=Public donation +DonationsArea=Donations area +DonationStatusPromiseNotValidated=Draft promise +DonationStatusPromiseValidated=Validated promise +DonationStatusPaid=Donation received +DonationStatusPromiseNotValidatedShort=Draft +DonationStatusPromiseValidatedShort=Validated +DonationStatusPaidShort=Received +DonationTitle=Donation receipt +DonationDate=Donation date +DonationDatePayment=Payment date +ValidPromess=Validate promise +DonationReceipt=Donation receipt +DonationsModels=Documents models for donation receipts +LastModifiedDonations=Latest %s modified donations +DonationRecipient=Donation recipient +IConfirmDonationReception=The recipient declare reception, as a donation, of the following amount +MinimumAmount=Minimum amount is %s +FreeTextOnDonations=Free text to show in footer +FrenchOptions=Options for France +DONATION_ART200=Show article 200 from CGI if you are concerned +DONATION_ART238=Show article 238 from CGI if you are concerned +DONATION_ART885=Show article 885 from CGI if you are concerned +DonationPayment=Donation payment +DonationValidated=Donation %s validated +DonationUseThirdparties=Use an existing thirdparty as coordinates of donators diff --git a/htdocs/langs/ms_MY/ecm.lang b/htdocs/langs/ms_MY/ecm.lang new file mode 100644 index 00000000000..494a6c55164 --- /dev/null +++ b/htdocs/langs/ms_MY/ecm.lang @@ -0,0 +1,49 @@ +# Dolibarr language file - Source file is en_US - ecm +ECMNbOfDocs=No. of documents in directory +ECMSection=Directory +ECMSectionManual=Manual directory +ECMSectionAuto=Automatic directory +ECMSectionsManual=Manual tree +ECMSectionsAuto=Automatic tree +ECMSections=Directories +ECMRoot=ECM Root +ECMNewSection=New directory +ECMAddSection=Add directory +ECMCreationDate=Creation date +ECMNbOfFilesInDir=Number of files in directory +ECMNbOfSubDir=Number of sub-directories +ECMNbOfFilesInSubDir=Number of files in sub-directories +ECMCreationUser=Creator +ECMArea=DMS/ECM area +ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. +ECMAreaDesc2=* Automatic directories are filled automatically when adding documents from card of an element.
    * Manual directories can be used to save documents not linked to a particular element. +ECMSectionWasRemoved=Directory %s has been deleted. +ECMSectionWasCreated=Directory %s has been created. +ECMSearchByKeywords=Search by keywords +ECMSearchByEntity=Search by object +ECMSectionOfDocuments=Directories of documents +ECMTypeAuto=Automatic +ECMDocsBy=Documents linked to %s +ECMNoDirectoryYet=No directory created +ShowECMSection=Show directory +DeleteSection=Remove directory +ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ECMDirectoryForFiles=Relative directory for files +CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories +CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files +ECMFileManager=File manager +ECMSelectASection=Select a directory in the tree... +DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory. +ReSyncListOfDir=Resync list of directories +HashOfFileContent=Hash of file content +NoDirectoriesFound=No directories found +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it) +ExtraFieldsEcmFiles=Extrafields Ecm Files +ExtraFieldsEcmDirectories=Extrafields Ecm Directories +ECMSetup=ECM Setup +GenerateImgWebp=Duplicate all images with another version with .webp format +ConfirmGenerateImgWebp=If you confirm, you will generate an image in .webp format for all images currently into this folder (subfolders are not included)... +ConfirmImgWebpCreation=Confirm all images duplication +SucessConvertImgWebp=Images successfully duplicated +ECMDirName=Dir name +ECMParentDirectory=Parent directory diff --git a/htdocs/langs/ms_MY/errors.lang b/htdocs/langs/ms_MY/errors.lang new file mode 100644 index 00000000000..ceef384ddb3 --- /dev/null +++ b/htdocs/langs/ms_MY/errors.lang @@ -0,0 +1,347 @@ +# Dolibarr language file - Source file is en_US - errors + +# No errors +NoErrorCommitIsDone=No error, we commit +# Errors +ErrorButCommitIsDone=Errors found but we validate despite this +ErrorBadEMail=Email %s is incorrect +ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) +ErrorBadUrl=Url %s is incorrect +ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. +ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. +ErrorLoginAlreadyExists=Login %s already exists. +ErrorGroupAlreadyExists=Group %s already exists. +ErrorEmailAlreadyExists=Email %s already exists. +ErrorRecordNotFound=Record not found. +ErrorFailToCopyFile=Failed to copy file '%s' into '%s'. +ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. +ErrorFailToRenameFile=Failed to rename file '%s' into '%s'. +ErrorFailToDeleteFile=Failed to remove file '%s'. +ErrorFailToCreateFile=Failed to create file '%s'. +ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. +ErrorFailToCreateDir=Failed to create directory '%s'. +ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. +ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. +ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. +ErrorBadThirdPartyName=Bad value for third-party name +ForbiddenBySetupRules=Forbidden by setup rules +ErrorProdIdIsMandatory=The %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorBadCustomerCodeSyntax=Bad syntax for customer code +ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. +ErrorCustomerCodeRequired=Customer code required +ErrorBarCodeRequired=Barcode required +ErrorCustomerCodeAlreadyUsed=Customer code already used +ErrorBarCodeAlreadyUsed=Barcode already used +ErrorPrefixRequired=Prefix required +ErrorBadSupplierCodeSyntax=Bad syntax for vendor code +ErrorSupplierCodeRequired=Vendor code required +ErrorSupplierCodeAlreadyUsed=Vendor code already used +ErrorBadParameters=Bad parameters +ErrorWrongParameters=Wrong or missing parameters +ErrorBadValueForParameter=Wrong value '%s' for parameter '%s' +ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format) +ErrorBadDateFormat=Value '%s' has wrong date format +ErrorWrongDate=Date is not correct! +ErrorFailedToWriteInDir=Failed to write in directory %s +ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. +ErrorFieldsRequired=Some required fields have been left blank. +ErrorSubjectIsRequired=The email subject is required +ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). +ErrorNoMailDefinedForThisUser=No mail defined for this user +ErrorSetupOfEmailsNotComplete=Setup of emails is not complete +ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. +ErrorTopMenuMustHaveAParentWithId0=A menu of type 'Top' can't have a parent menu. Put 0 in parent menu or choose a menu of type 'Left'. +ErrorLeftMenuMustHaveAParentId=A menu of type 'Left' must have a parent id. +ErrorFileNotFound=File %s not found (Bad path, wrong permissions or access denied by PHP openbasedir or safe_mode parameter) +ErrorDirNotFound=Directory %s not found (Bad path, wrong permissions or access denied by PHP openbasedir or safe_mode parameter) +ErrorFunctionNotAvailableInPHP=Function %s is required for this feature but is not available in this version/setup of PHP. +ErrorDirAlreadyExists=A directory with this name already exists. +ErrorFileAlreadyExists=A file with this name already exists. +ErrorDestinationAlreadyExists=Another file with the name %s already exists. +ErrorPartialFile=File not received completely by server. +ErrorNoTmpDir=Temporary directy %s does not exists. +ErrorUploadBlockedByAddon=Upload blocked by a PHP/Apache plugin. +ErrorFileSizeTooLarge=File size is too large or file not provided. +ErrorFieldTooLong=Field %s is too long. +ErrorSizeTooLongForIntType=Size too long for int type (%s digits maximum) +ErrorSizeTooLongForVarcharType=Size too long for string type (%s chars maximum) +ErrorNoValueForSelectType=Please fill value for select list +ErrorNoValueForCheckBoxType=Please fill value for checkbox list +ErrorNoValueForRadioType=Please fill value for radio list +ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value +ErrorFieldCanNotContainSpecialCharacters=The field %s must not contains special characters. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters and cannot contain only numbers. +ErrorFieldMustHaveXChar=The field %s must have at least %s characters. +ErrorNoAccountancyModuleLoaded=No accountancy module activated +ErrorExportDuplicateProfil=This profile name already exists for this export set. +ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete. +ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors. +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled. +ErrorRefAlreadyExists=Reference %s already exists. +ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD) +ErrorRecordHasChildren=Failed to delete record since it has some child records. +ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object. +ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display. +ErrorPasswordsMustMatch=Both typed passwords must match each other +ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. +ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed +ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s +ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref +ErrorsOnXLines=%s errors found +ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the file (file might be infected by a virus) +ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s" +ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. +ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorBadMask=Error on mask +ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number +ErrorBadMaskBadRazMonth=Error, bad reset value +ErrorMaxNumberReachForThisMask=Maximum number reached for this mask +ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits +ErrorSelectAtLeastOne=Error, select at least one entry. +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated +ErrorProdIdAlreadyExist=%s is assigned to another third +ErrorFailedToSendPassword=Failed to send password +ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information. +ErrorForbidden=Access denied.
    You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. +ErrorForbidden2=Permission for this login can be defined by your Dolibarr administrator from menu %s->%s. +ErrorForbidden3=It seems that Dolibarr is not used through an authenticated session. Take a look at Dolibarr setup documentation to know how to manage authentications (htaccess, mod_auth or other...). +ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorNoImagickReadimage=Class Imagick is not found in this PHP. No preview can be available. Administrators can disable this tab from menu Setup - Display. +ErrorRecordAlreadyExists=Record already exists +ErrorLabelAlreadyExists=This label already exists +ErrorCantReadFile=Failed to read file '%s' +ErrorCantReadDir=Failed to read directory '%s' +ErrorBadLoginPassword=Bad value for login or password +ErrorLoginDisabled=Your account has been disabled +ErrorFailedToRunExternalCommand=Failed to run external command. Check it is available and runnable by your PHP server user. Check also the command is not protected on shell level by a security layer like apparmor. +ErrorFailedToChangePassword=Failed to change password +ErrorLoginDoesNotExists=User with login %s could not be found. +ErrorLoginHasNoEmail=This user has no email address. Process aborted. +ErrorBadValueForCode=Bad value for security code. Try again with new value... +ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative +ErrorFieldCantBeNegativeOnInvoice=Field %s cannot be negative on this type of invoice. If you need to add a discount line, just create the discount first (from field '%s' in thirdparty card) and apply it to the invoice. +ErrorLinesCantBeNegativeForOneVATRate=Total of lines (net of tax) can't be negative for a given not null VAT rate (Found a negative total for VAT rate %s%%). +ErrorLinesCantBeNegativeOnDeposits=Lines can't be negative in a deposit. You will face problems when you will need to consume the deposit in final invoice if you do so. +ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative +ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that +ErrorNoActivatedBarcode=No barcode type activated +ErrUnzipFails=Failed to unzip %s with ZipArchive +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP +ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package +ErrorModuleFileRequired=You must select a Dolibarr module package file +ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal +ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base +ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base +ErrorNewValueCantMatchOldValue=New value can't be equal to old one +ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. +ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start'). +ErrorFailedToAddContact=Failed to add contact +ErrorDateMustBeBeforeToday=The date must be lower than today +ErrorDateMustBeInFuture=The date must be greater than today +ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. +ErrorPHPNeedModule=Error, your PHP must have module %s installed to use this feature. +ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s +ErrorWarehouseMustDiffers=Source and target warehouses must differs +ErrorBadFormat=Bad format! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. +ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. +ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid +ErrorPriceExpression1=Cannot assign to constant '%s' +ErrorPriceExpression2=Cannot redefine built-in function '%s' +ErrorPriceExpression3=Undefined variable '%s' in function definition +ErrorPriceExpression4=Illegal character '%s' +ErrorPriceExpression5=Unexpected '%s' +ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected) +ErrorPriceExpression8=Unexpected operator '%s' +ErrorPriceExpression9=An unexpected error occured +ErrorPriceExpression10=Operator '%s' lacks operand +ErrorPriceExpression11=Expecting '%s' +ErrorPriceExpression14=Division by zero +ErrorPriceExpression17=Undefined variable '%s' +ErrorPriceExpression19=Expression not found +ErrorPriceExpression20=Empty expression +ErrorPriceExpression21=Empty result '%s' +ErrorPriceExpression22=Negative result '%s' +ErrorPriceExpression23=Unknown or non set variable '%s' in %s +ErrorPriceExpression24=Variable '%s' exists but has no value +ErrorPriceExpressionInternal=Internal error '%s' +ErrorPriceExpressionUnknown=Unknown error '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs +ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on product '%s' requiring lot/serial information +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action +ErrorGlobalVariableUpdater0=HTTP request failed with error '%s' +ErrorGlobalVariableUpdater1=Invalid JSON format '%s' +ErrorGlobalVariableUpdater2=Missing parameter '%s' +ErrorGlobalVariableUpdater3=The requested data was not found in result +ErrorGlobalVariableUpdater4=SOAP client failed with error '%s' +ErrorGlobalVariableUpdater5=No global variable selected +ErrorFieldMustBeANumeric=Field %s must be a numeric value +ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter it's status. +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) +ErrorSavingChanges=An error has occurred when saving the changes +ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship +ErrorFileMustHaveFormat=File must have format %s +ErrorFilenameCantStartWithDot=Filename can't start with a '.' +ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first. +ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. +ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. +ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. +ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. +ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. +ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. +ErrorModuleNotFound=File of module was not found. +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) +ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s +ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. +ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. +ErrorTaskAlreadyAssigned=Task already assigned to user +ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. +ErrorModuleFileSeemsToHaveAWrongFormat2=At least one mandatory directory must exists into zip of module: %s or %s +ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. +ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not +ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before. +ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently. +ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using kits to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number. +ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use +ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually. +ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s +ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set. +ErrorURLMustEndWith=URL %s must end %s +ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// +ErrorHostMustNotStartWithHttp=Host name %s must NOT start with http:// or https:// +ErrorNewRefIsAlreadyUsed=Error, the new reference is already used +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. +ErrorSearchCriteriaTooSmall=Search criteria too small. +ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to be disabled +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled +ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist. +ErrorFieldRequiredForProduct=Field '%s' is required for product %s +ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s. +ErrorAddAtLeastOneLineFirst=Add at least one line first +ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Error, language is mandatory if you set the page as a translation of another one. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one. +ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in warehouse "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s". +ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded) +ErrorTooManyDifferentValueForSelectedGroupBy=Found too many different value (more than %s) for the field '%s', so we can't use it as a 'Group by' for graphics. The field 'Group By' has been removed. May be you wanted to use it as an X-Axis ? +ErrorReplaceStringEmpty=Error, the string to replace into is empty +ErrorProductNeedBatchNumber=Error, product '%s' need a lot/serial number +ErrorProductDoesNotNeedBatchNumber=Error, product '%s' does not accept a lot/serial number +ErrorFailedToReadObject=Error, failed to read object of type %s +ErrorParameterMustBeEnabledToAllwoThisFeature=Error, parameter %s must be enabled into conf/conf.php to allow use of Command Line Interface by the internal job scheduler +ErrorLoginDateValidity=Error, this login is outside the validity date range +ErrorValueLength=Length of field '%s' must be higher than '%s' +ErrorReservedKeyword=The word '%s' is a reserved keyword +ErrorNotAvailableWithThisDistribution=Not available with this distribution +ErrorPublicInterfaceNotEnabled=Public interface was not enabled +ErrorLanguageRequiredIfPageIsTranslationOfAnother=The language of new page must be defined if it is set as a translation of another page +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=The language of new page must not be the source language if it is set as a translation of another page +ErrorAParameterIsRequiredForThisOperation=A parameter is mandatory for this operation +ErrorDateIsInFuture=Error, the date can't be in the future +ErrorAnAmountWithoutTaxIsRequired=Error, amount is mandatory +ErrorAPercentIsRequired=Error, please fill in the percentage correctly +ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of account +ErrorFailedToFindEmailTemplate=Failed to find template with code name %s +ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. +ErrorActionCommPropertyUserowneridNotDefined=User's owner is required +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary +CheckVersionFail=Version check fail +ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it +ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. +ErrorIsNotADraft=%s is not a draft +ErrorExecIdFailed=Can't execute command "id" +ErrorBadCharIntoLoginName=Unauthorized character in the login name +ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory + +# Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. +WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. +WarningMandatorySetupNotComplete=Click here to setup mandatory parameters +WarningEnableYourModulesApplications=Click here to enable your modules and applications +WarningSafeModeOnCheckExecDir=Warning, PHP option safe_mode is on so command must be stored inside a directory declared by php parameter safe_mode_exec_dir. +WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) already exists. +WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this. +WarningConfFileMustBeReadOnly=Warning, your config file (htdocs/conf/conf.php) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe. +WarningsOnXLines=Warnings on %s source record(s) +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. +WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. +WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. +WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. +WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. +WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. +WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. +WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to %s when using the mass actions on lists +WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report +WarningProjectDraft=Project is still in draft mode. Don't forget to validate it if you plan to use tasks. +WarningProjectClosed=Project is closed. You must re-open it first. +WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list. +WarningFailedToAddFileIntoDatabaseIndex=Warning, failed to add file entry into ECM database index table +WarningTheHiddenOptionIsOn=Warning, the hidden option %s is on. +WarningCreateSubAccounts=Warning, you can't create directly a sub account, you must create a third party or an user and assign them an accounting code to find them in this list +WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. +WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. +WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME + +# Validate +RequireValidValue = Value not valid +RequireAtLeastXString = Requires at least %s character(s) +RequireXStringMax = Requires %s character(s) max +RequireAtLeastXDigits = Requires at least %s digit(s) +RequireXDigitsMax = Requires %s digit(s) max +RequireValidNumeric = Requires a numeric value +RequireValidEmail = Email address is not valid +RequireMaxLength = Length must be less than %s chars +RequireMinLength = Length must be more than %s char(s) +RequireValidUrl = Require valid URL +RequireValidDate = Require a valid date +RequireANotEmptyValue = Is required +RequireValidDuration = Require a valid duration +RequireValidExistingElement = Require an existing value +RequireValidBool = Require a valid boolean +BadSetupOfField = Error bad setup of field +BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation +BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion +BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class diff --git a/htdocs/langs/ms_MY/eventorganization.lang b/htdocs/langs/ms_MY/eventorganization.lang new file mode 100644 index 00000000000..858e0937788 --- /dev/null +++ b/htdocs/langs/ms_MY/eventorganization.lang @@ -0,0 +1,169 @@ +# Copyright (C) 2021 Florian Henry +# Copyright (C) 2021 Dorian Vabre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Generic +# +ModuleEventOrganizationName = Event Organization +EventOrganizationDescription = Event Organization through Module Project +EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +# +# Menu +# +EventOrganizationMenuLeft = Organized events +EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth + +PaymentEvent=Payment of event + +# +# Admin page +# +NewRegistration=Registration +EventOrganizationSetup=Event Organization setup +EventOrganization=Event organization +Settings=Settings +EventOrganizationSetupPage = Event Organization setup page +EVENTORGANIZATION_TASK_LABEL = Label of tasks to create automatically when project is validated +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Category to add to third-parties automatically created when someone suggests a conference +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Category to add to third-parties automatically created when they suggests a booth +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Template of email to send after receiving a suggestion of a conference. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Template of email to send after receiving a suggestion of a booth. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Template of email to send after a registration to a booth has been paid. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Template of email to send after a registration to an event has been paid. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Template of email to use when sending emails from the massaction "Send emails" to speakers +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Template of email to use when sending emails from the massaction "Send emails" on attendee list +EVENTORGANIZATION_FILTERATTENDEES_CAT = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties in the category +EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties with the nature + +# +# Object +# +EventOrganizationConfOrBooth= Conference Or Booth +ManageOrganizeEvent = Manage the organization of an event +ConferenceOrBooth = Conference Or Booth +ConferenceOrBoothTab = Conference Or Booth +AmountPaid = Amount paid +DateOfRegistration = Date of registration +ConferenceOrBoothAttendee = Conference Or Booth Attendee + +# +# Template Mail +# +YourOrganizationEventConfRequestWasReceived = Your request for conference was received +YourOrganizationEventBoothRequestWasReceived = Your request for booth was received +EventOrganizationEmailAskConf = Request for conference +EventOrganizationEmailAskBooth = Request for booth +EventOrganizationEmailBoothPayment = Payment of your booth +EventOrganizationEmailRegistrationPayment = Registration for an event +EventOrganizationMassEmailAttendees = Communication to attendees +EventOrganizationMassEmailSpeakers = Communication to speakers +ToSpeakers=To speakers + +# +# Event +# +AllowUnknownPeopleSuggestConf=Allow people to suggest conferences +AllowUnknownPeopleSuggestConfHelp=Allow unknown people to suggest a conference they want to do +AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth +AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth +PriceOfRegistration=Price of registration +PriceOfRegistrationHelp=Price to pay to register or participate in the event +PriceOfBooth=Subscription price to stand a booth +PriceOfBoothHelp=Subscription price to stand a booth +EventOrganizationICSLink=Link ICS for conferences +ConferenceOrBoothInformation=Conference Or Booth informations +Attendees=Attendees +ListOfAttendeesOfEvent=List of attendees of the event project +DownloadICSLink = Download ICS link +EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference +SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event +NbVotes=Number of votes +# +# Status +# +EvntOrgDraft = Draft +EvntOrgSuggested = Suggested +EvntOrgConfirmed = Confirmed +EvntOrgNotQualified = Not Qualified +EvntOrgDone = Done +EvntOrgCancelled = Cancelled +# +# Public page +# +SuggestForm = Suggestion page +SuggestOrVoteForConfOrBooth = Page for suggestion or vote +EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest a new one for the event. You can also apply to have a booth during the event. +EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. +EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. +ListOfSuggestedConferences = List of suggested conferences +ListOfSuggestedBooths = List of suggested booths +ListOfConferencesOrBooths=List of conferences or booths of event project +SuggestConference = Suggest a new conference +SuggestBooth = Suggest a booth +ViewAndVote = View and vote for suggested events +PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event +PublicAttendeeSubscriptionPage = Public link for registration to this event only +MissingOrBadSecureKey = The security key is invalid or missing +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgDuration = This conference starts on %s and ends on %s. +ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. +BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s +EventType = Event type +LabelOfBooth=Booth label +LabelOfconference=Conference label +ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet +DateMustBeBeforeThan=%s must be before %s +DateMustBeAfterThan=%s must be after %s + +NewSubscription=Registration +OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received +OrganizationEventBoothRequestWasReceived=Your request for a booth has been received +OrganizationEventPaymentOfBoothWasReceived=Your payment for your booth has been recorded +OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event registration has been recorded +OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee +OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker +OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) + +NewSuggestionOfBooth=Application for a booth +NewSuggestionOfConference=Application for a conference + +# +# Vote page +# +EvntOrgRegistrationWelcomeMessage = Welcome on the conference or booth suggestion page. +EvntOrgRegistrationConfWelcomeMessage = Welcome on the conference suggestion page. +EvntOrgRegistrationBoothWelcomeMessage = Welcome on the booth suggestion page. +EvntOrgVoteHelpMessage = Here, you can view and vote for the suggested events for the project +VoteOk = Your vote has been accepted. +AlreadyVoted = You have already voted for this event. +VoteError = An error has occurred during the vote, please try again. + +SubscriptionOk = Your registration has been validated +ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event +Attendee = Attendee +PaymentConferenceAttendee = Conference attendee payment +PaymentBoothLocation = Booth location payment +DeleteConferenceOrBoothAttendee=Remove attendee +RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s +EmailAttendee=Attendee email +EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) +ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation +ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation +NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/ms_MY/exports.lang b/htdocs/langs/ms_MY/exports.lang new file mode 100644 index 00000000000..6cd111f0b80 --- /dev/null +++ b/htdocs/langs/ms_MY/exports.lang @@ -0,0 +1,145 @@ +# Dolibarr language file - Source file is en_US - exports +ExportsArea=Exports +ImportArea=Import +NewExport=New Export +NewImport=New Import +ExportableDatas=Exportable dataset +ImportableDatas=Importable dataset +SelectExportDataSet=Choose dataset you want to export... +SelectImportDataSet=Choose dataset you want to import... +SelectExportFields=Choose the fields you want to export, or select a predefined export profile +SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: +NotImportedFields=Fields of source file not imported +SaveExportModel=Save your selections as an export profile/template (for reuse). +SaveImportModel=Save this import profile (for reuse) ... +ExportModelName=Export profile name +ExportModelSaved=Export profile saved as %s. +ExportableFields=Exportable fields +ExportedFields=Exported fields +ImportModelName=Import profile name +ImportModelSaved=Import profile saved as %s. +ImportProfile=Import profile +DatasetToExport=Dataset to export +DatasetToImport=Import file into dataset +ChooseFieldsOrdersAndTitle=Choose fields order... +FieldsTitle=Fields title +FieldTitle=Field title +NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... +AvailableFormats=Available Formats +LibraryShort=Library +ExportCsvSeparator=Csv caracter separator +ImportCsvSeparator=Csv caracter separator +Step=Step +FormatedImport=Import Assistant +FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant. +FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import. +FormatedExport=Export Assistant +FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge. +FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order. +FormatedExportDesc3=When data to export are selected, you can choose the format of the output file. +Sheet=Sheet +NoImportableData=No importable data (no module with definitions to allow data imports) +FileSuccessfullyBuilt=File generated +SQLUsedForExport=SQL Request used to extract data +LineId=Id of line +LineLabel=Label of line +LineDescription=Description of line +LineUnitPrice=Unit price of line +LineVATRate=VAT Rate of line +LineQty=Quantity for line +LineTotalHT=Amount excl. tax for line +LineTotalTTC=Amount with tax for line +LineTotalVAT=Amount of VAT for line +TypeOfLineServiceOrProduct=Type of line (0=product, 1=service) +FileWithDataToImport=File with data to import +FileToImport=Source file to import +FileMustHaveOneOfFollowingFormat=File to import must have one of following formats +DownloadEmptyExampleShort=Download a sample file +DownloadEmptyExample=Download a template file with examples and information on fields you can import +StarAreMandatory=Into the template file, all fields with a * are mandatory fields +ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it... +ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... +SourceFileFormat=Source file format +FieldsInSourceFile=Fields in source file +FieldsInTargetDatabase=Target fields in Dolibarr database (bold=mandatory) +Field=Field +NoFields=No fields +MoveField=Move field column number %s +ExampleOfImportFile=Example_of_import_file +SaveImportProfile=Save this import profile +ErrorImportDuplicateProfil=Failed to save this import profile with this name. An existing profile already exists with this name. +TablesTarget=Targeted tables +FieldsTarget=Targeted fields +FieldTarget=Targeted field +FieldSource=Source field +NbOfSourceLines=Number of lines in source file +NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.
    Click on the "%s" button to run a check of the file structure/contents and simulate the import process.
    No data will be changed in your database. +RunSimulateImportFile=Run Import Simulation +FieldNeedSource=This field requires data from the source file +SomeMandatoryFieldHaveNoSource=Some mandatory fields have no source from data file +InformationOnSourceFile=Information on source file +InformationOnTargetTables=Information on target fields +SelectAtLeastOneField=Switch at least one source field in the column of fields to export +SelectFormat=Choose this import file format +RunImportFile=Import Data +NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.
    When the simulation reports no errors you may proceed to import the data into the database. +DataLoadedWithId=The imported data will have an additional field in each database table with this import id: %s, to allow it to be searchable in the case of investigating a problem related to this import. +ErrorMissingMandatoryValue=Mandatory data is empty in the source file in column %s. +TooMuchErrors=There are still %s other source lines with errors but output has been limited. +TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. +EmptyLine=Empty line (will be discarded) +CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. +FileWasImported=File was imported with number %s. +YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. +NbOfLinesOK=Number of lines with no errors and no warnings: %s. +NbOfLinesImported=Number of lines successfully imported: %s. +DataComeFromNoWhere=Value to insert comes from nowhere in source file. +DataComeFromFileFieldNb=Value to insert comes from column %s in source file. +DataComeFromIdFoundFromRef=Value that comes from column %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=Code that comes from column %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. +DataIsInsertedInto=Data coming from source file will be inserted into the following field: +DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: +DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +SourceRequired=Data value is mandatory +SourceExample=Example of possible data value +ExampleAnyRefFoundIntoElement=Any ref found for element %s +ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary %s +CSVFormatDesc=Comma Separated Value file format (.csv).
    This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. +Excel95FormatDesc=Excel file format (.xls)
    This is the native Excel 95 format (BIFF5). +Excel2007FormatDesc=Excel file format (.xlsx)
    This is the native Excel 2007 format (SpreadsheetML). +TsvFormatDesc=Tab Separated Value file format (.tsv)
    This is a text file format where fields are separated by a tabulator [tab]. +ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). +CsvOptions=CSV format options +Separator=Field Separator +Enclosure=String Delimiter +SpecialCode=Special code +ExportStringFilter=%% allows replacing one or more characters in the text +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day
    YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days
    > YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days
    < YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days +ExportNumericFilter=NNNNN filters by one value
    NNNNN+NNNNN filters over a range of values
    < NNNNN filters by lower values
    > NNNNN filters by higher values +ImportFromLine=Import starting from line number +EndAtLineNb=End at line number +ImportFromToLine=Limit range (From - To). Eg. to omit header line(s). +SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.
    If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation. +KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file. +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field +## filters +SelectFilterFields=If you want to filter on some values, just input values here. +FilteredFields=Filtered fields +FilteredFieldsValues=Value for filter +FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key (column) to use for updating existing data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s +StocksWithBatch=Stocks and location (warehouse) of products with batch/serial number +WarningFirstImportedLine=The first line(s) will not be imported with the current selection +NotUsedFields=Fields of database not used +SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +MandatoryTargetFieldsNotMapped=Some mandatory target fields are not mapped +AllTargetMandatoryFieldsAreMapped=All target fields that need a mandatory value are mapped +ResultOfSimulationNoError=Result of simulation: No error diff --git a/htdocs/langs/ms_MY/help.lang b/htdocs/langs/ms_MY/help.lang new file mode 100644 index 00000000000..d699cb56fd2 --- /dev/null +++ b/htdocs/langs/ms_MY/help.lang @@ -0,0 +1,23 @@ +# Dolibarr language file - Source file is en_US - help +CommunitySupport=Forum/Wiki support +EMailSupport=Emails support +RemoteControlSupport=Online real-time / remote support +OtherSupport=Other support +ToSeeListOfAvailableRessources=To contact/see available resources: +HelpCenter=Help Center +DolibarrHelpCenter=Dolibarr Help and Support Center +ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. +TypeOfSupport=Type of support +TypeSupportCommunauty=Community (free) +TypeSupportCommercial=Commercial +TypeOfHelp=Type +NeedHelpCenter=Need help or support? +Efficiency=Efficiency +TypeHelpOnly=Help only +TypeHelpDev=Help+Development +TypeHelpDevForm=Help+Development+Training +BackToHelpCenter=Otherwise, go back to Help center home page. +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated): +PossibleLanguages=Supported languages +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation +SeeOfficalSupport=For official Dolibarr support in your language:
    %s diff --git a/htdocs/langs/ms_MY/holiday.lang b/htdocs/langs/ms_MY/holiday.lang new file mode 100644 index 00000000000..831d306cc39 --- /dev/null +++ b/htdocs/langs/ms_MY/holiday.lang @@ -0,0 +1,149 @@ +# Dolibarr language file - Source file is en_US - holiday +HRM=HRM +Holidays=Leave +CPTitreMenu=Leave +MenuReportMonth=Monthly statement +MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request +NotActiveModCP=You must enable the module Leave to view this page. +AddCP=Make a leave request +DateDebCP=Start date +DateFinCP=End date +DraftCP=Draft +ToReviewCP=Awaiting approval +ApprovedCP=Approved +CancelCP=Canceled +RefuseCP=Refused +ValidatorCP=Approver +ListeCP=List of leave +Leave=Leave request +LeaveId=Leave ID +ReviewedByCP=Will be approved by +UserID=User ID +UserForApprovalID=User for approval ID +UserForApprovalFirstname=First name of approval user +UserForApprovalLastname=Last name of approval user +UserForApprovalLogin=Login of approval user +DescCP=Description +SendRequestCP=Create leave request +DelayToRequestCP=Leave requests must be made at least %s day(s) before them. +MenuConfCP=Balance of leave +SoldeCPUser=Leave balance (in days) %s +ErrorEndDateCP=You must select an end date greater than the start date. +ErrorSQLCreateCP=An SQL error occurred during the creation: +ErrorIDFicheCP=An error has occurred, the leave request does not exist. +ReturnCP=Return to previous page +ErrorUserViewCP=You are not authorized to read this leave request. +InfosWorkflowCP=Information Workflow +RequestByCP=Requested by +TitreRequestCP=Leave request +TypeOfLeaveId=Type of leave ID +TypeOfLeaveCode=Type of leave code +TypeOfLeaveLabel=Type of leave label +NbUseDaysCP=Number of days of leave used +NbUseDaysCPHelp=The calculation takes into account the non-working days and the holidays defined in the dictionary. +NbUseDaysCPShort=Days of leave +NbUseDaysCPShortInMonth=Days of leave in month +DayIsANonWorkingDay=%s is a non-working day +DateStartInMonth=Start date in month +DateEndInMonth=End date in month +EditCP=Edit +DeleteCP=Delete +ActionRefuseCP=Refuse +ActionCancelCP=Cancel +StatutCP=Status +TitleDeleteCP=Delete the leave request +ConfirmDeleteCP=Confirm the deletion of this leave request? +ErrorCantDeleteCP=Error you don't have the right to delete this leave request. +CantCreateCP=You don't have the right to make leave requests. +InvalidValidatorCP=You must choose the approver for your leave request. +NoDateDebut=You must select a start date. +NoDateFin=You must select an end date. +ErrorDureeCP=Your leave request does not contain working day. +TitleValidCP=Approve the leave request +ConfirmValidCP=Are you sure you want to approve the leave request? +DateValidCP=Date approved +TitleToValidCP=Send leave request +ConfirmToValidCP=Are you sure you want to send the leave request? +TitleRefuseCP=Refuse the leave request +ConfirmRefuseCP=Are you sure you want to refuse the leave request? +NoMotifRefuseCP=You must choose a reason for refusing the request. +TitleCancelCP=Cancel the leave request +ConfirmCancelCP=Are you sure you want to cancel the leave request? +DetailRefusCP=Reason for refusal +DateRefusCP=Date of refusal +DateCancelCP=Date of cancellation +DefineEventUserCP=Assign an exceptional leave for a user +addEventToUserCP=Assign leave +NotTheAssignedApprover=You are not the assigned approver +MotifCP=Reason +UserCP=User +ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. +AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged +MenuLogCP=View change logs +LogCP=Log of all updates made to "Balance of Leave" +ActionByCP=Updated by +UserUpdateCP=Updated for +PrevSoldeCP=Previous Balance +NewSoldeCP=New Balance +alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation +FirstDayOfHoliday=Beginning day of leave request +LastDayOfHoliday=Ending day of leave request +BoxTitleLastLeaveRequests=Latest %s modified leave requests +HolidaysMonthlyUpdate=Monthly update +ManualUpdate=Manual update +HolidaysCancelation=Leave request cancelation +EmployeeLastname=Employee last name +EmployeeFirstname=Employee first name +TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed +LastHolidays=Latest %s leave requests +AllHolidays=All leave requests +HalfDay=Half day +NotTheAssignedApprover=You are not the assigned approver +LEAVE_PAID=Paid vacation +LEAVE_SICK=Sick leave +LEAVE_OTHER=Other leave +LEAVE_PAID_FR=Paid vacation +## Configuration du Module ## +LastUpdateCP=Last automatic update of leave allocation +MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation +UpdateConfCPOK=Updated successfully. +Module27130Name= Management of leave requests +Module27130Desc= Management of leave requests +ErrorMailNotSend=An error occurred while sending email: +NoticePeriod=Notice period +#Messages +HolidaysToValidate=Validate leave requests +HolidaysToValidateBody=Below is a leave request to validate +HolidaysToValidateDelay=This leave request will take place within a period of less than %s days. +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days. +HolidaysValidated=Validated leave requests +HolidaysValidatedBody=Your leave request for %s to %s has been validated. +HolidaysRefused=Request denied +HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason: +HolidaysCanceled=Canceled leaved request +HolidaysCanceledBody=Your leave request for %s to %s has been canceled. +FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
    0: Not followed by a counter. +NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter +GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leave to setup the different types of leaves. +HolidaySetup=Setup of module Leave +HolidaysNumberingModules=Numbering models for leave requests +TemplatePDFHolidays=Template for leave requests PDF +FreeLegalTextOnHolidays=Free text on PDF +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests +HolidaysToApprove=Holidays to approve +NobodyHasPermissionToValidateHolidays=Nobody has permission to validate holidays +HolidayBalanceMonthlyUpdate=Monthly update of holiday balance +XIsAUsualNonWorkingDay=%s is usualy a NON working day +BlockHolidayIfNegative=Block if balance negative +LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted diff --git a/htdocs/langs/ms_MY/hrm.lang b/htdocs/langs/ms_MY/hrm.lang new file mode 100644 index 00000000000..cb55969895b --- /dev/null +++ b/htdocs/langs/ms_MY/hrm.lang @@ -0,0 +1,91 @@ +# Dolibarr language file - en_US - hrm + + +# Admin +HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service +Establishments=Establishments +Establishment=Establishment +NewEstablishment=New establishment +DeleteEstablishment=Delete establishment +ConfirmDeleteEstablishment=Are you sure you wish to delete this establishment? +OpenEtablishment=Open establishment +CloseEtablishment=Close establishment +# Dictionary +DictionaryPublicHolidays=Leave - Public holidays +DictionaryDepartment=HRM - Organizational Unit +DictionaryFunction=HRM - Job positions +# Module +Employees=Employees +Employee=Employee +NewEmployee=New employee +ListOfEmployees=List of employees +HrmSetup=HRM module setup +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill +HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created +deplacement=Shift +DateEval=Evaluation date +JobCard=Job card +JobPosition=Job +JobsPosition=Jobs +NewSkill=New Skill +SkillType=Skill type +Skilldets=List of ranks for this skill +Skilldet=Skill level +rank=Rank +ErrNoSkillSelected=No skill selected +ErrSkillAlreadyAdded=This skill is already in the list +SkillHasNoLines=This skill has no lines +skill=Skill +Skills=Skills +SkillCard=Skill card +EmployeeSkillsUpdated=Employee skills have been updated (see "Skills" tab of employee card) +Eval=Evaluation +Evals=Evaluations +NewEval=New evaluation +ValidateEvaluation=Validate evaluation +ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with reference %s? +EvaluationCard=Evaluation card +RequiredRank=Required rank for this job +EmployeeRank=Employee rank for this skill +EmployeePosition=Employee position +EmployeePositions=Employee positions +EmployeesInThisPosition=Employees in this position +group1ToCompare=Usergroup to analyze +group2ToCompare=Second usergroup for comparison +OrJobToCompare=Compare to job skills requirements +difference=Difference +CompetenceAcquiredByOneOrMore=Competence acquired by one or more users but not requested by the second comparator +MaxlevelGreaterThan=Max level greater than the one requested +MaxLevelEqualTo=Max level equal to that demand +MaxLevelLowerThan=Max level lower than that demand +MaxlevelGreaterThanShort=Employee level greater than the one requested +MaxLevelEqualToShort=Employee level equals to that demand +MaxLevelLowerThanShort=Employee level lower than that demand +SkillNotAcquired=Skill not acquired by all users and requested by the second comparator +legend=Legend +TypeSkill=Skill type +AddSkill=Add skills to job +RequiredSkills=Required skills for this job +UserRank=User Rank +SkillList=Skill list +SaveRank=Save rank +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge +AbandonmentComment=Abandonment comment +DateLastEval=Date last evaluation +NoEval=No evaluation done for this employee +HowManyUserWithThisMaxNote=Number of users with this rank +HighestRank=Highest rank +SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/ms_MY/install.lang b/htdocs/langs/ms_MY/install.lang new file mode 100644 index 00000000000..6aee82bacec --- /dev/null +++ b/htdocs/langs/ms_MY/install.lang @@ -0,0 +1,215 @@ +# Dolibarr language file - Source file is en_US - install +InstallEasy=Just follow the instructions step by step. +MiscellaneousChecks=Prerequisites check +ConfFileExists=Configuration file %s exists. +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file %s does not exist and could not be created! +ConfFileCouldBeCreated=Configuration file %s could be created. +ConfFileIsNotWritable=Configuration file %s is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS). +ConfFileIsWritable=Configuration file %s is writable. +ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. +ConfFileReload=Reloading parameters from configuration file. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. +PHPSupportPOSTGETOk=This PHP supports variables POST and GET. +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. +PHPSupportSessions=This PHP supports sessions. +PHPSupport=This PHP supports %s functions. +PHPMemoryOK=Your PHP max session memory is set to %s. This should be enough. +PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. +Recheck=Click here for a more detailed test +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. +ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. +ErrorDirDoesNotExists=Directory %s does not exist. +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. +ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'. +ErrorFailedToCreateDatabase=Failed to create database '%s'. +ErrorFailedToConnectToDatabase=Failed to connect to database '%s'. +ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. +ErrorDatabaseAlreadyExists=Database '%s' already exists. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". +IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. +PHPVersion=PHP Version +License=Using license +ConfigurationFile=Configuration file +WebPagesDirectory=Directory where web pages are stored +DocumentsDirectory=Directory to store uploaded and generated documents +URLRoot=URL Root +ForceHttps=Force secure connections (https) +CheckToForceHttps=Check this option to force secure connections (https).
    This requires that the web server is configured with an SSL certificate. +DolibarrDatabase=Dolibarr Database +DatabaseType=Database type +DriverType=Driver type +Server=Server +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server. +ServerPortDescription=Database server port. Keep empty if unknown. +DatabaseServer=Database server +DatabaseName=Database name +DatabasePrefix=Database table prefix +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_. +AdminLogin=User account for the Dolibarr database owner. +PasswordAgain=Retype password confirmation +AdminPassword=Password for Dolibarr database owner. +CreateDatabase=Create database +CreateUser=Create user account or grant user account permission on the Dolibarr database +DatabaseSuperUserAccess=Database server - Superuser access +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.
    In this case, you must also fill in the user name and password for the superuser account at the bottom of this page. +CheckToCreateUser=Check the box if:
    the database user account does not yet exist and so must be created, or
    if the user account exists but the database does not exist and permissions must be granted.
    In this case, you must enter the user account and password and also the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist. +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist. +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended) +SaveConfigurationFile=Saving parameters to +ServerConnection=Server connection +DatabaseCreation=Database creation +CreateDatabaseObjects=Database objects creation +ReferenceDataLoading=Reference data loading +TablesAndPrimaryKeysCreation=Tables and Primary keys creation +CreateTableAndPrimaryKey=Create table %s +CreateOtherKeysForTable=Create foreign keys and indexes for table %s +OtherKeysCreation=Foreign keys and indexes creation +FunctionsCreation=Functions creation +AdminAccountCreation=Administrator login creation +PleaseTypePassword=Please type a password, empty passwords are not allowed! +PleaseTypeALogin=Please type a login! +PasswordsMismatch=Passwords differs, please try again! +SetupEnd=End of setup +SystemIsInstalled=This installation is complete. +SystemIsUpgraded=Dolibarr has been upgraded successfully. +YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below: +AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. +GoToDolibarr=Go to Dolibarr +GoToSetupArea=Go to Dolibarr (setup area) +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again. +GoToUpgradePage=Go to upgrade page again +WithNoSlashAtTheEnd=Without the slash "/" at the end +DirectoryRecommendation=IMPORTANT: You must use a directory that is outside of the web pages (so do not use a subdirectory of previous parameter). +LoginAlreadyExists=Already exists +DolibarrAdminLogin=Dolibarr admin login +AdminLoginAlreadyExists=Dolibarr administrator account '%s' already exists. Go back if you want to create another one. +FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called install.lock into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again. +FunctionNotAvailableInThisPHP=Not available in this PHP +ChoosedMigrateScript=Choose migration script +DataMigration=Database migration (data) +DatabaseMigration=Database migration (structure + some data) +ProcessMigrateScript=Script processing +ChooseYourSetupMode=Choose your setup mode and click "Start"... +FreshInstall=Fresh install +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode. +Upgrade=Upgrade +UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data. +Start=Start +InstallNotAllowed=Setup not allowed by conf.php permissions +YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process. +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page. +AlreadyDone=Already migrated +DatabaseVersion=Database version +ServerVersion=Database server version +YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it. +DBSortingCollation=Character sorting order +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database %s, but for this, Dolibarr needs to connect to server %s with super user %s permissions. +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user %s, but for this, Dolibarr needs to connect to server %s with super user %s permissions. +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong. +OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s +RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue. +FieldRenamed=Field renamed +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user" +ErrorConnection=Server "%s", database name "%s", login "%s", or database password may be wrong or the PHP client version may be too old compared to the database version. +InstallChoiceRecommanded=Recommended choice to install version %s from your current version %s +InstallChoiceSuggested=Install choice suggested by installer. +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete. +CheckThatDatabasenameIsCorrect=Check that the database name "%s" is correct. +IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database". +OpenBaseDir=PHP openbasedir parameter +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form). +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form). +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing. +MigrationCustomerOrderShipping=Migrate shipping for sales orders storage +MigrationShippingDelivery=Upgrade storage of shipping +MigrationShippingDelivery2=Upgrade storage of shipping 2 +MigrationFinished=Migration finished +LastStepDesc=Last step: Define here the login and password you wish to use to connect to Dolibarr. Do not lose this as it is the master account to administer all other/additional user accounts. +ActivateModule=Activate module %s +ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode) +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process... +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s) +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing. +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing. +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing. +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing. +UpgradeExternalModule=Run dedicated upgrade process of external module +SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example: '...repair.php?standard=confirmed' +NothingToDelete=Nothing to clean/delete +NothingToDo=Nothing to do +######### +# upgrade +MigrationFixData=Fix for denormalized data +MigrationOrder=Data migration for customer's orders +MigrationSupplierOrder=Data migration for vendor's orders +MigrationProposal=Data migration for commercial proposals +MigrationInvoice=Data migration for customer's invoices +MigrationContract=Data migration for contracts +MigrationSuccessfullUpdate=Upgrade successful +MigrationUpdateFailed=Failed upgrade process +MigrationRelationshipTables=Data migration for relationship tables (%s) +MigrationPaymentsUpdate=Payment data correction +MigrationPaymentsNumberToUpdate=%s payment(s) to update +MigrationProcessPaymentUpdate=Update payment(s) %s +MigrationPaymentsNothingToUpdate=No more things to do +MigrationPaymentsNothingUpdatable=No more payments that can be corrected +MigrationContractsUpdate=Contract data correction +MigrationContractsNumberToUpdate=%s contract(s) to update +MigrationContractsLineCreation=Create contract line for contract ref %s +MigrationContractsNothingToUpdate=No more things to do +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do. +MigrationContractsEmptyDatesUpdate=Contract empty date correction +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully +MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct +MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct +MigrationContractsInvalidDatesUpdate=Bad value date contract correction +MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=%s) +MigrationContractsInvalidDatesNumber=%s contracts modified +MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct +MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction +MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully +MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct +MigrationReopeningContracts=Open contract closed by error +MigrationReopenThisContract=Reopen contract %s +MigrationReopenedContractsNumber=%s contracts modified +MigrationReopeningContractsNothingToUpdate=No closed contract to open +MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer +MigrationBankTransfertsNothingToUpdate=All links are up to date +MigrationShipmentOrderMatching=Sendings receipt update +MigrationDeliveryOrderMatching=Delivery receipt update +MigrationDeliveryDetail=Delivery update +MigrationStockDetail=Update stock value of products +MigrationMenusDetail=Update dynamic menus tables +MigrationDeliveryAddress=Update delivery address in shipments +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors +MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact +MigrationProjectTaskTime=Update time spent in seconds +MigrationActioncommElement=Update data on actions +MigrationPaymentMode=Data migration for payment type +MigrationCategorieAssociation=Migration of categories +MigrationEvents=Migration of events to add event owner into assignment table +MigrationEventsContact=Migration of events to add event contact into assignment table +MigrationRemiseEntity=Update entity field value of llx_societe_remise +MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except +MigrationUserRightsEntity=Update entity field value of llx_user_rights +MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights +MigrationUserPhotoPath=Migration of photo paths for users +MigrationFieldsSocialNetworks=Migration of users fields social networks (%s) +MigrationReloadModule=Reload module %s +MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm +MigrationImportOrExportProfiles=Migration of import or export profiles (%s) +ShowNotAvailableOptions=Show unavailable options +HideNotAvailableOptions=Hide unavailable options +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can click here, but the application or some features may not work correctly until the errors are resolved. +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file install.lock in the dolibarr documents directory).
    +ClickHereToGoToApp=Click here to go to your application +ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory. +Loaded=Loaded +FunctionTest=Function test diff --git a/htdocs/langs/ms_MY/interventions.lang b/htdocs/langs/ms_MY/interventions.lang new file mode 100644 index 00000000000..a57a84fc4c8 --- /dev/null +++ b/htdocs/langs/ms_MY/interventions.lang @@ -0,0 +1,70 @@ +# Dolibarr language file - Source file is en_US - interventions +Intervention=Intervention +Interventions=Interventions +InterventionCard=Intervention card +NewIntervention=New intervention +AddIntervention=Create intervention +ChangeIntoRepeatableIntervention=Change to repeatable intervention +ListOfInterventions=List of interventions +ActionsOnFicheInter=Actions on intervention +LastInterventions=Latest %s interventions +AllInterventions=All interventions +CreateDraftIntervention=Create draft +InterventionContact=Intervention contact +DeleteIntervention=Delete intervention +ValidateIntervention=Validate intervention +ModifyIntervention=Modify intervention +DeleteInterventionLine=Delete intervention line +ConfirmDeleteIntervention=Are you sure you want to delete this intervention? +ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? +ConfirmModifyIntervention=Are you sure you want to modify this intervention? +ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? +ConfirmCloneIntervention=Are you sure you want to clone this intervention? +NameAndSignatureOfInternalContact=Name and signature of intervening: +NameAndSignatureOfExternalContact=Name and signature of customer: +DocumentModelStandard=Standard document model for interventions +InterventionCardsAndInterventionLines=Interventions and lines of interventions +InterventionClassifyBilled=Classify "Billed" +InterventionClassifyUnBilled=Classify "Unbilled" +InterventionClassifyDone=Classify "Done" +StatusInterInvoiced=Billed +SendInterventionRef=Submission of intervention %s +SendInterventionByMail=Send intervention by email +InterventionCreatedInDolibarr=Intervention %s created +InterventionValidatedInDolibarr=Intervention %s validated +InterventionModifiedInDolibarr=Intervention %s modified +InterventionClassifiedBilledInDolibarr=Intervention %s set as billed +InterventionClassifiedUnbilledInDolibarr=Intervention %s set as unbilled +InterventionSentByEMail=Intervention %s sent by email +InterventionDeletedInDolibarr=Intervention %s deleted +InterventionsArea=Interventions area +DraftFichinter=Draft interventions +LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process +TypeContact_fichinter_external_CUSTOMER=Following-up customer contact +PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinterDetails=interventions generated from orders +UseServicesDurationOnFichinter=Use services duration for interventions generated from orders +UseDurationOnFichinter=Hides the duration field for intervention records +UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records +InterventionStatistics=Statistics of interventions +NbOfinterventions=No. of intervention cards +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation) +AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them. +InterId=Intervention id +InterRef=Intervention ref. +InterDateCreation=Date creation intervention +InterDuration=Duration intervention +InterStatus=Status intervention +InterNote=Note intervention +InterLine=Line of intervention +InterLineId=Line id intervention +InterLineDate=Line date intervention +InterLineDuration=Line duration intervention +InterLineDesc=Line description intervention +RepeatableIntervention=Template of intervention +ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template +ConfirmReopenIntervention=Are you sure you want to open back the intervention %s? +GenerateInter=Generate intervention +FichinterNoContractLinked=Intervention %s has been created without a linked contract. +ErrorFicheinterCompanyDoesNotExist=Company does not exist. Intervention has not been created. diff --git a/htdocs/langs/ms_MY/intracommreport.lang b/htdocs/langs/ms_MY/intracommreport.lang new file mode 100644 index 00000000000..93c46f112bb --- /dev/null +++ b/htdocs/langs/ms_MY/intracommreport.lang @@ -0,0 +1,40 @@ +Module68000Name = Intracomm report +Module68000Desc = Intracomm report management (Support for French DEB/DES format) +IntracommReportSetup = Intracommreport module setup +IntracommReportAbout = About intracommreport + +# Setup +INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) +INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur +INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur +INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions +INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions +INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" + +INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant + +# Menu +MenuIntracommReport=Intracomm report +MenuIntracommReportNew=New declaration +MenuIntracommReportList=List + +# View +NewDeclaration=New declaration +Declaration=Declaration +AnalysisPeriod=Analysis period +TypeOfDeclaration=Type of declaration +DEB=Goods exchange declaration (DEB) +DES=Services exchange declaration (DES) + +# Export page +IntracommReportTitle=Preparation of an XML file in ProDouane format + +# List +IntracommReportList=List of generated declarations +IntracommReportNumber=Numero of declaration +IntracommReportPeriod=Period of analysis +IntracommReportTypeDeclaration=Type of declaration +IntracommReportDownload=download XML file + +# Invoice +IntracommReportTransportMode=Transport mode diff --git a/htdocs/langs/ms_MY/knowledgemanagement.lang b/htdocs/langs/ms_MY/knowledgemanagement.lang new file mode 100644 index 00000000000..bcdf9740cdd --- /dev/null +++ b/htdocs/langs/ms_MY/knowledgemanagement.lang @@ -0,0 +1,54 @@ +# Copyright (C) 2021 SuperAdmin +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Generic +# + +# Module label 'ModuleKnowledgeManagementName' +ModuleKnowledgeManagementName = Knowledge Management System +# Module description 'ModuleKnowledgeManagementDesc' +ModuleKnowledgeManagementDesc=Manage a Knowledge Management (KM) or Help-Desk base + +# +# Admin page +# +KnowledgeManagementSetup = Knowledge Management System setup +Settings = Settings +KnowledgeManagementSetupPage = Knowledge Management System setup page + + +# +# About page +# +About = About +KnowledgeManagementAbout = About Knowledge Management +KnowledgeManagementAboutPage = Knowledge Management about page + +KnowledgeManagementArea = Knowledge Management +MenuKnowledgeRecord = Knowledge base +ListKnowledgeRecord = List of articles +NewKnowledgeRecord = New article +ValidateReply = Validate solution +KnowledgeRecords = Articles +KnowledgeRecord = Article +KnowledgeRecordExtraFields = Extrafields for Article +GroupOfTicket=Group of tickets +YouCanLinkArticleToATicketCategory=You can link an article to a ticket group (so the article will be suggested during qualification of new tickets) +SuggestedForTicketsInGroup=Suggested for tickets when group is + +SetObsolete=Set as obsolete +ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? +ConfirmReopenKM=Do you want to restore this article to status "Validated" ? diff --git a/htdocs/langs/ms_MY/languages.lang b/htdocs/langs/ms_MY/languages.lang new file mode 100644 index 00000000000..c246ac8bc77 --- /dev/null +++ b/htdocs/langs/ms_MY/languages.lang @@ -0,0 +1,123 @@ +# Dolibarr language file - Source file is en_US - languages +Language_am_ET=Ethiopian +Language_ar_AR=Arabic +Language_ar_DZ=Arabic (Algeria) +Language_ar_EG=Arabic (Egypt) +Language_ar_JO=Arabic (Jordania) +Language_ar_MA=Arabic (Moroco) +Language_ar_SA=Arabic +Language_ar_TN=Arabic (Tunisia) +Language_ar_IQ=Arabic (Iraq) +Language_as_IN=Assamese +Language_az_AZ=Azerbaijani +Language_bn_BD=Bengali +Language_bn_IN=Bengali (India) +Language_bg_BG=Bulgarian +Language_bo_CN=Tibetan +Language_bs_BA=Bosnian +Language_ca_ES=Catalan +Language_cs_CZ=Czech +Language_cy_GB=Welsh +Language_da_DA=Danish +Language_da_DK=Danish +Language_de_DE=German +Language_de_AT=German (Austria) +Language_de_CH=German (Switzerland) +Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) +Language_en_AE=English (United Arab Emirates) +Language_en_AU=English (Australia) +Language_en_CA=English (Canada) +Language_en_GB=English (United Kingdom) +Language_en_IN=English (India) +Language_en_NZ=English (New Zealand) +Language_en_SA=English (Saudi Arabia) +Language_en_SG=English (Singapore) +Language_en_US=English (United States) +Language_en_ZA=English (South Africa) +Language_es_ES=Spanish +Language_es_AR=Spanish (Argentina) +Language_es_BO=Spanish (Bolivia) +Language_es_CL=Spanish (Chile) +Language_es_CO=Spanish (Colombia) +Language_es_CR=Spanish (Costa Rica) +Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) +Language_es_GT=Spanish (Guatemala) +Language_es_HN=Spanish (Honduras) +Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) +Language_es_PY=Spanish (Paraguay) +Language_es_PE=Spanish (Peru) +Language_es_PR=Spanish (Puerto Rico) +Language_es_US=Spanish (USA) +Language_es_UY=Spanish (Uruguay) +Language_es_GT=Spanish (Guatemala) +Language_es_VE=Spanish (Venezuela) +Language_et_EE=Estonian +Language_eu_ES=Basque +Language_fa_IR=Persian +Language_fi_FI=Finnish +Language_fr_BE=French (Belgium) +Language_fr_CA=French (Canada) +Language_fr_CH=French (Switzerland) +Language_fr_CI=French (Cost Ivory) +Language_fr_CM=French (Cameroun) +Language_fr_FR=French +Language_fr_GA=French (Gabon) +Language_fr_NC=French (New Caledonia) +Language_fr_SN=French (Senegal) +Language_fy_NL=Frisian +Language_gl_ES=Galician +Language_he_IL=Hebrew +Language_hi_IN=Hindi (India) +Language_hr_HR=Croatian +Language_hu_HU=Hungarian +Language_id_ID=Indonesian +Language_is_IS=Icelandic +Language_it_IT=Italian +Language_it_CH=Italian (Switzerland) +Language_ja_JP=Japanese +Language_ka_GE=Georgian +Language_kk_KZ=Kazakh +Language_km_KH=Khmer +Language_kn_IN=Kannada +Language_ko_KR=Korean +Language_lo_LA=Lao +Language_lt_LT=Lithuanian +Language_lv_LV=Latvian +Language_mk_MK=Macedonian +Language_mn_MN=Mongolian +Language_my_MM=Burmese +Language_nb_NO=Norwegian (Bokmål) +Language_ne_NP=Nepali +Language_nl_BE=Dutch (Belgium) +Language_nl_NL=Dutch +Language_pl_PL=Polish +Language_pt_AO=Portuguese (Angola) +Language_pt_MZ=Portuguese (Mozambique) +Language_pt_BR=Portuguese (Brazil) +Language_pt_PT=Portuguese +Language_ro_MD=Romanian (Moldavia) +Language_ro_RO=Romanian +Language_ru_RU=Russian +Language_ru_UA=Russian (Ukraine) +Language_ta_IN=Tamil +Language_tg_TJ=Tajik +Language_tr_TR=Turkish +Language_sl_SI=Slovenian +Language_sv_SV=Swedish +Language_sv_SE=Swedish +Language_sq_AL=Albanian +Language_sk_SK=Slovakian +Language_sr_RS=Serbian +Language_sw_SW=Kiswahili +Language_th_TH=Thai +Language_uk_UA=Ukrainian +Language_ur_PK=Urdu +Language_uz_UZ=Uzbek +Language_vi_VN=Vietnamese +Language_zh_CN=Chinese +Language_zh_TW=Chinese (Traditional) +Language_zh_HK=Chinese (Hong Kong) +Language_bh_MY=Malay diff --git a/htdocs/langs/ms_MY/ldap.lang b/htdocs/langs/ms_MY/ldap.lang new file mode 100644 index 00000000000..62f90d795a4 --- /dev/null +++ b/htdocs/langs/ms_MY/ldap.lang @@ -0,0 +1,31 @@ +# Dolibarr language file - Source file is en_US - ldap +YouMustChangePassNextLogon=Password for user %s on the domain %s must be changed. +UserMustChangePassNextLogon=User must change password on the domain %s +LDAPInformationsForThisContact=Information in LDAP database for this contact +LDAPInformationsForThisUser=Information in LDAP database for this user +LDAPInformationsForThisGroup=Information in LDAP database for this group +LDAPInformationsForThisMember=Information in LDAP database for this member +LDAPInformationsForThisMemberType=Information in LDAP database for this member type +LDAPAttributes=LDAP attributes +LDAPCard=LDAP card +LDAPRecordNotFound=Record not found in LDAP database +LDAPUsers=Users in LDAP database +LDAPFieldStatus=Status +LDAPFieldFirstSubscriptionDate=First subscription date +LDAPFieldFirstSubscriptionAmount=First subscription amount +LDAPFieldLastSubscriptionDate=Latest subscription date +LDAPFieldLastSubscriptionAmount=Latest subscription amount +LDAPFieldSkype=Skype id +LDAPFieldSkypeExample=Example: skypeName +UserSynchronized=User synchronized +GroupSynchronized=Group synchronized +MemberSynchronized=Member synchronized +MemberTypeSynchronized=Member type synchronized +ContactSynchronized=Contact synchronized +ForceSynchronize=Force synchronizing Dolibarr -> LDAP +ErrorFailedToReadLDAP=Failed to read LDAP database. Check LDAP module setup and database accessibility. +PasswordOfUserInLDAP=Password of user in LDAP +LDAPPasswordHashType=Password hash type +LDAPPasswordHashTypeExample=Type of password hash used on the server +SupportedForLDAPExportScriptOnly=Only supported by an ldap export script +SupportedForLDAPImportScriptOnly=Only supported by an ldap import script diff --git a/htdocs/langs/ms_MY/link.lang b/htdocs/langs/ms_MY/link.lang new file mode 100644 index 00000000000..1ffcd41a18b --- /dev/null +++ b/htdocs/langs/ms_MY/link.lang @@ -0,0 +1,11 @@ +# Dolibarr language file - Source file is en_US - languages +LinkANewFile=Link a new file/document +LinkedFiles=Linked files and documents +NoLinkFound=No registered links +LinkComplete=The file has been linked successfully +ErrorFileNotLinked=The file could not be linked +LinkRemoved=The link %s has been removed +ErrorFailedToDeleteLink= Failed to remove link '%s' +ErrorFailedToUpdateLink= Failed to update link '%s' +URLToLink=URL to link +OverwriteIfExists=Overwrite file if exists diff --git a/htdocs/langs/ms_MY/loan.lang b/htdocs/langs/ms_MY/loan.lang new file mode 100644 index 00000000000..d271ed0c140 --- /dev/null +++ b/htdocs/langs/ms_MY/loan.lang @@ -0,0 +1,34 @@ +# Dolibarr language file - Source file is en_US - loan +Loan=Loan +Loans=Loans +NewLoan=New Loan +ShowLoan=Show Loan +PaymentLoan=Loan payment +LoanPayment=Loan payment +ShowLoanPayment=Show Loan Payment +LoanCapital=Capital +Insurance=Insurance +Interest=Interest +Nbterms=Number of terms +Term=Term +LoanAccountancyCapitalCode=Accounting account capital +LoanAccountancyInsuranceCode=Accounting account insurance +LoanAccountancyInterestCode=Accounting account interest +ConfirmDeleteLoan=Confirm deleting this loan +LoanDeleted=Loan Deleted Successfully +ConfirmPayLoan=Confirm classify paid this loan +LoanPaid=Loan Paid +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan +FinancialCommitment=Financial commitment +InterestAmount=Interest +CapitalRemain=Capital remain +TermPaidAllreadyPaid = This term is allready paid +CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule +# Admin +ConfigLoan=Configuration of the module loan +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Edit financial commitment diff --git a/htdocs/langs/ms_MY/mailmanspip.lang b/htdocs/langs/ms_MY/mailmanspip.lang new file mode 100644 index 00000000000..bab4b3576b4 --- /dev/null +++ b/htdocs/langs/ms_MY/mailmanspip.lang @@ -0,0 +1,27 @@ +# Dolibarr language file - Source file is en_US - mailmanspip +MailmanSpipSetup=Mailman and SPIP module Setup +MailmanTitle=Mailman mailing list system +TestSubscribe=To test subscription to Mailman lists +TestUnSubscribe=To test unsubscribe from Mailman lists +MailmanCreationSuccess=Subscription test was executed successfully +MailmanDeletionSuccess=Unsubscription test was executed successfully +SynchroMailManEnabled=A Mailman update will be performed +SynchroSpipEnabled=A Spip update will be performed +DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions +DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions +DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) +SPIPTitle=SPIP Content Management System +DescADHERENT_SPIP_SERVEUR=SPIP Server +DescADHERENT_SPIP_DB=SPIP database name +DescADHERENT_SPIP_USER=SPIP database login +DescADHERENT_SPIP_PASS=SPIP database password +AddIntoSpip=Add into SPIP +AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? +AddIntoSpipError=Failed to add the user in SPIP +DeleteIntoSpip=Remove from SPIP +DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? +DeleteIntoSpipError=Failed to suppress the user from SPIP +SPIPConnectionFailed=Failed to connect to SPIP +SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database +SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database diff --git a/htdocs/langs/ms_MY/mails.lang b/htdocs/langs/ms_MY/mails.lang new file mode 100644 index 00000000000..afb4edb1fcc --- /dev/null +++ b/htdocs/langs/ms_MY/mails.lang @@ -0,0 +1,181 @@ +# Dolibarr language file - Source file is en_US - mails +Mailing=EMailing +EMailing=EMailing +EMailings=EMailings +AllEMailings=All eMailings +MailCard=EMailing card +MailRecipients=Recipients +MailRecipient=Recipient +MailTitle=Description +MailFrom=Sender +MailErrorsTo=Errors to +MailReply=Reply to +MailTo=Receiver(s) +MailToUsers=To user(s) +MailCC=Copy to +MailToCCUsers=Copy to users(s) +MailCCC=Cached copy to +MailTopic=Email subject +MailText=Message +MailFile=Attached files +MailMessage=Email body +SubjectNotIn=Not in Subject +BodyNotIn=Not in Body +ShowEMailing=Show emailing +ListOfEMailings=List of emailings +NewMailing=New emailing +EditMailing=Edit emailing +ResetMailing=Resend emailing +DeleteMailing=Delete emailing +DeleteAMailing=Delete an emailing +PreviewMailing=Preview emailing +CreateMailing=Create emailing +TestMailing=Test email +ValidMailing=Valid emailing +MailingStatusDraft=Draft +MailingStatusValidated=Validated +MailingStatusSent=Sent +MailingStatusSentPartialy=Sent partially +MailingStatusSentCompletely=Sent completely +MailingStatusError=Error +MailingStatusNotSent=Not sent +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery +MailingSuccessfullyValidated=EMailing successfully validated +MailUnsubcribe=Unsubscribe +MailingStatusNotContact=Don't contact anymore +MailingStatusReadAndUnsubscribe=Read and unsubscribe +ErrorMailRecipientIsEmpty=Email recipient is empty +WarningNoEMailsAdded=No new Email to add to recipient's list. +ConfirmValidMailing=Are you sure you want to validate this emailing? +ConfirmResetMailing=Warning, by re-initializing emailing %s, you will allow the re-sending this email in a bulk mailing. Are you sure you want to do this? +ConfirmDeleteMailing=Are you sure you want to delete this emailing? +NbOfUniqueEMails=No. of unique emails +NbOfEMails=No. of EMails +TotalNbOfDistinctRecipients=Number of distinct recipients +NoTargetYet=No recipients defined yet (Go on tab 'Recipients') +NoRecipientEmail=No recipient email for %s +RemoveRecipient=Remove recipient +YouCanAddYourOwnPredefindedListHere=To create your email selector module, see htdocs/core/modules/mailings/README. +EMailTestSubstitutionReplacedByGenericValues=When using test mode, substitutions variables are replaced by generic values +MailingAddFile=Attach this file +NoAttachedFiles=No attached files +BadEMail=Bad value for Email +EMailNotDefined=Email not defined +ConfirmCloneEMailing=Are you sure you want to clone this emailing? +CloneContent=Clone message +CloneReceivers=Cloner recipients +DateLastSend=Date of latest sending +DateSending=Date sending +SentTo=Sent to %s +MailingStatusRead=Read +YourMailUnsubcribeOK=The email %s is correctly unsubscribe from mailing list +ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature +EMailSentToNRecipients=Email sent to %s recipients. +EMailSentForNElements=Email sent for %s elements. +XTargetsAdded=%s recipients added into target list +OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version). +AllRecipientSelected=The recipients of the %s record selected (if their email is known). +GroupEmails=Group emails +OneEmailPerRecipient=One email per recipient (by default, one email per record selected) +WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them. +ResultOfMailSending=Result of mass Email sending +NbSelected=Number selected +NbIgnored=Number ignored +NbSent=Number sent +SentXXXmessages=%s message(s) sent. +ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? +MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters +MailingModuleDescContactsByCompanyCategory=Contacts by third-party category +MailingModuleDescContactsByCategory=Contacts by categories +MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) +SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. +EmailCollectorFilterDesc=All filters must match to have an email being collected + +# Libelle des modules de liste de destinataires mailing +LineInFile=Line %s in file +RecipientSelectionModules=Defined requests for recipient's selection +MailSelectedRecipients=Selected recipients +MailingArea=EMailings area +LastMailings=Latest %s emailings +TargetsStatistics=Targets statistics +NbOfCompaniesContacts=Unique contacts/addresses +MailNoChangePossible=Recipients for validated emailing can't be changed +SearchAMailing=Search mailing +SendMailing=Send emailing +SentBy=Sent by +MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: +MailingNeedCommand2=You can however send them online by adding parameter MAILING_LIMIT_SENDBYWEB with value of max number of emails you want to send by session. For this, go on Home - Setup - Other. +ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ? +LimitSendingEmailing=Note: Sending of emailings from web interface is done in several times for security and timeout reasons, %s recipients at a time for each sending session. +TargetsReset=Clear list +ToClearAllRecipientsClickHere=Click here to clear the recipient list for this emailing +ToAddRecipientsChooseHere=Add recipients by choosing from the lists +NbOfEMailingsReceived=Mass emailings received +NbOfEMailingsSend=Mass emailings sent +IdRecord=ID record +DeliveryReceipt=Delivery Ack. +YouCanUseCommaSeparatorForSeveralRecipients=You can use the comma separator to specify several recipients. +TagCheckMail=Track mail opening +TagUnsubscribe=Unsubscribe link +TagSignature=Signature of sending user +EMailRecipient=Recipient Email +TagMailtoEmail=Recipient Email (including html "mailto:" link) +NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. +# Module Notifications +Notifications=Notifications +NotificationsAuto=Notifications Auto. +NoNotificationsWillBeSent=No automatic email notifications are planned for this event type and company +ANotificationsWillBeSent=1 automatic notification will be sent by email +SomeNotificationsWillBeSent=%s automatic notifications will be sent by email +AddNewNotification=Subscribe to a new automatic email notification (target/event) +ListOfActiveNotifications=List of all active subscriptions (targets/events) for automatic email notification +ListOfNotificationsDone=List of all automatic email notifications sent +MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. +MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. +MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s. +YouCanAlsoUseSupervisorKeyword=You can also add the keyword __SUPERVISOREMAIL__ to have email being sent to the supervisor of user (works only if an email is defined for this supervisor) +NbOfTargetedContacts=Current number of targeted contact emails +UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other +UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other +MailAdvTargetRecipients=Recipients (advanced selection) +AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target +AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima%% will target all jean, joe, start with jim but not jimo and not everything that starts with jima +AdvTgtSearchIntHelp=Use interval to select int or float value +AdvTgtMinVal=Minimum value +AdvTgtMaxVal=Maximum value +AdvTgtSearchDtHelp=Use interval to select date value +AdvTgtStartDt=Start dt. +AdvTgtEndDt=End dt. +AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third-party email or just contact email +AdvTgtTypeOfIncude=Type of targeted email +AdvTgtContactHelp=Use only if you target contact into "Type of targeted email" +AddAll=Add all +RemoveAll=Remove all +ItemsCount=Item(s) +AdvTgtNameTemplate=Filter name +AdvTgtAddContact=Add emails according to criteria +AdvTgtLoadFilter=Load filter +AdvTgtDeleteFilter=Delete filter +AdvTgtSaveFilter=Save filter +AdvTgtCreateFilter=Create filter +AdvTgtOrCreateNewFilter=Name of new filter +NoContactWithCategoryFound=No category found linked to some contacts/addresses +NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties +OutGoingEmailSetup=Outgoing emails +InGoingEmailSetup=Incoming emails +OutGoingEmailSetupForEmailing=Outgoing emails (for module %s) +DefaultOutgoingEmailSetup=Same configuration than the global Outgoing email setup +Information=Information +ContactsWithThirdpartyFilter=Contacts with third-party filter +Unanswered=Unanswered +Answered=Answered +IsNotAnAnswer=Is not answer (initial email) +IsAnAnswer=Is an answer of an initial email +RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact +DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/ms_MY/main.lang b/htdocs/langs/ms_MY/main.lang new file mode 100644 index 00000000000..a8768f41cbd --- /dev/null +++ b/htdocs/langs/ms_MY/main.lang @@ -0,0 +1,1182 @@ +# Dolibarr language file - Source file is en_US - main +DIRECTION=ltr +# Note for Chinese: +# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese +# To read Chinese pdf with Linux: sudo apt-get install poppler-data +FONTFORPDF=helvetica +FONTSIZEFORPDF=10 +SeparatorDecimal=. +SeparatorThousand=, +FormatDateShort=%m/%d/%Y +FormatDateShortInput=%m/%d/%Y +FormatDateShortJava=MM/dd/yyyy +FormatDateShortJavaInput=MM/dd/yyyy +FormatDateShortJQuery=mm/dd/yy +FormatDateShortJQueryInput=mm/dd/yy +FormatHourShortJQuery=HH:MI +FormatHourShort=%I:%M %p +FormatHourShortDuration=%H:%M +FormatDateTextShort=%b %d, %Y +FormatDateText=%B %d, %Y +FormatDateHourShort=%m/%d/%Y %I:%M %p +FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourTextShort=%b %d, %Y, %I:%M %p +FormatDateHourText=%B %d, %Y, %I:%M %p +DatabaseConnection=Database connection +NoTemplateDefined=No template available for this email type +AvailableVariables=Available substitution variables +NoTranslation=No translation +Translation=Translation +CurrentTimeZone=TimeZone PHP (server) +EmptySearchString=Enter non empty search criterias +EnterADateCriteria=Enter a date criteria +NoRecordFound=No record found +NoRecordDeleted=No record deleted +NotEnoughDataYet=Not enough data +NoError=No error +Error=Error +Errors=Errors +ErrorFieldRequired=Field '%s' is required +ErrorFieldFormat=Field '%s' has a bad value +ErrorFileDoesNotExists=File %s does not exist +ErrorFailedToOpenFile=Failed to open file %s +ErrorCanNotCreateDir=Cannot create dir %s +ErrorCanNotReadDir=Cannot read dir %s +ErrorConstantNotDefined=Parameter %s not defined +ErrorUnknown=Unknown error +ErrorSQL=SQL Error +ErrorLogoFileNotFound=Logo file '%s' was not found +ErrorGoToGlobalSetup=Go to 'Company/Organization' setup to fix this +ErrorGoToModuleSetup=Go to Module setup to fix this +ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) +ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. +ErrorInternalErrorDetected=Error detected +ErrorWrongHostParameter=Wrong host parameter +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again. +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record. +ErrorWrongValue=Wrong value +ErrorWrongValueForParameterX=Wrong value for parameter %s +ErrorNoRequestInError=No request in error +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later. +ErrorDuplicateField=Duplicate value in a unique field +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back. +ErrorConfigParameterNotDefined=Parameter %s is not defined in the Dolibarr config file conf.php. +ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. +ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. +ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. +ErrorFailedToSaveFile=Error, failed to save file. +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a existing warehouse +FieldCannotBeNegative=Field "%s" cannot be negative +MaxNbOfRecordPerPage=Max. number of records per page +NotAuthorized=You are not authorized to do that. +SetDate=Set date +SelectDate=Select a date +SeeAlso=See also %s +SeeHere=See here +ClickHere=Click here +Here=Here +Apply=Apply +BackgroundColorByDefault=Default background color +FileRenamed=The file was successfully renamed +FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) uploaded successfully +FilesDeleted=File(s) successfully deleted +FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. +NbOfEntries=No. of entries +GoToWikiHelpPage=Read online help (Internet access needed) +GoToHelpPage=Read help +DedicatedPageAvailable=Dedicated help page related to your current screen +HomePage=Home Page +RecordSaved=Record saved +RecordDeleted=Record deleted +RecordGenerated=Record generated +LevelOfFeature=Level of features +NotDefined=Not defined +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
    This means that the password database is external to Dolibarr, so changing this field may have no effect. +Administrator=Administrator +Undefined=Undefined +PasswordForgotten=Password forgotten? +NoAccount=No account? +SeeAbove=See above +HomeArea=Home +LastConnexion=Last login +PreviousConnexion=Previous login +PreviousValue=Previous value +ConnectedOnMultiCompany=Connected on environment +ConnectedSince=Connected since +AuthenticationMode=Authentication mode +RequestedUrl=Requested URL +DatabaseTypeManager=Database type manager +RequestLastAccessInError=Latest database access request error +ReturnCodeLastAccessInError=Return code for latest database access request error +InformationLastAccessInError=Information for latest database access request error +DolibarrHasDetectedError=Dolibarr has detected a technical error +YouCanSetOptionDolibarrMainProdToZero=You can read log file or set option $dolibarr_main_prod to '0' in your config file to get more information. +InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +MoreInformation=More information +TechnicalInformation=Technical information +TechnicalID=Technical ID +LineID=Line ID +NotePublic=Note (public) +NotePrivate=Note (private) +PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. +DoTest=Test +ToFilter=Filter +NoFilter=No filter +WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +yes=yes +Yes=Yes +no=no +No=No +All=All +Home=Home +Help=Help +OnlineHelp=Online help +PageWiki=Wiki page +MediaBrowser=Media browser +Always=Always +Never=Never +Under=under +Period=Period +PeriodEndDate=End date for period +SelectedPeriod=Selected period +PreviousPeriod=Previous period +Activate=Activate +Activated=Activated +Closed=Closed +Closed2=Closed +NotClosed=Not closed +Enabled=Enabled +Enable=Enable +Deprecated=Deprecated +Disable=Disable +Disabled=Disabled +Add=Add +AddLink=Add link +RemoveLink=Remove link +AddToDraft=Add to draft +Update=Update +Close=Close +CloseAs=Set status to +CloseBox=Remove widget from your dashboard +Confirm=Confirm +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to %s? +Delete=Delete +Remove=Remove +Resiliate=Terminate +Cancel=Cancel +Modify=Modify +Edit=Edit +Validate=Validate +ValidateAndApprove=Validate and Approve +ToValidate=To validate +NotValidated=Not validated +Save=Save +SaveAs=Save As +SaveAndStay=Save and stay +SaveAndNew=Save and new +TestConnection=Test connection +ToClone=Clone +ConfirmCloneAsk=Are you sure you want to clone the object %s? +ConfirmClone=Choose the data you want to clone: +NoCloneOptionsSpecified=No data to clone defined. +Of=of +Go=Go +Run=Run +CopyOf=Copy of +Show=Show +Hide=Hide +ShowCardHere=Show card +Search=Search +SearchOf=Search +SearchMenuShortCut=Ctrl + shift + f +QuickAdd=Quick add +QuickAddMenuShortCut=Ctrl + shift + l +Valid=Valid +Approve=Approve +Disapprove=Disapprove +ReOpen=Re-Open +Upload=Upload +ToLink=Link +Select=Select +SelectAll=Select all +Choose=Choose +Resize=Resize +ResizeOrCrop=Resize or Crop +Recenter=Recenter +Author=Author +User=User +Users=Users +Group=Group +Groups=Groups +UserGroup=User group +UserGroups=User groups +NoUserGroupDefined=No user group defined +Password=Password +PasswordRetype=Retype your password +NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. +Name=Name +NameSlashCompany=Name / Company +Person=Person +Parameter=Parameter +Parameters=Parameters +Value=Value +PersonalValue=Personal value +NewObject=New %s +NewValue=New value +OldValue=Old value %s +CurrentValue=Current value +Code=Code +Type=Type +Language=Language +MultiLanguage=Multi-language +Note=Note +Title=Title +Label=Label +RefOrLabel=Ref. or label +Info=Log +Family=Family +Description=Description +Designation=Description +DescriptionOfLine=Description of line +DateOfLine=Date of line +DurationOfLine=Duration of line +ParentLine=Parent line ID +Model=Doc template +DefaultModel=Default doc template +Action=Event +About=About +Number=Number +NumberByMonth=Total reports by month +AmountByMonth=Amount by month +Numero=Number +Limit=Limit +Limits=Limits +Logout=Logout +NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s +Connection=Login +Setup=Setup +Alert=Alert +MenuWarnings=Alerts +Previous=Previous +Next=Next +Cards=Cards +Card=Card +Now=Now +HourStart=Start hour +Deadline=Deadline +Date=Date +DateAndHour=Date and hour +DateToday=Today's date +DateReference=Reference date +DateStart=Start date +DateEnd=End date +DateCreation=Creation date +DateCreationShort=Creat. date +IPCreation=Creation IP +DateModification=Modification date +DateModificationShort=Modif. date +IPModification=Modification IP +DateLastModification=Latest modification date +DateValidation=Validation date +DateSigning=Signing date +DateClosing=Closing date +DateDue=Due date +DateValue=Value date +DateValueShort=Value date +DateOperation=Operation date +DateOperationShort=Oper. Date +DateLimit=Limit date +DateRequest=Request date +DateProcess=Process date +DateBuild=Report build date +DatePayment=Date of payment +DateApprove=Approving date +DateApprove2=Approving date (second approval) +RegistrationDate=Registration date +UserCreation=Creation user +UserModification=Modification user +UserValidation=Validation user +UserCreationShort=Creat. user +UserModificationShort=Modif. user +UserValidationShort=Valid. user +DurationYear=year +DurationMonth=month +DurationWeek=week +DurationDay=day +DurationYears=years +DurationMonths=months +DurationWeeks=weeks +DurationDays=days +Year=Year +Month=Month +Week=Week +WeekShort=Week +Day=Day +Hour=Hour +Minute=Minute +Second=Second +Years=Years +Months=Months +Days=Days +days=days +Hours=Hours +Minutes=Minutes +Seconds=Seconds +Weeks=Weeks +Today=Today +Yesterday=Yesterday +Tomorrow=Tomorrow +Morning=Morning +Afternoon=Afternoon +Quadri=Quadri +MonthOfDay=Month of the day +DaysOfWeek=Days of week +HourShort=H +MinuteShort=mn +Rate=Rate +CurrencyRate=Currency conversion rate +UseLocalTax=Include tax +Bytes=Bytes +KiloBytes=Kilobytes +MegaBytes=Megabytes +GigaBytes=Gigabytes +TeraBytes=Terabytes +UserAuthor=Created by +UserModif=Updated by +b=b. +Kb=Kb +Mb=Mb +Gb=Gb +Tb=Tb +Cut=Cut +Copy=Copy +Paste=Paste +Default=Default +DefaultValue=Default value +DefaultValues=Default values/filters/sorting +Price=Price +PriceCurrency=Price (currency) +UnitPrice=Unit price +UnitPriceHT=Unit price (excl.) +UnitPriceHTCurrency=Unit price (excl.) (currency) +UnitPriceTTC=Unit price +PriceU=U.P. +PriceUHT=U.P. (net) +PriceUHTCurrency=U.P (net) (currency) +PriceUTTC=U.P. (inc. tax) +Amount=Amount +AmountInvoice=Invoice amount +AmountInvoiced=Amount invoiced +AmountInvoicedHT=Amount invoiced (excl. tax) +AmountInvoicedTTC=Amount invoiced (inc. tax) +AmountPayment=Payment amount +AmountHTShort=Amount (excl.) +AmountTTCShort=Amount (inc. tax) +AmountHT=Amount (excl. tax) +AmountTTC=Amount (inc. tax) +AmountVAT=Amount tax +MulticurrencyAlreadyPaid=Already paid, original currency +MulticurrencyRemainderToPay=Remain to pay, original currency +MulticurrencyPaymentAmount=Payment amount, original currency +MulticurrencyAmountHT=Amount (excl. tax), original currency +MulticurrencyAmountTTC=Amount (inc. of tax), original currency +MulticurrencyAmountVAT=Amount tax, original currency +MulticurrencySubPrice=Amount sub price multi currency +AmountLT1=Amount tax 2 +AmountLT2=Amount tax 3 +AmountLT1ES=Amount RE +AmountLT2ES=Amount IRPF +AmountTotal=Total amount +AmountAverage=Average amount +PriceQtyMinHT=Price quantity min. (excl. tax) +PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) +PercentOfOriginalObject=Percent of original object +AmountOrPercent=Amount or percent +Percentage=Percentage +Total=Total +SubTotal=Subtotal +TotalHTShort=Total (excl.) +TotalHT100Short=Total 100%% (excl.) +TotalHTShortCurrency=Total (excl. in currency) +TotalTTCShort=Total (inc. tax) +TotalHT=Total (excl. tax) +TotalHTforthispage=Total (excl. tax) for this page +Totalforthispage=Total for this page +TotalTTC=Total (inc. tax) +TotalTTCToYourCredit=Total (inc. tax) to your credit +TotalVAT=Total tax +TotalVATIN=Total IGST +TotalLT1=Total tax 2 +TotalLT2=Total tax 3 +TotalLT1ES=Total RE +TotalLT2ES=Total IRPF +TotalLT1IN=Total CGST +TotalLT2IN=Total SGST +HT=Excl. tax +TTC=Inc. tax +INCVATONLY=Inc. VAT +INCT=Inc. all taxes +VAT=Sales tax +VATIN=IGST +VATs=Sales taxes +VATINs=IGST taxes +LT1=Sales tax 2 +LT1Type=Sales tax 2 type +LT2=Sales tax 3 +LT2Type=Sales tax 3 type +LT1ES=RE +LT2ES=IRPF +LT1IN=CGST +LT2IN=SGST +LT1GC=Additionnal cents +VATRate=Tax Rate +RateOfTaxN=Rate of tax %s +VATCode=Tax Rate code +VATNPR=Tax Rate NPR +DefaultTaxRate=Default tax rate +Average=Average +Sum=Sum +Delta=Delta +StatusToPay=To pay +RemainToPay=Remain to pay +Module=Module/Application +Modules=Modules/Applications +Option=Option +Filters=Filters +List=List +FullList=Full list +FullConversation=Full conversation +Statistics=Statistics +OtherStatistics=Other statistics +Status=Status +Favorite=Favorite +ShortInfo=Info. +Ref=Ref. +ExternalRef=Ref. extern +RefSupplier=Ref. vendor +RefPayment=Ref. payment +CommercialProposalsShort=Commercial proposals +Comment=Comment +Comments=Comments +ActionsToDo=Events to do +ActionsToDoShort=To do +ActionsDoneShort=Done +ActionNotApplicable=Not applicable +ActionRunningNotStarted=To start +ActionRunningShort=In progress +ActionDoneShort=Finished +ActionUncomplete=Incomplete +LatestLinkedEvents=Latest %s linked events +CompanyFoundation=Company/Organization +Accountant=Accountant +ContactsForCompany=Contacts for this third party +ContactsAddressesForCompany=Contacts/addresses for this third party +AddressesForCompany=Addresses for this third party +ActionsOnCompany=Events for this third party +ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract +ActionsOnMember=Events about this member +ActionsOnProduct=Events about this product +NActionsLate=%s late +ToDo=To do +Completed=Completed +Running=In progress +RequestAlreadyDone=Request already recorded +Filter=Filter +FilterOnInto=Search criteria '%s' into fields %s +RemoveFilter=Remove filter +ChartGenerated=Chart generated +ChartNotGenerated=Chart not generated +GeneratedOn=Build on %s +Generate=Generate +Duration=Duration +TotalDuration=Total duration +Summary=Summary +DolibarrStateBoard=Database Statistics +DolibarrWorkBoard=Open Items +NoOpenedElementToProcess=No open element to process +Available=Available +NotYetAvailable=Not yet available +NotAvailable=Not available +Categories=Tags/categories +Category=Tag/category +By=By +From=From +FromDate=From +FromLocation=From +to=to +To=to +ToDate=to +ToLocation=to +at=at +and=and +or=or +Other=Other +Others=Others +OtherInformations=Other information +Workflow=Workflow +Quantity=Quantity +Qty=Qty +ChangedBy=Changed by +ApprovedBy=Approved by +ApprovedBy2=Approved by (second approval) +Approved=Approved +Refused=Refused +ReCalculate=Recalculate +ResultKo=Failure +Reporting=Reporting +Reportings=Reporting +Draft=Draft +Drafts=Drafts +StatusInterInvoiced=Invoiced +Validated=Validated +ValidatedToProduce=Validated (To produce) +Opened=Open +OpenAll=Open (All) +ClosedAll=Closed (All) +New=New +Discount=Discount +Unknown=Unknown +General=General +Size=Size +OriginalSize=Original size +Received=Received +Paid=Paid +Topic=Subject +ByCompanies=By third parties +ByUsers=By user +Links=Links +Link=Link +Rejects=Rejects +Preview=Preview +NextStep=Next step +Datas=Data +None=None +NoneF=None +NoneOrSeveral=None or several +Late=Late +LateDesc=An item is defined as Delayed as per the system configuration in menu Home - Setup - Alerts. +NoItemLate=No late item +Photo=Picture +Photos=Pictures +AddPhoto=Add picture +DeletePicture=Picture delete +ConfirmDeletePicture=Confirm picture deletion? +Login=Login +LoginEmail=Login (email) +LoginOrEmail=Login or Email +CurrentLogin=Current login +EnterLoginDetail=Enter login details +January=January +February=February +March=March +April=April +May=May +June=June +July=July +August=August +September=September +October=October +November=November +December=December +Month01=January +Month02=February +Month03=March +Month04=April +Month05=May +Month06=June +Month07=July +Month08=August +Month09=September +Month10=October +Month11=November +Month12=December +MonthShort01=Jan +MonthShort02=Feb +MonthShort03=Mar +MonthShort04=Apr +MonthShort05=May +MonthShort06=Jun +MonthShort07=Jul +MonthShort08=Aug +MonthShort09=Sep +MonthShort10=Oct +MonthShort11=Nov +MonthShort12=Dec +MonthVeryShort01=J +MonthVeryShort02=F +MonthVeryShort03=M +MonthVeryShort04=A +MonthVeryShort05=M +MonthVeryShort06=J +MonthVeryShort07=J +MonthVeryShort08=A +MonthVeryShort09=S +MonthVeryShort10=O +MonthVeryShort11=N +MonthVeryShort12=D +AttachedFiles=Attached files and documents +JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found +DateFormatYYYYMM=YYYY-MM +DateFormatYYYYMMDD=YYYY-MM-DD +DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS +ReportName=Report name +ReportPeriod=Report period +ReportDescription=Description +Report=Report +Keyword=Keyword +Origin=Origin +Legend=Legend +Fill=Fill +Reset=Reset +File=File +Files=Files +NotAllowed=Not allowed +ReadPermissionNotAllowed=Read permission not allowed +AmountInCurrency=Amount in %s currency +Example=Example +Examples=Examples +NoExample=No example +FindBug=Report a bug +NbOfThirdParties=Number of third parties +NbOfLines=Number of lines +NbOfObjects=Number of objects +NbOfObjectReferers=Number of related items +Referers=Related items +TotalQuantity=Total quantity +DateFromTo=From %s to %s +DateFrom=From %s +DateUntil=Until %s +Check=Check +Uncheck=Uncheck +Internal=Internal +External=External +Internals=Internal +Externals=External +Warning=Warning +Warnings=Warnings +BuildDoc=Build Doc +Entity=Environment +Entities=Entities +CustomerPreview=Customer preview +SupplierPreview=Vendor preview +ShowCustomerPreview=Show customer preview +ShowSupplierPreview=Show vendor preview +RefCustomer=Ref. customer +InternalRef=Internal ref. +Currency=Currency +InfoAdmin=Information for administrators +Undo=Undo +Redo=Redo +ExpandAll=Expand all +UndoExpandAll=Undo expand +SeeAll=See all +Reason=Reason +FeatureNotYetSupported=Feature not yet supported +CloseWindow=Close window +Response=Response +Priority=Priority +SendByMail=Send by email +MailSentBy=Email sent by +NotSent=Not sent +TextUsedInTheMessageBody=Email body +SendAcknowledgementByMail=Send confirmation email +SendMail=Send email +Email=Email +NoEMail=No email +AlreadyRead=Already read +NotRead=Unread +NoMobilePhone=No mobile phone +Owner=Owner +FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. +Refresh=Refresh +BackToList=Back to list +BackToTree=Back to tree +GoBack=Go back +CanBeModifiedIfOk=Can be modified if valid +CanBeModifiedIfKo=Can be modified if not valid +ValueIsValid=Value is valid +ValueIsNotValid=Value is not valid +RecordCreatedSuccessfully=Record created successfully +RecordModifiedSuccessfully=Record modified successfully +RecordsModified=%s record(s) modified +RecordsDeleted=%s record(s) deleted +RecordsGenerated=%s record(s) generated +AutomaticCode=Automatic code +FeatureDisabled=Feature disabled +MoveBox=Move widget +Offered=Offered +NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user +SessionName=Session name +Method=Method +Receive=Receive +CompleteOrNoMoreReceptionExpected=Complete or nothing more expected +ExpectedValue=Expected Value +ExpectedQty=Expected Qty +PartialWoman=Partial +TotalWoman=Total +NeverReceived=Never received +Canceled=Canceled +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup +Color=Color +Documents=Linked files +Documents2=Documents +UploadDisabled=Upload disabled +MenuAccountancy=Accounting +MenuECM=Documents +MenuAWStats=AWStats +MenuMembers=Members +MenuAgendaGoogle=Google agenda +MenuTaxesAndSpecialExpenses=Taxes | Special expenses +ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb +ThisLimitIsDefinedInSetupAt=Dolibarr limit (Menu %s): %s Kb, PHP limit (Param %s): %s Kb +NoFileFound=No documents uploaded +CurrentUserLanguage=Current language +CurrentTheme=Current theme +CurrentMenuManager=Current menu manager +Browser=Browser +Layout=Layout +Screen=Screen +DisabledModules=Disabled modules +For=For +ForCustomer=For customer +Signature=Signature +DateOfSignature=Date of signature +HidePassword=Show command with password hidden +UnHidePassword=Show real command with clear password +Root=Root +RootOfMedias=Root of public medias (/medias) +Informations=Information +Page=Page +Notes=Notes +AddNewLine=Add new line +AddFile=Add file +FreeZone=Free-text product +FreeLineOfType=Free-text item, type: +CloneMainAttributes=Clone object with its main attributes +ReGeneratePDF=Re-generate PDF +PDFMerge=PDF Merge +Merge=Merge +DocumentModelStandardPDF=Standard PDF template +PrintContentArea=Show page to print main content area +MenuManager=Menu manager +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode: only login %s is allowed to use the application in this mode. +CoreErrorTitle=System error +CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CreditCard=Credit card +ValidatePayment=Validate payment +CreditOrDebitCard=Credit or debit card +FieldsWithAreMandatory=Fields with %s are mandatory +FieldsWithIsForPublic=Fields with %s are shown in public list of members. If you don't want this, uncheck the "public" box. +AccordingToGeoIPDatabase=(according to GeoIP conversion) +Line=Line +NotSupported=Not supported +RequiredField=Required field +Result=Result +ToTest=Test +ValidateBefore=Item must be validated before using this feature +Visibility=Visibility +Totalizable=Totalizable +TotalizableDesc=This field is totalizable in list +Private=Private +Hidden=Hidden +Resources=Resources +Source=Source +Prefix=Prefix +Before=Before +After=After +IPAddress=IP address +Frequency=Frequency +IM=Instant messaging +NewAttribute=New attribute +AttributeCode=Attribute code +URLPhoto=URL of photo/logo +SetLinkToAnotherThirdParty=Link to another third party +LinkTo=Link to +LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition +LinkToOrder=Link to order +LinkToInvoice=Link to invoice +LinkToTemplateInvoice=Link to template invoice +LinkToSupplierOrder=Link to purchase order +LinkToSupplierProposal=Link to vendor proposal +LinkToSupplierInvoice=Link to vendor invoice +LinkToContract=Link to contract +LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket +LinkToMo=Link to Mo +CreateDraft=Create draft +SetToDraft=Back to draft +ClickToEdit=Click to edit +ClickToRefresh=Click to refresh +EditWithEditor=Edit with CKEditor +EditWithTextEditor=Edit with Text editor +EditHTMLSource=Edit HTML Source +ObjectDeleted=Object %s deleted +ByCountry=By country +ByTown=By town +ByDate=By date +ByMonthYear=By month/year +ByYear=By year +ByMonth=By month +ByDay=By day +BySalesRepresentative=By sales representative +LinkedToSpecificUsers=Linked to a particular user contact +NoResults=No results +AdminTools=Admin Tools +SystemTools=System tools +ModulesSystemTools=Modules tools +Test=Test +Element=Element +NoPhotoYet=No pictures available yet +Dashboard=Dashboard +MyDashboard=My Dashboard +Deductible=Deductible +from=from +toward=toward +Access=Access +SelectAction=Select action +SelectTargetUser=Select target user/employee +HelpCopyToClipboard=Use Ctrl+C to copy to clipboard +SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") +OriginFileName=Original filename +SetDemandReason=Set source +SetBankAccount=Define Bank Account +AccountCurrency=Account currency +ViewPrivateNote=View notes +XMoreLines=%s line(s) hidden +ShowMoreLines=Show more/less lines +PublicUrl=Public URL +AddBox=Add box +SelectElementAndClick=Select an element and click on %s +PrintFile=Print File %s +ShowTransaction=Show entry on bank account +ShowIntervention=Show intervention +ShowContract=Show contract +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide. +Deny=Deny +Denied=Denied +ListOf=List of %s +ListOfTemplates=List of templates +Gender=Gender +Genderman=Male +Genderwoman=Female +Genderother=Other +ViewList=List view +ViewGantt=Gantt view +ViewKanban=Kanban view +Mandatory=Mandatory +Hello=Hello +GoodBye=GoodBye +Sincerely=Sincerely +ConfirmDeleteObject=Are you sure you want to delete this object? +DeleteLine=Delete line +ConfirmDeleteLine=Are you sure you want to delete this line? +ErrorPDFTkOutputFileNotFound=Error: the file was not generated. Please check that the 'pdftk' command is installed in a directory included in the $PATH environment variable (linux/unix only) or contact your system administrator. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records. +NoRecordSelected=No record selected +MassFilesArea=Area for files built by mass actions +ShowTempMassFilesArea=Show area of files built by mass actions +ConfirmMassDeletion=Bulk Delete confirmation +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record(s)? +RelatedObjects=Related Objects +ClassifyBilled=Classify billed +ClassifyUnbilled=Classify unbilled +Progress=Progress +ProgressShort=Progr. +FrontOffice=Front office +BackOffice=Back office +Submit=Submit +View=View +Export=Export +Exports=Exports +ExportFilteredList=Export filtered list +ExportList=Export list +ExportOptions=Export Options +IncludeDocsAlreadyExported=Include docs already exported +ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable +ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable +AllExportedMovementsWereRecordedAsExported=All exported movements were recorded as exported +NotAllExportedMovementsCouldBeRecordedAsExported=Not all exported movements could be recorded as exported +Miscellaneous=Miscellaneous +Calendar=Calendar +GroupBy=Group by... +ViewFlatList=View flat list +ViewAccountList=View ledger +ViewSubAccountList=View subaccount ledger +RemoveString=Remove string '%s' +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at https://transifex.com/projects/p/dolibarr/ to add your improvements. +DirectDownloadLink=Public download link +PublicDownloadLinkDesc=Only the link is required to download the file +DirectDownloadInternalLink=Private download link +PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file +Download=Download +DownloadDocument=Download document +ActualizeCurrency=Update currency rate +Fiscalyear=Fiscal year +ModuleBuilder=Module and Application Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +WebSite=Website +WebSites=Websites +WebSiteAccounts=Website accounts +ExpenseReport=Expense report +ExpenseReports=Expense reports +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status? +ImportId=Import id +Events=Events +EMailTemplates=Email templates +FileNotShared=File not shared to external public +Project=Project +Projects=Projects +LeadOrProject=Lead | Project +LeadsOrProjects=Leads | Projects +Lead=Lead +Leads=Leads +ListOpenLeads=List open leads +ListOpenProjects=List open projects +NewLeadOrProject=New lead or project +Rights=Permissions +LineNb=Line no. +IncotermLabel=Incoterms +TabLetteringCustomer=Customer lettering +TabLetteringSupplier=Vendor lettering +Monday=Monday +Tuesday=Tuesday +Wednesday=Wednesday +Thursday=Thursday +Friday=Friday +Saturday=Saturday +Sunday=Sunday +MondayMin=Mo +TuesdayMin=Tu +WednesdayMin=We +ThursdayMin=Th +FridayMin=Fr +SaturdayMin=Sa +SundayMin=Su +Day1=Monday +Day2=Tuesday +Day3=Wednesday +Day4=Thursday +Day5=Friday +Day6=Saturday +Day0=Sunday +ShortMonday=M +ShortTuesday=T +ShortWednesday=W +ShortThursday=T +ShortFriday=F +ShortSaturday=S +ShortSunday=S +one=one +two=two +three=three +four=four +five=five +six=six +seven=seven +eight=eight +nine=nine +ten=ten +eleven=eleven +twelve=twelve +thirteen=thirdteen +fourteen=fourteen +fifteen=fifteen +sixteen=sixteen +seventeen=seventeen +eighteen=eighteen +nineteen=nineteen +twenty=twenty +thirty=thirty +forty=forty +fifty=fifty +sixty=sixty +seventy=seventy +eighty=eighty +ninety=ninety +hundred=hundred +thousand=thousand +million=million +billion=billion +trillion=trillion +quadrillion=quadrillion +SelectMailModel=Select an email template +SetRef=Set ref +Select2ResultFoundUseArrows=Some results found. Use arrows to select. +Select2NotFound=No result found +Select2Enter=Enter +Select2MoreCharacter=or more character +Select2MoreCharacters=or more characters +Select2MoreCharactersMore=Search syntax:
    | OR (a|b)
    * Any character (a*b)
    ^ Start with (^ab)
    $ End with (ab$)
    +Select2LoadingMoreResults=Loading more results... +Select2SearchInProgress=Search in progress... +SearchIntoThirdparties=Third parties +SearchIntoContacts=Contacts +SearchIntoMembers=Members +SearchIntoUsers=Users +SearchIntoProductsOrServices=Products or services +SearchIntoBatch=Lots / Serials +SearchIntoProjects=Projects +SearchIntoMO=Manufacturing Orders +SearchIntoTasks=Tasks +SearchIntoCustomerInvoices=Customer invoices +SearchIntoSupplierInvoices=Vendor invoices +SearchIntoCustomerOrders=Sales orders +SearchIntoSupplierOrders=Purchase orders +SearchIntoCustomerProposals=Commercial proposals +SearchIntoSupplierProposals=Vendor proposals +SearchIntoInterventions=Interventions +SearchIntoContracts=Contracts +SearchIntoCustomerShipments=Customer shipments +SearchIntoExpenseReports=Expense reports +SearchIntoLeaves=Leave +SearchIntoTickets=Tickets +SearchIntoCustomerPayments=Customer payments +SearchIntoVendorPayments=Vendor payments +SearchIntoMiscPayments=Miscellaneous payments +CommentLink=Comments +NbComments=Number of comments +CommentPage=Comments space +CommentAdded=Comment added +CommentDeleted=Comment deleted +Everybody=Everybody +PayedBy=Paid by +PayedTo=Paid to +Monthly=Monthly +Quarterly=Quarterly +Annual=Annual +Local=Local +Remote=Remote +LocalAndRemote=Local and Remote +KeyboardShortcut=Keyboard shortcut +AssignedTo=Assigned to +Deletedraft=Delete draft +ConfirmMassDraftDeletion=Draft mass delete confirmation +FileSharedViaALink=File shared with a public link +SelectAThirdPartyFirst=Select a third party first... +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode +Inventory=Inventory +AnalyticCode=Analytic code +TMenuMRP=MRP +ShowCompanyInfos=Show company infos +ShowMoreInfos=Show More Infos +NoFilesUploadedYet=Please upload a document first +SeePrivateNote=See private note +PaymentInformation=Payment information +ValidFrom=Valid from +ValidUntil=Valid until +NoRecordedUsers=No users +ToClose=To close +ToRefuse=To refuse +ToProcess=To process +ToApprove=To approve +GlobalOpenedElemView=Global view +NoArticlesFoundForTheKeyword=No article found for the keyword '%s' +NoArticlesFoundForTheCategory=No article found for the category +ToAcceptRefuse=To accept | refuse +ContactDefault_agenda=Event +ContactDefault_commande=Order +ContactDefault_contrat=Contract +ContactDefault_facture=Invoice +ContactDefault_fichinter=Intervention +ContactDefault_invoice_supplier=Supplier Invoice +ContactDefault_order_supplier=Purchase Order +ContactDefault_project=Project +ContactDefault_project_task=Task +ContactDefault_propal=Proposal +ContactDefault_supplier_proposal=Supplier Proposal +ContactDefault_ticket=Ticket +ContactAddedAutomatically=Contact added from contact thirdparty roles +More=More +ShowDetails=Show details +CustomReports=Custom reports +StatisticsOn=Statistics on +SelectYourGraphOptionsFirst=Select your graph options to build a graph +Measures=Measures +XAxis=X-Axis +YAxis=Y-Axis +StatusOfRefMustBe=Status of %s must be %s +DeleteFileHeader=Confirm file delete +DeleteFileText=Do you really want delete this file? +ShowOtherLanguages=Show other languages +SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language +NotUsedForThisCustomer=Not used for this customer +AmountMustBePositive=Amount must be positive +ByStatus=By status +InformationMessage=Information +Used=Used +ASAP=As Soon As Possible +CREATEInDolibarr=Record %s created +MODIFYInDolibarr=Record %s modified +DELETEInDolibarr=Record %s deleted +VALIDATEInDolibarr=Record %s validated +APPROVEDInDolibarr=Record %s approved +DefaultMailModel=Default Mail Model +PublicVendorName=Public name of vendor +DateOfBirth=Date of birth +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Security token has expired, so action has been canceled. Please try again. +UpToDate=Up-to-date +OutOfDate=Out-of-date +EventReminder=Event Reminder +UpdateForAllLines=Update for all lines +OnHold=On hold +Civility=Civility +AffectTag=Affect Tag +CreateExternalUser=Create external user +ConfirmAffectTag=Bulk Tag Affect +ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +CategTypeNotFound=No tag type found for type of records +CopiedToClipboard=Copied to clipboard +InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. +ConfirmCancel=Are you sure you want to cancel +EmailMsgID=Email MsgID +SetToEnabled=Set to enabled +SetToDisabled=Set to disabled +ConfirmMassEnabling=mass enabling confirmation +ConfirmMassEnablingQuestion=Are you sure you want to enable the %s selected record(s)? +ConfirmMassDisabling=mass disabling confirmation +ConfirmMassDisablingQuestion=Are you sure you want to disable the %s selected record(s)? +RecordsEnabled=%s record(s) enabled +RecordsDisabled=%s record(s) disabled +RecordEnabled=Record enabled +RecordDisabled=Record disabled +Forthcoming=Forthcoming +Currently=Currently +ConfirmMassLeaveApprovalQuestion=Are you sure you want to approve the %s selected record(s)? +ConfirmMassLeaveApproval=Mass leave approval confirmation +RecordAproved=Record approved +RecordsApproved=%s Record(s) approved +Properties=Properties +hasBeenValidated=%s has been validated +ClientTZ=Client Time Zone (user) +NotClosedYet=Not yet closed +ClearSignature=Reset signature +CanceledHidden=Canceled hidden +CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives affected +CommercialAffected=Sales representative affected +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation diff --git a/htdocs/langs/ms_MY/margins.lang b/htdocs/langs/ms_MY/margins.lang new file mode 100644 index 00000000000..a91b139ec7b --- /dev/null +++ b/htdocs/langs/ms_MY/margins.lang @@ -0,0 +1,45 @@ +# Dolibarr language file - Source file is en_US - marges + +Margin=Margin +Margins=Margins +TotalMargin=Total Margin +MarginOnProducts=Margin / Products +MarginOnServices=Margin / Services +MarginRate=Margin rate +MarkRate=Mark rate +DisplayMarginRates=Display margin rates +DisplayMarkRates=Display mark rates +InputPrice=Input price +margin=Profit margins management +margesSetup=Profit margins management setup +MarginDetails=Margin details +ProductMargins=Product margins +CustomerMargins=Customer margins +SalesRepresentativeMargins=Sales representative margins +ContactOfInvoice=Contact of invoice +UserMargins=User margins +ProductService=Product or Service +AllProducts=All products and services +ChooseProduct/Service=Choose product or service +ForceBuyingPriceIfNull=Force buying/cost price to selling price if not defined +ForceBuyingPriceIfNullDetails=If buying/cost price not provided when we add a new line, and this option is "ON", the margin will be 0%% on the new line (buying/cost price = selling price). If this option is "OFF" (recommended), margin will be equal to the value suggested by default (and may be 100%% if no default value can be found). +MARGIN_METHODE_FOR_DISCOUNT=Margin method for global discounts +UseDiscountAsProduct=As a product +UseDiscountAsService=As a service +UseDiscountOnTotal=On subtotal +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Defines if a global discount is treated as a product, a service, or only on subtotal for margin calculation. +MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation +MargeType1=Margin on Best vendor price +MargeType2=Margin on Weighted Average Price (WAP) +MargeType3=Margin on Cost Price +MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
    * Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best vendor price if WAP not yet defined
    * Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best vendor price if WAP not yet defined +CostPrice=Cost price +UnitCharges=Unit charges +Charges=Charges +AgentContactType=Commercial agent contact type +AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per contact/address. Note that reading statistics on a contact is not reliable since in most cases the contact may not be defined explicitely on the invoices. +rateMustBeNumeric=Rate must be a numeric value +markRateShouldBeLesserThan100=Mark rate should be lower than 100 +ShowMarginInfos=Show margin infos +CheckMargins=Margins detail +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any dedicated sale representative and some third parties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/ms_MY/members.lang b/htdocs/langs/ms_MY/members.lang new file mode 100644 index 00000000000..126063358d6 --- /dev/null +++ b/htdocs/langs/ms_MY/members.lang @@ -0,0 +1,230 @@ +# Dolibarr language file - Source file is en_US - members +MembersArea=Members area +MemberCard=Member card +SubscriptionCard=Subscription card +Member=Member +Members=Members +ShowMember=Show member card +UserNotLinkedToMember=User not linked to a member +ThirdpartyNotLinkedToMember=Third party not linked to a member +MembersTickets=Membership address sheet +FundationMembers=Foundation members +ListOfValidatedPublicMembers=List of validated public members +ErrorThisMemberIsNotPublic=This member is not public +ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, login: %s) is already linked to a third party %s. Remove this link first because a third party can't be linked to only a member (and vice versa). +ErrorUserPermissionAllowsToLinksToItselfOnly=For security reasons, you must be granted permissions to edit all users to be able to link a member to a user that is not yours. +SetLinkToUser=Link to a Dolibarr user +SetLinkToThirdParty=Link to a Dolibarr third party +MembersCards=Generation of cards for members +MembersList=List of members +MembersListToValid=List of draft members (to be validated) +MembersListValid=List of valid members +MembersListUpToDate=List of valid members with up-to-date contribution +MembersListNotUpToDate=List of valid members with out-of-date contribution +MembersListExcluded=List of excluded members +MembersListResiliated=List of terminated members +MembersListQualified=List of qualified members +MenuMembersToValidate=Draft members +MenuMembersValidated=Validated members +MenuMembersExcluded=Excluded members +MenuMembersResiliated=Terminated members +MembersWithSubscriptionToReceive=Members with contribution to receive +MembersWithSubscriptionToReceiveShort=Contributions to receive +DateSubscription=Date of membership +DateEndSubscription=End date of membership +EndSubscription=End of membership +SubscriptionId=Contribution ID +WithoutSubscription=Without contribution +MemberId=Member Id +MemberRef=Member Ref +NewMember=New member +MemberType=Member type +MemberTypeId=Member type id +MemberTypeLabel=Member type label +MembersTypes=Members types +MemberStatusDraft=Draft (needs to be validated) +MemberStatusDraftShort=Draft +MemberStatusActive=Validated (waiting contribution) +MemberStatusActiveShort=Validated +MemberStatusActiveLate=Contribution expired +MemberStatusActiveLateShort=Expired +MemberStatusPaid=Subscription up to date +MemberStatusPaidShort=Up to date +MemberStatusExcluded=Excluded member +MemberStatusExcludedShort=Excluded +MemberStatusResiliated=Terminated member +MemberStatusResiliatedShort=Terminated +MembersStatusToValid=Draft members +MembersStatusExcluded=Excluded members +MembersStatusResiliated=Terminated members +MemberStatusNoSubscription=Validated (no contribution required) +MemberStatusNoSubscriptionShort=Validated +SubscriptionNotNeeded=No contribution required +NewCotisation=New contribution +PaymentSubscription=New contribution payment +SubscriptionEndDate=Subscription's end date +MembersTypeSetup=Members type setup +MemberTypeModified=Member type modified +DeleteAMemberType=Delete a member type +ConfirmDeleteMemberType=Are you sure you want to delete this member type? +MemberTypeDeleted=Member type deleted +MemberTypeCanNotBeDeleted=Member type can not be deleted +NewSubscription=New contribution +NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s. +Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount with a recommended amount of %s %s +AnyAmountWithoutAdvisedAmount=Any amount +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Get membership +Subscriptions=Contributions +SubscriptionLate=Late +SubscriptionNotReceived=Contribution never received +ListOfSubscriptions=List of contributions +SendCardByMail=Send card by email +AddMember=Create member +NoTypeDefinedGoToSetup=No member types defined. Go to menu "Members types" +NewMemberType=New member type +WelcomeEMail=Welcome email +SubscriptionRequired=Contribution required +DeleteType=Delete +VoteAllowed=Vote allowed +Physical=Individual +Moral=Corporation +MorAndPhy=Corporation and Individual +Reenable=Re-Enable +ExcludeMember=Exclude a member +Exclude=Exclude +ConfirmExcludeMember=Are you sure you want to exclude this member ? +ResiliateMember=Terminate a member +ConfirmResiliateMember=Are you sure you want to terminate this member? +DeleteMember=Delete a member +ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +DeleteSubscription=Delete a subscription +ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +Filehtpasswd=htpasswd file +ValidateMember=Validate a member +ConfirmValidateMember=Are you sure you want to validate this member? +FollowingLinksArePublic=The following links are open pages not protected by any Dolibarr permission. They are not formatted pages, provided as example to show how to list members database. +PublicMemberList=Public member list +BlankSubscriptionForm=Public self-registration form +BlankSubscriptionFormDesc=Dolibarr can provide you a public URL/website to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form may also be automatically provided. +EnablePublicSubscriptionForm=Enable the public website with self-subscription form +ForceMemberType=Force the member type +ExportDataset_member_1=Members and contributions +ImportDataset_member_1=Members +LastMembersModified=Latest %s modified members +LastSubscriptionsModified=Latest %s modified contributions +String=String +Text=Text +Int=Int +DateAndTime=Date and time +PublicMemberCard=Member public card +SubscriptionNotRecorded=Contribution not recorded +AddSubscription=Create contribution +ShowSubscription=Show contribution +# Label of email templates +SendingAnEMailToMember=Sending information email to member +SendingEmailOnAutoSubscription=Sending email on auto registration +SendingEmailOnMemberValidation=Sending email on new member validation +SendingEmailOnNewSubscription=Sending email on new contribution +SendingReminderForExpiredSubscription=Sending reminder for expired contributions +SendingEmailOnCancelation=Sending email on cancelation +SendingReminderActionComm=Sending reminder for agenda event +# Topic of email templates +YourMembershipRequestWasReceived=Your membership was received. +YourMembershipWasValidated=Your membership was validated +YourSubscriptionWasRecorded=Your new contribution was recorded +SubscriptionReminderEmail=contribution reminder +YourMembershipWasCanceled=Your membership was canceled +CardContent=Content of your member card +# Text of email templates +ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    +ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    +ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    +DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Content of the notification email received in case of auto-inscription of a guest +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Email template to use to send email to a member on member validation +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Email template to use to send email to a member on new contribution recording +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Email template to use to send email reminder when contribution is about to expire +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Email template to use to send email to a member on member cancelation +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Email template to use to send email to a member on member exclusion +DescADHERENT_MAIL_FROM=Sender Email for automatic emails +DescADHERENT_ETIQUETTE_TYPE=Format of labels page +DescADHERENT_ETIQUETTE_TEXT=Text printed on member address sheets +DescADHERENT_CARD_TYPE=Format of cards page +DescADHERENT_CARD_HEADER_TEXT=Text printed on top of member cards +DescADHERENT_CARD_TEXT=Text printed on member cards (align on left) +DescADHERENT_CARD_TEXT_RIGHT=Text printed on member cards (align on right) +DescADHERENT_CARD_FOOTER_TEXT=Text printed on bottom of member cards +ShowTypeCard=Show type '%s' +HTPasswordExport=htpassword file generation +NoThirdPartyAssociatedToMember=No third party associated with this member +MembersAndSubscriptions=Members and Contributions +MoreActions=Complementary action on recording +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution +MoreActionBankDirect=Create a direct entry on bank account +MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionInvoiceOnly=Create an invoice with no payment +LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. +DocForAllMembersCards=Generate business cards for all members +DocForOneMemberCards=Generate business cards for a particular member +DocForLabels=Generate address sheets +SubscriptionPayment=Contribution payment +LastSubscriptionDate=Date of latest contribution payment +LastSubscriptionAmount=Amount of latest contribution +LastMemberType=Last Member type +MembersStatisticsByCountries=Members statistics by country +MembersStatisticsByState=Members statistics by state/province +MembersStatisticsByTown=Members statistics by town +MembersStatisticsByRegion=Members statistics by region +NbOfMembers=Total number of members +NbOfActiveMembers=Total number of current active members +NoValidatedMemberYet=No validated members found +MembersByCountryDesc=This screen shows you the statistics of members by countries. Graphs and charts depend on the availability of the Google online graph service as well as on the availability of a working internet connection. +MembersByStateDesc=This screen show you statistics of members by state/provinces/canton. +MembersByTownDesc=This screen show you statistics of members by town. +MembersByNature=This screen show you statistics of members by nature. +MembersByRegion=This screen show you statistics of members by region. +MembersStatisticsDesc=Choose statistics you want to read... +MenuMembersStats=Statistics +LastMemberDate=Latest membership date +LatestSubscriptionDate=Latest contribution date +MemberNature=Nature of the member +MembersNature=Nature of the members +Public=Information is public +NewMemberbyWeb=New member added. Awaiting approval +NewMemberForm=New member form +SubscriptionsStatistics=Contributions statistics +NbOfSubscriptions=Number of contributions +AmountOfSubscriptions=Amount collected from contributions +TurnoverOrBudget=Turnover (for a company) or Budget (for a foundation) +DefaultAmount=Default amount of contribution +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=Jump on integrated online payment page +ByProperties=By nature +MembersStatisticsByProperties=Members statistics by nature +VATToUseForSubscriptions=VAT rate to use for contributionss +NoVatOnSubscription=No VAT for contributions +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for contribution line into invoice: %s +NameOrCompany=Name or company +SubscriptionRecorded=Contribution recorded +NoEmailSentToMember=No email sent to member +EmailSentToMember=Email sent to member at %s +SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired contributions +SendReminderForExpiredSubscription=Send reminder by email to members when contribution is about to expire (parameter is number of days before end of membership to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5') +MembershipPaid=Membership paid for current period (until %s) +YouMayFindYourInvoiceInThisEmail=You may find your invoice attached to this email +XMembersClosed=%s member(s) closed +XExternalUserCreated=%s external user(s) created +ForceMemberNature=Force member nature (Individual or Corporation) +CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. +CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/ms_MY/modulebuilder.lang b/htdocs/langs/ms_MY/modulebuilder.lang new file mode 100644 index 00000000000..044360eb51d --- /dev/null +++ b/htdocs/langs/ms_MY/modulebuilder.lang @@ -0,0 +1,158 @@ +# Dolibarr language file - Source file is en_US - loan +IdModule= Module id +ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. +EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s +ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory +NewModule=New module +NewObjectInModulebuilder=New object +NewDictionary=New dictionary +ModuleName=Module name +ModuleKey=Module key +ObjectKey=Object key +DicKey=Dictionary key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) +ModuleBuilderDescdescription=Enter here all general information that describe your module. +ModuleBuilderDescspecifications=You can enter here a detailed description of the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommended to use Asciidoc format (comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All coding files of module (generated or created manually) AND structured data and documentation will be deleted! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All coding files (generated or created manually) related to object will be deleted! +DangerZone=Danger zone +BuildPackage=Build package +BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like DoliStore.com. +BuildDocumentation=Build documentation +ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here +ModuleIsLive=This module has been activated. Any change may break a current live feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP DAO CRUD class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PageForAgendaTab=PHP page for event tab +PageForDocumentTab=PHP page for document tab +PageForNoteTab=PHP page for note tab +PageForContactTab=PHP page for contact tab +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation (%s) +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated +RegenerateClassAndSql=Force update of .class and .sql files +RegenerateMissingFiles=Generate missing files +SpecificationFile=File of documentation +LanguageFile=File for language +ObjectProperties=Object Properties +ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +ArrayOfKeyValues=Array of key-val +ArrayOfKeyValuesDesc=Array of keys and values if field is a combo list with fixed values +WidgetFile=Widget file +CSSFile=CSS file +JSFile=Javascript file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +TestClassFile=File for PHP Unit Test class +SqlFile=Sql file +PageForLib=File for the common PHP library +PageForObjLib=File for the PHP library dedicated to object +SqlFileExtraFields=Sql file for complementary attributes +SqlFileKey=Sql file for keys +SqlFileKeyExtraFields=Sql file for keys of complementary attributes +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommended to use Asciidoc format (omparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=Is a measure +DirScanned=Directory scanned +NoTrigger=No trigger +NoWidget=No widget +GoToApiExplorer=API explorer +ListOfMenusEntries=List of menu entries +ListOfDictionariesEntries=List of dictionaries entries +ListOfPermissionsDefined=List of defined permissions +SeeExamples=See examples here +EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=Display on PDF +IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0) +SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0) +SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. +LanguageDefDesc=Enter in this files, all the key and the translation for each language file. +MenusDefDesc=Define here the menus provided by your module +DictionariesDefDesc=Define here the dictionaries provided by your module +PermissionsDefDesc=Define here the new permissions provided by your module +MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s. +DictionariesDefDescTooltip=The dictionaries provided by your module/application are defined into the array $this->dictionaries into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), dictionaries are also visible into the setup area to administrator users on %s. +PermissionsDefDescTooltip=The permissions provided by your module/application are defined into the array $this->rights into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), permissions are visible into the default permissions setup %s. +HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code).
    Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code). +TriggerDefDesc=Define in the trigger file the code that you want to execute when a business event external to your module is executed (events triggered by other modules). +SeeIDsInUse=See IDs in use in your installation +SeeReservedIDsRangeHere=See range of reserved IDs +ToolkitForDevelopers=Toolkit for Dolibarr developers +TryToUseTheModuleBuilder=If you have knowledge of SQL and PHP, you may use the native module builder wizard.
    Enable the module %s and use the wizard by clicking the on the top right menu.
    Warning: This is an advanced developer feature, do not experiment on your production site! +SeeTopRightMenu=See on the top right menu +AddLanguageFile=Add language file +YouCanUseTranslationKey=You can use here a key that is the translation key found into language file (see tab "Languages") +DropTableIfEmpty=(Destroy table if empty) +TableDoesNotExists=The table %s does not exists +TableDropped=Table %s deleted +InitStructureFromExistingTable=Build the structure array string of an existing table +UseAboutPage=Do not generate the About page +UseDocFolder=Disable the documentation folder +UseSpecificReadme=Use a specific ReadMe +ContentOfREADMECustomized=Note: The content of the README.md file has been replaced with the specific value defined into setup of ModuleBuilder. +RealPathOfModule=Real path of module +ContentCantBeEmpty=Content of file can't be empty +WidgetDesc=You can generate and edit here the widgets that will be embedded with your module. +CSSDesc=You can generate and edit here a file with personalized CSS embedded with your module. +JSDesc=You can generate and edit here a file with personalized Javascript embedded with your module. +CLIDesc=You can generate here some command line scripts you want to provide with your module. +CLIFile=CLI File +NoCLIFile=No CLI files +UseSpecificEditorName = Use a specific editor name +UseSpecificEditorURL = Use a specific editor URL +UseSpecificFamily = Use a specific family +UseSpecificAuthor = Use a specific author +UseSpecificVersion = Use a specific initial version +IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules +IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. +ShowOnCombobox=Show value into combobox +KeyForTooltip=Key for tooltip +CSSClass=CSS for edit/create form +CSSViewClass=CSS for read form +CSSListClass=CSS for list +NotEditable=Not editable +ForeignKey=Foreign key +TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +AsciiToHtmlConverter=Ascii to HTML converter +AsciiToPdfConverter=Ascii to PDF converter +TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. +ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. +ImportExportProfiles=Import and export profiles +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated +LinkToParentMenu=Parent menu (fk_xxxxmenu) +ListOfTabsEntries=List of tab entries +TabsDefDesc=Define here the tabs provided by your module +TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s diff --git a/htdocs/langs/ms_MY/mrp.lang b/htdocs/langs/ms_MY/mrp.lang new file mode 100644 index 00000000000..7f29b774b29 --- /dev/null +++ b/htdocs/langs/ms_MY/mrp.lang @@ -0,0 +1,114 @@ +Mrp=Manufacturing Orders +MOs=Manufacturing orders +ManufacturingOrder=Manufacturing Order +MRPDescription=Module to manage production and Manufacturing Orders (MO). +MRPArea=MRP Area +MrpSetupPage=Setup of module MRP +MenuBOM=Bills of material +LatestBOMModified=Latest %s Bills of materials modified +LatestMOModified=Latest %s Manufacturing Orders modified +Bom=Bills of Material +BillOfMaterials=Bill of Materials +BillOfMaterialsLines=Bill of Materials lines +BOMsSetup=Setup of module BOM +ListOfBOMs=List of bills of material - BOM +ListOfManufacturingOrders=List of Manufacturing Orders +NewBOM=New bill of materials +ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. +BOMsNumberingModules=BOM numbering templates +BOMsModelModule=BOM document templates +MOsNumberingModules=MO numbering templates +MOsModelModule=MO document templates +FreeLegalTextOnBOMs=Free text on document of BOM +WatermarkOnDraftBOMs=Watermark on draft BOM +FreeLegalTextOnMOs=Free text on document of MO +WatermarkOnDraftMOs=Watermark on draft MO +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? +ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? +ManufacturingEfficiency=Manufacturing efficiency +ConsumptionEfficiency=Consumption efficiency +ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product +DeleteBillOfMaterials=Delete Bill Of Materials +DeleteMo=Delete Manufacturing Order +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? +ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? +MenuMRP=Manufacturing Orders +NewMO=New Manufacturing Order +QtyToProduce=Qty to produce +DateStartPlannedMo=Date start planned +DateEndPlannedMo=Date end planned +KeepEmptyForAsap=Empty means 'As Soon As Possible' +EstimatedDuration=Estimated duration +EstimatedDurationDesc=Estimated duration to manufacture (or disassemble) this product using this BOM +ConfirmValidateBom=Are you sure you want to validate the BOM with the reference %s (you will be able to use it to build new Manufacturing Orders) +ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? +ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) +StatusMOProduced=Produced +QtyFrozen=Frozen Qty +QuantityFrozen=Frozen Quantity +QuantityConsumedInvariable=When this flag is set, the quantity consumed is always the value defined and is not relative to the quantity produced. +DisableStockChange=Stock change disabled +DisableStockChangeHelp=When this flag is set, there is no stock change on this product, whatever is the quantity consumed +BomAndBomLines=Bills Of Material and lines +BOMLine=Line of BOM +WarehouseForProduction=Warehouse for production +CreateMO=Create MO +ToConsume=To consume +ToProduce=To produce +ToObtain=To obtain +QtyAlreadyConsumed=Qty already consumed +QtyAlreadyProduced=Qty already produced +QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%) +ConsumeOrProduce=Consume or Produce +ConsumeAndProduceAll=Consume and Produce All +Manufactured=Manufactured +TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce. +ForAQuantityOf=For a quantity to produce of %s +ForAQuantityToConsumeOf=For a quantity to disassemble of %s +ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? +ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. +ProductionForRef=Production of %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement +AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached +NoStockChangeOnServices=No stock change on services +ProductQtyToConsumeByMO=Product quantity still to consume by open MO +ProductQtyToProduceByMO=Product quantity still to produce by open MO +AddNewConsumeLines=Add new line to consume +AddNewProduceLines=Add new line to produce +ProductsToConsume=Products to consume +ProductsToProduce=Products to produce +UnitCost=Unit cost +TotalCost=Total cost +BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. +ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Delete +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item +BOM=Bill Of Materials +CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module +MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child diff --git a/htdocs/langs/ms_MY/multicurrency.lang b/htdocs/langs/ms_MY/multicurrency.lang new file mode 100644 index 00000000000..26313c6bfb9 --- /dev/null +++ b/htdocs/langs/ms_MY/multicurrency.lang @@ -0,0 +1,38 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronization error: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use the date of the document to find the currency rate, instead of using the latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate from the source object (otherwise use the latest known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You must create an account on website %s to use this functionality.
    Get your API key.
    If you use a free account, you can't change the source currency (USD by default).
    If your main currency is not USD, the application will automatically recalculate it.

    You are limited to 1000 synchronizations per month. +multicurrency_appId=API key +multicurrency_appCurrencySource=Source currency +multicurrency_alternateCurrencySource=Alternate source currency +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the different currencies and rates you need to use on your proposals, orders etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amount, original currency +MulticurrencyPaymentAmount=Payment amount, original currency +AmountToOthercurrency=Amount To (in currency of receiving account) +CurrencyRateSyncSucceed=Currency rate synchronization done successfuly +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Use the currency of the document for online payments +TabTitleMulticurrencyRate=Rate list +ListCurrencyRate=List of exchange rates for the currency +CreateRate=Create a rate +FormCreateRate=Rate creation +FormUpdateRate=Rate modification +successRateCreate=Rate for currency %s has been added to the database +ConfirmDeleteLineRate=Are you sure you want to remove the %s rate for currency %s on %s date? +DeleteLineRate=Clear rate +successRateDelete=Rate deleted +errorRateDelete=Error when deleting the rate +successUpdateRate=Modification made +ErrorUpdateRate=Error when changing the rate +Codemulticurrency=currency code +UpdateRate=change the rate +CancelUpdate=cancel +NoEmptyRate=The rate field must not be empty diff --git a/htdocs/langs/ms_MY/oauth.lang b/htdocs/langs/ms_MY/oauth.lang new file mode 100644 index 00000000000..e3af5592a0e --- /dev/null +++ b/htdocs/langs/ms_MY/oauth.lang @@ -0,0 +1,36 @@ +# Dolibarr language file - Source file is en_US - oauth +ConfigOAuth=OAuth Configuration +OAuthServices=OAuth Services +ManualTokenGeneration=Manual token generation +TokenManager=Token Manager +IsTokenGenerated=Is token generated ? +NoAccessToken=No access token saved into local database +HasAccessToken=A token was generated and saved into local database +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider +TokenDeleted=Token deleted +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token +UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens +SeePreviousTab=See previous tab +OAuthProvider=OAuth provider +OAuthIDSecret=OAuth ID and Secret +TOKEN_REFRESH=Token Refresh Present +TOKEN_EXPIRED=Token expired +TOKEN_EXPIRE_AT=Token expire at +TOKEN_DELETE=Delete saved token +OAUTH_GOOGLE_NAME=OAuth Google service +OAUTH_GOOGLE_ID=OAuth Google Id +OAUTH_GOOGLE_SECRET=OAuth Google Secret +OAUTH_GITHUB_NAME=OAuth GitHub service +OAUTH_GITHUB_ID=OAuth GitHub Id +OAUTH_GITHUB_SECRET=OAuth GitHub Secret +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret +OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test +OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/ms_MY/opensurvey.lang b/htdocs/langs/ms_MY/opensurvey.lang new file mode 100644 index 00000000000..9fafacaf8bf --- /dev/null +++ b/htdocs/langs/ms_MY/opensurvey.lang @@ -0,0 +1,63 @@ +# Dolibarr language file - Source file is en_US - opensurvey +Survey=Poll +Surveys=Polls +OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select the type of poll... +NewSurvey=New poll +OpenSurveyArea=Polls area +AddACommentForPoll=You can add a comment into poll... +AddComment=Add comment +CreatePoll=Create poll +PollTitle=Poll title +ToReceiveEMailForEachVote=Receive an email for each vote +TypeDate=Type date +TypeClassic=Type standard +OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +RemoveAllDays=Remove all days +CopyHoursOfFirstDay=Copy hours of first day +RemoveAllHours=Remove all hours +SelectedDays=Selected days +TheBestChoice=The best choice currently is +TheBestChoices=The best choices currently are +with=with +OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. +CommentsOfVoters=Comments of voters +ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes) +RemovePoll=Remove poll +UrlForSurvey=URL to communicate to get a direct access to poll +PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: +CreateSurveyDate=Create a date poll +CreateSurveyStandard=Create a standard poll +CheckBox=Simple checkbox +YesNoList=List (empty/yes/no) +PourContreList=List (empty/for/against) +AddNewColumn=Add new column +TitleChoice=Choice label +ExportSpreadsheet=Export result spreadsheet +ExpireDate=Limit date +NbOfSurveys=Number of polls +NbOfVoters=No. of voters +SurveyResults=Results +PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s. +5MoreChoices=5 more choices +Against=Against +YouAreInivitedToVote=You are invited to vote for this poll +VoteNameAlreadyExists=This name was already used for this poll +AddADate=Add a date +AddStartHour=Add start hour +AddEndHour=Add end hour +votes=vote(s) +NoCommentYet=No comments have been posted for this poll yet +CanComment=Voters can comment in the poll +YourVoteIsPrivate=This poll is private, nobody can see your vote. +YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +CanSeeOthersVote=Voters can see other people's vote +SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:
    - empty,
    - "8h", "8H" or "8:00" to give a meeting's start hour,
    - "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
    - "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +BackToCurrentMonth=Back to current month +ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation +ErrorOpenSurveyOneChoice=Enter at least one choice +ErrorInsertingComment=There was an error while inserting your comment +MoreChoices=Enter more choices for the voters +SurveyExpiredInfo=The poll has been closed or voting delay has expired. +EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s +ShowSurvey=Show survey +UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment diff --git a/htdocs/langs/ms_MY/orders.lang b/htdocs/langs/ms_MY/orders.lang new file mode 100644 index 00000000000..aa7dd934ede --- /dev/null +++ b/htdocs/langs/ms_MY/orders.lang @@ -0,0 +1,201 @@ +# Dolibarr language file - Source file is en_US - orders +OrderExists=An order was already open linked to this proposal, so no other order was created automatically +OrdersArea=Customers orders area +SuppliersOrdersArea=Purchase orders area +OrderCard=Order card +OrderId=Order Id +Order=Order +PdfOrderTitle=Order +Orders=Orders +OrderLine=Order line +OrderDate=Order date +OrderDateShort=Order date +OrderToProcess=Order to process +NewOrder=New order +NewSupplierOrderShort=New order +NewOrderSupplier=New Purchase Order +ToOrder=Make order +MakeOrder=Make order +SupplierOrder=Purchase order +SuppliersOrders=Purchase orders +SaleOrderLines=Sales order lines +PurchaseOrderLines=Puchase order lines +SuppliersOrdersRunning=Current purchase orders +CustomerOrder=Sales Order +CustomersOrders=Sales Orders +CustomersOrdersRunning=Current sales orders +CustomersOrdersAndOrdersLines=Sales orders and order details +OrdersDeliveredToBill=Sales orders delivered to bill +OrdersToBill=Sales orders delivered +OrdersInProcess=Sales orders in process +OrdersToProcess=Sales orders to process +SuppliersOrdersToProcess=Purchase orders to process +SuppliersOrdersAwaitingReception=Purchase orders awaiting reception +AwaitingReception=Awaiting reception +StatusOrderCanceledShort=Canceled +StatusOrderDraftShort=Draft +StatusOrderValidatedShort=Validated +StatusOrderSentShort=In process +StatusOrderSent=Shipment in process +StatusOrderOnProcessShort=Ordered +StatusOrderProcessedShort=Processed +StatusOrderDelivered=Delivered +StatusOrderDeliveredShort=Delivered +StatusOrderToBillShort=Delivered +StatusOrderApprovedShort=Approved +StatusOrderRefusedShort=Refused +StatusOrderToProcessShort=To process +StatusOrderReceivedPartiallyShort=Partially received +StatusOrderReceivedAllShort=Products received +StatusOrderCanceled=Canceled +StatusOrderDraft=Draft (needs to be validated) +StatusOrderValidated=Validated +StatusOrderOnProcess=Ordered - Standby reception +StatusOrderOnProcessWithValidation=Ordered - Standby reception or validation +StatusOrderProcessed=Processed +StatusOrderToBill=Delivered +StatusOrderApproved=Approved +StatusOrderRefused=Refused +StatusOrderReceivedPartially=Partially received +StatusOrderReceivedAll=All products received +ShippingExist=A shipment exists +QtyOrdered=Qty ordered +ProductQtyInDraft=Product quantity into draft orders +ProductQtyInDraftOrWaitingApproved=Product quantity into draft or approved orders, not yet ordered +MenuOrdersToBill=Orders delivered +MenuOrdersToBill2=Billable orders +ShipProduct=Ship product +CreateOrder=Create Order +RefuseOrder=Refuse order +ApproveOrder=Approve order +Approve2Order=Approve order (second level) +UserApproval=User for approval +UserApproval2=User for approval (second level) +ValidateOrder=Validate order +UnvalidateOrder=Unvalidate order +DeleteOrder=Delete order +CancelOrder=Cancel order +OrderReopened= Order %s re-open +AddOrder=Create order +AddSupplierOrderShort=Create order +AddPurchaseOrder=Create purchase order +AddToDraftOrders=Add to draft order +ShowOrder=Show order +OrdersOpened=Orders to process +NoDraftOrders=No draft orders +NoOrder=No order +NoSupplierOrder=No purchase order +LastOrders=Latest %s sales orders +LastCustomerOrders=Latest %s sales orders +LastSupplierOrders=Latest %s purchase orders +LastModifiedOrders=Latest %s modified orders +AllOrders=All orders +NbOfOrders=Number of orders +OrdersStatistics=Order's statistics +OrdersStatisticsSuppliers=Purchase order statistics +NumberOfOrdersByMonth=Number of orders by month +AmountOfOrdersByMonthHT=Amount of orders by month (excl. tax) +ListOfOrders=List of orders +CloseOrder=Close order +ConfirmCloseOrder=Are you sure you want to set this order to delivered? Once an order is delivered, it can be set to billed. +ConfirmDeleteOrder=Are you sure you want to delete this order? +ConfirmValidateOrder=Are you sure you want to validate this order under name %s? +ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? +ConfirmCancelOrder=Are you sure you want to cancel this order? +ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +GenerateBill=Generate invoice +ClassifyShipped=Classify delivered +PassedInShippedStatus=classified delivered +YouCantShipThis=I can't classify this. Please check user permissions +DraftOrders=Draft orders +DraftSuppliersOrders=Draft purchase orders +OnProcessOrders=In process orders +RefOrder=Ref. order +RefCustomerOrder=Ref. order for customer +RefOrderSupplier=Ref. order for vendor +RefOrderSupplierShort=Ref. order vendor +SendOrderByMail=Send order by mail +ActionsOnOrder=Events on order +NoArticleOfTypeProduct=No article of type 'product' so no shippable article for this order +OrderMode=Order method +AuthorRequest=Request author +UserWithApproveOrderGrant=Users granted with "approve orders" permission. +PaymentOrderRef=Payment of order %s +ConfirmCloneOrder=Are you sure you want to clone this order %s? +DispatchSupplierOrder=Receiving purchase order %s +FirstApprovalAlreadyDone=First approval already done +SecondApprovalAlreadyDone=Second approval already done +SupplierOrderReceivedInDolibarr=Purchase Order %s received %s +SupplierOrderSubmitedInDolibarr=Purchase Order %s submitted +SupplierOrderClassifiedBilled=Purchase Order %s set billed +OtherOrders=Other orders +SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s +SupplierOrderValidated=Supplier order is validated : %s +##### Types de contacts ##### +TypeContact_commande_internal_SALESREPFOLL=Representative following-up sales order +TypeContact_commande_internal_SHIPPING=Representative following-up shipping +TypeContact_commande_external_BILLING=Customer invoice contact +TypeContact_commande_external_SHIPPING=Customer shipping contact +TypeContact_commande_external_CUSTOMER=Customer contact following-up order +TypeContact_order_supplier_internal_SALESREPFOLL=Representative following-up purchase order +TypeContact_order_supplier_internal_SHIPPING=Representative following-up shipping +TypeContact_order_supplier_external_BILLING=Vendor invoice contact +TypeContact_order_supplier_external_SHIPPING=Vendor shipping contact +TypeContact_order_supplier_external_CUSTOMER=Vendor contact following-up order +Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Constant COMMANDE_SUPPLIER_ADDON not defined +Error_COMMANDE_ADDON_NotDefined=Constant COMMANDE_ADDON not defined +Error_OrderNotChecked=No orders to invoice selected +# Order modes (how we receive order). Not the "why" are keys stored into dict.lang +OrderByMail=Mail +OrderByFax=Fax +OrderByEMail=Email +OrderByWWW=Online +OrderByPhone=Phone +# Documents models +PDFEinsteinDescription=A complete order model (old implementation of Eratosthene template) +PDFEratostheneDescription=A complete order model +PDFEdisonDescription=A simple order model +PDFProformaDescription=A complete Proforma invoice template +CreateInvoiceForThisCustomer=Bill orders +CreateInvoiceForThisSupplier=Bill orders +CreateInvoiceForThisReceptions=Bill receptions +NoOrdersToInvoice=No orders billable +CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders. +OrderCreation=Order creation +Ordered=Ordered +OrderCreated=Your orders have been created +OrderFail=An error happened during your orders creation +CreateOrders=Create orders +ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s". +OptionToSetOrderBilledNotEnabled=Option from module Workflow, to set order to 'Billed' automatically when invoice is validated, is not enabled, so you will have to set the status of orders to 'Billed' manually after the invoice has been generated. +IfValidateInvoiceIsNoOrderStayUnbilled=If invoice validation is 'No', the order will remain to status 'Unbilled' until the invoice is validated. +CloseReceivedSupplierOrdersAutomatically=Close order to status "%s" automatically if all products are received. +SetShippingMode=Set shipping mode +WithReceptionFinished=With reception finished +#### supplier orders status +StatusSupplierOrderCanceledShort=Canceled +StatusSupplierOrderDraftShort=Draft +StatusSupplierOrderValidatedShort=Validated +StatusSupplierOrderSentShort=In process +StatusSupplierOrderSent=Shipment in process +StatusSupplierOrderOnProcessShort=Ordered +StatusSupplierOrderProcessedShort=Processed +StatusSupplierOrderDelivered=Delivered +StatusSupplierOrderDeliveredShort=Delivered +StatusSupplierOrderToBillShort=Delivered +StatusSupplierOrderApprovedShort=Approved +StatusSupplierOrderRefusedShort=Refused +StatusSupplierOrderToProcessShort=To process +StatusSupplierOrderReceivedPartiallyShort=Partially received +StatusSupplierOrderReceivedAllShort=Products received +StatusSupplierOrderCanceled=Canceled +StatusSupplierOrderDraft=Draft (needs to be validated) +StatusSupplierOrderValidated=Validated +StatusSupplierOrderOnProcess=Ordered - Standby reception +StatusSupplierOrderOnProcessWithValidation=Ordered - Standby reception or validation +StatusSupplierOrderProcessed=Processed +StatusSupplierOrderToBill=Delivered +StatusSupplierOrderApproved=Approved +StatusSupplierOrderRefused=Refused +StatusSupplierOrderReceivedPartially=Partially received +StatusSupplierOrderReceivedAll=All products received diff --git a/htdocs/langs/ms_MY/other.lang b/htdocs/langs/ms_MY/other.lang new file mode 100644 index 00000000000..9c0663919b1 --- /dev/null +++ b/htdocs/langs/ms_MY/other.lang @@ -0,0 +1,327 @@ +# Dolibarr language file - Source file is en_US - other +SecurityCode=Security code +NumberingShort=N° +Tools=Tools +TMenuTools=Tools +ToolsDesc=All tools not included in other menu entries are grouped here.
    All the tools can be accessed via the left menu. +Birthday=Birthday +BirthdayAlertOn=birthday alert active +BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (text) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +PreviousMonth=Previous month +CurrentMonth=Current month +ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. +JumpToLogin=Disconnected. Go to login page... +MessageForm=Message on online payment form +MessageOK=Message on the return page for a validated payment +MessageKO=Message on the return page for a canceled payment +ContentOfDirectoryIsNotEmpty=Content of this directory is not empty. +DeleteAlsoContentRecursively=Check to delete all content recursively +PoweredBy=Powered by +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date +DateNextInvoiceBeforeGen=Date of next invoice (before generation) +DateNextInvoiceAfterGen=Date of next invoice (after generation) +GraphInBarsAreLimitedToNMeasures=Grapics are limited to %s measures in 'Bars' mode. The mode 'Lines' was automatically selected instead. +OnlyOneFieldForXAxisIsPossible=Only 1 field is currently possible as X-Axis. Only the first selected field has been selected. +AtLeastOneMeasureIsRequired=At least 1 field for measure is required +AtLeastOneXAxisIsRequired=At least 1 field for X-Axis is required +LatestBlogPosts=Latest Blog Posts +notiftouser=To users +notiftofixedemail=To fixed mail +notiftouserandtofixedemail=To user and fixed mail +Notify_ORDER_VALIDATE=Sales order validated +Notify_ORDER_SENTBYMAIL=Sales order sent by mail +Notify_ORDER_SUPPLIER_SENTBYMAIL=Purchase order sent by email +Notify_ORDER_SUPPLIER_VALIDATE=Purchase order recorded +Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved +Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused +Notify_PROPAL_VALIDATE=Customer proposal validated +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail +Notify_WITHDRAW_TRANSMIT=Transmission withdrawal +Notify_WITHDRAW_CREDIT=Credit withdrawal +Notify_WITHDRAW_EMIT=Perform withdrawal +Notify_COMPANY_CREATE=Third party created +Notify_COMPANY_SENTBYMAIL=Mails sent from third party card +Notify_BILL_VALIDATE=Customer invoice validated +Notify_BILL_UNVALIDATE=Customer invoice unvalidated +Notify_BILL_PAYED=Customer invoice paid +Notify_BILL_CANCEL=Customer invoice canceled +Notify_BILL_SENTBYMAIL=Customer invoice sent by mail +Notify_BILL_SUPPLIER_VALIDATE=Vendor invoice validated +Notify_BILL_SUPPLIER_PAYED=Vendor invoice paid +Notify_BILL_SUPPLIER_SENTBYMAIL=Vendor invoice sent by mail +Notify_BILL_SUPPLIER_CANCELED=Vendor invoice cancelled +Notify_CONTRACT_VALIDATE=Contract validated +Notify_FICHINTER_VALIDATE=Intervention validated +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail +Notify_SHIPPING_VALIDATE=Shipping validated +Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail +Notify_MEMBER_VALIDATE=Member validated +Notify_MEMBER_MODIFY=Member modified +Notify_MEMBER_SUBSCRIPTION=Member subscribed +Notify_MEMBER_RESILIATE=Member terminated +Notify_MEMBER_DELETE=Member deleted +Notify_PROJECT_CREATE=Project creation +Notify_TASK_CREATE=Task created +Notify_TASK_MODIFY=Task modified +Notify_TASK_DELETE=Task deleted +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required) +Notify_EXPENSE_REPORT_APPROVE=Expense report approved +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required) +Notify_HOLIDAY_APPROVE=Leave request approved +Notify_ACTION_CREATE=Added action to Agenda +SeeModuleSetup=See setup of module %s +NbOfAttachedFiles=Number of attached files/documents +TotalSizeOfAttachedFiles=Total size of attached files/documents +MaxSize=Maximum size +AttachANewFile=Attach a new file/document +LinkedObject=Linked object +NbOfActiveNotifications=Number of notifications (no. of recipient emails) +PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe lines are separated by a carriage return.\n\n__USER_SIGNATURE__ +PredefinedMailTestHtml=__(Hello)__
    This is a test mail sent to __EMAIL__ (the word test must be in bold).
    The lines are separated by a carriage return.

    __USER_SIGNATURE__ +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find commercial proposal __REF__ attached \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find price request __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find our order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find shipping __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find intervention __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n +PredefinedMailContentGeneric=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendActionComm=Event reminder "__EVENT_LABEL__" on __EVENT_DATE__ at __EVENT_TIME__

    This is an automatic message, please do not reply. +DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. +ChooseYourDemoProfil=Choose the demo profile that best suits your needs... +ChooseYourDemoProfilMore=...or build your own profile
    (manual module selection) +DemoFundation=Manage members of a foundation +DemoFundation2=Manage members and bank account of a foundation +DemoCompanyServiceOnly=Company or freelance selling service only +DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyProductAndStocks=Shop selling products with Point Of Sales +DemoCompanyManufacturing=Company manufacturing products +DemoCompanyAll=Company with multiple activities (all main modules) +CreatedBy=Created by %s +ModifiedBy=Modified by %s +ValidatedBy=Validated by %s +SignedBy=Signed by %s +ClosedBy=Closed by %s +CreatedById=User id who created +ModifiedById=User id who made latest change +ValidatedById=User id who validated +CanceledById=User id who canceled +ClosedById=User id who closed +CreatedByLogin=User login who created +ModifiedByLogin=User login who made latest change +ValidatedByLogin=User login who validated +CanceledByLogin=User login who canceled +ClosedByLogin=User login who closed +FileWasRemoved=File %s was removed +DirWasRemoved=Directory %s was removed +FeatureNotYetAvailable=Feature not yet available in the current version +FeatureNotAvailableOnDevicesWithoutMouse=Feature not available on devices without mouse +FeaturesSupported=Supported features +Width=Width +Height=Height +Depth=Depth +Top=Top +Bottom=Bottom +Left=Left +Right=Right +CalculatedWeight=Calculated weight +CalculatedVolume=Calculated volume +Weight=Weight +WeightUnitton=ton +WeightUnitkg=kg +WeightUnitg=g +WeightUnitmg=mg +WeightUnitpound=pound +WeightUnitounce=ounce +Length=Length +LengthUnitm=m +LengthUnitdm=dm +LengthUnitcm=cm +LengthUnitmm=mm +Surface=Area +SurfaceUnitm2=m² +SurfaceUnitdm2=dm² +SurfaceUnitcm2=cm² +SurfaceUnitmm2=mm² +SurfaceUnitfoot2=ft² +SurfaceUnitinch2=in² +Volume=Volume +VolumeUnitm3=m³ +VolumeUnitdm3=dm³ (L) +VolumeUnitcm3=cm³ (ml) +VolumeUnitmm3=mm³ (µl) +VolumeUnitfoot3=ft³ +VolumeUnitinch3=in³ +VolumeUnitounce=ounce +VolumeUnitlitre=litre +VolumeUnitgallon=gallon +SizeUnitm=m +SizeUnitdm=dm +SizeUnitcm=cm +SizeUnitmm=mm +SizeUnitinch=inch +SizeUnitfoot=foot +SizeUnitpoint=point +BugTracker=Bug tracker +SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +BackToLoginPage=Back to login page +AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
    In this mode, Dolibarr can't know nor change your password.
    Contact your system administrator if you want to change your password. +EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. +ProfIdShortDesc=Prof Id %s is an information depending on third party country.
    For example, for country %s, it's code %s. +DolibarrDemo=Dolibarr ERP/CRM demo +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics for number of referring entities (no. of invoices, or orders...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of sales orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of vendor proposals +NumberOfSupplierOrders=Number of purchase orders +NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts +NumberOfMos=Number of manufacturing orders +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on sales orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on vendor proposals +NumberOfUnitsSupplierOrders=Number of units on purchase orders +NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts +NumberOfUnitsMos=Number of units to produce in manufacturing orders +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. +EMailTextInterventionValidated=The intervention %s has been validated. +EMailTextInvoiceValidated=Invoice %s has been validated. +EMailTextInvoicePayed=Invoice %s has been paid. +EMailTextProposalValidated=Proposal %s has been validated. +EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextOrderValidated=Order %s has been validated. +EMailTextOrderApproved=Order %s has been approved. +EMailTextOrderValidatedBy=Order %s has been recorded by %s. +EMailTextOrderApprovedBy=Order %s has been approved by %s. +EMailTextOrderRefused=Order %s has been refused. +EMailTextOrderRefusedBy=Order %s has been refused by %s. +EMailTextExpeditionValidated=Shipping %s has been validated. +EMailTextExpenseReportValidated=Expense report %s has been validated. +EMailTextExpenseReportApproved=Expense report %s has been approved. +EMailTextHolidayValidated=Leave request %s has been validated. +EMailTextHolidayApproved=Leave request %s has been approved. +EMailTextActionAdded=The action %s has been added to the Agenda. +ImportedWithSet=Importation data set +DolibarrNotification=Automatic notification +ResizeDesc=Enter new width OR new height. Ratio will be kept during resizing... +NewLength=New width +NewHeight=New height +NewSizeAfterCropping=New size after cropping +DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner) +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image +ImageEditor=Image editor +YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s. +YouReceiveMailBecauseOfNotification2=This event is the following: +ThisIsListOfModules=This is a list of modules preselected by this demo profile (only most common modules are visible in this demo). Edit this to have a more personalized demo and click on "Start". +UseAdvancedPerms=Use the advanced permissions of some modules +FileFormat=File format +SelectAColor=Choose a color +AddFiles=Add Files +StartUpload=Start upload +CancelUpload=Cancel upload +FileIsTooBig=Files is too big +PleaseBePatient=Please be patient... +NewPassword=New password +ResetPassword=Reset password +RequestToResetPasswordReceived=A request to change your password has been received. +NewKeyIs=This is your new keys to login +NewKeyWillBe=Your new key to login to software will be +ClickHereToGoTo=Click here to go to %s +YouMustClickToChange=You must however first click on the following link to validate this password change +ConfirmPasswordChange=Confirm password change +ForgetIfNothing=If you didn't request this change, just forget this email. Your credentials are kept safe. +IfAmountHigherThan=If amount higher than %s +SourcesRepository=Repository for sources +Chart=Chart +PassEncoding=Password encoding +PermissionsAdd=Permissions added +PermissionsDelete=Permissions removed +YourPasswordMustHaveAtLeastXChars=Your password must have at least %s chars +PasswordNeedAtLeastXUpperCaseChars=The password need at least %s upper case chars +PasswordNeedAtLeastXDigitChars=The password need at least %s numeric chars +PasswordNeedAtLeastXSpecialChars=The password need at least %s special chars +PasswordNeedNoXConsecutiveChars=The password must not have %s consecutive similar chars +YourPasswordHasBeenReset=Your password has been reset successfully +ApplicantIpAddress=IP address of applicant +SMSSentTo=SMS sent to %s +MissingIds=Missing ids +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s +ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s +ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s +TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s +OpeningHoursFormatDesc=Use a - to separate opening and closing hours.
    Use a space to enter different ranges.
    Example: 8-12 14-18 +SuffixSessionName=Suffix for session name +LoginWith=Login with %s + +##### Export ##### +ExportsArea=Exports area +AvailableFormats=Available formats +LibraryUsed=Library used +LibraryVersion=Library version +ExportableDatas=Exportable data +NoExportableData=No exportable data (no modules with exportable data loaded, or missing permissions) +##### External sites ##### +WebsiteSetup=Setup of module website +WEBSITE_PAGEURL=URL of page +WEBSITE_TITLE=Title +WEBSITE_DESCRIPTION=Description +WEBSITE_IMAGE=Image +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a thumbnail in a list of blog posts). Use __WEBSITE_KEY__ in the path if path depends on website name (for example: image/__WEBSITE_KEY__/stories/myimage.png). +WEBSITE_KEYWORDS=Keywords +LinesToImport=Lines to import + +MemoryUsage=Memory usage +RequestDuration=Duration of request +ProductsPerPopularity=Products/Services by popularity +PopuProp=Products/Services by popularity in Proposals +PopuCom=Products/Services by popularity in Orders +ProductStatistics=Products/Services Statistics +NbOfQtyInOrders=Qty in orders +SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... + +ConfirmBtnCommonContent = Are you sure you want to "%s" ? +ConfirmBtnCommonTitle = Confirm your action +CloseDialog = Close +Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup link to external website +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# FTP +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/FTPS connection setup +FTPArea=FTP/FTPS Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Failed to remove file %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ms_MY/partnership.lang b/htdocs/langs/ms_MY/partnership.lang new file mode 100644 index 00000000000..5abf907730f --- /dev/null +++ b/htdocs/langs/ms_MY/partnership.lang @@ -0,0 +1,94 @@ +# Copyright (C) 2021 NextGestion +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Generic +# +ModulePartnershipName=Partnership management +PartnershipDescription=Module Partnership management +PartnershipDescriptionLong= Module Partnership management +Partnership=Partnership +AddPartnership=Add partnership +CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions +PartnershipCheckBacklink=Partnership: Check referring backlink + +# +# Menu +# +NewPartnership=New Partnership +ListOfPartnerships=List of partnership + +# +# Admin page +# +PartnershipSetup=Partnership setup +PartnershipAbout=About Partnership +PartnershipAboutPage=Partnership about page +partnershipforthirdpartyormember=Partner status must be set on a 'thirdparty' or a 'member' +PARTNERSHIP_IS_MANAGED_FOR=Partnership managed for +PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks to check +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb of days before cancelling status of a partnership when a subscription has expired +ReferingWebsiteCheck=Check of website referring +ReferingWebsiteCheckDesc=You can enable a feature to check that your partners has added a backlink to your website domains on their own website. +PublicFormRegistrationPartnerDesc=Dolibarr can provide you a public URL/website to allow external visitors to request to be part of the partnership program. + +# +# Object +# +DeletePartnership=Delete a partnership +PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party +PartnershipDedicatedToThisMember=Partnership dedicated to this member +DatePartnershipStart=Start date +DatePartnershipEnd=End date +ReasonDecline=Decline reason +ReasonDeclineOrCancel=Decline reason +PartnershipAlreadyExist=Partnership already exist +ManagePartnership=Manage partnership +BacklinkNotFoundOnPartnerWebsite=Backlink not found on partner website +ConfirmClosePartnershipAsk=Are you sure you want to cancel this partnership? +PartnershipType=Partnership type +PartnershipRefApproved=Partnership %s approved +KeywordToCheckInWebsite=If you want to check that a given keyword is present into the website of each partner, define this keyword here +PartnershipDraft=Draft +PartnershipAccepted=Accepted +PartnershipRefused=Refused +PartnershipCanceled=Canceled +PartnershipManagedFor=Partners are + +# +# Template Mail +# +SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled +SendingEmailOnPartnershipRefused=Partnership refused +SendingEmailOnPartnershipAccepted=Partnership accepted +SendingEmailOnPartnershipCanceled=Partnership canceled + +YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled +YourPartnershipRefusedTopic=Partnership refused +YourPartnershipAcceptedTopic=Partnership accepted +YourPartnershipCanceledTopic=Partnership canceled + +YourPartnershipWillSoonBeCanceledContent=We inform you that your partnership will soon be canceled (Backlink not found) +YourPartnershipRefusedContent=We inform you that your partnership request has been refused. +YourPartnershipAcceptedContent=We inform you that your partnership request has been accepted. +YourPartnershipCanceledContent=We inform you that your partnership has been canceled. + +CountLastUrlCheckError=Number of errors for last URL check +LastCheckBacklink=Date of last URL check +ReasonDeclineOrCancel=Decline reason + +NewPartnershipRequest=New partnership request +NewPartnershipRequestDesc=This form allows you to request to be part of one of our partnership program. If you need help to fill this form, please contact by email %s. + diff --git a/htdocs/langs/ms_MY/paybox.lang b/htdocs/langs/ms_MY/paybox.lang new file mode 100644 index 00000000000..a2bfb1773e4 --- /dev/null +++ b/htdocs/langs/ms_MY/paybox.lang @@ -0,0 +1,30 @@ +# Dolibarr language file - Source file is en_US - paybox +PayBoxSetup=PayBox module setup +PayBoxDesc=This module offer pages to allow payment on Paybox by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome to our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +Creditor=Creditor +PaymentCode=Payment code +PayBoxDoPayment=Pay with Paybox +YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information +Continue=Next +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +PAYBOX_CGI_URL_V2=Url of Paybox CGI module for payment +CSSUrlForPaymentForm=CSS style sheet url for payment form +NewPayboxPaymentReceived=New Paybox payment received +NewPayboxPaymentFailed=New Paybox payment tried but failed +PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail) +PAYBOX_PBX_SITE=Value for PBX SITE +PAYBOX_PBX_RANG=Value for PBX Rang +PAYBOX_PBX_IDENTIFIANT=Value for PBX ID +PAYBOX_HMAC_KEY=HMAC key diff --git a/htdocs/langs/ms_MY/paypal.lang b/htdocs/langs/ms_MY/paypal.lang new file mode 100644 index 00000000000..a935cd38434 --- /dev/null +++ b/htdocs/langs/ms_MY/paypal.lang @@ -0,0 +1,37 @@ +# Dolibarr language file - Source file is en_US - paypal +PaypalSetup=PayPal module setup +PaypalDesc=This module allows payment by customers via PayPal. This can be used for a ad-hoc payment or for a payment related to a Dolibarr object (invoice, order, ...) +PaypalOrCBDoPayment=Pay with PayPal (Card or PayPal) +PaypalDoPayment=Pay with PayPal +PAYPAL_API_SANDBOX=Mode test/sandbox +PAYPAL_API_USER=API username +PAYPAL_API_PASSWORD=API password +PAYPAL_API_SIGNATURE=API signature +PAYPAL_SSLVERSION=Curl SSL Version +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer "integral" payment (Credit card+PayPal) or "PayPal" only +PaypalModeIntegral=Integral +PaypalModeOnlyPaypal=PayPal only +ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page +ThisIsTransactionId=This is id of transaction: %s +PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed +ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail) +ReturnURLAfterPayment=Return URL after payment +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error +SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. +DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. +DetailedErrorMessage=Detailed Error Message +ShortErrorMessage=Short Error Message +ErrorCode=Error Code +ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode) +PaypalImportPayment=Import PayPal payments +PostActionAfterPayment=Post actions after payments +ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. +ValidationOfPaymentFailed=Validation of payment has failed +CardOwner=Card holder +PayPalBalance=Paypal credit +OnlineSubscriptionPaymentLine=Online subscription recorded on %s
    Paid via %s
    Originating IP address: %s
    Transaction ID: %s diff --git a/htdocs/langs/ms_MY/printing.lang b/htdocs/langs/ms_MY/printing.lang new file mode 100644 index 00000000000..bd9094f213d --- /dev/null +++ b/htdocs/langs/ms_MY/printing.lang @@ -0,0 +1,54 @@ +# Dolibarr language file - Source file is en_US - printing +Module64000Name=One click Printing +Module64000Desc=Enable One click Printing System +PrintingSetup=Setup of One click Printing System +PrintingDesc=This module adds a Print button to various modules to allow documents to be printed directly to a printer with no need to open the document into another application. +MenuDirectPrinting=One click Printing jobs +DirectPrint=One click Print +PrintingDriverDesc=Configuration variables for printing driver. +ListDrivers=List of drivers +PrintTestDesc=List of Printers. +FileWasSentToPrinter=File %s was sent to printer +ViaModule=via the module +NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s. +PleaseSelectaDriverfromList=Please select a driver from list. +PleaseConfigureDriverfromList=Please configure the selected driver from list. +SetupDriver=Driver setup +TargetedPrinter=Targeted printer +UserConf=Setup per user +PRINTGCP_INFO=Google OAuth API setup +PRINTGCP_AUTHLINK=Authentication +PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token +PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. +GCP_Name=Name +GCP_displayName=Display Name +GCP_Id=Printer Id +GCP_OwnerName=Owner Name +GCP_State=Printer State +GCP_connectionStatus=Online State +GCP_Type=Printer Type +PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. +PRINTIPP_HOST=Print server +PRINTIPP_PORT=Port +PRINTIPP_USER=Login +PRINTIPP_PASSWORD=Password +NoDefaultPrinterDefined=No default printer defined +DefaultPrinter=Default printer +Printer=Printer +IPP_Uri=Printer Uri +IPP_Name=Printer Name +IPP_State=Printer State +IPP_State_reason=State reason +IPP_State_reason1=State reason1 +IPP_BW=BW +IPP_Color=Color +IPP_Device=Device +IPP_Media=Printer media +IPP_Supported=Type of media +DirectPrintingJobsDesc=This page lists printing jobs found for available printers. +GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. +PrintingDriverDescprintipp=Configuration variables for printing driver Cups. +PrintTestDescprintgcp=List of Printers for Google Cloud Print. +PrintTestDescprintipp=List of Printers for Cups. diff --git a/htdocs/langs/ms_MY/productbatch.lang b/htdocs/langs/ms_MY/productbatch.lang new file mode 100644 index 00000000000..4bd64f44577 --- /dev/null +++ b/htdocs/langs/ms_MY/productbatch.lang @@ -0,0 +1,46 @@ +# ProductBATCH language file - Source file is en_US - ProductBATCH +ManageLotSerial=Use lot/serial number +ProductStatusOnBatch=Yes (lot required) +ProductStatusOnSerial=Yes (unique serial number required) +ProductStatusNotOnBatch=No (lot/serial not used) +ProductStatusOnBatchShort=Lot +ProductStatusOnSerialShort=Serial +ProductStatusNotOnBatchShort=No +Batch=Lot/Serial +atleast1batchfield=Eat-by date or Sell-by date or Lot/Serial number +batch_number=Lot/Serial number +BatchNumberShort=Lot/Serial +EatByDate=Eat-by date +SellByDate=Sell-by date +DetailBatchNumber=Lot/Serial details +printBatch=Lot/Serial: %s +printEatby=Eat-by: %s +printSellby=Sell-by: %s +printQty=Qty: %d +AddDispatchBatchLine=Add a line for Shelf Life dispatching +WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic stock decrease is forced to 'Decrease real stocks on shipping validation' and automatic increase mode is forced to 'Increase real stocks on manual dispatching into warehouses' and can't be edited. Other options can be defined as you want. +ProductDoesNotUseBatchSerial=This product does not use lot/serial number +ProductLotSetup=Setup of module lot/serial +ShowCurrentStockOfLot=Show current stock for couple product/lot +ShowLogOfMovementIfLot=Show log of movements for couple product/lot +StockDetailPerBatch=Stock detail per lot +SerialNumberAlreadyInUse=Serial number %s is already used for product %s +TooManyQtyForSerialNumber=You can only have one product %s for serial number %s +ManageLotMask=Custom mask +CustomMasks=Option to define a different numbering mask for each product +BatchLotNumberingModules=Numbering rule for automatic generation of lot number +BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product) +QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned +LifeTime=Life span (in days) +EndOfLife=End of life +ManufacturingDate=Manufacturing date +DestructionDate=Destruction date +FirstUseDate=First use date +QCFrequency=Quality control frequency (in days) +ShowAllLots=Show all lots +HideLots=Hide lots +#Traceability - qc status +OutOfOrder=Out of order +InWorkingOrder=In working order +ToReplace=Replace +CantMoveNonExistantSerial=Error. You ask a move on a record for a serial that does not exists anymore. May be you take the same serial on same warehouse several times in same shipment or it was used by another shipment. Remove this shipment and prepare another one. diff --git a/htdocs/langs/ms_MY/products.lang b/htdocs/langs/ms_MY/products.lang new file mode 100644 index 00000000000..94d77315217 --- /dev/null +++ b/htdocs/langs/ms_MY/products.lang @@ -0,0 +1,429 @@ +# Dolibarr language file - Source file is en_US - products +ProductRef=Product ref. +ProductLabel=Product label +ProductLabelTranslated=Translated product label +ProductDescription=Product description +ProductDescriptionTranslated=Translated product description +ProductNoteTranslated=Translated product note +ProductServiceCard=Products/Services card +TMenuProducts=Products +TMenuServices=Services +Products=Products +Services=Services +Product=Product +Service=Service +ProductId=Product/service id +Create=Create +Reference=Reference +NewProduct=New product +NewService=New service +ProductVatMassChange=Global VAT Update +ProductVatMassChangeDesc=This tool updates the VAT rate defined on ALL products and services! +MassBarcodeInit=Mass barcode init +MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete. +ProductAccountancyBuyCode=Accounting code (purchase) +ProductAccountancyBuyIntraCode=Accounting code (purchase intra-community) +ProductAccountancyBuyExportCode=Accounting code (purchase import) +ProductAccountancySellCode=Accounting code (sale) +ProductAccountancySellIntraCode=Accounting code (sale intra-Community) +ProductAccountancySellExportCode=Accounting code (sale export) +ProductOrService=Product or Service +ProductsAndServices=Products and Services +ProductsOrServices=Products or Services +ProductsPipeServices=Products | Services +ProductsOnSale=Products for sale +ProductsOnPurchase=Products for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase +ProductsOnSellAndOnBuy=Products for sale and for purchase +ServicesOnSale=Services for sale +ServicesOnPurchase=Services for purchase +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase +ServicesOnSellAndOnBuy=Services for sale and for purchase +LastModifiedProductsAndServices=Latest %s products/services which were modified +LastRecordedProducts=Latest %s recorded products +LastRecordedServices=Latest %s recorded services +CardProduct0=Product +CardProduct1=Service +Stock=Stock +MenuStocks=Stocks +Stocks=Stocks and location (warehouse) of products +Movements=Movements +Sell=Sell +Buy=Purchase +OnSell=For sale +OnBuy=For purchase +NotOnSell=Not for sale +ProductStatusOnSell=For sale +ProductStatusNotOnSell=Not for sale +ProductStatusOnSellShort=For sale +ProductStatusNotOnSellShort=Not for sale +ProductStatusOnBuy=For purchase +ProductStatusNotOnBuy=Not for purchase +ProductStatusOnBuyShort=For purchase +ProductStatusNotOnBuyShort=Not for purchase +UpdateVAT=Update vat +UpdateDefaultPrice=Update default price +UpdateLevelPrices=Update prices for each level +AppliedPricesFrom=Applied from +SellingPrice=Selling price +SellingPriceHT=Selling price (excl. tax) +SellingPriceTTC=Selling price (inc. tax) +SellingMinPriceTTC=Minimum Selling price (inc. tax) +CostPriceDescription=This price field (excl. tax) can be used to capture the average amount this product costs to your company. It may be any price you calculate yourself, for example, from the average buying price plus average production and distribution cost. +CostPriceUsage=This value could be used for margin calculation. +ManufacturingPrice=Manufacturing price +SoldAmount=Sold amount +PurchasedAmount=Purchased amount +NewPrice=New price +MinPrice=Min. selling price +EditSellingPriceLabel=Edit selling price label +CantBeLessThanMinPrice=The selling price can't be lower than minimum allowed for this product (%s without tax). This message can also appears if you type a too important discount. +ContractStatusClosed=Closed +ErrorProductAlreadyExists=A product with reference %s already exists. +ErrorProductBadRefOrLabel=Wrong value for reference or label. +ErrorProductClone=There was a problem while trying to clone the product or service. +ErrorPriceCantBeLowerThanMinPrice=Error, price can't be lower than minimum price. +Suppliers=Vendors +SupplierRef=Vendor SKU +ShowProduct=Show product +ShowService=Show service +ProductsAndServicesArea=Product and Services area +ProductsArea=Product area +ServicesArea=Services area +ListOfStockMovements=List of stock movements +BuyingPrice=Buying price +PriceForEachProduct=Products with specific prices +SupplierCard=Vendor card +PriceRemoved=Price removed +BarCode=Barcode +BarcodeType=Barcode type +SetDefaultBarcodeType=Set barcode type +BarcodeValue=Barcode value +NoteNotVisibleOnBill=Note (not visible on invoices, proposals...) +ServiceLimitedDuration=If product is a service with limited duration: +FillWithLastServiceDates=Fill with last service line dates +MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment) +MultiPricesNumPrices=Number of prices +DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices +AssociatedProductsAbility=Enable Kits (set of several products) +VariantsAbility=Enable Variants (variations of products, for example color, size) +AssociatedProducts=Kits +AssociatedProductsNumber=Number of products composing this kit +ParentProductsNumber=Number of parent packaging product +ParentProducts=Parent products +IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit +IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit +KeywordFilter=Keyword filter +CategoryFilter=Category filter +ProductToAddSearch=Search product to add +NoMatchFound=No match found +ListOfProductsServices=List of products/services +ProductAssociationList=List of products/services that are component(s) of this kit +ProductParentList=List of kits with this product as a component +ErrorAssociationIsFatherOfThis=One of selected product is parent with current product +DeleteProduct=Delete a product/service +ConfirmDeleteProduct=Are you sure you want to delete this product/service? +ProductDeleted=Product/Service "%s" deleted from database. +ExportDataset_produit_1=Products +ExportDataset_service_1=Services +ImportDataset_produit_1=Products +ImportDataset_service_1=Services +DeleteProductLine=Delete product line +ConfirmDeleteProductLine=Are you sure you want to delete this product line? +ProductSpecial=Special +QtyMin=Min. purchase quantity +PriceQtyMin=Price quantity min. +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount +VATRateForSupplierProduct=VAT Rate (for this vendor/product) +DiscountQtyMin=Discount for this qty. +NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product +NoSupplierPriceDefinedForThisProduct=No vendor price/qty defined for this product +PredefinedItem=Predefined item +PredefinedProductsToSell=Predefined Product +PredefinedServicesToSell=Predefined Service +PredefinedProductsAndServicesToSell=Predefined products/services to sell +PredefinedProductsToPurchase=Predefined product to purchase +PredefinedServicesToPurchase=Predefined services to purchase +PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase +NotPredefinedProducts=Not predefined products/services +GenerateThumb=Generate thumb +ServiceNb=Service #%s +ListProductServiceByPopularity=List of products/services by popularity +ListProductByPopularity=List of products by popularity +ListServiceByPopularity=List of services by popularity +Finished=Manufactured product +RowMaterial=Raw Material +ConfirmCloneProduct=Are you sure you want to clone product or service %s? +CloneContentProduct=Clone all main information of the product/service +ClonePricesProduct=Clone prices +CloneCategoriesProduct=Clone linked tags/categories +CloneCompositionProduct=Clone virtual products/services +CloneCombinationsProduct=Clone the product variants +ProductIsUsed=This product is used +NewRefForClone=Ref. of new product/service +SellingPrices=Selling prices +BuyingPrices=Buying prices +CustomerPrices=Customer prices +SuppliersPrices=Vendor prices +SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) +CustomCode=Customs|Commodity|HS code +CountryOrigin=Country of origin +RegionStateOrigin=Region of origin +StateOrigin=State|Province of origin +Nature=Nature of product (raw/manufactured) +NatureOfProductShort=Nature of product +NatureOfProductDesc=Raw material or manufactured product +ShortLabel=Short label +Unit=Unit +p=u. +set=set +se=set +second=second +s=s +hour=hour +h=h +day=day +d=d +kilogram=kilogram +kg=Kg +gram=gram +g=g +meter=meter +m=m +lm=lm +m2=m² +m3=m³ +liter=liter +l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter +unitT=ton +unitKG=kg +unitG=Gram +unitMG=mg +unitLB=pound +unitOZ=ounce +unitM=Meter +unitDM=dm +unitCM=cm +unitMM=mm +unitFT=ft +unitIN=in +unitM2=Square meter +unitDM2=dm² +unitCM2=cm² +unitMM2=mm² +unitFT2=ft² +unitIN2=in² +unitM3=Cubic meter +unitDM3=dm³ +unitCM3=cm³ +unitMM3=mm³ +unitFT3=ft³ +unitIN3=in³ +unitOZ3=ounce +unitgallon=gallon +ProductCodeModel=Product ref template +ServiceCodeModel=Service ref template +CurrentProductPrice=Current price +AlwaysUseNewPrice=Always use current price of product/service +AlwaysUseFixedPrice=Use the fixed price +PriceByQuantity=Different prices by quantity +DisablePriceByQty=Disable prices by quantity +PriceByQuantityRange=Quantity range +MultipriceRules=Automatic prices for segment +UseMultipriceRules=Use price segment rules (defined into product module setup) to auto calculate prices of all other segments according to first segment +PercentVariationOver=%% variation over %s +PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products +VariantRefExample=Examples: COL, SIZE +VariantLabelExample=Examples: Color, Size +### composition fabrication +Build=Produce +ProductsMultiPrice=Products and prices for each price segment +ProductsOrServiceMultiPrice=Customer prices (of products or services, multi-prices) +ProductSellByQuarterHT=Products turnover quarterly before tax +ServiceSellByQuarterHT=Services turnover quarterly before tax +Quarter1=1st. Quarter +Quarter2=2nd. Quarter +Quarter3=3rd. Quarter +Quarter4=4th. Quarter +BarCodePrintsheet=Print barcodes +PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. +NumberOfStickers=Number of stickers to print on page +PrintsheetForOneBarCode=Print several stickers for one barcode +BuildPageToPrint=Generate page to print +FillBarCodeTypeAndValueManually=Fill barcode type and value manually. +FillBarCodeTypeAndValueFromProduct=Fill barcode type and value from barcode of a product. +FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. +DefinitionOfBarCodeForProductNotComplete=Definition of type or value of barcode not complete for product %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of barcode non complete for third party %s. +BarCodeDataForProduct=Barcode information of product %s: +BarCodeDataForThirdparty=Barcode information of third party %s: +ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) +PriceByCustomer=Different prices for each customer +PriceCatalogue=A single sell price per product/service +PricingRule=Rules for selling prices +AddCustomerPrice=Add price by customer +ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries +PriceByCustomerLog=Log of previous customer prices +MinimumPriceLimit=Minimum price can't be lower then %s +MinimumRecommendedPrice=Minimum recommended price is: %s +PriceExpressionEditor=Price expression editor +PriceExpressionSelected=Selected price expression +PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions +PriceExpressionEditorHelp2=You can access ExtraFields with variables like #extrafield_myextrafieldkey# and global variables with #global_mycode# +PriceExpressionEditorHelp3=In both product/service and vendor prices there are these variables available:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# +PriceExpressionEditorHelp4=In product/service price only: #supplier_min_price#
    In vendor prices only: #supplier_quantity# and #supplier_tva_tx# +PriceExpressionEditorHelp5=Available global values: +PriceMode=Price mode +PriceNumeric=Number +DefaultPrice=Default price +DefaultPriceLog=Log of previous default prices +ComposedProductIncDecStock=Increase/Decrease stock on parent change +ComposedProduct=Child products +MinSupplierPrice=Minimum buying price +MinCustomerPrice=Minimum selling price +NoDynamicPrice=No dynamic price +DynamicPriceConfiguration=Dynamic price configuration +DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically. +AddVariable=Add Variable +AddUpdater=Add Updater +GlobalVariables=Global variables +VariableToUpdate=Variable to update +GlobalVariableUpdaters=External updaters for variables +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} +UpdateInterval=Update interval (minutes) +LastUpdated=Latest update +CorrectlyUpdated=Correctly updated +PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is +PropalMergePdfProductChooseFile=Select PDF files +IncludingProductWithTag=Including products/services with the tag +DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer +WarningSelectOneDocument=Please select at least one document +DefaultUnitToShow=Unit +NbOfQtyInProposals=Qty in proposals +ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view... +ProductsOrServicesTranslations=Products/Services translations +TranslatedLabel=Translated label +TranslatedDescription=Translated description +TranslatedNote=Translated notes +ProductWeight=Weight for 1 product +ProductVolume=Volume for 1 product +WeightUnits=Weight unit +VolumeUnits=Volume unit +WidthUnits=Width unit +LengthUnits=Length unit +HeightUnits=Height unit +SurfaceUnits=Surface unit +SizeUnits=Size unit +DeleteProductBuyPrice=Delete buying price +ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? +SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet +PossibleValues=Possible values +GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...) +UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers +ProductSupplierDescription=Vendor description for the product +UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) +PackagingForThisProduct=Packaging +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. +QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging + +#Attributes +VariantAttributes=Variant attributes +ProductAttributes=Variant attributes for products +ProductAttributeName=Variant attribute %s +ProductAttribute=Variant attribute +ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted +ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? +ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? +ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object +ProductCombinations=Variants +PropagateVariant=Propagate variants +HideProductCombinations=Hide products variant in the products selector +ProductCombination=Variant +NewProductCombination=New variant +EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination +ProductCombinationGenerator=Variants generator +Features=Features +PriceImpact=Price impact +ImpactOnPriceLevel=Impact on price level %s +ApplyToAllPriceImpactLevel= Apply to all levels +ApplyToAllPriceImpactLevelHelp=By clicking here you set the same price impact on all levels +WeightImpact=Weight impact +NewProductAttribute=New attribute +NewProductAttributeValue=New attribute value +ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference +ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values +TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. +DoNotRemovePreviousCombinations=Do not remove previous variants +UsePercentageVariations=Use percentage variations +PercentageVariation=Percentage variation +ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants +NbOfDifferentValues=No. of different values +NbProducts=Number of products +ParentProduct=Parent product +HideChildProducts=Hide variant products +ShowChildProducts=Show variant products +NoEditVariants=Go to Parent product card and edit variants price impact in the variants tab +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? +CloneDestinationReference=Destination product reference +ErrorCopyProductCombinations=There was an error while copying the product variants +ErrorDestinationProductNotFound=Destination product not found +ErrorProductCombinationNotFound=Product variant not found +ActionAvailableOnVariantProductOnly=Action only available on the variant of product +ProductsPricePerCustomer=Product prices per customers +ProductSupplierExtraFields=Additional Attributes (Supplier Prices) +DeleteLinkedProduct=Delete the child product linked to the combination +AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +PMPValue=Weighted average price +PMPValueShort=WAP +mandatoryperiod=Mandatory periods +mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined +mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period +mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
    Note that the message is a warning and not a blocking error. +DefaultBOM=Default BOM +DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. +Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge +SwitchOnSaleStatus=Switch on sale status +SwitchOnPurchaseStatus=Switch on purchase status +StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield diff --git a/htdocs/langs/ms_MY/projects.lang b/htdocs/langs/ms_MY/projects.lang new file mode 100644 index 00000000000..8cf5e79f071 --- /dev/null +++ b/htdocs/langs/ms_MY/projects.lang @@ -0,0 +1,297 @@ +# Dolibarr language file - Source file is en_US - projects +RefProject=Ref. project +ProjectRef=Project ref. +ProjectId=Project Id +ProjectLabel=Project label +ProjectsArea=Projects Area +ProjectStatus=Project status +SharedProject=Everybody +PrivateProject=Assigned contacts +ProjectsImContactFor=Projects for which I am explicitly a contact +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects +MyProjectsDesc=This view is limited to the projects that you are a contact for +ProjectsPublicDesc=This view presents all projects you are allowed to read. +TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. +ProjectsPublicTaskDesc=This view presents all projects and tasks you are allowed to read. +ProjectsDesc=This view presents all projects (your user permissions grant you permission to view everything). +TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything). +MyTasksDesc=This view is limited to the projects or tasks that you are a contact for +OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible). +ClosedProjectsAreHidden=Closed projects are not visible. +TasksPublicDesc=This view presents all projects and tasks you are allowed to read. +TasksDesc=This view presents all projects and tasks (your user permissions grant you permission to view everything). +AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it. +OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories +NewProject=New project +AddProject=Create project +DeleteAProject=Delete a project +DeleteATask=Delete a task +ConfirmDeleteAProject=Are you sure you want to delete this project? +ConfirmDeleteATask=Are you sure you want to delete this task? +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status +OpportunitiesStatusForProjects=Leads amount of projects by status +ShowProject=Show project +ShowTask=Show task +SetProject=Set project +NoProject=No project defined or owned +NbOfProjects=Number of projects +NbOfTasks=Number of tasks +TimeSpent=Time spent +TimeSpentByYou=Time spent by you +TimeSpentByUser=Time spent by user +TimesSpent=Time spent +TaskId=Task ID +RefTask=Task ref. +LabelTask=Task label +TaskTimeSpent=Time spent on tasks +TaskTimeUser=User +TaskTimeNote=Note +TaskTimeDate=Date +TasksOnOpenedProject=Tasks on open projects +WorkloadNotDefined=Workload not defined +NewTimeSpent=Time spent +MyTimeSpent=My time spent +BillTime=Bill the time spent +BillTimeShort=Bill time +TimeToBill=Time not billed +TimeBilled=Time billed +Tasks=Tasks +Task=Task +TaskDateStart=Task start date +TaskDateEnd=Task end date +TaskDescription=Task description +NewTask=New task +AddTask=Create task +AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task +AddHereTimeSpentForWeek=Add here time spent for this week/task +Activity=Activity +Activities=Tasks/activities +MyActivities=My tasks/activities +MyProjects=My projects +MyProjectsArea=My projects Area +DurationEffective=Effective duration +ProgressDeclared=Declared real progress +TaskProgressSummary=Task progress +CurentlyOpenedTasks=Curently open tasks +TheReportedProgressIsLessThanTheCalculatedProgressionByX=The declared real progress is less %s than the progress on consumption +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=The declared real progress is more %s than the progress on consumption +ProgressCalculated=Progress on consumption +WhichIamLinkedTo=which I'm linked to +WhichIamLinkedToProject=which I'm linked to project +Time=Time +TimeConsumed=Consumed +ListOfTasks=List of tasks +GoToListOfTimeConsumed=Go to list of time consumed +GanttView=Gantt View +ListWarehouseAssociatedProject=List of warehouses associated to the project +ListProposalsAssociatedProject=List of the commercial proposals related to the project +ListOrdersAssociatedProject=List of sales orders related to the project +ListInvoicesAssociatedProject=List of customer invoices related to the project +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project +ListSupplierOrdersAssociatedProject=List of purchase orders related to the project +ListSupplierInvoicesAssociatedProject=List of vendor invoices related to the project +ListContractAssociatedProject=List of contracts related to the project +ListShippingAssociatedProject=List of shippings related to the project +ListFichinterAssociatedProject=List of interventions related to the project +ListExpenseReportsAssociatedProject=List of expense reports related to the project +ListDonationsAssociatedProject=List of donations related to the project +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project +ListSalariesAssociatedProject=List of payments of salaries related to the project +ListActionsAssociatedProject=List of events related to the project +ListMOAssociatedProject=List of manufacturing orders related to the project +ListTaskTimeUserProject=List of time consumed on tasks of project +ListTaskTimeForTask=List of time consumed on task +ActivityOnProjectToday=Activity on project today +ActivityOnProjectYesterday=Activity on project yesterday +ActivityOnProjectThisWeek=Activity on project this week +ActivityOnProjectThisMonth=Activity on project this month +ActivityOnProjectThisYear=Activity on project this year +ChildOfProjectTask=Child of project/task +ChildOfTask=Child of task +TaskHasChild=Task has child +NotOwnerOfProject=Not owner of this private project +AffectedTo=Allocated to +CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See tab '%s'. +ValidateProject=Validate projet +ConfirmValidateProject=Are you sure you want to validate this project? +CloseAProject=Close project +ConfirmCloseAProject=Are you sure you want to close this project? +AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +ReOpenAProject=Open project +ConfirmReOpenAProject=Are you sure you want to re-open this project? +ProjectContact=Contacts of project +TaskContact=Task contacts +ActionsOnProject=Events on project +YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project +DeleteATimeSpent=Delete time spent +ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? +DoNotShowMyTasksOnly=See also tasks not assigned to me +ShowMyTasksOnly=View only tasks assigned to me +TaskRessourceLinks=Contacts of task +ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party +NoTasks=No tasks for this project +LinkedToAnotherCompany=Linked to other third party +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +ErrorTimeSpentIsEmpty=Time spent is empty +TimeRecordingRestrictedToNMonthsBack=Time recording is restricted to %s months back +ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. +CloneTasks=Clone tasks +CloneContacts=Clone contacts +CloneNotes=Clone notes +CloneProjectFiles=Clone project joined files +CloneTaskFiles=Clone task(s) joined files (if task(s) cloned) +CloneMoveDate=Update project/tasks dates from now? +ConfirmCloneProject=Are you sure to clone this project? +ProjectReportDate=Change task dates according to new project start date +ErrorShiftTaskDate=Impossible to shift task date according to new project start date +ProjectsAndTasksLines=Projects and tasks +ProjectCreatedInDolibarr=Project %s created +ProjectValidatedInDolibarr=Project %s validated +ProjectModifiedInDolibarr=Project %s modified +TaskCreatedInDolibarr=Task %s created +TaskModifiedInDolibarr=Task %s modified +TaskDeletedInDolibarr=Task %s deleted +OpportunityStatus=Lead status +OpportunityStatusShort=Lead status +OpportunityProbability=Lead probability +OpportunityProbabilityShort=Lead probab. +OpportunityAmount=Lead amount +OpportunityAmountShort=Lead amount +OpportunityWeightedAmount=Opportunity weighted amount +OpportunityWeightedAmountShort=Opp. weighted amount +OpportunityAmountAverageShort=Average lead amount +OpportunityAmountWeigthedShort=Weighted lead amount +WonLostExcluded=Won/Lost excluded +##### Types de contacts ##### +TypeContact_project_internal_PROJECTLEADER=Project leader +TypeContact_project_external_PROJECTLEADER=Project leader +TypeContact_project_internal_PROJECTCONTRIBUTOR=Contributor +TypeContact_project_external_PROJECTCONTRIBUTOR=Contributor +TypeContact_project_task_internal_TASKEXECUTIVE=Task executive +TypeContact_project_task_external_TASKEXECUTIVE=Task executive +TypeContact_project_task_internal_TASKCONTRIBUTOR=Contributor +TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor +SelectElement=Select element +AddElement=Link to element +LinkToElementShort=Link to +# Documents models +DocumentModelBeluga=Project document template for linked objects overview +DocumentModelBaleine=Project document template for tasks +DocumentModelTimeSpent=Project report template for time spent +PlannedWorkload=Planned workload +PlannedWorkloadShort=Workload +ProjectReferers=Related items +ProjectMustBeValidatedFirst=Project must be validated first +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. +FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time +InputPerDay=Input per day +InputPerWeek=Input per week +InputPerMonth=Input per month +InputDetail=Input detail +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s +ProjectsWithThisUserAsContact=Projects with this user as contact +ProjectsWithThisContact=Projects with this contact +TasksWithThisUserAsContact=Tasks assigned to this user +ResourceNotAssignedToProject=Not assigned to project +ResourceNotAssignedToTheTask=Not assigned to the task +NoUserAssignedToTheProject=No users assigned to this project +TimeSpentBy=Time spent by +TasksAssignedTo=Tasks assigned to +AssignTaskToMe=Assign task to myself +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... +AssignTask=Assign +ProjectOverview=Overview +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets) +ManageOpportunitiesStatus=Use projects to follow leads/opportinuties +ProjectNbProjectByMonth=No. of created projects by month +ProjectNbTaskByMonth=No. of created tasks by month +ProjectOppAmountOfProjectsByMonth=Amount of leads by month +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month +ProjectOpenedProjectByOppStatus=Open project|lead by lead status +ProjectsStatistics=Statistics on projects or leads +TasksStatistics=Statistics on tasks of projects or leads +TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. +IdTaskTime=Id task time +YouCanCompleteRef=If you want to complete the ref with some suffix, it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-MYSUFFIX +OpenedProjectsByThirdparties=Open projects by third parties +OnlyOpportunitiesShort=Only leads +OpenedOpportunitiesShort=Open leads +NotOpenedOpportunitiesShort=Not an open lead +NotAnOpportunityShort=Not a lead +OpportunityTotalAmount=Total amount of leads +OpportunityPonderatedAmount=Weighted amount of leads +OpportunityPonderatedAmountDesc=Leads amount weighted with probability +OppStatusPROSP=Prospection +OppStatusQUAL=Qualification +OppStatusPROPO=Proposal +OppStatusNEGO=Negociation +OppStatusPENDING=Pending +OppStatusWON=Won +OppStatusLOST=Lost +Budget=Budget +AllowToLinkFromOtherCompany=Allow to link project from other company

    Supported values:
    - Keep empty: Can link any project of the company (default)
    - "all": Can link any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)
    +LatestProjects=Latest %s projects +LatestModifiedProjects=Latest %s modified projects +OtherFilteredTasks=Other filtered tasks +NoAssignedTasks=No assigned tasks found (assign project/tasks to the current user from the top select box to enter time on it) +ThirdPartyRequiredToGenerateInvoice=A third party must be defined on project to be able to invoice it. +ThirdPartyRequiredToGenerateInvoice=A third party must be defined on project to be able to invoice it. +ChooseANotYetAssignedTask=Choose a task not yet assigned to you +# Comments trans +AllowCommentOnTask=Allow user comments on tasks +AllowCommentOnProject=Allow user comments on projects +DontHavePermissionForCloseProject=You do not have permissions to close the project %s +DontHaveTheValidateStatus=The project %s must be open to be closed +RecordsClosed=%s project(s) closed +SendProjectRef=Information project %s +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Salaries' must be enabled to define employee hourly rate to have time spent valorized +NewTaskRefSuggested=Task ref already used, a new task ref is required +TimeSpentInvoiced=Time spent billed +TimeSpentForIntervention=Time spent +TimeSpentForInvoice=Time spent +OneLinePerUser=One line per user +ServiceToUseOnLines=Service to use on lines by default +InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project +InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project +ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. +ProjectFollowOpportunity=Follow opportunity +ProjectFollowTasks=Follow tasks or time spent +Usage=Usage +UsageOpportunity=Usage: Opportunity +UsageTasks=Usage: Tasks +UsageBillTimeShort=Usage: Bill time +InvoiceToUse=Draft invoice to use +InterToUse=Draft intervention to use +NewInvoice=New invoice +NewInter=New intervention +OneLinePerTask=One line per task +OneLinePerPeriod=One line per period +OneLinePerTimeSpentLine=One line for each time spent declaration +AddDetailDateAndDuration=With date and duration into line description +RefTaskParent=Ref. Parent Task +ProfitIsCalculatedWith=Profit is calculated using +AddPersonToTask=Add also to tasks +UsageOrganizeEvent=Usage: Event Organization +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them +ProjectTasksWithoutTimeSpent=Project tasks without time spent +FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. +ProjectsHavingThisContact=Projects having this contact +StartDateCannotBeAfterEndDate=End date cannot be before start date +ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types +LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form +EnablePublicLeadForm=Enable the public form for contact +NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. +NewLeadForm=New contact form +LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/ms_MY/propal.lang b/htdocs/langs/ms_MY/propal.lang new file mode 100644 index 00000000000..d86268dcc44 --- /dev/null +++ b/htdocs/langs/ms_MY/propal.lang @@ -0,0 +1,113 @@ +# Dolibarr language file - Source file is en_US - propal +Proposals=Commercial proposals +Proposal=Commercial proposal +ProposalShort=Proposal +ProposalsDraft=Draft commercial proposals +ProposalsOpened=Open commercial proposals +CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Proposal +ProposalCard=Proposal card +NewProp=New commercial proposal +NewPropal=New proposal +Prospect=Prospect +DeleteProp=Delete commercial proposal +ValidateProp=Validate commercial proposal +AddProp=Create proposal +ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? +ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? +LastPropals=Latest %s proposals +LastModifiedProposals=Latest %s modified proposals +AllPropals=All proposals +SearchAProposal=Search a proposal +NoProposal=No proposal +ProposalsStatistics=Commercial proposal's statistics +NumberOfProposalsByMonth=Number by month +AmountOfProposalsByMonthHT=Amount by month (excl. tax) +NbOfProposals=Number of commercial proposals +ShowPropal=Show proposal +PropalsDraft=Drafts +PropalsOpened=Open +PropalStatusDraft=Draft (needs to be validated) +PropalStatusValidated=Validated (proposal is open) +PropalStatusSigned=Signed (needs billing) +PropalStatusNotSigned=Not signed (closed) +PropalStatusBilled=Billed +PropalStatusDraftShort=Draft +PropalStatusValidatedShort=Validated (open) +PropalStatusClosedShort=Closed +PropalStatusSignedShort=Signed +PropalStatusNotSignedShort=Not signed +PropalStatusBilledShort=Billed +PropalsToClose=Commercial proposals to close +PropalsToBill=Signed commercial proposals to bill +ListOfProposals=List of commercial proposals +ActionsOnPropal=Events on proposal +RefProposal=Commercial proposal ref +SendPropalByMail=Send commercial proposal by mail +DatePropal=Date of proposal +DateEndPropal=Validity ending date +ValidityDuration=Validity duration +SetAcceptedRefused=Set accepted/refused +ErrorPropalNotFound=Propal %s not found +AddToDraftProposals=Add to draft proposal +NoDraftProposals=No draft proposals +CopyPropalFrom=Create commercial proposal by copying existing proposal +CreateEmptyPropal=Create empty commercial proposal or from list of products/services +DefaultProposalDurationValidity=Default commercial proposal validity duration (in days) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address +ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? +ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +ProposalsAndProposalsLines=Commercial proposal and lines +ProposalLine=Proposal line +ProposalLines=Proposal lines +AvailabilityPeriod=Availability delay +SetAvailability=Set availability delay +AfterOrder=after order +OtherProposals=Other proposals +##### Availability ##### +AvailabilityTypeAV_NOW=Immediate +AvailabilityTypeAV_1W=1 week +AvailabilityTypeAV_2W=2 weeks +AvailabilityTypeAV_3W=3 weeks +AvailabilityTypeAV_1M=1 month +##### Types de contacts ##### +TypeContact_propal_internal_SALESREPFOLL=Representative following-up proposal +TypeContact_propal_external_BILLING=Customer invoice contact +TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal +TypeContact_propal_external_SHIPPING=Customer contact for delivery +# Document models +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +DefaultModelPropalCreate=Default model creation +DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) +DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +ProposalCustomerSignature=Written acceptance, company stamp, date and signature +ProposalsStatisticsSuppliers=Vendor proposals statistics +CaseFollowedBy=Case followed by +SignedOnly=Signed only +NoSign=Set not signed +NoSigned=set not signed +CantBeNoSign=cannot be set not signed +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +IsNotADraft=is not a draft +PassedInOpenStatus=has been validated +Sign=Sign +Signed=signed +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +IdProposal=Proposal ID +IdProduct=Product ID +LineBuyPriceHT=Buy Price Amount net of tax for line +SignPropal=Accept proposal +RefusePropal=Refuse proposal +Sign=Sign +NoSign=Set not signed +PropalAlreadySigned=Proposal already accepted +PropalAlreadyRefused=Proposal already refused +PropalSigned=Proposal accepted +PropalRefused=Proposal refused +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? diff --git a/htdocs/langs/ms_MY/receiptprinter.lang b/htdocs/langs/ms_MY/receiptprinter.lang new file mode 100644 index 00000000000..df844b18958 --- /dev/null +++ b/htdocs/langs/ms_MY/receiptprinter.lang @@ -0,0 +1,84 @@ +# Dolibarr language file - Source file is en_US - receiptprinter +ReceiptPrinterSetup=Setup of module ReceiptPrinter +PrinterAdded=Printer %s added +PrinterUpdated=Printer %s updated +PrinterDeleted=Printer %s deleted +TestSentToPrinter=Test Sent To Printer %s +ReceiptPrinter=Receipt printers +ReceiptPrinterDesc=Setup of receipt printers +ReceiptPrinterTemplateDesc=Setup of Templates +ReceiptPrinterTypeDesc=Example of possible values for the field "Parameters" according to the type of driver +ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile +ListPrinters=List of Printers +SetupReceiptTemplate=Template Setup +CONNECTOR_DUMMY=Dummy Printer +CONNECTOR_NETWORK_PRINT=Network Printer +CONNECTOR_FILE_PRINT=Local Printer +CONNECTOR_WINDOWS_PRINT=Local Windows Printer +CONNECTOR_CUPS_PRINT=Cups Printer +CONNECTOR_DUMMY_HELP=Fake Printer for test, does nothing +CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 +CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1 +CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer +CONNECTOR_CUPS_PRINT_HELP=CUPS printer name, example: HPRT_TP805L +PROFILE_DEFAULT=Default Profile +PROFILE_SIMPLE=Simple Profile +PROFILE_EPOSTEP=Epos Tep Profile +PROFILE_P822D=P822D Profile +PROFILE_STAR=Star Profile +PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers +PROFILE_SIMPLE_HELP=Simple Profile No Graphics +PROFILE_EPOSTEP_HELP=Epos Tep Profile +PROFILE_P822D_HELP=P822D Profile No Graphics +PROFILE_STAR_HELP=Star Profile +DOL_LINE_FEED=Skip line +DOL_ALIGN_LEFT=Left align text +DOL_ALIGN_CENTER=Center text +DOL_ALIGN_RIGHT=Right align text +DOL_USE_FONT_A=Use font A of printer +DOL_USE_FONT_B=Use font B of printer +DOL_USE_FONT_C=Use font C of printer +DOL_PRINT_BARCODE=Print barcode +DOL_PRINT_BARCODE_CUSTOMER_ID=Print barcode customer id +DOL_CUT_PAPER_FULL=Cut ticket completely +DOL_CUT_PAPER_PARTIAL=Cut ticket partially +DOL_OPEN_DRAWER=Open cash drawer +DOL_ACTIVATE_BUZZER=Activate buzzer +DOL_PRINT_QRCODE=Print QR Code +DOL_PRINT_LOGO=Print logo of my company +DOL_PRINT_LOGO_OLD=Print logo of my company (old printers) +DOL_BOLD=Bold +DOL_BOLD_DISABLED=Disable bold +DOL_DOUBLE_HEIGHT=Double height size +DOL_DOUBLE_WIDTH=Double width size +DOL_DEFAULT_HEIGHT_WIDTH=Default height and width size +DOL_UNDERLINE=Enable underline +DOL_UNDERLINE_DISABLED=Disable underline +DOL_BEEP=Beep sound +DOL_BEEP_ALTERNATIVE=Beep sound (alternative mode) +DOL_PRINT_CURR_DATE=Print current date/time +DOL_PRINT_TEXT=Print text +DateInvoiceWithTime=Invoice date and time +YearInvoice=Invoice year +DOL_VALUE_MONTH_LETTERS=Invoice month in letters +DOL_VALUE_MONTH=Invoice month +DOL_VALUE_DAY=Invoice day +DOL_VALUE_DAY_LETTERS=Inovice day in letters +DOL_LINE_FEED_REVERSE=Line feed reverse +InvoiceID=Invoice ID +InvoiceRef=Invoice ref +DOL_PRINT_OBJECT_LINES=Invoice lines +DOL_VALUE_CUSTOMER_FIRSTNAME=Customer first name +DOL_VALUE_CUSTOMER_LASTNAME=Customer last name +DOL_VALUE_CUSTOMER_MAIL=Customer mail +DOL_VALUE_CUSTOMER_PHONE=Customer phone +DOL_VALUE_CUSTOMER_MOBILE=Customer mobile +DOL_VALUE_CUSTOMER_SKYPE=Customer Skype +DOL_VALUE_CUSTOMER_TAX_NUMBER=Customer tax number +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Customer account balance +DOL_VALUE_MYSOC_NAME=Your company name +VendorLastname=Vendor last name +VendorFirstname=Vendor first name +VendorEmail=Vendor email +DOL_VALUE_CUSTOMER_POINTS=Customer points +DOL_VALUE_OBJECT_POINTS=Object points diff --git a/htdocs/langs/ms_MY/receptions.lang b/htdocs/langs/ms_MY/receptions.lang new file mode 100644 index 00000000000..ece006d0bb6 --- /dev/null +++ b/htdocs/langs/ms_MY/receptions.lang @@ -0,0 +1,53 @@ +# Dolibarr language file - Source file is en_US - receptions +ReceptionDescription=Vendor reception management (Create reception documents) +ReceptionsSetup=Vendor Reception setup +RefReception=Ref. reception +Reception=Reception +Receptions=Receptions +AllReceptions=All Receptions +Reception=Reception +Receptions=Receptions +ShowReception=Show Receptions +ReceptionsArea=Receptions area +ListOfReceptions=List of receptions +ReceptionMethod=Reception method +LastReceptions=Latest %s receptions +StatisticsOfReceptions=Statistics for receptions +NbOfReceptions=Number of receptions +NumberOfReceptionsByMonth=Number of receptions by month +ReceptionCard=Reception card +NewReception=New reception +CreateReception=Create reception +QtyInOtherReceptions=Qty in other receptions +OtherReceptionsForSameOrder=Other receptions for this order +ReceptionsAndReceivingForSameOrder=Receptions and receipts for this order +ReceptionsToValidate=Receptions to validate +StatusReceptionCanceled=Canceled +StatusReceptionDraft=Draft +StatusReceptionValidated=Validated (products to receive or already received) +StatusReceptionValidatedToReceive=Validated (products to receive) +StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionProcessed=Processed +StatusReceptionDraftShort=Draft +StatusReceptionValidatedShort=Validated +StatusReceptionProcessedShort=Processed +ReceptionSheet=Reception sheet +ConfirmDeleteReception=Are you sure you want to delete this reception? +ConfirmValidateReception=Are you sure you want to validate this reception with reference %s? +ConfirmCancelReception=Are you sure you want to cancel this reception? +StatsOnReceptionsOnlyValidated=Statistics conducted on receptions only validated. Date used is date of validation of reception (planed delivery date is not always known). +SendReceptionByEMail=Send reception by email +SendReceptionRef=Submission of reception %s +ActionsOnReception=Events on reception +ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. +ReceptionLine=Reception line +ProductQtyInReceptionAlreadySent=Product quantity from open sales order already sent +ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplier order already received +ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions. +ReceptionsNumberingModules=Numbering module for receptions +ReceptionsReceiptModel=Document templates for receptions +NoMorePredefinedProductToDispatch=No more predefined products to dispatch +ReceptionExist=A reception exists +ReceptionBackToDraftInDolibarr=Reception %s back to draft +ReceptionClassifyClosedInDolibarr=Reception %s classified Closed +ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open diff --git a/htdocs/langs/ms_MY/recruitment.lang b/htdocs/langs/ms_MY/recruitment.lang new file mode 100644 index 00000000000..888f6fe5225 --- /dev/null +++ b/htdocs/langs/ms_MY/recruitment.lang @@ -0,0 +1,78 @@ +# Copyright (C) 2020 Laurent Destailleur +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Generic +# + +# Module label 'ModuleRecruitmentName' +ModuleRecruitmentName = Recruitment +# Module description 'ModuleRecruitmentDesc' +ModuleRecruitmentDesc = Manage and follow recruitment campaigns for new job positions + +# +# Admin page +# +RecruitmentSetup = Recruitment setup +Settings = Settings +RecruitmentSetupPage = Enter here the setup of main options for the recruitment module +RecruitmentArea=Recruitement area +PublicInterfaceRecruitmentDesc=Public pages of jobs are public URLs to show and answer to open jobs. There is one different link for each open job, found on each job record. +EnablePublicRecruitmentPages=Enable public pages of open jobs + +# +# About page +# +About = About +RecruitmentAbout = About Recruitment +RecruitmentAboutPage = Recruitment about page +NbOfEmployeesExpected=Expected nb of employees +JobLabel=Label of job position +WorkPlace=Work place +DateExpected=Expected date +FutureManager=Future manager +ResponsibleOfRecruitement=Responsible of recruitment +IfJobIsLocatedAtAPartner=If job is located at a partner place +PositionToBeFilled=Job position +PositionsToBeFilled=Job positions +ListOfPositionsToBeFilled=List of job positions +NewPositionToBeFilled=New job positions + +JobOfferToBeFilled=Job position to be filled +ThisIsInformationOnJobPosition=Information of the job position to be filled +ContactForRecruitment=Contact for recruitment +EmailRecruiter=Email recruiter +ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used +NewCandidature=New application +ListOfCandidatures=List of applications +RequestedRemuneration=Requested remuneration +ProposedRemuneration=Proposed remuneration +ContractProposed=Contract proposed +ContractSigned=Contract signed +ContractRefused=Contract refused +RecruitmentCandidature=Application +JobPositions=Job positions +RecruitmentCandidatures=Applications +InterviewToDo=Interview to do +AnswerCandidature=Application answer +YourCandidature=Your application +YourCandidatureAnswerMessage=Thanks you for your application.
    ... +JobClosedTextCandidateFound=The job position is closed. The position has been filled. +JobClosedTextCanceled=The job position is closed. +ExtrafieldsJobPosition=Complementary attributes (job positions) +ExtrafieldsApplication=Complementary attributes (job applications) +MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/ms_MY/resource.lang b/htdocs/langs/ms_MY/resource.lang new file mode 100644 index 00000000000..e8574dc680f --- /dev/null +++ b/htdocs/langs/ms_MY/resource.lang @@ -0,0 +1,39 @@ +# Dolibarr language file - Source file is en_US - resource +MenuResourceIndex=Resources +MenuResourceAdd=New resource +DeleteResource=Delete resource +ConfirmDeleteResourceElement=Confirm delete the resource for this element +NoResourceInDatabase=No resource in database. +NoResourceLinked=No resource linked +ActionsOnResource=Events about this resource +ResourcePageIndex=Resources list +ResourceSingular=Resource +ResourceCard=Resource card +AddResource=Create a resource +ResourceFormLabel_ref=Resource name +ResourceType=Resource type +ResourceFormLabel_description=Resource description + +ResourcesLinkedToElement=Resources linked to element + +ShowResource=Show resource + +ResourceElementPage=Element resources +ResourceCreatedWithSuccess=Resource successfully created +RessourceLineSuccessfullyDeleted=Resource line successfully deleted +RessourceLineSuccessfullyUpdated=Resource line successfully updated +ResourceLinkedWithSuccess=Resource linked with success + +ConfirmDeleteResource=Confirm to delete this resource +RessourceSuccessfullyDeleted=Resource successfully deleted +DictionaryResourceType=Type of resources + +SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources + +ErrorResourcesAlreadyInUse=Some resources are in use +ErrorResourceUseInEvent=%s used in %s event diff --git a/htdocs/langs/ms_MY/salaries.lang b/htdocs/langs/ms_MY/salaries.lang new file mode 100644 index 00000000000..20a10694500 --- /dev/null +++ b/htdocs/langs/ms_MY/salaries.lang @@ -0,0 +1,27 @@ +# Dolibarr language file - Source file is en_US - salaries +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary +Salary=Salary +Salaries=Salaries +NewSalary=New salary +AddSalary=Add salary +NewSalaryPayment=New salary card +AddSalaryPayment=Add salary payment +SalaryPayment=Salary payment +SalariesPayments=Salaries payments +SalariesPaymentsOf=Salaries payments of %s +ShowSalaryPayment=Show salary payment +THM=Average hourly rate +TJM=Average daily rate +CurrentSalary=Current salary +THMDescription=This value may be used to calculate the cost of time consumed on a project entered by users if module project is used +TJMDescription=This value is currently for information only and is not used for any calculation +LastSalaries=Latest %s salaries +AllSalaries=All salaries +SalariesStatistics=Salary statistics +SalariesAndPayments=Salaries and payments +ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? +FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/ms_MY/sendings.lang b/htdocs/langs/ms_MY/sendings.lang new file mode 100644 index 00000000000..8f10b1e9404 --- /dev/null +++ b/htdocs/langs/ms_MY/sendings.lang @@ -0,0 +1,76 @@ +# Dolibarr language file - Source file is en_US - sendings +RefSending=Ref. shipment +Sending=Shipment +Sendings=Shipments +AllSendings=All Shipments +Shipment=Shipment +Shipments=Shipments +ShowSending=Show Shipments +Receivings=Delivery Receipts +SendingsArea=Shipments area +ListOfSendings=List of shipments +SendingMethod=Shipping method +LastSendings=Latest %s shipments +StatisticsOfSendings=Statistics for shipments +NbOfSendings=Number of shipments +NumberOfShipmentsByMonth=Number of shipments by month +SendingCard=Shipment card +NewSending=New shipment +CreateShipment=Create shipment +QtyShipped=Qty shipped +QtyShippedShort=Qty ship. +QtyPreparedOrShipped=Qty prepared or shipped +QtyToShip=Qty to ship +QtyToReceive=Qty to receive +QtyReceived=Qty received +QtyInOtherShipments=Qty in other shipments +KeepToShip=Remain to ship +KeepToShipShort=Remain +OtherSendingsForSameOrder=Other shipments for this order +SendingsAndReceivingForSameOrder=Shipments and receipts for this order +SendingsToValidate=Shipments to validate +StatusSendingCanceled=Canceled +StatusSendingCanceledShort=Canceled +StatusSendingDraft=Draft +StatusSendingValidated=Validated (products to ship or already shipped) +StatusSendingProcessed=Processed +StatusSendingDraftShort=Draft +StatusSendingValidatedShort=Validated +StatusSendingProcessedShort=Processed +SendingSheet=Shipment sheet +ConfirmDeleteSending=Are you sure you want to delete this shipment? +ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? +ConfirmCancelSending=Are you sure you want to cancel this shipment? +DocumentModelMerou=Merou A5 model +WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. +StatsOnShipmentsOnlyValidated=Statistics are only for validated shipments. Date used is the date of validation of shipment (planned delivery date is not always known) +DateDeliveryPlanned=Planned date of delivery +RefDeliveryReceipt=Ref delivery receipt +StatusReceipt=Status delivery receipt +DateReceived=Date delivery received +ClassifyReception=Classify reception +SendShippingByEMail=Send shipment by email +SendShippingRef=Submission of shipment %s +ActionsOnShipping=Events on shipment +LinkToTrackYourPackage=Link to track your package +ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the Sales Order record. +ShipmentLine=Shipment line +ProductQtyInCustomersOrdersRunning=Product quantity from open sales orders +ProductQtyInSuppliersOrdersRunning=Product quantity from open purchase orders +ProductQtyInShipmentAlreadySent=Product quantity from open sales order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open purchase orders already received +NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. Correct stock or go back to choose another warehouse. +WeightVolShort=Weight/Vol. +ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. + +# Sending methods +# ModelDocument +DocumentModelTyphon=More complete document model for delivery receipts (logo...) +DocumentModelStorm=More complete document model for delivery receipts and extrafields compatibility (logo...) +Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constant EXPEDITION_ADDON_NUMBER not defined +SumOfProductVolumes=Sum of product volumes +SumOfProductWeights=Sum of product weights + +# warehouse details +DetailWarehouseNumber= Warehouse details +DetailWarehouseFormat= W:%s (Qty: %d) diff --git a/htdocs/langs/ms_MY/sms.lang b/htdocs/langs/ms_MY/sms.lang new file mode 100644 index 00000000000..055085eb16a --- /dev/null +++ b/htdocs/langs/ms_MY/sms.lang @@ -0,0 +1,51 @@ +# Dolibarr language file - Source file is en_US - sms +Sms=Sms +SmsSetup=SMS setup +SmsDesc=This page allows you to define global options on SMS features +SmsCard=SMS Card +AllSms=All SMS campaigns +SmsTargets=Targets +SmsRecipients=Targets +SmsRecipient=Target +SmsTitle=Description +SmsFrom=Sender +SmsTo=Target +SmsTopic=Topic of SMS +SmsText=Message +SmsMessage=SMS Message +ShowSms=Show SMS +ListOfSms=List SMS campaigns +NewSms=New SMS campaign +EditSms=Edit SMS +ResetSms=New sending +DeleteSms=Delete SMS campaign +DeleteASms=Remove a SMS campaign +PreviewSms=Previuw SMS +PrepareSms=Prepare SMS +CreateSms=Create SMS +SmsResult=Result of SMS sending +TestSms=Test SMS +ValidSms=Validate SMS +ApproveSms=Approve SMS +SmsStatusDraft=Draft +SmsStatusValidated=Validated +SmsStatusApproved=Approved +SmsStatusSent=Sent +SmsStatusSentPartialy=Sent partially +SmsStatusSentCompletely=Sent completely +SmsStatusError=Error +SmsStatusNotSent=Not sent +SmsSuccessfulySent=SMS correctly sent (from %s to %s) +ErrorSmsRecipientIsEmpty=Number of target is empty +WarningNoSmsAdded=No new phone number to add to target list +ConfirmValidSms=Do you confirm validation of this campaign? +NbOfUniqueSms=No. of unique phone numbers +NbOfSms=No. of phone numbers +ThisIsATestMessage=This is a test message +SendSms=Send SMS +SmsInfoCharRemain=No. of remaining characters +SmsInfoNumero= (international format i.e.: +33899701761) +DelayBeforeSending=Delay before sending (minutes) +SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. +SmsNoPossibleRecipientFound=No target available. Check setup of your SMS provider. +DisableStopIfSupported=Disable STOP message (if supported) diff --git a/htdocs/langs/ms_MY/stocks.lang b/htdocs/langs/ms_MY/stocks.lang new file mode 100644 index 00000000000..7137edcf576 --- /dev/null +++ b/htdocs/langs/ms_MY/stocks.lang @@ -0,0 +1,317 @@ +# Dolibarr language file - Source file is en_US - stocks +WarehouseCard=Warehouse card +Warehouse=Warehouse +Warehouses=Warehouses +ParentWarehouse=Parent warehouse +NewWarehouse=New warehouse / Stock Location +WarehouseEdit=Modify warehouse +MenuNewWarehouse=New warehouse +WarehouseSource=Source warehouse +WarehouseSourceNotDefined=No warehouse defined, +AddWarehouse=Create warehouse +AddOne=Add one +DefaultWarehouse=Default warehouse +WarehouseTarget=Target warehouse +ValidateSending=Confirm shipment +CancelSending=Cancel shipment +DeleteSending=Delete shipment +Stock=Stock +Stocks=Stocks +MissingStocks=Missing stocks +StockAtDate=Stocks at date +StockAtDateInPast=Date in the past +StockAtDateInFuture=Date in the future +StocksByLotSerial=Stocks by lot/serial +LotSerial=Lots/Serials +LotSerialList=List of lot/serials +Movements=Movements +ErrorWarehouseRefRequired=Warehouse reference name is required +ListOfWarehouses=List of warehouses +ListOfStockMovements=List of stock movements +ListOfInventories=List of inventories +MovementId=Movement ID +StockMovementForId=Movement ID %d +ListMouvementStockProject=List of stock movements associated to project +StocksArea=Warehouses area +AllWarehouses=All warehouses +IncludeEmptyDesiredStock=Include also negative stock with undefined desired stock +IncludeAlsoDraftOrders=Include also draft orders +Location=Location +LocationSummary=Short name of location +NumberOfDifferentProducts=Number of unique products +NumberOfProducts=Total number of products +LastMovement=Latest movement +LastMovements=Latest movements +Units=Units +Unit=Unit +StockCorrection=Stock correction +CorrectStock=Correct stock +StockTransfer=Stock transfer +TransferStock=Transfer stock +MassStockTransferShort=Mass stock transfer +StockMovement=Stock movement +StockMovements=Stock movements +NumberOfUnit=Number of units +UnitPurchaseValue=Unit purchase price +StockTooLow=Stock too low +StockLowerThanLimit=Stock lower than alert limit (%s) +EnhancedValue=Value +EnhancedValueOfWarehouses=Warehouses value +UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user +AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product +RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseOnThirparty=Set a warehouse on Third-parties +WarehouseAskWarehouseDuringPropal=Set a warehouse on Commercial proposals +WarehouseAskWarehouseDuringOrder=Set a warehouse on Sales Orders +WarehouseAskWarehouseDuringProject=Set a warehouse on Projects +UserDefaultWarehouse=Set a warehouse on Users +MainDefaultWarehouse=Default warehouse +MainDefaultWarehouseUser=Use a default warehouse for each user +MainDefaultWarehouseUserDesc=By activating this option, during creation of a product, the warehouse assigned to the product will be defined on this one. If no warehouse is defined on the user, the default warehouse is defined. +IndependantSubProductStock=Product stock and subproduct stock are independent +QtyDispatched=Quantity dispatched +QtyDispatchedShort=Qty dispatched +QtyToDispatchShort=Qty to dispatch +OrderDispatch=Item receipts +RuleForStockManagementDecrease=Choose Rule for automatic stock decrease (manual decrease is always possible, even if an automatic decrease rule is activated) +RuleForStockManagementIncrease=Choose Rule for automatic stock increase (manual increase is always possible, even if an automatic increase rule is activated) +DeStockOnBill=Decrease real stocks on validation of customer invoice/credit note +DeStockOnValidateOrder=Decrease real stocks on validation of sales order +DeStockOnShipment=Decrease real stocks on shipping validation +DeStockOnShipmentOnClosing=Decrease real stocks when shipping is set to closed +ReStockOnBill=Increase real stocks on validation of vendor invoice/credit note +ReStockOnValidateOrder=Increase real stocks on purchase order approval +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouse, after purchase order receipt of goods +StockOnReception=Increase real stocks on validation of reception +StockOnReceptionOnClosing=Increase real stocks when reception is set to closed +OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock +NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. +DispatchVerb=Dispatch +StockLimitShort=Limit for alert +StockLimit=Stock limit for alert +StockLimitDesc=(empty) means no warning.
    0 can be used to trigger a warning as soon as the stock is empty. +PhysicalStock=Physical Stock +RealStock=Real Stock +RealStockDesc=Physical/real stock is the stock currently in the warehouses. +RealStockWillAutomaticallyWhen=The real stock will be modified according to this rule (as defined in the Stock module): +VirtualStock=Virtual stock +VirtualStockAtDate=Virtual stock at a future date +VirtualStockAtDateDesc=Virtual stock once all the pending orders that are planned to be processed before the chosen date will be finished +VirtualStockDesc=Virtual stock is the calculated stock available once all open/pending actions (that affect stocks) are closed (purchase orders received, sales orders shipped, manufacturing orders produced, etc) +AtDate=At date +IdWarehouse=Id warehouse +DescWareHouse=Description warehouse +LieuWareHouse=Localisation warehouse +WarehousesAndProducts=Warehouses and products +WarehousesAndProductsBatchDetail=Warehouses and products (with detail per lot/serial) +AverageUnitPricePMPShort=Weighted average price +AverageUnitPricePMPDesc=The input average unit price we had to expense to get 1 unit of product into our stock. +SellPriceMin=Selling Unit Price +EstimatedStockValueSellShort=Value for sell +EstimatedStockValueSell=Value for sell +EstimatedStockValueShort=Input stock value +EstimatedStockValue=Input stock value +DeleteAWarehouse=Delete a warehouse +ConfirmDeleteWarehouse=Are you sure you want to delete the warehouse %s? +PersonalStock=Personal stock %s +ThisWarehouseIsPersonalStock=This warehouse represents personal stock of %s %s +SelectWarehouseForStockDecrease=Choose warehouse to use for stock decrease +SelectWarehouseForStockIncrease=Choose warehouse to use for stock increase +NoStockAction=No stock action +DesiredStock=Desired Stock +DesiredStockDesc=This stock amount will be the value used to fill the stock by replenishment feature. +StockToBuy=To order +Replenishment=Replenishment +ReplenishmentOrders=Replenishment orders +VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical stock + open orders) may differ +UseRealStockByDefault=Use real stock, instead of virtual stock, for replenishment feature +ReplenishmentCalculation=Amount to order will be (desired quantity - real stock) instead of (desired quantity - virtual stock) +UseVirtualStock=Use virtual stock +UsePhysicalStock=Use physical stock +CurentSelectionMode=Current selection mode +CurentlyUsingVirtualStock=Virtual stock +CurentlyUsingPhysicalStock=Physical stock +RuleForStockReplenishment=Rule for stocks replenishment +SelectProductWithNotNullQty=Select at least one product with a qty not null and a vendor +AlertOnly= Alerts only +IncludeProductWithUndefinedAlerts = Include also negative stock for products with no desired quantity defined, to restore them to 0 +WarehouseForStockDecrease=The warehouse %s will be used for stock decrease +WarehouseForStockIncrease=The warehouse %s will be used for stock increase +ForThisWarehouse=For this warehouse +ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create purchase orders to fill the difference. +ReplenishmentStatusDescPerWarehouse=If you want a replenishment based on desired quantity defined per warehouse, you must add a filter on the warehouse. +ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here. +Replenishments=Replenishments +NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s) +NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) +MassMovement=Mass movement +SelectProductInAndOutWareHouse=Select a source warehouse and a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". +RecordMovement=Record transfer +ReceivingForSameOrder=Receipts for this order +StockMovementRecorded=Stock movements recorded +RuleForStockAvailability=Rules on stock requirements +StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever the rule for automatic stock change) +StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change) +StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change) +MovementLabel=Label of movement +TypeMovement=Direction of movement +DateMovement=Date of movement +InventoryCode=Movement or inventory code +IsInPackage=Contained into package +WarehouseAllowNegativeTransfer=Stock can be negative +qtyToTranferIsNotEnough=You don't have enough stock from your source warehouse and your setup does not allow negative stocks. +qtyToTranferLotIsNotEnough=You don't have enough stock, for this lot number, from your source warehouse and your setup does not allow negative stocks (Qty for product '%s' with lot '%s' is %s in warehouse '%s'). +ShowWarehouse=Show warehouse +MovementCorrectStock=Stock correction for product %s +MovementTransferStock=Stock transfer of product %s into another warehouse +InventoryCodeShort=Inv./Mov. code +NoPendingReceptionOnSupplierOrder=No pending reception due to open purchase order +ThisSerialAlreadyExistWithDifferentDate=This lot/serial number (%s) already exists but with different eatby or sellby date (found %s but you enter %s). +OpenAnyMovement=Open (all movement) +OpenInternal=Open (only internal movement) +UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on purchase order reception +OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated +ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created +ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated +ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted +AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock +AddStockLocationLine=Decrease quantity then click to split the line +InventoryDate=Inventory date +Inventories=Inventories +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryDeletePermission=Delete inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse: %s +inventoryErrorQtyAdd=Error: one quantity is less than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Vendor filter +inventoryOnDate=Inventory +INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Stock movements will have the date of inventory (instead of the date of inventory validation) +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorical qty +TheoricalValue=Theorical qty +LastPA=Last BP +CurrentPA=Curent BP +RecordedQty=Recorded Qty +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List +StockSupportServices=Stock management supports Services +StockSupportServicesDesc=By default, you can stock only products of type "product". You may also stock a product of type "service" if both module Services and this option are enabled. +ReceiveProducts=Receive items +StockIncreaseAfterCorrectTransfer=Increase by correction/transfer +StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer +StockIncrease=Stock increase +StockDecrease=Stock decrease +InventoryForASpecificWarehouse=Inventory for a specific warehouse +InventoryForASpecificProduct=Inventory for a specific product +StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use +ForceTo=Force to +AlwaysShowFullArbo=Display full tree of warehouse on popup of warehouse links (Warning: This may decrease dramatically performances) +StockAtDatePastDesc=You can view here the stock (real stock) at a given date in the past +StockAtDateFutureDesc=You can view here the stock (virtual stock) at a given date in the future +CurrentStock=Current stock +InventoryRealQtyHelp=Set value to 0 to reset qty
    Keep field empty, or remove line, to keep unchanged +UpdateByScaning=Complete real qty by scaning +UpdateByScaningProductBarcode=Update by scan (product barcode) +UpdateByScaningLot=Update by scan (lot|serial barcode) +DisableStockChangeOfSubProduct=Deactivate the stock change for all the subproducts of this Kit during this movement. +ImportFromCSV=Import CSV list of movement +ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... +SelectAStockMovementFileToImport=select a stock movement file to import +InfoTemplateImport=Uploaded file needs to have this format (* are mandatory fields):
    Source Warehouse* | Target Warehouse* | Product* | Quantity* | Lot/serial number
    CSV character separator must be "%s" +LabelOfInventoryMovemement=Inventory %s +ReOpen=Reopen +ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. +ObjectNotFound=%s not found +MakeMovementsAndClose=Generate movements and close +AutofillWithExpected=Fill real quantity with expected quantity +ShowAllBatchByDefault=By default, show batch details on product "stock" tab +CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration +ErrorWrongBarcodemode=Unknown Barcode mode +ProductDoesNotExist=Product does not exist +ErrorSameBatchNumber=Several record for the batch number were found in the inventory sheet. No way to know which one to increase. +ProductBatchDoesNotExist=Product with batch/serial does not exist +ProductBarcodeDoesNotExist=Product with barcode does not exist +WarehouseId=Warehouse ID +WarehouseRef=Warehouse Ref +SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start +InventoryStartedShort=Started +ErrorOnElementsInventory=Operation canceled for the following reason: +ErrorCantFindCodeInInventory=Can't find the following code in inventory +QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. +StockChangeDisabled=Change on stock disabled +NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/ms_MY/stripe.lang b/htdocs/langs/ms_MY/stripe.lang new file mode 100644 index 00000000000..2c95bcfce27 --- /dev/null +++ b/htdocs/langs/ms_MY/stripe.lang @@ -0,0 +1,71 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=Offer your customers an online payment page for payments with credit/debit cards via Stripe. This can be used to allow your customers to make ad-hoc payments or for payments related to a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome to our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=Email notification after a payment attempt (success or fail) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Pay with Stripe +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment page for a sales order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment page for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment page for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment page of any amount with no existing object +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment page for a member subscription +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment page for payment of a donation +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (mandatory only for payment not linked to an object) to add your own payment comment tag.
    For the URL of payments with no existing object, you may also add the parameter &noidempotency=1 so the same link with same tag can be used several times (some payment mode may limit the payment to 1 for each different link without this parameter) +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +CSSUrlForPaymentForm=CSS style sheet url for payment form +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +FailedToChargeCard=Failed to charge card +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_TEST_WEBHOOK_KEY=Webhook test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +STRIPE_LIVE_WEBHOOK_KEY=Webhook live key +ONLINE_PAYMENT_WAREHOUSE=Stock to use for stock decrease when online payment is done
    (TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice ?) +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) +StripeImportPayment=Import Stripe payments +ExampleOfTestCreditCard=Example of credit card for test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +StripeGateways=Stripe gateways +OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...) +OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...) +BankAccountForBankTransfer=Bank account for fund payouts +StripeAccount=Stripe account +StripeChargeList=List of Stripe charges +StripeTransactionList=List of Stripe transactions +StripeCustomerId=Stripe customer id +StripePaymentModes=Stripe payment modes +LocalID=Local ID +StripeID=Stripe ID +NameOnCard=Name on card +CardNumber=Card Number +ExpiryDate=Expiry Date +CVN=CVN +DeleteACard=Delete Card +ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card? +CreateCustomerOnStripe=Create customer on Stripe +CreateCardOnStripe=Create card on Stripe +ShowInStripe=Show in Stripe +StripeUserAccountForActions=User account to use for email notification of some Stripe events (Stripe payouts) +StripePayoutList=List of Stripe payouts +ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) +ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... +CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s diff --git a/htdocs/langs/ms_MY/supplier_proposal.lang b/htdocs/langs/ms_MY/supplier_proposal.lang new file mode 100644 index 00000000000..a68319fb2df --- /dev/null +++ b/htdocs/langs/ms_MY/supplier_proposal.lang @@ -0,0 +1,58 @@ +# Dolibarr language file - Source file is en_US - supplier_proposal +SupplierProposal=Vendor commercial proposals +supplier_proposalDESC=Manage price requests to suppliers +SupplierProposalNew=New price request +CommRequest=Price request +CommRequests=Price requests +SearchRequest=Find a request +DraftRequests=Draft requests +SupplierProposalsDraft=Draft vendor proposals +LastModifiedRequests=Latest %s modified price requests +RequestsOpened=Open price requests +SupplierProposalArea=Vendor proposals area +SupplierProposalShort=Vendor proposal +SupplierProposals=Vendor proposals +SupplierProposalsShort=Vendor proposals +AskPrice=Price request +NewAskPrice=New price request +ShowSupplierProposal=Show price request +AddSupplierProposal=Create a price request +SupplierProposalRefFourn=Vendor ref +SupplierProposalDate=Delivery date +SupplierProposalRefFournNotice=Before closing to "Accepted", think to grasp suppliers references. +ConfirmValidateAsk=Are you sure you want to validate this price request under name %s? +DeleteAsk=Delete request +ValidateAsk=Validate request +SupplierProposalStatusDraft=Draft (needs to be validated) +SupplierProposalStatusValidated=Validated (request is open) +SupplierProposalStatusClosed=Closed +SupplierProposalStatusSigned=Accepted +SupplierProposalStatusNotSigned=Refused +SupplierProposalStatusDraftShort=Draft +SupplierProposalStatusValidatedShort=Validated +SupplierProposalStatusClosedShort=Closed +SupplierProposalStatusSignedShort=Accepted +SupplierProposalStatusNotSignedShort=Refused +CopyAskFrom=Create a price request by copying an existing request +CreateEmptyAsk=Create blank request +ConfirmCloneAsk=Are you sure you want to clone the price request %s? +ConfirmReOpenAsk=Are you sure you want to open back the price request %s? +SendAskByMail=Send price request by mail +SendAskRef=Sending the price request %s +SupplierProposalCard=Request card +ConfirmDeleteAsk=Are you sure you want to delete this price request %s? +ActionsOnSupplierProposal=Events on price request +DocModelAuroreDescription=A complete request model (logo...) +CommercialAsk=Price request +DefaultModelSupplierProposalCreate=Default model creation +DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) +DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) +ListOfSupplierProposals=List of vendor proposal requests +ListSupplierProposalsAssociatedProject=List of vendor proposals associated with project +SupplierProposalsToClose=Vendor proposals to close +SupplierProposalsToProcess=Vendor proposals to process +LastSupplierProposals=Latest %s price requests +AllPriceRequests=All requests +TypeContact_supplier_proposal_external_SHIPPING=Vendor contact for delivery +TypeContact_supplier_proposal_external_BILLING=Vendor contact for billing +TypeContact_supplier_proposal_external_SERVICE=Representative following-up proposal diff --git a/htdocs/langs/ms_MY/suppliers.lang b/htdocs/langs/ms_MY/suppliers.lang new file mode 100644 index 00000000000..4d2b37fa316 --- /dev/null +++ b/htdocs/langs/ms_MY/suppliers.lang @@ -0,0 +1,57 @@ +# Dolibarr language file - Source file is en_US - vendors +Suppliers=Vendors +SuppliersInvoice=Vendor invoice +SupplierInvoices=Vendor invoices +ShowSupplierInvoice=Show Vendor Invoice +NewSupplier=New vendor +NewSupplierInvoice = New vendor invoice +History=History +ListOfSuppliers=List of vendors +ShowSupplier=Show vendor +OrderDate=Order date +BuyingPriceMin=Best buying price +BuyingPriceMinShort=Best buying price +TotalBuyingPriceMinShort=Total of subproducts buying prices +TotalSellingPriceMinShort=Total of subproducts selling prices +SomeSubProductHaveNoPrices=Some sub-products have no price defined +AddSupplierPrice=Add buying price +ChangeSupplierPrice=Change buying price +SupplierPrices=Vendor prices +ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s +NoRecordedSuppliers=No vendor recorded +SupplierPayment=Vendor payment +SuppliersArea=Vendor area +RefSupplierShort=Ref. vendor +Availability=Availability +ExportDataset_fournisseur_1=Vendor invoices and invoice details +ExportDataset_fournisseur_2=Vendor invoices and payments +ExportDataset_fournisseur_3=Purchase orders and order details +ApproveThisOrder=Approve this order +ConfirmApproveThisOrder=Are you sure you want to approve order %s? +DenyingThisOrder=Deny this order +ConfirmDenyingThisOrder=Are you sure you want to deny this order %s? +ConfirmCancelThisOrder=Are you sure you want to cancel this order %s? +AddSupplierOrder=Create Purchase Order +AddSupplierInvoice=Create vendor invoice +ListOfSupplierProductForSupplier=List of products and prices for vendor %s +SentToSuppliers=Sent to vendors +ListOfSupplierOrders=List of purchase orders +MenuOrdersSupplierToBill=Purchase orders to invoice +NbDaysToDelivery=Delivery delay (days) +DescNbDaysToDelivery=The longest delivery delay of the products from this order +SupplierReputation=Vendor reputation +ReferenceReputation=Reference reputation +DoNotOrderThisProductToThisSupplier=Do not order +NotTheGoodQualitySupplier=Low quality +ReputationForThisProduct=Reputation +BuyerName=Buyer name +AllProductServicePrices=All product / service prices +AllProductReferencesOfSupplier=All references of vendor +BuyingPriceNumShort=Vendor prices +RepeatableSupplierInvoice=Template supplier invoice +RepeatableSupplierInvoices=Template supplier invoices +RepeatableSupplierInvoicesList=Template supplier invoices +RecurringSupplierInvoices=Recurring supplier invoices +ToCreateAPredefinedSupplierInvoice=In order to create template supplier invoice, you must create a standard invoice, then, without validating it, click on the "%s" button. +GeneratedFromSupplierTemplate=Generated from supplier invoice template %s +SupplierInvoiceGeneratedFromTemplate=Supplier invoice %s Generated from supplier invoice template %s diff --git a/htdocs/langs/ms_MY/ticket.lang b/htdocs/langs/ms_MY/ticket.lang new file mode 100644 index 00000000000..995fddc90a3 --- /dev/null +++ b/htdocs/langs/ms_MY/ticket.lang @@ -0,0 +1,352 @@ +# en_US lang file for module ticket +# Copyright (C) 2013 Jean-François FERRY +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Generic +# + +Module56000Name=Tickets +Module56000Desc=Ticket system for issue or request management + +Permission56001=See tickets +Permission56002=Modify tickets +Permission56003=Delete tickets +Permission56004=Manage tickets +Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) + +TicketDictType=Ticket - Types +TicketDictCategory=Ticket - Groupes +TicketDictSeverity=Ticket - Severities +TicketDictResolution=Ticket - Resolution + +TicketTypeShortCOM=Commercial question +TicketTypeShortHELP=Request for functionnal help +TicketTypeShortISSUE=Issue or bug +TicketTypeShortPROBLEM=Problem +TicketTypeShortREQUEST=Change or enhancement request +TicketTypeShortPROJET=Project +TicketTypeShortOTHER=Other + +TicketSeverityShortLOW=Low +TicketSeverityShortNORMAL=Normal +TicketSeverityShortHIGH=High +TicketSeverityShortBLOCKING=Critical, Blocking + +TicketCategoryShortOTHER=Other + +ErrorBadEmailAddress=Field '%s' incorrect +MenuTicketMyAssign=My tickets +MenuTicketMyAssignNonClosed=My open tickets +MenuListNonClosed=Open tickets + +TypeContact_ticket_internal_CONTRIBUTOR=Contributor +TypeContact_ticket_internal_SUPPORTTEC=Assigned user +TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking +TypeContact_ticket_external_CONTRIBUTOR=External contributor + +OriginEmail=Reporter Email +Notify_TICKET_SENTBYMAIL=Send ticket message by email + +# Status +Read=Read +Assigned=Assigned +InProgress=In progress +NeedMoreInformation=Waiting for reporter feedback +NeedMoreInformationShort=Waiting for feedback +Answered=Answered +Waiting=Waiting +SolvedClosed=Solved +Deleted=Deleted + +# Dict +Type=Type +Severity=Severity +TicketGroupIsPublic=Group is public +TicketGroupIsPublicDesc=If a ticket group is public, it will be visible in the form when creating a ticket from the public interface + +# Email templates +MailToSendTicketMessage=To send email from ticket message + +# +# Admin page +# +TicketSetup=Ticket module setup +TicketSettings=Settings +TicketSetupPage= +TicketPublicAccess=A public interface requiring no identification is available at the following url +TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries +TicketParamModule=Module variable setup +TicketParamMail=Email setup +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketNewEmailBodyLabel=Text message sent after creating a ticket +TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. +TicketParamPublicInterface=Public interface setup +TicketsEmailMustExist=Require an existing email address to create a ticket +TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. +PublicInterface=Public interface +TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface +TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) +TicketPublicInterfaceTextHomeLabelAdmin=Welcome text of the public interface +TicketPublicInterfaceTextHome=You can create a support ticket or view existing from its identifier tracking ticket. +TicketPublicInterfaceTextHomeHelpAdmin=The text defined here will appear on the home page of the public interface. +TicketPublicInterfaceTopicLabelAdmin=Interface title +TicketPublicInterfaceTopicHelp=This text will appear as the title of the public interface. +TicketPublicInterfaceTextHelpMessageLabelAdmin=Help text to the message entry +TicketPublicInterfaceTextHelpMessageHelpAdmin=This text will appear above the message input area of the user. +ExtraFieldsTicket=Extra attributes +TicketCkEditorEmailNotActivated=HTML editor is not activated. Please put FCKEDITOR_ENABLE_MAIL content to 1 to get it. +TicketsDisableEmail=Do not send emails for ticket creation or message recording +TicketsDisableEmailHelp=By default, emails are sent when new tickets or messages created. Enable this option to disable *all* email notifications +TicketsLogEnableEmail=Enable log by email +TicketsLogEnableEmailHelp=At each change, an email will be sent **to each contact** associated with the ticket. +TicketParams=Params +TicketsShowModuleLogo=Display the logo of the module in the public interface +TicketsShowModuleLogoHelp=Enable this option to hide the logo module in the pages of the public interface +TicketsShowCompanyLogo=Display the logo of the company in the public interface +TicketsShowCompanyLogoHelp=Enable this option to hide the logo of the main company in the pages of the public interface +TicketsEmailAlsoSendToMainAddress=Also send a notification to the main email address +TicketsEmailAlsoSendToMainAddressHelp=Enable this option to also send an email to the address defined into setup "%s" (see tab "%s") +TicketsLimitViewAssignedOnly=Restrict the display to tickets assigned to the current user (not effective for external users, always be limited to the third party they depend on) +TicketsLimitViewAssignedOnlyHelp=Only tickets assigned to the current user will be visible. Does not apply to a user with tickets management rights. +TicketsActivatePublicInterface=Activate public interface +TicketsActivatePublicInterfaceHelp=Public interface allow any visitors to create tickets. +TicketsAutoAssignTicket=Automatically assign the user who created the ticket +TicketsAutoAssignTicketHelp=When creating a ticket, the user can be automatically assigned to the ticket. +TicketNumberingModules=Tickets numbering module +TicketsModelModule=Document templates for tickets +TicketNotifyTiersAtCreation=Notify third party at creation +TicketsDisableCustomerEmail=Always disable emails when a ticket is created from public interface +TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is added to a ticket +TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) +TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) +TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. + +# +# Index & list page +# +TicketsIndex=Tickets area +TicketList=List of tickets +TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user +NoTicketsFound=No ticket found +NoUnreadTicketsFound=No unread ticket found +TicketViewAllTickets=View all tickets +TicketViewNonClosedOnly=View only open tickets +TicketStatByStatus=Tickets by status +OrderByDateAsc=Sort by ascending date +OrderByDateDesc=Sort by descending date +ShowAsConversation=Show as conversation list +MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? + +# +# Ticket card +# +Ticket=Ticket +TicketCard=Ticket card +CreateTicket=Create ticket +EditTicket=Edit ticket +TicketsManagement=Tickets Management +CreatedBy=Created by +NewTicket=New Ticket +SubjectAnswerToTicket=Ticket answer +TicketTypeRequest=Request type +TicketCategory=Ticket categorization +SeeTicket=See ticket +TicketMarkedAsRead=Ticket has been marked as read +TicketReadOn=Read on +TicketCloseOn=Closing date +MarkAsRead=Mark ticket as read +TicketHistory=Ticket history +AssignUser=Assign to user +TicketAssigned=Ticket is now assigned +TicketChangeType=Change type +TicketChangeCategory=Change analytic code +TicketChangeSeverity=Change severity +TicketAddMessage=Add a message +AddMessage=Add a message +MessageSuccessfullyAdded=Ticket added +TicketMessageSuccessfullyAdded=Message successfully added +TicketMessagesList=Message list +NoMsgForThisTicket=No message for this ticket +TicketProperties=Classification +LatestNewTickets=Latest %s newest tickets (not read) +TicketSeverity=Severity +ShowTicket=See ticket +RelatedTickets=Related tickets +TicketAddIntervention=Create intervention +CloseTicket=Close|Solve ticket +AbandonTicket=Abandon ticket +CloseATicket=Close|Solve a ticket +ConfirmCloseAticket=Confirm ticket closing +ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' +ConfirmDeleteTicket=Please confirm ticket deleting +TicketDeletedSuccess=Ticket deleted with success +TicketMarkedAsClosed=Ticket marked as closed +TicketDurationAuto=Calculated duration +TicketDurationAutoInfos=Duration calculated automatically from intervention related +TicketUpdated=Ticket updated +SendMessageByEmail=Send message by email +TicketNewMessage=New message +ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send +TicketGoIntoContactTab=Please go into "Contacts" tab to select them +TicketMessageMailIntro=Introduction +TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. +TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailSignature=Signature +TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. +TicketMessageMailSignatureText=Message sent by %s via Dolibarr +TicketMessageMailSignatureLabelAdmin=Signature of response email +TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageHelp=Only this text will be saved in the message list on ticket card. +TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +TimeElapsedSince=Time elapsed since +TicketTimeToRead=Time elapsed before read +TicketTimeElapsedBeforeSince=Time elapsed before / since +TicketContacts=Contacts ticket +TicketDocumentsLinked=Documents linked to ticket +ConfirmReOpenTicket=Confirm reopen this ticket ? +TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticket with the subject %s: +TicketAssignedToYou=Ticket assigned +TicketAssignedEmailBody=You have been assigned the ticket #%s by %s +MarkMessageAsPrivate=Mark message as private +TicketMessagePrivateHelp=This message will not display to external users +TicketEmailOriginIssuer=Issuer at origin of the tickets +InitialMessage=Initial Message +LinkToAContract=Link to a contract +TicketPleaseSelectAContract=Select a contract +UnableToCreateInterIfNoSocid=Can not create an intervention when no third party is defined +TicketMailExchanges=Mail exchanges +TicketInitialMessageModified=Initial message modified +TicketMessageSuccesfullyUpdated=Message successfully updated +TicketChangeStatus=Change status +TicketConfirmChangeStatus=Confirm the status change: %s ? +TicketLogStatusChanged=Status changed: %s to %s +TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact +Unread=Unread +TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. +ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. + +# +# Logs +# +TicketLogMesgReadBy=Ticket %s read by %s +NoLogForThisTicket=No log for this ticket yet +TicketLogAssignedTo=Ticket %s assigned to %s +TicketLogPropertyChanged=Ticket %s modified: classification from %s to %s +TicketLogClosedBy=Ticket %s closed by %s +TicketLogReopen=Ticket %s re-open + +# +# Public pages +# +TicketSystem=Ticket system +ShowListTicketWithTrackId=Display ticket list from track ID +ShowTicketWithTrackId=Display ticket from track ID +TicketPublicDesc=You can create a support ticket or check from an existing ID. +YourTicketSuccessfullySaved=Ticket has been successfully saved! +MesgInfosPublicTicketCreatedWithTrackId=A new ticket has been created with ID %s and Ref %s. +PleaseRememberThisId=Please keep the tracking number that we might ask you later. +TicketNewEmailSubject=Ticket creation confirmation - Ref %s (public ticket ID %s) +TicketNewEmailSubjectCustomer=New support ticket +TicketNewEmailBody=This is an automatic email to confirm you have registered a new ticket. +TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. +TicketNewEmailBodyInfosTicket=Information for monitoring the ticket +TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link +TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. +TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicMsgViewLogIn=Please enter ticket tracking ID +TicketTrackId=Public Tracking ID +OneOfTicketTrackId=One of your tracking ID +ErrorTicketNotFound=Ticket with tracking ID %s not found! +Subject=Subject +ViewTicket=View ticket +ViewMyTicketList=View my ticket list +ErrorEmailMustExistToCreateTicket=Error: email address not found in our database +TicketNewEmailSubjectAdmin=New ticket created - Ref %s (public ticket ID %s) +TicketNewEmailBodyAdmin=

    Ticket has just been created with ID #%s, see information:

    +SeeThisTicketIntomanagementInterface=See ticket in management interface +TicketPublicInterfaceForbidden=The public interface for the tickets was not enabled +ErrorEmailOrTrackingInvalid=Bad value for tracking ID or email +OldUser=Old user +NewUser=New user +NumberOfTicketsByMonth=Number of tickets per month +NbOfTickets=Number of tickets +# notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: +TicketNotificationEmailSubject=Ticket %s updated +TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated +TicketNotificationRecipient=Notification recipient +TicketNotificationLogMessage=Log message +TicketNotificationEmailBodyInfosTrackUrlinternal=View ticket into interface +TicketNotificationNumberEmailSent=Notification email sent: %s + +ActionsOnTicket=Events on ticket + +# +# Boxes +# +BoxLastTicket=Latest created tickets +BoxLastTicketDescription=Latest %s created tickets +BoxLastTicketContent= +BoxLastTicketNoRecordedTickets=No recent unread tickets +BoxLastModifiedTicket=Latest modified tickets +BoxLastModifiedTicketDescription=Latest %s modified tickets +BoxLastModifiedTicketContent= +BoxLastModifiedTicketNoRecordedTickets=No recent modified tickets +BoxTicketType=Distribution of open tickets by type +BoxTicketSeverity=Number of open tickets by severity +BoxNoTicketSeverity=No tickets opened +BoxTicketLastXDays=Number of new tickets by days the last %s days +BoxTicketLastXDayswidget = Number of new tickets by days the last X days +BoxNoTicketLastXDays=No new tickets the last %s days +BoxNumberOfTicketByDay=Number of new tickets by day +BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +TicketCreatedToday=Ticket created today +TicketClosedToday=Ticket closed today +KMFoundForTicketGroup=We found topics and FAQs that may answers your question, thanks to check them before submitting the ticket diff --git a/htdocs/langs/ms_MY/trips.lang b/htdocs/langs/ms_MY/trips.lang new file mode 100644 index 00000000000..9210ede360c --- /dev/null +++ b/htdocs/langs/ms_MY/trips.lang @@ -0,0 +1,150 @@ +# Dolibarr language file - Source file is en_US - trips +ShowExpenseReport=Show expense report +Trips=Expense reports +TripsAndExpenses=Expenses reports +TripsAndExpensesStatistics=Expense reports statistics +TripCard=Expense report card +AddTrip=Create expense report +ListOfTrips=List of expense reports +ListOfFees=List of fees +TypeFees=Types of fees +ShowTrip=Show expense report +NewTrip=New expense report +LastExpenseReports=Latest %s expense reports +AllExpenseReports=All expense reports +CompanyVisited=Company/organization visited +FeesKilometersOrAmout=Amount or kilometers +DeleteTrip=Delete expense report +ConfirmDeleteTrip=Are you sure you want to delete this expense report? +ListTripsAndExpenses=List of expense reports +ListToApprove=Waiting for approval +ExpensesArea=Expense reports area +ClassifyRefunded=Classify 'Refunded' +ExpenseReportWaitingForApproval=A new expense report has been submitted for approval +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.
    - User: %s
    - Period: %s
    Click here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.
    The %s, you refused to approve the expense report for this reason: %s.
    A new version has been proposed and waiting for your approval.
    - User: %s
    - Period: %s
    Click here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.
    - User: %s
    - Approved by: %s
    Click here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.
    - User: %s
    - Paid by: %s
    Click here to show the expense report: %s +TripId=Id expense report +AnyOtherInThisListCanValidate=Person to be informed for validating the request. +TripSociete=Information company +TripNDF=Informations expense report +PDFStandardExpenseReports=Standard template to generate a PDF document for expense report +ExpenseReportLine=Expense report line +TF_OTHER=Other +TF_TRIP=Transportation +TF_LUNCH=Lunch +TF_METRO=Metro +TF_TRAIN=Train +TF_BUS=Bus +TF_CAR=Car +TF_PEAGE=Toll +TF_ESSENCE=Fuel +TF_HOTEL=Hotel +TF_TAXI=Taxi +EX_KME=Mileage costs +EX_FUE=Fuel CV +EX_HOT=Hotel +EX_PAR=Parking CV +EX_TOL=Toll CV +EX_TAX=Various Taxes +EX_IND=Indemnity transportation subscription +EX_SUM=Maintenance supply +EX_SUO=Office supplies +EX_CAR=Car rental +EX_DOC=Documentation +EX_CUR=Customers receiving +EX_OTR=Other receiving +EX_POS=Postage +EX_CAM=CV maintenance and repair +EX_EMM=Employees meal +EX_GUM=Guests meal +EX_BRE=Breakfast +EX_FUE_VP=Fuel PV +EX_TOL_VP=Toll PV +EX_PAR_VP=Parking PV +EX_CAM_VP=PV maintenance and repair +DefaultCategoryCar=Default transportation mode +DefaultRangeNumber=Default range number +UploadANewFileNow=Upload a new document now +Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' +ErrorDoubleDeclaration=You have declared another expense report into a similar date range. +AucuneLigne=There is no expense report declared yet +ModePaiement=Payment mode +VALIDATOR=User responsible for approval +VALIDOR=Approved by +AUTHOR=Recorded by +AUTHORPAIEMENT=Paid by +REFUSEUR=Denied by +CANCEL_USER=Deleted by +MOTIF_REFUS=Reason +MOTIF_CANCEL=Reason +DATE_REFUS=Deny date +DATE_SAVE=Validation date +DATE_CANCEL=Cancelation date +DATE_PAIEMENT=Payment date +ExpenseReportRef=Ref. expense report +ValidateAndSubmit=Validate and submit for approval +ValidatedWaitingApproval=Validated (waiting for approval) +NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. +ConfirmRefuseTrip=Are you sure you want to deny this expense report? +ValideTrip=Approve expense report +ConfirmValideTrip=Are you sure you want to approve this expense report? +PaidTrip=Pay an expense report +ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? +ConfirmCancelTrip=Are you sure you want to cancel this expense report? +BrouillonnerTrip=Move back expense report to status "Draft" +ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? +SaveTrip=Validate expense report +ConfirmSaveTrip=Are you sure you want to validate this expense report? +NoTripsToExportCSV=No expense report to export for this period. +ExpenseReportPayment=Expense report payment +ExpenseReportsToApprove=Expense reports to approve +ExpenseReportsToPay=Expense reports to pay +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? +ExpenseReportsIk=Configuration of mileage charges +ExpenseReportsRules=Expense report rules +ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers +ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report +expenseReportOffset=Offset +expenseReportCoef=Coefficient +expenseReportTotalForFive=Example with d = 5 +expenseReportRangeFromTo=from %d to %d +expenseReportRangeMoreThan=more than %d +expenseReportCoefUndefined=(value not defined) +expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary +expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay +expenseReportPrintExample=offset + (d x coef) = %s +ExpenseReportApplyTo=Apply to +ExpenseReportDomain=Domain to apply +ExpenseReportLimitOn=Limit on +ExpenseReportDateStart=Date start +ExpenseReportDateEnd=Date end +ExpenseReportLimitAmount=Max amount +ExpenseReportRestrictive=Exceeding forbidden +AllExpenseReport=All type of expense report +OnExpense=Expense line +ExpenseReportRuleSave=Expense report rule saved +ExpenseReportRuleErrorOnSave=Error: %s +RangeNum=Range %d +ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) +byEX_DAY=by day (limitation to %s) +byEX_MON=by month (limitation to %s) +byEX_YEA=by year (limitation to %s) +byEX_EXP=by line (limitation to %s) +ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +nolimitbyEX_DAY=by day (no limitation) +nolimitbyEX_MON=by month (no limitation) +nolimitbyEX_YEA=by year (no limitation) +nolimitbyEX_EXP=by line (no limitation) +CarCategory=Vehicle category +ExpenseRangeOffset=Offset amount: %s +RangeIk=Mileage range +AttachTheNewLineToTheDocument=Attach the line to an uploaded document diff --git a/htdocs/langs/ms_MY/users.lang b/htdocs/langs/ms_MY/users.lang new file mode 100644 index 00000000000..d3cbbe0fa0b --- /dev/null +++ b/htdocs/langs/ms_MY/users.lang @@ -0,0 +1,130 @@ +# Dolibarr language file - Source file is en_US - users +HRMArea=HRM area +UserCard=User card +GroupCard=Group card +Permission=Permission +Permissions=Permissions +EditPassword=Edit password +SendNewPassword=Regenerate and send password +SendNewPasswordLink=Send link to reset password +ReinitPassword=Regenerate password +PasswordChangedTo=Password changed to: %s +SubjectNewPassword=Your new password for %s +GroupRights=Group permissions +UserRights=User permissions +Credentials=Credentials +UserGUISetup=User Display Setup +DisableUser=Disable +DisableAUser=Disable a user +DeleteUser=Delete +DeleteAUser=Delete a user +EnableAUser=Enable a user +DeleteGroup=Delete +DeleteAGroup=Delete a group +ConfirmDisableUser=Are you sure you want to disable user %s? +ConfirmDeleteUser=Are you sure you want to delete user %s? +ConfirmDeleteGroup=Are you sure you want to delete group %s? +ConfirmEnableUser=Are you sure you want to enable user %s? +ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? +ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +NewUser=New user +CreateUser=Create user +LoginNotDefined=Login is not defined. +NameNotDefined=Name is not defined. +ListOfUsers=List of users +SuperAdministrator=Super Administrator +SuperAdministratorDesc=Global administrator +AdministratorDesc=Administrator +DefaultRights=Default Permissions +DefaultRightsDesc=Define here the default permissions that are automatically granted to a new user (to modify permissions for existing users, go to the user card). +DolibarrUsers=Dolibarr users +LastName=Last name +FirstName=First name +ListOfGroups=List of groups +NewGroup=New group +CreateGroup=Create group +RemoveFromGroup=Remove from group +PasswordChangedAndSentTo=Password changed and sent to %s. +PasswordChangeRequest=Request to change password for %s +PasswordChangeRequestSent=Request to change password for %s sent to %s. +IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. +ConfirmPasswordReset=Confirm password reset +MenuUsersAndGroups=Users & Groups +LastGroupsCreated=Latest %s groups created +LastUsersCreated=Latest %s users created +ShowGroup=Show group +ShowUser=Show user +NonAffectedUsers=Non assigned users +UserModified=User modified successfully +PhotoFile=Photo file +ListOfUsersInGroup=List of users in this group +ListOfGroupsForUser=List of groups for this user +LinkToCompanyContact=Link to third party / contact +LinkedToDolibarrMember=Link to member +LinkedToDolibarrUser=Link to user +LinkedToDolibarrThirdParty=Link to third party +CreateDolibarrLogin=Create a user +CreateDolibarrThirdParty=Create a third party +LoginAccountDisableInDolibarr=Account disabled in Dolibarr. +UsePersonalValue=Use personal value +InternalUser=Internal user +ExportDataset_user_1=Users and their properties +DomainUser=Domain user %s +Reactivate=Reactivate +CreateInternalUserDesc=This form allows you to create an internal user in your company/organization. To create an external user (customer, vendor etc. ..), use the button 'Create Dolibarr User' from that third-party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organization, or is a partner user outside of your organization that may need to see more data than data related to his company (the permission system will define what he can or can't see or do).
    An external user is a customer, vendor or other that must view ONLY data related to himself (Creating an external user for a third-party can be done from the contact record of the third-party).

    In both cases, you must grant permissions on the features that the user need. +PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. +Inherited=Inherited +UserWillBe=Created user will be +UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) +UserWillBeExternalUser=Created user will be an external user (because linked to a particular third party) +IdPhoneCaller=Id phone caller +NewUserCreated=User %s created +NewUserPassword=Password change for %s +NewPasswordValidated=Your new password have been validated and must be used now to login. +EventUserModified=User %s modified +UserDisabled=User %s disabled +UserEnabled=User %s activated +UserDeleted=User %s removed +NewGroupCreated=Group %s created +GroupModified=Group %s modified +GroupDeleted=Group %s removed +ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? +ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? +ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? +LoginToCreate=Login to create +NameToCreate=Name of third party to create +YourRole=Your roles +YourQuotaOfUsersIsReached=Your quota of active users is reached ! +NbOfUsers=Number of users +NbOfPermissions=Number of permissions +DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin +HierarchicalResponsible=Supervisor +HierarchicView=Hierarchical view +UseTypeFieldToChange=Use field Type to change +OpenIDURL=OpenID URL +LoginUsingOpenID=Use OpenID to login +WeeklyHours=Hours worked (per week) +ExpectedWorkedHours=Expected hours worked per week +ColorUser=Color of the user +DisabledInMonoUserMode=Disabled in maintenance mode +UserAccountancyCode=User accounting code +UserLogoff=User logout +UserLogged=User logged +DateOfEmployment=Employment date +DateEmployment=Employment +DateEmploymentStart=Employment Start Date +DateEmploymentEnd=Employment End Date +RangeOfLoginValidity=Access validity date range +CantDisableYourself=You can't disable your own user record +ForceUserExpenseValidator=Force expense report validator +ForceUserHolidayValidator=Force leave request validator +ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of the user. Keep empty to keep this behaviour. +UserPersonalEmail=Personal email +UserPersonalMobile=Personal mobile phone +WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/ms_MY/website.lang b/htdocs/langs/ms_MY/website.lang new file mode 100644 index 00000000000..2bf46e63e9d --- /dev/null +++ b/htdocs/langs/ms_MY/website.lang @@ -0,0 +1,147 @@ +# Dolibarr language file - Source file is en_US - website +Shortname=Code +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. +DeleteWebsite=Delete website +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. The files uploaded (like into the medias directory, the ECM module, ...) will remain. +WEBSITE_TYPE_CONTAINER=Type of page/container +WEBSITE_PAGE_EXAMPLE=Web page to use as example +WEBSITE_PAGENAME=Page name/alias +WEBSITE_ALIASALT=Alternative page names/aliases +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:
    alternativename1, alternativename2, ... +WEBSITE_CSS_URL=URL of external CSS file +WEBSITE_CSS_INLINE=CSS file content (common to all pages) +WEBSITE_JS_INLINE=Javascript file content (common to all pages) +WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages) +WEBSITE_ROBOT=Robot file (robots.txt) +WEBSITE_HTACCESS=Website .htaccess file +WEBSITE_MANIFEST_JSON=Website manifest.json file +WEBSITE_README=README.md file +WEBSITE_KEYWORDSDesc=Use a comma to separate values +EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. +HtmlHeaderPage=HTML header (specific to this page only) +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container. +MediaFiles=Media library +EditCss=Edit website properties +EditMenu=Edit menu +EditMedias=Edit medias +EditPageMeta=Edit page/container properties +EditInLine=Edit inline +AddWebsite=Add website +Webpage=Web page/container +AddPage=Add page/container +PageContainer=Page +PreviewOfSiteNotYetAvailable=The preview of your website %s is not yet available. You must first 'Import a full website template' or just 'Add a page/container'. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. +SiteDeleted=Web site '%s' deleted +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added +ViewSiteInNewTab=View site in new tab +ViewPageInNewTab=View page in new tab +SetAsHomePage=Set as Home page +RealURL=Real URL +ViewWebsiteInProduction=View web site using home URLs +SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s +ExampleToUseInApacheVirtualHostConfig=Example to use in Apache virtual host setup: +YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org +CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s +ReadPerm=Read +WritePerm=Write +TestDeployOnWeb=Test/deploy on web +PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that the URLs of pages are not user friendly and start with the path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that points on directory
    %s
    then enter the name of this virtual server in the properties of this website and click on the link "Test/Deploy on the web". +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined +NoPageYet=No pages yet +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template +SyntaxHelp=Help on specific syntax tips +YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. +YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    +#YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    +YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . +ClonePage=Clone page/container +CloneSite=Clone site +SiteAdded=Website added +ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. +PageIsANewTranslation=The new page is a translation of the current page ? +LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page. +ParentPageId=Parent page ID +WebsiteId=Website ID +CreateByFetchingExternalPage=Create page/container by fetching page from external URL... +OrEnterPageInfoManually=Or create page from scratch or from a page template... +FetchAndCreate=Fetch and Create +ExportSite=Export website +ImportSite=Import website template +IDOfPage=Id of page +Banner=Banner +BlogPost=Blog post +WebsiteAccount=Website account +WebsiteAccounts=Website accounts +AddWebsiteAccount=Create web site account +BackToListForThirdParty=Back to list for the third-party +DisableSiteFirst=Disable website first +MyContainerTitle=My web site title +AnotherContainer=This is how to include content of another page/container (you may have an error here if you enable dynamic code because the embedded subcontainer may not exists) +SorryWebsiteIsCurrentlyOffLine=Sorry, this website is currently off line. Please comme back later... +WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / third party +YouMustDefineTheHomePage=You must first define the default Home page +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved for experienced users. Depending on the complexity of source page, the result of importation may differ from the original. Also if the source page uses common CSS styles or conflicting javascript, it may break the look or features of the Website editor when working on this page. This method is a quicker way to create a page but it is recommended to create your new page from scratch or from a suggested page template.
    Note also that the inline editor may not works correclty when used on a grabbed external page. +OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site +GrabImagesInto=Grab also images found into css and page. +ImagesShouldBeSavedInto=Images should be saved into directory +WebsiteRootOfImages=Root directory for website images +SubdirOfPage=Sub-directory dedicated to page +AliasPageAlreadyExists=Alias page %s already exists +CorporateHomePage=Corporate Home page +EmptyPage=Empty page +ExternalURLMustStartWithHttp=External URL must start with http:// or https:// +ZipOfWebsitePackageToImport=Upload the Zip file of the website template package +ZipOfWebsitePackageToLoad=or Choose an available embedded website template package +ShowSubcontainers=Show dynamic content +InternalURLOfPage=Internal URL of page +ThisPageIsTranslationOf=This page/container is a translation of +ThisPageHasTranslationPages=This page/container has translation +NoWebSiteCreateOneFirst=No website has been created yet. Create one first. +GoTo=Go to +DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). +NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. +ReplaceWebsiteContent=Search or Replace website content +DeleteAlsoJs=Delete also all javascript files specific to this website? +DeleteAlsoMedias=Delete also all medias files specific to this website? +MyWebsitePages=My website pages +SearchReplaceInto=Search | Replace into +ReplaceString=New string +CSSContentTooltipHelp=Enter here CSS content. To avoid any conflict with the CSS of the application, be sure to prepend all declaration with the .bodywebsite class. For example:

    #mycssselector, input.myclass:hover { ... }
    must be
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }

    Note: If you have a large file without this prefix, you can use 'lessc' to convert it to append the .bodywebsite prefix everywhere. +LinkAndScriptsHereAreNotLoadedInEditor=Warning: This content is output only when site is accessed from a server. It is not used in Edit mode so if you need to load javascript files also in edit mode, just add your tag 'script src=...' into the page. +Dynamiccontent=Sample of a page with dynamic content +ImportSite=Import website template +EditInLineOnOff=Mode 'Edit inline' is %s +ShowSubContainersOnOff=Mode to execute 'dynamic content' is %s +GlobalCSSorJS=Global CSS/JS/Header file of web site +BackToHomePage=Back to home page... +TranslationLinks=Translation links +YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not available.
    (ref=%s, type=%s, status=%s) +UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 characters +MainLanguage=Main language +OtherLanguages=Other languages +UseManifest=Provide a manifest.json file +PublicAuthorAlias=Public author alias +AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties +ReplacementDoneInXPages=Replacement done in %s pages or containers +RSSFeed=RSS Feed +RSSFeedDesc=You can get a RSS feed of latest articles with type 'blogpost' using this URL +PagesRegenerated=%s page(s)/container(s) regenerated +RegenerateWebsiteContent=Regenerate web site cache files +AllowedInFrames=Allowed in Frames +DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. +GenerateSitemaps=Generate website sitemap file +ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... +ConfirmSitemapsCreation=Confirm sitemap generation +SitemapGenerated=Sitemap file %s generated +ImportFavicon=Favicon +ErrorFaviconType=Favicon must be png +ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 +FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) diff --git a/htdocs/langs/ms_MY/withdrawals.lang b/htdocs/langs/ms_MY/withdrawals.lang new file mode 100644 index 00000000000..82cd908c6a8 --- /dev/null +++ b/htdocs/langs/ms_MY/withdrawals.lang @@ -0,0 +1,159 @@ +# Dolibarr language file - Source file is en_US - withdrawals +CustomersStandingOrdersArea=Payments by Direct debit orders +SuppliersStandingOrdersArea=Payments by Credit transfer +StandingOrdersPayment=Direct debit payment orders +StandingOrderPayment=Direct debit payment order +NewStandingOrder=New direct debit order +NewPaymentByBankTransfer=New payment by credit transfer +StandingOrderToProcess=To process +PaymentByBankTransferReceipts=Credit transfer orders +PaymentByBankTransferLines=Credit transfer order lines +WithdrawalsReceipts=Direct debit orders +WithdrawalReceipt=Direct debit order +BankTransferReceipts=Credit transfer orders +BankTransferReceipt=Credit transfer order +LatestBankTransferReceipts=Latest %s credit transfer orders +LastWithdrawalReceipts=Latest %s direct debit files +WithdrawalsLine=Direct debit order line +CreditTransfer=Credit transfer +CreditTransferLine=Credit transfer line +WithdrawalsLines=Direct debit order lines +CreditTransferLines=Credit transfer lines +RequestStandingOrderToTreat=Requests for direct debit payment order to process +RequestStandingOrderTreated=Requests for direct debit payment order processed +RequestPaymentsByBankTransferToTreat=Requests for credit transfer to process +RequestPaymentsByBankTransferTreated=Requests for credit transfer processed +NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines. +NbOfInvoiceToWithdraw=No. of qualified customer invoices with waiting direct debit order +NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information +NbOfInvoiceToPayByBankTransfer=No. of qualified supplier invoices waiting for a payment by credit transfer +SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit transfer +InvoiceWaitingWithdraw=Invoice waiting for direct debit +InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer +AmountToWithdraw=Amount to withdraw +AmountToTransfer=Amount to transfer +NoInvoiceToWithdraw=No invoice open for '%s' is waiting. Go on tab '%s' on invoice card to make a request. +NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request. +ResponsibleUser=User Responsible +WithdrawalsSetup=Direct debit payment setup +CreditTransferSetup=Credit transfer setup +WithdrawStatistics=Direct debit payment statistics +CreditTransferStatistics=Credit transfer statistics +Rejects=Rejects +LastWithdrawalReceipt=Latest %s direct debit receipts +MakeWithdrawRequest=Make a direct debit payment request +MakeBankTransferOrder=Make a credit transfer request +WithdrawRequestsDone=%s direct debit payment requests recorded +BankTransferRequestsDone=%s credit transfer requests recorded +ThirdPartyBankCode=Third-party bank code +NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode %s. +WithdrawalCantBeCreditedTwice=This withdrawal receipt is already marked as credited; this can't be done twice, as this would potentially create duplicate payments and bank entries. +ClassCredited=Classify credited +ClassDebited=Classify debited +ClassCreditedConfirm=Are you sure you want to classify this withdrawal receipt as credited on your bank account? +TransData=Transmission date +TransMetod=Transmission method +Send=Send +Lines=Lines +StandingOrderReject=Issue a rejection +WithdrawsRefused=Direct debit refused +WithdrawalRefused=Withdrawal refused +CreditTransfersRefused=Credit transfers refused +WithdrawalRefusedConfirm=Are you sure you want to enter a withdrawal rejection for society +RefusedData=Date of rejection +RefusedReason=Reason for rejection +RefusedInvoicing=Billing the rejection +NoInvoiceRefused=Do not charge the rejection +InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit +StatusWaiting=Waiting +StatusTrans=Sent +StatusDebited=Debited +StatusCredited=Credited +StatusPaid=Paid +StatusRefused=Refused +StatusMotif0=Unspecified +StatusMotif1=Insufficient funds +StatusMotif2=Request contested +StatusMotif3=No direct debit payment order +StatusMotif4=Sales Order +StatusMotif5=RIB unusable +StatusMotif6=Account without balance +StatusMotif7=Judicial Decision +StatusMotif8=Other reason +CreateForSepaFRST=Create direct debit file (SEPA FRST) +CreateForSepaRCUR=Create direct debit file (SEPA RCUR) +CreateAll=Create direct debit file +CreateFileForPaymentByBankTransfer=Create file for credit transfer +CreateSepaFileForPaymentByBankTransfer=Create credit transfer file (SEPA) +CreateGuichet=Only office +CreateBanque=Only bank +OrderWaiting=Waiting for treatment +NotifyTransmision=Record file transmission of order +NotifyCredit=Record credit of order +NumeroNationalEmetter=National Transmitter Number +WithBankUsingRIB=For bank accounts using RIB +WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT +BankToReceiveWithdraw=Receiving Bank Account +BankToPayCreditTransfer=Bank Account used as source of payments +CreditDate=Credit on +WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported) +ShowWithdraw=Show Direct Debit Order +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Payment by direct debit to generate and manage the direct debit order. When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu Bank->Payment by credit transfer to generate and manage the credit transfer order. When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +WithdrawalFile=Debit order file +CreditTransferFile=Credit transfer file +SetToStatusSent=Set to status "File Sent" +ThisWillAlsoAddPaymentOnInvoice=This will also record payments on invoices and will classify them as "Paid" if remain to pay is null +StatisticsByLineStatus=Statistics by status of lines +RUM=UMR +DateRUM=Mandate signature date +RUMLong=Unique Mandate Reference +RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. +WithdrawMode=Direct debit mode (FRST or RECUR) +WithdrawRequestAmount=Amount of Direct debit request: +BankTransferAmount=Amount of Credit Transfer request: +WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. +SepaMandate=SEPA Direct Debit Mandate +SepaMandateShort=SEPA Mandate +PleaseReturnMandate=Please return this mandate form by email to %s or by mail to +SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +CreditorIdentifier=Creditor Identifier +CreditorName=Creditor Name +SEPAFillForm=(B) Please complete all the fields marked * +SEPAFormYourName=Your name +SEPAFormYourBAN=Your Bank Account Name (IBAN) +SEPAFormYourBIC=Your Bank Identifier Code (BIC) +SEPAFrstOrRecur=Type of payment +ModeRECUR=Recurring payment +ModeFRST=One-off payment +PleaseCheckOne=Please check one only +CreditTransferOrderCreated=Credit transfer order %s created +DirectDebitOrderCreated=Direct debit order %s created +AmountRequested=Amount requested +SEPARCUR=SEPA CUR +SEPAFRST=SEPA FRST +ExecutionDate=Execution date +CreateForSepa=Create direct debit file +ICS=Creditor Identifier - ICS +IDS=Debitor Identifier +END_TO_END="EndToEndId" SEPA XML tag - Unique id assigned per transaction +USTRD="Unstructured" SEPA XML tag +ADDDAYS=Add days to Execution Date +NoDefaultIBANFound=No default IBAN found for this third party +### Notifications +InfoCreditSubject=Payment of direct debit payment order %s by the bank +InfoCreditMessage=The direct debit payment order %s has been paid by the bank
    Data of payment: %s +InfoTransSubject=Transmission of direct debit payment order %s to bank +InfoTransMessage=The direct debit payment order %s has been sent to bank by %s %s.

    +InfoTransData=Amount: %s
    Method: %s
    Date: %s +InfoRejectSubject=Direct debit payment order refused +InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s related to the company %s, with an amount of %s has been refused by the bank.

    --
    %s +ModeWarning=Option for real mode was not set, we stop after this simulation +ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. +ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines +WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s +WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/ms_MY/workflow.lang b/htdocs/langs/ms_MY/workflow.lang new file mode 100644 index 00000000000..2d7914f6139 --- /dev/null +++ b/htdocs/langs/ms_MY/workflow.lang @@ -0,0 +1,36 @@ +# Dolibarr language file - Source file is en_US - workflow +WorkflowSetup=Workflow module setup +WorkflowDesc=This module provides some automatic actions. By default, the workflow is open (you can do things in the order you want) but here you can activate some automatic actions. +ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. +# Autoclassify customer proposal or order +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal) +# Autoclassify purchase order +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies +# Autoclose intervention +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +AutomaticCreation=Automatic creation +AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/ms_MY/zapier.lang b/htdocs/langs/ms_MY/zapier.lang new file mode 100644 index 00000000000..b4cc4ccba4a --- /dev/null +++ b/htdocs/langs/ms_MY/zapier.lang @@ -0,0 +1,21 @@ +# Copyright (C) 2019 Frédéric FRANCE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +ModuleZapierForDolibarrName = Zapier for Dolibarr +ModuleZapierForDolibarrDesc = Zapier for Dolibarr module +ZapierForDolibarrSetup=Setup of Zapier for Dolibarr +ZapierDescription=Interface with Zapier +ZapierAbout=About the module Zapier +ZapierSetupPage=There is no need for a setup on Dolibarr side to use Zapier. However, you must generate and publish a package on zapier to be able to use Zapier with Dolibarr. See documentation on this wiki page. diff --git a/htdocs/langs/my_MM/datapolicy.lang b/htdocs/langs/my_MM/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/my_MM/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/my_MM/errors.lang b/htdocs/langs/my_MM/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/my_MM/errors.lang +++ b/htdocs/langs/my_MM/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/my_MM/externalsite.lang b/htdocs/langs/my_MM/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/my_MM/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/my_MM/ftp.lang b/htdocs/langs/my_MM/ftp.lang deleted file mode 100644 index 254a2a698ce..00000000000 --- a/htdocs/langs/my_MM/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP or SFTP Client module setup -NewFTPClient=New FTP/FTPS connection setup -FTPArea=FTP/FTPS Area -FTPAreaDesc=This screen shows a view of an FTP et SFTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions -FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index 2797847c77a..c023b1bfdd9 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Land ikke i EEC CountriesInEECExceptMe=Land i EEC unntatt %s CountriesExceptMe=Alle land unntatt %s AccountantFiles=Eksporter kildedokumenter -ExportAccountingSourceDocHelp=Med dette verktøyet kan du eksportere kildehendelsene (liste i CSV og PDF-er) som brukes til å generere regnskapet ditt. +ExportAccountingSourceDocHelp=Med dette verktøyet kan du søke og eksportere kildehendelsene som brukes til å generere regnskapet ditt.
    Den eksporterte ZIP-filen vil inneholde listene over forespurte elementer i CSV, samt vedlagte filer i deres originale format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=For å eksportere journalene dine, bruk menyoppføringen %s - %s. +ExportAccountingProjectHelp=Spesifiser et prosjekt hvis du trenger en regnskapsrapport kun for et spesifikt prosjekt. Utgiftsrapporter og lånebetalinger er ikke inkludert i prosjektrapporter. VueByAccountAccounting=Vis etter regnskapskonto VueBySubAccountAccounting=Vis etter regnskaps-subkonto @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Hovedregnskapskonto for leverandører som ikke MainAccountForUsersNotDefined=Hoved regnskapskonto for brukere som ikke er definert i oppsettet MainAccountForVatPaymentNotDefined=Hoved regnskapskonto for MVA-betaling ikke definert i oppsettet MainAccountForSubscriptionPaymentNotDefined=Hovedregnskapskonto for abonnementsbetaling ikke definert i oppsettet +UserAccountNotDefined=Regnskapskonto for bruker ikke definert i oppsett AccountancyArea=Regnskapsområde AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt: @@ -73,13 +75,13 @@ AccountancyAreaDescVat=TRINN %s: Definer regnskapskonto for hver MVA-sats. Bruk AccountancyAreaDescDefault=TRINN %s: Definer standard regnskapskontoer. For dette, bruk menyoppføringen %s. AccountancyAreaDescExpenseReport=TRINN %s: Definer standard regnskapskontoer for hver type utgiftsrapport. For dette, bruk menyoppføringen %s. AccountancyAreaDescSal=TRINN %s: Definer standard regnskapskonto for betaling av lønn. Bruk menyoppføring %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. +AccountancyAreaDescContrib=TRINN %s: Definer standard regnskapskontoer for skatter (spesielle utgifter). For dette, bruk menyoppføringen %s. AccountancyAreaDescDonation=TRINN %s: Definer standard regnskapskonto for donasjoner. Bruk menyoppføringen %s. AccountancyAreaDescSubscription=TRINN %s: Definer standard regnskapskonto for medlemsabonnement. Bruk menyoppføringen %s. AccountancyAreaDescMisc=TRINN %s: Definer obligatorisk standardkonto og standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s. AccountancyAreaDescLoan=TRINN %s: Definer standard regnskapskonto for lån. Bruk menyoppføringen %s. AccountancyAreaDescBank=TRINN %s: Definer regnskapskontoer og journalkode for hver bank- og finansregnskap. For dette, bruk menyoppføringen %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. +AccountancyAreaDescProd=TRINN %s: Definer regnskapskontoer på dine varer/tjenester. For dette, bruk menyoppføringen %s. AccountancyAreaDescBind=TRINN %s: Kontroller at bindingen mellom eksisterende %s linjer og regnskapskonto er ferdig, slik at applikasjonen vil kunne journalføre transaksjoner i hovedboken med ett klikk. Fullfør manglende bindinger. Bruk menyen %s. AccountancyAreaDescWriteRecords=TRINN %s: Skriv transaksjoner inn i hovedboken. For dette, gå til menyen %s, og klikk på knappen %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Nedleggelse MenuAccountancyValidationMovements=Valider bevegelser ProductsBinding=Varekontoer TransferInAccounting=Overføring i regnskap -RegistrationInAccounting=Recording in accounting +RegistrationInAccounting=Registrering i regnskap Binding=Binding til kontoer CustomersVentilation=Binding av kundefakturaer SuppliersVentilation=Leverandørfaktura-bindinger @@ -159,44 +161,48 @@ ACCOUNTING_LENGTH_AACCOUNT=Lengden på tredjeparts regnskapskontoer (Hvis du ang ACCOUNTING_MANAGE_ZERO=Tillat å administrere forskjellig antall nuller på slutten av en regnskapskonto. Nødvendig for enkelte land (som Sveits). Hvis du holder den av (standard), kan du angi de 2 følgende parametrene for å be om å legge til virtuell null. BANK_DISABLE_DIRECT_INPUT=Deaktiver direkteregistrering av transaksjoner på bankkonto ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Aktiver eksportutkast i journal -ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) +ACCOUNTANCY_COMBO_FOR_AUX=Aktiver kombinasjonsliste for underordnet konto (kan være treg hvis du har mange tredjeparter, fjerner muligheten til å søke på en del av verdien) ACCOUNTING_DATE_START_BINDING=Definer en dato for å starte binding og overføring i regnskap. Etter denne datoen vil ikke transaksjonene bli overført til regnskap. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Velg regnskapsvisning som standard ved overføring av regnskap +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Ved regnskapsoverføring, hvilken periode er valgt som standard -ACCOUNTING_SELL_JOURNAL=Salgsjournal -ACCOUNTING_PURCHASE_JOURNAL=Innkjøpsjournal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diverseprotokoll +ACCOUNTING_SELL_JOURNAL=Salgsjournal (salg og retur) +ACCOUNTING_PURCHASE_JOURNAL=Kjøpsjournal (kjøp og retur) +ACCOUNTING_BANK_JOURNAL=Kassejournal (kvitteringer og utbetalinger) ACCOUNTING_EXPENSEREPORT_JOURNAL=Utgiftsjournal -ACCOUNTING_SOCIAL_JOURNAL=Sosialjournal +ACCOUNTING_MISCELLANEOUS_JOURNAL=Generell journal ACCOUNTING_HAS_NEW_JOURNAL=Har ny journal +ACCOUNTING_INVENTORY_JOURNAL=Lagertellingsjournal +ACCOUNTING_SOCIAL_JOURNAL=Sosialjournal ACCOUNTING_RESULT_PROFIT=Resultatregnskapskonto (fortjeneste) ACCOUNTING_RESULT_LOSS=Resultatregnskapskonto (tap) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Avslutningsjournal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Regnskapkonto for overgangsbasert overføring +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Overgangsbasert bankoverføringskonto -ACCOUNTING_ACCOUNT_SUSPENSE=Regnskapskonto for vent -DONATION_ACCOUNTINGACCOUNT=Regnskapskonto for registrering av donasjoner -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Regnskapskonto for å registrere abonnementer +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Regnskapskonto som standard for å registrere kundeinnskudd -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Lagre kundekonto som individuell konto i hovedbok for linjer med forskuddsbetalinger (hvis den er deaktivert, vil individuell konto for forskuddsbetalingslinjer forbli tom) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Lagre leverandørkonto som individuell konto i hovedbok for linjer med forskuddsbetalinger (hvis den er deaktivert, vil individuell konto for forskuddslinjer forbli tom) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Regnskapskonto som standard for de kjøpte varene (brukt hvis ikke definert i produktarket) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Regnskapskonto som standard for kjøpte produkter i EU (brukt hvis ikke definert i produktarket) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Regnskapskonto som standard for kjøpte produkter og importert ut av EU (brukt hvis ikke definert i produktarket) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard regnskapskonto for solgte varer (brukt hvis ikke definert på varekortet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Regnskapskonto som standard for varene som selges i EU (brukt hvis ikke definert i varearket) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Regnskapskonto som standard for produktene som er solgt og eksportert ut av EU (brukt hvis ikke definert i varearket) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard regnskapskonto for kjøpte tjenester (brukt hvis ikke definert på tjenestekortet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Regnskapskonto som standard for kjøpte tjenester i EU (brukt hvis ikke definert i tjenestearket) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Regnskapskonto som standard for kjøpte tjenester og importert ut av EU (brukt hvis ikke definert i tjenestearket) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard regnskapskonto for solgte tjenester (brukt hvis ikke definert på tjenestekortet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Regnskapskonto som standard for tjenestene som selges i EU (brukes hvis ikke definert i tjenestearket) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Regnskapskonto som standard for tjenestene som er solgt og eksportert ut av EU (brukt hvis ikke definert i tjenestearket) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Dokumenttype Docdate=Dato @@ -204,14 +210,14 @@ Docref=Referanse LabelAccount=Kontoetikett LabelOperation=Etikettoperasjon Sens=Retning -AccountingDirectionHelp=For an accounting account of a customer, use Credit to record a payment you have received
    For an accounting account of a supplier, use Debit to record a payment you made +AccountingDirectionHelp=For en regnskapskonto til en kunde, bruk Kreditt for å registrere en betaling du har mottatt
    For en regnskapskonto til en leverandør, bruk Debet for å registrere en betaling du har utført LetteringCode=Korrespondansekode Lettering=Korrespondanse Codejournal=Journal JournalLabel=Journaletikett NumPiece=Del nummer TransactionNumShort=Transaksjonsnummer -AccountingCategory=Egendefinert gruppe +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Gruppere etter hovedbokskonto GroupBySubAccountAccounting=Gruppere etter sub-hovedbokskonto AccountingAccountGroupsDesc=Her kan du definere noen grupper regnskapskonti. De vil bli brukt til personlige regnskapsrapporter. @@ -224,7 +230,7 @@ DeleteMvt=Slett linjer fra regnskapet DelMonth=Måned å slette DelYear=År som skal slettes DelJournal=Journal som skal slettes -ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvt=Dette vil slette alle linjer i regnskap for året/måneden og/eller for en bestemt journal (minst ett kriterium kreves). Du må bruke funksjonen '%s' på nytt for å få den slettede posten tilbake i hovedboken. ConfirmDeleteMvtPartial=Dette vil slette transaksjonen fra regnskapet (alle linjer knyttet til samme transaksjon vil bli slettet) FinanceJournal=Finansjournal ExpenseReportsJournal=Journal for utgiftsrapporter @@ -247,9 +253,9 @@ DescThirdPartyReport=Liste over tredjeparts kunder og leverandører og deres reg ListAccounts=Liste over regnskapskontoer UnknownAccountForThirdparty=Ukjent tredjepartskonto. Vi vil bruke %s UnknownAccountForThirdpartyBlocking=Ukjent tredjepartskonto. Blokkeringsfeil -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or third party or user unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger kontro ikke definert eller tredjepart eller bruker ukjent. Vi vil bruke %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Tredjepart ukjent og regnskapsbok ikke definert på betalingen. Vi vil holde kontoen tom. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledger account not defined or third party or user unknown. Blocking error. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledgerkonto ikke definert eller tredjepart eller bruker ukjent. Blokkeringsfeil. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Ukjent tredjepartskonto og ventekonto ikke definert. Blokkeringsfeil PaymentsNotLinkedToProduct=Betaling ikke knyttet til noen vare/tjeneste OpeningBalance=Inngående balanse @@ -265,13 +271,13 @@ Reconcilable=Kan avstemmes TotalVente=Total omsetning før skatt TotalMarge=Total salgsmargin -DescVentilCustomer=Liste over kunde-fakturalinjer (bundet eller ikke) til en vare-regnskapskonto -DescVentilMore=I de fleste tilfeller, hvis du bruker forhåndsdefinerte varer eller tjenester, og du setter kontonummeret på vare/tjeneste-kortet, vil programmet være i stand til å gjøre alle bindinger mellom fakturalinjer og regnskapskonto i din kontoplan, bare med et enkelt klikk på knappen "%s". Hvis kontoen ikke ble satt på vare-/tjenestekortet eller hvis du fortsatt har noen linjer ikke bundet til noen konto, må du foreta en manuell binding fra menyen "%s". -DescVentilDoneCustomer=Liste over kunde-fakturalinjer og deres vare-regnskapskontoer -DescVentilTodoCustomer=Bind fakturalinjer som ikke allerede er bundet, til en vare-regnskapskonto -ChangeAccount=Endre regnskapskonto for valgte vare-/tjenestelinjer til følgende konto: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Liste over leverandørfakturalinjer som er bundet eller ennå ikke bundet til en vareregnskapskonto (bare posten som ikke allerede er overført i regnskap, er synlig) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Liste over linjene med leverandørfakturaer og deres regnskapskonto DescVentilTodoExpenseReport=Bind utgiftsrapport-linjer til en gebyr-regnskapskonto DescVentilExpenseReport=Liste over utgiftsrapport-linjer bundet (eller ikke) til en gebyr-regnskapskonto @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Hvis du setter opp regnskapskonto med type utgiftsra DescVentilDoneExpenseReport=Liste over utgiftsrapport-linjer og tilhørende gebyr-regnskapskonto Closure=Årsavslutning -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Valider og lås posten... +DescClosure=Her ser du antall bevegelser per måned som ennå ikke er validert og låst +OverviewOfMovementsNotValidated=Oversikt over bevegelser som ikke er validert og låst +AllMovementsWereRecordedAsValidated=Alle bevegelser ble registrert som validerte og låste +NotAllMovementsCouldBeRecordedAsValidated=Ikke alle bevegelser kunne registreres som validerte og låste +ValidateMovements=Valider og lås bevegelser... DescValidateMovements=Enhver modifisering eller fjerning av skriving, bokstaver og sletting vil være forbudt. Alle påmeldinger for en oppgave må valideres, ellers er det ikke mulig å lukke ValidateHistory=Bind automatisk AutomaticBindingDone=Automatiske bindinger utført (%s) - Automatisk binding er ikke mulig for enkelte poster (%s) -ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Bevegelsen er ikke riktig balansert. Debet = %s & kreditt = %s Balancing=Balansering FicheVentilation=Binding-kort GeneralLedgerIsWritten=Transaksjoner blir skrevet inn i hovedboken GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke journalføres. Hvis det ikke er noen annen feilmelding, er dette trolig fordi de allerede var journalført. NoNewRecordSaved=Ingen flere poster å overføre -ListOfProductsWithoutAccountingAccount=Liste over varer som ikke bundet til en regnskapskonto +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Endre bindingen Accounted=Regnskapsført i hovedbok NotYetAccounted=Foreløpig ikke overført til regnskap @@ -322,6 +328,7 @@ AccountingJournalType4=Bank AccountingJournalType5=Utgiftsrapporter AccountingJournalType8=Varetelling AccountingJournalType9=Har nye +GenerationOfAccountingEntries=Generering av regnskapsposter ErrorAccountingJournalIsAlreadyUse=Denne journalen er allerede i bruk AccountingAccountForSalesTaxAreDefinedInto=Merk: Regnskapskonto for MVA er definert i menyen %s - %s NumberOfAccountancyEntries=Antall oppføringer @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Antall bevegelser ACCOUNTING_DISABLE_BINDING_ON_SALES=Deaktiver binding og overføring til regnskap ved salg (kundefakturaer blir ikke tatt med i regnskapet) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overføring til regnskap ved kjøp (leverandørfakturaer blir ikke tatt med i regnskapet) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overføring til regnskap på utgiftsrapporter (utgiftsrapporter blir ikke tatt med i regnskapet) +ACCOUNTING_ENABLE_LETTERING=Aktiver bokstavfunksjonen i regnskapet ## Export -NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotExportLettering=Ikke eksporter bokstaver når du genererer filen +NotifiedExportDate=Flagg eksporterte linjer som eksportert (for å endre en linje, må du slette hele transaksjonen og overføre den til regnskapet på nytt) +NotifiedValidationDate=Valider og lås de eksporterte oppføringene (samme effekt som "%s"-funksjonen, modifikasjon og sletting av linjene vil DEFINITIVT ikke være mulig) DateValidationAndLock=Datovalidering og lås ConfirmExportFile=Bekreftelse på generering av regnskapseksportfilen ? ExportDraftJournal=Eksporter utkastjournal @@ -398,7 +407,11 @@ Calculated=Kalkulert Formula=Formel ## Reconcile +LetteringAuto=Avstem automatisk +LetteringManual=Avstem manuelt Unlettering=Reverser avstemming +UnletteringAuto=Tilbakestill atomatisk avsteming +UnletteringManual=Tilbakestill manuell avsteming AccountancyNoLetteringModified=Ingen avstemming endret AccountancyOneLetteringModifiedSuccessfully=Én avstemming ble endret AccountancyLetteringModifiedSuccessfully=%s avstemming ble endret @@ -407,10 +420,11 @@ AccountancyOneUnletteringModifiedSuccessfully=Én reversert avstemming ble endre AccountancyUnletteringModifiedSuccessfully=%s reversertavstemming ble endret ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bekreftelse på bulk tilbakestilling av automatisk avstemming +ConfirmMassUnletteringManual=Bekreftelse på bulk tilbakestilling av manuell avstemming +ConfirmMassUnletteringQuestion=Er du sikker på at du vil tilbakestille avstemming av %s valgte post(er)? ConfirmMassDeleteBookkeepingWriting=Bekreft massesletting -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeleteBookkeepingWritingQuestion=Dette vil slette transaksjonen fra regnskapet (alle linjer knyttet til samme transaksjon vil bli slettet) Er du sikker på at du vil slette %s valgte post(er)? ## Error SomeMandatoryStepsOfSetupWereNotDone=Noen obligatoriske trinn for oppsett ble ikke gjort, vennligst fullfør disse @@ -423,10 +437,11 @@ NoJournalDefined=Ingen journal definert Binded=Bundne linjer ToBind=Linjer som skal bindes UseMenuToSetBindindManualy=Linjer som ennå ikke er bundet, bruk menyen %s for å gjøre bindingen manuelt -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Beklager, denne modulen er ikke kompatibel med den eksperimentelle funksjonen til situasjonsfakturaer +AccountancyErrorMismatchLetterCode=Uoverensstemmelse i avstemmingskode AccountancyErrorMismatchBalanceAmount=Saldoen (%s) er ikke lik 0 AccountancyErrorLetteringBookkeeping=Det har oppstått feil angående transaksjonene: %s +ErrorAccountNumberAlreadyExists=Kontonummeret %s eksisterer allerede ## Import ImportAccountingEntries=Regnskapsposter @@ -437,22 +452,21 @@ FECFormatEntryNum=Delenummer (EcritureNum) FECFormatEntryDate=Del dato (EcritureDate) FECFormatGeneralAccountNumber=Generelt kontonummer (CompteNum) FECFormatGeneralAccountLabel=Generell kontoetikett (CompteLib) -FECFormatSubledgerAccountNumber=Subledger account number (CompAuxNum) -FECFormatSubledgerAccountLabel=Subledger account number (CompAuxLib) -FECFormatPieceRef=Piece ref (PieceRef) -FECFormatPieceDate=Piece date creation (PieceDate) -FECFormatLabelOperation=Label operation (EcritureLib) +FECFormatSubledgerAccountNumber=Underreskontronummer (CompAuxNum) +FECFormatSubledgerAccountLabel=Subledger kontonummer (CompAuxLib) +FECFormatPieceRef=Stykkeref (PieceRef) +FECFormatPieceDate=Del opprettelsedato (PieceDate) +FECFormatLabelOperation=Etikettoperasjon (EcritureLib) FECFormatDebit=Debet (debet) FECFormatCredit=Kreditt (kreditt) -FECFormatReconcilableCode=Reconcilable code (EcritureLet) -FECFormatReconcilableDate=Reconcilable date (DateLet) -FECFormatValidateDate=Piece date validated (ValidDate) -FECFormatMulticurrencyAmount=Multicurrency amount (Montantdevise) -FECFormatMulticurrencyCode=Multicurrency code (Idevise) +FECFormatReconcilableCode=Avstembar kode (EcritureLet) +FECFormatReconcilableDate=Avstembar dato (DateLet) +FECFormatValidateDate=Stykkedato validert (ValidDate) +FECFormatMulticurrencyAmount=Flervalutabeløp (Montantdevise) +FECFormatMulticurrencyCode=Flervalutakode (Idevise) DateExport=Dato eksport WarningReportNotReliable=Advarsel, denne rapporten er ikke basert på hovedboken, så den inneholder ikke transaksjoner endret manuelt i hovedboken. Hvis journaliseringen din er oppdatert, er bokføringsvisningen mer nøyaktig. ExpenseReportJournal=Utgiftsrapport-journal -InventoryJournal=Inventar-journal NAccounts=%s kontoer diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index 5243697bdc5..629a1110623 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin -BoldRefAndPeriodOnPDF=Print reference and period of product item in PDF -BoldLabelOnPDF=Print label of product item in Bold in PDF +BoldRefAndPeriodOnPDF=Skriv ut referanse og periode for vare i PDF +BoldLabelOnPDF=Skriv ut etikett på vareelement i fet skrift i PDF Foundation=Organisasjon Version=Versjon Publisher=Utgiver @@ -51,8 +51,6 @@ ClientSortingCharset=Klientsammenstilling WarningModuleNotActive=Modulen %s må være slått på WarningOnlyPermissionOfActivatedModules=Bare tillateleser for aktiverte moduler vises her. Du kan slå på andre moduler ved å gå inn på Oppsett - Moduler. DolibarrSetup=Dolibarr oppsett -InternalUser=Intern bruker -ExternalUser=Ekstern bruker InternalUsers=Interne brukere ExternalUsers=Eksterne brukere UserInterface=Brukergrensesnitt @@ -109,7 +107,7 @@ NextValueForReplacements=Neste verdi (erstatninger) MustBeLowerThanPHPLimit=Merk: PHP-konfigurasjonen din begrenser for øyeblikket maksimalt filstørrelse for opplasting til %s %s, uavhengig av verdien til denne parameteren NoMaxSizeByPHPLimit=Merk: Det er ikke satt noen begrensninger i din PHP-konfigurasjon på denne serveren MaxSizeForUploadedFiles=Maksimal filstørrelse for opplasting av filer (0 for å ikke tillate opplasting) -UseCaptchaCode=Bruk Capthca på innloggingsside +UseCaptchaCode=Bruk grafisk kode (CAPTCHA) på påloggingssiden og noen offentlige sider AntiVirusCommand=Full sti til antivirus kommandoen AntiVirusCommandExample=Eksempel for ClamAv Daemon (krever clamav-daemon): /usr/bin/clamdscan
    Eksempel på ClamWin (veldig veldig treg): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Flere parametre på kommandolinjen @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS-vert (standardverdi i php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-port (Ikke definert i PHP på Unix-lignende systemer) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Ikke definert i PHP på Unix-lignende systemer) MAIN_MAIL_EMAIL_FROM=Avsender-epost for automatiske eposter (standardverdi i php.ini: %s) +EMailHelpMsgSPFDKIM=For å forhindre at Dolibarr-e-poster klassifiseres som spam, sørg for at serveren er autorisert til å sende e-post fra denne adressen ved SPF- og DKIM-konfigurasjon MAIN_MAIL_ERRORS_TO=E-post brukes til å returnere epostmeldinger (felt 'Feil-til' i epostmeldinger sendt) MAIN_MAIL_AUTOCOPY_TO= Kopier alle sendte e-post til MAIN_DISABLE_ALL_MAILS=Deaktiver all epost sending (for testformål eller demoer) @@ -439,8 +438,10 @@ Unique=Unik Boolean=Boolsk (en avkrysningsboks) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris +ExtrafieldPriceWithCurrency=Pris med valuta ExtrafieldMail = E-post ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Velg liste ExtrafieldSelectList = Velg fra tabell ExtrafieldSeparator=Separator (ikke et felt) @@ -477,7 +478,7 @@ InstalledInto=Installert i mappen %s BarcodeInitForThirdparties=Masseinitiering av strekkoder for tredjeparter BarcodeInitForProductsOrServices=Masseinitiering eller sletting av strekkoder for varer og tjenester CurrentlyNWithoutBarCode=For øyeblikket har du %s poster på %s %s uten strekkode. -InitEmptyBarCode=Startverdi for neste %s tomme post +InitEmptyBarCode=Init-verdi for de tomme strekkodene %s EraseAllCurrentBarCode=Slett alle gjeldende strekkode-verdier ConfirmEraseAllCurrentBarCode=Er du sikker på at du vil slette alle nåværende strekkodeverdier? AllBarcodeReset=Alle strekkode-verdier er blitt slettet @@ -501,10 +502,11 @@ WarningPHPMail=ADVARSEL: Oppsettet for å sende e-post fra applikasjonen bruker WarningPHPMailA=- Å bruke serveren til epostleverandøren øker påliteligheten til eposten din, slik at den øker leveringsevnen uten å bli markert som spam WarningPHPMailB=- Noen e-posttjenesteleverandører (som Yahoo) tillater ikke at du sender en e-post fra en annen server enn deres egen server. Det nåværende oppsettet ditt bruker serveren til applikasjonen til å sende e-post og ikke serveren til e-postleverandøren din, så noen mottakere (den som er kompatibel med den begrensende DMARC-protokollen) vil spørre e-postleverandøren din om de kan godta e-posten din og noen e-postleverandører (som Yahoo) kan svare "nei" fordi serveren ikke er deres. Noen av de sendte e-postene dine blir kanskje ikke akseptert for levering (vær også oppmerksom på e-postleverandørens sendekvote). WarningPHPMailC=- Ved å bruke SMTP-serveren til din egen e-posttjenesteleverandør for å sende e-post vil alle e-postmeldinger som sendes fra applikasjonen bli lagret i "Sendt"-katalogen i postkassen din. -WarningPHPMailD=Det anbefales derfor også å endre sendingsmetoden for e-post til verdien "SMTP". Hvis du virkelig vil beholde standard "PHP"-metoden for å sende e-poster, bare ignorer denne advarselen, eller fjern den ved å sette MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstant til 1 i Hjem - Oppsett - Annet. +WarningPHPMailD=Det anbefales derfor å endre sendemetoden for e-post til verdien "SMTP". +WarningPHPMailDbis=Hvis du virkelig ønsker å beholde standard "PHP"-metoden for å sende e-poster, bare ignorer denne advarselen, eller fjern den ved å %sklikke her%s. WarningPHPMail2=Hvis din epost-SMTP-leverandør må begrense epostklienten til noen IP-adresser (svært sjelden), er dette IP-adressen til epost-brukeragenten (MUA) for ERP CRM-programmet: %s . WarningPHPMailSPF=Hvis domenenavnet i avsenderens e-postadresse er beskyttet av en SPF-post (spør domenenavnsregistratoren), må du legge til følgende IP-er i SPF-posten til DNS-en til domenet ditt: %s . -ActualMailSPFRecordFound=Faktisk SPF-post funnet: %s +ActualMailSPFRecordFound=Faktisk SPF-post funnet (for e-post %s): %s ClickToShowDescription=Klikk for å vise beskrivelse DependsOn=Denne modulen trenger modulen(ene) RequiredBy=Denne modulen er påkrevd av modul(ene) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate= 
    Eksempel:
    For skjemaet for å opprette PageUrlForDefaultValuesList= 
    Eksempel:
    For siden som viser tredjeparter, er den %s .
    For URL til eksterne moduler installert i tilpasset mappe, ikke inkluder "Custom /" , men bruk en bane som mymodule/mypagelist.php og ikke custom/mymodule/mypagelist.php.
    Hvis du bare vil ha standard verdi hvis url har noen parametre, kan du bruke %s AlsoDefaultValuesAreEffectiveForActionCreate=Vær også oppmerksom på at overskriving av standardverdier for skjemaoppretting bare fungerer for sider som er riktig utformet (så med parameter handling = opprett eller legg til ...) EnableDefaultValues=Aktiver tilpasning av standardverdier -EnableOverwriteTranslation=Aktiver bruk av overskrivende oversettelse +EnableOverwriteTranslation=Tillat tilpasning av oversettelser GoIntoTranslationMenuToChangeThis=En oversettelse har blitt funnet for nøkkelen med denne koden. For å endre denne verdien må du redigere den fra Hjem-Oppsett-Oversettelse. WarningSettingSortOrder=Advarsel, å angi en standard sorteringsrekkefølge kan føre til en teknisk feil når du går på listesiden dersom feltet er et ukjent felt. Hvis du opplever en slik feil, kan du komme tilbake til denne siden for å fjerne standard sorteringsrekkefølge og gjenopprette standardoppførsel. Field=Felt @@ -645,9 +647,9 @@ Module2400Name=Hendelser/Agenda Module2400Desc=Spor hendelser. Logg automatisk hendelser for sporingsformål eller registrer manuelle hendelser eller møter. Dette er hovedmodulen for håndtering av gode kunde- eller leverandørforhold. Module2500Name=DMS / ECM Module2500Desc=Dokumenthåndteringssystem / Elektronisk innholdshåndtering. Automatisk organisering av dine genererte eller lagrede dokumenter. Del dem når du trenger det. -Module2600Name=API/Web tjenseter(SOAP server) +Module2600Name=API / webtjenester (SOAP-server) Module2600Desc=Aktiver Dolibarrs SOAP-server for å kunne bruke API-tjenester -Module2610Name=API/Web tjenester (REST server) +Module2610Name=API/webtjenester (REST-server) Module2610Desc=Aktiver Dolibarrs REST-server for å kunne bruke API-tjenester Module2660Name=Kall webtjenester (SOAP klient) Module2660Desc=Aktiver Dolibarr webtjenesteklient (Kan brukes til å sende data/forespørsler til eksterne servere. Bare innkjøpsordre støttes for øyeblikket) @@ -698,6 +700,7 @@ Module62000Name=Incotermer Module62000Desc=Legg til egenskaper for å administrere Incoterm Module63000Name=Ressurser Module63000Desc=Administrer ressurser (skrivere, biler, rom, ...) for tildeling til arrangementer +Module94160Name=Mottak Permission11=Vis kundefakturaer Permission12=Opprett/endre kundefakturaer Permission13=Ugyldiggjør kundefakturaer @@ -714,13 +717,14 @@ Permission27=Slett tilbud Permission28=Eksporter tilbud Permission31=Les varer Permission32=Opprett/endre varer +Permission33=Les varepriser Permission34=Slett varer Permission36=Se/administrer skjulte varer Permission38=Eksporter varer Permission39=Ignorer minstepris -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Les prosjekter og oppgaver (delte prosjekter og prosjekter som jeg er kontaktperson for). +Permission42=Opprette/endre prosjekter (delte prosjekter og prosjekter som jeg er kontaktperson for). Kan også tilordne brukere til prosjekter og oppgaver +Permission44=Slett prosjekter (delte prosjekter og prosjekter som jeg er en kontakt for) Permission45=Eksporter prosjekter Permission61=Vis intervensjoner Permission62=Opprett/endre intervensjoner @@ -739,6 +743,7 @@ Permission79=Opprett/endre abonnementer Permission81=Les kundeordre Permission82=Opprett/endre kundeordre Permission84=Valider kundeordre +Permission85=Generer dokumenter salgsordre Permission86=Send kundeordre Permission87=Lukk kundeordre Permission88=Avbryt kundeordre @@ -766,10 +771,10 @@ Permission122=Opprett/endre tredjeparter lenket til bruker Permission125=Slett tredjeparter lenket til bruker Permission126=Eksportere tredjeparter Permission130=Opprett/endre betalingsinformasjon for tredjeparter -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=Les alle prosjekter og oppgaver (samt de private prosjektene jeg ikke er kontaktperson for) +Permission142=Opprett/endre alle prosjekter og oppgaver (samt de private prosjektene jeg ikke er kontaktperson for) +Permission144=Slett alle prosjekter og oppgaver (så vel som de private prosjektene jeg ikke er en kontakt) +Permission145=Kan angi tid som er brukt, for meg eller mitt hierarki, på tildelte oppgaver (Timeliste) Permission146=Les tilbydere Permission147=Les statistikk Permission151=Les direktedebet betalingsordre @@ -840,9 +845,9 @@ Permission286=Eksportere kontakter Permission291=Vis tariffer Permission292=Angi tillatelser på tariffer Permission293=Endre kundens rater -Permission300=Les strekkoder -Permission301=Opprett/endre strekkoder -Permission302=Slett strekkoder +Permission301=Generer PDF-ark med strekkoder +Permission304=Opprett/endre strekkoder +Permission305=Slett strekkoder Permission311=Vis tjenester Permission312=Knytt tjeneste/abonnement til kontrakt Permission331=Les bokmerker @@ -874,6 +879,7 @@ Permission525=Gå til lånekalkulator Permission527=Eksporter lån Permission531=Vis tjenester Permission532=Opprett/endre tjenester +Permission533=Les priser tjenester Permission534=Slett tjenester Permission536=Administrer skjulte tjenester Permission538=Eksporter tjenester @@ -884,9 +890,9 @@ Permission564=Registrer debet/avvisning av kredittoverføring Permission601=Les klistremerker Permission602=Opprett/modifiser klistremerker Permission609=Slett klistremerker -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants +Permission611=Les attributter til varianter +Permission612=Opprett/oppdater attributter for varianter +Permission613=Slett attributter for varianter Permission650=Les BOM (Bills of Materials) Permission651=Opprett/oppdater BOM Permission652=Slett BOM @@ -968,13 +974,14 @@ Permission3301=Generer nye moduler Permission4001=Les ferdighet/jobb/stilling Permission4002=Opprett/endre ferdigheter/jobb/stilling Permission4003=Slett ferdighet/jobb/stilling -Permission4020=Les evalueringer -Permission4021=Opprett/endre evalueringen din -Permission4022=Valider evaluering -Permission4023=Slett evaluering -Permission4030=Se sammenligningsmeny +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Valider evaluering +Permission4025=Slett evaluering +Permission4028=Se sammenligningsmeny Permission4031=Les personlig informasjon Permission4032=Skriv personlig informasjon +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Les nettstedsinnhold Permission10002=Opprett/endre innhold på nettstedet (html og javascript innhold) Permission10003=Opprett/endre nettstedsinnhold (dynamisk PHP-kode). Farlig, må reserveres for erfarne utviklere. @@ -1074,10 +1081,14 @@ DictionaryExpenseTaxCat=Utgiftsrapport - Transportkategorier DictionaryExpenseTaxRange=Utgiftsrapport - Rangert etter transportkategori DictionaryTransportMode=Intracomm rapport - Transportmodus DictionaryBatchStatus=Vare lot/serie kvalitetskontrollstatus -DictionaryAssetDisposalType=Type of disposal of assets +DictionaryAssetDisposalType=Type avhending av eiendeler TypeOfUnit=Type enhet SetupSaved=Innstillinger lagret SetupNotSaved=Oppsettet er ikke lagret +OAuthServiceConfirmDeleteTitle=Slett OAuth-oppføring +OAuthServiceConfirmDeleteMessage=Er du sikker på at du vil slette denne OAuth-oppføringen? Alle eksisterende tokens for den vil også bli slettet. +ErrorInEntryDeletion=Feil ved sletting av oppføring +EntryDeleted=Oppføring slettet BackToModuleList=Tilbake til modullisten BackToDictionaryList=Tilbake til Ordboklisten TypeOfRevenueStamp=Type skattestempel @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Verdien av en konfigurasjonskonstant ConstantIsOn=Alternativ %s er på NbOfDays=Antall dager AtEndOfMonth=Ved månedsslutt -CurrentNext=Nåværende/Neste +CurrentNext=En gitt dag i måneden Offset=Forskyvning AlwaysActive=Alltid aktiv Upgrade=Oppgrader @@ -1235,11 +1246,13 @@ BrowserName=Navn på nettleser BrowserOS=Nettleserens operativsystem ListOfSecurityEvents=Oversikt over sikkerhetshendelser i Dolibarr SecurityEventsPurged=Sikkerhetshendelser renset +TrackableSecurityEvents=Sporbare sikkerhetshendelser LogEventDesc=Aktiver logging av bestemte sikkerhetshendelser. Administratorer når loggen via menyen %s - %s . Advarsel, denne funksjonen kan generere store mengder data i databasen. AreaForAdminOnly=Oppsettparametere kan bare angis av administratorbrukere . SystemInfoDesc=Systeminformasjon er diverse teknisk informasjon som kun vises i skrivebeskyttet modus, og som kun er synlig for administratorer. SystemAreaForAdminOnly=Dette området er kun tilgjengelig for administratorbrukere. Dolibarr brukerrettigheter kan ikke endre denne begrensningen. CompanyFundationDesc=Rediger informasjonen til din bedrift/organisasjon. Klikk på "%s" -knappen nederst på siden når du er ferdig. +MoreNetworksAvailableWithModule=Flere sosiale nettverk kan være tilgjengelige ved å aktivere modulen "Sosiale nettverk". AccountantDesc=Hvis du har en ekstern revisor/regnskapsholder, kan du endre dennes informasjon her. AccountantFileNumber=Regnskapsførerkode DisplayDesc=Parametre som påvirker utseendet og presentasjonen av applikasjonen kan endres her. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Du må kjøre denne kommandoen YourPHPDoesNotHaveSSLSupport=SSL funksjoner ikke tilgjengelige i din PHP DownloadMoreSkins=Flere skins å laste ned SimpleNumRefModelDesc=Returnerer referansenummeret i formatet %syymm-nnnn der yy er året, mm er måneden og nnnn er et sekvensielt automatisk økende nummer uten nullstilling +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returnerer referansenummeret i formatet %syymm-nnnn der yy er året, mm er måneden og nnnn er et sekvensielt automatisk økende nummer uten nullstilling SimpleNumRefNoDateModelDesc=Returnerer referansenummeret i formatet %s-nnnn der nnnn er et sekvensielt automatisk økende tall uten tilbakestilling ShowProfIdInAddress=Vis profesjonell ID med adresser ShowVATIntaInAddress=Skjul MVA-nummer innen fellesskapet @@ -1376,7 +1391,7 @@ GetBarCode=Hent strekkode NumberingModules=Nummereringsmodeller DocumentModules=Dokumentmodeller ##### Module password generation -PasswordGenerationStandard=Returner et passord generert i henhold til intern Dolibarr-algoritme: %s tegn som inneholder både tall og små bokstaver. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Ikke foreslå å generere passord. Passord må legges inn manuelt. PasswordGenerationPerso=Returner et passord i følge din personlige konfigurasjon SetupPerso=I følge din konfigurasjon @@ -1428,8 +1443,12 @@ WatermarkOnDraftInvoices=Vannmerke på fakturakladder (ingen hvis tom) PaymentsNumberingModule=Modell for betalingsnummerering SuppliersPayment=Leverandørbetalinger SupplierPaymentSetup=Oppsett av leverandørbetaling -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceCheckPosteriorDate=Sjekk fakturadato før validering +InvoiceCheckPosteriorDateHelp=Validering av en faktura vil være forbudt hvis datoen er foran datoen for siste faktura av samme type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Oppsett av modulen Tilbud ProposalsNumberingModules=Nummereringsmodul for tilbud @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Vannmerke på kontraktkladder (ingen hvis tom) ##### Members ##### MembersSetup=Oppsett av medlemsmodul MemberMainOptions=Hovedinnstillinger +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Opprett innlogging for hvert medlem AdherentMailRequired=E-post kreves for å lage et nytt medlem MemberSendInformationByMailByDefault=Valg for å sende e-postbekreftelse til medlemmer (validering eller nytt abonnement) er krysset av som standard MemberCreateAnExternalUserForSubscriptionValidated=Opprett en ekstern brukerpålogging for hvert nytt medlemsabonnement som valideres -VisitorCanChooseItsPaymentMode=Besøkende kan velge blant tilgjengelige betalingsmåter +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Aktiver automatisk påminnelse via e-post av utløpte abonnementer. Merk: Modul %s må være aktivert og riktig oppsatt for å sende påminnelser. MembersDocModules=Dokumentmaler for dokumenter generert fra medlemsregister ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Aktiver avansert editor for: FCKeditorForNotePublic=WYSIWIG opprettelse/utgave av feltet "offentlige notater" av elementer FCKeditorForNotePrivate=WYSIWIG opprettelse/utgave av feltet "private notater" av elementer FCKeditorForCompany=WYSIWIG opprettelse/utgave av feltbeskrivelsen av elementer (unntatt varer/tjenester) -FCKeditorForProduct=WYSIWIG opprettelse/utgave av feltbeskrivelsen av varer/tjenester -FCKeditorForProductDetails=WYSIWIG oppretting/endring av varedetaljer for alle enheter (tilbud, ordre, fakturaer, etc ...). Advarsel: Det er ikke anbefalt å bruke dette alternativet i dette tilfellet, da det kan skape problemer med spesialtegn og sideformatering når du bygger PDF-filer. +FCKeditorForProductDetails=WYSIWIG opprettelse/utgave av varebeskrivelse eller linjer for objekter (linjer med forslag, bestillinger, fakturaer, etc...). +FCKeditorForProductDetails2=Advarsel: Å bruke dette alternativet for dette tilfellet anbefales ikke, da det kan skape problemer med spesialtegn og sideformatering når du bygger PDF-filer. FCKeditorForMailing= WYSIWIG opprettelse/endring av masse-e-postutsendelser (Verktøy->E-post) FCKeditorForUserSignature=WYSIWIG-opprettelse av signatur FCKeditorForMail=WYSIWIG opprettelse/redigering for all post (unntatt Verktøy ->eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Menyhåndterer skulle vise en ny meny DetailMenuModule=Modulnavn hvis menyoppføringen kom fra en modul DetailType=Menytype (topp eller venstre) DetailTitre=Menyetikett eller etikettkode for oversettelse -DetailUrl=URL til der menyen sender deg (Absolutt URL eller ekstern lenke med http://) +DetailUrl=URL hvor menyen sender deg (Relativ URL-lenke eller ekstern lenke med https://) DetailEnabled=Tilstand for å vise oppføring eller ikke DetailRight=Tilstand for å vise uautoriserte grå menyer DetailLangs=Språkfil-navn for etikettkode-oversettelse @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Lagernedgang i POS er ikke kompatibel CashDeskYouDidNotDisableStockDecease=Lagerreduksjon ble ikke utført ved salg fra Point-of-Sale. Velg et lager CashDeskForceDecreaseStockLabel=Tvungen lagerreduksjon for batchprodukter. CashDeskForceDecreaseStockDesc=Reduser først med etter eldste datoene for siste forbruksdag og best før. -CashDeskReaderKeyCodeForEnter=Nøkkelkode for "Enter" definert i strekkodeleser (Eksempel: 13) +CashDeskReaderKeyCodeForEnter=ASCII-kode for "Enter" definert i strekkodeleseren (eksempel: 13) ##### Bookmark ##### BookmarkSetup=Oppsett av bokmerkemodulen BookmarkDesc=Med denne modulen kan du administrere bokmerker. Du kan også legge til snarveier til noen Dolibarr-sider eller eksterne nettsteder i venstre meny. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Leverandørfaktura nummereringsmodeller IfSetToYesDontForgetPermission=Hvis satt til en ikke-nullverdi, ikke glem å gi tillatelser til grupper eller brukere som er tillatt for den andre godkjenningen ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind modul-oppsett -PathToGeoIPMaxmindCountryDataFile=Sti til fil som inneholder Maxmind ip til land oversettelse.
    eksempler:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Bane til fil som inneholder Maxmind ip til landoversettelse NoteOnPathLocation=Merk at din IP til landdata-filen må være i en mappe som PHP kan lese (Sjekk din PHP open_basedir oppsett og filsystem-tillatelser). YouCanDownloadFreeDatFileTo=Du kan laste ned en gratis demoversjon av Maxmind GeoIP landfil på %s. YouCanDownloadAdvancedDatFileTo=Du kan også laste ned en mer komplett utgave, med oppdateringer, av Maxmind GeoIP landfil på %s. @@ -1922,12 +1942,13 @@ BackupDumpWizard=Veiviser for å bygge databasedump-filen BackupZipWizard=Veiviser for å bygge arkivet med dokumentkatalog SomethingMakeInstallFromWebNotPossible=Installasjon av ekstern modul er ikke mulig fra webgrensesnittet på grunn av: SomethingMakeInstallFromWebNotPossible2=Av denne grunn er prosessen for å oppgradere beskrevet her, en manuell prosess som bare en privilegert bruker kan utføre. +InstallModuleFromWebHasBeenDisabledContactUs=Installasjon eller utvikling av eksterne moduler eller dynamiske nettsteder, fra applikasjonen, er for øyeblikket låst av sikkerhetshensyn. Ta kontakt med oss hvis du trenger å aktivere denne funksjonen. InstallModuleFromWebHasBeenDisabledByFile=Administrator har deaktivert muligheten for å installere eksterne moduler. Administrator må fjerne filen %s for å tillate dette. ConfFileMustContainCustom=Ved installering eller bygging av en ekstern modul fra programmet må modulfilene lagres i katalogen %s. Hvis du vil ha denne katalogen behandlet av Dolibarr, må du sette opp conf/conf.php for å legge til 2 direktivlinjer:
    $dolibarr_main_url_root_alt = '/custom';
    $dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Fremhev tabellinjer når musen flyttes over HighlightLinesColor=Fremhev fargen på linjen når musen går over (bruk 'ffffff' for ingen fremheving) HighlightLinesChecked=Fremhev farge på linjen når den er merket (bruk 'ffffff' for ikke noen fremheving) -UseBorderOnTable=Show left-right borders on tables +UseBorderOnTable=Vis venstre-høyre kantlinjer på tabeller BtnActionColor=Farge på handlingsknappen TextBtnActionColor=Tekstfarge på handlingsknappen TextTitleColor=Tekstfarge på sidetittel @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Trykk CTRL+F5 på tastaturet eller tøm nettlesercache NotSupportedByAllThemes=Vil virke med kjernetemaer, vil kanskje ikke virke med eksterne temaer BackgroundColor=Bakgrunnsfarge TopMenuBackgroundColor=Bakgrunnsfarge for toppmeny -TopMenuDisableImages=Skjul bilder i toppmeny +TopMenuDisableImages=Ikon eller tekst i toppmenyen LeftMenuBackgroundColor=Bakgrunnsfarge for venstre meny BackgroundTableTitleColor=Bakgrunnsfarge for tittellinje i tabellen BackgroundTableTitleTextColor=Tekstfarge for tabellens tittellinje @@ -1949,7 +1970,7 @@ EnterAnyCode=Dette feltet inneholder en referanse for å identifisere linjen. Sk Enter0or1=Skriv inn 0 eller 1 UnicodeCurrency=Her legger du inn en liste med Ascii-verdier, som representerer et valutasymbol. For eksempel: $ = [36], Brasilsk real R$ = [82,36], € = [8364] ColorFormat=RGB-fargen er i HEX-format, for eksempel: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Ikonnavn i format:
    - image.png for en bildefil i gjeldende temakatalog
    - image.png@module hvis filen er i katalogen /img/ til en modul
    - fa-xxx for en FontAwesomepic fa-x
    - fonwtawesome_xxx_fa_color_size for et FontAwesome fa-xxx-bilde (med prefiks, farge og størrelse satt) PositionIntoComboList=Plassering av linje i kombinasjonslister SellTaxRate=MVA-sats RecuperableOnly=Ja for MVA"Ikke oppfattet, men gjenopprettelig" dedikert til noen steder i Frankrike. Hold verdien til "Nei" i alle andre tilfeller. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Innkjøpsordrer MailToSendSupplierInvoice=Leverandørfakturaer MailToSendContract=Kontrakter MailToSendReception=Mottak +MailToExpenseReport=Utgiftsrapporter MailToThirdparty=Tredjeparter MailToMember=Medlemmer MailToUser=Brukere @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Høyremarg på PDF MAIN_PDF_MARGIN_TOP=Toppmarg på PDF MAIN_PDF_MARGIN_BOTTOM=Bunnmarg på PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Høyde for logo på PDF +DOC_SHOW_FIRST_SALES_REP=Vis første salgsrepresentant MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Legg til kolonne for bilde på tilbudslinjer MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Kolonnenbredde hvis et bilde legges til på linjer MAIN_PDF_NO_SENDER_FRAME=Skjul kanter på rammen rundt avsenderadresse @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Fjern spesialtegn COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter til ren verdi (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter til ren verdi (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat er ikke tillatt +RemoveSpecialWords=Rengjør visse ord når du genererer underkontoer for kunder eller leverandører +RemoveSpecialWordsHelp=Angi ordene som skal renses før du beregner kunde- eller leverandørkontoen. Bruk en ";" mellom hvert ord GDPRContact=Databeskyttelsesansvarlig (DPO, Data Privacy eller GDPR kontakt) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Hvis du lagrer personopplysninger i ditt informasjonssystem, kan du navngi kontakten som er ansvarlig for GDPR her HelpOnTooltip=Hjelpetekst til å vise på verktøytips HelpOnTooltipDesc=Sett tekst eller en oversettelsesnøkkel her for at teksten skal vises i et verktøytips når dette feltet vises i et skjema YouCanDeleteFileOnServerWith=Du kan slette denne filen på serveren med kommandolinje:
    %s @@ -2059,39 +2084,47 @@ VATIsUsedIsOff=Merk: Muligheten til å bruke MVA er satt til Av Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorConfirmCollect=Vil du kjøre denne samleren nå? +EmailCollectorExampleToCollectTicketRequestsDesc=Samle e-poster som samsvarer med noen regler og lag automatisk en billett (modulbillett må være aktivert) med e-postinformasjonen. Du kan bruke denne samleren hvis du gir støtte via e-post, slik at billettforespørselen din genereres automatisk. Aktiver også Collect_Responses for å samle inn svar fra klienten din direkte på billettvisningen (du må svare fra Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Eksempel på innhenting av billettforespørsel (kun første melding) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Skann postkassens "Sendt"-katalog for å finne e-poster som ble sendt som svar på en annen e-post direkte fra e-postprogramvaren og ikke fra Dolibarr. Hvis en slik e-post blir funnet, registreres svarhendelsen i Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Eksempel på innsamling av e-postsvar sendt fra en ekstern e-postprogramvare +EmailCollectorExampleToCollectDolibarrAnswersDesc=Samle alle e-poster som er et svar på en e-post sendt fra søknaden din. En hendelse (modul Agenda må være aktivert) med e-postsvar vil bli registrert på riktig sted. For eksempel, hvis du sender et tilbud, ordre, faktura eller melding for en billett via e-post fra applikasjonen, og mottakeren svarer på e-posten din, vil systemet automatisk fange opp svaret og legge det til i ERP-en din. +EmailCollectorExampleToCollectDolibarrAnswers=Eksempel som samler alle inngående meldinger som svar på meldinger sendt fra Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Samle eposter som samsvarer med noen regler og lag automatisk et kundeemne (modulprosjektet må være aktivert) med epostinformasjonen. Du kan bruke denne innsamleren hvis du ønsker å følge leadet ditt ved å bruke modulen Prosjekt (1 lead = 1 prosjekt), slik at dine leads blir automatisk generert. Hvis samleren Collect_Responses også er aktivert, når du sender en epost fra dine kundeemner, forslag eller andre objekter, kan du også se svar fra dine kunder eller partnere direkte i applikasjonen.
    Merk: Med dette første eksempelet genereres tittelen på kundeemnet inkludert eposten. Hvis tredjeparten ikke finnes i databasen (ny kunde), vil kundeemnet bli knyttet til tredjeparten med ID 1. +EmailCollectorExampleToCollectLeads=Eksempel på innsamling av kundeemner +EmailCollectorExampleToCollectJobCandidaturesDesc=Samle e-poster som søker om jobbtilbud (modulrekruttering må være aktivert). Du kan fullføre denne samleren hvis du automatisk vil opprette en kandidatur for en jobbforespørsel. Merk: Med dette første eksempelet genereres tittelen på kandidaturen inkludert e-posten. +EmailCollectorExampleToCollectJobCandidatures=Eksempel på innsamling av jobbkandidater mottatt på e-post NoNewEmailToProcess=Ingen ny e-post (matchende filtre) å behandle NothingProcessed=Ingenting gjort -XEmailsDoneYActionsDone=%s e-postmeldinger kvalifiserte, %s e-postmeldinger som er vellykket behandlet (for %s-post/handlinger utført) +XEmailsDoneYActionsDone=%s-e-poster forhåndskvalifisert, %s-e-poster behandlet (for %s-poster/handlinger utført) RecordEvent=Ta opp en hendelse i agendaen (med typen E-post sendt eller mottatt) CreateLeadAndThirdParty=Opprett et lead (og en tredjepart om nødvendig) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +CreateTicketAndThirdParty=Opprett en billett (lenket til en tredjepart hvis tredjeparten ble lastet inn av en tidligere operasjon eller ble gjettet fra en tracker i e-postoverskriften, uten tredjeparter ellers) CodeLastResult=Siste resultatkode NbOfEmailsInInbox=Antall e-poster i kildemappen LoadThirdPartyFromName=Legg inn tredjepartsøk på %s (bare innlasting) @@ -2105,14 +2138,14 @@ CreateCandidature=Opprett jobbsøknad FormatZip=Postnummer MainMenuCode=Meny-oppføringskode (hovedmeny) ECMAutoTree=Vis ECM-tre automatisk  -OperationParamDesc=Definer reglene som skal brukes til å trekke ut eller angi verdier. 1 Eksempel på operasjoner som trenger å trekke ut et navn fra e-postemne:
    name=EXTRACT:SUBJECT:Melding fra firma([^\n]*)
    Eksempel på operasjoner som oppretter objekter:
    objproperty1=SET:sett verdi
    objproperty2=SET:en verdi som inkluderer verdien til __objproperty1__
    objproperty3=SETIFEMPTY:verdi brukt hvis objproperty3 ikke allerede er definert
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Mitt firmanavn er\\s([^\\s]*)

    Bruk semikolon som separator for å hente ut eller sette flere egenskaper. +OperationParamDesc=Definer reglene som skal brukes for å trekke ut data eller angi verdier som skal brukes for drift.

    Eksempel: For å hente firmanavn fra epost-emne til en temporær variabel:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Eksempel: For å sette egenskaper for et objekt som skal opprettes:
    objproperty1=SET:hardkodet verdi
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:en verdi (verdien blir satt hvis den ikke allerede er definert)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Mitt firmanavn er\\s([^\\s]*)

    Bruk ; som separator for å hente eller sette flere egenskaper. OpeningHours=Åpningstider OpeningHoursDesc=Skriv inn de vanlige åpningstidene for bedriften din. ResourceSetup=Konfigurasjon av ressursmodulen UseSearchToSelectResource=Bruk et søkeskjema for å velge en ressurs (i stedet for en nedtrekksliste). DisabledResourceLinkUser=Deaktiver funksjonen for å koble en ressurs til brukere DisabledResourceLinkContact=Deaktiver funksjonen for å koble en ressurs til kontakter -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Forby bruk av samme ressurs på samme tid i agendaen ConfirmUnactivation=Bekreft nullstilling av modul OnMobileOnly=Kun på små skjermer (smarttelefon) DisableProspectCustomerType=Deaktiver tredjepartstypen "Prospekt + Kunde" (tredjepart må være "Prospekt" eller "Kunde", men kan ikke være begge) @@ -2157,7 +2190,7 @@ DeleteEmailCollector=Slett e-postsamler ConfirmDeleteEmailCollector=Er du sikker på at du vil slette denne e-postsamleren? RecipientEmailsWillBeReplacedWithThisValue=Mottakers e-postadresse vil alltid erstattes med denne verdien AtLeastOneDefaultBankAccountMandatory=Minst en standard bankkonto må være definert -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +RESTRICT_ON_IP=Tillat API-tilgang til kun visse klient-IP-er (jokertegn ikke tillatt, bruk mellomrom mellom verdier). Tom betyr at alle klienter har tilgang. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Basert på biblioteket SabreDAV versjon NotAPublicIp=Ikke en offentlig IP @@ -2167,6 +2200,10 @@ EmailTemplate=Mal for e-post EMailsWillHaveMessageID=E-postmeldinger vil være merket 'Referanser' som samsvarer med denne syntaksen PDF_SHOW_PROJECT=Vis prosjekt på dokument ShowProjectLabel=Prosjektetikett +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Ta med alias i tredjepartsnavn +THIRDPARTY_ALIAS=Navn tredjepart - Alias tredjepart +ALIAS_THIRDPARTY=Alias tredjepart - Navngi tredjepart +PDFIn2Languages=Vis etiketter i PDF på 2 forskjellige språk PDF_USE_ALSO_LANGUAGE_CODE=Hvis du vil at tekst i PDF-en din skal dupliseres på 2 forskjellige språk i samme genererte PDF, må du angi dette andre språket, slik at generert PDF vil inneholde 2 forskjellige språk på samme side, det som er valgt når du genererer PDF og dette ( bare få PDF-maler støtter dette). Hold tom for ett språk per PDF. PDF_USE_A=Lag PDF-dokumenter med PDF/A-format i stedet for standard-PDF FafaIconSocialNetworksDesc=Skriv inn koden til et FontAwesome-ikon. Hvis du ikke vet hva som er FontAwesome, kan du bruke den generelle verdien fa-adresseboken. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnerskap AGENDA_EVENT_DEFAULT_STATUS=Standard hendelsesstatus når du oppretter en hendelse fra skjemaet YouShouldDisablePHPFunctions=Du bør deaktivere PHP-funksjoner IfCLINotRequiredYouShouldDisablePHPFunctions=Bortsett fra hvis du trenger å kjøre systemkommandoer i tilpasset kode, bør du deaktivere PHP-funksjoner -PHPFunctionsRequiredForCLI=For shell-formål (som planlagt jobbsikkerhetskopiering eller å kjøre et anitivurs-program), må du beholde PHP-funksjoner +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Ingen skrivbare filer eller kataloger for de vanlige programmene ble funnet i rotkatalogen din (Bra) RecommendedValueIs=Anbefalt: %s Recommended=Anbefalt NotRecommended=Ikke anbefalt -ARestrictedPath=Noe begrenset sti +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Se etter oppdateringer for eksterne moduler CheckForModuleUpdateHelp=Denne handlingen kobles til editorer for eksterne moduler for å sjekke om en ny versjon er tilgjengelig. ModuleUpdateAvailable=En oppdatering er tilgjengelig @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Ingen oppdateringer funnet for eksterne moduler SwaggerDescriptionFile=Swagger API-beskrivelsesfil (for bruk med f.eks redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Du har aktivert utdatert WS API. Du bør bruke REST API i stedet. RandomlySelectedIfSeveral=Tilfeldig valgt hvis flere bilder er tilgjengelige +SalesRepresentativeInfo=For tilbud, ordre, fakturaer. DatabasePasswordObfuscated=Databasepassord er skjult i conf-filen DatabasePasswordNotObfuscated=Databasepassord er IKKE skjult i conf-filen APIsAreNotEnabled=API-moduler er ikke aktivert @@ -2229,12 +2267,12 @@ DashboardDisableBlockAdherent=Deaktiver knappen for medlemskap DashboardDisableBlockExpenseReport=Deaktiver knappen for utgiftsrapporter DashboardDisableBlockHoliday=Deaktiver knappen for permisjoner EnabledCondition=Betingelse for å ha felt aktivert (hvis ikke aktivert, vil synlighet alltid være av) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en ekstra avgift, må du også aktivere den første omsetningsavgiften +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en tredje avgift, må du også aktivere den første omsetningsavgiften LanguageAndPresentation=Språk og presentasjon SkinAndColors=Bakgrunn og farger -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en ekstra avgift, må du også aktivere den første omsetningsavgiften +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en tredje avgift, må du også aktivere den første omsetningsavgiften PDF_USE_1A=Generer PDF med PDF/A-1b-format MissingTranslationForConfKey = Mangler oversettelse for %s NativeModules=Standard moduler @@ -2243,18 +2281,26 @@ API_DISABLE_COMPRESSION=Deaktiver komprimering av API-svar EachTerminalHasItsOwnCounter=Hver terminal bruker sin egen teller. FillAndSaveAccountIdAndSecret=Fyll ut og lagre konto-ID og hemmelighet først PreviousHash=Forrige hash -LateWarningAfter="Late" warning after -TemplateforBusinessCards=Template for a business card in different size +LateWarningAfter="For sen" advarsel etter +TemplateforBusinessCards=Mal for visittkort i forskjellige størrelser InventorySetup= Oppsett av varetelling -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) +ExportUseLowMemoryMode=Bruk en modus for lite minne +ExportUseLowMemoryModeHelp=Bruk lav minne-modus for å generere dump-filen (komprimering gjøres gjennom en pipe i stedet for inn i PHP-minnet). Denne metoden tillater ikke å kontrollere at filen er fullstendig og feilmelding kan ikke rapporteres hvis den mislykkes. Bruk den hvis du opplever ikke nok minnefeil. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Grensesnitt for å fange dolibarr-utløsere og sende det til en URL +WebhookSetup = Webhook oppsett +Settings = Innstillinger +WebhookSetupPage = Webhook oppsettside +ShowQuickAddLink=Vis en knapp for raskt å legge til et element i menyen øverst til høyre + +HashForPing=Hash brukt til ping +ReadOnlyMode=Er forekomst i "Read Only"-modus +DEBUGBAR_USE_LOG_FILE=Bruk filen dolibarr.log for å fange logger +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Bruk dolibarr.log-filen til å fange logger i stedet for å fange minne. Det gjør det mulig å fange opp alle logger i stedet for bare logg over gjeldende prosess (inkludert en av ajax subrequests-sider), men vil gjøre forekomsten veldig treg. Ikke anbefalt. +FixedOrPercent=Fast (bruk søkeordet «fast») eller prosent (bruk søkeordet «prosent») +DefaultOpportunityStatus=Standard mulighetsstatus (første status når potensielle salg opprettes) + IconAndText=Ikon og tekst TextOnly=Kun tekst IconOnlyAllTextsOnHover=Bare ikon - Alle tekster vises under ikonet når musepekeren er over menylinjen @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Bare ikon - Teksten til ikonet vises under ikonet når musep IconOnly=Kun ikon - Kun tekst på verktøytips INVOICE_ADD_ZATCA_QR_CODE=Vis ZATCA QR-koden på fakturaer INVOICE_ADD_ZATCA_QR_CODEMore=Noen arabiske land trenger denne QR-koden på fakturaene sine +INVOICE_ADD_SWISS_QR_CODE=Vis den sveitsiske QR-Bill-koden på fakturaer +INVOICE_SHOW_SHIPPING_ADDRESS=Vis leveringsadresse +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligatorisk omtale for Frankrike UrlSocialNetworksDesc=URL-lenke til sosialt nettverk. Bruk {socialid} for den variable delen som inneholder ID-en for det sosiale nettverket. +IfThisCategoryIsChildOfAnother=Hvis denne kategorien er en underkategori av en annen +DarkThemeMode=Mørkt tema-modus +AlwaysDisabled=Alltid deaktivert +AccordingToBrowser=I følge nettleseren +AlwaysEnabled=Alltid aktivert +DoesNotWorkWithAllThemes=Fungerer ikke med alle temaer +NoName=Ingen navn +ShowAdvancedOptions= Vis avanserte innstillinger +HideAdvancedoptions= Skjul avanserte alternativer +CIDLookupURL=Modulen bringer en URL som kan brukes av et eksternt verktøy for å få navnet på en tredjepart eller kontakt fra telefonnummeret. URL som skal brukes er: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2-autentisering er ikke tilgjengelig for alle verter, og et token med de riktige tillatelsene må ha blitt opprettet oppstrøms med OAUTH-modulen +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2-autentiseringstjeneste +DontForgetCreateTokenOauthMod=Et token med de riktige tillatelsene må ha blitt opprettet oppstrøms med OAUTH-modulen +MAIN_MAIL_SMTPS_AUTH_TYPE=Autentifiseringsmetode +UsePassword=Bruk et passord +UseOauth=Bruk et OAUTH-token +Images=Bilder +MaxNumberOfImagesInGetPost=Maks antall bilder tillatt i et HTML-felt sendt inn i et skjema +MaxNumberOfPostOnPublicPagesByIP=Maks antall innlegg på offentlige sider med samme IP-adresse i løpet av en måned +CIDLookupURL=Modulen bringer en URL som kan brukes av et eksternt verktøy for å få navnet på en tredjepart eller kontakt fra telefonnummeret. URL som skal brukes er: +ScriptIsEmpty=Skriptet er tomt +ShowHideTheNRequests=Vis/skjul %s SQL-forespørsel(er) +DefinedAPathForAntivirusCommandIntoSetup=Definer en bane for et antivirusprogram til %s +TriggerCodes=Utløsbare hendelser +TriggerCodeInfo=Skriv inn triggerkoden(e) her som må generere et innlegg av en nettforespørsel (kun ekstern URL er tillatt). Du kan angi flere utløserkoder atskilt med komma. +EditableWhenDraftOnly=Hvis det ikke er merket av, kan verdien bare endres når objektet har en utkaststatus +CssOnEdit=CSS på redigeringssider +CssOnView=CSS på visningssider +CssOnList=CSS på listesider +HelpCssOnEditDesc=CSS-en som brukes når du redigerer feltet.
    Eksempel: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=CSS-en som brukes når du ser på feltet. +HelpCssOnListDesc=CSS-en som brukes når feltet er inne i en listetabell.
    Eksempel: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Skjul det bestilte antallet på de genererte dokumentene for mottak +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Vis prisen på de genererte dokumentene for mottak +WarningDisabled=Advarsel deaktivert +LimitsAndMitigation=Tilgangsgrenser og tiltak +DesktopsOnly=Bare stasjonære datamaskiner +DesktopsAndSmartphones=Stasjonære datamaskiner og smarttelefoner +AllowOnlineSign=Tillat nettsignering +AllowExternalDownload=Tillat ekstern nedlasting (uten pålogging, ved hjelp av en delt lenke) +DeadlineDayVATSubmission=Frist for innbetaling av MVA neste måned +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/nb_NO/agenda.lang b/htdocs/langs/nb_NO/agenda.lang index 16061b4786f..50a33ea54ae 100644 --- a/htdocs/langs/nb_NO/agenda.lang +++ b/htdocs/langs/nb_NO/agenda.lang @@ -45,7 +45,7 @@ CONTRACT_DELETEInDolibarr=Kontrakt %s slettet PropalClosedSignedInDolibarr=Tilbud %s signert PropalClosedRefusedInDolibarr=Tilbud %s avvist PropalValidatedInDolibarr=Tilbud godkjent -PropalBackToDraftInDolibarr=Proposal %s go back to draft status +PropalBackToDraftInDolibarr=Tilbud %s går tilbake til utkaststatus PropalClassifiedBilledInDolibarr=Tilbud %s klassifisert betalt InvoiceValidatedInDolibarr=Faktura %s validert InvoiceValidatedInDolibarrFromPos=Faktura %s validert fra POS @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Medlem %s validert MemberModifiedInDolibarr=Medlem %s endret MemberResiliatedInDolibarr=Medlem %s terminert MemberDeletedInDolibarr=Medlem %s slettet +MemberExcludedInDolibarr=Medlem %s ekskludert MemberSubscriptionAddedInDolibarr=Abonnement %s for medlem %s lagt til MemberSubscriptionModifiedInDolibarr=Abonnement %s for medlem %s endret MemberSubscriptionDeletedInDolibarr=Abonnement %s for medlem %s slettet @@ -67,7 +68,8 @@ ShipmentBackToDraftInDolibarr=Sett levering %s tilbake til utkaststatus ShipmentDeletedInDolibarr=Leveranse %s slettet ShipmentCanceledInDolibarr=Forsendelse %s kansellert ReceptionValidatedInDolibarr=Mottak %s validert -ReceptionClassifyClosedInDolibarr=Reception %s classified closed +ReceptionDeletedInDolibarr=Reception %s deleted +ReceptionClassifyClosedInDolibarr=Mottaket %s klassifisert stengt OrderCreatedInDolibarr=Ordre %s opprettet OrderValidatedInDolibarr=Ordre %s validert OrderDeliveredInDolibarr=Ordre %s klassifisert som levert @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Leverandørfaktura %s sendt via epost ShippingSentByEMail=Forsendelse %s sendt via epost ShippingValidated= Forsendelse %s validert InterventionSentByEMail=Intervensjon %s sendt via epost +ProjectSentByEMail=Prosjekt %s sendt på e-post ProposalDeleted=Tilbud slettet OrderDeleted=Ordre slettet InvoiceDeleted=Faktura slettet @@ -159,6 +162,7 @@ DateActionBegin=Startdato for hendelse ConfirmCloneEvent=Er du sikker på at du vil klone hendelsen %s? RepeatEvent=Gjenta hendelse OnceOnly=Kun en gang +EveryDay=Hver dag EveryWeek=Hver uke EveryMonth=Hver måned DayOfMonth=Dag i måned @@ -173,4 +177,5 @@ ReminderType=Tilbakekallingstype AddReminder=Opprett et automatisk varsel for denne hendelsen ErrorReminderActionCommCreation=Feil ved oppretting av varselet for denne hendelsen BrowserPush=Varsling om nettleser-popup -ActiveByDefault=Enabled by default +ActiveByDefault=Aktivert som standard +Until=til diff --git a/htdocs/langs/nb_NO/assets.lang b/htdocs/langs/nb_NO/assets.lang index fc6ee6f270b..17888c6a4be 100644 --- a/htdocs/langs/nb_NO/assets.lang +++ b/htdocs/langs/nb_NO/assets.lang @@ -73,8 +73,8 @@ Asset=Ressurs Assets=Aktiva AssetReversalAmountHT=Tilbakeføringsbeløp (uten avgifter) AssetAcquisitionValueHT=Anskaffelsesbeløp (uten avgifter) -AssetRecoveredVAT=Recovered VAT -AssetReversalDate=Reversal date +AssetRecoveredVAT=Gjenvunnet MVA +AssetReversalDate=Reverseringsdato AssetDateAcquisition=Anskaffelsesdato AssetDateStart=Dato for oppstart AssetAcquisitionType=Type anskaffelse @@ -103,8 +103,8 @@ AssetRecorded=Regnskapsført AssetDisposalDate=Dato for avhending AssetDisposalAmount=Avhendingsverdi AssetDisposalType=Type avhending -AssetDisposalDepreciated=Depreciate the year of transfer -AssetDisposalSubjectToVat=Disposal subject to VAT +AssetDisposalDepreciated=Avskriv overføringsåret +AssetDisposalSubjectToVat=Avhending MVA-pliktig # # Asset model @@ -128,10 +128,10 @@ AssetDepreciationOptionDurationType=Type varighet AssetDepreciationOptionDurationTypeAnnual=Årlig AssetDepreciationOptionDurationTypeMonthly=Månedlig AssetDepreciationOptionDurationTypeDaily=Daglig -AssetDepreciationOptionRate=Rate (%%) +AssetDepreciationOptionRate=Takst (%%) AssetDepreciationOptionAmountBaseDepreciationHT=Avskrivningsgrunnlag (ekskl. mva) AssetDepreciationOptionAmountBaseDeductibleHT=Egenandelsgrunnlag (ekskl. mva) -AssetDepreciationOptionTotalAmountLastDepreciationHT=Total amount last depreciation (excl. VAT) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Totalbeløp siste avskrivning (ekskl. MVA) # # Asset accountancy codes @@ -139,24 +139,24 @@ AssetDepreciationOptionTotalAmountLastDepreciationHT=Total amount last depreciat AssetAccountancyCodeDepreciationEconomic=Økonomisk avskrivning AssetAccountancyCodeAsset=Ressurs AssetAccountancyCodeDepreciationAsset=Avskrivninger -AssetAccountancyCodeDepreciationExpense=Depreciation expense -AssetAccountancyCodeValueAssetSold=Value of asset disposed -AssetAccountancyCodeReceivableOnAssignment=Receivable on disposal +AssetAccountancyCodeDepreciationExpense=Avskrivninger +AssetAccountancyCodeValueAssetSold=Verdien av avhendet eiendel +AssetAccountancyCodeReceivableOnAssignment=Tilgodehavende ved avhending AssetAccountancyCodeProceedsFromSales=Inntekter fra avhending AssetAccountancyCodeVatCollected=Innkrevd MVA AssetAccountancyCodeVatDeductible=Gjenvunnet merverdiavgift på eiendeler AssetAccountancyCodeDepreciationAcceleratedDepreciation=Akselerert avskrivning (skatt) AssetAccountancyCodeAcceleratedDepreciation=Konto -AssetAccountancyCodeEndowmentAcceleratedDepreciation=Depreciation expense -AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossession/Provision +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Avskrivninger +AssetAccountancyCodeProvisionAcceleratedDepreciation=Tilbaketakelse/provisjon # # Asset depreciation # -AssetBaseDepreciationHT=Depreciation basis (excl. VAT) -AssetDepreciationBeginDate=Start of depreciation on +AssetBaseDepreciationHT=Avskrivningsgrunnlag (ekskl. mva) +AssetDepreciationBeginDate=Start av avskrivning pr AssetDepreciationDuration=Varighet -AssetDepreciationRate=Rate (%%) +AssetDepreciationRate=Takst (%%) AssetDepreciationDate=Avskrivningsdato AssetDepreciationHT=Avskrivninger (ekskl. mva) AssetCumulativeDepreciationHT=Akkumulerte avskrivninger (ekskl. mva) @@ -168,19 +168,19 @@ AssetDepreciationReversal=Reversering # # Errors # -AssetErrorAssetOrAssetModelIDNotProvide=Id of the asset or the model sound has not been provided -AssetErrorFetchAccountancyCodesForMode=Error when retrieving the accounting accounts for the '%s' depreciation mode -AssetErrorDeleteAccountancyCodesForMode=Error when deleting accounting accounts from the '%s' depreciation mode -AssetErrorInsertAccountancyCodesForMode=Error when inserting the accounting accounts of the depreciation mode '%s' -AssetErrorFetchDepreciationOptionsForMode=Error when retrieving options for the '%s' depreciation mode -AssetErrorDeleteDepreciationOptionsForMode=Error when deleting the '%s' depreciation mode options -AssetErrorInsertDepreciationOptionsForMode=Error when inserting the '%s' depreciation mode options -AssetErrorFetchDepreciationLines=Error when retrieving recorded depreciation lines -AssetErrorClearDepreciationLines=Error when purging recorded depreciation lines (reversal and future) -AssetErrorAddDepreciationLine=Error when adding a depreciation line -AssetErrorCalculationDepreciationLines=Error when calculating the depreciation lines (recovery and future) -AssetErrorReversalDateNotProvidedForMode=The reversal date is not provided for the '%s' depreciation method -AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=The reversal date must be greater than or equal to the beginning of the current fiscal year for the '%s' depreciation method -AssetErrorReversalAmountNotProvidedForMode=The reversal amount is not provided for the depreciation mode '%s'. -AssetErrorFetchCumulativeDepreciation=Error when retrieving the accumulated depreciation amount from the depreciation line -AssetErrorSetLastCumulativeDepreciation=Error when recording the last accumulated depreciation amount +AssetErrorAssetOrAssetModelIDNotProvide=Aktiva-ID eller modell-ID er ikke oppgitt +AssetErrorFetchAccountancyCodesForMode=Feil ved henting av regnskapskonto for '%s' avskrivningsmodus +AssetErrorDeleteAccountancyCodesForMode=Feil ved sletting av regnskapskontoer fra '%s' avskrivningsmodus +AssetErrorInsertAccountancyCodesForMode=Feil ved innsetting av regnskapskontoer for avskrivningsmodus '%s' +AssetErrorFetchDepreciationOptionsForMode=Feil ved henting av alternativer for '%s' avskrivningsmodus +AssetErrorDeleteDepreciationOptionsForMode=Feil ved sletting av '%s' alternativer for avskrivningsmodus +AssetErrorInsertDepreciationOptionsForMode=Feil ved innsetting av '%s' alternativer for avskrivningsmodus +AssetErrorFetchDepreciationLines=Feil ved henting av registrerte avskrivningslinjer +AssetErrorClearDepreciationLines=Feil ved tømming av registrerte avskrivningslinjer (reversering og fremtidig) +AssetErrorAddDepreciationLine=Feil ved å legge til en avskrivningslinje +AssetErrorCalculationDepreciationLines=Feil ved beregning av avskrivningslinjene (gjenvinning og fremtidig) +AssetErrorReversalDateNotProvidedForMode=Tilbakeføringsdatoen er ikke oppgitt for '%s' avskrivningsmetoden +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Tilbakeføringsdatoen må være større enn eller lik begynnelsen av inneværende regnskapsår for avskrivningsmetoden '%s' +AssetErrorReversalAmountNotProvidedForMode=Tilbakeføringsbeløpet er ikke oppgitt for avskrivningsmodus '%s'. +AssetErrorFetchCumulativeDepreciation=Feil ved henting av akkumulert avskrivningsbeløp fra avskrivningslinjen +AssetErrorSetLastCumulativeDepreciation=Feil ved registrering av siste akkumulerte avskrivningsbeløp diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang index 16826ef708e..e4d7e342837 100644 --- a/htdocs/langs/nb_NO/banks.lang +++ b/htdocs/langs/nb_NO/banks.lang @@ -108,13 +108,13 @@ SocialContributionPayment=Betaling av skatter og avgifter BankTransfer=Kredittoverføring BankTransfers=Kredittoverføringer MenuBankInternalTransfer=Intern overførsel -TransferDesc=Use internal transfer to transfer from one account to another, the application will write two records: a debit in the source account and a credit in the target account. The same amount, label and date will be used for this transaction. +TransferDesc=Bruk intern overføring for å overføre fra en konto til en annen, applikasjonen vil skrive to poster: en debet på kildekontoen og en kreditt på målkontoen. Samme beløp, etikett og dato vil bli brukt for denne transaksjonen. TransferFrom=Fra TransferTo=Til TransferFromToDone=En overføring fra %s til %s%s %s er registrert. CheckTransmitter=Avsender ValidateCheckReceipt=Valider sjekkvittering? -ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated. +ConfirmValidateCheckReceipt=Er du sikker på at du vil sende inn denne sjekkkvitteringen for validering? Ingen endringer vil være mulig når de er validert. DeleteCheckReceipt=Slett denne sjekkvitteringen? ConfirmDeleteCheckReceipt=Er du sikker på at du vil slette denne sjekkvitteringen? BankChecks=Banksjekker @@ -141,7 +141,7 @@ AllAccounts=Alle bank- og kontantkontoer BackToAccount=Tilbake til kontoen ShowAllAccounts=Vis for alle kontoer FutureTransaction=Fremtidig transaksjon. Kan ikke avstemme. -SelectChequeTransactionAndGenerate=Select/filter the checks which are to be included in the check deposit receipt. Then, click on "Create". +SelectChequeTransactionAndGenerate=Velg/filtrer sjekkene som skal inkluderes i sjekkinnskuddskvitteringen. Klikk deretter på "Opprett". InputReceiptNumber=Velg kontoutskriften som hører til avstemmingen. Bruke en sorterbar numerisk verdi: YYYYMM eller YYYYMMDD EventualyAddCategory=Til slutt, velg en kategori for å klassifisere postene ToConciliate=Slå sammen? @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandat YourSEPAMandate=Ditt SEPA-mandat FindYourSEPAMandate=Dette er ditt SEPA-mandat for å autorisere vårt firma til å utføre direktedebitering til din bank. Send det i retur signert (skanning av det signerte dokumentet) eller send det via post til AutoReportLastAccountStatement=Fyll feltet 'Antall bankoppgaver' automatisk med siste setningsnummer når du avstemmer -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=POS kontantkontroll +NewCashFence=Ny kontantkontroll (åpning eller lukking) BankColorizeMovement=Fargelegg bevegelser BankColorizeMovementDesc=Hvis denne funksjonen er aktivert, kan du velge spesifikk bakgrunnsfarge for debet- eller kredittbevegelser BankColorizeMovementName1=Bakgrunnsfarge for debetbevegelse @@ -181,7 +181,7 @@ BankColorizeMovementName2=Bakgrunnsfarge for kredittbevegelse IfYouDontReconcileDisableProperty=Hvis du ikke foretar bankavstemninger på noen bankkontoer, deaktiverer du egenskapen"%s" for å fjerne denne advarselen. NoBankAccountDefined=Ingen bankkonto definert NoRecordFoundIBankcAccount=Ingen poster funnet på bankkontoen. Vanligvis skjer dette når en post er slettet manuelt fra listen over transaksjoner på bankkontoen (for eksempel under en avstemming av bankkontoen). En annen årsak er at betalingen ble registrert da modulen "%s" ble deaktivert. -AlreadyOneBankAccount=Already one bank account defined -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. -ToCreateRelatedRecordIntoBank=To create missing related bank record +AlreadyOneBankAccount=En bankkonto er allerede definert +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA-overføring: 'Betalingstype' på 'Kredittoverføring'-nivå +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Når du genererer en SEPA XML-fil for kredittoverføringer, kan seksjonen "PaymentTypeInformation" nå plasseres i seksjonen "CreditTransferTransactionInformation" (i stedet for seksjonen "Payment"). Vi anbefaler på det sterkeste å holde dette umerket for å plassere PaymentTypeInformation på betalingsnivå, da alle banker ikke nødvendigvis godtar det på CreditTransferTransactionInformation-nivå. Kontakt banken din før du plasserer PaymentTypeInformation på CreditTransferTransactionInformation-nivå. +ToCreateRelatedRecordIntoBank=For å opprette manglende relatert bankpost diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang index 3d12c1d30c0..d6f6fc1dfde 100644 --- a/htdocs/langs/nb_NO/bills.lang +++ b/htdocs/langs/nb_NO/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Kunde fakturastatistikker BillsStatisticsSuppliers=Leverandørfakturaer statistikk DisabledBecauseDispatchedInBookkeeping=Deaktivert fordi fakturaen ble sendt inn til bokføring DisabledBecauseNotLastInvoice=Deaktivert fordi fakturaen ikke kan slettes. Noen fakturaer ble registrert etter denne, og det vil skape hull i telleren. +DisabledBecauseNotLastSituationInvoice=Deaktivert fordi faktura ikke kan slettes. Denne fakturaen er ikke den siste i situasjonsfaktura-syklusen. DisabledBecauseNotErasable=Deaktivert fordi den ikke kan slettes InvoiceStandard=Standardfaktura InvoiceStandardAsk=Standardfaktura InvoiceStandardDesc=Denne fakturatypen er den vanligste fakturaen. +InvoiceStandardShort=Standard InvoiceDeposit=Nedbetalingsfaktura InvoiceDepositAsk=Nedbetalingsfaktura InvoiceDepositDesc=Denne typen faktura lages når en forskuddsbetaling er mottatt. @@ -24,6 +26,7 @@ InvoiceProForma=Proforma faktura InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma faktura er et bilde av en ekte faktura, men har ingen verdi i regnskapsføring. InvoiceReplacement=Erstatningsfaktura +InvoiceReplacementShort=Erstatning InvoiceReplacementAsk=Erstatningsfaktura for faktura InvoiceReplacementDesc=Erstatningsfaktura brukes til å erstatte en faktura uten at betaling allerede mottatt.

    Merk: Bare fakturaer uten innbetaling kan erstattes. Hvis fakturaen du erstatter, ikke er avsluttet, blir den automatisk stengt for å "forlates". InvoiceAvoir=Kreditnota @@ -55,7 +58,7 @@ CustomerInvoice=Kundefaktura CustomersInvoices=Kundefakturaer SupplierInvoice=Leverandørfaktura SuppliersInvoices=Leverandørfakturaer -SupplierInvoiceLines=Vendor invoice lines +SupplierInvoiceLines=Leverandør fakturalinjer SupplierBill=Leverandørfaktura SupplierBills=Leverandørfakturaer Payment=Betaling @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne delen elle ErrorInvoiceIsNotLastOfSameType=Feil: Datoen for faktura %s er %s. Den må være etter eller lik siste dato for samme type fakturaer (%s). Vennligst endre fakturadatoen. BillFrom=Fra BillTo=Til +ShippingTo=Sendes til ActionsOnBill=Handlinger på faktura RecurringInvoiceTemplate=Mal/Gjentakende faktura NoQualifiedRecurringInvoiceTemplateFound=Ingen gjentagende-fakturamal kvalifisert for generering @@ -192,7 +196,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=Resterende ubetalt (%s%s) er ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Restbeløpet (%s %s) er rabatt innrømmet fordi betalingen ble gjort før forfall. Jeg aksepterer å miste MVA på denne rabatten. ConfirmClassifyPaidPartiallyReasonDiscountVat=Restebløpet (%s %s) er rabatt innrømmet fordi betalingen ble gjort før forfall. Jeg skriver av MVA på denne rabatten uten kreditnota. ConfirmClassifyPaidPartiallyReasonBadCustomer=Dårlig kunde -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Fradrag av bank (mellombankgebyrer) ConfirmClassifyPaidPartiallyReasonProductReturned=Varer delvis returnert ConfirmClassifyPaidPartiallyReasonOther=Beløpet tapsføres av en annen årsak ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Dette valget er kun mulig hvis fakturaen har en spesiell påskrift. (For eksemple: «Kun MVA-andelen av prisen som faktisk betales gir rett til MVA-fradrag») @@ -200,7 +204,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=I noen land er dette valget ku ConfirmClassifyPaidPartiallyReasonAvoirDesc=Bruk dette valget hvis ingen av de andre passer ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=En dårlig kunde er en kunde som nekter å betale. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Dette valget brukes når betalingen ikke er komplett fordi noen varer er returnert -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=Det ubetalte beløpet er mellombankgebyrer , trukket direkte fra det korrekte beløpet betalt av kunden. ConfirmClassifyPaidPartiallyReasonOtherDesc=Bruk dette valget hvis ingen av de andre passer, for eksempel i følgende situasjon:
    - betaling ikke komplett fordi noen varer er sendt tilbake
    - ikke betalt fullt ut fordi rabatt er uteglemt
    I alle tilfelle må beløpet rettes i regnskapssystemet ved å lage en kreditnota. ConfirmClassifyAbandonReasonOther=Annen ConfirmClassifyAbandonReasonOtherDesc=Dette valget brukes i alle andre tilfeller. For eksempel fordi du vil lage en erstatningsfaktura. @@ -238,22 +242,22 @@ Abandoned=Tapsført RemainderToPay=Restbeløp RemainderToPayMulticurrency=Gjenværende ubetalt, original valuta RemainderToTake=Restbeløp -RemainderToTakeMulticurrency=Remaining amount to take, original currency +RemainderToTakeMulticurrency=Gjenstående beløp å ta, opprinnelig valuta RemainderToPayBack=Restbeløp å refundere -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency -NegativeIfExcessRefunded=negative if excess refunded +RemainderToPayBackMulticurrency=Gjenstående beløp som skal refunderes, opprinnelig valuta +NegativeIfExcessRefunded=negativ hvis for mye refundert Rest=Venter AmountExpected=Beløp purret ExcessReceived=Overskytende -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received +ExcessReceivedMulticurrency=Mottatt overskudd, opprinnelig valuta +NegativeIfExcessReceived=negativ hvis for mye mottatt ExcessPaid=For mye betalt -ExcessPaidMulticurrency=Excess paid, original currency +ExcessPaidMulticurrency=For mye betalt, opprinnelig valuta EscompteOffered=Rabatt innrømmet (betalt før forfall) EscompteOfferedShort=Rabatt -SendBillRef=Faktura %s +SendBillRef=Vedlagt faktura %s SendReminderBillRef=Faktura %s (påminnelse) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Innsending av betalingskvittering %s NoDraftBills=Ingen fakturakladder NoOtherDraftBills=Ingen andre fakturakladder NoDraftInvoices=Ingen fakturakladder @@ -435,17 +439,18 @@ FixAmount=Fast beløp - 1 linje med etiketten '%s' VarAmount=Variabelt beløp VarAmountOneLine=Variabel mengde (%% tot.) - 1 linje med etikett '%s' VarAmountAllLines=Variabelt beløp (%% tot.) - alle linjer fra opprinnelse -DepositPercent=Deposit %% +DepositPercent=Sett inn %% DepositGenerationPermittedByThePaymentTermsSelected=Dette er tillatt av de valgte betalingsbetingelsene GenerateDeposit=Generer en %s%% innskuddsfaktura ValidateGeneratedDeposit=Bekreft det genererte innskuddet DepositGenerated=Innskudd generert ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Du kan bare automatisk generere et innskudd fra et tilbud eller en ordre -ErrorPaymentConditionsNotEligibleToDepositCreation=The chose payment conditions are not eligible for automatic deposit generation +ErrorPaymentConditionsNotEligibleToDepositCreation=De valgte betalingsbetingelsene er ikke kvalifisert for automatisk innskuddsgenerering # PaymentType PaymentTypeVIR=Bankoverførsel PaymentTypeShortVIR=Bankoverførsel PaymentTypePRE=Direktedebiter betalingsordre +PaymentTypePREdetails=(på konto *-%s) PaymentTypeShortPRE=Debiter betalingsordre PaymentTypeLIQ=Kontant PaymentTypeShortLIQ=Kontant @@ -494,7 +499,7 @@ PaymentByChequeOrderedToShort=Sjekkbetaling (inkl. MVA) til SendTo=sendt til PaymentByTransferOnThisBankAccount=Betaling ved overføring til følgende bankkonto VATIsNotUsedForInvoice=* Avgiftsfritt -VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI +VATIsNotUsedForInvoiceAsso=* Ikke gjeldende MVA art-261-7 av CGI LawApplicationPart1=Alle varer forblir vår eiendom LawApplicationPart2=til de er fullt ut betalt. LawApplicationPart3=selgeren til full betaling av @@ -526,7 +531,7 @@ Reported=Forsinket DisabledBecausePayments=Ikke mulig siden det er noen betalinger CantRemovePaymentWithOneInvoicePaid=Kan ikke fjerne betalingen siden det er minst en faktura som er klassifisert som betalt CantRemovePaymentVATPaid=Kan ikke fjerne betaling siden MVA-deklarasjonen er klassifisert betalt -CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +CantRemovePaymentSalaryPaid=Kan ikke fjerne betaling siden lønn er klassifisert som betalt ExpectedToPay=Forventet innbetaling CantRemoveConciliatedPayment=Kan ikke fjerne avtalt beløp PayedByThisPayment=Betales av denne innbetalingen @@ -534,7 +539,7 @@ ClosePaidInvoicesAutomatically=Klassifiser automatisk alle standard-, forskudds- ClosePaidCreditNotesAutomatically=Klassifiser automatisk alle kreditnotaer som "Betalt" når refusjonen er fullført. ClosePaidContributionsAutomatically=Klassifiser automatisk alle sosiale eller skattemessige bidrag som "Betalt" når betalingen er fullstendig utført. ClosePaidVATAutomatically=Klassifiser automatisk MVA-erklæring som "Betalt" når betalingen er fullført. -ClosePaidSalaryAutomatically=Classify automatically salary as "Paid" when payment is done entirely. +ClosePaidSalaryAutomatically=Klassifiser automatisk lønn som "Betalt" når betalingen er fullført. AllCompletelyPayedInvoiceWillBeClosed=Alle fakturaer uten gjenværende å betale vil automatisk bli stengt med status "Betalt". ToMakePayment=Betal ToMakePaymentBack=Tilbakebetal @@ -547,10 +552,10 @@ YouMustCreateStandardInvoiceFirstDesc=Du må først lage en standardfaktura og s PDFCrabeDescription=PDF-fakturamal Crabe. En komplett fakturamal (gammel implementering av Sponge-mal) PDFSpongeDescription=PDF Fakturamal Sponge. En komplett fakturamal PDFCrevetteDescription=PDF fakturamal Crevette. En komplett mal for delfaktura -TerreNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 -MarsNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +TerreNumRefModelDesc1=Returnerer nummer i formatet %syymm-nnnn for standardfakturaer og %syymm-nnnn for kreditnotaer der yy er år, mm er måned og nnnn er et sekvensielt automatisk økende nummer uten pause og ingen retur til 0 +MarsNumRefModelDesc1=Returnummer i formatet %syymm-nnnn for standardfakturaer, %syymm-nnnn for erstatningsfakturaer, %syymm-nnnn for forskuddsfakturaer og %syymm-nnnn for erstatningsfakturaer, %syymm-nnnn for forskuddsfakturaer og %syymm-nnnn for erstatningsfakturaer, %syymm-nnnn for forskuddsfakturaer og %syymm-nnnn for erstatningsfakturaer, %syymm-nnnn for forskuddsfakturaer og %syymm-nnnn for erstatningsfakturaer. uten pause og ingen retur til 0 TerreNumRefModelError=En faktura som starter med $sååmm finnes allerede og er ikke kompatibel med denne nummereringsmodulen. Du må slette den eller gi den ett nytt navn for å aktivere denne modulen. -CactusNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +CactusNumRefModelDesc1=Returnerer et nummer i formatet %syymm-nnnn for standardfakturaer, %syymm-nnnn for kreditnotaer og %syymm-nnnn for forskuddsfakturaer der yy er år, mm er måned og nnnn er et sekvensielt automatisk økende nummer uten pause og ingen retur til 0 EarlyClosingReason=Årsaken til tidlig avslutning EarlyClosingComment=Tidlig avslutning notat ##### Types de contacts ##### @@ -596,7 +601,7 @@ ToCreateARecurringInvoiceGene=For å opprette fremtidige periodiske fakturaer ma ToCreateARecurringInvoiceGeneAuto=Hvis du vil opprette slike fakturaer automatisk, ta kontakt med administrator for å aktivere og sette opp modulen %s. Husk at begge metoder (manuell og automatisk) kan bruke om hverandre uten fare for duplisering. DeleteRepeatableInvoice=Slett fakturamal ConfirmDeleteRepeatableInvoice=Er du sikker på at du vil -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per selected object) +CreateOneBillByThird=Opprett én faktura per tredjepart (ellers én faktura per valgt objekt) BillCreated=%s faktura(er) generert BillXCreated=Faktura %s generert StatusOfGeneratedDocuments=Status for dokumentgenerering @@ -616,8 +621,13 @@ SituationTotalRayToRest=Rest å betale eks. mva PDFSituationTitle=Delfaktura nr. %d SituationTotalProgress=Total progresjon%d %% SearchUnpaidInvoicesWithDueDate=Søk etter ubetalte fakturaer med forfallsdato = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices -MakePaymentAndClassifyPayed=Record payment -BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +NoPaymentAvailable=Ingen betaling tilgjengelig for %s +PaymentRegisteredAndInvoiceSetToPaid=Betaling registrert og faktura %s satt til betalt +SendEmailsRemindersOnInvoiceDueDate=Send påminnelse på epost for ubetalte fakturaer +MakePaymentAndClassifyPayed=Registrer betaling +BulkPaymentNotPossibleForInvoice=Massebetaling er ikke mulig for faktura %s (feil type eller status) +MentionVATDebitOptionIsOn=Mulighet for å betale skatt basert på debet +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/nb_NO/blockedlog.lang b/htdocs/langs/nb_NO/blockedlog.lang index 0b368bc2e08..e59052b3896 100644 --- a/htdocs/langs/nb_NO/blockedlog.lang +++ b/htdocs/langs/nb_NO/blockedlog.lang @@ -14,28 +14,6 @@ OkCheckFingerprintValidityButChainIsKo=Arkivert logg ser ut til å være gyldig AddedByAuthority=Lagret hos ekstern myndighet NotAddedByAuthorityYet=Ikke lagret hos ekstern myndighet ShowDetails=Vis lagrede detaljer -logPAYMENT_VARIOUS_CREATE=Betaling (ikke tildelt faktura) opprettet -logPAYMENT_VARIOUS_MODIFY=Betaling (ikke tildelt faktura) endret -logPAYMENT_VARIOUS_DELETE=Betaling (ikke tildelt faktura) logisk sletting -logPAYMENT_ADD_TO_BANK=Betaling lagt til i bank -logPAYMENT_CUSTOMER_CREATE=Kundebetaling opprettet -logPAYMENT_CUSTOMER_DELETE=Kundebetaling logisk sletting -logDONATION_PAYMENT_CREATE=Donasjonsbetaling opprettet -logDONATION_PAYMENT_DELETE=Donasjonsbetaling logisk sletting -logBILL_PAYED=Kundefaktura betalt -logBILL_UNPAYED=Kundefaktura settes ubetalt -logBILL_VALIDATE=Kundefaktura validert -logBILL_SENTBYMAIL=Kundefaktura sendt via post -logBILL_DELETE=Kundefaktura logisk slettet -logMODULE_RESET=Modul BlockedLog ble deaktivert -logMODULE_SET=Modul BlockedLog ble aktivert -logDON_VALIDATE=Donasjon validert -logDON_MODIFY=Donasjon endret -logDON_DELETE=Donasjon logisk sletting -logMEMBER_SUBSCRIPTION_CREATE=Medlemskap opprettet -logMEMBER_SUBSCRIPTION_MODIFY=Medlemsskap endret -logMEMBER_SUBSCRIPTION_DELETE=Medlemskap logisk sletting -logCASHCONTROL_VALIDATE=Loggfør for kassaavslutning BlockedLogBillDownload=Kundefaktura nedlasting BlockedLogBillPreview=Kundefaktura forhåndsvisning BlockedlogInfoDialog=Loggdetaljer @@ -53,5 +31,31 @@ OnlyNonValid=Ikke gyldig TooManyRecordToScanRestrictFilters=For mange poster å skanne/analysere. Vennligst begrens listen med mer restriktive filtre. RestrictYearToExport=Begrens måned/år å eksportere BlockedLogEnabled=System for å spore hendelser inn i uforanderlige logger er aktivert -BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken -BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. +BlockedLogDisabled=System for å spore hendelser inn i uforanderlige logger har blitt deaktivert etter at noen opptak ble gjort. Vi lagret et spesielt fingeravtrykk for å spore kjeden som ødelagt +BlockedLogDisabledBis=System for å spore hendelser inn i uforanderlige logger har blitt deaktivert. Dette er mulig fordi ingen registrering er gjort ennå. + +## logTypes +logBILL_DELETE=Kundefaktura logisk slettet +logBILL_PAYED=Kundefaktura betalt +logBILL_SENTBYMAIL=Kundefaktura sendt via post +logBILL_UNPAYED=Kundefaktura settes ubetalt +logBILL_VALIDATE=Kundefaktura validert +logCASHCONTROL_VALIDATE=Loggfør for kassaavslutning +logDOC_DOWNLOAD=Nedlasting av et validert dokument for å skrive ut eller sende +logDOC_PREVIEW=Forhåndsvisning av et validert dokument for å skrive ut eller laste ned +logDONATION_PAYMENT_CREATE=Donasjonsbetaling opprettet +logDONATION_PAYMENT_DELETE=Donasjonsbetaling logisk sletting +logDON_DELETE=Donasjon logisk sletting +logDON_MODIFY=Donasjon endret +logDON_VALIDATE=Donasjon validert +logMEMBER_SUBSCRIPTION_CREATE=Medlemskap opprettet +logMEMBER_SUBSCRIPTION_DELETE=Medlemskap logisk sletting +logMEMBER_SUBSCRIPTION_MODIFY=Medlemsskap endret +logMODULE_RESET=Modul BlockedLog ble deaktivert +logMODULE_SET=Modul BlockedLog ble aktivert +logPAYMENT_ADD_TO_BANK=Betaling lagt til i bank +logPAYMENT_CUSTOMER_CREATE=Kundebetaling opprettet +logPAYMENT_CUSTOMER_DELETE=Kundebetaling logisk sletting +logPAYMENT_VARIOUS_CREATE=Betaling (ikke tildelt faktura) opprettet +logPAYMENT_VARIOUS_DELETE=Betaling (ikke tildelt faktura) logisk sletting +logPAYMENT_VARIOUS_MODIFY=Betaling (ikke tildelt faktura) endret diff --git a/htdocs/langs/nb_NO/bookmarks.lang b/htdocs/langs/nb_NO/bookmarks.lang index 66850c4ccab..0d8f1170509 100644 --- a/htdocs/langs/nb_NO/bookmarks.lang +++ b/htdocs/langs/nb_NO/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Velg om den koblede siden skal BookmarksManagement=Behandling av bokmerker BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Ingen bokmerker definert +NoBookmarkFound=Finner ingen bokmerker diff --git a/htdocs/langs/nb_NO/boxes.lang b/htdocs/langs/nb_NO/boxes.lang index bd7203b0e91..43a1dccd065 100644 --- a/htdocs/langs/nb_NO/boxes.lang +++ b/htdocs/langs/nb_NO/boxes.lang @@ -19,12 +19,12 @@ BoxLastContracts=Siste kontrakter BoxLastContacts=Siste kontakter/adresser BoxLastMembers=Siste medlemmer BoxLastModifiedMembers=Sist endrede medlemmer -BoxLastMembersSubscriptions=Latest member subscriptions +BoxLastMembersSubscriptions=Siste medlemsabonnementer BoxFicheInter=Siste intervensjoner BoxCurrentAccounts=Åpne kontobalanse BoxTitleMemberNextBirthdays=Fødselsdager denne måneden (medlemmer) -BoxTitleMembersByType=Members by type and status -BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year +BoxTitleMembersByType=Medlemmer etter type og status +BoxTitleMembersSubscriptionsByYear=Medlemsabonnement etter år BoxTitleLastRssInfos=Siste %s nyheter fra %s BoxTitleLastProducts=Varer/Tjenester: siste %s endret BoxTitleProductsAlertStock=Varer: lagervarsel @@ -44,13 +44,15 @@ BoxTitleSupplierOrdersAwaitingReception=Leverandørordre avventer mottak BoxTitleLastModifiedContacts=Kontakter/Adresser: Siste %s endret BoxMyLastBookmarks=Bokmerker: siste %s BoxOldestExpiredServices=Eldste aktive utløpte tjenester +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Siste %s eldste kontakter med aktive, utgåtte tjenseter BoxTitleLastActionsToDo=Siste %s handlinger å utføre +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Siste %s kontrakter som ble endret BoxTitleLastModifiedDonations=Siste %s donasjoner som ble endret BoxTitleLastModifiedExpenses=Siste %s utgiftsrapporter som ble endret -BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified -BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified +BoxTitleLatestModifiedBoms=Siste %s stykklister(BOM) som ble endret +BoxTitleLatestModifiedMos=Siste %s produksjonsordre som ble endret BoxTitleLastOutstandingBillReached=Kunder med maksimalt utestående overskredet BoxGlobalActivity=Global aktivitet (fakturaer, tilbud, ordrer) BoxGoodCustomers=Gode kunder @@ -91,8 +93,8 @@ BoxTitleLatestModifiedSupplierOrders=Leverandørordre: siste %s endret BoxTitleLastModifiedCustomerBills=Kundefakturaer: siste %s endret BoxTitleLastModifiedCustomerOrders=Salgsordre: siste %s endret BoxTitleLastModifiedPropals=Siste %s endrede tilbud -BoxTitleLatestModifiedJobPositions=Latest %s modified job positions -BoxTitleLatestModifiedCandidatures=Latest %s modified job applications +BoxTitleLatestModifiedJobPositions=Siste %s endrede stillinger +BoxTitleLatestModifiedCandidatures=Siste %s endrede jobbsøknader ForCustomersInvoices=Kundefakturaer ForCustomersOrders=Kundeordrer ForProposals=Tilbud @@ -112,9 +114,9 @@ BoxTitleLastCustomerShipments=Siste %s kundeforsendelser NoRecordedShipments=Ingen registrert kundesending BoxCustomersOutstandingBillReached=Kunder med utestående grense nådd # Pages -UsersHome=Home users and groups -MembersHome=Home Membership +UsersHome=Hjemmebrukere og grupper +MembersHome=Hjem medlemskap ThirdpartiesHome=Hjem Tredjeparter TicketsHome=Hjem Billetter -AccountancyHome=Home Accountancy +AccountancyHome=Hjem Regnskap ValidatedProjects=Validerte prosjekter diff --git a/htdocs/langs/nb_NO/cashdesk.lang b/htdocs/langs/nb_NO/cashdesk.lang index 5df74a896ed..a004564d5dc 100644 --- a/htdocs/langs/nb_NO/cashdesk.lang +++ b/htdocs/langs/nb_NO/cashdesk.lang @@ -41,7 +41,7 @@ Floor=Etasje AddTable=Legg til tabell Place=Sted TakeposConnectorNecesary='TakePOS Connector' kreves -OrderPrinters=Add a button to send the order to some given printers, without payment (for example to send an order to a kitchen) +OrderPrinters=Legg til en knapp for å sende bestillingen til noen gitte skrivere, uten betaling (for eksempel for å sende en bestilling til et kjøkken) NotAvailableWithBrowserPrinter=Ikke tilgjengelig når skriver for kvittering er satt til nettleser SearchProduct=Søk produkt Receipt=Kvittering @@ -50,8 +50,8 @@ Footer=Bunntekst AmountAtEndOfPeriod=Beløp ved periodens slutt (dag, måned eller år) TheoricalAmount=Teoretisk beløp RealAmount=Virkelig beløp -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Kasselukking +CashFenceDone=Kassestenging utført for perioden NbOfInvoices=Ant. fakturaer Paymentnumpad=Tastaturtype for å legge inn betaling Numberspad=Nummertastatur @@ -59,7 +59,7 @@ BillsCoinsPad=Mynter og pengesedler Pad DolistorePosCategory=TakePOS-moduler og andre POS-løsninger for Dolibarr TakeposNeedsCategories=TakePOS trenger minst en produktkategori for å fungere TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS trenger minst en produktkategori under kategorien %s for å fungere -OrderNotes=Can add some notes to each ordered items +OrderNotes=Kan legge til noen merknader til hver bestilte vare CashDeskBankAccountFor=Standardkonto for bruk for betalinger i NoPaimementModesDefined=Ingen betalingsmodus definert i TakePOS-konfigurasjonen TicketVatGrouped=Grupper mva etter pris i billetter|kvitteringer @@ -94,7 +94,7 @@ Browser=Nettleser BrowserMethodDescription=Enkel kvitteringsutskrift. Kun noen få parametere for å konfigurere kvitteringen. Skriv ut via nettleser. TakeposConnectorMethodDescription=Ekstern modul med ekstra funksjoner. Mulighet for å skrive ut fra skyen. PrintMethod=Utskriftsmetode -ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. The server hosting the application can't be in the Cloud (must be able to reach the printers in your network). +ReceiptPrinterMethodDescription=Kraftig metode med mange parametere. Fullt tilpassbar med maler. Serveren som er vert for applikasjonen kan ikke være i skyen (må kunne nå skriverne i nettverket ditt). ByTerminal=Med terminal TakeposNumpadUsePaymentIcon=Bruk ikon i stedet for tekst på betalingsknappene på nummertastaturet CashDeskRefNumberingModules=Nummereringsmodul for POS-salg @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN}-tag brukes til å legge til terminal TakeposGroupSameProduct=Grupper samme produktlinjer StartAParallelSale=Start et nytt parallellsalg SaleStartedAt=Salget startet %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Åpne "Kontroll av kasse" popup når du åpner POS +CloseCashFence=Lukk kassekontroll CashReport=Kontantrapport MainPrinterToUse=Hovedskriver som skal brukes OrderPrinterToUse=Odreskriver som skal brukes @@ -126,13 +126,22 @@ ModuleReceiptPrinterMustBeEnabled=Modulen Kvitteringsskriver må ha blitt aktive AllowDelayedPayment=Tillat forsinket betaling PrintPaymentMethodOnReceipts=Skriv ut betalingsmåte på billetter/kvitteringer WeighingScale=Vektskala -ShowPriceHT = Display the column with the price excluding tax (on screen) -ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt) -CustomerDisplay=Customer display -SplitSale=Split sale +ShowPriceHT = Vis kolonnen med prisen eks. MVA (på skjermen) +ShowPriceHTOnReceipt = Vis kolonnen med prisen eks. MVA (på kvitteringen) +CustomerDisplay=Kundedisplay +SplitSale=Delt salg PrintWithoutDetailsButton=Legg til knappen "Skriv ut uten detaljer". PrintWithoutDetailsLabelDefault=Linjeetikett som standard ved utskrift uten detaljer PrintWithoutDetails=Skriv ut uten detaljer -YearNotDefined=Year is not defined -TakeposBarcodeRuleToInsertProduct=Barcode rule to insert product -TakeposBarcodeRuleToInsertProductDesc=Rule to extract the product reference + a quantity from a scanned barcode.
    If empty (default value), application will use the full barcode scanned to find the product.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +YearNotDefined=År er ikke definert +TakeposBarcodeRuleToInsertProduct=Strekkoderegel for å sette inn vare +TakeposBarcodeRuleToInsertProductDesc=Regel for å hente varereferansen + en kvantitet fra en skannet strekkode.
    Hvis tom (standardverdi), vil applikasjonen bruke hele den skannede strekkoden for å finne varen.

    Hvis definert, må syntaksen være:
    ref:NB+qu:NB+qd:NB+other:NB
    der NB er antall karakterer brukt for å hente data fra skannet strekkode:
    • ref : varereferanse
    • qu : Kvantitet ved innsetting av vare (enheter)
    • qd : kvantitet ved innsetting av vare (desimaler)
    • andre: andre karakterer
    +AlreadyPrinted=Allerede skrevet ut +HideCategories=Skjul kategorier +HideStockOnLine=Skjul lager på nettet +ShowOnlyProductInStock=Vis varer på lager +ShowCategoryDescription=Vis kategoribeskrivelse +ShowProductReference=Vis referanse til produkter +UsePriceHT=Bruk pris eks. MVA og ikke pris ink. MVA +TerminalName=Terminal %s +TerminalNameDesc=Terminalnavn diff --git a/htdocs/langs/nb_NO/categories.lang b/htdocs/langs/nb_NO/categories.lang index f0e6d4284cc..dc2e78c5ea9 100644 --- a/htdocs/langs/nb_NO/categories.lang +++ b/htdocs/langs/nb_NO/categories.lang @@ -10,13 +10,13 @@ modify=endre Classify=Klassifiser CategoriesArea=Merker/Kategorier-område ProductsCategoriesArea=Område for vare/tjeneste etiketter/kategorier -SuppliersCategoriesArea=Vendor tags/categories area -CustomersCategoriesArea=Customer tags/categories area -MembersCategoriesArea=Member tags/categories area -ContactsCategoriesArea=Contact tags/categories area +SuppliersCategoriesArea=Område for Leverandøretiketter/kategorier +CustomersCategoriesArea=Kunde tags/kategorier område +MembersCategoriesArea=Område for medlemstags/kategorier +ContactsCategoriesArea=Kontakt tags/kategorier område AccountsCategoriesArea=Bankkonto etikett/kategorier område ProjectsCategoriesArea=Prosjekt tags/kategorier område -UsersCategoriesArea=User tags/categories area +UsersCategoriesArea=Område for brukertagger/kategorier SubCats=Underkategorier CatList=Liste over merker/kategorier CatListAll=Liste over etiketter/kategorier (alle typer) @@ -42,6 +42,7 @@ MemberHasNoCategory=Dette medlemmet har ikke noen merker/kategorier ContactHasNoCategory=Denne kontakten har ingen merker/kategorier ProjectHasNoCategory=Dette prosjekter er ikke i noen merker/kategorier ClassifyInCategory=Legg til i merke/kategori +RemoveCategory=Fjern kategori NotCategorized=Uten merke/kategori CategoryExistsAtSameLevel=Denne kategorien finnes allerede med denne referansen ContentsVisibleByAllShort=Innhold synlig for alle @@ -67,6 +68,7 @@ StockCategoriesShort=Lager etiketter/kategorier ThisCategoryHasNoItems=Denne kategorien inneholder ingen artikler. CategId=Merke/kategori-ID ParentCategory=Overordnet etikett/kategori +ParentCategoryID=ID for overordnet tag/kategori ParentCategoryLabel=Merke for overordnet etikett/kategori CatSupList=Liste over leverandøretiketter/kategorier CatCusList=Liste over kunders/prospekters etiketter/kategorier @@ -86,16 +88,18 @@ DeleteFromCat=Fjern fra merker/kategorier ExtraFieldsCategories=Komplementære attributter CategoriesSetup=Oppsett av merker/kategorier CategorieRecursiv=Automatisk lenke til overordnet merke/kategori -CategorieRecursivHelp=Hvis alternativet er på, når du legger til et produkt i en underkategori, vil produktet også bli lagt til i overordnet kategori. +CategorieRecursivHelp=Hvis alternativet er på, vil objektet også bli lagt til i de overordnede kategoriene når du legger til et objekt i en underkategori. AddProductServiceIntoCategory=Legg til følgende vare/tjeneste AddCustomerIntoCategory=Tilordne kategori til kunde AddSupplierIntoCategory=Tilordne kategori til leverandør -AssignCategoryTo=Assign category to +AssignCategoryTo=Tilordne kategori til ShowCategory=Vis merke/kategori ByDefaultInList=Som standard i liste ChooseCategory=Velg kategori StocksCategoriesArea=Varehuskategorier +TicketsCategoriesArea=Billettkategorier ActionCommCategoriesArea=Arrangementskategorier WebsitePagesCategoriesArea=Side-Container Kategorier KnowledgemanagementsCategoriesArea=KM artikkel Kategorier -UseOrOperatorForCategories=Use 'OR' operator for categories +UseOrOperatorForCategories=Bruk 'ELLER'-operator for kategorier +AddObjectIntoCategory=Legg til objekt i kategori diff --git a/htdocs/langs/nb_NO/commercial.lang b/htdocs/langs/nb_NO/commercial.lang index 9914a8c11a4..f64378bd1d4 100644 --- a/htdocs/langs/nb_NO/commercial.lang +++ b/htdocs/langs/nb_NO/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Prospect status DraftPropals=Utkast kommersielle tilbud NoLimit=Ingen grense ToOfferALinkForOnlineSignature=Link for online signatur -WelcomeOnOnlineSignaturePage=Velkommen til siden for å godta tilbud fra %s -ThisScreenAllowsYouToSignDocFrom=Denne siden lar deg godta og signere eller avvise et tilbud -ThisIsInformationOnDocumentToSign=Dette er informasjon på dokumentet for å godta eller avvise +WelcomeOnOnlineSignaturePageProposal=Velkommen til siden for å godta tilbud fra %s +WelcomeOnOnlineSignaturePageContract=Velkommen til %s kontrakts-PDF-signeringsside +WelcomeOnOnlineSignaturePageFichinter=Velkommen til %s Intervention PDF-signeringsside +ThisScreenAllowsYouToSignDocFromProposal=Denne siden lar deg godta og signere eller avvise et tilbud +ThisScreenAllowsYouToSignDocFromContract=Denne skjermen lar deg signere kontrakt i PDF-format online. +ThisScreenAllowsYouToSignDocFromFichinter=Denne skjermen lar deg signere intervensjon på PDF-format online. +ThisIsInformationOnDocumentToSignProposal=Dette er informasjon på dokumentet for å godta eller avvise +ThisIsInformationOnDocumentToSignContract=Dette er informasjon om kontrakten som skal signeres +ThisIsInformationOnDocumentToSignFichinter=Dette er informasjon om intervensjon som skal signeres SignatureProposalRef=Signatur på tilbud %s +SignatureContractRef=Signatur på kontrakt %s +SignatureFichinterRef=Signatur på intervensjon %s FeatureOnlineSignDisabled=Funksjon for online signering deaktivert eller dokument generert før funksjonen ble aktivert diff --git a/htdocs/langs/nb_NO/companies.lang b/htdocs/langs/nb_NO/companies.lang index db663bd7b1e..6e92a231b3f 100644 --- a/htdocs/langs/nb_NO/companies.lang +++ b/htdocs/langs/nb_NO/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Tredjeparts art NatureOfContact=Kontaktens art Address=Adresse State=Fylke(delstat) +StateId=State ID StateCode=Stat-/provinskode StateShort=Stat Region=Region Region-State=Region - Stat Country=Land CountryCode=Landskode -CountryId=Land-ID +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Handelsregister ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Andre ProfId6ShortCM=- ProfId1CO=Prof ID 1 (RUT) diff --git a/htdocs/langs/nb_NO/compta.lang b/htdocs/langs/nb_NO/compta.lang index ea6f3223509..a1bcfe315fe 100644 --- a/htdocs/langs/nb_NO/compta.lang +++ b/htdocs/langs/nb_NO/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balanse (før) Balance=Balanse Debit=Debet Credit=Kreditt +AccountingDebit=Debet +AccountingCredit=Kredit Piece=Regnskapsdokument AmountHTVATRealReceived=Netto samlet AmountHTVATRealPaid=Netto betalt @@ -172,13 +174,13 @@ SeeReportInInputOutputMode=Se %sanalyse av betalinger%s for en beregnin SeeReportInDueDebtMode=Se %sanalyse av registrerte dokumenter%s for en beregning basert på kjente registrerte dokumenter selv om de ennå ikke er regnskapsført SeeReportInBookkeepingMode=Se %sanalyse av hovedboktabell%s for en rapport basert på hovedboktabel RulesAmountWithTaxIncluded=- Viste beløp er inkludert alle avgifter -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded -RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. +RulesAmountWithTaxExcluded=- Fakturabeløpene som vises er ekskludert alle avgifter +RulesResultDue=– Det inkluderer alle fakturaer, utgifter, MVA, donasjoner, lønn, enten de er betalt eller ikke.
    - Den er basert på faktureringsdatoen for fakturaer og på forfallsdatoen for utgifter eller skattebetalinger. For lønn brukes sluttdato for perioden. +RulesResultInOut=– Det inkluderer de reelle innbetalingene på fakturaer, utgifter, MVA og lønn.
    - Det er basert på betalingsdatoene for fakturaer, utgifter, MVA, donasjoner og lønn. RulesCADue=- Inkluderer kundens forfalte fakturaer enten de er betalt eller ikke.
    - Basert på faktureringsdato for disse fakturaene.
    RulesCAIn=- Inkluderer alle betalinger av fakturaer mottatt fra klienter.
    - Er basert på betalingsdatoen for disse fakturaene
    RulesCATotalSaleJournal=Den inkluderer alle kredittlinjer fra salgsjournalen. -RulesSalesTurnoverOfIncomeAccounts=It includes (credit - debit) of lines for product accounts in group INCOME +RulesSalesTurnoverOfIncomeAccounts=Den inkluderer (kreditt - debet) av linjer for varekontoer i gruppen INNTEKT RulesAmountOnInOutBookkeepingRecord=Inkluderer poster i hovedboken med regnskapskontoer som har gruppen "UTGIFTER" eller "INNTEKT" RulesResultBookkeepingPredefined=Inkluderer poster i hovedboken med regnskapskontoer som har gruppen "UTGIFTER" eller "INNTEKT" RulesResultBookkeepingPersonalized=Viser poster i hovedboken med regnskapskontoer gruppert etter tilpassede grupper @@ -191,25 +193,25 @@ LT1ReportByCustomers=Rapporter MVA-2 etter tredjepart LT2ReportByCustomers=Rapporter MVA-3 etter tredjepart LT1ReportByCustomersES=Rapport etter tredjepart RE LT2ReportByCustomersES=Rapport over tredjepart IRPF -VATReport=Sales tax report -VATReportByPeriods=Sales tax report by period -VATReportByMonth=Sales tax report by month +VATReport=MVA-rapport +VATReportByPeriods=Omsetningsavgiftsrapport etter periode +VATReportByMonth=MVA-rapport pr. måned VATReportByRates=MVA-rapport etter sats VATReportByThirdParties=MVA-rapport etter tredjepart VATReportByCustomers=MVA-rapport etter kunde VATReportByCustomersInInputOutputMode=Rapport over innhentet og betalt MVA etter kunde -VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid -VATReportShowByRateDetails=Show details of this rate +VATReportByQuartersInInputOutputMode=Rapport etter MVA-sats for innkrevd og betalt MVA +VATReportShowByRateDetails=Vis detaljer om denne prisen LT1ReportByQuarters=Rapporter MVA-2 etter sats LT2ReportByQuarters=Rapporter MVA-3 etter sats LT1ReportByQuartersES=Rapport etter RE sats LT2ReportByQuartersES=Rapport etter IRPF sats -SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation -SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing -RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. -RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. -RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. -RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. +SeeVATReportInInputOutputMode=Se rapport %sMVA-innkreving%s for en standardberegning +SeeVATReportInDueDebtMode=Se rapport %sMVA på debit%s for en beregning med opsjon på faktureringen +RulesVATInServices=- For tjenester inkluderer rapporten MVA av betalinger som faktisk er mottatt eller betalt på grunnlag av betalingsdato. +RulesVATInProducts=- For materielle aktiva inkluderer rapporten MVA på grunnlag av betalingsdato. +RulesVATDueServices=- For tjenester inkluderer rapporten MVA av forfalte fakturaer, betalte eller ikke, basert på fakturadato. +RulesVATDueProducts=- For materielle aktiva inkluderer rapporten MVA av forfalte fakturaer, basert på fakturadato. OptionVatInfoModuleComptabilite=Merk: For materielle verdier, bør man bruke leveringsdato å være mer rettferdig. ThisIsAnEstimatedValue=Dette er en forhåndsvisning, basert på forretningshendelser og ikke fra den endelige hovedbokstabellen, så de endelige resultatene kan avvike fra denne forhåndsvisningsverdien PercentOfInvoice=%%/Faktura @@ -234,7 +236,7 @@ Pcg_subtype=Kontoplan undertype InvoiceLinesToDispatch=Fakturalinjer for utsendelse ByProductsAndServices=Etter varer og tjenester RefExt=Ekstern referanse -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". +ToCreateAPredefinedInvoice=For å lage en fakturamal, lag en standardfaktura, og klikk deretter på knappen "%s", uten å validere den. LinkedOrder=Lenke til ordre Mode1=Metode 1 Mode2=Metode 2 @@ -244,16 +246,16 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Rapporten om omsetning samle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Rapporten om omsetning samlet per MVA-sats er ikke tilgjengelig. Denne rapporten er kun tilgjengelig for omsetning fakturert. CalculationMode=Kalkuleringsmodus AccountancyJournal=Regnskapskode journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Regnskapskonto som standard for MVA ved salg (brukt hvis ikke definert i MVA-ordbokoppsett) -ACCOUNTING_VAT_BUY_ACCOUNT=Regnskapskonto som standard for MVA ved kjøp (brukt hvis ikke definert i MVA-ordbokoppsett) -ACCOUNTING_VAT_PAY_ACCOUNT=Standard regnskapskonto for MVA.betaling -ACCOUNTING_ACCOUNT_CUSTOMER=Regnskapskonto brukt til kunde-tredjepart +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Den dedikerte regnskapskontoen som er definert på tredjepartskort, vil kun bli brukt til subledger. Denne vil bli brukt til hovedboken og som standardverdi av Subledger-regnskap hvis dedikert kundekonto på tredjepart ikke er definert. -ACCOUNTING_ACCOUNT_SUPPLIER=Regnskapskonto brukt til leverandør-tredjepart +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Den dedikerte regnskapskonto som er definert på tredjepartskort, vil kun bli brukt til subledger. Denne vil bli brukt til hovedboken og som standardverdi for Subledger-regnskap hvis dedikert leverandørkonto på tredjepart ikke er definert. ConfirmCloneTax=Bekreft kloning av skatt/avgiftsbetaling ConfirmCloneVAT=Bekreft kloning av MVA-deklarasjon -ConfirmCloneSalary=Confirm the clone of a salary +ConfirmCloneSalary=Bekreft kloningen av en lønn CloneTaxForNextMonth=Klon for neste måned SimpleReport=Enkel rapport AddExtraReport=Ekstrarapporter (legg til internasjonale og nasjonale kunderapporter) @@ -284,7 +286,7 @@ PurchaseTurnoverCollected=Kjøpsomsetning mottatt RulesPurchaseTurnoverDue=- Inkluderer leverandørens forfalte fakturaer enten de er betalt eller ikke.
    - Basert på fakturadato for disse fakturaene.
    RulesPurchaseTurnoverIn=- Inkluderer alle leverandørbetalinger som er utført.
    - Basert på betalingsdatoen for disse fakturaene
    RulesPurchaseTurnoverTotalPurchaseJournal=Inkluderer alle debetlinjer fra kjøpsjournalen. -RulesPurchaseTurnoverOfExpenseAccounts=It includes (debit - credit) of lines for product accounts in group EXPENSE +RulesPurchaseTurnoverOfExpenseAccounts=Den inkluderer (debet - kredit) av linjer for produktkontoer i gruppen KOSTNAD ReportPurchaseTurnover=Kjøpsomsetning fakturert ReportPurchaseTurnoverCollected=Kjøpsomsetning mottatt IncludeVarpaysInResults = Inkluder forskjellige betalinger i rapportene @@ -298,5 +300,6 @@ InvoiceNotLate30Days = Skal innkreves (> 30 dager) InvoiceToPay=Å betale (< 15 dager) InvoiceToPay15Days=Å betale (15 til 30 dager) InvoiceToPay30Days=Å betale (> 30 dager) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +ConfirmPreselectAccount=Forhåndsvelg regnskapskode +ConfirmPreselectAccountQuestion=Er du sikker på at du vil forhåndsvelge de %s valgte linjene med denne regnskapskoden? +AmountPaidMustMatchAmountOfDownPayment=Innbetalt beløp må samsvare med beløpet for nedbetaling diff --git a/htdocs/langs/nb_NO/contracts.lang b/htdocs/langs/nb_NO/contracts.lang index 7529f23c7f4..6848b200627 100644 --- a/htdocs/langs/nb_NO/contracts.lang +++ b/htdocs/langs/nb_NO/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Er du sikker på at du vil slette denne kontraktslinje MoveToAnotherContract=Flytt tjeneste til annen kontrakt ConfirmMoveToAnotherContract=Jeg bekrefter at jeg hat valgt ny målkontrakt og at jeg ønsker å flytte denne tjenesten inn i den nye kontrakten. ConfirmMoveToAnotherContractQuestion=Velg hvilken kontrakt (tilhørende samme tredjepart) du vil flytte denne tjenesten til. -PaymentRenewContractId=Forny kontraktlinje (antall %s) +PaymentRenewContractId=Forny kontrakt %s (tjeneste %s) ExpiredSince=Utløpsdato NoExpiredServices=Ingen utgåtte, aktive tjenester ListOfServicesToExpireWithDuration=Liste over tjenester som utløper innen %s dager diff --git a/htdocs/langs/nb_NO/cron.lang b/htdocs/langs/nb_NO/cron.lang index 431388bc0ed..30e4d9404b3 100644 --- a/htdocs/langs/nb_NO/cron.lang +++ b/htdocs/langs/nb_NO/cron.lang @@ -26,7 +26,7 @@ CronCommand=Kommando CronList=Planlagte jobber CronDelete=Slett planlagte jobber CronConfirmDelete=Er du sikker på at du vil slette disse planlagte jobbene? -CronExecute=Start planlagt jobb +CronExecute=Start nå CronConfirmExecute=Er du sikker på at du vil kjøre disse planlagte jobbene nå? CronInfo=Planlagt jobb -modul gjør det mulig å planlegge jobber for å utføre dem automatisk. Jobber kan også startes manuelt. CronTask=Jobb @@ -58,7 +58,7 @@ CronNote=Kommentar CronFieldMandatory=Feltene %s er obligatoriske CronErrEndDateStartDt=Sluttdato kan ikke være før startdato StatusAtInstall=Status for modulinstallasjon -CronStatusActiveBtn=Tidsplan +CronStatusActiveBtn=Aktiver planlegging CronStatusInactiveBtn=Deaktiver CronTaskInactive=Denne jobben er deaktivert (ikke planlagt) CronId=ID @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Backup av lokal database MakeLocalDatabaseDump=Opprett en lokal database dump. Parametrene er: komprimering ('gz' eller 'bz' eller 'ingen'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' eller filnavn for å bygge, antall backupfiler som skal beholdes MakeSendLocalDatabaseDumpShort=Send sikkerhetskopi av lokal database MakeSendLocalDatabaseDump=Send sikkerhetskopi av lokal database via e-post. Parametrene er: til, fra, emne, melding, filnavn (navn på fil sendt), filter ('sql' kun for sikkerhetskopiering av database) +BackupIsTooLargeSend=Beklager, siste sikkerhetskopifil er for stor til å sendes via e-post +CleanUnfinishedCronjobShort=Rengjør uferdig cronjob +CleanUnfinishedCronjob=Clean cronjob sitter fast i behandling når prosessen ikke lenger kjører WarningCronDelayed=NB, for ytelsesformål, uansett neste utførelsesdato for aktiverte jobber, kan jobbene dine forsinkes til maksimalt %s timer før de kjøres. DATAPOLICYJob=Datarenser og anonymiserer JobXMustBeEnabled=Jobb %s må være aktivert +EmailIfError=Epost for advarsel om feil +ErrorInBatch=Feil ved kjøring av jobben %s + # Cron Boxes LastExecutedScheduledJob=Sist utførte planlagte jobb NextScheduledJobExecute=Neste planlagte jobb som skal utføres NumberScheduledJobError=Antall planlagte jobber med feil +NumberScheduledJobNeverFinished=Antall planlagte jobber som aldri ble fullført diff --git a/htdocs/langs/nb_NO/datapolicy.lang b/htdocs/langs/nb_NO/datapolicy.lang new file mode 100644 index 00000000000..f22d544cc4e --- /dev/null +++ b/htdocs/langs/nb_NO/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Retningslinjer for personvern +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul for å administrere personvern (samsvar med GDPR) + +# +# Administration page +# +datapolicySetup = Modul for oppsett av retningslinjer for personvern +Deletion = Sletting av data +datapolicySetupPage = Avhengig av lovene i landene dine (eksempel artikkel 5 i GDPR), må personopplysninger oppbevares i en periode som ikke overstiger det som er nødvendig for formålene de ble samlet inn for, unntatt for arkivformål.
    Slettingen vil bli gjort automatisk etter en viss varighet uten hendelse (varigheten som du vil ha angitt nedenfor). +NB_MONTHS = %s måneder +ONE_YEAR = 1 år +NB_YEARS = %s år +DATAPOLICY_TIERS_CLIENT = Kunde +DATAPOLICY_TIERS_PROSPECT = Prospekt +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospekt/kunde +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ikke prospekt/ikke kunde +DATAPOLICY_TIERS_FOURNISSEUR = Leverandør +DATAPOLICY_CONTACT_CLIENT = Kunde +DATAPOLICY_CONTACT_PROSPECT = Prospekt +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospekt/kunde +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ikke prospekt/ikke kunde +DATAPOLICY_CONTACT_FOURNISSEUR = Leverandør +DATAPOLICY_ADHERENT = Medlem +DATAPOLICY_Tooltip_SETUP = Type kontakt - Angi dine valg for hver type. +DATAPOLICYMail = E-postoppsett +DATAPOLICYSUBJECTMAIL = Emne for e-post +DATAPOLICYCONTENTMAIL = Innholdet i e-posten +DATAPOLICYSUBSITUTION = Du kan bruke følgende variabler i e-posten din (LINKACCEPT lar deg lage en lenke som registrerer avtalen til personen, LINKREFUSED gjør det mulig å registrere avslaget til personen): +DATAPOLICYACCEPT = Melding etter avtale +DATAPOLICYREFUSE = Melding etter uenighet +SendAgreementText = Du kan sende en GDPR-e-post til alle dine relevante kontakter (som ennå ikke har mottatt en e-post og som du ikke har registrert noe om deres GDPR-avtale). For å gjøre dette, bruk følgende knapp. +SendAgreement = Send e-poster +AllAgreementSend = Alle e-poster er sendt +TXTLINKDATAPOLICYACCEPT = Tekst for lenken "avtale" +TXTLINKDATAPOLICYREFUSE = Tekst for lenken "uenighet" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: Behandling av personopplysninger +DATAPOLICY_consentement = Samtykke innhentet for behandling av personopplysninger +DATAPOLICY_opposition_traitement = Motsetter seg behandling av personopplysninger +DATAPOLICY_opposition_prospection = Motsetter seg behandling av personopplysninger i forbindelse med prospektering + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymiser en tredjepart +DATAPOLICY_POPUP_ANONYME_TEXTE = Du kan ikke slette denne kontakten fra Dolibarr fordi det er relaterte elementer. I samsvar med GDPR vil du gjøre alle disse dataene anonyme for å respektere dine forpliktelser. Vil du fortsette? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilitet GDPR +DATAPOLICY_PORTABILITE_TITLE = Eksport av personopplysninger +DATAPOLICY_PORTABILITE_CONFIRMATION = Du vil eksportere personopplysningene til denne kontakten. Er du sikker ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymisert %s + +# V2 +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_date = Dato for avtale/uenighet GDPR +DATAPOLICY_send = Dato for sending av avtale-e-post +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_SEND = Send GDPR-e-post +MailSent = E-post har blitt sendt + +# ERROR +ErrorSubjectIsRequired = Feil: Emnet for e-post er obligatorisk. Angi det i moduloppsettet +=På grunn av et teknisk problem kunne vi ikke registrere valget ditt. Det beklager vi. Kontakt oss for å sende ditt valg. +NUMBER_MONTH_BEFORE_DELETION = Antall måneder før sletting diff --git a/htdocs/langs/nb_NO/dict.lang b/htdocs/langs/nb_NO/dict.lang index 68218bb0ba4..829b35dbca2 100644 --- a/htdocs/langs/nb_NO/dict.lang +++ b/htdocs/langs/nb_NO/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Fru +CivilityMMEShort=Fru CivilityMR=Herr +CivilityMRShort=Herr CivilityMLE=Frk. CivilityMTRE=Master CivilityDR=Doktor diff --git a/htdocs/langs/nb_NO/ecm.lang b/htdocs/langs/nb_NO/ecm.lang index afd0af2e340..ead65631027 100644 --- a/htdocs/langs/nb_NO/ecm.lang +++ b/htdocs/langs/nb_NO/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manuell mappe ECMSectionAuto=Automatisk mappe ECMSectionsManual=Manuell mappestruktur ECMSectionsAuto=Automatisk mappestruktur +ECMSectionsMedias=Mediatre ECMSections=Mapper ECMRoot=ECM rot ECMNewSection=Ny mappe @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Antall filer i undermapper ECMCreationUser=Opprettet av ECMArea=DMS/ECM-område ECMAreaDesc=DMS / ECM (Document Management System / Electronic Content Management) -området lar deg lagre, dele og raskt søke alle slags dokumenter i Dolibarr. -ECMAreaDesc2=* Automatiske mapper fylles automatisk når du legger til dokumenter fra et elementkort.
    * Manuelle mapper kan du bruke til å lagre dokumenter som ikke er lenket til et spesielt element. +ECMAreaDesc2a=* Manuelle kataloger kan brukes til å lagre dokumenter som ikke er knyttet til et bestemt element. +ECMAreaDesc2b=* Automatiske kataloger fylles automatisk når du legger til dokumenter fra siden til et element. +ECMAreaDesc3=* Mediakataloger er filer i underkatalogen /medias i dokumentkatalogen, lesbare av alle uten behov for å logges og uten behov for å dele filen eksplisitt. Den brukes til å lagre bildefiler fra e-post eller nettsidemodul. ECMSectionWasRemoved=Mappen %s er slettet. ECMSectionWasCreated=Mappen %s er opprettet. ECMSearchByKeywords=Søk på nøkkelord diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang index e97723984b2..660ade0e83c 100644 --- a/htdocs/langs/nb_NO/errors.lang +++ b/htdocs/langs/nb_NO/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=brukernavnet %s eksisterer allerede. ErrorGroupAlreadyExists=Gruppen %s eksisterer allerede. ErrorEmailAlreadyExists=E-post %s eksisterer allerede. ErrorRecordNotFound=Posten ble ikke funnet. +ErrorRecordNotFoundShort=Ikke funnet ErrorFailToCopyFile=Klarte ikke å kopiere filen '«%s' til '%s'. ErrorFailToCopyDir=Klarte ikke å kopiere katalogen '%s' til '%s'. ErrorFailToRenameFile=Kunne ikke omdøpe filen '%s' til '%s' @@ -48,6 +49,7 @@ ErrorBadImageFormat=Bildeformatet støttes ikke (Din PHP støtter ikke konverter ErrorBadDateFormat=Verdien '%s' har feil datoformat ErrorWrongDate=Dato er feil! ErrorFailedToWriteInDir=Kan ikke skrive til mappen %s +ErrorFailedToBuildArchive=Kunne ikke bygge arkivfilen %s ErrorFoundBadEmailInFile=Feil e-postsyntaks for %s linjer i filen (for eksempel linje %s med e-post=%s) ErrorUserCannotBeDelete=Brukeren kan ikke slettes. Kanskje det er knyttet til Dolibarr-enheter. ErrorFieldsRequired=Noen obligatoriske felt er tomme. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Sett inn verdi for å velge avkrysningsboks-liste ErrorNoValueForRadioType=Sett i verdi for radioknapp-liste ErrorBadFormatValueList=Listeverdien kan ikke ha mer enn ett komma: %s, men må ha minst ett: nøkkel,verdi ErrorFieldCanNotContainSpecialCharacters=Feltet %s må ikke inneholde spesialtegn. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet %s må ikke inneholde spesialtegn eller store bokstaver, og kan ikke inneholde bare tall. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet %s må ikke inneholde spesialtegn, heller ikke store bokstaver, og må starte med et alfabetisk tegn (a-z) ErrorFieldMustHaveXChar=Feltet %s må ha minst %s tegn. ErrorNoAccountancyModuleLoaded=Ingen regnskapsmodul aktivert ErrorExportDuplicateProfil=Profilnavnet til dette eksport-oppsettet finnes allerede @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript må være aktivert for å kunne bruke de ErrorPasswordsMustMatch=Passordene må samsvare med hverandre ErrorContactEMail=En teknisk feil oppsto. Vennligst kontakt administrator på e-post %s og oppgi feilkoden %s i meldingen, eller legg til en skjermdump av denne siden. ErrorWrongValueForField=Felt %s : ' %s ' stemmer ikke overens med regexregel %s +ErrorHtmlInjectionForField=Felt %s : Verdien ' %s ' inneholder ikke tillatte data ErrorFieldValueNotIn=Felt %s : ' %s ' er ikke en verdi funnet i felt %s av %s ErrorFieldRefNotIn=Felt %s : ' %s ' er ikke en %s eksisterende ref +ErrorMultipleRecordFoundFromRef=Flere poster funnet ved søk fra ref %s . Ingen måte å vite hvilken ID du skal bruke. ErrorsOnXLines=%s feil funnet ErrorFileIsInfectedWithAVirus=Antivirus-programmet var ikke i stand til å validere filen (filen kan være infisert av et virus) -ErrorSpecialCharNotAllowedForField=Spesialtegn er ikke tillatt for feltet "%s" ErrorNumRefModel=En referanse finnes i databasen (%s), og er ikke kompatibel med denne nummereringsregelen. Fjern posten eller omdøp referansen for å aktivere denne modulen. ErrorQtyTooLowForThisSupplier=Mengde for lav for denne leverandøren eller ingen pris angitt på dette produktet for denne leverandøren ErrorOrdersNotCreatedQtyTooLow=Noen ordrer er ikke opprettet på grunn av for lave mengder @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objekter må ha status 'Aktiv' for ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objekter må ha status 'Utkast' eller 'Deaktivert' for å være aktivert ErrorNoFieldWithAttributeShowoncombobox=Ingen felt har egenskapen 'showoncombobox' til definisjon av objektet '%s'. Ingen måte å vise kombinatoren på. ErrorFieldRequiredForProduct=Felt %ser påkrevd for produktet %s +AlreadyTooMuchPostOnThisIPAdress=Du har allerede lagt ut for mye på denne IP-adressen. ProblemIsInSetupOfTerminal=Problemet er under konfigurering av terminal %s. ErrorAddAtLeastOneLineFirst=Legg til minst en linje først ErrorRecordAlreadyInAccountingDeletionNotPossible=Feil, posten er allerede overført i regnskap, sletting er ikke mulig. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Du må først konfigurere kontoplanen d ErrorFailedToFindEmailTemplate=Kunne ikke finne mal med kodenavn %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Varighet ikke definert på tjenesten. Ingen måte å beregne timeprisen. ErrorActionCommPropertyUserowneridNotDefined=Brukerens eier kreves -ErrorActionCommBadType=Valgt hendelsestype (id: %n, kode: %s) finnes ikke i ordboken for hendelsestype +ErrorActionCommBadType=Valgt hendelsestype (id: %s, kode: %s) finnes ikke i ordboken for hendelsestype CheckVersionFail=Versjonskontroll mislyktes ErrorWrongFileName=Navnet på filen kan ikke inneholde __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Ikke i ordboken for betalingsvilkår, vennligst endre. ErrorIsNotADraft=%s er ikke et utkast ErrorExecIdFailed=Kan ikke utføre kommandoen "id" -ErrorBadCharIntoLoginName=Uautorisert tegn i påloggingsnavnet -ErrorRequestTooLarge=Feil, forespørselen er for stor +ErrorBadCharIntoLoginName=Ikke tillatt tegn i feltet %s +ErrorRequestTooLarge=Feil, forespørselen er for stor eller økten er utløpt ErrorNotApproverForHoliday=Du er ikke godkjenneren for permisjon %s ErrorAttributeIsUsedIntoProduct=Dette attributtet brukes i én eller flere varevarianter ErrorAttributeValueIsUsedIntoProduct=Denne attributtverdien brukes i én eller flere varevarianter @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Feil, alle beløp må legges inn i samme kolonne ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Du prøver å betale fakturaer i valutaen %s fra en konto med valutaen %s ErrorInvoiceLoadThirdParty=Kan ikke laste inn tredjepartsobjekt for faktura "%s" ErrorInvoiceLoadThirdPartyKey=Tredjepartsnøkkel "%s" ikke angitt for faktura "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Slett linje er ikke tillatt av faktisk objektstatus +ErrorDeleteLineNotAllowedByObjectStatus=Slett linje er ikke tillatt av gjeldende objektstatus ErrorAjaxRequestFailed=Forespørsel feilet +ErrorThirpdartyOrMemberidIsMandatory=Tredjepart eller medlem av partnerskap er obligatorisk +ErrorFailedToWriteInTempDirectory=Kunne ikke skrive i midlertidig katalog +ErrorQuantityIsLimitedTo=Antallet er begrenset til %s +ErrorFailedToLoadThirdParty=Kunne ikke finne/laste tredjepart fra id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Denne betalingsmåten er ikke en bankkonto +ErrorStripeCustomerNotFoundCreateFirst=Stripe-kunden er ikke angitt for denne tredjeparten (eller satt til en verdi slettet på Stripe-siden). Opprett (eller fest den på nytt) først. +ErrorCharPlusNotSupportedByImapForSearch=IMAP-søk kan ikke søke i avsender eller mottaker etter en streng som inneholder tegnet + +ErrorTableNotFound=Tabell %s ble ikke funnet +ErrorValueForTooLow=Verdien for %s er for lav +ErrorValueCantBeNull=Verdien for %s kan ikke være null +ErrorDateOfMovementLowerThanDateOfFileTransmission=Datoen for banktransaksjonen kan ikke være lavere enn datoen for filoverføringen +ErrorTooMuchFileInForm=For mange filer i skjemaet, maksimalt antall er %s fil(er) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=PHP-parameteren upload_max_filesize (%s) er høyere enn PHP-parameteren post_max_size (%s). Dette er ikke et konsistent oppsett. WarningPasswordSetWithNoAccount=Et passord ble satt for dette medlemmet, men ingen brukerkonto ble opprettet. Det fører til at passordet ikke kan benyttes for å logge inn på Dolibarr. Det kan brukes av en ekstern modul/grensesnitt, men hvis du ikke trenger å definere noen innlogging eller passord for et medlem, kan du deaktivere alternativet "opprett en pålogging for hvert medlem" fra medlemsmodul-oppsettet. Hvis du trenger å administrere en pålogging, men ikke trenger noe passord, kan du holde dette feltet tomt for å unngå denne advarselen. Merk: E-post kan også brukes som en pålogging dersom medlemmet er knyttet til en bruker. -WarningMandatorySetupNotComplete=Klikk her for å sette opp obligatoriske parametere +WarningMandatorySetupNotComplete=Klikk her for å sette opp hovedparametere WarningEnableYourModulesApplications=Klikk her for å aktivere modulene og applikasjonene dine WarningSafeModeOnCheckExecDir=Advarsel, PHP alternativet safe_mode er på så kommandere må lagres i en mappe erklært av php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=Et bokmerke med denne tittelen eller denne URL'en eksisterer fra før. @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Advarsel, config-filen din (htdocs / conf / con WarningsOnXLines=Advarsler på %s kildelinje(r) WarningNoDocumentModelActivated=Ingen modell for dokumentgenerering har blitt aktivert. En modell vil bli valgt som standard til du sjekker moduloppsettet. WarningLockFileDoesNotExists=Advarsel, når installasjonen er ferdig, må du deaktivere installasjons- / overføringsverktøyene ved å legge til en fil install.lock i katalogen %s . Mangel av denne filen er en alvorlig sikkerhetsrisiko. -WarningUntilDirRemoved=Alle sikkerhetsadvarsler (bare synlige for adminbrukere) forblir aktive så lenge sårbarheten er til stede (eller den konstante MAIN_REMOVE_INSTALL_WARNING er lagt til i Oppsett-> Annet oppsett). +WarningUntilDirRemoved=Denne sikkerhetsadvarselen vil forbli aktiv så lenge sårbarheten er til stede. WarningCloseAlways=Advarsel! Avsluttes selv om beløpet er forskjellig mellom kilde- og målelementer. Aktiver denne funksjonen med forsiktighet. WarningUsingThisBoxSlowDown=Advarsel! Ved å bruke denne boksen vil du gjøre alle sider som bruker den, tregere. WarningClickToDialUserSetupNotComplete=Oppsett av KlikkForÅRinge informasjon for din bruker er ikke komplett (Se fanen KlikkForÅRinge på ditt bruker-kort) @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Advarsel, du kan ikke opprette en underkonto direkte, d WarningAvailableOnlyForHTTPSServers=Bare tilgjengelig hvis du bruker HTTPS-sikret tilkobling. WarningModuleXDisabledSoYouMayMissEventHere=Modul %s er ikke aktivert, så du kan gå glipp av mange hendelser her. WarningPaypalPaymentNotCompatibleWithStrict=Verdien 'Strict' gjør at betalingsfunksjonene på nettet ikke fungerer som de skal. Bruk 'Lax' i stedet. +WarningThemeForcedTo=Advarsel, tema har blitt tvunget til %s av skjult konstant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Advarsel, dette vil også slette alle eksisterende sider/beholdere på nettstedet. Du bør eksportere nettstedet ditt før, så du har en sikkerhetskopi for å reimportere den senere. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatisk validering er deaktivert når alternativet for å redusere beholdning er satt på "Fakturavalidering". -<<<<<<< HEAD -======= -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Verdien er ikke gyldig RequireAtLeastXString = Krever minst %s tegn @@ -347,12 +361,3 @@ BadSetupOfField = Feil oppsett av felt BadSetupOfFieldClassNotFoundForValidation = Feil oppsett av felt: Klasse ikke funnet for validering BadSetupOfFieldFileNotFound = Feil oppsett av felt: Filen ble ikke funnet for inkludering BadSetupOfFieldFetchNotCallable = Feil oppsett av felt: Henting kan ikke kalles på klasse -<<<<<<< HEAD -======= -======= -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/nb_NO/eventorganization.lang b/htdocs/langs/nb_NO/eventorganization.lang index 70651303828..e7a0c21eca0 100644 --- a/htdocs/langs/nb_NO/eventorganization.lang +++ b/htdocs/langs/nb_NO/eventorganization.lang @@ -37,7 +37,7 @@ EventOrganization=Arrangementsorganisering Settings=Innstillinger EventOrganizationSetupPage = Konfigurasjonsside for arrangementsorganisasjon EVENTORGANIZATION_TASK_LABEL = Etikett over oppgaver som skal opprettes automatisk når prosjektet er validert -EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip = Når du validerer et arrangement for å organisere, kan noen oppgaver automatisk opprettes i prosjektet.

    For eksempel:
    Send innkalling til konferanser
    Send innkalling til stander
    Valider forslag til konferanser
    Valider søknad om stander
    Åpne abonnementer på arrangementet for deltakere
    Send en påminnelse om arrangementet til foredragsholdere
    Send en påminnelse om arrangementet til Booth-verter
    Send en påminnelse om arrangementet til deltakerne EVENTORGANIZATION_TASK_LABELTooltip2=Hold tom hvis du ikke trenger å opprette oppgaver automatisk. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategori for å legge til tredjeparter opprettes automatisk når noen foreslår en konferanse EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategori som skal legges til tredjeparter opprettes automatisk når de foreslår en stand @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = I skjemaet for å opprette/legge til en # Object # EventOrganizationConfOrBooth= Konferanse eller messe +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Administrer organiseringen av et arrangement ConferenceOrBooth = Konferanse eller messe ConferenceOrBoothTab = Konferanse eller messe AmountPaid = Beløpet betalt DateOfRegistration = Registreringsdato ConferenceOrBoothAttendee = Konferanse- eller standdeltaker +ApplicantOrVisitor=Søker eller besøkende +Speaker=Taler # # Template Mail @@ -109,18 +112,18 @@ EvntOrgCancelled = Kansellert SuggestForm = Forslagsside SuggestOrVoteForConfOrBooth = Side for forslag eller stemme EvntOrgRegistrationHelpMessage = Her kan du stemme på en konferanse eller foreslå en ny til arrangementet. Du kan også søke om å ha stand under arrangementet. -EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. +EvntOrgRegistrationConfHelpMessage = Her kan du foreslå en ny konferanse under arrangementet. EvntOrgRegistrationBoothHelpMessage = Her kan du søke om å få stand under arrangementet. ListOfSuggestedConferences = Liste over foreslåtte konferanser -ListOfSuggestedBooths = Liste over foreslåtte stander -ListOfConferencesOrBooths=Liste over konferanser eller stander for arrangementsprosjekt +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Foreslå en ny konferanse SuggestBooth = Foreslå en stand ViewAndVote = Se og stem på foreslåtte arrangementer PublicAttendeeSubscriptionGlobalPage = Offentlig lenke for påmelding til arrangementet PublicAttendeeSubscriptionPage = Offentlig lenke for registrering kun til dette arrangementet MissingOrBadSecureKey = Sikkerhetsnøkkelen er ugyldig eller mangler -EvntOrgWelcomeMessage = Dette skjemaet lar deg registrere deg som ny deltaker til arrangementet: %s +EvntOrgWelcomeMessage = Dette skjemaet lar deg registrere deg som ny deltaker til arrangementet EvntOrgDuration = Denne konferansen starter på %s og slutter på %s. ConferenceAttendeeFee = Konferansedeltakers avgift for arrangementet: '%s' skjer fra %s til %s. BoothLocationFee = Standplassering for hendelsen: '%s' som skjer fra %s til %s @@ -130,7 +133,7 @@ LabelOfconference=Konferanseetikett ConferenceIsNotConfirmed=Påmelding ikke tilgjengelig, konferansen er ikke bekreftet ennå DateMustBeBeforeThan=%s må være før %s DateMustBeAfterThan=%s må være etter %s - +MaxNbOfAttendeesReached=Maksimalt antall deltakere er nådd NewSubscription=Registrering OrganizationEventConfRequestWasReceived=Ditt forslag til en konferanse er mottatt OrganizationEventBoothRequestWasReceived=Din forespørsel om stand er mottatt @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Betalingen for arrangementsreg OrganizationEventBulkMailToAttendees=Dette er en påminnelse om din deltakelse i arrangementet som deltaker OrganizationEventBulkMailToSpeakers=Dette er en påminnelse om din deltakelse i arrangementet som foredragsholder OrganizationEventLinkToThirdParty=Link til tredjepart (kunde, leverandør eller partner) +OrganizationEvenLabelName=Offentlig navn på konferansen eller standen NewSuggestionOfBooth=Søknad om stand NewSuggestionOfConference=Søknad om konferanse @@ -149,21 +153,22 @@ NewSuggestionOfConference=Søknad om konferanse EvntOrgRegistrationWelcomeMessage = Velkommen til forslagssiden til konferanse eller stand. EvntOrgRegistrationConfWelcomeMessage = Velkommen til forslagssiden til konferanse. EvntOrgRegistrationBoothWelcomeMessage = Velkommen til forslagssiden til stand. -EvntOrgVoteHelpMessage = Here, you can view and vote for the suggested events for the project -VoteOk = Your vote has been accepted. -AlreadyVoted = You have already voted for this event. -VoteError = An error has occurred during the vote, please try again. +EvntOrgVoteHelpMessage = Her kan du se og stemme på de foreslåtte arrangementene for prosjektet +VoteOk = Din stemme har blitt akseptert. +AlreadyVoted = Du har allerede stemt på dette arrangementet. +VoteError = Det har oppstått en feil under avstemningen, prøv igjen. -SubscriptionOk = Registreringen din er validert +SubscriptionOk=Registreringen din er registrert ConfAttendeeSubscriptionConfirmation = Bekreftelse på ditt abonnement på et arrangement Attendee = Deltaker PaymentConferenceAttendee = Betaling for konferansedeltakere -PaymentBoothLocation = Booth location payment +PaymentBoothLocation = Betaling for standplassering DeleteConferenceOrBoothAttendee=Fjern deltaker -RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s -EmailAttendee=Attendee email -EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) -ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event -MaxNbOfAttendees=Max number of attendees +RegistrationAndPaymentWereAlreadyRecorder=En registrering og en betaling er allerede registrert for eposten %s +EmailAttendee=Deltakerens epost +EmailCompany=Firma epost +EmailCompanyForInvoice=Firma-epost (for faktura, hvis forskjellig fra deltaker-epost) +ErrorSeveralCompaniesWithEmailContactUs=Flere selskaper med denne epostadressen er funnet, så vi kan ikke automatisk validere registreringen din. Vennligst kontakt oss på %s for en manuell validering +ErrorSeveralCompaniesWithNameContactUs=Flere selskaper med dette navnet er funnet, så vi kan ikke automatisk validere registreringen din. Vennligst kontakt oss på %s for en manuell validering +NoPublicActionsAllowedForThisEvent=Ingen offentlige handlinger er åpne for offentligheten for dette arrangementet +MaxNbOfAttendees=Maks antall deltakere diff --git a/htdocs/langs/nb_NO/exports.lang b/htdocs/langs/nb_NO/exports.lang index e726f74cdcd..ec61195bdc2 100644 --- a/htdocs/langs/nb_NO/exports.lang +++ b/htdocs/langs/nb_NO/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Eksporterbare felt ExportedFields=Eksporterte felt ImportModelName=Import profilnavn ImportModelSaved=Importprofil lagret som %s . +ImportProfile=Importprofil DatasetToExport=Datasett til eksport DatasetToImport=Importer filen til datasettet ChooseFieldsOrdersAndTitle=Velg feltrekkefølge... @@ -53,8 +54,9 @@ TypeOfLineServiceOrProduct=Linjetype (0=vare, 1=tjeneste) FileWithDataToImport=Fil med data som skal importeres FileToImport=Kildefilen du vil importere FileMustHaveOneOfFollowingFormat=Fil som skal importeres må ha ett av følgende formater -DownloadEmptyExample=Download template file with field content information -StarAreMandatory=* are mandatory fields +DownloadEmptyExampleShort=Last ned en eksempelfil +DownloadEmptyExample=Last ned en malfil med eksempler og informasjon om felt du kan importere +StarAreMandatory=I malfilen er alle felt med * obligatoriske felt ChooseFormatOfFileToImport=Velg filformatet som skal brukes som importfilformat ved å klikke på %s-ikonet for å velge det ... ChooseFileToImport=Last opp fil og klikk deretter på %s ikonet for å velge fil som kilde-importfil ... SourceFileFormat=Kildefil-format @@ -82,7 +84,7 @@ SelectFormat=Velg dette filformatet for import RunImportFile=Importer data NowClickToRunTheImport=Sjekk resultatene av importsimuleringen. Rett eventuelle feil og test på nytt.
    Når simuleringen ikke rapporterer feil, kan du fortsette med å importere dataene til databasen. DataLoadedWithId=De importerte dataene vil ha et ekstra felt i hver databasetabell med denne import-ID: %s , slik at et problem relatert til denne importen, blir søkbar. -ErrorMissingMandatoryValue=Obligatoriske data er tomme i kildefilen for feltet %s . +ErrorMissingMandatoryValue=Obligatoriske data er tomme i kildefilen i kolonne %s . TooMuchErrors=Det er fortsatt %s andre kildelinjer med feil, men utdata er blitt begrenset. TooMuchWarnings=Det er fortsatt %s andre kildelinjer med advarsler, men utdata er blitt begrenset. EmptyLine=Tom linje (vil bli forkastet) @@ -92,12 +94,12 @@ YouCanUseImportIdToFindRecord=Du kan finne alle importerte poster i databasen ve NbOfLinesOK=Antall linjer uten feil og ingen advarsler: %s. NbOfLinesImported=Antall linjer importert: %s. DataComeFromNoWhere=Verdi for å sette inn har ingen kilde. -DataComeFromFileFieldNb=Verdi for å sette inn kommer fra felt nummer %s i kildefilen. -DataComeFromIdFoundFromRef=Verdien som kommer fra feltnummer %s i kildefilen vil bli brukt til å finne ID'en til foreldreobjektet som skal brukes (slik at objektet %s som har referansen fra kildefilen, må eksistere i databasen). -DataComeFromIdFoundFromCodeId=Kode som kommer fra feltnummer %s fra kildefilen vil bli brukt til å finne ID'en til overordnet objekt å bruke (koden fra kildefilen må eksistere i ordboken %s ). Merk at hvis du kjenner ID'en, kan du også bruke den i kildefilen i stedet for koden. Importen skal fungere i begge tilfeller. +DataComeFromFileFieldNb=Verdien som skal settes inn kommer fra kolonne %s i kildefilen. +DataComeFromIdFoundFromRef=Verdien som kommer fra kildefilen vil bli brukt til å finne IDen til det overordnede objektet som skal brukes (så objektet %s som har ref. fra kildefilen må eksistere i databasen). +DataComeFromIdFoundFromCodeId=Verdien av koden som kommer fra kildefilen vil bli brukt til å finne ID-en til det overordnede objektet som skal brukes (så koden fra kildefilen må finnes i ordboken %s ). Merk at hvis du kjenner ID-en, kan du også bruke den i kildefilen i stedet for koden. Import bør fungere i begge tilfeller. DataIsInsertedInto=Data fra kildefil blir satt inn på følgende felt: -DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: -DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +DataIDSourceIsInsertedInto=ID-en til det overordnede objektet, som ble funnet ved hjelp av dataene i kildefilen, vil bli satt inn i følgende felt: +DataCodeIDSourceIsInsertedInto=ID-en til den overordnede linjen, som ble funnet fra kode, vil bli satt inn i følgende felt: SourceRequired=Dataverdi er obligatorisk SourceExample=Eksempel på mulig dataverdi ExampleAnyRefFoundIntoElement=Alle referanser funnet for element %s @@ -132,6 +134,14 @@ FormatControlRule=Format kontrollregel ## imports updates KeysToUseForUpdates=Nøkkel (kolonne) som skal brukes til oppdatering av eksisterende data NbInsert=Antall innsatte linjer: %s +NbInsertSim=Antall linjer som vil bli satt inn: %s NbUpdate=Antall oppdaterte linjer: %s +NbUpdateSim=Antall linjer som vil bli oppdatert: %s MultipleRecordFoundWithTheseFilters=Flere poster er blitt funnet med disse filtrene: %s StocksWithBatch=Beholdning og plassering (varehus) av produkter med lot/serienummer +WarningFirstImportedLine=De(n) første linjen(e) vil ikke bli importert med det gjeldende utvalget +NotUsedFields=Felt i databasen som ikke er brukt +SelectImportFieldsSource = Velg kildefilfeltene du vil importere og deres målfelt i databasen ved å velge feltene i hver utvalgsboks, eller velg en forhåndsdefinert importprofil: +MandatoryTargetFieldsNotMapped=Noen obligatoriske målfelt er ikke kartlagt +AllTargetMandatoryFieldsAreMapped=Alle målfelt som trenger en obligatorisk verdi er kartlagt +ResultOfSimulationNoError=Resultat av simulering: Ingen feil diff --git a/htdocs/langs/nb_NO/externalsite.lang b/htdocs/langs/nb_NO/externalsite.lang deleted file mode 100644 index 33870ea4a45..00000000000 --- a/htdocs/langs/nb_NO/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Oppsett av lenke til ekstern nettside -ExternalSiteURL=URL for eksternt nettsted for HTML iframe-innhold -ExternalSiteModuleNotComplete=Modulen Ekstern Side ble ikke riktig konfigurert. -ExampleMyMenuEntry=Meny overskrift diff --git a/htdocs/langs/nb_NO/ftp.lang b/htdocs/langs/nb_NO/ftp.lang deleted file mode 100644 index ea8d66feb00..00000000000 --- a/htdocs/langs/nb_NO/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Oppset av FTP-klient modulen -NewFTPClient=Nytt oppsett av FTP- tilkobling -FTPArea=FTP område -FTPAreaDesc=Denne skjermen viser innholdet på en FTP server visning -SetupOfFTPClientModuleNotComplete=Oppsett av FTP-klient modul synes å være ufullstendig -FTPFeatureNotSupportedByYourPHP=Din PHP støtter ikke FTP-funksjoner -FailedToConnectToFTPServer=Kunne ikke koble til FTP-server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Klarte ikke å logge inn på FTP-server med angitt brukernavn og passord -FTPFailedToRemoveFile=Klarte ikke å fjerne filen %s. -FTPFailedToRemoveDir=Kunne ikke fjerne katalogen %s (Sjekk tillatelser, og at katalogen er tom). -FTPPassiveMode=Passiv modus -ChooseAFTPEntryIntoMenu=Velg FTP i meny... -FailedToGetFile=Kunne ikke hente filene %s diff --git a/htdocs/langs/nb_NO/holiday.lang b/htdocs/langs/nb_NO/holiday.lang index ba51387b850..b4ac01e4d7f 100644 --- a/htdocs/langs/nb_NO/holiday.lang +++ b/htdocs/langs/nb_NO/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Permisjon +Holidays=Ferier +Holiday=Permisjon CPTitreMenu=Permisjon MenuReportMonth=Månedlig uttalelse MenuAddCP=Ny feriesøknad +MenuCollectiveAddCP=Ny kollektiv permisjonsforespørsel NotActiveModCP=Du må aktivere modulen Permisjon for å vise denne siden. AddCP=Opprett feriesøknad DateDebCP=Startdato @@ -27,7 +29,7 @@ DescCP=Beskrivelse SendRequestCP=Opprett feriesøknad DelayToRequestCP=Søknader må opprettes minst %s dag(er) før ferien skal starte MenuConfCP=Permisjonsbalanse -SoldeCPUser=Leave balance (in days) %s +SoldeCPUser=Permisjonsbalanse (i dager) %s ErrorEndDateCP=Sluttdato må være senere en startdato ErrorSQLCreateCP=En SQL feil oppsto under opprettelse: ErrorIDFicheCP=En feil oppsto. Feriesøknaden finnes ikke @@ -40,7 +42,7 @@ TypeOfLeaveId=Type ferie - ID TypeOfLeaveCode=Type feriekode TypeOfLeaveLabel=Ferietype-merke NbUseDaysCP=Antall permisjonsdager brukt -NbUseDaysCPHelp=The calculation takes into account the non-working days and the holidays defined in the dictionary. +NbUseDaysCPHelp=Beregningen tar hensyn til arbeidsfrie dager og helligdager som er definert i ordboken. NbUseDaysCPShort=Permisjonsdager NbUseDaysCPShortInMonth=Permisjonsdager i måned DayIsANonWorkingDay=%s er ikke en arbeidsdag @@ -55,7 +57,8 @@ TitleDeleteCP=Slett en feriesøknad ConfirmDeleteCP=Bekrefte sletting av denne feriesøknaden? ErrorCantDeleteCP=Feil! Du har ikke lov til å slette denne feriesøknaden CantCreateCP=Du har ikke lov til å opprette feriesøknader. -InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidatorCP=Du må velge godkjenner for permisjonsforespørselen din. +InvalidValidator=Den valgte brukeren er ikke en godkjenner. NoDateDebut=Du må velge en startdato. NoDateFin=Du må velge en sluttdato. ErrorDureeCP=Perioden du søker for inneholder ikke arbeidsdager @@ -79,13 +82,22 @@ MotifCP=Begrunnelse UserCP=Bruker ErrorAddEventToUserCP=En feil oppsto ved opprettelse av ekstraordinær ferie AddEventToUserOkCP=Opprettelse av ekstraordinær ferie er utført +ErrorFieldRequiredUserOrGroup=Feltet "gruppe" eller "bruker"-feltet må fylles ut +fusionGroupsUsers=Gruppefeltet og brukerfeltet vil bli slått sammen MenuLogCP=Vis endringslogger -LogCP=Log of all updates made to "Balance of Leave" +LogCP=Logg over alle oppdateringer gjort til «Permisjonsbalanse» ActionByCP=Oppdatert av UserUpdateCP=Oppdatert for PrevSoldeCP=Forrige balanse NewSoldeCP=Ny balanse alreadyCPexist=En feriesøknad er allerede utført for denne perioden +UseralreadyCPexist=En permisjonsforespørsel er allerede gjort for denne perioden for %s. +groups=Grupper +users=Brukere +AutoSendMail=Automatisk utsendelse +NewHolidayForGroup=Ny kollektiv permisjonsforespørsel +SendRequestCollectiveCP=Send kollektiv permisjonsforespørsel +AutoValidationOnCreate=Automatisk validering FirstDayOfHoliday=Første dag for permisjon LastDayOfHoliday=Siste dag for permisjon BoxTitleLastLeaveRequests=Siste %s endrede ferieforespørsler @@ -104,8 +116,8 @@ LEAVE_SICK=Sykefravær LEAVE_OTHER=Annen ferie LEAVE_PAID_FR=Betalt ferie ## Configuration du Module ## -LastUpdateCP=Last automatic update of leave allocation -MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation +LastUpdateCP=Siste automatiske oppdatering av permisjonstildeling +MonthOfLastMonthlyUpdate=Måned for siste automatiske oppdatering av permisjonstildeling UpdateConfCPOK=Vellykket oppdatering. Module27130Name= Håndtering av feriesøknader Module27130Desc= Håndtering av feriesøknader @@ -126,14 +138,21 @@ FollowedByACounter=1: Denne typen ferie må være etterfulgt av en teller. Telle NoLeaveWithCounterDefined=Det er ikke definert noen ferietyper som trenger en teller GoIntoDictionaryHolidayTypes=Gå til Hjem - Oppsett - Ordbøker - Type permisjon for å sette opp forskjellige permisjonstyper. HolidaySetup=Oppsett av modul Permisjon -HolidaysNumberingModules=Numbering models for leave requests +HolidaysNumberingModules=Nummereringsmodeller for permisjonsforespørsler TemplatePDFHolidays=PDF-mal for permisjonsforespørsler FreeLegalTextOnHolidays=Fritekst på PDF WatermarkOnDraftHolidayCards=Vannmerke på permisjonsutkast  HolidaysToApprove=Ferier til godkjenning NobodyHasPermissionToValidateHolidays=Ingen har tillatelse til å validere ferier -HolidayBalanceMonthlyUpdate=Monthly update of holiday balance -XIsAUsualNonWorkingDay=%s is usualy a NON working day -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +HolidayBalanceMonthlyUpdate=Månedlig oppdatering av feriesaldo +XIsAUsualNonWorkingDay=%s er vanligvis en IKKE-arbeidsdag +BlockHolidayIfNegative=Blokker hvis saldoen er negativ +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Opprettelsen av denne permisjonsforespørselen er blokkert fordi saldoen din er negativ +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Permisjonsforespørsel %s må være utkast, kansellert eller nektet å bli slettet +IncreaseHolidays=Øk ferie +HolidayRecordsIncreased= %s feriereposter økt +HolidayRecordIncreased=Ferierekorden øket +ConfirmMassIncreaseHoliday=Masse ferieøkning +NumberDayAddMass=Antall dager å legge til utvalget +ConfirmMassIncreaseHolidayQuestion=Er du sikker på at du vil øke ferien for den(e) %s valgte posten(e)? +HolidayQtyNotModified=Saldo av gjenværende dager for %s er ikke endret diff --git a/htdocs/langs/nb_NO/hrm.lang b/htdocs/langs/nb_NO/hrm.lang index 15245345151..2d214e6d142 100644 --- a/htdocs/langs/nb_NO/hrm.lang +++ b/htdocs/langs/nb_NO/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Åpne firma CloseEtablishment=Lukk firma # Dictionary DictionaryPublicHolidays=Permisjon - helligdager -DictionaryDepartment=HRM - Departementliste +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Jobbstillinger # Module Employees=Ansatte @@ -70,9 +70,9 @@ RequiredSkills=Nødvendig kompetanse for denne jobben UserRank=Brukerrangering SkillList=Ferdighetsliste SaveRank=Lagre rangering -knowHow=Know how -HowToBe=How to be -knowledge=Kunnskap +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Kunnskap AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=Ingen evaluering gjort for denne ansatte @@ -88,3 +88,4 @@ DeleteSkill = Skill removed SkillsExtraFields=Attributs supplémentaires (Compétences) JobsExtraFields=Attributs supplémentaires (Emplois) EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang index c6833cd2b5d..4605a2e999d 100644 --- a/htdocs/langs/nb_NO/install.lang +++ b/htdocs/langs/nb_NO/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Konfigurasjonsfil %s er ikke skrivbar. Sjekk tillat ConfFileIsWritable=Konfigurasjonsfil %s er skrivbar. ConfFileMustBeAFileNotADir=Konfigurasjonsfil %s må være en fil, ikke en katalog. ConfFileReload=Laster parametere fra konfigurasjonsfilen på nytt. -NoReadableConfFileSoStartInstall=Konfigurasjonsfilen conf/conf.php eksisterer ikke eller kan ikke gjenopprettes. Vi kjører installasjonsprosessen for å prøve å initialisere den. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Dette PHP støtter variablene POST og GET. PHPSupportPOSTGETKo=Det er mulig at ditt PHP-oppsett ikke støtter variablene POST og/eller GET. Sjekk parametrene variables_order i php.ini. PHPSupportSessions=Denne PHP støtter sesjoner. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Du har kanskje skrevet feil verdi for parameteren '% ErrorFailedToCreateDatabase=Kunne ikke opprette database '%s'. ErrorFailedToConnectToDatabase=Kunne ikke koble til database '%s'. ErrorDatabaseVersionTooLow=Databaseversjonen (%s) er for gammel. Versjon %s eller senere kreves -ErrorPHPVersionTooLow=PHP-versjonen er for gammel. Versjon %s er nødvendig. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Tilkobling til server vellykket, men database '%s' ikke funnet. ErrorDatabaseAlreadyExists=Database '%s' finnes allerede. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke finnes, gå tilbake og kryss av alternativet "Opprett database". IfDatabaseExistsGoBackAndCheckCreate=Hvis databasen allerede eksisterer, gå tilbake og fjern "Opprett database" alternativet. WarningBrowserTooOld=Nettleseren din er utdatert. Det anbefales å oppgradere til siste versjon av Firefox, Chrome eller Opera. diff --git a/htdocs/langs/nb_NO/interventions.lang b/htdocs/langs/nb_NO/interventions.lang index b98e74e962a..55b66b4de9f 100644 --- a/htdocs/langs/nb_NO/interventions.lang +++ b/htdocs/langs/nb_NO/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Er du sikker på at du vil gjenåpne intervensjonen %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index a685755c59d..587be153543 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=Ingen mal tilgjengelig for denne e-posttypen AvailableVariables=Tilgjengelige erstatningsverdier NoTranslation=Ingen oversettelse Translation=Oversettelse +Translations=Oversettelser CurrentTimeZone=Tidssone for PHP (server) EmptySearchString=Angi ikke-tomme søkekriterier EnterADateCriteria=Skriv inn datokriterier @@ -199,6 +206,7 @@ Valid=Gyldig Approve=Godkjenn Disapprove=Underkjenn ReOpen=Gjenåpne +OpenVerb=Åpent Upload=Last opp ToLink=Lenke Select=Velg @@ -216,7 +224,7 @@ UserGroup=Brukergruppe UserGroups=Brukergrupper NoUserGroupDefined=Ingen brukergrupper er definert Password=Passord -PasswordRetype=Gjenta passord +PasswordRetype=Gjenta passordet ditt NoteSomeFeaturesAreDisabled=Mange av egenskapene/modulene er deaktivert i denne demonstrasjonen. Name=Navn NameSlashCompany=Navn/Firma @@ -244,7 +252,7 @@ Designation=Beskrivelse DescriptionOfLine=Beskrivelse av linje DateOfLine=Dato for linje DurationOfLine=Varighet for linjen -ParentLine=Parent line ID +ParentLine=ID for overordnet linje Model=Dokumentmal DefaultModel=Standard dokumentmal Action=Handling @@ -345,7 +353,7 @@ KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Opprettet av +UserAuthor=Laget av UserModif=Oppdatert av b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Hendelser for denne kontakten/adressen ActionsOnContract=Hendelser for denne kontrakten ActionsOnMember=Hendelser om dette medlemmet ActionsOnProduct=Hendelser om denne varen +ActionsOnAsset=Hendelser for dette anleggsmiddelet NActionsLate=%s forsinket ToDo=To do Completed=Fullført @@ -621,7 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Vedlagte filer og dokumenter JoinMainDoc=Koble hoveddokument -JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found +JoinMainDocOrLastGenerated=Send hoveddokumentet eller det sist genererte hvis det ikke finnes DateFormatYYYYMM=ÅÅÅÅ-MM DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD TT:SS @@ -712,6 +721,7 @@ FeatureDisabled=Funksjonen er slått av MoveBox=Flytt widget Offered=Tilbudt NotEnoughPermissions=Du har ikke tillatelse til å gjøre denne handlingen +UserNotInHierachy=Denne handlingen er forbeholdt denne brukerens overordnede SessionName=Sesjonnavn Method=Metode Receive=Motta @@ -801,6 +811,7 @@ URLPhoto=Url til bilde/logo SetLinkToAnotherThirdParty=Link til en annen tredjepart LinkTo=Lenke til LinkToProposal=Lenke til tilbud +LinkToExpedition= Link til ekspedisjon LinkToOrder=Lenke til ordre LinkToInvoice=Lenke til faktura LinkToTemplateInvoice=Link til fakturamal @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Privat nedlastningskobling PrivateDownloadLinkDesc=Du må være innlogget og ha tillatelse for å se eller laste ned filen Download=Last ned DownloadDocument=Last ned dokument +DownloadSignedDocument=Last ned signert dokument ActualizeCurrency=Oppdater valutakurs Fiscalyear=Regnskapsår ModuleBuilder=Modul- og applikasjonsbygger @@ -1044,6 +1056,7 @@ SearchIntoContracts=Kontrakter SearchIntoCustomerShipments=Kundeforsendelser SearchIntoExpenseReports=Utgiftsrapporter SearchIntoLeaves=Permisjon +SearchIntoKM=Kunnskapsbase SearchIntoTickets=Supportsedler SearchIntoCustomerPayments=Kundebetalinger SearchIntoVendorPayments=Leverandørbetalinger @@ -1135,15 +1148,29 @@ EventReminder=Påminnelse om hendelse UpdateForAllLines=Oppdatering for alle linjer OnHold=Venter Civility=Tiltale -AffectTag=Påvirk merke +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Sett supervisor CreateExternalUser=Opprett ekstern bruker -ConfirmAffectTag=Påvirk bulkmerke -ConfirmAffectTagQuestion=Er du sikker på at du vil påvirke merker til valgte %s post(er)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Rolle tildelt på hvert prosjekt +TasksRole=Rolle tildelt hver oppgave i hvert prosjekt +ConfirmSetSupervisor=Sett Bulk Supervisor +ConfirmUpdatePrice=Velg en øknings-/reduksjonssats +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Er du sikker på at du vil sette supervisor til %s valgte post(er)? +ConfirmUpdatePriceQuestion=Er du sikker på at du vil oppdatere prisen på %s valgte post(er)? CategTypeNotFound=Ingen merketype funnet for denne post-typen +Rate=Sats +SupervisorNotFound=Supervisor ikke funnet CopiedToClipboard=Kopiert til utklippstavlen InformationOnLinkToContract=Dette beløpet er bare summen av alle linjene i kontrakten. Ingen tidsbruk tas i betraktning. ConfirmCancel=Er du sikker på at du vil avbryte EmailMsgID=E-post MsgID +EmailDate=E-post dato +SetToStatus=Set to status %s SetToEnabled=Sett til aktivert SetToDisabled=Sett til deaktivert ConfirmMassEnabling=bekreftelse av masseaktivering @@ -1169,11 +1196,17 @@ CanceledHidden=Kansellert skjult CanceledShown=Kansellert vist Terminate=Terminer Terminated=Terminert -AddLineOnPosition=Add line on position (at the end if empty) -ConfirmAllocateCommercial=Assign sales representative confirmation -ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? -CommercialsAffected=Sales representatives affected -CommercialAffected=Sales representative affected -YourMessage=Din melding +AddLineOnPosition=Legg til linje på posisjon (på slutten hvis tom) +ConfirmAllocateCommercial=Tildel salgsrepresentant bekreftelse +ConfirmAllocateCommercialQuestion=Er du sikker på at du vil tilordne %s valgte post(er)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Din beskjed YourMessageHasBeenReceived=Meldingen din er mottatt. Vi vil svare eller kontakte deg så snart som mulig. UrlToCheck=URL for å sjekke +Automation=Automasjon +CreatedByEmailCollector=Laget av e-postsamler +CreatedByPublicPortal=Laget fra offentlig portal +UserAgent=Brukeragent +InternalUser=Intern bruker +ExternalUser=Ekstern bruker diff --git a/htdocs/langs/nb_NO/members.lang b/htdocs/langs/nb_NO/members.lang index a461ba8ceda..92a0d669a39 100644 --- a/htdocs/langs/nb_NO/members.lang +++ b/htdocs/langs/nb_NO/members.lang @@ -7,7 +7,7 @@ Members=Medlemmer ShowMember=Bis medlemskort UserNotLinkedToMember=Brukeren er ikke knyttet til noe medlem ThirdpartyNotLinkedToMember=Tredjepart ikke knyttet til et medlem -MembersTickets=Membership address sheet +MembersTickets=Medlems-adresseark FundationMembers=Organisasjons-medlemmer ListOfValidatedPublicMembers=Liste over validerte offentlige medlemmer ErrorThisMemberIsNotPublic=Dette medlemet er ikke offentlig @@ -15,12 +15,13 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Et annet medlem (navn: %s, inn ErrorUserPermissionAllowsToLinksToItselfOnly=Av sikkerhetsgrunner må du ha tilgang til å redigere alle brukere for å kunne knytte et medlem til en bruker som ikke er ditt. SetLinkToUser=Lenke til en Dolibarr bruker SetLinkToThirdParty=Lenke til en Dolibarr tredjepart -MembersCards=Generation of cards for members +MemberCountersArePublic=Tellere til gyldige medlemmer er offentlige +MembersCards=Generering av kort for medlemmer MembersList=Liste over medlemmer MembersListToValid=Liste over medlems-utkast (må valideres) MembersListValid=Liste over gyldige medlemmer -MembersListUpToDate=List of valid members with up-to-date contribution -MembersListNotUpToDate=List of valid members with out-of-date contribution +MembersListUpToDate=Liste over gyldige medlemmer med oppdatert bidrag +MembersListNotUpToDate=Liste over gyldige medlemmer med utdatert bidrag MembersListExcluded=Liste over ekskluderte medlemmer MembersListResiliated=Liste over terminerte medlemmer MembersListQualified=Liste over kvalifiserte medlemmer @@ -28,14 +29,16 @@ MenuMembersToValidate=Utkast medlemmer MenuMembersValidated=Validerte medlemmer MenuMembersExcluded=Ekskluderte medlemmer MenuMembersResiliated=Terminerte medlemmer -MembersWithSubscriptionToReceive=Members with contribution to receive -MembersWithSubscriptionToReceiveShort=Contributions to receive -DateSubscription=Date of membership -DateEndSubscription=End date of membership -EndSubscription=End of membership -SubscriptionId=Contribution ID -WithoutSubscription=Without contribution +MembersWithSubscriptionToReceive=Medlemmer med bidrag å motta +MembersWithSubscriptionToReceiveShort=Bidrag å motta +DateSubscription=Dato for medlemskap +DateEndSubscription=Sluttdato for medlemskap +EndSubscription=Slutt på medlemskap +SubscriptionId=Bidrags-ID +WithoutSubscription=Uten medlemskap +WaitingSubscription=Medlemskap venter MemberId=Medlems-ID +MemberRef=Medlem Ref NewMember=Nytt medlem MemberType=Medlemstype MemberTypeId=Medlemstype-ID @@ -43,9 +46,9 @@ MemberTypeLabel=Medlemstype etikett MembersTypes=Medlemstyper MemberStatusDraft=Kladd (må valideres) MemberStatusDraftShort=Kladd -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=Validert (venter på bidrag) MemberStatusActiveShort=Validert -MemberStatusActiveLate=Contribution expired +MemberStatusActiveLate=Bidrag utløpt MemberStatusActiveLateShort=Utløpt MemberStatusPaid=Abonnement oppdatert MemberStatusPaidShort=Oppdatert @@ -56,9 +59,9 @@ MemberStatusResiliatedShort=Terminert MembersStatusToValid=Utkast medlemmer MembersStatusExcluded=Ekskluderte medlemmer MembersStatusResiliated=Terminerte medlemmer -MemberStatusNoSubscription=Validated (no contribution required) +MemberStatusNoSubscription=Validert (ingen bidrag kreves) MemberStatusNoSubscriptionShort=Validert -SubscriptionNotNeeded=No contribution required +SubscriptionNotNeeded=Ingen bidrag kreves NewCotisation=Nytt bidrag PaymentSubscription=Ny bidragsinnbetaling SubscriptionEndDate=Abonnementets sluttdato @@ -70,17 +73,23 @@ MemberTypeDeleted=Medlemstype slettet MemberTypeCanNotBeDeleted=Medlemstype kan ikke slettes NewSubscription=Nytt bidrag NewSubscriptionDesc=Med dette skjemaet kan du ta opp abonnement som nytt medlem av organisasjonen. Hvis du ønsker å fornye abonnementet (hvis du allerede er medlem), vennligst kontakt organisasjonsstyret i stedet ved e-post %s. -Subscription=Contribution -Subscriptions=Contributions +Subscription=Bidrag +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Hvilket som helst beløp +CanEditAmountShortForValues=anbefales, uansett beløp +MembershipDuration=Varighet +GetMembershipButtonLabel=Join +Subscriptions=Bidrag SubscriptionLate=Forsinket -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions +SubscriptionNotReceived=Bidrag aldri mottatt +ListOfSubscriptions=Liste over bidrag SendCardByMail=Send kortet via epost AddMember=Opprett medlem NoTypeDefinedGoToSetup=Ingen medlemstyper definert. Gå til Oppsett - Medlemstyper NewMemberType=Ny medlemstype WelcomeEMail=Velkomst e-post -SubscriptionRequired=Contribution required +SubscriptionRequired=Bidrag kreves DeleteType=Slett VoteAllowed=Stemming tillatt Physical=Individuell @@ -88,62 +97,62 @@ Moral=Selskap MorAndPhy=Selskap og individ Reenable=Aktiver på nytt ExcludeMember=Ekskluder et medlem -Exclude=Exclude +Exclude=Ekskluder ConfirmExcludeMember=Er du sikker på at du vil ekskludere dette medlemmet? ResiliateMember=Terminer et medlem ConfirmResiliateMember=Er du sikker på at du vil terminere dette medlemmet? DeleteMember=Slette et medlem -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +ConfirmDeleteMember=Er du sikker på at du vil slette dette medlemmet (Sletting av et medlem vil slette alle hans bidrag)? DeleteSubscription=Slett et abonnement -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteSubscription=Er du sikker på at du vil slette dette bidraget? Filehtpasswd=htpasswd fil ValidateMember=Valider medlem ConfirmValidateMember=Er du sikker på at du vil validere dette medlemmet? FollowingLinksArePublic=Følgende lenker er åpne sider som ikke er beskyttet av noen Dolibarr-tillatelse. De er ikke formaterte sider, gitt som eksempel for å vise hvordan du kan vise en medlemsdatabase. PublicMemberList=Offentlig medlemsliste -BlankSubscriptionForm=Public self-registration form +BlankSubscriptionForm=Offentlig selvregistreringsskjema BlankSubscriptionFormDesc=Dolibarr kan gi deg en offentlig URL/nettside for å tillate eksterne besøkende å be om å abonnere på firmaet. Hvis en elektronisk betalingsmodul er aktivert, kan et betalingsformular også gis automatisk. EnablePublicSubscriptionForm=Aktiver det offentlige nettstedet med selvinnmeldingsskjema ForceMemberType=Tving medlemstype -ExportDataset_member_1=Members and contributions +ExportDataset_member_1=Medlemmer og bidrag ImportDataset_member_1=Medlemmer LastMembersModified=Siste %s endrede medlemmer -LastSubscriptionsModified=Latest %s modified contributions +LastSubscriptionsModified=Siste %s modifiserte bidrag String=Streng Text=Tekst Int=Int DateAndTime=Dato og tid PublicMemberCard=Offentlig medlemskort -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +SubscriptionNotRecorded=Bidrag ikke registrert +AddSubscription=Opprett bidrag +ShowSubscription=Vis bidrag # Label of email templates SendingAnEMailToMember=Sende informasjons-epost til medlem SendingEmailOnAutoSubscription=Sende epost ved automatisk registrering SendingEmailOnMemberValidation=Sende epost ved validering av nytt medlem -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions +SendingEmailOnNewSubscription=Sender epost om nytt bidrag +SendingReminderForExpiredSubscription=Sender påminnelse for utløpte bidrag SendingEmailOnCancelation=Sende epost ved avbestilling SendingReminderActionComm=Sender påminnelse for agenda-hendelse # Topic of email templates YourMembershipRequestWasReceived=Ditt medlemskap ble mottatt. YourMembershipWasValidated=Ditt medlemskap ble godkjent -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder +YourSubscriptionWasRecorded=Ditt nye bidrag ble registrert +SubscriptionReminderEmail=bidragspåminnelse YourMembershipWasCanceled=Ditt medlemskap ble kansellert CardContent=Innhold på medlemskortet ditt # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Din forespørsel om medlemskap ble mottatt.

    ThisIsContentOfYourMembershipWasValidated=Ditt medlemskap ble validert med følgende opplysninger:

    -ThisIsContentOfYourSubscriptionWasRecorded=Det nye abonnementet ditt ble registrert.

    +ThisIsContentOfYourSubscriptionWasRecorded=Vi vil informere deg om at ditt nye abonnement ble registrert. Vennligst finn din faktura vedlagt her.

    ThisIsContentOfSubscriptionReminderEmail=Vi vil fortelle deg at abonnementet ditt er i ferd med å utløpe eller allerede er utløpt (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Vi håper du vil fornye det.

    ThisIsContentOfYourCard=Dette er et sammendrag av informasjonen vi har om deg. Ta kontakt med oss hvis noe er feil.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Emnet i e-post som mottas i tilfelle auto-inskripsjon av en gjest DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Emnet i e-post som mottas i tilfelle auto-inskripsjon av en gjest -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Epostmal som skal brukes til å sende epost til et medlem ved automatisk medlemsregistrering DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=E-postmal til bruk for å sende e-post til medlem på medlemsvalidering -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Email template to use to send email to a member on new contribution recording -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Email template to use to send email reminder when contribution is about to expire +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Epostmal som skal brukes til å sende epost til et medlem på registrering av nytt bidrag +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Epostmal som skal brukes til å sende epostpåminnelse når bidraget er i ferd med å utløpe DescADHERENT_EMAIL_TEMPLATE_CANCELATION=E-postmal til bruk for å sende e-post til et medlem ved kansellering av medlemskap DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=E-postmal som skal brukes til å sende e-post om ekskludering av medlemmer DescADHERENT_MAIL_FROM=Avsenderadresse for automatisk e-post @@ -156,21 +165,21 @@ DescADHERENT_CARD_TEXT_RIGHT=Tekst trykt på medlemskort (høyrejustert) DescADHERENT_CARD_FOOTER_TEXT=Tekst trykt nederst på medlemskortene ShowTypeCard=Vis type '%s' HTPasswordExport=htpassword-fil generering -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +NoThirdPartyAssociatedToMember=Ingen tredjepart knyttet til dette medlemmet +MembersAndSubscriptions=Medlemmer og bidrag MoreActions=Komplementære tiltak ved opprettelse -MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution +MoreActionsOnSubscription=Utfyllende handling foreslått som standard ved registrering av et bidrag, også gjort automatisk ved online betaling av et bidrag MoreActionBankDirect=Opprett en direkteføring på bankkonto MoreActionBankViaInvoice=Opprett en faktura, og en betaling på bankkonto MoreActionInvoiceOnly=Lag en faktura uten betaling -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Generering av visittkort eller adresseark LinkToGeneratedPagesDesc=I dette skjermbildet kan du generere PDF-filer med visittkort for alle medlemmer eller et enkelt medlem. DocForAllMembersCards=Generer visittkort for alle medlemmer DocForOneMemberCards=Generer visittkort for et bestemt medlem DocForLabels=Generer adresseark -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution +SubscriptionPayment=Innbetaling av bidrag +LastSubscriptionDate=Dato for siste bidragsinnbetaling +LastSubscriptionAmount=Beløp for siste bidrag LastMemberType=Siste medlemstype MembersStatisticsByCountries=Medlemsstatistikk etter land MembersStatisticsByState=Medlemsstatistikk etter delstat/provins @@ -187,36 +196,39 @@ MembersByRegion=Dette skjermbildet viser deg statistikk over medlemmer etter reg MembersStatisticsDesc=Velg statistikk du ønsker å lese ... MenuMembersStats=Statistikk LastMemberDate=Siste medlemskapsdato -LatestSubscriptionDate=Latest contribution date +LatestSubscriptionDate=Siste bidragsdato MemberNature=Medlemmets art MembersNature=Medlemmenes art Public=Informasjonen er offentlig NewMemberbyWeb=Nytt medlem lagt til. Venter på godkjenning NewMemberForm=Skjema for nytt medlem -SubscriptionsStatistics=Contributions statistics -NbOfSubscriptions=Number of contributions -AmountOfSubscriptions=Amount collected from contributions +SubscriptionsStatistics=Bidragsstatistikk +NbOfSubscriptions=Antall bidrag +AmountOfSubscriptions=Beløp samlet inn fra bidrag TurnoverOrBudget=Omsetning (for et selskap) eller Budsjett (for en organisasjon) -DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Gå til online betalingsside +DefaultAmount=Standard bidragsbeløp +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Besøkende kan velge/redigere beløpet for sitt bidrag uavhengig av medlemstype +AmountIsLowerToMinimumNotice=Totalt forfall på %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Etter egenskap MembersStatisticsByProperties=Medlemsstatistikk etter egenskap -VATToUseForSubscriptions=VAT rate to use for contributionss -NoVatOnSubscription=No VAT for contributions -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for contribution line into invoice: %s +VATToUseForSubscriptions=MVA-sats til bruk for bidrag +NoVatOnSubscription=Ingen MVA for bidrag +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produkt brukt for bidragslinje til faktura: %s NameOrCompany=Navn eller firma -SubscriptionRecorded=Contribution recorded +SubscriptionRecorded=Bidrag registrert NoEmailSentToMember=Ingen epost sendt til medlem EmailSentToMember=E-post sendt til medlem på %s -SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired contributions -SendReminderForExpiredSubscription=Send reminder by email to members when contribution is about to expire (parameter is number of days before end of membership to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5') +SendReminderForExpiredSubscriptionTitle=Send påminnelse på e-post for utløpte bidrag +SendReminderForExpiredSubscription=Send påminnelse på e-post til medlemmer når bidraget er i ferd med å utløpe (parameteren er antall dager før slutten av medlemskapet for å sende påminnelsen. Det kan være en liste over dager atskilt med semikolon, for eksempel '10;5;0;-5 ') MembershipPaid=Medlemskap betalt for gjeldende periode (til %s) YouMayFindYourInvoiceInThisEmail=Du kan finne fakturaen din vedlagt denne e-posten XMembersClosed=%s medlem(mer) lukket XExternalUserCreated=%s ekstern(e) bruker(e) opprettet ForceMemberNature=Tving medlemmets natur (enkeltperson eller selskap) -CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. -CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +CreateDolibarrLoginDesc=Opprettelsen av en brukerpålogging for medlemmer lar dem koble seg til applikasjonen. Avhengig av autorisasjonene som er gitt, vil de for eksempel kunne konsultere eller endre filen selv. +CreateDolibarrThirdPartyDesc=En tredjepart er den juridiske enheten som vil bli brukt på fakturaen hvis du bestemmer deg for å generere faktura for hvert bidrag. Du vil kunne opprette den senere under prosessen med å registrere bidraget. MemberFirstname=Medlemmets fornavn MemberLastname=Medlemmets etternavn +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/nb_NO/modulebuilder.lang b/htdocs/langs/nb_NO/modulebuilder.lang index 5a82b38b2d0..e27845018d3 100644 --- a/htdocs/langs/nb_NO/modulebuilder.lang +++ b/htdocs/langs/nb_NO/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Modul-ID ModuleBuilderDesc=Dette verktøyet må kun brukes av erfarne brukere eller utviklere. Det gir verktøy for å bygge eller redigere din egen modul. Dokumentasjon for alternativ manuell utvikling er her . EnterNameOfModuleDesc=Skriv inn navnet på modulen/applikasjonen som skal opprettes uten mellomrom. Bruk store bokstaver for å skille ord (for eksempel: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal lages uten mellomrom. Bruk store bokstaver for å skille ord (for eksempel: Mitt objekt, elev, lærer...). CRUD-klassefilen, men også API-fil, sider for å liste/legge til/redigere/slette objekter og SQL-filer vil bli generert. +EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal lages uten mellomrom. Bruk store bokstaver for å skille ord (for eksempel: Mitt objekt, elev, lærer...). CRUD-klassefilen, sidene som skal listes/legges til/redigeres/slettes objektet og SQL-filene vil bli generert. EnterNameOfDictionaryDesc=Skriv inn navnet på ordboken som skal lages uten mellomrom. Bruk store bokstaver for å skille ord (For eksempel: MyDico...). Klassefilen, men også SQL-filen vil bli generert. ModuleBuilderDesc2=Sti hvor moduler genereres/redigeres (første katalog for eksterne moduler definert i %s): %s ModuleBuilderDesc3=Genererte/redigerbare moduler funnet: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=En modul detekteres som "redigerbar" når filen%s %s? Dette vil endre kode i PHP klassen, og fjerne kolonne fra tabelldefinisjon av objekt. NotNull=Ikke NULL NotNullDesc=1=Sett databasen til IKKE NULL, 0=Tillat nullverdier, -1=Tillat nullverdier ved å tvinge verdien til NULL hvis tom ('' eller 0) @@ -81,15 +86,16 @@ IsAMeasure=Er en måling DirScanned=Mappe skannet NoTrigger=Ingen utløser NoWidget=Ingen widget -GoToApiExplorer=API-utforsker +ApiExplorer=API-utforsker ListOfMenusEntries=Liste over menyoppføringer ListOfDictionariesEntries=Liste over ordbokinnføringer ListOfPermissionsDefined=Liste over definerte tillatelser SeeExamples=Se eksempler her -EnabledDesc=Betingelse for å ha dette feltet aktivt (Eksempler: 1 eller $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Er feltet synlig? (Eksempler: 0=Aldri synlig, 1=Synlig på liste og opprett/oppdater/vis skjemaer, 2=Synlig bare på liste, 3=Synlig bare på opprett/oppdater/vis skjema (ikke liste), 4=Synlig bare på liste og oppdaterings-/visningsskjema (ikke opprett), 5=Synlig på listens sluttformular (ikke opprett, ikke oppdatering).

    Bruk av negativ verdi betyr at feltet ikke vises som standard på listen, men kan velges for visning).

    Det kan være et uttrykk, for eksempel:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Vis på PDF +EnabledDesc=Betingelse for å ha dette feltet aktivt..

    Eksempler:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Er feltet synlig? (Eksempler: 0=Aldri synlig, 1=Synlig på liste og opprett/oppdater/vis skjemaer, 2=Kun synlig på liste, 3=Synlig på opprette/oppdater/vis kun skjema (ikke liste), 4=Synlig på liste og oppdater/vis kun skjema (ikke opprett), 5=Synlig kun på listesluttvisningsskjema (ikke opprett, ikke oppdater)

    Bruk av en negativ verdi betyr at feltet ikke vises som standard på listen, men kan velges for visning). +ItCanBeAnExpression=Det kan være et uttrykk. Eksempel:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday','define_holiday')?1:5 +DisplayOnPdfDesc=Vis dette feltet på kompatible PDF-dokumenter, du kan administrere posisjon med "Posisjon"-feltet.
    For dokument :
    0 = ikke vist
    1 = visning
    2 = vis kun hvis ikke tom

    For dokumentlinjer:
    0 = ikke vist
    1 = vist i en kolonne
    3 = visning i linjebeskrivelseskolonne etter beskrivelse
    4 = vises i beskrivelseskolonne etter beskrivelsen bare hvis den ikke er tom +DisplayOnPdf=På PDF IsAMeasureDesc=Kan verdien av feltet bli kumulert for å få en total i listen? (Eksempler: 1 eller 0) SearchAllDesc=Er feltet brukt til å søke fra hurtigsøkingsverktøyet? (Eksempler: 1 eller 0) SpecDefDesc=Skriv inn all dokumentasjon du vil gi med modulen din, som ikke allerede er definert av andre faner. Du kan bruke .md eller bedre, .asciidoc-syntaksen. @@ -97,7 +103,7 @@ LanguageDefDesc=I disse filene skriver du inn alle nøklene og oversettelsene fo MenusDefDesc=Her definerer du menyene som tilbys av modulen din DictionariesDefDesc=Her defineres ordbøkene levert av modulen din PermissionsDefDesc=Her definerer du de nye tillatelsene som tilbys av modulen din -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s. +MenusDefDescTooltip=Menyene som leveres av din modul/applikasjon er definert i matrisen $this->menyer i modulbeskrivelsesfilen. Du kan redigere denne filen manuelt eller bruke den innebygde editoren.

    Merk: Når de er definert (og modulen reaktivert), er menyene også synlige i menyredigeringsprogrammet som er tilgjengelig for administratorbrukere på %s. DictionariesDefDescTooltip=Ordbøkene levert av din modul/applikasjon er definert i matrisen $ this->; ordbøker i beskrivelsesfilen for modulen. Du kan redigere denne filen manuelt eller bruke den innebygde editoren.

    Merk: Når definert (og modul er blitt aktivert på nytt), er ordbøker også synlige i konfigurasjonsområdet for administratorbrukere på %s. PermissionsDefDescTooltip=Tillatelsene som er gitt av modulen/applikasjonen, er definert i array $this->righs i filen for modulbeskrivelsen. Du kan redigere denne filen manuelt eller bruke den innebygde editoren.

    Merk: Når definert (og modul reaktivert), er tillatelser synlige i standardrettighetsoppsettet %s. HooksDefDesc=Definer egenskapen module_parts ['hooks'] i modulbeskrivelsen, konteksten av hooks du vil administrere (liste over sammenhenger kan bli funnet ved et søk på ' initHooks('i kjernekode).
    Rediger hooks-filen for å legge til kode for dine tilkoblede funksjoner (hookable funksjoner kan bli funnet ved et søk på ' executeHooks ' i kjernekode). @@ -130,26 +136,32 @@ UseSpecificEditorURL = Bruk en bestemt editor-URL UseSpecificFamily = Bruk en bestemt familie UseSpecificAuthor = Bruk en bestemt forfatter UseSpecificVersion = Bruk en bestemt innledende versjon -IncludeRefGeneration=Referansen til objektet må genereres automatisk av tilpassede nummereringsregler +IncludeRefGeneration=Referansen til dette objektet må genereres automatisk av tilpassede nummereringsregler IncludeRefGenerationHelp=Kryss av for dette hvis du vil inkludere kode for å administrere genereringen av referansen automatisk ved å bruke tilpassede nummereringsregler -IncludeDocGeneration=Jeg ønsker å generere noen dokumenter fra maler for objektet +IncludeDocGeneration=Jeg vil at funksjonen skal generere noen dokumenter (PDF, ODT) fra maler for dette objektet IncludeDocGenerationHelp=Hvis du krysser av for dette, genereres det kode for å legge til en "Generer dokument" -boksen på posten. -ShowOnCombobox=Vis verdi i kombinasjonsboks +ShowOnCombobox=Vis verdi i kombinasjonsbokser KeyForTooltip=Nøkkel for verktøytips CSSClass=CSS for å redigere/opprette skjema CSSViewClass=CSS for leseskjema CSSListClass=CSS for liste NotEditable=Ikke redigerbar ForeignKey=Fremmed nøkkel -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=Hvis verdien av dette feltet garanteret må finnes i en annen tabell. Skriv inn en verdi som samsvarer med syntaks her: tablename.parentfieldtocheck +TypeOfFieldsHelp=Eksempel:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' betyr at vi legger til en + knapp etter kombinasjonsboksen for å opprette posten
    'filter' er en sql tilstand, eksempel: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=Dette er typen av feltet/attributtet. AsciiToHtmlConverter=Ascii til HTML konverter AsciiToPdfConverter=Ascii til PDF konverter TableNotEmptyDropCanceled=Tabellen er ikke tom. Drop har blitt kansellert. ModuleBuilderNotAllowed=Modulbyggeren er tilgjengelig, men ikke tillatt for brukeren din. ImportExportProfiles=Importer og eksporter profiler -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. -WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated -LinkToParentMenu=Parent menu (fk_xxxxmenu) -ListOfTabsEntries=List of tab entries +ValidateModBuilderDesc=Sett dette til 1 hvis du vil ha metoden $this->validateField() til objektet som kalles for å validere innholdet i feltet under innsetting eller oppdatering. Sett 0 hvis det ikke er nødvendig med validering. +WarningDatabaseIsNotUpdated=Advarsel: Databasen oppdateres ikke automatisk, du må ødelegge tabeller og deaktivere-aktivere modulen for å få tabeller gjenskapt +LinkToParentMenu=Overordnet meny (fk_xxxxmenu) +ListOfTabsEntries=Liste over faneoppføringer TabsDefDesc=Definer fanene som leveres av modulen din her -TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +TabsDefDescTooltip=Fanene som tilbys av din modul/applikasjon er definert i arrayet $this->tabs i modulbeskrivelsesfilen. Du kan redigere denne filen manuelt eller bruke den innebygde editoren. +BadValueForType=Feil verdi for type %s +DefinePropertiesFromExistingTable=Definer egenskaper fra en eksisterende tabell +DefinePropertiesFromExistingTableDesc=Hvis en tabell i databasen (for objektet som skal opprettes) allerede eksisterer, kan du bruke den til å definere egenskapene til objektet. +DefinePropertiesFromExistingTableDesc2=Hold tom hvis tabellen ikke eksisterer ennå. Kodegeneratoren vil bruke forskjellige typer felt for å bygge et eksempel på en tabell som du kan redigere senere. diff --git a/htdocs/langs/nb_NO/mrp.lang b/htdocs/langs/nb_NO/mrp.lang index 2ede940ab54..c3948610887 100644 --- a/htdocs/langs/nb_NO/mrp.lang +++ b/htdocs/langs/nb_NO/mrp.lang @@ -9,10 +9,10 @@ LatestBOMModified=Siste %s endrede materialkostnader LatestMOModified=Siste %s endrede produksjonsordre Bom=Materialkostnader (BOM) BillOfMaterials=Materialkostnader (BOM) -BillOfMaterialsLines=Bill of Materials lines +BillOfMaterialsLines=Stykkliste-linjer BOMsSetup=Oppsett av BOM-modulen  -ListOfBOMs=Liste over Materialkostnader - BOM -ListOfManufacturingOrders=Liste over produksjonsordre +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Produksjonsordrer NewBOM=Ny BOM ProductBOMHelp=Vare å produsere (eller demontere) med denne stykklisten.
    Merk: Produkter med egenskapen 'Varensart' = 'Råvarer' er ikke synlige i denne listen. BOMsNumberingModules=BOM nummereringsmaler @@ -27,12 +27,13 @@ ConfirmCloneBillOfMaterials=Er du sikker på at du vil klone BOM%s? ConfirmCloneMo=Er du sikker på at du vil klone produksjonsordren %s? ManufacturingEfficiency=Produksjonseffektivitet ConsumptionEfficiency=Forbrukseffektivitet -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +Consumption=Consumption +ValueOfMeansLoss=Verdi på 0,95 betyr et gjennomsnitt på 5%% tap under produksjonen eller demonteringen ValueOfMeansLossForProductProduced=Verdi på 0,95 betyr et gjennomsnitt på 5%% tap av produsert produkt DeleteBillOfMaterials=Slett BOM DeleteMo=Slett produksjonsordre ConfirmDeleteBillOfMaterials=Er du sikker på at du vil slette BOM? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? +ConfirmDeleteMo=Er du sikker på at du vil slette denne produksjonsordren? MenuMRP=Produksjonsordrer NewMO=Ny produksjonsordre QtyToProduce=Antall å produsere @@ -56,7 +57,7 @@ WarehouseForProduction=Varehus for produksjon CreateMO=Lag MO ToConsume=Å forbruke ToProduce=Å produsere -ToObtain=To obtain +ToObtain=For å oppnå QtyAlreadyConsumed=Antall allerede forbrukt QtyAlreadyProduced=Antall allerede produsert QtyRequiredIfNoLoss=Antall påkrevd hvis det ikke finnes tap (Produksjonseffektivitet er 100%%) @@ -69,8 +70,8 @@ ForAQuantityToConsumeOf=For en mengde å demontere av %s ConfirmValidateMo=Er du sikker på at du vil validere denne produksjonsordren? ConfirmProductionDesc=Ved å klikke på '%s', vil du validere forbruket og/eller produksjonen for angitte mengder. Dette vil også oppdatere lagermengde og registrere lagerebevegelser. ProductionForRef=Produksjon av %s -CancelProductionForRef=Cancellation of product stock decrementation for product %s -TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement +CancelProductionForRef=Kansellering av lagerreduksjon for vare %s +TooltipDeleteAndRevertStockMovement=Slett linje og tilbakestill lagerbevegelse AutoCloseMO=Lukk produksjonsordren automatisk hvis mengder som skal konsumeres og produseres oppnås NoStockChangeOnServices=Ingen lagerendring på tjenester ProductQtyToConsumeByMO=Produktmengde som fremdeles skal forbrukes av åpen MO @@ -82,6 +83,7 @@ ProductsToProduce=Varer å produsere UnitCost=Enhetskostnad TotalCost=Totalkostnad BOMTotalCost=Kostnaden for å produsere denne stykklisten basert på kostnadene for hver mengde og vare som skal konsumeres (bruk kostpris hvis definert, ellers gjennomsnittlig vektet pris hvis definert, ellers den beste kjøpesummen) +BOMTotalCostService=Hvis modulen "Arbeidsstasjon" er aktivert og en arbeidsstasjon er definert som standard på linjen, så er beregningen "antall (omregnet til timer) x arbeidsstasjon ahr", ellers "antall (omregnet til timer) x kostpris for tjenesten" GoOnTabProductionToProduceFirst=Du må først ha startet produksjonen for å lukke en produksjonsordre (se fanen '%s'). Men du kan kansellere den. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Et sett kan ikke brukes i en BOM eller en MO Workstation=Arbeidsstasjon @@ -106,9 +108,13 @@ HumanMachine=Menneske/maskin WorkstationArea=Arbeidsstasjonsområde Machines=Maskiner THMEstimatedHelp=Denne verdien gjør det mulig å definere en prognosekostnad for varen -BOM=Bill Of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module -MOAndLines=Manufacturing Orders and lines -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +BOM=Stykklister(BOM) +CollapseBOMHelp=Du kan definere standardvisningen av detaljene i nomenklaturen i konfigurasjonen av stykklistemodulen +MOAndLines=Produksjonsordrer og linjer +MoChildGenerate=Generer underordnet MO +ParentMo=Overordnet MO +MOChild=Underordnet MO +BomCantAddChildBom=Nomenklaturen %s er allerede til stede i treet som fører til nomenklaturen %s +BOMNetNeeds = BOM Netto behov +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/nb_NO/oauth.lang b/htdocs/langs/nb_NO/oauth.lang index f043acab01d..81368517bff 100644 --- a/htdocs/langs/nb_NO/oauth.lang +++ b/htdocs/langs/nb_NO/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=En nøkkel ble generert og lagret i lokal database NewTokenStored=Nøkkel mottatt og lagret ToCheckDeleteTokenOnProvider=Klikk her for å hake av/slette autorisasjon lagret av %s OAuth-leverandør TokenDeleted=Nøkkel slettet -RequestAccess=Klikk her for forespørsel/fornyet adgang og motta ny nøkkel +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Klikk her for å slette nøkkel UseTheFollowingUrlAsRedirectURI=Bruk følgende URL som redirect-URL når du lager din legitimasjon hos din OAuth tilbyder -ListOfSupportedOauthProviders=Legg inn opplysninger fra din OAuth2-leverandør. Kun supporterte OAuth2-leverandører vises her. Dette oppsettet kan bli brukt av andre moduler som trenger OAuth2-autentisering -OAuthSetupForLogin=Side for å generere en OAuth-nøkkel +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Se forrige fane +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID og hemmelig spørsmål TOKEN_REFRESH=Nøkkeloppfriskning tilstede TOKEN_EXPIRED=Nøkkel utgått @@ -23,10 +24,13 @@ TOKEN_DELETE=Slett lagret nøkkel OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google ID OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Gå til denne siden og deretter "Påloggingsinformasjon" for å opprette OAuth-legitimasjon OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub ID OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Gå til denne siden og deretter "Registrer en ny søknad" for å opprette OAuth-legitimasjon +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/nb_NO/orders.lang b/htdocs/langs/nb_NO/orders.lang index 3b923557671..1d15cb60c15 100644 --- a/htdocs/langs/nb_NO/orders.lang +++ b/htdocs/langs/nb_NO/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=En ordre var allerede åpen knyttet til dette forslaget, så ingen annen ordre ble opprettet automatisk OrdersArea=Område for kundeordre SuppliersOrdersArea=Innkjøpsordreområde OrderCard=Ordrekort @@ -17,7 +18,7 @@ ToOrder=Lag ordre MakeOrder=Opprett ordre SupplierOrder=Innkjøpsordre SuppliersOrders=Innkjøpsordre -SaleOrderLines=Sales order lines +SaleOrderLines=Salgsordrelinjer PurchaseOrderLines=Innkjøpsordrelinjer SuppliersOrdersRunning=Nåværende innkjøpsordre CustomerOrder=Salgsordre @@ -68,8 +69,8 @@ CreateOrder=Opprett ordre RefuseOrder=Avvis ordre ApproveOrder=Godkjenn ordre Approve2Order=Godkjenn ordre (2. nivå) -UserApproval=User for approval -UserApproval2=User for approval (second level) +UserApproval=Bruker til godkjenning +UserApproval2=Bruker til godkjenning (andre nivå) ValidateOrder=Valider ordre UnvalidateOrder=Fjern validering på ordre DeleteOrder=Slett ordre @@ -104,8 +105,8 @@ ConfirmCancelOrder=Er du sikker på at du vil kansellere denne ordren? ConfirmMakeOrder=Er du sikker på at du vil bekrefte at du opprettet denne ordren %s? GenerateBill=Opprett faktura ClassifyShipped=Klassifiser levert -PassedInShippedStatus=classified delivered -YouCantShipThis=I can't classify this. Please check user permissions +PassedInShippedStatus=klassifisert levert +YouCantShipThis=Jeg kan ikke klassifisere dette. Vennligst sjekk brukertillatelser DraftOrders=Ordrekladder DraftSuppliersOrders=Innkjøpsordre-kladder OnProcessOrders=Ordre i behandling @@ -157,7 +158,7 @@ PDFEdisonDescription=En enkel ordremodell PDFProformaDescription=En komplett Proforma-fakturamal CreateInvoiceForThisCustomer=Fakturer ordrer CreateInvoiceForThisSupplier=Fakturer ordrer -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisReceptions=Fakturer mottak NoOrdersToInvoice=Ingen fakturerbare ordrer CloseProcessedOrdersAutomatically=Klassifiser alle valgte bestillinger "Behandlet". OrderCreation=Opprett ordre diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index 7304d845cb5..c797e66b27f 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -304,3 +304,24 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Lukk Autofill = Autofill + +# externalsite +ExternalSiteSetup=Oppsett av lenke til ekstern nettside +ExternalSiteURL=URL for eksternt nettsted for HTML iframe-innhold +ExternalSiteModuleNotComplete=Modulen Ekstern Side ble ikke riktig konfigurert. +ExampleMyMenuEntry=Meny overskrift + +# FTP +FTPClientSetup=Modul for oppsett av FTP- eller SFTP-klient +NewFTPClient=Nytt FTP / FTPS-tilkoblingsoppsett +FTPArea=FTP/FTPS-område +FTPAreaDesc=Dette skjermbildet viser en FTP et SFTP-server. +SetupOfFTPClientModuleNotComplete=Installasjonen av FTP- eller SFTP-klientmodulen ser ut til å være ufullstendig +FTPFeatureNotSupportedByYourPHP=Din PHP støtter ikke FTP- eller SFTP-funksjoner +FailedToConnectToFTPServer=Kunne ikke koble til serveren (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Kunne ikke logge inn på serveren med definert innlogging/passord +FTPFailedToRemoveFile=Klarte ikke å fjerne filen %s. +FTPFailedToRemoveDir=Kunne ikke fjerne katalogen %s : Kontroller tillatelser og at katalogen er tom. +FTPPassiveMode=Passiv modus +ChooseAFTPEntryIntoMenu=Velg et FTP/SFTP-nettsted fra menyen ... +FailedToGetFile=Kunne ikke hente filene %s diff --git a/htdocs/langs/nb_NO/partnership.lang b/htdocs/langs/nb_NO/partnership.lang index d7eae1e5d25..1d392e7af37 100644 --- a/htdocs/langs/nb_NO/partnership.lang +++ b/htdocs/langs/nb_NO/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Håndtering av partnerskap PartnershipDescription=Modul for Partnerskapshåndtering PartnershipDescriptionLong= Modul for Partnerskapshåndtering Partnership=Partnerskap +Partnerships=Partnerskap AddPartnership=Legg til partnerskap CancelPartnershipForExpiredMembers=Partnerskap: Avbryt partnerskap for medlemmer med utløpt abonnement PartnershipCheckBacklink=Partnerskap: Sjekk refererende tilbakekobling @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerskap: Sjekk refererende tilbakekobling # Menu # NewPartnership=Nytt partnerskap +NewPartnershipbyWeb= Partnerskapet ditt ble lagt til. ListOfPartnerships=Liste over partnerskap # diff --git a/htdocs/langs/nb_NO/paypal.lang b/htdocs/langs/nb_NO/paypal.lang index 1949a6a8eac..ad56fcb39a5 100644 --- a/htdocs/langs/nb_NO/paypal.lang +++ b/htdocs/langs/nb_NO/paypal.lang @@ -34,3 +34,4 @@ ARollbackWasPerformedOnPostActions=En tilbakerulling ble utført på alle postha ValidationOfPaymentFailed=Validering av betaling har feilet CardOwner=Kortholder PayPalBalance=Paypal kreditt +OnlineSubscriptionPaymentLine=Nettabonnement registrert på %s
    Betalt via %s
    Opprinnelig IP-adresse: %s
    Transaksjons-ID:1%s diff --git a/htdocs/langs/nb_NO/printing.lang b/htdocs/langs/nb_NO/printing.lang index 7796c6b913c..f71588a520d 100644 --- a/htdocs/langs/nb_NO/printing.lang +++ b/htdocs/langs/nb_NO/printing.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - printing Module64000Name=Ettklikksutskrift -Module64000Desc=Enable One click Printing System -PrintingSetup=Setup of One click Printing System -PrintingDesc=This module adds a Print button to various modules to allow documents to be printed directly to a printer with no need to open the document into another application. +Module64000Desc=Aktiver ett klikks utskriftssystem +PrintingSetup=Oppsett av Ett Klikks utskriftssystem +PrintingDesc=Denne modulen legger til en Skriv ut-knapp til ulike moduler for å tillate at dokumenter skrives ut direkte til en skriver uten behov for å åpne dokumentet i et annet program. MenuDirectPrinting=Ettklikks utskriftsjobber DirectPrint=Ettklikks utskrift PrintingDriverDesc=Oppsett av skrivervariabler diff --git a/htdocs/langs/nb_NO/productbatch.lang b/htdocs/langs/nb_NO/productbatch.lang index 5d42c684af5..9988c95c050 100644 --- a/htdocs/langs/nb_NO/productbatch.lang +++ b/htdocs/langs/nb_NO/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Lot/Serienummer: %s printEatby=Siste forbruksdato: %s printSellby=Siste salgsdato: %s printQty=Ant: %d +printPlannedWarehouse=Lager: %s AddDispatchBatchLine=Legg til en linje for holdbarhetsdato WhenProductBatchModuleOnOptionAreForced=Når modulen Lot/Serie er aktivert, er automatisk lagernedgang tvunget til å 'Redusere reelt lager ved fraktgodkjennelse' og automatisk økningsmodus er tvunget til å "Øke virkelige lagre ved manuell forsendelse til lager" og kan ikke redigeres. Andre alternativer kan defineres etter ønske. ProductDoesNotUseBatchSerial=Denne varen har ikke lot/serienummer @@ -24,13 +25,13 @@ ProductLotSetup=Oppsett av model Lot/serienmmer ShowCurrentStockOfLot=Vis gjeldende beholdning for vare/lot ShowLogOfMovementIfLot=Vis logg over bevegelser for vare/lot StockDetailPerBatch=Varedetaljer pr. lot -SerialNumberAlreadyInUse=Serial number %s is already used for product %s -TooManyQtyForSerialNumber=You can only have one product %s for serial number %s +SerialNumberAlreadyInUse=Serienummer %s er allerede brukt for vare%s +TooManyQtyForSerialNumber=Du kan bare ha en vare %s for serienummer %s ManageLotMask=Tilpasset maske CustomMasks=Mulighet for å definere en annen nummereringsmaske for hvert produkt -BatchLotNumberingModules=Numbering rule for automatic generation of lot number -BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product) -QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned +BatchLotNumberingModules=Nummereringsregel for automatisk generering av lotnummer +BatchSerialNumberingModules=Nummereringsregel for automatisk generering av serienummer (for varer med egenskap 1 unikt parti/serie for hvert produkt) +QtyToAddAfterBarcodeScan=Antall til %s for hver strekkode/parti/serie skannet LifeTime=Levetid (i dager) EndOfLife=End of life ManufacturingDate=Produksjonsdato @@ -42,5 +43,5 @@ HideLots=Skjul partier #Traceability - qc status OutOfOrder=I ustand InWorkingOrder=I fungerende stand -ToReplace=Replace -CantMoveNonExistantSerial=Error. You ask a move on a record for a serial that does not exists anymore. May be you take the same serial on same warehouse several times in same shipment or it was used by another shipment. Remove this shipment and prepare another one. +ToReplace=Erstatt +CantMoveNonExistantSerial=Feil. Du ber om et trekk på en post for en serie som ikke eksisterer lenger. Det kan være at du tar samme serie på samme lager flere ganger i samme forsendelse, eller den ble brukt av en annen forsendelse. Fjern denne forsendelsen og klargjør en ny. diff --git a/htdocs/langs/nb_NO/products.lang b/htdocs/langs/nb_NO/products.lang index aaa9dd1246c..8f600cd6051 100644 --- a/htdocs/langs/nb_NO/products.lang +++ b/htdocs/langs/nb_NO/products.lang @@ -43,7 +43,7 @@ ServicesOnSaleOnly=Tjenester kun til salgs ServicesOnPurchaseOnly=Tjenester kun for kjøp ServicesNotOnSell=Tjenester ikke til salgs og ikke for kjøp ServicesOnSellAndOnBuy=Tjenester for kjøp og salg -LastModifiedProductsAndServices=Latest %s products/services which were modified +LastModifiedProductsAndServices=Siste %s varer/tjenester som ble endret LastRecordedProducts=Siste %s registrerte varer LastRecordedServices=Siste %s registrerte tjenester CardProduct0=Vare @@ -262,7 +262,7 @@ Quarter1=1. kvartal Quarter2=2. kvartal Quarter3=3. kvartal Quarter4=4. kvartal -BarCodePrintsheet=Skriv strekkode +BarCodePrintsheet=Skriv ut strekkoder PageToGenerateBarCodeSheets=Med dette verktøyet kan du skrive ut ark med strekkode-klistremerker. Velg format på din klistremerkeside, type strekkode og verdi på strekkode, og klikk deretter på knappen %s . NumberOfStickers=Antall klistremerker som skal skrives ut på siden PrintsheetForOneBarCode=Skriv ut flere klistremerker for hver strekkode @@ -279,7 +279,7 @@ PriceByCustomer=Ulike priser for hver kunde PriceCatalogue=En enkelt salgspris for hver vare/tjeneste PricingRule=Regler for utsalgspriser AddCustomerPrice=Legg til pris for kunde -ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries +ForceUpdateChildPriceSoc=Sett samme pris på kundens datterselskaper PriceByCustomerLog=Logg over tidligere kundepriser MinimumPriceLimit=Minstepris kan ikke være lavere enn %s MinimumRecommendedPrice=Minimum anbefalt pris er: %s @@ -298,7 +298,7 @@ ComposedProductIncDecStock=Øk/minsk beholdning ved overordnet endring ComposedProduct=Sub-varer MinSupplierPrice=Laveste innkjøpspris MinCustomerPrice=Minste salgspris -NoDynamicPrice=No dynamic price +NoDynamicPrice=Ingen dynamisk pris DynamicPriceConfiguration=Dynamisk pris-konfigurering DynamicPriceDesc=Du kan definere matematiske formler for å beregne kunde- eller leverandørpriser. Slike formler kan bruke alle matematiske operatører, noen konstanter og variabler. Du kan definere variablene du vil bruke. Hvis variabelen trenger en automatisk oppdatering, kan du definere den eksterne nettadressen for å tillate Dolibarr å oppdatere verdien automatisk. AddVariable=Legg til variabel @@ -317,7 +317,7 @@ LastUpdated=Siste oppdatering CorrectlyUpdated=Korrekt oppdatert PropalMergePdfProductActualFile=Filer brukt for å legge til i PDF Azur er PropalMergePdfProductChooseFile=Velg PDF-filer -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=Inkludert varer/tjenester med taggen DefaultPriceRealPriceMayDependOnCustomer=Standardpris, virkelig pris avhenger av kunde WarningSelectOneDocument=Velg minst ett dokument DefaultUnitToShow=Enhet @@ -343,11 +343,11 @@ ProductSheet=Produktark ServiceSheet=Serviceark PossibleValues=Mulige verdier GoOnMenuToCreateVairants=Gå tilmenyen %s - %s for å forberede attributtvarianter (som farger, størrelse, ...) -UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers +UseProductFournDesc=Legg til en funksjon for å definere produktbeskrivelsen definert av leverandørene (for hver leverandørreferanse) i tillegg til beskrivelsen for kunder ProductSupplierDescription=Leverandørs beskrivelse av produktet -UseProductSupplierPackaging=Bruk emballasje på leverandørpriser (beregne mengder på nytt i henhold til emballasje som er angitt på leverandørpris når du legger til/oppdaterer linje i leverandørdokumenter) +UseProductSupplierPackaging=Bruk emballasje for priser avrundet til multipler for innkjøpspriser (beregn mengder i henhold til multipler satt på innkjøpspriser når du legger til/oppdaterer linje i leverandørdokumenter) PackagingForThisProduct=Emballasje -PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. +PackagingForThisProductDesc=Du vil automatisk kjøpe en multippel av dette antallet. QtyRecalculatedWithPackaging=Mengden på linjen ble beregnet på nytt i henhold til leverandøremballasje #Attributes @@ -399,31 +399,33 @@ ActionAvailableOnVariantProductOnly=Handling kun tilgjengelig på varianter av v ProductsPricePerCustomer=Varepriser per kunde ProductSupplierExtraFields=Ekstra attributter (leverandørpriser) DeleteLinkedProduct=Slett sub-produktet som er knyttet til kombinasjonen -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Enhetsbeløp som skal brukes til å oppdatere den vektede gjennomsnittsprisen PMPValue=Vektet gjennomsnittspris PMPValueShort=WAP mandatoryperiod=Obligatoriske perioder -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined -mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period -mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
    Note that the message is a warning and not a blocking error. -DefaultBOM=Default BOM -DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. +mandatoryPeriodNeedTobeSet=Merk: Periode (start- og sluttdato) må defineres +mandatoryPeriodNeedTobeSetMsgValidate=En tjeneste krever en start- og sluttperiode +mandatoryHelper=Kryss av for dette hvis du ønsker en melding til brukeren ved opprettelse/validering av faktura, kommersielt forslag, salgsordre uten å angi start- og sluttdato på linjer med denne tjenesten.
    Merk at meldingen er en advarsel og ikke en blokkeringsfeil. +DefaultBOM=Standard stykkliste (BOM) +DefaultBOMDesc=Standard stykkliste som anbefales å bruke for å produsere dette produktet. Dette feltet kan bare angis hvis produktets natur er '%s'. Rank=Rangering -MergeOriginProduct=Duplicate product (product you want to delete) -MergeProducts=Merge products -ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. -ProductsMergeSuccess=Products have been merged -ErrorsProductsMerge=Errors in products merge -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) -InventoryExtraFields= Extra Fields (inventory) -ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes -PuttingPricesUpToDate=Update prices with current known prices -PMPExpected=Expected PMP -ExpectedValuation=Expected Valuation -PMPReal=Real PMP -RealValuation=Real Valuation -ConfirmEditExtrafield = Select the extrafield you want modify -ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? -ModifyValueExtrafields = Modify value of an extrafield +MergeOriginProduct=Duplikatvare (vare du vil slette) +MergeProducts=Slå sammen varer +ConfirmMergeProducts=Er du sikker på at du vil slå sammen den valgte varen med det nåværende? Alle tilknyttede objekter (fakturaer, bestillinger, ...) flyttes til den aktuelle varen, hvoretter den valgte varen slettes. +ProductsMergeSuccess=Varene er slått sammen +ErrorsProductsMerge=Feil i varesammenslåing +SwitchOnSaleStatus=Slå på salgsstatus +SwitchOnPurchaseStatus=Slå på kjøpsstatus +UpdatePrice=Øk/reduser kundepris +StockMouvementExtraFields= Ekstra felt (lagerbevegelse) +InventoryExtraFields= Ekstra felt (beholdning) +ScanOrTypeOrCopyPasteYourBarCodes=Skann eller skriv eller kopier/lim inn strekkodene dine +PuttingPricesUpToDate=Oppdater priser med gjeldende kjente priser +PMPExpected=Forventet PMP +ExpectedValuation=Forventet verdivurdering +PMPReal=Ekte PMP +RealValuation=Virkelig verdivurdering +ConfirmEditExtrafield = Velg ekstrafeltet du vil endre +ConfirmEditExtrafieldQuestion = Er du sikker på at du vil endre dette ekstrafeltet? +ModifyValueExtrafields = Endre verdien for et ekstrafelt +OrProductsWithCategories=Eller varer med tagger/kategorier diff --git a/htdocs/langs/nb_NO/projects.lang b/htdocs/langs/nb_NO/projects.lang index 5e694e906dd..4c8575492ff 100644 --- a/htdocs/langs/nb_NO/projects.lang +++ b/htdocs/langs/nb_NO/projects.lang @@ -6,23 +6,24 @@ ProjectLabel=Prosjektetikett ProjectsArea=Prosjektområde ProjectStatus=Prosjektstatus SharedProject=Alle -PrivateProject=Assigned contacts +PrivateProject=Tildelte kontakter ProjectsImContactFor=Prosjekter som jeg eksplisitt er en kontakt for AllAllowedProjects=Alt prosjekter jeg kan lese (min + offentlig) AllProjects=Alle prosjekter -MyProjectsDesc=This view is limited to the projects that you are a contact for +MyProjectsDesc=Denne visningen er begrenset til prosjektene du er kontakt for ProjectsPublicDesc=Denne visningen presenterer alle prosjektene du har lov til å lese. TasksOnProjectsPublicDesc=Her vises alle prosjektoppgaver du har lov til å se ProjectsPublicTaskDesc=Denne visningen presenterer alle prosjekter og oppgaver du har lov til å lese. ProjectsDesc=Denne visningen presenterer alle prosjekter (dine brukertillatelser gir deg tillatelse til å vise alt). TasksOnProjectsDesc=Her vises alle prosjektoppgaver (dine brukerrettigheter gir deg adgang til å vise alt). -MyTasksDesc=This view is limited to the projects or tasks that you are a contact for +MyTasksDesc=Denne visningen er begrenset til prosjektene eller oppgavene du er kontakt for OnlyOpenedProject=Kun åpne prosjekter er synlige (prosjektkladder og lukkede prosjekter er ikke synlige). ClosedProjectsAreHidden=Lukkede prosjekter er ikke synlige TasksPublicDesc=Denne visningen presenterer alle prosjekter og oppgaver du har lov til å lese. TasksDesc=Denne visningen presenterer alle prosjekter og oppgaver (dine brukertillatelser gir deg tillatelse til å vise alt). AllTaskVisibleButEditIfYouAreAssigned=Alle oppgaver for kvalifiserte prosjekter er synlige, men du kan bare angi tid for oppgave som er tildelt til valgt bruker. Tilordne oppgave hvis du trenger å skrive inn tid på den. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +OnlyYourTaskAreVisible=Bare oppgaver som er tildelt deg er synlige. Hvis du trenger å legge inn tid på en oppgave og oppgaven ikke er synlig her, må du tilordne oppgaven til deg selv. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Oppgaver fra prosjekter ProjectCategories=Prosjekt etiketter/kategorier NewProject=Nytt prosjekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Leads-beløp i åpne prosjekter, etter sta OpportunitiesStatusForProjects=Leads-beløp i prosjekter, etter status ShowProject=Vis prosjekt ShowTask=Vis oppgave +SetThirdParty=Angi tredjepart SetProject=Sett prosjekt +OutOfProject=Ute av prosjekt NoProject=Ingen prosjekter definert NbOfProjects=Antall prosjekter NbOfTasks=Antall oppgaver @@ -122,7 +125,8 @@ ValidateProject=Valider prosjekt ConfirmValidateProject=Er du sikker på at du vil validere dette prosjektet? CloseAProject=Lukk prosjektet ConfirmCloseAProject=Er du sikker på at du vil lukke dette prosjektet? -AlsoCloseAProject=Lukk prosjekt også (hold det åpent hvis du fortsatt trenger å følge produksjonsoppgaver på det) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Åpne prosjekt ConfirmReOpenAProject=Er du sikker på at du vil gjenåpne dette prosjektet? ProjectContact=Kontaktpersoner for prosjektet @@ -140,7 +144,7 @@ NoTasks=Ingen oppgaver for dette prosjektet LinkedToAnotherCompany=Knyttet opp til annen tredjepart TaskIsNotAssignedToUser=Oppgave ikke tildelt bruker. Bruk knappen ' %s' for å tilordne oppgaven nå. ErrorTimeSpentIsEmpty=Tidsbruk er tom -TimeRecordingRestrictedToNMonthsBack=Time recording is restricted to %s months back +TimeRecordingRestrictedToNMonthsBack=Tidsregistrering er begrenset til %s måneder tilbake ThisWillAlsoRemoveTasks=Denne handlingen vil også slette alle oppgaver i prosjektet (%s oppgaver for øyeblikket), og all tidsregistrering slettes IfNeedToUseOtherObjectKeepEmpty=Dersom noen objekter (faktura, ordre, ...), tilhørende en annen tredjepart, må tilknyttes prosjektet, behold denne tom. Prosjektet kan da knyttes til flere tredjeparter. CloneTasks=Klon oppgaver @@ -165,7 +169,7 @@ OpportunityProbability=Lead sannsynlighet OpportunityProbabilityShort=Lead sansyn. OpportunityAmount=Lead beløp OpportunityAmountShort=Lead beløp -OpportunityWeightedAmount=Muligheter, vektet beløp +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Muligh. vektet beløp OpportunityAmountAverageShort=Gjennomsnittlig lead beløp OpportunityAmountWeigthedShort=Vektet lead beløp @@ -190,7 +194,7 @@ PlannedWorkload=Planlagt arbeidsmengde PlannedWorkloadShort=Arbeidsmengde ProjectReferers=Relaterte elementer ProjectMustBeValidatedFirst=Prosjektet må valideres først -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. +MustBeValidatedToBeSigned=%s må valideres først for å settes til Signert. FirstAddRessourceToAllocateTime=Tildel en brukerressurs som kontakt for prosjektet for å fordele tid InputPerDay=Tidsbruk pr. dag InputPerWeek=Tidsbruk pr. uke @@ -198,7 +202,7 @@ InputPerMonth=Forbruk pr. måned InputDetail=Inngangsdetalj TimeAlreadyRecorded=Dette tidsrommet er allerede registrert for denne oppgaven/dag og bruker %s ProjectsWithThisUserAsContact=Prosjekter med denne brukeren som kontakt -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=Prosjekter med denne kontakten TasksWithThisUserAsContact=Oppgaver tildelt denne brukeren ResourceNotAssignedToProject=Ikke tildelt til prosjekt ResourceNotAssignedToTheTask=Ikke tildelt oppgaven @@ -238,7 +242,7 @@ OppStatusPENDING=Venter OppStatusWON=Vunnet OppStatusLOST=Tapt Budget=Budsjett -AllowToLinkFromOtherCompany=Tillat å koble prosjekt fra annet firma

    Støttede verdier:
    - Hold tom: Kan lenke eventuelle prosjekt fra selskapet (standard)
    - "alle": Kan lenke eventuelle prosjekter, selv prosjekt fra andre selskaper
    - En liste over tredjeparts ID, separert med kommaer: Kan lenke alle definerte prosjekter fra disse tredjepartene (Eksempel: 123,4795,53)
    +AllowToLinkFromOtherCompany=Tillat å koble et element til et prosjekt av et annet selskap

    Støttede verdier:
    - Hold tomt: Kan koble elementer med alle prosjekter i samme selskap (standard)
    - "alle": Kan koble elementer med alle prosjekter, til og med prosjekter fra andre selskaper
    - En liste av tredjeparts-ID-er atskilt med komma: kan koble elementer til alle prosjekter til disse tredjepartene (eksempel: 123,4795,53) LatestProjects=Siste %s prosjekter LatestModifiedProjects=Siste %s endrede prosjekter OtherFilteredTasks=Andre filtrerte oppgaver @@ -259,9 +263,9 @@ TimeSpentInvoiced=Tidsbruk fakturert TimeSpentForIntervention=Tid brukt TimeSpentForInvoice=Tid brukt OneLinePerUser=Én linje per bruker -ServiceToUseOnLines=Tjeneste for bruk på linjer +ServiceToUseOnLines=Tjeneste som skal brukes på linjer som standard InvoiceGeneratedFromTimeSpent=Faktura %s er generert fra tid brukt på prosjekt -InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project +InterventionGeneratedFromTimeSpent=Intervensjon %s har blitt generert fra tid brukt på prosjektet ProjectBillTimeDescription=Sjekk om du legger inn timeliste på prosjektoppgaver, OG planlegger å generere faktura (er) fra timelisten for å fakturere kunden til prosjektet (ikke kryss av om du planlegger å opprette faktura som ikke er basert på innlagte timelister). Merk: For å generere faktura, gå til fanen 'Tidsbruk' av prosjektet og velg linjer du vil inkludere. ProjectFollowOpportunity=Følg mulighet ProjectFollowTasks=Følg oppgaver eller tidsbruk @@ -270,27 +274,28 @@ UsageOpportunity=Bruk: Mulighet UsageTasks=Bruk: Oppgaver UsageBillTimeShort=Bruk: Fakturer tid InvoiceToUse=Fakturamal som skal brukes -InterToUse=Draft intervention to use +InterToUse=Intervensjonstkast å bruke NewInvoice=Ny faktura NewInter=Ny intervensjon OneLinePerTask=Én linje per oppgave OneLinePerPeriod=Én linje per periode -OneLinePerTimeSpentLine=One line for each time spent declaration -AddDetailDateAndDuration=With date and duration into line description +OneLinePerTimeSpentLine=Én linje for hver tidsbrukserklæring +AddDetailDateAndDuration=Med dato og varighet i linjebeskrivelse RefTaskParent=Ref. forelderoppgave ProfitIsCalculatedWith=Fortjenesten beregnes ved å bruke AddPersonToTask=Legg også til i oppgaver UsageOrganizeEvent=Bruk: Hendelse Organisasjon PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klassifiser prosjektet som lukket når alle oppgavene er fullført (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Merk: eksisterende prosjekter med alle oppgaver på 100%%-fremdrift blir ikke berørt: du må lukke dem manuelt. Dette alternativet påvirker bare åpne prosjekter. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Merk: eksisterende prosjekter med alle oppgaver som allerede er satt til en fremdrift på 100%% vil ikke bli berørt: du må lukke dem manuelt. Dette alternativet påvirker kun åpne prosjekter. SelectLinesOfTimeSpentToInvoice=Velg linjer med tid brukt som ikke er fakturert, og massehandling "Generer faktura" for å fakturere dem ProjectTasksWithoutTimeSpent=Prosjektoppgaver uten tidsbruk -FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. -ProjectsHavingThisContact=Projects having this contact +FormForNewLeadDesc=Takk for at du fyller ut følgende skjema for å kontakte oss. Du kan også sende oss en epost direkte til %s . +ProjectsHavingThisContact=Prosjekter som har denne kontakten StartDateCannotBeAfterEndDate=Sluttdato kan ikke være før startdato -ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types +ErrorPROJECTLEADERRoleMissingRestoreIt="PROSJEKTLEDER"-rollen mangler eller har blitt deaktivert, vennligst gjenopprett i ordboken over kontakttyper LeadPublicFormDesc=Her kan du aktivere en offentlig side for å la potensielle kunder ta en første kontakt med deg fra et offentlig nettskjema EnablePublicLeadForm=Aktiver det offentlige skjemaet for kontakt NewLeadbyWeb=Din melding eller forespørsel er registrert. Vi vil svare eller kontakte deg snart. NewLeadForm=Nytt kontaktskjema LeadFromPublicForm=Online mulighet fra offentlig form +ExportAccountingReportButtonLabel=Få rapport diff --git a/htdocs/langs/nb_NO/propal.lang b/htdocs/langs/nb_NO/propal.lang index 3cd00be1a47..9e6a55c8600 100644 --- a/htdocs/langs/nb_NO/propal.lang +++ b/htdocs/langs/nb_NO/propal.lang @@ -54,7 +54,7 @@ NoDraftProposals=Ingen tilbudsutkast CopyPropalFrom=Opprett nytt tilbud ved å kopiere et eksisterende CreateEmptyPropal=Opprett et tomt tilbud eller fra listen over varer/tjenester DefaultProposalDurationValidity=Standard gyldighetstid for tilbud (dager) -DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal +DefaultPuttingPricesUpToDate=Som standard oppdater prisene med gjeldende kjente priser ved kloning av et tilbud UseCustomerContactAsPropalRecipientIfExist=Bruk kontakt/adresse med typen 'Kontakt tilbudsoppfølging' hvis det er definert, i stedet for tredjepartsadresse som mottakeradresse av tilbud ConfirmClonePropal=Er du sikker på at du vil klone tilbudet %s? ConfirmReOpenProp=Er du sikker på at du vil gjenåpne tilbudet %s? @@ -65,49 +65,54 @@ AvailabilityPeriod=Tilgjengelig forsinkelse SetAvailability=Sett tilgjengelig forsinkelse AfterOrder=etter bestilling OtherProposals=Andre tilbud + ##### Availability ##### AvailabilityTypeAV_NOW=Umiddelbar AvailabilityTypeAV_1W=1 uke AvailabilityTypeAV_2W=2 uker AvailabilityTypeAV_3W=3 uker AvailabilityTypeAV_1M=En måned -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representant for oppfølging av tilbud TypeContact_propal_external_BILLING=Kundekontakt faktura TypeContact_propal_external_CUSTOMER=Kundens tilbudsoppfølger TypeContact_propal_external_SHIPPING=Kundekontakt for levering + # Document models -DocModelAzurDescription=En komplett tilbudsmodell (gammel implementering av Cyan-mal) -DocModelCyanDescription=En komplett tilbudsmodell -DefaultModelPropalCreate=Standard modellbygging -DefaultModelPropalToBill=Standardmal når du lukker et tilbud (som skal faktureres) -DefaultModelPropalClosed=Standardmal når du lukker et tilbud (ufakturert) -ProposalCustomerSignature=Skriftlig aksept, firmastempel, dato og signatur -ProposalsStatisticsSuppliers=Leverandørs tilbudsstatistikk -CaseFollowedBy=Sak fulgt av -SignedOnly=Kun signert -NoSign=Sett til ikke signert -NoSigned=sett til ikke signert CantBeNoSign=kan ikke settes til ikke signert +CaseFollowedBy=Sak fulgt av ConfirmMassNoSignature=Bulk Ikke signert bekreftelse ConfirmMassNoSignatureQuestion=Er du sikker på at du vil sette de valgte postene til ikke signert ? -IsNotADraft=er ikke et utkast -PassedInOpenStatus=har blitt validert -Sign=Signer -Signed=signert -ConfirmMassValidation=Massevalider bekreftelse ConfirmMassSignature=Bekreftelse av bulksignatur -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? -ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=Tilbud-ID +ConfirmMassSignatureQuestion=Er du sikker på at du vil signere de valgte postene? +ConfirmMassValidation=Massevalider bekreftelse +ConfirmMassValidationQuestion=Er du sikker på at du vil validere de valgte postene? +ConfirmRefusePropal=Er du sikker på at du vil avslå dette tilbudet? +ContractSigned=Kontrakt signert +DefaultModelPropalClosed=Standardmal når du lukker et tilbud (ufakturert) +DefaultModelPropalCreate=Standard modellbygging +DefaultModelPropalToBill=Standardmal når du lukker et tilbud (som skal faktureres) +DocModelAzurDescription=En komplett tilbudsmodell (gammel implementering av Cyan-mal) +DocModelCyanDescription=En komplett tilbudsmodell +FichinterSigned=Intervensjon signert IdProduct=Vare-ID +IdProposal=Tilbud-ID +IsNotADraft=er ikke et utkast LineBuyPriceHT=Innkjøpspris beløp eksklusive avgift for linje -SignPropal=Accept proposal -RefusePropal=Refuse proposal +NoSign=Avvis +NoSigned=sett til ikke signert +PassedInOpenStatus=har blitt validert +PropalAlreadyRefused=Tilbudet er allerede avvist +PropalAlreadySigned=Tilbud er allerede akseptert +PropalRefused=Tilbudet ble avvist +PropalSigned=Tilbud akseptert +ProposalCustomerSignature=Skriftlig aksept, firmastempel, dato og signatur +ProposalsStatisticsSuppliers=Leverandørs tilbudsstatistikk +RefusePropal=Avslå tilbud Sign=Signer -NoSign=Sett til ikke signert -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Signer kontrakt +SignFichinter=Signer intervensjon +SignPropal=Godta tilbudet +Signed=signert +SignedOnly=Kun signert diff --git a/htdocs/langs/nb_NO/receptions.lang b/htdocs/langs/nb_NO/receptions.lang index 25df6e46845..44936b9bdcd 100644 --- a/htdocs/langs/nb_NO/receptions.lang +++ b/htdocs/langs/nb_NO/receptions.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=Vendor reception management (Create reception documents) -ReceptionsSetup=Vendor Reception setup +ReceptionDescription=Administrasjon av leverandørmottak (Opprett mottaksdokumenter) +ReceptionsSetup=Leverandørmottak oppsett RefReception=Mottak ref. Reception=Mottak Receptions=Mottak @@ -24,14 +24,15 @@ ReceptionsAndReceivingForSameOrder=Mottak og kvitteringer for denne bestillingen ReceptionsToValidate=Mottak til validering StatusReceptionCanceled=Kansellert StatusReceptionDraft=Kladd -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionValidated=Validert (varer som skal mottas eller allerede er mottatt) +StatusReceptionValidatedToReceive=Validert (varer å motta) +StatusReceptionValidatedReceived=Validert (varer mottatt) StatusReceptionProcessed=Behandlet StatusReceptionDraftShort=Kladd StatusReceptionValidatedShort=Validert StatusReceptionProcessedShort=Behandlet ReceptionSheet=Mottaksskjema +ValidateReception=Valider mottak ConfirmDeleteReception=Er du sikker på at du vil slette dette mottaket? ConfirmValidateReception=Er du sikker på at du vil validere dette mottaket med referanse %s? ConfirmCancelReception=Er du sikker på at du vil avbryte dette mottaket? @@ -39,7 +40,7 @@ StatsOnReceptionsOnlyValidated=Statistikk utført på validerte mottak. Dato bru SendReceptionByEMail=Send mottak via e-post SendReceptionRef=Innlevering av mottak %s ActionsOnReception=Hendelser i mottak -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. +ReceptionCreationIsDoneFromOrder=For øyeblikket opprettes et nytt mottak fra innkjøpsordren. ReceptionLine=Mottakslinje ProductQtyInReceptionAlreadySent=Produktkvantitet fra åpne salgsordre som allerede er sendt ProductQtyInSuppliersReceptionAlreadyRecevied=Varekvantitet fra åpen leverandørordre som allerede er mottatt @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Nummereringsmodul for mottak ReceptionsReceiptModel=Dokumentmaler for mottak NoMorePredefinedProductToDispatch=Ingen flere forhåndsdefinerte varer som skal sendes ReceptionExist=Et mottak finnes -ByingPrice=Innkjøpspris -ReceptionBackToDraftInDolibarr=Reception %s back to draft -ReceptionClassifyClosedInDolibarr=Reception %s classified Closed -ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open +ReceptionBackToDraftInDolibarr=Mottak %s tilbake til utkast +ReceptionClassifyClosedInDolibarr=Mottak %s klassifisert Stengt +ReceptionUnClassifyCloseddInDolibarr=Mottak %s gjenåpne diff --git a/htdocs/langs/nb_NO/recruitment.lang b/htdocs/langs/nb_NO/recruitment.lang index aa5a6c616f8..4812b611299 100644 --- a/htdocs/langs/nb_NO/recruitment.lang +++ b/htdocs/langs/nb_NO/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-postrekruttering ToUseAGenericEmail=For å bruke en generisk e-post. Hvis ikke definert, vil e-posten til rekrutteringsansvarlig bli brukt NewCandidature=Ny applikasjon ListOfCandidatures=Liste over applikasjoner -RequestedRemuneration=Ønsket godtgjørelse -ProposedRemuneration=Tilbudt godtgjørelse +Remuneration=Lønn +RequestedRemuneration=Ønsket lønn +ProposedRemuneration=Foreslått lønn ContractProposed=Kontraktforslag ContractSigned=Kontrakt signert ContractRefused=Kontrakten avvist RecruitmentCandidature=Applikasjon JobPositions=Stillinger RecruitmentCandidatures=Applikasjoner -InterviewToDo=Intervju som skal gjennomføres +InterviewToDo=Kontakter å følge AnswerCandidature=Søknadssvar YourCandidature=Din søknad YourCandidatureAnswerMessage=Takk for søknaden.
    ... diff --git a/htdocs/langs/nb_NO/salaries.lang b/htdocs/langs/nb_NO/salaries.lang index 77f763efbd7..bb698ea40d8 100644 --- a/htdocs/langs/nb_NO/salaries.lang +++ b/htdocs/langs/nb_NO/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Regnskapskonto brukt til tredjepartsbrukere -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Regnskapskontoen som er definert på brukerkort, vil kun bli brukt til bruk av Subledger regnskap. Denne vil bli brukt til hovedboken og som standardverdi for Subledger-regnskap hvis dedikert bruker-regnskapskonto ikke er definert. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Regnskapskonto som standard for lønnsutbetalinger CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=La som standard alternativet "Opprett automatisk en total betaling" være tomt når du oppretter lønn Salary=Lønn diff --git a/htdocs/langs/nb_NO/stocks.lang b/htdocs/langs/nb_NO/stocks.lang index 6ad2315b946..f0230b8431c 100644 --- a/htdocs/langs/nb_NO/stocks.lang +++ b/htdocs/langs/nb_NO/stocks.lang @@ -265,6 +265,7 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Lager-ID WarehouseRef=Lager Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Startet ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requ StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Innstillinger +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/nb_NO/stripe.lang b/htdocs/langs/nb_NO/stripe.lang index f617b449aae..8094f39ad1f 100644 --- a/htdocs/langs/nb_NO/stripe.lang +++ b/htdocs/langs/nb_NO/stripe.lang @@ -61,6 +61,7 @@ DeleteACard=Slett kort ConfirmDeleteCard=Er du sikker på at du vil slette dette Kreditt- eller debetkortet? CreateCustomerOnStripe=Opprett kunde på Stripe CreateCardOnStripe=Lag kort på Stripe +CreateBANOnStripe=Opprett bank på Stripe ShowInStripe=Vis i Stripe StripeUserAccountForActions=Brukerkonto til bruk for e-postvarsling av noen Stripe-hendelser (Stripe-utbetalinger) StripePayoutList=Liste over Stripe utbetalinger @@ -69,3 +70,5 @@ ToOfferALinkForLiveWebhook=Link til oppsett av Stripe WebHook for oppkall av IPN PaymentWillBeRecordedForNextPeriod=Betalingen blir registrert for neste periode. ClickHereToTryAgain=Klikk her for å prøve igjen ... CreationOfPaymentModeMustBeDoneFromStripeInterface=På grunn av sterke regler for godkjenning av kunder, må opprettelse av et kort gjøres fra Stripe backoffice. Du kan klikke her for å slå på Stripe kundeoppføring: %s +TERMINAL_LOCATION=Plassering (adresse) for terminaler +RequestDirectDebitWithStripe=Be om direktedebet med Stripe diff --git a/htdocs/langs/nb_NO/suppliers.lang b/htdocs/langs/nb_NO/suppliers.lang index 25a282834b2..0245c9d43d3 100644 --- a/htdocs/langs/nb_NO/suppliers.lang +++ b/htdocs/langs/nb_NO/suppliers.lang @@ -4,6 +4,7 @@ SuppliersInvoice=Leverandørfaktura SupplierInvoices=Leverandørfakturaer ShowSupplierInvoice=Vis leverandørfaktura NewSupplier=Ny leverandør +NewSupplierInvoice = Ny leverandørfaktura History=Historikk ListOfSuppliers=Liste over leverandører ShowSupplier=Vis leverandør @@ -47,10 +48,10 @@ BuyerName=Kjøpernavn AllProductServicePrices=Alle vare-/tjenestepriser AllProductReferencesOfSupplier=Alle referanser fra leverandøren BuyingPriceNumShort=Leverandørpriser -RepeatableSupplierInvoice=Template supplier invoice +RepeatableSupplierInvoice=Leverandørfaktura-mal RepeatableSupplierInvoices=Mal leverandørfakturaer RepeatableSupplierInvoicesList=Mal leverandørfakturaer -RecurringSupplierInvoices=Recurring supplier invoices -ToCreateAPredefinedSupplierInvoice=In order to create template supplier invoice, you must create a standard invoice, then, without validating it, click on the "%s" button. -GeneratedFromSupplierTemplate=Generated from supplier invoice template %s -SupplierInvoiceGeneratedFromTemplate=Supplier invoice %s Generated from supplier invoice template %s +RecurringSupplierInvoices=Gjentakende leverandørfakturaer +ToCreateAPredefinedSupplierInvoice=For å opprette mal leverandørfaktura må du opprette en standardfaktura, og deretter, uten å validere den, klikk på "%s"-knappen. +GeneratedFromSupplierTemplate=Generert fra leverandørfaktura-mal %s +SupplierInvoiceGeneratedFromTemplate=Leverandørfaktura %s Generert fra leverandørfaktura-mal %s diff --git a/htdocs/langs/nb_NO/ticket.lang b/htdocs/langs/nb_NO/ticket.lang index 203e5da2ac4..f3aefbb6a07 100644 --- a/htdocs/langs/nb_NO/ticket.lang +++ b/htdocs/langs/nb_NO/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Slett supportsedler Permission56004=Administrer supportsedler Permission56005=Se billetter til alle tredjeparter (ikke effektive for eksterne brukere, alltid begrenset til tredjepart de er avhengige av) +Tickets=Supportsedler TicketDictType=Billett - Typer TicketDictCategory=Billett - Grupper TicketDictSeverity=Billett - Alvorlighetsgrader @@ -90,8 +91,8 @@ TicketPublicAccess=Et offentlig grensesnitt som ikke krever identifikasjon er ti TicketSetupDictionaries=Typen av billett, alvorlighetsgrad og analytiske koder kan konfigureres fra ordbøker TicketParamModule=Oppsett av modulvariabler TicketParamMail=Epostoppsett -TicketEmailNotificationFrom=Avsender e-post for billettsvar -TicketEmailNotificationFromHelp=Avsender e-post for billettsvar sendt fra Dolibarr +TicketEmailNotificationFrom=Avsender e-post for varsling om svar +TicketEmailNotificationFromHelp=Avsender-e-post som skal brukes til å sende varslings-epost når et svar er gitt inne på backoffice. For eksempel noreply@example.com TicketEmailNotificationTo=Gi beskjed om opprettelse av billett til denne e-postadressen TicketEmailNotificationToHelp=Hvis tilstede, vil denne e-postadressen bli varslet om en billettoppretting TicketNewEmailBodyLabel=Tekstmelding sendt etter å ha opprettet en billett @@ -100,7 +101,7 @@ TicketParamPublicInterface=Oppsett av offentlig grensesnitt TicketsEmailMustExist=Krever en eksisterende epostadresse for å opprette en supportseddel TicketsEmailMustExistHelp=I det offentlige grensesnittet må epostadressen allerede finnes i databasen for å kunne opprette en ny supportseddel. TicketCreateThirdPartyWithContactIfNotExist=Spør navn og firmanavn for ukjente e-poster. -TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. +TicketCreateThirdPartyWithContactIfNotExistHelp=Sjekk om det finnes en tredjepart eller en kontakt for e-posten du har skrevet inn. Hvis ikke, spør om et navn og et firmanavn for å opprette en tredjepart med kontakt. PublicInterface=Offentlig grensesnitt TicketUrlPublicInterfaceLabelAdmin=Alternativ nettadresse for offentlig grensesnitt TicketUrlPublicInterfaceHelpAdmin=Det er mulig å definere et alias til webserveren og dermed gjøre tilgjengelig det offentlige grensesnittet med en annen nettadresse (serveren må fungere som en proxy på denne nye nettadressen) @@ -140,15 +141,17 @@ TicketPublicNotificationNewMessageDefaultEmail=E-postvarsler til (oppdatere) TicketPublicNotificationNewMessageDefaultEmailHelp=Send en e-post til denne adressen for hver nye meldingsvarsling hvis billetten ikke har en bruker tildelt den, eller hvis brukeren ikke har noen kjent e-post. TicketsAutoReadTicket=Merk automatisk billetten som lest (når den er opprettet fra backoffice) TicketsAutoReadTicketHelp=Merk automatisk billetten som lest når den opprettes fra backoffice. Når billetten opprettes fra det offentlige grensesnittet, forblir billetten med statusen "Ikke lest". -TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): -TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. -TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): -TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. -TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket -TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. -TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketsDelayBeforeFirstAnswer=En ny billett bør få et første svar før (timer): +TicketsDelayBeforeFirstAnswerHelp=Hvis en ny billett ikke har fått svar etter denne tidsperioden (i timer), vil et viktig advarselsikon vises i listevisningen. +TicketsDelayBetweenAnswers=En uløst billett skal ikke være inaktiv i løpet av (timer): +TicketsDelayBetweenAnswersHelp=Hvis en uavklart billett som allerede har mottatt svar ikke har hatt ytterligere interaksjon etter denne tidsperioden (i timer), vil et advarselsikon vises i listevisningen. +TicketsAutoNotifyClose=Varsle automatisk tredjepart når du lukker en billett +TicketsAutoNotifyCloseHelp=Når du lukker en billett, vil det bli foreslått å sende en melding til en av tredjeparts kontakter. Ved massestenging vil en melding bli sendt til en kontakt fra tredjeparten knyttet til billetten. +TicketWrongContact=Forutsatt at kontakt ikke er en del av gjeldende billettkontakter. E-post ikke sendt. TicketChooseProductCategory=Produktkategori for billettstøtte TicketChooseProductCategoryHelp=Velg produktkategori for billettstøtte. Dette vil bli brukt til å automatisk knytte en kontrakt til en billett. +TicketUseCaptchaCode=Bruk grafisk kode (CAPTCHA) når du oppretter en billett +TicketUseCaptchaCodeHelp=Legger til CAPTCHA-verifisering når du oppretter en ny billett. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=Supportseddel er nå tildelt TicketChangeType=Endre type TicketChangeCategory=Endre analytisk kode TicketChangeSeverity=Endre alvorlighetsgrad -TicketAddMessage=Legg til en melding -AddMessage=Legg til en melding +TicketAddMessage=Legg til privat melding MessageSuccessfullyAdded=Supportseddel lagt til TicketMessageSuccessfullyAdded=Melding lagt til TicketMessagesList=Meldingsliste @@ -204,8 +206,8 @@ TicketSeverity=Alvorlighetsgrad ShowTicket=Se supportseddel RelatedTickets=Relaterte supportsedler TicketAddIntervention=Opprett intervensjon -CloseTicket=Lukk|Løs billett -AbandonTicket=Forlat billett +CloseTicket=Lukk|Løs +AbandonTicket=Forlat CloseATicket=Lukk|Løs en billett ConfirmCloseAticket=Bekreft lukking av supportseddel ConfirmAbandonTicket=Bekrefter du lukkingen av billetten til status 'Forlatt' @@ -219,18 +221,17 @@ SendMessageByEmail=Send melding via epost TicketNewMessage=Ny melding ErrorMailRecipientIsEmptyForSendTicketMessage=Mottaker er tom. Ingen epost sendt TicketGoIntoContactTab=Vennligst gå inn på "Kontakter" -fanen for å velge -TicketMessageMailIntro=Introduksjon +TicketMessageMailIntro=Meldingsoverskrift TicketMessageMailIntroHelp=Denne teksten legges bare til i begynnelsen av eposten og vil ikke bli lagret. -TicketMessageMailIntroLabelAdmin=Introduksjonstekst til alle billettsvar TicketMessageMailIntroText=Hei,
    Et nytt svar er lagt til en billett som du følger. Her er meldingen:
    TicketMessageMailIntroHelpAdmin=Denne teksten vil bli satt inn før svaret når du svarer på en billett fra Dolibarr -TicketMessageMailSignature=Signatur -TicketMessageMailSignatureHelp=Denne teksten er bare lagt til i slutten av eposten og vil ikke bli lagret. -TicketMessageMailSignatureText=Melding sendt av %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatur på svar-epost -TicketMessageMailSignatureHelpAdmin=Denne teksten vil bli satt inn etter svarmeldingen. +TicketMessageMailFooter=Meldingsbunntekst +TicketMessageMailFooterHelp=Denne teksten legges bare til på slutten av meldingen som sendes på e-post og vil ikke bli lagret. +TicketMessageMailFooterText=Melding sendt av %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Denne teksten vil bli satt inn etter svarmeldingen. TicketMessageHelp=Kun denne teksten blir lagret i meldingslisten på supportseddelen. TicketMessageSubstitutionReplacedByGenericValues=Substitusjonsvariabler erstattes av generiske verdier. +ForEmailMessageWillBeCompletedWith=For e-postmeldinger sendt til eksterne brukere, vil meldingen fylles ut med TimeElapsedSince=Tid forløpt siden TicketTimeToRead=Tid forløpt før lesing TicketTimeElapsedBeforeSince=Tid som har gått før/siden @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=En ny melding ble lagt ut på billett TicketAssignedToYou=Supportseddel tildelt TicketAssignedEmailBody=Du har blitt tildelt supportseddel # %s av %s MarkMessageAsPrivate=Merk meldingen som privat +TicketMessageSendEmailHelp=En e-post vil bli sendt til alle tildelte kontakter (interne kontakter, men også eksterne kontakter bortsett fra hvis alternativet "%s" er merket) TicketMessagePrivateHelp=Denne meldingen vises ikke til eksterne brukere TicketEmailOriginIssuer=Utsteder ved opprettelse av supportsedlene InitialMessage=Innledende melding @@ -260,9 +262,9 @@ TicketNotNotifyTiersAtClose=Ingen relatert kontakt Unread=Ulest TicketNotCreatedFromPublicInterface=Ikke tilgjengelig. Billett ble ikke opprettet fra offentlig grensesnitt. ErrorTicketRefRequired=Billettreferansenavn kreves -TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. -TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketsDelayForFirstResponseTooLong=Det har gått for lang tid siden billettåpningen uten noe svar. +TicketsDelayFromLastResponseTooLong=Det har gått for lang tid siden siste svar på denne billetten. +TicketNoContractFoundToLink=Det ble ikke funnet noen kontrakt som ble automatisk knyttet til denne billetten. Vennligst koble en kontrakt manuelt. TicketManyContractsLinked=Mange kontrakter er automatisk knyttet til denne billetten. Sørg for å bekrefte hvilken som skal velges. # @@ -291,12 +293,12 @@ TicketNewEmailBody=Dette er en automatisk epost for å bekrefte at du har regist TicketNewEmailBodyCustomer=Dette er en automatisk epost for å bekrefte at en ny supportseddel nettopp er opprettet i kontoen din. TicketNewEmailBodyInfosTicket=Informasjon for å overvåke supportseddelen TicketNewEmailBodyInfosTrackId=Billettsporingsnummer: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=Du kan se fremdriften til billetten ved å klikke på følgende lenke TicketNewEmailBodyInfosTrackUrlCustomer=Du kan se fremdriften til supportseddelen i det spesifikke grensesnittet ved å klikke på følgende lenke -TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=Du kan se historien til denne billetten ved å klikke på følgende lenke TicketEmailPleaseDoNotReplyToThisEmail=Vennligst ikke svar direkte på denne eposten! Bruk koblingen til å svare via grensesnittet. TicketPublicInfoCreateTicket=Dette skjemaet gir deg mulighet til å registrere en supportseddel i vårt styringssystem. -TicketPublicPleaseBeAccuratelyDescribe=Vennligst beskriv problemet nøyaktig. Gi så mye informasjon som mulig slik at vi kan identifisere forespørselen din riktig. +TicketPublicPleaseBeAccuratelyDescribe=Vennligst beskriv spørsmålet ditt nøyaktig. Gi mest mulig informasjon slik at vi kan identifisere forespørselen din på riktig måte. TicketPublicMsgViewLogIn=Vennligst oppgi supportseddel sporings-ID TicketTrackId=Offentlig sporings-ID OneOfTicketTrackId=En av sporings-IDene dine @@ -315,10 +317,10 @@ NewUser=Ny bruker NumberOfTicketsByMonth=Antall billetter per måned NbOfTickets=Antall billetter # notifications -TicketCloseEmailSubjectCustomer=Ticket closed -TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. -TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) -TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: +TicketCloseEmailSubjectCustomer=Billett stengt +TicketCloseEmailBodyCustomer=Dette er en automatisk melding for å varsle deg om at billett %s nettopp har blitt stengt. +TicketCloseEmailSubjectAdmin=Billett stengt - Réf %s (offentlig billett-ID %s) +TicketCloseEmailBodyAdmin=En billett med ID #%s har nettopp blitt stengt, se informasjon: TicketNotificationEmailSubject=Supportseddel%s oppdatert TicketNotificationEmailBody=Dette er en automatisk melding for å varsle deg om at billetten %s nettopp er oppdatert TicketNotificationRecipient=Meldingsmottaker @@ -346,7 +348,7 @@ BoxTicketLastXDays=Antall nye billetter etter dager de siste %s dagene BoxTicketLastXDayswidget = Antall nye billetter etter dager de siste X dagene BoxNoTicketLastXDays=Ingen nye billetter de siste %s dagene BoxNumberOfTicketByDay=Antall nye billetter etter dag -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=Antall billetter kontra lukkede billetter (i dag) TicketCreatedToday=Billett opprettet i dag TicketClosedToday=Billetter lukket i dag -KMFoundForTicketGroup=We found topics and FAQs that may answers your question, thanks to check them before submitting the ticket +KMFoundForTicketGroup=Vi fant emner og vanlige spørsmål som kan svare på spørsmålet ditt, takk for at du sjekker dem før du sender inn billetten diff --git a/htdocs/langs/nb_NO/trips.lang b/htdocs/langs/nb_NO/trips.lang index cd875412e8b..eb9eae41925 100644 --- a/htdocs/langs/nb_NO/trips.lang +++ b/htdocs/langs/nb_NO/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Vis utgiftsrapport -Trips=Reiseregninger -TripsAndExpenses=Reiseregninger -TripsAndExpensesStatistics=Reiseregninger - statistikk -TripCard=Skjema for reiseregninger +AUTHOR=Registrert av +AUTHORPAIEMENT=Betalt av AddTrip=Opprett reiseregning -ListOfTrips=Liste over reiseregninger -ListOfFees=Oversikt over avgifter -TypeFees=Avgiftstyper -ShowTrip=Vis utgiftsrapport -NewTrip=Ny reiseregning -LastExpenseReports=Siste %s utgiftsrapporter +AllExpenseReport=Alle typer kostnadsrapporter AllExpenseReports=Alle utgiftsrapporter -CompanyVisited=Selskap/organisasjon besøkt -FeesKilometersOrAmout=Beløp eller kilometer -DeleteTrip=Slett reiseregning -ConfirmDeleteTrip=Er du sikker på at du vil slette denne utgiftsrapporten? -ListTripsAndExpenses=Liste over reiseregninger -ListToApprove=Venter på godkjenning -ExpensesArea=Område for reiseregninger +AnyOtherInThisListCanValidate=Person som skal informeres for validering av forespørselen. +AttachTheNewLineToTheDocument=Fest linjen til et opplastet dokument +AucuneLigne=Ingen reiseregning er opprettet enda +BrouillonnerTrip=Endre reiseregning til "kladd" +byEX_DAY=etter dag (begrensning til %s) +byEX_EXP=etter linje (begrensning til %s) +byEX_MON=etter måned (begrensning til %s) +byEX_YEA=etter år (begrensning til %s) +CANCEL_USER=Slettet av +CarCategory=Kjøretøyskategori ClassifyRefunded=Klassifisert 'refundert' +CompanyVisited=Selskap/organisasjon besøkt +ConfirmBrouillonnerTrip=Er du sikker på at du vil endre status på denne utgiftsrapporten til "utkast"? +ConfirmCancelTrip=Er du sikker på at du vil kansellere denne utgiftsrapporten? +ConfirmCloneExpenseReport=Er du sikker på at du vil klone denne utgiftsrapporten? +ConfirmDeleteTrip=Er du sikker på at du vil slette denne utgiftsrapporten? +ConfirmPaidTrip=Er du sikker på at du vil endre status på denne utgiftsrapporten til "betalt"? +ConfirmRefuseTrip=Er du sikker på at du vil avvise denne utgiftsrapporten? +ConfirmSaveTrip=Er du sikker på at du vil validere denne utgiftsrapporten? +ConfirmValideTrip=Er du sikker på at du vil godkjenne denne utgiftsrapporten? +DATE_CANCEL=Kansellert dato +DATE_PAIEMENT=Betalt dato +DATE_REFUS=Avvist dato +DATE_SAVE=Godkjennelsesdato +DefaultCategoryCar=Standard transportmetode +DefaultRangeNumber=Standard område nummer +DeleteTrip=Slett reiseregning +ErrorDoubleDeclaration=Du har opprettet en annen reiseregning i overlappende tidsperiode +Error_EXPENSEREPORT_ADDON_NotDefined=Feil, regelen for utgiftsrapport-nummerering ref ble ikke definert i oppsett av modulen 'Utgiftsrapport' +ExpenseRangeOffset=Offset-beløp: %s +expenseReportCatDisabled=Kategori deaktivert - se c_exp_tax_cat ordbok +expenseReportCoef=Koeffisient +expenseReportCoefUndefined=(verdi ikke definert) +expenseReportOffset=Forskyvning +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Område deaktivert - se c_exp_tax_range bibliotek +expenseReportRangeFromTo=fra %d til %d +expenseReportRangeMoreThan=mer enn %d +expenseReportTotalForFive=Eksempel med d = 5 +ExpenseReportApplyTo=Gjelder +ExpenseReportApproved=En utgiftsrapport ble godkjent +ExpenseReportApprovedMessage=Utgiftsrapporten %s ble godkjent.
    - Bruker: %s
    - Godkjent av: %s
    Klikk her for å vise utgiftsrapporten: %s +ExpenseReportCanceled=En utgiftsrapport ble kansellert +ExpenseReportCanceledMessage=Utgiftsrapporten %s ble kansellert.
    - Bruker: %s
    - Avlyst av: %s
    - Årsak til kansellering: %s
    Klikk her for å vise utgiftsrapporten: %s +ExpenseReportConstraintViolationError=Maks beløp overskredet (regel %s): %s er høyere enn %s (overskridelse forbudt) +ExpenseReportConstraintViolationWarning=Maks beløp overskredet (regel %s): %s er høyere enn %s (overskridelse autorisert) +ExpenseReportDateEnd=Utløpsdato +ExpenseReportDateStart=Startdato +ExpenseReportDomain=Domenet skal gjelde +ExpenseReportIkDesc=Du kan endre beregningen av kilometerkostnad etter kategori og rekkevidde etter slik de tidligere er definert. d er avstanden i kilometer +ExpenseReportLimitAmount=Maks beløp +ExpenseReportLimitOn=Beløpsgrense på +ExpenseReportLine=Linje i reiseregningen +ExpenseReportPaid=En utgiftsrapport ble betalt +ExpenseReportPaidMessage=Utgiftsrapporten %s er betalt.
    - Bruker: %s
    - Betalt av: %s
    Klikk her for å vise utgiftsrapporten: %s +ExpenseReportPayment=Betaling av utgiftsrapport +ExpenseReportRef=Ref. utgiftsrapport +ExpenseReportRefused=En utgiftsrapport ble avvist +ExpenseReportRefusedMessage=Utgiftsrapporten %s ble avvist.
    - Bruker: %s
    - Avvist av: %s
    - Årsak til avvisning: %s
    Klikk her for å vise utgiftsrapporten: %s +ExpenseReportRestrictive=Overskridelse forbudt +ExpenseReportRuleErrorOnSave=Feil: %s +ExpenseReportRuleSave=Utgiftsrapportregel lagret +ExpenseReportRulesDesc=Du kan definere maksbeløpsregler for utgiftsrapporter. Disse reglene vil bli brukt når en ny utgift legges til en utgiftsrapport ExpenseReportWaitingForApproval=En ny reiseregning er sendt inn for godkjenning ExpenseReportWaitingForApprovalMessage=En ny kostnadsrapport er sendt og venter på godkjenning.
    - Bruker: %s
    - Periode: %s
    Klikk her for å validere: %s ExpenseReportWaitingForReApproval=En utgiftsrapport er blitt sendt inn for ny godkjenning ExpenseReportWaitingForReApprovalMessage=En kostnadsrapport er sendt og venter på re-godkjenning.
    %s, du nektet å godkjenne kostnadsrapporten av denne årsak: %s.
    En ny versjon har blitt foreslått og venter på godkjenning.
    - Bruker: %s
    - Periode: %s
    Klikk her for å validere: %s -ExpenseReportApproved=En utgiftsrapport ble godkjent -ExpenseReportApprovedMessage=Utgiftsrapporten %s ble godkjent.
    - Bruker: %s
    - Godkjent av: %s
    Klikk her for å vise utgiftsrapporten: %s -ExpenseReportRefused=En utgiftsrapport ble avvist -ExpenseReportRefusedMessage=Utgiftsrapporten %s ble avvist.
    - Bruker: %s
    - Avvist av: %s
    - Årsak til avvisning: %s
    Klikk her for å vise utgiftsrapporten: %s -ExpenseReportCanceled=En utgiftsrapport ble kansellert -ExpenseReportCanceledMessage=Utgiftsrapporten %s ble kansellert.
    - Bruker: %s
    - Avlyst av: %s
    - Årsak til kansellering: %s
    Klikk her for å vise utgiftsrapporten: %s -ExpenseReportPaid=En utgiftsrapport ble betalt -ExpenseReportPaidMessage=Utgiftsrapporten %s er betalt.
    - Bruker: %s
    - Betalt av: %s
    Klikk her for å vise utgiftsrapporten: %s -TripId=Reiseregnings - ID -AnyOtherInThisListCanValidate=Person som skal informeres for validering av forespørselen. -TripSociete=Firmainformasjon -TripNDF=Informasjon om reiseregning -PDFStandardExpenseReports=Standardmal for å generere PDF av reiseregning -ExpenseReportLine=Linje i reiseregningen -TF_OTHER=Annet -TF_TRIP=Transport -TF_LUNCH=Lunsj -TF_METRO=Trikk/bybane -TF_TRAIN=Tog -TF_BUS=Buss -TF_CAR=Bil -TF_PEAGE=Toll -TF_ESSENCE=Drivstoff -TF_HOTEL=Hotell -TF_TAXI=Taxi -EX_KME=Kilometerkostnader -EX_FUE=Drivstoff CV -EX_HOT=Hotell -EX_PAR=Parkering CV -EX_TOL=Toll CV -EX_TAX=Ulike avgifter -EX_IND=Betingelse for transportabonnement -EX_SUM=Vedlikeholdsforsyning -EX_SUO=Kontorrekvisita -EX_CAR=Bilutleie -EX_DOC=Dokumentasjon -EX_CUR=Kunder mottar -EX_OTR=Andre ytelser -EX_POS=Porto -EX_CAM=CV vedlikehold og reparasjon -EX_EMM=Ansatte måltid -EX_GUM=Gjestemåltid -EX_BRE=Frokost -EX_FUE_VP=Drivstoff PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parkering PV -EX_CAM_VP=PV vedlikehold og reparasjon -DefaultCategoryCar=Standard transportmetode -DefaultRangeNumber=Standard område nummer -UploadANewFileNow=Last opp et nytt dokument nå -Error_EXPENSEREPORT_ADDON_NotDefined=Feil, regelen for utgiftsrapport-nummerering ref ble ikke definert i oppsett av modulen 'Utgiftsrapport' -ErrorDoubleDeclaration=Du har opprettet en annen reiseregning i overlappende tidsperiode -AucuneLigne=Ingen reiseregning er opprettet enda -ModePaiement=Betalingsmåte -VALIDATOR=Bruker som er ansvarlig for godkjenning -VALIDOR=Godkjent av -AUTHOR=Registrert av -AUTHORPAIEMENT=Betalt av -REFUSEUR=Avvist av -CANCEL_USER=Slettet av -MOTIF_REFUS=Grunn -MOTIF_CANCEL=Grunn -DATE_REFUS=Avvist dato -DATE_SAVE=Godkjennelsesdato -DATE_CANCEL=Kansellert dato -DATE_PAIEMENT=Betalt dato -ExpenseReportRef=Ref. utgiftsrapport -ValidateAndSubmit=Valider og send til godkjenning -ValidatedWaitingApproval=Validert (venter på godkjenning) -NOT_AUTHOR=Reiseregningener ikke opprettet av deg. Operasjonen avbrutt. -ConfirmRefuseTrip=Er du sikker på at du vil avvise denne utgiftsrapporten? -ValideTrip=Godkjenn reiseregning -ConfirmValideTrip=Er du sikker på at du vil godkjenne denne utgiftsrapporten? -PaidTrip=Betal en reiseregning -ConfirmPaidTrip=Er du sikker på at du vil endre status på denne utgiftsrapporten til "betalt"? -ConfirmCancelTrip=Er du sikker på at du vil kansellere denne utgiftsrapporten? -BrouillonnerTrip=Endre reiseregning til "kladd" -ConfirmBrouillonnerTrip=Er du sikker på at du vil endre status på denne utgiftsrapporten til "utkast"? -SaveTrip=Valider reiseregning -ConfirmSaveTrip=Er du sikker på at du vil validere denne utgiftsrapporten? -NoTripsToExportCSV=Ingen reiseregning å eksportere for denne perioden -ExpenseReportPayment=Betaling av utgiftsrapport -ExpenseReportsToApprove=Utgiftsrapporter for godkjenning -ExpenseReportsToPay=Utgiftsrapport å betale -ConfirmCloneExpenseReport=Er du sikker på at du vil klone denne utgiftsrapporten? ExpenseReportsIk=Konfigurasjon av kjøregodtgjørelser ExpenseReportsRules=Utgifts-rapportregler -ExpenseReportIkDesc=Du kan endre beregningen av kilometerkostnad etter kategori og rekkevidde etter slik de tidligere er definert. d er avstanden i kilometer -ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report -expenseReportOffset=Forskyvning -expenseReportCoef=Koeffisient -expenseReportTotalForFive=Eksempel med d = 5 -expenseReportRangeFromTo=fra %d til %d -expenseReportRangeMoreThan=mer enn %d -expenseReportCoefUndefined=(verdi ikke definert) -expenseReportCatDisabled=Kategori deaktivert - se c_exp_tax_cat ordbok -expenseReportRangeDisabled=Område deaktivert - se c_exp_tax_range bibliotek -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Gjelder -ExpenseReportDomain=Domenet skal gjelde -ExpenseReportLimitOn=Beløpsgrense på -ExpenseReportDateStart=Startdato -ExpenseReportDateEnd=Utløpsdato -ExpenseReportLimitAmount=Maks beløp -ExpenseReportRestrictive=Overskridelse forbudt -AllExpenseReport=Alle typer kostnadsrapporter -OnExpense=Utgiftslinje -ExpenseReportRuleSave=Utgiftsrapportregel lagret -ExpenseReportRuleErrorOnSave=Feil: %s -RangeNum=Område %d -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) -byEX_DAY=etter dag (begrensning til %s) -byEX_MON=etter måned (begrensning til %s) -byEX_YEA=etter år (begrensning til %s) -byEX_EXP=etter linje (begrensning til %s) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpenseReportsToApprove=Utgiftsrapporter for godkjenning +ExpenseReportsToPay=Utgiftsrapport å betale +ExpensesArea=Område for reiseregninger +FeesKilometersOrAmout=Beløp eller kilometer +LastExpenseReports=Siste %s utgiftsrapporter +ListOfFees=Oversikt over avgifter +ListOfTrips=Liste over reiseregninger +ListToApprove=Venter på godkjenning +ListTripsAndExpenses=Liste over reiseregninger +MOTIF_CANCEL=Grunn +MOTIF_REFUS=Grunn +ModePaiement=Betalingsmåte +NewTrip=Ny reiseregning nolimitbyEX_DAY=etter dag (ingen begrensning) +nolimitbyEX_EXP=etter linje (ingen begrensning) nolimitbyEX_MON=etter måned (ingen begrensning) nolimitbyEX_YEA=etter år (ingen begrensning) -nolimitbyEX_EXP=etter linje (ingen begrensning) -CarCategory=Kjøretøyskategori -ExpenseRangeOffset=Offset-beløp: %s +NoTripsToExportCSV=Ingen reiseregning å eksportere for denne perioden +NOT_AUTHOR=Reiseregningener ikke opprettet av deg. Operasjonen avbrutt. +OnExpense=Utgiftslinje +PDFStandardExpenseReports=Standardmal for å generere PDF av reiseregning +PaidTrip=Betal en reiseregning +REFUSEUR=Avvist av RangeIk=Kilometerstand -AttachTheNewLineToTheDocument=Fest linjen til et opplastet dokument +RangeNum=Område %d +SaveTrip=Valider reiseregning +ShowExpenseReport=Vis utgiftsrapport +ShowTrip=Vis utgiftsrapport +TripCard=Skjema for reiseregninger +TripId=Reiseregnings - ID +TripNDF=Informasjon om reiseregning +TripSociete=Firmainformasjon +Trips=Reiseregninger +TripsAndExpenses=Reiseregninger +TripsAndExpensesStatistics=Reiseregninger - statistikk +TypeFees=Avgiftstyper +UploadANewFileNow=Last opp et nytt dokument nå +VALIDATOR=Bruker som er ansvarlig for godkjenning +VALIDOR=Godkjent av +ValidateAndSubmit=Valider og send til godkjenning +ValidatedWaitingApproval=Validert (venter på godkjenning) +ValideTrip=Godkjenn reiseregning + +## Dictionary +EX_BRE=Frokost +EX_CAM=CV vedlikehold og reparasjon +EX_CAM_VP=PV vedlikehold og reparasjon +EX_CAR=Bilutleie +EX_CUR=Kunder mottar +EX_DOC=Dokumentasjon +EX_EMM=Ansatte måltid +EX_FUE=Drivstoff CV +EX_FUE_VP=Drivstoff PV +EX_GUM=Gjestemåltid +EX_HOT=Hotell +EX_IND=Betingelse for transportabonnement +EX_KME=Kilometerkostnader +EX_OTR=Andre ytelser +EX_PAR=Parkering CV +EX_PAR_VP=Parkering PV +EX_POS=Porto +EX_SUM=Vedlikeholdsforsyning +EX_SUO=Kontorrekvisita +EX_TAX=Ulike avgifter +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Buss +TF_CAR=Bil +TF_ESSENCE=Drivstoff +TF_HOTEL=Hotell +TF_LUNCH=Lunsj +TF_METRO=Trikk/bybane +TF_OTHER=Annet +TF_PEAGE=Toll +TF_TAXI=Taxi +TF_TRAIN=Tog +TF_TRIP=Transport diff --git a/htdocs/langs/nb_NO/users.lang b/htdocs/langs/nb_NO/users.lang index a0d3fd0d0d7..b78cbc27184 100644 --- a/htdocs/langs/nb_NO/users.lang +++ b/htdocs/langs/nb_NO/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Fjern fra gruppe PasswordChangedAndSentTo=Passordet er endret og sendt til %s. PasswordChangeRequest=Be om å endre passord for %s PasswordChangeRequestSent=Anmodning om å endre passordet for %s er sendt til %s. -IfLoginExistPasswordRequestSent=Hvis denne påloggingen er en gyldig konto, er det sendt en e-post for å tilbakestille passordet. +IfLoginExistPasswordRequestSent=Hvis denne påloggingen er en gyldig konto (med en gyldig e-post), er det sendt en e-post for å tilbakestille passord. IfEmailExistPasswordRequestSent=Hvis denne e-postadressen er en gyldig konto, er det sendt en e-post for å tilbakestille passordet. ConfirmPasswordReset=Bekreft tilbakestilling av passord MenuUsersAndGroups=Brukere og grupper @@ -68,12 +68,11 @@ CreateDolibarrLogin=Lag Dolibarrkonto CreateDolibarrThirdParty=Lag en tredjepart LoginAccountDisableInDolibarr=Kontoen er deaktivert i Dolibarr. UsePersonalValue=Bruk personlig verdi -InternalUser=Intern bruker ExportDataset_user_1=Brukere og deres egenskaper DomainUser=Domenebruker %s Reactivate=Reaktiver CreateInternalUserDesc=Dette skjemaet gir deg mulighet til å opprette en intern bruker til din bedrift/organisasjon. For å opprette en ekstern bruker (kunde, leverandør, ...), bruk knappen "Opprett Dolibarr-bruker" fra tredjeparts kontaktkort. -InternalExternalDesc=An internal user is a user that is part of your company/organization, or is a partner user outside of your organization that may need to see more data than data related to his company (the permission system will define what he can or can't see or do).
    An external user is a customer, vendor or other that must view ONLY data related to himself (Creating an external user for a third-party can be done from the contact record of the third-party).

    In both cases, you must grant permissions on the features that the user need. +InternalExternalDesc=En intern -bruker er en bruker som er en del av din bedrift/organisasjon, eller er en partnerbruker utenfor din organisasjon som kan trenge å se mer data enn data relatert til hans firma (tillatelsessystemet vil definere hva han kan eller kan ikke se eller gjøre).
    En ekstern -bruker er en kunde, leverandør eller annet som KUN må se data relatert til seg selv (Opprette en ekstern bruker for en tredjepart kan gjøres fra kontaktposten til tredjeparten).

    I begge tilfeller må du gi tillatelser til funksjonene som brukeren trenger. PermissionInheritedFromAGroup=Rettigheter innvilget fordi de er arvet av en brukegruppe. Inherited=Arvet UserWillBe=Opprettet bruker vil være @@ -97,7 +96,7 @@ LoginToCreate=Brukernavn å opprette NameToCreate=Navn på tredjepart til å lage YourRole=Dine roller YourQuotaOfUsersIsReached=Din kvote på aktive brukere er nådd! -NbOfUsers=Number of users +NbOfUsers=Antall brukere NbOfPermissions=Antall permisjoner DontDowngradeSuperAdmin=Bare en superadmin kan nedgradere en superadmin HierarchicalResponsible=Veileder @@ -116,7 +115,7 @@ DateOfEmployment=Ansettelsesdato DateEmployment=Arbeid DateEmploymentStart=Ansettelse startdato DateEmploymentEnd=Ansettelse sluttdato -RangeOfLoginValidity=Access validity date range +RangeOfLoginValidity=Adgang til gyldig datoperiode CantDisableYourself=Du kan ikke deaktivere din egen brukeroppføring ForceUserExpenseValidator=Tvunget utgiftsrapport-validator ForceUserHolidayValidator=Tvunget friforespørsel-validator @@ -124,7 +123,9 @@ ValidatorIsSupervisorByDefault=Som standard er validatoren veileder for brukeren UserPersonalEmail=Privat e-post UserPersonalMobile=Privat mobil WarningNotLangOfInterface=Advarsel, dette er hovedspråket brukeren snakker, ikke språket i grensesnittet han valgte å se. For å endre grensesnittets språk som er synlig for denne brukeren, gå til fanen %s -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +DateLastLogin=Dato siste pålogging +DatePreviousLogin=Dato forrige pålogging +IPLastLogin=IP siste pålogging +IPPreviousLogin=IP forrige pålogging +ShowAllPerms=Vis alle tillatelsesrader +HideAllPerms=Skjul alle tillatelsesrader diff --git a/htdocs/langs/nb_NO/website.lang b/htdocs/langs/nb_NO/website.lang index 4003a18b648..608da77e606 100644 --- a/htdocs/langs/nb_NO/website.lang +++ b/htdocs/langs/nb_NO/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kode +WebsiteName=Navn på nettstedet WebsiteSetupDesc=Opprett de nettstedene du ønsker å bruke her. Deretter går du inn i meny Nettsteder for å redigere dem. DeleteWebsite=Slett wedside ConfirmDeleteWebsite=Er du sikker på at du vil slette dette nettstedet? Alle sidene og innholdet blir også fjernet. Filene som er lastet opp (som i mediekatalogen, ECM-modulen, ...) vil ikke slettes. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Tillegg nederst på HTML-header(felles for alle sider) WEBSITE_ROBOT=Robotfil (robots.txt) WEBSITE_HTACCESS=Nettstedets .htaccess-fil WEBSITE_MANIFEST_JSON=Nettstedets manifest.json-fil -WEBSITE_README=README.md-fil WEBSITE_KEYWORDSDesc=Bruk et komma for å skille verdier -EnterHereLicenseInformation=Skriv inn metadata eller lisensinformasjon for å arkivere en README.md-fil. Hvis du distribuerer nettstedet ditt som en mal, vil filen bli inkludert i mal-pakken. +EnterHereReadmeInformation=Skriv inn en beskrivelse av nettsiden her. Hvis du distribuerer nettstedet ditt som en mal, vil filen bli inkludert i mal-pakken. +EnterHereLicenseInformation=Skriv inn LISENSEN til koden til nettstedet her. Hvis du distribuerer nettstedet ditt som en mal, vil filen bli inkludert i mal-pakken. HtmlHeaderPage=HTML-header (kun for denne siden) PageNameAliasHelp=Navn eller alias på siden.
    Dette aliaset brukes også til å lage en SEO-URL når nettsiden blir kjørt fra en virtuell vert til en webserver (som Apacke, Nginx, ...). Bruk knappen "%s" for å redigere dette aliaset. EditTheWebSiteForACommonHeader=Merk: Hvis du vil definere en personlig topptekst for alle sider, redigerer du overskriften på nettstedsnivå i stedet for på siden/containeren. @@ -31,7 +32,7 @@ AddWebsite=Legg til nettside Webpage=Nettsted/container AddPage=Legg til side/container PageContainer=Side -PreviewOfSiteNotYetAvailable=The preview of your website %s is not yet available. You must first 'Import a full website template' or just 'Add a page/container'. +PreviewOfSiteNotYetAvailable=Forhåndsvisningen av nettstedet ditt %s er ikke tilgjengelig ennå. Du må først ' Importere en fullstendig nettstedsmal ' eller bare ' Legg til en side/beholder '. RequestedPageHasNoContentYet=Forespurt side med id %s har ikke noe innhold enda, eller cachefilen .tpl.php ble fjernet. Rediger innhold på siden for å løse dette. SiteDeleted=Nettstedet '%s' slettet PageContent=Side/Container @@ -42,10 +43,12 @@ ViewPageInNewTab=Vis side i ny fane SetAsHomePage=Sett som startside RealURL=Virkelig URL ViewWebsiteInProduction=Vis webside ved hjelp av hjemme-URL +Virtualhost=Virtuell vert eller domenenavn +VirtualhostDesc=Navnet på den virtuelle verten eller domenet (for eksempel: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Bruk med Apache/NGinx/...
    Opprett på webserveren din (Apache, Nginx, ...) en dedikert virtuell vert med PHP aktivert og en rotkatalog på
    %s ExampleToUseInApacheVirtualHostConfig=Eksempel på Apache virtuelt vertsoppsett: YouCanAlsoTestWithPHPS=  Bruk med PHP-innebygd server
    I utviklingsmiljø kan du foretrekke å teste nettstedet med PHP-innebygd webserver (PHP 5.5 nødvendig) ved å kjøre
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Kjør nettstedet ditt med en annen leverandør av Dolibarr Hosting
    Hvis du ikke har en webserver som Apache eller NGinx tilgjengelig på internett, kan du eksportere og importere nettstedet til en annen Dolibarr-forekomst levert av en annen Dolibarr-leverandør som gir full integrasjon med nettstedsmodulen. Du kan finne en liste over noen Dolibarr-vertsleverandører på https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP= Kjør nettstedet ditt med en annen Dolibarr-vertsleverandør
    Hvis du ikke har en nettserver som Apache eller NGinx tilgjengelig på internett, kan du \neksportere og importere nettstedet ditt til en annen Dolibarr-instans levert av en annen Dolibarr-vertsleverandør som gir full integrasjon med nettstedsmodulen. Du kan finne en liste over noen Dolibarr-vertsleverandører på https://saas.dolibarr.org3 CheckVirtualHostPerms=Sjekk også at den virtuelle vertsbrukeren (for eksempel www-data) har %s tillatelser på filer i
    %s ReadPerm=Les WritePerm=Skriv @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Du kan redigere HTML kildekode ved hjelp av "Kilde" YouCanEditHtmlSource=
    Du kan inkludere PHP kode i denne kilden ved hjelp av tags <?php ?>. Følgende globale variabler er tilgjengelige: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Du kan også inkludere innhold fra en annen side/container med følgende syntaks:
    <?php includeContainer('alias_of_container_to_include'); ?>

    Du kan omdirigere til en annen side/container med følgende syntaks (NB: ikke legg ut noe innhold før en omdirigering):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    For å opprette en kobling til en annen side, bruk syntaksen:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    For å inkludere en nedlastningslink til en fil i dokumenter mappen, bruk document.php pakkeren:
    Eksempel, for en fil i documents/ecm (need to be loggedmå logges, er syntaksen:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For en fil i documents/medias (åpen mappe for offentlig tilgang), er syntaksen:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For en fil delt via en delingskobling (åpen tilgang ved bruk av deling av filens hash-nøkkel), er syntaksen:
    <a href="/document.php?hashp=publicsharekeyoffile">

    For å inkludere et bilde lagret i dokumenter mappen, bruk viewimage.php pakkeren:
    Eksempel, for et bilde i documents/medias (åpen mappe for offentlig tilgang), er syntaksen:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=For et bilde som deles med en delekobling (åpen tilgang ved hjelp av delings-hash-nøkkelen til filen), er syntaksen:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    Flere eksempler på HTML eller dynamisk kode tilgjengelig på wiki-dokumentasjonen
    . +YouCanEditHtmlSourceMore=
    Flere eksempler på HTML eller dynamisk kode tilgjengelig på wikidokumentasjonen
    . ClonePage=Klon side/container CloneSite=Klon side SiteAdded=Nettsted lagt til @@ -137,11 +140,18 @@ PagesRegenerated=%s side(r)/container(e) regenerert RegenerateWebsiteContent=Regenerer cache-filer på nettstedet AllowedInFrames=Tillatt i frames DefineListOfAltLanguagesInWebsiteProperties=Definer liste over alle tilgjengelige språk i nettstedsegenskaper. -GenerateSitemaps=Generate website sitemap file -ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... -ConfirmSitemapsCreation=Confirm sitemap generation -SitemapGenerated=Sitemap file %s generated +GenerateSitemaps=Generer nettstedets sitemap.xml-fil +ConfirmGenerateSitemaps=Hvis du bekrefter, vil du slette den eksisterende sitemap-filen... +ConfirmSitemapsCreation=Bekreft generering av sitemap +SitemapGenerated=Sitemap-fil %s generert ImportFavicon=Favicon -ErrorFaviconType=Favicon must be png -ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 -FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +ErrorFaviconType=Favicon må være png +ErrorFaviconSize=Favicon må ha størrelsen 16x16, 32x32 eller 64x64 +FaviconTooltip=Last opp et bilde som må være en png (16x16, 32x32 eller 64x64) +NextContainer=Neste side/beholder +PreviousContainer=Forrige side/beholder +WebsiteMustBeDisabled=Nettstedet må ha statusen "%s" +WebpageMustBeDisabled=Nettsiden må ha statusen "%s" +SetWebsiteOnlineBefore=Når nettstedet er frakoblet, er alle sidene offline. Endre status på nettstedet først. +Booking=Bestilling +Reservation=Reservasjon diff --git a/htdocs/langs/nb_NO/withdrawals.lang b/htdocs/langs/nb_NO/withdrawals.lang index 9e291c192bf..0a206ba4e9e 100644 --- a/htdocs/langs/nb_NO/withdrawals.lang +++ b/htdocs/langs/nb_NO/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Leverandørfaktura som venter på betaling med kr InvoiceWaitingWithdraw=Faktura som venter på direktedebet InvoiceWaitingPaymentByBankTransfer=Faktura venter på kreditoverføring AmountToWithdraw=Beløp å tilbakekalle +AmountToTransfer=Beløp som skal overføres NoInvoiceToWithdraw=Ingen faktura åpen for '%s' venter. Gå til fanen '%s' på fakturakortet for å gjøre en forespørsel. -NoSupplierInvoiceToWithdraw=Ingen leverandørfaktura med åpne 'Direkte kredittforespørsler' venter. Gå til fanen '%s' på fakturakortet for å sende en forespørsel. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Brukeransvarlig WithdrawalsSetup=Oppsett av direktedebetsbetalinger CreditTransferSetup=Oppsett av kredittoverføring @@ -41,6 +42,7 @@ CreditTransferStatistics=Kredittoverføringsstatistikk Rejects=Avvisninger LastWithdrawalReceipt=Siste %s direktedebetskvitteringer MakeWithdrawRequest=Foreta en direktedebet betalingsforespørsel +MakeWithdrawRequestStripe=Foreta en forespørsel om direkte belastning via Stripe MakeBankTransferOrder=Opprett en forespørsel om kreditoverføring WithdrawRequestsDone=%s direktedebet-betalingforespørsler registrert BankTransferRequestsDone=%s forespørsler om kreditoverføring registrert @@ -48,7 +50,7 @@ ThirdPartyBankCode=Tredjeparts bankkode NoInvoiceCouldBeWithdrawed=Ingen faktura debitert. Kontroller at fakturaer mot selskaper med gyldig standard BAN, og at BAN har en RUM-modus %s . WithdrawalCantBeCreditedTwice=Denne uttakskvitteringen er allerede merket som kreditert; dette kan ikke gjøres to ganger, da dette potensielt kan skape dupliserte betalinger og bankoppføringer. ClassCredited=Klassifiser som kreditert -ClassDebited=Classify debited +ClassDebited=Klassifiser debitert ClassCreditedConfirm=Er du sikker på at du vil klassifisere tilbakekallingen som kreditert din bankkonto? TransData=Dato for overføring TransMetod=Metode for overføring @@ -99,8 +101,11 @@ CreditDate=Kreditt på WithdrawalFileNotCapable=Kan ikke ikke generere kvitteringsfil for tilbaketrekking for landet ditt %s (Landet er ikke støttet) ShowWithdraw=Vis direkte debitordre IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Men, hvis fakturaen har minst én avbestillingsordre som ikke er behandlet ennå, blir den ikke satt som betalt for å tillate tidligere håndtering av tilbaketrekninger. -DoStandingOrdersBeforePayments=Denne fanen lar deg be om en betalingsordre med direkte belastning. Når du er ferdig, kan du gå til menyen Bank-> Betaling med direkte belastning for å generere og administrere direkte belastning. Når ordre med direkte belastning blir stengt, blir betaling på fakturaer automatisk registrert, og fakturaer stengt hvis resten til betaling er null. -DoCreditTransferBeforePayments=Denne fanen lar deg be om en kreditoverføringsordre. Når du er ferdig, går du inn i menyen Bank-> Betaling ved overføring for å generere og administrere overføringsordren. Når kredittoverføringsordren er lukket, vil betaling på fakturaer automatisk bli registrert, og fakturaer stengt hvis resten av utestående er null. +DoStandingOrdersBeforePayments=Denne fanen lar deg be om en betalingsordre for direkte belastning. Når det er gjort, kan du gå inn i menyen "Bank->Betaling med avtalegiro" for å generere og administrere en ordrefil for avtalegiro. +DoStandingOrdersBeforePayments2=Du kan også sende en forespørsel direkte til en SEPA betalingsbehandler som Stripe, ... +DoStandingOrdersBeforePayments3=Når direkte debet er stengt, vil betaling på fakturaer automatisk registreres, og fakturaer lukkes hvis gjenstående betaling er null. +DoCreditTransferBeforePayments=Denne fanen lar deg be om en kredittoverføringsordre. Når du er ferdig, går du inn i menyen "Bank->Betaling med kredittoverføring" for å generere og administrere en ordrefil for kredittoverføring. +DoCreditTransferBeforePayments3=Når kredittoverføringsordren er stengt, vil betaling på fakturaer automatisk registreres, og fakturaer stenges hvis gjenstående betaling er null. WithdrawalFile=Debetordrefil CreditTransferFile=Kredittoverføringsfil SetToStatusSent=Sett status til "Fil Sendt" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Kan ikke opprette en tom direktedebet-betalingfore SepaMandate=SEPA Direktedebet mandat SepaMandateShort=SEPA-Mandat PleaseReturnMandate=Vennligst returner dette mandatskjemaet via epost til %s eller med post til -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=Ved å signere dette fullmaktsskjemaet, autoriserer du (A) %s og dets betalingstjenesteleverandør til å sende instruksjoner til banken din om å belaste kontoen din og (B) banken din til å belaste kontoen din i samsvar med instruksjonene fra %s. Som en del av rettighetene dine har du rett til refusjon fra banken din i henhold til vilkårene i avtalen med banken din. Dine rettigheter angående fullmakten ovenfor er forklart i en erklæring som du kan få fra banken din. CreditorIdentifier=Kreditor-identifikator CreditorName=Kreditornavn SEPAFillForm=(B) Vennligst fullfør alle felt merket med * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Utførelsesdato CreateForSepa=Lag direkte debitfil ICS=Kreditoridentifikator - ICS +IDS=Debitor identifikator END_TO_END="EndToEndId" SEPA XML-tag - Unik ID tildelt per transaksjon USTRD="Ustrukturert" SEPA XML-tag ADDDAYS=Legg til dager til utførelsesdato @@ -152,5 +158,6 @@ ModeWarning=Opsjon for reell-modus ble ikke satt, så vi stopper etter denne sim ErrorCompanyHasDuplicateDefaultBAN=Firma med ID%s har mer enn én standard bankkonto. Ingen måte å vite hvilken du skal bruke. ErrorICSmissing=Mangler ICS i bankkonto %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Totalt beløp for direktedebet er ulik linjesum -WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s -WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +WarningSomeDirectDebitOrdersAlreadyExists=Advarsel: Det er allerede noen direkte belastningsordrer som venter (%s) forespurt for et beløp på %s +WarningSomeCreditTransferAlreadyExists=Advarsel: Det er allerede noen ventende kredittoverføringer (%s) forespurt for et beløp på %s +UsedFor=Brukes for %s diff --git a/htdocs/langs/nb_NO/workflow.lang b/htdocs/langs/nb_NO/workflow.lang index 648ef7587b4..40b45b0919d 100644 --- a/htdocs/langs/nb_NO/workflow.lang +++ b/htdocs/langs/nb_NO/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klassifiser kildekjø descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Klassifiser koblet kilde-innkjøpsordre som mottatt når et mottak er validert (og hvis antallet mottatt av alle mottak er det samme som i innkjøpsordren som skal oppdateres) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Klassifiser koblet kilde-innkjøpsordre som mottatt når et mottak er stengt (og hvis antallet mottatt av alle mottak er det samme som i innkjøpsordren som skal oppdatere) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Klassifiser mottak til "fakturert" når en koblet leverandørbestilling er validert +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Klassifiser mottak til "fakturert" når en koblet kjøpsfaktura er validert (og hvis beløpet på fakturaen er det samme som totalbeløpet for de tilknyttede mottakene) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Når du oppretter en billett, kobler du tilgjengelige kontrakter til samsvarende tredjepart descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Når du kobler sammen kontrakter, søk blant de fra morselskapene @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Lukk alle intervensjoner knyttet til bill AutomaticCreation=Automatisk opprettelse AutomaticClassification=Automatisk klassifisering # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifiser koblet kildesending som lukket når kundefaktura er validert +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifiser koblet kildeforsendelse som lukket når kundefakturaen er validert (og hvis fakturabeløpet er det samme som totalbeløpet for de koblede forsendelsene) AutomaticClosing=Automatisk lukking AutomaticLinking=Automatisk kobling diff --git a/htdocs/langs/ne_NP/datapolicy.lang b/htdocs/langs/ne_NP/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ne_NP/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ne_NP/errors.lang b/htdocs/langs/ne_NP/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/ne_NP/errors.lang +++ b/htdocs/langs/ne_NP/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/ne_NP/externalsite.lang b/htdocs/langs/ne_NP/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/ne_NP/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/ne_NP/ftp.lang b/htdocs/langs/ne_NP/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/ne_NP/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/nl_BE/accountancy.lang b/htdocs/langs/nl_BE/accountancy.lang index b4327b3b13b..3a8fd558aca 100644 --- a/htdocs/langs/nl_BE/accountancy.lang +++ b/htdocs/langs/nl_BE/accountancy.lang @@ -23,5 +23,6 @@ Docref=Artikelcode TotalVente=Totaal omzet voor belastingen AccountingJournalType2=Verkoop AccountingJournalType3=Inkoop +AccountingJournalType5=Uitgaven rapporten Modelcsv=Model van een export Selectmodelcsv=Selecteer een model van export diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang index d2ea70a9426..82330f1518e 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -41,6 +41,7 @@ UsePreviewTabs=Gebruik voorbeelweergavetabbladen ShowPreview=Toon voorbeelweergave TZHasNoEffect=Datums worden opgeslagen en geretourneerd door de databaseserver alsof ze worden bewaard als verzonden string. De tijdzone heeft alleen effect bij het gebruik van de UNIX_TIMESTAMP-functie (die niet door Dolibarr mag worden gebruikt, dus database TZ zou geen effect mogen hebben, zelfs als deze wordt gewijzigd nadat gegevens zijn ingevoerd). NextValueForDeposit=Volgende waarde (aanbetaling) +UseCaptchaCode=Gebruik een grafische code (CAPTCHA) op de aanmeldingspagina en enkele publieke pagina's AntiVirusCommandExample=Voorbeeld voor ClamAv Daemon (vereist clamav-daemon): /usr/bin/clamdscan
    Voorbeeld voor ClamWin (erg langzaam): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe ComptaSetup=Instellingen van de boekhoudkundige module UserSetup=Gebruikersbeheerinstellingen @@ -182,6 +183,7 @@ NewVATRates=Nieuw BTW tarief PriceBaseTypeToChange=Wijzig op prijzen waarop een base reference waarde gedefiniëerd is MassConvert=Start bulkconversie Boolean=Boolean (één selectievakje) +ExtrafieldPriceWithCurrency=Prijs met valuta ExtrafieldUrl =url ExtrafieldSeparator=Separator (geen veld) ExtrafieldPassword=Paswoord @@ -191,7 +193,9 @@ ExtrafieldCheckBoxFromList=Selectievakjes uit tabel LibraryToBuildPDF=Bibliotheek om PDF bestanden te genereren. RefreshPhoneLink=Herladen link SetAsDefault=Instellen als standaard +InstalledInto=Geïnstalleerd in map %s BarcodeInitForProductsOrServices=Mass barcode init of reset voor producten of diensten +InitEmptyBarCode=Init waarde voor de volgende %s lege records NoDetails=Geen aanvullende details in voettekst DisplayCompanyInfo=Bedrijfsadres weergeven DisplayCompanyManagers=Namen van beheerders weergeven @@ -204,6 +208,7 @@ Module3400Name=Sociale Netwerken Module55000Desc=Creëer online polls, enquêtes of stemmen (zoals Doodle, Studs, RDVz etc...) Module62000Desc=Onderdelen toevoegen voor Incoterms Module63000Desc=Beheer middelen (printers, auto's, kamers, ...) voor toewijzing aan evenementen +Module94160Name=Ontvangen Permission22=Creëer / wijzig offertes Permission24=Valideer offertes Permission32=Creëer / wijzig producten / diensten @@ -238,14 +243,13 @@ BillsPDFModules=Factuur documentsjablonen LDAPGlobalParameters=Globale instellingen LDAPPassword=Beheerderswachtwoord SalariesSetup=Setup van module salarissen -TopMenuDisableImages=Hide images in Top menu MailToSendProposal=Klant voorstellen MailToSendInvoice=Klantfacturen MailToSendReception=Ontvangen +MailToExpenseReport=Uitgaven rapporten MailToThirdparty=Klant AddBoxes=Widgets toevoegen -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. GeneralOptions=Algemene opties ExportSetup=Installatie van module Exporteren EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    diff --git a/htdocs/langs/nl_BE/commercial.lang b/htdocs/langs/nl_BE/commercial.lang index d949aad6bac..fae3f5e6ae7 100644 --- a/htdocs/langs/nl_BE/commercial.lang +++ b/htdocs/langs/nl_BE/commercial.lang @@ -11,8 +11,5 @@ ActionAC_COM=Verzend verkooporder per mail ActionAC_SUP_ORD=Verzend bestelling per mail ActionAC_SUP_INV=Stuur leveranciersfactuur per mail ToOfferALinkForOnlineSignature=Link voor online handtekening -WelcomeOnOnlineSignaturePage=Welkom op deze pagina om commerciële voorstellen van %s te accepteren -ThisScreenAllowsYouToSignDocFrom=Met dit scherm kunt u een offerte / commercieel voorstel accepteren en ondertekenen of weigeren -ThisIsInformationOnDocumentToSign=In dit document is informatie om te accepteren of te weigeren SignatureProposalRef=Handtekening van offerte / commercieel voorstel %s FeatureOnlineSignDisabled=Functie voor online ondertekenen uitgeschakeld of het document is gegenereerd voordat de functie was ingeschakeld diff --git a/htdocs/langs/nl_BE/companies.lang b/htdocs/langs/nl_BE/companies.lang index 5a8e8bed973..162da73b1d5 100644 --- a/htdocs/langs/nl_BE/companies.lang +++ b/htdocs/langs/nl_BE/companies.lang @@ -35,8 +35,6 @@ SupplierCodeModel=Leverancierscode-model ProfId6=Professionele ID 6 ProfId2AR=Prof Id 2 (Inkomsten voor belastingen) ProfId3CH=Prof id 1 (Federaal nummer) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId3ShortCM=Decree of creation ProfId2ES=Prof Id 2 (INSZ-nummer) ProfId1LU=Prof. Id. 1 (R.S.C. Luxemburg) ProfId2LU=Prof. Id. 2 (zakelijke vergunning) diff --git a/htdocs/langs/nl_BE/compta.lang b/htdocs/langs/nl_BE/compta.lang index 4bb99924312..c0990dfa102 100644 --- a/htdocs/langs/nl_BE/compta.lang +++ b/htdocs/langs/nl_BE/compta.lang @@ -22,6 +22,7 @@ DeleteSocialContribution=Verwijder betaling sociale bijdrage/belasting ExportDataset_tax_1=sociale bijdragen/belastingen en betalingen CalcModeLT1Debt=Modus %sRE op afnemersfacturen%s CalcModeLT1Rec=Modus %sRE op leveranciersfacturen%s +OptionVatInfoModuleComptabilite=Opmerking: Voor materiële activa, zou het gebruik moeten maken van de afleverdatum om eerlijker te zijn. PurchasesJournal=Inkoopdagboek DescPurchasesJournal=Inkoopdagboek OtherCountriesCustomersReport=Buitenlands klantenrapport diff --git a/htdocs/langs/nl_BE/externalsite.lang b/htdocs/langs/nl_BE/externalsite.lang deleted file mode 100644 index 4f3aab4c69f..00000000000 --- a/htdocs/langs/nl_BE/externalsite.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link naar externe website -ExternalSiteModuleNotComplete=Module ExternalSite werd niet correct geconfigureerd. diff --git a/htdocs/langs/nl_BE/ftp.lang b/htdocs/langs/nl_BE/ftp.lang deleted file mode 100644 index df4c0ad6757..00000000000 --- a/htdocs/langs/nl_BE/ftp.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -ChooseAFTPEntryIntoMenu=Kies een FTP toegang in het menu... -FailedToGetFile=Mislukt om de bestanden te ontvangen %s diff --git a/htdocs/langs/nl_BE/hrm.lang b/htdocs/langs/nl_BE/hrm.lang index a8577d55908..cf330ae1f6d 100644 --- a/htdocs/langs/nl_BE/hrm.lang +++ b/htdocs/langs/nl_BE/hrm.lang @@ -7,5 +7,4 @@ DeleteEstablishment=Verwijderen inrichting ConfirmDeleteEstablishment=Weet U zeker dat U deze inrichting wilt verwijderen ? OpenEtablishment=Open inrichting CloseEtablishment=Sluit inrichting -DictionaryDepartment=HRM - afdelingen lijst ListOfEmployees=Lijst van werknemers diff --git a/htdocs/langs/nl_BE/main.lang b/htdocs/langs/nl_BE/main.lang index cb91c64d6a6..f6d2fa70c33 100644 --- a/htdocs/langs/nl_BE/main.lang +++ b/htdocs/langs/nl_BE/main.lang @@ -62,6 +62,7 @@ UserCreationShort=Creat. gebruiker UserModificationShort=Modif. gebruiker UserValidationShort=Geldig. gebruiker CurrencyRate=Wisselkoers van valuta +UserAuthor=Gemaakt door Amount=Hoeveelheid MulticurrencyRemainderToPay=Blijf betalen, oorspronkelijke valuta MulticurrencyAmountHT=Bedrag (excl. Btw), oorspronkelijke valuta diff --git a/htdocs/langs/nl_BE/members.lang b/htdocs/langs/nl_BE/members.lang index 89979e6cc3a..deae7d94f52 100644 --- a/htdocs/langs/nl_BE/members.lang +++ b/htdocs/langs/nl_BE/members.lang @@ -1,2 +1,13 @@ # Dolibarr language file - Source file is en_US - members +MemberCard=Lidmaatschapskaart +ShowMember=Toon lidmaatschapskaart +FundationMembers=Stichtingsleden / -donateurs +SetLinkToUser=Link naar een Dolibarr gebruiker MemberStatusDraft=Conceptfactuur (moet worden gevalideerd) +NewSubscriptionDesc=Met dit formulier kunt u uw abonnement te nemen als nieuw lid van de stichting. Wilt u uw abonnement te verlengen (indien reeds lid is), dan kunt u in plaats daarvan contact op met stichtingsbestuur via e-mail %s. +AddMember=Creeer lid +NoTypeDefinedGoToSetup=Geen lidtypes ingesteld. Ga naar Home->Setup->Ledentypes +PublicMemberCard=Publieke lidmaatschapskaart +MembersStatisticsByState=Leden statistieken per staat / provincie +MembersStatisticsDesc=Kies de statistieken die u wilt lezen ... +TurnoverOrBudget=Omzet (voor een bedrijf) of Budget (voor een stichting) diff --git a/htdocs/langs/nl_BE/propal.lang b/htdocs/langs/nl_BE/propal.lang index 993ba762d6f..4a3d08323fb 100644 --- a/htdocs/langs/nl_BE/propal.lang +++ b/htdocs/langs/nl_BE/propal.lang @@ -10,4 +10,5 @@ ConfirmReOpenProp=Weet u zeker dat u offerte %s opnieuw wil openen? TypeContact_propal_internal_SALESREPFOLL=Vertegenwoordiger die de offerte opvolgt TypeContact_propal_external_BILLING=Contactpersoon afnemersfactuur TypeContact_propal_external_SHIPPING=Klantcontact voor leveringen +NoSign=Refuse ProposalCustomerSignature=Stempel, datum en handtekening met vermelding "Voor Akkoord" diff --git a/htdocs/langs/nl_BE/ticket.lang b/htdocs/langs/nl_BE/ticket.lang index 37e0550685c..243f09da279 100644 --- a/htdocs/langs/nl_BE/ticket.lang +++ b/htdocs/langs/nl_BE/ticket.lang @@ -56,8 +56,6 @@ NewTicket=Nieuw ticket MarkAsRead=Markeer ticket als gelezen TicketHistory=Ticket geschiedenis TicketChangeType=Van type veranderen -TicketAddMessage=Voeg een bericht toe -AddMessage=Voeg een bericht toe TicketMessageSuccessfullyAdded=Bericht is succesvol toegevoegd NoMsgForThisTicket=Geen bericht voor dit ticket TicketSeverity=Strengheid @@ -65,9 +63,7 @@ ConfirmCloseAticket=Bevestig het sluiten van het ticket TicketDeletedSuccess=Ticket verwijderd met succes SendMessageByEmail=Stuur bericht per e-mail ErrorMailRecipientIsEmptyForSendTicketMessage=Ontvanger is leeg. Geen e-mail verzonden -TicketMessageMailIntro=Inleiding TicketMessageMailIntroHelp=Deze tekst wordt alleen aan het begin van de e-mail toegevoegd en wordt niet opgeslagen. -TicketMessageMailSignatureLabelAdmin=Handtekening van reactie-e-mail TicketMessageHelp=Alleen deze tekst wordt opgeslagen in de berichtenlijst van het ticket. TicketMessageSubstitutionReplacedByGenericValues=Vervangingenvariabelen worden vervangen door generieke waarden. TimeElapsedSince=tijd verstreken sinds @@ -104,7 +100,6 @@ TicketNewEmailBodyInfosTrackId=Volgnummer van ticket: %s TicketNewEmailBodyInfosTrackUrlCustomer=U kunt de voortgang van het ticket in de specifieke interface bekijken door op de volgende link te klikken TicketEmailPleaseDoNotReplyToThisEmail=Reageer niet direct op deze e-mail! Gebruik de link om te antwoorden in de interface. TicketPublicInfoCreateTicket=Dit formulier laat U toe om een support ticket op te nemen in ons managementsysteem. -TicketPublicPleaseBeAccuratelyDescribe=Beschrijf het probleem alstublieft nauwkeurig. Geef de meeste informatie die mogelijk is om ons in staat te stellen uw verzoek correct te identificeren. TicketPublicMsgViewLogIn=Voer het ticket tracking ID in TicketTrackId=Openbare tracking-ID OneOfTicketTrackId=Een van uw tracking-ID diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index 20b781bc8a9..6afef8eca53 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Landen buiten de EU CountriesInEECExceptMe=EU landen behalve %s CountriesExceptMe=Alle landen behalve %s AccountantFiles=Bron-documenten exporteren -ExportAccountingSourceDocHelp=Met deze tool kunt u de bron events (lijst in CSV en PDF) exporteren die zijn gebruikt om om uw boekhouding te genereren. +ExportAccountingSourceDocHelp=Met deze tool kunt u de brongebeurtenissen zoeken en exporteren die worden gebruikt om uw boekhouding te genereren.
    Het geëxporteerde ZIP-bestand bevat de lijsten met gevraagde items in CSV, evenals de bijgevoegde bestanden in hun oorspronkelijke formaat (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Gebruik het menu-item %s - %s om uw dagboeken te exporteren. +ExportAccountingProjectHelp=Specificeer een project als u alleen een boekhoudkundig rapport nodig heeft voor een specifiek project. Onkostendeclaraties en afbetalingen van leningen zijn niet opgenomen in projectrapporten. VueByAccountAccounting=Overzicht per grootboekrekening VueBySubAccountAccounting=Overzicht op volgorde subrekening @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Hoofdrekening voor leveranciers die niet zijn MainAccountForUsersNotDefined=De standaard grootboekrekening voor gebruikers is niet vastgelegd bij de instellingen MainAccountForVatPaymentNotDefined=Standaard grootboekrekening voor betaalde BTW is niet vastgelegd bij instellingen MainAccountForSubscriptionPaymentNotDefined=Hoofdrekening voor abonnementsbetaling is niet gedefinieerd in de configuratie +UserAccountNotDefined=Grootboekrekening voor gebruiker niet gedefinieerd in setup AccountancyArea=Boekhouding AccountancyAreaDescIntro=Het gebruiken van de boekhoudmodule gaat met verschillende stappen @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Rechtstreeks boeken van transactie in bankboek uitzett ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Schakel concept export van het journaal in ACCOUNTANCY_COMBO_FOR_AUX=Schakel combolijst in voor dochteronderneming-account (kan traag zijn als je veel derden hebt, verbreek de mogelijkheid om op een deel van de waarde te zoeken) ACCOUNTING_DATE_START_BINDING=Definieer een startdatum voor het koppelen en doorboeken naar de boekhouding. Transacties voor deze datum worden niet doorgeboekt naar de boekhouding. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Selecteer bij boekhoudkundige overdracht standaard periodeweergave +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Wat is de standaard geselecteerde periode bij overdracht van boekhouding? -ACCOUNTING_SELL_JOURNAL=Verkoopboek -ACCOUNTING_PURCHASE_JOURNAL=Inkoopboek -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Verkoopjournaal (verkoop en retouren) +ACCOUNTING_PURCHASE_JOURNAL=Inkoopjournaal (aankoop en retour) +ACCOUNTING_BANK_JOURNAL=Kas journaal (ontvangsten en uitbetalingen) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=Algemeen journaal +ACCOUNTING_HAS_NEW_JOURNAL=Heeft nieuw Journaal +ACCOUNTING_INVENTORY_JOURNAL=Voorraad journaal ACCOUNTING_SOCIAL_JOURNAL=Social journal -ACCOUNTING_HAS_NEW_JOURNAL=Nieuw Has Journaal ACCOUNTING_RESULT_PROFIT=Resultaat grootboekrekening (winst) ACCOUNTING_RESULT_LOSS=Resultaat grootboekrekening (Verlies) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Afsluiten journaal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Kruispostrekening voor bank naar bank transactie +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Overgangsrekening -ACCOUNTING_ACCOUNT_SUSPENSE=Grootboekrekening kruisposten (dagboeken) -DONATION_ACCOUNTINGACCOUNT=Grootboeknummer voor donaties -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Grootboekrekening om abonnementen te registreren +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standaard grootboekrekening voor storting door klant -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Klantrekening opslaan als individuele rekening in subgrootboek voor vooruitbetalingsregels (indien uitgeschakeld, blijft individuele rekening voor vooruitbetalingsregels leeg) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Leveranciersrekening opslaan als individuele rekening in subgrootboek voor vooruitbetalingsregels (indien uitgeschakeld, blijft individuele rekening voor vooruitbetalingsregels leeg) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Standaard grootboekrekening voor de gekochte producten (gebruikt indien niet gedefinieerd in de productfiche) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Grootboekrekening standaard voor de gekochte producten binnen de EU (gebruikt indien niet gedefinieerd in het productblad) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Grootboekrekening standaard voor de gekochte producten en geïmporteerd buiten de EU (gebruikt indien niet gedefinieerd in het productblad) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standaard grootboekrekening omzet producten (indien niet opgegeven bij productgegevens) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Standaard grootboekrekening voor binnen de EU verkochte producten (gebruikt indien niet gedefinieerd bij de productgegevens) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Standaard boekhoudrekening voor de producten die worden verkocht en uitgevoerd naar buiten de EU (gebruikt indien niet gedefinieerd bij de productgegevens) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standaard grootboekrekening inkoop diensten (indien niet opgegeven bij dienstgegevens) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Grootboekrekening standaard voor de gekochte services binnen de EU (gebruikt indien niet gedefinieerd in het serviceblad) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Standaard grootboekrekening voor de gekochte services en geïmporteerd van buiten de EU (gebruikt indien niet gedefinieerd in het serviceblad) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standaard grootboekrekening omzet diensten (indien niet opgegeven bij dienstgegevens) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Standaard grootboekrekening voor binnen de EU verkochte diensten (gebruikt indien niet gedefinieerd bij de servicegegevens) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Standaard grootboekrekening voor de diensten die worden verkocht en geëxporteerd naar buiten de EU (gebruikt indien niet gedefinieerd in het serviceblad) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -211,12 +217,12 @@ Codejournal=Journaal JournalLabel=Journaal label NumPiece=Boekingstuk TransactionNumShort=Transactienummer -AccountingCategory=Aangepaste groep +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Groeperen op grootboekrekening GroupBySubAccountAccounting=Groepeer op subgrootboekrekening AccountingAccountGroupsDesc=Hier kunt u enkele grootboekrekening-groepen definiëren. Deze worden gebruikt voor gepersonaliseerde boekhoudrapporten. ByAccounts=Op grootboekrekening -ByPredefinedAccountGroups=Op voorgedefinieerde groepen +ByPredefinedAccountGroups=Op vooraf gedefinieerde accountgroepen ByPersonalizedAccountGroups=Op gepersonaliseerde groepen ByYear=Per jaar NotMatch=Niet ingesteld @@ -265,13 +271,13 @@ Reconcilable=Samentrekken TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Raadpleeg hier de lijst met klant factuurregels die (al dan niet) zijn gekoppeld aan een grootboekrekening vaneen product -DescVentilMore=In de meeste gevallen, als u vooraf gedefinieerde producten of diensten gebruikt en u het rekeningnummer instelt op de product- / servicekaart, kan de toepassing alle koppelingen tussen uw factuurregels en de boekhoudrekening van uw rekeningschema maken, met één druk op de knop "%s". Als er geen rekenig is ingesteld op de product- / servicekaarten of als u nog enkele regels hebt die niet aan een rekening zijn gekoppeld, moet u een handmatige koppeling maken via het menu "%s". -DescVentilDoneCustomer=Bekijk hier de lijst met factuurregels en hun grootboekrekening -DescVentilTodoCustomer=Koppel factuurregels welke nog niet verbonden zijn met een product grootboekrekening -ChangeAccount=Wijzig de product/dienst grootboekrekening voor geselecteerde regels met de volgende grootboekrekening: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Raadpleeg hier de lijst met leveranciers-factuurregels die al dan niet zijn gekoppeld aan een product-grootboekrekening (alleen records die nog niet zijn overgedragen in de boekhouding zijn zichtbaar) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Raadpleeg hier de regels van de leveranciers facturen en hun tegenrekening DescVentilTodoExpenseReport=Koppel kosten-boekregels aan grootboekrekeningen welke nog niet zijn vastgelegd DescVentilExpenseReport=Hier kunt u de lijst raadplegen van kostenregels om te koppelen aan een grootboekrekening (of niet). @@ -279,31 +285,31 @@ DescVentilExpenseReportMore=Als u een account instelt op het type onkostendeclar DescVentilDoneExpenseReport=Hier kunt u de lijst raadplegen van kostenregels met hun tegenrekening Closure=Jaarafsluiting -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Valideer wijzigingen +DescClosure=Raadpleeg hier het aantal bewegingen per maand nog niet gevalideerd & vergrendeld +OverviewOfMovementsNotValidated=Overzicht van bewegingen niet gevalideerd en vergrendeld +AllMovementsWereRecordedAsValidated=Alle bewegingen werden geregistreerd als gevalideerd en vergrendeld +NotAllMovementsCouldBeRecordedAsValidated=Niet alle bewegingen konden als gevalideerd en vergrendeld worden geregistreerd +ValidateMovements=Valideer en vergrendel bewegingen... DescValidateMovements=Elke wijziging of verwijdering van inboeken, afletteren en verwijderingen is verboden. Alle boekingen moeten worden gevalideerd, anders is afsluiten niet mogelijk -ValidateHistory=Automatisch boeken +ValidateHistory=Automatisch afstemmen AutomaticBindingDone=Automatische bindings uitgevoerd (%s) - Automatische binding was niet mogelijk voor record (%s) -ErrorAccountancyCodeIsAlreadyUse=Fout. U kunt geen grootboekrekening verwijderen welke in gebruik is. -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Beweging niet correct gebalanceerd. Debet = %s & Credit = %s Balancing=Balansen FicheVentilation=Koppelen card GeneralLedgerIsWritten=Grootboek transacties GeneralLedgerSomeRecordWasNotRecorded=Sommige transacties konden niet worden doorgeboekt. Als er geen andere foutmelding is, komt dit waarschijnlijk omdat ze reeds zijn doorgeboekt. NoNewRecordSaved=Geen record meer om over te zetten -ListOfProductsWithoutAccountingAccount=Overzicht van producten welke nog niet zijn gekoppeld aan een grootboekrekening +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Wijzig koppeling Accounted=Geboekt in grootboek NotYetAccounted=Nog niet overgezet naar boekhouding ShowTutorial=Handleiding weergeven NotReconciled=Niet afgestemd WarningRecordWithoutSubledgerAreExcluded=Pas op, alle bewerkingen zonder gedefinieerde sub grootboekrekening worden gefilterd en uitgesloten van deze weergave -AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +AccountRemovedFromCurrentChartOfAccount=Boekhoudrekening die niet bestaat in het huidige rekeningschema ## Admin BindingOptions=Koppelmogelijkheden @@ -319,9 +325,10 @@ AccountingJournalType1=Overige bewerkingen AccountingJournalType2=Verkopen AccountingJournalType3=Aankopen AccountingJournalType4=Bank -AccountingJournalType5=Kostenoverzicht +AccountingJournalType5=Declaraties AccountingJournalType8=Voorraad AccountingJournalType9=HAS-nieuw +GenerationOfAccountingEntries=Genereren van boekhoudkundige boekingen ErrorAccountingJournalIsAlreadyUse=Dit dagboek is al in gebruik AccountingAccountForSalesTaxAreDefinedInto=Opmerking: Grootboekrekeningen voor BTW worden vastgelegd in menukeuze %s-%s NumberOfAccountancyEntries=Aantal boekingen @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Aantal veranderingen ACCOUNTING_DISABLE_BINDING_ON_SALES=Schakel het koppelen en doorboeken naar de boekhouding van verkopen uit (facturen van klanten worden niet opgenomen in de boekhouding) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Schakel het koppelen en doorboeken naar de boekhouding van inkopen uit (facturen van leveranciers worden niet doorgeboekt in de boekhouding) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Schakel het koppelen en doorboeken naar de boekhouding van onkostendeclaraties uit (met onkostendeclaraties wordt geen rekening gehouden in de boekhouding) +ACCOUNTING_ENABLE_LETTERING=Schakel de afletteren functie in de boekhouding in ## Export +NotExportLettering=Exporteer het afletteren niet bij het genereren van het bestand NotifiedExportDate=Geëxporteerde regels markeren als geëxporteerd (om een regel te wijzigen, moet u de hele transactie verwijderen en opnieuw in de boekhouding opnemen) -NotifiedValidationDate=Valideer en vergrendel de geëxporteerde items (hetzelfde effect als de functie "Sluiting", wijziging en verwijdering van de regels is ZEKER niet mogelijk) +NotifiedValidationDate=Valideer en vergrendel de geëxporteerde items (hetzelfde effect als de functie "%s", wijziging en verwijdering van de regels is ZEKER niet mogelijk) DateValidationAndLock=Datum validatie en vergrendelen ConfirmExportFile=Bevestiging van het genereren van het boekhoudkundige exportbestand ? ExportDraftJournal=Journaal exporteren @@ -398,19 +407,24 @@ Calculated=Berekend Formula=Formule ## Reconcile -Unlettering=Unreconcile -AccountancyNoLetteringModified=No reconcile modified -AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified -AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified -AccountancyNoUnletteringModified=No unreconcile modified -AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified -AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified +LetteringAuto=Automatisch afstemmen +LetteringManual=Handboek afstemmen +Unlettering=niet afstemmen +UnletteringAuto=Auto niet afstemmen +UnletteringManual=niet-afstemmen handleiding +AccountancyNoLetteringModified=Geen afstemming gewijzigd +AccountancyOneLetteringModifiedSuccessfully=Eén afstemming succesvol gewijzigd +AccountancyLetteringModifiedSuccessfully=%s afstemming succesvol gewijzigd +AccountancyNoUnletteringModified=Geen verzoening gewijzigd +AccountancyOneUnletteringModifiedSuccessfully=Eén onafstemming succesvol gewijzigd +AccountancyUnletteringModifiedSuccessfully=%s afstemmen succesvol gewijzigd ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk automatische afstemming ongedaan maken bevestiging +ConfirmMassUnletteringManual=Bulk handmatige afstemming ongedaan maken bevestiging +ConfirmMassUnletteringQuestion=Weet u zeker dat u de %s geselecteerde record(s) wilt ontkoppelen? ConfirmMassDeleteBookkeepingWriting=Bevestiging bulk verwijdering -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeleteBookkeepingWritingQuestion=Hiermee wordt de transactie uit de boekhouding verwijderd (alle regels die betrekking hebben op dezelfde transactie worden verwijderd) Weet u zeker dat u de geselecteerde record(en) van %s wilt verwijderen? ## Error SomeMandatoryStepsOfSetupWereNotDone=Sommige verplichte stappen zijn nog niet volledig uitgevoerd. Maak deze alsnog. @@ -424,9 +438,10 @@ Binded=Geboekte regels ToBind=Te boeken regels UseMenuToSetBindindManualy=Regels die nog niet zijn gebonden, gebruik het menu %s om de binding handmatig te maken SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry, deze module is niet compatibel met de experimentele functie van situatiefacturen -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code -AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 -AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +AccountancyErrorMismatchLetterCode=Mismatch in afstemmingscode +AccountancyErrorMismatchBalanceAmount=Het saldo (%s) is niet gelijk aan 0 +AccountancyErrorLetteringBookkeeping=Er zijn fouten opgetreden met betrekking tot de transacties: %s +ErrorAccountNumberAlreadyExists=Het boekhoudnummer %s bestaat al ## Import ImportAccountingEntries=Boekingen @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multivalutacode (Idevise) DateExport=Exportdatum WarningReportNotReliable=Waarschuwing, dit rapport is niet gebaseerd op het grootboek, dus bevat het niet de transactie die handmatig in het grootboek is gewijzigd. Als uw journalisatie up-to-date is, is de weergave van de boekhouding nauwkeuriger. ExpenseReportJournal=Kostenoverzicht -InventoryJournal=Inventarisatie NAccounts=%s accounts diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index 446e8b780ff..4bba34f36e4 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Cliënt collatie WarningModuleNotActive=Module %s dient te worden ingeschakeld WarningOnlyPermissionOfActivatedModules=Hier worden alleen de rechten van geactiveerde modules weergegeven. U kunt andere modules activeren in het menu Home > Instellingen > Modules DolibarrSetup=Installatie of update van Dolibarr -InternalUser=Interne gebruiker -ExternalUser=Externe gebruiker InternalUsers=Interne gebruikers ExternalUsers=Externe gebruikers UserInterface=Gebruikersomgeving @@ -109,7 +107,7 @@ NextValueForReplacements=Volgende waarde (vervangingen) MustBeLowerThanPHPLimit=Opmerking: uw PHP-configuratie beperkt momenteel de maximale bestandsgrootte voor uploaden tot %s %s, ongeacht de waarde van deze parameter NoMaxSizeByPHPLimit=Opmerking: Geen limiet ingesteld in uw PHP instellingen MaxSizeForUploadedFiles=Maximale grootte voor geüploade bestanden (0 om uploaden niet toe te staan) -UseCaptchaCode=Gebruik een grafische code (CAPTCHA) op de aanmeldingspagina (SPAM preventie) +UseCaptchaCode=Gebruik grafische code (CAPTCHA) op de inlogpagina en sommige openbare pagina's AntiVirusCommand=Het volledige pad naar het antiviruscommando AntiVirusCommandExample=Voorbeeld voor ClamAv Daemon (vereist clamav-daemon): / usr / bin / clamdscan
    Voorbeeld voor ClamWin (erg langzaam): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Aanvullende parameters op de opdrachtregel @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-host (standaard waarde in php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-poort (niet gedefinieerd in PHP op Unix-achtige systemen) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (niet gedefinieerd in PHP op Unix-achtige systemen) MAIN_MAIL_EMAIL_FROM=E-mail afzender voor automatische e-mails (standaardwaarde in php.ini: %s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=E-mailadres voor gebruikt foute e-mails (velden 'Fout-Aan' in verzonden e-mails) MAIN_MAIL_AUTOCOPY_TO= Kopieer (BCC) alle verzonden e-mails naar MAIN_DISABLE_ALL_MAILS=Schakel alle e-mailverzending uit (voor testdoeleinden of demo's) @@ -439,8 +438,10 @@ Unique=Uniek Boolean=Boolean (één checkbox) ExtrafieldPhone = Telefoon ExtrafieldPrice = Prijs +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = E-mail ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Keuze lijst ExtrafieldSelectList = Kies uit tabel ExtrafieldSeparator=Scheidingsteken (geen veld) @@ -477,7 +478,7 @@ InstalledInto=Geïnstalleerd in directory %s BarcodeInitForThirdparties=Massa streepjescode init voor derde partijen BarcodeInitForProductsOrServices=Massa barcode init of reset voor producten of diensten CurrentlyNWithoutBarCode=Momenteel hebt u een %s record op %s%s zonder gedefinieerde streepjescode. -InitEmptyBarCode=Init waarde voor de volgende %s lege records +InitEmptyBarCode=Init-waarde voor de %s lege barcodes EraseAllCurrentBarCode=Wis alle huidige barcode waarden ConfirmEraseAllCurrentBarCode=Weet u zeker dat u alle huidige streepjescode-waarden wilt wissen? AllBarcodeReset=Alle barcode waarden zijn verwijderd @@ -501,10 +502,11 @@ WarningPHPMail=WAARSCHUWING: De instelling om e-mails te verzenden vanuit de app WarningPHPMailA=- Het gebruik van de server van de e-mailserviceprovider verhoogt de betrouwbaarheid van uw e-mail. Dus het verhoogt de kans te worden afgeleverd zonder te worden gemarkeerd als SPAM WarningPHPMailB=- Sommige e-mailproviders (zoals Yahoo) staan niet toe dat u een e-mail verzendt vanaf een andere server dan hun eigen server. Uw huidige installatie gebruikt de server van de applicatie om e-mail te verzenden en niet de server van uw e-mailprovider, dus sommige ontvangers (degene die compatibel zijn met het beperkende DMARC-protocol) zullen uw e-mailprovider vragen of zij uw e-mail kunnen accepteren en sommige e-mailproviders (zoals Yahoo) reageert mogelijk "nee" omdat de server niet van hen is, dus enkele van uw verzonden e-mails worden mogelijk niet geaccepteerd voor bezorging (let ook op de verzendquota van uw e-mailprovider). WarningPHPMailC=- Het gebruik van de SMTP-server van uw eigen e-mailserviceprovider om e-mails te verzenden is ook interessant, dus alle e-mails die vanuit de toepassing worden verzonden, worden ook opgeslagen in uw "Verzonden" -map van uw mailbox. -WarningPHPMailD=Ook is het daarom aan te raden om de verzendmethode van e-mails te wijzigen naar de waarde "SMTP". Als je echt de standaard "PHP"-methode wilt behouden om e-mails te verzenden, negeer deze waarschuwing dan, of verwijder hem door de constante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP op 1 te zetten in Startpagina - Instellingen - Overig. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Als uw e-mail SMTP-provider de e-mailclient moet beperken tot bepaalde IP-adressen (zeer zeldzaam), is dit het IP-adres van de mail user agent (MUA) voor uw ERP CRM-toepassing: %s. WarningPHPMailSPF=Als de domeinnaam in je e-mailadres van de afzender beschermd is door een SPF record (vraag je domeinnaam registrar), dan moet je de volgende IP's toevoegen in het SPF record van de DNS van je domein: %s . -ActualMailSPFRecordFound=Werkelijk SPF-record gevonden: %s +ActualMailSPFRecordFound=Werkelijk SPF-record gevonden (voor e-mail %s): %s ClickToShowDescription=Klik voor omschrijving DependsOn=Deze module heeft de module(s) nodig RequiredBy=Deze module is vereist bij module(s) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Voorbeeld:
    Voor het formulier om een nie PageUrlForDefaultValuesList=
    Voorbeeld:
    Voor de pagina met een lijst van relaties, is dit %s .
    Voor de URL van externe modules die in de aangepaste map zijn geïnstalleerd, moet u de "custom /" niet opnemen, dus gebruik een pad zoals mymodule / mypagelist.php en niet custom / mymodule / mypagelist.php.
    Als u standaardwaarde alleen als url heeft enkele parameter wilt, kunt u gebruik maken van %s AlsoDefaultValuesAreEffectiveForActionCreate=Merk ook op dat het overschrijven van standaardwaarden voor het maken van formulieren alleen werkt voor pagina's die correct zijn ontworpen (dus met parameteractie = maken of aanpassen ...) EnableDefaultValues=Aanpassing van standaardwaarden inschakelen -EnableOverwriteTranslation=Schakel het gebruik van de overschreven vertaling in +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Er is een vertaling gevonden voor de sleutel met deze code. Om deze waarde te wijzigen, moet u deze bewerken vanuit Home-Setup-vertaling. WarningSettingSortOrder=Pas op. Het instellen van een standaardsorteervolgorde kan resulteren in een technische fout wanneer u op de lijstpagina gaat als veld een onbekend veld is. Als u een dergelijke fout ondervindt, gaat u terug naar deze pagina om de standaard sorteervolgorde te verwijderen en het standaardgedrag te herstellen. Field=veld @@ -645,9 +647,9 @@ Module2400Name=Gebeurtenissen/Agenda Module2400Desc=Volgen van gebeurtenissen. Registreer automatische gebeurtenissen voor vastleggingen of neem handmatige gebeurtenissen of vergaderingen op. Dit is de belangrijkste module voor goed klant- of leveranciersrelatiebeheer. Module2500Name=DMS / ECM Module2500Desc=Document Management System / Electronic Content Management. Geautomatiseerde organisatie van gemaakte en opgeslagen documenten. Deel deze indien gewenst. -Module2600Name=API/Web services (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Schakel de Dolibarr SOAP server in die API services aanbiedt -Module2610Name=API / webservices (REST-server) +Module2610Name=API / Web services (REST server) Module2610Desc=Schakel de Dolibarr REST-server in die API-services biedt Module2660Name=Aanroepen WebServices (SOAP-client) Module2660Desc=Schakel de Dolibarr-webserviceclient in (kan worden gebruikt om gegevens / verzoeken naar externe servers te pushen. Alleen inkooporders worden momenteel ondersteund.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Functies toevoegen om Incoterms te beheren Module63000Name=Bronnen Module63000Desc=Beheer middelen (printers, auto's, kamers, ...) voor toewijzing aan evenementen +Module94160Name=Ontvangsten Permission11=Bekijk afnemersfacturen Permission12=Creëer / wijzigen afnemersfacturen Permission13=Klantfacturen laten vervallen @@ -714,13 +717,14 @@ Permission27=Verwijder offertes Permission28=Exporteer offertes Permission31=Bekijk producten / diensten Permission32=Maak / wijzig producten en diensten +Permission33=Lees prijzen producten Permission34=Verwijderen producten / diensten Permission36=Exporteer producten / diensten Permission38=Export producten Permission39=Negeer minimum prijs -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Lees projecten en taken (gedeelde projecten en projecten waarvan ik een contactpersoon ben). +Permission42=Aanmaken/wijzigen van projecten (gedeelde projecten en projecten waarvan ik een contactpersoon ben). Kan gebruikers ook toewijzen aan projecten en taken +Permission44=Verwijder projecten (gedeelde projecten en projecten waarvan ik een contactpersoon ben) Permission45=Exporteer projecten Permission61=Bekijk interventies Permission62=Creëer / wijzig interventies @@ -739,6 +743,7 @@ Permission79=Creëer / wijzigen abonnementen Permission81=Bekijk afnemersopdrachten Permission82=Creëer / wijzig afnemersopdrachten Permission84=Valideer afnemersopdrachten +Permission85=Genereer de documenten verkooporders Permission86=Verzend afnemersopdrachten Permission87=Sluit afnemersopdrachten Permission88=Annuleer afnemersopdrachten @@ -766,10 +771,10 @@ Permission122=Creëer / wijzig derden gelinkt aan gebruiker Permission125=Verwijderen van derden gelinkt aan gebruiker Permission126=Exporteer derden Permission130=Aanmaken/wijzigen van betalingsgegevens van derden -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=Lees alle projecten en taken (evenals de privéprojecten waarvoor ik geen contactpersoon ben) +Permission142=Aanmaken/wijzigen van alle projecten en taken (evenals de privéprojecten waarvoor ik geen contactpersoon ben) +Permission144=Verwijder alle projecten en taken (evenals de privéprojecten waar ik geen contact mee ben) +Permission145=Kan de verbruikte tijd voor mij of mijn hiërarchie invoeren voor toegewezen taken (Timesheet) Permission146=Bekijk leveranciers Permission147=Bekijk statistieken Permission151=Inlezen incasso-opdracht @@ -840,9 +845,9 @@ Permission286=Contactpersonen exporteren Permission291=Tarieven inzien Permission292=Stel rechten voor tarieven in Permission293=Wijzig klant-tarieven -Permission300=Barcodes lezen -Permission301=Barcodes maken/wijzigen -Permission302=Verwijder barcodes +Permission301=Generate PDF sheets of barcodes +Permission304=Barcodes maken/wijzigen +Permission305=Verwijder barcodes Permission311=Diensten inzien Permission312=Dienst/abonnement aan het contract toevoegen Permission331=Bekijk weblinks @@ -874,6 +879,7 @@ Permission525=Toegang lening calculator Permission527=Export leningen Permission531=Diensten inzien Permission532=Creëren / wijzigen van diensten +Permission533=Lees prijzen diensten Permission534=Diensten verwijderen Permission536=Inzien / beheren van verborgen diensten Permission538=Diensten exporteren @@ -884,9 +890,9 @@ Permission564=Vastleggen verwerkingen/weigeringen van overboekingen Permission601=Lees stickers Permission602=Stickers maken/wijzigen Permission609=Verwijder etiketten -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants +Permission611=Kenmerken van varianten lezen +Permission612=Kenmerken van varianten maken/bijwerken +Permission613=Kenmerken van varianten verwijderen Permission650=Lees stuklijsten Permission651=Materiaalrekeningen maken / bijwerken Permission652=Materiaalrekeningen verwijderen @@ -968,13 +974,14 @@ Permission3301=Maak nieuwe modules Permission4001=Lees vaardigheid/baan/positie Permission4002=Vaardigheid/baan/positie aanmaken/wijzigen Permission4003=Vaardigheid/baan/positie verwijderen -Permission4020=Evaluaties lezen -Permission4021=Maak/wijzig uw evaluatie -Permission4022=Evaluatie valideren -Permission4023=Evaluatie verwijderen -Permission4030=Zie vergelijkingsmenu -Permission4031=Read personal information -Permission4032=Write personal information +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Evaluatie valideren +Permission4025=Evaluatie verwijderen +Permission4028=Zie vergelijkingsmenu +Permission4031=Persoonlijke informatie lezen +Permission4032=Schrijf persoonlijke informatie +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Lees website-inhoud Permission10002=Website-inhoud maken / wijzigen (HTML- en JavaScript-inhoud) Permission10003=Creëer / wijzig website-inhoud (dynamische php-code). Gevaarlijk, moet worden voorbehouden aan beperkte ontwikkelaars. @@ -1074,10 +1081,14 @@ DictionaryExpenseTaxCat=Onkostenoverzicht - Vervoerscategorieën DictionaryExpenseTaxRange=Onkostenoverzicht - bereik per transportcategorie DictionaryTransportMode=Intracomm rapport - Transportmodus DictionaryBatchStatus=Status product partij/serie kwaliteitscontrole -DictionaryAssetDisposalType=Type of disposal of assets +DictionaryAssetDisposalType=Type vervreemding van activa TypeOfUnit=Type eenheid SetupSaved=Instellingen opgeslagen SetupNotSaved=Installatie niet opgeslagen +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Terug naar modulelijst BackToDictionaryList=Terug naar woordenboekenlijst TypeOfRevenueStamp=Soort belastingstempel @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Waarde van een configuratieconstante ConstantIsOn=Optie %s is ingeschakeld NbOfDays=Aantal dagen AtEndOfMonth=Aan het einde van de maand -CurrentNext=Huidige/volgende +CurrentNext=Een bepaalde dag in de maand Offset=Offset (afstand) AlwaysActive=Altijd actief Upgrade=Bijwerken @@ -1235,11 +1246,13 @@ BrowserName=Browser naam BrowserOS=Browser OS ListOfSecurityEvents=Lijst van Dolibarr veiligheidgebeurtenisen SecurityEventsPurged=Beveiliging gebeurtenissen verwijderd +TrackableSecurityEvents=Traceerbare beveiligingsgebeurtenissen LogEventDesc=Schakel logboekregistratie in voor specifieke beveiligingsgebeurtenissen. Administrators het logboek via menu %s - %s . Waarschuwing, deze functie kan een grote hoeveelheid gegevens in de database genereren. AreaForAdminOnly=Setup functies kunnen alleen door Administrator gebruikers worden ingesteld SystemInfoDesc=Systeeminformatie is technische informatie welke u in alleen-lezen modus krijgt en alleen door beheerders is in te zien. SystemAreaForAdminOnly=Dit gebied is alleen beschikbaar voor beheerders. Gebruikersrechten van Dolibarr kunnen deze beperking niet wijzigen. CompanyFundationDesc=Bewerk de gegevens van uw bedrijf / organisatie. Klik op de knop "%s" onderaan de pagina als u klaar bent. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Als u een externe accountant / boekhouder hebt, kunt u hier de informatie bewerken. AccountantFileNumber=Accountant code DisplayDesc=Parameters die van invloed zijn op het uiterlijk en de presentatie van de applicatie kunnen hier worden gewijzigd. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=U dient dit commando vanaf de o YourPHPDoesNotHaveSSLSupport=SSL functies niet beschikbaar in uw PHP installatie DownloadMoreSkins=Meer uiterlijkthema's om te downloaden SimpleNumRefModelDesc=Retourneert het referentienummer in de notatie %syymm-nnnn waarbij yy het jaar is, mm de maand en nnnn een opeenvolgend automatisch oplopend getal is zonder reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Retourneert het referentienummer in de notatie %syymm-nnnn waarbij yy het jaar is, mm de maand en nnnn een opeenvolgend automatisch oplopend getal is zonder reset SimpleNumRefNoDateModelDesc=Retourneert het referentienummer in de notatie %s-nnnn waarbij nnnn een opeenvolgend automatisch oplopend getal is zonder reset ShowProfIdInAddress=Toon professionele ID met adressen ShowVATIntaInAddress=Verberg intracommunautair btw-nummer @@ -1346,7 +1361,7 @@ TransKeyWithoutOriginalValue=U hebt een nieuwe vertaling geforceerd voor de vert TitleNumberOfActivatedModules=Geactiveerde modules TotalNumberOfActivatedModules=Geactiveerde modules: %s / %s YouMustEnableOneModule=Je moet minstens 1 module activeren -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +YouMustEnableTranslationOverwriteBefore=U moet eerst het overschrijven van vertalingen inschakelen om een vertaling te mogen vervangen ClassNotFoundIntoPathWarning=Klasse %s niet gevonden in PHP-pad YesInSummer=Ja in de zomer OnlyFollowingModulesAreOpenedToExternalUsers=Merk op dat alleen de volgende modules beschikbaar zijn voor externe gebruikers (ongeacht de machtigingen van dergelijke gebruikers) en alleen als machtigingen worden verleend:
    @@ -1376,7 +1391,7 @@ GetBarCode=Haal barcode NumberingModules=Nummeringsmodellen DocumentModules=Documentmodellen ##### Module password generation -PasswordGenerationStandard=Retourneer een wachtwoord dat is gegenereerd volgens het interne Dolibarr-algoritme: %s-tekens met gedeelde cijfers en tekens in kleine letters. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Stel geen gegenereerd wachtwoord voor. Wachtwoord moet handmatig worden ingevoerd. PasswordGenerationPerso=Retourneer een wachtwoord volgens uw persoonlijk gedefinieerde configuratie. SetupPerso=Volgens uw configuratie @@ -1428,8 +1443,12 @@ WatermarkOnDraftInvoices=Watermerk op ontwerp-facturen (geen indien leeg) PaymentsNumberingModule=Nummeringsmodel voor betalingen SuppliersPayment=Leveranciersbetalingen SupplierPaymentSetup=Instelling leveranciersbetalingen -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceCheckPosteriorDate=Factuurdatum controleren vóór validatie +InvoiceCheckPosteriorDateHelp=Het valideren van een factuur is niet toegestaan als de datum eerder ligt dan de datum van de laatste factuur van hetzelfde type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Offertemoduleinstellingen ProposalsNumberingModules=Offertenummeringmodules @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Watermerk op voorlopige contracten (leeg=geen) ##### Members ##### MembersSetup=Ledenmoduleinstellingen MemberMainOptions=Hoofdopties +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Beheren van een login voor elk lid AdherentMailRequired=E-mail vereist om een nieuw lid te maken MemberSendInformationByMailByDefault=Vinkvakje om een bevestigingse-mail te sturen naar leden (validatie van nieuwe abonnementen). Staat standaard aan. MemberCreateAnExternalUserForSubscriptionValidated=Maak een externe gebruikerslogin aan voor elk gevalideerd nieuw lidmaatschap -VisitorCanChooseItsPaymentMode=Bezoeker kan kiezen uit beschikbare betalingsmodi +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Automatische herinnering per e-mail inschakelen voor verlopen abonnementen. Opmerking: Module %s moet zijn ingeschakeld en correct zijn ingesteld om herinneringen te verzenden. MembersDocModules=Documentsjablonen voor documenten die zijn gegenereerd op basis van een ledenrecord ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Activeer FCKeditor voor: FCKeditorForNotePublic=WYSIWIG creatie/editie van het veld "openbare notities" van elementen FCKeditorForNotePrivate=WYSIWIG creatie/editie van het veld "private notes" van elementen FCKeditorForCompany=WYSIWIG creatie/editie van de veldbeschrijving van elementen (behalve producten/diensten) -FCKeditorForProduct=WYSIWIG creatie/editie van de veldbeschrijving van producten/diensten -FCKeditorForProductDetails=WYSIWIG creatie / editie van productdetails regels voor alle entiteiten (voorstellen, bestellingen, facturen, enz ...). Waarschuwing: het gebruik van deze optie in dit geval wordt serieus niet aanbevolen, aangezien het problemen kan veroorzaken met speciale tekens en paginaopmaak bij het samenstellen van PDF-bestanden. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG creatie / bewerking van mailings FCKeditorForUserSignature=WYSIWIG creatie /aanpassing van ondertekening FCKeditorForMail=WYSIWIG creatie / bewerking voor alle e-mail (behalve Gereedschap-> E-mailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Menuverwerker waar het nieuwe menu getoond moet worden DetailMenuModule=Modulenaam als menu-item van een module afkomstig is DetailType=Menutype (boven of links (Top of Left)TODO) DetailTitre=Menulabel of labelcode voor de vertaling -DetailUrl=URL waar het menu naar linkt (Absolute URL-link of externe link met http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Voorwaarde voor het wel of niet tonen van het menu-item DetailRight=Voorwaarde om onbevoegde grijze menu's weer te geven DetailLangs=.lang bestandsnaam voor labelcodevertaling @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Voorraadafname in POS is niet compati CashDeskYouDidNotDisableStockDecease=U hebt de voorraaddaling niet uitgeschakeld bij een verkoop vanuit het verkooppunt. Daarom is een magazijn vereist. CashDeskForceDecreaseStockLabel=Afname van voorraad voor batchproducten werd geforceerd. CashDeskForceDecreaseStockDesc=Verlaag eerst met de oudste eet- en verkoopdata. -CashDeskReaderKeyCodeForEnter=Code voor "Enter" gedefinieerd in barcodescanner (Voorbeeld: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Weblinkmoduleinstellingen BookmarkDesc=Met deze module kunt u bladwijzers beheren. U kunt ook snelkoppelingen toevoegen aan Dolibarr-pagina's of externe websites in het linkermenu. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Nummeringsmodellen voor leveranciersfacturen IfSetToYesDontForgetPermission=Als deze is ingesteld op een niet-nulwaarde, vergeet dan niet om machtigingen te verstrekken aan groepen of gebruikers die zijn toegestaan voor de tweede goedkeuring ##### GeoIPMaxmind ##### GeoIPMaxmindSetup="GeoIP Maxmind"-moduleinstellingen -PathToGeoIPMaxmindCountryDataFile=Pad naar bestand met Maxmind IP-vertaling naar land.
    Voorbeelden:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Let op dat uw "GeoIP Maxmind"-landbestand zich bevind in een map die door uw PHP-installatie kan worden gelezen (Controleer uwPHP open_basedir instelling en de bestandsrechten). YouCanDownloadFreeDatFileTo=U kunt een gratis demo versie downloaden van een "Maxmind GeoIP"-landbestand op het adres %s. YouCanDownloadAdvancedDatFileTo=U kunt ook een completere versie, met updates downloaden van het "Maxmind GeoIP"-landbestand op het adres %s. @@ -1922,12 +1942,13 @@ BackupDumpWizard=Wizard om een database-dumpbestand aan te maken BackupZipWizard=Wizard om een archief met documentenmap te maken SomethingMakeInstallFromWebNotPossible=Installatie van externe module is niet mogelijk via de webinterface om de volgende reden: SomethingMakeInstallFromWebNotPossible2=Om deze reden is het hier beschreven upgradeproces een handmatig proces dat alleen een bevoorrechte gebruiker mag uitvoeren. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Installeren van externe module van toepassing is uitgeschakeld door uw beheerder. Je moet hem vragen om het bestand %s te verwijderen om deze functie mogelijk te maken. ConfFileMustContainCustom=Het installeren of bouwen van een externe module vanuit de applicatie moet de modulebestanden opslaan in de map %s . Om deze map door Dolibarr te laten verwerken, moet u uw conf / conf.php instellen om de 2 richtlijnregels toe te voegen:
    $ dolibarr_main_url_root_alt = '/ custom'
    $ dolibarr_main_document_root_alt = '%s / custom' HighlightLinesOnMouseHover=Markeer tabellijnen wanneer u er met de muis overheen gaat HighlightLinesColor=Markeer de kleur van de lijn wanneer de muis overgaat (gebruik 'ffffff' voor geen hoogtepunt) HighlightLinesChecked=Markeer de kleur van de lijn wanneer deze is aangevinkt (gebruik 'ffffff' voor geen hoogtepunt) -UseBorderOnTable=Show left-right borders on tables +UseBorderOnTable=Links-rechts randen op tabellen weergeven BtnActionColor=Kleur van de actieknop TextBtnActionColor=Tekstkleur van de actieknop TextTitleColor=Tekstkleur van paginatitel @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Druk op CTRL + F5 op het toetsenbord of wis de cache va NotSupportedByAllThemes=Werkt met kernthema's, mogelijk niet ondersteund door externe thema's BackgroundColor=Achtergrond kleur TopMenuBackgroundColor=Achtergrondkleur voor hoofdmenu -TopMenuDisableImages=Verberg afbeeldingen in Top menu +TopMenuDisableImages=Pictogram of tekst in hoofdmenu LeftMenuBackgroundColor=Achtergrondkleur voor linkermenu BackgroundTableTitleColor=Achtergrondkleur voor tabeltitelregel BackgroundTableTitleTextColor=Tekstkleur voor tabeltitelregel @@ -1949,7 +1970,7 @@ EnterAnyCode=Dit veld bevat een verwijzing om de lijn te identificeren. Voer een Enter0or1=Voer 0 of 1 in UnicodeCurrency=Voer hier tussen accolades in, lijst met byte-nummers die het valutasymbool vertegenwoordigen. Bijvoorbeeld: voer voor $ [36] in - voor Brazilië real R $ [82,36] - voer voor € [8364] in ColorFormat=De RGB-kleur heeft het HEX-formaat, bijvoorbeeld: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Pictogramnaam in formaat:
    - image.png voor een afbeeldingsbestand in de huidige themamap
    - image.png@module als bestand in de map /img/ van een module staat
    - fa-xxx voor een FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size voor een FontAwesome fa-xxx picto (met prefix, kleur en maatset) PositionIntoComboList=Positie van regel in combolijst SellTaxRate=BTW tarief RecuperableOnly=Ja voor BTW "Niet waargemaakt maar herstelbaar", bestemd voor een deelstaat in Frankrijk. Houd in alle andere gevallen de waarde "Nee" aan. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Inkooporders MailToSendSupplierInvoice=Inkoopfacturen MailToSendContract=Contracten MailToSendReception=Ontvangsten +MailToExpenseReport=Declaraties MailToThirdparty=Derde partijen MailToMember=Leden MailToUser=Gebruikers @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Rechter marge op PDF MAIN_PDF_MARGIN_TOP=Bovenmarge op PDF MAIN_PDF_MARGIN_BOTTOM=Onder-marge op PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Hoogte voor logo op PDF +DOC_SHOW_FIRST_SALES_REP=Toon eerste vertegenwoordiger MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Kolom toevoegen voor afbeelding op voorstelregels MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Breedte van de kolom als een afbeelding op lijnen is toegevoegd MAIN_PDF_NO_SENDER_FRAME=Verberg randen op frame van afzenderadres @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Verwijder speciale tekens COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter om waarde te reinigen (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter om waarde op te schonen (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Dupliceren niet toegestaan +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Functionaris voor gegevensbescherming (DPO, gegevensprivacy of GDPR-contact) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Als u persoonsgegevens opslaat in uw Informatiesysteem, kunt u hier de contactpersoon noemen die verantwoordelijk is voor de Algemene Verordening Gegevensbescherming HelpOnTooltip=Help-tekst om op knopinfo weer te geven HelpOnTooltipDesc=Plaats hier tekst of een vertaalsleutel zodat de tekst in een knopinfo kan worden weergegeven wanneer dit veld in een formulier wordt weergegeven YouCanDeleteFileOnServerWith=U kunt dit bestand op de server verwijderen met de opdrachtregel:
    %s @@ -2059,39 +2084,47 @@ VATIsUsedIsOff=Opmerking: De optie om omzetbelasting of btw te gebruiken is inge SwapSenderAndRecipientOnPDF=Wissel afzender- en ontvangeradrespositie op PDF-documenten in FeatureSupportedOnTextFieldsOnly=Waarschuwing, functie wordt alleen ondersteund op tekstvelden en combolijsten. Er moet ook een URL-parameter action=create of action=edit worden ingesteld OF de paginanaam moet eindigen op 'new.php' om deze functie te activeren. EmailCollector=Email verzamelaar +EmailCollectors=E-mailverzamelaars EmailCollectorDescription=Voeg een geplande taak en een installatiepagina toe om regelmatig e-mailboxen te scannen (met het IMAP-protocol) en ontvangen e-mails op te nemen in uw toepassing, op de juiste plaats en / of maak automatisch enkele records aan (zoals leads). NewEmailCollector=Nieuwe e-mailverzamelaar EMailHost=Host van e-mail IMAP-server +EMailHostPort=Poort van e-mail IMAP-server +loginPassword=Login wachtwoord +oauthToken=Oauth2-token +accessType=Toegangstype: +oauthService=Oauth-service +TokenMustHaveBeenCreated=Module OAuth2 moet zijn ingeschakeld en er moet een OAuth2-token zijn gemaakt met de juiste machtigingen (bijvoorbeeld scope "gmail_full" met OAuth voor Gmail). MailboxSourceDirectory=Brondirectory van mailbox MailboxTargetDirectory=Doeldirectory voor mailbox EmailcollectorOperations=Operaties te doen door verzamelaar EmailcollectorOperationsDesc=Bewerkingen worden op volgorde begin tot eind uitgevoerd MaxEmailCollectPerCollect=Max aantal verzamelde e-mails per verzameling +TestCollectNow=Test collect CollectNow=Verzamel nu -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? +ConfirmCloneEmailCollector=Weet u zeker dat u de e-mailcollector %s wilt klonen? DateLastCollectResult=Datum laatste poging van verzamelen DateLastcollectResultOk=Datum van laatste succesvolle verzamelen LastResult=Laatste resultaat -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeaders=Neem de inhoud van de e-mailheader niet op in de opgeslagen inhoud van verzamelde e-mails +EmailCollectorHideMailHeadersHelp=Indien ingeschakeld, worden e-mailheaders niet toegevoegd aan het einde van de e-mailinhoud die is opgeslagen als een agendagebeurtenis. EmailCollectorConfirmCollectTitle=E-mail verzamelbevestiging -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorConfirmCollect=Wilt u deze verzamelaar nu gebruiken? +EmailCollectorExampleToCollectTicketRequestsDesc=Verzamel e-mails die voldoen aan bepaalde regels en maak automatisch een ticket aan (Module Ticket moet zijn ingeschakeld) met de e-mailinformatie. U kunt deze collector gebruiken als u enige ondersteuning per e-mail geeft, zodat uw ticketverzoek automatisch wordt gegenereerd. Activeer ook Collect_Responses om antwoorden van uw klant direct op de ticketweergave te verzamelen (u moet antwoorden vanuit Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Voorbeeld ophalen van het ticketverzoek (alleen eerste bericht) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan de map "Verzonden" van uw mailbox om e-mails te vinden die als antwoord op een andere e-mail rechtstreeks vanuit uw e-mailsoftware zijn verzonden en niet vanuit Dolibarr. Als een dergelijke e-mail wordt gevonden, wordt het antwoord geregistreerd in Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Voorbeeld van het verzamelen van e-mailantwoorden die zijn verzonden vanaf een externe e-mailsoftware +EmailCollectorExampleToCollectDolibarrAnswersDesc=Verzamel alle e-mails die een antwoord zijn op een e-mail die vanuit uw applicatie is verzonden. Een evenement (Module Agenda moet zijn ingeschakeld) met de e-mailreactie wordt op de goede plek vastgelegd. Als u bijvoorbeeld vanuit de applicatie een commercieel voorstel, bestelling, factuur of bericht voor een ticket per e-mail verstuurt en de ontvanger beantwoordt uw e-mail, dan zal het systeem het antwoord automatisch opvangen en toevoegen aan uw ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Voorbeeld van het verzamelen van alle inkomende berichten die antwoorden zijn op berichten die zijn verzonden vanuit Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Verzamel e-mails die voldoen aan bepaalde regels en maak automatisch een lead aan (Module Project moet zijn ingeschakeld) met de e-mailinformatie. U kunt deze collector gebruiken als u uw lead wilt volgen met de module Project (1 lead = 1 project), zodat uw leads automatisch worden gegenereerd. Als de collector Collect_Responses ook is ingeschakeld, kunt u, wanneer u een e-mail verzendt vanuit uw leads, voorstellen of een ander object, ook de antwoorden van uw klanten of partners rechtstreeks in de applicatie zien.
    Opmerking: bij dit eerste voorbeeld wordt de titel van de lead gegenereerd, inclusief de e-mail. Als de derde partij niet kan worden gevonden in de database (nieuwe klant), wordt de lead gekoppeld aan de derde partij met ID 1. +EmailCollectorExampleToCollectLeads=Voorbeeld leads verzamelen +EmailCollectorExampleToCollectJobCandidaturesDesc=Verzamel e-mails die solliciteren op vacatures (Module Recruitment moet zijn ingeschakeld). U kunt dit verzamelprogramma invullen als u automatisch een kandidatuur voor een vacatureaanvraag wilt aanmaken. Opmerking: met dit eerste voorbeeld wordt de titel van de kandidatuur gegenereerd inclusief de e-mail. +EmailCollectorExampleToCollectJobCandidatures=Voorbeeld van het verzamelen van sollicitatiebrieven die per e-mail zijn ontvangen NoNewEmailToProcess=Geen nieuwe e-mail (overeenkomende filters) om te verwerken NothingProcessed=Niets gedaan -XEmailsDoneYActionsDone=%s e-mails gekwalificeerd, %s e-mails succesvol verwerkt (voor %s record / acties gedaan) +XEmailsDoneYActionsDone=%s e-mails vooraf gekwalificeerd, %s e-mails succesvol verwerkt (voor %s record/acties uitgevoerd) RecordEvent=Een evenement opnemen in agenda (met type E-mail verzonden of ontvangen) CreateLeadAndThirdParty=Maak een lead aan (en indien nodig een derde partij) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +CreateTicketAndThirdParty=Maak een ticket aan (gekoppeld aan een derde partij als de derde partij werd geladen door een eerdere bewerking of werd geraden door een tracker in de e-mailheader, zonder andere derde partij) CodeLastResult=Laatste resultaatcode NbOfEmailsInInbox=Aantal e-mails in bronmap LoadThirdPartyFromName=Zoeken van derden laden op %s (alleen laden) @@ -2105,14 +2138,14 @@ CreateCandidature=Maak een sollicitatie FormatZip=Zip MainMenuCode=Menu toegangscode (hoofdmenu) ECMAutoTree=Toon automatische ECM-structuur -OperationParamDesc=Definieer de regels die moeten worden gebruikt om waarden te extraheren of in te stellen.
    Voorbeeld voor bewerkingen die een naam moeten extraheren uit het e-mailonderwerp:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Voorbeeld voor bewerkingen die objecten maken:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Definieer de regels die moeten worden gebruikt om bepaalde gegevens te extraheren of stel waarden in die voor de bewerking moeten worden gebruikt.

    Voorbeeld om een bedrijfsnaam uit het onderwerp van een e-mail te extraheren in een tijdelijke variabele:
    tmp_var=EXTRACT:SUBJECT:Bericht van bedrijf ([^\n]*)

    Voorbeelden om de eigenschappen van een te creëren object in te stellen:
    objproperty1=SET:een hard gecodeerde waarde
    objproperty2=SET:__tmp_var__ a0342fccfpropda19bty=objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__ a0342fccfpropda19bty=objproperty1=SET:a hard gecodeerde waarde
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    -object.objproperty object.objproperty bedrijfsnaam is\\s([^\\s]*)

    Gebruik een ; char als scheidingsteken om verschillende eigenschappen te extraheren of in te stellen. OpeningHours=Openingstijden OpeningHoursDesc=Voer hier de reguliere openingstijden van uw bedrijf in. ResourceSetup=Configuratie van bronmodule UseSearchToSelectResource=Gebruik een zoekformulier om een ​​resource te kiezen (in plaats van een vervolgkeuzelijst). DisabledResourceLinkUser=Schakel functie uit om een ​​bron te koppelen aan gebruikers DisabledResourceLinkContact=Schakel functie uit om een ​​bron te koppelen aan contacten -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Verbied het gebruik van dezelfde bron op hetzelfde moment in de agenda ConfirmUnactivation=Bevestig de module-reset OnMobileOnly=Alleen op klein scherm (smartphone) DisableProspectCustomerType=Schakel het derde type 'Prospect + klant' uit (de derde moet dus 'Prospect' of 'Klant' zijn, maar kan niet beide zijn) @@ -2157,7 +2190,7 @@ DeleteEmailCollector=E-mailverzamelaar verwijderen ConfirmDeleteEmailCollector=Weet je zeker dat je deze e-mailverzamelaar wilt verwijderen? RecipientEmailsWillBeReplacedWithThisValue=E-mails van ontvangers worden altijd vervangen door deze waarde AtLeastOneDefaultBankAccountMandatory=Er moet minimaal 1 standaardbankrekening worden gedefinieerd -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +RESTRICT_ON_IP=Geef API-toegang alleen tot bepaalde client-IP's (jokerteken niet toegestaan, gebruik spatie tussen waarden). Leeg betekent dat elke klant toegang heeft. IPListExample=127.0.0.1 192.168.0.2 [:: 1] BaseOnSabeDavVersion=Gebaseerd op de SabreDAV-versie van de bibliotheek NotAPublicIp=Geen openbaar IP @@ -2167,6 +2200,10 @@ EmailTemplate=Sjabloon voor e-mail EMailsWillHaveMessageID=E-mails hebben een tag 'Verwijzingen' die overeenkomen met deze syntaxis PDF_SHOW_PROJECT=Toon project op document ShowProjectLabel=Projectlabel +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Alias opnemen in naam van derde partij +THIRDPARTY_ALIAS=Naam derde partij - Alias derde partij +ALIAS_THIRDPARTY=Alias derde partij - Naam derde partij +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Als u wilt dat sommige teksten in uw PDF worden gedupliceerd in 2 verschillende talen in dezelfde gegenereerde PDF, moet u hier deze tweede taal instellen, zodat de gegenereerde PDF 2 verschillende talen op dezelfde pagina bevat, degene die is gekozen bij het genereren van PDF en deze ( slechts enkele PDF-sjablonen ondersteunen dit). Voor 1 taal per pdf leeg houden. PDF_USE_A=Genereer PDF-documenten met formaat PDF/A in plaats van standaard formaat PDF FafaIconSocialNetworksDesc=Voer hier de code van een FontAwesome-pictogram in. Als je niet weet wat FontAwesome is, kun je het generieke waarde fa-adresboek gebruiken. @@ -2195,12 +2232,12 @@ MailToPartnership=Vennootschap AGENDA_EVENT_DEFAULT_STATUS=Standaard gebeurtenisstatus bij het maken van een gebeurtenis vanuit het formulier YouShouldDisablePHPFunctions=U moet PHP-functies uitschakelen IfCLINotRequiredYouShouldDisablePHPFunctions=Behalve als u systeemopdrachten in aangepaste code moet uitvoeren, moet u PHP-functies uitschakelen -PHPFunctionsRequiredForCLI=Voor shell-doeleinden (zoals geplande back-up van taken of het uitvoeren van een anitivurs-programma), moet u PHP-functies behouden +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Er zijn geen beschrijfbare bestanden of mappen van de gebruikelijke programma's gevonden in uw hoofdmap (Goed) RecommendedValueIs=Aanbevolen: %s Recommended=Aanbevolen NotRecommended=Niet aangeraden -ARestrictedPath=Een beperkt pad +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Controleren op updates van externe modules CheckForModuleUpdateHelp=Deze actie maakt verbinding met editors van externe modules om te controleren of er een nieuwe versie beschikbaar is. ModuleUpdateAvailable=Een update is beschikbaar @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Geen updates gevonden voor externe modules SwaggerDescriptionFile=Swagger API-beschrijvingsbestand (voor gebruik met bijvoorbeeld redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=U hebt de verouderde WS API ingeschakeld. U moet in plaats daarvan REST API gebruiken. RandomlySelectedIfSeveral=Willekeurig geselecteerd als er meerdere foto's beschikbaar zijn +SalesRepresentativeInfo=Voor voorstellen, bestellingen, facturen. DatabasePasswordObfuscated=Databasewachtwoord is versleuteld in conf-bestand DatabasePasswordNotObfuscated=Databasewachtwoord is NIET versleuteld in conf-bestand APIsAreNotEnabled=API-modules zijn niet ingeschakeld @@ -2246,20 +2284,74 @@ PreviousHash=Vorige hash LateWarningAfter="Vertraagde" waarschuwing na TemplateforBusinessCards=Sjabloon voor een visitekaartje in een ander formaat InventorySetup= Setup inventarisatie -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +ExportUseLowMemoryMode=Gebruik een modus met weinig geheugen +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = webhook +ModuleWebhookDesc = Interface om dolibarr-triggers te vangen en naar een URL te sturen +WebhookSetup = Webhook instellen +Settings = Instellingen +WebhookSetupPage = Webhook-instellingenpagina +ShowQuickAddLink=Toon een knop om snel een element toe te voegen in het menu rechtsboven + +HashForPing=Hash gebruikt voor ping +ReadOnlyMode=Is de instantie in de modus "Alleen lezen" +DEBUGBAR_USE_LOG_FILE=Gebruik het bestand dolibarr.log om logboeken op te vangen +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Gebruik het bestand dolibarr.log om logboeken te vangen in plaats van live geheugen te vangen. Het maakt het mogelijk om alle logs op te vangen in plaats van alleen logs van het huidige proces (dus inclusief die van de ajax subrequests-pagina's), maar het zal je instance heel erg traag maken. Niet aangeraden. +FixedOrPercent=Vast (gebruik zoekwoord 'vast') of procent (gebruik zoekwoord 'procent') +DefaultOpportunityStatus=Standaard opportunitystatus (eerste status wanneer lead is gemaakt) + +IconAndText=Pictogram en tekst +TextOnly=Alleen tekst +IconOnlyAllTextsOnHover=Alleen pictogram - Alle teksten verschijnen onder het pictogram op de menubalk met muisaanwijzer +IconOnlyTextOnHover=Alleen pictogram - De tekst van het pictogram verschijnt onder het pictogram met de muisaanwijzer op het pictogram +IconOnly=Alleen pictogram - Alleen tekst op knopinfo +INVOICE_ADD_ZATCA_QR_CODE=Toon de ZATCA QR-code op facturen +INVOICE_ADD_ZATCA_QR_CODEMore=Sommige Arabische landen hebben deze QR-code nodig op hun facturen +INVOICE_ADD_SWISS_QR_CODE=Toon de Zwitserse QR-factuurcode op facturen +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=URL-link van sociaal netwerk. Gebruik {socialid} voor het variabele deel dat de sociale netwerk-ID bevat. +IfThisCategoryIsChildOfAnother=Als deze categorie een kind is van een andere +DarkThemeMode=Donkere themamodus +AlwaysDisabled=Altijd uitgeschakeld +AccordingToBrowser=Volgens browser +AlwaysEnabled=Altijd ingeschakeld +DoesNotWorkWithAllThemes=Werkt niet met alle thema's +NoName=Geen naam +ShowAdvancedOptions= Toon geavanceerde opties +HideAdvancedoptions= Geavanceerde opties verbergen +CIDLookupURL=De module brengt een URL die door een externe tool kan worden gebruikt om de naam van een derde partij of contactpersoon van zijn telefoonnummer te krijgen. De te gebruiken URL is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2-authenticatie is niet voor alle hosts beschikbaar en er moet stroomopwaarts met de OAUTH-module een token met de juiste machtigingen zijn gemaakt +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2-authenticatieservice +DontForgetCreateTokenOauthMod=Een token met de juiste machtigingen moet stroomopwaarts zijn gemaakt met de OAUTH-module +MAIN_MAIL_SMTPS_AUTH_TYPE=authenticatie methode: +UsePassword=Gebruik een wachtwoord +UseOauth=Gebruik een OAUTH-token +Images=Afbeeldingen +MaxNumberOfImagesInGetPost=Maximaal aantal afbeeldingen toegestaan in een HTML-veld ingediend in een formulier +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=De module brengt een URL die door een externe tool kan worden gebruikt om de naam van een derde partij of contactpersoon van zijn telefoonnummer te krijgen. De te gebruiken URL is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/nl_NL/agenda.lang b/htdocs/langs/nl_NL/agenda.lang index 31ef150c482..720b2232561 100644 --- a/htdocs/langs/nl_NL/agenda.lang +++ b/htdocs/langs/nl_NL/agenda.lang @@ -7,7 +7,7 @@ Agendas=Agenda's LocalAgenda=Standaard kalender ActionsOwnedBy=Actie gevraagd door ActionsOwnedByShort=Eigenaar -AffectedTo=Geaffecteerden +AffectedTo=Toegewezen aan Event=Actie Events=Gebeurtenissen EventsNb=Aantal gebeurtenissen @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contract %s verwijderd PropalClosedSignedInDolibarr=Voorstel %s getekend PropalClosedRefusedInDolibarr=Voorstel %s afgewezen PropalValidatedInDolibarr=Voorstel %s gevalideerd +PropalBackToDraftInDolibarr=Voorstel %s ga terug naar conceptstatus PropalClassifiedBilledInDolibarr=Voorstel %s geclassificeerd als gefactureerd InvoiceValidatedInDolibarr=Factuur %s gevalideerd InvoiceValidatedInDolibarrFromPos=Factuur %s gevalideerd in verkooppunt @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=Lid %s gevalideerd MemberModifiedInDolibarr=Lid %s gewijzigd MemberResiliatedInDolibarr=Lidmaatschap %s beëindigd MemberDeletedInDolibarr=Lid %s verwijderd +MemberExcludedInDolibarr=Member %s excluded MemberSubscriptionAddedInDolibarr=Abonnement %s voor lid %s toegevoegd MemberSubscriptionModifiedInDolibarr=Abonnement %s voor lid %s gewijzigd MemberSubscriptionDeletedInDolibarr=Abonnement %s voor lid %s verwijderd @@ -64,8 +66,10 @@ ShipmentClassifyClosedInDolibarr=Verzending %s geclassificeerd als gefactureerd ShipmentUnClassifyCloseddInDolibarr=Zending %s geclassificeerd, opnieuw openen ShipmentBackToDraftInDolibarr=Zending %s ga terug naar conceptstatus ShipmentDeletedInDolibarr=Verzending %s verwijderd -ShipmentCanceledInDolibarr=Shipment %s canceled +ShipmentCanceledInDolibarr=Verzending%s geannuleerd ReceptionValidatedInDolibarr=Ontvangst %s gevalideerd +ReceptionDeletedInDolibarr=Reception %s deleted +ReceptionClassifyClosedInDolibarr=Receptie %s geclassificeerd gesloten OrderCreatedInDolibarr=Bestelling %s aangemaakt OrderValidatedInDolibarr=Opdracht %s gevalideerd OrderDeliveredInDolibarr=Bestelling %s is geleverd @@ -84,6 +88,7 @@ SupplierInvoiceSentByEMail=Leveranciersfactuur %s verzonden per e-mail ShippingSentByEMail=Zending %s verzonden per e-mail ShippingValidated= Verzending %s gevalideerd InterventionSentByEMail=Interventie %s verzonden per e-mail +ProjectSentByEMail=Project %s sent by email ProposalDeleted=Voorstel verwijderd OrderDeleted=Bestelling verwijderd InvoiceDeleted=Factuur verwijderd @@ -157,6 +162,7 @@ DateActionBegin=Begindatum ConfirmCloneEvent=Weet u zeker dat u gebeurtenis %s wilt klonen? RepeatEvent=Herhaal gebeurtenis/taak OnceOnly=Eenmalig +EveryDay=Every day EveryWeek=Elke week EveryMonth=Elke maand DayOfMonth=Dag van de maand @@ -171,4 +177,5 @@ ReminderType=Terugbellen AddReminder=Maak een automatische herinneringsmelding voor deze afspraak ErrorReminderActionCommCreation=Fout bij het maken van de herinneringsmelding voor deze afspraak BrowserPush=Browser pop-up melding -ActiveByDefault=Enabled by default +ActiveByDefault=Standaard ingeschakeld +Until=until diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang index 7ddc5abd9ac..47bf2f30b04 100644 --- a/htdocs/langs/nl_NL/banks.lang +++ b/htdocs/langs/nl_NL/banks.lang @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandaat YourSEPAMandate=Uw SEPA mandaat FindYourSEPAMandate=Met deze SEPA machtiging geeft u ons bedrijf toestemming een opdracht ter incasso te sturen naar uw bank. Retourneer het ondertekend (scan van het ondertekende document) of stuur het per e-mail naar AutoReportLastAccountStatement=Vul bij het automatisch afstemmen het veld 'aantal bankafschriften' in met het laatste afschrift nummer. -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=POS-kassacontrole +NewCashFence=Nieuwe kassacontrole (openen of sluiten) BankColorizeMovement=Inkleuren mutaties BankColorizeMovementDesc=Als deze functie is ingeschakeld, kunt u een specifieke achtergrondkleur kiezen voor debet- of creditmutaties BankColorizeMovementName1=Achtergrondkleur voor debetmutatie @@ -182,6 +182,6 @@ IfYouDontReconcileDisableProperty=Als u op sommige bankrekeningen geen bankafste NoBankAccountDefined=Geen bankrekening gedefinieerd NoRecordFoundIBankcAccount=Geen record gevonden in de bankrekening. Vaak gebeurt dit wanneer een record handmatig is verwijderd uit de lijst van banktransacties (bijvoorbeeld tijdens een reconciliatie van de bankrekening). Een andere reden is dat de betaling was vastgelegd terwijl module "%s" was uitgeschakeld. AlreadyOneBankAccount=Er is al een bankrekening gedefinieerd -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. -ToCreateRelatedRecordIntoBank=To create missing related bank record +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA-overboeking: 'Betalingstype' op 'Credit Transfer'-niveau +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Bij het genereren van een SEPA XML-bestand voor overschrijvingen kan de sectie "BetalingstypeInformatie" nu in de sectie "CreditTransferTransactionInformation" worden geplaatst (in plaats van de sectie "Betaling"). We raden ten zeerste aan om dit uitgeschakeld te laten om PaymentTypeInformation op Betalingsniveau te plaatsen, aangezien niet alle banken dit noodzakelijkerwijs accepteren op CreditTransferTransactionInformation-niveau. Neem contact op met uw bank voordat u PaymentTypeInformation op CreditTransferTransactionInformation-niveau plaatst. +ToCreateRelatedRecordIntoBank=Ontbrekend gerelateerd bankrecord maken: diff --git a/htdocs/langs/nl_NL/cashdesk.lang b/htdocs/langs/nl_NL/cashdesk.lang index 6c761e4fdef..db00968b310 100644 --- a/htdocs/langs/nl_NL/cashdesk.lang +++ b/htdocs/langs/nl_NL/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Voetnoot AmountAtEndOfPeriod=Bedrag aan het einde van de periode (dag, maand of jaar) TheoricalAmount=Theoretisch bedrag RealAmount=Aanwezig bedrag -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period +CashFence=Kassa sluiten +CashFenceDone=Kassa sluiting gedaan voor de periode NbOfInvoices=Aantal facturen Paymentnumpad=Soort betaling om de betaling in te voeren Numberspad=Cijferblok @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =  
    {TN} tag wordt gebruikt om het terminal TakeposGroupSameProduct=Groepeer dezelfde productlijnen StartAParallelSale=Start een nieuwe parallelle verkoop SaleStartedAt=Verkoop begon op %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +ControlCashOpening=Open de pop-up "Kassa beheren" bij het openen van de kassa +CloseCashFence=Kassabediening sluiten CashReport=Kassa verslag MainPrinterToUse=Hoofdprinter om te gebruiken OrderPrinterToUse=Bestel printer om te gebruiken @@ -136,3 +136,12 @@ PrintWithoutDetails=Afdrukken zonder details YearNotDefined=Jaar is niet gedefinieerd TakeposBarcodeRuleToInsertProduct=Streepjescode regel om product in te voegen TakeposBarcodeRuleToInsertProductDesc=Regel om de productreferentie + een hoeveelheid uit een gescande barcode te halen.
    Indien leeg (standaardwaarde), gebruikt de applicatie de volledige gescande barcode om het product te vinden.

    Indien gedefinieerd, moet de syntaxis zijn:
    ref:NB+qu:NB+qd:NB+other:NB
    waarbij NB het aantal tekens is dat moet worden gebruikt om gegevens uit de gescande streepjescode te extraheren met:
    • ref : product referentie
    • qu : aantal in te stellen bij het invoeren van artikel (eenheden)
    • qd : hoeveelheid die moet worden ingesteld bij het invoegen van een item (decimalen)
    • other : andere karakters
    +AlreadyPrinted=Reeds afgedrukt +HideCategories=Hide categories +HideStockOnLine=Hide stock on line +ShowOnlyProductInStock=Show the products in stock +ShowCategoryDescription=Show category description +ShowProductReference=Show reference of products +UsePriceHT=Use price excl. taxes and not price incl. taxes +TerminalName=Terminal %s +TerminalNameDesc=Terminal name diff --git a/htdocs/langs/nl_NL/categories.lang b/htdocs/langs/nl_NL/categories.lang index 3715b52b9ea..8f41c0cb335 100644 --- a/htdocs/langs/nl_NL/categories.lang +++ b/htdocs/langs/nl_NL/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Dit lid komt niet voor in kenmerken/categorieën ContactHasNoCategory=Dit contact staat in geen label/categorieën ProjectHasNoCategory=Dit project komt niet voor bij labels/categorieën ClassifyInCategory=Toevoegen aan label/categorie +RemoveCategory=Remove category NotCategorized=Zonder label/categorie CategoryExistsAtSameLevel=Deze categorie bestaat al op hetzelfde niveau ContentsVisibleByAllShort=Inhoud zichtbaar voor iedereen @@ -67,6 +68,7 @@ StockCategoriesShort=Magazijn-tags / categorieën ThisCategoryHasNoItems=Deze categorie bevat geen items. CategId=Label/categorie id ParentCategory=Bovenliggende groep/categorie +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label van bovenliggende groep/categorie CatSupList=Lijst met leveranciers groepen/ categorieën CatCusList=Lijst met klant groepen/categorieën @@ -86,15 +88,18 @@ DeleteFromCat=Verwijderen uit labels/categorie ExtraFieldsCategories=Complementaire kenmerken CategoriesSetup=Labels/categorieën instelling CategorieRecursiv= Automatische koppeling met bovenliggende label/categorie -CategorieRecursivHelp=Als de optie is ingeschakeld, wordt het product ook toegevoegd aan de bovenliggende categorie wanneer u een product toevoegt aan een subcategorie. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Voeg het volgende product/dienst toe AddCustomerIntoCategory=Wijs categorie toe aan klant AddSupplierIntoCategory=Wijs categorie toe aan leverancier +AssignCategoryTo=Categorie toewijzen aan ShowCategory=Toon label/categorie ByDefaultInList=Standaard in de lijst ChooseCategory=Kies categorie StocksCategoriesArea=Magazijncategorieën +TicketsCategoriesArea=Tickets Categorieën ActionCommCategoriesArea=Evenementcategorieën WebsitePagesCategoriesArea= Categorieën voor Page-Container -KnowledgemanagementsCategoriesArea=KM article Categories +KnowledgemanagementsCategoriesArea=KM artikel Categorieën UseOrOperatorForCategories=Gebruik de 'OF'-operator voor categorieën +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/nl_NL/commercial.lang b/htdocs/langs/nl_NL/commercial.lang index 634c78c3313..0f130aaaf80 100644 --- a/htdocs/langs/nl_NL/commercial.lang +++ b/htdocs/langs/nl_NL/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Prospect-status DraftPropals=Ontwerp van commerciële voorstellen NoLimit=Geen limiet ToOfferALinkForOnlineSignature=Link online ondertekenen -WelcomeOnOnlineSignaturePage=Welkom op de pagina om commerciële voorstellen van %s te accepteren -ThisScreenAllowsYouToSignDocFrom=Dit scherm geeft u de mogelijkheid voor acceptatie en ondertekening van de prijsopgave/offerte -ThisIsInformationOnDocumentToSign=Informatie om te weigeren of te accepteren +WelcomeOnOnlineSignaturePageProposal=Welkom op de pagina om commerciële voorstellen van %s te accepteren +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Dit scherm geeft u de mogelijkheid voor acceptatie en ondertekening van de prijsopgave/offerte +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Informatie om te weigeren of te accepteren +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Handtekening van offerte/commercieel voorstel %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Online tekenen niet mogelijkheid of document is aangemaakt voordat dit was aangezet diff --git a/htdocs/langs/nl_NL/companies.lang b/htdocs/langs/nl_NL/companies.lang index 40ec7d8a10d..253a550df77 100644 --- a/htdocs/langs/nl_NL/companies.lang +++ b/htdocs/langs/nl_NL/companies.lang @@ -19,7 +19,7 @@ ProspectionArea=Prospectenoverzicht IdThirdParty=ID Klant IdCompany=ID bedrijf IdContact=ID contactpersoon -ThirdPartyAddress=Third-party address +ThirdPartyAddress=Adres van derden ThirdPartyContacts=Contacten van derden ThirdPartyContact=Contact / adres van derden Company=Bedrijf @@ -52,21 +52,22 @@ CivilityCode=Aanspreekvorm RegisteredOffice=Statutaire zetel Lastname=Achternaam Firstname=Voornaam -RefEmployee=Employee reference -NationalRegistrationNumber=National registration number +RefEmployee=Referentie werknemer +NationalRegistrationNumber=Rijksregisternummer PostOrFunction=Functie UserTitle=Titel NatureOfThirdParty=Aard van relatie NatureOfContact=Aard van het contact Address=Adres State=Provincie +StateId=State ID StateCode=Staat / Provincie code StateShort=Provincie Region=Regio Region-State=Regio - Staat Country=Land CountryCode=Landcode -CountryId=Land-ID +CountryId=Country ID Phone=Telefoonnummer PhoneShort=Telefoon Skype=Skype @@ -105,7 +106,7 @@ WrongSupplierCode=Ongeldige leveranciercode CustomerCodeModel=Afnemersmodel SupplierCodeModel=Leveranciercode model Gencod=Streepjescode -GencodBuyPrice=Barcode of price ref +GencodBuyPrice=Barcode van prijsref ##### Professional ID ##### ProfId1Short=Prof id 1 ProfId2Short=Prof id 2 @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=KVK nummer ProfId2CM=BTW-id -ProfId3CM=ID kaart. prof. 3 (Aanmaakopdracht) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId3CM=ID kaart. prof. 3 (Nr. scheppingsdecreet) +ProfId4CM=ID kaart. prof. 4 (Depositcertificaat nr.) +ProfId5CM=ID kaart. prof. 5 (anderen) ProfId6CM=- ProfId1ShortCM=Handelsregister ProfId2ShortCM=BTW -ProfId3ShortCM=Aanmaak opdracht -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=Nr. van scheppingsdecreet +ProfId4ShortCM=Depositobewijs nr. ProfId5ShortCM=Overigen ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) @@ -363,7 +364,7 @@ ListOfThirdParties=Lijst van derden ShowCompany=Relatie ShowContact=Contact adres ContactsAllShort=Alle (Geen filter) -ContactType=Contact role +ContactType=Contactrol ContactForOrders=Opdrachtencontactpersoon ContactForOrdersOrShipments=Contactpersoon bij order of verzending ContactForProposals=Offertecontactpersoon diff --git a/htdocs/langs/nl_NL/compta.lang b/htdocs/langs/nl_NL/compta.lang index d51e3dd36f2..318359d8e1f 100644 --- a/htdocs/langs/nl_NL/compta.lang +++ b/htdocs/langs/nl_NL/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Saldo (vóór) Balance=Saldo Debit=Debet Credit=Credit +AccountingDebit=Debet +AccountingCredit=Credit Piece=Boekhouding Doc. AmountHTVATRealReceived=Netto ontvangen AmountHTVATRealPaid=Netto betaald @@ -146,11 +148,11 @@ ConfirmPaySalary=Weet u zeker dat u deze salariskaart als betaald wilt aanmerken DeleteSocialContribution=Verwijder een sociale/fiscale betaling DeleteVAT=Een btw-aangifte verwijderen DeleteSalary=Een salariskaart verwijderen -DeleteVariousPayment=Delete a various payment +DeleteVariousPayment=Een verschillende betaling verwijderen ConfirmDeleteSocialContribution=Weet u zeker dat u deze sociale/fiscale belastingbetaling wilt verwijderen? ConfirmDeleteVAT=Weet u zeker dat u deze btw-aangifte wilt verwijderen? -ConfirmDeleteSalary=Are you sure you want to delete this salary ? -ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? +ConfirmDeleteSalary=Weet u zeker dat u dit salaris wilt verwijderen? +ConfirmDeleteVariousPayment=Weet u zeker dat u deze verschillende betalingen wilt verwijderen? ExportDataset_tax_1=Sociale- en fiscale belastingen en betalingen CalcModeVATDebt=Mode %sBTW op verbintenissenboekhouding %s. CalcModeVATEngagement=Mode %sBTW op de inkomens-uitgaven %s. @@ -172,9 +174,9 @@ SeeReportInInputOutputMode=Zie %s analyse van betalingen%s voor een berek SeeReportInDueDebtMode=Zie %s analyse van geregistreerde documenten%s voor een berekening op basis van bekende geregistreerde documenten zelfs als ze nog niet zijn geboekt SeeReportInBookkeepingMode=Zie %s analyse van de boekhoudtabel %s voor een rapport gebaseerd opBoekhoudkundige grootboektabel RulesAmountWithTaxIncluded=- Bedragen zijn inclusief alle belastingen -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded -RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. +RulesAmountWithTaxExcluded=- De getoonde facturen zijn exclusief alle belastingen +RulesResultDue=- Het omvat alle facturen, onkosten, BTW, giften, salarissen, of ze nu betaald zijn of niet.
    - Het is gebaseerd op de factuurdatum van facturen en op de vervaldatum voor onkosten of belastingbetalingen. Voor salarissen wordt de datum einde periode gebruikt. +RulesResultInOut=- Het omvat de werkelijke betalingen op facturen, onkosten, btw en salarissen.
    - Het is gebaseerd op de betalingsdata van de facturen, onkosten, btw, donaties en salarissen. RulesCADue=- Het omvat de verschuldigde facturen van de klant, of ze nu zijn betaald of niet.
    - Het is gebaseerd op de factureringsdatum van deze facturen.
    RulesCAIn=- Het omvat alle effectieve betalingen van facturen ontvangen van klanten.
    - Het is gebaseerd op de betaaldatum van deze facturen
    RulesCATotalSaleJournal=Het omvat alle kredietlijnen uit het verkoopdagboek. @@ -191,26 +193,26 @@ LT1ReportByCustomers=Belasting 2 rapporteren door relatie LT2ReportByCustomers=Belasting 3 rapporteren door derden LT1ReportByCustomersES=Rapport door derde partij RE LT2ReportByCustomersES=Verslag van derden IRPF -VATReport=Sales tax report -VATReportByPeriods=Sales tax report by period +VATReport=Btw-rapport +VATReportByPeriods=Btw-rapport per periode VATReportByMonth=BTW overzicht per maand VATReportByRates=BTW overzicht per tarief -VATReportByThirdParties=Sales tax report by third party -VATReportByCustomers=Sales tax report by customer +VATReportByThirdParties=Aangifte omzetbelasting door derde partij +VATReportByCustomers=Btw-rapport door klant VATReportByCustomersInInputOutputMode=Bevestigd door de klant btw geïnd en betaald -VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid +VATReportByQuartersInInputOutputMode=Rapporteren op btw-tarief van de geïnde en betaalde belasting VATReportShowByRateDetails=Details van dit tarief weergeven LT1ReportByQuarters=Rapporteer belasting 2 per tarief LT2ReportByQuarters=Belastingaangifte 3 per tarief LT1ReportByQuartersES=Rapport per RE-tarief LT2ReportByQuartersES=Rapport per IRPF-tarief -SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation -SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing -RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. -RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. -RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. -RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. -OptionVatInfoModuleComptabilite=Opmerking: Voor materiële activa, zou het gebruik moeten maken van de afleverdatum om eerlijker te zijn. +SeeVATReportInInputOutputMode=Zie rapport %sBTW-inning%s voor een standaard berekening +SeeVATReportInDueDebtMode=Zie rapport %sVAT op debit%s voor een berekening met een optie op de facturatie +RulesVATInServices=- Voor diensten bevat het rapport de btw van werkelijk ontvangen of betaalde betalingen op basis van de datum van betaling. +RulesVATInProducts=- Voor producten wordt in de rapportage de btw op basis van de datum van betaling vermeld. +RulesVATDueServices=- Voor diensten is het rapport inclusief btw van openstaande facturen, al dan niet betaald, op basis van de factuurdatum. +RulesVATDueProducts=- Voor producten bevat het rapport de btw van vervallen facturen, op basis van de factuurdatum. +OptionVatInfoModuleComptabilite=Opmerking: Voor producten zou de afleverdatum eerlijker te zijn. ThisIsAnEstimatedValue=Dit is een voorbeeld, gebaseerd op zakelijke gebeurtenissen en niet uit de uiteindelijke grootboektabel, dus de definitieve resultaten kunnen verschillen van deze voorbeeldwaarden PercentOfInvoice=%%/factuur NotUsedForGoods=Niet gebruikt voor goederen @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Omzet rapportage per product TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Omzet rapportage per BTW percentage is niet beschikbaar. Alleen over gefactureerde omzet. CalculationMode=Berekeningswijze AccountancyJournal=Boekhoudcode journaal -ACCOUNTING_VAT_SOLD_ACCOUNT=Grootboekrekening BTW -ACCOUNTING_VAT_BUY_ACCOUNT=Boekhoudaccount standaard voor btw op aankopen (gebruikt indien niet gedefinieerd in de instelling van het btw-woordenboek) -ACCOUNTING_VAT_PAY_ACCOUNT=Standaard grootboekrekening BTW af te dragen -ACCOUNTING_ACCOUNT_CUSTOMER=Grootboekrekening debiteuren +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=De speciale account die is gedefinieerd op de kaart van ralatie, wordt alleen gebruikt voor de Subledger-accounting. Deze wordt gebruikt voor grootboek en als standaardwaarde voor Subledger-boekhouding als er geen specifieke klantaccount voor derden is gedefinieerd. -ACCOUNTING_ACCOUNT_SUPPLIER=Grootboekrekening crediteuren +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=De speciale boekhoudrekening die op een kaart van een derde is gedefinieerd, wordt alleen voor boekhouding van Subledger gebruikt. Deze wordt gebruikt voor het grootboek en als standaardwaarde voor de boekhouding van de subadministratie als er geen accountadministratie voor leveranciers bij derden is gedefinieerd. ConfirmCloneTax=Bevestig de kloon van een sociale / fiscale belasting ConfirmCloneVAT=Bevestig de kloon van een btw-aangifte @@ -289,14 +291,15 @@ ReportPurchaseTurnover=Inkoopbedrag gefactureerd ReportPurchaseTurnoverCollected=Verzamelde inkoop-omzet IncludeVarpaysInResults = Neem verschillende betalingen op in rapporten IncludeLoansInResults = Leningen opnemen in rapporten -InvoiceLate30Days = Late (> 30 days) -InvoiceLate15Days = Late (15 to 30 days) -InvoiceLateMinus15Days = Late (< 15 days) -InvoiceNotLate = To be collected (< 15 days) -InvoiceNotLate15Days = To be collected (15 to 30 days) -InvoiceNotLate30Days = To be collected (> 30 days) -InvoiceToPay=To pay (< 15 days) -InvoiceToPay15Days=To pay (15 to 30 days) -InvoiceToPay30Days=To pay (> 30 days) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +InvoiceLate30Days = Te laat (> 30 dagen) +InvoiceLate15Days = Laat (15 tot 30 dagen) +InvoiceLateMinus15Days = Laat (< 15 dagen) +InvoiceNotLate = Af te halen (< 15 dagen) +InvoiceNotLate15Days = Af te halen (15 tot 30 dagen) +InvoiceNotLate30Days = Op te halen (> 30 dagen) +InvoiceToPay=Betalen (< 15 dagen) +InvoiceToPay15Days=Betalen (15 tot 30 dagen) +InvoiceToPay30Days=Betalen (> 30 dagen) +ConfirmPreselectAccount=Preselect accountcode +ConfirmPreselectAccountQuestion=Weet u zeker dat u de %s geselecteerde regels met deze boekhoudcode wilt voorselecteren? +AmountPaidMustMatchAmountOfDownPayment=Het betaalde bedrag moet overeenkomen met het bedrag van de aanbetaling diff --git a/htdocs/langs/nl_NL/contracts.lang b/htdocs/langs/nl_NL/contracts.lang index 7d024d9c5ef..8a9a6e258b4 100644 --- a/htdocs/langs/nl_NL/contracts.lang +++ b/htdocs/langs/nl_NL/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contracten/Abonnementen ContractsAndLine=Contracten en lijn van de contracten Contract=Contract ContractLine=Contractregel +ContractLines=Contractregels Closing=Sluiting NoContracts=Geen contracten MenuServices=Diensten @@ -36,7 +37,7 @@ CloseAContract=Sluit een contract ConfirmDeleteAContract=Weet u zeker dat u dit contract met alle diensten wilt verwijderen? ConfirmValidateContract=Weet u zeker dat u dit contract wilt bevestigen onder %s? ConfirmActivateAllOnContract=Openen alle diensten (nog niet actief). Weet u zeker dat u dit wilt doen? -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? +ConfirmCloseContract=Hiermee worden alle services gesloten (verlopen of niet). Weet u zeker dat u dit contract wilt sluiten? ConfirmCloseService=Weet u zeker dat u de dienst met datum %s wilt sluiten? ValidateAContract=Valideer een contract ActivateService=Activeer een contract @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Weet u zeker dat u deze contract regel wilt verwijdere MoveToAnotherContract=Verplaats dienst naar een ander contract. ConfirmMoveToAnotherContract=Weet u zeker dat u deze dienst wilt verplaatsen naar dit contract? ConfirmMoveToAnotherContractQuestion=Kies naar welk bestaand contract (van dezelfde derde partij), u deze dienst wilt verplaatsen -PaymentRenewContractId=Vernieuwing contractregel (%s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Verlopen sinds NoExpiredServices=Geen verlopen actieve diensten ListOfServicesToExpireWithDuration=Lijst van Diensten te vervallen in %s dagen @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Ondertekening contract contactpersoon HideClosedServiceByDefault=Verberg gesloten services als default ShowClosedServices=Toon gesloten services HideClosedServices=Verberg gesloten services +UserStartingService=Gebruiker start service +UserClosingService=Gebruiker sluitingsservice diff --git a/htdocs/langs/nl_NL/cron.lang b/htdocs/langs/nl_NL/cron.lang index cc37ade9fce..f224c5950fa 100644 --- a/htdocs/langs/nl_NL/cron.lang +++ b/htdocs/langs/nl_NL/cron.lang @@ -26,7 +26,7 @@ CronCommand=Commando CronList=Geplande taken CronDelete=Verwijder geplande taken CronConfirmDelete=Weet u zeker dat u deze geplande taken wilt verwijderen? -CronExecute=Start geplande taak +CronExecute=Launch now CronConfirmExecute=Weet u zeker dat u deze geplande taken nu wilt uitvoeren? CronInfo=Met de module Geplande taken kunt u taken plannen om ze automatisch uit te voeren. Taken kunnen ook handmatig worden gestart. CronTask=Taak @@ -58,7 +58,7 @@ CronNote=Reactie CronFieldMandatory=Velden %s zijn verplicht CronErrEndDateStartDt=Einddatum kan niet vóór startdatum liggen StatusAtInstall=Status bij module-installatie -CronStatusActiveBtn=Schema +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Deactiveren CronTaskInactive=Deze taak is uitgeschakeld (niet gepland) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Ga naar menu "Home - Beheerhulpmidd JobDisabled=Taak uitgeschakeld MakeLocalDatabaseDumpShort=Back-up van lokale database MakeLocalDatabaseDump=Maak een lokale database dump. Parameters zijn: compressie ('gz' of 'bz' of 'none'), back-uptype ('mysql', 'pgsql', 'auto'), 1, 'auto' of te creëren bestandsnaam, aantal te bewaren back-upbestanden +MakeSendLocalDatabaseDumpShort=Lokale databaseback-up verzenden +MakeSendLocalDatabaseDump=Stuur lokale databaseback-up per e-mail. Parameters zijn: naar, van, onderwerp, bericht, bestandsnaam (naam van verzonden bestand), filter ('sql' alleen voor back-up van database) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Opgelet, voor prestatiedoeleinden, ongeacht de volgende datum van uitvoering van ingeschakelde taken, kunnen uw taken worden vertraagd tot maximaal %s uur voordat ze worden uitgevoerd. DATAPOLICYJob=Gegevens opschonen en anonimiseren JobXMustBeEnabled=Taak %s moet zijn ingeschakeld +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Laatst uitgevoerde geplande taak NextScheduledJobExecute=Volgende geplande taak om uit te voeren NumberScheduledJobError=Aantal foutieve geplande taken +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/nl_NL/datapolicy.lang b/htdocs/langs/nl_NL/datapolicy.lang new file mode 100644 index 00000000000..be6f001ff7b --- /dev/null +++ b/htdocs/langs/nl_NL/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Afnemer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Leverancier +DATAPOLICY_CONTACT_CLIENT = Afnemer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Leverancier +DATAPOLICY_ADHERENT = Lid +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/nl_NL/dict.lang b/htdocs/langs/nl_NL/dict.lang index 00a53872ae4..2b3cd5bc651 100644 --- a/htdocs/langs/nl_NL/dict.lang +++ b/htdocs/langs/nl_NL/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mevrouw +CivilityMMEShort=Mevrouw CivilityMR=De Heer +CivilityMRShort=De Heer CivilityMLE=Mejuffrouw CivilityMTRE=Meester CivilityDR=Dokter diff --git a/htdocs/langs/nl_NL/ecm.lang b/htdocs/langs/nl_NL/ecm.lang index e482978ea46..25e7b036abd 100644 --- a/htdocs/langs/nl_NL/ecm.lang +++ b/htdocs/langs/nl_NL/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Handmatige map ECMSectionAuto=Automatisch map ECMSectionsManual=Handmatige structuur ECMSectionsAuto=Automatische structuur +ECMSectionsMedias=Medias tree ECMSections=Mappen ECMRoot=ECM Root ECMNewSection=Nieuwe map @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Aantal bestanden in submappen ECMCreationUser=Ontwerper ECMArea=DMS/ECM omgeving ECMAreaDesc=In het gebied DMS / ECM (Document Management System / Electronic Content Management) kunt u alle soorten documenten in Dolibarr snel opslaan, delen en zoeken. -ECMAreaDesc2=* Automatische mappen zijn automatisch gevuld bij het toevoegen, vanaf een kaart van een element.
    * Handmatige mappen kunnen worden gebruikt voor het opslaan van documenten die niet gekoppeld zijn aan een bepaald element. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Map %s is verwijderd. ECMSectionWasCreated=Directory %s is gemaakt. ECMSearchByKeywords=Zoeken op trefwoorden @@ -45,5 +48,5 @@ GenerateImgWebp=Dupliceer alle afbeeldingen met een andere versie met .webp-inde ConfirmGenerateImgWebp=Als u bevestigt, genereert u een afbeelding in .webp-indeling voor alle afbeeldingen die zich momenteel in deze map bevinden (submappen zijn niet inbegrepen)... ConfirmImgWebpCreation=Bevestig alle afbeeldingen duplicatie SucessConvertImgWebp=Afbeeldingen succesvol gedupliceerd -ECMDirName=Dir name -ECMParentDirectory=Parent directory +ECMDirName=Directory +ECMParentDirectory=Bovenliggende map diff --git a/htdocs/langs/nl_NL/errors.lang b/htdocs/langs/nl_NL/errors.lang index fe70a2010cb..79baa7ce64b 100644 --- a/htdocs/langs/nl_NL/errors.lang +++ b/htdocs/langs/nl_NL/errors.lang @@ -9,10 +9,12 @@ ErrorBadMXDomain=E-mail %s lijkt onjuist (domein heeft geen geldig MX-record) ErrorBadUrl=URL %s is onjuist ErrorBadValueForParamNotAString=Slechte parameterwaarde. Wordt over het algemeen gegenereerd als de vertaling ontbreekt. ErrorRefAlreadyExists=Referentie %s bestaat al. +ErrorTitleAlreadyExists=Titel %s bestaat al. ErrorLoginAlreadyExists=Inlog %s bestaat reeds. ErrorGroupAlreadyExists=Groep %s bestaat reeds. ErrorEmailAlreadyExists=email 1%s bestaat al ErrorRecordNotFound=Tabelregel niet gevonden. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Kan bestand '%s' in '%s' te kopiëren. ErrorFailToCopyDir=Kan map '%s' niet kopiëren naar '%s'. ErrorFailToRenameFile=Kon het bestand '%s' niet hernoemen naar '%s'. @@ -27,9 +29,9 @@ ErrorThisContactIsAlreadyDefinedAsThisType=Deze contactpersoon is al ingesteld a ErrorCashAccountAcceptsOnlyCashMoney=Dit is een kasrekening, dus deze accepteert alleen betalingen van het type kas. ErrorFromToAccountsMustDiffers=De bron- en doelrekening mogen niet dezelfde zijn. ErrorBadThirdPartyName=Onjuiste waarde voor naam van derde partij -ForbiddenBySetupRules=Forbidden by setup rules +ForbiddenBySetupRules=Verboden door installatieregels ErrorProdIdIsMandatory=De %s is verplicht -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=De boekhoudcode van klant %s is verplicht ErrorBadCustomerCodeSyntax=Verkeerde syntaxis voor afnemerscode ErrorBadBarCodeSyntax=Onjuiste syntaxis voor streepjescode. Misschien stelt u een slecht barcodetype in of heeft u een barcodemasker gedefinieerd voor nummering dat niet overeenkomt met de gescande waarde. ErrorCustomerCodeRequired=Afnemerscode nodig @@ -47,6 +49,7 @@ ErrorBadImageFormat=Afbeeldingsbestand heeft geen ondersteunde indeling (uw PHP ErrorBadDateFormat=Waarde %s heeft verkeerde datum formaat ErrorWrongDate=Datum is niet correct! ErrorFailedToWriteInDir=Schrijven in de map %s mislukt +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Onjuist e-mail syntax gevonden voor %s regels in het bestand (bijvoorbeeld regel %s met email=%s) ErrorUserCannotBeDelete=Gebruiker kan niet worden verwijderd. Misschien is het geassocieerd met Dolibarr-entiteiten. ErrorFieldsRequired=Sommige verplichte velden zijn leeg gelaten. @@ -66,7 +69,7 @@ ErrorDestinationAlreadyExists=Er bestaat al een ander bestand met de naam %s ErrorPartialFile=Het bestand is niet volledig ontvangen door de server. ErrorNoTmpDir=Tijdelijke map %s bestaat niet. ErrorUploadBlockedByAddon=Upload geblokkeerd door een PHP- en / of Apache-plugin. -ErrorFileSizeTooLarge=Bestand is te groot. +ErrorFileSizeTooLarge=De bestandsgrootte is te groot of het bestand is niet verstrekt. ErrorFieldTooLong=Veld %s is te lang. ErrorSizeTooLongForIntType=Grootte te lang voor int type (%s cijfers maximum) ErrorSizeTooLongForVarcharType=Grootte te lang voor string type (%s tekens maximum) @@ -75,7 +78,7 @@ ErrorNoValueForCheckBoxType=Vul waarde in voor checkbox lijst ErrorNoValueForRadioType=Vul waarde in voor knoppen lijst ErrorBadFormatValueList=De lijstwaarde kan niet meer dan één komma hebben: %s , maar heeft minimaal één nodig: sleutel, waarde ErrorFieldCanNotContainSpecialCharacters=Het veld %s mag geen speciale tekens bevatten. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Het veld %s mag geen speciale tekens of hoofdletters bevatten en mag niet alleen cijfers bevatten. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=Het veld %s moet minimaal %s tekens bevatten. ErrorNoAccountancyModuleLoaded=Geen boekhoudingsmodule geactiveerd ErrorExportDuplicateProfil=Deze profile naam bestaat al voor deze export set. @@ -85,17 +88,18 @@ ErrorCantSaveADoneUserWithZeroPercentage=Kan een actie met "status niet gestart" ErrorRefAlreadyExists=Referentie %s bestaat al. ErrorPleaseTypeBankTransactionReportName=Voer de naam van het bankafschrift in waar de boeking moet worden gerapporteerd (formaat YYYYMM of YYYYMMDD) ErrorRecordHasChildren=Kan record niet verwijderen omdat het enkele onderliggende records heeft. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s +ErrorRecordHasAtLeastOneChildOfType=Object %s heeft ten minste één kind van het type %s ErrorRecordIsUsedCantDelete=Kan record niet verwijderen. Het is al gebruikt of opgenomen in een ander object. ErrorModuleRequireJavascript=Javascript dient niet uitgeschakeld te zijn voor deze functionaliteit. Om Javascript aan of uit te zetten gaat u naar het menu Home->instellingen->Scherm ErrorPasswordsMustMatch=De twee ingevoerde wachtwoorden komen niet overeen. ErrorContactEMail=Er is een technische fout opgetreden. Neem contact op met de beheerder om e-mail %s te volgen en geef de foutcode %s op in uw bericht, of voeg een schermkopie van deze pagina toe. ErrorWrongValueForField=Veld %s : '%s' komt niet overeen met regexregel %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Veld %s : '%s' is geen waarde gevonden in veld %s van %s ErrorFieldRefNotIn=Veld %s : '%s' is geen bestaande %s +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s fouten gevonden ErrorFileIsInfectedWithAVirus=Het antivirusprogramma kon dit bestand niet valideren (het zou met een virus geïnfecteerd kunnen zijn) -ErrorSpecialCharNotAllowedForField=Speciale tekens zijn niet toegestaan in het veld " %s" ErrorNumRefModel=Er bestaat een verwijzing in de database (%s) en deze is niet compatibel met deze nummeringsregel. Verwijder de tabelregel of hernoem de verwijzing om deze module te activeren. ErrorQtyTooLowForThisSupplier=Hoeveelheid te laag voor deze leverancier of geen prijs gedefinieerd voor dit product voor deze leverancier ErrorOrdersNotCreatedQtyTooLow=Sommige bestellingen zijn niet gemaakt vanwege te lage hoeveelheden @@ -113,7 +117,7 @@ ErrorFailedToLoadRSSFile=Niet in slaagt om RSS feed. Probeer een constante MAIN_ ErrorForbidden=Toegang geweigerd.
    U probeert toegang te krijgen tot een pagina, gebied of functie van een uitgeschakelde module of zonder dat u zich in een geverifieerde sessie bevindt of dat is niet toegestaan voor uw gebruiker. ErrorForbidden2=Toestemming voor deze aanmelding kan worden ingesteld door de Dolibarr-beheerder vanaf het menu %s -> %s. ErrorForbidden3=Het lijkt erop dat Dolibarr niet wordt gebruikt met een geverifieerde sessie. Kijk eens naar de Dolibarr installatiedocumentatie om te weten hoe het beheer van verificaties (htaccess, mod_auth of andere) werkt. -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=Let op: wis uw browsercookies om bestaande sessies voor deze login te vernietigen. ErrorNoImagickReadimage=Functie imagick_readimage is niet gevonden in deze PHP installatie. Er kunnen geen voorbeelden gemaakt worden. Beheerders kunnen dit tabblad uitschakelen vanaf het menu Home->Instellingen->Scherm. ErrorRecordAlreadyExists=Tabelregel bestaat al ErrorLabelAlreadyExists=Dit label bestaat al @@ -240,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objecten moeten de status 'Actie ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objecten moeten de status 'Concept' of 'Uitgeschakeld' hebben om te worden ingeschakeld ErrorNoFieldWithAttributeShowoncombobox=Geen velden hebben eigenschap 'showoncombobox' in de definitie van object '%s'. Geen manier om de combolist te laten zien. ErrorFieldRequiredForProduct=Veld '1%s' is vereist voor product 1%s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Probleem is bij het instellen van terminal %s. ErrorAddAtLeastOneLineFirst=Voeg eerst minimaal één regel toe ErrorRecordAlreadyInAccountingDeletionNotPossible=Fout, record is al overgedragen in de boekhouding, verwijderen is niet mogelijk. @@ -269,19 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=U moet eerst uw rekeningschema instelle ErrorFailedToFindEmailTemplate=Kan sjabloon met codenaam %s . niet vinden ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=De lengte is niet gedefinieerd in de dienst. We kunnen de uurkosten niet berekenen. ErrorActionCommPropertyUserowneridNotDefined=Eigenaar van gebruiker is vereist -ErrorActionCommBadType=Het geselecteerde gebeurtenistype (id: %n, code: %s) bestaat niet in het woordenboek voor gebeurtenistypes +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Versiecontrole mislukt ErrorWrongFileName=De naam van het bestand mag niet __SOMETHING__ bevatten ErrorNotInDictionaryPaymentConditions=Niet bekend in de gedefinieerde betaalregelingen, graag wijzigen -ErrorIsNotADraft=%s is not a draft -ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrorIsNotADraft=%s is geen concept +ErrorExecIdFailed=Kan opdracht "id" niet uitvoeren +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired +ErrorNotApproverForHoliday=U bent niet de fiatteur voor verlof %s +ErrorAttributeIsUsedIntoProduct=Dit kenmerk wordt gebruikt in een of meer productvarianten +ErrorAttributeValueIsUsedIntoProduct=Deze kenmerkwaarde wordt gebruikt in een of meer productvarianten +ErrorPaymentInBothCurrency=Fout, alle bedragen moeten in dezelfde kolom worden ingevoerd +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=U probeert facturen in de valuta %s te betalen vanaf een rekening met de valuta %s +ErrorInvoiceLoadThirdParty=Kan object van derden niet laden voor factuur "%s" +ErrorInvoiceLoadThirdPartyKey=Sleutel van derden "%s" niet ingesteld voor factuur "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Regel verwijderen is niet toegestaan door de huidige objectstatus +ErrorAjaxRequestFailed=Verzoek mislukt +ErrorThirpdartyOrMemberidIsMandatory=Derde partij of lid van maatschap is verplicht +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Uw PHP-parameter upload_max_filesize (%s) is hoger dan PHP-parameter post_max_size (%s). Dit is geen consistente opstelling. WarningPasswordSetWithNoAccount=Er is een wachtwoord ingesteld voor dit lid. Er is echter geen gebruikersaccount gemaakt. Dus dit wachtwoord is opgeslagen maar kan niet worden gebruikt om in te loggen bij Dolibarr. Het kan worden gebruikt door een externe module / interface, maar als u geen gebruikersnaam of wachtwoord voor een lid hoeft aan te maken, kunt u de optie "Beheer een login voor elk lid" in de module-setup van Member uitschakelen. Als u een login moet beheren maar geen wachtwoord nodig heeft, kunt u dit veld leeg houden om deze waarschuwing te voorkomen. Opmerking: e-mail kan ook worden gebruikt als login als het lid aan een gebruiker is gekoppeld. -WarningMandatorySetupNotComplete=Klik hier om verplichte parameters in te stellen +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Klik hier om uw modules en applicaties in te schakelen WarningSafeModeOnCheckExecDir=Waarschuwing, de instelling safe_mode van PHP staat aan daarom moet het commando opgeslagen worden in een map die gedeclareerd is door de PHP instelling safe_mode_exec_dir. WarningBookmarkAlreadyExists=Een weblink met deze titel of dit doel (URL) bestaat al. @@ -290,7 +316,7 @@ WarningConfFileMustBeReadOnly=Pas op, uw configuratiebestand (
    htdocs/conf/co WarningsOnXLines=Waarschuwing op bronregels %s WarningNoDocumentModelActivated=Er is geen model voor het genereren van documenten geactiveerd. Een model wordt standaard gekozen totdat u uw module-instellingen controleert. WarningLockFileDoesNotExists=Waarschuwing: zodra de installatie is voltooid, moet u de installatie- / migratiehulpprogramma's uitschakelen door een bestand install.lock toe te voegen aan de map %s . Het weglaten van dit bestand is een ernstig beveiligingsrisico. -WarningUntilDirRemoved=Alle beveiligingswaarschuwingen (alleen zichtbaar voor beheerders) blijven actief zolang het beveiligingslek aanwezig is (of dat constante MAIN_REMOVE_INSTALL_WARNING is toegevoegd in Setup-> Other Setup). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Waarschuwing, het sluiten gebeurt zelfs als de hoeveelheid verschilt tussen bron- en doelelementen. Schakel deze functie voorzichtig in. WarningUsingThisBoxSlowDown=Waarschuwing, als u dit vak gebruikt, worden alle pagina's met het vak ernstig vertraagd. WarningClickToDialUserSetupNotComplete=De instelling van ClickToDial-informatie voor uw gebruiker is niet compleet (zie tabblad ClickToDial op uw gebruikerskaart). @@ -310,25 +336,28 @@ WarningTheHiddenOptionIsOn=Pas op, de verborgen optie %s is ingeschakeld. WarningCreateSubAccounts=Waarschuwing, u kunt niet rechtstreeks een subaccount aanmaken, u moet een derde partij of een gebruiker aanmaken en hen een boekhoudcode toewijzen om ze in deze lijst te vinden WarningAvailableOnlyForHTTPSServers=Alleen beschikbaar als u een beveiligde HTTPS-verbinding gebruikt. WarningModuleXDisabledSoYouMayMissEventHere=Module %s is niet ingeschakeld. Je kunt hier dus veel evenementen missen. -WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningPaypalPaymentNotCompatibleWithStrict=De waarde 'Strikt' zorgt ervoor dat de online betaalfuncties niet correct werken. Gebruik in plaats daarvan 'Lax'. +WarningThemeForcedTo=Waarschuwing, thema is gedwongen naar %s door verborgen constante MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate -RequireValidValue = Value not valid -RequireAtLeastXString = Requires at least %s character(s) -RequireXStringMax = Requires %s character(s) max -RequireAtLeastXDigits = Requires at least %s digit(s) -RequireXDigitsMax = Requires %s digit(s) max -RequireValidNumeric = Requires a numeric value -RequireValidEmail = Email address is not valid -RequireMaxLength = Length must be less than %s chars -RequireMinLength = Length must be more than %s char(s) -RequireValidUrl = Require valid URL -RequireValidDate = Require a valid date -RequireANotEmptyValue = Is required -RequireValidDuration = Require a valid duration -RequireValidExistingElement = Require an existing value -RequireValidBool = Require a valid boolean -BadSetupOfField = Error bad setup of field -BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation -BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion -BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class +RequireValidValue = Waarde niet geldig +RequireAtLeastXString = Vereist minimaal %s teken(s) +RequireXStringMax = Vereist %s teken(s) max +RequireAtLeastXDigits = Vereist minimaal %s cijfer(s) +RequireXDigitsMax = Vereist %s cijfer(s) max +RequireValidNumeric = Vereist een numerieke waarde +RequireValidEmail = e-mailadres is niet geldig +RequireMaxLength = De lengte moet kleiner zijn dan %s tekens +RequireMinLength = Lengte moet meer zijn dan %s char(s) +RequireValidUrl = Geldige URL vereisen +RequireValidDate = Een geldige datum vereisen +RequireANotEmptyValue = Is benodigd +RequireValidDuration = Een geldige duur vereisen +RequireValidExistingElement = Een bestaande waarde vereisen +RequireValidBool = Een geldige boolean vereisen +BadSetupOfField = Fout slechte instelling van veld +BadSetupOfFieldClassNotFoundForValidation = Fout slechte instelling van veld : Klasse niet gevonden voor validatie +BadSetupOfFieldFileNotFound = Fout slechte instelling van veld : Bestand niet gevonden voor opname +BadSetupOfFieldFetchNotCallable = Fout slechte instelling van veld: Ophalen niet aanroepbaar op klasse diff --git a/htdocs/langs/nl_NL/eventorganization.lang b/htdocs/langs/nl_NL/eventorganization.lang index c25f8289f7d..a224eab16cb 100644 --- a/htdocs/langs/nl_NL/eventorganization.lang +++ b/htdocs/langs/nl_NL/eventorganization.lang @@ -19,46 +19,50 @@ # ModuleEventOrganizationName = Evenementenorganisatie EventOrganizationDescription = Evenementenorganisatie via moduleproject -EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +EventOrganizationDescriptionLong= Beheer de organisatie van een evenement (show, conferenties, aanwezigen of sprekers, met openbare pagina's voor suggestie, stemmen of registratie) # # Menu # EventOrganizationMenuLeft = Georganiseerde evenementen EventOrganizationConferenceOrBoothMenuLeft = Conferentie of stand -PaymentEvent=Payment of event +PaymentEvent=Betaling van evenement # # Admin page # -NewRegistration=Registration +NewRegistration=Registratie EventOrganizationSetup=Evenementorganisatie instellen -EventOrganization=Event organization +EventOrganization=Evenementenorganisatie Settings=Instellingen EventOrganizationSetupPage = Instellingenpagina voor evenementorganisatie EVENTORGANIZATION_TASK_LABEL = Label van taken om automatisch te maken wanneer het project is gevalideerd -EVENTORGANIZATION_TASK_LABELTooltip = Wanneer u een georganiseerd evenement valideert, kunnen sommige taken automatisch worden aangemaakt in het project

    Bijvoorbeeld:
    Send Call for Conference
    Send Call for Booth
    Send call for conferences a0342fcc Receive call for aanwezigen herinner aan evenement naar sprekers
    Stuur herinnering aan evenement naar standhoster
    Stuur herinnering aan evenement naar aanwezigen +EVENTORGANIZATION_TASK_LABELTooltip = Wanneer u een evenement valideert om te organiseren, kunnen sommige taken automatisch worden aangemaakt in het project

    Bijvoorbeeld:
    Stuur oproep voor conferenties
    Stuur oproep voor standen
    Valideer suggesties van Openen voor conferenties a0342fz
    Stuur een herinnering aan het evenement naar sprekers
    Stuur een herinnering aan het evenement naar standhosters
    Stuur een herinnering aan het evenement naar deelnemers +EVENTORGANIZATION_TASK_LABELTooltip2=Houd leeg als u taken niet automatisch hoeft aan te maken. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categorie om toe te voegen aan derden, automatisch aangemaakt wanneer iemand een conferentie voorstelt EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categorie om toe te voegen aan derden, automatisch aangemaakt wanneer ze een stand voorstellen EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Sjabloon van e-mail om te verzenden na ontvangst van een suggestie van een conferentie. EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Sjabloon van e-mail om te verzenden na ontvangst van een suggestie van een stand. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Template of email to send after a registration to a booth has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Template of email to send after a registration to an event has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Template of email to use when sending emails from the massaction "Send emails" to speakers -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Template of email to use when sending emails from the massaction "Send emails" on attendee list -EVENTORGANIZATION_FILTERATTENDEES_CAT = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties in the category -EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties with the nature +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Sjabloon van e-mail om te verzenden nadat een registratie naar een stand is betaald. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Sjabloon van e-mail om te verzenden nadat een registratie voor een evenement is betaald. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Sjabloon van e-mail om te gebruiken bij het verzenden van e-mails van de massaction "Stuur e-mails" naar sprekers +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Sjabloon van e-mail om te gebruiken bij het verzenden van e-mails van de massaction "Stuur e-mails" op de deelnemerslijst +EVENTORGANIZATION_FILTERATTENDEES_CAT = In het formulier om een deelnemer aan te maken/toe te voegen, wordt de lijst met derden beperkt tot derden in de categorie +EVENTORGANIZATION_FILTERATTENDEES_TYPE = In het formulier om een deelnemer aan te maken/toe te voegen, wordt de lijst van derden beperkt tot derden met de aard # # Object # EventOrganizationConfOrBooth= Conferentie of stand -ManageOrganizeEvent = Manage the organization of an event +EventOrganizationConfOrBoothes=Conferences or Boothes +ManageOrganizeEvent = Beheer de organisatie van een evenement ConferenceOrBooth = Conferentie of stand ConferenceOrBoothTab = Conferentie of stand -AmountPaid = Amount paid -DateOfRegistration = Date of registration +AmountPaid = Betaald bedrag +DateOfRegistration = Registratie datum ConferenceOrBoothAttendee = Conference Or Booth Attendee +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -67,31 +71,31 @@ YourOrganizationEventConfRequestWasReceived = Uw verzoek voor een conferentie is YourOrganizationEventBoothRequestWasReceived = Uw aanvraag voor een stand is ontvangen EventOrganizationEmailAskConf = Verzoek om conferentie EventOrganizationEmailAskBooth = Aanvraag voor stand -EventOrganizationEmailBoothPayment = Payment of your booth -EventOrganizationEmailRegistrationPayment = Registration for an event +EventOrganizationEmailBoothPayment = Betaling van uw stand +EventOrganizationEmailRegistrationPayment = Registratie voor een evenement EventOrganizationMassEmailAttendees = Communicatie naar deelnemers EventOrganizationMassEmailSpeakers = Communicatie naar sprekers -ToSpeakers=To speakers +ToSpeakers=Naar sprekers # # Event # -AllowUnknownPeopleSuggestConf=Allow people to suggest conferences -AllowUnknownPeopleSuggestConfHelp=Allow unknown people to suggest a conference they want to do -AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth -AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth +AllowUnknownPeopleSuggestConf=Toestaan dat mensen conferenties voorstellen +AllowUnknownPeopleSuggestConfHelp=Laat onbekende mensen een conferentie voorstellen die ze willen doen +AllowUnknownPeopleSuggestBooth=Laat mensen een stand aanvragen +AllowUnknownPeopleSuggestBoothHelp=Sta onbekende mensen toe om een stand aan te vragen PriceOfRegistration=Prijs van registratie -PriceOfRegistrationHelp=Price to pay to register or participate in the event +PriceOfRegistrationHelp=Prijs te betalen om te registreren of deel te nemen aan het evenement PriceOfBooth=Abonnementsprijs om een stand te staan PriceOfBoothHelp=Abonnementsprijs om een stand te staan -EventOrganizationICSLink=Link ICS for conferences +EventOrganizationICSLink=Koppel ICS voor conferenties ConferenceOrBoothInformation=Informatie over conferentie of stand Or Attendees=deelnemers -ListOfAttendeesOfEvent=List of attendees of the event project +ListOfAttendeesOfEvent=Lijst met deelnemers van het evenementproject DownloadICSLink = ICS-link downloaden -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference +EVENTORGANIZATION_SECUREKEY = Seed om de sleutel voor de openbare registratiepagina te beveiligen om een conferentie voor te stellen SERVICE_BOOTH_LOCATION = Service gebruikt voor de factuurregel over een standlocatie -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service die wordt gebruikt voor de factuurrij over een deelnemersabonnement op een evenement NbVotes=Aantal stemmen # # Status @@ -106,41 +110,42 @@ EvntOrgCancelled = Geannuleerd # Public page # SuggestForm = Suggestie pagina -SuggestOrVoteForConfOrBooth = Page for suggestion or vote -EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest a new one for the event. You can also apply to have a booth during the event. -EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. -EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. +SuggestOrVoteForConfOrBooth = Pagina voor suggestie of stem +EvntOrgRegistrationHelpMessage = Hier kunt u stemmen op een conferentie of een nieuwe voorstellen voor het evenement. U kunt zich ook aanmelden voor een stand tijdens het evenement. +EvntOrgRegistrationConfHelpMessage = Hier kunt u een nieuwe conferentie voorstellen om tijdens het evenement te animeren. +EvntOrgRegistrationBoothHelpMessage = Hier kunt u zich aanmelden voor een stand tijdens het evenement. ListOfSuggestedConferences = Lijst met voorgestelde conferenties -ListOfSuggestedBooths = Lijst met voorgestelde stands -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Een nieuwe conferentie voorstellen SuggestBooth = Stel een stand voor ViewAndVote = Bekijk en stem op voorgestelde evenementen -PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event -PublicAttendeeSubscriptionPage = Public link for registration to this event only +PublicAttendeeSubscriptionGlobalPage = Openbare link voor registratie voor het evenement +PublicAttendeeSubscriptionPage = Openbare link voor registratie alleen voor dit evenement MissingOrBadSecureKey = De beveiligingssleutel is ongeldig of ontbreekt -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Deze conferentie begint op %s en eindigt op %s. ConferenceAttendeeFee = Conferentiebezoekerstarief voor het evenement: '%s' variërend van %s tot %s. BoothLocationFee = Standplaats voor het evenement : '%s' van %s tot %s EventType = Taak type LabelOfBooth=Booth label LabelOfconference=Conferentie label -ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet -DateMustBeBeforeThan=%s must be before %s -DateMustBeAfterThan=%s must be after %s +ConferenceIsNotConfirmed=Registratie niet beschikbaar, conferentie is nog niet bevestigd +DateMustBeBeforeThan=%s moet vóór %s zijn +DateMustBeAfterThan=%s moet na %s +MaxNbOfAttendeesReached=The maximum number of participants has been reached +NewSubscription=Registratie +OrganizationEventConfRequestWasReceived=Uw suggestie voor een conferentie is ontvangen +OrganizationEventBoothRequestWasReceived=Uw aanvraag voor een stand is ontvangen +OrganizationEventPaymentOfBoothWasReceived=Uw betaling voor uw stand is geregistreerd +OrganizationEventPaymentOfRegistrationWasReceived=Uw betaling voor uw evenementregistratie is geregistreerd +OrganizationEventBulkMailToAttendees=Dit is een herinnering aan uw deelname aan het evenement als deelnemer +OrganizationEventBulkMailToSpeakers=Dit is een herinnering aan je deelname aan het evenement als spreker +OrganizationEventLinkToThirdParty=Link naar derde partij (klant, leverancier of partner) +OrganizationEvenLabelName=Public name of the conference or booth -NewSubscription=Registration -OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received -OrganizationEventBoothRequestWasReceived=Your request for a booth has been received -OrganizationEventPaymentOfBoothWasReceived=Your payment for your booth has been recorded -OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event registration has been recorded -OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee -OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker -OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) - -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Aanvraag voor een stand +NewSuggestionOfConference=Aanvraag voor een conferentie # # Vote page @@ -153,15 +158,17 @@ VoteOk = Uw stem is geaccepteerd. AlreadyVoted = Je hebt al op dit evenement gestemd. VoteError = Er is een fout opgetreden tijdens het stemmen, probeer het opnieuw. -SubscriptionOk = Your registration has been validated -ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event +SubscriptionOk=Your registration has been recorded +ConfAttendeeSubscriptionConfirmation = Bevestiging van uw inschrijving op een evenement Attendee = deelnemer PaymentConferenceAttendee = Conferentie deelnemer betaling PaymentBoothLocation = Standplaats betaling -DeleteConferenceOrBoothAttendee=Remove attendee -RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s -EmailAttendee=Attendee email -EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) -ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +DeleteConferenceOrBoothAttendee=Deelnemer verwijderen +RegistrationAndPaymentWereAlreadyRecorder=Een registratie en een betaling waren al geregistreerd voor de e-mail %s +EmailAttendee=E-mailadres van deelnemer +EmailCompany=Company email +EmailCompanyForInvoice=Bedrijfse-mail (voor factuur, indien anders dan e-mailadres van deelnemer) +ErrorSeveralCompaniesWithEmailContactUs=Er zijn verschillende bedrijven met dit e-mailadres gevonden, dus we kunnen uw registratie niet automatisch valideren. Neem contact met ons op via %s voor een handmatige validatie +ErrorSeveralCompaniesWithNameContactUs=Er zijn verschillende bedrijven met deze naam gevonden, dus we kunnen uw registratie niet automatisch valideren. Neem contact met ons op via %s voor een handmatige validatie +NoPublicActionsAllowedForThisEvent=Er zijn geen openbare acties voor dit evenement toegankelijk +MaxNbOfAttendees=Max aantal deelnemers diff --git a/htdocs/langs/nl_NL/exports.lang b/htdocs/langs/nl_NL/exports.lang index e547a96ed86..35ef40e4212 100644 --- a/htdocs/langs/nl_NL/exports.lang +++ b/htdocs/langs/nl_NL/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Exporteerbare velden ExportedFields=Geëxporteerde velden ImportModelName=Naam importeerprofiel ImportModelSaved=Profiel importeren opgeslagen als %s . +ImportProfile=Importeer profiel DatasetToExport=Te exporteren gegevensgroep DatasetToImport=Te importeren gegevensgroep ChooseFieldsOrdersAndTitle=Kies veld volgorde @@ -53,8 +54,9 @@ TypeOfLineServiceOrProduct=Type van de regel (0=product, 1=dienst) FileWithDataToImport=Bestand met te importeren gegevens FileToImport=Te importeren bronbestand FileMustHaveOneOfFollowingFormat=Het te importeren bestand moet een van de volgende indelingen hebben -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields +DownloadEmptyExampleShort=Download een voorbeeldbestand +DownloadEmptyExample=Download een sjabloonbestand met voorbeelden en informatie over velden die u kunt importeren +StarAreMandatory=In het sjabloonbestand zijn alle velden met een * verplichte velden ChooseFormatOfFileToImport=Kies de bestandsindeling die u als importbestandsindeling wilt gebruiken door op het pictogram %s te klikken om deze te selecteren ... ChooseFileToImport=Upload het bestand en klik vervolgens op het pictogram %s om het bestand te selecteren als bronimportbestand ... SourceFileFormat=Bestandsformaat van het bronbestand @@ -82,7 +84,7 @@ SelectFormat=Kies het importeerbestandsformaat RunImportFile=Data importeren NowClickToRunTheImport=Controleer de resultaten van de importsimulatie. Corrigeer eventuele fouten en test opnieuw.
    Wanneer de simulatie geen fouten meldt, kunt u doorgaan met het importeren van de gegevens in de database. DataLoadedWithId=De geïmporteerde gegevens hebben een extra veld in elke databasetabel met dit import-ID: %s , zodat deze doorzoekbaar is in het geval van een probleem met deze import. -ErrorMissingMandatoryValue=Verplichte gegevens zijn leeg in het bronbestand voor veld %s . +ErrorMissingMandatoryValue=Verplichte gegevens zijn leeg in het bronbestand in kolom %s . TooMuchErrors=Er zijn nog steeds %s andere bronregels met fouten, maar de uitvoer is beperkt. TooMuchWarnings=Er zijn nog steeds %s andere bronregels met waarschuwingen maar de uitvoer is beperkt. EmptyLine=Lege regel (wordt genegeerd) @@ -92,12 +94,12 @@ YouCanUseImportIdToFindRecord=U kunt alle geïmporteerde records in uw database NbOfLinesOK=Aantal regels zonder fouten of waarschuwingen: %s. NbOfLinesImported=Aantal regels succesvol geïmporteerd: %s. DataComeFromNoWhere=De waarde die ingevoegd moet worden komt nergens uit het bronbestand vandaan. -DataComeFromFileFieldNb=De in te voegen waarde komt uit het veldnummer %s in het bronbestand. -DataComeFromIdFoundFromRef=De waarde die afkomstig is van veldnummer %s van het bronbestand wordt gebruikt om de id van het te gebruiken bovenliggende object te vinden (dus het object %s met de referentie uit het bronbestand moet in de database bestaan). -DataComeFromIdFoundFromCodeId=Code die afkomstig is van veldnummer %s van het bronbestand wordt gebruikt om de id van het te gebruiken bovenliggende object te vinden (de code van het bronbestand moet dus bestaan in het woordenboek %s ). Merk op dat als u de id kent, u deze ook in het bronbestand kunt gebruiken in plaats van in de code. Importeren zou in beide gevallen moeten werken. +DataComeFromFileFieldNb=De in te voegen waarde komt uit kolom %s in het bronbestand. +DataComeFromIdFoundFromRef=The value that comes from the source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=De gegevens uit het bronbestand worden ingevoegd in het volgende veld: -DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: -DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +DataIDSourceIsInsertedInto=De id van het bovenliggende object, dat is gevonden met behulp van de gegevens in het bronbestand, wordt in het volgende veld ingevoegd: +DataCodeIDSourceIsInsertedInto=De id van de bovenliggende regel, die uit de code is gevonden, wordt in het volgende veld ingevoegd: SourceRequired=Gegevenswaarde is verplicht SourceExample=Voorbeeld van een mogelijke gegevens waarde ExampleAnyRefFoundIntoElement=Elke ref gevonden voor element %s @@ -132,9 +134,14 @@ FormatControlRule=Formaat besturingsregel ## imports updates KeysToUseForUpdates=Sleutel (kolom) om te gebruiken voor het bijwerken van bestaande gegevens NbInsert=Aantal ingevoegde regels: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=Aantal bijgewerkte regels: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=Meerdere records zijn gevonden met deze filters: %s StocksWithBatch=Voorraden en locatie (magazijn) van producten met batch- / serienummer -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used -SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +WarningFirstImportedLine=De eerste regel(s) worden niet geïmporteerd met de huidige selectie +NotUsedFields=Velden van database niet gebruikt +SelectImportFieldsSource = Kies de bronbestandsvelden die u wilt importeren en hun doelveld in de database door de velden in elk keuzevak te kiezen, of selecteer een vooraf gedefinieerd importprofiel: +MandatoryTargetFieldsNotMapped=Sommige verplichte doelvelden zijn niet toegewezen +AllTargetMandatoryFieldsAreMapped=Alle doelvelden die een verplichte waarde nodig hebben, zijn toegewezen +ResultOfSimulationNoError=Resultaat van simulatie: Geen fout diff --git a/htdocs/langs/nl_NL/externalsite.lang b/htdocs/langs/nl_NL/externalsite.lang deleted file mode 100644 index a5de68679db..00000000000 --- a/htdocs/langs/nl_NL/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Instellingen voor de link naar een externe website -ExternalSiteURL=Externe site-URL van HTML-iframe-inhoud -ExternalSiteModuleNotComplete=Module Externe Site werd niet correct geconfigureerd. -ExampleMyMenuEntry=Mijn menu-item diff --git a/htdocs/langs/nl_NL/ftp.lang b/htdocs/langs/nl_NL/ftp.lang deleted file mode 100644 index 6d3bee48b51..00000000000 --- a/htdocs/langs/nl_NL/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP of SFTP Client module setup -NewFTPClient=Nieuwe FTP/SFTP connectie instellen -FTPArea=FTP/SFTP omgeving -FTPAreaDesc=Dit scherm geeft een voorbeeld van een FTP of SFTP server weer -SetupOfFTPClientModuleNotComplete=De setup van de FTP- of SFTP-clientmodule lijkt niet volledig -FTPFeatureNotSupportedByYourPHP=Uw PHP ondersteunt geen FTP- of SFTP-functies -FailedToConnectToFTPServer=Kan geen verbinding maken met server (server%s, poort%s) -FailedToConnectToFTPServerWithCredentials=Inloggen op server met gedefinieerde login / wachtwoord is mislukt -FTPFailedToRemoveFile=Bestand %s kon niet verwijderd worden. -FTPFailedToRemoveDir=Kan map %s niet verwijderen: controleer de machtigingen en of de map leeg is. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Kies een FTP / SFTP-site uit het menu ... -FailedToGetFile=%sBestanden niet ontvangen diff --git a/htdocs/langs/nl_NL/holiday.lang b/htdocs/langs/nl_NL/holiday.lang index 6a53892fd5e..0fda4e974bf 100644 --- a/htdocs/langs/nl_NL/holiday.lang +++ b/htdocs/langs/nl_NL/holiday.lang @@ -27,7 +27,7 @@ DescCP=Beschrijving SendRequestCP=Aanmaken verlofverzoek DelayToRequestCP=Verlofverzoeken moeten tenminste %s dag van te voren worden ingediend. MenuConfCP=Saldo van verlof -SoldeCPUser=Leave balance (in days) %s +SoldeCPUser=Saldo laten staan (in dagen) %s ErrorEndDateCP=U moet een einddatum kiezen die na de startdatum ligt. ErrorSQLCreateCP=Er is een SQL fout ontstaan bij het aanmaken: ErrorIDFicheCP=Fout. Verlofverzoek bestaat niet. @@ -133,7 +133,7 @@ WatermarkOnDraftHolidayCards=Watermerken op ontwerp verlofaanvragen HolidaysToApprove=Vakanties goed te keuren NobodyHasPermissionToValidateHolidays=Niemand heeft toestemming om vakanties te valideren HolidayBalanceMonthlyUpdate=Maandelijkse update van de vrije dagen -XIsAUsualNonWorkingDay=%s is usualy a NON working day -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +XIsAUsualNonWorkingDay=%s is meestal een NIET-werkdag +BlockHolidayIfNegative=Blokkeren als saldo negatief +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Het aanmaken van deze verlofaanvraag is geblokkeerd omdat je saldo negatief is +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Verlofverzoek %s moet worden opgesteld, geannuleerd of worden geweigerd om te worden verwijderd diff --git a/htdocs/langs/nl_NL/hrm.lang b/htdocs/langs/nl_NL/hrm.lang index b0dc4b94884..462eb5cdfc9 100644 --- a/htdocs/langs/nl_NL/hrm.lang +++ b/htdocs/langs/nl_NL/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open vestiging CloseEtablishment=Sluit vestiging # Dictionary DictionaryPublicHolidays=Verlof - Feestdagen -DictionaryDepartment=HRM - Afdelingslijst +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Vacatures # Module Employees=Werknemers @@ -20,62 +20,72 @@ Employee=Werknemer NewEmployee=Nieuwe werknemer ListOfEmployees=Werknemers lijst HrmSetup=Instellingen HRM module -HRM_MAXRANK=Maximum rank for a skill -HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created -deplacement=Shift -DateEval=Evaluation date -JobCard=Job card -Job=Taak -Jobs=Jobs -NewSkill=New Skill -SkillType=Skill type -Skilldets=List of ranks for this skill -Skilldet=Skill level -rank=Rank -ErrNoSkillSelected=No skill selected -ErrSkillAlreadyAdded=This skill is already in the list -SkillHasNoLines=This skill has no lines -skill=Skill -Skills=Skills -SkillCard=Skill card -EmployeeSkillsUpdated=Employee skills have been updated (see "Skills" tab of employee card) -Eval=Evaluation -Evals=Evaluations -NewEval=New evaluation -ValidateEvaluation=Validate evaluation -ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with reference %s? -EvaluationCard=Evaluation card -RequiredRank=Required rank for this job -EmployeeRank=Employee rank for this skill -Position=Positie -Positions=Positions -PositionCard=Position card -EmployeesInThisPosition=Employees in this position -group1ToCompare=Usergroup to analyze -group2ToCompare=Second usergroup for comparison -OrJobToCompare=Compare to job skills requirements +SkillsManagement=Vaardighedenbeheer +HRM_MAXRANK=Maximaal aantal niveaus om een vaardigheid te rangschikken +HRM_DEFAULT_SKILL_DESCRIPTION=Standaardbeschrijving van rangen wanneer vaardigheid is gemaakt +deplacement=dienst\n +DateEval=Evaluatie datum +JobCard=Werk kaart +JobPosition=Taak +JobsPosition=Banen +NewSkill=Nieuwe vaardigheid +SkillType=Vaardigheidstype: +Skilldets=Lijst met rangen voor deze vaardigheid +Skilldet=Vaardigheidsniveau +rank=Rang +ErrNoSkillSelected=Geen vaardigheid geselecteerd +ErrSkillAlreadyAdded=Deze vaardigheid staat al in de lijst +SkillHasNoLines=Deze vaardigheid heeft geen regels +skill=Vaardigheid +Skills=Vaardigheden +SkillCard=Vaardigheidskaart +EmployeeSkillsUpdated=Vaardigheden van werknemers zijn bijgewerkt (zie tabblad "Vaardigheden" van werknemerskaart) +Eval=Evaluatie +Evals=Evaluaties +NewEval=Nieuwe evaluatie +ValidateEvaluation=Evaluatie valideren +ConfirmValidateEvaluation=Weet u zeker dat u deze evaluatie wilt valideren met referentie %s ? +EvaluationCard=Evaluatiekaart +RequiredRank=Vereiste rang voor deze baan +EmployeeRank=Werknemersrang voor deze vaardigheid +EmployeePosition=Functie werknemer +EmployeePositions=Werknemersfuncties +EmployeesInThisPosition=Medewerkers in deze functie +group1ToCompare=Gebruikersgroep om te analyseren +group2ToCompare=Tweede gebruikersgroep ter vergelijking +OrJobToCompare=Vergelijk met vereisten voor beroepsvaardigheden difference=Verschil -CompetenceAcquiredByOneOrMore=Competence acquired by one or more users but not requested by the second comparator -MaxlevelGreaterThan=Max level greater than the one requested -MaxLevelEqualTo=Max level equal to that demand -MaxLevelLowerThan=Max level lower than that demand -MaxlevelGreaterThanShort=Employee level greater than the one requested -MaxLevelEqualToShort=Employee level equals to that demand -MaxLevelLowerThanShort=Employee level lower than that demand -SkillNotAcquired=Skill not acquired by all users and requested by the second comparator +CompetenceAcquiredByOneOrMore=Competentie verworven door een of meer gebruikers maar niet gevraagd door de tweede vergelijker +MaxlevelGreaterThan=Maximaal niveau hoger dan het gevraagde +MaxLevelEqualTo=Max niveau gelijk aan die vraag +MaxLevelLowerThan=Max niveau lager dan die vraag +MaxlevelGreaterThanShort=Werknemersniveau hoger dan gevraagd +MaxLevelEqualToShort=Werknemersniveau is gelijk aan die vraag +MaxLevelLowerThanShort=Werknemersniveau lager dan die vraag +SkillNotAcquired=Vaardigheid niet verworven door alle gebruikers en gevraagd door de tweede vergelijker legend=Legende -TypeSkill=Skill type -AddSkill=Add skills to job -RequiredSkills=Required skills for this job -UserRank=User Rank -SkillList=Skill list -SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge -AbandonmentComment=Abandonment comment -DateLastEval=Date last evaluation -NoEval=No evaluation done for this employee -HowManyUserWithThisMaxNote=Number of users with this rank -HighestRank=Highest rank -SkillComparison=Skill comparison +TypeSkill=Vaardigheidstype: +AddSkill=Vaardigheden toevoegen aan baan +RequiredSkills=Vereiste vaardigheden voor deze baan +UserRank=Gebruikersrang +SkillList=Vaardighedenlijst +SaveRank=Rang opslaan +TypeKnowHow=Weet hoe +TypeHowToBe=Hoe te zijn +TypeKnowledge=Kennis +AbandonmentComment=Verlatingscommentaar +DateLastEval=Datum laatste evaluatie +NoEval=Geen evaluatie gedaan voor deze werknemer +HowManyUserWithThisMaxNote=Aantal gebruikers met deze rang +HighestRank=hoogste rang +SkillComparison=Vaardigheidsvergelijking +ActionsOnJob=Evenementen op deze baan +VacantPosition=vacature +VacantCheckboxHelper=Als u deze optie aanvinkt, worden openstaande vacatures weergegeven (vacature) +SaveAddSkill = Vaardigheid(en) toegevoegd +SaveLevelSkill = Vaardigheidsniveau opgeslagen +DeleteSkill = Vaardigheid verwijderd +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Werknemers) +EvaluationsExtraFields=Attributs supplémentaires (Evaluaties) +NeedBusinessTravels=Zakenreizen nodig diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang index 80850992128..e73a3129bdd 100644 --- a/htdocs/langs/nl_NL/install.lang +++ b/htdocs/langs/nl_NL/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Configuratiebestand %s kan niet worden beschreven. ConfFileIsWritable=Configuratiebestand %s kan voor schrijven geopend worden. ConfFileMustBeAFileNotADir=Configuratiebestand %s moet een bestand zijn en geen map. ConfFileReload=Parameters opnieuw laden uit configuratiebestand. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=Het configuratiebestand conf/conf.php bestaat niet of is niet leesbaar. We zullen het installatieproces uitvoeren om te proberen het te initialiseren. PHPSupportPOSTGETOk=Deze PHP installatie ondersteunt POST en GET. PHPSupportPOSTGETKo=Het is mogelijk dat uw PHP-setup geen ondersteuning biedt voor variabelen POST en / of GET. Controleer de parameter variables_order in php.ini. PHPSupportSessions=Deze PHP installatie ondersteund sessies. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=U heeft de parameter '%s' mogelijk verkeerd ingestel ErrorFailedToCreateDatabase=De database '%s' kon niet worden gecreëerd. ErrorFailedToConnectToDatabase=Het is niet gelukt om een verbinding met de database '%s' te maken. ErrorDatabaseVersionTooLow=Database versie (%s) is te oud. Versie %s of hoger is vereist. -ErrorPHPVersionTooLow=De geïnstalleerde PHP versie is te oud. Versie %s is nodig. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Verbinding met server gelukt maar database '%s' niet gevonden. ErrorDatabaseAlreadyExists=Database '%s' bestaat al. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Als de database niet bestaat, gaat u terug en vinkt u de optie "Create database" aan. IfDatabaseExistsGoBackAndCheckCreate=Wanneer de database al bestaat, ga dan terug en vink "Creëer database" uit. WarningBrowserTooOld=Versie van browser is te oud. Het wordt ten zeerste aanbevolen om uw browser te upgraden naar een recente versie van Firefox, Chrome of Opera. diff --git a/htdocs/langs/nl_NL/interventions.lang b/htdocs/langs/nl_NL/interventions.lang index 431c1208a5e..529fcdd8eec 100644 --- a/htdocs/langs/nl_NL/interventions.lang +++ b/htdocs/langs/nl_NL/interventions.lang @@ -66,3 +66,7 @@ RepeatableIntervention=Sjabloon voor interventie ToCreateAPredefinedIntervention=Als u een vooraf gedefinieerde of terugkerende interventie wilt maken, maakt u een gemeenschappelijke interventie en converteert u deze naar een interventiesjabloon ConfirmReopenIntervention=Weet u zeker dat u de interventie %s weer wilt openen? GenerateInter=Genereer interventie +FichinterNoContractLinked=Interventie %s is gemaakt zonder een gekoppeld contract. +ErrorFicheinterCompanyDoesNotExist=Bedrijf bestaat niet. Interventie is niet gemaakt. +NextDateToIntervention=Date for next intervention generation +NoIntervention=No intervention diff --git a/htdocs/langs/nl_NL/knowledgemanagement.lang b/htdocs/langs/nl_NL/knowledgemanagement.lang index 3a3a2589d96..06642798ddf 100644 --- a/htdocs/langs/nl_NL/knowledgemanagement.lang +++ b/htdocs/langs/nl_NL/knowledgemanagement.lang @@ -46,8 +46,8 @@ KnowledgeRecords = Lidwoord KnowledgeRecord = Artikel KnowledgeRecordExtraFields = Extravelden voor Artikel GroupOfTicket=Groep van tickets -YouCanLinkArticleToATicketCategory=Je kunt een artikel linken naar een ticket groep (dan wordt dit artikel als suggestie gegeven bij een nieuwe ticket) -SuggestedForTicketsInGroup=Suggested for tickets when group is +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) +SuggestedForTicketsInGroup=Aanbevolen voor tickets wanneer groep is SetObsolete=Markeer als overbodig ConfirmCloseKM=Wilt u bevestigen dat het sluiten van dit artikel overbodig is? diff --git a/htdocs/langs/nl_NL/loan.lang b/htdocs/langs/nl_NL/loan.lang index 82c7adbae4e..2114b296428 100644 --- a/htdocs/langs/nl_NL/loan.lang +++ b/htdocs/langs/nl_NL/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Financiële verplichting InterestAmount=Rente CapitalRemain=Saldo kapitaal TermPaidAllreadyPaid = Deze termijn is al betaald -CantUseScheduleWithLoanStartedToPaid = Kan planner niet gebruiken voor een lening waarvan de betaling is gestart +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = U kunt de rente niet wijzigen indien u een schema gebruikt # Admin ConfigLoan=Configuratie van de module lening -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standaard grootboekrekening kapitaal -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standaard grootboekrekening rente -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standaard grootboekrekening verzekeringen +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Bewerk financiële betrokkenheid diff --git a/htdocs/langs/nl_NL/mailmanspip.lang b/htdocs/langs/nl_NL/mailmanspip.lang index 32dbb54e7bd..8627dff684d 100644 --- a/htdocs/langs/nl_NL/mailmanspip.lang +++ b/htdocs/langs/nl_NL/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Test abonneren succesvol uitgevoerd MailmanDeletionSuccess=Test afmelden abonnement succesvol SynchroMailManEnabled=Een update van Mailman zal uitgevoerd worden SynchroSpipEnabled=Een update van SPIP zal uitgevoerd worden -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator paswoord +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator paswoord DescADHERENT_MAILMAN_URL=URL voor het inschrijven op Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL voor het uitschrijven op Mailman DescADHERENT_MAILMAN_LISTS=Lijst(en) voor automatische registratie van nieuwe leden (gescheiden door een komma) diff --git a/htdocs/langs/nl_NL/mails.lang b/htdocs/langs/nl_NL/mails.lang index 9340dc48ad4..aba2a1a6e03 100644 --- a/htdocs/langs/nl_NL/mails.lang +++ b/htdocs/langs/nl_NL/mails.lang @@ -7,10 +7,10 @@ MailCard=E-Mailings kaart MailRecipients=Ontvangers MailRecipient=Ontvanger MailTitle=Titel -MailFrom=Afzender +MailFrom=Van MailErrorsTo=Fouten naar MailReply=Antwoorden naar -MailTo=Ontvanger(s) +MailTo=Voor MailToUsers=Aan gebruiker(s) MailCC=Kopieën aan (cc) MailToCCUsers=Kopiëren naar gebruiker(s) @@ -60,7 +60,7 @@ EMailTestSubstitutionReplacedByGenericValues=Bij het gebruik van de testmodus, w MailingAddFile=Voeg dit bestand bij NoAttachedFiles=Geen bijgevoegde bestanden BadEMail=Onjuiste waarde voor e-mail -EMailNotDefined=Email not defined +EMailNotDefined=E-mail niet gedefinieerd ConfirmCloneEMailing=Weet u zeker dat u deze e-mailing wilt klonen? CloneContent=Kloon bericht CloneReceivers=Kloon ontvangers @@ -163,8 +163,8 @@ AdvTgtDeleteFilter=Verwijder filter AdvTgtSaveFilter=Bewaar filter AdvTgtCreateFilter=Creëer filter AdvTgtOrCreateNewFilter=Naam nieuwe filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties +NoContactWithCategoryFound=Geen categorie gevonden gekoppeld aan sommige contacten/adressen +NoContactLinkedToThirdpartieWithCategoryFound=Geen categorie gevonden gekoppeld aan sommige derde partijen OutGoingEmailSetup=Uitgaande e-mail InGoingEmailSetup=Inkomende e-mail OutGoingEmailSetupForEmailing=Uitgaande e-mailinstellingen (voor module %s) @@ -176,5 +176,6 @@ Answered=Beantwoord IsNotAnAnswer=Is geen antwoord (initiële e-mail) IsAnAnswer=Is een antwoord van een initiële e-mail RecordCreatedByEmailCollector=Record aangemaakt door de E-mail Collector %s van e-mail %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact +DefaultBlacklistMailingStatus=Standaardwaarde voor veld '%s' bij het aanmaken van een nieuw contact DefaultStatusEmptyMandatory=Leeg maar verplicht +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index 5cbc2aaf8f2..86decb8d6fb 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Geen sjabloon beschikbaar voor dit e-mailtype AvailableVariables=Beschikbare substitutievariabelen NoTranslation=Geen vertaling Translation=Vertaling +Translations=Translations CurrentTimeZone=Tijdzone PHP (server) EmptySearchString=Vul geen lege zoekcriteria in EnterADateCriteria=Voer een datum criterium in @@ -88,7 +95,7 @@ FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet ge NbOfEntries=Aantal inzendingen GoToWikiHelpPage=Lees de online hulptekst (internettoegang vereist) GoToHelpPage=Lees de hulptekst -DedicatedPageAvailable=Dedicated help page related to your current screen +DedicatedPageAvailable=Speciale helppagina gerelateerd aan uw huidige scherm HomePage=Startpagina RecordSaved=Item opgeslagen RecordDeleted=Item verwijderd @@ -115,7 +122,7 @@ ReturnCodeLastAccessInError=Retourcode voor de meest recente fout bij het toegan InformationLastAccessInError=Informatie voor de meest recente database-toegangsverzoekfout DolibarrHasDetectedError=Dolibarr heeft een technische fout gedetecteerd YouCanSetOptionDolibarrMainProdToZero=U kunt het logbestand lezen of de optie $dolibarr_main_prod instellen op '0' in uw configuratiebestand voor meer informatie. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +InformationToHelpDiagnose=Deze informatie kan nuttig zijn voor diagnostische doeleinden (u kunt optie $dolibarr_main_prod instellen op '1' om gevoelige informatie te verbergen) MoreInformation=Meer informatie TechnicalInformation=Technische gegevens TechnicalID=Technische ID @@ -199,6 +206,7 @@ Valid=Geldig Approve=Goedkeuren Disapprove=Afkeuren ReOpen=Heropenen +OpenVerb=Open Upload=Uploaden ToLink=Link Select=Selecteer @@ -212,11 +220,11 @@ User=Gebruiker Users=Gebruikers Group=Groep Groups=Groepen -UserGroup=User group -UserGroups=User groups +UserGroup=Gebruikersgroep +UserGroups=Gebruikersgroepen NoUserGroupDefined=Geen gebruikersgroep gedefinieerd Password=Wachtwoord -PasswordRetype=Herhaal uw wachtwoord +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Let op, veel functionaliteiten / modules zijn uitgeschakeld in deze demonstratie. Name=Naam NameSlashCompany=Naam / Bedrijf @@ -244,6 +252,7 @@ Designation=Omschrijving DescriptionOfLine=Regelomschrijving DateOfLine=Datum van regel DurationOfLine=Duur van de lijn +ParentLine=Bovenliggende lijn-ID Model=Document sjabloon DefaultModel=Standaard document sjabloon Action=Actie @@ -344,7 +353,7 @@ KiloBytes=KiloBytes MegaBytes=MegaBytes GigaBytes=GigaBytes TeraBytes=Terabytes -UserAuthor=opgemaakt door +UserAuthor=Aangemaakt door UserModif=Bijgewerkt door b=b Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Evenementen voor dit contact / adres ActionsOnContract=Evenementen voor dit contract ActionsOnMember=Events over dit lid ActionsOnProduct=Evenementen in dit product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s is laat ToDo=Te doen Completed=Voltooid @@ -517,6 +527,7 @@ or=of Other=Overig Others=Overigen OtherInformations=Overige informatie +Workflow=Workflow Quantity=Hoeveelheid Qty=Aantal ChangedBy=Veranderd door @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Bijgevoegde bestanden en documenten JoinMainDoc=Word hoofddocument +JoinMainDocOrLastGenerated=Stuur het hoofddocument of het laatst gegenereerde document indien niet gevonden DateFormatYYYYMM=JJJJ-MM DateFormatYYYYMMDD=JJJJ-MM-DD DateFormatYYYYMMDDHHMM=JJJJ-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Functie uitgeschakeld MoveBox=Verplaats widget Offered=Aanbod NotEnoughPermissions=U heeft geen toestemming voor deze actie +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Sessienaam Method=Methode Receive=Ontvangen @@ -798,6 +811,7 @@ URLPhoto=Url van foto / logo SetLinkToAnotherThirdParty=Link naar een andere derde LinkTo=Link naar LinkToProposal=Link naar offerte +LinkToExpedition= Link to expedition LinkToOrder=gekoppeld aan bestelling LinkToInvoice=Link naar factuur LinkToTemplateInvoice=Link naar sjabloon-factuur @@ -909,13 +923,14 @@ ViewFlatList=Weergeven als lijst ViewAccountList=Grootboek bekijken ViewSubAccountList=Bekijk het grootboek van de subrekening RemoveString='%s' string verwijderen -SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at https://transifex.com/projects/p/dolibarr/ to add your improvements. +SomeTranslationAreUncomplete=Sommige van de aangeboden talen zijn mogelijk slechts gedeeltelijk vertaald of kunnen fouten bevatten. Help uw taal te corrigeren door u te registreren op https://transifex.com/projects/p/dolibarr/ om uw verbeteringen toe te voegen. DirectDownloadLink=Openbare downloadlink PublicDownloadLinkDesc=Alleen de link is vereist om het bestand te downloaden DirectDownloadInternalLink=Privé downloadlink PrivateDownloadLinkDesc=Je moet ingelogd zijn en je hebt rechten nodig om het bestand te bekijken of te downloaden Download=Downloaden DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Bijwerken valutakoers Fiscalyear=Boekjaar ModuleBuilder=Module- en applicatie ontwikkelomgeving @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contracten SearchIntoCustomerShipments=Klantzendingen SearchIntoExpenseReports=Onkostennota's SearchIntoLeaves=Vertrekken +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Betalingen door klanten SearchIntoVendorPayments=Leveranciersbetalingen @@ -1132,15 +1148,29 @@ EventReminder=Herinnering voor evenement UpdateForAllLines=Update voor alle lijnen OnHold=In de wacht Civility=Beleefdheid -AffectTag=Heeft invloed op de tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Externe gebruiker aanmaken -ConfirmAffectTag=invloed op bulk-tag -ConfirmAffectTagQuestion=Weet u zeker dat u tags wilt beïnvloeden voor de %s geselecteerde record (s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Geen tag-soort gevonden voor type records +Rate=Tarief +SupervisorNotFound=Supervisor not found CopiedToClipboard=Gekopieerd naar het klembord InformationOnLinkToContract=Dit bedrag is alleen het totaal van alle regels van het contract. Er wordt geen rekening gehouden met tijd. ConfirmCancel=Weet je zeker dat je dit wilt annuleren EmailMsgID=E-mail MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Zet aan. SetToDisabled=Zet uit. ConfirmMassEnabling=Bevestig het aanzetten @@ -1161,6 +1191,22 @@ Properties=Eigenschappen hasBeenValidated=%s is gevalideerd ClientTZ=Tijdzone van de gebruiker NotClosedYet=Nog niet gesloten -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +ClearSignature=Handtekening resetten +CanceledHidden=Geannuleerd verborgen +CanceledShown=Geannuleerd weergegeven +Terminate=Afbreken +Terminated=Verwijderd +AddLineOnPosition=Lijn op positie toevoegen (aan het einde indien leeg) +ConfirmAllocateCommercial=Bevestiging van verkoopvertegenwoordiger toewijzen +ConfirmAllocateCommercialQuestion=Weet u zeker dat u de geselecteerde record(s) %s wilt toewijzen? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Uw bericht +YourMessageHasBeenReceived=Je bericht is ontvangen. We zullen zo snel mogelijk antwoorden of contact met je opnemen. +UrlToCheck=URL om te controleren +Automation=Automatisering +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interne gebruiker +ExternalUser=Externe gebruiker diff --git a/htdocs/langs/nl_NL/members.lang b/htdocs/langs/nl_NL/members.lang index d6af5dc2441..44b6bc543de 100644 --- a/htdocs/langs/nl_NL/members.lang +++ b/htdocs/langs/nl_NL/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Een ander lid (naam: %s, login: %s ErrorUserPermissionAllowsToLinksToItselfOnly=Om veiligheidsredenen, moeten aan u rechten worden verleend voor het bewerken van alle gebruikers om in staat te zijn een lid te koppelen aan een gebruiker die niet van u is. SetLinkToUser=Link aaneen Dolibarr gebruiker SetLinkToThirdParty=Link naar een derde partij in Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Genereren van lidkaarten MembersList=Ledenlijst MembersListToValid=Lijst van conceptleden (te valideren) @@ -34,8 +35,10 @@ DateSubscription=Startdatum lidmaatschap DateEndSubscription=Einddatum lidmaatschap EndSubscription=Einde lidmaatschap SubscriptionId=Bijdrage ID -WithoutSubscription=Zonder bijdrage -MemberId=Lid ID +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Nieuw lid MemberType=Type lid MemberTypeId=Lidtype id @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Lid kan niet worden verwijderd NewSubscription=Nieuwe bijdrage NewSubscriptionDesc=Met dit formulier kunt u lid worden van de vereniging. Als u uw lidmaatschap wilt verlengen (indien u al lid bent), kunt u contact opnemen met het bestuur via e-mail %s. Subscription=Bijdrage +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duur +GetMembershipButtonLabel=Join Subscriptions=Bijdragen SubscriptionLate=Laat SubscriptionNotReceived=Bijdrage nooit ontvangen @@ -135,7 +144,7 @@ CardContent=Inhoud van uw lidmaatschapskaart # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We willen je laten weten dat je lidmaatschapsverzoek is ontvangen.

    ThisIsContentOfYourMembershipWasValidated=We willen u laten weten dat uw lidmaatschap is gevalideerd met de volgende informatie:

    -ThisIsContentOfYourSubscriptionWasRecorded=We willen u laten weten dat uw nieuwe abonnement is toegevoegd.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We willen je laten weten dat je abonnement bijna verloopt of al is verlopen (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hopen dat je het zult vernieuwen.

    ThisIsContentOfYourCard=Dit is een samenvatting van de informatie die we over u hebben. Neem contact met ons op als er iets niet klopt.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Onderwerp van de ontvangen e-mail in geval van automatische inschrijving van een gast @@ -187,7 +196,7 @@ MembersByRegion=Dit scherm toont u statistieken van leden per regio. MembersStatisticsDesc=Kies de statistieken die u wilt lezen... MenuMembersStats=Statistiek LastMemberDate=Laatste lidmaatschapsdatum -LatestSubscriptionDate=Latest contribution date +LatestSubscriptionDate=Datum laatste bijdrage MemberNature=Aard van het lid MembersNature=Aard van de leden Public=Informatie is openbaar @@ -198,25 +207,28 @@ NbOfSubscriptions=Aantal bijdragen AmountOfSubscriptions=Bedrag uit bijdragen TurnoverOrBudget=Omzet (voor een bedrijf) of budget (voor een vereniging) DefaultAmount=Bedrag standaardbijdrage -CanEditAmount=Bezoekers kunnen het bedrag van hun bijdrage wijzigen -MEMBER_NEWFORM_PAYONLINE=Spring op geïntegreerde online betaalpagina +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Van nature MembersStatisticsByProperties=Ledenstatistieken per aard VATToUseForSubscriptions=BTW-tarief voor bijdragen NoVatOnSubscription=Geen BTW voor bijdragen -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for contribution line into invoice: %s +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product gebruikt voor bijdrageregel op factuur: %s NameOrCompany=Naam of bedrijf SubscriptionRecorded=Bijdrage toegevoegd NoEmailSentToMember=Geen e-mail verzonden naar lid EmailSentToMember=E-mail verzonden naar lid op %s SendReminderForExpiredSubscriptionTitle=Stuur herinneringse-mail voor verlopen bijdragen -SendReminderForExpiredSubscription=Send reminder by email to members when contribution is about to expire (parameter is number of days before end of membership to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5') +SendReminderForExpiredSubscription=Stuur een herinnering per e-mail naar leden wanneer de bijdrage bijna verloopt (parameter is het aantal dagen voor het einde van het lidmaatschap om de herinnering te verzenden. Het kan een lijst met dagen zijn, gescheiden door een puntkomma, bijvoorbeeld '10;5;0;-5 ') MembershipPaid=Lidmaatschap betaald voor huidige periode (tot %s) YouMayFindYourInvoiceInThisEmail=Mogelijk vindt u uw factuur bij deze e-mail XMembersClosed=%s lid (leden) gesloten XExternalUserCreated=%s externe gebruiker(s) aangemaakt ForceMemberNature=Forceer de aard van het lid (individueel of corporatie) CreateDolibarrLoginDesc=Het maken van een gebruikerslogin voor leden geeft toegang tot de applicatie. Afhankelijk van de verleende rechten, zullen ze (bijvoorbeeld) al dan niet hun eigen bestand kunnen raadplegen of aanpassen. -CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +CreateDolibarrThirdPartyDesc=Een derde partij is de rechtspersoon die op de factuur wordt gebruikt als u besluit voor elke bijdrage een factuur te genereren. U kunt deze later tijdens het opnemen van de bijdrage maken. MemberFirstname=Voornaam lid MemberLastname=Naam lid +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/nl_NL/modulebuilder.lang b/htdocs/langs/nl_NL/modulebuilder.lang index 7664a672ab9..dd5bacc83b7 100644 --- a/htdocs/langs/nl_NL/modulebuilder.lang +++ b/htdocs/langs/nl_NL/modulebuilder.lang @@ -1,17 +1,19 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +IdModule= Module id +ModuleBuilderDesc=Deze tool mag alleen worden gebruikt door ervaren gebruikers of ontwikkelaars. Het biedt hulpprogramma's om uw eigen module te bouwen of te bewerken. Documentatie voor alternatieve handmatige ontwikkeling van is hier . +EnterNameOfModuleDesc=Voer de naam in van de module/toepassing die u wilt maken, zonder spaties. Gebruik hoofdletters om woorden te scheiden (bijvoorbeeld: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. +EnterNameOfDictionaryDesc=Voer de naam in van het woordenboek dat u wilt maken, zonder spaties. Gebruik hoofdletters om woorden te scheiden (bijvoorbeeld: MyDico...). Het klassenbestand, maar ook het SQL-bestand wordt gegenereerd. ModuleBuilderDesc2=Pad waar modules worden gegenereerd / bewerkt (eerste map voor externe modules gedefinieerd in %s): %s ModuleBuilderDesc3=Gegenereerde/bewerkbare modules gevonden: %s ModuleBuilderDesc4=Een module is gedetecteerd als 'bewerkbaar' wanneer het bestand %s bestaat in de hoofdmap van de module map NewModule=Nieuwe module NewObjectInModulebuilder=Nieuw object -NewDictionary=New dictionary +NewDictionary=Nieuw woordenboek +ModuleName=Module name ModuleKey=Module sleutel ObjectKey=Object sleutel -DicKey=Dictionary key +DicKey=Woordenboeksleutel ModuleInitialized=Module geïnitialiseerd FilesForObjectInitialized=Bestanden voor nieuw object '%s' geïnitialiseerd FilesForObjectUpdated=Bestanden voor object '%s' bijgewerkt (.sql-bestanden en .class.php bestand) @@ -48,14 +50,17 @@ PathToModulePackage=Pad naar zip van module / applicatiepakket PathToModuleDocumentation=Pad naar bestand van module / applicatiedocumentatie (%s) SpaceOrSpecialCharAreNotAllowed=Spaties of speciale tekens zijn niet toegestaan. FileNotYetGenerated=Bestand nog niet aangemaakt +GenerateCode=Generate code RegenerateClassAndSql=Update van .class- en .sql-bestanden forceren RegenerateMissingFiles=Genereer ontbrekende bestanden SpecificationFile=Bestand met documentatie LanguageFile=Bestand voor taal ObjectProperties=Object eigenschappen +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Weet u zeker dat u de eigenschap %s wilt verwijderen? Dit zal de code in de PHP-klasse veranderen, maar ook de kolom verwijderen uit de tabeldefinitie van het object. NotNull=Niet NULL -NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +NotNullDesc=1=Stel database in op NOT NULL, 0=Sta null-waarden toe, -1=Sta null-waarden toe door de waarde te forceren op NULL indien leeg ('' of 0) SearchAll=Gebruikt voor 'alles zoeken' DatabaseIndex=Database-index FileAlreadyExists=Bestand %s bestaat reeds @@ -81,15 +86,16 @@ IsAMeasure=Is een maat DirScanned=Directory gescand NoTrigger=Geen trigger NoWidget=Geen widget -GoToApiExplorer=API-verkenner +ApiExplorer=API-verkenner ListOfMenusEntries=Lijst met menu-items ListOfDictionariesEntries=Lijst met woordenboekingangen ListOfPermissionsDefined=Lijst met gedefinieerde machtigingen SeeExamples=Zie hier voorbeelden -EnabledDesc=Voorwaarde om dit veld actief te hebben (voorbeelden: 1 of $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Is het veld zichtbaar? (Voorbeelden: 0 = nooit zichtbaar, 1 = zichtbaar op lijst en formulieren maken / bijwerken / bekijken, 2 = alleen zichtbaar op lijst, 3 = alleen zichtbaar op formulier maken / bijwerken / bekijken (geen lijst), 4 = zichtbaar op lijst en update / view form only (not create), 5 = Alleen zichtbaar op lijst eindweergave formulier (niet create, not update).

    Het gebruik van een negatieve waarde betekent dat het veld niet standaard wordt weergegeven op de lijst, maar kan worden geselecteerd voor weergave).

    Het kan een uitdrukking zijn, bijvoorbeeld:
    preg_match ('/ public /', $ _SERVER ['PHP_SELF'])? 0: 1
    ($ user-> rechten-> vakantie-> vakantie-> vakantie-> vakantie->) -DisplayOnPdfDesc=Geef dit veld weer op compatibele PDF-documenten, u kunt de positie beheren met het veld "Positie".
    Momenteel bekende compatibele PDF-modellen zijn: eratosthene (bestelling), espadon (schip), spons (facturen), cyaan (propal/offerte), cornas (bestelling leverancier)

    65 Voor document = weergave
    2 = weergave alleen indien niet leeg

    Voor documentregels:
    0 = niet weergegeven beschrijving
    ccbeschrijving = in kolom beschrijving alleen indien niet leeg -DisplayOnPdf=Weergeven in PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Kan de waarde van het veld worden gecumuleerd om een totaal in de lijst te krijgen? (Voorbeelden: 1 of 0) SearchAllDesc=Wordt het veld gebruikt om een zoekopdracht uit het snelzoekprogramma te doen? (Voorbeelden: 1 of 0) SpecDefDesc=Voer hier alle documentatie in die u met uw module wilt verstrekken die nog niet door andere tabbladen is gedefinieerd. U kunt .md of beter gebruiken, de rijke .asciidoc-syntaxis. @@ -97,11 +103,11 @@ LanguageDefDesc=Voer in deze bestanden de sleutel en de vertaling in voor elk ta MenusDefDesc=Definieer hier de menu's van uw module DictionariesDefDesc=Definieer hier de woordenboeken van uw module PermissionsDefDesc=Definieer hier de nieuwe machtigingen van uw module -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s. +MenusDefDescTooltip=De menu's die door uw module/toepassing worden geleverd, zijn gedefinieerd in de array $this->menus in het moduledescriptorbestand. U kunt dit bestand handmatig bewerken of de ingesloten editor gebruiken.

    Opmerking: Eenmaal gedefinieerd (en de module opnieuw geactiveerd), zijn de menu's ook zichtbaar in de menu-editor die beschikbaar is voor beheerders op %s. DictionariesDefDescTooltip=De woordenboeken van uw module / applicatie worden gedefinieerd in de array $ this-> woordenboeken in het modulebeschrijvingsbestand. U kunt dit bestand handmatig bewerken of de ingesloten editor gebruiken.

    Opmerking: eenmaal gedefinieerd (en module opnieuw geactiveerd), zijn woordenboeken ook zichtbaar in het installatiegebied voor beheerders op %s. PermissionsDefDescTooltip=De machtigingen die door uw module / toepassing worden verstrekt, worden gedefinieerd in de array $ this-> -rechten in het modulebeschrijvingsbestand. U kunt dit bestand handmatig bewerken of de ingesloten editor gebruiken.

    Opmerking: Eenmaal gedefinieerd (en module opnieuw geactiveerd), zijn machtigingen zichtbaar in de standaardinstellingen voor machtigingen %s. HooksDefDesc=Definieer in de eigenschap module_parts ['hooks'] , in de modulebeschrijving, de context van hooks die u wilt beheren (lijst met contexten kan worden gevonden door te zoeken op 'initHooks (' in kerncode).
    Bewerk het haakbestand om code van uw gekoppelde functies toe te voegen (haakbare functies zijn te vinden door te zoeken op 'executeHooks' in de kerncode). -TriggerDefDesc=Define in the trigger file the code that you want to execute when a business event external to your module is executed (events triggered by other modules). +TriggerDefDesc=Definieer in het triggerbestand de code die u wilt uitvoeren wanneer een zakelijke gebeurtenis buiten uw module wordt uitgevoerd (gebeurtenissen die door andere modules worden getriggerd). SeeIDsInUse=Zie ID's die in uw installatie worden gebruikt SeeReservedIDsRangeHere=Zie bereik van gereserveerde ID's ToolkitForDevelopers=Toolkit voor Dolibarr-ontwikkelaars @@ -113,7 +119,7 @@ DropTableIfEmpty=(Vernietig de tabel als deze leeg is) TableDoesNotExists=Tabel %s bestaat niet TableDropped=Tabel %s verwijderd InitStructureFromExistingTable=Bouw de reeks structuurstructuren van een bestaande tabel -UseAboutPage=Do not generate the About page +UseAboutPage=Genereer de Over-pagina niet UseDocFolder=Schakel de documentatie map uit UseSpecificReadme=Gebruik een specifieke Leesmij ContentOfREADMECustomized=Opmerking: de inhoud van het bestand README.md is vervangen door de specifieke waarde die is gedefinieerd in de setup van ModuleBuilder. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Gebruik een specifieke editor-URL UseSpecificFamily = Gebruik een specifieke familie UseSpecificAuthor = Gebruik een specifieke auteur UseSpecificVersion = Gebruik een specifieke eerste versie -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules +IncludeRefGenerationHelp=Vink dit aan als u code wilt opnemen om het genereren van de referentie automatisch te beheren met behulp van aangepaste nummeringsregels +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Als u dit aanvinkt, wordt er een code gegenereerd om een vak "Document genereren" aan de record toe te voegen. -ShowOnCombobox=Waarde weergeven in combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Sleutel voor knopinfo CSSClass=CSS voor het bewerken/aanmaken van formulier CSSViewClass=CSS voor leesformulier CSSListClass=CSS voor lijst NotEditable=Niet bewerkbaar ForeignKey=Vreemde sleutel -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii naar HTML converter AsciiToPdfConverter=Ascii naar PDF converter TableNotEmptyDropCanceled=Tabel is niet leeg. Drop is geannuleerd. ModuleBuilderNotAllowed=De modulebouwer is beschikbaar maar niet toegestaan voor uw gebruiker. ImportExportProfiles=Profielen importeren en exporteren -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. -WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated -LinkToParentMenu=Parent menu (fk_xxxxmenu) -ListOfTabsEntries=List of tab entries -TabsDefDesc=Define here the tabs provided by your module -TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. +WarningDatabaseIsNotUpdated=Waarschuwing: de database wordt niet automatisch bijgewerkt, u moet tabellen vernietigen en de module uitschakelen om tabellen opnieuw te laten maken +LinkToParentMenu=Hoofdmenu (fk_xxxxmenu) +ListOfTabsEntries=Lijst met tabbladitems +TabsDefDesc=Definieer hier de tabbladen van uw module +TabsDefDescTooltip=De tabbladen die door uw module/toepassing worden geleverd, zijn gedefinieerd in de array $this->tabs in het moduledescriptorbestand. U kunt dit bestand handmatig bewerken of de ingesloten editor gebruiken. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/nl_NL/mrp.lang b/htdocs/langs/nl_NL/mrp.lang index ef6ba4e4315..6e2f7ac2ff8 100644 --- a/htdocs/langs/nl_NL/mrp.lang +++ b/htdocs/langs/nl_NL/mrp.lang @@ -9,10 +9,10 @@ LatestBOMModified=Nieuwste %s aangepaste stuklijsten LatestMOModified=Laatste %s Productieorders gewijzigd Bom=Stuklijsten BillOfMaterials=Stuklijst -BillOfMaterialsLines=Bill of Materials lines +BillOfMaterialsLines=Stuklijstregels BOMsSetup=Instellingen Stuklijsten -ListOfBOMs=Lijst met stuklijsten - stuklijst -ListOfManufacturingOrders=Lijst met productieorders +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Productieorders NewBOM=Nieuwe stuklijst ProductBOMHelp=Product om te maken (of te demonteren) met deze stuklijst.
    Let op: Producten met de eigenschap 'Aard van product' = 'Grondstof' zijn niet zichtbaar in deze lijst. BOMsNumberingModules=BOM nummeringsjablonen @@ -27,7 +27,8 @@ ConfirmCloneBillOfMaterials=Weet u zeker dat u de stuklijst %s wilt klonen? ConfirmCloneMo=Weet u zeker dat u de productieorder %s wilt klonen? ManufacturingEfficiency=Productie-efficiëntie ConsumptionEfficiency=Verbruiksefficiëntie -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +Consumption=Consumption +ValueOfMeansLoss=Waarde van 0,95 betekent een gemiddelde van 5%% verlies tijdens de fabricage of de demontage ValueOfMeansLossForProductProduced=Waarde van 0,95 betekent een gemiddelde van 5%% verlies van geproduceerd product DeleteBillOfMaterials=Stuklijst verwijderen DeleteMo=Productieorder verwijderen @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=Voor een te demonteren hoeveelheid %s ConfirmValidateMo=Weet u zeker dat u deze productieorder wilt valideren? ConfirmProductionDesc=Door op '1%s' te klikken, valideert u het verbruik en / of de productie voor de ingestelde hoeveelheden. Hiermee worden ook de voorraad- en recordbewegingen bijgewerkt. ProductionForRef=Productie van %s +CancelProductionForRef=Annulering van productvoorraadvermindering voor product %s +TooltipDeleteAndRevertStockMovement=Lijn verwijderen en voorraadbeweging terugdraaien AutoCloseMO=Sluit de productie order automatisch als hoeveelheid en hoeveelheid te produceren is bereikt NoStockChangeOnServices=Geen voorraad aanpassing op deze service ProductQtyToConsumeByMO=Producthoeveelheid nog te consumeren door open MO @@ -80,6 +83,7 @@ ProductsToProduce=Te produceren producten UnitCost=De kosten per eenheid TotalCost=Totale prijs BOMTotalCost=De kosten voor het produceren van deze stuklijst op basis van de kosten van elke hoeveelheid en elk te consumeren product (gebruik kostprijs indien gedefinieerd, anders gemiddelde gewogen prijs indien gedefinieerd, anders de beste aankoopprijs) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=U moet eerst de productie hebben gestart om een Productieorder te sluiten (zie tabblad '%s'). Maar u kunt het annuleren. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Een kit kan niet worden gebruikt in een stuklijst of een MO Workstation=Werkstation @@ -105,5 +109,12 @@ WorkstationArea=Werkstationgebied Machines=Machines THMEstimatedHelp=Dit tarief maakt het mogelijk om een prognose van de kosten van het artikel te definiëren BOM=Bill of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module +CollapseBOMHelp=U kunt de standaardweergave van de details van de nomenclatuur definiëren in de configuratie van de stuklijstmodule MOAndLines=Productieorders en -regels +MoChildGenerate=Genereer kindmo +ParentMo=MO Ouder +MOChild=MO Kind +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/nl_NL/oauth.lang b/htdocs/langs/nl_NL/oauth.lang index 70ca70bc9dd..c0a609675ad 100644 --- a/htdocs/langs/nl_NL/oauth.lang +++ b/htdocs/langs/nl_NL/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Token is gegenereerd en opgeslagen in locale database NewTokenStored=Token ontvangen en opgeslagen ToCheckDeleteTokenOnProvider=Klik hier om de autorisatie te controleren/verwijderen die is opgeslagen door%sOAuth-provider TokenDeleted=Token verwijderd -RequestAccess=Klik hier voor her-opvragen/vernieuwen van toegang en ontvang een nieuw token te bewaren. +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Klik hier om token te verwijderen UseTheFollowingUrlAsRedirectURI=Gebruik de volgende URL als de omleidings-URI bij het maken van uw inloggegevens bij uw OAuth-provider: -ListOfSupportedOauthProviders=Voer de inloggegevens in die door uw OAuth2-provider zijn verstrekt. Alleen ondersteunde OAuth2-providers worden hier vermeld. Deze services kunnen worden gebruikt door andere modules die OAuth2-authenticatie nodig hebben. -OAuthSetupForLogin=Pagina om Oauth token te genereren +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Zie vorige tab +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID en Secret TOKEN_REFRESH=Token Vernieuw aanwezig TOKEN_EXPIRED=Token verlopen @@ -23,10 +24,13 @@ TOKEN_DELETE=Verwijder opgeslagen token OAUTH_GOOGLE_NAME=OAuth Google-service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Ga naar deze pagina en vervolgens "Referenties" om OAuth-referenties te maken OAUTH_GITHUB_NAME=OAuth GitHub-service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Ga naar deze pagina en "Registreer een nieuwe toepassing" om OAuth-referenties te maken +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/nl_NL/orders.lang b/htdocs/langs/nl_NL/orders.lang index 62ccbb371b8..ca879a7ff7d 100644 --- a/htdocs/langs/nl_NL/orders.lang +++ b/htdocs/langs/nl_NL/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=An order was already open linked to this proposal, so no other order was created automatically OrdersArea=Klantenorders overzicht SuppliersOrdersArea=Inkooporders gebied OrderCard=Opdrachtenkaart @@ -17,7 +18,7 @@ ToOrder=Te bestellen MakeOrder=Opdracht indienen SupplierOrder=Bestelling SuppliersOrders=Inkooporders -SaleOrderLines=Sales order lines +SaleOrderLines=Verkooporderregels PurchaseOrderLines=Inkooporderregels SuppliersOrdersRunning=Huidige inkooporders CustomerOrder=Klantorder @@ -68,6 +69,8 @@ CreateOrder=Creeer opdracht RefuseOrder=Wijger opdracht ApproveOrder=Goedkeuren bestelling Approve2Order=Goedkeuren bestelling (tweede niveau) +UserApproval=Gebruiker voor goedkeuring +UserApproval2=Gebruiker ter goedkeuring (tweede niveau) ValidateOrder=Valideer opdracht UnvalidateOrder=Unvalidate order DeleteOrder=Verwijder opdracht @@ -102,6 +105,8 @@ ConfirmCancelOrder=Weet u zeker dat u deze order wilt annuleren? ConfirmMakeOrder=Weet u zeker dat u deze order wilt bevestigen op %s? GenerateBill=Genereer factuur ClassifyShipped=Is geleverd +PassedInShippedStatus=geclassificeerd geleverd +YouCantShipThis=Ik kan dit niet classificeren. Controleer de gebruikersrechten DraftOrders=Conceptopdrachten DraftSuppliersOrders=Ontwerp-inkooporders OnProcessOrders=Opdrachten in behandeling @@ -124,8 +129,8 @@ SupplierOrderReceivedInDolibarr=Bestelling %s heeft %s ontvangen SupplierOrderSubmitedInDolibarr=Bestelling %s verzonden SupplierOrderClassifiedBilled=Bestelling %s gemerkt gefactureerd OtherOrders=Andere opdrachten -SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderValidatedAndApproved=De bestelling van de leverancier is gevalideerd en goedgekeurd: %s +SupplierOrderValidated=Leveranciersorder is gevalideerd: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Vertegenwoordiger opvolgingsorder TypeContact_commande_internal_SHIPPING=Vertegenwoordiger die follow-up van verzending doet @@ -153,7 +158,7 @@ PDFEdisonDescription=Een eenvoudig opdrachtenmodel PDFProformaDescription=Een complete Proforma factuursjabloon CreateInvoiceForThisCustomer=Factureer orders CreateInvoiceForThisSupplier=Factureer orders -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisReceptions=Bill recepties NoOrdersToInvoice=Geen te factureren orders CloseProcessedOrdersAutomatically=Alle geselecteerde orders zijn afgehandeld OrderCreation=Order aanmaak diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang index ec29d4a2752..5dbd76ee1d3 100644 --- a/htdocs/langs/nl_NL/other.lang +++ b/htdocs/langs/nl_NL/other.lang @@ -35,9 +35,9 @@ OnlyOneFieldForXAxisIsPossible=Momenteel is slechts 1 veld mogelijk als X-as. Al AtLeastOneMeasureIsRequired=Er is minimaal 1 veld voor meting vereist AtLeastOneXAxisIsRequired=Er is minimaal 1 veld voor X-as vereist LatestBlogPosts=Laatste blogberichten -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail +notiftouser=Aan gebruikers +notiftofixedemail=Naar vaste post +notiftouserandtofixedemail=Naar gebruiker en vaste mail Notify_ORDER_VALIDATE=Klantorder gevalideerd Notify_ORDER_SENTBYMAIL=Klantorder verzonden per post Notify_ORDER_SUPPLIER_SENTBYMAIL=Aankooporder verzonden per e-mail @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... of bouw je eigen profiel
    (handmatige modulesel DemoFundation=Ledenbeheer van een stichting DemoFundation2=Beheer van de leden en de bankrekening van een stichting DemoCompanyServiceOnly=Bedrijf of freelance verkoopservice alleen -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=Beheer een winkel met een kassa DemoCompanyProductAndStocks=Producten verkocht in winkel met POS DemoCompanyManufacturing=Bedrijf dat producten vervaardigt DemoCompanyAll=Bedrijf met meerdere activiteiten (alle hoofdmodules) @@ -258,10 +258,10 @@ PassEncoding=Wachtwoord codering PermissionsAdd=Rechten toegevoegd PermissionsDelete=Rechten verwijderd YourPasswordMustHaveAtLeastXChars=Uw wachtwoord moet minimaal %s karakters bevatten -PasswordNeedAtLeastXUpperCaseChars=The password need at least %s upper case chars -PasswordNeedAtLeastXDigitChars=The password need at least %s numeric chars -PasswordNeedAtLeastXSpecialChars=The password need at least %s special chars -PasswordNeedNoXConsecutiveChars=The password must not have %s consecutive similar chars +PasswordNeedAtLeastXUpperCaseChars=Het wachtwoord heeft minimaal %s hoofdletters nodig +PasswordNeedAtLeastXDigitChars=Het wachtwoord heeft minimaal %s numerieke tekens nodig +PasswordNeedAtLeastXSpecialChars=Het wachtwoord heeft minimaal %s speciale tekens nodig +PasswordNeedNoXConsecutiveChars=Het wachtwoord mag geen %s opeenvolgende vergelijkbare tekens hebben YourPasswordHasBeenReset=Uw wachtwoord is met succes gereset ApplicantIpAddress=IP-adres van aanvrager SMSSentTo=SMS verzonden naar %s @@ -272,7 +272,7 @@ ProjectCreatedByEmailCollector=Project gemaakt door e-mailverzamelaar uit e-mail TicketCreatedByEmailCollector=Ticket gemaakt door e-mailverzamelaar vanuit e-mail MSGID %s OpeningHoursFormatDesc=Gebruik a - om de openings- en sluitingsuren te scheiden.
    Gebruik een spatie om verschillende bereiken in te voeren.
    Voorbeeld: 8-12 14-18 SuffixSessionName=Achtervoegsel voor sessienaam -LoginWith=Login with %s +LoginWith=Log in met %s ##### Export ##### ExportsArea=Uitvoeroverzicht @@ -303,4 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Selecteer een object om de statistieken te bekijk ConfirmBtnCommonContent = Weet je zeker dat je "1%s"? ConfirmBtnCommonTitle = Bevestig CloseDialog = Sluiten -Autofill = Autofill +Autofill = Automatisch aanvullen + +# externalsite +ExternalSiteSetup=Instellingen voor de link naar een externe website +ExternalSiteURL=Externe site-URL van HTML-iframe-inhoud +ExternalSiteModuleNotComplete=Module Externe Site werd niet correct geconfigureerd. +ExampleMyMenuEntry=Mijn menu-item + +# FTP +FTPClientSetup=FTP of SFTP Client module setup +NewFTPClient=Nieuwe FTP/SFTP connectie instellen +FTPArea=FTP/SFTP omgeving +FTPAreaDesc=Dit scherm geeft een voorbeeld van een FTP of SFTP server weer +SetupOfFTPClientModuleNotComplete=De setup van de FTP- of SFTP-clientmodule lijkt niet volledig +FTPFeatureNotSupportedByYourPHP=Uw PHP ondersteunt geen FTP- of SFTP-functies +FailedToConnectToFTPServer=Kan geen verbinding maken met server (server%s, poort%s) +FailedToConnectToFTPServerWithCredentials=Inloggen op server met gedefinieerde login / wachtwoord is mislukt +FTPFailedToRemoveFile=Bestand %s kon niet verwijderd worden. +FTPFailedToRemoveDir=Kan map %s niet verwijderen: controleer de machtigingen en of de map leeg is. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Kies een FTP / SFTP-site uit het menu ... +FailedToGetFile=%sBestanden niet ontvangen diff --git a/htdocs/langs/nl_NL/partnership.lang b/htdocs/langs/nl_NL/partnership.lang index 35dd4eae2c0..093415a0c1c 100644 --- a/htdocs/langs/nl_NL/partnership.lang +++ b/htdocs/langs/nl_NL/partnership.lang @@ -19,7 +19,8 @@ ModulePartnershipName=Partnerschap beheer PartnershipDescription=Module Partnerschap beheer PartnershipDescriptionLong= Module Partnerschap beheer -Partnership=Partnership +Partnership=Vennootschap +Partnerships=Partnerships AddPartnership=Partnerschap toevoegen CancelPartnershipForExpiredMembers=Partnerschap: annuleer partnerschap van leden met verlopen abonnementen PartnershipCheckBacklink=Partnerschap: controleer verwijzende backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerschap: controleer verwijzende backlink # Menu # NewPartnership=Nieuw partnerschap +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=Overzicht van partnerschappen # @@ -42,6 +44,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Te controleren backlinks PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Aantal dagen voordat de status van een partnerschap wordt opgezegd wanneer een abonnement is verlopen ReferingWebsiteCheck=Controle van de website die verwijst ReferingWebsiteCheckDesc=U kunt een functie inschakelen om te controleren of uw partners een backlink hebben toegevoegd aan uw websitedomeinen op hun eigen website. +PublicFormRegistrationPartnerDesc=Dolibarr kan u een openbare URL/website verstrekken zodat externe bezoekers kunnen verzoeken om deel uit te maken van het partnerschapsprogramma. # # Object @@ -58,7 +61,13 @@ ManagePartnership=Partnerschap beheren BacklinkNotFoundOnPartnerWebsite=Backlink niet gevonden op partnerwebsite ConfirmClosePartnershipAsk=Weet u zeker dat u deze partnerschap wilt opzeggen? PartnershipType=Partnerschapstype -PartnershipRefApproved=Partnership %s approved +PartnershipRefApproved=Partnerschap %s goedgekeurd +KeywordToCheckInWebsite=Als u wilt controleren of een bepaald trefwoord aanwezig is op de website van elke partner, definieert u dit trefwoord hier +PartnershipDraft=Ontwerp +PartnershipAccepted=Geaccepteerd +PartnershipRefused=Geweigerd +PartnershipCanceled=Geannuleerd +PartnershipManagedFor=Partners zijn # # Template Mail @@ -78,15 +87,10 @@ YourPartnershipRefusedContent=Wij informeren u dat uw partnerschapsverzoek is af YourPartnershipAcceptedContent=Wij informeren u dat uw partnerschapsverzoek is geaccepteerd. YourPartnershipCanceledContent=Wij informeren u dat uw partnerschap is beëindigd. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check +CountLastUrlCheckError=Aantal fouten voor laatste URL-controle +LastCheckBacklink=Datum van laatste URL-controle ReasonDeclineOrCancel=Reden afwijzing -# -# Status -# -PartnershipDraft=Ontwerp -PartnershipAccepted=Geaccepteerd -PartnershipRefused=Geweigerd -PartnershipCanceled=Geannuleerd -PartnershipManagedFor=Partners zijn +NewPartnershipRequest=Nieuw partnerschapsverzoek +NewPartnershipRequestDesc=Met dit formulier kunt u een aanvraag indienen om deel uit te maken van een van onze partnerprogramma's. Als je hulp nodig hebt bij het invullen van dit formulier, neem dan contact op via e-mail %s . + diff --git a/htdocs/langs/nl_NL/products.lang b/htdocs/langs/nl_NL/products.lang index 34f85416272..bd9b6d63ac5 100644 --- a/htdocs/langs/nl_NL/products.lang +++ b/htdocs/langs/nl_NL/products.lang @@ -75,7 +75,7 @@ SellingPriceTTC=Verkoopprijs (inclusief belastingen) SellingMinPriceTTC=Minimale verkoopprijs (incl. BTW) CostPriceDescription=Dit prijsveld (excl. btw) kan worden gebruikt om het gemiddelde bedrag dat dit product voor uw bedrijf kost vast te leggen. Het kan elke prijs zijn die u zelf berekent, bijvoorbeeld uit de gemiddelde inkoopprijs plus de gemiddelde productie- en distributiekosten. CostPriceUsage=Deze waarde kan worden gebruik voor marge berekening. -ManufacturingPrice=Manufacturing price +ManufacturingPrice=fabricage prijs: SoldAmount=Aantal verkocht PurchasedAmount=Aantal ingekocht NewPrice=Nieuwe prijs @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Weet u zeker dat u deze productlijn wilt verwijderen? ProductSpecial=Speciaal QtyMin=Min. aankoop hoeveelheid PriceQtyMin=Prijs min. hoeveelheid -PriceQtyMinCurrency=Prijs (valuta) voor dit aantal. (geen korting) +PriceQtyMinCurrency=Prijs (valuta) voor dit aantal. +WithoutDiscount=Zonder korting VATRateForSupplierProduct=BTW-tarief (voor deze leverancier / dit product) DiscountQtyMin=Korting bij dit aantal NoPriceDefinedForThisSupplier=Geen prijs / aantal gedefinieerd voor deze leverancier / product @@ -261,7 +262,7 @@ Quarter1=1e kwartaal Quarter2=2e kwartaal Quarter3=3e kwartaal Quarter4=4e kwartaal -BarCodePrintsheet=Barcode afdrukken +BarCodePrintsheet=Barcodes afdrukken PageToGenerateBarCodeSheets=Met deze tool kunt u vellen barcodestickers afdrukken. Kies het formaat van uw stickerpagina, het type barcode en de waarde van de barcode en klik vervolgens op de knop %s . NumberOfStickers=Aantal etiketten per blad PrintsheetForOneBarCode=Druk meer etiketten voor een barcode @@ -316,7 +317,7 @@ LastUpdated=Laatst bijgewerkt CorrectlyUpdated=Correct bijgewerkt PropalMergePdfProductActualFile=Gebruikte bestanden om toe te voegen aan PDF Azur zijn/is PropalMergePdfProductChooseFile=Selecteer PDF bestanden -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=Inclusief producten/diensten met de tag DefaultPriceRealPriceMayDependOnCustomer=Standaard verkoopprijs, echte verkoopprijs kan bij klant zijn vastgelegd WarningSelectOneDocument=Selecteer tenminste één document DefaultUnitToShow=Eenheid @@ -344,9 +345,9 @@ PossibleValues=Mogelijke waarden GoOnMenuToCreateVairants=Ga naar menu %s-%s om attributenvarianten voor te bereiden (zoals kleuren, grootte, ...) UseProductFournDesc=Voeg een functie toe om de productbeschrijving te definiëren die is gedefinieerd door de leveranciers (voor elke leveranciersreferentie) naast de beschrijving voor klanten ProductSupplierDescription=Leveranciersbeschrijving voor het product -UseProductSupplierPackaging=Gebruik verpakkingen op leveranciersprijzen (herbereken hoeveelheden volgens verpakking ingesteld op leveranciersprijs bij toevoegen / bijwerken van regel in leveranciersdocumenten) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Verpakking -PackagingForThisProductDesc=Bij een leveranciersbestelling bestelt u automatisch deze hoeveelheid (of een veelvoud van deze hoeveelheid). Mag niet minder zijn dan de minimumaankoophoeveelheid +PackagingForThisProductDesc=U koopt automatisch een veelvoud van deze hoeveelheid. QtyRecalculatedWithPackaging=De hoeveelheid van de lijn werd herberekend volgens de verpakking van de leverancier #Attributes @@ -398,16 +399,33 @@ ActionAvailableOnVariantProductOnly=Actie alleen beschikbaar op de variant van h ProductsPricePerCustomer=Productprijzen per klant ProductSupplierExtraFields=Aanvullende attributen (leveranciersprijzen) DeleteLinkedProduct=Verwijder het onderliggende product dat aan de combinatie is gekoppeld -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Waardering (PMP) PMPValueShort=Waarde -mandatoryperiod=Mandatory periods -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined -mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period -mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
    Note that the message is a warning and not a blocking error. -DefaultBOM=Default BOM -DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. -Rank=Rank -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +mandatoryperiod=Verplichte perioden +mandatoryPeriodNeedTobeSet=Opmerking: periode (begin- en einddatum) moet worden gedefinieerd +mandatoryPeriodNeedTobeSetMsgValidate=Een dienst vereist een begin- en eindperiode +mandatoryHelper=Vink dit aan als u een bericht naar de gebruiker wilt bij het aanmaken/valideren van een factuur, commercieel voorstel, verkooporder zonder een start- en einddatum in te voeren op regels met deze service.
    Merk op dat het bericht een waarschuwing is en geen blokkeringsfout. +DefaultBOM=Standaard stuklijst +DefaultBOMDesc=De standaard stuklijst die wordt aanbevolen om dit product te vervaardigen. Dit veld kan alleen worden ingesteld als de aard van het product '%s' is. +Rank=Rang +MergeOriginProduct=Dubbel product (product dat u wilt verwijderen) +MergeProducts=Producten samenvoegen +ConfirmMergeProducts=Weet u zeker dat u het gekozen product wilt samenvoegen met het huidige? Alle gekoppelde objecten (facturen, bestellingen, ...) worden verplaatst naar het huidige product, waarna het gekozen product wordt verwijderd. +ProductsMergeSuccess=Producten zijn samengevoegd +ErrorsProductsMerge=Fouten in producten samenvoegen +SwitchOnSaleStatus=Verkoopstatus inschakelen +SwitchOnPurchaseStatus=Aankoopstatus inschakelen +UpdatePrice=Increase/decrease customer price +StockMouvementExtraFields= Extra velden (voorraadbeweging) +InventoryExtraFields= Extra velden (inventaris) +ScanOrTypeOrCopyPasteYourBarCodes=Scan of typ of kopieer/plak uw barcodes +PuttingPricesUpToDate=Update prijzen met de huidige bekende prijzen +PMPExpected=Verwachte PMP +ExpectedValuation=Verwachte waardering +PMPReal=Echte PMP +RealValuation=Echte waardering +ConfirmEditExtrafield = Selecteer het extraveld dat u wilt wijzigen +ConfirmEditExtrafieldQuestion = Weet u zeker dat u dit extraveld wilt wijzigen? +ModifyValueExtrafields = Wijzig de waarde van een extraveld +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/nl_NL/projects.lang b/htdocs/langs/nl_NL/projects.lang index 6e3a080beb1..0721eab36d4 100644 --- a/htdocs/langs/nl_NL/projects.lang +++ b/htdocs/langs/nl_NL/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Projectlabel ProjectsArea=Project omgeving ProjectStatus=Project status SharedProject=Iedereen -PrivateProject=Assigned contacts +PrivateProject=Toegewezen contacten ProjectsImContactFor=Projecten waarvoor ik expliciet contactpersoon ben AllAllowedProjects=Alle projecten die ik kan lezen (mine + public) AllProjects=Alle projecten @@ -23,6 +23,7 @@ TasksPublicDesc=Deze weergave toont alle projecten en taken die u mag inzien. TasksDesc=Deze weergave toont alle projecten en taken (Uw gebruikersrechten staan het u toe alles in te zien). AllTaskVisibleButEditIfYouAreAssigned=Alle taken voor gekwalificeerde projecten zijn zichtbaar, maar u kunt alleen tijd invoeren voor de taak die aan de geselecteerde gebruiker is toegewezen. Wijs een taak toe als u er tijd op wilt invoeren. OnlyYourTaskAreVisible=Alleen taken die aan u zijn toegewezen, zijn zichtbaar. Als je tijd moet invoeren voor een taak en als de taak hier niet zichtbaar is, dan moet je de taak aan jezelf toewijzen. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Taken bij projecten ProjectCategories=Labels/categorieën projecten NewProject=Nieuw project @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Leidt het aantal open projecten op status OpportunitiesStatusForProjects=Leidt aantal projecten op status ShowProject=Toon project ShowTask=Toon taak +SetThirdParty=Set third party SetProject=Stel project in +OutOfProject=Out of project NoProject=Geen enkel project gedefinieerd of in eigendom NbOfProjects=Aantal projecten NbOfTasks=Aantal taken @@ -122,7 +125,8 @@ ValidateProject=Valideer project ConfirmValidateProject=Weet u zeker dat u dit project wilt valideren? CloseAProject=Sluit project ConfirmCloseAProject=Weet u zeker dat u dit project wilt afsluiten? -AlsoCloseAProject=Sluit ook het project (houd het open als u er nog steeds productietaken op moet volgen) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Project heropenen ConfirmReOpenAProject=Weet u zeker dat u dit project wilt her-openen? ProjectContact=Contacten van het project @@ -165,7 +169,7 @@ OpportunityProbability=Lead waarschijnlijkheid OpportunityProbabilityShort=Lood probab. OpportunityAmount=Lood bedrag OpportunityAmountShort=Lood bedrag -OpportunityWeightedAmount=Kans gewogen bedrag +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. gewogen bedrag OpportunityAmountAverageShort=Gemiddeld loodbedrag OpportunityAmountWeigthedShort=Gewogen loodbedrag @@ -190,7 +194,7 @@ PlannedWorkload=Geplande workload PlannedWorkloadShort=Workload ProjectReferers=Gerelateerde items ProjectMustBeValidatedFirst=Project moet eerst worden gevalideerd -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. +MustBeValidatedToBeSigned=%s moet eerst worden gevalideerd om te worden ingesteld op Ondertekend. FirstAddRessourceToAllocateTime=Wijs een gebruikersresource toe als contactpersoon van het project om tijd toe te wijzen InputPerDay=Input per dag InputPerWeek=Input per week @@ -198,7 +202,7 @@ InputPerMonth=Input per maand InputDetail=Invoerdetail TimeAlreadyRecorded=Dit is de tijdsbesteding die al is vastgelegd voor deze taak / dag en gebruiker %s ProjectsWithThisUserAsContact=Projecten met deze gebruiker als contact -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=Projecten met dit contact TasksWithThisUserAsContact=Taken toegekend aan gebruiker ResourceNotAssignedToProject=Niet toegewezen aan project ResourceNotAssignedToTheTask=Niet toegewezen aan de taak @@ -238,7 +242,7 @@ OppStatusPENDING=Hangende OppStatusWON=Won OppStatusLOST=Verloren Budget=Begroting -AllowToLinkFromOtherCompany=Sta toe om project van ander bedrijf te linken

    Ondersteunde waarden:
    - Leeg houden: kan elk project van het bedrijf koppelen (standaard)
    - "alles": kan projecten koppelen, zelfs projecten van andere bedrijven
    - Een lijst met id's van derden gescheiden door komma's: kan alle projecten van deze derde partijen koppelen (Voorbeeld: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Laatste %s projecten LatestModifiedProjects=Laatste %s aangepaste projecten OtherFilteredTasks=Andere gefilterde taken @@ -259,7 +263,7 @@ TimeSpentInvoiced=Tijd besteed gefactureerd TimeSpentForIntervention=Bestede tijd TimeSpentForInvoice=Bestede tijd OneLinePerUser=Eén regel per gebruiker -ServiceToUseOnLines=Service voor gebruik op lijnen +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Factuur %s is gegenereerd op basis van de tijd besteed aan het project InterventionGeneratedFromTimeSpent=Interventie %s is gegenereerd op basis van tijd besteed aan project ProjectBillTimeDescription=Controleer of u urenstaat invoert voor taken van het project EN u van plan bent om facturen uit de urenstaat te genereren om de klant van het project te factureren (controleer niet of u een factuur wilt creëren die niet is gebaseerd op ingevoerde urenstaten). Opmerking: Om de factuur te genereren, gaat u naar het tabblad 'Bestede tijd' van het project en selecteert u de regels die u wilt opnemen. @@ -276,21 +280,22 @@ NewInter=Nieuwe interventie OneLinePerTask=Eén regel per taak OneLinePerPeriod=Eén regel per periode OneLinePerTimeSpentLine=Eén regel voor elke tijdsbestedingsdeclaratie -AddDetailDateAndDuration=With date and duration into line description +AddDetailDateAndDuration=Met datum en duur in regelbeschrijving RefTaskParent=Ref. Bovenliggende taak ProfitIsCalculatedWith=Winst wordt berekend met AddPersonToTask=Voeg ook toe aan taken UsageOrganizeEvent=Gebruik: Evenementenorganisatie PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classificeer project als gesloten wanneer alle taken zijn voltooid (100%% voortgang) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Opmerking: de voortgang van bestaande projecten met alle taken op 100%% wordt niet beïnvloed: u zult ze handmatig moeten sluiten. Deze optie is alleen van invloed op open projecten. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Selecteer tijdsregels die niet zijn gefactureerd en vervolgens de bulkactie "Factuur genereren" om ze te factureren -ProjectTasksWithoutTimeSpent=Project tasks without time spent -FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. -ProjectsHavingThisContact=Projects having this contact +ProjectTasksWithoutTimeSpent=Projecttaken zonder tijdsbesteding +FormForNewLeadDesc=Bedankt om het volgende formulier in te vullen om contact met ons op te nemen. U kunt ons ook rechtstreeks een e-mail sturen naar %s . +ProjectsHavingThisContact=Projecten met dit contact StartDateCannotBeAfterEndDate=Einddatum kan niet vóór startdatum liggen -ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +ErrorPROJECTLEADERRoleMissingRestoreIt=De rol "PROJECTLEADER" ontbreekt of is gedeactiveerd, herstel deze in het woordenboek van contacttypes +LeadPublicFormDesc=U kunt hier een openbare pagina inschakelen zodat uw prospects een eerste contact met u kunnen opnemen vanuit een openbaar online formulier +EnablePublicLeadForm=Schakel het openbare formulier in voor contact +NewLeadbyWeb=Uw bericht of verzoek is opgenomen. Wij zullen spoedig antwoorden of contact met u opnemen. +NewLeadForm=Nieuw contactformulier +LeadFromPublicForm=Online lead uit openbare vorm +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/nl_NL/propal.lang b/htdocs/langs/nl_NL/propal.lang index 64e4ebf05f7..d65fbb4055c 100644 --- a/htdocs/langs/nl_NL/propal.lang +++ b/htdocs/langs/nl_NL/propal.lang @@ -54,7 +54,7 @@ NoDraftProposals=Geen ontwerpoffertes CopyPropalFrom=Maak offerte door het kopiëren van een bestaande offerte CreateEmptyPropal=Maak een leeg commercieel voorstel of uit een lijst met producten / services DefaultProposalDurationValidity=Standaardgeldigheid offerte (in dagen) -DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal +DefaultPuttingPricesUpToDate=Update prijzen standaard met de huidige bekende prijzen bij het klonen van een voorstel UseCustomerContactAsPropalRecipientIfExist=Gebruik contact / adres met het type 'Contact follow-up voorstel' indien gedefinieerd in plaats van het adres van een derde als adres ontvanger van het voorstel ConfirmClonePropal=Weet u zeker dat u offerte %s wilt kopiëren? ConfirmReOpenProp=Weet u zeker dat u offerte %s opnieuw wilt openen? @@ -65,49 +65,54 @@ AvailabilityPeriod=Leveringstermijn SetAvailability=Bepaal leveringstermijn AfterOrder=na bestelling OtherProposals=Andere offertes + ##### Availability ##### AvailabilityTypeAV_NOW=Onmiddellijk AvailabilityTypeAV_1W=1 week AvailabilityTypeAV_2W=2 weken AvailabilityTypeAV_3W=3 weken AvailabilityTypeAV_1M=1 maand -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Vertegenwoordiger die de follow-up van de offerte doet TypeContact_propal_external_BILLING=Afnemersfactuurcontactpersoon TypeContact_propal_external_CUSTOMER=Afnemerscontactpersoon follow-up voorstel TypeContact_propal_external_SHIPPING=Klant contact voor levering + # Document models -DocModelAzurDescription=Een compleet offertemodel (oude implementatie van Cyaan sjabloon) -DocModelCyanDescription=Een compleet offertemodel +CantBeNoSign=kan niet worden ingesteld niet ondertekend +CaseFollowedBy=Geval gevolgd door +ConfirmMassNoSignature=Bulk Niet ondertekende bevestiging +ConfirmMassNoSignatureQuestion=Weet u zeker dat u de geselecteerde records niet ondertekend wilt instellen? +ConfirmMassSignature=Bulk handtekening bevestiging +ConfirmMassSignatureQuestion=Weet u zeker dat u de geselecteerde records wilt ondertekenen? +ConfirmMassValidation=Bevestiging in bulk valideren +ConfirmMassValidationQuestion=Weet u zeker dat u de geselecteerde records wilt valideren? +ConfirmRefusePropal=Weet u zeker dat u dit commerciële voorstel wilt weigeren? +ContractSigned=Contract getekend +DefaultModelPropalClosed=Standaard sjabloon bij het sluiten van een zakelijk voorstel (nog te factureren) DefaultModelPropalCreate=Standaard model aanmaken DefaultModelPropalToBill=Standaard sjabloon bij het sluiten van een zakelijk voorstel (te factureren) -DefaultModelPropalClosed=Standaard sjabloon bij het sluiten van een zakelijk voorstel (nog te factureren) +DocModelAzurDescription=Een compleet offertemodel (oude implementatie van Cyaan sjabloon) +DocModelCyanDescription=Een compleet offertemodel +FichinterSigned=Intervention signed +IdProduct=Product-ID +IdProposal=Offerte-ID +IsNotADraft=is geen concept +LineBuyPriceHT=Koopprijs bedrag exclusief BTW voor regel +NoSign=Weigeren +NoSigned=set niet ondertekend +PassedInOpenStatus=is gevalideerd +PropalAlreadyRefused=Voorstel al afgewezen +PropalAlreadySigned=Voorstel al geaccepteerd +PropalRefused=Voorstel geweigerd +PropalSigned=Voorstel geaccepteerd ProposalCustomerSignature=Schriftelijke aanvaarding , stempel , datum en handtekening ProposalsStatisticsSuppliers=Leveranciersoffertes statistieken -CaseFollowedBy=Geval gevolgd door +RefusePropal=voorstel weigeren +Sign=Teken +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Aanvaard voorstel +Signed=ondertekend SignedOnly=Alleen gesigneerd -NoSign=Set not signed -NoSigned=set not signed -CantBeNoSign=cannot be set not signed -ConfirmMassNoSignature=Bulk Not signed confirmation -ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? -IsNotADraft=is not a draft -PassedInOpenStatus=has been validated -Sign=Sign -Signed=signed -ConfirmMassValidation=Bulk Validate confirmation -ConfirmMassSignature=Bulk Signature confirmation -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? -ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=Offerte-ID -IdProduct=Product-ID -LineBuyPriceHT=Koopprijs bedrag exclusief BTW voor regel -SignPropal=Accept proposal -RefusePropal=Refuse proposal -Sign=Sign -NoSign=Set not signed -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? diff --git a/htdocs/langs/nl_NL/receiptprinter.lang b/htdocs/langs/nl_NL/receiptprinter.lang index f0598541b6b..3bae0437941 100644 --- a/htdocs/langs/nl_NL/receiptprinter.lang +++ b/htdocs/langs/nl_NL/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Testafdruk %s ReceiptPrinter=Bonprinters ReceiptPrinterDesc=Instellen bonprinter ReceiptPrinterTemplateDesc=Instellen templates -ReceiptPrinterTypeDesc=Bonprinter type omschrijving +ReceiptPrinterTypeDesc=Voorbeeld van mogelijke waarden voor het veld "Parameters" volgens het type stuurprogramma ReceiptPrinterProfileDesc=Bonprinter profiel omschrijving ListPrinters=Printerlijst SetupReceiptTemplate=Template instellingen @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Standaard hoogte en breedte DOL_UNDERLINE=Activeer onderstrepen DOL_UNDERLINE_DISABLED=Deactiveer onderstrepen DOL_BEEP=Geluid +DOL_BEEP_ALTERNATIVE=Pieptoon (alternatieve modus) +DOL_PRINT_CURR_DATE=Huidige datum/tijd afdrukken DOL_PRINT_TEXT=Afdrukken tekst DateInvoiceWithTime=Factuur datum en tijd YearInvoice=Factuur jaar diff --git a/htdocs/langs/nl_NL/receptions.lang b/htdocs/langs/nl_NL/receptions.lang index 6c056b1c6e3..0f7eca97d0b 100644 --- a/htdocs/langs/nl_NL/receptions.lang +++ b/htdocs/langs/nl_NL/receptions.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=Vendor reception management (Create reception documents) -ReceptionsSetup=Vendor Reception setup +ReceptionDescription=Beheer van leveranciersontvangst (ontvangstdocumenten maken) +ReceptionsSetup=Leveranciersontvangst instellen RefReception=Ontvangst ref. Reception=Ontvangst Receptions=Ontvangsten @@ -24,14 +24,15 @@ ReceptionsAndReceivingForSameOrder=Ontvangsten en ontvangsten voor deze bestelli ReceptionsToValidate=Ontvangsten om te valideren StatusReceptionCanceled=Geannuleerd StatusReceptionDraft=Ontwerp -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionValidated=Gevalideerd (te ontvangen of reeds ontvangen producten) +StatusReceptionValidatedToReceive=Gevalideerd (te ontvangen producten) +StatusReceptionValidatedReceived=Gevalideerd (ontvangen producten) StatusReceptionProcessed=Verwerkt StatusReceptionDraftShort=Ontwerp StatusReceptionValidatedShort=Gevalideerd StatusReceptionProcessedShort=Verwerkt ReceptionSheet=Afleverbon +ValidateReception=Validate reception ConfirmDeleteReception=Weet u zeker dat u deze ontvangst wilt verwijderen? ConfirmValidateReception=Weet u zeker dat u deze ontvangst wilt valideren met referentie %s ? ConfirmCancelReception=Weet u zeker dat u deze ontvangst wilt annuleren? @@ -39,7 +40,7 @@ StatsOnReceptionsOnlyValidated=Statistieken uitgevoerd op alleen gevalideerde on SendReceptionByEMail=Ontvangst per e-mail verzenden SendReceptionRef=Indiening van ontvangst %s ActionsOnReception=Gebeurtenissen bij ontvangst -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. +ReceptionCreationIsDoneFromOrder=Op dit moment wordt het aanmaken van een nieuwe receptie gedaan vanuit de Inkooporder. ReceptionLine=Ontvangst lijn ProductQtyInReceptionAlreadySent=Producthoeveelheid uit open verkooporder al verzonden ProductQtyInSuppliersReceptionAlreadyRecevied=Hoeveelheid producten van openstaande leverancier bestelling reeds ontvangen @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Nummeringsmodule voor ontvangsten ReceptionsReceiptModel=Documentsjablonen voor ontvangsten NoMorePredefinedProductToDispatch=Geen voorgedefinieerde producten meer om te verzenden ReceptionExist=Ontvangst bestaat reeds -ByingPrice=Bying price -ReceptionBackToDraftInDolibarr=Reception %s back to draft -ReceptionClassifyClosedInDolibarr=Reception %s classified Closed -ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open +ReceptionBackToDraftInDolibarr=Receptie %s terug naar concept +ReceptionClassifyClosedInDolibarr=Receptie %s geclassificeerd Gesloten +ReceptionUnClassifyCloseddInDolibarr=Receptie %s heropend diff --git a/htdocs/langs/nl_NL/recruitment.lang b/htdocs/langs/nl_NL/recruitment.lang index 297d3335457..1679c0418bf 100644 --- a/htdocs/langs/nl_NL/recruitment.lang +++ b/htdocs/langs/nl_NL/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-mail de recruiter ToUseAGenericEmail=Om een generiek e-mailadres te gebruiken. Indien niet gedefinieerd, wordt het e-mailadres van de rekruteringsverantwoordelijke gebruikt NewCandidature=Nieuwe applicatie ListOfCandidatures=Lijst met applicaties -RequestedRemuneration=Gevraagde vergoeding -ProposedRemuneration=Voorgestelde vergoeding +Remuneration=Salaris +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contractvoorstel gedaan ContractSigned=Contract getekend ContractRefused=Contract geweigerd RecruitmentCandidature=Toepassing JobPositions=Vacature RecruitmentCandidatures=Toepassingen -InterviewToDo=Te maken interview +InterviewToDo=Contacts to follow AnswerCandidature=Toepassing antwoord YourCandidature=Jouw toepassing YourCandidatureAnswerMessage=Bedankt voor je aanmelding.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=De vacature is gesloten. ExtrafieldsJobPosition=Complementaire attributen (functieposities) ExtrafieldsApplication=Aanvullende attributen (sollicitaties) MakeOffer=Doe een aanbod +WeAreRecruiting=We zijn aan het rekruteren. Dit is een lijst met openstaande vacatures die ingevuld moeten worden... +NoPositionOpen=Op dit moment geen vacatures diff --git a/htdocs/langs/nl_NL/salaries.lang b/htdocs/langs/nl_NL/salaries.lang index 312d2a81052..90a07469d17 100644 --- a/htdocs/langs/nl_NL/salaries.lang +++ b/htdocs/langs/nl_NL/salaries.lang @@ -1,12 +1,12 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Grootboekrekening voor medewerker derde partij -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=De boekhoudrekening die in het gebruikersbestand is gedefinieerd, wordt alleen gebruikt voor aanvullende boekhouding. Deze wordt gebruikt voor het grootboek en als standaardwaarde voor aanvullende boekhouding als de speciale rekening van de gebruiker niet is gedefinieerd. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standaard grootboekrekening voor salaris betalingen CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Laat standaard de optie "Automatisch een totale betaling aanmaken" leeg bij het aanmaken van een Salaris Salary=Salaris Salaries=Salarissen NewSalary=Nieuw salaris -AddSalary=Add salary +AddSalary=Salaris toevoegen NewSalaryPayment=Nieuwe salariskaart AddSalaryPayment=Salarisbetaling toevoegen SalaryPayment=Salarisbetaling @@ -23,4 +23,5 @@ AllSalaries=Alle salarissen SalariesStatistics=Salaris statistieken SalariesAndPayments=Salarissen en betalingen ConfirmDeleteSalaryPayment=Wilt u deze salarisbetaling verwijderen? -FillFieldFirst=Fill employee field first +FillFieldFirst=Vul eerst het werknemersveld in +UpdateAmountWithLastSalary=Vast bedrag met laatste salaris diff --git a/htdocs/langs/nl_NL/stocks.lang b/htdocs/langs/nl_NL/stocks.lang index aa26e6ddf0d..51d84cdaf06 100644 --- a/htdocs/langs/nl_NL/stocks.lang +++ b/htdocs/langs/nl_NL/stocks.lang @@ -12,9 +12,9 @@ AddWarehouse=Aanmaken magazijn AddOne=Voeg toe DefaultWarehouse=Standaardmagazijn WarehouseTarget=Doelmagazijn -ValidateSending=Confirm shipment -CancelSending=Cancel shipment -DeleteSending=Delete shipment +ValidateSending=Bevestig verzending +CancelSending=Annuleer verzending +DeleteSending=Verwijder verzending Stock=Voorraad Stocks=Voorraden MissingStocks=Ontbrekende voorraad @@ -62,8 +62,8 @@ AllowAddLimitStockByWarehouse=Beheer ook de waarde voor minimale en gewenste voo RuleForWarehouse=Voorwaarden magazijnen WarehouseAskWarehouseOnThirparty=Stel een magazijn in op Derden WarehouseAskWarehouseDuringPropal=Stel een magazijn in op offertes -WarehouseAskWarehouseDuringOrder=Set a warehouse on Sales Orders -WarehouseAskWarehouseDuringProject=Set a warehouse on Projects +WarehouseAskWarehouseDuringOrder=Stel een magazijn in op verkoop orders +WarehouseAskWarehouseDuringProject=Stel een magazijn in op projecten UserDefaultWarehouse=Stel een magazijn in op gebruikers MainDefaultWarehouse=Standaardmagazijn MainDefaultWarehouseUser=Gebruik standaard magazijn voor elke gebruiker @@ -96,7 +96,7 @@ RealStock=Werkelijke voorraad RealStockDesc=Fysieke/echte voorraad is de voorraad die momenteel in de magazijnen aanwezig is. RealStockWillAutomaticallyWhen=De werkelijke voorraad wordt aangepast volgens deze regel (zoals gedefinieerd in de module Voorraad): VirtualStock=Virtuele voorraad -VirtualStockAtDate=Virtual stock at a future date +VirtualStockAtDate=Virtuele voorraad op een toekomstige datum VirtualStockAtDateDesc=Virtuele voorraad zodra alle lopende bestellingen die gepland zijn om vóór de gekozen datum te worden verwerkt, zijn voltooid VirtualStockDesc=Virtuele voorraad is de berekende voorraad die beschikbaar is zodra alle openstaande / lopende acties (die van invloed zijn op voorraden) zijn gesloten (inkooporders ontvangen, verkooporders verzonden, productieorders geproduceerd, enz.) AtDate=op datum @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Voorraad alarm en gewenste optimale voorraad correc ProductStockWarehouseUpdated=Voorraad alarm en gewenste optimale voorraad correct bijgewerkt ProductStockWarehouseDeleted=Voorraad alarm en gewenste optimale voorraad correct verwijderd AddNewProductStockWarehouse=Stel nieuwe limiet in voor waarschuwing en gewenste optimale voorraad -AddStockLocationLine=Verlaag de hoeveelheid en klik vervolgens op een ​​ander magazijn om dit product toe te voegen +AddStockLocationLine=Verlaag het aantal en klik om de regel te splitsen InventoryDate=Datum inventarisatie Inventories=Inventariseringen NewInventory=Nieuwe inventarisatie @@ -195,7 +195,7 @@ inventoryEdit=Bewerken inventoryValidate=Gevalideerd inventoryDraft=Lopende inventorySelectWarehouse=Magazijn -inventoryConfirmCreate=Create +inventoryConfirmCreate=Maak aan inventoryOfWarehouse=Voorraad voor magazijn: %s inventoryErrorQtyAdd=Fout: één hoeveelheid is kleiner dan nul inventoryMvtStock=Inventarisatie @@ -207,10 +207,10 @@ INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Voorraadbewegingen hebben de datum inventoryChangePMPPermission=Sta toe om de PMP-waarde voor een product te wijzigen ColumnNewPMP=Nieuwe eenheid PMP OnlyProdsInStock=Voeg geen product toe zonder voorraad -TheoricalQty=Theorical qty -TheoricalValue=Theorical qty +TheoricalQty=theoretische aantal +TheoricalValue=theoretische aantal LastPA=Laatste BP -CurrentPA=Curent BP +CurrentPA=Huidige BP RecordedQty=Aantal opgenomen RealQty=Echte aantal RealValue=Werkelijke waarde @@ -221,7 +221,7 @@ ApplyPMP=Pas PMP toe FlushInventory=Voorraad op 'nul' zetten ConfirmFlushInventory=Bevestigen? InventoryFlushed=Inventarisatie opgeschoond -ExitEditMode=Exit editie +ExitEditMode=Editie afsluiten inventoryDeleteLine=Verwijderen regel RegulateStock=Voorraad reguleren ListInventory=Lijstoverzicht @@ -241,7 +241,7 @@ StockAtDatePastDesc=U kunt hier de echte voorraad op een bepaalde datum in het v StockAtDateFutureDesc=U kunt hier de voorraad (virtuele voorraad) op een bepaalde datum in de toekomst bekijken CurrentStock=Huidige voorraad InventoryRealQtyHelp=Stel de waarde in op 0 om het aantal te resetten
    Veld leeg laten of regel verwijderen om ongewijzigd te houden -UpdateByScaning=Complete real qty by scaning +UpdateByScaning=Voltooi het werkelijke aantal door te scannen UpdateByScaningProductBarcode=Update door scan (product barcode) UpdateByScaningLot=Update door scan (partij/serie barcode) DisableStockChangeOfSubProduct=De-activeer tijdens deze bewerking de voorraad voor alle subproducten van deze kit. @@ -254,20 +254,64 @@ ReOpen=Heropenen ConfirmFinish=Bevestigt u de sluiting van de inventarisatie? Hiermee worden alle voorraadbewegingen gegenereerd om uw voorraad bij te werken naar de werkelijke hoeveelheid die u in de inventarisatie hebt ingevoerd. ObjectNotFound=%s niet gevonden MakeMovementsAndClose=Bewegingen genereren en sluiten -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Vul de werkelijke hoeveelheid in met de verwachte hoeveelheid ShowAllBatchByDefault=Toon standaard batchgegevens op het tabblad "voorraad" van het product CollapseBatchDetailHelp=U kunt de standaardweergave van batchdetails instellen in de configuratie van de voorraadmodule -ErrorWrongBarcodemode=Unknown Barcode mode -ProductDoesNotExist=Product does not exist -ErrorSameBatchNumber=Several record for the batch number were found in the inventory sheet. No way to know which one to increase. -ProductBatchDoesNotExist=Product with batch/serial does not exist -ProductBarcodeDoesNotExist=Product with barcode does not exist -WarehouseId=Warehouse ID -WarehouseRef=Warehouse Ref -SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ErrorWrongBarcodemode=Onbekende streepjescode modus +ProductDoesNotExist=Product bestaat niet +ErrorSameBatchNumber=Op het inventarisblad werden verschillende records voor het batchnummer gevonden. Geen mogelijke manier om te bepalen welke te verhogen. +ProductBatchDoesNotExist=Product met batch/serienummer bestaat niet +ProductBarcodeDoesNotExist=Product met streepjescode bestaat niet +WarehouseId=Magazijn ID +WarehouseRef=Magazijnreferentie +SaveQtyFirst=Sla eerst de werkelijk geïnventariseerde hoeveelheden op, voordat u vraagt om de voorraadverplaatsing aan te maken. +ToStart=Start InventoryStartedShort=Gestart -ErrorOnElementsInventory=Operation canceled for the following reason: -ErrorCantFindCodeInInventory=Can't find the following code in inventory -QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. -StockChangeDisabled=Change on stock disabled -NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ErrorOnElementsInventory=Bewerking geannuleerd om de volgende reden: +ErrorCantFindCodeInInventory=Kan de volgende code niet vinden in de inventaris +QtyWasAddedToTheScannedBarcode=Succes! De hoeveelheid is toegevoegd aan alle gevraagde streepjescodes. U kunt de scannertool sluiten. +StockChangeDisabled=Wijziging op voorraad is uitgeschakeld +NoWarehouseDefinedForTerminal=Geen magazijn gedefinieerd voor terminal +ClearQtys=Wis alle hoeveelheden +ModuleStockTransferName=Geavanceerde voorraadoverdracht +ModuleStockTransferDesc=Geavanceerd beheer van Stock Transfer, met generatie van transferblad +StockTransferNew=Nieuwe voorraad overdracht +StockTransferList=Lijst met voorraadoverdrachten +ConfirmValidateStockTransfer=Weet u zeker dat u deze aandelenoverdracht wilt valideren met referentie %s ? +ConfirmDestock=Afname van voorraden met overdracht %s +ConfirmDestockCancel=Afname van voorraden annuleren met overboeking %s +DestockAllProduct=Afname van voorraden +DestockAllProductCancel=Annuleer voorraadafname +ConfirmAddStock=Voorraden vergroten met overdracht %s +ConfirmAddStockCancel=Toename van voorraden annuleren met overboeking %s +AddStockAllProduct=Toename van voorraden +AddStockAllProductCancel=Annuleer verhoging van de voorraden +DatePrevueDepart=Beoogde vertrekdatum +DateReelleDepart=Echte vertrekdatum +DatePrevueArrivee=Geplande aankomstdatum +DateReelleArrivee=Echte aankomstdatum +HelpWarehouseStockTransferSource=Als dit magazijn is ingesteld, zijn alleen hijzelf en de onderliggende items beschikbaar als bronmagazijn +HelpWarehouseStockTransferDestination=Als dit magazijn is ingesteld, zijn alleen hijzelf en zijn kinderen beschikbaar als bestemmingsmagazijn +LeadTimeForWarning=Doorlooptijd vóór alarm (in dagen) +TypeContact_stocktransfer_internal_STFROM=Afzender van aandelenoverdracht +TypeContact_stocktransfer_internal_STDEST=Ontvanger van aandelenoverdracht +TypeContact_stocktransfer_internal_STRESP=Verantwoordelijk voor voorraadoverdracht +StockTransferSheet=Overboekingsblad voorraden +StockTransferSheetProforma=Proforma aandelenoverdrachtsblad +StockTransferDecrementation=Bronmagazijnen verkleinen +StockTransferIncrementation=Bestemmingsmagazijnen vergroten +StockTransferDecrementationCancel=Afbouw van bronmagazijnen annuleren +StockTransferIncrementationCancel=Verhoging van bestemmingsmagazijnen annuleren +StockStransferDecremented=Bronmagazijnen afgenomen +StockStransferDecrementedCancel=Afname van bronmagazijnen geannuleerd +StockStransferIncremented=Gesloten - Voorraden overgedragen +StockStransferIncrementedShort=Overgedragen aandelen +StockStransferIncrementedShortCancel=Toename bestemmingsmagazijnen geannuleerd +StockTransferNoBatchForProduct=Product %s gebruikt geen batch, wis batch online en probeer het opnieuw +StockTransferSetup = Configuratie van de Aandelenoverdrachtmodule +Settings=Instellingen +StockTransferSetupPage = Configuratiepagina voor aandelenoverdrachtmodule +StockTransferRightRead=Aandelenoverdrachten lezen +StockTransferRightCreateUpdate=Aanmaken/bijwerken van aandelenoverdrachten +StockTransferRightDelete=Aandelenoverdrachten verwijderen +BatchNotFound=Lot / serienummer niet gevonden voor dit product diff --git a/htdocs/langs/nl_NL/ticket.lang b/htdocs/langs/nl_NL/ticket.lang index c0a06054ace..644874336a5 100644 --- a/htdocs/langs/nl_NL/ticket.lang +++ b/htdocs/langs/nl_NL/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Verwijder tickets Permission56004=Beheer tickets Permission56005=Bekijk tickets van alle derde partijen (niet van toepassing voor externe gebruikers, altijd beperkt tot de derde partij waarvan ze afhankelijk zijn) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groepen TicketDictSeverity=Ticket - Prioriteit @@ -90,15 +91,17 @@ TicketPublicAccess=Een openbare interface waarbij geen identificatie vereist is, TicketSetupDictionaries=Het type ticket, ernst en analysecodes zijn configureerbaar vanuit woordenboeken TicketParamModule=Module variabele instelling TicketParamMail=E-mail set-up -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=Afzender e-mail voor notificatie bij antwoorden +TicketEmailNotificationFromHelp=Afzender e-mail om te gebruiken om de notificatie e-mail te verzenden wanneer een antwoord wordt gegeven in de backoffice. Bijvoorbeeld noreply@example.com +TicketEmailNotificationTo=Meld het aanmaken van tickets aan dit e-mailadres +TicketEmailNotificationToHelp=Indien aanwezig, wordt dit e-mailadres geïnformeerd bij het aanmaken van een ticket TicketNewEmailBodyLabel=SMS verzonden na het maken van een ticket TicketNewEmailBodyHelp=De tekst die hier wordt opgegeven, wordt in de e-mail ingevoegd die bevestigt dat er een nieuwe ticket is aangemaakt in de openbare interface. Informatie over de raadpleging van de ticket wordt automatisch toegevoegd. TicketParamPublicInterface=Instellingen openbare interface TicketsEmailMustExist=Vereist een bestaand e-mailadres om een ​​ticket aan te maken TicketsEmailMustExistHelp=In de openbare interface moet het e-mailadres al in de database zijn ingevuld om een ​​nieuwe ticket aan te kunnen maken. +TicketCreateThirdPartyWithContactIfNotExist=Vraag naam en bedrijfsnaam voor onbekende e-mails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Controleer of er een derde partij of een contactpersoon bestaat voor het ingevoerde e-mailadres. Zo niet, vraag dan een naam en een bedrijfsnaam om een derde partij met contact aan te maken. PublicInterface=Publieke interface TicketUrlPublicInterfaceLabelAdmin=Alternatieve URL voor openbare interface TicketUrlPublicInterfaceHelpAdmin=Het is mogelijk om een alias voor de webserver te definiëren en zo de openbare interface met een andere URL beschikbaar te stellen (de server moet als proxy op deze nieuwe URL fungeren) @@ -136,17 +139,19 @@ TicketsPublicNotificationNewMessage=Stuur e-mail(s) wanneer een nieuw bericht/op TicketsPublicNotificationNewMessageHelp=Stuur e-mail (s) wanneer een nieuw bericht is toegevoegd vanuit de openbare interface (naar de toegewezen gebruiker of de e-mail met meldingen naar (update) en / of de e-mail met meldingen naar) TicketPublicNotificationNewMessageDefaultEmail=E-mailmeldingen voor (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Stuur een e-mail naar dit adres voor elke nieuw berichtmelding als er geen gebruiker aan het ticket is toegewezen of als de gebruiker geen bekend e-mailadres heeft. -TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) -TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". -TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): -TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. -TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): -TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. -TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket -TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. -TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. -TicketChooseProductCategory=Product category for ticket support -TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketsAutoReadTicket=Markeer het ticket automatisch als gelezen (indien aangemaakt vanuit de backoffice) +TicketsAutoReadTicketHelp=Markeer het ticket automatisch als gelezen wanneer het vanuit de backoffice wordt aangemaakt. Wanneer een ticket wordt aangemaakt vanuit de openbare interface, behoudt de ticket de status "Niet gelezen". +TicketsDelayBeforeFirstAnswer=Een nieuwe ticket moet een eerste antwoord ontvangen vóór (uren): +TicketsDelayBeforeFirstAnswerHelp=Als een nieuwe ticket na deze periode (in uren) geen antwoord heeft gekregen, dan wordt er een waarschuwingspictogram weergegeven in de lijstweergave. +TicketsDelayBetweenAnswers=Een onopgelost ticket mag niet inactief zijn gedurende (uren): +TicketsDelayBetweenAnswersHelp=Als een onopgelost ticket waarop al een antwoord is ontvangen na deze tijdsperiode (in uren) geen verdere interactie heeft gehad, wordt een waarschuwingspictogram weergegeven in de lijstweergave. +TicketsAutoNotifyClose=Automatisch derden op de hoogte stellen bij het sluiten van een ticket +TicketsAutoNotifyCloseHelp=Bij het sluiten van een ticket wordt u voorgesteld een bericht te sturen naar een van de contacten van derden. Bij massale sluiting wordt er een bericht gestuurd naar één contactpersoon van de derde partij die aan het ticket is gekoppeld. +TicketWrongContact=Aangegeven contact maakt geen deel uit van de huidige ticketcontacten. E-mail niet verzonden. +TicketChooseProductCategory=Productcategorie voor ticketondersteuning +TicketChooseProductCategoryHelp=Selecteer de productcategorie van ticketondersteuning. Hiermee wordt automatisch een contract aan een ticket gekoppeld. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -163,8 +168,8 @@ OrderByDateAsc=Sorteer op oplopende datum OrderByDateDesc=Sorteer op aflopende datum ShowAsConversation=Weergeven als conversatielijst MessageListViewType=Weergeven als tabellijst -ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets -ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? +ConfirmMassTicketClosingSendEmail=Automatisch e-mails verzenden bij het sluiten van tickets +ConfirmMassTicketClosingSendEmailQuestion=Wilt u derden verwittigen bij het afsluiten van deze tickets? # # Ticket card @@ -190,8 +195,7 @@ TicketAssigned=Ticket is nu toegewezen TicketChangeType=Verander type TicketChangeCategory=Wijzig analytische code TicketChangeSeverity=Wijzig de ernst -TicketAddMessage=Bericht toevoegen -AddMessage=Bericht toevoegen +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket toegevoegd TicketMessageSuccessfullyAdded=Bericht succesvol toegevoegd TicketMessagesList=Berichtenlijst @@ -202,8 +206,8 @@ TicketSeverity=Prioriteit ShowTicket=Bekijk ticket RelatedTickets=Gerelateerde tickets TicketAddIntervention=Nieuwe interventie -CloseTicket=Sluit ticket (opgelost) -AbandonTicket=Ticket verlaten +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Sluit ticket (opgelost) ConfirmCloseAticket=Bevestig afsluiten ticket ConfirmAbandonTicket=Bevestigt u het sluiten van het ticket naar de status 'Verlaten' @@ -217,18 +221,17 @@ SendMessageByEmail=Verzend bericht via e-mail TicketNewMessage=Nieuw bericht ErrorMailRecipientIsEmptyForSendTicketMessage=Geadresseerde is leeg. Geen e-mail verzonden TicketGoIntoContactTab=Ga naar het tabblad "Contacten" om ze te selecteren -TicketMessageMailIntro=Introductie +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Deze tekst wordt alleen aan het begin van de e-mail toegevoegd en zal niet worden opgeslagen. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Handtekening -TicketMessageMailSignatureHelp=Deze tekst wordt alleen aan het einde van de e-mail toegevoegd en wordt niet opgeslagen. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Handtekening van reactie e-mail -TicketMessageMailSignatureHelpAdmin=Deze tekst wordt ingevoegd na het antwoordbericht. +TicketMessageMailIntroText=Hallo,
    Er is een nieuw antwoord toegevoegd aan een ticket dat je volgt. Hier is het bericht:
    +TicketMessageMailIntroHelpAdmin=Deze tekst wordt voor het antwoord ingevoegd bij het beantwoorden van een ticket vanuit Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Bericht verzonden door %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Deze tekst wordt ingevoegd na het antwoordbericht. TicketMessageHelp=Alleen deze tekst zal worden bewaard in de berichtenlijst op de ticketkaart. TicketMessageSubstitutionReplacedByGenericValues=Vervangingsvariabelen worden vervangen door generieke waarden. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Verstreken tijd sinds TicketTimeToRead=Tijd verstreken voordat gelezen TicketTimeElapsedBeforeSince=Verstreken tijd voor / sinds @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Er is een nieuw bericht op het ticket TicketAssignedToYou=Ticket toegekend TicketAssignedEmailBody=Je hebt het ticket # %s van %s toegewezen gekregen MarkMessageAsPrivate=Markeer bericht als privé +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Dit bericht wordt niet weergegeven voor externe gebruikers TicketEmailOriginIssuer=Uitgevende instelling bij oorsprong van de tickets InitialMessage=Oorspronkelijk bericht @@ -252,16 +256,16 @@ TicketChangeStatus=Verander status TicketConfirmChangeStatus=Bevestig de statusverandering: %s? TicketLogStatusChanged=Status gewijzigd: %s in %s TicketNotNotifyTiersAtCreate=Geen bedrijf melden bij aanmaken -NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket -TicketNotifyAllTiersAtClose=All related contacts -TicketNotNotifyTiersAtClose=No related contact +NotifyThirdpartyOnTicketClosing=Contacten om te informeren tijdens het sluiten van de ticket +TicketNotifyAllTiersAtClose=Alle gerelateerde contacten +TicketNotNotifyTiersAtClose=Geen gerelateerd contact Unread=Niet gelezen TicketNotCreatedFromPublicInterface=Niet beschikbaar. Ticket is niet gemaakt vanuit de openbare interface. ErrorTicketRefRequired=Naam van ticket is vereist -TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. -TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. -TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. +TicketsDelayForFirstResponseTooLong=Er is te veel tijd verstreken sinds het openen van de ticket zonder enig antwoord. +TicketsDelayFromLastResponseTooLong=Er is te veel tijd verstreken sinds het laatste antwoord op deze ticket. +TicketNoContractFoundToLink=Er is geen contract gevonden dat automatisch aan deze ticket gekoppeld kan worden. Koppel a.u.b. handmatig een contract. +TicketManyContractsLinked=Veel contracten zijn automatisch aan dit ticket gekoppeld. Zorg ervoor dat u controleert welke moet worden gekozen. # # Logs @@ -281,7 +285,7 @@ ShowListTicketWithTrackId=Geef ticketlijst weer van track ID ShowTicketWithTrackId=Ticket weergeven van track-ID TicketPublicDesc=Nieuwe ticket aanmaken of controleren bestaande ticket ID. YourTicketSuccessfullySaved=Ticket is succesvol opgeslagen. -MesgInfosPublicTicketCreatedWithTrackId=Een nieuwe ticket is aangemaakt met ID 1%s en referentie 1%s +MesgInfosPublicTicketCreatedWithTrackId=Een nieuwe ticket is aangemaakt met ID %s en referentie %s PleaseRememberThisId=Bewaar het tracking nummer voor het geval we u hier later om vragen. TicketNewEmailSubject=Bevestiging ticketaanmaak - Ref %s (openbare ticket-ID %s) TicketNewEmailSubjectCustomer=Nieuwe support ticket @@ -289,12 +293,12 @@ TicketNewEmailBody=Dit is een automatische e-mail om te bevestigen dat je een ni TicketNewEmailBodyCustomer=Dit is een automatische e-mail om te bevestigen dat er zojuist een nieuw ticket is aangemaakt in uw account. TicketNewEmailBodyInfosTicket=Informatie voor het bewaken van het ticket TicketNewEmailBodyInfosTrackId=Ticket volgnummer: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=U kunt de voortgang van het ticket bekijken door op de volgende link te klikken TicketNewEmailBodyInfosTrackUrlCustomer=U kunt de voortgang van het ticket bekijken in de specifieke interface door op de volgende link te klikken -TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=U kunt de geschiedenis van deze ticket raadplegen door op de volgende link te klikken TicketEmailPleaseDoNotReplyToThisEmail=Beantwoord deze e-mail niet rechtstreeks! Gebruik de link om in de gebruikersinterface te antwoorden. TicketPublicInfoCreateTicket=Met dit formulier kunt u een support ticket vastleggen in ons ticket beheersysteem. -TicketPublicPleaseBeAccuratelyDescribe=Beschrijf alstublieft het probleem zo nauwkeurig mogelijk. Geef alle beschikbare informatie om ons in staat te stellen uw verzoek op de juiste manier te kunnen identificeren en te behandelen . +TicketPublicPleaseBeAccuratelyDescribe=Omschrijf uw vraag nauwkeurig. Geef zoveel mogelijk informatie om ons in staat te stellen uw verzoek correct te interpreteren. TicketPublicMsgViewLogIn=Voer a.u.b. de tracking ID van de ticket in TicketTrackId=Openbare tracking ID OneOfTicketTrackId=Een van uw tracking ID @@ -313,10 +317,10 @@ NewUser=Nieuwe gebruiker NumberOfTicketsByMonth=Aantal tickets per maand NbOfTickets=Aantal tickets # notifications -TicketCloseEmailSubjectCustomer=Ticket closed -TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. -TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) -TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: +TicketCloseEmailSubjectCustomer=Ticket gesloten +TicketCloseEmailBodyCustomer=Dit is een automatisch bericht om u te informeren dat ticket %s zojuist is gesloten. +TicketCloseEmailSubjectAdmin=Ticket gesloten - Ref %s (openbaar ticket ID %s) +TicketCloseEmailBodyAdmin=Een ticket met ID #%s is zojuist gesloten, zie informatie: TicketNotificationEmailSubject=Ticket %s bijgewerkt TicketNotificationEmailBody=Dit is een automatisch bericht om u te laten weten dat ticket %s zojuist is bijgewerkt TicketNotificationRecipient=Kennisgeving ontvanger @@ -344,7 +348,7 @@ BoxTicketLastXDays=Aantal nieuwe tickets per dag, de laatste %s dagen BoxTicketLastXDayswidget = Aantal nieuwe tickets per dag van de afgelopen X dagen BoxNoTicketLastXDays=Geen nieuwe tickets de laatste %s dagen BoxNumberOfTicketByDay=Aantal nieuwe tickets per dag -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=Aantal tickets versus gesloten tickets (vandaag) TicketCreatedToday=Ticket vandaag aangemaakt TicketClosedToday=Ticket vandaag gesloten KMFoundForTicketGroup=We hebben onderwerpen en veelgestelde vragen (FAQs) gevonden die uw vraag kunnen beantwoorden. Bedankt voor het eerst raadplegen en/of controleren van deze bronnen voordat u een ticket indient diff --git a/htdocs/langs/nl_NL/users.lang b/htdocs/langs/nl_NL/users.lang index 635899d8b09..d49b9b1dfa4 100644 --- a/htdocs/langs/nl_NL/users.lang +++ b/htdocs/langs/nl_NL/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Verwijderen uit groep PasswordChangedAndSentTo=Wachtwoord veranderd en verstuurd naar %s. PasswordChangeRequest=Wachtwoord aanpassing verzoek voor %s PasswordChangeRequestSent=Verzoek om wachtwoord te wijzigen van %s verstuurt naar %s. -IfLoginExistPasswordRequestSent=Bij een geldig account is er een e-mail gestuurd om het wachtwoord opnieuw in te stellen. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Bij een geldig account is er een e-mail verzonden om het wachtwoord opnieuw in te stellen. ConfirmPasswordReset=Bevestig wachtwoord reset MenuUsersAndGroups=Gebruikers & groepen @@ -68,7 +68,6 @@ CreateDolibarrLogin=Maak Dolibarr account CreateDolibarrThirdParty=Creëer nieuwe klant LoginAccountDisableInDolibarr=Account uitgeschakeld in Dolibarr. UsePersonalValue=Gebruik persoonlijke waarde -InternalUser=Interne gebruiker ExportDataset_user_1=Gebruikers en hun eigenschappen DomainUser=Domeingebruikersaccount %s Reactivate=Reactiveren @@ -124,7 +123,9 @@ ValidatorIsSupervisorByDefault=Standaard is de validator de supervisor van de ge UserPersonalEmail=Persoonlijke e-mail UserPersonalMobile=Persoonlijke mobiele telefoon WarningNotLangOfInterface=Pas op, dit is de hoofdtaal die de gebruiker spreekt, niet de taal van de interface die hij wil zien. Ga naar het tabblad %s om de de taal van de interface, die voor deze gebruiker zichtbaar is, te wijzigen -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +DateLastLogin=Datum laatste login +DatePreviousLogin=Datum vorige login +IPLastLogin=IP laatste login +IPPreviousLogin=IP vorige login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/nl_NL/website.lang b/htdocs/langs/nl_NL/website.lang index 05cae74f98d..54bc6754d86 100644 --- a/htdocs/langs/nl_NL/website.lang +++ b/htdocs/langs/nl_NL/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Code +WebsiteName=Name of the website WebsiteSetupDesc=Maak hier de websites die u wilt gebruiken. Ga vervolgens naar het menu Websites om ze te bewerken. DeleteWebsite=Website verwijderen ConfirmDeleteWebsite=Weet u zeker dat u deze website wilt verwijderen? Alle pagina's en inhoud worden ook verwijderd. De geüploade bestanden (zoals in de mediasmap, de ECM-module, ...) blijven behouden. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Toevoeging onderaan HTML-koptekst (gemeenschappelijk voor al WEBSITE_ROBOT=Robotbestand (robots.txt) WEBSITE_HTACCESS=Website .htaccess bestand WEBSITE_MANIFEST_JSON=Website manifest.json bestand -WEBSITE_README=README.md bestand WEBSITE_KEYWORDSDesc=Gebruik een komma om waarden te scheiden -EnterHereLicenseInformation=Voer hier metadata of licentie-informatie in om een README.md bestand in te dienen. Als u uw website als sjabloon distribueert, wordt het bestand opgenomen in het template-pakket. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML-header (alleen voor deze pagina) PageNameAliasHelp=Naam of alias van de pagina.
    Deze alias wordt ook gebruikt om een SEO-URL te veranderen wanneer de website wordt uitgevoerd vanaf een virtuele host van een webserver (zoals Apacke, Nginx, ...). Gebruik de knop "%s" om deze alias te bewerken. EditTheWebSiteForACommonHeader=Opmerking: als u een gepersonaliseerde koptekst voor alle pagina's wilt definiëren, moet u de koptekst op siteniveau bewerken in plaats van op de pagina/container. @@ -42,10 +43,12 @@ ViewPageInNewTab=Bekijk pagina in nieuw tabblad SetAsHomePage=Als startpagina instellen RealURL=Echte URL ViewWebsiteInProduction=Bekijk website met behulp van eigen URL's +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Gebruik met Apache / NGinx / ...
    Creëer op uw webserver (Apache, Nginx, ...) een speciale virtuele host met PHP ingeschakeld en een root-directory op
    %s ExampleToUseInApacheVirtualHostConfig=Voorbeeld om te gebruiken in Apache virtual host setup: YouCanAlsoTestWithPHPS=Gebruik met PHP embedded server
    In een ontwikkelomgeving kunt u de site het liefst testen met de ingebouwde PHP-webserver (PHP 5.5 vereist)
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Beheer uw website met een andere Dolibarr Hosting-provider
    Als u geen webserver zoals Apache of NGinx beschikbaar heeft op internet, kunt u uw website exporteren en importeren in een ander Dolibarr-exemplaar van een andere Dolibarr-hostingprovider die volledige integratie met de websitemodule biedt. U kunt een lijst met sommige Dolibarr-hostingproviders vinden op https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP= Run uw website met een andere Dolibarr-hostingprovider
    Als u geen webserver zoals Apache of NGinx op internet heeft, kunt u uw website exporteren en importeren naar een andere Dolibarr-instantie van een andere Dolibarr-hostingprovider die volledige integratie met de Website-module. U kunt een lijst met enkele Dolibarr-hostingproviders vinden op https://saas.dolibarr.org CheckVirtualHostPerms=Controleer ook of de virtuele hostgebruiker (bijvoorbeeld www-data) %s permissies heeft voor bestanden in
    %s ReadPerm=Lezen WritePerm=Schrijven @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=U kunt HTML-broncode bewerken met de knop "Bron" in YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . +YouCanEditHtmlSourceMore=
    Meer voorbeelden van HTML of dynamische code zijn beschikbaar in de wiki-documentatie
    . ClonePage=Kloon pagina/container CloneSite=Klonen site SiteAdded=Website toegevoegd @@ -137,7 +140,7 @@ PagesRegenerated=%s pagina ('s) / container (s) her-aangemaakt RegenerateWebsiteContent=Genereer cachebestanden van websites opnieuw AllowedInFrames=Toegestaan in frames DefineListOfAltLanguagesInWebsiteProperties=Definieer een lijst van alle beschikbare talen in website-eigenschappen. -GenerateSitemaps=Website-site mapbestand genereren map +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Als u bevestigt, wist u het bestaande site mapbestand... ConfirmSitemapsCreation=Generatie van sitemap bevestigen SitemapGenerated=Sitemap bestand %s gegenereerd @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon moet png zijn ErrorFaviconSize=Favicon moet de afmetingen 16x16, 32x32 of 64x64 . hebben FaviconTooltip=Upload een afbeelding die een png moet zijn (16x16, 32x32 of 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/nl_NL/withdrawals.lang b/htdocs/langs/nl_NL/withdrawals.lang index dd8c76e75ee..0b331b05550 100644 --- a/htdocs/langs/nl_NL/withdrawals.lang +++ b/htdocs/langs/nl_NL/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Leveranciersfactuur wacht op betaling via overboe InvoiceWaitingWithdraw=Factuur wacht op automatische incasso InvoiceWaitingPaymentByBankTransfer=Factuur wacht op overboeking AmountToWithdraw=Bedrag in te trekken +AmountToTransfer=Over te dragen bedrag NoInvoiceToWithdraw=Er staat geen factuur open voor '%s'. Ga op tabblad '%s' op factuurkaart om een verzoek in te dienen. -NoSupplierInvoiceToWithdraw=Geen leveranciersfactuur met open 'betalingsverzoek'. Ga op tabblad '%s' op factuurkaart om een verzoek in te dienen. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Verantwoordelijke gebruiker WithdrawalsSetup=Instelling voor automatische incasso CreditTransferSetup=Instelling voor overboeking @@ -41,6 +42,7 @@ CreditTransferStatistics=Overboeking statistieken Rejects=Verworpen LastWithdrawalReceipt=Laatste %s ontvangen incasso's MakeWithdrawRequest=Automatische incasso aanmaken +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Maak een verzoek tot overboeking WithdrawRequestsDone=%s Betalingsverzoeken voor automatische incasso geregistreerd BankTransferRequestsDone=%s overboekingsverzoeken geregistreerd @@ -48,7 +50,7 @@ ThirdPartyBankCode=Bankcode van derden NoInvoiceCouldBeWithdrawed=Geen factuur afgeschreven. Controleer of de facturen betrekking hebben op bedrijven met een geldige IBAN en dat IBAN een UMR (Unique Mandate Reference) met modus %s heeft . WithdrawalCantBeCreditedTwice=Dit opnamebewijs is al gemarkeerd als gecrediteerd; dit kan niet twee keer worden gedaan, omdat dit mogelijk dubbele betalingen en bankboekingen zou veroorzaken. ClassCredited=Classificeer creditering -ClassDebited=Classify debited +ClassDebited=Gedebiteerd classificeren ClassCreditedConfirm=Weet u zeker dat u deze intrekkingsontvangst als bijgeschreven op uw bankrekening wilt classificeren? TransData=Datum transmissie TransMetod=Transmissiewijze @@ -99,8 +101,11 @@ CreditDate=Crediteer op WithdrawalFileNotCapable=Kan geen ontvangstbewijsbestand voor uw land genereren %s (uw land wordt niet ondersteund) ShowWithdraw=Incasso-opdracht weergeven IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Als de factuur echter ten minste één betalingsopdracht voor automatische incasso bevat die nog niet is verwerkt, wordt deze niet ingesteld als betaald om voorafgaand opnamebeheer mogelijk te maken. -DoStandingOrdersBeforePayments=Op dit tabblad kunt u een betalingsopdracht voor automatische incasso aanvragen. Als u klaar bent, gaat u naar het menu Bank-> Betaling via automatische incasso om de incasso-opdracht te genereren en te beheren. Wanneer de automatische incasso-opdracht wordt afgesloten, wordt de betaling op facturen automatisch geregistreerd en worden de facturen gesloten als het te betalen restant nul is. -DoCreditTransferBeforePayments=Op dit tabblad kunt u een overboekingsopdracht aanvragen. Als u klaar bent, gaat u naar het menu Bank-> Betaling via overschrijving om de overschrijvingsopdracht te genereren en te beheren. Wanneer de overboekingsopdracht is gesloten, wordt de betaling op facturen automatisch geregistreerd en worden de facturen gesloten als het te betalen restant nul is. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Debet orderbestand CreditTransferFile=Credit overdrachtbestand SetToStatusSent=Stel de status in "Bestand verzonden" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Kan geen automatische incasso-aanvraag maken voor SepaMandate=Machtiging doorlopende SEPA incasso SepaMandateShort=SEPA-mandaat PleaseReturnMandate=Stuur dit machtigingsformulier per e-mail naar\n%s of per post naar: -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Incassant id. CreditorName=Naam crediteur SEPAFillForm=(B) Alle velden met een * zijn verplicht. @@ -135,7 +140,8 @@ SEPARCUR=SEPA CUR SEPAFRST=SEPA FRST ExecutionDate=Uitvoeringsdatum CreateForSepa=Aanmaken incassobestand -ICS=Creditor Identifier - ICS +ICS=Crediteur-ID - ICS +IDS=Debiteur-ID END_TO_END="EndToEndId" SEPA XML-tag - Uniek ID toegewezen per transactie USTRD="Ongestructureerde" SEPA XML-tag ADDDAYS=Dagen toevoegen aan uitvoeringsdatum @@ -152,5 +158,6 @@ ModeWarning=Optie voor echte modus was niet ingesteld, we stoppen na deze simula ErrorCompanyHasDuplicateDefaultBAN=Bedrijf met id %s heeft meer dan één standaard bankrekening. Er is geen manier aanwezig om te weten welke u moet gebruiken. ErrorICSmissing=ICS ontbreekt op bankrekening %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Totaal bedrag incasso-opdracht verschilt van som van regels -WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s -WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +WarningSomeDirectDebitOrdersAlreadyExists=Waarschuwing: er zijn al enkele lopende incasso-opdrachten (%s) aangevraagd voor een bedrag van %s +WarningSomeCreditTransferAlreadyExists=Waarschuwing: er is al een openstaande overboeking (%s) aangevraagd voor een bedrag van %s +UsedFor=Gebruikt voor %s diff --git a/htdocs/langs/nl_NL/workflow.lang b/htdocs/langs/nl_NL/workflow.lang index 1fc5df1b3ad..8afe20f2c8f 100644 --- a/htdocs/langs/nl_NL/workflow.lang +++ b/htdocs/langs/nl_NL/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatisch een verkooporder maken nadat ee descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Creëer automatisch een klantfactuur nadat een offerte is ondertekend (de nieuwe factuur heeft hetzelfde bedrag als de offerte) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Maak automatisch een klant factuur aan nadat een contract is gevalideerd. descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Creëer automatisch een klantfactuur nadat een verkooporder is gesloten (de nieuwe factuur heeft hetzelfde bedrag als de bestelling) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Maak bij het aanmaken van tickets automatisch een interventie aan. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificeer gekoppeld bronvoorstel als gefactureerd wanneer verkooporder is ingesteld op gefactureerd (en als het bedrag van de bestelling gelijk is aan het totale bedrag van het ondertekende gekoppelde voorstel) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificeer het gekoppelde bronvoorstel als gefactureerd wanneer de klantfactuur is gevalideerd (en als het factuurbedrag gelijk is aan het totale bedrag van het ondertekende gekoppelde voorstel) @@ -21,10 +22,15 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classificeer gekoppel descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classificeer inkooporder met gekoppelde bron als ontvangen wanneer een ontvangst is gevalideerd (en als de hoeveelheid die door alle ontvangsten is ontvangen hetzelfde is als in de inkooporder die moet worden bijgewerkt) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classificeer inkooporder met gekoppelde bron als ontvangen wanneer een ontvangst wordt gesloten (en als de hoeveelheid die door alle ontvangsten wordt ontvangen hetzelfde is als in de inkooporder die moet worden bijgewerkt) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Classificeer ontvangsten als "gefactureerd" wanneer een gekoppelde inkooporder wordt gevalideerd +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=Koppel bij het aanmaken van een ticket beschikbare contracten van bijpassende derde partijen +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Zoek bij het koppelen van contracten onder die van moederbedrijven # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Sluit alle interventies die aan het ticket zijn gekoppeld wanneer een ticket is gesloten AutomaticCreation=Automatisch aanmaken AutomaticClassification=Automatisch classificeren # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classificeer gekoppelde bronzending als gesloten wanneer de klant factuur wordt gevalideerd +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatisch sluiten +AutomaticLinking=Automatisch koppelen diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index c73af11e686..0ef6acabde7 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Kraje spoza UE CountriesInEECExceptMe=Kraje UE oprócz %s CountriesExceptMe=Wszystkie kraje oprócz %s AccountantFiles=Eksportuj dokumenty źródłowe -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Aby wyeksportować swoje dzienniki, użyj pozycji menu %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Wyświetl według konta księgowego VueBySubAccountAccounting=Wyświetl według subkonta księgowego @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Główne konto rozliczeniowe dla dostawców ni MainAccountForUsersNotDefined=Główne konto księgowe dla użytkowników nie zdefiniowane w ustawieniach MainAccountForVatPaymentNotDefined=Główne konto księgowe dla płatności VAT nie zdefiniowane w ustawieniach MainAccountForSubscriptionPaymentNotDefined=Główne konto księgowe dla płatności za subskrypcję nie zostało zdefiniowane w konfiguracji +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Strefa księgowości AccountancyAreaDescIntro=Korzystanie z modułu księgowości odbywa się w kilku etapach: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Wyłącz bezpośrednią rejestrację transakcji na kon ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Włącz eksport wersji roboczej w dzienniku ACCOUNTANCY_COMBO_FOR_AUX=Włącz listę kombi dla konta pomocniczego (może działać wolno, jeśli masz dużo stron trzecich, przerywa możliwość wyszukiwania części wartości) ACCOUNTING_DATE_START_BINDING=Określ datę rozpoczęcia wiązania i przeniesienia w księgowości. Poniżej tej daty transakcje nie zostaną przeniesione do księgowości. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=W przypadku przelewu księgowego wybierz domyślnie pokazany okres +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Dziennik sprzedaży -ACCOUNTING_PURCHASE_JOURNAL=Dziennik zakupów -ACCOUNTING_MISCELLANEOUS_JOURNAL=Dziennik różnic +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Dziennik raportów kosztowych -ACCOUNTING_SOCIAL_JOURNAL=Dziennik społecznościowy +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Ma nowy dziennik +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Dziennik społecznościowy ACCOUNTING_RESULT_PROFIT=Rachunek wynikowy (zysk) ACCOUNTING_RESULT_LOSS=Rachunek wynikowy (strata) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Dziennik zamknięcia -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Rachunek księgowy przelewu przejściowego +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Konto przejściowe do przelewów bankowych -ACCOUNTING_ACCOUNT_SUSPENSE=Konto księgowe dla oczekujących -DONATION_ACCOUNTINGACCOUNT=Konto księgowe dla zarejestrowanych dotatcji -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto księgowe do rejestracji subskrypcji +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto księgowe domyślnie do rejestracji wpłaty klienta -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto księgowe domyślnie dla kupowanych produktów (używane, jeśli nie zostało zdefiniowane w karcie produktu) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto księgowe domyślnie dla zakupionych produktów w EWG (używane, jeśli nie zostało zdefiniowane w karcie produktu) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Konto księgowe domyślnie dla produktów zakupionych i importowanych poza EWG (używane, jeśli nie zostało zdefiniowane w karcie produktu) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Konto księgowe używane domyślnie dla sprzedanych produktów (używane jeżeli nie zdefiniowano konta w arkuszu produktu) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Konto księgowe domyślnie dla produktów sprzedawanych w EWG (używane, jeśli nie zostało zdefiniowane w karcie produktu) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Konto księgowe domyślnie dla produktów sprzedanych i wyeksportowanych poza EWG (używane, jeśli nie zostały zdefiniowane w karcie produktu) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Konto księgowe używane domyślnie dla kupionych usług (używane jeżeli nie zdefiniowano konta w arkuszu produktu) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Konto księgowe domyślnie dla zakupionych usług w EWG (używane, jeśli nie zostało zdefiniowane w karcie usług) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Konto księgowe domyślnie dla usług zakupionych i importowanych poza EWG (używane, jeśli nie zostało zdefiniowane w karcie usług) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Konto księgowe używane domyślnie dla sprzedanych usług (używane jeżeli nie zdefiniowano konta w arkuszu produktu) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Konto księgowe domyślnie dla usług sprzedawanych w EWG (używane, jeśli nie zostało zdefiniowane w arkuszu usług) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Konto księgowe domyślnie dla usług sprzedawanych i eksportowanych poza EWG (używane, jeśli nie zostało zdefiniowane w arkuszu usług) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Rodzaj dokumentu Docdate=Data @@ -211,7 +217,7 @@ Codejournal=Dziennik JournalLabel=Etykieta czasopisma NumPiece=ilość sztuk TransactionNumShort=Numer transakcji -AccountingCategory=Grupa niestandardowa +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Grupuj według konta księgi głównej GroupBySubAccountAccounting=Grupuj według konta księgi podrzędnej AccountingAccountGroupsDesc=Możesz tutaj zdefiniować kilka grup rachunków księgowych. Będą wykorzystywane do tworzenia spersonalizowanych raportów księgowych. @@ -265,13 +271,13 @@ Reconcilable=Do pogodzenia TotalVente=Łączny obrót przed opodatkowaniem TotalMarge=Całkowita marża sprzedaży -DescVentilCustomer=Zapoznaj się z listą wierszy faktur klienta powiązanych (lub nie) z kontem księgowym produktu -DescVentilMore=W większości przypadków, jeśli korzystasz z predefiniowanych produktów lub usług i ustawisz numer konta na karcie produktu / usługi, aplikacja będzie w stanie powiązać wszystkie linie faktury z kontem księgowym planu kont, tylko w jedno kliknięcie przyciskiem "%s" . Jeśli konto nie zostało ustawione na kartach produktów / usług lub jeśli nadal masz jakieś linie niepowiązane z kontem, będziesz musiał wykonać ręczne powiązanie z menu „ %s ”. -DescVentilDoneCustomer=Zapoznaj się z listą wierszy odbiorców faktur i ich kontami księgowymi produktów -DescVentilTodoCustomer=Powiąż pozycje faktury aktualnie nie związane z kontem księgowym produktu -ChangeAccount=Zmień konto księgowe dla zaznaczonych produktów/usług na następujące konto księgowe: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Zapoznaj się z listą wierszy faktur od dostawców powiązanych lub jeszcze niezwiązanych z kontem księgowym produktu (widoczne są tylko rekordy, które nie zostały jeszcze przeniesione w księgowości) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Zapoznaj się z listą wierszy faktur od dostawców i ich kontami księgowymi DescVentilTodoExpenseReport=Powiązanie wierszy raportu wydatków, które nie są jeszcze powiązane z kontem rozliczeniowym opłat DescVentilExpenseReport=Zapoznaj się z listą pozycji raportu wydatków powiązanych (lub nie) z kontem rozliczania opłat @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Jeśli ustawisz konto księgowe na typ wierszy rapor DescVentilDoneExpenseReport=Zapoznaj się z listą pozycji raportów wydatków i ich kontem księgowym opłat Closure=Coroczne zamknięcie -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Jakakolwiek modyfikacja lub usunięcie pisma, napisów i usunięcia będzie zabronione. Wszystkie wpisy do ćwiczenia muszą zostać zatwierdzone, w przeciwnym razie zamknięcie nie będzie możliwe ValidateHistory=Dowiąż automatycznie AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Błąd, nie można usunąc tego konta księgowego, ponieważ jest w użyciu +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balansowy FicheVentilation=Karta dowiązania GeneralLedgerIsWritten=Transakcje zapisane w księdze głównej GeneralLedgerSomeRecordWasNotRecorded=Niektóre transakcje nie mogły zostać zapisane w dzienniku. Jeśli nie ma innego komunikatu o błędzie, jest to prawdopodobnie spowodowane tym, że zostały już zapisane w dzienniku. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Lista produktów nie dowiązanych do żadnego konta księgowego +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Zmień dowiązanie Accounted=Rozliczone w księdze NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Różne operacje AccountingJournalType2=Sprzedaż AccountingJournalType3=Zakupy AccountingJournalType4=Bank -AccountingJournalType5=Raport kosztów +AccountingJournalType5=Raporty kosztów AccountingJournalType8=Inwentaryzacja AccountingJournalType9=Ma nowe +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Ten dziennik jest już w użytku AccountingAccountForSalesTaxAreDefinedInto=Uwaga: Konta księgowe dla podatku od sprzedaży są zdefiniowane w menu %s - %s NumberOfAccountancyEntries=Liczba wejść @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Liczba ruchów ACCOUNTING_DISABLE_BINDING_ON_SALES=Wyłącz powiązanie i przeniesienie w księgowości sprzedaży (faktury klientów nie będą brane pod uwagę w księgowości) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Wyłącz powiązanie i przeniesienie w księgowości zakupów (faktury dostawcy nie będą brane pod uwagę w księgowości) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Wyłącz powiązanie i przeniesienie w księgowości na zestawieniach wydatków (zestawienia wydatków nie będą brane pod uwagę w księgowości) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Potwierdzenie wygenerowania pliku eksportu księgowości ? ExportDraftJournal=Export dziennika projektu @@ -398,7 +407,11 @@ Calculated=Przeliczone Formula=Formuła ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Potwierdzenie usuwania zbiorczego ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Zapisy księgowe @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Kod wielowalutowy (Idevise) DateExport=Eksport daty WarningReportNotReliable=Ostrzeżenie, ten raport nie jest oparty na księdze, więc nie zawiera transakcji zmodyfikowanych ręcznie w księdze. Jeśli dziennikarstwo jest aktualne, widok księgowości jest dokładniejszy. ExpenseReportJournal=Dziennik wydatków -InventoryJournal=Dziennik zapasów NAccounts=%s kont diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 766673efe20..40db11da129 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Zestawienie klienta WarningModuleNotActive=Moduł %s musi być aktywny WarningOnlyPermissionOfActivatedModules=Tylko uprawnienia związane z funkcją aktywowania modułów pokazane są tutaj. Możesz uaktywnić inne moduły w instalacji - moduł strony. DolibarrSetup=Instalacja lub ulepszenie Dollibar'a -InternalUser=Wewnętrzny użytkownik -ExternalUser=Zewnętrzny użytkownik InternalUsers=Wewnętrzni użytkownicy ExternalUsers=Zewnetrzni użytkownicy UserInterface=Interfejs użytkownika @@ -109,7 +107,7 @@ NextValueForReplacements=Następna wartość (zamienniki) MustBeLowerThanPHPLimit=Uwaga: twoje ustawienia PHP obecnie ograniczają maksymalny rozmiar pliku do przesłania do %s %s, niezależnie od wartości tego parametru NoMaxSizeByPHPLimit=Uwaga: Brak ustawionego limitu w twojej konfiguracji PHP MaxSizeForUploadedFiles=Maksymalny rozmiar dla twoich przesyłanych plików (0 by zabronić jego przesyłanie/upload) -UseCaptchaCode=Użyj graficzny kod (CAPTCHA) na stronie logowania +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Pełna ścieżka do poleceń antivirusa AntiVirusCommandExample=Przykład dla ClamAv Daemon (wymaga clamav-demon): /usr/bin/clamdscan
    Przykład dla ClamWin (bardzo, bardzo wolny): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Więcej parametrów w linii poleceń @@ -163,7 +161,7 @@ PurgeAreaDesc=Ta strona pozwala usunąć wszystkie pliki wygenerowane lub przech PurgeDeleteLogFile=Usuń pliki logu, wliczając %s zdefiniowany dla modułu Syslog (brak ryzyka utraty danych) PurgeDeleteTemporaryFiles=Usuń wszystkie pliki dziennika i pliki tymczasowe (bez ryzyka utraty danych). Parametrem może być „tempfilesold”, „logfiles” lub oba „tempfilesold + logfiles”. Uwaga: Pliki tymczasowe są usuwane tylko wtedy, gdy katalog tymczasowy został utworzony ponad 24 godziny temu. PurgeDeleteTemporaryFilesShort=Usuń logi i pliki tymczasowe (bez ryzyka utraty danych) -PurgeDeleteAllFilesInDocumentsDir=Usuń wszystkie pliki z katalogu: %s.
    Spowoduje to usunięcie wszystkich wygenerowanych dokumentów związanych z elementami (strony trzecie, faktury itp.), plików przesłanych do modułu ECM, zrzutów kopii zapasowej bazy danych i plików tymczasowych. +PurgeDeleteAllFilesInDocumentsDir=Usuń wszystkie pliki z katalogu: %s.
    Spowoduje to usunięcie wszystkich wygenerowanych dokumentów związanych z elementami (kontrahenci, faktury itp.), plików przesłanych do modułu ECM, zrzutów kopii zapasowej bazy danych i plików tymczasowych. PurgeRunNow=Czyść teraz PurgeNothingToDelete=Brak katalogu lub plików do usunięcia. PurgeNDirectoriesDeleted= %s pliki lub katalogi usunięte. @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Maszyna SMTP/SMTPS (wartość domyślna w php.ini: %s%s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Konto e-mail otrzymujące informacje o błędach przy wysyłaniu wiadomości e-mail (pola „Errors-To” w wysłanych wiadomościach e-mail) MAIN_MAIL_AUTOCOPY_TO= Kopiuj (Cc) wszystkie wysłane emaile do MAIN_DISABLE_ALL_MAILS=Wyłącz wysyłanie wszystkich wiadomości e-mail (do celów testowych lub pokazów) @@ -439,8 +438,10 @@ Unique=Unikalny Boolean=Boolean (jedno pole wyboru) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Adres e-mail ExtrafieldUrl = Link +ExtrafieldIP = IP ExtrafieldSelect = Wybierz listę ExtrafieldSelectList = Wybierz z tabeli ExtrafieldSeparator=Separator (nie pole) @@ -477,7 +478,7 @@ InstalledInto=Zainstalowany w katalogu %s BarcodeInitForThirdparties=Masowe inicjowanie kodu kreskowego dla kontrahentów BarcodeInitForProductsOrServices=Masowe generowanie kodów lub reset kodów kreskowych dla usług i produktów CurrentlyNWithoutBarCode=Obecnie masz rekord %s na %s %s bez kodu kreskowego. -InitEmptyBarCode=Generuj wartość dla kolejnych %s pustych wpisów +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Usuń wszystkie aktualne kody kreskowe ConfirmEraseAllCurrentBarCode=Jesteś pewien, że chcesz usunąć wszystkie aktualne wartości kodów kreskowych? AllBarcodeReset=Wszystkie wartości kodów kreskowych zostały usunięte @@ -501,10 +502,11 @@ WarningPHPMail=OSTRZEŻENIE: Konfiguracja wysyłania wiadomości e-mail z aplika WarningPHPMailA=- Korzystanie z serwera dostawcy usług e-mail zwiększa wiarygodność wiadomości e-mail, a więc zwiększa dostarczalność bez oznaczania jako SPAM WarningPHPMailB=- Niektórzy dostawcy usług e-mail (np. Yahoo) nie pozwalają na wysyłanie wiadomości e-mail z innego serwera niż ich własny serwer. Twoja obecna konfiguracja wykorzystuje serwer aplikacji do wysyłania wiadomości e-mail, a nie serwer dostawcy poczty e-mail, więc niektórzy odbiorcy (ten zgodny z restrykcyjnym protokołem DMARC) zapytają dostawcę poczty e-mail, czy mogą zaakceptować Twoją wiadomość e-mail i niektórzy dostawcy poczty e-mail (jak Yahoo) może odpowiedzieć „nie”, ponieważ serwer nie należy do nich, więc niewiele z wysłanych przez Ciebie e-maili może nie zostać zaakceptowanych do dostarczenia (uważaj również na limit wysyłania dostawcy poczty e-mail). WarningPHPMailC=- Używanie serwera SMTP własnego dostawcy usług pocztowych do wysyłania e-maili jest również interesujące, więc wszystkie e-maile wysyłane z aplikacji będą również zapisywane w katalogu „Wysłane” Twojej skrzynki pocztowej. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Jeśli Twój dostawca poczty e-mail SMTP musi ograniczyć klienta poczty e-mail do niektórych adresów IP (bardzo rzadko), jest to adres IP agenta użytkownika poczty (MUA) dla aplikacji ERP CRM: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Kliknij aby zobaczyć opis DependsOn=Ten moduł wymaga modułów RequiredBy=Ten moduł wymagany jest przez moduł(y) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Przykład:
    Formularz do tworzenia nowej PageUrlForDefaultValuesList=
    Przykład:
    W przypadku strony z listą stron trzecich jest to %s .
    W przypadku adresów URL modułów zewnętrznych zainstalowanych w katalogu niestandardowym nie należy dołączać „custom/”, więc użyj ścieżki takiej jak mymodule/mypagelist.php , a nie custom/mymodule/mypagelist.php.
    Jeśli chcesz mieć wartość domyślną tylko wtedy, gdy adres URL ma jakiś parametr, możesz użyć %s AlsoDefaultValuesAreEffectiveForActionCreate=Należy również pamiętać, że nadpisywanie wartości domyślnych przy tworzeniu formularzy działa tylko w przypadku stron, które zostały poprawnie zaprojektowane (więc z parametrem akcja = utwórz lub wyświetl ...) EnableDefaultValues=Włącz dostosowywanie wartości domyślnych -EnableOverwriteTranslation=Włącz użycie tłumaczenia nadpisanego +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Znaleziono tłumaczenie klucza z tym kodem. Aby zmienić tę wartość, należy ją edytować z poziomu Strona Główna - Ustawienia - Tłumaczenia. WarningSettingSortOrder=Ostrzeżenie, ustawienie domyślnej kolejności sortowania może spowodować błąd techniczny podczas przechodzenia na stronę listy, jeśli pole jest nieznanym polem. Jeśli napotkasz taki błąd, wróć na tę stronę, aby usunąć domyślną kolejność sortowania i przywrócić domyślne zachowanie. Field=Pole @@ -645,9 +647,9 @@ Module2400Name=Wydarzenia/Agenda Module2400Desc=Śledź wydarzenia. Rejestruj automatyczne zdarzenia do celów śledzenia lub rejestruj zdarzenia ręczne lub spotkania. Jest to główny moduł dobrego zarządzania relacjami z klientami lub dostawcami. Module2500Name=SZD / ZZE Module2500Desc=System Zarządzania Dokumentami / Zarządzanie Zawartością Elektroniczną. Automatyczna organizacja twoich wygenerowanych lub składowanych dokumentów. Udostępniaj je kiedy chcesz. -Module2600Name=API services (Web services SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API services (Web services REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Enable the Dolibarr REST server providing API services Module2660Name=Połączeń WebServices (klient SOAP) Module2660Desc=Włącz klienta usług sieciowych Dolibarr (może być używany do przesyłania danych/żądań do serwerów zewnętrznych. Obecnie obsługiwane są tylko zamówienia zakupu). @@ -698,6 +700,7 @@ Module62000Name=Formuły handlowe Module62000Desc=Dodaj funkcje do zarządzania Incoterms Module63000Name=Zasoby Module63000Desc=Zarządzaj zasobami (drukarki, samochody, pokoje, ...) w celu przydzielania ich do wydarzeń +Module94160Name=Receptions Permission11=Czytaj faktur klientów Permission12=Tworzenie/modyfikacja faktur klientów Permission13=Unieważnij faktury klienta @@ -714,6 +717,7 @@ Permission27=Usuń oferty reklam Permission28=Eksportuj oferty reklam Permission31=Czytaj produkty Permission32=Tworzenie / modyfikacja produktów +Permission33=Read prices products Permission34=Usuwanie produktów Permission36=Podejrzyj / zarządzaj ukrytymi produktami Permission38=Eksport produktów @@ -739,6 +743,7 @@ Permission79=Tworzenie / modyfikacja subskrypcji Permission81=Czytaj zamówienia klientów Permission82=Tworzenie / modyfikacja zamówień klientów Permission84=Walidacja zamówień klientów +Permission85=Generate the documents sales orders Permission86=Wyślij zamówienia klientów Permission87=Zamknij zamówienia klientów Permission88=Anuluj zamówienia klientów @@ -840,9 +845,9 @@ Permission286=Eksport kontaktów Permission291=Czytaj taryfy Permission292=Ustaw uprawnienia dotyczące taryf Permission293=Zmodyfikuj taryfy klienta -Permission300=Czytaj kody kreskowe -Permission301=Twórz/modyfikuj kody kreskowe -Permission302=Usuń kody kreskowe +Permission301=Generate PDF sheets of barcodes +Permission304=Twórz/modyfikuj kody kreskowe +Permission305=Usuń kody kreskowe Permission311=Czytaj usługi Permission312=Przypisywanie usługi / subskrypcji do umowy Permission331=Czytaj zakładki @@ -874,6 +879,7 @@ Permission525=Kalkulator kredytowy Dostęp Permission527=Kredyty eksportowe Permission531=Cztaj usługi Permission532=Tworzenie / modyfikacja usług +Permission533=Read prices services Permission534=Usuwanie usług Permission536=Zobacz / zarządzaj ukrytymi usługami Permission538=Eksport usług @@ -968,13 +974,14 @@ Permission3301=Wygeneruj nowe moduły Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Przeczytaj zawartość strony internetowej Permission10002=Twórz/modyfikuj zawartość strony internetowej (zawartość html i javascript) Permission10003=Twórz/modyfikuj zawartość strony internetowej (dynamiczny kod php). Niebezpieczne, musi być zarezerwowane dla programistów z ograniczeniami. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Rodzaj jednostki SetupSaved=Konfiguracja zapisana SetupNotSaved=Ustawienia nie zapisane +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Powrót do listy modułów BackToDictionaryList=Powrót do listy słowników TypeOfRevenueStamp=Rodzaj znaku skarbowego @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Wartość stałej konfiguracji ConstantIsOn=Opcja %s jest włączona NbOfDays=Liczba dni AtEndOfMonth=Na koniec miesiąca -CurrentNext=Bieżący/następny +CurrentNext=A given day in month Offset=Offset AlwaysActive=Zawsze aktywne Upgrade=Uaktualnij @@ -1235,11 +1246,13 @@ BrowserName=Nazwa przeglądarki BrowserOS=Przeglądarka OS ListOfSecurityEvents=Lista zdarzeń bezpieczeństwa Dolibarr SecurityEventsPurged=Zdarzenia dotyczące bezpieczeństwa oczyszczone +TrackableSecurityEvents=Trackable security events LogEventDesc=Włącz rejestrowanie określonych zdarzeń związanych z bezpieczeństwem. Administratorzy dziennika za pośrednictwem menu %s - %s . Ostrzeżenie, ta funkcja może generować dużą ilość danych w bazie danych. AreaForAdminOnly=Parametry mogą być ustawiane tylko przez użytkowników z prawami administratora. SystemInfoDesc=System informacji jest różne informacje techniczne można uzyskać w trybie tylko do odczytu i widoczne tylko dla administratorów. SystemAreaForAdminOnly=Ten obszar jest dostępny tylko dla administratorów. Uprawnienia użytkownika Dolibarr nie mogą zmienić tego ograniczenia. CompanyFundationDesc=Edytuj informacje o swojej firmie/organizacji. Po zakończeniu kliknij przycisk „%s” u dołu strony. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Jeśli masz zewnętrznego księgowego, możesz tutaj edytować jego informacje. AccountantFileNumber=Kod księgowego DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Należy uruchomić to polecenie YourPHPDoesNotHaveSSLSupport=funkcji SSL nie są dostępne w PHP DownloadMoreSkins=Więcej skórek do pobrania SimpleNumRefModelDesc=Zwraca numer referencyjny w formacie %syymm-nnnn, gdzie rr to rok, mm to miesiąc, a nnnn to sekwencyjna liczba automatycznie zwiększająca się bez resetowania +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Zwraca numer referencyjny w formacie %syymm-nnnn, gdzie rr to rok, mm to miesiąc, a nnnn to sekwencyjna liczba automatycznie zwiększająca się bez resetowania SimpleNumRefNoDateModelDesc=Zwraca numer referencyjny w formacie %s-nnnn, gdzie nnnn jest sekwencyjną liczbą, automatycznie zwiększającą się bez resetowania ShowProfIdInAddress=Pokaż profesjonalny identyfikator z adresami ShowVATIntaInAddress=Ukryj wewnątrzwspólnotowy numer VAT @@ -1376,7 +1391,7 @@ GetBarCode=Pobierz kod kreskowy NumberingModules=Numeracja modeli DocumentModules=Modele dokumentów ##### Module password generation -PasswordGenerationStandard=Zwróć hasło wygenerowane zgodnie z wewnętrznym algorytmem Dolibarr: %s znaków zawierających wspólne liczby i małe litery. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Nie sugeruj wygenerowanego hasła. Hasło należy wpisać ręcznie. PasswordGenerationPerso=Powrót hasło zależności osobiście określonej konfiguracji. SetupPerso=Zgodnie z twoją konfiguracją @@ -1430,6 +1445,10 @@ SuppliersPayment=Płatności dostawcy SupplierPaymentSetup=Konfiguracja płatności dostawcy InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Konfiguracja modułu ofert handlowych ProposalsNumberingModules=Commercial wniosku numeracji modules @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Znak wodny w szkicach projektów (brak jeśli pust ##### Members ##### MembersSetup=Członkowie konfiguracji modułu MemberMainOptions=Główne opcje +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Zarządzanie logowania dla każdego członka AdherentMailRequired=Adres e-mail wymagany do utworzenia nowego członka MemberSendInformationByMailByDefault=Checkbox wysłać mail z potwierdzeniem do członków jest domyślnie MemberCreateAnExternalUserForSubscriptionValidated=Utwórz zewnętrzny login użytkownika dla każdej zweryfikowanej subskrypcji nowego członka -VisitorCanChooseItsPaymentMode=Odwiedzający może wybierać spośród dostępnych sposobów płatności +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Włącz automatyczne przypominanie przez e-mail o wygasłych subskrypcjach. Uwaga: Moduł %s musi być włączony i poprawnie skonfigurowany, aby wysyłać przypomnienia. MembersDocModules=Szablony dokumentów dla dokumentów wygenerowanych na podstawie rekordu członka ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Uaktywnij FCKeditor za: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG tworzenie/edycja linii szczegółów produktów dla wszystkich podmiotów (oferty, zamówienia, faktury itp.). Ostrzeżenie: Używanie tej opcji w tym przypadku zdecydowanie nie jest zalecane, ponieważ może powodować problemy ze znakami specjalnymi i formatowaniem stron podczas tworzenia plików PDF. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Tworzenie/edycja WYSIWYG do masowego e-mailingu (Narzędzia-> eMailing) FCKeditorForUserSignature=WYSIWIG tworzenie / edycja podpisu użytkownika FCKeditorForMail=Tworzenie/edycja WYSIWYG dla całej poczty (z wyjątkiem Narzędzia->eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Menu obsługi gdzie pokazać nowe menu DetailMenuModule=Moduł nazwę w menu, jeśli pochodzą z modułem DetailType=Rodzaj menu (na górze lub po lewej) DetailTitre=Menu etykiety lub etykiety kod tłumaczenia -DetailUrl=Adres URL, pod którym menu wysyłamy (Absolute URL lub link zewnętrzny link z http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Warunek, aby pokazać lub nie wejścia DetailRight=Warunek, aby wyświetlić menu nieautoryzowanych szary DetailLangs=Lang nazwy etykiety kodów @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Zmniejszenie zapasów w POS nie jest CashDeskYouDidNotDisableStockDecease=Nie wyłączono zmniejszania zapasów podczas dokonywania sprzedaży w punkcie sprzedaży. Dlatego wymagany jest magazyn. CashDeskForceDecreaseStockLabel=Wymuszono zmniejszenie zapasów dla produktów seryjnych. CashDeskForceDecreaseStockDesc=Zmniejsz najpierw według najstarszych dat przydatności do spożycia i sprzedaży. -CashDeskReaderKeyCodeForEnter=Kod klucza dla „Enter” zdefiniowany w czytniku kodów kreskowych (Przykład: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Zakładka konfiguracji modułu BookmarkDesc=Ten moduł pozwala zarządzać zakładkami. Możesz także dodawać skróty do dowolnych stron Dolibarr lub zewnętrznych stron internetowych w lewym menu. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modele numerowania faktur od dostawców IfSetToYesDontForgetPermission=Dla wartości innej niż null, nie zapomnij udzielić uprawnień grupom lub użytkownikom, którzy mają realizować drugie zatwierdzanie ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind konfiguracji modułu -PathToGeoIPMaxmindCountryDataFile=Ścieżka do pliku bazy danych GeoIP firmy MaxMind z krajowymi lokalizacjami adresów IP.
    Przykłady:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/Leo2 +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Pamiętać, że dane państwo ip do pliku musi być wewnątrz katalogu PHP może odczytać (sprawdzenie konfiguracji PHP open_basedir i uprawnienia systemu plików). YouCanDownloadFreeDatFileTo=Możesz pobrać darmową wersję demo kraju GeoIP plik Maxmind w %s. YouCanDownloadAdvancedDatFileTo=Możesz także pobrać bardziej kompletna wersja, z aktualizacjami, kraju GeoIP plik Maxmind w %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Kreator do utworzenia pliku zrzutu bazy danych BackupZipWizard=Kreator do utworzenia archiwum katalogu dokumentów SomethingMakeInstallFromWebNotPossible=Instalacja zewnętrznych modułów za pomocą interfejsu sieciowego nie jest możliwa z powodu następujących przyczyn: SomethingMakeInstallFromWebNotPossible2=Z tego powodu, proces ulepszenia (upgrade) jest procesem ręcznym, przeprowadzanym jedynie przez użytkownika uprzywilejowanego. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Instalacja zewnętrznych modułów z poziomu aplikacji została wyłączona przez administratora. Musisz poprosić go o usunięcie pliku %s aby włączyć odpowiednią funkcję. ConfFileMustContainCustom=Instalowanie lub budowanie modułu zewnętrznego z poziomu Dolibarr wymaga zapisania plików modułu w katalogu %s. Dolibarr będzie przetwarzał ten katalog jeśli w pliku conf/conf.php będzie miał odpowiednie wpisy:
    $dolibarr_main_url_root_alt='/ custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Naciśnij CTRL+F5 na klawiaturze aby wyczyścić cache NotSupportedByAllThemes=Działa z podstawowymi motywami, ale może nie być obsługiwane przez motywy zewnętrzne BackgroundColor=Kolor tła TopMenuBackgroundColor=Kolor tła górnego menu -TopMenuDisableImages=Ukryj obrazki górnego menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Kolor tła bocznego menu BackgroundTableTitleColor=Kolor tła nagłówka tabeli BackgroundTableTitleTextColor=Kolor czcionki dla napisów w pasku tytułowym sekcji na stronie @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Zamówienia zakupowe MailToSendSupplierInvoice=Faktury dostawcy MailToSendContract=Kontrakty MailToSendReception=Przyjęcia +MailToExpenseReport=Raporty kosztów MailToThirdparty=Kontrahenci MailToMember=Członkowie MailToUser=Użytkownicy @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Prawy margines w pliku PDF MAIN_PDF_MARGIN_TOP=Górny margines w pliku PDF MAIN_PDF_MARGIN_BOTTOM=Dolny margines w pliku PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Wysokość logo na dokumencie PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Usuń znaki specjalne COMPANY_AQUARIUM_CLEAN_REGEX=Filtr Regex do czyszczenia wartości (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtr Regex do czyszczenia wartości (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat jest niedozwolony +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Inspektor ochrony danych osobowych (kontakt w sprawie ochrony danych lub RODO) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Tekst pomocy do wyświetlenia w podpowiedzi @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Uwaga: Opcja korzystania z podatku od sprzedaży lub VAT została SwapSenderAndRecipientOnPDF=Zamień adres nadawcy i adresata w dokumentach PDF FeatureSupportedOnTextFieldsOnly=Ostrzeżenie, funkcja obsługiwana tylko w polach tekstowych i listach kombi. Również parametr adresu URL action = create lub action = edit musi być ustawiony LUB nazwa strony musi kończyć się na „nowy.php”, aby uruchomić tę funkcję. EmailCollector=Kolektor e-maili +EmailCollectors=Email collectors EmailCollectorDescription=Dodaj zaplanowane zadanie i stronę konfiguracji, aby regularnie skanować skrzynki e-mail (przy użyciu protokołu IMAP) i zapisywać wiadomości e-mail otrzymane w aplikacji we właściwym miejscu i / lub automatycznie tworzyć niektóre rekordy (np. Potencjalnych klientów). NewEmailCollector=Nowy moduł do zbierania wiadomości e-mail EMailHost=Host serwera poczty e-mail IMAP +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Katalog źródłowy skrzynki pocztowej MailboxTargetDirectory=Katalog docelowy skrzynki pocztowej EmailcollectorOperations=Operacje do wykonania przez kolekcjonera EmailcollectorOperationsDesc=Operacje są wykonywane od góry do dołu MaxEmailCollectPerCollect=Maksymalna liczba e-maili zebranych na odbiór +TestCollectNow=Test collect CollectNow=Zbierz teraz ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Data ostatniej próby odbioru DateLastcollectResultOk=Data ostatniej pomyślnej zbiórki LastResult=Ostatni wynik EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Potwierdzenie odbioru poczty e-mail EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Brak nowych e-maili (pasujących filtrów) do przetworzenia NothingProcessed=Nic nie zostało zrobione -XEmailsDoneYActionsDone=%s e-maile zakwalifikowane, %s e-maile pomyślnie przetworzone (dla %s rekordu / wykonanych czynności) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Utwórz podanie o pracę FormatZip=Paczka Zip MainMenuCode=Kod wejścia menu (menu główne) ECMAutoTree=Pokaż automatyczne drzewo ECM -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Godziny otwarcia OpeningHoursDesc=Wpisz tutaj regularne godziny otwarcia swojej firmy. ResourceSetup=Konfiguracja modułu zasobów @@ -2167,6 +2200,10 @@ EmailTemplate=Szablon do wiadomości e-mail EMailsWillHaveMessageID=E-maile będą miały tag „References” pasujący do tej składni PDF_SHOW_PROJECT=Pokaż projekt w dokumencie ShowProjectLabel=Etykieta projektu +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Jeśli chcesz, aby niektóre teksty w pliku PDF zostały skopiowane w 2 różnych językach w tym samym wygenerowanym pliku PDF, musisz ustawić tutaj ten drugi język, aby wygenerowany plik PDF zawierał 2 różne języki na tej samej stronie, ten wybrany podczas generowania pliku PDF i ten ( tylko kilka szablonów PDF to obsługuje). Pozostaw puste dla 1 języka na plik PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Wpisz tutaj kod ikony FontAwesome. Jeśli nie wiesz, co to jest FontAwesome, możesz użyć ogólnej wartości fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Współpraca AGENDA_EVENT_DEFAULT_STATUS=Domyślny status zdarzenia podczas tworzenia zdarzenia z formularza YouShouldDisablePHPFunctions=Powinieneś wyłączyć funkcje PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Z wyjątkiem sytuacji, gdy musisz uruchamiać polecenia systemowe w niestandardowym kodzie, powinieneś wyłączyć funkcje PHP -PHPFunctionsRequiredForCLI=Do celów powłoki (takich jak zaplanowane tworzenie kopii zapasowych zadań lub uruchamianie programu anitivurs), musisz zachować funkcje PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=W katalogu głównym nie znaleziono zapisywalnych plików ani katalogów dla powszechnych programów (Dobrze) RecommendedValueIs=Zalecane: %s Recommended=Zalecana NotRecommended=Niepolecane -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Sprawdź aktualizacje modułów zewnętrznych CheckForModuleUpdateHelp=Ta akcja połączy się z edytorami zewnętrznych modułów, by sprawdzić dostępność ich nowych wersji. ModuleUpdateAvailable=Aktualizacja jest dostępna @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Nie znaleziono aktualizacji dla modułów zewnętrzny SwaggerDescriptionFile=Plik opisu Swagger API (na przykład, do użytku z redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Włączono przestarzały interfejs API WS. Zamiast tego powinieneś użyć REST API. RandomlySelectedIfSeveral=Wybierane losowo, jeśli dostępnych jest kilka zdjęć +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Hasło do bazy danych jest zaciemnione w pliku konfiguracyjnym DatabasePasswordNotObfuscated=Hasło do bazy danych NIE jest zaciemnione w pliku konfiguracyjnym APIsAreNotEnabled=Moduły API nie są włączone @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Ustawienia inwentaryzacji ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Ustawienia +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/pl_PL/agenda.lang b/htdocs/langs/pl_PL/agenda.lang index f06e3eea152..de10dd27d63 100644 --- a/htdocs/langs/pl_PL/agenda.lang +++ b/htdocs/langs/pl_PL/agenda.lang @@ -38,13 +38,14 @@ ActionsEvents=Zdarzenia, dla których Dolibarr stworzy automatycznie zadania w a EventRemindersByEmailNotEnabled=Przypomnienia o wydarzeniach przez e-mail nie zostały włączone w konfiguracji modułu %s. ##### Agenda event labels ##### NewCompanyToDolibarr=Kontrahent %s utworzony -COMPANY_MODIFYInDolibarr=Zmodyfikowano %s innej firmy -COMPANY_DELETEInDolibarr=Usunięto stronę trzecią %s +COMPANY_MODIFYInDolibarr=Zmodyfikowano kontrahenta %s +COMPANY_DELETEInDolibarr=Usunięto kontrahenta %s ContractValidatedInDolibarr=Umowa %s potwierdzona CONTRACT_DELETEInDolibarr=Kontrakt %s usunięty PropalClosedSignedInDolibarr=Propozycja %s podpisana PropalClosedRefusedInDolibarr=Propozycja %s odrzucona PropalValidatedInDolibarr=Zatwierdzenie oferty %s +PropalBackToDraftInDolibarr=Propozycja %s wycofana do szkicu PropalClassifiedBilledInDolibarr=Propozycja %s sklasyfikowana jako rozliczona InvoiceValidatedInDolibarr=Zatwierdzenie faktury %s InvoiceValidatedInDolibarrFromPos=Faktura %s potwierdzona z POS @@ -56,16 +57,19 @@ MemberValidatedInDolibarr=Członek %s potwierdzony MemberModifiedInDolibarr=Użytkownik %s zmodyfikowany MemberResiliatedInDolibarr=Członek %s został usunięty MemberDeletedInDolibarr=Członek %s usunięty +MemberExcludedInDolibarr=Członek%s wykluczony MemberSubscriptionAddedInDolibarr=Subskrypcja %s dla członka %s dodana MemberSubscriptionModifiedInDolibarr=Subskrypcja %s dla członka %s zmodyfikowana MemberSubscriptionDeletedInDolibarr=Subskrypcja %s dla członka %s usunięta ShipmentValidatedInDolibarr=Przesyłka %s potwierdzona ShipmentClassifyClosedInDolibarr=Wysyłka %s sklasyfikowana jako rozliczona ShipmentUnClassifyCloseddInDolibarr=Przesyłka %s sklasyfikowana ponownie otwarta -ShipmentBackToDraftInDolibarr=Przesyłka %s wróć do statusu wersji roboczej +ShipmentBackToDraftInDolibarr=Przesyłka %s cofnięta do szkicu ShipmentDeletedInDolibarr=Przesyłka %s usunięta -ShipmentCanceledInDolibarr=Shipment %s canceled +ShipmentCanceledInDolibarr=Wysyłka %s anulowana ReceptionValidatedInDolibarr=Odbiór %s został zweryfikowany +ReceptionDeletedInDolibarr=Reception %s deleted +ReceptionClassifyClosedInDolibarr=Odbiór %s sklasyfikowany jako zamknięty OrderCreatedInDolibarr=Zamówienie %s utworzone OrderValidatedInDolibarr=Zatwierdzenie zamówienia %s OrderDeliveredInDolibarr=Zamówienie %s sklasyfikowanych dostarczonych. @@ -74,27 +78,28 @@ OrderBilledInDolibarr=Zamówienie %s sklasyfikowanego obciążonego OrderApprovedInDolibarr=Akceptacja zamówienia %s OrderRefusedInDolibarr=Zamówienie %s odmówione OrderBackToDraftInDolibarr=Zmiana statusu zamówienia %s na draft -ProposalSentByEMail=Oferta handlowa %s wysłana pocztą elektroniczną -ContractSentByEMail=Umowa %s wysłana pocztą elektroniczną -OrderSentByEMail=Zamówienie sprzedaży %s wysłane pocztą elektroniczną -InvoiceSentByEMail=Faktura dla klienta %s wysłana pocztą elektroniczną -SupplierOrderSentByEMail=Zamówienie %s wysłane pocztą elektroniczną +ProposalSentByEMail=Oferta handlowa %s wysłana mailem +ContractSentByEMail=Umowa %s wysłana mailem +OrderSentByEMail=Zamówienie sprzedaży %s wysłane mailem +InvoiceSentByEMail=Faktura dla klienta %s wysłana mailem +SupplierOrderSentByEMail=Zamówienie zakupowe %s wysłane mailem ORDER_SUPPLIER_DELETEInDolibarr=Zamówienie zakupu %s zostało usunięte SupplierInvoiceSentByEMail=Faktura dostawcy %s wysłana pocztą elektroniczną -ShippingSentByEMail=Przesyłka %s wysłana pocztą elektroniczną +ShippingSentByEMail=Przesyłka %s wysłana mailem ShippingValidated= Przesyłka %s potwierdzona InterventionSentByEMail=Interwencja %s wysłana pocztą elektroniczną +ProjectSentByEMail=Project %s sent by email ProposalDeleted=Oferta usunięta OrderDeleted=Zamówienie usunięte InvoiceDeleted=Faktura usunięta DraftInvoiceDeleted=Wersja robocza faktury została usunięta CONTACT_CREATEInDolibarr=Kontakt %s został utworzony -CONTACT_MODIFYInDolibarr=Skontaktuj się z %s zmodyfikowany +CONTACT_MODIFYInDolibarr=Kontakt %s zmodyfikowany CONTACT_DELETEInDolibarr=Kontakt %s został usunięty PRODUCT_CREATEInDolibarr=Produkt %s utworzony PRODUCT_MODIFYInDolibarr=Produkt %s zmodyfikowany PRODUCT_DELETEInDolibarr=Produkt %s usunięty -HOLIDAY_CREATEInDolibarr=Utworzono wniosek o urlop %s +HOLIDAY_CREATEInDolibarr=Wniosek o urlop %s utworzony HOLIDAY_MODIFYInDolibarr=Wniosek o urlop %s zmodyfikowany HOLIDAY_APPROVEInDolibarr=Wniosek o urlop %s został zatwierdzony HOLIDAY_VALIDATEInDolibarr=Wniosek o urlop %s został zatwierdzony @@ -157,13 +162,14 @@ DateActionBegin=Data startu wydarzenia ConfirmCloneEvent=Czy jesteś pewien, że chcesz powielić zdarzenie %s? RepeatEvent=Powtórz wydarzenie OnceOnly=Tylko raz +EveryDay=Każdego dnia EveryWeek=Każdego tygodnia EveryMonth=Każdego miesiąca DayOfMonth=Dzień miesiąca DayOfWeek=Dzień tygodnia DateStartPlusOne=Data rozpoczęcia + 1 godzina -SetAllEventsToTodo=Ustaw wszystkie wydarzenia do wykonania -SetAllEventsToInProgress=Ustaw wszystkie wydarzenia na w toku +SetAllEventsToTodo=Ustaw wszystkie wydarzenia na "do wykonania" +SetAllEventsToInProgress=Ustaw wszystkie wydarzenia na "w toku" SetAllEventsToFinished=Ustaw wszystkie wydarzenia na zakończone ReminderTime=Okres przypomnienia przed wydarzeniem TimeType=Typ czasu trwania @@ -171,4 +177,5 @@ ReminderType=Typ oddzwaniania AddReminder=Utwórz automatyczne przypomnienie o tym wydarzeniu ErrorReminderActionCommCreation=Błąd podczas tworzenia przypomnienia o tym wydarzeniu BrowserPush=Powiadomienie o wyskakującym okienku przeglądarki -ActiveByDefault=Enabled by default +ActiveByDefault=Włączone domyślnie +Until=dopóki diff --git a/htdocs/langs/pl_PL/categories.lang b/htdocs/langs/pl_PL/categories.lang index 655c7527a51..5f3e70adada 100644 --- a/htdocs/langs/pl_PL/categories.lang +++ b/htdocs/langs/pl_PL/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Ten członek nie jest w żadnym tagu/kategorii ContactHasNoCategory=Ten kontakt nie jest w żadnym z tagów / kategorii ProjectHasNoCategory=Ten projekt nie należy do żadnego tagu / kategorii ClassifyInCategory=Dodaj do tagu/kategorii +RemoveCategory=Remove category NotCategorized=Bez znaczników / kategorii CategoryExistsAtSameLevel=Ta kategoria już istnieje w tym samym miejscu ContentsVisibleByAllShort=Zawartość widoczna przez wszystkich @@ -67,6 +68,7 @@ StockCategoriesShort=Tagi / kategorie magazynowe ThisCategoryHasNoItems=Ta kategoria nie zawiera żadnych przedmiotów. CategId=Tag / ID kategorii ParentCategory=Tag / kategoria nadrzędna +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Etykieta tagu / kategorii nadrzędnej CatSupList=Lista tagów / kategorii dostawców CatCusList=Lista tagów / kategorii klientów / potencjalnych klientów @@ -86,15 +88,18 @@ DeleteFromCat=Usuń z tagów/kategorii ExtraFieldsCategories=Atrybuty uzupełniające CategoriesSetup=Tagi / kategorie Konfiguracja CategorieRecursiv=Związek z dominującą tag / kategorii automatycznie -CategorieRecursivHelp=Jeśli opcja jest włączona, po dodaniu produktu do podkategorii, produkt zostanie również dodany do kategorii nadrzędnej. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Dodaj następujący produkt / usługę AddCustomerIntoCategory=Przypisz kategorię do klienta AddSupplierIntoCategory=Przypisz kategorię do dostawcy +AssignCategoryTo=Assign category to ShowCategory=Pokaż tag / kategoria ByDefaultInList=Domyśłnie na liście ChooseCategory=Wybrane kategorie StocksCategoriesArea=Kategorie magazynów +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Kategorie zdarzeń WebsitePagesCategoriesArea=Kategorie kontenerów stron KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Użyj operatora „OR” dla kategorii +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/pl_PL/commercial.lang b/htdocs/langs/pl_PL/commercial.lang index f77528ca035..5e014d59d4f 100644 --- a/htdocs/langs/pl_PL/commercial.lang +++ b/htdocs/langs/pl_PL/commercial.lang @@ -59,10 +59,10 @@ ActionAC_FAC=Wyślij fakturę/rozliczenie pocztą ActionAC_REL=Wyślij fakturę/rozliczenie pocztą (ponaglenie) ActionAC_CLO=Blisko ActionAC_EMAILING=Wyślij mass maila -ActionAC_COM=Wyślij zamówienie pocztą +ActionAC_COM=Wyślij zamówienie sprzedażowe mailem ActionAC_SHIP=Wyślij wysyłki za pośrednictwem poczty -ActionAC_SUP_ORD=Wyślij zamówienie pocztą -ActionAC_SUP_INV=Wyślij fakturę dostawcy pocztą +ActionAC_SUP_ORD=Wyślij zamówienie zakupowe mailem +ActionAC_SUP_INV=Wyślij fakturę dostawcy mailem ActionAC_OTH=Inny ActionAC_OTH_AUTO=Inne auto ActionAC_MANUAL=Ręcznie wstawione wydarzenia @@ -74,8 +74,16 @@ StatusProsp=Stan oferty DraftPropals=Szkic oferty handlowej NoLimit=Bez limitu ToOfferALinkForOnlineSignature=Link dla podpisu online -WelcomeOnOnlineSignaturePage=Witamy na stronie do przyjmowania ofert handlowych od %s -ThisScreenAllowsYouToSignDocFrom=Ten ekran umożliwia zaakceptowanie i podpisanie lub odrzucenie oferty / oferty handlowej -ThisIsInformationOnDocumentToSign=To jest informacja na dokumencie do zaakceptowania lub odrzucenia +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=To jest informacja na dokumencie do zaakceptowania lub odrzucenia +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Podpis oferty / oferty handlowej %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Funkcjonalność podpisu online wyłączona lub dokument wygenerowano przed włączeniem tej funkcji diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang index 1cd81584852..bcdefa4a53e 100644 --- a/htdocs/langs/pl_PL/companies.lang +++ b/htdocs/langs/pl_PL/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Rodzaj kontrahenta NatureOfContact=Charakter kontaktu Address=Adres State=Województwo +StateId=State ID StateCode=Kod Stanu/Prowincji StateShort=Województwo Region=Region Region-State=Region - Województwo Country=Kraj CountryCode=Kod kraju -CountryId=ID kraju +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Inne ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) diff --git a/htdocs/langs/pl_PL/compta.lang b/htdocs/langs/pl_PL/compta.lang index 921a9bf8063..430c6c05f73 100644 --- a/htdocs/langs/pl_PL/compta.lang +++ b/htdocs/langs/pl_PL/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Bilans (przed) Balance=Saldo Debit=Rozchody Credit=Kredyt +AccountingDebit=Debet +AccountingCredit=Kredyt Piece=Rachunkowość Doc. AmountHTVATRealReceived=HT zebrane AmountHTVATRealPaid=HT paid @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Raport dotyczący obrotu zeb TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Raport dotyczący obrotu uzyskanego według stawki podatku od sprzedaży jest niedostępny. Ten raport jest dostępny tylko dla zafakturowanych obrotów. CalculationMode=Tryb Obliczanie AccountancyJournal=Arkusz kodów księgowych -ACCOUNTING_VAT_SOLD_ACCOUNT=Konto księgowe domyślnie dla podatku VAT od sprzedaży (używane, jeśli nie zostało zdefiniowane w ustawieniach słownika VAT) -ACCOUNTING_VAT_BUY_ACCOUNT=Konto księgowe domyślnie dla podatku VAT od zakupów (używane, jeśli nie zostało zdefiniowane w ustawieniach słownika VAT) -ACCOUNTING_VAT_PAY_ACCOUNT=Konto księgowe domyślnie do płacenia podatku VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Konto księgowe używane dla stron trzecich klienta +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedykowane konto księgowe zdefiniowane na karcie osoby trzeciej będzie używane tylko do księgowania w Podedgera. Ta będzie używana dla Księgi Głównej i jako domyślna wartość księgowania Podrzędnego, jeśli dedykowane konto księgowe klienta na stronie trzeciej nie jest zdefiniowane. -ACCOUNTING_ACCOUNT_SUPPLIER=Konto księgowe używane dla stron trzecich dostawcy +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedykowane konto księgowe zdefiniowane na karcie osoby trzeciej będzie używane tylko do księgowania w Podedgera. Ta wartość będzie używana dla Księgi Głównej i jako domyślna wartość księgowania Księgi Podrzędnej, jeśli nie zdefiniowano dedykowanego konta księgowego dostawcy na stronie trzeciej. ConfirmCloneTax=Potwierdź klon podatku socjalnego / podatkowego ConfirmCloneVAT=Potwierdź klon deklaracji VAT @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/pl_PL/contracts.lang b/htdocs/langs/pl_PL/contracts.lang index b2586f8d805..7d1d339a4c6 100644 --- a/htdocs/langs/pl_PL/contracts.lang +++ b/htdocs/langs/pl_PL/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Umowy/Subskrypcje ContractsAndLine=Kontrakty i pozycje kontraktów Contract=Kontrakt ContractLine=Pozycja kontraktu +ContractLines=Contract lines Closing=Zamknięte NoContracts=Brak kontraktów MenuServices=Usługi @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Czy na pewno chcesz usunąć tę linię umowy? MoveToAnotherContract=Przenieś usługi do innego kontraktu. ConfirmMoveToAnotherContract=Wybrałem nowy kontrakt docelowy i potwierdzam chęć przesunięcia tego serwicu do tego kontaktu. ConfirmMoveToAnotherContractQuestion=Wybierz, w której istniejącej umowie (tej samej strony trzeciej) chcesz przenieść tę usługę? -PaymentRenewContractId=Odnowienie umowy linii (liczba %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Data ważności NoExpiredServices=Bark wygasłych aktywnych usług ListOfServicesToExpireWithDuration=Lista usług wygasających w ciągu %s dni @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Podpisanie umowy, kontakt z klientem HideClosedServiceByDefault=Domyślnie ukryj zamknięte usługi ShowClosedServices=Pokaż usługi zamknięte HideClosedServices=Ukryj zamknięte usługi +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/pl_PL/cron.lang b/htdocs/langs/pl_PL/cron.lang index bf21fca7c08..f9445b554e1 100644 --- a/htdocs/langs/pl_PL/cron.lang +++ b/htdocs/langs/pl_PL/cron.lang @@ -26,7 +26,7 @@ CronCommand=Komenda CronList=Zaplanowane zadania CronDelete=Usuwanie zaplanowanych zadań CronConfirmDelete=Czy jesteś pewien, że chcesz usunąć te zaplanowane zadania? -CronExecute=Uruchom zaplanowane zadania +CronExecute=Launch now CronConfirmExecute=Jesteś pewien, że chcesz wykonać te zaplanowane zadania teraz? CronInfo=Moduł zaplanowanych zadań umożliwia planowanie zadań w celu ich automatycznego wykonania. Zadania można również uruchamiać ręcznie. CronTask=Zadanie @@ -58,7 +58,7 @@ CronNote=Komentarz CronFieldMandatory=Pole %s jest obowiązkowe CronErrEndDateStartDt=Data zakończenia nie może być wcześniejsza niż data rozpoczęcia StatusAtInstall=Stan w momencie instalacji modułu -CronStatusActiveBtn=Harmonogram +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Wyłączone CronTaskInactive=To zadanie jest wyłączone (nie zaplanowano) CronId=ID @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Przejdź do menu " Strona główna JobDisabled=Zadanie wyłączone MakeLocalDatabaseDumpShort=Backup lokalnej bazy danych MakeLocalDatabaseDump=Utwórz zrzut lokalnej bazy danych. Parametry to: kompresja („gz” lub „bz” lub „none”), typ kopii zapasowej („mysql”, „pgsql”, „auto”), 1, „auto” lub nazwa pliku do zbudowania, liczba plików kopii zapasowych do zachowania +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Uwaga, ze względu na wydajność, niezależnie od następnej daty wykonania włączonych zadań, Twoje zadania mogą zostać opóźnione maksymalnie o %s godzin, zanim zostaną uruchomione. DATAPOLICYJob=Narzędzie do czyszczenia danych i anonimizator JobXMustBeEnabled=Zadanie %s musi być włączone +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Ostatnio wykonane zaplanowane zadanie NextScheduledJobExecute=Następne zaplanowane zadanie do wykonania NumberScheduledJobError=Liczba błędnie zaplanowanych zadań +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/pl_PL/datapolicy.lang b/htdocs/langs/pl_PL/datapolicy.lang new file mode 100644 index 00000000000..70391f91d1e --- /dev/null +++ b/htdocs/langs/pl_PL/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Klient +DATAPOLICY_TIERS_PROSPECT = Widok +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dostawca +DATAPOLICY_CONTACT_CLIENT = Klient +DATAPOLICY_CONTACT_PROSPECT = Widok +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dostawca +DATAPOLICY_ADHERENT = Członek +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/pl_PL/dict.lang b/htdocs/langs/pl_PL/dict.lang index 742b0215665..eff39d5615a 100644 --- a/htdocs/langs/pl_PL/dict.lang +++ b/htdocs/langs/pl_PL/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holandia CountryHU=Węgry CountryRU=Rosja CountrySE=Szwecja -CountryCI=Wybrzeże kości słoniowej +CountryCI=Wybrzeże Kości Słoniowej CountrySN=Senegal CountryAR=Argentyna CountryCM=Kamerun @@ -116,7 +116,7 @@ CountryHM=Wyspa Heard i McDonalda CountryVA=Stolica Apostolska (Państwo Watykańskie) CountryHN=Honduras CountryHK=Hong Kong -CountryIS=Iceland +CountryIS=Islandia CountryIN=Indie CountryID=Indonezja CountryIR=Iran @@ -131,7 +131,7 @@ CountryKI=Kiribati CountryKP=Korea Północna CountryKR=Korea Południowa CountryKW=Kuwejt -CountryKG=Kyrgyzstan +CountryKG=Kirgistan CountryLA=Laotański CountryLV=Łotwa CountryLB=Liban @@ -160,7 +160,7 @@ CountryMD=Mołdawia CountryMN=Mongolia CountryMS=Montserrat CountryMZ=Mozambik -CountryMM=Myanmar (Burma) +CountryMM=Myanmar (Birma) CountryNA=Namibia CountryNR=Nauru CountryNP=Nepal @@ -223,7 +223,7 @@ CountryTO=Tonga CountryTT=Trynidad i Tobago CountryTR=Turcja CountryTM=Turkmenistan -CountryTC=Turks and Caicos Islands +CountryTC=Wyspy Turks i Caicos CountryTV=Tuvalu CountryUG=Uganda CountryUA=Ukraina @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Pani +CivilityMMEShort=Pani CivilityMR=Pan +CivilityMRShort=Pan CivilityMLE=Pani CivilityMTRE=Mistrz CivilityDR=Lekarz @@ -277,7 +279,7 @@ CurrencySingMGA=Ariary CurrencyMUR=Mauritius rupii CurrencySingMUR=rupia Mauritius CurrencyNOK=Koron norweskich -CurrencySingNOK=Norwegian kronas +CurrencySingNOK=Korony norweskie CurrencyTND=TND CurrencySingTND=Dinar tunezyjski CurrencyUSD=US Dollar @@ -290,7 +292,7 @@ CurrencyXOF=Franków CFA BCEAO CurrencySingXOF=Frank CFA BCEAO CurrencyXPF=Franków CFP CurrencySingXPF=Frank CFP -CurrencyCentEUR=cents +CurrencyCentEUR=centów CurrencyCentSingEUR=cent CurrencyCentINR=Paisa CurrencyCentSingINR=Paise @@ -307,7 +309,7 @@ DemandReasonTypeSRC_WOM=Word of mouth DemandReasonTypeSRC_PARTNER=Partner DemandReasonTypeSRC_EMPLOYEE=Pracownik DemandReasonTypeSRC_SPONSORING=Sponsorowanie -DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer +DemandReasonTypeSRC_SRC_CUSTOMER=Przychodzący kontakt klienta #### Paper formats #### PaperFormatEU4A0=Format 4A0 PaperFormatEU2A0=Format 2A0 @@ -330,8 +332,8 @@ PaperFormatCAP5=Format P5 Kanada PaperFormatCAP6=Format P6 Kanada #### Expense report categories #### ExpAutoCat=Samochód -ExpCycloCat=Moped -ExpMotoCat=Motorbike +ExpCycloCat=Motorower +ExpMotoCat=Motocykl ExpAuto3CV=3 CV ExpAuto4CV=4 CV ExpAuto5CV=5 CV @@ -342,18 +344,18 @@ ExpAuto9CV=9 CV ExpAuto10CV=10 CV ExpAuto11CV=11 CV ExpAuto12CV=12 CV -ExpAuto3PCV=3 CV and more -ExpAuto4PCV=4 CV and more -ExpAuto5PCV=5 CV and more -ExpAuto6PCV=6 CV and more -ExpAuto7PCV=7 CV and more -ExpAuto8PCV=8 CV and more -ExpAuto9PCV=9 CV and more -ExpAuto10PCV=10 CV and more -ExpAuto11PCV=11 CV and more -ExpAuto12PCV=12 CV and more -ExpAuto13PCV=13 CV and more -ExpCyclo=Capacity lower to 50cm3 -ExpMoto12CV=Motorbike 1 or 2 CV -ExpMoto345CV=Motorbike 3, 4 or 5 CV -ExpMoto5PCV=Motorbike 5 CV and more +ExpAuto3PCV=3 CV i więcej +ExpAuto4PCV=4 CV i więcej +ExpAuto5PCV=5 CV i więcej +ExpAuto6PCV=6 CV i więcej +ExpAuto7PCV=7 CV i więcej +ExpAuto8PCV=8 CV i więcej +ExpAuto9PCV=9 CV i więcej +ExpAuto10PCV=10 CV i więcej +ExpAuto11PCV=11 CV i więcej +ExpAuto12PCV=12 CV i więcej +ExpAuto13PCV=13 CV i więcej +ExpCyclo=Pojemność mniejsza do 50 cm3 +ExpMoto12CV=Motocykl 1 lub 2 CV +ExpMoto345CV=Motocykl 3, 4 lub 5 CV +ExpMoto5PCV=Motocykl 5 CV i więcej diff --git a/htdocs/langs/pl_PL/ecm.lang b/htdocs/langs/pl_PL/ecm.lang index d71fe6801cc..c480d1b3372 100644 --- a/htdocs/langs/pl_PL/ecm.lang +++ b/htdocs/langs/pl_PL/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Katalog manualny ECMSectionAuto=Katalog automatyczny ECMSectionsManual=Drzewo manualne ECMSectionsAuto=Drzewo automatyczne +ECMSectionsMedias=Medias tree ECMSections=Katalogi ECMRoot=ECM Root ECMNewSection=Nowy katalog @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Liczba plików w podkatalogach ECMCreationUser=Kreator ECMArea=Obszar DMS / ECM ECMAreaDesc=Obszar DMS / ECM (system zarządzania dokumentami / elektroniczne zarządzanie treścią) umożliwia szybkie zapisywanie, udostępnianie i wyszukiwanie wszelkiego rodzaju dokumentów w Dolibarr. -ECMAreaDesc2=* Automatyczne katalogi wypelniane sa automatycznie podczas dodawania dokumentów z karty elementu
    * Manualne katalogi mogą być używane do zapisywania dokumentów nie powiązanych z żadnym konkretnym elementem. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Katalog %s został usunięty. ECMSectionWasCreated=Utworzono katalog %s . ECMSearchByKeywords=Wyszukiwanie wg słów kluczowych diff --git a/htdocs/langs/pl_PL/errors.lang b/htdocs/langs/pl_PL/errors.lang index 2022a84943f..097a55f912f 100644 --- a/htdocs/langs/pl_PL/errors.lang +++ b/htdocs/langs/pl_PL/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=E-mail %s wydaje się nieprawidłowy (nie odnaleziono prawidło ErrorBadUrl=Adres URL %s jest nieprawidłowy ErrorBadValueForParamNotAString=Zła wartość parametru. Zazwyczaj dołącza się, gdy brakuje tłumaczenia. ErrorRefAlreadyExists=Odniesienie %s już istnieje. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Zaloguj %s już istnieje. ErrorGroupAlreadyExists=Grupa %s już istnieje. ErrorEmailAlreadyExists=E-mail %s już istnieje. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Istnieje już inny plik o nazwie %s . ErrorPartialFile=Plik nieodebrany w całości przez serwer. ErrorNoTmpDir=Tymczasowy directy %s nie istnieje. ErrorUploadBlockedByAddon=Prześlij zablokowane / PHP wtyczki Apache. -ErrorFileSizeTooLarge=Rozmiar pliku jest zbyt duży. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Pole %s jest za długie. ErrorSizeTooLongForIntType=Rozmiar zbyt długi dal typu int (max %s cyfr) ErrorSizeTooLongForVarcharType=Za dużo znaków dla tego typu (maksymalnie %s znaków) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=JavaScript nie może być wyłączony aby korzysta ErrorPasswordsMustMatch=Oba hasła muszą się zgadzać ErrorContactEMail=Wystąpił błąd techniczny. Skontaktuj się z administratorem pod następującym adresem e-mail %s i podaj w wiadomości kod błędu %s lub dodaj kopię ekranową tej strony. ErrorWrongValueForField=Pole %s : ' %s ' nie jest zgodne z regułą wyrażenia regularnego %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Pole %s : ' %s ' nie jest wartością znajdującą się w polu %s z %s ErrorFieldRefNotIn=Pole %s : ' %s ' nie jest
    %s
    istniejącym ref ErrorsOnXLines=Znaleziono błędy %s @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=Najpierw musisz ustawić swój plan kon ErrorFailedToFindEmailTemplate=Nie udało się znaleźć szablonu o nazwie kodowej %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=Właściciel użytkownika jest wymagany -ErrorActionCommBadType=Wybrany typ zdarzenia (id: %n, kod: %s) nie istnieje w słowniku typów zdarzeń +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Sprawdzanie wersji nie powiodło się ErrorWrongFileName=Nazwa pliku nie może zawierać __COŚ__ ErrorNotInDictionaryPaymentConditions=Nie w Słowniku terminów płatności, zmień. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Twój parametr PHP upload_max_filesize (%s) jest wyższy niż parametr PHP post_max_size (%s). To nie jest spójna konfiguracja. WarningPasswordSetWithNoAccount=Hasło zostało ustawione dla tego użytkownika. Jednakże nie Konto użytkownika zostało utworzone. Więc to hasło jest przechowywane, ale nie mogą być używane do logowania do Dolibarr. Może być stosowany przez zewnętrzny moduł / interfejsu, ale jeśli nie trzeba definiować dowolną logowania ani hasła do członka, można wyłączyć opcję "Zarządzaj login dla każdego członka" od konfiguracji modułu użytkownika. Jeśli potrzebujesz zarządzać logowanie, ale nie wymagają hasła, możesz zachować to pole puste, aby uniknąć tego ostrzeżenia. Uwaga: E może być również stosowany jako login, jeśli element jest połączony do użytkownika. -WarningMandatorySetupNotComplete=Kliknij tutaj, aby ustawić wymagane parametry +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Kliknij tutaj, aby włączyć swoje moduły i aplikacje WarningSafeModeOnCheckExecDir=Uwaga, opcja safe_mode w PHP jest więc polecenia muszą być przechowywane wewnątrz katalogu safe_mode_exec_dir parametrów deklarowanych przez php. WarningBookmarkAlreadyExists=Zakładka z tego tytułu lub ten cel (URL) już istnieje. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Ostrzeżenie, nie możesz bezpośrednio utworzyć konta WarningAvailableOnlyForHTTPSServers=Dostępne tylko w przypadku korzystania z bezpiecznego połączenia HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Moduł %s nie został włączony. Możesz więc przegapić wiele wydarzeń tutaj. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/pl_PL/eventorganization.lang b/htdocs/langs/pl_PL/eventorganization.lang index 5fc50b7e1cd..c9820d7f586 100644 --- a/htdocs/langs/pl_PL/eventorganization.lang +++ b/htdocs/langs/pl_PL/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Event organization Settings=Ustawienia EventOrganizationSetupPage = Strona konfiguracji imprezy organizacyjnej EVENTORGANIZATION_TASK_LABEL = Etykiety zadań automatycznie tworzonych po zatwierdzeniu projektu -EVENTORGANIZATION_TASK_LABELTooltip = Podczas walidacji zorganizowanego wydarzenia niektóre zadania mogą być tworzone automatycznie w projekcie

    Na przykład:
    Wyślij wezwanie na konferencję
    Wyślij wezwanie do stoiska
    Odbierz wezwanie na konferencję
    Odbierz wezwanie na konferencję
    Odbierz wezwanie do stoiska
    Wyślij prelegentom przypomnienie o imprezie
    Wyślij gospodarzom stoiska przypomnienie o imprezie
    Wyślij uczestnikom przypomnienie o imprezie +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategoria dodawana do kontrahentów, tworzona automatycznie po otrzymaniu sugestii zorganizowania konferencji. EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategoria dodawana do kontrahentów, tworzona automatycznie po otrzymaniu sugestii zorganizowania stoiska. EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Szablon wiadomości e-mail wysyłany po otrzymaniu sugestii zorganizowania konferencji. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Konferencja lub stoisko +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = Konferencja lub stoisko ConferenceOrBoothTab = Konferencja lub stoisko AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Uczestnik konferencji lub stoiska +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = Lista proponowanych konferencji -ListOfSuggestedBooths = Lista sugerowanych stoisk -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Zaproponuj nową konferencję SuggestBooth = Zaproponuj stoisko ViewAndVote = Zobacz i zagłosuj na sugerowane wydarzenia PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = Klucz bezpieczeństwa jest nieprawidłowy lub go brakuje -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Ta konferencja zaczyna się %s i kończy się %s. ConferenceAttendeeFee = Opłata uczestnika konferencji za wydarzenie: '%s' występujące od %s do %s. BoothLocationFee = Lokalizacja stoiska dla wydarzenia: „%s” występujące od %s do %s @@ -129,7 +133,7 @@ LabelOfconference=Etykieta konferencji ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s must be before %s DateMustBeAfterThan=%s must be after %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registration OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -153,7 +158,7 @@ VoteOk = Twój głos został zaakceptowany. AlreadyVoted = Już zagłosowałeś na to wydarzenie. VoteError = Podczas głosowania wystąpił błąd, spróbuj ponownie. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event Attendee = Uczestnik PaymentConferenceAttendee = Opłata za uczestnika konferencji @@ -161,7 +166,9 @@ PaymentBoothLocation = Płatność za miejsce na stoisku DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/pl_PL/externalsite.lang b/htdocs/langs/pl_PL/externalsite.lang deleted file mode 100644 index 1f03b277a8b..00000000000 --- a/htdocs/langs/pl_PL/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Skonfiguruj link do zewnętrznej strony internetowej -ExternalSiteURL=Adres URL witryny zewnętrznej z treścią elementu iframe HTML -ExternalSiteModuleNotComplete=Moduł zewnętrznej strony internetowej nie został skonfigurowany poprawny -ExampleMyMenuEntry=Moje wejścia do menu diff --git a/htdocs/langs/pl_PL/ftp.lang b/htdocs/langs/pl_PL/ftp.lang deleted file mode 100644 index 6142d4b1928..00000000000 --- a/htdocs/langs/pl_PL/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Konfiguracja modułu klienta FTP -NewFTPClient=Konfiguracja nowego połączenia FTP -FTPArea=Obszar FTP -FTPAreaDesc=Ten ekran pokazuje zawartość widoku serwera FTP -SetupOfFTPClientModuleNotComplete=Konfiguracja modułu klienta FTP wydaje się być niekompletna -FTPFeatureNotSupportedByYourPHP=PHP nie obsługuje funkcji FTP -FailedToConnectToFTPServer=Nie udało się połączyć z serwerem FTP (%s serwera, %s port) -FailedToConnectToFTPServerWithCredentials=Nie udało się zalogować do serwera FTP ze zdefiniowanym użytkownikiem/hasłem -FTPFailedToRemoveFile=Nie udało się usunąć pliku %s. -FTPFailedToRemoveDir=Nie udało się usunąć katalogu %s (Sprawdź uprawnienia i czy katalog jest pusty) -FTPPassiveMode=Tryb pasywny -ChooseAFTPEntryIntoMenu=Wybierz pozycję FTP w menu... -FailedToGetFile=Nie można pobrać plików %s diff --git a/htdocs/langs/pl_PL/holiday.lang b/htdocs/langs/pl_PL/holiday.lang index 213cee94d5b..0da14252b46 100644 --- a/htdocs/langs/pl_PL/holiday.lang +++ b/htdocs/langs/pl_PL/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Pozostawiać +Holidays=Leaves +Holiday=Pozostawiać CPTitreMenu=Pozostawiać MenuReportMonth=Miesięczne zestawienie MenuAddCP=Nowy wniosek urlopowy +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Aby wyświetlić tę stronę, musisz włączyć moduł Wyjdź. AddCP=Stwórz wniosek urlopowy DateDebCP=Data rozpoczęcia @@ -56,6 +58,7 @@ ConfirmDeleteCP=Potwierdzić usunięcie tego wniosku urlopowego? ErrorCantDeleteCP=Błąd. Nie masz uprawnień do kasowania tego wniosku urlopowego. CantCreateCP=Nie masz uprawnień do tworzenia wniosku urlopowego. InvalidValidatorCP=Musisz wybrać osobę zatwierdzającą swoją prośbę o urlop. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Musisz wybrać datę rozpoczęcia. NoDateFin=Musisz wybrać datę zakończenia. ErrorDureeCP=Twój wniosek urlopowy nie zawiera dni roboczych. @@ -79,6 +82,8 @@ MotifCP=Powód UserCP=Użytkownik ErrorAddEventToUserCP=Wystąpił błąd podczas dodawania wyjątkowy urlop. AddEventToUserOkCP=Dodanie wyjątkowe prawo zostało zakończone. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Pokaż log zmian LogCP=Dziennik wszystkich aktualizacji dotyczących „Bilansu urlopów” ActionByCP=aktualizowany przez @@ -86,6 +91,13 @@ UserUpdateCP=Zaktualizowano dla PrevSoldeCP=Poprzedni Saldo NewSoldeCP=New Balance alreadyCPexist=Wniosek urlopowy na ten okres czasu został już zrobiony. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupy +users=Użytkownicy +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Początek wniosku o urlop LastDayOfHoliday=Końcowy dzień wniosku o urlop BoxTitleLastLeaveRequests=Ostatnie %s modyfikowanych wniosków urlopowych @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/pl_PL/hrm.lang b/htdocs/langs/pl_PL/hrm.lang index 2ca1781fee0..8330a87bc8c 100644 --- a/htdocs/langs/pl_PL/hrm.lang +++ b/htdocs/langs/pl_PL/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Otwórz kierownictwo CloseEtablishment=Zakończ kierownictwo # Dictionary DictionaryPublicHolidays=Urlop - święta państwowe -DictionaryDepartment=HR - Lisa departamentów +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=Zarządzanie personelem - stanowiska pracy # Module Employees=Zatrudnionych @@ -20,13 +20,14 @@ Employee=Pracownik NewEmployee=Nowy pracownik ListOfEmployees=Lista pracowników HrmSetup=Ustawianie modułu HR -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Zadanie -Jobs=Jobs +JobPosition=Zadanie +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozycja -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang index d80d2337213..24a06369132 100644 --- a/htdocs/langs/pl_PL/install.lang +++ b/htdocs/langs/pl_PL/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Plik konfiguracyjny %s nie jest zapisywalny. Spra ConfFileIsWritable=Plik konfiguracyjny %s ma uprawnienia do zapisu. ConfFileMustBeAFileNotADir=Plik konfiguracyjny %s musi być plikiem, a nie katalogiem. ConfFileReload=Ponowne ładowanie parametrów z pliku konfiguracyjnego. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP obsługuje zmienne POST i GET. PHPSupportPOSTGETKo=Możliwe, że Twoja konfiguracja PHP nie obsługuje zmiennych POST i / lub GET. Sprawdź parametr variable_order w php.ini. PHPSupportSessions=PHP obsługuje sesje. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Możliwe, że wprowadzono nieprawidłową wartość ErrorFailedToCreateDatabase=Utworzenie bazy danych '%s' nie powiodło się. ErrorFailedToConnectToDatabase=Połączenie z bazą danych '%s' nie powiodło się. ErrorDatabaseVersionTooLow=Wersja (%s) bazy danych jest zbyt stara. Wymagana jest wersja %s lub wyższa. -ErrorPHPVersionTooLow=Wersja PHP zbyt stara. Wymagana wersja to przynajmniej %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Połączenie z serwerem powiodło się, ale nie znaleziono bazy danych „%s”. ErrorDatabaseAlreadyExists=Baza danych '%s' już istnieje. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Jeśli baza danych nie istnieje, wróć i zaznacz opcję „Utwórz bazę danych”. IfDatabaseExistsGoBackAndCheckCreate=Jeśli baza danych istnieje, w poprzednim kroku odznacz opcję "Utwórz bazę danych". WarningBrowserTooOld=Wersja przeglądarki jest zbyt stara. Zdecydowanie zalecamy uaktualnienie przeglądarki do najnowszej wersji Firefox, Chrome lub Opera. diff --git a/htdocs/langs/pl_PL/knowledgemanagement.lang b/htdocs/langs/pl_PL/knowledgemanagement.lang index 151ac57072a..e2cd356bce5 100644 --- a/htdocs/langs/pl_PL/knowledgemanagement.lang +++ b/htdocs/langs/pl_PL/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Artykuły KnowledgeRecord = Artykuł KnowledgeRecordExtraFields = Extrapola dla artykułu GroupOfTicket=Grupa biletów -YouCanLinkArticleToATicketCategory=Możesz powiązać artykuł z grupą biletów (aby artykuł był sugerowany podczas kwalifikacji nowych biletów) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Suggested for tickets when group is SetObsolete=Set as obsolete diff --git a/htdocs/langs/pl_PL/loan.lang b/htdocs/langs/pl_PL/loan.lang index d87c19cb82c..26406201923 100644 --- a/htdocs/langs/pl_PL/loan.lang +++ b/htdocs/langs/pl_PL/loan.lang @@ -23,12 +23,12 @@ AddLoan=Utwórz pożyczkę FinancialCommitment=Zobowiązanie finansowe InterestAmount=Odsetki CapitalRemain=Pozostały kapitał -TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started -CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule +TermPaidAllreadyPaid = Ten termin jest już opłacony +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started +CantModifyInterestIfScheduleIsUsed = Nie możesz modyfikować odsetek, jeśli używasz harmonogramu # Admin ConfigLoan=Konfiguracja modułu kredytu -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Domyśly kapitał konta rachunkowego -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Domyślnie odsetki od rachunku księgowego -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Domyślnie ubezpieczenie rachunku księgowego +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edytuj zobowiązanie finansowe diff --git a/htdocs/langs/pl_PL/mailmanspip.lang b/htdocs/langs/pl_PL/mailmanspip.lang index 93c10e6064d..e7c49bc2d1d 100644 --- a/htdocs/langs/pl_PL/mailmanspip.lang +++ b/htdocs/langs/pl_PL/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Test subskrypcji został pomyślnie wykonany MailmanDeletionSuccess=Test wypisy z subskrypcji został pomyślnie wykonany SynchroMailManEnabled=Aktualizacja Mailman zostanie przeprowadzona SynchroSpipEnabled=Aktualizacja Spip zostanie wykonana -DescADHERENT_MAILMAN_ADMINPW=Hasło administratora Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Hasło administratora Mailman DescADHERENT_MAILMAN_URL=Link do subskrypcji Mailman DescADHERENT_MAILMAN_UNSUB_URL=Link do wypisy z subskrypcji Mailman DescADHERENT_MAILMAN_LISTS=Lista (y) do automatycznego zapisu nowych członków (oddzielone przecinkiem) diff --git a/htdocs/langs/pl_PL/mails.lang b/htdocs/langs/pl_PL/mails.lang index 1b64f5ae23c..f29814c7c96 100644 --- a/htdocs/langs/pl_PL/mails.lang +++ b/htdocs/langs/pl_PL/mails.lang @@ -7,10 +7,10 @@ MailCard=Karta Mailingu MailRecipients=Odbiorcy MailRecipient=Odbiorca MailTitle=Opis -MailFrom=Nadawca +MailFrom=Z MailErrorsTo=Błędów do MailReply=Odpowiedz do -MailTo=Odbiorca(y) +MailTo=Do MailToUsers=Do użytkownika (ów) MailCC=Kopiuj do MailToCCUsers=Kopiuj dla użytkowników @@ -178,3 +178,4 @@ IsAnAnswer=To odpowiedź na pierwszą wiadomość e-mail RecordCreatedByEmailCollector=Rekord utworzony przez moduł zbierający wiadomości e-mail %s z wiadomości e-mail %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Puste, ale obowiązkowe +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 88b8bc002a5..5599bd29939 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Szablon niedostępny dla tego typu wiadomości email AvailableVariables=Dostępne zmienne substytucji NoTranslation=Brak tłumaczenia Translation=Tłumaczenie +Translations=Translations CurrentTimeZone=Strefa czasowa PHP (server) EmptySearchString=Wprowadź niepuste kryteria wyszukiwania EnterADateCriteria=Wprowadź kryteria daty @@ -199,6 +206,7 @@ Valid=Aktualny Approve=Zatwierdź Disapprove=Potępiać ReOpen=Otwórz ponownie +OpenVerb=Otwarte Upload=Wczytaj ToLink=Łącze Select=Wybierz @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Niezdefiniowano grup użytkowników Password=Hasło -PasswordRetype=Powtórz hasło +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Należy pamiętać, że wiele funkcji/modułów jest wyłączonych w tej demonstracji. Name=Nazwa NameSlashCompany=Nazwa / Firma @@ -244,6 +252,7 @@ Designation=Opis DescriptionOfLine=Opis pozycji DateOfLine=Data linii DurationOfLine=Czas trwania linii +ParentLine=Parent line ID Model=Szablon dokumentu DefaultModel=Domyślny szablon dokumentu Action=Działanie @@ -344,7 +353,7 @@ KiloBytes=Kilobajtów MegaBytes=MB GigaBytes=GB TeraBytes=Terabajtów -UserAuthor=Utworzony przez +UserAuthor=Created by UserModif=Poprawiony przez b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Wydarzenia dla tego kontaktu/adresu ActionsOnContract=Wydarzenia związane z tym kontraktem ActionsOnMember=Informacje o wydarzeniach dla tego uzytkownika ActionsOnProduct=Wydarzenia dotyczące tego produktu +ActionsOnAsset=Events for this fixed asset NActionsLate=%s późno ToDo=Do zrobienia Completed=Zakończony @@ -517,6 +527,7 @@ or=lub Other=Inny Others=Inne OtherInformations=Inne informacje +Workflow=Workflow Quantity=Ilość Qty=Ilość ChangedBy=Zmieniona przez @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Dołączone pliki i dokumenty JoinMainDoc=Dołącz główny dokument +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=RRRR-MM DateFormatYYYYMMDD=RRRR-MM-DD DateFormatYYYYMMDDHHMM=RRRR-MM-DD GG: SS @@ -709,6 +721,7 @@ FeatureDisabled=Funkcja wyłączona MoveBox=Przenieś widget Offered=Oferowany NotEnoughPermissions=Nie masz uprawnień do tego działania +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Nazwa sesji Method=Metoda Receive=Odbiór @@ -798,6 +811,7 @@ URLPhoto=Url ze zdjęciem / logo SetLinkToAnotherThirdParty=Link do innego kontrahenta LinkTo=Link do LinkToProposal=Link do oferty +LinkToExpedition= Link to expedition LinkToOrder=Link do zamówienia LinkToInvoice=Link do faktury LinkToTemplateInvoice=Link do szablonu faktury @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Prywatny link do pobrania PrivateDownloadLinkDesc=Musisz być zalogowany i potrzebujesz uprawnień, aby wyświetlić lub pobrać plik Download=Pobierz DownloadDocument=Pobierz dokument +DownloadSignedDocument=Download signed document ActualizeCurrency=Aktualizuj kurs walut Fiscalyear=Rok podatkowy ModuleBuilder=Kreator modułów i aplikacji @@ -1041,6 +1056,7 @@ SearchIntoContracts=Kontrakty SearchIntoCustomerShipments=Wysyłki klienta SearchIntoExpenseReports=Zestawienia wydatków SearchIntoLeaves=Pozostawiać +SearchIntoKM=Baza wiedzy SearchIntoTickets=Bilety SearchIntoCustomerPayments=Płatności klientów SearchIntoVendorPayments=Płatności dostawcy @@ -1132,15 +1148,29 @@ EventReminder=Przypomnienie o wydarzeniu UpdateForAllLines=Aktualizacja dla wszystkich linii OnHold=Wstrzymany Civility=Grzeczność -AffectTag=Wpływ na Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Utwórz użytkownika zewnętrznego -ConfirmAffectTag=Wpływ tagu zbiorczego -ConfirmAffectTagQuestion=Czy na pewno chcesz wpłynąć na tagi %s wybranych rekordów? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Nie znaleziono typu tagu dla typu rekordów +Rate=Stawka +SupervisorNotFound=Supervisor not found CopiedToClipboard=Skopiowane do schowka InformationOnLinkToContract=Kwota ta to tylko suma wszystkich pozycji zamówienia. Nie bierze się pod uwagę żadnego pojęcia czasu. ConfirmCancel=Czy na pewno chcesz zrezygnować EmailMsgID=E-mail MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Zakończ +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Wewnętrzny użytkownik +ExternalUser=Zewnętrzny użytkownik diff --git a/htdocs/langs/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang index 6ca91abfedd..4cef37e44f2 100644 --- a/htdocs/langs/pl_PL/members.lang +++ b/htdocs/langs/pl_PL/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Inny członek (nazwa: %s, zalo ErrorUserPermissionAllowsToLinksToItselfOnly=Ze względów bezpieczeństwa, musisz być przyznane uprawnienia do edycji wszystkich użytkowników, aby można było powiązać członka do użytkownika, który nie jest twoje. SetLinkToUser=Link do użytkownika Dolibarr SetLinkToThirdParty=Link do Dolibarr trzeciej +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Lista członków MembersListToValid=Lista szkiców członków (do zatwierdzenia) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ID członka +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Nowy członek MemberType=Typ członka MemberTypeId=ID typu członka @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Nie można usunąć typu członka NewSubscription=Nowe Wkład NewSubscriptionDesc=Ta forma pozwala na nagrywanie abonament jako nowy członek fundacji. Jeśli chcesz odnowić subskrypcję (jeśli jest już członkiem), prosimy o kontakt z Rady Fundacji zamiast e-mailem %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Czas trwania +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Późno SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Treść Twojej karty członka # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Chcemy Cię poinformować, że otrzymaliśmy Twoją prośbę o członkostwo.

    ThisIsContentOfYourMembershipWasValidated=Chcemy Cię poinformować, że Twoje członkostwo zostało zweryfikowane przy użyciu następujących informacji:

    -ThisIsContentOfYourSubscriptionWasRecorded=Chcemy Cię poinformować, że Twoja nowa subskrypcja została nagrana.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Chcemy Cię poinformować, że Twoja subskrypcja wkrótce wygaśnie lub już wygasła (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Mamy nadzieję, że ją odnowisz.

    ThisIsContentOfYourCard=To jest podsumowanie informacji, które posiadamy o Tobie. Skontaktuj się z nami, jeśli coś jest nie tak.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Temat powiadomienia e-mail otrzymanego w przypadku automatycznego wpisu gościa @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Obrót (dla firmy) lub Budżet (na fundamencie) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Przejdź na zintegrowanej stronie płatności online +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Przez naturę MembersStatisticsByProperties=Statystyki członków według natury VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s utworzono użytkowników zewnętrznych ForceMemberNature=Charakter członka siły (osoba fizyczna lub korporacja) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/pl_PL/modulebuilder.lang b/htdocs/langs/pl_PL/modulebuilder.lang index 05d58189a2b..588cc95c622 100644 --- a/htdocs/langs/pl_PL/modulebuilder.lang +++ b/htdocs/langs/pl_PL/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Ścieżka, w której moduły są generowane/edytowane (pierwszy katalog dla modułów zewnętrznych zdefiniowany w %s): %s ModuleBuilderDesc3=Znaleziono wygenerowane/edytowalne moduły: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Moduł jest wykrywany jako „edytowalny”, gdy plik %s ? Spowoduje to zmianę kodu w klasie PHP, ale także usunie kolumnę z tabeli definicji obiektu. NotNull=NOT NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Jest miarą DirScanned=Katalog przeskanowany NoTrigger=Bez wyzwalacza NoWidget=Brak widżetu -GoToApiExplorer=Eksplorator API +ApiExplorer=Eksplorator API ListOfMenusEntries=Lista pozycji menu ListOfDictionariesEntries=Lista haseł w słownikach ListOfPermissionsDefined=Lista zdefiniowanych uprawnień SeeExamples=Zobacz przykłady tutaj -EnabledDesc=Warunek, aby to pole było aktywne (Przykłady: 1 lub $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Czy pole jest widoczne? (Przykłady: 0 = niewidoczne, 1 = widoczne na liście i utwórz / zaktualizuj / wyświetl formularze, 2 = widoczne tylko na liście, 3 = widoczne tylko w formularzu tworzenia / aktualizacji / przeglądania (nie na liście), 4 = widoczne na liście i tylko aktualizuj / wyświetl formularz (nie twórz), 5 = widoczne tylko w formularzu widoku końca listy (nie tworzy, nie aktualizuje).

    Użycie wartości ujemnej oznacza, że pole nie jest domyślnie wyświetlane na liście, ale można je wybrać do przeglądania).

    Może to być wyrażenie, na przykład:
    preg_match ('/ public /', $ _SERVER ['PHP_SELF'])? 0: 1
    ($ user- 1 holiday? -DisplayOnPdfDesc=Wyświetlając to pole w kompatybilnych dokumentach PDF możesz zarządzać jego pozycją za pomocą pola "Pozycja".
    Obecnie znane kompatybilne modele PDF to: eratosthene (zamówienie), espadon (dostawa), sponge (faktury), cyan (propozycja/oferta), cornas (zamówienie dostawcy)

    Dla dokumentu:
    0 = nie wyświetlaj
    1 = wyświetlaj
    2 = wyświetlaj tylko, gdy nie puste

    Dla linii dokumentu:
    0 = nie wyświetlaj
    1 = wyświetlaj w kolumnie
    3 = wyświetlaj w linii kolumny opisowej po opisie
    4 = wyświetlaj w kolumnie opisowej po opisie, tylko gdy nie pusty -DisplayOnPdf=Wyświetl na dokumencie PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Czy wartość pola można skumulować, aby uzyskać sumę na liście? (Przykłady: 1 lub 0) SearchAllDesc=Czy to pole jest używane do wyszukiwania za pomocą narzędzia szybkiego wyszukiwania? (Przykłady: 1 lub 0) SpecDefDesc=Wpisz tutaj całą dokumentację, którą chcesz dostarczyć wraz z modułem, która nie jest jeszcze zdefiniowana w innych zakładkach. Możesz użyć .md lub lepszej, bogatej składni .asciidoc. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Użyj określonego adresu URL edytora UseSpecificFamily = Użyj określonej rodziny UseSpecificAuthor = Użyj konkretnego autora UseSpecificVersion = Użyj określonej wersji początkowej -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Jeśli to zaznaczysz, zostanie wygenerowany kod w celu dodania pola „Generuj dokument” do rekordu. -ShowOnCombobox=Pokaż wartość w combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Klucz do podpowiedzi CSSClass=CSS do formularza edycji/tworzenia CSSViewClass=CSS do formularza odczytu CSSListClass=CSS dla listy NotEditable=Nie można edytować ForeignKey=Klucz obcy -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Konwerter Ascii na HTML AsciiToPdfConverter=Konwerter ASCII na PDF TableNotEmptyDropCanceled=Tabela nie jest pusta. Upuszczenie zostało anulowane. ModuleBuilderNotAllowed=Kreator modułów jest dostępny, ale nie jest dozwolony dla użytkownika. ImportExportProfiles=Importuj i eksportuj profile -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/pl_PL/mrp.lang b/htdocs/langs/pl_PL/mrp.lang index dec735baedb..d222ceac8e1 100644 --- a/htdocs/langs/pl_PL/mrp.lang +++ b/htdocs/langs/pl_PL/mrp.lang @@ -11,8 +11,8 @@ Bom=Zestawienia materiałów BillOfMaterials=Zestawienie materiałów BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Konfiguracja BOM modułu -ListOfBOMs=Lista zestawień materiałowych - BOM -ListOfManufacturingOrders=Lista zleceń produkcyjnych +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Zamówienia produkcyjne NewBOM=Nowa lista materiałów ProductBOMHelp=Produkt do utworzenia (lub demontażu) za pomocą tego BOM.
    Uwaga: Produkty z właściwością „Rodzaj produktu” = „Surowiec” nie są widoczne na tej liście. BOMsNumberingModules=Szablony numeracji BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Czy na pewno chcesz sklonować zestawienie komponent ConfirmCloneMo=Czy na pewno chcesz sklonować zamówienie produkcyjne %s? ManufacturingEfficiency=Wydajność produkcji ConsumptionEfficiency=Efektywność zużycia +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Wartość 0,95 oznacza średnio 5%% straty wytworzonego produktu DeleteBillOfMaterials=Usuń listę materiałów @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=Dla ilości do demontażu %s ConfirmValidateMo=Czy na pewno chcesz zweryfikować to zamówienie produkcyjne? ConfirmProductionDesc=Klikając „%s”, potwierdzisz zużycie i / lub produkcję dla ustalonych ilości. Spowoduje to również zaktualizowanie zapasów i rejestrowanie ruchów zapasów. ProductionForRef=Produkcja %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Zamykaj automatycznie zlecenie produkcyjne, jeśli osiągnięte zostaną ilości do spożycia i produkcji NoStockChangeOnServices=Brak zmian w magazynie usług ProductQtyToConsumeByMO=Ilość produktu do spożycia w ramach otwartego zamówienia @@ -80,6 +83,7 @@ ProductsToProduce=Produkty do produkcji UnitCost=Cena jednostkowa TotalCost=Całkowity koszt BOMTotalCost=Koszt wytworzenia tego BOM na podstawie kosztu każdej ilości i produktu do konsumpcji (użyj ceny kosztu, jeśli została zdefiniowana, w innym przypadku średniej ceny ważonej, jeśli została zdefiniowana, w przeciwnym razie najlepszej ceny zakupu) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Aby zamknąć zlecenie produkcyjne, musisz najpierw rozpocząć produkcję (patrz zakładka „%s”). Ale możesz to anulować. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Zestaw nie może być użyty w BOM lub MO Workstation=Stacja robocza @@ -107,3 +111,10 @@ THMEstimatedHelp=Stawka ta umożliwia zdefiniowanie prognozowanego kosztu towaru BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/pl_PL/oauth.lang b/htdocs/langs/pl_PL/oauth.lang index 10c5934d0b6..3a22a99fe45 100644 --- a/htdocs/langs/pl_PL/oauth.lang +++ b/htdocs/langs/pl_PL/oauth.lang @@ -1,32 +1,36 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=OAuth Configuration -OAuthServices=OAuth Services +ConfigOAuth=Konfiguracja OAuth +OAuthServices=Usługi OAuth ManualTokenGeneration=Ręczne generowanie tokena -TokenManager=Token Manager +TokenManager=Menedżer tokenów IsTokenGenerated=Czy wygenerowano token? NoAccessToken=Brak tokenu zapisanego w lokalnej bazie danych HasAccessToken=Token wygenerowano i zapisano w lokalnej bazie danych NewTokenStored=Token odebrany i zapisany -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider +ToCheckDeleteTokenOnProvider=Kliknij tutaj, aby sprawdzić / usunąć autoryzację zapisaną przez dostawcę OAuth %s TokenDeleted=Token usunięto -RequestAccess=Kliknij tutaj w celu wysłania zapotrzebowania/odnowienia dostępu i otrzymania nowego tokena. +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Kliknuj tutaj, aby usunąć token -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Strona do generowania tokena OAuth -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret +UseTheFollowingUrlAsRedirectURI=Podczas tworzenia poświadczeń u dostawcy OAuth użyj następującego adresu URL jako identyfikatora URI przekierowania: +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens +SeePreviousTab=Zobacz poprzednią kartę +OAuthProvider=OAuth provider +OAuthIDSecret=Identyfikator i tajny identyfikator OAuth TOKEN_REFRESH=Reklamowe Odśwież Present TOKEN_EXPIRED=Token wygasł TOKEN_EXPIRE_AT=Token wygaśnie za TOKEN_DELETE=Usuń zachowany token -OAUTH_GOOGLE_NAME=OAuth Google service -OAUTH_GOOGLE_ID=OAuth Google Id +OAUTH_GOOGLE_NAME=Usługa OAuth Google +OAUTH_GOOGLE_ID=Identyfikator Google OAuth OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials -OAUTH_GITHUB_NAME=OAuth GitHub service -OAUTH_GITHUB_ID=OAuth GitHub Id +OAUTH_GITHUB_NAME=Usługa OAuth GitHub +OAUTH_GITHUB_ID=Identyfikator OAuth GitHub OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials -OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test -OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret +OAUTH_STRIPE_TEST_NAME=Test paska OAuth +OAUTH_STRIPE_LIVE_NAME=OAuth Stripe na żywo +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang index e33591cf29a..ef6f974d893 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Zatwierdzono zamówienie zakupu Notify_ORDER_SUPPLIER_REFUSE=Zamówienie zostało odrzucone Notify_PROPAL_VALIDATE=Oferta klienta potwierdzona Notify_PROPAL_CLOSE_SIGNED=Oferta klienta zamknięta i podpisana +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Zamknięta propozycja klienta odrzucona +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Propozycja handlowa wysłana za pośrednictwem wiadomości email Notify_WITHDRAW_TRANSMIT=Wycofanie transmisji Notify_WITHDRAW_CREDIT=Wycofanie kredyt @@ -181,6 +183,7 @@ SizeUnitfoot=stopa SizeUnitpoint=punkt BugTracker=Bug tracker SendNewPasswordDesc=Ten formularz umożliwia zażądanie nowego hasła. Zostanie on wysłany na Twój adres e-mail.
    Zmiana zacznie obowiązywać po kliknięciu linku potwierdzającego w wiadomości e-mail.
    Sprawdź swoją skrzynkę odbiorczą. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Powrót do strony logowania AuthenticationDoesNotAllowSendNewPassword=Uwierzytelnianie w trybie %s.
    W tym trybie Dolibarr nie może znać ani zmienić hasła.
    Skontaktuj się z administratorem systemu, jeśli chcesz zmienić swoje hasło. EnableGDLibraryDesc=Zainstaluj lub włącz bibliotekę GD w instalacji PHP, aby użyć tej opcji. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Faktura %s została zweryfikowana. EMailTextInvoicePayed=Faktura %s została zapłacona. EMailTextProposalValidated=Oferta %s została zweryfikowana. EMailTextProposalClosedSigned=Wniosek %s został zamknięty i podpisany. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Zamówienie %s zostało zweryfikowane. EMailTextOrderApproved=Zamówienie %s zostało zatwierdzone. EMailTextOrderValidatedBy=Zamówienie %s zostało zarejestrowane przez %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zamknij Autofill = Autofill + +# externalsite +ExternalSiteSetup=Skonfiguruj link do zewnętrznej strony internetowej +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Moduł zewnętrznej strony internetowej nie został skonfigurowany poprawny +ExampleMyMenuEntry=Moje wejścia do menu + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Nie udało się usunąć pliku %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Tryb pasywny +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Nie można pobrać plików %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/pl_PL/products.lang b/htdocs/langs/pl_PL/products.lang index 3e830a72f46..a41b3f758ec 100644 --- a/htdocs/langs/pl_PL/products.lang +++ b/htdocs/langs/pl_PL/products.lang @@ -135,16 +135,17 @@ ImportDataset_service_1=Usługi DeleteProductLine=Usuń linię produktu ConfirmDeleteProductLine=Czy na pewno chcesz usunąć tę linię produktu? ProductSpecial=Specjalne -QtyMin=Ilość minimalna +QtyMin=Min. ilość zakupu PriceQtyMin=Cena ilość min. -PriceQtyMinCurrency=Cena (waluta) za tę ilość. (bez rabatu) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=Stawka VAT (dla tego dostawcy / produktu) DiscountQtyMin=Rabat na tę ilość. NoPriceDefinedForThisSupplier=Brak zdefiniowanej ceny / ilości dla tego dostawcy / produktu NoSupplierPriceDefinedForThisProduct=Dla tego produktu nie określono ceny / ilości dostawcy PredefinedItem=Wstępnie zdefiniowany przedmiot PredefinedProductsToSell=Predefiniowany produkt -PredefinedServicesToSell=Usługa predefiniowana +PredefinedServicesToSell=Predefiniowana usługa PredefinedProductsAndServicesToSell=Predefiniowane produkty / usługi do sprzedaży PredefinedProductsToPurchase=Predefiniowane produkty do zakupu PredefinedServicesToPurchase=Predefiniowane usługi do zakupu @@ -221,19 +222,19 @@ unitDM=dm unitCM=cm unitMM=mm unitFT=ft -unitIN=w +unitIN=cal unitM2=Metr kwadratowy unitDM2=dm² unitCM2=cm² unitMM2=mm² unitFT2=ft² -unitIN2=in² +unitIN2=cal² unitM3=Metr sześcienny unitDM3=dm³ unitCM3=cm³ unitMM3=mm³ unitFT3=ft³ -unitIN3=in³ +unitIN3=cal³ unitOZ3=uncja unitgallon=galon ProductCodeModel=Szablon numeru referencyjnego dla produktu @@ -261,7 +262,7 @@ Quarter1=1-szy Kwartał Quarter2=2-i Kwartał Quarter3=3-i Kwartał Quarter4=4-y Kwartał -BarCodePrintsheet=Drukuj kod kreskowy +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Za pomocą tego narzędzia możesz drukować arkusze naklejek z kodami kreskowymi. Wybierz format strony z naklejkami, typ kodu kreskowego i wartość kodu kreskowego, a następnie kliknij przycisk %s . NumberOfStickers=Ilość naklejek do wydrukowania na stronie PrintsheetForOneBarCode=Wydrukuj kilka naklejek dla kodu kreskowego @@ -344,9 +345,9 @@ PossibleValues=Możliwa wartość GoOnMenuToCreateVairants=Przejdź do menu %s - %s, aby przygotować warianty atrybutów (takie jak kolory, rozmiar, ...) UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers ProductSupplierDescription=Opis dostawcy produktu -UseProductSupplierPackaging=Użyj opakowania w cenach dostawcy (przelicz ilości zgodnie z opakowaniem ustawionym na cenie dostawcy podczas dodawania / aktualizowania linii w dokumentach dostawcy) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Opakowanie -PackagingForThisProductDesc=Na zamówienie dostawcy automatycznie zamówisz tę ilość (lub wielokrotność tej ilości). Nie może być mniejsza niż minimalna ilość zakupu +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Ilość linii została przeliczona zgodnie z opakowaniem dostawcy #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Akcja dostępna tylko w wariancie produktu ProductsPricePerCustomer=Ceny produktów na klientów ProductSupplierExtraFields=Dodatkowe atrybuty (ceny dostawców) DeleteLinkedProduct=Usuń produkt podrzędny powiązany z kombinacją -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Średnia ważona ceny PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/pl_PL/projects.lang b/htdocs/langs/pl_PL/projects.lang index 81cdf6e56e2..8aac393a3cd 100644 --- a/htdocs/langs/pl_PL/projects.lang +++ b/htdocs/langs/pl_PL/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Ten widok przedstawia wszystkie projekty i zadania, które może TasksDesc=Ten widok przedstawia wszystkie projekty i zadania (twoje uprawnienia mają dostępu do wglądu we wszystko). AllTaskVisibleButEditIfYouAreAssigned=Wszystkie zadania dla zakwalifikowanych projektów są widoczne, ale możesz wprowadzić czas tylko dla zadania przypisanego do wybranego użytkownika. Przypisz zadanie, jeśli chcesz wprowadzić na nim czas. OnlyYourTaskAreVisible=Widoczne są tylko zadania przypisane do Ciebie. Jeśli potrzebujesz wprowadzić czas w zadaniu a ono nie jest tutaj widoczne, to musisz przypisać to zadanie sobie. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Zadania projektów ProjectCategories=Tagi / kategorie projektów NewProject=Nowy projekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Prowadzi liczbę otwartych projektów wedł OpportunitiesStatusForProjects=Prowadzi liczbę projektów według statusu ShowProject=Pokaż projekt ShowTask=Pokaż zadanie +SetThirdParty=Set third party SetProject=Ustaw projekt +OutOfProject=Out of project NoProject=Żadny projekt niezdefiniowany lub nie jest twoją własnością NbOfProjects=Liczba projektów NbOfTasks=Liczba zadań @@ -122,7 +125,8 @@ ValidateProject=Sprawdź projet ConfirmValidateProject=Czy zatwierdzić ten projekt? CloseAProject=Zamknij Projekt ConfirmCloseAProject=Czy zamknąć ten projekt? -AlsoCloseAProject=Zamknij także projekt (pozostaw go otwarty, jeśli nadal musisz śledzić na nim zadania produkcyjne) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Otwórz projekt ConfirmReOpenAProject=Czy otworzyć na nowo ten projekt? ProjectContact=Kontakty z projektu @@ -165,7 +169,7 @@ OpportunityProbability=Prawdopodobieństwo ołowiu OpportunityProbabilityShort=Ołów probab. OpportunityAmount=Kwota ołowiu OpportunityAmountShort=Kwota ołowiu -OpportunityWeightedAmount=Kwota ważona szansą sprzedaży +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. kwota ważona OpportunityAmountAverageShort=Średnia kwota ołowiu OpportunityAmountWeigthedShort=Ważona kwota ołowiu @@ -238,7 +242,7 @@ OppStatusPENDING=W oczekiwaniu OppStatusWON=Won OppStatusLOST=Zagubiony Budget=Budżet -AllowToLinkFromOtherCompany=Zezwól na powiązanie projektu z innej firmy

    Obsługiwane wartości:
    - Pozostaw puste: można połączyć dowolny projekt firmy z firmy (domyślnie) a0342fcc19 wszystkie projekty: A0342fcc identyfikatory innych firm oddzielone przecinkami: mogą łączyć wszystkie projekty tych podmiotów zewnętrznych (przykład: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Najnowsze projekty %s LatestModifiedProjects=Najnowsze zmodyfikowane projekty %s OtherFilteredTasks=Inne filtrowane zadania @@ -259,7 +263,7 @@ TimeSpentInvoiced=Rozliczony czas spędzony TimeSpentForIntervention=Czas spędzony TimeSpentForInvoice=Czas spędzony OneLinePerUser=Jedna linia na użytkownika -ServiceToUseOnLines=Usługa do wykorzystania na liniach +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Faktura %s została wygenerowana na podstawie czasu spędzonego nad projektem InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Sprawdź, czy wprowadzasz grafik dla zadań projektu ORAZ planujesz wygenerować fakturę (y) z grafiku, aby wystawić fakturę klientowi projektu (nie sprawdzaj, czy planujesz utworzyć fakturę, która nie jest oparta na wprowadzonych grafikach). Uwaga: Aby wygenerować fakturę, przejdź do zakładki „Czas spędzony” projektu i wybierz wiersze do uwzględnienia. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Zysk jest obliczany za pomocą AddPersonToTask=Dodaj także do zadań UsageOrganizeEvent=Użycie: Organizacja wydarzeń PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Zaklasyfikuj projekt jako zamknięty po wykonaniu wszystkich jego zadań (postęp 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Uwaga: nie będzie to miało wpływu na istniejące projekty ze wszystkimi zadaniami o postępie 100%%: będziesz musiał je zamknąć ręcznie. Ta opcja dotyczy tylko otwartych projektów. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Wybierz wiersze spędzonego czasu, które nie zostały rozliczone, a następnie wykonaj zbiorcze działanie „Wygeneruj fakturę”, aby je rozliczyć ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/pl_PL/propal.lang b/htdocs/langs/pl_PL/propal.lang index 31cad3d5f3f..c008f483c0e 100644 --- a/htdocs/langs/pl_PL/propal.lang +++ b/htdocs/langs/pl_PL/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Opóźnienie w dostępności SetAvailability=Ustaw opóźnienie w dostępności AfterOrder=od zamówienia OtherProposals=Inne oferty + ##### Availability ##### AvailabilityTypeAV_NOW=Natychmiastowo AvailabilityTypeAV_1W=1 tydzień AvailabilityTypeAV_2W=2 tygodnie AvailabilityTypeAV_3W=3 tygodnie AvailabilityTypeAV_1M=1 miesiąc -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Przedstawiciela w ślad za wniosek TypeContact_propal_external_BILLING=Kontakt do klienta w sprawie faktury TypeContact_propal_external_CUSTOMER=kontakt klienta w ślad za wniosek TypeContact_propal_external_SHIPPING=Kontakt z klientem w sprawie dostawy + # Document models -DocModelAzurDescription=Kompletny model oferty (stara implementacja szablonu Cyan) -DocModelCyanDescription=Kompletny model oferty -DefaultModelPropalCreate=Domyślny model kreacji. -DefaultModelPropalToBill=Domyślny szablon po zamknięciu wniosku biznesowego ( do zafakturowania) -DefaultModelPropalClosed=Domyślny szablon po zamknięciu projektu biznesowego ( weryfikowane ) -ProposalCustomerSignature=Akceptacja umowy : podpis i data -ProposalsStatisticsSuppliers=Statystyki propozycji dostawców -CaseFollowedBy=Przypadek, po którym następuje -SignedOnly=Tylko podpisane -NoSign=Set not signed -NoSigned=set not signed CantBeNoSign=cannot be set not signed +CaseFollowedBy=Przypadek, po którym następuje ConfirmMassNoSignature=Bulk Not signed confirmation ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? -IsNotADraft=is not a draft -PassedInOpenStatus=has been validated -Sign=Sign -Signed=signed -ConfirmMassValidation=Bulk Validate confirmation ConfirmMassSignature=Bulk Signature confirmation -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=Identyfikator oferty +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Domyślny szablon po zamknięciu projektu biznesowego ( weryfikowane ) +DefaultModelPropalCreate=Domyślny model kreacji. +DefaultModelPropalToBill=Domyślny szablon po zamknięciu wniosku biznesowego ( do zafakturowania) +DocModelAzurDescription=Kompletny model oferty (stara implementacja szablonu Cyan) +DocModelCyanDescription=Kompletny model oferty +FichinterSigned=Intervention signed IdProduct=ID produktu +IdProposal=Identyfikator oferty +IsNotADraft=is not a draft LineBuyPriceHT=Cena zakupu Kwota bez podatku dla wiersza -SignPropal=Accept proposal +NoSign=Odrzuć +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted +ProposalCustomerSignature=Akceptacja umowy : podpis i data +ProposalsStatisticsSuppliers=Statystyki propozycji dostawców RefusePropal=Refuse proposal Sign=Sign -NoSign=Set not signed -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Tylko podpisane diff --git a/htdocs/langs/pl_PL/recruitment.lang b/htdocs/langs/pl_PL/recruitment.lang index 1c25f2f2a98..0c27b94924f 100644 --- a/htdocs/langs/pl_PL/recruitment.lang +++ b/htdocs/langs/pl_PL/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Rekruter e-mailowy ToUseAGenericEmail=Aby użyć ogólnej wiadomości e-mail. Jeśli nie zostanie zdefiniowany, zostanie użyty adres e-mail osoby odpowiedzialnej za rekrutację NewCandidature=Nowa aplikacja ListOfCandidatures=Lista aplikacji -RequestedRemuneration=Żądane wynagrodzenie -ProposedRemuneration=Proponowane wynagrodzenie +Remuneration=Wypłata +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Proponowana umowa ContractSigned=Umowa podpisana ContractRefused=Umowa została odrzucona RecruitmentCandidature=Podanie JobPositions=Stanowiska pracy RecruitmentCandidatures=Aplikacje -InterviewToDo=Wywiad do zrobienia +InterviewToDo=Contacts to follow AnswerCandidature=Odpowiedź aplikacji YourCandidature=Twoje zgłoszenie YourCandidatureAnswerMessage=Dziękuję za zgłoszenie.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=Stanowisko jest zamknięte. ExtrafieldsJobPosition=Atrybuty uzupełniające (stanowiska pracy) ExtrafieldsApplication=Atrybuty uzupełniające (np. podania o pracę) MakeOffer=Złożyć ofertę +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/pl_PL/salaries.lang b/htdocs/langs/pl_PL/salaries.lang index 93c58b60f07..ce9c12a9e59 100644 --- a/htdocs/langs/pl_PL/salaries.lang +++ b/htdocs/langs/pl_PL/salaries.lang @@ -1,12 +1,12 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto rachunkowe użyte dla użytkownika kontrahentów -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedykowane konto księgowe zdefiniowane na karcie użytkownika będzie używane wyłącznie do księgowania Subledger. Ten zostanie użyty w General Ledger i jako wartość domyślna księgowania Subledger, jeśli dedykowane konto rachunkowe użytkownika dla użytkownika nie zostanie zdefiniowane. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Domyślne konto rachunkowe dla płatności wynagrodzenia +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Domyślne konto księgowe dla płatności wynagrodzenia CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Domyślnie pozostaw pustą opcję „Automatycznie utwórz całkowitą płatność” podczas tworzenia wynagrodzenia Salary=Wypłata Salaries=Wypłaty -NewSalary=Nowa pensja -AddSalary=Add salary +NewSalary=Nowe wynagrodzenie +AddSalary=Dodaj wynagrodzenie NewSalaryPayment=Nowa karta wynagrodzeń AddSalaryPayment=Dodaj płatność wynagrodzenia SalaryPayment=Wypłata wynagrodzenia @@ -18,9 +18,10 @@ TJM=Średnia stawka dzienna CurrentSalary=Aktualne wynagrodzenie THMDescription=Wartość ta może służyć do obliczenia kosztu czasu poświęconego na projekt wprowadzony przez użytkowników, jeśli używany jest projekt modułu TJMDescription=Ta wartość ma obecnie charakter wyłącznie informacyjny i nie jest używana do żadnych obliczeń -LastSalaries=Najnowsze pensje %s -AllSalaries=Wszystkie pensje +LastSalaries=Najnowsze %s wynagrodzeń +AllSalaries=Wszystkie wynagrodzenia SalariesStatistics=Statystyki wynagrodzeń SalariesAndPayments=Wynagrodzenia i płatności ConfirmDeleteSalaryPayment=Czy chcesz usunąć tę wypłatę wynagrodzenia? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Ustaw kwotę z ostatniego wynagrodzenia diff --git a/htdocs/langs/pl_PL/stocks.lang b/htdocs/langs/pl_PL/stocks.lang index 3f8795a5052..117d51b9fdc 100644 --- a/htdocs/langs/pl_PL/stocks.lang +++ b/htdocs/langs/pl_PL/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Limit zapasu dla ostrzeżenia i pożądany optymaln ProductStockWarehouseUpdated=Limit zapasu dla ostrzeżenia i pożądany optymalny zapas prawidłowo zaktualizowany ProductStockWarehouseDeleted=Limit zapasu dla ostrzeżenia i pożądany optymalny zapas prawidłowo usunięty AddNewProductStockWarehouse=Ustaw nowy limit dla ostrzeżenia i pożądany optymalny zapas -AddStockLocationLine=Zmniejsz ilość, a następnie kliknij, aby dodać kolejny magazyn dla tego produktu +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Data inwentaryzacji Inventories=Inwentaryzacje NewInventory=Nowa inwentaryzacja @@ -254,7 +254,7 @@ ReOpen=Otworzyć na nowo ConfirmFinish=Czy potwierdzasz zamknięcie inwentaryzacji? Spowoduje to wygenerowanie wszystkich ruchów zapasów, aby zaktualizować stan zapasów do rzeczywistej ilości wprowadzonej do zapasów. ObjectNotFound=Nie znaleziono %s MakeMovementsAndClose=Zainicjuj przemieszczenia zapasów i zamknij -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Wypełnij rzeczywistą ilość ilością oczekiwaną ShowAllBatchByDefault=Domyślnie wyświetlaj szczegóły partii na karcie „magazyn” produktu CollapseBatchDetailHelp=Możesz ustawić domyślne wyświetlanie szczegółów partii w konfiguracji modułu zapasów ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Rozpoczęto ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Ustawienia +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/pl_PL/ticket.lang b/htdocs/langs/pl_PL/ticket.lang index cf5cfc31814..7adef728a31 100644 --- a/htdocs/langs/pl_PL/ticket.lang +++ b/htdocs/langs/pl_PL/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Usuwaj bilety Permission56004=Zarządzaj biletami Permission56005=Zobacz bilety wszystkich stron trzecich (nie dotyczy użytkowników zewnętrznych, zawsze ograniczaj się do strony trzeciej, od której są zależni) +Tickets=Bilety TicketDictType=Bilet - Typ TicketDictCategory=Bilet - grupy TicketDictSeverity=Bilet - dotkliwości @@ -90,8 +91,8 @@ TicketPublicAccess=Publiczny interfejs, który nie wymaga identyfikacji, jest do TicketSetupDictionaries=Typ zgłoszenia, ważność i kody analityczne można konfigurować ze słowników TicketParamModule=Konfiguracja zmiennej modułu TicketParamMail=Konfiguracja poczty e-mail -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Wiadomość tekstowa wysyłana po utworzeniu biletu @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Podany tutaj tekst zostanie wstawiony do wiadomości e-ma TicketParamPublicInterface=Konfiguracja interfejsu publicznego TicketsEmailMustExist=Wymagaj istniejącego adresu e-mail, aby utworzyć bilet TicketsEmailMustExistHelp=W interfejsie publicznym adres e-mail powinien być już wypełniony w bazie danych, aby utworzyć nowy bilet. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Interfejs publiczny TicketUrlPublicInterfaceLabelAdmin=Alternatywny adres URL interfejsu publicznego TicketUrlPublicInterfaceHelpAdmin=Możliwe jest zdefiniowanie aliasu do serwera WWW, a tym samym udostępnienie interfejsu publicznego z innym adresem URL (serwer musi działać jako proxy na tym nowym adresie URL) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Bilet jest teraz przypisany TicketChangeType=Zmień typ TicketChangeCategory=Zmień kod analityczny TicketChangeSeverity=Zmień istotność -TicketAddMessage=Dodaj wiadomość -AddMessage=Dodaj wiadomość +TicketAddMessage=Add private message MessageSuccessfullyAdded=Dodano bilet TicketMessageSuccessfullyAdded=Wiadomość została pomyślnie dodana TicketMessagesList=Lista wiadomości @@ -202,8 +206,8 @@ TicketSeverity=Priorytet ShowTicket=Zobacz bilet RelatedTickets=Powiązane bilety TicketAddIntervention=Tworzenie interwencji -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Potwierdź zamknięcie biletu ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Wyślij wiadomość e-mailem TicketNewMessage=Nowa wiadomość ErrorMailRecipientIsEmptyForSendTicketMessage=Adresat jest pusty. Nie wysłano e-maila TicketGoIntoContactTab=Przejdź do zakładki „Kontakty”, aby je wybrać -TicketMessageMailIntro=Wprowadzenie +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Ten tekst jest dodawany tylko na początku e-maila i nie zostanie zapisany. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Podpis -TicketMessageMailSignatureHelp=Ten tekst jest dodawany tylko na końcu wiadomości e-mail i nie zostanie zapisany. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Podpis e-maila zwrotnego -TicketMessageMailSignatureHelpAdmin=Ten tekst zostanie wstawiony po wiadomości z odpowiedzią. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Tylko ten tekst zostanie zapisany na liście wiadomości na karcie biletu. TicketMessageSubstitutionReplacedByGenericValues=Zmienne podstawienia są zastępowane wartościami ogólnymi. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Czas, który upłynął od TicketTimeToRead=Upłynął czas przed przeczytaniem TicketTimeElapsedBeforeSince=Czas, jaki upłynął przed / od @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Na bilecie została umieszczona nowa TicketAssignedToYou=Przydzielony bilet TicketAssignedEmailBody=Przydzielono Ci bilet # %s przez %s MarkMessageAsPrivate=Oznacz wiadomość jako prywatną +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Ta wiadomość nie będzie wyświetlana użytkownikom zewnętrznym TicketEmailOriginIssuer=Wystawca w miejscu pochodzenia biletów InitialMessage=Wiadomość wstępna @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Możesz zobaczyć postęp zgłoszenia w TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Prosimy nie odpowiadać na tę wiadomość! Użyj linku, aby odpowiedzieć w interfejsie. TicketPublicInfoCreateTicket=Ten formularz umożliwia zarejestrowanie zgłoszenia do pomocy technicznej w naszym systemie zarządzania. -TicketPublicPleaseBeAccuratelyDescribe=Proszę dokładnie opisać problem. Podaj jak najwięcej informacji, abyśmy mogli poprawnie zidentyfikować Twoją prośbę. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Wprowadź identyfikator śledzenia biletu TicketTrackId=Publiczny identyfikator śledzenia OneOfTicketTrackId=Jeden z Twoich identyfikatorów śledzenia diff --git a/htdocs/langs/pl_PL/users.lang b/htdocs/langs/pl_PL/users.lang index 3702483e95f..ca34b92052d 100644 --- a/htdocs/langs/pl_PL/users.lang +++ b/htdocs/langs/pl_PL/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Usuń z grupy PasswordChangedAndSentTo=Hasło zmienione i wysyłane do %s. PasswordChangeRequest=Zgłoszenie zmiany hasła dla %s PasswordChangeRequestSent=Wniosek o zmianę hasła dla %s wysłany do %s. -IfLoginExistPasswordRequestSent=Jeśli ten login jest prawidłowym kontem, wiadomość e-mail umożliwiająca zresetowanie hasła została wysłana. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Jeśli ten adres e-mail jest prawidłowym kontem, wiadomość e-mail umożliwiająca zresetowanie hasła została wysłana. ConfirmPasswordReset=Potwierdź zresetowanie hasła MenuUsersAndGroups=Użytkownicy i grupy @@ -68,7 +68,6 @@ CreateDolibarrLogin=Utwórz użytkownika CreateDolibarrThirdParty=Utwórz kontrahenta LoginAccountDisableInDolibarr=Konto wyłączone w Dolibarr. UsePersonalValue=Użyj wartości osobowych -InternalUser=Wewnętrzny użytkownik ExportDataset_user_1=Użytkownicy i ich właściwości DomainUser=Domena użytkownika %s Reactivate=Przywraca @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/pl_PL/website.lang b/htdocs/langs/pl_PL/website.lang index e2741fb1e0b..70f4f1b16aa 100644 --- a/htdocs/langs/pl_PL/website.lang +++ b/htdocs/langs/pl_PL/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kod +WebsiteName=Name of the website WebsiteSetupDesc=Tu utwórz witryny, które chcesz użyć. Następnie, przejdź do menu Witryny, aby je edytować. DeleteWebsite=Skasuj stronę ConfirmDeleteWebsite=Czy na pewno zamierzasz usunąć tę witrynę? Wszystkie jej strony i zawartość również zostaną usunięte. Pozostawione zostaną wszelkie pliki dosłane (np. do katalogu mediów, moduł ECM, ...). @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Dodanie nagłówka HTML u dołu (wspólne dla wszystkich str WEBSITE_ROBOT=Plik robota (robots.txt) WEBSITE_HTACCESS=Plik .htaccess witryny WEBSITE_MANIFEST_JSON=Plik manifest.json witryny -WEBSITE_README=Plik README.md WEBSITE_KEYWORDSDesc=Wartości rozdziel przecinkami -EnterHereLicenseInformation=Tu wprowadź metadane lub informacje licencyjne, które wypełnią plik README.md. Przy rozprowadzaniu Twej witryny jako szablonu, plik ten zostanie dołączony do pakietu tego szablonu. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Nagłówek HTML (tylko dla tej strony) PageNameAliasHelp=Nazwa lub alias strony.
    Ten alias służy również do tworzenia adresu URL wspierającego SEO, gdy witrynę obsługuje web serwer (taki jak Apacke, Nginx, ...). Użyj przycisku „%s”, aby edytować ten alias. EditTheWebSiteForACommonHeader=Uwaga: Jeśli chcesz zdefiniować nagłówek dla wszystkich stron, edytuj nagłówek na poziomie witryny zamiast na poziomie strony/pojemnika. @@ -42,10 +43,12 @@ ViewPageInNewTab=Zobacz stronę w nowej zakładce SetAsHomePage=Ustaw jako stronę domową RealURL=Prawdziwy adres URL ViewWebsiteInProduction=Zobacz stronę używając linków ze strony głównej +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Użyj z Apache / NGinx / ...
    Utwórz na swoim serwerze internetowym (Apache, Nginx, ...) dedykowany wirtualny host z włączoną obsługą PHP i katalog główny na
    %s ExampleToUseInApacheVirtualHostConfig=Przykład do użycia w konfiguracji hosta wirtualnego Apache: YouCanAlsoTestWithPHPS= Używaj z wbudowanym serwerem PHP
    Gdy w środowisku rozwojowym preferujesz testowanie web strony z web serwerem wbudowanym w PHP (wymagane PHP 5.5 lub nowsze), to uruchamiaj
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Uruchom swoją witrynę u innego dostawcy wystąpień Dolibarr
    Jeśli nie masz dostępnego w internecie web serwera, takiego jak Apache lub NGinx, to możesz eksportować i importować swoją witrynę do innego wystąpienia Dolibarr u kogoś oferującego wystąpienia Dolibarr mające moduł Website w pełni zintegrowany z web serwerem. Listę niektórych dostawców wystąpień Dolibarr znajdziesz w https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Sprawdź również, czy użytkownik wirtualnego hosta (na przykład dane www) ma %s uprawnienia do plików w
    %s ReadPerm=Czytanie WritePerm=Zapis @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Możesz edytować kod źródłowy HTML używając p YouCanEditHtmlSource=
    Możesz dołączyć kod PHP do tego źródła za pomocą tagów <? php? > . Dostępne są następujące zmienne globalne: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    Możesz także dołączyć zawartość innej strony / kontenera o następującej składni:
    a03900aindf7d31Contiaser? ? >

    Można zrobić przekierowanie do innej strony / pojemnik z następującą składnią (Uwaga: Nie Wyjście jakiejkolwiek zawartości przed przekierowaniem):
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ? >

    Aby dodać link do innej strony, użyj składni:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    Aby umieścić link do pobrania
    pliku zapisanego w dokumentach , użyj document.php wrapper:
    Przykład, dla pliku w dokumentach / ecm (należy zarejestrować), składnia jest następująca: a0342fcccfdae19bz039 =
    ] nazwa_pliku.ext ">

    Dla pliku w dokumentach / mediach (otwarty katalog dla publicznego dostępu) składnia jest następująca:
    a03900dfred31ecz "/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    W przypadku pliku udostępnionego za pomocą linku do udostępniania (otwarty dostęp za pomocą klucza współdzielenia hashf pliku:

    ), dla pliku udostępnionego za pomocą linku do udostępniania (otwarty dostęp przy użyciu klucza współdzielenia hashf pliku:

    ). /document.php?hashp=publicsharekeyoffile">


    Aby to obrazu zapisane do tych dokumentów , za pomocą przycisków viewimage.php owijający:
    przykład w przypadku obrazu do dokumentów / media (otwarte katalog dla dostępu publicznego), składnia jest następująca:
    <img src = "/ viewimage.php? modulepart = medias&file = [katalog_względny /] nazwa_pliku.ext" a0065c2c071 "a0065c2c071" a0087c2c071 #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=W przypadku obrazu udostępnionego za pomocą linku do udostępniania (otwarty dostęp przy użyciu klucza współdzielenia skrótu pliku) składnia jest następująca:
    <img src = "/ viewimage.php? Hashp = 12345679012 ..." a0012c7dcbe087c65z071 -YouCanEditHtmlSourceMore=
    Więcej przykładów kodu HTML lub dynamicznego dostępnych w dokumentacji wiki
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Powiel stronę/pojemnik CloneSite=Duplikuj stronę SiteAdded=Dodano witrynę @@ -137,7 +140,7 @@ PagesRegenerated=%s strony / kontenery zostały ponownie wygenerowane RegenerateWebsiteContent=Zregeneruj pliki pamięci podręcznej witryny internetowej AllowedInFrames=Dozwolone w ramkach DefineListOfAltLanguagesInWebsiteProperties=Zdefiniuj listę wszystkich dostępnych języków we właściwościach witryny internetowej. -GenerateSitemaps=Wygeneruj plik mapy witryny internetowej +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Jeśli potwierdzisz, usuniesz istniejący plik mapy witryny ... ConfirmSitemapsCreation=Potwierdź wygenerowanie mapy witryny SitemapGenerated=Wygenerowano plik mapy witryny %s @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon musi być w formacie PNG ErrorFaviconSize=Favicon musi mieć rozmiar 16x16, 32x32 lub 64x64 FaviconTooltip=Prześlij obraz, który musi być w formacie PNG (16x16, 32x32 lub 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/pl_PL/withdrawals.lang b/htdocs/langs/pl_PL/withdrawals.lang index 613a6eb67b7..803a33bf94a 100644 --- a/htdocs/langs/pl_PL/withdrawals.lang +++ b/htdocs/langs/pl_PL/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Faktura dostawcy czeka na płatność przelewem InvoiceWaitingWithdraw=Faktura oczekująca na polecenie zapłaty InvoiceWaitingPaymentByBankTransfer=Faktura oczekująca na przelew AmountToWithdraw=Kwota do wycofania +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=Brak otwartej faktury dla „%s” nie oczekuje. Przejdź do zakładki „%s” na karcie faktury, aby złożyć wniosek. -NoSupplierInvoiceToWithdraw=Żadna faktura dostawcy z otwartymi „Bezpośrednimi wnioskami o kredyt” nie oczekuje. Przejdź do zakładki „%s” na karcie faktury, aby złożyć wniosek. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odpowiedzialność użytkownika WithdrawalsSetup=Konfiguracja płatności poleceniem zapłaty CreditTransferSetup=Konfiguracja polecenia przelewu @@ -41,6 +42,7 @@ CreditTransferStatistics=Statystyka poleceń przelewu Rejects=Odrzucone LastWithdrawalReceipt=Najnowsze potwierdzenia %s polecenia zapłaty MakeWithdrawRequest=Złóż wniosek o płatność za pomocą polecenia zapłaty +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Złóż wniosek o przelew WithdrawRequestsDone=Zarejestrowano %s polecenia zapłaty za polecenie zapłaty BankTransferRequestsDone=%s odnotowano żądania przelewu @@ -99,8 +101,11 @@ CreditDate=Kredyt na WithdrawalFileNotCapable=Nie można wygenerować plik paragon wycofania dla danego kraju:% s (Twój kraj nie jest obsługiwany) ShowWithdraw=Pokaż polecenie zapłaty IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Jeśli jednak faktura zawiera co najmniej jedno polecenie zapłaty, które nie zostało jeszcze przetworzone, nie zostanie ono ustawione jako zapłacone, aby umożliwić wcześniejsze zarządzanie wypłatą. -DoStandingOrdersBeforePayments=Ta zakładka umożliwia zażądanie polecenia zapłaty za polecenie zapłaty. Po zakończeniu przejdź do menu Bank-> Płatność poleceniem zapłaty, aby wygenerować polecenie zapłaty i zarządzać nim. Kiedy polecenie zapłaty zostanie zamknięte, płatność za faktury zostanie automatycznie zarejestrowana, a faktury zostaną zamknięte, jeśli pozostała do zapłaty kwota jest zerowa. -DoCreditTransferBeforePayments=Ta zakładka umożliwia złożenie wniosku o polecenie przelewu. Po zakończeniu przejdź do menu Bank-> Płatność przelewem, aby wygenerować i zarządzać poleceniem przelewu. Kiedy polecenie przelewu zostanie zamknięte, płatność za faktury zostanie automatycznie zarejestrowana, a faktury zostaną zamknięte, jeśli pozostała do zapłaty kwota jest zerowa. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Plik polecenia zapłaty CreditTransferFile=Plik polecenia przelewu SetToStatusSent=Ustaw status "Plik Wysłane" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Nie można utworzyć polecenia zapłaty dla pustej SepaMandate=Upoważnienie do polecenia zapłaty SEPA SepaMandateShort=Mandat SEPA PleaseReturnMandate=Prosimy o przesłanie tego formularza upoważnienia pocztą elektroniczną na adres %s lub pocztą na adres -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Identyfikator wierzyciela CreditorName=Nazwa wierzyciela SEPAFillForm=(B) Proszę wypełnić wszystkie pola zaznaczone * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Data wykonania CreateForSepa=Utwórz plik polecenia zapłaty ICS=Creditor Identifier - ICS +IDS=Debitor Identifier END_TO_END=Znacznik XML SEPA „EndToEndId” - Unikalny identyfikator przypisany do każdej transakcji USTRD=„Niestrukturalny” tag XML SEPA ADDDAYS=Dodaj dni do daty wykonania @@ -154,3 +160,4 @@ ErrorICSmissing=Brak ICS na koncie bankowym %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Całkowita kwota polecenia zapłaty różni się od sumy wierszy WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/pl_PL/workflow.lang b/htdocs/langs/pl_PL/workflow.lang index ad12d61b92b..ee9fd64b109 100644 --- a/htdocs/langs/pl_PL/workflow.lang +++ b/htdocs/langs/pl_PL/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatyczne tworzenie zamówienia sprzeda descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatycznie twórz fakturę dla klienta po podpisaniu oferty handlowej (nowa faktura będzie miała taką samą kwotę jak oferta) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatycznie stwórz fakturę dla klienta po zatwierdzeniu kontraktu descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatycznie twórz fakturę dla klienta po zamknięciu zamówienia sprzedaży (nowa faktura będzie miała taką samą kwotę jak zamówienie) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Sklasyfikuj połączoną ofertę źródłową jako rozliczoną, gdy zamówienie sprzedaży jest ustawione na fakturowane (i jeśli kwota zamówienia jest taka sama, jak łączna kwota podpisanej połączonej oferty pakietowej) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Sklasyfikuj połączoną ofertę źródłową jako rozliczoną, gdy faktura odbiorcy zostanie zweryfikowana (i jeśli kwota faktury jest taka sama, jak łączna kwota podpisanej połączonej oferty) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Sklasyfikuj połączone zamów descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Sklasyfikuj połączone źródłowe zamówienie sprzedaży jako fakturowane, gdy faktura odbiorcy jest ustawiona na zapłaconą (i jeśli kwota faktury jest taka sama, jak całkowita kwota połączonego zamówienia) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Sklasyfikuj zamówienie sprzedaży z połączonego źródła jako wysłane, gdy przesyłka zostanie zweryfikowana (i jeśli ilość wysłana we wszystkich wysyłkach jest taka sama, jak w zamówieniu do aktualizacji) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Klasyfikuj powiązane zamówienie jako wysłane, gdy wysyłka zostaje zamknięta (i jeśli ilość wysłanych produktów w paczkach jest zgodna z ilością na zamówieniu) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Klasyfikuj ofertę dostawcy połączonego źródła jako fakturowaną, gdy faktura od dostawcy jest weryfikowana (i jeśli kwota faktury jest taka sama, jak łączna kwota połączonej oferty) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Sklasyfikuj zamówienie zakupu z połączonego źródła jako fakturowane, gdy faktura dostawcy zostanie zweryfikowana (i jeśli kwota faktury jest taka sama, jak całkowita kwota połączonego zamówienia) -descWORKFLOW_BILL_ON_RECEPTION=Klasyfikuj przyjęcia jako „zafakturowane” po zweryfikowaniu zamówienia połączonego dostawcy +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Zamknij wszystkie interwencje związane z biletem, gdy bilet jest zamknięty AutomaticCreation=Automatyczne utworzenie AutomaticClassification=Automatyczne zaklasyfikowanie # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Sklasyfikuj przesyłkę połączonego źródła jako zamkniętą, gdy faktura odbiorcy jest weryfikowana +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/pt_AO/propal.lang b/htdocs/langs/pt_AO/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/pt_AO/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index 0e1cc17d702..d07989be671 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -95,30 +95,11 @@ ACCOUNTING_LENGTH_GACCOUNT=Comprimento das contas de contabilidade geral (se o v ACCOUNTING_LENGTH_AACCOUNT=Comprimento das contas de contabilidade de terceiros (se você definir o valor para 6 aqui, a conta "401" aparecerá como '401000' na tela) ACCOUNTING_MANAGE_ZERO=Permitir gerenciar diferentes números de zeros no final de uma conta contábil. Necessário para alguns países (como a Suíça). Se definido como desativado (padrão), você pode definir os dois parâmetros a seguir para solicitar que o aplicativo adicione zeros virtuais. BANK_DISABLE_DIRECT_INPUT=Desabilitar o registro direto da transação na conta bancária -ACCOUNTING_SELL_JOURNAL=Diário de Vendas -ACCOUNTING_PURCHASE_JOURNAL=Diário de Compras -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diário diversos ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatórios de despesas ACCOUNTING_RESULT_PROFIT=Conta de contabilidade de resultado (Lucro) ACCOUNTING_RESULT_LOSS=Conta contábil do resultado (perda) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Jornal de encerramento -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta contábil da transferência bancária transitória TransitionalAccount=Conta de transferência bancária transitória -ACCOUNTING_ACCOUNT_SUSPENSE=Conta contábil de espera -DONATION_ACCOUNTINGACCOUNT=Conta contábil para registro de doações. -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conta contábil para registrar assinaturas -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Conta contábil padrão para produtos comprados (usada se não definida na folha de produtos) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Conta contábil padrão para os produtos comprados na CEE (usada se não definida na planilha de produtos) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Conta contábil padrão para os produtos comprados e importados da CEE (usados ​​se não definidos na folha do produto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conta contábil padrão para os produtos vendidos (usado se não estiver definido na folha do produto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Conta contábil por padrão para os produtos vendidos na EEC (usada se não definida na planilha de produtos) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Conta contábil por padrão para os produtos vendidos e exportados para fora da EEC (usados ​​se não definidos na folha do produto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta contábil padrão para os serviços comprados (se não for definido na listagem de serviços) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Conta contábil padrão para os serviços comprados no EEC (usada se não definida na planilha de serviços) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Conta contábil padrão para os serviços comprados e importados do EEC (usados ​​se não definidos na ficha de serviço) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta contábil padrão para os serviços vendidos (se não for definido na listagem de serviços) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Conta contábil por padrão para os serviços vendidos na EEC (usada se não definida na ficha de serviço) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Conta contábil por padrão para os serviços vendidos e exportados para fora do EEC (usados ​​se não definidos na ficha de serviço) LabelAccount=Conta rótulo JournalLabel=Rótulo de jornal TransactionNumShort=Nº da transação @@ -152,12 +133,6 @@ PcgtypeDesc=O grupo de contas é usado como critério predefinido de 'filtro' e Reconcilable=Reconciliável TotalVente=Volume total negociado sem Impostos TotalMarge=Margem de vendas totais -DescVentilCustomer=Consulte aqui a lista linhas de pedidos de clientes vinculadas (ou não) a uma conta contábil de produto -DescVentilMore=Na maioria dos casos, se você usar produtos ou serviços predefinidos e definir o número da conta no cartão de produto / serviço, o aplicativo poderá fazer toda a ligação entre suas linhas de fatura e a conta contábil de seu plano de contas, apenas em um clique com o botão "%s" . Se a conta não foi definida em cartões de produtos / serviços ou se você ainda tiver algumas linhas não vinculadas a uma conta, será necessário fazer uma ligação manual no menu " %s ". -DescVentilDoneCustomer=Consulte aqui a lista com as linhas das faturas dos clientes e a conta da Contabilidade dos seus produtos -DescVentilTodoCustomer=Linhas da fatura ainda não vinculadas à conta da Contabilidade do produto -ChangeAccount=Mudar a conta da Contabilidade do produto/serviço para as linhas selecionadas com a seguinte conta da Contabilidade -DescVentilSupplier=Consulte aqui a lista de linhas de fatura de fornecedor vinculadas ou não vinculadas a uma conta contábil do produto (somente registro ainda não transferido será visível na contabilidade) DescVentilDoneSupplier=Consulte aqui a lista das linhas de faturas de fornecedores e sua conta contábil DescVentilTodoExpenseReport=Relatórios de linhas de despesas de ligação já não estão vinculadas com uma conta contábil com taxa DescVentilExpenseReport=Consulte aqui a lista de relatório de linhas de despesas vinculadas (ou não) a uma conta contábil com taxa @@ -165,9 +140,7 @@ DescVentilExpenseReportMore=Se você configurar uma conta contábil no tipo de l DescVentilDoneExpenseReport=Consulte aqui a lista dos relatórios de linha de despesas e sua conta contábil de taxas DescValidateMovements=Qualquer modificação ou exclusão de escrita, letras e exclusões será proibida. Todas as entradas para um exercício devem ser validadas, caso contrário, o fechamento não será possível ValidateHistory=Vincular Automaticamente -ErrorAccountancyCodeIsAlreadyUse=Erro, você não pode excluir esta conta contábil, pois ela esta em uso GeneralLedgerIsWritten=As transações estão escritas no Razão -ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta da Contabilidade ChangeBinding=Alterar a vinculação Accounted=Contas no livro de contas NotYetAccounted=Ainda não transferida para a contabilidade diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 64007a00371..14092ad9ee3 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -47,8 +47,6 @@ ClientSortingCharset=Conferência de Clientes WarningModuleNotActive=Módulo %s deve ser Ativado! WarningOnlyPermissionOfActivatedModules=Somente as permissões relacionadas com os módulos ativados que aparecem aqui. DolibarrSetup=Instalação/Atualização do Dolibarr -InternalUser=Usuário Interno -ExternalUser=Usuário Externo InternalUsers=Usuários Internos ExternalUsers=Usuários Externos UploadNewTemplate=Carregar novo(s) tema(s) @@ -91,7 +89,6 @@ NextValueForReplacements=Próximo Valor (Substituição) MustBeLowerThanPHPLimit=Nota: sua configuração PHP atualmente limita o tamanho máximo de arquivo para upload para %s %s, independentemente do valor desse parâmetro NoMaxSizeByPHPLimit=Nenhum limite foi configurado no seu PHP MaxSizeForUploadedFiles=Tamanho Máximo para uploads de arquivos ('0' para proibir o carregamento) -UseCaptchaCode=Usar captcha para login (recomendado se os usuários tiverem acesso ao Dolibarr pela internet) AntiVirusCommand=Caminho completo para antivirus AntiVirusCommandExample=Exemplo para Daemon ClamAv (requer clamav-daemon): / usr / bin / clamdscan
    Exemplo para ClamWin (muito, muito lento): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam=Mais parâmetros em linha de comando (CLI) @@ -366,7 +363,6 @@ InstalledInto=Instalado no diretório %s BarcodeInitForThirdparties=Inicialização de código de barras em massa para terceiros BarcodeInitForProductsOrServices=Inicialização de código de barras em massa ou redefinir de produtos ou serviços CurrentlyNWithoutBarCode=Atualmente, você tem %s registro(s) no %s %s sem um código de barras definido. -InitEmptyBarCode=Valor Init para o próximo registros vazios EraseAllCurrentBarCode=Apague todos os valores de código de barras atuais ConfirmEraseAllCurrentBarCode=Você tem certeza que deseja apagar todos os valores atuais do código de barras? AllBarcodeReset=Todos os valores de código de barras foram removidas @@ -388,10 +384,8 @@ WarningPHPMail=AVISO: A configuração para enviar e-mails do aplicativo está u WarningPHPMailA=- Usar o servidor do provedor de serviços de e-mail aumenta a confiabilidade do seu e-mail, por isso aumenta a entregabilidade sem ser sinalizado como SPAM WarningPHPMailB=- Alguns provedores de serviço de e-mail (como o Yahoo) não permitem que você envie um e-mail de outro servidor que não seja o seu próprio. Sua configuração atual usa o servidor do aplicativo para enviar e-mail e não o servidor de seu provedor de e-mail, portanto, alguns destinatários (aquele compatível com o protocolo DMARC restritivo) perguntarão ao seu provedor de e-mail se podem aceitar seu e-mail e alguns provedores de e-mail (como o Yahoo) pode responder "não" porque o servidor não é deles, então poucos de seus e-mails enviados podem não ser aceitos para entrega (tome cuidado também com a cota de envio de seu provedor de e-mail). WarningPHPMailC=- Usar o servidor SMTP do seu próprio provedor de serviços de e-mail para enviar e-mails também é interessante, portanto, todos os e-mails enviados do aplicativo também serão salvos no diretório "Enviados" da sua caixa de correio. -WarningPHPMailD=Além disso, é recomendável alterar o método de envio de e-mails para o valor "SMTP". Se você realmente deseja manter o método "PHP" padrão para enviar e-mails, ignore este aviso ou remova-o definindo a constante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP como 1 em Home - Setup - Other. WarningPHPMail2=Se o seu provedor SMTP de e-mail precisar restringir o cliente de e-mail a alguns endereços IP (muito raro), esse é o endereço IP do agente de usuário de e-mail (MUA) para seu aplicativo ERP CRM: %s. WarningPHPMailSPF=Se o nome de domínio em seu endereço de e-mail do remetente estiver protegido por um registro SPF (pergunte ao seu registro de nome de domínio), você deverá adicionar os seguintes IPs no registro SPF do DNS do seu domínio: %s . -ActualMailSPFRecordFound=Registro SPF real encontrado: %s ClickToShowDescription=Clique para exibir a descrição RequiredBy=Este módulo é exigido por módulo(s) PageUrlForDefaultValues=Você deve inserir o caminho relativo do URL da página. Se você incluir parâmetros na URL, os valores padrão serão efetivos se todos os parâmetros estiverem definidos com o mesmo valor. @@ -486,7 +480,6 @@ Module2400Name=Eventos / Agenda Module2400Desc=Track events. Registre eventos automáticos para fins de rastreamento ou registre eventos manuais ou reuniões. Este é o módulo principal para um bom gerenciamento de relacionamento com clientes ou fornecedores. Module2500Name=SGBD / GCE Module2500Desc=Sistema de Gerenciamento de Documentos / Gerenciamento de Conteúdo Eletrônico. Organização automática de seus documentos gerados ou armazenados. Compartilhe-os quando precisar. -Module2600Name=Serviços API/Web (Servidor SOAP) Module2600Desc=Ativa o servidor de serviços web do Dolibarr Module2610Desc=Permitir que o servidor prestação de serviços de API REST do Dolibarr Module2660Name=Chamar ServiçosWeb (cliente SOAP) @@ -521,6 +514,7 @@ Module60000Desc=Módulo para gerenciar comissão Module62000Name=Termos Internacionais de Comércio Module62000Desc=Adicione recursos para gerenciar Termos Internacionais de Comércio Module63000Desc=Gerenciar recursos (impressoras, carros, salas, ...) para alocar eventos +Module94160Name=Recebimentos Permission11=Ler Faturas de Clientes Permission12=Criar/Modificar Faturas de Clientes Permission14=Faturas de Clientes Validadas @@ -540,6 +534,9 @@ Permission34=Deletar Produtos Permission36=Ver/Gerenciar Produtos Ocultos Permission38=Exportar Produtos Permission39=Ignorar preço mínimo +Permission41=Ler projetos e tarefas (projetos compartilhados e projetos dos quais sou contato). +Permission42=Criar/modificar projetos (projetos compartilhados e projetos dos quais sou contato). Também pode atribuir usuários a projetos e tarefas +Permission44=Excluir projetos (projetos compartilhados e projetos dos quais sou contato) Permission61=Ler Intervenções Permission62=Criar/Modificar Intervenções Permission64=Deletar Intervenções @@ -582,6 +579,10 @@ Permission122=Criar/Modificar Terceiros Permission125=Deletar Terceiros Permission126=Exportar Terceiros Permission130=Criar/modificar informações de pagamento de terceiros +Permission141=Leia todos os projetos e tarefas (assim como os projetos privados para os quais não sou contato) +Permission142=Criar/modificar todos os projetos e tarefas (assim como os projetos privados para os quais não sou contato) +Permission144=Excluir todos os projetos e tarefas (assim como os projetos privados que não sou um contato) +Permission145=Pode inserir o tempo consumido, para mim ou minha hierarquia, em tarefas atribuídas (Folha de Horário) Permission146=Ler Provedores Permission147=Ler Estatísticas Permission151=Ler pedidos com pagamento por débito direto @@ -648,8 +649,7 @@ Permission283=Deletar Contatos Permission286=Exportar Contatos Permission291=Ler Tarifas Permission292=Definir Permissões das Tarifas -Permission300=Ler códigos de barras -Permission301=Criar/modificar códigos de barras +Permission305=Excluir códigos de barras Permission311=Ler Serviços Permission312=Atribuir Serviço no Contrato Permission331=Ler Marcadores de Página @@ -771,11 +771,6 @@ Permission3301=Gerar novos módulos Permission4001=Ler habilidade/trabalho/posição Permission4002=Criar/modificar habilidade/trabalho/posição Permission4003=Excluir habilidade/trabalho/posição -Permission4020=Ler avaliações -Permission4021=Crie/modifique sua avaliação -Permission4022=Validar avaliação -Permission4023=Excluir avaliação -Permission4030=Ver menu de comparação Permission4031=Ler informações pessoais Permission4032=Escreva informações pessoais Permission10001=Leia o conteúdo do site @@ -901,7 +896,6 @@ LabelOnDocuments=Etiqueta nos documentos ValueOfConstantKey=Valor de uma constante de configuração ConstantIsOn=A opção %s está ativada NbOfDays=Número de dias -CurrentNext=Atual/Próxima Offset=Compensar Upgrade=Atualizar MenuUpgrade=Atualizar / Ampliar @@ -965,7 +959,6 @@ SetupDescription3b=Parâmetros básicos usados para personalizar o comportamento SetupDescription4b=Este software é um conjunto de muitos módulos/aplicativos. Os módulos relacionados às suas necessidades devem estar habilitados e configurados. As entradas do menu aparecerão com a ativação desses módulos. AuditedSecurityEvents=Eventos de segurança que são auditados NoSecurityEventsAreAduited=Nenhum evento de segurança é auditado. Você pode habilitá-los no menu %s -Audit=Eventos de segurança InfoOS=Sobre o SO InfoDatabase=Sobre o banco de dados InfoPerf=Sobre Desempenhos @@ -1056,6 +1049,7 @@ TransKeyWithoutOriginalValue=Você forçou uma nova tradução para a chave de t TitleNumberOfActivatedModules=Módulos ativados TotalNumberOfActivatedModules=Módulos ativados: %s / %s YouMustEnableOneModule=Você pelo menos deve ativar 1 módulo +YouMustEnableTranslationOverwriteBefore=Você deve primeiro habilitar a substituição de tradução para poder substituir uma tradução YesInSummer=Sim em verão OnlyFollowingModulesAreOpenedToExternalUsers=Observe que apenas os módulos a seguir estão disponíveis para usuários externos (independentemente das permissões de tais usuários) e somente se as permissões forem concedidas:
    SuhosinSessionEncrypt=Sessão armazenada criptografada pelo Suhosin @@ -1077,7 +1071,6 @@ AddEmailPhoneTownInContactList=Exibir e-mail de contato (ou telefones, se não d FillThisOnlyIfRequired=Exemplo: +2 (Preencha somente se compensar o problema do timezone é experiente) NumberingModules=Modelos de numeração DocumentModules=Modelos de documentos -PasswordGenerationStandard=Retornar uma senha gerada de acordo com o algoritmo Dolibarr interno: %s caracteres contendo números compartilhados e caracteres em minúsculos. PasswordGenerationPerso=Retornar uma senha de acordo com a configuração definida para a sua personalidade. PasswordPatternDesc=Descrição do padrão de senha UsersSetup=Configurações de módulo de usuários @@ -1151,7 +1144,6 @@ AdherentLoginRequired=Gestor de login para cada membro AdherentMailRequired=O e-mail necessário para criar um novo membro MemberSendInformationByMailByDefault=Marque o checkbox para enviar confirmação de correspondência para membros (validação ou nova contribuição) é ativo por default MemberCreateAnExternalUserForSubscriptionValidated=Criar um login de usuário externo para cada inscrição de membro validada. -VisitorCanChooseItsPaymentMode=O visitante pode escolher entre os modos de pagamento disponíveis MEMBER_REMINDER_EMAIL=Ativar lembrete automático por e-mail de assinaturas expiradas. Nota: O módulo %s deve estar ativado e configurado corretamente para enviar lembretes. MembersDocModules=Modelos de documentos para documentos gerados a partir de registro de membro LDAPSetup=Configurações do LDAP @@ -1332,8 +1324,6 @@ ActivateFCKeditor=Editor avançado ativo por: FCKeditorForNotePublic=Usar editor WYSIWIG nos campos de "notas públicas" dos elementos FCKeditorForNotePrivate=Usar editor WYSIWIG nos campos de "notas privadas" dos elementos FCKeditorForCompany=Usar editor WYSIWIG nos campos de descrição dos elementos (exceto produtos/serviços) -FCKeditorForProduct=Usar editor WYSIWIG nos campos de descrição de produtos/serviços -FCKeditorForProductDetails=Criação / edição WYSIWIG de linhas de detalhes de produtos para todas as entidades (propostas, encomendas, facturas, etc ...). Aviso: O uso desta opção neste caso não é recomendado, pois pode criar problemas com caracteres especiais e formatação de página ao construir arquivos PDF. FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing) FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários FCKeditorForMail=Criação/Edição WYSIWIG para todos os e-mails (exceto Ferramentas->eMailing) @@ -1348,7 +1338,6 @@ DetailId=Menu ID DetailMenuHandler=Gestor de menu onde mostra novo menu DetailMenuModule=Nome do módulo se a entrada do menu vier de um módulo DetailType=Tipo do menu (superior o esquerdo) -DetailUrl=URL onde o menu envia para você (URL absoluta ou link externo com http://) DetailEnabled=Condição para mostra ou não entrar DetailRight=Condição para mostrar menus não autorizados em cinza DetailLangs=Nomes de arquivos lang para código de etiqueta da tradução @@ -1394,7 +1383,6 @@ CashDeskIdWareHouse=Depósito para usar nas vendas StockDecreaseForPointOfSaleDisabledbyBatch=A redução de estoque no PDV não é compatível com o gerenciamento de série / lote do módulo (atualmente ativo), portanto, a redução de estoque é desativada. CashDeskForceDecreaseStockLabel=A redução do estoque de produtos em lote foi forçada. CashDeskForceDecreaseStockDesc=Diminuir primeiro pelo mais antigo e vender por datas. -CashDeskReaderKeyCodeForEnter=Código da chave para "Enter" definido no leitor de código de barras (Exemplo: 13) BookmarkSetup=Configurações do módulo de marcadores NbOfBoomarkToShow=Número máximo de marcadores para mostrar no menu esquerdo WebServicesSetup=Configurações do módulo de serviço de web @@ -1422,7 +1410,6 @@ SuppliersCommandModelMuscadet=Modelo completo do pedido (antiga implementação SuppliersInvoiceModel=Modelo completo da fatura do fornecedor IfSetToYesDontForgetPermission=Se definido como um valor não nulo, não se esqueça de fornecer permissões a grupos ou usuários com permissão para a segunda aprovação GeoIPMaxmindSetup=Configurações do módulo GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Caminho para o arquivo contendo Maxmind ip para tradução do país.
    Exemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb NoteOnPathLocation=Nota que seu ip para o arquivo de dados do país deve estar dentro do diretório do seu PHP que possa ser lido (Verifique a configuração do seu PHP open_basedir e o sistema de permissões). YouCanDownloadFreeDatFileTo=Você pode baixar uma Versão demo do arquivo Maxmind GeoIP do seu país no %s. YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão mais completa, com updates do arquivo Maxmind GeoIP do seu país no %s. @@ -1474,7 +1461,7 @@ LinkColor=Cor dos linques PressF5AfterChangingThis=Pressione CTRL+F5 no teclado ou limpe o cache do seu navegador após mudar este valor para torná-lo efetivo NotSupportedByAllThemes=Trabalhará com os temas principais, pode não ser suportado por temas externos TopMenuBackgroundColor=Cor de fundo para o menu de topo -TopMenuDisableImages=Ocultar imagens no menu Superior +TopMenuDisableImages=Ícone ou texto no menu superior LeftMenuBackgroundColor=Cor do fundo para o menu esquerdo BackgroundTableTitleColor=Cor de fundo para a linha do título da Tabela BackgroundTableTitleTextlinkColor=Cor do texto da linha de link do título da tabela @@ -1485,6 +1472,7 @@ NbAddedAutomatically=Número de dias adicionados para contadores de usuários (a EnterAnyCode=Este campo contém uma referência para identificar a linha. Insira qualquer valor de sua escolha, mas sem caracteres especiais. Enter0or1=Digite 0 ou 1 ColorFormat=A cor RGB está no formato HEX, ex.: FF0000 +PictoHelp=Nome do ícone no formato:
    - image.png para um arquivo de imagem no diretório do tema atual
    - image.png@module se o arquivo estiver no diretório /img/ de um módulo
    - fa-xxx para um FontAwesome fa-xxx foto para
    - fonwtawesome_xxx_fa_color_size para a FontAwesome fa-xxx picto (com prefixo, cor e tamanho definido) PositionIntoComboList=Posição de linha em listas de combinação SellTaxRate=Taxa de imposto de venda RecuperableOnly=Sim para VAT "Não Percebido, mas Recuperável" dedicado a alguns estados na França. Mantenha o valor como "Não" em todos os outros casos. @@ -1555,24 +1543,41 @@ SeveralLangugeVariatFound=Várias variantes de idioma encontradas RemoveSpecialChars=Remover caracteres especiais COMPANY_DIGITARIA_CLEAN_REGEX=Filtro Regex para valor limpo (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicação não permitida +GDPRContactDesc=Caso guarde dados pessoais no seu Sistema de Informação, pode indicar aqui o contato responsável pelo Regulamento Geral de Proteção de Dados HelpOnTooltipDesc=Coloque texto ou uma chave de conversão aqui para o texto ser exibido em uma dica de ferramenta quando esse campo aparecer em um formulário YouCanDeleteFileOnServerWith=Você pode excluir este arquivo no servidor com a linha de comando:
    %s EnableFeatureFor=Ativar recursos para %s VATIsUsedIsOff=Nota: A opção de usar o Imposto sobre vendas ou o IVA foi definida como Desligada no menu %s - %s, portanto, o imposto sobre vendas ou IVA usado será sempre 0 para vendas. SwapSenderAndRecipientOnPDF=Troque o remetente e a posição do endereço do destinatário em documentos PDF FeatureSupportedOnTextFieldsOnly=Aviso, recurso compatível apenas com campos de texto e listas de combinação. Além disso, um parâmetro de URL ação=criar ou ação=editar deve ser definido OU o nome da página deve terminar com 'new.php' para acionar este recurso. +EmailCollectors=Coletores de e-mail EmailCollectorDescription=Adicione um trabalho agendado e uma página de configuração para verificar regularmente as caixas de e-mail (usando o protocolo IMAP) e registre os e-mails recebidos em seu aplicativo, no lugar certo e / ou crie alguns registros automaticamente (como leads). NewEmailCollector=Novo coletor de e-mail EmailcollectorOperationsDesc=As operações são executadas de cima para baixo MaxEmailCollectPerCollect=Número máximo de e-mails coletados por coleta +ConfirmCloneEmailCollector=Tem certeza de que deseja clonar o coletor de e-mail %s ? DateLastCollectResult=Data da última tentativa de coleta DateLastcollectResultOk=Data da última coleta bem sucedida LastResult=Último resultado +EmailCollectorHideMailHeaders=Não inclua o conteúdo do cabeçalho do e-mail no conteúdo salvo dos e-mails coletados +EmailCollectorHideMailHeadersHelp=Quando ativado, os cabeçalhos de e-mail não são adicionados ao final do conteúdo do e-mail que é salvo como um evento da agenda. EmailCollectorConfirmCollectTitle=Confirmação de recebimento de e-mail +EmailCollectorConfirmCollect=Deseja executar este coletor agora? +EmailCollectorExampleToCollectTicketRequestsDesc=Colete emails que correspondam a algumas regras e crie automaticamente um ticket (o Ticket do Módulo deve estar habilitado) com as informações do email. Você pode usar este coletor se fornecer algum suporte por e-mail, para que sua solicitação de ticket seja gerada automaticamente. Ative também Collect_Responses para coletar as respostas do seu cliente diretamente na visualização do ticket (você deve responder do Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Exemplo de coleta da solicitação de ticket (somente primeira mensagem) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Examine o diretório "Enviados" da sua caixa de correio para encontrar e-mails que foram enviados como resposta de outro e-mail diretamente do seu software de e-mail e não do Dolibarr. Se tal e-mail for encontrado, a resposta do evento será registrada no Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Exemplo de coleta de respostas de e-mail enviadas de um software de e-mail externo +EmailCollectorExampleToCollectDolibarrAnswersDesc=Colete todos os e-mails que são uma resposta de um e-mail enviado do seu aplicativo. Um evento (A Agenda do Módulo deve estar habilitada) com a resposta do e-mail será registrada no local correto. Por exemplo, se você enviar uma proposta comercial, pedido, fatura ou mensagem de ticket por e-mail do aplicativo, e o destinatário responder seu e-mail, o sistema automaticamente vai pegar a resposta e adicioná-la ao seu ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Exemplo coletando todas as mensagens recebidas sendo respostas a mensagens enviadas de Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Colete emails que correspondam a algumas regras e crie automaticamente um lead (Modulo Projeto deve estar habilitado) com as informações do email. Você pode usar este coletor se quiser seguir seu lead usando o módulo Projeto (1 lead = 1 projeto), para que seus leads sejam gerados automaticamente. Caso o coletor Collect_Responses também esteja habilitado, ao enviar um e-mail de seus leads, propostas ou qualquer outro objeto, você também poderá ver as respostas de seus clientes ou parceiros diretamente no aplicativo.
    Observação: Com este exemplo inicial, o título do lead é gerado incluindo o e-mail. Se o terceiro não puder ser encontrado no banco de dados (novo cliente), o lead será anexado ao terceiro com ID 1. +EmailCollectorExampleToCollectLeads=Exemplo de coleta de leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Colete os e-mails que se aplicam as ofertas de emprego (o Módulo de Recrutamento deve estar ativado). Você pode preencher este coletor se quiser criar automaticamente uma candidatura para uma solicitação de trabalho. Nota: Com este exemplo inicial, é gerado o título da candidatura incluindo o email. +EmailCollectorExampleToCollectJobCandidatures=Exemplo de coleta de candidaturas de emprego recebidas por e-mail NoNewEmailToProcess=Nenhum novo e-mail (filtros correspondentes) para processar -XEmailsDoneYActionsDone=%s e-mails qualificados, %s e-mails processados com sucesso (para registro %s/ações executadas) +XEmailsDoneYActionsDone=%s e-mails pré-qualificados, %s e-mails processados ​​com sucesso (para %s registro/ações realizadas) RecordEvent=Gravar um evento na agenda (com tipo Email enviado ou recebido) CreateLeadAndThirdParty=Crie um lead (e um terceiro, se necessário) +CreateTicketAndThirdParty=Crie um ticket (vinculado a um terceiro se o terceiro foi carregado por uma operação anterior ou foi adivinhado de um rastreador no cabeçalho do e-mail, sem terceiros de outra forma) CodeLastResult=Código do último resultado NbOfEmailsInInbox=Número de e-mails no diretório de origem LoadThirdPartyFromName=Carregar pesquisa de terceiros em %s (carregar somente) @@ -1586,13 +1591,13 @@ CreateCandidature=Criar formulário de emprego FormatZip=CEP MainMenuCode=Código de entrada do menu (mainmenu) ECMAutoTree=Mostrar árvore de ECM automática -OperationParamDesc=Defina as regras a serem usadas para extrair ou definir valores.
    Exemplo para operações que precisam extrair um nome do assunto do email:
    name=EXTRACT:SUBJECT:Message from company ([^\n] *)
    Exemplo para operações que criam objectos:
    objproperty1 = SET, o valor de conjunto
    objproperty2 = SET, um valor incluindo valor de __objproperty1__
    objproperty3 = SETIFEMPTY: valor utilizado se objproperty3 se não já definido
    objproperty4 = EXTRACTO: HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:O nome da minha empresa é\\s( [^\\s]*)

    Use um ; char como separador para extrair ou definir várias propriedades. OpeningHours=Horário de abertura OpeningHoursDesc=Digite aqui os horários de funcionamento da sua empresa. ResourceSetup=Configuração do módulo de recursos UseSearchToSelectResource=Usa um formulário de busca para a escolha de um recurso (em vez de uma lista suspensa) DisabledResourceLinkUser=Desativar recurso para vincular um recurso a usuários DisabledResourceLinkContact=Desativar recurso para vincular um recurso a contatos +EnableResourceUsedInEventCheck=Proibir o uso do mesmo recurso ao mesmo tempo na agenda DisableProspectCustomerType=Desative o tipo de terceiro "Cliente em potencial + cliente" (portanto, o terceiro deve ser "Cliente em potencial" ou "Cliente", mas não pode ser os dois) MAIN_OPTIMIZEFORTEXTBROWSER=Simplifique a interface para pessoas cegas MAIN_OPTIMIZEFORTEXTBROWSERDesc=Ative esta opção se você for uma pessoa cega ou se usar o aplicativo em um navegador de texto como o Lynx ou o Links. @@ -1642,6 +1647,9 @@ EmailTemplate=Modelo para e-mail EMailsWillHaveMessageID=Os e-mails terão a tag 'Referências' correspondente a esta sintaxe PDF_SHOW_PROJECT=Exibir projeto no documento ShowProjectLabel=Rótulo do Projeto +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Incluir aliases no nome de terceiros +THIRDPARTY_ALIAS=Nome de terceiros - alias de terceiros +ALIAS_THIRDPARTY=Alias de terceiro - Nome de terceiro PDF_USE_ALSO_LANGUAGE_CODE=Se você deseja duplicar alguns textos em seu PDF em 2 idiomas diferentes no mesmo PDF gerado, defina aqui esse segundo idioma para que o PDF gerado contenha 2 idiomas diferentes na mesma página, o escolhido ao gerar PDF e este ( apenas alguns modelos de PDF suportam isso). Mantenha em branco para 1 idioma por PDF. PDF_USE_A=Gerar documentos no formato PDF/A ao invés do formato PDF padrão FafaIconSocialNetworksDesc=Digite aqui o código de um ícone FontAwesome. Se você não souber o que é FontAwesome, poderá usar o valor genérico fa-address-book. @@ -1670,12 +1678,10 @@ MailToPartnership=Parceria AGENDA_EVENT_DEFAULT_STATUS=Status de evento padrão ao criar um evento a partir do formulário YouShouldDisablePHPFunctions=Você deve desabilitar funções PHP IfCLINotRequiredYouShouldDisablePHPFunctions=A não ser que você precise executar comandos do sistema via personalizações, você deve desativar as funções do PHP -PHPFunctionsRequiredForCLI=Para efeito de linha de comando (como tarefas agendadas para backup ou executar antivirus), você deve manter as funções PHP NoWritableFilesFoundIntoRootDir=Nenhum arquivo gravável ou diretório de programas comuns foi encontrado em seu diretório raiz (bom) RecommendedValueIs=Recomendado: %s Recommended=Versão Recomendada NotRecommended=Não recomendado -ARestrictedPath=Algum caminho restrito CheckForModuleUpdate=Verificar se há atualizações para módulos externos CheckForModuleUpdateHelp=Esta ação se conectará a editores de módulos externos para verificar se uma nova versão está disponível. ModuleUpdateAvailable=Uma atualização está disponível @@ -1720,4 +1726,25 @@ LateWarningAfter=Aviso "atrasado" após TemplateforBusinessCards=Modelo para um cartão de visita em tamanho diferente InventorySetup=Configuração de inventário ExportUseLowMemoryMode=Use um modo de pouca memória -ExportUseLowMemoryModeHelp=Use o modo de memória baixa para executar o exec do dump (a compactação é feita através de um pipe em vez de na memória PHP). Este método não permite verificar se o arquivo está completo e a mensagem de erro não pode ser relatada se falhar. +ModuleWebhookDesc =Interface para capturar gatilhos do dolibarr e enviá-los para uma URL +WebhookSetup =Configuração do webhook +Settings =Configurações +WebhookSetupPage =Página de configuração do webhook +ShowQuickAddLink=Mostrar um botão para adicionar rapidamente um elemento no menu superior direito +HashForPing=Hash usado para ping +ReadOnlyMode=A instância está no modo "Somente leitura" +DEBUGBAR_USE_LOG_FILE=Use o arquivo dolibarr.log para interceptar Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use o arquivo dolibarr.log para interceptar Logs em vez de captura de memória ao vivo. Ele permite capturar todos os logs em vez de apenas o log do processo atual (incluindo o das páginas de sub-requests ajax), mas tornará sua instância muito lenta. Não recomendado. +FixedOrPercent=Fixo (use a palavra-chave 'fixo') ou percentual (use a palavra-chave 'percentual') +DefaultOpportunityStatus=Status de oportunidade padrão (primeiro status quando o lead é criado) +IconAndText=Ícone e texto +TextOnly=Somente texto +IconOnlyAllTextsOnHover=Somente ícone - Todos os textos aparecem sob o ícone na barra de menu do mouse +IconOnlyTextOnHover=Somente ícone - O texto do ícone aparece sob o ícone no mouse, passe o ícone +IconOnly=Somente ícone - Texto apenas na dica de ferramenta +INVOICE_ADD_ZATCA_QR_CODE=Mostrar o código QR ZATCA nas faturas +INVOICE_ADD_ZATCA_QR_CODEMore=Alguns países árabes precisam deste QR Code em suas faturas +INVOICE_ADD_SWISS_QR_CODE=Mostrar o código QR-Bill suíço nas faturas +UrlSocialNetworksDesc=Link da URL da rede social. Use {socialid} para a parte variável que contém o ID da rede social. +IfThisCategoryIsChildOfAnother=Se esta categoria for filha de outra +NoName=Sem nome diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index ead0d7a907d..5c136b08dbe 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -96,7 +96,6 @@ DeleteTransaction=Excluir transação ConfirmDeleteTransaction=Você tem certeza que deseja excluir esta transação? ThisWillAlsoDeleteBankRecord=Isto também excluirá as transações geradas PlannedTransactions=Transações planejadas -Graph=Gráficos ExportDataset_banque_1=Entradas bancárias e demonstrações contábeis ExportDataset_banque_2=Comprovante de depósito TransactionOnTheOtherAccount=Transação de outra conta diff --git a/htdocs/langs/pt_BR/bills.lang b/htdocs/langs/pt_BR/bills.lang index 2bb88f290e5..a846be38a01 100644 --- a/htdocs/langs/pt_BR/bills.lang +++ b/htdocs/langs/pt_BR/bills.lang @@ -88,7 +88,6 @@ DoPaymentBack=Insira o reembolso EnterPaymentReceivedFromCustomer=Entrar pagamento recebido de cliente EnterPaymentDueToCustomer=Realizar pagamento devido para cliente DisabledBecauseRemainderToPayIsZero=Desabilitado porque o restante a pagar é zero -PriceBase=Preço base BillStatus=Status de fatura StatusOfGeneratedInvoices=Situação das faturas geradas BillStatusDraft=Rascunho (precisa ser validada) diff --git a/htdocs/langs/pt_BR/commercial.lang b/htdocs/langs/pt_BR/commercial.lang index a70dde7954c..d7296bed8f8 100644 --- a/htdocs/langs/pt_BR/commercial.lang +++ b/htdocs/langs/pt_BR/commercial.lang @@ -54,7 +54,5 @@ Stats=Estatísticas de vendas StatusProsp=Status de prospecto de cliente DraftPropals=Minutas de orçamentos ToOfferALinkForOnlineSignature=Link para assinatura on-line -WelcomeOnOnlineSignaturePage=Bem-vindo à página para aceitar propostas comerciais de %s -ThisScreenAllowsYouToSignDocFrom=Esta tela permite que você aceite e assine ou recuse um orçamento / proposta comercial SignatureProposalRef=Assinatura da cotação / proposta comercial %s FeatureOnlineSignDisabled=Recurso para assinatura online desabilitado ou documento gerado antes que o recurso fosse ativado diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index 1833c7ab75a..41baf08b8ca 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -44,12 +44,13 @@ PostOrFunction=Cargo NatureOfContact=Natureza do Contato Address=Endereço State=Estado/Província +StateId=ID do estado StateCode=Código do Estado / Cidade StateShort=Status do Cadastro Region=Região Region-State=Região - Estado CountryCode=Código do país -CountryId=ID do país +CountryId=ID do País Call=Chamar PhonePro=Telefone comercial PhonePerso=Tel. particular @@ -78,6 +79,7 @@ WrongCustomerCode=Código de cliente inválido WrongSupplierCode=Código do fornecedor inválido CustomerCodeModel=Modelo de código de cliente SupplierCodeModel=Modelo de código do fornecedor +GencodBuyPrice=Código de barras do preço ref ProfId1Short=ID prof. 1 ProfId2Short=ID prof. 2 ProfId3Short=ID prof. 3 @@ -100,12 +102,21 @@ ProfId3CH=Prof Id 1 (Número federal) ProfId4CH=Prof Id 2 (Número gravado comercial) ProfId1CM=Id. prof. 1 (Registro Comercial) ProfId2CM=Id. prof. 2 (nº de Contribuinte) +ProfId3CM=Id. prof. 3 (Nº do decreto de criação) +ProfId4CM=Id. prof. 4 (Nº do certificado do depósito) +ProfId5CM=Id. prof. 5 (Outros) +ProfId1ShortCM=Registro de Comércio +ProfId2ShortCM=Nº de contribuinte +ProfId3ShortCM=Nº do decreto da criação +ProfId4ShortCM=N.º do certificado do depósito ProfId2ES=Prof Id 2 (Número de seguro social) ProfId4ES=Prof Id 4 (Número do colegial) ProfId1FR=SIREN ProfId2FR=SIRET ProfId3FR=NAF (Ex APE) ProfId4FR=RCS/RM +ProfId1ShortFR=SIRENE +ProfId2ShortFR=RENDA ProfId1GB=Número do registro ProfId4IN=ID prof. 4 ProfId5IN=ID prof. 5 @@ -121,6 +132,7 @@ ProfId3TN=Código na Alfandega ProfId4TN=CCC ProfId1US=Id do Prof (FEIN) ProfId2RO=Prof Id 2 (nº de registro) +ProfId4UA=Prof Id 4 (Certificado) ProfId3DZ=Numero do Contribuinte ProfId4DZ=Numero de Identificação Social VATIntra=ID do IVA @@ -166,11 +178,13 @@ SupplierCodeShort=Código Fornecedor SupplierCodeDesc=Código do Fornecedor, exclusivo para todos os fornecedores RequiredIfCustomer=Necessário se o terceiro for um cliente ou um possível cliente RequiredIfSupplier=Obrigatório se terceiros são fornecedores +ValidityControledByModule=Validade controlada pelo módulo ProspectToContact=Prospecto de cliente a contactar CompanyDeleted=A empresa "%s" foi excluída do banco de dados. ListOfContacts=Lista de contatos/endereços ListOfContactsAddresses=Lista de contatos/endereços ShowContact=Contato - Endereço +ContactType=Função de contato ContactForOrders=Contato de pedidos ContactForOrdersOrShipments=Contato do pedido ou da remessa ContactForProposals=Contato de orçamentos @@ -188,6 +202,7 @@ CapitalOf=Capital de %s EditCompany=Editar empresa ThisUserIsNot=Este usuário não é um cliente em potencial, cliente ou fornecedor VATIntraCheckDesc=O ID do IVA deve incluir o prefixo do país. O link %s usa o serviço europeu de verificação de IVA (VIES), que requer acesso à Internet do servidor Dolibarr. +VATIntraManualCheck=Você também pode verificar manualmente no site da Comissão Europeia %s ErrorVATCheckMS_UNAVAILABLE=Verificação não é possível. Verifique o serviço não é necessário por um membro de estado (%s). NorProspectNorCustomer=Nem possivel cliente, nem cliente JuridicalStatus=Tipo de entidade comercial @@ -243,13 +258,16 @@ LastModifiedThirdParties=Últimos %sTerceiros modificados UniqueThirdParties=Número total de terceiros ActivityCeased=Inativo ThirdPartyIsClosed=O terceiro está fechado +ProductsIntoElements=Lista de produtos/serviços mapeados para 1%s CurrentOutstandingBill=Notas aberta correntes OutstandingBill=Conta excelente OutstandingBillReached=Máx. para dívida a ser alcançado +MonkeyNumRefModelDesc=Retorne um número no formato 1%s yymm-nnnn para o código do cliente e 1%s yymm-nnnn para o código do fornecedor onde yy é o ano, mm é o mês e nnnn é um número sequencial de auto incremento sem quebra e sem retorno a 0. LeopardNumRefModelDesc=O código é livre. Esse código pode ser modificado a qualquer hora. ManagingDirectors=Nome do Representante(CEO,Diretor,Presidente...) MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir) MergeThirdparties=Mesclar terceiros +ConfirmMergeThirdparties=Tem certeza de que deseja mesclar o terceiro escolhido com o atual? Todos os objetos vinculados (faturas, pedidos, ...) serão movidos para o terceiro atual, após o que o terceiro escolhido será excluído. ThirdpartiesMergeSuccess=Terceiros foram mesclados SaleRepresentativeLogin=Login para o representante de vendas SaleRepresentativeLastname=Sobrenome do representante de vendas @@ -262,5 +280,8 @@ PaymentTypeSupplier=Tipo de pagamento - Fornecedor PaymentTermsSupplier=Termos de pagamento - Fornecedor PaymentTypeBoth=Tipo de Pagamento - Cliente e Fornecedor MulticurrencyUsed=Uso de Multimoeda +InEEC=Europa (EEC) +RestOfEurope=Resto da Europa (EEC) +OutOfEurope=Fora da Europa (EEC) CurrentOutstandingBillLate=Atual fatura pendente atrasada BecarefullChangeThirdpartyBeforeAddProductToInvoice=Cuidado, dependendo das configurações de preço do produto, você deve trocar de fornecedor antes de adicionar o produto ao PDV. diff --git a/htdocs/langs/pt_BR/compta.lang b/htdocs/langs/pt_BR/compta.lang index f272f622a09..876aa33a875 100644 --- a/htdocs/langs/pt_BR/compta.lang +++ b/htdocs/langs/pt_BR/compta.lang @@ -150,8 +150,6 @@ CalculationRuleDesc=Para calcular o total do VAT, há dois métodos:
    Métod CalculationRuleDescSupplier=De acordo com o fornecedor, escolha o método apropriado para aplicar a mesma regra de cálculo e obter o mesmo resultado esperado pelo fornecedor. CalculationMode=Forma de cálculo AccountancyJournal=código do Livro de Registro contábil -ACCOUNTING_VAT_PAY_ACCOUNT=Conta da contabilidade padrão para o pagamento de ICMS -ACCOUNTING_ACCOUNT_CUSTOMER=Conta contábil usada para terceiros de clientes ACCOUNTING_ACCOUNT_SUPPLIER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada apenas para a contabilidade da subconta. Este será usado para contabilidade geral e como valor padrão da contabilidade do Contador, se a conta contábil do fornecedor dedicada a terceiros não estiver definida. CloneTaxForNextMonth=Clonar para o proximo mes AddExtraReport=Relatórios extra (adicionar relatório de clientes estrangeiros e nacionais) diff --git a/htdocs/langs/pt_BR/datapolicy.lang b/htdocs/langs/pt_BR/datapolicy.lang new file mode 100644 index 00000000000..f43e1e17337 --- /dev/null +++ b/htdocs/langs/pt_BR/datapolicy.lang @@ -0,0 +1,17 @@ +# Dolibarr language file - Source file is en_US - datapolicy +Module4100Name =Política de privacidade de dados +datapolicySetup =Configuração do módulo de política de privacidade +Deletion =Exclusão de dados +ONE_YEAR =1 ano +DATAPOLICY_TIERS_PROSPECT =Prospecto de cliente +DATAPOLICY_TIERS_PROSPECT_CLIENT =Prospecto/Cliente +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT =Nem prospecto/Nem cliente +DATAPOLICY_CONTACT_PROSPECT =Prospecto de cliente +DATAPOLICY_CONTACT_PROSPECT_CLIENT =Prospecto/Cliente +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT =Nem prospecto/Nem cliente +DATAPOLICY_ADHERENT =Associado +DATAPOLICYMail =Configuração de e-mails +DATAPOLICYSUBJECTMAIL =Título do e-mail +DATAPOLICYCONTENTMAIL =Conteúdo do e-mail +SendAgreement =Enviar e-mails +AllAgreementSend =Todos os e-mails foram enviados diff --git a/htdocs/langs/pt_BR/deliveries.lang b/htdocs/langs/pt_BR/deliveries.lang index ad1c983b4a0..9e3a1f4495f 100644 --- a/htdocs/langs/pt_BR/deliveries.lang +++ b/htdocs/langs/pt_BR/deliveries.lang @@ -2,7 +2,6 @@ Delivery=Entrega DeliveryRef=Ref. entrega DeliveryCard=Cartão de recibo -DeliveryOrder=Recibo de entrega DeliveryStateSaved=Estado de entrega salvo SetDeliveryDate=Indicar a Data de Envio ValidateDeliveryReceipt=Confirmar a Nota de Entrega @@ -12,7 +11,6 @@ DeleteDeliveryReceiptConfirm=Você tem certeza que deseja excluir o comprovante DeliveryMethod=Método de entrega TrackingNumber=Número de rastreamento StatusDeliveryValidated=Recebida -NameAndSignature=Nome e assinatura: GoodStatusDeclaration=Recebi a mercadorias acima em bom estado, Deliverer=Entregador : Sender=Remetente diff --git a/htdocs/langs/pt_BR/ecm.lang b/htdocs/langs/pt_BR/ecm.lang index 3c7bb7eddf3..1b5ed3fa5cb 100644 --- a/htdocs/langs/pt_BR/ecm.lang +++ b/htdocs/langs/pt_BR/ecm.lang @@ -12,7 +12,6 @@ ECMNbOfFilesInSubDir=Numero de arquivos nos subpastas ECMCreationUser=Criado por ECMArea=Área DMS / ECM ECMAreaDesc=A área DMS / ECM (Gerenciamento de documentos / Gerenciamento de conteúdo eletrônico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr. -ECMAreaDesc2=* As pastas automáticas são geradas automaticamente quando algum arquivo é adicionado a algum ficheiro do sistema.
    * As pastas manuais podem ser usados ​​para guardar documentos sem ligação a um cadastro do sistema. ECMSectionWasRemoved=A pasta %s foi eliminada ECMSearchByKeywords=Busca usando palavras chave ECMSearchByEntity=Busca por objeto diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang index 9bc55b42424..517027dde8c 100644 --- a/htdocs/langs/pt_BR/errors.lang +++ b/htdocs/langs/pt_BR/errors.lang @@ -64,7 +64,6 @@ ErrorFieldValueNotIn=Campo %s : '%s' não é um valor encontrado n ErrorFieldRefNotIn=Campo %s : '%s' não é uma referência existente %s ErrorsOnXLines=%s erros encontrados ErrorFileIsInfectedWithAVirus=O antivírus não foi capaz de atestar o arquivo (o arquivo pode estar infectado por um vírus) -ErrorSpecialCharNotAllowedForField=O campo "%s" não aceita caracteres especiais ErrorNumRefModel=Uma referência existe no banco de dados (% s) e não é compatível com esta regra de numeração. Remover registro ou referência renomeado para ativar este módulo. ErrorQtyTooLowForThisSupplier=Quantidade muito baixa para este fornecedor ou nenhum preço definido neste produto para este fornecedor ErrorOrdersNotCreatedQtyTooLow=Algumas encomendas não foram criadas por causa de quantidades muito baixas @@ -159,7 +158,6 @@ ErrorReplaceStringEmpty=Erro, a cadeia de caracteres para substituir está vazia ErrorPublicInterfaceNotEnabled=A interface pública não foi ativada WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Seu parâmetro PHP upload_max_filesize (%s) é maior que o parâmetro PHP post_max_size (%s). Esta não é uma configuração consistente. WarningPasswordSetWithNoAccount=A senha foi definida para esse membro. No entanto, nenhuma conta de usuário foi criada. Portanto, esta senha é armazenada, mas não pode ser usado para acessar Dolibarr. Ele pode ser usado por um módulo / interface externa, mas se você não precisa definir qualquer login nem palavra-passe para um membro, você pode desabilitar a opção "Gerenciar um login para cada membro" da configuração do módulo-Membro. Se você precisa para gerenciar um login, mas não precisa de qualquer senha, você pode manter este campo em branco para evitar este aviso. Nota: E-mail pode também ser utilizado como uma entre o membro se está ligado a um utilizador. -WarningMandatorySetupNotComplete=Clique aqui para configurar os parâmetros obrigatórios WarningEnableYourModulesApplications=Clique aqui para ativar seus módulos e aplicativos WarningSafeModeOnCheckExecDir=Atenção, a opção PHP safe_mode está em modo de comando devem ser armazenados dentro de um diretório declarado pelo php parâmetro safe_mode_exec_dir. WarningBookmarkAlreadyExists=já existe um marcador com este título o esta URL. diff --git a/htdocs/langs/pt_BR/externalsite.lang b/htdocs/langs/pt_BR/externalsite.lang deleted file mode 100644 index 31cdbccc008..00000000000 --- a/htdocs/langs/pt_BR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configurar linque para o website externo -ExternalSiteURL=URL de site externo com conteúdo HTML iframe -ExternalSiteModuleNotComplete=O módulo SiteExterno não foi configurado corretamente. -ExampleMyMenuEntry=Minha entrada do menu diff --git a/htdocs/langs/pt_BR/ftp.lang b/htdocs/langs/pt_BR/ftp.lang deleted file mode 100644 index bbee2149a4e..00000000000 --- a/htdocs/langs/pt_BR/ftp.lang +++ /dev/null @@ -1,13 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configuração do módulo cliente FTP -NewFTPClient=Nova configuração da conexão FTP -FTPArea=Área FTP -FTPAreaDesc=Esta tela mostra uma visão de um servidor FTP. -SetupOfFTPClientModuleNotComplete=A configuração do módulo do cliente FTP parece estar incompleta -FTPFeatureNotSupportedByYourPHP=Seu PHP não suporta as funções de FTP -FailedToConnectToFTPServer=Falha na conexão ao servidor FTP (server% s, porta% s) -FailedToConnectToFTPServerWithCredentials=Falha ao efetuar login no servidor FTP com login/senha -FTPFailedToRemoveFile=Falha ao remover o arquivo %s. -FTPFailedToRemoveDir=Falha ao remover a pasta %s : Verifique as permissões e que a pasta está vazia -ChooseAFTPEntryIntoMenu=Escolha um Site FTP do menu ... -FailedToGetFile=Falha ao obter arquivos %s diff --git a/htdocs/langs/pt_BR/hrm.lang b/htdocs/langs/pt_BR/hrm.lang index c7e24c6b4ea..60dd9050bd3 100644 --- a/htdocs/langs/pt_BR/hrm.lang +++ b/htdocs/langs/pt_BR/hrm.lang @@ -3,5 +3,5 @@ HRM_EMAIL_EXTERNAL_SERVICE=E-mail para evitar HRM serviço externo Establishments=Estabelecimentos DeleteEstablishment=Excluir estabelecimento ConfirmDeleteEstablishment=Tem certeza de que deseja excluir este estabelecimento? -DictionaryDepartment=RH - Lista de departamentos DictionaryFunction=RH - Cargos +HrmSetup=Configuração do módulo RH diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang index 5604382edbd..bcc4805396b 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -13,7 +13,6 @@ ErrorWrongValueForParameter=Você pode ter digitado um valor incorreto para o pa ErrorFailedToCreateDatabase=Erro ao criar a base de dados' %s'. ErrorFailedToConnectToDatabase=Falha ao conectar com o banco de dados' %s'. ErrorDatabaseVersionTooLow=Versao do banco de dados (%s) é muito antiga. Versao %s ou maior e requerida. -ErrorPHPVersionTooLow=A versão do PHP é muito antiga. Versão %s é requerida. ErrorDatabaseAlreadyExists=Base de dados' %s' já existe. IfDatabaseExistsGoBackAndCheckCreate=Caso dados já existe, volte e desmarque a opção "Criar uma base de dados". License=Usando licença diff --git a/htdocs/langs/pt_BR/intracommreport.lang b/htdocs/langs/pt_BR/intracommreport.lang new file mode 100644 index 00000000000..a4106ad1cee --- /dev/null +++ b/htdocs/langs/pt_BR/intracommreport.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - intracommreport +Module68000Name =Relatório de comunicação interna +Module68000Desc =Gerenciamento de relatórios intracomm (suporte para o formato francês DEB/DES) +IntracommReportSetup =Configuração do módulo do relatório intracomm +MenuIntracommReport=Relatório de comunicação interna diff --git a/htdocs/langs/pt_BR/knowledgemanagement.lang b/htdocs/langs/pt_BR/knowledgemanagement.lang index 60ad5f67608..ce1b529d714 100644 --- a/htdocs/langs/pt_BR/knowledgemanagement.lang +++ b/htdocs/langs/pt_BR/knowledgemanagement.lang @@ -1,2 +1,15 @@ # Dolibarr language file - Source file is en_US - knowledgemanagement +ModuleKnowledgeManagementName =Sistema de Gestão do Conhecimento +ModuleKnowledgeManagementDesc=Gerenciar uma base de Gerenciamento de Conhecimento (KM) ou Help-Desk +KnowledgeManagementSetup =Configuração do Sistema de Gestão do Conhecimento +KnowledgeManagementSetupPage =Página de configuração do Sistema de Gerenciamento do Conhecimento +KnowledgeManagementAbout =Sobre a Gestão do Conhecimento +KnowledgeManagementAboutPage =Gestão do Conhecimento sobre a página +KnowledgeManagementArea =Gestão do conhecimento +MenuKnowledgeRecord =Base do conhecimento +KnowledgeRecordExtraFields =Extracampos para o artigo GroupOfTicket=Grupo de Tickets +SuggestedForTicketsInGroup=Sugerido para ingressos quando o grupo é +SetObsolete=Definir como obsoleto +ConfirmCloseKM=Você confirma o fechamento deste artigo como obsoleto? +ConfirmReopenKM=Deseja restaurar este artigo para o status "Validado"? diff --git a/htdocs/langs/pt_BR/loan.lang b/htdocs/langs/pt_BR/loan.lang index c3d86606ecb..678a6abbcec 100644 --- a/htdocs/langs/pt_BR/loan.lang +++ b/htdocs/langs/pt_BR/loan.lang @@ -17,8 +17,4 @@ ListLoanAssociatedProject=Lista de empréstimos associados ao projeto InterestAmount=Juro CapitalRemain=Capital permanecem TermPaidAllreadyPaid =Este termo já está pago -CantUseScheduleWithLoanStartedToPaid =Não é possível usar programador para empréstimo com o pagamento iniciado CantModifyInterestIfScheduleIsUsed =Você não pode alterar o interesse se usar o programador -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital contabilístico por padrão -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Interesse contabilístico por padrão -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Seguro contabilístico por padrão diff --git a/htdocs/langs/pt_BR/mailmanspip.lang b/htdocs/langs/pt_BR/mailmanspip.lang index bbea232c4ef..9e0a707c3eb 100644 --- a/htdocs/langs/pt_BR/mailmanspip.lang +++ b/htdocs/langs/pt_BR/mailmanspip.lang @@ -7,7 +7,6 @@ MailmanCreationSuccess=O teste da assinatura foi realizado com sucesso MailmanDeletionSuccess=O teste de cancelamento da assinatura foi realizado com sucesso SynchroMailManEnabled=O Mailman sera atualizado SynchroSpipEnabled=O SPIP sera atualizado -DescADHERENT_MAILMAN_ADMINPW=Senha do administrador Mailman DescADHERENT_MAILMAN_URL=URL para inscriçoes Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para desenscriçoes Mailman DescADHERENT_MAILMAN_LISTS=Lista(s) para inscriçao automatica de novos membros (separado por virgula) diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang index 761005516d0..3f2e6fa8a94 100644 --- a/htdocs/langs/pt_BR/main.lang +++ b/htdocs/langs/pt_BR/main.lang @@ -23,6 +23,7 @@ DatabaseConnection=Login à Base de Dados NoTemplateDefined=Nenhum modelo disponível para este tipo de email CurrentTimeZone=Timezone PHP (do servidor apache) EmptySearchString=Digite critérios na pesquisa +EnterADateCriteria=Insira um critério de data NoRecordFound=Nenhum registro encontrado NoRecordDeleted=Nenhum registro foi deletado NotEnoughDataYet=Sem dados suficientes @@ -85,6 +86,7 @@ RequestLastAccessInError=Últimos erros de acesso ao banco de dados ReturnCodeLastAccessInError=Código de retorno do último erro de acesso ao banco de dados InformationLastAccessInError=Informação do último erro de acesso ao banco de dados YouCanSetOptionDolibarrMainProdToZero=Você pode ler o arquivo de log ou definir a opção $ dolibarr_main_prod como '0' no seu arquivo de configuração para obter mais informações. +InformationToHelpDiagnose=Essas informações podem ser úteis para fins de diagnóstico (você pode definir a opção $dolibarr_main_prod como '1' para ocultar informações confidenciais) LineID=ID da linha PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a precisão dos preços unitários a %s Decimais. NoFilter=Nenhum filtro @@ -126,14 +128,16 @@ Hide=ocultar ShowCardHere=Mostrar cartão SearchMenuShortCut=Ctrl + Shift + F QuickAdd=Adição rápida +OpenVerb=Aberto SelectAll=Selecionar tudo Resize=Modificar tamanho ResizeOrCrop=Redimensionar ou cortar Recenter=Recolocar no centro User=Usuário Users=Usuário +UserGroup=Grupo de usuários +UserGroups=Grupos de usuários NoUserGroupDefined=Nenhum grupo definido pelo usuário -PasswordRetype=Repetir Senha NoteSomeFeaturesAreDisabled=Antenção, só poucos módulos/funcionalidade foram ativados nesta demo NameSlashCompany=Nome / Companhia PersonalValue=Valor Personalizado @@ -142,10 +146,12 @@ CurrentValue=Valor atual MultiLanguage=Multi Idioma RefOrLabel=Ref. da etiqueta DescriptionOfLine=Descrição da Linha +ParentLine=ID da linha superior Model=Modelo de Documento DefaultModel=Modelo de documento padrão Action=Ação About=Acerca de +NumberByMonth=Total de relatórios por mês Limit=Límite Logout=Sair NoLogoutProcessWithAuthMode=No recurso de desconexão aplicativo com modo de autenticação @@ -184,7 +190,6 @@ Morning=Manha Quadri=Trimistre CurrencyRate=Taxa de conversão moeda UseLocalTax=Incluindo taxa -UserAuthor=Criado por UserModif=Modificado por Default=Padrao DefaultValue=Valor por default @@ -195,11 +200,13 @@ UnitPriceHTCurrency=Preço unitário (sem) (Moeda) UnitPriceTTC=Preço Unit. Total PriceU=Preço Unit. PriceUHT=Preço Unit. +PriceUHTCurrency=U.P (líquido) (moeda) PriceUTTC=U.P. (inc. Impostos) Amount=Valor AmountInvoice=Valor Fatura AmountInvoiced=Valor faturado AmountInvoicedHT=Valor faturado (sem imposto) +AmountInvoicedTTC=Valor faturado (incluindo impostos) AmountPayment=Valor Pagamento AmountHTShort=Quantidade (liq.) AmountTTCShort=Valor (incl. taxas) @@ -211,6 +218,7 @@ MulticurrencyRemainderToPay=Permanecer para pagar, moeda original MulticurrencyAmountHT=Valor (sem impostos) moeda original MulticurrencyAmountTTC=Quantia (com as taxas), na moeda original MulticurrencyAmountVAT=Valor das taxas, na moeda original +MulticurrencySubPrice=Valor do subpreço multimoeda AmountLT1=Valor taxa 2 AmountLT2=Valor taxa 3 AmountLT1ES=Valor RE @@ -219,6 +227,8 @@ AmountTotal=Valor Total AmountAverage=Valor médio PriceQtyMinHT=Quantidade de preço min. (sem imposto) PriceQtyMinHTCurrency=Quantidade de preço min. (sem imposto) (moeda) +PercentOfOriginalObject=Porcentagem do objeto original +AmountOrPercent=Quantidade ou porcentagem TotalHTShort=Total (liq.) TotalHT100Short=Total 100%% (liq.) TotalHTShortCurrency=Total (excluindo em moeda) @@ -241,6 +251,7 @@ VATINs=Impostos IGST LT1Type=Tipo de imposto sobre vendas 2 LT2Type=Tipo de imposto sobre vendas 3 VATRate=Taxa ICMS +RateOfTaxN=Taxa de imposto %s VATCode=Codigo do ICMS VATNPR=Valor taxa NPR DefaultTaxRate=Taxa de imposto padrão @@ -286,8 +297,11 @@ to=para To=para ToDate=para ToLocation=para +at=no OtherInformations=Outra informação +Workflow=Fluxo de Trabalho ApprovedBy2=Aprovado pelo (segunda aprovação) +ValidatedToProduce=Validado (Para produzir) OpenAll=Abertos(todos) ClosedAll=Fechados(Todos) ByUsers=Pelo usuário @@ -307,6 +321,7 @@ MonthShort10=Out MonthShort12=Dez AttachedFiles=Arquivos e Documentos Anexos JoinMainDoc=Junte-se ao documento principal +JoinMainDocOrLastGenerated=Envie o documento principal ou o último gerado se não for encontrado ReportPeriod=Periodo de Análise Fill=Preencher Reset=Resetar @@ -321,6 +336,7 @@ Entities=Entidadees CustomerPreview=Historico Cliente SupplierPreview=Visualização do fornecedor ShowCustomerPreview=Ver Historico Cliente +InternalRef=Ref. interna SeeAll=Ver tudo SendByMail=Envio por e-mail MailSentBy=Mail enviado por @@ -394,6 +410,7 @@ LinkToSupplierOrder=Link para Ordem de compra LinkToSupplierInvoice=Link para a fatura do fornecedor LinkToContract=Link para o Contrato LinkToIntervention=Link para a Intervensão +LinkToMo=Link para Mo SetToDraft=Voltar para modo rascunho ClickToRefresh=Clique para atualizar EditWithEditor=Editar com o CKEditor @@ -426,6 +443,7 @@ XMoreLines=%s linha(s) escondidas ShowMoreLines=Mostrar mais / menos linhas PublicUrl=URL pública AddBox=Adicionar caixa +SelectElementAndClick=Selecione um elemento e clique em %s PrintFile=Imprimir arquivo %s ShowTransaction=Mostrar entrada na conta bancária ShowIntervention=Mostrar intervençao @@ -467,9 +485,14 @@ Miscellaneous=Variados Calendar=Calendário GroupBy=Agrupar por ViewFlatList=Visão da lista resumida +ViewAccountList=Ver razão +ViewSubAccountList=Ver razão da subconta RemoveString=Remover string '%s' +SomeTranslationAreUncomplete=Alguns dos idiomas oferecidos podem estar parcialmente traduzidos ou podem conter erros. Ajude a corrigir seu idioma registrando-se em https://transifex.com/projects/p/dolibarr/ para adicionar suas melhorias. DirectDownloadLink=Link de download público +PublicDownloadLinkDesc=Apenas o link é necessário para baixar o arquivo DirectDownloadInternalLink=Link privado para baixar +PrivateDownloadLinkDesc=Você precisa estar logado e precisa de permissões para visualizar ou baixar o arquivo Download=Baixar DownloadDocument=Descarregar documento ActualizeCurrency=Atualizar taxa de câmbio @@ -510,6 +533,7 @@ SearchIntoSupplierOrders=Pedidos de compra SearchIntoSupplierProposals=Propostas de fornecedores SearchIntoContracts=Contratos SearchIntoCustomerShipments=Remessas do cliente +SearchIntoKM=Base do conhecimento SearchIntoVendorPayments=Pagamentos do fornecedor CommentLink=Comentarios CommentPage=Espaço para comentarios @@ -521,6 +545,7 @@ Monthly=Por mês Remote=Controlo remoto Deletedraft=Excluir rascunho ConfirmMassDraftDeletion=Confirmação de exclusão de massa de esboço +FileSharedViaALink=Arquivo compartilhado com um link público SelectAThirdPartyFirst=Selecione um terceiro primeiro ... YouAreCurrentlyInSandboxMode=No momento você está no %s modo "caixa de areia" AnalyticCode=Código analitico @@ -532,6 +557,7 @@ PaymentInformation=Informações de Pagamento ValidFrom=Válido de NoRecordedUsers=Sem Usuários ToClose=Para Fechar +ToRefuse=Recusar ToProcess=A processar ToApprove=Para Aprovar GlobalOpenedElemView=Visão Global @@ -556,6 +582,19 @@ ByStatus=Por status Used=Usado ASAP=O mais breve possível CREATEInDolibarr=Registro %s criado +DefaultMailModel=Modelo de correio padrão DateOfBirth=Data de nascimento +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=O token de segurança expirou, então a ação foi cancelada. Por favor, tente novamente. +UpToDate=Atualizado +OutOfDate=Desatualizado +UpdateForAllLines=Atualização para todas as linhas OnHold=Em espera +Civility=Civilidade +CreateExternalUser=Criar usuário externo +CategTypeNotFound=Nenhum tipo de tag encontrado para o tipo de registro +CopiedToClipboard=Copiado para a área de transferência ClientTZ=Fuso Horário do cliente (usuário) +Terminate=Concluir +Terminated=Encerrado +InternalUser=Usuário Interno +ExternalUser=Usuário Externo diff --git a/htdocs/langs/pt_BR/members.lang b/htdocs/langs/pt_BR/members.lang index a16f6934198..b184d94c318 100644 --- a/htdocs/langs/pt_BR/members.lang +++ b/htdocs/langs/pt_BR/members.lang @@ -12,7 +12,6 @@ ErrorUserPermissionAllowsToLinksToItselfOnly=Por razões de segurança, você de SetLinkToThirdParty=Link para um fornecedor Dolibarr MembersListResiliated=Lista de membros encerrados MenuMembersResiliated=Membros encerrados -MemberId=Id adesão MemberStatusDraft=Minuta (requer confirmação) MemberStatusDraftShort=Minuta MemberStatusActiveLateShort=Vencido @@ -66,7 +65,6 @@ MenuMembersStats=Estatísticas NewMemberbyWeb=Novo membro adicionado. Aguardando aprovação NewMemberForm=Formulário para novo membro TurnoverOrBudget=Volume de negócios (para uma empresa) ou de orçamento (para uma fundação) -MEMBER_NEWFORM_PAYONLINE=Ir na página de pagamento online integrado NoEmailSentToMember=Nenhum e-mail enviado para o membro MembershipPaid=Filiação paga pelo período atual (até %s) YouMayFindYourInvoiceInThisEmail=Você pode encontrar sua fatura anexada a este e-mail diff --git a/htdocs/langs/pt_BR/mrp.lang b/htdocs/langs/pt_BR/mrp.lang index e93ba7bf637..8c3cede83dc 100644 --- a/htdocs/langs/pt_BR/mrp.lang +++ b/htdocs/langs/pt_BR/mrp.lang @@ -8,8 +8,7 @@ LatestBOMModified=Última BOM modificada %s LatestMOModified=%s pedidos de manufatura mais recentes modificados Bom=Contas de material BOMsSetup=Configuração do módulo BOM -ListOfBOMs=Lista de BOMs -ListOfManufacturingOrders=Lista de ordens de fabricação +ListOfManufacturingOrders=Ordens de fabricação BOMsNumberingModules=Modelos de numeração para BOM BOMsModelModule=Modelos de documentos lista técnica MOsNumberingModules=Modelos de numeração MO diff --git a/htdocs/langs/pt_BR/oauth.lang b/htdocs/langs/pt_BR/oauth.lang index e91d8d1d365..3dc1bf645fd 100644 --- a/htdocs/langs/pt_BR/oauth.lang +++ b/htdocs/langs/pt_BR/oauth.lang @@ -9,10 +9,8 @@ HasAccessToken=Um token foi gerado e salvo no banco de dados local NewTokenStored=Token recebido e salvo ToCheckDeleteTokenOnProvider=Clique aqui para verificar/apagar autorização salva pelo provedor OAuth %s TokenDeleted=Token excluído -RequestAccess=Clique aqui para solicitar/renovar o acesso e receber um novo token para salvar DeleteAccess=Clique aqui para apagar o token UseTheFollowingUrlAsRedirectURI=Use o URL a seguir como o URI de redirecionamento ao criar suas credenciais com seu provedor OAuth: -ListOfSupportedOauthProviders=Insira as credenciais fornecidas pelo seu provedor do OAuth2. Apenas fornecedores suportados do OAuth2 são listados aqui. Esses serviços podem ser usados por outros módulos que precisam da autenticação OAuth2. SeePreviousTab=Ver aba anterior OAuthIDSecret=Identificação OAuth e Senha TOKEN_REFRESH=Token Atualizar Presente @@ -20,7 +18,6 @@ TOKEN_EXPIRED=Token vencido TOKEN_EXPIRE_AT=Token expira no TOKEN_DELETE=Excluir token salvo OAUTH_GOOGLE_NAME=Serviço do Google OAuth -OAUTH_GOOGLE_DESC=Ir para esta página e depois "Credenciais" para criar credenciais do OAuth OAUTH_GITHUB_NAME=Serviço OAuth GitHub OAUTH_GITHUB_SECRET=OAuth GitHub secreto -OAUTH_GITHUB_DESC=Vá para esta página e, em seguida, "Registrar um novo aplicativo" para criar credenciais do OAuth +OAUTH_STRIPE_TEST_NAME=Teste de distribuição do OAuth diff --git a/htdocs/langs/pt_BR/projects.lang b/htdocs/langs/pt_BR/projects.lang index 3d2653e0910..e51fe18af1f 100644 --- a/htdocs/langs/pt_BR/projects.lang +++ b/htdocs/langs/pt_BR/projects.lang @@ -104,7 +104,6 @@ OpportunityProbability=Lead: Probabilidade OpportunityProbabilityShort=Probab. de um potencial negócio OpportunityAmount=Lead: Quantidade OpportunityAmountShort=Quantidade de lead -OpportunityWeightedAmount=Valor ponderado da oportunidade OpportunityWeightedAmountShort=Opp. quantidade ponderada OpportunityAmountAverageShort=Valor do potencial negócio OpportunityAmountWeigthedShort=Quantidade de lead ponderada @@ -134,7 +133,6 @@ NotOpenedOpportunitiesShort=Não é um lead aberto OppStatusPROSP=Prospecção OppStatusPROPO=Proposta OppStatusWON=Ganhou -AllowToLinkFromOtherCompany=Permitir vincular projeto de outra empresa

    Valores Suportados:
    - Manter vazio: pode vincular qualquer projeto da empresa (padrão)
    - "todos" pode vincular qualquer projeto, até mesmo projetos de outras empresas
    - Uma lista de IDs de terceiros separados por vírgulas: pode vincular todos os projetos desses terceiros (Exemplo: 123,4795,53)
    LatestModifiedProjects=Últimos projetos modificados %s NoAssignedTasks=Nenhuma tarefa atribuída foi encontrada (atribua projeto/tarefas ao usuário atual na caixa de seleção superior para inserir a hora nele) ThirdPartyRequiredToGenerateInvoice=Um terceiro deve estar definido no projeto para que vc possa faturar contra ele @@ -146,7 +144,6 @@ TimeSpentInvoiced=Tempo gasto faturado TimeSpentForIntervention=Dispêndio de tempo TimeSpentForInvoice=Dispêndio de tempo OneLinePerUser=Uma linha por usuário -ServiceToUseOnLines=Serviço para usar em linhas InvoiceGeneratedFromTimeSpent=Fatura %s foi gerada a partir do tempo gasto no projeto ProjectBillTimeDescription=Verifique se você inseriu a planilha de horas nas tarefas do projeto e planeja gerar faturas a partir da planilha de horas para cobrar do cliente do projeto (não verifique se planeja criar faturas que não sejam baseadas nas planilhas de horas inseridas). Nota: Para gerar fatura, vá na guia 'Tempo gasto' do projeto e selecione as linhas a serem incluídas. ProjectFollowOpportunity=Seguir oportunidade diff --git a/htdocs/langs/pt_BR/propal.lang b/htdocs/langs/pt_BR/propal.lang index b1d9e978bf3..192d77ff1a3 100644 --- a/htdocs/langs/pt_BR/propal.lang +++ b/htdocs/langs/pt_BR/propal.lang @@ -56,21 +56,28 @@ TypeContact_propal_internal_SALESREPFOLL=Representante seguindo a proposta TypeContact_propal_external_BILLING=Contato da fatura cliente TypeContact_propal_external_CUSTOMER=Contato cliente seguindo a proposta TypeContact_propal_external_SHIPPING=Contato do cliente para entrega -DocModelAzurDescription=Um modelo de proposta completo (implementação antiga do modelo ciano) -DocModelCyanDescription=Um modelo de proposta completo +CaseFollowedBy=Caso seguido por +ConfirmMassNoSignatureQuestion=Tem certeza que quer marcar todos os registros selecionados como não assinados? +ConfirmMassSignatureQuestion=Tem certeza que quer assinar os registros selecionados? +ConfirmRefusePropal=Tem certeza que quer recusar essa proposta? +ContractSigned=Contrato assinado +DefaultModelPropalClosed=Modelo padrao no fechamento da proposta comercial (nao faturada) DefaultModelPropalCreate=Criaçao modelo padrao DefaultModelPropalToBill=Modelo padrao no fechamento da proposta comercial ( a se faturar) -DefaultModelPropalClosed=Modelo padrao no fechamento da proposta comercial (nao faturada) +DocModelAzurDescription=Um modelo de proposta completo (implementação antiga do modelo ciano) +DocModelCyanDescription=Um modelo de proposta completo +IdProduct=ID do produto +IdProposal=ID da proposta +IsNotADraft=Não é rascunho +LineBuyPriceHT=Comprar com valor do preço líquido de impostos para a linha +NoSigned=marcar não assinado +PassedInOpenStatus=foi validado +PropalRefused=Proposta recusada +PropalSigned=Proposta aceita ProposalCustomerSignature=Aceite por escrito, carimbo da empresa, data e assinatura ProposalsStatisticsSuppliers=Estatísticas de propostas de fornecedores -CaseFollowedBy=Caso seguido por -SignedOnly=Apenas assinado -IdProposal=ID da proposta -IdProduct=ID do produto -LineBuyPriceHT=Comprar com valor do preço líquido de impostos para a linha -SignPropal=Aceitar proposta RefusePropal=Recusar proposta Sign=Assinar -PropalSigned=Proposta aceita -PropalRefused=Proposta recusada -ConfirmRefusePropal=Tem certeza que quer recusar essa proposta? +SignPropal=Aceitar proposta +Signed=assinado +SignedOnly=Apenas assinado diff --git a/htdocs/langs/pt_BR/salaries.lang b/htdocs/langs/pt_BR/salaries.lang index 0ac1be4f306..880835e72d9 100644 --- a/htdocs/langs/pt_BR/salaries.lang +++ b/htdocs/langs/pt_BR/salaries.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Conta contábil usada para terceiros usuários -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=A conta contábil dedicada definida no cartão de usuário será usada somente para a contabilidade da Subconta. Este será usado para Contabilidade Geral e como valor padrão da contabilidade do Contador, se a conta contábil do usuário dedicada no usuário não estiver definida. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta da Contabilidade padrão para pagamentos de salário CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Por padrão, deixe em branco a opção "Criar automaticamente um pagamento total" ao criar um Salário NewSalary=Novo salário diff --git a/htdocs/langs/pt_BR/stocks.lang b/htdocs/langs/pt_BR/stocks.lang index 5c10bf68ee4..baaf149427c 100644 --- a/htdocs/langs/pt_BR/stocks.lang +++ b/htdocs/langs/pt_BR/stocks.lang @@ -145,8 +145,10 @@ ImportFromCSV=Importar lista de movimentos em CSV LabelOfInventoryMovemement=Inventario 1%s ObjectNotFound=1%s nao encontrado MakeMovementsAndClose=Gerar movimentos e fechar +AutofillWithExpected=Inserir quantidade real com quantidade esperada ErrorWrongBarcodemode=Modo de código de barras desconhecido ProductDoesNotExist=Produto não existe ProductBatchDoesNotExist=Produto com lote / serial não existe ProductBarcodeDoesNotExist=Produto com código de barras não existe +ToStart=Inicio InventoryStartedShort=Iniciado diff --git a/htdocs/langs/pt_BR/ticket.lang b/htdocs/langs/pt_BR/ticket.lang index 2a751f5516a..3e3279345a1 100644 --- a/htdocs/langs/pt_BR/ticket.lang +++ b/htdocs/langs/pt_BR/ticket.lang @@ -75,8 +75,6 @@ MarkAsRead=Marcar ingresso como lido TicketHistory=Histórico de bilhetes TicketChangeCategory=Modifica o código analítico TicketChangeSeverity=Alterar gravidade -TicketAddMessage=Adiciona uma mensagem -AddMessage=Adiciona uma mensagem MessageSuccessfullyAdded=Bilhete adicionado NoMsgForThisTicket=Nenhuma mensagem para este bilhete TicketProperties=Classificação @@ -85,8 +83,6 @@ TicketSeverity=Gravidade ShowTicket=Veja o ingresso RelatedTickets=Bilhetes relacionados TicketAddIntervention=Criar Intervenção -CloseTicket=Encerrar|Solucionar -AbandonTicket=Abandonar ticket CloseATicket=Encerrar|Solucionar ConfirmCloseAticket=Confirme o fechamento do ticket ConfirmAbandonTicket=Confirma o encerramento do ticket com o status 'Abandonado' @@ -97,8 +93,6 @@ TicketUpdated=Bilhete atualizado SendMessageByEmail=Enviar mensagem por e-mail ErrorMailRecipientIsEmptyForSendTicketMessage=O destinatário está vazio. Nenhum e-mail enviado TicketMessageMailIntroHelp=Este texto é adicionado apenas no início do e-mail e não será salvo. -TicketMessageMailSignatureHelp=Este texto é adicionado somente no final do e-mail e não será salvo. -TicketMessageMailSignatureLabelAdmin=Assinatura do e-mail de resposta TicketTimeElapsedBeforeSince=Tempo decorrido antes / desde TicketContacts=Bilhete de contatos TicketDocumentsLinked=Documentos vinculados ao ticket @@ -125,7 +119,6 @@ TicketNewEmailSubject=Confirmação de criação de ticket - Ref %s (ID do ticke TicketNewEmailBody=Este é um e-mail automático para confirmar que você registrou um novo ticket. TicketNewEmailBodyCustomer=Este é um e-mail automático para confirmar que um novo ticket acaba de ser criado na sua conta. TicketNewEmailBodyInfosTrackId=Número de acompanhamento do tíquete : %s -TicketPublicPleaseBeAccuratelyDescribe=Por favor descreva com precisão o problema. Forneça o máximo de informações possíveis para permitir que identifiquemos sua solicitação corretamente. TicketTrackId=ID de acompanhamento público OneOfTicketTrackId=Um de seu ID de acompanhamento ErrorTicketNotFound=Tíquete com número %s não encontrado diff --git a/htdocs/langs/pt_BR/website.lang b/htdocs/langs/pt_BR/website.lang index a5781ea5a75..e2afc369eb2 100644 --- a/htdocs/langs/pt_BR/website.lang +++ b/htdocs/langs/pt_BR/website.lang @@ -9,7 +9,6 @@ WEBSITE_CSS_URL=URL do arquivo CSS externo. WEBSITE_HTML_HEADER=Adição na parte inferior do cabeçalho HTML (comum a todas as páginas) WEBSITE_ROBOT=Arquivo robô (robots.txt) WEBSITE_MANIFEST_JSON=Arquivo manifest.json do site -WEBSITE_README=Arquivo README.md EnterHereLicenseInformation=Digite aqui metadados ou informações de licença para arquivar num arquivo README.md. Se você distribuir seu site como modelo, o arquivo será incluído no pacote tentado. HtmlHeaderPage=Cabeçalho HTML (específico apenas para esta página) PageNameAliasHelp=Nome ou alias da página.
    Esse alias também é usado para forjar uma URL de SEO quando o site é executado a partir de um host virtual de um servidor da Web (como Apacke, Nginx, ...). Use o botão %s para editar este alias. diff --git a/htdocs/langs/pt_BR/withdrawals.lang b/htdocs/langs/pt_BR/withdrawals.lang index cf25c68bb59..0c0ce07e5f7 100644 --- a/htdocs/langs/pt_BR/withdrawals.lang +++ b/htdocs/langs/pt_BR/withdrawals.lang @@ -11,7 +11,6 @@ WithdrawalsLines=Linhas do pedido para Débito direto NotPossibleForThisStatusOfWithdrawReceiptORLine=Ainda não é possível. Retirar o status deve ser definido como 'creditado' antes de declarar rejeitar em linhas específicas. NbOfInvoiceToWithdrawWithInfo=Nº. de fatura do cliente com ordens de pagamento por débito direto com informações definidas sobre a conta bancária InvoiceWaitingWithdraw=Fatura aguardando o Débito direto -NoSupplierInvoiceToWithdraw=Nenhuma fatura de fornecedor com 'Solicitações de crédito diretas' abertas está aguardando. Vá na guia '%s' no cartão da fatura para fazer uma solicitação. ResponsibleUser=Usuário Responsável WithdrawalsSetup=Configuração do pagamento por Débito direto WithdrawStatistics=Estatísticas do pagamento por Débito direto diff --git a/htdocs/langs/pt_MZ/accountancy.lang b/htdocs/langs/pt_MZ/accountancy.lang new file mode 100644 index 00000000000..3aee8edcbad --- /dev/null +++ b/htdocs/langs/pt_MZ/accountancy.lang @@ -0,0 +1,206 @@ +# Dolibarr language file - Source file is en_US - accountancy +ACCOUNTING_EXPORT_SEPARATORCSV=Separador de coluna para arquivo de exportação +ACCOUNTING_EXPORT_DATE=Formato de data para arquivo de exportação +ACCOUNTING_EXPORT_PIECE=Exportar a quantidade de peça +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportação com conta global? +ACCOUNTING_EXPORT_LABEL=Exportar a Descrição? +ACCOUNTING_EXPORT_AMOUNT=Exportar o montante? +ACCOUNTING_EXPORT_DEVISE=Exportar Moedas +Selectformat=Selecione o formato do arquivo +ACCOUNTING_EXPORT_FORMAT=Selecione o formato do arquivo +ACCOUNTING_EXPORT_ENDLINE=Selecione o tipo de retorno do frete +ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique o prefixo do nome do arquivo +DefaultForService=Padrão para serviço +ProductForThisThirdparty=Produto para este terceiro +ServiceForThisThirdparty=Serviço para este terceiro +CantSuggest=Não posso sugerir +AccountancySetupDoneFromAccountancyMenu=A maioria das configurações da Contabilidade é feita a partir do menu %s +ConfigAccountingExpert=Configuração do módulo de contabilidade (dupla entrada) +Journalization=Lançamento no Livro +Chartofaccounts=Plano de contas +ChartOfSubaccounts=Plano de contas individuais +InvoiceLabel=Rótulo da fatura +OverviewOfAmountOfLinesNotBound=Visão geral do montante das linhas não vinculadas a uma conta contábil +OverviewOfAmountOfLinesBound=Visão geral do montante das linhas já vinculadas a uma conta contábil +DeleteCptCategory=Remover conta contábil do grupo +ConfirmDeleteCptCategory=Tem certeza de que deseja remover essa conta contábil do grupo de contas contábeis? +JournalizationInLedgerStatus=Situação do registro do diário +GroupIsEmptyCheckSetup=O grupo está vazio, verifique a configuração do grupo de contabilidade personalizado +AccountantFiles=Exportar documentos de origem +VueByAccountAccounting=Ver por conta contábil +MainAccountForCustomersNotDefined=Conta contábil principal para clientes não definidos na configuração +MainAccountForUsersNotDefined=Conta contábil principal para usuários não definidos na configuração +MainAccountForVatPaymentNotDefined=Conta contábil principal para o pagamento do IVA não definido na configuração +MainAccountForSubscriptionPaymentNotDefined=Conta contábil principal para pagamento de assinatura não definida na configuração +AccountancyAreaDescIntro=O uso do módulo Contabilidade é feito em diversas etapas: +AccountancyAreaDescActionOnce=As ações a seguir são normalmente realizadas apenas uma vez, ou uma vez por ano... +AccountancyAreaDescActionFreq=As ações a seguir são normalmente executadas a cada mês, semana ou dia para grandes empresas... +AccountancyAreaDescChartModel=ETAPA %s: Verifique se existe um modelo de plano de contas ou crie um no menu %s +AccountancyAreaDescChart=PASSO %s: Selecione e | ou conclua seu plano de contas no menu %s +AccountancyAreaDescVat=PASSO %s: defina contas contábeis para cada taxa de IVA. Para isso, use a entrada de menu %s. +AccountancyAreaDescSal=PASSO %s: Defina contas contábeis padrão para pagamento de salários. Para isso, use a entrada de menu %s. +AccountancyAreaDescDonation=PASSO %s: Defina contas contábeis padrão para doação. Para isso, use a entrada de menu %s. +AccountancyAreaDescSubscription=Etapa %s: defina contas contábeis padrão para assinatura de membros. Para isso, use a entrada de menu %s. +AccountancyAreaDescMisc=PASSO %s: Defina a conta padrão obrigatória e contas contábeis padrão para transações diversas. Para isso, use a entrada de menu %s. +AccountancyAreaDescLoan=PASSO %s: Defina contas contábeis padrão para empréstimos. Para isso, use a entrada de menu %s. +AccountancyAreaDescBank=PASSO %s:Defina contabilidade e código de diário para cada banco e contas contábil. Para isso, use o menu de entradas %s. +AccountancyAreaDescBind=PASSO %s: verifique a ligação entre as linhas %s existentes e a conta contábil feita, de modo que o aplicativo poderá periodizar transações no Livro de Registro em um clique. Complete as ligações faltantes. Para isso, use a entrada de menu %s. +AccountancyAreaDescWriteRecords=PASSO %s: efetue as transações no Livro de Registro. Para isso, vá para o menu %s e clique no botão %s . +AccountancyAreaDescAnalyze=ETAPA %s: Adicionar ou editar as transações existentes, gerar os relatórios e exportar. +AccountancyAreaDescClosePeriod=ETAPA %s: Fechar o período de forma que não possamos fazer modificações no futuro. +Selectchartofaccounts=Selecione gráfico ativo de contas +ChangeAndLoad=Alterar e carregar +Addanaccount=Adicionar uma conta contábil +AccountAccounting=Conta contábil +SubledgerAccount=Conta Subledger +SubledgerAccountLabel=Rótulo da conta de subconta +ShowAccountingAccount=Mostrar conta contábil +ShowAccountingJournal=Mostrar contabilidade +AccountAccountingSuggest=Sugerir Conta de Contabilidade +MenuBankAccounts=Contas bancárias +MenuVatAccounts=Contas de Impostos sobre valor agregado +MenuLoanAccounts=Contas de empréstimos +MenuProductsAccounts=Contas de produto +MenuClosureAccounts=Contas de encerramento +MenuAccountancyClosure=Fechamento +MenuAccountancyValidationMovements=Validar movimentações +ProductsBinding=Contas dos produtos +TransferInAccounting=Transferência em contabilidade +Binding=Vinculando para as contas +CustomersVentilation=Vinculando as faturas do cliente +ExpenseReportsVentilation=Relatório de despesas obrigatórias +Bookkeeping=Razão +ObjectsRef=Referência da fonte do objeto +CAHTF=Total de fornecedores antes de impostos +TotalExpenseReport=Relatório de despesas totais +InvoiceLines=Linhas da fatura a vincular +InvoiceLinesDone=Linhas das faturas vinculadas +ExpenseReportLines=Relatórios de linhas de despesas obrigatórias +ExpenseReportLinesDone=Relatórios de linhas de despesas vinculadas +IntoAccount=Vincular linha com conta contábil +LineId=Linha da ID +Processing=Processando +EndProcessing=Processo foi finalizado. +LineOfExpenseReport=Relatório de linha de despesas +NoAccountSelected=Nenhuma conta da Contabilidade selecionada +VentilatedinAccount=Vinculado a conta contábil com sucesso +NotVentilatedinAccount=Não vinculado a conta contábil +XLineSuccessfullyBinded=%s produtos / serviços vinculados com sucesso a uma conta contábil +XLineFailedToBeBinded=%s produtos/serviços não estão vinculados a qualquer conta da Contabilidade +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Iniciar a página "Vinculações a fazer" ordenando pelos elementos mais recentes +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Iniciar a página "Vinculações feitas" ordenando pelos elementos mais recentes +ACCOUNTING_LENGTH_DESCRIPTION=Truncar a descrição de Produtos & Serviços nas listagens, após x caracteres (Melhor = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar a descrição da conta de Produtos & Serviços nas listagens, após X caracteres (Melhor = 50) +ACCOUNTING_LENGTH_GACCOUNT=Comprimento das contas de contabilidade geral (se o valor configurado for 6, a conta '706' aparecerá como '706000' na tela) +ACCOUNTING_LENGTH_AACCOUNT=Comprimento das contas de contabilidade de terceiros (se você definir o valor para 6 aqui, a conta "401" aparecerá como '401000' na tela) +ACCOUNTING_MANAGE_ZERO=Permitir gerenciar diferentes números de zeros no final de uma conta contábil. Necessário para alguns países (como a Suíça). Se definido como desativado (padrão), você pode definir os dois parâmetros a seguir para solicitar que o aplicativo adicione zeros virtuais. +BANK_DISABLE_DIRECT_INPUT=Desabilitar o registro direto da transação na conta bancária +ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatórios de despesas +ACCOUNTING_RESULT_PROFIT=Conta de contabilidade de resultado (Lucro) +ACCOUNTING_RESULT_LOSS=Conta contábil do resultado (perda) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Jornal de encerramento +TransitionalAccount=Conta de transferência bancária transitória +LabelAccount=Conta rótulo +JournalLabel=Rótulo de jornal +TransactionNumShort=Nº da transação +AccountingAccountGroupsDesc=Você pode definir aqui alguns grupos de contabilidade. Eles serão usados ​​para relatórios contábeis personalizados. +NotMatch=Não Definido +DelMonth=Mês a excluir +DelYear=Ano a ser deletado +DelJournal=Resumo a ser deletado +VATAccountNotDefined=Conta para IVA não definida +ThirdpartyAccountNotDefined=Conta para terceiro não definida +ProductAccountNotDefined=Conta para produto não definida +FeeAccountNotDefined=Conta por taxa não definida +BankAccountNotDefined=Conta para o banco não definida +CustomerInvoicePayment=Contas Recebidas +ThirdPartyAccount=Conta de terceiros +ListeMvts=Lista de movimentações +ErrorDebitCredit=Débito e Crédito não pode ter valor preenchido ao mesmo tempo +AddCompteFromBK=Adicionar contas contábeis ao grupo +ReportThirdParty=Listar conta de terceiros +DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores de terceiros e suas contas contábeis +ListAccounts=Lista das contas contábeis +UnknownAccountForThirdparty=Conta de terceiros desconhecida. Nós usaremos %s +UnknownAccountForThirdpartyBlocking=Conta de terceiros desconhecida. Erro de bloqueio +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Terceiros desconhecido e subconta não definida no pagamento. Manteremos o valor da conta do subconjunto vazio. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Conta de terceiros desconhecida e conta em espera não definida. Erro de bloqueio +OpeningBalance=Saldo inicial +ShowOpeningBalance=Mostrar saldo inicial +HideOpeningBalance=Ocultar saldo inicial +Pcgtype=Plano de Contas +PcgtypeDesc=O grupo de contas é usado como critério predefinido de 'filtro' e 'agrupamento' para alguns relatórios contábeis. Por exemplo, 'RENDA' ou 'DESPESA' são usados ​​como grupos para contas contábeis de produtos para criar o relatório de despesas / receitas. +Reconcilable=Reconciliável +TotalVente=Volume total negociado sem Impostos +TotalMarge=Margem de vendas totais +DescVentilDoneSupplier=Consulte aqui a lista das linhas de faturas de fornecedores e sua conta contábil +DescVentilTodoExpenseReport=Relatórios de linhas de despesas de ligação já não estão vinculadas com uma conta contábil com taxa +DescVentilExpenseReport=Consulte aqui a lista de relatório de linhas de despesas vinculadas (ou não) a uma conta contábil com taxa +DescVentilExpenseReportMore=Se você configurar uma conta contábil no tipo de linhas de relatório de despesas, o aplicativo poderá fazer toda a ligação entre suas linhas de relatório de despesas e a conta contábil do seu plano de contas, em apenas um clique com o botão "%s" . Se a conta não foi definida no dicionário de taxas ou se você ainda tiver algumas linhas não vinculadas a nenhuma conta, será necessário fazer uma ligação manual no menu " %s ". +DescVentilDoneExpenseReport=Consulte aqui a lista dos relatórios de linha de despesas e sua conta contábil de taxas +DescValidateMovements=Qualquer modificação ou exclusão de escrita, letras e exclusões será proibida. Todas as entradas para um exercício devem ser validadas, caso contrário, o fechamento não será possível +ValidateHistory=Vincular Automaticamente +GeneralLedgerIsWritten=As transações estão escritas no Razão +ChangeBinding=Alterar a vinculação +Accounted=Contas no livro de contas +NotYetAccounted=Ainda não transferida para a contabilidade +ShowTutorial=Mostrar tutorial +NotReconciled=Não conciliada +AddAccountFromBookKeepingWithNoCategories=Conta disponível porém ainda não no grupo personalizado +CategoryDeleted=A categoria para a conta contábil foi removida +AccountingJournals=Relatórios da contabilidade +AccountingJournal=Livro de Registro de contabilidade +NewAccountingJournal=Novo Livro de Registro contábil +NatureOfJournal=Natureza do Relatório +AccountingJournalType2=De vendas +AccountingJournalType9=Novo +ErrorAccountingJournalIsAlreadyUse=Esta Livro de Registro já está sendo usado +NumberOfAccountancyEntries=Número de entradas +NumberOfAccountancyMovements=Número de movimentos +ExportDraftJournal=Livro de Registro de rascunho de exportação +Selectmodelcsv=Escolha um modelo de exportação +Modelcsv_CEGID=Exportar para CEGID Expert Comptable +Modelcsv_COALA=Exportação para Sage Coala +Modelcsv_bob50=Exportação para Sage BOB 50 +Modelcsv_quadratus=Exportação para Quadratus QuadraCompta +Modelcsv_ebp=Exportar para EBP +Modelcsv_cogilog=Exportar para Cogilog +Modelcsv_LDCompta=Exportar para LD Compta (v9) (Teste) +Modelcsv_LDCompta10=Exportação para LD Compta (v10 ou superior) +Modelcsv_openconcerto=Exportar para OpenConcerto (Teste) +Modelcsv_FEC=Exportar FEC +Modelcsv_Sage50_Swiss=Exportação para Sage 50 Suíça +ChartofaccountsId=ID do gráfico de contas +InitAccountancy=Contabilidade Inicial +InitAccountancyDesc=Esta página pode ser usado para inicializar um código de barras em objetos que não têm código de barras definidas. Verifique que o módulo de código de barras tenha sido instalado antes. +DefaultBindingDesc=Esta página pode ser usada para definir a conta padrão a ser usada para conectar o registro das transações sobre o pagamento de salários, doações, taxas e o IVA quando nenhuma conta da Contabilidade específica tiver sido definida. +DefaultClosureDesc=Esta página pode ser usada para definir parâmetros usados ​​para fechamentos contábeis. +OptionModeProductSell=Modo vendas +OptionModeProductSellIntra=Vendas de modo exportadas na CEE +OptionModeProductSellExport=Vendas de modo exportadas em outros países +OptionModeProductBuy=Modo compras +OptionModeProductBuyIntra=Compras no modo importadas na CEE +OptionModeProductBuyExport=Modo adquirido importado de outros países +OptionModeProductSellDesc=Exibir todos os produtos sem uma conta da Contabilidade definida para compras. +OptionModeProductSellIntraDesc=Mostrar todos os produtos com conta contábil para vendas no EEC. +OptionModeProductSellExportDesc=Mostrar todos os produtos com conta contábil para outras vendas externas. +OptionModeProductBuyDesc=Exibir todos os produtos sem uma conta da Contabilidade definida para compras. +OptionModeProductBuyIntraDesc=Mostre todos os produtos com conta contábil para compras no EEC. +OptionModeProductBuyExportDesc=Mostre todos os produtos com conta contábil para outras compras no exterior. +CleanFixHistory=Remover o código contábil de linhas que não existem nos gráficos de conta +CleanHistory=Redefinir todas as vinculações para o ano selecionado +PredefinedGroups=Grupos predefinidos +WithoutValidAccount=Sem conta dedicada válida +ValueNotIntoChartOfAccount=Este valor da conta contábil não existe no gráfico de conta +AccountRemovedFromGroup=Conta removida do grupo +SaleLocal=Venda local +SaleExport=Venda de exportação +SaleEEC=Venda na CEE +SaleEECWithVAT=A venda na CEE com um IVA não nulo; portanto, supomos que essa NÃO seja uma venda intracomunitária e a conta sugerida é a conta padrão do produto. +SaleEECWithoutVATNumber=Venda na CEE sem IVA, mas o ID do IVA de terceiros não está definido. Recorremos à conta do produto para vendas padrão. Você pode corrigir o ID do IVA de terceiros ou a conta do produto, se necessário. +Range=Faixa da conta da Contabilidade +ConfirmMassDeleteBookkeepingWriting=Confirmação exclusão em massa +SomeMandatoryStepsOfSetupWereNotDone=Algumas etapas obrigatórias de configuração não foram feitas, preencha-as +ErrorNoAccountingCategoryForThisCountry=Nenhum Plano de Contas Contábil disponível para este país %s (Veja Home - Configurações- Dicionário) +ExportNotSupported=O formato de exportação definido não é suportado nesta página +DateExport=Data de exportação diff --git a/htdocs/langs/pt_MZ/admin.lang b/htdocs/langs/pt_MZ/admin.lang index f00064f7eff..298b41c28c1 100644 --- a/htdocs/langs/pt_MZ/admin.lang +++ b/htdocs/langs/pt_MZ/admin.lang @@ -1,2 +1,1706 @@ # Dolibarr language file - Source file is en_US - admin -TopMenuDisableImages=Hide images in Top menu +BoldRefAndPeriodOnPDF=Imprimir referência e período do item em PDF +BoldLabelOnPDF=Imprimir etiqueta do item em negrito, em PDF +VersionProgram=Versão Programa +VersionLastInstall=Versão de instalação inicial +VersionLastUpgrade=Atualização versão mais recente +VersionExperimental=Versão Experimental +VersionDevelopment=Versão de Desenvolvimento +VersionUnknown=Versão Desconhecida +VersionRecommanded=Versão Recomendada +FileCheck=Verificações de integridade do conjunto de arquivos +FileCheckDesc=Esta ferramenta lhe permite verificar a integridade dos arquivos e da configuração do seu aplicativo, comparando cada arquivo com os oficiais. Os valores de algumas constantes da configuração também podem ser verificados. Você pode usar esta ferramenta para identificar se algum arquivo foi modificado (ex. por um 'hacker'). +FileIntegrityIsStrictlyConformedWithReference=A integridade dos arquivos está estritamente de acordo com a referência. +FileIntegrityIsOkButFilesWereAdded=Expirou o processo para verificar a integridade dos arquivos, entretanto alguns novos arquivos foram adicionados. +FileIntegritySomeFilesWereRemovedOrModified=A verificação da integridade dos arquivos falhou. Alguns arquivos foram modificados, removidos ou adicionados. +GlobalChecksum=Verificação global +MakeIntegrityAnalysisFrom=Realizar a análise da integridade dos arquivos do aplicativo em +LocalSignature=Assinatura local integrada (menos confiável) +RemoteSignature=Assinatura remota distante (mais confiável) +FilesMissing=Arquivos ausentes +FilesUpdated=Arquivos atualizados +FilesModified=Arquivos Alterados +FilesAdded=Arquivos Adicionados +FileCheckDolibarr=Verificar a integridade dos arquivos do aplicativo +AvailableOnlyOnPackagedVersions=O arquivo local para verificação de integridade só está disponível quando a aplicação é instalada a partir de um pacote oficial +XmlNotFound=Não encontrado o Arquivo Xml da integridade +SessionId=ID da sessão +SessionSaveHandler=Manipulador para salvar sessão +SessionSavePath=Local para salvar sessão +PurgeSessions=Purgar Sessão +ConfirmPurgeSessions=Você tem certeza que quer remover toas as sessões? Isto ira desconectar todos os usuários (exceto você) +LockNewSessions=Bloquear Novas Sessões +ConfirmLockNewSessions=Tem certeza de que deseja restringir qualquer nova conexão Dolibarr a si mesmo? Apenas o usuário %s poderá se conectar depois disso. +UnlockNewSessions=Remover Bloqueio de Conexão +YourSession=Sua Sessão +Sessions=Sessões de Usuários +WebUserGroup=Servidor Web para usuário/grupo +PermissionsOnFiles=Permissões em arquivos +PermissionsOnFilesInWebRoot=Permissões em arquivos no diretório raiz da web +PermissionsOnFile=Permissões no arquivo %s +NoSessionFound=Sua configuração do PHP parece não permitir listar as sessões ativas. O diretório usado para salvar sessões (%s) pode estar protegido (por exemplo, pelas permissões do sistema operacional ou pela diretiva PHP "open_basedir"). +DBStoringCharset=Charset base de dados para armazenamento de dados (Database charset to store data) +DBSortingCharset=Charset base de dados para classificar os dados (Database charset to sort data) +HostCharset=Conjunto de caracteres do host +ClientCharset=Conjunto de clientes +ClientSortingCharset=Conferência de Clientes +WarningModuleNotActive=Módulo %s deve ser Ativado! +WarningOnlyPermissionOfActivatedModules=Somente as permissões relacionadas com os módulos ativados que aparecem aqui. +DolibarrSetup=Instalação/Atualização do Dolibarr +InternalUsers=Usuários Internos +ExternalUsers=Usuários Externos +SetupArea=Conf. +UploadNewTemplate=Carregar novo(s) tema(s) +FormToTestFileUploadForm=Formulário para teste de upload de arquivo +ModuleMustBeEnabled=O módulo/aplicação %s deve ser ativado +ModuleIsEnabled=O modulo/aplicação %s foi ativado +IfModuleEnabled=OBS: Sim só é eficaz se o módulo %s estiver ativado +RemoveLock=Remove/renomeia o arquivo %s se existir, para permitir o uso da ferramenta atualização/instalação. +RestoreLock=Restaura o arquivo %s, com permissão de leitura, para desabilitar qualquer serviço de atualização/instalação +SecuritySetup=Conf. de Segurança +PHPSetup=Configuração do PHP +OSSetup=Configuração do sistema operacional +SecurityFilesDesc=Defina aqui as opções relacionadas à segurança sobre o carregamento (upload) de arquivos. +ErrorModuleRequirePHPVersion=Erro, este módulo requer uma versão %s ou superior de PHP +ErrorModuleRequireDolibarrVersion=Erro, este módulo requer uma versão %s ou superior do Dolibarr +ErrorDecimalLargerThanAreForbidden=Erro, número maior que %s e não é suportada pelo dolibarr. +DictionarySetup=Configuração Dicionário +ErrorReservedTypeSystemSystemAuto=A Variável 'system' e 'systemauto' é reservada. Você pode usar 'user' como variável para adicionar sua própria gravação +ErrorCodeCantContainZero=A variável não pode conter valor "0" (zero) +DisableJavascript=Desativar as funções Javascript e AJax +DisableJavascriptNote=Nota: Apenas para fins de teste ou depuração. Para otimização para cegos ou navegadores de texto, você pode preferir usar a configuração no perfil do usuário +UseSearchToSelectCompanyTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo COMPANY_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string. +UseSearchToSelectContactTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo CONTACT_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string. +DelaiedFullListToSelectContact=Aguarde até que uma tecla seja pressionada antes de carregar o conteúdo da lista de combinação de contatos.
    Isso pode aumentar o desempenho se você tiver um grande número de contatos, mas é menos conveniente. +SearchString=Seqüência de pesquisa +NotAvailableWhenAjaxDisabled=Indisponível quando o Ajax esta desativado +AllowToSelectProjectFromOtherCompany=No documento de um terceiro, pode-se escolher um projeto conectado a outro terceiro +TimesheetPreventAfterFollowingMonths=Impedir o tempo de gravação gasto após o seguinte número de meses +UsePreviewTabs=Usar previsão de digitação na tecla 'tab' +ShowPreview=Mostrar Previsão +ShowHideDetails=Mostrar-ocultar detalhes +PreviewNotAvailable=Previsão Indisponível +ThemeCurrentlyActive=Tema Ativo +MySQLTimeZone=Timezone Mysql (do servidor sql) +NextValue=Próximo Valor +NextValueForInvoices=Próximo Valor (Faturas) +NextValueForCreditNotes=Próximo Valor (Notas de Crédito) +NextValueForDeposit=Próximo valor (pagamento inicial) +NextValueForReplacements=Próximo Valor (Substituição) +MustBeLowerThanPHPLimit=Nota: sua configuração PHP atualmente limita o tamanho máximo de arquivo para upload para %s %s, independentemente do valor desse parâmetro +NoMaxSizeByPHPLimit=Nenhum limite foi configurado no seu PHP +MaxSizeForUploadedFiles=Tamanho Máximo para uploads de arquivos ('0' para proibir o carregamento) +AntiVirusCommand=Caminho completo para antivirus +AntiVirusCommandExample=Exemplo para Daemon ClamAv (requer clamav-daemon): / usr / bin / clamdscan
    Exemplo para ClamWin (muito, muito lento): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe +AntiVirusParam=Mais parâmetros em linha de comando (CLI) +AntiVirusParamExample=Exemplo para o Daemon ClamAv: --fdpass
    Exemplo para ClamWin: --database = "C: \\ Arquivos de Programas (x86) \\ ClamWin \\ lib" +ComptaSetup=Conf. do Módulo Contabilidade +UserSetup=Conf. do Gestor de usuários +MultiCurrencySetup=Configuração de múltiplas moedas +MenuLimits=Limites e Precisão +MenuIdParent=ID do menu pai +DetailMenuIdParent=ID do menu pai (vazio (NULL) para menu no topo) +ParentID=ID principal +DetailPosition=Define as posições do menu em ordem numérica +NotConfigured=Módulo/Aplicativo não configurado +SetupShort=Conf. +OtherOptions=Outras Opções +OtherSetup=Outra configuração +CurrentValueSeparatorThousand=Separador de milhar +IdModule=Módulo ID +IdPermissions=Permissão ID +LanguageBrowserParameter=Parâmetro de Linguagem %s +ClientHour=Horário do Cliente (usuário) +OSTZ=Fuso Horário do OS do Servidor +PHPTZ=Fuso Horário do servidor PHP +CurrentHour=Horário PHP (servidor) +CurrentSessionTimeOut=A sessão expirou +MaxNbOfLinesForBoxes=Número máx. de linhas para widgets +AllWidgetsWereEnabled=Todos as ferramentas disponíveis estão habilitadas +PositionByDefault=Posição Padrão(default) +MenusDesc=O Gerenciador de Menu, define o conteúdo das barras de menu (Horizontal e Vertical). +MenusEditorDesc=O editor do menu permite que você defina entradas personalizadas. Use-o com cuidado para evitar instabilidade e entradas no menu que não serão encontradas.
    Alguns módulos adicionam entradas no menu (na maioria das vezes, em menu Tudo). Se remover algumas dessas entradas por engano, você poderá restaurá-las desabilitando e reabilitando o módulo. +MenuForUsers=Menu para os Usuários +LangFile=Arquivo .lang +Language_en_US_es_MX_etc=Linguagem (en_US, pt_BR, ...) +SystemInfo=Informações de Sistema +SystemToolsArea=Área de Ferramentas do sistema +SystemToolsAreaDesc=Essa área dispõem de funções administrativas. Use esse menu para escolher as funções que você está procurando. +Purge=Purgar (apagar tudo) +PurgeAreaDesc=Esta página permite deletar todos os arquivos gerados ou armazenados pelo Dolibarr (arquivos temporários ou todos os arquivos no diretório %s). Este recurso é fornecido como uma solução alternativa aos usuários cujo a instalação esteja hospedado num servidor que impeça o acesso as pastas onde os arquivos gerados pelo Dolibarr são armazenados, para excluí-los. +PurgeDeleteLogFile=Excluir os arquivos de registro, incluindo o %s definido pelo módulo Syslog (não há risco de perda de dados) +PurgeDeleteTemporaryFiles=Exclua todos os arquivos de log e temporários (sem risco de perda de dados). O parâmetro pode ser 'tempfilesold', 'logfiles' ou ambos 'tempfilesold + logfiles'. Nota: A exclusão de arquivos temporários é feita apenas se o diretório temporário foi criado há mais de 24 horas. +PurgeDeleteTemporaryFilesShort=Apagar log e arquivos temporários (não há risco de perda de dados) +PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos do diretório %s. Isto irá excluir todos documentos (Terceiros, faturas, ...), arquivos carregados no módulo ECM, Backups e arquivos temporários +PurgeRunNow=Purgar(Apagar) Agora +PurgeNothingToDelete=Sem diretório ou arquivos para excluir +PurgeNDirectoriesDeleted=%s Arquivos o diretórios eliminados +PurgeNDirectoriesFailed=Falha ao excluir %s arquivos ou diretórios. +PurgeAuditEvents=Eliminar os eventos de segurança +ConfirmPurgeAuditEvents=Você tem certeza que deseja limpar todos os eventos de segurança? Todos os registros de segurança serão excluídos, nenhum outro dado será removido. +GenerateBackup=Gerar Backup +RunCommandSummary=Backup foi iniciado com o seguinte comando +BackupResult=Resultado de backup +BackupFileSuccessfullyCreated=Sucesso em gerar o arquivo de backup! =D +YouCanDownloadBackupFile=O arquivo gerado pode agora ser baixado +NoBackupFileAvailable=Nenhum backup está disponível +ExportMethod=Método de Exportação +ImportMethod=Método de Importação +ToBuildBackupFileClickHere=Para criar um backup, click aqui. +ImportMySqlDesc=Para importar um arquivo de backup do MySQL, você pode usar o phpMyAdmin através de sua hospedagem ou usar o comando mysql a partir da linha de comando.
    Por exemplo: +ImportPostgreSqlDesc=Para importar um arquivo de backup, você deve usar pg_restore na linha de comando: +ImportMySqlCommand=%s %s < meubackup.sql +ImportPostgreSqlCommand=%s %s meubackup.sql +Compression=Compactar +CommandsToDisableForeignKeysForImport=Comando para desativar as chaves estrangeiras(foreign keys) na importação +CommandsToDisableForeignKeysForImportWarning=Mandatório se você quiser ser capaz de restaurar seu 'sql dump' depois +ExportCompatibility=Compatibilidade de gerar arquivos de exportação +ExportUseMySQLQuickParameter=Use o parâmetro '--quick' +ExportUseMySQLQuickParameterHelp=O parâmetro '--quick' ajuda a limitar o consumo de RAM para tabelas grandes. +MySqlExportParameters=Parâmetros de exportação do MySql +PostgreSqlExportParameters=Parâmetros de exportação do PostgreSQL +UseTransactionnalMode=Utilizar o modo transicional(transactional mode) +AddDropDatabase=Adicionar o comando 'DROP DATABASE' +AddDropTable=Adicionar o comando 'DROP TABLE' +ExtendedInsert=Extender o INSERT +NoLockBeforeInsert=Não travar comando antes do INSERT +DelayedInsert=Inserir Atraso +EncodeBinariesInHexa=Codificar dados binários em hexadecimal +IgnoreDuplicateRecords=Ignorar erros de registro duplicado (INSERT IGNORE) +AutoDetectLang=Autodetecção de idioma pelo navegador +FeatureDisabledInDemo=Algumas funções desabilitada no Demo +FeatureAvailableOnlyOnStable=Funcionalidade somente disponível em versões estáveis oficiais +OnlyActiveElementsAreShown=Somente elementos de módulos ativos são mostrado. +ModulesDesc=Os módulos / aplicativos determinam quais recursos estão disponíveis no software. Alguns módulos exigem permissões a serem concedidas aos usuários após a ativação do módulo. Clique no botão liga / desliga %s de cada módulo para ativar ou desativar um módulo / aplicativo. +ModulesDesc2=Clique no botão de roda %s para configurar o módulo/aplicativo. +ModulesMarketPlaceDesc=Você pode encontrar mais módulos para download em sites externos na Internet ... +ModulesDeployDesc=Se as permissões em seu sistema de arquivos permitirem, você poderá usar essa ferramenta para implantar um módulo externo. O módulo ficará visível na aba %s . +ModulesMarketPlaces=Encontrar app/módulos externos +ModulesDevelopYourModule=Desenvolver seus próprios app/módulos +ModulesDevelopDesc=Você também pode desenvolver seu próprio módulo ou encontrar um parceiro para desenvolver um para você. +DOLISTOREdescriptionLong=Em vez de ligar o site www.dolistore.com para encontrar um módulo externo, você pode usar essa ferramenta incorporada que fará a pesquisa no mercado externo para você (pode ser lento, precisa de um acesso à internet) ... +FreeModule=Grátis +NotCompatible=Este módulo não parece ser compatível com o seu Dolibarr %s (Mín %s - Máx %s). +CompatibleAfterUpdate=Este módulo exige uma atualização do seu Dolibarr %s (Mín %s - Máx %s). +SeeInMarkerPlace=Ver na Loja Virtual +SeeSetupOfModule=Veja configuração do módulo %s +SetOptionTo=Defina a opção %s para %s +GoModuleSetupArea=Para implantar/instalar um novo módulo, vá para a área de configuração do módulo: %s . +DoliStoreDesc=DoliStore, o site oficial para baixar módulos externos. +DoliPartnersDesc=Lista de empresas que fornecem módulos ou recursos desenvolvidos de maneira personalizada.
    Nota: como Dolibarr é um aplicativo de código aberto, qualquer pessoa com experiência em programação PHP deve ser capaz de desenvolver um módulo. +DevelopYourModuleDesc=Algumas soluções para o desenvolvimento do seu próprio módulo... +RelativeURL=URL relativo +BoxesAvailable=Widgets disponíveis +BoxesActivated=Widgets ativados +ActivateOn=Ativar +ActiveOn=Ativa +ActivatableOn=Ativável em +SourceFile=Arquivo Fonte +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponível somente se Javascript não estiver desativado +UsedOnlyWithTypeOption=Usado por alguns opção agenda única +Passwords=Senhas +DoNotStoreClearPassword=Criptografar senhas armazenadas no banco de dados (NÃO como texto simples). É altamente recomendável ativar esta opção. +MainDbPasswordFileConfEncrypted=Criptografe a senha do banco de dados armazenada em conf.php. É altamente recomendável ativar esta opção. +InstrucToEncodePass=Para ter a senha codificada no arquivo conf.php, substitua a linha
    $dolibarr_main_db_pass="..."
    por
    $dolibarr_main_db_pass="crypted:%s" +InstrucToClearPass=Para ter a senha não codificada(limpa) no arquivo conf.php, substitua a linha
    $dolibarr_main_db_pass="crypted:..."
    por
    $dolibarr_main_db_pass="%s" +ProtectAndEncryptPdfFilesDesc=Proteção de um documento PDF mantém ele disponível para ler e imprimir com qualquer navegador PDF. No entanto, edição e cópia não é possível. Observe que a utilização deste recurso faz com que a construção de um PDF global mesclado não funcione. +Feature=Destaque +Developpers=Desenvolvedores/Contribuidores +OfficialWebSite=Site oficial do Dolibarr +OfficialWebSiteLocal=Web site local (%s) +OfficialDemo=Demo online do Dolibarr +OfficialMarketPlace=Loja oficial para módulos externos/addons +OfficialWebHostingService=Serviços de hospedagem web referenciados (hospedagem na Nuvem) +ReferencedPreferredPartners=Parceiro preferido +ExternalResources=Fontes externas +SocialNetworks=Redes Sociais +SocialNetworkId=ID da rede social +ForDocumentationSeeWiki=Para documentação de usuário ou desenvolvedor (Doc, FAQs...),
    dê uma olhada no Dolibarr Wiki:
    %s +ForAnswersSeeForum=Para qualquer outra dúvida/ajuda, você pode usar o fórum Dolibarr:
    %s +CurrentMenuHandler=Gestor atual de menu +MeasuringUnit=Unidade de medida +FontSize=Tamanho da fonte +ContentForLines=Conteúdo a ser exibido para cada produto ou serviço (da variável __LINES__ de Conteúdo) +Emails=E-mails +EMailsSetup=Configuração dos e-mails +EmailSenderProfiles=Perfis dos e-mails de envio +EMailsSenderProfileDesc=Você pode manter esta seção vazia. Se você inserir alguns e-mails aqui, eles serão adicionados à lista de possíveis remetentes na caixa de combinação quando você escrever um novo e-mail. +MAIN_MAIL_SMTP_PORT=Porta SMTP / SMTPS (valor padrão em php.ini: %s ) +MAIN_MAIL_SMTP_SERVER=Host SMTP / SMTPS (valor padrão em php.ini: %s ) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Host SMTP / SMTPS (não definido em PHP em sistemas semelhantes a Unix) +MAIN_MAIL_EMAIL_FROM=E-mail do remetente para e-mails automáticos (valor padrão em php.ini: %s ) +MAIN_MAIL_AUTOCOPY_TO=Copiar (Cco) todos os e-mails enviados para +MAIN_DISABLE_ALL_MAILS=Desativar todo o envio de e-mail (para fins de teste ou demonstrações) +MAIN_MAIL_FORCE_SENDTO=Envie todos os e-mails para (em vez de destinatários reais, para fins de teste) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Sugira e-mails de funcionários (se definidos) na lista de destinatários predefinidos ao escrever um novo e-mail +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Autorizar certificados auto-assinados +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use o DKIM para gerar assinatura de e-mail +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Domínio de e-mail para uso com o dkim +MAIN_SMS_SENDMODE=Método usado para enviar SMS +UserEmail=E-mail do usuário +CompanyEmail=E-mail da empresa +FeatureNotAvailableOnLinux=Função não disponível para sistemas tipo Unix. Teste de envio local. +FixOnTransifex=Corrija a tradução na plataforma de tradução on-line do projeto +SubmitTranslation=Se a tradução para este idioma não estiver completa ou você encontrar erros, você pode corrigir isso editando os arquivos no diretório langs / %s e enviar sua alteração para www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Se a tradução para este idioma não estiver completa ou você encontrar erros, pode corrigir isso editando os arquivos no diretório langs/ %s e enviar os arquivos modificados em dolibarr.org/forum ou, se você for um desenvolvedor, com um PR no github.com/Dolibarr/dolibarr +ModuleSetup=Conf. do módulo +ModulesSetup=Configuração de Módulos/Aplicativos +ModuleFamilyCrm=Gestão de Relacionamento com o Cliente (CRM) +ModuleFamilySrm=Gestão de Relacionamento com Fornecedores (VRM) +ModuleFamilyProducts=Gerenciamento de produtos (PM) +ModuleFamilyHr=Gestão de Recursos Humanos (RH) +ModuleFamilyProjects=Projetos +ModuleFamilyOther=Outros +ModuleFamilyTechnic=Ferramentas para Módulos Múltiplos +ModuleFamilyExperimental=Módulos Experimentais +ModuleFamilyFinancial=Módulos Financeiros +ModuleFamilyECM=Gestão de Conteúdos Eletrônicos (ECM) +ModuleFamilyPortal=Websites e outras aplicações front-end +MenuHandlers=Gestor de Menus +MenuAdmin=Editor menus +DoNotUseInProduction=Não utilizar em produção +FindPackageFromWebSite=Encontre um pacote que forneça os recursos que você precisa (por exemplo, no site oficial %s). +DownloadPackageFromWebSite=Download do pacote (por exemplo, do site oficial %s). +UnpackPackageInDolibarrRoot=Desempacote/descompacte os arquivos empacotados no diretório do servidor Dolibarr: %s +UnpackPackageInModulesRoot=Para implantar/instalar um módulo externo, você deve descompactar/descompactar o arquivo no diretório do servidor dedicado aos módulos externos:
    %s +NotExistsDirect=O diretório root alternativo não está definido para um diretório existente.
    +InfDirAlt=Desde a versão 3, é possível definir um diretório-root alternativo. Isso permite que você armazene, em um diretório dedicado, plug-ins e modelos personalizados.
    Basta criar um diretório na raiz de Dolibarr (por exemplo:custom).
    +InfDirExample=
    Então declare no arquivo conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Se estas linhas estão comentadas com "#", para serem habilitadas, apenas remova o caractere "#". +LastActivationAuthor=Último autor da ativação +LastActivationIP=Último IP de ativação +LastActivationVersion=Versão de ativação mais recente +UpdateServerOffline=Atualização de servidor off-line +WithCounter=Gerenciar um contador +GenericMaskCodes=Você pode inserir qualquer máscara de numeração. Nesta máscara, as seguintes tags podem ser usadas:
    {000000} corresponde a um número que será incrementado em cada %s. Insira tantos zeros quanto o comprimento desejado do contador. O contador será completado por zeros da esquerda para ter tantos zeros quanto a máscara.
    {000000+000} o mesmo que o anterior, mas um deslocamento correspondente ao número à direita do sinal + é aplicado a partir do primeiro %s.
    {000000 @ x} mesmo que o anterior, mas o contador é zerado quando o mês x é atingido (x entre 1 e 12, ou 0 para usar os primeiros meses do ano fiscal definido em sua configuração, ou 99 a redefinir para zero todos os meses). Se esta opção for usada e x for 2 ou superior, a sequência {yy} {mm} ou {yyyy} {mm} também é necessária.
    {dd} dia (01 a 31).
    {mm} mês (01 a 12).
    {yy} , {yyyy} ou {y} ano a09a4b7fz0, números de 439 ou 417837fz0, ano 217a4b7
    +GenericMaskCodes2= {cccc} o código do cliente em n caracteres
    {cccc000} a09a4b739f o código do cliente é seguido por um cliente n8z739f dedicado ao código n8z17f. Este contador dedicado ao cliente é zerado ao mesmo tempo que o contador global.
    {tttt} O código do tipo de terceiro em n caracteres (consulte o menu Página inicial - Configuração - Dicionário - Tipos de terceiros). Se você adicionar esta tag, o contador será diferente para cada tipo de terceiro.
    +GenericMaskCodes3=Não é permitido espaços.
    Mascara fixa, basta colocar uma letra ou número sem {} ex:CLI,FOR

    +GenericMaskCodes3EAN=Todos os outros caracteres na máscara permanecerão intactos (exceto * ou ? na 13ª posição em EAN13).
    Espaços não são permitidos.
    Em EAN13, o último caractere após o último } na 13ª posição deve ser * ou ? . Ela será substituída pela chave calculada.
    +GenericMaskCodes4a=Exemplo com o 99º %s do terceiro ACompanhia, com data 2007-01-31:
    +GenericMaskCodes4b=Ex: CLI{dd}{mm}{yy}.{000} -> CLI280715.001
    +GenericMaskCodes4c=Ex: PRODUTO{000+100} -> PRODUTO101
    +GenericMaskCodes5=ABC{yy}{mm}-{000000} resultará em ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX resultará em 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} resultará em IN0701-0099-A Se o tipo da companhia é 'Inscrição Responsável' com o código para o tipo que é 'A_RI' +GenericNumRefModelDesc=Retorna um número costomizado de acordo com a mascara definida. +ServerAvailableOnIPOrPort=Servidor disponível no endeço %s e porta %s +ServerNotAvailableOnIPOrPort=Servidor não disponível no endereço %s e porta %s +DoTestServerAvailability=Teste de conectividade com o servidor +DoTestSend=Teste de Envio +DoTestSendHTML=Teste envio HTML +ErrorCantUseRazIfNoYearInMask=Erro, não pode utilizar o @ para resetar o contador cada ano se a sequencia {yy} ou {yyyy} não estiver na mascara +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não pode utilizar a opção @ se a não ouver {yy} ou {yyyy} na mascara. +UMask=Parâmetros da UMask para novos arquivos nos sistemas de arquivos Unix/Linux/BSD/Mac. +UMaskExplanation=Esses parâmetros permitem você definir permissões por default nos arquivos criado pelo Dolibarr no servidor (Ex: durante upload).
    Deve ser em formato octal (Ex: 06666 significa que tem permissão de leitura e escrita para todo mundo).
    Esse parâmetro é inutil para servidores windows. +SeeWikiForAllTeam=Dê uma olhada na página do Wiki para obter uma lista de contribuidores e sua organização +UseACacheDelay=Atraso para exportação de cache em segundos (0 ou vazio para sem cache) +DisableLinkToHelpCenter=Ocultar o link " Precisa de ajuda ou suporte " na página de login +DisableLinkToHelp=Oculte o link para a ajuda online " %s " +LanguageFilesCachedIntoShmopSharedMemory=Os arquivos .lang foram carregados na memória compartilhada +LanguageFile=Arquivo de idioma +ListOfDirectories=Lista de diretórios com templates de documentos abertos(.odt) +ListOfDirectoriesForModelGenODT=A lista de diretórios contém modelos de arquivos no formato OpenDocument.

    Insira aqui o caminho dos diretórios.
    Adicione uma quebra de linha entre cada diretório.
    Para adicionar um diretório do módulo GED, adicione aqui DOL_DATA_ROOT/ecm/yourdirectoryname.

    Os arquivos nestes diretórios devem terminar com .odt ou .ods. +ExampleOfDirectoriesForModelGen=Exemplos de sintaxe:
    c:\\myapp\\mydocumentdir\\ mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    Para saber como criar seus temas de documento em ODT, antes de armazená-los nesses diretórios, leia a documentação wiki: +FirstnameNamePosition=Posição do Nome/Sobrenome +KeyForWebServicesAccess=Chave para usar o Serviços Web (parâmetro "dolibarrkey" no serviço web) +TestSubmitForm=Teste de entrada de formulário +ThisForceAlsoTheme=Usando este gerenciador de menu também usará seu próprio tema, seja qual for a escolha do usuário. Além disso, este gerenciador de menus especializado para smartphones não funciona em todos os smartphones. Use outro gerenciador de menu se tiver problemas com o seu. +ThemeDir=Diretório de Layouts +ResponseTimeout=Tempo de resposta esgotado +SmsTestMessage=Mensagem Teste de __PHONEFROM__ para __PHONETO__ +ModuleMustBeEnabledFirst=O módulo %s deve estar primeiramente habilitado se você precisa desta funcionalidade. +SecurityToken=Chave para proteção das URLs +NoSmsEngine=Nenhum gerenciador de remetente de SMS disponível. Um gerenciador de remetentes SMS não é instalado com a distribuição padrão porque eles dependem de um fornecedor externo, mas você pode encontrar alguns em %s +PDFOtherDesc=Opção de PDF específica para alguns módulos +HideAnyVATInformationOnPDF=Ocultar todas as informações relacionadas a imposto sobre vendas/IVA +PDFRulesForSalesTax=Regras para IVA +HideLocalTaxOnPDF=Ocultar %s taxa na coluna Imposto sobre vendas / IVA +HideDescOnPDF=Ocultar descrição dos produtos +HideRefOnPDF=Ocultar ref. dos produtos. +PlaceCustomerAddressToIsoLocation=Use a posição padrão francesa (La Poste) para a posição do endereço do cliente +UrlGenerationParameters=Parâmetros para URLs de segurança +SecurityTokenIsUnique=Usar um único parâmetro na chave de segurança para cada URL +EnterRefToBuildUrl=Entre com a referência do objeto %s +GetSecuredUrl=Conseguir URL calculada +ButtonHideUnauthorized=Ocultar botões de ação não autorizados também para usuários internos (caso contrário, acinzentados) +NewVATRates=Taxa de IVA nova +PriceBaseTypeToChange=Modificar os preços com base no valor de referência defino em +MassConvert=Iniciar a conversão em massa +String=Variável +String1Line=String (1 linha) +TextLongNLines=Texto longo (n linhas) +Int=Inteiro +Float=Flutuante +DateAndTime=Data e Hora +Boolean=Booleano (uma caixa de seleção) +ExtrafieldMail =E-mail +ExtrafieldUrl =URL +ExtrafieldSelect =Selecionar lista +ExtrafieldPassword=Senha +ExtrafieldCheckBox=Caixas de seleção +ExtrafieldCheckBoxFromList=Caixas de seleção da tabela +ExtrafieldLink=Link para um objeto +ComputedFormula=Campo computado +ComputedFormulaDesc=Você pode inserir aqui uma fórmula usando outras propriedades do objeto ou qualquer código PHP para obter um valor computado dinâmico. Você pode usar qualquer fórmula compatível com PHP, incluindo o "?" operador de condição e objeto global seguinte: $db, $conf, $langs, $mysoc, $user, $object .
    AVISO : Apenas algumas propriedades do $object podem estar disponíveis. Se você precisar de propriedades não carregadas, basta buscar o objeto em sua fórmula, como no segundo exemplo.
    Usar um campo computado significa que você não pode inserir qualquer valor da interface. Além disso, se houver um erro de sintaxe, a fórmula pode retornar nada.

    Exemplo de fórmula:
    $object-> id < 10? round ($object-> id / 2, 2): ($object-> id + 2 * $user-> id) * (int) substr ($mysoc-> zip, 1, 2)

    Exemplo para recarregar o objeto
    (($reloadedobj = novo Societe($db)) && ($reloadedobj-> fetch ($obj-> id? $ obj-> id: ($obj-> rowid? $obj-> rowid: $object-> id )) > 0))? $reloadedobj-> array_options ['options_extrafieldkey'] * $reloadedobj-> capital / 5: '-1'

    Outro exemplo de fórmula para forçar a carga do objeto e seu objeto pai:
    (($reloadedobj = new Task($db)) && ($reloadedobj-> fetch ($object-> id) > 0) && ($secondloadedobj = new Project ($db)) && ($secondloadedobj-> fetch($reloadedobj-> fk_project) > 0)) ? $secondloadedobj-> ref: 'Projeto pai não encontrado' +Computedpersistent=Armazenar campo computado +ComputedpersistentDesc=Campos extra computados serão armazenados no banco de dados, no entanto, o valor será recalculado somente quando o objeto deste campo for alterado. Se o campo computado depender de outros objetos ou dados globais, esse valor pode estar errado !! +ExtrafieldParamHelpselect=Lista de valores deve ser linhas com chave de formato, valor (onde a chave não pode ser '0')

    por exemplo:
    1, value1
    2, value2
    código3, valor3
    ...

    Para que a lista dependa de outra lista de atributos complementares:
    1, valor1 | opções_ pai_list_code : parent_key
    2, valor2 | opções_ pai_list_code : parent_key

    Para ter a lista dependendo de outra lista:
    1, valor1 | parent_list_code : parent_key
    2, value2 | parent_list_code : parent_key +ExtrafieldParamHelpcheckbox=Lista de valores deve ser linhas com chave de formato, valor (onde a chave não pode ser '0')

    por exemplo:
    1, value1
    2, value2
    3, value3
    ... +ExtrafieldParamHelpradio=Lista de valores deve ser linhas com chave de formato, valor (onde a chave não pode ser '0')

    por exemplo:
    1, value1
    2, value2
    3, value3
    ... +ExtrafieldParamHelpsellist=A lista de valores vem de uma tabela
    Sintaxe: table_name:label_field:id_field::filtersql
    Exemplo: c_typent:libelle:id::filtersql

    - id_field é necessariamente uma condição de chave int primária a0342fcda19bz0. Pode ser um teste simples (por exemplo active=1) para exibir apenas o valor ativo
    Você também pode usar $ID$ no filtro que é o id atual do objeto atual
    Para usar um SELECT no filtro use a palavra-chave $SEL$ para proteção anti-injeção de bypass.
    se você quiser filtrar extracampos use a sintaxe extra.fieldcode=... (onde o código do campo é o código do extracampo)

    Para ter a lista dependendo de outra lista de atributos complementares:
    c_typent:libelle:id:options_ parent_list_code | parent_column: filtro

    para ter a lista de acordo com uma outra lista:
    c_typent: libelle: id: parent_list_code | parent_column: Filtro +ExtrafieldParamHelpchkbxlst=A lista de valores vem de uma tabela
    Sintaxe: table_name:label_field:id_field::filtersql
    Exemplo: c_typent:libelle:id::filtersql

    filtro pode ser um teste simples (por exemplo active=1) para exibir apenas o valor ativo a0342fcda19bz0 também pode usar $ID$ no filtro que é o id atual do objeto atual
    Para fazer um SELECT no filtro use $SEL$
    se você quiser filtrar em campos extras use a sintaxe extra.fieldcode=... (onde o código do campo é o código de extrafield)

    para ter a lista de acordo com uma outra lista de atributos complementares:
    c_typent: libelle: id: options_ parent_list_code | parent_column: filtro

    para ter a lista de acordo com uma outra lista: c_typent
    : libelle:id: parent_list_code |parent_column:filter +ExtrafieldParamHelplink=Os parâmetros devem ser ObjectName: Classpath
    Syntax: ObjectName: Classpath +ExtrafieldParamHelpSeparator=Mantenha em branco para um separador simples
    Defina como 1 para um separador de recolhimento (aberto por padrão para nova sessão e, em seguida, o status é mantido para cada sessão do usuário)
    Defina como 2 para um separador de recolhimento (recolhido por padrão para nova sessão e, em seguida, o status é mantido antes de cada sessão do usuário) +LibraryToBuildPDF=Biblioteca usada para a geração de PDF +LocalTaxDesc=Alguns países podem aplicar dois ou três impostos em cada linha da fatura. Se este for o caso, escolha o tipo para o segundo e terceiro imposto e sua taxa. Tipo possível são:
    1: imposto local aplicável a produtos e serviços sem IVA (a taxa local é calculada sobre o valor sem impostos)
    2: imposto local aplicável a produtos e serviços, incluindo IVA (a taxa local é calculada no montante + imposto principal)
    3: imposto local aplicável a produtos sem IVA (a taxa local é calculada sobre o valor sem impostos)
    4: imposto local aplicável a produtos, incluindo IVA (a taxa local é calculada sobre o valor + IVA principal)
    5: imposto local aplicável a serviços sem IVA (a taxa local é calculado sobre o valor sem impostos)
    6: imposto local aplicável a serviços, incluindo IVA (a taxa local é calculada sobre o valor + imposto) +LinkToTestClickToDial=Entre com um número telefônico para chamar e mostrar um link que testar a URL CliqueParaDiscar para usuário %s +RefreshPhoneLink=Atualizar link +LinkToTest=Clique no link gerado pelo usuário %s (clique no número telefônico para testar) +KeepEmptyToUseDefault=Deixe em branco para usar o valor padrão +KeepThisEmptyInMostCases=Na maioria dos casos, você pode manter esse campo vazio. +DefaultLink=Link padrão +SetAsDefault=Definir como padrão +ValueOverwrittenByUserSetup=Aviso, esse valor pode ser substituido pela configuração especifícada pelo usuário (cada usuário pode ter seu propria URL CliqueParaDiscar) +ExternalModule=Módulo externo +InstalledInto=Instalado no diretório %s +BarcodeInitForThirdparties=Inicialização de código de barras em massa para terceiros +BarcodeInitForProductsOrServices=Inicialização de código de barras em massa ou redefinir de produtos ou serviços +CurrentlyNWithoutBarCode=Atualmente, você tem %s registro(s) no %s %s sem um código de barras definido. +EraseAllCurrentBarCode=Apague todos os valores de código de barras atuais +ConfirmEraseAllCurrentBarCode=Você tem certeza que deseja apagar todos os valores atuais do código de barras? +AllBarcodeReset=Todos os valores de código de barras foram removidas +NoBarcodeNumberingTemplateDefined=Nenhum modelo de código de barras de numeração ativado na configuração do módulo de código de barras. +EnableFileCache=Ativar cache de arquivos +ShowDetailsInPDFPageFoot=Adicione mais detalhes ao rodapé, como nomes de administradores ou de empresas (além de identificações profissionais, capital da empresa e número de IVA). +NoDetails=Nenhum detalhe adicional no rodapé +DisplayCompanyInfo=Exibir endereço da empresa +DisplayCompanyManagers=Exibir nomes dos gerentes +DisplayCompanyInfoAndManagers=Exibir o endereço da empresa e os nomes dos gerentes +ModuleCompanyCodeSupplierAquarium=%s seguido pelo código do fornecedor para um código de contabilidade do fornecedor +ModuleCompanyCodePanicum=Retornar um código contábil vazio +ModuleCompanyCodeDigitaria=Retorna um código contábil composto de acordo com nome de terceiros. O código consiste em um prefixo que pode ser definido na primeira posição, seguido pelo número de caracteres definidos no código de terceiros. +ModuleCompanyCodeCustomerDigitaria=%s seguido pelo nome do cliente truncado pelo número de caracteres: %s para o código contábil do cliente. +ModuleCompanyCodeSupplierDigitaria=%s seguido pelo nome do fornecedor truncado pelo número de caracteres: %s para o código contábil do fornecedor. +Use3StepsApproval=Por padrão, os Pedidos de Compra necessitam ser criados e aprovados por 2 usuários diferentes (uma etapa para a criação e a outra etapa para a aprovação. Note que se o usuário possui ambas permissões para criar e aprovar, uma única etapa por usuário será suficiente). Você pode pedir, com esta opção, para introduzir uma terceira etapa para aprovação por outro usuário, se o montante for superior a um determinado valor (assim 3 etapas serão necessárias : 1=validação, 2=primeira aprovação e 3=segunda aprovação se o montante for suficiente).
    Defina como vazio se uma aprovação (2 etapas) é suficiente, defina com um valor muito baixo (0.1) se uma segunda aprovação (3 etapas) é sempre exigida. +UseDoubleApproval=Usar uma aprovação de 3 etapas quando o valor (sem taxa) é maior do que ... +WarningPHPMail=AVISO: A configuração para enviar e-mails do aplicativo está usando a configuração genérica padrão. Muitas vezes, é melhor configurar e-mails de saída para usar o servidor de e-mail do seu provedor de serviços de e-mail em vez da configuração padrão: +WarningPHPMailA=- Usar o servidor do provedor de serviços de e-mail aumenta a confiabilidade do seu e-mail, por isso aumenta a entregabilidade sem ser sinalizado como SPAM +WarningPHPMailB=- Alguns provedores de serviço de e-mail (como o Yahoo) não permitem que você envie um e-mail de outro servidor que não seja o seu próprio. Sua configuração atual usa o servidor do aplicativo para enviar e-mail e não o servidor de seu provedor de e-mail, portanto, alguns destinatários (aquele compatível com o protocolo DMARC restritivo) perguntarão ao seu provedor de e-mail se podem aceitar seu e-mail e alguns provedores de e-mail (como o Yahoo) pode responder "não" porque o servidor não é deles, então poucos de seus e-mails enviados podem não ser aceitos para entrega (tome cuidado também com a cota de envio de seu provedor de e-mail). +WarningPHPMailC=- Usar o servidor SMTP do seu próprio provedor de serviços de e-mail para enviar e-mails também é interessante, portanto, todos os e-mails enviados do aplicativo também serão salvos no diretório "Enviados" da sua caixa de correio. +WarningPHPMail2=Se o seu provedor SMTP de e-mail precisar restringir o cliente de e-mail a alguns endereços IP (muito raro), esse é o endereço IP do agente de usuário de e-mail (MUA) para seu aplicativo ERP CRM: %s. +WarningPHPMailSPF=Se o nome de domínio em seu endereço de e-mail do remetente estiver protegido por um registro SPF (pergunte ao seu registro de nome de domínio), você deverá adicionar os seguintes IPs no registro SPF do DNS do seu domínio: %s . +ClickToShowDescription=Clique para exibir a descrição +RequiredBy=Este módulo é exigido por módulo(s) +PageUrlForDefaultValues=Você deve inserir o caminho relativo do URL da página. Se você incluir parâmetros na URL, os valores padrão serão efetivos se todos os parâmetros estiverem definidos com o mesmo valor. +PageUrlForDefaultValuesCreate=
    Exemplo:
    Para o formulário para criar um novo terceiro, é %s .
    Para a URL dos módulos externos instalados no diretório personalizado, não inclua o "custom /", portanto, use o caminho como mymodule / mypage.php e não o custom / mymodule / mypage.php.
    Se você quer o valor padrão somente se o url tiver algum parâmetro, você pode usar %s +PageUrlForDefaultValuesList=
    Exemplo:
    Para a página que lista terceiros, é %s .
    Para URL de módulos externos instalados no diretório customizado, não inclua o "custom", então use um caminho como mymodule / mypagelist.php e não custom / mymodule / mypagelist.php.
    Se você quer o valor padrão somente se o url tiver algum parâmetro, você pode usar %s +AlsoDefaultValuesAreEffectiveForActionCreate=Observe que a sobrescrita de valores padrão para a criação de formulários funciona apenas para páginas que foram projetadas corretamente (portanto, com a ação do parâmetro = create or presend ...) +EnableDefaultValues=Ativar personalização de valores padrão +WarningSettingSortOrder=Atenção, a configuração de um ordenamento padrão par os pedidos pode resultar em um erro técnico quando indo para a página da lista, se o campo é um campo desconhecido. Se você se depara com tal erro, volte para esta página para remover o ordenamento padrão dos pedidos e restaure o comportamento padrão. +ProductDocumentTemplates=Temas de documentos para a geração do documento do produto +WatermarkOnDraftExpenseReports=Marca d'água nos relatórios de despesas +ProjectIsRequiredOnExpenseReports=O projeto é obrigatório para dar entrada em um relatório de despesas. +PrefillExpenseReportDatesWithCurrentMonth=Preencher as datas de início e término do novo relatório de despesas com as datas de início e término do mês atual +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Forçar a entrada de valores de relatório de despesas sempre em valor com impostos +AttachMainDocByDefault=Defina isto como 1 se você deseja anexar o documento principal por e-mail como padrão (se aplicável) +FilesAttachedToEmail=Anexar arquivo +davDescription=Configurar um servidor WebDAV +DAV_ALLOW_PRIVATE_DIR=Ative o diretório privado genérico (diretório dedicado do WebDAV chamado "private" - login é necessário) +DAV_ALLOW_PRIVATE_DIRTooltip=O diretório privado genérico é um diretório do WebDAV que qualquer pessoa pode acessar com seu login/senha do aplicativo. +DAV_ALLOW_PUBLIC_DIR=Ativar o diretório público genérico (diretório dedicado do WebDAV denominado "public" - não é necessário efetuar login) +DAV_ALLOW_PUBLIC_DIRTooltip=O diretório público genérico é um diretório do WebDAV que qualquer pessoa pode acessar (no modo de leitura e gravação), sem necessidade de autorização (conta de login/senha). +DAV_ALLOW_ECM_DIR=Ative o diretório privado DMS/ECM (diretório raiz do módulo DMS/ECM - login é necessário) +DAV_ALLOW_ECM_DIRTooltip=O diretório raiz no qual todos os arquivos são carregados manualmente ao usar o módulo DMS/ECM. Da mesma forma, como acesso a partir da interface da Web, você precisará de um login/senha válido com permissão para acessá-lo. +Module0Name=Usuários e Grupos +Module0Desc=Gerenciamento de Usuários / Funcionários e Grupos +Module1Desc=Gestão de empresas e contatos (clientes, prospectos ...) +Module2Desc=Gestor Comercial +Module10Name=Contabilidade (simplificada) +Module20Desc=Gestor de Orçamentos +Module22Name=E-mails em massa +Module22Desc=Gerenciar o envio em massa de e-mails +Module23Desc=Monitoramento de Consumo de Energia +Module25Name=Pedidos de venda +Module25Desc=Gerenciamento de pedidos de vendas +Module40Name=Vendedores +Module40Desc=Fornecedores e gerenciamento de compras (pedidos e cobrança de faturas de fornecedores) +Module42Name=Notas de depuração +Module42Desc=Recursos de registro (arquivo, syslog, ...). Tais registros são para propósitos técnicos/debug. +Module43Name=Barra de depuração +Module43Desc=Ferramenta para o desenvolvedor adicionar uma barra de depuração em seu navegador. +Module49Desc=Gestor de Editores +Module51Name=Cartas Massivos +Module51Desc=Gestão de correspondência do massa +Module52Name=Estoques +Module52Desc=Gestão de estoque +Module54Name=Contratos/Assinaturas +Module55Name=Códigos de Barra +Module55Desc=Gerenciamento de código de barras ou QR code +Module56Desc=Gestão do pagamento de fornecedores por ordens de Transferência a Crédito. Inclui a geração de arquivo SEPA para países europeus. +Module58Name=CliqueParaDiscarl +Module58Desc=Integração do Sistema CliqueParaDiscar (Asterisk, etc.) +Module60Name=Adesivos +Module60Desc=Gestão de adesivos +Module70Desc=Gestor de Intervenções +Module75Name=Despesas e Notas de Viagem +Module75Desc=Gestor de Despesas e Notas de Viagem. Administração das notas de despesas e deslocamentos +Module80Name=Fretes +Module80Desc=Embarques e gerenciamento de nota de entrega +Module85Name=Bancos e Dinheiro +Module85Desc=Gestor de Bancos e Caixas +Module100Desc=Adicione um link para um site externo como um ícone do menu principal. Site é mostrado em um quadro no menu superior. +Module105Name=Carteiro e SPIP +Module105Desc=Carteiro ou Interface SPIP para Módulo MembroMailman or SPIP interface for member module +Module200Desc=Sincronização de diretório LDAP +Module240Name=Exportações de Dados +Module250Name=Importação de Dados +Module310Desc=Gestor de Associação de Membros +Module320Desc=Adicionar um feed RSS às páginas do Dolibarr +Module330Name=Marcadores e atalhos +Module410Desc=Integração do Webcalendar +Module500Name=Impostos e Despesas Especiais +Module500Desc=Gestão de outras despesas (impostos sobre vendas, impostos sociais ou fiscais, dividendos, ...) +Module520Desc=Gestão dos empréstimos +Module600Name=Notificações em evento de negócios +Module600Desc=Enviar notificações de e-mail acionadas por um evento de negócios: por usuário (configuração definida para cada usuário), por contatos de terceiros (configuração definida em cada terceiro) ou por e-mails específicos +Module600Long=Observe que este módulo envia e-mails em tempo real quando ocorre um evento de negócios específico. Se você estiver procurando por um recurso para enviar lembretes por e-mail para eventos da agenda, entre na configuração do módulo Agenda. +Module610Name=Variáveis de produtos +Module700Name=Doações +Module700Desc=Gestor de Doações +Module770Name=Relatório de despesas +Module770Desc=Gerenciar reclamações de relatórios de despesas (transporte, refeição, ...) +Module1120Name=Propostas comerciais de Fornecedores +Module1120Desc=Solicitar proposta comercial e preços do fornecedor +Module1200Desc=Integração Mantis +Module1520Name=Geração de Documentos +Module1520Desc=Geração de documentos em massa por e-mail +Module1780Name=Categorias +Module1780Desc=Gestor de Categorias (produtos, fornecedores e clientes) +Module2000Desc=Permitir que campos de texto sejam editados/formatados usando o CKEditor (html) +Module2200Desc=Use expressões matemáticas para geração automática de preços +Module2300Desc=Gerenciamento dos trabalhos agendados (alias cron ou tabela chrono) +Module2400Name=Eventos / Agenda +Module2400Desc=Track events. Registre eventos automáticos para fins de rastreamento ou registre eventos manuais ou reuniões. Este é o módulo principal para um bom gerenciamento de relacionamento com clientes ou fornecedores. +Module2500Name=SGBD / GCE +Module2500Desc=Sistema de Gerenciamento de Documentos / Gerenciamento de Conteúdo Eletrônico. Organização automática de seus documentos gerados ou armazenados. Compartilhe-os quando precisar. +Module2600Desc=Ativa o servidor de serviços web do Dolibarr +Module2610Desc=Permitir que o servidor prestação de serviços de API REST do Dolibarr +Module2660Name=Chamar ServiçosWeb (cliente SOAP) +Module2660Desc=Ativar o cliente de serviços da Web Dolibarr (pode ser usado para enviar dados/solicitações para servidores externos. Apenas pedidos de compra são suportados no momento.) +Module2700Desc=Use o serviço online Gravatar (www.gravatar.com) para mostrar fotos de usuários/membros (encontrados com seus e-mails). Precisa de acesso à Internet +Module2900Desc=Capacidade de conversão com o GeoIP Maxmind +Module3400Name=Redes Sociais +Module3400Desc=Habilite campos de Redes Sociais em terceiros e endereços (skype, twitter, facebook, ...). +Module4000Name=RH +Module4000Desc=Gerenciamento de recursos humanos (gerenciamento do departamento, contratos dos funcionários e benefícios) +Module5000Name=Multi-Empresas +Module5000Desc=Permite gerenciar várias empresas +Module6000Name=Fluxo de trabalho entre módulos +Module6000Desc=Gerenciamento de fluxo de trabalho entre diferentes módulos (criação automática de objeto e / ou mudança automática de status) +Module10000Desc=Crie sites (públicos) com um editor WYSIWYG. Este é um CMS orientado a webmasters ou desenvolvedores (é melhor conhecer a linguagem HTML e CSS). Basta configurar seu servidor da Web (Apache, Nginx, ...) para apontar para o diretório Dolibarr dedicado para colocá-lo online na Internet com seu próprio nome de domínio. +Module20000Name=Deixar o gerenciamento de solicitações +Module20000Desc=Definir e rastrear solicitações de saída de funcionários +Module39000Name=Lotes de Produtos +Module39000Desc=Lotes, números de série, gerenciamento de data consumir/vender para produtos +Module50000Desc=Oferecer aos clientes uma página de pagamento online PayBox (cartões de crédito/débito). Isso pode ser usado para permitir que seus clientes façam pagamentos ad-hoc ou pagamentos relacionados a um objeto Dolibarr específico (fatura, pedido, etc.) +Module50100Desc=Módulo Ponto de Venda SimplePOS (POS simples). +Module50150Desc=Módulo de ponto de vendas TakePOS (POS com tela de toque, para lojas, bares ou restaurantes). +Module50200Desc=Oferecer aos clientes uma página de pagamento online do PayPal (conta do PayPal ou cartões de crédito/débito). Isso pode ser usado para permitir que seus clientes façam pagamentos ad-hoc ou pagamentos relacionados a um objeto Dolibarr específico (fatura, pedido, etc.) +Module50300Desc=Ofereça aos clientes uma página de pagamento on-line do Stripe (cartões de crédito / débito). Isso pode ser usado para permitir que seus clientes façam pagamentos ad-hoc ou pagamentos relacionados a um objeto Dolibarr específico (fatura, pedido, etc.) +Module50400Name=Contabilidade (entrada dupla) +Module50400Desc=Gestão contábil (partidas dobradas, suporte para Razões Gerais e Subsidiárias). Exportar livro razão em outros formatos de software contábil. +Module54000Name=ImprimirIPP +Module55000Name=Pesquisa Aberta +Module55000Desc=Criar pesquisas, enquetes ou votos on-line (como Doodle, Studs, RDVz etc ...) +Module59000Desc=Módulo para seguir margens +Module60000Desc=Módulo para gerenciar comissão +Module62000Name=Termos Internacionais de Comércio +Module62000Desc=Adicione recursos para gerenciar Termos Internacionais de Comércio +Module63000Name=Resorsas +Module63000Desc=Gerenciar recursos (impressoras, carros, salas, ...) para alocar eventos +Module94160Name=Recebimentos +Permission11=Ler Faturas de Clientes +Permission12=Criar/Modificar Faturas de Clientes +Permission14=Faturas de Clientes Validadas +Permission15=Enviar Faturas de Clientes por E-Mail +Permission16=Criar Pagamentos para Faturas de Clientes +Permission19=Deletar Faturas de Clientes +Permission21=Ler Orçamentos +Permission22=Criar/Modificar Orçamentos +Permission24=Validar Orçamentos +Permission25=Enviar os Orçamentos +Permission26=Fechar Orçamentos +Permission27=Eliminar Orçamentos +Permission28=Exportar Orçamentos +Permission31=Ler Produtos +Permission32=Criar/Modificar Produtos +Permission34=Deletar Produtos +Permission36=Ver/Gerenciar Produtos Ocultos +Permission38=Exportar Produtos +Permission39=Ignorar preço mínimo +Permission61=Ler Intervenções +Permission62=Criar/Modificar Intervenções +Permission64=Deletar Intervenções +Permission67=Exportar Intervenções +Permission68=Envie intervenções por e-mail +Permission69=Validar intervenções +Permission70=Invalidar intervenções +Permission71=Ler Membros +Permission72=Criar/Modificar Membros +Permission74=Deletar Membros +Permission75=Configurar tipos e atributos dos Membros +Permission78=Ler Assinaturas +Permission79=Criar/Modificar Assinaturas +Permission81=Ler Pedidos de Clientes +Permission82=Criar/Modificar Pedidos de Clientes +Permission84=Validar Pedidos de Clientes +Permission86=Enviar Pedidos de Clientes +Permission87=Fechar Pedidos de Clientes +Permission88=Cancelar Pedidos de Clientes +Permission89=Deletar Pedidos de Clientes +Permission91=Ler Gasto +Permission92=Criar/Modificar Gasto +Permission93=Deletar Gasto +Permission94=Exportar Gasto +Permission95=Ler Relátorios +Permission101=Ler Envios +Permission102=Criar/Modificar Envios +Permission104=Validar Envios +Permission105=Enviar envios por e-mail +Permission106=Exportar Envios +Permission109=Deletar Envios +Permission111=Ler Contas Financeiras +Permission112=Criar/Modificar/Deletar e Comparar Transações +Permission113=Configurar contas financeiras (criar, gerenciar categorias de transações bancárias) +Permission115=Exportar Transações e Extratos Bancários +Permission116=Transferência entre Contas +Permission117=Gerenciar cheques despachando +Permission121=Ler Terceiros Vinculado ao Usuário +Permission122=Criar/Modificar Terceiros +Permission125=Deletar Terceiros +Permission126=Exportar Terceiros +Permission130=Criar/modificar informações de pagamento de terceiros +Permission146=Ler Provedores +Permission147=Ler Estatísticas +Permission151=Ler pedidos com pagamento por débito direto +Permission152=Criar/Modificar pedidos com pagamento por débito direto +Permission153=Enviar/Transmitir pedidos com pagamento por débito direto +Permission161=Ler Contratos +Permission162=Criar/Modificar Contratos +Permission163=Ativar Serviço de um Contrato +Permission164=Desabilitar Serviço de um Contrato +Permission165=Excluir Contratos/assinaturas +Permission171=Ler viagens e despesas (suas e de seus subordinados) +Permission172=Criar/Modificar Viagens +Permission173=Deletar Viagens +Permission174=Leia todas as viagens e despesas +Permission178=Exportar Viagens +Permission180=Ler Fornecedores +Permission181=Ler pedidos de compra +Permission182=Criar/modificar pedidos +Permission183=Validar pedidos +Permission184=Aprovar pedidos +Permission185=Encomendar ou cancelar pedidos +Permission186=Receber pedidos de compra +Permission187=Fechar pedidos de compra +Permission192=Criar Linhas +Permission193=Cancelar Linhas +Permission194=Leia as linhas de largura de banda +Permission202=Criar Conexões ADSL +Permission203=Pedir Pedidos de Conexões +Permission204=Pedir Conexões +Permission205=Gerenciar Conexões +Permission206=Ler Conexões +Permission211=Ler Telefones +Permission212=Linhas de Pedidos +Permission213=Ativar Linha +Permission214=Configurar Telefone +Permission215=Configurar Provedores +Permission221=Ler E-Mails +Permission222=Criar/Modificar E-Mails (assunto, destinatários...) +Permission223=Validar E-Mails (permite enviar) +Permission229=Deletar E-Mails +Permission237=Visualisar Destinatário e Informações +Permission238=Enviar Cartas Manualmente +Permission239=Deletar Cartas depois de Validado ou Enviado +Permission241=Ler Categorias +Permission242=Criar/Modificar Categorias +Permission243=Deletar categorias +Permission244=Visualisar o Conteúdo de Categorias Ocultas +Permission251=Ler Outros Usuários e Grupos +PermissionAdvanced251=Ler Outros Usuários +Permission252=Ler Permissões de Outros Usuários +Permission253=Crie / modifique outros usuários, grupos e permissões +PermissionAdvanced253=Criar/Modificar Usuários internos/externos e suas Permissões +Permission254=Criar/Modificar Usuários Externos +Permission255=Modificar Senha de Outros Usuários +Permission256=Deletar ou Desativar Outros Usuários +Permission262=Estender acesso a todos os terceiros E seus objetos (não apenas terceiros para os quais o usuário é um representante de vendas).
    Não eficaz para usuários externos (sempre limitado a eles próprios para propostas, pedidos, faturas, contratos, etc.).
    Não eficaz para projetos (apenas regras sobre permissões de projeto, visibilidade e questões de atribuição). +Permission263=Estender acesso a todos os terceiros SEM seus objetos (não apenas terceiros para os quais o usuário é um representante de vendas).
    Não eficaz para usuários externos (sempre limitado a eles mesmos para propostas, pedidos, faturas, contratos, etc.).
    Não eficaz para projetos (apenas regras sobre permissões de projeto, visibilidade e questões de atribuição). +Permission271=Ler CA +Permission272=Ler Faturas +Permission273=Emitir Fatura +Permission281=Ler Contatos +Permission282=Criar/Modificar Contatos +Permission283=Deletar Contatos +Permission286=Exportar Contatos +Permission291=Ler Tarifas +Permission292=Definir Permissões das Tarifas +Permission304=Criar/modificar códigos de barras +Permission311=Ler Serviços +Permission312=Atribuir Serviço no Contrato +Permission331=Ler Marcadores de Página +Permission332=Criar/Modificar Marcadores de Página +Permission333=Deletar Marcadores de Página +Permission341=Ler suas Próprias Permissões +Permission342=Criar/Modificar Informações do seu Próprio Usuário +Permission343=Modificar Própria Senha +Permission344=Modificar Suas Próprias Permissões +Permission351=Ler Grupos +Permission352=Ler Permissões de Grupos +Permission353=Criar/Modificar Grupos +Permission354=Excluir ou Desabilitar Grupos +Permission358=Excluir Usuários +Permission401=Ler Descontos +Permission402=Criar/Modificar Descontos +Permission403=Validar Descontos +Permission404=Excluir Descontos +Permission430=Use a barra de depuração +Permission511=Leia salários e pagamentos (seus e subordinados) +Permission512=Criar/modificar salários e pagamentos +Permission514=Excluir salários e pagamentos +Permission517=Leia salários e pagamentos a todos +Permission519=Salários de exportação +Permission520=Leia Empréstimos +Permission522=Criar / modificar empréstimos +Permission524=Excluir empréstimos +Permission525=Acesso a Calculadora de empréstimo +Permission527=Exportação de Empréstimos +Permission531=Ler Serviços +Permission532=Criar/Modificar Serviços +Permission534=Excluir Serviços +Permission536=Ver/gerenciar Serviços Ocultos +Permission538=Exportar Serviços +Permission561=Ler ordens de pagamento por transferência de crédito +Permission562=Criar / alterar ordem de pagamento por transferência de crédito +Permission563=Enviar / Transmitir ordem de pagamento por transferência de crédito +Permission564=Registrar débitos / rejeições de transferência de crédito +Permission601=Ler adesivos +Permission602=Criar / alterar adesivos +Permission609=Excluir adesivos +Permission611=Ler atributos de variantes +Permission612=Criar/atualizar atributos de variantes +Permission613=Excluir atributos de variantes +Permission650=Leia as listas de materiais +Permission651=Criar / atualizar listas de materiais +Permission652=Excluir listas de materiais +Permission660=Ler pedido de fabricação (MO) +Permission661=Criar / Atualizar Pedido de Fabricação (MO) +Permission662=Excluir Ordem de Fabricação (MO) +Permission701=Ler Doações +Permission702=Criar/Modificar Doações +Permission703=Excluir Doações +Permission771=Ler relatórios de despesa (o seu e dos seus subordinados) +Permission772=Criar/modificar relatórios de despesas (para você e seus subordinados) +Permission773=Excluir relatórios de despesas +Permission775=Aprovar os relatórios de despesas +Permission776=Relatórios de despesas pagas +Permission777=Leia todos os relatórios de despesas (mesmo os de usuários não subordinados) +Permission778=Criar / alterar relatórios de despesas de todos +Permission779=Exportar - Relatórios de despesas +Permission1001=Ler Estoques +Permission1002=Criar/Modificar Estoques +Permission1003=Excluir Estoques +Permission1004=Ler Movimentação de Estoque +Permission1005=Criar/Modificar Movimentação de Estoque +Permission1011=Ver inventários +Permission1012=Novo inventário +Permission1015=Permitir alterar o valor PMP de um produto +Permission1016=Remover inventario +Permission1101=Ler recibos de entrega +Permission1102=Criar / alterar recibos de entrega +Permission1121=Leia propostas de fornecedores +Permission1122=Criar / modificar propostas de fornecedores +Permission1123=Validar propostas de fornecedores +Permission1124=Enviar propostas de fornecedores +Permission1125=Excluir propostas de fornecedores +Permission1126=Fechar solicitações de preços de fornecedores +Permission1181=Ler Fornecedores +Permission1182=Leia pedidos de compra +Permission1183=Criar/modificar pedidos +Permission1184=Validar pedidos +Permission1185=Aprovar pedidos +Permission1186=Encomenda de pedidos +Permission1187=Reconhecer o recebimento de pedidos de compra +Permission1188=Excluir pedidos +Permission1189=Marque / desmarque a recepção de um pedido de compra +Permission1190=Aprovar pedidos de compra (segunda aprovação) +Permission1191=Exportar pedidos de fornecedores e seus atributos +Permission1201=Conseguir Resultado de uma Exportação +Permission1202=Criar/Modificar uma Exportação +Permission1231=Ler faturas de fornecedores +Permission1232=Criar/modificar faturas de fornecedores +Permission1234=Excluir faturas de fornecedores +Permission1235=Enviar faturas de fornecedores por e-mail +Permission1236=Exportar faturas, atributos e pagamentos do fornecedor +Permission1237=Exportar pedidos de compra e seus detalhes +Permission1251=Rodar(run) Importações Massivas de Dados Externos para o Banco de Dados (carregamento de dados) +Permission1321=Exportar Faturas de Clientes, Atributos e Pagamentos +Permission1322=Reabrir uma nota paga +Permission1421=Exportar pedidos de venda e atributos +Permission1521=Ler documentos +Permission1522=Excluir documentos +Permission2401=Ler ações (eventos ou tarefas) vinculadas à sua conta de usuário (se o proprietário do evento ou apenas tiver sido atribuído a) +Permission2402=Criar / modificar ações (eventos ou tarefas) vinculadas à sua conta de usuário (se for proprietário do evento) +Permission2403=Excluir ações (eventos ou tarefas) vinculadas à sua conta de usuário (se for proprietário do evento) +Permission2411=Ler Ações (eventos ou tarefas) dos Outros +Permission2412=Criar/Modificar Ações (eventos ou tarefas) dos Outros +Permission2413=Excluir ações (eventos ou tarefas) dos outros +Permission2414=Exportar ações/tarefas dos outros +Permission2501=Ler/Baixar Documentos +Permission2502=Baixar Documentos +Permission2503=Submeter ou Deletar Documentos +Permission2515=Configurar Diretórios dos Documentos +Permission2801=Usar cliente FTP no modo leitura (somente navegador e baixar) +Permission2802=Usar cliente FTP no modo escrita (deletar ou upload de arquivos) +Permission3200=Leia eventos arquivados e impressões digitais +Permission3301=Gerar novos módulos +Permission4001=Ler habilidade/trabalho/posição +Permission4002=Criar/modificar habilidade/trabalho/posição +Permission4003=Excluir habilidade/trabalho/posição +Permission4023=Validar avaliação +Permission4025=Excluir avaliação +Permission4028=Ver menu de comparação +Permission4031=Ler informações pessoais +Permission4032=Escreva informações pessoais +Permission10001=Leia o conteúdo do site +Permission10002=Criar / modificar o conteúdo do site (conteúdo em html e javascript) +Permission10003=Criar / modificar o conteúdo do site (código php dinâmico). Perigoso, deve ser reservado para desenvolvedores restritos. +Permission10005=Excluir conteúdo do site +Permission20001=Leia pedidos de licença (sua licença e os de seus subordinados) +Permission20002=Criar/modificar seus pedidos de licença (sua licença e os de seus subordinados) +Permission20003=Excluir pedidos de licença +Permission20004=Leia todas as solicitações de licença (mesmo as de usuários não subordinados) +Permission20005=Criar/modificar pedidos de licença para todos (mesmo os de usuários não subordinados) +Permission20006=Administrar solicitações de licença (configurar e atualizar saldo) +Permission20007=Aprovar solicitações de licenças +Permission23001=Ler Tarefas Agendadas +Permission23002=Criar/Atualizar Tarefas Agendadas +Permission23003=Excluir Tarefas Agendadas +Permission23004=Executar Tarefas Agendadas +Permission50101=Ponto de venda de uso (SimplePOS) +Permission50151=Ponto de venda de uso (TakePOS) +Permission50152=Editar linhas de vendas +Permission50153=Editar linhas de vendas solicitadas +Permission50201=Ler Transações +Permission50202=Importar Transações +Permission50330=Leia objetos de Zapier +Permission50331=Criar / atualizar objetos de Zapier +Permission50332=Excluir objetos de Zapier +Permission50401=Vincular produtos e faturas com contas contábeis +Permission50411=Ler operações no livro de registros +Permission50412=Gravar/ edirar operações no livro de registros +Permission50414=Excluir operações no livro de registros +Permission50415=Excluir todas as operações por ano e livro razão +Permission50418=Operações de exportação do livro razão +Permission50420=Relatórios e relatórios para exportação (rotatividade, saldo, diários, livro razão) +Permission50430=Definir períodos fiscais. Validar transações e fechar períodos fiscais. +Permission50440=Gerenciar plano de contas, configuração da contabilidade +Permission51001=Ler ativos +Permission51002=Criar / atualizar ativos +Permission51003=Excluir ativos +Permission51005=Tipos de configuração do ativo +Permission55001=Ler Pesquisa +Permission55002=Criar/Modificar Pesquisa +Permission59001=Leia margens comerciais +Permission59003=Leia cada margem do usuário +Permission63001=Ler recursos +Permission63002=Criar/Modificar recursos +Permission63003=Excluir recursos +Permission63004=Conectar os recursos aos eventos da agenda +Permission64001=Permitir impressão direta +Permission67000=Permitir impressão de recibos +Permission68001=Ler o relatório intracomm +Permission68002=Criar / alterar relatório intracomm +Permission68004=Excluir relatório intracomm +Permission941601=Ler recibos +Permission941602=Criar e modificar recibos +Permission941603=Validar recibos +Permission941604=Enviar recibos por e-mail +Permission941605=Exportar recibos +Permission941606=Excluir recibos +DictionaryCompanyType=Tipos de terceiros +DictionaryCompanyJuridicalType=Entidades jurídicas de terceiros +DictionaryProspectLevel=Nível potencial de prospecção para empresas +DictionaryProspectContactLevel=Nível potencial de prospecção para contatos +DictionaryCanton=Estados / Cidades +DictionaryRegion=Regiões +DictionaryCivility=Títulos honorários +DictionaryActions=Tipos de eventos na agenda +DictionarySocialContributions=Tipos de impostos sociais ou fiscais +DictionaryVAT=Taxas de VAT ou imposto sobre vendas de moeda +DictionaryPaymentConditions=Termos de pagamento +DictionaryPaymentModes=Formas de pagamento +DictionaryTypeContact=Tipos Contato / Endereço +DictionaryTypeOfContainer=Website - Tipo de páginas/contêineres do site +DictionaryEcotaxe=Ecotaxa (REEE) +DictionaryPaperFormat=Formatos de papel +DictionaryFormatCards=Formatos de cartão +DictionaryFees=Relatório de despesas - Tipos de linhas de relatório de despesas +DictionarySendingMethods=Métodos do transporte +DictionaryStaff=Número de empregados +DictionaryOrderMethods=Métodos de pedido +DictionarySource=Origem das propostas / ordens +DictionaryAccountancyCategory=Grupos personalizados para relatórios +DictionaryAccountancysystem=Modelos para o plano de contas +DictionaryAccountancyJournal=Relatórios da contabilidade +DictionaryEMailTemplates=Templates de e-mail +DictionaryMeasuringUnits=Unidades de Medição +DictionarySocialNetworks=Redes Sociais +DictionaryProspectStatus=Status em potencial para empresas +DictionaryProspectContactStatus=Status do cliente potencial para contatos +DictionaryHolidayTypes=Licença - Tipos de licença +DictionaryTransportMode=Relatório intracomm - modo de transporte +DictionaryBatchStatus=Status do controle de qualidade do lote/série do produto +DictionaryAssetDisposalType=Tipo de alienação de ativos +TypeOfUnit=Tipo de unidade +SetupSaved=Configurações Salvas +SetupNotSaved=Configuração não salva +BackToModuleList=Voltar à lista do módulo +BackToDictionaryList=Voltar à lista de dicionários +VATIsUsedDesc=Por padrão, ao criar prospectos, faturas, pedidos etc., a taxa do imposto sobre vendas segue a regra padrão ativa:
    Se o vendedor não estiver sujeito ao imposto sobre vendas, o imposto sobre vendas será padronizado como 0. Fim da regra.
    Se o (país do vendedor = país do comprador), o imposto sobre vendas, por padrão, é igual ao imposto sobre vendas do produto no país do vendedor. Fim de regra.
    Se o vendedor e o comprador estiverem na Comunidade Europeia e os bens forem produtos relacionados a transporte (transporte, transporte aéreo, companhia aérea), o IVA padrão é 0. Essa regra depende do país do vendedor - consulte seu contador. O IVA deve ser pago pelo comprador à estância aduaneira do seu país e não ao vendedor. Fim de regra.
    Se o vendedor e o comprador estiverem ambos na Comunidade Europeia e o comprador não for uma empresa (com um número de IVA intracomunitário registrado), o IVA será padronizado para a taxa de IVA do país do vendedor. Fim de regra.
    Se o vendedor e o comprador estiverem ambos na Comunidade Europeia e o comprador for uma empresa (com um número de IVA intracomunitário registrado), o IVA será 0 por padrão. Fim de regra.
    Em qualquer outro caso, o padrão proposto é imposto sobre vendas = 0. Fim de regra. +VATIsUsedExampleFR=Na França, significa empresas ou organizações que possuem um sistema fiscal real (real simplificado, real ou normal). Um sistema no qual o IVA é declarado. +VATIsNotUsedExampleFR=Na França, isso significa associações que não são declaradas em impostos sobre vendas ou empresas, organizações ou profissões liberais que escolheram o sistema fiscal de microempresas (imposto sobre vendas em franquia) e pagaram uma taxa de vendas de franquia sem qualquer declaração de imposto sobre vendas. Essa opção exibirá a referência "Imposto sobre vendas não aplicável - art-293B do CGI" nas faturas. +TypeOfSaleTaxes=Tipo de imposto sobre vendas +LTRate=Rata +LocalTax1IsNotUsed=Não utilizar segundo imposto +LocalTax2IsNotUsed=Não utilizar terceiro imposto +LocalTax1ManagementES=Gestor RE +LocalTax1IsNotUsedDescES=A RE padrão proposta é 0. Fim da regra. +LocalTax1IsUsedExampleES=Na Espanha eles são profissionais sujeito a alguma seção especifica da IAE espanhola. +LocalTax1IsNotUsedExampleES=Na Espanha eles são proficionais e sócios e sujeito a uma certa seção da IAE espanhola. +LocalTax2ManagementES=Gestor IRPF +LocalTax2IsNotUsedDescES=Por padrão, o iRPF sugerido é 0. Fim da regra. +LocalTax2IsUsedExampleES=Na Espanha, freelancers e profissionais independentes que oferecem serviços e empresas que tenham escolhidos o módulo de sistema de imposto. +RevenueStampDesc=O "carimbo de imposto" ou "carimbo de receita" é um imposto fixo por fatura (não depende do valor da fatura). Também pode ser um imposto percentual, mas o uso do segundo ou terceiro tipo de imposto é melhor para impostos percentuais, pois os selos fiscais não fornecem nenhum relatório. Apenas alguns países usam esse tipo de imposto. +UseRevenueStamp=Use um carimbo de imposto +UseRevenueStampExample=Valor do selo fiscal é definido por padrão na configuração de dicionários (%s - %s - %s) +CalcLocaltax=Relatórios sobre os impostos locais +CalcLocaltax1Desc=Relatorios de taxas locais são calculados pela differença entre taxas locais de venda e taxas locais de compra +CalcLocaltax2Desc=Relatorio de taxas locais e o total de taxas locais nas compras +CalcLocaltax3=De vendas +CalcLocaltax3Desc=Relatorio de taxas locais e o total de taxas locais de vendas +NoLocalTaxXForThisCountry=De acordo com a configuração dos impostos (Ver %s - %s - %s), seu país não precisa usar esse tipo de imposto +LabelUsedByDefault=Etiqueta usado por default se nenhuma tradução não for encontrado para o código =/ +LabelOnDocuments=Etiqueta nos documentos +ValueOfConstantKey=Valor de uma constante de configuração +ConstantIsOn=A opção %s está ativada +NbOfDays=Número de dias +Offset=Compensar +Upgrade=Atualizar +MenuUpgrade=Atualizar / Ampliar +AddExtensionThemeModuleOrOther=Lançar/Instalar app/módulo externo +DocumentRootServer=Diretório raiz do servidor web +DataRootServer=Diretório raiz dos dados +VirtualServerName=Nome virtual do servidor +PhpWebLink=link Web-PHP +Database=Banco de Dados +DatabaseServer=Servidor do Banco de Dados +DatabaseName=Nome do Banco de Dados +DatabasePort=Porta do Banco de Dados +DatabaseUser=Usuário do Banco de Dados +DatabasePassword=Senha do Banco de Dados +TableName=Nome da Tabela +NbOfRecord=Nº. de registros +DriverType=Tipo de Driver +SummarySystem=Resumo de informações do sistema +SummaryConst=Lista de todos os parâmetros de configurações do Dolibarr +MenuCompanySetup=Empresa / Organização +DefaultMenuManager=Gestor padrão de menu +DefaultMenuSmartphoneManager=Gestor do menu de smartphone +Skin=Tema Visual +DefaultSkin=Tema visual default +MaxSizeList=Comprimento máximo de lista +DefaultMaxSizeList=Comprimento máximo padrão para listas +MessageOfDay=Mensagem do dia +MessageLogin=Mensagem da página de login +LoginPage=Página de login +PermanentLeftSearchForm=Formulário permanente de pesquisa no menu esquerdo +EnableMultilangInterface=Habilitar suporte multilíngue para relacionamentos com clientes ou fornecedores +EnableShowLogo=Mostrar o logotipo da empresa no menu +CompanyInfo=Empresa / Organização +CompanyIds=Identidades da empresa / organização +CompanyAddress=Endereço +CompanyZip=CEP +CompanyTown=Município +IDCountry=ID do país +LogoDesc=Logotipo principal da empresa. Será usado em documentos gerados (PDF, ...) +LogoSquarred=Logotipo (quadrado) +LogoSquarredDesc=Deve ser um ícone quadrado (largura = altura). Este logotipo será usado como o ícone favorito ou outra necessidade da barra de menus superior (se não estiver desativado na configuração do monitor). +NoActiveBankAccountDefined=Nenhuma conta bancária ativa está definida +BankModuleNotActive=O módulo de contas bancárias não está habilitado +ShowBugTrackLink=Mostrar o link " %s " +ShowBugTrackLinkDesc=Mantenha vazio para não exibir este link, use o valor 'github' para o projeto Dolibarr ou defina diretamente um url 'https://...' +DelaysOfToleranceBeforeWarning=Exibindo um alerta de aviso para... +DelaysOfToleranceDesc=Defina o atraso antes de um ícone de alerta %s ser mostrado na tela para o elemento final. +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projeto não fechado a tempo +Delays_MAIN_DELAY_TASKS_TODO=Tarefa planejada (tarefas do projeto) não concluídas +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Encomenda não processada +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Conciliação bancária pendente +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Cheque depósito não feito +Delays_MAIN_DELAY_EXPENSEREPORTS=Relatório de despesas para aprovar +Delays_MAIN_DELAY_HOLIDAYS=Solicitações de Licenças para aprovar +SetupDescription2=As duas seções a seguir são obrigatórias (as duas primeiras entradas no menu de configuração): +SetupDescription3= %s -> %s

    Parâmetros básicos usados para personalizar o comportamento padrão do seu aplicativo (por exemplo, para recursos relacionados ao país). +SetupDescription4= %s -> %s

    Este software é um conjunto de muitos módulos/aplicativos. Os módulos relacionados às suas necessidades devem estar habilitados e configurados. As entradas do menu aparecerão com a ativação desses módulos. +SetupDescription5=Outras entradas do menu de configuração gerenciam parâmetros opcionais. +SetupDescriptionLink= %s - %s +SetupDescription3b=Parâmetros básicos usados para personalizar o comportamento padrão do seu aplicativo (por exemplo, para recursos relacionados ao país). +SetupDescription4b=Este software é um conjunto de muitos módulos/aplicativos. Os módulos relacionados às suas necessidades devem estar habilitados e configurados. As entradas do menu aparecerão com a ativação desses módulos. +AuditedSecurityEvents=Eventos de segurança que são auditados +NoSecurityEventsAreAduited=Nenhum evento de segurança é auditado. Você pode habilitá-los no menu %s +InfoOS=Sobre o SO +InfoDatabase=Sobre o banco de dados +InfoPerf=Sobre Desempenhos +InfoSecurity=Sobre Segurança +BrowserOS=Navegador OS +ListOfSecurityEvents=Lista de eventos de segurança do Dolibarr +SecurityEventsPurged=Eventos de segurança foram purgados(apagados) +LogEventDesc=Ative o registro para eventos de segurança específicos. Administradores o log via menu %s - %s . Atenção, esse recurso pode gerar uma grande quantidade de dados no banco de dados. +AreaForAdminOnly=Os parâmetros de configuração só podem ser definidos pelos usuários administradores. +SystemInfoDesc=Informações do sistema está faltando informações, técnicas você consegue em modo de leitura e é visivel somente para administradores. +SystemAreaForAdminOnly=Esta área está disponível apenas para usuários administradores. As permissões de usuário do Dolibarr não podem alterar essa restrição. +AccountantDesc=Se você tiver um contador / contador externo, poderá editar aqui suas informações. +AccountantFileNumber=Código do contador +DisplayDesc=Parâmetros que modificam a parte visual do aplicativo podem ser modificados aqui +AvailableModules=App/Módulos disponíveis +ToActivateModule=Para ativar os módulos, vá à área de configuração (Home->Configuração->Módulo). +SessionTimeOut=Expiro tempo de sessão +SessionsPurgedByExternalSystem=As sessões neste servidor parecem ser limpas por um mecanismo externo (cron no debian, ubuntu ...), provavelmente %s segundos (= valor do parâmetro session.gc_maxlifetime ), portanto, alterar o valor aqui não tem efeito. Você deve pedir ao administrador do servidor para alterar o atraso da sessão. +TriggersAvailable=Triggers disponível +TriggerDisabledByName=Triggers neste arquivo estão desativados pelo sufixo -NORUN em seu nome. +TriggerDisabledAsModuleDisabled=Triggers neste arquivo está desabilitado assim como o módulo %s está desabilitado. +TriggerAlwaysActive=Triggers neste arquivo está sempre ativo, não importando os módulos ativos no Dolibarr. +TriggerActiveAsModuleActive=Triggers neste arquivo são ativos quando módulo %s está ativado. +DictionaryDesc=Inserir todos os dados de referência. Você pode adicionar seus valores ao padrão. +ConstDesc=Esta página permite editar (substituir) parâmetros não disponíveis em outras páginas. Estes são parâmetros reservados principalmente para desenvolvedores / solução de problemas avançados. +MiscellaneousDesc=Todos os outros parâmetros relacionados com a segurança são definidos aqui. +LimitsSetup=Configurações de Limites/Precisões +MAIN_MAX_DECIMALS_UNIT=Max. decimais para preços unitários +MAIN_MAX_DECIMALS_TOT=Max. decimais para os preços totais +MAIN_MAX_DECIMALS_SHOWN=Max. decimais para os preços mostrados na tela . Adicione reticências ... após este parâmetro (por exemplo, "2 ...") se desejar ver "..." com sufixo no preço truncado. +MAIN_ROUNDING_RULE_TOT=Etapa do intervalo de arredondamento (para países em que o arredondamento é feito em algo diferente da base 10. Por exemplo, coloque 0,05 se o arredondamento for feito em 0,05 etapas) +UnitPriceOfProduct=Unidade líquida do preço do produto +TotalPriceAfterRounding=Preço total (excl/IVA/imposto incluso) após o arredondamento +ParameterActiveForNextInputOnly=Parâmetro efetivo somente para a próxima entrada +NoEventOrNoAuditSetup=Nenhum evento de segurança foi registrado. Isso é normal se a Auditoria não tiver sido ativada na página "Configuração - Segurança - Eventos". +SeeLocalSendMailSetup=Ver sua configuração local de envio de correspondência +BackupDesc=Um backup completo de uma instalação do Dolibarr requer duas etapas. +BackupDesc2=Faça backup do conteúdo do diretório "documentos" (%s) que contém todos os arquivos carregados e gerados. Isso também incluirá todos os arquivos de despejo gerados na Etapa 1. Essa operação pode durar vários minutos. +BackupDesc3=Faça backup da estrutura e do conteúdo do banco de dados ( %s ) em um arquivo de despejo. Para isso, você pode usar o assistente a seguir. +BackupDescY=O arquivo de despeja gerado deverá ser armazenado em um local seguro. +RestoreDesc=Para restaurar um backup Dolibarr, duas etapas são necessárias. +RestoreDesc2=Restaure o arquivo de backup (arquivo zip, por exemplo) do diretório "documents" para uma nova instalação do Dolibarr ou para o diretório atual de documentos ( %s ). +RestoreDesc3=Restaure a estrutura do banco de dados e os dados de um arquivo de despejo de backup no banco de dados da nova instalação do Dolibarr ou no banco de dados desta instalação atual ( %s ). Atenção, assim que a restauração for concluída, você deverá usar um login / senha, que existiu a partir do momento / instalação do backup para se conectar novamente.
    Para restaurar um banco de dados de backup nesta instalação atual, você pode seguir este assistente. +RestoreMySQL=Importar MySQL +ForcedToByAModule=Essa Regra é forçada para %s by um módulo ativado +ValueIsForcedBySystem=Este valor foi forçado pelo sistema. Não é permito alterar. +PreviousArchiveFiles=Arquivos existentes +RunningUpdateProcessMayBeRequired=A execução do processo de atualização parece ser necessária (a versão do programa %s é diferente da versão do banco de dados %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando na linha de comando (CLI) depois de logar no shell com o usuário %s ou você deve adicionar a opção -W no final da linha de comando para fornecer a senha %s. +YourPHPDoesNotHaveSSLSupport=Função SSL functions não está disponível no seu PHP +DownloadMoreSkins=Mais skins para baixar +SimpleNumRefModelDesc=Retorna o número de referência no formato %s yymm-nnnn onde yy é o ano, mm é o mês e nnnn é um número de incremento automático sequencial sem redefinição +SimpleNumRefNoDateModelDesc=Retorna o número de referência no formato %s-nnnn onde nnnn é um número sequencial de incremento automático sem reinicialização +ShowProfIdInAddress=Mostrar ID profissional com endereços +ShowVATIntaInAddress=Ocultar número de IVA intracomunitário +MAIN_DISABLE_METEO=Desativar a visão do clima +MeteoStdModEnabled=Modo padrão habilitado +MeteoPercentageMod=Modo porcentagem +MeteoPercentageModEnabled=Modo de porcentagem habilitado +TestLoginToAPI=Teste de login para API +ProxyDesc=Algumas características do Dolibarr requerem acesso à Internet. Defina aqui os parâmetros de conexão à Internet, como acesso por meio de um servidor proxy, se necessário. +ExternalAccess=Acesso Externo/Internet +MAIN_PROXY_USE=Use um servidor proxy (caso contrário, o acesso é direto à internet) +MAIN_PROXY_HOST=Servidor proxy: nome/endereço +MAIN_PROXY_USER=Servidor Proxy: Login/Usuário +DefineHereComplementaryAttributes=Definir quaisquer atributos adicionais / personalizados que devem ser adicionados a: %s +ExtraFields=atributos complementares +ExtraFieldsLinesRec=Atributos complementares (linhas dos temas das faturas) +ExtraFieldsSupplierOrdersLines=Atributos complementares (linhas de encomenda) +ExtraFieldsThirdParties=Atributos Complementares (Terceiros) +ExtraFieldsMember=Atributos complementares (membros) +ExtraFieldsCustomerInvoicesRec=Atributos complementares (temas das faturas) +ExtraFieldsSupplierOrders=Atributos complementares (pedidos) +ExtraFieldsSalaries=Atributos complementares (salários) +ExtraFieldHasWrongValue=Atributo %s tem um valor errado. +AlphaNumOnlyLowerCharsAndNoSpace=apenas alfanumérico e minúsculas, sem espaço +SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar email para seu email, sendmail executa a configuração que deve conter opção -ba (parâmetro mail.force_extra_parameters dentro do seu arquivo php.ini). Se algum destinatário não receber emails, tente editar esse parâmetro PHP com mail.force_extra_parameters = -ba). +PathToDocuments=Caminho para documentos +PathDirectory=Pasta +TranslationKeySearch=Buscar uma chave ou variável de tradução +TranslationOverwriteKey=Sobrescrever uma variável de tradução +TranslationDesc=Como definir o idioma de exibição:
    * Padrão / Systemwide: menu Início -> Configurações -> Exibir
    * Por usuário: Clique no nome de usuário na parte superior da tela e modifique a guia Configuração de exibição do usuário no cartão do usuário. +TranslationOverwriteDesc=Você também pode sobrescrever as variáveis preenchendo a tabela a seguir. Escolha o seu idioma a partir do "%s" dropdown, insira a variável com a chave da transação em "%s" e a sua nova tradução em "%s" +TranslationString=Variável de tradução +CurrentTranslationString=Variável de tradução atual +WarningAtLeastKeyOrTranslationRequired=Pelo menos um critério de busca é exigido para a chave ou variável de tradução. +NewTranslationStringToShow=Nova variável de tradução a ser exibida +OriginalValueWas=A tradução original foi sobrescrita. O valor original era:

    %s +TransKeyWithoutOriginalValue=Você forçou uma nova tradução para a chave de tradução ' %s ' que não existe em nenhum arquivo de idioma +TitleNumberOfActivatedModules=Módulos ativados +TotalNumberOfActivatedModules=Módulos ativados: %s / %s +YouMustEnableOneModule=Você pelo menos deve ativar 1 módulo +YesInSummer=Sim em verão +OnlyFollowingModulesAreOpenedToExternalUsers=Observe que apenas os módulos a seguir estão disponíveis para usuários externos (independentemente das permissões de tais usuários) e somente se as permissões forem concedidas:
    +SuhosinSessionEncrypt=Sessão armazenada criptografada pelo Suhosin +ConditionIsCurrently=Condição é atualmente %s +YouUseBestDriver=Você usa o driver %s, que é o melhor driver atualmente disponível. +NbOfObjectIsLowerThanNoPb=Você tem apenas %s %s no banco de dados. Isso não requer nenhuma otimização específica. +ComboListOptim=Otimização do carregamento da lista de combinação +SearchOptim=Procurar Otimização +YouHaveXObjectUseComboOptim=Você tem %s %s no banco de dados. Você pode entrar na configuração do módulo para habilitar o carregamento da lista de combinação no evento de tecla pressionada. +YouHaveXObjectUseSearchOptim=Você tem %s %s no banco de dados. Você pode adicionar a constante %s a 1 em Home-Setup-Other. +YouHaveXObjectUseSearchOptimDesc=Isso limita a consulta ao início dos textos, tornando possível para o banco de dados a utilização de índices, para que você tenha uma resposta rápida. +YouHaveXObjectAndSearchOptimOn=Você tem %s %s no banco de dados e a constante %s está definida como %s em Home-Setup-Other. +PHPModuleLoaded=O componente PHP 1 %s está carregado +PreloadOPCode=O OPCode pré-carregado está em uso +AddRefInList=Exibir ref. cliente/fornecedor. em listas de combinação.
    Terceiros aparecerão com um formato de nome de "CC12345 - SC45678 - The Big Company corp." em vez de "The Big Company corp". +AddVatInList=Exiba o número de IVA do cliente/fornecedor em listas de combinação. +AddAdressInList=Exiba o endereço do cliente/fornecedor em listas de combinação.
    Terceiros aparecerão com um formato de nome de "The Big Company corp. - 21 jump street 123456 Big town - USA" em vez de "The Big Company corp". +AddEmailPhoneTownInContactList=Exibir e-mail de contato (ou telefones, se não definido) e lista de informações da cidade (lista de seleção ou combobox).
    Os contatos aparecerão com o formato de nome "Dupond Durand - dupond.durand@email.com - Paris" ou "Dupond Durand - 06 07 59 65 66 - Paris "em vez de" Dupond Durand ". +FillThisOnlyIfRequired=Exemplo: +2 (Preencha somente se compensar o problema do timezone é experiente) +NumberingModules=Modelos de numeração +DocumentModules=Modelos de documentos +PasswordGenerationPerso=Retornar uma senha de acordo com a configuração definida para a sua personalidade. +PasswordPatternDesc=Descrição do padrão de senha +UsersSetup=Configurações de módulo de usuários +UserMailRequired=O e-mail é necessário para criar um novo usuário +UserHideInactive=Ocultar usuários inativos de todas as listas combinadas de usuários (não recomendado: isso pode significar que você não poderá filtrar ou pesquisar usuários antigos em algumas páginas) +UsersDocModules=Modelos de documentos para documentos gerados a partir do registro do usuário +GroupsDocModules=Modelos de documentos para documentos gerados a partir de um registro de grupo +HRMSetup=Configuração do módulo RH +CompanySetup=Configurações de módulo das empresas +AccountCodeManager=Opções para geração automática de códigos contábeis de clientes / fornecedores +NotificationsDesc=As notificações por e-mail podem ser enviadas automaticamente para alguns eventos do Dolibarr.
    Destinatários de notificações podem ser definidos: +NotificationsDescUser=* por usuário, um usuário por vez. +NotificationsDescContact=* por contatos de terceiros (clientes ou fornecedores), um por vez. +NotificationsDescGlobal=* ou configurando endereços de e-mail globais na página de configuração do módulo. +ModelModules=Modelos de documento +WatermarkOnDraft=Marca d'água no documento de rascuno +JSOnPaimentBill=Ative a função de preenchimento automático de linhas no formulário de pagamento +CompanyIdProfChecker=Regras para IDs profissionais +MustBeMandatory=Obrigatório criar terceiros (se o número de IVA ou o tipo de empresa for definido)? +MustBeInvoiceMandatory=Obrigatória a validação de faturas? +WebDAVSetupDesc=Este é o link para acessar o diretório WebDAV. Ele contém um diretório "público" aberto a qualquer usuário que conheça a URL (se o acesso ao diretório público for permitido) e um diretório "particular" que precise de uma conta / senha de login existente para acesso. +WebDavServer=URL raiz do servidor %s: %s +WebCalUrlForVCalExport=Uma exportação de link para o formato %s está disponível no seguinte link: %s +BillsSetup=Configurações do módulo de faturas +BillsNumberingModule=Faturas e notas de crédito no modelo de numeração +BillsPDFModules=Modelos de documentos da fatura +PaymentsPDFModules=Modelos dos documentos de pagamento +ForceInvoiceDate=Forçar data de fatura para data de validação +SuggestPaymentByRIBOnAccount=Sugerir pagamento por retirada na conta +SuggestPaymentByChequeToAddress=Sugerir pagamento por cheque para +FreeLegalTextOnInvoices=Texto livre nas fatura +WatermarkOnDraftInvoices=Marca d'água sobre o projeto de faturas (nenhum se estiver vazio) +PaymentsNumberingModule=Modelo de enumeração para pagamentos +SuppliersPayment=Pagamentos do fornecedor +SupplierPaymentSetup=Configuração de pagamentos do fornecedor +InvoiceCheckPosteriorDate=Verifique a data de fabricação antes da validação +InvoiceCheckPosteriorDateHelp=A validação de uma fatura será proibida se sua data for anterior à data da última fatura do mesmo tipo. +PropalSetup=Configurações do módulo de orçamentos +ProposalsNumberingModules=Modelos de numeração de orçamentos +ProposalsPDFModules=Modelos de documentos para Orçamentos +SuggestedPaymentModesIfNotDefinedInProposal=Modo de pagamentos sugeridos na proposta por padrão, se não estiver definido na proposta +FreeLegalTextOnProposal=Texto livre em orçamentos +WatermarkOnDraftProposal=Marca d'água no rascunho de orçamentos (nenhum se vazio) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Informar conta bancária de destino da proposta +SupplierProposalSetup=Preço solicitado via fornecedor instalação de módulo +SupplierProposalNumberingModules=Modelos de numeração das solicitações de preço aos fornecedores +SupplierProposalPDFModules=Modelos de documentos de solicitação de preço aos fornecedores +FreeLegalTextOnSupplierProposal=Texto livre sobre os pedidos de preços de fornecedores +WatermarkOnDraftSupplierProposal=Marca d'água em projetos de ordem dos fornecedores (nenhum se estiver vazio) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Informar conta bancária de destino da proposta +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Solicitar Fonte de Armazenagem para o pedido +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Pedir destino da conta bancária da ordem de compra +SuggestedPaymentModesIfNotDefinedInOrder=Modo de pagamentos sugeridos no pedido de venda por padrão, se não definido no pedido +OrdersNumberingModules=modelos de numeração de pedidos +OrdersModelModule=Modelos de documentos de pedidos +FreeLegalTextOnOrders=Texto livre em pedidos +WatermarkOnDraftOrders=Marca d'água no rascunho de pedidos (nenhum para vazio) +ShippableOrderIconInList=Adicionar um ícone na lista de pedidos que indicam se a ordem é shippable +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Informar conta bancária de destino da ordem +InterventionsSetup=Configurações do módulo intervenções +FreeLegalTextOnInterventions=Texto livre nos documentos de intervenção +FicheinterNumberingModules=Modelos de numeração de intervenção +TemplatePDFInterventions=Modelos de documentos de cartão de intervenção +WatermarkOnDraftInterventionCards=Marca d'água nos documentos de cartão de intervenção (nenhum para vazio) +ContractsSetup=Configurações de módulo de contratos +ContractsNumberingModules=módulos de numeração de contratos +TemplatePDFContracts=Modelos de documentos Contratos +WatermarkOnDraftContractCards=Marca d'água em projetos de contratos (nenhum se estiver vazio) +MembersSetup=Configurações de módulo de membros +AdherentLoginRequired=Gestor de login para cada membro +AdherentMailRequired=O e-mail necessário para criar um novo membro +MemberSendInformationByMailByDefault=Marque o checkbox para enviar confirmação de correspondência para membros (validação ou nova contribuição) é ativo por default +MemberCreateAnExternalUserForSubscriptionValidated=Criar um login de usuário externo para cada inscrição de membro validada. +MEMBER_REMINDER_EMAIL=Ativar lembrete automático por e-mail de assinaturas expiradas. Nota: O módulo %s deve estar ativado e configurado corretamente para enviar lembretes. +MembersDocModules=Modelos de documentos para documentos gerados a partir de registro de membro +LDAPSetup=Configurações do LDAP +LDAPUsersSynchro=Usuários +LDAPContactsSynchro=Contatos +LDAPSynchronization=sincronização LDAP +LDAPFunctionsNotAvailableOnPHP=Funções LDAP não estão disponíveis no seu PHP +LDAPSynchronizeUsers=Organização dos usuários em LDAP +LDAPSynchronizeGroups=Organização dos grupos em LDAP +LDAPSynchronizeContacts=Organização dos contatos em LDAP +LDAPSynchronizeMembers=Organização dos membros da fundação em LDAP +LDAPSynchronizeMembersTypes=Organização dos tipos de membro da fundação no LDAP +LDAPPrimaryServer=Servidor primário +LDAPSecondaryServer=Servidor secundário +LDAPServerPortExample=Padrão ou StartTLS: 389, LDAPs: 636 +LDAPServerUseTLS=Usuário TLS +LDAPServerUseTLSExample=Seu servidor LDAP usa TLS +LDAPAdminDn=Administrador DN +LDAPAdminDnExample=Preencher DN (ex: cn=admin,dc=exemplo,dc=com ou cn=Administrador,cn=Usuários,dc=exemplo,dc=com para diretório ativo) +LDAPPassword=Senha do administrador +LDAPUserDn=DN dos Usuário +LDAPUserDnExample=DN completo (ex: ou=usuários,dc=exemplo,dc=com) +LDAPGroupDnExample=DN completo (ex: ou=grupos,dc=exemplo,dc=com) +LDAPServerExample=Endereço do servidor (ex: localhost, 192.168.0.2, ldaps://ldap.exemplo.com/) +LDAPServerDnExample=DN completo (Ex: dc=exemplo,dc=com) +LDAPDnSynchroActive=Sincronização de Usuários e Grupos +LDAPDnContactActive=Sincronização dos contatos +LDAPDnContactActiveExample=Sincronização Ativada/Desativada +LDAPDnMemberActive=Sincronização dos Membros +LDAPDnMemberActiveExample=Sincronização Ativada/Desativada +LDAPDnMemberTypeActive=Sincronização dos tipos de membros +LDAPDnMemberTypeActiveExample=Sincronização Ativada/Desativada +LDAPContactDn=Contatos DN do Dolibarr +LDAPContactDnExample=DN completo (ex: ou=contatos,dc=exemplo,dc=com) +LDAPMemberDn=Membros DN do Dolibarr +LDAPMemberDnExample=DN completo (ex: ou=membros,dc=exemplo,dc=com) +LDAPMemberObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex: top,inetOrgPerson ou top,usuário por active diretory) +LDAPMemberTypeDn=DN dos tipos de membro no Dolibarr +LDAPMemberTypepDnExample=DN Completo (ex: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex top,grupoDeNomeUnico) +LDAPUserObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex: top,inetOrgPerson ou top,usuário por active diretory) +LDAPGroupObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex top,grupoDeNomeUnico) +LDAPContactObjectClassListExample=Lista de objectClass que definem os atributos gravados (ex: top,inetOrgPerson o top,usuários por active diretory) +LDAPTestConnect=Teste de conexão LDAP +LDAPTestSynchroContact=Teste de sincronização dos contatos +LDAPTestSynchroUser=Teste de sincronização dos Usuário +LDAPTestSynchroGroup=Teste de sincronização dos grupos +LDAPTestSynchroMember=Teste de sincronização dos Membros +LDAPTestSynchroMemberType=Teste da sincronização dos tipos de membro +LDAPTestSearch=Teste de pesquisa LDAP +LDAPSynchroOK=Teste de sincronização foi um sucesso +LDAPSynchroKO=Teste de sincronização falhou +LDAPTCPConnectOK=Conexão TCP para o servidor LDAP foi um sucesso (Servidor=%s, Porta=%s) +LDAPTCPConnectKO=Conexão TCP para o servidor LDAP falhou (Servidor=%s, Porta=%s) +LDAPSetupForVersion3=Servidor LDAP configurado para versão 3 +LDAPSetupForVersion2=Servidor LDAP configurado para versão 2 +LDAPFilterConnectionExample=Exemplo: &(objectClass = inetOrgPerson) +LDAPGroupFilterExample=Exemplo: & (objectClass=groupOfUsers) +LDAPFieldMail=E-Mail +LDAPFieldMailExample=Exemplo: mail +LDAPFieldPhone=Telefone profissional +LDAPFieldPhoneExample=Exemplo: givenName +LDAPFieldHomePhone=Telefone pessoal +LDAPFieldHomePhoneExample=Exemplo: homephone +LDAPFieldMobile=Celular +LDAPFieldMobileExample=Exemplo: mobile +LDAPFieldFax=Fax +LDAPFieldAddress=Endereço +LDAPFieldAddressExample=Exemplo: street +LDAPFieldZip=CEP +LDAPFieldZipExample=Exemplo: postalcode +LDAPFieldTown=Município +LDAPFieldDescriptionExample=Exemplo: description +LDAPFieldNotePublicExample=Exemplo: publicnote +LDAPFieldGroupMembers=Membros de grupo +LDAPFieldEndLastSubscription=Data do término de inscrição +LDAPFieldTitleExample=Exemplo: Título +LDAPFieldGroupid=ID do grupo +LDAPFieldGroupidExample=Exemplo: gidnumber +LDAPFieldUserid=ID do usuário +LDAPFieldUseridExample=Exemplo : uidnumber +LDAPFieldHomedirectory=Diretório inicial +LDAPFieldHomedirectoryExample=Exemplo : diretórioinicial +LDAPFieldHomedirectoryprefix=Prefixo do diretório inicial +LDAPSetupNotComplete=Configurações LDAP não está completa (vá nas outras abas) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Nenhum administrador ou senha fornecido. O acesso LDAP será anônimo no modo sómente leitura. +LDAPDescContact=Essa página permite você definir os nomes dos atributos LDAP na árvore LDAP para cada dado achado nos contatos do Dolibarr. +LDAPDescUsers=Essa página permite você definir os nomes dos atributos LDAP na árvore LDAP para cada dado achado nos usuários do Dolibarr. +LDAPDescGroups=Essa página permite você definir os nomes dos atributos LDAP na árvore LDAP para cada dado achado nos grupos do Dolibarr. +LDAPDescMembers=Essa página permite você definir os nomes dos atributos LDAP na árvore LDAP para cada dado achado nos membros do Dolibarr. +LDAPDescMembersTypes=Esta página permite que você defina os atributos do nome LDAP na árvore LDAP para cada dado encontrado nos tipos de membro no Dolibarr. +LDAPDescValues=Exemplos de valores são projetados pelo OpenLDAP seguido dos temas carregados: core.schema, cosine.schema, inetorgperson.schema). Se você usa esses valores e OpenLDAP, modifique seu arquivo de configurações LDAP slapd.conf para ter todos esses temas carregados. +ForANonAnonymousAccess=Para um acesso autenticado (para um acesso de escrita por exemplo) +PerfDolibarr=Configurações/otimizações de relatório de performance +NotInstalled=Não instalado. +NotSlowedDownByThis=Velocidade não pôde ser diminuída +NotRiskOfLeakWithThis=Não há risco de vazamento desta forma. +ApplicativeCache=cache de aplicativo +MemcachedNotAvailable=Nenhum cache de aplicativo foi encontrado. Você pode aumentar a performance instalando um servidor de cache Memcached e o módulo será capaz de usar esse servidor de cache. Mais informações aqui http://wiki.dolibarr.org/index.php/Module_MemCached_EN. Note que vários provedores de host web não dispõem de tal servidor de cache. +MemcachedModuleAvailableButNotSetup=Módulo de aceleração da memória cache está ativado mas a configuração não está completa +MemcachedAvailableAndSetup=Módulo de aceleração da memória cache está ativado e a configuração está completa +OPCodeCache=cache OPCode +FilesOfTypeCached=Arquivos do tipo %s estão no cache pelo servidor HTTP +FilesOfTypeNotCached=Arquivos do tipo %s não estão no cache pelo servidor HTTP +FilesOfTypeCompressed=Arquivos do tipo %s estão comprimidos pelo servidor HTTP +FilesOfTypeNotCompressed=Arquivos do tipo %s não estão comprimidos pelo servidor HTTP +CompressionOfResources=Comprimir as respostas HTTP +TestNotPossibleWithCurrentBrowsers=Não é possível detecção automática +DefaultValuesDesc=Aqui você pode definir o valor padrão que deseja usar ao criar um novo registro e / ou filtros padrão ou a ordem de classificação ao listar registros. +DefaultCreateForm=Valores padrão (para usar em formulários) +DefaultSearchFilters=Filtros de busca padrão +DefaultSortOrder=Ordem padrão dos pedidos +DefaultFocus=Campos de foco padrão +ProductSetup=Configurações do módulo dos produtos +ServiceSetup=Configurações do módulo de serviços +ProductServiceSetup=Configurações dos módulos de produtos e serviços +NumberOfProductShowInSelect=Número máximo de produtos para mostrar em listas de seleção de combinação (0 = sem limite) +ViewProductDescInFormAbility=Exibir a descrição do produto nas linhas dos itens (caso contrário, a descrição será apresentada no formato de pop-up) +OnProductSelectAddProductDesc=Como usar a descrição dos produtos ao adicionar um produto como uma linha de um documento +AutoFillFormFieldBeforeSubmit=Preencher automaticamente o campo de entrada da descrição com a descrição do produto +DoNotAutofillButAutoConcat=Não preencha automaticamente o campo de entrada com a descrição do produto. A descrição do produto será concatenada com a descrição inserida automaticamente. +DoNotUseDescriptionOfProdut=A descrição do produto nunca será incluída na descrição das linhas de documentos +MergePropalProductCard=Ativar na aba Arquivos Anexos ao produto/serviço uma opção para mesclar o documento PDF do produto à proposta PDF se o produto/serviço estiver na proposta +ViewProductDescInThirdpartyLanguageAbility=Exibir descrições de produtos em formulários no idioma do terceiro (caso contrário, no idioma do usuário) +SetDefaultBarcodeTypeProducts=Tipo de código de barras default para usar nós produtos +SetDefaultBarcodeTypeThirdParties=Tipo de código de barras default para usar nós terceiros +UseUnits=Definir uma unidade de medida para a Quantidade durante a edição das linhas do pedido, proposta ou fatura +ProductCodeChecker=Módulo para geração de código do produto e verificação (produto ou serviço) +ProductOtherConf=Configurações de Produto / Serviço +SyslogSetup=Configurações do módulo de logs +SyslogOutput=Saídas de logs +SyslogFilename=Nome do arquivo e caminho +YouCanUseDOL_DATA_ROOT=Você pode usar DOL_DATA_ROOT/dolibarr.log para um arquivo de log no diretório dos "documentos" do Dolibarr. +ErrorUnknownSyslogConstant=A Constante %s não é conhecida pelas constantes do Syslog +SyslogFileNumberOfSaves=Número de registros de backup para manter +ConfigureCleaningCronjobToSetFrequencyOfSaves=Configurar o trabalho agendado de limpeza para definir a frequência de backup de log +DonationsSetup=Configurações do módulo de doações +DonationsReceiptModel=Templates de recibos de doação +BarcodeSetup=Configurações de código de barras +PaperFormatModule=Módulo de formato de impressão +BarcodeEncodeModule=Tipo de codificação do código de barras +CodeBarGenerator=Gerador de código de barras +ChooseABarCode=Nenhum gerador de código de barras +FormatNotSupportedByGenerator=Formato não suportado por esse gerador +BarcodeDescEAN8=Código de barras tipo EAN8 +BarcodeDescEAN13=Código de barras tipo EAN13 +BarcodeDescUPC=Código de barras tipo UPC +BarcodeDescISBN=Código de barras tipo ISBN +BarcodeDescC39=Código de barras tipo C39 +BarcodeDescC128=Código de barras tipo C128 +BarcodeDescQRCODE=Código de barras do tipo QR code +GenbarcodeLocation=Ferramenta em linha de comando para geração de código de barras (usado pelo mecanismo interno para alguns tipos de código de barras) +BarcodeInternalEngine=Mecanismo interno +BarCodeNumberManager=Gerente de auto definir números de código de barras +ExternalRSSSetup=Configurações importantes de RSS externo +NewRSS=Novo RSS Feed +RSSUrl=URL de RSS +RSSUrlExample=Um interessante RSS feed +MailingSetup=Configurações do módulo de e-mails +MailingEMailFrom=E-mail do remetente (De) para e-mails enviados por módulo de e-mail +MailingEMailError=Retornar e-mail (Erros-para) para e-mails com erros +MailingDelay=Segundos de espera antes do envio da mensagem seguinte +NotificationSetup=Configuração do módulo de notificação por e-mail +NotificationEMailFrom=E-mail do remetente (De) para e-mails enviados pelo módulo de Notificações +FixedEmailTarget=Destinatário +NotificationDisableConfirmMessageContact=Ocultar a lista de destinatários (inscritos como contato) de notificações na mensagem de confirmação +NotificationDisableConfirmMessageUser=Ocultar a lista de destinatários (assinados como usuário) de notificações na mensagem de confirmação +NotificationDisableConfirmMessageFix=Ocultar a lista de destinatários (assinados como e-mail global) de notificações na mensagem de confirmação +SendingsReceiptModel=Modelo de recibo do envio +SendingsNumberingModules=Módulos de númeração de envios +SendingsAbility=Suporte para folhas de envios, para entregas de cliente +FreeLegalTextOnShippings=Texto livre para envios +DeliveryOrderNumberingModules=Módulo de numeração de recibos de produtos entregues +DeliveryOrderModel=Modelo de recibo de produtos entregues +DeliveriesOrderAbility=Suporta recibos de entrega de produtos +FreeLegalTextOnDeliveryReceipts=Texto livre em recibos de entregas +ActivateFCKeditor=Editor avançado ativo por: +FCKeditorForNotePublic=Usar editor WYSIWIG nos campos de "notas públicas" dos elementos +FCKeditorForNotePrivate=Usar editor WYSIWIG nos campos de "notas privadas" dos elementos +FCKeditorForCompany=Usar editor WYSIWIG nos campos de descrição dos elementos (exceto produtos/serviços) +FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing) +FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários +FCKeditorForMail=Criação/Edição WYSIWIG para todos os e-mails (exceto Ferramentas->eMailing) +FCKeditorForTicket=Criação / edição WYSIWIG para tickets +StockSetup=Configuração do módulo de estoque +MenuDeleted=Menu Deletado +NotTopTreeMenuPersonalized=Menus personalizados não conectados à uma entrada do menu superior +NewMenu=Novo Menu +MenuModule=Fonte do módulo +HideUnauthorizedMenu=Ocultar menus não autorizados também para usuários internos (apenas acinzentados caso contrário) +DetailId=Menu ID +DetailMenuHandler=Gestor de menu onde mostra novo menu +DetailMenuModule=Nome do módulo se a entrada do menu vier de um módulo +DetailType=Tipo do menu (superior o esquerdo) +DetailEnabled=Condição para mostra ou não entrar +DetailRight=Condição para mostrar menus não autorizados em cinza +DetailLangs=Nomes de arquivos lang para código de etiqueta da tradução +DetailLevel=Nível (-1:menu superior, 0:menu do cabeçario, >0 menu e sub-menu) +ModifMenu=Modificar menu +DeleteMenu=Deletar entrada do menu +ConfirmDeleteMenu=Você tem certeza que deseja excluir a entrada no menu %s? +FailedToInitializeMenu=Falha na inicialização do menu +TaxSetup=Configurações do módulo taxas, contribuição social e dividendos +OptionVatMode=Imposto IVA +OptionVATDebitOption=Base em Acréscimo +OptionVatDefaultDesc=O IVA é devido:
    - na entrega de mercadorias (com base na data da fatura)
    - sobre pagamentos por serviços +OptionVatDebitOptionDesc=O IVA é devido:
    - na entrega de mercadorias (com base na data da fatura)
    - na fatura (débito) para serviços +OptionPaymentForProductAndServicesDesc=O IVA é devido:
    - no pagamento de mercadorias
    - sobre pagamentos por serviços +SupposedToBePaymentDate=Data usada no pagamento +SupposedToBeInvoiceDate=Data usada na fatura +Buy=Compra +Sell=Venda +InvoiceDateUsed=Data usada na fatura +YourCompanyDoesNotUseVAT=Sua empresa foi definida para não usar o IVA (Home - Configuração - Empresa / Organização), portanto, não há opções de IVA para configuração. +AccountancyCodeSell=Código de contas de vendas +AccountancyCodeBuy=Código de contas de compras +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Mantenha a caixa de seleção “Criar automaticamente o pagamento” vazia por padrão ao criar um novo imposto +AgendaSetup=Configurações do módulo de eventos e agenda +PasswordTogetVCalExport=Chave para autorizar exportação do link +SecurityKey =Chave de segurança +PastDelayVCalExport=Não exportar eventos antigos de +AGENDA_DEFAULT_VIEW=Qual visualização você deseja abrir por padrão ao selecionar o menu Agenda +AGENDA_REMINDER_BROWSER=Habilitar o lembrete de evento no navegador do usuário (quando a data do lembrete é atingida, um pop-up é mostrado pelo navegador. Cada usuário pode desabilitar tais notificações na configuração de notificação do navegador). +AGENDA_REMINDER_BROWSER_SOUND=Habilitar a notificação sonora +AGENDA_REMINDER_EMAIL=Habilitar lembrete de evento por e-mail (opção de lembrete / atraso pode ser definido em cada evento) +AGENDA_REMINDER_EMAIL_NOTE=Obs: A frequência do agendamento %s deve ser suficiente para garantir que o lembrete seja enviado no momento correto. +AGENDA_SHOW_LINKED_OBJECT=Exibir objeto conectado na visualização da agenda +ClickToDialSetup=Configurações do módulo clique para discar +ClickToDialUrlDesc=URL chamada quando clica-se no ícone do telefone. Na URL, você pode usar as tags
    __PHONETO__ que será substituída pelo número do telefone da pessoa a chamar
    __PHONEFROM__ que será substituída pelo telefone da pessoa que está chamando (o seu)
    __LOGIN__ que será substituída pelo login clicktodial (definido no cartão do usuário)
    __PASS__ que será substituída pela senha clicktodial (definida no cartão do usuário). +ClickToDialUseTelLink=Use apenas o link "tel." para os números de telefone +ClickToDialUseTelLinkDesc=Use este método se seus usuários tiverem um softphone ou uma interface de software, instalados no mesmo computador que o navegador e chamados quando você clicar em um link que comece com "tel:" em seu navegador. Se você precisar de um link que comece com "sip:" ou uma solução de servidor completo (sem necessidade de instalação de software local), você deve definir isso como "Não" e preencher o próximo campo. +CashDeskBankAccountForSell=Conta default para usar nos pagamentos em dinheiro +CashDeskBankAccountForCheque=Conta padrão a ser usada para receber pagamentos por cheque +CashDeskBankAccountForCB=Conta default para usar nos pagamentos em cartão de crédito +CashDeskBankAccountForSumup=Conta bancária padrão a ser usada para receber pagamentos pelo SumUp +CashDeskIdWareHouse=Depósito para usar nas vendas +StockDecreaseForPointOfSaleDisabledbyBatch=A redução de estoque no PDV não é compatível com o gerenciamento de série / lote do módulo (atualmente ativo), portanto, a redução de estoque é desativada. +CashDeskForceDecreaseStockLabel=A redução do estoque de produtos em lote foi forçada. +CashDeskForceDecreaseStockDesc=Diminuir primeiro pelo mais antigo e vender por datas. +BookmarkSetup=Configurações do módulo de marcadores +NbOfBoomarkToShow=Número máximo de marcadores para mostrar no menu esquerdo +WebServicesSetup=Configurações do módulo de serviço de web +WebServicesDesc=Ativando esse módulo, Dolibarr se torna um servidor de serviços web e fornece vários serviços web. +WSDLCanBeDownloadedHere=Arquivos descritor WSDL que fornece serviços que podem ser baixados aqui +EndPointIs=Os clientes SOAP devem enviar suas solicitações para o destinatário Dolibarr disponível na URL +ApiSetup=Instalação de módulo de API +ApiDesc=Ao ativar este módulo, Dolibarr se tornar um servidor REST para fornecer serviços de web diversos. +ApiProductionMode=Habilitar o modo produção (isto ativará o uso de um cache para o gerenciamento dos serviços) +ApiExporerIs=Você pode explorar e testar as APIs na URL +OnlyActiveElementsAreExposed=Somente elementos de módulos habilitados são expostos +ApiKey=Chave para API +WarningAPIExplorerDisabled=O explorador de API foi desabilitado. O explorador de API não é exigido para prover serviços de API. Isto é uma ferramenta para o desenvolvedor encontrar/testar as REST APIs. Se você precisa desta ferramenta, vá para a configuração do módulo API REST para ativá-lo. +BankSetupModule=Configurações do módulo bancário +FreeLegalTextOnChequeReceipts=Texto livre em recibos de cheques +BankOrderShow=Mostrar ordem das contas bancárias para países usando "Número do banco detalhado" +BankOrderGlobalDesc=Ordem geral exibida +BankOrderES=Espanhol +BankOrderESDesc=Ordem espanhola exibida +ChequeReceiptsNumberingModule=Verificar módulo de numeração de recibos +MultiCompanySetup=Configurações do módulo multi-empresas +SuppliersSetup=Configuração do módulo de fornecedor +SuppliersCommandModel=Modelo completo do pedido +SuppliersCommandModelMuscadet=Modelo completo do pedido (antiga implementação do modelo Cornas) +SuppliersInvoiceModel=Modelo completo da fatura do fornecedor +IfSetToYesDontForgetPermission=Se definido como um valor não nulo, não se esqueça de fornecer permissões a grupos ou usuários com permissão para a segunda aprovação +GeoIPMaxmindSetup=Configurações do módulo GeoIP Maxmind +NoteOnPathLocation=Nota que seu ip para o arquivo de dados do país deve estar dentro do diretório do seu PHP que possa ser lido (Verifique a configuração do seu PHP open_basedir e o sistema de permissões). +YouCanDownloadFreeDatFileTo=Você pode baixar uma Versão demo do arquivo Maxmind GeoIP do seu país no %s. +YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão mais completa, com updates do arquivo Maxmind GeoIP do seu país no %s. +TestGeoIPResult=Teste a conversão IP -> país +ProjectsNumberingModules=Modelo de numeração de projetos +ProjectsSetup=Configurações do módulo de projetos +ProjectsModelModule=Modelo de documento de relatório de projeto +TasksNumberingModules=Modelo de numeração de tarefas +TaskModelModule=Modelo de numeração de relatório de tarefas +NewFiscalYear=Novo período de contabilidade +OpenFiscalYear=Período da contabilidade em aberto +CloseFiscalYear=Período da contabilidade fechada +DeleteFiscalYear=Excluir período da contabilidade +ConfirmDeleteFiscalYear=Você tem certeza que deseja excluir este período de contabilidade? +ShowFiscalYear=Exibir período da contabilidade +AlwaysEditable=Sempre pode ser editado +MAIN_APPLICATION_TITLE=Forçar nome visível da aplicação (aviso: definir o seu próprio nome aqui pode quebrar recurso de login preenchimento automático ao usar aplicativos móveis DoliDroid) +NbMajMin=Número mínimo de caracteres maiúsculos +NbIteConsecutive=Numero maximo dos mesmos caracteres repetidos +NoAmbiCaracAutoGeneration=Não use caracteres ambíguos ("1","l","i","|","0","O") para a geração automática +SalariesSetup=Configuração do módulo de salários +SortOrder=Ordem de classificação +TypePaymentDesc=0: tipo de pagamento do cliente, 1: tipo de pagamento do fornecedor, 2: tipo de pagamento de clientes e fornecedores +IncludePath=Incluir caminho (definido na variável %s) +ExpenseReportsSetup=Configuração do módulo de Relatórios de Despesas +TemplatePDFExpenseReports=Modelos de documentos para gerar despesa documento de relatório +ExpenseReportsRulesSetup=Configuração do módulo Relatórios de Despesas - Regras +ExpenseReportNumberingModules=Módulo de numeração dos relatórios de despesas +NoModueToManageStockIncrease=Nenhum módulo disponível foi ativado para gerenciar o aumento automático do estoque. O aumento do estoque será feito apenas de forma manual. +YouMayFindNotificationsFeaturesIntoModuleNotification=Você pode encontrar opções para notificações por e-mail ativando e configurando o módulo "Notificação" +TemplatesForNotifications=Modelos para notificações +ListOfNotificationsPerUser=Lista de notificações automáticas por usuário +ListOfNotificationsPerUserOrContact=Lista de possíveis notificações automáticas (no evento de negócios) disponíveis por usuário * ou por contato ** +ListOfFixedNotifications=Lista de notificações fixas automáticas +GoOntoContactCardToAddMore=Vá para guia "Notificações" de terceiros para adicionar ou remover notificações de contatos / endereços +BackupDumpWizard=Assistente para criar arquivo de backup do banco de dados +BackupZipWizard=Assistente para criar arquivo do diretório de documentos +SomethingMakeInstallFromWebNotPossible=A instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo: +SomethingMakeInstallFromWebNotPossible2=Por esse motivo, o processo de atualização descrito aqui é um processo manual que somente um usuário privilegiado pode executar. +InstallModuleFromWebHasBeenDisabledByFile=A instalação do módulo externo do aplicativo foi desabilitada pelo seu Administrador. Você deve pedir que ele remova o arquivo %s para permitir esta funcionalidade. +ConfFileMustContainCustom=A instalação ou construção de um módulo externo a partir do aplicativo precisa salvar os arquivos do módulo no diretório %s. Para ter esse diretório processado pelo Dolibarr, você deve configurar o seu conf/conf.php para adicionar as 2 linhas de diretivas :
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Destacar linhas de tabela quando o mouse passar sobre elas +HighlightLinesColor=Destaque a cor da linha quando o mouse passar (use 'ffffff' para não destacar) +HighlightLinesChecked=Destaque a cor da linha quando esta estiver marcada (use 'ffffff' para não destacar) +UseBorderOnTable=Mostrar bordas laterais em tabelas +BtnActionColor=Cor do botão de ação +TextBtnActionColor=Cor do texto do botão de ação +LinkColor=Cor dos linques +PressF5AfterChangingThis=Pressione CTRL+F5 no teclado ou limpe o cache do seu navegador após mudar este valor para torná-lo efetivo +NotSupportedByAllThemes=Trabalhará com os temas principais, pode não ser suportado por temas externos +TopMenuBackgroundColor=Cor de fundo para o menu de topo +TopMenuDisableImages=Ocultar imagens no menu Superior +LeftMenuBackgroundColor=Cor do fundo para o menu esquerdo +BackgroundTableTitleColor=Cor de fundo para a linha do título da Tabela +BackgroundTableTitleTextlinkColor=Cor do texto da linha de link do título da tabela +BackgroundTableLineOddColor=Cor do fundo para as linhas ímpares da tabela +BackgroundTableLineEvenColor=Cor do fundo, mesmo para linhas de tabela +MinimumNoticePeriod=O período mínimo de observação (O seu pedido de licença deve ser feito antes de esse atraso) +NbAddedAutomatically=Número de dias adicionados para contadores de usuários (automaticamente) a cada mês +EnterAnyCode=Este campo contém uma referência para identificar a linha. Insira qualquer valor de sua escolha, mas sem caracteres especiais. +Enter0or1=Digite 0 ou 1 +ColorFormat=A cor RGB está no formato HEX, ex.: FF0000 +PositionIntoComboList=Posição de linha em listas de combinação +SellTaxRate=Taxa de imposto de venda +RecuperableOnly=Sim para VAT "Não Percebido, mas Recuperável" dedicado a alguns estados na França. Mantenha o valor como "Não" em todos os outros casos. +UrlTrackingDesc=Se o fornecedor ou serviço de transporte oferecer uma página ou site para verificar o status de suas remessas, você poderá inseri-lo aqui. Você pode usar a chave {TRACKID} nos parâmetros de URL para que o sistema os substitua pelo número de rastreamento que o usuário inseriu no cartão de envio. +OpportunityPercent=Quando você criar um lead, você pode definir uma quantidade estimada de projeto / lead. De acordo com o status do lead, esse valor pode ser multiplicado por essa taxa para avaliar um valor total que todos os leads podem gerar. O valor é uma porcentagem (entre 0 e 100). +TemplateForElement=A que tipo de objeto esse modelo de e-mail está relacionado? Um modelo de e-mail apenas fica disponível quando utilizado o botão "enviar e-mail" disponível no objeto relacionado. +VisibleEverywhere=Visível em qualquer lugar +VisibleNowhere=Agora visível +FixTZ=Consertar TimeZone +FillFixTZOnlyIfRequired=Exemplo: +2 (preencher apenas se experimentou um problema) +CurrentChecksum=Checksum corrente +ExpectedSize=Tamanho esperado +CurrentSize=Tamanho atual +ForcedConstants=Valores constantes exigidos +MailToSendProposal=Propostas de cliente +MailToSendOrder=Pedido de Venda +MailToSendInvoice=Faturas de clientes +MailToSendShipment=Fretes +MailToSendSupplierOrder=Pedidos de compra +MailToSendSupplierInvoice=Faturas de fornecedores +MailToSendReception=Recebimentos +MailToUser=Usuários +ByDefaultInList=Exibir como padrão na visualização em lista +YouUseLastStableVersion=Você utiliza a última versão estável +TitleExampleForMajorRelease=Exemplo de mensagem que você pode usar para anunciar esta importante versão (sinta-se à vontade para usar isso nos seus websites) +TitleExampleForMaintenanceRelease=Exemplo de mensagem que você pode usar para anunciar esta versão de manutenção (sinta-se à vontade para usar isso nos seus websites) +ExampleOfNewsMessageForMajorRelease=O ERP e CRM Dolibarr %s está disponível. A versão %s é um lançamento principal com diversas novas funções para os usuários e desenvolvedores. Você pode baixá-la a partir da área de download do portal https://www.dolibarr.org (sub-diretório Versões estáveis). Você pode ler o ChangeLog com a lista completa de mudanças. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s está disponível. Versão %s é uma versão de manutenção, portanto, contém apenas correções de bugs. Recomendamos que todos os usuários atualizem para esta versão. Uma versão de manutenção não introduz novos recursos ou alterações no banco de dados. Você pode baixá-lo da área de download do portal https://www.dolibarr.org (subdiretório versões estáveis). Você pode ler o ChangeLog para obter uma lista completa de alterações. +MultiPriceRuleDesc=Quando a opção "Vários níveis de preços por produto / serviço" está ativada, você pode definir preços diferentes (um por nível de preço) para cada produto. Para poupar tempo, aqui você pode inserir uma regra para calcular automaticamente um preço para cada nível com base no preço do primeiro nível, então você terá que inserir apenas um preço para o primeiro nível para cada produto. Esta página foi projetada para poupar tempo, mas é útil somente se os preços de cada nível forem relativos ao primeiro nível. Você pode ignorar esta página na maioria dos casos. +ModelModulesProduct=Temas para os documentos do produto +WarehouseModelModules=Modelos para documentos de armazéns +ToGenerateCodeDefineAutomaticRuleFirst=Para gerar códigos automaticamente, você deve primeiro definir um gerente para definir automaticamente o número do código de barras. +SeeSubstitutionVars=Veja * nota para a lista das possíveis variáveis de substituição +SeeChangeLog=Ver o arquivo ChangeLog (somente em inglês) +AllPublishers=Todos os que publicam +UnknownPublishers=Anônimos que publicam +AddRemoveTabs=Adicionar ou remover abas +AddDataTables=Adicionar tabelas do objeto +AddDictionaries=Adicionar tabelas dos dicionários +AddData=Adicionar objetos ou dados dos dicionários +AddHooks=Adicionar ganchos +AddTriggers=Adicionar disparadores +AddModels=Adicionar temas de documentos ou de numeração +DetectionNotPossible=Não foi possível a detecção +ListOfAvailableAPIs=Lista de API's disponíveis +CommandIsNotInsideAllowedCommands=O comando que você está tentando executar não está na lista de comandos permitidos definidos no parâmetro $ dolibarr_main_restrict_os_commands no arquivo conf.php . +LandingPage=Página de destino +ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para módulo(s) ativado foram fornecidas apenas aos usuários de administração. Talvez seja necessário conceder permissões para outros usuários ou grupos manualmente, se necessário. +BaseCurrency=Moeda de referência da companhia (ir para a configuração da companhia para alterá-la) +MAIN_PDF_MARGIN_LEFT=Margem esquerda no PDF +MAIN_PDF_MARGIN_RIGHT=Margem direita no PDF +MAIN_PDF_MARGIN_TOP=Margem superior no PDF +MAIN_PDF_MARGIN_BOTTOM=Margem inferior no PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=Altura para o logotipo em PDF +MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Adicionar coluna para imagem nas linhas da proposta +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Largura da coluna se uma imagem for adicionada nas linhas +MAIN_PDF_NO_SENDER_FRAME=Ocultar bordas no quadro de endereço do remetente +MAIN_PDF_NO_RECIPENT_FRAME=Ocultar bordas no quadro de endereço do destinatário +MAIN_PDF_HIDE_CUSTOMER_CODE=Ocultar código do cliente +MAIN_PDF_HIDE_SENDER_NAME=Ocultar o nome do remetente/empresa no bloco de endereços +PROPOSAL_PDF_HIDE_PAYMENTTERM=Ocultar condições de pagamento +PROPOSAL_PDF_HIDE_PAYMENTMODE=Ocultar forma de pagamento +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Adicionar assinatura eletrônica ao PDF +NothingToSetup=Não há configuração específica necessária para este módulo. +SetToYesIfGroupIsComputationOfOtherGroups=Defina isto como yes se este grupo for um cálculo de outros grupos +EnterCalculationRuleIfPreviousFieldIsYes=Insira a regra de cálculo se o campo anterior foi definido como Sim.
    Por exemplo:
    CODEGRP1 + CODEGRP2 +SeveralLangugeVariatFound=Várias variantes de idioma encontradas +RemoveSpecialChars=Remover caracteres especiais +COMPANY_DIGITARIA_CLEAN_REGEX=Filtro Regex para valor limpo (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=Duplicação não permitida +HelpOnTooltipDesc=Coloque texto ou uma chave de conversão aqui para o texto ser exibido em uma dica de ferramenta quando esse campo aparecer em um formulário +YouCanDeleteFileOnServerWith=Você pode excluir este arquivo no servidor com a linha de comando:
    %s +EnableFeatureFor=Ativar recursos para %s +VATIsUsedIsOff=Nota: A opção de usar o Imposto sobre vendas ou o IVA foi definida como Desligada no menu %s - %s, portanto, o imposto sobre vendas ou IVA usado será sempre 0 para vendas. +SwapSenderAndRecipientOnPDF=Troque o remetente e a posição do endereço do destinatário em documentos PDF +FeatureSupportedOnTextFieldsOnly=Aviso, recurso compatível apenas com campos de texto e listas de combinação. Além disso, um parâmetro de URL ação=criar ou ação=editar deve ser definido OU o nome da página deve terminar com 'new.php' para acionar este recurso. +EmailCollectorDescription=Adicione um trabalho agendado e uma página de configuração para verificar regularmente as caixas de e-mail (usando o protocolo IMAP) e registre os e-mails recebidos em seu aplicativo, no lugar certo e / ou crie alguns registros automaticamente (como leads). +NewEmailCollector=Novo coletor de e-mail +EmailcollectorOperationsDesc=As operações são executadas de cima para baixo +MaxEmailCollectPerCollect=Número máximo de e-mails coletados por coleta +DateLastCollectResult=Data da última tentativa de coleta +DateLastcollectResultOk=Data da última coleta bem sucedida +LastResult=Último resultado +EmailCollectorConfirmCollectTitle=Confirmação de recebimento de e-mail +NoNewEmailToProcess=Nenhum novo e-mail (filtros correspondentes) para processar +XEmailsDoneYActionsDone=%s e-mails qualificados, %s e-mails processados com sucesso (para registro %s/ações executadas) +RecordEvent=Gravar um evento na agenda (com tipo Email enviado ou recebido) +CreateLeadAndThirdParty=Crie um lead (e um terceiro, se necessário) +CodeLastResult=Código do último resultado +NbOfEmailsInInbox=Número de e-mails no diretório de origem +LoadThirdPartyFromName=Carregar pesquisa de terceiros em %s (carregar somente) +LoadThirdPartyFromNameOrCreate=Carregar pesquisa de terceiros em %s (criar se não for encontrado) +AttachJoinedDocumentsToObject=Salve arquivos anexados em documentos de objeto se uma referência de um objeto for encontrada no tópico de email. +WithDolTrackingID=Mensagem de conversa iniciada por um primeiro e-mail enviado de Dolibarr +WithoutDolTrackingID=Mensagem de uma conversa iniciada por um primeiro e-mail NÃO enviado pelo Dolibarr +WithDolTrackingIDInMsgId=Mensagem enviada de Dolibarr +WithoutDolTrackingIDInMsgId=Mensagem NÃO enviada de Dolibarr +CreateCandidature=Criar formulário de emprego +FormatZip=CEP +MainMenuCode=Código de entrada do menu (mainmenu) +ECMAutoTree=Mostrar árvore de ECM automática +OpeningHours=Horário de abertura +OpeningHoursDesc=Digite aqui os horários de funcionamento da sua empresa. +ResourceSetup=Configuração do módulo de recursos +UseSearchToSelectResource=Usa um formulário de busca para a escolha de um recurso (em vez de uma lista suspensa) +DisabledResourceLinkUser=Desativar recurso para vincular um recurso a usuários +DisabledResourceLinkContact=Desativar recurso para vincular um recurso a contatos +DisableProspectCustomerType=Desative o tipo de terceiro "Cliente em potencial + cliente" (portanto, o terceiro deve ser "Cliente em potencial" ou "Cliente", mas não pode ser os dois) +MAIN_OPTIMIZEFORTEXTBROWSER=Simplifique a interface para pessoas cegas +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Ative esta opção se você for uma pessoa cega ou se usar o aplicativo em um navegador de texto como o Lynx ou o Links. +MAIN_OPTIMIZEFORCOLORBLIND=Alterar a cor da interface para daltônicos +MAIN_OPTIMIZEFORCOLORBLINDDesc=Habilite esta opção se você for daltônico, em alguns casos, a interface alterará a configuração de cores para aumentar o contraste. +ThisValueCanOverwrittenOnUserLevel=Este valor pode ser substituído por cada usuário a partir de sua página de usuário - na guia '%s' +DefaultCustomerType=Tipo de Terceiro padrão para o formulário de criação de"Novo cliente" +ABankAccountMustBeDefinedOnPaymentModeSetup=Nota: A conta bancária deve ser definida no módulo de cada modo de pagamento (Paypal, Stripe, ...) para que este recurso funcione. +RootCategoryForProductsToSell=Categoria raiz de produtos para vender +RootCategoryForProductsToSellDesc=Se definido, somente produtos dentro desta categoria ou filhos desta categoria estarão disponíveis no Ponto de Venda. +DebugBar=Barra de depuração +DebugBarDesc=Barra de ferramentas que vem com várias ferramentas para simplificar a depuração +DebugBarSetup=Configuração da barra de depuração +GeneralOptions=Opções gerais +LogsLinesNumber=Número de linhas para mostrar na guia logs +UseDebugBar=Use a barra de depuração +DEBUGBAR_LOGS_LINES_NUMBER=Número de últimas linhas de log para manter no console +WarningValueHigherSlowsDramaticalyOutput=Atenção, valores mais altos reduzem drasticamente a saída +ModuleActivated=O módulo %s é ativado e torna a interface mais lenta +ModuleActivatedWithTooHighLogLevel=O módulo %s está ativado com um nível de log muito alto (tente adotar um nível de log menor para melhor performance e segurança) +ModuleSyslogActivatedButLevelNotTooVerbose=O módulo %s está ativado e o nível de registro (%s) está correto (pouco detalhado) +IfYouAreOnAProductionSetThis=Se você estiver em um ambiente de produção, deve definir esta propriedade como %s. +AntivirusEnabledOnUpload=Antivírus habilitado em arquivos carregados +SomeFilesOrDirInRootAreWritable=Alguns arquivos ou diretórios não estão em modo somente leitura +EXPORTS_SHARE_MODELS=Modelos de exportação são compartilhar com todos +ExportSetup=Configuração do módulo Export +ImportSetup=Configuração do módulo Importar +InstanceUniqueID=ID exclusivo da instância +SmallerThan=Menor que +LargerThan=Maior que +IfTrackingIDFoundEventWillBeLinked=Observe que se um ID de rastreamento de um objeto for encontrado no email, ou se o email for uma resposta de um email já coletado e vinculado a um objeto, o evento criado será automaticamente vinculado ao objeto relacionado conhecido. +WithGMailYouCanCreateADedicatedPassword=Com uma conta do GMail, se você ativou a validação de 2 etapas, é recomendável criar uma segunda senha dedicada para o aplicativo, em vez de usar sua própria senha da conta em https://myaccount.google.com/. +EmailCollectorTargetDir=Pode ser um comportamento desejado mover o email para outra tag / diretório quando ele foi processado com êxito. Basta definir o nome do diretório aqui para usar este recurso (NÃO use caracteres especiais no nome). Observe que você também deve usar uma conta de logon de leitura / gravação. +EmailCollectorLoadThirdPartyHelp=Você pode usar esta ação para usar o conteúdo do e-mail para localizar e carregar um terceiro existente em seu banco de dados. O terceiro encontrado (ou criado) será usado para as seguintes ações que precisarem dele.
    Por exemplo, se você deseja criar um terceiro com um nome extraído de uma string 'Nome: nome a localizar' presente no corpo, use o e-mail do remetente como e-mail, você pode definir o campo de parâmetro assim:
    'email= HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +EndPointFor=Ponto final para %s : %s +DeleteEmailCollector=Excluir coletor de e-mail +ConfirmDeleteEmailCollector=Tem certeza de que deseja excluir este coletor de e-mail? +RecipientEmailsWillBeReplacedWithThisValue=Os e-mails dos destinatários sempre serão substituídos por este valor +AtLeastOneDefaultBankAccountMandatory=Pelo menos uma (01) conta bancária padrão deve ser definida +RESTRICT_ON_IP=Permitir acesso de API somente para certos endereços IP (caracteres-curinga não são permitidos, use espaço entre os valores). Vazio significa que qualquer cliente pode acessar. +IPListExample=127.0.0.1 192.168.0.2 [:: 1] +BaseOnSabeDavVersion=Com base na versão da biblioteca SabreDAV +NotAPublicIp=Não é um IP público +MakeAnonymousPing=Faça um ping anônimo '+1' no servidor de base Dolibarr (feito apenas uma vez após a instalação) para permitir que a base conte o número de instalações do Dolibarr. +FeatureNotAvailableWithReceptionModule=Recurso não disponível quando a recepção do módulo está ativada +EmailTemplate=Modelo para e-mail +EMailsWillHaveMessageID=Os e-mails terão a tag 'Referências' correspondente a esta sintaxe +PDF_SHOW_PROJECT=Exibir projeto no documento +ShowProjectLabel=Rótulo do Projeto +PDF_USE_ALSO_LANGUAGE_CODE=Se você deseja duplicar alguns textos em seu PDF em 2 idiomas diferentes no mesmo PDF gerado, defina aqui esse segundo idioma para que o PDF gerado contenha 2 idiomas diferentes na mesma página, o escolhido ao gerar PDF e este ( apenas alguns modelos de PDF suportam isso). Mantenha em branco para 1 idioma por PDF. +PDF_USE_A=Gerar documentos no formato PDF/A ao invés do formato PDF padrão +FafaIconSocialNetworksDesc=Digite aqui o código de um ícone FontAwesome. Se você não souber o que é FontAwesome, poderá usar o valor genérico fa-address-book. +RssNote=Nota: Cada definição de feed RSS fornece um widget que você deve ativar para disponibilizá-lo no painel +JumpToBoxes=Vá para Configuração -> Widgets +MeasuringUnitTypeDesc=Use aqui um valor como "tamanho", "superfície", "volume", "peso", "tempo" +MeasuringScaleDesc=A escala é o número de casas que você precisa mover a parte decimal para corresponder à unidade de referência padrão. Para o tipo de unidade "time", é o número de segundos. Valores entre 80 e 99 são valores reservados. +TemplateAdded=Modelo adicionado +TemplateUpdated=Modelo atualizado +TemplateDeleted=Modelo excluído +MailToSendEventPush=Email de lembrete de evento +SwitchThisForABetterSecurity=Alternar este valor para %s é recomendado para mais segurança +DictionaryProductNature=Natureza do produto +CountryIfSpecificToOneCountry=País (se específico para um determinado país) +YouMayFindSecurityAdviceHere=Você pode encontrar avisos de segurança aqui +ModuleActivatedMayExposeInformation=Esta extensão PHP pode expor dados confidenciais. Se você não precisa disso, desative-o. +ModuleActivatedDoNotUseInProduction=Um módulo projetado para o desenvolvimento foi habilitado. Não o habilite em um ambiente de produção. +CombinationsSeparator=Caractere separador para combinações de produtos +SeeLinkToOnlineDocumentation=Veja o link para a documentação online no menu superior para exemplos +SHOW_SUBPRODUCT_REF_IN_PDF=Se o recurso "%s" do módulo %s for usado, mostre detalhes dos subprodutos de um kit em PDF. +AskThisIDToYourBank=Entre em contato com seu banco para obter este ID +AdvancedModeOnly=Permissão disponível apenas no modo de permissão Avançada +ConfFileIsReadableOrWritableByAnyUsers=O arquivo conf pode ser lido ou gravado por qualquer usuário. Dê permissão apenas ao usuário e grupo do servidor da web. +MailToSendEventOrganization=Organização do Evento +MailToPartnership=Parceria +AGENDA_EVENT_DEFAULT_STATUS=Status de evento padrão ao criar um evento a partir do formulário +YouShouldDisablePHPFunctions=Você deve desabilitar funções PHP +IfCLINotRequiredYouShouldDisablePHPFunctions=A não ser que você precise executar comandos do sistema via personalizações, você deve desativar as funções do PHP +NoWritableFilesFoundIntoRootDir=Nenhum arquivo gravável ou diretório de programas comuns foi encontrado em seu diretório raiz (bom) +RecommendedValueIs=Recomendado: %s +Recommended=Versão Recomendada +NotRecommended=Não recomendado +CheckForModuleUpdate=Verificar se há atualizações para módulos externos +CheckForModuleUpdateHelp=Esta ação se conectará a editores de módulos externos para verificar se uma nova versão está disponível. +ModuleUpdateAvailable=Uma atualização está disponível +NoExternalModuleWithUpdate=Nenhuma atualização encontrada para módulos externos +SwaggerDescriptionFile=Arquivo de descrição da API Swagger (para uso com redoc, por exemplo) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Você habilitou o webservice API, que foi descontinuado. Use REST API ao invés desse serviço. +RandomlySelectedIfSeveral=Selecionado aleatoriamente se várias fotos estiverem disponíveis +DatabasePasswordObfuscated=O banco de dados de senhas está ofuscado no arquivo conf +DatabasePasswordNotObfuscated=O banco de dados de senhas NÃO está ofuscado no arquivo conf +APIsAreNotEnabled=Módulos API não estão ativados. +YouShouldSetThisToOff=Você deveria marcar esse valor como 0 ou desligado +InstallAndUpgradeLockedBy=Instalações e upgrades estão bloqueados pelo arquivo %s +OldImplementation=Implementação antiga +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Se algum módulo de pagamento estiver habilitado (Paypal, Stripe, ...), adiciona um link ao arquivo PDF para fazer o pagamento online. +DashboardDisableGlobal=Desabilite globalmente todos os polegares de objetos abertos +BoxstatsDisableGlobal=Desativar totalmente as estatísticas da caixa +DashboardDisableBlocks=Polegares de objetos abertos (para processar ou atrasados) no painel principal +DashboardDisableBlockAgenda=Desativar o polegar para agenda +DashboardDisableBlockProject=Desabilitar o polegar para projetos +DashboardDisableBlockCustomer=Desabilitar o polegar para clientes +DashboardDisableBlockSupplier=Desabilitar o polegar para fornecedores +DashboardDisableBlockContract=Desabilitar o polegar para contratos +DashboardDisableBlockTicket=Desative o polegar para ingressos +DashboardDisableBlockBank=Desabilitar o polegar para bancos +DashboardDisableBlockAdherent=Desative a visualização para associações +DashboardDisableBlockExpenseReport=Desative a visualização para relatórios de despesas +DashboardDisableBlockHoliday=Desative o polegar para folhas +EnabledCondition=Condição para ter o campo habilitado (se não habilitado, a visibilidade estará sempre desligada) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se você quiser usar um segundo imposto, você deve habilitar também o primeiro imposto sobre vendas +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se você quiser usar um terceiro imposto, você deve habilitar também o primeiro imposto sobre vendas +LanguageAndPresentation=Linguagem e apresentação +SkinAndColors=Skin e cores +PDF_USE_1A=Gerar PDF com formato PDF/A-1b +MissingTranslationForConfKey =Tradução ausente para %s +NativeModules=Módulos nativos +NoDeployedModulesFoundWithThisSearchCriteria=Nenhum módulo encontrado para os critérios de pesquisa +API_DISABLE_COMPRESSION=Desativar compactação de respostas da API +EachTerminalHasItsOwnCounter=Cada terminal usa seu próprio contador. +FillAndSaveAccountIdAndSecret=Preencha e salve o ID da conta e o segredo primeiro +PreviousHash=Hash anterior +LateWarningAfter=Aviso "atrasado" após +TemplateforBusinessCards=Modelo para um cartão de visita em tamanho diferente +InventorySetup=Configuração de inventário +ExportUseLowMemoryMode=Use um modo de pouca memória +Settings =Configurações diff --git a/htdocs/langs/pt_MZ/agenda.lang b/htdocs/langs/pt_MZ/agenda.lang new file mode 100644 index 00000000000..c820a537f0a --- /dev/null +++ b/htdocs/langs/pt_MZ/agenda.lang @@ -0,0 +1,140 @@ +# Dolibarr language file - Source file is en_US - agenda +IdAgenda=ID do evento +LocalAgenda=Calendário padrão +ActionsOwnedBy=Evento de propriedade do +Event=Ação +ListOfActions=Lista de eventos +EventReports=Relatório de eventos +ToUserOfGroup=Evento atribuído a qualquer usuário do grupo +EventOnFullDay=Evento no(s) dia(s) todo +MenuToDoMyActions=Meus eventos incompletos +MenuDoneMyActions=Meus eventos terminados +ListOfEvents=Lista de eventos (calendário padrão) +ActionsAskedBy=Eventos relatados pelo +ActionsDoneBy=Eventos feito por +ActionAssignedTo=Evento atribuído para +ViewCal=Ver Mês +ViewDay=Ver dia +ViewWeek=ver semana +ViewPerUser=Visão do usuário +ViewPerType=Por visualização de tipo +AgendaAutoActionDesc=Aqui voce pode definir eventos, os quais voce quer que o Dolibarr crie automáticamente na Agenda. Se nada estiver ticado, só as ações manuais serão incluidas nos logs e mostradas na Agenda. Acompanhamento automático de ações de negócio feitas nos objetos (Validação, alteração de situação) não serão salvas. +AgendaSetupOtherDesc=Esta página fornece opções para exportar seus eventos Dolibarr, para um calendário externo(Thunderbird, google calendar, etc...) +AgendaExtSitesDesc=Essa página permite declarar calendários externos para serem visto nos eventos da agenda Dolibarr. +ActionsEvents=Eventos no qual Dolibarr cria uma ação na agenda automáticamente. +EventRemindersByEmailNotEnabled=Lembretes por e-mail desabilitados no %s módulo setup +NewCompanyToDolibarr=Terceiro %s criados +COMPANY_MODIFYInDolibarr=Terceiro %s modificado +COMPANY_DELETEInDolibarr=Terceiro %s excluído +ContractValidatedInDolibarr=Contrato %s validado +PropalClosedSignedInDolibarr=Proposta %s assinada +PropalClosedRefusedInDolibarr=Proposta %s declinada +PropalClassifiedBilledInDolibarr=Proposta %s classificada faturada +InvoiceValidatedInDolibarr=Fatura %s validada +InvoiceValidatedInDolibarrFromPos=Fatura %s validada no POS +InvoiceBackToDraftInDolibarr=Fatura %s voltou para o status de rascunho +InvoiceDeleteDolibarr=Fatura %s deletada +InvoicePaidInDolibarr=Fatura %s marcada paga +InvoiceCanceledInDolibarr=Fatura %s cancelada +MemberValidatedInDolibarr=Membro %s validado +MemberResiliatedInDolibarr=Membro %s finalizado +MemberDeletedInDolibarr=Membro %s cancelado +MemberSubscriptionAddedInDolibarr=Adicionada inscrição %spara membro %s +MemberSubscriptionModifiedInDolibarr=Modificada %s inscrição para %smembro +MemberSubscriptionDeletedInDolibarr=Deletada inscrição %spara membro %s +ShipmentValidatedInDolibarr=Envio %s validado +ShipmentClassifyClosedInDolibarr=Expedição%s classificado(s) e faturado(s) +ShipmentUnClassifyCloseddInDolibarr=Remessa %s classificada como reaberta +ShipmentBackToDraftInDolibarr=Embarque %s voltou à situação rascunho +ShipmentDeletedInDolibarr=Envio %s cancelado +ReceptionValidatedInDolibarr=Recepção %s validada +OrderCreatedInDolibarr=Pedido %s criado +OrderValidatedInDolibarr=Pedido %s validado +OrderDeliveredInDolibarr=Ordem %s classificadas entregues +OrderCanceledInDolibarr=Pedido %s cancelado +OrderBilledInDolibarr=Ordem %s classificadas faturado +OrderApprovedInDolibarr=Pedido %s aprovado +OrderRefusedInDolibarr=Pedido %s recusado +OrderBackToDraftInDolibarr=Pedido %s voltou para o status de rascunho +ProposalSentByEMail=Proposta comercial 1%s enviada por e-mail +ContractSentByEMail=Contrato%s enviado por e-mail +OrderSentByEMail=Ped. de venda 1%s enviado por e-mail +InvoiceSentByEMail=Fat. %s do cliente enviada por e-mail +ORDER_SUPPLIER_DELETEInDolibarr=Pedido de compra %s excluído +SupplierInvoiceSentByEMail=Fatura %s do fornec. enviada por e-mail +ShippingSentByEMail=Embarque %s enviado por e-mail +ShippingValidated=Envio %s validado +ProposalDeleted=Proposta excluída +OrderDeleted=Pedido excluído +InvoiceDeleted=Fatura excluída +DraftInvoiceDeleted=Rascunho da fatura excluído +CONTACT_CREATEInDolibarr=Contato %s criado +CONTACT_MODIFYInDolibarr=Contato %s modificado +CONTACT_DELETEInDolibarr=Contato %s excluído +PRODUCT_CREATEInDolibarr=Produto %s criado +PRODUCT_MODIFYInDolibarr=Produto %s modificado +PRODUCT_DELETEInDolibarr=Produto%s exluído +HOLIDAY_CREATEInDolibarr=Solicitação de licença %s criada +HOLIDAY_MODIFYInDolibarr=Solicitação de licença %s alterada +HOLIDAY_APPROVEInDolibarr=Solicitação de licença %s aprovada +HOLIDAY_VALIDATEInDolibarr=Solicitação de licença %s validada +HOLIDAY_DELETEInDolibarr=Solicitação de licença %s excluída +EXPENSE_REPORT_CREATEInDolibarr=Relatório de despesas %s criado +EXPENSE_REPORT_VALIDATEInDolibarr=relatório de despesas %s validado +EXPENSE_REPORT_APPROVEInDolibarr=Relatório de despesas %s aprovado +EXPENSE_REPORT_DELETEInDolibarr=Realtório de despesas %s excluído +EXPENSE_REPORT_REFUSEDInDolibarr=Relatório de despesas %s rejeitado +PROJECT_MODIFYInDolibarr=Projeto %s modificado +PROJECT_DELETEInDolibarr=Projeto %s excluído +TICKET_CREATEInDolibarr=Bilhete %s criado +TICKET_MODIFYInDolibarr=Bilhete %s modificado +TICKET_ASSIGNEDInDolibarr=Ticket 1%s atribuído +TICKET_CLOSEInDolibarr=Bilhete %s fechado +TICKET_DELETEInDolibarr=Bilhete %s excluido +BOM_VALIDATEInDolibarr=BOM validado +BOM_UNVALIDATEInDolibarr=BOM não validado +BOM_CLOSEInDolibarr=BOM desativado +BOM_REOPENInDolibarr=BOM reaberto +BOM_DELETEInDolibarr=BOM excluído +MRP_MO_VALIDATEInDolibarr=MO validado +MRP_MO_UNVALIDATEInDolibarr=MO definido para o status de rascunho +MRP_MO_PRODUCEDInDolibarr=MO produzido +MRP_MO_DELETEInDolibarr=MO excluído +MRP_MO_CANCELInDolibarr=MO cancelado +PAIDInDolibarr=%s pago +AgendaModelModule=Modelos de documentos para o evento +DateActionEnd=Data de término +AgendaUrlOptions1=Você também pode adicionar os seguintes parâmetros nos filtros de saída: +AgendaUrlOptions3=logina=%s para restringir a saída para ações criada pelo usuário %s. +AgendaUrlOptionsNotAdmin=logina=!%s para restringir a saída das ações não pertencentes ao usuário%s. +AgendaUrlOptions4=logint=%s para restringir a saída às ações atribuídas ao usuário %s (proprietário e outros). +AgendaUrlOptionsProject=projeto=__PROJECT_ID__ para restringir a saída para ações ligadas ao __PROJECT_ID__. +AgendaUrlOptionsIncludeHolidays=includeholidays = 1 para incluir eventos de licenças. +AgendaShowBirthdayEvents=Aniversários de contatos +AgendaHideBirthdayEvents=Ocultar datas de nascimento dos contatos +ExportDataset_event1=Lista dos eventos da agenda +DefaultWorkingDays=Padrão dias úteis por semana (Exemplo: 1-5, 1-6) +DefaultWorkingHours=Padrão horas de trabalho em dia (Exemplo: 9-18) +AgendaExtNb=Calendário n°. %s +ExtSiteUrlAgenda=URL para acessar arquivos .ical +ExtSiteNoLabel=Sem descrição +VisibleDaysRange=Intervalo de dias visíveis +AddEvent=Adicionar evento +MyAvailability=Minha disponibilidade +DateActionBegin=Iniciar a data do evento +ConfirmCloneEvent=Tem certeza que deseja clonar o evento %s? +RepeatEvent=Repita evento +OnceOnly=Apenas uma vez +EveryWeek=Toda semana +EveryMonth=Todo mês +DateStartPlusOne=Data de início + 1 hora +SetAllEventsToTodo=Defina todos os eventos para todo +SetAllEventsToInProgress=Defina todos os eventos como em andamento +SetAllEventsToFinished=Definir todos os eventos como concluídos +ReminderTime=Período de lembrete antes do evento +TimeType=Tipo de duração +ReminderType=Tipo de retorno de chamada +AddReminder=Criar uma notificação de lembrete automática para este evento +ErrorReminderActionCommCreation=Erro ao criar a notificação de lembrete para este evento +BrowserPush=Notificação de pop-up do navegador +ActiveByDefault=Ativado por padrão diff --git a/htdocs/langs/pt_MZ/assets.lang b/htdocs/langs/pt_MZ/assets.lang new file mode 100644 index 00000000000..00729988913 --- /dev/null +++ b/htdocs/langs/pt_MZ/assets.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - assets +DeleteType=Excluir +DeleteAnAssetType=Excluir um tipo de recurso +ConfirmDeleteAssetType=Tem certeza de que deseja excluir este tipo de recurso? +AssetsTypeId=Id Tipo de ativo +AssetsTypeLabel=Rótulo do tipo de ativo diff --git a/htdocs/langs/pt_MZ/banks.lang b/htdocs/langs/pt_MZ/banks.lang new file mode 100644 index 00000000000..a73d2eb2682 --- /dev/null +++ b/htdocs/langs/pt_MZ/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +BankAccounts=Contas bancárias +StatusAccountClosed=Fechado +WithdrawalPayment=Pedido com pagamento por débito +SocialContributionPayment=Pagamento de imposto social / fiscal diff --git a/htdocs/langs/pt_MZ/bills.lang b/htdocs/langs/pt_MZ/bills.lang new file mode 100644 index 00000000000..8750bdbd6d9 --- /dev/null +++ b/htdocs/langs/pt_MZ/bills.lang @@ -0,0 +1,404 @@ +# Dolibarr language file - Source file is en_US - bills +BillsCustomers=Faturas de clientes +BillsCustomer=Fatura de cliente +BillsSuppliers=Faturas de fornecedores +BillsCustomersUnpaid=Faturas de clientes não pagos +BillsCustomersUnpaidForCompany=Faturas de clientes não pagas para %s +BillsLate=Pagamentos atrasados +BillsStatistics=Estatísticas de faturas de clientes +DisabledBecauseDispatchedInBookkeeping=Desativado porque a nota fiscal foi despachada na contabilidade +DisabledBecauseNotLastInvoice=Desativado porque a fatura não é apagável. Algumas faturas foram gravadas após esta e ele criará buracos no balcão. +DisabledBecauseNotErasable=Desativada já que não pode ser apagada +InvoiceStandard=Fatura padrão +InvoiceStandardAsk=Fatura padrão +InvoiceStandardDesc=Esse tipo de fatura é a fatura comum. +InvoiceDepositDesc=Este tipo de fatura é feita quando um pagamento inicial foi recebido. +InvoiceProForma=Fatura pro-forma +InvoiceProFormaAsk=Fatura pro-forma +InvoiceProFormaDesc=Fatura pro-forma é uma imagem verdadeira de fatura porem não tem valor contábil. +InvoiceReplacement=Fatura de substituição +InvoiceReplacementAsk=Fatura de substituição por fatura +InvoiceReplacementDesc=Fatura de Substituição é usada para substituir completamente uma fatura sem pagamento já recebido.

    Nota: Somente faturas sem pagamento podem ser substituídas. Se a fatura substituída ainda não estiver fechada, ela será automaticamente fechada como 'Abandonada'. +InvoiceAvoir=Nota de crédito +InvoiceAvoirAsk=Nota de crédito para fatura correta +InvoiceAvoirDesc=A nota de crédito é uma fatura negativa usada para corrigir o fato de que uma fatura mostra um valor que difere do valor efetivamente pago (por exemplo, o cliente pagou muito por engano ou não pagará o valor total desde que alguns produtos foram devolvidos). +invoiceAvoirWithLines=Criar Nota de Crédito conforme a fatura original +invoiceAvoirWithPaymentRestAmount=Cirar nota de credito com restante não pago da fatura original +invoiceAvoirLineWithPaymentRestAmount=Nota de credito para valor restante não pago +ReplaceInvoice=Substituir fatura %s +ReplacementInvoice=Fatura de substituição +ReplacedByInvoice=Substituido por fatura %s +ReplacementByInvoice=Substituido por fatura +CorrectInvoice=Fatura correta %s +CorrectionInvoice=Correção de fatura +UsedByInvoice=Usado para pagar fatura %s +NotConsumed=Não consumida +NoReplacableInvoice=Nenhuma fatura substituível +NoInvoiceToCorrect=Nenhuma fatura para corrigir +InvoiceHasAvoir=Foi fonte de uma ou várias notas de crédito +CardBill=Ficha da fatura +InvoiceCustomer=Fatura de cliente +CustomerInvoice=Fatura de cliente +CustomersInvoices=Faturas de Clientes +SupplierInvoice=Fatura do fornecedores +SuppliersInvoices=Faturas de fornecedores +SupplierInvoiceLines=Linhas de Faturas de Fornecedores +SupplierBill=Fatura do fornecedores +SupplierBills=Faturas de fornecedores +PaymentBack=Reembolso +CustomerInvoicePaymentBack=Reembolso +PaidBack=Reembolso pago +DeletePayment=Deletar pagamento +ConfirmDeletePayment=Você tem certeza que deseja excluir este pagamento? +ConfirmConvertToReduc2=O valor será salvo junto a todos os descontos e poderá ser usado como desconto em uma fatura atual ou futura deste cliente. +ConfirmConvertToReducSupplier=Deseja converter este %s em um crédito disponível? +ConfirmConvertToReducSupplier2=O valor será salvo junto a todos os descontos e poderá ser usado como desconto em uma fatura atual ou futura deste fornecedor. +SupplierPayments=Pagamentos do fornecedor +ReceivedCustomersPayments=Pagamentos recebidos de cliente +PayedSuppliersPayments=Pagamentos pagos a fornecedores +ReceivedCustomersPaymentsToValid=Pagamentos recebidos de cliente para validar +PaymentsReportsForYear=Relatórios de pagamentos por %s +PaymentsAlreadyDone=Pagamentos já feitos +PaymentsBackAlreadyDone=Reembolsos já realizados +PaymentRule=Regra de pagamento +PaymentMode=Forma de pagamento +PaymentModes=Formas de pagamento +DefaultPaymentMode=Forma de pagamento padrão +DefaultBankAccount=Conta Bancária padrão +IdPaymentMode=Forma de pagamento (ID) +CodePaymentMode=Forma de pagamento (código) +LabelPaymentMode=Forma de pagamento (etiqueta) +PaymentModeShort=Forma de pagamento +PaymentTerm=Termo de pagamento +PaymentAmount=Valor a ser pago +PaymentHigherThanReminderToPay=Pagamento superior ao valor a ser pago +ClassifyPaid=Classificar 'pago' +ClassifyUnPaid=Classificar 'Não pago' +ClassifyPaidPartially=Classificar 'parcialmente pago' +ClassifyCanceled=Classificar 'Abandonado' +ClassifyClosed=Classificar 'fechado' +ClassifyUnBilled=Classificar "à faturar" +AddBill=Adicionar fatura ou nota de crédito +AddToDraftInvoices=Adicionar para rascunho de fatura +DeleteBill=Deletar fatura +SearchACustomerInvoice=Procurar fatura de cliente +SearchASupplierInvoice=Procurar uma fatura de fornecedor +SendRemindByMail=Enviar o restante por e-mail +DoPayment=Pagamentos +DoPaymentBack=Insira o reembolso +EnterPaymentReceivedFromCustomer=Entrar pagamento recebido de cliente +EnterPaymentDueToCustomer=Realizar pagamento devido para cliente +DisabledBecauseRemainderToPayIsZero=Desabilitado porque o restante a pagar é zero +BillStatus=Status de fatura +StatusOfGeneratedInvoices=Situação das faturas geradas +BillStatusDraft=Rascunho (precisa ser validada) +BillStatusPaid=Pago +BillStatusConverted=Pago (Pronto para consumo na fatura final) +BillStatusCanceled=Abandonado +BillStatusValidated=Validado (precisa ser pago) +BillStatusStarted=Iniciado +BillStatusNotPaid=Não pago +BillStatusClosedUnpaid=Fechado (não pago) +BillStatusClosedPaidPartially=Pago (parcialmente) +BillShortStatusDraft=Minuta +BillShortStatusPaid=Pago +BillShortStatusCanceled=Abandonado +BillShortStatusValidated=Validado +BillShortStatusStarted=Iniciado +BillShortStatusNotPaid=Não pago +BillShortStatusClosedUnpaid=Fechado +BillShortStatusClosedPaidPartially=Pago (parcialmente) +PaymentStatusToValidShort=Para validar +ErrorNoPaiementModeConfigured=Nenhum tipo de pagamento padrão definido. Vá para a configuração do módulo Invoice para corrigir isso. +ErrorCreateBankAccount=Crie uma conta bancária e acesse o painel Configuração do módulo Fatura para definir os tipos de pagamento +ErrorBillNotFound=Fatura %s não existe +ErrorDiscountAlreadyUsed=Erro, desconto já utilizado +ErrorInvoiceAvoirMustBeNegative=Erro, fatura atual precisa ter um valor negativo +ErrorInvoiceOfThisTypeMustBePositive=Erro. Este tipo de fatura deve ter um valor excluindo imposto positivo (ou nulo) +ErrorCantCancelIfReplacementInvoiceNotValidated=Erro, não se pode cancelar uma fatura que foi substituida por outra fatura que ainda esta como rascunho +BillFrom=De +BillTo=Para +ActionsOnBill=Ações na fatura +RecurringInvoiceTemplate=Modelo / nota fiscal recorrente +NoQualifiedRecurringInvoiceTemplateFound=Nenhum tema de fatura recorrente qualificado para a geração +FoundXQualifiedRecurringInvoiceTemplate=Encontrado(s) %s tema(s) de fatura(s) recorrente(s) qualificado(s) para a geração. +NotARecurringInvoiceTemplate=Não é um tema de fatura recorrente +LastBills=Últimas notas %s +LatestTemplateInvoices=Últimas faturas do modelo %s +LatestCustomerTemplateInvoices=Últimas faturas do modelo de cliente %s +LatestSupplierTemplateInvoices=Últimas faturas de modelo de fornecedor %s +LastCustomersBills=Últimas notas de clientes %s +LastSuppliersBills=Últimas faturas de fornecedor %s +AllBills=Todas faturas +AllCustomerTemplateInvoices=Todas as faturas do modelo +DraftBills=Rascunho de faturas +CustomersDraftInvoices=Faturas de rascunho do cliente +SuppliersDraftInvoices=Faturas de fornecedores - Rascunho +Unpaid=Não pago +ErrorNoPaymentDefined=Erro. Nenhum pagamento definido +ConfirmDeleteBill=Você tem certeza que deseja excluir esta fatura? +ConfirmValidateBill=Você tem certeza que deseja validar esta fatura com referência %s? +ConfirmUnvalidateBill=Você tem certeza que deseja mudar a situação da fatura %s para rascunho? +ConfirmClassifyPaidBill=Você tem certeza que deseja mudar a situação da fatura %s para paga? +ConfirmCancelBill=Você tem certeza que deseja cancelar a fatura %s? +ConfirmCancelBillQuestion=Por quê você deseja classificar esta fatura 'abandonada'? +ConfirmClassifyPaidPartially=Você tem certeza que deseja mudar a situação da fatura %s para paga? +ConfirmClassifyPaidPartiallyQuestion=Esta fatura não foi paga completamente. Qual é o motivo para fechar esta fatura? +ConfirmClassifyPaidPartiallyReasonDiscount=Restante não remunerado (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu aceitei perder o IVA neste desconto. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu recuperei o IVA neste desconto sem uma nota de crédito. +ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente mau +ConfirmClassifyPaidPartiallyReasonBankCharge=Dedução por banco (taxas bancárias intermediárias) +ConfirmClassifyPaidPartiallyReasonProductReturned=Produtos parcialmente devolvido +ConfirmClassifyPaidPartiallyReasonOther=Quantia abandonada por outro motivo +ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use essa escolha se as outras não se adequar +ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Essa escolha é usado quando o pagamento não é completo porque alguns produtos foram devolvidos +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=O valor não pago sãotaxas bancárias intermediárias, deduzidas diretamente do valor correto pago pelo Cliente. +ConfirmClassifyAbandonReasonOther=Outros +ConfirmClassifyAbandonReasonOtherDesc=Essa escolha será usado em todos os outros casos. Por exemplo porque você planeja criar fatura de substituição. +ConfirmCustomerPayment=Você confirma o recebimento de pagamento para %s %s? +ConfirmSupplierPayment=Você confirma o recebimento de pagamento para %s %s? +ConfirmValidatePayment=Você tem certeza que deseja validar este pagamento? Nenhuma alteração poderá ser feita após a validação do pagamento. +ValidateBill=Validar faturao +UnvalidateBill=Desvalidar fatura +NumberOfBills=Nº. de faturas +NumberOfBillsByMonth=Nº. de faturas por mês +AmountOfBills=Quantidade de faturas +AmountOfBillsByMonthHT=Quantidade de faturas por mês (líquido de taxa) +UseSituationInvoices=Permitir fatura de situação +UseSituationInvoicesCreditNote=Permitir nota de crédito da fatura da situação +Retainedwarranty=Garantia retida +AllowedInvoiceForRetainedWarranty=Garantia estendida utilizável nos seguintes tipos de faturas +RetainedwarrantyDefaultPercent=Porcentagem padrão de garantia retida +RetainedwarrantyOnlyForSituation=Disponibilizar "garantia retida" apenas para faturas de situação +RetainedwarrantyOnlyForSituationFinal=Nas faturas de situação, a dedução global de "garantia retida" é aplicada apenas na situação final +ToPayOn=Para pagar em %s +toPayOn=para pagar em %s +RetainedWarranty=Garantia Retida +PaymentConditionsShortRetainedWarranty=Condições de pagamento da garantia estendida +DefaultPaymentConditionsRetainedWarranty=Termos de pagamento padrão da garantia estendida +setPaymentConditionsShortRetainedWarranty=Definir condições de pagamento da garantia estendida +setretainedwarranty=Definir garantia estendida +setretainedwarrantyDateLimit=Definir limite de data de garantia estendida +RetainedWarrantyDateLimit=Limite de data de garantia estendida +RetainedWarrantyNeed100Percent=O progresso da fatura precisa estar em 100%% para que possa ser exibida em PDF +AlreadyPaid=Já está pago +AlreadyPaidBack=Já está estornado +Abandoned=Abandonado +RemainderToPay=Restante para pagar +RemainderToTake=Restante para pegar +RemainderToPayBack=Valor restante a reembolsar +Rest=Pedente +AmountExpected=Quantidade reivindicada +ExcessReceived=Excesso recebido +EscompteOffered=Desconto oferecido (pagamento antes do prazo) +SendBillRef=Enviar fatura %s +SendReminderBillRef=Enviar fatura %s (restante) +NoDraftBills=Nenhum rascunho de faturas +NoOtherDraftBills=Nenhum outro rascunho de faturas +NoDraftInvoices=Nenhum rascunho de faturas +RefBill=Ref. de fatura +ToBill=Faturar +SendBillByMail=Enviar a fatura por e-mail +SendReminderBillByMail=Enviar o restante por e-mail +RelatedRecurringCustomerInvoices=Faturas recorrentes relacionadas ao cliente +MenuToValid=Validar +ClassifyBill=Classificar fatura +CustomerBillsUnpaid=Faturas de clientes não pagos +SetConditions=Definir condições de pagamento +SetMode=Definir tipo de pagamento +SetRevenuStamp=Definir o selo da receita +RepeatableInvoice=Fatura pré-definida +RepeatableInvoices=Faturas pré-definidas +Repeatable=Pré-definida +Repeatables=Pré-definidas +ChangeIntoRepeatableInvoice=Converter em pré-definida +CreateRepeatableInvoice=Criar fatura pré-definida +CreateFromRepeatableInvoice=Criar de fatura pré-definida +CustomersInvoicesAndInvoiceLines=Faturas do cliente e detalhes da fatura +CustomersInvoicesAndPayments=Faturas de cliente e pagamentos +ExportDataset_invoice_1=Faturas do cliente e detalhes da fatura +ExportDataset_invoice_2=Faturas de clientes e pagamentos +ProformaBill=Conta pro-forma: +Reductions=Reduções +AddDiscount=Criar desconto +EditGlobalDiscounts=Editar desconto fixo +ShowDiscount=Mostrar desconto +ShowReduc=Mostrar desconto +ShowSourceInvoice=Mostrar fatura de origem +GlobalDiscount=Desconto global +CreditNote=Nota de crédito +CreditNotes=Notas de crédito +Deposit=Depósito +Deposits=Depósitos +DiscountFromCreditNote=Desconto de nota de crédito %s +DiscountFromDeposit=Pagamentos a partir de depósito na fatura %s +AbsoluteDiscountUse=Esse tipo de crédito pode ser usado na fatura antes da validação +DiscountOfferedBy=Concedido por +BillAddress=Endereço de cobrança +IdSocialContribution=ID contribuição social +PaymentId=ID pagamento +PaymentRef=Ref. do pagamento +InvoiceId=ID fatura +InvoiceRef=Ref. fatura +InvoiceDateCreation=Data da criação da fatura +InvoiceStatus=Status da fatura +InvoiceNote=Nota de fatura +InvoicePaidCompletely=Pago completamente +InvoicePaidCompletelyHelp=Fatura que é paga completamente. Isso exclui faturas pagas parcialmente. Para obter uma lista de todas as faturas 'Fechadas' ou 'não Fechadas', prefira usar um filtro no status da fatura. +OrderBilled=Encomenda faturada +DonationPaid=Doação paga +RemoveDiscount=Remover desconto +WatermarkOnDraftBill=Marca d'água nos rascunhos de faturas (nada se vazio) +ConfirmCloneInvoice=Você tem certeza que deseja clonar esta fatura %s? +DescTaxAndDividendsArea=Esta área apresenta um resumo de todos os pagamentos feitos para despesas especiais. Apenas registros com pagamentos durante o ano fixo são incluídos aqui. +NbOfPayments=Nº. de pagamentos +SplitDiscount=Dividir desconto em dois +ConfirmSplitDiscount=Tem certeza de que deseja dividir este desconto de %s %s em dois descontos menores? +ConfirmRemoveDiscount=Você tem certeza que deseja remover este desconto? +RelatedSupplierInvoices=Faturas de fornecedores relacionadas +LatestRelatedBill=Últimas fatura correspondente +MergingPDFTool=Mesclando ferramenta PDF +AmountPaymentDistributedOnInvoice=Valor do pagamento distribuído na fatura +ListOfPreviousSituationInvoices=Lista de faturas na situação anterior +ListOfNextSituationInvoices=Lista das faturas na próxima situação +FrequencyPer_d=A cada %s dias +FrequencyPer_m=A cada %s meses +FrequencyPer_y=A cada %s anos +toolTipFrequency=Exemplos:
    fixar 7, Day : dê uma nova fatura a cada 7 dias
    Set 3, Month : dê uma nova fatura a cada 3 meses +NextDateToExecutionShort=Data da próxima geração. +DateLastGenerationShort=Data da última geração. +MaxPeriodNumber=Máx. número de geração de fatura +InvoiceAutoValidate=Validar as faturas automaticamente +GeneratedFromRecurringInvoice=Gerar a partir do tem de fatura recorrente %s +DateIsNotEnough=Data ainda não alcançada +InvoiceGeneratedFromTemplate=Fatura %s gerada a partir do tema de fatura recorrente %s +GeneratedFromTemplate=Gerado a partir da fatura do modelo %s +WarningInvoiceDateInFuture=Atenção, a data da fatura é superior à data atual +GroupPaymentsByModOnReports=Agrupar pagamentos por modo nos relatórios +PaymentConditionShortRECEP=Após o recebimento +PaymentConditionRECEP=Após o recebimento +PaymentConditionShort30DENDMONTH=30 dias do fim do mês +PaymentCondition30DENDMONTH=Dentro de 30 dias após o fim do mês +PaymentConditionShort60DENDMONTH=60 dias do fim do mês +PaymentCondition60DENDMONTH=Dentro de 60 dias após o fim do mês +PaymentConditionShortPT_DELIVERY=Na entrega +PaymentConditionPT_ORDER=No pedido +PaymentConditionPT_5050=50%% adiantado e 50%% na entrega +FixAmount=Valor fixo - 1 linha com o rótulo '%s' +VarAmount=Variavel valor (%% total) +PaymentTypePRE=Pedido com pagamento em Débito direto +PaymentTypeShortPRE=Pedido com pagamento por débito +PaymentTypeLIQ=Dinheiro +PaymentTypeShortLIQ=Dinheiro +PaymentTypeCB=Cartão de credito +PaymentTypeShortCB=Cartão de credito +PaymentTypeTIP=TIP (Documentos contra Pagamento) +PaymentTypeShortTIP=Pagamento TIP +PaymentTypeTRA=Cheque administrativo +PaymentTypeShortTRA=Minuta +PaymentTypeDC=Cartão de débito / crédito +BankDetails=Detalhes bancário +BankCode=Código bancário +BankAccountNumber=Número da conta +BankAccountNumberKey=Soma de verificação +Residence=Endereço +IBAN=Agencia +CustomerIBAN=IBAN do cliente +SupplierIBAN=IBAN do fornecedor +BICNumber=Código BIC/SWIFT +ExtraInfos=Informações extras +RegulatedOn=Regulamentado em +ChequeNumber=Nº do Cheque +ChequeOrTransferNumber=Nº do cheque/transferência +ChequeBordereau=Verificar agendamento +NetToBePaid=Líquido a ser pago +PhoneNumber=Telefone +FullPhoneNumber=Telefone +PrettyLittleSentence=Aceito o valor do pagamento devido pelo cheque emitido em meu nome como membro de uma associação de contabilidade aprovado pelo administração fiscal. +IntracommunityVATNumber=ID do IVA intracomunitário +PaymentByChequeOrderedTo=Cheque pagamentos (incluindo impostos) são pagas para %s, enviar para +PaymentByChequeOrderedToShort=Cheque pagamentos (incl. Imposto) são pagas para +SendTo=Enviar para +VATIsNotUsedForInvoice=* Não aplicável IVA art-293B de CGI +LawApplicationPart1=Pela aplicação da lei 80.335 de 12/05/80 +LawApplicationPart2=os bens permanece propriedade de +LawApplicationPart4=preço dele. +LimitedLiabilityCompanyCapital=SARL com capital de +UseDiscount=Usar desconto +UseCredit=Usar crédito +UseCreditNoteInInvoicePayment=Reduzir o valor a ser pago com esse crédito +MenuChequeDeposits=Verificar depósitos +MenuCheques=Cheques +MenuChequesReceipts=Verificar recibos +NewChequeDeposit=Novo depósito +ChequesReceipts=Verificar recibos +ChequesArea=Verifique a área de depósitos +ChequeDeposits=Verificar depósitos +DepositId=Depósito Id +CreditNoteConvertedIntoDiscount=Este %s foi convertido em %s +UsBillingContactAsIncoiveRecipientIfExist=Usar contato/endereço com o tipo 'contato de cobrança' em vez de endereço de terceiros como destinatário para faturas +ShowUnpaidAll=Mostras todas as faturas não pagas +ShowUnpaidLateOnly=Mostrar todas as faturas atrasadas não pagas +PaymentInvoiceRef=Pagamento de fatura %s +ValidateInvoice=validar fatura +Cash=DinheiroCash +DisabledBecausePayments=Não é possivel devido alguns pagamentos +CantRemovePaymentWithOneInvoicePaid=Não posso remover pagamento ao menos que o última fatura sejá classificada como pago +ExpectedToPay=Esperando pagamento +ClosePaidInvoicesAutomatically=Classifique automaticamente todas as faturas padrão, adiantadas ou de reposição como "Pagas" quando o pagamento for feito inteiramente. +ClosePaidCreditNotesAutomatically=Classifique automaticamente todas as notas de crédito como "Pagas" quando o reembolso for totalmente realizado. +ClosePaidContributionsAutomatically=Classifique automaticamente todas as contribuições sociais ou fiscais como "Pagas" quando o pagamento for feito inteiramente. +AllCompletelyPayedInvoiceWillBeClosed=Todas as faturas sem saldo a pagar serão fechadas automaticamente com o status "Pago". +ToMakePaymentBack=Pagar de volta +NoteListOfYourUnpaidInvoices=Nota: Essa lista contém faturas de terceiros que você está a ligado como representante de vendas. +RevenueStamp=Carimbo de imposto +YouMustCreateInvoiceFromThird=Esta opção só está disponível ao criar uma fatura na guia "Cliente" de terceiros +YouMustCreateInvoiceFromSupplierThird=Essa opção só está disponível ao criar uma fatura na guia "Fornecedor" de terceiros +YouMustCreateStandardInvoiceFirstDesc=Você deve criar antes uma fatura padrão e convertê-la em um "tema" para criar um novo tema de fatura +PDFCrabeDescription=Modelo de fatura PDF Crabe. Um modelo de fatura completo (implementação antiga do modelo Sponge) +PDFCrevetteDescription=Tema Crevette para fatura em PDF. Um tema completo para a situação das faturas +TerreNumRefModelError=Uma conta começa com %syymm já existe e não é compatível com esse modelo de sequência. Remova ou renomeie ele para ativar esse módulo. +EarlyClosingReason=Motivo de fechamento antecipado +EarlyClosingComment=Nota de fechamento antecipado +TypeContact_facture_internal_SALESREPFOLL=Representativo seguindo de fatura de cliente +TypeContact_facture_external_BILLING=Contato de fatura de cliente +TypeContact_facture_external_SHIPPING=Contato de envio de cliente +TypeContact_facture_external_SERVICE=Contato de serviço de cliente +TypeContact_invoice_supplier_internal_SALESREPFOLL=Fatura de fornecedor subsequente representativa +TypeContact_invoice_supplier_external_BILLING=Contato da fatura do fornecedor +TypeContact_invoice_supplier_external_SHIPPING=Contato de remessa do fornecedor +InvoiceFirstSituationAsk=Primeira situação da fatura +InvoiceFirstSituationDesc=A situação faturas são amarradas às situações relacionadas com uma progressão, por exemplo, a progressão de uma construção. Cada situação é amarrada a uma fatura. +InvoiceSituation=Situação da fatura +PDFInvoiceSituation=Situação da fatura +InvoiceSituationAsk=Fatura acompanhando a situação +InvoiceSituationDesc=Criar uma nova situação na sequência de um um já existente +SituationAmount=Situação montante da fatura (líquida) +SituationDeduction=Situação subtração +CreateNextSituationInvoice=Criar proxima situação +NotLastInCycle=Esta fatura não é a última do ciclo e não deve ser modificada. +DisabledBecauseNotLastInCycle=A próxima situação já existe. +CantBeLessThanMinPercent=O progresso não pode ser menor do que o seu valor na situação anterior. +NoSituations=Não há situações em aberto +InvoiceSituationLast=Fatura final e geral +PDFCrevetteSituationNumber=Situação Nº %s +PDFCrevetteSituationInvoiceLineDecompte=Situação da fatura - CONTAR +PDFCrevetteSituationInvoiceTitle=Situação da fatura +PDFCrevetteSituationInvoiceLine=Situação N°. %s: Inv. N°. %s em %s +invoiceLineProgressError=A linha de progresso da fatura não pode ser maior ou igual à próxima linha da fatura +updatePriceNextInvoiceErrorUpdateline=Erro: atualize o preço na linha da fatura: %s +ToCreateARecurringInvoice=Para criar uma fatura recorrente para este contrato, crie primeiro este rascunho de fatura, converta-a em um tema de fatura e defina então a frequência de geração das próximas faturas. +ToCreateARecurringInvoiceGene=Para gerar as futuras faturas regular e manualmente, siga para o menu %s - %s - %s. +ToCreateARecurringInvoiceGeneAuto=Se você precisar que essas faturas sejam geradas automaticamente, peça ao seu administrador para ativar e configurar o módulo %s. Note que ambos os métodos (manual e automático) podem ser usados juntos sem risco de duplicação. +DeleteRepeatableInvoice=Excluir tema de fatura +ConfirmDeleteRepeatableInvoice=Você tem certeza que deseja excluir o tema de fatura? +BillCreated=%s fatura (s) gerada (s) +StatusOfGeneratedDocuments=Status da geração de documentos +DoNotGenerateDoc=Não gere arquivo de documento +BILL_DELETEInDolibarr=Fatura excluída +BILL_SUPPLIER_DELETEInDolibarr=Fatura de fornecedor excluída +UnitPriceXQtyLessDiscount=Preço unitário x Qtd. - Desconto +CustomersInvoicesArea=Área de cobrança do cliente +SupplierInvoicesArea=Área de cobrança do cliente +SituationTotalRayToRest=Restante a pagar sem imposto diff --git a/htdocs/langs/pt_MZ/blockedlog.lang b/htdocs/langs/pt_MZ/blockedlog.lang new file mode 100644 index 00000000000..68b870cf136 --- /dev/null +++ b/htdocs/langs/pt_MZ/blockedlog.lang @@ -0,0 +1,29 @@ +# Dolibarr language file - Source file is en_US - blockedlog +BlockedLog=Logs nao modificaveis +BlockedLogDesc=Este módulo rastreia alguns eventos em um log inalterável (que você não pode modificar uma vez gravado) em uma cadeia de blocos, em tempo real. Este módulo oferece compatibilidade com os requisitos das leis de alguns países (como a França com a lei Finance 2016 - Norme NF525). +Fingerprints=Eventos e impressoes digitais arquivados +FingerprintsDesc=Esta é a ferramenta para procurar ou extrair os logs inalteráveis. Logs inalteráveis são gerados e arquivados localmente em uma tabela dedicada, em tempo real, quando você registra um evento de negócios. Você pode usar essa ferramenta para exportar esse arquivo e salvá-lo em um suporte externo (alguns países, como a França, pedem que você faça isso todos os anos). Note que, não há nenhum recurso para limpar este log e todas as mudanças tentadas ser feitas diretamente neste log (por um hacker, por exemplo) serão reportadas com uma impressão digital não válida. Se você realmente precisar limpar essa tabela porque usou seu aplicativo para fins de demonstração / teste e deseja limpar seus dados para iniciar sua produção, peça ao seu revendedor ou integrador para redefinir seu banco de dados (todos os seus dados serão removidos). +CompanyInitialKey=Chave inicial da empresa (hash do bloco genesis) +BrowseBlockedLog=Logs nao modificaveis +ShowAllFingerPrintsMightBeTooLong=Mostrar todos os Logs Arquivados (pode ser demorado) +ShowAllFingerPrintsErrorsMightBeTooLong=Mostrar todos os arquivos de log inválidos (pode demorar) +DownloadBlockChain=Baixar impressoes digitais +KoCheckFingerprintValidity=A entrada de registro arquivada não é válida. Isso significa que alguém (um hacker?) Modificou alguns dados deste registro depois que ele foi gravado, ou apagou o registro arquivado anterior (verifique se a linha com o anterior # existe) ou modificou a soma de verificação do registro anterior. +OkCheckFingerprintValidity=O registro de log arquivado é válido. Os dados nesta linha não foram modificados e a entrada segue a anterior. +OkCheckFingerprintValidityButChainIsKo=O log arquivado parece válido em comparação com o anterior, mas a cadeia foi previamente corrompida. +AddedByAuthority=Salvo na autoridade remota +ShowDetails=Mostrar detalhes salvos +logPAYMENT_VARIOUS_CREATE=Pagamento (não atribuído a uma fatura) criado +logPAYMENT_VARIOUS_MODIFY=Pagamento (não atribuído a uma fatura) modificado +logPAYMENT_VARIOUS_DELETE=Pagamento (não atribuído a uma fatura) exclusão lógica +logBILL_VALIDATE=Fatura de cliente confirmada +logBILL_SENTBYMAIL=Fatura do cliente enviada por email +logCASHCONTROL_VALIDATE=Registro de fechamento de caixa +Fingerprint=Impressao digial +logDOC_PREVIEW=Pré -visualização de um documento validado para imprimir ou baixar +DataOfArchivedEvent=Dados completos do evento arquivado +ImpossibleToReloadObject=Objeto original (tipo %s, id %s) não vinculado (consulte a coluna 'Dados completos' para obter dados salvos inalterados) +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=O módulo Logs Inalteráveis ​​foi ativado por causa da legislação do seu país. A desativação deste módulo pode invalidar quaisquer transações futuras com relação à lei e ao uso de software legal, já que elas não podem ser validadas por uma auditoria fiscal. +BlockedLogDisableNotAllowedForCountry=Lista de países onde o uso deste módulo é obrigatório (apenas para evitar desabilitar o módulo por erro, se o seu país estiver nesta lista, desabilitar o módulo não é possível sem primeiro editar esta lista. Note também que habilitar / desabilitar este módulo irá manter uma faixa no log inalterável). +OnlyNonValid=Nao valido +RestrictYearToExport=Limitar mes / ano a se exportar diff --git a/htdocs/langs/pt_MZ/bookmarks.lang b/htdocs/langs/pt_MZ/bookmarks.lang new file mode 100644 index 00000000000..89de31ef04f --- /dev/null +++ b/htdocs/langs/pt_MZ/bookmarks.lang @@ -0,0 +1,11 @@ +# Dolibarr language file - Source file is en_US - bookmarks +AddThisPageToBookmarks=Adicione a página atual aos marcadores +ListOfBookmarks=Lista de marcadores +OpenANewWindow=Abra uma nova aba +ReplaceWindow=Substituir guia atual +BookmarkTargetReplaceWindowShort=Guia atual +BehaviourOnClick=Comportamento quando a URL de marcador é selecionada +SetHereATitleForLink=Definir um nome para o marcador +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escolha se a página vinculada deve abrir na guia atual ou em uma nova guia +BookmarksManagement=Gestor de marcadores +BookmarksMenuShortCut=Ctrl + Shift + M diff --git a/htdocs/langs/pt_MZ/boxes.lang b/htdocs/langs/pt_MZ/boxes.lang new file mode 100644 index 00000000000..b2b9318dd4d --- /dev/null +++ b/htdocs/langs/pt_MZ/boxes.lang @@ -0,0 +1,98 @@ +# Dolibarr language file - Source file is en_US - boxes +BoxDolibarrStateBoard=Estatísticas sobre os principais objetos de negócios no banco de dados +BoxLoginInformation=Informações de Login +BoxLastRssInfos=Informação de RSS +BoxLastProducts=Últimos %s Produtos/Serviços +BoxProductsAlertStock=Alertas de estoque para produtos +BoxLastProductsInContract=Últimos %s produtos/serviços contratados +BoxLastSupplierBills=Últimas faturas de fornecedores +BoxLastCustomerBills=Faturas mais recentes do cliente +BoxOldestUnpaidSupplierBills=Faturas mais antigas de fornecedores não pagas +BoxLastProposals=Últimas propostas comerciais +BoxLastProspects=Últimos prospectos de cliente modificados +BoxLastCustomerOrders=Últimas encomendas +BoxLastContacts=Últimos contatos/endereços +BoxLastModifiedMembers=Últimos membros modificados +BoxLastMembersSubscriptions=Últimas inscrições de membros +BoxCurrentAccounts=Saldo das contas ativas +BoxTitleMemberNextBirthdays=Aniversários deste mês (membros) +BoxTitleMembersSubscriptionsByYear=Assinaturas de membros por ano +BoxTitleLastRssInfos=Últimas %s novidades de %s +BoxTitleLastProducts=Produtos/Serviços: %s modificado +BoxTitleProductsAlertStock=Produtos: alerta de estoque +BoxTitleLastSuppliers=Últimos %s fornecedores registrados +BoxTitleLastModifiedSuppliers=Fornecedores: último %s modificado +BoxTitleLastModifiedCustomers=Clientes: último %s modificado +BoxTitleLastCustomersOrProspects=Últimos %s clientes ou prospectos de cliente +BoxTitleLastCustomerBills=Últimas %s faturas de cliente modificadas mais recentes +BoxTitleLastSupplierBills=Últimas %s faturas de fornecedor modificadas mais recentes +BoxTitleLastModifiedProspects=Perspectivas: último %s modificado +BoxTitleOldestUnpaidCustomerBills=Faturas do cliente: o mais antigo %s não pago +BoxTitleOldestUnpaidSupplierBills=Faturas de fornecedores: %smais antigas não pagas +BoxTitleCurrentAccounts=Contas abertas: saldos +BoxTitleSupplierOrdersAwaitingReception=Pedidos de fornecedores aguardando recepção +BoxTitleLastModifiedContacts=Contatos/Endereços: último %s modificado +BoxMyLastBookmarks=Marcadores: mais recente %s +BoxOldestExpiredServices=Mais antigos serviços ativos expirados +BoxLastExpiredServices=Ultimo %s dos contatos com serviço vencido ativo +BoxTitleLastContracts=Contratos %s mais recentes que foram modificados +BoxTitleLastModifiedDonations=Doações mais recentes %s que foram modificadas +BoxTitleLastModifiedExpenses=Relatórios de despesas %s mais recentes que foram modificados +BoxTitleLatestModifiedBoms=Últimos BOMs %s que foram modificados +BoxTitleLatestModifiedMos=Pedidos de fabricação %s mais recentes que foram modificados +BoxTitleLastOutstandingBillReached=Clientes com máximo pendente excedido +BoxGlobalActivity=Atividade global (faturas, propostas, pedidos) +BoxScheduledJobs=Tarefas agendadas +BoxTitleFunnelOfProspection=Funil de lead +FailedToRefreshDataInfoNotUpToDate=Falha ao atualizar o fluxo de RSS. Data de atualização mais recente com êxito: %s +LastRefreshDate=Ultima data atualizacao +NoRecordedBookmarks=Nenhum marcador definido. +NoRecordedContacts=Nenhum contato registrado +NoActionsToDo=Nenhuma ação para fazer +NoRecordedProposals=Nenhum possível cliente registrado +NoRecordedInvoices=Nenhuma nota fiscal registrada +NoUnpaidCustomerBills=Não há notas fiscais de clientes não pagas +NoUnpaidSupplierBills=Nenhuma fatura de fornecedor não paga +NoRecordedProducts=Nenhum registro de produtos/serviços +NoRecordedProspects=Nenhum registro de possíveis clientes +NoContractedProducts=Nenhum produtos/serviços contratados +NoRecordedContracts=Nenhum registro de contratos +NoRecordedInterventions=Nenhum registro de intervenções +BoxLatestSupplierOrdersAwaitingReception=Últimos pedidos (com uma recepção pendente) +BoxCustomersInvoicesPerMonth=Faturas do cliente por mês +BoxSuppliersInvoicesPerMonth=Faturas de fornecedores por mês +BoxCustomersOrdersPerMonth=Pedidos de vendas por mês +BoxSuppliersOrdersPerMonth=Ordens do fornecedor por mês +NoTooLowStockProducts=Nenhum produto está sob o limite de estoque baixo +BoxProductDistribution=Distribuição de Produtos / Serviços +ForObject=Em %s +BoxTitleLastModifiedSupplierBills=Faturas de Fornecedores: últimos%s modificadas +BoxTitleLatestModifiedSupplierOrders=Ordens do Vendedor: último %s modificado +BoxTitleLastModifiedCustomerBills=Faturas do cliente: último %s modificado +BoxTitleLastModifiedCustomerOrders=Pedidos de Vendas: último %s modificado +BoxTitleLastModifiedPropals=Últimas %s propostas modificadas +BoxTitleLatestModifiedJobPositions=Últimos cargos modificados %s +BoxTitleLatestModifiedCandidatures=Aplicativos de trabalho modificados %s mais recentes +ForCustomersInvoices=Faturas de clientes +ForCustomersOrders=Pedidos de clientes +LastXMonthRolling=Ultima %s mensal +ChooseBoxToAdd=Adicionar widget para sua area de notificacoes +BoxAdded=A ferramenta foi adicionada no seu painel +BoxTitleUserBirthdaysOfMonth=Aniversários deste mês (usuários) +BoxLastManualEntries=Registro mais recente na contabilidade inserido manualmente ou sem documento de origem +BoxTitleLastManualEntries=%s último registro inserido manualmente ou sem documento de origem +NoRecordedManualEntries=Nenhuma entrada manual registrada na contabilidade +BoxSuspenseAccount=Operação de contabilidade com conta suspensa +BoxTitleSuspenseAccount=Número de linhas não alocadas +NumberOfLinesInSuspenseAccount=Número de linha na conta suspensa +SuspenseAccountNotDefined=A conta suspensa não está definida +BoxLastCustomerShipments=Últimos envios de clientes +BoxTitleLastCustomerShipments=%s remessas de clientes mais recentes +NoRecordedShipments=Nenhuma remessa de cliente registrada +BoxCustomersOutstandingBillReached=Clientes com limite pendente atingido +UsersHome=Usuários e grupos domésticos +MembersHome=Sócio da casa +ThirdpartiesHome=Terceiros domésticos +TicketsHome=Início Tickets +AccountancyHome=Início contabilidade +ValidatedProjects=Projetos validados diff --git a/htdocs/langs/pt_MZ/cashdesk.lang b/htdocs/langs/pt_MZ/cashdesk.lang new file mode 100644 index 00000000000..ba8dd6ccdde --- /dev/null +++ b/htdocs/langs/pt_MZ/cashdesk.lang @@ -0,0 +1,92 @@ +# Dolibarr language file - Source file is en_US - cashdesk +CashdeskShowServices=Serviços de venda +CashDeskStock=Estoque +CashDeskOn=ligar +NewSell=Nova venda +AddThisArticle=Adicionar esse artigo +RestartSelling=Voltar na venda +SellFinished=Venda completada +PrintTicket=Imprimir tíquete +SendTicket=Enviar ticket +TotalTicket=Total do tíquite +NoVAT=Nenhum IVA para essa venda +Change=Excesso recebido +ShowCompany=Mostar empresa +DeleteArticle=Clique para remover esse artigo +FilterRefOrLabelOrBC=Procurar (Ref/Rótulo) +DolibarrReceiptPrinter=Impressão de Recibo Dolibarr +PointOfSale=Ponto de vendas +PointOfSaleShort=PDV +CloseBill=Fechar fatura +TakeposConnectorNecesary='TakePOS Connector' é requerido +Receipt=Recibo +Header=Cabeçalho +Footer=Rodapé +AmountAtEndOfPeriod=Montante no final do período (dia, mês ou ano) +TheoricalAmount=Quantidade teórica +RealAmount=Quantidade real +NbOfInvoices=Núm. de faturas +Paymentnumpad=Tipo de Pad para inserir pagamento +Numberspad=Números de Pad +BillsCoinsPad=Almofada de moedas e notas +DolistorePosCategory=Módulos TakePOS e outras soluções de PDV para Dolibarr +TakeposNeedsCategories=TakePOS precisa de pelo menos uma categoria de produto para funcionar +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS precisa de pelo menos 1 categoria de produto na categoria %s para funcionar +CashDeskBankAccountFor=Conta padrão a ser usada para pagamentos em +NoPaimementModesDefined=Nenhum modo de embalagem definido na configuração do TakePOS +TicketVatGrouped=Agrupar IVA por taxa em tickets | recibos +AutoPrintTickets=Imprimir automaticamente tickets | recibos +PrintCustomerOnReceipts=Imprimir cliente em tickets | recibos +EnableBarOrRestaurantFeatures=Ativar recursos para Bar ou Restaurante +ConfirmDeletionOfThisPOSSale=Você confirma a exclusão desta venda atual? +ConfirmDiscardOfThisPOSSale=Deseja descartar esta venda atual? +ValidateAndClose=Validar e fechar +NumberOfTerminals=Número de terminais +TerminalSelect=Selecione o terminal que você deseja usar: +POSTicket=PDV Ticket +POSTerminal=Terminal PDV +POSModule=Módulo PDV +BasicPhoneLayout=Usar layout básico para telefones +SetupOfTerminalNotComplete=A configuração do terminal 1%s não está concluída +DirectPayment=Pagamento direto +DirectPaymentButton=Adicionar um botão "Pagamento direto em dinheiro" +InvoiceIsAlreadyValidated=A fatura já está validada +NoLinesToBill=Nenhuma linha para cobrança +CustomReceipt=Recibo personalizado +ReceiptName=Nome do recibo +SupplementCategory=Categoria de suplemento +ColorTheme=Tema de cores +Colorful=Colorido +HeadBar=Barra principal +SortProductField=Campo para classificação de produtos +BrowserMethodDescription=Impressão de recibo simples e fácil. Apenas alguns parâmetros para configurar o recebimento. \nImprimir via navegador. +TakeposConnectorMethodDescription=Módulo externo com recursos extras. Possibilidade de imprimir a partir da nuvem. +PrintMethod=Método de impressão +ByTerminal=Pelo terminal +TakeposNumpadUsePaymentIcon=Use o ícone em vez do texto nos botões de pagamento do teclado numérico +CashDeskRefNumberingModules=Módulo de numeração para vendas PDV +CashDeskGenericMaskCodes6 =
    A tag {TN} é usada para adicionar o número do terminal +TakeposGroupSameProduct=Agrupe as mesmas linhas de produtos +StartAParallelSale=Iniciar uma nova venda paralela +SaleStartedAt=Venda iniciada às %s +CashReport=Relatório de caixa +MainPrinterToUse=Impressora principal a ser usada +OrderPrinterToUse=Solicite impressora a ser usada +MainTemplateToUse=Modelo principal a ser usado +OrderTemplateToUse=Modelo de pedido a ser usado +BarRestaurant=Bar Restaurante +AutoOrder=Encomendado pelo próprio cliente +CustomerMenu=Menu do cliente +ScanToMenu=Digitalize o código QR para ver o menu +ScanToOrder=Digitalize o código QR para fazer o pedido +Appearance=Aparência +HideCategoryImages=Ocultar imagens da categoria +HideProductImages=Ocultar imagens do produto +NumberOfLinesToShow=Número de linhas de imagens a mostrar +DefineTablePlan=Definir plano de tabelas +GiftReceiptButton=Adicionar um botão "Recibo para presente" +GiftReceipt=Recibo de presente +ModuleReceiptPrinterMustBeEnabled=A impressora de recibos do módulo deve ter sido habilitada primeiro +AllowDelayedPayment=Permitir pagamento atrasado +PrintPaymentMethodOnReceipts=Imprimir forma de pagamento em tickets | recibos +WeighingScale=Balança diff --git a/htdocs/langs/pt_MZ/categories.lang b/htdocs/langs/pt_MZ/categories.lang new file mode 100644 index 00000000000..90fd95922d2 --- /dev/null +++ b/htdocs/langs/pt_MZ/categories.lang @@ -0,0 +1,90 @@ +# Dolibarr language file - Source file is en_US - categories +Rubrique=Tag/Categoria +Rubriques=Tags/Categorias +RubriquesTransactions=Tags/Categorias de transações +categories=tags/categorias +NoCategoryYet=Nenhuma categoria deste tipo foi criada +In=Em +CategoriesArea=Área Tags / Categorias +ProductsCategoriesArea=Área de categorias de produtos e serviços +SuppliersCategoriesArea=Área de categorias de fornecedores +CustomersCategoriesArea=Área de categorias do cliente +MembersCategoriesArea=Área de categorias de membros +ContactsCategoriesArea=Área de categorias de contatos/endereços +AccountsCategoriesArea=Área de categorias de bancos +ProjectsCategoriesArea=Área de categorias de projetos +UsersCategoriesArea=Área de categorias de usuários +CatList=Lista de tags/categorias +CatListAll=Lista tags / categorias (todos os tipos) +NewCategory=Nova tag/categoria +ModifCat=Modificar tag/categoria +CatCreated=Tag/categoria criada +CreateCat=Criar tag/categoria +CreateThisCat=Criar esta tag/categoria +NoSubCat=Nenhuma subcategoria. +FoundCats=Encontrada tags / categorias +ImpossibleAddCat=Impossível associar a tag/categoria %s +WasAddedSuccessfully=Foi adicionado com êxito. +ObjectAlreadyLinkedToCategory=Elemento já está ligada a esta tag / categoria. +ProductIsInCategories=Produto / serviço está ligada à seguintes tags / categorias +CompanyIsInCustomersCategories=Este Terceiro está vinculado às seguintes tags/categorias de Clientes/Prospects +MemberIsInCategories=Esse membro está vinculado a seguintes membros tags / categorias +ContactIsInCategories=Este contato é ligado à sequência de contatos tags / categorias +ProductHasNoCategory=Este produto / serviço não está em nenhuma tags / categorias +CompanyHasNoCategory=Este terceiro nao tem nenhuma tag/categoria +MemberHasNoCategory=Este membro não está em nenhum tags / categorias +ContactHasNoCategory=Este contato não está em nenhum tags / categorias +ProjectHasNoCategory=Este projeto nao esta em nenhuma tag/categoria +ClassifyInCategory=Adicionar para tag / categoria +NotCategorized=Sem tag / categoria +CategoryExistsAtSameLevel=Esta categoria já existe na mesma localização +ContentsVisibleByAllShort=Conteúdo visivel por todos +ContentsNotVisibleByAllShort=Conteúdo não visivel por todos +DeleteCategory=Excluir tag / categoria +ConfirmDeleteCategory=Tem certeza que quer deleitar esta tag/categoria? +NoCategoriesDefined=Nenhuma tag / categoria definida +CustomersCategoryShort=Clientes tag / categoria +ProductsCategoryShort=Produtos tag / categoria +MembersCategoryShort=Membros tag / categoria +CustomersCategoriesShort=Clientes tags / categorias +ProspectsCategoriesShort=Tag/categoria Prospecção +CustomersProspectsCategoriesShort=Categorias de cliente deste terceiro +ProductsCategoriesShort=Produtos tags / categorias +MembersCategoriesShort=Tag / categorias de Membros +ContactCategoriesShort=Contatos tags / categorias +AccountsCategoriesShort=Tags/categorias Contas +ProjectsCategoriesShort=Projetos tags/categorias +UsersCategoriesShort=Tags / categorias de usuários +StockCategoriesShort=Tags / categorias de armazém +ThisCategoryHasNoItems=Esta categoria não contém nenhum item. +CategId=ID Tag / categoria +ParentCategory=Tag / categoria principal +ParentCategoryLabel=Rótulo tag / categoria principal +CatSupList=Lista tags / categorias de fornecedores +CatCusList=Lista de clientes / clientes potenciais / categorias +CatProdList=Lista de produtos tags / categorias +CatMemberList=Lista de membros tags / categorias +CatContactList=Lista tags / categorias de contatos +CatProjectsList=Lista tags / categorias de projetos +CatUsersList=Lista tags / categorias de usuários +CatSupLinks=Links entre fornecedores e tags / categorias +CatCusLinks=Relação/links entre clientes / perspectivas e tags / categorias +CatContactsLinks=Links entre contatos / endereços e tags / categorias +CatProdLinks=Relação/links entre produtos / serviços e tags / categorias +CatMembersLinks=Ligações entre os membros e tags / categorias +CatProjectsLinks=Links entre projetos e tags/categorias +CatUsersLinks=Links entre usuários e tags / categorias +ExtraFieldsCategories=atributos complementares +CategoriesSetup=Configuração Tags / categorias +CategorieRecursiv=Fazer a ligação com os pais tag/categoria automaticamente +CategorieRecursivHelp=Se a opção estiver ativada, quando você adicionar um produto a uma subcategoria, o produto também será adicionado à categoria pai. +AddProductServiceIntoCategory=Adicione o seguinte produto / serviço +AddCustomerIntoCategory=Atribuir categoria ao cliente +AddSupplierIntoCategory=Atribuir categoria ao fornecedor +ShowCategory=Mostrar tag / categoria +ChooseCategory=Escolher categoria +StocksCategoriesArea=Categorias de Armazém +ActionCommCategoriesArea=Categorias de Eventos +WebsitePagesCategoriesArea=Categorias de contêiner de página +KnowledgemanagementsCategoriesArea=Categorias de artigos KM +UseOrOperatorForCategories=Use o operador 'OR' para categorias diff --git a/htdocs/langs/pt_MZ/commercial.lang b/htdocs/langs/pt_MZ/commercial.lang new file mode 100644 index 00000000000..4e15f6d6895 --- /dev/null +++ b/htdocs/langs/pt_MZ/commercial.lang @@ -0,0 +1,60 @@ +# Dolibarr language file - Source file is en_US - commercial +Commercial=Comercial +CommercialArea=Área comercial +Prospects=Prospectos de cliente +DeleteAction=Excluir um evento +AddAction=Adicionar evento +AddAnAction=Adicionar um evento +AddActionRendezVous=Criar um evento de reunião +ConfirmDeleteAction=Tem certeza que quer deleitaar este evento ? +CardAction=Ficha de evento +ActionOnContact=Contato relacionado +ShowTask=Mostrar tarefa +ShowAction=Mostrar evento +ActionsReport=Relatório de eventos +SaleRepresentativesOfThirdParty=Representantes de vendas de terceiros +SalesRepresentative=Representante comercial +SalesRepresentatives=Representantes comerciais +SalesRepresentativeFollowUp=Representante comercial (seguindo) +SalesRepresentativeSignature=Representante comercial (assinatura) +NoSalesRepresentativeAffected=Nenhum particular foi designado para representante comercial +ShowCustomer=Mostrar cliente +ShowProspect=Mostrar prospecto de cliente +ListOfProspects=Lista de prospectos de cliente +ListOfCustomers=Lista de clientes +LastDoneTasks=Últimas %s ações completadas +LastActionsToDo=%s ações não concluídas mais antigas +DoneAndToDoActions=Concluída e para fazer eventos +DoneActions=Eventos concluídos +ToDoActions=Eventos não concluídos +SendPropalRef=Enviar orçamento %s +SendOrderRef=Enviar pedido %s +StatusNotApplicable=Não aplicavel +StatusActionToDo=Para fazer +StatusActionDone=Concluído +StatusActionInProcess=Em andamento +TasksHistoryForThisContact=Eventos para esse contato +LastProspectNeverContacted=Nunca contactado +LastProspectContactInProcess=Contato em andamento +LastProspectContactDone=Contato feito +ActionAffectedTo=Evento atribuído para +ActionDoneBy=Evento feito por +ActionAC_TEL=Chamada telefônica +ActionAC_PROP=Enviar proposta por correio +ActionAC_EMAIL=Enviar e-mail +ActionAC_INT=Intervenção no lugar +ActionAC_FAC=Enviar fatura de cliente por correio +ActionAC_REL=Enviar fatura de cliente por correio (lembrete) +ActionAC_EMAILING=Enviar emails massivos +ActionAC_COM=Envia pedido de venda por email +ActionAC_SHIP=Enviar frete por correio +ActionAC_SUP_ORD=Enviar pedido por correio +ActionAC_SUP_INV=Enviar fatura do fornecedor por email +ActionAC_OTH=Outros +ActionAC_OTH_AUTOShort=Outros +Stats=Estatísticas de vendas +StatusProsp=Status de prospecto de cliente +DraftPropals=Minutas de orçamentos +ToOfferALinkForOnlineSignature=Link para assinatura on-line +SignatureProposalRef=Assinatura da cotação / proposta comercial %s +FeatureOnlineSignDisabled=Recurso para assinatura online desabilitado ou documento gerado antes que o recurso fosse ativado diff --git a/htdocs/langs/pt_MZ/companies.lang b/htdocs/langs/pt_MZ/companies.lang new file mode 100644 index 00000000000..4f29abde47f --- /dev/null +++ b/htdocs/langs/pt_MZ/companies.lang @@ -0,0 +1,273 @@ +# Dolibarr language file - Source file is en_US - companies +ErrorCompanyNameAlreadyExists=Já existe uma empresa com o nome %s. Escolha um outro. +ErrorSetACountryFirst=Defina o país primeiro +ConfirmDeleteCompany=Tem certeza de que deseja excluir esta empresa e todas as informações relacionadas? +DeleteContact=Excluir um contato/endereço +ConfirmDeleteContact=Tem certeza de que deseja excluir este contato e todas as informações relacionadas? +MenuNewProspect=Novo Provável Cliente +MenuNewPrivateIndividual=Novo particular +NewCompany=Nova Empresa (prospecto, cliente, fornecedor) +NewThirdParty=Novo Terceiro (provável cliente, cliente, fornecedor) +CreateDolibarrThirdPartySupplier=Crie um terceiro (fornecedor) +CreateThirdPartyOnly=Adicionar terceiro +CreateThirdPartyAndContact=Criar um terceiro + um contato interno +ProspectionArea=Área de prospecção +IdThirdParty=ID do terceiro +IdCompany=ID da empresa +IdContact=ID do contato +ThirdPartyAddress=Endereço do terceiro +ThirdPartyContact=Contato / endereço de terceiro +AliasNames=Nome de fantasia (nome comercial, marca registrada etc.) +AliasNameShort=Nome alternativo +CountryIsInEEC=País está dentro da Comunidade Econômica Européia +PriceFormatInCurrentLanguage=Formato de apresentação do preço na linguagem atual e tipo de moeda +ThirdPartyName=Nome do terceiro +ThirdPartyEmail=E-mail do terceiro +ThirdPartyProspects=Prospectos de cliente +ThirdPartyProspectsStats=Prospectos de cliente +ThirdPartyCustomersWithIdProf12=Clientes com %s ou %s +ThirdPartySuppliers=Vendedores +Individual=Pessoa física +ToCreateContactWithSameName=Irá automaticamente criar um contato/endereço com a mesma informação do terceiro. Na maioria dos casos, mesmo que o terceiro seja uma pessoa física, a criação de um único terceiro é suficiente. +ParentCompany=Matriz +Subsidiaries=Filiais +ReportByMonth=Relatório por mês +ReportByCustomers=Relatório por cliente +ReportByThirdparties=Relatório por terceiro +ReportByQuarter=Relatório por taxa +CivilityCode=Forma de tratamento +RegisteredOffice=Escritório registrado +Lastname=Sobrenome +Firstname=Primeiro nome +RefEmployee=Referência do funcionário +NationalRegistrationNumber=Número de registro nacional +PostOrFunction=Cargo +NatureOfContact=Natureza do Contato +Address=Endereço +State=Estado/Província +StateCode=Código do Estado / Cidade +StateShort=Status do Cadastro +Region=Região +Region-State=Região - Estado +CountryCode=Código do país +Call=Chamar +PhonePro=Telefone comercial +PhonePerso=Tel. particular +PhoneMobile=Celular +No_Email=Recusar e-mails em massa +Zip=CEP +Town=Município +Web=Website +DefaultLang=Idioma padrão +VATIsUsed=Imposto usado sobre vendas +VATIsUsedWhenSelling=Aqui se define se esse terceiro inclui ou não um imposto sobre vendas quando faz uma fatura para seus próprios clientes +VATIsNotUsed=O imposto sobre vendas não é usado +CopyAddressFromSoc=Copie o endereço do terceiro +ThirdpartyNotCustomerNotSupplierSoNoRef=Terceiros nem cliente nem fornecedor, não há objetos de referência disponíveis +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Não existem descontos nem do cliente, fornecedor ou terceiro +PaymentBankAccount=Pagamento conta bancária +OverAllOrders=Pedidos +OverAllSupplierProposals=Solicitações de preço +LocalTax1IsUsed=Utilizar segundo imposto +LocalTax1IsUsedES=É usado RE +LocalTax1IsNotUsedES=Não é usado RE +LocalTax2IsUsed=Utilizar terceiro imposto +LocalTax2IsUsedES=É usado IRPF +LocalTax2IsNotUsedES=Não é usado IRPF +WrongCustomerCode=Código de cliente inválido +WrongSupplierCode=Código do fornecedor inválido +CustomerCodeModel=Modelo de código de cliente +SupplierCodeModel=Modelo de código do fornecedor +ProfId1Short=ID prof. 1 +ProfId2Short=ID prof. 2 +ProfId3Short=ID prof. 3 +ProfId4Short=ID prof. 4 +ProfId5Short=ID prof. 5 +ProfId6Short=ID prof. 6 +ProfId1=ID profissional 1 +ProfId2=ID profissional 2 +ProfId3=ID profissional 3 +ProfId4=ID profissional 4 +ProfId5=ID profissional 5 +ProfId6=ID profissional 6 +ProfId1AT=Prof Id 1 (IVA) +ProfId2AT=Prof Id 2 (Inscrição Estadual) +ProfId3AT=Prof Id 3 (Inscrição Municipal) +ProfId1BE=Prof Id 1 (Número profissional) +ProfId4BR=CNPJ/CPF +ProfId1CH=Número UID +ProfId3CH=Prof Id 1 (Número federal) +ProfId4CH=Prof Id 2 (Número gravado comercial) +ProfId1CM=Id. prof. 1 (Registro Comercial) +ProfId2CM=Id. prof. 2 (nº de Contribuinte) +ProfId1DE=Prof Id 1 (IVA) +ProfId2DE=Prof Id 2 (Inscrição Estadual) +ProfId3DE=Prof Id 3 (Inscrição Municipal) +ProfId2ES=Prof Id 2 (Número de seguro social) +ProfId4ES=Prof Id 4 (Número do colegial) +ProfId1FR=SIREN +ProfId2FR=SIRET +ProfId3FR=NAF (Ex APE) +ProfId4FR=RCS/RM +ProfId1GB=Número do registro +ProfId4IN=ID prof. 4 +ProfId5IN=ID prof. 5 +ProfId1LU=Id. prof. 1 (R.C.S. Luxemburgo) +ProfId2LU=Id. prof. 2 (Permissão para negócios) +ProfId1PT=NIPC +ProfId2PT=Núm. Segurança Social +ProfId3PT=Num. Reg. Comercial +ProfId4PT=Conservatória +ProfId1TN=RC +ProfId2TN=Matrícula Fiscal +ProfId3TN=Código na Alfandega +ProfId4TN=CCC +ProfId1US=Id do Prof (FEIN) +ProfId2RO=Prof Id 2 (nº de registro) +ProfId3DZ=Numero do Contribuinte +ProfId4DZ=Numero de Identificação Social +VATIntra=ID do IVA +VATIntraShort=ID do IVA +VATIntraSyntaxIsValid=Sintaxe é válida +ProspectCustomer=Possível cliente / Cliente +CustomerRelativeDiscount=Desconto relativo do cliente +CustomerRelativeDiscountShort=Desconto relativo +CompanyHasRelativeDiscount=Esse cliente tem um desconto padrão de %s%% +CompanyHasNoRelativeDiscount=Esse cliente não tem desconto relativo por padrão +HasRelativeDiscountFromSupplier=Desconto padrão de %s%%deste fornecedor +HasNoRelativeDiscountFromSupplier=Não existe desconto padrão para este fornecedor +CompanyHasCreditNote=Esse cliente ainda tem notas de crédito por %s %s +HasNoAbsoluteDiscountFromSupplier=Não existe desconto de crédito desse fornecedor +HasAbsoluteDiscountFromSupplier=Existem descontos disponíveis (Notas de credito or pagamentos baixados) para %s%s deste fornecedor +HasDownPaymentOrCommercialDiscountFromSupplier=Existem descontos disponíveis(Comercial, pagamentos baixados) para %s%s deste fornecedor +HasCreditNoteFromSupplier=Existem notas de crédito %s %s deste fornecedor +CompanyHasNoAbsoluteDiscount=Esse cliente não tem desconto de crédito disponível +CustomerAbsoluteDiscountAllUsers=Descontos absolutos do cliente (concedidos por todos os usuários) +CustomerAbsoluteDiscountMy=Descontos absolutos do cliente (concedidos por você) +SupplierAbsoluteDiscountAllUsers=Descontos absolutos de fornecedores (inseridos por todos os usuários) +SupplierAbsoluteDiscountMy=Descontos absolutos de fornecedores (inseridos por você) +DiscountNone=Nenhum +AddContact=Adicionar contato +AddContactAddress=Adicionar contato/endereço +EditContact=Editar contato +EditContactAddress=Editar contato/endereço +Contact=Contato / Endereço +Contacts=Contatos/Endereços +ContactId=ID do contato +ContactsAddresses=Contatos/Endereços +NoContactDefinedForThirdParty=Nenhum contato foi definido para esse terceiro +NoContactDefined=Sem contato definido +DefaultContact=Contato/endereço padrão +ContactByDefaultFor=Endereço/contacto padrão para +AddThirdParty=Adicionar terceiro +DeleteACompany=Excluir empresa +PersonalInformations=Dados pessoais +AccountancyCode=Conta contábil +CustomerCode=Código de Cliente +SupplierCode=Código Fornecedor +CustomerCodeShort=Código de Cliente +SupplierCodeShort=Código Fornecedor +SupplierCodeDesc=Código do Fornecedor, exclusivo para todos os fornecedores +RequiredIfCustomer=Necessário se o terceiro for um cliente ou um possível cliente +RequiredIfSupplier=Obrigatório se terceiros são fornecedores +ProspectToContact=Prospecto de cliente a contactar +CompanyDeleted=A empresa "%s" foi excluída do banco de dados. +ListOfContacts=Lista de contatos/endereços +ListOfContactsAddresses=Lista de contatos/endereços +ShowContact=Contato - Endereço +ContactForOrders=Contato de pedidos +ContactForOrdersOrShipments=Contato do pedido ou da remessa +ContactForProposals=Contato de orçamentos +ContactForContracts=Contato de contratos +ContactForInvoices=Contato de faturas +NoContactForAnyOrder=Esse contato não é de nenhum pedido +NoContactForAnyOrderOrShipments=Este contato não é um contato para qualquer pedido ou remessa +NoContactForAnyProposal=Esse contato não é de nenhum orçamento +NoContactForAnyContract=Esse contato não é de nenhum contrato +NoContactForAnyInvoice=Esse contato não é de nenhuma fatura +NewContact=Novo contato +NewContactAddress=Novo contato / endereço +MyContacts=Meus contatos +CapitalOf=Capital de %s +EditCompany=Editar empresa +ThisUserIsNot=Este usuário não é um cliente em potencial, cliente ou fornecedor +VATIntraCheckDesc=O ID do IVA deve incluir o prefixo do país. O link %s usa o serviço europeu de verificação de IVA (VIES), que requer acesso à Internet do servidor Dolibarr. +ErrorVATCheckMS_UNAVAILABLE=Verificação não é possível. Verifique o serviço não é necessário por um membro de estado (%s). +NorProspectNorCustomer=Nem possivel cliente, nem cliente +JuridicalStatus=Tipo de entidade comercial +ProspectLevelShort=Pos. Cli. +ProspectLevel=Possível cliente +ContactPublic=Compartilhado +ContactVisibility=Visível +ContactOthers=Outros +OthersNotLinkedToThirdParty=Outros, não esta vinculado a terceiros +ProspectStatus=Status de possível cliente +PL_UNKNOWN=Desconhecido +PL_MEDIUM=Médio +TE_GROUP=Empresa de grande porte +TE_MEDIUM=Empresa de médio porte +TE_ADMIN=Governo +TE_SMALL=Empresa de pequeno porte +TE_RETAIL=Revendedor/Varejista +TE_WHOLE=Atacadista +TE_PRIVATE=Autônomo +TE_OTHER=Outros +StatusProspect1=A contactar +StatusProspect2=Contato em andamento +StatusProspect3=Contato feito +ChangeDoNotContact=Alterar status para 'Não contactar' +ChangeNeverContacted=Trocar status para 'Nunca entrar em contato' +ChangeToContact=Alterar status para 'A contactar' +ChangeContactInProcess=Trocar status para 'Contato em andamento' +ChangeContactDone=Trocar status para 'Contato feito' +ProspectsByStatus=Prospectos por status +NoParentCompany=Nenhum +ContactNotLinkedToCompany=Contato não esta vinculado a nenhum terceiro +NoDolibarrAccess=Sem acesso ao Dolibarr +ExportDataset_company_1=Terceiros(Companhias/fundações/pessoas físicas) e suas propriedades +ImportDataset_company_2=Contatos/Enderecos adicionais e atributos de terceiros +ImportDataset_company_4=Vendedores de terceiros (assinalar vendedores/usuários para empresas) +PriceLevelLabels=Etiquetas de nível de preço +DeliveryAddress=Endereço de entrega +AddAddress=Adicionar endereço +DeleteFile=Excluir arquivo +ConfirmDeleteFile=Você tem certeza que deseja deletar esse arquivo? +AllocateCommercial=Designado para representante comercial +Organization=Organização +FiscalMonthStart=Primeiro mês do ano fiscal +SocialNetworksInformation=Redes sociais +SocialNetworksFacebookURL=URL Facebook +SocialNetworksTwitterURL=URL Twitter +SocialNetworksLinkedinURL=URL LinkedIn +SocialNetworksInstagramURL=URL Instagram +SocialNetworksYoutubeURL=URL YouTube +SocialNetworksGithubURL=URL GitHub +YouMustAssignUserMailFirst=Você deve criar um e-mail para este usuário antes de poder adicionar uma notificação por e-mail. +YouMustCreateContactFirst=Para estar apto a adicionar notificações por e-mail, você deve primeiramente definir contatos com e-mails válidos para o terceiro +ListSuppliersShort=Lista de fornecedores +ListProspectsShort=Lista de Prováveis Clientes +LastModifiedThirdParties=Últimos %sTerceiros modificados +UniqueThirdParties=Número total de terceiros +ActivityCeased=Inativo +ThirdPartyIsClosed=O terceiro está fechado +CurrentOutstandingBill=Notas aberta correntes +OutstandingBill=Conta excelente +OutstandingBillReached=Máx. para dívida a ser alcançado +LeopardNumRefModelDesc=O código é livre. Esse código pode ser modificado a qualquer hora. +ManagingDirectors=Nome do Representante(CEO,Diretor,Presidente...) +MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir) +MergeThirdparties=Mesclar terceiros +ThirdpartiesMergeSuccess=Terceiros foram mesclados +SaleRepresentativeLogin=Login para o representante de vendas +SaleRepresentativeLastname=Sobrenome do representante de vendas +ErrorThirdpartiesMerge=Houve um erro ao excluir os terceiros. Por favor, verifique o log. As alterações foram revertidas. +NewCustomerSupplierCodeProposed=Código de cliente/fornecedor já em uso, sugerido o uso de um novo código +KeepEmptyIfGenericAddress=Mantenha este campo vazio se este endereço for um endereço genérico +PaymentTypeCustomer=Tipo de pagamento - Cliente +PaymentTermsCustomer=Termos de pagamento - Cliente +PaymentTypeSupplier=Tipo de pagamento - Fornecedor +PaymentTermsSupplier=Termos de pagamento - Fornecedor +PaymentTypeBoth=Tipo de Pagamento - Cliente e Fornecedor +MulticurrencyUsed=Uso de Multimoeda +CurrentOutstandingBillLate=Atual fatura pendente atrasada +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Cuidado, dependendo das configurações de preço do produto, você deve trocar de fornecedor antes de adicionar o produto ao PDV. diff --git a/htdocs/langs/pt_MZ/compta.lang b/htdocs/langs/pt_MZ/compta.lang new file mode 100644 index 00000000000..81ef61d48ae --- /dev/null +++ b/htdocs/langs/pt_MZ/compta.lang @@ -0,0 +1,172 @@ +# Dolibarr language file - Source file is en_US - compta +MenuFinancial=Faturamento | Forma de pagamento +TaxModuleSetupToModifyRules=Vá para configuração do módulo Impostos para modificar regras de cálculo +TaxModuleSetupToModifyRulesLT=Vá até Configuração >> Empresa para modificar as regras de cálculo +OptionMode=Opção de Administração Contabilidade +OptionModeTrue=Opção Rendimentos-Despesas +OptionModeTrueDesc=Neste método, o balanço calcula-se sobre a base das faturas pagas.\nA validade dos valores não está garantida pois a Administração da Contabilidade pasa rigurosamente pelas entradas/saidas das contas mediante as faturas.\nNota : Nesta Versão, Dolibarr utiliza a data da fatura ao estado ' Validada ' e não a data do estado ' paga '. +OptionModeVirtualDesc=neste método, o balanço se calcula sobre a base das faturas validadas. pagas o não, aparecen ao resultado em quanto sejam discolocaçãos. +FeatureIsSupportedInInOutModeOnly=função disponível somente ao modo contas CREDITOS-dividas (Véase a configuração do módulo contas) +VATReportBuildWithOptionDefinedInModule=Os valores aqui apresentados são calculados usando as regras definidas pela configuração do módulo Fiscal. +LTReportBuildWithOptionDefinedInModule=Valores mostrados aqui são calculados usando as regras definidas nas configurações da empresa. +Param=Configuração +RemainingAmountPayment=Pagamento da quantia restante: +Accountparent=Conta principal +Accountsparent=Conta principal +Income=Rendimentos +MenuReportInOut=Rendimentos/Despesas +PaymentsNotLinkedToInvoice=pagamentos vinculados a Nenhuma fatura, por o que nenhum Fornecedor +PaymentsNotLinkedToUser=pagamentos não vinculados a um usuário +Profit=Lucro +AccountingResult=Resultado contábil +BalanceBefore=Balanço (antes) +Piece=Doc. contábil +AmountHTVATRealPaid=líquido pago +VATToPay=Vendas de impostos +VATToCollect=Compras fiscais +VATBalance=balanço de impostos +LT1Summary=Resumo da taxa 2 +LT2Summary=Resumo taxa 3 +LT1SummaryES=RE Balançete +LT2SummaryES=Saldo de IRPF +LT1SummaryIN=Balanço fiscal +LT2SummaryIN=Balanço Fiscal +LT1Paid=Taxa 2 pago +LT2Paid=Taxa 3 pago +LT1PaidES=RE Pago +LT2PaidES=IRPF pago +LT1PaidIN=CGST pago +LT2PaidIN=SGST pago +LT1Customer=2 vendas de taxas +LT1Supplier=Compra de taxas 2 compras +LT1CustomerES=RE vendas +LT1SupplierES=RE compras +LT1CustomerIN=CGST vendas +LT1SupplierIN=Compras do CGST +LT2Customer=Taxa 3 vendas +LT2Supplier=3 compras de taxas +LT2CustomerES=IRPF de vendas +LT2SupplierES=IRPF de compras +LT2CustomerIN=Vendas de SGST +LT2SupplierIN=Compras SGST +VATCollected=IVA recuperado +VATExpensesArea=Área para todos os pagamentos de IVA +SocialContribution=Contribuição fiscal ou social +SocialContributions=Encargos sociais e fiscais +SocialContributionsDeductibles=Contribuições fiscais ou sociais dedutíveis +SocialContributionsNondeductibles=Contribuições fiscais ou sociais não dedutíveis +DateOfSocialContribution=Data do imposto social ou fiscal +LabelContrib=Rótulo da contribuição +TypeContrib=Tipo de contribuição +MenuSpecialExpenses=Despesas especiais +MenuSocialContributions=Contribuições fiscais/sociais +MenuNewSocialContribution=Nova contribuição fiscal/social +NewSocialContribution=Nova contribuição fiscal/social +ContributionsToPay=Encargos sociais / fiscais para pagar +PaymentCustomerInvoice=Pagamento de fatura de cliente +PaymentSupplierInvoice=pagamento de fatura do fornecedor +PaymentSocialContribution=Pagamento de imposto social / fiscal +PaymentVat=Pagamento de IVA +ListOfSupplierPayments=Lista de pagamentos do fornecedor +DateStartPeriod=Período de início e data +DateEndPeriod=Período e data final +newLT1Payment=Novo pagamento da taxa 2 +newLT2Payment=Novo pagamento da taxa 3 +LT1Payment=Pagamento da taxa 2 +LT1Payments=Pagamentos da taxa 2 +LT2Payment=Pagamento da taxa 3 +LT2Payments=Pagamentos da taxa 3 +newLT1PaymentES=Novo RE pagamento +newLT2PaymentES=Novo pagamento de IRPF +LT1PaymentES=RE pagamento +LT1PaymentsES=RE pagamentos +LT2PaymentES=Pagamento de IRPF +LT2PaymentsES=Pagamentos de IRPF +VATPayment=Pagamento da taxa de venda +VATPayments=Pagamentos da taxa de venda +VATDeclarations=Declarações de IVA +VATDeclaration=Declaração de IVA +VATRefund=Reembolso da taxa sobre vendas +SocialContributionsPayments=Pagamentos de impostos sociais / fiscais +ShowVatPayment=Ver Pagamentos de IVA +TotalToPay=Total a pagar +CustomerAccountancyCode=Código contábil do cliente +SupplierAccountancyCode=Código contábil do fornecedor +CustomerAccountancyCodeShort=Cod. cont. cli. +SupplierAccountancyCodeShort=Cod. cont. forn. +AccountNumber=Número da conta +ByExpenseIncome=Por despesas & receitas +ByThirdParties=Por Fornecedor +CheckReceipt=Depósito de cheque +CheckReceiptShort=Depósito de cheque +LastCheckReceiptShort=Últimos %s recibos de cheque +NoWaitingChecks=Sem cheques a depositar. +NbOfCheques=Nº. de cheques +PaySocialContribution=Quitar um encargo fiscal/social +DeleteSocialContribution=Excluir um pagamento taxa social ou fiscal +ExportDataset_tax_1=Encargos fiscais e sociais e pagamentos +CalcModeVATDebt=Modo% S VAT compromisso da contabilidade% s. +CalcModeVATEngagement=Modo% SVAT sobre os rendimentos e as despesas% s. +CalcModeLT1=Modo %sRE nas faturas dos clientes - faturas dos fornecedores%s +CalcModeLT1Debt=Modo %sRE nas faturas dos clientes%s +CalcModeLT1Rec=Modo %sRE nas faturas dos fornecedores%s +CalcModeLT2=Modo %sIRPF nas faturas de clientes - fornecedores%s +CalcModeLT2Debt=Modo %sIRPF nas faturas de clientes%s +CalcModeLT2Rec=Modo %sIRPF nas faturas de fornecedores%s +AnnualSummaryDueDebtMode=Balanço de receitas e despesas, resumo anual +AnnualSummaryInputOutputMode=Balanço de receitas e despesas, resumo anual +AnnualByCompanies=Saldo de receitas e despesas, por grupos de conta predefinidos +AnnualByCompaniesDueDebtMode=Saldo de receitas e despesas, detalhe por grupos predefinidos, modo %sClaims-Debts%s disse Contabilidade de Compromisso . +AnnualByCompaniesInputOutputMode=Saldo de receitas e despesas, detalhe por grupos predefinidos, modo %sIncomes-Expenses%s chamada fluxo de caixa . +RulesAmountWithTaxIncluded=- Valores apresentados estão com todos os impostos incluídos +RulesCADue=- Inclui as faturas do cliente, pagas ou não. -
    É baseado na data de cobrança dessas faturas.
    +RulesCAIn=- Inclui todos os pagamentos efetivos de faturas recebidas de clientes.
    - É baseado na data de pagamento dessas faturas
    +RulesAmountOnInOutBookkeepingRecord=Inclui registro em seu Ledger com contas contábeis que tem o grupo "DESPESAS" ou "RENDIMENTO" +RulesResultBookkeepingPredefined=Inclui registro em seu Ledger com contas contábeis que tem o grupo "DESPESAS" ou "RENDIMENTO" +RulesResultBookkeepingPersonalized=Mostra registro em seu Livro de Registro com contas contábeis agrupadas por grupos personalizados +SeePageForSetup=Consulte o menu %s para configurar +LT1ReportByCustomersES=Relatorio por terceiro RE +LT2ReportByCustomersES=Relatório de fornecedores do IRPF +VATReportByCustomersInInputOutputMode=Relatório do IVA cliente recolhido e pago +LT1ReportByQuartersES=Relatorio por rata RE +LT2ReportByQuartersES=Relatorio por rata IRPF +OptionVatInfoModuleComptabilite=Nota: Para os bens materiais, sería necessário utilizar a data de entregas para para ser mais justo. +NotUsedForGoods=Bens não utilizados +ProposalStats=As estatísticas sobre as propostas +OrderStats=Estatísticas de comandos +ThirdPartyMustBeEditAsCustomer=Fornecedor deve ser definido como um cliente +SellsJournal=Diário de Vendas +PurchasesJournal=Diário de Compras +DescSellsJournal=Diário de Vendas +DescPurchasesJournal=Diário de Compras +CodeNotDef=Não Definida +DatePaymentTermCantBeLowerThanObjectDate=Data Prazo de pagamento não pode ser inferior a data da compra ou aquisição +Pcg_version=Modelos de carta de contas +Pcg_subtype=PCG subtipo +InvoiceLinesToDispatch=Linhas de nota fiscal para envio +RefExt=Ref externo +ToCreateAPredefinedInvoice=Para criar um modelo de fatura, crie uma fatura padrão e, sem validá-la, clique no botão%s +LinkedOrder=Linque para o pedido +CalculationRuleDesc=Para calcular o total do VAT, há dois métodos:
    Método 1 é arredondamento cuba em cada linha, em seguida, soma-los.
    Método 2 é somando tudo cuba em cada linha, em seguida, o arredondamento resultado.
    Resultado final pode difere de alguns centavos. O modo padrão é o modo% s. +CalculationRuleDescSupplier=De acordo com o fornecedor, escolha o método apropriado para aplicar a mesma regra de cálculo e obter o mesmo resultado esperado pelo fornecedor. +CalculationMode=Forma de cálculo +AccountancyJournal=código do Livro de Registro contábil +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada apenas para a contabilidade da subconta. Este será usado para contabilidade geral e como valor padrão da contabilidade do Contador, se a conta contábil do fornecedor dedicada a terceiros não estiver definida. +CloneTaxForNextMonth=Clonar para o proximo mes +AddExtraReport=Relatórios extra (adicionar relatório de clientes estrangeiros e nacionais) +OtherCountriesCustomersReport=Relação de clientes estrangeiros +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Com base nas duas primeiras letras do número de IVA sendo diferente do código de país da sua própria empresa +SameCountryCustomersWithVAT=Informar os clientes nacionais +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Com base nas duas primeiras letras do número de IVA sendo o mesmo que o código do país da sua própria empresa +LinkedFichinter=Vincular a uma intervenção +ImportDataset_tax_contrib=Contribuições fiscais/sociais +LabelToShow=Etiqueta curta +PurchaseTurnover=Rotatividade de compras +PurchaseTurnoverCollected=Rotatividade de compras coletadas +RulesPurchaseTurnoverDue=- Inclui as faturas de fornecedores, pagas ou não.
    - É baseado na data da fatura.
    +RulesPurchaseTurnoverIn=- Inclui todos os pagamentos efetivos das faturas feitas aos fornecedores.
    - É baseado na data de pagamento dessas faturas.
    +RulesPurchaseTurnoverTotalPurchaseJournal=Inclui todas as linhas de débito no diário de compras. +ReportPurchaseTurnover=Volume de negócios de compra faturada +ReportPurchaseTurnoverCollected=Rotatividade de compras coletadas +IncludeVarpaysInResults =Incluir vários pagamentos nos relatórios +IncludeLoansInResults =Incluir empréstimos nos relatórios diff --git a/htdocs/langs/pt_MZ/contracts.lang b/htdocs/langs/pt_MZ/contracts.lang new file mode 100644 index 00000000000..d79009052c7 --- /dev/null +++ b/htdocs/langs/pt_MZ/contracts.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - contracts +ContractStatusDraft=Minuta +ContractStatusValidated=Validada +ContractsSubscriptions=Contratos/Assinaturas +ContractEndDate=Data de término diff --git a/htdocs/langs/pt_MZ/cron.lang b/htdocs/langs/pt_MZ/cron.lang new file mode 100644 index 00000000000..65d861f5bc3 --- /dev/null +++ b/htdocs/langs/pt_MZ/cron.lang @@ -0,0 +1,54 @@ +# Dolibarr language file - Source file is en_US - cron +Permission23101 =Leia trabalho Programado +Permission23102 =Criar / atualização de tarefa agendada +Permission23103 =Excluir trabalho agendado +Permission23104 =Executar trabalho agendado +CronSetup=Configuração do gerenciamento de trabalho agendado +KeyForCronAccess=Chave seguranca para URL que lanca tarefas cron +FileToLaunchCronJobs=Linha de comando para checar e iniciar tarefas cron qualificadas +CronExplainHowToRunUnix=No ambiente Unix você deve usar a seguinte entrada crontab para executar a linha de comando a cada 5 minutos +CronExplainHowToRunWin=No ambiente Microsoft (tm) Windows, você pode usar as ferramentas Tarefas agendadas para executar a linha de comando a cada 5 minutos +CronMethodDoesNotExists=A classe %s não contém método %s algum +CronJobDefDesc=Os perfis de trabalho do Cron são definidos no arquivo do descritor do módulo. Quando o módulo é ativado, eles são carregados e disponíveis para que você possa administrar os trabalhos no menu de ferramentas de administração %s. +CronJobProfiles=Lista de perfis de tarefa cron predefinidas +CronLastOutput=Saída da última execução +CronLastResult=Código do último resultado +CronList=As tarefas agendadas +CronDelete=Excluir tarefas agendadas +CronConfirmDelete=Você tem certeza que deseja excluir esses cron jobs agendados? +CronExecute=Lançar Tarefas agendadas +CronConfirmExecute=Você tem certeza que deseja executar agora estas tarefas agendadas? +CronInfo=O módulo de Tarefa Agendada permite agendar tarefas para executá-las automaticamente. As tarefas também podem ser iniciadas manualmente. +CronNone=Nenhum +CronDtEnd=Não depois +CronDtNextLaunch=Próxima execução +CronFrequency=Frequencia +CronNoJobs=Nenhuma tarefa registrada +CronNbRun=Número de lançamentos +CronMaxRun=Número máximo de lançamentos +JobFinished=Trabalho iniciado e terminado +CronAdd=Adicionar tarefa +CronObject=Instância/Objeto a se criar +CronSaveSucess=Salvo com sucesso +CronNote=Comentario +CronFieldMandatory=O campo %s é obrigatório +CronErrEndDateStartDt=A data final não pode ser anterior a data de início +StatusAtInstall=Status na instalação do módulo +CronClassFile=Nome de arquivo com classe +CronModuleHelp=Nome do diretório do módulo Dolibarr (também trabalhe com o módulo Dolibarr externo).
    Por exemplo, para chamar o método fetch do objeto do produto Dolibarr /htdocs/product/class/product.class.php, o valor para module é o product +CronClassFileHelp=O caminho relativo e o nome do arquivo a ser carregado (o caminho é relativo ao diretório-raiz do servidor da web).
    Por exemplo, para chamar o método fetch do objeto Product do Dolibarr htdocs / product / class / product.class.php , o valor para o nome do arquivo de classe é product / class / product.class.php +CronObjectHelp=O nome do objeto a ser carregado.
    Por exemplo, para chamar o método fetch do objeto do produto Dolibarr /htdocs/product/class/product.class.php, o valor para o nome do arquivo de classe é Produto +CronMethodHelp=O método do objeto a ser lançado.
    Por exemplo, para chamar o método fetch do objeto Product do Dolibarr /htdocs/product/class/product.class.php, o valor para o método é fetch +CronArgsHelp=Os argumentos do método.
    Por exemplo, para chamar o método fetch do objeto Dolibarr Product /htdocs/product/class/product.class.php, o valor dos parâmetros pode ser 0, ProductRef +CronCommandHelp=A linha de comando de sistema que deve ser executada. +CronCreateJob=Criar uma nova Tarefa agendada +CronType_method=Chamar método de uma Classe PHP +CronType_command=Comando Shell +CronCannotLoadClass=Não é possível carregar o arquivo de classe %s (para usar a classe %s) +CronCannotLoadObject=O arquivo de classe %s foi carregado, mas o objeto %s não foi encontrado nele +UseMenuModuleToolsToAddCronJobs=Vá para o menu "Página inicial - Ferramentas administrativas - Trabalhos agendados" para ver e editar os trabalhos agendados. +JobDisabled=Tarefa desativada +MakeLocalDatabaseDumpShort=Backup do banco de dados local +MakeLocalDatabaseDump=Crie um despejo de banco de dados local. Os parâmetros são: compression ('gz' ou 'bz' ou 'none'), tipo de backup ('mysql', 'pgsql', 'auto'), 1, 'auto' ou nome de arquivo para construir, número de arquivos de backup para manter +WarningCronDelayed=Atenção, para fins de desempenho, seja qual for a próxima data de execução de tarefas habilitadas, suas tarefas podem ser atrasadas em até um máximo de %s horas, antes de serem executadas. +DATAPOLICYJob=Limpador de dados e anonimizador diff --git a/htdocs/langs/pt_MZ/deliveries.lang b/htdocs/langs/pt_MZ/deliveries.lang new file mode 100644 index 00000000000..72ac39bc8b5 --- /dev/null +++ b/htdocs/langs/pt_MZ/deliveries.lang @@ -0,0 +1,23 @@ +# Dolibarr language file - Source file is en_US - deliveries +Delivery=Entrega +DeliveryRef=Ref. entrega +DeliveryCard=Cartão de recibo +DeliveryStateSaved=Estado de entrega salvo +SetDeliveryDate=Indicar a Data de Envio +ValidateDeliveryReceipt=Confirmar a Nota de Entrega +ValidateDeliveryReceiptConfirm=Você tem certeza que deseja validar este comprovante de entrega? +DeleteDeliveryReceipt=Excluir recibo de entrega +DeleteDeliveryReceiptConfirm=Você tem certeza que deseja excluir o comprovante de entrega %s? +DeliveryMethod=Método de entrega +TrackingNumber=Número de rastreamento +StatusDeliveryDraft=Minuta +StatusDeliveryValidated=Recebida +GoodStatusDeclaration=Recebi a mercadorias acima em bom estado, +Deliverer=Entregador : +Sender=Remetente +ErrorStockIsNotEnough=Não existe estoque suficiente +Shippable=Disponivel para envio +NonShippable=Não disponivel para envio +ShowShippableStatus=Mostrar status entregável +ShowReceiving=Mostrar recibo de entrega +NonExistentOrder=Pedido inexistente diff --git a/htdocs/langs/pt_MZ/dict.lang b/htdocs/langs/pt_MZ/dict.lang new file mode 100644 index 00000000000..c7d7ae905d8 --- /dev/null +++ b/htdocs/langs/pt_MZ/dict.lang @@ -0,0 +1,110 @@ +# Dolibarr language file - Source file is en_US - dict +CountryBE=Bélgica +CountryCH=Suíça +CountryDZ=Argélia +CountryCA=Canadá +CountryRU=Rússia +CountryAX=Ilhas Åland +CountryBJ=Benim +CountryBN=Brunei +CountryBG=Bulgária +CountryBF=Burquina Faso +CountryBI=Burúndi +CountryCF=República Centro-Africana +CountryKM=Comores +CountryCZ=República Tcheca +CountryFO=Ilhas Féroe +CountryFJ=República de Fíji +CountryTF=Território das Terras Austrais e Antárticas Francesas +CountryGE=Geórgia +CountryGL=Groenlândia +CountryHT=Haiti +CountryHM=Ilha Heard e Ilhas McDonald +CountryVA=Santa Sé (Estado da Cidade do Vaticano) +CountryIS=Islândia +CountryIR=Irã +CountryKR=Coreia do Sul +CountryKG=Quirguistão +CountryLA=Laos +CountryMK=Macedônia, antiga República iugoslava da +CountryMW=Maláui +CountryML=Máli +CountryMM=Mianmar (Birmânia) +CountryNC=Nova Caledônia +CountryPS=Território Palestino, Ocupado +CountryPN=Ilhas Picárnia +CountryKN=São Cristóvão e Nevis +CountryPM=São Pedro e Miquelon +CountrySC=Seicheles +CountryGS=Ilhas Geórgias do Sul e Sandwich do Sul +CountryTC=Ilhas Turks e Caicos +CountryUA=Ucrânia +CountryUM=Ilhas Menores Distantes dos Estados Unidos +CountryVN=Vietnã +CountryVI=Ilhas Virgens, EUA +CountryEH=Saara Ocidental +CountryZW=Zimbábue +CountryBL=São Bartolomeu +CountryMF=São Martinho +CivilityMLE=Srta. +CivilityMTRE=Me. +CurrencyAUD=Dólares australianos +CurrencySingAUD=Dólar australiano +CurrencyCAD=Dólares canadenses +CurrencySingCAD=Dólar canadense +CurrencySingCHF=Franco suíço +CurrencyFRF=Francos franceses +CurrencyGBP=Libras esterlinas +CurrencySingGBP=Libra esterlina +CurrencyINR=Rupias indianas +CurrencyMAD=Dirhames +CurrencySingMAD=Dirhames +CurrencyMGA=Ariaris +CurrencySingMGA=Ariari +CurrencyMUR=Rupias mauricianas +CurrencySingMUR=Rupia mauriciana +CurrencyNOK=Coroas norueguesas +CurrencySingNOK=Coroas norueguesas +CurrencyTND=Dinares tunisianos +CurrencySingTND=Dinar tunisiano +CurrencyUSD=Dólares americanos +CurrencySingUSD=Dólar americano +CurrencyUAH=Grívnias +CurrencySingUAH=Grívnia +CurrencyXPF=Francos CFP +CurrencyCentEUR=centavos +CurrencyCentSingEUR=centavo +CurrencyCentINR=paise +DemandReasonTypeSRC_CAMP_MAIL=Campanha por correspondência +DemandReasonTypeSRC_CAMP_EMAIL=Campanha por e-mail +DemandReasonTypeSRC_CAMP_PHO=Campanha por telefone +DemandReasonTypeSRC_CAMP_FAX=Campanha por fax +DemandReasonTypeSRC_SHOP=Contato na loja +DemandReasonTypeSRC_WOM=Palavra da boca +DemandReasonTypeSRC_SRC_CUSTOMER=Contato entrante de um cliente +PaperFormatUSLETTER=Formato Carta, EUA +PaperFormatUSLEGAL=Formato Legal, EUA +PaperFormatUSEXECUTIVE=Formato Executivo, EUA +PaperFormatUSLEDGER=Formato Livro-Razão/Tabloide +PaperFormatCAP1=Formato P1, Canadá +PaperFormatCAP2=Formato P2, Canadá +PaperFormatCAP3=Formato P3, Canadá +PaperFormatCAP4=Formato P4, Canadá +PaperFormatCAP5=Formato P5, Canadá +PaperFormatCAP6=Formato P6, Canadá +ExpMotoCat=Motocicleta +ExpAuto3PCV=3 CV e mais +ExpAuto4PCV=4 CV e mais +ExpAuto5PCV=5 CV e mais +ExpAuto6PCV=6 CV e mais +ExpAuto7PCV=7 CV e mais +ExpAuto8PCV=8 CV e mais +ExpAuto9PCV=9 CV e mais +ExpAuto10PCV=10 CV e mais +ExpAuto11PCV=11 CV e mais +ExpAuto12PCV=12 CV e mais +ExpAuto13PCV=13 CV e mais +ExpCyclo=Capacidade abaixo de 50cm3 +ExpMoto12CV=Motocicleta 1 ou 2 CV +ExpMoto345CV=Motocicleta 3, 4 ou 5 CV +ExpMoto5PCV=Motocicleta 5 CV e mais diff --git a/htdocs/langs/pt_MZ/donations.lang b/htdocs/langs/pt_MZ/donations.lang new file mode 100644 index 00000000000..c9152795e55 --- /dev/null +++ b/htdocs/langs/pt_MZ/donations.lang @@ -0,0 +1,25 @@ +# Dolibarr language file - Source file is en_US - donations +Donation=Doação +Donations=Doações +DonationRef=Ref. da doação +AddDonation=Criar uma doação +NewDonation=Nova doação +DeleteADonation=Excluir uma doação +ConfirmDeleteADonation=Tem certeza que quer remover esta doacao? +PublicDonation=Doação pública +DonationsArea=Área de doações +DonationStatusPromiseNotValidated=Promessa não validada +DonationStatusPaid=Doação recebida +DonationStatusPromiseNotValidatedShort=Não validada +DonationStatusPromiseValidatedShort=Validada +DonationStatusPaidShort=Recebida +DonationTitle=Recibo de doação +DonationReceipt=Recibo de doação +DonationsModels=Modelo de documento de recepção de Doação +DonationRecipient=Recipiente doaçaõ +IConfirmDonationReception=O beneficiário declara ter recebido, como doação, o seguinte montante +MinimumAmount=O montante mínimo é de %s +DONATION_ART200=Mostrar o artigo 200 do CGI se você está preocupado +DONATION_ART238=Mostrar o artigo 238 do CGI se você está preocupado +DONATION_ART885=Mostrar o artigo 885 do CGI se você está preocupado +DonationPayment=Pagamento de doação diff --git a/htdocs/langs/pt_MZ/ecm.lang b/htdocs/langs/pt_MZ/ecm.lang new file mode 100644 index 00000000000..1b5ed3fa5cb --- /dev/null +++ b/htdocs/langs/pt_MZ/ecm.lang @@ -0,0 +1,36 @@ +# Dolibarr language file - Source file is en_US - ecm +ECMNbOfDocs=N°. de documentos no diretório +ECMSection=Pasta +ECMSectionManual=Pasta manual +ECMRoot=Raiz ECM +ECMNewSection=Criar pasta +ECMAddSection=Adicionar pasta +ECMCreationDate=Data criação +ECMNbOfFilesInDir=Número de arquivos na pasta +ECMNbOfSubDir=Número de subpastas +ECMNbOfFilesInSubDir=Numero de arquivos nos subpastas +ECMCreationUser=Criado por +ECMArea=Área DMS / ECM +ECMAreaDesc=A área DMS / ECM (Gerenciamento de documentos / Gerenciamento de conteúdo eletrônico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr. +ECMSectionWasRemoved=A pasta %s foi eliminada +ECMSearchByKeywords=Busca usando palavras chave +ECMSearchByEntity=Busca por objeto +ECMDocsBy=Documentos vinculados a %s +ShowECMSection=Exibir pasta +DeleteSection=Apagar pasta +ConfirmDeleteSection=Por favor confirmar a remocao do diretorio %s? +ECMDirectoryForFiles=Relação de pasta para arquivos +CannotRemoveDirectoryContainsFilesOrDirs=Remoção impossível porque contém alguns arquivos ou subdiretórios +CannotRemoveDirectoryContainsFiles=Remoção impossível porque contém alguns arquivos +ECMFileManager=Gerenciador de arquivos +ECMSelectASection=Selecione um diretório na árvore ... +DirNotSynchronizedSyncFirst=Este diretório parece ser criado ou modificado fora do módulo ECM. Você deve clicar no botão "Sincronizar" primeiro para sincronizar o disco do banco de dados para obter o conteúdo desse diretório. +ReSyncListOfDir=Sincronizar lista de diretórios +HashOfFileContent=Hash do conteúdo do arquivo +FileNotYetIndexedInDatabase=Arquivo ainda não indexado no banco de dados (tente voltar a carregá-lo) +ExtraFieldsEcmFiles=Campos extras Arquivos Ecm +ExtraFieldsEcmDirectories=Campos extras Diretórios Ecm +ECMSetup=Configuração ECM +GenerateImgWebp=Duplique todas as imagens com outra versão em formato .webp +ConfirmImgWebpCreation=Confirmar duplicação de todas as imagens +SucessConvertImgWebp=Imagens duplicadas com sucesso diff --git a/htdocs/langs/pt_MZ/errors.lang b/htdocs/langs/pt_MZ/errors.lang new file mode 100644 index 00000000000..517027dde8c --- /dev/null +++ b/htdocs/langs/pt_MZ/errors.lang @@ -0,0 +1,181 @@ +# Dolibarr language file - Source file is en_US - errors +NoErrorCommitIsDone=Sem erros, garantimos +ErrorButCommitIsDone=Erros foram encontrados mas, apesar disso, validamos +ErrorBadValueForParamNotAString=Valor ruim para o seu parâmetro por falta, possivelmente, de tradução. +ErrorRecordNotFound=Registro não encontrado. +ErrorFailToCopyFile=Houve uma falha ao copiar o arquivo '%s' para '%s'. +ErrorFailToCopyDir=Falha ao copiar o diretório ' %s ' para ' %s '. +ErrorFailToRenameFile=Houve uma falha ao renomear o arquivo '%s' para '%s'. +ErrorFailToDeleteFile=Houve uma falha ao eliminar o arquivo '%s'. +ErrorFailToCreateFile=Houve uma falha ao criar o arquivo ''. +ErrorFailToRenameDir=Houve uma falha ao renomear o diretório '%s' para '%s'. +ErrorFailToCreateDir=Houve uma falha ao criar o diretório '%s'. +ErrorFailToDeleteDir=Houve uma falha ao eliminar o diretório '%s'. +ErrorThisContactIsAlreadyDefinedAsThisType=Este contato já está definido como contato para este tipo. +ErrorCashAccountAcceptsOnlyCashMoney=Esta conta bancaria é uma conta caixa e aceita, portanto, apenas pagamentos em dinheiro. +ErrorFromToAccountsMustDiffers=As contas bancárias origem e alvo devem ser diferentes. +ErrorBadThirdPartyName=Valor inválido para o nome de terceiros +ErrorProdIdIsMandatory=%s é obrigatório +ErrorBadCustomerCodeSyntax=Sintaxe inadequada para o código de cliente +ErrorBadBarCodeSyntax=Má sintaxe para código de barras. Pode ser que você defina um tipo de código de barras incorreto ou tenha definido uma máscara de código de barras para numeração que não corresponda ao valor verificado. +ErrorCustomerCodeRequired=Código de cliente necessário +ErrorBarCodeRequired=Código de barras requerido +ErrorBarCodeAlreadyUsed=Código de barras já usado +ErrorSupplierCodeRequired=Código de fornecedor necessário +ErrorSupplierCodeAlreadyUsed=Código do fornecedor já usado +ErrorBadParameters=Parâmetros inadequados +ErrorWrongParameters=Parâmetros errados ou ausentes +ErrorBadValueForParameter=Valor incorreto '%s' para o parâmetro '%s' +ErrorBadImageFormat=Arquivo imagem de formato não suportado (Seu PHP não suporta funções para converter neste formato) +ErrorBadDateFormat=O valor '%s' tem o formato de data errada +ErrorWrongDate=A data não está correta! +ErrorFailedToWriteInDir=Houve uma falha ao escrever no diretório %s +ErrorFoundBadEmailInFile=Encontrado uma sintaxe de e-mail incorreta para as linhas %s no arquivo (por exemplo, linha %s com e-mail = %s) +ErrorSubjectIsRequired=O assunto do email é obrigatório +ErrorFailedToCreateDir=Error na creação de uma carpeta. Compruebe que 0 usuario del servidor Web tiene derechos de escritura en las carpetas de documentos de Dolibarr. Si 0 parámetro safe_mode está ativo en este PHP, Compruebe que los archivos php dolibarr pertencen ao usuario del servidor Web. +ErrorNoMailDefinedForThisUser=Nenhum e-mail definido para este usuário +ErrorFeatureNeedJavascript=Esta funcionalidade requer que o javascript seja ativado para funcionar. Altere isto em Configuração >> Aparência. +ErrorTopMenuMustHaveAParentWithId0=Um menu do tipo 'Topo' não pode ter um menu pai. Coloque 0 no menu pai ou opte por um menu do tipo 'Esquerdo'. +ErrorLeftMenuMustHaveAParentId=Um menu do tipo 'Esquerdo' deve ter um ID de pai. +ErrorFileNotFound=Arquivo não encontrado (Rota incorreta, permissões incorretos o acesso prohibido por o parâmetro openbasedir) +ErrorDirNotFound=Diretório %s não encontrado (caminho errado, permissões erradas ou acesso negado pelo PHP ou pelo parâmetro safe_mode) +ErrorFunctionNotAvailableInPHP=A função %s é requisitada por esta funcionalidade, mas não está disponível nesta versão/configuração do PHP. +ErrorDirAlreadyExists=Já existe um diretório com este nome. +ErrorFileAlreadyExists=Já existe um arquivo com este nome. +ErrorPartialFile=O arquivo não foi completamente recebido pelo servidor. +ErrorNoTmpDir=O diretório temporário %s não existe. +ErrorUploadBlockedByAddon=Upload bloqueado por uma extensão do PHP/Apache. +ErrorFieldTooLong=O campo %s é muito longo. +ErrorSizeTooLongForIntType=Tamanho longo demais para o tipo int (o máximo é %s dígitos) +ErrorSizeTooLongForVarcharType=Tamanho longo demais para o tipo string (o máximo é %s caracteres) +ErrorNoValueForSelectType=Por favor, escolha uma opção da lista +ErrorNoValueForCheckBoxType=Por favor, marque uma opção da lista +ErrorNoValueForRadioType=Por favor, selecione uma opção da lista +ErrorBadFormatValueList=O valor da lista não pode ter mais de uma vírgula: %s, mas precisa de ao menos uma: chave,valor +ErrorNoAccountancyModuleLoaded=Módulo de Contabilidade não ativado +ErrorExportDuplicateProfil=Este nome de perfil já existe para este lote de exportação. +ErrorLDAPSetupNotComplete=A correspondência Dolibarr-LDAP não está completa. +ErrorLDAPMakeManualTest=foi criado unn Arquivo .ldif na pasta %s. Trate de gastor manualmente este Arquivo a partir da linha de comandos para Obter mais detalles acerca do error. +ErrorModuleRequireJavascript=Javascript não deve ser desativado para ter esse recurso funcionando. Para ativar / desativar o Javascript, vá ao menu Home-> Configuração-> Display. +ErrorPasswordsMustMatch=Deve existir correspondência entre as senhas digitadas +ErrorContactEMail=Ocorreu um erro técnico. Por favor, entre em contato com o administrador para o seguinte e-mail %s e forneça o código de erro %s em sua mensagem ou adicione uma cópia da tela desta página. +ErrorWrongValueForField=Campo %s : '%s' não corresponde à regra de regex %s +ErrorFieldValueNotIn=Campo %s : '%s' não é um valor encontrado no campo %s de %s +ErrorFieldRefNotIn=Campo %s : '%s' não é uma referência existente %s +ErrorsOnXLines=%s erros encontrados +ErrorFileIsInfectedWithAVirus=O antivírus não foi capaz de atestar o arquivo (o arquivo pode estar infectado por um vírus) +ErrorNumRefModel=Uma referência existe no banco de dados (% s) e não é compatível com esta regra de numeração. Remover registro ou referência renomeado para ativar este módulo. +ErrorQtyTooLowForThisSupplier=Quantidade muito baixa para este fornecedor ou nenhum preço definido neste produto para este fornecedor +ErrorOrdersNotCreatedQtyTooLow=Algumas encomendas não foram criadas por causa de quantidades muito baixas +ErrorModuleSetupNotComplete=A configuração do módulo %s parece estar incompleta. Vá em Home - Setup - Modules para concluir. +ErrorBadMaskFailedToLocatePosOfSequence=Erro, máscara sem número de sequência +ErrorBadMaskBadRazMonth=Erro, valor de redefinição ruim +ErrorMaxNumberReachForThisMask=Número máximo atingido para esta máscara +ErrorCounterMustHaveMoreThan3Digits=Contador deve ter mais de 3 dígitos +ErrorSelectAtLeastOne=Erro, selecione pelo menos uma entrada. +ErrorProdIdAlreadyExist=%s é atribuído a outro terço +ErrorFailedToSendPassword=Houve uma falha no envio da senha +ErrorForbidden=Acesso negado.
    Você tenta acessar a uma página, área ou característica de um módulo desativado ou sem estar em uma sessão autenticada ou que não é permitido para o usuário. +ErrorForbidden2=Os permissões para este usuário podem ser designados por o administrador Dolibarr mediante o menu %s-> %s. +ErrorForbidden3=Dolibarr não parece funcionar em uma Sessão autentificada. Consulte a documentação de Instalação de Dolibarr para saber cómo administrar as autenticaciones (htaccess, mod_auth u outro...). +ErrorNoImagickReadimage=a função imagick_readimage não está presente nesta Instalação de PHP. a resenha não está pois disponível. Os administradores podem desativar esta separador ao menu configuração - visualização. +ErrorRecordAlreadyExists=O registro já existe +ErrorCantReadFile=Houve uma falha ao ler o arquivo '%s' +ErrorCantReadDir=Houve uma falha ao ler o diretório '%s' +ErrorBadLoginPassword=Identificadores de usuário o senha incorretos +ErrorLoginDisabled=A sua conta foi desativada +ErrorFailedToChangePassword=Error na modificação da senha +ErrorLoginDoesNotExists=Não existe um usuário com login %s. +ErrorLoginHasNoEmail=Este usuário não tem endereço de e-mail. Processo abortado. +ErrorBadValueForCode=Valor inadequado para código de segurança. Tente novamente com um novo valor... +ErrorBothFieldCantBeNegative=Os campos %s e %s não podem ser ambos negativos +ErrorLinesCantBeNegativeOnDeposits=As linhas não podem ser negativas em um depósito. Você terá problemas quando precisar apagar o depósito na fatura final, se o fizer. +ErrorQtyForCustomerInvoiceCantBeNegative=A quantidade nas linhas das notas de clientes não pode ser negativa +ErrorWebServerUserHasNotPermission=A conta de usuário %s usada para executar o servidor web não possui permissão para isto +ErrorNoActivatedBarcode=Nenhum tipo de código de barras foi ativado +ErrUnzipFails=Houve uma falha ao descompactar %s com ZipArchive +ErrorFileMustBeADolibarrPackage=O arquivo %s deve ser um pacote zipado do Dolibarr +ErrorPhpCurlNotInstalled=O PHP CURL não está instalado, isto é essencial para conversar com Paypal +ErrorFailedToAddToMailmanList=Falha ao adicionar registro% s para% s Mailman lista ou base SPIP +ErrorFailedToRemoveToMailmanList=Falha ao remover registro% s para% s Mailman lista ou base SPIP +ErrorNewValueCantMatchOldValue=O novo valor não pode ser igual ao anterior +ErrorFailedToValidatePasswordReset=Falha ao reinicializar senha. Pode ser o reinit já foi feito (este link pode ser usado apenas uma vez). Se não, tente reiniciar o processo reinit. +ErrorFailedToAddContact=Houve uma falha ao adicionar o contato +ErrorDateMustBeBeforeToday=A data deve ser menor que hoje +ErrorDateMustBeInFuture=A data deve ser maior que hoje +ErrorPaymentModeDefinedToWithoutSetup=A modalidade de pagamento foi definido para tipo% s mas a configuração do módulo de fatura não foi concluída para definir as informações para mostrar para esta modalidade de pagamento. +ErrorPHPNeedModule=Erro, o PHP deve ter módulo% s instalado para usar este recurso. +ErrorOpenIDSetupNotComplete=Você arquivo de configuração Dolibarr configuração para permitir a autenticação OpenID, mas a URL de serviço OpenID não está definido em constante% s +ErrorWarehouseMustDiffers=A conta origem e destino devem ser diferentes +ErrorBadFormat=Formato ruim! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erro, este membro não está ainda conectado a qualquer terceiro. Conectar o membro a um terceiro existente ou criar um novo terceiro antes de criar uma assinatura com fatura. +ErrorThereIsSomeDeliveries=Erro, há algumas entregas ligados a este envio. Supressão recusou. +ErrorPriceExpression1=Não é possível atribuir a constante %s' +ErrorPriceExpression2=Não é possível redefinir a função built-in '%s' +ErrorPriceExpression3=variavel não definida '%s' na definição de função +ErrorPriceExpression4=Caractere ilegal '%s' +ErrorPriceExpression6=Número errado de argumentos (fornecidos %s, esperados %s) +ErrorPriceExpression8=Operador Inesperado '%s' +ErrorPriceExpression17=Variável não definida '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Origem e de destino de armazéns devem ser diferentes +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Todas as recepções gravados primeiro deve ser verificada (aprovada ou negada) antes de serem autorizados a fazer esta ação +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Todas as recepções gravadas primeiro devem ser verificada (aprovado) antes de serem autorizados a fazer esta ação +ErrorGlobalVariableUpdater0=Pedido HTTP falhou com o erro '%s' +ErrorGlobalVariableUpdater2=Faltando parâmetro '%s' +ErrorGlobalVariableUpdater5=Nenhuma variável global selecionado +ErrorFieldMustBeANumeric=O campo %s deve ser um valor numérico +ErrorMandatoryParametersNotProvided=Parâmetro (s) de preenchimento obrigatório não fornecidas +ErrorOppStatusRequiredIfAmount=Você define um valor estimado para esse lead. Então você também deve inserir seu status. +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Má definição da matriz Menu No Módulo Descritor (mau valor para fk_menu chave) +ErrorWarehouseRequiredIntoShipmentLine=É exigido um armazém na linha para a remessa +ErrorFilenameCantStartWithDot=O nome do arquivo não pode começar com com caracteres especiais +ErrorSupplierCountryIsNotDefined=País para este fornecedor não está definido. Corrija isso primeiro. +ErrorsThirdpartyMerge=Falha em mesclar os dois registros. Solicitação cancelada. +ErrorModuleNotFound=O arquivo do módulo não foi encontrado. +ErrorObjectMustHaveStatusDraftToBeValidated=O objeto %s deve ter status 'Rascunho' para ser validado. +ErrorObjectMustHaveLinesToBeValidated=O objeto %s deve ter linhas a serem validadas. +ErrorFileNotFoundWithSharedLink=Arquivo não encontrado. Pode ser que a chave do compartilhamento tenha sido modificada ou o arquivo tenha sido removido recentemente. +ErrorDuringChartLoad=Erro ao carregar o plano de contas. Se algumas contas não foram carregadas, você ainda pode inseri-las manualmente. +ErrorBadSyntaxForParamKeyForContent=Má sintaxe para o parâmetro keyforcontent . Deve ter um valor começando com %s ou %s +ErrorVariableKeyForContentMustBeSet=Erro, a constante com nome %s (com conteúdo de texto para mostrar) ou %s (com URL externo para mostrar) deve ser definida. +ErrorURLMustStartWithHttp=O URL %s deve começar com http:// ou https:// +ErrorNewRefIsAlreadyUsed=Erro, a nova referência já está sendo usada +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Erro, não é possível excluir o pagamento vinculado a uma fatura fechada. +ErrorSearchCriteriaTooSmall=Critérios de pesquisa insuficientes. +ErrorObjectMustHaveStatusActiveToBeDisabled=Os objetos devem ter o status 'Ativo' para serem desativados +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Os objetos devem ter o status 'Rascunho' ou 'Desativado' para serem ativados +ErrorNoFieldWithAttributeShowoncombobox=Nenhum campo possui a propriedade 'show combo box' na definição do objeto '%s'. Não há como mostrar a lista de combinação. +ErrorFieldRequiredForProduct=O campo '%s' é obrigatório para o produto %s +ProblemIsInSetupOfTerminal=Problema na configuração do terminal %s. +ErrorAddAtLeastOneLineFirst=Adicione pelo menos uma linha primeiro +ErrorRecordAlreadyInAccountingDeletionNotPossible=Erro, o registro já foi transferido na contabilidade, a exclusão não é possível. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Erro, o idioma é obrigatório se você definir a página como tradução de outro. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Erro, o idioma da página traduzida é o mesmo que este. +ErrorBatchNoFoundForProductInWarehouse=Nenhum lote / série encontrado para o produto "%s" no armazém "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Quantidade insuficiente para este lote / série para o produto "%s" "no armazém"%s ". +ErrorOnlyOneFieldForGroupByIsPossible=Apenas 1 campo para o 'Agrupar por' é possível (outros são descartados) +ErrorReplaceStringEmpty=Erro, a cadeia de caracteres para substituir está vazia +ErrorPublicInterfaceNotEnabled=A interface pública não foi ativada +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Seu parâmetro PHP upload_max_filesize (%s) é maior que o parâmetro PHP post_max_size (%s). Esta não é uma configuração consistente. +WarningPasswordSetWithNoAccount=A senha foi definida para esse membro. No entanto, nenhuma conta de usuário foi criada. Portanto, esta senha é armazenada, mas não pode ser usado para acessar Dolibarr. Ele pode ser usado por um módulo / interface externa, mas se você não precisa definir qualquer login nem palavra-passe para um membro, você pode desabilitar a opção "Gerenciar um login para cada membro" da configuração do módulo-Membro. Se você precisa para gerenciar um login, mas não precisa de qualquer senha, você pode manter este campo em branco para evitar este aviso. Nota: E-mail pode também ser utilizado como uma entre o membro se está ligado a um utilizador. +WarningEnableYourModulesApplications=Clique aqui para ativar seus módulos e aplicativos +WarningSafeModeOnCheckExecDir=Atenção, a opção PHP safe_mode está em modo de comando devem ser armazenados dentro de um diretório declarado pelo php parâmetro safe_mode_exec_dir. +WarningBookmarkAlreadyExists=já existe um marcador com este título o esta URL. +WarningPassIsEmpty=Atenção: a senha da base de dados está vazia. Esto é buraco na segurança. deve agregar uma senha e a sua base de dados e alterar a sua Arquivo conf.php para reflejar esto. +WarningConfFileMustBeReadOnly=Atenção, o seu arquivo de configuração (htdocs / conf / conf.php) pode ser substituído pelo servidor web. Esta é uma falha de segurança grave. Modificar permissões em arquivos para estar no modo de somente leitura para usuário do sistema operacional utilizado pelo servidor web. Se você usa o formato Windows e FAT para o seu disco, você deve saber que este sistema de arquivos não permite adicionar permissões em arquivos, por isso não pode ser completamente seguro. +WarningsOnXLines=Advertências sobre registro de origem% s (s) +WarningLockFileDoesNotExists=Atenção, assim que a configuração estiver concluída, você deve desativar as ferramentas de instalação/migração adicionando um arquivo install.lock no diretório %s. Omitir a criação desse arquivo é um grave risco de segurança. +WarningCloseAlways=Atenção, o fechamento é feito mesmo se o valor difere entre elementos de origem e de destino. Ative esse recurso com cautela. +WarningUsingThisBoxSlowDown=Atenção, utilizando esta caixa de abrandar a sério todas as páginas que mostram a caixa. +WarningClickToDialUserSetupNotComplete=Configuração de informações ClickToDial para o usuário não são completas (ver guia ClickToDial no seu cartão de usuário). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Função desabilitada quando a tela e optimizada para uso das pessoas cegas ou navegadores de texto. +WarningPaymentDateLowerThanInvoiceDate=A data de pagamento (%s) é anterior a data (%s) da fatura %s. +WarningTooManyDataPleaseUseMoreFilters=Dados em demasia (mais de %s linhas). Por favor, utilize mais filtros ou defina a constante %s para um limite maior. +WarningSomeLinesWithNullHourlyRate=Algumas vezes foram registrados por alguns usuários enquanto sua taxa por hora não foi definida. Um valor de 0 %s por hora foi usado, mas isto pode resultar em uma valoração errada do tempo gasto. +WarningYourLoginWasModifiedPleaseLogin=O seu login foi modificado. Por questões de segurança, você terá de autenticar-se com o seu novo login antes da próxima ação. +WarningProjectClosed=O projeto está fechado. Você deve reabri-lo primeiro. +WarningSomeBankTransactionByChequeWereRemovedAfter=Algumas transações bancárias foram removidas após geração do recebimento, incluindo elas. Portanto, o número de cheques e o total de recebimento podem diferir do número e do total na lista. +RequireValidValue =Valor não é válido +RequireValidEmail =o endereço de email não é válido +RequireValidUrl =Requer URL válido +RequireValidDate =Requer uma data válida diff --git a/htdocs/langs/pt_MZ/eventorganization.lang b/htdocs/langs/pt_MZ/eventorganization.lang new file mode 100644 index 00000000000..7fe968ff823 --- /dev/null +++ b/htdocs/langs/pt_MZ/eventorganization.lang @@ -0,0 +1,8 @@ +# Dolibarr language file - Source file is en_US - eventorganization +ModuleEventOrganizationName =Organização do Evento +EventOrganizationDescription =Organização do Evento atraves do modulo Projetos +EventOrganizationMenuLeft =Eventos organizados +EventOrganizationSetup=Configuracao de Organização do Evento +Settings=Configurações +EventOrganizationSetupPage =Organização do Eventos pagina de configuracao +EvntOrgDraft =Minuta diff --git a/htdocs/langs/pt_MZ/help.lang b/htdocs/langs/pt_MZ/help.lang new file mode 100644 index 00000000000..3f5625ca3bf --- /dev/null +++ b/htdocs/langs/pt_MZ/help.lang @@ -0,0 +1,13 @@ +# Dolibarr language file - Source file is en_US - help +CommunitySupport=Fórum/Wiki suporte +EMailSupport=E-mails de suporte +RemoteControlSupport=Suporte online em tempo real/remoto +OtherSupport=Outros suportes +ToSeeListOfAvailableRessources=Entrar em contato com/consulte os recursos disponíveis: +HelpCenter=Central de ajuda +NeedHelpCenter=PRecisa de ajuda ou suporte? +Efficiency=eficiência +TypeHelpOnly=Somente ajuda +TypeHelpDev=Ajuda+Desenvolvimento +PossibleLanguages=Os idiomas suportados +SeeOfficalSupport=Para obter suporte oficial do Dolibarr no seu idioma:
    %s diff --git a/htdocs/langs/pt_MZ/holiday.lang b/htdocs/langs/pt_MZ/holiday.lang new file mode 100644 index 00000000000..0172efdcddd --- /dev/null +++ b/htdocs/langs/pt_MZ/holiday.lang @@ -0,0 +1,7 @@ +# Dolibarr language file - Source file is en_US - holiday +HRM=RH +DateFinCP=Data de término +DraftCP=Minuta +DeleteCP=Excluir +UserCP=Usuário +ActionByCP=Modificado por diff --git a/htdocs/langs/pt_MZ/hrm.lang b/htdocs/langs/pt_MZ/hrm.lang new file mode 100644 index 00000000000..4e5f4aef5c8 --- /dev/null +++ b/htdocs/langs/pt_MZ/hrm.lang @@ -0,0 +1,8 @@ +# Dolibarr language file - Source file is en_US - hrm +HRM_EMAIL_EXTERNAL_SERVICE=E-mail para evitar HRM serviço externo +Establishments=Estabelecimentos +DeleteEstablishment=Excluir estabelecimento +ConfirmDeleteEstablishment=Tem certeza de que deseja excluir este estabelecimento? +DictionaryFunction=RH - Cargos +HrmSetup=Configuração do módulo RH +ValidateEvaluation=Validar avaliação diff --git a/htdocs/langs/pt_MZ/interventions.lang b/htdocs/langs/pt_MZ/interventions.lang new file mode 100644 index 00000000000..b9ec79fa37e --- /dev/null +++ b/htdocs/langs/pt_MZ/interventions.lang @@ -0,0 +1,53 @@ +# Dolibarr language file - Source file is en_US - interventions +InterventionCard=Ficha de Intervenção +NewIntervention=Nova Intervenção +AddIntervention=Criar Intervenção +ChangeIntoRepeatableIntervention=Mudança para intervenção repetível +ActionsOnFicheInter=Açoes na intervençao +InterventionContact=Contato Intervenção +ValidateIntervention=Confirmar Intervenção +ModifyIntervention=Modificar intervençao +ConfirmDeleteIntervention=Você tem certeza que deseja excluir esta intervenção? +ConfirmValidateIntervention=Você tem certeza que deseja validar esta intervenção sob o nome %s? +ConfirmModifyIntervention=Você tem certeza que deseja modificar esta intervenção? +ConfirmDeleteInterventionLine=Você tem certeza que deseja excluir esta linha de intervenção? +ConfirmCloneIntervention=Você tem certeza que deseja clonar esta intervenção? +NameAndSignatureOfInternalContact=Nome e Assinatura do Participante: +NameAndSignatureOfExternalContact=Nome e Assinatura do Cliente : +InterventionClassifyBilled=Classificar "Faturado" +InterventionClassifyUnBilled=Classificar "à faturar" +InterventionClassifyDone=Classificar "Feito" +StatusInterInvoiced=Faturado +SendInterventionRef=Apresentação de intervenção %s +SendInterventionByMail=Envio da intervenção por e-mail +InterventionModifiedInDolibarr=Intervenção %s alterada +InterventionClassifiedBilledInDolibarr=Intervenção %s classificada como Faturada +InterventionClassifiedUnbilledInDolibarr=Intervenção %s definida como à faturar +InterventionSentByEMail=Intervenção %s enviada por e-mail +InterventionDeletedInDolibarr=Intervenção %s excluída +InterventionsArea=Área intervenções +DraftFichinter=Rascunho de intervenções +FichinterToProcess=Intermediações para processar +TypeContact_fichinter_external_CUSTOMER=Contato do cliente do seguimento da intervenção +PrintProductsOnFichinter=Imprima também linhas do tipo "produto" (e não apenas serviços) na ficha de intervenção +PrintProductsOnFichinterDetails=intervenções gerados a partir de ordens +UseServicesDurationOnFichinter=duração de uso de serviços para intervenções geradas a partir de ordens +UseDurationOnFichinter=Esconde o campo de duração para os registros de intermediações +UseDateWithoutHourOnFichinter=Oculta horas e minutos fora do campo de data para registros de intermediação +InterventionStatistics=Estatística de intervenções +NbOfinterventions=Nº. de cartões de intervenção +NumberOfInterventionsByMonth=Nº. de cartões de intervenção por mês (data de validação) +AmountOfInteventionNotIncludedByDefault=A quantidade de intervenção não é incluída por padrão no lucro (na maioria dos casos, as planilhas de tempo são usadas para contar o tempo gasto). Adicione a opção PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT para 1 em home-setup-other para incluí-los. +InterId=ID de intervenção +InterRef=Intervenção ref. +InterDateCreation=Intervenção data de criação +InterDuration=Duração intervenção +InterStatus=Status de intervenção +InterLine=Linha de intervenção +InterLineId=Linha id de intervenção +InterLineDate=Linha da data de intervenção +InterLineDuration=Linha de duração de intervenção +InterLineDesc=Linha de descrição de intervenção +RepeatableIntervention=Modelo de intervenção +ToCreateAPredefinedIntervention=Para criar uma intervenção predefinida ou recorrente, crie uma intervenção comum e converta-a em modelo de intervenção +ConfirmReopenIntervention=Deseja abrir novamente a intervenção %s ? diff --git a/htdocs/langs/pt_MZ/languages.lang b/htdocs/langs/pt_MZ/languages.lang new file mode 100644 index 00000000000..b46ba01daa1 --- /dev/null +++ b/htdocs/langs/pt_MZ/languages.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - languages +Language_lo_LA=Laos diff --git a/htdocs/langs/pt_MZ/ldap.lang b/htdocs/langs/pt_MZ/ldap.lang new file mode 100644 index 00000000000..4b752dc483c --- /dev/null +++ b/htdocs/langs/pt_MZ/ldap.lang @@ -0,0 +1,13 @@ +# Dolibarr language file - Source file is en_US - ldap +YouMustChangePassNextLogon=A senha de %s ao domínio %s deve de ser modificada. +UserMustChangePassNextLogon=O usuário deve alterar de senha na próxima login +LDAPInformationsForThisContact=Informação da base de dados LDAP deste contato +LDAPInformationsForThisUser=Informação da base de dados LDAP deste usuário +LDAPInformationsForThisMemberType=Informação no banco de dados LDAP para esse tipo de membro +LDAPUsers=Usuário na base de dados LDAP +LDAPFieldFirstSubscriptionAmount=Valor da Primeira Adesão +LDAPFieldLastSubscriptionDate=Data da última adesão +LDAPFieldLastSubscriptionAmount=Valor da última adesão +UserSynchronized=Usuário Sincronizado +ErrorFailedToReadLDAP=Erro na leitura do anuário LDAP. Verificar a configuração do módulo LDAP e a acessibilidade do anuário. +PasswordOfUserInLDAP=Senha do usuário no LDAP diff --git a/htdocs/langs/pt_MZ/link.lang b/htdocs/langs/pt_MZ/link.lang new file mode 100644 index 00000000000..f86a13d83c3 --- /dev/null +++ b/htdocs/langs/pt_MZ/link.lang @@ -0,0 +1,10 @@ +# Dolibarr language file - Source file is en_US - link +LinkANewFile=Vincular um novo arquivo/documento +LinkedFiles=Arquivos vinculados e documentos +NoLinkFound=Não há links registrados +LinkComplete=O arquivo foi associada com sucesso +ErrorFileNotLinked=O arquivo não pôde ser vinculado +LinkRemoved=A ligação %s foi removida +ErrorFailedToDeleteLink=Falha ao remover link '%s' +ErrorFailedToUpdateLink=Falha ao atualizar link '%s' +URLToLink=URL para link diff --git a/htdocs/langs/pt_MZ/loan.lang b/htdocs/langs/pt_MZ/loan.lang new file mode 100644 index 00000000000..678a6abbcec --- /dev/null +++ b/htdocs/langs/pt_MZ/loan.lang @@ -0,0 +1,20 @@ +# Dolibarr language file - Source file is en_US - loan +NewLoan=Novo empréstimo +ShowLoan=Mostrar empréstimo +PaymentLoan=Pagamento de empréstimo +LoanPayment=Pagamento de empréstimo +ShowLoanPayment=Mostrar pagamento de empréstimo +Interest=Juro +Term=Prazo +LoanAccountancyCapitalCode=Capital contabilístico +LoanAccountancyInsuranceCode=Seguro contabilístico +LoanAccountancyInterestCode=Interesse contabilístico +ConfirmDeleteLoan=Confirme a exclusão deste empréstimo +LoanDeleted=Empréstimo excluído com sucesso +ConfirmPayLoan=Confirmar este empréstimo como pago +LoanPaid=Empréstimo pago +ListLoanAssociatedProject=Lista de empréstimos associados ao projeto +InterestAmount=Juro +CapitalRemain=Capital permanecem +TermPaidAllreadyPaid =Este termo já está pago +CantModifyInterestIfScheduleIsUsed =Você não pode alterar o interesse se usar o programador diff --git a/htdocs/langs/pt_MZ/mailmanspip.lang b/htdocs/langs/pt_MZ/mailmanspip.lang new file mode 100644 index 00000000000..9e0a707c3eb --- /dev/null +++ b/htdocs/langs/pt_MZ/mailmanspip.lang @@ -0,0 +1,24 @@ +# Dolibarr language file - Source file is en_US - mailmanspip +MailmanSpipSetup=Configuração do módulo Mailman e SPIP +MailmanTitle=Sistema de envio em massa Mailman +TestSubscribe=Para testar a inscriçao nas listas Mailman +TestUnSubscribe=Para testa a desenscriçao das listas do Mailman +MailmanCreationSuccess=O teste da assinatura foi realizado com sucesso +MailmanDeletionSuccess=O teste de cancelamento da assinatura foi realizado com sucesso +SynchroMailManEnabled=O Mailman sera atualizado +SynchroSpipEnabled=O SPIP sera atualizado +DescADHERENT_MAILMAN_URL=URL para inscriçoes Mailman +DescADHERENT_MAILMAN_UNSUB_URL=URL para desenscriçoes Mailman +DescADHERENT_MAILMAN_LISTS=Lista(s) para inscriçao automatica de novos membros (separado por virgula) +SPIPTitle=Gerenciamento do conteudo do sistema SPIP +DescADHERENT_SPIP_DB=Nome do banco de dados SPIP +DescADHERENT_SPIP_USER=Login do banco de dados SPIP +DescADHERENT_SPIP_PASS=Senha do banco de dados SPIP +AddIntoSpip=Adicionar no SPIP +AddIntoSpipConfirmation=Tem certeza que quer adicionar este membro no SPIP ? +AddIntoSpipError=Falha em adicionar o usuario no SPIP +DeleteIntoSpipConfirmation=Tem certeza que quer remover este membro do SPIP ? +DeleteIntoSpipError=Falha no suprimir o usuario do SPIP +SPIPConnectionFailed=Falha na conexao com o SPIP +SuccessToAddToMailmanList=%s foi adicionado com sucesso à lista de e-mails %s ou ao banco de dados SPIP +SuccessToRemoveToMailmanList=%s foi removido com sucesso da lista de e-mails %s ou do banco de dados SPIP diff --git a/htdocs/langs/pt_MZ/mails.lang b/htdocs/langs/pt_MZ/mails.lang new file mode 100644 index 00000000000..6971a32e3a9 --- /dev/null +++ b/htdocs/langs/pt_MZ/mails.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - mails +MailRecipient=Destinatário +MailingStatusDraft=Minuta +MailingStatusValidated=Validada diff --git a/htdocs/langs/pt_MZ/main.lang b/htdocs/langs/pt_MZ/main.lang index 2e691473326..60e6ab46245 100644 --- a/htdocs/langs/pt_MZ/main.lang +++ b/htdocs/langs/pt_MZ/main.lang @@ -2,20 +2,576 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 -SeparatorDecimal=. -SeparatorThousand=, -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +SeparatorDecimal=, +SeparatorThousand=Space +FormatDateShort=%d/%m/%Y +FormatDateShortInput=%d/%m/%Y +FormatDateShortJava=dd/MM/yyyy +FormatDateShortJavaInput=dd/MM/yyyy +FormatDateShortJQuery=dd/mm/yy +FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p -FormatDateHourTextShort=%b %d, %Y, %I:%M %p -FormatDateHourText=%B %d, %Y, %I:%M %p +FormatDateHourShort=%d/%m/%Y %I:%M %p +FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p +FormatDateHourTextShort=%d %b, %Y, %I:%M %p +FormatDateHourText=%d %B, %Y, %I:%M %p +DatabaseConnection=Login à Base de Dados +NoTemplateDefined=Nenhum modelo disponível para este tipo de email +CurrentTimeZone=Timezone PHP (do servidor apache) +EmptySearchString=Digite critérios na pesquisa +NoRecordFound=Nenhum registro encontrado +NoRecordDeleted=Nenhum registro foi deletado +NotEnoughDataYet=Sem dados suficientes +NoError=Sem erro +ErrorFieldFormat=O campo '%s' tem um valor incorreto +ErrorFileDoesNotExists=O arquivo %s não existe +ErrorFailedToOpenFile=Houve uma falha ao abrir o arquivo %s +ErrorCanNotCreateDir=Não é possível criar a pasta %s +ErrorCanNotReadDir=Não é possível ler a pasta %s +ErrorLogoFileNotFound=O arquivo logo '%s' não se encontra +ErrorGoToGlobalSetup=Vai ao 'Empresa/Oragnisacao' configuracao para resolver isto +ErrorFailedToSendMail=Erro ao envio do e-mail (emissor +ErrorFileNotUploaded=O arquivo não foi possível transferir +ErrorWrongHostParameter=Parâmetro Servidor inválido +ErrorYourCountryIsNotDefined=Seu país não está definido. Vá para Home-Setup-Edit e poste o formulário novamente. +ErrorRecordIsUsedByChild=Falha ao excluir este registro. Esse registro é usado por pelo menos um registro filho. +ErrorWrongValue=Valor incorreto +ErrorWrongValueForParameterX=Valor incorreto para o parâmetro %s +ErrorServiceUnavailableTryLater=Serviço não disponível no momento. Tente mais tarde. +ErrorSomeErrorWereFoundRollbackIsDone=Alguns erros foram encontrados. As alterações foram revertidas. +ErrorConfigParameterNotDefined=Parametro %s nao está definidio no arquivo config conf.php do Dolibarr. +ErrorCantLoadUserFromDolibarrDatabase=Impossível encontrar o usuário %s na base de dados do Dolibarr. +ErrorNoVATRateDefinedForSellerCountry=Erro, nenhum tipo de IVM definido para o país '%s'. +ErrorNoSocialContributionForSellerCountry=Erro, nenhum tipo de imposto social / fiscal definidos para o país '%s'. +ErrorFailedToSaveFile=Erro, o registo do arquivo falhou. +ErrorCannotAddThisParentWarehouse=Voce está tentando adicionar um armazém pai, o qual ja é um filho do armazém existente +FieldCannotBeNegative=O campo "%s" não pode ser negativo +MaxNbOfRecordPerPage=Número máx de registros por página +NotAuthorized=Você não está autorizado a fazer isso. +SelectDate=Selecionar uma data +SeeAlso=Ver tambem %s +SeeHere=veja aqui +ClickHere=Clickque aqui +BackgroundColorByDefault=Cor do fundo padrão +FileRenamed=O arquivo foi renomeado com sucesso +FileGenerated=O arquivo foi gerado com sucesso +FileSaved=O arquivo foi salvo com sucesso +FileUploaded=O arquivo foi carregado com sucesso +FileTransferComplete=Arquivo (s) carregado (s) com sucesso +FilesDeleted=Arquivo (s) removido (s) com sucesso +FileWasNotUploaded=O arquivo foi selecionado, mas nao foi ainda enviado. Clique no "Anexar arquivo" para proceder. +NbOfEntries=N°. de entradas +GoToWikiHelpPage=Ler a ajuda online (necessário acesso a Internet) +GoToHelpPage=Consulte a ajuda (pode necessitar de acesso à internet) +DedicatedPageAvailable=Página de ajuda dedicada, relacionada à tela atual +HomePage=Pagina inicial +RecordDeleted=Registro apagado +RecordGenerated=Registro gerado +LevelOfFeature=Nível de funções +DolibarrInHttpAuthenticationSoPasswordUseless=Modo de autenticação do Dolibarr está definido como %s no arquivo de configuraçãoconf.php.
    Isso significa que o banco de dados das senhas é externo ao Dolibarr, assim mudar este campo, pode não ter efeito. +PasswordForgotten=Esqueceu a senha? +NoAccount=Sem conta? +SeeAbove=Mencionar anteriormente +HomeArea=Inicio +ConnectedOnMultiCompany=Conectado no ambiente +AuthenticationMode=Modo de Autenticação +RequestedUrl=URL solicitada +DatabaseTypeManager=Tipo de gerente de base de dados +RequestLastAccessInError=Últimos erros de acesso ao banco de dados +ReturnCodeLastAccessInError=Código de retorno do último erro de acesso ao banco de dados +InformationLastAccessInError=Informação do último erro de acesso ao banco de dados +YouCanSetOptionDolibarrMainProdToZero=Você pode ler o arquivo de log ou definir a opção $ dolibarr_main_prod como '0' no seu arquivo de configuração para obter mais informações. +LineID=ID da linha +PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a precisão dos preços unitários a %s Decimais. +NoFilter=Nenhum filtro +WarningYouHaveAtLeastOneTaskLate=Atenção. Voce tem no mínimo um elemento que excedeu o tempo de tolerancia +no=não +Home=Inicio +OnlineHelp=Ajuda online +PageWiki=Pagina wiki +MediaBrowser=Navegador de mídia +PeriodEndDate=Data final periodo +Activate=Ativar +Activated=Ativado +Closed=Encerrado +Closed2=Encerrado +Enabled=Ativado +Disable=Desativar +Disabled=Desativado +AddLink=Adicionar link +RemoveLink=Remover o link +Update=Modificar +CloseAs=Configurar status para +CloseBox=Remover o widget do seu painel de controle +ConfirmSendCardByMail=Você realmente deseja enviar o conteúdo deste cartão por e-mail para %s ? +Delete=Excluir +Remove=Retirar +Resiliate=Concluir +Validate=Confirmar +ToValidate=A Confirmar +SaveAs=Guardar como +SaveAndStay=Salvar e permanecer +SaveAndNew=Salvar e novo +TestConnection=Teste a login +ToClone=Cópiar +ConfirmClone=Selecione os dados que você quer clonar: +NoCloneOptionsSpecified=Não existem dados definidos para copiar +Go=Ir +Run=Attivo +Show=Ver +Hide=ocultar +ShowCardHere=Mostrar cartão +SearchMenuShortCut=Ctrl + Shift + F +QuickAdd=Adição rápida +SelectAll=Selecionar tudo +Resize=Modificar tamanho +ResizeOrCrop=Redimensionar ou cortar +Recenter=Recolocar no centro +User=Usuário +Users=Usuário +NoUserGroupDefined=Nenhum grupo definido pelo usuário +PasswordRetype=Repetir Senha +NoteSomeFeaturesAreDisabled=Antenção, só poucos módulos/funcionalidade foram ativados nesta demo +NameSlashCompany=Nome / Companhia +PersonalValue=Valor Personalizado +OldValue=Valor antigo %s +CurrentValue=Valor atual +MultiLanguage=Multi Idioma +RefOrLabel=Ref. da etiqueta +DescriptionOfLine=Descrição da Linha +Model=Modelo de Documento +DefaultModel=Modelo de documento padrão +Action=Ação +About=Acerca de +Limit=Límite +Logout=Sair +NoLogoutProcessWithAuthMode=No recurso de desconexão aplicativo com modo de autenticação +Setup=Conf. +HourStart=Comece hora +Deadline=Prazo final +DateAndHour=Data e hora +DateEnd=Data de término +DateCreation=Data criação +DateCreationShort=Data Criação +IPCreation=Endereço IP da criação +DateModification=Data Modificação +DateModificationShort=Data Modif. +IPModification=Endereço IP da modificação +DateLastModification=Última data de modificação +DateValidation=Data Validação +DateSigning=Data de assinatura +DateDue=Data Vencimento +DateValue=Data Valor +DateValueShort=Data Valor +DateOperation=Data Operação +DateOperationShort=Data Op. +DateLimit=Data Límite +DateRequest=Data Consulta +DateProcess=Data Processo +RegistrationDate=Data de registro +UserCreation=Criado por +UserModification=Alterado por +UserValidation=Usuario validado +UserCreationShort=Criado por +UserModificationShort=Modif. por +UserValidationShort=Usuarios validados +DurationDay=Día +Day=Día +days=Dias +Weeks=Semandas +Morning=Manha +Quadri=Trimistre +Rate=Rata +CurrencyRate=Taxa de conversão moeda +UseLocalTax=Incluindo taxa +UserModif=Modificado por +Default=Padrao +DefaultValue=Valor por default +DefaultValues=Valores / filtros / classificação padrão +UnitPrice=Preço Unit. +UnitPriceHT=Preço Unit. (liq.) +UnitPriceHTCurrency=Preço unitário (sem) (Moeda) +UnitPriceTTC=Preço Unit. Total +PriceU=Preço Unit. +PriceUHT=Preço Unit. +PriceUTTC=U.P. (inc. Impostos) +Amount=Valor +AmountInvoice=Valor Fatura +AmountInvoiced=Valor faturado +AmountInvoicedHT=Valor faturado (sem imposto) +AmountPayment=Valor Pagamento +AmountHTShort=Quantidade (liq.) +AmountTTCShort=Valor (incl. taxas) +AmountHT=Valor (sem impostos) +AmountTTC=Valor +AmountVAT=Valor IVA +MulticurrencyAlreadyPaid=Já paga, moeda original +MulticurrencyRemainderToPay=Permanecer para pagar, moeda original +MulticurrencyAmountHT=Valor (sem impostos) moeda original +MulticurrencyAmountTTC=Quantia (com as taxas), na moeda original +MulticurrencyAmountVAT=Valor das taxas, na moeda original +AmountLT1=Valor taxa 2 +AmountLT2=Valor taxa 3 +AmountLT1ES=Valor RE +AmountLT2ES=Valor IRPF +AmountTotal=Valor Total +AmountAverage=Valor médio +PriceQtyMinHT=Quantidade de preço min. (sem imposto) +PriceQtyMinHTCurrency=Quantidade de preço min. (sem imposto) (moeda) +TotalHTShort=Total (liq.) +TotalHT100Short=Total 100%% (liq.) +TotalHTShortCurrency=Total (excluindo em moeda) +TotalTTCShort=Total (incl. taxas) +TotalHT=Total (sem imposto) +TotalHTforthispage=Total (sem imposto) para esta página +TotalTTC=Total +TotalTTCToYourCredit=Total a crédito +TotalVATIN=IGST total +TotalLT1=Total taxa 2 +TotalLT2=Total taxa 3 +HT=Sem imposto +TTC=IVA Incluido +INCVATONLY=Com IVA +INCT=Inc. todos os impostos +VATs=Impostos sobre vendas +VATINs=Impostos IGST +LT1Type=Tipo de imposto sobre vendas 2 +LT2Type=Tipo de imposto sobre vendas 3 +VATRate=Taxa de IVA +VATCode=Codigo do IVA +VATNPR=Valor taxa NPR +DefaultTaxRate=Taxa de imposto padrão +RemainToPay=Permanecer para pagar +Module=Modulo/Aplicacao +Modules=Módulos / Aplicações +Filters=Filtros +OtherStatistics=Outras estatisticas +Favorite=Favorito +RefSupplier=Ref. fornecedor +RefPayment=Ref. Pagamento +Comment=Comentario +Comments=Comentarios +ActionsToDo=Ações a realizar +ActionsToDoShort=Para fazer +ActionNotApplicable=Não aplicavel +ActionRunningNotStarted=A Iniciar +ActionUncomplete=Incompleto +LatestLinkedEvents=Últimos eventos vinculados %s +CompanyFoundation=Empresa / Organização +Accountant=Contador +ContactsForCompany=Contatos desta empresa +ContactsAddressesForCompany=Contatos/Endereços do Cliente ou Fornecedor +AddressesForCompany=Endereços para este terceiro +ActionsOnCompany=Eventos para o terceiro +ActionsOnContact=Eventos para este contato/Endereço +ActionsOnContract=Eventos para este contrato +ActionsOnMember=Eventos deste membro +ActionsOnProduct=Eventos deste produto +ToDo=Para fazer +RequestAlreadyDone=Pedido ja registrado +FilterOnInto=Critério da pesquisa '%s' nos campos %s +RemoveFilter=Eliminar filtro +GeneratedOn=Gerado a %s +DolibarrStateBoard=Estatísticas do banco de dados +DolibarrWorkBoard=Itens abertos +NoOpenedElementToProcess=Nenhum elemento aberto para processar +Available=Disponivel +NotYetAvailable=Ainda não disponível +NotAvailable=Não disponível +Categories=Tags / categorias +Category=Tag / categoria +to=para +To=para +ToDate=para +ToLocation=para +Other=Outros +OtherInformations=Outra informação +ApprovedBy2=Aprovado pelo (segunda aprovação) +Draft=Minuta +Validated=Validada +OpenAll=Abertos(todos) +ClosedAll=Fechados(Todos) +Unknown=Versão Desconhecida +Received=Recebida +ByCompanies=Por Fornecedor +ByUsers=Pelo usuário +NoneF=Nenhum +LateDesc=Um item é definido como atrasado de acordo com a configuração do sistema no menu Início - Configuração - Alertas. +DeletePicture=Apagar foto +ConfirmDeletePicture=Confirmar eliminação de fotografias +LoginEmail=Usuario (e-mail) +LoginOrEmail=Usuraio ou E-mail +CurrentLogin=Login atual +EnterLoginDetail=Digite os detalhes do login +May=Mai +Month05=Mai +MonthShort02=Fev +MonthShort04=Abr +MonthShort05=Mai +MonthShort08=Ago +MonthShort09=Set +MonthShort10=Out +MonthShort12=Dez +AttachedFiles=Arquivos e Documentos Anexos +JoinMainDoc=Junte-se ao documento principal +ReportPeriod=Periodo de Análise +Fill=Preencher +Reset=Resetar +File=Arquivo +Files=Arquivos +AmountInCurrency=Valores Apresentados em %s +NbOfThirdParties=Numero de Fornecedores +NbOfObjects=Numero de Objetos +Referers=Itens correlatos +Uncheck=Desmarque +Entities=Entidadees +CustomerPreview=Historico Cliente +SupplierPreview=Visualização do fornecedor +ShowCustomerPreview=Ver Historico Cliente +SeeAll=Ver tudo +SendByMail=Envio por e-mail +MailSentBy=Mail enviado por +Email=E-mail +NotRead=Não lido +NoMobilePhone=Sem celular +Refresh=Atualizar +BackToList=Mostar Lista +BackToTree=Voltar à árvore +CanBeModifiedIfOk=Pode modificarse se é valido +CanBeModifiedIfKo=Pode modificarse senão é valido +ValueIsValid=Valor é válido +ValueIsNotValid=Valor inválido +RecordCreatedSuccessfully=Registro criado com sucesso +RecordsModified=%sregistros modificados +RecordsDeleted=%sregistros deletados +RecordsGenerated=%sregistros gerados +FeatureDisabled=Função Desativada +MoveBox=Widget de movimento +NotEnoughPermissions=Não tem permissões para esta ação +Receive=Recepção +CompleteOrNoMoreReceptionExpected=Completo nada mais a fazer +ExpectedQty=Quantidade prevista +YouCanChangeValuesForThisListFromDictionarySetup=Você pode alterar valores para esta lista no menu Configuração - Dicionários +YouCanChangeValuesForThisListFrom=Você pode alterar valores para esta lista no menu %s +YouCanSetDefaultValueInModuleSetup=Você pode definir o valor padrão usado ao criar um novo registro na configuração do módulo +UploadDisabled=Carregamento Desativada +MenuTaxesAndSpecialExpenses=Impostos | Despesas especiais +ThisLimitIsDefinedInSetup=Límite Dolibarr (menu inicio-configuração-segurança): %s Kb, PHP limit: %s Kb +NoFileFound=Nenhum documento carregado +CurrentTheme=Tema atual +CurrentMenuManager=Administração do menu atual +Screen=Tela +DisabledModules=Módulos desativados +HidePassword=Mostrar comando com senha oculta +UnHidePassword=Mostrar comando real com a senha visivel +RootOfMedias=Raiz das mídias públicas (/ media) +AddFile=Adicionar arquivo +FreeZone=Produto de texto livre +FreeLineOfType=Item de texto livre, digite: +CloneMainAttributes=Clonar o objeto com estes atributos +ReGeneratePDF=Re-gerar PDF +PDFMerge=Fusão de PDF +Merge=Fusão +PrintContentArea=Mostrar pagina a se imprimir na area principal +MenuManager=Administração do menu +WarningYouAreInMaintenanceMode=Aviso, voce está em modo manutenção> Só login %s é permitido usar a app neste modo. +CoreErrorMessage=Desculpe, ocorreu um erro. Entre em contato com o administrador do sistema para verificar os registros ou desative $ dolibarr_main_prod = 1 para obter mais informações. +CreditCard=Cartão de credito +CreditOrDebitCard=Cartao de credito ou debito +FieldsWithAreMandatory=Campos com %s são obrigatorios +FieldsWithIsForPublic=Os campos com %s são exibidos na lista pública de membros. Se você não quiser isso, desmarque a caixa "pública". +NotSupported=Não suportado +RequiredField=Campo obrigatorio +ValidateBefore=O item deve ser validado antes de usar este recurso +Visibility=Visível +TotalizableDesc=Este campo é totalizável na lista +Hidden=Escondido +Resources=Resorsas +IPAddress=endereco IP +Frequency=Frequencia +IM=Mensagems instantaneas +AttributeCode=Codigo do atributo +URLPhoto=URL da photo/logo +SetLinkToAnotherThirdParty=Atalho para outro terceiro +LinkTo=Link para +LinkToProposal=Link para a proposta +LinkToOrder=Linque para o pedido +LinkToInvoice=Link para a fatura +LinkToTemplateInvoice=Link para fatura modelo +LinkToSupplierOrder=Link para Ordem de compra +LinkToSupplierInvoice=Link para a fatura do fornecedor +LinkToContract=Link para o Contrato +LinkToIntervention=Link para a Intervensão +SetToDraft=Voltar para modo rascunho +ClickToRefresh=Clique para atualizar +EditWithEditor=Editar com o CKEditor +EditHTMLSource=Editar fonte HTML +ObjectDeleted=Objeto %s apagado +ByTown=Por cidade +ByMonthYear=Por mes/ano +ByYear=Por ano +ByMonth=Por mes +ByDay=Por día +BySalesRepresentative=Por vendedor representante +LinkedToSpecificUsers=Conectado com um contato particular do usuario +AdminTools=Ferramentas de administração +ModulesSystemTools=Ferramentas de modulos +NoPhotoYet=Sem fotos disponiveis no momento +Dashboard=Painel de Controle +MyDashboard=Meu painel +Deductible=Deduzivel +from=de +toward=para +SelectAction=Selecionar ação +SelectTargetUser=Selecione o usuário / funcionário de destino +HelpCopyToClipboard=Use Ctrl+C para copiar para o clipboard +SaveUploadedFileWithMask=Salvar arquivo no servidor com nome "%s" (alternativamente "%s") +OriginFileName=Nome original do arquivo +SetDemandReason=Escolher fonte +SetBankAccount=Definir conta bancaria +ViewPrivateNote=Ver anotaçoes +XMoreLines=%s linha(s) escondidas +ShowMoreLines=Mostrar mais / menos linhas +PublicUrl=URL pública +AddBox=Adicionar caixa +PrintFile=Imprimir arquivo %s +ShowTransaction=Mostrar entrada na conta bancária +ShowIntervention=Mostrar intervençao +GoIntoSetupToChangeLogo=Vá para Home - Setup - Company para alterar o logotipo ou vá para Home - Setup - Display para ocultar. +Denied=Negado +Gender=Gênero +Genderman=Masculino +Genderwoman=Feminino +Genderother=Outros +ViewList=Exibição de lista +ViewGantt=Visualização Gantt +ViewKanban=Visualização Kanban +GoodBye=Tchau +Sincerely=Sinceramente +ConfirmDeleteObject=Tem certeza de que deseja excluir este objeto? +DeleteLine=Apagar linha +ConfirmDeleteLine=Você tem certeza que deseja excluir esta linha? +ErrorPDFTkOutputFileNotFound=Erro: o arquivo não foi gerado. Verifique se o comando 'pdftk' está instalado em um diretório incluído na variável de ambiente $ PATH (somente linux / unix) ou entre em contato com o administrador do sistema. +NoPDFAvailableForDocGenAmongChecked=Nenhum PDF estava disponível para a geração de documentos entre os registros verificados +TooManyRecordForMassAction=Registros demais selecionados para ação em massa. A ação é restrita a uma lista de registros %s. +NoRecordSelected=Nenhum registro selecionado +MassFilesArea=Área para os arquivos gerados pelas ações em massa +ShowTempMassFilesArea=Exibir área dos arquivos gerados pelas ações em massa +ConfirmMassDeletion=Confirmação exclusão em massa +ConfirmMassDeletionQuestion=Tem certeza que voce quer excluir %s registros selecionados +RelatedObjects=Objetos Relacionados +ClassifyBilled=Classificar Faturado +ClassifyUnbilled=Classificar nao faturado +FrontOffice=Frente do escritório +BackOffice=Fundo do escritório +View=Visão +Exports=Exportações +IncludeDocsAlreadyExported=Incluir documentos já exportados +ExportOfPiecesAlreadyExportedIsEnable=A exportação de peças já exportadas está habilitada +ExportOfPiecesAlreadyExportedIsDisable=A exportação de peças já exportadas está desabilitada +AllExportedMovementsWereRecordedAsExported=Todos as movimentações exportadas foram salvos como exportadas +NotAllExportedMovementsCouldBeRecordedAsExported=Nem todos as movimentações exportadas puderam ser salvas como exportadas +Miscellaneous=Variados +Calendar=Calendário +GroupBy=Agrupar por +ViewFlatList=Visão da lista resumida +RemoveString=Remover string '%s' +DirectDownloadLink=Link de download público +DirectDownloadInternalLink=Link privado para baixar +Download=Baixar +DownloadDocument=Descarregar documento +ActualizeCurrency=Atualizar taxa de câmbio +Fiscalyear=Ano fiscal +ModuleBuilder=Módulo e Application Builder +ClickToShowHelp=Clique para mostrar ajuda de ajuda +WebSiteAccounts=Conta do website +TitleSetToDraft=Volte para o rascunho +ConfirmSetToDraft=Tem certeza de que deseja voltar ao status de rascunho? +FileNotShared=Arquivo não compartilhado para público externo +LeadOrProject=Lead | Projeto +LeadsOrProjects=Leads | Projetos +Lead=Conduzir +Leads=Conduz +ListOpenLeads=Listar leads abertos +ListOpenProjects=Listar projetos abertos +NewLeadOrProject=Novo lead ou projeto +LineNb=Sem Linha. +IncotermLabel=Termos Internacionais de Comércio +TabLetteringCustomer=Rotulação do cliente +TabLetteringSupplier=Rotulação de fornecedor +Saturday=Sabado +SaturdayMin=Sab +Day6=Sabado +thirteen=treze +SetRef=Escolher referência +Select2ResultFoundUseArrows=Alguns resultados encontrados. Use as setas para selecionar. +Select2Enter=Forneça +Select2MoreCharactersMore= Sintaxe de pesquisa:
    | OU (a | b)
    * Qualquer caractere (a * b)
    ^ Começa com (^ ab)
    $ Terminar com (ab $)
    +Select2LoadingMoreResults=Carregando mais resultados... +Select2SearchInProgress=Busca em andamento... +SearchIntoContacts=Contatos +SearchIntoUsers=Usuários +SearchIntoBatch=Lotes / Seriais +SearchIntoMO=Ordens de fabricação +SearchIntoCustomerInvoices=Faturas de clientes +SearchIntoSupplierInvoices=Faturas de fornecedores +SearchIntoCustomerOrders=Pedido de Venda +SearchIntoSupplierOrders=Pedidos de compra +SearchIntoSupplierProposals=Propostas de fornecedores +SearchIntoContracts=Contratos +SearchIntoCustomerShipments=Remessas do cliente +SearchIntoVendorPayments=Pagamentos do fornecedor +CommentLink=Comentarios +CommentPage=Espaço para comentarios +CommentDeleted=Comentário deletado +Everybody=A todos +PayedBy=Pago por +PayedTo=Paga para +Monthly=Por mês +Remote=Controlo remoto +Deletedraft=Excluir rascunho +ConfirmMassDraftDeletion=Confirmação de exclusão de massa de esboço +SelectAThirdPartyFirst=Selecione um terceiro primeiro ... +YouAreCurrentlyInSandboxMode=No momento você está no %s modo "caixa de areia" +AnalyticCode=Código analitico +ShowCompanyInfos=Mostrar informações da empresa +ShowMoreInfos=Mostrar mais informações +NoFilesUploadedYet=Por favor, carregue um doc. primeiro +SeePrivateNote=Veja avisos privados +PaymentInformation=Informações de Pagamento +ValidFrom=Válido de +NoRecordedUsers=Sem Usuários +ToClose=Para Fechar +ToProcess=A processar +ToApprove=Para Aprovar +GlobalOpenedElemView=Visão Global +NoArticlesFoundForTheKeyword=Sem artigos encontrados para o termo '%s' +NoArticlesFoundForTheCategory=Sem artigos encontrados para a categoria +ToAcceptRefuse=Para Aceitar | Recusar +ContactDefault_agenda=Ação +ContactDefault_commande=Pedido +ContactDefault_invoice_supplier=Fatura do Fornecedor +ContactDefault_order_supplier=Ordem de Compra +ContactDefault_propal=Proposta +ContactDefault_supplier_proposal=Proposta do Fornecedor +ContactAddedAutomatically=Contato adicionado a partir de informações de terceiros +StatisticsOn=Estatísticas sobre +SelectYourGraphOptionsFirst=Selecione suas opções para criar um gráfico +StatusOfRefMustBe=O status de %s deve ser %s +DeleteFileHeader=Confirmar exclusão de arquivo +DeleteFileText=Deseja realmente excluir este arquivo? +SwitchInEditModeToAddTranslation=Alterne modo de edição para adicionar traduções para este idioma +NotUsedForThisCustomer=Não usado para este cliente +AmountMustBePositive=O valor deve ser positivo +ByStatus=Por status +Used=Usado +ASAP=O mais breve possível +CREATEInDolibarr=Registro %s criado +DateOfBirth=Data de nascimento +OnHold=Em espera +ClientTZ=Fuso Horário do cliente (usuário) +Terminate=Concluir diff --git a/htdocs/langs/pt_MZ/margins.lang b/htdocs/langs/pt_MZ/margins.lang new file mode 100644 index 00000000000..36c8bb59d1d --- /dev/null +++ b/htdocs/langs/pt_MZ/margins.lang @@ -0,0 +1,26 @@ +# Dolibarr language file - Source file is en_US - margins +MarginRate=Relação margem-preço de compra +MarkRate=Relação margem-preço de venda +DisplayMarginRates=Exibir relações margem-preço de compra +DisplayMarkRates=Exibir relações margem-preço de venda +InputPrice=Preço de entrada +margesSetup=Configuração das margens de lucro +ProductMargins=Margens de produtos +CustomerMargins=Margems de clientes +SalesRepresentativeMargins=Tolerância aos representante de vendas +ContactOfInvoice=Contato da fatura +UserMargins=Margens do usuário +ProductService=Produto ou serviço +ForceBuyingPriceIfNull=Compra Força preço / custo para o preço de venda se não definido +MARGIN_METHODE_FOR_DISCOUNT=Metodologia de margem para descontos globais +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Define se um desconto global e tratado como o produto, serviço, ou somente sob o sub-total na margem. +MARGIN_TYPE=Compra / Preço de custo sugerido por padrão para cálculo da margem de +MargeType2=Margem sobre o Preço Médio Ponderado (PMP) +MargeType3=Margem sobre o preço de custo +MarginTypeDesc=*Margem sobre o melhor preço de compra = Preço de venda - Melhor preço de fornecedor definido no cartão do produto
    *Margem no Preço Médio Ponderado (WAP) = Preço de Venda - Preço Médio Ponderado pelo Produto (WAP) ou melhor preço de fornecedor se o WAP ainda não estiver definido
    *Margem no preço de custo = preço de venda - preço de custo definido no cartão do produto ou WAP se o preço de custo não estiver definido ou o melhor preço do fornecedor se o WAP ainda não estiver definido +AgentContactType=Tipo contato do agente comercial +AgentContactTypeDetails=Defina qual tipo de contato (vinculado nas faturas) será usado para o relatório de margem por contato / endereço. Observe que a leitura das estatísticas de um contato não é confiável, pois na maioria dos casos o contato pode não ser definido explicitamente nas faturas. +rateMustBeNumeric=Rata deve ser um valor numerico +markRateShouldBeLesserThan100=Rata marcada teria que ser menor do que 100 +ShowMarginInfos=Mostrar informações sobre margens +CheckMargins=Detalhes das margens diff --git a/htdocs/langs/pt_MZ/members.lang b/htdocs/langs/pt_MZ/members.lang new file mode 100644 index 00000000000..c99cfc77e20 --- /dev/null +++ b/htdocs/langs/pt_MZ/members.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - members +MemberStatusDraft=Rascunho (precisa ser validada) +MemberStatusDraftShort=Minuta +MemberStatusActiveShort=Validada +MemberStatusNoSubscriptionShort=Validada diff --git a/htdocs/langs/pt_MZ/modulebuilder.lang b/htdocs/langs/pt_MZ/modulebuilder.lang new file mode 100644 index 00000000000..d49ff08f6ab --- /dev/null +++ b/htdocs/langs/pt_MZ/modulebuilder.lang @@ -0,0 +1,57 @@ +# Dolibarr language file - Source file is en_US - modulebuilder +ModuleBuilderDesc2=Caminho onde os módulos são gerados/editados (primeiro diretório para módulos externos definidos em %s): %s +ModuleBuilderDesc3=Módulos gerados / editáveis ​​encontrados: %s +ModuleBuilderDescmenus=Esta guia é dedicada a definir as entradas do menu fornecidas pelo seu módulo. +ModuleBuilderDescpermissions=Essa guia é dedicada para definir as novas permissões que você deseja fornecer com seu módulo. +ModuleBuilderDesctriggers=Esta é a visão dos gatilhos fornecidos pelo seu módulo. Para incluir o código executado quando um evento de negócios acionado é iniciado, basta editar esse arquivo. +ModuleBuilderDeschooks=Esta aba é dedicada aos ganchos. +ModuleBuilderDescwidgets=Esta aba é dedicada a gerenciar / construir widgets. +ModuleBuilderDescbuildpackage=Você pode gerar aqui um arquivo de pacote "pronto para distribuir" (um arquivo .zip normalizado) do seu módulo e um arquivo de documentação "pronto para distribuir". Basta clicar no botão para criar o pacote ou arquivo de documentação. +EnterNameOfModuleToDeleteDesc=Você pode excluir seu módulo. AVISO: Todos os arquivos de codificação do módulo (gerados ou criados manualmente) e dados estruturados e documentação serão apagados! +EnterNameOfObjectToDeleteDesc=Você pode excluir um objeto. AVISO: Todos os arquivos de codificação (gerados ou criados manualmente) relacionados ao objeto serão excluídos! +BuildDocumentation=Documentação de compilação +ModuleIsLive=Este módulo foi ativado. Qualquer alteração pode interromper um recurso atual ao vivo. +DescriptionLong=Longa descrição +DescriptorFile=Arquivo descritor do módulo +ApiClassFile=Arquivo para classe API do PHP +PageForList=Página PHP para lista de registro +PageForCreateEditView=Página PHP para criar / editar / visualizar um registro +PathToModulePackage=Caminho para o zip do pacote de módulo / aplicativo +PathToModuleDocumentation=Caminho para o arquivo da documentação do módulo/aplicativo (%s) +FileNotYetGenerated=Arquivo ainda não gerado +RegenerateClassAndSql=Forçar atualização de arquivos .class e .sql +SpecificationFile=Arquivo de documentação +ObjectProperties=Propriedades do Objeto +DatabaseIndex=Índice do banco de dados +CSSFile=Arquivo CSS +JSFile=Arquivo JavaScript +PageForLib=Arquivo para a biblioteca comum do PHP +PageForObjLib=Arquivo para a biblioteca PHP dedicada ao objeto +SqlFileKeyExtraFields=Arquivo SQL para chaves de atributos complementares +ListOfDictionariesEntries=Lista de entradas dos dicionários +DisplayOnPdf=Exibir em PDF +MenusDefDesc=Defina aqui os menus fornecidos pelo seu módulo +DictionariesDefDesc=Defina aqui os dicionários fornecidos pelo seu módulo +PermissionsDefDesc=Defina aqui as novas permissões fornecidas pelo seu módulo +PermissionsDefDescTooltip=As permissões fornecidas pelo seu módulo/aplicativo são definidas no array $this-> rights no arquivo descritor do módulo. Você pode editar manualmente este arquivo ou usar o editor incorporado.

    Nota: Uma vez definida (e módulo reativado), as permissões são visíveis na configuração de permissões padrão %s. +AddLanguageFile=Adicionar arquivo de idioma +ContentOfREADMECustomized=Nota: O conteúdo do arquivo README.md foi substituído pelo valor específico definido na instalação do ModuleBuilder. +ContentCantBeEmpty=O conteúdo do arquivo não pode estar vazio +WidgetDesc=Você pode gerar e editar aqui os widgets que serão incorporados ao seu módulo. +CSSDesc=Você pode gerar e editar aqui um arquivo com CSS personalizado incorporado ao seu módulo. +JSDesc=Você pode gerar e editar aqui um arquivo com Javascript personalizado incorporado ao seu módulo. +CLIDesc=Você pode gerar aqui alguns scripts de linha de comando que você deseja fornecer com seu módulo. +CLIFile=Arquivo CLI +NoCLIFile=Nenhum arquivo CLI +UseSpecificEditorName =Use um nome de editor específico +UseSpecificEditorURL =Use um URL de editor específico +UseSpecificFamily =Use uma família específica +UseSpecificAuthor =Use um autor específico +UseSpecificVersion =Use uma versão inicial específica +IncludeDocGenerationHelp=Se você marcar isto, um código será gerado para adicionar uma caixa "Gerar documento" ao registro. +ShowOnCombobox=Mostrar valor na caixa de combinação +KeyForTooltip=Chave para dica de ferramenta +NotEditable=Não editável +ForeignKey=Chave estrangeira +AsciiToHtmlConverter=Converter ASCII para HTML +AsciiToPdfConverter=Converter ASCII para PDF diff --git a/htdocs/langs/pt_MZ/mrp.lang b/htdocs/langs/pt_MZ/mrp.lang new file mode 100644 index 00000000000..97de1e2827e --- /dev/null +++ b/htdocs/langs/pt_MZ/mrp.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - mrp +Mrp=Ordens de fabricação +ListOfManufacturingOrders=Ordens de fabricação +MenuMRP=Ordens de fabricação +DeleteWorkstation=Excluir diff --git a/htdocs/langs/pt_MZ/multicurrency.lang b/htdocs/langs/pt_MZ/multicurrency.lang new file mode 100644 index 00000000000..b5dc54f3023 --- /dev/null +++ b/htdocs/langs/pt_MZ/multicurrency.lang @@ -0,0 +1,16 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi Moeda +ErrorDeleteCurrencyFail=Erro ao excluir falha +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use a data do documento para encontrar a taxa de câmbio, em vez de usar a taxa conhecida mais recente +multicurrency_useOriginTx=Quando um objeto é criado a partir de outro, mantenha a taxa original do objeto de origem (caso contrário, use a taxa conhecida mais recente) +CurrencyLayerAccount=API CurrencyLayer +CurrencyLayerAccount_help_to_synchronize=Você deve criar uma conta no site %s para usar essa funcionalidade.
    Obtenha sua chave de API.
    Se você usar uma conta gratuita, não poderá alterar a moeda de origem (USD por padrão).
    Se sua moeda principal não for USD, o aplicativo irá recalcular automaticamente.

    Você está limitado a 1000 sincronizações por mês. +multicurrency_appId=Chave API +multicurrency_appCurrencySource=Moeda de origem +multicurrency_alternateCurrencySource=Moeda de origem alternativa +CurrenciesUsed=Moedas utilizadas +CurrenciesUsed_help_to_add=Adicione as diferentes moedas e taxas que você precisa usar nas suas propostas , ordens etc. +MulticurrencyReceived=Moeda original recebida +MulticurrencyRemainderToTake=Quantia restante, moeda original +MulticurrencyPaymentAmount=Valor do pagamento, moeda original +AmountToOthercurrency=Quantia para (na moeda da conta receptora) diff --git a/htdocs/langs/pt_MZ/oauth.lang b/htdocs/langs/pt_MZ/oauth.lang new file mode 100644 index 00000000000..27fbaa19d68 --- /dev/null +++ b/htdocs/langs/pt_MZ/oauth.lang @@ -0,0 +1,22 @@ +# Dolibarr language file - Source file is en_US - oauth +ConfigOAuth=Configuração do OAuth +OAuthServices=Serviços OAuth +ManualTokenGeneration=Geração manual do token +TokenManager=Gerenciador de tokens +IsTokenGenerated=O token está gerado? +NoAccessToken=Nenhum token de acesso guardado na base de dados local +HasAccessToken=Um token foi gerado e salvo no banco de dados local +NewTokenStored=Token recebido e salvo +ToCheckDeleteTokenOnProvider=Clique aqui para verificar/apagar autorização salva pelo provedor OAuth %s +TokenDeleted=Token excluído +DeleteAccess=Clique aqui para apagar o token +UseTheFollowingUrlAsRedirectURI=Use o URL a seguir como o URI de redirecionamento ao criar suas credenciais com seu provedor OAuth: +SeePreviousTab=Ver aba anterior +OAuthIDSecret=Identificação OAuth e Senha +TOKEN_REFRESH=Token Atualizar Presente +TOKEN_EXPIRED=Token vencido +TOKEN_EXPIRE_AT=Token expira no +TOKEN_DELETE=Excluir token salvo +OAUTH_GOOGLE_NAME=Serviço do Google OAuth +OAUTH_GITHUB_NAME=Serviço OAuth GitHub +OAUTH_GITHUB_SECRET=OAuth GitHub secreto diff --git a/htdocs/langs/pt_MZ/opensurvey.lang b/htdocs/langs/pt_MZ/opensurvey.lang new file mode 100644 index 00000000000..6b191a5b82f --- /dev/null +++ b/htdocs/langs/pt_MZ/opensurvey.lang @@ -0,0 +1,48 @@ +# Dolibarr language file - Source file is en_US - opensurvey +Survey=Enquete +Surveys=Enquetes +OrganizeYourMeetingEasily=Organize suas reuniões e pesquisas facilmente. Primeiro selecione o tipo de pesquisa ... +NewSurvey=Nova enquete +OpenSurveyArea=Área de enquetes +AddACommentForPoll=Você pode adicionar um comentário na enquete... +CreatePoll=Criar uma enquete +PollTitle=Titulo da enquete +ToReceiveEMailForEachVote=Receba um e-mail a cada novo voto +TypeDate=Modelo para datas +TypeClassic=Modelo padrão +RemoveAllDays=Remova todos os dias +CopyHoursOfFirstDay=Copiar horários do primeiro dia +RemoveAllHours=Apagar todos os horários +TheBestChoice=A melhor escolha no momento é +TheBestChoices=As melhores escolhas no momento são +OpenSurveyHowTo=Se você quiser votar nesta enquete, você tem que preencher o seu nome, escolha as opções que se encaixam melhor para você e confirme com o botão de mais no final da linha. +ConfirmRemovalOfPoll=Você tem certeza que deseja remover esta enquete (e todos os votos) +RemovePoll=Remover enquete +UrlForSurvey=URL para obter um acesso direto à pesquisa +PollOnChoice=Você está criando uma enquete e se quiser ainda pode optar por votos multi escolhas em cada item. Basta entrar com o tipo de resposta para o voto: +CreateSurveyDate=Criar uma enquete para datas +CreateSurveyStandard=Criar uma enquete padrão +CheckBox=Caixa de resposta simples +YesNoList=Escolher (nulo/sim/não) +PourContreList=Escolher (nulo/a favor/contra) +TitleChoice=Escolha a resposta +ExportSpreadsheet=Exportar resultado para planilha +ExpireDate=Data Límite +NbOfSurveys=Número de enquetes +SurveyResults=Resultado +PollAdminDesc=Você está autorizado a alterar todas as linhas da votação desta enquete, com o botão "Editar". Você pode, também remover uma coluna ou uma linha com o %s. Você também pode adicionar uma nova coluna com o %s. +YouAreInivitedToVote=Você foi convidado para votar nesta enquete +VoteNameAlreadyExists=Este nome já foi usada na enquete +AddEndHour=Adicionar hora final +votes=voto(s) +NoCommentYet=Nenhum comentário foi publicado para este voto ainda +CanComment=Os eleitores podem comentar na enquete +CanSeeOthersVote=Os eleitores podem ver os votos de outras pessoas +SelectDayDesc=Para cada dia selecionado, você pode escolher, ou não, as horas de reunião no seguinte formato:
    - vazio
    - "8h", "8H" ou "8:00" para dar a hora de início de uma reunião,
    - "8-11", "8h-11h", "8H-11H" ou "8: 00-11: 00" para dar as horas de início e fim de uma reunião,
    - "8h15-11h15", "8H15-11H15" ou "8: 15-11: 15" para a mesma coisa, mas com minutos. +ErrorOpenSurveyFillFirstSection=Você não preencheu o primeiro passo para criação da enquete +ErrorOpenSurveyOneChoice=Digite pelo menos uma opção +ErrorInsertingComment=Houve um erro ao inserir o seu comentário +MoreChoices=Digite mais opções para os votos +SurveyExpiredInfo=A enquete foi encerrada ou o período de votação expirou. +EmailSomeoneVoted=%s preencheu uma linha.\nVocê pode encontrar sua enquete no link:\n%s +ShowSurvey=Mostrar pesquisa diff --git a/htdocs/langs/pt_MZ/orders.lang b/htdocs/langs/pt_MZ/orders.lang new file mode 100644 index 00000000000..3b78910a81d --- /dev/null +++ b/htdocs/langs/pt_MZ/orders.lang @@ -0,0 +1,22 @@ +# Dolibarr language file - Source file is en_US - orders +Order=Pedido +PdfOrderTitle=Pedido +Orders=Pedidos +SuppliersOrders=Pedidos de compra +CustomersOrders=Pedidos de venda +StatusOrderDraftShort=Minuta +StatusOrderValidatedShort=Validada +StatusOrderSentShort=Em andamento +StatusOrderToProcessShort=A processar +StatusOrderDraft=Rascunho (precisa ser validada) +TypeContact_commande_external_BILLING=Contato de fatura de cliente +TypeContact_commande_external_SHIPPING=Contato de envio de cliente +TypeContact_order_supplier_external_BILLING=Contato da fatura do fornecedor +TypeContact_order_supplier_external_SHIPPING=Contato de remessa do fornecedor +OrderByEMail=E-mail +StatusSupplierOrderDraftShort=Minuta +StatusSupplierOrderValidatedShort=Validada +StatusSupplierOrderSentShort=Em andamento +StatusSupplierOrderToProcessShort=A processar +StatusSupplierOrderDraft=Rascunho (precisa ser validada) +StatusSupplierOrderValidated=Validada diff --git a/htdocs/langs/pt_MZ/other.lang b/htdocs/langs/pt_MZ/other.lang new file mode 100644 index 00000000000..7b033fc78de --- /dev/null +++ b/htdocs/langs/pt_MZ/other.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - other +Notify_BILL_VALIDATE=Fatura de cliente confirmada +SeeModuleSetup=Veja configuração do módulo %s diff --git a/htdocs/langs/pt_MZ/partnership.lang b/htdocs/langs/pt_MZ/partnership.lang new file mode 100644 index 00000000000..75e97db9d39 --- /dev/null +++ b/htdocs/langs/pt_MZ/partnership.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - partnership +Partnership=Parceria +DatePartnershipEnd=Data de término diff --git a/htdocs/langs/pt_MZ/paybox.lang b/htdocs/langs/pt_MZ/paybox.lang new file mode 100644 index 00000000000..6ca0e914a67 --- /dev/null +++ b/htdocs/langs/pt_MZ/paybox.lang @@ -0,0 +1,23 @@ +# Dolibarr language file - Source file is en_US - paybox +PayBoxSetup=Configuração do módulo PayBox +PayBoxDesc=Este módulo oferece uma página de pagamento atravé do fornecedor %s para que o pagamento seja criado automaticamente quando validado pelo Paybox. +YourPaymentHasBeenRecorded=Esta pagina confirma que o seu pagamento foi registrado com suçesso. Obrigado. +YourPaymentHasNotBeenRecorded=Seu pagamento NÃO foi registrado e a transação foi cancelada. Obrigado. +AccountParameter=Parametros da conta +UsageParameter=Parametros de uso +InformationToFindParameters=Ajuda a buscar suas %s informaçoes da conta +PAYBOX_CGI_URL_V2=URL do Paybox CGI modulo para pagamento +CSSUrlForPaymentForm=CSS style sheet URL para modelo de pagamento +NewPayboxPaymentReceived=Novo pagamento recebido Paybox +NewPayboxPaymentFailed=Novo pagamento Paybox tentou, mas não conseguiu +PAYBOX_PAYONLINE_SENDEMAIL=Aviso por e-mail depois de uma tentativa de pagamento (sucesso ou falha) +PAYBOX_PBX_IDENTIFIANT=Valor para PBX ID +PAYBOX_HMAC_KEY=Chave HMAC diff --git a/htdocs/langs/pt_MZ/paypal.lang b/htdocs/langs/pt_MZ/paypal.lang new file mode 100644 index 00000000000..8f57a572bdb --- /dev/null +++ b/htdocs/langs/pt_MZ/paypal.lang @@ -0,0 +1,29 @@ +# Dolibarr language file - Source file is en_US - paypal +PaypalSetup=Configuração do módulo PayPal +PaypalDesc=Este módulo permite o pagamento por clientes via PayPal. Isso pode ser usado para um pagamento ad-hoc ou para um pagamento relacionado a um objeto Dolibarr (fatura, pedido, ...) +PaypalOrCBDoPayment=Pague com PayPal (cartão ou PayPal) +PAYPAL_API_SANDBOX=Modo teste/caixa de areia +PAYPAL_API_USER=API usuario +PAYPAL_API_PASSWORD=API senha +PAYPAL_API_SIGNATURE=API assinatura +PAYPAL_SSLVERSION=Versão do SSL do cURL +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferta de pagamento "integral" (cartão de crédito + PayPal) ou apenas "PayPal" +PaypalModeIntegral=Integralmente +PaypalModeOnlyPaypal=PayPal apenas +ThisIsTransactionId=Eis o id da transação: %s +PAYPAL_ADD_PAYMENT_URL=Inclua o URL de pagamento do PayPal quando enviar um documento por e-mail +NewOnlinePaymentFailed=Foi tentado novo pagamento online, mas sem hêxito +ONLINE_PAYMENT_SENDEMAIL=Endereço de e-mail para notificações após cada tentativa de pagamento (para sucesso e falha) +ReturnURLAfterPayment=Retornar ao URL após o pagamento +ValidationOfOnlinePaymentFailed=A validação do pagamento online falhou +PaymentSystemConfirmPaymentPageWasCalledButFailed=A página de confirmação de pagamento, que foi chamada pelo sistema de pagamento, retornou um erro +SetExpressCheckoutAPICallFailed=Falha ao chamar a API: SetExpressCheckout. +DoExpressCheckoutPaymentAPICallFailed=Falha ao chamar a API: DoExpressCheckoutPayment. +DetailedErrorMessage=Mensagem de erro detalhada +ShortErrorMessage=Mensagem curta de erro +ErrorCode=Código do erro +ErrorSeverityCode=Erro grave de código +PaypalLiveEnabled=Modo "ao vivo" do PayPal ativado (caso contrário, modo teste/sandbox) +PostActionAfterPayment=Poste as ações após os pagamentos +CardOwner=Titular do cartão +PayPalBalance=Crédito Paypal diff --git a/htdocs/langs/pt_MZ/productbatch.lang b/htdocs/langs/pt_MZ/productbatch.lang new file mode 100644 index 00000000000..04732b11ece --- /dev/null +++ b/htdocs/langs/pt_MZ/productbatch.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - productbatch +ManageLotSerial=Use lote / número de série +ProductStatusOnBatch=Sim (lote obrigatório) +ProductStatusOnSerial=Sim (número de série exclusivo necessário) +ProductStatusNotOnBatch=Não (lote / série não utilizado) +ProductStatusOnBatchShort=Lot. +Batch=Lote / Série +atleast1batchfield=Compra prazo de validade ou data de venda ou Lote / Número de série +batch_number=Lote / Número de série +BatchNumberShort=Lote / Serial +EatByDate=Compra-por data +DetailBatchNumber=Detalhes Lote / Serial +printBatch=Lote / Serial: %s +printEatby=Compra-por: %s +printSellby=Venda-por: %s +printQty=Qtde: %d +AddDispatchBatchLine=Adicione uma linha para Shelf Life expedição +WhenProductBatchModuleOnOptionAreForced=Quando o módulo Lote / Série está ativado, a redução automática de estoque é forçada a 'Diminuir estoques reais na validação do envio' e o modo de aumento automático é forçado a 'Aumentar estoques reais no despacho manual em depósitos' e não pode ser editado. Outras opções podem ser definidas como você deseja. +ProductDoesNotUseBatchSerial=Este produto não utiliza Lote / número de série +ProductLotSetup=Configuração do módulo lote/nº de série +ShowCurrentStockOfLot=Exibir o estoque atual para o produto/lote +ShowLogOfMovementIfLot=Exibir o registro de movimentações para o produto/lote +SerialNumberAlreadyInUse=O número de série %s já é usado para o produto %s +TooManyQtyForSerialNumber=Você só pode ter um produto %s para o número de série %s +ManageLotMask=Máscara personalizada +CustomMasks=Opção para definir uma máscara de numeração diferente para cada produto +BatchLotNumberingModules=Regra de numeração para geração automática de número de lote +BatchSerialNumberingModules=Regra de numeração para geração automática de número de série (para produtos com propriedade 1 lote/série único para cada produto) +QtyToAddAfterBarcodeScan=Qtde para %s cada código de barras/lote/série escaneado +LifeTime=Tempo de vida (em dias) +EndOfLife=Fim de vida +ManufacturingDate=Data de fabricação +DestructionDate=Data de destruição +FirstUseDate=Data do primeiro uso +QCFrequency=Frequência do controle de qualidade (em dias) +ShowAllLots=Mostrar todos os lotes +HideLots=Ocultar lotes +OutOfOrder=Fora de serviço +InWorkingOrder=Em funcionamento +ToReplace=Substituir diff --git a/htdocs/langs/pt_MZ/projects.lang b/htdocs/langs/pt_MZ/projects.lang new file mode 100644 index 00000000000..065ddf804d6 --- /dev/null +++ b/htdocs/langs/pt_MZ/projects.lang @@ -0,0 +1,10 @@ +# Dolibarr language file - Source file is en_US - projects +SharedProject=A todos +TaskTimeUser=Usuário +ProjectModifiedInDolibarr=Projeto %s modificado +LinkToElementShort=Link para +ProjectReferers=Itens correlatos +OppStatusPROPO=Proposta +OppStatusPENDING=Pedente +NewInter=Nova Intervenção +StartDateCannotBeAfterEndDate=A data final não pode ser anterior a data de início diff --git a/htdocs/langs/pt_MZ/propal.lang b/htdocs/langs/pt_MZ/propal.lang new file mode 100644 index 00000000000..78f3a623073 --- /dev/null +++ b/htdocs/langs/pt_MZ/propal.lang @@ -0,0 +1,8 @@ +# Dolibarr language file - Source file is en_US - propal +ProposalShort=Proposta +ProposalsDraft=Minutas de orçamentos +PdfCommercialProposalTitle=Proposta +LastModifiedProposals=Últimas %s propostas modificadas +PropalStatusDraft=Rascunho (precisa ser validada) +PropalStatusDraftShort=Minuta +TypeContact_propal_external_BILLING=Contato de fatura de cliente diff --git a/htdocs/langs/pt_MZ/receptions.lang b/htdocs/langs/pt_MZ/receptions.lang new file mode 100644 index 00000000000..4e6be9a7c76 --- /dev/null +++ b/htdocs/langs/pt_MZ/receptions.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - receptions +Receptions=Recebimentos +StatusReceptionDraft=Minuta +StatusReceptionDraftShort=Minuta +StatusReceptionValidatedShort=Validada diff --git a/htdocs/langs/pt_MZ/recruitment.lang b/htdocs/langs/pt_MZ/recruitment.lang new file mode 100644 index 00000000000..028099855bb --- /dev/null +++ b/htdocs/langs/pt_MZ/recruitment.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - recruitment +About =Acerca de +PositionToBeFilled=Cargo diff --git a/htdocs/langs/pt_MZ/resource.lang b/htdocs/langs/pt_MZ/resource.lang new file mode 100644 index 00000000000..b78b36a3031 --- /dev/null +++ b/htdocs/langs/pt_MZ/resource.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - resource +MenuResourceIndex=Resorsas +DeleteResource=Remover recurso +ConfirmDeleteResourceElement=Confirmar remoção do recurso para este elemento +NoResourceLinked=Nenhum recurso vinculado +ResourceCard=Cartao recursos +AddResource=Criar recurso +ResourcesLinkedToElement=Recursos vinculados ao elemento +ResourceElementPage=Elemento recursos +ResourceCreatedWithSuccess=Recurso criado com sucesso +RessourceLineSuccessfullyDeleted=Linha de Recursos excluído com sucesso +RessourceLineSuccessfullyUpdated=Linha de Recursos atualizado com sucesso +ResourceLinkedWithSuccess=Recurso conectado com sucesso +ConfirmDeleteResource=Confirme para remover este recurso +RessourceSuccessfullyDeleted=Recurso removido com sucesso +DictionaryResourceType=Tipo de recurso +SelectResource=Selecionar recurso +ImportDataset_resource_1=Resorsas diff --git a/htdocs/langs/pt_MZ/salaries.lang b/htdocs/langs/pt_MZ/salaries.lang new file mode 100644 index 00000000000..880835e72d9 --- /dev/null +++ b/htdocs/langs/pt_MZ/salaries.lang @@ -0,0 +1,15 @@ +# Dolibarr language file - Source file is en_US - salaries +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta da Contabilidade padrão para pagamentos de salário +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Por padrão, deixe em branco a opção "Criar automaticamente um pagamento total" ao criar um Salário +NewSalary=Novo salário +NewSalaryPayment=Novo cartão de salário +AddSalaryPayment=Adicionar pagamento de salário +SalaryPayment=Pagamento de salário +SalariesPayments=Pagamentos de salários +SalariesPaymentsOf=Pagamentos de salários de %s +THM=Taxa média horária +TJM=Taxa média diária +THMDescription=Este valor pode ser usado para calcular o custo de tempo consumido em um projeto entrado pelos usuários se o módulo projeto for usado +TJMDescription=Este valor é usado apenas como informação e não será usado em nenhum cálculo +SalariesStatistics=Estatísticas salariais +SalariesAndPayments=Salários e pagamentos diff --git a/htdocs/langs/pt_MZ/sendings.lang b/htdocs/langs/pt_MZ/sendings.lang new file mode 100644 index 00000000000..41e4158e7fd --- /dev/null +++ b/htdocs/langs/pt_MZ/sendings.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - sendings +Sendings=Fretes +Shipments=Fretes +StatusSendingDraft=Minuta +StatusSendingDraftShort=Minuta +StatusSendingValidatedShort=Validada diff --git a/htdocs/langs/pt_MZ/sms.lang b/htdocs/langs/pt_MZ/sms.lang new file mode 100644 index 00000000000..e4c3de72851 --- /dev/null +++ b/htdocs/langs/pt_MZ/sms.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - sms +SmsStatusDraft=Minuta +SmsStatusValidated=Validada diff --git a/htdocs/langs/pt_MZ/stocks.lang b/htdocs/langs/pt_MZ/stocks.lang new file mode 100644 index 00000000000..5f85db01b15 --- /dev/null +++ b/htdocs/langs/pt_MZ/stocks.lang @@ -0,0 +1,9 @@ +# Dolibarr language file - Source file is en_US - stocks +inventorySetup =Configuração de inventário +inventoryCreatePermission=Novo inventário +inventoryReadPermission=Ver inventários +inventoryDeletePermission=Remover inventario +inventoryValidate=Validada +inventoryChangePMPPermission=Permitir alterar o valor PMP de um produto +inventoryDeleteLine=Apagar linha +InventoryStartedShort=Iniciado diff --git a/htdocs/langs/pt_MZ/supplier_proposal.lang b/htdocs/langs/pt_MZ/supplier_proposal.lang new file mode 100644 index 00000000000..db8924d7709 --- /dev/null +++ b/htdocs/langs/pt_MZ/supplier_proposal.lang @@ -0,0 +1,7 @@ +# Dolibarr language file - Source file is en_US - supplier_proposal +CommRequests=Solicitações de preço +SupplierProposals=Propostas de fornecedores +SupplierProposalsShort=Propostas de fornecedores +SupplierProposalStatusDraft=Rascunho (precisa ser validada) +SupplierProposalStatusDraftShort=Minuta +SupplierProposalStatusValidatedShort=Validada diff --git a/htdocs/langs/pt_MZ/suppliers.lang b/htdocs/langs/pt_MZ/suppliers.lang new file mode 100644 index 00000000000..5c86fba17c2 --- /dev/null +++ b/htdocs/langs/pt_MZ/suppliers.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - suppliers +Suppliers=Vendedores +SuppliersInvoice=Fatura do fornecedores +SupplierInvoices=Faturas de fornecedores +RefSupplierShort=Ref. fornecedor diff --git a/htdocs/langs/pt_MZ/ticket.lang b/htdocs/langs/pt_MZ/ticket.lang new file mode 100644 index 00000000000..b6efe07cc36 --- /dev/null +++ b/htdocs/langs/pt_MZ/ticket.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - ticket +TicketTypeShortOTHER=Outros +TicketCategoryShortOTHER=Outros +TicketSettings=Configurações +TicketAddIntervention=Criar Intervenção +Unread=Não lido diff --git a/htdocs/langs/pt_MZ/trips.lang b/htdocs/langs/pt_MZ/trips.lang new file mode 100644 index 00000000000..9d96a45df36 --- /dev/null +++ b/htdocs/langs/pt_MZ/trips.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - trips +TF_OTHER=Outros +AUTHORPAIEMENT=Pago por +DATE_SAVE=Data Validação +expenseReportOffset=Compensar diff --git a/htdocs/langs/pt_MZ/users.lang b/htdocs/langs/pt_MZ/users.lang new file mode 100644 index 00000000000..4556fbf2144 --- /dev/null +++ b/htdocs/langs/pt_MZ/users.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - users +DeleteUser=Excluir +DeleteGroup=Excluir +LastName=Sobrenome +FirstName=Primeiro nome +MenuUsersAndGroups=Usuários e Grupos diff --git a/htdocs/langs/pt_MZ/website.lang b/htdocs/langs/pt_MZ/website.lang new file mode 100644 index 00000000000..e2afc369eb2 --- /dev/null +++ b/htdocs/langs/pt_MZ/website.lang @@ -0,0 +1,87 @@ +# Dolibarr language file - Source file is en_US - website +WebsiteSetupDesc=Aqui você pode criar os sites que você deseja usar. Em seguida, vá para o menu Websites para editá-los. +DeleteWebsite=Apagar website +ConfirmDeleteWebsite=Tem certeza que deseja excluir este site? Todas as suas páginas e conteúdo também serão removidos. Os arquivos enviados (como no diretório de mídia, no módulo ECM, ...) permanecerão. +WEBSITE_PAGE_EXAMPLE=Página da Web para usar como exemplo +WEBSITE_PAGENAME=Nome da Página/Apelido +WEBSITE_ALIASALT=Nomes / alias alternativos de página +WEBSITE_CSS_URL=URL do arquivo CSS externo. +WEBSITE_HTML_HEADER=Adição na parte inferior do cabeçalho HTML (comum a todas as páginas) +WEBSITE_ROBOT=Arquivo robô (robots.txt) +WEBSITE_MANIFEST_JSON=Arquivo manifest.json do site +EnterHereLicenseInformation=Digite aqui metadados ou informações de licença para arquivar num arquivo README.md. Se você distribuir seu site como modelo, o arquivo será incluído no pacote tentado. +HtmlHeaderPage=Cabeçalho HTML (específico apenas para esta página) +PageNameAliasHelp=Nome ou alias da página.
    Esse alias também é usado para forjar uma URL de SEO quando o site é executado a partir de um host virtual de um servidor da Web (como Apacke, Nginx, ...). Use o botão %s para editar este alias. +EditTheWebSiteForACommonHeader=Nota: Se você quiser definir um cabeçalho personalizado para todas as páginas, edite o cabeçalho no nível do site em vez de na página / recipiente. +MediaFiles=Biblioteca de mídias +AddWebsite=Adicionar site +Webpage=Página WEB / container +AddPage=Adicionar página / recipiente +RequestedPageHasNoContentYet=A página solicitada com id %s ainda não possui conteúdo ou o arquivo de cache .tpl.php foi removido. Edite o conteúdo da página para resolver isso. +PageContent=Página / Contenair +PageDeleted=Página / Contenair '%s' do site %s excluído +PageAdded=Página / Contenair '%s' adicionado +ViewSiteInNewTab=Visualizar site numa nova aba +ViewPageInNewTab=Visualizar página numa nova aba +SetAsHomePage=Definir com Página Inicial +RealURL=URL real +ViewWebsiteInProduction=Visualizar website usando origem URLs +ExampleToUseInApacheVirtualHostConfig=Exemplo a ser usado na configuração do host virtual Apache: +YouCanAlsoTestWithPHPS= Usar com servidor embutido em PHP
    No ambiente de desenvolvimento, você pode preferir testar o site com o servidor da Web incorporado em PHP (o PHP 5.5 é necessário) executando o php -S 0.0. 0,0: 8080 -t %s +TestDeployOnWeb=Testar / implementar na web +PreviewSiteServedByWebServer= Visualize %s em uma nova guia.

    O %s será servido por um servidor web externo (como Apache, Nginx, IIS). Você deve instalar e configurar este servidor antes de apontar para o diretório:
    %s
    URL servido por servidor externo:
    %s +VirtualHostUrlNotDefined=URL do host virtual veiculado pelo servidor web externo não definido +NoPageYet=Ainda não há páginas +SyntaxHelp=Ajuda sobre dicas de sintaxe específicas +ClonePage=Página clone / container +CloneSite=Site Clone +SiteAdded=Site adicionado +ConfirmClonePage=Digite o código / alias da nova página e se é uma tradução da página clonada. +CreateByFetchingExternalPage=Criar página / recipiente obtendo página do URL externo ... +OrEnterPageInfoManually=Ou você pode criar uma página do zero ou de um modelo de página ... +FetchAndCreate=Procure e comece a criar +BlogPost=Postagem do blog +WebsiteAccounts=Conta do website +AddWebsiteAccount=Criar conta do site +BackToListForThirdParty=Voltar à lista de terceiros +DisableSiteFirst=Desativar o site primeiro +MyContainerTitle=Título do meu site +AnotherContainer=É assim que se inclui o conteúdo de outra página / contêiner (você pode ter um erro aqui se ativar o código dinâmico porque o subcontêiner incorporado pode não existir) +SorryWebsiteIsCurrentlyOffLine=Desculpe, este site está off-line. Volte mais tarde ... +WEBSITE_USE_WEBSITE_ACCOUNTS=Habilitar a tabela da conta do site +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Ative a tabela para armazenar contas do site (login / senha) para cada site / terceiros +YouMustDefineTheHomePage=Você deve primeiro definir a Home page padrão +OnlyEditionOfSourceForGrabbedContentFuture=Aviso: a criação de uma página da Web importando uma página da Web externa é reservada para usuários experientes. Dependendo da complexidade da página de origem, o resultado da importação pode ser diferente do original. Além disso, se a página de origem usar estilos CSS comuns ou javascript conflitante, poderá alterar a aparência ou os recursos do editor do site ao trabalhar nesta página. Esse método é uma maneira mais rápida de criar uma página, mas é recomendável criar sua nova página do zero ou de um modelo de página sugerido.
    Observe também que o editor embutido pode não funcionar corretamente quando usado em uma página externa acessada. +OnlyEditionOfSourceForGrabbedContent=Apenas uma edição de fonte HTML é possível quando o conteúdo foi extraído de um site externo +GrabImagesInto=Pegue também imagens encontradas no css e na página. +WebsiteRootOfImages=Diretório raiz para imagens do site +AliasPageAlreadyExists=Página de alias %s já existe +CorporateHomePage=Página inicial corporativa +ZipOfWebsitePackageToImport=Carregar o arquivo Zip do pacote de modelos de sites +ZipOfWebsitePackageToLoad=ou Escolha um pacote de modelo de site incorporado disponível +ThisPageIsTranslationOf=Esta página/conteúdo é traduzido de +NoWebSiteCreateOneFirst=Nenhum site foi criado ainda. Comece a criar o primeiro. +GoTo=Ir para +DynamicPHPCodeContainsAForbiddenInstruction=Você adiciona código PHP dinâmico que contém a instrução PHP %s que é proibida por padrão como conteúdo dinâmico (consulte as opções ocultas WEBSITE_PHP_ALLOW_xxx para aumentar a lista de comandos permitidos). +NotAllowedToAddDynamicContent=Você não tem permissão para adicionar ou editar conteúdo em PHP dinâmico dos sites. Solicite a permissão ou apenas mantenha o código em tags do php não modificadas. +ReplaceWebsiteContent=Pesquisar ou substituir conteúdo do site +DeleteAlsoJs=Excluir todos os arquivos javascript específicos deste site?\n +DeleteAlsoMedias=Excluir todos os arquivos de mídia específicos deste site? +MyWebsitePages=Paginas do meu site +SearchReplaceInto=Pesquisa | Substitua em +ReplaceString=Nova string +LinkAndScriptsHereAreNotLoadedInEditor=Aviso: Este conteúdo é emitido apenas quando o site é acessado de um servidor. Ele não é usado no modo de edição, portanto, se você precisar carregar arquivos javascript também no modo de edição, basta adicionar sua tag 'script src = ...' na página. +Dynamiccontent=Amostra de uma página com conteúdo dinâmico +EditInLineOnOff=O modo 'Editar em linha' é %s +ShowSubContainersOnOff=O modo de executar 'conteúdo dinâmico' é %s +GlobalCSSorJS=Arquivo global CSS / JS / Cabeçalho do site +BackToHomePage=Voltar à página inicial... +TranslationLinks=Links de tradução +UseTextBetween5And70Chars=Para boas práticas de SEO, use um texto entre 5 e 70 caracteres +MainLanguage=Idioma principal +OtherLanguages=Outras línguas +UseManifest=Forneça um arquivo manifest.json +PublicAuthorAlias=Alias ​​do autor público +AvailableLanguagesAreDefinedIntoWebsiteProperties=Os idiomas disponíveis são definidos nas propriedades do site +ReplacementDoneInXPages=Substituição feita em %s páginas ou contêineres +RSSFeedDesc=Você pode obter um feed RSS dos artigos mais recentes com o tipo 'blogpost' usando este URL diff --git a/htdocs/langs/pt_MZ/withdrawals.lang b/htdocs/langs/pt_MZ/withdrawals.lang new file mode 100644 index 00000000000..ca3dc486aa7 --- /dev/null +++ b/htdocs/langs/pt_MZ/withdrawals.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - withdrawals +StandingOrderPayment=Pedido com pagamento em Débito direto +StandingOrderToProcess=A processar +StatusPaid=Pago diff --git a/htdocs/langs/pt_MZ/workflow.lang b/htdocs/langs/pt_MZ/workflow.lang new file mode 100644 index 00000000000..abd2e8e9b4c --- /dev/null +++ b/htdocs/langs/pt_MZ/workflow.lang @@ -0,0 +1,12 @@ +# Dolibarr language file - Source file is en_US - workflow +WorkflowSetup=Configuração do módulo de Fluxo de Trabalho +ThereIsNoWorkflowToModify=Não há alterações do fluxo de trabalho disponíveis com os módulos ativados. +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma pedido de venda após a assinatura de uma proposta comercial (a nova ordem terá o mesmo valor que constar na proposta) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que um contrato é validado +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura após a conclusão do pedido (a nova fatura terá o mesmo valor que constar no pedido) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifique a proposta de origem vinculada como faturado quando a ordem do cliente é definida como faturado (e se a quantidade da ordem for igual à quantidade total de propostas vinculadas assinadas) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar a proposta de origem vinculada como faturado quando a fatura do cliente é validada (e se o valor da fatura é o mesmo que o valor total da proposta vinculada assinada) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique pedidos do cliente de origem vinculada como faturado quando a fatura do cliente for validada (e se o valor da fatura for igual ao montante total de pedidos vinculados) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique pedidos do cliente de origem vinculada como faturado quando a fatura do cliente constar o pagamento (e se o valor da fatura for igual ao montante total de pedidos vinculados) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifique pedidos do cliente de origem vinculada como enviados quando uma remessa for validada (e se a quantidade enviada por todas as remessas for o mesmo que na ordem de atualização) +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classificar a proposta do fornecedor de origem vinculada como faturado quando a fatura do fornecedor for validada (e se o valor da fatura for o mesmo que o valor total da proposta vinculada) diff --git a/htdocs/langs/pt_MZ/zapier.lang b/htdocs/langs/pt_MZ/zapier.lang new file mode 100644 index 00000000000..a1150fab1bc --- /dev/null +++ b/htdocs/langs/pt_MZ/zapier.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - zapier +ModuleZapierForDolibarrName =Zapier para Dolibarr +ModuleZapierForDolibarrDesc =Módulo Zapier para Dolibarr +ZapierForDolibarrSetup=Configurações do Zapier para Dolibarr +ZapierDescription=Interface com Zapier diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index 700e13bf5a7..b66888e673e 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Países não na CEE CountriesInEECExceptMe=Países na CEE, exceto %s CountriesExceptMe=Todos os países, exceto %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Conta contábil principal para fornecedores n MainAccountForUsersNotDefined=Principal conta contábil para usuários não definidos na configuração MainAccountForVatPaymentNotDefined=Principal conta contábil para pagamento de IVA não definida na configuração MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Área de contabilidade AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Desactivar a gravação direta de transação na conta ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Ativar exportação de rascunho em diário ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Diário de vendas -ACCOUNTING_PURCHASE_JOURNAL=Diário de compras -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diário de diversos +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatório de despesas -ACCOUNTING_SOCIAL_JOURNAL=Diário social +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Tem novo Jornal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Diário social ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Conta contabilística de espera -DONATION_ACCOUNTINGACCOUNT=Conta contabilística para registar donativos -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conta contabilística padrão para produtos vendidos (utilizada se não for definida na folha de produto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta contabilística padrão para compra de serviços (usada se não for definida na folha de serviço) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta contabilística padrão para serviços vendidos (usada se não for definida na folha de serviço) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tipo de documento Docdate=Data @@ -211,7 +217,7 @@ Codejournal=Diário JournalLabel=Journal label NumPiece=Número da peça TransactionNumShort=Núm. de transação -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=Você pode definir aqui alguns grupos de conta contábil. Eles serão usados ​​para relatórios contábeis personalizados. @@ -265,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total de volume de negócios sem impostos TotalMarge=Margem total de vendas -DescVentilCustomer=Consulte aqui a lista de linhas de faturas a clientes associados (ou não) a uma conta contabilística de produto -DescVentilMore=Na maioria dos casos, se você usar produtos ou serviços predefinidos e definir o número da conta no cartão de produto / serviço, o aplicativo poderá fazer toda a ligação entre as suas linhas de fatura e a conta contábil do seu plano de contas, apenas em um clique com o botão "%s" . Se a conta não foi definida em cartões de produtos / serviços ou se você ainda tiver algumas linhas não vinculadas a uma conta, será necessário fazer uma ligação manual no menu " %s ". -DescVentilDoneCustomer=Consulte aqui a lista das linhas de faturas a clientes e as suas contas de contabilísticas de produto -DescVentilTodoCustomer=Vincular linhas da fatura que não estejam vinculadas a uma conta contabilística de produto -ChangeAccount=Alterar a conta contabilística de produto/serviço para as linhas selecionadas com a seguinte conta contabilística: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Vincule as linhas do relatórios de despesas de não vinculados a um honorário de uma conta de contabilística DescVentilExpenseReport=Consulte aqui a lista de linhas do relatório de despesas vinculadas (ou não) a um honorário da conta contabilística @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Se você configurar uma conta contábil no tipo de l DescVentilDoneExpenseReport=Consulte aqui a lista das linhas de relatórios de despesas e os seus honorários da conta contabilística Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Vincular automaticamente AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Erro, não pode apagar esta conta contabilística porque está a ser utilizada +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balanceamento FicheVentilation=Cartão de vinculação GeneralLedgerIsWritten=As transações são escritas no Livro Razão GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações não puderam ser revistas. Se não houver outra mensagem de erro, provavelmente é porque já foram promovidas. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta contabilística +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Alterar vinculação Accounted=Contabilizado no ledger NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Operações diversas AccountingJournalType2=Vendas AccountingJournalType3=Compras AccountingJournalType4=Banco -AccountingJournalType5=Relatório de despesas +AccountingJournalType5=Relatórios de despesas AccountingJournalType8=Inventário AccountingJournalType9=Contém novo +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Este diário já está a ser utilizado AccountingAccountForSalesTaxAreDefinedInto=Nota: A conta de contabilidade para imposto sobre vendas é definida no menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Exportar o diário rascunho @@ -398,7 +407,11 @@ Calculated=Calculado Formula=Fórmula ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Confirmação de Múltiplas Eliminações ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Entradas contábeis @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Atenção, este relatório não é baseado no Ledger, portanto, não contém transações modificadas manualmente no Ledger. Se a sua periodização estiver atualizada, a visão da contabilidade será mais precisa. ExpenseReportJournal=Diário de relatórios de despesas -InventoryJournal=Diário de Inventário NAccounts=%s accounts diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index f2843257815..abd4fdfc59f 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Colação de clientes WarningModuleNotActive=O módulo %s deve estar ativado WarningOnlyPermissionOfActivatedModules=Só são mostradas aqui as permissões relacionadas com os módulos ativos. Pode ativar outros módulos na página de Início-> Configuração-> Módulos. DolibarrSetup=Instalar ou atualizar o Dolibarr -InternalUser=Utilizador interno -ExternalUser=Utilizador externo InternalUsers=Utilizadores internos ExternalUsers=Utilizadores externos UserInterface=Interface do utilizador @@ -109,7 +107,7 @@ NextValueForReplacements=Valor seguinte (restituições) MustBeLowerThanPHPLimit=Nota: a sua configuração de PHP atualmente limita o tamanho máximo do arquivo para upload para %s %s, independentemente do valor deste parâmetro NoMaxSizeByPHPLimit=Nota: não está definido nenhum limite na sua configuração do PHP MaxSizeForUploadedFiles=Tamanho máximo para os ficheiros enviados (0 para rejeitar qualquer envio) -UseCaptchaCode=Utilizar código gráfico (CAPTCHA) na página de iniciar a sessão +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Caminho completo para o comando de antivírus AntiVirusCommandExample=Exemplo para ClamAv Daemon (requer clamav-daemon): / usr / bin / clamdscan
    Exemplo para ClamWin (muito, muito lento): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Mais parâmetros na linha de comando @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Hospedeiro de SMTP/SMTPS (Por predefinição no php.ini: < MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP / SMTPS (Não definida em PHP em sistemas Unix-like) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Hospedeiro de SMTP/SMTPS (Não definido no PHP nos sistemas de tipo Unix) MAIN_MAIL_EMAIL_FROM=E-mail do remetente para e-mails automáticos (valor padrão em php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=E-mail usado para erro retorna e-mails (campos 'Erros-Para' nos e-mails enviados) MAIN_MAIL_AUTOCOPY_TO= Copiar (Cco) todos os emails enviados para MAIN_DISABLE_ALL_MAILS=Desativar todo o envio de email (para fins de teste ou demonstrações) @@ -439,8 +438,10 @@ Unique=Único Boolean=Booliano (uma caixa de marcação) ExtrafieldPhone = Telefone ExtrafieldPrice = Preço +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Lista de selecção ExtrafieldSelectList = Selecionar da tabela ExtrafieldSeparator=Separador (não um campo) @@ -477,7 +478,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Inicialização ou reposição de códigos de barras em massa para produtos ou serviços CurrentlyNWithoutBarCode=Atualmente, você tem o registo %s em %s %s sem o código de barras definido. -InitEmptyBarCode=Inicializar o valor para os próximos %s registos vazios +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Apagar todos os códigos de barras atuais ConfirmEraseAllCurrentBarCode=Tem certeza de que deseja apagar todos os códigos de barras atuais? AllBarcodeReset=Todos os códigos de barras foram removidos @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Se o seu serviço de e-mail SMTP restringir o cliente de e-mail a alguns endereços IP (muito raro), utilize o seguinte endereço IP da sua instalação ERP CRM Dolibarr: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Clique para mostrar a descrição DependsOn=Este módulo precisa do (s) módulo (s) RequiredBy=Este módulo é necessário para o(s) módulo(s) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Ativar o uso de tradução sobrescrita +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Uma tradução foi encontrada para a chave com este código. Para alterar este valor, você deve editá-lo em Home-Setup-translation. WarningSettingSortOrder=Aviso, definir uma ordem de classificação padrão pode resultar em um erro técnico ao entrar na página da lista se o campo for um campo desconhecido. Se você tiver um erro desse tipo, volte para esta página para remover a ordem de classificação padrão e restaurar o comportamento padrão. Field=Campo @@ -645,9 +647,9 @@ Module2400Name=Eventos/Agenda Module2400Desc=Provas de pista. Registre eventos automáticos para fins de rastreamento ou registre eventos ou reuniões manuais. Este é o módulo principal para um bom gerenciamento de relacionamento com o cliente ou fornecedor. Module2500Name=SGD / GEC Module2500Desc=Sistema de Gestão de Documentos / Gestão de Conteúdo Eletrónico. Organização automática dos seus documentos gerados ou armazenados. Compartilhe-os quando precisar. -Module2600Name=Serviços API/Web (servidor SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Ativar o servidor SOAP do Dolibarr, fornecendo serviços API -Module2610Name=Serviços API/Web (servidor REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Ativar os serviços API do servidor REST do Dolibarr Module2660Name=Serviços Web de chamada (cliente SOAP) Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Adicione recursos para gerenciar Incoterms Module63000Name=Recursos Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module94160Name=Receptions Permission11=Consultar faturas a clientes Permission12=Criar/modificar faturas a clientes Permission13=Invalidar faturas de clientes @@ -714,6 +717,7 @@ Permission27=Eliminar orçamentos Permission28=Exportar orçamentos Permission31=Consultar produtos Permission32=Criar/Modificar produtos +Permission33=Read prices products Permission34=Eliminar produtos Permission36=Ver/Gerir produtos ocultos Permission38=Exportar produtos @@ -739,6 +743,7 @@ Permission79=Criar/Modificar subscrições Permission81=Consultar encomendas de clientes Permission82=Criar/Modificar encomendas de clientes Permission84=Confirmar encomendas de clientes +Permission85=Generate the documents sales orders Permission86=Enviar encomendas de clientes Permission87=Fechar encomendas de clientes Permission88=Cancelar encomendas de clientes @@ -840,9 +845,9 @@ Permission286=Exportar contactos Permission291=Consultar tarifas Permission292=Definir permissões das tarifas Permission293=Modificar as tarifas do cliente -Permission300=Leia códigos de barras -Permission301=Criar / modificar códigos de barras -Permission302=Excluir códigos de barras +Permission301=Gerar folhas de códigos de barra PDF +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Consultar serviços Permission312=Atribuir serviço/subscrição ao contrato Permission331=Consultar marcadores @@ -874,6 +879,7 @@ Permission525=Aceder á calculadora de empréstimos Permission527=Exportar empréstimos Permission531=Consultar serviços Permission532=Criar/modificar serviços +Permission533=Read prices services Permission534=Eliminar serviços Permission536=Ver/gerir serviços ocultos Permission538=Exportar serviços @@ -968,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Configuração guardada SetupNotSaved=A configuração não foi guardada +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Voltar à lista de módulos BackToDictionaryList=Back to Dictionaries list TypeOfRevenueStamp=Tipo de selo fiscal @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=N.º de dias AtEndOfMonth=No fim de mês -CurrentNext=Atual/Seguinte +CurrentNext=A given day in month Offset=Desvio AlwaysActive=Sempre ativo Upgrade=Atualização @@ -1191,10 +1202,10 @@ DoNotSuggestPaymentMode=Não sugerir NoActiveBankAccountDefined=Nenhuma conta bancária ativa definida OwnerOfBankAccount=Titular da conta bancária %s BankModuleNotActive=O módulo de contas bancarias não se encontra ativado -ShowBugTrackLink=Show the link "%s" +ShowBugTrackLink=Mostrar a hiperligação "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Alertas -DelaysOfToleranceBeforeWarning=Displaying a warning alert for... +DelaysOfToleranceBeforeWarning=A exibir um alerta de aviso para... DelaysOfToleranceDesc=Defina o atraso antes que um ícone de alerta %s seja mostrado na tela para o elemento atrasado. Delays_MAIN_DELAY_ACTIONS_TODO=Eventos planejados (eventos da agenda) não concluídos Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1222,7 +1233,7 @@ SetupDescription3b=Basic parameters used to customize the default behavior of yo SetupDescription4b=This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. AuditedSecurityEvents=Security events that are audited NoSecurityEventsAreAduited=No security events are audited. You can enable them from menu %s -Audit=Security events +Audit=Eventos de segurança InfoDolibarr=Sobre o Dolibarr InfoBrowser=Sobre o navegador InfoOS=Sobre o sistema operativo @@ -1235,11 +1246,13 @@ BrowserName=Nome do navegador BrowserOS=Sistema operativo do navegador ListOfSecurityEvents=Listagem de eventos de segurança do Dolibarr SecurityEventsPurged=Os eventos de segurança purgados +TrackableSecurityEvents=Trackable security events LogEventDesc=Ative o registro para eventos de segurança específicos. Administradores o log via menu %s - %s . Atenção, este recurso pode gerar uma grande quantidade de dados no banco de dados. AreaForAdminOnly=Os parâmetros de configuração só podem ser definidos pelos utilizadores administradores. SystemInfoDesc=Esta informação do sistema é uma informação técnica acessível só para leitura dos administradores. SystemAreaForAdminOnly=Esta área está disponível apenas para usuários administradores. As permissões do usuário Dolibarr não podem alterar esta restrição. CompanyFundationDesc=Edite as informações da sua empresa / organização. Clique no botão "%s" na parte inferior da página quando terminar. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. AccountantFileNumber=Accountant code DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,8 +1303,10 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Deve executar este comando a pa YourPHPDoesNotHaveSSLSupport=Funções SSL não estão disponíveis no seu PHP DownloadMoreSkins=Mais temas para descarregar SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset -ShowProfIdInAddress=Show professional ID with addresses +ShowProfIdInAddress=Mostrar Id. profissional com endereços ShowVATIntaInAddress=Hide intra-Community VAT number TranslationUncomplete=Tradução parcial MAIN_DISABLE_METEO=Disable weather thumb @@ -1376,7 +1391,7 @@ GetBarCode=Obter código de barras NumberingModules=Numbering models DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Retorne uma senha gerada de acordo com o algoritmo Dolibarr interno: %s caracteres contendo números compartilhados e caracteres em minúsculas. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Não sugira uma senha gerada. A senha deve ser digitada manualmente. PasswordGenerationPerso=Retornar uma palavra-passe que esteja de acordo com sua configuração definida. SetupPerso=De acordo com a sua configuração @@ -1430,6 +1445,10 @@ SuppliersPayment=Pagamentos a fornecedores SupplierPaymentSetup=Vendor payments setup InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Configuração do módulo de orçamentos ProposalsNumberingModules=Modelos de numeração do orçamento @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Marca d'água nos contratos rascunho (nenhuma se e ##### Members ##### MembersSetup=Configuração do módulo "Membros" MemberMainOptions=Opções principais +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Gerir um login para cada membro AdherentMailRequired=Email necessário para criar um novo membro MemberSendInformationByMailByDefault=Selecione para enviar email de confirmação aos membros (validação ou nova subscrição), está ativada por defeito MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Ativar editor avançado para: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Criação/Edição WYSIWIG para emails em massa (Ferramentas->eMailing) FCKeditorForUserSignature=Criação/Edição WYSIWIG da assinatura do utilizador FCKeditorForMail=Criação/Edição WYSIWIG para todo o correio (exceto Ferramentas->eMailling) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Gestor de menus onde será exibido o novo menu DetailMenuModule=Nome do módulo, no caso da entrada do menu ser resultante de um módulo DetailType=Tipo de menu (superior ou esquerdo) DetailTitre=Etiqueta do menu ou código da etiqueta para tradução -DetailUrl=URL da página para a qual o menu aponta (Hiperligação do URL fixa ou hiperligação externa com http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Condição para mostrar, ou não, a entrada DetailRight=Condição para mostrar menus cinza não autorizados DetailLangs=Nome do ficheiro. lang para a tradução de códigos de etiquetas @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatib CashDeskYouDidNotDisableStockDecease=Você não desativou a redução de estoque ao fazer uma venda no Ponto de venda. Por isso, é necessário um depósito. CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Configuração do módulo "Marcadores" BookmarkDesc=Este módulo permite gerenciar marcadores. Você também pode adicionar atalhos para quaisquer páginas Dolibarr ou sites externos no seu menu à esquerda. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modelos de numeração de faturas de fornecedores IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuração do módulo "GeoIP Maxmind" -PathToGeoIPMaxmindCountryDataFile=Caminho para o arquivo que contém a tradução do Maxmind ip para o país.
    Exemplos:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/shareCountry.Geomm/Geomm2 +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Note que o endereço IP de dados do país/arquivo deve estar dentro de um diretório do seu PHP (Verifique a configuração do PHP open_basedir e permissões de ficheiros de sistema). YouCanDownloadFreeDatFileTo=Você pode descarregar uma versão demo gratuita do ficheiro país Maxmind GeoIP em %s. YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão mais completa, com atualizações do país arquivo GeoIP MaxMind em %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Wizard to build the database dump file BackupZipWizard=Wizard to build the archive of documents directory SomethingMakeInstallFromWebNotPossible=Instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Instalação de um módulo externo da aplicação foi desativada pelo seu administrador. Você deve pedir-lhe para remover o ficheiro %s para permitir esta funcionalidade. ConfFileMustContainCustom=Instalar ou construir um módulo externo do aplicativo precisa salvar os arquivos do módulo no diretório. %sPara que este diretório seja processado pelo Dolibarr, você deve configurar seu conf/conf.php para adicionar as 2 linhas diretivas:
    $dolibarr_main_url_root_alt ='/ custom';
    $dolibarr_main_document_root_alt='%s/ custom'; HighlightLinesOnMouseHover=Realçar as linhas da tabela quando o rato passar sobre elas @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Pressione CTRL+F5 no teclado ou limpe a cache do navega NotSupportedByAllThemes=Funciona com os temas predefinidos, pode não ser suportado por temas externos BackgroundColor=Cor de fundo TopMenuBackgroundColor=Cor de fundo para o menu no topo -TopMenuDisableImages=Ocultar imagens no menu do topo +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Cor de fundo para o menu à esquerda BackgroundTableTitleColor=A cor do fundo para a linha de título das tabelas BackgroundTableTitleTextColor=Cor do texto para a linha de título da tabela @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Ordens de compra MailToSendSupplierInvoice=Faturas do fornecedor MailToSendContract=Contratos MailToSendReception=Receptions +MailToExpenseReport=Relatórios de despesas MailToThirdparty=Terceiros MailToMember=Membros MailToUser=Utilizadores @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Margem direita do PDF MAIN_PDF_MARGIN_TOP=Margem superior do PDF MAIN_PDF_MARGIN_BOTTOM=Margem inferior do PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Remove special characters COMPANY_AQUARIUM_CLEAN_REGEX=Filtro Regex para limpar valor (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Responsável pela proteção de dados (DPO, Privacidade de dados ou contato GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Texto de ajuda para mostrar na dica de ferramenta @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Coletor de e-mail +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=Novo coletor de email EMailHost=Host do servidor IMAP de e-mail +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Diretório de origem da caixa de correio MailboxTargetDirectory=Diretório de destino da caixa de correio EmailcollectorOperations=Operações para fazer pelo coletor EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect +TestCollectNow=Test collect CollectNow=Recolher agora ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Confirmação de recebimento de email EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Nenhum novo email (filtros correspondentes) para processar NothingProcessed=Nada feito -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Create job application FormatZip=Código postal MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module @@ -2167,6 +2200,10 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Recomendada NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Definições +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/pt_PT/agenda.lang b/htdocs/langs/pt_PT/agenda.lang index 508ff6668e9..d702a61340a 100644 --- a/htdocs/langs/pt_PT/agenda.lang +++ b/htdocs/langs/pt_PT/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contrato %s excluído PropalClosedSignedInDolibarr=Orçamento %s assinado PropalClosedRefusedInDolibarr=Orçamento %s recusado PropalValidatedInDolibarr=Orçamento %s validado +PropalBackToDraftInDolibarr=Proposal %s go back to draft status PropalClassifiedBilledInDolibarr=Orçamento %s classificado como faturado InvoiceValidatedInDolibarr=Fatura %s, validada InvoiceValidatedInDolibarrFromPos=Fatura %s, validada a partir do ponto de venda @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=Membro %s, validado MemberModifiedInDolibarr=Membro %s modificado MemberResiliatedInDolibarr=Membro %s, terminado MemberDeletedInDolibarr=Membro %s, eliminado +MemberExcludedInDolibarr=Member %s excluded MemberSubscriptionAddedInDolibarr=Subscrição %s do membro %s adicionada MemberSubscriptionModifiedInDolibarr=Subscrição %s do membro %s modificada MemberSubscriptionDeletedInDolibarr=Subscrição%s do membro %s eliminada @@ -66,6 +68,8 @@ ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status ShipmentDeletedInDolibarr=Expedição %s, eliminada ShipmentCanceledInDolibarr=Shipment %s canceled ReceptionValidatedInDolibarr=Receção %s validada +ReceptionDeletedInDolibarr=Reception %s deleted +ReceptionClassifyClosedInDolibarr=Reception %s classified closed OrderCreatedInDolibarr=Encomenda %s, criada OrderValidatedInDolibarr=Encomenda %s, validada OrderDeliveredInDolibarr=Encomenda %s, classificada como entregue @@ -84,6 +88,7 @@ SupplierInvoiceSentByEMail=Fatura do fornecedor %s enviada por e-mail ShippingSentByEMail=Remessa %s enviada por e-mail ShippingValidated= Expedição %s, validada InterventionSentByEMail=Intervenção %s enviada por email +ProjectSentByEMail=Project %s sent by email ProposalDeleted=Orçamento eliminado OrderDeleted=Encomenda eliminada InvoiceDeleted=Fatura eliminada @@ -134,7 +139,7 @@ AgendaUrlOptions4=logint =%s para restringir a saída às ações atribu AgendaUrlOptionsProject=project=__PROJECT_ID__ para que apenas obtenha eventos vinculados ao projeto __PROJECT_ID__ . AgendaUrlOptionsNotAutoEvent= notactiontype = systemauto para excluir eventos automáticos. AgendaUrlOptionsIncludeHolidays=includeholidays=1 to include events of holidays. -AgendaShowBirthdayEvents=Birthdays of contacts +AgendaShowBirthdayEvents=Aniversários dos contactos AgendaHideBirthdayEvents=Ocultar aniversários dos contactos Busy=Ocupado ExportDataset_event1=Lista de eventos da agenda @@ -157,6 +162,7 @@ DateActionBegin=Data de início do evento ConfirmCloneEvent=Tem a certeza que quer clonar o evento %s? RepeatEvent=Repetir evento OnceOnly=Once only +EveryDay=Every day EveryWeek=Semanalmente EveryMonth=Mensalmente DayOfMonth=Dia do mês @@ -172,3 +178,4 @@ AddReminder=Create an automatic reminder notification for this event ErrorReminderActionCommCreation=Error creating the reminder notification for this event BrowserPush=Browser Popup Notification ActiveByDefault=Enabled by default +Until=until diff --git a/htdocs/langs/pt_PT/banks.lang b/htdocs/langs/pt_PT/banks.lang index 169578e5424..838f10d0655 100644 --- a/htdocs/langs/pt_PT/banks.lang +++ b/htdocs/langs/pt_PT/banks.lang @@ -95,11 +95,11 @@ LineRecord=Registo AddBankRecord=Adicionar entrada AddBankRecordLong=Adicionar entrada manualmente Conciliated=Reconciliado -ConciliatedBy=Conciliado por +ReConciliedBy=Conciliado por DateConciliating=Data Conciliação BankLineConciliated=Entrada reconciliada com recibo do banco -Reconciled=Reconciliado -NotReconciled=Não reconciliado +BankLineReconciled=Reconciliado +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Pagamento de cliente SupplierInvoicePayment=Pagamento de fornecedor SubscriptionPayment=Pagamento Assinatura @@ -127,7 +127,7 @@ ConfirmDeleteTransaction=Tem a certeza que deseja eliminar esta entrada? ThisWillAlsoDeleteBankRecord=Isto também eliminará a entrada bancária gerada BankMovements=Movimentos PlannedTransactions=Entradas previstas -Graph=Graphs +Graph=Gráficos ExportDataset_banque_1=Entradas bancárias e extrato de conta ExportDataset_banque_2=Comprovativo de depósito TransactionOnTheOtherAccount=Transacção sobre outra Conta @@ -172,8 +172,8 @@ SEPAMandate=Mandato SEPA YourSEPAMandate=Seu mandato SEPA FindYourSEPAMandate=Este é o seu mandato da SEPA para autorizar a nossa empresa a efetuar um pedido de débito direto ao seu banco. Devolva-o assinado (digitalização do documento assinado) ou envie-o por correio para AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation -CashControl=POS cash desk control -NewCashFence=New cash desk opening or closing +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Colorize movements BankColorizeMovementDesc=If this function is enable, you can choose specific background color for debit or credit movements BankColorizeMovementName1=Background color for debit movement @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on NoBankAccountDefined=No bank account defined NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled. AlreadyOneBankAccount=Already one bank account defined +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. +ToCreateRelatedRecordIntoBank=To create missing related bank record diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index a8ed55ec0c8..c1a704fa24d 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Estatísticas das faturas a clientes BillsStatisticsSuppliers=Estatísticas de faturas de fornecedores DisabledBecauseDispatchedInBookkeeping=Desativado porque a fatura foi enviada para a contabilidade DisabledBecauseNotLastInvoice=Desativado porque a fatura não pode ser apagada. Algumas faturas foram registradas após esta e irão criar furos no contador. +DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable. This invoice is not the last one in situation invoice cycle. DisabledBecauseNotErasable=Desativar porque não pode ser eliminado InvoiceStandard=Fatura Normal InvoiceStandardAsk=Fatura Normal InvoiceStandardDesc=Este tipo de fatura é uma fatura comum. +InvoiceStandardShort=Standard InvoiceDeposit=Fatura de adiantamento InvoiceDepositAsk=Fatura de adiantamento InvoiceDepositDesc=Este tipo de fatura é feita quando um adiantamento foi recebido. @@ -24,6 +26,7 @@ InvoiceProForma=Fatura Pró-Forma InvoiceProFormaAsk=Fatura Pró-Forma InvoiceProFormaDesc=A Fatura Pró-Forma é uma imagem de uma fatura, mas não tem valor contabilístico. InvoiceReplacement=Fatura de Substituição +InvoiceReplacementShort=Replacement InvoiceReplacementAsk=Fatura de Substituição para a Fatura InvoiceReplacementDesc= Fatura de substituição é usada para substituir completamente uma fatura sem pagamento já recebido.

    Nota: Apenas as faturas sem pagamento podem ser substituídas. Se a fatura que você substituiu ainda não foi fechada, ela será automaticamente encerrada como 'abandonada'. InvoiceAvoir=Nota de Crédito @@ -81,14 +84,14 @@ PaymentsReports=Relatórios de pagamentos PaymentsAlreadyDone=Pagamentos já efetuados PaymentsBackAlreadyDone=Reembolsos já feitos PaymentRule=Estado do Pagamento -PaymentMode=Payment method +PaymentMode=Método de pagamento PaymentModes=Payment methods DefaultPaymentMode=Default Payment method DefaultBankAccount=Default Bank Account IdPaymentMode=Payment method (id) CodePaymentMode=Payment method (code) LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +PaymentModeShort=Método de pagamento PaymentTerm=Payment Term PaymentConditions=Termos de pagamento PaymentConditionsShort=Termos de pagamento @@ -119,7 +122,7 @@ ConvertExcessPaidToReduc=Converter o excesso pago em desconto disponível EnterPaymentReceivedFromCustomer=Adicionar pagamento recebido de cliente EnterPaymentDueToCustomer=Realizar pagamento de recibos à cliente DisabledBecauseRemainderToPayIsZero=Desativado porque o restante não pago é zero -PriceBase=Base price +PriceBase=Preço base BillStatus=Estado da fatura StatusOfGeneratedInvoices=Estado das faturas geradas BillStatusDraft=Rascunho (precisa de ser validado) @@ -156,8 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=Erro, uma fatura deste tipo deve ter um montante ErrorInvoiceOfThisTypeMustBePositive=Erro, este tipo de fatura deve ter um valor sem imposto positivo (ou nulo) ErrorCantCancelIfReplacementInvoiceNotValidated=Erro, não pode cancelar uma fatura que tenha sido substituída por uma outra fatura e que se encontra ainda em rascunho ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Essa parte ou outra já é usada para que as séries de descontos não possam ser removidas. +ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. BillFrom=Emissor BillTo=Cliente +ShippingTo=Shipping to ActionsOnBill=Ações sobre a fatura RecurringInvoiceTemplate=Fatura de modelo / recorrente NoQualifiedRecurringInvoiceTemplateFound=Nenhuma fatura de modelo recorrente qualificada para geração. @@ -282,6 +287,8 @@ RecurringInvoices=Faturas recorrentes RecurringInvoice=Recurring invoice RepeatableInvoice=Fatura Modelo RepeatableInvoices=Faturas Modelo +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=Modelo Repeatables=Modelos ChangeIntoRepeatableInvoice=Converter em fatura modelo @@ -426,14 +433,24 @@ PaymentConditionShort14D=14 dias PaymentCondition14D=14 dias PaymentConditionShort14DENDMONTH=14 dias do final do mês PaymentCondition14DENDMONTH=Dentro de 14 dias após o final do mês +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposit, remainder on delivery FixAmount=Quantidade fixa - 1 linha com rótulo '%s' VarAmount=Quantidade variável (%% total.) VarAmountOneLine=Quantidade variável (%% tot.) - 1 linha com o rótulo '%s' VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +DepositPercent=Deposit %% +DepositGenerationPermittedByThePaymentTermsSelected=This is permitted by the payment terms selected +GenerateDeposit=Generate a %s%% deposit invoice +ValidateGeneratedDeposit=Validate the generated deposit +DepositGenerated=Deposit generated +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=You can only automatically generate a deposit from a proposal or an order +ErrorPaymentConditionsNotEligibleToDepositCreation=The chose payment conditions are not eligible for automatic deposit generation # PaymentType PaymentTypeVIR=Transferência bancária PaymentTypeShortVIR=Transferência bancária PaymentTypePRE=Débito direto +PaymentTypePREdetails=(on account *-%s) PaymentTypeShortPRE=Débito direto PaymentTypeLIQ=Numerário PaymentTypeShortLIQ=Numerário @@ -468,7 +485,7 @@ RegulatedOn=Regulado em ChequeNumber=Cheque nº ChequeOrTransferNumber=Cheque/Transferência nº ChequeBordereau=Verifique o horário -ChequeMaker=Check/Transfer sender +ChequeMaker=Cheque/Transferência remetente ChequeBank=Banco do cheque CheckBank=Verificar NetToBePaid=Quantia líquida a pagar @@ -482,6 +499,7 @@ PaymentByChequeOrderedToShort=Pagamentos de cheques (incluindo impostos) devem s SendTo=- Enviando Para PaymentByTransferOnThisBankAccount=Pagamento por transferência para a seguinte conta bancária VATIsNotUsedForInvoice=* IVA não aplicável art-293B do CGI +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Por aplicação da lei 80.335 de 12/05/80 LawApplicationPart2=As mercadorias permanecem em propriedade de LawApplicationPart3=o vendedor até o pagamento integral @@ -599,7 +617,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted UnitPriceXQtyLessDiscount=Unit price x Qty - Discount CustomersInvoicesArea=Customer billing area SupplierInvoicesArea=Supplier billing area -FacParentLine=Invoice Line Parent SituationTotalRayToRest=Remainder to pay without taxe PDFSituationTitle=Situation n° %d SituationTotalProgress=Total progress %d %% @@ -607,3 +624,10 @@ SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s NoPaymentAvailable=No payment available for %s PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +MakePaymentAndClassifyPayed=Record payment +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/pt_PT/boxes.lang b/htdocs/langs/pt_PT/boxes.lang index 853020046bd..55e55b9c6b4 100644 --- a/htdocs/langs/pt_PT/boxes.lang +++ b/htdocs/langs/pt_PT/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Latest member subscriptions BoxFicheInter=Últimas intervenções BoxCurrentAccounts=Saldo de abertura das contas BoxTitleMemberNextBirthdays=Birthdays of this month (members) -BoxTitleMembersByType=Members by type +BoxTitleMembersByType=Members by type and status BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year BoxTitleLastRssInfos=Últimas %s notícias de %s BoxTitleLastProducts=Produtos / serviços: último %s modificado @@ -44,11 +44,13 @@ BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception BoxTitleLastModifiedContacts=Contatos / endereços: último %s modificado BoxMyLastBookmarks=Marcadores: último %s BoxOldestExpiredServices=Mais antigos ativos de serviços vencidos +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Últimos %s contactos mais antigos com serviços ativos expirados BoxTitleLastActionsToDo=Últimas %s ações a fazer -BoxTitleLastContracts=Latest %s contracts which were modified -BoxTitleLastModifiedDonations=Latest %s donations which were modified -BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed +BoxTitleLastContracts=Contratos mais recentes (%s) que foram modificados +BoxTitleLastModifiedDonations=Donativos mais recentes (%s) que foram modificados +BoxTitleLastModifiedExpenses=Relatórios de despesas mais recentes (%s) que foram modificados BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified BoxTitleLastOutstandingBillReached=Customers with maximum outstanding exceeded diff --git a/htdocs/langs/pt_PT/commercial.lang b/htdocs/langs/pt_PT/commercial.lang index b0aefc17d93..15236499f13 100644 --- a/htdocs/langs/pt_PT/commercial.lang +++ b/htdocs/langs/pt_PT/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Estado da prospeção DraftPropals=Orçamentos rascunhos NoLimit=Sem limite ToOfferALinkForOnlineSignature=Link para assinatura online -WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s -ThisScreenAllowsYouToSignDocFrom=Esta página permite-lhe aceitar e assinar, ou recusar um orçamento/cotação -ThisIsInformationOnDocumentToSign=Esta é a informação no documento para aceitar ou recusar +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Esta página permite-lhe aceitar e assinar, ou recusar um orçamento/cotação +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Esta é a informação no documento para aceitar ou recusar +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Signature of quote/commercial proposal %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Recurso para assinatura online desativado ou este documento foi criado antes que o recurso fosse ativado diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang index c8d3397b6e6..ccfb56424f9 100644 --- a/htdocs/langs/pt_PT/companies.lang +++ b/htdocs/langs/pt_PT/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Natureza do terceiro NatureOfContact=Natureza do contacto Address=Direcção State=Concelho +StateId=State ID StateCode=Código de região StateShort=Concelho Region=Distrito Region-State=Distrito - Concelho Country=País CountryCode=Código país -CountryId=ID país +CountryId=Country ID Phone=Telefone PhoneShort=Telefone Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Outros ProfId6ShortCM=- ProfId1CO=ID Prof. 1 (R.U.T.) diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang index 06057502259..888b94e626c 100644 --- a/htdocs/langs/pt_PT/compta.lang +++ b/htdocs/langs/pt_PT/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Saldo (antes) Balance=Saldo Debit=Débito Credit=Crédito +AccountingDebit=Débito +AccountingCredit=Crédito Piece=Doc. Contabilístico AmountHTVATRealReceived=Total Recebido AmountHTVATRealPaid=Total Pago @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Eliminar um pagamento de imposto social ou fiscal DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Impostos e pagamentos sociais e fiscais CalcModeVATDebt=Modo %sVAT no compromisso accounting%s . CalcModeVATEngagement=Modo %sVAT em rendimentos-expenses%s . @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=O relatório do volume de ne TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=O relatório do volume de negócios cobrado por taxa de imposto sobre vendas não está disponível. Este relatório está disponível apenas para faturamento faturado. CalculationMode=Modo de cálculo AccountancyJournal=Diário de códigos contábeis -ACCOUNTING_VAT_SOLD_ACCOUNT=Conta de contabilidade por padrão para IVA sobre vendas (usada se não definida na configuração do dicionário de IVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Conta de contabilidade por padrão para IVA nas compras (usada se não definida na configuração do dicionário de IVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Conta de contabilidade por padrão para pagar o IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Conta de contabilidade usada para terceiros do cliente +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada apenas para a contabilidade da Subledger. Este será usado para Contabilidade Geral e como valor padrão da contabilidade do Contador, se a conta contábil do cliente dedicada a terceiros não estiver definida. -ACCOUNTING_ACCOUNT_SUPPLIER=Conta de contabilidade usada para fornecedores de terceiros +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirme o clone de um imposto social / fiscal ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/pt_PT/contracts.lang b/htdocs/langs/pt_PT/contracts.lang index 53c49c1683a..388f7ebcbe2 100644 --- a/htdocs/langs/pt_PT/contracts.lang +++ b/htdocs/langs/pt_PT/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contractos/Subscrições ContractsAndLine=Contratos e linha de contratos Contract=Contrato ContractLine=Linha de contrato +ContractLines=Contract lines Closing=Encerramento NoContracts=Sem contratos MenuServices=Serviços @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Tem a certeza que deseja eliminar esta linha do contra MoveToAnotherContract=Mover o serviço para outro contrato. ConfirmMoveToAnotherContract=Eu escolhi um novo contrato alvo e confirmo que quero mover este serviço para este contrato. ConfirmMoveToAnotherContractQuestion=Para qual contrato (do mesmo terceiro) deseja mover este serviço? -PaymentRenewContractId=Renovar a linha do contrato (número %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Expirado desde NoExpiredServices=Nenhum serviço ativo expirado ListOfServicesToExpireWithDuration=Lista de serviços a expirar em %s dias @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Contacto cliente assinante do contrato HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/pt_PT/cron.lang b/htdocs/langs/pt_PT/cron.lang index 6b0bc412afc..09a29d513ba 100644 --- a/htdocs/langs/pt_PT/cron.lang +++ b/htdocs/langs/pt_PT/cron.lang @@ -26,7 +26,7 @@ CronCommand=Comando CronList=Trabalhos agendadas CronDelete=Eliminar tarefas agendadas CronConfirmDelete=Tem a certeza que deseja eliminar estas tarefas agendadas? -CronExecute=Iniciar tarefa agendada +CronExecute=Launch now CronConfirmExecute=Tem a certeza de que deseja executar agora estas tarefas agendadas? CronInfo=O módulo de tarefas agendadas permite agendar tarefas para executá-las automaticamente. As tarefas também podem ser iniciadas manualmente. CronTask=Tarefa @@ -58,7 +58,7 @@ CronNote=Comentário CronFieldMandatory=Os campos %s são obrigatórios CronErrEndDateStartDt=A data de fim não pode ser anterior à data de início StatusAtInstall=Estado da instalação do módulo -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Desativar CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/pt_PT/datapolicy.lang b/htdocs/langs/pt_PT/datapolicy.lang new file mode 100644 index 00000000000..7398e2400da --- /dev/null +++ b/htdocs/langs/pt_PT/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Cliente +DATAPOLICY_TIERS_PROSPECT = Cliente Potencial +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Fornecedor +DATAPOLICY_CONTACT_CLIENT = Cliente +DATAPOLICY_CONTACT_PROSPECT = Cliente Potencial +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Fornecedor +DATAPOLICY_ADHERENT = Membro +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/pt_PT/deliveries.lang b/htdocs/langs/pt_PT/deliveries.lang index c8777e9fdf1..8127653527a 100644 --- a/htdocs/langs/pt_PT/deliveries.lang +++ b/htdocs/langs/pt_PT/deliveries.lang @@ -2,7 +2,7 @@ Delivery=Distribuição DeliveryRef=Ref. de entrega DeliveryCard=Ficha de recibo -DeliveryOrder=Delivery receipt +DeliveryOrder=Recibo de entrega DeliveryDate=Data da entrega CreateDeliveryOrder=Gerar recibo de entrega DeliveryStateSaved=Estado da entrega guardado @@ -18,7 +18,7 @@ StatusDeliveryCanceled=Cancelada StatusDeliveryDraft=Rascunho StatusDeliveryValidated=Recebido # merou PDF model -NameAndSignature=Name and Signature: +NameAndSignature=Nome e assinatura: ToAndDate=Em___________________________________ a ____/_____/__________ GoodStatusDeclaration=Recebi a mercadoria em bom estado, Deliverer=Deliverer: diff --git a/htdocs/langs/pt_PT/dict.lang b/htdocs/langs/pt_PT/dict.lang index 9856d22ca60..15d61774a5a 100644 --- a/htdocs/langs/pt_PT/dict.lang +++ b/htdocs/langs/pt_PT/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holanda CountryHU=Hungria CountryRU=Russia CountrySE=Suécia -CountryCI=Costa do Marfim +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Camarões @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Sra. +CivilityMMEShort=Sra. CivilityMR=Sr. +CivilityMRShort=Sr. CivilityMLE=Doutor CivilityMTRE=Mestre CivilityDR=Dr. diff --git a/htdocs/langs/pt_PT/ecm.lang b/htdocs/langs/pt_PT/ecm.lang index 46400b3ce46..d8ad21d5b5f 100644 --- a/htdocs/langs/pt_PT/ecm.lang +++ b/htdocs/langs/pt_PT/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Diretoria manual ECMSectionAuto=Pasta automática ECMSectionsManual=Pastas manuais ECMSectionsAuto=Pastas automáticas +ECMSectionsMedias=Medias tree ECMSections=Pastas ECMRoot=Raiz do GCE ECMNewSection=Nova diretoria @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Número de ficheiros em sub-pastas ECMCreationUser=Criador ECMArea=A área de SGD/GCE ECMAreaDesc=A área de SGD/GCE (Sistema de Gestão de Documentos/Gestão de Conteúdo Eletrónico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr. -ECMAreaDesc2=* As diretorias automáticas são preenchidas automaticamente ao adicionar documentos a partir de uma ficha de um elemento.
    * As diretorias manuais podem ser utlizadas para guardar documentos não associados a um elemento específico. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=A pasta %s foi eliminada. ECMSectionWasCreated=O diretório %s foi criado. ECMSearchByKeywords=Procurar por palavras-chave diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang index dc0eb4f58d5..2b0dda28541 100644 --- a/htdocs/langs/pt_PT/errors.lang +++ b/htdocs/langs/pt_PT/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/pt_PT/externalsite.lang b/htdocs/langs/pt_PT/externalsite.lang deleted file mode 100644 index 8f9247e1b7e..00000000000 --- a/htdocs/langs/pt_PT/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Configurar hiperligação para o site da Web externo -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=O módulo Site Externo não está configurado correctamente. -ExampleMyMenuEntry=Minha entrada de menu diff --git a/htdocs/langs/pt_PT/ftp.lang b/htdocs/langs/pt_PT/ftp.lang deleted file mode 100644 index 554d68c65f5..00000000000 --- a/htdocs/langs/pt_PT/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configurar módulo de Cliente FTP -NewFTPClient=Nova configuração de ligação de FTP -FTPArea=Área de FTP -FTPAreaDesc=Este ecrã mostra o seu conteúdo de uma visualização do servidor FTP -SetupOfFTPClientModuleNotComplete=A configuração do módulo de cliente FTP parece não estar concluída -FTPFeatureNotSupportedByYourPHP=A sua versão do PHP não suporta as funções FTP -FailedToConnectToFTPServer=Não foi possível ligar ao servidor FTP (servidor: %s, porta: %s) -FailedToConnectToFTPServerWithCredentials=Não foi possível iniciar a sessão no servidor FTP com o nome/senha definidos -FTPFailedToRemoveFile=Falha ao remover o ficheiro: %s. -FTPFailedToRemoveDir=Não foi possível ao remover a diretoria: %s (Verifique as permissões e se a diretoria está sem dados). -FTPPassiveMode=Modo passivo -ChooseAFTPEntryIntoMenu=Escolha uma entrada de FTP no menu... -FailedToGetFile=Falha a obter os ficheiros%s diff --git a/htdocs/langs/pt_PT/holiday.lang b/htdocs/langs/pt_PT/holiday.lang index f310930968a..396b386cb41 100644 --- a/htdocs/langs/pt_PT/holiday.lang +++ b/htdocs/langs/pt_PT/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=GRH -Holidays=Sair +Holidays=Leaves +Holiday=Sair CPTitreMenu=Sair MenuReportMonth=Comunicado mensal MenuAddCP=Novo pedido de licença +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Você deve ativar o módulo Deixar para ver esta página. AddCP=Efetue um pedido de licença DateDebCP=Data de início @@ -56,6 +58,7 @@ ConfirmDeleteCP=Tem a certeza que deseja eliminar este pedido de licença? ErrorCantDeleteCP=Erro, você não tem permissão para eliminar este pedido de licença. CantCreateCP=Você não tem permissão para fazer pedidos de licença. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Deve escolher uma data de início. NoDateFin=Deve escolher uma data de fim. ErrorDureeCP=O seu pedido de licença não contém dias úteis. @@ -79,6 +82,8 @@ MotifCP=Motivo UserCP=Utilizador ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Ver os registos de alteração LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Balanço prévio NewSoldeCP=Novo Balanço alreadyCPexist=Um pedido de licença já foi feito para esse período. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupos +users=Utilizadores +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Últimos %s pedidos de licença modificados @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/pt_PT/hrm.lang b/htdocs/langs/pt_PT/hrm.lang index 35c50076d62..94c1b00fbb2 100644 --- a/htdocs/langs/pt_PT/hrm.lang +++ b/htdocs/langs/pt_PT/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Abrir estabelecimento CloseEtablishment=Fechar estabelecimento # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=GRH - Lista departamentos +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Funcionários @@ -20,13 +20,14 @@ Employee=Funcionário NewEmployee=Novo funcionário ListOfEmployees=Lista de funcionários HrmSetup=Configuração do módulo "GRH" -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Tarefa -Jobs=Jobs +JobPosition=Tarefa +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Posição -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang index 3de7b8cc162..31f5a8642b3 100644 --- a/htdocs/langs/pt_PT/install.lang +++ b/htdocs/langs/pt_PT/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=O arquivo de configuração %s não é gravável ConfFileIsWritable=O ficheiro de configuração %s é gravável. ConfFileMustBeAFileNotADir=O ficheiro de configuração %s deve ser um ficheiro, não um diretório. ConfFileReload=Recarregando parâmetros do arquivo de configuração. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Este PHP suporta variáveis GET e POST. PHPSupportPOSTGETKo=É possível que sua configuração do PHP não suporte variáveis ​​POST e / ou GET. Verifique o parâmetro variables_order no php.ini. PHPSupportSessions=Este PHP suporta sessões. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Pode ter inserido um valor incorreto para o parâmet ErrorFailedToCreateDatabase=Não foi possível criar a base de dados' %s'. ErrorFailedToConnectToDatabase=Não foi possível ligar à base de dados' %s'. ErrorDatabaseVersionTooLow=A versão da base de dados (%s) é muito antiga. É necessária a versão %s ou superior. -ErrorPHPVersionTooLow=A versão PHP é muito antiga. É necessária a versão %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Conexão ao servidor bem-sucedida, mas o banco de dados '%s' não foi encontrado. ErrorDatabaseAlreadyExists=A base de dados' %s' já existe. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Se o banco de dados não existir, volte e marque a opção "Criar banco de dados". IfDatabaseExistsGoBackAndCheckCreate=Se a base de dados já existir, volte e desmarque a opção "Criar base de dados". WarningBrowserTooOld=A versão do navegador é muito antiga. Atualizar o seu navegador para uma versão recente do Firefox, Chrome ou Opera é altamente recomendado. diff --git a/htdocs/langs/pt_PT/mailmanspip.lang b/htdocs/langs/pt_PT/mailmanspip.lang index 29eb943ad94..2d963b8a6e2 100644 --- a/htdocs/langs/pt_PT/mailmanspip.lang +++ b/htdocs/langs/pt_PT/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=O teste de subscrição foi executado com sucesso MailmanDeletionSuccess=O teste de anulação de subscrição foi executado com sucesso SynchroMailManEnabled=Uma atualização do Mailman será executada SynchroSpipEnabled=Será efetuada uma atualização ao Spip -DescADHERENT_MAILMAN_ADMINPW=Palavra-passe de administrador do Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Palavra-passe de administrador do Mailman DescADHERENT_MAILMAN_URL=URL para subscrição do Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL para anulação de subscrição do Mailman DescADHERENT_MAILMAN_LISTS=Lista(s) para a inscrição automática dos novos membros (separados por uma vírgula) diff --git a/htdocs/langs/pt_PT/mails.lang b/htdocs/langs/pt_PT/mails.lang index de9fcc1ba19..659b2489e1f 100644 --- a/htdocs/langs/pt_PT/mails.lang +++ b/htdocs/langs/pt_PT/mails.lang @@ -7,10 +7,10 @@ MailCard=Ficha de Emailing MailRecipients=Destinatários MailRecipient=Destinatario MailTitle=Titulo -MailFrom=Remetente +MailFrom=De MailErrorsTo=Erros a MailReply=Responder a -MailTo=Destinatario(s) +MailTo=Cliente MailToUsers=Para utilizador(es) MailCC=Cópia a MailToCCUsers=Copiar para utilizador(es) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index 4dcf47e511a..cf05de9fc7e 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Nenhum modelo disponível para este tipo de e-mail AvailableVariables=Variáveis de substituição disponíveis NoTranslation=Sem tradução Translation=Tradução +Translations=Translations CurrentTimeZone=Zona Horária PHP (servidor) EmptySearchString=Introduza alguns critérios de pesquisa EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Confirmar Approve=Aprovar Disapprove=Desaprovar ReOpen=Reabrir +OpenVerb=Ativo Upload=Carregar ToLink=Link Select=Selecionar @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Nenhum grupo de utilizador definido Password=Senha -PasswordRetype=Contrassenha +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note que estão desativados muitos módulos/funções nesta demonstração. Name=Nome NameSlashCompany=Nome / Empresa @@ -244,6 +252,7 @@ Designation=Designação DescriptionOfLine=Descrição da linha DateOfLine=Data da linha DurationOfLine=Duração da linha +ParentLine=Parent line ID Model=Modelo de documento DefaultModel=Modelo de documento predefinido Action=Evento @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Criado por UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Eventos para este contacto/endereço ActionsOnContract=Eventos para este contracto ActionsOnMember=Eventos sobre este membro ActionsOnProduct=Eventos sobre este produto +ActionsOnAsset=Events for this fixed asset NActionsLate=%s em atraso ToDo=A realizar Completed=Concluído @@ -517,6 +527,7 @@ or=ou Other=Outro Others=Outros OtherInformations=Outras informações +Workflow=Fluxo de trabalho Quantity=quantidade Qty=Quant. ChangedBy=Modificado por @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Ficheiros e Documentos Anexos JoinMainDoc=Unir ao documento principal +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Função Desactivada MoveBox=Mover widget Offered=Oferta NotEnoughPermissions=Não tem permissões para efectuar esta acção +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Nome Sessão Method=Método Receive=Receção @@ -798,6 +811,7 @@ URLPhoto=Url da foto / logotipo SetLinkToAnotherThirdParty=Link para um terceiro LinkTo=Associar a LinkToProposal=Associar ao orçamento +LinkToExpedition= Link to expedition LinkToOrder=Hiperligação para encomendar LinkToInvoice=Associar a fatura LinkToTemplateInvoice=Link para a factura modelo @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download do documento +DownloadSignedDocument=Download signed document ActualizeCurrency=Atualizar taxa de conversão da moeda Fiscalyear=Ano Fiscal ModuleBuilder=Construtor de Módulos e Aplicações @@ -1041,6 +1056,7 @@ SearchIntoContracts=contractos SearchIntoCustomerShipments=Expedições do cliente SearchIntoExpenseReports=Relatórios de despesas SearchIntoLeaves=Sair +SearchIntoKM=Base conhecimento SearchIntoTickets=Tickets SearchIntoCustomerPayments=Pagamentos de clientes SearchIntoVendorPayments=Pagamentos a fornecedores @@ -1132,15 +1148,29 @@ EventReminder=Lembrete de evento UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Tipo +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Cancelar +Terminated=Inativo +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Utilizador interno +ExternalUser=Utilizador externo diff --git a/htdocs/langs/pt_PT/members.lang b/htdocs/langs/pt_PT/members.lang index 0170d801dee..04ea205ad4f 100644 --- a/htdocs/langs/pt_PT/members.lang +++ b/htdocs/langs/pt_PT/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Outro membro (nome: %s, login: %s) ErrorUserPermissionAllowsToLinksToItselfOnly=Por motivos de segurança, você deve ser concedido permissões para editar todos os usuários para poder ligar um membro de um usuário que não é seu. SetLinkToUser=Link para um usuário Dolibarr SetLinkToThirdParty=Link para uma Dolibarr terceiro +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Lista de Membros MembersListToValid=Lista de Membros rascunho (a Confirmar) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Estados-id +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Novo membro MemberType=Tipo de Membro MemberTypeId=ID tipo de membro @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=O tipo de membro não pode ser excluído NewSubscription=Nova filiação NewSubscriptionDesc=Este formulário permite-lhe gravar sua inscrição como um novo membro da fundação. Se você deseja renovar a sua assinatura (se já for membro), entre em contato com Conselho da Fundação vez por %s e-mail. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duração +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Em atraso SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Conteúdo do seu cartão de membro # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Queremos que você saiba que sua solicitação de adesão foi recebida.

    ThisIsContentOfYourMembershipWasValidated=Queremos informar que sua associação foi validada com as seguintes informações:

    -ThisIsContentOfYourSubscriptionWasRecorded=Queremos informar que sua nova assinatura foi registrada.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Volume de negócios (para uma empresa) ou do Orçamento (para uma fundação) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Ir a página de pagamento online integrado +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Por natureza MembersStatisticsByProperties=Estatísticas dos membros por natureza VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/pt_PT/modulebuilder.lang b/htdocs/langs/pt_PT/modulebuilder.lang index 76cdf48221d..cd9191da596 100644 --- a/htdocs/langs/pt_PT/modulebuilder.lang +++ b/htdocs/langs/pt_PT/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s ModuleBuilderDesc3=Módulos gerados / editáveis ​​encontrados: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Um módulo é detectado como 'editável' quando o arquivo %s ? Isso irá mudar o código na classe PHP, mas também removerá a coluna da definição da tabela do objeto. NotNull=Não nulo NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=É uma medida DirScanned=Diretório varrido NoTrigger=Nenhum gatilho NoWidget=Nenhum widget -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=Lista de entradas do menu ListOfDictionariesEntries=List of dictionaries entries ListOfPermissionsDefined=Lista de permissões definidas SeeExamples=Veja exemplos aqui -EnabledDesc=Condição para ter este campo ativo (Exemplos: 1 ou $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Display on PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=O valor do campo pode ser acumulado para obter um total na lista? (Exemplos: 1 ou 0) SearchAllDesc=O campo é usado para fazer uma pesquisa a partir da ferramenta de pesquisa rápida? (Exemplos: 1 ou 0) SpecDefDesc=Digite aqui toda a documentação que você deseja fornecer com seu módulo que ainda não está definido por outras guias. Você pode usar .md ou melhor, a rica sintaxe .asciidoc. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Use a specific editor URL UseSpecificFamily = Use a specific family UseSpecificAuthor = Use a specific author UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. -ShowOnCombobox=Show value into combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Key for tooltip CSSClass=CSS for edit/create form CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Not editable ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii to HTML converter AsciiToPdfConverter=Ascii to PDF converter TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/pt_PT/mrp.lang b/htdocs/langs/pt_PT/mrp.lang index 9be23acab93..e04dfdf4784 100644 --- a/htdocs/langs/pt_PT/mrp.lang +++ b/htdocs/langs/pt_PT/mrp.lang @@ -11,8 +11,8 @@ Bom=Faturas do Material BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Configuração do módulo de FM -ListOfBOMs=Lista das faturas do material - FM -ListOfManufacturingOrders=Lista das Encomendas de Manufaturação +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Encomendas de Manufatura NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=Modelos de numeração de FM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? ManufacturingEfficiency=Eficiência de manufaturação ConsumptionEfficiency=Eficiência de consumo +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Eliminar Faturas de Materiais @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. ProductionForRef=Production of %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached NoStockChangeOnServices=Nenhuma alteração de ''stock'' nos serviços ProductQtyToConsumeByMO=Product quantity still to consume by open MO @@ -80,6 +83,7 @@ ProductsToProduce=Produtos para produzir UnitCost=Custo unitário TotalCost=Custo total BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/pt_PT/oauth.lang b/htdocs/langs/pt_PT/oauth.lang index 0b88ff02f99..acbcbc6ca4e 100644 --- a/htdocs/langs/pt_PT/oauth.lang +++ b/htdocs/langs/pt_PT/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Um token foi gerado e guardado na base-de-dados local NewTokenStored=Token recebido e guardado ToCheckDeleteTokenOnProvider=Clique aqui para verificar/eliminar a autorização guardada por %s fornecedor de OAuth TokenDeleted=Token eliminado -RequestAccess=Clique aqui para solicitar/renovar o acesso e receber um novo token para guardar +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Clique aqui para eliminar o token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Página para gerar um token OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Veja o separador anterior +OAuthProvider=OAuth provider OAuthIDSecret=ID OAuth e Segredo TOKEN_REFRESH=Token Refresh presente TOKEN_EXPIRED=O token expirou @@ -23,10 +24,13 @@ TOKEN_DELETE=Eliminar token guardado OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang index a52c82329ee..33db248cf58 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Orçamento validado Notify_PROPAL_CLOSE_SIGNED=Proposta do cliente fechada assinada +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Proposta do cliente fechada recusada +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Orçamento enviado por correio Notify_WITHDRAW_TRANSMIT=Retirada de transmissão Notify_WITHDRAW_CREDIT=Retirada de crédito @@ -181,6 +183,7 @@ SizeUnitfoot=pé SizeUnitpoint=ponto BugTracker=Incidencias SendNewPasswordDesc=Este formulário permite-lhe solicitar uma nova palavra-passe. Esta será enviada para o seu endereço de e-mail.
    A alteração será aplicada quando clicar na hiperligação de confirmação na mensagem.
    Verifique a sua caixa de entrada. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Voltar à página de iniciar a sessão AuthenticationDoesNotAllowSendNewPassword=o modo de autenticação de Dolibarr está configurado como "%s".
    em este modo Dolibarr não pode conocer ni modificar a sua palavra-passe
    Contacte com a sua administrador para conocer as modalidades de alterar. EnableGDLibraryDesc=Instale ou ative a biblioteca GD na instalação do PHP para usar esta opção. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Fechar Autofill = Autofill + +# externalsite +ExternalSiteSetup=Configurar hiperligação para o site da Web externo +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=O módulo Site Externo não está configurado correctamente. +ExampleMyMenuEntry=Minha entrada de menu + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Falha ao remover o ficheiro: %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Modo passivo +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Falha a obter os ficheiros%s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/pt_PT/projects.lang b/htdocs/langs/pt_PT/projects.lang index f72fb9fa22b..7074a9b4f3c 100644 --- a/htdocs/langs/pt_PT/projects.lang +++ b/htdocs/langs/pt_PT/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Esta visualização apresenta todos os projetos e tarefas que es TasksDesc=Esta visualização apresenta todos os projetos e tarefas (as suas permissões de utilizador concedem-lhe permissão para ver tudo). AllTaskVisibleButEditIfYouAreAssigned=Todas as tarefas para projetos qualificados são visíveis, mas você pode inserir o tempo apenas para a tarefa atribuída ao usuário selecionado. Atribuir tarefa se você precisar inserir tempo nela. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Tarefas dos projetos ProjectCategories=Etiquetas/categorias de projeto NewProject=Novo projeto @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Leva quantidade de projetos abertos por sta OpportunitiesStatusForProjects=Leva quantidade de projetos por status ShowProject=Mostrar Projeto ShowTask=Ver tarefa +SetThirdParty=Set third party SetProject=Definir Projeto +OutOfProject=Out of project NoProject=Nenhum projeto definido ou possuído NbOfProjects=Number of projects NbOfTasks=Number of tasks @@ -122,7 +125,8 @@ ValidateProject=Validar projeto ConfirmValidateProject=Tem certeza de que deseja validar este projeto? CloseAProject=Fechar projeto ConfirmCloseAProject=Tem a certeza de que deseja fechar este projeto? -AlsoCloseAProject=Também feche o projeto (mantenha-o aberto se você ainda precisar seguir as tarefas de produção) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Reabrir projeto ConfirmReOpenAProject=Tem a certeza de que deseja reabrir este projeto? ProjectContact=Contactos do projeto @@ -165,7 +169,7 @@ OpportunityProbability=Probabilidade de chumbo OpportunityProbabilityShort=Lead probab. OpportunityAmount=Quantidade de chumbo OpportunityAmountShort=Lead amount -OpportunityWeightedAmount=Opportunity weighted amount +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. weighted amount OpportunityAmountAverageShort=Average lead amount OpportunityAmountWeigthedShort=Weighted lead amount @@ -238,7 +242,7 @@ OppStatusPENDING=Pendente OppStatusWON=Ganho OppStatusLOST=Perdido Budget=Orçamento -AllowToLinkFromOtherCompany=Allow to link project from other company

    Supported values:
    - Keep empty: Can link any project of the company (default)
    - "all": Can link any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Últimos projetos %s LatestModifiedProjects=Últimos %s projetos modificados OtherFilteredTasks=Outras tarefas filtradas @@ -259,7 +263,7 @@ TimeSpentInvoiced=Time spent billed TimeSpentForIntervention=Tempos Dispendidos TimeSpentForInvoice=Tempos Dispendidos OneLinePerUser=One line per user -ServiceToUseOnLines=Service to use on lines +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/pt_PT/propal.lang b/htdocs/langs/pt_PT/propal.lang index 0bf3d1fa926..281d1802dc4 100644 --- a/htdocs/langs/pt_PT/propal.lang +++ b/htdocs/langs/pt_PT/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Sem orçamentos rascunhos CopyPropalFrom=Criar orçamento, copiando um orçamento existente CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Prazo de validade predefinido do orçamento (em dias) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Tem a certeza que pretende clonar o orçamento %s? ConfirmReOpenProp=Tem a certeza que pretende reabrir o orçamento %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Disponibilidade atraso SetAvailability=Definir atraso disponibilidade AfterOrder=após a ordem OtherProposals=Outros orçamentos + ##### Availability ##### AvailabilityTypeAV_NOW=Imediato AvailabilityTypeAV_1W=1 semana AvailabilityTypeAV_2W=2 semanas AvailabilityTypeAV_3W=3 semanas AvailabilityTypeAV_1M=1 mês -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representante que dá seguimento ao orçamento TypeContact_propal_external_BILLING=Contacto na fatura do cliente TypeContact_propal_external_CUSTOMER=Contacto do cliente que dá seguimento ao orçamento TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Modelo predefinido quando fechar um orçamento (não faturado) DefaultModelPropalCreate=Criação do modelo padrão DefaultModelPropalToBill=Modelo predefinido quando fechar um orçamento (a faturar) -DefaultModelPropalClosed=Modelo predefinido quando fechar um orçamento (não faturado) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Recusar +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Aceitação escrita, carimbo da empresa, data e assinatura ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/pt_PT/recruitment.lang b/htdocs/langs/pt_PT/recruitment.lang index a0adb2ce697..cf4e8ad1f0e 100644 --- a/htdocs/langs/pt_PT/recruitment.lang +++ b/htdocs/langs/pt_PT/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Salário +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/pt_PT/salaries.lang b/htdocs/langs/pt_PT/salaries.lang index 8fdd98d9a8d..9f90a1b059c 100644 --- a/htdocs/langs/pt_PT/salaries.lang +++ b/htdocs/langs/pt_PT/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Conta contabilística utilizada para utilizadores de terceiros -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta contabilística usada por defeito para pagamentos de salários CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Salário @@ -24,3 +24,4 @@ SalariesStatistics=Salary statistics SalariesAndPayments=Salaries and payments ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/pt_PT/stocks.lang b/htdocs/langs/pt_PT/stocks.lang index 3751b84730c..93a11d7c52c 100644 --- a/htdocs/langs/pt_PT/stocks.lang +++ b/htdocs/langs/pt_PT/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Limite de estoque para estoque ideal de alerta e de ProductStockWarehouseUpdated=Limite de estoque para estoque ótimo de alerta e desejado atualizado corretamente ProductStockWarehouseDeleted=Limite de estoque para alerta e estoque ideal desejado corretamente excluídos AddNewProductStockWarehouse=Definir novo limite para alerta e estoque ideal desejado -AddStockLocationLine=Diminuir quantidade, em seguida, clique para adicionar outro armazém para este produto +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Data de Inventário Inventories=Inventories NewInventory=Novo inventário @@ -254,7 +254,7 @@ ReOpen=Reabrir ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Iniciar InventoryStartedShort=Iniciada ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Definições +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/pt_PT/ticket.lang b/htdocs/langs/pt_PT/ticket.lang index 9ed3c42da2d..64492af80b7 100644 --- a/htdocs/langs/pt_PT/ticket.lang +++ b/htdocs/langs/pt_PT/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Eliminar tickets Permission56004=Gerir tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,8 +91,8 @@ TicketPublicAccess=Uma interface pública que não requer identificação está TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Configuração da variável do módulo TicketParamMail=Configuração de e-mail -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=O texto especificado aqui será inserido no email confirm TicketParamPublicInterface=Configuração da interface pública TicketsEmailMustExist=Exigir um endereço de email existente para criar um ticket TicketsEmailMustExistHelp=Na interface pública, o endereço de email já deve estar preenchido no banco de dados para criar um novo ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Interface pública TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Bilhete agora é atribuído TicketChangeType=Alterar tipo TicketChangeCategory=Change analytic code TicketChangeSeverity=Alterar a severidade -TicketAddMessage=Adicionar uma mensagem -AddMessage=Adicionar uma mensagem +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket adicionado TicketMessageSuccessfullyAdded=Mensagem adicionada com sucesso TicketMessagesList=Lista de mensagens @@ -202,8 +206,8 @@ TicketSeverity=Severidade ShowTicket=Ver ticket RelatedTickets=Tickets relacionados TicketAddIntervention=Criar intervenção -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirmar o fecho do ticket ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Enviar mensagem por email TicketNewMessage=Nova mensagem ErrorMailRecipientIsEmptyForSendTicketMessage=O destinatário está vazio. Nenhum email enviado TicketGoIntoContactTab=Por favor, vá para a aba "Contatos" para selecioná-los -TicketMessageMailIntro=Introdução +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Este texto é adicionado apenas no início do email e não será salvo. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Assinatura -TicketMessageMailSignatureHelp=Este texto é adicionado somente no final do email e não será salvo. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Assinatura do email de resposta -TicketMessageMailSignatureHelpAdmin=Este texto será inserido após a mensagem de resposta. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Apenas este texto será salvo na lista de mensagens no cartão do ticket. TicketMessageSubstitutionReplacedByGenericValues=As variáveis ​​de substituição são substituídas por valores genéricos. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Tempo decorrido desde TicketTimeToRead=Tempo decorrido antes de ler TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket atribuído TicketAssignedEmailBody=Foi-lhe atribuído o ticket #%s por %s MarkMessageAsPrivate=Marcar mensagem como privada +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Esta mensagem não será exibida para usuários externos TicketEmailOriginIssuer=Emissor na origem dos bilhetes InitialMessage=Mensagem inicial @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Você pode ver o progresso do ticket na TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Por favor, não responda diretamente a este e-mail! Use o link para responder na interface. TicketPublicInfoCreateTicket=Este formulário permite que você registre um ticket de suporte em nosso sistema de gerenciamento. -TicketPublicPleaseBeAccuratelyDescribe=Por favor descreva com precisão o problema. Forneça a melhor informação possível para podermos identificar o mais corretamente possível o seu pedido. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Insira o código de acompanhamento do bilhete TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID diff --git a/htdocs/langs/pt_PT/users.lang b/htdocs/langs/pt_PT/users.lang index 9df09a68893..f09f2d94239 100644 --- a/htdocs/langs/pt_PT/users.lang +++ b/htdocs/langs/pt_PT/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Remover do grupo PasswordChangedAndSentTo=Palavra-passe alterada e enviada para %s. PasswordChangeRequest=Pedido para alterar a palavra-passe a %s PasswordChangeRequestSent=Pedido para alterar a palavra-passe para %s enviada para %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirmar restauração da palavra-passe MenuUsersAndGroups=Utilizadores e Grupos @@ -68,7 +68,6 @@ CreateDolibarrLogin=Criar um Utilizador CreateDolibarrThirdParty=Criar um Terceiro LoginAccountDisableInDolibarr=A conta está desativada no Dolibarr. UsePersonalValue=Utilizar valores personalizados -InternalUser=Utilizador Interno ExportDataset_user_1=Users and their properties DomainUser=Utilizador de Domínio %s Reactivate=Reativar @@ -114,7 +113,7 @@ UserLogoff=Terminar sessão do utilizador UserLogged=Utilizador conectado DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 090407e21f5..90cb7896f1f 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Țări care nu se află în CEE CountriesInEECExceptMe=Țările din CEE, cu excepția celor din %s CountriesExceptMe=Toate țările, cu excepția %s AccountantFiles=Export documente sursă -ExportAccountingSourceDocHelp=Cu acest instrument, poți exporta evenimentele sursă (listă în CSV și PDF) care sunt utilizate pentru a genera operaţiunile de contabilitate. +ExportAccountingSourceDocHelp=Cu acest instrument, poți căuta și exporta evenimentele sursă care sunt utilizate pentru generare tranzacții contabilitate.
    Fișierul ZIP exportat va conține listele de articole solicitate în CSV, precum și fișierele atașate acestora în formatul lor original (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Pentru export jurnale, foloseşte meniul %s - %s. +ExportAccountingProjectHelp=Specifică un proiect dacă ai nevoie de un raport contabil numai pentru un anumit proiect. Rapoartele de cheltuieli și plățile împrumuturilor nu sunt incluse în rapoartele de proiect. VueByAccountAccounting=Vizualizare după contul contabil VueBySubAccountAccounting=Vizualizați după subcont contabil @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Contul contabil principal pentru furnizorii ca MainAccountForUsersNotDefined=Contul contabil principal pentru utilizatorii care nu sunt definiți în configurare MainAccountForVatPaymentNotDefined=Contul contabil principal pentru plăţile de TVA care nu sunt definite în configurare MainAccountForSubscriptionPaymentNotDefined=Contul contabil principal pentru plăţile de abonamente care nu sunt definite în configurare +UserAccountNotDefined=Contul contabil pentru utilizator nu a fost definit în configurare AccountancyArea=Zona contabilă AccountancyAreaDescIntro=Utilizarea modulului de contabilitate se face în mai multe etape: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Dezactivează înregistrarea directă a tranzacției ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Activați schița de export în jurnal ACCOUNTANCY_COMBO_FOR_AUX=Activare listă combinată pentru contul subsidiar (poate fi lent dacă aveți o mulțime de terți, întrerupe capacitatea de a căuta după o valoare parţială) ACCOUNTING_DATE_START_BINDING=Definiți o dată pentru a începe legarea și transferul în contabilitate. Înainte de această dată, tranzacțiile nu vor fi transferate în contabilitate. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=La transferul contabil, selectați perioada în mod implicit +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Pentru transferul contabil, care este perioada selectată implicit  -ACCOUNTING_SELL_JOURNAL=Jurnal vânzări -ACCOUNTING_PURCHASE_JOURNAL=Jurnal cumpărări -ACCOUNTING_MISCELLANEOUS_JOURNAL=Jurnal diverse +ACCOUNTING_SELL_JOURNAL=Jurnal de vânzări (vânzări și retururi) +ACCOUNTING_PURCHASE_JOURNAL=Jurnal de achiziții (achiziții și retururi) +ACCOUNTING_BANK_JOURNAL=Jurnal de numerar (încasări și plăți) ACCOUNTING_EXPENSEREPORT_JOURNAL=Jurnalul rapoartelor de cheltuieli -ACCOUNTING_SOCIAL_JOURNAL=Jurnal Asigurări Sociale +ACCOUNTING_MISCELLANEOUS_JOURNAL=Registrul jurnal ACCOUNTING_HAS_NEW_JOURNAL=Are un nou jurnal +ACCOUNTING_INVENTORY_JOURNAL=Jurnalul de inventar +ACCOUNTING_SOCIAL_JOURNAL=Jurnal Asigurări Sociale ACCOUNTING_RESULT_PROFIT=Contul contabil rezultat (Profit) ACCOUNTING_RESULT_LOSS=Contul contabil rezultat (Pierdere) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Jurnal de închidere -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cont contabil de virament pentru transfer bancar +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont pentru transferurile bancare tranzitorii TransitionalAccount=Cont tranzitoriu de transfer bancar -ACCOUNTING_ACCOUNT_SUSPENSE=Cont contabil de avans -DONATION_ACCOUNTINGACCOUNT=Contul contabil pentru înregistrarea donațiilor -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cont contabil pentru a înregistra abonamente +ACCOUNTING_ACCOUNT_SUSPENSE=Cont contabil (din Planul de Conturi) care urmează să fie utilizat ca și cont pentru fondurile nealocate fie primite, fie plătite, adică fonduri în "în aștept[are]" +DONATION_ACCOUNTINGACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat pentru a înregistra donații (modulul Donații)  +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat pentru a înregistra abonamentele de membru (modulul de Membri - dacă calitatea de membru este înregistrată fără factură) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT= Cont contabil implicit pentru înregistra depunerilor clientului -UseAuxiliaryAccountOnCustomerDeposit=Utilizează conturi analitice pe liniile de depozit ale clienților +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Contul contabil (din Planul de Conturi) va fi utilizat ca și cont implicit pentru a înregistra un depozit de la client  +UseAuxiliaryAccountOnCustomerDeposit=Stochează contul de client ca și cont contabil individual în registrul subsidiar pentru liniile de avans (dacă este dezactivat, contul individual pentru liniile de avans va rămâne gol) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Contul contabil (din Planul de Conturi) care va fi folosit în mod implicit +UseAuxiliaryAccountOnSupplierDeposit=Stocare cont furnizor ca și cont individual în registrul subsidiar pentru liniile de avans (dacă este dezactivat, contul individual pentru liniile de avans va rămâne gol)  -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Contul contabil implicit pentru produsele cumpărate (se foloseşte dacă nu este definit în fișa de produs) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT= Contul contabil implicit pentru produsele cumpărate din CEE (utilizat dacă nu este definit în fișa de produs) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT= Contul contabil implicit pentru produsele cumpărate și importate din CEE (utilizate dacă nu sunt definite în fișa de produs) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cont contabil implicit pentru produsele vândute (vor fi utilizate dacă nu sunt definite în fișa produsului) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cont contabil implicit pentru produsele vândute în CEE (se utilizează dacă nu este definit în fișa de produs) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cont contabil implicit pentru produsele vândute și exportate din CEE (se utilizează dacă nu este definit în fișa de produs) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru produsele achiziționate din aceeași țară (utilizat dacă nu este definit în fișa de produs) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru produsele achiziționate din CEE către o altă țară CEE (utilizat dacă nu este definit în fișa de produs) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru produsele achiziționate și importate din orice altă țară (utilizat dacă nu este definit în fișa de produs) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru produsele vândute (utilizat dacă nu este definit în fișa de produs)  +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru produsele vândute din CEE în altă țară CEE (utilizat dacă nu este definit în fișa de produs) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru produsele vândute și exportate în orice altă țară (utilizat dacă nu este definit în fișa de produs) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cont contabil implicit pentru serviciile achiziţionate (va fi utilizat dacă nu este definit în fișa serviciului) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cont contabil implicit pentru serviciile cumpărate din CEE (se utilizează dacă nu este definit în fișa de servicii) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cont contabil implicit pentru serviciile cumpărate și importate din CEE (utilizat dacă nu este definit în fișa de servicii) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cont contabil implicit pentru serviciile vândute (va fi utilizat dacă nu este definit în fișa de servicii) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Contul contabil implicit pentru serviciile vândute în CEE (folosit dacă nu este definit în fișa de servicii) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Contul contabil implicit pentru serviciile vândute și exportate din CEE (utilizat dacă nu este definit în fișa de servicii) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru serviciile achiziționate din aceeași țară (utilizat dacă nu este definit în fișa de servicii)  +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru serviciile achiziționate din CEE către o altă țară CEE (utilizat dacă nu este definit în fișa de servicii) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru serviciile achiziționate și importate din altă țară (utilizat dacă nu este definit în fișa de servicii)  +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru serviciile vândute (utilizat dacă nu este definit în fișa de servicii)  +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru serviciile vândute din CEE către o altă țară CEE (utilizat dacă nu este definit în fișa de servicii) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru serviciile vândute și exportate în orice altă țară (utilizat dacă nu este definit în fișa de servicii)  Doctype=Tipul documentului Docdate=Data documentului @@ -211,7 +217,7 @@ Codejournal=Jurnal JournalLabel=Eticheta jurnalului NumPiece=Număr notă contabilă TransactionNumShort=Nr. tranzacţie -AccountingCategory=Grupă personalizată +AccountingCategory=Grupă personalizată de conturi GroupByAccountAccounting=Grupare după cont din registrul jurnal GroupBySubAccountAccounting=Grupare după cont de jurnal secundar AccountingAccountGroupsDesc=Puteți defini aici câteva grupe de conturi contabile. Acestea vor fi utilizate pentru rapoarte contabile personalizate. @@ -265,13 +271,13 @@ Reconcilable=Compensabil TotalVente=Cifra de afaceri totală înainte de impozitare TotalMarge=Total marje vânzări -DescVentilCustomer=Consultă aici lista liniilor de facturare clienți asociate (sau nu) contului contabil al produsului -DescVentilMore=În majoritatea cazurilor, dacă utilizați produse sau servicii predefinite și setați numărul contului pe fişa de produs/serviciu, aplicația va putea să facă asociere dintre liniile tale de factură și contul contabil, doar printr-un singur clic pe butonul "%s". Dacă contul contabil nu a fost setat pe fişele de produs/serviciu sau dacă mai aveți încă unele linii care nu sunt asociate la un cont, va trebui să faceți o asociere manuală din meniul "%s". -DescVentilDoneCustomer=Consultă aici lista liniilor de facturare pentru clienți și a contului contabil al produselor lor -DescVentilTodoCustomer=Asociază linii de facturare care nu sunt deja legate de contul contabil al produsului -ChangeAccount=Modificați contul contabil al produsului/serviciului pentru liniile selectate cu următorul cont contabil: +DescVentilCustomer=Consultă aici lista liniilor de factură ale clienților asociate (sau nu) unui cont de produs din planul de conturi  +DescVentilMore=În majoritatea cazurilor, dacă utilizezi produse sau servicii predefinite și setezi contul contabil (din planul de conturi) pe fișa de produs/serviciu, aplicația va putea face toate legăturile între liniile de factură și contul contabil , doar cu un singur clic pe butonul "%s". Dacă contul nu a fost setat pe fișa de produse/servicii sau dacă mai aveți linii neasociate la un cont, va trebui să faci o asociere manuală din meniul "%s". +DescVentilDoneCustomer=Consultă aici lista liniilor de facturi clienți și contul lor contabil de produse din planul de conturi +DescVentilTodoCustomer=Asociere linii de factură care nu sunt deja asociate cu un cont de produs din planul de conturi +ChangeAccount=Modificare cont de produs/serviciu (din planul de conturi) pentru liniile selectate cu următorul cont: Vide=- -DescVentilSupplier=Consultați aici lista liniilor de pe factura de achiziţie asociate sau nu la un cont de produs (doar înregistrările care nu au fost deja transferate în contabilitate sunt vizibile) +DescVentilSupplier=Modificare cont de produs/serviciu (din planul de conturi) pentru liniile selectate cu următorul cont: DescVentilDoneSupplier=Consultați aici lista liniilor facturilor furnizorilor și contul lor contabil DescVentilTodoExpenseReport=Asociere linii de rapoarte de cheltuieli care nu sunt deja asociate unui cont contabil de cheltuieli DescVentilExpenseReport=Consultă aici lista liniilor de rapoarte cheltuieli asociate (sau nu) unui cont contabil de cheltuieli @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Dacă configurezi contul contabil pe linii de raport DescVentilDoneExpenseReport=Consultați aici lista liniilor rapoartelor de cheltuieli și contul contabil a taxelor lor Closure=Închidere anuală -DescClosure=Consultă aici numărul de mișcări lunar care nu sunt încă validate și blocate +DescClosure=Consultă aici numărul de mișcări pe lună nevalidate și blocate OverviewOfMovementsNotValidated=Prezentare generală a mișcărilor nevalidate și blocate AllMovementsWereRecordedAsValidated=Toate mișcările au fost înregistrate ca validate și blocate NotAllMovementsCouldBeRecordedAsValidated=Nu toate mișcările au putut fi înregistrate ca validate și blocate -ValidateMovements=Validare şi blocare înregistrare... +ValidateMovements=Validează și blochează mișcări... DescValidateMovements= Orice modificare sau ștergere a înregistrărilor va fi interzisă. Toate intrările pentru un exercițiu financiar trebuie validate, altfel închiderea nu va fi posibilă ValidateHistory=Asociază automat AutomaticBindingDone=Asicierea automată a fost efectuată (%s) - Asocierea automată nu este posibilă pentru unele înregistrări (%s) -ErrorAccountancyCodeIsAlreadyUse=Eroare, nu puteți șterge acest cont contabil, deoarece este folosit +ErrorAccountancyCodeIsAlreadyUse=Eroare, nu poți elimina sau dezactiva acest cont contabil pentru că este utilizat MvtNotCorrectlyBalanced=Mișcarea nu este echilibrată corect. Debit = %s & Credit = %s Balancing=în balanţă FicheVentilation=Fişă asociere GeneralLedgerIsWritten=Tranzacțiile sunt scrise în Registrul jurnal GeneralLedgerSomeRecordWasNotRecorded=Unele tranzacții nu au putut fi înregistrate în jurnal. Dacă nu există niciun alt mesaj de eroare, acest lucru se datorează, probabil, faptului că au fost deja înregistrate în jurnal. NoNewRecordSaved=Nu mai sunt înregistrări de transferat -ListOfProductsWithoutAccountingAccount=Lista produselor care nu sunt asociate unui cont contabil +ListOfProductsWithoutAccountingAccount=Lista produselor care nu sunt legate de niciun cont din planul de conturi ChangeBinding=Schimbați asocierea Accounted=Contabilizat în Registrul Jurnal NotYetAccounted=Netransferat încă în contabilitate @@ -319,9 +325,10 @@ AccountingJournalType1=Operațiuni diverse AccountingJournalType2=Vânzări AccountingJournalType3=Achiziţii AccountingJournalType4=Banca -AccountingJournalType5=Raport de Cheltuieli +AccountingJournalType5=Rapoarte de cheltuieli AccountingJournalType8=Inventar AccountingJournalType9=Are nou +GenerationOfAccountingEntries=Generare înregistrări contabile ErrorAccountingJournalIsAlreadyUse=Acest jurnal este deja folosit AccountingAccountForSalesTaxAreDefinedInto=Notă: contul contabil pentru taxe de vânzări este definit în meniul %s - %s NumberOfAccountancyEntries=Număr de intrări @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Număr de mișcări ACCOUNTING_DISABLE_BINDING_ON_SALES=Dezactivați legarea și transferul în contabilitate pentru vânzări (facturile clienților nu vor fi luate în considerare în contabilitate) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Dezactivați legarea și transferul în contabilitate pentru achiziții (facturile furnizor nu vor fi luate în considerare în contabilitate) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Dezactivați legarea și transferul în contabilitate pentru rapoartele de cheltuieli (rapoartele de cheltuieli nu vor fi luate în considerare în contabilitate) +ACCOUNTING_ENABLE_LETTERING=Activare funcție de numerotare în contabilitate ## Export +NotExportLettering=Nu exporta numerotările atunci când se generează fișierul NotifiedExportDate=Marcare linii exportate ca Exportate (pentru a modifica o linie, va trebui să ștergi întreaga tranzacție și să o retransferi în contabilitate) -NotifiedValidationDate=Validare şi blocare înregistrări exportate (același efect ca și caracteristica "Închidere", modificarea și ștergerea liniilor NU vor MAI fi posibile) +NotifiedValidationDate=Validare și blocare intrări exportate (același efect ca și caracteristica "%s", modificarea și ștergerea liniilor NU vor mai fi posibile) DateValidationAndLock=Dată de validare şi blocare ConfirmExportFile=Confirmare generare fișier de export contabil? ExportDraftJournal=Export jurnal schiţă @@ -398,7 +407,11 @@ Calculated=Calculat Formula=Formulă ## Reconcile +LetteringAuto=Reconciliere automată +LetteringManual=Reconciliere manuală Unlettering=Dereconciliere +UnletteringAuto=De-reconciliere automată +UnletteringManual=De-reconciliere manuală AccountancyNoLetteringModified=Nicio reconciliere modificată AccountancyOneLetteringModifiedSuccessfully=O reconciliere a fost modificată cu succes AccountancyLetteringModifiedSuccessfully=%s reconciliere modificată cu succes @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=O dereconciliere a fost modificat AccountancyUnletteringModifiedSuccessfully=Dereconcilierea %s a fost modificată cu succes ## Confirm box -ConfirmMassUnlettering=Confirmare dereconciliere în masă -ConfirmMassUnletteringQuestion=Sigur vrei să anulezi dereconcilierea înregistrăr(ilor) %s selectate?  +ConfirmMassUnletteringAuto=Confirmare de de-reconciliere automată în masă +ConfirmMassUnletteringManual=Confirmare de de-reconciliere manuală în masă +ConfirmMassUnletteringQuestion=Sigur vrei să anulezi reconcilierea înregistrăr(ilor) selectate %s ? ConfirmMassDeleteBookkeepingWriting=Confirmare ştergere în bloc ConfirmMassDeleteBookkeepingWritingQuestion=Aceasta va șterge tranzacția din contabilitate (toate liniile legate de aceeași tranzacție vor fi șterse) Sunteți sigur că doriți să ștergeți înregistrăr(ile) %sselectate? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Ne p AccountancyErrorMismatchLetterCode=Nepotrivire cod de reconciliere AccountancyErrorMismatchBalanceAmount=Soldul (%s) nu este egal cu 0 AccountancyErrorLetteringBookkeeping=Au apărut erori cu privire la tranzacții: %s +ErrorAccountNumberAlreadyExists=Numărul de cont contabil %s există deja ## Import ImportAccountingEntries=Intrări contabile @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Cod multi-monedă (Idevise) DateExport=Dată export WarningReportNotReliable=Atenție, acest raport nu se bazează pe registrul jurnal contabil, deci nu conține o tranzacție modificată manual în registrul contabil. Dacă jurnalele sunt actualizate, vizualizarea contabilă este mai precisă. ExpenseReportJournal=Jurnalul raportului de cheltuieli -InventoryJournal=Jurnal inventar NAccounts=%s conturi diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 07ed0020102..176a71551dd 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Îmbinare client WarningModuleNotActive=Modulul %s trebuie să fie activat WarningOnlyPermissionOfActivatedModules=Numai permisiunile legate de modulele activate sunt prezentate aici. Aveţi posibilitatea să activaţi alte module în Acasă->Setări->Module. DolibarrSetup=Dolibarr instalare sau actualizare -InternalUser=Utilizator intern -ExternalUser=Utilizator extern InternalUsers=Utilizatori interni ExternalUsers=Utilizatori externi UserInterface=Interfaţă utilizator @@ -109,7 +107,7 @@ NextValueForReplacements=Următoarea valoare(facturi de înlocuire) MustBeLowerThanPHPLimit=Notă: Configuraţia ta PHP permite încărcarea de fişiere cu dimensiuni de până la %s%s, indiferent de valoarea acestui parametru NoMaxSizeByPHPLimit=Notă: Nicio limită setată în configuraţia PHP MaxSizeForUploadedFiles=Mărimea maximă pentru fişierele încărcate (0 pentru a interzice orice încărcare) -UseCaptchaCode=Utilizaţi codul grafic (CAPTCHA) pe pagina de autentificare +UseCaptchaCode=Utilizare cod grafic (CAPTCHA) pe pagina de conectare și pe unele pagini publice AntiVirusCommand=Calea completă la comanda antivirus AntiVirusCommandExample=Exemplu pentru ClamAv Daemon (necesită clamav-daemon): /usr/bin/clamdscan
    Exemplu pentru ClamWin (foarte foarte lent): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Mai multe despre parametrii liniei de comandă @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Gazdă SMTP/SMTPS (valoarea implicită în php.ini: %s< MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Portul SMTP/SMTPS (nu este definit în PHP pe sistemele de tip Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Gazdă SMTP/SMTPS (nu este definită în PHP pe sistemele de tip Unix) MAIN_MAIL_EMAIL_FROM=Emailul expeditorului pentru emailurile automate (valoarea implicită în php.ini: %s) +EMailHelpMsgSPFDKIM=Pentru a preveni ca email-urile din sistem Dolibarr să fie clasificate ca spam, asigură-te că serverul este autorizat să trimită email-uri de la această adresă prin configurația SPF și DKIM MAIN_MAIL_ERRORS_TO=Emailul utilizat pentru emailurile care se întorc cu erori (câmpurile 'Error-To' din emailurile trimise) MAIN_MAIL_AUTOCOPY_TO= Copie (Bcc) pentru toate emailurile trimise către MAIN_DISABLE_ALL_MAILS=Dezactivați trimiterea tuturor e-mailurilor (în scopuri de testare sau demonstrații) @@ -439,8 +438,10 @@ Unique=Unic Boolean=Boolean (o casetă de selectare) ExtrafieldPhone = Telefon ExtrafieldPrice = Preţ +ExtrafieldPriceWithCurrency=Preț în monedă ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Listă de selecţie ExtrafieldSelectList = Selecţie din tabel ExtrafieldSeparator=Separator (nu un câmp) @@ -477,7 +478,7 @@ InstalledInto=Instalat în director %s BarcodeInitForThirdparties=Coduri de bare în masă pentru terți BarcodeInitForProductsOrServices=Iniţializare sau resetare coduri de bare în masă pentru produse şi servicii CurrentlyNWithoutBarCode=În prezent, aveţi %s înregistrări pe %s %s fără cod de bare definit. -InitEmptyBarCode=Valoare de inițializare pentru următoarele %s înregistrări goale +InitEmptyBarCode=Valoarea inițială pentru codurile de bare %s goale EraseAllCurrentBarCode=Ștergeți toate valorile curente de coduri de bare ConfirmEraseAllCurrentBarCode=Sigur doriți să ștergeți toate valorile actuale ale codurilor de bare? AllBarcodeReset=Toate valorile codurilor de bare au fost şterse @@ -501,10 +502,11 @@ WarningPHPMail=ATENŢIE: Configurarea pentru trimitea de email-uri din aplicați WarningPHPMailA=- Utilizarea serverului furnizorului de servicii de e-mail crește fiabilitatea e-mailului dvs., astfel încât crește livrabilitatea fără a fi semnalată ca SPAM WarningPHPMailB=- Unii furnizori de servicii de email (cum ar fi Yahoo) nu vă permit să trimiteți un email de pe alt server decât propriul server. Configurarea dvs. actuală utilizează serverul aplicației pentru a trimite email-uri și nu serverul furnizorului dvs. de email, deci unii destinatari (cei compatibili cu protocolul restrictiv DMARC), vă vor întreba furnizorul de email dacă vă pot accepta emailul și unii furnizori de email (cum ar fi Yahoo) poate răspunde "nu" deoarece serverul nu este al lor, așa că puține emailuri trimise pot să nu fie acceptate pentru livrare (aveți grijă și la cota de trimitere a furnizorului dvs. de email). WarningPHPMailC=- Utilizând serverul SMTP al furnizorului de servicii email pentru a trimite email-uri este, de asemenea, interesantă, astfel încât toate email-urile trimise din aplicație vor fi, de asemenea, salvate în directorul "Trimise" al cutiei poștale. -WarningPHPMailD=De asemenea, este recomandat, prin urmare, schimbarea metodei de trimitere a email-urilor la "SMTP". Dacă vrei cu adevărat să păstrezi metoda implicită "PHP" pentru a trimite email-uri, trebuie doar să ignori acest avertisment sau să îl elimini setând constanta MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP la 1 în Acasă - Setări - Alte setări. +WarningPHPMailD=Prin urmare, este recomandat să schimbi metoda de trimitere a email-urilor la valoarea "SMTP". +WarningPHPMailDbis=Dacă vrei cu adevărat să păstrezi metoda implicită "PHP" pentru a trimite email-uri, ignoră acest avertisment sau elimină-l făcând %sclic aici%s. WarningPHPMail2=Dacă furnizorul dvs. de e-mail SMTP trebuie să restricționeze clientul de email la unele adrese IP (foarte rar), aceasta este adresa IP a agentului utilizator de email (MUA) pentru aplicația ERP CRM: %s. WarningPHPMailSPF=Dacă numele domeniului din adresa de email a expeditorului este protejat de o înregistrare SPF (adresează-te registratorului numelui de domeniu), trebuie să adaugi următoarele IP-uri în înregistrarea SPF DNS a domeniului tău: %s. -ActualMailSPFRecordFound=Înregistrare SPF actuală găsită : %s +ActualMailSPFRecordFound=Înregistrare SPF reală găsită (pentru email-ul %s) : %s ClickToShowDescription=Faceți clic pentru a afișa descrierea DependsOn=Acest modul are nevoie de modulul(lele) RequiredBy=Acest modul este solicitat de modulul(lele) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Exemplu:
    Pentru formularul de creare a u PageUrlForDefaultValuesList=
    Exemplu:
    Pentru pagina care afișează terți, este %s.
    Pentru URL-ul modulelor externe instalate în directorul personalizat, nu include "custom/" utilizează o cale ca mymodule/mypagelist.php și nu custom/mymodule/mypagelist.php.
    Utilizează valoarea implicită numai dacă URL-ul are un anumit parametru, %s AlsoDefaultValuesAreEffectiveForActionCreate=De asemenea, rețineți că suprascrierea valorilor implicite pentru crearea de formulare funcționează numai pentru paginile care au fost proiectate corect (deci cu parametrul de action=create sau view...) EnableDefaultValues=Activați personalizarea valorilor implicite -EnableOverwriteTranslation=Activați utilizarea traducerilor cu suprascriere +EnableOverwriteTranslation=Permite personalizarea traducerilor GoIntoTranslationMenuToChangeThis=A fost găsită o traducere pentru cheia cu acest cod. Pentru a modifica această valoare, trebuie să o editați din Acasă-Setări-Traduceri. WarningSettingSortOrder=Atenţie, setarea unei ordini de sortare implicite poate duce la o eroare tehnică atunci când mergeți în lista paginii dacă câmpul este un câmp necunoscut. Dacă întâmpinați o astfel de eroare, reveniți la această pagină pentru a elimina ordinea de sortare implicită și pentru a restabili comportamentul implicit. Field=Câmp @@ -645,9 +647,9 @@ Module2400Name=Evenimente/Agendă Module2400Desc=Urmăriți evenimentele. Înregistrați evenimente automate sau manual pentru a nota activităţi sau întâlniri. Acesta este modulul principal pentru o bună gestionare a relațiilor cu clienții sau furnizorii. Module2500Name=DMS / ECM Module2500Desc=Sistemul de management al documentelor / Gestiunea conținutului electronic. Organizarea automată a documentelor tale generate sau stocate. Le poţi partaja dacă este necesar. -Module2600Name=Servicii API/Web (SOAP server) +Module2600Name=API / Servicii web (Server SOAP) Module2600Desc=Activați serverul SOAP pentru a furniza servicii API -Module2610Name=Servicii API/Web (server REST) +Module2610Name=API / Servicii web (Server REST) Module2610Desc=Activare server REST pentru furnizarea de servicii API Module2660Name=Call WebServices (SOAP client) Module2660Desc=Activați clientul de servicii Web (Poate fi folosit pentru a împinge datele/cererile către servere externe. În prezent, sunt acceptate numai comenzile de achiziţie.) @@ -698,6 +700,7 @@ Module62000Name=Incoterm Module62000Desc=Adăugați caracteristici pentru a gestiona Incoterms Module63000Name=Resurse Module63000Desc=Gestionarea resurselor (imprimante, mașini, camere, ...) pentru a le aloca evenimentelor +Module94160Name=Recepţii Permission11=Citeşte facturi clienţi Permission12=Creare/modificare facturi clienţi Permission13=Invalidează facturi client @@ -714,6 +717,7 @@ Permission27=Ştergere oferte comerciale Permission28=Export oferte comerciale Permission31=Citeşte produse/servicii Permission32=Creare/modificare produse/servicii +Permission33=Citește prețuri produse Permission34=Ştergere produse/servicii Permission36=Vizualizare/administrare de produse/servicii ascunse Permission38=Export de produse/servicii @@ -739,6 +743,7 @@ Permission79=Creare/modificare abonamente Permission81=Citeşte comenzile de vânzare Permission82=Creare/modificare comenzi de vânzare Permission84=Validare comenzi de vânzare +Permission85=Generare documente comenzi de vânzare Permission86=Trimitere comenzi de vânzare Permission87=Închidere comenzi de vânzare Permission88=Anulare comenzi de vânzare @@ -840,9 +845,9 @@ Permission286=Export contacte Permission291=Citeşte tarife Permission292=Setare permisiuni pe tarifele de Permission293=Modificare tarife client -Permission300=Citire coduri de bare -Permission301=Creare/modificare coduri de bare -Permission302=Șterge coduri de bare +Permission301=Generare PDF cu coduri de bare +Permission304=Creare/modificare coduri de bare +Permission305=Șterge coduri de bare Permission311=Citeşte servicii Permission312=Atribuire serviciu/abonament la contract Permission331=Citire marcaje @@ -874,6 +879,7 @@ Permission525=Accesare calculator de credite Permission527=Export credite împrumuturi Permission531=Citeşte servicii Permission532=Creare/modificare servicii +Permission533=Citește prețuri servicii Permission534=Şterge servicii Permission536=Vede/administrează serviciile ascunse Permission538=Export servicii @@ -968,13 +974,14 @@ Permission3301=Generare module noi Permission4001=Citeşte abilitate/job/post Permission4002=Creare/modificare abilitate/job/post Permission4003=Şterge abilitate/job/post -Permission4020=Citeşte evaluări -Permission4021=Creare/modificare evaluare a ta -Permission4022=Validare evaluare -Permission4023=Ştergere evaluare -Permission4030=Vede meniul de comparare +Permission4021=Citește evaluări (proprii și ale subordonaților) +Permission4022=Creare/modificare evaluări +Permission4023=Validare evaluare +Permission4025=Ştergere evaluare +Permission4028=Vede meniul de comparare Permission4031=Citeşte informaţii personale Permission4032=Scrie informaţii personale +Permission4033=Citește toate evaluările (chiar și cele ale utilizatorilor care nu-i sunt subordonați) Permission10001=Citeşte conținut site web Permission10002=Creare/modificare conținut site web (html și conținut javascript) Permission10003=Creare/modificare conținut site web (cod php dinamic). Periculos, trebuie rezervat dezvoltatorilor restricționați. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Tip de amortizare active TypeOfUnit=Tip de unitate SetupSaved=Setări salvate SetupNotSaved=Setarea nu a fost salvată +OAuthServiceConfirmDeleteTitle=Șterge înregistrare OAuth +OAuthServiceConfirmDeleteMessage=Sigur vrei să ștergi această înregistrare OAuth? Toate token-urile existente pentru aceasta vor fi, de asemenea, șterse. +ErrorInEntryDeletion=Eroare la ștergerea înregistrării +EntryDeleted=Înregistrare ștearsă BackToModuleList=Înapoi la lista Module BackToDictionaryList=Înapoi la lista de dicționare TypeOfRevenueStamp=Tip taxă de timbru @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Valoarea unei constante de configurare ConstantIsOn=Opţiunea %s este activă NbOfDays=Nr. de zile AtEndOfMonth=La sfârşitul lunii -CurrentNext=Curentă/Următoare +CurrentNext=O anumită zi din lună Offset=Decalaj AlwaysActive=Întotdeauna activ Upgrade=Actualizare @@ -1235,11 +1246,13 @@ BrowserName=Nume browser BrowserOS=Browser OS ListOfSecurityEvents=Listă evenimente de securitate a sistemului SecurityEventsPurged=Evenimentele de securitate au fost şterse +TrackableSecurityEvents=Evenimente de securitate urmăribile LogEventDesc=Activați autentificarea pentru anumite evenimente de securitate. Administratorii se autentifica prin meniul %s - %s. Atenție, această caracteristică poate genera o cantitate mare de date în baza de date. AreaForAdminOnly=Parametrii de configurare pot fi setați numai de utilizatorii administratori. SystemInfoDesc=Informațiile de sistem sunt informații tehnice diverse pe care le poţi accesa numai în modul citire, fiind vizibile numai pentru administratori. SystemAreaForAdminOnly=Această zonă este disponibilă numai pentru administratori. Permisiunile utilizatorilor de sistem nu pot modifica această restricție. CompanyFundationDesc=Editează informaţiile despre compania/organizaţia ta. Dă click pe butonul "%s" din josul paginii când ai terminat. +MoreNetworksAvailableWithModule=Mai multe rețele sociale pot fi disponibile activând modulul "Rețele sociale".  AccountantDesc= Dacă aveți un contabil/firmă de contabilitate externă, puteți modifica aici informațiile aferente. AccountantFileNumber=Cod contabil DisplayDesc=Parametrii care afectează aspectul și prezentarea aplicației pot fi modificați aici. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Trebuie să rulaţi această co YourPHPDoesNotHaveSSLSupport=Funcţiile SSL funcţii nu sunt disponibile în PHP. DownloadMoreSkins=Mai multe teme de descărcat SimpleNumRefModelDesc=Returnează numărul de referință în formatul %s yymm-nnnn unde yy este anul, mm este luna și nnnn este un număr secvențial cu incrementare automată fără resetare +SimpleRefNumRefModelDesc=Returnează numărul de referință în formatul n, unde n este un număr cu incrementare automată secvențială fără resetare +AdvancedNumRefModelDesc=Returnează numărul de referință în formatul %syymm-nnnn unde yy este anul, mm este luna și nnnn este un număr secvențial cu incrementare automată fără resetare SimpleNumRefNoDateModelDesc=Returnează numărul de referință în formatul %s-nnnn unde nnnn este un număr de incrementare automată secvențial fără resetare ShowProfIdInAddress=Afişează Id-ul profesional cu adresele ShowVATIntaInAddress=Ascunde codul de TVA intracomunitar @@ -1376,7 +1391,7 @@ GetBarCode=Preia cod de bare NumberingModules=Modele de numerotare DocumentModules=Şabloane documente ##### Module password generation -PasswordGenerationStandard=Returnați o parolă generată conform algoritmului intern Dolibarr: %scaractere numere și litere mici. +PasswordGenerationStandard=Returnează o parolă generată conform algoritmului intern Dolibarr: %s caractere care conțin numere și caractere partajate. PasswordGenerationNone=Nu sugera o parolă generată. Parola trebuie introdusă manual. PasswordGenerationPerso=Returnați o parolă în funcție de configurația ta personalizată. SetupPerso=În funcție de configurația ta @@ -1430,6 +1445,10 @@ SuppliersPayment=Plăți furnizori SupplierPaymentSetup=Configurare plăți furnizor InvoiceCheckPosteriorDate=Verficare data factură înainte de validare InvoiceCheckPosteriorDateHelp=Validarea unei facturi va fi interzisă dacă data acesteia este anterioară datei ultimei facturi de același tip. +InvoiceOptionCategoryOfOperations=Afișează pe factură mențiunea "Categorie operațiuni". +InvoiceOptionCategoryOfOperationsHelp=In functie de situatie, mentiunea va aparea sub forma:-
    Categorie operațiuni: Livrare bunuri
    - Categorie operațiuni: Prestare de servicii
    - Categorie operațiuni: Mixt - Livrare de bunuri & prestare de servicii +InvoiceOptionCategoryOfOperationsYes1=Da, sub blocul de adresă +InvoiceOptionCategoryOfOperationsYes2=Da, în colțul din stânga jos ##### Proposals ##### PropalSetup=Configurare modul Oferte Comerciale ProposalsNumberingModules=Modele numerotare Oferte comerciale @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Filigranul de pe contractele schiţă (niciunul da ##### Members ##### MembersSetup=Configurare modul Membri MemberMainOptions=Opţiuni principale +MemberCodeChecker=Opțiuni pentru generarea automată a codurilor de membru AdherentLoginRequired= Gestionează autentificarea pentru fiecare membru AdherentMailRequired=Emailul este necesar pentru a crea un nou membru MemberSendInformationByMailByDefault=Opţiunea de a trimite email de confirmare a membrilor(validare sau confirmare adeziune) este activă în mod implicit MemberCreateAnExternalUserForSubscriptionValidated=Creare cont de utilizator extern pentru fiecare adeziune de membru nou validat -VisitorCanChooseItsPaymentMode=Vizitatorul poate alege din modurile disponibile de plată +VisitorCanChooseItsPaymentMode=Vizitatorul poate alege toate modurile de plată disponibile MEMBER_REMINDER_EMAIL=Activați reminder automat prin email pentru adeziunile expirate. Notă: Modul %s trebuie să fie activat and setat corect pentru a trimite remindere. MembersDocModules=Șabloane documente pentru documentele generate din înregistrarea membrilor ##### LDAP setup ##### @@ -1717,7 +1737,7 @@ MailingDelay=Secunde de aşteptare pentru trimiterea următorului email NotificationSetup=Configurare modul Notificare pe email NotificationEMailFrom=Email expeditor (De la) pentru email-urile trimise de modulul Notificări FixedEmailTarget=Destinatar -NotificationDisableConfirmMessageContact=Ascundei listă destinatari notificări (abonați ca contact) în mesajul de confirmare +NotificationDisableConfirmMessageContact=Ascunde listă destinatari notificări (abonați ca contact) în mesajul de confirmare NotificationDisableConfirmMessageUser=Ascunde listă destinatari notificări (abonați ca utilizator) în mesajul de confirmare  NotificationDisableConfirmMessageFix=Ascunde listă destinatari notificări (abonați cu email global) în mesajul de confirmare ##### Sendings ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Activaţi editorul avansat pentru: FCKeditorForNotePublic=Creare/editare WYSIWIG câmp "note publice" pe elemente FCKeditorForNotePrivate=Creare/editare WYSIWIG câmp "note private" pe elemente FCKeditorForCompany=Creare/editare WYSIWIG câmp descriere elemente (cu excepția produselor/serviciilor)  -FCKeditorForProduct=Creare/editare WYSIWIG câmp descriere produse/servicii -FCKeditorForProductDetails=Crearea/editarea WYSIWIG a liniilor de detalii ale produselor pentru toate entitățile (propuneri, comenzi, facturi, etc.). Atenţie: Utilizarea acestei opțiuni pentru acest caz nu este serios recomandată, deoarece poate crea probleme cu caracterele speciale și formatarea paginilor atunci când creați fișiere PDF. +FCKeditorForProductDetails=Creare/editare WYSIWYG a descrierii produselor sau a liniilor pentru obiecte (linii de oferte, comenzi, facturi, etc...). +FCKeditorForProductDetails2=Atenție: Utilizarea acestei opțiuni pentru acest caz nu este recomandată, deoarece poate crea probleme cu caracterele speciale și formatarea paginii la generarea fișierelor PDF. FCKeditorForMailing= Creare/editare WYSIWIG pentru newslettere (Instrumente->Newslettere) FCKeditorForUserSignature=Creare/editare WYSIWIG a semnăturii utilizatorilor FCKeditorForMail=Creare/editare WYSIWIG pentru toate email-urile (cu excepția Instrumente->Newletter) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Handler meniu utilizat pentru afişarea noului meniu DetailMenuModule=Numele modulului dacă intrarea în meniu provine dintr-un modul DetailType=Tip meniu (sus sau stânga) DetailTitre=Etichetă meniu sau cod etichetă pentru traducere -DetailUrl=URL-ul la care te trimite meniul (URL absolut sau link extern de legătură cu http://) +DetailUrl=Adresa URL la care trimite meniul (link URL relativ sau link extern cu https://) DetailEnabled=Condiţia pentru a afişa sau nu elementul DetailRight=Condiţia pentru a afişa meniurile gri neautorizate DetailLangs=Nume fişier lang pentru cod etichetă de traducere @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Scăderea stocului la plata prin POS CashDeskYouDidNotDisableStockDecease=Nu ați dezactivat scăderea stocului la efectuarea unei vânzări de la POS. Prin urmare, este necesară specificarea unui depozit. CashDeskForceDecreaseStockLabel=Scăderea stocului pentru produsele din lot a fost forțată. CashDeskForceDecreaseStockDesc=Scădere mai întâi după cea mai vechi date de consum şi de vânzare. -CashDeskReaderKeyCodeForEnter=Cod tastă pentru "Enter" definit în cititorul de coduri de bare(Exemplu: 13) +CashDeskReaderKeyCodeForEnter=Codul ASCII pentru tasta "Enter" definit în cititorul de coduri de bare (Exemplu: 13) ##### Bookmark ##### BookmarkSetup=Configurare modul Bookmark-uri BookmarkDesc=Acest modul vă permite să gestionați marcajele. De asemenea, puteți adăuga comenzi rapide la orice pagini din sistem sau site-uri externe din meniul din stânga. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Modele de numerotare a facturilor furnizor IfSetToYesDontForgetPermission=Dacă este setată o valoare nulă, nu uitați să furnizați permisiuni grupurilor sau utilizatorilor autorizați pentru a doua aprobare ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configurare modul GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Calea spre fişierul Maxmind care conţine translatarea IP la ţară.
    Exemple:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Calea către fișierul care conține conversia IP Maxmind în țară NoteOnPathLocation=Reţine că fişierul de conversie IP la ţară trebuie să fie într-un director citibil de PHP (Verifică configurarea PHP open_basedir şi permisiunile de fişiere). YouCanDownloadFreeDatFileTo=Puteţi descărca o versiune demo gratuită a fişierului de ţară GeoIP Maxmind de la %s. YouCanDownloadAdvancedDatFileTo=Puteţi descărca de asemenea, o versiune mai completă, cu actualizări ale fişierului de ţară GeoIP Maxmind de la %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Wizard pentru generarea fişierului dump al bazei de date BackupZipWizard=Wizard pentru generarea arhivei cu directul de documente SomethingMakeInstallFromWebNotPossible=Instalarea modulului extern nu este posibilă din interfața web din următorul motiv: SomethingMakeInstallFromWebNotPossible2=Din acest motiv, procesul de actualizare descris aici este un proces manual pe care numai un utilizator privilegiat îl poate face. +InstallModuleFromWebHasBeenDisabledContactUs=Instalarea sau dezvoltarea de module externe sau site-uri web dinamice, din aplicație, este în prezent blocată din motive de securitate. Vă rugăm să ne contactați dacă trebuie să activați această funcție. InstallModuleFromWebHasBeenDisabledByFile=Instalarea de module externe din aplicație a fost dezactivată de administrator. Trebuie să-i soliciţi să şteargă fişierul %s pentru a permite această caracteristică. ConfFileMustContainCustom=Instalarea sau construirea unui modul extern din aplicație trebuie să salveze fişierele în directorul %s. Pentru a putea fi folosit de sistem, trebuie să configureziconf/conf.php adaugă 2 linii de directivă:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Evidențiați liniile tabelului când treceţi cu mouse-ul peste ele @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Apăsați CTRL + F5 sau ștergeți memoria cache a brow NotSupportedByAllThemes=Va funcționa cu teme de bază, poate nu este suportată de teme externe BackgroundColor=Culoare fundal TopMenuBackgroundColor=Culoare fundal pentru meniul de Sus -TopMenuDisableImages=Ascundeți imaginile în meniul de sus +TopMenuDisableImages=Pictogramă sau Text în meniul de sus LeftMenuBackgroundColor=Culoare fundal pentru meniul Stânga BackgroundTableTitleColor=Culoarea de fundal pentru linia de titlu a tabelului BackgroundTableTitleTextColor=Culoarea textului pentru linia de titlu a tabelelor @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Comenzi de achiziție MailToSendSupplierInvoice=Facturi furnizori MailToSendContract=Contracte MailToSendReception=Recepţii +MailToExpenseReport=Rapoarte de cheltuieli MailToThirdparty=Terţi MailToMember=Membri MailToUser=Utilizatori @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Marginea dreaptă a PDF-ului MAIN_PDF_MARGIN_TOP=Marginea superioară a PDF-ului MAIN_PDF_MARGIN_BOTTOM=Marginea inferioară a PDF-ului MAIN_DOCUMENTS_LOGO_HEIGHT=Înălţime logo în PDF +DOC_SHOW_FIRST_SALES_REP=Afișează primul reprezentant de vânzări MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Adaugă coloană pentru imagine pe liniile de ofertă MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Lăţimea coloanei dacă o poză este adăugată pe linie MAIN_PDF_NO_SENDER_FRAME=Ascunde marginile chenarului de adresă expeditor/furnizor @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Eliminați caracterele speciale COMPANY_AQUARIUM_CLEAN_REGEX=Filtrul Regex pentru a curăța valoarea (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Flitru Regex pentru curăţarea valorii (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Nu sunt permise duplicate +RemoveSpecialWords=Curățare anumite cuvinte atunci când se generează sub-conturi pentru clienți sau furnizori +RemoveSpecialWordsHelp=Specifică cuvintele de curățat înainte de a calcula contul de client sau furnizor. Folosește ";" între cuvinte GDPRContact=Responsabilul cu protecția datelor (DPO, confidențialitatea datelor sau contact GDPR ) GDPRContactDesc=Dacă stochezi date cu caracter personal în Sistemul tău informațional, poți specifica aici persoana de contact care este responsabilă pentru GDPR HelpOnTooltip=Text de ajutor care să apară pe butonul de sugestii @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Nota: Opțiunea de a utiliza impozitul pe vânzări sau taxa TVA SwapSenderAndRecipientOnPDF=Interschimbă poziţia adreselor expeditorului şi destinatarului în documentele PDF generate FeatureSupportedOnTextFieldsOnly=Atenție, caracteristică acceptată numai pe câmpurile de text și pe listele combinate. De asemenea, trebuie setat un parametru URL action=create sau action=edit SAU numele paginii trebuie să se termine cu 'new.php' pentru a declanșa această caracteristică. EmailCollector=Colector de emailuri +EmailCollectors=Colectoare email EmailCollectorDescription=Adăugați un job programat și o pagină de configurare pentru a scana în mod regulat căsuţele de email (utilizând protocolul IMAP) și pentru a înregistra emailurile primite în aplicația ta, la locul potrivit și/sau pentru a crea automat înregistrări (cum ar fi clienții). NewEmailCollector=Colector de emailuri nou EMailHost=Server gazdă de email IMAP +EMailHostPort=Port email server IMAP +loginPassword=Login/Parolă +oauthToken=Token Oauth2 +accessType=Tip acces +oauthService=Serviciu Oauth +TokenMustHaveBeenCreated=Modulul OAuth2 trebuie să fie activat și un token oauth2 trebuie să fi fost creat cu permisiunile corecte (de exemplu, domeniul "gmail_full" cu OAuth pentru Gmail). MailboxSourceDirectory=Directorul sursă al cutiei poștale MailboxTargetDirectory=Directorul ţintă al cutiei poștale EmailcollectorOperations=Operațiuni de făcut de către colector EmailcollectorOperationsDesc=Operațiunile sunt executate în ordinea de sus în jos MaxEmailCollectPerCollect=Număr maxim de email-uri colectae per operaţiune +TestCollectNow=Test colectare CollectNow=Colectați acum ConfirmCloneEmailCollector=Sigur vrei să clonezi colectorul de email-uri %s? DateLastCollectResult=Data ultimei încercări de colectare DateLastcollectResultOk=Data ultimei colectări cu succes LastResult=Ultimul rezultat EmailCollectorHideMailHeaders=Nu include conținutul antetului de email în conținutul salvat al email-urilor colectate -EmailCollectorHideMailHeadersHelp=Când este activat, anteturile de email nu sunt adăugate la sfârșitul conținutului care este salvat ca eveniment. +EmailCollectorHideMailHeadersHelp=Când este activat, anteturile de email nu sunt adăugate la sfârșitul conținutului care este salvat ca eveniment în agendă. EmailCollectorConfirmCollectTitle=Confirmarea colectării de emailuri EmailCollectorConfirmCollect=Vrei să rulezi acest colector acum? EmailCollectorExampleToCollectTicketRequestsDesc=Colectare email-uri care se potrivesc cu anumite reguli și creare automată tichet (Modulul Tichete trebuie să fie activat) cu informațiile de pe email. Poți folosi acest colector dacă oferi asistență prin email, astfel încât solicitarea de tichete va fi generată automat. Activează și Collect_Responses pentru a colecta răspunsurile clientului direct la vizualizarea tichetelor (trebuie să răspundeți din sistem). EmailCollectorExampleToCollectTicketRequests=Exemplu de colectare solicitare de tichet (numai primul mesaj) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scanează-ți directorul „Trimise” din cutia poștală pentru a găsi email-uri care au fost trimise ca răspuns la un alt email direct din clientul tău de email și nu din sistem. Dacă se găsește un astfel de email, evenimentul de răspuns este înregistrat în sistem EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Exemplu de colectare a răspunsurilor la email trimise de la un client extern de email -EmailCollectorExampleToCollectDolibarrAnswersDesc=Colectează toate email-urile care sunt un răspuns la un email trimis din aplicație. Un eveniment (Modulul Agendă trebuie să fie activat) cu răspunsul prin email va fi înregistrat la locul potrivit. De exemplu, dacă trimiți o ofertă comercială, o comandă, o factură sau un mesaj pentru un tichet pe email din aplicație, iar clientul îți răspunde la email, sistemul va capta automat răspunsul și îl va adăuga în ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Colectare toate email-urile care sunt un răspuns la un email trimis din aplicație. Un eveniment (Modulul Agenda trebuie să fie activat) cu răspunsul prin email va fi înregistrat la locul potrivit. De exemplu, dacă trimiți o ofertă comercială, o comandă, o factură sau un mesaj pentru un tichet pe email din aplicație, iar destinatarul îți răspunde la email, sistemul va captura automat răspunsul și îl va adăuga în ERP. EmailCollectorExampleToCollectDolibarrAnswers=Exemplu de colectare a tuturor mesajelor primite ca răspunsuri la mesajele trimise din sistem EmailCollectorExampleToCollectLeadsDesc=Colectare email-uri care corespund unor reguli și creare automată lead prospect (Modulul Proiecte trebuie să fie activat) cu informațiile email. Poți folosi acest colector dacă vrei să urmăreşti lead-ul folosind modulul Proiect (1 lead = 1 proiect), astfel încât lead-urile vor fi generate automat. Dacă colectorul Collect_Responses este de asemenea activat, atunci când trimiteți un email către clienții potențiali, oferte sau orice alt obiect, este posibil să vedeți și răspunsurile clienților sau partenerilor direct în aplicație.
    Notă: cu acest exemplu inițial, titlul lead-ului este generat incluzând emailul. Dacă terțul nu poate fi găsit în baza de date (client nou), clientul potențial va fi atașat terțului cu ID 1. EmailCollectorExampleToCollectLeads=Exemplu colectare lead-uri @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Colectează emailuri prin care EmailCollectorExampleToCollectJobCandidatures=Exemplu colectare candidaturi job primite pe email NoNewEmailToProcess=Niciun email de procesat (care sa se potriveasca cu filtrele) NothingProcessed=Nu s-a făcut nimic -XEmailsDoneYActionsDone=%semail-uri calificate, %s email-uri procesate cu succes (pentru %s înregistrări/acţiuni efectuate) +XEmailsDoneYActionsDone=%s email-uri precalificate, %s email-uri procesate cu succes (pentru %s înregistrări/acțiuni efectuate)  RecordEvent=Înregistrare eveniment în agendă (de tipul Trimitere email sau Recepţionare email) CreateLeadAndThirdParty=Creare lead (şi terţ dacă este cazul) CreateTicketAndThirdParty=Creare tichet (legat la un terţ dacă terțul a fost încărcat printr-o operațiune anterioară sau a fost ghicit dintr-un tracker din antetul email-ului, fără terț altfel) @@ -2105,7 +2138,7 @@ CreateCandidature=Creare aplicare la job FormatZip=Zip MainMenuCode=Codul de intrare a meniului (meniu principal) ECMAutoTree=Afișați arborele ECM automat -OperationParamDesc=Definire reguli de utilizat pentru a extrage sau a seta valori.
    Exemplu pentru operațiunile care trebuie să extragă un nume subiectul email-ului:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Exemplu pentru operațiuni de creare obiecte:
    objproperty1=SET:valoarea de setat
    objproperty2=SET:o valoare care include valoarea __objproperty1__
    objproperty3=SETIFEMPTY:valoare utilizată dacă objproperty3 nu este deja definit
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Foloseşte ; ca separator pentru a extrage sau a seta mai multe proprietăți. +OperationParamDesc=Definește regulile de utilizat pentru a extrage unele date sau setare valori de utilizat pentru operare.

    Exemplu pentru a extrage un nume de companie din subiectul e-mailului într-o variabilă temporară:
    tmp_var=EXTRACT:SUBJECT:Mesaj de la companie ([^\n]*)

    Exemple pentru a seta proprietățile unui obiect de creat:
    objproperty1=SET:o valoare codificată
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:o valoare (valoarea este setată numai dacă proprietatea nu este deja definită)
    objproperty4=EXTRACT:HEADER:X -Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Numele companiei mele este\\s([^\\s ]*)

    Folosește caracterul ; ca separator pentru a extrage sau a seta mai multe proprietăți. OpeningHours=Program de lucru OpeningHoursDesc=Introduceți aici programul de lucru normal ale companiei dvs. ResourceSetup=Configurarea modulului Resurse @@ -2167,6 +2200,10 @@ EmailTemplate=Şablon pentru email EMailsWillHaveMessageID=E-mailuri care conţin eticheta „Referințe” care se potrivesc cu această expresie PDF_SHOW_PROJECT=Afişează proiectul în document ShowProjectLabel=Etichetă proiect +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias-ul în numele terților +THIRDPARTY_ALIAS=Nume terț - Alias ​​terț +ALIAS_THIRDPARTY=Alias ​​terț - Nume terț +PDFIn2Languages=Afișează etichetele în PDF în 2 limbi diferite PDF_USE_ALSO_LANGUAGE_CODE=Dacă doriți să aveți unele texte duplicate în PDF-ul în 2 limbi diferite în același PDF generat, trebuie să setați aici această a doua limbă, astfel încât PDF-ul generat va conține 2 limbi diferite în aceeași pagină, cea aleasă la generarea PDF-ului și aceasta ( doar câteva șabloane PDF acceptă acest lucru). Păstrați gol pentru 1 limbă pentru fiecare PDF. PDF_USE_A=Gererare documente PDF cu format PDF/A în loc de formatul PDF implicit FafaIconSocialNetworksDesc=Introduceți aici codul unei pictograme FontAwesome. Dacă nu știți ce este FontAwesome, puteți utiliza valoarea generică fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Parteneriat AGENDA_EVENT_DEFAULT_STATUS=Starea implicită a evenimentului când creaţi un eveniment din formular YouShouldDisablePHPFunctions=Ar trebui să dezactivezi funcțiile PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Cu excepția cazului în care trebuie să rulați comenzi de sistem în cod personalizat, trebuie să dezactivați funcțiile PHP -PHPFunctionsRequiredForCLI=Pentru shell (cum ar fi jobul programat de backup sau rularea unui program antivirus), trebuie să păstrați funcțiile PHP  +PHPFunctionsRequiredForCLI=Pentru shell (cum ar fi backup programat sau rularea unui program antivirus), trebuie să păstrezi funcțiile PHP NoWritableFilesFoundIntoRootDir=Nu au fost găsite în directorul rădăcină fișiere sau directoare scriptibile ale programelor comune (OK)  RecommendedValueIs=Recomandat: %s Recommended=Recomandat NotRecommended=Nerecomandat -ARestrictedPath=Cale restricţionată +ARestrictedPath=O cale restricționată pentru fișierele de date CheckForModuleUpdate=Verificare actualizări module externe CheckForModuleUpdateHelp=Această acțiune se va conecta la editori de module externe pentru a verifica dacă este disponibilă o nouă versiune. ModuleUpdateAvailable=O actualizare este disponibilă @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Nu au fost găsite actualizări pentru modulele exter SwaggerDescriptionFile=Fişier descriptor Swagger API (pentru utilizare redoc de exemplu) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Ai activat WS API care este învechit. Ar trebui să foloseşti REST API. RandomlySelectedIfSeveral=Selectat aleatoriu dacă sunt disponibile mai multe imagini +SalesRepresentativeInfo=Pentru Oferte, Comenzi, Facturi. DatabasePasswordObfuscated=Parola bazei de date este eclipsată în fişierul conf DatabasePasswordNotObfuscated=Parola bazei de date NU este eclipsată în fişierul conf APIsAreNotEnabled=Modulele API nu sunt activate @@ -2247,14 +2285,22 @@ LateWarningAfter=Avertizare "Întârziat" după TemplateforBusinessCards=Șablon pentru o carte de vizită cu diferite dimensiuni InventorySetup= Configurare Inventar ExportUseLowMemoryMode=Utilizare mod de memorie limitată -ExportUseLowMemoryModeHelp=Utilizare mod de memorie scăzută pentru execuţie dump (comprimarea se face prin pipe nu prin memoria PHP). Această metodă nu permite să verifici dacă fișierul este finalizat și mesajul de eroare nu poate fi raportat dacă execuţia nu reușește. +ExportUseLowMemoryModeHelp=Utilizare mod de memorie scăzută pentru generarea fișierului dump (comprimarea se face printr-un pipe în loc de memoria PHP). Această metodă nu permite să verifici dacă fișierul este complet și mesajul de eroare nu poate fi raportat dacă nu reușește. Utilizează dacă nu ai erori de memorie. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interfață de capturare triggere sistem și trimitere la o adresă URL +WebhookSetup = Configurare Webhook +Settings = Configurări +WebhookSetupPage = Pagină de configurare Webhook ShowQuickAddLink=Afișează un buton pentru a adăuga rapid un element în meniul din dreapta sus + HashForPing=Hash utilizat pentru ping ReadOnlyMode=Este instanță în mod "Read Only" DEBUGBAR_USE_LOG_FILE=Foloseşte fişierul dolibarr.log pentru capturare Log-uri UsingLogFileShowAllRecordOfSubrequestButIsSlower= Utilizează fișierul dolibarr.log pentru a capta jurnalele în loc de capturarea memoriei live. Permite să prinzi toate jurnalele în loc de jurnalul procesului curent (deci inclusiv pe cea a paginilor de subcereri ajax), dar va face instanța dvs. foarte foarte lentă. Nu se recomandă. FixedOrPercent=Fix (utilizează cuvântul cheie 'fixed') sau procent (utilizează cuvântul cheie 'percent') DefaultOpportunityStatus=Status implicit pentru oportunitate (prima stare când este creat clientul potențial - prospectul) + IconAndText=Pictogramă și text TextOnly=Doar text IconOnlyAllTextsOnHover=Doar pictogramă - Toate textele apar sub pictograma la plutirea cu mouse-ul pe bara de meniu @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Doar pictogramă - Textul pictogramei apare dedesubt la plut IconOnly=Doar pictogramă - Text doar în tooltip  INVOICE_ADD_ZATCA_QR_CODE=Afișează cod QR ZATCA pe facturi INVOICE_ADD_ZATCA_QR_CODEMore=Unele țări arabe au nevoie de acest cod QR pe ​​facturi +INVOICE_ADD_SWISS_QR_CODE=Afișare cod QR-Bill swiss pe facturi +INVOICE_SHOW_SHIPPING_ADDRESS=Afișează adresa de livrare +INVOICE_SHOW_SHIPPING_ADDRESSMore=Mențiune obligatorie pentru Franța UrlSocialNetworksDesc=Link URL rețea socială. Utilizează {socialid} pentru partea variabilă care conține ID-ul rețelei sociale. +IfThisCategoryIsChildOfAnother=Dacă această categorie este un copil al alteia +DarkThemeMode=Mod întunecat temă +AlwaysDisabled=Întotdeauna dezactivat +AccordingToBrowser=Conform browser-ului +AlwaysEnabled=Întotdeauna activat +DoesNotWorkWithAllThemes=Nu va funcționa cu toate temele +NoName=Niciun nume +ShowAdvancedOptions= Afișare opțiuni avansate +HideAdvancedoptions= Ascundere opțiuni avansate +CIDLookupURL=Modulul aduce o adresă URL care poate fi utilizată de un instrument extern pentru a obține numele unui terț sau contact din numărul său de telefon. Adresa URL de utilizat este: +OauthNotAvailableForAllAndHadToBeCreatedBefore=Autentificarea OAUTH2 nu este disponibilă pentru toate host-urile, iar un token cu permisiunile potrivite trebuie să fi fost creat înainte cu modulul OAUTH  +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Serviciu de autentificare OAUTH2 +DontForgetCreateTokenOauthMod=Un token cu permisiunile potrivite trebuie să fi fost creat înainte cu modulul OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Metodă de autentificare +UsePassword=Folosește o parolă +UseOauth=Folosește un token OAUTH +Images=Imagini +MaxNumberOfImagesInGetPost=Numărul maxim de imagini permis într-un câmp HTML trimis într-un formular +MaxNumberOfPostOnPublicPagesByIP=Număr maxim de postări pe pagini publice cu aceeași adresă IP într-o lună +CIDLookupURL=Modulul aduce o adresă URL care poate fi utilizată de un instrument extern pentru a obține numele unui terț sau contact din numărul său de telefon. Adresa URL de utilizat este: +ScriptIsEmpty=Script-ul este gol +ShowHideTheNRequests=Afișare/ascundere %s interogare(i) SQL +DefinedAPathForAntivirusCommandIntoSetup=Definește o cale pentru un program antivirus în %s +TriggerCodes=Evenimente cu trigger +TriggerCodeInfo=Introdu aici cod(urile) de trigger care trebuie să genereze o postare a unui request web (sunt permise doar URL-urile externe). Poți introduce mai multe coduri de declanșare separate prin virgulă. +EditableWhenDraftOnly=Dacă nu este bifată, valoarea poate fi modificată numai atunci când obiectul are starea schiță +CssOnEdit=CSS în paginile de editare +CssOnView=CSS în paginile de vizualizare +CssOnList=CSS în paginile de listare +HelpCssOnEditDesc=CSS folosit la editarea câmpului.
    Exemplu: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=CSS folosit la vizualizarea câmpului. +HelpCssOnListDesc=CSS folosit atunci când câmpul se află în interiorul unui tabel dintr-o listă.
    Exemplu: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Ascundere cantitate comandată pe documentele generate pentru recepții +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Afișare preț pe documentele generate pentru recepții +WarningDisabled=Avertizare dezactivată +LimitsAndMitigation=Limite de acces și atenuare +DesktopsOnly=Doar desktop-uri +DesktopsAndSmartphones=Desktop-uri și smartphone-uri +AllowOnlineSign=Permite semnare online +AllowExternalDownload=Permite descărcarea externă (fără autentificare, folosind un link partajat) +DeadlineDayVATSubmission=Ziua limită pentru depunerea TVA în luna următoare +MaxNumberOfAttachementOnForms=Numărul maxim de fișiere unite într-un formular +IfDefinedUseAValueBeetween=Dacă este definită, utilizează o valoare între %s și %s diff --git a/htdocs/langs/ro_RO/agenda.lang b/htdocs/langs/ro_RO/agenda.lang index 8035ed6e5e8..4ef2f59df66 100644 --- a/htdocs/langs/ro_RO/agenda.lang +++ b/htdocs/langs/ro_RO/agenda.lang @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=Membrul %s a fost validat MemberModifiedInDolibarr=Membrul %s a fost modificat MemberResiliatedInDolibarr=Membrul %s a fost reziliat MemberDeletedInDolibarr=Membrul %s a fost şters +MemberExcludedInDolibarr=Membrul %s a fost exclus MemberSubscriptionAddedInDolibarr=Cotizaţia %s pentru membrul %s a fost adăugată MemberSubscriptionModifiedInDolibarr=Cotizaţia %s pentru membrul %s a fost modificată MemberSubscriptionDeletedInDolibarr=Cotizaţia %s pentru membrul %s a fost ştearsă @@ -67,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Livrarea %s revine la starea de schiţă ShipmentDeletedInDolibarr=Livrarea %s a fost ştearsă ShipmentCanceledInDolibarr=Livrarea %s a fost anulată ReceptionValidatedInDolibarr=Recepţia %s a fost validată +ReceptionDeletedInDolibarr=Recepția %s a fost ștearsă ReceptionClassifyClosedInDolibarr=Recepția %s a fost clasificată ca închisă OrderCreatedInDolibarr=Comanda %s a fost creată OrderValidatedInDolibarr=Comanda %s a fost validată @@ -86,6 +88,7 @@ SupplierInvoiceSentByEMail=Factura furnizor %s a fost trimisă pe email ShippingSentByEMail=Livrarea %s a fost trimisă pe email ShippingValidated= Livrarea %s a fost validată InterventionSentByEMail=Intervenția %s a fost trimisă pe email +ProjectSentByEMail=Proiectul %s a fost trimis pe email ProposalDeleted=Ofertă ştearsă OrderDeleted=Comandă ştearsă InvoiceDeleted=Factură ştearsă @@ -159,6 +162,7 @@ DateActionBegin=Dată începere eveniment ConfirmCloneEvent=Sigur doriți să clonați evenimentul %s? RepeatEvent=Repeta eveniment OnceOnly=Doar o dată +EveryDay=În fiecare zi EveryWeek=Fiecare săptămână EveryMonth=Fiecare lună DayOfMonth=Zi a lunii @@ -174,3 +178,4 @@ AddReminder=Creați o notificare automată de reminder pentru acest eveniment ErrorReminderActionCommCreation=Eroare la crearea notificării de reminder pentru acest eveniment BrowserPush=Notificări popup browser ActiveByDefault=Activat implicit +Until=până diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang index b05f3ee77e1..19400a27dd4 100644 --- a/htdocs/langs/ro_RO/banks.lang +++ b/htdocs/langs/ro_RO/banks.lang @@ -185,3 +185,4 @@ AlreadyOneBankAccount=Este deja definit un cont bancar SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Transfer SEPA: 'Tip de plată' la nivelul 'Transfer de credit'. SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Când se generează un fișier XML SEPA pentru transferuri de credit, secțiunea "PaymentTypeInformation" poate fi acum plasată în secțiunea "CreditTransferTransactionInformation" (în loc de secțiunea "Plată"). Vă recomandăm insistent să păstrați această casetă nebifată pentru a plasa PaymentTypeInformation la nivel de plată, deoarece toate băncile nu o vor accepta neapărat la nivel de CreditTransferTransactionInformation. Contactați banca înainte de a plasa PaymentTypeInformation la nivel CreditTransferTransactionInformation. ToCreateRelatedRecordIntoBank=De creat înregistrarea bancară aferentă care lipseşte +BanklineExtraFields=Extracâmpuri linie bancară diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang index 31dbf98ef1a..53ae952152c 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Statistici Facturi Clienţi BillsStatisticsSuppliers=Statistici facturi furnizor DisabledBecauseDispatchedInBookkeeping=Dezactivat deoarece factura a fost expediată în contabilitate DisabledBecauseNotLastInvoice=Dezactivat deoarece factura nu poate fi ștearsă. Unele facturi au fost înregistrate după aceasta și vor crea lipsuri în incrementare. +DisabledBecauseNotLastSituationInvoice=Dezactivat deoarece factura nu poate fi ștearsă. Această factură nu este ultima din ciclul facturilor de situație.  DisabledBecauseNotErasable=Dezactivat pentru că nu poate fi şters InvoiceStandard=Factură Standard InvoiceStandardAsk=Factură Standard InvoiceStandardDesc=Acest tip de factură este factura comună. +InvoiceStandardShort=Standard InvoiceDeposit=Factură de plată în avans InvoiceDepositAsk=Factură de plată în avans InvoiceDepositDesc=Acest tip de factură se face atunci când a fost primită o factură de plată în avans @@ -24,6 +26,7 @@ InvoiceProForma=Factură Proformă InvoiceProFormaAsk=Factură Proformă InvoiceProFormaDesc=Factura Proformă este o imagine a unei facturi, dar nu are nici o valoare contabilă. InvoiceReplacement=Factură de înlocuire +InvoiceReplacementShort=Înlocuire InvoiceReplacementAsk=Factură de înlocuire a altei facturi InvoiceReplacementDesc=Factura de înlocuire este folosită pentru a înlocui o factură care nu a fost achitată.

    Notă: Se pot înlocui numai facturile neachitate. Dacă factura pe care o înlocuiți nu este încă închisă, aceasta va fi închisă automat la "Abandonată". InvoiceAvoir=Notă de credit @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Această parte s ErrorInvoiceIsNotLastOfSameType=Eroare: Data facturii %s este %s. Trebuie să fie ulterioară sau egală cu ultima dată pentru facturile de același tip (%s). Modificăă data facturii. BillFrom=De la BillTo=La +ShippingTo=Livrare pentru ActionsOnBill=Evenimente pe factură RecurringInvoiceTemplate=Șablon / factură recurentă NoQualifiedRecurringInvoiceTemplateFound=Nu există un model de factură potrivit pentru generare. @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=Condițiile de plată alese n PaymentTypeVIR=Transfer bancar PaymentTypeShortVIR=Transfer bancar PaymentTypePRE=Ordin de plată prin direct debit +PaymentTypePREdetails=(în cont *-%s) PaymentTypeShortPRE=Ordin de plată de debit PaymentTypeLIQ=Numerar PaymentTypeShortLIQ=Numerar @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Plata a fost înregistrată și factura %s SendEmailsRemindersOnInvoiceDueDate=Trimite reminder pe email pentru facturile neîncasate MakePaymentAndClassifyPayed=Înregistrare plată BulkPaymentNotPossibleForInvoice=Plata bulk nu este posibilă pentru factura %s (tip sau status greșit) +MentionVATDebitOptionIsOn=Opțiunea de a plăti impozit pe baza de debitelor +MentionCategoryOfOperations=Categorie operațiuni  +MentionCategoryOfOperations0=Livrare de bunuri +MentionCategoryOfOperations1=Prestare de servicii +MentionCategoryOfOperations2=Mixt - Livrare de bunuri și prestare de servicii diff --git a/htdocs/langs/ro_RO/bookmarks.lang b/htdocs/langs/ro_RO/bookmarks.lang index af716c5d751..068dee6cfab 100644 --- a/htdocs/langs/ro_RO/bookmarks.lang +++ b/htdocs/langs/ro_RO/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Alegeți dacă pagina de referin BookmarksManagement=Management marcaje BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Niciun bookmark definit +NoBookmarkFound=Niciun marcaj nu a fost găsit diff --git a/htdocs/langs/ro_RO/boxes.lang b/htdocs/langs/ro_RO/boxes.lang index c88b68e89db..efcbad031b6 100644 --- a/htdocs/langs/ro_RO/boxes.lang +++ b/htdocs/langs/ro_RO/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Ultimele adeziuni de membri BoxFicheInter=Ultimele intervenţii BoxCurrentAccounts=Sold conturi deschise BoxTitleMemberNextBirthdays=Aniversări în această lună (membri) -BoxTitleMembersByType=Membri după tip +BoxTitleMembersByType=Membri după tip şi status BoxTitleMembersSubscriptionsByYear=Adeziuni membri după an BoxTitleLastRssInfos=Ultimele %s noutăţi de la %s BoxTitleLastProducts=Produse/Servicii: ultimele %s modificate @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Comenzi de achiziţie în aşteptare BoxTitleLastModifiedContacts=Contacte/Adrese: ultimile %s modificate BoxMyLastBookmarks=Bookmark-uri : ultimile %s BoxOldestExpiredServices=Cele mai vechi servicii active expirate +BoxOldestActions=Cele mai vechi evenimente de făcut BoxLastExpiredServices=Cele mai vechi %s contacte cu servicii active expirate BoxTitleLastActionsToDo=Ultimele %s acţiuni de realizat +BoxTitleOldestActionsToDo=Cele mai vechi %s evenimente de făcut, nefinalizate BoxTitleLastContracts=Ultimele %s contracte modificate BoxTitleLastModifiedDonations=Utimele %s donaţii modificate BoxTitleLastModifiedExpenses=Ultimele %s rapoarte de cheltuieli modificate diff --git a/htdocs/langs/ro_RO/cashdesk.lang b/htdocs/langs/ro_RO/cashdesk.lang index a295750a25e..6b76fe1585a 100644 --- a/htdocs/langs/ro_RO/cashdesk.lang +++ b/htdocs/langs/ro_RO/cashdesk.lang @@ -136,3 +136,4 @@ PrintWithoutDetails=Tipărire fără detalii YearNotDefined=Anul nu este definit TakeposBarcodeRuleToInsertProduct=Regulă cod de bare pentru introducere produs TakeposBarcodeRuleToInsertProductDesc=Regula pentru extragerea referinței produsului + o cantitate dintr-un cod de bare scanat.
    Dacă este necompletat (valoare implicită), aplicația va folosi codul de bare complet scanat pentru a găsi produsul.

    Dacă este definit, sintaxa trebuie să fie:
    ref:NB+qu:NB+qd:NB+other:NB
    unde NB este numărul de caractere utilizat pentru extragerea datelor din codul de bare scanat cu:
    • ref : referință produs
    • qu : cantitate de setat la introducerea articolului (unități)
    • qd : cantitatea de setat la introducerea articolului ( zecimale)
    • altele : alte caractere
    +AlreadyPrinted=Deja tipărit diff --git a/htdocs/langs/ro_RO/categories.lang b/htdocs/langs/ro_RO/categories.lang index 56e0304107e..78dc6fbb7d6 100644 --- a/htdocs/langs/ro_RO/categories.lang +++ b/htdocs/langs/ro_RO/categories.lang @@ -95,7 +95,9 @@ ShowCategory=Arată tag/categorie ByDefaultInList=Implicit în listă ChooseCategory=Alegeți categoria StocksCategoriesArea=Categorii depozite +TicketsCategoriesArea=Categorii tichete ActionCommCategoriesArea=Categorii evenimente WebsitePagesCategoriesArea=Categorii Pagină-Container KnowledgemanagementsCategoriesArea=Categorii articole Bază de cunoştinţe UseOrOperatorForCategories=Foloseşte operatorul 'SAU' pentru categorii +AddObjectIntoCategory=Adăugare obiect în categorie diff --git a/htdocs/langs/ro_RO/commercial.lang b/htdocs/langs/ro_RO/commercial.lang index 7f69341f5f6..99388db9527 100644 --- a/htdocs/langs/ro_RO/commercial.lang +++ b/htdocs/langs/ro_RO/commercial.lang @@ -5,7 +5,7 @@ Customer=Client Customers=Clienţi Prospect=Prospect Prospects=Prospecţi -DeleteAction=Şterge un eveniment +DeleteAction=Şterge un eveniment NewAction=Eveniment nou AddAction=Creare eveniment AddAnAction=Crează un eveniment @@ -15,34 +15,34 @@ CardAction=Fişă Eveniment ActionOnCompany=Societate afiliată ActionOnContact=Contact afiliat TaskRDVWith=Întâlnire cu %s -ShowTask=Arată sarcină +ShowTask=Arată task ShowAction=Arată acţiune -ActionsReport=Raport Evenimente +ActionsReport=Raport evenimente ThirdPartiesOfSaleRepresentative=Terți cu reprezentant de vânzări -SaleRepresentativesOfThirdParty=Reprezentanți de vânzări ai unei terțe părți -SalesRepresentative=Reprezentant vînzări +SaleRepresentativesOfThirdParty=Reprezentanți de vânzări ai unui terț +SalesRepresentative=Reprezentant vânzări SalesRepresentatives=Reprezentanţi vânzări SalesRepresentativeFollowUp=Reprezentant vânzări (follow-up) -SalesRepresentativeSignature=Reprezentant vânzări (semnătura) +SalesRepresentativeSignature=Reprezentant vânzări (semnare contract) NoSalesRepresentativeAffected=Niciun reprezentant vânzări asociat ShowCustomer=Afişează client -ShowProspect=Afişează prospect -ListOfProspects=Lista prospecţi -ListOfCustomers=Lista clienţi -LastDoneTasks=Ultimele acțiuni finalizate %s +ShowProspect=Afişează prospect +ListOfProspects=Listă prospecţi +ListOfCustomers=Listă clienţi +LastDoneTasks=Ultimele %s acțiuni finalizate LastActionsToDo=Cele mai vechi %s acţiuni nefinalizate DoneAndToDoActions=Lista evenimentelor finalizate sau de realizat DoneActions=Lista evenimentelor finalizate ToDoActions=Lista evenimentelor nefinalizate -SendPropalRef=Transmitere ofertă comercială %s -SendOrderRef=Transmitere comandă %s +SendPropalRef=Transmitere ofertă comercială %s +SendOrderRef=Transmitere comandă %s StatusNotApplicable=Nu se aplică StatusActionToDo=De realizat StatusActionDone=Finalizat StatusActionInProcess=În curs TasksHistoryForThisContact=Evenimente pentru acest contact LastProspectDoNotContact=Nu contactaţi -LastProspectNeverContacted=Niciodată contactat +LastProspectNeverContacted=Necontactat vreodată LastProspectToContact=De contactat LastProspectContactInProcess=Contact în curs LastProspectContactDone=Contact efectuat @@ -50,31 +50,40 @@ ActionAffectedTo=Eveniment asociat lui ActionDoneBy=Eveniment realizat de către ActionAC_TEL=Apel Telefonic ActionAC_FAX=Trimitere fax -ActionAC_PROP=Trimitere ofertă pe e-mail -ActionAC_EMAIL=Trimitere e-mail -ActionAC_EMAIL_IN=Primirea e-mailului +ActionAC_PROP=Trimitere ofertă pe email +ActionAC_EMAIL=Trimitere email +ActionAC_EMAIL_IN=Primire email ActionAC_RDV=Întâlniri -ActionAC_INT=Intervenţie în site -ActionAC_FAC=Trimitere factura client pe e-mail -ActionAC_REL=Retrimitere factura client (memento) -ActionAC_CLO=Închide -ActionAC_EMAILING=Trimite e-mail-uri în masă -ActionAC_COM=Trimiteți comanda de vânzări prin poștă -ActionAC_SHIP=Trimitere notă de livrare prin e-mail -ActionAC_SUP_ORD=Trimiteți comanda de cumpărare prin poștă -ActionAC_SUP_INV=Trimiteți factura furnizorului prin poștă +ActionAC_INT=Intervenţie, deplasare la client +ActionAC_FAC=Trimitere factura client pe email +ActionAC_REL=Retrimitere factura client (reminder) +ActionAC_CLO=Închidere +ActionAC_EMAILING=Trimitere newsletter +ActionAC_COM=Trimitere comandă de vânzări prin poștă +ActionAC_SHIP=Trimitere notă de livrare pe email +ActionAC_SUP_ORD=Trimitere comandă de achiziţie prin poștă +ActionAC_SUP_INV=Trimitere factură furnizor prin poștă ActionAC_OTH=Altele -ActionAC_OTH_AUTO=Evenimente inserate automat +ActionAC_OTH_AUTO=Altele automate ActionAC_MANUAL=Evenimente inserate manual ActionAC_AUTO=Evenimente inserate automat -ActionAC_OTH_AUTOShort=Automat +ActionAC_OTH_AUTOShort=Altele +ActionAC_EVENTORGANIZATION=Eveniment organizare de evenimente Stats=Statistici vânzări -StatusProsp=Statut Prospect -DraftPropals=Oferte Comerciale Schiţă +StatusProsp=Status prospect +DraftPropals=Oferte comerciale schiţă NoLimit=Nelimitat -ToOfferALinkForOnlineSignature=Link pentru semnatura online -WelcomeOnOnlineSignaturePage=Bun venit pe pagina pentru a accepta propunerile comerciale de la %s -ThisScreenAllowsYouToSignDocFrom=Acest ecran vă permite să acceptaţi şi să semnaţi sau refuzaţi o ofertă/propunere comercială -ThisIsInformationOnDocumentToSign=Acestea sunt informaţiile din document de acceptat sau refuzat +ToOfferALinkForOnlineSignature=Link pentru semnare online +WelcomeOnOnlineSignaturePageProposal=Bun venit la pagina unde puteţi accepta online ofertele comerciale de la %s +WelcomeOnOnlineSignaturePageContract=Bun venit la %s Pagina de semnare a contractului PDF +WelcomeOnOnlineSignaturePageFichinter=Bun venit la pagina de semnare PDF a intervenției %s +ThisScreenAllowsYouToSignDocFromProposal=Acest ecran vă permite să acceptaţi şi să semnaţi sau să refuzaţi o ofertă/propunere comercială +ThisScreenAllowsYouToSignDocFromContract=Acest ecran vă permite să semnați online un contract în format PDF. +ThisScreenAllowsYouToSignDocFromFichinter=Acest ecran îți permite să semnezi online intervenția în format PDF. +ThisIsInformationOnDocumentToSignProposal=Acestea sunt informaţiile din document de acceptat sau de refuzat +ThisIsInformationOnDocumentToSignContract=Acestea sunt informații despre contractul care trebuie semnat +ThisIsInformationOnDocumentToSignFichinter=Acestea sunt informații despre intervenția care trebuie semnată SignatureProposalRef=Semnarea ofertei/propunerii comerciale %s -FeatureOnlineSignDisabled=Funcţionalitatea pentru semnare online dezactivata sau documentul a fost generat înainte activarea acestei funcţionalităţi +SignatureContractRef=Semnarea contractului %s +SignatureFichinterRef=Semnarea intervenției %s +FeatureOnlineSignDisabled=Funcţionalitatea pentru semnare online este dezactivată sau documentul a fost generat înainte activarea acestei funcţionalităţi diff --git a/htdocs/langs/ro_RO/companies.lang b/htdocs/langs/ro_RO/companies.lang index 4f6395d58eb..765ee3631d5 100644 --- a/htdocs/langs/ro_RO/companies.lang +++ b/htdocs/langs/ro_RO/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Natură terț NatureOfContact=Natură contact Address=Adresă State=Regiune/Judeţ +StateId=ID Județ StateCode=Cod judeţ/provincie StateShort=Stat Region=Regiune Region-State=Regiune - Țară Country=Ţară CountryCode=Cod ţară -CountryId=ID Ţară +CountryId=ID Țară Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Registrul Comerţului) ProfId2CM=Id. prof. 2 (Nr. contribuabil) -ProfId3CM=Id. prof. 3 (Decret de înfiinţare) -ProfId4CM=Id. prof. 4 (Certificat de depozite) +ProfId3CM=Id. prof. 3 (Nr. decret de creaţie) +ProfId4CM=Id. prof. 4 (Nr. Certificat de depozit) ProfId5CM=Id. prof. 5 (Altele) ProfId6CM=- ProfId1ShortCM=Registrul Comerţului ProfId2ShortCM=Nr. contribuabil -ProfId3ShortCM=Decret de înfiinţare -ProfId4ShortCM=Certificat de depozite +ProfId3ShortCM=Nr. decret de creaţie +ProfId4ShortCM=Nr. Certificat de depozit ProfId5ShortCM=Altele ProfId6ShortCM=- ProfId1CO=Prof. Id 1 (R.U.T.) diff --git a/htdocs/langs/ro_RO/compta.lang b/htdocs/langs/ro_RO/compta.lang index d5ea56b4144..c258ad137fb 100644 --- a/htdocs/langs/ro_RO/compta.lang +++ b/htdocs/langs/ro_RO/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Sold (înainte) Balance=Sold Debit=Debit Credit=Credit +AccountingDebit=Debit +AccountingCredit=Credit Piece= Doc. contabilitate AmountHTVATRealReceived=TVA colectat AmountHTVATRealPaid=TVA plătit @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Raportul cifrei de afaceri c TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Raportul cifrei de afaceri colectate după cota TVA nu este disponibil. Acest raport este disponibil numai pentru cifra de afaceri facturată. CalculationMode=Mod calcul AccountancyJournal=Jurnal contabil -ACCOUNTING_VAT_SOLD_ACCOUNT=Contul contabil implicit pentru TVA la vânzări (utilizat dacă nu este definit în setarea dicționarului TVA) -ACCOUNTING_VAT_BUY_ACCOUNT=Contul contabil implicit pentru TVA la achiziții (utilizat dacă nu este definit în setarea dicționarului TVA) -ACCOUNTING_VAT_PAY_ACCOUNT=Contul contabil implicit pentru plata TVA -ACCOUNTING_ACCOUNT_CUSTOMER=Contul contabil utilizat pentru terți clienţi +ACCOUNTING_VAT_SOLD_ACCOUNT=Cont contabil (din Planul de Conturi) care urmează să fie utilizat ca și cont implicit pentru TVA la vânzări (utilizat dacă nu este definit în configurarea dicționarului TVA) +ACCOUNTING_VAT_BUY_ACCOUNT=Cont contabil (din Planul de Conturi) care urmează să fie utilizat ca și cont implicit pentru TVA la achiziții (utilizat dacă nu este definit în configurarea dicționarului TVA) +ACCOUNTING_VAT_PAY_ACCOUNT=Cont contabil (din Planul de Conturi) care va fi utilizat ca și cont implicit pentru plata TVA +ACCOUNTING_ACCOUNT_CUSTOMER=Cont contabil (din Planul de Conturi) utilizat pentru terți tip "client". ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Contul contabil dedicat definit pe fişa terțului va fi utilizat numai pentru subregistrul contabilitate . Aceasta va fi utilizat pentru Registrul jurnal și ca valoare implicită pentru jurnalul secundar contabill dacă nu este definit contul contabil dedicat clienților de la terți. -ACCOUNTING_ACCOUNT_SUPPLIER=Contul contabil utilizat pentru terți furnizori +ACCOUNTING_ACCOUNT_SUPPLIER=Cont contabil (din Planul de Conturi) utilizat pentru terți tip "furnizor". ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Contul contabil dedicat definit pe fişa terțului va fi utilizat numai pentru registrul jurnal secundar. Acesta va fi utilizat pentru Registrul Jurnal general și ca valoare implicită pentru jurnalele secundare dacă nu este definit contul contabil de vânzare asociat la un terț. ConfirmCloneTax=Confirmare clonare taxă socială/fiscală ConfirmCloneVAT=Confirmați clonarea unei declarații de TVA @@ -300,3 +302,4 @@ InvoiceToPay15Days=Facturi de plătit (15 - 30 zile) InvoiceToPay30Days=Facturi de plătit (> 30 zile) ConfirmPreselectAccount=Preselectare cont contabil ConfirmPreselectAccountQuestion=Sigur vrei să preselectezi liniile selectate %s cu acest cod contabil? +AmountPaidMustMatchAmountOfDownPayment=Suma plătită trebuie să corespundă cu valoarea avansului diff --git a/htdocs/langs/ro_RO/contracts.lang b/htdocs/langs/ro_RO/contracts.lang index a9aae557ea9..daeff82fd40 100644 --- a/htdocs/langs/ro_RO/contracts.lang +++ b/htdocs/langs/ro_RO/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contracte/Abonamente ContractsAndLine=Contracte și linie contracte Contract=Contract ContractLine=Linie contract +ContractLines=Linii de contract Closing=Inchide NoContracts=Niciun contract MenuServices=Servicii @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Sigur doriți să ștergeți această linie de contrac MoveToAnotherContract=Mută serviciu într-un alt contract. ConfirmMoveToAnotherContract=Am ales un nou contract țintă și confirm mutarea acestui serviciu în acest contract. ConfirmMoveToAnotherContractQuestion=Alegeți în ce contract existent (de la același terț) doriți să mutați acest serviciu? -PaymentRenewContractId=Reînnoire linie contract (numărul %s) +PaymentRenewContractId=Reînnoire contract %s (serviciu %s) ExpiredSince=Data expirării NoExpiredServices=Servicii active neexpirate ListOfServicesToExpireWithDuration=Lista servicii care expiră în %s zile @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Contact client pentru semnare contract HideClosedServiceByDefault=Ascunde serviciile închise în mod implicit ShowClosedServices=Afişare Servicii închise HideClosedServices=Ascundere Servicii închise +UserStartingService=Utilizator activare serviciu +UserClosingService=Utilizator închidere serviciu diff --git a/htdocs/langs/ro_RO/cron.lang b/htdocs/langs/ro_RO/cron.lang index 6e4f16734f7..feffe602ed8 100644 --- a/htdocs/langs/ro_RO/cron.lang +++ b/htdocs/langs/ro_RO/cron.lang @@ -26,7 +26,7 @@ CronCommand=Comandă CronList=Joburi programate CronDelete=Şterge joburi programate CronConfirmDelete=Sigur doriți să ștergeți aceste joburi programate? -CronExecute=Lansați joburile programate? +CronExecute=Lansează acum CronConfirmExecute=Sunteți sigur că doriți să executați aceste joburi programate acum? CronInfo=Modulul Joburi programate permite programarea lucrărilor de sistem pentru execuţia automată. Joburile pot fi pornite și manual. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Comentariu CronFieldMandatory=Câmpurile %s sunt obligatorii CronErrEndDateStartDt=Data de sfârşit nu poate fi înaintea datei de început StatusAtInstall=Stare la instalarea modulului -CronStatusActiveBtn=Programare +CronStatusActiveBtn=Activare programare CronStatusInactiveBtn=Dezactivare CronTaskInactive=Acest job este dezactivat (ne-programat) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Mergi în meniul "Acasă - Instrume JobDisabled=Job dezactivat MakeLocalDatabaseDumpShort=Backup local baza de date MakeLocalDatabaseDump=Creați un dump de bază de date locală. Parametrii sunt: ​​compresie ("gz" sau "bz" sau "none"), tipul de backup (mysql, pgsql, auto) 1, "auto" sau nume de fișier construit, număr de fișiere de rezervă care vor fi păstrate +MakeSendLocalDatabaseDumpShort=Trimite backup local bază de date +MakeSendLocalDatabaseDump=Trimite backup-ul bazei de date locale prin email. Parametrii sunt: ​​către, de la, subiect, mesaj, nume fișier (numele fișierului trimis), filtru ('sql' numai pentru backup-ul bazei de date) +BackupIsTooLargeSend=Ne pare rău, ultimul fișier de backup este prea mare pentru a fi trimis pe email +CleanUnfinishedCronjobShort=Șterge cronjob-uri nefinalizate +CleanUnfinishedCronjob=Curățare cronjob blocat în procesare atunci când procesul nu mai rulează WarningCronDelayed=Atenție, din motive de performanță, indiferent de data următoare a executării joburilor activate, este posibil ca activităţile tale să fie întârziate la maximum %s ore înainte de a rula DATAPOLICYJob=Curățător de date și anonimizator JobXMustBeEnabled=Jobul %s trebuie să fie activat +EmailIfError=E-mail de avertizare la eroare +ErrorInBatch=Eroare la rularea jobului %s + # Cron Boxes LastExecutedScheduledJob=Ultima execuţie a jobului programat NextScheduledJobExecute=Următoarea execuţie a jobului programat NumberScheduledJobError=Numărul de joburi programate cu eroare +NumberScheduledJobNeverFinished=Număr de joburi programate care nu au fost finalizate diff --git a/htdocs/langs/ro_RO/datapolicy.lang b/htdocs/langs/ro_RO/datapolicy.lang new file mode 100644 index 00000000000..dcffd87f239 --- /dev/null +++ b/htdocs/langs/ro_RO/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Politica de confidențialitate a datelor +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul de gestionare a confidențialității datelor cu caracter personal (conformitate cu GDPR) + +# +# Administration page +# +datapolicySetup = Configurare modul Confidențialitatea datelor cu caracter personal +Deletion = Ștergere date +datapolicySetupPage = În funcție de legislația țării tale (Exemplu Articolul 5 din GDPR), datele cu caracter personal trebuie păstrate pe o perioadă care să nu depășească cea necesară scopurilor pentru care au fost colectate, cu excepția scopurilor de arhivare.
    Ștergerea se va face automat după o anumită perioadă fără evenimente (durata pe care o vei indica mai jos). +NB_MONTHS = %s luni +ONE_YEAR = 1 an +NB_YEARS = %s ani +DATAPOLICY_TIERS_CLIENT = Client +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Client +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nici prospect/Nici client +DATAPOLICY_TIERS_FOURNISSEUR = Furnizor +DATAPOLICY_CONTACT_CLIENT = Client +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Client +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nici prospect/Nici client +DATAPOLICY_CONTACT_FOURNISSEUR = Furnizor +DATAPOLICY_ADHERENT = Membru +DATAPOLICY_Tooltip_SETUP = Tip de contact - Indică opțiunile tale pentru fiecare tip.  +DATAPOLICYMail = Configurare email-uri +DATAPOLICYSUBJECTMAIL = Subiect email +DATAPOLICYCONTENTMAIL = Conținut email +DATAPOLICYSUBSITUTION = Poți utiliza următoarele variabile în email-ul tău. (LINKACCEPT permite crearea unui link care să înregistreze acordul persoanei, LINKREFUSED face posibilă înregistrarea refuzului persoanei): +DATAPOLICYACCEPT = Mesaj după acord +DATAPOLICYREFUSE = Mesaj după dezacord +SendAgreementText = Poți trimite un email de acord GDPR tuturor persoanelor de contact relevante (care nu au primit încă un email și pentru care nu ai înregistrat nimic despre acordul lor GDPR). Pentru a face acest lucru, utilizează următorul buton. +SendAgreement = Trimite email-uri +AllAgreementSend = Toate email-urile au fost trimise +TXTLINKDATAPOLICYACCEPT = Text pentru linkul "acord" +TXTLINKDATAPOLICYREFUSE = Text pentru linkul "dezacord" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: Prelucrarea datelor cu caracter personal +DATAPOLICY_consentement = Consimțământul obținut pentru prelucrarea datelor cu caracter personal +DATAPOLICY_opposition_traitement = Se opune prelucrării datelor sale cu caracter personal +DATAPOLICY_opposition_prospection = Se opune prelucrării datelor sale personale în scopuri de prospectare + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizare terț +DATAPOLICY_POPUP_ANONYME_TEXTE = Nu poți șterge acest contact din sistem deoarece există articole legate. În conformitate cu GDPR, veți face toate aceste date anonime pentru a vă respecta obligațiile. Doriți să continuați? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilitate GDPR +DATAPOLICY_PORTABILITE_TITLE = Export date personale +DATAPOLICY_PORTABILITE_CONFIRMATION = Dorești să exporți datele personale ale acestui contact. Ești sigur ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonimizare %s + +# V2 +DATAPOLICYReturn = Validare GDPR +DATAPOLICY_date = Data trimiterii email-ului de acord/dezacord +DATAPOLICY_send = Data trimiterii email-ului de acord/consimțământ +DATAPOLICYReturn = Validare GDPR +DATAPOLICY_SEND = Trimite email GDPR +MailSent = Email-ul a fost trimis + +# ERROR +ErrorSubjectIsRequired = Eroare: subiectul email-ului este obligatoriu. Indicați-l în configurarea modulului +=Din cauza unei probleme tehnice, nu am putut înregistra preferințele tale. Ne cerem scuze pentru asta. Contactați-ne pentru a ne trimite preferințele tale. +NUMBER_MONTH_BEFORE_DELETION = Număr de luni înainte de ștergere diff --git a/htdocs/langs/ro_RO/dict.lang b/htdocs/langs/ro_RO/dict.lang index d12da96f8eb..24a8bcd5ed3 100644 --- a/htdocs/langs/ro_RO/dict.lang +++ b/htdocs/langs/ro_RO/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=D-na +CivilityMMEShort=D-na CivilityMR=Dl +CivilityMRShort=Dl CivilityMLE=Doamna CivilityMTRE=Maestru CivilityDR=Doctor diff --git a/htdocs/langs/ro_RO/ecm.lang b/htdocs/langs/ro_RO/ecm.lang index d843519ba49..9d743434c7c 100644 --- a/htdocs/langs/ro_RO/ecm.lang +++ b/htdocs/langs/ro_RO/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Director manual ECMSectionAuto=Director automat ECMSectionsManual=Arbore manual ECMSectionsAuto=Arbore automat +ECMSectionsMedias=Arbore media ECMSections=Directoare ECMRoot=ECM rădăcină ECMNewSection=Director nou @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Număr fișiere în sub-directoare ECMCreationUser=Creator ECMArea=DMS/ECM ECMAreaDesc=DMS/ECM (Document Management System / Electronic Content Management) vă permite să salvați, să partajați și să căutați rapid toate tipurile de documente în Dolibarr. -ECMAreaDesc2=* Directoarele automate sunt completate în mod automat atunci când se adaugă documentele din fişa acelui element.
    * Directoarele manuale poate fi folosite pentru a salva documente ce nu sunt legate de un anumit element. +ECMAreaDesc2a=* Directoarele manuale pot fi folosite pentru a salva documente care nu au legătură cu un anumit element. +ECMAreaDesc2b=* Directoarele automate sunt completate automat la adăugarea documentelor din pagina unui element. +ECMAreaDesc3=* Directoarele Media sunt fișiere din subdirectorul /medias din directorul de documente, care pot fi citite de oricine, fără a fi nevoie să fie autentificat și fără a fi necesar să fie partajat explicit fișierul. Este folosit pentru a stoca fișiere imagine din modulul de email sau site web. ECMSectionWasRemoved=Directorul %s a fost şters. ECMSectionWasCreated=Directorul %s a fost creat. ECMSearchByKeywords=Caută după cuvinte cheie diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang index 7b55c5259c6..48ed91acc81 100644 --- a/htdocs/langs/ro_RO/errors.lang +++ b/htdocs/langs/ro_RO/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Login-ul %s există deja. ErrorGroupAlreadyExists=Grupul %s există deja. ErrorEmailAlreadyExists=Email-ul %s există deja. ErrorRecordNotFound=Înregistrarea nu a fost găsită. +ErrorRecordNotFoundShort=Nu a fost găsit ErrorFailToCopyFile=Eşec la copierea fişierului %s în %s. ErrorFailToCopyDir=Eşec la copierea directorului '%s' în '%s'. ErrorFailToRenameFile=Eşec la redenumirea fişierului %s în %s. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Fișierul de imagine nu are un format acceptat (Configuraţi ErrorBadDateFormat=Valoarea '%s' are formatul de dată greşit ErrorWrongDate=Data nu este corectă! ErrorFailedToWriteInDir=Nu s-a reuşit scrierea în directorul %s +ErrorFailedToBuildArchive=Nu s-a putut construi fișierul arhivă %s ErrorFoundBadEmailInFile=S-a găsit o sintaxă de email incorectă pentru liniile %s din fișier (exemplu de linie %s cu email=%s) ErrorUserCannotBeDelete=Utilizatorul nu poate fi șters. Poate este asociat unor entități de sistem. ErrorFieldsRequired=Unele câmpuri obligatorii nu au fost completate. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Completaţi valorile pentru lista checkbox ErrorNoValueForRadioType=Completaţi valorile pentru lista radio ErrorBadFormatValueList=Valorile din lista nu pot avea mai mult de o virgulă: %s, dar trebuie să aibă cel puțin o: cheie, valoare ErrorFieldCanNotContainSpecialCharacters=Câmpul %s nu trebuie să conțină caractere speciale. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Câmpul %s nu trebuie să conțină caractere speciale sau majuscule și nu poate conține numai numere. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Câmpul %s nu trebuie să conțină caractere speciale, nici caractere majuscule și trebuie să înceapă cu un caracter alfabetic (a-z)  ErrorFieldMustHaveXChar=Câmpul %s trebuie să aibă cel puțin %scaractere. ErrorNoAccountancyModuleLoaded=Modulul Contabilitate nu este activat ErrorExportDuplicateProfil=Acest nume de profil există deja pentru acest set de export. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript nu trebuie să fie dezactivat pentru a a ErrorPasswordsMustMatch=Ambele parolele tastate trebuie să se potrivească reciproc ErrorContactEMail=A apărut o eroare tehnică. Contactați administratorul tehnic la următoarea adresă de email %s și furnizați-i codul de eroare %s în mesaj sau adăugați-i o copie de ecran a acestei pagini. ErrorWrongValueForField=Câmpul %s: '%s' nu se potrivește cu regula regex %s +ErrorHtmlInjectionForField=Câmpul %s: Valoarea '%s' conține date rău intenționate nepermise ErrorFieldValueNotIn=Câmpul %s: '%s' nu este o valoare găsită în câmpul %s din %s ErrorFieldRefNotIn=Câmpul %s: '%s' nu este o %s referinţă existentă +ErrorMultipleRecordFoundFromRef=Mai multe înregistrări găsite la căutarea din ref %s. Nu există nicio modalitate de a ști ce ID să folosești. ErrorsOnXLines=%s erori găsite ErrorFileIsInfectedWithAVirus=Programul antivirus nu a validat fişierul (fişierul ar putea fi infectat cu un virus) -ErrorSpecialCharNotAllowedForField=Caracterele speciale nu sunt permise pentru câmpul "%s" ErrorNumRefModel=O referinţă există în baza de date (%s) şi nu este compatibilă cu această regulă de numerotare. Şterge sau redenumeşte referinţa pentru a activa acest model. ErrorQtyTooLowForThisSupplier=Cantitate prea mică pentru acest furnizor sau niciun preț definit pentru acest produs de la acest furnizor ErrorOrdersNotCreatedQtyTooLow=Unele comenzi nu au fost create datorită cantităților prea mici @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Obiectele trebuie să aibă statusul ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Obiectele trebuie să aibă statusul 'Schiţă' sau 'Dezactivat' pentru a fi activate ErrorNoFieldWithAttributeShowoncombobox=Nici un câmp nu are proprietatea 'showoncombobox' în definiţia obiectului '%s'. Nu se poate afişa lista combo. ErrorFieldRequiredForProduct=Câmpul '%s' este obligatoriu de completat pentru produsul %s +AlreadyTooMuchPostOnThisIPAdress=Ai postat deja prea multe după această adresă IP. ProblemIsInSetupOfTerminal=Problema este la configurarea terminalului %s. ErrorAddAtLeastOneLineFirst=Adaugă cel puţin o linie mai întâi ErrorRecordAlreadyInAccountingDeletionNotPossible=Eroare, tranzacţia este deja transferată în contabilitate, ştergerea nu este posibilă. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Trebuie să setezi mai întâi planul d ErrorFailedToFindEmailTemplate=Nu s-a găsit șablonul cu numele de cod %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Durata nu este definită pentru serviciu. Nicio modalitate de a calcula prețul pe oră. ErrorActionCommPropertyUserowneridNotDefined=Utilizatorul deţinător este obligatoriu -ErrorActionCommBadType=Tipul evenimentului selectat (id: %n, cod: %s) nu există în dicţionarul Tipuri evenimente +ErrorActionCommBadType=Tipul de eveniment selectat (id:%s , cod: %s) nu există în dicționarul Tip de eveniment CheckVersionFail=Verificarea versiunii a eşuat ErrorWrongFileName=Numele fișierului nu poate să conțină _SOMETHING_ în el ErrorNotInDictionaryPaymentConditions=Nu se află în dicționarul Condiții de plată, vă rugăm să modificați. ErrorIsNotADraft=%s nu este o schiţă ErrorExecIdFailed=Nu se poate executa comanda "id" -ErrorBadCharIntoLoginName=Caracter nepermis în numele de utilizator -ErrorRequestTooLarge=Eroare, cererea este prea mare +ErrorBadCharIntoLoginName=Caracter neautorizat în câmpul %s +ErrorRequestTooLarge=Eroare, solicitare prea mare sau sesiunea a expirat ErrorNotApproverForHoliday=Nu eşti persoana care aprobă pentru concediul %s ErrorAttributeIsUsedIntoProduct=Acest atribut este utilizat în una sau mai multe variante de produs ErrorAttributeValueIsUsedIntoProduct=Această valoare de atribut este utilizată în una sau mai multe variante de produs @@ -287,11 +291,23 @@ ErrorInvoiceLoadThirdParty=Nu se poate încărca obiectul terț pentru factura " ErrorInvoiceLoadThirdPartyKey=Cheia pentru terțul "%s" nu este setată pentru factura "%s" ErrorDeleteLineNotAllowedByObjectStatus=Ștergerea liniei nu este permisă de starea curentă a obiectului ErrorAjaxRequestFailed=Solicitare eşuată +ErrorThirpdartyOrMemberidIsMandatory=Terțul sau Membrul unui parteneriat este obligatoriu +ErrorFailedToWriteInTempDirectory=Eșec la scrierea în directorul temp +ErrorQuantityIsLimitedTo=Cantitatea este limitată la %s +ErrorFailedToLoadThirdParty=Nu s-a găsit/încărcat un terț din id=%s, email=%s, nume=%s +ErrorThisPaymentModeIsNotSepa=Acest mod de plată nu este un cont bancar +ErrorStripeCustomerNotFoundCreateFirst=Clientul Stripe nu este setat pentru acest terț (sau setat la o valoare ștearsă din Stripe). Creați-l (sau reatașați-l) mai întâi. +ErrorCharPlusNotSupportedByImapForSearch=Căutarea IMAP nu poate găsi în expeditor sau destinatar un șir care conține caracterul + +ErrorTableNotFound=Tabelul %s nu a fost găsit +ErrorValueForTooLow=Valoarea pentru %s este prea mică +ErrorValueCantBeNull=Valoarea pentru %s nu poate fi nulă +ErrorDateOfMovementLowerThanDateOfFileTransmission=Data tranzacției bancare nu poate fi anterioară datei de transmitere a fișierului +ErrorTooMuchFileInForm=Prea multe fișiere în formular, numărul maxim de fișier(e) este %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Parametrul tău PHP upload_max_filesize (%s) este mai mare decât paramentrul PHP post_max_size (%s). Aceasta nu este o configuraţie consistentă. WarningPasswordSetWithNoAccount= O parolă a fost trimisă către acest membru. Cu toate acestea, nu a fost creat nici un cont de utilizator. Astfel, această parolă este stocată, dar nu poate fi utilizată pentru autentificare. Poate fi utilizată de către un modul / interfată externă, dar dacă nu aveți nevoie să definiți un utilizator sau o parolă pentru un membru, puteți dezactiva opțiunea "Gestionați o conectare pentru fiecare membru" din modul de configurare membri. În cazul în care aveți nevoie să gestionați un utilizator, dar nu este nevoie de parolă, aveți posibilitatea să păstrați acest câmp gol pentru a evita acest avertisment. Notă: Adresa de e-mail poate fi utilizată ca utilizator la autentificare, în cazul în care membrul este legat de un utilizator. -WarningMandatorySetupNotComplete=Click aici pentru a seta parametrii obligatorii +WarningMandatorySetupNotComplete=Clic aici pentru a configura parametrii principali WarningEnableYourModulesApplications=Click aici pentru a activa modulele şi aplicaţiile tale WarningSafeModeOnCheckExecDir=Atenţie, opţiunea PHP safe_mode este activă deci comanda trebuie să fie într-un director declarat în parametrul PHP safe_mode_exec_dir. WarningBookmarkAlreadyExists=Un marcaj cu acest titlu sau adresă (URL) există deja. @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Atenţie, fişierul tău de configurare (htdocs WarningsOnXLines=Avertismente pe %s înregistrare(ări) sursă WarningNoDocumentModelActivated=Nu a fost activat niciun model, pentru generarea de documente. Un model va fi ales în mod implicit până când verificați configurarea modulului. WarningLockFileDoesNotExists=Atenţie, o dată ce configurarea este finalizată, trebuie să dezactivați instrumentele de instalare/migrare adăugând un fișier install.lock în directorul %s . Omiterea creării acestui fișier reprezintă un risc serios de securitate. -WarningUntilDirRemoved=Toate avertismentele de securitate (vizibile numai de către utilizatorii administratori) vor rămâne active, atâta timp cât vulnerabilitatea este prezentă (sau constanta MAIN_REMOVE_INSTALL_WARNING este adăugată în Setări->Alte setări). +WarningUntilDirRemoved=Acest avertisment de securitate va rămâne activ atâta timp cât vulnerabilitatea este prezentă. WarningCloseAlways=Atenţie, închiderea are loc chiar dacă suma diferă. Nu activati aceasta funcţionalitate decât în cunoștinţă de cauză. WarningUsingThisBoxSlowDown=Atenție, folosind această casetă încetiniţi serios toate paginile care afişează caseta. WarningClickToDialUserSetupNotComplete=Setările informațiilor ClickToDial pentru utilizatorul tău nu sunt complete (vezi tabul ClickToDial pe fişal dvs. de utilizator). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Atenție, nu puteți crea direct un cont secundar, treb WarningAvailableOnlyForHTTPSServers=Disponibil numai dacă se utilizează conexiunea securizată HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Modulul %s nu a fost activat. Este posibil să pierdeți o mulțime de evenimente aici.  WarningPaypalPaymentNotCompatibleWithStrict=Valoarea 'Strictă' face ca funcțiile de plată online să nu funcționeze corect. Folosiți în schimb 'Lax'. +WarningThemeForcedTo=Atenție, tema %s a fost forțată de constanta ascunsă MAIN_FORCETHEME  +WarningPagesWillBeDeleted=Atenție, acest lucru va șterge și toate paginile/containerele existente ale site-ului. Ar trebui să exporți site-ul înainte, astfel încât să ai o copie de rezervă pentru a-l reimporta mai târziu.  +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Validarea automată este dezactivată când opțiunea de scădere a stocului este setată pe "Validare factură". -<<<<<<< HEAD -======= -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> ramura '15.0' de la git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Valoare invalidă RequireAtLeastXString = Necesită cel puţin %s caracter(e) @@ -347,12 +361,3 @@ BadSetupOfField = Eroare setare invalidă a câmpului BadSetupOfFieldClassNotFoundForValidation = Eroare setare valoare câmp : Clasa nu a fost găsită pentru validare BadSetupOfFieldFileNotFound = Eroare setare valoare câmp : Fișierul nu a fost găsit pentru includere BadSetupOfFieldFetchNotCallable = Eroare setare valoare câmp : Operaţia fetch nu este apelabilă din clasă -<<<<<<< HEAD -======= -======= -======= ->>>>>>> ramura '15.0' de la git@github.com:Dolibarr/dolibarr.git ->>>>>>> ramura '15.0' de la git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> ramura '15.0' de la git@github.com:Dolibarr/dolibarr.git ->>>>>>> ramura '15.0' de la git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/ro_RO/eventorganization.lang b/htdocs/langs/ro_RO/eventorganization.lang index cf0a4ced492..652129e1eed 100644 --- a/htdocs/langs/ro_RO/eventorganization.lang +++ b/htdocs/langs/ro_RO/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = În formularul pentru a creare/adăugar # Object # EventOrganizationConfOrBooth= Conferinţe sau Stand-uri +EventOrganizationConfOrBoothes=Conferințe sau Standuri ManageOrganizeEvent = Administrează organizarea unui eveniment ConferenceOrBooth = Conferinţe sau Stand-uri ConferenceOrBoothTab = Conferinţe sau Stand-uri AmountPaid = Suma plătită DateOfRegistration = Dată înregistrare ConferenceOrBoothAttendee = Participant la Conferinţă sau Stand +ApplicantOrVisitor=Aplicant sau vizitator +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Aici, puteți vota pentru o conferință sau pu EvntOrgRegistrationConfHelpMessage = Aici puteți propune o nouă conferință pe care să o susţineţi în timpul evenimentului. EvntOrgRegistrationBoothHelpMessage = Aici, puteți aplica pentru a avea un stand la eveniment. ListOfSuggestedConferences = Listă conferinţe propuse -ListOfSuggestedBooths = Listă stand-uri propuse -ListOfConferencesOrBooths=Lista conferinţelor sau stand-urilor proiectului eveniment +ListOfSuggestedBooths=Standuri propuse +ListOfConferencesOrBooths=Conferințe sau standuri asociate la proiect/eveniment SuggestConference = Propune o nouă conferinţă SuggestBooth = Propune un stand ViewAndVote = Vizualizează și votează pentru evenimentele propuse PublicAttendeeSubscriptionGlobalPage = Link public pentru înscrierea la eveniment PublicAttendeeSubscriptionPage = Link public doar pentru înregistrarea la acest eveniment MissingOrBadSecureKey = Cheia de securitate lipseşte sau este invalidă -EvntOrgWelcomeMessage = Acest formular vă permite să vă înregistrați ca nou participant la eveniment: %s  +EvntOrgWelcomeMessage = Acest formular îți permite să te înregistrezi ca nou participant la eveniment  EvntOrgDuration = Această conferinţă începe pe %s şi se termină pe %s. ConferenceAttendeeFee = Taxă de participare la conferință pentru evenimentul: '%s' care are loc de pe %s până la %s. BoothLocationFee = Locaţie stand pentru evenimentul: '%s' care se desfăşoară între %s şi %s @@ -130,7 +133,7 @@ LabelOfconference=Etichetă conferinţă ConferenceIsNotConfirmed=Înregistrarea nu este disponibilă, conferinţa nu a fost confirmată încă DateMustBeBeforeThan=%s trebuie să fie înainte de %s DateMustBeAfterThan=%s trebuie să fie după %s - +MaxNbOfAttendeesReached=Numărul maxim de participanți a fost atins NewSubscription=Înregistrare OrganizationEventConfRequestWasReceived=Propunerea ta pentru conferinţă a fost primită OrganizationEventBoothRequestWasReceived=Solicitarea ta de rezervare a unui stand a fost primită @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Plata ta pentru înscrierea la OrganizationEventBulkMailToAttendees=Aceasta este un reminder cu privire la participarea ta la eveniment OrganizationEventBulkMailToSpeakers=Acesta este un reminder cu privire la participarea ta ca speaker la eveniment OrganizationEventLinkToThirdParty=Link către un terț (client, furnizor sau partener) +OrganizationEvenLabelName=Nume public conferință sau stand NewSuggestionOfBooth=Aplicare pentru stand NewSuggestionOfConference=Aplicare pentru conferinţă @@ -154,7 +158,7 @@ VoteOk = Votul tău a fost acceptat. AlreadyVoted = Ai votat deja pentru acest eveniment. VoteError = A apărut o eroare în timpul votului, vă rugăm să încercați din nou. -SubscriptionOk = Înscrierea ta a fost validată +SubscriptionOk=Înregistrarea ta a fost salvată ConfAttendeeSubscriptionConfirmation = Confirmarea înscrierii la un eveniment Attendee = Participant PaymentConferenceAttendee = Plată participant conferinţă @@ -162,6 +166,7 @@ PaymentBoothLocation = Plată locaţie stand DeleteConferenceOrBoothAttendee=Ştergere participant RegistrationAndPaymentWereAlreadyRecorder=O înscriere şi o plată este înregistrată deja pentru adresa de email %s EmailAttendee=Email participant +EmailCompany=Emai companie EmailCompanyForInvoice=Email companie (pentru facturare, dacă diferă de cel al participantului) ErrorSeveralCompaniesWithEmailContactUs=Au fost găsite mai multe companii cu acest email, nu putem valida automat înregistrarea dumneavoastră. Vă rugăm să ne contactați la %s pentru o validare manuală ErrorSeveralCompaniesWithNameContactUs=Au fost găsite mai multe companii cu acest nume, nu putem valida automat înregistrarea dumneavoastră. Vă rugăm să ne contactați la %s pentru o validare manuală diff --git a/htdocs/langs/ro_RO/exports.lang b/htdocs/langs/ro_RO/exports.lang index eac23ce799a..99c957b0fda 100644 --- a/htdocs/langs/ro_RO/exports.lang +++ b/htdocs/langs/ro_RO/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Câmpuri exportabile ExportedFields=Câmpuri exportate ImportModelName=Nume profil import date ImportModelSaved=Profilul de import a fost salvat ca %s. +ImportProfile=Profil import DatasetToExport=Set de date de exportat DatasetToImport=Import fişier în set de date ChooseFieldsOrdersAndTitle=Alegeţi ordinea câmpurilor... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=Tip de linie (0= produs, 1= serviciu) FileWithDataToImport=Fişiere cu date de import FileToImport=Fişierul sursă de import FileMustHaveOneOfFollowingFormat=Fișierul de import trebuie să aibă unul din următoarele formate +DownloadEmptyExampleShort=Descărcare fișier exemplu DownloadEmptyExample=Descarcă un fișier șablon cu exemple și informații despre câmpurile pe care le poți importa StarAreMandatory=În fișierul șablon, toate câmpurile cu * sunt câmpuri obligatorii ChooseFormatOfFileToImport=Alegeți formatul de fișier care va fi utilizat ca format de fișier de import făcând clic pe pictograma %s pentru selecţie... @@ -82,7 +84,7 @@ SelectFormat=Alege acest format de fişier de import RunImportFile=Import date NowClickToRunTheImport=Verifică rezultatele simulării de import. Corectează orice eroare și re-testează.
    Când simularea nu mai raportează erori, poţi importa datele în baza de date. DataLoadedWithId=Datele importate vor avea un câmp suplimentar în fiecare tabelă de bază de date cu acest id de import: %s , pentru a permite ca acesta să poată fi căutat în cazul investigării unei probleme legate de acest import. -ErrorMissingMandatoryValue=Date obligatorii sunt necompletate în fișierul sursă pentru câmpul %s. +ErrorMissingMandatoryValue=Date obligatorii sunt necompletate în fișierul sursă în coloana %s.  TooMuchErrors=Există încă %s alte linii sursă cu erori, dar afişarea a fost limitată. TooMuchWarnings=Există încă %s alte linii sursă cu avertismente, dar afişarea a fost limitată. EmptyLine=Linie goală (va fi ignorată) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Găsiţi toate înregistrările importate în baza NbOfLinesOK=Număr de linii fără erori şi fără avertismente: %s. NbOfLinesImported=Număr de linii importate cu succes: %s. DataComeFromNoWhere=Valoarea de inserare necunoscută în fişierul sursă. -DataComeFromFileFieldNb=Valoarea de introdus vine din câmpul cu numărul %s din fişierul sursă. -DataComeFromIdFoundFromRef=Valoarea care provine din câmpul cu numărul %s din fișierul sursă va fi utilizată pentru a găsi id-ul obiectului părinte care se va folosi (astfel încât obiectul %s care are referinţa din fișierul sursă trebuie să existe în baza de date). -DataComeFromIdFoundFromCodeId=Codul care provine din câmpul cu numărul %s din fișierul sursă va fi folosit pentru a găsi id-ul obiectului părinte utilizat (deci codul din fișierul sursă trebuie să existe în dicționarul %s). Reține că, dacă cunoști id-ul, îl poți utiliza și în fișierul sursă în locul codului. Importul ar trebui să funcționeze în ambele cazuri. +DataComeFromFileFieldNb=Valoarea de inserat provine din coloana %s din fișierul sursă. +DataComeFromIdFoundFromRef=Valoarea care vine din fișierul sursă va fi folosită pentru a găsi id-ul obiectului părinte de utilizat (deci obiectul %s care are ref. din fișierul sursă trebuie să existe în baza de date). +DataComeFromIdFoundFromCodeId=Valoarea codului care provine din fișierul sursă va fi folosită pentru a găsi id-ul obiectului părinte de utilizat (deci codul din fișierul sursă trebuie să existe în dicționar %s). Reține că, dacă cunoști id-ul, îl poți utiliza și în fișierul sursă în loc de cod. Importul ar trebui să funcționeze în ambele cazuri. DataIsInsertedInto=Datele care provin din fişierul sursă vor fi inserate în următorul câmp: DataIDSourceIsInsertedInto=ID-ul obiectului părinte, care a fost găsit folosind datele din fișierul sursă, va fi inserat în următorul câmp:  DataCodeIDSourceIsInsertedInto=ID-ul liniei părinte, care a fost găsit din cod, va fi inserat în câmpul următor: @@ -132,9 +134,14 @@ FormatControlRule=Regula de control a formatelor ## imports updates KeysToUseForUpdates=Cheie (coloană) de utilizat pentru actualizarea datelor existente NbInsert=Număr linii inserate: %s +NbInsertSim=Număr de linii care vor fi inserate: %s NbUpdate=Număr linii actualizate: %s +NbUpdateSim=Număr de linii care vor fi actualizate : %s MultipleRecordFoundWithTheseFilters=Au fost găsite mai multe înregistrări cu ajutorul acestor filtre: %s StocksWithBatch=Stocuri și locație (depozit) a produselor cu număr de lot/serie WarningFirstImportedLine=Prima lini(e) nu va fi importată din selecţia curentă NotUsedFields=Câmpuri bază de date care nu sunt utilizate SelectImportFieldsSource = Alege câmpurile fișierului sursă pe care vrei să le imporţi și câmpul lor țintă în baza de date, alegând câmpurile din fiecare casetă de selectare sau selectează un profil de import predefinit: +MandatoryTargetFieldsNotMapped=Unele câmpuri țintă obligatorii nu sunt mapate +AllTargetMandatoryFieldsAreMapped=Toate câmpurile țintă care necesită o valoare obligatorie sunt mapate +ResultOfSimulationNoError=Rezultatul simulării: Nicio eroare diff --git a/htdocs/langs/ro_RO/externalsite.lang b/htdocs/langs/ro_RO/externalsite.lang deleted file mode 100644 index 1b2e130a3d5..00000000000 --- a/htdocs/langs/ro_RO/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Link-ul de instalare pentru site-ul extern -ExternalSiteURL=URL-ul site-ului extern care va fi conținut în iframe HTML -ExternalSiteModuleNotComplete=Modulul Site extern nu a fost configurat corespunzător. -ExampleMyMenuEntry=Intrare în Meniul meu diff --git a/htdocs/langs/ro_RO/ftp.lang b/htdocs/langs/ro_RO/ftp.lang deleted file mode 100644 index 0b169059064..00000000000 --- a/htdocs/langs/ro_RO/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Configurarea modulului client FTP -NewFTPClient=Creează o nouă conexiune FTP -FTPArea=FTP -FTPAreaDesc=Acest ecran afișează conţinutul unui server FTP -SetupOfFTPClientModuleNotComplete=Configurarea clientului FTP pare incompletă -FTPFeatureNotSupportedByYourPHP=Versiunea PHP a dvs. nu are suport pentru funcţii FTP -FailedToConnectToFTPServer=Conectarea la serverul FTP a eșuat (server: %s, port: %s) -FailedToConnectToFTPServerWithCredentials=Autentificarea la serverul FTP a eșuat folosind utilizatorul / parola definite -FTPFailedToRemoveFile=Fișierul %s nu poate fi șters. -FTPFailedToRemoveDir=Directorul %s nu poate fi șters (Verificaţi permisiunile şi faptul că directorul este gol). -FTPPassiveMode=Mod pasiv -ChooseAFTPEntryIntoMenu=Alegeți o intrare FTP în meniul ... -FailedToGetFile=Nu se pot da fișierele %s diff --git a/htdocs/langs/ro_RO/holiday.lang b/htdocs/langs/ro_RO/holiday.lang index 1720c366c9f..88a703367cc 100644 --- a/htdocs/langs/ro_RO/holiday.lang +++ b/htdocs/langs/ro_RO/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM Holidays=Concedii +Holiday=Concedii CPTitreMenu=Concedii MenuReportMonth=Situaţia lunară MenuAddCP=Cerere de concediu nouă +MenuCollectiveAddCP=Cerere de concediu colectiv nouă NotActiveModCP=Trebuie să activați modulul Concedii pentru a vedea această pagină. AddCP=Crează o cerere de concediu DateDebCP=Dată început @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirmaţi ştergerea acestei cereri de concediu? ErrorCantDeleteCP=Eroare, nu ai dreptul de a şterge această cerere de concediu. CantCreateCP=Nu ai dreptul de a face cereri de concediu. InvalidValidatorCP=Trebuie să alegi responsabilul cu abrobarea pentru cererea ta de concediu. +InvalidValidator=Utilizatorul ales nu are rol de aprobator. NoDateDebut=Trebuie să selectaţi data de început. NoDateFin=Trebuie să selectaţi data de sfârşit. ErrorDureeCP=Cererea ta de concediu nu conţine zile lucrătoare. @@ -79,6 +82,8 @@ MotifCP=Motiv UserCP=Utilizator ErrorAddEventToUserCP=O eroare a survenit in timpul adăugării de concediu excepţional. AddEventToUserOkCP=Adăugarea de concediu excepţional a fost efectuată +ErrorFieldRequiredUserOrGroup=Câmpul "grup" sau câmpul "utilizator" trebuie completat +fusionGroupsUsers=Câmpul grupuri și câmpul utilizator vor fi îmbinate MenuLogCP=Vezi modificări cereri LogCP=Jurnalul tuturor actualizărilor făcute la "Calculul zilelor de concediu" ActionByCP=Actualizat de @@ -86,6 +91,13 @@ UserUpdateCP=Actualizat pentru PrevSoldeCP=Sold precedent NewSoldeCP=Sold nou alreadyCPexist=O cerere de concediu a fost deja făcută pe această perioadă. +UseralreadyCPexist=O cerere de concediu a fost deja făcută în această perioadă pentru %s. +groups=Grupuri +users=Utilizatori +AutoSendMail=Trimitere automată email +NewHolidayForGroup=Cerere de concediu colectiv nouă +SendRequestCollectiveCP=Trimitere cerere de concediu colectiv +AutoValidationOnCreate=Validare automată FirstDayOfHoliday=Prima zi de pe cererea de concediu LastDayOfHoliday=Ultima zi de pe cererea de concediu BoxTitleLastLeaveRequests=Ultimele %s cereri de concediu modificate @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s este de obicei o zi NElucrătoare BlockHolidayIfNegative=Blocare dacă soldul este negativ LeaveRequestCreationBlockedBecauseBalanceIsNegative=Crearea acestei cereri de concediu este blocată deoarece soldul tău este negativ ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Cererea de concediu %s trebuie să fie schiţă, anulată sau refuzată pentru a fi ștearsă +IncreaseHolidays=Mărire zile libere +HolidayRecordsIncreased= %s înregistrări de concediu au fost mărite +HolidayRecordIncreased=Concediul a fost mărit +ConfirmMassIncreaseHoliday=Creștere în masă a a concediilor +NumberDayAddMass=Număr de zile de adăugat la selecție +ConfirmMassIncreaseHolidayQuestion=Sigur vrei să mărești zilele libere pentru înregistrarea %s selectată(e)? +HolidayQtyNotModified=Soldul zilelor rămase pentru %s nu a fost modificat diff --git a/htdocs/langs/ro_RO/hrm.lang b/htdocs/langs/ro_RO/hrm.lang index 5aabf0e0572..cf4ecfddf4f 100644 --- a/htdocs/langs/ro_RO/hrm.lang +++ b/htdocs/langs/ro_RO/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Deschide sediu CloseEtablishment=Închide sediu # Dictionary DictionaryPublicHolidays=Concediu - Sărbători legale -DictionaryDepartment=HRM - Listă departamente +DictionaryDepartment=HRM - Unitate organizațională DictionaryFunction=HRM - Joburi disponibile # Module Employees=Angajaţi @@ -70,9 +70,9 @@ RequiredSkills=Abilităţi necesare pentru acest job UserRank=Rang utilizator SkillList=Listă aptitudini SaveRank=Salvare rang -knowHow=Know how -HowToBe=Cum să fie -knowledge=Cunoştinţe +TypeKnowHow=Know how +TypeHowToBe=Cum să fie +TypeKnowledge=Cunoştinţe AbandonmentComment=Comentariu abandon DateLastEval=Data ultimei evaluări NoEval=Nicio evaluare efectuată pentru acest angajat @@ -88,3 +88,5 @@ DeleteSkill = Aptitudine ştearsă SkillsExtraFields=Atribute suplimentare (Competenţe) JobsExtraFields=Atribute suplimentare (Angajaţi) EvaluationsExtraFields=Atribute suplimentare (Evaluări) +NeedBusinessTravels=Necesar călătorii de afaceri +NoDescription=Nicio descriere diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang index 3e3ef345fae..7c89d198bf5 100644 --- a/htdocs/langs/ro_RO/install.lang +++ b/htdocs/langs/ro_RO/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Fișierul de configurare %s nu poate fi scris. Ve ConfFileIsWritable=Fişierul de configurare %s se poate scrie. ConfFileMustBeAFileNotADir=Fișierul de configurare %s trebuie să fie un fișier, nu un director. ConfFileReload=Reîncărcarea parametrilor din fișierul de configurare. -NoReadableConfFileSoStartInstall=Fișierul de configurare conf/conf.php nu există sau nu este citibil. Vom rula procesul de instalare pentru a încerca să-l inițializam. +NoReadableConfFileSoStartInstall=Fișierul de configurare conf/conf.php nu există sau nu poate fi citit. Vom rula procesul de instalare pentru a încerca să-l inițializam. PHPSupportPOSTGETOk=Acest PHP suportă variabile POST şi GET. PHPSupportPOSTGETKo=Este posibil ca configurarea PHP să nu accepte variabilele POST și/sau GET. Verificați parametrul variables_order în php.ini. PHPSupportSessions=Acest PHP susţine sesiuni. @@ -24,7 +24,8 @@ ErrorWrongValueForParameter=Este posibil să fi tastat greşit o valoare pentru ErrorFailedToCreateDatabase=Eşec la crearea bazei de date '%s'. ErrorFailedToConnectToDatabase=Eşec la conectarea la baza de date '%s'. ErrorDatabaseVersionTooLow=Versiunea bazei de date (%s) este prea veche. Versiunea %s sau mai mare este necesară. -ErrorPHPVersionTooLow=Versiune PHP prea veche. Versiunea %s este necesară. +ErrorPHPVersionTooLow=Versiune PHP este prea veche. Versiunea %s sau mai nouă este necesară. +ErrorPHPVersionTooHigh=Versiune PHP prea nouă. Versiunea %s sau mai veche este necesară. ErrorConnectedButDatabaseNotFound=Conectarea la server a reușit, dar baza de date '%s' nu a fost găsită. ErrorDatabaseAlreadyExists=Baza de date '%s' există deja. IfDatabaseNotExistsGoBackAndUncheckCreate=Dacă baza de date nu există, reveniți și bifați opțiunea "Creare bază de date". diff --git a/htdocs/langs/ro_RO/interventions.lang b/htdocs/langs/ro_RO/interventions.lang index ecbfb5e2358..3456ba1d0b4 100644 --- a/htdocs/langs/ro_RO/interventions.lang +++ b/htdocs/langs/ro_RO/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Eşti sigur că vrei să re-deschizi intervenţia % GenerateInter=Generare intervenţie FichinterNoContractLinked=Intervenţia %s a fost creată fără un contract asociat. ErrorFicheinterCompanyDoesNotExist=Compania nu există. Intervenția nu a fost creată. +NextDateToIntervention=Data pentru următoarea generare de intervenție +NoIntervention=Nicio intervenție diff --git a/htdocs/langs/ro_RO/knowledgemanagement.lang b/htdocs/langs/ro_RO/knowledgemanagement.lang index 08c8ea84f27..4431c6d0919 100644 --- a/htdocs/langs/ro_RO/knowledgemanagement.lang +++ b/htdocs/langs/ro_RO/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Articole KnowledgeRecord = Articol KnowledgeRecordExtraFields = Extracâmpuri articole GroupOfTicket=Grup de tichete -YouCanLinkArticleToATicketCategory=Poți conecta un articol la un grup de tichete (astfel încât articolul să fie sugerat în timpul clasificării tichetelor noi) +YouCanLinkArticleToATicketCategory=Poți lega articolul la un grup de tichete (deci articolul va fi evidențiat pe orice tichet din acest grup) SuggestedForTicketsInGroup=Sugerat pentru tichete atunci când grupul este SetObsolete=Setează ca învechit diff --git a/htdocs/langs/ro_RO/languages.lang b/htdocs/langs/ro_RO/languages.lang index 891dd64bb89..663cba94fe6 100644 --- a/htdocs/langs/ro_RO/languages.lang +++ b/htdocs/langs/ro_RO/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Etiopiană Language_ar_AR=Arabă Language_ar_DZ=Arabă (Algeria) Language_ar_EG=Arabă (Egipt) +Language_ar_JO=Arabă (Iordania) Language_ar_MA=Arabă (Maroc) Language_ar_SA=Arabă (Arabia Saudită) Language_ar_TN=Arabă (Tunisia) @@ -12,9 +13,11 @@ Language_az_AZ=Azerbaijană Language_bn_BD=Bengaleză Language_bn_IN=Bengală (India) Language_bg_BG=Bulgară +Language_bo_CN=Tibetană Language_bs_BA=Bosniacă Language_ca_ES=Catalană Language_cs_CZ=Cehă +Language_cy_GB=Galeză Language_da_DA=Daneză Language_da_DK=Daneză Language_de_DE=Germană @@ -22,6 +25,7 @@ Language_de_AT=Germană (Austria) Language_de_CH=Germană (Elveţia) Language_el_GR=Greacă Language_el_CY=Greacă (Cipru) +Language_en_AE=Engleză (Emiratele Arabe Unite) Language_en_AU=Engleză (Australia) Language_en_CA=Engleză (Canada) Language_en_GB=Engleză (Marea Britanie) @@ -36,6 +40,7 @@ Language_es_AR=Spaniolă (Argentina) Language_es_BO=Spaniolă (Bolivia) Language_es_CL=Spaniolă (Chile) Language_es_CO=Spaniolă (Columbia) +Language_es_CR=Spaniolă (Costa Rica) Language_es_DO=Spaniolă (Republica Dominicană) Language_es_EC=Spaniolă (Ecuador) Language_es_GT=Spaniolă (Guatemala) @@ -83,18 +88,21 @@ Language_lt_LT=Lituaniană Language_lv_LV=Letonă Language_mk_MK=Macedoneană Language_mn_MN=Mongolă +Language_my_MM=Birmaneză Language_nb_NO=Norvegiană (Bokmål) Language_ne_NP=Nepaleză Language_nl_BE=Olandeză (Belgia) Language_nl_NL=Olandeză Language_pl_PL=Poloneză Language_pt_AO=Portugheză (Angola) +Language_pt_MZ=Portugheză (Mozambic) Language_pt_BR=Portugheză (Brazilia) Language_pt_PT=Portugheză Language_ro_MD=Română (Moldova) Language_ro_RO=Română Language_ru_RU=Rusă Language_ru_UA=Rusă (Ucraina) +Language_ta_IN=Tamilă Language_tg_TJ=Tajică Language_tr_TR=Turcă Language_sl_SI=Slovenă @@ -106,6 +114,7 @@ Language_sr_RS=Sârbă Language_sw_SW=Swahili Language_th_TH=Tailandeză Language_uk_UA=Ucraineană +Language_ur_PK=Urdu Language_uz_UZ=Uzbecă Language_vi_VN=Vietnameză Language_zh_CN=Chineză diff --git a/htdocs/langs/ro_RO/loan.lang b/htdocs/langs/ro_RO/loan.lang index ecd77415a51..5a478b7fc00 100644 --- a/htdocs/langs/ro_RO/loan.lang +++ b/htdocs/langs/ro_RO/loan.lang @@ -7,28 +7,28 @@ PaymentLoan=Plată credit LoanPayment=Plată credit ShowLoanPayment=Afișează plată credit LoanCapital=Capital -Insurance=Asigurari +Insurance=Asigurări Interest=Dobândă -Nbterms=Numarul termenelor -Term=Termen -LoanAccountancyCapitalCode=Contabilitatea capitalului contului -LoanAccountancyInsuranceCode=Asigurarea contului contabil -LoanAccountancyInterestCode=Dobânda contului contabil +Nbterms=Număr de rate +Term=Rată +LoanAccountancyCapitalCode=Cont contabil de capital +LoanAccountancyInsuranceCode=Cont contabil de asigurare +LoanAccountancyInterestCode=Cont contabil de dobândă ConfirmDeleteLoan=Confirmaţi ştergerea acestui credit LoanDeleted=Credit șters cu succes -ConfirmPayLoan=Confirmați clasificarea plătită acest împrumut +ConfirmPayLoan=Confirmați clasificarea împrumutului ca achitat LoanPaid=Credit achitat ListLoanAssociatedProject=Lista împrumuturilor asociate proiectului AddLoan=Creați împrumut FinancialCommitment=Angajament financiar InterestAmount=Dobândă -CapitalRemain=Capitalul rămâne -TermPaidAllreadyPaid = Acest element este plătit deja -CantUseScheduleWithLoanStartedToPaid = Nu poţi folosi programatorul pentru un credit pentru care au început plăţile -CantModifyInterestIfScheduleIsUsed = Nu poţi modifica dobânda dacă foloseşti programatorul +CapitalRemain=Capital rămas de achitat +TermPaidAllreadyPaid = Această rată este plătită deja +CantUseScheduleWithLoanStartedToPaid = Nu se poate genera un grafic de rambursare pentru un împrumut cu o plată începută +CantModifyInterestIfScheduleIsUsed = Nu poţi modifica dobânda dacă foloseşti scadenţar # Admin -ConfigLoan=Configurarea împrumutului modulului -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Contabilitatea contului de capital în mod implicit -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Dobânda contului contabil în mod implicit -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Asigurarea contului de contabilitate în mod implicit +ConfigLoan=Configurare modul Credite - împrumuturi +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cont contabil (din Planul de Conturi) care va fi utilizat implicit pentru capital (modul Împrumuturi) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Cont contabil (din Planul de Conturi) care va fi utilizat implicit pentru dobândă (modul Împrumuturi) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Cont contabil (din Planul de Conturi) care va fi utilizat implicit pentru asigurare (modul Împrumuturi) CreateCalcSchedule=Editați angajamentul financiar diff --git a/htdocs/langs/ro_RO/mailmanspip.lang b/htdocs/langs/ro_RO/mailmanspip.lang index c528c3ac648..ec3edaa1dbe 100644 --- a/htdocs/langs/ro_RO/mailmanspip.lang +++ b/htdocs/langs/ro_RO/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Setare Modul Mailman şi SPIP -MailmanTitle=Sistem mailing list Mailman -TestSubscribe=Pentru testare inscriere la listele Mailman -TestUnSubscribe=Pentru testarea dezabonarii la listele Mailman +MailmanTitle=Sistem email Mailman +TestSubscribe=Pentru testare înscriere la listele Mailman +TestUnSubscribe=Pentru testarea dezabonării din listele Mailman MailmanCreationSuccess=Testul de abonare a fost executat cu succes MailmanDeletionSuccess=Testul de dezabonare a fost executat cu succes -SynchroMailManEnabled=O actualizare Mailman a fost realizată -SynchroSpipEnabled=O actualizare Spip a fost realizată -DescADHERENT_MAILMAN_ADMINPW=Parolă administrator Mailman +SynchroMailManEnabled=O actualizare Mailman va fi realizată +SynchroSpipEnabled=O actualizare Spip va fi realizată +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Parolă administrator Mailman DescADHERENT_MAILMAN_URL=URL pentru abonare Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL pentru dezabonare Mailman -DescADHERENT_MAILMAN_LISTS=Lista(e) pentru inscrierea automata a noilor mebrii ( separate de virgula) -SPIPTitle=SPIP Content Management System +DescADHERENT_MAILMAN_LISTS=Listă(e) pentru înscrierea automată a noilor membri ( separate de virgulă) +SPIPTitle=Sistem de management conţinut SPIP DescADHERENT_SPIP_SERVEUR=SPIP Server DescADHERENT_SPIP_DB=Nume bază de date SPIP -DescADHERENT_SPIP_USER=Login bază de date SPIP -DescADHERENT_SPIP_PASS=Parolă bază de date SPIP +DescADHERENT_SPIP_USER=Login bază de date SPIP +DescADHERENT_SPIP_PASS=Parolă bază de date SPIP AddIntoSpip=Adaugă în SPIP -AddIntoSpipConfirmation=Sunteti sigur ca doriti adaugarea acestui membru in SPIP ? +AddIntoSpipConfirmation=Eşti sigur că doreşti adăugarea acestui membru în SPIP? AddIntoSpipError=Eşuare la adăugarea utilizatorului în SPIP DeleteIntoSpip=Înlătură din SPIP -DeleteIntoSpipConfirmation=Sunteti sigur ca doriti stergerea acestui membru din SPIP ? -DeleteIntoSpipError=Esec la stergere utilizator din SPIP -SPIPConnectionFailed=Eşuare la conectatrea SPIP -SuccessToAddToMailmanList=%s a fost adăugată cu succes la lista de posta %s sau la baza de date SPIP -SuccessToRemoveToMailmanList=%s eliminat cu succes de pe lista de posta %s sau baza de date SPIP +DeleteIntoSpipConfirmation=Sunteţi sigur că doriţi ştergerea acestui membru din SPIP? +DeleteIntoSpipError=Eşec la ştergerea utilizatorului din SPIP +SPIPConnectionFailed=Eşuare la conectarea SPIP +SuccessToAddToMailmanList=%s a fost adăugată cu succes la lista mailman %s sau în baza de date SPIP +SuccessToRemoveToMailmanList=%s eliminat cu succes de pe lista mailman %s sau baza de date SPIP diff --git a/htdocs/langs/ro_RO/mails.lang b/htdocs/langs/ro_RO/mails.lang index 9b8f0c6eb33..2a091dca2de 100644 --- a/htdocs/langs/ro_RO/mails.lang +++ b/htdocs/langs/ro_RO/mails.lang @@ -178,3 +178,4 @@ IsAnAnswer= Este un răspuns al unui email inițial RecordCreatedByEmailCollector=Înregistrare creată de colectorul de email %s din adresa %s DefaultBlacklistMailingStatus=Valoare implicită pentru câmpul '%s' când este creat un nou contact DefaultStatusEmptyMandatory= Necompletat, dar obligatoriu +WarningLimitSendByDay=ATENȚIE: Configurarea sau contractul instanței tale limitează numărul de email-uri pe zi la %s. Încercarea de a trimite mai multe poate duce la încetinirea sau suspendarea instanței. Contactează serviciul de asistență dacă ai de o cotă mai mare. diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang index d4159a64d7a..bb39633e547 100644 --- a/htdocs/langs/ro_RO/main.lang +++ b/htdocs/langs/ro_RO/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Nu există șablon disponibil pentru acest tip de email AvailableVariables=Variabile de substituţie disponibile NoTranslation=Fără traducere Translation=Traduceri +Translations=Traduceri CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Introdu criterii de căutare valide EnterADateCriteria= Introduceți un criteriu de tip dată @@ -146,7 +153,7 @@ SelectedPeriod=Perioada selectată PreviousPeriod=Perioada anterioară Activate=Activare Activated=Activat -Closed=Închide +Closed=Închis Closed2=Închis NotClosed=Nu este închisă Enabled=Activat @@ -199,6 +206,7 @@ Valid=Valid Approve=Aprobare Disapprove=Dezaprobă ReOpen=Redeschide +OpenVerb=Deschis Upload=Încărcare ToLink=Link Select=Selectare @@ -216,7 +224,7 @@ UserGroup=Grup utilizator UserGroups=Grupuri utilizator NoUserGroupDefined=Niciun grup de utilizatori definit Password=Parola -PasswordRetype=Repetă parola +PasswordRetype=Repetare parolă NoteSomeFeaturesAreDisabled=Atenţie, o mulţime de funcţionalităţi/module sunt dezactivate în această instanţă demonstrativă. Name=Nume NameSlashCompany=Nume/Companie @@ -481,6 +489,7 @@ ActionsOnContact=Evenimente pentru acest contact/adresă ActionsOnContract=Evenimente pentru acest contract ActionsOnMember=Evenimente privind acest membru ActionsOnProduct=Evenimente despre acest produs +ActionsOnAsset=Evenimente pentru acest mijloc fix NActionsLate=%s întârziat ToDo=De făcut Completed=Terminat @@ -712,6 +721,7 @@ FeatureDisabled=Funcţionalitate dezactivată MoveBox=Mutați widgetul Offered=Oferit NotEnoughPermissions=Nu aveţi permisiuni pentru această acţiune +UserNotInHierachy=Această acțiune este rezervată supervizorilor acestui utilizator SessionName=Nume sesiune Method=Metodă Receive=Recepţionează @@ -801,6 +811,7 @@ URLPhoto=Url către foto/logo SetLinkToAnotherThirdParty=Asociază cu un alt terţ LinkTo=Asociere la LinkToProposal=Asociere la ofertă +LinkToExpedition= Link către expediție LinkToOrder=Link către comandă LinkToInvoice=Link la factură LinkToTemplateInvoice=Link la șablon factură @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Link de descărcare privat PrivateDownloadLinkDesc=Trebuie să fiți conectat și aveți nevoie de permisiuni pentru a vizualiza sau descărca fișierul Download=Descărcare DownloadDocument=Descărcare document +DownloadSignedDocument=Descărcare document semnat ActualizeCurrency=Actualizare curs valutar Fiscalyear=An fiscal ModuleBuilder=Dezvoltator de module şi aplicaţii @@ -1044,6 +1056,7 @@ SearchIntoContracts=Contracte SearchIntoCustomerShipments=Livrări Client SearchIntoExpenseReports=Rapoarte Cheltuieli SearchIntoLeaves=Concedii +SearchIntoKM=Bază de cunoştinţe SearchIntoTickets=Tichete de suport SearchIntoCustomerPayments=Plăţi ale clienţilor SearchIntoVendorPayments=Plăți furnizori @@ -1135,15 +1148,29 @@ EventReminder=Memento eveniment UpdateForAllLines=Actualizare pentru toate liniile OnHold=În aşteptare Civility=Formulă de adresare -AffectTag=Afectează eticheta +AffectTag=Asignare Tag +AffectUser=Asignare utilizator +SetSupervisor=Setare supervizor CreateExternalUser=Creare utilizator extern -ConfirmAffectTag=Afectare multiplă etichete -ConfirmAffectTagQuestion=Sigur doriți să afectați etichetele înregistrărilor %s selectat(e)? +ConfirmAffectTag=Atribuire Tag în masă +ConfirmAffectUser=Asignare utilizator în masă +ProjectRole=Rol atribuit pe fiecare proiect +TasksRole=Rol atribuit pentru fiecare task al fiecărui proiect +ConfirmSetSupervisor=Setare supervizor în masă +ConfirmUpdatePrice=Alege un procent de creștere/scădere a prețului +ConfirmAffectTagQuestion=Sigur vrei să atribui tag-urile înregistrăr(ilor) selectate %s ? +ConfirmAffectUserQuestion=Sigur vrei să asignezi utilizatori la înregistrăr(ile) selectate %s? +ConfirmSetSupervisorQuestion=Sigur vrei să setezi un supervizor pentru înregistrarea selectată(e) %s? +ConfirmUpdatePriceQuestion=Sigur vrei să actualizezi prețul înregistră(rilor) selectate %s? CategTypeNotFound=Nu s-a găsit niciun tip de etichetă pentru tipul de înregistrări +Rate=Curs +SupervisorNotFound=Supervizor-ul nu a fost găsit CopiedToClipboard=Copiat în clipboard InformationOnLinkToContract=Această sumă este doar totalul tuturor liniilor contractului. Nici o noțiune de timp nu este luată în considerare. ConfirmCancel=Eşti sigur că vrei să anulezi EmailMsgID=MsgID email +EmailDate=Dată email +SetToStatus=Setare la statusul %s SetToEnabled=Setat ca activată SetToDisabled=Setat ca dezactivat ConfirmMassEnabling=confirmare activare în masă @@ -1172,8 +1199,14 @@ Terminated=Terminat AddLineOnPosition=Adaugă linie pe poziție (la sfârșit dacă este goală) ConfirmAllocateCommercial=Confirmare asignare reprezentant vânzări ConfirmAllocateCommercialQuestion=Sigur vrei să asignezi %s la înregistră(rile) selectate? -CommercialsAffected=Reprezentanții de vânzări afectați -CommercialAffected=Reprezentantul de vânzări afectat +CommercialsAffected=Reprezentanți vânzări asignați +CommercialAffected=Reprezentant vânzări asignat YourMessage=Mesajul tău YourMessageHasBeenReceived=Mesajul tău a fost primit. Vă vom răspunde sau vă vom contacta cât mai curând posibil. UrlToCheck=Url de verificat +Automation=Automatizare +CreatedByEmailCollector=Creat de Colectorul de email +CreatedByPublicPortal=Creat din Portalul public +UserAgent=User Agent +InternalUser=Utilizator intern +ExternalUser=Utilizator extern diff --git a/htdocs/langs/ro_RO/members.lang b/htdocs/langs/ro_RO/members.lang index 4a29add1e85..3d77a5f9eda 100644 --- a/htdocs/langs/ro_RO/members.lang +++ b/htdocs/langs/ro_RO/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Un alt membru (nume:%s, log ErrorUserPermissionAllowsToLinksToItselfOnly=Din motive de securitate, trebuie să aveţi drepturi de a modifica toţi utilizatorii pentru a putea asocia un membru unui utilizator altul decât tine. SetLinkToUser=Asociere utilizator sistem SetLinkToThirdParty=Asociere terţ din sistem +MemberCountersArePublic=Contoarele de membri valizi sunt publice MembersCards=Generare carduri pentru membri MembersList=Listă de membri MembersListToValid=Listă membri schiţă (de validat) @@ -34,8 +35,10 @@ DateSubscription=Data adeziunii DateEndSubscription=Dată terminare adeziune EndSubscription=Terminare adeziune SubscriptionId=ID contribuţie -WithoutSubscription=Fără contribuţie -MemberId=ID membru +WithoutSubscription=Fără calitate de membru +WaitingSubscription=Calitatea de membru în așteptare +MemberId=Id membru +MemberRef=Ref membru NewMember=Membru nou MemberType=Tip Membru MemberTypeId=ID tip membru @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Tipul de membru nu poate fi șters NewSubscription=Cotizaţie nouă NewSubscriptionDesc=Acest formular vă permite să vă înregistraţi ca membru nou al fundaţiei. Dacă doriţi să vă reînnoiţi adeziunea (dacă sunteţi deja membru), vă rugăm să contactaţi conducerea fundaţiei pe email la %s . Subscription=Contribuţie +AnyAmountWithAdvisedAmount=Orice sumă la alegerea ta, recomandat %s +AnyAmountWithoutAdvisedAmount=Orice sumă la alegerea ta +CanEditAmountShort=Orice valoare +CanEditAmountShortForValues=recomandat, orice valoare +MembershipDuration=Durată +GetMembershipButtonLabel=Aderare Subscriptions=Contribuţii SubscriptionLate=Întârziat SubscriptionNotReceived=Contribuţia nu a fost încasată @@ -135,7 +144,7 @@ CardContent=Conţinutul fişei tale de membru # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Vrem să vă informăm că cererea dvs. de adeziune ca membru a fost primită.

    ThisIsContentOfYourMembershipWasValidated=Vrem să vă informăm că cererea dvs. de adeziune ca membru a fost validată cu următoarele informații:

    -ThisIsContentOfYourSubscriptionWasRecorded=Vrem să vă informăm că noul dvs. abonament a fost înregistrat.

    +ThisIsContentOfYourSubscriptionWasRecorded=Te anunțăm că noul abonament a fost înregistrat. Regăsești factura atașată aici.

    ThisIsContentOfSubscriptionReminderEmail=Dorim să vă informăm că adeziunea/abonamentul dvs. este pe cale să expire sau a expirat deja (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Sperăm că il veți reînnoi.

    ThisIsContentOfYourCard=Acesta este un rezumat al informațiilor pe care le avem despre dvs. Vă rugăm să ne contactați dacă ceva este incorect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subiectul emailului de notificare primit în cazul autoînscrierii unui oaspete/vizitator @@ -198,8 +207,10 @@ NbOfSubscriptions=Număr contribuţii AmountOfSubscriptions=Suma colectată din contribuţii TurnoverOrBudget=Cifra de afaceri (pentru o companie), sau Bugetul (pentru o fundaţie) DefaultAmount=Valoarea implicită a contribuţiei -CanEditAmount=Vizitatorul poate alege/edita valoarea contribuţiei sale -MEMBER_NEWFORM_PAYONLINE=Mergi la pagina integrată de plată online +CanEditAmount=Aderarea/înscrierea este gratuită +CanEditAmountDetail=Vizitatorul poate alege/modifica suma cu care contribuie, indiferent de tipul de membru +AmountIsLowerToMinimumNotice=dintr-un total de %s +MEMBER_NEWFORM_PAYONLINE=După înregistrarea online, vei fi direcționat automat pe pagina de plată online ByProperties=După natură MembersStatisticsByProperties=Statistici membri după natură VATToUseForSubscriptions=Cota TVA de utilizat pentru contribuţii @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=Crearea unui cont de utilizator pentru membri le permite CreateDolibarrThirdPartyDesc=Un terț este persoana juridică care va fi utilizată pe factură dacă decideți să generați factura pentru fiecare contribuție. O veți putea crea mai târziu în timpul procesului de înregistrare a contribuției.  MemberFirstname=Prenume membru MemberLastname=Nume membru +MemberCodeDesc=Cod de membru, unic pentru toți membrii  diff --git a/htdocs/langs/ro_RO/modulebuilder.lang b/htdocs/langs/ro_RO/modulebuilder.lang index d2ea048b1eb..f2cb75bc24d 100644 --- a/htdocs/langs/ro_RO/modulebuilder.lang +++ b/htdocs/langs/ro_RO/modulebuilder.lang @@ -153,3 +153,4 @@ LinkToParentMenu=Meniu părinte (fk_xxxxmenu) ListOfTabsEntries=Listă tab-uri TabsDefDesc=Defineşte aici tab-urile furnizate de modulul tău TabsDefDescTooltip=Tab-urile furnizate de modulul/aplicația ta sunt definite în matricea $this->tabs în fișierul descriptor al modulului. Poți edita manual acest fișier sau poți utiliza editorul încorporat.  +BadValueForType=Valoare incorectă pentru tipul %s diff --git a/htdocs/langs/ro_RO/mrp.lang b/htdocs/langs/ro_RO/mrp.lang index 476ca0cc5b3..e188236cbcc 100644 --- a/htdocs/langs/ro_RO/mrp.lang +++ b/htdocs/langs/ro_RO/mrp.lang @@ -11,8 +11,8 @@ Bom=Bonuri de consum BillOfMaterials=Bon de consum BillOfMaterialsLines=Linii bon consum BOMsSetup=Configurarea modulului BOM -ListOfBOMs=Listă bonuri de consum - BOM -ListOfManufacturingOrders=Listă comenzi de producţie +ListOfBOMs=Liste de materiale - BOM +ListOfManufacturingOrders=Comenzi de producţie NewBOM=Bon de consum nou ProductBOMHelp=Produs de creat (sau dezasamblat) cu această listă de materiale.
    Notă: Produsele cu proprietatea 'Natură produs' = 'Materie primă' nu sunt vizibile în această listă. BOMsNumberingModules=Şabloane numerotare BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Eşti sigur că vrei să clonezi bonul de consum %s? ConfirmCloneMo=Eşti sigur că vrei să clonezi Comanda de producţie %s ? ManufacturingEfficiency=Eficienţa producţiei ConsumptionEfficiency=Eficienţa consumului +Consumption=Consum ValueOfMeansLoss=Valoarea de 0.95 înseamnă o pierdere medie de 5%% în timpul producției sau demontării  ValueOfMeansLossForProductProduced= Valoarea de 0,95 înseamnă o medie de 5 %% pierdere din produsul fabricat DeleteBillOfMaterials=Şterge bonuri de consum @@ -82,6 +83,7 @@ ProductsToProduce=Produse de fabricat UnitCost=Cost unitar TotalCost=Cost total BOMTotalCost=Costul pentru fabricaţia acestui Bon de consum în funcție de costul fiecărei cantități și produs de consumat (utilizați Prețul de cost, dacă este definit, altfel Prețul mediu ponderat, dacă este definit, altfel cel mai bun preț de achiziție) +BOMTotalCostService=Dacă modulul "Stații de lucru" este activat și o stație de lucru este definită implicit pe linie, atunci calculul este "cantitate (convertită în ore) x stație de lucru ahr", în caz contrar "cantitate (convertită în ore) x prețul de cost al serviciului"  GoOnTabProductionToProduceFirst=Mai întâi trebuie să fi început producția pentru a închide o Comandă de fabricație (Vezi fila '%s'). Puteți anula. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit nu poate fi folosit într-un BOM sau MO Workstation=Staţie de lucru @@ -112,3 +114,7 @@ MOAndLines=Comenzi de producţie şi linii MoChildGenerate=Generare Bon consum copil ParentMo=Bon consum părinte MOChild=Bon consum copil +BomCantAddChildBom=Nomenclatorul %s este deja prezentă în arborele care duce la nomenclatorul %s +BOMNetNeeds = Necesar net BOM +BOMProductsList=Produse BOM +BOMServicesList=Servicii BOM diff --git a/htdocs/langs/ro_RO/oauth.lang b/htdocs/langs/ro_RO/oauth.lang index 6bb293ad935..7608fdef072 100644 --- a/htdocs/langs/ro_RO/oauth.lang +++ b/htdocs/langs/ro_RO/oauth.lang @@ -1,32 +1,36 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=Configurarea OAuth +ConfigOAuth=Configurare OAuth OAuthServices=Servicii OAuth -ManualTokenGeneration=Generarea tokenului manual -TokenManager=Manager de Token +ManualTokenGeneration=Generare manuală token +TokenManager=Manager Token IsTokenGenerated=Se generează tokenul? -NoAccessToken=Nicun token de acces salvat în baza de date locală +NoAccessToken=Niciun token de acces salvat în baza de date locală HasAccessToken=Un token a fost generat și salvat în baza de date locală NewTokenStored=Token-ul a fost primit și salvat -ToCheckDeleteTokenOnProvider=Faceți clic aici pentru a verifica / șterge autorizația salvată de furnizorul OAuth %s -TokenDeleted=Token sters -RequestAccess=Faceți clic aici pentru a solicita / reînnoi accesul și a primi un nou token pentru salvare -DeleteAccess=Click aici pentru a șterge token -UseTheFollowingUrlAsRedirectURI=Utilizați adresa URL următoare ca URI de redirecționare atunci când vă creați acreditările cu furnizorul dvs. de servicii OAuth: -ListOfSupportedOauthProviders=Introduceți acreditările furnizate de furnizorul dvs. de servicii OAuth2. Numai furnizorii OAuth2 acceptați sunt listați aici. Aceste servicii pot fi utilizate de alte module care necesită autentificare OAuth2. -OAuthSetupForLogin=Pagina pentru a genera un token OAuth +ToCheckDeleteTokenOnProvider=Faceți clic aici pentru a verifica/șterge autorizația salvată de furnizorul OAuth %s +TokenDeleted=Token şters +RequestAccess=Clic aici pentru a solicita/reînnoi accesul și pentru a primi un nou token  +DeleteAccess=Click aici pentru a șterge token-ul +UseTheFollowingUrlAsRedirectURI=Utilizați adresa URL următoare ca URI de redirecționare atunci când vă creați acreditările cu furnizorul de servicii OAuth: +ListOfSupportedOauthProviders=Adăugă furnizorii tăi de token-uri OAuth2. Apoi, accesează pagina de administrare a furnizorului OAuth pentru a crea/obține un ID OAuth și un secret și salveză-le aici. După ce ai terminat, comută pe cealaltă filă pentru a-ți genera token-ul. +OAuthSetupForLogin=Pagină gestionare (generare/ștergere) token-uri OAuth SeePreviousTab=Consultați fila anterioară -OAuthIDSecret=ID-ul OAuth și secretul -TOKEN_REFRESH=Token Refresh Present -TOKEN_EXPIRED=Tokenul a expirat -TOKEN_EXPIRE_AT=Tokenul expiră la -TOKEN_DELETE=Ștergeți tokenul salvat +OAuthProvider=Furnizor OAuth +OAuthIDSecret=ID OAuth și secretul +TOKEN_REFRESH=Token Refresh Prezent +TOKEN_EXPIRED=Token-ul a expirat +TOKEN_EXPIRE_AT=Token-ul expiră la +TOKEN_DELETE=Ștergeți token-ul salvat OAUTH_GOOGLE_NAME=Serviciul Google OAuth -OAUTH_GOOGLE_ID=ID-ul Google OAuth +OAUTH_GOOGLE_ID=ID Google OAuth OAUTH_GOOGLE_SECRET=Secretul OAuth Google -OAUTH_GOOGLE_DESC=Mergeți la această pagină apoi "Acreditări" pentru a crea acreditările OAuth OAUTH_GITHUB_NAME=Serviciul OAuth GitHub -OAUTH_GITHUB_ID=ID-ul OAuth GitHub +OAUTH_GITHUB_ID=ID OAuth GitHub OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Mergeți la această pagină apoi "Înregistrați o nouă aplicație" pentru a crea acreditările OAuth +OAUTH_URL_FOR_CREDENTIAL=Accesează această pagină pentru a crea sau a obține ID-ul și Secretul OAuth OAUTH_STRIPE_TEST_NAME=Testare OAuth Stripe OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=ID OAuth +OAUTH_SECRET=Secret OAuth +OAuthProviderAdded=Furnizor OAuth adăugat +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Există deja o intrare OAuth pentru acest furnizor și etichetă diff --git a/htdocs/langs/ro_RO/orders.lang b/htdocs/langs/ro_RO/orders.lang index b1b284a125f..3931bfaec96 100644 --- a/htdocs/langs/ro_RO/orders.lang +++ b/htdocs/langs/ro_RO/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=O comandă era deja deschisă legată de această ofertă comercială, așa că nicio altă comandă nu a fost creată automat OrdersArea=Comenzi clienţi SuppliersOrdersArea=Comenzi de achiziție OrderCard=Fişă Comandă diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index 12cf4e8e76e..14e505b6b5f 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Comanda de achiziţie a fost aprobată Notify_ORDER_SUPPLIER_REFUSE=Comanda de achiziţie a fost refuzată Notify_PROPAL_VALIDATE=Oferta client a fost validată Notify_PROPAL_CLOSE_SIGNED=Oferta comercială a fost acceptată şi semnată de client +Notify_PROPAL_CLOSE_SIGNED_WEB=Oferta comecială a fost închisă ca semnată de client pe pagina portalului Notify_PROPAL_CLOSE_REFUSED=Oferta comercială a fost refuzată de client +Notify_PROPAL_CLOSE_REFUSED_WEB=Oferta comecială a fost închisă ca refuzată de client pe pagina portalului Notify_PROPAL_SENTBYMAIL=Ofertă comercială a fost trimisă prin poştă Notify_WITHDRAW_TRANSMIT=Transmitere retragere de sumă Notify_WITHDRAW_CREDIT=Retragere de credit @@ -181,6 +183,7 @@ SizeUnitfoot=picior SizeUnitpoint=punct BugTracker=Bug tracker SendNewPasswordDesc=Acest formular vă permite să solicitați o nouă parolă. Acesta va fi trimis la adresa ta de email.
    Schimbarea parolei va intra în vigoare după ce faceți clic pe link-ul de confirmare din email.
    Verificați Inbox-ul +EnterNewPasswordHere=Introdu noua ta parolă aici BackToLoginPage=Înapoi la pagina de conectare AuthenticationDoesNotAllowSendNewPassword=Metoda de autentificare este %s.
    În acest mod, sistemul nu poate şti şi nici nu poate să-ţi schimbe parola.
    Contactează administratorul de sistem dacă vrei să-ţi schimbi parola. EnableGDLibraryDesc=Instalați sau activați biblioteca GD în configuraţia PHP pentru a utiliza această opțiune. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Factura %s a fost validată. EMailTextInvoicePayed=Factura %s a fost achitată. EMailTextProposalValidated=Oferta comercială %s a fost validată. EMailTextProposalClosedSigned=Oferta comercială %s a fost semnată şi închisă. +EMailTextProposalClosedSignedWeb=Oferta comercială %s a fost închisă ca semnată pe pagina portalului. +EMailTextProposalClosedRefused=Oferta comercială %s a fost închisă ca refuzată +EMailTextProposalClosedRefusedWeb=Oferta comercială %s a fost închisă ca refuzată pe pagina portalului. EMailTextOrderValidated=Comanda %s a fost validată. EMailTextOrderApproved=Comanda %s a fost aprobată. EMailTextOrderValidatedBy=Comanda %s a fost înregistrată de %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Eşti sigur că vrei să "%s" ? ConfirmBtnCommonTitle = Confirmare acţiune CloseDialog = Închide Autofill = Autocompletare + +# externalsite +ExternalSiteSetup=Link-ul de instalare pentru site-ul extern +ExternalSiteURL=URL-ul site-ului extern care va fi conținut în iframe HTML +ExternalSiteModuleNotComplete=Modulul Site extern nu a fost configurat corespunzător. +ExampleMyMenuEntry=Intrare în Meniul meu + +# ftp +FTPClientSetup=Configurare modul client FTP sau SFTP +NewFTPClient=Configurare nouă de conexiune FTP/SFTP +FTPArea=FTP/SFTP +FTPAreaDesc=Acest ecran arată o vedere a unui server FTP și SFTP. +SetupOfFTPClientModuleNotComplete=Configurarea modulului client FTP sau SFTP pare să fie incompletă +FTPFeatureNotSupportedByYourPHP=PHP-ul nu suportă funcţii FTP sau SFTP +FailedToConnectToFTPServer=Conectarea la server a eşuat ( server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Autentificarea la server a eşuat cu numele/parola definită +FTPFailedToRemoveFile=Eșec la ștergerea fișierului %s. +FTPFailedToRemoveDir=Eșec la eliminarea directorului %s : verifică permisiunile și dacă directorul este gol. +FTPPassiveMode=Mod pasiv +ChooseAFTPEntryIntoMenu=Alege un site FTP/SFTP din meniu... +FailedToGetFile=Nu se pot obţine fișierele %s +ErrorFTPNodisconnect=Eroare la deconectarea de la serverul FTP/SFTP +FileWasUpload=Fișierul %s a fost încărcat +FTPFailedToUploadFile=Eșec la încărcarea fișierului %s. +AddFolder=Creare folder +FileWasCreateFolder=Folderul %s a fost creat +FTPFailedToCreateFolder=Eșec la crearea folderului %s. diff --git a/htdocs/langs/ro_RO/partnership.lang b/htdocs/langs/ro_RO/partnership.lang index a73206f4945..4c7b59c24f6 100644 --- a/htdocs/langs/ro_RO/partnership.lang +++ b/htdocs/langs/ro_RO/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Parteneriate PartnershipDescription=Modul Management parteneriate PartnershipDescriptionLong= Modul Management parteneriate Partnership=Parteneriat +Partnerships=Parteneriate AddPartnership=Adăugare parteneriat CancelPartnershipForExpiredMembers=Parteneriat: Anulează parteneriatul membrilor cu adeziuni expirate PartnershipCheckBacklink=Parteneriat: Verificare backlink de referinţă @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Parteneriat: Verificare backlink de referinţă # Menu # NewPartnership=Parteneriat nou +NewPartnershipbyWeb= Parteneriatul tău a fost adăugat cu succes. ListOfPartnerships=Listă parteneriate # diff --git a/htdocs/langs/ro_RO/paypal.lang b/htdocs/langs/ro_RO/paypal.lang index 6533bfc0210..17dd8bb8182 100644 --- a/htdocs/langs/ro_RO/paypal.lang +++ b/htdocs/langs/ro_RO/paypal.lang @@ -1,35 +1,35 @@ # Dolibarr language file - Source file is en_US - paypal -PaypalSetup=PayPal modul de configurare -PaypalDesc=Acest modul permite plata de către clienți prin intermediul PayPal . Aceasta poate fi utilizată pentru o plată ad-hoc sau pentru o plată aferentă unui obiect Dolibarr (factură, comandă, ...) +PaypalSetup=Configurare modul PayPal +PaypalDesc=Acest modul permite plata de la clienţi prin PayPal. Acesta poate fi utilizat pentru plăţi ad-hoc payment sau pentru plăţi aferente unui obiect din sistem (factură, comandă, ...) PaypalOrCBDoPayment=Plăteşte cu PayPal (Card sau PayPal) PaypalDoPayment=Plătiți cu PayPal -PAYPAL_API_SANDBOX=Mod de încercare / sandbox +PAYPAL_API_SANDBOX=Mod test/sandbox PAYPAL_API_USER=API numele de utilizator -PAYPAL_API_PASSWORD=API parola -PAYPAL_API_SIGNATURE=API semnătura -PAYPAL_SSLVERSION=Versiune Curl SSL -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferiți o plată integrală (card de credit + PayPal) sau doar "PayPal" +PAYPAL_API_PASSWORD=API parolă +PAYPAL_API_SIGNATURE=API semnătură +PAYPAL_SSLVERSION=Versiune curl SSL +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferă o plată integrală (card de credit + PayPal) sau doar "PayPal" PaypalModeIntegral=Integral -PaypalModeOnlyPaypal=Numai PayPal -ONLINE_PAYMENT_CSS_URL=Adresa URL opțională a foii de stil CSS pe pagina de plată online -ThisIsTransactionId=Acesta este ID-ul de tranzacţie: %s -PAYPAL_ADD_PAYMENT_URL=Includeți URL cu plata PayPal atunci când trimiteți un document prin e-mail +PaypalModeOnlyPaypal=Doar PayPal +ONLINE_PAYMENT_CSS_URL=Adresa URL opțională a foii de stil CSS pentru pagina de plată online +ThisIsTransactionId=Acesta este ID-ul tranzacţiei: %s +PAYPAL_ADD_PAYMENT_URL=Include URL-ul cu plata PayPal atunci când trimiți un document prin email NewOnlinePaymentReceived=A fost primită o nouă plată online -NewOnlinePaymentFailed=Noua plata online a încercat, dar nu a reușit -ONLINE_PAYMENT_SENDEMAIL=Adresa de e-mail pentru notificări după fiecare încercare de plată (in caz de succes și eșec) -ReturnURLAfterPayment=URL-ul return după plată +NewOnlinePaymentFailed=S-a încercat o nouă plată online, dar a eşuat +ONLINE_PAYMENT_SENDEMAIL=Adresa de email pentru notificări după fiecare încercare de plată (în caz de succes și eșec) +ReturnURLAfterPayment=URL-ul de returnare după plată ValidationOfOnlinePaymentFailed=Validarea plății online a eșuat -PaymentSystemConfirmPaymentPageWasCalledButFailed=Pagina de confirmare a plății apelată de sistemul de plăți a întors o eroare -SetExpressCheckoutAPICallFailed=Apel API SetExpressCheckout eșuat.. -DoExpressCheckoutPaymentAPICallFailed=Apel API DoExpressCheckoutPayment eșuat. -DetailedErrorMessage=Mesaj eroare detaliat -ShortErrorMessage=Mesaj eroare scurt +PaymentSystemConfirmPaymentPageWasCalledButFailed=Pagina de confirmare a plății apelată de sistemul de plăți a returnat o eroare +SetExpressCheckoutAPICallFailed=Apel API SetExpressCheckout eșuat. +DoExpressCheckoutPaymentAPICallFailed=Apelul API DoExpressCheckoutPayment a eșuat. +DetailedErrorMessage=Mesaj de eroare detaliat +ShortErrorMessage=Mesaj de eroare scurt ErrorCode=Cod de eroare -ErrorSeverityCode=Cod Severitate eroare +ErrorSeverityCode=Cod severitate eroare OnlinePaymentSystem=Sistem de plată online -PaypalLiveEnabled=ModcPayPal "live" activat (altfel test / modul sandbox) -PaypalImportPayment=Importați plăți PayPal -PostActionAfterPayment=Acțiuni postate după plăți +PaypalLiveEnabled=Mod PayPal "live" activat (altfel test/mod sandbox) +PaypalImportPayment=Import plăți PayPal +PostActionAfterPayment=Acțiuni Post-plăți ARollbackWasPerformedOnPostActions=A fost efectuată o revocare a tuturor acțiunilor Post. Trebuie să finalizați manual acțiunile postate dacă acestea sunt necesare. ValidationOfPaymentFailed=Validarea plății a eșuat CardOwner=Deţinătorul cardului diff --git a/htdocs/langs/ro_RO/productbatch.lang b/htdocs/langs/ro_RO/productbatch.lang index 07b3b358a4b..8dde906d68e 100644 --- a/htdocs/langs/ro_RO/productbatch.lang +++ b/htdocs/langs/ro_RO/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Lot/Serie: %s printEatby=Expiră la : %s printSellby=Vândut la: %s printQty=Cant: %d +printPlannedWarehouse=Depozit: %s AddDispatchBatchLine=Adaugă o linie pentru trimiterea perioadei de valabilitate WhenProductBatchModuleOnOptionAreForced=Când modulul Lot / Serial este activat, scăderea automată a stocurilor este forțată la "Reducerea stocurilor reale la validarea livrărilor" și modul automat de creștere este forțat la "Cresterea stocurilor reale la expedierea manuală în depozite" și nu poate fi editat. Alte opțiuni pot fi definite așa cum doriți. ProductDoesNotUseBatchSerial=Acest produs nu foloseste numărul de lot / serie @@ -43,3 +44,4 @@ HideLots=Ascunde loturile OutOfOrder=Indisponibil InWorkingOrder=În stare de funcționare ToReplace=De înlocuit +CantMoveNonExistantSerial=Eroare. Soliciţi o mutare pe o înregistrare pentru o serie care nu mai există. Este posibil să iei aceiași serie pe același depozit de mai multe ori în aceiași expediere sau a fost folosită de o altă livrare. Înlătură această livrare și pregăteşte alta. diff --git a/htdocs/langs/ro_RO/products.lang b/htdocs/langs/ro_RO/products.lang index c19798ab0d9..88b786c73b3 100644 --- a/htdocs/langs/ro_RO/products.lang +++ b/htdocs/langs/ro_RO/products.lang @@ -262,7 +262,7 @@ Quarter1=Trimestru 1. Quarter2=Trimestru 2. Quarter3=Trimestru 3. Quarter4=Trimestru 4. -BarCodePrintsheet=Tipărire cod de bare +BarCodePrintsheet=Tipărește coduri de bare PageToGenerateBarCodeSheets=Cu acest instrument, puteți tipări autocolante cu coduri de bare. Alegeți formatul paginii de autocolant, tipul de cod de bare și valoarea codului de bare, apoi faceți clic pe butonul %s. NumberOfStickers=Număr de autocolante de tipărit pe pagină PrintsheetForOneBarCode=Tipăriţi mai multe autocolante pentru un cod de bare diff --git a/htdocs/langs/ro_RO/projects.lang b/htdocs/langs/ro_RO/projects.lang index 519c9eacd0e..39d3dc0b05a 100644 --- a/htdocs/langs/ro_RO/projects.lang +++ b/htdocs/langs/ro_RO/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Această vedere prezintă toate proiectele şi task-urile pentru TasksDesc=Această vedere prezintă toate proiectele şi task-urile (drepturile îţi permit să vezi totul). AllTaskVisibleButEditIfYouAreAssigned=Toate task-urile pentru proiectele calificate sunt vizibile, însă puteți introduce timp consumat doar pe task-ul atribuit utilizatorului selectat. Atribuiți task-ul dacă trebuie să introduceți timp consumat pe el. OnlyYourTaskAreVisible=Sunt vizibile doar task-urile atribuite ție. Dacă trebuie să introduci timpul pentru un task și dacă task-ul nu este vizibil aici, atunci trebuie să-ţi atribui task-ul.  +ImportDatasetProjects=Proiecte sau oportunități ImportDatasetTasks=Task-uri proiecte ProjectCategories=Etichete/categorii proiecte NewProject=Proiect nou @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Sumă lead-uri din proiectele deschise în OpportunitiesStatusForProjects=Sumă lead-uri din priecte în funcție de status ShowProject=Afişează proiect ShowTask=Arată task +SetThirdParty=Setare terț SetProject=Setare proiect +OutOfProject=În afara proiectului NoProject=Niciun proiect definit sau la care sunt responsabil NbOfProjects=Număr proiecte NbOfTasks=Număr task-uri @@ -122,7 +125,8 @@ ValidateProject=Validează proiect ConfirmValidateProject=Sigur doriți să validați acest proiect? CloseAProject=Închide proiect ConfirmCloseAProject=Sigur doriți să închideți acest proiect? -AlsoCloseAProject=De asemenea, închideți proiectul (păstrați-l deschis dacă totuși trebuie să urmăriţi task-uri de producție pe acesta) +AlsoCloseAProject=Totodată, închide proiectul +AlsoCloseAProjectTooltip=Păstrează-l deschis dacă trebuie să urmărești sarcinile de producție pe el  ReOpenAProject=Re-deschide proiect ConfirmReOpenAProject=Sigur doriți să redeschideți acest proiect? ProjectContact=Contacte proiect @@ -165,7 +169,7 @@ OpportunityProbability=Probabilitate lead OpportunityProbabilityShort=Probab. lead OpportunityAmount=Valoare lead OpportunityAmountShort=Valoare lead -OpportunityWeightedAmount=Valoare ponderată lead +OpportunityWeightedAmount=Valoare oportunitate, ponderată în funcție de probabilitate OpportunityWeightedAmountShort=Val. ponderată lead OpportunityAmountAverageShort=Valoare medie lead OpportunityAmountWeigthedShort=Valoare ponderată lead @@ -238,7 +242,7 @@ OppStatusPENDING=În aşteptare OppStatusWON=Câştigat OppStatusLOST=Pierdut Budget=Buget -AllowToLinkFromOtherCompany=Permite asocierea proiectului pe la o altă companie

    Valori acceptate:
    - Păstrați gol: Poate asocia orice proiect al companiei (implicit)
    - "all": Poate asocia orice proiecte, chiar proiecte ale altor companii
    - ID-urile terților separate prin virgule: poate asocia toate proiectele acestor terți (Exemplu: 123,4795,53)
    +AllowToLinkFromOtherCompany=Permite conectarea unui element cu un proiect al altei companii.

    Valori acceptate:
    - Păstrează gol: poate lega elemente cu orice proiecte din aceeași companie (implicit)
    - "toate": Poate lega elemente cu orice proiecte, chiar și proiecte ale altor companii
    - O listă de ID-uri terți separați prin virgule: poate lega elemente cu orice proiecte ale acestor terți (Exemplu: 123,4795,53)
    LatestProjects=Ultimele %s proiecte LatestModifiedProjects=Ultimele %s proiecte modificate OtherFilteredTasks=Alte task-uri filtrate @@ -259,7 +263,7 @@ TimeSpentInvoiced=Timp consumat facturat TimeSpentForIntervention=Timp consumat TimeSpentForInvoice=Timpi consumaţi OneLinePerUser=O linie per utilizator -ServiceToUseOnLines=Serviciu de utilizat pe linii +ServiceToUseOnLines=Serviciu de utilizat, pe linii, în mod implicit InvoiceGeneratedFromTimeSpent=Factura %s a fost generată cu timpul consumat pe proiect InterventionGeneratedFromTimeSpent=Intervenția %s a fost generată din timpul consumat pe proiect ProjectBillTimeDescription=Bifați dacă introduceți un timeline în task-urile proiectului ȘI intenționați să generați factură(i) din foaia de timp pentru a factura proiectul clientului (nu bifați dacă intenționați să creați o factură care nu se bazează pe foile de timp introduse). Notă: Pentru a genera factură, accesați fila "Timp consumat" a proiectului și selectați liniile pe care să le includeți. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profitul este calculat utilizând AddPersonToTask=Adaugă și la task-uri UsageOrganizeEvent=Utilizare: Organizare eveniment PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Clasificați proiectul ca închis când toate task-urile sale sunt finalizate (100%% progres) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Notă: proiectele existente cu toate task-urile la 100 %% progres nu vor fi afectate: va trebui să le închideți manual. Această opțiune afectează doar proiectele deschise. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Notă: proiectele existente cu toate task-urile deja setate la un progres de 100 %% nu vor fi afectate: va trebui să le închizi manual. Această opțiune afectează numai proiectele deschise. SelectLinesOfTimeSpentToInvoice=Selectează linii de timp consumat care nu sunt facturate, apoi iniţiază acțiunea în bloc "Generare factură" pentru a le factura ProjectTasksWithoutTimeSpent=Task-uri proiect fără timp consumat FormForNewLeadDesc=Vă mulțumim că aţi completat formularul pentru a ne contacta. De asemenea, ne puteți trimite un email direct la %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Activare formular public de contact NewLeadbyWeb=Mesajul sau solicitarea ta a fost înregistrată. Vă vom răspunde sau vă vom contacta în curând. NewLeadForm=Formular contact nou LeadFromPublicForm=Formular public lead online +ExportAccountingReportButtonLabel=Generare raport diff --git a/htdocs/langs/ro_RO/propal.lang b/htdocs/langs/ro_RO/propal.lang index 388d721ca19..5f9d7d7db42 100644 --- a/htdocs/langs/ro_RO/propal.lang +++ b/htdocs/langs/ro_RO/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Disponibilitate livrare SetAvailability=Setează disponibilitatea de livrare AfterOrder=după comandă OtherProposals=Alte oferte + ##### Availability ##### AvailabilityTypeAV_NOW=Imediat AvailabilityTypeAV_1W=1 săptămână AvailabilityTypeAV_2W=2 săptămâni AvailabilityTypeAV_3W=3 săptămâni AvailabilityTypeAV_1M=1 lună -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Reprezentant urmărire ofertă TypeContact_propal_external_BILLING=Contact client pentru facturare ofertă TypeContact_propal_external_CUSTOMER=Contact client urmărire ofertă TypeContact_propal_external_SHIPPING=Contactul client pentru livrare + # Document models -DocModelAzurDescription=Un şablon complet pentru ofertă(vechea implementare a şablonului Cyan) -DocModelCyanDescription=Un şablon complet pentru ofertă -DefaultModelPropalCreate=Crează model implicit -DefaultModelPropalToBill=Model implicit la închiderea unei oferte comerciale (de facturat) -DefaultModelPropalClosed=Model implicit la închiderea unei oferte comerciale (nefacturat) -ProposalCustomerSignature=Acordul scris, ștampila companiei, data și semnătura -ProposalsStatisticsSuppliers=Statistici oferte furnizori -CaseFollowedBy=Caz urmat de -SignedOnly=Doar semnată -NoSign=Setează ca ne-semnat -NoSigned=setat ca ne-semnat CantBeNoSign=nu poate fi semnat +CaseFollowedBy=Caz urmat de ConfirmMassNoSignature=Confirmare bulk setare ca ne-semnate ConfirmMassNoSignatureQuestion=Sigur vrei să setezi înregistrările selectate ca ne-semnate? -IsNotADraft=nu este schiţă -PassedInOpenStatus=a fost validat -Sign=Semnare -Signed=semnat -ConfirmMassValidation=Confirmare validare bulk ConfirmMassSignature=Confirmare semnare bulk -ConfirmMassValidationQuestion=Eşti sigur că vrei să validezi înregistrările selectate? ConfirmMassSignatureQuestion=Eşti sigur că vrei să semnezi înregistrările selectate? -IdProposal=ID Ofertă +ConfirmMassValidation=Confirmare validare bulk +ConfirmMassValidationQuestion=Eşti sigur că vrei să validezi înregistrările selectate? +ConfirmRefusePropal=Eşti sigur că vrei să refuzi această ofertă comercială? +ContractSigned=Contract semnat +DefaultModelPropalClosed=Model implicit la închiderea unei oferte comerciale (nefacturat) +DefaultModelPropalCreate=Crează model implicit +DefaultModelPropalToBill=Model implicit la închiderea unei oferte comerciale (de facturat) +DocModelAzurDescription=Un şablon complet pentru ofertă(vechea implementare a şablonului Cyan) +DocModelCyanDescription=Un şablon complet pentru ofertă +FichinterSigned=Intervenție semnată IdProduct=ID Produs +IdProposal=ID Ofertă +IsNotADraft=nu este schiţă LineBuyPriceHT=Taxare la preţul net de achiziţie pentru linia respectivă -SignPropal=Acceptare ofertă +NoSign=Refuz +NoSigned=setat ca ne-semnat +PassedInOpenStatus=a fost validat +PropalAlreadyRefused=Ofertă deja refuzată +PropalAlreadySigned=Ofertă deja acceptată +PropalRefused=Ofertă refuzată +PropalSigned=Ofertă acceptată semnată +ProposalCustomerSignature=Acordul scris, ștampila companiei, data și semnătura +ProposalsStatisticsSuppliers=Statistici oferte furnizori RefusePropal=Refuză oferta Sign=Semnare -NoSign=Setează ca ne-semnat -PropalAlreadySigned=Ofertă deja acceptată -PropalAlreadyRefused=Ofertă deja refuzată -PropalSigned=Ofertă acceptată semnată -PropalRefused=Ofertă refuzată -ConfirmRefusePropal=Eşti sigur că vrei să refuzi această ofertă comercială? +SignContract=Semnare contract +SignFichinter=Semnare intervenție +SignPropal=Acceptare ofertă +Signed=semnat +SignedOnly=Doar semnată diff --git a/htdocs/langs/ro_RO/receptions.lang b/htdocs/langs/ro_RO/receptions.lang index 5bf7e8ff2fd..2f2e0e6c607 100644 --- a/htdocs/langs/ro_RO/receptions.lang +++ b/htdocs/langs/ro_RO/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Schiţă StatusReceptionValidatedShort=Validată StatusReceptionProcessedShort=Procesate ReceptionSheet=Notă de recepție +ValidateReception=Validare recepție ConfirmDeleteReception=Sigur doriți să ștergeți această recepție? ConfirmValidateReception=Sigur doriți să validați această recepție cu referința %s? ConfirmCancelReception=Sigur doriți să anulați această recepție? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Mod de numerotare pentru recepţii ReceptionsReceiptModel=Şabloane documente pentru recepţii NoMorePredefinedProductToDispatch=Nu mai sunt produse predefinite pentru expediere ReceptionExist=O recepţie există -ByingPrice=Preţ de achiziţie ReceptionBackToDraftInDolibarr=Recepţia %s readusă la schiţă ReceptionClassifyClosedInDolibarr=Recepţia %s a fost clasificată ca Închisă ReceptionUnClassifyCloseddInDolibarr=Recepţia %s re-deschisă diff --git a/htdocs/langs/ro_RO/recruitment.lang b/htdocs/langs/ro_RO/recruitment.lang index a274703fbae..db2737e3110 100644 --- a/htdocs/langs/ro_RO/recruitment.lang +++ b/htdocs/langs/ro_RO/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recrutor ToUseAGenericEmail=Utilizare email generic. Dacă nu este definit, se va utiliza emailul responsabilului de recrutare NewCandidature=Aplicare nouă ListOfCandidatures=Lista aplicărilor la job -RequestedRemuneration=Remunerație solicitată -ProposedRemuneration=Remuneraţie propusă +Remuneration=Salariu +RequestedRemuneration=Salariu solicitat +ProposedRemuneration=Salariu propus ContractProposed=Contract propus ContractSigned=Contract semnat ContractRefused=Contract refuzat RecruitmentCandidature=Aplicare la job JobPositions=Joburi disponibile RecruitmentCandidatures=Aplicări la job -InterviewToDo=Interviu de realizat +InterviewToDo=Contacte de urmărit AnswerCandidature=Răspuns aplicare YourCandidature=Aplicarea ta YourCandidatureAnswerMessage=Îţi mulţumim pentru aplicarea ta la job.
    ... diff --git a/htdocs/langs/ro_RO/salaries.lang b/htdocs/langs/ro_RO/salaries.lang index fcf8f93783c..3118f5c4898 100644 --- a/htdocs/langs/ro_RO/salaries.lang +++ b/htdocs/langs/ro_RO/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Contul contabil folosit pentru terți utilizatori -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Contul contabil dedicat definit pe cardul de utilizator va fi utilizat doar pentru contabilitatea subregistru. Aceasta va fi utilizată pentru Registrul general și ca valoare implicită a contabilității suregistru dacă nu este definită contul de contabilitate dedicat pentru utilizatori. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cont contabil (din Planul de Conturi) utilizat implicit pentru terți tip "utilizator". +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Contul contabil dedicat definit pe fișa de utilizator va fi folosit doar pentru contabilitate analitică. Acesta va fi folosit pentru Registrul general și ca valoare implicită de Subregistru dacă nu este definit un cont contabil dedicat pentru utilizator. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Contul contabil implicit pentru plata salariilor CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=În mod implicit, lăsați necompletată opțiunea "Creați automat o plată totală” la crearea unui salariu  Salary=Salariu @@ -24,3 +24,4 @@ SalariesStatistics=Statistici salariale SalariesAndPayments=Salarii și plăți ConfirmDeleteSalaryPayment=Vrei să ştergi această plată salarială ? FillFieldFirst=Completați mai întâi câmpul angajat +UpdateAmountWithLastSalary=Setare valoare la ultimul salariu diff --git a/htdocs/langs/ro_RO/stocks.lang b/htdocs/langs/ro_RO/stocks.lang index 68b904b148d..9bd95840676 100644 --- a/htdocs/langs/ro_RO/stocks.lang +++ b/htdocs/langs/ro_RO/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Limită de stoc pentru alertă și stocul optim dor ProductStockWarehouseUpdated=Limită de stoc pentru alertă și stocul optim dorit au fost actualizate corect. ProductStockWarehouseDeleted=Limita de stoc pentru alertă și stocul optim dorit au fost șterse corect AddNewProductStockWarehouse=Setează o nouă limită de stoc pentru alertă şi stocul optim dorit -AddStockLocationLine=Redu cantitatea, apoi fă clic pentru a adăuga un alt depozit pentru acest produs +AddStockLocationLine=Redu cantitatea, apoi fă clic pentru a împărți linia InventoryDate=Data inventarului Inventories=Inventare NewInventory=Inventar nou @@ -254,7 +254,7 @@ ReOpen=Redeschide ConfirmFinish=Confirmați închiderea inventarului? Aceasta va genera toate mișcările stocului pentru a vă actualiza stocul la cantitatea reală pe care ați introdus-o în inventar. ObjectNotFound=%s nu a fost găsit MakeMovementsAndClose=Generează mişcări şi închide -AutofillWithExpected=Înlocuieşte cantitatea reală cu cea estimată +AutofillWithExpected=Completare cantitate reală cu cantitatea așteptată ShowAllBatchByDefault=În mod prestabilit, afișează detaliile lotului în fila "stoc" a produsului CollapseBatchDetailHelp=Poţi seta afișarea implicită a detaliilor lotului în configurația modulului stocuri ErrorWrongBarcodemode=Mod cod de bare necunoscut @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Produsul cu codul de bare nu există WarehouseId=ID depozit WarehouseRef=Ref depozit SaveQtyFirst=Salvează mai întâi cantitățile reale inventariate, înainte de a cere crearea mișcării de stoc. +ToStart=Start InventoryStartedShort=Început ErrorOnElementsInventory=Operaţiunea a fost anulată din următorul motiv: ErrorCantFindCodeInInventory=Nu se găseşte următorul cod în inventar QtyWasAddedToTheScannedBarcode=Succes!! Cantitatea a fost adăugată la toate codurile de bare solicitate. Poți închide instrumentul Scanner. StockChangeDisabled=Modificarea de stoc dezactivată NoWarehouseDefinedForTerminal=Niciun depozit definit pentru terminal +ClearQtys=Şterge toate cantităţile +ModuleStockTransferName=Transfer stoc avansat +ModuleStockTransferDesc=Management avansat al transferului de stoc, cu generarea foii de transfer +StockTransferNew=Transfer stoc nou +StockTransferList=Listă transferuri stoc +ConfirmValidateStockTransfer=Sigur vrei să validezi acest transfer de stocuri cu referința %s ?  +ConfirmDestock=Scădere stocuri cu transferul %s +ConfirmDestockCancel=Anulare scădere stocuri cu transferul %s +DestockAllProduct=Scădere stocuri +DestockAllProductCancel=Anulare scădere stocuri +ConfirmAddStock=Creștere stocuri cu transferul %s +ConfirmAddStockCancel=Anulare creștere stocuri cu transferul %s  +AddStockAllProduct=Creștere de stocuri +AddStockAllProductCancel=Anulare creștere de stocuri +DatePrevueDepart=Data preconizată de plecare +DateReelleDepart=Data reală de plecare +DatePrevueArrivee=Data prevăzută de sosire +DateReelleArrivee=Data reală de sosire +HelpWarehouseStockTransferSource=Dacă acest depozit este setat, numai el însuși și copiii săi vor fi disponibili ca depozit sursă +HelpWarehouseStockTransferDestination=Dacă acest depozit este setat, numai el însuși și copiii săi vor fi disponibili ca depozit de destinație +LeadTimeForWarning=Timp de livrare înainte de alertă (în zile) +TypeContact_stocktransfer_internal_STFROM=Expeditor transfer de stocuri +TypeContact_stocktransfer_internal_STDEST=Destinatar transfer de stocuri +TypeContact_stocktransfer_internal_STRESP=Responsabil transfer de stocuri +StockTransferSheet=Foaie de transfer stocuri +StockTransferSheetProforma=Fișă proforma de transfer de stocuri +StockTransferDecrementation=Scădere depozite sursă +StockTransferIncrementation=Creștere depozite de destinație +StockTransferDecrementationCancel=Anulare scădere depozite sursă +StockTransferIncrementationCancel=Anulare creștere depozite de destinație +StockStransferDecremented=Depozitele sursă au scăzut +StockStransferDecrementedCancel=Scăderea pentru depozitele sursă a fost anulată +StockStransferIncremented=Închis - Stocuri transferate +StockStransferIncrementedShort=Stocuri transferate +StockStransferIncrementedShortCancel=Creșterea pentru depozitele de destinație a fost anulată +StockTransferNoBatchForProduct=Produsul %s nu folosește lot, șterge lotul de pe linie și reîncearcă +StockTransferSetup = Configurare modul Transfer de stocuri +Settings=Configurări +StockTransferSetupPage = Pagina de configurare pentru modulul transfer de stocuri  +StockTransferRightRead=Citește transferuri de stocuri +StockTransferRightCreateUpdate=Creare/Actualizare transferuri de stocuri +StockTransferRightDelete=Ștergere transferuri de stocuri +BatchNotFound=Lotul / seria nu a fost găsită pentru acest produs diff --git a/htdocs/langs/ro_RO/stripe.lang b/htdocs/langs/ro_RO/stripe.lang index 119473bef83..6c4bca336c9 100644 --- a/htdocs/langs/ro_RO/stripe.lang +++ b/htdocs/langs/ro_RO/stripe.lang @@ -69,3 +69,4 @@ ToOfferALinkForLiveWebhook=Link de configurare Stripe WebHook pentru a apel IPN PaymentWillBeRecordedForNextPeriod=Plata va fi înregistrată pentru perioada următoare. ClickHereToTryAgain=Clic aici pentru a încerca din nou... CreationOfPaymentModeMustBeDoneFromStripeInterface=Datorită regulilor de autentificare securizată a clienților, crearea unui card trebuie făcută din backoffice-ul Stripe. Puteți face clic aici pentru a activa înregistrarea clienților Stripe: %s +TERMINAL_LOCATION=Locație (adresă) pentru terminale diff --git a/htdocs/langs/ro_RO/suppliers.lang b/htdocs/langs/ro_RO/suppliers.lang index f2891790714..a793c1d18cb 100644 --- a/htdocs/langs/ro_RO/suppliers.lang +++ b/htdocs/langs/ro_RO/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Numele cumpărătorului AllProductServicePrices=Toate preţurile produselor/serviciilor AllProductReferencesOfSupplier=Toate referinţele furnizorului BuyingPriceNumShort=Prețuri furnizor +RepeatableSupplierInvoice=Şablon factură furnizor +RepeatableSupplierInvoices=Şablon facturi furnizori +RepeatableSupplierInvoicesList=Şablon facturi furnizori +RecurringSupplierInvoices=Facturi furnizori recurente +ToCreateAPredefinedSupplierInvoice=Pentru a crea șablon de factură furnizor, trebuie să creezi o factură standard, apoi, fără a o valida, fă clic pe butonul "%s".  +GeneratedFromSupplierTemplate=Generat din șablonul de factură furnizor %s +SupplierInvoiceGeneratedFromTemplate=Factura furnizor %s generată din șablonul factură furnizor %s diff --git a/htdocs/langs/ro_RO/ticket.lang b/htdocs/langs/ro_RO/ticket.lang index bd8a3e52396..47c8377219d 100644 --- a/htdocs/langs/ro_RO/ticket.lang +++ b/htdocs/langs/ro_RO/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Șterge tichete Permission56004=Gestionați tichetele Permission56005=Vedeți tichetele tuturor terților (nu este efectiv pentru utilizatorii externi, întotdeauna se limitează la terțul de care depind) +Tickets=Tichete de suport TicketDictType=Tipuri de tichete TicketDictCategory=Tichet - Grupuri TicketDictSeverity=Tichet - Severități @@ -90,8 +91,8 @@ TicketPublicAccess=O interfață publică care nu necesită identificarea este d TicketSetupDictionaries=Tipul tichetului, severitatea și codurile analitice sunt configurabile din dicționare TicketParamModule=Setări variabile modul TicketParamMail=Setări email -TicketEmailNotificationFrom=Email expeditor pentru răspunsuri la tichet -TicketEmailNotificationFromHelp=Email expeditor pentru răspunsurile la tichetele trimise din sistem +TicketEmailNotificationFrom=Email expeditor pentru notificarea răspunsurilor  +TicketEmailNotificationFromHelp=Email expeditor de utilizat pentru a trimite email de notificare atunci când este oferit un răspuns în backoffice. De exemplu noreply@example.com TicketEmailNotificationTo=Notifică crearea de tichet la această adresă de email TicketEmailNotificationToHelp=Dacă este completată, această adresă de email va fi notificată cu privire la crearea unui tichet TicketNewEmailBodyLabel=Mesaj text trimis după crearea unui tichet @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Când închizi un tichet, ţi se va propune să trimi TicketWrongContact=Contactul furnizat nu face parte din contactele asociate pentru tichete. Email-ul nu a fost trimis. TicketChooseProductCategory=Categorie de produs pentru tichete suport TicketChooseProductCategoryHelp=Selectează categoria de produs pentru tichete de suport. Acesta va fi folosită pentru a asocia automat un contract la un tichet. +TicketUseCaptchaCode=Utilizare cod grafic (CAPTCHA) când se crează un tichet +TicketUseCaptchaCodeHelp=Adaugă verificare CAPTCHA la crearea unui tichet nou. # # Index & list page @@ -184,7 +187,7 @@ TicketCategory=Categorizare tichet SeeTicket=Vezi tichetul TicketMarkedAsRead=Tichetul a fost marcat ca citit TicketReadOn=Citește mai departe -TicketCloseOn=Dată de închidere +TicketCloseOn=Dată închidere MarkAsRead=Marchează tichetul ca citit TicketHistory=Istoric tichet AssignUser=Atribuire la utilizator @@ -192,8 +195,7 @@ TicketAssigned=Tichetul este acum atribuit TicketChangeType=Modificare tip TicketChangeCategory=Modificare cod analitic TicketChangeSeverity=Modificare severitate -TicketAddMessage=Adaugă un mesaj -AddMessage=Adaugă un mesaj +TicketAddMessage=Adăugare mesaj privat MessageSuccessfullyAdded=Tichet adăugat TicketMessageSuccessfullyAdded=Mesaj adăugat cu succes TicketMessagesList=Listă de mesaje @@ -204,8 +206,8 @@ TicketSeverity=Gravitate ShowTicket=Vedeți tichetul RelatedTickets=Tichete conexe TicketAddIntervention=Crează intervenţie -CloseTicket=Închidere/Rezolvare tichet -AbandonTicket=Abandonare tichet +CloseTicket=Închide|Rezolvat +AbandonTicket=Abandon CloseATicket=Închidere/Rezolvare un tichet ConfirmCloseAticket=Confirmați închiderea tichetului ConfirmAbandonTicket=Confirmați închiderea tichetului cu statusul 'Abandonat' @@ -219,18 +221,17 @@ SendMessageByEmail=Trimite un mesaj pe email TicketNewMessage=Mesaj nou ErrorMailRecipientIsEmptyForSendTicketMessage=Destinatarul este gol. Nu se trimite email TicketGoIntoContactTab=Accesează fila "Contacte" pentru a le selecta -TicketMessageMailIntro=Introducere +TicketMessageMailIntro=Header mesaj TicketMessageMailIntroHelp=Acest text este adăugat numai la începutul emailului și nu va fi salvat. -TicketMessageMailIntroLabelAdmin=Text de introducere pentru toate răspunsurile la tichete TicketMessageMailIntroText=Salut,
    A fost adăugat un nou răspuns la un tichet pe care îl urmăreşti. Iată mesajul:
      TicketMessageMailIntroHelpAdmin=Acest text va fi inserat înaintea răspunsului atunci când se răspunde la un tichet din sistem -TicketMessageMailSignature=Semnătură -TicketMessageMailSignatureHelp=Acest text este adăugat numai la sfârșitul emailului și nu va fi salvat. -TicketMessageMailSignatureText=Mesaj trimis de %s via sistem -TicketMessageMailSignatureLabelAdmin=Semnătura emailului de răspuns -TicketMessageMailSignatureHelpAdmin=Acest text va fi inserat după mesajul de răspuns. +TicketMessageMailFooter=Subsol mesaj +TicketMessageMailFooterHelp=Acest text este adăugat doar la sfârșitul mesajului trimis prin email și nu va fi salvat. +TicketMessageMailFooterText=Mesaj trimis de %s via sistem +TicketMessageMailFooterHelpAdmin=Acest text va fi inserat după mesajul de răspuns. TicketMessageHelp=Numai acest text va fi salvat în lista de mesaje de pe fişa tichetului. TicketMessageSubstitutionReplacedByGenericValues=Variabilele de substituție sunt înlocuite cu valori generice. +ForEmailMessageWillBeCompletedWith=Pentru mesajele de e-mail trimise utilizatorilor externi, mesajul va fi completat cu TimeElapsedSince=Timpul trecut de atunci TicketTimeToRead=Timpul trecut înainte de citire TicketTimeElapsedBeforeSince=Timpul scurs înainte de / de atunci @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Un nou mesaj a fost postat pe tichet TicketAssignedToYou=Tichet atribuit TicketAssignedEmailBody=Ai fost atribuit tichetului # %s de către %s MarkMessageAsPrivate=Marcați mesajul ca privat +TicketMessageSendEmailHelp=Un email va fi trimis tuturor persoanelor de contact alocate (contacte interne, dar și contacte externe, cu excepția cazului în care opțiunea "%s" este bifată) TicketMessagePrivateHelp=Acest mesaj nu va fi afișat utilizatorilor externi TicketEmailOriginIssuer=Emitent la originea tichetelor InitialMessage=Mesaj inițial @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Puteți vedea statusul tichetului în in TicketCloseEmailBodyInfosTrackUrlCustomer=Poți consulta istoricul acestui tichet făcând clic pe următorul link TicketEmailPleaseDoNotReplyToThisEmail=Nu răspundeți direct la acest email! Utilizați linkul pentru a răspunde în interfață. TicketPublicInfoCreateTicket=Acest formular vă permite să înregistrați un tichet de asistență în sistemul nostru de management al lucrărilor. -TicketPublicPleaseBeAccuratelyDescribe=Descrieți cu precizie problema. Furnizați cât mai multe informații posibile pentru a ne permite să identificăm corect solicitarea dvs. +TicketPublicPleaseBeAccuratelyDescribe=Vă rugăm să descrieți cu exactitate întrebarea dvs. Furnizați cât mai multe informații posibile pentru a ne permite să vă identificăm corect solicitarea. TicketPublicMsgViewLogIn=Introduceți codul de urmărire a tichetului TicketTrackId=ID urmărire public OneOfTicketTrackId=Unul dintre ID-urile tale de urmărire diff --git a/htdocs/langs/ro_RO/users.lang b/htdocs/langs/ro_RO/users.lang index 32f67d51357..32422bcf97c 100644 --- a/htdocs/langs/ro_RO/users.lang +++ b/htdocs/langs/ro_RO/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Înlăturare din grup PasswordChangedAndSentTo=Parola a fost schimbată şi trimisă către %s. PasswordChangeRequest=Solicitare de modificare a parolei pentru %s PasswordChangeRequestSent=Cererea de schimbare a parolei pentru %s a fost trimisă către %s. -IfLoginExistPasswordRequestSent=Dacă acest nume de utilizator este valid, a fost trimis un email pentru resetarea parolei. +IfLoginExistPasswordRequestSent=Dacă acest cont este valid (cu o adresă de email validă), a fost trimis un email pentru a resetarea parolei. IfEmailExistPasswordRequestSent=Dacă această adresă de email este corectă, a fost trimis un email pentru resetarea parolei. ConfirmPasswordReset=Confirmare resetare parolă MenuUsersAndGroups=Utilizatori & Grupuri @@ -68,7 +68,6 @@ CreateDolibarrLogin=Creare utilizator CreateDolibarrThirdParty=Creare terţ LoginAccountDisableInDolibarr=Cont dezactivat în sistem. UsePersonalValue=Utilizare setări personalizate -InternalUser=Utilizator intern ExportDataset_user_1=Utilizatori și proprietățile acestora DomainUser=Utilizator de domeniu %s Reactivate=Reactivare @@ -128,3 +127,5 @@ DateLastLogin=Data ultimei autentificări DatePreviousLogin=Data autentificării anterioare IPLastLogin=IP ultima autentificare IPPreviousLogin=IP autentificare anterioară +ShowAllPerms=Afișează toate rândurile de permisiuni +HideAllPerms=Ascunde toate rândurile de permisiuni diff --git a/htdocs/langs/ro_RO/website.lang b/htdocs/langs/ro_RO/website.lang index 0dbac3d2d34..9d57da14434 100644 --- a/htdocs/langs/ro_RO/website.lang +++ b/htdocs/langs/ro_RO/website.lang @@ -45,7 +45,7 @@ ViewWebsiteInProduction=Vizualizați site-ul web utilizând URL-urile de home SetHereVirtualHost=Utilizați cu Apache/NGinx/...
    Creați pe serverul dvs. web (Apache, Nginx, ...) un vhost dedicat cu PHP activat și un director Root activat pentru
    %s ExampleToUseInApacheVirtualHostConfig=Exemplu configuraţie utilizabilă vhost Apache: YouCanAlsoTestWithPHPS= Utilizare cu serverul PHP încorporat
    În mediul de dezvoltare, vei prefera să testezi site-ul cu serverul web PHP încorporat (PHP 5.5 necesar) executând
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Rulaţi website-ul dvs. la un alt furnizor de găzduire Dolibarr
    Dacă nu aveți un server web precum Apache sau NGinx disponibil public pe internet, puteți exporta și importa site-ul dvs. web pe o altă instanță Dolibarr furnizată de un alt furnizor de găzduire Dolibarr care asigură o integrare completă cu modulul Website. Puteți găsi o listă a unor furnizori de găzduire Dolibarr pe https://saas.dolibarr.org  +YouCanAlsoDeployToAnotherWHP=Rulez site-ul web cu un alt furnizor de găzduire Dolibarr
    Dacă nu ai un server web precum Apache sau NGinx disponibil pe internet, poți exporta și importa site-ul web într-o altă instanță Dolibarr furnizată de un alt furnizor de găzduire Dolibarr care oferă integrare completă modulul Site web. Poți găsi o listă cu furnizorii de găzduire Dolibarr pe https://saas.dolibarr.org CheckVirtualHostPerms=Verificați, de asemenea, dacă utilizatorul gazdă virtuală (de exemplu, www-data) are permisiuni %s pentru fișiere în
    %s ReadPerm=Citire WritePerm=Scriere @@ -60,7 +60,7 @@ YouCanEditHtmlSourceckeditor=Puteți edita codul sursă HTML folosind butonul "S YouCanEditHtmlSource=
    Puteți include codul PHP în această sursă folosind etichete<?php?>. Sunt disponibile următoarele variabile globale: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Puteți include, de asemenea, conținutul unei alte Pagini/Container cu următoarea sintaxă:
    <?php includeContainer ('alias_of_container_to_include'); ?>

    Puteți face o redirecționare către o altă Pagină/Container cu următoarea sintaxă (Notă: nu emiteți conținut înainte de o redirecționare):
    <?php redirectToContainer ('alias_of_container_to_redirect_to'); ?>

    Pentru a adăuga o legătură la o altă pagină, utilizați sintaxa:
    <a href ="alias_of_page_to_link_to.php">mylink<a>

    Pentru a include un link de descărcare fișier stocat în directorul documentelor, utilizați wrapper-ul document.php:
    Exemplu, pentru un fișier din documente/ECM (trebuie să fie înregistrat), sintaxa este:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    Pentru un fișier din documente/media (director deschis pentru acces public), sintaxa este:
    <a href ="/document.php?modulepart= medias&file=[relative_dir/]indicafilename.ext">
    Pentru un fișier partajat cu o legătură de partajare (acces deschis folosind cheia hash de partajare a fișierului), sintaxa este:
    <a href="/ document.php?hashp=publicsharekeyoffile">

    Pentru a include o imagine stocată în directorul de documente, utilizați wrapper-ul viewimage.php:
    Exemplu, pentru o imagine din documente/media (director deschis pentru acces public), sintaxa este:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Pentru o imagine partajată cu un link de partajare (acces deschis folosind cheia de distribuire a fișierului), sintaxa este:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    Mai multe exemple de cod HTML sau dinamic sunt disponibile în documentația wiki
    . +YouCanEditHtmlSourceMore=
    Mai multe exemple de cod HTML sau dinamic sunt disponibile în documentaţia wiki
    . ClonePage=Clonare pagină/container CloneSite=Clonare site SiteAdded=Site adăugat diff --git a/htdocs/langs/ro_RO/withdrawals.lang b/htdocs/langs/ro_RO/withdrawals.lang index 0ee249cba29..0f4e85505c3 100644 --- a/htdocs/langs/ro_RO/withdrawals.lang +++ b/htdocs/langs/ro_RO/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Factură cu transfer de credit în aşteptar AmountToWithdraw=Suma de retras AmountToTransfer=Sumă de transferat NoInvoiceToWithdraw=Nici o factură deschisă pentru '%s' în aşteptare. Accesați fila '%s' de pe fişa de factură pentru a face o solicitare. -NoSupplierInvoiceToWithdraw=Nu este în așteptare nici o factură de de achiziţie cu 'Solicitare de direct credit'. Accesați fila '%s' de pe cardul de factură pentru a face o solicitare. +NoSupplierInvoiceToWithdraw=Nicio factură furnizor cu '%s' deschisă nu este în așteptare. Accesează fila '%s' de pe fișa de factură pentru a face o solicitare. ResponsibleUser=Utilizator responsabil WithdrawalsSetup=Configurare plată prin debit direct CreditTransferSetup=Configurare Transfer de credit @@ -42,6 +42,7 @@ CreditTransferStatistics=Statistici transferuri de credit Rejects=Respingeri LastWithdrawalReceipt=Ultimele %s încasări prin debit direct MakeWithdrawRequest=Efectuați o solicitare de plată cu debit direct +MakeWithdrawRequestStripe=Efectuează o cerere de plată prin debit direct prin Stripe MakeBankTransferOrder=Solicitare transfer de credit WithdrawRequestsDone=%s solicitări de plată prin debitare directă au fost înregistrate BankTransferRequestsDone=%s solicitări de transfer de credit înregistrate @@ -100,8 +101,11 @@ CreditDate=Credit pe WithdrawalFileNotCapable=Imposibil de generat fișierul chitanţă de retragere pentru țara ta %s (Țara ta nu este acceptată) ShowWithdraw=Afișează Comanda de debit direct IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Cu toate acestea, dacă factura are cel puțin o comandă de plată prin debit direct, care încă nu a fost procesată, aceasta nu va fi setată ca plătită pentru a permite gestionarea prealabilă a retragerii. -DoStandingOrdersBeforePayments=Această filă vă permite să solicitați o comandă de plată cu debit direct. Odată terminat, accesați meniul Bancă-> Plată prin debit direct pentru a genera și gestiona comanda de debit direct. La închiderea ordinului de debit direct, plata facturii va fi înregistrată automat, iar facturile vor fi închise dacă restul de plată este nul. -DoCreditTransferBeforePayments=Această filă vă permite să solicitați o comandă de transfer de credit. Odată finalizată, accesați meniul Bancă-> Plată prin transfer de credit pentru a genera și gestiona comanda de transfer de credit. Atunci când comanda de transfer de credit este închisă, plata facturii va fi înregistrată automat, iar facturile vor fi închise dacă restul de plată este nul. +DoStandingOrdersBeforePayments=Această filă îți permite să soliciți un ordin de plată prin debit direct. O dată finalizat, poți intra în meniul "Bănci->Plată prin debit direct" pentru a genera și gestiona un fișier de ordin de debitare directă. +DoStandingOrdersBeforePayments2=De asemenea, poți trimite o solicitare directă unui procesor de plăți SEPA, cum ar fi Stripe, ... +DoStandingOrdersBeforePayments3=Când ordinul de debitare directă este închis, plata facturii va fi înregistrată automat, iar facturile vor fi închise dacă restul de plată este nul. +DoCreditTransferBeforePayments=Această filă îți permite să soliciți un ordin de transfer de credit. După ce ai terminat, intră în meniul „Bancă->Plăți prin transfer de credit” pentru a genera și gestiona un fișier de ordin de transfer de credit. +DoCreditTransferBeforePayments3=Când ordinul de transfer de credit este închis, plata facturilor va fi înregistrată automat, iar facturile vor fi închise dacă restul de plată este nul. WithdrawalFile=Fişier debit order CreditTransferFile=Fişier transfer credit SetToStatusSent=Setează statusul "Fişier Trimis" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Nu se poate crea o solicitare de debit direct pent SepaMandate=Mandat SEPA Direct Debit SepaMandateShort=Mandat SEPA PleaseReturnMandate=Vă rugăm să returnați acest formular de mandat prin email la %s sau prin poștă la -SEPALegalText=Prin semnarea acestui formular de mandat, autorizezi (A) %s să trimită instrucțiuni băncii tale pentru a-ţi debita contul și (B) banca ta să-ţi debiteze contul în conformitate cu instrucțiunile primite de la %s. Ca parte a drepturilor tale, ai dreptul la o rambursare din partea băncii, în conformitate cu termenii și condițiile acordului tău cu banca. Drepturile tale cu privire la mandatul de mai sus sunt explicate într-o declarație pe care o poți obține de la bancă. +SEPALegalText=Prin semnarea acestui formular de mandat, autorizați (A) %s și furnizorul său de servicii de plată să trimită băncii tale instrucțiuni pentru a-ți debita contul și (B) banca ta să-ți debiteze contul în conformitate cu instrucțiunile date de %s. Ca parte a drepturilor tale, ai dreptul la o rambursare de la banca ta în conformitate cu termenii și condițiile acordului tău cu banca. Drepturile tale cu privire la mandatul de mai sus sunt explicate într-o declarație pe care o poți obține de la bancă. CreditorIdentifier=Identificator creditor CreditorName=Numele creditorului SEPAFillForm=(B) Completați toate câmpurile marcate cu * diff --git a/htdocs/langs/ro_RO/workflow.lang b/htdocs/langs/ro_RO/workflow.lang index 9da05443cb0..e166a0fb768 100644 --- a/htdocs/langs/ro_RO/workflow.lang +++ b/htdocs/langs/ro_RO/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasificați comanda descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Clasifică comanda de achiziție sursă asociată ca primită atunci când o recepție este validată (și dacă cantitatea primită de toate recepțiile este aceeași cu cea din comanda de achiziţie pentru actualizare) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Clasifică comanda de achiziție sursă asociată ca primită atunci când o recepție este închisă (și dacă cantitatea primită de toate recepțiile este aceeași cu cea din comanda de achiziţie pentru actualizare) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Clasificați recepțiile la "facturate" atunci când este validată o comandă de achiziţie asociată +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Clasifică recepțiile ca "facturate" atunci când o factură de achiziție asociată este validată (și dacă suma facturii este aceeași cu suma totală a recepțiilor asociate) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=La crearea unui tichet , asociază contractele disponibile ale terților care se potrivesc descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Când se asociază contracte, caută printre cele ale companiilor-mamă @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Închideți toate intervențiile legate d AutomaticCreation=Creare automată AutomaticClassification=Clasificare automată # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasificați livrarea asociată ca închisă atunci când factura clientului este validată +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifică expedierea/livrarea sursă asociată ca fiind închisă atunci când factura clientului este validată (și dacă suma facturii este aceeași cu suma totală a livrărilor legate) AutomaticClosing=Închidere automată AutomaticLinking=Asociere automată diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index 5df338ace3a..8de02a36f59 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Страны, не входящие в ЕЭС CountriesInEECExceptMe=Страны ЕЭС, кроме %s CountriesExceptMe=Все страны кроме %s AccountantFiles=Экспорт исходных документов -ExportAccountingSourceDocHelp=С помощью этого инструмента вы можете экспортировать исходные события (список в формате CSV и PDF), которые используются для создания вашей отчетности. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Чтобы экспортировать журналы, используйте пункт меню %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Просмотр по учетной записи VueBySubAccountAccounting=Просмотр по субсчету бухгалтерского учета @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Главный бухгалтерский сч MainAccountForUsersNotDefined=Основная учетная запись для пользователей, не определенных в настройке MainAccountForVatPaymentNotDefined=Главный бухгалтерский счет для уплаты НДС не определен в настройке MainAccountForSubscriptionPaymentNotDefined=Основной бухгалтерский счет для оплаты подписки не определен в настройке +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Область бухгалтерского учета AccountancyAreaDescIntro=Использование модуля бухгалтерского учета осуществляется в несколько этапов: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Отключить прямую запись тран ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Включить экспорт черновиков в журнале ACCOUNTANCY_COMBO_FOR_AUX=Включить комбинированный список для вспомогательной учетной записи (может быть медленным, если у вас много третьих лиц, нарушить возможность поиска по части значения) ACCOUNTING_DATE_START_BINDING=Определите дату начала привязки и передачи в бухгалтерском учете. Ниже этой даты операции не переносятся в бухгалтерский учет. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=При переносе бухгалтерии выберите период отображения по умолчанию +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Журнал продаж -ACCOUNTING_PURCHASE_JOURNAL=Журнал платежей -ACCOUNTING_MISCELLANEOUS_JOURNAL=Журнал "Разное" +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Журнал отчетов о расходах -ACCOUNTING_SOCIAL_JOURNAL=Социальный журнал +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Есть новый журнал +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Социальный журнал ACCOUNTING_RESULT_PROFIT=Результат бухгалтерского учета (Прибыль) ACCOUNTING_RESULT_LOSS=Результат бухгалтерского учета (убыток) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Журнал закрытия -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Бухгалтерский счет переходного банковского перевода +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Счет переходного банковского перевода -ACCOUNTING_ACCOUNT_SUSPENSE=Бухгалтерский учет ожидания -DONATION_ACCOUNTINGACCOUNT=Бухгалтерский счет для регистрации пожертвований -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Учетная запись для регистрации подписок +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Бухгалтерский счет по умолчанию для регистрации депозита клиента -UseAuxiliaryAccountOnCustomerDeposit=Используйте субсчета на депозитных линиях клиентов +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Бухгалтерский счет по умолчанию для купленных продуктов (используется, если не определено в описании продукта) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Бухгалтерский счет по умолчанию для купленных продуктов в EEC (используется, если не определено в описании продукта) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Бухгалтерский счет по умолчанию для купленных продуктов и импортированных из ЕЭС (используется, если не определено в описании продукта) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Бухгалтерский счет по умолчанию для проданных товаров (используется, если не указано в описании товара) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Бухгалтерский счет по умолчанию для продуктов, продаваемых в EEC (используется, если не указано в описании продукта) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Бухгалтерский счет по умолчанию для продуктов, проданных и экспортированных из ЕЭС (используется, если не указано в описании продукта) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Бухгалтерский счет по умолчанию для купленных услуг (используется, если не определено в сервисном листе) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Бухгалтерский счет по умолчанию для купленных услуг в ЕЭК (используется, если не указано в сервисном листе) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Бухгалтерский счет по умолчанию для купленных услуг и импортированных из EEC (используется, если не определено в сервисном листе) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Бухгалтерский счет по умолчанию для проданных услуг (используется, если не определено в листе услуг) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Бухгалтерский счет по умолчанию для услуг, продаваемых в ЕЭС (используется, если не определено в сервисном листе) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Учетный счет по умолчанию для услуг, проданных и экспортированных из ЕЭК (используется, если не определено в сервисном листе) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Тип документа Docdate=Дата @@ -211,7 +217,7 @@ Codejournal=Журнал JournalLabel=Этикетка журнала NumPiece=Количество штук TransactionNumShort=№ проводки -AccountingCategory=Пользовательская группа +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Группировать по счету главной книги GroupBySubAccountAccounting=Группировка по счету вспомогательной книги AccountingAccountGroupsDesc=Здесь вы можете определить несколько групп бухгалтерского учета. Они будут использоваться для персонализированной бухгалтерской отчетности. @@ -265,13 +271,13 @@ Reconcilable=Примиримый TotalVente=Общий оборот до налогообложения TotalMarge=Итоговая наценка на продажи -DescVentilCustomer=См. Здесь список строк счетов-фактур клиентов, привязанных (или нет) к учетной записи учета продукта. -DescVentilMore=В большинстве случаев, если вы используете предопределенные продукты или услуги и устанавливаете номер счета в карточке продукта / услуги, приложение сможет выполнить всю привязку между строками вашего счета и учетной записью вашего плана счетов всего за один день. в один клик кнопкой "%s". Если учетная запись не была настроена на карточках продуктов/услуг или у вас все еще есть строки, не привязанные к учетной записи, вам придется вручную выполнить привязку из меню «%s». -DescVentilDoneCustomer=См. Здесь список строк клиентов, выставляющих счета, и их учетные записи продуктов. -DescVentilTodoCustomer=Привязка строк счета-фактуры, еще не связанных с учетной записью продукта -ChangeAccount=Измените учетную запись учета продуктов/услуг для выбранных строк со следующей учетной записью: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=См. Здесь список строк счетов-фактур, связанных или еще не связанных с учетной записью продукта (видны только записи, еще не переданные в бухгалтерский учет) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=См. Здесь список строк счетов-фактур поставщиков и их учетную запись. DescVentilTodoExpenseReport=Привязка строк отчета о расходах, еще не связанных со счетом учета сборов DescVentilExpenseReport=См. Здесь список строк отчета о расходах, привязанных (или нет) к счету учета комиссий. @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Если вы настроили учетную за DescVentilDoneExpenseReport=Ознакомьтесь здесь со списком строк отчетов о расходах и счетом учета их комиссий. Closure=Ежегодное закрытие -DescClosure=Проконсультируйтесь здесь о количестве перемещений по месяцам, которые еще не проверены и не заблокированы. +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Обзор перемещений, не подтвержденных и заблокированных AllMovementsWereRecordedAsValidated=Все движения были записаны как проверенные и заблокированные. NotAllMovementsCouldBeRecordedAsValidated=Не все движения могли быть записаны как проверенные и заблокированные -ValidateMovements=Подтвердить и заблокировать запись... +ValidateMovements=Validate and lock movements... DescValidateMovements=Любое изменение или удаление надписей, надписей и удалений будет запрещено. Все записи для упражнения должны быть подтверждены, иначе закрытие будет невозможно. ValidateHistory=Связывать автоматически AutomaticBindingDone=Выполнено автоматическое связывание (%s) — автоматическое связывание невозможно для некоторых записей (%s) -ErrorAccountancyCodeIsAlreadyUse=Ошибка, вы не можете удалить эту учетную запись, потому что она используется +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Движение неправильно сбалансировано. Дебет = %s и кредит = %s Balancing=Балансировка FicheVentilation=Обязательная карта GeneralLedgerIsWritten=Проводки записываются в бухгалтерскую книгу GeneralLedgerSomeRecordWasNotRecorded=Некоторые проводки не удалось зарегистрировать. Если других сообщений об ошибках нет, вероятно, они уже были занесены в журнал. NoNewRecordSaved=Нет больше записи для передачи -ListOfProductsWithoutAccountingAccount=Список продуктов, не привязанных к какой-либо учетной записи +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Сменить привязку Accounted=Учтено в бухгалтерской книге NotYetAccounted=Еще не переведено в бухгалтерский учет @@ -319,9 +325,10 @@ AccountingJournalType1=Разные операции AccountingJournalType2=Продажи AccountingJournalType3=Покупки AccountingJournalType4=Банк -AccountingJournalType5=Отчет о расходах +AccountingJournalType5=Отчёты о затратах AccountingJournalType8=Инвентарная ведомость AccountingJournalType9=Имеет новый +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Этот журнал уже используется AccountingAccountForSalesTaxAreDefinedInto=Примечание. Бухгалтерский счет для налога с продаж определяется в меню %s - %s NumberOfAccountancyEntries=Количество входов @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Количество движений ACCOUNTING_DISABLE_BINDING_ON_SALES=Отключить привязку и перенос в бухгалтерии по продажам (счета клиентов не будут учитываться в бухгалтерии) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Отключить привязку и перенос в бухгалтерии по закупкам (счета поставщика не будут учитываться в бухгалтерии) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Отключить привязку и перенос в бухгалтерском учете в отчетах о расходах (отчеты о расходах не будут учитываться в бухгалтерском учете) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Отметить экспортированные строки как Экспортированные (чтобы изменить строку, вам нужно будет удалить всю транзакцию и заново перенести ее в учет) -NotifiedValidationDate=Подтвердите и заблокируйте экспортированные записи (тот же эффект, что и функция «Закрытие», изменение и удаление строк будет ОПРЕДЕЛЕННО невозможно) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Проверка даты и блокировка ConfirmExportFile=Подтверждение генерации файла экспорта бухгалтерского учета? ExportDraftJournal=Экспорт черновика журнала @@ -398,7 +407,11 @@ Calculated=Рассчитано Formula=Формула ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Несогласие +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=Согласование не изменено AccountancyOneLetteringModifiedSuccessfully=Одно согласование успешно изменено AccountancyLetteringModifiedSuccessfully=%s согласование успешно изменено @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Один несогласован AccountancyUnletteringModifiedSuccessfully=%s успешно изменено несоответствие ## Confirm box -ConfirmMassUnlettering=Массовое несогласованное подтверждение -ConfirmMassUnletteringQuestion=Вы уверены, что хотите отменить согласование выбранных записей %s? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Подтверждение пакетного удаления ConfirmMassDeleteBookkeepingWritingQuestion=Это удалит транзакцию из учета (все строки, относящиеся к одной и той же транзакции, будут удалены). Вы уверены, что хотите удалить выбранные записи %s? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=К AccountancyErrorMismatchLetterCode=Несоответствие в коде согласования AccountancyErrorMismatchBalanceAmount=Баланс (%s) не равен 0 AccountancyErrorLetteringBookkeeping=Произошли ошибки, связанные с транзакциями: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Бухгалтерские записи @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Мультивалютный код (Idevise) DateExport=Дата экспорта WarningReportNotReliable=Предупреждение, этот отчет не основан на главной книге, поэтому не содержит проводки, измененных вручную в главной книге. Если ваша журнализация актуальна, бухгалтерский учет будет более точным. ExpenseReportJournal=Журнал отчетов о затратах -InventoryJournal=Журнал инвентарного учета NAccounts=%s счета diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index 71e45e7f1f3..053deb792a3 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Сопоставление клиентов WarningModuleNotActive=Модуль %s должен быть включен WarningOnlyPermissionOfActivatedModules=Здесь приведены только права доступа, связанные с активированными модулями. Вы можете активировать другие модули на странице Главная->Установка->Модули. DolibarrSetup=Установка или обновление Dolibarr -InternalUser=Внутренний пользователь -ExternalUser=Внешний пользователь InternalUsers=Внутренние пользователи ExternalUsers=Внешние пользователи UserInterface=Пользовательский интерфейс @@ -109,7 +107,7 @@ NextValueForReplacements=Следующее значение (замены) MustBeLowerThanPHPLimit=Примечание: ваша конфигурация PHP в настоящее время ограничивает максимальный размер файлов для загрузки до %s %s, независимо от значения этого параметра. NoMaxSizeByPHPLimit=Примечание: в вашей конфигурации PHP установлено no limit MaxSizeForUploadedFiles=Максимальный размер загружаемых файлов (0 для запрещения каких-либо загрузок) -UseCaptchaCode=Использовать графический код (CAPTCHA) на странице входа +UseCaptchaCode=Используйте графический код (CAPTCHA) на странице входа и некоторых публичных страницах AntiVirusCommand=Полный путь к антивирусной команде AntiVirusCommandExample=Пример для ClamAv Daemon (требуется clamav-daemon): /usr/bin/clamdscan
    Пример для ClamWin (очень-очень медленный): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Дополнительные параметры командной строки @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Хост SMTP/SMTPS (значение по умолчан MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Порт SMTP/SMTPS (не определен в PHP в Unix-подобных системах) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Хост SMTP/SMTPS (не определен в PHP в Unix-подобных системах) MAIN_MAIL_EMAIL_FROM=Адрес электронной почты отправителя для автоматической отправки электронных писем (значение по умолчанию в php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Электронная почта, использованная для сообщения об ошибке, возвращает сообщения электронной почты (поля «Сообщения об ошибках» в отправленных сообщениях электронной почты). MAIN_MAIL_AUTOCOPY_TO= Копировать (СК) все отправленные письма в MAIN_DISABLE_ALL_MAILS=Отключить всю отправку электронной почты (для тестирования или демонстрации) @@ -439,8 +438,10 @@ Unique=Уникальный Boolean=Логический (флажок) ExtrafieldPhone = Телефон ExtrafieldPrice = Цена +ExtrafieldPriceWithCurrency=Цена с валютой ExtrafieldMail = Адрес электронной почты ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Выбрать из списка ExtrafieldSelectList = Выбрать из таблицы ExtrafieldSeparator=Разделитель (не поле) @@ -477,7 +478,7 @@ InstalledInto=Установлен в каталог %s BarcodeInitForThirdparties=Массовая инициализация штрих-кода для контрагентов BarcodeInitForProductsOrServices=Массовое создание или удаление штрих-кода для Товаров или Услуг CurrentlyNWithoutBarCode=В настоящее время у вас есть %s запись на %s %s без определенного штрих-кода. -InitEmptyBarCode=Начальное значения для следующих %s пустых записей +InitEmptyBarCode=Начальное значение для пустых штрих-кодов %s EraseAllCurrentBarCode=Стереть все текущие значения штрих-кодов ConfirmEraseAllCurrentBarCode=Вы действительно хотите удалить все текущие значения штрих-кода? AllBarcodeReset=Все значения штрих-кодов были удалены @@ -501,10 +502,11 @@ WarningPHPMail=ВНИМАНИЕ! Для отправки электронных WarningPHPMailA=- Использование сервера поставщика услуг электронной почты повышает надежность вашей электронной почты, поэтому она увеличивает доставку без пометки как спам WarningPHPMailB=- Некоторые поставщики услуг электронной почты (например, Yahoo) не позволяют отправлять электронную почту с другого сервера, кроме их собственного. Ваша текущая настройка использует сервер приложения для отправки электронной почты, а не сервер вашего провайдера электронной почты, поэтому некоторые получатели (тот, который совместим с ограничительным протоколом DMARC) будут спрашивать вашего провайдера электронной почты, могут ли они принять вашу электронную почту, и некоторые поставщики электронной почты. (например, Yahoo) могут ответить «нет», потому что сервер им не принадлежит, поэтому некоторые из отправленных вами электронных писем могут быть не приняты для доставки (будьте осторожны также с квотой отправки вашего почтового провайдера). WarningPHPMailC=- Использование SMTP-сервера вашего собственного поставщика услуг электронной почты для отправки электронных писем также интересно, поэтому все электронные письма, отправленные из приложения, также будут сохранены в вашем каталоге «Отправленные» вашего почтового ящика. -WarningPHPMailD=Кроме того, рекомендуется изменить способ отправки электронных писем на значение «SMTP». Если вы действительно хотите сохранить метод «PHP» по умолчанию для отправки электронных писем, просто проигнорируйте это предупреждение или удалите его, установив для константы MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP значение 1 в Главная - Настройка - Другое. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Если вашему SMTP-провайдеру электронной почты необходимо ограничить почтовый клиент некоторыми IP-адресами (это очень редко), это IP-адрес почтового пользователя (MUA) для вашего приложения ERP CRM: %s. WarningPHPMailSPF=Если доменное имя в вашем адресе электронной почты отправителя защищено записью SPF (спросите у регистратора доменного имени), вы должны добавить следующие IP-адреса в запись SPF DNS вашего домена: %s . -ActualMailSPFRecordFound=Найдена фактическая запись SPF: %s +ActualMailSPFRecordFound=Найдена актуальная запись SPF (для электронной почты %s): %s ClickToShowDescription=Нажмите, чтобы посмотреть описание DependsOn=Этот модуль нуждается в модуле (модулях) RequiredBy=Этот модуль требуется для модуля (модулей) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Пример:
    Для формы созда PageUrlForDefaultValuesList=
    Пример:
    Для страницы, на которой перечислены контрагенты, это %s.
    Для URL-адресов внешних модулей, установленных в пользовательский каталог, не включайте «custom/», и используйте путь как mymodule/mypagelist.php, а не custom/mymodule/mypagelist.php.
    Если вы хотите использовать значение по умолчанию, только если в url есть какой-либо параметр, вы можете использовать %s AlsoDefaultValuesAreEffectiveForActionCreate=Также обратите внимание, что перезапись значений по умолчанию для создания формы работает только для страниц, которые были правильно созданы (так с параметром action = create или presend ...) EnableDefaultValues=Включить настройку значений по умолчанию -EnableOverwriteTranslation=Разрешить использование перезаписанного перевода +EnableOverwriteTranslation=Разрешить настройку переводов GoIntoTranslationMenuToChangeThis=Для ключа с этим кодом найден перевод. Чтобы изменить это значение, вы должны отредактировать его из Главная-Настройки-Перевод. WarningSettingSortOrder=Предупреждение, установка порядка сортировки по умолчанию может привести к технической ошибке при переходе на страницу списка, если поле является неизвестным. Если у вас возникла такая ошибка, вернитесь на эту страницу, чтобы удалить порядок сортировки по умолчанию и восстановить поведение по умолчанию. Field=Поле @@ -645,9 +647,9 @@ Module2400Name=События/Повестка дня Module2400Desc=Отслеживать события. Журнал автоматических событий для отслеживания или записи вручную событий или встреч. Это основной модуль для хорошего управления взаимоотношениями с клиентами или поставщиками. Module2500Name=Модуль DMS/ECM Module2500Desc=Система управления документами / Управление электронным контентом. Автоматическая организация ваших сгенерированных или сохраненных документов. Поделитесь ими, когда вам нужно. -Module2600Name=API/Веб-службы (SOAP-сервер) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Включение Dolibarr SOAP сервера предоставляющего API-сервис -Module2610Name=API/веб-службы (сервер REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Включить сервер REST для Dolibarr, предоставляющий услуги API Module2660Name=Вызовите WebServices (клиент SOAP) Module2660Desc=Включить клиент веб-служб Dolibarr (может использоваться для передачи данных/запросов на внешние серверы. В настоящее время поддерживаются только заказы на покупку.) @@ -698,6 +700,7 @@ Module62000Name=Обязанности по доставке товаров Module62000Desc=Добавить функции для управления Инкотермс Module63000Name=Ресурсы Module63000Desc=Управление ресурсами (принтеры, машины, комнаты, ...) для распределения на события +Module94160Name=Поступлдения Permission11=Просмотр счетов-фактур клиентов Permission12=Создание/Изменение счета-фактуры Permission13=Аннулирование счетов-фактур клиентов @@ -714,6 +717,7 @@ Permission27=Удалить коммерческих предложений Permission28=Экспорт коммерческих предложений Permission31=Просмотр продуктов/услуг Permission32=Создание/изменение продуктов/услуг +Permission33=Читать цены на товары Permission34=Удаленные продукты/услуги Permission36=Просмотр/управление скрытыми продуктами/услугами Permission38=Экспорт продуктов @@ -739,6 +743,7 @@ Permission79=Создать/изменить подписки Permission81=Читать заказы клиентов Permission82=Создать/изменить заказы клиентов Permission84=Проверка заказов клиентов +Permission85=Создание документов заказов на продажу Permission86=Отправка заказов клиентов Permission87=Закрытые заказы клиентов Permission88=Отмена заказов клиентов @@ -840,9 +845,9 @@ Permission286=Экспортировать контакты Permission291=Читать тарифы Permission292=Установка разрешений на тарифы Permission293=Изменить тарифы клиента -Permission300=Читать штрих-коды -Permission301=Создание/изменение штрих-кодов -Permission302=Удалить штрих-коды +Permission301=Создание PDF-листов штрих-кодов +Permission304=Создание/изменение штрих-кодов +Permission305=Удалить штрих-коды Permission311=Читать услуги Permission312=Назначить услугу/подписку договору Permission331=Читать закладки @@ -874,6 +879,7 @@ Permission525=Доступ к калькулятору займа Permission527=Экспорт займов Permission531=Читать услуги Permission532=Создать/изменить услуги +Permission533=Читать цены услуги Permission534=Удаление услуг Permission536=Смотреть/Управлять скрытыми услугами Permission538=Экспорт услуг @@ -968,13 +974,14 @@ Permission3301=Создавать новые модули Permission4001=Читать навык/работа/должность Permission4002=Создать/изменить навык/работу/должность Permission4003=Удалить навык/работу/должность -Permission4020=Читать оценки -Permission4021=Создайте/измените свою оценку -Permission4022=Подтвердить оценку -Permission4023=Удалить оценку -Permission4030=См. Меню сравнения +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Подтвердить оценку +Permission4025=Delete evaluation +Permission4028=См. Меню сравнения Permission4031=Читать личную информацию Permission4032=Напишите личную информацию +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Смотреть содержание сайта Permission10002=Создание/изменение содержимого веб-сайта (HTML и JavaScript) Permission10003=Создание/изменение содержимого сайта (динамический PHP-код). Опасно, должно быть зарезервировано для разработчиков с ограниченным доступом. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Тип выбытия активов TypeOfUnit=Тип единицы SetupSaved=Настройки сохранены SetupNotSaved=Установки не сохранены +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Вернуться к списку модулей BackToDictionaryList=Вернуться к списку словарей TypeOfRevenueStamp=Тип налоговой печати @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Значение константы конфигурации ConstantIsOn=Вариант %s включен NbOfDays=Кол-во дней AtEndOfMonth=На конец месяца -CurrentNext=Текущая/Следующая +CurrentNext=Определенный день в месяце Offset=Сдвиг AlwaysActive=Всегда активный Upgrade=Обновление @@ -1235,11 +1246,13 @@ BrowserName=Имя браузера BrowserOS=Операционная система браузера ListOfSecurityEvents=Список событий безопасности Dolibarr SecurityEventsPurged=События безопасности удалены +TrackableSecurityEvents=Отслеживаемые события безопасности LogEventDesc=Включите ведение журнала для определенных событий безопасности. Администраторы журнала через меню %s - %s. Предупреждение, эта функция может генерировать большой объем данных в базе данных. AreaForAdminOnly=Параметры настройки могут быть установлены только пользователем администратора. SystemInfoDesc=Система информации разного техническую информацию Вы получите в режиме только для чтения и видимые только для администраторов. SystemAreaForAdminOnly=Эта область доступна только для администраторов. Пользовательские разрешения Dolibarr не могут изменить это ограничение. CompanyFundationDesc=Отредактируйте информацию о вашей компании/организации. Когда закончите, нажмите кнопку «%s» внизу страницы. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Если у вас есть внешний бухгалтер/бухгалтер, вы можете отредактировать здесь эту информацию. AccountantFileNumber=Код бухгалтера DisplayDesc=Здесь можно изменить параметры, влияющие на внешний вид и представление приложения. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Вы должны запуст YourPHPDoesNotHaveSSLSupport=SSL функций, не доступных в PHP DownloadMoreSkins=Дополнительные шкуры для загрузки SimpleNumRefModelDesc=Возвращает ссылочный номер в формате %syymm-nnnn, где yy - год, mm - месяц, а nnnn - последовательное автоматически увеличивающееся число без сброса. +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Возвращает ссылочный номер в формате %s-nnnn, где nnnn - это последовательный номер с автоинкрементом без сброса. ShowProfIdInAddress=Показать профессиональный идентификатор с адресами ShowVATIntaInAddress=Скрыть номер плательщика НДС внутри Сообщества @@ -1376,7 +1391,7 @@ GetBarCode=Получить штрих-код NumberingModules=Модели нумерации DocumentModules=Модели документов ##### Module password generation -PasswordGenerationStandard=Вернуть пароль, созданный в соответствии с внутренним алгоритмом Dolibarr: символы %s, содержащие общие числа и символы в нижнем регистре. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Не предлагать сгенерированный пароль. Пароль должен быть введен вручную. PasswordGenerationPerso=Верните пароль в соответствии с вашей личной конфигурацией. SetupPerso=Согласно вашей конфигурации @@ -1430,6 +1445,10 @@ SuppliersPayment=Платежи поставщику SupplierPaymentSetup=Настройка платежей поставщику InvoiceCheckPosteriorDate=Проверьте дату счета-фактуры перед проверкой InvoiceCheckPosteriorDateHelp=Проверка счета будет запрещена, если его дата предшествует дате последнего счета того же типа. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Настройка модуля Коммерческих предложений ProposalsNumberingModules=Шаблоны нумерации Коммерческих предложений @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Водяной знак на черновиках ##### Members ##### MembersSetup=Настройка модуля участников MemberMainOptions=Основные настройки +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Управление логином для каждого пользователя AdherentMailRequired=Требуется электронная почта для создания нового участника MemberSendInformationByMailByDefault=Чекбокс отправить по почте подтверждение участников по умолчанию MemberCreateAnExternalUserForSubscriptionValidated=Создайте внешний пользовательский логин для каждой подтвержденной подписки нового участника -VisitorCanChooseItsPaymentMode=Посетитель может выбрать один из доступных способов оплаты +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Включить автоматическое напоминание по электронной почте о просроченных подписках. Примечание. Модуль %s должен быть включен и правильно настроен для отправки напоминаний. MembersDocModules=Шаблоны документов для документов, созданных из записи участника ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Включить FCKeditor для: FCKeditorForNotePublic=WYSIWIG создание/изменение поля "публичные заметки" элементов FCKeditorForNotePrivate=WYSIWIG создание/изменение поля "личные заметки" элементов FCKeditorForCompany=WYSIWIG создание/редактирование поля описания элементов (кроме продуктов/услуг) -FCKeditorForProduct=WYSIWIG создание/редактирование поля описания продуктов/услуг -FCKeditorForProductDetails=WYSIWIG создание/редактирование строк сведений о продуктах для всех сущностей (предложения, заказы, счета-фактуры и т.д.). Предупреждение. Использование этого параметра в данном случае серьезно не рекомендуется, поскольку оно может создать проблемы со специальными символами и форматированием страниц при создании файлов PDF. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG создание/редактирование для массовой рассылки по электронной почте (Инструменты-> Массовая рассылка) FCKeditorForUserSignature=WYSIWIG создание/редактирование подписи пользователя FCKeditorForMail=WYSIWIG создание/редактирование для всей почты (кроме Инструменты -> Массовая рассылка) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Обработчик меню, где показывать н DetailMenuModule=Имя модуля, если пункт меню взят из модуля DetailType=Тип меню (вверху или слева) DetailTitre=Меню ярлык или этикетку код для перевода -DetailUrl=URL-адрес, по которому вам отправляется меню (абсолютная ссылка или внешняя ссылка с http://) +DetailUrl=URL-адрес, по которому вас отправляет меню (относительная URL-ссылка или внешняя ссылка с https://) DetailEnabled=Условие показать или нет запись DetailRight=Условие для отображения несанкционированным серого меню DetailLangs=Имя файла .lang для перевода кода метки @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Уменьшение запаса в CashDeskYouDidNotDisableStockDecease=Вы не отключили уменьшение запасов при продаже через точку продаж. Следовательно, требуется склад. CashDeskForceDecreaseStockLabel=Вынужденное сокращение запасов серийной продукции. CashDeskForceDecreaseStockDesc=Уменьшите сначала на самые старые даты приема и продажи. -CashDeskReaderKeyCodeForEnter=Код клавиши для "Enter", определенный в считывателе штрих-кода (Пример: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Настройка модуля Закладки BookmarkDesc=Этот модуль позволяет вам управлять закладками. Вы также можете добавить ярлыки на любые страницы Dolibarr или внешние веб-сайты в левом меню. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Модели нумерации накладны IfSetToYesDontForgetPermission=Если установлено ненулевое значение, не забудьте предоставить разрешения для групп или пользователей, которым разрешено второе утверждение. ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Настройка модуля GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Путь к файлу, содержащему Maxmind ip для перевода страны.
    Примеры:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /bCecry/subscribe/ +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Обратите внимание, что Ваш IP, чтобы страны файл данных должен быть в директории вашего PHP может читать (Проверьте ваши установки PHP open_basedir и файловой системы разрешений). YouCanDownloadFreeDatFileTo=Вы можете скачать бесплатную демонстрационную версию страны GeoIP MaxMind файл на %s. YouCanDownloadAdvancedDatFileTo=Вы также можете скачать более полную версию, с обновлениями, в стране GeoIP MaxMind файл на %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Мастер создания файла дампа базы д BackupZipWizard=Мастер создания архива каталога документов SomethingMakeInstallFromWebNotPossible=Установка внешних модулей через веб-интерфейс не возможна по следующей причине: SomethingMakeInstallFromWebNotPossible2=По этой причине описанный здесь процесс обновления является ручным процессом, который может выполнить только привилегированный пользователь. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Установка внешних модулей из приложения отключена вашим администратором. Вы должны попросить его удалить файл %s, чтобы использовать эту функцию. ConfFileMustContainCustom=Для установки или создания внешнего модуля из приложения необходимо сохранить файлы модулей в каталог %s. Чтобы этот каталог обрабатывался Dolibarr, вы должны настроить conf/conf.php, чтобы добавить 2 директивные строки:
    $dolibarr_main_url_root_alt = '/custom';
    $dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Выделите строки таблицы при перемещении мыши @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Нажмите CTRL + F5 на клавиатуре ил NotSupportedByAllThemes=Будет работать с основными темами, может не поддерживаться внешними темами BackgroundColor=Фоновый цвет TopMenuBackgroundColor=Цвет фона для верхнего меню -TopMenuDisableImages=Скрыть изображения в верхнем меню +TopMenuDisableImages=Значок или текст в верхнем меню LeftMenuBackgroundColor=Цвет фона для меню слева BackgroundTableTitleColor=Цвет фона для заголовка таблицы BackgroundTableTitleTextColor=Цвет текста для заголовка таблицы @@ -1949,7 +1970,7 @@ EnterAnyCode=Это поле содержит ссылку для идентиф Enter0or1=Введите 0 или 1 UnicodeCurrency=Введите здесь в фигурных скобках список номеров байтов, представляющих символ валюты. Например: для $ введите [36] - для бразильских реалов [82,36] - для € введите [8364]. ColorFormat=Цвет RGB находится в формате HEX, например: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Имя значка в формате:
    - image.png для файла изображения в каталоге текущей темы
    - image.png@module, если файл находится в каталоге /img/ модуля
    - fonwtawesome_xxx_fa_color_size для изображения FontAwesome fa-xxx (с набором префикса, цвета и размера) PositionIntoComboList=Позиция строки в комбинированных списках SellTaxRate=Ставка налога с продаж RecuperableOnly=Да для НДС «Не воспринимается, а восстанавливается», предназначенный для некоторых государств во Франции. Сохраняйте значение «Нет» во всех других случаях. @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Заказы MailToSendSupplierInvoice=Счета-фактуры поставщика MailToSendContract=Договоры MailToSendReception=Приемы +MailToExpenseReport=Отчёты о затратах MailToThirdparty=Контрагенты MailToMember=Участники MailToUser=Пользователи @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Правый отступ PDF MAIN_PDF_MARGIN_TOP=Верхний отступ PDF MAIN_PDF_MARGIN_BOTTOM=Нижний отступ PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Высота для логотипа в PDF +DOC_SHOW_FIRST_SALES_REP=Показать первого торгового представителя MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Добавить изображение в строку предложения MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Ширина столбца, если рисунок добавляется по линиям MAIN_PDF_NO_SENDER_FRAME=Скрыть границы в рамке адреса отправителя @@ -2047,8 +2070,10 @@ RemoveSpecialChars=Удаление специальных символов COMPANY_AQUARIUM_CLEAN_REGEX=Фильтр регулярных выражений для очистки значения (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Фильтр регулярных выражений для очистки значения (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Дубликат не допускается +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Сотрудник по защите данных (контактное лицо DPO, Data Privacy или GDPR) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=Если вы храните личные данные в своей информационной системе, здесь вы можете указать контактное лицо, ответственное за Общее положение о защите данных. HelpOnTooltip=Текст справки для отображения во всплывающей подсказке HelpOnTooltipDesc=Поместите здесь текст или ключ перевода, чтобы текст отображался во всплывающей подсказке, когда это поле появляется в форме YouCanDeleteFileOnServerWith=Вы можете удалить этот файл на сервере с помощью командной строки:
    %s @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Примечание: В меню %s - %s для параметр SwapSenderAndRecipientOnPDF=Поменять местами адреса отправителя и получателя в PDF-документах FeatureSupportedOnTextFieldsOnly=Предупреждение, функция поддерживается только для текстовых полей и комбинированных списков. Также должен быть установлен параметр URL action = create или action = edit ИЛИ имя страницы должно заканчиваться на 'new.php', чтобы активировать эту функцию. EmailCollector=Сборщик писем +EmailCollectors=Сборщики электронной почты EmailCollectorDescription=Добавьте запланированное задание и страницу настройки, чтобы регулярно сканировать ящики электронной почты (с использованием протокола IMAP) и записывать электронные письма, полученные в ваше приложение, в нужное место и/или создавать некоторые записи автоматически (например, лидов). NewEmailCollector=Новый сборщик электронной почты EMailHost=Хост почтового сервера IMAP +EMailHostPort=Порт почтового сервера IMAP +loginPassword=Логин Пароль +oauthToken=Токен Oauth2 +accessType=Тип доступа +oauthService=Oauth-сервис +TokenMustHaveBeenCreated=Модуль OAuth2 должен быть включен, а токен oauth2 должен быть создан с правильными разрешениями (например, область «gmail_full» с OAuth для Gmail). MailboxSourceDirectory=Исходный каталог почтового ящика MailboxTargetDirectory=Целевой каталог почтового ящика EmailcollectorOperations=Операции, выполняемые сборщиком EmailcollectorOperationsDesc=Операции выполняются сверху вниз. MaxEmailCollectPerCollect=Максимальное количество писем, собранных за один сбор +TestCollectNow=Тестовый сбор CollectNow=Собери сейчас ConfirmCloneEmailCollector=Вы уверены, что хотите клонировать сборщик электронной почты %s? DateLastCollectResult=Дата последней попытки сбора DateLastcollectResultOk=Дата последнего успешного сбора LastResult=Последний результат EmailCollectorHideMailHeaders=Не включать содержимое заголовка электронной почты в сохраненное содержимое собранных электронных писем. -EmailCollectorHideMailHeadersHelp=Если этот параметр включен, заголовки сообщений электронной почты не добавляются в конец содержимого электронной почты, сохраняемого как события. +EmailCollectorHideMailHeadersHelp=Если этот параметр включен, заголовки сообщений электронной почты не добавляются в конец содержимого сообщения электронной почты, которое сохраняется как событие повестки дня. EmailCollectorConfirmCollectTitle=Подтверждение сбора по электронной почте EmailCollectorConfirmCollect=Вы хотите запустить этот сборщик сейчас? EmailCollectorExampleToCollectTicketRequestsDesc=Собирайте электронные письма, соответствующие некоторым правилам, и автоматически создавайте тикет (модуль тикета должен быть включен) с информацией об электронной почте. Вы можете использовать этот сборщик, если вы окажете поддержку по электронной почте, поэтому ваш запрос на билет будет сгенерирован автоматически. Активируйте также Collect_Responses, чтобы собирать ответы вашего клиента прямо в окне просмотра заявки (вы должны отвечать из Долибарра). EmailCollectorExampleToCollectTicketRequests=Пример сбора запроса на тикет (только первое сообщение) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Сканируйте каталог «Отправленные» вашего почтового ящика, чтобы найти электронные письма, которые были отправлены в качестве ответа на другое электронное письмо непосредственно из вашего почтового программного обеспечения, а не из Dolibarr. Если такое письмо найдено, событие ответа записывается в Долибарр. EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Пример сбора ответов по электронной почте, отправленных из внешнего программного обеспечения электронной почты -EmailCollectorExampleToCollectDolibarrAnswersDesc=Соберите все электронные письма, которые являются ответом на электронное письмо, отправленное из вашего приложения. Событие (Module Agenda должно быть включено) с ответом по электронной почте будет записано в нужном месте. Например, если вы отправляете коммерческое предложение, заказ, счет или сообщение для тикета по электронной почте из приложения, и ваш клиент отвечает на ваше письмо, система автоматически поймает ответ и добавит его в вашу ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Соберите все электронные письма, которые являются ответом на электронное письмо, отправленное из вашего приложения. Событие (Module Agenda должно быть включено) с ответом по электронной почте будет записано в нужном месте. Например, если вы отправляете коммерческое предложение, заказ, счет или сообщение на билет по электронной почте из приложения, и получатель отвечает на ваше письмо, система автоматически поймает ответ и добавит его в вашу ERP. EmailCollectorExampleToCollectDolibarrAnswers=Пример сбора всех входящих сообщений, являющихся ответами на сообщения, отправленные Долибарром. EmailCollectorExampleToCollectLeadsDesc=Собирайте электронные письма, соответствующие некоторым правилам, и автоматически создавайте потенциальных клиентов (модуль проекта должен быть включен) с информацией об электронной почте. Вы можете использовать этот сборщик, если хотите следить за своим лидом с помощью модуля «Проект» (1 лид = 1 проект), поэтому ваши лиды будут генерироваться автоматически. Если сборщик Collect_Responses также включен, при отправке письма от ваших лидов, предложений или любого другого объекта вы также можете увидеть ответы своих клиентов или партнеров прямо в приложении.
    Примечание. В этом начальном примере заголовок лида создается вместе с адресом электронной почты. Если третье лицо не может быть найдено в базе данных (новый клиент), лид будет привязан к третьему лицу с идентификатором 1. EmailCollectorExampleToCollectLeads=Пример сбора лидов @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Собирайте элект EmailCollectorExampleToCollectJobCandidatures=Пример сбора кандидатур на работу, полученных по электронной почте NoNewEmailToProcess=Нет новых писем (соответствующие фильтры) для обработки NothingProcessed=Ничего не было выполнено -XEmailsDoneYActionsDone=Письма %s квалифицированы, электронные письма %s успешно обработаны (для записи %s / выполненных действий) +XEmailsDoneYActionsDone=Предварительно квалифицированные электронные письма %s, успешно обработанные электронные письма %s (для записи/действий %s) RecordEvent=Запишите событие в повестку дня (с типом Электронная почта отправлена или получена) CreateLeadAndThirdParty=Создайте лид (и третье лицо, если необходимо) CreateTicketAndThirdParty=Создать тикет (связанный с третьей стороной, если третья сторона была загружена предыдущей операцией или была угадана из трекера в заголовке электронной почты, без третьей стороны в противном случае) @@ -2105,7 +2138,7 @@ CreateCandidature=Создать заявление о приеме на раб FormatZip=Индекс MainMenuCode=Код входа в меню (главное меню) ECMAutoTree=Показать автоматическое дерево ECM -OperationParamDesc=Определите правила, которые будут использоваться для извлечения или установки значений.
    Пример операций, требующих извлечения имени из темы сообщения электронной почты:
    name=EXTRACT:SUBJECT:Сообщение от компании ([^\n] *)
    Пример для операций, которые создают объекты:
    objproperty1 = SET: значение, заданное
    objproperty2 = SET: значение, включая значения __objproperty1__
    objproperty3 = SETIFEMPTY: значение, используемое, если objproperty3 еще не определен
    objproperty4 = ЭКСТРАКТ: ЗАГОЛОВОК :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=ДОПОЛНИТЕЛЬНО:ТЕМА:([^\n]*)
    object.objproperty5=ДОПОЛНИТЕЛЬНО:ТЕЛО:Название моей компании\\s( [^\\s]*)

    Используйте ; char в качестве разделителя для извлечения или установки нескольких свойств. +OperationParamDesc=Определите правила, которые будут использоваться для извлечения некоторых данных или установки значений для использования в операции.

    Пример извлечения названия компании из темы сообщения электронной почты во временную переменную:
    tmp_var=EXTRACT:SUBJECT:Сообщение от компании ([^\n]*)

    Примеры установки свойств создаваемого объекта:
    objproperty1=SET:значение жесткого кода
    objproperty4=ИЗВЛЕЧЕНИЕ:ЗАГОЛОВОК:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=ИЗВЛЕЧЕНИЕ:ТЕМА:([^\n]*)
    object.objproperty5=ИЗВЛЕЧЕНИЕ:ТЕЛО:Мое название компании\\s([^\\s]*)

    Используйте ; char в качестве разделителя для извлечения или установки нескольких свойств. OpeningHours=Часы работы OpeningHoursDesc=Введите здесь обычные часы работы вашей компании. ResourceSetup=Конфигурация модуля Ресурсов @@ -2167,6 +2200,10 @@ EmailTemplate=Шаблон для электронной почты EMailsWillHaveMessageID=Письма будут иметь тег "Ссылки", соответствующий этому синтаксису. PDF_SHOW_PROJECT=Показать проект в документе ShowProjectLabel=Этикетка проекта +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Включить псевдоним в стороннее имя +THIRDPARTY_ALIAS=Название третья сторона - Псевдоним третья сторона +ALIAS_THIRDPARTY=Псевдоним третья сторона - Имя третьей стороны +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Если вы хотите, чтобы некоторые тексты в вашем PDF-файле были продублированы на 2 разных языках в одном сгенерированном PDF-файле, вы должны установить здесь этот второй язык, чтобы сгенерированный PDF-файл содержал 2 разных языка на одной странице: один, выбранный при создании PDF, и этот ( только несколько шаблонов PDF поддерживают это). Оставьте пустым для 1 языка в PDF-файле. PDF_USE_A=Создавайте документы PDF в формате PDF/A вместо формата PDF по умолчанию FafaIconSocialNetworksDesc=Введите здесь код значка FontAwesome. Если вы не знаете, что такое FontAwesome, вы можете использовать общее значение fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Партнерство AGENDA_EVENT_DEFAULT_STATUS=Статус события по умолчанию при создании события из формы YouShouldDisablePHPFunctions=Вы должны отключить функции PHP IfCLINotRequiredYouShouldDisablePHPFunctions=За исключением случаев, когда вам нужно запускать системные команды в пользовательском коде, вы должны отключить функции PHP. -PHPFunctionsRequiredForCLI=Для целей оболочки (например, резервного копирования заданий по расписанию или запуска антивирусной программы) вы должны сохранить функции PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=В корневом каталоге не обнаружены доступные для записи файлы или каталоги распространенных программ (Хорошо) RecommendedValueIs=Рекомендуется: %s Recommended=Рекомендуемые NotRecommended=Не рекомендуется -ARestrictedPath=Какой-то ограниченный путь +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Проверить обновления внешних модулей CheckForModuleUpdateHelp=Это действие подключится к редакторам внешних модулей, чтобы проверить, доступна ли новая версия. ModuleUpdateAvailable=Доступно обновление @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Обновлений для внешних модул SwaggerDescriptionFile=Файл описания Swagger API (например, для использования с redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Вы включили устаревший WS API. Вместо этого вам следует использовать REST API. RandomlySelectedIfSeveral=Выбирается случайным образом, если доступно несколько изображений +SalesRepresentativeInfo=Для предложений, заказов, счетов. DatabasePasswordObfuscated=Пароль базы данных зашифрован в файле conf DatabasePasswordNotObfuscated=Пароль базы данных НЕ запутывается в файле conf APIsAreNotEnabled=Модули API не включены @@ -2247,19 +2285,73 @@ LateWarningAfter=«Позднее» предупреждение после TemplateforBusinessCards=Шаблон визитки разного размера InventorySetup= Настройка инвентаря ExportUseLowMemoryMode=Используйте режим с низким объемом памяти -ExportUseLowMemoryModeHelp=Используйте режим низкой памяти для выполнения exec дампа (сжатие выполняется через конвейер, а не в память PHP). Этот метод не позволяет проверить, завершен ли файл, и сообщение об ошибке не может быть сообщено в случае сбоя. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Вебхук +ModuleWebhookDesc = Интерфейс для перехвата триггеров dolibarr и отправки их по URL-адресу +WebhookSetup = Настройка вебхука +Settings = Настройки +WebhookSetupPage = Страница настройки вебхука ShowQuickAddLink=Показать кнопку для быстрого добавления элемента в меню вверху справа + HashForPing=Хэш, используемый для пинга ReadOnlyMode=Экземпляр находится в режиме «Только для чтения» DEBUGBAR_USE_LOG_FILE=Используйте файл dolibarr.log для захвата журналов. UsingLogFileShowAllRecordOfSubrequestButIsSlower=Используйте файл dolibarr.log для захвата журналов вместо захвата живой памяти. Это позволяет перехватывать все журналы, а не только журнал текущего процесса (включая одну из страниц подзапросов ajax), но сделает ваш экземпляр очень медленным. Не рекомендуется. FixedOrPercent=Фиксированный (используйте ключевое слово «фиксированный») или процент (используйте ключевое слово «процент») DefaultOpportunityStatus=Статус возможности по умолчанию (первый статус при создании лида) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. + +IconAndText=Значок и текст +TextOnly=Только текст +IconOnlyAllTextsOnHover=Только значок — все тексты отображаются под значком в строке меню при наведении курсора мыши. +IconOnlyTextOnHover=Только значок — текст значка появляется под значком при наведении курсора мыши на значок. +IconOnly=Только значок — только текст во всплывающей подсказке. +INVOICE_ADD_ZATCA_QR_CODE=Показывать QR-код ZATCA в счетах-фактурах +INVOICE_ADD_ZATCA_QR_CODEMore=В некоторых арабских странах этот QR-код необходимо указывать в счетах-фактурах. +INVOICE_ADD_SWISS_QR_CODE=Показывать швейцарский код QR-Bill на счетах +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=URL-ссылка социальной сети. Используйте {socialid} для переменной части, которая содержит идентификатор социальной сети. +IfThisCategoryIsChildOfAnother=Если эта категория является потомком другой +DarkThemeMode=Режим темной темы +AlwaysDisabled=Всегда отключен +AccordingToBrowser=Согласно браузеру +AlwaysEnabled=Всегда включен +DoesNotWorkWithAllThemes=Не будет работать со всеми темами +NoName=Без имени +ShowAdvancedOptions= Показать дополнительные параметры +HideAdvancedoptions= Скрыть дополнительные параметры +CIDLookupURL=Модуль предоставляет URL-адрес, который может использоваться внешним инструментом для получения имени третьей стороны или контакта по ее номеру телефона. URL для использования: +OauthNotAvailableForAllAndHadToBeCreatedBefore=Аутентификация OAUTH2 доступна не для всех хостов, и токен с нужными разрешениями должен быть создан восходящим потоком с помощью модуля OAUTH. +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Служба аутентификации OAUTH2 +DontForgetCreateTokenOauthMod=Токен с правильными разрешениями должен быть создан восходящим потоком с помощью модуля OAUTH. +MAIN_MAIL_SMTPS_AUTH_TYPE=Метод аутентификации +UsePassword=Используйте пароль +UseOauth=Используйте токен OAUTH +Images=Картинки +MaxNumberOfImagesInGetPost=Максимальное количество изображений, разрешенных в поле HTML, представленном в форме +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=Модуль предоставляет URL-адрес, который может использоваться внешним инструментом для получения имени третьей стороны или контакта по ее номеру телефона. URL для использования: +ScriptIsEmpty=Скрипт пуст +ShowHideTheNRequests=Показать/скрыть SQL-запросы %s +DefinedAPathForAntivirusCommandIntoSetup=Определите путь для антивирусной программы в %s +TriggerCodes=Триггерные события +TriggerCodeInfo=Введите здесь триггерные коды, которые должны генерировать публикацию веб-запроса (разрешены только внешние URL-адреса). Вы можете ввести несколько кодов срабатывания через запятую. +EditableWhenDraftOnly=Если флажок не установлен, значение можно изменить, только если объект имеет статус черновика. +CssOnEdit=Css на страницах редактирования +CssOnView=Css на страницах просмотра +CssOnList=Css на страницах списка +HelpCssOnEditDesc=Css, используемый при редактировании поля.
    Пример: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Css, используемый при просмотре поля. +HelpCssOnListDesc=Css используется, когда поле находится внутри таблицы списка.
    Пример: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Скрыть заказанное количество в сформированных документах для приемов +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Показать цену на сформированные документы для приемов +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang index 888fcf11205..a8980c75187 100644 --- a/htdocs/langs/ru_RU/bills.lang +++ b/htdocs/langs/ru_RU/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Статистика счетов клиентов BillsStatisticsSuppliers=Статистика счетов поставщиков DisabledBecauseDispatchedInBookkeeping=Отключено, так как счет был отправлен в бухгалтерию DisabledBecauseNotLastInvoice=Отключено, потому что счет нельзя стереть. Некоторые счета были записаны после этого, и это приведет к образованию дыр в прилавке. +DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable. This invoice is not the last one in situation invoice cycle. DisabledBecauseNotErasable=Отключено, так как не может быть удалено InvoiceStandard=Стандартный счёт InvoiceStandardAsk=Стандартный счёт InvoiceStandardDesc=Такой вид счёта является общим. +InvoiceStandardShort=Standard InvoiceDeposit=Счет на предоплату InvoiceDepositAsk=Счет на предоплату InvoiceDepositDesc=Этот вид счета выставляется после получения авансового платежа. @@ -24,6 +26,7 @@ InvoiceProForma=Предварительный счет InvoiceProFormaAsk=Формальный счёт InvoiceProFormaDesc=Формальный счёт является образом оригинального счёта, но не имеет бухгалтерской учетной записи. InvoiceReplacement=Замена счета-фактуры +InvoiceReplacementShort=Замена InvoiceReplacementAsk=Замена счета-фактуры на другой InvoiceReplacementDesc=Счет-фактура замены используется для полной замены счета-фактуры без получения оплаты.

    Примечание. Заменять можно только счета без оплаты. Если заменяемый вами счет еще не закрыт, он будет автоматически закрыт как «оставленный». InvoiceAvoir=Кредитовое авизо @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Эта или д ErrorInvoiceIsNotLastOfSameType=Ошибка: дата счета-фактуры %s равна %s. Он должен быть более поздним или равным последней дате для счетов того же типа (%s). Пожалуйста, измените дату счета. BillFrom=Продавец BillTo=Покупатель +ShippingTo=Shipping to ActionsOnBill=Действия со счетом-фактурой RecurringInvoiceTemplate=Шаблон / повторяющийся счет NoQualifiedRecurringInvoiceTemplateFound=Нет подходящих повторяющихся счетов-фактур для создания шаблонов. @@ -446,6 +450,7 @@ ErrorPaymentConditionsNotEligibleToDepositCreation=Выбранные услов PaymentTypeVIR=Банковский перевод PaymentTypeShortVIR=Банковский перевод PaymentTypePRE=Платежное поручение прямого дебета +PaymentTypePREdetails=(on account *-%s) PaymentTypeShortPRE=Дебетовое платежное поручение PaymentTypeLIQ=Наличные PaymentTypeShortLIQ=Наличные @@ -621,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Платеж зарегистрирован SendEmailsRemindersOnInvoiceDueDate=Отправить напоминание по электронной почте для неоплаченных счетов MakePaymentAndClassifyPayed=Записать платеж BulkPaymentNotPossibleForInvoice=Массовая оплата невозможна для счета %s (неверный тип или статус) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/ru_RU/categories.lang b/htdocs/langs/ru_RU/categories.lang index 0575a8a3c1b..5520a7327cc 100644 --- a/htdocs/langs/ru_RU/categories.lang +++ b/htdocs/langs/ru_RU/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=У этого участника нет тегов/кате ContactHasNoCategory=У этого контакта нет тегов/категорий ProjectHasNoCategory=У этого проекта нет тегов/категорий ClassifyInCategory=Добавить в тег/категорию +RemoveCategory=Remove category NotCategorized=Без тега/категории CategoryExistsAtSameLevel=Категория к таким кодом уже существует ContentsVisibleByAllShort=Содержимое доступно всем @@ -67,6 +68,7 @@ StockCategoriesShort=Теги/категории склада ThisCategoryHasNoItems=Эта категория не содержит никаких элементов. CategId=ID тега/категории ParentCategory=Родительский тег/категория +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Метка родительского тега/категории CatSupList=Список тегов/категорий поставщиков CatCusList=Список тегов/категорий клиентов/лидов @@ -86,7 +88,7 @@ DeleteFromCat=Удалить из тега/категории ExtraFieldsCategories=Дополнительные атрибуты CategoriesSetup=Настройка тегов/категорий CategorieRecursiv=Автоматическая ссылка на родительский тег/категорию -CategorieRecursivHelp=Если опция включена, то при добавлении продукта в подкатегорию он также будет добавлен в родительскую категорию. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Добавить следующий продукт/услугу AddCustomerIntoCategory=Присвоить категорию клиенту AddSupplierIntoCategory=Присвоить категорию поставщику @@ -95,7 +97,9 @@ ShowCategory=Показать тег/категорию ByDefaultInList=По умолчанию в списке ChooseCategory=Выберите категорию StocksCategoriesArea=Категории складов +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Категории событий WebsitePagesCategoriesArea=Категории страниц-контейнеров KnowledgemanagementsCategoriesArea=Категории записей управления знаниями UseOrOperatorForCategories=Используйте оператор "ИЛИ" для категорий +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/ru_RU/commercial.lang b/htdocs/langs/ru_RU/commercial.lang index a173ee9a5ab..791951b04ef 100644 --- a/htdocs/langs/ru_RU/commercial.lang +++ b/htdocs/langs/ru_RU/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Статус проспекта DraftPropals=Проект коммерческих предложений NoLimit=Нет ограничений ToOfferALinkForOnlineSignature=Ссылка для онлайн-подписи -WelcomeOnOnlineSignaturePage=Добро пожаловать на страницу приема коммерческих предложений от %s -ThisScreenAllowsYouToSignDocFrom=Этот экран позволяет вам принять и подписать или отклонить предложение или коммерческое предложение -ThisIsInformationOnDocumentToSign=Это информация о документе, который нужно принять или отклонить. +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Этот экран позволяет вам принять и подписать или отклонить предложение или коммерческое предложение +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Подпись цитаты / коммерческого предложения %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Функция онлайн-подписи отключена или документ был создан до ее включения diff --git a/htdocs/langs/ru_RU/companies.lang b/htdocs/langs/ru_RU/companies.lang index e3db63400f0..5ba128975a5 100644 --- a/htdocs/langs/ru_RU/companies.lang +++ b/htdocs/langs/ru_RU/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Свойство контрагента NatureOfContact=Характер контакта Address=Адрес State=Штат/Провинция +StateId=State ID StateCode=Код штата/провинции StateShort=Штат Region=Регион Region-State=Регион - Штат Country=Страна CountryCode=Код страны -CountryId=id страны +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Скайп @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Идентификатор. проф. 1 (Торговый реестр) ProfId2CM=Идентификатор. проф. 2 (№ налогоплательщика) -ProfId3CM=Идентификатор. проф. 3 (Указ о создании) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Торговый реестр ProfId2ShortCM=№ налогоплательщика -ProfId3ShortCM=Указ о создании -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Другие ProfId6ShortCM=- ProfId1CO=Проф Id 1 (R.U.T.) diff --git a/htdocs/langs/ru_RU/compta.lang b/htdocs/langs/ru_RU/compta.lang index 2c9affb82e1..349e6c9818c 100644 --- a/htdocs/langs/ru_RU/compta.lang +++ b/htdocs/langs/ru_RU/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Баланс (до) Balance=Баланс Debit=Дебет Credit=Кредит +AccountingDebit=Дебит +AccountingCredit=Кредит Piece=Бухгалтерский док. AmountHTVATRealReceived=HT собрали AmountHTVATRealPaid=HT оплачивается @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Отчет об оборот TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Отчет об обороте, собранном по ставке налога с продаж, недоступен. Этот отчет доступен только для счета-фактуры оборота. CalculationMode=Режим вычислений AccountancyJournal=Журнал кодов бухгалтерского учета -ACCOUNTING_VAT_SOLD_ACCOUNT=Бухгалтерский счет по умолчанию для НДС с продаж (используется, если не определен при настройке словаря НДС) -ACCOUNTING_VAT_BUY_ACCOUNT=Бухгалтерский счет по умолчанию для НДС с покупок (используется, если не определен при настройке словаря НДС) -ACCOUNTING_VAT_PAY_ACCOUNT=Бухгалтерский счет по умолчанию для уплаты НДС -ACCOUNTING_ACCOUNT_CUSTOMER=Бухгалтерский счет, используемый для третьих лиц клиента +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Выделенная учетная запись, указанная на карте третьей стороны, будет использоваться только для учета во вспомогательной книге. Он будет использоваться для Главной книги и в качестве значения по умолчанию для учета во вспомогательной книге, если выделенная учетная запись клиента на третьей стороне не определена. -ACCOUNTING_ACCOUNT_SUPPLIER=Бухгалтерский счет, используемый для третьих сторон поставщика +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Выделенная учетная запись, указанная на карте третьей стороны, будет использоваться только для учета во вспомогательной книге. Он будет использоваться для Главной книги и в качестве значения по умолчанию для учета во вспомогательной книге, если не определена специальная учетная запись поставщика для третьей стороны. ConfirmCloneTax=Подтвердите клон социального / налогового налога ConfirmCloneVAT=Подтвердите копию декларации по НДС @@ -300,3 +302,4 @@ InvoiceToPay15Days=Для оплаты (от 15 до 30 дней) InvoiceToPay30Days=Для оплаты (> 30 дней) ConfirmPreselectAccount=Предварительный выбор кода счета ConfirmPreselectAccountQuestion=Вы уверены, что хотите предварительно выбрать выбранные строки %s с этим кодом учета? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/ru_RU/contracts.lang b/htdocs/langs/ru_RU/contracts.lang index 8e62d71d9fc..6aa77250ca1 100644 --- a/htdocs/langs/ru_RU/contracts.lang +++ b/htdocs/langs/ru_RU/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Вы уверены, что хотите удалит MoveToAnotherContract=Переместите услугу в другой договор. ConfirmMoveToAnotherContract=Я выбрал новый целевой договор и подтверждаю, что хочу перенести эту услугу в этот договор. ConfirmMoveToAnotherContractQuestion=Выберите, в какой из существующих договоров (того же контрагента) вы хотите перенести эту услугу? -PaymentRenewContractId=Продлить строку договора (номер %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Срок действия NoExpiredServices=Нет просроченных активных услуг ListOfServicesToExpireWithDuration=Список услуг, срок действия которых истекает через %s дней diff --git a/htdocs/langs/ru_RU/cron.lang b/htdocs/langs/ru_RU/cron.lang index 96d8fcb24a6..4bcfa5f52d5 100644 --- a/htdocs/langs/ru_RU/cron.lang +++ b/htdocs/langs/ru_RU/cron.lang @@ -26,7 +26,7 @@ CronCommand=Команда CronList=Запланированные задания CronDelete=Удалить запланированные задания CronConfirmDelete=Вы уверены, что хотите удалить эти запланированные задания? -CronExecute=Запустить запланированное задание +CronExecute=Launch now CronConfirmExecute=Вы уверены, что хотите выполнить эти запланированные задания сейчас? CronInfo=Модуль запланированных заданий позволяет планировать задания для их автоматического выполнения. Задания также можно запускать вручную. CronTask=Задание @@ -58,7 +58,7 @@ CronNote=Комментарий CronFieldMandatory=Поле %s является обязательным CronErrEndDateStartDt=Дата окончания не может быть раньше даты начала StatusAtInstall=Статус при установке модуля -CronStatusActiveBtn=Расписание +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Выключать CronTaskInactive=Это задание отключено (не запланировано) CronId=ID @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Резервное копирование локал MakeLocalDatabaseDump=Создайте дамп локальной базы данных. Параметры: сжатие ('gz' или 'bz' или 'none'), тип резервной копии ('mysql', 'pgsql', 'auto'), 1, 'auto' или имя файла для создания, количество файлов резервных копий для хранения MakeSendLocalDatabaseDumpShort=Отправить резервную копию локальной базы данных MakeSendLocalDatabaseDump=Отправить резервную копию локальной базы данных по электронной почте. Параметры: кому, от, тема, сообщение, имя файла (имя отправляемого файла), фильтр («sql» только для резервного копирования базы данных) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Внимание, для повышения производительности, какой бы ни была следующая дата выполнения включенных заданий, ваши задания могут быть отложены максимум на %s часов перед запуском. DATAPOLICYJob=Очиститель и анонимайзер данных JobXMustBeEnabled=Должно быть включено задание %s +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Последнее выполненное запланированное задание NextScheduledJobExecute=Следующее запланированное задание для выполнения NumberScheduledJobError=Количество запланированных заданий с ошибкой +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/ru_RU/datapolicy.lang b/htdocs/langs/ru_RU/datapolicy.lang new file mode 100644 index 00000000000..a04b939d1b9 --- /dev/null +++ b/htdocs/langs/ru_RU/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Клиент +DATAPOLICY_TIERS_PROSPECT = Лид +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Поставщик +DATAPOLICY_CONTACT_CLIENT = Клиент +DATAPOLICY_CONTACT_PROSPECT = Лид +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Поставщик +DATAPOLICY_ADHERENT = Участник +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ru_RU/dict.lang b/htdocs/langs/ru_RU/dict.lang index 306570a157a..b93a21cc68b 100644 --- a/htdocs/langs/ru_RU/dict.lang +++ b/htdocs/langs/ru_RU/dict.lang @@ -250,7 +250,9 @@ CountryMF=Сен-Мартен ##### Civilities ##### CivilityMME=Г-жа +CivilityMMEShort=Г-жа CivilityMR=Г-н +CivilityMRShort=Г-н CivilityMLE=Г-жа CivilityMTRE=Хозяин CivilityDR=Доктор diff --git a/htdocs/langs/ru_RU/ecm.lang b/htdocs/langs/ru_RU/ecm.lang index e3cc1125ec1..1193f40aebd 100644 --- a/htdocs/langs/ru_RU/ecm.lang +++ b/htdocs/langs/ru_RU/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Директория в ручном режиме ECMSectionAuto=Директория в автоматическом режиме ECMSectionsManual=Ручное дерево директории ECMSectionsAuto=Автоматическое дерево директории +ECMSectionsMedias=Medias tree ECMSections=Директории ECMRoot=Корень ECM ECMNewSection=Новая директория @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Количество файлов в поддиректор ECMCreationUser=Создатель ECMArea=Область DMS/ECM ECMAreaDesc=Область DMS/ECM (Система управления документами / Управление электронным контентом) позволяет сохранять, обмениваться и быстро искать все виды документов в Dolibarr. -ECMAreaDesc2=* Автоматическая справочники заполняются автоматически при добавлении документов с карточкой элемента.
    * Руководство каталогов можно использовать для сохранения документов, не связанных с конкретным элементом. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Каталог %s удален. ECMSectionWasCreated=Каталог %s создан. ECMSearchByKeywords=Поиск по ключевым словам diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang index 088cae1a1b0..6c160d5acc1 100644 --- a/htdocs/langs/ru_RU/errors.lang +++ b/htdocs/langs/ru_RU/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Логин %s уже существует. ErrorGroupAlreadyExists=Группа %s уже существует. ErrorEmailAlreadyExists=Электронная почта %s уже существует. ErrorRecordNotFound=Запись не найдена. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Не удалось скопировать файл '%s' в '%s'. ErrorFailToCopyDir=Не удалось скопировать каталог '%s' в '%s'. ErrorFailToRenameFile=Не удалось переименовать файл '%s' в '%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Файл изображения не имеет поддер ErrorBadDateFormat= Значение '%s' имеет неверный формат даты ErrorWrongDate=Дата некорректна! ErrorFailedToWriteInDir=Не удалось записать в директорию %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Обнаружен неверный синтаксис электронной почты для %s строки в файле (пример строки %s с участием email=%s) ErrorUserCannotBeDelete=Пользователь не может быть удален. Возможно, это связано с сущностями Долибарра. ErrorFieldsRequired=Некоторые обязательные поля остались пустыми. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Пожалуйста, заполните значе ErrorNoValueForRadioType=Пожалуйста, заполните значени для списка переключателей ErrorBadFormatValueList=Значение списка не может содержать более одной запятой: %s, но необходим хотя бы один: ключ, значение ErrorFieldCanNotContainSpecialCharacters=Поле %s не должно содержать специальных символов. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Поле %s не должно содержать специальных символов или символов верхнего регистра и не может содержать только цифры. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=Поле %s должно содержать не менее %s символов. ErrorNoAccountancyModuleLoaded=Нет бухгалтерского модуля активируется ErrorExportDuplicateProfil=Имя этого профиля уже сущесвует для этого набора для экспорта. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript не должна быть отключ ErrorPasswordsMustMatch=Оба введенных пароля должны совпадать друг с другом ErrorContactEMail=Произошла техническая ошибка. Пожалуйста, свяжитесь с администратором по следующему адресу электронной почты %s и укажите код ошибки %s или добавьте его в копию сообщения на экране, или добавьте его в копию сообщения на экране. ErrorWrongValueForField=Поле %s: '%s' не совпадает с регулярным выражением %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Поле %s: '%s' не является найденным значением в поле %s из %s ErrorFieldRefNotIn=Поле %s: '%s' не является %s существующей ссылкой +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s обнаружены ошибки ErrorFileIsInfectedWithAVirus=Антивирусная программа не смогла проверить файл (файл может быть заражен вирусом) -ErrorSpecialCharNotAllowedForField=Специальные символы не допускаются для поля "%s" ErrorNumRefModel=Ссылка есть в базе данных (%s) и не совместимы с данным правилом нумерации. Удаление записей или переименован ссылкой для активации этого модуля. ErrorQtyTooLowForThisSupplier=Слишком низкое количество для этого поставщика или цена на этот продукт для этого поставщика не определена. ErrorOrdersNotCreatedQtyTooLow=Некоторые заказы не были созданы из-за слишком малого количества @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Для отключения объе ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Для включения объекты должны иметь статус "Черновик" или "Отключено". ErrorNoFieldWithAttributeShowoncombobox=Никакие поля не имеют свойства showoncombobox в определении объекта %s. Нет возможности показать комболиста. ErrorFieldRequiredForProduct=Поле '%s' необходимо для продукта %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Проблема в настройке терминала %s. ErrorAddAtLeastOneLineFirst=Сначала добавьте хотя бы одну строку ErrorRecordAlreadyInAccountingDeletionNotPossible=Ошибка, запись уже перенесена в бухгалтерию, удаление невозможно. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Вы должны сначала нас ErrorFailedToFindEmailTemplate=Не удалось найти шаблон с кодовым названием %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Срок службы не определен. Невозможно рассчитать почасовую оплату. ErrorActionCommPropertyUserowneridNotDefined=Требуется владелец пользователя -ErrorActionCommBadType=Выбранный тип события (id: %n, код: %s) не существует в словаре типов событий +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Ошибка проверки версии ErrorWrongFileName=Имя файла не может содержать __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Нет в Словаре условий оплаты, пожалуйста, измените. ErrorIsNotADraft=%s это не черновик ErrorExecIdFailed=Не могу выполнить команду "id" -ErrorBadCharIntoLoginName=Несанкционированный символ в имени для входа -ErrorRequestTooLarge=Ошибка, слишком большой запрос +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=Вы не являетесь утверждающим для отпуска %s ErrorAttributeIsUsedIntoProduct=Этот атрибут используется в одном или нескольких вариантах продукта. ErrorAttributeValueIsUsedIntoProduct=Это значение атрибута используется в одном или нескольких вариантах продукта. @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Ошибка, все суммы должны быть ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Вы пытаетесь оплатить счета в валюте %s со счета с валютой %s ErrorInvoiceLoadThirdParty=Не удается загрузить сторонний объект для счета "%s" ErrorInvoiceLoadThirdPartyKey=Сторонний ключ "%s" не установлен для счета "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Удаление строки не разрешено фактическим статусом объекта +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status ErrorAjaxRequestFailed=Запрос не выполнен +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Ваш параметр PHP upload_max_filesize (%s) выше, чем параметр PHP post_max_size (%s). Это непоследовательная установка. WarningPasswordSetWithNoAccount=Для этого участника был установлен пароль. Однако учетная запись пользователя не была создана. Таким образом, этот пароль сохраняется, но не может использоваться для входа в Dolibarr. Он может использоваться внешним модулем / интерфейсом, но если вам не нужно определять логин или пароль для члена, вы можете отключить опцию «Управлять логином для каждого члена» в настройках модуля «Член». Если вам нужно управлять логином, но пароль не нужен, вы можете оставить это поле пустым, чтобы избежать появления этого предупреждения. Примечание. Электронная почта также может использоваться в качестве логина, если член связан с пользователем. -WarningMandatorySetupNotComplete=Нажмите здесь, чтобы настроить обязательные параметры +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Щелкните здесь, чтобы включить свои модули и приложения WarningSafeModeOnCheckExecDir=Предупреждение, PHP safe_mode вариант находится на так команда должна храниться в каталог заявил на PHP safe_mode_exec_dir параметра. WarningBookmarkAlreadyExists=Закладка этого титула или этой цели (URL), уже существует. @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Внимание, ваш конфигурацио WarningsOnXLines=Предупреждения об источнике %s линий WarningNoDocumentModelActivated=Никакая модель для создания документа не была активирована. Модель будет выбрана по умолчанию, пока вы не проверите настройки своего модуля. WarningLockFileDoesNotExists=Внимание! После завершения установки необходимо отключить инструменты установки / миграции, добавив файл install.lock в каталог %s . Отсутствие создания этого файла представляет серьезную угрозу безопасности. -WarningUntilDirRemoved=Все предупреждения системы безопасности (видимые только администраторами) будут оставаться активными, пока присутствует уязвимость (или эта константа MAIN_REMOVE_INSTALL_WARNING добавлена в Настройки-> Другие настройки). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Предупреждение, закрытие выполняется, даже если количество различается между исходными и целевыми элементами. С осторожностью включайте эту функцию. WarningUsingThisBoxSlowDown=Предупреждение, использование этого окна серьезно замедлит все страницы, на которых отображается это окно. WarningClickToDialUserSetupNotComplete=Настройка информации ClickToDial для вашего пользователя не завершена (см. Вкладку ClickToDial на карточке пользователя). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Предупреждение, вы не можете н WarningAvailableOnlyForHTTPSServers=Доступно только при использовании защищенного соединения HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Модуль %s не включен. Так что вы можете пропустить здесь много мероприятий. WarningPaypalPaymentNotCompatibleWithStrict=Значение «Строгий» приводит к некорректной работе функций онлайн-платежей. Вместо этого используйте «Лакс». +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". -<<<<<<< ГОЛОВА -======= -<<<<<<< ГОЛОВА -<<<<<<< ГОЛОВА ->>>>>>> ветка '15.0' git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = Значение недействительно RequireAtLeastXString = Требуется не менее %s символа(ов) @@ -347,12 +361,3 @@ BadSetupOfField = Ошибка неправильная настройка по BadSetupOfFieldClassNotFoundForValidation = Ошибка неправильной настройки поля: класс не найден для проверки BadSetupOfFieldFileNotFound = Ошибка неправильной настройки поля: файл не найден для включения BadSetupOfFieldFetchNotCallable = Ошибка неправильной настройки поля: Получение не вызывается для класса -<<<<<<< ГОЛОВА -======= -======= -======= ->>>>>>> ветка '15.0' git@github.com:Dolibarr/dolibarr.git ->>>>>>> ветка '15.0' git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> ветка '15.0' git@github.com:Dolibarr/dolibarr.git ->>>>>>> ветка '15.0' git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/ru_RU/eventorganization.lang b/htdocs/langs/ru_RU/eventorganization.lang index 19670d12a3e..73269b1f6b7 100644 --- a/htdocs/langs/ru_RU/eventorganization.lang +++ b/htdocs/langs/ru_RU/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = В форме создания/доба # Object # EventOrganizationConfOrBooth= Конференция или выставка +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Управляйте организацией мероприятия ConferenceOrBooth = Конференция или выставка ConferenceOrBoothTab = Конференция или выставка AmountPaid = Оплаченная сумма DateOfRegistration = Дата регистрации ConferenceOrBoothAttendee = Участник конференции или выставки +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Здесь вы можете проголосо EvntOrgRegistrationConfHelpMessage = Здесь вы можете предложить новую конференцию для анимации во время мероприятия. EvntOrgRegistrationBoothHelpMessage = Здесь вы можете подать заявку на получение ваыставки во время мероприятия. ListOfSuggestedConferences = Список предлагаемых конференций -ListOfSuggestedBooths = Список предлагаемых выставок -ListOfConferencesOrBooths=Список конференций или выставок событийного проекта +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Предложить новую конференцию SuggestBooth = Предложить выставку ViewAndVote = Просмотр и голосование за предложенные мероприятия PublicAttendeeSubscriptionGlobalPage = Публичная ссылка для регистрации на мероприятие PublicAttendeeSubscriptionPage = Публичная ссылка только для регистрации на это мероприятие MissingOrBadSecureKey = Электронный ключ недействителен или отсутствует -EvntOrgWelcomeMessage = Эта форма позволяет вам зарегистрироваться в качестве нового участника мероприятия: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Конференция начинается %s и заканчивается %s. ConferenceAttendeeFee = Плата за участие в конференции: '%s', происходящая от %s до %s. BoothLocationFee = Место расположения выставки для события : '%s' происходящего с %s до %s @@ -130,7 +133,7 @@ LabelOfconference=Этикетка конференции ConferenceIsNotConfirmed=Регистрация недоступна, конференция еще не подтверждена DateMustBeBeforeThan=%s должно быть до %s DateMustBeAfterThan=%s должно быть после %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Регистрация OrganizationEventConfRequestWasReceived=Ваше предложение о конференции получено OrganizationEventBoothRequestWasReceived=Ваш запрос на выставку получен @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Ваш платеж за ре OrganizationEventBulkMailToAttendees=Напоминание о вашем участии в мероприятии в качестве участника OrganizationEventBulkMailToSpeakers=Напоминание о вашем участии в мероприятии в качестве спикера. OrganizationEventLinkToThirdParty=Ссылка на третью сторону (покупателя, поставщика или партнера) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Заявка на выставку NewSuggestionOfConference=Заявка на конференцию @@ -154,7 +158,7 @@ VoteOk = Ваш голос был принят. AlreadyVoted = Вы уже проголосовали за это событие. VoteError = Произошла ошибка во время голосования, попробуйте еще раз. -SubscriptionOk = Ваша регистрация подтверждена +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Подтверждение подписки на мероприятие Attendee = Участник PaymentConferenceAttendee = Оплата участникам конференции @@ -162,6 +166,7 @@ PaymentBoothLocation = Оплата места стенда DeleteConferenceOrBoothAttendee=Удалить участника RegistrationAndPaymentWereAlreadyRecorder=На электронную почту уже были зарегистрированы регистрация и оплата %s EmailAttendee=Электронная почта участника +EmailCompany=Company email EmailCompanyForInvoice=Электронная почта компании (для счета-фактуры, если она отличается от электронной почты участника) ErrorSeveralCompaniesWithEmailContactUs=Было найдено несколько компаний с этим адресом электронной почты, поэтому мы не можем автоматически подтвердить вашу регистрацию. Свяжитесь с нами по адресу %s для ручной проверки ErrorSeveralCompaniesWithNameContactUs=Было найдено несколько компаний с таким названием, поэтому мы не можем автоматически подтвердить вашу регистрацию. Свяжитесь с нами по адресу %s для ручной проверки diff --git a/htdocs/langs/ru_RU/externalsite.lang b/htdocs/langs/ru_RU/externalsite.lang deleted file mode 100644 index ed73de12a39..00000000000 --- a/htdocs/langs/ru_RU/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Установка ссылки на внешний веб-сайт -ExternalSiteURL=URL-адрес внешнего сайта HTML-содержимого iframe -ExternalSiteModuleNotComplete=Модуль ВнешнийСайт не был надлежащим образом настроен. -ExampleMyMenuEntry=Пункт "Моё меню" diff --git a/htdocs/langs/ru_RU/ftp.lang b/htdocs/langs/ru_RU/ftp.lang deleted file mode 100644 index a90aec934de..00000000000 --- a/htdocs/langs/ru_RU/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Настройка модуля FTP или SFTP-клиента -NewFTPClient=Настройка нового соединения FTP/FTPS -FTPArea=Область FTP/FTPS -FTPAreaDesc=На этом экране показан вид сервера FTP и SFTP. -SetupOfFTPClientModuleNotComplete=Настройка клиентского модуля FTP или SFTP кажется незавершенной. -FTPFeatureNotSupportedByYourPHP=Ваш PHP не поддерживает функции FTP или SFTP -FailedToConnectToFTPServer=Не удалось подключиться к серверу (сервер %s, порт %s) -FailedToConnectToFTPServerWithCredentials=Не удалось войти на сервер с определенным логином/паролем -FTPFailedToRemoveFile=Не удалось удалить файл %s. -FTPFailedToRemoveDir=Не удалось удалить каталог %s: проверьте разрешения и убедитесь, что каталог пуст. -FTPPassiveMode=Пассивный режим -ChooseAFTPEntryIntoMenu=Выберите сайт FTP/SFTP в меню ... -FailedToGetFile=Не удалось получить файлы %s diff --git a/htdocs/langs/ru_RU/holiday.lang b/htdocs/langs/ru_RU/holiday.lang index dec460ea8b5..f384058e136 100644 --- a/htdocs/langs/ru_RU/holiday.lang +++ b/htdocs/langs/ru_RU/holiday.lang @@ -27,7 +27,7 @@ DescCP=Описание SendRequestCP=Создать заявление на отпуск DelayToRequestCP=Заявления об отпуске могут создаваться не ранее чем через %s (дней) MenuConfCP=Остаток отпуска -SoldeCPUser=Leave balance (in days) %s +SoldeCPUser=Остаток средств (в днях) %s ErrorEndDateCP=Выберите конечную дату позже чем начальную. ErrorSQLCreateCP=Ошибка SQL возникла во время создания: ErrorIDFicheCP=Возникла ошибка, заявление на отпуск отсутствует. @@ -134,6 +134,6 @@ HolidaysToApprove=Праздники утвердить NobodyHasPermissionToValidateHolidays=Ни у кого нет разрешения подтверждать праздники HolidayBalanceMonthlyUpdate=Ежемесячное обновление праздничного баланса XIsAUsualNonWorkingDay=%s обычно НЕ рабочий день -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +BlockHolidayIfNegative=Блокировать, если баланс отрицательный +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Создание этого запроса на отпуск заблокировано, так как ваш баланс отрицательный +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Запрос на отпуск %s должен быть черновиком, отменен или отказано в удалении diff --git a/htdocs/langs/ru_RU/hrm.lang b/htdocs/langs/ru_RU/hrm.lang index c8c2554487e..9fbb5ed0fc1 100644 --- a/htdocs/langs/ru_RU/hrm.lang +++ b/htdocs/langs/ru_RU/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Открытое заведение CloseEtablishment=Закрыть заведение # Dictionary DictionaryPublicHolidays=Отпуск - праздничные дни -DictionaryDepartment=HRM - Список отделов +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Вакансии # Module Employees=Сотрудники @@ -70,9 +70,9 @@ RequiredSkills=Необходимые навыки для этой работы UserRank=Рейтинг пользователя SkillList=Список навыков SaveRank=Сохранить рейтинг -knowHow=Знать как -HowToBe=Как быть -knowledge=Знания +TypeKnowHow=Знать как +TypeHowToBe=Как быть +TypeKnowledge=Знания AbandonmentComment=Комментарий об отказе DateLastEval=Дата последней оценки NoEval=Оценка этого сотрудника не проводилась @@ -88,3 +88,4 @@ DeleteSkill = Навык удален SkillsExtraFields=Дополнительные атрибуты (компетенции) JobsExtraFields=Дополнительные атрибуты (Emplois) EvaluationsExtraFields=Дополнительные атрибуты (оценки) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang index c471e9cd0ee..440984fd86f 100644 --- a/htdocs/langs/ru_RU/install.lang +++ b/htdocs/langs/ru_RU/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Файл конфигурации %s недосту ConfFileIsWritable=Файл конфигурации %s доступен для записи. ConfFileMustBeAFileNotADir=Файл конфигурации %s должен быть файлом, а не каталогом. ConfFileReload=Перезагрузка параметров из файла конфигурации. -NoReadableConfFileSoStartInstall=Файл конфигурации conf/conf.php не существует или не может быть восстановлен. Мы запустим процесс установки, чтобы попытаться его инициализировать. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Эта версия PHP поддерживает переменные POST и GET. PHPSupportPOSTGETKo=Возможно, ваша установка PHP не поддерживает переменные POST и/или GET. Проверьте параметр variables_order в php.ini. PHPSupportSessions=Эта версия PHP поддерживает сессии. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Вы ввели неправильное значе ErrorFailedToCreateDatabase=Не удается создать базу данных ' %s'. ErrorFailedToConnectToDatabase=Не удалось подключиться к базе данных ' %s'. ErrorDatabaseVersionTooLow=Версия базы данных (%s) слишком старая. Требуется версия %s или выше -ErrorPHPVersionTooLow=Версия PHP слишком стара. Версия %s обязательна. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Подключение к серверу выполнено успешно, но база данных '%s' не найдена. ErrorDatabaseAlreadyExists=База данных ' %s' уже существует. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Если база данных не существует, вернитесь и отметьте опцию «Создать базу данных». IfDatabaseExistsGoBackAndCheckCreate=Если база данных уже существует, вернитесь назад и снимите флажок "Создать базу данных" вариант. WarningBrowserTooOld=Версия браузера слишком старая. Настоятельно рекомендуется обновить браузер до последней версии Firefox, Chrome или Opera. diff --git a/htdocs/langs/ru_RU/knowledgemanagement.lang b/htdocs/langs/ru_RU/knowledgemanagement.lang index c61b930e8f7..13f45a1f0fd 100644 --- a/htdocs/langs/ru_RU/knowledgemanagement.lang +++ b/htdocs/langs/ru_RU/knowledgemanagement.lang @@ -46,9 +46,9 @@ KnowledgeRecords = Записи KnowledgeRecord = Запись KnowledgeRecordExtraFields = Дополнительные поля для записи GroupOfTicket=Группа тикетов -YouCanLinkArticleToATicketCategory=Вы можете привязать запись к группе тикетов (чтобы запись предлагалась во время квалификации новых тикетов) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Предлагается для тикетов, когда группа -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=Сделать устаревшим +ConfirmCloseKM=Вы подтверждаете закрытие этой статьи как устаревшей? +ConfirmReopenKM=Вы хотите вернуть этой статье статус "Проверено"? diff --git a/htdocs/langs/ru_RU/loan.lang b/htdocs/langs/ru_RU/loan.lang index 451107ace47..ac5e3ae5d9f 100644 --- a/htdocs/langs/ru_RU/loan.lang +++ b/htdocs/langs/ru_RU/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Финансовые обязательства InterestAmount=Доля капитала CapitalRemain=Остается капитал TermPaidAllreadyPaid = Этот срок уже оплачен -CantUseScheduleWithLoanStartedToPaid = Невозможно использовать планировщик для займа с начатым платежом +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Вы не можете изменить интерес, если используете расписание # Admin ConfigLoan=Настройка модуля займов -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Бухгалтерский учет капитала по умолчанию -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Учет процентов по счету по умолчанию -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Страхование бухгалтерского счета по умолчанию +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Изменить финансовое обязательство diff --git a/htdocs/langs/ru_RU/mailmanspip.lang b/htdocs/langs/ru_RU/mailmanspip.lang index c43c96d32a5..c5b0a2e33b0 100644 --- a/htdocs/langs/ru_RU/mailmanspip.lang +++ b/htdocs/langs/ru_RU/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Проверка подписки прошла успеш MailmanDeletionSuccess=Тест отказа от подписки был успешно выполнен SynchroMailManEnabled=Будет выполнено обновление системы Mailman SynchroSpipEnabled=Будет выполнено обновление системы SPIP -DescADHERENT_MAILMAN_ADMINPW=Пароль администратора системы Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Пароль администратора системы Mailman DescADHERENT_MAILMAN_URL=Ссылка на рассылки системы Mailman DescADHERENT_MAILMAN_UNSUB_URL=Ссылка на отказ от рассылки системы Mailman DescADHERENT_MAILMAN_LISTS=Список (списки) для автоматический подписки новых участников (разделитель - запятая) diff --git a/htdocs/langs/ru_RU/mails.lang b/htdocs/langs/ru_RU/mails.lang index 2c863824bce..d31685f37d8 100644 --- a/htdocs/langs/ru_RU/mails.lang +++ b/htdocs/langs/ru_RU/mails.lang @@ -7,10 +7,10 @@ MailCard=Карточка рассылки MailRecipients=Получатели MailRecipient=Получатель MailTitle=Название -MailFrom=Отправитель +MailFrom=Из MailErrorsTo=Оповещение об ошибках MailReply=Ответить -MailTo=Получатель(и) +MailTo=Покупатель MailToUsers=Пользователю(ям) MailCC=Копия MailToCCUsers=Копировать пользователям @@ -178,3 +178,4 @@ IsAnAnswer=Это ответ на исходное электронное пис RecordCreatedByEmailCollector=Запись, созданная сборщиком электронной почты %s из электронной почты %s DefaultBlacklistMailingStatus=Значение по умолчанию для поля '%s' при создании нового контакта DefaultStatusEmptyMandatory=Пусто, но обязательно +WarningLimitSendByDay=ВНИМАНИЕ: В соответствии с настройками или контрактом вашего экземпляра количество писем в день ограничено до %s. Попытка отправить больше может привести к замедлению или приостановке работы вашего экземпляра. Обратитесь в службу поддержки, если вам нужна более высокая квота. diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 8cb1348778e..07f6556f3d8 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=freemono FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=Для этого типа электронной почты AvailableVariables=Доступны переменные для замены NoTranslation=Нет перевода Translation=Перевод +Translations=Translations CurrentTimeZone=Текущий часовой пояс в настройках PHP EmptySearchString=Введите непустые критерии поиска EnterADateCriteria=Введите критерии даты @@ -199,6 +206,7 @@ Valid=Действительный Approve=Утвердить Disapprove=Не утверждать ReOpen=Переоткрыть +OpenVerb=Открыт Upload=Загрузить ToLink=Ссылка Select=Выбор @@ -216,7 +224,7 @@ UserGroup=Группа пользователей UserGroups=Группы пользователей NoUserGroupDefined=Не задана группа для пользователя Password=Пароль -PasswordRetype=Повторите ваш пароль +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Обратите внимание, что многие функции/модули отключены в этой демонстрации. Name=Имя NameSlashCompany=Имя / Компания @@ -345,7 +353,7 @@ KiloBytes=Килобайт MegaBytes=Мегабайт GigaBytes=Гигабайт TeraBytes=Терабайт -UserAuthor=Создано +UserAuthor=Created by UserModif=Обновлено b=б. Kb=Кб @@ -481,6 +489,7 @@ ActionsOnContact=Событие для этого контакта/адреса ActionsOnContract=События для этого контракта ActionsOnMember=События этого участника ActionsOnProduct=События об этом продукте +ActionsOnAsset=Events for this fixed asset NActionsLate=%s с опозданием ToDo=Что сделать Completed=Завершено @@ -712,6 +721,7 @@ FeatureDisabled=Функция отключена MoveBox=Переместить виджет Offered=Предложено NotEnoughPermissions=У вас нет разрешений на это действие +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Имя Сессии Method=Метод Receive=Получить @@ -801,6 +811,7 @@ URLPhoto=Адрес фотографии/логотипа SetLinkToAnotherThirdParty=Ссылка на другого контрагента LinkTo=Ссылка LinkToProposal=Ссылка для предложения +LinkToExpedition= Link to expedition LinkToOrder=Ссылка для заказа LinkToInvoice=Ссылка для счета LinkToTemplateInvoice=Ссылка на шаблон счета @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Частная ссылка для скачивани PrivateDownloadLinkDesc=Вам необходимо войти в систему и получить разрешения на просмотр или загрузку файла. Download=Загрузка DownloadDocument=Скачать документ +DownloadSignedDocument=Download signed document ActualizeCurrency=Обновить текущий курс Fiscalyear=Финансовый год ModuleBuilder=Конструктор Модулей и Приложений @@ -1044,6 +1056,7 @@ SearchIntoContracts=Договоры SearchIntoCustomerShipments=Отгрузки клиентам SearchIntoExpenseReports=Отчёты о затратах SearchIntoLeaves=Отпуск +SearchIntoKM=Knowledge base SearchIntoTickets=Тикеты SearchIntoCustomerPayments=Платежи клиентов SearchIntoVendorPayments=Платежи поставщику @@ -1135,15 +1148,29 @@ EventReminder=Напоминание о мероприятии UpdateForAllLines=Обновление для всех линий OnHold=На удерживании Civility=Вежливость -AffectTag=Влияет на тег +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Создать внешнего пользователя -ConfirmAffectTag=Влияние массового тега -ConfirmAffectTagQuestion=Вы действительно хотите изменить теги для выбранных записей %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Тип тега для типа записей не найден +Rate=Курс +SupervisorNotFound=Supervisor not found CopiedToClipboard=Скопировано в буфер обмена InformationOnLinkToContract=Эта сумма представляет собой только сумму всех строк контракта. Время не принимается во внимание. ConfirmCancel=Вы уверены, что хотите отменить EmailMsgID=Электронная почта MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Включено SetToDisabled=Отключено ConfirmMassEnabling=подтверждение массового включения @@ -1172,8 +1199,14 @@ Terminated=Прекращено AddLineOnPosition=Добавить строку в позицию (в конце, если пусто) ConfirmAllocateCommercial=Назначение подтверждения торгового представителя ConfirmAllocateCommercialQuestion=Вы уверены, что хотите назначить выбранные записи %s? -CommercialsAffected=Затронутые торговые представители -CommercialAffected=Затронутый торговый представитель -YourMessage=Ваше сообщение +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message YourMessageHasBeenReceived=Ваше сообщение было получено. Мы ответим или свяжемся с вами в ближайшее время. UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Внутренний пользователь +ExternalUser=Внешний пользователь diff --git a/htdocs/langs/ru_RU/members.lang b/htdocs/langs/ru_RU/members.lang index 0aa060e6a7e..498f556616e 100644 --- a/htdocs/langs/ru_RU/members.lang +++ b/htdocs/langs/ru_RU/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Еще один член (имя и < ErrorUserPermissionAllowsToLinksToItselfOnly=По соображениям безопасности, вы должны получить разрешение, чтобы изменить все пользователи должны иметь доступ к ссылке члена к пользователю, что это не твое. SetLinkToUser=Ссылка на Dolibarr пользователя SetLinkToThirdParty=Ссылка на Dolibarr третья сторона +MemberCountersArePublic=Счетчики действительных участников являются публичными MembersCards=Генерация карточек для участников MembersList=Список участников MembersListToValid=Список кандидатов в участники (на утверждении) @@ -34,8 +35,10 @@ DateSubscription=Дата членства DateEndSubscription=Дата окончания членства EndSubscription=Конец членства SubscriptionId=Идентификатор вклада -WithoutSubscription=Без вклада -MemberId=ID участника +WithoutSubscription=Без членства +WaitingSubscription=Членство ожидается +MemberId=ID пользователя +MemberRef=Ссылка на пользователя NewMember=Новый участник MemberType=Тип участника MemberTypeId=ID типа участника @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Тип участника не может быть у NewSubscription=Новый вклад NewSubscriptionDesc=Эта форма позволяет вам записывать вашу подписку в качестве нового члена Фонда. Если вы хотите продлить подписку (если уже зарегистрированы), пожалуйста, свяжитесь совета Фонда, а не по электронной почте, %s. Subscription=Вклад +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Любая сумма +CanEditAmountShortForValues=рекомендуется, любая сумма +MembershipDuration=Продолжительность +GetMembershipButtonLabel=Join Subscriptions=Взносы SubscriptionLate=Поздно SubscriptionNotReceived=Вклад так и не получен @@ -135,7 +144,7 @@ CardContent=Содержание Вашей карточки участника # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Мы хотим сообщить вам, что ваш запрос на членство был получен.

    ThisIsContentOfYourMembershipWasValidated=Мы хотим сообщить вам, что ваше членство было подтверждено следующей информацией:

    -ThisIsContentOfYourSubscriptionWasRecorded=Мы хотим сообщить вам, что ваша новая подписка была зарегистрирована.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Мы хотим сообщить вам, что ваша подписка истекает или уже истекла (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Надеемся, вы его обновите.

    ThisIsContentOfYourCard=Это краткое изложение имеющейся у нас информации о вас. Пожалуйста, свяжитесь с нами, если что-то не так.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Тема электронного письма с уведомлением, полученного в случае автоматического добавления гостя @@ -198,8 +207,10 @@ NbOfSubscriptions=Количество вкладов AmountOfSubscriptions=Сумма, полученная от взносов TurnoverOrBudget=Оборот (за компанию) или бюджета (за основу) DefaultAmount=Сумма взноса по умолчанию -CanEditAmount=Посетитель может выбрать / изменить размер своего взноса -MEMBER_NEWFORM_PAYONLINE=Перейти по комплексному интернет страницу оплаты +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=По природе MembersStatisticsByProperties=Статистика участников по характеру VATToUseForSubscriptions=Ставка НДС, используемая для взносов @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=Создание пользовательского вх CreateDolibarrThirdPartyDesc=Третья сторона - это юридическое лицо, которое будет указано в счете-фактуре, если вы решите создавать счет-фактуру для каждого вклада. Вы сможете создать его позже в процессе записи вклада. MemberFirstname=Имя участника MemberLastname=Фамилия участника +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/ru_RU/modulebuilder.lang b/htdocs/langs/ru_RU/modulebuilder.lang index 2e3f7000978..035bf9d28fd 100644 --- a/htdocs/langs/ru_RU/modulebuilder.lang +++ b/htdocs/langs/ru_RU/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=Этот инструмент должен использоваться только опытными пользователями или разработчиками. Он предоставляет утилиты для создания или редактирования вашего собственного модуля. Документация по альтернативной ручной разработке находится здесь . EnterNameOfModuleDesc=Введите имя создаваемого модуля/приложения без пробелов. Используйте верхний регистр для разделения слов (например, MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Введите имя создаваемого объекта без пробелов. Используйте заглавные буквы для разделения слов (например: МойОбъект, Студент, Учитель...). Будет создан файл класса CRUD, а также файл API, страницы для списка/добавления/редактирования/удаления объектов и файлы SQL. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Введите имя создаваемого словаря без пробелов. Используйте заглавные буквы для разделения слов (например: MyDico...). Будет создан файл класса, а также файл SQL. ModuleBuilderDesc2=Путь, по которому модули создаются/редактируются (первый каталог для внешних модулей, определенных в %s): %s ModuleBuilderDesc3=Найдены сгенерированные/редактируемые модули: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Модуль определяется как "редакти NewModule=Новый модуль NewObjectInModulebuilder=Новый объект NewDictionary=Новый словарь +ModuleName=Module name ModuleKey=Ключ модуля ObjectKey=Ключ объекта DicKey=Ключ словаря @@ -48,11 +50,14 @@ PathToModulePackage=Путь к zip-архиву модуля/пакета пр PathToModuleDocumentation=Путь к файлу документации модуля/приложения (%s) SpaceOrSpecialCharAreNotAllowed=Пробелы и специальные символы не допускаются. FileNotYetGenerated=Файл еще не создан +GenerateCode=Generate code RegenerateClassAndSql=Принудительное обновление файлов .class и .sql RegenerateMissingFiles=Создать недостающие файлы SpecificationFile=Файл документации LanguageFile=Файл для языка ObjectProperties=Свойства объекта +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Вы действительно хотите удалить свойство %s? Это изменит код в классе PHP, но также удалит столбец из определения объекта в таблице. NotNull=Ненулевой NotNullDesc=1=Установить для базы данных значение NOT NULL, 0=Разрешить нулевые значения, -1=Разрешить нулевые значения, принудив значение к NULL, если оно пустое ('' или 0) @@ -81,15 +86,16 @@ IsAMeasure=Это мера DirScanned=Каталог просканирован NoTrigger=Нет триггера NoWidget=Нет виджета -GoToApiExplorer=Обозреватель API +ApiExplorer=API explorer ListOfMenusEntries=Список пунктов меню ListOfDictionariesEntries=Список словарных статей ListOfPermissionsDefined=Список определенных разрешений SeeExamples=См. Примеры здесь -EnabledDesc=Условие для того, чтобы это поле было активным (Примеры: 1 или $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Поле видно? (Примеры: 0 = никогда не отображается, 1 = виден в списке и формах создания/обновления/просмотра, 2 = виден только в списке, 3 = виден только в форме создания/обновления/просмотра (не в списке), 4 = виден в списке и только форма обновления/просмотра (не создание), 5 = Видна только в форме просмотра конца списка (не создание, не обновление).

    Использование отрицательного значения означает, что поле не отображается по умолчанию в списке, но может быть выбрано для просмотра).

    Это может быть выражение, например:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Отобразите это поле в совместимых PDF-документах, вы можете управлять положением с помощью поля «Position».
    В настоящее время известны совместимые модели PDF: эратостен (заказ), эспадон (доставка), губка (счета), голубой (комерческое предложение/котировка), кукуруза (заказ поставщика). = дисплей
    2 = отображать только если не пустой

    Для строк документа:
    0 = не отображается
    1 = отображается в столбце
    3 = дисплея в описании линии колонки после описания
    4 = дисплея в описании столбца после того, описание только если не пусто -DisplayOnPdf=Показать в PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Можно ли суммировать значение поля, чтобы получить итог в списке? (Примеры: 1 или 0) SearchAllDesc=Используется ли это поле для поиска из инструмента быстрого поиска? (Примеры: 1 или 0) SpecDefDesc=Введите сюда всю документацию, которую вы хотите предоставить с вашим модулем, которая еще не определена на других вкладках. Вы можете использовать .md или лучше, богатый синтаксис .asciidoc. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Используйте конкретный URL-адре UseSpecificFamily = Используйте конкретную семью UseSpecificAuthor = Использовать конкретного автора UseSpecificVersion = Используйте конкретную начальную версию -IncludeRefGeneration=Ссылка на объект должна генерироваться автоматически по пользовательским правилам нумерации. +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Установите этот флажок, если вы хотите включить код для автоматического управления созданием ссылки с использованием пользовательских правил нумерации. -IncludeDocGeneration=Я хочу сгенерировать некоторые документы из шаблонов для объекта +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Если вы установите этот флажок, будет сгенерирован некоторый код для добавления поля «Создать документ» в запись. -ShowOnCombobox=Показать значение в поле со списком +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Ключ для подсказки CSSClass=CSS для редактирования / создания формы CSSViewClass=CSS для формы чтения CSSListClass=CSS для списка NotEditable=Не редактируется ForeignKey=Иностранный ключ -TypeOfFieldsHelp=Тип полей:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' означает, что мы добавляем кнопку + после комбо для создания записи. +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Конвертер ascii в HTML AsciiToPdfConverter=Конвертер ascii в PDF TableNotEmptyDropCanceled=Таблица не пустая. Дроп отменен. ModuleBuilderNotAllowed=Конструктор модулей доступен, но не разрешен для вашего пользователя. ImportExportProfiles=Импорт и экспорт профилей -ValidateModBuilderDesc=Установите это значение в 1, если вы хотите, чтобы метод $this->validateField() объекта вызывался для проверки содержимого поля во время вставки или обновления. Установите 0, если проверка не требуется. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Предупреждение: База данных не обновляется автоматически, вы должны уничтожить таблицы и отключить-включить модуль для пересоздания таблиц. LinkToParentMenu=Родительское меню (fk_xxxxmenu) ListOfTabsEntries=Список вкладок TabsDefDesc=Определите здесь вкладки, предоставляемые вашим модулем TabsDefDescTooltip=Вкладки, предоставляемые вашим модулем/приложением, определены в массиве $this->tabs в файле дескриптора модуля. Вы можете редактировать этот файл вручную или использовать встроенный редактор. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/ru_RU/mrp.lang b/htdocs/langs/ru_RU/mrp.lang index 31e5bd61a0f..2c29ff203af 100644 --- a/htdocs/langs/ru_RU/mrp.lang +++ b/htdocs/langs/ru_RU/mrp.lang @@ -11,8 +11,8 @@ Bom=Спецификации материалов BillOfMaterials=Спецификации материалов BillOfMaterialsLines=Строки спецификации материалов BOMsSetup=Настройка спецификации модуля -ListOfBOMs=Список спецификаций материалов - СМ -ListOfManufacturingOrders=Список заказов на производство +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Новая спецификация материалов ProductBOMHelp=Продукт для создания (или разборки) с этой спецификацией.
    Примечание. Продукты со свойством «Природа продукта» = «Сырье» не отображаются в этом списке. BOMsNumberingModules=Шаблоны нумерации спецификаций @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Вы уверены, что хотите клони ConfirmCloneMo=Вы действительно хотите клонировать заказ на производство %s? ManufacturingEfficiency=Эффективность производства ConsumptionEfficiency=Эффективность потребления +Consumption=Consumption ValueOfMeansLoss=Значение 0,95 означает в среднем 5%% потерь при изготовлении или разборке. ValueOfMeansLossForProductProduced=Значение 0.95 означает в среднем 5%% потерь произведенного продукта. DeleteBillOfMaterials=Удалить перечень элементов @@ -82,6 +83,7 @@ ProductsToProduce=Продукты для производства UnitCost=Себестоимость единицы продукции TotalCost=Общая стоимость BOMTotalCost=Стоимость производства этой спецификации на основе стоимости каждого количества и потребляемого продукта (используйте Себестоимость, если она определена, в противном случае - Средневзвешенную цену, если она определена, в противном случае - Лучшую закупочную цену). +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Вы должны сначала запустить производство, чтобы закрыть производственный заказ (см. Вкладку «%s»). Но вы можете отменить это. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Комплект не может быть использован в спецификации или ЗП Workstation=Рабочая станция @@ -112,3 +114,7 @@ MOAndLines=Производственные заказы и строки MoChildGenerate=Generate Child Mo ParentMo=MO Parent MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/ru_RU/oauth.lang b/htdocs/langs/ru_RU/oauth.lang index 3e8fa6c6591..01dfb704aea 100644 --- a/htdocs/langs/ru_RU/oauth.lang +++ b/htdocs/langs/ru_RU/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Токен был сгенерирован и сохранен в NewTokenStored=Токен получен и сохранен ToCheckDeleteTokenOnProvider=Щелкните здесь, чтобы проверить/удалить авторизацию, сохраненную поставщиком OAuth %s TokenDeleted=Токен удален -RequestAccess=Нажмите здесь, чтобы запросить/продлить доступ и получить новый токен для сохранения -DeleteAccess=Нажмите здесь, чтобы удалить токен +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Используйте следующий URL-адрес в качестве URI перенаправления при создании учетных данных с помощью поставщика OAuth: -ListOfSupportedOauthProviders=Введите учетные данные, предоставленные вашим поставщиком OAuth2. Здесь перечислены только поддерживаемые провайдеры OAuth2. Эти службы могут использоваться другими модулями, которым требуется аутентификация OAuth2. -OAuthSetupForLogin=Страница для создания токена OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=См. Предыдущую вкладку +OAuthProvider=OAuth provider OAuthIDSecret=Идентификатор и секрет OAuth TOKEN_REFRESH=Присутствует обновление токена TOKEN_EXPIRED=Срок действия токена истек @@ -23,10 +24,13 @@ TOKEN_DELETE=Удалить сохраненный токен OAUTH_GOOGLE_NAME=OAuth сервис Google OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Перейдите на на эту страницу затем "Учетные данные" для создания учетных данных OAuth. OAUTH_GITHUB_NAME=Сервис OAuth GitHub OAUTH_GITHUB_ID=Идентификатор OAuth GitHub OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Перейдите на на эту страницу, затем «Зарегистрируйте новое приложение», чтобы создать учетные данные OAuth. +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=Тест OAuth Stripe OAUTH_STRIPE_LIVE_NAME=OAuth Stripe в работе +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index a085ca13383..8e2e84fe83c 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -304,3 +304,24 @@ ConfirmBtnCommonContent = Вы уверены, что хотите «%s»? ConfirmBtnCommonTitle = Подтвердите свое действие CloseDialog = Закрыть Autofill = Автозаполнение + +# externalsite +ExternalSiteSetup=Установка ссылки на внешний веб-сайт +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Модуль ВнешнийСайт не был надлежащим образом настроен. +ExampleMyMenuEntry=Пункт "Моё меню" + +# FTP +FTPClientSetup=Настройка модуля FTP или SFTP-клиента +NewFTPClient=Настройка нового соединения FTP/FTPS +FTPArea=Область FTP/FTPS +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Не удалось войти на сервер с определенным логином/паролем +FTPFailedToRemoveFile=Не удалось удалить файл %s. +FTPFailedToRemoveDir=Не удалось удалить каталог %s: проверьте разрешения и убедитесь, что каталог пуст. +FTPPassiveMode=Пассивный режим +ChooseAFTPEntryIntoMenu=Выберите сайт FTP/SFTP в меню ... +FailedToGetFile=Не удалось получить файлы %s diff --git a/htdocs/langs/ru_RU/products.lang b/htdocs/langs/ru_RU/products.lang index 978c92b0201..5da06f86f2b 100644 --- a/htdocs/langs/ru_RU/products.lang +++ b/htdocs/langs/ru_RU/products.lang @@ -262,7 +262,7 @@ Quarter1=I квартал Quarter2=II квартал Quarter3=III квартал Quarter4=IV квартал -BarCodePrintsheet=Распечатать штрих-код +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=С помощью этого инструмента вы можете распечатать листы наклеек со штрих-кодом. Выберите формат страницы с наклейками, тип штрих-кода и значение штрих-кода, затем нажмите кнопку %s . NumberOfStickers=Количество стикеров для печати на странице PrintsheetForOneBarCode=Печатать несколько стикеров для одного штрих-кода @@ -345,7 +345,7 @@ PossibleValues=Возможные значения GoOnMenuToCreateVairants=Перейдите в меню %s - %s, чтобы подготовить варианты атрибутов (например, цвета, размер, ...) UseProductFournDesc=Добавьте функцию для определения описания продукта, определенного поставщиками (для каждой ссылки поставщика) в дополнение к описанию для клиентов ProductSupplierDescription=Описание продавца продукта -UseProductSupplierPackaging=Использовать упаковку по ценам поставщика (пересчитать количества в соответствии с упаковкой, указанной в цене поставщика, при добавлении / обновлении строки в документах поставщика) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Упаковка PackagingForThisProductDesc=Вы автоматически приобретете кратное этому количеству. QtyRecalculatedWithPackaging=Количество линии пересчитано в соответствии с упаковкой поставщика. @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Действие доступно тольк ProductsPricePerCustomer=Цены на продукцию для каждого покупателя ProductSupplierExtraFields=Дополнительные атрибуты (цены поставщиков) DeleteLinkedProduct=Удалить дочерний продукт, связанный с комбинацией -AmountUsedToUpdateWAP=Сумма, используемая для обновления средневзвешенной цены +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Средневзвешенная цена PMPValueShort=СВЦ mandatoryperiod=Обязательные периоды @@ -416,6 +416,7 @@ ProductsMergeSuccess=Продукты были объединены ErrorsProductsMerge=Ошибки в объединении продуктов SwitchOnSaleStatus=Включить статус продажи SwitchOnPurchaseStatus=Включить статус покупки +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Дополнительные поля (стоковое движение) InventoryExtraFields= Дополнительные поля (инвентарь) ScanOrTypeOrCopyPasteYourBarCodes=Отсканируйте или введите или скопируйте/вставьте свои штрих-коды @@ -427,3 +428,4 @@ RealValuation=Реальная оценка ConfirmEditExtrafield = Выберите дополнительное поле, которое вы хотите изменить ConfirmEditExtrafieldQuestion = Вы уверены, что хотите изменить это дополнительное поле? ModifyValueExtrafields = Изменить значение дополнительного поля +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/ru_RU/projects.lang b/htdocs/langs/ru_RU/projects.lang index 4004bc049eb..5497dbb31df 100644 --- a/htdocs/langs/ru_RU/projects.lang +++ b/htdocs/langs/ru_RU/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Эта точка зрения представляет всех TasksDesc=Эта точка зрения представляет всех проектов и задач (разрешений пользователей предоставить вам разрешение для просмотра всего). AllTaskVisibleButEditIfYouAreAssigned=Все задачи для квалифицированных проектов видны, но вы можете ввести время только для задачи, назначенной выбранному пользователю. Назначьте задачу, если вам нужно ввести на нее время. OnlyYourTaskAreVisible=Видны только назначенные вам задачи. Если вам нужно ввести время для задачи, и если задача не отображается здесь, то вам необходимо назначить задачу себе. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Задачи проектов ProjectCategories=Теги/категории проекта NewProject=Новый проект @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Ведет количество откры OpportunitiesStatusForProjects=Ведет количество проектов по статусу ShowProject=Показать проекта ShowTask=Показать задачу +SetThirdParty=Set third party SetProject=Комплекс проектов +OutOfProject=Out of project NoProject=Нет проекта определена NbOfProjects=Количество проектов NbOfTasks=Кол-во задач @@ -122,7 +125,8 @@ ValidateProject=Проверка Projet ConfirmValidateProject=Вы уверены, что хотите проверить этот проект? CloseAProject=Закрыть проект ConfirmCloseAProject=Вы уверены, что хотите закрыть этот проект? -AlsoCloseAProject=Также закройте проект (оставьте его открытым, если вам все еще нужно выполнять производственные задачи по нему) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Открытый проект ConfirmReOpenAProject=Вы уверены, что хотите снова открыть этот проект? ProjectContact=Контакты проекта @@ -165,7 +169,7 @@ OpportunityProbability=Вероятность опережения OpportunityProbabilityShort=Ведите пробаб. OpportunityAmount=Сумма лида OpportunityAmountShort=Сумма лида -OpportunityWeightedAmount=Взвешенная сумма возможности +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Опп. взвешенная сумма OpportunityAmountAverageShort=Средняя сумма лида OpportunityAmountWeigthedShort=Взвешенная сумма лида @@ -238,7 +242,7 @@ OppStatusPENDING=В ожидании OppStatusWON=Победил OppStatusLOST=Потерянный Budget=Бюджет -AllowToLinkFromOtherCompany=Разрешить связывать проект от другой компании

    Поддерживаемые значения:
    - Оставить пустым: можно связать любой проект компании (по умолчанию)
    - «все»: можно связывать любые проекты, даже проекты других компаний
    - Список сторонних идентификаторов, разделенных запятыми: может связывать все проекты этих сторонних разработчиков (пример: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Последние проекты %s LatestModifiedProjects=Последние измененные проекты %s OtherFilteredTasks=Другие отфильтрованные задачи @@ -259,7 +263,7 @@ TimeSpentInvoiced=Время, затраченное на оплату TimeSpentForIntervention=Время, затраченное на посредничество TimeSpentForInvoice=Время, проведенное OneLinePerUser=Одна строка на пользователя -ServiceToUseOnLines=Сервис для использования на линиях +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Счет-фактура %s была создана на основе времени, потраченного на проект InterventionGeneratedFromTimeSpent=Посредничество %s было создано из времени, потраченного на проект ProjectBillTimeDescription=Проверьте, вводите ли вы расписание для задач проекта И планируете ли вы генерировать счет (-а) из расписания, чтобы выставить счет клиенту проекта (не проверяйте, планируете ли вы создавать счет, который не основан на введенных расписаниях). Примечание. Чтобы создать счет, перейдите на вкладку «Затраченное время» проекта и выберите строки для включения. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Прибыль рассчитывается с испол AddPersonToTask=Добавляйте также в задачи UsageOrganizeEvent=Использование: Организация мероприятий PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Классифицируйте проект как закрытый, когда все его задачи будут выполнены (прогресс 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Примечание: существующие проекты со всеми задачами на 100%% не будут затронуты: вам придется закрыть их вручную. Этот параметр влияет только на открытые проекты. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Выберите строки затраченного времени, за которые не выставлены счета, затем выполните массовое действие "Сгенерировать счет-фактуру", чтобы выставить их. ProjectTasksWithoutTimeSpent=Задачи проекта без затрат времени FormForNewLeadDesc=Спасибо, заполните следующую форму, чтобы связаться с нами. Вы также можете отправить нам электронное письмо прямо на адрес %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Включить общедоступную форму дл NewLeadbyWeb=Ваше сообщение или запрос записаны. Мы ответим или свяжемся с вами в ближайшее время. NewLeadForm=Новая контактная форма LeadFromPublicForm=Лид онлайн из публичной формы +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/ru_RU/propal.lang b/htdocs/langs/ru_RU/propal.lang index ca06e8b891f..6608ec50b32 100644 --- a/htdocs/langs/ru_RU/propal.lang +++ b/htdocs/langs/ru_RU/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Наличие задержки SetAvailability=Задержка устанавливается доступность AfterOrder=после заказа OtherProposals=Другие предложения + ##### Availability ##### AvailabilityTypeAV_NOW=Немедленный AvailabilityTypeAV_1W=1 неделя AvailabilityTypeAV_2W=2 недели AvailabilityTypeAV_3W=3 недели AvailabilityTypeAV_1M=1 месяц -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Представитель следующие меры предложение TypeContact_propal_external_BILLING=свяжитесь со счета TypeContact_propal_external_CUSTOMER=Абонентский отдел следующие меры предложение TypeContact_propal_external_SHIPPING=Контактное лицо для доставки + # Document models -DocModelAzurDescription=Полная модель предложения (старая реализация шаблона Cyan) -DocModelCyanDescription=Полная модель предложения -DefaultModelPropalCreate=Создание модели по умолчанию -DefaultModelPropalToBill=Шаблон по умолчанию, когда закрывается коммерческое предложение (для создания счёта) -DefaultModelPropalClosed=Шаблон по умолчанию, когда закрывается коммерческое предложение (не оплаченное) -ProposalCustomerSignature=Письменное подтверждение, печать компании, дата и подпись -ProposalsStatisticsSuppliers=Статистика предложений поставщиков -CaseFollowedBy=Дело, за которым следует -SignedOnly=Только подписано -NoSign=Набор не подписан -NoSigned=набор не подписан CantBeNoSign=нельзя установить не подписанным +CaseFollowedBy=Дело, за которым следует ConfirmMassNoSignature=Массовое не подписанное подтверждение ConfirmMassNoSignatureQuestion=Вы уверены, что хотите установить неподписанные выбранные записи? -IsNotADraft=это не черновик -PassedInOpenStatus=был подтвержден -Sign=Подписать -Signed=подписал -ConfirmMassValidation=Массовое подтверждение подтверждения ConfirmMassSignature=Массовое подтверждение подписи -ConfirmMassValidationQuestion=Вы уверены, что хотите проверить выбранные записи? ConfirmMassSignatureQuestion=Вы уверены, что хотите подписать выбранные записи? -IdProposal=ID предложения +ConfirmMassValidation=Массовое подтверждение подтверждения +ConfirmMassValidationQuestion=Вы уверены, что хотите проверить выбранные записи? +ConfirmRefusePropal=Вы уверены, что хотите отказаться от этого коммерческого предложения? +ContractSigned=Contract signed +DefaultModelPropalClosed=Шаблон по умолчанию, когда закрывается коммерческое предложение (не оплаченное) +DefaultModelPropalCreate=Создание модели по умолчанию +DefaultModelPropalToBill=Шаблон по умолчанию, когда закрывается коммерческое предложение (для создания счёта) +DocModelAzurDescription=Полная модель предложения (старая реализация шаблона Cyan) +DocModelCyanDescription=Полная модель предложения +FichinterSigned=Intervention signed IdProduct=идантификационный номер продукта +IdProposal=ID предложения +IsNotADraft=это не черновик LineBuyPriceHT=Цена покупки Сумма без налога для строки -SignPropal=Принять предложение +NoSign=Отказать +NoSigned=набор не подписан +PassedInOpenStatus=был подтвержден +PropalAlreadyRefused=Предложение уже отклонено +PropalAlreadySigned=Предложение уже принято +PropalRefused=Предложение отклонено +PropalSigned=Предложение принято +ProposalCustomerSignature=Письменное подтверждение, печать компании, дата и подпись +ProposalsStatisticsSuppliers=Статистика предложений поставщиков RefusePropal=Отказаться от предложения Sign=Подписать -NoSign=Набор не подписан -PropalAlreadySigned=Предложение уже принято -PropalAlreadyRefused=Предложение уже отклонено -PropalSigned=Предложение принято -PropalRefused=Предложение отклонено -ConfirmRefusePropal=Вы уверены, что хотите отказаться от этого коммерческого предложения? +SignContract=Стандарт +SignFichinter=Sign intervention +SignPropal=Принять предложение +Signed=подписал +SignedOnly=Только подписано diff --git a/htdocs/langs/ru_RU/recruitment.lang b/htdocs/langs/ru_RU/recruitment.lang index 5d322684bfb..e0cad442ebc 100644 --- a/htdocs/langs/ru_RU/recruitment.lang +++ b/htdocs/langs/ru_RU/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Написать рекрутеру ToUseAGenericEmail=Чтобы использовать общий адрес электронной почты. Если не определено, будет использоваться адрес электронной почты ответственного за набор персонала. NewCandidature=Новое приложение ListOfCandidatures=Список приложений -RequestedRemuneration=Запрошенное вознаграждение -ProposedRemuneration=Предлагаемое вознаграждение +Remuneration=Зарплата +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Предлагаемый контракт ContractSigned=Контракт подписан ContractRefused=Контракт отклонен RecruitmentCandidature=Заявление JobPositions=Вакансии RecruitmentCandidatures=Приложения -InterviewToDo=Интервью делать +InterviewToDo=Contacts to follow AnswerCandidature=Ответ приложения YourCandidature=Ваше приложение YourCandidatureAnswerMessage=Спасибо за заявку.
    ... diff --git a/htdocs/langs/ru_RU/salaries.lang b/htdocs/langs/ru_RU/salaries.lang index f5f8bd29d32..51ae2d24ca2 100644 --- a/htdocs/langs/ru_RU/salaries.lang +++ b/htdocs/langs/ru_RU/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Учет используется для пользователей контрагентов -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Выделенный бухгалтерский счет, указанный в карточке пользователя, будет использоваться только для учета во вспомогательной книги. Этот будет использоваться для Главной книги и в качестве значения по умолчанию для учета вспомогательной книги, если выделенная пользовательский бухгалтерский счет для пользователя не определен. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Бухгалтерский счет по умолчанию для выплат заработной платы CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=По умолчанию оставьте пустым параметр «Автоматически создавать общий платеж» при создании зарплаты. Salary=Зарплата @@ -24,3 +24,4 @@ SalariesStatistics=Статистика зарплаты SalariesAndPayments=Заработная плата и выплаты ConfirmDeleteSalaryPayment=Вы хотите удалить эту зарплату? FillFieldFirst=Сначала заполните поле сотрудника +UpdateAmountWithLastSalary=Установить сумму с последней зарплатой diff --git a/htdocs/langs/ru_RU/stocks.lang b/htdocs/langs/ru_RU/stocks.lang index c250066f9e3..7c312bebafc 100644 --- a/htdocs/langs/ru_RU/stocks.lang +++ b/htdocs/langs/ru_RU/stocks.lang @@ -265,6 +265,7 @@ ProductBarcodeDoesNotExist=Продукт со штрих-кодом не сущ WarehouseId=ID склада WarehouseRef=Ссылка на склад SaveQtyFirst=Сначала сохраните реальные инвентаризационные количества, прежде чем запрашивать создание движения запасов. +ToStart=Главная InventoryStartedShort=Начаты ErrorOnElementsInventory=Операция отменена по следующей причине: ErrorCantFindCodeInInventory=Не могу найти следующий код в инвентаре @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=Успех !! Количество было до StockChangeDisabled=Изменение на складе отключено NoWarehouseDefinedForTerminal=Для терминала не определен склад ClearQtys=Очистить все количества +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Настройки +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/ru_RU/ticket.lang b/htdocs/langs/ru_RU/ticket.lang index 3762a91f605..2f50e52ba40 100644 --- a/htdocs/langs/ru_RU/ticket.lang +++ b/htdocs/langs/ru_RU/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Удалить тикеты Permission56004=Управлять тикетами Permission56005=Просмотр тикетов всех третьих лиц (не действует для внешних пользователей, всегда ограничивается третьей стороной, от которой они зависят) +Tickets=Тикеты TicketDictType=Тикет - Типы TicketDictCategory=Тикет - Группы TicketDictSeverity=Тикет - Степени серьезности @@ -90,8 +91,8 @@ TicketPublicAccess=Публичный интерфейс, не требующи TicketSetupDictionaries=Тип тикета, серьезность и аналитические коды настраиваются из словарей. TicketParamModule=Настройка переменных модуля TicketParamMail=Настройка электронной почты -TicketEmailNotificationFrom=Электронная почта отправителя для ответов на тикет -TicketEmailNotificationFromHelp=Электронная почта отправителя для ответов на запросы, отправленных из Долибарра +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Уведомить о создании заявки на этот адрес электронной почты TicketEmailNotificationToHelp=Если он присутствует, этот адрес электронной почты будет уведомлен о создании заявки. TicketNewEmailBodyLabel=Текстовое сообщение, отправленное после создания тикета @@ -149,6 +150,8 @@ TicketsAutoNotifyCloseHelp=При закрытии тикета вам буде TicketWrongContact=Предоставленный контакт не является частью текущих контактов заявки. Электронная почта не отправлена. TicketChooseProductCategory=Категория продукта для тикет-поддержки TicketChooseProductCategoryHelp=Выберите категорию продукта поддержки билетов. Это будет использоваться для автоматической привязки контракта к тикету. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -192,8 +195,7 @@ TicketAssigned=Тикет назначен TicketChangeType=Изменить тип TicketChangeCategory=Изменить аналитический код TicketChangeSeverity=Изменить серьезность -TicketAddMessage=Добавить сообщение -AddMessage=Добавить сообщение +TicketAddMessage=Add private message MessageSuccessfullyAdded=Тикет добавлен TicketMessageSuccessfullyAdded=Сообщение успешно добавлено TicketMessagesList=Список сообщений @@ -204,8 +206,8 @@ TicketSeverity=Строгость ShowTicket=Посмотреть тикет RelatedTickets=Связанные тикеты TicketAddIntervention=СОздать посредничество -CloseTicket=Закрыть|Решить тикет -AbandonTicket=Отказаться от тикета +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Закрыть|Решить тикет ConfirmCloseAticket=Подтвердить закрытие тикета ConfirmAbandonTicket=Подтверждаете ли вы закрытие тикета до статуса "Заброшенный" @@ -219,18 +221,17 @@ SendMessageByEmail=Отправить сообщение по электронн TicketNewMessage=Новое сообщение ErrorMailRecipientIsEmptyForSendTicketMessage=Получатель пуст. Электронная почта не отправляется TicketGoIntoContactTab=Пожалуйста, перейдите на вкладку «Контакты», чтобы выбрать их. -TicketMessageMailIntro=Вступление +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Этот текст добавляется только в начале письма и не сохраняется. -TicketMessageMailIntroLabelAdmin=Вводный текст ко всем ответам на билеты TicketMessageMailIntroText=Здравствуйте,
    В заявку, на которую вы подписаны, добавлен новый ответ. Вот сообщение:
    TicketMessageMailIntroHelpAdmin=Этот текст будет вставлен перед ответом при ответе на тикет от Долибарра. -TicketMessageMailSignature=Подпись -TicketMessageMailSignatureHelp=Этот текст добавляется только в конце письма и не сохраняется. -TicketMessageMailSignatureText=Сообщение отправлено %s через Долибарр -TicketMessageMailSignatureLabelAdmin=Подпись ответного электронного письма -TicketMessageMailSignatureHelpAdmin=Этот текст будет вставлен после ответного сообщения. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Только этот текст будет сохранен в списке сообщений в карточке тикета. TicketMessageSubstitutionReplacedByGenericValues=Подстановки переменных заменяются общими значениями. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Прошло время с TicketTimeToRead=Время, прошедшее до прочтения TicketTimeElapsedBeforeSince=Время, прошедшее до / с @@ -241,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=В тикете появилось н TicketAssignedToYou=Тикет назначен TicketAssignedEmailBody=Вам был присвоен тикет #%s пользователем %s MarkMessageAsPrivate=Отметить сообщение как личное +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Это сообщение не будет отображаться для внешних пользователей TicketEmailOriginIssuer=Издатель при оформлении тикетов InitialMessage=Начальное сообщение @@ -296,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Вы можете просмотреть TicketCloseEmailBodyInfosTrackUrlCustomer=Вы можете ознакомиться с историей этого билета, нажав на следующую ссылку TicketEmailPleaseDoNotReplyToThisEmail=Пожалуйста, не отвечайте на это письмо напрямую! Используйте ссылку, чтобы ответить в интерфейсе. TicketPublicInfoCreateTicket=Эта форма позволяет вам записать тикет в службу поддержки в нашей системе управления. -TicketPublicPleaseBeAccuratelyDescribe=Пожалуйста, подробно опишите проблему. Предоставьте как можно больше информации, чтобы мы могли правильно идентифицировать ваш запрос. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Пожалуйста, введите ID отслеживания тикетов TicketTrackId=Публичный ID отслеживания OneOfTicketTrackId=Один из ваших ID отслеживания diff --git a/htdocs/langs/ru_RU/users.lang b/htdocs/langs/ru_RU/users.lang index 94adab2ba55..9e824aa31b2 100644 --- a/htdocs/langs/ru_RU/users.lang +++ b/htdocs/langs/ru_RU/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Удалить из группы PasswordChangedAndSentTo=Пароль изменен и отправлен на %s. PasswordChangeRequest=Запрос на изменение пароля для %s PasswordChangeRequestSent=Запрос на изменение пароля для %s отправлен на %s. -IfLoginExistPasswordRequestSent=Если этот логин является действующей учетной записью, было отправлено электронное письмо для сброса пароля. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Если это адрес электронной почты действующей учетной записи, было отправлено электронное письмо для сброса пароля. ConfirmPasswordReset=Подтвердите сброс пароля MenuUsersAndGroups=Пользователи и Группы @@ -68,7 +68,6 @@ CreateDolibarrLogin=Создать аккаунт Dolibarr CreateDolibarrThirdParty=Создание третьей стороной LoginAccountDisableInDolibarr=Счет-инвалидов в Dolibarr. UsePersonalValue=Использовать личные предпочтения -InternalUser=Внутренний пользователь ExportDataset_user_1=Пользователи и их свойства DomainUser=Домен пользователя %s Reactivate=Возобновить @@ -128,3 +127,5 @@ DateLastLogin=Дата последнего входа DatePreviousLogin=Дата предыдущего входа IPLastLogin=IP последний логин IPPreviousLogin=IP предыдущий логин +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/ru_RU/website.lang b/htdocs/langs/ru_RU/website.lang index 5b55dfa0545..838ef8bfdee 100644 --- a/htdocs/langs/ru_RU/website.lang +++ b/htdocs/langs/ru_RU/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Код +WebsiteName=Name of the website WebsiteSetupDesc=Создайте здесь веб-сайты, которые вы хотите использовать. Затем перейдите в меню «Сайты», чтобы отредактировать их. DeleteWebsite=Удалить сайт ConfirmDeleteWebsite=Вы уверены, что хотите удалить этот веб-сайт? Все его страницы и контент также будут удалены. Загруженные файлы (например, в каталог medias, модуль ECM, ...) останутся. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Добавление внизу заголовка HTML (о WEBSITE_ROBOT=Файл робота (robots.txt) WEBSITE_HTACCESS=Файл .htaccess веб-сайта WEBSITE_MANIFEST_JSON=Файл manifest.json веб-сайта -WEBSITE_README=README.md файл WEBSITE_KEYWORDSDesc=Используйте запятую для разделения значений -EnterHereLicenseInformation=Введите здесь метаданные или информацию о лицензии, чтобы заполнить файл README.md. если вы распространяете свой сайт в виде шаблона, файл будет включен в пакет temptate. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Заголовок HTML (только для этой страницы) PageNameAliasHelp=Имя или псевдоним страницы.
    Этот псевдоним также используется для подделки URL-адреса SEO, когда веб-сайт запускается с виртуального хоста веб-сервера (например, Apacke, Nginx, ...). Используйте кнопку «%s», чтобы изменить этот псевдоним. EditTheWebSiteForACommonHeader=Примечание. Если вы хотите определить персонализированный заголовок для всех страниц, отредактируйте заголовок на уровне сайта, а не на странице / контейнере. @@ -42,10 +43,12 @@ ViewPageInNewTab=Просмотреть страницу в новой вкла SetAsHomePage=Установить в качестве домашней страницы RealURL=Реальный URL ViewWebsiteInProduction=Просмотр веб-сайта с использованием домашних URL-адресов +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Использовать с Apache/NGinx/...
    Создайте на своем веб-сервере (Apache, Nginx, ...) выделенный виртуальный хост с включенным PHP и корневым каталогом в
    %s ExampleToUseInApacheVirtualHostConfig=Пример использования в настройке виртуального хоста Apache: YouCanAlsoTestWithPHPS=Использование со встроенным сервером PHP
    В среде разработки вы можете предпочесть протестировать сайт с помощью встроенного веб-сервера PHP (требуется PHP 5.5), запустив
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Запустите свой веб-сайт с другим провайдером хостинга Dolibarr
    Если у вас нет веб-сервера, такого как Apache или NGinx, доступного в Интернете, вы можете экспортировать и импортировать свой веб-сайт на другой экземпляр Dolibarr, предоставленный другим провайдером хостинга Dolibarr, который предоставляет полную интеграция с модулем Веб-сайт. Вы можете найти список некоторых хостинг-провайдеров Dolibarr на https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP= Запустите свой веб-сайт с помощью другого хостинг-провайдера Dolibarr. интеграция с модулем Сайт. Вы можете найти список некоторых хостинг-провайдеров Dolibarr на https://saas.dolibarr.org CheckVirtualHostPerms=Также проверьте, что у пользователя виртуального хоста (например, www-data) есть%s разрешения на файлы в
    %s ReadPerm=Читать WritePerm=Писать @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Вы можете редактировать исх YouCanEditHtmlSource=
    Вы можете включить PHP-код в этот источник, используя теги <?php ?>. Доступны следующие глобальные переменные: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Вы также можете включить содержимое другой страницы/контейнера со следующим синтаксисом:
    <?php includeContainer('alias_of_container_to_include'); ?>

    Вы можете выполнить перенаправление на другую страницу/контейнер со следующим синтаксисом (Примечание: не выводите какой-либо контент перед перенаправлением):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    Чтобы добавить ссылку на другую страницу, используйте следующий синтаксис:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    Чтобы включить ссылку для загрузки файла, хранящегося в каталоге documents, используйте оболочку document.php:
    Пример для файла в documents/ecm (необходимо зарегистрировать), синтаксис:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    Для файла в documents/medias (открытый каталог для общего доступа) синтаксис:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    Для файла, к которому предоставлен общий доступ по ссылке общего доступа (открытый доступ с использованием хеш-ключа общего доступа к файлу), синтаксис следующий:
    <a href="/document.php?hashp=publicsharekeyoffile">

    Чтобы включить изображение, хранящееся в каталоге documents, используйте оболочку viewimage.php:
    Например, для изображения в documents/medias (открытый каталог для общего доступа) синтаксис:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Для изображения, к которому предоставлен общий доступ по ссылке общего доступа (открытый доступ с использованием хеш-ключа общего доступа к файлу), синтаксис следующий:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    Дополнительные примеры HTML или динамического кода доступны на в вики-документации
    . +YouCanEditHtmlSourceMore=
    Дополнительные примеры HTML или динамического кода доступны в в вики-документации
    . ClonePage=Клонировать страницу/контейнер CloneSite=Клонировать сайт SiteAdded=Сайт добавлен @@ -137,7 +140,7 @@ PagesRegenerated=%s страниц/контейнер(ов) восстановл RegenerateWebsiteContent=Восстановить файлы кеша веб-сайта AllowedInFrames=Разрешено в кадрах DefineListOfAltLanguagesInWebsiteProperties=Определите список всех доступных языков в свойствах веб-сайта. -GenerateSitemaps=Создать файл карты сайта +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Если вы подтвердите, вы удалите существующий файл карты сайта ... ConfirmSitemapsCreation=Подтвердите создание карты сайта SitemapGenerated=Создан файл Sitemap %s @@ -145,3 +148,10 @@ ImportFavicon=Фавикон ErrorFaviconType=Фавикон должен быть в формате png. ErrorFaviconSize=Размер Favicon должен быть 16x16, 32x32 или 64x64. FaviconTooltip=Загрузите изображение в формате png (16x16, 32x32 или 64x64). +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/ru_RU/withdrawals.lang b/htdocs/langs/ru_RU/withdrawals.lang index 3c5f1a3f95d..7e09a4b2789 100644 --- a/htdocs/langs/ru_RU/withdrawals.lang +++ b/htdocs/langs/ru_RU/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Счет-фактура ожидает кр AmountToWithdraw=Сумма снятия AmountToTransfer=Сумма для перевода NoInvoiceToWithdraw=Открытых счетов на '%s' нет. Перейдите на вкладку '%s' в карточке счета, чтобы сделать запрос. -NoSupplierInvoiceToWithdraw=Счет-фактура поставщика с открытыми «прямыми запросами на кредит» не ожидает. Перейдите на вкладку '%s' в карточке счета, чтобы сделать запрос. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Ответственный пользователь WithdrawalsSetup=Настройка оплаты прямым дебетом CreditTransferSetup=Настройка кредитного перевода @@ -42,6 +42,7 @@ CreditTransferStatistics=Статистика кредитных перевод Rejects=Отказы LastWithdrawalReceipt=Последние квитанции прямого дебета %s MakeWithdrawRequest=Сделайте запрос на прямой дебетовый платеж +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Сделайте запрос на перевод кредита WithdrawRequestsDone=%s записанные запросы на платеж прямым дебетом BankTransferRequestsDone=Запросы на перевод кредита %s записаны @@ -100,8 +101,11 @@ CreditDate=Кредит на WithdrawalFileNotCapable=Невозможно создать файл квитанции о снятии средств для вашей страны %s (ваша страна не поддерживается) ShowWithdraw=Показать распоряжение о прямом дебете IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Однако, если в счете есть хотя бы одно платежное поручение по прямому дебету, которое еще не обработано, оно не будет установлено как оплаченное, чтобы обеспечить возможность предварительного управления снятием средств. -DoStandingOrdersBeforePayments=Эта вкладка позволяет вам запросить платежное поручение прямого дебета. После этого перейдите в меню Банк-> Оплата прямым дебетом, чтобы сгенерировать и управлять прямым дебетовым поручением. При закрытии поручения на прямой дебет оплата по счетам будет автоматически записана, а счета-фактуры закрываются, если остаток к оплате равен нулю. -DoCreditTransferBeforePayments=Эта вкладка позволяет вам запросить кредитный перевод. После этого перейдите в меню Банк-> Оплата кредитным переводом, чтобы создать поручение на кредитный перевод и управлять им. При закрытии поручения на перевод кредита оплата по счетам будет автоматически записана, а счета-фактуры закрываются, если остаток к оплате равен нулю. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Файл дебетового поручения CreditTransferFile=Файл кредитного перевода SetToStatusSent=Установить статус "Файл отправлен" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Невозможно создать запрос SepaMandate=Мандат прямого дебета SEPA SepaMandateShort=Мандат SEPA PleaseReturnMandate=Отправьте эту форму поручения по электронной почте на адрес %s или по почте на адрес -SEPALegalText=Подписывая эту форму поручения, вы разрешаете (A) %s направить в ваш банк инструкции по дебетованию вашего счета и (B) вашему банку дебетовать ваш счет в соответствии с инструкциями от %s. Как часть ваших прав, вы имеете право на возмещение от вашего банка в соответствии с условиями вашего соглашения с вашим банком. Ваши права в отношении вышеуказанного мандата объясняются в заявлении, которое вы можете получить в своем банке. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Идентификатор кредитора CreditorName=Имя кредитора SEPAFillForm=(B) Пожалуйста, заполните все поля, отмеченные * diff --git a/htdocs/langs/ru_RU/workflow.lang b/htdocs/langs/ru_RU/workflow.lang index db3c8d8cac9..34378bcd358 100644 --- a/htdocs/langs/ru_RU/workflow.lang +++ b/htdocs/langs/ru_RU/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Классифици descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Классифицировать связанный исходный заказ на покупку как полученный, когда прием подтвержден (и если количество, полученное всеми приемами, такое же, как в заказе на покупку для обновления) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Классифицировать связанный исходный заказ на покупку как полученный, когда прием закрыт (и если количество, полученное всеми приемами, такое же, как в заказе на покупку для обновления) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Классифицируйте приемы как "выставленные" при подтверждении связанного заказа поставщика. +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=При создании тикета свяжите доступные контракты соответствующей третьей стороны descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=При привязке договоров искать среди договоров материнских компаний @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Закройте все вмешател AutomaticCreation=Автоматическое создание AutomaticClassification=Автоматическая классификация # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Классифицировать отгрузку из связанного источника как закрытую после подтверждения счета клиента +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Автоматическое закрытие AutomaticLinking=Автоматическое связывание diff --git a/htdocs/langs/ru_UA/hrm.lang b/htdocs/langs/ru_UA/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/ru_UA/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/ru_UA/main.lang b/htdocs/langs/ru_UA/main.lang index 2e691473326..0884e5426e0 100644 --- a/htdocs/langs/ru_UA/main.lang +++ b/htdocs/langs/ru_UA/main.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -FONTFORPDF=helvetica +FONTFORPDF=freemono FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, diff --git a/htdocs/langs/ru_UA/propal.lang b/htdocs/langs/ru_UA/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/ru_UA/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index a7fa4cb7af8..82c7e55e81d 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Použitie účtovného modulu sa vykonáva v niekoľkých krokoch: AccountancyAreaDescActionOnce=Nasledujúce akcie sa zvyčajne vykonávajú iba raz alebo raz za rok ... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=Nasledujúce akcie sa zvyčajne vykonávajú každý mesiac, týždeň alebo deň pre veľmi veľké spoločnosti ... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=KROK %s: Definujte účty účtov pre každú sadzbu DPH. Na to použite položku ponuky %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=KROK %s: Definovanie predvolených účtovných účtov na platbu miezd. Na to použite položku ponuky %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=KROK %s: Definujte predvolené účtovné účty pre darovanie. Na to použite položku ponuky %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=KROK %s: Definujte povinné predvolené účty a predvolené účtovné účty pre rôzne transakcie. Na to použite položku ponuky %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=KROK %s: Definujte účty účtovníctva vo vašich produktoch / službách. Na to použite položku ponuky %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Produkty účty TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Priradené k účtom CustomersVentilation=Priradenie zákazníckej faktúry SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Vytvorte novú transakciu UpdateMvts=Úprava transakcie ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Hlavná kniha BookkeepingSubAccount=Subledger AccountBalance=Stav účtu @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Zakázať priame zaznamenávanie transakcie na bankov ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Predaj denníka -ACCOUNTING_PURCHASE_JOURNAL=Zakúpte denník -ACCOUNTING_MISCELLANEOUS_JOURNAL=Rôzne denníky +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Denník výdavkov -ACCOUNTING_SOCIAL_JOURNAL=Sociálny časopis +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Sociálny časopis ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Účtovný účet čakania -DONATION_ACCOUNTINGACCOUNT=Účtovný účet na registráciu darov -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Účtovný účet štandardne pre predané produkty (použité, ak nie sú definované v produktovom liste) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Účtovný účet predvolene pre zakúpené služby (používa sa, ak nie je definovaný v služobnom liste) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Účtovný účet predvolene pre predané služby (používa sa, ak nie je definovaný v služobnom liste) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Druh dokumentu Docdate=dátum @@ -210,7 +217,7 @@ Codejournal=časopis JournalLabel=Journal label NumPiece=Číslo kusu TransactionNumShort=Num. transakcie -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Do roku NotMatch=Nenastavené -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Rok na zmazanie DelJournal=Žurnále na zmazanie -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finančný časopis ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finančný denník vrátane všetkých druhov platieb prostredníctvom bankového účtu @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Celkový obrat pred zdanením TotalMarge=Celkové predajné rozpätie -DescVentilCustomer=Pozrite sa na zoznam zákazníckych faktúr, ktoré sú viazané (alebo nie) na účet účtovania produktu -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Pozrite si zoznam riadkov zákazníkov faktúr a ich účet účtovania produktov -DescVentilTodoCustomer=Uviazať linky faktúr, ktoré ešte nie sú viazané účtom účtovania produktu -ChangeAccount=Zmeniť účtovný účet produktu / služby pre vybrané riadky s týmto účtovným účtom: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Priradzovať automaticky AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Chyba, nemôžete odstrániť tento účtovný účet, pretože sa používa -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Viazacia karta GeneralLedgerIsWritten=Transakcie sú zapísané v knihe GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=Zoznam produktov, ktoré nie sú viazané na žiadny účtovný účet +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Zmeňte väzbu Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Nezlúčené -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Predaje AccountingJournalType3=Platby AccountingJournalType4=Banka -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Vzor exportu @@ -394,6 +406,26 @@ Range=Rozsah účtovného účtu Calculated=Vypočítané Formula=Vzorec +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=Pre krajinu %s nie je k dispozícii žiadna skupina účtovných účtov (pozri Domovská stránka - Nastavenie - slovníky) @@ -406,6 +438,10 @@ Binded=Viazané čiary ToBind=Linky na viazanie UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index d3dede4828a..d1dd653d380 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=Ďalšie hodnota (náhrady) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Poznámka: No limit je nastavený v konfigurácii PHP MaxSizeForUploadedFiles=Maximálna veľkosť nahraných súborov (0, aby tak zabránil akejkoľvek odosielanie) -UseCaptchaCode=Pomocou grafického kód (CAPTCHA) na prihlasovacej stránke +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Úplná cesta k antivírusovej príkazu AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Ďalšie parametre príkazového riadka @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Masové načítanie čiarových kódov alebo reset pre produkty alebo služby CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Načítať hodnotu pre %s prázdne hodnoty +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Zmazať aktuálne hodnoty čiarových kódov ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=Hodnoty čiarových kódov boli zmazané @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -714,6 +714,7 @@ Permission27=Odstránenie obchodných návrhov Permission28=Export obchodných návrhov Permission31=Prečítajte si produkty Permission32=Vytvoriť / upraviť produktov +Permission33=Read prices products Permission34=Odstrániť produkty Permission36=Pozri / správa skryté produkty Permission38=Export produktov @@ -739,6 +740,7 @@ Permission79=Vytvoriť / upraviť predplatné Permission81=Prečítajte objednávky odberateľov Permission82=Vytvoriť / upraviť zákazníci objednávky Permission84=Potvrdenie objednávky odberateľov +Permission85=Generate the documents sales orders Permission86=Poslať objednávky odberateľov Permission87=Zavrieť zákazníkov objednávky Permission88=Storno objednávky odberateľov @@ -874,6 +876,7 @@ Permission525=Pôžičková kalkulačka Permission527=Exportovať pôžičku Permission531=Prečítajte služby Permission532=Vytvoriť / upraviť služby +Permission533=Read prices services Permission534=Odstrániť služby Permission536=Pozri / správa skryté služby Permission538=Export služieb @@ -1129,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=Na konci mesiaca -CurrentNext=Aktuálny/Nasledujúci +CurrentNext=A given day in month Offset=Ofset AlwaysActive=Vždy aktívny Upgrade=Vylepšiť @@ -1235,6 +1238,7 @@ BrowserName=Meno prehliadača BrowserOS=OS prehliadača ListOfSecurityEvents=Zoznam Dolibarr udalostí zabezpečenia SecurityEventsPurged=Bezpečnostnej akcie očistil +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Systémové informácie je rôzne technické informácie získate v režime iba pre čítanie a viditeľné len pre správcov. @@ -1936,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Spolupracuje so základnou témou, nemusí byť podporované externou témou BackgroundColor=Farba pozadia TopMenuBackgroundColor=Farba pozadia pre vrchné menu -TopMenuDisableImages=Skryť obrázky vo vrchnom menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Farba pozadia pre ľavé menu BackgroundTableTitleColor=Farba pozadia pre riadok s názvom BackgroundTableTitleTextColor=Text color for Table title line @@ -1977,6 +1981,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Zmluvy MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Tretie strany MailToMember=Členovia MailToUser=Užívatelia @@ -2030,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2059,9 +2065,16 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector @@ -2073,14 +2086,14 @@ DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2101,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2118,7 @@ CreateCandidature=Create job application FormatZip=Zips MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module @@ -2167,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2208,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2248,13 +2265,21 @@ TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2287,23 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/sk_SK/companies.lang b/htdocs/langs/sk_SK/companies.lang index 460a62fe32e..29fe6611cf5 100644 --- a/htdocs/langs/sk_SK/companies.lang +++ b/htdocs/langs/sk_SK/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Adresa State=Štát / Provincia +StateId=State ID StateCode=State/Province code StateShort=State Region=Kraj Region-State=Region - State Country=Krajina CountryCode=Kód krajiny -CountryId=Krajina id +CountryId=Country ID Phone=Telefón PhoneShort=Telefón Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Ostatné ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) diff --git a/htdocs/langs/sk_SK/compta.lang b/htdocs/langs/sk_SK/compta.lang index 00f5ab4b5e8..dc890e8e00a 100644 --- a/htdocs/langs/sk_SK/compta.lang +++ b/htdocs/langs/sk_SK/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Zostatok Debit=Debet Credit=Úver +AccountingDebit=Debet +AccountingCredit=Úver Piece=Accounting Doc. AmountHTVATRealReceived=Net zhromaždený AmountHTVATRealPaid=Čisté platené @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Režim %sVAT na záväzky accounting%s. CalcModeVATEngagement=Režim %sVAT z príjmov-expense%sS. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Výpočet režim AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/sk_SK/contracts.lang b/htdocs/langs/sk_SK/contracts.lang index e9fdcee58b9..9ebead42334 100644 --- a/htdocs/langs/sk_SK/contracts.lang +++ b/htdocs/langs/sk_SK/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Zmluvy/Predplatné ContractsAndLine=Zmluvy a riadky zmlúv Contract=Zmluva ContractLine=Riadok zmluvy +ContractLines=Contract lines Closing=Zatváranie NoContracts=Žiadne zmluvy MenuServices=Služby @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Presuňte službu do inej zmluve. ConfirmMoveToAnotherContract=Vybral som novú cieľovú zmluvy, a potvrdzujem, že chcete presunúť túto službu do tohto zmluvného vzťahu. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Obnoviť zmluvu línia (číslo %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Dátum spotreby NoExpiredServices=Žiadne skončila aktívnej služby ListOfServicesToExpireWithDuration=Zoznam služieb, ktoré vyprší v %s dní @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Podpísanie kontraktu kontakt so záka HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/sk_SK/datapolicy.lang b/htdocs/langs/sk_SK/datapolicy.lang new file mode 100644 index 00000000000..46cdc96c440 --- /dev/null +++ b/htdocs/langs/sk_SK/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Zákazník +DATAPOLICY_TIERS_PROSPECT = Vyhliadka +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dodávateľ +DATAPOLICY_CONTACT_CLIENT = Zákazník +DATAPOLICY_CONTACT_PROSPECT = Vyhliadka +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dodávateľ +DATAPOLICY_ADHERENT = Člen +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/sk_SK/dict.lang b/htdocs/langs/sk_SK/dict.lang index 5a13b6e92b7..5815760999b 100644 --- a/htdocs/langs/sk_SK/dict.lang +++ b/htdocs/langs/sk_SK/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holandsko CountryHU=Maďarsko CountryRU=Rusko CountrySE=Švédsko -CountryCI=Ivoire pobrežia +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentína CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Svätý Martin ##### Civilities ##### CivilityMME=Pani +CivilityMMEShort=Pani CivilityMR=Pán +CivilityMRShort=Pán CivilityMLE=Pani CivilityMTRE=Majster CivilityDR=Lekár diff --git a/htdocs/langs/sk_SK/ecm.lang b/htdocs/langs/sk_SK/ecm.lang index 3060979f85e..48db2d06898 100644 --- a/htdocs/langs/sk_SK/ecm.lang +++ b/htdocs/langs/sk_SK/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ručné Directory ECMSectionAuto=Automatické adresár ECMSectionsManual=Ručné strom ECMSectionsAuto=Automatické strom +ECMSectionsMedias=Medias tree ECMSections=Adresára ECMRoot=ECM Root ECMNewSection=Nový adresár @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Počet súborov v podadresároch ECMCreationUser=Tvorca ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatické adresáre sú vyplnené automaticky pri pridávaní dokumentov z karty prvku.
    * Manuálne adresára možno použiť na uloženie dokladov, ktoré nie sú spojené s konkrétnou prvok. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Register %s bol vymazaný. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Vyhľadávanie podľa kľúčových slov diff --git a/htdocs/langs/sk_SK/errors.lang b/htdocs/langs/sk_SK/errors.lang index cbb983f03f0..a3f364bae15 100644 --- a/htdocs/langs/sk_SK/errors.lang +++ b/htdocs/langs/sk_SK/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/sk_SK/externalsite.lang b/htdocs/langs/sk_SK/externalsite.lang deleted file mode 100644 index 97c6ec00e38..00000000000 --- a/htdocs/langs/sk_SK/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Nastavenie odkaz na externé webové stránky -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modul ExternalSite nebol správne nakonfigurovaný. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/sk_SK/ftp.lang b/htdocs/langs/sk_SK/ftp.lang deleted file mode 100644 index 541f0eadf5b..00000000000 --- a/htdocs/langs/sk_SK/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP klient modul nastavenia -NewFTPClient=Nový FTP nastavenie pripojenia -FTPArea=FTP priestor -FTPAreaDesc=Táto obrazovka zobrazí obsah FTP servera pohľadu -SetupOfFTPClientModuleNotComplete=Nastavenie FTP klienta modulu Zdá sa, že nie je kompletná -FTPFeatureNotSupportedByYourPHP=Vaše PHP nepodporuje FTP funkcie -FailedToConnectToFTPServer=Nepodarilo sa pripojiť k FTP serveru (server %s, prístav %s) -FailedToConnectToFTPServerWithCredentials=Nepodarilo sa prihlásiť k FTP serveru s definovanou login / heslo -FTPFailedToRemoveFile=Nepodarilo sa odstrániť súbor %s. -FTPFailedToRemoveDir=Nepodarilo sa odstrániť adresár %s (Skontrolujte oprávnenia a že adresár je prázdny). -FTPPassiveMode=Pasívny režim -ChooseAFTPEntryIntoMenu=Pridajte položku FTP do menu -FailedToGetFile=Získanie súborov %s zlyhalo diff --git a/htdocs/langs/sk_SK/holiday.lang b/htdocs/langs/sk_SK/holiday.lang index 23087db2f90..0a3e5487bbd 100644 --- a/htdocs/langs/sk_SK/holiday.lang +++ b/htdocs/langs/sk_SK/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Mesačný výkaz MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Dátum začatia @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Musíte vybrať počiatočný dátum. NoDateFin=Musíte vybrať dátum ukončenia. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Dôvod UserCP=Užívateľ ErrorAddEventToUserCP=Došlo k chybe pri pridávaní výnimočnú dovolenku. AddEventToUserOkCP=Pridanie mimoriadnej dovolenky bola dokončená. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Predchádzajúci Balance NewSoldeCP=New Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Skupiny +users=Užívatelia +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/sk_SK/hrm.lang b/htdocs/langs/sk_SK/hrm.lang index 5645e5b00f9..7b44243dff1 100644 --- a/htdocs/langs/sk_SK/hrm.lang +++ b/htdocs/langs/sk_SK/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Employees @@ -20,13 +20,14 @@ Employee=Zamestnanec NewEmployee=New employee ListOfEmployees=List of employees HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Práca -Jobs=Jobs +JobPosition=Job profile +JobsPosition=Job profiles NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozícia -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,23 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels +NoDescription=No description diff --git a/htdocs/langs/sk_SK/install.lang b/htdocs/langs/sk_SK/install.lang index 85e51d132e3..06f2fbed1cf 100644 --- a/htdocs/langs/sk_SK/install.lang +++ b/htdocs/langs/sk_SK/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Konfiguračný súbor %s je zapisovatelný. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Vaše PHP podporuje premenné POST a GET. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Vaše PHP podporuje relácie. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Možno ste zadali nesprávnu hodnotu pre parameter & ErrorFailedToCreateDatabase=Nepodarilo sa vytvoriť databázu "%s". ErrorFailedToConnectToDatabase=Nepodarilo sa pripojiť k databáze "%s". ErrorDatabaseVersionTooLow=Verzia databázy (%s) je príliš stará. Vyžaduje sa verzia %s alebo vyššia. -ErrorPHPVersionTooLow=Verzia PHP je príliš stará. Vyžaduje sa verzia %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Databáza '%s' už existuje. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Ak databáza už existuje, vráťte sa späť a zrušte začiarknutie políčka "Vytvoriť databázu". WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/sk_SK/mailmanspip.lang b/htdocs/langs/sk_SK/mailmanspip.lang index dac61ddcda2..e9747d6db25 100644 --- a/htdocs/langs/sk_SK/mailmanspip.lang +++ b/htdocs/langs/sk_SK/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Test prihlásenia na odber bol úspešne spustený MailmanDeletionSuccess=Test odhlásenia z odberu bol úspešne spustený SynchroMailManEnabled=Poštár aktualizácia bude vykonaná SynchroSpipEnabled=Aktualizácia SPIP bude vykonaná -DescADHERENT_MAILMAN_ADMINPW=Poštár heslo správcu +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Poštár heslo správcu DescADHERENT_MAILMAN_URL=URL pre poštára predplatné DescADHERENT_MAILMAN_UNSUB_URL=URL pre poštára unsubscriptions DescADHERENT_MAILMAN_LISTS=Zoznam (y) pre automatické nápis nových členov (oddelené čiarkou) diff --git a/htdocs/langs/sk_SK/mails.lang b/htdocs/langs/sk_SK/mails.lang index c43a0ba6362..70effdd7b94 100644 --- a/htdocs/langs/sk_SK/mails.lang +++ b/htdocs/langs/sk_SK/mails.lang @@ -7,10 +7,10 @@ MailCard=E-mailom kartu MailRecipients=Príjemcovia MailRecipient=Príjemca MailTitle=Popis -MailFrom=Odosielateľ +MailFrom=Z MailErrorsTo=Chyby MailReply=Odpovedať -MailTo=Prijímač (s) +MailTo=Na MailToUsers=To user(s) MailCC=Kopírovať do MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang index ee1c88d1326..ab604be551f 100644 --- a/htdocs/langs/sk_SK/main.lang +++ b/htdocs/langs/sk_SK/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=8 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=Preklad neexistuje Translation=Preklad +Translations=Translations CurrentTimeZone=Časové pásmo PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Platný Approve=Schvaľovať Disapprove=Neschváliť ReOpen=Znovu otvoriť +OpenVerb=Otvorení Upload=Upload ToLink=Odkaz Select=Vybrať @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Nie je definovaná skupina užívateľov Password=Heslo -PasswordRetype=Zadajte znovu heslo +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Všimnite si, že mnoho funkcií / modules sú zakázané v tejto ukážke. Name=Názov NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Popis DescriptionOfLine=Popis linky DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Udalosť @@ -344,7 +353,7 @@ KiloBytes=Kilobajty MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabajtov -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Akcia o tomto členovi ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s neskoro ToDo=Ak chcete Completed=Completed @@ -517,6 +527,7 @@ or=alebo Other=Ostatné Others=Ostatné OtherInformations=Other information +Workflow=Workflow Quantity=Množstvo Qty=Množstvo ChangedBy=Zmenil @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Priložené súbory a dokumenty JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Funkcia vypnutá MoveBox=Move widget Offered=Ponúkané NotEnoughPermissions=Nemáte oprávnenie pre túto akciu +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Názov relácie Method=Metóda Receive=Prijať @@ -798,6 +811,7 @@ URLPhoto=URL fotky/loga SetLinkToAnotherThirdParty=Odkaz na inej tretej osobe LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiškálny rok ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Zmluvy SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Sadzba +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interný užívateľ +ExternalUser=Externý užívateľ diff --git a/htdocs/langs/sk_SK/members.lang b/htdocs/langs/sk_SK/members.lang index e8ea6a54778..388ace2e369 100644 --- a/htdocs/langs/sk_SK/members.lang +++ b/htdocs/langs/sk_SK/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Ďalší člen (meno: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=Z bezpečnostných dôvodov musí byť udelené povolenie na úpravu, aby všetci užívatelia mohli spojiť člena užívateľa, ktorá nie je vaša. SetLinkToUser=Odkaz na užívateľovi Dolibarr SetLinkToThirdParty=Odkaz na Dolibarr tretej osobe +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Zoznam členov MembersListToValid=Zoznam návrhov členov (má byť overený) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ID člena +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Nový člen MemberType=Členské typ MemberTypeId=Členské typ id @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=Nový príspevok NewSubscriptionDesc=Táto forma umožňuje nahrávať vaše predplatné ako nový člen nadácie. Ak chcete obnoviť predplatné (ak je už člen), kontaktujte Správna rada Nadácie miesto e-mailom %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Trvanie +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Neskoro SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Obsah vašej členskú kartu # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Obrat (pre firmu), alebo rozpočet (pre nadáciu) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Prejsť na integrované on-line platobné stránky +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang index 4d1c0b2f2f7..994cd5e00c8 100644 --- a/htdocs/langs/sk_SK/other.lang +++ b/htdocs/langs/sk_SK/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Zákazník návrh overená Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Komerčné návrh zaslať poštou Notify_WITHDRAW_TRANSMIT=Prevodovka stiahnutiu Notify_WITHDRAW_CREDIT=Kreditné stiahnutiu @@ -181,6 +183,7 @@ SizeUnitfoot=noha SizeUnitpoint=bod BugTracker=Hlásenie chýb SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Späť na prihlasovaciu stránku AuthenticationDoesNotAllowSendNewPassword=Režim overovania je %s.
    V tomto režime je možné Dolibarr neviem ani zmeniť heslo.
    Obráťte sa na správcu systému, či chcete zmeniť heslo. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zavrieť Autofill = Autofill + +# externalsite +ExternalSiteSetup=Nastavenie odkaz na externé webové stránky +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Modul ExternalSite nebol správne nakonfigurovaný. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Nepodarilo sa odstrániť súbor %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Pasívny režim +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Získanie súborov %s zlyhalo +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/sk_SK/propal.lang b/htdocs/langs/sk_SK/propal.lang index 0dc291e467d..eaf577101c7 100644 --- a/htdocs/langs/sk_SK/propal.lang +++ b/htdocs/langs/sk_SK/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Žiadne návrhy riešení CopyPropalFrom=Vytvorenie obchodné návrh skopírovaním existujúceho návrhu CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Predvolené komerčné Návrh platnosť doba (v dňoch) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Určite chcete duplikovať komerčnú ponuku %s? ConfirmReOpenProp=Určite chcete znova otvoriť komerčnú ponuku %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Dostupnosť meškanie SetAvailability=Nastavte si obsadenosť meškanie AfterOrder=po objednaní OtherProposals=Ďalšie návrhy + ##### Availability ##### AvailabilityTypeAV_NOW=Bezprostredný AvailabilityTypeAV_1W=1 týždeň AvailabilityTypeAV_2W=2 týždne AvailabilityTypeAV_3W=3 týždne AvailabilityTypeAV_1M=1 mesiac -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Zástupca nasledujúce vypracovaného návrhu TypeContact_propal_external_BILLING=Zákazník faktúra kontakt TypeContact_propal_external_CUSTOMER=Kontakt so zákazníkom nasledujúce vypracovaného návrhu TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Predvolená šablóna pri zatváraní obchodnej návrh (nevyfakturované) DefaultModelPropalCreate=Predvolené model, tvorba DefaultModelPropalToBill=Predvolená šablóna pri zatváraní obchodnej návrh (bude faktúrovať) -DefaultModelPropalClosed=Predvolená šablóna pri zatváraní obchodnej návrh (nevyfakturované) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odmietnuť +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Písomná akceptácia, firemná pečiatka, dátum a podpis ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/sk_SK/recruitment.lang b/htdocs/langs/sk_SK/recruitment.lang index 1d3931dc484..cc8ccd8eae8 100644 --- a/htdocs/langs/sk_SK/recruitment.lang +++ b/htdocs/langs/sk_SK/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Mzda +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/sk_SK/stocks.lang b/htdocs/langs/sk_SK/stocks.lang index 3cf1523d363..3ae91d774ad 100644 --- a/htdocs/langs/sk_SK/stocks.lang +++ b/htdocs/langs/sk_SK/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Limit zásob pre upozornenie a optimálne požadova ProductStockWarehouseUpdated=Limit zásob pre upozornenie a optimálne požadované zásoby správne upravené ProductStockWarehouseDeleted=Limit zásob pre upozornenie a optimálne požadované zásoby správne zmazané AddNewProductStockWarehouse=Zadajte nový limit pre upozornenie a optimálne požadované zásoby -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Začiatok InventoryStartedShort=Začíname ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/sk_SK/ticket.lang b/htdocs/langs/sk_SK/ticket.lang index 50f06952d99..1527ba34cb0 100644 --- a/htdocs/langs/sk_SK/ticket.lang +++ b/htdocs/langs/sk_SK/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Vytvoriť zásah -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Podpis -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Nový užívateľ NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/sk_SK/users.lang b/htdocs/langs/sk_SK/users.lang index e26a9ce920d..6b89df8d1de 100644 --- a/htdocs/langs/sk_SK/users.lang +++ b/htdocs/langs/sk_SK/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Odstrániť zo skupiny PasswordChangedAndSentTo=Heslo bolo zmenené a poslaný do %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Žiadosť o zmenu hesla %s zaslaná %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Používatelia a skupiny @@ -68,7 +68,6 @@ CreateDolibarrLogin=Vytvoriť používateľa CreateDolibarrThirdParty=Vytvorte tretiu stranu LoginAccountDisableInDolibarr=Účet bol zakázaný v Dolibarr. UsePersonalValue=Používajte osobnú hodnotu -InternalUser=Interný užívateľ ExportDataset_user_1=Users and their properties DomainUser=Užívateľ domény %s Reactivate=Reaktivácia @@ -114,7 +113,7 @@ UserLogoff=Odhlásiť užívateľa UserLogged=Užívateľ prihlásený DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index 79530e63cc7..b49f317d976 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -2,436 +2,471 @@ Accountancy=Računovodstvo Accounting=Računovodstvo ACCOUNTING_EXPORT_SEPARATORCSV=Ločilo za stolpce za izvozno datoteko -ACCOUNTING_EXPORT_DATE=Format datuma za izvozno datoteko -ACCOUNTING_EXPORT_PIECE=Export the number of piece -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Izvozi naziv +ACCOUNTING_EXPORT_DATE=Oblika datuma za izvozno datoteko +ACCOUNTING_EXPORT_PIECE=Izvozi število kosov +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Izvozi z globalnim računom +ACCOUNTING_EXPORT_LABEL=Izvozi oznako ACCOUNTING_EXPORT_AMOUNT=Izvozi znesek ACCOUNTING_EXPORT_DEVISE=Izvozi valuto -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_FORMAT=Select the format for the file -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type +Selectformat=Izbira formata datoteke +ACCOUNTING_EXPORT_FORMAT=Izbira formata datoteke +ACCOUNTING_EXPORT_ENDLINE=Izberite vrsto vrnitve v začetek ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -ProductForThisThirdparty=Product for this thirdparty -ServiceForThisThirdparty=Service for this thirdparty -CantSuggest=Can't suggest -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=Configuration of the module accounting (double entry) -Journalization=Journalization +ThisService=Ta storitev +ThisProduct=Ta izdelek +DefaultForService=Privzeto za storitev +DefaultForProduct=Privzeto za izdelek +ProductForThisThirdparty=Izdelek za tega partnerja +ServiceForThisThirdparty=Storitev za tega partnerja +CantSuggest=Ne morem predlagati +AccountancySetupDoneFromAccountancyMenu=Večino nastavitev računovodstva izvedemo iz menija %s +ConfigAccountingExpert=Konfiguracija modula računovodstvo (dvojni vnos) +Journalization=Časopisje Journals=Revije JournalFinancial=Finančne revije BackToChartofaccounts=Prikaz kontnega plana Chartofaccounts=Kontni plan -ChartOfSubaccounts=Chart of individual accounts -ChartOfIndividualAccountsOfSubsidiaryLedger=Chart of individual accounts of the subsidiary ledger -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account -OtherInfo=Other information -DeleteCptCategory=Remove accounting account from group -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group? -JournalizationInLedgerStatus=Status of journalization -AlreadyInGeneralLedger=Already transferred to accounting journals and ledger -NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger -GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group -DetailByAccount=Show detail by account -AccountWithNonZeroValues=Accounts with non-zero values -ListOfAccounts=List of accounts -CountriesInEEC=Countries in EEC -CountriesNotInEEC=Countries not in EEC -CountriesInEECExceptMe=Countries in EEC except %s -CountriesExceptMe=All countries except %s -AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. -ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. -VueByAccountAccounting=View by accounting account -VueBySubAccountAccounting=View by accounting subaccount +ChartOfSubaccounts=Shema posameznih kontov +ChartOfIndividualAccountsOfSubsidiaryLedger=Shema posameznih kontov pomožne knjige +CurrentDedicatedAccountingAccount=Tekoči namenski račun +AssignDedicatedAccountingAccount=Nov račun za dodelitev +InvoiceLabel=Oznaka računa +OverviewOfAmountOfLinesNotBound=Pregled količine postavk, ki niso vezane na računovodski račun +OverviewOfAmountOfLinesBound=Pregled količine pozicij, ki so že vezane na računovodski račun +OtherInfo=Druge informacije +DeleteCptCategory=Odstranite računovodski račun iz skupine +ConfirmDeleteCptCategory=Ali ste prepričani, da želite ta računovodski račun odstraniti iz skupine računovodskih računov? +JournalizationInLedgerStatus=Stanje novinarstva +AlreadyInGeneralLedger=Že preneseno v knjigovodske dnevnike in glavno knjigo +NotYetInGeneralLedger=Še ni preneseno v knjigovodske dnevnike in glavno knjigo +GroupIsEmptyCheckSetup=Skupina je prazna, preverite nastavitev personalizirane računovodske skupine +DetailByAccount=Prikaži podrobnosti po računu +AccountWithNonZeroValues=Računi z vrednostmi, ki niso nič +ListOfAccounts=Seznam računov +CountriesInEEC=Države v EGS +CountriesNotInEEC=Države, ki niso v EGS +CountriesInEECExceptMe=Države v EGS razen %s +CountriesExceptMe=Vse države razen %s +AccountantFiles=Izvoz izvornih dokumentov +ExportAccountingSourceDocHelp=S tem orodjem lahko iščete in izvozite izvorne dogodke, ki se uporabljajo za ustvarjanje vašega računovodstva.
    Izvožena datoteka ZIP bo vsebovala sezname zahtevanih elementov v CSV in njihove priložene datoteke v izvirni obliki (PDF, ODT, DOCX ...). +ExportAccountingSourceDocHelp2=Če želite izvoziti svoje dnevnike, uporabite menijski vnos %s - %s. +ExportAccountingProjectHelp=Določite projekt, če potrebujete računovodsko poročilo samo za določen projekt. Poročila o stroških in plačila posojil niso vključena v projektna poročila. +VueByAccountAccounting=Ogled po računovodskem računu +VueBySubAccountAccounting=Pogled po računovodskih podkontih -MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup -MainAccountForUsersNotDefined=Main accounting account for users not defined in setup -MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup -MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +MainAccountForCustomersNotDefined=Glavni računovodski račun za stranke, ki niso definirane v nastavitvah +MainAccountForSuppliersNotDefined=Glavni računovodski račun za prodajalce, ki niso definirani v nastavitvah +MainAccountForUsersNotDefined=Glavni računovodski račun za uporabnike, ki niso definirani v nastavitvah +MainAccountForVatPaymentNotDefined=Glavni računovodski račun za plačilo DDV ni definiran v nastavitvah +MainAccountForSubscriptionPaymentNotDefined=V nastavitvah ni definiran glavni računovodski račun za plačilo naročnine +UserAccountNotDefined=Računovodski račun za uporabnika ni definiran v nastavitvah -AccountancyArea=Accounting area -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... +AccountancyArea=Računovodsko področje +AccountancyAreaDescIntro=Uporaba računovodskega modula poteka v več korakih: +AccountancyAreaDescActionOnce=Naslednja dejanja se običajno izvedejo samo enkrat ali enkrat na leto ... +AccountancyAreaDescActionOnceBis=Naslednje korake je treba storiti, da vam prihranite čas v prihodnosti, tako da vam pri prenosu podatkov v računovodstvu samodejno predlaga pravilen privzeti računovodski račun +AccountancyAreaDescActionFreq=Naslednja dejanja se običajno izvajajo vsak mesec, teden ali dan za zelo velika podjetja... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s -AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s -AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s +AccountancyAreaDescJournalSetup=KORAK %s: Preverite vsebino svojega seznama dnevnikov v meniju %s +AccountancyAreaDescChartModel=KORAK %s: Preverite, ali model kontnega načrta obstaja ali ga ustvarite v meniju %s +AccountancyAreaDescChart=KORAK %s: Izberite in|ali dokončajte svoj kontni načrt v meniju %s -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. -AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescVat=KORAK %s: Definirajte računovodske konte za posamezne stopnje DDV. Za to uporabite menijski vnos %s. +AccountancyAreaDescDefault=KORAK %s: Definirajte privzete računovodske račune. Za to uporabite menijski vnos %s. +AccountancyAreaDescExpenseReport=KORAK %s: Definirajte privzete računovodske račune za vsako vrsto poročila o stroških. Za to uporabite menijski vnos %s. +AccountancyAreaDescSal=KORAK %s: Definirajte privzete računovodske račune za izplačilo plač. Za to uporabite menijski vnos %s. +AccountancyAreaDescContrib=KORAK %s: Definirajte privzete računovodske konte za Davke (posebni stroški). Za to uporabite menijski vnos %s. +AccountancyAreaDescDonation=KORAK %s: Določite privzete računovodske račune za donacijo. Za to uporabite menijski vnos %s. +AccountancyAreaDescSubscription=KORAK %s: Definirajte privzete računovodske račune za člansko naročnino. Za to uporabite menijski vnos %s. +AccountancyAreaDescMisc=KORAK %s: Definirajte obvezni privzeti račun in privzete računovodske račune za razne transakcije. Za to uporabite menijski vnos %s. +AccountancyAreaDescLoan=KORAK %s: Določite privzete računovodske račune za posojila. Za to uporabite menijski vnos %s. +AccountancyAreaDescBank=KORAK %s: Določite računovodske račune in kodo temeljnice za vsak bančni in finančni račun. Za to uporabite menijski vnos %s. +AccountancyAreaDescProd=KORAK %s: Določite računovodske konte za vaše izdelke/storitve. Za to uporabite menijski vnos %s. -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. +AccountancyAreaDescBind=KORAK %s: Preverite, ali je povezava med obstoječimi vrsticami %s in računovodskim računom narejena, tako da bo aplikacija lahko beležila transakcije v Ledgerju z enim klikom. Dopolni manjkajoče vezave. Za to uporabite menijski vnos %s. +AccountancyAreaDescWriteRecords=KORAK %s: Zapišite transakcije v knjigo Ledger. Za to pojdite v meni %s in kliknite gumb %s . +AccountancyAreaDescAnalyze=KORAK %s: dodajte ali uredite obstoječe transakcije ter ustvarite poročila in izvoze. -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescClosePeriod=KORAK %s: Zaprite obdobje, da v prihodnje ne moremo narediti sprememb. -TheJournalCodeIsNotDefinedOnSomeBankAccount=A mandatory step in setup has not been completed (accounting code journal not defined for all bank accounts) -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load +TheJournalCodeIsNotDefinedOnSomeBankAccount=Obvezen korak pri nastavitvi ni bil dokončan (dnevnik računovodskih kod ni definiran za vse bančne račune) +Selectchartofaccounts=Izberite aktivni kontni načrt +ChangeAndLoad=Spremenite in naložite Addanaccount=Dodaj računovodskega račun AccountAccounting=Računovodstvo račun AccountAccountingShort=Račun -SubledgerAccount=Subledger account -SubledgerAccountLabel=Subledger account label -ShowAccountingAccount=Show accounting account -ShowAccountingJournal=Show accounting journal -ShowAccountingAccountInLedger=Show accounting account in ledger -ShowAccountingAccountInJournals=Show accounting account in journals -AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts +SubledgerAccount=Račun podknjižbe +SubledgerAccountLabel=Oznaka konta podknjige +ShowAccountingAccount=Pokaži računovodski račun +ShowAccountingJournal=Prikaži knjigovodski dnevnik +ShowAccountingAccountInLedger=Pokaži računovodski račun v knjigi +ShowAccountingAccountInJournals=Pokaži računovodski račun v dnevnikih +AccountAccountingSuggest=Priporočen računovodski račun +MenuDefaultAccounts=Privzeti računi MenuBankAccounts=Bančni računi -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -MenuClosureAccounts=Closure accounts -MenuAccountancyClosure=Closure -MenuAccountancyValidationMovements=Validate movements -ProductsBinding=Products accounts -TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting -Binding=Binding to accounts -CustomersVentilation=Customer invoice binding -SuppliersVentilation=Vendor invoice binding -ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +MenuVatAccounts=DDV računi +MenuTaxAccounts=Davčni računi +MenuExpenseReportAccounts=Računi poročil o stroških +MenuLoanAccounts=Posojilni računi +MenuProductsAccounts=Računi izdelkov +MenuClosureAccounts=Zapiranje računov +MenuAccountancyClosure=Zaključek +MenuAccountancyValidationMovements=Potrdite gibe +ProductsBinding=Računi izdelkov +TransferInAccounting=Prenos v računovodstvo +RegistrationInAccounting=Evidentiranje v računovodstvu +Binding=Vezava na račune +CustomersVentilation=Vezava računa stranke +SuppliersVentilation=Vezava računa dobavitelja +ExpenseReportsVentilation=Vezava stroškovnika +CreateMvts=Ustvari novo transakcijo +UpdateMvts=Sprememba transakcije +ValidTransaction=Potrdite transakcijo +WriteBookKeeping=Evidentirajte transakcije v računovodstvu Bookkeeping=Ledger -BookkeepingSubAccount=Subledger -AccountBalance=Account balance -ObjectsRef=Source object ref -CAHTF=Total purchase vendor before tax -TotalExpenseReport=Total expense report -InvoiceLines=Lines of invoices to bind -InvoiceLinesDone=Bound lines of invoices -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports -IntoAccount=Bind line with the accounting account -TotalForAccount=Total accounting account +BookkeepingSubAccount=Podknjiga +AccountBalance=Stanje na računu +ObjectsRef=Izvorni objekt ref +CAHTF=Skupni nakup pred obdavčitvijo +TotalExpenseReport=Poročilo o skupnih stroških +InvoiceLines=Vrstice računov za vezavo +InvoiceLinesDone=Vezane vrstice računov +ExpenseReportLines=Vrstice poročil o stroških za vezavo +ExpenseReportLinesDone=Vezane vrstice poročil o stroških +IntoAccount=Vezava vrstice z računovodskim računom +TotalForAccount=Skupni računovodski račun -Ventilate=Bind -LineId=Id line +Ventilate=Vezati +LineId=Id vrstica Processing=Processing -EndProcessing=Process terminated. +EndProcessing=Postopek prekinjen. SelectedLines=Izbrane vrstice -Lineofinvoice=Line računa -LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected -VentilatedinAccount=Binded successfully to the accounting account -NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account -XLineFailedToBeBinded=%s products/services were not bound to any accounting account +Lineofinvoice=Vrstica računa +LineOfExpenseReport=Poročilo o stroških +NoAccountSelected=Izbran ni noben računovodski račun +VentilatedinAccount=Uspešno vezan na računovodski račun +NotVentilatedinAccount=Ni vezano na računovodski račun +XLineSuccessfullyBinded=%s izdelki/storitve uspešno vezani na računovodski račun +XLineFailedToBeBinded=%s izdelki/storitve niso bili vezani na noben računovodski račun -ACCOUNTING_LIMIT_LIST_VENTILATION=Maximum number of lines on list and bind page (recommended: 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Največje število vrstic na strani s seznamom in vezavo (priporočeno: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Začnite razvrščati stran "Binding to do" po najnovejših elementih +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Začnite razvrščati stran "Binding done" po najnovejših elementih -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) -ACCOUNTING_LENGTH_AACCOUNT=Length of the third-party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) -ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zeros at the end of an accounting account. Needed by some countries (like Switzerland). If set to off (default), you can set the following two parameters to ask the application to add virtual zeros. -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal -ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) -ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_LENGTH_DESCRIPTION=Skrajšajte opis izdelkov in storitev v seznamih po x znakov (Najboljše = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Skrajšajte obrazec za opis računa izdelkov in storitev v seznamih po x znakov (Najboljše = 50) +ACCOUNTING_LENGTH_GACCOUNT=Dolžina splošnih računovodskih računov (če tukaj nastavite vrednost na 6, bo račun '706' na zaslonu prikazan kot '706000') +ACCOUNTING_LENGTH_AACCOUNT=Dolžina računovodskih računov partnerjev (če tukaj nastavite vrednost na 6, bo račun »401« na zaslonu prikazan kot »401000«) +ACCOUNTING_MANAGE_ZERO=Omogoča upravljanje z različnim številom ničel na koncu računovodskega računa. Potrebujejo ga nekatere države (na primer Švica). Če je nastavljeno na izklopljeno (privzeto), lahko nastavite naslednja dva parametra, da od aplikacije zahtevate dodajanje navideznih ničel. +BANK_DISABLE_DIRECT_INPUT=Onemogoči neposredno beleženje transakcije na bančnem računu +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Omogoči izvoz osnutka v dnevniku +ACCOUNTANCY_COMBO_FOR_AUX=Omogoči kombinirani seznam za podrejeni račun (morda je počasen, če imate veliko tretjih oseb, onemogočite možnost iskanja po delu vrednosti) +ACCOUNTING_DATE_START_BINDING=Določite datum začetka vezave in prenosa v računovodstvu. Pod tem datumom se transakcije ne prenesejo v računovodstvo. +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Pri prenosu knjigovodstva, katero obdobje je privzeto izbrano -ACCOUNTING_SELL_JOURNAL=Prodam revija -ACCOUNTING_PURCHASE_JOURNAL=Nakup revij -ACCOUNTING_MISCELLANEOUS_JOURNAL=Razno revija +ACCOUNTING_SELL_JOURNAL=Dnevnik prodaje (prodaje in vračila) +ACCOUNTING_PURCHASE_JOURNAL=Dnevnik nakupov (nakup in vračila) +ACCOUNTING_BANK_JOURNAL=Blagajniški dnevnik (prejemki in izdatki) ACCOUNTING_EXPENSEREPORT_JOURNAL=Pregled stroškovnih poročil +ACCOUNTING_MISCELLANEOUS_JOURNAL=Splošni dnevnik +ACCOUNTING_HAS_NEW_JOURNAL=Ima nov dnevnik +ACCOUNTING_INVENTORY_JOURNAL=Inventurni dnevnik ACCOUNTING_SOCIAL_JOURNAL=Socialna revija -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal -ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) -ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure +ACCOUNTING_RESULT_PROFIT=Računovodstvo rezultata (dobiček) +ACCOUNTING_RESULT_LOSS=Račun računovodstva rezultata (izguba) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Dnevnik zaključka -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer -TransitionalAccount=Transitional bank transfer account +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers +TransitionalAccount=Prehodni bančni račun -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Shranjevanje računa stranke kot posameznega računa v pomožni knjigi za vrstice predplačil (če je onemogočeno, bo posamezni račun za vrstice predplačil ostal prazen) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Shranite račun dobavitelja kot posamezni račun v pomožni knjigi za vrstice predplačil (če je onemogočeno, bo posamezni račun za vrstice predplačil ostal prazen) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Vrsta dokumenta Docdate=Datum Docref=Reference LabelAccount=Račun Label -LabelOperation=Label operation -Sens=Direction -AccountingDirectionHelp=For an accounting account of a customer, use Credit to record a payment you have received
    For an accounting account of a supplier, use Debit to record a payment you made -LetteringCode=Lettering code -Lettering=Lettering +LabelOperation=Delovanje etikete +Sens=Smer +AccountingDirectionHelp=Za računovodski račun stranke uporabite Kredit za evidentiranje plačila, ki ste ga prejeli
    Za računovodski račun dobavitelja uporabite Debet za evidentiranje plačila, ki ste ga opravili +LetteringCode=Koda črk +Lettering=Napis Codejournal=Revija -JournalLabel=Journal label -NumPiece=Piece number -TransactionNumShort=Num. transaction -AccountingCategory=Custom group -GroupByAccountAccounting=Group by general ledger account -GroupBySubAccountAccounting=Group by subledger account -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. -ByAccounts=By accounts -ByPredefinedAccountGroups=By predefined groups -ByPersonalizedAccountGroups=By personalized groups +JournalLabel=Oznaka dnevnika +NumPiece=Številka kosa +TransactionNumShort=št. transakcija +AccountingCategory=Custom group of accounts +GroupByAccountAccounting=Združi po kontu glavne knjige +GroupBySubAccountAccounting=Združi po kontu podknjižbe +AccountingAccountGroupsDesc=Tu lahko določite nekaj skupin računovodskih kontov. Uporabljali se bodo za personalizirana računovodska poročila. +ByAccounts=Po računih +ByPredefinedAccountGroups=Po vnaprej določenih skupinah +ByPersonalizedAccountGroups=Po prilagojenih skupinah ByYear=Po letih -NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting -DelMonth=Month to delete -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +NotMatch=Ni nastavljeno +DeleteMvt=Izbrišite nekaj vrstic iz računovodstva +DelMonth=Mesec za brisanje +DelYear=Leto za brisanje +DelJournal=Dnevnik za brisanje +ConfirmDeleteMvt=S tem boste izbrisali vse vrstice v računovodstvu za leto/mesec in/ali za določen dnevnik (zahtevan je vsaj en kriterij). Znova boste morali uporabiti funkcijo '%s', da boste izbrisani zapis vrnili v knjigo. +ConfirmDeleteMvtPartial=S tem boste transakcijo izbrisali iz računovodstva (izbrisane bodo vse vrstice, povezane z isto transakcijo) FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal +ExpenseReportsJournal=Dnevnik poročil o stroških DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Journals and Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +DescJournalOnlyBindedVisible=To je pogled evidence, ki je vezan na računovodski račun in ga je mogoče zabeležiti v dnevnike in glavno knjigo. +VATAccountNotDefined=Račun za DDV ni opredeljen +ThirdpartyAccountNotDefined=Račun za tretjo osebo ni opredeljen +ProductAccountNotDefined=Račun za izdelek ni opredeljen +FeeAccountNotDefined=Račun za provizijo ni določen +BankAccountNotDefined=Račun za banko ni določen CustomerInvoicePayment=Plačilo računa kupca -ThirdPartyAccount=Third-party account -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +ThirdPartyAccount=Račun partnerja +NewAccountingMvt=Nova transakcija +NumMvts=Število transakcij +ListeMvts=Seznam gibanj ErrorDebitCredit=Debetne in Credit ne more imeti vrednosti hkrati -AddCompteFromBK=Add accounting accounts to the group -ReportThirdParty=List third-party account -DescThirdPartyReport=Consult here the list of third-party customers and vendors and their accounting accounts +AddCompteFromBK=Dodajte računovodske račune v skupino +ReportThirdParty=Seznam računov partnerjev +DescThirdPartyReport=Tukaj si oglejte seznam kupcev in dobaviteljev ter njihove računovodske račune ListAccounts=Seznam računovodskih računov -UnknownAccountForThirdparty=Unknown third-party account. We will use %s -UnknownAccountForThirdpartyBlocking=Unknown third-party account. Blocking error -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or third party or user unknown. We will use %s -ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Third-party unknown and subledger not defined on the payment. We will keep the subledger account value empty. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledger account not defined or third party or user unknown. Blocking error. -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third-party account and waiting account not defined. Blocking error -PaymentsNotLinkedToProduct=Payment not linked to any product / service -OpeningBalance=Opening balance -ShowOpeningBalance=Show opening balance -HideOpeningBalance=Hide opening balance -ShowSubtotalByGroup=Show subtotal by level +UnknownAccountForThirdparty=Neznani račun tretje osebe. Uporabili bomo %s +UnknownAccountForThirdpartyBlocking=Neznani račun tretje osebe. Napaka pri blokiranju +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Račun podknjige ni definiran ali partner ali uporabnik ni znan. Uporabili bomo %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Neznana tretja oseba in podknjižba ni opredeljena na plačilu. Vrednost konta pomožne knjige bo ostala prazna. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Račun podknjige ni definiran ali partner ali uporabnik ni znan. Napaka pri blokiranju. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Neznani račun tretje osebe in čakajoči račun nista definirana. Napaka pri blokiranju +PaymentsNotLinkedToProduct=Plačilo ni povezano z nobenim izdelkom/storitvijo +OpeningBalance=Začetno stanje +ShowOpeningBalance=Pokaži začetno stanje +HideOpeningBalance=Skrij začetno stanje +ShowSubtotalByGroup=Prikaži vmesni seštevek po stopnjah -Pcgtype=Group of account -PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. +Pcgtype=Skupina računov +PcgtypeDesc=Skupine kontov se uporabljajo kot vnaprej določena merila 'filtra' in 'združevanja' za nekatera računovodska poročila. Na primer, 'PRIHODEK' ali 'STROŠEK' se uporabljata kot skupini za računovodske račune izdelkov za izdelavo poročila o stroških/prihodkih. -Reconcilable=Reconcilable +Reconcilable=Spravljivo -TotalVente=Total turnover before tax +TotalVente=Skupaj prihodek brez davka TotalMarge=Skupaj prodajna marža -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) -DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) +DescVentilDoneSupplier=Tukaj si oglejte seznam vrstic računov dobaviteljev in njihov računovodski račun +DescVentilTodoExpenseReport=Povežite vrstice poročila o stroških, ki še niso povezane z računom za obračunavanje provizij +DescVentilExpenseReport=Tukaj si oglejte seznam vrstic poročila o stroških, ki so vezane (ali ne) na račun za obračunavanje provizij +DescVentilExpenseReportMore=Če nastavite računovodski račun na vrstice poročila o stroških, bo aplikacija lahko naredila vse povezave med vrsticami poročila o stroških in računovodskim kontom vašega kontnega načrta, samo z enim klikom z gumbom "%s" . Če račun ni bil nastavljen v slovarju pristojbin ali če imate še vedno nekaj vrstic, ki niso vezane na noben račun, boste morali narediti ročno vezavo iz menija " %s ". +DescVentilDoneExpenseReport=Tukaj si oglejte seznam vrstic poročil o stroških in njihovih obračunskih računov za provizije -Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements -DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible +Closure=Letno zaprtje +DescClosure=Tukaj si oglejte število premikov po mesecih, ki še niso potrjeni in zaklenjeni +OverviewOfMovementsNotValidated=Pregled premikov ni preverjen in zaklenjen +AllMovementsWereRecordedAsValidated=Vsi premiki so bili zabeleženi kot potrjeni in zaklenjeni +NotAllMovementsCouldBeRecordedAsValidated=Vseh premikov ni bilo mogoče zabeležiti kot potrjenih in zaklenjenih +ValidateMovements=Preveri in zakleni premike ... +DescValidateMovements=Prepovedano je kakršno koli spreminjanje ali brisanje zapisov, črk in izbrisov. Vsi vnosi za vajo morajo biti potrjeni, sicer zapiranje ne bo mogoče -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +ValidateHistory=Samodejno vezanje +AutomaticBindingDone=Samodejne vezave opravljene (%s) - Samodejna vezava ni mogoča za nekatere zapise (%s) -ErrorAccountancyCodeIsAlreadyUse=Napaka, ne morete izbrisati to računovodsko račun, ker se uporablja -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s -Balancing=Balancing -FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the Ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding -Accounted=Accounted in ledger -NotYetAccounted=Not yet transferred to accounting -ShowTutorial=Show Tutorial -NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Gibanje ni pravilno uravnoteženo. Debet = %s & kredit = %s +Balancing=Uravnoteženje +FicheVentilation=Kartica za vezavo +GeneralLedgerIsWritten=Transakcije se zapisujejo v Knjigo +GeneralLedgerSomeRecordWasNotRecorded=Nekaterih transakcij ni bilo mogoče zabeležiti. Če ni drugega sporočila o napaki, je to verjetno zato, ker so bili že zabeleženi. +NoNewRecordSaved=Nič več zapisa za prenos +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account +ChangeBinding=Spremenite vezavo +Accounted=Obračunano v knjigi +NotYetAccounted=Še ni preneseno v računovodstvo +ShowTutorial=Prikaži vadnico +NotReconciled=Niso usklajeni +WarningRecordWithoutSubledgerAreExcluded=Opozorilo, vse vrstice brez definiranega konta pomožne knjige so filtrirane in izključene iz tega pogleda +AccountRemovedFromCurrentChartOfAccount=Računovodski račun, ki ne obstaja v veljavnem kontnem načrtu ## Admin -BindingOptions=Binding options -ApplyMassCategories=Apply mass categories -AddAccountFromBookKeepingWithNoCategories=Available account not yet in the personalized group -CategoryDeleted=Category for the accounting account has been removed -AccountingJournals=Accounting journals -AccountingJournal=Accounting journal -NewAccountingJournal=New accounting journal -ShowAccountingJournal=Show accounting journal -NatureOfJournal=Nature of Journal -AccountingJournalType1=Miscellaneous operations +BindingOptions=Možnosti vezave +ApplyMassCategories=Uporabi množične kategorije +AddAccountFromBookKeepingWithNoCategories=Razpoložljiv račun še ni v prilagojeni skupini +CategoryDeleted=Kategorija za računovodski račun je bila odstranjena +AccountingJournals=Računovodski dnevniki +AccountingJournal=Računovodski dnevnik +NewAccountingJournal=Nov računovodski dnevnik +ShowAccountingJournal=Prikaži knjigovodski dnevnik +NatureOfJournal=Narava časopisa +AccountingJournalType1=Razne operacije AccountingJournalType2=Prodaja AccountingJournalType3=Nabava AccountingJournalType4=Banka -AccountingJournalType5=Expenses report -AccountingJournalType8=Inventory -AccountingJournalType9=Has-new -ErrorAccountingJournalIsAlreadyUse=This journal is already use -AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s -NumberOfAccountancyEntries=Number of entries -NumberOfAccountancyMovements=Number of movements -ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) -ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) -ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +AccountingJournalType5=Stroškovna poročila +AccountingJournalType8=Inventar +AccountingJournalType9=Ima-novo +GenerationOfAccountingEntries=Generation of accounting entries +ErrorAccountingJournalIsAlreadyUse=Ta dnevnik je že v uporabi +AccountingAccountForSalesTaxAreDefinedInto=Opomba: Računovodski račun za prometni davek je definiran v meniju %s - %s +NumberOfAccountancyEntries=Število vnosov +NumberOfAccountancyMovements=Število gibov +ACCOUNTING_DISABLE_BINDING_ON_SALES=Onemogočanje vezave in prenosa v računovodstvu pri prodaji (računi kupcev se ne bodo upoštevali v računovodstvu) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Onemogočanje vezave in prenosa v računovodstvu pri nakupih (računi dobaviteljev se ne bodo upoštevali v računovodstvu) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Onemogoči vezavo in prenos v računovodstvu na poročilih o stroških (poročila o stroških ne bodo upoštevana v računovodstvu) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) -ConfirmExportFile=Confirmation of the generation of the accounting export file ? -ExportDraftJournal=Export draft journal +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Označi izvožene vrstice kot izvožene (če želite spremeniti vrstico, boste morali izbrisati celotno transakcijo in jo znova prenesti v računovodstvo) +NotifiedValidationDate=Potrdi in zakleni izvožene vnose (isti učinek kot funkcija "%s", spreminjanje in brisanje vrstic DEFINITIVNO ne bo mogoče) +DateValidationAndLock=Preverjanje datuma in zaklepanje +ConfirmExportFile=Potrditev generiranja računovodske izvozne datoteke? +ExportDraftJournal=Izvozi osnutek dnevnika Modelcsv=Model izvoza Selectmodelcsv=Izberite model izvoza Modelcsv_normal=Classic izvoz -Modelcsv_CEGID=Export for CEGID Expert Comptabilité -Modelcsv_COALA=Export for Sage Coala -Modelcsv_bob50=Export for Sage BOB 50 -Modelcsv_ciel=Export for Sage50, Ciel Compta or Compta Evo. (Format XIMPORT) -Modelcsv_quadratus=Export for Quadratus QuadraCompta -Modelcsv_ebp=Export for EBP -Modelcsv_cogilog=Export for Cogilog -Modelcsv_agiris=Export for Agiris Isacompta -Modelcsv_LDCompta=Export for LD Compta (v9) (Test) -Modelcsv_LDCompta10=Export for LD Compta (v10 & higher) -Modelcsv_openconcerto=Export for OpenConcerto (Test) -Modelcsv_configurable=Export CSV Configurable -Modelcsv_FEC=Export FEC -Modelcsv_FEC2=Export FEC (With dates generation writing / document reversed) -Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland -Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta -Modelcsv_Gestinumv3=Export for Gestinum (v3) -Modelcsv_Gestinumv5=Export for Gestinum (v5) -Modelcsv_charlemagne=Export for Aplim Charlemagne -ChartofaccountsId=Chart of accounts Id +Modelcsv_CEGID=Izvoz za CEGID Expert Comptabilité +Modelcsv_COALA=Izvoz za Sage Coala +Modelcsv_bob50=Izvoz za Sage BOB 50 +Modelcsv_ciel=Izvoz za Sage50, Ciel Compta ali Compta Evo. (Oblika XIMPORT) +Modelcsv_quadratus=Izvoz za Quadratus QuadraCompta +Modelcsv_ebp=Izvoz za EBP +Modelcsv_cogilog=Izvoz za Cogilog +Modelcsv_agiris=Izvoz za Agiris Isacompta +Modelcsv_LDCompta=Izvoz za LD Compta (v9) (preizkus) +Modelcsv_LDCompta10=Izvoz za LD Compta (v10 in višje) +Modelcsv_openconcerto=Izvoz za OpenConcerto (test) +Modelcsv_configurable=Izvoz CSV Nastavljiv +Modelcsv_FEC=Izvoz FEC +Modelcsv_FEC2=Izvoz FEC (z zapisom generiranja datumov/obrnjenim dokumentom) +Modelcsv_Sage50_Swiss=Izvoz za Sage 50 Švica +Modelcsv_winfic=Izvoz za Winfic - eWinfic - WinSis Compta +Modelcsv_Gestinumv3=Izvoz za Gestinum (v3) +Modelcsv_Gestinumv5=Izvoz za Gestinum (v5) +Modelcsv_charlemagne=Izvoz za Aplima Karla Velikega +ChartofaccountsId=Kontni načrt Id ## Tools - Init accounting account on product / service -InitAccountancy=Init accountancy -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters used for accounting closures. -Options=Options -OptionModeProductSell=Mode sales -OptionModeProductSellIntra=Mode sales exported in EEC -OptionModeProductSellExport=Mode sales exported in other countries -OptionModeProductBuy=Mode purchases -OptionModeProductBuyIntra=Mode purchases imported in EEC -OptionModeProductBuyExport=Mode purchased imported from other countries -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductSellIntraDesc=Show all products with accounting account for sales in EEC. -OptionModeProductSellExportDesc=Show all products with accounting account for other foreign sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. -OptionModeProductBuyIntraDesc=Show all products with accounting account for purchases in EEC. -OptionModeProductBuyExportDesc=Show all products with accounting account for other foreign purchases. -CleanFixHistory=Remove accounting code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year -PredefinedGroups=Predefined groups -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account -AccountRemovedFromGroup=Account removed from group -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC -SaleEECWithVAT=Sale in EEC with a VAT not null, so we suppose this is NOT an intracommunautary sale and the suggested account is the standard product account. -SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fallback on the product account for standard sales. You can fix the VAT ID of thirdparty or the product account if needed. -ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. -ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. +InitAccountancy=Začetno računovodstvo +InitAccountancyDesc=To stran lahko uporabite za inicializacijo računovodskega računa za izdelke in storitve, ki nimajo definiranega računovodskega računa za prodajo in nakupe. +DefaultBindingDesc=To stran lahko uporabite za nastavitev privzetega računa, ki se uporablja za povezovanje evidenc transakcij o izplačilih plač, donacijah, davkih in DDV, kadar še ni nastavljen poseben računovodski račun. +DefaultClosureDesc=To stran lahko uporabite za nastavitev parametrov, ki se uporabljajo za računovodske zaključke. +Options=Opcije +OptionModeProductSell=Način prodaje +OptionModeProductSellIntra=Način prodaje, izvožen v EGS +OptionModeProductSellExport=Način prodaje, izvožen v druge države +OptionModeProductBuy=Način nakupov +OptionModeProductBuyIntra=Načini nakupov, uvoženih v EGS +OptionModeProductBuyExport=Način kupljen uvožen iz drugih držav +OptionModeProductSellDesc=Prikaži vse izdelke z računovodskim računom za prodajo. +OptionModeProductSellIntraDesc=Prikaži vse izdelke z računovodskim računom za prodajo v EGS. +OptionModeProductSellExportDesc=Pokažite vse izdelke z računovodskim računom za drugo prodajo v tujini. +OptionModeProductBuyDesc=Prikaži vse izdelke z računovodskim računom za nakupe. +OptionModeProductBuyIntraDesc=Prikaži vse izdelke z računovodskim računom za nakupe v EGS. +OptionModeProductBuyExportDesc=Prikaži vse izdelke z računovodskim računom za druge nakupe v tujini. +CleanFixHistory=Odstranite računovodsko kodo iz vrstic, ki ne obstajajo, v kontnih načrtih +CleanHistory=Ponastavi vse vezave za izbrano leto +PredefinedGroups=Vnaprej določene skupine +WithoutValidAccount=Brez veljavnega namenskega računa +WithValidAccount=Z veljavnim namenskim računom +ValueNotIntoChartOfAccount=Ta vrednost računovodskega konta ne obstaja v kontnem načrtu +AccountRemovedFromGroup=Račun odstranjen iz skupine +SaleLocal=Lokalna prodaja +SaleExport=Izvozna prodaja +SaleEEC=Prodaja v EGS +SaleEECWithVAT=Prodaja v EGS z DDV ni ničelna, zato predpostavljamo, da to NI prodaja znotraj skupnosti in da je predlagani račun standardni račun izdelka. +SaleEECWithoutVATNumber=Prodaja v EGS brez DDV, vendar ID za DDV partnerja ni opredeljen. Za standardno prodajo uporabljamo nadomestni račun izdelka. Po potrebi lahko popravite ID za DDV partnerja ali račun izdelka. +ForbiddenTransactionAlreadyExported=Prepovedano: transakcija je bila potrjena in/ali izvožena. +ForbiddenTransactionAlreadyValidated=Prepovedano: transakcija je bila potrjena. ## Dictionary -Range=Range of accounting account -Calculated=Calculated +Range=Obseg računovodskega računa +Calculated=Izračunano Formula=Formula +## Reconcile +LetteringAuto=Uskladi avto +LetteringManual=Priročnik za usklajevanje +Unlettering=Nespravljivo +UnletteringAuto=Neusklajeni avto +UnletteringManual=Priročnik za neskladje +AccountancyNoLetteringModified=Usklajevanje ni spremenjeno +AccountancyOneLetteringModifiedSuccessfully=Ena uskladitev je bila uspešno spremenjena +AccountancyLetteringModifiedSuccessfully=%s uskladitev uspešno spremenjena +AccountancyNoUnletteringModified=Ni spremenjenih neskladij +AccountancyOneUnletteringModifiedSuccessfully=Ena nezdružljivost je bila uspešno spremenjena +AccountancyUnletteringModifiedSuccessfully=%s nezdružljivost uspešno spremenjena + +## Confirm box +ConfirmMassUnletteringAuto=Potrditev množične samodejne neusklajenosti +ConfirmMassUnletteringManual=Množična ročna potrditev neusklajenosti +ConfirmMassUnletteringQuestion=Ali ste prepričani, da želite preklicati uskladitev %s izbranih zapisov? +ConfirmMassDeleteBookkeepingWriting=Potrditev množičnega brisanja +ConfirmMassDeleteBookkeepingWritingQuestion=S tem boste transakcijo izbrisali iz računovodstva (izbrisane bodo vse vrstice, povezane z isto transakcijo). Ali ste prepričani, da želite izbrisati %s izbrane zapise? + ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them -ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) -ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice %s, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused. -ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account. -ExportNotSupported=The export format setuped is not supported into this page -BookeppingLineAlreayExists=Lines already existing into bookkeeping -NoJournalDefined=No journal defined -Binded=Lines bound -ToBind=Lines to bind -UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +SomeMandatoryStepsOfSetupWereNotDone=Nekateri obvezni koraki nastavitve niso bili izvedeni, prosimo, da jih dokončate +ErrorNoAccountingCategoryForThisCountry=Za državo %s ni na voljo nobena skupina računovodskih računov (Glejte Domov – Nastavitve – Slovarji) +ErrorInvoiceContainsLinesNotYetBounded=Nekaj vrstic računa poskušate evidentirati %s , nekatere druge vrstice pa še niso vezane na računovodski konto. Dnevnik vseh vrstic računa za ta račun je zavrnjen. +ErrorInvoiceContainsLinesNotYetBoundedShort=Nekatere vrstice na računu niso vezane na računovodski račun. +ExportNotSupported=Nastavljena oblika izvoza ni podprta na tej strani +BookeppingLineAlreayExists=Že obstoječe vrstice v knjigovodstvu +NoJournalDefined=Noben dnevnik ni opredeljen +Binded=Vezane vrstice +ToBind=Vrstice za vezavo +UseMenuToSetBindindManualy=Vrstice še niso vezane, uporabite meni %s za ročno vezavo +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Žal ta modul ni združljiv s poskusno funkcijo situacijskih računov +AccountancyErrorMismatchLetterCode=Neujemanje v kodi za usklajevanje +AccountancyErrorMismatchBalanceAmount=Stanje (%s) ni enako 0 +AccountancyErrorLetteringBookkeeping=Prišlo je do napak v zvezi s transakcijami: %s +ErrorAccountNumberAlreadyExists=Knjigovodska številka %s že obstaja ## Import -ImportAccountingEntries=Accounting entries -ImportAccountingEntriesFECFormat=Accounting entries - FEC format -FECFormatJournalCode=Code journal (JournalCode) -FECFormatJournalLabel=Label journal (JournalLib) -FECFormatEntryNum=Piece number (EcritureNum) -FECFormatEntryDate=Piece date (EcritureDate) -FECFormatGeneralAccountNumber=General account number (CompteNum) -FECFormatGeneralAccountLabel=General account label (CompteLib) -FECFormatSubledgerAccountNumber=Subledger account number (CompAuxNum) -FECFormatSubledgerAccountLabel=Subledger account number (CompAuxLib) -FECFormatPieceRef=Piece ref (PieceRef) -FECFormatPieceDate=Piece date creation (PieceDate) -FECFormatLabelOperation=Label operation (EcritureLib) -FECFormatDebit=Debit (Debit) -FECFormatCredit=Credit (Credit) -FECFormatReconcilableCode=Reconcilable code (EcritureLet) -FECFormatReconcilableDate=Reconcilable date (DateLet) -FECFormatValidateDate=Piece date validated (ValidDate) -FECFormatMulticurrencyAmount=Multicurrency amount (Montantdevise) -FECFormatMulticurrencyCode=Multicurrency code (Idevise) +ImportAccountingEntries=Računovodske knjižbe +ImportAccountingEntriesFECFormat=Računovodske knjižbe - format FEC +FECFormatJournalCode=Dnevnik kode (JournalCode) +FECFormatJournalLabel=Dnevnik etiket (JournalLib) +FECFormatEntryNum=Številka kosa (EcritureNum) +FECFormatEntryDate=Datum dela (EcritureDate) +FECFormatGeneralAccountNumber=Splošna številka računa (CompteNum) +FECFormatGeneralAccountLabel=Splošna oznaka računa (CompteLib) +FECFormatSubledgerAccountNumber=Številka računa podknjige (CompAuxNum) +FECFormatSubledgerAccountLabel=Številka računa podknjige (CompAuxLib) +FECFormatPieceRef=Kos Ref (PieceRef) +FECFormatPieceDate=Ustvarjanje datuma kosa (PieceDate) +FECFormatLabelOperation=Delovanje oznake (EcritureLib) +FECFormatDebit=Debet (Debet) +FECFormatCredit=kredit (kredit) +FECFormatReconcilableCode=Združljiva koda (EcritureLet) +FECFormatReconcilableDate=Datum, ki ga je mogoče uskladiti (DateLet) +FECFormatValidateDate=Datum kosa potrjen (ValidDate) +FECFormatMulticurrencyAmount=Znesek v več valutah (Montantdevise) +FECFormatMulticurrencyCode=Koda za več valut (Idevise) -DateExport=Date export -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. -ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal +DateExport=Izvoz datuma +WarningReportNotReliable=Opozorilo, to poročilo ne temelji na knjigi, zato ne vsebuje transakcij, ki so bile ročno spremenjene v knjigi. Če je vaša dnevnika ažurna, je knjigovodski pogled natančnejši. +ExpenseReportJournal=Dnevnik poročil o stroških -NAccounts=%s accounts +NAccounts=računi %s diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index cbdd6b44fb4..68a6f17711e 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -1,74 +1,72 @@ # Dolibarr language file - Source file is en_US - admin -BoldRefAndPeriodOnPDF=Print reference and period of product item in PDF -BoldLabelOnPDF=Print label of product item in Bold in PDF +BoldRefAndPeriodOnPDF=Natisnite referenco in obdobje postavke izdelka v PDF +BoldLabelOnPDF=Natisnite etiketo izdelka v krepkem tisku v PDF Foundation=Ustanova Version=Različica -Publisher=Publisher +Publisher=Založnik VersionProgram=Različica programa -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Začetna različica namestitve +VersionLastUpgrade=Najnovejša nadgradnja različice VersionExperimental=Preizkusna VersionDevelopment=Razvojna VersionUnknown=Neznana VersionRecommanded=Priporočena -FileCheck=Fileset Integrity Checks -FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to determine if any files have been modified (e.g by a hacker). -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) +FileCheck=Preverjanje celovitosti nabora datotek +FileCheckDesc=To orodje vam omogoča, da preverite celovitost datotek in nastavitev vaše aplikacije, tako da vsako datoteko primerjate z uradno. Prav tako je mogoče preveriti vrednost nekaterih nastavitvenih konstant. S tem orodjem lahko ugotovite, ali je bila katera koli datoteka spremenjena (npr. s strani hekerja). +FileIntegrityIsStrictlyConformedWithReference=Celovitost datotek je strogo skladna z referenco. +FileIntegrityIsOkButFilesWereAdded=Preverjanje celovitosti datotek je bilo uspešno, vendar je bilo nekaj novih datotek dodanih. +FileIntegritySomeFilesWereRemovedOrModified=Preverjanje celovitosti datotek ni uspelo. Nekatere datoteke so bile spremenjene, odstranjene ali dodane. +GlobalChecksum=Globalna kontrolna vsota +MakeIntegrityAnalysisFrom=Naredite analizo integritete aplikacijskih datotek iz +LocalSignature=Vdelan lokalni podpis (manj zanesljiv) +RemoteSignature=Oddaljeni oddaljeni podpis (bolj zanesljiv) FilesMissing=Manjkajoče datoteke FilesUpdated=Posodobljene datoteke -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when the application is installed from an official package -XmlNotFound=Xml Integrity File of application not found +FilesModified=Spremenjene datoteke +FilesAdded=Dodane datoteke +FileCheckDolibarr=Preverite celovitost aplikacijskih datotek +AvailableOnlyOnPackagedVersions=Lokalna datoteka za preverjanje celovitosti je na voljo samo, če je aplikacija nameščena iz uradnega paketa +XmlNotFound=Xml Integrity Datoteke aplikacije ni bilo mogoče najti SessionId=ID seje SessionSaveHandler=Rutina za shranjevanje seje -SessionSavePath=Session save location +SessionSavePath=Lokacija shranjevanja seje PurgeSessions=Odstranitev sej -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. +ConfirmPurgeSessions=Ali res želite počistiti vse seje? S tem boste prekinili povezavo vseh uporabnikov (razen vas). +NoSessionListWithThisHandler=Obravnavalnik shranjevanja sej, konfiguriran v vašem PHP-ju, ne dovoljuje prikaza vseh sej, ki se izvajajo. LockNewSessions=Zaklepanje novih povezav -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. +ConfirmLockNewSessions=Ali ste prepričani, da želite vsako novo povezavo Dolibarr omejiti nase? Po tem se bo lahko povezal samo uporabnik %s . UnlockNewSessions=Odstrani blokado povezovanja YourSession=Vaša seja -Sessions=Users Sessions +Sessions=Uporabniške seje WebUserGroup=Spletni strežnik uporabnik / skupina -PermissionsOnFiles=Permissions on files -PermissionsOnFilesInWebRoot=Permissions on files in web root directory -PermissionsOnFile=Permissions on file %s -NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (%s) may be protected (for example by OS permissions or by PHP directive open_basedir). +PermissionsOnFiles=Dovoljenja za datoteke +PermissionsOnFilesInWebRoot=Dovoljenja za datoteke v spletnem korenskem imeniku +PermissionsOnFile=Dovoljenja za datoteko %s +NoSessionFound=Zdi se, da vaša konfiguracija PHP ne dovoljuje seznama aktivnih sej. Imenik, ki se uporablja za shranjevanje sej ( %s ), je lahko zaščiten (na primer z dovoljenji OS ali z direktivo PHP open_basedir). DBStoringCharset=Nabor znakov v bazi podatkov za shranjevanje podatkov DBSortingCharset=Nabor znakov v bazi podatkov za sortiranje podatkov -HostCharset=Host charset -ClientCharset=Client charset -ClientSortingCharset=Client collation +HostCharset=Nabor znakov gostitelja +ClientCharset=Nabor znakov odjemalca +ClientSortingCharset=Primerjava partnerjev WarningModuleNotActive=Modul %s mora biti omogočen WarningOnlyPermissionOfActivatedModules=Tukaj so prikazana samo dovoljenja, ki se nanašajo na aktivirane module. Ostale module lahko aktivirate na strani Domov->Nastavitve->Moduli. -DolibarrSetup=Dolibarr nastavitve -InternalUser=Interni uporabnik -ExternalUser=Zunanji uporabnik +DolibarrSetup=Namestitev ali nadgradnja InternalUsers=Interni uporabniki ExternalUsers=Zunanji uporabniki -UserInterface=User interface +UserInterface=Uporabniški vmesnik GUISetup=Prikaz SetupArea=Nastavitve -UploadNewTemplate=Upload new template(s) -FormToTestFileUploadForm=Testiranje »upload-a« (v skladu z nastavitvami) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +UploadNewTemplate=Naloži nove predloge +FormToTestFileUploadForm=Testiranje nalaganja datotek (v skladu z nastavitvami) +ModuleMustBeEnabled=Modul/aplikacija %s mora biti omogočena +ModuleIsEnabled=Modul/aplikacija %s je omogočen IfModuleEnabled=Opomba: 'Da' velja samo, če je omogočen modul %s -RemoveLock=Remove/rename file %s if it exists, to allow usage of the Update/Install tool. -RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. +RemoveLock=Odstranite/preimenujte datoteko %s , če obstaja, da omogočite uporabo orodja za posodobitev/namestitev. +RestoreLock=Obnovite datoteko %s samo z dovoljenjem za branje, da onemogočite nadaljnjo uporabo orodja za posodobitev/namestitev. SecuritySetup=Varnostne nastavitve -PHPSetup=PHP setup -OSSetup=OS setup -SecurityFilesDesc=Define here options related to security about uploading files. +PHPSetup=Nastavitev PHP +OSSetup=nastavitev OS +SecurityFilesDesc=Tukaj določite možnosti, povezane z varnostjo nalaganja datotek. ErrorModuleRequirePHPVersion=Napaka, ta modul zahteva PHP različico %s ali višjo ErrorModuleRequireDolibarrVersion=Napaka, Ta modul zahteva Dolibarr različico %s ali višjo ErrorDecimalLargerThanAreForbidden=Napaka, višja natančnost od %s ni podprta. @@ -77,25 +75,25 @@ Dictionary=Slovarji ErrorReservedTypeSystemSystemAuto=Vrednosti 'system' in 'systemauto' za tip sta rezervirani. Uporabite lahko 'user' za dodajanje lastnih zapisov ErrorCodeCantContainZero=Koda ne sme vsebovati vrednosti 0 DisableJavascript=Onemogoči JavaScript in Ajax funkcije -DisableJavascriptNote=Note: For test or debug purpose only. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user +DisableJavascriptNote=Opomba: samo za preizkus ali odpravljanje napak. Za optimizacijo za slepe osebe ali besedilne brskalnike boste morda raje uporabili nastavitev v profilu uporabnika UseSearchToSelectCompanyTooltip=Če je partnerjev zelo veliko (> 100 000), lahko hitrost povišate z nastavitvijo konstante SOCIETE_DONOTSEARCH_ANYWHERE na 1 v Nastavitve->Ostale nastavitve. Iskanje bo s tem omejeno na začetek niza. UseSearchToSelectContactTooltip=Če je partnerjev zelo veliko (> 100 000), lahko hitrost povišate z nastavitvijo konstante SOCIETE_DONOTSEARCH_ANYWHERE na 1 v Nastavitve->Ostale nastavitve. Iskanje bo s tem omejeno na začetek niza. -DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.
    This may increase performance if you have a large number of third parties, but it is less convenient. -DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. -NumberOfKeyToSearch=Number of characters to trigger search: %s -NumberOfBytes=Number of Bytes -SearchString=Search string +DelaiedFullListToSelectCompany=Počakajte, da pritisnete tipko, preden naložite vsebino kombiniranega seznama tretjih oseb.
    To lahko poveča zmogljivost, če imate veliko število tretjih oseb, vendar je manj priročno. +DelaiedFullListToSelectContact=Počakajte, da pritisnete tipko, preden naložite vsebino kombiniranega seznama stikov.
    To lahko poveča zmogljivost, če imate veliko število stikov, vendar je manj priročno. +NumberOfKeyToSearch=Število znakov za sprožitev iskanja: %s +NumberOfBytes=Število bajtov +SearchString=Iskalni niz NotAvailableWhenAjaxDisabled=Ni na voljo, če je Ajax onemogočen -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months +AllowToSelectProjectFromOtherCompany=Na dokumentu partnerja lahko izberete projekt, povezan z drugim partnerjem +TimesheetPreventAfterFollowingMonths=Preprečite beleženje porabljenega časa po naslednjem številu mesecev JavascriptDisabled=JavaScript onemogočen UsePreviewTabs=Uporabi zavihke za predogled ShowPreview=Prikaži predogled -ShowHideDetails=Show-Hide details +ShowHideDetails=Prikaži-Skrij podrobnosti PreviewNotAvailable=Predogled ni na voljo ThemeCurrentlyActive=Trenutno aktivna tema MySQLTimeZone=Časovni pas MySql (baze podatkov) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +TZHasNoEffect=Datumi so shranjeni in vrnjeni s strani strežnika baze podatkov, kot da bi bili shranjeni kot predloženi niz. Časovni pas ima učinek samo pri uporabi funkcije UNIX_TIMESTAMP (te Dolibarr ne bi smel uporabljati, zato baza podatkov TZ ne bi smela imeti učinka, tudi če se spremeni po vnosu podatkov). Space=Presledek Table=Tabela Fields=Polja @@ -104,94 +102,94 @@ Mask=Maska NextValue=Naslednja vrednost NextValueForInvoices=Naslednja vrednost (fakture) NextValueForCreditNotes=Naslednja vrednost (dobropisi) -NextValueForDeposit=Next value (down payment) +NextValueForDeposit=Naslednja vrednost (polog) NextValueForReplacements=Naslednja vrednost (zamenjave) -MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter +MustBeLowerThanPHPLimit=Opomba: vaša konfiguracija PHP trenutno omejuje največjo velikost datoteke za nalaganje na %s %s, ne glede na vrednost tega parametra NoMaxSizeByPHPLimit=Opomba: V vaši PHP konfiguraciji ni nastavljenih omejitev MaxSizeForUploadedFiles=Največja velikost prenesene datoteke (0 za prepoved vseh prenosov) -UseCaptchaCode=Na prijavni strani uporabi grafično kodo (CAPTCHA) +UseCaptchaCode=Uporabite grafično kodo (CAPTCHA) na strani za prijavo in nekaterih javnih straneh AntiVirusCommand=Celotna pot za antivirusno ukazno vrstico -AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe +AntiVirusCommandExample=Primer za ClamAv Daemon (zahteva clamav-daemon): /usr/bin/clamdscan
    Primer za ClamWin (zelo zelo počasen): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Več parametrov v ukazni vrstici -AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AntiVirusParamExample=Primer za demon ClamAv: --fdpass
    Primer za ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Nastavitve računovodskega modula UserSetup=Nastavitve upravljanja uporabnikov -MultiCurrencySetup=Multi-currency setup +MultiCurrencySetup=Nastavitev več valut MenuLimits=Omejitve in natančnost MenuIdParent=ID nadrejenega menija DetailMenuIdParent=ID nadrejenega menija (0 za najvišji meni) -ParentID=Parent ID +ParentID=ID starša DetailPosition=Številka za razvrstitev za določanje položaja menija AllMenus=Vsi -NotConfigured=Module/Application not configured +NotConfigured=Modul/aplikacija ni konfigurirana Active=Aktiven SetupShort=Nastavitve OtherOptions=Ostale opcije -OtherSetup=Other Setup +OtherSetup=Druge nastavitve CurrentValueSeparatorDecimal=Decimalno ločilo CurrentValueSeparatorThousand=Ločilo tisočic Destination=Destinacija IdModule=ID modula IdPermissions=ID dovoljenj LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localization parameters +LocalisationDolibarrParameters=Parametri lokalizacije ClientHour=Ura klienta (uporabnika) OSTZ=Časovni pas OS strežnika PHPTZ=Časovni pas PHP strežnika DaylingSavingTime=Poletni/zimski čas (uporabnik) CurrentHour=Ura PHP strežnika CurrentSessionTimeOut=Časovna omejitev trenutne seje -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris" -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server. +YouCanEditPHPTZ=Če želite nastaviti drug časovni pas PHP (ni obvezno), lahko poskusite dodati datoteko .htaccess z vrstico, kot je ta "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Opozorilo, v nasprotju z drugimi zasloni ure na tej strani niso v vašem lokalnem časovnem pasu, temveč v časovnem pasu strežnika. Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max. number of lines for widgets -AllWidgetsWereEnabled=All available widgets are enabled +Boxes=Pripomočki +MaxNbOfLinesForBoxes=maks. število vrstic za pripomočke +AllWidgetsWereEnabled=Omogočeni so vsi razpoložljivi pripomočki PositionByDefault=Privzet vrstni red Position=Položaj -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
    Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. +MenusDesc=Upravljavci menijev nastavijo vsebino dveh menijskih vrstic (vodoravno in navpično). +MenusEditorDesc=Urejevalnik menijev omogoča definiranje vnosov menija po meri. Uporabljajte ga previdno, da preprečite nestabilnost in trajno nedosegljive menijske vnose.
    Nekateri moduli dodajo menijske vnose (v meniju Večinoma vsi ). Če pomotoma odstranite nekatere od teh vnosov, jih lahko obnovite tako, da onemogočite in ponovno omogočite modul. MenuForUsers=Meni za uporabnika LangFile=Datoteka .lang -Language_en_US_es_MX_etc=Language (en_US, es_MX, ...) +Language_en_US_es_MX_etc=Jezik (en_US, es_MX, ...) System=Sistem SystemInfo=Sistemske informacije SystemToolsArea=Področje sistemskih orodij -SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature. +SystemToolsAreaDesc=To področje zagotavlja administrativne funkcije. V meniju izberite želeno funkcijo. Purge=Počisti -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Parameter can be 'tempfilesold', 'logfiles' or both 'tempfilesold+logfiles'. Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files (no risk of losing data) -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
    This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files. +PurgeAreaDesc=Ta stran vam omogoča, da izbrišete vse datoteke, ki jih ustvari ali shrani Dolibarr (začasne datoteke ali vse datoteke v imeniku %s ). Uporaba te funkcije običajno ni potrebna. Na voljo je kot rešitev za uporabnike, katerih Dolibarr gosti ponudnik, ki ne ponuja dovoljenj za brisanje datotek, ki jih ustvari spletni strežnik. +PurgeDeleteLogFile=Izbrišite dnevniške datoteke, vključno z %s , definiranimi za modul Syslog (brez nevarnosti izgube podatkov) +PurgeDeleteTemporaryFiles=Izbrišite vse dnevnike in začasne datoteke (brez nevarnosti izgube podatkov). Parameter je lahko 'tempfilesold', 'logfiles' ali oba 'tempfilesold+logfiles'. Opomba: Brisanje začasnih datotek se izvede le, če je bil začasni imenik ustvarjen pred več kot 24 urami. +PurgeDeleteTemporaryFilesShort=Brisanje dnevnika in začasnih datotek (brez nevarnosti izgube podatkov) +PurgeDeleteAllFilesInDocumentsDir=Izbrišite vse datoteke v imeniku: %s .
    To bo izbrisalo vse ustvarjene dokumente, povezane z elementi (partnerji, računi itd...), datoteke, naložene v modul ECM, izpise varnostnih kopij baze podatkov in začasne datoteke. PurgeRunNow=Počisti zdaj -PurgeNothingToDelete=No directory or files to delete. +PurgeNothingToDelete=Ni imenika ali datotek za brisanje. PurgeNDirectoriesDeleted=Izbrisane mape ali datoteke %s. -PurgeNDirectoriesFailed=Failed to delete %s files or directories. +PurgeNDirectoriesFailed=Brisanje %s datotek ali imenikov ni uspelo. PurgeAuditEvents=Počisti vse dogodke -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +ConfirmPurgeAuditEvents=Ali ste prepričani, da želite počistiti vse varnostne dogodke? Vsi varnostni dnevniki bodo izbrisani, nobeni drugi podatki ne bodo odstranjeni. GenerateBackup=Generiraj varnostno kopijo Backup=Varnostna kopija Restore=Obnovitev RunCommandSummary=Varnostna kopija (backup) bo narejena z naslednjimi ukazi BackupResult=Rezultat varnostnega kopiranja BackupFileSuccessfullyCreated=Varnostna kopija uspešno generirana -YouCanDownloadBackupFile=The generated file can now be downloaded +YouCanDownloadBackupFile=Ustvarjeno datoteko je zdaj mogoče prenesti NoBackupFileAvailable=Varnostna kopija ni na voljo. ExportMethod=Način izvoza ImportMethod=Način uvoza ToBuildBackupFileClickHere=Za izdelavo varnostne kopije, kliknite tukaj. -ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.
    For example: +ImportMySqlDesc=Če želite uvoziti varnostno kopijo MySQL, lahko uporabite phpMyAdmin prek vašega gostovanja ali uporabite ukaz mysql iz ukazne vrstice.
    Na primer: ImportPostgreSqlDesc=Za uvoz datoteke z varnostno kopijo, morate uporabiti ukaz pg_restore v ukazni vrstici: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filename for backup: +FileNameToGenerate=Ime datoteke za varnostno kopiranje: Compression=Kompresija CommandsToDisableForeignKeysForImport=Ukaz za onemogočenje tujega ključa pri uvozu CommandsToDisableForeignKeysForImportWarning=Obvezno, če želite imeti možnost kasnejše obnovitve vašega sql izpisa ExportCompatibility=Kompatibilnost generirane izvozne datoteke -ExportUseMySQLQuickParameter=Use the --quick parameter -ExportUseMySQLQuickParameterHelp=The '--quick' parameter helps limit RAM consumption for large tables. +ExportUseMySQLQuickParameter=Uporabite parameter --quick +ExportUseMySQLQuickParameterHelp=Parameter '--quick' pomaga omejiti porabo RAM-a za velike tabele. MySqlExportParameters=MySQL izvozni parametri PostgreSqlExportParameters= PostgreSQL izvozni parametri UseTransactionnalMode=Uporabi transakcijski način @@ -205,126 +203,127 @@ ExtendedInsert=Razširjeno vstavljanje NoLockBeforeInsert=Ni zaklepanja ukazi okoli INSERT DelayedInsert=Zakasnelo vstavljanje EncodeBinariesInHexa=Kodiraj binarne podatke v hexadecimalne -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) +IgnoreDuplicateRecords=Prezri napake podvojenega zapisa (INSERT IGNORE) AutoDetectLang=Samozaznava (jezik iskalnika) FeatureDisabledInDemo=Funkcija onemogočena v demo različici -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it. +FeatureAvailableOnlyOnStable=Funkcija je na voljo samo v uradnih stabilnih različicah +BoxesDesc=Gradniki so komponente, ki prikazujejo nekatere informacije, ki jih lahko dodate za prilagajanje nekaterih strani. Izbirate lahko med prikazovanjem pripomočka ali ne, tako da izberete ciljno stran in kliknete »Aktiviraj« ali pa kliknete smetnjak, da ga onemogočite. OnlyActiveElementsAreShown=Prikazani so samo elementi omogočenih modulov . -ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. -ModulesDesc2=Click the wheel button %s to configure the module/application. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. -ModulesMarketPlaces=Find external app/modules -ModulesDevelopYourModule=Develop your own app/modules -ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. -DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)... -NewModule=New module -FreeModule=Free -CompatibleUpTo=Compatible with version %s -NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s). -CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s). -SeeInMarkerPlace=See in Market place +ModulesDesc=Moduli/aplikacije določajo, katere funkcije so na voljo v programski opremi. Nekateri moduli zahtevajo, da se uporabnikom podelijo dovoljenja po aktiviranju modula. Kliknite gumb za vklop/izklop %s vsakega modula, da omogočite ali onemogočite modul/aplikacijo. +ModulesDesc2=Kliknite gumb kolesca %s , da konfigurirate modul/aplikacijo. +ModulesMarketPlaceDesc=Več modulov za prenos lahko najdete na zunanjih spletnih mestih v internetu ... +ModulesDeployDesc=Če dovoljenja v vašem datotečnem sistemu to dovoljujejo, lahko uporabite to orodje za namestitev zunanjega modula. Modul bo nato viden na zavihku %s . +ModulesMarketPlaces=Poiščite zunanjo aplikacijo/module +ModulesDevelopYourModule=Razvijte lastno aplikacijo/module +ModulesDevelopDesc=Lahko tudi razvijete svoj modul ali poiščete partnerja, ki ga bo razvil namesto vas. +DOLISTOREdescriptionLong=Namesto da bi iskali zunanji modul na spletnem mestu www.dolistore.com , lahko uporabite to vdelano orodje, ki bo namesto vas opravilo iskanje na zunanjem trgu (morda je počasno, potrebujete dostop do interneta)... +NewModule=Nov modul +FreeModule=prost +CompatibleUpTo=Združljivo z različico %s +NotCompatible=Zdi se, da ta modul ni združljiv z vašim Dolibarr %s (najmanj %s – največ %s). +CompatibleAfterUpdate=Ta modul zahteva posodobitev vašega Dolibarr %s (najmanj %s – največ %s). +SeeInMarkerPlace=Glej na tržnici SeeSetupOfModule=Glejte nastavitev modula %s -SetOptionTo=Set option %s to %s -Updated=Updated -AchatTelechargement=Buy / Download -GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. +SetOptionTo=Nastavite možnost %s na %s +Updated=Posodobljeno +AchatTelechargement=Nakup / prenos +GoModuleSetupArea=Če želite razmestiti/namestiti nov modul, pojdite na območje za namestitev modula: %s . DoliStoreDesc=DoliStore, uradna tržnica za Dolibarr ERP/CRM zunanje module -DoliPartnersDesc=List of companies providing custom-developed modules or features.
    Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module. -WebSiteDesc=External websites for more add-on (non-core) modules... -DevelopYourModuleDesc=Some solutions to develop your own module... +DoliPartnersDesc=Seznam podjetij, ki ponujajo po meri razvite module ali funkcije.
    Opomba: ker je Dolibarr odprtokodna aplikacija, vsakdo, ki ima izkušnje s programiranjem PHP, mora biti sposoben razviti modul. +WebSiteDesc=Zunanja spletna mesta za več dodatnih (neosnovnih) modulov ... +DevelopYourModuleDesc=Nekaj rešitev za razvoj lastnega modula... URL=URL -RelativeURL=Relative URL -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated +RelativeURL=Relativni URL +BoxesAvailable=Na voljo so pripomočki +BoxesActivated=Pripomočki aktivirani ActivateOn=Aktiviran na ActiveOn=Aktiven na -ActivatableOn=Activatable on +ActivatableOn=Aktivno na SourceFile=Izvorna datoteka AvailableOnlyIfJavascriptAndAjaxNotDisabled=Na voljo samo, če JavaScript in Ajax nista onemogočena Required=Zahtevano UsedOnlyWithTypeOption=Uporablja se samo pri nekaterih ocijah agende Security=Varnost Passwords=Gesla -DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option. -MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option. +DoNotStoreClearPassword=Šifrirajte gesla, shranjena v bazi podatkov (NE kot golo besedilo). Močno priporočamo, da aktivirate to možnost. +MainDbPasswordFileConfEncrypted=Šifrirajte geslo baze podatkov, shranjeno v conf.php. Močno priporočamo, da aktivirate to možnost. InstrucToEncodePass=Za kodiranje gesla v datoteki conf.php, zamenjajte vrstico
    $dolibarr_main_db_pass="...";
    z
    $dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Za dekodiranje gesla (izbris) v datoteki conf.php, zamenjajte vrstico
    $dolibarr_main_db_pass="crypted:...";
    z
    $dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation. -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +ProtectAndEncryptPdfFiles=Zaščitite ustvarjene datoteke PDF. To NI priporočljivo, ker prekine množično ustvarjanje PDF. +ProtectAndEncryptPdfFilesDesc=Zaščita dokumenta PDF omogoča branje in tiskanje s katerim koli brskalnikom PDF. Vendar urejanje in kopiranje ni več mogoče. Upoštevajte, da uporaba te funkcije povzroči, da izdelava globalnih združenih PDF-jev ne deluje. Feature=Funkcija DolibarrLicense=Licenca Developpers=Razvojniki/sodelavci -OfficialWebSite=Dolibarr official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation / Wiki +OfficialWebSite=Uradna spletna stran Dolibarr +OfficialWebSiteLocal=Lokalno spletno mesto (%s) +OfficialWiki=Dokumentacija Dolibarr / Wiki OfficialDemo=Dolibarr online demo OfficialMarketPlace=Uradna tržnica za zunanje module/dodatke OfficialWebHostingService=Referenčne storitve spletnega gostovanja (gostovanje v oblaku) ReferencedPreferredPartners=Preferirani partnerji -OtherResources=Other resources -ExternalResources=External Resources -SocialNetworks=Social Networks -SocialNetworkId=Social Network ID -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
    take a look at the Dolibarr Wiki:
    %s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
    %s -HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. -HelpCenterDesc2=Some of these resources are only available in english. +OtherResources=Drugi viri +ExternalResources=Zunanji viri +SocialNetworks=Socialna omrežja +SocialNetworkId=ID družbenega omrežja +ForDocumentationSeeWiki=Za uporabniško ali razvijalsko dokumentacijo (Doc, pogosta vprašanja ...),
    si oglejte Dolibarr Wiki:
    %s a09a47f7839f1 +ForAnswersSeeForum=Za vsa ostala vprašanja/pomoč se lahko obrnete na forum Dolibarr:
    %s +HelpCenterDesc1=Tukaj je nekaj virov za pomoč in podporo za Dolibarr. +HelpCenterDesc2=Nekateri od teh virov so na voljo samo v angleščini . CurrentMenuHandler=Trenutna rutina za meni MeasuringUnit=Merilna enota -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +LeftMargin=Levi rob +TopMargin=Zgornji rob +PaperSize=Vrsta papirja +Orientation=Orientacija +SpaceX=Prostor X +SpaceY=Presledek Y +FontSize=Velikost pisave +Content=Vsebina +ContentForLines=Vsebina za prikaz za vsak izdelek ali storitev (iz spremenljivke __LINES__ vsebine) NoticePeriod=Čas za odobritev -NewByMonth=New by month -Emails=Emails -EMailsSetup=Emails setup -EMailsDesc=This page allows you to set parameters or options for email sending. -EmailSenderProfiles=Emails sender profiles -EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) -MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Suggest emails of employees (if defined) into the list of predefined recipient when writing a new email -MAIN_MAIL_SENDMODE=Email sending method -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) -MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption -MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption -MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés -MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature -MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim -MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector -MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing -MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos) +NewByMonth=Novo po mesecih +Emails=E-poštna sporočila +EMailsSetup=Nastavitev e-pošte +EMailsDesc=Ta stran vam omogoča nastavitev parametrov ali možnosti za pošiljanje e-pošte. +EmailSenderProfiles=Profili pošiljatelja e-poštnih sporočil +EMailsSenderProfileDesc=Ta razdelek lahko pustite prazen. Če tukaj vnesete nekaj e-poštnih sporočil, bodo dodana na seznam možnih pošiljateljev v kombinirano polje, ko napišete novo e-poštno sporočilo. +MAIN_MAIL_SMTP_PORT=Vrata SMTP/SMTPS (privzeta vrednost v php.ini: %s ) +MAIN_MAIL_SMTP_SERVER=Gostitelj SMTP/SMTPS (privzeta vrednost v php.ini: %s ) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Vrata SMTP/SMTPS (ni definirano v PHP v sistemih, podobnih Unixu) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Gostitelj SMTP/SMTPS (ni definiran v PHP v sistemih, podobnih Unixu) +MAIN_MAIL_EMAIL_FROM=E-pošta pošiljatelja za samodejna e-poštna sporočila (privzeta vrednost v php.ini: %s ) +EMailHelpMsgSPFDKIM=Če želite preprečiti, da bi bila e-pošta Dolibarr razvrščena kot vsiljena pošta, se prepričajte, da je strežnik pooblaščen za pošiljanje e-pošte s tega naslova s konfiguracijo SPF in DKIM +MAIN_MAIL_ERRORS_TO=E-pošta, uporabljena za vrnitev e-poštnih sporočil o napakah (polja »Errors-To« v poslanih e-poštnih sporočilih) +MAIN_MAIL_AUTOCOPY_TO= Kopiraj (Bcc) vsa poslana e-poštna sporočila na +MAIN_DISABLE_ALL_MAILS=Onemogoči vse pošiljanje e-pošte (za testne namene ali predstavitve) +MAIN_MAIL_FORCE_SENDTO=Pošlji vsa e-poštna sporočila (namesto pravim prejemnikom, za testne namene) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Pri pisanju novega e-poštnega sporočila predlagajte e-pošto zaposlenih (če je definirana) na seznam vnaprej določenih prejemnikov +MAIN_MAIL_SENDMODE=Način pošiljanja e-pošte +MAIN_MAIL_SMTPS_ID=ID SMTP (če strežnik pošiljanja zahteva preverjanje pristnosti) +MAIN_MAIL_SMTPS_PW=Geslo SMTP (če strežnik za pošiljanje zahteva preverjanje pristnosti) +MAIN_MAIL_EMAIL_TLS=Uporabite šifriranje TLS (SSL). +MAIN_MAIL_EMAIL_STARTTLS=Uporabite šifriranje TLS (STARTTLS). +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Pooblasti les certificats auto-signés +MAIN_MAIL_EMAIL_DKIM_ENABLED=Uporabite DKIM za ustvarjanje e-poštnega podpisa +MAIN_MAIL_EMAIL_DKIM_DOMAIN=E-poštna domena za uporabo z dkim +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Ime izbirnika dkim +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Zasebni ključ za podpis dkim +MAIN_DISABLE_ALL_SMS=Onemogoči vsa pošiljanja SMS (za testne namene ali predstavitve) MAIN_SMS_SENDMODE=Uporabljen način pošiljanja SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending -MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) -UserEmail=User email -CompanyEmail=Company Email +MAIN_MAIL_SMS_FROM=Privzeta telefonska številka pošiljatelja za pošiljanje SMS +MAIN_MAIL_DEFAULT_FROMTYPE=E-pošta privzetega pošiljatelja za ročno pošiljanje (e-pošta uporabnika ali e-pošta podjetja) +UserEmail=E-pošta uporabnika +CompanyEmail=E-pošta podjetja FeatureNotAvailableOnLinux=Funkcija ni na voljo pri Unix sistemih. Preverite program za pošiljanje pošte lokalno. -FixOnTransifex=Fix the translation on the online translation platform of project -SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr +FixOnTransifex=Popravite prevod na spletni platformi za prevajanje projekta +SubmitTranslation=Če prevod za ta jezik ni popoln ali najdete napake, lahko to popravite tako, da uredite datoteke v imeniku langs/%s in pošljete svojo spremembo na www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Če prevod za ta jezik ni popoln ali najdete napake, lahko to popravite tako, da uredite datoteke v imenik langs/%s in pošljete spremenjene datoteke na dolibarr.org/forum ali, če ste razvijalec, s PR na github .com/Dolibarr/dolibarr ModuleSetup=Nastavitve modula -ModulesSetup=Modules/Application setup +ModulesSetup=Nastavitev modulov/aplikacij ModuleFamilyBase=Sistem -ModuleFamilyCrm=Customer Relationship Management (CRM) -ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) +ModuleFamilyCrm=Upravljanje odnosov s partnerji (CRM) +ModuleFamilySrm=Saldakonti dobaviteljev +ModuleFamilyProducts=Upravljanje izdelkov (PM) ModuleFamilyHr=Upravljanje s človeškimi viri (Human Resource Management - HR) ModuleFamilyProjects=Delo na projektih/sodelovanje ModuleFamilyOther=Ostalo @@ -332,40 +331,40 @@ ModuleFamilyTechnic=Orodja za različne module ModuleFamilyExperimental=Eksperimentalni moduli ModuleFamilyFinancial=Finančni moduli (računovodstvo/blagajna) ModuleFamilyECM=ECM -ModuleFamilyPortal=Websites and other frontal application -ModuleFamilyInterface=Interfaces with external systems +ModuleFamilyPortal=Spletne strani in druge frontalne aplikacije +ModuleFamilyInterface=Vmesniki z zunanjimi sistemi MenuHandlers=Menijski vmesniki MenuAdmin=Urejevalnik menijev DoNotUseInProduction=Ne uporabljajte v proizvodnji -ThisIsProcessToFollow=Upgrade procedure: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=Postopek nadgradnje: +ThisIsAlternativeProcessToFollow=To je alternativna nastavitev za ročno obdelavo: StepNb=Korak %s -FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s). -DownloadPackageFromWebSite=Download package (for example from the official web site %s). -UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
    -InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    -InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=You can upload the .zip file of module package from here: +FindPackageFromWebSite=Poiščite paket, ki nudi funkcije, ki jih potrebujete (na primer na uradni spletni strani %s). +DownloadPackageFromWebSite=Prenesite paket (na primer z uradne spletne strani %s). +UnpackPackageInDolibarrRoot=Razpakirajte/razpakirajte zapakirane datoteke v imenik strežnika Dolibarr: %s +UnpackPackageInModulesRoot=Če želite razmestiti/namestiti zunanji modul, morate razpakirati/razpakirati arhivsko datoteko v imenik strežnika, namenjen zunanjim modulom:
    %s +SetupIsReadyForUse=Namestitev modula je končana. Vendar pa morate omogočiti in nastaviti modul v svoji aplikaciji tako, da obiščete module za nastavitev strani: %s . +NotExistsDirect=Alternativni korenski imenik ni definiran za obstoječi imenik.
    +InfDirAlt=Od različice 3 naprej je mogoče definirati alternativni korenski imenik. To vam omogoča shranjevanje vtičnikov in predlog po meri v namenski imenik.
    Samo ustvarite imenik v korenu Dolibarr (npr.: custom).
    +InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them , samo odkomentirajte tako, da odstranite znak "#". +YouCanSubmitFile=Datoteko .zip paketa modula lahko naložite tukaj: CurrentVersion=Trenutna različica Dolibarr -CallUpdatePage=Browse to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP -LastActivationVersion=Latest activation version +CallUpdatePage=Prebrskajte do strani, ki posodablja strukturo baze podatkov in podatke: %s. +LastStableVersion=Najnovejša stabilna različica +LastActivationDate=Zadnji datum aktivacije +LastActivationAuthor=Avtor zadnje aktivacije +LastActivationIP=Zadnji aktivacijski IP +LastActivationVersion=Najnovejša aktivacijska različica UpdateServerOffline=Posodobitev strežnika brez povezave -WithCounter=Manage a counter -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags can be used:
    {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
    {000000+000} same as the previous one but an offset corresponding to the number to the right of the + sign is applied starting on the first %s.
    {000000@x} same as the previous one but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then the sequence {yy}{mm} or {yyyy}{mm} is also required.
    {dd} day (01 to 31).
    {mm} month (01 to 12).
    {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
    -GenericMaskCodes2={cccc} the client code on n characters
    {cccc000} the client code on n characters is followed by a counter dedicated to the customer. This counter dedicated to customer is reset at same time as the global counter.
    {tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
    +WithCounter=Upravljajte števec +GenericMaskCodes=Vnesete lahko poljubno masko oštevilčenja. V tej maski je mogoče uporabiti naslednje oznake:
    {000000} ustreza številu, ki bo povečano za vsak %s. Vnesite toliko ničel, kolikor je želene dolžine števca. Števec bo dopolnjen z ničlami z leve, da bo imel toliko ničel kot maska.
    {000000+000} enako kot prejšnji, vendar se odmik, ki ustreza številu desno od znaka +, uporabi začenši s prvim %s.
    {000000@x} enako kot prejšnji, vendar se števec ponastavi na nič, ko je dosežen mesec x (x med 1 in 12 ali 0 za uporabo prvih mesecev proračunskega leta, definiranih v vaši konfiguraciji, ali 99 za vsak mesec ponastavite na nič). Če je ta možnost uporabljena in je x 2 ali višji, je potrebno tudi zaporedje {yy}{mm} ali {yyyy}{mm}.
    {dd} dan (01 do 31).
    {mm} mesec (01 do 12).
    {yy} , {yyyy} ali {y} , 4 številka nad letom, 4 leta nad.
    +GenericMaskCodes2= {cccc} koda odjemalca na n znakih
    {cccc000} znaku sledi koda odjemalca, namenjena števcu. Ta števec, namenjen partnerju, se ponastavi istočasno kot globalni števec.
    {tttt} Koda vrste partnerja na n znakov (glejte meni Domov - Nastavitve - Slovar - Vrste tretjih oseb). Če dodate to oznako, bo števec drugačen za vsakega partnerja.
    GenericMaskCodes3=Vsi ostali znaki v maski bodo ostali nedotaknjeni.
    Presledki niso dovoljeni.
    -GenericMaskCodes3EAN=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13, the last character after the last } in 13th position should be * or ? . It will be replaced by the calculated key.
    -GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    +GenericMaskCodes3EAN=Vsi drugi znaki v maski bodo ostali nedotaknjeni (razen * ali ? na 13. mestu v EAN13).
    Presledki niso dovoljeni.
    V EAN13 mora biti zadnji znak za zadnjim } na 13. mestu * ali ? . Nadomestil ga bo izračunani ključ.
    +GenericMaskCodes4a= Primer na 99. %s partner Podjetje z datumom 2007-01-31:
    GenericMaskCodes4b=Primer partnerja 99, kreiranega 2007-03-01:
    GenericMaskCodes4c=Primer proizvoda, kreiranega 2007-03-01:
    -GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' +GenericMaskCodes5= ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} bo dal IN0701-0099-A , če je vrsta podjetja 'Responsable Inscripto' s kodo za vrsto, ki je 'A_RI' GenericNumRefModelDesc=Predlaga prilagodljivo številko glede na definirano masko. ServerAvailableOnIPOrPort=Strežnik je na voljo na naslovu %s na vratih %s ServerNotAvailableOnIPOrPort=Strežnik ni na voljo na naslovu %s na vratih %s @@ -376,331 +375,335 @@ ErrorCantUseRazIfNoYearInMask=Napaka, ni možno uporabiti opcije @, za vsakoletn ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Napaka, ni možno uporabiti opcije @, če sekvence {yy}{mm} ali {yyyy}{mm} ni v maski. UMask=UMask parameter za nove datoteke na Unix/Linux/BSD datotečnem sistemu. UMaskExplanation=Ta parameter omogoča definicijo privzetih dovoljenj za datoteke na strežniku, ki jih je kreiral Dolibarr (na primer med nalaganjem).
    Vrednost je oktalna (na primer, 0666 pomeni branje in pisanje za vse).
    Tega parametra ni na Windows strežniku. -SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization +SeeWikiForAllTeam=Oglejte si stran Wiki za seznam sodelavcev in njihove organizacije UseACacheDelay= Zakasnitev predpomnilnika za izvozni odziv v sekundah (0 ali prazno pomeni, da ni predpomnilnika) -DisableLinkToHelpCenter=Hide the link "Need help or support" on the login page -DisableLinkToHelp=Hide the link to the online help "%s" -AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed. -ConfirmPurge=Are you sure you want to execute this purge?
    This will permanently delete all your data files with no way to restore them (ECM files, attached files...). +DisableLinkToHelpCenter=Skrij povezavo " Potrebujem pomoč ali podporo " na strani za prijavo +DisableLinkToHelp=Skrij povezavo do spletne pomoči " %s " +AddCRIfTooLong=Samodejnega prelivanja besedila ni, predolgo besedilo ne bo prikazano na dokumentih. Če je potrebno, v besedilno območje dodajte vračilo na prvi red. +ConfirmPurge=Ali ste prepričani, da želite izvesti to čiščenje?
    S tem boste trajno izbrisali vse vaše podatkovne datoteke, ne da bi jih bilo mogoče obnoviti (datoteke ECM, priložene datoteke ...). MinLength=Minimalna dolžina LanguageFilesCachedIntoShmopSharedMemory=Datoteke .lang naložene v spomin v skupni rabi -LanguageFile=Language file -ExamplesWithCurrentSetup=Examples with current configuration +LanguageFile=Jezikovna datoteka +ExamplesWithCurrentSetup=Primeri s trenutno konfiguracijo ListOfDirectories=Seznam map z OpenDocument predlogami ListOfDirectoriesForModelGenODT=Seznam map, ki vsebujejo predloge v OpenDocument formatu.

    Tukaj navedite celotno pot do mape.
    Med mapami vstavite CR.
    Mapo GED modula dodajte tukaj DOL_DATA_ROOT/ecm/yourdirectoryname.

    Datoteke v tej mapi morajo imeti končnico .odt ali .ods. -NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +NumberOfModelFilesFound=Število datotek predlog ODT/ODS, najdenih v teh imenikih +ExampleOfDirectoriesForModelGen=Primeri sintakse:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=Z dodatkom takih oznak v predlogo, boste ob kreiranju dokumenta dobili personalizirane vrednosti: FullListOnOnlineDocumentation=http://wiki.dolibarr.org FirstnameNamePosition=Položaj imena/priimka -DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: +DescWeather=Ko število zapoznelih dejanj doseže naslednje vrednosti, bodo na nadzorni plošči prikazane naslednje slike: KeyForWebServicesAccess=Ključi za uporabo Web storitev (parameter "dolibarrkey" v internetnih storitvah) TestSubmitForm=Vnos testnega obrazca -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours. +ThisForceAlsoTheme=Uporaba tega upravitelja menijev bo uporabila tudi lastno temo, ne glede na izbiro uporabnika. Tudi ta upravitelj menijev, specializiran za pametne telefone, ne deluje na vseh pametnih telefonih. Uporabite drugega upravitelja menijev, če imate težave s svojim. ThemeDir=Mapa s preoblekami -ConnectionTimeout=Connection timeout +ConnectionTimeout=Časovna omejitev povezave ResponseTimeout=Časovna omejitev odziva SmsTestMessage=Testno sporočilo od __PHONEFROM__ za __PHONETO__ ModuleMustBeEnabledFirst=Če potrebujete to funkcijo, morate najprej omogočiti Modul %s. SecurityToken=Ključ za šifriranje url -NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external vendor, but you can find some on %s +NoSmsEngine=Pošiljanje SMS ni na voljo. Upravitelj pošiljanja SMS ni nameščen s privzeto distribucijo, ker je odvisen od zunanjega prodajalca, vendar ga lahko najdete nekaj na %s PDF=PDF -PDFDesc=Global options for PDF generation -PDFOtherDesc=PDF Option specific to some modules -PDFAddressForging=Rules for address section -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT -PDFRulesForSalesTax=Rules for Sales Tax / VAT -PDFLocaltax=Rules for %s -HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT -HideDescOnPDF=Hide products description -HideRefOnPDF=Hide products ref. -HideDetailsOnPDF=Hide product lines details -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position +PDFDesc=Globalne možnosti za ustvarjanje PDF +PDFOtherDesc=Možnost PDF, značilna za nekatere module +PDFAddressForging=Pravila za razdelek naslovov +HideAnyVATInformationOnPDF=Skrij vse informacije v zvezi s prometnim davkom/DDV +PDFRulesForSalesTax=Pravila za prometni davek / DDV +PDFLocaltax=Pravila za %s +HideLocalTaxOnPDF=Skrij stopnjo %s v stolpcu Prometni davek / DDV +HideDescOnPDF=Skrij opis izdelkov +HideRefOnPDF=Skrij izdelke ref. +HideDetailsOnPDF=Skrij podrobnosti o linijah izdelkov +PlaceCustomerAddressToIsoLocation=Uporabite francoski standardni položaj (La Poste) za položaj naslova stranke Library=Knjižnica UrlGenerationParameters=Parametri za zagotovitev URL SecurityTokenIsUnique=Uporabite edinstven parameter securekey za vsako URL EnterRefToBuildUrl=Vnesite sklic za predmet %s GetSecuredUrl=Get izračuna URL -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=Skrij nepooblaščene gumbe za dejanja tudi za interne uporabnike (samo drugače obarvani) OldVATRates=Stara stopnja DDV NewVATRates=Nova stopnja DDV PriceBaseTypeToChange=Sprememba cen z definirano osnovno referenčno vrednostjo -MassConvert=Launch bulk conversion -PriceFormatInCurrentLanguage=Price Format In Current Language +MassConvert=Zaženi množično pretvorbo +PriceFormatInCurrentLanguage=Oblika cene v trenutnem jeziku String=Niz -String1Line=String (1 line) +String1Line=Niz (1 vrstica) TextLong=Dolgo besedilo -TextLongNLines=Long text (n lines) -HtmlText=Html text +TextLongNLines=Dolgo besedilo (n vrstic) +HtmlText=Html besedilo Int=Celo število Float=Plavajoče DateAndTime=Datum in ura Unique=Enoličen -Boolean=Boolean (one checkbox) +Boolean=Logična vrednost (eno potrditveno polje) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena +ExtrafieldPriceWithCurrency=Cena z valuto ExtrafieldMail = E-pošta -ExtrafieldUrl = Url +ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Izberi seznam ExtrafieldSelectList = Izberi iz tabele -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=Ločilo (ne polje) ExtrafieldPassword=Geslo -ExtrafieldRadio=Radio buttons (one choice only) -ExtrafieldCheckBox=Checkboxes -ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldRadio=Izbirni gumbi (samo ena izbira) +ExtrafieldCheckBox=Potrditvena polja +ExtrafieldCheckBoxFromList=Potrditvena polja iz tabele ExtrafieldLink=Poveži z objektom -ComputedFormula=Computed field -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
    Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

    Example of formula:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Example to reload object
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Other example of formula to force load of object and its parent object:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' -Computedpersistent=Store computed field -ComputedpersistentDesc=Computed extra fields will be stored in the database, however, the value will only be recalculated when the object of this field is changed. If the computed field depends on other objects or global data this value might be wrong!! -ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).
    Set 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value) -ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    In order to have the list depending on another list:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    - id_field is necessarly a primary int key
    - filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter witch is the current id of current object
    To do a SELECT in filter use $SEL$
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath -ExtrafieldParamHelpSeparator=Keep empty for a simple separator
    Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)
    Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session) -LibraryToBuildPDF=Library used for PDF generation -LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:
    1: local tax apply on products and services without vat (localtax is calculated on amount without tax)
    2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)
    3: local tax apply on products without vat (localtax is calculated on amount without tax)
    4: local tax apply on products including vat (localtax is calculated on amount + main vat)
    5: local tax apply on services without vat (localtax is calculated on amount without tax)
    6: local tax apply on services including vat (localtax is calculated on amount + tax) +ComputedFormula=Računalniško polje +ComputedFormulaDesc=Tukaj lahko vnesete formulo z uporabo drugih lastnosti predmeta ali katerega koli kodiranja PHP, da dobite dinamično izračunano vrednost. Uporabite lahko katero koli formulo, združljivo s PHP, vključno z "?" operator pogoja in naslednji globalni objekt: $db, $conf, $langs, $mysoc, $user, $object .
    OPOZORILO : Morda so na voljo samo nekatere lastnosti predmeta $object. Če potrebujete, da lastnosti niso naložene, sami prinesite predmet v svojo formulo, kot v drugem primeru.
    Uporaba izračunanega polja pomeni, da sami ne morete vnesti nobene vrednosti iz vmesnika. Tudi če pride do sintaksne napake, formula morda ne vrne ničesar.

    Primer formule:
    $object->id < 10 ? round($object-> id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2 )

    Primer za ponovno nalaganje predmeta
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj- >rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Drug primer formule za prisilno nalaganje predmeta in njegovega nadrejenega objekta:
    (($reloadedobj = novo opravilo($db) )) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = nov projekt($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0))? $secondloadedobj->ref: 'Nadrejeni projekt ni bil najden' +Computedpersistent=Shranite izračunano polje +ComputedpersistentDesc=Izračunana dodatna polja bodo shranjena v zbirki podatkov, vendar bo vrednost ponovno izračunana šele, ko bo predmet tega polja spremenjen. Če je izračunano polje odvisno od drugih objektov ali globalnih podatkov, je ta vrednost morda napačna!! +ExtrafieldParamHelpPassword=Če pustite to polje prazno, bo ta vrednost shranjena brez šifriranja (polje mora biti skrito samo z zvezdico na zaslonu).
    Nastavite »samodejno« za uporabo privzetega šifrirnega pravila za shranjevanje gesla v zbirko podatkov (takrat bo prebrana vrednost samo zgoščena vrednost, ni možnosti za pridobitev izvirne vrednosti) +ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_ parent_list_code :parent_key
    2,value2|options_ parent_list_code :parent_key

    In order to have the list depending on another list:
    1,value1| parent_list_code :parent_key
    2,value2| parent_list_code :parent_key +ExtrafieldParamHelpcheckbox=Seznam vrednosti mora biti vrstic z obliko ključ,vrednost (kjer ključ ne sme biti '0')

    na primer:
    1,vrednost1
    2,vrednost2
    3,vrednost3 a0342fccfda19b +ExtrafieldParamHelpradio=Seznam vrednosti mora biti vrstic z obliko ključ,vrednost (kjer ključ ne sme biti '0')

    na primer:
    1,vrednost1
    2,vrednost2
    3,vrednost3 a0342fccfda19b +ExtrafieldParamHelpsellist=Seznam vrednosti prihaja iz tabele
    Sintaksa: table_name:label_field:id_field::filtersql
    Primer: c_typent:libelle:id::filtersql

    - id_field je nujno primarni int ključ a0342bz0fda SQL filter is a0342fccfda Za prikaz samo aktivne vrednosti je lahko preprost preizkus (npr. active=1)
    V filtru lahko uporabite tudi $ID$, ki je trenutni ID trenutnega predmeta
    Za uporabo SELECT v filtru uporabite ključno besedo $SEL$ za bypass zaščita proti vbrizgu.
    če želite filtrirati dodatna polja, uporabite sintakso extra.fieldcode=... (kjer je koda polja koda dodatnega polja)

    Da bi bil seznam odvisen od drugega komplementarnega seznama atributov:
    c_typent:libelle:id:options_ parent_list_code |parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id: parent_list_code |parent_column:filter +ExtrafieldParamHelpchkbxlst=Seznam vrednosti prihaja iz tabele
    Sintaksa: table_name:label_field:id_field::filtersql
    Primer: c_typent:libelle:id::filtersql

    filter je lahko preprost test (npr. active=1), da prikaže samo aktivno vrednost a0342bzcc lahko uporabi tudi $ID$ v filtru, ki je trenutni id trenutnega predmeta
    Če želite izvesti SELECT v filtru, uporabite $SEL$
    , če želite filtrirati dodatna polja, uporabite sintakso extra.fieldcode=... (kjer je koda polja code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_ parent_list_code |parent_column:filter

    In order to have the list depending on another list:
    c_typent: libelle:id: parent_list_code |parent_column:filter +ExtrafieldParamHelplink=Parametri morajo biti ObjectName:Classpath
    Sintaksa: ObjectName:Classpath +ExtrafieldParamHelpSeparator=Naj ostane prazno za preprosto ločilo
    Nastavite to na 1 za strnjeno ločilo (privzeto odprto za novo sejo, nato se status ohrani za vsako uporabniško sejo)
    Nastavite to na 2 za strnjeno ločilo (privzeto strnjeno za novo sejo, nato status se hrani za vsako uporabniško sejo) +LibraryToBuildPDF=Knjižnica, ki se uporablja za ustvarjanje PDF +LocalTaxDesc=Nekatere države lahko zaračunajo dva ali tri davke na vsako vrstico računa. V tem primeru izberite vrsto za drugi in tretji davek ter njegovo stopnjo. Možni tipi so:
    1: lokalni davek velja za izdelke in storitve brez DDV (lokalni davek je izračunan na znesek brez davka)
    2: lokalni davek velja za izdelke in storitve, vključno z DDV (lokalni davek je izračunan na znesek + glavni davek)
    3: lokalni davek velja za izdelke brez DDV (lokalni davek je izračunan na znesek brez davka)
    4: lokalni davek velja za izdelke, vključno z DDV (lokalni davek je izračunan na znesek + glavni DDV)
    5: lokalni davek velja za storitve brez DDV (lokalni davek je izračunan na znesek brez davka)
    6: lokalni davek velja za storitve, vključno z DDV (lokalni davek se izračuna na znesek + davek) SMS=SMS LinkToTestClickToDial=Vnesite telefonsko številko, na katero kličete za prikaz povezave za testiranje ClickToDial url za uporabnika %s RefreshPhoneLink=Osveži pšovezavo LinkToTest=Generiran link z možnostjo klika za uporabnika %s (kliknite številko telefona za testiranje) KeepEmptyToUseDefault=Pusti prazno za uporabo privzete vrednosti -KeepThisEmptyInMostCases=In most cases, you can keep this field empy. +KeepThisEmptyInMostCases=V večini primerov lahko to polje pustite prazno. DefaultLink=Privzeta povezava -SetAsDefault=Set as default +SetAsDefault=Nastavi na privzeto ValueOverwrittenByUserSetup=Pozor, ta vrednost bo morda prepisana s specifično nastavitvijo uporabnika (vsak uporabnik lahko nastavi lastno povezavo za klic s klikom) -ExternalModule=External module -InstalledInto=Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for third-parties +ExternalModule=Zunanji modul +InstalledInto=Nameščen v imenik %s +BarcodeInitForThirdparties=Masovni init črtne kode za tretje osebe BarcodeInitForProductsOrServices=Vzpostavitev ali resetiranje masovne črtne kode za proizvode in storitve -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Začetna vrednost za naslednjih %s praznih zapisov +CurrentlyNWithoutBarCode=Trenutno imate zapis %s na %s %s brez definirane črtne kode. +InitEmptyBarCode=Začetna vrednost za prazne črtne kode %s EraseAllCurrentBarCode=Zbrišite vse trenutne vrednosti črtnih kod -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=Ali ste prepričani, da želite izbrisati vse trenutne vrednosti črtne kode? AllBarcodeReset=Vse vrednosti črtnih kod so bile odstranjene -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer, such as company address or manager names (in addition to professional ids, company capital and VAT number). -NoDetails=No additional details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible. -ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code -ModuleCompanyCodeSupplierAquarium=%s followed by vendor code for a vendor accounting code -ModuleCompanyCodePanicum=Return an empty accounting code. -ModuleCompanyCodeDigitaria=Returns a compound accounting code according to the name of the third party. The code consists of a prefix that can be defined in the first position followed by the number of characters defined in the third party code. -ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by the number of characters: %s for the customer accounting code. -ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
    Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons: -WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM -WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). -WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. -WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. -WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s -ClickToShowDescription=Click to show description -DependsOn=This module needs the module(s) -RequiredBy=This module is required by module(s) -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field. -PageUrlForDefaultValues=You must enter the relative path of the page URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value. -PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third party, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/", so use path like mymodule/mypage.php and not custom/mymodule/mypage.php.
    If you want default value only if url has some parameter, you can use %s -PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s -AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) -EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Enable usage of overwritten translation -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +NoBarcodeNumberingTemplateDefined=V nastavitvah modula črtne kode ni omogočena nobena predloga črtne kode za oštevilčenje. +EnableFileCache=Omogoči predpomnilnik datotek +ShowDetailsInPDFPageFoot=V nogo dodajte več podrobnosti, kot je naslov podjetja ali imena upraviteljev (poleg poklicnih izkaznic, kapitala podjetja in številke za DDV). +NoDetails=V nogi ni dodatnih podrobnosti +DisplayCompanyInfo=Prikaz naslova podjetja +DisplayCompanyManagers=Prikaži imena upraviteljev +DisplayCompanyInfoAndManagers=Prikaži naslov podjetja in imena upraviteljev +EnableAndSetupModuleCron=Če želite, da se ta ponavljajoči se račun ustvari samodejno, mora biti modul *%s* omogočen in pravilno nastavljen. V nasprotnem primeru je potrebno generiranje računov izvesti ročno iz te predloge z uporabo gumba *Ustvari*. Upoštevajte, da tudi če ste omogočili samodejno ustvarjanje, lahko še vedno varno zaženete ročno ustvarjanje. Generiranje dvojnikov za isto obdobje ni možno. +ModuleCompanyCodeCustomerAquarium=%s, ki ji sledi šifra stranke za kodo računovodstva stranke +ModuleCompanyCodeSupplierAquarium=%s, ki mu sledi koda dobavitelja za računovodsko kodo dobavitelja +ModuleCompanyCodePanicum=Vrnite prazno računovodsko kodo. +ModuleCompanyCodeDigitaria=Vrne sestavljeno računovodsko kodo glede na ime partnerja. Koda je sestavljena iz predpone, ki jo je mogoče definirati na prvem mestu, ki ji sledi število znakov, določenih v kodi partnerja. +ModuleCompanyCodeCustomerDigitaria=%s, ki mu sledi skrajšano ime stranke s številom znakov: %s za kodo računovodstva stranke. +ModuleCompanyCodeSupplierDigitaria=%s, ki mu sledi okrnjeno ime dobavitelja s številom znakov: %s za računovodsko kodo dobavitelja. +Use3StepsApproval=Privzeto morata naročila ustvariti in odobriti 2 različna uporabnika (en korak/uporabnik za ustvarjanje in en korak/uporabnik za odobritev. Upoštevajte, da če ima uporabnik tako dovoljenje za ustvarjanje kot odobritev, bo en korak/uporabnik dovolj) . S to možnostjo lahko zahtevate uvedbo tretjega koraka/odobritve uporabnika, če je znesek višji od namenske vrednosti (torej bodo potrebni 3 koraki: 1=potrditev, 2=prva odobritev in 3=druga odobritev, če je znesek zadosten).
    To nastavite na prazno, če zadostuje ena odobritev (2 koraka), nastavite na zelo nizko vrednost (0,1), če je vedno potrebna druga odobritev (3 koraki). +UseDoubleApproval=Uporabite odobritev v treh korakih, ko je znesek (brez davka) višji od... +WarningPHPMail=OPOZORILO: Nastavitev za pošiljanje e-pošte iz aplikacije uporablja privzeto splošno nastavitev. Pogosto je bolje nastaviti odhodno e-pošto tako, da uporablja e-poštni strežnik vašega ponudnika e-poštnih storitev namesto privzete nastavitve iz več razlogov: +WarningPHPMailA=- Uporaba strežnika ponudnika e-poštnih storitev poveča zanesljivost vaše e-pošte, tako da poveča dostavljivost, ne da bi bila označena kot SPAM +WarningPHPMailB=- Nekateri ponudniki e-poštnih storitev (kot je Yahoo) vam ne dovoljujejo pošiljanja e-pošte z drugega strežnika kot z njihovega lastnega strežnika. Vaša trenutna nastavitev za pošiljanje e-pošte uporablja strežnik aplikacije in ne strežnika vašega ponudnika e-pošte, zato bodo nekateri prejemniki (tisti, ki je združljiv z omejevalnim protokolom DMARC) vprašali vašega ponudnika e-pošte, ali lahko sprejmejo vašo e-pošto, in nekateri ponudniki e-pošte (kot je Yahoo) lahko odgovorijo z "ne", ker strežnik ni njihov, zato nekaj vaših poslanih e-poštnih sporočil morda ne bo sprejetih za dostavo (bodite pozorni tudi na kvoto pošiljanja vašega e-poštnega ponudnika). +WarningPHPMailC=- Zanimiva je tudi uporaba strežnika SMTP vašega ponudnika e-poštnih storitev za pošiljanje e-pošte, tako da bodo vsa e-poštna sporočila, poslana iz aplikacije, shranjena tudi v vaš imenik »Poslano« v vašem nabiralniku. +WarningPHPMailD=Priporočljiv protokol za pošiljanje sporočil je "SMTP". +WarningPHPMailDbis=Če res želite ohraniti privzeto metodo »PHP« za pošiljanje e-pošte, preprosto prezrite to opozorilo ali pa jo odstranite tako, da %skliknete tukaj%s. +WarningPHPMail2=Če mora vaš ponudnik e-pošte SMTP omejiti e-poštnega odjemalca na nekatere naslove IP (zelo redko), je to naslov IP poštnega uporabniškega agenta (MUA) za vašo aplikacijo ERP CRM: %s . +WarningPHPMailSPF=Če je ime domene v vašem e-poštnem naslovu pošiljatelja zaščiteno z zapisom SPF (vprašajte svoj register imena domene), morate v zapis SPF DNS vaše domene dodati naslednje IP-je: %s . +ActualMailSPFRecordFound=Najden dejanski zapis SPF (za e-pošto %s): %s +ClickToShowDescription=Kliknite za prikaz opisa +DependsOn=Ta modul potrebuje modul(e) +RequiredBy=Ta modul zahtevajo moduli +TheKeyIsTheNameOfHtmlField=To je ime polja HTML. Za branje vsebine strani HTML in pridobitev ključnega imena polja je potrebno tehnično znanje. +PageUrlForDefaultValues=Vnesti morate relativno pot URL-ja strani. Če v URL vključite parametre, bodo privzete vrednosti veljale, če bodo vsi parametri nastavljeni na isto vrednost. +PageUrlForDefaultValuesCreate=
    Primer:
    Za obrazec za ustvarjanje novega partnerja je %s .
    Za URL zunanjih modulov, nameščenih v imenik po meri, ne vključite "custom/", zato uporabite pot, kot je mymodule/mypage.php in ne custom/mymodule/mypage.php.
    Če želite privzeto vrednost le, če ima url nek parameter, lahko uporabite %s +PageUrlForDefaultValuesList=
    Primer:
    Za stran, ki navaja tretje osebe, je %s .
    Za URL zunanjih modulov, nameščenih v imenik po meri, ne vključite "custom/", zato uporabite pot, kot je mymodule/mypagelist.php in ne custom/mymodule/mypagelist.php.
    Če želite privzeto vrednost le, če ima url nek parameter, lahko uporabite %s +AlsoDefaultValuesAreEffectiveForActionCreate=Upoštevajte tudi, da prepisovanje privzetih vrednosti za ustvarjanje obrazca deluje samo za strani, ki so bile pravilno oblikovane (torej s parametrom action=create ali present ...) +EnableDefaultValues=Omogoči prilagajanje privzetih vrednosti +EnableOverwriteTranslation=Dovoli prilagajanje prevodov +GoIntoTranslationMenuToChangeThis=Za ključ s to kodo je bil najden prevod. Če želite spremeniti to vrednost, jo morate urediti v Home-Setup-translation. +WarningSettingSortOrder=Opozorilo, nastavitev privzetega vrstnega reda lahko povzroči tehnično napako pri obisku strani s seznamom, če je polje neznano polje. Če naletite na takšno napako, se vrnite na to stran, da odstranite privzeti vrstni red razvrščanja in obnovite privzeto vedenje. Field=Polje -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports -WatermarkOnDraftExpenseReports=Watermark on draft expense reports -ProjectIsRequiredOnExpenseReports=The project is mandatory for entering an expense report -PrefillExpenseReportDatesWithCurrentMonth=Pre-fill start and end dates of new expense report with start and end dates of the current month -ForceExpenseReportsLineAmountsIncludingTaxesOnly=Force the entry of expense report amounts always in amount with taxes -AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable) -FilesAttachedToEmail=Attach file -SendEmailsReminders=Send agenda reminders by emails -davDescription=Setup a WebDAV server -DAVSetup=Setup of module DAV -DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) -DAV_ALLOW_PRIVATE_DIRTooltip=The generic private directory is a WebDAV directory anybody can access with its application login/pass. -DAV_ALLOW_PUBLIC_DIR=Enable the generic public directory (WebDAV dedicated directory named "public" - no login required) -DAV_ALLOW_PUBLIC_DIRTooltip=The generic public directory is a WebDAV directory anybody can access (in read and write mode), with no authorization required (login/password account). -DAV_ALLOW_ECM_DIR=Enable the DMS/ECM private directory (root directory of the DMS/ECM module - login required) -DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it. +ProductDocumentTemplates=Predloge dokumentov za ustvarjanje dokumenta izdelka +FreeLegalTextOnExpenseReports=Brezplačno pravno besedilo o poročilih o stroških +WatermarkOnDraftExpenseReports=Vodni žig na osnutkih poročil o stroških +ProjectIsRequiredOnExpenseReports=Projekt je obvezen za vpis stroškovnika +PrefillExpenseReportDatesWithCurrentMonth=Vnaprej izpolnite začetni in končni datum novega poročila o stroških z začetnim in končnim datumom tekočega meseca +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Vsili vnos zneskov poročila o stroških vedno v znesku z davki +AttachMainDocByDefault=To nastavite na 1, če želite glavni dokument privzeto priložiti e-pošti (če je primerno) +FilesAttachedToEmail=Priložite datoteko +SendEmailsReminders=Pošljite opomnike dnevnega reda po e-pošti +davDescription=Nastavite strežnik WebDAV +DAVSetup=Nastavitev modula DAV +DAV_ALLOW_PRIVATE_DIR=Omogoči generični zasebni imenik (namenski imenik WebDAV z imenom "private" - potrebna je prijava) +DAV_ALLOW_PRIVATE_DIRTooltip=Generični zasebni imenik je imenik WebDAV, do katerega lahko kdorkoli dostopa s prijavo/geslom za aplikacijo. +DAV_ALLOW_PUBLIC_DIR=Omogoči generični javni imenik (namenski imenik WebDAV z imenom "javno" - prijava ni potrebna) +DAV_ALLOW_PUBLIC_DIRTooltip=Generični javni imenik je imenik WebDAV, do katerega lahko dostopa vsakdo (v načinu branja in pisanja), brez pooblastila (račun za prijavo/geslo). +DAV_ALLOW_ECM_DIR=Omogoči zasebni imenik DMS/ECM (korenski imenik modula DMS/ECM - potrebna je prijava) +DAV_ALLOW_ECM_DIRTooltip=Korenski imenik, kamor so vse datoteke ročno naložene pri uporabi modula DMS/ECM. Podobno kot za dostop prek spletnega vmesnika boste za dostop potrebovali veljavno prijavo/geslo z ustreznimi dovoljenji. # Modules Module0Name=Uporabniki & Skupine -Module0Desc=Users / Employees and Groups management -Module1Name=Third Parties -Module1Desc=Companies and contacts management (customers, prospects...) +Module0Desc=Upravljanje uporabnikov/zaposlenih in skupin +Module1Name=Partnerji +Module1Desc=Upravljanje s podjetji in stiki (kupci, potencialni kupci...) Module2Name=Komerciala Module2Desc=Upravljanje komerciale -Module10Name=Accounting (simplified) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. +Module10Name=Računovodstvo (poenostavljeno) +Module10Desc=Enostavna računovodska poročila (dnevniki, promet) na podlagi vsebine baze podatkov. Ne uporablja nobene glavne knjige. Module20Name=Ponudbe Module20Desc=Upravljanje komercialnih ponudb -Module22Name=Mass Emailings -Module22Desc=Manage bulk emailing +Module22Name=Množično pošiljanje e-pošte +Module22Desc=Upravljajte množično pošiljanje e-pošte Module23Name=Energija Module23Desc=Nadzor porabe energije Module25Name=Naročila -Module25Desc=Sales order management +Module25Desc=Upravljanje prodajnih naročil Module30Name=Računi -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers -Module40Name=Vendors -Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) -Module42Name=Debug Logs -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. -Module43Name=Debug Bar -Module43Desc=A tool for developper adding a debug bar in your browser. +Module30Desc=Upravljanje računov in dobropisov za stranke. Upravljanje računov in dobropisov za dobavitelje +Module40Name=Dobavitelji +Module40Desc=Dobavitelji in nabava (naročila in prejeti računi) +Module42Name=Dnevniki odpravljanja napak +Module42Desc=Možnosti beleženja (datoteka, syslog, ...). Takšni dnevniki so za tehnične namene/odpravljanje napak. +Module43Name=Vrstica za odpravljanje napak +Module43Desc=Orodje za razvijalce, ki v vaš brskalnik doda vrstico za odpravljanje napak. Module49Name=Urejevalniki Module49Desc=Upravljanje urejevalnikov Module50Name=Proizvodi -Module50Desc=Management of Products +Module50Desc=Upravljanje izdelkov Module51Name=Masovno pošiljanje Module51Desc=Upravljanje masovnega pošiljanja po klasični pošti Module52Name=Zaloge -Module52Desc=Stock management +Module52Desc=Upravljanje zalog Module53Name=Storitve -Module53Desc=Management of Services +Module53Desc=Upravljanje storitev Module54Name=Pogodbe/naročnine -Module54Desc=Management of contracts (services or recurring subscriptions) +Module54Desc=Upravljanje pogodb (storitve ali ponavljajoče se naročnine) Module55Name=Črtne kode -Module55Desc=Barcode or QR code management -Module56Name=Payment by credit transfer -Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. -Module57Name=Payments by Direct Debit -Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. +Module55Desc=Upravljanje s črtno ali QR kodo +Module56Name=Plačilo s kreditnim nakazilom +Module56Desc=Vodenje plačila dobaviteljev s kreditnimi nalogi. Vključuje generiranje datoteke SEPA za evropske države. +Module57Name=Plačila z direktno bremenitvijo +Module57Desc=Upravljanje nalogov za direktne bremenitve. Vključuje generiranje datoteke SEPA za evropske države. Module58Name=Klic s klikom Module58Desc=Integracija klica s klikom -Module60Name=Stickers -Module60Desc=Management of stickers +Module60Name=Nalepke +Module60Desc=Upravljanje nalepk Module70Name=Intervencije Module70Desc=Upravljanje intervencij Module75Name=Stroški in potni nalogi Module75Desc=Upravljanje stroškov in potnih nalogov Module80Name=Pošiljanja -Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module80Desc=Upravljanje pošiljk in dobavnic +Module85Name=Banke in gotovina Module85Desc=Upravljanje bančnih in gotovinskih računov -Module100Name=External Site -Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. +Module100Name=Zunanje spletno mesto +Module100Desc=Dodajte povezavo do zunanjega spletnega mesta kot ikono glavnega menija. Spletna stran je prikazana v okvirju pod zgornjim menijem. Module105Name=Mailman in SPIP Module105Desc=Mailman ali SPIP vmesnik za modul člana Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=Sinhronizacija imenika LDAP Module210Name=PostNuke Module210Desc=Integracija PostNuke Module240Name=Izvoz podatkov -Module240Desc=Tool to export Dolibarr data (with assistance) +Module240Desc=Orodje za izvoz podatkov Dolibarr (s pomočjo) Module250Name=Uvoz podatkov -Module250Desc=Tool to import data into Dolibarr (with assistance) +Module250Desc=Orodje za uvoz podatkov v Dolibarr (s pomočjo) Module310Name=Člani Module310Desc=Upravljanje članov ustanove Module320Name=Vir RSS -Module320Desc=Add a RSS feed to Dolibarr pages -Module330Name=Bookmarks & Shortcuts -Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access -Module400Name=Projects or Leads -Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. +Module320Desc=Dodajte vir RSS stranem Dolibarr +Module330Name=Zaznamki in bližnjice +Module330Desc=Ustvarite vedno dostopne bližnjice do notranjih ali zunanjih strani, do katerih pogosto dostopate +Module400Name=Projekti ali potencialni kupci +Module400Desc=Vodenje projektov, potencialnih strank/priložnosti in/ali nalog. Projektu lahko dodelite katerikoli element (račun, naročilo, predlog, intervencija, ...) in iz pogleda projekta dobite prečni pogled. Module410Name=Internetni koledar Module410Desc=Integracija internetnega koledarja -Module500Name=Taxes & Special Expenses -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module500Name=Davki in posebni stroški +Module500Desc=Upravljanje drugih odhodkov (prometni davki, socialni ali davčni davki, dividende, ...) Module510Name=Plače -Module510Desc=Record and track employee payments -Module520Name=Loans +Module510Desc=Beležite in spremljajte plačila zaposlenih +Module520Name=Posojila Module520Desc=Upravljanje posojil -Module600Name=Notifications on business event -Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails -Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda. -Module610Name=Product Variants -Module610Desc=Creation of product variants (color, size etc.) +Module600Name=Obvestila o poslovnem dogodku +Module600Desc=Pošiljanje e-poštnih obvestil, ki jih sproži poslovni dogodek: na uporabnika (nastavitev, določena za vsakega uporabnika), na stike partnerjev (nastavitev, določena za vsakega partnerja) ali po določenih e-poštnih sporočilih +Module600Long=Upoštevajte, da ta modul pošilja e-pošto v realnem času, ko se zgodi določen poslovni dogodek. Če iščete funkcijo za pošiljanje e-poštnih opomnikov za dogodke dnevnega reda, pojdite v nastavitev modula Dnevni red. +Module610Name=Različice izdelkov +Module610Desc=Izdelava variant izdelkov (barva, velikost itd.) Module700Name=Donacije Module700Desc=Upravljanje donacij -Module770Name=Expense Reports -Module770Desc=Manage expense reports claims (transportation, meal, ...) -Module1120Name=Vendor Commercial Proposals -Module1120Desc=Request vendor commercial proposal and prices +Module770Name=Poročila o stroških +Module770Desc=Upravljajte zahtevke za poročila o stroških (prevoz, obrok, ...) +Module1120Name=Ponudbe dobaviteljev +Module1120Desc=Zahtevki za ponudbo dobavitelja Module1200Name=Mantis Module1200Desc=Mantis integracija Module1520Name=Generiranje dokumenta -Module1520Desc=Mass email document generation +Module1520Desc=Generiranje množičnih e-poštnih dokumentov Module1780Name=Značke/kategorije Module1780Desc=Ustvari značke/kategorijo (proizvodi, kupci, dobavitelji, kontakti ali člani) Module2000Name=Fck urejevalnik -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=Dovoli urejanje/formatiranje besedilnih polj z uporabo CKEditor (html) Module2200Name=Dinamične cene -Module2200Desc=Use maths expressions for auto-generation of prices -Module2300Name=Scheduled jobs -Module2300Desc=Scheduled jobs management (alias cron or chrono table) -Module2400Name=Events/Agenda -Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. +Module2200Desc=Uporabite matematične izraze za samodejno generiranje cen +Module2300Name=Načrtovana delovna mesta +Module2300Desc=Upravljanje načrtovanih opravil (alias cron ali chrono table) +Module2400Name=Dogodki/Koledar +Module2400Desc=Sledite dogodkom. Beležite samodejne dogodke za namene sledenja ali beležite ročne dogodke ali sestanke. To je glavni modul za upravljanje odnosov s kupci ali dobavitelji. Module2500Name=DMS / ECM -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=API/Web services (SOAP server) +Module2500Desc=Sistem za upravljanje dokumentov / upravljanje elektronskih vsebin. Samodejna organizacija vaših ustvarjenih ali shranjenih dokumentov. Delite jih, ko jih potrebujete. +Module2600Name=API / spletne storitve (strežnik SOAP) Module2600Desc=Omogoči strtežnik Dolibarr SOAP, ki zagotavlja API storitve -Module2610Name=API/Web services (REST server) +Module2610Name=API / spletne storitve (strežnik REST) Module2610Desc=Omogoči strtežnik Dolibarr REST, ki zagotavlja API storitve -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) +Module2660Name=Pokliči spletne storitve (odjemalec SOAP) +Module2660Desc=Omogoči odjemalca spletnih storitev Dolibarr (Lahko se uporablja za potiskanje podatkov/zahtev na zunanje strežnike. Trenutno so podprta samo naročila za nakup.) Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access +Module2700Desc=Uporabite spletno storitev Gravatar (www.gravatar.com) za prikaz fotografij uporabnikov/članov (najdete jih skupaj z njihovimi e-poštnimi naslovi). Potrebuje dostop do interneta Module2800Desc=FTP Client Module2900Name=GeoIPMaxmind Module2900Desc=Možnost konverzije GeoIP Maxmind -Module3200Name=Unalterable Archives -Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. -Module3400Name=Social Networks -Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). +Module3200Name=Nespremenljivi arhivi +Module3200Desc=Omogočite nespremenljiv dnevnik poslovnih dogodkov. Dogodki se arhivirajo v realnem času. Dnevnik je tabela verižnih dogodkov samo za branje, ki jo je mogoče izvoziti. Ta modul je lahko obvezen za nekatere države. +Module3400Name=Socialna omrežja +Module3400Desc=Omogočite polja Social Networks v tretjih osebah in naslovih (skype, twitter, facebook, ...). Module4000Name=HRM -Module4000Desc=Human resources management (management of department, employee contracts and feelings) +Module4000Desc=Upravljanje človeških virov (vodenje oddelka, pogodbe zaposlenih in občutki) Module5000Name=Skupine podjetij Module5000Desc=Omogoča upravljaje skupine podjetij -Module6000Name=Inter-modules Workflow -Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) -Module10000Name=Websites -Module10000Desc=Create websites (public) with a WYSIWYG editor. This is a webmaster or developer oriented CMS (it is better to know HTML and CSS language). Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name. -Module20000Name=Leave Request Management -Module20000Desc=Define and track employee leave requests -Module39000Name=Product Lots -Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products -Module40000Name=Multicurrency -Module40000Desc=Use alternative currencies in prices and documents +Module6000Name=Potek dela med moduli +Module6000Desc=Upravljanje poteka dela med različnimi moduli (samodejno ustvarjanje objekta in/ali samodejno spreminjanje stanja) +Module10000Name=Spletne strani +Module10000Desc=Ustvarite spletna mesta (javna) z urejevalnikom WYSIWYG. To je CMS, usmerjen v spletne skrbnike ali razvijalce (bolje je poznati jezika HTML in CSS). Preprosto nastavite svoj spletni strežnik (Apache, Nginx, ...), da bo kazal na namenski imenik Dolibarr, da bo na spletu z vašim imenom domene. +Module20000Name=Zapustite upravljanje zahtev +Module20000Desc=Določite in spremljajte zahteve za dopust zaposlenih +Module39000Name=Sete izdelkov +Module39000Desc=Serije, serijske številke, upravljanje datumov uporabe/razprodaje za izdelke +Module40000Name=Multivaluta +Module40000Desc=V cenah in dokumentih uporabite alternativne valute Module50000Name=PayBox -Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50000Desc=Ponudite strankam spletno plačilno stran PayBox (kreditne/debetne kartice). To lahko uporabite, da svojim strankam omogočite ad hoc plačila ali plačila, povezana z določenim predmetom Dolibarr (račun, naročilo itd.) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale module SimplePOS (simple POS). +Module50100Desc=Modul prodajnega mesta SimplePOS (enostavni POS). Module50150Name=POS TakePOS -Module50150Desc=Point of Sale module TakePOS (touchscreen POS, for shops, bars or restaurants). +Module50150Desc=Modul prodajnega mesta TakePOS (POS z zaslonom na dotik, za trgovine, bare ali restavracije). Module50200Name=Paypal -Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50200Desc=Ponudite strankam spletno plačilno stran PayPal (račun PayPal ali kreditne/debetne kartice). To lahko uporabite, da svojim strankam omogočite ad hoc plačila ali plačila, povezana z določenim predmetom Dolibarr (račun, naročilo itd.) Module50300Name=Stripe -Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) -Module50400Name=Accounting (double entry) -Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module50300Desc=Ponudite strankam spletno plačilno stran Stripe (kreditne/debetne kartice). To lahko uporabite, da svojim strankam omogočite ad hoc plačila ali plačila, povezana z določenim predmetom Dolibarr (račun, naročilo itd.) +Module50400Name=Računovodstvo (dvostavno) +Module50400Desc=Vodenje računovodstva (dvojni vnosi, podpora glavne in pomožne knjige). Izvozite glavno knjigo v več drugih formatih računovodske programske opreme. Module54000Name=Tiskanje IPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). +Module54000Desc=Neposredno tiskanje (brez odpiranja dokumentov) z vmesnikom Cups IPP (tiskalnik mora biti viden s strežnika, CUPS pa mora biti nameščen na strežniku). Module55000Name=Izberi, oceni ali glasuj -Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) +Module55000Desc=Ustvarite spletne ankete, ankete ali glasovanja (kot so Doodle, Studs, RDVz itd.) Module59000Name=Marže -Module59000Desc=Module to follow margins +Module59000Desc=Modul za sledenje robov Module60000Name=Provizije Module60000Desc=Modul za upravljanje s provizijami Module62000Name=Mednarodni Poslovni Izrazi -Module62000Desc=Add features to manage Incoterms +Module62000Desc=Dodajte funkcije za upravljanje Incoterms Module63000Name=Viri -Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module63000Desc=Upravljanje virov (tiskalniki, avtomobili, sobe, ...) za dodeljevanje dogodkov +Module94160Name=Sprejemi Permission11=Branje računov Permission12=Kreiranje/Spreminjanje računov -Permission13=Invalidate customer invoices +Permission13=Razveljavite račune strank Permission14=Potrjevanje računov Permission15=Pošiljanje računov po emailu Permission16=Plačevanje računov @@ -714,31 +717,33 @@ Permission27=Brisanje komercialnih ponudb Permission28=Izvoz komercialnih ponudb Permission31=Branje proizvodov Permission32=Kreiranje/spreminjanje proizvodov +Permission33=Preberite cene izdelkov Permission34=Brisanje proizvodov Permission36=Pregled/upravljanje skritih proizvodov Permission38=Izvoz proizvodov -Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) -Permission45=Export projects +Permission39=Ignorirajte minimalno ceno +Permission41=Preberite projekte in naloge (skupni projekti in projekti, katerih kontakt sem). +Permission42=Ustvarite/spremenite projekte (skupni projekti in projekti, katerih kontakt sem). Uporabnike lahko tudi dodeli projektom in nalogam +Permission44=Brisanje projektov (skupni projekti in projekti, katerih kontakt sem) +Permission45=Izvozni projekti Permission61=Branje intervencij Permission62=Kreiranje/spreminjanje intervencij Permission64=Delete intervencij Permission67=Izvoz intervencij -Permission68=Send interventions by email -Permission69=Validate interventions -Permission70=Invalidate interventions +Permission68=Pošljite intervencije po elektronski pošti +Permission69=Potrdite intervencije +Permission70=Neveljavne intervencije Permission71=Branje članov Permission72=Kreiranje/spreminjanje članov Permission74=Brisanje članov Permission75=Nastavitev tipov članov -Permission76=Export data +Permission76=Izvoz podatkov Permission78=Branje naročnin Permission79=Kreiranje/spreminjanje naročnin Permission81=Branje naročil kupcev Permission82=Kreiranje/spreminjanje naročil kupcev Permission84=Potrjevanje naročil kupcev +Permission85=Ustvarite dokumente prodajnih naročil Permission86=Pošiljanje naročil kupcev Permission87=Zapiranje naročil kupcev Permission88=Preklic naročil kupcev @@ -751,54 +756,54 @@ Permission95=Branje poročil Permission101=Branje pošiljk Permission102=Kreiranje/spreminjanje pošiljk Permission104=Potrjevanje pošiljk -Permission105=Send sendings by email +Permission105=Pošljite pošiljke po e-pošti Permission106=Izvoz pošiljk Permission109=Brisanje pošiljk Permission111=Branje finančnih postavk Permission112=Kreiranje/spreminjanje/brisanje in primerjava transakcij -Permission113=Setup financial accounts (create, manage categories of bank transactions) -Permission114=Reconcile transactions +Permission113=Nastavitev finančnih računov (ustvarjanje, upravljanje kategorij bančnih transakcij) +Permission114=Uskladite transakcije Permission115=Izvoz transakcij in računovodskih izkazov Permission116=Transfer med računi -Permission117=Manage checks dispatching +Permission117=Upravljajte pošiljanje čekov Permission121=Branje partnerjev, vezanih na uporabnika Permission122=Kreiranje/spreminjanje partnerjev, vezanih na uporabnika Permission125=Brisanje partnerjev, vezanih na uporabnika Permission126=Izvoz partnerjev -Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission130=Ustvarite/spremenite podatke o plačilu tretjih oseb +Permission141=Preberite vse projekte in naloge (kot tudi zasebne projekte, za katere nisem kontakt) +Permission142=Ustvari/spremeni vse projekte in naloge (kot tudi zasebne projekte, za katere nisem kontakt) +Permission144=Izbriši vse projekte in naloge (kot tudi zasebne projekte, za katere nisem kontakt) +Permission145=Lahko vnese porabljen čas zame ali mojo hierarhijo za dodeljena opravila (časovnica) Permission146=Brisanje ponudnikov Permission147=Branje statistike -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejections of direct debit payment orders +Permission151=Preberite plačilne naloge z direktno bremenitvijo +Permission152=Ustvarite/spremenite plačilne naloge z direktno obremenitvijo +Permission153=Pošiljanje/prenos plačilnih nalogov z direktno obremenitvijo +Permission154=Zabeležite dobropise/zavrnitve plačilnih nalogov za direktno obremenitev Permission161=Branje pogodb/naročnin Permission162=Kreiranje/spreminjanje pogodb/naročnin Permission163=Aktiviranje pogodbene storitve/naročnine Permission164=Onemogočenje pogodbene storitve/naročnine Permission165=Brisanje pogodb/naročnin -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) +Permission167=Izvozne pogodbe +Permission171=Preberite potovanja in stroške (vaše in vaših podrejenih) Permission172=Kreiranje/spreminjanje potnih nalogov in stroškov Permission173=Brisanje potnih nalogov in stroškov Permission174=Preberi vse potne naloge in stroške Permission178=Izvoz potnih nalogov in stroškov Permission180=Branje dobaviteljev -Permission181=Read purchase orders -Permission182=Create/modify purchase orders -Permission183=Validate purchase orders -Permission184=Approve purchase orders -Permission185=Order or cancel purchase orders -Permission186=Receive purchase orders -Permission187=Close purchase orders -Permission188=Cancel purchase orders +Permission181=Preberite naročilnice +Permission182=Ustvarite/spremenite naročila +Permission183=Potrdite naročila +Permission184=Odobrite naročila +Permission185=Naročite ali prekličite naročila +Permission186=Prejemanje naročilnic +Permission187=Zapri naročila +Permission188=Preklic naročila Permission192=Kreiranje vrstic Permission193=Preklic vrstic -Permission194=Read the bandwidth lines +Permission194=Preberite črte pasovne širine Permission202=Kreiranje ADSL povezav Permission203=Naročanje povezovalnih naročil Permission204=Naročanje povezav @@ -823,13 +828,13 @@ Permission244=Ogled vsebine skritih kategorij Permission251=Branje ostalih uporabnikov ali skupin PermissionAdvanced251=Branje ostalih uporabnikov Permission252=Kreiranje/spreminjanje ostalih uporabnikov, skupin in dovoljenj -Permission253=Create/modify other users, groups and permissions +Permission253=Ustvari/spremeni druge uporabnike, skupine in dovoljenja PermissionAdvanced253=Kreiranje/spreminjanje notranjih/zunanjih uporabnikov in dovoljenj Permission254=Brisanje ali onemogočenje ostalih uporabnikov Permission255=Kreiranje/spreminjanje lastnih uporabniških informacij Permission256=Spreminjanje lastnega gesla -Permission262=Extend access to all third parties AND their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). -Permission263=Extend access to all third parties WITHOUT their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission262=Razširite dostop do vseh tretjih oseb IN njihovih objektov (ne le tretjih oseb, za katere je uporabnik prodajni zastopnik).
    Ne velja za zunanje uporabnike (vedno omejeni nanje za predloge, naročila, račune, pogodbe itd.).
    Ne velja za projekte (samo pravila o projektnih dovoljenjih, vidnosti in dodelitvah). +Permission263=Razširite dostop do vseh tretjih oseb BREZ njihovih predmetov (ne le tretjih oseb, za katere je uporabnik prodajni zastopnik).
    Ne velja za zunanje uporabnike (vedno omejeni nanje za predloge, naročila, račune, pogodbe itd.).
    Ne velja za projekte (samo pravila o projektnih dovoljenjih, vidnosti in dodelitvah). Permission271=Branje CA Permission272=Branje računov Permission273=Izdaja računov @@ -839,10 +844,10 @@ Permission283=Brisanje kontaktov Permission286=Izvoz kontaktov Permission291=Branje tarif Permission292=Nastavitev dovoljenj za tarife -Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission293=Spremenite tarife strank +Permission301=Ustvarite liste črtnih kod PDF +Permission304=Ustvari/spremeni črtne kode +Permission305=Izbrišite črtne kode Permission311=Branje storitev Permission312=Dodelitev storitve/naročnine pogodbi Permission331=Branje zaznamkov @@ -861,11 +866,11 @@ Permission401=Branje popustov Permission402=Kreiranje/spreminjanje popustov Permission403=Potrjevanje popustov Permission404=Brisanje popustov -Permission430=Use Debug Bar -Permission511=Read salaries and payments (yours and subordinates) -Permission512=Create/modify salaries and payments -Permission514=Delete salaries and payments -Permission517=Read salaries and payments everybody +Permission430=Uporabite vrstico za odpravljanje napak +Permission511=Preberite plače in plačila (vaše in podrejenih) +Permission512=Ustvarite/spremenite plače in plačila +Permission514=Izbrišite plače in plačila +Permission517=Vsi preberite plače in plačila Permission519=Izvoz plač Permission520=Branje posojil Permission522=Kreiranje/spreminjanje posojil @@ -874,246 +879,252 @@ Permission525=Dostop do kalkulatorja posojil Permission527=Izvoz posojil Permission531=Branje storitev Permission532=Kreiranje/spreminjanje storitev +Permission533=Preberite cene storitev Permission534=Brisanje storitev Permission536=Pregled/upravljanje skritih storitev Permission538=Izvoz storitev -Permission561=Read payment orders by credit transfer -Permission562=Create/modify payment order by credit transfer -Permission563=Send/Transmit payment order by credit transfer -Permission564=Record Debits/Rejections of credit transfer -Permission601=Read stickers -Permission602=Create/modify stickers -Permission609=Delete stickers -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants -Permission650=Read Bills of Materials -Permission651=Create/Update Bills of Materials -Permission652=Delete Bills of Materials -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) +Permission561=Branje plačilnih nalogov s kreditnim nakazilom +Permission562=Ustvari/spremeni plačilni nalog s kreditnim nakazilom +Permission563=Pošljite/prenesite plačilni nalog s kreditnim nakazilom +Permission564=Zabeležite bremenitve/zavrnitve kreditnega prenosa +Permission601=Preberite nalepke +Permission602=Ustvari/spremeni nalepke +Permission609=Izbriši nalepke +Permission611=Preberite atribute različic +Permission612=Ustvari/posodobi atribute različic +Permission613=Izbrišite atribute različic +Permission650=Preberite sezname materialov +Permission651=Ustvari/posodobi kosovnice +Permission652=Izbriši sezname materialov +Permission660=Preberite proizvodni nalog (MO) +Permission661=Ustvari/posodobi proizvodni nalog (MO) +Permission662=Izbriši proizvodni nalog (MO) Permission701=Branje donacij Permission702=Kreiranje/spreminjanje donacij Permission703=Delete donacij -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission771=Preberite poročila o stroških (vaših in vaših podrejenih) +Permission772=Ustvarite/spremenite poročila o stroških (za vas in vaše podrejene) Permission773=Brisanje stroškovnih poročil Permission775=Odobritev stroškovnih poročil Permission776=Plačilo stroškovnih poročil -Permission777=Read all expense reports (even those of user not subordinates) -Permission778=Create/modify expense reports of everybody +Permission777=Preberite vsa poročila o stroških (tudi tistih uporabnikov in ne podrejenih) +Permission778=Ustvarite/spremenite poročila o stroških za vse Permission779=Izvoz stroškovnih poročil Permission1001=Branje zalog Permission1002=Kreiranje/spreminjanje skladišč Permission1003=Brisanje skladišč Permission1004=Branje gibanja zalog Permission1005=Kreiranje/spreminjanje gibanja zalog -Permission1011=View inventories -Permission1012=Create new inventory -Permission1014=Validate inventory -Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory -Permission1101=Read delivery receipts -Permission1102=Create/modify delivery receipts -Permission1104=Validate delivery receipts -Permission1109=Delete delivery receipts -Permission1121=Read supplier proposals -Permission1122=Create/modify supplier proposals -Permission1123=Validate supplier proposals -Permission1124=Send supplier proposals -Permission1125=Delete supplier proposals -Permission1126=Close supplier price requests +Permission1011=Ogled zalog +Permission1012=Ustvari nov inventar +Permission1014=Potrdite inventar +Permission1015=Omogoča spreminjanje vrednosti PMP za izdelek +Permission1016=Izbriši inventar +Permission1101=Preberite potrdila o dostavi +Permission1102=Ustvarite/spremenite potrdila o dostavi +Permission1104=Potrdite potrdila o dostavi +Permission1109=Izbrišite potrdila o dostavi +Permission1121=Preberite ponudbe dobaviteljev +Permission1122=Ustvarite/spremenite ponudbe dobaviteljev +Permission1123=Potrdite ponudbe dobaviteljev +Permission1124=Pošljite ponudbe dobaviteljev +Permission1125=Izbrišite predloge dobaviteljev +Permission1126=Zaprite zahteve za cene dobaviteljev Permission1181=Branje dobaviteljev -Permission1182=Read purchase orders -Permission1183=Create/modify purchase orders -Permission1184=Validate purchase orders -Permission1185=Approve purchase orders -Permission1186=Order purchase orders -Permission1187=Acknowledge receipt of purchase orders -Permission1188=Delete purchase orders -Permission1189=Check/Uncheck a purchase order reception -Permission1190=Approve (second approval) purchase orders -Permission1191=Export supplier orders and their attributes +Permission1182=Preberite naročilnice +Permission1183=Ustvarite/spremenite naročila +Permission1184=Potrdite naročila +Permission1185=Odobrite naročila +Permission1186=Naročite naročilnice +Permission1187=Potrdite prejem naročilnice +Permission1188=Brisanje naročilnic +Permission1189=Označite/odkljukajte sprejem naročilnice +Permission1190=Odobritev (druga odobritev) naročilnic +Permission1191=Izvoz naročil dobaviteljev in njihovih atributov Permission1201=pregled rezultatov izvoza Permission1202=Kreiranje/spreminjanje izvoza -Permission1231=Read vendor invoices -Permission1232=Create/modify vendor invoices -Permission1233=Validate vendor invoices -Permission1234=Delete vendor invoices -Permission1235=Send vendor invoices by email -Permission1236=Export vendor invoices, attributes and payments -Permission1237=Export purchase orders and their details +Permission1231=Preberite prejete račune +Permission1232=Ustvarite/spremenite prejete račune +Permission1233=Potrdite prejete račune +Permission1234=Izbrišite prejete račune +Permission1235=Pošljite prejete račune po e-pošti +Permission1236=Izvozite prejete račune in plačila +Permission1237=Izvoz naročilnic in njihovih podrobnosti Permission1251=Izvajanje masovnega izvoza zunanjih podatkov v bazo podatkov (nalaganje podatkov) Permission1321=Izvoz računov za kupce, atributov in plačil -Permission1322=Reopen a paid bill -Permission1421=Export sales orders and attributes -Permission1521=Read documents -Permission1522=Delete documents -Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to) -Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) -Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) +Permission1322=Ponovno odprite plačani račun +Permission1421=Izvozite prodajna naročila in atribute +Permission1521=Preberi dokumente +Permission1522=Izbriši dokumente +Permission2401=Preberi dejanja (dogodke ali opravila), povezana z njegovim uporabniškim računom (če je lastnik dogodka ali mu je dogodek dodeljen) +Permission2402=Ustvari/spremeni dejanja (dogodke ali opravila), povezana z njegovim uporabniškim računom (če je lastnik dogodka) +Permission2403=Izbriši dejanja (dogodke ali opravila), povezana z njegovim uporabniškim računom (če je lastnik dogodka) Permission2411=Branje aktivnosti (dogodki ali naloge) ostalih Permission2412=Kreiranje/spreminjanje aktivnosti (dogodki ali naloge) ostalih Permission2413=Delete aktivnosti (dogodki ali naloge) ostalih -Permission2414=Export actions/tasks of others +Permission2414=Izvoz dejanj/nalog drugih Permission2501=Branje dokumentov Permission2502=Pošiljanje ali brisanje dokumentov Permission2503=Pošiljanje ali brisanje dokumentov Permission2515=Nastavitve map dokumentov Permission2801=Uporaba FTP klienta samo za branje (samo brskanje in prenašanje) Permission2802=Uporaba FTP klienta za pisanje (brisanje ali nalaganje datotek) -Permission3200=Read archived events and fingerprints -Permission3301=Generate new modules -Permission4001=Read skill/job/position -Permission4002=Create/modify skill/job/position -Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu -Permission4031=Read personal information -Permission4032=Write personal information -Permission10001=Read website content -Permission10002=Create/modify website content (html and javascript content) -Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. -Permission10005=Delete website content -Permission20001=Read leave requests (your leave and those of your subordinates) -Permission20002=Create/modify your leave requests (your leave and those of your subordinates) +Permission3200=Branje arhiviranih dogodkov in prstnih odtisov +Permission3301=Ustvarite nove module +Permission4001=Preberite spretnost/delo/položaj +Permission4002=Ustvari/spremeni veščino/delo/položaj +Permission4003=Izbriši spretnost/delo/položaj +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Potrdite oceno +Permission4025=Izbriši oceno +Permission4028=Oglejte si primerjalni meni +Permission4031=Preberite osebne podatke +Permission4032=Napišite osebne podatke +Permission4033=Read all evaluations (even those of user not subordinates) +Permission10001=Preberite vsebino spletne strani +Permission10002=Ustvari/spremeni vsebino spletnega mesta (vsebina html in javascript) +Permission10003=Ustvari/spremeni vsebino spletne strani (dinamična php koda). Nevarno, mora biti rezervirano za omejene razvijalce. +Permission10005=Izbrišite vsebino spletne strani +Permission20001=Preberite prošnje za dopust (vaš dopust in dopust vaših podrejenih) +Permission20002=Ustvarite/spremenite svoje prošnje za dopust (vaš dopust in dopust vaših podrejenih) Permission20003=Brisanje zahtevkov za dopust -Permission20004=Read all leave requests (even those of user not subordinates) -Permission20005=Create/modify leave requests for everybody (even those of user not subordinates) -Permission20006=Administer leave requests (setup and update balance) -Permission20007=Approve leave requests +Permission20004=Preberite vse prošnje za dopust (tudi tiste uporabnikov, ki niso podrejeni) +Permission20005=Ustvari/spremeni prošnje za dopust za vse (tudi za uporabnike in ne za podrejene) +Permission20006=Upravljanje zahtev za dopust (nastavitev in posodobitev stanja) +Permission20007=Odobrite prošnje za dopust Permission23001=Preberi načrtovano delo Permission23002=Ustvari/posodobi načrtovano delo Permission23003=Izbriši načrtovano delo Permission23004=Izvedi načrtovano delo -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) -Permission50152=Edit sales lines -Permission50153=Edit ordered sales lines +Permission50101=Uporabite prodajno mesto (SimplePOS) +Permission50151=Uporabite prodajno mesto (TakePOS) +Permission50152=Uredite prodajne vrstice +Permission50153=Uredite naročene prodajne vrstice Permission50201=Branje prenosov Permission50202=Uvoz prenosov -Permission50330=Read objects of Zapier -Permission50331=Create/Update objects of Zapier -Permission50332=Delete objects of Zapier -Permission50401=Bind products and invoices with accounting accounts -Permission50411=Read operations in ledger -Permission50412=Write/Edit operations in ledger -Permission50414=Delete operations in ledger -Permission50415=Delete all operations by year and journal in ledger -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define fiscal periods. Validate transactions and close fiscal periods. -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50330=Preberite predmete Zapierja +Permission50331=Ustvari/posodobi predmete Zapierja +Permission50332=Izbrišite predmete Zapierja +Permission50401=Povežite izdelke in račune z računovodskimi računi +Permission50411=Preberite operacije v knjigi +Permission50412=Pisanje/urejanje operacij v knjigi +Permission50414=Brisanje operacij v knjigi +Permission50415=Izbrišite vse operacije po letih in dnevnik v knjigi +Permission50418=Izvozne operacije glavne knjige +Permission50420=Poročila in izvozna poročila (promet, stanje, dnevniki, knjiga) +Permission50430=Določite fiskalna obdobja. Potrdite transakcije in zaprite fiskalna obdobja. +Permission50440=Vodenje kontnega načrta, postavitev računovodstva +Permission51001=Preberi sredstva +Permission51002=Ustvari/posodobi sredstva +Permission51003=Izbriši sredstva +Permission51005=Nastavite vrste sredstev Permission54001=Tiskaj Permission55001=Branje anket Permission55002=Kreiranje/spreminjanje anket Permission59001=Branje komercialnih marž Permission59002=Določitev komercialnih marž Permission59003=Branje vsake uporabniške marže -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -Permission64001=Allow direct printing -Permission67000=Allow printing of receipts -Permission68001=Read intracomm report -Permission68002=Create/modify intracomm report -Permission68004=Delete intracomm report -Permission941601=Read receipts -Permission941602=Create and modify receipts -Permission941603=Validate receipts -Permission941604=Send receipts by email -Permission941605=Export receipts -Permission941606=Delete receipts -DictionaryCompanyType=Third-party types -DictionaryCompanyJuridicalType=Third-party legal entities -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts -DictionaryCanton=States/Provinces +Permission63001=Preberite vire +Permission63002=Ustvari/spremeni vire +Permission63003=Izbriši vire +Permission63004=Povežite vire z dogodki dnevnega reda +Permission64001=Dovoli neposredno tiskanje +Permission67000=Dovoli tiskanje računov +Permission68001=Preberite intracomm poročilo +Permission68002=Ustvari/spremeni intracomm poročilo +Permission68004=Izbriši intracomm poročilo +Permission941601=Preberite potrdila +Permission941602=Ustvarite in spremenite račune +Permission941603=Potrdite potrdila +Permission941604=Pošljite potrdila po e-pošti +Permission941605=Izvozna potrdila +Permission941606=Izbriši račune +DictionaryCompanyType=Vrste partnerjev +DictionaryCompanyJuridicalType=Pravne osebe partnerja +DictionaryProspectLevel=Nivo potenciala za podjetja +DictionaryProspectContactLevel=Oglejte si potencialno raven stikov +DictionaryCanton=Države/province DictionaryRegion=Regije DictionaryCountry=Države DictionaryCurrency=Valute -DictionaryCivility=Honorific titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Types of social or fiscal taxes +DictionaryCivility=Častni nazivi +DictionaryActions=Vrste dnevnih dogodkov v koledarju +DictionarySocialContributions=Vrste socialnih ali davčnih davkov DictionaryVAT=Stopnje DDV ali davkov -DictionaryRevenueStamp=Amount of tax stamps +DictionaryRevenueStamp=Količina davčnih znamk DictionaryPaymentConditions=Plačilni pogoji -DictionaryPaymentModes=Payment Modes +DictionaryPaymentModes=Načini plačila DictionaryTypeContact=Tipi kontaktov/naslovov -DictionaryTypeOfContainer=Website - Type of website pages/containers +DictionaryTypeOfContainer=Spletno mesto – vrsta strani/vsebnikov spletnega mesta DictionaryEcotaxe=Ekološka taksa (WEEE) DictionaryPaperFormat=Formati papirja -DictionaryFormatCards=Card formats -DictionaryFees=Expense report - Types of expense report lines +DictionaryFormatCards=Formati kartic +DictionaryFees=Poročilo o stroških – vrste vrstic poročila o stroških DictionarySendingMethods=Načini pošiljanja -DictionaryStaff=Number of Employees +DictionaryStaff=Število zaposlenih DictionaryAvailability=Zakasnitev dobave -DictionaryOrderMethods=Order methods +DictionaryOrderMethods=Metode naročila DictionarySource=Izvor ponudb/naročil -DictionaryAccountancyCategory=Personalized groups for reports +DictionaryAccountancyCategory=Prilagojene skupine za poročila DictionaryAccountancysystem=Modeli kontnih planov -DictionaryAccountancyJournal=Accounting journals -DictionaryEMailTemplates=Email Templates +DictionaryAccountancyJournal=Računovodski dnevniki +DictionaryEMailTemplates=E-poštne predloge DictionaryUnits=Enote -DictionaryMeasuringUnits=Measuring Units -DictionarySocialNetworks=Social Networks -DictionaryProspectStatus=Prospect status for companies -DictionaryProspectContactStatus=Prospect status for contacts -DictionaryHolidayTypes=Leave - Types of leave -DictionaryOpportunityStatus=Lead status for project/lead -DictionaryExpenseTaxCat=Expense report - Transportation categories -DictionaryExpenseTaxRange=Expense report - Range by transportation category -DictionaryTransportMode=Intracomm report - Transport mode -DictionaryBatchStatus=Product lot/serial Quality Control status -DictionaryAssetDisposalType=Type of disposal of assets -TypeOfUnit=Type of unit +DictionaryMeasuringUnits=Merske enote +DictionarySocialNetworks=Socialna omrežja +DictionaryProspectStatus=Status potenciala za podjetja +DictionaryProspectContactStatus=Status potencialne stranke za stike +DictionaryHolidayTypes=Dopust - Vrste dopusta +DictionaryOpportunityStatus=Stanje potencialne stranke za projekt/mogočo stranko +DictionaryExpenseTaxCat=Poročilo o stroških - kategorije prevozov +DictionaryExpenseTaxRange=Poročilo o stroških - obseg po kategoriji prevoza +DictionaryTransportMode=Intracomm poročilo - Način transporta +DictionaryBatchStatus=Stanje kontrole kakovosti serije izdelka/serije +DictionaryAssetDisposalType=Vrsta odtujitve sredstev +TypeOfUnit=Vrsta enote SetupSaved=Nastavitve shranjene -SetupNotSaved=Setup not saved -BackToModuleList=Back to Module list -BackToDictionaryList=Back to Dictionaries list -TypeOfRevenueStamp=Type of tax stamp -VATManagement=Sales Tax Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sales Tax rate follows the active standard rule:
    If the seller is not subject to Sales tax, then Sales tax defaults to 0. End of rule.
    If the (seller's country = buyer's country), then the Sales tax by default equals the Sales tax of the product in the seller's country. End of rule.
    If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default VAT is 0. This rule is dependant on the seller's country - please consult with your accountant. The VAT should be paid by the buyer to the customs office in their country and not to the seller. End of rule.
    If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community VAT number) then the VAT defaults to the VAT rate of the seller's country. End of rule.
    If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community VAT number), then the VAT is 0 by default. End of rule.
    In any other case the proposed default is Sales tax=0. End of rule. -VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for cases like associations, individuals or small companies. -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration. This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices. +SetupNotSaved=Nastavitev ni shranjena +OAuthServiceConfirmDeleteTitle=Izbriši vnos OAuth +OAuthServiceConfirmDeleteMessage=Ali ste prepričani, da želite izbrisati ta vnos OAuth? Izbrisani bodo tudi vsi obstoječi žetoni zanj. +ErrorInEntryDeletion=Napaka pri brisanju vnosa +EntryDeleted=Vnos izbrisan +BackToModuleList=Nazaj na seznam modulov +BackToDictionaryList=Nazaj na seznam slovarjev +TypeOfRevenueStamp=Vrsta davčne znamke +VATManagement=Upravljanje prometnega davka +VATIsUsedDesc=Stopnja prometnega davka pri ustvarjanju možnosti, računov, naročil itd. privzeto sledi aktivnemu standardnemu pravilu:
    Če prodajalec ni zavezan prometnemu davku, je privzeta vrednost prometnega davka 0. Konec pravila.
    Če je (država prodajalca = država kupca), potem je prometni davek privzeto enak prometnemu davku izdelka v državi prodajalca. Konec pravila.
    Če sta prodajalec in kupec oba v Evropski skupnosti in je blago proizvod, povezan s prevozom (prevoz, ladijski promet, letalski prevoznik), je privzeti DDV 0. To pravilo je odvisno od države prodajalca – posvetujte se s svojim računovodjo. DDV mora kupec plačati carinskemu uradu v svoji državi in ne prodajalcu. Konec pravila.
    Če sta prodajalec in kupec oba v Evropski skupnosti in kupec ni podjetje (z registrirano številko za DDV znotraj Skupnosti), je DDV privzeta stopnja DDV v državi prodajalca. Konec pravila.
    Če sta prodajalec in kupec oba v Evropski skupnosti in je kupec podjetje (z registrirano številko DDV znotraj Skupnosti), potem je DDV privzeto 0. Konec pravila.
    V vseh drugih primerih je predlagana privzeta vrednost prometni davek=0. Konec pravila. +VATIsNotUsedDesc=Privzeto je predlagani prometni davek 0, kar se lahko uporablja za primere, kot so združenja, posamezniki ali mala podjetja. +VATIsUsedExampleFR=V Franciji pomeni podjetja ali organizacije, ki imajo pravi davčni sistem (poenostavljeno real ali normal real). Sistem, v katerem se DDV prijavi. +VATIsNotUsedExampleFR=V Franciji pomeni združenja, ki niso prijavila prometnega davka, ali podjetja, organizacije ali svobodne poklice, ki so izbrali davčni sistem mikro podjetij (prometni davek v franšizi) in plačali franšizni prometni davek brez kakršne koli napovedi prometnega davka. Ta izbira bo na računih prikazala sklic »Prometni davek se ne uporablja – art-293B CGI«. ##### Local Taxes ##### -TypeOfSaleTaxes=Type of sales tax +TypeOfSaleTaxes=Vrsta prometnega davka LTRate=Stopnja LocalTax1IsNotUsed=Ne uporabi drugega davka -LocalTax1IsUsedDesc=Use a second type of tax (other than first one) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax1IsUsedDesc=Uporabite drugo vrsto davka (razen prvega) +LocalTax1IsNotUsedDesc=Ne uporabljajte druge vrste davka (razen prvega) LocalTax1Management=Druga vrsta davka LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Ne uporabi tretjega davka -LocalTax2IsUsedDesc=Use a third type of tax (other than first one) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) -LocalTax2Management=Tretja vrsta davka +LocalTax2IsNotUsed=Ne uporabi alternativnega davka +LocalTax2IsUsedDesc=Uporabite tretjo vrsto davka (razen prve) +LocalTax2IsNotUsedDesc=Ne uporabljajte druge vrste davka (razen prvega) +LocalTax2Management=Alternativni davek LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=RE Management -LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the buyer is not subjected to RE, RE by default=0. End of rule.
    If the buyer is subjected to RE then the RE by default. End of rule.
    +LocalTax1IsUsedDescES=Stopnja RE privzeto pri ustvarjanju možnosti, računov, naročil itd. upošteva aktivno standardno pravilo:
    Če kupec ni podvržen RE, je RE privzeto = 0. Konec pravila.
    Če je kupec podvržen RE, potem je RE privzeto. Konec pravila.
    LocalTax1IsNotUsedDescES=Privzeto predlagani RE je 0. Konec pravila. LocalTax1IsUsedExampleES=V Španiji so strokovnjaki, z nekaterimi posebnimi deli španskega IAE. LocalTax1IsNotUsedExampleES=V Španiji so strokovno in družb in ob upoštevanju nekaterih odsekih španske IAE. LocalTax2ManagementES=IRPF Management -LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
    If the seller is subjected to IRPF then the IRPF by default. End of rule.
    +LocalTax2IsUsedDescES=Stopnja IRPF privzeto pri ustvarjanju možnosti, računov, naročil itd. upošteva aktivno standardno pravilo:
    Če prodajalec ni podvržen IRPF, potem je IRPF privzeto = 0. Konec pravila.
    Če je prodajalec predmet IRPF, je IRPF privzeto. Konec pravila.
    LocalTax2IsNotUsedDescES=Privzeto predlagani IRPF je 0. Konec pravila. LocalTax2IsUsedExampleES=V Španiji, samostojnimi in neodvisni strokovnjaki, ki opravljajo storitve in podjetja, ki so se odločili davčni sistem modulov. -LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules. -RevenueStampDesc=The "tax stamp" or "revenue stamp" is a fixed tax you per invoice (It does not depend on amount of invoice). It can also be a percent tax but using the second or third type of tax is better for percent taxes as tax stamps does not provide any reporting. Only few countries uses this type of tax. -UseRevenueStamp=Use a tax stamp -UseRevenueStampExample=The value of tax stamp is defined by default into the setup of dictionaries (%s - %s - %s) +LocalTax2IsNotUsedExampleES=V Španiji so podjetja, za katera ne velja davčni sistem modulov. +RevenueStampDesc="Tax stamp" ali "revenue stamp" je fiksen davek na račun (ni odvisen od zneska računa). Lahko je tudi odstotni davek, vendar je za odstotne davke boljša uporaba druge ali tretje vrste davka, saj davčne znamke ne zagotavljajo nobenega poročanja. Le malo držav uporablja to vrsto davka. +UseRevenueStamp=Uporabite davčno znamko +UseRevenueStampExample=Vrednost davčne znamke je privzeto določena v nastavitvah slovarjev (%s - %s - %s) CalcLocaltax=Poročila o lokalnih davkih CalcLocaltax1=Prodaja - Nabava CalcLocaltax1Desc=Poročila o lokalnih davkih so izračunana kot razlika med nabavnimi in prodajnimi davki @@ -1121,20 +1132,20 @@ CalcLocaltax2=Nabava CalcLocaltax2Desc=Poročila o lokalnih davkih so seštevek nabavnih davkov CalcLocaltax3=Prodaja CalcLocaltax3Desc=Poročila o lokalnih davkih so seštevek prodajnih davkov -NoLocalTaxXForThisCountry=According to the setup of taxes (See %s - %s - %s), your country does not need to use such type of tax +NoLocalTaxXForThisCountry=Glede na nastavitev davkov (glejte %s - %s - %s) vaši državi ni treba uporabljati takšne vrste davka LabelUsedByDefault=Privzet naziv, če za kodo ne obstaja prevod LabelOnDocuments=Naslov na dokumentu -LabelOrTranslationKey=Label or translation key -ValueOfConstantKey=Value of a configuration constant -ConstantIsOn=Option %s is on -NbOfDays=No. of days +LabelOrTranslationKey=Oznaka ali prevodni ključ +ValueOfConstantKey=Vrednost konfiguracijske konstante +ConstantIsOn=Možnost %s je vklopljena +NbOfDays=št. dni AtEndOfMonth=Na koncu meseca -CurrentNext=Current/Next +CurrentNext=Določen dan v mesecu Offset=Odmik AlwaysActive=Vedno aktiven Upgrade=Nadgradnja MenuUpgrade=Nadgradnja/razširitev -AddExtensionThemeModuleOrOther=Deploy/install external app/module +AddExtensionThemeModuleOrOther=Namestite/namestite zunanjo aplikacijo/modul WebServer=Spletni strežnik DocumentRootServer=Korenska mapa spletnega strežnika DataRootServer=Mapa s podatkovnimi datotekami @@ -1152,29 +1163,29 @@ DatabaseUser=Uporabnik baze podatkov DatabasePassword=Geslo za bazo podatkov Tables=Tabele TableName=Ime tabele -NbOfRecord=No. of records +NbOfRecord=Št. zapisov Host=Server DriverType=Tip gonilnika SummarySystem=Povzetek sistemskih informacij SummaryConst=Seznam vseh Dolibarr nastavitvenih parametrov -MenuCompanySetup=Company/Organization +MenuCompanySetup=Podjetje/organizacija DefaultMenuManager= Vmesnik za standardni meni DefaultMenuSmartphoneManager=Vmesnik za Smartphone meni Skin=Tema preobleke DefaultSkin=Privzeta tema preobleke MaxSizeList=Največja dolžina seznama -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) +DefaultMaxSizeList=Privzeta največja dolžina za sezname +DefaultMaxSizeShortList=Privzeta največja dolžina za kratke sezname (tj. na kartici stranke) MessageOfDay=Sporočilo dneva MessageLogin=Sporočilo na prijavni strani -LoginPage=Login page -BackgroundImageLogin=Background image +LoginPage=prijavna stran +BackgroundImageLogin=Slika ozadja PermanentLeftSearchForm=Stalno polje za iskanje na levem meniju -DefaultLanguage=Default language -EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships -EnableShowLogo=Show the company logo in the menu -CompanyInfo=Company/Organization -CompanyIds=Company/Organization identities +DefaultLanguage=Privzeti jezik +EnableMultilangInterface=Omogočite večjezično podporo za odnose s kupci ali dobavitelji +EnableShowLogo=Pokažite logotip podjetja v meniju +CompanyInfo=Podjetje/organizacija +CompanyIds=Identitete podjetij/organizacij CompanyName=Ime podjetja CompanyAddress=Naslov CompanyZip=Poštna številka @@ -1182,259 +1193,267 @@ CompanyTown=Mesto CompanyCountry=Država CompanyCurrency=Osnovna valuta CompanyObject=Dejavnost podjetja -IDCountry=ID country +IDCountry=ID države Logo=Logotip -LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...) -LogoSquarred=Logo (squarred) -LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into display setup). +LogoDesc=Glavni logotip podjetja. Uporabljeno bo v ustvarjenih dokumentih (PDF, ...) +LogoSquarred=Logo (v kvadratu) +LogoSquarredDesc=Ikona mora biti v obliki kvadrata (širina = višina). Ta logotip bo uporabljen kot priljubljena ikona ali druga potreba, na primer za zgornjo menijsko vrstico (če ni onemogočen v nastavitvah zaslona). DoNotSuggestPaymentMode=Ne predlagaj NoActiveBankAccountDefined=Ni definiran aktivni bančni račun OwnerOfBankAccount=Lastnik bančnega računa %s BankModuleNotActive=Modul za bančne račune ni omogočen -ShowBugTrackLink=Show the link "%s" -ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' +ShowBugTrackLink=Prikaži povezavo " %s " +ShowBugTrackLinkDesc=Pustite prazno, da ne prikažete te povezave, uporabite vrednost 'github' za povezavo do projekta Dolibarr ali neposredno definirajte url 'https://...' Alerts=Opozorila -DelaysOfToleranceBeforeWarning=Displaying a warning alert for... -DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposal not closed -Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done -Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve -Delays_MAIN_DELAY_HOLIDAYS=Leave requests to approve -SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured. -SetupDescription2=The following two sections are mandatory (the two first entries in the Setup menu): -SetupDescription3=%s -> %s

    Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4=%s -> %s

    This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. -SetupDescription5=Other Setup menu entries manage optional parameters. -SetupDescriptionLink=%s - %s -SetupDescription3b=Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4b=This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. -AuditedSecurityEvents=Security events that are audited -NoSecurityEventsAreAduited=No security events are audited. You can enable them from menu %s -Audit=Security events -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -InfoSecurity=About Security +DelaysOfToleranceBeforeWarning=Prikaz opozorila za ... +DelaysOfToleranceDesc=Nastavite zakasnitev, preden se na zaslonu prikaže opozorilna ikona %s za pozni element. +Delays_MAIN_DELAY_ACTIONS_TODO=Načrtovani dogodki (dnevni red dogodkov) niso zaključeni +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekt ni pravočasno zaključen +Delays_MAIN_DELAY_TASKS_TODO=Načrtovana naloga (projektne naloge) ni izvedena +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Naročilo ni obdelano +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Naročilo ni obdelano +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Predlog ni zaprt +Delays_MAIN_DELAY_PROPALS_TO_BILL=Predlog ni zaračunan +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Storitev za aktiviranje +Delays_MAIN_DELAY_RUNNING_SERVICES=Storitev je potekla +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Neplačan prejeti račun +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Neplačan račun stranke +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Čakanje na bančno uskladitev +Delays_MAIN_DELAY_MEMBERS=Zamujena članarina +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Ček depozit ni opravljen +Delays_MAIN_DELAY_EXPENSEREPORTS=Poročilo o stroških za odobritev +Delays_MAIN_DELAY_HOLIDAYS=Zahteve pustite v odobritvi +SetupDescription1=Preden začnete uporabljati Dolibarr, morate definirati nekaj začetnih parametrov in omogočiti/konfigurirati module. +SetupDescription2=Naslednja dva razdelka sta obvezna (prva dva vnosa v meniju Nastavitve): +SetupDescription3= %s -> %s

    Osnovni parametri, ki se uporabljajo za prilagoditev privzetega delovanja vaše aplikacije (npr. za funkcije, povezane z državo). +SetupDescription4= %s -> %s

    Ta programska oprema je zbirka številnih modulov/aplikacij. Moduli, povezani z vašimi potrebami, morajo biti omogočeni in konfigurirani. Z aktivacijo teh modulov se prikažejo vnosi v meniju. +SetupDescription5=Drugi vnosi v nastavitvenem meniju upravljajo izbirne parametre. +SetupDescriptionLink= %s - %s +SetupDescription3b=Osnovni parametri, ki se uporabljajo za prilagajanje privzetega vedenja vaše aplikacije (npr. za funkcije, povezane z državo). +SetupDescription4b=Ta programska oprema je zbirka številnih modulov/aplikacij. Moduli, povezani z vašimi potrebami, morajo biti omogočeni in konfigurirani. Z aktivacijo teh modulov se prikažejo vnosi v meniju. +AuditedSecurityEvents=Varnostni dogodki, ki so revidirani +NoSecurityEventsAreAduited=Noben varnostni dogodek ni revidiran. Omogočite jih lahko v meniju %s +Audit=Varnostni dogodki +InfoDolibarr=O Dolibarru +InfoBrowser=O brskalniku +InfoOS=O OS +InfoWebServer=O spletnem strežniku +InfoDatabase=O bazi podatkov +InfoPHP=O PHP +InfoPerf=O predstavah +InfoSecurity=O varnosti BrowserName=Ime brskalnika BrowserOS=OS brskalnika ListOfSecurityEvents=Seznam varnostnih dogodkov Dolibarr SecurityEventsPurged=Varnostni dogodki očistimo -LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. -AreaForAdminOnly=Setup parameters can be set by administrator users only. +TrackableSecurityEvents=Sledljivi varnostni dogodki +LogEventDesc=Omogoči beleženje določenih varnostnih dogodkov. Administratorji dnevnik prek menija %s - %s . Opozorilo, ta funkcija lahko ustvari veliko količino podatkov v zbirki podatkov. +AreaForAdminOnly=Nastavitvene parametre lahko nastavijo samo skrbniški uporabniki . SystemInfoDesc=Sistemske informacije so raznovrstne tehnične informacije, ki so na voljo samo v bralnem načinu in jih vidi samo administrator. -SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. -CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. -AccountantFileNumber=Accountant code -DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. -AvailableModules=Available app/modules +SystemAreaForAdminOnly=To področje je na voljo samo skrbniškim uporabnikom. Uporabniška dovoljenja Dolibarr ne morejo spremeniti te omejitve. +CompanyFundationDesc=Uredite podatke o svojem podjetju/organizaciji. Ko končate, kliknite gumb "%s" na dnu strani. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". +AccountantDesc=Če imate zunanjega računovodjo/knjigovodjo, lahko tukaj uredite njegove podatke. +AccountantFileNumber=Koda računovodje +DisplayDesc=Tukaj lahko spremenite parametre, ki vplivajo na videz in predstavitev aplikacije. +AvailableModules=Razpoložljiva aplikacija/moduli ToActivateModule=Za aktivacijo modula, pojdite na področje nastavitev (Domov->Nastavitve->Moduli). SessionTimeOut=Potečen čas seje -SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every %s/%s access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).
    Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is. -SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every %s seconds (= value of parameter session.gc_maxlifetime), so changing the value here has no effect. You must ask the server administrator to change session delay. +SessionExplanation=Ta številka zagotavlja, da seja nikoli ne bo potekla pred to zakasnitvijo, če čistilec sej izvede notranji čistilec sej PHP (in nič drugega). Notranji čistilec sej PHP ne zagotavlja, da bo seja potekla po tej zakasnitvi. Potekel bo po tej zakasnitvi in ko se zažene čistilec seje, torej vsak %s/%s dostop, vendar samo med dostopom drugih sej (če je vrednost 0, to pomeni, da čiščenje seje izvede samo zunanji postopek).
    Opomba: na nekaterih strežnikih z zunanjim mehanizmom za čiščenje sej (cron pod debian, ubuntu ...) se lahko seje uničijo po obdobju, ki ga določi zunanja nastavitev, ne glede na to, kakšna je tukaj vnesena vrednost. +SessionsPurgedByExternalSystem=Zdi se, da se seje na tem strežniku čisti z zunanjim mehanizmom (cron pod debian, ubuntu ...), verjetno vsakih %s sekund (= vrednost parametra session.gc_maxlifetime tukaj nima učinka), tako da sprememba vrednosti tukaj ne vpliva. Za spremembo zakasnitve seje morate prositi skrbnika strežnika. TriggersAvailable=Možni prožilci -TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...). +TriggersDesc=Sprožilci so datoteke, ki bodo spremenile vedenje poteka dela Dolibarr, ko bodo kopirane v imenik htdocs/core/triggers . Realizirajo nove akcije, ki se aktivirajo na dogodkih Dolibarr (ustanovitev novega podjetja, potrjevanje računov, ...). TriggerDisabledByName=Prožilci v tej datoteki so onemogočeni s predpono -NORUN v njihovem imenu. TriggerDisabledAsModuleDisabled=Prožilci v tej datoteki so onemogočeni, ker je onemogočen modul %s . TriggerAlwaysActive=Prožilci v tej datoteki so aktivni vedno, ne glede na aktiven Dolibarr module. TriggerActiveAsModuleActive=Prožilci v tej datoteki so aktivni, ker je omogočen modul %s . -GeneratedPasswordDesc=Choose the method to be used for auto-generated passwords. -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting only. -MiscellaneousDesc=All other security related parameters are defined here. +GeneratedPasswordDesc=Izberite metodo, ki bo uporabljena za samodejno ustvarjena gesla. +DictionaryDesc=Vnesite vse referenčne podatke. Svoje vrednosti lahko dodate privzetim. +ConstDesc=Ta stran vam omogoča urejanje (preglasitev) parametrov, ki niso na voljo na drugih straneh. To so večinoma rezervirani parametri samo za razvijalce/napredno odpravljanje težav. +MiscellaneousDesc=Tukaj so definirani vsi ostali varnostni parametri. LimitsSetup=Nastavitve omejitev/natančnosti -LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max. decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max. decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max. decimals for prices shown on screen. Add an ellipsis ... after this parameter (e.g. "2...") if you want to see "..." suffixed to the truncated price. -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +LimitsDesc=Tukaj lahko določite omejitve, natančnosti in optimizacije, ki jih uporablja Dolibarr +MAIN_MAX_DECIMALS_UNIT=maks. decimalke za cene na enoto +MAIN_MAX_DECIMALS_TOT=maks. decimalke za skupne cene +MAIN_MAX_DECIMALS_SHOWN=maks. decimalke za cene prikazane na zaslonu . Za tem parametrom dodajte trojico ... (npr. "2..."), če želite videti " ... " pripono k okrnjeni ceni. +MAIN_ROUNDING_RULE_TOT=Korak obsega zaokroževanja (za države, kjer se zaokroževanje izvaja na podlagi nečesa drugega kot z osnovo 10. Vnesite na primer 0,05, če se zaokroževanje izvaja s koraki 0,05) UnitPriceOfProduct=Neto cena enote proizvoda -TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding +TotalPriceAfterRounding=Skupna cena (brez DDV/DDV) po zaokroževanju ParameterActiveForNextInputOnly=Parameter bo veljal šele pri naslednjem vnosu. -NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page. -NoEventFoundWithCriteria=No security event has been found for this search criteria. +NoEventOrNoAuditSetup=Zabeležen ni bil noben varnostni dogodek. To je normalno, če revizija ni bila omogočena na strani »Nastavitve – Varnost – Dogodki«. +NoEventFoundWithCriteria=Za ta iskalni kriterij ni bil najden noben varnostni dogodek. SeeLocalSendMailSetup=Glejte lokalne nastavitve za pošiljanje pošte -BackupDesc=A complete backup of a Dolibarr installation requires two steps. -BackupDesc2=Backup the contents of the "documents" directory (%s) containing all uploaded and generated files. This will also include all the dump files generated in Step 1. This operation may last several minutes. -BackupDesc3=Backup the structure and contents of your database (%s) into a dump file. For this, you can use the following assistant. -BackupDescX=The archived directory should be stored in a secure place. +BackupDesc=Popolna varnostna kopija namestitve Dolibarr zahteva dva koraka. +BackupDesc2=Varnostno kopirajte vsebino imenika "dokumenti" ( %s ), ki vsebuje vse naložene in ustvarjene datoteke. To bo vključevalo tudi vse datoteke izpisa, ustvarjene v 1. koraku. Ta operacija lahko traja nekaj minut. +BackupDesc3=Varnostno kopirajte strukturo in vsebino vaše baze podatkov ( %s ) v datoteko izpisa. Za to lahko uporabite naslednjega pomočnika. +BackupDescX=Arhivirani imenik naj bo shranjen na varnem mestu. BackupDescY=Generirano dump datoteko morate shraniti na varno mesto. -BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended. -RestoreDesc=To restore a Dolibarr backup, two steps are required. -RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (%s). -RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.
    To restore a backup database into this current installation, you can follow this assistant. +BackupPHPWarning=S to metodo ni mogoče zagotoviti varnostnega kopiranja. Priporočena prejšnja. +RestoreDesc=Za obnovitev varnostne kopije Dolibarr sta potrebna dva koraka. +RestoreDesc2=Obnovite varnostno kopijo (na primer datoteko zip) imenika "documents" v novo namestitev Dolibarr ali v ta trenutni imenik dokumentov ( %s ). +RestoreDesc3=Obnovite strukturo baze podatkov in podatke iz varnostne datoteke izpisa v bazo podatkov nove namestitve Dolibarr ali v bazo podatkov te trenutne namestitve ( %s ). Opozorilo, ko je obnovitev končana, morate za ponovno povezavo uporabiti prijavo/geslo, ki je obstajalo od časa varnostnega kopiranja/namestitve.
    Če želite obnoviti varnostno bazo podatkov v to trenutno namestitev, lahko sledite temu pomočniku. RestoreMySQL=Uvoz MySQL ForcedToByAModule=To pravilo je postavljeno v %s z aktivnim modulom -ValueIsForcedBySystem=This value is forced by the system. You can't change it. -PreviousDumpFiles=Existing backup files -PreviousArchiveFiles=Existing archive files -WeekStartOnDay=First day of the week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s) +ValueIsForcedBySystem=To vrednost vsiljuje sistem. Ne moreš ga spremeniti. +PreviousDumpFiles=Obstoječe varnostne kopije datotek +PreviousArchiveFiles=Obstoječe arhivske datoteke +WeekStartOnDay=Prvi dan v tednu +RunningUpdateProcessMayBeRequired=Zdi se, da je treba izvesti postopek nadgradnje (različica programa %s se razlikuje od različice baze podatkov %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Ta ukaz morate pognati iz ukazne vrstice po prijavi v sistem kot uporabnik %s. YourPHPDoesNotHaveSSLSupport=SSL funkcije niso na voljo v vašem PHP DownloadMoreSkins=Prenos dodatnih preoblek -SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset -SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset -ShowProfIdInAddress=Show professional ID with addresses -ShowVATIntaInAddress=Hide intra-Community VAT number +SimpleNumRefModelDesc=Vrne referenčno številko v obliki zapisa %syymm-nnnn, kjer je yy leto, mm je mesec in nnnn je zaporedno samodejno naraščajoče število brez ponastavitve +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Vrne referenčno številko v obliki zapisa %syymm-nnnn, kjer je yy leto, mm je mesec in nnnn je zaporedno samodejno naraščajoče število brez ponastavitve +SimpleNumRefNoDateModelDesc=Vrne referenčno številko v obliki zapisa %s-nnnn, kjer je nnnn zaporedno samodejno naraščajoče število brez ponastavitve +ShowProfIdInAddress=Pokaži poklicno izkaznico z naslovi +ShowVATIntaInAddress=Skrij številko DDV znotraj Skupnosti TranslationUncomplete=Delni prevod -MAIN_DISABLE_METEO=Disable weather thumb -MeteoStdMod=Standard mode -MeteoStdModEnabled=Standard mode enabled -MeteoPercentageMod=Percentage mode -MeteoPercentageModEnabled=Percentage mode enabled -MeteoUseMod=Click to use %s +MAIN_DISABLE_METEO=Onemogoči vremensko palico +MeteoStdMod=Standardni način +MeteoStdModEnabled=Standardni način je omogočen +MeteoPercentageMod=Odstotni način +MeteoPercentageModEnabled=Odstotni način je omogočen +MeteoUseMod=Kliknite za uporabo %s TestLoginToAPI=Testna prijava na API -ProxyDesc=Some features of Dolibarr require internet access. Define here the internet connection parameters such as access through a proxy server if necessary. -ExternalAccess=External/Internet Access -MAIN_PROXY_USE=Use a proxy server (otherwise access is direct to the internet) -MAIN_PROXY_HOST=Proxy server: Name/Address -MAIN_PROXY_PORT=Proxy server: Port -MAIN_PROXY_USER=Proxy server: Login/User -MAIN_PROXY_PASS=Proxy server: Password -DefineHereComplementaryAttributes=Define any additional / custom attributes that must be added to: %s +ProxyDesc=Nekatere funkcije Dolibarra zahtevajo dostop do interneta. Tukaj določite parametre internetne povezave, kot je dostop prek proxy strežnika, če je potrebno. +ExternalAccess=Zunanji/internetni dostop +MAIN_PROXY_USE=Uporabite proxy strežnik (sicer je dostop neposreden do interneta) +MAIN_PROXY_HOST=Proxy strežnik: ime/naslov +MAIN_PROXY_PORT=Proxy strežnik: Vrata +MAIN_PROXY_USER=Proxy strežnik: Prijava/Uporabnik +MAIN_PROXY_PASS=Proxy strežnik: Geslo +DefineHereComplementaryAttributes=Določite vse dodatne atribute/atribute po meri, ki jih je treba dodati: %s ExtraFields=Koplementarni atributi ExtraFieldsLines=Koplementarni atributi (postavke) -ExtraFieldsLinesRec=Complementary attributes (templates invoices lines) +ExtraFieldsLinesRec=Dopolnilni atributi (vrstice predlog računov) ExtraFieldsSupplierOrdersLines=Koplementarni atributi (vrstice naročila) ExtraFieldsSupplierInvoicesLines=Koplementarni atributi (vrstice računi) -ExtraFieldsThirdParties=Complementary attributes (third party) -ExtraFieldsContacts=Complementary attributes (contacts/address) +ExtraFieldsThirdParties=Dodatni atributi (partner) +ExtraFieldsContacts=Dopolnilni atributi (stiki/naslov) ExtraFieldsMember=Koplementarni atributi (član) ExtraFieldsMemberType=Koplementarni atributi (tip člana) ExtraFieldsCustomerInvoices=Koplementarni atributi (računi) -ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices) +ExtraFieldsCustomerInvoicesRec=Dopolnilni atributi (predloge računov) ExtraFieldsSupplierOrders=Koplementarni atributi (naročila) ExtraFieldsSupplierInvoices=Koplementarni atributi (računi) ExtraFieldsProject=Koplementarni atributi (projekti) ExtraFieldsProjectTask=Koplementarni atributi (naloge) -ExtraFieldsSalaries=Complementary attributes (salaries) +ExtraFieldsSalaries=Dopolnilni atributi (plače) ExtraFieldHasWrongValue=Atribut %s ima napačno vrednost. AlphaNumOnlyLowerCharsAndNoSpace=samo alfanumerični znaki in male črke brez presledkov SendmailOptionNotComplete=Pozor, na nekaterih Linux sistemih mora za pošiljanje pošte z vašega naslova nastavitev vsebovati opcijo -ba (parameter mail.force_extra_parameters v vaši datoteki php.ini). Če nekateri prejemniki nikoli ne dobijo pošte, poskusite popraviti PHP parameter z mail.force_extra_parameters = -ba). PathToDocuments=Pot do dokumentov PathDirectory=Mapa -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set the display language:
    * Default/Systemwide: menu Home -> Setup -> Display
    * Per user: Click on the username at the top of the screen and modify the User Display Setup tab on the user card. -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

    %s -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exist in any language files -TitleNumberOfActivatedModules=Activated modules -TotalNumberOfActivatedModules=Activated modules: %s / %s +SendmailOptionMayHurtBuggedMTA=Funkcija za pošiljanje e-pošte z metodo "PHP mail direct" bo ustvarila e-poštno sporočilo, ki ga nekateri prejemni poštni strežniki morda ne bodo pravilno razčlenili. Posledica tega je, da ljudje, ki jih gostijo te platforme s hrošči, ne morejo prebrati nekaterih sporočil. To velja za nekatere internetne ponudnike (npr. Orange v Franciji). To ni težava z Dolibarr ali PHP, temveč s strežnikom za prejemno pošto. Vendar pa lahko dodate možnost MAIN_FIX_FOR_BUGGED_MTA na 1 v Nastavitve - Drugo, da spremenite Dolibarr in se temu izognete. Vendar pa lahko naletite na težave z drugimi strežniki, ki strogo uporabljajo standard SMTP. Druga rešitev (priporočena) je uporaba metode "Knjižnica vtičnic SMTP", ki nima nobenih pomanjkljivosti. +TranslationSetup=Nastavitev prevoda +TranslationKeySearch=Poiščite prevodni ključ ali niz +TranslationOverwriteKey=Prepiši prevodni niz +TranslationDesc=Kako nastaviti jezik prikaza:
    * Privzeto/sistemsko: meni Domov -> Nastavitve -> Zaslon
    * Na uporabnika: kliknite uporabniško ime na vrhu zaslona in spremenite a0e7843947c06bz16 na zavihku User Displaydup a06bz706 User Settingsfc kartica. +TranslationOverwriteDesc=Lahko tudi preglasite nize, ki polnijo naslednjo tabelo. V spustnem meniju »%s« izberite svoj jezik, vstavite niz prevodnega ključa v »%s« in svoj novi prevod v »%s« +TranslationOverwriteDesc2=Lahko uporabite drugi zavihek, da boste lažje vedeli, kateri prevodni ključ uporabiti +TranslationString=Prevajalski niz +CurrentTranslationString=Trenutni prevodni niz +WarningAtLeastKeyOrTranslationRequired=Iskalni kriterij je potreben vsaj za ključ ali prevodni niz +NewTranslationStringToShow=Nov prevodni niz za prikaz +OriginalValueWas=Izvirni prevod je prepisan. Prvotna vrednost je bila:

    %s +TransKeyWithoutOriginalValue=Vsilili ste nov prevod za prevodni ključ ' %s ', ki ne obstaja v nobeni jezikovni datoteki +TitleNumberOfActivatedModules=Aktivirani moduli +TotalNumberOfActivatedModules=Aktivirani moduli: %s / %s YouMustEnableOneModule=Omogočiti morate vsaj 1 modul -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation -ClassNotFoundIntoPathWarning=Class %s not found in PHP path +YouMustEnableTranslationOverwriteBefore=Najprej morate omogočiti prepisovanje prevoda, da lahko zamenjate prevod +ClassNotFoundIntoPathWarning=Razreda %s ni mogoče najti v PHP poti YesInSummer=Da poleti -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Upoštevajte, da so samo naslednji moduli na voljo zunanjim uporabnikom (ne glede na dovoljenja teh uporabnikov) in samo, če so dovoljenja dodeljena:
    SuhosinSessionEncrypt=Shranjevanje seje kriptirano s Suhosin ConditionIsCurrently=Trenutni pogoj je %s -YouUseBestDriver=You use driver %s which is the best driver currently available. -YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. -ComboListOptim=Combo list loading optimization +YouUseBestDriver=Uporabljate gonilnik %s, ki je trenutno najboljši gonilnik. +YouDoNotUseBestDriver=Uporabljate gonilnik %s, priporočamo pa gonilnik %s. +NbOfObjectIsLowerThanNoPb=V bazi podatkov imate samo %s %s. To ne zahteva posebne optimizacije. +ComboListOptim=Optimizacija nalaganja kombiniranega seznama SearchOptim=Iskanje optimizacijo -YouHaveXObjectUseComboOptim=You have %s %s in the database. You can go into setup of module to enable loading of combo list on key pressed event. -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. -YouHaveXObjectUseSearchOptimDesc=This limits the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. -YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to %s in Home-Setup-Other. -BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. -BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. -PHPModuleLoaded=PHP component %s is loaded -PreloadOPCode=Preloaded OPCode is used -AddRefInList=Display Customer/Vendor ref. into combo lists.
    Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp". -AddVatInList=Display Customer/Vendor VAT number into combo lists. -AddAdressInList=Display Customer/Vendor adress into combo lists.
    Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp". -AddEmailPhoneTownInContactList=Display Contact email (or phones if not defined) and town info list (select list or combobox)
    Contacts will appear with a name format of "Dupond Durand - dupond.durand@email.com - Paris" or "Dupond Durand - 06 07 59 65 66 - Paris" instead of "Dupond Durand". -AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. +YouHaveXObjectUseComboOptim=V bazi podatkov imate %s %s. Lahko greste v nastavitve modula, da omogočite nalaganje kombiniranega seznama ob dogodku s pritiskom na tipko. +YouHaveXObjectUseSearchOptim=V bazi podatkov imate %s %s. Konstanto %s lahko dodate na 1 v Home-Setup-Other. +YouHaveXObjectUseSearchOptimDesc=To omeji iskanje na začetek nizov, kar zbirki podatkov omogoča uporabo indeksov, zato bi morali prejeti takojšen odgovor. +YouHaveXObjectAndSearchOptimOn=V bazi podatkov imate %s %s in konstanta %s je nastavljena na %s v Home-Setup-Other. +BrowserIsOK=Uporabljate spletni brskalnik %s. Ta brskalnik je v redu glede varnosti in zmogljivosti. +BrowserIsKO=Uporabljate spletni brskalnik %s. Znano je, da je brskalnik slaba izbira glede varnosti, zmogljivosti in zanesljivosti. Priporočamo uporabo Firefoxa, Chroma, Opere ali Safarija. +PHPModuleLoaded=Naložena je komponenta PHP %s +PreloadOPCode=Uporablja se prednaložena OPCode +AddRefInList=Prikaz kode Kupca/Dobavitelja v spustnih seznamih.
    Partnerji bodo prikazani v obliki "CC12345 - SC45678 - Demo podjetje d.o.o." namesto "Demo podjetje d.o.o.". +AddVatInList=Prikaži številko DDV stranke/prodajalca v kombiniranih seznamih. +AddAdressInList=Prikaži naslov kupca/dobavitelja v spustnih seznamih.
    Partnerji bodo prikazani z nazivom "Demo podjetje d.o.o. - Podbevška cesta 1 2000 Maribor - SLO" namesto "Demo podjetje d.o.o.". +AddEmailPhoneTownInContactList=Prikaz e-pošte stika (ali telefonov, če niso določeni) in seznama informacij o mestu (izberite seznam ali kombinirano polje)
    Stiki bodo prikazani z obliko imena »Dupond Durand - dupond.durand@email.com - Pariz« ali »Dupond Durand - 06 07 59 65 66 - Pariz" namesto "Dupond Durand". +AskForPreferredShippingMethod=Vprašajte partnerja za željeni način pošiljanja. FieldEdition=%s premenjenih polj FillThisOnlyIfRequired=Primer: +2 (uporabite samo, če se pojavijo težave s časovno cono) GetBarCode=Pridobi črtno kodo -NumberingModules=Numbering models -DocumentModules=Document models +NumberingModules=Modeli oštevilčenja +DocumentModules=Modeli dokumentov ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. +PasswordGenerationNone=Ne predlagajte ustvarjenega gesla. Geslo morate vnesti ročno. +PasswordGenerationPerso=Vrnite geslo glede na vašo osebno definirano konfiguracijo. +SetupPerso=Glede na vašo konfiguracijo +PasswordPatternDesc=Opis vzorca gesla ##### Users setup ##### -RuleForGeneratedPasswords=Rules to generate and validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page +RuleForGeneratedPasswords=Pravila za ustvarjanje in potrjevanje gesel +DisableForgetPasswordLinkOnLogonPage=Ne prikažite povezave »Pozabljeno geslo« na strani za prijavo UsersSetup=Nastavitve modula uporabnikov -UserMailRequired=Email required to create a new user -UserHideInactive=Hide inactive users from all combo lists of users (Not recommended: this may means you won't be able to filter or search on old users on some pages) -UsersDocModules=Document templates for documents generated from user record -GroupsDocModules=Document templates for documents generated from a group record +UserMailRequired=Za ustvarjanje novega uporabnika je potreben e-poštni naslov +UserHideInactive=Skrij neaktivne uporabnike z vseh kombiniranih seznamov uporabnikov (ni priporočljivo: to lahko pomeni, da na nekaterih straneh ne boste mogli filtrirati ali iskati starih uporabnikov) +UsersDocModules=Predloge dokumentov za dokumente, ustvarjene iz uporabniškega zapisa +GroupsDocModules=Predloge dokumentov za dokumente, ustvarjene iz skupinskega zapisa ##### HRM setup ##### -HRMSetup=HRM module setup +HRMSetup=Nastavitev HRM modula ##### Company setup ##### CompanySetup=Modul za nastavitve podjetij -CompanyCodeChecker=Options for automatic generation of customer/vendor codes -AccountCodeManager=Options for automatic generation of customer/vendor accounting codes -NotificationsDesc=Email notifications can be sent automatically for some Dolibarr events.
    Recipients of notifications can be defined: -NotificationsDescUser=* per user, one user at a time. -NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time. -NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. -ModelModules=Document Templates -DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) +CompanyCodeChecker=Nastavitve samodejnega ustvarjanja dobaviteljevih kod +AccountCodeManager=Možnosti za samodejno ustvarjanje računovodskih kod za dobavitelje +NotificationsDesc=Za nekatere dogodke Dolibarr se lahko samodejno pošljejo e-poštna obvestila.
    Prejemnike obvestil je mogoče definirati: +NotificationsDescUser=* na uporabnika, en uporabnik naenkrat. +NotificationsDescContact=* za stike partnerjev (kupci ali dobavitelji), en stik naenkrat. +NotificationsDescGlobal=* ali z nastavitvijo globalnih e-poštnih naslovov na nastavitveni strani modula. +ModelModules=Predloge dokumentov +DocumentModelOdt=Ustvarite dokumente iz predlog OpenDocument (datoteke .ODT / .ODS iz LibreOffice, OpenOffice, KOffice, TextEdit,...) WatermarkOnDraft=Vodni žig na osnutku dokumenta JSOnPaimentBill=Aktivacija funkcije za avtomatsko izpolnitev plačilnih vrstic na obrazcu za plačilo -CompanyIdProfChecker=Rules for Professional IDs -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? -MustBeInvoiceMandatory=Mandatory to validate invoices? -TechnicalServicesProvided=Technical services provided +CompanyIdProfChecker=Pravila za poklicne izkaznice +MustBeUnique=Mora biti edinstven? +MustBeMandatory=Obvezno ustvariti partnerja (če je opredeljena ID za DDV ali vrsta podjetja) ? +MustBeInvoiceMandatory=Ali je obvezno potrjevanje računov? +TechnicalServicesProvided=Zagotovljene tehnične storitve #####DAV ##### -WebDAVSetupDesc=This is the link to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that needs an existing login account/password for access. -WebDavServer=Root URL of %s server: %s +WebDAVSetupDesc=To je povezava za dostop do imenika WebDAV. Vsebuje "javni" imenik, ki je odprt vsakemu uporabniku, ki pozna URL (če je dostop do javnega imenika dovoljen) in "zasebni" imenik, ki za dostop potrebuje obstoječi prijavni račun/geslo. +WebDavServer=Korenski URL strežnika %s: %s ##### Webcal setup ##### WebCalUrlForVCalExport=Izvozna povezava na %s format je na voljo na naslednji povezavi: %s ##### Invoices ##### BillsSetup=Nastavitve modula za račune BillsNumberingModule=Modul za številčenje računov in dobropisov BillsPDFModules=Modeli obrazcev računov -BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type -PaymentsPDFModules=Payment documents models +BillsPDFModulesAccordindToInvoiceType=Modeli fakturnih dokumentov glede na vrsto računa +PaymentsPDFModules=Modeli plačilnih dokumentov ForceInvoiceDate=Vsili datum računa kot datum potrditve -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined on the invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdrawal on account -SuggestPaymentByChequeToAddress=Suggest payment by check to +SuggestedPaymentModesIfNotDefinedInInvoice=Privzeto predlagan način plačila na računu, če ni določen na računu +SuggestPaymentByRIBOnAccount=Predlagajte plačilo z dvigom na račun +SuggestPaymentByChequeToAddress=Predlagajte plačilo s čekom na FreeLegalTextOnInvoices=Poljubno besedilo na računu WatermarkOnDraftInvoices=Vodni žig na osnutku računa (nič, če je prazno) -PaymentsNumberingModule=Payments numbering model +PaymentsNumberingModule=Model številčenja plačil SuppliersPayment=Plačila dobaviteljem -SupplierPaymentSetup=Vendor payments setup -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +SupplierPaymentSetup=Nastavitev plačil dobaviteljem +InvoiceCheckPosteriorDate=Pred potrditvijo preverite datum izdelave +InvoiceCheckPosteriorDateHelp=Potrjevanje računa bo prepovedano, če je njegov datum pred datumom zadnjega računa iste vrste. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Nastavitve modula za komercialne ponudbe ProposalsNumberingModules=Moduli za številčenje komercialnih ponudb ProposalsPDFModules=Modeli obrazcev komercialnih ponudb -SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined on the proposal +SuggestedPaymentModesIfNotDefinedInProposal=Privzeto predlagan način plačila v predlogu, če ni določen v predlogu FreeLegalTextOnProposal=Poljubno besedilo na komercialni ponudbi WatermarkOnDraftProposal=Vodni tisk na osnutkih komercialnih ponudb (brez, če je prazno) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Vprašajte za ciljni bančni račun ponudbe @@ -1445,12 +1464,12 @@ SupplierProposalPDFModules=Modeli dokumentiranja cenovnih zahtevkov za dobavitel FreeLegalTextOnSupplierProposal=Prosti tekst na cenovnih zahtevkov dobaviteljev WatermarkOnDraftSupplierProposal=Vodni tisk na osnutkih cenovnih zahtevkov za dobavitelje (brez, če je prazno) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Vprašaj za končni bančni račun cenovnega zahtevka -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Vprašajte skladiščni vir za naročilo ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Vprašajte za naslov bančnega računa naročila ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order -OrdersSetup=Sales Orders management setup +SuggestedPaymentModesIfNotDefinedInOrder=Privzeto predlagan način plačila na prodajnem nalogu, če ni določen v naročilu +OrdersSetup=Nastavitev upravljanja prodajnih naročil OrdersNumberingModules=Moduli za številčenje naročil OrdersModelModule=Modeli obrazcev naročil FreeLegalTextOnOrders=Poljubno besedilo na naročilih @@ -1472,13 +1491,14 @@ WatermarkOnDraftContractCards=Vodni tisk na osnutkih pogodb (brez, če je prazno ##### Members ##### MembersSetup=Nastavitve modula članov MemberMainOptions=Glavne opcije +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Urejanje uporabniških imen za vse člane -AdherentMailRequired=Email required to create a new member +AdherentMailRequired=Za ustvarjanje novega člana je potreben e-poštni naslov MemberSendInformationByMailByDefault=Kontrolno polje za pošiljanje potrdil članom po pošti (potrditev ali nova naročnina) je privzeto označeno -MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes -MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. -MembersDocModules=Document templates for documents generated from member record +MemberCreateAnExternalUserForSubscriptionValidated=Ustvarite prijavo zunanjega uporabnika za vsako potrjeno naročnino novega člana +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes +MEMBER_REMINDER_EMAIL=Omogoči samodejni opomnik po e-pošti o potečenih naročninah. Opomba: Modul %s mora biti omogočen in pravilno nastavljen za pošiljanje opomnikov. +MembersDocModules=Predloge dokumentov za dokumente, ustvarjene iz evidence članov ##### LDAP setup ##### LDAPSetup=Nastavitve LDAP LDAPGlobalParameters=Globalni parametri @@ -1496,17 +1516,17 @@ LDAPSynchronizeUsers=Organizacija uporabnikov v LDAP LDAPSynchronizeGroups=Organizacija skupin v LDAP LDAPSynchronizeContacts=Organizacija kontaktov v LDAP LDAPSynchronizeMembers=Organizacija članov ustanove v LDAP -LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP +LDAPSynchronizeMembersTypes=Organizacija tipov članov ustanove v LDAP LDAPPrimaryServer=Primarni strežnik LDAPSecondaryServer=Sekundarni strežnik LDAPServerPort=Vrata strežnika -LDAPServerPortExample=Standard or StartTLS: 389, LDAPs: 636 +LDAPServerPortExample=Standardni ali StartTLS: 389, LDAP-ji: 636 LDAPServerProtocolVersion=Različica protokola LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use StartTLS +LDAPServerUseTLSExample=Vaš strežnik LDAP uporablja StartTLS LDAPServerDn=DN strežnika LDAPAdminDn=DN administratorja -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) +LDAPAdminDnExample=Celoten DN (npr.: cn=admin,dc=example,dc=com ali cn=Administrator,cn=Users,dc=example,dc=com za aktivni imenik) LDAPPassword=Geslo administratorja LDAPUserDn=DN uporabnikov LDAPUserDnExample=Celoten DN (npr: ou=users,dc=society,dc=com) @@ -1520,7 +1540,7 @@ LDAPDnContactActive=Sinhronizacija kontaktov LDAPDnContactActiveExample=Aktivirana/deaktivirana sinhronizacija LDAPDnMemberActive=Sinhronizacija članov LDAPDnMemberActiveExample=Aktivirana/deaktivirana sinhronizacija -LDAPDnMemberTypeActive=Members types' synchronization +LDAPDnMemberTypeActive=Sinhronizacija vrst članov LDAPDnMemberTypeActiveExample=Aktivirana/deaktivirana sinhronizacija LDAPContactDn=DN Dolibarr kontaktov LDAPContactDnExample=Celoten DN (npr: ou=contacts,dc=society,dc=com) @@ -1528,8 +1548,8 @@ LDAPMemberDn=DN Dolibarr članov LDAPMemberDnExample=Celoten DN (npr: ou=members,dc=society,dc=com) LDAPMemberObjectClassList=List of objectClass LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPMemberTypeDn=Dolibarr members types DN -LDAPMemberTypepDnExample=Complete DN (ex: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeDn=Dolibarr člani vrste DN +LDAPMemberTypepDnExample=Izpolnite DN (npr.: ou=memberstypes,dc=example,dc=com) LDAPMemberTypeObjectClassList=List of objectClass LDAPMemberTypeObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) LDAPUserObjectClassList=List of objectClass @@ -1543,131 +1563,131 @@ LDAPTestSynchroContact=Test contact's synchronization LDAPTestSynchroUser=Test user's synchronization LDAPTestSynchroGroup=Test group's synchronization LDAPTestSynchroMember=Test member's synchronization -LDAPTestSynchroMemberType=Test member type synchronization +LDAPTestSynchroMemberType=Preizkusite sinhronizacijo tipa člana LDAPTestSearch= Test LDAP iskanja LDAPSynchroOK=Synchronization test successful LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates +LDAPSynchroKOMayBePermissions=Neuspešen preizkus sinhronizacije. Preverite, ali je povezava s strežnikom pravilno konfigurirana in omogoča posodobitve LDAP LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindOK=Povezava/avtentikacija na strežnik LDAP je bila uspešna (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindKO=Povezava/avtentikacija na strežnik LDAP ni uspela (Server=%s, Port=%s, Admin=%s, Password=%s) LDAPSetupForVersion3=LDAP server configured for version 3 LDAPSetupForVersion2=LDAP server configured for version 2 LDAPDolibarrMapping=Dolibarr Mapping LDAPLdapMapping=LDAP Mapping LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example: uid +LDAPFieldLoginExample=Primer: uid LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) -LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) +LDAPFilterConnectionExample=Primer: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Primer: &(objectClass=groupOfUsers) LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldLoginSambaExample=Primer: samaccountname LDAPFieldFullname=Firstname Name -LDAPFieldFullnameExample=Example: cn -LDAPFieldPasswordNotCrypted=Password not encrypted -LDAPFieldPasswordCrypted=Password encrypted -LDAPFieldPasswordExample=Example: userPassword -LDAPFieldCommonNameExample=Example: cn +LDAPFieldFullnameExample=Primer: cn +LDAPFieldPasswordNotCrypted=Geslo ni šifrirano +LDAPFieldPasswordCrypted=Geslo šifrirano +LDAPFieldPasswordExample=Primer: uporabniško geslo +LDAPFieldCommonNameExample=Primer: cn LDAPFieldName=Name -LDAPFieldNameExample=Example: sn +LDAPFieldNameExample=Primer: sn LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example: givenName +LDAPFieldFirstNameExample=Primer: podanoIme LDAPFieldMail=Email address -LDAPFieldMailExample=Example: mail +LDAPFieldMailExample=Primer: pošta LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example: telephonenumber +LDAPFieldPhoneExample=Primer: telefonska številka LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example: homephone +LDAPFieldHomePhoneExample=Primer: domači telefon LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example: mobile +LDAPFieldMobileExample=Primer: mobilni telefon LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example: facsimiletelephonenumber +LDAPFieldFaxExample=Primer: telefonska številka faksa LDAPFieldAddress=Street -LDAPFieldAddressExample=Example: street +LDAPFieldAddressExample=Primer: ulica LDAPFieldZip=Zip -LDAPFieldZipExample=Example: postalcode +LDAPFieldZipExample=Primer: poštna številka LDAPFieldTown=Town -LDAPFieldTownExample=Example: l +LDAPFieldTownExample=Primer: l LDAPFieldCountry=Country LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example: description +LDAPFieldDescriptionExample=Primer: opis LDAPFieldNotePublic=Javna opomba -LDAPFieldNotePublicExample=Example: publicnote +LDAPFieldNotePublicExample=Primer: javna opomba LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldGroupMembersExample= Primer: uniqueMember LDAPFieldBirthdate=Birthdate LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example: o +LDAPFieldCompanyExample=Primer: o LDAPFieldSid=SID -LDAPFieldSidExample=Example: objectsid +LDAPFieldSidExample=Primer: objectsid LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position +LDAPFieldTitle=Delovno mesto LDAPFieldTitleExample=Primer: naziv -LDAPFieldGroupid=Group id -LDAPFieldGroupidExample=Exemple : gidnumber -LDAPFieldUserid=User id -LDAPFieldUseridExample=Exemple : uidnumber -LDAPFieldHomedirectory=Home directory -LDAPFieldHomedirectoryExample=Exemple : homedirectory -LDAPFieldHomedirectoryprefix=Home directory prefix +LDAPFieldGroupid=ID skupine +LDAPFieldGroupidExample=Primer: gidnumber +LDAPFieldUserid=Uporabniško ime +LDAPFieldUseridExample=Primer: uidnumber +LDAPFieldHomedirectory=Domači imenik +LDAPFieldHomedirectoryExample=Primer: domači imenik +LDAPFieldHomedirectoryprefix=Predpona domačega imenika LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members types. +LDAPDescMembersTypes=Ta stran vam omogoča, da določite ime atributov LDAP v drevesu LDAP za vsak podatek, ki ga najdete na vrstah članov Dolibarr. LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. ForANonAnonymousAccess=For an authenticated acces (for a write access for example) PerfDolibarr=Nastavitev zmogljivosti/optimizacija poročila -YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance. -NotInstalled=Not installed. -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. +YouMayFindPerfAdviceHere=Ta stran ponuja nekaj preverjanj ali nasvetov v zvezi z delovanjem. +NotInstalled=Ni nameščeno. +NotSlowedDownByThis=To ne upočasni. +NotRiskOfLeakWithThis=Pri tem ni nevarnosti puščanja. ApplicativeCache=Aplikativni predpomnilnik MemcachedNotAvailable=Ni najden aplikativni predpomnilnik. Zmogljivost lahko izboljšate z namestitvijo predpomnilniškega strežnika Memcached in modula, ki zna uporabljati ta predpomnilniški strežnik.
    Več informacij najdete tukaj http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    Vedite, da veliko gostiteljev spletnih strani ne zagotavlja takega predpomnilniškega strežnika.. MemcachedModuleAvailableButNotSetup=Najden je predpomnilniški modul za aplikativni predpomnilnik, vendar nastavitev modula ni zaključena. MemcachedAvailableAndSetup=Vklopljen je predpomnilniški modul za predpomnilniški strežnik. OPCodeCache=OPCode predpomnilnik -NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad). +NoOPCodeCacheFound=Predpomnilnik OPCode ni bil najden. Morda uporabljate predpomnilnik OPCode, ki ni XCache ali eAccelerator (dobro) ali pa morda nimate predpomnilnika OPCode (zelo slabo). HTTPCacheStaticResources=HTTP predpomnilnik za statične vire (css, img, javascript) FilesOfTypeCached=Datoteke tipa %s so shranjene v predpomnilniku HTTP strežnika FilesOfTypeNotCached=Datoteke tipa %s niso shranjene v predpomnilniku HTTP strežnika FilesOfTypeCompressed=Datoteke tipa %s so komprimirane v HTTP strežniku FilesOfTypeNotCompressed=Datoteke tipa %s niso komprimirane v HTTP strežniku CacheByServer=Predpomnilnik v strežniku -CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=Na primer z uporabo direktive Apache "ExpiresByType image/gif A2592000" CacheByClient=Predpomnilnik v brskalniku CompressionOfResources=Kompresija HTTP odgovorov -CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=Na primer z uporabo direktive Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Taka avtomatska zaznava ni možna v trenutnem brskalniku -DefaultValuesDesc=Here you may define the default value you wish to use when creating a new record, and/or default filters or the sort order when you list records. -DefaultCreateForm=Default values (to use on forms) -DefaultSearchFilters=Default search filters -DefaultSortOrder=Default sort orders -DefaultFocus=Default focus fields -DefaultMandatory=Mandatory form fields +DefaultValuesDesc=Tukaj lahko določite privzeto vrednost, ki jo želite uporabiti pri ustvarjanju novega zapisa, in/ali privzete filtre ali vrstni red razvrščanja, ko navajate zapise. +DefaultCreateForm=Privzete vrednosti (za uporabo na obrazcih) +DefaultSearchFilters=Privzeti iskalni filtri +DefaultSortOrder=Privzeti vrstni redi +DefaultFocus=Privzeta polja fokusa +DefaultMandatory=Obvezna polja obrazca ##### Products ##### ProductSetup=Nastavitve modula za proizvode ServiceSetup=Storitve modul nastavitev ProductServiceSetup=Izdelki in storitve moduli za nastavitev -NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit) -ViewProductDescInFormAbility=Display product descriptions in lines of items (otherwise show description in a tooltip popup) -OnProductSelectAddProductDesc=How to use the description of the products when adding a product as a line of a document -AutoFillFormFieldBeforeSubmit=Auto fill the description input field with the description of product -DoNotAutofillButAutoConcat=Do not autofill the input field with description of product. Description of the product will be concatenated to the entered description automatically. -DoNotUseDescriptionOfProdut=Description of the product will never be included into the description of lines of documents +NumberOfProductShowInSelect=Največje število izdelkov za prikaz na seznamih kombiniranih izbir (0=ni omejitev) +ViewProductDescInFormAbility=Prikaži opise izdelkov v vrsticah elementov (sicer prikaži opis v pojavnem oknu z opisom orodja) +OnProductSelectAddProductDesc=Kako uporabiti opis izdelkov pri dodajanju izdelka kot vrstico dokumenta +AutoFillFormFieldBeforeSubmit=Samodejno izpolni polje za vnos opisa z opisom izdelka +DoNotAutofillButAutoConcat=Vnosnega polja ne izpolnite samodejno z opisom izdelka. Opis izdelka bo samodejno povezan z vnesenim opisom. +DoNotUseDescriptionOfProdut=Opis izdelka ne bo nikoli vključen v opis vrstic dokumentov MergePropalProductCard=Aktivacija opcije za združevanje PDF dokumenta proizvoda in PDF ponudbe azur v zavihku priložene datoteke proizvod/storitev, če je proizvod/storitev v ponudbi -ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) -UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +ViewProductDescInThirdpartyLanguageAbility=Prikaz opisov izdelkov v obrazcih v jeziku partnerja (sicer v jeziku uporabnika) +UseSearchToSelectProductTooltip=Tudi če imate veliko število izdelkov (> 100 000), lahko povečate hitrost tako, da nastavite konstanto PRODUCT_DONOTSEARCH_ANYWHERE na 1 v Nastavitve->Drugo. Iskanje bo nato omejeno na začetek niza. +UseSearchToSelectProduct=Počakajte, da pritisnete tipko, preden naložite vsebino kombiniranega seznama izdelkov (to lahko poveča zmogljivost, če imate veliko število izdelkov, vendar je manj priročno) SetDefaultBarcodeTypeProducts=Privzet tip črtne kode za proizvode SetDefaultBarcodeTypeThirdParties=Privzet tip črtne kode za partnerje UseUnits=Določi mersko enoto za količino pri urejanju vrstic naročila, ponudbe ali računa ProductCodeChecker= Modul za generiranje kode proizvodov in kontrolo (proizvod ali storitev) ProductOtherConf= Konfiguracija proizvodov/storitev -IsNotADir=is not a directory! +IsNotADir=ni imenik! ##### Syslog ##### SyslogSetup=Nastavitve Syslog modula SyslogOutput=Izhod za dnevnik @@ -1676,10 +1696,10 @@ SyslogLevel=Nivo SyslogFilename=Ime datoteke in pot YouCanUseDOL_DATA_ROOT=Za log datoteko v Dolibarr dokumentni mapi lahko uporabite DOL_DATA_ROOT/dolibarr.log. Za shranjevanje te datoteke lahko nastavite tudi drugačno pot. ErrorUnknownSyslogConstant=Konstanta %s ni znana syslog konstanta -OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported -CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug) -SyslogFileNumberOfSaves=Number of backup logs to keep -ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency +OnlyWindowsLOG_USER=V sistemu Windows bo podprta samo možnost LOG_USER +CompressSyslogs=Stiskanje in varnostno kopiranje datotek dnevnika odpravljanja napak (generira modul Log for debug) +SyslogFileNumberOfSaves=Število varnostnih kopij dnevnikov, ki jih je treba hraniti +ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurirajte načrtovano opravilo čiščenja, da nastavite pogostost varnostnega kopiranja dnevnika ##### Donations ##### DonationsSetup=Nastanitev modula za donacije DonationsReceiptModel=Predloga računa za donacijo @@ -1702,7 +1722,7 @@ GenbarcodeLocation=Orodje za generiranje črtne kode preko komandne vrstice (upo BarcodeInternalEngine=Interno orodje BarCodeNumberManager=Upravljanje avtomatskega določanja številk črtnih kod ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=Nastavitev modula Plačila z direktno obremenitvijo ##### ExternalRSS ##### ExternalRSSSetup=Nastavitev uvoza zunanjih RSS NewRSS=Nov vir RSS @@ -1710,22 +1730,22 @@ RSSUrl=RSS URL RSSUrlExample=Zanimiv vir RSS ##### Mailing ##### MailingSetup=Nastavitev E-mail modula -MailingEMailFrom=Sender email (From) for emails sent by emailing module -MailingEMailError=Return Email (Errors-to) for emails with errors +MailingEMailFrom=E-pošta pošiljatelja (Od) za e-pošto, poslano z modulom za pošiljanje e-pošte +MailingEMailError=Vrni e-pošto (Errors-to) za e-pošto z napakami MailingDelay=Čakanje v sekundah po pošiljanju naslednjega sporočila ##### Notification ##### -NotificationSetup=Email Notification module setup -NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +NotificationSetup=Nastavitev modula za obveščanje po e-pošti +NotificationEMailFrom=E-pošta pošiljatelja (Od) za e-pošto, ki jo pošlje modul Obvestila FixedEmailTarget=Prejemnik -NotificationDisableConfirmMessageContact=Hide the list of recipients (subscribed as contact) of notifications into the confirmation message -NotificationDisableConfirmMessageUser=Hide the list of recipients (subscribed as user) of notifications into the confirmation message -NotificationDisableConfirmMessageFix=Hide the list of recipients (subscribed as global email) of notifications into the confirmation message +NotificationDisableConfirmMessageContact=Skrij seznam prejemnikov (naročenih kot kontakt) obvestil v potrditveno sporočilo +NotificationDisableConfirmMessageUser=Skrij seznam prejemnikov (naročenih kot uporabnik) obvestil v potrditveno sporočilo +NotificationDisableConfirmMessageFix=Skrij seznam prejemnikov (naročenih kot globalna e-pošta) obvestil v potrditveno sporočilo ##### Sendings ##### -SendingsSetup=Shipping module setup +SendingsSetup=Nastavitev modula za pošiljanje SendingsReceiptModel=Obrazci odpremnic SendingsNumberingModules=Moduli za številčenje pošiljk SendingsAbility=Podpora poslanih dokumentov za dobavo kupcem -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=V večini primerov se odpremni listi uporabljajo tako kot listi za dostavo strank (seznam izdelkov za pošiljanje) kot listi, ki jih stranka prejme in podpiše. Zato je potrdilo o dostavi izdelka podvojena funkcija in se redko aktivira. FreeLegalTextOnShippings=Prosti tekst na pošiljkah ##### Deliveries ##### DeliveryOrderNumberingModules=Modul za številčenje dobavnic @@ -1735,55 +1755,55 @@ FreeLegalTextOnDeliveryReceipts=Poljubno besedilo na odpremnici ##### FCKeditor ##### AdvancedEditor=Napredni urejevalnik ActivateFCKeditor=Aktiviranje FCKeditor za: -FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements -FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements -FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForNotePublic=WYSIWIG izdelava/izdaja polja "javne opombe" elementov +FCKeditorForNotePrivate=WYSIWIG izdelava/izdaja polja "zasebne opombe" elementov +FCKeditorForCompany=WYSIWIG urejanje opisov elementov (razen izdelkov/storitev) +FCKeditorForProductDetails=WYSIWIG izdelava/izdaja opisa izdelkov ali vrstic za objekte (vrstice predlogov, naročil, računov, itd...). +FCKeditorForProductDetails2=Opozorilo: uporaba te možnosti v tem primeru resno ni priporočljiva, saj lahko povzroči težave s posebnimi znaki in oblikovanjem strani pri ustvarjanju datotek PDF. FCKeditorForMailing= WYSIWIG kreiranje/urejanje pošte FCKeditorForUserSignature=WYSIWIG kreiranje/urejanje podpisa uporabnika -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -FCKeditorForTicket=WYSIWIG creation/edition for tickets +FCKeditorForMail=Ustvarjanje/izdaja WYSIWIG za vso pošto (razen Tools->eMailing) +FCKeditorForTicket=Izdelava/izdaja WYSIWIG za vstopnice ##### Stock ##### -StockSetup=Stock module setup -IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup. +StockSetup=Nastavitev zalog modula +IfYouUsePointOfSaleCheckModule=Če uporabljate privzeti modul prodajnega mesta (POS) ali zunanji modul, bo vaš modul POS to nastavitev morda prezrl. Večina POS modulov je privzeto zasnovanih tako, da takoj ustvarijo račun in zmanjšajo zalogo ne glede na možnosti tukaj. Torej, če želite ali ne želite imeti zmanjšanja zalog pri registraciji prodaje iz vašega POS-a, preverite tudi nastavitev svojega POS modula. ##### Menu ##### MenuDeleted=Izbrisan meni -Menu=Menu +Menu=meni Menus=Meniji TreeMenuPersonalized=Prilagojeni meniji -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry +NotTopTreeMenuPersonalized=Prilagojeni meniji, ki niso povezani z vnosom v zgornjem meniju NewMenu=Nov meni MenuHandler=Menijski vmesnik MenuModule=Modul izvorov -HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +HideUnauthorizedMenu=Skrij nepooblaščene menije tudi za interne uporabnike (samo drugače sivi) DetailId=ID meni DetailMenuHandler=Upravljavec menijev za prikaz novega menija DetailMenuModule=Ime modula, če vnos prihaja iz modula DetailType=Tip menija (zgoraj ali levo) DetailTitre=Naziv menija ali koda naziva za prevod -DetailUrl=URL,kamor vas meni usmeri (Absolutni URL link ali zunanji link http://) +DetailUrl=URL, kamor vas pošlje meni (relativna povezava URL ali zunanja povezava s https://) DetailEnabled=Pogoj za prikaz vnosa ali ne DetailRight=Pogoj za prikaz neavtoriziranih zatemnitev menija DetailLangs=Ime jezikovne datoteke za prevod nazivnih kot DetailUser=Interni / zunanji / vsi Target=Za -DetailTarget=Target for links (_blank top opens a new window) +DetailTarget=Cilj za povezave (_prazen vrh odpre novo okno) DetailLevel=Nivo (-1:zgornji meni, 0:meni v glavi, >0 meni in podmeni) ModifMenu=Sprememba menija DeleteMenu=Izbris menijskega vnosa -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu +ConfirmDeleteMenu=Ali ste prepričani, da želite izbrisati menijski vnos %s ? +FailedToInitializeMenu=Inicializacija menija ni uspela ##### Tax ##### TaxSetup=Nastavitveni modul za DDV, socialne ali fiskalne davke in dividende OptionVatMode=Rok za DDV -OptionVATDefault=Standard basis +OptionVATDefault=Standardna osnova OptionVATDebitOption=Povečana osnova -OptionVatDefaultDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on payments for services -OptionVatDebitOptionDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on invoice (debit) for services -OptionPaymentForProductAndServices=Cash basis for products and services -OptionPaymentForProductAndServicesDesc=VAT is due:
    - on payment for goods
    - on payments for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option: +OptionVatDefaultDesc=DDV je treba plačati:
    - ob dostavi blaga (na podlagi datuma računa)
    - ob plačilu storitev +OptionVatDebitOptionDesc=DDV je treba plačati:
    - ob dobavi blaga (na podlagi datuma računa)
    - na računu (bremenitev) za storitve +OptionPaymentForProductAndServices=Denarna osnova za izdelke in storitve +OptionPaymentForProductAndServicesDesc=DDV je treba plačati:
    - pri plačilu blaga
    - pri plačilu storitev +SummaryOfVatExigibilityUsedByDefault=Privzeti čas upravičenosti do DDV glede na izbrano možnost: OnDelivery=Ob dobavi OnPayment=Ob plačilu OnInvoice=Ob izdaji računa @@ -1792,86 +1812,86 @@ SupposedToBeInvoiceDate=Predvideva se datum računa Buy=Nakup Sell=Prodaja InvoiceDateUsed=Uporabljen datum računa -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organization), so there is no VAT options to setup. -AccountancyCode=Accounting Code +YourCompanyDoesNotUseVAT=Za vaše podjetje je bilo določeno, da ne uporablja DDV (Domača stran - Nastavitev - Podjetje/organizacija), zato ni možnosti DDV za nastavitev. +AccountancyCode=Računovodski kodeks AccountancyCodeSell=Računovodska koda prodaje AccountancyCodeBuy=Računovodska koda nabave -CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Keep the checkbox “Automatically create the payment” empty by default when creating a new tax +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Pri ustvarjanju novega davka naj bo potrditveno polje »Samodejno ustvari plačilo« privzeto prazno ##### Agenda ##### AgendaSetup=Nastavitev modula za aktivnosti in dnevni red PasswordTogetVCalExport=Ključ za avtorizacijo izvoznega linka -SecurityKey = Security Key +SecurityKey = Varnostni ključ PastDelayVCalExport=Ne izvažaj dogodekov, starejših od -AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form -AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view -AGENDA_DEFAULT_VIEW=Which view do you want to open by default when selecting menu Agenda -AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (When remind date is reached, a popup is shown by the browser. Each user can disable such notifications from its browser notification setup). -AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification -AGENDA_REMINDER_EMAIL=Enable event reminder by emails (remind option/delay can be defined on each event). -AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the scheduled job %s must be enough to be sure that the remind are sent at the correct moment. -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view +AGENDA_USE_EVENT_TYPE=Uporaba vrst dogodkov (upravlja se v meniju Nastavitve -> Slovarji -> Vrsta dogodkov dnevnega reda) +AGENDA_USE_EVENT_TYPE_DEFAULT=Samodejno nastavi to privzeto vrednost za vrsto dogodka v obrazcu za ustvarjanje dogodka +AGENDA_DEFAULT_FILTER_TYPE=Samodejno nastavi to vrsto dogodka v iskalnem filtru pogleda dnevnega reda +AGENDA_DEFAULT_FILTER_STATUS=Samodejno nastavi to stanje za dogodke v iskalnem filtru pogleda dnevnega reda +AGENDA_DEFAULT_VIEW=Kateri pogled želite privzeto odpreti, ko izberete meni Dnevni red +AGENDA_REMINDER_BROWSER=Omogoči opomnik dogodka v brskalniku uporabnika (Ko je dosežen datum opomnika, brskalnik prikaže pojavno okno. Vsak uporabnik lahko onemogoči takšna obvestila v nastavitvi obvestil brskalnika). +AGENDA_REMINDER_BROWSER_SOUND=Omogoči zvočno obvestilo +AGENDA_REMINDER_EMAIL=Omogoči opomnik za dogodek po e-pošti (možnost opomnika/zakasnitve je mogoče določiti za vsak dogodek). +AGENDA_REMINDER_EMAIL_NOTE=Opomba: Pogostost načrtovanega opravila %s mora biti zadostna, da zagotovite, da so opomini poslani v pravem trenutku. +AGENDA_SHOW_LINKED_OBJECT=Prikaži povezani predmet v pogledu dnevnega reda ##### Clicktodial ##### ClickToDialSetup=Nastavitve modula za klicanje s klikom -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
    __PHONETO__ that will be replaced with the phone number of person to call
    __PHONEFROM__ that will be replaced with phone number of calling person (yours)
    __LOGIN__ that will be replaced with clicktodial login (defined on user card)
    __PASS__ that will be replaced with clicktodial password (defined on user card). -ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface, installed on the same computer as the browser, and called when you click on a link starting with "tel:" in your browser. If you need a link that start with "sip:" or a full server solution (no need of local software installation), you must set this to "No" and fill the next field. +ClickToDialUrlDesc=URL, priklican, ko je klik na telefonsko sliko izveden. In URL, you can use tags
    __PHONETO__ that will be replaced with the phone number of person to call
    __PHONEFROM__ that will be replaced with phone number of calling person (yours)
    __LOGIN__ that will be replaced with clicktodial prijava (določena na uporabniški kartici)
    __PASS__ , ki bo nadomeščena z geslom clicktodial (definirano na uporabniški kartici). +ClickToDialDesc=Ta modul spremeni telefonske številke pri uporabi namiznega računalnika v povezave, ki jih je mogoče klikniti. Klik bo poklical številko. To lahko uporabite za začetek telefonskega klica, ko na namizju uporabljate programski telefon ali na primer pri uporabi sistema CTI, ki temelji na protokolu SIP. Opomba: Ko uporabljate pametni telefon, lahko telefonske številke vedno kliknete. +ClickToDialUseTelLink=Na telefonskih številkah uporabite samo povezavo "tel:". +ClickToDialUseTelLinkDesc=Uporabite to metodo, če imajo vaši uporabniki programski telefon ali programski vmesnik, nameščen v istem računalniku kot brskalnik, ki se pokliče, ko v brskalniku kliknete povezavo, ki se začne z "tel:". Če potrebujete povezavo, ki se začne s "sip:", ali celotno strežniško rešitev (ni potrebe po namestitvi lokalne programske opreme), morate to nastaviti na "Ne" in izpolniti naslednje polje. ##### Point Of Sale (CashDesk) ##### -CashDesk=Point of Sale -CashDeskSetup=Point of Sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sales +CashDesk=Prodajno mesto +CashDeskSetup=Nastavitev modula prodajnega mesta +CashDeskThirdPartyForSell=Privzeti partner za prodajo CashDeskBankAccountForSell=Račun, ki se uporabi za prejem gotovinskih plačil -CashDeskBankAccountForCheque=Default account to use to receive payments by check +CashDeskBankAccountForCheque=Privzeti račun za prejemanje plačil s čeki CashDeskBankAccountForCB=Račun, ki se uporabi za prejem plačil s kreditnimi karticami -CashDeskBankAccountForSumup=Default bank account to use to receive payments by SumUp -CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock). +CashDeskBankAccountForSumup=Privzeti bančni račun za prejemanje plačil prek SumUp +CashDeskDoNotDecreaseStock=Onemogoči zmanjševanje zaloge, ko je prodaja opravljena na prodajnem mestu (če je "ne", se zmanjševanje zaloge izvede za vsako prodajo opravljeno s POS-a, ne glede na možnost, nastavljeno v modulu Zaloga). CashDeskIdWareHouse=Prisilite ali blokirajte skladišče, uporabljeno za zmanjšanje zalog -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with module Serial/Lot management (currently active) so stock decrease is disabled. -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. -CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. -CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +StockDecreaseForPointOfSaleDisabled=Zmanjšanje zaloge s prodajnega mesta onemogočeno +StockDecreaseForPointOfSaleDisabledbyBatch=Zmanjšanje zalog v POS ni združljivo z modulom Serial/Lot management (trenutno aktiven), zato je zmanjševanje zalog onemogočeno. +CashDeskYouDidNotDisableStockDecease=Pri prodaji na prodajnem mestu niste onemogočili zmanjšanja zaloge. Zato je potrebno skladišče. +CashDeskForceDecreaseStockLabel=Zmanjšanje zalog serijskih izdelkov je bilo izsiljeno. +CashDeskForceDecreaseStockDesc=Najprej zmanjšajte za najstarejše datume prehranjevanja in prodaje. +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Nastavitev modula za zaznamke -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. +BookmarkDesc=Ta modul vam omogoča upravljanje zaznamkov. Dodate lahko tudi bližnjice do katere koli strani Dolibarr ali zunanjih spletnih mest v levem meniju. NbOfBoomarkToShow=Največje število zaznamkov za prikaz v levem meniju ##### WebServices ##### WebServicesSetup=Nastavitev modula za spletne storitve WebServicesDesc=Z omogočenjem tega modula postane Dolibarr spletni strežnik za zagotavljanje različnih spletnih storitev. WSDLCanBeDownloadedHere=WSDL opisna datoteka omogočenih storitev je na voljo tukaj -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL +EndPointIs=Odjemalci SOAP morajo svoje zahteve poslati končni točki Dolibarr, ki je na voljo na naslovu URL ##### API #### ApiSetup=Nastavitev modula API ApiDesc=Z omogočenjem tega modula postane Dolibarr REST strežnik za zagotavljanje različnih spletnih storitev. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore and test the APIs at URL +ApiProductionMode=Omogoči produkcijski način (to bo aktiviralo uporabo predpomnilnika za upravljanje storitev) +ApiExporerIs=API-je lahko raziščete in preizkusite na naslovu URL OnlyActiveElementsAreExposed=Izpostavljeni so samo elementi omogočenih modulov ApiKey=Ključ za API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +WarningAPIExplorerDisabled=API Explorer je bil onemogočen. API raziskovalec ni potreben za zagotavljanje storitev API. Je orodje za razvijalce za iskanje/testiranje API-jev REST. Če potrebujete to orodje, pojdite v nastavitve modula API REST, da ga aktivirate. ##### Bank ##### BankSetupModule=Nastavitev modula za banke -FreeLegalTextOnChequeReceipts=Free text on check receipts +FreeLegalTextOnChequeReceipts=Prosto besedilo na računih za čeke BankOrderShow=Prikaže seznam bančnih računov za države, ki uporabljajo "podrobno bančno številko" BankOrderGlobal=Splošno BankOrderGlobalDesc=Splošno zaporedje prikaza BankOrderES=Španski BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Check Receipts Numbering Module +ChequeReceiptsNumberingModule=Modul za številčenje računov ##### Multicompany ##### MultiCompanySetup=Nastavitev modula za več podjetij ##### Suppliers ##### -SuppliersSetup=Vendor module setup -SuppliersCommandModel=Complete template of Purchase Order -SuppliersCommandModelMuscadet=Complete template of Purchase Order (old implementation of cornas template) -SuppliersInvoiceModel=Complete template of Vendor Invoice -SuppliersInvoiceNumberingModel=Vendor invoices numbering models -IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval +SuppliersSetup=Nastavitve +SuppliersCommandModel=Popolna predloga naročilnice +SuppliersCommandModelMuscadet=Popolna predloga naročilnice (stara izvedba predloge cornas) +SuppliersInvoiceModel=Končaj predlogo za prejeti račun +SuppliersInvoiceNumberingModel=Modeli številčenja prejetih računov +IfSetToYesDontForgetPermission=Če je nastavljena na vrednost, ki ni ničelna, ne pozabite zagotoviti dovoljenj za skupine ali uporabnike, ki jim je dovoljena druga odobritev ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Nastavitev modula GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Pazite, da je mora biti vaš ip do datoteke s podatki o državi znotraj mape, ki jo PHP lahko bere (Na vašem PHP preverite nastavitve 'open_basedir' in dovoljenja za datotečni sistem). YouCanDownloadFreeDatFileTo=Brezplačno demo različico Maxmind GeoIP deželne datoteke lahko prenesete z %s. YouCanDownloadAdvancedDatFileTo=Lahko tudi prenesete bolj popolno različico, s posodobitvami, deželne datoteke Maxmind GeoIP z %s. @@ -1882,17 +1902,17 @@ ProjectsSetup=Nastavitve modula za projekte ProjectsModelModule=Vzorec dokumenta poročila o projektih TasksNumberingModules=Moduli za številčenje nalog TaskModelModule=Modeli obrazcev poročil o nalogah -UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.
    This may improve performance if you have a large number of projects, but it is less convenient. +UseSearchToSelectProject=Počakajte, da pritisnete tipko, preden naložite vsebino kombiniranega seznama Project.
    To lahko izboljša zmogljivost, če imate veliko število projektov, vendar je manj priročno. ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period +AccountingPeriods=Obračunska obdobja +AccountingPeriodCard=Obračunsko obdobje +NewFiscalYear=Novo obračunsko obdobje +OpenFiscalYear=Odprto obračunsko obdobje +CloseFiscalYear=Zaključi obračunsko obdobje +DeleteFiscalYear=Izbriši obračunsko obdobje +ConfirmDeleteFiscalYear=Ali ste prepričani, da želite izbrisati to obračunsko obdobje? +ShowFiscalYear=Pokaži obračunsko obdobje AlwaysEditable=Lahko je vedno urejeno MAIN_APPLICATION_TITLE=Prisilni prikaz imena aplikacije (opozorilo: če tukaj nastavite vaše lastno ime, lahko prekinete funkcijo avtomatskega vnosa uporabniškega imena pri uporabi mobilne aplikacije DoliDroid) NbMajMin=Minimalno število velikih črk @@ -1903,363 +1923,435 @@ NoAmbiCaracAutoGeneration=Ne uporabljajte dvoumnih znakov ("1","l","i","|","0"," SalariesSetup=Nastavitev modula za plače SortOrder=Sortiraj naročilo Format=Format -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and suppliers payment type +TypePaymentDesc=0:Vrsta plačila stranke, 1:Vrsta plačila prodajalca, 2:Vrsta plačila strank in dobaviteljev IncludePath=Vključi pot (definirana v spremenljivki %s) ExpenseReportsSetup=Nastavitev modula za stroškovna poročila TemplatePDFExpenseReports=Predloga dokumenta za generiranje stroškovnega poročila -ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules -ExpenseReportNumberingModules=Expense reports numbering module +ExpenseReportsRulesSetup=Postavitev modula Stroškovniki - Pravila +ExpenseReportNumberingModules=Modul za številčenje poročil o stroških NoModueToManageStockIncrease=Noben modul za upravljanje avtomatskega povečevanja zalog ni aktiviran. Zaloge se bodo povečale samo na osnovi ročnega vnosa. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -TemplatesForNotifications=Templates for notifications -ListOfNotificationsPerUser=List of automatic notifications per user* -ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** -ListOfFixedNotifications=List of automatic fixed notifications -GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go to the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +YouMayFindNotificationsFeaturesIntoModuleNotification=Možnosti za e-poštna obvestila boste našli tako, da omogočite in konfigurirate modul "Obvestilo". +TemplatesForNotifications=Predloge za obvestila +ListOfNotificationsPerUser=Seznam samodejnih obvestil na uporabnika* +ListOfNotificationsPerUserOrContact=Seznam možnih samodejnih obvestil (o poslovnem dogodku) na voljo na uporabnika* ali na kontakt** +ListOfFixedNotifications=Seznam samodejnih fiksnih obvestil +GoOntoUserCardToAddMore=Pojdite na zavihek »Obvestila« uporabnika, da dodate ali odstranite obvestila za uporabnike +GoOntoContactCardToAddMore=Pojdite na zavihek »Obvestila« partnerja, da dodate ali odstranite obvestila za stike/naslove Threshold=Prag -BackupDumpWizard=Wizard to build the database dump file -BackupZipWizard=Wizard to build the archive of documents directory +BackupDumpWizard=Čarovnik za izdelavo datoteke izpisa baze podatkov +BackupZipWizard=Čarovnik za izdelavo imenika arhiva dokumentov SomethingMakeInstallFromWebNotPossible=Instalacija eksternega modula s spletnega vmesnika ni možna zaradi naslednjega razloga: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +SomethingMakeInstallFromWebNotPossible2=Iz tega razloga je postopek nadgradnje, opisan tukaj, ročni postopek, ki ga lahko izvede samo privilegirani uporabnik. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Instalacijo zunanjega modula iz aplikacije je onemogočil vaš administrator. Prositi ga morate, naj odstrani datoteko %s, da bi omogočil to funkcijo. -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Če želite namestiti ali zgraditi zunanji modul iz aplikacije, morate datoteke modula shraniti v imenik %s . Če želite, da ta imenik obdela Dolibarr, morate nastaviti svoj conf/conf.php , da dodate 2 vrstici direktive:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Osvetli vrstice tabele, preko katerih je šla miška -HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) -HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) -UseBorderOnTable=Show left-right borders on tables -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button -TextTitleColor=Text color of Page title -LinkColor=Color of links -PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes +HighlightLinesColor=Označite barvo črte, ko gre miška čez (uporabite 'ffffff', če ne označite) +HighlightLinesChecked=Označite barvo črte, ko je označena (uporabite 'ffffff', če ne označite) +UseBorderOnTable=Pokaži levo-desno obrobo na tabelah +BtnActionColor=Barva akcijskega gumba +TextBtnActionColor=Barva besedila akcijskega gumba +TextTitleColor=Barva besedila naslova strani +LinkColor=Barva povezav +PressF5AfterChangingThis=Ko spremenite to vrednost, pritisnite CTRL+F5 na tipkovnici ali počistite predpomnilnik brskalnika, da bo veljala +NotSupportedByAllThemes=Will deluje z osnovnimi temami, morda ne bo podprt z zunanjimi temami BackgroundColor=Barva ozadja TopMenuBackgroundColor=Barva ozadja za zgornji meni -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Ikona ali besedilo v zgornjem meniju LeftMenuBackgroundColor=Barva ozadja za levi meni -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableTitleTextColor=Text color for Table title line -BackgroundTableTitleTextlinkColor=Text color for Table title link line +BackgroundTableTitleColor=Barva ozadja za naslovno vrstico tabele +BackgroundTableTitleTextColor=Barva besedila za naslovno vrstico tabele +BackgroundTableTitleTextlinkColor=Barva besedila za vrstico povezave naslova tabele BackgroundTableLineOddColor=Barva ozadja za lihe vrstice tabele BackgroundTableLineEvenColor=Barva ozadja za sode vrstice tabele MinimumNoticePeriod=Minimalni rok za obvestilo (Vaš zahtevek za odsotnost mora biti podan pred tem rokom) NbAddedAutomatically=Število dodanih dni pri števcu uporabnikov (avtomatsko) vsak mesec -EnterAnyCode=This field contains a reference to identify the line. Enter any value of your choice, but without special characters. -Enter0or1=Enter 0 or 1 -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +EnterAnyCode=To polje vsebuje sklic za identifikacijo vrstice. Vnesite poljubno vrednost, vendar brez posebnih znakov. +Enter0or1=Vnesite 0 ali 1 +UnicodeCurrency=Tukaj med oklepaji vnesite seznam številk bajtov, ki predstavljajo simbol valute. Na primer: za $ vnesite [36] - za brazilske realne R$ [82,36] - za € vnesite [8364] +ColorFormat=Barva RGB je v formatu HEX, npr.: FF0000 +PictoHelp=Ime ikone v formatu:
    - image.png za slikovno datoteko v trenutnem imeniku teme
    - image.png@module, če je datoteka v imeniku /img/ modula
    - fa-xxx za sliko FontAwesome fa-xxx
    - fonwtawesome_xxx_fa_color_size za sliko FontAwesome fa-xxx (z nastavljeno predpono, barvo in velikostjo) PositionIntoComboList=Položaj vrstice v kombiniranih seznamih -SellTaxRate=Sales tax rate -RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offers a page or web site to check the status of your shipments, you may enter it here. You can use the key {TRACKID} in the URL parameters so the system will replace it with the tracking number the user entered into the shipment card. -OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of the lead, this amount may be multiplied by this rate to evaluate a total amount all your leads may generate. Value is a percentage (between 0 and 100). -TemplateForElement=This mail template is related to what type of object? An email template is available only when using the "Send Email" button from the related object. +SellTaxRate=Stopnja prometnega davka +RecuperableOnly=Da za DDV "Ni zaznati, vendar ga je mogoče povrniti", namenjeno nekaterim državam v Franciji. V vseh drugih primerih imejte vrednost "Ne". +UrlTrackingDesc=Če ponudnik ali transportna služba ponuja stran ali spletno stran za preverjanje statusa vaših pošiljk, jo lahko vnesete tukaj. V parametrih URL-ja lahko uporabite ključ {TRACKID}, tako da ga bo sistem nadomestil s številko za sledenje, ki jo je uporabnik vnesel na kartico pošiljke. +OpportunityPercent=Ko ustvarite potencialno stranko, boste določili ocenjeno količino projekta/mogoče stranke. Glede na status potencialne stranke se lahko ta znesek pomnoži s to stopnjo, da se oceni skupni znesek, ki ga lahko ustvarijo vse vaše potencialne stranke. Vrednost je odstotek (med 0 in 100). +TemplateForElement=S katero vrsto predmeta je ta poštna predloga povezana? E-poštna predloga je na voljo le, če uporabite gumb »Pošlji e-pošto« iz povezanega predmeta. TypeOfTemplate=Vrsta predloge -TemplateIsVisibleByOwnerOnly=Template is visible to owner only -VisibleEverywhere=Visible everywhere -VisibleNowhere=Visible nowhere +TemplateIsVisibleByOwnerOnly=Predloga je vidna samo lastniku +VisibleEverywhere=Vidno povsod +VisibleNowhere=Nikjer vidno FixTZ=Fiksiranje časovne cone FillFixTZOnlyIfRequired=Primer: +2 (uporabite samo, če se pojavijo težave) ExpectedChecksum=Pričakovana kontrolna vsota CurrentChecksum=Trenutna kontrolna vsota -ExpectedSize=Expected size -CurrentSize=Current size -ForcedConstants=Required constant values +ExpectedSize=Pričakovana velikost +CurrentSize=Trenutna velikost +ForcedConstants=Zahtevane konstantne vrednosti MailToSendProposal=Ponudbe kupcu -MailToSendOrder=Sales orders +MailToSendOrder=Prodajna naročila MailToSendInvoice=Računi za kupca MailToSendShipment=Odpreme MailToSendIntervention=Intervencije -MailToSendSupplierRequestForQuotation=Quotation request +MailToSendSupplierRequestForQuotation=Zahteva za ponudbo MailToSendSupplierOrder=Nabavni nalogi -MailToSendSupplierInvoice=Fakture dobaviteljev +MailToSendSupplierInvoice=Prejeti računi MailToSendContract=Pogodbe -MailToSendReception=Receptions +MailToSendReception=Sprejemi +MailToExpenseReport=Stroškovna poročila MailToThirdparty=Partnerji MailToMember=Člani MailToUser=Uporabniki MailToProject=Projekti -MailToTicket=Tickets -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so contains only bug fixes. We recommend all users to upgrade to this version. A maintenance release does not introduce new features or changes to the database. You may download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read the ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several levels of prices per product/service" is enabled, you can define different prices (one per price level) for each product. To save you time, here you may enter a rule to autocalculate a price for each level based on the price of the first level, so you will have to only enter a price for the first level for each product. This page is designed to save you time but is useful only if your prices for each level are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -WarehouseModelModules=Templates for documents of warehouses -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto-define the barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -SeeChangeLog=See ChangeLog file (english only) -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDataTables=Add object tables -AddDictionaries=Add dictionaries tables -AddData=Add objects or dictionaries data -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter $dolibarr_main_restrict_os_commands in the conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permissions defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")
    Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)
    Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s") -BaseCurrency=Reference currency of the company (go into setup of company to change this) -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. -WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software. -MAIN_PDF_MARGIN_LEFT=Left margin on PDF -MAIN_PDF_MARGIN_RIGHT=Right margin on PDF -MAIN_PDF_MARGIN_TOP=Top margin on PDF -MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF -MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF -MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines -MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines -MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame -MAIN_PDF_NO_RECIPENT_FRAME=Hide borders on recipent address frame -MAIN_PDF_HIDE_CUSTOMER_CODE=Hide customer code -MAIN_PDF_HIDE_SENDER_NAME=Hide sender/company name in address block -PROPOSAL_PDF_HIDE_PAYMENTTERM=Hide payments conditions -PROPOSAL_PDF_HIDE_PAYMENTMODE=Hide payment mode -MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Add electronic sign in PDF -NothingToSetup=There is no specific setup required for this module. -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes.
    For example:
    CODEGRP1+CODEGRP2 -SeveralLangugeVariatFound=Several language variants found -RemoveSpecialChars=Remove special characters -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) -COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) -COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed -GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here -HelpOnTooltip=Help text to show on tooltip -HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form -YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s -ChartLoaded=Chart of account loaded -SocialNetworkSetup=Setup of module Social Networks -EnableFeatureFor=Enable features for %s -VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. -SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents -FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. -EmailCollector=Email collector -EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). -NewEmailCollector=New Email Collector -EMailHost=Host of email IMAP server -MailboxSourceDirectory=Mailbox source directory -MailboxTargetDirectory=Mailbox target directory -EmailcollectorOperations=Operations to do by collector -EmailcollectorOperationsDesc=Operations are executed from top to bottom order -MaxEmailCollectPerCollect=Max number of emails collected per collect -CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? -DateLastCollectResult=Date of latest collect try -DateLastcollectResultOk=Date of latest collect success -LastResult=Latest result -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail -NoNewEmailToProcess=No new email (matching filters) to process -NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) -RecordEvent=Record an event in agenda (with type Email sent or received) -CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) -CodeLastResult=Latest result code -NbOfEmailsInInbox=Number of emails in source directory -LoadThirdPartyFromName=Load third party searching on %s (load only) -LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. -WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr -WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr -WithDolTrackingIDInMsgId=Message sent from Dolibarr -WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr -CreateCandidature=Create job application +MailToTicket=Vstopnice +ByDefaultInList=Privzeto pokaži v pogledu seznama +YouUseLastStableVersion=Uporabljate najnovejšo stabilno različico +TitleExampleForMajorRelease=Primer sporočila, ki ga lahko uporabite za najavo te večje izdaje (lahko ga uporabite na svojih spletnih mestih) +TitleExampleForMaintenanceRelease=Primer sporočila, ki ga lahko uporabite za objavo te vzdrževalne izdaje (lahko ga uporabite na svojih spletnih mestih) +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s je na voljo. Različica %s je glavna izdaja z veliko novimi funkcijami za uporabnike in razvijalce. Prenesete ga lahko iz območja za prenos na portalu https://www.dolibarr.org (podimenik Stabilne različice). Za celoten seznam sprememb lahko preberete ChangeLog . +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s je na voljo. Različica %s je vzdrževalna različica, zato vsebuje samo popravke napak. Vsem uporabnikom priporočamo nadgradnjo na to različico. Vzdrževalna izdaja ne uvaja novih funkcij ali sprememb baze podatkov. Prenesete ga lahko iz območja za prenos na portalu https://www.dolibarr.org (podimenik Stabilne različice). Za celoten seznam sprememb lahko preberete ChangeLog . +MultiPriceRuleDesc=Ko je omogočena možnost "Več ravni cen na izdelek/storitev", lahko za vsak izdelek določite različne cene (ena na cenovni nivo). Da bi vam prihranili čas, lahko tukaj vnesete pravilo za samodejni izračun cene za vsako raven na podlagi cene prve ravni, tako da boste morali za vsak izdelek vnesti samo ceno za prvo raven. Ta stran je zasnovana tako, da vam prihrani čas, vendar je uporabna le, če so vaše cene za vsako raven relativne glede na prvo raven. To stran lahko v večini primerov prezrete. +ModelModulesProduct=Predloge za dokumente izdelkov +WarehouseModelModules=Predloge za dokumente skladišč +ToGenerateCodeDefineAutomaticRuleFirst=Če želite samodejno ustvariti kode, morate najprej določiti upravitelja za samodejno definiranje številke črtne kode. +SeeSubstitutionVars=Glejte * opombo za seznam možnih nadomestnih spremenljivk +SeeChangeLog=Oglejte si datoteko ChangeLog (samo v angleščini) +AllPublishers=Vsi založniki +UnknownPublishers=Neznani založniki +AddRemoveTabs=Dodajte ali odstranite zavihke +AddDataTables=Dodajte tabele predmetov +AddDictionaries=Dodajte tabele slovarjev +AddData=Dodajte podatke o predmetih ali slovarjih +AddBoxes=Dodajte pripomočke +AddSheduledJobs=Dodajte načrtovana opravila +AddHooks=Dodajte kljuke +AddTriggers=Dodajte sprožilce +AddMenus=Dodajte menije +AddPermissions=Dodajte dovoljenja +AddExportProfiles=Dodajte izvozne profile +AddImportProfiles=Dodajte uvozne profile +AddOtherPagesOrServices=Dodajte druge strani ali storitve +AddModels=Dodajte predloge dokumentov ali oštevilčevanja +AddSubstitutions=Dodajte zamenjave ključev +DetectionNotPossible=Odkrivanje ni mogoče +UrlToGetKeyToUseAPIs=URL za pridobitev žetona za uporabo API-ja (ko je žeton prejet, se shrani v uporabniško tabelo baze podatkov in ga je treba zagotoviti ob vsakem klicu API-ja) +ListOfAvailableAPIs=Seznam razpoložljivih API-jev +activateModuleDependNotSatisfied=Modul "%s" je odvisen od modula "%s", ki manjka, zato modul "%1$s" morda ne bo deloval pravilno. Namestite modul "%2$s" ali onemogočite modul "%1$s", če želite biti varni pred kakršnim koli presenečenjem +CommandIsNotInsideAllowedCommands=Ukaz, ki ga poskušate izvesti, ni na seznamu dovoljenih ukazov, definiranih v parametru $dolibarr_main_restrict_os_commands v datoteki conf.php . +LandingPage=Ciljna stran +SamePriceAlsoForSharedCompanies=Če uporabljate modul za več podjetij, z izbiro "Enotna cena", bo tudi cena enaka za vsa podjetja, če se izdelki delijo med okolji. +ModuleEnabledAdminMustCheckRights=Modul je bil aktiviran. Dovoljenja za aktivirane module so bila dana samo skrbniškim uporabnikom. Po potrebi boste morda morali ročno podeliti dovoljenja drugim uporabnikom ali skupinam. +UserHasNoPermissions=Ta uporabnik nima določenih dovoljenj +TypeCdr=Uporabite »Brez«, če je datum plačilnega roka datum računa plus delta v dnevih (delta je polje »%s«)
    Uporabite »Na koncu meseca«, če je po delti treba datum povečati, da dosežete konec meseca (+ neobvezno "%s" v dnevih)
    Uporabite "Trenutni/naslednji", če želite, da je datum plačilnega roka prvi N-ti v mesecu po delti (delta je polje "%s", N je shranjen v polju "%s") +BaseCurrency=Referenčna valuta podjetja (pojdite v nastavitve podjetja, da to spremenite) +WarningNoteModuleInvoiceForFrenchLaw=Ta modul %s je skladen s francoskimi zakoni (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Ta modul %s je skladen s francoskimi zakoni (Loi Finance 2016), ker se modul Non Reversible Logs samodejno aktivira. +WarningInstallationMayBecomeNotCompliantWithLaw=Poskušate namestiti modul %s, ki je zunanji modul. Aktiviranje zunanjega modula pomeni, da zaupate izdajatelju tega modula in da ste prepričani, da ta modul ne vpliva negativno na delovanje vaše aplikacije in je v skladu z zakoni vaše države (%s). Če modul uvede nezakonito funkcijo, postanete odgovorni za uporabo nezakonite programske opreme. +MAIN_PDF_MARGIN_LEFT=Levi rob na PDF +MAIN_PDF_MARGIN_RIGHT=Desni rob na PDF +MAIN_PDF_MARGIN_TOP=Zgornji rob na PDF +MAIN_PDF_MARGIN_BOTTOM=Spodnji rob na PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=Višina za logotip v PDF +DOC_SHOW_FIRST_SALES_REP=Prikaži prvega prodajnega predstavnika +MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Dodajte stolpec za sliko v vrstice predlogov +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Širina stolpca, če je slika dodana v vrstice +MAIN_PDF_NO_SENDER_FRAME=Skrij obrobe okvirja naslova pošiljatelja +MAIN_PDF_NO_RECIPENT_FRAME=Skrij obrobe okvirja naslova prejemnika +MAIN_PDF_HIDE_CUSTOMER_CODE=Skrij kodo stranke +MAIN_PDF_HIDE_SENDER_NAME=Skrij ime pošiljatelja/podjetja v naslovnem bloku +PROPOSAL_PDF_HIDE_PAYMENTTERM=Skrij plačilne pogoje +PROPOSAL_PDF_HIDE_PAYMENTMODE=Skrij način plačila +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Dodajte elektronski podpis v PDF +NothingToSetup=Za ta modul ni potrebna posebna nastavitev. +SetToYesIfGroupIsComputationOfOtherGroups=Nastavite to na da, če je ta skupina izračun drugih skupin +EnterCalculationRuleIfPreviousFieldIsYes=Vnesite pravilo izračuna, če je bilo prejšnje polje nastavljeno na Da.
    Na primer:
    CODEGRP1+CODEGRP2 +SeveralLangugeVariatFound=Najdenih več jezikovnih različic +RemoveSpecialChars=Odstranite posebne znake +COMPANY_AQUARIUM_CLEAN_REGEX=Filter regularnih izrazov za čiščenje vrednosti (COMPANY_AQUARIUM_CLEAN_REGEX) +COMPANY_DIGITARIA_CLEAN_REGEX=Filter regularnih izrazov za čiščenje vrednosti (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=Podvajanje ni dovoljeno +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word +GDPRContact=Pooblaščenec za varstvo podatkov (DPO, kontakt za zasebnost podatkov ali GDPR) +GDPRContactDesc=Če v svojem Informacijskem sistemu shranjujete osebne podatke, lahko tukaj navedete kontakt, ki je odgovoren za Splošno uredbo o varstvu podatkov +HelpOnTooltip=Besedilo pomoči za prikaz v opisu orodja +HelpOnTooltipDesc=Tukaj vnesite besedilo ali ključ za prevod, da se besedilo prikaže v opisu orodja, ko se to polje prikaže v obrazcu +YouCanDeleteFileOnServerWith=To datoteko lahko izbrišete na strežniku z ukazno vrstico:
    %s +ChartLoaded=Kontni načrt je naložen +SocialNetworkSetup=Nastavitev modula Socialna omrežja +EnableFeatureFor=Omogoči funkcije za %s +VATIsUsedIsOff=Opomba: Možnost uporabe prometnega davka ali DDV je bila nastavljena na Off v meniju %s - %s, tako da bo uporabljeni prometni davek ali DDV vedno 0 za prodajo. +SwapSenderAndRecipientOnPDF=Zamenjajte mesto naslova pošiljatelja in prejemnika na dokumentih PDF +FeatureSupportedOnTextFieldsOnly=Opozorilo, funkcija je podprta samo v besedilnih poljih in kombiniranih seznamih. Za sprožitev te funkcije mora biti nastavljen tudi parameter URL action=create ali action=edit ALI ime strani se mora končati z 'new.php'. +EmailCollector=Zbiralec elektronske pošte +EmailCollectors=Zbiralci elektronske pošte +EmailCollectorDescription=Dodajte načrtovano opravilo in stran z nastavitvami za redno skeniranje e-poštnih nabiralnikov (z uporabo protokola IMAP) in beleženje prejetih e-poštnih sporočil v vašo aplikacijo na pravem mestu in/ali samodejno ustvarite nekaj zapisov (kot so potencialne stranke). +NewEmailCollector=Nov zbiralnik e-pošte +EMailHost=Gostitelj e-poštnega strežnika IMAP +EMailHostPort=Vrata e-poštnega strežnika IMAP +loginPassword=Prijava/Geslo +oauthToken=Oauth2 žeton +accessType=Vrsta dostopa +oauthService=Oauth storitev +TokenMustHaveBeenCreated=Modul OAuth2 mora biti omogočen in žeton oauth2 mora biti ustvarjen s pravilnimi dovoljenji (na primer obseg »gmail_full« z OAuth za Gmail). +MailboxSourceDirectory=Izvorni imenik nabiralnika +MailboxTargetDirectory=Ciljni imenik nabiralnika +EmailcollectorOperations=Operacije, ki jih izvaja zbiralec +EmailcollectorOperationsDesc=Operacije se izvajajo od zgoraj navzdol +MaxEmailCollectPerCollect=Največje število zbranih e-poštnih sporočil na zbiranje +TestCollectNow=Preskusno zbiranje +CollectNow=Zberi zdaj +ConfirmCloneEmailCollector=Ali ste prepričani, da želite klonirati zbiralnik e-pošte %s? +DateLastCollectResult=Datum zadnjega poskusa zbiranja +DateLastcollectResultOk=Datum zadnjega uspeha zbiranja +LastResult=Zadnji rezultat +EmailCollectorHideMailHeaders=Ne vključite vsebine glave elektronske pošte v shranjeno vsebino zbrane elektronske pošte +EmailCollectorHideMailHeadersHelp=Ko je omogočeno, glave e-pošte niso dodane na koncu vsebine e-pošte, ki je shranjena kot dogodek dnevnega reda. +EmailCollectorConfirmCollectTitle=Potrditev zbiranja po e-pošti +EmailCollectorConfirmCollect=Ali želite zdaj zagnati ta zbiralnik? +EmailCollectorExampleToCollectTicketRequestsDesc=Zberite e-poštna sporočila, ki se ujemajo z nekaterimi pravili, in samodejno ustvarite vstopnico (modulna vstopnica mora biti omogočena) z e-poštnimi informacijami. Ta zbiralnik lahko uporabite, če zagotovite podporo po e-pošti, tako da bo vaša zahteva za vstopnico samodejno ustvarjena. Aktivirajte tudi Collect_Responses za zbiranje odgovorov vaše stranke neposredno v pogledu vozovnice (odgovoriti morate iz Dolibarrja). +EmailCollectorExampleToCollectTicketRequests=Primer zbiranja zahteve za vstopnico (samo prvo sporočilo) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Preglejte imenik »Poslano« svojega nabiralnika in poiščite e-poštna sporočila, ki so bila poslana kot odgovor na drugo e-poštno sporočilo neposredno iz vaše e-poštne programske opreme in ne iz Dolibarrja. Če takšno e-poštno sporočilo najdemo, se dogodek odgovora zabeleži v Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Primer zbiranja e-poštnih odgovorov, poslanih iz zunanje e-poštne programske opreme +EmailCollectorExampleToCollectDolibarrAnswersDesc=Zberite vsa e-poštna sporočila, ki so odgovor na e-poštno sporočilo, poslano iz vaše aplikacije. Dogodek (modul Agenda mora biti omogočen) z e-poštnim odgovorom bo zabeležen na dobrem mestu. Na primer, če pošljete komercialni predlog, naročilo, račun ali sporočilo za vstopnico po e-pošti iz aplikacije in prejemnik odgovori na vaše e-poštno sporočilo, bo sistem samodejno ujel odgovor in ga dodal v vaš ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Primer zbiranja vseh dohodnih sporočil, ki so odgovori na sporočila, poslana od Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Zberite e-poštna sporočila, ki se ujemajo z nekaterimi pravili, in samodejno ustvarite potencialno stranko (Module Project mora biti omogočen) z e-poštnimi informacijami. Ta zbiralnik lahko uporabite, če želite slediti svojemu vodniku z uporabo modula Projekt (1 lead = 1 projekt), tako da bodo vaši potencialni kupci samodejno ustvarjeni. Če je omogočen tudi zbiralnik Collect_Responses, ko pošljete e-poštno sporočilo svojih potencialnih strank, predlogov ali katerega koli drugega predmeta, boste morda neposredno v aplikaciji videli tudi odgovore svojih strank ali partnerjev.
    Opomba: v tem začetnem primeru se ustvari naslov potencialne stranke, vključno z e-pošto. Če tretje osebe ni mogoče najti v bazi podatkov (nova stranka), bo potencialna stranka pripeta tretji osebi z ID 1. +EmailCollectorExampleToCollectLeads=Primer zbiranja potencialnih strank +EmailCollectorExampleToCollectJobCandidaturesDesc=Zbirajte e-poštna sporočila, ki se prijavljajo na ponudbe za delo (Modul Recruitment mora biti omogočen). Ta zbiralnik lahko dokončate, če želite samodejno ustvariti kandidaturo za prošnjo za delo. Opomba: S tem začetnim primerom se ustvari naslov kandidature, vključno z e-pošto. +EmailCollectorExampleToCollectJobCandidatures=Primer zbiranja kandidatur za zaposlitev, prejetih po elektronski pošti +NoNewEmailToProcess=Ni novega e-poštnega sporočila (ujemajoči se filtri) za obdelavo +NothingProcessed=Nič narejenega +XEmailsDoneYActionsDone=%s e-pošta predhodno kvalificirana, %s e-pošta uspešno obdelana (za %s zapis/opravljena dejanja) +RecordEvent=Posnemite dogodek v dnevni red (z vrsto Poslana ali prejeta e-pošta) +CreateLeadAndThirdParty=Ustvarite potencialnega kupca (in partnerja, če je potrebno) +CreateTicketAndThirdParty=Ustvari vstopnico (povezano s partnerjem, če je bil partner naložen s prejšnjo operacijo ali je bila uganjena iz sledilnika v glavi e-pošte, sicer brez partnerja) +CodeLastResult=Koda zadnjega rezultata +NbOfEmailsInInbox=Število e-poštnih sporočil v izvornem imeniku +LoadThirdPartyFromName=Naloži iskanje partnerjev na %s (samo nalaganje) +LoadThirdPartyFromNameOrCreate=Naloži iskanje partnerjev na %s (ustvari, če ni najden) +AttachJoinedDocumentsToObject=Shranite priložene datoteke v dokumente predmeta, če je v e-poštni temi najden sklic predmeta. +WithDolTrackingID=Sporočilo iz pogovora, ki ga je sprožilo prvo e-poštno sporočilo, poslano iz Dolibarra +WithoutDolTrackingID=Sporočilo iz pogovora, ki ga je sprožilo prvo e-poštno sporočilo, ki NI poslano iz Dolibarra +WithDolTrackingIDInMsgId=Sporočilo poslano od Dolibarr +WithoutDolTrackingIDInMsgId=Sporočilo NI poslano iz Dolibarra +CreateCandidature=Ustvari prošnjo za delo FormatZip=Zip -MainMenuCode=Menu entry code (mainmenu) -ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. -OpeningHours=Opening hours -OpeningHoursDesc=Enter here the regular opening hours of your company. -ResourceSetup=Configuration of Resource module -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disable feature to link a resource to users -DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda -ConfirmUnactivation=Confirm module reset -OnMobileOnly=On small screen (smartphone) only -DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) -MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links. -MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person -MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. -Protanopia=Protanopia -Deuteranopes=Deuteranopes -Tritanopes=Tritanopes -ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' -DefaultCustomerType=Default thirdparty type for "New customer" creation form -ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. -RootCategoryForProductsToSell=Root category of products to sell -RootCategoryForProductsToSellDesc=If defined, only products inside this category or childs of this category will be available in the Point Of Sale -DebugBar=Debug Bar -DebugBarDesc=Toolbar that comes with a plenty of tools to simplify debugging -DebugBarSetup=DebugBar Setup -GeneralOptions=General Options -LogsLinesNumber=Number of lines to show on logs tab -UseDebugBar=Use the debug bar -DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console -WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -ModuleActivated=Module %s is activated and slows the interface -ModuleActivatedWithTooHighLogLevel=Module %s is activated with a too high logging level (try to use a lower level for better performances and security) -ModuleSyslogActivatedButLevelNotTooVerbose=Module %s is activated and log level (%s) is correct (not too verbose) -IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. -AntivirusEnabledOnUpload=Antivirus enabled on uploaded files -SomeFilesOrDirInRootAreWritable=Some files or directories are not in a read-only mode -EXPORTS_SHARE_MODELS=Export models are share with everybody -ExportSetup=Setup of module Export -ImportSetup=Setup of module Import -InstanceUniqueID=Unique ID of the instance -SmallerThan=Smaller than -LargerThan=Larger than -IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object. -WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/. -EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account. -EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    -EndPointFor=End point for %s : %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? -RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value -AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +MainMenuCode=Koda za vnos menija (glavni meni) +ECMAutoTree=Pokaži samodejno drevo ECM +OperationParamDesc=Določite pravila za ekstrahiranje nekaterih podatkov ali nastavite vrednosti za uporabo pri delovanju.

    Primer ekstrakcije imena podjetja iz zadeve e-pošte v začasno spremenljivko:
    tmp_var=IZVLEČEK:ZADEVA:Sporočilo podjetja ([^\n]*)

    Primeri za nastavitev lastnosti predmeta za ustvarjanje:
    objproperty1=SET:trdo kodirana vrednost
    objproperty2=SET:__tmp_var__
    lastnost ni nastavljena samo, če vrednost objproperty3:SETIFEM že ni določena
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My ime podjetja je\\s([^\\s]*)

    Uporabite ; char kot ločilo za ekstrahiranje ali nastavitev več lastnosti. +OpeningHours=Odpiralni čas +OpeningHoursDesc=Tukaj vnesite redni delovni čas vašega podjetja. +ResourceSetup=Konfiguracija modula Resource +UseSearchToSelectResource=Za izbiro vira uporabite iskalni obrazec (namesto spustnega seznama). +DisabledResourceLinkUser=Onemogoči funkcijo za povezovanje vira z uporabniki +DisabledResourceLinkContact=Onemogoči funkcijo povezovanja vira s stiki +EnableResourceUsedInEventCheck=Prepovedati uporabo istega vira ob istem času na dnevnem redu +ConfirmUnactivation=Potrdite ponastavitev modula +OnMobileOnly=Samo na majhnem zaslonu (pametni telefon). +DisableProspectCustomerType=Onemogočite vrsto partnerja »Potencialni + kupec« (torej mora biti partner »Potencialni kupec« ali »Kupec«, vendar ne more biti oboje) +MAIN_OPTIMIZEFORTEXTBROWSER=Poenostavite vmesnik za slepe osebe +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Omogočite to možnost, če ste slepa oseba ali če uporabljate aplikacijo iz besedilnega brskalnika, kot sta Lynx ali Links. +MAIN_OPTIMIZEFORCOLORBLIND=Spremenite barvo vmesnika za barvno slepo osebo +MAIN_OPTIMIZEFORCOLORBLINDDesc=Omogočite to možnost, če ste barvno slepi, v nekaterih primerih bo vmesnik spremenil barvno nastavitev za povečanje kontrasta. +Protanopia=Protanopija +Deuteranopes=Devteranopi +Tritanopes=Tritanopi +ThisValueCanOverwrittenOnUserLevel=To vrednost lahko vsak uporabnik prepiše s svoje uporabniške strani - zavihek '%s' +DefaultCustomerType=Privzeti tip partnerja za obrazec za ustvarjanje »Nov kupec«. +ABankAccountMustBeDefinedOnPaymentModeSetup=Opomba: Bančni račun mora biti definiran na modulu vsakega načina plačila (Paypal, Stripe, ...), da ta funkcija deluje. +RootCategoryForProductsToSell=Osnovna kategorija izdelkov za prodajo +RootCategoryForProductsToSellDesc=Če je definirano, bodo na prodajnem mestu na voljo samo izdelki znotraj te kategorije ali podrejeni izdelki te kategorije +DebugBar=Vrstica za odpravljanje napak +DebugBarDesc=Orodna vrstica, ki vsebuje veliko orodij za poenostavitev odpravljanja napak +DebugBarSetup=Nastavitev DebugBar +GeneralOptions=Splošne možnosti +LogsLinesNumber=Število vrstic za prikaz na kartici dnevnikov +UseDebugBar=Uporabite vrstico za odpravljanje napak +DEBUGBAR_LOGS_LINES_NUMBER=Število zadnjih vrstic dnevnika, ki jih je treba hraniti v konzoli +WarningValueHigherSlowsDramaticalyOutput=Opozorilo, višje vrednosti dramatično upočasnijo izpis +ModuleActivated=Modul %s je aktiviran in upočasni vmesnik +ModuleActivatedWithTooHighLogLevel=Modul %s je aktiviran s previsoko stopnjo beleženja (poskusite uporabiti nižjo raven za boljše delovanje in varnost) +ModuleSyslogActivatedButLevelNotTooVerbose=Modul %s je aktiviran in raven dnevnika (%s) je pravilna (ne preveč podrobna) +IfYouAreOnAProductionSetThis=Če uporabljate produkcijsko okolje, morate to lastnost nastaviti na %s. +AntivirusEnabledOnUpload=Za naložene datoteke je omogočen protivirusni program +SomeFilesOrDirInRootAreWritable=Nekatere datoteke ali imeniki niso v načinu samo za branje +EXPORTS_SHARE_MODELS=Izvozne modele delimo z vsemi +ExportSetup=Nastavitev modula Export +ImportSetup=Nastavitev modula Import +InstanceUniqueID=Enolični ID primerka +SmallerThan=Manjši od +LargerThan=Večje kot +IfTrackingIDFoundEventWillBeLinked=Upoštevajte, da če je v e-pošti najden ID sledenja predmeta ali če je e-poštno sporočilo odgovor na e-poštno sporočilo, ki je zbrano in povezano z objektom, bo ustvarjeni dogodek samodejno povezan z znanim sorodnim objektom. +WithGMailYouCanCreateADedicatedPassword=Če ste z računom GMail omogočili preverjanje v dveh korakih, je priporočljivo ustvariti namensko drugo geslo za aplikacijo namesto uporabe lastnega gesla za račun s https://myaccount.google.com/. +EmailCollectorTargetDir=Morda je želeno vedenje premakniti e-pošto v drugo oznako/imenik, ko je bila uspešno obdelana. Samo nastavite ime imenika tukaj, da uporabite to funkcijo (NE uporabljajte posebnih znakov v imenu). Upoštevajte, da morate uporabiti tudi prijavni račun za branje/pisanje. +EmailCollectorLoadThirdPartyHelp=To dejanje lahko uporabite za uporabo vsebine e-pošte za iskanje in nalaganje obstoječega partnerja v vaši bazi podatkov. Najden (ali ustvarjen) partner bo uporabljen za naslednja dejanja, ki jo potrebujejo.
    Na primer, če želite ustvariti partnerja z imenom, ekstrahiranim iz niza 'Ime: ime za iskanje', prisotnega v telesu, uporabite e-pošto pošiljatelja kot e-pošto, polje parametrov lahko nastavite takole:
    'email= HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +EndPointFor=Končna točka za %s : %s +DeleteEmailCollector=Izbriši zbiralnik e-pošte +ConfirmDeleteEmailCollector=Ali ste prepričani, da želite izbrisati ta zbiralnik e-pošte? +RecipientEmailsWillBeReplacedWithThisValue=E-poštna sporočila prejemnikov bodo vedno nadomeščena s to vrednostjo +AtLeastOneDefaultBankAccountMandatory=Določen mora biti vsaj 1 privzeti bančni račun +RESTRICT_ON_IP=Dovolite dostop API-ja samo do določenih IP-jev strank (nadomestni znak ni dovoljen, med vrednostmi uporabite presledek). Prazno pomeni, da lahko dostopajo vse stranke. IPListExample=127.0.0.1 192.168.0.2 [::1] -BaseOnSabeDavVersion=Based on the library SabreDAV version -NotAPublicIp=Not a public IP -MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation. -FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled -EmailTemplate=Template for email -EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax -PDF_SHOW_PROJECT=Show project on document -ShowProjectLabel=Project Label -PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. -PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF -FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. -RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard -JumpToBoxes=Jump to Setup -> Widgets -MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time" -MeasuringScaleDesc=The scale is the number of places you have to move the decimal part to match the default reference unit. For "time" unit type, it is the number of seconds. Values between 80 and 99 are reserved values. -TemplateAdded=Template added -TemplateUpdated=Template updated -TemplateDeleted=Template deleted -MailToSendEventPush=Event reminder email -SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security -DictionaryProductNature= Nature of product -CountryIfSpecificToOneCountry=Country (if specific to a given country) -YouMayFindSecurityAdviceHere=You may find security advisory here -ModuleActivatedMayExposeInformation=This PHP extension may expose sensitive data. If you don't need it, disable it. -ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment. -CombinationsSeparator=Separator character for product combinations -SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples -SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. -AskThisIDToYourBank=Contact your bank to get this ID -AdvancedModeOnly=Permision available in Advanced permission mode only -ConfFileIsReadableOrWritableByAnyUsers=The conf file is readable or writable by any users. Give permission to web server user and group only. -MailToSendEventOrganization=Event Organization -MailToPartnership=Partnership -AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form -YouShouldDisablePHPFunctions=You should disable PHP functions -IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions -NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) -RecommendedValueIs=Recommended: %s +BaseOnSabeDavVersion=Temelji na različici knjižnice SabreDAV +NotAPublicIp=Ni javni IP +MakeAnonymousPing=Izvedite anonimni ping '+1' na strežnik fundacije Dolibarr (izvedeno samo 1-krat po namestitvi), da omogočite fundaciji, da prešteje število namestitev Dolibarr. +FeatureNotAvailableWithReceptionModule=Funkcija ni na voljo, ko je omogočen modul Sprejem +EmailTemplate=Predloga za e-pošto +EMailsWillHaveMessageID=E-poštna sporočila bodo imela oznako 'Reference', ki se ujema s to sintakso +PDF_SHOW_PROJECT=Pokaži projekt na dokumentu +ShowProjectLabel=Oznaka projekta +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=V ime partnerja vključite vzdevek +THIRDPARTY_ALIAS=Ime partnerja - vzdevek +ALIAS_THIRDPARTY=Vzdevek partnerja – ime partnerja +PDFIn2Languages=Show labels into PDF in 2 different languages +PDF_USE_ALSO_LANGUAGE_CODE=Če želite imeti nekatera besedila v vašem PDF-ju podvojena v 2 različnih jezikih v istem ustvarjenem PDF-ju, morate tukaj nastaviti ta drugi jezik, tako da bo ustvarjeni PDF vseboval 2 različna jezika na isti strani, tistega, izbranega pri ustvarjanju PDF-ja, in tega ( to podpira le nekaj predlog PDF). Pustite prazno za 1 jezik na PDF. +PDF_USE_A=Ustvari dokumente PDF s formatom PDF/A namesto s privzetim formatom PDF +FafaIconSocialNetworksDesc=Tukaj vnesite kodo ikone FontAwesome. Če ne veste, kaj je FontAwesome, lahko uporabite generično vrednost fa-adress-book. +RssNote=Opomba: vsaka definicija vira RSS ponuja gradnik, ki ga morate omogočiti, da bo na voljo na nadzorni plošči +JumpToBoxes=Pojdite na Nastavitve -> Pripomočki +MeasuringUnitTypeDesc=Tukaj uporabite vrednost, kot je "size", "surface", "volume", "weight", "time" +MeasuringScaleDesc=Lestvica je število mest, za katera morate premakniti decimalni del, da se ujema s privzeto referenčno enoto. Za tip enote "čas" je to število sekund. Vrednosti med 80 in 99 so rezervirane vrednosti. +TemplateAdded=Dodana predloga +TemplateUpdated=Predloga posodobljena +TemplateDeleted=Predloga izbrisana +MailToSendEventPush=E-poštni opomnik za dogodek +SwitchThisForABetterSecurity=Za večjo varnost priporočamo, da to vrednost spremenite v %s +DictionaryProductNature= Narava izdelka +CountryIfSpecificToOneCountry=Država (če je specifična za dano državo) +YouMayFindSecurityAdviceHere=Tukaj lahko najdete varnostne nasvete +ModuleActivatedMayExposeInformation=Ta razširitev PHP lahko razkrije občutljive podatke. Če ga ne potrebujete, ga onemogočite. +ModuleActivatedDoNotUseInProduction=Omogočen je bil modul, namenjen razvoju. Ne omogočite ga v produkcijskem okolju. +CombinationsSeparator=Ločevalni znak za kombinacije izdelkov +SeeLinkToOnlineDocumentation=Za primere glejte povezavo do spletne dokumentacije v zgornjem meniju +SHOW_SUBPRODUCT_REF_IN_PDF=Če je uporabljena funkcija "%s" modula %s , pokažite podrobnosti podproizvodov kompleta v PDF-ju. +AskThisIDToYourBank=Za ta ID se obrnite na svojo banko +AdvancedModeOnly=Dovoljenje je na voljo samo v naprednem načinu dovoljenj +ConfFileIsReadableOrWritableByAnyUsers=Datoteko conf lahko berejo ali zapisujejo vsi uporabniki. Dajte dovoljenje samo uporabniku in skupini spletnega strežnika. +MailToSendEventOrganization=Organizacija dogodkov +MailToPartnership=Partnerstvo +AGENDA_EVENT_DEFAULT_STATUS=Privzeti status dogodka pri ustvarjanju dogodka iz obrazca +YouShouldDisablePHPFunctions=Funkcije PHP bi morali onemogočiti +IfCLINotRequiredYouShouldDisablePHPFunctions=Funkcije PHP bi morali onemogočiti, razen če morate zagnati sistemske ukaze v kodi po meri +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions +NoWritableFilesFoundIntoRootDir=V vašem korenskem imeniku ni bilo najdenih zapisljivih datotek ali imenikov običajnih programov (dobro) +RecommendedValueIs=Priporočeno: %s Recommended=Priporočena -NotRecommended=Not recommended -ARestrictedPath=Some restricted path -CheckForModuleUpdate=Check for external modules updates -CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. -ModuleUpdateAvailable=An update is available -NoExternalModuleWithUpdate=No updates found for external modules -SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) -YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. -RandomlySelectedIfSeveral=Randomly selected if several pictures are available -DatabasePasswordObfuscated=Database password is obfuscated in conf file -DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file -APIsAreNotEnabled=APIs modules are not enabled -YouShouldSetThisToOff=You should set this to 0 or off -InstallAndUpgradeLockedBy=Install and upgrades are locked by the file %s -OldImplementation=Old implementation -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=If some online payment modules are enabled (Paypal, Stripe, ...), add a link on the PDF to make the online payment -DashboardDisableGlobal=Disable globally all the thumbs of open objects -BoxstatsDisableGlobal=Disable totally box statistics -DashboardDisableBlocks=Thumbs of open objects (to process or late) on main dashboard -DashboardDisableBlockAgenda=Disable the thumb for agenda -DashboardDisableBlockProject=Disable the thumb for projects -DashboardDisableBlockCustomer=Disable the thumb for customers -DashboardDisableBlockSupplier=Disable the thumb for suppliers -DashboardDisableBlockContract=Disable the thumb for contracts -DashboardDisableBlockTicket=Disable the thumb for tickets -DashboardDisableBlockBank=Disable the thumb for banks -DashboardDisableBlockAdherent=Disable the thumb for memberships -DashboardDisableBlockExpenseReport=Disable the thumb for expense reports -DashboardDisableBlockHoliday=Disable the thumb for leaves -EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -LanguageAndPresentation=Language and presentation -SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -PDF_USE_1A=Generate PDF with PDF/A-1b format -MissingTranslationForConfKey = Missing translation for %s -NativeModules=Native modules -NoDeployedModulesFoundWithThisSearchCriteria=No modules found for these search criteria -API_DISABLE_COMPRESSION=Disable compression of API responses -EachTerminalHasItsOwnCounter=Each terminal use its own counter. -FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first -PreviousHash=Previous hash -LateWarningAfter="Late" warning after -TemplateforBusinessCards=Template for a business card in different size -InventorySetup= Inventory Setup -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +NotRecommended=Ni priporočljivo +ARestrictedPath=Some restricted path for data files +CheckForModuleUpdate=Preverite posodobitve zunanjih modulov +CheckForModuleUpdateHelp=To dejanje bo vzpostavilo povezavo z urejevalniki zunanjih modulov in preverilo, ali je na voljo nova različica. +ModuleUpdateAvailable=Na voljo je posodobitev +NoExternalModuleWithUpdate=Za zunanje module ni bilo najdenih posodobitev +SwaggerDescriptionFile=Opisna datoteka Swagger API (na primer za uporabo z redoc) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Omogočili ste zastarel WS API. Namesto tega bi morali uporabiti REST API. +RandomlySelectedIfSeveral=Naključno izbrano, če je na voljo več slik +SalesRepresentativeInfo=Za ponudbe, naročila, račune. +DatabasePasswordObfuscated=Geslo baze podatkov je zakrito v datoteki conf +DatabasePasswordNotObfuscated=Geslo baze podatkov NI zakrito v datoteki conf +APIsAreNotEnabled=Moduli API-jev niso omogočeni +YouShouldSetThisToOff=To bi morali nastaviti na 0 ali izklopiti +InstallAndUpgradeLockedBy=Namestitev in nadgradnje so zaklenjene z datoteko %s +OldImplementation=Stara izvedba +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Če so omogočeni nekateri moduli za spletno plačevanje (Paypal, Stripe, ...), dodajte povezavo na PDF za izvedbo spletnega plačila +DashboardDisableGlobal=Globalno onemogoči vse palce odprtih predmetov +BoxstatsDisableGlobal=Popolnoma onemogoči statistiko polja +DashboardDisableBlocks=Palci odprtih predmetov (za obdelavo ali pozno) na glavni armaturni plošči +DashboardDisableBlockAgenda=Onemogoči palec za dnevni red +DashboardDisableBlockProject=Onemogoči palec za projekte +DashboardDisableBlockCustomer=Onemogoči palec za stranke +DashboardDisableBlockSupplier=Onemogoči palec za dobavitelje +DashboardDisableBlockContract=Onemogoči palec za pogodbe +DashboardDisableBlockTicket=Onemogoči palec za vstopnice +DashboardDisableBlockBank=Onemogoči palec za banke +DashboardDisableBlockAdherent=Onemogoči palec za članstva +DashboardDisableBlockExpenseReport=Onemogoči palec za poročila o stroških +DashboardDisableBlockHoliday=Onemogoči palec za liste +EnabledCondition=Pogoj, da je polje omogočeno (če ni omogočeno, bo vidnost vedno izklopljena) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Če želite uporabiti drugi davek, morate omogočiti tudi prvi prometni davek +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Če želite uporabiti tretji davek, morate omogočiti tudi prvi prometni davek +LanguageAndPresentation=Jezik in predstavitev +SkinAndColors=Koža in barve +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Če želite uporabiti drugi davek, morate omogočiti tudi prvi prometni davek +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Če želite uporabiti tretji davek, morate omogočiti tudi prvi prometni davek +PDF_USE_1A=Ustvari PDF s formatom PDF/A-1b +MissingTranslationForConfKey = Manjka prevod za %s +NativeModules=Izvorni moduli +NoDeployedModulesFoundWithThisSearchCriteria=Za te iskalne kriterije ni bilo mogoče najti nobenih modulov +API_DISABLE_COMPRESSION=Onemogoči stiskanje odzivov API-ja +EachTerminalHasItsOwnCounter=Vsak terminal uporablja svoj števec. +FillAndSaveAccountIdAndSecret=Najprej izpolnite in shranite ID in skrivnost računa +PreviousHash=Prejšnji hash +LateWarningAfter="Pozno" opozorilo po +TemplateforBusinessCards=Šablona za vizitko v različnih velikostih +InventorySetup= Nastavitev inventarja +ExportUseLowMemoryMode=Uporabite način nizke količine pomnilnika +ExportUseLowMemoryModeHelp=Uporabite način nizkega pomnilnika za ustvarjanje datoteke izpisa (stiskanje poteka skozi cev namesto v pomnilnik PHP). Ta metoda ne omogoča preverjanja, ali je datoteka popolna, in sporočila o napaki ni mogoče sporočiti, če ne uspe. Uporabite ga, če naletite na napake premalo pomnilnika. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Vmesnik za lovljenje sprožilcev dolibarr in pošiljanje na URL +WebhookSetup = Nastavitev Webhooka +Settings = nastavitve +WebhookSetupPage = Stran za nastavitev Webhooka +ShowQuickAddLink=Prikaži gumb za hitro dodajanje elementa v zgornjem desnem meniju + +HashForPing=Hash, uporabljen za ping +ReadOnlyMode=Je primerek v načinu »Samo za branje«. +DEBUGBAR_USE_LOG_FILE=Za prestrezanje dnevnikov uporabite datoteko dolibarr.log +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Uporabite datoteko dolibarr.log za lovljenje dnevnikov namesto za lovljenje spomina v živo. Omogoča zajemanje vseh dnevnikov namesto samo dnevnika trenutnega procesa (torej vključno s stranmi s podzahtevami ajax), vendar bo vaš primer zelo zelo počasen. Ni priporočljivo. +FixedOrPercent=Fiksno (uporabite ključno besedo 'fixed') ali odstotek (uporabite ključno besedo 'percent') +DefaultOpportunityStatus=Privzeto stanje priložnosti (prvo stanje, ko je potencialna stranka ustvarjena) + +IconAndText=Ikona in besedilo +TextOnly=Samo besedilo +IconOnlyAllTextsOnHover=Samo ikona – Vsa besedila so prikazana pod ikono v menijski vrstici z lebdenjem miške +IconOnlyTextOnHover=Samo ikona – Besedilo ikone se prikaže pod ikono, ko miško premaknete na ikono +IconOnly=Samo ikona – Samo besedilo na opisu orodja +INVOICE_ADD_ZATCA_QR_CODE=Pokažite kodo ZATCA QR na računih +INVOICE_ADD_ZATCA_QR_CODEMore=Nekatere arabske države potrebujejo to kodo QR na svojih računih +INVOICE_ADD_SWISS_QR_CODE=Pokažite švicarsko kodo QR-Bill na računih +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=URL povezava družbenega omrežja. Uporabite {socialid} za spremenljivko, ki vsebuje ID družbenega omrežja. +IfThisCategoryIsChildOfAnother=Če je ta kategorija podrejena drugi +DarkThemeMode=Način temne teme +AlwaysDisabled=Vedno onemogočen +AccordingToBrowser=Glede na brskalnik +AlwaysEnabled=Vedno omogočeno +DoesNotWorkWithAllThemes=Ne bo delovalo z vsemi temami +NoName=Brez imena +ShowAdvancedOptions= Prikaži napredne možnosti +HideAdvancedoptions= Skrij napredne možnosti +CIDLookupURL=Modul prinaša URL, ki ga lahko zunanje orodje uporabi za pridobitev imena tretje osebe ali kontakta iz njene telefonske številke. URL za uporabo je: +OauthNotAvailableForAllAndHadToBeCreatedBefore=Preverjanje pristnosti OAUTH2 ni na voljo za vse gostitelje in žeton s pravimi dovoljenji je moral biti ustvarjen navzgor z modulom OAUTH +MAIN_MAIL_SMTPS_OAUTH_SERVICE=Storitev za preverjanje pristnosti OAUTH2 +DontForgetCreateTokenOauthMod=Žeton s pravimi dovoljenji je moral biti ustvarjen navzgor z modulom OAUTH +MAIN_MAIL_SMTPS_AUTH_TYPE=Metoda preverjanja pristnosti +UsePassword=Uporabite geslo +UseOauth=Uporabite žeton OAUTH +Images=Slike +MaxNumberOfImagesInGetPost=Največje dovoljeno število slik v polju HTML, predloženem v obrazcu +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=Modul prinaša URL, ki ga lahko zunanje orodje uporabi za pridobitev imena tretje osebe ali kontakta iz njene telefonske številke. URL za uporabo je: +ScriptIsEmpty=Skript je prazen +ShowHideTheNRequests=Pokaži/skrij zahteve SQL %s +DefinedAPathForAntivirusCommandIntoSetup=Določite pot za protivirusni program v %s +TriggerCodes=Sprožilni dogodki +TriggerCodeInfo=Tukaj vnesite sprožilno kodo(-e), ki mora ustvariti objavo spletne zahteve (dovoljen je samo zunanji URL). Vnesete lahko več kod sprožilcev, ločenih z vejico. +EditableWhenDraftOnly=Če ni potrjeno, je vrednost mogoče spremeniti le, če ima predmet status osnutka +CssOnEdit=Css na straneh za urejanje +CssOnView=CSS na straneh za ogled +CssOnList=CSS na straneh s seznami +HelpCssOnEditDesc=Css, uporabljen pri urejanju polja.
    Primer: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Css, uporabljen pri ogledu polja. +HelpCssOnListDesc=Css, uporabljen, ko je polje znotraj tabele seznama.
    Primer: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Skrij naročeno količino na generiranih dokumentih za sprejeme +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Pokažite ceno na ustvarjenih dokumentih za sprejeme +WarningDisabled=Opozorila so onemogočena +LimitsAndMitigation=Omejitve dostopa in ublažitev +DesktopsOnly=Samo računalniki +DesktopsAndSmartphones=Računalniki in mobilne naprave +AllowOnlineSign=Dovoli spletno podpisovanje +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/sl_SI/agenda.lang b/htdocs/langs/sl_SI/agenda.lang index 58a9d24eceb..6b3693bf8df 100644 --- a/htdocs/langs/sl_SI/agenda.lang +++ b/htdocs/langs/sl_SI/agenda.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=ID dogodka Actions=Dogodki -Agenda=Urnik -TMenuAgenda=Urnik -Agendas=Urniki -LocalAgenda=Default calendar +Agenda=Koledar +TMenuAgenda=Koledar +Agendas=Koledarji +LocalAgenda=Privzeti koledar ActionsOwnedBy=Zasebni dogodek od ActionsOwnedByShort=Lastnik AffectedTo=Se nanaša na @@ -12,39 +12,40 @@ Event=Aktivnost Events=Dogodki EventsNb=Število dogodkov ListOfActions=Seznam dogodkov -EventReports=Event reports +EventReports=Poročila o dogodkih Location=Lokacija -ToUserOfGroup=Event assigned to any user in the group +ToUserOfGroup=Dogodek, dodeljen kateremu koli uporabniku v skupini EventOnFullDay=Dogodek na celoten dan(ni) MenuToDoActions=Vsi nedokončani dogodki MenuDoneActions=Vsi prekinjeni dogodki MenuToDoMyActions=Moji nedokončani dogodki MenuDoneMyActions=Moji prekinjeni dogodki -ListOfEvents=List of events (default calendar) +ListOfEvents=Seznam dogodkov (privzeti koledar) ActionsAskedBy=Dogodek vnesel -ActionsToDoBy=Dogoki, ki se nanašajo na +ActionsToDoBy=Dogodki so dodeljeni ActionsDoneBy=Dogodke izvedel -ActionAssignedTo=Aktivnost se nanaša na +ActionAssignedTo=Dogodek je dodeljen ViewCal=Mesečni pogled ViewDay=Dnevni pogled ViewWeek=Tedenski pogled ViewPerUser=Pogled po uporabniku -ViewPerType=Per type view +ViewPerType=Pogled na vrsto AutoActions= Avtomatska izpolnitev -AgendaAutoActionDesc= Here you may define events which you want Dolibarr to create automatically in Agenda. If nothing is checked, only manual actions will be included in logs and displayed in Agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved. -AgendaSetupOtherDesc= This page provides options to allow the export of your Dolibarr events into an external calendar (Thunderbird, Google Calendar etc...) -AgendaExtSitesDesc=Ta stran omogoča določitev zunanjih virov koledarjev za ogled njihovih dogodkov v Dolibarr urniku -ActionsEvents=Dogodki, za katere bo Dolibarr avtomatsko kreiral aktivnost v urniku -EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup. +AgendaAutoActionDesc= Tukaj lahko določite dogodke, za katere želite, da jih Dolibarr samodejno ustvari v programu Agenda. Če ni označeno nič, bodo v dnevnike vključena samo ročna dejanja in prikazana v dnevnem redu. Samodejno sledenje opravljenih poslovnih dejanj na objektih (validacija, sprememba statusa) ne bo shranjeno. +AgendaSetupOtherDesc= Na tej strani so možnosti za izvoz vaših dogodkov Dolibarr v zunanji koledar (Thunderbird, Google Calendar itd.) +AgendaExtSitesDesc=Stran omogoča zunanje koledarje za ogled dogodkov v programu +ActionsEvents=Dogodki, ki bodo samodejno kreirani v koledarju +EventRemindersByEmailNotEnabled=Opomniki za dogodke po e-pošti niso bili omogočeni v nastavitvah modula %s. ##### Agenda event labels ##### -NewCompanyToDolibarr=Third party %s created -COMPANY_MODIFYInDolibarr=Third party %s modified -COMPANY_DELETEInDolibarr=Third party %s deleted +NewCompanyToDolibarr=Partner %s ustvarjen +COMPANY_MODIFYInDolibarr=Partner %s spremenjen +COMPANY_DELETEInDolibarr=Partner %s izbrisan ContractValidatedInDolibarr=Pogodba %s potrjena -CONTRACT_DELETEInDolibarr=Contract %s deleted +CONTRACT_DELETEInDolibarr=Pogodba %s izbrisana PropalClosedSignedInDolibarr=Ponudba %s podpisana PropalClosedRefusedInDolibarr=Ponudba %s zavrnjena PropalValidatedInDolibarr=Potrjena ponudba %s +PropalBackToDraftInDolibarr=Predlog %s se vrne v status osnutka PropalClassifiedBilledInDolibarr=Ponudba %s je označena kot "zaračunana" InvoiceValidatedInDolibarr=Potrjen račun %s InvoiceValidatedInDolibarrFromPos=Račun %s je potrjen preko POS @@ -53,20 +54,23 @@ InvoiceDeleteDolibarr=Račun %s izbrisan InvoicePaidInDolibarr=Račun %s spremenjen v 'plačano' InvoiceCanceledInDolibarr=Račun %s preklican MemberValidatedInDolibarr=Član %s potrjen -MemberModifiedInDolibarr=Member %s modified -MemberResiliatedInDolibarr=Member %s terminated +MemberModifiedInDolibarr=Član %s spremenjen +MemberResiliatedInDolibarr=Član %s prekinjen MemberDeletedInDolibarr=Član %s izbrisan -MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added -MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified -MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted +MemberExcludedInDolibarr=Član %s izključen +MemberSubscriptionAddedInDolibarr=Dodana naročnina %s za člana %s +MemberSubscriptionModifiedInDolibarr=Spremenjena naročnina %s za člana %s +MemberSubscriptionDeletedInDolibarr=Naročnina %s za člana %s izbrisana ShipmentValidatedInDolibarr=Pošiljka %s potrjena -ShipmentClassifyClosedInDolibarr=Shipment %s classified billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified re-open -ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status +ShipmentClassifyClosedInDolibarr=Pošiljka %s tajno zaračunana +ShipmentUnClassifyCloseddInDolibarr=Pošiljka %s razvrščena ponovno odprta +ShipmentBackToDraftInDolibarr=Pošiljka %s se vrne v status osnutka ShipmentDeletedInDolibarr=Pošiljka %s izbrisana -ShipmentCanceledInDolibarr=Shipment %s canceled -ReceptionValidatedInDolibarr=Reception %s validated -OrderCreatedInDolibarr=Order %s created +ShipmentCanceledInDolibarr=Pošiljka %s preklicana +ReceptionValidatedInDolibarr=Sprejem %s potrjen +ReceptionDeletedInDolibarr=Reception %s deleted +ReceptionClassifyClosedInDolibarr=Sprejem %s tajno zaprt +OrderCreatedInDolibarr=Naročilo %s ustvarjeno OrderValidatedInDolibarr=Potrjeno naročilo %s OrderDeliveredInDolibarr=Naročilo %s označeno kot "dobavljeno" OrderCanceledInDolibarr=Naročilo %s odpovedano @@ -74,78 +78,79 @@ OrderBilledInDolibarr=Naročilo %s označeno kot "zaračunano" OrderApprovedInDolibarr=Naročilo %s odobreno OrderRefusedInDolibarr=Naročilo %s zavrnjeno OrderBackToDraftInDolibarr=Naročilo %s se vrača v status osnutka -ProposalSentByEMail=Commercial proposal %s sent by email -ContractSentByEMail=Contract %s sent by email -OrderSentByEMail=Sales order %s sent by email -InvoiceSentByEMail=Customer invoice %s sent by email -SupplierOrderSentByEMail=Purchase order %s sent by email -ORDER_SUPPLIER_DELETEInDolibarr=Purchase order %s deleted -SupplierInvoiceSentByEMail=Vendor invoice %s sent by email -ShippingSentByEMail=Shipment %s sent by email +ProposalSentByEMail=Komercialni predlog %s poslan po elektronski pošti +ContractSentByEMail=Pogodba %s poslana po e-pošti +OrderSentByEMail=Prodajno naročilo %s poslano po e-pošti +InvoiceSentByEMail=Račun stranke %s poslan po e-pošti +SupplierOrderSentByEMail=Naročilo %s poslano po e-pošti +ORDER_SUPPLIER_DELETEInDolibarr=Naročilo %s izbrisano +SupplierInvoiceSentByEMail=Prejeti račun %s poslan po e-pošti +ShippingSentByEMail=Pošiljka %s poslana po e-pošti ShippingValidated= Pošiljka %s potrjena -InterventionSentByEMail=Intervention %s sent by email -ProposalDeleted=Proposal deleted -OrderDeleted=Order deleted -InvoiceDeleted=Invoice deleted -DraftInvoiceDeleted=Draft invoice deleted -CONTACT_CREATEInDolibarr=Contact %s created -CONTACT_MODIFYInDolibarr=Contact %s modified -CONTACT_DELETEInDolibarr=Contact %s deleted -PRODUCT_CREATEInDolibarr=Product %s created -PRODUCT_MODIFYInDolibarr=Product %s modified -PRODUCT_DELETEInDolibarr=Product %s deleted -HOLIDAY_CREATEInDolibarr=Request for leave %s created -HOLIDAY_MODIFYInDolibarr=Request for leave %s modified -HOLIDAY_APPROVEInDolibarr=Request for leave %s approved -HOLIDAY_VALIDATEInDolibarr=Request for leave %s validated -HOLIDAY_DELETEInDolibarr=Request for leave %s deleted -EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created -EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated -EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved -EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted -EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused +InterventionSentByEMail=Intervencija %s poslana po elektronski pošti +ProjectSentByEMail=Projekt %s poslan po e-pošti +ProposalDeleted=Predlog izbrisan +OrderDeleted=Naročilo izbrisano +InvoiceDeleted=Račun izbrisan +DraftInvoiceDeleted=Osnutek računa izbrisan +CONTACT_CREATEInDolibarr=Kontakt %s ustvarjen +CONTACT_MODIFYInDolibarr=Kontakt %s spremenjen +CONTACT_DELETEInDolibarr=Kontakt %s izbrisan +PRODUCT_CREATEInDolibarr=Izdelek %s ustvarjen +PRODUCT_MODIFYInDolibarr=Izdelek %s spremenjen +PRODUCT_DELETEInDolibarr=Izdelek %s izbrisan +HOLIDAY_CREATEInDolibarr=Prošnja za dopust %s ustvarjena +HOLIDAY_MODIFYInDolibarr=Zahteva za dopust %s spremenjena +HOLIDAY_APPROVEInDolibarr=Prošnja za dopust %s odobrena +HOLIDAY_VALIDATEInDolibarr=Prošnja za dopust %s potrjena +HOLIDAY_DELETEInDolibarr=Prošnja za dopust %s izbrisana +EXPENSE_REPORT_CREATEInDolibarr=Poročilo o stroških %s ustvarjeno +EXPENSE_REPORT_VALIDATEInDolibarr=Poročilo o stroških %s potrjeno +EXPENSE_REPORT_APPROVEInDolibarr=Potrjeno poročilo o stroških %s +EXPENSE_REPORT_DELETEInDolibarr=Poročilo o stroških %s izbrisano +EXPENSE_REPORT_REFUSEDInDolibarr=Poročilo o stroških %s zavrnjeno PROJECT_CREATEInDolibarr=Projekt %s je bil ustvarjen -PROJECT_MODIFYInDolibarr=Project %s modified -PROJECT_DELETEInDolibarr=Project %s deleted -TICKET_CREATEInDolibarr=Ticket %s created -TICKET_MODIFYInDolibarr=Ticket %s modified -TICKET_ASSIGNEDInDolibarr=Ticket %s assigned -TICKET_CLOSEInDolibarr=Ticket %s closed -TICKET_DELETEInDolibarr=Ticket %s deleted -BOM_VALIDATEInDolibarr=BOM validated -BOM_UNVALIDATEInDolibarr=BOM unvalidated -BOM_CLOSEInDolibarr=BOM disabled -BOM_REOPENInDolibarr=BOM reopen -BOM_DELETEInDolibarr=BOM deleted -MRP_MO_VALIDATEInDolibarr=MO validated -MRP_MO_UNVALIDATEInDolibarr=MO set to draft status -MRP_MO_PRODUCEDInDolibarr=MO produced -MRP_MO_DELETEInDolibarr=MO deleted -MRP_MO_CANCELInDolibarr=MO canceled -PAIDInDolibarr=%s paid +PROJECT_MODIFYInDolibarr=Projekt %s spremenjen +PROJECT_DELETEInDolibarr=Projekt %s izbrisan +TICKET_CREATEInDolibarr=Vstopnica %s ustvarjena +TICKET_MODIFYInDolibarr=Vstopnica %s spremenjena +TICKET_ASSIGNEDInDolibarr=Vstopnica %s dodeljena +TICKET_CLOSEInDolibarr=Vstopnica %s zaprta +TICKET_DELETEInDolibarr=Vstopnica %s izbrisana +BOM_VALIDATEInDolibarr=BOM potrjena +BOM_UNVALIDATEInDolibarr=BOM ni preverjena +BOM_CLOSEInDolibarr=BOM onemogočen +BOM_REOPENInDolibarr=BOM ponovno odprt +BOM_DELETEInDolibarr=BOM izbrisana +MRP_MO_VALIDATEInDolibarr=MO potrjeno +MRP_MO_UNVALIDATEInDolibarr=MO nastavljen na status osnutka +MRP_MO_PRODUCEDInDolibarr=MO proizvaja +MRP_MO_DELETEInDolibarr=MO izbrisan +MRP_MO_CANCELInDolibarr=MO preklican +PAIDInDolibarr=%s plačano ##### End agenda events ##### -AgendaModelModule=Document templates for event +AgendaModelModule=Predloge dokumentov za dogodek DateActionStart=Začetni datum DateActionEnd=Končni datum AgendaUrlOptions1=V filtriran izhod lahko dodate tudi naslednje parametre: AgendaUrlOptions3=logina=%s za omejitev izhoda na aktivnosti v lasti uporabnika %s. -AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). -AgendaUrlOptionsProject=project=__PROJECT_ID__ to restrict output to actions linked to project __PROJECT_ID__. -AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto to exclude automatic events. -AgendaUrlOptionsIncludeHolidays=includeholidays=1 to include events of holidays. -AgendaShowBirthdayEvents=Birthdays of contacts -AgendaHideBirthdayEvents=Hide birthdays of contacts +AgendaUrlOptionsNotAdmin= logina=!%s za omejitev izhoda na dejanja, ki niso v lasti uporabnika %s . +AgendaUrlOptions4= logint=%s za omejitev izhoda na dejanja, dodeljena uporabniku %s (lastnik in drugi). +AgendaUrlOptionsProject= project=__PROJECT_ID__ za omejitev izhoda na dejanja, povezana s projektom __PROJECT_ID__ . +AgendaUrlOptionsNotAutoEvent= notactiontype=systemauto za izključitev samodejnih dogodkov. +AgendaUrlOptionsIncludeHolidays= includeholidays=1 za vključitev dogodkov ob praznikih. +AgendaShowBirthdayEvents=Rojstni dnevi stikov +AgendaHideBirthdayEvents=Skrij rojstne dneve stikov Busy=Zaseden -ExportDataset_event1=Seznam aktivnosti +ExportDataset_event1=Seznam dogodkov v koledarju DefaultWorkingDays=Privzeti delovni dnevi v tednu (primer: 1-5, 1-6) DefaultWorkingHours=Privzet dnevni delovnik (primer: 9-18) # External Sites ical ExportCal=Izvoz koledarja ExtSites=Zunanji koledarji -ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users. +ExtSitesEnableThisTool=Pokaži zunanje koledarje (določene v globalnih nastavitvah) v dnevnem redu. Ne vpliva na zunanje koledarje, ki jih določijo uporabniki. ExtSitesNbOfAgenda=Število koledarjev -AgendaExtNb=Calendar no. %s +AgendaExtNb=Koledar št. %s ExtSiteUrlAgenda=URL za dostop do .ical datoteke ExtSiteNoLabel=Ni opisa VisibleTimeRange=Prikazano časovno območje @@ -154,21 +159,23 @@ AddEvent=Ustvari dogodek MyAvailability=Moja dostopnost ActionType=Tip dogodka DateActionBegin=Datum začetka dogodka -ConfirmCloneEvent=Are you sure you want to clone the event %s? +ConfirmCloneEvent=Ali ste prepričani, da želite klonirati dogodek %s ? RepeatEvent=Ponovi dogodek -OnceOnly=Once only +OnceOnly=Samo enkrat +EveryDay=Vsak dan EveryWeek=Vsak teden EveryMonth=Vsak mesec DayOfMonth=Dan v mesecu DayOfWeek=Dan v tednu DateStartPlusOne=Začetni datum + 1 ura -SetAllEventsToTodo=Set all events to todo -SetAllEventsToInProgress=Set all events to in progress -SetAllEventsToFinished=Set all events to finished -ReminderTime=Reminder period before the event -TimeType=Duration type -ReminderType=Callback type -AddReminder=Create an automatic reminder notification for this event -ErrorReminderActionCommCreation=Error creating the reminder notification for this event -BrowserPush=Browser Popup Notification -ActiveByDefault=Enabled by default +SetAllEventsToTodo=Nastavite vse dogodke na opravila +SetAllEventsToInProgress=Vse dogodke nastavite na v teku +SetAllEventsToFinished=Vse dogodke nastavite na končane +ReminderTime=Obdobje opomina pred dogodkom +TimeType=Vrsta trajanja +ReminderType=Vrsta povratnega klica +AddReminder=Ustvarite samodejno obvestilo o opomniku za ta dogodek +ErrorReminderActionCommCreation=Napaka pri ustvarjanju obvestila o opomniku za ta dogodek +BrowserPush=Pojavno obvestilo brskalnika +ActiveByDefault=Privzeto omogočeno +Until=dokler diff --git a/htdocs/langs/sl_SI/assets.lang b/htdocs/langs/sl_SI/assets.lang index 95c43a6fa85..9708e730135 100644 --- a/htdocs/langs/sl_SI/assets.lang +++ b/htdocs/langs/sl_SI/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,50 +16,171 @@ # # Generic # -Assets = Assets -NewAsset = New asset -AccountancyCodeAsset = Accounting code (asset) -AccountancyCodeDepreciationAsset = Accounting code (depreciation asset account) -AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account) -NewAssetType=New asset type -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified -AssetType=Asset type -AssetsLines=Assets +NewAsset=Novo sredstvo +AccountancyCodeAsset=Knjigovodska oznaka (sredstvo) +AccountancyCodeDepreciationAsset=Knjigovodska šifra (konto amortizacije sredstev) +AccountancyCodeDepreciationExpense=Knjigovodska oznaka (konto stroškov amortizacije) +AssetsLines=Sredstva DeleteType=Izbriši -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? -ShowTypeCard=Prikaži tip '%s' +DeleteAnAssetType=Izbrišite model sredstva +ConfirmDeleteAssetType=Ali ste prepričani, da želite izbrisati ta model sredstva? +ShowTypeCard=Pokaži model '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Assets +ModuleAssetsName=Sredstva # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Assets description +ModuleAssetsDesc=Opis sredstev # # Admin page # -AssetsSetup = Assets setup -Settings = Settings -AssetsSetupPage = Assets setup page -ExtraFieldsAssetsType = Complementary attributes (Asset type) -AssetsType=Asset type -AssetsTypeId=Asset type id -AssetsTypeLabel=Asset type label -AssetsTypes=Assets types +AssetSetup=Nastavitev sredstev +AssetSetupPage=Stran za nastavitev sredstev +ExtraFieldsAssetModel=Dopolnilni atributi (model sredstva) + +AssetsType=Model sredstev +AssetsTypeId=ID modela sredstva +AssetsTypeLabel=Oznaka modela sredstva +AssetsTypes=Modeli sredstev +ASSET_ACCOUNTANCY_CATEGORY=Skupina za knjigovodstvo osnovnih sredstev # # Menu # -MenuAssets = Assets -MenuNewAsset = New asset -MenuTypeAssets = Type assets -MenuListAssets = Seznam -MenuNewTypeAssets = Nov -MenuListTypeAssets = Seznam +MenuAssets=Sredstva +MenuNewAsset=Novo sredstvo +MenuAssetModels=Sredstva modela +MenuListAssets=Seznam +MenuNewAssetModel=Nov model sredstva +MenuListAssetModels=Seznam # # Module # -NewAssetType=New asset type -NewAsset=New asset +ConfirmDeleteAsset=Ali res želite odstraniti to sredstvo? + +# +# Tab +# +AssetDepreciationOptions=Možnosti amortizacije +AssetAccountancyCodes=Računovodski izkazi +AssetDepreciation=Amortizacija + +# +# Asset +# +Asset=Sredstvo +Assets=Sredstva +AssetReversalAmountHT=Znesek razveljavitve (brez davkov) +AssetAcquisitionValueHT=Znesek pridobitve (brez davkov) +AssetRecoveredVAT=Povrnjen DDV +AssetReversalDate=Datum razveljavitve +AssetDateAcquisition=Datum pridobitve +AssetDateStart=Datum zagona +AssetAcquisitionType=Vrsta pridobitve +AssetAcquisitionTypeNew=Nov +AssetAcquisitionTypeOccasion=Rabljeno +AssetType=Vrsta sredstva +AssetTypeIntangible=Nematerialno +AssetTypeTangible=Oprijemljivo +AssetTypeInProgress=V postopku +AssetTypeFinancial=Finančna +AssetNotDepreciated=Ni amortizirano +AssetDisposal=Odstranjevanje +AssetConfirmDisposalAsk=Ali ste prepričani, da želite razpolagati s sredstvom %s ? +AssetConfirmReOpenAsk=Ali ste prepričani, da želite znova odpreti sredstvo %s ? + +# +# Asset status +# +AssetInProgress=V postopku +AssetDisposed=Odstranjeno +AssetRecorded=Obračunano + +# +# Asset disposal +# +AssetDisposalDate=Datum odlaganja +AssetDisposalAmount=Vrednost odlaganja +AssetDisposalType=Vrsta odlaganja +AssetDisposalDepreciated=Amortizirajte leto prenosa +AssetDisposalSubjectToVat=Odtujitev je predmet DDV + +# +# Asset model +# +AssetModel=Model sredstva +AssetModels=Assetovi modeli + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Ekonomska amortizacija +AssetDepreciationOptionAcceleratedDepreciation=Pospešena amortizacija (davek) +AssetDepreciationOptionDepreciationType=Vrsta amortizacije +AssetDepreciationOptionDepreciationTypeLinear=Linearno +AssetDepreciationOptionDepreciationTypeDegressive=Degresivno +AssetDepreciationOptionDepreciationTypeExceptional=Izjemen +AssetDepreciationOptionDegressiveRate=Degresivna stopnja +AssetDepreciationOptionAcceleratedDepreciation=Pospešena amortizacija (davek) +AssetDepreciationOptionDuration=Trajanje +AssetDepreciationOptionDurationType=Trajanje vrste +AssetDepreciationOptionDurationTypeAnnual=Letna +AssetDepreciationOptionDurationTypeMonthly=Mesečno +AssetDepreciationOptionDurationTypeDaily=Dnevno +AssetDepreciationOptionRate=Oceni (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Amortizacijska osnova (brez DDV) +AssetDepreciationOptionAmountBaseDeductibleHT=Odbitna osnova (brez DDV) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Skupni znesek zadnje amortizacije (brez DDV) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Ekonomska amortizacija +AssetAccountancyCodeAsset=Sredstvo +AssetAccountancyCodeDepreciationAsset=Amortizacija +AssetAccountancyCodeDepreciationExpense=Stroški amortizacije +AssetAccountancyCodeValueAssetSold=Vrednost odtujenega sredstva +AssetAccountancyCodeReceivableOnAssignment=Terjatev ob odtujitvi +AssetAccountancyCodeProceedsFromSales=Izkupiček od odtujitve +AssetAccountancyCodeVatCollected=Pobrani DDV +AssetAccountancyCodeVatDeductible=Povrnjen DDV na sredstva +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Pospešena amortizacija (davek) +AssetAccountancyCodeAcceleratedDepreciation=Račun +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Stroški amortizacije +AssetAccountancyCodeProvisionAcceleratedDepreciation=Ponovna posest/oskrba + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Amortizacijska osnova (brez DDV) +AssetDepreciationBeginDate=Začetek amortizacije dne +AssetDepreciationDuration=Trajanje +AssetDepreciationRate=Oceni (%%) +AssetDepreciationDate=Datum amortizacije +AssetDepreciationHT=Amortizacija (brez DDV) +AssetCumulativeDepreciationHT=Kumulativna amortizacija (brez DDV) +AssetResidualHT=Preostala vrednost (brez DDV) +AssetDispatchedInBookkeeping=Evidentirana amortizacija +AssetFutureDepreciationLine=Prihodnja amortizacija +AssetDepreciationReversal=Preobrat + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=ID sredstva ali zvok modela ni bil naveden +AssetErrorFetchAccountancyCodesForMode=Napaka pri pridobivanju računovodskih kontov za način amortizacije '%s' +AssetErrorDeleteAccountancyCodesForMode=Napaka pri brisanju računovodskih kontov iz načina amortizacije '%s' +AssetErrorInsertAccountancyCodesForMode=Napaka pri vstavljanju računovodskih kontov načina amortizacije '%s' +AssetErrorFetchDepreciationOptionsForMode=Napaka pri pridobivanju možnosti za način amortizacije '%s' +AssetErrorDeleteDepreciationOptionsForMode=Napaka pri brisanju možnosti načina amortizacije '%s' +AssetErrorInsertDepreciationOptionsForMode=Napaka pri vstavljanju možnosti načina amortizacije '%s' +AssetErrorFetchDepreciationLines=Napaka pri pridobivanju evidentiranih amortizacijskih vrstic +AssetErrorClearDepreciationLines=Napaka pri čiščenju evidentiranih amortizacijskih vrstic (stornira in prihodnost) +AssetErrorAddDepreciationLine=Napaka pri dodajanju amortizacijske vrstice +AssetErrorCalculationDepreciationLines=Napaka pri izračunu amortizacijskih vrstic (izterjava in prihodnost) +AssetErrorReversalDateNotProvidedForMode=Datum razveljavitve ni naveden za metodo amortiziranja '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Datum razveljavitve mora biti večji ali enak začetku tekočega poslovnega leta za metodo amortiziranja '%s' +AssetErrorReversalAmountNotProvidedForMode=Znesek razveljavitve ni zagotovljen za način amortiziranja '%s'. +AssetErrorFetchCumulativeDepreciation=Napaka pri pridobivanju akumuliranega zneska amortizacije iz amortizacijske vrstice +AssetErrorSetLastCumulativeDepreciation=Napaka pri evidentiranju zadnje akumulirane amortizacije diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang index 98af72a0cf9..8fa07d3f9fb 100644 --- a/htdocs/langs/sl_SI/banks.lang +++ b/htdocs/langs/sl_SI/banks.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - banks Bank=Banka -MenuBankCash=Banks | Cash -MenuVariousPayment=Miscellaneous payments -MenuNewVariousPayment=New Miscellaneous payment +MenuBankCash=Banke | Gotovina +MenuVariousPayment=Razna plačila +MenuNewVariousPayment=Novo razno plačilo BankName=Ime banke FinancialAccount=Račun BankAccount=Bančni račun BankAccounts=Bančni računi -BankAccountsAndGateways=Bank accounts | Gateways +BankAccountsAndGateways=Bančni računi | Prehodi ShowAccount=Prikaži račun AccountRef=Referenca finančnega računa AccountLabel=Naziv finančnega računa @@ -30,22 +30,22 @@ AllTime=Od začetka Reconciliation=Usklajevanje RIB=Transakcijski račun IBAN=IBAN številka -BIC=BIC/SWIFT code -SwiftValid=BIC/SWIFT valid -SwiftNotValid=BIC/SWIFT not valid -IbanValid=BAN valid -IbanNotValid=BAN not valid -StandingOrders=Direct debit orders -StandingOrder=Direct debit order -PaymentByDirectDebit=Payment by direct debit -PaymentByBankTransfers=Payments by credit transfer -PaymentByBankTransfer=Payment by credit transfer +BIC=Koda BIC/SWIFT +SwiftValid=Veljavni BIC/SWIFT +SwiftNotValid=BIC/SWIFT ni veljaven +IbanValid=BAN velja +IbanNotValid=BAN ni veljaven +StandingOrders=Nalogi za direktno bremenitev +StandingOrder=Nalog za direktno bremenitev +PaymentByDirectDebit=Plačilo z direktno obremenitvijo +PaymentByBankTransfers=Plačila s kreditnim nakazilom +PaymentByBankTransfer=Plačilo s kreditnim nakazilom AccountStatement=Izpisek računa AccountStatementShort=Izpisek AccountStatements=Izpiski računa LastAccountStatements=Zadnji izpiski računa IOMonthlyReporting=Mesečno poročilo -BankAccountDomiciliation=Bank address +BankAccountDomiciliation=Naslov banke BankAccountCountry=Država računa BankAccountOwner=Ime lastnika računa BankAccountOwnerAddress=Naslov lastnika računa @@ -62,123 +62,126 @@ BankType2=Gotovinski račun AccountsArea=Področje računov AccountCard=Kartica računa DeleteAccount=Brisanje računa -ConfirmDeleteAccount=Are you sure you want to delete this account? +ConfirmDeleteAccount=Ali ste prepričani, da želite izbrisati ta račun? Account=Račun -BankTransactionByCategories=Bank entries by categories -BankTransactionForCategory=Bank entries for category %s +BankTransactionByCategories=Bančni vnosi po kategorijah +BankTransactionForCategory=Bančni vnosi za kategorijo %s RemoveFromRubrique=Odstranite link z kategorijo -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? -ListBankTransactions=List of bank entries +RemoveFromRubriqueConfirm=Ali ste prepričani, da želite odstraniti povezavo med vnosom in kategorijo? +ListBankTransactions=Seznam bančnih vnosov IdTransaction=ID transakcije -BankTransactions=Bank entries -BankTransaction=Bank entry -ListTransactions=List entries -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile -TransactionsToConciliateShort=To reconcile +BankTransactions=Bančni vpisi +BankTransaction=Vpis v banko +ListTransactions=Seznam vnosov +ListTransactionsByCategory=Seznam vnosov/kategorij +TransactionsToConciliate=Vnosi za uskladitev +TransactionsToConciliateShort=Da se pomirimo Conciliable=Se lahko uskladi Conciliate=Uskladi Conciliation=Uskladitev -SaveStatementOnly=Save statement only -ReconciliationLate=Reconciliation late +SaveStatementOnly=Shrani samo izjavo +ReconciliationLate=Sprava pozno IncludeClosedAccount=Vključi zaprte račune OnlyOpenedAccount=Samo odprti računi AccountToCredit=Kreditni konto AccountToDebit=Debetni konto DisableConciliation=Onemogoči funkcijo usklajevanja za ta konto ConciliationDisabled=Funkcija usklajevanja onemogočena -LinkedToAConciliatedTransaction=Linked to a conciliated entry +LinkedToAConciliatedTransaction=Povezano s spravnim vnosom StatusAccountOpened=Odprt StatusAccountClosed=Zaprt AccountIdShort=Številka LineRecord=Transakcija -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually -Conciliated=Reconciled -ConciliatedBy=Uskladil +AddBankRecord=Dodaj vnos +AddBankRecordLong=Vnos dodajte ročno +Conciliated=Pomirjeni +ReConciliedBy=Uskladil DateConciliating=Datum uskladitve -BankLineConciliated=Entry reconciled with bank receipt -Reconciled=Reconciled -NotReconciled=Not reconciled +BankLineConciliated=Vnos usklajen z bančnim potrdilom +BankLineReconciled=Pomirjeni +BankLineNotReconciled=Niso usklajeni CustomerInvoicePayment=Plačilo kupca -SupplierInvoicePayment=Vendor payment +SupplierInvoicePayment=Plačila dobavitelju SubscriptionPayment=Plačilo naročnine -WithdrawalPayment=Debit payment order +WithdrawalPayment=Debetni nalog SocialContributionPayment=Plačilo socialnega/fiskalnega davka -BankTransfer=Credit transfer -BankTransfers=Credit transfers -MenuBankInternalTransfer=Internal transfer -TransferDesc=Use internal transfer to transfer from one account to another, the application will write two records: a debit in the source account and a credit in the target account. The same amount, label and date will be used for this transaction. +BankTransfer=Nakazilo kredita +BankTransfers=Kreditna nakazila +MenuBankInternalTransfer=Notranji prenos +TransferDesc=Uporabite interni prenos za prenos z enega računa na drugega, aplikacija bo zapisala dva zapisa: bremenitev na izvornem računu in dobropis na ciljnem računu. Za to transakcijo bodo uporabljeni isti znesek, oznaka in datum. TransferFrom=Od TransferTo=Na TransferFromToDone=Zabeležen je bil transfer od %s na %s v znesku %s %s. CheckTransmitter=Od -ValidateCheckReceipt=Validate this check receipt? -ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated. -DeleteCheckReceipt=Delete this check receipt? -ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt? +ValidateCheckReceipt=Želite potrditi to potrdilo o prejemu čeka? +ConfirmValidateCheckReceipt=Ali ste prepričani, da želite predložiti to potrdilo o prejemu čeka v potrditev? Po potrditvi ne bodo možne nobene spremembe. +DeleteCheckReceipt=Želite izbrisati ta račun za ček? +ConfirmDeleteCheckReceipt=Ali ste prepričani, da želite izbrisati ta račun? BankChecks=Bančni čeki -BankChecksToReceipt=Checks awaiting deposit -BankChecksToReceiptShort=Checks awaiting deposit +BankChecksToReceipt=Čeki čakajo na polog +BankChecksToReceiptShort=Čeki čakajo na polog ShowCheckReceipt=Prikaži prevzemnico čekovnih nakazil -NumberOfCheques=No. of check -DeleteTransaction=Delete entry -ConfirmDeleteTransaction=Are you sure you want to delete this entry? -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +NumberOfCheques=št. čeka +DeleteTransaction=Izbriši vnos +ConfirmDeleteTransaction=Ali ste prepričani, da želite izbrisati ta vnos? +ThisWillAlsoDeleteBankRecord=S tem boste izbrisali tudi ustvarjeni bančni vnos BankMovements=Prenosi -PlannedTransactions=Planned entries -Graph=Graphs -ExportDataset_banque_1=Bank entries and account statement +PlannedTransactions=Načrtovani vpisi +Graph=Grafi +ExportDataset_banque_1=Bančni vnosi in izpisek računa ExportDataset_banque_2=Potrdilo o avansu TransactionOnTheOtherAccount=Transakcija na drug račun -PaymentNumberUpdateSucceeded=Payment number updated successfully +PaymentNumberUpdateSucceeded=Številka plačila je bila uspešno posodobljena PaymentNumberUpdateFailed=Številke plačila ni mogoče posodobiti -PaymentDateUpdateSucceeded=Payment date updated successfully +PaymentDateUpdateSucceeded=Datum plačila je bil uspešno posodobljen PaymentDateUpdateFailed=Datuma plačila ni mogoče posodobiti Transactions=Transakcije -BankTransactionLine=Bank entry -AllAccounts=All bank and cash accounts +BankTransactionLine=Vpis v banko +AllAccounts=Vsi bančni in gotovinski računi BackToAccount=Nazaj na račun ShowAllAccounts=Prikaži vse račune -FutureTransaction=Future transaction. Unable to reconcile. -SelectChequeTransactionAndGenerate=Select/filter the checks which are to be included in the check deposit receipt. Then, click on "Create". +FutureTransaction=Prihodnja transakcija. Ne morem se uskladiti. +SelectChequeTransactionAndGenerate=Izberite/filtrirajte čeke, ki naj bodo vključeni v potrdilo o pologu čeka. Nato kliknite »Ustvari«. InputReceiptNumber=Izberi bančni izpisek, povezan s posredovanjem. Uporabi numerično vrednost, ki se lahko sortira: YYYYMM ali YYYYMMDD EventualyAddCategory=Eventuelno določi kategorijo, v katero se razvrsti zapis -ToConciliate=To reconcile? +ToConciliate=Da se pobota? ThenCheckLinesAndConciliate=Nato preveri vrstice na bančnem izpisku in klikni DefaultRIB=Privzet BAN AllRIB=Vsi BAN-i LabelRIB=Naziv BAN-a NoBANRecord=Ni BAN zapisa DeleteARib=Izbriši BAN zapis -ConfirmDeleteRib=Are you sure you want to delete this BAN record? +ConfirmDeleteRib=Ali ste prepričani, da želite izbrisati ta zapis BAN? RejectCheck=Vrnjen ček -ConfirmRejectCheck=Are you sure you want to mark this check as rejected? +ConfirmRejectCheck=Ali ste prepričani, da želite označiti ta ček kot zavrnjen? RejectCheckDate=Datum vrnitve čeka CheckRejected=Vrnjen ček -CheckRejectedAndInvoicesReopened=Check returned and invoices re-open -BankAccountModelModule=Document templates for bank accounts -DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only. -DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New miscellaneous payment -VariousPayment=Miscellaneous payment -VariousPayments=Miscellaneous payments -ShowVariousPayment=Show miscellaneous payment -AddVariousPayment=Add miscellaneous payment -VariousPaymentId=Miscellaneous payment ID -VariousPaymentLabel=Miscellaneous payment label -ConfirmCloneVariousPayment=Confirm the clone of a miscellaneous payment -SEPAMandate=SEPA mandate -YourSEPAMandate=Your SEPA mandate -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to -AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation -CashControl=POS cash desk control -NewCashFence=New cash desk opening or closing -BankColorizeMovement=Colorize movements -BankColorizeMovementDesc=If this function is enable, you can choose specific background color for debit or credit movements -BankColorizeMovementName1=Background color for debit movement -BankColorizeMovementName2=Background color for credit movement -IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. -NoBankAccountDefined=No bank account defined -NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled. -AlreadyOneBankAccount=Already one bank account defined +CheckRejectedAndInvoicesReopened=Ček vrnjen in računi ponovno odprti +BankAccountModelModule=Predloge dokumentov za bančne račune +DocumentModelSepaMandate=Predloga mandata SEPA. Uporabno samo za evropske države v EGS. +DocumentModelBan=Predloga za tiskanje strani z informacijami o prepovedi. +NewVariousPayment=Nova razna plačila +VariousPayment=Razno plačilo +VariousPayments=Razna plačila +ShowVariousPayment=Prikaži razna plačila +AddVariousPayment=Dodajte razna plačila +VariousPaymentId=Razno ID plačila +VariousPaymentLabel=Oznaka za razna plačila +ConfirmCloneVariousPayment=Potrdite klon raznega plačila +SEPAMandate=Mandat SEPA +YourSEPAMandate=Vaš mandat SEPA +FindYourSEPAMandate=To je vaše pooblastilo SEPA, da pooblastite naše podjetje, da izda nalog za direktno bremenitev vaši banki. Vrnite ga podpisanega (sken podpisanega dokumenta) ali pošljite po pošti na naslov +AutoReportLastAccountStatement=Pri uskladitvi samodejno izpolnite polje 'številka bančnega izpiska' s številko zadnjega izpiska +CashControl=POS kontrola gotovine +NewCashFence=Nova kontrola gotovine (odpiranje ali zapiranje) +BankColorizeMovement=Barvajte gibe +BankColorizeMovementDesc=Če je ta funkcija omogočena, lahko izberete posebno barvo ozadja za obremenitev ali dobropis +BankColorizeMovementName1=Barva ozadja za debetno gibanje +BankColorizeMovementName2=Barva ozadja za gibanje kredita +IfYouDontReconcileDisableProperty=Če za nekatere bančne račune ne izvedete bančne uskladitve, na njih onemogočite lastnost »%s«, da odstranite to opozorilo. +NoBankAccountDefined=Bančni račun ni določen +NoRecordFoundIBankcAccount=Na bančnem računu ni najdenega zapisa. Običajno se to zgodi, ko je bil zapis ročno izbrisan s seznama transakcij na bančnem računu (na primer med usklajevanjem bančnega računa). Drugi razlog je, da je bilo plačilo zabeleženo, ko je bil modul "%s" onemogočen. +AlreadyOneBankAccount=En bančni račun je že določen +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Nakazilo SEPA: 'Vrsta plačila' na ravni 'Kreditno nakazilo' +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Ko ustvarite datoteko SEPA XML za kreditna nakazila, lahko razdelek »PaymentTypeInformation« zdaj postavite znotraj razdelka »CreditTransferTransactionInformation« (namesto razdelka »Payment«). Močno priporočamo, da to možnost ne označite, če želite namestiti PaymentTypeInformation na raven plačila, saj ni nujno, da jih bodo vse banke sprejele na ravni CreditTransferTransactionInformation. Obrnite se na svojo banko, preden postavite PaymentTypeInformation na raven CreditTransferTransactionInformation. +ToCreateRelatedRecordIntoBank=Za ustvarjanje manjkajoče povezane bančne evidence diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang index 353b78b08ef..6be1558a7f5 100644 --- a/htdocs/langs/sl_SI/bills.lang +++ b/htdocs/langs/sl_SI/bills.lang @@ -3,20 +3,22 @@ Bill=Faktura Bills=Fakture BillsCustomers=Fakture za kupce BillsCustomer=Faktura za kupca -BillsSuppliers=Fakture dobaviteljev +BillsSuppliers=Prejeti računi BillsCustomersUnpaid=Neplačane fakture kupcev BillsCustomersUnpaidForCompany=%s neplačanih faktur kupcev -BillsSuppliersUnpaid=Neplačane fakture dobaviteljev -BillsSuppliersUnpaidForCompany=%s neplačnih faktur dobaviteljev +BillsSuppliersUnpaid=Neplačani prejeti računi +BillsSuppliersUnpaidForCompany=%s neplačanih prejetih računov BillsLate=Zamujena plačila BillsStatistics=Statistika faktur za kupce -BillsStatisticsSuppliers=Statisika faktur dobaviteljev +BillsStatisticsSuppliers=Statistika prejetih računov DisabledBecauseDispatchedInBookkeeping=Onemogočeno, ker je bila faktura poslana v knjiženje DisabledBecauseNotLastInvoice=Onemogočeno, ker brisanje fakture ni dovoljeno. Fakture so bile ustvarjene po tej fakturi, zato bi brisanje povzročilo škrbine v števcu. +DisabledBecauseNotLastSituationInvoice=Onemogočeno, ker računa ni mogoče izbrisati. Ta račun ni zadnji v ciklu fakturiranja situacije. DisabledBecauseNotErasable=Onemogočeno, ker brisanje ni dovoljeno InvoiceStandard=Standardna faktura InvoiceStandardAsk=Standardna faktura InvoiceStandardDesc=Ta vrsta fakture je običajna faktura. +InvoiceStandardShort=Standardno InvoiceDeposit=Avansni račun InvoiceDepositAsk=Avansni račun InvoiceDepositDesc=Ta vrsta fakture se naredi po prejemu avansa. @@ -24,6 +26,7 @@ InvoiceProForma=Predračun InvoiceProFormaAsk=Predračun InvoiceProFormaDesc=Predračun izgleda enako kot račun, vendar nima računovodske vrednosti. InvoiceReplacement=Nadomestni račun +InvoiceReplacementShort=Zamenjava InvoiceReplacementAsk=Nadomestni račun za račun InvoiceReplacementDesc=Namen nadomestne fakture je v celoti nadomestiti fakturo, za katero ni bilo prejetega plačila.

    Opomba: Samo neplačane fakture je mogoče nadomestiti z nadomestno fakturo. Če faktura, za katero delate nadomestno fakturo, še ni zaključena, bo tista faktura avtomatsko dobila stanje 'opuščena'. InvoiceAvoir=Dobropis @@ -53,11 +56,11 @@ InvoiceLine=Vrstica računa InvoiceCustomer=Račun za kupca CustomerInvoice=Račun za kupca CustomersInvoices=Fakture za kupce -SupplierInvoice=Faktura dobavitelja -SuppliersInvoices=Fakture dobaviteljev -SupplierInvoiceLines=Vendor invoice lines -SupplierBill=Faktura dobavitelja -SupplierBills=Fakture dobaviteljev +SupplierInvoice=Prejeti račun +SuppliersInvoices=Prejeti računi +SupplierInvoiceLines=Vrstice računa dobavitelja +SupplierBill=Prejeti račun +SupplierBills=Prejeti računi Payment=Plačilo PaymentBack=Vračilo CustomerInvoicePaymentBack=Vračilo @@ -71,7 +74,7 @@ ConfirmConvertToReduc=Ali želite to %s pretvoriti v razpoložljivo dobroimetje? ConfirmConvertToReduc2=Znesek bo shranjen med popuste in je lahko uporabljen kot popust na prihodnjih fakturah temu kupcu. ConfirmConvertToReducSupplier=Ali želite to %s pretvoriti v razpoložljivo dobroimetje? ConfirmConvertToReducSupplier2=Znesek bo shranjen med popuste in je lahko uporabljen kot popust na prihodnjih fakturah tega dobavitelja. -SupplierPayments=Plačila dobaviteljem +SupplierPayments=Plačila prejetih računov ReceivedPayments=Prejeta plačila ReceivedCustomersPayments=Prejeta plačila kupcev PayedSuppliersPayments=Izvedena plačila dobaviteljem @@ -81,14 +84,14 @@ PaymentsReports=Poročila o plačilih PaymentsAlreadyDone=Izvršena plačila PaymentsBackAlreadyDone=Izvedena vračila PaymentRule=Pravilo plačila -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method -DefaultBankAccount=Default Bank Account -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +PaymentMode=Način plačila +PaymentModes=Načini plačila +DefaultPaymentMode=Privzeti način plačila +DefaultBankAccount=Privzeti bančni račun +IdPaymentMode=Način plačila (id) +CodePaymentMode=Način plačila (koda) +LabelPaymentMode=Način plačila (oznaka) +PaymentModeShort=Način plačila PaymentTerm=Plačilni pogoj PaymentConditions=Plačilni pogoji PaymentConditionsShort=Plačilni pogoji @@ -108,7 +111,7 @@ AddBill=Ustvari fakturo ali dobropis AddToDraftInvoices=Dodaj osnutku fakture DeleteBill=Izbriši fakturo SearchACustomerInvoice=Iskanje fakture za kupca -SearchASupplierInvoice=Iskanje fakture dobavitelja +SearchASupplierInvoice=Iskanje prejetih računov CancelBill=Preklic fakture SendRemindByMail=Pošlji opomin po e-pošti DoPayment=Vnos plačila @@ -119,7 +122,7 @@ ConvertExcessPaidToReduc=Pretvori presežek plačila v razpoložljiv popust EnterPaymentReceivedFromCustomer=Vnesi prejem plačila kupca EnterPaymentDueToCustomer=Vnesi rok plačila za kupca DisabledBecauseRemainderToPayIsZero=Onemogočeno, ker je neplačan znesek enak nič -PriceBase=Base price +PriceBase=Osnovna cena BillStatus=Stanje fakture StatusOfGeneratedInvoices=Stanja ustvarjenih faktur BillStatusDraft=Osnutek (potrebna potrditev) @@ -156,8 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=Napaka, na popravljeni fakturi mora biti negativ ErrorInvoiceOfThisTypeMustBePositive=Napaka, ta tip fakture mora imeti znesek brez davka (ali nič). ErrorCantCancelIfReplacementInvoiceNotValidated=Napaka, ne morete preklicati fakture, ki je bil nadomeščena z drugo fakturo, ki je še v statusu osnutka ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ta ali drug del je že uporabljen, zato serije popustov ni dovoljeno odstraniti. +ErrorInvoiceIsNotLastOfSameType=Napaka: Datum računa %s je %s. Za istovrstne račune mora biti poznejši ali enak zadnjemu datumu (%s). Prosimo, da spremenite datum računa. BillFrom=Izdajatelj BillTo=Prejemnik +ShippingTo=Shipping to ActionsOnBill=Aktivnosti na računu RecurringInvoiceTemplate=Predloga / Ponavljajoča se faktura NoQualifiedRecurringInvoiceTemplateFound=Ni primernega osnutka ponavljajoče se fakture @@ -167,92 +172,92 @@ NewBill=Nova faktura LastBills=Zadnjih %s faktur LatestTemplateInvoices=Zadnjih %s predlog faktur LatestCustomerTemplateInvoices=Zadnjih %s predlog faktur za kupce -LatestSupplierTemplateInvoices=Latest %s vendor template invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s vendor invoices +LatestSupplierTemplateInvoices=Zadnjih %s predlog prejetih računov +LastCustomersBills=Najnovejši %s računi strank +LastSuppliersBills=Najnovejših %s prejetih računov AllBills=Vsi računi -AllCustomerTemplateInvoices=All template invoices +AllCustomerTemplateInvoices=Vse predloge računov OtherBills=Ostali računi DraftBills=Osnutki računov -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Vendor draft invoices +CustomersDraftInvoices=Osnutki računov strank +SuppliersDraftInvoices=Osnutki prejetih računov Unpaid=Neplačano -ErrorNoPaymentDefined=Error No payment defined +ErrorNoPaymentDefined=Napaka Plačilo ni določeno ConfirmDeleteBill=Ste prepričani da želite izbrisati ta račun? -ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? -ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? -ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? -ConfirmCancelBill=Are you sure you want to cancel invoice %s? -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? -ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason for closing this invoice? -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I regularize the VAT with a credit note. -ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid (%s %s) is a discount granted because payment was made before term. +ConfirmValidateBill=Ali ste prepričani, da želite potrditi ta račun s sklicem %s ? +ConfirmUnvalidateBill=Ali ste prepričani, da želite račun spremeniti v stanje osnutka? +ConfirmClassifyPaidBill=Ali ste prepričani, da želite račun spremeniti v stanje plačan? +ConfirmCancelBill=Ali ste prepričani, da želite preklicati račun %s ? +ConfirmCancelBillQuestion=Zakaj želite ta račun označiti kot "zapuščeno"? +ConfirmClassifyPaidPartially=Ali ste prepričani, da želite račun spremeniti v stanje plačan? +ConfirmClassifyPaidPartiallyQuestion=Ta račun ni bil v celoti plačan. Kaj je razlog za zaprtje tega računa? +ConfirmClassifyPaidPartiallyReasonAvoir=Preostanek neplačanega (%s %s) je odobren popust, ker je bilo plačilo izvedeno pred rokom. DDV uredim z dobropisom. +ConfirmClassifyPaidPartiallyReasonDiscount=Preostanek neplačanega (%s %s) je odobren popust, ker je bilo plačilo izvedeno pred rokom. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Neplačan preostanek (%s %s) je popust zaradi predčasnega plačila. Strinjam se z izgubo DDV zaradi tega popusta. ConfirmClassifyPaidPartiallyReasonDiscountVat=Neplačan preostanek (%s %s) je popust zaradi predčasnega plačila. DDV na ta popust bo vrnjen brez dobropisa. ConfirmClassifyPaidPartiallyReasonBadCustomer=Slab kupec -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Odtegljaj banke (provizije posredniške banke) ConfirmClassifyPaidPartiallyReasonProductReturned=Delno vračilo proizvodov ConfirmClassifyPaidPartiallyReasonOther=Znesek opuščen zaradi drugih razlogov -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction») -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes. +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ta izbira je možna, če je vaš račun opremljen z ustreznimi komentarji. (Primer "Samo davek, ki ustreza ceni, ki je bila dejansko plačana, daje pravico do odbitka") +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=V nekaterih državah je ta izbira možna le, če vaš račun vsebuje pravilne opombe. ConfirmClassifyPaidPartiallyReasonAvoirDesc=To izbiro uporabite, če so druge neustrezne -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A bad customer is a customer that refuses to pay his debt. +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Dolžnik je stranka, ki ne želi poravnati dolga. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ta izbira se uporabi, če plačilo ni bilo kompletno zaradi vračila nekaterih proizvodov -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:
    - payment not complete because some products were shipped back
    - amount claimed too important because a discount was forgotten
    In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=Neplačani znesek so provizije posredniške banke , odštete neposredno od pravilnega zneska , ki ga plača stranka. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Uporabite to izbiro, če vse druge niso primerne, na primer v naslednji situaciji:
    - plačilo ni dokončano, ker so bili nekateri izdelki odposlani nazaj
    - zahtevani znesek je preveč pomemben, ker je bil pozabljen popust
    V vseh primerih je treba popraviti previsoki zahtevani znesek v računovodskem sistemu z izdelavo dobropisa. ConfirmClassifyAbandonReasonOther=Ostalo ConfirmClassifyAbandonReasonOtherDesc=Ta izbira se uporabi v vseh drugih primerih. Na primer, ker planirate izdelavo nadomestnega računa. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ConfirmCustomerPayment=Ali potrjujete ta vnos plačila za %s %s? +ConfirmSupplierPayment=Ali potrjujete ta vnos plačila za %s %s? +ConfirmValidatePayment=Ali ste prepričani, da želite potrditi to plačilo? Ko je plačilo potrjeno, ni več mogoče spremeniti. ValidateBill=Potrdi račun UnvalidateBill=Unvalidate račun -NumberOfBills=No. of invoices -NumberOfBillsByMonth=No. of invoices per month +NumberOfBills=št. računov +NumberOfBillsByMonth=Število računov na mesec AmountOfBills=Znesek račuov -AmountOfBillsHT=Amount of invoices (net of tax) +AmountOfBillsHT=Znesek na računih (brez davka) AmountOfBillsByMonthHT=Znesek računov po mesecih (brez DDV) -UseSituationInvoices=Allow situation invoice -UseSituationInvoicesCreditNote=Allow situation invoice credit note -Retainedwarranty=Retained warranty -AllowedInvoiceForRetainedWarranty=Retained warranty usable on the following types of invoices -RetainedwarrantyDefaultPercent=Retained warranty default percent -RetainedwarrantyOnlyForSituation=Make "retained warranty" available only for situation invoices -RetainedwarrantyOnlyForSituationFinal=On situation invoices the global "retained warranty" deduction is applied only on the final situation -ToPayOn=To pay on %s -toPayOn=to pay on %s -RetainedWarranty=Retained Warranty -PaymentConditionsShortRetainedWarranty=Retained warranty payment terms -DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms -setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms -setretainedwarranty=Set retained warranty -setretainedwarrantyDateLimit=Set retained warranty date limit -RetainedWarrantyDateLimit=Retained warranty date limit -RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF +UseSituationInvoices=Dovoli stanje fakture +UseSituationInvoicesCreditNote=Dovoli stanje fakture dobropis +Retainedwarranty=Ohranjena garancija +AllowedInvoiceForRetainedWarranty=Ohranjena garancija, uporabna za naslednje vrste računov +RetainedwarrantyDefaultPercent=Privzeti odstotek ohranjene garancije +RetainedwarrantyOnlyForSituation=Naj bo "ohranjena garancija" na voljo samo za račune v primeru situacije +RetainedwarrantyOnlyForSituationFinal=Na fakturah situacije se globalni odbitek "zadržane garancije" uporabi samo za končno situacijo +ToPayOn=Za plačilo na %s +toPayOn=plačati na %s +RetainedWarranty=Ohranjena garancija +PaymentConditionsShortRetainedWarranty=Plačilni pogoji ohranjene garancije +DefaultPaymentConditionsRetainedWarranty=Privzeti plačilni pogoji ohranjene garancije +setPaymentConditionsShortRetainedWarranty=Nastavite plačilne pogoje zadržane garancije +setretainedwarranty=Nastavite zadržano garancijo +setretainedwarrantyDateLimit=Nastavite omejitev datuma ohranjene garancije +RetainedWarrantyDateLimit=Omejitev datuma ohranjene garancije +RetainedWarrantyNeed100Percent=Račun stanja mora biti na napredku 100%%, da bo prikazan v PDF-ju AlreadyPaid=Že plačano AlreadyPaidBack=Že vrnjeno plačilo -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) +AlreadyPaidNoCreditNotesNoDeposits=Že plačano (brez dobropisov in predplačil) Abandoned=Opuščeno RemainderToPay=Neplačan preostanek -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=Preostalo neplačano, izvirna valuta RemainderToTake=Preostanek vrednosti za odtegljaj -RemainderToTakeMulticurrency=Remaining amount to take, original currency -RemainderToPayBack=Remaining amount to refund -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency -NegativeIfExcessRefunded=negative if excess refunded +RemainderToTakeMulticurrency=Preostali znesek za prevzem, izvirna valuta +RemainderToPayBack=Preostali znesek za vračilo +RemainderToPayBackMulticurrency=Preostali znesek za vračilo, izvirna valuta +NegativeIfExcessRefunded=negativno, če se povrne presežek Rest=Na čakanju AmountExpected=Reklamiran znesek ExcessReceived=Prejet presežek -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received -ExcessPaid=Excess paid -ExcessPaidMulticurrency=Excess paid, original currency +ExcessReceivedMulticurrency=Prejeti presežek, izvirna valuta +NegativeIfExcessReceived=negativen, če je prejet presežek +ExcessPaid=Presežek plačan +ExcessPaidMulticurrency=Presežek plačan, originalna valuta EscompteOffered=Ponujen popust (plačilo pred rokom) EscompteOfferedShort=Popust SendBillRef=Oddaja račuuna %s SendReminderBillRef=Oddaja računa %s (opomin) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Predložitev potrdila o plačilu %s NoDraftBills=Ni osnutka računa NoOtherDraftBills=Ni drugih osnutkov računov NoDraftInvoices=Ni osnutkov računov @@ -262,40 +267,42 @@ RemainderToBill=Opomnik za fakturiranje SendBillByMail=Pošlji račun po e-mailu SendReminderBillByMail=Pošlji opomin po e-mailu RelatedCommercialProposals=Povezane komercialne ponudbe -RelatedRecurringCustomerInvoices=Related recurring customer invoices +RelatedRecurringCustomerInvoices=Povezani ponavljajoči se računi strank MenuToValid=Za potrditev -DateMaxPayment=Payment due on +DateMaxPayment=Rok plačila DateInvoice=Datum izdaje -DatePointOfTax=Point of tax +DatePointOfTax=Davčna točka NoInvoice=Ni računa -NoOpenInvoice=No open invoice -NbOfOpenInvoices=Number of open invoices +NoOpenInvoice=Brez odprtega računa +NbOfOpenInvoices=Število odprtih računov ClassifyBill=Klacificiraj račun -SupplierBillsToPay=Neplačane fakture dobaviteljem -CustomerBillsUnpaid=Neplačani računi stranke +SupplierBillsToPay=Neplačani prejeti računi +CustomerBillsUnpaid=Neplačani računi NonPercuRecuperable=Nepovratno -SetConditions=Set Payment Terms -SetMode=Set Payment Type -SetRevenuStamp=Set revenue stamp +SetConditions=Nastavite plačilne pogoje +SetMode=Nastavite vrsto plačila +SetRevenuStamp=Nastavite prihodkovno znamko Billed=Zaračunano -RecurringInvoices=Recurring invoices -RecurringInvoice=Recurring invoice +RecurringInvoices=Ponavljajoči se računi +RecurringInvoice=Ponavljajoči se račun RepeatableInvoice=Predloga računa RepeatableInvoices=Predloga računov +RecurringInvoicesJob=Izdelava ponavljajočih se računov (prodajnih računov) +RecurringSupplierInvoicesJob=Izdelava ponavljajočih se računov (nakupni računi) Repeatable=Predloga Repeatables=Predloge ChangeIntoRepeatableInvoice=Pretvori v predlogo računa CreateRepeatableInvoice=Ustvari predlogo računa CreateFromRepeatableInvoice=Ustvari iz predloge računa -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details +CustomersInvoicesAndInvoiceLines=Računi strank in podrobnosti o računu CustomersInvoicesAndPayments=Računi za kupce in plačila -ExportDataset_invoice_1=Customer invoices and invoice details +ExportDataset_invoice_1=Računi strank in podrobnosti o računu ExportDataset_invoice_2=Računi za kupce in plačila ProformaBill=Predračun: Reduction=Znižanje -ReductionShort=Disc. +ReductionShort=disk Reductions=Znižanja -ReductionsShort=Disc. +ReductionsShort=disk Discounts=Popusti AddDiscount=Ustvari absolutni popust AddRelativeDiscount=Ustvarite relativno popust @@ -304,148 +311,158 @@ AddGlobalDiscount=Dodaj popust EditGlobalDiscounts=Uredi absolutne popuste AddCreditNote=Ustvari dobropis ShowDiscount=Prikaži popust -ShowReduc=Show the discount -ShowSourceInvoice=Show the source invoice +ShowReduc=Pokažite popust +ShowSourceInvoice=Prikaži izvorni račun RelativeDiscount=Relativni popust GlobalDiscount=Globalni popust CreditNote=Dobropis CreditNotes=Dobropisi -CreditNotesOrExcessReceived=Credit notes or excess received -Deposit=Down payment -Deposits=Down payments +CreditNotesOrExcessReceived=Prejeti dobropisi ali presežek +Deposit=Polog +Deposits=Predplačila DiscountFromCreditNote=Popust z dobropisa %s -DiscountFromDeposit=Down payments from invoice %s -DiscountFromExcessReceived=Payments in excess of invoice %s -DiscountFromExcessPaid=Payments in excess of invoice %s +DiscountFromDeposit=Predplačila iz računa %s +DiscountFromExcessReceived=Plačila, ki presegajo račun %s +DiscountFromExcessPaid=Plačila, ki presegajo račun %s AbsoluteDiscountUse=Ta način dobropisa se lahko uporabi na računu pred njegovo potrditvijo -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +CreditNoteDepositUse=Za uporabo te vrste dobropisov mora biti račun potrjen NewGlobalDiscount=Nov fiksni popust NewRelativeDiscount=Nov relativni popust -DiscountType=Discount type +DiscountType=Vrsta popusta NoteReason=Opomba/Razlog ReasonDiscount=Razlog DiscountOfferedBy=Odobril -DiscountStillRemaining=Discounts or credits available -DiscountAlreadyCounted=Discounts or credits already consumed -CustomerDiscounts=Customer discounts -SupplierDiscounts=Vendors discounts +DiscountStillRemaining=Na voljo so popusti ali krediti +DiscountAlreadyCounted=Popusti ali krediti so že porabljeni +CustomerDiscounts=Popusti za stranke +SupplierDiscounts=Popusti dobaviteljev BillAddress=Naslov za račun -HelpEscompte=This discount is a discount granted to customer because payment was made before term. -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss. -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example) +HelpEscompte=Ta popust je popust, odobren kupcu, ker je bilo plačilo opravljeno pred rokom. +HelpAbandonBadCustomer=Znesek je storniran (dolžnik ne želi poravnati računa) in se šteje kot izredni odhodek +HelpAbandonOther=Ta znesek je bil opuščen, ker je šlo za napako (na primer napačna stranka ali račun zamenjan z drugim) IdSocialContribution=ID za socialni/fiskalni davek PaymentId=ID plačila -PaymentRef=Payment ref. +PaymentRef=Ref. InvoiceId=ID računa InvoiceRef=Referenca računa InvoiceDateCreation=Datum kreiranja računa InvoiceStatus=Status računa InvoiceNote=Opomba računa InvoicePaid=Plačan račun -InvoicePaidCompletely=Paid completely -InvoicePaidCompletelyHelp=Invoice that are paid completely. This excludes invoices that are paid partially. To get list of all 'Closed' or non 'Closed' invoices, prefer to use a filter on the invoice status. -OrderBilled=Order billed -DonationPaid=Donation paid +InvoicePaidCompletely=Plačano v celoti +InvoicePaidCompletelyHelp=Račun, ki je plačan v celoti. To ne vključuje računov, ki so plačani delno. Če želite dobiti seznam vseh računov »Zaprto« ali ne »Zaprto«, raje uporabite filter za stanje računa. +OrderBilled=Naročilo zaračunano +DonationPaid=Donacija plačana PaymentNumber=Številka plačila RemoveDiscount=Odstrani popust WatermarkOnDraftBill=Vodni žig na osnutku računa (nič, če je prazno) InvoiceNotChecked=Noben račun ni izbran -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Ali ste prepričani, da želite klonirati ta račun %s ? DisabledBecauseReplacedInvoice=Aktivnost onemogočena, ker je bil račun zamenjan -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payments during the fixed year are included here. -NbOfPayments=No. of payments +DescTaxAndDividendsArea=To področje predstavlja povzetek vseh plačil za posebne stroške. Tukaj so vključeni samo zapisi s plačili v določenem letu. +NbOfPayments=št. plačil SplitDiscount=Razdeli popust na dva -ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into two smaller discounts? -TypeAmountOfEachNewDiscount=Input amount for each of two parts: -TotalOfTwoDiscountMustEqualsOriginal=The total of the two new discounts must be equal to the original discount amount. -ConfirmRemoveDiscount=Are you sure you want to remove this discount? +ConfirmSplitDiscount=Ali ste prepričani, da želite ta popust %s %s razdeliti na dva manjša popusta? +TypeAmountOfEachNewDiscount=Vnesite znesek za vsakega od dveh delov: +TotalOfTwoDiscountMustEqualsOriginal=Skupna vsota obeh novih popustov mora biti enaka prvotnemu znesku popusta. +ConfirmRemoveDiscount=Ali ste prepričani, da želite odstraniti ta popust? RelatedBill=Podobni račun RelatedBills=Povezani računi RelatedCustomerInvoices=Povezani računi za kupca -RelatedSupplierInvoices=Related vendor invoices +RelatedSupplierInvoices=Povezani prejeti računi LatestRelatedBill=Zadnji povezan račun -WarningBillExist=Warning, one or more invoices already exist +WarningBillExist=Opozorilo, en ali več računov že obstaja MergingPDFTool=Orodje za spajanje PDF -AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice -PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company -PaymentNote=Payment note -ListOfPreviousSituationInvoices=List of previous situation invoices -ListOfNextSituationInvoices=List of next situation invoices -ListOfSituationInvoices=List of situation invoices -CurrentSituationTotal=Total current situation -DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total -RemoveSituationFromCycle=Remove this invoice from cycle -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ? -ConfirmOuting=Confirm outing -FrequencyPer_d=Every %s days -FrequencyPer_m=Every %s months -FrequencyPer_y=Every %s years -FrequencyUnit=Frequency unit -toolTipFrequency=Examples:
    Set 7, Day: give a new invoice every 7 days
    Set 3, Month: give a new invoice every 3 month -NextDateToExecution=Date for next invoice generation -NextDateToExecutionShort=Date next gen. -DateLastGeneration=Date of latest generation -DateLastGenerationShort=Date latest gen. -MaxPeriodNumber=Max. number of invoice generation -NbOfGenerationDone=Number of invoice generation already done -NbOfGenerationOfRecordDone=Number of record generation already done -NbOfGenerationDoneShort=Number of generation done -MaxGenerationReached=Maximum number of generations reached -InvoiceAutoValidate=Validate invoices automatically -GeneratedFromRecurringInvoice=Generated from template recurring invoice %s -DateIsNotEnough=Date not reached yet -InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s -GeneratedFromTemplate=Generated from template invoice %s -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date -ViewAvailableGlobalDiscounts=View available discounts -GroupPaymentsByModOnReports=Group payments by mode on reports +AmountPaymentDistributedOnInvoice=Znesek plačila razdeljen na račun +PaymentOnDifferentThirdBills=Dovolite plačila na različne račune tretjih oseb, vendar isto matično podjetje +PaymentNote=Opomba o plačilu +ListOfPreviousSituationInvoices=Seznam prejšnjih faktur stanja +ListOfNextSituationInvoices=Seznam faktur naslednje situacije +ListOfSituationInvoices=Seznam faktur stanja +CurrentSituationTotal=Skupno trenutno stanje +DisabledBecauseNotEnouthCreditNote=Če želite odstraniti račun za situacijo iz cikla, mora vsota dobropisa tega računa pokrivati to vsoto računa +RemoveSituationFromCycle=Odstranite ta račun iz cikla +ConfirmRemoveSituationFromCycle=Odstranite ta račun %s iz cikla? +ConfirmOuting=Potrdite izstop +FrequencyPer_d=Vsakih %s dni +FrequencyPer_m=Vsakih %s mesecev +FrequencyPer_y=Vsakih %s let +FrequencyUnit=Frekvenčna enota +toolTipFrequency=Primeri:
    7. niz, dan : izdajte nov račun vsakih 7 dni
    3. niz, mesec : izdajte nov račun vsake 3 mesece +NextDateToExecution=Datum naslednjega izdajanja računa +NextDateToExecutionShort=Datum naslednje gen. +DateLastGeneration=Datum zadnje generacije +DateLastGenerationShort=Datum najnovejše gen. +MaxPeriodNumber=maks. številka generiranja računa +NbOfGenerationDone=Število že izdelanih računov +NbOfGenerationOfRecordDone=Število že narejenih zapisov +NbOfGenerationDoneShort=Število opravljenih generacij +MaxGenerationReached=Doseženo je največje število generacij +InvoiceAutoValidate=Samodejno preverjanje veljavnosti računov +GeneratedFromRecurringInvoice=Ustvarjeno iz predloge ponavljajočega se računa %s +DateIsNotEnough=Datum še ni dosežen +InvoiceGeneratedFromTemplate=Račun %s, ustvarjen iz ponavljajoče se predloge računa %s +GeneratedFromTemplate=Ustvarjeno iz predloge računa %s +WarningInvoiceDateInFuture=Opozorilo, datum računa je višji od trenutnega datuma +WarningInvoiceDateTooFarInFuture=Opozorilo, datum računa je predaleč od trenutnega datuma +ViewAvailableGlobalDiscounts=Oglejte si razpoložljive popuste +GroupPaymentsByModOnReports=V poročilih združite plačila po načinu # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Zapade ob prejemu +PaymentConditionRECEP=Zapade ob prejemu PaymentConditionShort30D=30 dni PaymentCondition30D=30 dni -PaymentConditionShort30DENDMONTH=30 days of month-end -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort30DENDMONTH=30 dni do konca meseca +PaymentCondition30DENDMONTH=V 30 dneh po koncu meseca PaymentConditionShort60D=60 dni PaymentCondition60D=60 dni -PaymentConditionShort60DENDMONTH=60 days of month-end -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShort60DENDMONTH=60 dni konec meseca +PaymentCondition60DENDMONTH=V 60 dneh po koncu meseca PaymentConditionShortPT_DELIVERY=Dobava PaymentConditionPT_DELIVERY=Ob dobavi PaymentConditionShortPT_ORDER=Naročilo PaymentConditionPT_ORDER=Naročeno PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% vnaprej, 50%% ob dobavi -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days -PaymentConditionShort14DENDMONTH=14 days of month-end -PaymentCondition14DENDMONTH=Within 14 days following the end of the month -FixAmount=Fixed amount - 1 line with label '%s' +PaymentConditionShort10D=10 dni +PaymentCondition10D=10 dni +PaymentConditionShort10DENDMONTH=10 dni do konca meseca +PaymentCondition10DENDMONTH=V 10 dneh po koncu meseca +PaymentConditionShort14D=14 dni +PaymentCondition14D=14 dni +PaymentConditionShort14DENDMONTH=14 dni konec meseca +PaymentCondition14DENDMONTH=V 14 dneh po koncu meseca +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozit, preostanek ob dostavi +FixAmount=Fiksni znesek – 1 vrstica z oznako '%s' VarAmount=Variabilni znesek (%% tot.) -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s' -VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +VarAmountOneLine=Spremenljiva količina (%% tot.) - 1 vrstica z oznako '%s' +VarAmountAllLines=Spremenljivi znesek (%% tot.) - vse vrstice od izvora +DepositPercent=Depozit %% +DepositGenerationPermittedByThePaymentTermsSelected=To dovoljujejo izbrani plačilni pogoji +GenerateDeposit=Ustvari %s%% račun za polog +ValidateGeneratedDeposit=Potrdite ustvarjeni depozit +DepositGenerated=Depozit ustvarjen +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Polog lahko samodejno ustvarite le iz predloga ali naročila +ErrorPaymentConditionsNotEligibleToDepositCreation=Izbrani plačilni pogoji niso primerni za samodejno ustvarjanje depozita # PaymentType PaymentTypeVIR=Bančni transfer PaymentTypeShortVIR=Bančni transfer -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Plačilni nalog za direktno obremenitev +PaymentTypePREdetails=(na račun *-%s) +PaymentTypeShortPRE=Debetni nalog PaymentTypeLIQ=Gotovina PaymentTypeShortLIQ=Gotovina PaymentTypeCB=Kreditna kartica PaymentTypeShortCB=Kreditna kartica PaymentTypeCHQ=Ček PaymentTypeShortCHQ=Ček -PaymentTypeTIP=TIP (Documents against Payment) -PaymentTypeShortTIP=TIP Payment -PaymentTypeVAD=Online payment -PaymentTypeShortVAD=Online payment -PaymentTypeTRA=Bank draft +PaymentTypeTIP=NAMIG (Dokumenti proti plačilu) +PaymentTypeShortTIP=NAMIG Plačilo +PaymentTypeVAD=Spletno plačilo +PaymentTypeShortVAD=Spletno plačilo +PaymentTypeTRA=Bančni menici PaymentTypeShortTRA=Osnutek PaymentTypeFAC=Faktor PaymentTypeShortFAC=Faktor @@ -453,22 +470,22 @@ PaymentTypeDC=Debetna/Kreditna kartica PaymentTypePP=PayPal BankDetails=Podatki o banki BankCode=Koda banke -DeskCode=Branch code +DeskCode=Šifra podružnice BankAccountNumber=Koda računa -BankAccountNumberKey=Checksum +BankAccountNumberKey=Kontrolna vsota Residence=Naslov -IBANNumber=IBAN account number +IBANNumber=Številka računa IBAN IBAN=IBAN -CustomerIBAN=IBAN of customer -SupplierIBAN=IBAN of vendor +CustomerIBAN=IBAN stranke +SupplierIBAN=IBAN dobavitelja BIC=BIC/SWIFT -BICNumber=BIC/SWIFT code +BICNumber=Koda BIC/SWIFT ExtraInfos=Dodatne informacije RegulatedOn=Urejen dne ChequeNumber=Ček N° ChequeOrTransferNumber=Ček/Prenos N° -ChequeBordereau=Check schedule -ChequeMaker=Check/Transfer sender +ChequeBordereau=Preverite načrtovane dogodke +ChequeMaker=Preveri/prenesi pošiljatelja ChequeBank=Banka izdajalka čeka CheckBank=Ček NetToBePaid=Neto za plačilo @@ -476,79 +493,80 @@ PhoneNumber=Tel FullPhoneNumber=Telefon TeleFax=Fax PrettyLittleSentence=Potrjujem zneske pretečenih plačil s čeki, izdanimi v mojem imenu, kot član združenja računovodij potrjen s strani davčne administracije. -IntracommunityVATNumber=Intra-Community VAT ID -PaymentByChequeOrderedTo=Check payments (including tax) are payable to %s, send to -PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to +IntracommunityVATNumber=ID za DDV znotraj Skupnosti +PaymentByChequeOrderedTo=Plačila s čeki (vključno z davkom) se plačajo na %s, pošljite na +PaymentByChequeOrderedToShort=Plačila s čeki (vključno z davkom) se plačajo na SendTo=Pošlji za -PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account +PaymentByTransferOnThisBankAccount=Plačilo z nakazilom na naslednji TRR VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI +VATIsNotUsedForInvoiceAsso=* Neuporabni DDV art-261-7 CGI LawApplicationPart1=By application of the law 80.335 of 12/05/80 LawApplicationPart2=Blago ostane last prodajalca -LawApplicationPart3=the seller until full payment of +LawApplicationPart3=prodajalec do celotnega plačila LawApplicationPart4=vrednosti. LimitedLiabilityCompanyCapital=d.o.o. s kapitalom UseLine=Uporabi UseDiscount=Uporabi popust UseCredit=Uporabi dobropis UseCreditNoteInInvoicePayment=Znižana vrednost za plačilo s tem dobropipsom -MenuChequeDeposits=Check Deposits +MenuChequeDeposits=Čekovni depoziti MenuCheques=Čeki -MenuChequesReceipts=Check receipts +MenuChequesReceipts=Preverite račune NewChequeDeposit=Nov polog -ChequesReceipts=Check receipts -ChequesArea=Check deposits area -ChequeDeposits=Check deposits +ChequesReceipts=Preverite račune +ChequesArea=Območje za depozite čekov +ChequeDeposits=Čekovni depoziti Cheques=Čeki DepositId=ID depozita NbCheque=Število čekov -CreditNoteConvertedIntoDiscount=This %s has been converted into %s -UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third-party address as recipient for invoices +CreditNoteConvertedIntoDiscount=Ta %s je bil pretvorjen v %s +UsBillingContactAsIncoiveRecipientIfExist=Uporabite kontakt/naslov z vrsto 'kontakt za obračunavanje' namesto naslova partnerja kot prejemnika računa ShowUnpaidAll=Prikaži vse neplačane račune ShowUnpaidLateOnly=Prikaži samo zapadle neplačane račune PaymentInvoiceRef=Račun za plačilo %s ValidateInvoice=Potrdi račun -ValidateInvoices=Validate invoices +ValidateInvoices=Potrdite račune Cash=Gotovina Reported=Odlog DisabledBecausePayments=Ni možno zaradi nekaterih odprtih plačil CantRemovePaymentWithOneInvoicePaid=Brisanje plačila ni možno, ker je vsaj en račun označen kot plačan -CantRemovePaymentVATPaid=Can't remove payment since VAT declaration is classified paid -CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +CantRemovePaymentVATPaid=Plačila ni mogoče odstraniti, ker je izjava DDV označena kot plačano +CantRemovePaymentSalaryPaid=Plačila ni mogoče odstraniti, ker je plača označena kot izplačana ExpectedToPay=Pričakovano plačilo -CantRemoveConciliatedPayment=Can't remove reconciled payment +CantRemoveConciliatedPayment=Usklajenega plačila ni mogoče odstraniti PayedByThisPayment=Plačano s tem plačilom -ClosePaidInvoicesAutomatically=Classify automatically all standard, down payment or replacement invoices as "Paid" when payment is done entirely. -ClosePaidCreditNotesAutomatically=Classify automatically all credit notes as "Paid" when refund is done entirely. -ClosePaidContributionsAutomatically=Classify automatically all social or fiscal contributions as "Paid" when payment is done entirely. -ClosePaidVATAutomatically=Classify automatically VAT declaration as "Paid" when payment is done entirely. -ClosePaidSalaryAutomatically=Classify automatically salary as "Paid" when payment is done entirely. -AllCompletelyPayedInvoiceWillBeClosed=All invoices with no remainder to pay will be automatically closed with status "Paid". +ClosePaidInvoicesAutomatically=Samodejno razvrstite vse standardne, predplačila ali nadomestne račune kot "plačane", ko je plačilo v celoti izvedeno. +ClosePaidCreditNotesAutomatically=Samodejno razvrsti vse dobropise kot "plačano", ko je vračilo opravljeno v celoti. +ClosePaidContributionsAutomatically=Samodejno razvrsti vse socialne ali davčne prispevke kot "plačane", ko je plačilo opravljeno v celoti. +ClosePaidVATAutomatically=Samodejno razvrstite napoved DDV kot "Plačano", ko je plačilo opravljeno v celoti. +ClosePaidSalaryAutomatically=Samodejno razvrsti plačo kot "izplačano", ko je izplačilo opravljeno v celoti. +AllCompletelyPayedInvoiceWillBeClosed=Vsi računi brez ostanka za plačilo bodo samodejno zaprti s statusom "Plačano". ToMakePayment=Plačati ToMakePaymentBack=Vrniti plačilo ListOfYourUnpaidInvoices=Seznam neplačanih računov NoteListOfYourUnpaidInvoices=Opomba: Ta seznam vsebuje samo račune za partnerje, ki so povezani z referentom. -RevenueStamp=Tax stamp -YouMustCreateInvoiceFromThird=This option is only available when creating an invoice from tab "Customer" of third party -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating an invoice from tab "Vendor" of third party -YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice -PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (old implementation of Sponge template) -PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template -PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices -TerreNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 -MarsNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +RevenueStamp=Davčna znamka +YouMustCreateInvoiceFromThird=Ta možnost je na voljo samo pri ustvarjanju računa iz zavihka "Kupci" +YouMustCreateInvoiceFromSupplierThird=Ta možnost je na voljo samo pri ustvarjanju računa iz zavihka "Dobavitelj" +YouMustCreateStandardInvoiceFirstDesc=Najprej morate ustvariti standardni račun in ga pretvoriti v "predlogo", da ustvarite novo predlogo računa +PDFCrabeDescription=Predloga računa PDF Crabe. Popolna predloga računa (stara izvedba predloge Sponge) +PDFSpongeDescription=Račun PDF predloga Sponge. Popolna predloga računa +PDFCrevetteDescription=PDF predloga računa Crevette. Popolna predloga računa za situacijske račune +TerreNumRefModelDesc1=Povratna številka v obliki %syymm-nnnn za standardne račune in %syymm-nnnn za dobropise, kjer je yy leto, mm je mesec in nnnn je zaporedno samodejno naraščajoče število brez prekinitve in vrnitve na 0 +MarsNumRefModelDesc1=Povratna številka v formatu %syymm-nnnn za standardne račune, %syymm-nnnn za nadomestne račune, %syymm-nnnn za račune s pologom in %syymm-nnnn za dobropise, kjer je yy leto, mm je samodejna nnn zaporedno število meseca in brez odmora in vrnitve na 0 TerreNumRefModelError=Račun z začetkom $syymm že obstaja in ni kompatibilen s tem modelom zaporedja. Odstranite ga ali ga preimenujte za aktiviranje tega modula. -CactusNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 -EarlyClosingReason=Early closing reason -EarlyClosingComment=Early closing note +CactusNumRefModelDesc1=Povratna številka v obliki %syymm-nnnn za standardne račune, %syymm-nnnn za dobropise in %syymm-nnnn za račune s pologom, kjer je yy leto, mm je mesec in nnnn je zaporedno samodejno naraščajoče število brez prekinitve in vrnitve na 0 +EarlyClosingReason=Razlog za predčasno zaprtje +EarlyClosingComment=Zgodnja zaključna opomba ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Predstavnik za sledenje računa kupcu TypeContact_facture_external_BILLING=Kontakt za račun kupcu TypeContact_facture_external_SHIPPING=Kontakt za pošiljanje kupcu TypeContact_facture_external_SERVICE=Kontakt za servis pri kupcu -TypeContact_invoice_supplier_internal_SALESREPFOLL=Representative following-up vendor invoice -TypeContact_invoice_supplier_external_BILLING=Dobaviteljeva kontaktna oseba za fakture -TypeContact_invoice_supplier_external_SHIPPING=Dobaviteljeva kontaktna oseba za dobave -TypeContact_invoice_supplier_external_SERVICE=Vendor service contact +TypeContact_invoice_supplier_internal_SALESREPFOLL=Vzorčni prejeti račun +TypeContact_invoice_supplier_external_BILLING=Stik za prejete račune +TypeContact_invoice_supplier_external_SHIPPING=Stik za pošiljanje +TypeContact_invoice_supplier_external_SERVICE=Stik servisne službe # Situation invoices InvoiceFirstSituationAsk=Račun za prvo situacijo InvoiceFirstSituationDesc=Situacijski računi so vezani na situacijo glede na napredek, na primer na napredek gradnje. Vska situacija je povezana z računom. @@ -560,10 +578,10 @@ SituationAmount=Vrednost računa za situacijo (neto) SituationDeduction=Odštevanje situacije ModifyAllLines=Uredi vse vrstice CreateNextSituationInvoice=Ustvari naslednjo situacijo -ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref -ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice. -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note. -NotLastInCycle=This invoice is not the latest in cycle and must not be modified. +ErrorFindNextSituationInvoice=Napaka ni mogoče najti naslednjega cikla situacije ref +ErrorOutingSituationInvoiceOnUpdate=Računa za to situacijo ni mogoče izdati. +ErrorOutingSituationInvoiceCreditNote=Povezanega dobropisa ni mogoče poslati. +NotLastInCycle=Ta račun ni zadnji v ciklu in ga ni dovoljeno spreminjati. DisabledBecauseNotLastInCycle=Naslednja situacija že obstaja. DisabledBecauseFinal=Ta situacija je končna. situationInvoiceShortcode_AS=AS @@ -571,39 +589,45 @@ situationInvoiceShortcode_S=N CantBeLessThanMinPercent=Napredek ne more biti manjši, kot je vrednost prejšnje situacije NoSituations=Nobena situacija ni odprta InvoiceSituationLast=Končni in skupni račun -PDFCrevetteSituationNumber=Situation N°%s -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT +PDFCrevetteSituationNumber=Stanje št. %s +PDFCrevetteSituationInvoiceLineDecompte=Račun stanja - ŠTEV PDFCrevetteSituationInvoiceTitle=Situacijski račun -PDFCrevetteSituationInvoiceLine=Situation N°%s: Inv. N°%s on %s -TotalSituationInvoice=Total situation -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line -updatePriceNextInvoiceErrorUpdateline=Error: update price on invoice line: %s -ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices. -ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu %s - %s - %s. -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module %s. Note that both methods (manual and automatic) can be used together with no risk of duplication. -DeleteRepeatableInvoice=Delete template invoice -ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice? -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per selected object) -BillCreated=%s invoice(s) generated -BillXCreated=Invoice %s generated -StatusOfGeneratedDocuments=Status of document generation -DoNotGenerateDoc=Do not generate document file -AutogenerateDoc=Auto generate document file -AutoFillDateFrom=Set start date for service line with invoice date -AutoFillDateFromShort=Set start date -AutoFillDateTo=Set end date for service line with next invoice date -AutoFillDateToShort=Set end date -MaxNumberOfGenerationReached=Max number of gen. reached -BILL_DELETEInDolibarr=Invoice deleted -BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted -UnitPriceXQtyLessDiscount=Unit price x Qty - Discount -CustomersInvoicesArea=Customer billing area -SupplierInvoicesArea=Supplier billing area -FacParentLine=Invoice Line Parent -SituationTotalRayToRest=Remainder to pay without taxe -PDFSituationTitle=Situation n° %d -SituationTotalProgress=Total progress %d %% -SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +PDFCrevetteSituationInvoiceLine=Situacija N°%s: Inv. N°%s na %s +TotalSituationInvoice=Totalna situacija +invoiceLineProgressError=Napredek v vrstici računa ne sme biti večji ali enak naslednji vrstici računa +updatePriceNextInvoiceErrorUpdateline=Napaka: posodobite ceno v vrstici računa: %s +ToCreateARecurringInvoice=Če želite ustvariti ponavljajoči se račun za to pogodbo, najprej ustvarite ta osnutek računa, nato ga pretvorite v predlogo računa in določite pogostost za generiranje prihodnjih računov. +ToCreateARecurringInvoiceGene=Za redno in ročno ustvarjanje prihodnjih računov pojdite na meni %s - %s - %s . +ToCreateARecurringInvoiceGeneAuto=Če želite, da se takšni računi ustvarijo samodejno, prosite svojega skrbnika, da omogoči in nastavi modul %s . Upoštevajte, da je mogoče obe metodi (ročno in samodejno) uporabiti skupaj brez tveganja podvajanja. +DeleteRepeatableInvoice=Izbriši predlogo računa +ConfirmDeleteRepeatableInvoice=Ste prepričani, da želite izbrisati predlogo računa? +CreateOneBillByThird=Izdelajte en račun za partnerja (sicer en račun na izbran predmet) +BillCreated=%s ustvarjenih računov +BillXCreated=Ustvarjen račun %s +StatusOfGeneratedDocuments=Status generiranja dokumenta +DoNotGenerateDoc=Ne ustvari datoteke dokumenta +AutogenerateDoc=Samodejno ustvari datoteko dokumenta +AutoFillDateFrom=Nastavite začetni datum za vrstico storitve z datumom računa +AutoFillDateFromShort=Nastavite začetni datum +AutoFillDateTo=Nastavite končni datum storitvene vrstice z datumom naslednjega računa +AutoFillDateToShort=Nastavite končni datum +MaxNumberOfGenerationReached=Največje število gen. dosežen +BILL_DELETEInDolibarr=Račun izbrisan +BILL_SUPPLIER_DELETEInDolibarr=Račun dobavitelja izbrisan +UnitPriceXQtyLessDiscount=Cena na enoto x količina - popust +CustomersInvoicesArea=Obračunsko območje stranke +SupplierInvoicesArea=Obračunsko območje dobavitelja +SituationTotalRayToRest=Preostanek plačati brez davka +PDFSituationTitle=Situacija št. %d +SituationTotalProgress=Skupni napredek %d %% +SearchUnpaidInvoicesWithDueDate=Iskanje neplačanih računov z rokom zapadlosti = %s +NoPaymentAvailable=Za %s plačilo ni na voljo +PaymentRegisteredAndInvoiceSetToPaid=Plačilo registrirano in račun %s nastavljen na plačan +SendEmailsRemindersOnInvoiceDueDate=Pošlji opomin po e-pošti za neplačane račune +MakePaymentAndClassifyPayed=Rekordno plačilo +BulkPaymentNotPossibleForInvoice=Plačilo ni mogoče za račun %s (nepravilna oznaka ali status) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/sl_SI/blockedlog.lang b/htdocs/langs/sl_SI/blockedlog.lang index 215867fc4b1..2f3553c91f1 100644 --- a/htdocs/langs/sl_SI/blockedlog.lang +++ b/htdocs/langs/sl_SI/blockedlog.lang @@ -1,57 +1,61 @@ -BlockedLog=Unalterable Logs +BlockedLog=Nespremenljivi dnevniki Field=Polje -BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). -Fingerprints=Archived events and fingerprints -FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). -CompanyInitialKey=Company initial key (hash of genesis block) -BrowseBlockedLog=Unalterable logs -ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) -ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) -DownloadBlockChain=Download fingerprints -KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists) or has modified checksum of the previous record. -OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. -OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. -AddedByAuthority=Stored into remote authority -NotAddedByAuthorityYet=Not yet stored into remote authority -ShowDetails=Show stored details -logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created -logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified -logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion -logPAYMENT_ADD_TO_BANK=Payment added to bank -logPAYMENT_CUSTOMER_CREATE=Customer payment created -logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion -logDONATION_PAYMENT_CREATE=Donation payment created -logDONATION_PAYMENT_DELETE=Donation payment logical deletion -logBILL_PAYED=Customer invoice paid -logBILL_UNPAYED=Customer invoice set unpaid +BlockedLogDesc=Ta modul sledi nekaterim dogodkom v nespremenljiv dnevnik (ki ga ne morete spreminjati, ko je enkrat zabeležen) v verigo blokov v realnem času. Ta modul zagotavlja združljivost z zahtevami zakonov nekaterih držav (na primer Francija z zakonom Finance 2016 - Norme NF525). +Fingerprints=Arhivirani dogodki in prstni odtisi +FingerprintsDesc=To je orodje za brskanje ali ekstrahiranje nespremenljivih dnevnikov. Nespremenljivi dnevniki se ustvarijo in arhivirajo lokalno v namensko tabelo, v realnem času, ko zabeležite poslovni dogodek. S tem orodjem lahko izvozite ta arhiv in ga shranite v zunanjo podporo (nekatere države, kot je Francija, zahtevajo, da to storite vsako leto). Upoštevajte, da ni funkcije za čiščenje tega dnevnika in vsaka sprememba, ki jo poskusite narediti neposredno v tem dnevniku (na primer heker), bo prijavljena z neveljavnim prstnim odtisom. Če res morate počistiti to tabelo, ker ste svojo aplikacijo uporabili za predstavitvene/testne namene in želite očistiti svoje podatke za začetek proizvodnje, lahko prosite svojega prodajalca ali integratorja, da ponastavi vašo zbirko podatkov (vsi vaši podatki bodo odstranjeni). +CompanyInitialKey=Začetni ključ podjetja (hash of genesis block) +BrowseBlockedLog=Nespremenljivi dnevniki +ShowAllFingerPrintsMightBeTooLong=Prikaži vse arhivirane dnevnike (morda so dolgi) +ShowAllFingerPrintsErrorsMightBeTooLong=Prikaži vse neveljavne arhivske dnevnike (morda so dolgi) +DownloadBlockChain=Prenesite prstne odtise +KoCheckFingerprintValidity=Arhiviran vnos v dnevnik ni veljaven. To pomeni, da je nekdo (heker?) spremenil nekatere podatke tega zapisa, potem ko je bil posnet, ali je izbrisal prejšnji arhivirani zapis (preverite, ali obstaja ta vrstica s prejšnjim #) ali je spremenil kontrolno vsoto prejšnjega zapisa. +OkCheckFingerprintValidity=Arhiviran dnevniški zapis je veljaven. Podatki v tej vrstici niso bili spremenjeni in vnos sledi prejšnjemu. +OkCheckFingerprintValidityButChainIsKo=Arhiviran dnevnik se zdi veljaven v primerjavi s prejšnjim, vendar je bila veriga prej poškodovana. +AddedByAuthority=Shranjeno v oddaljenem organu +NotAddedByAuthorityYet=Še ni shranjeno v oddaljenem organu +ShowDetails=Pokaži shranjene podrobnosti +BlockedLogBillDownload=Prenos računa stranke +BlockedLogBillPreview=Predogled računa stranke +BlockedlogInfoDialog=Podrobnosti dnevnika +ListOfTrackedEvents=Seznam spremljanih dogodkov +Fingerprint=Prstni odtis +DownloadLogCSV=Izvozi arhivirane dnevnike (CSV) +logDOC_PREVIEW=Predogled potrjenega dokumenta za tiskanje ali prenos +logDOC_DOWNLOAD=Prenos potrjenega dokumenta za tiskanje ali pošiljanje +DataOfArchivedEvent=Celotni podatki arhiviranega dogodka +ImpossibleToReloadObject=Izvirni predmet (tip %s, id %s) ni povezan (glejte stolpec »Celotni podatki«, da dobite nespremenljive shranjene podatke) +BlockedLogAreRequiredByYourCountryLegislation=Zakonodaja vaše države morda zahteva modul Unalterable Logs. Če onemogočite ta modul, lahko morebitne prihodnje transakcije postanejo neveljavne glede na zakonodajo in uporabo zakonite programske opreme, saj jih ne more potrditi davčna revizija. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Modul Unalterable Logs je bil aktiviran zaradi zakonodaje vaše države. Če onemogočite ta modul, lahko postanejo morebitne prihodnje transakcije neveljavne glede na zakonodajo in uporabo zakonite programske opreme, saj jih davčna revizija ne more potrditi. +BlockedLogDisableNotAllowedForCountry=Seznam držav, v katerih je uporaba tega modula obvezna (da preprečite pomotoma onemogočanje modula, če je vaša država na tem seznamu, onemogočanje modula ni mogoče, ne da bi najprej uredili ta seznam. Upoštevajte tudi, da bo omogočanje/onemogočanje tega modula vodite sled v nespremenljivem dnevniku). +OnlyNonValid=Neveljavno +TooManyRecordToScanRestrictFilters=Preveč zapisov za skeniranje/analizo. Omejite seznam s strožjimi filtri. +RestrictYearToExport=Omejite mesec/leto za izvoz +BlockedLogEnabled=Sistem za sledenje dogodkov v nespremenljive dnevnike je bil omogočen +BlockedLogDisabled=Sistem za sledenje dogodkov v nespremenljive dnevnike je bil onemogočen, potem ko je bilo opravljeno nekaj snemanja. Shranili smo poseben prstni odtis za sledenje verigi kot zlomljeni +BlockedLogDisabledBis=Sistem za sledenje dogodkov v nespremenljive dnevnike je onemogočen. To je mogoče, ker še ni bil narejen noben zapis. + +## logTypes +logBILL_DELETE=Račun stranke logično izbrisan +logBILL_PAYED=Plačan račun stranke +logBILL_SENTBYMAIL=Račun stranki pošljemo po pošti +logBILL_UNPAYED=Račun stranke ni plačan logBILL_VALIDATE=Potrjen račun -logBILL_SENTBYMAIL=Customer invoice send by mail -logBILL_DELETE=Customer invoice logically deleted -logMODULE_RESET=Module BlockedLog was disabled -logMODULE_SET=Module BlockedLog was enabled -logDON_VALIDATE=Donation validated -logDON_MODIFY=Donation modified -logDON_DELETE=Donation logical deletion -logMEMBER_SUBSCRIPTION_CREATE=Member subscription created -logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified -logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion -logCASHCONTROL_VALIDATE=Cash desk closing recording -BlockedLogBillDownload=Customer invoice download -BlockedLogBillPreview=Customer invoice preview -BlockedlogInfoDialog=Log Details -ListOfTrackedEvents=List of tracked events -Fingerprint=Fingerprint -DownloadLogCSV=Export archived logs (CSV) -logDOC_PREVIEW=Preview of a validated document in order to print or download -logDOC_DOWNLOAD=Download of a validated document in order to print or send -DataOfArchivedEvent=Full datas of archived event -ImpossibleToReloadObject=Original object (type %s, id %s) not linked (see 'Full datas' column to get unalterable saved data) -BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be required by the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit. -BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they cannot be validated by a tax audit. -BlockedLogDisableNotAllowedForCountry=List of countries where usage of this module is mandatory (just to prevent to disable the module by error, if your country is in this list, disable of module is not possible without editing this list first. Note also that enabling/disabling this module will keep a track into the unalterable log). -OnlyNonValid=Non-valid -TooManyRecordToScanRestrictFilters=Too many records to scan/analyze. Please restrict list with more restrictive filters. -RestrictYearToExport=Restrict month / year to export -BlockedLogEnabled=System to track events into unalterable logs has been enabled -BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken -BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. +logCASHCONTROL_VALIDATE=Posnetek zaprtja blagajne +logDOC_DOWNLOAD=Prenos potrjenega dokumenta za tiskanje ali pošiljanje +logDOC_PREVIEW=Predogled potrjenega dokumenta za tiskanje ali prenos +logDONATION_PAYMENT_CREATE=Ustvarjeno plačilo donacije +logDONATION_PAYMENT_DELETE=Logičen izbris plačila donacije +logDON_DELETE=Logično brisanje donacije +logDON_MODIFY=Donacija spremenjena +logDON_VALIDATE=Donacija potrjena +logMEMBER_SUBSCRIPTION_CREATE=Članska naročnina je ustvarjena +logMEMBER_SUBSCRIPTION_DELETE=Logično brisanje članske naročnine +logMEMBER_SUBSCRIPTION_MODIFY=Članska naročnina spremenjena +logMODULE_RESET=Modul BlockedLog je bil onemogočen +logMODULE_SET=Modul BlockedLog je bil omogočen +logPAYMENT_ADD_TO_BANK=Plačilo dodano banki +logPAYMENT_CUSTOMER_CREATE=Plačilo stranke ustvarjeno +logPAYMENT_CUSTOMER_DELETE=Logično brisanje plačila stranke +logPAYMENT_VARIOUS_CREATE=Plačilo (ni dodeljeno računu) ustvarjeno +logPAYMENT_VARIOUS_DELETE=Plačilo (ni dodeljeno računu) logično brisanje +logPAYMENT_VARIOUS_MODIFY=Plačilo (ni dodeljeno računu) spremenjeno diff --git a/htdocs/langs/sl_SI/bookmarks.lang b/htdocs/langs/sl_SI/bookmarks.lang index acbd840a992..7f889bf67d8 100644 --- a/htdocs/langs/sl_SI/bookmarks.lang +++ b/htdocs/langs/sl_SI/bookmarks.lang @@ -1,22 +1,23 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add current page to bookmarks +AddThisPageToBookmarks=Dodajte trenutno stran med zaznamke Bookmark=Zaznamek Bookmarks=Zaznamki ListOfBookmarks=Seznam zaznamkov -EditBookmarks=List/edit bookmarks +EditBookmarks=Seznam/urejanje zaznamkov NewBookmark=Nov zaznamek ShowBookmark=Prikaži zaznamek -OpenANewWindow=Open a new tab -ReplaceWindow=Replace current tab -BookmarkTargetNewWindowShort=New tab -BookmarkTargetReplaceWindowShort=Current tab -BookmarkTitle=Bookmark name +OpenANewWindow=Odprite nov zavihek +ReplaceWindow=Zamenjaj trenutni zavihek +BookmarkTargetNewWindowShort=Nov zavihek +BookmarkTargetReplaceWindowShort=Trenutni zavihek +BookmarkTitle=Ime zaznamka UrlOrLink=URL -BehaviourOnClick=Behaviour when a bookmark URL is selected +BehaviourOnClick=Vedenje, ko je izbran URL zaznamka CreateBookmark=Kreiraj zaznamek -SetHereATitleForLink=Set a name for the bookmark -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab +SetHereATitleForLink=Nastavite ime za zaznamek +UseAnExternalHttpLinkOrRelativeDolibarrLink=Uporabite zunanjo/absolutno povezavo (https://externalurl.com) ali notranjo/relativno povezavo (/mypage.php). Uporabite lahko tudi telefon tel:0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Izberite, ali naj se povezana stran odpre v trenutnem zavihku ali novem zavihku BookmarksManagement=Urejanje zaznamkov BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=Ni določenih zaznamkov +NoBookmarkFound=Zaznamek ni bil najden diff --git a/htdocs/langs/sl_SI/boxes.lang b/htdocs/langs/sl_SI/boxes.lang index b2cbbc50e6a..f662f6b48dc 100644 --- a/htdocs/langs/sl_SI/boxes.lang +++ b/htdocs/langs/sl_SI/boxes.lang @@ -1,120 +1,122 @@ # Dolibarr language file - Source file is en_US - boxes -BoxDolibarrStateBoard=Statistics on main business objects in database -BoxLoginInformation=Login Information -BoxLastRssInfos=RSS Information -BoxLastProducts=Latest %s Products/Services +BoxDolibarrStateBoard=Statistika o glavnih poslovnih objektih v bazi podatkov +BoxLoginInformation=Podatki za prijavo +BoxLastRssInfos=Informacije RSS +BoxLastProducts=Najnovejši %s izdelki/storitve BoxProductsAlertStock=Opozorila na zalogah BoxLastProductsInContract=Najnovejši %s pogodbeni proizvodi/storitve -BoxLastSupplierBills=Latest Vendor invoices -BoxLastCustomerBills=Latest Customer invoices +BoxLastSupplierBills=Najnovejši prejeti računi +BoxLastCustomerBills=Najnovejši računi strank BoxOldestUnpaidCustomerBills=Najstarejši neplačani računi kupcev -BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices +BoxOldestUnpaidSupplierBills=Najstarejši neplačani prejeti računi BoxLastProposals=Najnovejše komercialne ponudbe -BoxLastProspects=Nazadnje spremenjene možne stranke +BoxLastProspects=Nazadnje spremenjeni potencialni kupci BoxLastCustomers=Nazadnje spremenjene stranke BoxLastSuppliers=Nazadnje spremenjeni dobavitelji -BoxLastCustomerOrders=Latest sales orders +BoxLastCustomerOrders=Najnovejša prodajna naročila BoxLastActions=Zadnje akcije BoxLastContracts=Najnovejše pogodbe BoxLastContacts=Najnovejši stiki/naslovi BoxLastMembers=Najnovejši člani -BoxLastModifiedMembers=Latest modified members -BoxLastMembersSubscriptions=Latest member subscriptions +BoxLastModifiedMembers=Zadnji spremenjeni člani +BoxLastMembersSubscriptions=Najnovejše članske naročnine BoxFicheInter=Zadnje intervencije BoxCurrentAccounts=Odpri stanje računov -BoxTitleMemberNextBirthdays=Birthdays of this month (members) -BoxTitleMembersByType=Members by type -BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year +BoxTitleMemberNextBirthdays=Rojstni dnevi tega meseca (člani) +BoxTitleMembersByType=Člani po vrsti in statusu +BoxTitleMembersSubscriptionsByYear=Naročnine članov po letih BoxTitleLastRssInfos=Zadnje %s novice od %s -BoxTitleLastProducts=Products/Services: last %s modified -BoxTitleProductsAlertStock=Products: stock alert +BoxTitleLastProducts=Izdelki/storitve: zadnja sprememba %s +BoxTitleProductsAlertStock=Izdelki: opozorilo o zalogi BoxTitleLastSuppliers=Zadnji %s zabeleženi dobavitelji -BoxTitleLastModifiedSuppliers=Vendors: last %s modified -BoxTitleLastModifiedCustomers=Customers: last %s modified -BoxTitleLastCustomersOrProspects=Najnovejše %s stranke in možne stranke -BoxTitleLastCustomerBills=Latest %s modified Customer invoices -BoxTitleLastSupplierBills=Latest %s modified Vendor invoices -BoxTitleLastModifiedProspects=Prospects: last %s modified +BoxTitleLastModifiedSuppliers=Dobavitelji: Zadnjih %s spremenjenih +BoxTitleLastModifiedCustomers=Stranke: nazadnje %s spremenjeno +BoxTitleLastCustomersOrProspects=Najnovejših %s kupcev in potencialnih kupcev +BoxTitleLastCustomerBills=Najnovejši %s spremenjeni računi strank +BoxTitleLastSupplierBills=Zadnjih %s sprememb prejetih računov +BoxTitleLastModifiedProspects=Obeti: nazadnje %s spremenjeno BoxTitleLastModifiedMembers=Zadnji %s člani BoxTitleLastFicheInter=Zadnje %s spremenjene intervencije -BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid -BoxTitleOldestUnpaidSupplierBills=Vendor Invoices: oldest %s unpaid -BoxTitleCurrentAccounts=Open Accounts: balances -BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception -BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified -BoxMyLastBookmarks=Bookmarks: latest %s +BoxTitleOldestUnpaidCustomerBills=Računi strank: najstarejši %s neplačan +BoxTitleOldestUnpaidSupplierBills=Prejeti računi: najstarejši %s neplačan +BoxTitleCurrentAccounts=Odprti računi: stanja +BoxTitleSupplierOrdersAwaitingReception=Naročila dobaviteljev čakajo na sprejem +BoxTitleLastModifiedContacts=Stiki/naslovi: nazadnje %s spremenjeno +BoxMyLastBookmarks=Zaznamki: najnovejši %s BoxOldestExpiredServices=Najstarejši dejavni potekla storitve +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Zadnji %s najstarejših stikov z aktivnimi zapadlimi storitvami BoxTitleLastActionsToDo=Zadnja %s odprta opravila -BoxTitleLastContracts=Latest %s contracts which were modified -BoxTitleLastModifiedDonations=Latest %s donations which were modified -BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified -BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified -BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified -BoxTitleLastOutstandingBillReached=Customers with maximum outstanding exceeded +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed +BoxTitleLastContracts=Zadnje %s pogodbe, ki so bile spremenjene +BoxTitleLastModifiedDonations=Najnovejše donacije %s, ki so bile spremenjene +BoxTitleLastModifiedExpenses=Zadnja %s poročila o stroških, ki so bila spremenjena +BoxTitleLatestModifiedBoms=Najnovejše %s kosovnice, ki so bile spremenjene +BoxTitleLatestModifiedMos=Najnovejša %s proizvodna naročila, ki so bila spremenjena +BoxTitleLastOutstandingBillReached=Stranke s preseženim maksimalnim stanjem BoxGlobalActivity=Globalna aktivnost (računi, ponudbe, naročila) BoxGoodCustomers=Dobri kupci BoxTitleGoodCustomers=%s dobri kupci -BoxScheduledJobs=Scheduled jobs -BoxTitleFunnelOfProspection=Lead funnel -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s +BoxScheduledJobs=Načrtovana delovna mesta +BoxTitleFunnelOfProspection=Svinčeni lijak +FailedToRefreshDataInfoNotUpToDate=Osvežitev toka RSS ni uspela. Datum zadnje uspešne osvežitve: %s LastRefreshDate=Zadnji datum osvežitve podatkov NoRecordedBookmarks=Ni definiranih zaznamkov. ClickToAdd=Kliknite tukaj za dodajanje. NoRecordedCustomers=Ni vnesenih kupcev NoRecordedContacts=Ni vnesenih kontaktov NoActionsToDo=Ni planiranih aktivnosti -NoRecordedOrders=No recorded sales orders +NoRecordedOrders=Ni evidentiranih prodajnih naročil NoRecordedProposals=Ni vnesenih ponudb -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid vendor invoices -NoModifiedSupplierBills=No recorded vendor invoices +NoRecordedInvoices=Ni evidentiranih računov strank +NoUnpaidCustomerBills=Brez neplačanih računov strank +NoUnpaidSupplierBills=Brez neplačanih prejetih računov +NoModifiedSupplierBills=Prejeti računi niso zabeleženi NoRecordedProducts=Ni vnesenih proizvodov/storitev NoRecordedProspects=Ni vnesenih ponudb NoContractedProducts=Ni pogodbenih proizvodov/storitev NoRecordedContracts=Ni vnesenih pogodb NoRecordedInterventions=Ni zabeleženih intervencij -BoxLatestSupplierOrders=Latest purchase orders -BoxLatestSupplierOrdersAwaitingReception=Latest Purchase Orders (with a pending reception) -NoSupplierOrder=No recorded purchase order -BoxCustomersInvoicesPerMonth=Customer Invoices per month -BoxSuppliersInvoicesPerMonth=Vendor Invoices per month -BoxCustomersOrdersPerMonth=Sales Orders per month -BoxSuppliersOrdersPerMonth=Vendor Orders per month +BoxLatestSupplierOrders=Najnovejša naročila +BoxLatestSupplierOrdersAwaitingReception=Najnovejša naročila (s čakajočim sprejemom) +NoSupplierOrder=Ni zabeleženega naročila +BoxCustomersInvoicesPerMonth=Računi strank na mesec +BoxSuppliersInvoicesPerMonth=Prejeti računi - mesec +BoxCustomersOrdersPerMonth=Prodajna naročila na mesec +BoxSuppliersOrdersPerMonth=Naročila - mesec BoxProposalsPerMonth=Ponudbe na mesec -NoTooLowStockProducts=No products are under the low stock limit -BoxProductDistribution=Products/Services Distribution -ForObject=On %s -BoxTitleLastModifiedSupplierBills=Vendor Invoices: last %s modified -BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified -BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified -BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified -BoxTitleLastModifiedPropals=Latest %s modified proposals -BoxTitleLatestModifiedJobPositions=Latest %s modified job positions -BoxTitleLatestModifiedCandidatures=Latest %s modified job applications +NoTooLowStockProducts=Noben izdelek ni pod omejitvijo nizke zaloge +BoxProductDistribution=Distribucija izdelkov/storitev +ForObject=Na %s +BoxTitleLastModifiedSupplierBills=Prejeti računi: nazadnje %s spremenjeno +BoxTitleLatestModifiedSupplierOrders=Naročila: nazadnje %s spremenjeno +BoxTitleLastModifiedCustomerBills=Računi strank: nazadnje %s spremenjeno +BoxTitleLastModifiedCustomerOrders=Prodajna naročila: nazadnje %s spremenjeno +BoxTitleLastModifiedPropals=Najnovejši %s spremenjeni predlogi +BoxTitleLatestModifiedJobPositions=Najnovejša %s spremenjena delovna mesta +BoxTitleLatestModifiedCandidatures=Najnovejše %s spremenjene prošnje za zaposlitev ForCustomersInvoices=Računi za kupce ForCustomersOrders=Naročila kupcev ForProposals=Ponudbe LastXMonthRolling=Zadnji %s tekoči meseci ChooseBoxToAdd=Dodaj vključnik na nadzorno ploščo -BoxAdded=Widget was added in your dashboard -BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Latest record in accountancy entered manually or without source document -BoxTitleLastManualEntries=%s latest record entered manually or without source document -NoRecordedManualEntries=No manual entries record in accountancy -BoxSuspenseAccount=Count accountancy operation with suspense account -BoxTitleSuspenseAccount=Number of unallocated lines -NumberOfLinesInSuspenseAccount=Number of line in suspense account -SuspenseAccountNotDefined=Suspense account isn't defined -BoxLastCustomerShipments=Last customer shipments -BoxTitleLastCustomerShipments=Latest %s customer shipments -NoRecordedShipments=No recorded customer shipment -BoxCustomersOutstandingBillReached=Customers with oustanding limit reached +BoxAdded=Pripomoček je bil dodan na vašo nadzorno ploščo +BoxTitleUserBirthdaysOfMonth=Rojstni dnevi tega meseca (uporabniki) +BoxLastManualEntries=Zadnji zapis v računovodstvu vnesen ročno ali brez izvornega dokumenta +BoxTitleLastManualEntries=%s najnovejši zapis, vnesen ročno ali brez izvornega dokumenta +NoRecordedManualEntries=V računovodstvu ni evidentiranih ročnih vnosov +BoxSuspenseAccount=Računovodsko poslovanje s prehodnim računom +BoxTitleSuspenseAccount=Število nedodeljenih vrstic +NumberOfLinesInSuspenseAccount=Številka vrstice v prehodnem računu +SuspenseAccountNotDefined=Priročni račun ni definiran +BoxLastCustomerShipments=Zadnje pošiljke strank +BoxTitleLastCustomerShipments=Najnovejše pošiljke %s strank +NoRecordedShipments=Ni zabeležene pošiljke strank +BoxCustomersOutstandingBillReached=Stranke z neporavnanim limitom so dosežene # Pages -UsersHome=Home users and groups -MembersHome=Home Membership -ThirdpartiesHome=Home Thirdparties -TicketsHome=Home Tickets -AccountancyHome=Home Accountancy -ValidatedProjects=Validated projects +UsersHome=Domači uporabniki in skupine +MembersHome=Domače članstvo +ThirdpartiesHome=Domače tretje osebe +TicketsHome=Domače vstopnice +AccountancyHome=Domače računovodstvo +ValidatedProjects=Potrjeni projekti diff --git a/htdocs/langs/sl_SI/cashdesk.lang b/htdocs/langs/sl_SI/cashdesk.lang index 503acc7468a..101d38d9d00 100644 --- a/htdocs/langs/sl_SI/cashdesk.lang +++ b/htdocs/langs/sl_SI/cashdesk.lang @@ -14,9 +14,9 @@ ShoppingCart=Nakupovalni voziček NewSell=Nova prodaja AddThisArticle=Dodaj ta proizvod RestartSelling=Vrni se na prodajo -SellFinished=Sale complete +SellFinished=Prodaja končana PrintTicket=Natisni račun -SendTicket=Send ticket +SendTicket=Pošlji vstopnico NoProductFound=Proizvod ne obstaja ProductFound=Najden proizvod NoArticle=Ni proizvoda @@ -26,111 +26,122 @@ Difference=Razlika TotalTicket=Skupaj račun NoVAT=Prodaja brez DDV Change=Prejeta razlika -BankToPay=Account for payment +BankToPay=Račun za plačilo ShowCompany=Prikaži podjetje ShowStock=Prikaži skladišče DeleteArticle=Kliknite za izbris tega artikla FilterRefOrLabelOrBC=Iskanje (Referenca/Naziv) -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock. +UserNeedPermissionToEditStockToUsePos=Pri ustvarjanju računa zahtevate zmanjšanje zaloge, zato mora imeti uporabnik, ki uporablja POS, dovoljenje za urejanje zaloge. DolibarrReceiptPrinter=Dolibarr tiskalnik računov -PointOfSale=Point of Sale +PointOfSale=Prodajno mesto PointOfSaleShort=POS -CloseBill=Close Bill -Floors=Floors -Floor=Floor -AddTable=Add table -Place=Place -TakeposConnectorNecesary='TakePOS Connector' required -OrderPrinters=Add a button to send the order to some given printers, without payment (for example to send an order to a kitchen) -NotAvailableWithBrowserPrinter=Not available when printer for receipt is set to browser -SearchProduct=Search product +CloseBill=Zapri Bill +Floors=Tla +Floor=Tla +AddTable=Dodaj tabelo +Place=Mesto +TakeposConnectorNecesary=Potreben je 'TakePOS Connector' +OrderPrinters=Dodajte gumb za pošiljanje naročila določenim tiskarnam brez plačila (na primer za pošiljanje naročila v kuhinjo) +NotAvailableWithBrowserPrinter=Ni na voljo, ko je tiskalnik za potrdila nastavljen na brskalnik +SearchProduct=Išči izdelek Receipt=Potrdilo -Header=Header -Footer=Footer -AmountAtEndOfPeriod=Amount at end of period (day, month or year) -TheoricalAmount=Theorical amount -RealAmount=Real amount -CashFence=Cash desk closing -CashFenceDone=Cash desk closing done for the period +Header=Glava +Footer=Noga +AmountAtEndOfPeriod=Znesek ob koncu obdobja (dan, mesec ali leto) +TheoricalAmount=Teoretični znesek +RealAmount=Realni znesek +CashFence=Zapiranje blagajne +CashFenceDone=Zapiranje blagajne opravljeno za obdobje NbOfInvoices=Število računov -Paymentnumpad=Type of Pad to enter payment -Numberspad=Numbers Pad -BillsCoinsPad=Coins and banknotes Pad -DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr -TakeposNeedsCategories=TakePOS needs at least one product categorie to work -TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS needs at least 1 product category under the category %s to work -OrderNotes=Can add some notes to each ordered items -CashDeskBankAccountFor=Default account to use for payments in -NoPaimementModesDefined=No paiment mode defined in TakePOS configuration -TicketVatGrouped=Group VAT by rate in tickets|receipts -AutoPrintTickets=Automatically print tickets|receipts -PrintCustomerOnReceipts=Print customer on tickets|receipts -EnableBarOrRestaurantFeatures=Enable features for Bar or Restaurant -ConfirmDeletionOfThisPOSSale=Do your confirm the deletion of this current sale ? -ConfirmDiscardOfThisPOSSale=Do you want to discard this current sale ? +Paymentnumpad=Vrsta ploščice za vnos plačila +Numberspad=Številčna ploščica +BillsCoinsPad=Podloga za kovance in bankovce +DolistorePosCategory=TakePOS moduli in druge POS rešitve za Dolibarr +TakeposNeedsCategories=TakePOS za delovanje potrebuje vsaj eno kategorijo izdelkov +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS za delovanje potrebuje vsaj 1 kategorijo izdelkov v kategoriji %s +OrderNotes=Vsakemu naročenemu artiklu lahko dodate opombe +CashDeskBankAccountFor=Privzeti račun za uporabo za plačila +NoPaimementModesDefined=V konfiguraciji TakePOS ni določen način plačila +TicketVatGrouped=Združite DDV po stopnji v vstopnicah | potrdilih +AutoPrintTickets=Samodejno natisnite potrdila o vstopnicah +PrintCustomerOnReceipts=Natisnite kupca na vstopnici | potrdila +EnableBarOrRestaurantFeatures=Omogoči funkcije za bar ali restavracijo +ConfirmDeletionOfThisPOSSale=Ali potrjujete izbris te trenutne prodaje? +ConfirmDiscardOfThisPOSSale=Ali želite zavreči to trenutno prodajo? History=Zgodovina -ValidateAndClose=Validate and close +ValidateAndClose=Potrdite in zaprite Terminal=Terminal -NumberOfTerminals=Number of Terminals -TerminalSelect=Select terminal you want to use: -POSTicket=POS Ticket -POSTerminal=POS Terminal -POSModule=POS Module -BasicPhoneLayout=Use basic layout for phones -SetupOfTerminalNotComplete=Setup of terminal %s is not complete -DirectPayment=Direct payment -DirectPaymentButton=Add a "Direct cash payment" button -InvoiceIsAlreadyValidated=Invoice is already validated -NoLinesToBill=No lines to bill -CustomReceipt=Custom Receipt -ReceiptName=Receipt Name -ProductSupplements=Manage supplements of products -SupplementCategory=Supplement category -ColorTheme=Color theme -Colorful=Colorful +NumberOfTerminals=Število terminalov +TerminalSelect=Izberite terminal, ki ga želite uporabiti: +POSTicket=POS vstopnica +POSTerminal=POS terminal +POSModule=POS modul +BasicPhoneLayout=Uporabite osnovno postavitev za telefone +SetupOfTerminalNotComplete=Nastavitev terminala %s ni dokončana +DirectPayment=Neposredno plačilo +DirectPaymentButton=Dodajte gumb »Neposredno gotovinsko plačilo«. +InvoiceIsAlreadyValidated=Račun je že potrjen +NoLinesToBill=Ni vrstic za obračun +CustomReceipt=Račun po meri +ReceiptName=Ime potrdila +ProductSupplements=Upravljajte dodatke k izdelkom +SupplementCategory=Dodatna kategorija +ColorTheme=Barvna tema +Colorful=Barvita HeadBar=Head Bar -SortProductField=Field for sorting products +SortProductField=Polje za sortiranje izdelkov Browser=Iskalnik -BrowserMethodDescription=Simple and easy receipt printing. Only a few parameters to configure the receipt. Print via browser. -TakeposConnectorMethodDescription=External module with extra features. Posibility to print from the cloud. -PrintMethod=Print method -ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. The server hosting the application can't be in the Cloud (must be able to reach the printers in your network). -ByTerminal=By terminal -TakeposNumpadUsePaymentIcon=Use icon instead of text on payment buttons of numpad -CashDeskRefNumberingModules=Numbering module for POS sales -CashDeskGenericMaskCodes6 =
    {TN} tag is used to add the terminal number -TakeposGroupSameProduct=Group same products lines -StartAParallelSale=Start a new parallel sale -SaleStartedAt=Sale started at %s -ControlCashOpening=Open the "Control cash" popup when opening the POS -CloseCashFence=Close cash desk control -CashReport=Cash report -MainPrinterToUse=Main printer to use -OrderPrinterToUse=Order printer to use -MainTemplateToUse=Main template to use -OrderTemplateToUse=Order template to use -BarRestaurant=Bar Restaurant -AutoOrder=Order by the customer himself -RestaurantMenu=Menu -CustomerMenu=Customer menu -ScanToMenu=Scan QR code to see the menu -ScanToOrder=Scan QR code to order -Appearance=Appearance -HideCategoryImages=Hide Category Images -HideProductImages=Hide Product Images -NumberOfLinesToShow=Number of lines of images to show -DefineTablePlan=Define tables plan -GiftReceiptButton=Add a "Gift receipt" button -GiftReceipt=Gift receipt -ModuleReceiptPrinterMustBeEnabled=Module Receipt printer must have been enabled first -AllowDelayedPayment=Allow delayed payment -PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts -WeighingScale=Weighing scale -ShowPriceHT = Display the column with the price excluding tax (on screen) -ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt) -CustomerDisplay=Customer display -SplitSale=Split sale -PrintWithoutDetailsButton=Add "Print without details" button -PrintWithoutDetailsLabelDefault=Line label by default on printing without details -PrintWithoutDetails=Print without details -YearNotDefined=Year is not defined +BrowserMethodDescription=Enostavno in enostavno tiskanje računov. Samo nekaj parametrov za konfiguracijo računa. Tiskanje prek brskalnika. +TakeposConnectorMethodDescription=Zunanji modul z dodatnimi funkcijami. Možnost tiskanja iz oblaka. +PrintMethod=Način tiskanja +ReceiptPrinterMethodDescription=Zmogljiva metoda z veliko parametri. Popolnoma prilagodljiv s predlogami. Strežnik, ki gosti aplikacijo, ne more biti v oblaku (mora imeti možnost doseči tiskalnike v vašem omrežju). +ByTerminal=S terminalom +TakeposNumpadUsePaymentIcon=Uporabite ikono namesto besedila na gumbih za plačilo na številčnici +CashDeskRefNumberingModules=Modul oštevilčenja za POS prodajo +CashDeskGenericMaskCodes6 =
    {TN} oznaka se uporablja za dodajanje številke terminala +TakeposGroupSameProduct=Združi iste linije izdelkov +StartAParallelSale=Začnite novo vzporedno prodajo +SaleStartedAt=Prodaja se je začela pri %s +ControlCashOpening=Ko odprete POS, odprite pojavno okno "Kontrolna blagajna". +CloseCashFence=Zapri nadzor blagajne +CashReport=Blagajniško poročilo +MainPrinterToUse=Glavni tiskalnik za uporabo +OrderPrinterToUse=Naročite tiskalnik za uporabo +MainTemplateToUse=Glavna predloga za uporabo +OrderTemplateToUse=Predloga naročila za uporabo +BarRestaurant=Bar Restavracija +AutoOrder=Naročilo naročnik sam +RestaurantMenu=meni +CustomerMenu=Meni za stranke +ScanToMenu=Skenirajte kodo QR, da vidite meni +ScanToOrder=Za naročilo skenirajte kodo QR +Appearance=Videz +HideCategoryImages=Skrij slike kategorij +HideProductImages=Skrij slike izdelkov +NumberOfLinesToShow=Število vrstic slik za prikaz +DefineTablePlan=Določite načrt tabel +GiftReceiptButton=Dodajte gumb »Potvrda o prejemu darila«. +GiftReceipt=Darilni račun +ModuleReceiptPrinterMustBeEnabled=Tiskalnik računov modula mora biti najprej omogočen +AllowDelayedPayment=Dovolite odloženo plačilo +PrintPaymentMethodOnReceipts=Natisnite način plačila na vstopnicah | +WeighingScale=Tehtnica +ShowPriceHT = Prikaz stolpca s ceno brez davka (na zaslonu) +ShowPriceHTOnReceipt = Prikaz stolpca s ceno brez davka (na računu) +CustomerDisplay=Zaslon za stranke +SplitSale=Razprodaja +PrintWithoutDetailsButton=Dodajte gumb »Natisni brez podrobnosti«. +PrintWithoutDetailsLabelDefault=Oznaka vrstice je privzeta pri tiskanju brez podrobnosti +PrintWithoutDetails=Tisk brez podrobnosti +YearNotDefined=Leto ni definirano +TakeposBarcodeRuleToInsertProduct=Pravilo črtne kode za vstavljanje izdelka +TakeposBarcodeRuleToInsertProductDesc=Pravilo za ekstrahiranje reference izdelka + količine iz skenirane črtne kode.
    Če je polje prazno (privzeta vrednost), bo aplikacija uporabila skenirano celotno črtno kodo za iskanje izdelka.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +AlreadyPrinted=Že natisnjeno +HideCategories=Skrij kategorije +HideStockOnLine=Skrij zalogo na spletu +ShowOnlyProductInStock=Pokažite izdelke na zalogi +ShowCategoryDescription=Pokaži opis kategorije +ShowProductReference=Prikaži referenco izdelkov +UsePriceHT=Cena uporabe brez davki in ne cena vklj. davki +TerminalName=Terminal %s +TerminalNameDesc=Ime terminala diff --git a/htdocs/langs/sl_SI/categories.lang b/htdocs/langs/sl_SI/categories.lang index 1bb1f417b81..bea46a45420 100644 --- a/htdocs/langs/sl_SI/categories.lang +++ b/htdocs/langs/sl_SI/categories.lang @@ -1,25 +1,25 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Značka/kategorija Rubriques=Značke/kategorije -RubriquesTransactions=Tags/Categories of transactions +RubriquesTransactions=Oznake/kategorije transakcij categories=značke/kategorije -NoCategoryYet=No tag/category of this type has been created +NoCategoryYet=Ustvarjena ni bila nobena oznaka/kategorija te vrste In=V AddIn=Dodaj v modify=spremeni Classify=Razvrsti CategoriesArea=Področje značk/kategorij -ProductsCategoriesArea=Product/Service tags/categories area -SuppliersCategoriesArea=Vendor tags/categories area -CustomersCategoriesArea=Customer tags/categories area -MembersCategoriesArea=Member tags/categories area -ContactsCategoriesArea=Contact tags/categories area -AccountsCategoriesArea=Bank account tags/categories area -ProjectsCategoriesArea=Project tags/categories area -UsersCategoriesArea=User tags/categories area -SubCats=Sub-categories +ProductsCategoriesArea=Območje oznak izdelkov/storitev/kategorij +SuppliersCategoriesArea=Skupine dobaviteljev +CustomersCategoriesArea=Področje oznak/kategorij strank +MembersCategoriesArea=Območje oznak/kategorij članov +ContactsCategoriesArea=Področje kontaktnih oznak/kategorij +AccountsCategoriesArea=Območje oznak/kategorij bančnih računov +ProjectsCategoriesArea=Območje oznak/kategorij projekta +UsersCategoriesArea=Področje uporabniških oznak/kategorij +SubCats=Podkategorije CatList=Seznam značk/kategorij -CatListAll=List of tags/categories (all types) +CatListAll=Seznam oznak/kategorij (vse vrste) NewCategory=Nova značka/kategorija ModifCat=Spremeni značko/kategorijo CatCreated=Kreirana značka/kategorija @@ -28,73 +28,78 @@ CreateThisCat=Kreiraj to značko/kategorijo NoSubCat=Ni podkategorije. SubCatOf=Podkategorija FoundCats=Najdi značke/kategorije -ImpossibleAddCat=Impossible to add the tag/category %s +ImpossibleAddCat=Oznake/kategorije %s ni mogoče dodati WasAddedSuccessfully=%s je bil uspešno dodan. ObjectAlreadyLinkedToCategory=Element je že povezan na to značko/kategorijo. ProductIsInCategories=Izdelek / storitev je povezana z naslednjimi oznakami / kategorijami -CompanyIsInCustomersCategories=Ta tretja stranka je povezana z naslednjimi strankami / možnosti Oznake / kategorije -CompanyIsInSuppliersCategories=This third party is linked to following vendors tags/categories +CompanyIsInCustomersCategories=Partner je povezan z naslednjimi skupinami kupcev/potencialnih kupcev +CompanyIsInSuppliersCategories=Dobavitelj je povezan z naslednjimi skupinami MemberIsInCategories=Ta član je povezana z naslednjimi člani Oznake / kategorije ContactIsInCategories=Ta kontakt je povezan z naslednjimi značkami/kategorijami ProductHasNoCategory=Ta proizvod/storitev ni vključen v nobenoznačko/ kategorijo -CompanyHasNoCategory=This third party is not in any tags/categories +CompanyHasNoCategory=Partner ni v nobeni oznaki/kategoriji MemberHasNoCategory=Ta član ni v nobeni znački/kategoriji ContactHasNoCategory=Ta kontakt ni v nobeni znački/kategoriji -ProjectHasNoCategory=This project is not in any tags/categories +ProjectHasNoCategory=Ta projekt ni v nobeni oznaki/kategoriji ClassifyInCategory=Dodaj značko / kategorijo +RemoveCategory=Odstrani kategorijo NotCategorized=Brez značke/kategorije CategoryExistsAtSameLevel=Kategorija s to referenco že obstaja ContentsVisibleByAllShort=Vsebina vidna vsem ContentsNotVisibleByAllShort=Vsebina ni vidna vsem DeleteCategory=Briši značko/kategorijo -ConfirmDeleteCategory=Are you sure you want to delete this tag/category? +ConfirmDeleteCategory=Ali ste prepričani, da želite izbrisati to oznako/kategorijo? NoCategoriesDefined=Ni določena nobena značka/kategorija -SuppliersCategoryShort=Vendors tag/category +SuppliersCategoryShort=Skupina dobavitelja CustomersCategoryShort=Stranke značka/kategorija ProductsCategoryShort=Proizvodi značka/kategorija MembersCategoryShort=Člani značka/kategorija -SuppliersCategoriesShort=Vendors tags/categories +SuppliersCategoriesShort=Skupine dobaviteljev CustomersCategoriesShort=Značke/kategorije kupcev -ProspectsCategoriesShort=Značke/kategorije možnih strank -CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories +ProspectsCategoriesShort=Skupine potencialnih kupcev +CustomersProspectsCategoriesShort=Cust./Prosp. oznake/kategorije ProductsCategoriesShort=Značke/kategorije proizvodov MembersCategoriesShort=Značke/kategorije članov ContactCategoriesShort=Značke/kategorije kontaktov -AccountsCategoriesShort=Accounts tags/categories -ProjectsCategoriesShort=Projects tags/categories -UsersCategoriesShort=Users tags/categories -StockCategoriesShort=Warehouse tags/categories -ThisCategoryHasNoItems=This category does not contain any items. +AccountsCategoriesShort=Oznake/kategorije računov +ProjectsCategoriesShort=Oznake/kategorije projektov +UsersCategoriesShort=Uporabniške oznake/kategorije +StockCategoriesShort=Skladiščne oznake/kategorije +ThisCategoryHasNoItems=Ta kategorija ne vsebuje nobenih elementov. CategId=ID značke/kategorije -ParentCategory=Parent tag/category -ParentCategoryLabel=Label of parent tag/category -CatSupList=List of vendors tags/categories -CatCusList=List of customers/prospects tags/categories +ParentCategory=Nadrejena oznaka/kategorija +ParentCategoryID=ID nadrejene oznake/kategorije +ParentCategoryLabel=Oznaka nadrejene oznake/kategorije +CatSupList=Seznam skupin dobaviteljev +CatCusList=Seznam strank/potencialnih oznak/kategorij CatProdList=Seznam značk/kategorij proizvodov CatMemberList=Seznam značk/kategorij članov -CatContactList=List of contacts tags/categories -CatProjectsList=List of projects tags/categories -CatUsersList=List of users tags/categories -CatSupLinks=Links between vendors and tags/categories +CatContactList=Seznam oznak/kategorij stikov +CatProjectsList=Seznam oznak/kategorij projektov +CatUsersList=Seznam uporabniških oznak/kategorij +CatSupLinks=Povezave skupin z dobavitelji CatCusLinks=Povezave med kupci/možnimi strankami in značkami/kategorijami -CatContactsLinks=Links between contacts/addresses and tags/categories +CatContactsLinks=Povezave med stiki/naslovi in oznakami/kategorijami CatProdLinks=Povezave med proizvodi/storitvami in značkami/kategorijami CatMembersLinks=Povezave med člani in značkami/kategorijami -CatProjectsLinks=Links between projects and tags/categories -CatUsersLinks=Links between users and tags/categories +CatProjectsLinks=Povezave med projekti in oznakami/kategorijami +CatUsersLinks=Povezave med uporabniki in oznakami/kategorijami DeleteFromCat=Odstrani iz značk/kategorije ExtraFieldsCategories=Koplementarni atributi CategoriesSetup=Nastavitev značk/kategorij CategorieRecursiv=Avtomatsko poveži z nadrejeno značko/kategorijo -CategorieRecursivHelp=If option is on, when you add a product into a subcategory, product will also be added into the parent category. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Dodaj sledeči produkt/storitev -AddCustomerIntoCategory=Assign category to customer -AddSupplierIntoCategory=Assign category to supplier +AddCustomerIntoCategory=Dodelite kategorijo stranki +AddSupplierIntoCategory=Dodelite kategorijo dobavitelju +AssignCategoryTo=Dodelite kategorijo ShowCategory=Pokaži značko/kategorijo ByDefaultInList=Privzeto na seznamu -ChooseCategory=Choose category -StocksCategoriesArea=Warehouse Categories -ActionCommCategoriesArea=Event Categories -WebsitePagesCategoriesArea=Page-Container Categories -KnowledgemanagementsCategoriesArea=KM article Categories -UseOrOperatorForCategories=Use 'OR' operator for categories +ChooseCategory=Izberite kategorijo +StocksCategoriesArea=Skladiščne kategorije +TicketsCategoriesArea=Kategorije vstopnic +ActionCommCategoriesArea=Kategorije dogodkov +WebsitePagesCategoriesArea=Kategorije vsebnika strani +KnowledgemanagementsCategoriesArea=KM članek Kategorije +UseOrOperatorForCategories=Za kategorije uporabite operator 'ALI' +AddObjectIntoCategory=Dodajte predmet v kategorijo diff --git a/htdocs/langs/sl_SI/commercial.lang b/htdocs/langs/sl_SI/commercial.lang index e13f6551d2a..ca296f574c9 100644 --- a/htdocs/langs/sl_SI/commercial.lang +++ b/htdocs/langs/sl_SI/commercial.lang @@ -3,8 +3,8 @@ Commercial=Prodaja CommercialArea=Področje prodaje Customer=Kupec Customers=Kupci -Prospect=Možna stranka -Prospects=Možne stranke +Prospect=Potencialni kupec +Prospects=Potencialni kupci DeleteAction=Brisanje dogodka NewAction=Nov dogodek AddAction=Ustvari dogodek @@ -19,7 +19,7 @@ ShowTask=Prikaži naloge ShowAction=Prikaži aktivnosti ActionsReport=Poročilo o aktivnostih ThirdPartiesOfSaleRepresentative=Partnerji s prodajnimi predstavniki -SaleRepresentativesOfThirdParty=Prodajni predstavniki tretje osebe +SaleRepresentativesOfThirdParty=Prodajni predstavniki partnerja SalesRepresentative=Prodajni predstavnik SalesRepresentatives=Prodajni predstavniki SalesRepresentativeFollowUp=Prodajni predstavnik (nadaljevanje) @@ -46,7 +46,7 @@ LastProspectNeverContacted=Nikoli kontaktiran LastProspectToContact=Kontaktirati LastProspectContactInProcess=Kontakt v teku LastProspectContactDone=Kontakt izveden -ActionAffectedTo=Aktivnost, ki se tiče +ActionAffectedTo=Dogodek je dodeljen ActionDoneBy=Aktivnost izvedel ActionAC_TEL=Telefonski klic ActionAC_FAX=Poslati faks @@ -62,19 +62,28 @@ ActionAC_EMAILING=Pošlji skupinski e-mail ActionAC_COM=Pošlji prodajno poročilo po e-pošti ActionAC_SHIP=Pošlji pošiljko po pošti ActionAC_SUP_ORD=Pošlji nabavno naročilo po e-pošti -ActionAC_SUP_INV=Prejeto fakturo poslati po pošti +ActionAC_SUP_INV=Prejeti račun se pošlje po pošti ActionAC_OTH=Ostalo -ActionAC_OTH_AUTO=Avtomatsko vnešeni dogodki +ActionAC_OTH_AUTO=Drugi avto ActionAC_MANUAL=Ročno vnešeni dogodki ActionAC_AUTO=Avtomatsko vnešeni dogodki -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Ostalo +ActionAC_EVENTORGANIZATION=Organizacija dogodkov dogodki Stats=Statistika prodaje StatusProsp=Status možne stranke DraftPropals=Osnutek komercialne ponudbe NoLimit=Brez omejitev ToOfferALinkForOnlineSignature=Povezava do online podpisa -WelcomeOnOnlineSignaturePage=Dobrodošli na strani za prejem ponudb od %s -ThisScreenAllowsYouToSignDocFrom=Na tem ekranu lahko sprejemate, podpisujete ali zavračate ponudbe -ThisIsInformationOnDocumentToSign=Informacije na dokumentu, ki jih je potrebno potrditi ali zavrniti +WelcomeOnOnlineSignaturePageProposal=Dobrodošli na strani za prejem ponudb od %s +WelcomeOnOnlineSignaturePageContract=Dobrodošli na strani za podpis PDF pogodbe %s +WelcomeOnOnlineSignaturePageFichinter=Dobrodošli na %s Intervention PDF strani za podpisovanje +ThisScreenAllowsYouToSignDocFromProposal=Na tem ekranu lahko sprejemate, podpisujete ali zavračate ponudbe +ThisScreenAllowsYouToSignDocFromContract=Ta zaslon vam omogoča podpis pogodbe v formatu PDF na spletu. +ThisScreenAllowsYouToSignDocFromFichinter=Ta zaslon vam omogoča spletno podpisovanje intervencije v formatu PDF. +ThisIsInformationOnDocumentToSignProposal=Informacije na dokumentu, ki jih je potrebno potrditi ali zavrniti +ThisIsInformationOnDocumentToSignContract=To so informacije o pogodbi za podpis +ThisIsInformationOnDocumentToSignFichinter=To je informacija o intervenciji v podpis SignatureProposalRef=Podpis ponudbe %s +SignatureContractRef=Podpis pogodbe %s +SignatureFichinterRef=Podpis intervencije %s FeatureOnlineSignDisabled=Funkcionalnost elektronskega podpisovanja je onemogočena, oziroma je dokument nastal, preden je bilo omogočeno elektronsko podpisovanje diff --git a/htdocs/langs/sl_SI/companies.lang b/htdocs/langs/sl_SI/companies.lang index 48c802b4311..f3f446280b3 100644 --- a/htdocs/langs/sl_SI/companies.lang +++ b/htdocs/langs/sl_SI/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Naslov State=Dežela/Provinca +StateId=State ID StateCode=State/Province code StateShort=Država Region=Regija Region-State=Region - State Country=Država CountryCode=Koda države -CountryId=ID države +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL== ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Ostali ProfId6ShortCM=- ProfId1CO== diff --git a/htdocs/langs/sl_SI/compta.lang b/htdocs/langs/sl_SI/compta.lang index a00f3f59709..b05365e8868 100644 --- a/htdocs/langs/sl_SI/compta.lang +++ b/htdocs/langs/sl_SI/compta.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - compta -MenuFinancial=Billing | Payment +MenuFinancial=Obračunavanje | Plačilo TaxModuleSetupToModifyRules=Pojdite na nastavitev Davčnega modula za spremembo kalkulacijskih pravil -TaxModuleSetupToModifyRulesLT=Go to Company setup to modify rules for calculation +TaxModuleSetupToModifyRulesLT=Pojdite na Nastavitev podjetja , da spremenite pravila za izračun OptionMode=Opcija za računovodstvo OptionModeTrue=Opcija Input-Output OptionModeVirtual=Opcija Kredit-Debit @@ -9,207 +9,211 @@ OptionModeTrueDesc=V tem kontekstu je letni promet kalkuliran na osnovi plačil OptionModeVirtualDesc=V tem kontekstu je letni promet kalkuliran na osnovi računov (datumov potrditve). Ko računi zapadejo, ne glede ali so bili plačani ali ne, se upoštevajo v prikazu letnega prometa. FeatureIsSupportedInInOutModeOnly=Funkcija je na voljo samo pri računovodskem načinu KREDIT-DEBIT (Glejte konfiguracijo računovodskega modula) VATReportBuildWithOptionDefinedInModule=Tukaj prikazani zneski so preračunani po pravilih, ki so definirana v nastavitvah modula davkov. -LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Company setup. +LTReportBuildWithOptionDefinedInModule=Zneski, prikazani tukaj, so izračunani z uporabo pravil, ki jih določi nastavitev podjetja. Param=Nastavitve -RemainingAmountPayment=Amount payment remaining: +RemainingAmountPayment=Preostali znesek plačila: Account=Konto -Accountparent=Parent account -Accountsparent=Parent accounts +Accountparent=Nadrejeni račun +Accountsparent=Računi staršev Income=Prejemek Outcome=Izdatek MenuReportInOut=Prejemek / Izdatek -ReportInOut=Balance of income and expenses -ReportTurnover=Turnover invoiced -ReportTurnoverCollected=Turnover collected +ReportInOut=Bilanca prihodkov in odhodkov +ReportTurnover=Promet fakturiran +ReportTurnoverCollected=Zbrani promet PaymentsNotLinkedToInvoice=Plačila niso vezana na noben račun, niti na partnerja PaymentsNotLinkedToUser=Plačila niso vezana na nobenega uporabnika Profit=Dobiček -AccountingResult=Accounting result -BalanceBefore=Balance (before) +AccountingResult=Računovodski rezultat +BalanceBefore=Stanje (prej) Balance=Bilanca Debit=Debit Credit=Kredit +AccountingDebit=Debetne +AccountingCredit=Credit Piece=Računovodska dokumentacija AmountHTVATRealReceived=Neto priliv AmountHTVATRealPaid=Neto odliv -VATToPay=Tax sales -VATReceived=Tax received -VATToCollect=Tax purchases -VATSummary=Tax monthly -VATBalance=Tax Balance -VATPaid=Tax paid -LT1Summary=Tax 2 summary -LT2Summary=Tax 3 summary -LT1SummaryES=RE Balance +VATToPay=Davčna prodaja +VATReceived=Prejeti davek +VATToCollect=Davčni nakupi +VATSummary=Davek mesečno +VATBalance=Davčna bilanca +VATPaid=Plačan davek +LT1Summary=Tax 2 povzetek +LT2Summary=Davek 3 povzetek +LT1SummaryES=RE ravnotežje LT2SummaryES=IRPF Balance -LT1SummaryIN=CGST Balance -LT2SummaryIN=SGST Balance -LT1Paid=Tax 2 paid -LT2Paid=Tax 3 paid -LT1PaidES=RE Paid +LT1SummaryIN=CGST bilanca +LT2SummaryIN=Stanje SGST +LT1Paid=Plačan davek 2 +LT2Paid=Plačan davek 3 +LT1PaidES=RE Plačano LT2PaidES=IRPF Plačan -LT1PaidIN=CGST Paid -LT2PaidIN=SGST Paid -LT1Customer=Tax 2 sales -LT1Supplier=Tax 2 purchases -LT1CustomerES=RE sales -LT1SupplierES=RE purchases -LT1CustomerIN=CGST sales -LT1SupplierIN=CGST purchases -LT2Customer=Tax 3 sales -LT2Supplier=Tax 3 purchases +LT1PaidIN=CGST plačan +LT2PaidIN=SGST plačan +LT1Customer=Davek 2 od prodaje +LT1Supplier=Davek 2 nakupa +LT1CustomerES=RE prodaja +LT1SupplierES=RE nakupi +LT1CustomerIN=CGST prodaja +LT1SupplierIN=nakupi CGST +LT2Customer=Davek 3 od prodaje +LT2Supplier=Obdavčite 3 nakupe LT2CustomerES=IRPF prodaja LT2SupplierES=IRPF nakupi -LT2CustomerIN=SGST sales -LT2SupplierIN=SGST purchases +LT2CustomerIN=Prodaja SGST +LT2SupplierIN=nakupi SGST VATCollected=Zbir DDV StatusToPay=Za plačilo SpecialExpensesArea=Področje za posebna plačila -VATExpensesArea=Area for all TVA payments -SocialContribution=Social or fiscal tax -SocialContributions=Social or fiscal taxes -SocialContributionsDeductibles=Deductible social or fiscal taxes -SocialContributionsNondeductibles=Nondeductible social or fiscal taxes -DateOfSocialContribution=Date of social or fiscal tax -LabelContrib=Label contribution -TypeContrib=Type contribution +VATExpensesArea=Prostor za vsa TVA plačila +SocialContribution=Socialni ali davčni davek +SocialContributions=Socialni ali davčni davki +SocialContributionsDeductibles=Odbitni socialni ali davčni davki +SocialContributionsNondeductibles=Neodbitni socialni ali davčni davki +DateOfSocialContribution=Datum socialnega ali davčnega davka +LabelContrib=Prispevek založbe +TypeContrib=Vrsta prispevka MenuSpecialExpenses=Posebni stroški MenuTaxAndDividends=Davki in dividende -MenuSocialContributions=Social/fiscal taxes -MenuNewSocialContribution=New social/fiscal tax -NewSocialContribution=New social/fiscal tax -AddSocialContribution=Add social/fiscal tax -ContributionsToPay=Social/fiscal taxes to pay -AccountancyTreasuryArea=Billing and payment area +MenuSocialContributions=Socialni/fiskalni davki +MenuNewSocialContribution=Nov socialni/fiskalni davek +NewSocialContribution=Nov socialni/fiskalni davek +AddSocialContribution=Dodajte socialni/davčni davek +ContributionsToPay=Socialni/davčni davki, ki jih je treba plačati +AccountancyTreasuryArea=Obračunsko in plačilno področje NewPayment=Novo plačilo PaymentCustomerInvoice=Plačilo računa kupca -PaymentSupplierInvoice=vendor invoice payment +PaymentSupplierInvoice=plačilo prejetega računa PaymentSocialContribution=Plačilo socialnega/fiskalnega davka PaymentVat=Plačilo DDV -AutomaticCreationPayment=Automatically record the payment +AutomaticCreationPayment=Samodejno zabeleži plačilo ListPayment=Seznam plačil ListOfCustomerPayments=Seznam plačil kupcev -ListOfSupplierPayments=List of vendor payments +ListOfSupplierPayments=Seznam plačil prodajalca DateStartPeriod=Začetni datum obdobja DateEndPeriod=Končni datum obdobja -newLT1Payment=New tax 2 payment -newLT2Payment=New tax 3 payment -LT1Payment=Tax 2 payment -LT1Payments=Tax 2 payments -LT2Payment=Tax 3 payment -LT2Payments=Tax 3 payments -newLT1PaymentES=New RE payment +newLT1Payment=Novo plačilo davka 2 +newLT2Payment=Novo plačilo davka 3 +LT1Payment=Plačilo davka 2 +LT1Payments=Plačila davka 2 +LT2Payment=Plačilo davka 3 +LT2Payments=Plačila davka 3 +newLT1PaymentES=Novo plačilo RE newLT2PaymentES=Nova IRPF plačilo -LT1PaymentES=RE Payment -LT1PaymentsES=RE Payments +LT1PaymentES=RE Plačilo +LT1PaymentsES=RE plačila LT2PaymentES=IRPF Plačilo LT2PaymentsES=Plačila IRPF -VATPayment=Sales tax payment -VATPayments=Sales tax payments -VATDeclarations=VAT declarations -VATDeclaration=VAT declaration -VATRefund=Sales tax refund -NewVATPayment=New sales tax payment -NewLocalTaxPayment=New tax %s payment +VATPayment=Plačilo prometnega davka +VATPayments=Plačilo prometnega davka +VATDeclarations=prijave DDV +VATDeclaration=napoved DDV +VATRefund=Vračilo prometnega davka +NewVATPayment=Novo plačilo prometnega davka +NewLocalTaxPayment=Novo plačilo davka %s Refund=Vračilo -SocialContributionsPayments=Social/fiscal taxes payments +SocialContributionsPayments=Plačila socialnih/davčnih davkov ShowVatPayment=Prikaži plačilo DDV TotalToPay=Skupaj za plačilo -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted on %s and filtered on 1 bank account (with no other filters) -CustomerAccountancyCode=Customer accounting code -SupplierAccountancyCode=Vendor accounting code -CustomerAccountancyCodeShort=Cust. account. code -SupplierAccountancyCodeShort=Sup. account. code +BalanceVisibilityDependsOnSortAndFilters=Stanje je vidno na tem seznamu samo, če je tabela razvrščena na %s in filtrirana na 1 bančnem računu (brez drugih filtrov) +CustomerAccountancyCode=Računovodska šifra stranke +SupplierAccountancyCode=Računovodska oznaka dobavitelja +CustomerAccountancyCodeShort=Cust. račun. Koda +SupplierAccountancyCodeShort=Sup. račun. Koda AccountNumber=Številka konta NewAccountingAccount=Nov konto -Turnover=Turnover invoiced -TurnoverCollected=Turnover collected -SalesTurnoverMinimum=Minimum turnover -ByExpenseIncome=By expenses & incomes +Turnover=Promet fakturiran +TurnoverCollected=Zbrani promet +SalesTurnoverMinimum=Minimalni promet +ByExpenseIncome=Po odhodkih in prihodkih ByThirdParties=Po partnerjih ByUserAuthorOfInvoice=Po avtorjih računov CheckReceipt=Kontrola priliva CheckReceiptShort=Kontrola prilivov -LastCheckReceiptShort=Latest %s check receipts +LastCheckReceiptShort=Najnovejša potrdila o preverjanju %s NewCheckReceipt=Nov popust NewCheckDeposit=Nova kontrola depozita NewCheckDepositOn=Nova kontrola depozita na račun: %s -NoWaitingChecks=No checks awaiting deposit. -DateChequeReceived=Check receiving date -NbOfCheques=No. of checks -PaySocialContribution=Pay a social/fiscal tax -PayVAT=Pay a VAT declaration -PaySalary=Pay a salary card -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid ? -ConfirmPayVAT=Are you sure you want to classify this VAT declaration as paid ? -ConfirmPaySalary=Are you sure you want to classify this salary card as paid? -DeleteSocialContribution=Delete a social or fiscal tax payment -DeleteVAT=Delete a VAT declaration -DeleteSalary=Delete a salary card -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? -ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? -ExportDataset_tax_1=Social and fiscal taxes and payments -CalcModeVATDebt=Mode %sVAT on commitment accounting%s. -CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. -CalcModeDebt=Analysis of known recorded documents even if they are not yet accounted in ledger. -CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger. -CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table. -CalcModeLT1= Mode %sRE on customer invoices - suppliers invoices%s -CalcModeLT1Debt=Mode %sRE on customer invoices%s -CalcModeLT1Rec= Mode %sRE on suppliers invoices%s -CalcModeLT2= Mode %sIRPF on customer invoices - suppliers invoices%s -CalcModeLT2Debt=Mode %sIRPF on customer invoices%s -CalcModeLT2Rec= Mode %sIRPF on suppliers invoices%s +NoWaitingChecks=Ni čekov, ki čakajo na polog. +DateChequeReceived=Preverite datum prejema +NbOfCheques=Št. pregledov +PaySocialContribution=Plačajte socialni/fiskalni davek +PayVAT=Plačajte napoved DDV +PaySalary=Izplačajte plačno kartico +ConfirmPaySocialContribution=Ali ste prepričani, da želite ta socialni ali davčni davek označiti kot plačanega? +ConfirmPayVAT=Ali ste prepričani, da želite to napoved DDV označiti kot plačano? +ConfirmPaySalary=Ali ste prepričani, da želite to plačno kartico označiti kot plačano? +DeleteSocialContribution=Izbrišite plačilo socialnega ali davčnega davka +DeleteVAT=Brisanje napovedi DDV +DeleteSalary=Brisanje plačne kartice +DeleteVariousPayment=Izbrišite različno plačilo +ConfirmDeleteSocialContribution=Ali ste prepričani, da želite izbrisati to plačilo socialnega/fiskalnega davka? +ConfirmDeleteVAT=Ali ste prepričani, da želite izbrisati to napoved DDV? +ConfirmDeleteSalary=Ali ste prepričani, da želite izbrisati to plačo? +ConfirmDeleteVariousPayment=Ali ste prepričani, da želite izbrisati ta različna plačila? +ExportDataset_tax_1=Socialni in davčni davki in plačila +CalcModeVATDebt=Način %sDDV pri obračunavanju obveznosti%s . +CalcModeVATEngagement=Način %sDDV na dohodke-odhodkes%s . +CalcModeDebt=Analiza znanih evidentiranih dokumentov, tudi če še niso evidentirani v knjigi. +CalcModeEngagement=Analiza znanih evidentiranih plačil, tudi če še niso vknjižena v Ledger. +CalcModeBookkeeping=Analiza podatkov, evidentiranih v tabeli knjigovodske knjige. +CalcModeLT1= Način %sRE na računih strank - računih dobaviteljevs%s +CalcModeLT1Debt=Način %sRE na računih stranks%s +CalcModeLT1Rec= Način %sRE na računih dobaviteljevs%s +CalcModeLT2= Način %sIRPF na računih strank - računih dobaviteljevs%s +CalcModeLT2Debt=Način %sIRPF na računih stranks%s +CalcModeLT2Rec= Način %sIRPF na računih dobaviteljevs%s AnnualSummaryDueDebtMode=Bilanca prihodkov in stroškov, letni povzetek AnnualSummaryInputOutputMode=Bilanca prihodkov in stroškov, letni povzetek -AnnualByCompanies=Balance of income and expenses, by predefined groups of account -AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode %sClaims-Debts%s said Commitment accounting. -AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode %sIncomes-Expenses%s said cash accounting. -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation based on recorded payments made even if they are not yet accounted in Ledger -SeeReportInDueDebtMode=See %sanalysis of recorded documents%s for a calculation based on known recorded documents even if they are not yet accounted in Ledger -SeeReportInBookkeepingMode=See %sanalysis of bookeeping ledger table%s for a report based on Bookkeeping Ledger table +AnnualByCompanies=Bilanca prihodkov in odhodkov, po vnaprej določenih skupinah kontov +AnnualByCompaniesDueDebtMode=Bilanca prihodkov in odhodkov, podrobnost po vnaprej določenih skupinah, način %sClaims-Debts%s said Obračun obveznosti . +AnnualByCompaniesInputOutputMode=Bilanca prihodkov in odhodkov, podrobnost po vnaprej določenih skupinah, način %sPrihodki-Odhodki%s rekel blagajniški obračun . +SeeReportInInputOutputMode=Glejte %sanalizo plačils%s za izračun na podlagi zabeleženih plačil izvedenih, tudi če še niso evidentirana v knjigi +SeeReportInDueDebtMode=Glejte %sanalizo evidentiranih dokumentov%s za izračun na podlagi znanih evidentiranih dokumentov , tudi če še niso evidentirani v knjigi Ledger +SeeReportInBookkeepingMode=Oglejte si %sanalizo tabele knjigovodske knjige %s za poročilo, ki temelji na tabeli knjigovodske knjige RulesAmountWithTaxIncluded=- Prikazane vrednosti vključujejo vse davke -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded -RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. -RulesCADue=- It includes the customer's due invoices whether they are paid or not.
    - It is based on the billing date of these invoices.
    -RulesCAIn=- It includes all the effective payments of invoices received from customers.
    - It is based on the payment date of these invoices
    -RulesCATotalSaleJournal=It includes all credit lines from the Sale journal. -RulesSalesTurnoverOfIncomeAccounts=It includes (credit - debit) of lines for product accounts in group INCOME -RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" -RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" -RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts grouped by personalized groups -SeePageForSetup=See menu %s for setup -DepositsAreNotIncluded=- Down payment invoices are not included -DepositsAreIncluded=- Down payment invoices are included -LT1ReportByMonth=Tax 2 report by month -LT2ReportByMonth=Tax 3 report by month -LT1ReportByCustomers=Report tax 2 by third party -LT2ReportByCustomers=Report tax 3 by third party -LT1ReportByCustomersES=Report by third party RE +RulesAmountWithTaxExcluded=- Prikazani zneski računov so brez vseh davkov +RulesResultDue=- Vključuje vse račune, stroške, DDV, donacije, plače, ne glede na to ali so izplačane ali ne.
    - Temelji na datumu zaračunavanja računov in na datumu zapadlosti stroškov ali plačila davka. Za plače se uporablja datum konca obdobja. +RulesResultInOut=- Vključuje realna plačila na računih, stroške, DDV in plače.
    - Temelji na plačilnih datumih računov, stroških, DDV-ju, donacijah in plačah. +RulesCADue=- Vključuje zapadle račune stranke, ne glede na to, ali so plačani ali ne.
    - Temelji na datumu zaračunavanja teh računov.
    +RulesCAIn=- Vključuje vsa efektivna plačila računov, prejetih od strank.
    - Temelji na datumu plačila teh računov
    +RulesCATotalSaleJournal=Vključuje vse kreditne linije iz dnevnika prodaje. +RulesSalesTurnoverOfIncomeAccounts=Vključuje (kreditno-debetne) postavke produktnih kontov v skupini PRIHODKI +RulesAmountOnInOutBookkeepingRecord=Vključuje zapis v vaši knjigi z računovodskimi konti, ki ima skupino "ODHODKI" ali "DOHODKI". +RulesResultBookkeepingPredefined=Vključuje zapis v vaši knjigi z računovodskimi konti, ki ima skupino "ODHODKI" ali "DOHODKI". +RulesResultBookkeepingPersonalized=Prikazuje zapis v vaši knjigi z računovodskimi računi , razvrščenimi po prilagojenih skupinah +SeePageForSetup=Za nastavitev glejte meni %s +DepositsAreNotIncluded=- Računi za predplačilo niso vključeni +DepositsAreIncluded=- Računi za predplačilo so vključeni +LT1ReportByMonth=Davčno poročilo 2 po mesecih +LT2ReportByMonth=Davčno poročilo 3 po mesecih +LT1ReportByCustomers=Prijavite davek 2 s strani tretje osebe +LT2ReportByCustomers=Prijavite davek 3 s strani tretje osebe +LT1ReportByCustomersES=Poročilo tretje osebe RE LT2ReportByCustomersES=Poročilo tretjih oseb IRPF -VATReport=Sales tax report -VATReportByPeriods=Sales tax report by period -VATReportByMonth=Sales tax report by month -VATReportByRates=Sales tax report by rate -VATReportByThirdParties=Sales tax report by third party -VATReportByCustomers=Sales tax report by customer +VATReport=Poročilo o prometnem davku +VATReportByPeriods=Poročilo o prometnem davku po obdobjih +VATReportByMonth=Poročilo o prometnem davku po mesecih +VATReportByRates=Poročilo o prometnem davku po stopnji +VATReportByThirdParties=Poročilo o prometnem davku tretje osebe +VATReportByCustomers=Poročilo o prometnem davku po stranki VATReportByCustomersInInputOutputMode=Poročilo o pobranem in plačanem DDV po kupcih -VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid -VATReportShowByRateDetails=Show details of this rate -LT1ReportByQuarters=Report tax 2 by rate -LT2ReportByQuarters=Report tax 3 by rate -LT1ReportByQuartersES=Report by RE rate -LT2ReportByQuartersES=Report by IRPF rate -SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation -SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing -RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. -RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. -RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. -RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. +VATReportByQuartersInInputOutputMode=Poročilo po stopnji prometnega davka o pobranem in plačanem davku +VATReportShowByRateDetails=Prikaži podrobnosti te stopnje +LT1ReportByQuarters=Prijavite davek 2 po stopnji +LT2ReportByQuarters=Prijavite davek 3 po stopnji +LT1ReportByQuartersES=Poročilo po tečaju RE +LT2ReportByQuartersES=Poročilo po stopnji IRPF +SeeVATReportInInputOutputMode=Glej poročilo %sPobiranje DDV%s za standardni izračun +SeeVATReportInDueDebtMode=Glej poročilo %sDDV na debit%s za izračun z možnostjo na fakturiranju +RulesVATInServices=- Za storitve poročilo vključuje DDV dejansko prejetih oziroma plačanih plačil na podlagi datuma plačila. +RulesVATInProducts=- Za materialna sredstva je v poročilu vključen DDV na podlagi datuma plačila. +RulesVATDueServices=- Za storitve poročilo vključuje DDV zapadlih računov, plačanih ali ne, na podlagi datuma računa. +RulesVATDueProducts=- Za materialna sredstva je v poročilu vključen DDV zapadlih računov, glede na datum računa. OptionVatInfoModuleComptabilite=Opomba: Za material naj se zaradi korektnosti uporablja datum dobave. -ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values +ThisIsAnEstimatedValue=To je predogled, ki temelji na poslovnih dogodkih in ne na tabeli končne knjige, zato se lahko končni rezultati razlikujejo od teh vrednosti predogleda PercentOfInvoice=%%/račun NotUsedForGoods=Se ne uporablja za material ProposalStats=Statistika po ponudbah @@ -224,77 +228,78 @@ PurchasesJournal=Poročilo o nabavi DescSellsJournal=Poročilo o prodaji DescPurchasesJournal=Poročilo o nabavi CodeNotDef=Ni definirano -WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Računi za predplačilo niso vključeni v to različico s tem računovodskim modulom. DatePaymentTermCantBeLowerThanObjectDate=Datum plačila ne more biti nižji od datuma storitve. -Pcg_version=Chart of accounts models +Pcg_version=Modeli kontnega načrta Pcg_type=Pcg način Pcg_subtype=Pcg podtip InvoiceLinesToDispatch=Vrstice računa za odpremo -ByProductsAndServices=By product and service +ByProductsAndServices=Po izdelkih in storitvah RefExt=Externa ref -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". +ToCreateAPredefinedInvoice=Za izdelavo predloge računa ustvarite standardni račun, nato pa brez potrditve kliknite gumb "%s". LinkedOrder=Povezava do naročila Mode1=Metoda 1 Mode2=Metoda 2 -CalculationRuleDesc=To calculate total VAT, there is two methods:
    Method 1 is rounding vat on each line, then summing them.
    Method 2 is summing all vat on each line, then rounding result.
    Final result may differs from few cents. Default mode is mode %s. -CalculationRuleDescSupplier=According to vendor, choose appropriate method to apply same calculation rule and get same result expected by your vendor. -TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced. -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. +CalculationRuleDesc=Za izračun skupnega DDV obstajata dve metodi:
    1. metoda je zaokroževanje DDV v vsaki vrstici in nato seštevanje.
    Metoda 2 sešteje vso PDV v vsaki vrstici, nato pa rezultat zaokroži.
    Končni rezultat se lahko razlikuje od nekaj centov. Privzeti način je način %s . +CalculationRuleDescSupplier=Glede na prodajalca izberite ustrezno metodo za uporabo istega pravila izračuna in pridobite enak rezultat, ki ga pričakuje vaš prodajalec. +TurnoverPerProductInCommitmentAccountingNotRelevant=Poročilo o zbranem prometu na izdelek ni na voljo. To poročilo je na voljo samo za fakturirani promet. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Poročilo o zbranem prometu po stopnji prometnega davka ni na voljo. To poročilo je na voljo samo za fakturirani promet. CalculationMode=Način kalkulacije -AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. -ConfirmCloneTax=Confirm the clone of a social/fiscal tax -ConfirmCloneVAT=Confirm the clone of a VAT declaration -ConfirmCloneSalary=Confirm the clone of a salary -CloneTaxForNextMonth=Clone it for next month -SimpleReport=Simple report -AddExtraReport=Extra reports (add foreign and national customer report) -OtherCountriesCustomersReport=Foreign customers report -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code -SameCountryCustomersWithVAT=National customers report -BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code -LinkedFichinter=Link to an intervention -ImportDataset_tax_contrib=Social/fiscal taxes -ImportDataset_tax_vat=Vat payments -ErrorBankAccountNotFound=Error: Bank account not found -FiscalPeriod=Accounting period -ListSocialContributionAssociatedProject=List of social contributions associated with the project -DeleteFromCat=Remove from accounting group -AccountingAffectation=Accounting assignment -LastDayTaxIsRelatedTo=Last day of period the tax is related to -VATDue=Sale tax claimed -ClaimedForThisPeriod=Claimed for the period -PaidDuringThisPeriod=Paid for this period -PaidDuringThisPeriodDesc=This is the sum of all payments linked to VAT declarations which have an end-of-period date in the selected date range -ByVatRate=By sale tax rate -TurnoverbyVatrate=Turnover invoiced by sale tax rate -TurnoverCollectedbyVatrate=Turnover collected by sale tax rate -PurchasebyVatrate=Purchase by sale tax rate +AccountancyJournal=Časopis računovodskih kodeksov +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Namenski računovodski račun, opredeljen na saldakontni kartici, bo uporabljen samo za računovodstvo podknjige. Ta bo uporabljen za glavno knjigo in kot privzeta vrednost računovodstva podknjige, če namenski račun v saldakontih ni definiran. +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Namenski računovodski račun, opredeljen na kartici tretje osebe, bo uporabljen samo za računovodstvo podknjige. Ta bo uporabljen za glavno knjigo in kot privzeta vrednost računovodstva podknjige, če namenski računovodski račun dobavitelja pri tretji osebi ni definiran. +ConfirmCloneTax=Potrdite klon socialnega/fiskalnega davka +ConfirmCloneVAT=Potrdite klon izjave o DDV +ConfirmCloneSalary=Potrdite klon plače +CloneTaxForNextMonth=Kloniraj za naslednji mesec +SimpleReport=Preprosto poročilo +AddExtraReport=Dodatna poročila (dodajte poročilo o tujih in domačih strankah) +OtherCountriesCustomersReport=Tuji kupci poročajo +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Na podlagi prvih dveh črk številke DDV, ki se razlikujeta od kode države vašega podjetja +SameCountryCustomersWithVAT=Nacionalno poročilo strank +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Na podlagi prvih dveh črk številke DDV, ki sta enaki kodi države vašega podjetja +LinkedFichinter=Povezava do intervencije +ImportDataset_tax_contrib=Socialni/fiskalni davki +ImportDataset_tax_vat=Plačila DDV +ErrorBankAccountNotFound=Napaka: bančnega računa ni mogoče najti +FiscalPeriod=Obračunsko obdobje +ListSocialContributionAssociatedProject=Seznam socialnih prispevkov, povezanih s projektom +DeleteFromCat=Odstrani iz računovodske skupine +AccountingAffectation=Računovodska naloga +LastDayTaxIsRelatedTo=Zadnji dan obdobja, na katerega se nanaša davek +VATDue=Zahtevan prometni davek +ClaimedForThisPeriod=Zahtevano za obdobje +PaidDuringThisPeriod=Plačano za to obdobje +PaidDuringThisPeriodDesc=To je vsota vseh plačil, povezanih z napovedmi DDV, ki imajo datum konca obdobja v izbranem časovnem obdobju. +ByVatRate=Po stopnji prometnega davka +TurnoverbyVatrate=Promet fakturiran po stopnji prometnega davka +TurnoverCollectedbyVatrate=Promet, zbran po stopnji prometnega davka +PurchasebyVatrate=Nakup po stopnji prometnega davka LabelToShow=Kratek naziv -PurchaseTurnover=Purchase turnover -PurchaseTurnoverCollected=Purchase turnover collected -RulesPurchaseTurnoverDue=- It includes the supplier's due invoices whether they are paid or not.
    - It is based on the invoice date of these invoices.
    -RulesPurchaseTurnoverIn=- It includes all the effective payments of invoices done to suppliers.
    - It is based on the payment date of these invoices
    -RulesPurchaseTurnoverTotalPurchaseJournal=It includes all debit lines from the purchase journal. -RulesPurchaseTurnoverOfExpenseAccounts=It includes (debit - credit) of lines for product accounts in group EXPENSE -ReportPurchaseTurnover=Purchase turnover invoiced -ReportPurchaseTurnoverCollected=Purchase turnover collected -IncludeVarpaysInResults = Include various payments in reports -IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) -InvoiceNotLate = To be collected (< 15 days) -InvoiceNotLate15Days = To be collected (15 to 30 days) -InvoiceNotLate30Days = To be collected (> 30 days) -InvoiceToPay=To pay (< 15 days) -InvoiceToPay15Days=To pay (15 to 30 days) -InvoiceToPay30Days=To pay (> 30 days) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +PurchaseTurnover=Nabavni promet +PurchaseTurnoverCollected=Zbrani promet od nabave +RulesPurchaseTurnoverDue=- Vključuje zapadle račune dobavitelja, ne glede na to, ali so plačani ali ne.
    - Temelji na datumu računa teh računov.
    +RulesPurchaseTurnoverIn=- Vključuje vsa efektivna plačila računov dobaviteljem.
    - Temelji na datumu plačila teh računov
    +RulesPurchaseTurnoverTotalPurchaseJournal=Vključuje vse debetne vrstice iz nabavnega dnevnika. +RulesPurchaseTurnoverOfExpenseAccounts=Vključuje (obremenitev - dobro) postavk produktnih kontov v skupini ODHODKI +ReportPurchaseTurnover=Promet fakturiran +ReportPurchaseTurnoverCollected=Zbrani promet od nabave +IncludeVarpaysInResults = V poročila vključite različna plačila +IncludeLoansInResults = V poročila vključite posojila +InvoiceLate30Days = Pozno (> 30 dni) +InvoiceLate15Days = Pozno (15 do 30 dni) +InvoiceLateMinus15Days = Pozno (< 15 dni) +InvoiceNotLate = Prevzeti (< 15 dni) +InvoiceNotLate15Days = Prevzeti (15 do 30 dni) +InvoiceNotLate30Days = Prevzeti (> 30 dni) +InvoiceToPay=Za plačilo (< 15 dni) +InvoiceToPay15Days=Za plačilo (15 do 30 dni) +InvoiceToPay30Days=Za plačilo (> 30 dni) +ConfirmPreselectAccount=Vnaprej izberite šifro računovodstva +ConfirmPreselectAccountQuestion=Ali ste prepričani, da želite vnaprej izbrati %s izbrane vrstice s to računovodsko kodo? +AmountPaidMustMatchAmountOfDownPayment=Plačani znesek se mora ujemati z zneskom pologa diff --git a/htdocs/langs/sl_SI/contracts.lang b/htdocs/langs/sl_SI/contracts.lang index 5bf74a28340..81701a5e043 100644 --- a/htdocs/langs/sl_SI/contracts.lang +++ b/htdocs/langs/sl_SI/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Pogodbe/naročnine ContractsAndLine=Pogodbe in serija pogodb Contract=Pogodba ContractLine=Vrstica pogodbe +ContractLines=Pogodbene vrstice Closing=Zapiranje NoContracts=Ni pogodb MenuServices=Storitve @@ -28,19 +29,19 @@ MenuRunningServices=Aktivne storitve MenuExpiredServices=Pretečene storitve MenuClosedServices=Zaključene storitve NewContract=Nova pogodba -NewContractSubscription=New contract or subscription +NewContractSubscription=Nova pogodba ali naročnina AddContract=Ustvari pogodbo DeleteAContract=Izbriši pogodbo -ActivateAllOnContract=Activate all services +ActivateAllOnContract=Aktivirajte vse storitve CloseAContract=Zaključi pogodbo ConfirmDeleteAContract=Ste prepričani da želite zbrisati pogodbo in vse storitve? -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmActivateAllOnContract=This will open all services (not yet active). Are you sure you want to open all services? -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? -ConfirmCloseService=Are you sure you want to close this service with date %s? +ConfirmValidateContract=Ali ste prepričani, da želite to pogodbo potrditi pod imenom %s ? +ConfirmActivateAllOnContract=To bo odprlo vse storitve (še neaktivne). Ali ste prepričani, da želite odpreti vse storitve? +ConfirmCloseContract=S tem boste zaprli vse storitve (potekle ali ne). Ali ste prepričani, da želite zapreti to pogodbo? +ConfirmCloseService=Ali ste prepričani, da želite zapreti to storitev z datumom %s ? ValidateAContract=Potrdite pogodbo ActivateService=Aktivirajte storitev -ConfirmActivateService=Are you sure you want to activate this service with date %s? +ConfirmActivateService=Ali ste prepričani, da želite aktivirati to storitev z datumom %s ? RefContract=Referenca pogodbe DateContract=Datum pogodbe DateServiceActivate=Datum aktiviranja storitve @@ -51,9 +52,9 @@ ListOfClosedServices=Seznam zaključenih storitev ListOfRunningServices=Seznam aktivnih storitev NotActivatedServices=Neaktivne storitve (med potrjenimi pogodbami) BoardNotActivatedServices=Storitve, ki jih je potrebno aktivirati (med potrjenimi pogodbami) -BoardNotActivatedServicesShort=Services to activate -LastContracts=Latest %s contracts -LastModifiedServices=Latest %s modified services +BoardNotActivatedServicesShort=Storitve za aktiviranje +LastContracts=Najnovejše pogodbe %s +LastModifiedServices=Najnovejše %s spremenjene storitve ContractStartDate=Začetni datum ContractEndDate=Končni datum DateStartPlanned=Planiran začetni datum @@ -65,21 +66,21 @@ DateStartRealShort=Dejanski začetni datum DateEndReal=Dejanski končni datum DateEndRealShort=Dejanski končni datum CloseService=Zaključek storitve -BoardRunningServices=Services running -BoardRunningServicesShort=Services running -BoardExpiredServices=Services expired -BoardExpiredServicesShort=Services expired +BoardRunningServices=Storitve tečejo +BoardRunningServicesShort=Storitve tečejo +BoardExpiredServices=Storitve so potekle +BoardExpiredServicesShort=Storitve so potekle ServiceStatus=Status storitve DraftContracts=Osnutki pogodb -CloseRefusedBecauseOneServiceActive=Contract can't be closed as there is at least one open service on it -ActivateAllContracts=Activate all contract lines +CloseRefusedBecauseOneServiceActive=Pogodbe ni mogoče zapreti, ker je na njej vsaj ena odprta storitev +ActivateAllContracts=Aktivirajte vse pogodbene vrstice CloseAllContracts=Zaprite vse pogodbe DeleteContractLine=Izbrišite vrstico pogodbe -ConfirmDeleteContractLine=Are you sure you want to delete this contract line? +ConfirmDeleteContractLine=Ali ste prepričani, da želite izbrisati to pogodbeno vrstico? MoveToAnotherContract=Premaknite storitev na drugo pogodbo. ConfirmMoveToAnotherContract=Izbral sem novo ciljno pogodbo in potrjujem premik te storitve na to novo pogodbo. -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Obnovi pogodbeno vrstico (številka %s) +ConfirmMoveToAnotherContractQuestion=Izberite, v katero obstoječo pogodbo partnerja želite prenesti to storitev? +PaymentRenewContractId=Obnovi pogodbo %s (storitev %s) ExpiredSince=Datum poteka NoExpiredServices=Ni potekla aktivne službe ListOfServicesToExpireWithDuration=Seznam storitev, ki potečejo v %s dneh @@ -89,16 +90,18 @@ NoteListOfYourExpiredServices=Ta seznam vsebuje samo storitve po pogodbah s part StandardContractsTemplate=Predloga standardnih pogodb ContactNameAndSignature=Za %s, ime in podpis: OnlyLinesWithTypeServiceAreUsed=Klonirane bodo samo vrstice tipa "Servis" -ConfirmCloneContract=Are you sure you want to clone the contract %s? -LowerDateEndPlannedShort=Lower planned end date of active services -SendContractRef=Contract information __REF__ -OtherContracts=Other contracts +ConfirmCloneContract=Ali ste prepričani, da želite klonirati pogodbo %s ? +LowerDateEndPlannedShort=Nižji načrtovani končni datum aktivnih storitev +SendContractRef=Informacije o pogodbi __REF__ +OtherContracts=Druge pogodbe ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Podpisnik pogodbe TypeContact_contrat_internal_SALESREPFOLL=Referent za sledenje pogodbe TypeContact_contrat_external_BILLING=Kontakt v računovodstvu kupca TypeContact_contrat_external_CUSTOMER=Kontakt pri kupcu za sledenje pogodbe TypeContact_contrat_external_SALESREPSIGN=Kontakt pri kupcu za podpis pogodbe -HideClosedServiceByDefault=Hide closed services by default -ShowClosedServices=Show Closed Services -HideClosedServices=Hide Closed Services +HideClosedServiceByDefault=Privzeto skrij zaprte storitve +ShowClosedServices=Prikaži zaprte storitve +HideClosedServices=Skrij zaprte storitve +UserStartingService=Uporabnik zažene storitev +UserClosingService=Storitev zapiranja uporabnikov diff --git a/htdocs/langs/sl_SI/cron.lang b/htdocs/langs/sl_SI/cron.lang index e4c3b02ef35..ff4853b300f 100644 --- a/htdocs/langs/sl_SI/cron.lang +++ b/htdocs/langs/sl_SI/cron.lang @@ -6,86 +6,95 @@ Permission23102 = Ustvari/posodobi načrtovano delo Permission23103 = Izbriši načrtovano delo Permission23104 = Izvedi načrtovano delo # Admin -CronSetup=Scheduled job management setup -URLToLaunchCronJobs=URL to check and launch qualified cron jobs from a browser -OrToLaunchASpecificJob=Or to check and launch a specific job from a browser -KeyForCronAccess=Security key for URL to launch cron jobs -FileToLaunchCronJobs=Command line to check and launch qualified cron jobs -CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes -CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes -CronMethodDoesNotExists=Class %s does not contains any method %s -CronMethodNotAllowed=Method %s of class %s is in blacklist of forbidden methods -CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. -CronJobProfiles=List of predefined cron job profiles +CronSetup=Načrtovana nastavitev upravljanja opravil +URLToLaunchCronJobs=URL za preverjanje in zagon kvalificiranih opravil cron iz brskalnika +OrToLaunchASpecificJob=Ali da preverite in zaženete določeno opravilo iz brskalnika +KeyForCronAccess=Varnostni ključ za URL za zagon opravil cron +FileToLaunchCronJobs=Ukazna vrstica za preverjanje in zagon kvalificiranih cron opravil +CronExplainHowToRunUnix=V okolju Unix morate uporabiti naslednji vnos v crontab za zagon ukazne vrstice vsakih 5 minut +CronExplainHowToRunWin=V okolju Microsoft(tm) Windows lahko z orodji Scheduled Task zaženete ukazno vrstico vsakih 5 minut +CronMethodDoesNotExists=Razred %s ne vsebuje nobene metode %s +CronMethodNotAllowed=Metoda %s razreda %s je na črnem seznamu prepovedanih metod +CronJobDefDesc=Profili opravil Cron so definirani v datoteki deskriptorja modula. Ko je modul aktiviran, so naloženi in na voljo, tako da lahko upravljate opravila iz menija skrbniških orodij %s. +CronJobProfiles=Seznam vnaprej določenih profilov opravil cron # Menu -EnabledAndDisabled=Enabled and disabled +EnabledAndDisabled=Omogočeno in onemogočeno # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Zadnji izhod +CronLastResult=Koda zadnjega rezultata CronCommand=Ukaz -CronList=Scheduled jobs -CronDelete=Delete scheduled jobs -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job -CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronList=Načrtovana delovna mesta +CronDelete=Izbrišite načrtovana opravila +CronConfirmDelete=Ali ste prepričani, da želite izbrisati ta načrtovana opravila? +CronExecute=Launch now +CronConfirmExecute=Ali ste prepričani, da želite ta načrtovana opravila izvesti zdaj? +CronInfo=Modul za razporejena opravila omogoča načrtovanje opravil za njihovo samodejno izvedbo. Dela se lahko zaženejo tudi ročno. CronTask=Naloga CronNone=Nič -CronDtStart=Not before -CronDtEnd=Not after -CronDtNextLaunch=Next execution -CronDtLastLaunch=Start date of latest execution -CronDtLastResult=End date of latest execution +CronDtStart=Ne prej +CronDtEnd=Ne po +CronDtNextLaunch=Naslednja izvedba +CronDtLastLaunch=Začetni datum zadnje izvršitve +CronDtLastResult=Končni datum zadnje izvedbe CronFrequency=Frekvenca -CronClass=Class +CronClass=Razred CronMethod=Metoda CronModule=Modul CronNoJobs=Nobene naloge niso registrirane CronPriority=Prioriteta CronLabel=Oznaka -CronNbRun=Number of launches -CronMaxRun=Maximum number of launches -CronEach=Every -JobFinished=Job launched and finished -Scheduled=Scheduled +CronNbRun=Število izstrelitev +CronMaxRun=Največje število izstrelitev +CronEach=vsak +JobFinished=Delo začeto in končano +Scheduled=Načrtovano #Page card CronAdd= Dodaj naloge -CronEvery=Execute job each -CronObject=Instance/Object to create +CronEvery=Izvedite delo vsak +CronObject=Primerek/predmet za ustvarjanje CronArgs=Parametri -CronSaveSucess=Save successfully +CronSaveSucess=Uspešno shranjevanje CronNote=Komentar -CronFieldMandatory=Fields %s is mandatory -CronErrEndDateStartDt=End date cannot be before start date -StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronFieldMandatory=Polja %s so obvezna +CronErrEndDateStartDt=Končni datum ne more biti pred začetnim datumom +StatusAtInstall=Stanje ob namestitvi modula +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Onemogoči -CronTaskInactive=This job is disabled (not scheduled) +CronTaskInactive=To opravilo je onemogočeno (ni načrtovano) CronId=Id -CronClassFile=Filename with class -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
    product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
    For example to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
    product/class/product.class.php -CronObjectHelp=The object name to load.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
    Product -CronMethodHelp=The object method to launch.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
    fetch -CronArgsHelp=The method arguments.
    For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
    0, ProductRef -CronCommandHelp=The system command line to execute. -CronCreateJob=Create new Scheduled Job +CronClassFile=Ime datoteke z razredom +CronModuleHelp=Ime imenika modulov Dolibarr (deluje tudi z zunanjim modulom Dolibarr).
    Če želite na primer poklicati metodo pridobivanja predmeta Dolibarr Product /htdocs/ product /class/product.class.php, je vrednost za modul
    izdelek +CronClassFileHelp=Relativna pot in ime datoteke za nalaganje (pot je relativna glede na korenski imenik spletnega strežnika).
    Na primer, če želite poklicati metodo pridobivanja predmeta Dolibarr Product htdocs/product/class/ product.class.php , je vrednost za ime datoteke razreda
    product/class/product.bace363z.php a058 +CronObjectHelp=Ime predmeta za nalaganje.
    Če želite na primer poklicati metodo pridobivanja predmeta Dolibarr Product /htdocs/product/class/product.class.php, je vrednost za ime datoteke razreda
    Product +CronMethodHelp=Objektna metoda za zagon.
    Če želite na primer poklicati metodo pridobivanja predmeta Dolibarr Product /htdocs/product/class/product.class.php, je vrednost za metodo
    pridobivanje +CronArgsHelp=Argumenti metode.
    Če želite na primer poklicati metodo pridobivanja predmeta Dolibarr Product /htdocs/product/class/product.class.php, je lahko vrednost za parametre
    0, ProductRef +CronCommandHelp=Sistemska ukazna vrstica za izvedbo. +CronCreateJob=Ustvari novo načrtovano opravilo CronFrom=Od # Info # Common -CronType=Job type -CronType_method=Call method of a PHP Class -CronType_command=Shell command -CronCannotLoadClass=Cannot load class file %s (to use class %s) -CronCannotLoadObject=Class file %s was loaded, but object %s was not found into it -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. -JobDisabled=Job disabled -MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. -DATAPOLICYJob=Data cleaner and anonymizer -JobXMustBeEnabled=Job %s must be enabled +CronType=Vrsta dela +CronType_method=Klicna metoda razreda PHP +CronType_command=Ukaz lupine +CronCannotLoadClass=Ni mogoče naložiti datoteke razreda %s (za uporabo razreda %s) +CronCannotLoadObject=Datoteka razreda %s je bila naložena, vendar v njej ni bilo najdenega predmeta %s +UseMenuModuleToolsToAddCronJobs=Pojdite v meni " Domov - Skrbniška orodja - Načrtovana opravila " za ogled in urejanje načrtovanih opravil. +JobDisabled=Delo onemogočeno +MakeLocalDatabaseDumpShort=Varnostno kopiranje lokalne baze podatkov +MakeLocalDatabaseDump=Ustvarite izpis lokalne baze podatkov. Parametri so: stiskanje ('gz' ali 'bz' ali 'none'), vrsta varnostne kopije ('mysql', 'pgsql', 'auto'), 1, 'auto' ali ime datoteke za izdelavo, število datotek varnostne kopije, ki jih je treba hraniti +MakeSendLocalDatabaseDumpShort=Pošlji varnostno kopijo lokalne baze podatkov +MakeSendLocalDatabaseDump=Pošlji varnostno kopijo lokalne baze podatkov po e-pošti. Parametri so: do, od, predmet, sporočilo, ime datoteke (ime poslane datoteke), filter ('sql' samo za varnostno kopijo baze podatkov) +BackupIsTooLargeSend=Žal je zadnja varnostna kopija prevelika za pošiljanje po e-pošti +CleanUnfinishedCronjobShort=Očistite nedokončan cronjob +CleanUnfinishedCronjob=Očistite cronjob, ki se je zataknil v obdelavi, ko se proces ne izvaja več +WarningCronDelayed=Pozor, zaradi zmogljivosti, ne glede na naslednji datum izvedbe omogočenih opravil, so lahko vaša opravila pred izvajanjem odložena za največ %s ur. +DATAPOLICYJob=Čistilec in anonimizator podatkov +JobXMustBeEnabled=Opravilo %s mora biti omogočeno +EmailIfError=E-pošta za opozorilo o napaki +ErrorInBatch=Napaka pri izvajanju opravila %s + # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=Zadnje izvedeno načrtovano opravilo +NextScheduledJobExecute=Naslednje načrtovano opravilo za izvedbo +NumberScheduledJobError=Število napačno načrtovanih opravil +NumberScheduledJobNeverFinished=Število nikoli dokončanih načrtovanih opravil diff --git a/htdocs/langs/sl_SI/datapolicy.lang b/htdocs/langs/sl_SI/datapolicy.lang new file mode 100644 index 00000000000..dbdbc5e6e9a --- /dev/null +++ b/htdocs/langs/sl_SI/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Politika zasebnosti podatkov +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul za upravljanje zasebnosti podatkov (skladnost z GDPR) + +# +# Administration page +# +datapolicySetup = Nastavitev pravilnika o zasebnosti podatkov modula +Deletion = Izbris podatkov +datapolicySetupPage = Odvisno od zakonov vaših držav (primer člen 5 GDPR) je treba osebne podatke hraniti toliko časa, kolikor je potrebno za namene, za katere so bili zbrani, razen za arhivske namene.
    Brisanje bo izvedeno samodejno po določenem času brez dogodka (trajanje, ki ga boste navedli spodaj). +NB_MONTHS = %s mesecev +ONE_YEAR = 1 leto +NB_YEARS = %s let +DATAPOLICY_TIERS_CLIENT = Kupec +DATAPOLICY_TIERS_PROSPECT = Potencialni kupec +DATAPOLICY_TIERS_PROSPECT_CLIENT = Potencialni kupec/kupec +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Niti potencialni kupec/niti kupec +DATAPOLICY_TIERS_FOURNISSEUR = Dobavitelj +DATAPOLICY_CONTACT_CLIENT = Kupec +DATAPOLICY_CONTACT_PROSPECT = Potencialni kupec +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Potencialni kupec/kupec +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Niti potencialna stranka/niti stranka +DATAPOLICY_CONTACT_FOURNISSEUR = Dobavitelj +DATAPOLICY_ADHERENT = Član +DATAPOLICY_Tooltip_SETUP = Vrsta stika – navedite svoje izbire za vsako vrsto. +DATAPOLICYMail = Nastavitev e-pošte +DATAPOLICYSUBJECTMAIL = Zadeva e-pošte +DATAPOLICYCONTENTMAIL = Vsebina e-pošte +DATAPOLICYSUBSITUTION = V svoji e-pošti lahko uporabite naslednje spremenljivke (LINKACCEPT omogoča ustvarjanje povezave, ki beleži strinjanje osebe, LINKREFUSED omogoča beleženje zavrnitve osebe): +DATAPOLICYACCEPT = Sporočilo po dogovoru +DATAPOLICYREFUSE = Sporočilo po nestrinjanju +SendAgreementText = E-pošto GDPR lahko pošljete vsem svojim relevantnim kontaktom (ki še niso prejeli e-pošte in za katere niste registrirali ničesar o njihovi pogodbi GDPR). Če želite to narediti, uporabite naslednji gumb. +SendAgreement = Pošlji e-pošto +AllAgreementSend = Vsa e-poštna sporočila so bila poslana +TXTLINKDATAPOLICYACCEPT = Besedilo za povezavo "pogodba" +TXTLINKDATAPOLICYREFUSE = Besedilo za povezavo "disgreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Obdelava osebnih podatkov +DATAPOLICY_consentement = Pridobljena privolitev za obdelavo osebnih podatkov +DATAPOLICY_opposition_traitement = Nasprotuje obdelavi svojih osebnih podatkov +DATAPOLICY_opposition_prospection = Nasprotuje obdelavi njegovih osebnih podatkov za namene iskanja + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizirajte partnerja +DATAPOLICY_POPUP_ANONYME_TEXTE = Tega stika ne morete izbrisati iz Dolibarra, ker so povezani elementi. V skladu z GDPR boste zaradi izpolnjevanja svojih obveznosti vse te podatke naredili anonimne. Bi radi nadaljevali? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Prenosljivost GDPR +DATAPOLICY_PORTABILITE_TITLE = Iznos osebnih podatkov +DATAPOLICY_PORTABILITE_CONFIRMATION = Želite izvoziti osebne podatke tega stika. Ali si prepričan ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonimiziral %s + +# V2 +DATAPOLICYReturn = Potrditev GDPR +DATAPOLICY_date = Datum dogovora/odstopa od dogovora GDPR +DATAPOLICY_send = Datum pošiljanja e-pošte s pogodbo +DATAPOLICYReturn = Potrditev GDPR +DATAPOLICY_SEND = Pošlji e-pošto GDPR +MailSent = Email je bil poslan + +# ERROR +ErrorSubjectIsRequired = Napaka: Zadeva e-pošte je obvezna. Navedite ga v nastavitvah modula +=Zaradi tehnične težave nismo mogli prijaviti vaše izbire. Za to se opravičujemo. Pišite nam, da nam pošljete vašo izbiro. +NUMBER_MONTH_BEFORE_DELETION = Število meseca pred izbrisom diff --git a/htdocs/langs/sl_SI/deliveries.lang b/htdocs/langs/sl_SI/deliveries.lang index a2045ed2786..1887452c20e 100644 --- a/htdocs/langs/sl_SI/deliveries.lang +++ b/htdocs/langs/sl_SI/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Dobava -DeliveryRef=Ref Delivery -DeliveryCard=Receipt card -DeliveryOrder=Delivery receipt +DeliveryRef=Ref Dostava +DeliveryCard=Računska kartica +DeliveryOrder=Potrdilo o dostavi DeliveryDate=Datum dobave -CreateDeliveryOrder=Generate delivery receipt +CreateDeliveryOrder=Ustvarite potrdilo o dostavi DeliveryStateSaved=Shranjen status dobave SetDeliveryDate=Nastavitev datuma dobave ValidateDeliveryReceipt=Potrditev prejemnice -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +ValidateDeliveryReceiptConfirm=Ali ste prepričani, da želite potrditi to potrdilo o dostavi? DeleteDeliveryReceipt=Zbriši prejemnico -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? +DeleteDeliveryReceiptConfirm=Ali ste prepričani, da želite izbrisati potrdilo o dostavi %s ? DeliveryMethod=Način dobave TrackingNumber=Številka za sledenje DeliveryNotValidated=Dobava ni potrjena @@ -18,16 +18,16 @@ StatusDeliveryCanceled=Preklicano StatusDeliveryDraft=Osnutek StatusDeliveryValidated=Prejet # merou PDF model -NameAndSignature=Name and Signature: +NameAndSignature=Ime in podpis: ToAndDate=Za___________________________________ dne ____/_____/__________ GoodStatusDeclaration=Potrjujem prejem zgornjega blaga v dobrem stanju, -Deliverer=Deliverer: +Deliverer=Dostavljalec: Sender=Pošiljatelj Recipient=Prejemnik ErrorStockIsNotEnough=Zaloga je premajhna Shippable=Možna odprema NonShippable=Ni možna odprema -ShowShippableStatus=Show shippable status -ShowReceiving=Show delivery receipt -NonExistentOrder=Nonexistent order -StockQuantitiesAlreadyAllocatedOnPreviousLines = Stock quantities already allocated on previous lines +ShowShippableStatus=Prikaži stanje za pošiljanje +ShowReceiving=Prikaži potrdilo o dostavi +NonExistentOrder=Neobstoječe naročilo +StockQuantitiesAlreadyAllocatedOnPreviousLines = Količine zalog, že dodeljene v prejšnjih vrsticah diff --git a/htdocs/langs/sl_SI/dict.lang b/htdocs/langs/sl_SI/dict.lang index 3dcb0ed73a1..d61c524c6cd 100644 --- a/htdocs/langs/sl_SI/dict.lang +++ b/htdocs/langs/sl_SI/dict.lang @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald CountryVA=Vatikan CountryHN=Honduras CountryHK=Hongkong -CountryIS=Iceland +CountryIS=Islandija CountryIN=Indija CountryID=Indonezija CountryIR=Iran @@ -131,7 +131,7 @@ CountryKI=Kiribati CountryKP=Severna Koreja CountryKR=Južna Koreja CountryKW=Kuvajt -CountryKG=Kyrgyzstan +CountryKG=Kirgizistan CountryLA=Laos CountryLV=Latvija CountryLB=Libanon @@ -160,7 +160,7 @@ CountryMD=Moldavija CountryMN=Mongolija CountryMS=Monserat CountryMZ=Mozambik -CountryMM=Myanmar (Burma) +CountryMM=Mjanmar (Burma) CountryNA=Namibija CountryNR=Nauru CountryNP=Nepal @@ -223,7 +223,7 @@ CountryTO=Tonga CountryTT=Trinidad in Tobago CountryTR=Turčija CountryTM=Turkmenistan -CountryTC=Turks and Caicos Islands +CountryTC=Otoki Turks in Caicos CountryTV=Tuvalu CountryUG=Uganda CountryUA=Ukrajina @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Ga. +CivilityMMEShort=Ga. CivilityMR=G. +CivilityMRShort=G. CivilityMLE=Gdč. CivilityMTRE=Mojster CivilityDR=Doktor @@ -277,7 +279,7 @@ CurrencySingMGA=Ariary CurrencyMUR=Mauricijske rupije CurrencySingMUR=Mauricijska rupija CurrencyNOK=Norveške krone -CurrencySingNOK=Norwegian kronas +CurrencySingNOK=Norveške krone CurrencyTND=Tunizijski dinarji CurrencySingTND=Tunizijski dinar CurrencyUSD=Ameriški Dolarji @@ -290,7 +292,7 @@ CurrencyXOF=CFA Francs BCEAO CurrencySingXOF=CFA Franc BCEAO CurrencyXPF=CFP Francs CurrencySingXPF=CFP Franc -CurrencyCentEUR=cents +CurrencyCentEUR=centov CurrencyCentSingEUR=cent CurrencyCentINR=paisa CurrencyCentSingINR=pais @@ -307,7 +309,7 @@ DemandReasonTypeSRC_WOM=Ustno DemandReasonTypeSRC_PARTNER=Partner DemandReasonTypeSRC_EMPLOYEE=Zaposleni DemandReasonTypeSRC_SPONSORING=Sponzorstvo -DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer +DemandReasonTypeSRC_SRC_CUSTOMER=Dohodni stik stranke #### Paper formats #### PaperFormatEU4A0=Format 4A0 PaperFormatEU2A0=Format 2A0 @@ -329,31 +331,31 @@ PaperFormatCAP4=Format P4 Canada PaperFormatCAP5=Format P5 Canada PaperFormatCAP6=Format P6 Canada #### Expense report categories #### -ExpAutoCat=Car +ExpAutoCat=avto ExpCycloCat=Moped -ExpMotoCat=Motorbike +ExpMotoCat=motorno kolo ExpAuto3CV=3 CV -ExpAuto4CV=4 CV +ExpAuto4CV=4 življenjepis ExpAuto5CV=5 CV ExpAuto6CV=6 CV -ExpAuto7CV=7 CV -ExpAuto8CV=8 CV +ExpAuto7CV=7 življenjepis +ExpAuto8CV=8 življenjepis ExpAuto9CV=9 CV ExpAuto10CV=10 CV -ExpAuto11CV=11 CV +ExpAuto11CV=11 življenjepis ExpAuto12CV=12 CV -ExpAuto3PCV=3 CV and more -ExpAuto4PCV=4 CV and more -ExpAuto5PCV=5 CV and more -ExpAuto6PCV=6 CV and more -ExpAuto7PCV=7 CV and more -ExpAuto8PCV=8 CV and more -ExpAuto9PCV=9 CV and more -ExpAuto10PCV=10 CV and more -ExpAuto11PCV=11 CV and more -ExpAuto12PCV=12 CV and more -ExpAuto13PCV=13 CV and more -ExpCyclo=Capacity lower to 50cm3 -ExpMoto12CV=Motorbike 1 or 2 CV -ExpMoto345CV=Motorbike 3, 4 or 5 CV -ExpMoto5PCV=Motorbike 5 CV and more +ExpAuto3PCV=3 CV in več +ExpAuto4PCV=4 CV in več +ExpAuto5PCV=5 CV in več +ExpAuto6PCV=6 CV in več +ExpAuto7PCV=7 CV in več +ExpAuto8PCV=8 CV in več +ExpAuto9PCV=9 CV in več +ExpAuto10PCV=10 CV in več +ExpAuto11PCV=11 CV in več +ExpAuto12PCV=12 CV in več +ExpAuto13PCV=13 CV in več +ExpCyclo=Zmogljivost nižja do 50cm3 +ExpMoto12CV=Motorno kolo 1 ali 2 CV +ExpMoto345CV=Motorno kolo 3, 4 ali 5 CV +ExpMoto5PCV=Motorno kolo 5 CV in več diff --git a/htdocs/langs/sl_SI/donations.lang b/htdocs/langs/sl_SI/donations.lang index c118b281e75..40312bd7aaf 100644 --- a/htdocs/langs/sl_SI/donations.lang +++ b/htdocs/langs/sl_SI/donations.lang @@ -6,7 +6,7 @@ Donor=Donator AddDonation=Ustvari donacijo NewDonation=Nova donacija DeleteADonation=Zbriši donacijo -ConfirmDeleteADonation=Are you sure you want to delete this donation? +ConfirmDeleteADonation=Ali ste prepričani, da želite izbrisati to donacijo? PublicDonation=Javna donacija DonationsArea=Področje donacij DonationStatusPromiseNotValidated=Osnutek obljube @@ -16,7 +16,7 @@ DonationStatusPromiseNotValidatedShort=Osnutek DonationStatusPromiseValidatedShort=Potrjena DonationStatusPaidShort=Prejeta DonationTitle=Prejem donacije -DonationDate=Donation date +DonationDate=Datum darovanja DonationDatePayment=Datum plačila ValidPromess=Potrjena obljuba DonationReceipt=Prejem donacije @@ -31,4 +31,5 @@ DONATION_ART200=Prikaži člen 200 iz CGI, če se vas tiče DONATION_ART238=Prikaži člen 238 iz CGI, če se vas tiče DONATION_ART885=Prikaži člen 885 iz CGI, če se vas tiče DonationPayment=Plačilo donacije -DonationValidated=Donation %s validated +DonationValidated=Donacija %s potrjena +DonationUseThirdparties=Uporabite obstoječo tretjo osebo kot koordinate donatorjev diff --git a/htdocs/langs/sl_SI/ecm.lang b/htdocs/langs/sl_SI/ecm.lang index 72e62f529cb..579b1baea22 100644 --- a/htdocs/langs/sl_SI/ecm.lang +++ b/htdocs/langs/sl_SI/ecm.lang @@ -1,12 +1,13 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=No. of documents in directory +ECMNbOfDocs=Št. dokumentov v imeniku ECMSection=Mapa ECMSectionManual=Ročna mapa ECMSectionAuto=Avtomatska mapa ECMSectionsManual=Ročna struktura ECMSectionsAuto=Avtomatska struktura +ECMSectionsMedias=Medias tree ECMSections=Mape -ECMRoot=ECM Root +ECMRoot=Koren ECM ECMNewSection=Nova mapa ECMAddSection=Dodaj mapo ECMCreationDate=Datum kreiranja @@ -14,36 +15,38 @@ ECMNbOfFilesInDir=Število datotek v mapi ECMNbOfSubDir=Število poddirektorijev ECMNbOfFilesInSubDir=Število datotek v poddirektorijih ECMCreationUser=Kreator -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Avtomatske mape se polnijo avtomatsko, ko se doda dokument s kartice elementa.
    * Ročne mape se lahko uporabijo za shranitev dokumentov, ki niso vezani na določen element. +ECMArea=Območje DMS/ECM +ECMAreaDesc=Območje DMS/ECM (sistem za upravljanje dokumentov/upravljanje elektronske vsebine) vam omogoča shranjevanje, skupno rabo in hitro iskanje vseh vrst dokumentov v Dolibarrju. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Mapa %s je bila izbrisana. -ECMSectionWasCreated=Directory %s has been created. +ECMSectionWasCreated=Imenik %s je ustvarjen. ECMSearchByKeywords=Iskanje po ključnih besedah ECMSearchByEntity=Iskanje po objektu ECMSectionOfDocuments=Mape dokumentov ECMTypeAuto=Avtomatsko -ECMDocsBy=Documents linked to %s +ECMDocsBy=Dokumenti, povezani z %s ECMNoDirectoryYet=Ni kreiranih map ShowECMSection=Prikaži mapo DeleteSection=Odstrani mapo -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ConfirmDeleteSection=Ali lahko potrdite, da želite izbrisati imenik %s ? ECMDirectoryForFiles=Odvisna mapa za datoteke -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files +CannotRemoveDirectoryContainsFilesOrDirs=Odstranitev ni mogoča, ker vsebuje nekaj datotek ali podimenikov +CannotRemoveDirectoryContainsFiles=Odstranitev ni mogoča, ker vsebuje nekaj datotek ECMFileManager=Upravljanje z datotekami -ECMSelectASection=Select a directory in the tree... -DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory. -ReSyncListOfDir=Resync list of directories -HashOfFileContent=Hash of file content -NoDirectoriesFound=No directories found -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it) -ExtraFieldsEcmFiles=Extrafields Ecm Files -ExtraFieldsEcmDirectories=Extrafields Ecm Directories -ECMSetup=ECM Setup -GenerateImgWebp=Duplicate all images with another version with .webp format -ConfirmGenerateImgWebp=If you confirm, you will generate an image in .webp format for all images currently into this folder (subfolders are not included)... -ConfirmImgWebpCreation=Confirm all images duplication -SucessConvertImgWebp=Images successfully duplicated -ECMDirName=Dir name -ECMParentDirectory=Parent directory +ECMSelectASection=Izberite imenik v drevesu ... +DirNotSynchronizedSyncFirst=Videti je, da je bil ta imenik ustvarjen ali spremenjen zunaj modula ECM. Najprej morate klikniti gumb »Ponovna sinhronizacija«, da sinhronizirate disk in bazo podatkov, da dobite vsebino tega imenika. +ReSyncListOfDir=Ponovno sinhroniziraj seznam imenikov +HashOfFileContent=Zgoščena vsebina datoteke +NoDirectoriesFound=Ni imenikov +FileNotYetIndexedInDatabase=Datoteka še ni indeksirana v bazi podatkov (poskusite jo znova naložiti) +ExtraFieldsEcmFiles=Dodatna polja Ecm datoteke +ExtraFieldsEcmDirectories=Dodatna polja Ecm Imeniki +ECMSetup=Nastavitev ECM +GenerateImgWebp=Podvojite vse slike z drugo različico s formatom .webp +ConfirmGenerateImgWebp=Če potrdite, boste ustvarili sliko v formatu .webp za vse slike, ki so trenutno v tej mapi (podmape niso vključene) ... +ConfirmImgWebpCreation=Potrdite vse podvojitve slik +SucessConvertImgWebp=Slike so bile uspešno podvojene +ECMDirName=Dir ime +ECMParentDirectory=Nadrejeni imenik diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang index a27b6fceea6..44df2c52c98 100644 --- a/htdocs/langs/sl_SI/errors.lang +++ b/htdocs/langs/sl_SI/errors.lang @@ -1,59 +1,62 @@ # Dolibarr language file - Source file is en_US - errors # No errors -NoErrorCommitIsDone=No error, we commit +NoErrorCommitIsDone=Brez napake, zavezujemo se # Errors -ErrorButCommitIsDone=Errors found but we validate despite this -ErrorBadEMail=Email %s is incorrect -ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) -ErrorBadUrl=Url %s is incorrect -ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. -ErrorRefAlreadyExists=Reference %s already exists. +ErrorButCommitIsDone=Najdene napake, vendar kljub temu preverjamo +ErrorBadEMail=E-pošta %s ni pravilna +ErrorBadMXDomain=E-pošta %s se zdi napačna (domena nima veljavnega zapisa MX) +ErrorBadUrl=Url %s ni pravilen +ErrorBadValueForParamNotAString=Neveljaven parameter. Na splošno se doda, ko manjka prevod. +ErrorRefAlreadyExists=Referenca %s že obstaja. +ErrorTitleAlreadyExists=Naslov %s že obstaja. ErrorLoginAlreadyExists=Uporabniško ime %s že obstaja. ErrorGroupAlreadyExists=Skupina %s že obstaja. -ErrorEmailAlreadyExists=Email %s already exists. +ErrorEmailAlreadyExists=E-pošta %s že obstaja. ErrorRecordNotFound=Ne najdem zapisa. +ErrorRecordNotFoundShort=Ni najdeno ErrorFailToCopyFile=Ni kopirati Datoteka '%s "nadomesti z" %s ". -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. +ErrorFailToCopyDir=Imenika » %s « ni bilo mogoče kopirati v » %s «. ErrorFailToRenameFile=Napaka pri preimenovanju datoteke '%s' v '%s'. ErrorFailToDeleteFile=Napaka pri odstranitvi datoteke '%s'. ErrorFailToCreateFile=Napaka pri kreiranju datoteke '%s'. ErrorFailToRenameDir=Napaka pri preimenovanju mape '%s' v '%s'. ErrorFailToCreateDir=Napaka pri kreiranju mape '%s'. ErrorFailToDeleteDir=Napaka pri brisanju mape '%s'. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorFailToMakeReplacementInto=Zamenjava v datoteko » %s « ni uspela. +ErrorFailToGenerateFile=Datoteke » %s « ni bilo mogoče ustvariti. ErrorThisContactIsAlreadyDefinedAsThisType=Ta kontakt je že definiran kot kontakt istega tipa. ErrorCashAccountAcceptsOnlyCashMoney=Ta bančni račun je gotovinski, zato so možna samo gotovinska plačila. ErrorFromToAccountsMustDiffers=Plačilni in ciljni bančni račun morata biti različna. -ErrorBadThirdPartyName=Bad value for third-party name -ForbiddenBySetupRules=Forbidden by setup rules -ErrorProdIdIsMandatory=The %s is mandatory -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorBadThirdPartyName=Neveljavno ime partnerja +ForbiddenBySetupRules=Prepovedano s pravili nastavitve +ErrorProdIdIsMandatory=%s je obvezen +ErrorAccountancyCodeCustomerIsMandatory=Knjigovodska šifra stranke %s je obvezna ErrorBadCustomerCodeSyntax=Napačna koda kupca -ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. +ErrorBadBarCodeSyntax=Neveljavna črtna koda. Morda ste nastavili nepravilen tip črtne kode ali pa ste določili masko črtne kode za številčenje, ki se ne ujema s skenirano vrednostjo. ErrorCustomerCodeRequired=Obvezna koda kupca -ErrorBarCodeRequired=Barcode required +ErrorBarCodeRequired=Potrebna je črtna koda ErrorCustomerCodeAlreadyUsed=Koda kupca je že uporabljena -ErrorBarCodeAlreadyUsed=Barcode already used +ErrorBarCodeAlreadyUsed=Črtna koda je že uporabljena ErrorPrefixRequired=Obvezna predpona -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code -ErrorSupplierCodeRequired=Vendor code required -ErrorSupplierCodeAlreadyUsed=Vendor code already used +ErrorBadSupplierCodeSyntax=Neveljavna dobaviteljeva koda +ErrorSupplierCodeRequired=Zahtevana koda dobavitelja +ErrorSupplierCodeAlreadyUsed=Koda dobavitelja je že uporabljena ErrorBadParameters=Napačni parametri -ErrorWrongParameters=Wrong or missing parameters -ErrorBadValueForParameter=Wrong value '%s' for parameter '%s' -ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format) +ErrorWrongParameters=Napačni ali manjkajoči parametri +ErrorBadValueForParameter=Napačna vrednost '%s' za parameter '%s' +ErrorBadImageFormat=Slikovna datoteka nima podprtega formata (Vaš PHP ne podpira funkcij za pretvorbo slik v tem formatu) ErrorBadDateFormat=Vrednost '%s "je napačen zapis datuma -ErrorWrongDate=Date is not correct! +ErrorWrongDate=Datum ni pravilen! ErrorFailedToWriteInDir=Napaka pri pisanju v mapo %s +ErrorFailedToBuildArchive=Zgradnja arhivske datoteke %s ni uspela ErrorFoundBadEmailInFile=Napačna email sintaksa v vrstici %s v datoteki (naprimer vrstica %s z emailom=%s) -ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. -ErrorFieldsRequired=Some required fields have been left blank. -ErrorSubjectIsRequired=The email subject is required +ErrorUserCannotBeDelete=Uporabnika ni mogoče izbrisati. Morda je povezan z entitetami Dolibarr. +ErrorFieldsRequired=Nekatera zahtevana polja so ostala prazna. +ErrorSubjectIsRequired=Zadeva e-poštnega sporočila je obvezna ErrorFailedToCreateDir=Kreiranje mape ni uspelo. Preverite, če ima uporabnik internetne strani dovoljenje za pisanje v mapo z Dolibarr dokumenti. Če je parameter safe_mode v tem PHP omogočen, preverite če je lastnik Dolibarr php datotek uporabnik web strežnika (ali skupina). ErrorNoMailDefinedForThisUser=Ta uporabnik nima določenega Email naslova -ErrorSetupOfEmailsNotComplete=Setup of emails is not complete +ErrorSetupOfEmailsNotComplete=Nastavitev e-pošte ni dokončana ErrorFeatureNeedJavascript=Za aktiviranje ali delovanje te funkcije je potreben javascript. Spremenite »Nastavitve – Prikaz«. ErrorTopMenuMustHaveAParentWithId0='Zgoernji' meni ne more imeti nadrejenega menija. Vnesite 0 v nadrejeni meni ali izberite vrsto menija 'Levi'. ErrorLeftMenuMustHaveAParentId='Levi' meni mora imeti Nadrejeni ID. @@ -62,273 +65,299 @@ ErrorDirNotFound=Mapa %s ni bila najdena (Napačna pot, nimate dovoljenj ErrorFunctionNotAvailableInPHP=Za to opcijo je zahtevana funkcija %s, ki pa ni na voljo v tej verziji/nastavitvah PHP. ErrorDirAlreadyExists=Mapa z enakim imenom že obstaja. ErrorFileAlreadyExists=Datoteka z enakim imenom že obstaja. -ErrorDestinationAlreadyExists=Another file with the name %s already exists. +ErrorDestinationAlreadyExists=Druga datoteka z imenom %s že obstaja. ErrorPartialFile=V strežnik ni bila prenešena celotna datoteka. ErrorNoTmpDir=Začasna mapa %s ne obstaja. ErrorUploadBlockedByAddon=PHP/Apache vtičnik je blokiral nalaganje. -ErrorFileSizeTooLarge=Datoteka je prevelika. -ErrorFieldTooLong=Field %s is too long. +ErrorFileSizeTooLarge=Velikost datoteke je prevelika ali datoteka ni na voljo. +ErrorFieldTooLong=Polje %s je predolgo. ErrorSizeTooLongForIntType=Velikost predolgo int tip (%s številke največ) ErrorSizeTooLongForVarcharType=Velikost predolgo za tip za nize (%s znakov največ) -ErrorNoValueForSelectType=Please fill value for select list -ErrorNoValueForCheckBoxType=Please fill value for checkbox list -ErrorNoValueForRadioType=Please fill value for radio list -ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value -ErrorFieldCanNotContainSpecialCharacters=The field %s must not contains special characters. -ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters and cannot contain only numbers. -ErrorFieldMustHaveXChar=The field %s must have at least %s characters. +ErrorNoValueForSelectType=Izpolnite vrednost za izbrani seznam +ErrorNoValueForCheckBoxType=Izpolnite vrednost za seznam potrditvenih polj +ErrorNoValueForRadioType=Izpolnite vrednost za radijski seznam +ErrorBadFormatValueList=Vrednost seznama ne sme imeti več kot ene vejice: %s , vendar potrebuje vsaj eno: ključ, vrednost +ErrorFieldCanNotContainSpecialCharacters=Polje %s ne sme vsebovati posebnih znakov. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Polje %s ne sme vsebovati posebnih znakov niti velikih črk in se mora začeti z abecednim znakom (a-z) +ErrorFieldMustHaveXChar=Polje %s mora imeti najmanj %s znakov. ErrorNoAccountancyModuleLoaded=Ni aktiviran računovodski modul -ErrorExportDuplicateProfil=This profile name already exists for this export set. +ErrorExportDuplicateProfil=To ime profila že obstaja za ta izvozni niz. ErrorLDAPSetupNotComplete=Dolibarr-LDAP združevanje ni popolno. ErrorLDAPMakeManualTest=Datoteka .ldif je bila ustvarjena v mapi %s. Poskusite jo naložiti ročno preko ukazne vrstice, da bi dobili več podatkov o napaki. -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled. -ErrorRefAlreadyExists=Reference %s already exists. -ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD) -ErrorRecordHasChildren=Failed to delete record since it has some child records. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object. +ErrorCantSaveADoneUserWithZeroPercentage=Ni mogoče shraniti dejanja s statusom »ni začeto«, če je izpolnjeno tudi polje »končano do«. +ErrorRefAlreadyExists=Referenca %s že obstaja. +ErrorPleaseTypeBankTransactionReportName=Prosimo, vnesite ime bančnega izpiska, kjer je treba prijaviti vnos (oblika LLLLMM ali LLLLMMDD) +ErrorRecordHasChildren=Zapisa ni bilo mogoče izbrisati, ker ima nekaj podrejenih zapisov. +ErrorRecordHasAtLeastOneChildOfType=Objekt %s ima vsaj enega podrejenega tipa %s +ErrorRecordIsUsedCantDelete=Zapisa ni mogoče izbrisati. Je že uporabljen ali vključen v drug objekt. ErrorModuleRequireJavascript=Javascript ne sme biti izklopljen, če želite da ta funkcija deluje. Javascript vklopite/izklopite v meniju Domov->Nastavitve->Prikaz. ErrorPasswordsMustMatch=Obe vneseni gesli se morata ujemati -ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. -ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s -ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s -ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref -ErrorsOnXLines=%s errors found +ErrorContactEMail=Prišlo je do tehnične napake. Obrnite se na skrbnika na naslednji e-poštni naslov %s in v sporočilu navedite kodo napake %s ali dodajte zaslonsko kopijo te strani. +ErrorWrongValueForField=Field %s : ' %s ' does not match regex rule %s +ErrorHtmlInjectionForField=Polje %s : Vrednost ' %s ' vsebuje zlonamerne podatke, ki niso dovoljeni +ErrorFieldValueNotIn=Field %s : ' %s ' is not a value found in field %s of %s +ErrorFieldRefNotIn=Field %s : ' A0ECB2EC87fz0 A09FZ0 A03658F8Z0' ni A03658F8Z0 ' +ErrorMultipleRecordFoundFromRef=Pri iskanju z ref %s je bilo najdenih več zapisov. Ni mogoče vedeti, kateri ID uporabiti. +ErrorsOnXLines=%s najdene napake ErrorFileIsInfectedWithAVirus=Antivirusni program ni mogel potrditi datoteke (datoteka je morda okužena) -ErrorSpecialCharNotAllowedForField=Posebni znaki niso dovoljeni v polju "%s" ErrorNumRefModel=V bazi podatkov obstaja referenca (%s), ki ni kompatibilna s tem pravilom za številčenje. Odstranite zapis ali preimenujte referenco za aktivacijo tega modula. -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor -ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorQtyTooLowForThisSupplier=Količina je za dobavitelja prenizka ali ni določene cene za izdelek +ErrorOrdersNotCreatedQtyTooLow=Nekatera naročila niso bila ustvarjena zaradi premajhnih količin +ErrorModuleSetupNotComplete=Zdi se, da nastavitev modula %s ni dokončana. Pojdite na Domov - Nastavitve - Moduli za dokončanje. ErrorBadMask=Napaka na maski ErrorBadMaskFailedToLocatePosOfSequence=Napaka, maska je brez zaporedne številke ErrorBadMaskBadRazMonth=Napaka, napačna resetirana vrednost -ErrorMaxNumberReachForThisMask=Maximum number reached for this mask -ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits -ErrorSelectAtLeastOne=Error, select at least one entry. -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated +ErrorMaxNumberReachForThisMask=Za to masko je bilo doseženo največje število +ErrorCounterMustHaveMoreThan3Digits=Števec mora imeti več kot 3 števke +ErrorSelectAtLeastOne=Napaka, izberite vsaj en vnos. +ErrorDeleteNotPossibleLineIsConsolidated=Brisanje ni mogoče, ker je zapis povezan z bančno transakcijo, ki je poravnana ErrorProdIdAlreadyExist=%s je dodeljen v drugo tretjo ErrorFailedToSendPassword=Ni bilo mogoče poslati gesla ErrorFailedToLoadRSSFile=Ne Knjiga. Poskusite dodati stalno MAIN_SIMPLEXMLLOAD_DEBUG sporočila o napakah, če ne zagotavlja dovolj informacij. -ErrorForbidden=Access denied.
    You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. +ErrorForbidden=Dostop zavrnjen.
    Poskušate dostopati do strani, območja ali funkcije onemogočenega modula ali ne da bi bili v overjeni seji ali pa to ni dovoljeno vašemu uporabniku. ErrorForbidden2=Dovoljenje za to prijavo se lahko opredeli skrbnik Dolibarr iz menija %s-> %s. ErrorForbidden3=Zdi se, da je Dolibarr ne uporablja prek overjeno sejo. Oglejte si namestitveno dokumentacijo Dolibarr vedeti, kako upravljati authentications (htaccess, mod_auth ali drugo ...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=Opomba: počistite piškotke brskalnika, da uničite obstoječe seje za to prijavo. ErrorNoImagickReadimage=Razred Imagick ni mogoče najti v tem PHP. Št Predogled je lahko na voljo. Skrbniki lahko onemogočite to kartico od Setup meniju - Display. ErrorRecordAlreadyExists=Zapis že obstaja -ErrorLabelAlreadyExists=This label already exists +ErrorLabelAlreadyExists=Ta oznaka že obstaja ErrorCantReadFile=Ni mogoče prebrati Datoteka '%s želiš ErrorCantReadDir=Ni mogoče prebrati imenik '%s " -ErrorBadLoginPassword=Slaba vrednost za prijavo ali geslo +ErrorBadLoginPassword=Neveljavno uporabniško ime ali geslo ErrorLoginDisabled=Vaš račun je bil onemogočen -ErrorFailedToRunExternalCommand=Failed to run external command. Check it is available and runnable by your PHP server user. Check also the command is not protected on shell level by a security layer like apparmor. +ErrorFailedToRunExternalCommand=Zagon zunanjega ukaza ni uspel. Preverite, ali je na voljo in ali ga lahko izvaja vaš uporabnik strežnika PHP. Preverite tudi, ali ukaz ni zaščiten na ravni lupine z varnostno plastjo, kot je apparmor. ErrorFailedToChangePassword=Ni, da spremenite geslo ErrorLoginDoesNotExists=Uporabnik s prijavo %s ni bilo mogoče najti. ErrorLoginHasNoEmail=Ta uporabnik nima e-poštni naslov. Obdelati prekinjena. -ErrorBadValueForCode=Slaba vrednost za varnostno kodo. Poskusite znova z novo vrednost ... +ErrorBadValueForCode=Neveljavna varnostna koda. Poskusite znova... ErrorBothFieldCantBeNegative=Polja %s in %s ne more biti tako negativna -ErrorFieldCantBeNegativeOnInvoice=Field %s cannot be negative on this type of invoice. If you need to add a discount line, just create the discount first (from field '%s' in thirdparty card) and apply it to the invoice. -ErrorLinesCantBeNegativeForOneVATRate=Total of lines (net of tax) can't be negative for a given not null VAT rate (Found a negative total for VAT rate %s%%). -ErrorLinesCantBeNegativeOnDeposits=Lines can't be negative in a deposit. You will face problems when you will need to consume the deposit in final invoice if you do so. -ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative +ErrorFieldCantBeNegativeOnInvoice=Polje %s na tej vrsti računa ne more biti negativno. Če morate dodati vrstico za popust, najprej ustvarite popust (iz polja '%s' na kartici tretje osebe) in ga uporabite na računu. +ErrorLinesCantBeNegativeForOneVATRate=Skupni znesek vrstic (brez davka) ne more biti negativen za dano stopnjo DDV, ki ni ničelna (Najdeno je negativno skupno število za stopnjo DDV %s %%). +ErrorLinesCantBeNegativeOnDeposits=Vrstice v depozitu ne smejo biti negativne. Če boste to storili, se boste srečali s težavami, ko boste morali porabiti polog v končnem računu. +ErrorQtyForCustomerInvoiceCantBeNegative=Količina za vrstico v računih strank ne sme biti negativna ErrorWebServerUserHasNotPermission=Uporabniški račun %s uporablja za izvedbo spletni strežnik nima dovoljenja za to ErrorNoActivatedBarcode=Noben tip črtne kode ni aktiviran -ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP -ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package -ErrorModuleFileRequired=You must select a Dolibarr module package file -ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal -ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base -ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base -ErrorNewValueCantMatchOldValue=New value can't be equal to old one -ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. -ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start'). -ErrorFailedToAddContact=Failed to add contact -ErrorDateMustBeBeforeToday=The date must be lower than today -ErrorDateMustBeInFuture=The date must be greater than today -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. -ErrorPHPNeedModule=Error, your PHP must have module %s installed to use this feature. -ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s -ErrorWarehouseMustDiffers=Source and target warehouses must differs -ErrorBadFormat=Bad format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. -ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid -ErrorPriceExpression1=Cannot assign to constant '%s' -ErrorPriceExpression2=Cannot redefine built-in function '%s' -ErrorPriceExpression3=Undefined variable '%s' in function definition -ErrorPriceExpression4=Illegal character '%s' -ErrorPriceExpression5=Unexpected '%s' -ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected) -ErrorPriceExpression8=Unexpected operator '%s' -ErrorPriceExpression9=An unexpected error occured -ErrorPriceExpression10=Operator '%s' lacks operand -ErrorPriceExpression11=Expecting '%s' -ErrorPriceExpression14=Division by zero -ErrorPriceExpression17=Undefined variable '%s' -ErrorPriceExpression19=Expression not found -ErrorPriceExpression20=Empty expression -ErrorPriceExpression21=Empty result '%s' -ErrorPriceExpression22=Negative result '%s' -ErrorPriceExpression23=Unknown or non set variable '%s' in %s -ErrorPriceExpression24=Variable '%s' exists but has no value -ErrorPriceExpressionInternal=Internal error '%s' -ErrorPriceExpressionUnknown=Unknown error '%s' -ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs -ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on product '%s' requiring lot/serial information -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action -ErrorGlobalVariableUpdater0=HTTP request failed with error '%s' -ErrorGlobalVariableUpdater1=Invalid JSON format '%s' -ErrorGlobalVariableUpdater2=Missing parameter '%s' -ErrorGlobalVariableUpdater3=The requested data was not found in result -ErrorGlobalVariableUpdater4=SOAP client failed with error '%s' -ErrorGlobalVariableUpdater5=No global variable selected -ErrorFieldMustBeANumeric=Field %s must be a numeric value -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter it's status. -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) -ErrorSavingChanges=An error has occurred when saving the changes -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship -ErrorFileMustHaveFormat=File must have format %s -ErrorFilenameCantStartWithDot=Filename can't start with a '.' -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first. -ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. -ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. -ErrorTaskAlreadyAssigned=Task already assigned to user -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorModuleFileSeemsToHaveAWrongFormat2=At least one mandatory directory must exists into zip of module: %s or %s -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s -ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. -ErrorNoWarehouseDefined=Error, no warehouses defined. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) -ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. -ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. -ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not -ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before. -ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently. -ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference. -ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using kits to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number. -ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product -ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use -ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually. -ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s -ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set. -ErrorURLMustEndWith=URL %s must end %s -ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// -ErrorHostMustNotStartWithHttp=Host name %s must NOT start with http:// or https:// -ErrorNewRefIsAlreadyUsed=Error, the new reference is already used -ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. -ErrorSearchCriteriaTooSmall=Search criteria too small. -ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to be disabled -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled -ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist. -ErrorFieldRequiredForProduct=Field '%s' is required for product %s -ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s. -ErrorAddAtLeastOneLineFirst=Add at least one line first -ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible. -ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Error, language is mandatory if you set the page as a translation of another one. -ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one. -ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in warehouse "%s". -ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s". -ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded) -ErrorTooManyDifferentValueForSelectedGroupBy=Found too many different value (more than %s) for the field '%s', so we can't use it as a 'Group by' for graphics. The field 'Group By' has been removed. May be you wanted to use it as an X-Axis ? -ErrorReplaceStringEmpty=Error, the string to replace into is empty -ErrorProductNeedBatchNumber=Error, product '%s' need a lot/serial number -ErrorProductDoesNotNeedBatchNumber=Error, product '%s' does not accept a lot/serial number -ErrorFailedToReadObject=Error, failed to read object of type %s -ErrorParameterMustBeEnabledToAllwoThisFeature=Error, parameter %s must be enabled into conf/conf.php to allow use of Command Line Interface by the internal job scheduler -ErrorLoginDateValidity=Error, this login is outside the validity date range -ErrorValueLength=Length of field '%s' must be higher than '%s' -ErrorReservedKeyword=The word '%s' is a reserved keyword -ErrorNotAvailableWithThisDistribution=Not available with this distribution -ErrorPublicInterfaceNotEnabled=Public interface was not enabled -ErrorLanguageRequiredIfPageIsTranslationOfAnother=The language of new page must be defined if it is set as a translation of another page -ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=The language of new page must not be the source language if it is set as a translation of another page -ErrorAParameterIsRequiredForThisOperation=A parameter is mandatory for this operation -ErrorDateIsInFuture=Error, the date can't be in the future -ErrorAnAmountWithoutTaxIsRequired=Error, amount is mandatory -ErrorAPercentIsRequired=Error, please fill in the percentage correctly -ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of account -ErrorFailedToFindEmailTemplate=Failed to find template with code name %s -ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. -ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary -CheckVersionFail=Version check fail -ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it -ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. -ErrorIsNotADraft=%s is not a draft -ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrUnzipFails=Razpakiranje %s z ZipArchive ni uspelo +ErrNoZipEngine=V tem PHP-ju ni mehanizma za zip/razpakiranje datoteke %s +ErrorFileMustBeADolibarrPackage=Datoteka %s mora biti zip paket Dolibarr +ErrorModuleFileRequired=Izbrati morate datoteko paketa modula Dolibarr +ErrorPhpCurlNotInstalled=PHP CURL ni nameščen, to je bistveno za pogovor s Paypalom +ErrorFailedToAddToMailmanList=Zapisa %s ni bilo mogoče dodati na seznam Mailman %s ali bazo SPIP +ErrorFailedToRemoveToMailmanList=Zapisa %s ni bilo mogoče odstraniti na seznam Mailman %s ali bazo SPIP +ErrorNewValueCantMatchOldValue=Nova vrednost ne more biti enaka stari +ErrorFailedToValidatePasswordReset=Gesla ni bilo mogoče znova aktivirati. Morda je bil ponovni zagon že izveden (to povezavo lahko uporabite samo enkrat). Če ne, poskusite znova zagnati postopek ponovnega zagona. +ErrorToConnectToMysqlCheckInstance=Povezava z bazo podatkov ne uspe. Preverite, ali strežnik baze podatkov deluje (na primer z mysql/mariadb ga lahko zaženete iz ukazne vrstice s 'sudo service mysql start'). +ErrorFailedToAddContact=Stika ni bilo mogoče dodati +ErrorDateMustBeBeforeToday=Datum mora biti nižji od današnjega +ErrorDateMustBeInFuture=Datum mora biti večji od današnjega +ErrorPaymentModeDefinedToWithoutSetup=Način plačila je bil nastavljen na vrsto %s, vendar nastavitev modula Račun ni bila dokončana za določitev informacij, ki se prikažejo za ta način plačila. +ErrorPHPNeedModule=Napaka, vaš PHP mora imeti nameščen modul %s za uporabo te funkcije. +ErrorOpenIDSetupNotComplete=Nastavili ste konfiguracijsko datoteko Dolibarr, da omogoča preverjanje pristnosti OpenID, vendar URL storitve OpenID ni definiran v konstanti %s +ErrorWarehouseMustDiffers=Izvorna in ciljna skladišča se morajo razlikovati +ErrorBadFormat=Neveljavna oblika! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Napaka, ta član še ni povezan z nobenim partnerjem. Povežite člana z obstoječim partnerjem ali ustvarite novega partnerja, preden ustvarite naročnino z računom. +ErrorThereIsSomeDeliveries=Napaka, nekaj dostav je povezanih s to pošiljko. Brisanje zavrnjeno. +ErrorCantDeletePaymentReconciliated=Plačila, ki je ustvarilo bančni vnos, ki je bil usklajen, ni mogoče izbrisati +ErrorCantDeletePaymentSharedWithPayedInvoice=Plačila, ki ga deli vsaj en račun s statusom Plačano, ni mogoče izbrisati +ErrorPriceExpression1=Ni mogoče dodeliti konstanti '%s' +ErrorPriceExpression2=Ni mogoče ponovno definirati vgrajene funkcije '%s' +ErrorPriceExpression3=Nedefinirana spremenljivka '%s' v definiciji funkcije +ErrorPriceExpression4=Nedovoljen znak '%s' +ErrorPriceExpression5=Nepričakovan '%s' +ErrorPriceExpression6=Napačno število argumentov (dano %s, pričakovano %s) +ErrorPriceExpression8=Nepričakovan operater '%s' +ErrorPriceExpression9=Prišlo je do nepričakovane napake +ErrorPriceExpression10=Operatorju '%s' manjka operand +ErrorPriceExpression11=Pričakujem '%s' +ErrorPriceExpression14=Deljenje z ničlo +ErrorPriceExpression17=Nedefinirana spremenljivka '%s' +ErrorPriceExpression19=Izraza ni bilo mogoče najti +ErrorPriceExpression20=Prazen izraz +ErrorPriceExpression21=Prazen rezultat '%s' +ErrorPriceExpression22=Negativen rezultat '%s' +ErrorPriceExpression23=Neznana ali nenastavljena spremenljivka '%s' v %s +ErrorPriceExpression24=Spremenljivka '%s' obstaja, vendar nima vrednosti +ErrorPriceExpressionInternal=Notranja napaka '%s' +ErrorPriceExpressionUnknown=Neznana napaka '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Izvorna in ciljna skladišča se morajo razlikovati +ErrorTryToMakeMoveOnProductRequiringBatchData=Napaka, poskus premikanja zalog brez podatkov o lotu/seriji, na izdelku '%s' zahteva podatke o lotu/seriji +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Vse posnete sprejeme je treba najprej preveriti (odobriti ali zavrniti), preden jim dovolimo to dejanje +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Vsi posneti sprejemi morajo biti najprej preverjeni (odobreni), preden se jim dovoli to dejanje +ErrorGlobalVariableUpdater0=Zahteva HTTP ni uspela z napako '%s' +ErrorGlobalVariableUpdater1=Neveljavna oblika JSON '%s' +ErrorGlobalVariableUpdater2=Manjka parameter '%s' +ErrorGlobalVariableUpdater3=Zahtevani podatki niso bili najdeni v rezultatu +ErrorGlobalVariableUpdater4=Odjemalec SOAP ni uspel z napako '%s' +ErrorGlobalVariableUpdater5=Izbrana ni nobena globalna spremenljivka +ErrorFieldMustBeANumeric=Polje %s mora biti številska vrednost +ErrorMandatoryParametersNotProvided=Obvezni parametri niso navedeni +ErrorOppStatusRequiredIfAmount=Nastavite ocenjeni znesek za to potencialno stranko. Zato morate vnesti tudi njegov status. +ErrorFailedToLoadModuleDescriptorForXXX=Nalaganje razreda deskriptorja modula za %s ni uspelo +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Nepravilna definicija polja za izbor v deskriptorju modula (neveljaven ključ fk_menu) +ErrorSavingChanges=Pri shranjevanju sprememb je prišlo do napake +ErrorWarehouseRequiredIntoShipmentLine=Za pošiljanje je potrebno skladišče na liniji +ErrorFileMustHaveFormat=Datoteka mora imeti obliko %s +ErrorFilenameCantStartWithDot=Ime datoteke se ne sme začeti z '.' +ErrorSupplierCountryIsNotDefined=Država ni določena. Najprej popravi to. +ErrorsThirdpartyMerge=Zapisov ni bilo mogoče združiti. Zahteva preklicana. +ErrorStockIsNotEnoughToAddProductOnOrder=Zaloga izdelka %s ni dovolj za dodajanje v novo naročilo. +ErrorStockIsNotEnoughToAddProductOnInvoice=Zaloge ni dovolj za izdelek %s, da bi ga dodali na nov račun. +ErrorStockIsNotEnoughToAddProductOnShipment=Zaloge ni dovolj, da bi izdelek %s dodali v novo pošiljko. +ErrorStockIsNotEnoughToAddProductOnProposal=Zaloga ni dovolj za izdelek %s, da bi ga dodali v novo ponudbo. +ErrorFailedToLoadLoginFileForMode=Pridobitev ključa za prijavo za način '%s' ni uspela. +ErrorModuleNotFound=Datoteka modula ni bila najdena. +ErrorFieldAccountNotDefinedForBankLine=Vrednost za računovodski račun ni definirana za ID izvorne vrstice %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Vrednost za računovodski račun ni določena za ID računa %s (%s) +ErrorFieldAccountNotDefinedForLine=Vrednost za računovodski račun ni določena za vrstico (%s) +ErrorBankStatementNameMustFollowRegex=Napaka, ime bančnega izpiska mora slediti naslednjemu sintaksičnemu pravilu %s +ErrorPhpMailDelivery=Prepričajte se, da ne uporabljate prevelikega števila prejemnikov in da vsebina vašega e-poštnega sporočila ni podobna neželeni pošti. Prosite tudi svojega skrbnika, da preveri datoteke dnevnikov požarnega zidu in strežnika za popolnejše informacije. +ErrorUserNotAssignedToTask=Uporabnik mora biti dodeljen nalogi, da lahko vnese porabljen čas. +ErrorTaskAlreadyAssigned=Naloga je že dodeljena uporabniku +ErrorModuleFileSeemsToHaveAWrongFormat=Zdi se, da ima paket modula napačno obliko. +ErrorModuleFileSeemsToHaveAWrongFormat2=V zip modula mora obstajati vsaj en obvezni imenik: %s ali %s +ErrorFilenameDosNotMatchDolibarrPackageRules=Ime paketa modula ( %s ) se ne ujema s pričakovano sintakso imena: %s +ErrorDuplicateTrigger=Napaka, podvojeno ime sprožilca %s. Že naloženo iz %s. +ErrorNoWarehouseDefined=Napaka, ni določenih skladišč. +ErrorBadLinkSourceSetButBadValueForRef=Povezava, ki jo uporabljate, ni veljavna. 'Vir' za plačilo je določen, vendar vrednost za 'ref' ni veljavna. +ErrorTooManyErrorsProcessStopped=Preveč napak. Postopek je bil ustavljen. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Množično preverjanje ni mogoče, če je za to dejanje nastavljena možnost povečanja/zmanjšanja zalog (potrditi morate enega za drugim, da lahko določite skladišče za povečanje/zmanjšanje) +ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s mora imeti status 'Osnutek', da je preverjen. +ErrorObjectMustHaveLinesToBeValidated=Objekt %s mora imeti vrstice za preverjanje. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Z množično akcijo »Pošlji po e-pošti« lahko pošiljate samo potrjene račune. +ErrorChooseBetweenFreeEntryOrPredefinedProduct=Izbrati morate, ali je artikel vnaprej določen izdelek ali ne +ErrorDiscountLargerThanRemainToPaySplitItBefore=Popust, ki ga poskušate uveljaviti, je večji od preostalega zneska za plačilo. Pred tem popust razdelite na 2 manjša popusta. +ErrorFileNotFoundWithSharedLink=Datoteka ni bila najdena. Morda je bil ključ za skupno rabo spremenjen ali pa je bila datoteka nedavno odstranjena. +ErrorProductBarCodeAlreadyExists=Črtna koda izdelka %s že obstaja na drugi referenci izdelka. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Upoštevajte tudi, da uporaba kompletov za samodejno povečanje/zmanjšanje podizdelkov ni mogoča, če vsaj en podizdelek (ali podizdelek podizdelkov) potrebuje serijsko številko/številko serije. +ErrorDescRequiredForFreeProductLines=Opis je obvezen za linije z brezplačnim izdelkom +ErrorAPageWithThisNameOrAliasAlreadyExists=Stran/vsebnik %s ima isto ime ali nadomestni vzdevek kot tisti, ki ga poskušate uporabiti +ErrorDuringChartLoad=Napaka pri nalaganju kontnega načrta. Če nekaj računov ni bilo naloženih, jih lahko še vedno vnesete ročno. +ErrorBadSyntaxForParamKeyForContent=Neveljaven param keyforcontent. Vrednost se začne z %s ali %s +ErrorVariableKeyForContentMustBeSet=Napaka, nastaviti je treba konstanto z imenom %s (z besedilno vsebino za prikaz) ali %s (z zunanjim URL-jem za prikaz). +ErrorURLMustEndWith=URL %s se mora končati %s +ErrorURLMustStartWithHttp=URL %s se mora začeti s http:// ali https:// +ErrorHostMustNotStartWithHttp=Ime gostitelja %s se NE sme začeti s http:// ali https:// +ErrorNewRefIsAlreadyUsed=Napaka, nova referenca je že uporabljena +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Napaka, brisanje plačila vezanega na zaprti račun ni mogoče. +ErrorSearchCriteriaTooSmall=Kriteriji iskanja so premajhni. +ErrorObjectMustHaveStatusActiveToBeDisabled=Predmeti morajo imeti status 'Aktivno', da so onemogočeni +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Predmeti morajo imeti status 'Osnutek' ali 'Onemogočeno', da so omogočeni +ErrorNoFieldWithAttributeShowoncombobox=Nobeno polje nima lastnosti 'showoncombobox' v definiciji predmeta '%s'. Ni načina, da bi prikazal combolist. +ErrorFieldRequiredForProduct=Polje '%s' je obvezno za izdelek %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. +ProblemIsInSetupOfTerminal=Težava je v nastavitvi terminala %s. +ErrorAddAtLeastOneLineFirst=Najprej dodajte vsaj eno vrstico +ErrorRecordAlreadyInAccountingDeletionNotPossible=Napaka, zapis je že prenesen v računovodstvo, brisanje ni možno. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Napaka, jezik je obvezen, če nastavite stran kot prevod druge strani. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Napaka, jezik prevedene strani je isti kot ta. +ErrorBatchNoFoundForProductInWarehouse=Ni najdene serije/serije za izdelek "%s" v skladišču "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Ni zadostne količine za ta lot/serijo za izdelek "%s" v skladišču "%s". +ErrorOnlyOneFieldForGroupByIsPossible=Možno je le 1 polje za 'Združi po' (druga so zavržena) +ErrorTooManyDifferentValueForSelectedGroupBy=Našli smo preveč različnih vrednosti (več kot %s ) za polje ' %s ', zato ga ne moremo uporabiti kot 'Združi po' za grafiko Polje 'Združi po' je bilo odstranjeno. Morda ste ga želeli uporabiti kot X-os? +ErrorReplaceStringEmpty=Napaka, niz za zamenjavo je prazen +ErrorProductNeedBatchNumber=Napaka, izdelek ' %s ' potrebuje lot/serijsko številko +ErrorProductDoesNotNeedBatchNumber=Napaka, izdelek ' %s ' ne sprejema serije/serijske številke +ErrorFailedToReadObject=Napaka, branje predmeta vrste %s ni uspelo +ErrorParameterMustBeEnabledToAllwoThisFeature=Napaka, parameter %s mora biti omogočen v conf/conf.php , da omogočite uporabo vmesnika ukazne vrstice s strani notranjega načrtovalca opravil. +ErrorLoginDateValidity=Napaka, ta prijava je izven obdobja veljavnosti +ErrorValueLength=Dolžina polja ' %s ' mora biti večja od ' %s ' +ErrorReservedKeyword=Beseda ' %s ' je rezervirana ključna beseda +ErrorNotAvailableWithThisDistribution=Ni na voljo s to distribucijo +ErrorPublicInterfaceNotEnabled=Javni vmesnik ni bil omogočen +ErrorLanguageRequiredIfPageIsTranslationOfAnother=Jezik nove strani je treba določiti, če je nastavljena kot prevod druge strani +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=Jezik nove strani ne sme biti izvorni jezik, če je nastavljen kot prevod druge strani +ErrorAParameterIsRequiredForThisOperation=Parameter je obvezen za to operacijo +ErrorDateIsInFuture=Napaka, datum ne more biti v prihodnosti +ErrorAnAmountWithoutTaxIsRequired=Napaka, znesek je obvezen +ErrorAPercentIsRequired=Napaka, odstotek vnesite pravilno +ErrorYouMustFirstSetupYourChartOfAccount=Najprej morate nastaviti svoj kontni načrt +ErrorFailedToFindEmailTemplate=Predloge s kodnim imenom %s ni bilo mogoče najti +ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Trajanje ni določeno v storitvi. Ni načina za izračun cene ure. +ErrorActionCommPropertyUserowneridNotDefined=Potreben je lastnik uporabnika +ErrorActionCommBadType=Izbrana vrsta dogodka (id: %s, koda: %s) ne obstaja v slovarju vrste dogodka +CheckVersionFail=Preverjanje različice ni uspelo +ErrorWrongFileName=Ime datoteke ne sme vsebovati __NEKAJ__ +ErrorNotInDictionaryPaymentConditions=Ni v slovarju plačilnih pogojev, prosimo, spremenite. +ErrorIsNotADraft=%s ni osnutek +ErrorExecIdFailed=Ni mogoče izvesti ukaza "id" +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired +ErrorNotApproverForHoliday=Niste odobritelj dopusta %s +ErrorAttributeIsUsedIntoProduct=Ta atribut se uporablja v eni ali več različicah izdelka +ErrorAttributeValueIsUsedIntoProduct=Ta vrednost atributa se uporablja v eni ali več različicah izdelka +ErrorPaymentInBothCurrency=Napaka, vsi zneski morajo biti vneseni v isti stolpec +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Poskušate plačati račune v valuti %s z računa z valuto %s +ErrorInvoiceLoadThirdParty=Ne morem naložiti predmeta tretje osebe za račun "%s" +ErrorInvoiceLoadThirdPartyKey=Ključ tretje osebe "%s" ni nastavljen za račun "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Trenutno stanje objekta ne dovoljuje brisanja vrstice +ErrorAjaxRequestFailed=Zahteva ni uspela +ErrorThirpdartyOrMemberidIsMandatory=Partner ali član partnerstva je obvezen +ErrorFailedToWriteInTempDirectory=Pisanje v začasni imenik ni uspelo +ErrorQuantityIsLimitedTo=Količina je omejena na %s +ErrorFailedToLoadThirdParty=Ni bilo mogoče najti/naložiti partnerja z id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Ta način plačila ni bančni račun +ErrorStripeCustomerNotFoundCreateFirst=Stranka Stripe ni nastavljena za tega partnerja (ali nastavljena na vrednost, izbrisano na strani Stripe). Najprej ga ustvarite (ali znova pripnite). +ErrorCharPlusNotSupportedByImapForSearch=Iskanje IMAP ne more pri pošiljatelju ali prejemniku iskati niza, ki vsebuje znak + +ErrorTableNotFound=Tabela %s ni najdena +ErrorValueForTooLow=Vrednost za %s je prenizka +ErrorValueCantBeNull=Vrednost za %s ne sme biti ničelna +ErrorDateOfMovementLowerThanDateOfFileTransmission=Datum bančne transakcije ne sme biti nižji od datuma prenosa datoteke +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings -WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. -WarningMandatorySetupNotComplete=Click here to setup mandatory parameters -WarningEnableYourModulesApplications=Click here to enable your modules and applications +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Vaš PHP parameter upload_max_filesize (%s) je višji od PHP parametra post_max_size (%s). To ni dosledna nastavitev. +WarningPasswordSetWithNoAccount=Za tega člana je bilo nastavljeno geslo. Vendar ni bil ustvarjen noben uporabniški račun. To geslo je torej shranjeno, vendar ga ni mogoče uporabiti za prijavo v Dolibarr. Lahko ga uporablja zunanji modul/vmesnik, vendar če vam ni treba določiti prijave ali gesla za člana, lahko onemogočite možnost »Upravljanje prijave za vsakega člana« v nastavitvah modula Član. Če morate upravljati prijavo, vendar ne potrebujete gesla, lahko to polje pustite prazno, da se izognete temu opozorilu. Opomba: E-pošta se lahko uporablja tudi kot prijava, če je član povezan z uporabnikom. +WarningMandatorySetupNotComplete=Kliknite tukaj za nastavitev glavnih parametrov +WarningEnableYourModulesApplications=Kliknite tukaj, da omogočite svoje module in aplikacije WarningSafeModeOnCheckExecDir=Pozor, PHP opcija safe_mode je vklopljena, zato mora biti ukaz shranjen znotraj mape, ki jo določa php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=Zaznamek s tem imenom ali tem ciljem (URL) že obstaja. WarningPassIsEmpty=Pozor, geslo za bazo podatkov je prazno. To lahko pomeni varnostno luknjo. Zato morate dodati geslo v vašo bazo podatkov in spremeniti datoteko conf.php. WarningConfFileMustBeReadOnly=Pozor, vašo konfiguracijsko datoteko (htdocs/conf/conf.php) lahko prepiše web strežnik. To je resna varnostna luknja. Spremenite dovoljenja datoteke, da bo za uporabnika web strežnika možno samo branje. Če uporabljate Windows in FAT format diska, morate vedeti, da ta datotečni sistem ne omogoča dodajanja dovoljenj datotekam, zato ne more biti povsem varen. WarningsOnXLines=Opozorilo na %s vrstice izvorne kode -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. -WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. -WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. -WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. -WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to %s when using the mass actions on lists -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report -WarningProjectDraft=Project is still in draft mode. Don't forget to validate it if you plan to use tasks. -WarningProjectClosed=Project is closed. You must re-open it first. -WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list. -WarningFailedToAddFileIntoDatabaseIndex=Warning, failed to add file entry into ECM database index table -WarningTheHiddenOptionIsOn=Warning, the hidden option %s is on. -WarningCreateSubAccounts=Warning, you can't create directly a sub account, you must create a third party or an user and assign them an accounting code to find them in this list -WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. -WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. -WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningNoDocumentModelActivated=Noben model za ustvarjanje dokumentov ni bil aktiviran. Model bo privzeto izbran, dokler ne preverite nastavitev modula. +WarningLockFileDoesNotExists=Opozorilo, ko je namestitev končana, morate onemogočiti orodja za namestitev/selitev tako, da dodate datoteko install.lock v imenik %s . Izpustitev ustvarjanja te datoteke je resno varnostno tveganje. +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. +WarningCloseAlways=Opozorilo, zapiranje se izvede, tudi če se količina med izvornim in ciljnim elementom razlikuje. To funkcijo omogočite previdno. +WarningUsingThisBoxSlowDown=Opozorilo, uporaba tega polja resno upočasni vse strani, ki prikazujejo polje. +WarningClickToDialUserSetupNotComplete=Nastavitev podatkov ClickToDial za vašega uporabnika ni dokončana (glejte zavihek ClickToDial na vaši uporabniški kartici). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Funkcija je onemogočena, ko je nastavitev zaslona optimizirana za slepe osebe ali brskalnike besedila. +WarningPaymentDateLowerThanInvoiceDate=Datum plačila (%s) je pred datumom računa (%s) za račun %s. +WarningTooManyDataPleaseUseMoreFilters=Preveč podatkov (več kot %s vrstic). Uporabite več filtrov ali nastavite konstanto %s na višjo mejo. +WarningSomeLinesWithNullHourlyRate=Nekatere ure so zabeležili nekateri uporabniki, njihova urna postavka pa ni bila določena. Uporabljena je bila vrednost 0 %s na uro, vendar lahko to povzroči napačno vrednotenje porabljenega časa. +WarningYourLoginWasModifiedPleaseLogin=Vaša prijava je bila spremenjena. Zaradi varnosti se boste morali pred naslednjim dejanjem prijaviti z novo prijavo. +WarningAnEntryAlreadyExistForTransKey=Vnos za ključ prevajanja za ta jezik že obstaja +WarningNumberOfRecipientIsRestrictedInMassAction=Opozorilo, pri uporabi množičnih dejanj na seznamih je število različnih prejemnikov omejeno na %s +WarningDateOfLineMustBeInExpenseReportRange=Opozorilo, datum vrstice ni v obsegu poročila o stroških +WarningProjectDraft=Projekt je še vedno v osnutku. Ne pozabite ga potrditi, če nameravate uporabljati naloge. +WarningProjectClosed=Projekt je zaprt. Najprej ga morate znova odpreti. +WarningSomeBankTransactionByChequeWereRemovedAfter=Nekatere bančne transakcije so bile odstranjene, potem ko je bilo ustvarjeno potrdilo, vključno z njimi. Tako se lahko število čekov in skupno število prejemkov razlikuje od števila in skupnega zneska na seznamu. +WarningFailedToAddFileIntoDatabaseIndex=Opozorilo, dodajanje vnosa datoteke v indeksno tabelo baze podatkov ECM ni uspelo +WarningTheHiddenOptionIsOn=Opozorilo, vklopljena je skrita možnost %s . +WarningCreateSubAccounts=Opozorilo, podračuna ne morete ustvariti neposredno, ustvariti morate tretjo osebo ali uporabnika in mu dodeliti kodo računovodstva, da ga najdete na tem seznamu +WarningAvailableOnlyForHTTPSServers=Na voljo samo, če uporabljate zaščiteno povezavo HTTPS. +WarningModuleXDisabledSoYouMayMissEventHere=Modul %s ni bil omogočen. Tako lahko zamudite veliko dogodkov tukaj. +WarningPaypalPaymentNotCompatibleWithStrict=Zaradi vrednosti »Strict« funkcije spletnega plačevanja ne delujejo pravilno. Namesto tega uporabite "Lax". +WarningThemeForcedTo=Opozorilo, tema je bila prisiljena %s zaradi skrite konstante MAIN_FORCETHEME +WarningPagesWillBeDeleted=Opozorilo, s tem boste izbrisali tudi vse obstoječe strani/vsebnike spletnega mesta. Pred tem morate izvoziti svoje spletno mesto, da boste imeli varnostno kopijo, da ga boste pozneje znova uvozili. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Samodejno preverjanje je onemogočeno, ko je možnost zmanjšanja zaloge nastavljena na "Preverjanje računa". # Validate -RequireValidValue = Value not valid -RequireAtLeastXString = Requires at least %s character(s) -RequireXStringMax = Requires %s character(s) max -RequireAtLeastXDigits = Requires at least %s digit(s) -RequireXDigitsMax = Requires %s digit(s) max -RequireValidNumeric = Requires a numeric value -RequireValidEmail = Email address is not valid -RequireMaxLength = Length must be less than %s chars -RequireMinLength = Length must be more than %s char(s) -RequireValidUrl = Require valid URL -RequireValidDate = Require a valid date -RequireANotEmptyValue = Is required -RequireValidDuration = Require a valid duration -RequireValidExistingElement = Require an existing value -RequireValidBool = Require a valid boolean -BadSetupOfField = Error bad setup of field -BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation -BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion -BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class +RequireValidValue = Vrednost ni veljavna +RequireAtLeastXString = Zahteva vsaj %s znakov +RequireXStringMax = Zahteva največ %s znakov +RequireAtLeastXDigits = Zahteva vsaj %s številk(e) +RequireXDigitsMax = Zahteva največ %s številk(e). +RequireValidNumeric = Zahteva številčno vrednost +RequireValidEmail = E-poštni naslov ni veljaven +RequireMaxLength = Dolžina mora biti manjša od %s znakov +RequireMinLength = Dolžina mora biti večja od %s znakov +RequireValidUrl = Zahtevaj veljaven URL +RequireValidDate = Zahtevaj veljaven datum +RequireANotEmptyValue = Je potrebno +RequireValidDuration = Zahtevaj veljavno trajanje +RequireValidExistingElement = Zahtevaj obstoječo vrednost +RequireValidBool = Zahtevaj veljavno logično vrednost +BadSetupOfField = Nepravilna nastavitev polja +BadSetupOfFieldClassNotFoundForValidation = Neveljavna nastavitev polja: razred za preverjanje ne obstaja +BadSetupOfFieldFileNotFound = Neveljavna nastavitev polja: datoteke ni bilo mogoče najti +BadSetupOfFieldFetchNotCallable = Neveljavna nastavitev polja: Fetch ni mogoče priklicati v razredu diff --git a/htdocs/langs/sl_SI/eventorganization.lang b/htdocs/langs/sl_SI/eventorganization.lang index 570eacd6cb8..8372b194242 100644 --- a/htdocs/langs/sl_SI/eventorganization.lang +++ b/htdocs/langs/sl_SI/eventorganization.lang @@ -17,151 +17,158 @@ # # Generic # -ModuleEventOrganizationName = Event Organization -EventOrganizationDescription = Event Organization through Module Project -EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +ModuleEventOrganizationName = Organizacija dogodkov +EventOrganizationDescription = Organizacija dogodkov prek modula Project +EventOrganizationDescriptionLong= Upravljajte organizacijo dogodka (razstava, konference, udeleženci ali govorci, z javnimi stranmi za predloge, glasovanje ali registracijo) # # Menu # -EventOrganizationMenuLeft = Organized events -EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth +EventOrganizationMenuLeft = Organizirani dogodki +EventOrganizationConferenceOrBoothMenuLeft = Konferenca ali kabina -PaymentEvent=Payment of event +PaymentEvent=Plačilo dogodka # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Event Organization setup -EventOrganization=Event organization -Settings=Settings -EventOrganizationSetupPage = Event Organization setup page -EVENTORGANIZATION_TASK_LABEL = Label of tasks to create automatically when project is validated -EVENTORGANIZATION_TASK_LABELTooltip = When you validate an organized event, some tasks can be automatically created in the project

    For example:
    Send Call for Conference
    Send Call for Booth
    Receive call for conferences
    Receive call for Booth
    Open subscriptions to events for attendees
    Send remind of event to speakers
    Send remind of event to Booth hoster
    Send remind of event to attendees -EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Category to add to third-parties automatically created when someone suggests a conference -EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Category to add to third-parties automatically created when they suggests a booth -EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Template of email to send after receiving a suggestion of a conference. -EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Template of email to send after receiving a suggestion of a booth. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Template of email to send after a registration to a booth has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Template of email to send after a registration to an event has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Template of email to use when sending emails from the massaction "Send emails" to speakers -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Template of email to use when sending emails from the massaction "Send emails" on attendee list -EVENTORGANIZATION_FILTERATTENDEES_CAT = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties in the category -EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties with the nature +NewRegistration=Registracija +EventOrganizationSetup=Postavitev organizacije dogodka +EventOrganization=Organizacija dogodkov +Settings=nastavitve +EventOrganizationSetupPage = Stran za nastavitev organizacije dogodka +EVENTORGANIZATION_TASK_LABEL = Oznaka opravil, ki se samodejno ustvari, ko je projekt potrjen +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Pošlji opomnik na dogodek govorcem
    Pošlji opomin na dogodek gostiteljem stojnice
    Pošlji opomin na dogodek udeležencem +EVENTORGANIZATION_TASK_LABELTooltip2=Pustite prazno, če vam ni treba samodejno ustvariti opravil. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategorija za dodajanje tretjim osebam, samodejno ustvarjena, ko nekdo predlaga konferenco +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategorija za dodajanje tretjim osebam, samodejno ustvarjena, ko predlagajo stojnico +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Predloga e-pošte za pošiljanje po prejemu predloga za konferenco. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Predloga e-pošte za pošiljanje po prejemu predloga za stojnico. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Predloga e-pošte za pošiljanje po plačilu registracije na stojnici. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Predloga e-pošte za pošiljanje po plačilu registracije na dogodek. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Predloga e-pošte za uporabo pri pošiljanju e-pošte iz masaže "Pošlji e-pošto" govorcem +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Predloga e-pošte za uporabo pri pošiljanju e-pošte iz množične akcije "Pošlji e-pošto" na seznamu udeležencev +EVENTORGANIZATION_FILTERATTENDEES_CAT = V obrazcu za ustvarjanje/dodajanje udeleženca omeji seznam tretjih oseb na tretje osebe v kategoriji +EVENTORGANIZATION_FILTERATTENDEES_TYPE = V obrazcu za ustvarjanje/dodajanje udeleženca omejuje seznam tretjih oseb na tretje osebe z naravo # # Object # -EventOrganizationConfOrBooth= Conference Or Booth -ManageOrganizeEvent = Manage the organization of an event -ConferenceOrBooth = Conference Or Booth -ConferenceOrBoothTab = Conference Or Booth -AmountPaid = Amount paid -DateOfRegistration = Date of registration -ConferenceOrBoothAttendee = Conference Or Booth Attendee +EventOrganizationConfOrBooth= Konferenca ali kabina +EventOrganizationConfOrBoothes=Conferences or Boothes +ManageOrganizeEvent = Vodite organizacijo dogodka +ConferenceOrBooth = Konferenca ali kabina +ConferenceOrBoothTab = Konferenca ali kabina +AmountPaid = Plačani znesek +DateOfRegistration = Datum registracije +ConferenceOrBoothAttendee = Udeleženec konference ali stojnice +ApplicantOrVisitor=Prijavitelj ali obiskovalec +Speaker=Zvočnik # # Template Mail # -YourOrganizationEventConfRequestWasReceived = Your request for conference was received -YourOrganizationEventBoothRequestWasReceived = Your request for booth was received -EventOrganizationEmailAskConf = Request for conference -EventOrganizationEmailAskBooth = Request for booth -EventOrganizationEmailBoothPayment = Payment of your booth -EventOrganizationEmailRegistrationPayment = Registration for an event -EventOrganizationMassEmailAttendees = Communication to attendees -EventOrganizationMassEmailSpeakers = Communication to speakers -ToSpeakers=To speakers +YourOrganizationEventConfRequestWasReceived = Vaša zahteva za konferenco je bila prejeta +YourOrganizationEventBoothRequestWasReceived = Vaša zahteva za stojnico je bila prejeta +EventOrganizationEmailAskConf = Zahteva za konferenco +EventOrganizationEmailAskBooth = Zahteva za stojnico +EventOrganizationEmailBoothPayment = Plačilo vaše stojnice +EventOrganizationEmailRegistrationPayment = Prijava na dogodek +EventOrganizationMassEmailAttendees = Komunikacija z udeleženci +EventOrganizationMassEmailSpeakers = Komunikacija zvočnikom +ToSpeakers=Za zvočnike # # Event # -AllowUnknownPeopleSuggestConf=Allow people to suggest conferences -AllowUnknownPeopleSuggestConfHelp=Allow unknown people to suggest a conference they want to do -AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth -AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth -PriceOfRegistration=Price of registration -PriceOfRegistrationHelp=Price to pay to register or participate in the event -PriceOfBooth=Subscription price to stand a booth -PriceOfBoothHelp=Subscription price to stand a booth -EventOrganizationICSLink=Link ICS for conferences -ConferenceOrBoothInformation=Conference Or Booth informations -Attendees=Attendees -ListOfAttendeesOfEvent=List of attendees of the event project -DownloadICSLink = Download ICS link -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference -SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event -NbVotes=Number of votes +AllowUnknownPeopleSuggestConf=Dovolite ljudem, da predlagajo konference +AllowUnknownPeopleSuggestConfHelp=Dovolite neznanim ljudem, da predlagajo konferenco, ki jo želijo izvesti +AllowUnknownPeopleSuggestBooth=Dovolite ljudem, da se prijavijo za stojnico +AllowUnknownPeopleSuggestBoothHelp=Dovolite neznanim osebam, da se prijavijo za stojnico +PriceOfRegistration=Cena registracije +PriceOfRegistrationHelp=Cena za registracijo ali udeležbo na dogodku +PriceOfBooth=Cena naročnine za stojnico +PriceOfBoothHelp=Cena naročnine za stojnico +EventOrganizationICSLink=Povežite ICS za konference +ConferenceOrBoothInformation=Informacije o konferenci ali stojnici +Attendees=Udeleženci +ListOfAttendeesOfEvent=Seznam udeležencev projekta dogodka +DownloadICSLink = Prenesite povezavo ICS +EVENTORGANIZATION_SECUREKEY = Seed za zagotovitev ključa za javno registracijsko stran za predlaganje konference +SERVICE_BOOTH_LOCATION = Storitev, uporabljena za vrstico računa o lokaciji stojnice +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Storitev, ki se uporablja za vrstico računa o naročnini udeleženca na dogodek +NbVotes=Število glasov # # Status # EvntOrgDraft = Osnutek -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified +EvntOrgSuggested = Predlagano +EvntOrgConfirmed = Potrjeno +EvntOrgNotQualified = Ni kvalificiran EvntOrgDone = Izvršene -EvntOrgCancelled = Cancelled +EvntOrgCancelled = Prekinjeno # # Public page # -SuggestForm = Suggestion page -SuggestOrVoteForConfOrBooth = Page for suggestion or vote -EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest a new one for the event. You can also apply to have a booth during the event. -EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. -EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. -ListOfSuggestedConferences = List of suggested conferences -ListOfSuggestedBooths = List of suggested booths -ListOfConferencesOrBooths=List of conferences or booths of event project -SuggestConference = Suggest a new conference -SuggestBooth = Suggest a booth -ViewAndVote = View and vote for suggested events -PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event -PublicAttendeeSubscriptionPage = Public link for registration to this event only -MissingOrBadSecureKey = The security key is invalid or missing -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s -EvntOrgDuration = This conference starts on %s and ends on %s. -ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. -BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s +SuggestForm = Stran s predlogi +SuggestOrVoteForConfOrBooth = Stran za predlog ali glasovanje +EvntOrgRegistrationHelpMessage = Tukaj lahko glasujete za konferenco ali predlagate novo za dogodek. Prijavite se lahko tudi za stojnico med dogodkom. +EvntOrgRegistrationConfHelpMessage = Tukaj lahko predlagate novo konferenco za animacijo med dogodkom. +EvntOrgRegistrationBoothHelpMessage = Tukaj se lahko prijavite za stojnico med dogodkom. +ListOfSuggestedConferences = Seznam predlaganih konferenc +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project +SuggestConference = Predlagajte novo konferenco +SuggestBooth = Predlagaj stojnico +ViewAndVote = Oglejte si predlagane dogodke in glasujte zanje +PublicAttendeeSubscriptionGlobalPage = Javna povezava za prijavo na dogodek +PublicAttendeeSubscriptionPage = Javna povezava samo za prijavo na ta dogodek +MissingOrBadSecureKey = Varnostni ključ je neveljaven ali manjka +EvntOrgWelcomeMessage = Obrazec omogoča registracijo novega udeleženca dogodka +EvntOrgDuration = Ta konferenca se začne %s in konča %s. +ConferenceAttendeeFee = Prispevek za udeležence konference za dogodek: '%s', ki se pojavi od %s do %s. +BoothLocationFee = Lokacija stojnice za dogodek: '%s', ki se pojavlja od %s do %s EventType = Tip dogodka -LabelOfBooth=Booth label -LabelOfconference=Conference label -ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet -DateMustBeBeforeThan=%s must be before %s -DateMustBeAfterThan=%s must be after %s +LabelOfBooth=Oznaka kabine +LabelOfconference=Oznaka konference +ConferenceIsNotConfirmed=Registracija ni mogoča, konferenca še ni potrjena +DateMustBeBeforeThan=%s mora biti pred %s +DateMustBeAfterThan=%s mora biti za %s +MaxNbOfAttendeesReached=Doseženo je največje število udeležencev +NewSubscription=Registracija +OrganizationEventConfRequestWasReceived=Vaš predlog za konferenco je bil prejet +OrganizationEventBoothRequestWasReceived=Vaša zahteva za stojnico je bila prejeta +OrganizationEventPaymentOfBoothWasReceived=Vaše plačilo za vašo stojnico je bilo zabeleženo +OrganizationEventPaymentOfRegistrationWasReceived=Vaše plačilo za prijavo na dogodek je bilo zabeleženo +OrganizationEventBulkMailToAttendees=To je opomnik o vaši udeležbi na dogodku kot udeleženec +OrganizationEventBulkMailToSpeakers=To je opomnik o vaši udeležbi na dogodku kot govornik +OrganizationEventLinkToThirdParty=Povezava do tretje osebe (stranka, dobavitelj ali partner) +OrganizationEvenLabelName=Javno ime konference ali stojnice -NewSubscription=Registration -OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received -OrganizationEventBoothRequestWasReceived=Your request for a booth has been received -OrganizationEventPaymentOfBoothWasReceived=Your payment for your booth has been recorded -OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event registration has been recorded -OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee -OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker -OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) - -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Prijava za stojnico +NewSuggestionOfConference=Prijava na konferenco # # Vote page # -EvntOrgRegistrationWelcomeMessage = Welcome on the conference or booth suggestion page. -EvntOrgRegistrationConfWelcomeMessage = Welcome on the conference suggestion page. -EvntOrgRegistrationBoothWelcomeMessage = Welcome on the booth suggestion page. -EvntOrgVoteHelpMessage = Here, you can view and vote for the suggested events for the project -VoteOk = Your vote has been accepted. -AlreadyVoted = You have already voted for this event. -VoteError = An error has occurred during the vote, please try again. +EvntOrgRegistrationWelcomeMessage = Dobrodošli na strani s predlogi za konferenco ali stojnico. +EvntOrgRegistrationConfWelcomeMessage = Dobrodošli na strani s predlogi konference. +EvntOrgRegistrationBoothWelcomeMessage = Dobrodošli na strani s predlogi stojnice. +EvntOrgVoteHelpMessage = Tukaj si lahko ogledate in glasujete za predlagane dogodke za projekt +VoteOk = Vaš glas je bil sprejet. +AlreadyVoted = Za ta dogodek ste že glasovali. +VoteError = Med glasovanjem je prišlo do napake, poskusite znova. -SubscriptionOk = Your registration has been validated -ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event -Attendee = Attendee -PaymentConferenceAttendee = Conference attendee payment -PaymentBoothLocation = Booth location payment -DeleteConferenceOrBoothAttendee=Remove attendee -RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s -EmailAttendee=Attendee email -EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) -ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +SubscriptionOk=Registracija je zabeležena +ConfAttendeeSubscriptionConfirmation = Potrditev vaše naročnine na dogodek +Attendee = Udeleženec +PaymentConferenceAttendee = Plačilo udeležencev konference +PaymentBoothLocation = Plačilo lokacije stojnice +DeleteConferenceOrBoothAttendee=Odstrani udeleženca +RegistrationAndPaymentWereAlreadyRecorder=Za email %s je bila že zabeležena registracija in plačilo +EmailAttendee=E-pošta udeleženca +EmailCompany=Elektronski naslov +EmailCompanyForInvoice=E-pošta podjetja (za račun, če se razlikuje od e-pošte udeleženca) +ErrorSeveralCompaniesWithEmailContactUs=Najdenih je bilo več podjetij s tem e-poštnim naslovom, zato ne moremo samodejno potrditi vaše registracije. Za ročno preverjanje nas kontaktirajte na %s +ErrorSeveralCompaniesWithNameContactUs=Najdenih je bilo več podjetij s tem imenom, zato ne moremo samodejno potrditi vaše registracije. Za ročno preverjanje nas kontaktirajte na %s +NoPublicActionsAllowedForThisEvent=Za ta dogodek niso odprta nobena javna dejanja +MaxNbOfAttendees=Največje število udeležencev diff --git a/htdocs/langs/sl_SI/exports.lang b/htdocs/langs/sl_SI/exports.lang index af3683bf5db..4f2070087a8 100644 --- a/htdocs/langs/sl_SI/exports.lang +++ b/htdocs/langs/sl_SI/exports.lang @@ -1,62 +1,64 @@ # Dolibarr language file - Source file is en_US - exports ExportsArea=Izvoz -ImportArea=Import -NewExport=New Export -NewImport=New Import +ImportArea=Uvozi +NewExport=Nov izvoz +NewImport=Nov uvoz ExportableDatas=Podatkovni niz, ki se lahko izvozi ImportableDatas=Podatkovni niz, ki se lahko uvozi SelectExportDataSet=Izberite podatkovni niz, ki ga želite izvoziti... SelectImportDataSet=Izberite podatkovni niz, ki ga želite uvoziti... -SelectExportFields=Choose the fields you want to export, or select a predefined export profile -SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: +SelectExportFields=Izberite polja, ki jih želite izvoziti, ali izberite vnaprej določen izvozni profil +SelectImportFields=Izberite polja izvorne datoteke, ki jih želite uvoziti, in njihovo ciljno polje v zbirki podatkov, tako da jih premikate gor in dol s sidrom %s, ali pa izberite vnaprej določen uvozni profil: NotImportedFields=Neuvožena polja izvorne datoteke -SaveExportModel=Save your selections as an export profile/template (for reuse). -SaveImportModel=Save this import profile (for reuse) ... +SaveExportModel=Shranite svoje izbire kot izvozni profil/predlogo (za ponovno uporabo). +SaveImportModel=Shranite ta uvozni profil (za ponovno uporabo) ... ExportModelName=Ime izvoznega profila -ExportModelSaved=Export profile saved as %s. +ExportModelSaved=Izvozni profil je shranjen kot %s . ExportableFields=Polja, ki se lahko izvozijo ExportedFields=Izvožena polja ImportModelName=Ime uvoznega profila -ImportModelSaved=Import profile saved as %s. +ImportModelSaved=Uvozni profil shranjen kot %s . +ImportProfile=Uvozi profil DatasetToExport=Podatkovni niz za izvoz DatasetToImport=Uvoz datoteke v podatkovni niz ChooseFieldsOrdersAndTitle=Izberite zaporedje polj... FieldsTitle=Nazivi polj FieldTitle=Naziv polja -NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... -AvailableFormats=Available Formats +NowClickToGenerateToBuildExportFile=Zdaj v kombiniranem polju izberite obliko datoteke in kliknite »Ustvari«, da ustvarite izvozno datoteko ... +AvailableFormats=Razpoložljivi formati LibraryShort=Knjižnica -ExportCsvSeparator=Csv caracter separator -ImportCsvSeparator=Csv caracter separator +ExportCsvSeparator=Ločilo znakov CSV +ImportCsvSeparator=Ločilo znakov CSV Step=Korak -FormatedImport=Import Assistant -FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant. -FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import. -FormatedExport=Export Assistant -FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge. -FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order. -FormatedExportDesc3=When data to export are selected, you can choose the format of the output file. +FormatedImport=Pomočnik za uvoz +FormatedImportDesc1=Ta modul vam omogoča posodobitev obstoječih podatkov ali dodajanje novih objektov v bazo podatkov iz datoteke brez tehničnega znanja, z uporabo pomočnika. +FormatedImportDesc2=Prvi korak je, da izberete vrsto podatkov, ki jih želite uvoziti, nato obliko izvorne datoteke in nato polja, ki jih želite uvoziti. +FormatedExport=Pomočnik za izvoz +FormatedExportDesc1=Ta orodja omogočajo izvoz prilagojenih podatkov s pomočjo pomočnika, ki vam pomaga pri postopku, ne da bi zahtevali tehnično znanje. +FormatedExportDesc2=Prvi korak je, da izberete vnaprej določen nabor podatkov, nato katera polja želite izvoziti in v kakšnem vrstnem redu. +FormatedExportDesc3=Ko so izbrani podatki za izvoz, lahko izberete obliko izhodne datoteke. Sheet=List NoImportableData=Ni podatkov, ki jih lahko uvozite (ni tako definiranega modula, ki omogoča uvoz podatkov) -FileSuccessfullyBuilt=File generated -SQLUsedForExport=SQL Request used to extract data +FileSuccessfullyBuilt=Datoteka ustvarjena +SQLUsedForExport=Zahteva SQL, ki se uporablja za pridobivanje podatkov LineId=Id vrstice LineLabel=Naziv vrstice LineDescription=Opis vrstice LineUnitPrice=Cena enote v vrstici LineVATRate=Stopnja DDV v vrstici LineQty=Količina za vrstico -LineTotalHT=Amount excl. tax for line +LineTotalHT=Znesek brez davek za vrstico LineTotalTTC=Znesek z davkom za vrstico LineTotalVAT=Znesek DDV za vrstico TypeOfLineServiceOrProduct=Tip vrstice (0=proizvod, 1=storitev) FileWithDataToImport=Datoteka s podatki za uvoz FileToImport=Izvorna datoteka za uvoz -FileMustHaveOneOfFollowingFormat=File to import must have one of following formats -DownloadEmptyExample=Download template file with field content information -StarAreMandatory=* are mandatory fields -ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it... -ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... +FileMustHaveOneOfFollowingFormat=Datoteka za uvoz mora imeti enega od naslednjih formatov +DownloadEmptyExampleShort=Prenesite vzorčno datoteko +DownloadEmptyExample=Prenesite datoteko predloge s primeri in informacijami o poljih, ki jih lahko uvozite +StarAreMandatory=V datoteki predloge so vsa polja z * obvezna +ChooseFormatOfFileToImport=Izberite obliko datoteke, ki jo želite uporabiti kot obliko datoteke za uvoz, tako da kliknete ikono %s, da jo izberete... +ChooseFileToImport=Naložite datoteko in kliknite ikono %s, da izberete datoteko kot izvorno uvozno datoteko ... SourceFileFormat=Format izvorne datoteke FieldsInSourceFile=Polja v izvorni datoteki FieldsInTargetDatabase=Ciljna polja v Dolibarr bazi podatkov (krepko=obvezno) @@ -71,67 +73,75 @@ FieldsTarget=Ciljna polja FieldTarget=Ciljno polje FieldSource=Izvorno polje NbOfSourceLines=Število vrstic v izvorni datoteki -NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.
    Click on the "%s" button to run a check of the file structure/contents and simulate the import process.
    No data will be changed in your database. -RunSimulateImportFile=Run Import Simulation +NowClickToTestTheImport=Preverite, ali se format datoteke (ločila polj in nizov) vaše datoteke ujema s prikazanimi možnostmi in ali ste izpustili naslovno vrstico, sicer bodo te v naslednji simulaciji označene kot napake.
    Kliknite gumb " %s ", da zaženete preverjanje strukture/vsebine datoteke in simulirate postopek uvoza.
    V vaši zbirki podatkov ne bo spremenjen noben podatek . +RunSimulateImportFile=Zaženite simulacijo uvoza FieldNeedSource=To polje zahteva podatek iz izvorne datoteke SomeMandatoryFieldHaveNoSource=Nekatera uvozna polja nimajo izvora v podatkovni datoteki InformationOnSourceFile=Informacije o izvorni datoteki InformationOnTargetTables=Informacije o ciljnih poljih SelectAtLeastOneField=Vklopite vsaj eno izvorno polje v koloni polj za izvoz SelectFormat=Izberite ta format uvozne datoteke -RunImportFile=Import Data -NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.
    When the simulation reports no errors you may proceed to import the data into the database. -DataLoadedWithId=The imported data will have an additional field in each database table with this import id: %s, to allow it to be searchable in the case of investigating a problem related to this import. -ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. -TooMuchErrors=There are still %s other source lines with errors but output has been limited. -TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. +RunImportFile=Uvoz podatkov +NowClickToRunTheImport=Preverite rezultate simulacije uvoza. Popravite morebitne napake in ponovno preizkusite.
    Ko simulacija ne poroča o napakah, lahko nadaljujete z uvozom podatkov v bazo podatkov. +DataLoadedWithId=Uvoženi podatki bodo imeli dodatno polje v vsaki tabeli zbirke podatkov s tem ID-jem uvoza: %s , da bo po njih mogoče iskati v primeru raziskovanja težave, povezane s tem uvozom. +ErrorMissingMandatoryValue=V izvorni datoteki v stolpcu %s so obvezni podatki prazni. +TooMuchErrors=Še vedno obstajajo %s druge izvorne vrstice z napakami, vendar je izhod omejen. +TooMuchWarnings=Še vedno obstajajo %s druge izvorne vrstice z opozorili, vendar je izhod omejen. EmptyLine=Prazna vrstica (ne bo upoštevana) -CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. +CorrectErrorBeforeRunningImport= morate popraviti vse napake preden zaženete dokončni uvoz. FileWasImported=Datoteka je bila uvožena s številko %s. -YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. +YouCanUseImportIdToFindRecord=Vse uvožene zapise v svoji zbirki podatkov najdete s filtriranjem v polju import_key='%s' . NbOfLinesOK=Število vrstic brez napak in brez opozoril: %s. NbOfLinesImported=Število uspešno uvoženih vrstic: %s. DataComeFromNoWhere=Vrednost za vstavljanje ne prihaja iz izvorne datoteke. -DataComeFromFileFieldNb=Vrednost za vstavljanje prihaja iz polja %s izvorne datoteke. -DataComeFromIdFoundFromRef=Value that comes from field number %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). -DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. +DataComeFromFileFieldNb=Vrednost za vstavljanje prihaja iz stolpca %s v izvorni datoteki. +DataComeFromIdFoundFromRef=Vrednost, ki izvira iz izvorne datoteke, bo uporabljena za iskanje ID-ja nadrejenega objekta, ki bo uporabljen (zato mora objekt %s , ki ima sklic iz izvorne datoteke, obstajati v bazi podatkov). +DataComeFromIdFoundFromCodeId=Vrednost kode, ki prihaja iz izvorne datoteke, bo uporabljena za iskanje ID-ja nadrejenega objekta, ki ga je treba uporabiti (zato mora koda iz izvorne datoteke obstajati v slovarju %s ). Upoštevajte, da če poznate ID, ga lahko uporabite tudi v izvorni datoteki namesto kode. Uvoz bi moral delovati v obeh primerih. DataIsInsertedInto=Podatki iz izvorne datoteke bodo vstavljeni v naslednja polja: -DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: -DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +DataIDSourceIsInsertedInto=ID nadrejenega predmeta, ki je bil najden s podatki v izvorni datoteki, bo vstavljen v naslednje polje: +DataCodeIDSourceIsInsertedInto=ID nadrejene vrstice, ki je bil najden iz kode, bo vstavljen v naslednje polje: SourceRequired=Podatkovna vrednost je obvezna SourceExample=Primer možnih podatkovnih vrednosti ExampleAnyRefFoundIntoElement=Vsak ref našel elementov za %s ExampleAnyCodeOrIdFoundIntoDictionary=Katerakoli koda (ali ID), najdena v slovarju %s -CSVFormatDesc=Comma Separated Value file format (.csv).
    This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. -Excel95FormatDesc=Excel file format (.xls)
    This is the native Excel 95 format (BIFF5). -Excel2007FormatDesc=Excel file format (.xlsx)
    This is the native Excel 2007 format (SpreadsheetML). +CSVFormatDesc= Vrednost, ločena z vejico, oblika datoteke (.csv).
    To je format besedilne datoteke, kjer so polja ločena z ločilom [ %s ]. Če je ločilo znotraj vsebine polja, je polje zaokroženo z okroglim znakom [ %s ]. Ubežni znak za ubežni okrogli znak je [ %s ]. +Excel95FormatDesc= Excel oblika datoteke (.xls)
    To je izvorna oblika zapisa Excel 95 (BIFF5). +Excel2007FormatDesc= Excel oblika datoteke (.xlsx)
    To je izvorna oblika zapisa Excel 2007 (SpreadsheetML). TsvFormatDesc=Tab Separated Value datotečni format (.tsv)
    To je tekstovni datotečni format, pri katerem so polja ločena s tabulatorjem [tab]. -ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). -CsvOptions=CSV format options -Separator=Field Separator -Enclosure=String Delimiter +ExportFieldAutomaticallyAdded=Polje %s je bilo samodejno dodano. Tako se boste izognili temu, da bi podobne vrstice obravnavali kot podvojen zapis (če dodate to polje, bodo vse vrstice imele svoj ID in se bodo razlikovale). +CsvOptions=Možnosti zapisa CSV +Separator=Ločilo polj +Enclosure=Ločilo nizov SpecialCode=Posebna koda ExportStringFilter=%% dovoljuje zamenjavo enega ali več znakov v besedilu -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day
    YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days
    > YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days
    < YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days -ExportNumericFilter=NNNNN filters by one value
    NNNNN+NNNNN filters over a range of values
    < NNNNN filters by lower values
    > NNNNN filters by higher values -ImportFromLine=Import starting from line number -EndAtLineNb=End at line number -ImportFromToLine=Limit range (From - To). Eg. to omit header line(s). -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.
    If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation. -KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file. -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import -UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) -NoUpdateAttempt=No update attempt was performed, only insert -ImportDataset_user_1=Users (employees or not) and properties -ComputedField=Computed field +ExportDateFilter=LLLL, LLLLMM, LLLLMMDD: filtrira po enem letu/mesecu/dnevu
    LLLL+LLLL, LLLLMM+LLLLMM, LLLLMMDD+LLLLMMDD: filtrira po razponu let/mesecev/dnevov
    > LLLL, > LLLLMM, > filtriranje vseh LLLLMMDDs naslednja leta/meseci/dnevi
    < LLLL, < LLLLMM, < LLLLMMDD: filtrira vsa prejšnja leta/mesece/dneve +ExportNumericFilter=NNNNN filtrira po eni vrednosti
    NNNNN+NNNNN filtrira po razponu vrednosti
    < NNNNN filtrira po nižjih vrednostih
    > NNNNN filtrira po višjih vrednostih +ImportFromLine=Uvoz začenši s številko vrstice +EndAtLineNb=Konec pri številki vrstice +ImportFromToLine=Omejitev obsega (od - do). Npr. da izpustite vrstico(e) glave. +SetThisValueTo2ToExcludeFirstLine=To vrednost na primer nastavite na 3, da izključite prvi 2 vrstici.
    Če vrstice glave NISO izpuščene, bo to povzročilo več napak v simulaciji uvoza. +KeepEmptyToGoToEndOfFile=To polje naj bo prazno za obdelavo vseh vrstic do konca datoteke. +SelectPrimaryColumnsForUpdateAttempt=Izberite stolpce, ki jih želite uporabiti kot primarni ključ za uvoz UPDATE +UpdateNotYetSupportedForThisImport=Posodobitev ni podprta za to vrsto uvoza (samo vstavljanje) +NoUpdateAttempt=Izveden ni bil noben poskus posodobitve, le vstavljanje +ImportDataset_user_1=Uporabniki (zaposleni ali ne) in lastnosti +ComputedField=Računalniško polje ## filters SelectFilterFields=Če želite filtrirati po nekaterih vrednostih, jih vnesite tukaj FilteredFields=Filtrirana polja FilteredFieldsValues=Vrednost za filter FormatControlRule=Pravilo za kontrolo formata ## imports updates -KeysToUseForUpdates=Key (column) to use for updating existing data -NbInsert=Number of inserted lines: %s -NbUpdate=Number of updated lines: %s -MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s -StocksWithBatch=Stocks and location (warehouse) of products with batch/serial number +KeysToUseForUpdates=Ključ (stolpec) za posodabljanje obstoječih podatkov +NbInsert=Število vstavljenih vrstic: %s +NbInsertSim=Število vrstic, ki bodo vstavljene: %s +NbUpdate=Število posodobljenih vrstic: %s +NbUpdateSim=Število vrstic, ki bodo posodobljene: %s +MultipleRecordFoundWithTheseFilters=S temi filtri je bilo najdenih več zapisov: %s +StocksWithBatch=Zaloge in lokacija (skladišče) izdelkov s serijsko/serijsko številko +WarningFirstImportedLine=Prve vrstice ne bodo uvožene s trenutno izbiro +NotUsedFields=Polja baze podatkov niso uporabljena +SelectImportFieldsSource = Izberite polja izvorne datoteke, ki jih želite uvoziti, in njihova ciljna polja v zbirki podatkov tako, da izberete polja v vsakem izbirnem polju, ali pa izberite vnaprej določen uvozni profil: +MandatoryTargetFieldsNotMapped=Nekatera obvezna ciljna polja niso preslikana +AllTargetMandatoryFieldsAreMapped=Vsa ciljna polja, ki potrebujejo obvezno vrednost, so preslikana +ResultOfSimulationNoError=Rezultat simulacije: Ni napake diff --git a/htdocs/langs/sl_SI/externalsite.lang b/htdocs/langs/sl_SI/externalsite.lang deleted file mode 100644 index e2794de1ed6..00000000000 --- a/htdocs/langs/sl_SI/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup se povezujejo na zunanji strani -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modul za zunanjo stran ni bil konfiguriran pravilno -ExampleMyMenuEntry=Moj menijski vnos diff --git a/htdocs/langs/sl_SI/ftp.lang b/htdocs/langs/sl_SI/ftp.lang deleted file mode 100644 index 3598a816c8c..00000000000 --- a/htdocs/langs/sl_SI/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Nastavitev modula FTP Client -NewFTPClient=Nastavitev nove FTP povezave -FTPArea=Področje FTP -FTPAreaDesc=Na zaslonu je prikazana vsebina izgleda FTP strežnika -SetupOfFTPClientModuleNotComplete=Kaže, da nastavitev modula FTP client ni popolna -FTPFeatureNotSupportedByYourPHP=Vaš PHP ne podpira FTP funkcij -FailedToConnectToFTPServer=Neuspešna povezava s FTP strežnikom (strežnik %s, port %s) -FailedToConnectToFTPServerWithCredentials=Neuspešna prijava na FTP strežnik z določenim uporabniškim imenom/geslom -FTPFailedToRemoveFile=Neuspešna odstranitev datoteke %s. -FTPFailedToRemoveDir=Neuspešna odstranitev mape %s (Preverite dovoljenja in če je ta mapa prazna). -FTPPassiveMode=Pasivni način -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/sl_SI/help.lang b/htdocs/langs/sl_SI/help.lang index 2a512534f2c..359d16f57ad 100644 --- a/htdocs/langs/sl_SI/help.lang +++ b/htdocs/langs/sl_SI/help.lang @@ -1,23 +1,23 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=Forum/Wiki podpora EMailSupport=E-mail podpora -RemoteControlSupport=Direktna Online podpora na daljavo v realnem času +RemoteControlSupport=Spletna podpora v realnem času/na daljavo OtherSupport=Ostale podpore ToSeeListOfAvailableRessources=Za kontakt/ogled virov, ki so na voljo: -HelpCenter=Center za pomoč -DolibarrHelpCenter=Dolibarr Help and Support Center -ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. -TypeOfSupport=Type of support +HelpCenter=Center pomoči +DolibarrHelpCenter=Center za pomoč in podporo Dolibarr +ToGoBackToDolibarr=V nasprotnem primeru kliknite tukaj, če želite še naprej uporabljati Dolibarr . +TypeOfSupport=Vrsta podpore TypeSupportCommunauty=Skupnost (brezplačno) TypeSupportCommercial=Komercialni TypeOfHelp=Tip -NeedHelpCenter=Need help or support? +NeedHelpCenter=Potrebujete pomoč ali podporo? Efficiency=Učinkovitost TypeHelpOnly=Samo pomoč TypeHelpDev=Pomoč+razvoj -TypeHelpDevForm=Help+Development+Training -BackToHelpCenter=Otherwise, go back to Help center home page. -LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated): +TypeHelpDevForm=Pomoč+Razvoj+Usposabljanje +BackToHelpCenter=V nasprotnem primeru se vrnite na domačo stran centra za pomoč . +LinkToGoldMember=Pokličete lahko enega od trenerjev, ki jih je Dolibarr vnaprej izbral za vaš jezik (%s), tako da kliknete njihov pripomoček (stanje in najvišja cena se samodejno posodobita): PossibleLanguages=Podprti jeziki -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation -SeeOfficalSupport=Za uradno Dolibarr podporo v vašem jeziku:
    %s +SubscribeToFoundation=Pomagajte projektu Dolibarr, naročite se na fundacijo +SeeOfficalSupport=Za uradno podporo Dolibarr v vašem jeziku:
    %s diff --git a/htdocs/langs/sl_SI/holiday.lang b/htdocs/langs/sl_SI/holiday.lang index 2f664b4b125..ea3cc336e48 100644 --- a/htdocs/langs/sl_SI/holiday.lang +++ b/htdocs/langs/sl_SI/holiday.lang @@ -1,10 +1,12 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave -CPTitreMenu=Leave +Holidays=listi +Holiday=Pusti +CPTitreMenu=Pusti MenuReportMonth=Mesečno stanje MenuAddCP=Nov zahtevek za dopust -NotActiveModCP=You must enable the module Leave to view this page. +MenuCollectiveAddCP=Nova zahteva za kolektivni dopust +NotActiveModCP=Za ogled te strani morate omogočiti modul Zapusti. AddCP=Izdelaj zahtevek za dopust DateDebCP=Začetni datum DateFinCP=Končni datum @@ -13,21 +15,21 @@ ToReviewCP=Čaka odobritev ApprovedCP=Odobreno CancelCP=Preklicano RefuseCP=Zavrnjeno -ValidatorCP=Approver -ListeCP=List of leave +ValidatorCP=Odobritelj +ListeCP=Seznam dopustov Leave=Zahtevek za dopust -LeaveId=Leave ID -ReviewedByCP=Will be approved by -UserID=User ID -UserForApprovalID=User for approval ID -UserForApprovalFirstname=First name of approval user -UserForApprovalLastname=Last name of approval user -UserForApprovalLogin=Login of approval user +LeaveId=Pusti ID +ReviewedByCP=Bo odobril +UserID=Uporabniško ime +UserForApprovalID=ID uporabnika za odobritev +UserForApprovalFirstname=Ime uporabnika odobritve +UserForApprovalLastname=Priimek uporabnika odobritve +UserForApprovalLogin=Prijava uporabnika odobritve DescCP=Opis SendRequestCP=Ustvari zahtevek za dopust DelayToRequestCP=Zahtevek za dopust mora biti vložen vsaj %s dan(dni) prej. -MenuConfCP=Balance of leave -SoldeCPUser=Leave balance (in days) %s +MenuConfCP=Bilanca dopusta +SoldeCPUser=Pusti stanje (v dnevih) %s ErrorEndDateCP=Končni datum mora biti večji od začetnega. ErrorSQLCreateCP=Pri ustvarjanju SQL je prišlo do napake ErrorIDFicheCP=Prišlo je do napake, zahtevek za dopust ne obstaja @@ -36,16 +38,16 @@ ErrorUserViewCP=Nimate dovoljenja za branje tega zahtevka za dopust InfosWorkflowCP=Pretok informacij RequestByCP=Zahteval TitreRequestCP=Zahtevek za dopust -TypeOfLeaveId=Type of leave ID -TypeOfLeaveCode=Type of leave code -TypeOfLeaveLabel=Type of leave label -NbUseDaysCP=Number of days of leave used -NbUseDaysCPHelp=The calculation takes into account the non-working days and the holidays defined in the dictionary. -NbUseDaysCPShort=Days of leave -NbUseDaysCPShortInMonth=Days of leave in month -DayIsANonWorkingDay=%s is a non-working day -DateStartInMonth=Start date in month -DateEndInMonth=End date in month +TypeOfLeaveId=ID vrste dopusta +TypeOfLeaveCode=Šifra vrste dopusta +TypeOfLeaveLabel=Oznaka vrste dopusta +NbUseDaysCP=Število dni izkoriščenega dopusta +NbUseDaysCPHelp=Pri izračunu so upoštevani dela prosti dnevi in prazniki opredeljeni v slovarju. +NbUseDaysCPShort=Dnevi dopusta +NbUseDaysCPShortInMonth=Dnevi dopusta v mesecu +DayIsANonWorkingDay=%s je dela prost dan +DateStartInMonth=Začetni datum v mesecu +DateEndInMonth=Končni datum v mesecu EditCP=Uredi DeleteCP=Izbriši ActionRefuseCP=Zavrnitev @@ -55,7 +57,8 @@ TitleDeleteCP=Brisanje zahtevka za dopust ConfirmDeleteCP=Potrditev izbrisa tega zahtevka za dopust? ErrorCantDeleteCP=Napaka, nimate pravice za brisanje tega zahtevka za dopust. CantCreateCP=Nimate dovoljenja za izdelavo zahtevka za dopust -InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidatorCP=Za svojo prošnjo za dopust morate izbrati odobritelja. +InvalidValidator=Izbrani uporabnik ni odobritelj. NoDateDebut=Izbrati morate začetni datum. NoDateFin=Izbrati morate končni datum. ErrorDureeCP=Vaš zahtevek za dopust ne vsebuje delovnih dni. @@ -74,38 +77,47 @@ DateRefusCP=Datum zavrnitve DateCancelCP=Datum preklica DefineEventUserCP=Dodeli izredno odsotnost uporabniku addEventToUserCP=Dodeli odsotnost -NotTheAssignedApprover=You are not the assigned approver +NotTheAssignedApprover=Niste dodeljeni odobritelj MotifCP=Razlog UserCP=Uporabnik ErrorAddEventToUserCP=Prišlo je do napake pri dodajanju izredne odsotnosti. AddEventToUserOkCP=Dodajanje izredne odsotnosti je zaključeno. +ErrorFieldRequiredUserOrGroup=Polje "skupina" ali "uporabnik" mora biti izpolnjeno +fusionGroupsUsers=Polje skupin in polje uporabnika bosta združena MenuLogCP=Glej dnevnik sprememb -LogCP=Log of all updates made to "Balance of Leave" -ActionByCP=Updated by -UserUpdateCP=Updated for +LogCP=Dnevnik vseh posodobitev "Stanja dopusta" +ActionByCP=Posodobil +UserUpdateCP=Posodobljeno za PrevSoldeCP=Prejšnje stanje NewSoldeCP=Novo stanje alreadyCPexist=Zahtevek za dopust za to obdobje je bil že vložen. -FirstDayOfHoliday=Beginning day of leave request -LastDayOfHoliday=Ending day of leave request -BoxTitleLastLeaveRequests=Latest %s modified leave requests +UseralreadyCPexist=Zahtevek za dopust je bil v tem obdobju že vložen za %s. +groups=Skupine +users=Uporabniki +AutoSendMail=Samodejno pošiljanje po pošti +NewHolidayForGroup=Nova zahteva za kolektivni dopust +SendRequestCollectiveCP=Pošlji prošnjo za kolektivni dopust +AutoValidationOnCreate=Samodejna validacija +FirstDayOfHoliday=Začetni dan prošnje za dopust +LastDayOfHoliday=Končni dan prošnje za dopust +BoxTitleLastLeaveRequests=Najnovejše %s spremenjene prošnje za dopust HolidaysMonthlyUpdate=Mesečna posodobitev ManualUpdate=Ročna posodobitev HolidaysCancelation=Preklic zahtevka za dopust -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name -TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed -LastHolidays=Latest %s leave requests -AllHolidays=All leave requests -HalfDay=Half day -NotTheAssignedApprover=You are not the assigned approver -LEAVE_PAID=Paid vacation -LEAVE_SICK=Sick leave -LEAVE_OTHER=Other leave -LEAVE_PAID_FR=Paid vacation +EmployeeLastname=Priimek zaposlenega +EmployeeFirstname=Ime zaposlenega +TypeWasDisabledOrRemoved=Vrsta dopusta (id %s) je bila onemogočena ali odstranjena +LastHolidays=Najnovejše %s prošnje za dopust +AllHolidays=Vse prošnje za dopust +HalfDay=Poldnevni +NotTheAssignedApprover=Niste dodeljeni odobritelj +LEAVE_PAID=Plačan dopust +LEAVE_SICK=Bolniška odsotnost +LEAVE_OTHER=Drugi dopust +LEAVE_PAID_FR=Plačan dopust ## Configuration du Module ## -LastUpdateCP=Last automatic update of leave allocation -MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation +LastUpdateCP=Zadnja samodejna posodobitev dodelitve dopusta +MonthOfLastMonthlyUpdate=Mesec zadnje samodejne posodobitve dodelitve dopusta UpdateConfCPOK=Uspešno posodobljeno. Module27130Name= Upravljanje zahtevkov za dopust Module27130Desc= Upravljanje zahtevkov za dopust @@ -115,25 +127,32 @@ NoticePeriod=Čas za odobritev HolidaysToValidate=Potrdi zahtevke za dopust HolidaysToValidateBody=Spodaj je zahtevek za potrditev dopustov HolidaysToValidateDelay=Ta zahtevek za dopust se bo izvedel v obdobju manj kot %s dni. -HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days. +HolidaysToValidateAlertSolde=Uporabnik, ki je vložil to prošnjo za dopust, nima dovolj prostih dni. HolidaysValidated=Potrjeni zahtevki za dopust HolidaysValidatedBody=Vaš zahtevek za dopust od %s do %s je bil potrjen. HolidaysRefused=Zahtevek je bil zavrnjen -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason: +HolidaysRefusedBody=Vaša zahteva za dopust za %s do %s je bila zavrnjena zaradi naslednjega razloga: HolidaysCanceled=Preklican zahtevek za dopust HolidaysCanceledBody=Vaš zahtevek za dopust od %s do %s je bil preklican. -FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
    0: Not followed by a counter. -NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter -GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leave to setup the different types of leaves. -HolidaySetup=Setup of module Leave -HolidaysNumberingModules=Numbering models for leave requests -TemplatePDFHolidays=Template for leave requests PDF -FreeLegalTextOnHolidays=Free text on PDF -WatermarkOnDraftHolidayCards=Watermarks on draft leave requests -HolidaysToApprove=Holidays to approve -NobodyHasPermissionToValidateHolidays=Nobody has permission to validate holidays -HolidayBalanceMonthlyUpdate=Monthly update of holiday balance -XIsAUsualNonWorkingDay=%s is usualy a NON working day -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +FollowedByACounter=1: Tej vrsti dopusta mora slediti števec. Števec se povečuje ročno ali samodejno in ko je zahteva za dopust potrjena, se števec zmanjša.
    0: števcu ne sledi. +NoLeaveWithCounterDefined=Ni določenih vrst dopustov, ki bi jim moral slediti števec +GoIntoDictionaryHolidayTypes=Pojdite na Domov - Nastavitve - Slovarji - Vrsta dopusta za nastavitev različnih vrst listov. +HolidaySetup=Nastavitev modula Odhod +HolidaysNumberingModules=Modeli številčenja prošenj za dopust +TemplatePDFHolidays=Predloga za prošnje za dopust PDF +FreeLegalTextOnHolidays=Brezplačno besedilo v PDF-ju +WatermarkOnDraftHolidayCards=Vodni žigi na osnutkih prošenj za dopust +HolidaysToApprove=Počitnice za odobritev +NobodyHasPermissionToValidateHolidays=Nihče nima dovoljenja za potrjevanje dopustov +HolidayBalanceMonthlyUpdate=Mesečno posodabljanje dopustniškega stanja +XIsAUsualNonWorkingDay=%s je običajno NEdelovni dan +BlockHolidayIfNegative=Blokiraj, če je stanje negativno +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Ustvarjanje te zahteve za dopust je blokirano, ker je vaše stanje negativno +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Zahteva za dopust %s mora biti osnutek, preklicana ali zavrnjena, da se izbriše +IncreaseHolidays=Povečajte dopust +HolidayRecordsIncreased= %s Počitniški rekordi so se povečali +HolidayRecordIncreased=Praznični rekord se je povečal +ConfirmMassIncreaseHoliday=Večje povečanje dopusta +NumberDayAddMass=Število dneva, ki ga želite dodati izboru +ConfirmMassIncreaseHolidayQuestion=Ali ste prepričani, da želite povečati dopust izbranih zapisov %s? +HolidayQtyNotModified=Stanje preostalih dni za %s ni bilo spremenjeno diff --git a/htdocs/langs/sl_SI/hrm.lang b/htdocs/langs/sl_SI/hrm.lang index 8cf59c08431..993b1297124 100644 --- a/htdocs/langs/sl_SI/hrm.lang +++ b/htdocs/langs/sl_SI/hrm.lang @@ -2,80 +2,91 @@ # Admin -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service -Establishments=Establishments -Establishment=Establishment -NewEstablishment=New establishment -DeleteEstablishment=Delete establishment -ConfirmDeleteEstablishment=Are you sure you wish to delete this establishment? -OpenEtablishment=Open establishment -CloseEtablishment=Close establishment +HRM_EMAIL_EXTERNAL_SERVICE=E-pošta za preprečevanje zunanje storitve HRM +Establishments=Ustanove +Establishment=Ustanovitev +NewEstablishment=Nova ustanova +DeleteEstablishment=Izbriši obrat +ConfirmDeleteEstablishment=Ali ste prepričani, da želite izbrisati to ustanovo? +OpenEtablishment=Odprta ustanova +CloseEtablishment=Zapri obrat # Dictionary -DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list -DictionaryFunction=HRM - Job positions +DictionaryPublicHolidays=Dopust – državni prazniki +DictionaryDepartment=HRM - Organizacijska enota +DictionaryFunction=HRM - Delovna mesta # Module -Employees=Employees +Employees=Zaposleni Employee=Zaposleni -NewEmployee=New employee -ListOfEmployees=List of employees -HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill -HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created +NewEmployee=Nov zaposleni +ListOfEmployees=Seznam zaposlenih +HrmSetup=Nastavitev HRM modula +SkillsManagement=Upravljanje spretnosti +HRM_MAXRANK=Največje število stopenj za rangiranje spretnosti +HRM_DEFAULT_SKILL_DESCRIPTION=Privzeti opis uvrstitev, ko je spretnost ustvarjena deplacement=Shift -DateEval=Evaluation date -JobCard=Job card -Job=Naloga -Jobs=Jobs -NewSkill=New Skill -SkillType=Skill type -Skilldets=List of ranks for this skill -Skilldet=Skill level +DateEval=Datum ocenjevanja +JobCard=Zaposlitvena kartica +JobPosition=Delovni profil +JobsPosition=Delovni profili +NewSkill=Nova spretnost +SkillType=Vrsta spretnosti +Skilldets=Seznam uvrstitev za to veščino +Skilldet=Raven spretnosti rank=Rank -ErrNoSkillSelected=No skill selected -ErrSkillAlreadyAdded=This skill is already in the list -SkillHasNoLines=This skill has no lines -skill=Skill -Skills=Skills -SkillCard=Skill card -EmployeeSkillsUpdated=Employee skills have been updated (see "Skills" tab of employee card) -Eval=Evaluation -Evals=Evaluations -NewEval=New evaluation -ValidateEvaluation=Validate evaluation -ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with reference %s? -EvaluationCard=Evaluation card -RequiredRank=Required rank for this job -EmployeeRank=Employee rank for this skill -Position=Položaj -Positions=Positions -PositionCard=Position card -EmployeesInThisPosition=Employees in this position -group1ToCompare=Usergroup to analyze -group2ToCompare=Second usergroup for comparison -OrJobToCompare=Compare to job skills requirements +ErrNoSkillSelected=Izbrana ni nobena spretnost +ErrSkillAlreadyAdded=Ta veščina je že na seznamu +SkillHasNoLines=Ta veščina nima črt +skill=Spretnost +Skills=Spretnosti +SkillCard=Kartica spretnosti +EmployeeSkillsUpdated=Spretnosti zaposlenih so posodobljene (glejte zavihek »Spretnosti« na kartici zaposlenega) +Eval=Evalvacija +Evals=Ocene +NewEval=Nova ocena +ValidateEvaluation=Potrdite oceno +ConfirmValidateEvaluation=Ali ste prepričani, da želite potrditi to oceno z referenco %s ? +EvaluationCard=Ocenjevalna kartica +RequiredRank=Zahtevan čin za to delovno mesto +EmployeeRank=Uvrstitev zaposlenega za to veščino +EmployeePosition=Položaj zaposlenega +EmployeePositions=Položaji zaposlenih +EmployeesInThisPosition=Zaposleni na tem položaju +group1ToCompare=Uporabniška skupina za analizo +group2ToCompare=Druga uporabniška skupina za primerjavo +OrJobToCompare=Primerjajte z zahtevami po poklicnih spretnostih difference=Razlika -CompetenceAcquiredByOneOrMore=Competence acquired by one or more users but not requested by the second comparator -MaxlevelGreaterThan=Max level greater than the one requested -MaxLevelEqualTo=Max level equal to that demand -MaxLevelLowerThan=Max level lower than that demand -MaxlevelGreaterThanShort=Employee level greater than the one requested -MaxLevelEqualToShort=Employee level equals to that demand -MaxLevelLowerThanShort=Employee level lower than that demand -SkillNotAcquired=Skill not acquired by all users and requested by the second comparator +CompetenceAcquiredByOneOrMore=Usposobljenost, ki jo je pridobil en ali več uporabnikov, vendar je ni zahteval drugi primerjalnik +MaxlevelGreaterThan=Največja raven je višja od zahtevane +MaxLevelEqualTo=Največja raven je enaka temu povpraševanju +MaxLevelLowerThan=Najvišja raven nižja od tega povpraševanja +MaxlevelGreaterThanShort=Raven zaposlenega je višja od zahtevane +MaxLevelEqualToShort=Raven zaposlenih je enaka temu povpraševanju +MaxLevelLowerThanShort=Raven zaposlenih nižja od tega povpraševanja +SkillNotAcquired=Spretnosti, ki je niso pridobili vsi uporabniki, zahteva pa jo drugi primerjalnik legend=Legenda -TypeSkill=Skill type -AddSkill=Add skills to job -RequiredSkills=Required skills for this job -UserRank=User Rank -SkillList=Skill list -SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge -AbandonmentComment=Abandonment comment -DateLastEval=Date last evaluation -NoEval=No evaluation done for this employee -HowManyUserWithThisMaxNote=Number of users with this rank -HighestRank=Highest rank -SkillComparison=Skill comparison +TypeSkill=Vrsta spretnosti +AddSkill=Delu dodajte veščine +RequiredSkills=Zahtevane veščine za to delo +UserRank=Uporabniški rang +SkillList=Seznam spretnosti +SaveRank=Shrani uvrstitev +TypeKnowHow=Veš kako +TypeHowToBe=Kako biti +TypeKnowledge=znanje +AbandonmentComment=Komentar o opustitvi +DateLastEval=Datum zadnje ocene +NoEval=Za tega zaposlenega ni bila opravljena nobena ocena +HowManyUserWithThisMaxNote=Število uporabnikov s tem rangom +HighestRank=Najvišji čin +SkillComparison=Primerjava spretnosti +ActionsOnJob=Dogodki na tem delovnem mestu +VacantPosition=delovno mesto +VacantCheckboxHelper=Če označite to možnost, bodo prikazana nezasedena delovna mesta (prosto delovno mesto) +SaveAddSkill = Spretnosti so dodane +SaveLevelSkill = Raven spretnosti je shranjena +DeleteSkill = Spretnost odstranjena +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Ocene) +NeedBusinessTravels=Potrebujete poslovna potovanja +NoDescription=brez opisa diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang index 3262c23cc1d..87bd5fa646d 100644 --- a/htdocs/langs/sl_SI/install.lang +++ b/htdocs/langs/sl_SI/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=V konfiguracijsko datoteka %s je možno zapisovanje. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Ta PHP podpira spremenljivke POST in GET. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Ta PHP podpira seje. @@ -16,13 +17,6 @@ PHPMemoryOK=Maksimalni spomin za sejo vašega PHP je nastavljen na %s. To PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Click here for a more detailed test ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. ErrorDirDoesNotExists=Mapa %s ne obstaja. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,9 +24,11 @@ ErrorWrongValueForParameter=Morda ste vnesli napačno vrednost parametra '%s'. ErrorFailedToCreateDatabase=Neuspešno kreiranje baze podatkov '%s'. ErrorFailedToConnectToDatabase=Neuspešna povezava z bazo podatkov '%s'. ErrorDatabaseVersionTooLow=Verzija baze podatkov (%s) je prestara. Zahtevana je verzija %s ali novejša. -ErrorPHPVersionTooLow=PHP verzija je prestara. Zahtevana je verzija %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Baza podatkov '%s' že obstaja. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Če baza podatkov že obstaja, se vrnite nazaj in odznačite opcijo "Ustvari bazo podatkov". WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/sl_SI/interventions.lang b/htdocs/langs/sl_SI/interventions.lang index 9d204efaced..c622599aa45 100644 --- a/htdocs/langs/sl_SI/interventions.lang +++ b/htdocs/langs/sl_SI/interventions.lang @@ -4,10 +4,10 @@ Interventions=Intervencije InterventionCard=Kartica intervencije NewIntervention=Nova intervencija AddIntervention=Dodaj intervencijo -ChangeIntoRepeatableIntervention=Change to repeatable intervention +ChangeIntoRepeatableIntervention=Prehod na ponovljivo intervencijo ListOfInterventions=Seznam intervencij ActionsOnFicheInter=Aktivnost na intervenciji -LastInterventions=Latest %s interventions +LastInterventions=Zadnji %s posegi AllInterventions=Vse intervencije CreateDraftIntervention=Kreiraj osnutek InterventionContact=Kontakt za intervencijo @@ -15,54 +15,58 @@ DeleteIntervention=Izbriši intervencijo ValidateIntervention=Potrdi intervencijo ModifyIntervention=Spremeni intervencijo DeleteInterventionLine=Izbriši vrstico intervencije -ConfirmDeleteIntervention=Are you sure you want to delete this intervention? -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Are you sure you want to modify this intervention? -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? -ConfirmCloneIntervention=Are you sure you want to clone this intervention? -NameAndSignatureOfInternalContact=Name and signature of intervening: -NameAndSignatureOfExternalContact=Name and signature of customer: +ConfirmDeleteIntervention=Ali ste prepričani, da želite izbrisati ta poseg? +ConfirmValidateIntervention=Ali ste prepričani, da želite potrditi ta poseg pod imenom %s ? +ConfirmModifyIntervention=Ali ste prepričani, da želite spremeniti ta poseg? +ConfirmDeleteInterventionLine=Ali ste prepričani, da želite izbrisati to intervencijsko linijo? +ConfirmCloneIntervention=Ali ste prepričani, da želite klonirati ta poseg? +NameAndSignatureOfInternalContact=Ime in podpis intervenienta: +NameAndSignatureOfExternalContact=Ime in podpis stranke: DocumentModelStandard=Standardni vzorec dokumenta za intervencijo InterventionCardsAndInterventionLines=Intervencije in vrstice na intervenciji InterventionClassifyBilled=Označi kot "Zaračunano" InterventionClassifyUnBilled=Označi kot "Nezaračunano" -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=Razvrsti "Končano" StatusInterInvoiced=Zaračunano SendInterventionRef=Oddana intervencija %s -SendInterventionByMail=Send intervention by email +SendInterventionByMail=Pošljite intervencijo po elektronski pošti InterventionCreatedInDolibarr=Intervencija %s je ustvarjena InterventionValidatedInDolibarr=Intervencija %s je potrjena InterventionModifiedInDolibarr=Intervencija %s je spremenjena InterventionClassifiedBilledInDolibarr=Intervencijo %s označi kot "zaračunana" InterventionClassifiedUnbilledInDolibarr=Intervencijo %s označi kot "nezaračunana" -InterventionSentByEMail=Intervention %s sent by email +InterventionSentByEMail=Intervencija %s poslana po elektronski pošti InterventionDeletedInDolibarr=Intervencija %s je izbrisana -InterventionsArea=Interventions area -DraftFichinter=Draft interventions +InterventionsArea=Območje intervencij +DraftFichinter=Osnutki posegov LastModifiedInterventions=Zadnje %s spremenjene intervencije -FichinterToProcess=Interventions to process +FichinterToProcess=Intervencije za obdelavo TypeContact_fichinter_external_CUSTOMER=Kontakt za nadaljnjo obravnavo pri kupcu -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinter=Na intervencijsko kartico natisnite tudi vrstice tipa "izdelek" (ne le storitve). PrintProductsOnFichinterDetails=intervencije na osnovi naročil -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders -UseDurationOnFichinter=Hides the duration field for intervention records -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records -InterventionStatistics=Statistics of interventions -NbOfinterventions=No. of intervention cards -NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation) -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them. -InterId=Intervention id -InterRef=Intervention ref. -InterDateCreation=Date creation intervention -InterDuration=Duration intervention -InterStatus=Status intervention -InterNote=Note intervention -InterLine=Line of intervention -InterLineId=Line id intervention -InterLineDate=Line date intervention -InterLineDuration=Line duration intervention -InterLineDesc=Line description intervention -RepeatableIntervention=Template of intervention -ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template -ConfirmReopenIntervention=Are you sure you want to open back the intervention %s? -GenerateInter=Generate intervention +UseServicesDurationOnFichinter=Uporabite trajanje storitev za intervencije, generirane iz naročil +UseDurationOnFichinter=Skrije polje trajanja za zapise intervencij +UseDateWithoutHourOnFichinter=Skrije ure in minute izven datumskega polja za zapise intervencij +InterventionStatistics=Statistika intervencij +NbOfinterventions=Št. intervencijskih kart +NumberOfInterventionsByMonth=Število intervencijskih kartic po mesecih (datum validacije) +AmountOfInteventionNotIncludedByDefault=Znesek intervencije privzeto ni vključen v dobiček (v večini primerov se za štetje porabljenega časa uporabljajo časovnice). Dodajte možnost PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT na 1 v home-setup-other, da jih vključite. +InterId=ID intervencije +InterRef=Ref. intervencije +InterDateCreation=Intervencija ustvarjanja datuma +InterDuration=Trajanje intervencije +InterStatus=Statusna intervencija +InterNote=Opomba intervencija +InterLine=Intervencijska linija +InterLineId=Intervencija id linije +InterLineDate=Intervencija datuma vrstice +InterLineDuration=Intervencija trajanja linije +InterLineDesc=Intervencija opisa linije +RepeatableIntervention=Predloga intervencije +ToCreateAPredefinedIntervention=Če želite ustvariti vnaprej določeno ali ponavljajočo se intervencijo, ustvarite skupno intervencijo in jo pretvorite v predlogo intervencije +ConfirmReopenIntervention=Ali ste prepričani, da želite ponovno odpreti intervencijo %s ? +GenerateInter=Ustvarite intervencijo +FichinterNoContractLinked=Intervencija %s je bila ustvarjena brez povezane pogodbe. +ErrorFicheinterCompanyDoesNotExist=Podjetje ne obstaja. Intervencija ni bila ustvarjena. +NextDateToIntervention=Datum za naslednjo intervencijsko generacijo +NoIntervention=No intervention diff --git a/htdocs/langs/sl_SI/intracommreport.lang b/htdocs/langs/sl_SI/intracommreport.lang index 1c207976418..c02704efe0d 100644 --- a/htdocs/langs/sl_SI/intracommreport.lang +++ b/htdocs/langs/sl_SI/intracommreport.lang @@ -1,40 +1,40 @@ -Module68000Name = Intracomm report -Module68000Desc = Intracomm report management (Support for French DEB/DES format) -IntracommReportSetup = Intracommreport module setup -IntracommReportAbout = About intracommreport +Module68000Name = Intracomm poročilo +Module68000Desc = Upravljanje poročil Intracomm (podpora za francoski format DEB/DES) +IntracommReportSetup = Nastavitev modula Intracommreport +IntracommReportAbout = O intracommreportu # Setup INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur -INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions +INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les uvods INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant # Menu -MenuIntracommReport=Intracomm report -MenuIntracommReportNew=New declaration +MenuIntracommReport=Intracomm poročilo +MenuIntracommReportNew=Nova deklaracija MenuIntracommReportList=Seznam # View -NewDeclaration=New declaration -Declaration=Declaration -AnalysisPeriod=Analysis period -TypeOfDeclaration=Type of declaration -DEB=Goods exchange declaration (DEB) -DES=Services exchange declaration (DES) +NewDeclaration=Nova deklaracija +Declaration=Izjava +AnalysisPeriod=Obdobje analize +TypeOfDeclaration=Vrsta deklaracije +DEB=Deklaracija o menjavi blaga (DEB) +DES=Izjava o izmenjavi storitev (DES) # Export page -IntracommReportTitle=Preparation of an XML file in ProDouane format +IntracommReportTitle=Priprava XML datoteke v formatu ProDouane # List -IntracommReportList=List of generated declarations -IntracommReportNumber=Numero of declaration -IntracommReportPeriod=Period of nalysis -IntracommReportTypeDeclaration=Type of declaration -IntracommReportDownload=download XML file +IntracommReportList=Seznam ustvarjenih izjav +IntracommReportNumber=Številka deklaracije +IntracommReportPeriod=Obdobje analize +IntracommReportTypeDeclaration=Vrsta deklaracije +IntracommReportDownload=prenesite datoteko XML # Invoice -IntracommReportTransportMode=Transport mode +IntracommReportTransportMode=Način transporta diff --git a/htdocs/langs/sl_SI/knowledgemanagement.lang b/htdocs/langs/sl_SI/knowledgemanagement.lang index 3ff355d3635..f1776da8e09 100644 --- a/htdocs/langs/sl_SI/knowledgemanagement.lang +++ b/htdocs/langs/sl_SI/knowledgemanagement.lang @@ -18,37 +18,37 @@ # # Module label 'ModuleKnowledgeManagementName' -ModuleKnowledgeManagementName = Knowledge Management System +ModuleKnowledgeManagementName = Sistem za upravljanje znanja # Module description 'ModuleKnowledgeManagementDesc' -ModuleKnowledgeManagementDesc=Manage a Knowledge Management (KM) or Help-Desk base +ModuleKnowledgeManagementDesc=Upravljajte bazo upravljanja znanja (KM) ali službe za pomoč uporabnikom # # Admin page # -KnowledgeManagementSetup = Knowledge Management System setup -Settings = Settings -KnowledgeManagementSetupPage = Knowledge Management System setup page +KnowledgeManagementSetup = Nastavitev sistema za upravljanje znanja +Settings = nastavitve +KnowledgeManagementSetupPage = Stran z nastavitvami sistema za upravljanje znanja # # About page # About = O programu -KnowledgeManagementAbout = About Knowledge Management -KnowledgeManagementAboutPage = Knowledge Management about page +KnowledgeManagementAbout = O upravljanju znanja +KnowledgeManagementAboutPage = Upravljanje znanja o strani -KnowledgeManagementArea = Knowledge Management -MenuKnowledgeRecord = Knowledge base -ListKnowledgeRecord = List of articles -NewKnowledgeRecord = New article -ValidateReply = Validate solution -KnowledgeRecords = Articles +KnowledgeManagementArea = Upravljanje znanja +MenuKnowledgeRecord = Baza znanja +ListKnowledgeRecord = Seznam člankov +NewKnowledgeRecord = Nov članek +ValidateReply = Potrdite rešitev +KnowledgeRecords = Članki KnowledgeRecord = Artikel -KnowledgeRecordExtraFields = Extrafields for Article -GroupOfTicket=Group of tickets -YouCanLinkArticleToATicketCategory=You can link an article to a ticket group (so the article will be suggested during qualification of new tickets) -SuggestedForTicketsInGroup=Suggested for tickets when group is +KnowledgeRecordExtraFields = Dodatna polja za člen +GroupOfTicket=Skupina vstopnic +YouCanLinkArticleToATicketCategory=Članek lahko povežete s skupino vstopnic (tako da bo članek označen na vseh vstopnicah v tej skupini) +SuggestedForTicketsInGroup=Priporočeno pri ustvarjanju zahtevka -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=Nastavi kot zastarelo +ConfirmCloseKM=Ali potrjujete, da je ta članek zaprt kot zastarel? +ConfirmReopenKM=Ali želite obnoviti ta članek v status "Potrjen"? diff --git a/htdocs/langs/sl_SI/languages.lang b/htdocs/langs/sl_SI/languages.lang index 39a31d593ef..745a06ab296 100644 --- a/htdocs/langs/sl_SI/languages.lang +++ b/htdocs/langs/sl_SI/languages.lang @@ -1,54 +1,61 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopian +Language_am_ET=etiopski Language_ar_AR=Arabščina -Language_ar_DZ=Arabic (Algeria) -Language_ar_EG=Arabic (Egypt) -Language_ar_MA=Arabic (Moroco) +Language_ar_DZ=arabščina (Alžirija) +Language_ar_EG=arabščina (Egipt) +Language_ar_JO=arabščina (Jordanija) +Language_ar_MA=arabščina (Maroko) Language_ar_SA=Arabščina -Language_ar_TN=Arabic (Tunisia) -Language_ar_IQ=Arabic (Iraq) -Language_as_IN=Assamese -Language_az_AZ=Azerbaijani +Language_ar_TN=arabščina (Tunizija) +Language_ar_IQ=arabščina (Irak) +Language_as_IN=asamski +Language_az_AZ=azerbajdžanski Language_bn_BD=Bengalščina -Language_bn_IN=Bengali (India) +Language_bn_IN=bengalščina (Indija) Language_bg_BG=Bolgarski +Language_bo_CN=tibetansko Language_bs_BA=Bosanski Language_ca_ES=Katalonščina Language_cs_CZ=Češka +Language_cy_GB=valižanščina Language_da_DA=Danščina Language_da_DK=Danščina Language_de_DE=Nemščina Language_de_AT=Nemščina (Avstrija) Language_de_CH=Nemščina (Švica) +Language_de_LU=Nemščina (Luksemburg) Language_el_GR=Grščina -Language_el_CY=Greek (Cyprus) +Language_el_CY=grščina (Ciper) +Language_en_AE=angleščina (Združeni arabski emirati) Language_en_AU=Angleščina (Avstralija) Language_en_CA=Angleščina (Kanada) Language_en_GB=Angleščina (Združeno kraljestvo) Language_en_IN=Angleščina (Indija) Language_en_NZ=Angleščina (Nova Zelandija) Language_en_SA=Angleški (Savdska Arabija) -Language_en_SG=English (Singapore) +Language_en_SG=angleščina (Singapur) Language_en_US=Angleščina (ZDA) Language_en_ZA=Angleščina (Južna Afrika) +Language_en_ZW=Angleščina (Zimbabwe) Language_es_ES=Španščina Language_es_AR=Španščina (Argentina) Language_es_BO=Španščina (Bolivija) Language_es_CL=Španščina (Čile) Language_es_CO=Španščina (Kolumbija) +Language_es_CR=španščina (Kostarika) Language_es_DO=Španščina (Dominikanska republika) -Language_es_EC=Spanish (Ecuador) -Language_es_GT=Spanish (Guatemala) +Language_es_EC=španščina (Ekvador) +Language_es_GT=španščina (Gvatemala) Language_es_HN=Španščina (Honduras) Language_es_MX=Španščina (Mehika) -Language_es_PA=Spanish (Panama) +Language_es_PA=španščina (Panama) Language_es_PY=Španski (Paragvaj) Language_es_PE=Španski (Peru) Language_es_PR=Španščina (Portoriko) -Language_es_US=Spanish (USA) -Language_es_UY=Spanish (Uruguay) -Language_es_GT=Spanish (Guatemala) -Language_es_VE=Spanish (Venezuela) +Language_es_US=španščina (ZDA) +Language_es_UY=španščina (Urugvaj) +Language_es_GT=španščina (Gvatemala) +Language_es_VE=španščina (Venezuela) Language_et_EE=Estonski Language_eu_ES=Basque Language_fa_IR=Perzijščina @@ -56,46 +63,49 @@ Language_fi_FI=Finščina Language_fr_BE=Francoščina (Belgija) Language_fr_CA=Francoščina (Kanada) Language_fr_CH=Francoščina (Švica) -Language_fr_CI=French (Cost Ivory) -Language_fr_CM=French (Cameroun) +Language_fr_CI=francoščina (Cost Ivory) +Language_fr_CM=francoščina (Kamerun) Language_fr_FR=Francoščina -Language_fr_GA=French (Gabon) +Language_fr_GA=francoščina (Gabon) Language_fr_NC=Francoski (Nova Kaledonija) -Language_fr_SN=French (Senegal) +Language_fr_SN=francoščina (Senegal) Language_fy_NL=Frizijščina -Language_gl_ES=Galician +Language_gl_ES=galicijski Language_he_IL=Hebrew -Language_hi_IN=Hindi (India) +Language_hi_IN=hindijščina (Indija) Language_hr_HR=Hrvaški Language_hu_HU=Madžarščina Language_id_ID=Indonezijščina Language_is_IS=Islandščina Language_it_IT=Italijanščina -Language_it_CH=Italian (Switzerland) +Language_it_CH=italijanščina (Švica) Language_ja_JP=Japonščina Language_ka_GE=Gruzijščina -Language_kk_KZ=Kazakh -Language_km_KH=Khmer +Language_kk_KZ=Kazahstan +Language_km_KH=kmerski Language_kn_IN=Kannadščina Language_ko_KR=Korejski Language_lo_LA=Laoščina Language_lt_LT=Litovska Language_lv_LV=Latvijski Language_mk_MK=Makedonski -Language_mn_MN=Mongolian +Language_mn_MN=mongolski +Language_my_MM=birmanski Language_nb_NO=Norveščina (Bokmål) -Language_ne_NP=Nepali +Language_ne_NP=nepalsko Language_nl_BE=Nizozemščina (Belgija) -Language_nl_NL=Dutch +Language_nl_NL=nizozemščina Language_pl_PL=Poljščina -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=portugalščina (Angola) +Language_pt_MZ=portugalščina (Mozambik) Language_pt_BR=Portugalščina (Brazilija) Language_pt_PT=Portugalščina -Language_ro_MD=Romanian (Moldavia) +Language_ro_MD=romunščina (Moldavija) Language_ro_RO=Romunščina Language_ru_RU=Ruščina Language_ru_UA=Ruski (Ukrajina) -Language_tg_TJ=Tajik +Language_ta_IN=tamilščina +Language_tg_TJ=tadžikistanski Language_tr_TR=Turščina Language_sl_SI=Slovenščina Language_sv_SV=Švedščina @@ -103,12 +113,14 @@ Language_sv_SE=Švedščina Language_sq_AL=Albanščina Language_sk_SK=Slovaški Language_sr_RS=Srbščina +Language_sw_KE=svahili Language_sw_SW=Svahilščina Language_th_TH=Thai Language_uk_UA=Ukrajinski +Language_ur_PK=urdu Language_uz_UZ=Uzbek Language_vi_VN=Vietnamski Language_zh_CN=Kitajščina Language_zh_TW=Kitajščina (tradicionalna) -Language_zh_HK=Chinese (Hong Kong) -Language_bh_MY=Malay +Language_zh_HK=kitajščina (Hong Kong) +Language_bh_MY=malajščina diff --git a/htdocs/langs/sl_SI/ldap.lang b/htdocs/langs/sl_SI/ldap.lang index 528e6e23f6f..115729b0f99 100644 --- a/htdocs/langs/sl_SI/ldap.lang +++ b/htdocs/langs/sl_SI/ldap.lang @@ -5,7 +5,7 @@ LDAPInformationsForThisContact=Informacija v LDAP bazi podatkov za ta kontakt LDAPInformationsForThisUser=Informacija v LDAP bazi podatkov za tega uporabnika LDAPInformationsForThisGroup=Informacija v LDAP bazi podatkov za to skupino LDAPInformationsForThisMember=Informacija v LDAP bazi podatkov za tega člana -LDAPInformationsForThisMemberType=Information in LDAP database for this member type +LDAPInformationsForThisMemberType=Informacije v bazi podatkov LDAP za to vrsto člana LDAPAttributes=LDAP atributi LDAPCard=LDAP kartica LDAPRecordNotFound=Zapisa ni mogoče najti v LDAP bazi podatkov @@ -13,15 +13,19 @@ LDAPUsers=Uporabniki v LDAP bazi podatkov LDAPFieldStatus=Status LDAPFieldFirstSubscriptionDate=Datum prve naročnine LDAPFieldFirstSubscriptionAmount=Znesek prve naročnine -LDAPFieldLastSubscriptionDate=Latest subscription date -LDAPFieldLastSubscriptionAmount=Latest subscription amount -LDAPFieldSkype=Skype id -LDAPFieldSkypeExample=Example : skypeName +LDAPFieldLastSubscriptionDate=Najnovejši datum vpisa +LDAPFieldLastSubscriptionAmount=Zadnji znesek naročnine +LDAPFieldSkype=Skype ID +LDAPFieldSkypeExample=Primer: skypeName UserSynchronized=Uporabnik sinhroniziran GroupSynchronized=Skupina sinhronizirana MemberSynchronized=Član sinhroniziran -MemberTypeSynchronized=Member type synchronized +MemberTypeSynchronized=Vrsta člana je sinhronizirana ContactSynchronized=Kontakt sinhroniziran ForceSynchronize=Vsili sinhronizacijo Dolibarr -> LDAP ErrorFailedToReadLDAP=Branje LDAP baze podatkov ni uspelo. Preverite nastavitev LDAP modula in dostopnost baze podatkov. -PasswordOfUserInLDAP=Password of user in LDAP +PasswordOfUserInLDAP=Geslo uporabnika v LDAP +LDAPPasswordHashType=Vrsta zgoščene vrednosti gesla +LDAPPasswordHashTypeExample=Vrsta zgoščene vrednosti gesla, ki se uporablja na strežniku +SupportedForLDAPExportScriptOnly=Podprto samo s skriptom za izvoz ldap +SupportedForLDAPImportScriptOnly=Podprto samo s skriptom za uvoz ldap diff --git a/htdocs/langs/sl_SI/link.lang b/htdocs/langs/sl_SI/link.lang index 0e71c159759..8ec7ff7d758 100644 --- a/htdocs/langs/sl_SI/link.lang +++ b/htdocs/langs/sl_SI/link.lang @@ -7,5 +7,5 @@ ErrorFileNotLinked=Datoteke ni možno povezati LinkRemoved=Povezava %s je bila odstranjena ErrorFailedToDeleteLink= Napaka pri odstranitvi povezave '%s'. ErrorFailedToUpdateLink= Napaka pri posodobitvi povezave '%s'. -URLToLink=URL to link -OverwriteIfExists=Overwrite file if exists +URLToLink=URL za povezavo +OverwriteIfExists=Prepiši datoteko, če obstaja diff --git a/htdocs/langs/sl_SI/loan.lang b/htdocs/langs/sl_SI/loan.lang index 684a469bf43..1adf652e537 100644 --- a/htdocs/langs/sl_SI/loan.lang +++ b/htdocs/langs/sl_SI/loan.lang @@ -1,34 +1,34 @@ # Dolibarr language file - Source file is en_US - loan Loan=Posojilo -Loans=Loans -NewLoan=New Loan -ShowLoan=Show Loan -PaymentLoan=Loan payment -LoanPayment=Loan payment -ShowLoanPayment=Show Loan Payment +Loans=Posojila +NewLoan=Novo posojilo +ShowLoan=Prikaži posojilo +PaymentLoan=Plačilo posojila +LoanPayment=Plačilo posojila +ShowLoanPayment=Pokaži plačilo posojila LoanCapital=Kapital -Insurance=Insurance -Interest=Interest -Nbterms=Number of terms -Term=Term -LoanAccountancyCapitalCode=Accounting account capital -LoanAccountancyInsuranceCode=Accounting account insurance -LoanAccountancyInterestCode=Accounting account interest -ConfirmDeleteLoan=Confirm deleting this loan -LoanDeleted=Loan Deleted Successfully -ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Loan Paid -ListLoanAssociatedProject=List of loan associated with the project -AddLoan=Create loan -FinancialCommitment=Financial commitment -InterestAmount=Interest -CapitalRemain=Capital remain -TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started -CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule +Insurance=Zavarovanje +Interest=Obresti +Nbterms=Število izrazov +Term=Izraz +LoanAccountancyCapitalCode=Računovodski račun kapitala +LoanAccountancyInsuranceCode=Zavarovanje računovodskega računa +LoanAccountancyInterestCode=Računovodske obresti na računu +ConfirmDeleteLoan=Potrdite brisanje tega posojila +LoanDeleted=Posojilo je bilo uspešno izbrisano +ConfirmPayLoan=Potrdite razvrstitev plačanega tega posojila +LoanPaid=Posojilo plačano +ListLoanAssociatedProject=Seznam posojil, povezanih s projektom +AddLoan=Ustvari posojilo +FinancialCommitment=Finančna obveznost +InterestAmount=Obresti +CapitalRemain=Kapital ostaja +TermPaidAllreadyPaid = Ta termin je že plačan +CantUseScheduleWithLoanStartedToPaid = Ni mogoče ustvariti časovnice za posojilo z začetim plačilom +CantModifyInterestIfScheduleIsUsed = Spremembe v načrtovanih dogodkih niso dovoljene # Admin -ConfigLoan=Configuration of the module loan -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default -CreateCalcSchedule=Edit financial commitment +ConfigLoan=Konfiguracija izposoje modula +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) +CreateCalcSchedule=Uredi finančno obveznost diff --git a/htdocs/langs/sl_SI/mailmanspip.lang b/htdocs/langs/sl_SI/mailmanspip.lang index 7f08a061166..1d154d4087e 100644 --- a/htdocs/langs/sl_SI/mailmanspip.lang +++ b/htdocs/langs/sl_SI/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Nastavitev modula Mailman in SPIP -MailmanTitle=Mailman mailing list system -TestSubscribe=To test subscription to Mailman lists -TestUnSubscribe=To test unsubscribe from Mailman lists -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully -SynchroMailManEnabled=A Mailman update will be performed -SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password -DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions -DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions -DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) -SPIPTitle=SPIP Content Management System +MailmanTitle=Sistem poštnega seznama Mailman +TestSubscribe=Za preizkus vpisa na sezname Mailman +TestUnSubscribe=Za preizkus se odjavite s seznamov Mailman +MailmanCreationSuccess=Test naročnine je bil uspešno izveden +MailmanDeletionSuccess=Preizkus odjave je bil uspešno izveden +SynchroMailManEnabled=Izvedena bo posodobitev Mailman +SynchroSpipEnabled=Izvedena bo posodobitev Spipa +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Administratorsko geslo Mailman +DescADHERENT_MAILMAN_URL=URL za naročnine na Mailman +DescADHERENT_MAILMAN_UNSUB_URL=URL za odjave Mailmana +DescADHERENT_MAILMAN_LISTS=Seznami za avtomatski vpis novih članov (ločeni z vejico) +SPIPTitle=SPIP sistem za upravljanje vsebin DescADHERENT_SPIP_SERVEUR=SPIP Strežnik DescADHERENT_SPIP_DB=Ime SPIP baze podatkov DescADHERENT_SPIP_USER=Uporabniško ime za SPIP bazo podatkov DescADHERENT_SPIP_PASS=Geslo za SPIP bazo podatkov AddIntoSpip=Dodaj v SPIP -AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? -AddIntoSpipError=Failed to add the user in SPIP +AddIntoSpipConfirmation=Ali ste prepričani, da želite dodati tega člana v SPIP? +AddIntoSpipError=Uporabnika ni bilo mogoče dodati v SPIP DeleteIntoSpip=Odstrani iz SPIP DeleteIntoSpipConfirmation=Ali zares želite odstraniti tega člana iz SPIP? -DeleteIntoSpipError=Failed to suppress the user from SPIP +DeleteIntoSpipError=Zatiranje uporabnika iz SPIP-a ni uspelo SPIPConnectionFailed=Neuspešna povezava s SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +SuccessToAddToMailmanList=%s uspešno dodan na seznam pošiljateljev %s ali bazo podatkov SPIP +SuccessToRemoveToMailmanList=%s uspešno odstranjen s seznama pošiljateljev %s ali baze podatkov SPIP diff --git a/htdocs/langs/sl_SI/mails.lang b/htdocs/langs/sl_SI/mails.lang index f19fd2d5a21..b238306ee6f 100644 --- a/htdocs/langs/sl_SI/mails.lang +++ b/htdocs/langs/sl_SI/mails.lang @@ -7,20 +7,20 @@ MailCard=Kartica e-pošte MailRecipients=Prejemniki MailRecipient=Prejemnik MailTitle=Naziv -MailFrom=Pošiljatelj +MailFrom=Izdajatelj MailErrorsTo=Naslov za napake MailReply=Odgovoriti -MailTo=Za -MailToUsers=To user(s) +MailTo=Prejemnik +MailToUsers=Za uporabnike MailCC=Kopija -MailToCCUsers=Copy to users(s) +MailToCCUsers=Kopiraj za uporabnike MailCCC=Skrita kopija -MailTopic=Email subject +MailTopic=Zadeva e-pošte MailText=Sporočilo MailFile=Priloge MailMessage=Vsebina Email-a -SubjectNotIn=Not in Subject -BodyNotIn=Not in Body +SubjectNotIn=Ni v temi +BodyNotIn=Ne v telesu ShowEMailing=Prikaži e-sporočila ListOfEMailings=Seznam e-sporočil NewMailing=Novo e-sporočilo @@ -39,77 +39,77 @@ MailingStatusSentPartialy=Delno poslan MailingStatusSentCompletely=Poslano v celoti MailingStatusError=Napaka MailingStatusNotSent=Ni poslano -MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery +MailSuccessfulySent=E-pošta (od %s do %s) je bila uspešno sprejeta za dostavo MailingSuccessfullyValidated=E-pošiljanje uspešno potrjeno MailUnsubcribe=Odjava MailingStatusNotContact=Ne kontaktiraj več -MailingStatusReadAndUnsubscribe=Read and unsubscribe +MailingStatusReadAndUnsubscribe=Preberite in se odjavite ErrorMailRecipientIsEmpty=Prejemnik ni določen WarningNoEMailsAdded=Nobenega novega e-sporočila ni za dodajanje na prejemnikov seznam. -ConfirmValidMailing=Are you sure you want to validate this emailing? -ConfirmResetMailing=Warning, by re-initializing emailing %s, you will allow the re-sending this email in a bulk mailing. Are you sure you want to do this? -ConfirmDeleteMailing=Are you sure you want to delete this emailing? -NbOfUniqueEMails=No. of unique emails -NbOfEMails=No. of EMails +ConfirmValidMailing=Ali ste prepričani, da želite potrditi to e-poštno sporočilo? +ConfirmResetMailing=Opozorilo, s ponovno inicializacijo e-poštnega pošiljanja %s boste omogočili ponovno pošiljanje tega e-poštnega sporočila v množičnem pošiljanju. Ste prepričani, da želite to narediti? +ConfirmDeleteMailing=Ali ste prepričani, da želite izbrisati to e-poštno sporočilo? +NbOfUniqueEMails=Št. edinstvenih e-poštnih sporočil +NbOfEMails=Število e-poštnih sporočil TotalNbOfDistinctRecipients=Število različnih prejemnikov NoTargetYet=Noben prejemnik še ni določen (Pojdite na jeziček 'Prejemniki') -NoRecipientEmail=No recipient email for %s +NoRecipientEmail=Ni e-pošte prejemnika za %s RemoveRecipient=Odstrani prejemnika YouCanAddYourOwnPredefindedListHere=Za kreiranje vašega modula e-pošte glejte htdocs/includes/modules/mailings/README. EMailTestSubstitutionReplacedByGenericValues=V testnem načinu so nadomestne spremenljivke zamenjane z generičnimi vrednostmi MailingAddFile=Dodaj to datoteko NoAttachedFiles=Ni dodanih datotek -BadEMail=Bad value for Email -EMailNotDefined=Email not defined -ConfirmCloneEMailing=Are you sure you want to clone this emailing? +BadEMail=Neveljavna e-pošta +EMailNotDefined=E-pošta ni definirana +ConfirmCloneEMailing=Ali ste prepričani, da želite klonirati to e-pošto? CloneContent=Kloniraj sporočilo CloneReceivers=Kloniraj prejemnike -DateLastSend=Date of latest sending +DateLastSend=Datum zadnjega pošiljanja DateSending=Datum pošiljanja SentTo=Poslano na %s MailingStatusRead=Preberite -YourMailUnsubcribeOK=The email %s is correctly unsubscribe from mailing list -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature -EMailSentToNRecipients=Email sent to %s recipients. -EMailSentForNElements=Email sent for %s elements. +YourMailUnsubcribeOK=E-pošta %s je pravilno odjava iz poštnega seznama +ActivateCheckReadKey=Ključ za šifriranje URL-ja, ki se uporablja za funkcijo »Potrdilo o branju« in »Odjava«. +EMailSentToNRecipients=E-pošta je bila poslana prejemnikom %s. +EMailSentForNElements=Poslano e-poštno sporočilo za elemente %s. XTargetsAdded=%s prejemnikov dodanih na ciljni seznam -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version). -AllRecipientSelected=The recipients of the %s record selected (if their email is known). -GroupEmails=Group emails -OneEmailPerRecipient=One email per recipient (by default, one email per record selected) -WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them. -ResultOfMailSending=Result of mass Email sending -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent -SentXXXmessages=%s message(s) sent. -ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? -MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters -MailingModuleDescContactsByCompanyCategory=Contacts by third-party category -MailingModuleDescContactsByCategory=Contacts by categories -MailingModuleDescContactsByFunction=Contacts by position -MailingModuleDescEmailsFromFile=Emails from file -MailingModuleDescEmailsFromUser=Emails input by user -MailingModuleDescDolibarrUsers=Users with Emails -MailingModuleDescThirdPartiesByCategories=Third parties (by categories) -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. -EmailCollectorFilterDesc=All filters must match to have an email being collected +OnlyPDFattachmentSupported=Če so bili dokumenti PDF že ustvarjeni za predmete za pošiljanje, bodo priloženi e-pošti. Če ne, e-pošta ne bo poslana (upoštevajte tudi, da so v tej različici pri množičnem pošiljanju kot priloge podprti samo dokumenti pdf). +AllRecipientSelected=Izbrani prejemniki zapisa %s (če je njihov e-poštni naslov znan). +GroupEmails=E-pošta skupine +OneEmailPerRecipient=Eno e-poštno sporočilo na prejemnika (privzeto je izbrano eno e-poštno sporočilo na zapis) +WarningIfYouCheckOneRecipientPerEmail=Opozorilo, če označite to polje, to pomeni, da bo poslano samo eno e-poštno sporočilo za več izbranih različnih zapisov, tako da, če vaše sporočilo vsebuje nadomestne spremenljivke, ki se nanašajo na podatke zapisa, jih ni mogoče zamenjati. +ResultOfMailSending=Rezultat množičnega pošiljanja elektronske pošte +NbSelected=Izbrana številka +NbIgnored=Številka prezrta +NbSent=Številka poslana +SentXXXmessages=%s poslanih sporočil. +ConfirmUnvalidateEmailing=Ali ste prepričani, da želite spremeniti e-poštni naslov %s v status osnutka? +MailingModuleDescContactsWithThirdpartyFilter=Filtri stika s strankami +MailingModuleDescContactsByCompanyCategory=Stiki po kategorijah partnerjev +MailingModuleDescContactsByCategory=Kontakti po kategorijah +MailingModuleDescContactsByFunction=Kontakti po položaju +MailingModuleDescEmailsFromFile=E-poštna sporočila iz datoteke +MailingModuleDescEmailsFromUser=E-poštna sporočila, ki jih vnese uporabnik +MailingModuleDescDolibarrUsers=Uporabniki z e-pošto +MailingModuleDescThirdPartiesByCategories=Partnerji (po kategorijah) +SendingFromWebInterfaceIsNotAllowed=Pošiljanje iz spletnega vmesnika ni dovoljeno. +EmailCollectorFilterDesc=Za zbiranje e-pošte se morajo vsi filtri ujemati # Libelle des modules de liste de destinataires mailing LineInFile=%s vrstica v datoteki RecipientSelectionModules=Določitev zahtev za izbiro prejemnikov MailSelectedRecipients=Izbrani prejemniki MailingArea=Področje e-pošte -LastMailings=Latest %s emailings +LastMailings=Najnovejša e-poštna sporočila %s TargetsStatistics=Ciljna statistika NbOfCompaniesContacts=Enolični kontakti podjetij MailNoChangePossible=Prejemnikov za potrjeno e-sporočilo ne morete spremeniti SearchAMailing=Iskanje e-pošte SendMailing=Pošiljanje e-pošte SentBy=Poslal -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: +MailingNeedCommand=Pošiljanje elektronske pošte lahko izvedete iz ukazne vrstice. Prosite skrbnika strežnika, da zažene naslednji ukaz za pošiljanje e-pošte vsem prejemnikom: MailingNeedCommand2=Lahko jih seveda pošljete tudi »online«, če dodate parameter MAILING_LIMIT_SENDBYWEB z največjim številom e-sporočil, ki jih želite poslati v eni seji. -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ? +ConfirmSendingEmailing=Če želite poslati e-pošto neposredno s tega zaslona, potrdite, da ste prepričani, da želite poslati e-pošto zdaj iz vašega brskalnika? LimitSendingEmailing=Opomba: Pošiljanje e-pošte preko spletnega vmesnika je večkrat izvršeno zaradi varnostnih razlogov in časovnih omejitev, %s prejemnikov naenkrat za vsako pošiljanje. TargetsReset=Prekliči seznam ToClearAllRecipientsClickHere=Kliknite tukaj za preklic seznama prejemnikov te e-pošte @@ -117,64 +117,65 @@ ToAddRecipientsChooseHere=Dodajanje prejemnikov z izbiro s seznamov NbOfEMailingsReceived=Število prejetih masovnih e-sporočil NbOfEMailingsSend=Masovno pošiljanje je izvršeno IdRecord=ID zapis -DeliveryReceipt=Delivery Ack. +DeliveryReceipt=Dostava Ack. YouCanUseCommaSeparatorForSeveralRecipients=Lahko uporabite vejico kot ločilo pri naštevanju več prejemnikov. TagCheckMail=Odpiranje sledenja pošte TagUnsubscribe=Povezava za odjavo -TagSignature=Signature of sending user -EMailRecipient=Recipient Email -TagMailtoEmail=Recipient Email (including html "mailto:" link) +TagSignature=Podpis uporabnika pošiljatelja +EMailRecipient=E-pošta prejemnika +TagMailtoEmail=E-pošta prejemnika (vključno s povezavo html »mailto:«) NoEmailSentBadSenderOrRecipientEmail=Email ni bil poslan. Napačen naslov pošiljatelja ali prejemnika. Preverite profil uporabnika. # Module Notifications Notifications=Obvestila -NotificationsAuto=Notifications Auto. -NoNotificationsWillBeSent=No automatic email notifications are planned for this event type and company -ANotificationsWillBeSent=1 automatic notification will be sent by email -SomeNotificationsWillBeSent=%s automatic notifications will be sent by email -AddNewNotification=Subscribe to a new automatic email notification (target/event) -ListOfActiveNotifications=List of all active subscriptions (targets/events) for automatic email notification -ListOfNotificationsDone=List of all automatic email notifications sent +NotificationsAuto=Samodejna obvestila. +NoNotificationsWillBeSent=Za to vrsto dogodka in podjetje ni načrtovanih samodejnih e-poštnih obvestil +ANotificationsWillBeSent=1 samodejno obvestilo bo poslano po e-pošti +SomeNotificationsWillBeSent=%s samodejna obvestila bodo poslana po e-pošti +AddNewNotification=Naročite se na novo samodejno e-poštno obvestilo (cilj/dogodek) +ListOfActiveNotifications=Seznam vseh aktivnih naročnin (ciljev/dogodkov) za samodejno obveščanje po e-pošti +ListOfNotificationsDone=Seznam vseh poslanih samodejnih e-poštnih obvestil MailSendSetupIs=Konfiguracij pošiljanja e-pošte je bila nastavljena na '%s'. Ta način ne more biti uporabljen za masovno pošiljanje. MailSendSetupIs2=Najprej morate kot administrator preko menija %sDomov - Nastavitve - E-pošta%s spremeniti parameter '%s' za uporabo načina '%s'. V tem načinu lahko odprete nastavitve SMTP strežnika, ki vam jih omogoča vaš spletni oprerater in uporabite masovno pošiljanje. MailSendSetupIs3=Če imate vprašanja o nastavitvi SMTP strežnika, lahko vprašate %s. YouCanAlsoUseSupervisorKeyword=Lahko tudi dodate ključno besedo __SUPERVISOREMAIL__ da bodo emaili poslani nadzorniku (deluje samo, če je email definiran za tega nadzornika) NbOfTargetedContacts=Trenutno število emailov ciljnih kontaktov -UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other -UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other -MailAdvTargetRecipients=Recipients (advanced selection) -AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target -AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima%% will target all jean, joe, start with jim but not jimo and not everything that starts with jima -AdvTgtSearchIntHelp=Use interval to select int or float value -AdvTgtMinVal=Minimum value -AdvTgtMaxVal=Maximum value -AdvTgtSearchDtHelp=Use interval to select date value -AdvTgtStartDt=Start dt. -AdvTgtEndDt=End dt. -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third-party email or just contact email -AdvTgtTypeOfIncude=Type of targeted email -AdvTgtContactHelp=Use only if you target contact into "Type of targeted email" -AddAll=Add all -RemoveAll=Remove all -ItemsCount=Item(s) -AdvTgtNameTemplate=Filter name -AdvTgtAddContact=Add emails according to criteria -AdvTgtLoadFilter=Load filter -AdvTgtDeleteFilter=Delete filter -AdvTgtSaveFilter=Save filter -AdvTgtCreateFilter=Create filter -AdvTgtOrCreateNewFilter=Name of new filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties -OutGoingEmailSetup=Outgoing emails -InGoingEmailSetup=Incoming emails -OutGoingEmailSetupForEmailing=Outgoing emails (for module %s) -DefaultOutgoingEmailSetup=Same configuration than the global Outgoing email setup +UseFormatFileEmailToTarget=Uvožena datoteka mora imeti obliko email;ime;ime;drugo +UseFormatInputEmailToTarget=Vnesite niz v obliki e-pošta;ime;ime;drugo +MailAdvTargetRecipients=Prejemniki (napredna izbira) +AdvTgtTitle=Izpolnite vnosna polja, da vnaprej izberete partnerja ali stike/naslove, na katere želite ciljati +AdvTgtSearchTextHelp=Uporabite %% kot nadomestne znake. Če želite na primer poiskati vse elemente, kot je jean, joe, jim , lahko vnesete j%% , lahko tudi uporabite; kot ločilo za vrednost in uporabite ! razen te vrednosti. Na primer jean;joe;jim%%;!jimo;!jima%% bo ciljal na vse jean, joe, začeli z jim, vendar ne jimo in ne vse, kar se začne z jima +AdvTgtSearchIntHelp=Uporabite interval za izbiro int ali plavajoče vrednosti +AdvTgtMinVal=Najmanjša vrednost +AdvTgtMaxVal=Največja vrednost +AdvTgtSearchDtHelp=Za izbiro datumske vrednosti uporabite interval +AdvTgtStartDt=Začni dt. +AdvTgtEndDt=Konec dt. +AdvTgtTypeOfIncudeHelp=Ciljni e-poštni naslov partnerja in e-poštni naslov za stik partnerja ali samo e-poštni naslov partnerja ali samo e-poštni naslov za stik +AdvTgtTypeOfIncude=Vrsta ciljne e-pošte +AdvTgtContactHelp=Uporabite le, če ciljno usmerite stik v »Vrsto ciljanega e-poštnega sporočila« +AddAll=Dodaj vse +RemoveAll=Odstrani vse +ItemsCount=Element(i) +AdvTgtNameTemplate=Ime filtra +AdvTgtAddContact=Dodajte e-pošto glede na merila +AdvTgtLoadFilter=Naloži filter +AdvTgtDeleteFilter=Izbriši filter +AdvTgtSaveFilter=Shrani filter +AdvTgtCreateFilter=Ustvari filter +AdvTgtOrCreateNewFilter=Ime novega filtra +NoContactWithCategoryFound=Ni kategorije, ki bi bila povezana z nekaterimi kontakti/naslovi +NoContactLinkedToThirdpartieWithCategoryFound=Ni kategorije, ki bi bila povezana z nekaterimi tretjimi osebami +OutGoingEmailSetup=Odhodna e-pošta +InGoingEmailSetup=Dohodna e-pošta +OutGoingEmailSetupForEmailing=Odhodna e-pošta (za modul %s) +DefaultOutgoingEmailSetup=Enaka konfiguracija kot nastavitev globalne odhodne e-pošte Information=Informacija -ContactsWithThirdpartyFilter=Contacts with third-party filter -Unanswered=Unanswered -Answered=Answered -IsNotAnAnswer=Is not answer (initial email) -IsAnAnswer=Is an answer of an initial email -RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact -DefaultStatusEmptyMandatory=Empty but mandatory +ContactsWithThirdpartyFilter=Stiki s filtrom tretjih oseb +Unanswered=Brez odgovora +Answered=Odgovoril +IsNotAnAnswer=Ni odgovora (začetni e-poštni naslov) +IsAnAnswer=Je odgovor na prvotno e-pošto +RecordCreatedByEmailCollector=Zapis, ki ga je ustvaril zbiralnik e-pošte %s iz e-pošte %s +DefaultBlacklistMailingStatus=Privzeta vrednost za polje '%s' pri ustvarjanju novega stika +DefaultStatusEmptyMandatory=Prazen, a obvezen +WarningLimitSendByDay=OPOZORILO: Nastavitev ali pogodba vašega primerka omejuje vaše število e-poštnih sporočil na dan na %s . Poskus pošiljanja več lahko povzroči upočasnitev ali začasno zaustavitev vašega primerka. Če potrebujete višjo kvoto, se obrnite na podporo. diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang index 9633b6caa9b..604cbcc3f12 100644 --- a/htdocs/langs/sl_SI/main.lang +++ b/htdocs/langs/sl_SI/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=8 SeparatorDecimal=, @@ -24,16 +30,17 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%d. %b, %Y, %I:%M %p FormatDateHourText=%d. %B, %Y, %I:%M %p DatabaseConnection=Povezave podatkovnih baz -NoTemplateDefined=No template available for this email type -AvailableVariables=Available substitution variables +NoTemplateDefined=Za to vrsto e-pošte ni na voljo nobene predloge +AvailableVariables=Razpoložljive substitucijske spremenljivke NoTranslation=Ni prevoda Translation=Prevod +Translations=Prevodi CurrentTimeZone=Časovni pas PHP strežnika -EmptySearchString=Enter non empty search criterias -EnterADateCriteria=Enter a date criteria +EmptySearchString=Vnesite iskalne kriterije, ki niso prazni +EnterADateCriteria=Vnesite merilo za datum NoRecordFound=Ni najden zapis -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data +NoRecordDeleted=Noben zapis ni izbrisan +NotEnoughDataYet=Ni dovolj podatkov NoError=Ni napake Error=Napaka Errors=Napake @@ -41,92 +48,92 @@ ErrorFieldRequired=Polje '%s' je obvezno ErrorFieldFormat=Vrednost v polju '%s' je napačna ErrorFileDoesNotExists=Datoteka %s ne obstaja ErrorFailedToOpenFile=Napaka pri odpiranju datoteke %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s +ErrorCanNotCreateDir=Imenika ni mogoče ustvariti %s +ErrorCanNotReadDir=Imenika ni mogoče prebrati %s ErrorConstantNotDefined=Parameter %s ni definiran ErrorUnknown=Neznana napaka ErrorSQL=SQL napaka ErrorLogoFileNotFound=Datoteka z logotipom '%s' ni bila najdena -ErrorGoToGlobalSetup=Go to 'Company/Organization' setup to fix this +ErrorGoToGlobalSetup=Pojdite na nastavitve »Podjetje/organizacija«, da to popravite ErrorGoToModuleSetup=Popravite v meniju 'Nastavitve', 'Moduli' ErrorFailedToSendMail=Napaka pri pošiljanju E-maila (pošiljatelj=%s, prejemnik=%s) ErrorFileNotUploaded=Datoteka ni bila naložena. Preverite, če velikost ne presega omejitve, če je na disku dovolj prostora ali če datoteka z istim imenom že obstaja v tej mapi. ErrorInternalErrorDetected=Zaznana napaka ErrorWrongHostParameter=Napačen parameter gostitelja -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record. +ErrorYourCountryIsNotDefined=Vaša država ni določena. Pojdite na Home-Setup-Edit in ponovno objavite obrazec. +ErrorRecordIsUsedByChild=Tega zapisa ni bilo mogoče izbrisati. Ta zapis uporablja vsaj en podrejeni zapis. ErrorWrongValue=Napačna vrednost ErrorWrongValueForParameterX=Napačna vrednost parametra %s ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later. +ErrorServiceUnavailableTryLater=Storitev trenutno ni na voljo. Poskusi znova kasneje. ErrorDuplicateField=Podvojena vrednost v enoličnem polju -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back. -ErrorConfigParameterNotDefined=Parameter %s is not defined in the Dolibarr config file conf.php. +ErrorSomeErrorWereFoundRollbackIsDone=Najdenih je bilo nekaj napak. Spremembe so bile razveljavljene. +ErrorConfigParameterNotDefined=Parameter %s ni definiran v konfiguracijski datoteki Dolibarr conf.php . ErrorCantLoadUserFromDolibarrDatabase=Napaka pri iskanju uporabnika %s v Dolibarr bazi podatkov. ErrorNoVATRateDefinedForSellerCountry=Napaka, za državo '%s' niso definirane davčna stopnje. ErrorNoSocialContributionForSellerCountry=Napaka, za državo '%s' niso definirane stopnje socialnega/fiskalnega davka. ErrorFailedToSaveFile=Napaka, datoteka ni bila shranjena. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a existing warehouse -FieldCannotBeNegative=Field "%s" cannot be negative -MaxNbOfRecordPerPage=Max. number of records per page +ErrorCannotAddThisParentWarehouse=Poskušate dodati nadrejeno skladišče, ki je že podrejeno obstoječemu skladišču +FieldCannotBeNegative=Polje "%s" ne more biti negativno +MaxNbOfRecordPerPage=maks. število zapisov na stran NotAuthorized=Nimate dovoljenja za to. SetDate=Nastavi datum SelectDate=Izberi datum SeeAlso=Glejte tudi %s SeeHere=Glej tukaj ClickHere=Kliknite tukaj -Here=Here +Here=Tukaj Apply=Uporabi BackgroundColorByDefault=Privzeta barva ozadja -FileRenamed=The file was successfully renamed -FileGenerated=The file was successfully generated -FileSaved=The file was successfully saved +FileRenamed=Datoteka je bila uspešno preimenovana +FileGenerated=Datoteka je bila uspešno ustvarjena +FileSaved=Datoteka je bila uspešno shranjena FileUploaded=Datoteka je bila uspešno naložena -FileTransferComplete=File(s) uploaded successfully -FilesDeleted=File(s) successfully deleted +FileTransferComplete=Datoteke so bile uspešno naložene +FilesDeleted=Datoteke so uspešno izbrisane FileWasNotUploaded=Izbrana je bila datoteka za prilogo, vendar še ni dodana. Kliknite na "Pripni datoteko". -NbOfEntries=No. of entries -GoToWikiHelpPage=Read online help (Internet access needed) +NbOfEntries=Št. vnosov +GoToWikiHelpPage=Preberite spletno pomoč (potreben je dostop do interneta) GoToHelpPage=Preberite pomoč -DedicatedPageAvailable=Dedicated help page related to your current screen -HomePage=Home Page +DedicatedPageAvailable=Posebna stran s pomočjo, povezana z vašim trenutnim zaslonom +HomePage=Domača stran RecordSaved=Zapis je shranjen RecordDeleted=Zapis je izbrisan -RecordGenerated=Record generated +RecordGenerated=Zapis ustvarjen LevelOfFeature=Nivo značilnosti NotDefined=Ni definiran -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
    This means that the password database is external to Dolibarr, so changing this field may have no effect. +DolibarrInHttpAuthenticationSoPasswordUseless=Način preverjanja pristnosti Dolibarr je nastavljen na %s v konfiguracijski datoteki conf.php .
    To pomeni, da je zbirka gesel zunanja za Dolibarr, zato sprememba tega polja morda ne bo imela učinka. Administrator=Administrator Undefined=Nedefinirano -PasswordForgotten=Password forgotten? -NoAccount=No account? +PasswordForgotten=Pozabljeno geslo? +NoAccount=Brez računa? SeeAbove=Glejte zgoraj HomeArea=Domov -LastConnexion=Last login -PreviousConnexion=Previous login -PreviousValue=Previous value +LastConnexion=Zadnja prijava +PreviousConnexion=Prejšnja prijava +PreviousValue=Prejšnja vrednost ConnectedOnMultiCompany=Prijava na entiteto ConnectedSince=Prijavljen od -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL +AuthenticationMode=Način preverjanja pristnosti +RequestedUrl=Zahtevani URL DatabaseTypeManager=Upravljalnik tipov baz podatkov -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error +RequestLastAccessInError=Napaka zadnje zahteve za dostop do zbirke podatkov +ReturnCodeLastAccessInError=Povratna koda za napako zadnje zahteve za dostop do baze podatkov +InformationLastAccessInError=Informacije o zadnji napaki pri zahtevi za dostop do zbirke podatkov DolibarrHasDetectedError=Dolibarr je zaznal tehnično napako -YouCanSetOptionDolibarrMainProdToZero=You can read log file or set option $dolibarr_main_prod to '0' in your config file to get more information. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +YouCanSetOptionDolibarrMainProdToZero=Za več informacij lahko preberete dnevniško datoteko ali nastavite možnost $dolibarr_main_prod na '0' v vaši konfiguracijski datoteki. +InformationToHelpDiagnose=Te informacije so lahko uporabne za diagnostične namene (možnost $dolibarr_main_prod lahko nastavite na '1', da skrijete občutljive informacije) MoreInformation=Več informacij TechnicalInformation=Tehnična informacija TechnicalID=Tehnični ID -LineID=Line ID +LineID=ID vrstice NotePublic=Opomba (javna) NotePrivate=Opomba (privatna) PrecisionUnitIsLimitedToXDecimals=Dolibarr je nastavljen na omejitev natančnosti cen posameznih enot na %s decimalk. DoTest=Test ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +NoFilter=Brez filtra +WarningYouHaveAtLeastOneTaskLate=Opozorilo, imate vsaj en element, ki je presegel tolerančni čas. yes=da Yes=Da no=ne @@ -136,19 +143,19 @@ Home=Domov Help=Pomoč OnlineHelp=Online pomoč PageWiki=Wiki stran -MediaBrowser=Media browser +MediaBrowser=Medijski brskalnik Always=Vedno Never=Nikoli Under=pod Period=Obdobje PeriodEndDate=Končni datum obdobja -SelectedPeriod=Selected period -PreviousPeriod=Previous period +SelectedPeriod=Izbrano obdobje +PreviousPeriod=Prejšnje obdobje Activate=Aktiviraj Activated=Aktiviran Closed=Zaključen Closed2=Zaključen -NotClosed=Not closed +NotClosed=Ni zaprto Enabled=Omogočen Enable=Omogočeno Deprecated=Nasprotovanje @@ -157,77 +164,78 @@ Disabled=Onemogočen Add=Dodaj AddLink=Dodaj povezavo RemoveLink=Odstrani povezavo -AddToDraft=Add to draft +AddToDraft=Dodaj v osnutek Update=Posodobi Close=Zapri -CloseAs=Set status to -CloseBox=Remove widget from your dashboard +CloseAs=Nastavi stanje na +CloseBox=Odstranite pripomoček z nadzorne plošče Confirm=Potrdi -ConfirmSendCardByMail=Do you really want to send the content of this card by mail to %s? +ConfirmSendCardByMail=Ali res želite poslati vsebino te kartice po pošti na %s ? Delete=Briši Remove=Odstrani -Resiliate=Terminate +Resiliate=Prekiniti Cancel=Razveljavi Modify=Spremeni Edit=Uredi Validate=Potrdi ValidateAndApprove=Potrdi in odobri ToValidate=Za potrditev -NotValidated=Not validated +NotValidated=Ni potrjeno Save=Shrani SaveAs=Shrani kot -SaveAndStay=Save and stay -SaveAndNew=Save and new +SaveAndStay=Prihrani in ostani +SaveAndNew=Shrani in novo TestConnection=Test povezave ToClone=Kloniraj -ConfirmCloneAsk=Are you sure you want to clone the object %s? -ConfirmClone=Choose the data you want to clone: +ConfirmCloneAsk=Ali ste prepričani, da želite klonirati predmet %s ? +ConfirmClone=Izberite podatke, ki jih želite klonirati: NoCloneOptionsSpecified=Ni definiranih podatkov za kloniranje. Of=od Go=Pojdi Run=Zaženi CopyOf=Kopija od Show=Prikaži -Hide=Hide +Hide=Skrij se ShowCardHere=Prikaži kartico Search=Išči SearchOf=Iskanje SearchMenuShortCut=Ctrl + shift + f -QuickAdd=Quick add +QuickAdd=Hitro dodajanje QuickAddMenuShortCut=Ctrl + shift + l Valid=Veljaven Approve=Potrdi Disapprove=Prekliči odobritev ReOpen=Ponovno odpri -Upload=Upload +OpenVerb=Odprt +Upload=Naloži ToLink=Povezava Select=Dodaj kot lastnika -SelectAll=Select all +SelectAll=Izberi vse Choose=Izbira Resize=Spremeni velikost -ResizeOrCrop=Resize or Crop +ResizeOrCrop=Spremeni velikost ali Obreži Recenter=Ponovno centriraj Author=Avtor User=Uporabnik Users=Uporabniki Group=Skupina Groups=Skupine -UserGroup=User group -UserGroups=User groups +UserGroup=Skupina uporabnikov +UserGroups=Skupine uporabnikov NoUserGroupDefined=Nobena skupina uporabnikov ni definirana Password=Geslo -PasswordRetype=Ponoven vnos gesla +PasswordRetype=Ponovite svoje geslo NoteSomeFeaturesAreDisabled=Upoštevajte, da je veliko funkcij/modulov v tej demonstraciji onemogočenih. Name=Priimek -NameSlashCompany=Name / Company +NameSlashCompany=Ime / Podjetje Person=Oseba Parameter=Parameter Parameters=Parametri Value=Vrednost PersonalValue=Osebna vrednost -NewObject=New %s +NewObject=Novo %s NewValue=Nova vrednost -OldValue=Old value %s +OldValue=Stara vrednost %s CurrentValue=Trenutna vrednost Code=Koda Type=Tip @@ -242,14 +250,15 @@ Family=Družina Description=Opis Designation=Artikel / Storitev DescriptionOfLine=Opis vrstice -DateOfLine=Date of line -DurationOfLine=Duration of line -Model=Doc template -DefaultModel=Default doc template +DateOfLine=Datum vrstice +DurationOfLine=Trajanje vrstice +ParentLine=ID nadrejene vrstice +Model=Predloga dokumenta +DefaultModel=Privzeta predloga dokumenta Action=Aktivnost About=O programu Number=Številka -NumberByMonth=Total reports by month +NumberByMonth=Skupna poročila po mesecih AmountByMonth=Znesek po mesecih Numero=Številka Limit=Omejitev @@ -266,7 +275,7 @@ Cards=Kartice Card=Kartica Now=Zdaj HourStart=Ura začetka -Deadline=Deadline +Deadline=Rok Date=Datum DateAndHour=Datum in ura DateToday=Današnji datum @@ -275,13 +284,13 @@ DateStart=Začetni datum DateEnd=Končni datum DateCreation=Datum kreiranja DateCreationShort=Datum ustvarjanja -IPCreation=Creation IP +IPCreation=IP za ustvarjanje DateModification=Datum spremembe DateModificationShort=Dat.spr. -IPModification=Modification IP +IPModification=Modifikacija IP DateLastModification=Datum zadnje spremembe DateValidation=Datum potrditve -DateSigning=Signing date +DateSigning=Datum podpisa DateClosing=Datum zaključka DateDue=Datum zapadlosti DateValue=Datum veljavnosti @@ -295,13 +304,13 @@ DateBuild=Datum izdelave poročila DatePayment=Datum plačila DateApprove=Datum odobritve DateApprove2=Datum odobritve (drugi nivo) -RegistrationDate=Registration date -UserCreation=Creation user -UserModification=Modification user -UserValidation=Validation user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -UserValidationShort=Valid. user +RegistrationDate=Datum registracije +UserCreation=Uporabnik ustvarjanja +UserModification=Uporabnik spremembe +UserValidation=Uporabnik za preverjanje veljavnosti +UserCreationShort=Ustvari. uporabnik +UserModificationShort=Modif. uporabnik +UserValidationShort=Veljavno. uporabnik DurationYear=leto DurationMonth=mesec DurationWeek=teden @@ -333,19 +342,19 @@ Morning=Jutro Afternoon=Popoldan Quadri=Četrtletje MonthOfDay=Dan v mesecu -DaysOfWeek=Days of week +DaysOfWeek=Dnevi v tednu HourShort=H MinuteShort=Mn Rate=Stopnja -CurrencyRate=Currency conversion rate +CurrencyRate=Tečaj menjave valut UseLocalTax=Vključi davek Bytes=Byti KiloBytes=Kilobyti MegaBytes=Megabyti GigaBytes=Gigabyti TeraBytes=Terabyti -UserAuthor=Ceated by -UserModif=Updated by +UserAuthor=Ustvaril +UserModif=Posodobil b=b. Kb=Kb Mb=Mb @@ -356,107 +365,107 @@ Copy=Kopiraj Paste=Prilepi Default=Privzeto DefaultValue=Privzeta vrednost -DefaultValues=Default values/filters/sorting +DefaultValues=Privzete vrednosti/filtri/razvrščanje Price=Cena -PriceCurrency=Price (currency) +PriceCurrency=Cena (valuta) UnitPrice=Cena enote -UnitPriceHT=Unit price (excl.) -UnitPriceHTCurrency=Unit price (excl.) (currency) +UnitPriceHT=Cena na enoto (brez) +UnitPriceHTCurrency=Cena na enoto (brez) (valuta) UnitPriceTTC=Cena enote PriceU=C.E. PriceUHT=C.E. (neto) -PriceUHTCurrency=U.P (net) (currency) +PriceUHTCurrency=U.P (neto) (valuta) PriceUTTC=C.E. (z davkom) Amount=Znesek AmountInvoice=Znesek računa -AmountInvoiced=Amount invoiced -AmountInvoicedHT=Amount invoiced (excl. tax) -AmountInvoicedTTC=Amount invoiced (inc. tax) +AmountInvoiced=Znesek na računu +AmountInvoicedHT=Znesek na računu (brez davka) +AmountInvoicedTTC=Znesek na računu (vključno z davkom) AmountPayment=Znesek za plačilo -AmountHTShort=Amount (excl.) +AmountHTShort=Znesek (brez) AmountTTCShort=Znesek (z DDV) -AmountHT=Amount (excl. tax) +AmountHT=Znesek (brez davka) AmountTTC=Znesek (z DDV) AmountVAT=Znesek DDV -MulticurrencyAlreadyPaid=Already paid, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (excl. tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -MulticurrencySubPrice=Amount sub price multi currency +MulticurrencyAlreadyPaid=Že plačano, originalna valuta +MulticurrencyRemainderToPay=Preostanek za plačilo, izvirna valuta +MulticurrencyPaymentAmount=Znesek plačila, originalna valuta +MulticurrencyAmountHT=Znesek (brez davka), izvirna valuta +MulticurrencyAmountTTC=Znesek (vključno z davkom), izvirna valuta +MulticurrencyAmountVAT=Znesek davka, izvirna valuta +MulticurrencySubPrice=Znesek pod ceno v več valutah AmountLT1=Znesek davka 2 AmountLT2=Znesek davka 3 AmountLT1ES=Znesek RE AmountLT2ES=Znesek IRPF AmountTotal=Skupni znesek AmountAverage=Povprečni znesek -PriceQtyMinHT=Price quantity min. (excl. tax) -PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) -PercentOfOriginalObject=Percent of original object -AmountOrPercent=Amount or percent +PriceQtyMinHT=Cena količina min. (brez davka) +PriceQtyMinHTCurrency=Cena količina min. (brez davka) (valuta) +PercentOfOriginalObject=Odstotek izvirnega predmeta +AmountOrPercent=Znesek ali odstotek Percentage=Procent Total=Skupaj SubTotal=Delna vsota -TotalHTShort=Total (excl.) -TotalHT100Short=Total 100%% (excl.) -TotalHTShortCurrency=Total (excl. in currency) +TotalHTShort=Skupaj (brez) +TotalHT100Short=Skupaj 100%% (brez) +TotalHTShortCurrency=Skupaj (brez valute) TotalTTCShort=Skupaj (z DDV) -TotalHT=Total (excl. tax) -TotalHTforthispage=Total (excl. tax) for this page -Totalforthispage=Total for this page +TotalHT=Skupaj (brez davka) +TotalHTforthispage=Skupaj (brez davka) za to stran +Totalforthispage=Skupaj za to stran TotalTTC=Skupaj (z DDV) TotalTTCToYourCredit=Skupaj (z DDV) na vaš dobropis TotalVAT=Skupaj DDV -TotalVATIN=Total IGST +TotalVATIN=Skupaj IGST TotalLT1=Skupaj davek 2 TotalLT2=Skupaj davek 3 TotalLT1ES=Skupaj RE TotalLT2ES=Skupaj IRPF -TotalLT1IN=Total CGST -TotalLT2IN=Total SGST -HT=Excl. tax -TTC=Z DDV -INCVATONLY=Inc. VAT -INCT=Inc. all taxes +TotalLT1IN=Skupaj CGST +TotalLT2IN=Skupaj SGST +HT=brez DDV +TTC=z DDV +INCVATONLY=Vklj. DDV +INCT=Vklj. DDV VAT=DDV VATIN=IGST VATs=Prodajni davki -VATINs=IGST taxes -LT1=Sales tax 2 -LT1Type=Sales tax 2 type -LT2=Sales tax 3 -LT2Type=Sales tax 3 type +VATINs=davki IGST +LT1=Davčna tarifa 2 +LT1Type=Vrsta davčne tarife 2 +LT2=Davčna tarifa 3 +LT2Type=Vrsta davčne tarife 3 LT1ES=RE LT2ES=IRPF LT1IN=CGST LT2IN=SGST -LT1GC=Additionnal cents +LT1GC=Dodatni centi VATRate=Stopnja DDV -RateOfTaxN=Rate of tax %s -VATCode=Tax Rate code -VATNPR=Tax Rate NPR -DefaultTaxRate=Default tax rate +RateOfTaxN=Davčna stopnja %s +VATCode=Koda davčne stopnje +VATNPR=Davčna stopnja NPR +DefaultTaxRate=Privzeta davčna stopnja Average=Povprečje Sum=Vsota Delta=Razlika StatusToPay=Za plačilo -RemainToPay=Remain to pay -Module=Module/Application -Modules=Modules/Applications +RemainToPay=Ostane za plačilo +Module=Modul/Aplikacija +Modules=Moduli/Programi Option=Opcija -Filters=Filters +Filters=Filtri List=Seznam FullList=Celoten seznam -FullConversation=Full conversation +FullConversation=Popoln pogovor Statistics=Statistika -OtherStatistics=Druga statistika +OtherStatistics=Ostale statistike Status=Status Favorite=Priljubljen ShortInfo=Info. Ref=Ref. ExternalRef=Zunanja ref. -RefSupplier=Ref. vendor +RefSupplier=Ref. dobavitelj RefPayment=Ref. plačilo CommercialProposalsShort=Komercialne ponudbe Comment=Komentar @@ -466,24 +475,25 @@ ActionsToDoShort=Planirane ActionsDoneShort=Izvršene ActionNotApplicable=Ni na voljo ActionRunningNotStarted=Nezačete -ActionRunningShort=In progress +ActionRunningShort=V postopku ActionDoneShort=Končane -ActionUncomplete=Incomplete -LatestLinkedEvents=Latest %s linked events -CompanyFoundation=Company/Organization -Accountant=Accountant -ContactsForCompany=Kontakti tega partnerja -ContactsAddressesForCompany=Kontakti/naslovi za tega partnerja -AddressesForCompany=Naslovi za tega partnerja -ActionsOnCompany=Events for this third party -ActionsOnContact=Events for this contact/address -ActionsOnContract=Events for this contract -ActionsOnMember=Dogodki okoli tega člana -ActionsOnProduct=Events about this product +ActionUncomplete=Nepopolna +LatestLinkedEvents=Najnovejši dogodki, povezani z %s +CompanyFoundation=Podjetje/organizacija +Accountant=Računovodja +ContactsForCompany=Stiki za partnerja +ContactsAddressesForCompany=Stiki/naslovi za partnerja +AddressesForCompany=Naslovi za partnerja +ActionsOnCompany=Dogodki za partnerja +ActionsOnContact=Dogodki za stik/naslov +ActionsOnContract=Dogodki za pogodbo +ActionsOnMember=Dogodki člana +ActionsOnProduct=Dogodki na izdelku +ActionsOnAsset=Events for this fixed asset NActionsLate=%s zamujenih ToDo=Planirane -Completed=Completed -Running=In progress +Completed=Dokončano +Running=V postopku RequestAlreadyDone=Zahtevek je bil že zabeležen Filter=Filter FilterOnInto=Iskalni kriterij '%s' v poljih %s @@ -495,9 +505,9 @@ Generate=Ustvari Duration=Trajanje TotalDuration=Skupno trajanje Summary=Povzetek -DolibarrStateBoard=Database Statistics -DolibarrWorkBoard=Open Items -NoOpenedElementToProcess=No open element to process +DolibarrStateBoard=Statistika baze podatkov +DolibarrWorkBoard=Odprti predmeti +NoOpenedElementToProcess=Ni odprtega elementa za obdelavo Available=Na voljo NotYetAvailable=Še ni na voljo NotAvailable=Ni na voljo @@ -511,12 +521,13 @@ to=do To=do ToDate=do ToLocation=do -at=at +at=pri and=in or=ali Other=ostalo Others=Ostali -OtherInformations=Other information +OtherInformations=Druge informacije +Workflow=Potek dela Quantity=Količina Qty=Kol. ChangedBy=Spremenil @@ -530,23 +541,23 @@ Reporting=Poročilo Reportings=Poročila Draft=Osnutek Drafts=Osnutki -StatusInterInvoiced=Invoiced +StatusInterInvoiced=Fakturirano Validated=Potrjen -ValidatedToProduce=Validated (To produce) +ValidatedToProduce=Potrjeno (za proizvodnjo) Opened=Odprt -OpenAll=Open (All) -ClosedAll=Closed (All) +OpenAll=Odpri (vse) +ClosedAll=Zaprto (vse) New=Nov Discount=Popust Unknown=Neznan General=Splošno Size=Velikost -OriginalSize=Original size +OriginalSize=Originalna velikost Received=Prejet Paid=Plačan Topic=Predmet ByCompanies=S podjetji -ByUsers=By user +ByUsers=Po uporabniku Links=Povezave Link=Povezava Rejects=Zavrnitve @@ -555,20 +566,20 @@ NextStep=Naslednji korak Datas=Podatki None=Nič NoneF=Nič -NoneOrSeveral=None or several +NoneOrSeveral=Noben ali več Late=Prekoračeno -LateDesc=An item is defined as Delayed as per the system configuration in menu Home - Setup - Alerts. -NoItemLate=No late item +LateDesc=Postavka je definirana kot Zakasnjena glede na sistemsko konfiguracijo v meniju Domov - Nastavitve - Opozorila. +NoItemLate=Brez poznega predmeta Photo=Slika Photos=Slike AddPhoto=Dodaj sliko DeletePicture=Izbriši sliko ConfirmDeletePicture=Potrdi izbris slike? Login=Uporabniško ime -LoginEmail=Login (email) -LoginOrEmail=Login or Email +LoginEmail=Prijava (e-pošta) +LoginOrEmail=Prijava ali e-pošta CurrentLogin=Trenutna prijava -EnterLoginDetail=Enter login details +EnterLoginDetail=Vnesite podatke za prijavo January=Januar February=Februar March=Marec @@ -615,10 +626,11 @@ MonthVeryShort07=J MonthVeryShort08=A MonthVeryShort09=N MonthVeryShort10=O -MonthVeryShort11=N +MonthVeryShort11=n MonthVeryShort12=D AttachedFiles=Pripete datoteke in dokumenti -JoinMainDoc=Join main document +JoinMainDoc=Pridružite se glavnemu dokumentu +JoinMainDocOrLastGenerated=Pošljite glavni dokument ali nazadnje ustvarjenega, če ga ne najdete DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -626,8 +638,8 @@ ReportName=Ime poročila ReportPeriod=Obdobje poročila ReportDescription=Opis Report=Poročilo -Keyword=Keyword -Origin=Origin +Keyword=Ključna beseda +Origin=Izvor Legend=Legenda Fill=Zapolni Reset=Ponastavi @@ -643,8 +655,8 @@ FindBug=Poročilo o hrošču NbOfThirdParties=Število partnerjev NbOfLines=Število vrstic NbOfObjects=Število predmetov -NbOfObjectReferers=Number of related items -Referers=Related items +NbOfObjectReferers=Število povezanih predmetov +Referers=Sorodni predmeti TotalQuantity=Skupna količina DateFromTo=Od %s do %s DateFrom=Od %s @@ -661,67 +673,68 @@ BuildDoc=Izdelaj Doc Entity=Entiteta Entities=Entitete CustomerPreview=Predogled kupca -SupplierPreview=Vendor preview +SupplierPreview=Predogled dobavitelja ShowCustomerPreview=Prikaži pregled kupca -ShowSupplierPreview=Show vendor preview +ShowSupplierPreview=Prikaži predogled dobavitelja RefCustomer=Ref. kupca -InternalRef=Internal ref. +InternalRef=Notranja ref. Currency=Valuta InfoAdmin=Informacija za administratorje Undo=Razveljavi Redo=Uveljavi ExpandAll=Razširi vse UndoExpandAll=Razveljavi razširitev -SeeAll=See all +SeeAll=Poglej vse Reason=Razlog FeatureNotYetSupported=Funkcija še ni podprta CloseWindow=Zaprite okno Response=Odgovor Priority=Prioriteta -SendByMail=Send by email +SendByMail=Poslano prek emaila MailSentBy=Email poslal NotSent=Ni poslan TextUsedInTheMessageBody=Vsebina Email-a -SendAcknowledgementByMail=Send confirmation email +SendAcknowledgementByMail=Pošlji potrditveno e-pošto SendMail=Pošlji e-pošto Email=E-pošta NoEMail=Ni email-a -AlreadyRead=Already read -NotRead=Unread +AlreadyRead=Že prebrano +NotRead=Neprebrano NoMobilePhone=Ni mobilnega telefona Owner=Lastnik FollowingConstantsWillBeSubstituted=Naslednje konstante bodo zamenjane z ustrezno vrednostjo. Refresh=Osveži BackToList=Nazaj na seznam -BackToTree=Back to tree +BackToTree=Nazaj na drevo GoBack=Pojdi nazaj CanBeModifiedIfOk=Lahko se spremeni, če je veljaven CanBeModifiedIfKo=Lahko se spremeni, če ni veljaven -ValueIsValid=DDV številka je veljavna -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully +ValueIsValid=Vrednost je veljavna +ValueIsNotValid=Vrednost ni veljavna +RecordCreatedSuccessfully=Zapis je bil uspešno ustvarjen RecordModifiedSuccessfully=Zapis uspešno spremenjen -RecordsModified=%s record(s) modified -RecordsDeleted=%s record(s) deleted -RecordsGenerated=%s record(s) generated +RecordsModified=%s zapis(i) spremenjen(i). +RecordsDeleted=%s zapis(i) izbrisani +RecordsGenerated=%s ustvarjenih zapisov AutomaticCode=Avtomatska koda FeatureDisabled=Funkcija onemogočena -MoveBox=Move widget +MoveBox=Premakni pripomoček Offered=Ponujen NotEnoughPermissions=Nimate dovoljenja za to aktivnost +UserNotInHierachy=To dejanje je rezervirano za nadzornike tega uporabnika SessionName=Ime seje Method=Metoda Receive=Prejeto -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -ExpectedQty=Expected Qty +CompleteOrNoMoreReceptionExpected=Popolno ali nič več pričakovano +ExpectedValue=Pričakovana vrednost +ExpectedQty=Pričakovana količina PartialWoman=Delni TotalWoman=Skupna NeverReceived=Nikoli prejeto Canceled=Preklicano -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup +YouCanChangeValuesForThisListFromDictionarySetup=Vrednosti za ta seznam lahko spremenite v meniju Nastavitve - Slovarji +YouCanChangeValuesForThisListFrom=Vrednosti za ta seznam lahko spremenite v meniju %s +YouCanSetDefaultValueInModuleSetup=V nastavitvah modula lahko nastavite privzeto vrednost, ki se uporablja pri ustvarjanju novega zapisa Color=Barva Documents=Povezane datoteke Documents2=Dokumenti @@ -731,57 +744,57 @@ MenuECM=Dokumenti MenuAWStats=AWStatistika MenuMembers=Člani MenuAgendaGoogle=Google dnevni red -MenuTaxesAndSpecialExpenses=Taxes | Special expenses +MenuTaxesAndSpecialExpenses=Davki | Posebni stroški ThisLimitIsDefinedInSetup=Dolibarr omejitve (Meni domov-nastavitve-varnost): %s Kb, PHP omejitev: %s Kb -ThisLimitIsDefinedInSetupAt=Dolibarr limit (Menu %s): %s Kb, PHP limit (Param %s): %s Kb -NoFileFound=No documents uploaded +ThisLimitIsDefinedInSetupAt=Omejitev Dolibarr (Meni %s): %s Kb, omejitev PHP (Param %s): %s Kb +NoFileFound=Ni naloženih dokumentov CurrentUserLanguage=Trenutni jezik CurrentTheme=Trenutna tema CurrentMenuManager=Trenutni upravljalnik menija Browser=Iskalnik -Layout=Layout -Screen=Screen +Layout=Postavitev +Screen=zaslon DisabledModules=Onemogočeni moduli For=Za ForCustomer=Za kupca Signature=Podpis -DateOfSignature=Date of signature +DateOfSignature=Datum podpisa HidePassword=Prikaži komande s skritim geslom UnHidePassword=Prikaži resnične komande z vidnim geslom Root=Koren -RootOfMedias=Root of public medias (/medias) +RootOfMedias=Koren javnih medijev (/medias) Informations=Informacija Page=Stran Notes=Opombe AddNewLine=Dodaj novo vrstico AddFile=Dodaj datoteko -FreeZone=Free-text product -FreeLineOfType=Free-text item, type: +FreeZone=Izdelek s prostim besedilom +FreeLineOfType=Element poljubnega besedila, tip: CloneMainAttributes=Kloniraj objekt z osnovnimi atributi -ReGeneratePDF=Re-generate PDF +ReGeneratePDF=Znova ustvari PDF PDFMerge=Spoji PDF Merge=Spoji -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Standardna predloga PDF PrintContentArea=Prikaži stran za izpis področja z osnovno vsebino MenuManager=Upravljalnik menija -WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode: only login %s is allowed to use the application in this mode. +WarningYouAreInMaintenanceMode=Opozorilo, ste v vzdrževalnem načinu: za uporabo aplikacije v tem načinu je dovoljena samo prijava %s . CoreErrorTitle=Sistemska napaka -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CoreErrorMessage=Žal je prišlo do napake. Za več informacij se obrnite na skrbnika sistema, da preveri dnevnike ali onemogočite $dolibarr_main_prod=1. CreditCard=Kreditna kartica ValidatePayment=Potrdi plačilo -CreditOrDebitCard=Credit or debit card +CreditOrDebitCard=Kreditna ali debetna kartica FieldsWithAreMandatory=Polja z %s so obvezna -FieldsWithIsForPublic=Fields with %s are shown in public list of members. If you don't want this, uncheck the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP conversion) +FieldsWithIsForPublic=Polja z %s so prikazana na javnem seznamu članov. Če tega ne želite, počistite polje »javno«. +AccordingToGeoIPDatabase=(glede na pretvorbo GeoIP) Line=Vrstica NotSupported=Ni podprto RequiredField=Zahtevano polje Result=Rezultat ToTest=Test -ValidateBefore=Item must be validated before using this feature +ValidateBefore=Pred uporabo te funkcije je treba izdelek potrditi Visibility=Vidnost -Totalizable=Totalizable -TotalizableDesc=This field is totalizable in list +Totalizable=Seštejemo +TotalizableDesc=To polje je mogoče sešteti na seznamu Private=Privatno Hidden=Skrito Resources=Viri @@ -796,25 +809,26 @@ NewAttribute=Nov atribut AttributeCode=Koda atributa URLPhoto=Url za fotografijo/logotip SetLinkToAnotherThirdParty=Povezava na drugega partnerja -LinkTo=Link to -LinkToProposal=Link to proposal +LinkTo=Povezava do +LinkToProposal=Povezava do predloga +LinkToExpedition= Povezava do ekspedicije LinkToOrder=Povezava do naročila -LinkToInvoice=Link to invoice -LinkToTemplateInvoice=Link to template invoice -LinkToSupplierOrder=Link to purchase order -LinkToSupplierProposal=Link to vendor proposal -LinkToSupplierInvoice=Link to vendor invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -LinkToTicket=Link to ticket -LinkToMo=Link to Mo +LinkToInvoice=Povezava do računa +LinkToTemplateInvoice=Povezava do predloge računa +LinkToSupplierOrder=Povezava do naročilnice +LinkToSupplierProposal=Povezava do ponudbe ponudnika +LinkToSupplierInvoice=Povezava do prejetih računov +LinkToContract=Povezava do pogodbe +LinkToIntervention=Povezava do intervencije +LinkToTicket=Povezava do vstopnice +LinkToMo=Povezava do Mo CreateDraft=Ustvarite osnutek SetToDraft=Nazaj na osnutek ClickToEdit=Kliknite za urejanje -ClickToRefresh=Click to refresh -EditWithEditor=Edit with CKEditor -EditWithTextEditor=Edit with Text editor -EditHTMLSource=Edit HTML Source +ClickToRefresh=Kliknite za osvežitev +EditWithEditor=Uredite s CKEditorjem +EditWithTextEditor=Urejanje z urejevalnikom besedila +EditHTMLSource=Uredi izvor HTML ObjectDeleted=Predmet %s črta ByCountry=Po državah ByTown=Z mesta @@ -826,130 +840,131 @@ ByDay=Po dnevih BySalesRepresentative=Z prodajni predstavnik LinkedToSpecificUsers=Povezano z določenim kontaktom uporabnika NoResults=Ni rezultata -AdminTools=Admin Tools +AdminTools=Skrbniška orodja SystemTools=Sistemska orodja ModulesSystemTools=Orodja za module Test=Test Element=Element NoPhotoYet=Slik še ni na voljo -Dashboard=Dashboard -MyDashboard=My Dashboard +Dashboard=Nadzorna plošča +MyDashboard=Nadzorna plošča Deductible=Odbiten from=od toward=proti Access=Dostop SelectAction=Izberi akcijo -SelectTargetUser=Select target user/employee +SelectTargetUser=Izberite ciljnega uporabnika/zaposlenega HelpCopyToClipboard=Uporabi Ctrl+C za kopiranje na odložišče SaveUploadedFileWithMask=Shrani datoteko na strežnik z imenom "%s" (otherwise "%s") OriginFileName=Originalno ime datoteke SetDemandReason=Nastavi vir SetBankAccount=Določi bančni račun -AccountCurrency=Account currency +AccountCurrency=Valuta računa ViewPrivateNote=Glej opombe XMoreLines=%s zasenčena(ih) vrstic -ShowMoreLines=Show more/less lines +ShowMoreLines=Prikaži več/manj vrstic PublicUrl=Javni URL AddBox=Dodaj okvir -SelectElementAndClick=Select an element and click on %s +SelectElementAndClick=Izberite element in kliknite %s PrintFile=Natisni datoteko %s -ShowTransaction=Show entry on bank account +ShowTransaction=Pokaži vnos na bančnem računu ShowIntervention=Prikaži intervencijo ShowContract=Prikaži pogodbo -GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide. +GoIntoSetupToChangeLogo=Pojdite na Domov - Nastavitve - Podjetje, da spremenite logotip, ali pojdite na Domov - Nastavitve - Zaslon, da ga skrijete. Deny=Zavrni Denied=Zavrnjen -ListOf=List of %s +ListOf=Seznam %s ListOfTemplates=Seznam predlog Gender=Spol -Genderman=Male -Genderwoman=Female +Genderman=moški +Genderwoman=ženska Genderother=Ostalo ViewList=Glej seznam -ViewGantt=Gantt view -ViewKanban=Kanban view +ViewGantt=Ganttov pogled +ViewKanban=Kanban pogled Mandatory=Obvezno Hello=Pozdravljeni -GoodBye=GoodBye +GoodBye=Adijo Sincerely=S spoštovanjem -ConfirmDeleteObject=Are you sure you want to delete this object? +ConfirmDeleteObject=Ali ste prepričani, da želite izbrisati ta predmet? DeleteLine=Izbriši vrstico -ConfirmDeleteLine=Are you sure you want to delete this line? -ErrorPDFTkOutputFileNotFound=Error: the file was not generated. Please check that the 'pdftk' command is installed in a directory included in the $PATH environment variable (linux/unix only) or contact your system administrator. -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -ConfirmMassDeletion=Bulk Delete confirmation -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record(s)? -RelatedObjects=Related Objects +ConfirmDeleteLine=Ali ste prepričani, da želite izbrisati to vrstico? +ErrorPDFTkOutputFileNotFound=Napaka: datoteka ni bila ustvarjena. Preverite, ali je ukaz 'pdftk' nameščen v imeniku, vključenem v spremenljivko okolja $PATH (samo za linux/unix), ali se obrnite na skrbnika sistema. +NoPDFAvailableForDocGenAmongChecked=Med preverjenimi zapisi ni bil na voljo noben PDF za ustvarjanje dokumenta +TooManyRecordForMassAction=Za množično akcijo je izbranih preveč zapisov. Dejanje je omejeno na seznam zapisov %s. +NoRecordSelected=Izbran ni noben zapis +MassFilesArea=Območje za datoteke, zgrajene z množičnimi akcijami +ShowTempMassFilesArea=Pokaži območje datotek, ustvarjenih z množičnimi dejanji +ConfirmMassDeletion=Potrditev množičnega brisanja +ConfirmMassDeletionQuestion=Ali ste prepričani, da želite izbrisati izbrane zapise %s? +RelatedObjects=Sorodni predmeti ClassifyBilled=Klasificiraj kot fakturirano -ClassifyUnbilled=Classify unbilled +ClassifyUnbilled=Razvrsti neobračunano Progress=Napredek ProgressShort=Progr. -FrontOffice=Front office +FrontOffice=Prednja pisarna BackOffice=Administracija -Submit=Submit -View=View +Submit=Predloži +View=Pogled Export=Izvoz Exports=Izvoz -ExportFilteredList=Export filtered list -ExportList=Export list +ExportFilteredList=Izvoz filtriranega seznama +ExportList=Izvozni seznam ExportOptions=Izvozne opcije -IncludeDocsAlreadyExported=Include docs already exported -ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable -ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable -AllExportedMovementsWereRecordedAsExported=All exported movements were recorded as exported -NotAllExportedMovementsCouldBeRecordedAsExported=Not all exported movements could be recorded as exported +IncludeDocsAlreadyExported=Vključi že izvožene dokumente +ExportOfPiecesAlreadyExportedIsEnable=Omogočen je izvoz že izvoženih kosov +ExportOfPiecesAlreadyExportedIsDisable=Izvoz že izvoženih kosov je onemogočen +AllExportedMovementsWereRecordedAsExported=Vsi izvoženi premiki so bili zabeleženi kot izvoženi +NotAllExportedMovementsCouldBeRecordedAsExported=Vseh izvoženih gibanj ni bilo mogoče zabeležiti kot izvožene Miscellaneous=Razno Calendar=Koledar -GroupBy=Group by... -ViewFlatList=View flat list -ViewAccountList=View ledger -ViewSubAccountList=View subaccount ledger -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at https://transifex.com/projects/p/dolibarr/ to add your improvements. -DirectDownloadLink=Public download link -PublicDownloadLinkDesc=Only the link is required to download the file -DirectDownloadInternalLink=Private download link -PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file -Download=Download -DownloadDocument=Download document -ActualizeCurrency=Update currency rate +GroupBy=Združi po ... +ViewFlatList=Ogled ploščatega seznama +ViewAccountList=Ogled glavne knjige +ViewSubAccountList=Oglejte si knjigo podračunov +RemoveString=Odstrani niz '%s' +SomeTranslationAreUncomplete=Nekateri ponujeni jeziki so morda le delno prevedeni ali pa vsebujejo napake. Pomagajte popraviti svoj jezik tako, da se registrirate na https://transifex.com/projects/p/dolibarr/ in dodate svoje izboljšave. +DirectDownloadLink=Javna povezava za prenos +PublicDownloadLinkDesc=Za prenos datoteke je potrebna le povezava +DirectDownloadInternalLink=Zasebna povezava za prenos +PrivateDownloadLinkDesc=Za ogled ali prenos datoteke morate biti prijavljeni in potrebujete dovoljenja +Download=Prenesi +DownloadDocument=Prenesi dokument +DownloadSignedDocument=Prenesite podpisani dokument +ActualizeCurrency=Posodobi tečaj valute Fiscalyear=Fiskalno leto -ModuleBuilder=Module and Application Builder -SetMultiCurrencyCode=Set currency -BulkActions=Bulk actions -ClickToShowHelp=Click to show tooltip help -WebSite=Website -WebSites=Websites -WebSiteAccounts=Website accounts -ExpenseReport=Expense report +ModuleBuilder=Graditelj modulov in aplikacij +SetMultiCurrencyCode=Nastavite valuto +BulkActions=Množična dejanja +ClickToShowHelp=Kliknite za prikaz pomoči za orodne namige +WebSite=Spletna stran +WebSites=Spletne strani +WebSiteAccounts=Računi spletnih mest +ExpenseReport=Poročilo o izdatkih ExpenseReports=Stroškovna poročila HR=HR -HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status? -ImportId=Import id +HRAndBank=HR in banka +AutomaticallyCalculated=Samodejno izračunano +TitleSetToDraft=Nazaj na osnutek +ConfirmSetToDraft=Ali ste prepričani, da se želite vrniti na stanje osnutka? +ImportId=ID uvoza Events=Dogodki -EMailTemplates=Email templates -FileNotShared=File not shared to external public +EMailTemplates=E-poštne predloge +FileNotShared=Datoteka ni v skupni rabi zunanji javnosti Project=Projekt Projects=Projekti -LeadOrProject=Lead | Project -LeadsOrProjects=Leads | Projects -Lead=Lead -Leads=Leads -ListOpenLeads=List open leads -ListOpenProjects=List open projects -NewLeadOrProject=New lead or project +LeadOrProject=Svinec | Projekt +LeadsOrProjects=Vodi | Projekti +Lead=Svinec +Leads=vodi +ListOpenLeads=Seznam odprtih potencialnih strank +ListOpenProjects=Seznam odprtih projektov +NewLeadOrProject=Nova potencialna stranka ali projekt Rights=Dovoljenja -LineNb=Line no. +LineNb=Linija št. IncotermLabel=Mednarodni Poslovni Izrazi -TabLetteringCustomer=Customer lettering -TabLetteringSupplier=Vendor lettering +TabLetteringCustomer=Napis strank +TabLetteringSupplier=Napis prodajalca Monday=Ponedeljek Tuesday=Torek Wednesday=Sreda @@ -978,47 +993,47 @@ ShortThursday=Č ShortFriday=P ShortSaturday=S ShortSunday=N -one=one -two=two -three=three -four=four -five=five -six=six -seven=seven -eight=eight -nine=nine -ten=ten -eleven=eleven -twelve=twelve +one=eno +two=dva +three=tri +four=štiri +five=pet +six=šest +seven=sedem +eight=osem +nine=devet +ten=deset +eleven=enajst +twelve=dvanajst thirteen=thirdteen -fourteen=fourteen -fifteen=fifteen -sixteen=sixteen -seventeen=seventeen -eighteen=eighteen -nineteen=nineteen -twenty=twenty -thirty=thirty -forty=forty -fifty=fifty -sixty=sixty -seventy=seventy -eighty=eighty -ninety=ninety -hundred=hundred -thousand=thousand -million=million -billion=billion -trillion=trillion -quadrillion=quadrillion -SelectMailModel=Select an email template +fourteen=štirinajst +fifteen=petnajst +sixteen=šestnajst +seventeen=sedemnajst +eighteen=osemnajst +nineteen=devetnajst +twenty=dvajset +thirty=trideset +forty=štirideset +fifty=petdeset +sixty=šestdeset +seventy=sedemdeset +eighty=osemdeset +ninety=devetdeset +hundred=sto +thousand=tisoč +million=milijonov +billion=milijarde +trillion=bilijon +quadrillion=kvadrilijon +SelectMailModel=Izberite e-poštno predlogo SetRef=Nastavi referenco -Select2ResultFoundUseArrows=Some results found. Use arrows to select. +Select2ResultFoundUseArrows=Najdenih nekaj rezultatov. Za izbiro uporabite puščice. Select2NotFound=Ni najdenega rezultata Select2Enter=Potrdi -Select2MoreCharacter=or more character +Select2MoreCharacter=ali več značaja Select2MoreCharacters=ali več znakov -Select2MoreCharactersMore=Search syntax:
    | OR (a|b)
    * Any character (a*b)
    ^ Start with (^ab)
    $ End with (ab$)
    +Select2MoreCharactersMore= Sintaksa iskanja:
    | OR (a|b)
    * Any character (a*b)
    ^ Start with (^ab)
    $ End with ( ab$)
    Select2LoadingMoreResults=Naloži več rezultatov... Select2SearchInProgress=Iskanje v teku... SearchIntoThirdparties=Partnerji @@ -1026,141 +1041,172 @@ SearchIntoContacts=Kontakti SearchIntoMembers=Člani SearchIntoUsers=Uporabniki SearchIntoProductsOrServices=Proizvodi ali storitve -SearchIntoBatch=Lots / Serials +SearchIntoBatch=Loti / Serijske publikacije SearchIntoProjects=Projekti -SearchIntoMO=Manufacturing Orders +SearchIntoMO=Naročila za proizvodnjo SearchIntoTasks=Naloge SearchIntoCustomerInvoices=Računi za kupca -SearchIntoSupplierInvoices=Fakture dobaviteljev -SearchIntoCustomerOrders=Sales orders +SearchIntoSupplierInvoices=Prejeti računi +SearchIntoCustomerOrders=Prodajna naročila SearchIntoSupplierOrders=Nabavni nalogi SearchIntoCustomerProposals=Komercialne ponudbe -SearchIntoSupplierProposals=Vendor proposals +SearchIntoSupplierProposals=Ponudbe dobaviteljev SearchIntoInterventions=Intervencije SearchIntoContracts=Pogodbe -SearchIntoCustomerShipments=Customer shipments +SearchIntoCustomerShipments=Pošiljke strank SearchIntoExpenseReports=Stroškovna poročila -SearchIntoLeaves=Leave -SearchIntoTickets=Tickets -SearchIntoCustomerPayments=Customer payments +SearchIntoLeaves=Pusti +SearchIntoKM=Baza znanja +SearchIntoTickets=Vstopnice +SearchIntoCustomerPayments=Plačila strank SearchIntoVendorPayments=Plačila dobaviteljem -SearchIntoMiscPayments=Miscellaneous payments +SearchIntoMiscPayments=Razna plačila CommentLink=Komentarji -NbComments=Number of comments -CommentPage=Comments space -CommentAdded=Comment added -CommentDeleted=Comment deleted +NbComments=Število komentarjev +CommentPage=Prostor za komentarje +CommentAdded=Komentar dodan +CommentDeleted=Komentar izbrisan Everybody=Projekti v skupni rabi -PayedBy=Paid by -PayedTo=Paid to -Monthly=Monthly -Quarterly=Quarterly -Annual=Annual -Local=Local -Remote=Remote -LocalAndRemote=Local and Remote -KeyboardShortcut=Keyboard shortcut +PayedBy=Plačano s strani +PayedTo=Plačano +Monthly=Mesečno +Quarterly=Četrtletnik +Annual=Letna +Local=Lokalno +Remote=Daljinsko +LocalAndRemote=Lokalno in oddaljeno +KeyboardShortcut=Bližnjica na tipkovnici AssignedTo=Se nanaša na -Deletedraft=Delete draft -ConfirmMassDraftDeletion=Draft mass delete confirmation -FileSharedViaALink=File shared with a public link -SelectAThirdPartyFirst=Select a third party first... -YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode -Inventory=Inventory -AnalyticCode=Analytic code +Deletedraft=Izbriši osnutek +ConfirmMassDraftDeletion=Potrditev množičnega izbrisa osnutka +FileSharedViaALink=Datoteka v skupni rabi z javno povezavo +SelectAThirdPartyFirst=Najprej izberite partnerja ... +YouAreCurrentlyInSandboxMode=Trenutno ste v %s načinu "peskovnika". +Inventory=Inventar +AnalyticCode=Analitična koda TMenuMRP=MRP -ShowCompanyInfos=Show company infos -ShowMoreInfos=Show More Infos -NoFilesUploadedYet=Please upload a document first -SeePrivateNote=See private note -PaymentInformation=Payment information -ValidFrom=Valid from -ValidUntil=Valid until -NoRecordedUsers=No users -ToClose=To close -ToRefuse=To refuse +ShowCompanyInfos=Pokaži podatke o podjetju +ShowMoreInfos=Prikaži več informacij +NoFilesUploadedYet=Najprej naložite dokument +SeePrivateNote=Glej zasebno opombo +PaymentInformation=Informacije o plačilu +ValidFrom=Velja od +ValidUntil=Veljavno do +NoRecordedUsers=Ni uporabnikov +ToClose=Zapreti +ToRefuse=Zavrniti ToProcess=Za obdelavo -ToApprove=To approve -GlobalOpenedElemView=Global view -NoArticlesFoundForTheKeyword=No article found for the keyword '%s' -NoArticlesFoundForTheCategory=No article found for the category -ToAcceptRefuse=To accept | refuse +ToApprove=Odobriti +GlobalOpenedElemView=Globalni pogled +NoArticlesFoundForTheKeyword=Za ključno besedo ' %s ' ni bilo mogoče najti nobenega članka. +NoArticlesFoundForTheCategory=Za to kategorijo ni bil najden članek +ToAcceptRefuse=Sprejeti | zavrniti ContactDefault_agenda=Aktivnost ContactDefault_commande=Naročilo ContactDefault_contrat=Pogodba ContactDefault_facture=Račun ContactDefault_fichinter=Intervencija -ContactDefault_invoice_supplier=Supplier Invoice -ContactDefault_order_supplier=Purchase Order +ContactDefault_invoice_supplier=Račun dobavitelja +ContactDefault_order_supplier=Naročilnica ContactDefault_project=Projekt ContactDefault_project_task=Naloga ContactDefault_propal=Ponudba -ContactDefault_supplier_proposal=Supplier Proposal -ContactDefault_ticket=Ticket -ContactAddedAutomatically=Contact added from contact thirdparty roles -More=More -ShowDetails=Show details -CustomReports=Custom reports -StatisticsOn=Statistics on -SelectYourGraphOptionsFirst=Select your graph options to build a graph -Measures=Measures -XAxis=X-Axis -YAxis=Y-Axis -StatusOfRefMustBe=Status of %s must be %s -DeleteFileHeader=Confirm file delete -DeleteFileText=Do you really want delete this file? -ShowOtherLanguages=Show other languages -SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language -NotUsedForThisCustomer=Not used for this customer -AmountMustBePositive=Amount must be positive -ByStatus=By status +ContactDefault_supplier_proposal=Ponudba dobavitelja +ContactDefault_ticket=Vstopnica +ContactAddedAutomatically=Stik je dodan iz kontaktnih vlog partnerjev +More=več +ShowDetails=Pokaži podrobnosti +CustomReports=Poročila po meri +StatisticsOn=Statistika naprej +SelectYourGraphOptionsFirst=Izberite možnosti grafa, da sestavite graf +Measures=Ukrepi +XAxis=X-os +YAxis=Y-os +StatusOfRefMustBe=Status %s mora biti %s +DeleteFileHeader=Potrdite brisanje datoteke +DeleteFileText=Ali res želite izbrisati to datoteko? +ShowOtherLanguages=Pokaži druge jezike +SwitchInEditModeToAddTranslation=Preklopite v način urejanja, da dodate prevode za ta jezik +NotUsedForThisCustomer=Ni uporabljeno za to stranko +AmountMustBePositive=Znesek mora biti pozitiven +ByStatus=Po statusu InformationMessage=Informacija -Used=Used -ASAP=As Soon As Possible -CREATEInDolibarr=Record %s created -MODIFYInDolibarr=Record %s modified -DELETEInDolibarr=Record %s deleted -VALIDATEInDolibarr=Record %s validated -APPROVEDInDolibarr=Record %s approved -DefaultMailModel=Default Mail Model -PublicVendorName=Public name of vendor +Used=Rabljeno +ASAP=Čimprej +CREATEInDolibarr=Zapis %s ustvarjen +MODIFYInDolibarr=Zapis %s spremenjen +DELETEInDolibarr=Zapis %s izbrisan +VALIDATEInDolibarr=Zapis %s potrjen +APPROVEDInDolibarr=Zapis %s odobren +DefaultMailModel=Privzeti poštni model +PublicVendorName=Javno naziv DateOfBirth=Datum rojstva -SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Security token has expired, so action has been canceled. Please try again. -UpToDate=Up-to-date -OutOfDate=Out-of-date -EventReminder=Event Reminder -UpdateForAllLines=Update for all lines +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Varnostni žeton je potekel, zato je bilo dejanje preklicano. Prosim poskusite ponovno. +UpToDate=Posodobljeno +OutOfDate=Zastarano +EventReminder=Opomnik dogodka +UpdateForAllLines=Posodobitev za vse linije OnHold=Ustavljeno -Civility=Civility -AffectTag=Affect Tag -CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? -CategTypeNotFound=No tag type found for type of records -CopiedToClipboard=Copied to clipboard -InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. -ConfirmCancel=Are you sure you want to cancel +Civility=Vljudnost +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Nastavi nadzornika +CreateExternalUser=Ustvari zunanjega uporabnika +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Paketna nastavitev nadzornika +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Ali ste prepričani, da želite nastaviti nadzornika za izbrane zapise %s? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? +CategTypeNotFound=Za vrsto zapisov ni bilo mogoče najti nobene vrste oznake +Rate=Stopnja +SupervisorNotFound=Nadzornik ne obstaja +CopiedToClipboard=Kopirano v odložišče +InformationOnLinkToContract=Ta znesek je samo skupek vseh vrstic pogodbe. Noben pojem časa se ne upošteva. +ConfirmCancel=Ali ste prepričani, da želite preklicati? EmailMsgID=Email MsgID -SetToEnabled=Set to enabled -SetToDisabled=Set to disabled -ConfirmMassEnabling=mass enabling confirmation -ConfirmMassEnablingQuestion=Are you sure you want to enable the %s selected record(s)? -ConfirmMassDisabling=mass disabling confirmation -ConfirmMassDisablingQuestion=Are you sure you want to disable the %s selected record(s)? -RecordsEnabled=%s record(s) enabled -RecordsDisabled=%s record(s) disabled -RecordEnabled=Record enabled -RecordDisabled=Record disabled -Forthcoming=Forthcoming -Currently=Currently -ConfirmMassLeaveApprovalQuestion=Are you sure you want to approve the %s selected record(s)? -ConfirmMassLeaveApproval=Mass leave approval confirmation -RecordAproved=Record approved -RecordsApproved=%s Record(s) approved -Properties=Properties -hasBeenValidated=%s has been validated +EmailDate=Datum elektronske pošte +SetToStatus=Set to status %s +SetToEnabled=Nastavite na omogočeno +SetToDisabled=Nastavite na onemogočeno +ConfirmMassEnabling=množično omogočanje potrditve +ConfirmMassEnablingQuestion=Ali ste prepričani, da želite omogočiti izbrane zapise %s? +ConfirmMassDisabling=potrditev množične onemogočitve +ConfirmMassDisablingQuestion=Ali ste prepričani, da želite onemogočiti %s izbrane zapise? +RecordsEnabled=%s zapisi so omogočeni +RecordsDisabled=%s zapisi so onemogočeni +RecordEnabled=Snemanje omogočeno +RecordDisabled=Zapis onemogočen +Forthcoming=Prihajajoče +Currently=Trenutno +ConfirmMassLeaveApprovalQuestion=Ali ste prepričani, da želite odobriti %s izbrane zapise? +ConfirmMassLeaveApproval=Potrditev odobritve množičnega dopusta +RecordAproved=Zapis odobren +RecordsApproved=%s Odobreni zapis(i). +Properties=Lastnosti +hasBeenValidated=%s je bil preverjen ClientTZ=Časovni pas klienta (uporabnika) -NotClosedYet=Not yet closed -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +NotClosedYet=Še ni zaprto +ClearSignature=Ponastavi podpis +CanceledHidden=Preklicano skrito +CanceledShown=Prikazano preklicano +Terminate=Prekiniti +Terminated=Prekinjeno +AddLineOnPosition=Dodaj vrstico na položaj (na koncu, če je prazen) +ConfirmAllocateCommercial=Dodelitev potrditve prodajnega predstavnika +ConfirmAllocateCommercialQuestion=Ali ste prepričani, da želite dodeliti izbrane zapise %s? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Tvoje sporočilo +YourMessageHasBeenReceived=Vaše sporočilo je bilo prejeto. Odgovorili vam bomo ali vas kontaktirali v najkrajšem možnem času. +UrlToCheck=Url za preverjanje +Automation=Avtomatizacija +CreatedByEmailCollector=Ustvaril zbiralec e-pošte +CreatedByPublicPortal=Ustvarjeno iz javnega portala +UserAgent=Uporabniški agent +InternalUser=Interni uporabnik +ExternalUser=Zunanji uporabnik diff --git a/htdocs/langs/sl_SI/margins.lang b/htdocs/langs/sl_SI/margins.lang index 8f47170233d..082632ae4a8 100644 --- a/htdocs/langs/sl_SI/margins.lang +++ b/htdocs/langs/sl_SI/margins.lang @@ -16,30 +16,30 @@ MarginDetails=Podatki o marži ProductMargins=Marže proizvoda CustomerMargins=Marže kupcev SalesRepresentativeMargins=Marža prodajnega predstavnika -ContactOfInvoice=Contact of invoice +ContactOfInvoice=Kontakt računa UserMargins=Marže uporabnikov ProductService=Proizvod ali storitev AllProducts=Vsi proizvodi in storitve ChooseProduct/Service=Izberi proizvod ali storitev -ForceBuyingPriceIfNull=Force buying/cost price to selling price if not defined -ForceBuyingPriceIfNullDetails=If buying/cost price not provided when we add a new line, and this option is "ON", the margin will be 0%% on the new line (buying/cost price = selling price). If this option is "OFF" (recommended), margin will be equal to the value suggested by default (and may be 100%% if no default value can be found). +ForceBuyingPriceIfNull=Vsili nakupno/stroškovno ceno na prodajno ceno, če ni definirana +ForceBuyingPriceIfNullDetails=Če nakupna/stroškovna cena ni podana, ko dodamo novo vrstico, in je ta možnost "ON", bo marža v novi vrstici 0%% (nakupna/stroščna cena = prodajna cena). Če je ta možnost »IZKLOPLJENA« (priporočeno), bo marža enaka privzeto predlagani vrednosti (in je lahko 100%%, če privzete vrednosti ni mogoče najti). MARGIN_METHODE_FOR_DISCOUNT=Metoda marž pri globalnih popustih UseDiscountAsProduct=Kot proizvod UseDiscountAsService=Kot storitev UseDiscountOnTotal=V delni vsoti MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Določa, če se globalni popust smatra kot proizvod, storitev, ali samo delna vsota pri izračunu marže. MARGIN_TYPE=Privzeto predlagana nabavna cena s stroški za izračun marže -MargeType1=Margin on Best vendor price +MargeType1=Marža na najugodnejšo ceno MargeType2=Marža na uravnoteženo povprečno ceno (WAP) -MargeType3=Margin on Cost Price -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
    * Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best vendor price if WAP not yet defined
    * Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best vendor price if WAP not yet defined +MargeType3=Marža na lastno ceno +MarginTypeDesc=* Marža na najboljšo nakupno ceno = Prodajna cena – Cena najboljšega prodajalca, določena na kartici izdelka
    * Marža na tehtano povprečno ceno (WAP) = Prodajna cena – Tehtana povprečna cena izdelka (WAP) ali cena najboljšega prodajalca, če WAP še ni določen
    * Marža na Stroškovna cena = Prodajna cena - Stroška cena, določena na kartici izdelka ali WAP, če lastna cena ni določena, ali najboljša cena prodajalca, če WAP še ni določen CostPrice=Stroškovna cena UnitCharges=Stroški po enoti Charges=Stroški AgentContactType=Tip kontakta komercialnega agenta -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per contact/address. Note that reading statistics on a contact is not reliable since in most cases the contact may not be defined explicitely on the invoices. +AgentContactTypeDetails=Določite, kateri tip kontakta (povezan na računih) bo uporabljen za poročilo o maržah na kontakt/naslov. Upoštevajte, da branje statističnih podatkov o stiku ni zanesljivo, saj v večini primerov stik morda ni izrecno opredeljen na računih. rateMustBeNumeric=Stopnja mora biti numerična vrednost markRateShouldBeLesserThan100=Označena vrednost mora biti manjša od 100 ShowMarginInfos=Prikaži informacije o marži -CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any dedicated sale representative and some third parties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). +CheckMargins=Podrobnosti o robovih +MarginPerSaleRepresentativeWarning=Poročilo o marži na uporabnika uporablja povezavo med tretjimi osebami in prodajnimi zastopniki za izračun marže vsakega prodajnega zastopnika. Ker nekatere tretje osebe morda nimajo nobenega namenskega prodajnega zastopnika in so nekatere tretje osebe morda povezane z več, nekateri zneski morda ne bodo vključeni v to poročilo (če ni prodajnega zastopnika), nekateri pa se lahko pojavijo v različnih vrsticah (za vsakega prodajnega zastopnika) . diff --git a/htdocs/langs/sl_SI/members.lang b/htdocs/langs/sl_SI/members.lang index 385d920ff49..eea2c387d6c 100644 --- a/htdocs/langs/sl_SI/members.lang +++ b/htdocs/langs/sl_SI/members.lang @@ -6,8 +6,8 @@ Member=Član Members=Člani ShowMember=Prikaži člansko kartico UserNotLinkedToMember=Uporabnik ni povezan s članstvom -ThirdpartyNotLinkedToMember=Third party not linked to a member -MembersTickets=Membership address sheet +ThirdpartyNotLinkedToMember=Partner ni povezan s članom +MembersTickets=List z naslovom članstva FundationMembers=Člani fundacije ListOfValidatedPublicMembers=Seznam potrjenih javnih članov ErrorThisMemberIsNotPublic=Ta član ni javen @@ -15,27 +15,30 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Drug član (ime: %s, uporabni ErrorUserPermissionAllowsToLinksToItselfOnly=Zaradi varnostnih razlogov, morate imeti dovoljenje za urejanje vseh uporabnikov, če želite povezati člana z uporabnikom, ki ni vaš. SetLinkToUser=Povezava z Dolibarr uporabnikom SetLinkToThirdParty=Povezava z Dolibarr partnerjem -MembersCards=Generation of cards for members +MemberCountersArePublic=Števci veljavnih članov so javni +MembersCards=Izdelava izkaznic za člane MembersList=Seznam članov MembersListToValid=Seznam predlaganih članov (potrebna potrditev) MembersListValid=Seznam potrjenih članov -MembersListUpToDate=List of valid members with up-to-date contribution -MembersListNotUpToDate=List of valid members with out-of-date contribution -MembersListExcluded=List of excluded members -MembersListResiliated=List of terminated members +MembersListUpToDate=Seznam veljavnih članov s posodobljenim prispevkom +MembersListNotUpToDate=Seznam veljavnih članov z zastarelim prispevkom +MembersListExcluded=Seznam izključenih članov +MembersListResiliated=Seznam izključenih članov MembersListQualified=Seznam kvalificiranih članov MenuMembersToValidate=Predlagani člani MenuMembersValidated=Potrjeni člani -MenuMembersExcluded=Excluded members -MenuMembersResiliated=Terminated members -MembersWithSubscriptionToReceive=Members with contribution to receive -MembersWithSubscriptionToReceiveShort=Contributions to receive -DateSubscription=Date of membership -DateEndSubscription=End date of membership -EndSubscription=End of membership -SubscriptionId=Contribution ID -WithoutSubscription=Without contribution +MenuMembersExcluded=Izključeni člani +MenuMembersResiliated=Izključeni člani +MembersWithSubscriptionToReceive=Člani s prispevkom za prejemanje +MembersWithSubscriptionToReceiveShort=Prispevki za prejemanje +DateSubscription=Datum včlanitve +DateEndSubscription=Končni datum članstva +EndSubscription=Konec članstva +SubscriptionId=ID prispevka +WithoutSubscription=Without membership +WaitingSubscription=Membership pending MemberId=ID člana +MemberRef=Član Ref NewMember=Nov član MemberType=Tip člana MemberTypeId=ID tipa člana @@ -43,110 +46,116 @@ MemberTypeLabel=Naziv tipa člana MembersTypes=Tipi članov MemberStatusDraft=Osnutek (potrebno potrditi) MemberStatusDraftShort=Osnutek -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=Potrjeno (čakajoč prispevek) MemberStatusActiveShort=Potrjen -MemberStatusActiveLate=Contribution expired +MemberStatusActiveLate=Prispevek je potekel MemberStatusActiveLateShort=Pretečen MemberStatusPaid=Posodobljene članarine MemberStatusPaidShort=Posodobljene -MemberStatusExcluded=Excluded member -MemberStatusExcludedShort=Excluded -MemberStatusResiliated=Terminated member -MemberStatusResiliatedShort=Terminated +MemberStatusExcluded=Izključen član +MemberStatusExcludedShort=Izključeno +MemberStatusResiliated=Izključen član +MemberStatusResiliatedShort=Prekinjeno MembersStatusToValid=Predlagani člani -MembersStatusExcluded=Excluded members -MembersStatusResiliated=Terminated members -MemberStatusNoSubscription=Validated (no contribution required) +MembersStatusExcluded=Izključeni člani +MembersStatusResiliated=Izključeni člani +MemberStatusNoSubscription=Potrjeno (prispevek ni potreben) MemberStatusNoSubscriptionShort=Potrjen -SubscriptionNotNeeded=No contribution required +SubscriptionNotNeeded=Prispevek ni potreben NewCotisation=Nov prispevek PaymentSubscription=Plačilo novega prispevka SubscriptionEndDate=Končni datum članstva MembersTypeSetup=Nastavitev tipa članov -MemberTypeModified=Member type modified -DeleteAMemberType=Delete a member type -ConfirmDeleteMemberType=Are you sure you want to delete this member type? -MemberTypeDeleted=Member type deleted -MemberTypeCanNotBeDeleted=Member type can not be deleted +MemberTypeModified=Vrsta člana spremenjena +DeleteAMemberType=Izbrišite vrsto člana +ConfirmDeleteMemberType=Ali ste prepričani, da želite izbrisati to vrsto člana? +MemberTypeDeleted=Vrsta člana izbrisana +MemberTypeCanNotBeDeleted=Vrste člana ni mogoče izbrisati NewSubscription=Nov prispevek NewSubscriptionDesc=Ta obrazec omogoča zabeležko vaše članarine kot novega člana zdručenja. Če želite obnoviti članarino (če ste že član), prosimo raje kontaktirajte vodstvo združenja po emailu %s. -Subscription=Contribution -Subscriptions=Contributions +Subscription=Prispevek +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Kakršen koli znesek +CanEditAmountShortForValues=priporočljiva, poljubna količina +MembershipDuration=Trajanje +GetMembershipButtonLabel=Join +Subscriptions=Prispevki SubscriptionLate=Zamujen -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions -SendCardByMail=Send card by email +SubscriptionNotReceived=Prispevek ni bil nikoli prejet +ListOfSubscriptions=Seznam prispevkov +SendCardByMail=Pošljite kartico po e-pošti AddMember=Ustvari člana NoTypeDefinedGoToSetup=Tipi članov niso določeni. Pojdite v Nastavitve – ipi članov NewMemberType=Nov tip člana -WelcomeEMail=Welcome email -SubscriptionRequired=Contribution required +WelcomeEMail=Pozdravno e-poštno sporočilo +SubscriptionRequired=Potreben je prispevek DeleteType=Izbriši VoteAllowed=Dovoljeno glasovanje -Physical=Individual +Physical=Posameznik Moral=Corporation -MorAndPhy=Corporation and Individual -Reenable=Re-Enable -ExcludeMember=Exclude a member -Exclude=Exclude -ConfirmExcludeMember=Are you sure you want to exclude this member ? -ResiliateMember=Terminate a member -ConfirmResiliateMember=Are you sure you want to terminate this member? +MorAndPhy=Korporacija in posameznik +Reenable=Ponovno omogoči +ExcludeMember=Izključi člana +Exclude=Izključi +ConfirmExcludeMember=Ali ste prepričani, da želite izključiti tega člana? +ResiliateMember=Prekinite člana +ConfirmResiliateMember=Ali ste prepričani, da želite prekiniti tega člana? DeleteMember=Izbriši člana -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +ConfirmDeleteMember=Ali ste prepričani, da želite izbrisati tega člana (Če izbrišete člana, boste izbrisali vse njegove prispevke)? DeleteSubscription=Izbriši naročnino -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteSubscription=Ali ste prepričani, da želite izbrisati ta prispevek? Filehtpasswd=Datoteka htpasswd ValidateMember=Potrdi člana -ConfirmValidateMember=Are you sure you want to validate this member? -FollowingLinksArePublic=The following links are open pages not protected by any Dolibarr permission. They are not formatted pages, provided as example to show how to list members database. +ConfirmValidateMember=Ali ste prepričani, da želite potrditi tega člana? +FollowingLinksArePublic=Naslednje povezave so odprte strani, ki niso zaščitene z nobenim dovoljenjem Dolibarr. Niso oblikovane strani, podane so kot primer, ki prikazuje, kako navesti bazo podatkov članov. PublicMemberList=Javni seznam članov -BlankSubscriptionForm=Public self-registration form -BlankSubscriptionFormDesc=Dolibarr can provide you a public URL/website to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form may also be automatically provided. -EnablePublicSubscriptionForm=Enable the public website with self-subscription form -ForceMemberType=Force the member type -ExportDataset_member_1=Members and contributions +BlankSubscriptionForm=Javni obrazec za samoprijavo +BlankSubscriptionFormDesc=Dolibarr vam lahko zagotovi javni URL/spletno mesto, ki zunanjim obiskovalcem omogoča, da zahtevajo naročnino na fundacijo. Če je omogočen spletni plačilni modul, se lahko samodejno zagotovi tudi plačilni obrazec. +EnablePublicSubscriptionForm=Omogočite javno spletno stran s samoprijavnico +ForceMemberType=Vsili vrsto člana +ExportDataset_member_1=Člani in prispevki ImportDataset_member_1=Člani -LastMembersModified=Latest %s modified members -LastSubscriptionsModified=Latest %s modified contributions +LastMembersModified=Najnovejši %s spremenjeni člani +LastSubscriptionsModified=Najnovejši %s spremenjeni prispevki String=Niz Text=Tekst Int=Int DateAndTime=Datum in ura PublicMemberCard=Javna kartica člana -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +SubscriptionNotRecorded=Prispevek ni zabeležen +AddSubscription=Ustvari prispevek +ShowSubscription=Prikaži prispevek # Label of email templates -SendingAnEMailToMember=Sending information email to member -SendingEmailOnAutoSubscription=Sending email on auto registration -SendingEmailOnMemberValidation=Sending email on new member validation -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions -SendingEmailOnCancelation=Sending email on cancelation -SendingReminderActionComm=Sending reminder for agenda event +SendingAnEMailToMember=Pošiljanje e-pošte z informacijami članu +SendingEmailOnAutoSubscription=Pošiljanje e-pošte ob samodejni registraciji +SendingEmailOnMemberValidation=Pošiljanje e-pošte ob potrditvi novega člana +SendingEmailOnNewSubscription=Pošiljanje e-pošte o novem prispevku +SendingReminderForExpiredSubscription=Pošiljanje opomnikov za potekle prispevke +SendingEmailOnCancelation=Pošiljanje e-pošte ob preklicu +SendingReminderActionComm=Pošiljanje opomnika za dnevni red dogodka # Topic of email templates -YourMembershipRequestWasReceived=Your membership was received. -YourMembershipWasValidated=Your membership was validated -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder -YourMembershipWasCanceled=Your membership was canceled +YourMembershipRequestWasReceived=Vaše članstvo je bilo prejeto. +YourMembershipWasValidated=Vaše članstvo je bilo potrjeno +YourSubscriptionWasRecorded=Vaš novi prispevek je bil zabeležen +SubscriptionReminderEmail=opomnik za prispevke +YourMembershipWasCanceled=Vaše članstvo je bilo preklicano CardContent=Vsebina vaše članske kartice # Text of email templates -ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    -ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    -ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    -ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    -DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest -DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Content of the notification email received in case of auto-inscription of a guest -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Email template to use to send email to a member on member validation -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Email template to use to send email to a member on new contribution recording -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Email template to use to send email reminder when contribution is about to expire -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Email template to use to send email to a member on member cancelation -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Email template to use to send email to a member on member exclusion -DescADHERENT_MAIL_FROM=Sender Email for automatic emails +ThisIsContentOfYourMembershipRequestWasReceived=Želimo vas obvestiti, da smo prejeli vašo prošnjo za članstvo.

    +ThisIsContentOfYourMembershipWasValidated=Želimo vas obvestiti, da je bilo vaše članstvo potrjeno z naslednjimi informacijami:

    +ThisIsContentOfYourSubscriptionWasRecorded=Obveščamo vas, da je bila vaša nova naročnina zabeležena. Tukaj je priložen vaš račun.

    +ThisIsContentOfSubscriptionReminderEmail=Želimo vas obvestiti, da bo vaša naročnina kmalu potekla ali je že potekla (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Upamo, da ga boste obnovili.

    +ThisIsContentOfYourCard=To je povzetek informacij, ki jih imamo o vas. Prosimo, kontaktirajte nas, če je karkoli narobe.

    +DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Zadeva prejetega e-poštnega obvestila v primeru samodejnega vpisa gosta +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Vsebina obvestila, prejetega v primeru samodejnega vpisa gosta +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=E-poštna predloga za pošiljanje e-pošte članu ob samodejni registraciji člana +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=E-poštna predloga za pošiljanje e-pošte članu ob potrditvi članstva +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=E-poštna predloga za pošiljanje e-pošte članu o novem posnetku prispevka +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=E-poštna predloga za pošiljanje e-poštnega opomnika, ko bo prispevek potekel +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=E-poštna predloga za pošiljanje e-pošte članu ob preklicu članstva +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=E-poštna predloga za pošiljanje e-pošte članu ob izključitvi člana +DescADHERENT_MAIL_FROM=E-pošta pošiljatelja za samodejna e-poštna sporočila DescADHERENT_ETIQUETTE_TYPE=Format nalepk DescADHERENT_ETIQUETTE_TEXT=Tekst na evidenčnem listu člana DescADHERENT_CARD_TYPE=Format kartic @@ -156,65 +165,70 @@ DescADHERENT_CARD_TEXT_RIGHT=Tekst na članski kartici (desna poravnava) DescADHERENT_CARD_FOOTER_TEXT=Tekst na dnu članske kartice ShowTypeCard=Prikaži tip '%s' HTPasswordExport=Ustvarjanje htpassword datoteke -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +NoThirdPartyAssociatedToMember=Noben partner ni povezana s tem članom +MembersAndSubscriptions=Člani in prispevki MoreActions=Dopolnilna aktivnost pri zapisovanju -MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionsOnSubscription=Dodatno dejanje, ki je privzeto predlagano ob beleženju prispevka, se izvede tudi samodejno ob spletnem plačilu prispevka +MoreActionBankDirect=Ustvarite neposreden vnos na bančni račun +MoreActionBankViaInvoice=Ustvarite račun in plačilo na TRR MoreActionInvoiceOnly=Ustvarjanje računa brez plačila -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Izdelava vizitk ali listov z naslovi LinkToGeneratedPagesDesc=Ta prikaz vam omogoča, da ustvarite PDF datoteke z vizitkami za vse vaše člane ali določene člane. DocForAllMembersCards=Ustvari vizitke za vse člane (Format za izhod dejanske nastavitve: %s) DocForOneMemberCards=Ustvari vizitke za določenega člana (Format za izhod dejanske nastavitve: %s) DocForLabels=Ustvari seznam naslovov (Format za izhod dejanske nastavitve: %s) -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution -LastMemberType=Last Member type +SubscriptionPayment=Plačilo prispevka +LastSubscriptionDate=Datum zadnjega plačila prispevka +LastSubscriptionAmount=Znesek zadnjega prispevka +LastMemberType=Vrsta zadnjega člana MembersStatisticsByCountries=Statistika članov po državah MembersStatisticsByState=Statistika članov po deželah MembersStatisticsByTown=Statistika članov po mestih MembersStatisticsByRegion=Statistika članov po regijah -NbOfMembers=Total number of members -NbOfActiveMembers=Total number of current active members +NbOfMembers=Skupno število članov +NbOfActiveMembers=Skupno število trenutno aktivnih članov NoValidatedMemberYet=Najdeni so nepotrjeni člani -MembersByCountryDesc=This screen shows you the statistics of members by countries. Graphs and charts depend on the availability of the Google online graph service as well as on the availability of a working internet connection. -MembersByStateDesc=This screen show you statistics of members by state/provinces/canton. -MembersByTownDesc=This screen show you statistics of members by town. -MembersByNature=This screen show you statistics of members by nature. -MembersByRegion=This screen show you statistics of members by region. +MembersByCountryDesc=Ta zaslon prikazuje statistiko članov po državah. Grafi in diagrami so odvisni od razpoložljivosti Googlove spletne storitve grafov ter od razpoložljivosti delujoče internetne povezave. +MembersByStateDesc=Ta zaslon vam prikazuje statistiko članov po državi/provincah/kantonu. +MembersByTownDesc=Ta zaslon prikazuje statistiko članov po mestih. +MembersByNature=Ta zaslon prikazuje statistiko članov po naravi. +MembersByRegion=Ta zaslon prikazuje statistiko članov po regijah. MembersStatisticsDesc=Izberite statistiko, ki jo želite prebrati... MenuMembersStats=Statistika -LastMemberDate=Latest membership date -LatestSubscriptionDate=Latest contribution date -MemberNature=Nature of the member -MembersNature=Nature of the members -Public=Information is public +LastMemberDate=Zadnji datum članstva +LatestSubscriptionDate=Zadnji datum prispevka +MemberNature=Narava člana +MembersNature=Narava članov +Public=Informacije so javne NewMemberbyWeb=Dodan je nov član. Čaka potrditev. NewMemberForm=Obrazec za nove člane -SubscriptionsStatistics=Contributions statistics -NbOfSubscriptions=Number of contributions -AmountOfSubscriptions=Amount collected from contributions +SubscriptionsStatistics=Statistika prispevkov +NbOfSubscriptions=Število prispevkov +AmountOfSubscriptions=Znesek, zbran s prispevki TurnoverOrBudget=Obseg prodaje (za podjetje) ali proračun (za fundacijo) -DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Skoči na integrirano stran za online plačila -ByProperties=By nature -MembersStatisticsByProperties=Members statistics by nature -VATToUseForSubscriptions=VAT rate to use for contributionss -NoVatOnSubscription=No VAT for contributions -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for contribution line into invoice: %s -NameOrCompany=Name or company -SubscriptionRecorded=Contribution recorded -NoEmailSentToMember=No email sent to member -EmailSentToMember=Email sent to member at %s -SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired contributions -SendReminderForExpiredSubscription=Send reminder by email to members when contribution is about to expire (parameter is number of days before end of membership to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5') -MembershipPaid=Membership paid for current period (until %s) -YouMayFindYourInvoiceInThisEmail=You may find your invoice attached to this email -XMembersClosed=%s member(s) closed -XExternalUserCreated=%s external user(s) created -ForceMemberNature=Force member nature (Individual or Corporation) -CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. -CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +DefaultAmount=Privzeti znesek prispevka +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Obiskovalec lahko izbere/uredi višino svojega prispevka ne glede na vrsto člana +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page +ByProperties=Po naravi +MembersStatisticsByProperties=Statistika članov po naravi +VATToUseForSubscriptions=Stopnja DDV za prispevke +NoVatOnSubscription=Brez DDV za prispevke +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Izdelek, ki se uporablja za vrstico prispevka na računu: %s +NameOrCompany=Ime ali podjetje +SubscriptionRecorded=Prispevek zabeležen +NoEmailSentToMember=Članu ni bilo poslano nobeno e-poštno sporočilo +EmailSentToMember=E-pošta je bila poslana članu na %s +SendReminderForExpiredSubscriptionTitle=Pošlji opomnik po e-pošti za potekle prispevke +SendReminderForExpiredSubscription=Pošlji opomnik po e-pošti članom, ko bo prispevek potekel (parameter je število dni pred koncem članstva za pošiljanje opomina. Lahko je seznam dni, ločenih s podpičjem, na primer '10;5;0;-5 ') +MembershipPaid=Članarina plačana za tekoče obdobje (do %s) +YouMayFindYourInvoiceInThisEmail=Račun lahko najdete v prilogi tega e-poštnega sporočila +XMembersClosed=%s član(-i) zaprt +XExternalUserCreated=%s ustvarjeni zunanji uporabniki +ForceMemberNature=Narava člana sile (posameznik ali družba) +CreateDolibarrLoginDesc=Izdelava uporabniške prijave za člane omogoča povezavo z aplikacijo. Odvisno od podeljenih pooblastil si bodo lahko na primer sami ogledali ali spremenili svojo datoteko. +CreateDolibarrThirdPartyDesc=Tretja oseba je pravna oseba, ki bo navedena na računu, če se odločite za izstavitev računa za vsak prispevek. Ustvarili ga boste lahko kasneje med postopkom snemanja prispevka. +MemberFirstname=Ime člana +MemberLastname=Priimek člana +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/sl_SI/modulebuilder.lang b/htdocs/langs/sl_SI/modulebuilder.lang index 61b5c939d12..c1847bf3062 100644 --- a/htdocs/langs/sl_SI/modulebuilder.lang +++ b/htdocs/langs/sl_SI/modulebuilder.lang @@ -1,147 +1,167 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. -EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s -ModuleBuilderDesc3=Generated/editable modules found: %s -ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory -NewModule=New module -NewObjectInModulebuilder=New object -ModuleKey=Module key -ObjectKey=Object key -ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object '%s' initialized -FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) -ModuleBuilderDescdescription=Enter here all general information that describe your module. -ModuleBuilderDescspecifications=You can enter here a detailed description of the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommended to use Asciidoc format (comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. -ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. -ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. -ModuleBuilderDeschooks=This tab is dedicated to hooks. -ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. -ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All coding files of module (generated or created manually) AND structured data and documentation will be deleted! -EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All coding files (generated or created manually) related to object will be deleted! -DangerZone=Danger zone -BuildPackage=Build package -BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like DoliStore.com. -BuildDocumentation=Build documentation -ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here -ModuleIsLive=This module has been activated. Any change may break a current live feature. -DescriptionLong=Long description -EditorName=Name of editor -EditorUrl=URL of editor -DescriptorFile=Descriptor file of module -ClassFile=File for PHP DAO CRUD class -ApiClassFile=File for PHP API class -PageForList=PHP page for list of record -PageForCreateEditView=PHP page to create/edit/view a record -PageForAgendaTab=PHP page for event tab -PageForDocumentTab=PHP page for document tab -PageForNoteTab=PHP page for note tab -PageForContactTab=PHP page for contact tab -PathToModulePackage=Path to zip of module/application package -PathToModuleDocumentation=Path to file of module/application documentation (%s) -SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. -FileNotYetGenerated=File not yet generated -RegenerateClassAndSql=Force update of .class and .sql files -RegenerateMissingFiles=Generate missing files -SpecificationFile=File of documentation -LanguageFile=File for language -ObjectProperties=Object Properties -ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. -NotNull=Not NULL -NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0). -SearchAll=Used for 'search all' -DatabaseIndex=Database index -FileAlreadyExists=File %s already exists -TriggersFile=File for triggers code -HooksFile=File for hooks code -ArrayOfKeyValues=Array of key-val -ArrayOfKeyValuesDesc=Array of keys and values if field is a combo list with fixed values -WidgetFile=Widget file -CSSFile=CSS file -JSFile=Javascript file -ReadmeFile=Readme file -ChangeLog=ChangeLog file -TestClassFile=File for PHP Unit Test class -SqlFile=Sql file -PageForLib=File for the common PHP library -PageForObjLib=File for the PHP library dedicated to object -SqlFileExtraFields=Sql file for complementary attributes -SqlFileKey=Sql file for keys -SqlFileKeyExtraFields=Sql file for keys of complementary attributes -AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case -UseAsciiDocFormat=You can use Markdown format, but it is recommended to use Asciidoc format (omparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) -IsAMeasure=Is a measure -DirScanned=Directory scanned -NoTrigger=No trigger -NoWidget=No widget -GoToApiExplorer=API explorer -ListOfMenusEntries=List of menu entries -ListOfDictionariesEntries=List of dictionaries entries -ListOfPermissionsDefined=List of defined permissions -SeeExamples=See examples here -EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Display on PDF -IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0) -SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0) -SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. -LanguageDefDesc=Enter in this files, all the key and the translation for each language file. -MenusDefDesc=Define here the menus provided by your module -DictionariesDefDesc=Define here the dictionaries provided by your module -PermissionsDefDesc=Define here the new permissions provided by your module -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), menus are also visible into the menu editor available to administrator users on %s. -DictionariesDefDescTooltip=The dictionaries provided by your module/application are defined into the array $this->dictionaries into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), dictionaries are also visible into the setup area to administrator users on %s. -PermissionsDefDescTooltip=The permissions provided by your module/application are defined into the array $this->rights into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), permissions are visible into the default permissions setup %s. -HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code).
    Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code). -TriggerDefDesc=Define in the trigger file the code that you want to execute when a business event external to your module is executed (events triggered by other modules). -SeeIDsInUse=See IDs in use in your installation -SeeReservedIDsRangeHere=See range of reserved IDs -ToolkitForDevelopers=Toolkit for Dolibarr developers -TryToUseTheModuleBuilder=If you have knowledge of SQL and PHP, you may use the native module builder wizard.
    Enable the module %s and use the wizard by clicking the on the top right menu.
    Warning: This is an advanced developer feature, do not experiment on your production site! -SeeTopRightMenu=See on the top right menu -AddLanguageFile=Add language file -YouCanUseTranslationKey=You can use here a key that is the translation key found into language file (see tab "Languages") -DropTableIfEmpty=(Destroy table if empty) -TableDoesNotExists=The table %s does not exists -TableDropped=Table %s deleted -InitStructureFromExistingTable=Build the structure array string of an existing table -UseAboutPage=Disable the about page -UseDocFolder=Disable the documentation folder -UseSpecificReadme=Use a specific ReadMe -ContentOfREADMECustomized=Note: The content of the README.md file has been replaced with the specific value defined into setup of ModuleBuilder. -RealPathOfModule=Real path of module -ContentCantBeEmpty=Content of file can't be empty -WidgetDesc=You can generate and edit here the widgets that will be embedded with your module. -CSSDesc=You can generate and edit here a file with personalized CSS embedded with your module. -JSDesc=You can generate and edit here a file with personalized Javascript embedded with your module. -CLIDesc=You can generate here some command line scripts you want to provide with your module. -CLIFile=CLI File -NoCLIFile=No CLI files -UseSpecificEditorName = Use a specific editor name -UseSpecificEditorURL = Use a specific editor URL -UseSpecificFamily = Use a specific family -UseSpecificAuthor = Use a specific author -UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation automatically of the reference -IncludeDocGeneration=I want to generate some documents from the object -IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. -ShowOnCombobox=Show value into combobox -KeyForTooltip=Key for tooltip -CSSClass=CSS for edit/create form -CSSViewClass=CSS for read form -CSSListClass=CSS for list -NotEditable=Not editable -ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example) -AsciiToHtmlConverter=Ascii to HTML converter -AsciiToPdfConverter=Ascii to PDF converter -TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. -ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. -ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Put 1 if this field need to be validated with $this->validateField() or 0 if validation required +IdModule= ID modula +ModuleBuilderDesc=To orodje smejo uporabljati samo izkušeni uporabniki ali razvijalci. Ponuja pripomočke za izdelavo ali urejanje lastnega modula. Dokumentacija za alternativni ročni razvoj je tukaj . +EnterNameOfModuleDesc=Brez presledkov vnesite ime modula/aplikacije, ki jo želite ustvariti. Za ločevanje besed uporabite velike črke (na primer: MyModule, E-CommerceForShop, SyncWithMySystem ...) +EnterNameOfObjectDesc=Vnesite ime predmeta, ki ga želite ustvariti, brez presledkov. Za ločevanje besed uporabite velike črke (na primer: Moj predmet, Študent, Učitelj ...). Ustvarjene bodo datoteka razreda CRUD, strani za seznam/dodajanje/urejanje/brisanje predmeta in datoteke SQL. +EnterNameOfDictionaryDesc=Vnesite ime slovarja, ki ga želite ustvariti, brez presledkov. Za ločevanje besed uporabite velike črke (Na primer: MyDico ...). Ustvarjena bosta datoteka razreda in tudi datoteka SQL. +ModuleBuilderDesc2=Pot, kjer so moduli ustvarjeni/urejeni (prvi imenik za zunanje module, definiran v %s): %s +ModuleBuilderDesc3=Najdeni ustvarjeni moduli/moduli, ki jih je mogoče urejati: %s +ModuleBuilderDesc4=Modul je zaznan kot 'ureljiv', ko datoteka %s obstaja v korenu imenika modula +NewModule=Nov modul +NewObjectInModulebuilder=Nov objekt +NewDictionary=Nov slovar +ModuleName=Ime modula +ModuleKey=Ključ modula +ObjectKey=Ključ predmeta +DicKey=Slovarski ključ +ModuleInitialized=Modul inicializiran +FilesForObjectInitialized=Inicializirane datoteke za nov objekt '%s' +FilesForObjectUpdated=Posodobljene datoteke za predmet '%s' (datoteke .sql in datoteka .class.php) +ModuleBuilderDescdescription=Tukaj vnesite vse splošne informacije, ki opisujejo vaš modul. +ModuleBuilderDescspecifications=Tukaj lahko vnesete podroben opis specifikacij vašega modula, ki še ni strukturiran v drugih zavihkih. Tako imate na dosegu roke vsa pravila za razvoj. Tudi ta besedilna vsebina bo vključena v generirano dokumentacijo (glej zadnji zavihek). Uporabite lahko format Markdown, vendar je priporočljivo uporabiti format Asciidoc (primerjava med .md in .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=Tukaj določite objekte, ki jih želite upravljati s svojim modulom. Ustvarjen bo razred CRUD DAO, datoteke SQL, zapis strani za seznam predmetov, ustvarjanje/urejanje/ogled zapisa in API. +ModuleBuilderDescmenus=Ta zavihek je namenjen definiranju menijskih vnosov, ki jih ponuja vaš modul. +ModuleBuilderDescpermissions=Ta zavihek je namenjen določanju novih dovoljenj, ki jih želite zagotoviti s svojim modulom. +ModuleBuilderDesctriggers=To je pogled sprožilcev, ki jih ponuja vaš modul. Če želite vključiti kodo, ki se izvede ob sprožitvi sproženega poslovnega dogodka, samo uredite to datoteko. +ModuleBuilderDeschooks=Ta zavihek je namenjen trnkom. +ModuleBuilderDescwidgets=Ta zavihek je namenjen upravljanju/izdelavi pripomočkov. +ModuleBuilderDescbuildpackage=Tukaj lahko ustvarite datoteko paketa, pripravljeno za distribucijo (normalizirano datoteko .zip) vašega modula in dokumentacijsko datoteko, pripravljeno za distribucijo. Preprosto kliknite gumb za izdelavo paketa ali dokumentacijske datoteke. +EnterNameOfModuleToDeleteDesc=Svoj modul lahko izbrišete. OPOZORILO: Vse datoteke kodiranja modula (generirane ali ustvarjene ročno) TER strukturirani podatki in dokumentacija bodo izbrisani! +EnterNameOfObjectToDeleteDesc=Predmet lahko izbrišete. OPOZORILO: Vse datoteke kodiranja (generirane ali ustvarjene ročno), povezane z objektom, bodo izbrisane! +DangerZone=Nevarno območje +BuildPackage=Zgradite paket +BuildPackageDesc=Lahko ustvarite zip paket svoje aplikacije, tako da ste pripravljeni za distribucijo na kateri koli Dolibarr. Lahko ga tudi distribuirate ali prodajate na trgu, kot je DoliStore.com . +BuildDocumentation=Gradnja dokumentacije +ModuleIsNotActive=Ta modul še ni aktiviran. Pojdite na %s, da ga objavite v živo, ali kliknite tukaj +ModuleIsLive=Ta modul je bil aktiviran. Vsaka sprememba lahko prekine trenutno funkcijo v živo. +DescriptionLong=Dolg opis +EditorName=Ime urednika +EditorUrl=URL urejevalnika +DescriptorFile=Deskriptorna datoteka modula +ClassFile=Datoteka za razred PHP DAO CRUD +ApiClassFile=Datoteka za razred PHP API +PageForList=PHP stran za seznam zapisov +PageForCreateEditView=PHP stran za ustvarjanje/urejanje/ogled zapisa +PageForAgendaTab=Stran PHP za zavihek dogodkov +PageForDocumentTab=Stran PHP za zavihek dokumenta +PageForNoteTab=PHP stran za zavihek opombe +PageForContactTab=Stran PHP za zavihek s stiki +PathToModulePackage=Pot do zip paketa modula/aplikacije +PathToModuleDocumentation=Pot do datoteke dokumentacije modula/aplikacije (%s) +SpaceOrSpecialCharAreNotAllowed=Presledki ali posebni znaki niso dovoljeni. +FileNotYetGenerated=Datoteka še ni ustvarjena +GenerateCode=Ustvari kodo +RegenerateClassAndSql=Vsili posodobitev datotek .class in .sql +RegenerateMissingFiles=Ustvarite manjkajoče datoteke +SpecificationFile=Datoteka z dokumentacijo +LanguageFile=Datoteka za jezik +ObjectProperties=Lastnosti predmeta +Property=Propery +PropertyDesc=Lastnost je atribut, ki označuje predmet. Ta atribut ima kodo, oznako in vrsto z več možnostmi. +ConfirmDeleteProperty=Ali ste prepričani, da želite izbrisati lastnost %s ? To bo spremenilo kodo v razredu PHP, a tudi odstranilo stolpec iz definicije tabele predmeta. +NotNull=Ni NULL +NotNullDesc=1=Nastavi bazo podatkov na NOT NULL, 0=Dovoli ničelne vrednosti, -1=Dovoli ničelne vrednosti tako, da vsili vrednost na NULL, če je prazna ('' ali 0) +SearchAll=Uporablja se za "iskanje vseh" +DatabaseIndex=Indeks baze podatkov +FileAlreadyExists=Datoteka %s že obstaja +TriggersFile=Datoteka za kodo sprožilcev +HooksFile=Datoteka za kodo kavljev +ArrayOfKeyValues=Niz ključ-val +ArrayOfKeyValuesDesc=Niz ključev in vrednosti, če je polje kombinirani seznam s fiksnimi vrednostmi +WidgetFile=Datoteka pripomočka +CSSFile=datoteka CSS +JSFile=datoteka Javascript +ReadmeFile=Datoteka Readme +ChangeLog=Datoteka ChangeLog +TestClassFile=Datoteka za razred PHP Unit Test +SqlFile=Sql datoteka +PageForLib=Datoteka za skupno knjižnico PHP +PageForObjLib=Datoteka za knjižnico PHP, namenjeno predmetu +SqlFileExtraFields=Sql datoteka za komplementarne atribute +SqlFileKey=Sql datoteka za ključe +SqlFileKeyExtraFields=Sql datoteka za ključe komplementarnih atributov +AnObjectAlreadyExistWithThisNameAndDiffCase=Predmet s tem imenom in drugačnimi velikimi in malimi črkami že obstaja +UseAsciiDocFormat=Uporabite lahko format Markdown, vendar je priporočljivo uporabiti format Asciidoc (primerjava med .md in .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=Je merilo +DirScanned=Imenik skeniran +NoTrigger=Brez sprožilca +NoWidget=Brez pripomočka +ApiExplorer=API raziskovalec +ListOfMenusEntries=Seznam menijskih vnosov +ListOfDictionariesEntries=Seznam slovarskih vnosov +ListOfPermissionsDefined=Seznam definiranih dovoljenj +SeeExamples=Oglejte si primere tukaj +EnabledDesc=Pogoj, da je to polje aktivno.

    Primeri:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Ali je polje vidno? (Primeri: 0=nikoli viden, 1=viden na seznamu in obrazci za ustvarjanje/posodabljanje/ogled, 2=viden samo na seznamu, 3=viden samo na obrazcu za ustvarjanje/posodabljanje/ogled (ne na seznamu), 4=viden na seznamu in samo posodobitev/ogled obrazca (ne ustvari), 5=Vidno samo na končnem obrazcu seznama (ne ustvari, ne posodobi).

    Uporaba negativne vrednosti pomeni, da polje ni privzeto prikazano na seznamu, vendar ga je mogoče izbrati za ogled). +ItCanBeAnExpression=Lahko je izraz. Primer:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('praznik', 'define_holiday')?1:5 +DisplayOnPdfDesc=Prikažite to polje na združljivih dokumentih PDF, položaj lahko upravljate s poljem »Položaj«.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description stolpec za opisom
    4 = prikaz v stolpcu z opisom za opisom le, če ni prazen +DisplayOnPdf=V PDF-ju +IsAMeasureDesc=Ali je mogoče vrednost polja sešteti, da dobimo skupno vsoto na seznam? (Primeri: 1 ali 0) +SearchAllDesc=Ali se polje uporablja za iskanje iz orodja za hitro iskanje? (Primeri: 1 ali 0) +SpecDefDesc=Tukaj vnesite vso dokumentacijo, ki jo želite zagotoviti z vašim modulom in ki še ni definirana na drugih zavihkih. Uporabite lahko .md ali bolje, bogato sintakso .asciidoc. +LanguageDefDesc=V te datoteke vnesite vse ključe in prevode za vsako jezikovno datoteko. +MenusDefDesc=Tu določite menije, ki jih ponuja vaš modul +DictionariesDefDesc=Tukaj določite slovarje, ki jih nudi vaš modul +PermissionsDefDesc=Tukaj določite nova dovoljenja, ki jih nudi vaš modul +MenusDefDescTooltip=Meniji, ki jih nudi vaš modul/aplikacija, so definirani v matriki $this->menus v datoteki deskriptorja modula. To datoteko lahko urejate ročno ali uporabite vdelani urejevalnik.

    Opomba: Ko so meniji definirani (in modul ponovno aktiviran), so meniji vidni tudi v urejevalniku menijev, ki je na voljo skrbniškim uporabnikom na %s. +DictionariesDefDescTooltip=Slovarji, ki jih nudi vaš modul/aplikacija, so definirani v matriki $this->dictionaries v datoteki deskriptorja modula. To datoteko lahko urejate ročno ali uporabite vdelani urejevalnik.

    Opomba: Ko so slovarji definirani (in modul ponovno aktivirani), so v območju nastavitev vidni tudi skrbniškim uporabnikom na %s. +PermissionsDefDescTooltip=Dovoljenja, ki jih zagotavlja vaš modul/aplikacija, so definirana v matriki $this->rights v datoteki deskriptorja modula. To datoteko lahko urejate ročno ali uporabite vdelani urejevalnik.

    Opomba: Ko so dovoljenja definirana (in modul ponovno aktivirana), so vidna v privzeti nastavitvi dovoljenj %s. +HooksDefDesc=V lastnosti module_parts['hooks'] v deskriptorju modula definirajte kontekst kavljev, ki jih želite upravljati (seznam kontekstov lahko najdete z iskanjem na ' initHooks( f ' a0da3192fccb ' v jedrni kodi). hook datoteko za dodajanje kode vaših zasvojenih funkcij (zasvojene funkcije lahko najdete z iskanjem na ' executeHooks ' v osnovni kodi). +TriggerDefDesc=V prožilni datoteki definirajte kodo, ki jo želite izvesti, ko se izvede poslovni dogodek zunaj vašega modula (dogodki, ki jih sprožijo drugi moduli). +SeeIDsInUse=Oglejte si ID-je, ki se uporabljajo v vaši namestitvi +SeeReservedIDsRangeHere=Oglejte si obseg rezerviranih ID-jev +ToolkitForDevelopers=Komplet orodij za razvijalce Dolibarr +TryToUseTheModuleBuilder=Če poznate SQL in PHP, lahko uporabite čarovnika za ustvarjanje izvirnega modula.
    Omogočite modul %s in uporabite čarovnika s klikom na v zgornjem desnem meniju.
    Opozorilo: To je napredna funkcija za razvijalce, ne ne eksperimentirajte na svojem proizvodnem mestu! +SeeTopRightMenu=Oglejte si v zgornjem desnem meniju +AddLanguageFile=Dodajte jezikovno datoteko +YouCanUseTranslationKey=Tukaj lahko uporabite ključ, ki je ključ prevoda, ki ga najdete v jezikovni datoteki (glejte zavihek "Jeziki") +DropTableIfEmpty=(Uniči tabelo, če je prazna) +TableDoesNotExists=Tabela %s ne obstaja +TableDropped=Tabela %s izbrisana +InitStructureFromExistingTable=Zgradite strukturni niz obstoječe tabele +UseAboutPage=Ne ustvarite strani O programu +UseDocFolder=Onemogočite mapo z dokumentacijo +UseSpecificReadme=Uporabite poseben ReadMe +ContentOfREADMECustomized=Opomba: Vsebina datoteke README.md je bila nadomeščena s specifično vrednostjo, definirano v nastavitvah ModuleBuilderja. +RealPathOfModule=Prava pot modula +ContentCantBeEmpty=Vsebina datoteke ne sme biti prazna +WidgetDesc=Tu lahko ustvarite in uredite gradnike, ki bodo vdelani v vaš modul. +CSSDesc=Tukaj lahko ustvarite in uredite datoteko s prilagojenim CSS, vdelanim v vaš modul. +JSDesc=Tu lahko ustvarite in uredite datoteko s prilagojenim Javascriptom, vdelanim v vaš modul. +CLIDesc=Tukaj lahko ustvarite nekaj skriptov ukazne vrstice, ki jih želite zagotoviti z vašim modulom. +CLIFile=Datoteka CLI +NoCLIFile=Ni datotek CLI +UseSpecificEditorName = Uporabite določeno ime urejevalnika +UseSpecificEditorURL = Uporabite določen URL urejevalnika +UseSpecificFamily = Uporabite določeno družino +UseSpecificAuthor = Uporabite določenega avtorja +UseSpecificVersion = Uporabite določeno začetno različico +IncludeRefGeneration=Referenca tega predmeta mora biti samodejno ustvarjena s pravili oštevilčenja po meri +IncludeRefGenerationHelp=Označite to, če želite vključiti kodo za samodejno upravljanje generiranja sklica z uporabo pravil oštevilčevanja po meri +IncludeDocGeneration=Želim, da funkcija ustvari nekaj dokumentov (PDF, ODT) iz predlog za ta predmet +IncludeDocGenerationHelp=Če to označite, bo ustvarjena koda za dodajanje polja »Ustvari dokument« v zapis. +ShowOnCombobox=Prikaži vrednost v kombiniranih poljih +KeyForTooltip=Ključ za opis orodja +CSSClass=CSS za urejanje/ustvarjanje obrazca +CSSViewClass=CSS za obrazec za branje +CSSListClass=CSS za seznam +NotEditable=Ni mogoče urejati +ForeignKey=Tuji ključ +ForeignKeyDesc=Če je treba zagotoviti, da vrednost tega polja obstaja v drugi tabeli. Tukaj vnesite sintakso, ki se ujema z vrednostjo: tablename.parentfieldtocheck +TypeOfFieldsHelp=Primer:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    ' 1' pomeni, da dodamo gumb + za kombinacijo, da ustvarimo zapis.
    'filter' je pogoj sql, primer: 'status=1 IN fk_user=__USER_ID__ IN entiteta IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=To je vrsta polja/atributa. +AsciiToHtmlConverter=Pretvornik ascii v HTML +AsciiToPdfConverter=Pretvornik ascii v PDF +TableNotEmptyDropCanceled=Miza ni prazna. Spuščanje je bilo preklicano. +ModuleBuilderNotAllowed=Graditelj modulov je na voljo, vendar ni dovoljen vašemu uporabniku. +ImportExportProfiles=Uvoz in izvoz profilov +ValidateModBuilderDesc=To nastavite na 1, če želite, da se kliče metoda $this->validateField() objekta za preverjanje vsebine polja med vstavljanjem ali posodabljanjem. Nastavite 0, če preverjanje ni potrebno. +WarningDatabaseIsNotUpdated=Opozorilo: Baza podatkov se ne posodablja samodejno, zato morate uničiti tabele in onemogočiti-omogočiti modul, da bodo tabele ponovno ustvarjene +LinkToParentMenu=Nadrejeni meni (fk_xxxxmenu) +ListOfTabsEntries=Seznam vnosov zavihkov +TabsDefDesc=Tukaj določite zavihke, ki jih ponuja vaš modul +TabsDefDescTooltip=Zavihki, ki jih nudi vaš modul/aplikacija, so definirani v matriki $this->tabs v datoteki deskriptorja modula. To datoteko lahko urejate ročno ali uporabite vdelani urejevalnik. +BadValueForType=Neveljaven tip %s +DefinePropertiesFromExistingTable=Definirajte lastnosti iz obstoječe tabele +DefinePropertiesFromExistingTableDesc=Če tabela v bazi podatkov (za objekt, ki ga želite ustvariti) že obstaja, jo lahko uporabite za definiranje lastnosti predmeta. +DefinePropertiesFromExistingTableDesc2=Pustite prazno, če tabela še ne obstaja. Generator kode bo uporabil različne vrste polj za izdelavo primera tabele, ki jo lahko pozneje urejate. diff --git a/htdocs/langs/sl_SI/mrp.lang b/htdocs/langs/sl_SI/mrp.lang index 0cbcc1d2bc8..ff79cfb547f 100644 --- a/htdocs/langs/sl_SI/mrp.lang +++ b/htdocs/langs/sl_SI/mrp.lang @@ -1,109 +1,120 @@ -Mrp=Manufacturing Orders -MOs=Manufacturing orders -ManufacturingOrder=Manufacturing Order -MRPDescription=Module to manage production and Manufacturing Orders (MO). -MRPArea=MRP Area -MrpSetupPage=Setup of module MRP -MenuBOM=Bills of material -LatestBOMModified=Latest %s Bills of materials modified -LatestMOModified=Latest %s Manufacturing Orders modified -Bom=Bills of Material -BillOfMaterials=Bill of Materials -BillOfMaterialsLines=Bill of Materials lines -BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=List of Manufacturing Orders -NewBOM=New bill of materials -ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. -BOMsNumberingModules=BOM numbering templates -BOMsModelModule=BOM document templates -MOsNumberingModules=MO numbering templates -MOsModelModule=MO document templates -FreeLegalTextOnBOMs=Free text on document of BOM -WatermarkOnDraftBOMs=Watermark on draft BOM -FreeLegalTextOnMOs=Free text on document of MO -WatermarkOnDraftMOs=Watermark on draft MO -ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? -ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? -ManufacturingEfficiency=Manufacturing efficiency -ConsumptionEfficiency=Consumption efficiency -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly -ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product -DeleteBillOfMaterials=Delete Bill Of Materials -DeleteMo=Delete Manufacturing Order -ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? -MenuMRP=Manufacturing Orders -NewMO=New Manufacturing Order -QtyToProduce=Qty to produce -DateStartPlannedMo=Date start planned -DateEndPlannedMo=Date end planned -KeepEmptyForAsap=Empty means 'As Soon As Possible' -EstimatedDuration=Estimated duration -EstimatedDurationDesc=Estimated duration to manufacture (or disassemble) this product using this BOM -ConfirmValidateBom=Are you sure you want to validate the BOM with the reference %s (you will be able to use it to build new Manufacturing Orders) -ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? -ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) -StatusMOProduced=Produced -QtyFrozen=Frozen Qty -QuantityFrozen=Frozen Quantity -QuantityConsumedInvariable=When this flag is set, the quantity consumed is always the value defined and is not relative to the quantity produced. -DisableStockChange=Stock change disabled -DisableStockChangeHelp=When this flag is set, there is no stock change on this product, whatever is the quantity consumed -BomAndBomLines=Bills Of Material and lines -BOMLine=Line of BOM -WarehouseForProduction=Warehouse for production -CreateMO=Create MO -ToConsume=To consume -ToProduce=To produce -ToObtain=To obtain -QtyAlreadyConsumed=Qty already consumed -QtyAlreadyProduced=Qty already produced -QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%) -ConsumeOrProduce=Consume or Produce -ConsumeAndProduceAll=Consume and Produce All -Manufactured=Manufactured -TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce. -ForAQuantityOf=For a quantity to produce of %s -ForAQuantityToConsumeOf=For a quantity to disassemble of %s -ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? -ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. -ProductionForRef=Production of %s -AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached -NoStockChangeOnServices=No stock change on services -ProductQtyToConsumeByMO=Product quantity still to consume by open MO -ProductQtyToProduceByMO=Product quantity still to produce by open MO -AddNewConsumeLines=Add new line to consume -AddNewProduceLines=Add new line to produce -ProductsToConsume=Products to consume -ProductsToProduce=Products to produce -UnitCost=Unit cost -TotalCost=Total cost -BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) -GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. -ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO -Workstation=Workstation -Workstations=Workstations -WorkstationsDescription=Workstations management -WorkstationSetup = Workstations setup -WorkstationSetupPage = Workstations setup page -WorkstationList=Workstation list -WorkstationCreate=Add new workstation -ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? -EnableAWorkstation=Enable a workstation -ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? -DisableAWorkstation=Disable a workstation +Mrp=Naročila za proizvodnjo +MOs=Naročila za proizvodnjo +ManufacturingOrder=Naročilo izdelave +MRPDescription=Modul za upravljanje proizvodnje in proizvodnih naročil (MO). +MRPArea=Območje MRP +MrpSetupPage=Nastavitev modula MRP +MenuBOM=Listnice materiala +LatestBOMModified=Najnovejši %s Kosniki spremenjeni +LatestMOModified=Najnovejša %s proizvodna naročila spremenjena +Bom=Listnice materiala +BillOfMaterials=Račun za materiale +BillOfMaterialsLines=Vrstice seznama materialov +BOMsSetup=Nastavitev modula BOM +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Naročila za proizvodnjo +NewBOM=Nov kosovnik +ProductBOMHelp=Izdelek za ustvarjanje (ali razstavljanje) s to kosovnico.
    Opomba: Izdelki z lastnostjo 'Narava izdelka' = 'Surovina' niso vidni na tem seznamu. +BOMsNumberingModules=Predloge o oštevilčevanju BOM +BOMsModelModule=Predloge dokumentov BOM +MOsNumberingModules=Predloge za številčenje MO +MOsModelModule=Predloge dokumentov MO +FreeLegalTextOnBOMs=Prosto besedilo na dokumentu BOM +WatermarkOnDraftBOMs=Vodni žig na osnutku kosovnice +FreeLegalTextOnMOs=Prosto besedilo na dokumentu MO +WatermarkOnDraftMOs=Vodni žig na osnutku MO +ConfirmCloneBillOfMaterials=Ali ste prepričani, da želite klonirati kosovnico %s? +ConfirmCloneMo=Ali ste prepričani, da želite klonirati proizvodni nalog %s? +ManufacturingEfficiency=Učinkovitost proizvodnje +ConsumptionEfficiency=Učinkovitost porabe +Consumption=Consumption +ValueOfMeansLoss=Vrednost 0,95 pomeni povprečno 5%% izgube med proizvodnjo ali razstavljanjem +ValueOfMeansLossForProductProduced=Vrednost 0,95 pomeni povprečno 5%% izgube proizvedenega proizvoda +DeleteBillOfMaterials=Izbriši seznam materiala +DeleteMo=Izbriši proizvodni nalog +ConfirmDeleteBillOfMaterials=Ali ste prepričani, da želite izbrisati ta seznam materialov? +ConfirmDeleteMo=Ali ste prepričani, da želite izbrisati to proizvodno naročilo? +MenuMRP=Naročila za proizvodnjo +NewMO=Novo proizvodno naročilo +QtyToProduce=Količina za proizvodnjo +DateStartPlannedMo=Načrtovan datum začetka +DateEndPlannedMo=Načrtovan konec datuma +KeepEmptyForAsap=Prazno pomeni 'Čim prej' +EstimatedDuration=Predvideno trajanje +EstimatedDurationDesc=Predvideno trajanje izdelave (ali razstavljanja) tega izdelka z uporabo te kosovnice +ConfirmValidateBom=Ali ste prepričani, da želite potrditi kosovnico s sklicem %s (uporabili jo boste lahko za ustvarjanje novih proizvodnih naročil) +ConfirmCloseBom=Ali ste prepričani, da želite preklicati to kosovnico (ne boste je mogli več uporabljati za izdelavo novih proizvodnih naročil)? +ConfirmReopenBom=Ali ste prepričani, da želite znova odpreti to kosovnico (uporabili jo boste lahko za ustvarjanje novih proizvodnih naročil) +StatusMOProduced=Proizvedeno +QtyFrozen=Zamrznjena količina +QuantityFrozen=Zamrznjena količina +QuantityConsumedInvariable=Ko je ta zastavica nastavljena, je porabljena količina vedno definirana vrednost in ni relativna glede na proizvedeno količino. +DisableStockChange=Menjava zalog onemogočena +DisableStockChangeHelp=Ko je ta zastavica nastavljena, ni sprememb zaloge tega izdelka, ne glede na porabljeno količino +BomAndBomLines=Listnice materiala in linije +BOMLine=Linija BOM +WarehouseForProduction=Skladišče za proizvodnjo +CreateMO=Ustvari MO +ToConsume=Zaužiti +ToProduce=Izdelovati +ToObtain=Za pridobitev +QtyAlreadyConsumed=Količina že porabljena +QtyAlreadyProduced=Količina že izdelana +QtyRequiredIfNoLoss=Zahtevana količina, če ni izgube (proizvodna učinkovitost je 100%%) +ConsumeOrProduce=Porabi ali proizvedi +ConsumeAndProduceAll=Porabi in proizvedi vse +Manufactured=Proizvedeno +TheProductXIsAlreadyTheProductToProduce=Izdelek za dodajanje je že izdelek za proizvodnjo. +ForAQuantityOf=Za količino za proizvodnjo %s +ForAQuantityToConsumeOf=Za količino za razstavljanje %s +ConfirmValidateMo=Ali ste prepričani, da želite potrditi to proizvodno naročilo? +ConfirmProductionDesc=S klikom na '%s' potrdite porabo in/ali proizvodnjo za nastavljene količine. To bo tudi posodobilo zaloge in zabeležilo gibanje zalog. +ProductionForRef=Izdelava %s +CancelProductionForRef=Preklic zmanjšanja zaloge izdelka za izdelek %s +TooltipDeleteAndRevertStockMovement=Izbriši vrstico in povrni gibanje delnic +AutoCloseMO=Samodejno zapri proizvodni nalog, če so dosežene količine za porabo in proizvodnjo +NoStockChangeOnServices=Brez sprememb zalog pri storitvah +ProductQtyToConsumeByMO=Količina izdelka, ki jo je treba še porabiti do odprtega MO +ProductQtyToProduceByMO=Količina izdelka, ki jo je treba še proizvesti do odprtega MO +AddNewConsumeLines=Dodajte novo vrstico za porabo +AddNewProduceLines=Dodajte novo linijo za proizvodnjo +ProductsToConsume=Izdelki za uživanje +ProductsToProduce=Izdelki za proizvodnjo +UnitCost=Cena enote +TotalCost=Skupni stroški +BOMTotalCost=Stroški izdelave te kosovnice na podlagi stroškov vsake količine in izdelka za porabo (uporabite nabavno ceno, če je določena, sicer povprečno ponderirano ceno, če je določena, drugače pa najboljšo nakupno ceno) +BOMTotalCostService=Če je aktiviran modul "Delovna postaja" in je na vrstici privzeto definirana delovna postaja, potem je izračun "količina (preračunana v ure) x delovna postaja ahr", sicer pa "količina (preračunana v ure) x stroškovna cena storitve" +GoOnTabProductionToProduceFirst=Za zapiranje proizvodnega naloga morate najprej začeti proizvodnjo (glejte zavihek '%s'). Lahko pa ga prekličete. +ErrorAVirtualProductCantBeUsedIntoABomOrMo=Kompleta ni mogoče uporabiti v BOM ali MO +Workstation=Delovna postaja +Workstations=Delovne postaje +WorkstationsDescription=Upravljanje delovnih postaj +WorkstationSetup = Nastavitev delovnih postaj +WorkstationSetupPage = Stran za nastavitev delovnih postaj +WorkstationList=Seznam delovnih postaj +WorkstationCreate=Dodajte novo delovno postajo +ConfirmEnableWorkstation=Ali ste prepričani, da želite omogočiti delovno postajo %s ? +EnableAWorkstation=Omogoči delovno postajo +ConfirmDisableWorkstation=Ali ste prepričani, da želite onemogočiti delovno postajo %s ? +DisableAWorkstation=Onemogočite delovno postajo DeleteWorkstation=Izbriši -NbOperatorsRequired=Number of operators required -THMOperatorEstimated=Estimated operator THM -THMMachineEstimated=Estimated machine THM -WorkstationType=Workstation type -Human=Human -Machine=Machine -HumanMachine=Human / Machine -WorkstationArea=Workstation area -Machines=Machines -THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item -BOM=Bill Of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module -MOAndLines=Manufacturing Orders and lines +NbOperatorsRequired=Število zahtevanih operaterjev +THMOperatorEstimated=Predvideni operater THM +THMMachineEstimated=Ocenjeni stroj THM +WorkstationType=Vrsta delovne postaje +Human=Človek +Machine=Stroj +HumanMachine=Človek/stroj +WorkstationArea=Območje delovne postaje +Machines=Stroji +THMEstimatedHelp=Ta stopnja omogoča določitev predvidene cene artikla +BOM=Račun za materiale +CollapseBOMHelp=V konfiguraciji modula BOM lahko določite privzeti prikaz podrobnosti nomenklature +MOAndLines=Proizvodna naročila in linije +MoChildGenerate=Ustvari Child Mo +ParentMo=MO Starš +MOChild=MO Otrok +BomCantAddChildBom=Nomenklatura %s je že prisotna v drevesu, ki vodi do nomenklature %s +BOMNetNeeds = BOM neto potrebe +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/sl_SI/multicurrency.lang b/htdocs/langs/sl_SI/multicurrency.lang index bfcbd11fb7c..daa7f842290 100644 --- a/htdocs/langs/sl_SI/multicurrency.lang +++ b/htdocs/langs/sl_SI/multicurrency.lang @@ -1,22 +1,38 @@ # Dolibarr language file - Source file is en_US - multicurrency -MultiCurrency=Multi currency -ErrorAddRateFail=Error in added rate -ErrorAddCurrencyFail=Error in added currency -ErrorDeleteCurrencyFail=Error delete fail -multicurrency_syncronize_error=Synchronization error: %s -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use the date of the document to find the currency rate, instead of using the latest known rate -multicurrency_useOriginTx=When an object is created from another, keep the original rate from the source object (otherwise use the latest known rate) -CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=You must create an account on website %s to use this functionality.
    Get your API key.
    If you use a free account, you can't change the source currency (USD by default).
    If your main currency is not USD, the application will automatically recalculate it.

    You are limited to 1000 synchronizations per month. -multicurrency_appId=API key -multicurrency_appCurrencySource=Source currency -multicurrency_alternateCurrencySource=Alternate source currency -CurrenciesUsed=Currencies used -CurrenciesUsed_help_to_add=Add the different currencies and rates you need to use on your proposals, orders etc. -rate=rate -MulticurrencyReceived=Received, original currency -MulticurrencyRemainderToTake=Remaining amount, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -AmountToOthercurrency=Amount To (in currency of receiving account) -CurrencyRateSyncSucceed=Currency rate synchronization done successfuly -MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Use the currency of the document for online payments +MultiCurrency=Več valute +ErrorAddRateFail=Napaka v dodani stopnji +ErrorAddCurrencyFail=Napaka v dodani valuti +ErrorDeleteCurrencyFail=Napaka, brisanje ni uspelo +multicurrency_syncronize_error=Napaka pri sinhronizaciji: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Za iskanje tečaja valute uporabite datum dokumenta, namesto da uporabite zadnji znani tečaj +multicurrency_useOriginTx=Ko je objekt ustvarjen iz drugega, obdrži prvotno stopnjo iz izvornega predmeta (sicer uporabi zadnjo znano stopnjo) +CurrencyLayerAccount=API CurrencyLayer +CurrencyLayerAccount_help_to_synchronize=Za uporabo te funkcije morate ustvariti račun na spletnem mestu %s.
    Pridobite svoj API ključ .
    Če uporabljate brezplačen račun, ne morete spremeniti izvorne valute (privzeto USD).
    Če vaša glavna valuta ni USD, jo bo aplikacija samodejno preračunala.

    Omejeni ste na 1000 sinhronizacij na mesec. +multicurrency_appId=API ključ +multicurrency_appCurrencySource=Izvorna valuta +multicurrency_alternateCurrencySource=Nadomestna izvorna valuta +CurrenciesUsed=Uporabljene valute +CurrenciesUsed_help_to_add=Dodajte različne valute in tečaje, ki jih morate uporabiti pri svojih predlogih , naročilih itd. +rate=oceniti +MulticurrencyReceived=Prejeto, originalna valuta +MulticurrencyRemainderToTake=Preostali znesek, izvirna valuta +MulticurrencyPaymentAmount=Znesek plačila, originalna valuta +AmountToOthercurrency=Znesek do (v valuti računa prejemnika) +CurrencyRateSyncSucceed=Sinhronizacija valutnega tečaja je bila uspešna +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Za spletna plačila uporabite valuto dokumenta +TabTitleMulticurrencyRate=Cenik +ListCurrencyRate=Seznam menjalnih tečajev za valuto +CreateRate=Ustvarite stopnjo +FormCreateRate=Ocenite ustvarjanje +FormUpdateRate=Sprememba stopnje +successRateCreate=Tečaj za valuto %s je dodan v bazo podatkov +ConfirmDeleteLineRate=Ali ste prepričani, da želite odstraniti tečaj %s za valuto %s na datum %s? +DeleteLineRate=Jasna stopnja +successRateDelete=Ocena izbrisana +errorRateDelete=Napaka pri brisanju stopnje +successUpdateRate=Izvedena sprememba +ErrorUpdateRate=Napaka pri spreminjanju stopnje +Codemulticurrency=šifra valute +UpdateRate=spremenite stopnjo +CancelUpdate=preklicati +NoEmptyRate=Polje za tečaj ne sme biti prazno diff --git a/htdocs/langs/sl_SI/oauth.lang b/htdocs/langs/sl_SI/oauth.lang index 075ff49a895..edf61db23e4 100644 --- a/htdocs/langs/sl_SI/oauth.lang +++ b/htdocs/langs/sl_SI/oauth.lang @@ -1,32 +1,40 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=OAuth Configuration -OAuthServices=OAuth Services -ManualTokenGeneration=Manual token generation -TokenManager=Token Manager -IsTokenGenerated=Is token generated ? -NoAccessToken=No access token saved into local database -HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received and saved -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider -TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Click here to delete token -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret -TOKEN_REFRESH=Token Refresh Present -TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token -OAUTH_GOOGLE_NAME=OAuth Google service -OAUTH_GOOGLE_ID=OAuth Google Id +ConfigOAuth=Konfiguracija OAuth +OAuthServices=Storitve OAuth +ManualTokenGeneration=Ročno ustvarjanje žetonov +TokenManager=Upravitelj žetonov +IsTokenGenerated=Je žeton ustvarjen? +NoAccessToken=V lokalni zbirki podatkov ni shranjen noben žeton za dostop +HasAccessToken=Žeton je bil ustvarjen in shranjen v lokalno bazo podatkov +NewTokenStored=Žeton prejet in shranjen +ToCheckDeleteTokenOnProvider=Kliknite tukaj, če želite preveriti/izbrisati avtorizacijo, ki jo je shranil ponudnik OAuth %s +TokenDeleted=Žeton izbrisan +GetAccess=Kliknite tukaj za pridobitev žetona +RequestAccess=Kliknite tukaj, če želite zahtevati/obnoviti dostop in prejeti nov žeton +DeleteAccess=Kliknite tukaj, če želite izbrisati žeton +UseTheFollowingUrlAsRedirectURI=Pri ustvarjanju poverilnic pri ponudniku OAuth kot URI preusmeritve uporabite naslednji URL: +ListOfSupportedOauthProviders=Dodajte svoje ponudnike žetonov OAuth2. Nato pojdite na skrbniško stran ponudnika OAuth, da ustvarite/pridobite ID OAuth in Secret ter ju shranite tukaj. Ko končate, preklopite na drugi zavihek, da ustvarite svoj žeton. +OAuthSetupForLogin=Stran za upravljanje (generiranje/brisanje) žetonov OAuth +SeePreviousTab=Glej prejšnji zavihek +OAuthProvider=Ponudnik OAuth +OAuthIDSecret=OAuth ID in Secret +TOKEN_REFRESH=Token Osveži prisoten +TOKEN_EXPIRED=Žeton je potekel +TOKEN_EXPIRE_AT=Žeton poteče ob +TOKEN_DELETE=Izbriši shranjeni žeton +OAUTH_GOOGLE_NAME=Googlova storitev OAuth +OAUTH_GOOGLE_ID=OAuth Google ID OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials -OAUTH_GITHUB_NAME=OAuth GitHub service -OAUTH_GITHUB_ID=OAuth GitHub Id +OAUTH_GITHUB_NAME=Storitev OAuth GitHub +OAUTH_GITHUB_ID=OAuth GitHub ID OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Pojdite na to stran , da ustvarite ali pridobite svoj ID in skrivnost OAuth OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=Skrivnost OAuth +OAuthProviderAdded=Dodan ponudnik OAuth +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Vnos OAuth za tega ponudnika in oznako že obstaja +URLOfServiceForAuthorization=URL, ki ga zagotavlja storitev OAuth za preverjanje pristnosti +Scopes=Dovoljenja (obseg) +ScopeUndefined=Dovoljenja (obseg) nedefinirana (glejte prejšnji zavihek) diff --git a/htdocs/langs/sl_SI/opensurvey.lang b/htdocs/langs/sl_SI/opensurvey.lang index d5162ad1512..284a3337aff 100644 --- a/htdocs/langs/sl_SI/opensurvey.lang +++ b/htdocs/langs/sl_SI/opensurvey.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - opensurvey Survey=Anketa Surveys=Ankete -OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select the type of poll... +OrganizeYourMeetingEasily=Enostavno organizirajte svoja srečanja in ankete. Najprej izberite vrsto ankete ... NewSurvey=Nova anketa OpenSurveyArea=Področje anket AddACommentForPoll=V anketo lahko dodate komentar... @@ -11,7 +11,7 @@ PollTitle=Naziv ankete ToReceiveEMailForEachVote=Prejmi email za vsak glas TypeDate=Tip po datumih TypeClassic=Standardni tip -OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +OpenSurveyStep2=Izberite svoje datume med prostimi dnevi (sivo). Izbrani dnevi so zeleni. Preklic izbranega dne lahko prekličete s ponovnim klikom nanj RemoveAllDays=Odstranite vse dni CopyHoursOfFirstDay=Kopirajte ure prvega dne RemoveAllHours=Odstranite vse ure @@ -35,7 +35,7 @@ TitleChoice=Naziv izbora ExportSpreadsheet=Izvozi preglednico rezultatov ExpireDate=Omejitveni datum NbOfSurveys=Število anket -NbOfVoters=No. of voters +NbOfVoters=Št. volivcev SurveyResults=Rezultati PollAdminDesc=Z gumbom "Uredi" lahko spremenite vse vrstice glasovanja v tej anketi. Lahko tudi odstranite stolpec ali vrstico %s. Z %s lahko tudi dodate nov stolpec. 5MoreChoices=Še 5 možnosti @@ -48,16 +48,16 @@ AddEndHour=Dodaj uro zaključka votes=glas(ovi) NoCommentYet=Za to anketo še ni bilo nobenih komentarjev CanComment=Glasovalci lahko komentirajo v anketi -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +YourVoteIsPrivate=Ta anketa je zasebna, nihče ne more videti vašega glasovanja. +YourVoteIsPublic=Ta anketa je javna, vsakdo s povezavo lahko vidi vaš glas. CanSeeOthersVote=Glasovalci lahko vidojo glasove ostalih -SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:
    - empty,
    - "8h", "8H" or "8:00" to give a meeting's start hour,
    - "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
    - "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +SelectDayDesc=Za vsak izbrani dan lahko izberete ali ne ure sestanka v naslednji obliki:
    - prazno,
    - "8h", "8H" ali "8:00", da navedete uro začetka sestanka,
    - "8- 11", "8h-11h", "8H-11H" ali "8:00-11:00" za podajanje začetne in končne ure sestanka,
    - "8h15-11h15", "8H15-11H15" ali "8: 15-11:15" za isto stvar, vendar z minutami. BackToCurrentMonth=Nazaj na trenutni mesec ErrorOpenSurveyFillFirstSection=Niste izpolnili prvega dela ustvarjanja ankete ErrorOpenSurveyOneChoice=Vnesite vsaj eno izbiro ErrorInsertingComment=Prišlo je do napake pri vnosu vašega komentarja MoreChoices=Vnesite več možnih izbir za glasovalce -SurveyExpiredInfo=The poll has been closed or voting delay has expired. +SurveyExpiredInfo=Glasovanje je bilo zaprto ali pa je potekel zamik glasovanja. EmailSomeoneVoted=%s je izpolnil vrstico.\nVašo anketo lahko najdete na povezavi: \n%s -ShowSurvey=Show survey -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment +ShowSurvey=Pokaži anketo +UserMustBeSameThanUserUsedToVote=Za objavo komentarja morate glasovati in uporabiti isto uporabniško ime kot tisti, ki je glasoval diff --git a/htdocs/langs/sl_SI/orders.lang b/htdocs/langs/sl_SI/orders.lang index 7ec6cba929b..ba30655ec67 100644 --- a/htdocs/langs/sl_SI/orders.lang +++ b/htdocs/langs/sl_SI/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Naročilo je bilo že odprto, povezano s tem predlogom, zato ni bilo samodejno ustvarjeno nobeno drugo naročilo OrdersArea=Področje naročil kupcev SuppliersOrdersArea=Področje naročil dobaviteljem OrderCard=Kartica naročila @@ -17,8 +18,8 @@ ToOrder=Potrebno naročiti MakeOrder=Izdelaj naročilo SupplierOrder=Nabavni nalog SuppliersOrders=Nabavni nalogi -SaleOrderLines=Sales order lines -PurchaseOrderLines=Puchase order lines +SaleOrderLines=Vrstice prodajnih naročil +PurchaseOrderLines=Vrstice nakupnih naročil SuppliersOrdersRunning=Trenutni nabavni nalogi CustomerOrder=Naročilo CustomersOrders=Naročila @@ -68,6 +69,8 @@ CreateOrder=Kreiraj naročilo RefuseOrder=Zavrni naročilo ApproveOrder=Odobri naročilo Approve2Order=Odobri naročilo (drugi nivo) +UserApproval=Uporabnik za odobritev +UserApproval2=Uporabnik za odobritev (druga raven) ValidateOrder=Potrdi naročilo UnvalidateOrder=Razveljavi potrditev naročila DeleteOrder=Briši naročilo @@ -102,6 +105,8 @@ ConfirmCancelOrder=Ali želite preklicati naročilo? ConfirmMakeOrder=Potrdite, da ste ustvarili naročilo dne %s. GenerateBill=Kreiraj račun ClassifyShipped=Označi kot dobavljeno +PassedInShippedStatus=tajno dostavljeno +YouCantShipThis=Tega ne morem klasificirati. Preverite uporabniška dovoljenja DraftOrders=Osnutki naročil DraftSuppliersOrders=Nabavni nalogi v osnutku OnProcessOrders=Naročila v obdelavi @@ -124,8 +129,8 @@ SupplierOrderReceivedInDolibarr=Nabavni nalog %s prejet %s SupplierOrderSubmitedInDolibarr=Nabavni nalog oddan %s SupplierOrderClassifiedBilled=Nabavni nalog %s zaračunan OtherOrders=Ostala naročila -SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderValidatedAndApproved=Naročilo dobavitelja je potrjeno in odobreno: %s +SupplierOrderValidated=Naročilo dobavitelja je potrjeno: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Predstavnik, ki sledi naročilu TypeContact_commande_internal_SHIPPING=Referent za sledenje odpreme @@ -134,9 +139,9 @@ TypeContact_commande_external_SHIPPING=Kontakt za dobave pri kupcu TypeContact_commande_external_CUSTOMER=Kontakt za sledenje naročila pri kupcu TypeContact_order_supplier_internal_SALESREPFOLL=Predstavnik, ki sledi nabavnemu nalogu TypeContact_order_supplier_internal_SHIPPING=Referent za sledenje odpreme od dobavitelja -TypeContact_order_supplier_external_BILLING=Dobaviteljeva kontaktna oseba za fakture -TypeContact_order_supplier_external_SHIPPING=Dobaviteljeva kontaktna oseba za dobave -TypeContact_order_supplier_external_CUSTOMER=Dobaviteljeva kontaktna oseba za sledenje naročila +TypeContact_order_supplier_external_BILLING=Dobaviteljev stik za račune +TypeContact_order_supplier_external_SHIPPING=Dobaviteljev stik za pošiljanje +TypeContact_order_supplier_external_CUSTOMER=Dobaviteljev stik za sledenje naročilu Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Konstanta COMMANDE_SUPPLIER_ADDON ni definirana Error_COMMANDE_ADDON_NotDefined=Konstanta COMMANDE_ADDON ni definirana Error_OrderNotChecked=Ni izbranih naročil za račun @@ -153,7 +158,7 @@ PDFEdisonDescription=Vzorec enostavnega naročila PDFProformaDescription=Popoln vzorec predloge predračuna CreateInvoiceForThisCustomer=Zaračunaj naročila CreateInvoiceForThisSupplier=Zaračunaj naročila -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisReceptions=Sprejem računov NoOrdersToInvoice=Ni naročil, ki bi jih lahko zaračunali CloseProcessedOrdersAutomatically=Označi vsa izbrana naročila kot "Procesirano" OrderCreation=Ustvarjanje naročila @@ -166,7 +171,7 @@ OptionToSetOrderBilledNotEnabled=V modulu Delovni tokovi (Workflow) ni označeno IfValidateInvoiceIsNoOrderStayUnbilled=Dokler račun ni potrjen, naročilo ostane v stanju 'Nezaračunano'. CloseReceivedSupplierOrdersAutomatically=Avtomatsko zapri naročilo v status "%s", če so vsi artikli prevzeti. SetShippingMode=Izberi način pošiljanja -WithReceptionFinished=With reception finished +WithReceptionFinished=S sprejemom končanim #### supplier orders status StatusSupplierOrderCanceledShort=Preklicano StatusSupplierOrderDraftShort=Osnutek diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index a6f0c13b085..1bed7277c30 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -1,52 +1,54 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Varnostna koda -NumberingShort=N° +NumberingShort=št Tools=Orodja TMenuTools=Orodja -ToolsDesc=All tools not included in other menu entries are grouped here.
    All the tools can be accessed via the left menu. +ToolsDesc=Tukaj so združena vsa orodja, ki niso vključena v druge vnose v meniju.
    Do vseh orodij lahko dostopate prek levega menija. Birthday=Rojstni dan BirthdayAlertOn=Vklopljeno opozorilo na rojstni dan BirthdayAlertOff=Izklopljeno opozorilo na rojstni dan -TransKey=Translation of the key TransKey -MonthOfInvoice=Month (number 1-12) of invoice date -TextMonthOfInvoice=Month (text) of invoice date -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date -TextPreviousMonthOfInvoice=Previous month (text) of invoice date -NextMonthOfInvoice=Following month (number 1-12) of invoice date -TextNextMonthOfInvoice=Following month (text) of invoice date -PreviousMonth=Previous month -CurrentMonth=Current month -ZipFileGeneratedInto=Zip file generated into %s. -DocFileGeneratedInto=Doc file generated into %s. -JumpToLogin=Disconnected. Go to login page... -MessageForm=Message on online payment form -MessageOK=Message on the return page for a validated payment -MessageKO=Message on the return page for a canceled payment -ContentOfDirectoryIsNotEmpty=Content of this directory is not empty. -DeleteAlsoContentRecursively=Check to delete all content recursively -PoweredBy=Powered by -YearOfInvoice=Year of invoice date -PreviousYearOfInvoice=Previous year of invoice date -NextYearOfInvoice=Following year of invoice date -DateNextInvoiceBeforeGen=Date of next invoice (before generation) -DateNextInvoiceAfterGen=Date of next invoice (after generation) -GraphInBarsAreLimitedToNMeasures=Grapics are limited to %s measures in 'Bars' mode. The mode 'Lines' was automatically selected instead. -OnlyOneFieldForXAxisIsPossible=Only 1 field is currently possible as X-Axis. Only the first selected field has been selected. -AtLeastOneMeasureIsRequired=At least 1 field for measure is required -AtLeastOneXAxisIsRequired=At least 1 field for X-Axis is required -LatestBlogPosts=Latest Blog Posts -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail -Notify_ORDER_VALIDATE=Sales order validated -Notify_ORDER_SENTBYMAIL=Sales order sent by mail -Notify_ORDER_SUPPLIER_SENTBYMAIL=Purchase order sent by email -Notify_ORDER_SUPPLIER_VALIDATE=Purchase order recorded -Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved -Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused +TransKey=Prevod ključa TransKey +MonthOfInvoice=Mesec (številka 1–12) datuma računa +TextMonthOfInvoice=Mesec (besedilo) datuma računa +PreviousMonthOfInvoice=Prejšnji mesec (številka 1–12) datuma računa +TextPreviousMonthOfInvoice=Prejšnji mesec (besedilo) datuma računa +NextMonthOfInvoice=Naslednji mesec (številka 1–12) datuma računa +TextNextMonthOfInvoice=Naslednji mesec (besedilo) datuma računa +PreviousMonth=Prejšnji mesec +CurrentMonth=Trenutni mesec +ZipFileGeneratedInto=Datoteka zip, ustvarjena v %s . +DocFileGeneratedInto=Datoteka dokumenta, ustvarjena v %s . +JumpToLogin=Prekinjena povezava. Pojdi na stran za prijavo ... +MessageForm=Sporočilo na spletnem plačilnem obrazcu +MessageOK=Sporočilo na povratni strani za potrjeno plačilo +MessageKO=Sporočilo na povratni strani za preklicano plačilo +ContentOfDirectoryIsNotEmpty=Vsebina tega imenika ni prazna. +DeleteAlsoContentRecursively=Označite, če želite rekurzivno izbrisati vso vsebino +PoweredBy=Poganja ga +YearOfInvoice=Leto datuma računa +PreviousYearOfInvoice=Prejšnje leto datuma računa +NextYearOfInvoice=Naslednje leto datuma računa +DateNextInvoiceBeforeGen=Datum naslednjega računa (pred generiranjem) +DateNextInvoiceAfterGen=Datum naslednjega računa (po izdelavi) +GraphInBarsAreLimitedToNMeasures=Grafike so omejene na %s mere v načinu 'Bars'. Namesto tega je bil samodejno izbran način 'Črte'. +OnlyOneFieldForXAxisIsPossible=Samo 1 polje je trenutno možno kot os X. Izbrano je samo prvo izbrano polje. +AtLeastOneMeasureIsRequired=Zahtevano je vsaj 1 polje za meritev +AtLeastOneXAxisIsRequired=Zahtevano je vsaj 1 polje za os X +LatestBlogPosts=Najnovejše objave v spletnem dnevniku +notiftouser=Uporabnikom +notiftofixedemail=Na fiksno pošto +notiftouserandtofixedemail=Na uporabniško in fiksno pošto +Notify_ORDER_VALIDATE=Prodajno naročilo potrjeno +Notify_ORDER_SENTBYMAIL=Prodajno naročilo poslano po pošti +Notify_ORDER_SUPPLIER_SENTBYMAIL=Naročilo poslano po elektronski pošti +Notify_ORDER_SUPPLIER_VALIDATE=Naročilo zabeleženo +Notify_ORDER_SUPPLIER_APPROVE=Naročilo odobreno +Notify_ORDER_SUPPLIER_REFUSE=Naročilo zavrnjeno Notify_PROPAL_VALIDATE=Potrjena ponudba kupcu -Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed -Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_SIGNED=Ponudba stranke zaprta podpisana +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page +Notify_PROPAL_CLOSE_REFUSED=Predlog stranke zaprt zavrnjen +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Komercialna ponudba poslana po e-pošti Notify_WITHDRAW_TRANSMIT=Nakazilo prenosa Notify_WITHDRAW_CREDIT=Nakazilo kredita @@ -55,85 +57,85 @@ Notify_COMPANY_CREATE=Ustvarjen partner Notify_COMPANY_SENTBYMAIL=Pošta poslana s kartice partnerja Notify_BILL_VALIDATE=Potrjen račun Notify_BILL_UNVALIDATE=Račun za kupca ni potrjen -Notify_BILL_PAYED=Customer invoice paid +Notify_BILL_PAYED=Plačan račun stranke Notify_BILL_CANCEL=Preklican račun kupca Notify_BILL_SENTBYMAIL=Račun poslan po e-pošti -Notify_BILL_SUPPLIER_VALIDATE=Vendor invoice validated -Notify_BILL_SUPPLIER_PAYED=Vendor invoice paid -Notify_BILL_SUPPLIER_SENTBYMAIL=Vendor invoice sent by mail -Notify_BILL_SUPPLIER_CANCELED=Vendor invoice cancelled +Notify_BILL_SUPPLIER_VALIDATE=Prejeti račun je potrjen +Notify_BILL_SUPPLIER_PAYED=Prejeti račun je plačan +Notify_BILL_SUPPLIER_SENTBYMAIL=Prejeti račun je poslan po pošti +Notify_BILL_SUPPLIER_CANCELED=Prejeti račun preklican Notify_CONTRACT_VALIDATE=Potrjena pogodba Notify_FICHINTER_VALIDATE=Potrjena intervencija -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention +Notify_FICHINTER_ADD_CONTACT=Intervenciji dodan kontakt Notify_FICHINTER_SENTBYMAIL=Intervencija poslana po EMailu Notify_SHIPPING_VALIDATE=Potrjena odprema Notify_SHIPPING_SENTBYMAIL=Pošiljka poslana po pošti Notify_MEMBER_VALIDATE=Potrjeno članstvo Notify_MEMBER_MODIFY=Spremenjen član Notify_MEMBER_SUBSCRIPTION=Vpisano članstvo -Notify_MEMBER_RESILIATE=Member terminated +Notify_MEMBER_RESILIATE=Član prekinjen Notify_MEMBER_DELETE=Izbris iz članstva Notify_PROJECT_CREATE=Ustvarjanje projekta Notify_TASK_CREATE=Ustvarjena naloga Notify_TASK_MODIFY=Spremenjena naloga Notify_TASK_DELETE=Izbrisana naloga -Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required) -Notify_EXPENSE_REPORT_APPROVE=Expense report approved -Notify_HOLIDAY_VALIDATE=Leave request validated (approval required) -Notify_HOLIDAY_APPROVE=Leave request approved -Notify_ACTION_CREATE=Added action to Agenda +Notify_EXPENSE_REPORT_VALIDATE=Potrjeno poročilo o stroških (potrebna je odobritev) +Notify_EXPENSE_REPORT_APPROVE=Potrjeno poročilo o stroških +Notify_HOLIDAY_VALIDATE=Pusti zahtevo potrjeno (potrebna je odobritev) +Notify_HOLIDAY_APPROVE=Zahteva za dopust odobrena +Notify_ACTION_CREATE=Agendi dodano dejanje SeeModuleSetup=Glejte nastavitev modula %s NbOfAttachedFiles=Število pripetih datotek/dokumentov TotalSizeOfAttachedFiles=Skupna velikost pripetih datotek/dokumentov MaxSize=Največja velikost AttachANewFile=Pripni novo datoteko/dokument LinkedObject=Povezani objekti -NbOfActiveNotifications=Number of notifications (no. of recipient emails) -PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe lines are separated by a carriage return.\n\n__USER_SIGNATURE__ -PredefinedMailTestHtml=__(Hello)__
    This is a test mail sent to __EMAIL__ (the word test must be in bold).
    The lines are separated by a carriage return.

    __USER_SIGNATURE__ -PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find commercial proposal __REF__ attached \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find price request __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find our order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find shipping __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find intervention __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n -PredefinedMailContentGeneric=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendActionComm=Event reminder "__EVENT_LABEL__" on __EVENT_DATE__ at __EVENT_TIME__

    This is an automatic message, please do not reply. -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. -ChooseYourDemoProfil=Choose the demo profile that best suits your needs... -ChooseYourDemoProfilMore=...or build your own profile
    (manual module selection) +NbOfActiveNotifications=Število obvestil (št. e-poštnih sporočil prejemnikov) +PredefinedMailTest=__(Zdravo)__\nTo je testno sporočilo, poslano na __EMAIL__.\nVrstici sta ločeni s povratnim znakom.\n\n__USER_SIGNATURE__ +PredefinedMailTestHtml=__(Pozdravljeni)__
    To je testna pošta, poslana na __EMAIL__ (beseda test mora biti v krepkem tisku).
    Vrstici sta ločeni s povratnim znakom.

    __USER_SIGNATURE__ +PredefinedMailContentContract=__(Zdravo)__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__(Zdravo)__\n\nPriložen je račun __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__(Zdravo)__\n\nOpozarjamo vas, da račun __REF__ očitno ni bil plačan. V opomin je priložena kopija računa.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=__(Zdravo)__\n\nV priponki najdete komercialni predlog __REF__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(Zdravo)__\n\nPriloženo je povpraševanje po ceni __REF__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Zdravo)__\n\nNaročilo __REF__ je priloženo\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Zdravo)__\n\nPriloženo je naše naročilo __REF__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Zdravo)__\n\nPriložen je račun __REF__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Zdravo)__\n\nPriložena je pošiljka __REF__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Zdravo)__\n\nPriložena je intervencija __REF__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentLink=Lahko kliknete spodnjo povezavo, da izvedete plačilo, če še ni izvedeno.\n\n%s\n\n +PredefinedMailContentGeneric=__(Zdravo)__\n\n\n__(s spoštovanjem)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendActionComm=Opomnik dogodka »__EVENT_LABEL__« dne __EVENT_DATE__ ob __EVENT_TIME__

    To je samodejno sporočilo, ne odgovarjajte. +DemoDesc=Dolibarr je kompakten ERP/CRM, ki podpira več poslovnih modulov. Predstavitev, ki prikazuje vse module, nima smisla, saj se ta scenarij nikoli ne zgodi (na voljo jih je nekaj sto). Na voljo je torej več demo profilov. +ChooseYourDemoProfil=Izberite demo profil, ki najbolj ustreza vašim potrebam... +ChooseYourDemoProfilMore=... ali ustvarite svoj profil
    (ročna izbira modula) DemoFundation=Urejanje članov ustanove DemoFundation2=Urejanje članov in bančnih računov ustanove -DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash box -DemoCompanyProductAndStocks=Shop selling products with Point Of Sales -DemoCompanyManufacturing=Company manufacturing products -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyServiceOnly=Samo podjetje ali samostojna prodajna storitev +DemoCompanyShopWithCashDesk=Upravljajte trgovino z blagajno +DemoCompanyProductAndStocks=Nakupujte s prodajo izdelkov na prodajnem mestu +DemoCompanyManufacturing=Podjetje, ki proizvaja izdelke +DemoCompanyAll=Podjetje z več dejavnostmi (vsi glavni moduli) CreatedBy=Kreiral %s ModifiedBy=Spremenil %s ValidatedBy=Potrdil %s -SignedBy=Signed by %s +SignedBy=Podpisal %s ClosedBy=Zaključil %s CreatedById=ID uporabnika, ki je ustvaril -ModifiedById=User id who made latest change +ModifiedById=ID uporabnika, ki je naredil zadnjo spremembo ValidatedById=ID uporabnika, ki je potrdil CanceledById=ID uporabnika, ki je preklical ClosedById=ID uporabnika, ki je zaključil CreatedByLogin=Ime uporabika, ki je ustvaril -ModifiedByLogin=User login who made latest change +ModifiedByLogin=Prijava uporabnika, ki je naredil zadnjo spremembo ValidatedByLogin=Ime uporabnika, ki je potrdil CanceledByLogin=Ime uporabnika, ki je preklical ClosedByLogin=Ime uporabnika, ki je zaključil FileWasRemoved=Datoteka je bila izbrisana DirWasRemoved=Mapa je bila odstranjena -FeatureNotYetAvailable=Feature not yet available in the current version -FeatureNotAvailableOnDevicesWithoutMouse=Feature not available on devices without mouse -FeaturesSupported=Supported features +FeatureNotYetAvailable=Funkcija še ni na voljo v trenutni različici +FeatureNotAvailableOnDevicesWithoutMouse=Funkcija ni na voljo v napravah brez miške +FeaturesSupported=Podprte funkcije Width=Širina Height=Višina Depth=Globina @@ -180,48 +182,52 @@ SizeUnitinch=inč SizeUnitfoot=čevelj SizeUnitpoint=točka BugTracker=Sledenje hrošču -SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +SendNewPasswordDesc=Ta obrazec vam omogoča, da zahtevate novo geslo. Poslano bo na vaš e-poštni naslov.
    Sprememba bo začela veljati, ko kliknete potrditveno povezavo v e-poštnem sporočilu.
    Preverite svoj nabiralnik. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Nazaj na stran za prijavo AuthenticationDoesNotAllowSendNewPassword=Preverjanje pristnosti je %s.
    V tem načinu Dolibarr ne more vedeti, niti spremeniti vašega gesla.
    Če želite spremeniti geslo, se obrnite na vašega sistemskega administratorja. -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. +EnableGDLibraryDesc=Za uporabo te možnosti namestite ali omogočite knjižnico GD v svoji namestitvi PHP. ProfIdShortDesc=Prof Id %s je informacija, odvisna od države partnerja.
    Na primer za državo %s, je koda %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics for sum of qty of products/services -StatsByNumberOfEntities=Statistics for number of referring entities (no. of invoices, or orders...) -NumberOfProposals=Number of proposals -NumberOfCustomerOrders=Number of sales orders -NumberOfCustomerInvoices=Number of customer invoices -NumberOfSupplierProposals=Number of vendor proposals -NumberOfSupplierOrders=Number of purchase orders -NumberOfSupplierInvoices=Number of vendor invoices -NumberOfContracts=Number of contracts -NumberOfMos=Number of manufacturing orders -NumberOfUnitsProposals=Number of units on proposals -NumberOfUnitsCustomerOrders=Number of units on sales orders -NumberOfUnitsCustomerInvoices=Number of units on customer invoices -NumberOfUnitsSupplierProposals=Number of units on vendor proposals -NumberOfUnitsSupplierOrders=Number of units on purchase orders -NumberOfUnitsSupplierInvoices=Number of units on vendor invoices -NumberOfUnitsContracts=Number of units on contracts -NumberOfUnitsMos=Number of units to produce in manufacturing orders -EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. +StatsByNumberOfUnits=Statistika za vsoto količin izdelkov/storitev +StatsByNumberOfEntities=Statistika za število napotitvenih subjektov (št. računov ali naročil...) +NumberOfProposals=Število predlogov +NumberOfCustomerOrders=Število prodajnih naročil +NumberOfCustomerInvoices=Število računov strank +NumberOfSupplierProposals=Število ponudb ponudnikov +NumberOfSupplierOrders=Število naročilnic +NumberOfSupplierInvoices=Število prejetih računov +NumberOfContracts=Število pogodb +NumberOfMos=Število proizvodnih naročil +NumberOfUnitsProposals=Število enot na predlogih +NumberOfUnitsCustomerOrders=Število enot na prodajnih naročilih +NumberOfUnitsCustomerInvoices=Število enot na računih strank +NumberOfUnitsSupplierProposals=Število enot na ponudbi +NumberOfUnitsSupplierOrders=Število enot na naročilnici +NumberOfUnitsSupplierInvoices=Število enot na prejetih računih +NumberOfUnitsContracts=Število enot na pogodbah +NumberOfUnitsMos=Število enot za proizvodnjo v proizvodnih naročilih +EMailTextInterventionAddedContact=Dodeljena vam je nova intervencija %s. EMailTextInterventionValidated=Potrjena intervencija %s -EMailTextInvoiceValidated=Invoice %s has been validated. -EMailTextInvoicePayed=Invoice %s has been paid. -EMailTextProposalValidated=Proposal %s has been validated. -EMailTextProposalClosedSigned=Proposal %s has been closed signed. -EMailTextOrderValidated=Order %s has been validated. -EMailTextOrderApproved=Order %s has been approved. -EMailTextOrderValidatedBy=Order %s has been recorded by %s. -EMailTextOrderApprovedBy=Order %s has been approved by %s. -EMailTextOrderRefused=Order %s has been refused. -EMailTextOrderRefusedBy=Order %s has been refused by %s. -EMailTextExpeditionValidated=Shipping %s has been validated. -EMailTextExpenseReportValidated=Expense report %s has been validated. -EMailTextExpenseReportApproved=Expense report %s has been approved. -EMailTextHolidayValidated=Leave request %s has been validated. -EMailTextHolidayApproved=Leave request %s has been approved. -EMailTextActionAdded=The action %s has been added to the Agenda. +EMailTextInvoiceValidated=Račun %s je bil potrjen. +EMailTextInvoicePayed=Račun %s je plačan. +EMailTextProposalValidated=Predlog %s je bil potrjen. +EMailTextProposalClosedSigned=Predlog %s je bil podpisan zaprt. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. +EMailTextOrderValidated=Naročilo %s je potrjeno. +EMailTextOrderApproved=Naročilo %s je bilo odobreno. +EMailTextOrderValidatedBy=Naročilo %s je zabeležil %s. +EMailTextOrderApprovedBy=Naročilo %s je odobril %s. +EMailTextOrderRefused=Naročilo %s je bilo zavrnjeno. +EMailTextOrderRefusedBy=Naročilo %s je zavrnil %s. +EMailTextExpeditionValidated=Pošiljanje %s je potrjeno. +EMailTextExpenseReportValidated=Poročilo o stroških %s je bilo potrjeno. +EMailTextExpenseReportApproved=Poročilo o stroških %s je bilo odobreno. +EMailTextHolidayValidated=Zahteva za dopust %s je bila potrjena. +EMailTextHolidayApproved=Zahteva za dopust %s je bila odobrena. +EMailTextActionAdded=Ukrep %s je bil dodan na dnevni red. ImportedWithSet=Nabor podatkov za uvoz DolibarrNotification=Avtomatsko obvestilo ResizeDesc=Vnesite novo širino ALI novo višino. Razmerje se bo med spreminjanjem velikosti ohranilo... @@ -229,7 +235,7 @@ NewLength=Nova širina NewHeight=Nova višina NewSizeAfterCropping=Nova velikost po obrezovanju DefineNewAreaToPick=Določitev novega območja na sliki za pobiranje (levi klik na sliko in vleka kurzorja do nasprotnega vogala) -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image +CurrentInformationOnImage=To orodje je bilo zasnovano za pomoč pri spreminjanju velikosti ali obrezovanju slike. To so informacije o trenutno urejeni sliki ImageEditor=Obdelovalnik slik YouReceiveMailBecauseOfNotification=To sporočilo ste prejeli, ker je bil vaš email dodan na seznam interesentov za določene dogodke v program %s od %s. YouReceiveMailBecauseOfNotification2=Ta dogodek je naslednji: @@ -242,65 +248,92 @@ StartUpload=Zaženi prenos CancelUpload=Prekliči prenos FileIsTooBig=Datoteke so prevelike PleaseBePatient=Prosim, bodite potrpežljivi... -NewPassword=New password -ResetPassword=Reset password -RequestToResetPasswordReceived=A request to change your password has been received. +NewPassword=Novo geslo +ResetPassword=Ponastavitev gesla +RequestToResetPasswordReceived=Prejeli smo zahtevo za spremembo gesla. NewKeyIs=To so vaši novi podatki za prijavo NewKeyWillBe=Vaši novi podatki za prijavo v program bodo ClickHereToGoTo=K.iknite tukaj za vstop v %s YouMustClickToChange=Vendar morate najprej klikniti na naslednji link za potrditev spremembe gesla -ConfirmPasswordChange=Confirm password change +ConfirmPasswordChange=Potrdite spremembo gesla ForgetIfNothing=Če niste zahtevali te spremembe, enostavno pozabite na ta email. Vaši prijavni podatki so varno shranjeni. IfAmountHigherThan=Če je znesek večji od %s SourcesRepository=Shramba virov -Chart=Chart -PassEncoding=Password encoding -PermissionsAdd=Permissions added -PermissionsDelete=Permissions removed -YourPasswordMustHaveAtLeastXChars=Your password must have at least %s chars -PasswordNeedAtLeastXUpperCaseChars=The password need at least %s upper case chars -PasswordNeedAtLeastXDigitChars=The password need at least %s numeric chars -PasswordNeedAtLeastXSpecialChars=The password need at least %s special chars -PasswordNeedNoXConsecutiveChars=The password must not have %s consecutive similar chars -YourPasswordHasBeenReset=Your password has been reset successfully -ApplicantIpAddress=IP address of applicant -SMSSentTo=SMS sent to %s -MissingIds=Missing ids -ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s -ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s -TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s -OpeningHoursFormatDesc=Use a - to separate opening and closing hours.
    Use a space to enter different ranges.
    Example: 8-12 14-18 -SuffixSessionName=Suffix for session name -LoginWith=Login with %s +Chart=grafikon +PassEncoding=Kodiranje gesla +PermissionsAdd=Dodana dovoljenja +PermissionsDelete=Dovoljenja odstranjena +YourPasswordMustHaveAtLeastXChars=Vaše geslo mora imeti vsaj %s znakov +PasswordNeedAtLeastXUpperCaseChars=Geslo potrebuje vsaj %s velike črke +PasswordNeedAtLeastXDigitChars=Geslo potrebuje vsaj %s številskih znakov +PasswordNeedAtLeastXSpecialChars=Geslo potrebuje vsaj %s posebne znake +PasswordNeedNoXConsecutiveChars=Geslo ne sme imeti %s zaporednih podobnih znakov +YourPasswordHasBeenReset=Vaše geslo je bilo uspešno ponastavljeno +ApplicantIpAddress=IP naslov prijavitelja +SMSSentTo=SMS poslan na %s +MissingIds=Manjkajoči ID-ji +ThirdPartyCreatedByEmailCollector=Tretja oseba, ki jo je ustvaril zbiralec e-pošte iz e-pošte MSGID %s +ContactCreatedByEmailCollector=Kontakt/naslov, ki ga je ustvaril zbiralec e-pošte iz e-pošte MSGID %s +ProjectCreatedByEmailCollector=Projekt, ki ga je ustvaril zbiralec e-pošte iz e-pošte MSGID %s +TicketCreatedByEmailCollector=Vstopnico je ustvaril zbiralec e-pošte iz e-poštnega naslova MSGID %s +OpeningHoursFormatDesc=Z - ločite odpiralni in zapiralni čas.
    Za vnos različnih obsegov uporabite presledek.
    Primer: 8-12 14-18 +SuffixSessionName=Pripona za ime seje +LoginWith=Prijavite se z %s ##### Export ##### ExportsArea=Področje izvoza AvailableFormats=Možni formati LibraryUsed=Uporabljena knjižnica -LibraryVersion=Library version +LibraryVersion=Različica knjižnice ExportableDatas=Podatki za izvoz NoExportableData=Ni podatkov za izvoz (ni nalčoženih modolov za izvoz podatkov, ali ni ustreznega dovoljenja) ##### External sites ##### -WebsiteSetup=Setup of module website -WEBSITE_PAGEURL=URL of page +WebsiteSetup=Postavitev spletne strani modula +WEBSITE_PAGEURL=URL strani WEBSITE_TITLE=Naziv WEBSITE_DESCRIPTION=Opis -WEBSITE_IMAGE=Image -WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a thumbnail in a list of blog posts). Use __WEBSITE_KEY__ in the path if path depends on website name (for example: image/__WEBSITE_KEY__/stories/myimage.png). -WEBSITE_KEYWORDS=Keywords -LinesToImport=Lines to import +WEBSITE_IMAGE=Slika +WEBSITE_IMAGEDesc=Relativna pot slikovnega medija. To lahko pustite prazno, ker se redko uporablja (lahko ga uporabi dinamična vsebina za prikaz sličice na seznamu objav v spletnem dnevniku). Uporabite __WEBSITE_KEY__ v poti, če je pot odvisna od imena spletnega mesta (na primer: image/__WEBSITE_KEY__/stories/myimage.png). +WEBSITE_KEYWORDS=Ključne besede +LinesToImport=Vrstice za uvoz -MemoryUsage=Memory usage -RequestDuration=Duration of request -ProductsPerPopularity=Products/Services by popularity -PopuProp=Products/Services by popularity in Proposals -PopuCom=Products/Services by popularity in Orders -ProductStatistics=Products/Services Statistics -NbOfQtyInOrders=Qty in orders -SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... +MemoryUsage=Poraba pomnilnika +RequestDuration=Trajanje zahteve +ProductsPerPopularity=Izdelki/storitve po priljubljenosti +PopuProp=Izdelki/storitve po priljubljenosti v ponudbah +PopuCom=Izdelki/storitve po priljubljenosti v naročilih +ProductStatistics=Statistika izdelkov/storitev +NbOfQtyInOrders=Količina v naročilih +SelectTheTypeOfObjectToAnalyze=Izberite predmet za ogled njegove statistike ... -ConfirmBtnCommonContent = Are you sure you want to "%s" ? -ConfirmBtnCommonTitle = Confirm your action +ConfirmBtnCommonContent = Ali ste prepričani, da želite "%s"? +ConfirmBtnCommonTitle = Potrdite svoje dejanje CloseDialog = Zapri -Autofill = Autofill +Autofill = Samodejno izpolnjevanje + +# externalsite +ExternalSiteSetup=Setup se povezujejo na zunanji strani +ExternalSiteURL=URL zunanjega mesta vsebine iframe HTML +ExternalSiteModuleNotComplete=Modul za zunanjo stran ni bil konfiguriran pravilno +ExampleMyMenuEntry=Moj menijski vnos + +# ftp +FTPClientSetup=Nastavitev odjemalskega modula FTP ali SFTP +NewFTPClient=Nova nastavitev povezave FTP/SFTP +FTPArea=Območje FTP/SFTP +FTPAreaDesc=Ta zaslon prikazuje pogled strežnika FTP in SFTP. +SetupOfFTPClientModuleNotComplete=Zdi se, da nastavitev odjemalskega modula FTP ali SFTP ni popolna +FTPFeatureNotSupportedByYourPHP=Vaš PHP ne podpira funkcij FTP ali SFTP +FailedToConnectToFTPServer=Povezava s strežnikom ni uspela (strežnik %s, vrata %s) +FailedToConnectToFTPServerWithCredentials=Prijava v strežnik z določeno prijavo/geslom ni uspela +FTPFailedToRemoveFile=Neuspešna odstranitev datoteke %s. +FTPFailedToRemoveDir=Imenika ni bilo mogoče odstraniti %s : preverite dovoljenja in ali je imenik prazen. +FTPPassiveMode=Pasivni način +ChooseAFTPEntryIntoMenu=V meniju izberite mesto FTP/SFTP ... +FailedToGetFile=Datotek %s ni bilo mogoče pridobiti +ErrorFTPNodisconnect=Napaka pri prekinitvi povezave s strežnikom FTP/SFTP +FileWasUpload=Datoteka %s je bila naložena +FTPFailedToUploadFile=Nalaganje datoteke %s ni uspelo. +AddFolder=Ustvari mapo +FileWasCreateFolder=Mapa %s je ustvarjena +FTPFailedToCreateFolder=Mape ni bilo mogoče ustvariti %s . diff --git a/htdocs/langs/sl_SI/partnership.lang b/htdocs/langs/sl_SI/partnership.lang index 8f0267a28c6..b00f6de7b20 100644 --- a/htdocs/langs/sl_SI/partnership.lang +++ b/htdocs/langs/sl_SI/partnership.lang @@ -16,77 +16,81 @@ # # Generic # -ModulePartnershipName=Partnership management -PartnershipDescription=Module Partnership management -PartnershipDescriptionLong= Module Partnership management -Partnership=Partnership -AddPartnership=Add partnership -CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions -PartnershipCheckBacklink=Partnership: Check referring backlink +ModulePartnershipName=Upravljanje partnerstva +PartnershipDescription=Modul Partnerski management +PartnershipDescriptionLong= Modul Partnerski management +Partnership=Partnerstvo +Partnerships=Partnerships +AddPartnership=Dodajte partnerstvo +CancelPartnershipForExpiredMembers=Partnerstvo: Prekličite partnerstvo članov s potečeno naročnino +PartnershipCheckBacklink=Partnerstvo: Preverite napotitveno povratno povezavo # # Menu # -NewPartnership=New Partnership -ListOfPartnerships=List of partnership +NewPartnership=Novo partnerstvo +NewPartnershipbyWeb= Vaše partnerstvo je bilo uspešno dodano. +ListOfPartnerships=Seznam partnerstev # # Admin page # -PartnershipSetup=Partnership setup -PartnershipAbout=About Partnership -PartnershipAboutPage=Partnership about page -partnershipforthirdpartyormember=Partner status must be set on a 'thirdparty' or a 'member' -PARTNERSHIP_IS_MANAGED_FOR=Partnership managed for -PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks to check -PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb of days before cancelling status of a partnership when a subscription has expired -ReferingWebsiteCheck=Check of website referring -ReferingWebsiteCheckDesc=You can enable a feature to check that your partners has added a backlink to your website domains on their own website. +PartnershipSetup=Postavitev partnerstva +PartnershipAbout=O partnerstvu +PartnershipAboutPage=Partnerstvo o strani +partnershipforthirdpartyormember=Status partnerja mora biti nastavljen na "tretja oseba" ali "član" +PARTNERSHIP_IS_MANAGED_FOR=Partnerstvo upravlja za +PARTNERSHIP_BACKLINKS_TO_CHECK=Povratne povezave za preverjanje +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Število dni pred preklicem statusa partnerstva, ko je naročnina potekla +ReferingWebsiteCheck=Preverjanje napotitve na spletno stran +ReferingWebsiteCheckDesc=Omogočite lahko funkcijo za preverjanje, ali so vaši partnerji dodali povratno povezavo do domen vašega spletnega mesta na svojem spletnem mestu. +PublicFormRegistrationPartnerDesc=Dolibarr vam lahko zagotovi javni URL/spletno mesto, ki zunanjim obiskovalcem omogoča, da zaprosijo za sodelovanje v partnerskem programu. # # Object # -DeletePartnership=Delete a partnership -PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party -PartnershipDedicatedToThisMember=Partnership dedicated to this member +DeletePartnership=Izbrišite partnerstvo +PartnershipDedicatedToThisThirdParty=Partnerstvo, namenjeno tej tretji osebi +PartnershipDedicatedToThisMember=Partnerstvo posvečeno temu članu DatePartnershipStart=Začetni datum DatePartnershipEnd=Končni datum -ReasonDecline=Decline reason -ReasonDeclineOrCancel=Decline reason -PartnershipAlreadyExist=Partnership already exist -ManagePartnership=Manage partnership -BacklinkNotFoundOnPartnerWebsite=Backlink not found on partner website -ConfirmClosePartnershipAsk=Are you sure you want to cancel this partnership? -PartnershipType=Partnership type -PartnershipRefApproved=Partnership %s approved +ReasonDecline=Razlog za zavrnitev +ReasonDeclineOrCancel=Razlog za zavrnitev +PartnershipAlreadyExist=Partnerstvo že obstaja +ManagePartnership=Upravljajte partnerstvo +BacklinkNotFoundOnPartnerWebsite=Povratne povezave ni mogoče najti na partnerskem spletnem mestu +ConfirmClosePartnershipAsk=Ali ste prepričani, da želite preklicati to partnerstvo? +PartnershipType=Vrsta partnerstva +PartnershipRefApproved=Partnerstvo %s odobreno +KeywordToCheckInWebsite=Če želite preveriti, ali je določena ključna beseda prisotna na spletnem mestu posameznega partnerja, to ključno besedo definirajte tukaj +PartnershipDraft=Osnutek +PartnershipAccepted=Sprejeto +PartnershipRefused=Zavrnjeno +PartnershipCanceled=Preklicano +PartnershipManagedFor=Partnerji so # # Template Mail # -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled +SendingEmailOnPartnershipWillSoonBeCanceled=Partnerstvo bo kmalu preklicano +SendingEmailOnPartnershipRefused=Partnerstvo zavrnjeno +SendingEmailOnPartnershipAccepted=Partnerstvo sprejeto +SendingEmailOnPartnershipCanceled=Partnerstvo preklicano -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled +YourPartnershipWillSoonBeCanceledTopic=Partnerstvo bo kmalu preklicano +YourPartnershipRefusedTopic=Partnerstvo zavrnjeno +YourPartnershipAcceptedTopic=Partnerstvo sprejeto +YourPartnershipCanceledTopic=Partnerstvo preklicano -YourPartnershipWillSoonBeCanceledContent=We inform you that your partnership will soon be canceled (Backlink not found) -YourPartnershipRefusedContent=We inform you that your partnership request has been refused. -YourPartnershipAcceptedContent=We inform you that your partnership request has been accepted. -YourPartnershipCanceledContent=We inform you that your partnership has been canceled. +YourPartnershipWillSoonBeCanceledContent=Obveščamo vas, da bo vaše partnerstvo kmalu preklicano (povratne povezave ni mogoče najti) +YourPartnershipRefusedContent=Obveščamo vas, da je bila vaša prošnja za partnerstvo zavrnjena. +YourPartnershipAcceptedContent=Obveščamo vas, da je bila vaša prošnja za partnerstvo sprejeta. +YourPartnershipCanceledContent=Obveščamo vas, da je vaše partnerstvo preklicano. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason +CountLastUrlCheckError=Število napak pri zadnjem preverjanju URL-ja +LastCheckBacklink=Datum zadnjega preverjanja URL-ja +ReasonDeclineOrCancel=Razlog za zavrnitev + +NewPartnershipRequest=Nova zahteva za partnerstvo +NewPartnershipRequestDesc=Ta obrazec vam omogoča, da zaprosite za sodelovanje v enem od naših partnerskih programov. Če potrebujete pomoč pri izpolnjevanju tega obrazca, se obrnite na e-pošto %s . -# -# Status -# -PartnershipDraft=Osnutek -PartnershipAccepted=Accepted -PartnershipRefused=Zavrnjeno -PartnershipCanceled=Preklicano -PartnershipManagedFor=Partners are diff --git a/htdocs/langs/sl_SI/paybox.lang b/htdocs/langs/sl_SI/paybox.lang index 4b3b718cc19..1e1949a4609 100644 --- a/htdocs/langs/sl_SI/paybox.lang +++ b/htdocs/langs/sl_SI/paybox.lang @@ -1,31 +1,30 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=Nastavitev modula za online plačila Paybox -PayBoxDesc=Ta modul omogoča kupcem plačevanje na Paybox. Lahko se uporabi za prosto plačevanje ali za plačilo posameznih Dolibarr postavk (račun, naročilo, ...) +PayBoxDesc=Ta modul ponuja strani, ki strankam omogočajo plačilo na Paybox . To lahko uporabite za brezplačno plačilo ali za plačilo določenega predmeta Dolibarr (račun, naročilo, ...) FollowingUrlAreAvailableToMakePayments=Naslednji URL naslovi so na voljo kupcem za izvedbo plačil Dolibarr postavk PaymentForm=Obrazec za plačilo -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=Dobrodošli v naši spletni plačilni storitvi ThisScreenAllowsYouToPay=Ta zaslon omogoča online plačilo za %s. ThisIsInformationOnPayment=To je informacija o potrebnem plačilu ToComplete=Za dokončanje YourEMail=E-pošta za potrditev plačila Creditor=Upnik PaymentCode=Koda plačila -PayBoxDoPayment=Pay with Paybox +PayBoxDoPayment=Plačajte s Payboxom YouWillBeRedirectedOnPayBox=Preusmerjeni boste na varno Paybox stran za vnos podatkov o vaši kreditni kartici Continue=Naslednji -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. +SetupPayBoxToHavePaymentCreatedAutomatically=Nastavite svoj Paybox z url %s , da se plačilo samodejno ustvari, ko ga potrdi Paybox. YourPaymentHasBeenRecorded=Ta stran potrjuje, da je bilo vaše plačilo sprejeto. Hvala. -YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you. +YourPaymentHasNotBeenRecorded=Vaše plačilo NI bilo zabeleženo in transakcija je bila preklicana. Hvala vam. AccountParameter=Parametri računa UsageParameter=Parametri uporabe InformationToFindParameters=Pomoč pri iskanju informacij računa %s PAYBOX_CGI_URL_V2=Url Paybox CGI modula za plačila -VendorName=Ime prodajalca CSSUrlForPaymentForm=url CSS vzorca obrazca plačila NewPayboxPaymentReceived=Novo Paybox plačilo prejeto NewPayboxPaymentFailed=Zavrnjen poskus novega Paybox plačila -PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail) +PAYBOX_PAYONLINE_SENDEMAIL=E-poštno obvestilo po poskusu plačila (uspešnem ali neuspešnem) PAYBOX_PBX_SITE=Vrednost za PBX SITE PAYBOX_PBX_RANG=Vrednost za PBX Rang PAYBOX_PBX_IDENTIFIANT=Vrednost za PBX ID -PAYBOX_HMAC_KEY=HMAC key +PAYBOX_HMAC_KEY=Ključ HMAC diff --git a/htdocs/langs/sl_SI/paypal.lang b/htdocs/langs/sl_SI/paypal.lang index e3e7642eddd..40a31a3c597 100644 --- a/htdocs/langs/sl_SI/paypal.lang +++ b/htdocs/langs/sl_SI/paypal.lang @@ -1,36 +1,37 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=Nastavitev modula PayPal -PaypalDesc=This module allows payment by customers via PayPal. This can be used for a ad-hoc payment or for a payment related to a Dolibarr object (invoice, order, ...) -PaypalOrCBDoPayment=Pay with PayPal (Card or PayPal) -PaypalDoPayment=Pay with PayPal +PaypalDesc=Ta modul omogoča plačilo strankam preko PayPal . Uporablja se lahko za ad hoc plačilo ali za plačilo v zvezi z objektom Dolibarr (račun, naročilo, ...) +PaypalOrCBDoPayment=Plačajte s PayPal (kartica ali PayPal) +PaypalDoPayment=Plačajte s PayPal PAYPAL_API_SANDBOX=Način test/sandbox PAYPAL_API_USER=API ime uporabnika PAYPAL_API_PASSWORD=API geslo PAYPAL_API_SIGNATURE=API podpis -PAYPAL_SSLVERSION=Curl SSL Version -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer "integral" payment (Credit card+PayPal) or "PayPal" only +PAYPAL_SSLVERSION=Različica SSL Curl +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Ponudite "integralno" plačilo (kreditna kartica+PayPal) ali samo "PayPal". PaypalModeIntegral=Celovito PaypalModeOnlyPaypal=Samo PayPal -ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page +ONLINE_PAYMENT_CSS_URL=Izbirni URL datoteke s slogi CSS na strani za spletno plačilo ThisIsTransactionId=To je ID transakcije: %s -PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email -NewOnlinePaymentReceived=New online payment received -NewOnlinePaymentFailed=New online payment tried but failed -ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail) +PAYPAL_ADD_PAYMENT_URL=Ko pošljete dokument po e-pošti, vključite URL plačila PayPal +NewOnlinePaymentReceived=Prejeto novo spletno plačilo +NewOnlinePaymentFailed=Poskus z novim spletnim plačilom, vendar neuspešen +ONLINE_PAYMENT_SENDEMAIL=E-poštni naslov za obvestila po vsakem poskusu plačila (za uspeh in neuspeh) ReturnURLAfterPayment=URL za vrnitev po izvedenem plačilu -ValidationOfOnlinePaymentFailed=Validation of online payment failed -PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error -SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. -DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. -DetailedErrorMessage=Detailed Error Message -ShortErrorMessage=Short Error Message -ErrorCode=Error Code -ErrorSeverityCode=Error Severity Code -OnlinePaymentSystem=Online payment system -PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode) -PaypalImportPayment=Import PayPal payments -PostActionAfterPayment=Post actions after payments -ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. -ValidationOfPaymentFailed=Validation of payment has failed -CardOwner=Card holder -PayPalBalance=Paypal credit +ValidationOfOnlinePaymentFailed=Preverjanje spletnega plačila ni uspelo +PaymentSystemConfirmPaymentPageWasCalledButFailed=Plačilni sistem je poklical stran za potrditev plačila in je vrnil napako +SetExpressCheckoutAPICallFailed=Klic API-ja SetExpressCheckout ni uspel. +DoExpressCheckoutPaymentAPICallFailed=Klic API-ja DoExpressCheckoutPayment ni uspel. +DetailedErrorMessage=Podrobno sporočilo o napaki +ShortErrorMessage=Kratko sporočilo o napaki +ErrorCode=Napačna koda +ErrorSeverityCode=Koda resnosti napake +OnlinePaymentSystem=Spletni plačilni sistem +PaypalLiveEnabled=PayPal način "v živo" je omogočen (sicer testni/peskovniški način) +PaypalImportPayment=Uvoz plačil PayPal +PostActionAfterPayment=Objavite dejanja po plačilih +ARollbackWasPerformedOnPostActions=Povrnitev je bila izvedena pri vseh dejanjih objave. Dejanja objave morate dokončati ročno, če so potrebna. +ValidationOfPaymentFailed=Potrditev plačila ni uspela +CardOwner=Nosilec kartice +PayPalBalance=Paypal kredit +OnlineSubscriptionPaymentLine=Spletna naročnina, zabeležena dne %s
    Plačano prek %s
    Izvorni naslov IP: %s
    ID transakcije: %s diff --git a/htdocs/langs/sl_SI/printing.lang b/htdocs/langs/sl_SI/printing.lang index ed398b93972..60868cc73ba 100644 --- a/htdocs/langs/sl_SI/printing.lang +++ b/htdocs/langs/sl_SI/printing.lang @@ -1,33 +1,33 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=One click Printing -Module64000Desc=Enable One click Printing System -PrintingSetup=Setup of One click Printing System -PrintingDesc=This module adds a Print button to various modules to allow documents to be printed directly to a printer with no need to open the document into another application. -MenuDirectPrinting=One click Printing jobs -DirectPrint=One click Print +Module64000Name=Tiskanje z enim klikom +Module64000Desc=Omogoči sistem tiskanja z enim klikom +PrintingSetup=Nastavitev sistema tiskanja z enim klikom +PrintingDesc=Ta modul različnim modulom doda gumb Natisni, ki omogoča tiskanje dokumentov neposredno na tiskalnik, ne da bi bilo treba dokument odpreti v drugi aplikaciji. +MenuDirectPrinting=Tiskanje z enim klikom +DirectPrint=Tiskanje z enim klikom PrintingDriverDesc=Konfiguracija spremenljivk za gonilnik tiskalnika ListDrivers=Seznam gonilnikov PrintTestDesc=Seznam tiskalnikov. FileWasSentToPrinter=Datoteka %s je bila poslana na tiskalnik -ViaModule=via the module -NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s. +ViaModule=preko modula +NoActivePrintingModuleFound=Ni aktivnega gonilnika za tiskanje dokumenta. Preverite nastavitev modula %s. PleaseSelectaDriverfromList=Prosimo, izberite gonilnik s seznama. -PleaseConfigureDriverfromList=Please configure the selected driver from list. +PleaseConfigureDriverfromList=Prosimo, konfigurirajte izbrani gonilnik s seznama. SetupDriver=Nastavitev gonilnika TargetedPrinter=Ciljni tiskalnik UserConf=Nastavitev po uporabniku -PRINTGCP_INFO=Google OAuth API setup -PRINTGCP_AUTHLINK=Authentication +PRINTGCP_INFO=Nastavitev Google OAuth API +PRINTGCP_AUTHLINK=Preverjanje pristnosti PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token -PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. +PrintGCPDesc=Ta gonilnik omogoča pošiljanje dokumentov neposredno v tiskalnik z uporabo Google Tiskanja v oblaku. GCP_Name=Priimek -GCP_displayName=Display Name -GCP_Id=Printer Id -GCP_OwnerName=Owner Name -GCP_State=Printer State -GCP_connectionStatus=Online State -GCP_Type=Printer Type -PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. +GCP_displayName=Prikazno ime +GCP_Id=ID tiskalnika +GCP_OwnerName=Ime lastnika +GCP_State=Stanje tiskalnika +GCP_connectionStatus=Spletna država +GCP_Type=Vrsta tiskalnika +PrintIPPDesc=Ta gonilnik omogoča pošiljanje dokumentov neposredno v tiskalnik. Potrebuje sistem Linux z nameščenim CUPS. PRINTIPP_HOST=Tiskalniški strežnik PRINTIPP_PORT=Vrata PRINTIPP_USER=Uporabniško ime @@ -35,20 +35,20 @@ PRINTIPP_PASSWORD=Geslo NoDefaultPrinterDefined=Ni izbran privzet tiskalnik DefaultPrinter=Privzet tiskalnik Printer=Tiskalnik -IPP_Uri=Printer Uri -IPP_Name=Printer Name -IPP_State=Printer State -IPP_State_reason=State reason -IPP_State_reason1=State reason1 -IPP_BW=BW +IPP_Uri=Uri tiskalnika +IPP_Name=Ime tiskalnika +IPP_State=Stanje tiskalnika +IPP_State_reason=Navedite razlog +IPP_State_reason1=Navedite razlog 1 +IPP_BW=ČB IPP_Color=Barva -IPP_Device=Device -IPP_Media=Printer media -IPP_Supported=Type of media -DirectPrintingJobsDesc=This page lists printing jobs found for available printers. -GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintingDriverDescprintipp=Configuration variables for printing driver Cups. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. -PrintTestDescprintipp=List of Printers for Cups. +IPP_Device=Naprava +IPP_Media=Tiskalni mediji +IPP_Supported=Vrsta medija +DirectPrintingJobsDesc=Na tej strani so navedena tiskalna opravila, najdena za razpoložljive tiskalnike. +GoogleAuthNotConfigured=Google OAuth ni bil nastavljen. Omogočite modul OAuth in nastavite Google ID/skrivnost. +GoogleAuthConfigured=V nastavitvah modula OAuth so bile najdene poverilnice Google OAuth. +PrintingDriverDescprintgcp=Konfiguracijske spremenljivke za tiskalni gonilnik Google Cloud Print. +PrintingDriverDescprintipp=Konfiguracijske spremenljivke za tiskanje skodelic gonilnika. +PrintTestDescprintgcp=Seznam tiskalnikov za Google Tiskanje v oblaku. +PrintTestDescprintipp=Seznam tiskalnikov za skodelice. diff --git a/htdocs/langs/sl_SI/productbatch.lang b/htdocs/langs/sl_SI/productbatch.lang index 32b638a7dd6..9e3c743027f 100644 --- a/htdocs/langs/sl_SI/productbatch.lang +++ b/htdocs/langs/sl_SI/productbatch.lang @@ -1,45 +1,47 @@ # ProductBATCH language file - Source file is en_US - ProductBATCH -ManageLotSerial=Use lot/serial number -ProductStatusOnBatch=Yes (lot required) -ProductStatusOnSerial=Yes (unique serial number required) -ProductStatusNotOnBatch=No (lot/serial not used) +ManageLotSerial=Uporabite serijsko številko serije +ProductStatusOnBatch=Da (potrebno veliko) +ProductStatusOnSerial=Da (potrebna je edinstvena serijska številka) +ProductStatusNotOnBatch=Ne (lot/serija ni uporabljena) ProductStatusOnBatchShort=Lot -ProductStatusOnSerialShort=Serial +ProductStatusOnSerialShort=Serijski ProductStatusNotOnBatchShort=Ne -Batch=Lot/Serial -atleast1batchfield=Eat-by date or Sell-by date or Lot/Serial number -batch_number=Lot/Serial number -BatchNumberShort=Lot/Serial -EatByDate=Eat-by date -SellByDate=Sell-by date -DetailBatchNumber=Lot/Serial details -printBatch=Lot/Serial: %s -printEatby=Eat-by: %s -printSellby=Sell-by: %s -printQty=Qty: %d -AddDispatchBatchLine=Add a line for Shelf Life dispatching -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic stock decrease is forced to 'Decrease real stocks on shipping validation' and automatic increase mode is forced to 'Increase real stocks on manual dispatching into warehouses' and can't be edited. Other options can be defined as you want. -ProductDoesNotUseBatchSerial=This product does not use lot/serial number -ProductLotSetup=Setup of module lot/serial -ShowCurrentStockOfLot=Show current stock for couple product/lot -ShowLogOfMovementIfLot=Show log of movements for couple product/lot -StockDetailPerBatch=Stock detail per lot -SerialNumberAlreadyInUse=Serial number %s is already used for product %s -TooManyQtyForSerialNumber=You can only have one product %s for serial number %s -ManageLotMask=Custom mask -CustomMasks=Option to define a different numbering mask for each product -BatchLotNumberingModules=Numbering rule for automatic generation of lot number -BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product) -QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned -LifeTime=Life span (in days) -EndOfLife=End of life -ManufacturingDate=Manufacturing date -DestructionDate=Destruction date -FirstUseDate=First use date -QCFrequency=Quality control frequency (in days) -ShowAllLots=Show all lots -HideLots=Hide lots +Batch=Serija/serija +atleast1batchfield=Rok uporabnosti ali rok uporabnosti ali številka lota/serijske številke +batch_number=Lot/Serijska številka +BatchNumberShort=Serija/serija +EatByDate=Jesti po datumu +SellByDate=Rok uporabnosti +DetailBatchNumber=Podrobnosti o lotu/seriji +printBatch=Lot/serija: %s +printEatby=Prehranjevanje: %s +printSellby=Prodam: %s +printQty=Količina: %d +printPlannedWarehouse=Skladišče: %s +AddDispatchBatchLine=Dodajte vrstico za odpremo roka uporabnosti +WhenProductBatchModuleOnOptionAreForced=Ko je modul Lot/Serial vklopljen, je samodejno zmanjševanje zalog prisiljeno na 'Zmanjšanje dejanskih zalog ob potrditvi pošiljanja', način samodejnega povečanja pa je prisiljen v 'Povečanje dejanskih zalog pri ročnem pošiljanju v skladišča' in ga ni mogoče urejati. Druge možnosti lahko določite po želji. +ProductDoesNotUseBatchSerial=Ta izdelek ne uporablja številke lota/serijske številke +ProductLotSetup=Nastavitev sklopa/serije modula +ShowCurrentStockOfLot=Pokaži trenutno zalogo za nekaj izdelkov/lotov +ShowLogOfMovementIfLot=Pokaži dnevnik premikov za par izdelkov/lotov +StockDetailPerBatch=Podrobnosti o zalogi na lot +SerialNumberAlreadyInUse=Serijska številka %s se že uporablja za izdelek %s +TooManyQtyForSerialNumber=Za serijsko številko %s lahko imate samo en izdelek %s +ManageLotMask=Maska po meri +CustomMasks=Možnost določitve drugačne maske oštevilčenja za vsak izdelek +BatchLotNumberingModules=Pravilo oštevilčenja za samodejno ustvarjanje številke lota +BatchSerialNumberingModules=Pravilo oštevilčevanja za samodejno ustvarjanje serijske številke (za izdelke z lastnostjo 1 edinstvena serija/serija za vsak izdelek) +QtyToAddAfterBarcodeScan=Količina do %s za vsako skenirano črtno kodo/lot/serijsko številko +LifeTime=Življenjska doba (v dnevih) +EndOfLife=Konec življenja +ManufacturingDate=Datum izdelave +DestructionDate=Datum uničenja +FirstUseDate=Datum prve uporabe +QCFrequency=Pogostost kontrole kakovosti (v dnevih) +ShowAllLots=Prikaži vse sklope +HideLots=Skrij lote #Traceability - qc status -OutOfOrder=Out of order -InWorkingOrder=In working order -ToReplace=Replace +OutOfOrder=Ne deluje +InWorkingOrder=V delujočem stanju +ToReplace=Zamenjati +CantMoveNonExistantSerial=Napaka. Zahtevate premik na zapisu za serijo, ki ne obstaja več. Lahko, da isto serijo vzamete v istem skladišču večkrat v isti pošiljki ali pa je bila uporabljena v drugi pošiljki. Odstranite to pošiljko in pripravite drugo. diff --git a/htdocs/langs/sl_SI/products.lang b/htdocs/langs/sl_SI/products.lang index b82a8300e02..dd04377f57a 100644 --- a/htdocs/langs/sl_SI/products.lang +++ b/htdocs/langs/sl_SI/products.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Referenca proizvoda ProductLabel=Naziv proizvoda -ProductLabelTranslated=Translated product label -ProductDescription=Product description -ProductDescriptionTranslated=Translated product description -ProductNoteTranslated=Translated product note +ProductLabelTranslated=Prevedena oznaka izdelka +ProductDescription=Opis izdelka +ProductDescriptionTranslated=Preveden opis izdelka +ProductNoteTranslated=Prevedena opomba o izdelku ProductServiceCard=Kartica proizvoda/storitve TMenuProducts=Proizvodi TMenuServices=Storitve @@ -17,43 +17,43 @@ Create=Kreiraj Reference=Referenca NewProduct=Nov proizvod NewService=Nova storitev -ProductVatMassChange=Global VAT Update -ProductVatMassChangeDesc=This tool updates the VAT rate defined on ALL products and services! +ProductVatMassChange=Globalna posodobitev DDV +ProductVatMassChangeDesc=To orodje posodablja stopnjo DDV, določeno za VSE izdelke in storitve! MassBarcodeInit=Vzpostavitev masovne črtne kode MassBarcodeInitDesc=Na tej strani lahko vzpostavite črtno kodo za objekte, ki črtne kode nimajo določene. Pred tem preverite, da je zaključena nastavitev modula za črtne kode. -ProductAccountancyBuyCode=Accounting code (purchase) -ProductAccountancyBuyIntraCode=Accounting code (purchase intra-community) -ProductAccountancyBuyExportCode=Accounting code (purchase import) -ProductAccountancySellCode=Accounting code (sale) -ProductAccountancySellIntraCode=Accounting code (sale intra-Community) -ProductAccountancySellExportCode=Accounting code (sale export) +ProductAccountancyBuyCode=Knjigovodska oznaka (nakup) +ProductAccountancyBuyIntraCode=Računovodska koda (nakup znotraj skupnosti) +ProductAccountancyBuyExportCode=Knjigovodska šifra (nakup uvoz) +ProductAccountancySellCode=Knjigovodska šifra (prodaja) +ProductAccountancySellIntraCode=Računovodska koda (prodaja znotraj Skupnosti) +ProductAccountancySellExportCode=Knjigovodska oznaka (prodaja izvoz) ProductOrService=Proizvod ali storitev ProductsAndServices=Proizvodi in storitve ProductsOrServices=Proizvodi ali storitve -ProductsPipeServices=Products | Services -ProductsOnSale=Products for sale -ProductsOnPurchase=Products for purchase -ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Products for purchase only -ProductsNotOnSell=Products not for sale and not for purchase +ProductsPipeServices=Izdelki | Storitve +ProductsOnSale=Izdelki za prodajo +ProductsOnPurchase=Izdelki za nakup +ProductsOnSaleOnly=Izdelki samo za prodajo +ProductsOnPurchaseOnly=Izdelki samo za nakup +ProductsNotOnSell=Izdelki niso naprodaj in niso za nakup ProductsOnSellAndOnBuy=Proizvodi za prodajo ali nabavo -ServicesOnSale=Services for sale -ServicesOnPurchase=Services for purchase -ServicesOnSaleOnly=Services for sale only -ServicesOnPurchaseOnly=Services for purchase only -ServicesNotOnSell=Services not for sale and not for purchase +ServicesOnSale=Storitve za prodajo +ServicesOnPurchase=Storitve za nakup +ServicesOnSaleOnly=Storitve samo za prodajo +ServicesOnPurchaseOnly=Storitve samo za nakup +ServicesNotOnSell=Storitve niso naprodaj in niso za nakup ServicesOnSellAndOnBuy=Storitve za prodajo ali za nabavo -LastModifiedProductsAndServices=Latest %s products/services which were modified -LastRecordedProducts=Latest %s recorded products -LastRecordedServices=Latest %s recorded services +LastModifiedProductsAndServices=Najnovejši %s izdelki/storitve, ki so bili spremenjeni +LastRecordedProducts=Najnovejši %s posneti izdelki +LastRecordedServices=Zadnje %s zabeležene storitve CardProduct0=Proizvod CardProduct1=Storitev Stock=Zaloga MenuStocks=Zaloge -Stocks=Stocks and location (warehouse) of products +Stocks=Zaloge in lokacija (skladišče) izdelkov Movements=Premiki Sell=Prodaja -Buy=Purchase +Buy=Nakup OnSell=Prodano OnBuy=Nabavljeno NotOnSell=Opuščeno @@ -65,30 +65,30 @@ ProductStatusOnBuy=Na voljo ProductStatusNotOnBuy=Opuščeno ProductStatusOnBuyShort=Na voljo ProductStatusNotOnBuyShort=Opuščeno -UpdateVAT=Update vat -UpdateDefaultPrice=Update default price -UpdateLevelPrices=Update prices for each level -AppliedPricesFrom=Applied from +UpdateVAT=Posodobi vat +UpdateDefaultPrice=Posodobi privzeto ceno +UpdateLevelPrices=Posodobite cene za vsako raven +AppliedPricesFrom=Uporabljeno od SellingPrice=Prodajna cena -SellingPriceHT=Selling price (excl. tax) +SellingPriceHT=Prodajna cena (brez davka) SellingPriceTTC=Prodajne cene (z DDV) -SellingMinPriceTTC=Minimum Selling price (inc. tax) -CostPriceDescription=This price field (excl. tax) can be used to capture the average amount this product costs to your company. It may be any price you calculate yourself, for example, from the average buying price plus average production and distribution cost. -CostPriceUsage=This value could be used for margin calculation. -ManufacturingPrice=Manufacturing price -SoldAmount=Sold amount -PurchasedAmount=Purchased amount +SellingMinPriceTTC=Najnižja prodajna cena (vključno z davkom) +CostPriceDescription=To polje cene (brez davka) lahko uporabite za zajem povprečnega zneska, ki ga ta izdelek stane za vaše podjetje. To je lahko katera koli cena, ki jo izračunate sami, na primer iz povprečne nabavne cene plus povprečni stroški proizvodnje in distribucije. +CostPriceUsage=To vrednost bi lahko uporabili za izračun marže. +ManufacturingPrice=Cena izdelave +SoldAmount=Prodana količina +PurchasedAmount=Kupljena količina NewPrice=Nova cena -MinPrice=Min. selling price -EditSellingPriceLabel=Edit selling price label +MinPrice=Min. prodajna cena +EditSellingPriceLabel=Uredi oznako prodajne cene CantBeLessThanMinPrice=Prodajna cena ne more biti nižja od minimalne za ta proizvod (%s brez DDV). To sporočilo se pojavi lahko tudi, če vnesete prevelik popust ContractStatusClosed=Zaprta ErrorProductAlreadyExists=Proizvod z referenco %s že obstaja. ErrorProductBadRefOrLabel=Napačna vrednost reference ali naziva. ErrorProductClone=Prišlo je do težave pri poskusu kloniranja proizvoda ali storitve. ErrorPriceCantBeLowerThanMinPrice=Napaka, cena ne more biti nižja od minimalne cene. -Suppliers=Vendors -SupplierRef=Vendor SKU +Suppliers=Dobavitelji +SupplierRef=SKU dobavitelja ShowProduct=Prikaži proizvod ShowService=Prikaži storitev ProductsAndServicesArea=Področje proizvodov in storitev @@ -96,8 +96,8 @@ ProductsArea=Področje proizvodov ServicesArea=Področje storitev ListOfStockMovements=Seznam gibanja zalog BuyingPrice=Nabavna cena -PriceForEachProduct=Products with specific prices -SupplierCard=Vendor card +PriceForEachProduct=Izdelki s posebnimi cenami +SupplierCard=Kartica dobavitelja PriceRemoved=Cena odstranjena BarCode=Črtna koda BarcodeType=Tip črtne kode @@ -105,25 +105,25 @@ SetDefaultBarcodeType=Nastavi tip črtne kode BarcodeValue=Vrednost črtne kode NoteNotVisibleOnBill=Opomba (ni vidna na računih, ponudbah...) ServiceLimitedDuration=Če ima proizvod storitev z omejenim trajanjem: -FillWithLastServiceDates=Fill with last service line dates -MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment) +FillWithLastServiceDates=Izpolnite z zadnjimi datumi storitev +MultiPricesAbility=Več cenovnih segmentov na izdelek/storitev (vsaka stranka je v enem cenovnem segmentu) MultiPricesNumPrices=Število cen -DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices -AssociatedProductsAbility=Enable Kits (set of several products) -VariantsAbility=Enable Variants (variations of products, for example color, size) -AssociatedProducts=Kits -AssociatedProductsNumber=Number of products composing this kit +DefaultPriceType=Osnova privzetih cen (z ali brez davka) pri dodajanju novih prodajnih cen +AssociatedProductsAbility=Omogoči komplete (nabor več izdelkov) +VariantsAbility=Omogoči različice (različice izdelkov, na primer barva, velikost) +AssociatedProducts=Kompleti +AssociatedProductsNumber=Število izdelkov, ki sestavljajo ta komplet ParentProductsNumber=Število nadrejenih sestavljenih izdelkov -ParentProducts=Parent products -IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit -IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit +ParentProducts=Starševski izdelki +IfZeroItIsNotAVirtualProduct=Če je 0, ta izdelek ni komplet +IfZeroItIsNotUsedByVirtualProduct=Če je 0, tega izdelka ne uporablja noben komplet KeywordFilter=Filter ključnih besed CategoryFilter=Filter kategorij ProductToAddSearch=Iskanje proizvoda za dodajanje NoMatchFound=Ni ujemanja -ListOfProductsServices=List of products/services -ProductAssociationList=List of products/services that are component(s) of this kit -ProductParentList=List of kits with this product as a component +ListOfProductsServices=Seznam izdelkov/storitev +ProductAssociationList=Seznam izdelkov/storitev, ki so komponente tega kompleta +ProductParentList=Seznam kompletov s tem izdelkom kot komponento ErrorAssociationIsFatherOfThis=Eden od izbranih proizvodov je nadrejen trenutnemu proizvodu DeleteProduct=Izbriši proizvod/storitev ConfirmDeleteProduct=Ali zares želite izbrisati ta proizvod/storitev? @@ -135,21 +135,22 @@ ImportDataset_service_1=Storitve DeleteProductLine=Izbriši vrstico proizvoda ConfirmDeleteProductLine=Ali zares želite izbrisati to vrstico proizvoda? ProductSpecial=Specialni -QtyMin=Min. purchase quantity -PriceQtyMin=Price quantity min. -PriceQtyMinCurrency=Price (currency) for this qty. (no discount) -VATRateForSupplierProduct=VAT Rate (for this vendor/product) -DiscountQtyMin=Discount for this qty. -NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product -NoSupplierPriceDefinedForThisProduct=No vendor price/qty defined for this product -PredefinedItem=Predefined item -PredefinedProductsToSell=Predefined Product -PredefinedServicesToSell=Predefined Service +QtyMin=Min. nakupna količina +PriceQtyMin=Cena količina min. +PriceQtyMinCurrency=Cena (valuta) za to kol. +WithoutDiscount=Brez popusta +VATRateForSupplierProduct=Stopnja DDV (za dobavitelja/izdelek) +DiscountQtyMin=Popust za to količino. +NoPriceDefinedForThisSupplier=Cena/količina ni določena za dobavitelja/izdelek +NoSupplierPriceDefinedForThisProduct=Za izdelek dobavitelj ni določil cene/količino +PredefinedItem=Vnaprej določen element +PredefinedProductsToSell=Vnaprej določen izdelek +PredefinedServicesToSell=Vnaprej določena storitev PredefinedProductsAndServicesToSell=Vnaprej določeni proizvodi/storitve za prodajo PredefinedProductsToPurchase=Vnaprej določen proizvodi za nakup PredefinedServicesToPurchase=Vnaprej določene storitve za nakup -PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase -NotPredefinedProducts=Not predefined products/services +PredefinedProductsAndServicesToPurchase=Vnaprej določeni izdelki/storitve za nakup +NotPredefinedProducts=Ni vnaprej določenih izdelkov/storitev GenerateThumb=Generiraj sličico ServiceNb=Storitev št. %s ListProductServiceByPopularity=Seznam proizvodov/storitev po priljubljenosti @@ -157,26 +158,26 @@ ListProductByPopularity=Seznam proizvodov po priljubljenosti ListServiceByPopularity=Seznam storitev po priljubljenosti Finished=Končni izdelek RowMaterial=Osnovni material -ConfirmCloneProduct=Are you sure you want to clone product or service %s? -CloneContentProduct=Clone all main information of the product/service -ClonePricesProduct=Clone prices -CloneCategoriesProduct=Clone linked tags/categories -CloneCompositionProduct=Clone virtual products/services -CloneCombinationsProduct=Clone the product variants +ConfirmCloneProduct=Ali ste prepričani, da želite klonirati izdelek ali storitev %s ? +CloneContentProduct=Klonirajte vse glavne informacije o izdelku/storitvi +ClonePricesProduct=Cene klonov +CloneCategoriesProduct=Kloniraj povezane oznake/kategorije +CloneCompositionProduct=Klonirajte virtualne izdelke/storitve +CloneCombinationsProduct=Klonirajte različice izdelka ProductIsUsed=Ta proizvod je rabljen NewRefForClone=Ref. novega proizvoda/storitve -SellingPrices=Selling prices -BuyingPrices=Buying prices +SellingPrices=Prodajne cene +BuyingPrices=Odkupne cene CustomerPrices=Cene za kupce -SuppliersPrices=Vendor prices -SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) -CustomCode=Customs|Commodity|HS code -CountryOrigin=Country of origin -RegionStateOrigin=Region of origin -StateOrigin=State|Province of origin -Nature=Nature of product (raw/manufactured) -NatureOfProductShort=Nature of product -NatureOfProductDesc=Raw material or manufactured product +SuppliersPrices=Dobaviteljeve cene +SuppliersPricesOfProductsOrServices=Dobaviteljeve cene (izdelkov ali storitev) +CustomCode=Carina|Blago |Oznaka HS +CountryOrigin=Država izvora +RegionStateOrigin=Regija izvora +StateOrigin=Država|Pokrajina izvora +Nature=Vrsta izdelka (surov/proizveden) +NatureOfProductShort=Narava izdelka +NatureOfProductDesc=Surovina ali izdelan izdelek ShortLabel=Kratek naziv Unit=Enota p=e. @@ -199,36 +200,36 @@ m2=m² m3=m³ liter=liter l=l -unitP=Piece +unitP=Kos unitSET=Set unitS=Sekunda unitH=Ura unitD=Dan -unitG=Gram -unitM=Meter -unitLM=Linear meter -unitM2=Square meter -unitM3=Cubic meter +unitG=gram +unitM=Merilnik +unitLM=Linearni meter +unitM2=Kvadratni meter +unitM3=Kubični meter unitL=Liter unitT=ton unitKG=kg -unitG=Gram +unitG=gram unitMG=mg unitLB=funt unitOZ=unča -unitM=Meter +unitM=Merilnik unitDM=dm unitCM=cm unitMM=mm unitFT=ft -unitIN=in -unitM2=Square meter +unitIN=v +unitM2=Kvadratni meter unitDM2=dm² unitCM2=cm² unitMM2=mm² unitFT2=ft² unitIN2=in² -unitM3=Cubic meter +unitM3=Kubični meter unitDM3=dm³ unitCM3=cm³ unitMM3=mm³ @@ -242,172 +243,189 @@ CurrentProductPrice=Trenutna cena AlwaysUseNewPrice=Vedno uporabi trenutno ceno proizvoda/storitve AlwaysUseFixedPrice=Uporabi fiksno ceno PriceByQuantity=Različne cene glede na količino -DisablePriceByQty=Disable prices by quantity +DisablePriceByQty=Onemogoči cene po količini PriceByQuantityRange=Območje količin -MultipriceRules=Automatic prices for segment -UseMultipriceRules=Use price segment rules (defined into product module setup) to auto calculate prices of all other segments according to first segment -PercentVariationOver=%% variation over %s -PercentDiscountOver=%% discount over %s -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products -VariantRefExample=Examples: COL, SIZE -VariantLabelExample=Examples: Color, Size +MultipriceRules=Samodejne cene za segment +UseMultipriceRules=Uporabite pravila cenovnega segmenta (definirana v nastavitvah modula izdelka) za samodejni izračun cen vseh drugih segmentov glede na prvi segment +PercentVariationOver=%% različica nad %s +PercentDiscountOver=%% popust nad %s +KeepEmptyForAutoCalculation=Pustite prazno, da se to samodejno izračuna iz teže ali prostornine izdelkov +VariantRefExample=Primeri: COL, SIZE +VariantLabelExample=Primeri: barva, velikost ### composition fabrication Build=Proizvodnja -ProductsMultiPrice=Products and prices for each price segment +ProductsMultiPrice=Izdelki in cene za vsak cenovni segment ProductsOrServiceMultiPrice=Cene za kupca (proizvodov ali storitev, večcenovno) -ProductSellByQuarterHT=Products turnover quarterly before tax -ServiceSellByQuarterHT=Services turnover quarterly before tax +ProductSellByQuarterHT=Promet izdelkov četrtletno pred obdavčitvijo +ServiceSellByQuarterHT=Promet storitev četrtletno pred obdavčitvijo Quarter1=1. četrtletje Quarter2=2. četrtletje Quarter3=3. četrtletje Quarter4=4. četrtletje -BarCodePrintsheet=Print barcode -PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. +BarCodePrintsheet=Natisnite črtne kode +PageToGenerateBarCodeSheets=S tem orodjem lahko natisnete liste nalepk s črtno kodo. Izberite obliko vaše strani z nalepko, vrsto črtne kode in vrednost črtne kode, nato kliknite gumb %s . NumberOfStickers=Število nalepk za tiskanje na stran PrintsheetForOneBarCode=Tiskaj več nalepk za eno črtno kodo BuildPageToPrint=Generiraj stran za tiskanje FillBarCodeTypeAndValueManually=Ročno vnesi tip črtne kode in vrednost. FillBarCodeTypeAndValueFromProduct=Vnesi tip črtne kode in vrednost iz črtne kode proizvoda. -FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. -DefinitionOfBarCodeForProductNotComplete=Definition of type or value of barcode not complete for product %s. -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of barcode non complete for third party %s. -BarCodeDataForProduct=Barcode information of product %s: -BarCodeDataForThirdparty=Barcode information of third party %s: -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) -PriceByCustomer=Different prices for each customer -PriceCatalogue=A single sell price per product/service -PricingRule=Rules for selling prices +FillBarCodeTypeAndValueFromThirdParty=Izpolnite vrsto črtne kode in vrednost črtne kode. +DefinitionOfBarCodeForProductNotComplete=Definicija vrste ali vrednosti črtne kode ni popolna za izdelek %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Definicija vrste ali vrednosti črtne kode ni popolna za partnerja %s. +BarCodeDataForProduct=Informacije o črtni kodi izdelka %s: +BarCodeDataForThirdparty=Informacije o črtni kodi partnerja %s: +ResetBarcodeForAllRecords=Določite vrednost črtne kode za vse zapise (to bo tudi ponastavilo že definirano vrednost črtne kode z novimi vrednostmi) +PriceByCustomer=Za vsako stranko različne cene +PriceCatalogue=Enotna prodajna cena za izdelek/storitev +PricingRule=Pravila za prodajne cene AddCustomerPrice=Dodaj ceno po kupcu -ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries +ForceUpdateChildPriceSoc=Nastavite enako ceno za hčerinske družbe stranke PriceByCustomerLog=Pregled prejšnjih cen za kupce MinimumPriceLimit=Minimalna cena ne more biti nižja kot %s -MinimumRecommendedPrice=Minimum recommended price is: %s +MinimumRecommendedPrice=Najnižja priporočena cena je: %s PriceExpressionEditor=Urejevalnik prikaza cene PriceExpressionSelected=Izbran prikaz cene PriceExpressionEditorHelp1="cena = 2 + 2" ali "2 + 2" za nastavitev cene. Uporabite ; za ločitev izrazov PriceExpressionEditorHelp2=Lahko dostopate do EkstraPolj s spremenljivkami kot #extrafield_myextrafieldkey# in globalnimi spremenljivkami kot #global_mycode# -PriceExpressionEditorHelp3=In both product/service and vendor prices there are these variables available:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# -PriceExpressionEditorHelp4=In product/service price only: #supplier_min_price#
    In vendor prices only: #supplier_quantity# and #supplier_tva_tx# +PriceExpressionEditorHelp3=Pri cenah izdelka/storitve in prodajalca so na voljo te spremenljivke:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# +PriceExpressionEditorHelp4=Samo v ceni izdelka/storitve: #supplier_min_price#
    Samo v cenah dobavitelja: #supplier_quantity# in #supplier_tva_tx# PriceExpressionEditorHelp5=Globalne vrednosti, ki so na voljo: PriceMode=Način cene PriceNumeric=Številka DefaultPrice=Privzeta cena -DefaultPriceLog=Log of previous default prices +DefaultPriceLog=Dnevnik prejšnjih privzetih cen ComposedProductIncDecStock=Povečanje/znmanjšanje zaloge pri spremembi nadrejenega -ComposedProduct=Child products +ComposedProduct=Otroški izdelki MinSupplierPrice=Najnižjo odkupno ceno -MinCustomerPrice=Minimum selling price -NoDynamicPrice=No dynamic price +MinCustomerPrice=Minimalna prodajna cena +NoDynamicPrice=Brez dinamične cene DynamicPriceConfiguration=Dimnamična konfiguracija cene -DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically. -AddVariable=Add Variable -AddUpdater=Add Updater +DynamicPriceDesc=Določite lahko matematične formule za izračun cen strank ali prodajalcev. Take formule lahko uporabljajo vse matematične operatorje, nekatere konstante in spremenljivke. Tukaj lahko določite spremenljivke, ki jih želite uporabiti. Če spremenljivka potrebuje samodejno posodobitev, lahko definirate zunanji URL, da Dolibarrju omogočite samodejno posodobitev vrednosti. +AddVariable=Dodaj spremenljivko +AddUpdater=Dodaj posodobitev GlobalVariables=Globalne spremenljivke -VariableToUpdate=Variable to update -GlobalVariableUpdaters=External updaters for variables +VariableToUpdate=Spremenljivka za posodobitev +GlobalVariableUpdaters=Zunanji programi za posodabljanje spremenljivk GlobalVariableUpdaterType0=JSON podatki GlobalVariableUpdaterHelp0=Razčleni JSON podatke iz specifičnega URL, VALUE določa lokacijo ustrezne vrednosti, -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterHelpFormat0=Oblika za zahtevo {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=Podatki spletnih storitev GlobalVariableUpdaterHelp1=Razčleni podatke spletnih storitve iz specifičnega URL, NS doliča prostor za ime, VALUE določa lokacijo ustreznih podatkov, DATA mora vsebovati podatke za pošiljanje in METHOD je metoda za WS klicanje -GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} +GlobalVariableUpdaterHelpFormat1=Format za zahtevo je {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD" : "myWSMethod", "DATA": {"vaš": "podatki", "za": "pošlji"}} UpdateInterval=Interval posodobitve (minute) -LastUpdated=Latest update +LastUpdated=Najnovejša posodobitev CorrectlyUpdated=Pravilno posodobljeno PropalMergePdfProductActualFile=Datoteke za dodatek k PDF Azur so/je PropalMergePdfProductChooseFile=Izberi PDF datoteke -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=Vključno z izdelki/storitvami z oznako DefaultPriceRealPriceMayDependOnCustomer=Privzeta cena, dejanska cena je odvisna od kupca -WarningSelectOneDocument=Please select at least one document +WarningSelectOneDocument=Izberite vsaj en dokument DefaultUnitToShow=Enota -NbOfQtyInProposals=Qty in proposals -ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view... -ProductsOrServicesTranslations=Products/Services translations -TranslatedLabel=Translated label -TranslatedDescription=Translated description -TranslatedNote=Translated notes -ProductWeight=Weight for 1 product -ProductVolume=Volume for 1 product -WeightUnits=Weight unit -VolumeUnits=Volume unit -WidthUnits=Width unit -LengthUnits=Length unit -HeightUnits=Height unit -SurfaceUnits=Surface unit -SizeUnits=Size unit -DeleteProductBuyPrice=Delete buying price -ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? -SubProduct=Sub product -ProductSheet=Product sheet -ServiceSheet=Service sheet -PossibleValues=Possible values -GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...) -UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers -ProductSupplierDescription=Vendor description for the product -UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) -PackagingForThisProduct=Packaging -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity -QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging +NbOfQtyInProposals=Količina v predlogih +ClinkOnALinkOfColumn=Kliknite na povezavo stolpca %s za podroben pogled... +ProductsOrServicesTranslations=Prevodi izdelkov/storitev +TranslatedLabel=Prevedena oznaka +TranslatedDescription=Preveden opis +TranslatedNote=Prevedene opombe +ProductWeight=Teža za 1 izdelek +ProductVolume=Volumen za 1 izdelek +WeightUnits=Enota teže +VolumeUnits=Enota prostornine +WidthUnits=Enota za širino +LengthUnits=Dolžinska enota +HeightUnits=Višinska enota +SurfaceUnits=Površinska enota +SizeUnits=Enota velikosti +DeleteProductBuyPrice=Izbriši nakupno ceno +ConfirmDeleteProductBuyPrice=Ali ste prepričani, da želite izbrisati to nakupno ceno? +SubProduct=Podizdelek +ProductSheet=List izdelka +ServiceSheet=Servisni list +PossibleValues=Možne vrednosti +GoOnMenuToCreateVairants=Pojdite na meni %s - %s, da pripravite različice atributov (kot so barve, velikost, ...) +UseProductFournDesc=Dodajte funkcijo za določitev opisa izdelka, ki ga določijo dobavitelji (za vsako referenco prodajalca), poleg opisa za stranke +ProductSupplierDescription=Opis prodajalca za izdelek +UseProductSupplierPackaging=Uporabite embalažo za cene, zaokrožene na večkratnike za nakupne cene (ponovno izračunajte količine glede na večkratnike, določene na nabavnih cenah, ko dodajate/posodabljate vrstico v dokumentih prodajalca) +PackagingForThisProduct=Pakiranje +PackagingForThisProductDesc=Samodejno boste kupili večkratnik te količine. +QtyRecalculatedWithPackaging=Količina linije je bila preračunana glede na embalažo dobavitelja #Attributes -VariantAttributes=Variant attributes -ProductAttributes=Variant attributes for products -ProductAttributeName=Variant attribute %s -ProductAttribute=Variant attribute -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object -ProductCombinations=Variants -PropagateVariant=Propagate variants -HideProductCombinations=Hide products variant in the products selector -ProductCombination=Variant -NewProductCombination=New variant -EditProductCombination=Editing variant -NewProductCombinations=New variants -EditProductCombinations=Editing variants -SelectCombination=Select combination -ProductCombinationGenerator=Variants generator -Features=Features -PriceImpact=Price impact -ImpactOnPriceLevel=Impact on price level %s -ApplyToAllPriceImpactLevel= Apply to all levels -ApplyToAllPriceImpactLevelHelp=By clicking here you set the same price impact on all levels -WeightImpact=Weight impact +VariantAttributes=Variantni atributi +ProductAttributes=Različni atributi za izdelke +ProductAttributeName=Atribut različice %s +ProductAttribute=Variantni atribut +ProductAttributeDeleteDialog=Ali ste prepričani, da želite izbrisati ta atribut? Vse vrednosti bodo izbrisane +ProductAttributeValueDeleteDialog=Ali ste prepričani, da želite izbrisati vrednost "%s" s sklicevanjem na "%s" tega atributa? +ProductCombinationDeleteDialog=Ali ste prepričani, da želite izbrisati različico izdelka " %s "? +ProductCombinationAlreadyUsed=Med brisanjem različice je prišlo do napake. Preverite, ali se ne uporablja v nobenem objektu +ProductCombinations=Različice +PropagateVariant=Razmnožite variante +HideProductCombinations=Skrij različico izdelkov v izbirniku izdelkov +ProductCombination=Različica +NewProductCombination=Nova varianta +EditProductCombination=Varianta urejanja +NewProductCombinations=Nove variante +EditProductCombinations=Variante urejanja +SelectCombination=Izberite kombinacijo +ProductCombinationGenerator=Generator variant +Features=Lastnosti +PriceImpact=Vpliv na ceno +ImpactOnPriceLevel=Vpliv na raven cen %s +ApplyToAllPriceImpactLevel= Uporabi za vse ravni +ApplyToAllPriceImpactLevelHelp=S klikom tukaj nastavite enak vpliv cene na vseh ravneh +WeightImpact=Vpliv teže NewProductAttribute=Nov atribut -NewProductAttributeValue=New attribute value -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. -DoNotRemovePreviousCombinations=Do not remove previous variants -UsePercentageVariations=Use percentage variations -PercentageVariation=Percentage variation -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants -NbOfDifferentValues=No. of different values -NbProducts=Number of products -ParentProduct=Parent product -HideChildProducts=Hide variant products -ShowChildProducts=Show variant products -NoEditVariants=Go to Parent product card and edit variants price impact in the variants tab -ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? -CloneDestinationReference=Destination product reference -ErrorCopyProductCombinations=There was an error while copying the product variants -ErrorDestinationProductNotFound=Destination product not found -ErrorProductCombinationNotFound=Product variant not found -ActionAvailableOnVariantProductOnly=Action only available on the variant of product -ProductsPricePerCustomer=Product prices per customers -ProductSupplierExtraFields=Additional Attributes (Supplier Prices) -DeleteLinkedProduct=Delete the child product linked to the combination -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +NewProductAttributeValue=Nova vrednost atributa +ErrorCreatingProductAttributeValue=Med ustvarjanjem vrednosti atributa je prišlo do napake. Morda zato, ker že obstaja obstoječa vrednost s to referenco +ProductCombinationGeneratorWarning=Če nadaljujete, bodo pred generiranjem novih različic vse prejšnje IZBRISANE. Že obstoječe bodo posodobljene z novimi vrednostmi +TooMuchCombinationsWarning=Ustvarjanje številnih različic lahko povzroči visoko porabo procesorja, pomnilnika in jih Dolibarr ne more ustvariti. Če omogočite možnost "%s", lahko zmanjšate porabo pomnilnika. +DoNotRemovePreviousCombinations=Ne odstranjujte prejšnjih različic +UsePercentageVariations=Uporabite odstotne razlike +PercentageVariation=Odstotek variacije +ErrorDeletingGeneratedProducts=Pri poskusu brisanja obstoječih različic izdelka je prišlo do napake +NbOfDifferentValues=Št. različnih vrednosti +NbProducts=Število izdelkov +ParentProduct=Matični izdelek +HideChildProducts=Skrij variantne izdelke +ShowChildProducts=Pokaži različne izdelke +NoEditVariants=Pojdite na kartico Nadrejeni izdelek in uredite vpliv različic na ceno na zavihku različic +ConfirmCloneProductCombinations=Ali želite kopirati vse različice izdelka v drugi matični izdelek z dano referenco? +CloneDestinationReference=Referenca ciljnega izdelka +ErrorCopyProductCombinations=Med kopiranjem različic izdelka je prišlo do napake +ErrorDestinationProductNotFound=Ciljni izdelek ni bil najden +ErrorProductCombinationNotFound=Različica izdelka ni bila najdena +ActionAvailableOnVariantProductOnly=Akcija je na voljo samo za različico izdelka +ProductsPricePerCustomer=Cene izdelkov na stranko +ProductSupplierExtraFields=Dodatni atributi (cene dobaviteljev) +DeleteLinkedProduct=Izbrišite podrejeni izdelek, povezan s kombinacijo +AmountUsedToUpdateWAP=Znesek enote za posodobitev tehtane povprečne cene PMPValue=Uravnotežena povprečna cena PMPValueShort=UPC -mandatoryperiod=Mandatory periods -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined -mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period -mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
    Note that the message is a warning and not a blocking error. -DefaultBOM=Default BOM -DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. +mandatoryperiod=Obvezna obdobja +mandatoryPeriodNeedTobeSet=Opomba: Določiti je treba obdobje (začetni in končni datum). +mandatoryPeriodNeedTobeSetMsgValidate=Storitev zahteva začetno in končno obdobje +mandatoryHelper=Označite to, če želite sporočilo uporabniku pri ustvarjanju/potrjevanju računa, komercialnega predloga, prodajnega naročila brez vnosa začetnega in končnega datuma v vrsticah s to storitvijo.
    Upoštevajte, da je sporočilo opozorilo in ne napaka pri blokiranju. +DefaultBOM=Privzeta kosovnica +DefaultBOMDesc=Privzeta kosovnica, ki se priporoča za izdelavo tega izdelka. To polje je mogoče nastaviti le, če je narava izdelka '%s'. Rank=Rank -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +MergeOriginProduct=Podvojen izdelek (izdelek, ki ga želite izbrisati) +MergeProducts=Združite izdelke +ConfirmMergeProducts=Ali ste prepričani, da želite združiti izbrani izdelek s trenutnim? Vsi povezani objekti (računi, naročila, ...) bodo premaknjeni na trenutni izdelek, nato pa bo izbrani izdelek izbrisan. +ProductsMergeSuccess=Izdelki so bili združeni +ErrorsProductsMerge=Napake v izdelkih se združijo +SwitchOnSaleStatus=Vklopite status prodaje +SwitchOnPurchaseStatus=Vklopite status nakupa +UpdatePrice=Increase/decrease customer price +StockMouvementExtraFields= Dodatna polja (gibanje delnic) +InventoryExtraFields= Dodatna polja (popis) +ScanOrTypeOrCopyPasteYourBarCodes=Skenirajte ali vnesite ali kopirajte/prilepite svoje črtne kode +PuttingPricesUpToDate=Posodobite cene s trenutno znanimi cenami +PMPExpected=Pričakovan PMP +ExpectedValuation=Pričakovano vrednotenje +PMPReal=Pravi PMP +RealValuation=Pravo vrednotenje +ConfirmEditExtrafield = Izberite dodatno polje, ki ga želite spremeniti +ConfirmEditExtrafieldQuestion = Ali ste prepričani, da želite spremeniti to dodatno polje? +ModifyValueExtrafields = Spremenite vrednost dodatnega polja +OrProductsWithCategories=Ali izdelki z oznakami/kategorijami diff --git a/htdocs/langs/sl_SI/projects.lang b/htdocs/langs/sl_SI/projects.lang index fa618707c71..2f9fe087ead 100644 --- a/htdocs/langs/sl_SI/projects.lang +++ b/htdocs/langs/sl_SI/projects.lang @@ -1,65 +1,68 @@ # Dolibarr language file - Source file is en_US - projects -RefProject=Ref. project -ProjectRef=Project ref. +RefProject=Ref. projekt +ProjectRef=Ref. projekta ProjectId=Id projekta -ProjectLabel=Project label -ProjectsArea=Projects Area -ProjectStatus=Project status +ProjectLabel=Oznaka projekta +ProjectsArea=Območje projektov +ProjectStatus=Status projekta SharedProject=Projekti v skupni rabi -PrivateProject=Assigned contacts -ProjectsImContactFor=Projects for which I am explicitly a contact -AllAllowedProjects=All project I can read (mine + public) +PrivateProject=Dodeljeni kontakti +ProjectsImContactFor=Projekti, za katere sem izrecno kontaktna oseba +AllAllowedProjects=Vsi projekti, ki jih lahko preberem (moj + javni) AllProjects=Vsi projekti -MyProjectsDesc=This view is limited to the projects that you are a contact for +MyProjectsDesc=Ta pogled je omejen na projekte, za katere ste kontakt ProjectsPublicDesc=To pogled predstavlja vse projekte, za katere imate dovoljenje za branje. -TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. +TasksOnProjectsPublicDesc=Ta pogled predstavlja vse naloge na projektih, ki jih lahko berete. ProjectsPublicTaskDesc=Ta pogled predstavlja vse projekte in naloge, za katere imate dovoljenje za branje. ProjectsDesc=Ta pogled predstavlja vse projekte (vaše uporabniško dovoljenje vam omogoča ogled vseh). -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything). -MyTasksDesc=This view is limited to the projects or tasks that you are a contact for -OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible). -ClosedProjectsAreHidden=Closed projects are not visible. +TasksOnProjectsDesc=Ta pogled predstavlja vse naloge na vseh projektih (vaša uporabniška dovoljenja vam dajejo dovoljenje za ogled vsega). +MyTasksDesc=Ta pogled je omejen na projekte ali naloge, za katere ste kontakt +OnlyOpenedProject=Vidni so samo odprti projekti (projekti v osnutku ali zaprtem statusu niso vidni). +ClosedProjectsAreHidden=Zaprti projekti niso vidni. TasksPublicDesc=Ta pogled predstavlja vse projekte in naloge, za katere imate dovoljenje za branje. TasksDesc=Ta pogled predstavlja vse projekte in naloge (vaše uporabniško dovoljenje vam omogoča ogled vseh). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. -ImportDatasetTasks=Tasks of projects -ProjectCategories=Project tags/categories +AllTaskVisibleButEditIfYouAreAssigned=Vidna so vsa opravila za kvalificirane projekte, vendar lahko vnesete čas samo za opravilo, ki je dodeljeno izbranemu uporabniku. Dodelite nalogo, če ji morate vnesti čas. +OnlyYourTaskAreVisible=Vidna so le opravila, ki so vam dodeljena. Če morate pri opravilu vnesti čas in opravilo tukaj ni vidno, potem morate opravilo dodeliti sebi. +ImportDatasetProjects=Projects or opportunities +ImportDatasetTasks=Naloge projektov +ProjectCategories=Projektne oznake/kategorije NewProject=Nov projekt AddProject=Ustvari projekt DeleteAProject=Izbriši projekt DeleteATask=Izbriši nalogo -ConfirmDeleteAProject=Are you sure you want to delete this project? -ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Open projects -OpenedTasks=Open tasks -OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status -OpportunitiesStatusForProjects=Leads amount of projects by status +ConfirmDeleteAProject=Ali ste prepričani, da želite izbrisati ta projekt? +ConfirmDeleteATask=Ali ste prepričani, da želite izbrisati to opravilo? +OpenedProjects=Odprti projekti +OpenedTasks=Odprte naloge +OpportunitiesStatusForOpenedProjects=Vodi število odprtih projektov po statusu +OpportunitiesStatusForProjects=Vodi količino projektov po statusu ShowProject=Prikaži projekt ShowTask=Prikaži naloge +SetThirdParty=Nastavite partnerja SetProject=Nastavi projekt +OutOfProject=Izven projekta NoProject=Nimate definiranega ali lastnega projekta -NbOfProjects=Number of projects -NbOfTasks=Number of tasks +NbOfProjects=Število projektov +NbOfTasks=Število nalog TimeSpent=Porabljen čas -TimeSpentByYou=Time spent by you -TimeSpentByUser=Time spent by user +TimeSpentByYou=Čas, ki ga porabite vi +TimeSpentByUser=Čas, ki ga porabi uporabnik TimesSpent=Porabljen čas -TaskId=Task ID -RefTask=Task ref. -LabelTask=Task label -TaskTimeSpent=Time spent on tasks +TaskId=ID opravila +RefTask=Naloga ref. +LabelTask=Oznaka opravila +TaskTimeSpent=Čas, porabljen za naloge TaskTimeUser=Uporabnik TaskTimeNote=Beležka TaskTimeDate=Datum -TasksOnOpenedProject=Tasks on open projects -WorkloadNotDefined=Workload not defined +TasksOnOpenedProject=Naloge na odprtih projektih +WorkloadNotDefined=Obremenitev ni definirana NewTimeSpent=Porabljen čas MyTimeSpent=Moj porabljen čas -BillTime=Bill the time spent -BillTimeShort=Bill time -TimeToBill=Time not billed -TimeBilled=Time billed +BillTime=Zaračunajte porabljen čas +BillTimeShort=Čas računa +TimeToBill=Čas ni zaračunan +TimeBilled=Obračunan čas Tasks=Naloge Task=Naloga TaskDateStart=Datum začetka naloge @@ -67,80 +70,81 @@ TaskDateEnd=Datum konca naloge TaskDescription=Opis naloge NewTask=Nova naloga AddTask=Ustvari nalogo -AddTimeSpent=Create time spent -AddHereTimeSpentForDay=Add here time spent for this day/task -AddHereTimeSpentForWeek=Add here time spent for this week/task +AddTimeSpent=Ustvari porabljen čas +AddHereTimeSpentForDay=Sem dodajte čas, porabljen za ta dan/nalogo +AddHereTimeSpentForWeek=Sem dodajte čas, porabljen za ta teden/nalogo Activity=Aktivnost Activities=Naloge/aktivnosti MyActivities=Moje naloge/aktivnosti MyProjects=Moji projekti -MyProjectsArea=My projects Area +MyProjectsArea=Področje mojih projektov DurationEffective=Efektivno trajanje -ProgressDeclared=Declared real progress -TaskProgressSummary=Task progress -CurentlyOpenedTasks=Curently open tasks -TheReportedProgressIsLessThanTheCalculatedProgressionByX=The declared real progress is less %s than the progress on consumption -TheReportedProgressIsMoreThanTheCalculatedProgressionByX=The declared real progress is more %s than the progress on consumption -ProgressCalculated=Progress on consumption -WhichIamLinkedTo=which I'm linked to -WhichIamLinkedToProject=which I'm linked to project +ProgressDeclared=Razglašen pravi napredek +TaskProgressSummary=Napredek naloge +CurentlyOpenedTasks=Trenutno odprte naloge +TheReportedProgressIsLessThanTheCalculatedProgressionByX=Deklarirani dejanski napredek je manjši %s od napredka pri porabi +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=Deklarirani dejanski napredek je večji %s kot napredek pri porabi +ProgressCalculated=Napredek pri porabi +WhichIamLinkedTo=s katerim sem povezan +WhichIamLinkedToProject=s katerim sem povezan s projektom Time=Čas -TimeConsumed=Consumed -ListOfTasks=List of tasks -GoToListOfTimeConsumed=Go to list of time consumed -GanttView=Gantt View -ListWarehouseAssociatedProject=List of warehouses associated to the project -ListProposalsAssociatedProject=List of the commercial proposals related to the project -ListOrdersAssociatedProject=List of sales orders related to the project -ListInvoicesAssociatedProject=List of customer invoices related to the project -ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project -ListSupplierOrdersAssociatedProject=List of purchase orders related to the project -ListSupplierInvoicesAssociatedProject=List of vendor invoices related to the project -ListContractAssociatedProject=List of contracts related to the project -ListShippingAssociatedProject=List of shippings related to the project -ListFichinterAssociatedProject=List of interventions related to the project -ListExpenseReportsAssociatedProject=List of expense reports related to the project -ListDonationsAssociatedProject=List of donations related to the project -ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project -ListSalariesAssociatedProject=List of payments of salaries related to the project -ListActionsAssociatedProject=List of events related to the project -ListMOAssociatedProject=List of manufacturing orders related to the project -ListTaskTimeUserProject=List of time consumed on tasks of project -ListTaskTimeForTask=List of time consumed on task -ActivityOnProjectToday=Activity on project today -ActivityOnProjectYesterday=Activity on project yesterday +TimeConsumed=Porabljeno +ListOfTasks=Seznam nalog +GoToListOfTimeConsumed=Pojdite na seznam porabljenega časa +GanttView=Ganttov pogled +ListWarehouseAssociatedProject=Seznam skladišč, povezanih s projektom +ListProposalsAssociatedProject=Seznam komercialnih predlogov, povezanih s projektom +ListOrdersAssociatedProject=Seznam prodajnih naročil, povezanih s projektom +ListInvoicesAssociatedProject=Seznam računov strank, povezanih s projektom +ListPredefinedInvoicesAssociatedProject=Seznam predlog računov strank, povezanih s projektom +ListSupplierOrdersAssociatedProject=Seznam naročilnic, povezanih s projektom +ListSupplierInvoicesAssociatedProject=Seznam prejetih računov, ki so povezani s projektom +ListContractAssociatedProject=Seznam pogodb v zvezi s projektom +ListShippingAssociatedProject=Seznam pošiljk, povezanih s projektom +ListFichinterAssociatedProject=Seznam posegov v zvezi s projektom +ListExpenseReportsAssociatedProject=Seznam poročil o stroških, povezanih s projektom +ListDonationsAssociatedProject=Seznam donacij, povezanih s projektom +ListVariousPaymentsAssociatedProject=Seznam raznih plačil, povezanih s projektom +ListSalariesAssociatedProject=Seznam izplačil plač v zvezi s projektom +ListActionsAssociatedProject=Seznam dogodkov, povezanih s projektom +ListMOAssociatedProject=Seznam proizvodnih naročil, povezanih s projektom +ListTaskTimeUserProject=Seznam časa, porabljenega za naloge projekta +ListTaskTimeForTask=Seznam časa, porabljenega za nalogo +ActivityOnProjectToday=Današnja aktivnost na projektu +ActivityOnProjectYesterday=Aktivnost na projektu včeraj ActivityOnProjectThisWeek=Aktivnosti na projektu v tem tednu ActivityOnProjectThisMonth=Aktivnosti na projektu v tem mesecu ActivityOnProjectThisYear=Aktivnosti na projektu v tem letu ChildOfProjectTask=Podrejen projektu/nalogi -ChildOfTask=Child of task -TaskHasChild=Task has child +ChildOfTask=Otrok naloge +TaskHasChild=Naloga ima otroka NotOwnerOfProject=Niste lastnik tega zasebnega projekta AffectedTo=Učinkuje na -CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See tab '%s'. +CantRemoveProject=Tega projekta ni mogoče odstraniti, ker se nanj sklicujejo nekateri drugi objekti (računi, naročila ali drugo). Glej zavihek '%s'. ValidateProject=Potrdite projekt -ConfirmValidateProject=Are you sure you want to validate this project? +ConfirmValidateProject=Ali ste prepričani, da želite potrditi ta projekt? CloseAProject=Zaprite projekt -ConfirmCloseAProject=Are you sure you want to close this project? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +ConfirmCloseAProject=Ali ste prepričani, da želite zapreti ta projekt? +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Odprite projekt -ConfirmReOpenAProject=Are you sure you want to re-open this project? +ConfirmReOpenAProject=Ali ste prepričani, da želite znova odpreti ta projekt? ProjectContact=Privatni projekti -TaskContact=Task contacts +TaskContact=Kontakti nalog ActionsOnProject=Aktivnosti o projektu YouAreNotContactOfProject=Niste kontakt tega privatnega projekta -UserIsNotContactOfProject=User is not a contact of this private project +UserIsNotContactOfProject=Uporabnik ni kontakt tega zasebnega projekta DeleteATimeSpent=Izbrišite porabljen čas -ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? -DoNotShowMyTasksOnly=See also tasks not assigned to me -ShowMyTasksOnly=View only tasks assigned to me -TaskRessourceLinks=Contacts of task +ConfirmDeleteATimeSpent=Ali ste prepričani, da želite izbrisati ta porabljen čas? +DoNotShowMyTasksOnly=Glej tudi naloge, ki mi niso dodeljene +ShowMyTasksOnly=Prikaži samo naloge, ki so mi dodeljene +TaskRessourceLinks=Kontakti naloge ProjectsDedicatedToThisThirdParty=Projekti, ki so povezani s tem partnerjem NoTasks=Ni nalog za ta projekt LinkedToAnotherCompany=Povezane z drugimi partnerji -TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +TaskIsNotAssignedToUser=Naloga ni dodeljena uporabniku. Uporabite gumb ' %s ', da zdaj dodelite nalogo. ErrorTimeSpentIsEmpty=Ni porabljenega časa -TimeRecordingRestrictedToNMonthsBack=Time recording is restricted to %s months back +TimeRecordingRestrictedToNMonthsBack=Čas snemanja je omejen na %s mesecev nazaj ThisWillAlsoRemoveTasks=Ta aktivnost bo tudi izbrisala vse naloge projekta (%s trenutne naloge) in vse vnose porabljenega časa. IfNeedToUseOtherObjectKeepEmpty=Če nekateri objekti (računi, naročila, ...), ki pripadajo drugemu partnerju, morajo biti vezani na projekt, ki se kreira, pustite polje prazno, da je projekt lahko vezan na več partnerjev. CloneTasks=Kloniraj naloge @@ -148,28 +152,28 @@ CloneContacts=Kloniraj kontakte CloneNotes=Kloniraj opombe CloneProjectFiles=Kloniraj skupne datoteke projekta CloneTaskFiles=Kloniraj skupno(e) datoteko(e) naloge (če je bila naloga klonirana) -CloneMoveDate=Update project/tasks dates from now? -ConfirmCloneProject=Are you sure to clone this project? -ProjectReportDate=Change task dates according to new project start date +CloneMoveDate=Želite posodobiti datume projektov/opravil? +ConfirmCloneProject=Ste prepričani, da želite klonirati ta projekt? +ProjectReportDate=Spremenite datume nalog v skladu z novim datumom začetka projekta ErrorShiftTaskDate=Nemogoče je spremeniti datum naloge glede na nov začetni datum projekta ProjectsAndTasksLines=Projekti in naloge ProjectCreatedInDolibarr=Projekt %s je bil ustvarjen -ProjectValidatedInDolibarr=Project %s validated -ProjectModifiedInDolibarr=Project %s modified -TaskCreatedInDolibarr=Task %s created -TaskModifiedInDolibarr=Task %s modified -TaskDeletedInDolibarr=Task %s deleted -OpportunityStatus=Lead status -OpportunityStatusShort=Lead status -OpportunityProbability=Lead probability -OpportunityProbabilityShort=Lead probab. -OpportunityAmount=Lead amount -OpportunityAmountShort=Lead amount -OpportunityWeightedAmount=Opportunity weighted amount -OpportunityWeightedAmountShort=Opp. weighted amount -OpportunityAmountAverageShort=Average lead amount -OpportunityAmountWeigthedShort=Weighted lead amount -WonLostExcluded=Won/Lost excluded +ProjectValidatedInDolibarr=Projekt %s potrjen +ProjectModifiedInDolibarr=Projekt %s spremenjen +TaskCreatedInDolibarr=Naloga %s ustvarjena +TaskModifiedInDolibarr=Naloga %s spremenjena +TaskDeletedInDolibarr=Naloga %s izbrisana +OpportunityStatus=Stanje potencialne stranke +OpportunityStatusShort=Stanje potencialne stranke +OpportunityProbability=Verjetnost svinca +OpportunityProbabilityShort=Svinec verjetno. +OpportunityAmount=Znesek potencialne stranke +OpportunityAmountShort=Znesek potencialne stranke +OpportunityWeightedAmount=Amount of opportunity, weighted by probability +OpportunityWeightedAmountShort=Opp. uteženi znesek +OpportunityAmountAverageShort=Povprečna možna količina +OpportunityAmountWeigthedShort=Ponderirana količina svinca +WonLostExcluded=Zmaga/izguba izključena ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Vodja projekta TypeContact_project_external_PROJECTLEADER=Vodja projekta @@ -181,116 +185,117 @@ TypeContact_project_task_internal_TASKCONTRIBUTOR=Sodelavec TypeContact_project_task_external_TASKCONTRIBUTOR=Sodelavec SelectElement=Izberi element AddElement=Povezava do elementa -LinkToElementShort=Link to +LinkToElementShort=Povezava do # Documents models -DocumentModelBeluga=Project document template for linked objects overview -DocumentModelBaleine=Project document template for tasks -DocumentModelTimeSpent=Project report template for time spent +DocumentModelBeluga=Predloga projektnega dokumenta za pregled povezanih objektov +DocumentModelBaleine=Predloga projektnega dokumenta za naloge +DocumentModelTimeSpent=Predloga poročila o projektu za porabljen čas PlannedWorkload=Planirana delovna obremenitev -PlannedWorkloadShort=Workload -ProjectReferers=Related items +PlannedWorkloadShort=Delovna obremenitev +ProjectReferers=Sorodni predmeti ProjectMustBeValidatedFirst=Projekt mora biti najprej potrjen -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. -FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time -InputPerDay=Input per day -InputPerWeek=Input per week -InputPerMonth=Input per month -InputDetail=Input detail -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s -ProjectsWithThisUserAsContact=Projects with this user as contact -ProjectsWithThisContact=Projects with this contact -TasksWithThisUserAsContact=Tasks assigned to this user -ResourceNotAssignedToProject=Not assigned to project -ResourceNotAssignedToTheTask=Not assigned to the task -NoUserAssignedToTheProject=No users assigned to this project -TimeSpentBy=Time spent by -TasksAssignedTo=Tasks assigned to -AssignTaskToMe=Assign task to myself -AssignTaskToUser=Assign task to %s -SelectTaskToAssign=Select task to assign... -AssignTask=Assign -ProjectOverview=Overview -ManageTasks=Use projects to follow tasks and/or report time spent (timesheets) -ManageOpportunitiesStatus=Use projects to follow leads/opportinuties -ProjectNbProjectByMonth=No. of created projects by month -ProjectNbTaskByMonth=No. of created tasks by month -ProjectOppAmountOfProjectsByMonth=Amount of leads by month -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month -ProjectOpenedProjectByOppStatus=Open project|lead by lead status -ProjectsStatistics=Statistics on projects or leads -TasksStatistics=Statistics on tasks of projects or leads -TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. -IdTaskTime=Id task time -YouCanCompleteRef=If you want to complete the ref with some suffix, it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-MYSUFFIX -OpenedProjectsByThirdparties=Open projects by third parties -OnlyOpportunitiesShort=Only leads -OpenedOpportunitiesShort=Open leads -NotOpenedOpportunitiesShort=Not an open lead -NotAnOpportunityShort=Not a lead -OpportunityTotalAmount=Total amount of leads -OpportunityPonderatedAmount=Weighted amount of leads -OpportunityPonderatedAmountDesc=Leads amount weighted with probability -OppStatusPROSP=Prospection -OppStatusQUAL=Qualification +MustBeValidatedToBeSigned=%s mora biti najprej preverjen, da je nastavljen na Podpisano. +FirstAddRessourceToAllocateTime=Dodelite uporabniški vir kot stik projekta za dodelitev časa +InputPerDay=Vnos na dan +InputPerWeek=Vnos na teden +InputPerMonth=Vnos na mesec +InputDetail=Vnos podrobnosti +TimeAlreadyRecorded=To je že zabeležen čas, porabljen za to nalogo/dan in uporabnika %s +ProjectsWithThisUserAsContact=Projekti s tem uporabnikom kot stikom +ProjectsWithThisContact=Projekti s tem kontaktom +TasksWithThisUserAsContact=Naloge, dodeljene temu uporabniku +ResourceNotAssignedToProject=Ni dodeljeno projektu +ResourceNotAssignedToTheTask=Ni dodeljeno nalogi +NoUserAssignedToTheProject=Temu projektu ni dodeljen noben uporabnik +TimeSpentBy=Čas, porabljen za +TasksAssignedTo=Naloge dodeljene +AssignTaskToMe=Dodeli nalogo sebi +AssignTaskToUser=Dodeli nalogo %s +SelectTaskToAssign=Izberite nalogo za dodelitev ... +AssignTask=Dodeli +ProjectOverview=Pregled +ManageTasks=Uporabite projekte za spremljanje nalog in/ali poročanje o porabljenem času (časovnice) +ManageOpportunitiesStatus=Uporabite projekte za sledenje potencialom/priložnostim +ProjectNbProjectByMonth=Število ustvarjenih projektov po mesecih +ProjectNbTaskByMonth=Število ustvarjenih opravil po mesecih +ProjectOppAmountOfProjectsByMonth=Količina potencialnih strank po mesecih +ProjectWeightedOppAmountOfProjectsByMonth=Ponderirano število potencialnih strank po mesecih +ProjectOpenedProjectByOppStatus=Odprt projekt|status vodilnega moža +ProjectsStatistics=Statistika projektov ali potencialnih strank +TasksStatistics=Statistika nalog projektov ali potencialnih strank +TaskAssignedToEnterTime=Naloga dodeljena. Vnos časa za to nalogo bi moral biti mogoč. +IdTaskTime=Čas opravila ID +YouCanCompleteRef=Če želite ref dopolniti s pripono, je priporočljivo dodati znak - za ločevanje, tako da bo samodejno številčenje še vedno delovalo pravilno za naslednje projekte. Na primer %s-MYSUFFIX +OpenedProjectsByThirdparties=Odprti projekti tretjih oseb +OnlyOpportunitiesShort=Samo vodi +OpenedOpportunitiesShort=Odprti vodi +NotOpenedOpportunitiesShort=Ni odprta povezava +NotAnOpportunityShort=Ne vodi +OpportunityTotalAmount=Skupno število potencialnih strank +OpportunityPonderatedAmount=Ponderirana količina potencialnih strank +OpportunityPonderatedAmountDesc=Količina možnih strank, tehtana z verjetnostjo +OppStatusPROSP=Potencial +OppStatusQUAL=Kvalifikacija OppStatusPROPO=Ponudba -OppStatusNEGO=Negociation +OppStatusNEGO=Pogajanje OppStatusPENDING=Na čakanju -OppStatusWON=Won -OppStatusLOST=Lost -Budget=Budget -AllowToLinkFromOtherCompany=Allow to link project from other company

    Supported values:
    - Keep empty: Can link any project of the company (default)
    - "all": Can link any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)
    -LatestProjects=Latest %s projects -LatestModifiedProjects=Latest %s modified projects -OtherFilteredTasks=Other filtered tasks -NoAssignedTasks=No assigned tasks found (assign project/tasks to the current user from the top select box to enter time on it) -ThirdPartyRequiredToGenerateInvoice=A third party must be defined on project to be able to invoice it. -ThirdPartyRequiredToGenerateInvoice=A third party must be defined on project to be able to invoice it. -ChooseANotYetAssignedTask=Choose a task not yet assigned to you +OppStatusWON=zmagal +OppStatusLOST=Izgubljeno +Budget=Proračun +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    +LatestProjects=Najnovejši projekti %s +LatestModifiedProjects=Najnovejši %s spremenjeni projekti +OtherFilteredTasks=Druga filtrirana opravila +NoAssignedTasks=Ni dodeljenih nalog (dodelite projekt/naloge trenutnemu uporabniku iz zgornjega izbirnega polja, da vnesete čas zanj) +ThirdPartyRequiredToGenerateInvoice=Na projektu mora biti določen partner, da ji lahko izda račun. +ThirdPartyRequiredToGenerateInvoice=Na projektu mora biti določen partner, da ji lahko izda račun. +ChooseANotYetAssignedTask=Izberite nalogo, ki vam še ni dodeljena # Comments trans -AllowCommentOnTask=Allow user comments on tasks -AllowCommentOnProject=Allow user comments on projects -DontHavePermissionForCloseProject=You do not have permissions to close the project %s -DontHaveTheValidateStatus=The project %s must be open to be closed -RecordsClosed=%s project(s) closed -SendProjectRef=Information project %s -ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Salaries' must be enabled to define employee hourly rate to have time spent valorized -NewTaskRefSuggested=Task ref already used, a new task ref is required -TimeSpentInvoiced=Time spent billed +AllowCommentOnTask=Dovolite komentarje uporabnikov o nalogah +AllowCommentOnProject=Dovolite komentarje uporabnikov o projektih +DontHavePermissionForCloseProject=Nimate dovoljenj za zaprtje projekta %s +DontHaveTheValidateStatus=Projekt %s mora biti odprt, da se lahko zapre +RecordsClosed=%s projekt(i) zaprt(i). +SendProjectRef=Informacijski projekt %s +ModuleSalaryToDefineHourlyRateMustBeEnabled=Modul 'Plače' mora biti omogočen za določanje urne postavke zaposlenega za valorizacijo porabljenega časa +NewTaskRefSuggested=Referenca opravila je že uporabljena, potreben je nov ref naloge +TimeSpentInvoiced=Obračunan porabljeni čas TimeSpentForIntervention=Porabljen čas TimeSpentForInvoice=Porabljen čas -OneLinePerUser=One line per user -ServiceToUseOnLines=Service to use on lines -InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project -InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project -ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. -ProjectFollowOpportunity=Follow opportunity -ProjectFollowTasks=Follow tasks or time spent -Usage=Usage -UsageOpportunity=Usage: Opportunity -UsageTasks=Usage: Tasks -UsageBillTimeShort=Usage: Bill time -InvoiceToUse=Draft invoice to use -InterToUse=Draft intervention to use +OneLinePerUser=Ena vrstica na uporabnika +ServiceToUseOnLines=Storitev za privzeto uporabo na linijah +InvoiceGeneratedFromTimeSpent=Račun %s je bil ustvarjen iz časa, porabljenega za projekt +InterventionGeneratedFromTimeSpent=Intervencija %s je bila ustvarjena iz časa, porabljenega za projekt +ProjectBillTimeDescription=Preverite, ali vnašate časovni list za naloge projekta IN nameravate ustvariti račun(e) iz časovnega lista za zaračunavanje stranki projekta (ne preverjajte, če nameravate ustvariti račun, ki ne temelji na vnesenih časovnih listih). Opomba: Če želite ustvariti račun, pojdite na zavihek »Porabljeni čas« projekta in izberite vrstice, ki jih želite vključiti. +ProjectFollowOpportunity=Sledite priložnosti +ProjectFollowTasks=Sledite nalogam ali porabljenemu času +Usage=Uporaba +UsageOpportunity=Uporaba: Priložnost +UsageTasks=Uporaba: Naloge +UsageBillTimeShort=Uporaba: Čas obračuna +InvoiceToUse=Osnutek računa za uporabo +InterToUse=Osnutek intervencije za uporabo NewInvoice=Nov račun NewInter=Nova intervencija -OneLinePerTask=One line per task -OneLinePerPeriod=One line per period -OneLinePerTimeSpentLine=One line for each time spent declaration -AddDetailDateAndDuration=With date and duration into line description -RefTaskParent=Ref. Parent Task -ProfitIsCalculatedWith=Profit is calculated using -AddPersonToTask=Add also to tasks -UsageOrganizeEvent=Usage: Event Organization -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. -SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them -ProjectTasksWithoutTimeSpent=Project tasks without time spent -FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. -ProjectsHavingThisContact=Projects having this contact -StartDateCannotBeAfterEndDate=End date cannot be before start date -ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +OneLinePerTask=Ena vrstica na nalogo +OneLinePerPeriod=Ena vrstica na obdobje +OneLinePerTimeSpentLine=Ena vrstica za vsako deklaracijo porabljenega časa +AddDetailDateAndDuration=Z datumom in trajanjem v opis vrstice +RefTaskParent=Ref. Starševska naloga +ProfitIsCalculatedWith=Dobiček se izračuna z uporabo +AddPersonToTask=Dodajte tudi opravilom +UsageOrganizeEvent=Uporaba: Organizacija dogodkov +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Razvrsti projekt kot zaprt, ko so dokončane vse njegove naloge (100%% napredek) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. +SelectLinesOfTimeSpentToInvoice=Izberite vrstice porabljenega časa, ki niso zaračunane, nato pa množično dejanje »Ustvari račun«, da jih zaračunate +ProjectTasksWithoutTimeSpent=Projektne naloge brez porabljenega časa +FormForNewLeadDesc=Hvala, ker izpolnite spodnji obrazec, da nas kontaktirate. Prav tako nam lahko pošljete e-pošto neposredno na %s . +ProjectsHavingThisContact=Projekti, ki imajo ta stik +StartDateCannotBeAfterEndDate=Končni datum ne more biti pred začetnim datumom +ErrorPROJECTLEADERRoleMissingRestoreIt=Vloga »VODJA PROJEKTA« manjka ali je bila deaktivirana, obnovite jo v slovarju vrst stikov +LeadPublicFormDesc=Tukaj lahko omogočite javno stran, da svojim potencialnim strankam omogočite prvi stik z vami prek javnega spletnega obrazca +EnablePublicLeadForm=Omogoči javni obrazec za stik +NewLeadbyWeb=Vaše sporočilo ali zahteva je bila zabeležena. Kmalu vam bomo odgovorili ali vas kontaktirali. +NewLeadForm=Nov kontaktni obrazec +LeadFromPublicForm=Spletni potencialni kupec iz javnega obrazca +ExportAccountingReportButtonLabel=Pridobite poročilo diff --git a/htdocs/langs/sl_SI/propal.lang b/htdocs/langs/sl_SI/propal.lang index f23ec13ac66..5fb034d2cd3 100644 --- a/htdocs/langs/sl_SI/propal.lang +++ b/htdocs/langs/sl_SI/propal.lang @@ -9,20 +9,20 @@ PdfCommercialProposalTitle=Ponudba ProposalCard=Kartica ponudbe NewProp=Nova komercialna ponudba NewPropal=Nova ponudba -Prospect=Možna stranka +Prospect=Potencialni kupec DeleteProp=Izbriši komercialno ponudbo ValidateProp=Potrdi komercialno ponudbo AddProp=Ustvari predlog -ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? -ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? -LastPropals=Latest %s proposals -LastModifiedProposals=Latest %s modified proposals +ConfirmDeleteProp=Ali ste prepričani, da želite izbrisati ta komercialni predlog? +ConfirmValidateProp=Ali ste prepričani, da želite potrditi ta komercialni predlog pod imenom %s ? +LastPropals=Najnovejši %s predlogi +LastModifiedProposals=Najnovejši %s spremenjeni predlogi AllPropals=Vse ponudbe SearchAProposal=Išči ponudbo -NoProposal=No proposal +NoProposal=Brez predloga ProposalsStatistics=Statistika komercialnih ponudb NumberOfProposalsByMonth=Število po mesecih -AmountOfProposalsByMonthHT=Amount by month (excl. tax) +AmountOfProposalsByMonthHT=Znesek po mesecih (brez davka) NbOfProposals=Število komercialnih ponudb ShowPropal=Prikaži ponudbo PropalsDraft=Osnutki @@ -33,7 +33,7 @@ PropalStatusSigned=Podpisana (potrebno fakturirati) PropalStatusNotSigned=Nepodpisana (zaprta) PropalStatusBilled=Fakturirana PropalStatusDraftShort=Osnutek -PropalStatusValidatedShort=Validated (open) +PropalStatusValidatedShort=Potrjeno (odprto) PropalStatusClosedShort=Zaprta PropalStatusSignedShort=Podpisana PropalStatusNotSignedShort=Nepodpisana @@ -47,53 +47,72 @@ SendPropalByMail=Pošlji komercialno ponudbo po pošti DatePropal=Datum ponudbe DateEndPropal=Datum veljavnosti ponudbe ValidityDuration=Trajanje veljavnosti -SetAcceptedRefused=Set accepted/refused +SetAcceptedRefused=Nastavite sprejeto/zavrnjeno ErrorPropalNotFound=Ponudbe %s ne najdem AddToDraftProposals=Dodaj osnutku ponudbe NoDraftProposals=Ni osnutkov ponudbe CopyPropalFrom=Kreiraj komercialno ponudbo s kopiranjem obstoječe ponudbe -CreateEmptyPropal=Create empty commercial proposal or from list of products/services +CreateEmptyPropal=Ustvarite prazen komercialni predlog ali s seznama izdelkov/storitev DefaultProposalDurationValidity=Privzeto trajanje veljavnosti komercialne ponudbe (v dneh) -UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address -ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +DefaultPuttingPricesUpToDate=Privzeto posodobi cene s trenutno znanimi cenami za kloniranje predloga +UseCustomerContactAsPropalRecipientIfExist=Kot naslov prejemnika predloga uporabite kontakt/naslov z vrsto »Predlog za nadaljnje ukrepanje«, če je določen namesto naslova partnerja +ConfirmClonePropal=Ali ste prepričani, da želite klonirati komercialni predlog %s ? +ConfirmReOpenProp=Ali ste prepričani, da želite odpreti komercialni predlog %s ? ProposalsAndProposalsLines=Komercialna ponudba in vrstice ProposalLine=Vrstica ponudbe -ProposalLines=Proposal lines +ProposalLines=Vrstice predlogov AvailabilityPeriod=Dobavni rok SetAvailability=Nastavi dobavni rok AfterOrder=od naročila OtherProposals=Ostale ponudbe + ##### Availability ##### AvailabilityTypeAV_NOW=Takoj AvailabilityTypeAV_1W=1 teden AvailabilityTypeAV_2W=2 tedna AvailabilityTypeAV_3W=3 tedne AvailabilityTypeAV_1M=1 mesec -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Predstavnik za sledenje ponudbe TypeContact_propal_external_BILLING=Kontakt za račun pri kupcu TypeContact_propal_external_CUSTOMER=Kontakt pri kupcu za sledenje ponudbe -TypeContact_propal_external_SHIPPING=Customer contact for delivery +TypeContact_propal_external_SHIPPING=Kontakt stranke za dostavo + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=ni mogoče nastaviti nepodpisanega +CaseFollowedBy=Sledi primer +ConfirmMassNoSignature=Množično Nepodpisano potrdilo +ConfirmMassNoSignatureQuestion=Ali ste prepričani, da želite nastaviti nepodpisane izbrane zapise? +ConfirmMassSignature=Potrditev množičnega podpisa +ConfirmMassSignatureQuestion=Ali ste prepričani, da želite podpisati izbrane zapise? +ConfirmMassValidation=Potrditev množičnega preverjanja +ConfirmMassValidationQuestion=Ali ste prepričani, da želite potrditi izbrane zapise? +ConfirmRefusePropal=Ali ste prepričani, da želite zavrniti ta komercialni predlog? +ContractSigned=Pogodba podpisana +DefaultModelPropalClosed=Privzeta predloga za zaključek ponudbe (nefakturirana) DefaultModelPropalCreate=Ustvarjanje privzetega modela DefaultModelPropalToBill=Privzeta predloga za zaključek ponudbe (za fakturiranje) -DefaultModelPropalClosed=Privzeta predloga za zaključek ponudbe (nefakturirana) +DocModelAzurDescription=Popoln model predloga (stara izvedba predloge Cyan) +DocModelCyanDescription=Popoln model predloge +FichinterSigned=Intervencija podpisana +IdProduct=ID izdelka +IdProposal=ID predloga +IsNotADraft=ni osnutek +LineBuyPriceHT=Nakupna cena Znesek brez davka za vrstico +NoSign=Zavrnitev +NoSigned=niz ni podpisan +PassedInOpenStatus=je bil potrjen +PropalAlreadyRefused=Predlog že zavrnjen +PropalAlreadySigned=Predlog že sprejet +PropalRefused=Predlog zavrnjen +PropalSigned=Predlog sprejet ProposalCustomerSignature=Pisna potrditev, žig podjetja, datum in podpis -ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal -RefusePropal=Refuse proposal -Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ProposalsStatisticsSuppliers=Statistika ponudb dobaviteljev +RefusePropal=Zavrni predlog +Sign=Podpis +SignContract=Podpišite pogodbo +SignFichinter=Podpišite intervencijo +SignPropal=Sprejmi predlog +Signed=podpisan +SignedOnly=Samo podpisano diff --git a/htdocs/langs/sl_SI/receiptprinter.lang b/htdocs/langs/sl_SI/receiptprinter.lang index a90dd7b3757..1812f42753a 100644 --- a/htdocs/langs/sl_SI/receiptprinter.lang +++ b/htdocs/langs/sl_SI/receiptprinter.lang @@ -1,82 +1,84 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Setup of module ReceiptPrinter -PrinterAdded=Printer %s added -PrinterUpdated=Printer %s updated -PrinterDeleted=Printer %s deleted -TestSentToPrinter=Test Sent To Printer %s -ReceiptPrinter=Receipt printers -ReceiptPrinterDesc=Setup of receipt printers -ReceiptPrinterTemplateDesc=Setup of Templates -ReceiptPrinterTypeDesc=Description of Receipt Printer's type -ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile -ListPrinters=List of Printers -SetupReceiptTemplate=Template Setup -CONNECTOR_DUMMY=Dummy Printer -CONNECTOR_NETWORK_PRINT=Network Printer -CONNECTOR_FILE_PRINT=Local Printer -CONNECTOR_WINDOWS_PRINT=Local Windows Printer -CONNECTOR_CUPS_PRINT=Cups Printer -CONNECTOR_DUMMY_HELP=Fake Printer for test, does nothing +ReceiptPrinterSetup=Nastavitev modula ReceiptPrinter +PrinterAdded=Dodan tiskalnik %s +PrinterUpdated=Tiskalnik %s posodobljen +PrinterDeleted=Tiskalnik %s izbrisan +TestSentToPrinter=Test poslan v tiskalnik %s +ReceiptPrinter=Tiskalniki računov +ReceiptPrinterDesc=Nastavitev tiskalnikov računov +ReceiptPrinterTemplateDesc=Nastavitev predlog +ReceiptPrinterTypeDesc=Primer možnih vrednosti za polje "Parametri" glede na tip gonilnika +ReceiptPrinterProfileDesc=Opis profila tiskalnika računov +ListPrinters=Seznam tiskalnikov +SetupReceiptTemplate=Nastavitev predloge +CONNECTOR_DUMMY=Lažni tiskalnik +CONNECTOR_NETWORK_PRINT=Omrežni tiskalnik +CONNECTOR_FILE_PRINT=Lokalni tiskalnik +CONNECTOR_WINDOWS_PRINT=Lokalni tiskalnik Windows +CONNECTOR_CUPS_PRINT=Tiskalnik skodelic +CONNECTOR_DUMMY_HELP=Lažni tiskalnik za test, ne naredi nič CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1 -CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer -CONNECTOR_CUPS_PRINT_HELP=CUPS printer name, example: HPRT_TP805L -PROFILE_DEFAULT=Default Profile -PROFILE_SIMPLE=Simple Profile -PROFILE_EPOSTEP=Epos Tep Profile -PROFILE_P822D=P822D Profile -PROFILE_STAR=Star Profile -PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers -PROFILE_SIMPLE_HELP=Simple Profile No Graphics -PROFILE_EPOSTEP_HELP=Epos Tep Profile -PROFILE_P822D_HELP=P822D Profile No Graphics -PROFILE_STAR_HELP=Star Profile -DOL_LINE_FEED=Skip line -DOL_ALIGN_LEFT=Left align text -DOL_ALIGN_CENTER=Center text -DOL_ALIGN_RIGHT=Right align text -DOL_USE_FONT_A=Use font A of printer -DOL_USE_FONT_B=Use font B of printer -DOL_USE_FONT_C=Use font C of printer -DOL_PRINT_BARCODE=Print barcode -DOL_PRINT_BARCODE_CUSTOMER_ID=Print barcode customer id -DOL_CUT_PAPER_FULL=Cut ticket completely -DOL_CUT_PAPER_PARTIAL=Cut ticket partially -DOL_OPEN_DRAWER=Open cash drawer -DOL_ACTIVATE_BUZZER=Activate buzzer -DOL_PRINT_QRCODE=Print QR Code -DOL_PRINT_LOGO=Print logo of my company -DOL_PRINT_LOGO_OLD=Print logo of my company (old printers) -DOL_BOLD=Bold -DOL_BOLD_DISABLED=Disable bold -DOL_DOUBLE_HEIGHT=Double height size -DOL_DOUBLE_WIDTH=Double width size -DOL_DEFAULT_HEIGHT_WIDTH=Default height and width size -DOL_UNDERLINE=Enable underline -DOL_UNDERLINE_DISABLED=Disable underline -DOL_BEEP=Beed sound -DOL_PRINT_TEXT=Print text -DateInvoiceWithTime=Invoice date and time -YearInvoice=Invoice year -DOL_VALUE_MONTH_LETTERS=Invoice month in letters -DOL_VALUE_MONTH=Invoice month -DOL_VALUE_DAY=Invoice day -DOL_VALUE_DAY_LETTERS=Inovice day in letters -DOL_LINE_FEED_REVERSE=Line feed reverse -InvoiceID=Invoice ID +CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Tiskalnik potrdil +CONNECTOR_CUPS_PRINT_HELP=Ime tiskalnika CUPS, primer: HPRT_TP805L +PROFILE_DEFAULT=Privzeti profil +PROFILE_SIMPLE=Preprost profil +PROFILE_EPOSTEP=Profil Epos Tep +PROFILE_P822D=Profil P822D +PROFILE_STAR=Zvezdni profil +PROFILE_DEFAULT_HELP=Privzeti profil, primeren za tiskalnike Epson +PROFILE_SIMPLE_HELP=Preprost profil brez grafike +PROFILE_EPOSTEP_HELP=Profil Epos Tep +PROFILE_P822D_HELP=Profil P822D Brez grafike +PROFILE_STAR_HELP=Zvezdni profil +DOL_LINE_FEED=Preskoči vrstico +DOL_ALIGN_LEFT=Levo poravnajte besedilo +DOL_ALIGN_CENTER=Sredinsko besedilo +DOL_ALIGN_RIGHT=Desno poravnajte besedilo +DOL_USE_FONT_A=Uporabite pisavo A tiskalnika +DOL_USE_FONT_B=Uporabite pisavo B tiskalnika +DOL_USE_FONT_C=Uporabite pisavo C tiskalnika +DOL_PRINT_BARCODE=Natisnite črtno kodo +DOL_PRINT_BARCODE_CUSTOMER_ID=Natisnite ID stranke s črtno kodo +DOL_CUT_PAPER_FULL=Popolnoma odrežite vstopnico +DOL_CUT_PAPER_PARTIAL=Delno odrežite vstopnico +DOL_OPEN_DRAWER=Odprt predal za denar +DOL_ACTIVATE_BUZZER=Aktiviraj brenčalo +DOL_PRINT_QRCODE=Natisnite kodo QR +DOL_PRINT_LOGO=Natisnite logotip mojega podjetja +DOL_PRINT_LOGO_OLD=Tisk logotipa mojega podjetja (stari tiskalniki) +DOL_BOLD=Krepko +DOL_BOLD_DISABLED=Onemogoči krepko +DOL_DOUBLE_HEIGHT=Dvojna velikost višine +DOL_DOUBLE_WIDTH=Velikost dvojne širine +DOL_DEFAULT_HEIGHT_WIDTH=Privzeta velikost višine in širine +DOL_UNDERLINE=Omogoči podčrtano +DOL_UNDERLINE_DISABLED=Onemogoči podčrtaj +DOL_BEEP=Zvočni signal +DOL_BEEP_ALTERNATIVE=Pisk (alternativni način) +DOL_PRINT_CURR_DATE=Natisnite trenutni datum/uro +DOL_PRINT_TEXT=Natisni besedilo +DateInvoiceWithTime=Datum in ura računa +YearInvoice=Leto računa +DOL_VALUE_MONTH_LETTERS=Mesec računa s črkami +DOL_VALUE_MONTH=Mesec računa +DOL_VALUE_DAY=Dan računa +DOL_VALUE_DAY_LETTERS=Inovice dan v pismih +DOL_LINE_FEED_REVERSE=Obrnjen pomik vrstice +InvoiceID=ID računa InvoiceRef=Referenca računa -DOL_PRINT_OBJECT_LINES=Invoice lines -DOL_VALUE_CUSTOMER_FIRSTNAME=Customer first name -DOL_VALUE_CUSTOMER_LASTNAME=Customer last name -DOL_VALUE_CUSTOMER_MAIL=Customer mail -DOL_VALUE_CUSTOMER_PHONE=Customer phone -DOL_VALUE_CUSTOMER_MOBILE=Customer mobile -DOL_VALUE_CUSTOMER_SKYPE=Customer Skype -DOL_VALUE_CUSTOMER_TAX_NUMBER=Customer tax number -DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Customer account balance -DOL_VALUE_MYSOC_NAME=Your company name -VendorLastname=Vendor last name -VendorFirstname=Vendor first name -VendorEmail=Vendor email -DOL_VALUE_CUSTOMER_POINTS=Customer points -DOL_VALUE_OBJECT_POINTS=Object points +DOL_PRINT_OBJECT_LINES=Vrstice računa +DOL_VALUE_CUSTOMER_FIRSTNAME=Ime stranke +DOL_VALUE_CUSTOMER_LASTNAME=Priimek stranke +DOL_VALUE_CUSTOMER_MAIL=Pošta stranke +DOL_VALUE_CUSTOMER_PHONE=Telefon stranke +DOL_VALUE_CUSTOMER_MOBILE=Mobilni telefon stranke +DOL_VALUE_CUSTOMER_SKYPE=Stranka Skype +DOL_VALUE_CUSTOMER_TAX_NUMBER=Davčna številka stranke +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Stanje na računu stranke +DOL_VALUE_MYSOC_NAME=Ime vašega podjetja +VendorLastname=Priimek +VendorFirstname=Ime +VendorEmail=E-pošta +DOL_VALUE_CUSTOMER_POINTS=Točke strank +DOL_VALUE_OBJECT_POINTS=Objektne točke diff --git a/htdocs/langs/sl_SI/receptions.lang b/htdocs/langs/sl_SI/receptions.lang index 641b2803acc..d84dc18c81d 100644 --- a/htdocs/langs/sl_SI/receptions.lang +++ b/htdocs/langs/sl_SI/receptions.lang @@ -1,54 +1,54 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=Vendor reception management (Create reception documents) -ReceptionsSetup=Vendor Reception setup -RefReception=Ref. reception +ReceptionDescription=Upravljanje sprejema prodajalca (ustvarjanje sprejemnih dokumentov) +ReceptionsSetup=Nastavitev sprejema dobavitelja +RefReception=Ref. sprejem Reception=V obdelavi -Receptions=Receptions -AllReceptions=All Receptions +Receptions=Sprejemi +AllReceptions=Vsi sprejemi Reception=V obdelavi -Receptions=Receptions -ShowReception=Show Receptions -ReceptionsArea=Receptions area -ListOfReceptions=List of receptions -ReceptionMethod=Reception method -LastReceptions=Latest %s receptions -StatisticsOfReceptions=Statistics for receptions -NbOfReceptions=Number of receptions -NumberOfReceptionsByMonth=Number of receptions by month -ReceptionCard=Reception card -NewReception=New reception -CreateReception=Create reception -QtyInOtherReceptions=Qty in other receptions -OtherReceptionsForSameOrder=Other receptions for this order -ReceptionsAndReceivingForSameOrder=Receptions and receipts for this order -ReceptionsToValidate=Receptions to validate +Receptions=Sprejemi +ShowReception=Prikaži sprejeme +ReceptionsArea=Prostor za sprejeme +ListOfReceptions=Seznam sprejemov +ReceptionMethod=Način sprejema +LastReceptions=Zadnji sprejemi %s +StatisticsOfReceptions=Statistika za sprejeme +NbOfReceptions=Število sprejemov +NumberOfReceptionsByMonth=Število sprejemov po mesecih +ReceptionCard=Sprejemna kartica +NewReception=Nova recepcija +CreateReception=Ustvarite sprejem +QtyInOtherReceptions=Količina v drugih sprejemih +OtherReceptionsForSameOrder=Drugi sprejemi za to naročilo +ReceptionsAndReceivingForSameOrder=Sprejemi in potrdila za to naročilo +ReceptionsToValidate=Sprejemi za potrditev StatusReceptionCanceled=Preklicano StatusReceptionDraft=Osnutek -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionValidated=Potrjeno (izdelki za prejem ali že prejeti) +StatusReceptionValidatedToReceive=Potrjeno (izdelki za prejem) +StatusReceptionValidatedReceived=Potrjeno (prejeti izdelki) StatusReceptionProcessed=Obdelani StatusReceptionDraftShort=Osnutek StatusReceptionValidatedShort=Potrjen StatusReceptionProcessedShort=Obdelani -ReceptionSheet=Reception sheet -ConfirmDeleteReception=Are you sure you want to delete this reception? -ConfirmValidateReception=Are you sure you want to validate this reception with reference %s? -ConfirmCancelReception=Are you sure you want to cancel this reception? -StatsOnReceptionsOnlyValidated=Statistics conducted on receptions only validated. Date used is date of validation of reception (planed delivery date is not always known). -SendReceptionByEMail=Send reception by email -SendReceptionRef=Submission of reception %s -ActionsOnReception=Events on reception -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. -ReceptionLine=Reception line -ProductQtyInReceptionAlreadySent=Product quantity from open sales order already sent -ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplier order already received -ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions. -ReceptionsNumberingModules=Numbering module for receptions -ReceptionsReceiptModel=Document templates for receptions -NoMorePredefinedProductToDispatch=No more predefined products to dispatch -ReceptionExist=A reception exists -ByingPrice=Bying price -ReceptionBackToDraftInDolibarr=Reception %s back to draft -ReceptionClassifyClosedInDolibarr=Reception %s classified Closed -ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open +ReceptionSheet=Sprejemni list +ValidateReception=Validate reception +ConfirmDeleteReception=Ali ste prepričani, da želite izbrisati ta sprejem? +ConfirmValidateReception=Ali ste prepričani, da želite potrditi ta sprejem s sklicem %s ? +ConfirmCancelReception=Ali ste prepričani, da želite preklicati ta sprejem? +StatsOnReceptionsOnlyValidated=Potrjeni so le statistični podatki o sprejemih. Uporabljeni datum je datum potrditve prejema (načrtovani datum dostave ni vedno znan). +SendReceptionByEMail=Pošljite sprejem po e-pošti +SendReceptionRef=Oddaja sprejema %s +ActionsOnReception=Dogodki na recepciji +ReceptionCreationIsDoneFromOrder=Zaenkrat se izdelava novega sprejema izvede iz naročilnice. +ReceptionLine=Sprejemna linija +ProductQtyInReceptionAlreadySent=Količina izdelka iz odprtega prodajnega naročila je že poslana +ProductQtyInSuppliersReceptionAlreadyRecevied=Količina izdelka iz odprtega naročila dobavitelja je že prejeta +ValidateOrderFirstBeforeReception=Pred sprejemom morate najprej potrditi naročilo. +ReceptionsNumberingModules=Modul oštevilčenja za sprejeme +ReceptionsReceiptModel=Predloge dokumentov za sprejeme +NoMorePredefinedProductToDispatch=Nič več vnaprej določenih izdelkov za pošiljanje +ReceptionExist=Recepcija obstaja +ReceptionBackToDraftInDolibarr=Sprejem %s nazaj na osnutek +ReceptionClassifyClosedInDolibarr=Sprejem %s tajno Zaprto +ReceptionUnClassifyCloseddInDolibarr=Recepcija %s ponovno odprta diff --git a/htdocs/langs/sl_SI/recruitment.lang b/htdocs/langs/sl_SI/recruitment.lang index fab155f38a6..1af1c439647 100644 --- a/htdocs/langs/sl_SI/recruitment.lang +++ b/htdocs/langs/sl_SI/recruitment.lang @@ -18,59 +18,62 @@ # # Module label 'ModuleRecruitmentName' -ModuleRecruitmentName = Recruitment +ModuleRecruitmentName = Zaposlovanje # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Manage and follow recruitment campaigns for new job positions +ModuleRecruitmentDesc = Upravljajte in spremljajte zaposlovalne kampanje za nova delovna mesta # # Admin page # -RecruitmentSetup = Recruitment setup -Settings = Settings -RecruitmentSetupPage = Enter here the setup of main options for the recruitment module -RecruitmentArea=Recruitement area -PublicInterfaceRecruitmentDesc=Public pages of jobs are public URLs to show and answer to open jobs. There is one different link for each open job, found on each job record. -EnablePublicRecruitmentPages=Enable public pages of open jobs +RecruitmentSetup = Nastavitev zaposlovanja +Settings = nastavitve +RecruitmentSetupPage = Tukaj vnesite nastavitev glavnih možnosti za modul zaposlovanja +RecruitmentArea=Območje zaposlovanja +PublicInterfaceRecruitmentDesc=Javne strani delovnih mest so javni URL-ji za prikaz in odgovore na odprta delovna mesta. Za vsako odprto delovno mesto obstaja ena druga povezava, ki jo najdete v zapisu vsakega delovnega mesta. +EnablePublicRecruitmentPages=Omogoči javne strani odprtih delovnih mest # # About page # About = O programu -RecruitmentAbout = About Recruitment -RecruitmentAboutPage = Recruitment about page -NbOfEmployeesExpected=Expected nb of employees -JobLabel=Label of job position -WorkPlace=Work place -DateExpected=Expected date -FutureManager=Future manager -ResponsibleOfRecruitement=Responsible of recruitment -IfJobIsLocatedAtAPartner=If job is located at a partner place -PositionToBeFilled=Job position -PositionsToBeFilled=Job positions -ListOfPositionsToBeFilled=List of job positions -NewPositionToBeFilled=New job positions +RecruitmentAbout = O zaposlovanju +RecruitmentAboutPage = Stran o zaposlovanju +NbOfEmployeesExpected=Pričakovano št. zaposlenih +JobLabel=Oznaka delovnega mesta +WorkPlace=Delovno mesto +DateExpected=Predvideni datum +FutureManager=Bodoči menedžer +ResponsibleOfRecruitement=Odgovoren za zaposlovanje +IfJobIsLocatedAtAPartner=Če je delovno mesto pri partnerju +PositionToBeFilled=Delovno mesto +PositionsToBeFilled=Delovna mesta +ListOfPositionsToBeFilled=Seznam delovnih mest +NewPositionToBeFilled=Nova delovna mesta -JobOfferToBeFilled=Job position to be filled -ThisIsInformationOnJobPosition=Information of the job position to be filled -ContactForRecruitment=Contact for recruitment -EmailRecruiter=Email recruiter -ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used -NewCandidature=New application -ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration -ContractProposed=Contract proposed -ContractSigned=Contract signed -ContractRefused=Contract refused -RecruitmentCandidature=Application -JobPositions=Job positions -RecruitmentCandidatures=Applications -InterviewToDo=Interview to do -AnswerCandidature=Application answer -YourCandidature=Your application -YourCandidatureAnswerMessage=Thanks you for your application.
    ... -JobClosedTextCandidateFound=The job position is closed. The position has been filled. -JobClosedTextCanceled=The job position is closed. -ExtrafieldsJobPosition=Complementary attributes (job positions) -ExtrafieldsApplication=Complementary attributes (job applications) -MakeOffer=Make an offer +JobOfferToBeFilled=Delovno mesto, ki ga je treba zapolniti +ThisIsInformationOnJobPosition=Informacije o delovnem mestu, ki ga je treba zapolniti +ContactForRecruitment=Kontakt za zaposlovanje +EmailRecruiter=E-poštni nabornik +ToUseAGenericEmail=Za uporabo splošne e-pošte. Če ni določen, bo uporabljen e-poštni naslov odgovornega za zaposlovanje +NewCandidature=Nova aplikacija +ListOfCandidatures=Seznam aplikacij +Remuneration=Plača +RequestedRemuneration=Zahtevana plača +ProposedRemuneration=Predlagana plača +ContractProposed=Predlagana pogodba +ContractSigned=Pogodba podpisana +ContractRefused=Pogodba zavrnjena +RecruitmentCandidature=Aplikacija +JobPositions=Delovna mesta +RecruitmentCandidatures=Aplikacije +InterviewToDo=Stiki za spremljanje +AnswerCandidature=Odgovor na prijavo +YourCandidature=Vaša prijava +YourCandidatureAnswerMessage=Hvala za vašo prijavo.
    ... +JobClosedTextCandidateFound=Delovno mesto je zaprto. Mesto je zasedeno. +JobClosedTextCanceled=Delovno mesto je zaprto. +ExtrafieldsJobPosition=Dopolnilni atributi (delovna mesta) +ExtrafieldsApplication=Dopolnilni atributi (prošnje za delo) +MakeOffer=Daj ponudbo +WeAreRecruiting=Zaposlujemo. To je seznam odprtih delovnih mest, ki jih je treba zapolniti... +NoPositionOpen=Trenutno ni odprtih pozicij diff --git a/htdocs/langs/sl_SI/resource.lang b/htdocs/langs/sl_SI/resource.lang index 45be48122e2..37007edfbef 100644 --- a/htdocs/langs/sl_SI/resource.lang +++ b/htdocs/langs/sl_SI/resource.lang @@ -1,36 +1,39 @@ # Dolibarr language file - Source file is en_US - resource MenuResourceIndex=Viri -MenuResourceAdd=New resource -DeleteResource=Delete resource -ConfirmDeleteResourceElement=Confirm delete the resource for this element -NoResourceInDatabase=No resource in database. -NoResourceLinked=No resource linked +MenuResourceAdd=Nov vir +DeleteResource=Izbriši vir +ConfirmDeleteResourceElement=Potrdite brisanje vira za ta element +NoResourceInDatabase=Ni vira v bazi podatkov. +NoResourceLinked=Noben vir ni povezan +ActionsOnResource=Dogodki o tem viru +ResourcePageIndex=Seznam virov +ResourceSingular=Vir +ResourceCard=Kartica virov +AddResource=Ustvarite vir +ResourceFormLabel_ref=Ime vira +ResourceType=Vrsta vira +ResourceFormLabel_description=Opis vira -ResourcePageIndex=Resources list -ResourceSingular=Resource -ResourceCard=Resource card -AddResource=Create a resource -ResourceFormLabel_ref=Resource name -ResourceType=Resource type -ResourceFormLabel_description=Resource description +ResourcesLinkedToElement=Viri, povezani z elementom -ResourcesLinkedToElement=Resources linked to element +ShowResource=Pokaži vir -ShowResource=Show resource +ResourceElementPage=Viri elementov +ResourceCreatedWithSuccess=Vir je bil uspešno ustvarjen +RessourceLineSuccessfullyDeleted=Vrstica vira je bila uspešno izbrisana +RessourceLineSuccessfullyUpdated=Vrstica virov je bila uspešno posodobljena +ResourceLinkedWithSuccess=Vir, povezan z uspehom -ResourceElementPage=Element resources -ResourceCreatedWithSuccess=Resource successfully created -RessourceLineSuccessfullyDeleted=Resource line successfully deleted -RessourceLineSuccessfullyUpdated=Resource line successfully updated -ResourceLinkedWithSuccess=Resource linked with success +ConfirmDeleteResource=Potrdite, da izbrišete ta vir +RessourceSuccessfullyDeleted=Vir je bil uspešno izbrisan +DictionaryResourceType=Vrsta virov -ConfirmDeleteResource=Confirm to delete this resource -RessourceSuccessfullyDeleted=Resource successfully deleted -DictionaryResourceType=Type of resources +SelectResource=Izberite vir -SelectResource=Select resource - -IdResource=Id resource -AssetNumber=Serial number -ResourceTypeCode=Resource type code +IdResource=ID vir +AssetNumber=Serijska številka +ResourceTypeCode=Koda vrste vira ImportDataset_resource_1=Viri + +ErrorResourcesAlreadyInUse=Nekateri viri so v uporabi +ErrorResourceUseInEvent=%s uporabljeno v dogodku %s diff --git a/htdocs/langs/sl_SI/salaries.lang b/htdocs/langs/sl_SI/salaries.lang index a29f6d0dd9a..4e7511b5ba3 100644 --- a/htdocs/langs/sl_SI/salaries.lang +++ b/htdocs/langs/sl_SI/salaries.lang @@ -1,26 +1,27 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments -CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Privzeti računovodski račun za izplačila plač +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Pri ustvarjanju plače privzeto pustite prazno možnost »Samodejno ustvari skupno plačilo«. Salary=Plača Salaries=Plače -NewSalary=New salary -AddSalary=Add salary -NewSalaryPayment=New salary card -AddSalaryPayment=Add salary payment +NewSalary=Nova plača +AddSalary=Dodajte plačo +NewSalaryPayment=Nova plačna kartica +AddSalaryPayment=Dodajte izplačilo plače SalaryPayment=Izplačilo plače SalariesPayments=Izplačila plač -SalariesPaymentsOf=Salaries payments of %s +SalariesPaymentsOf=Izplačila plač %s ShowSalaryPayment=Prikaži izplačilo plač -THM=Average hourly rate -TJM=Average daily rate +THM=Povprečna urna postavka +TJM=Povprečna dnevna stopnja CurrentSalary=Trenutna plača -THMDescription=This value may be used to calculate the cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently for information only and is not used for any calculation -LastSalaries=Latest %s salaries -AllSalaries=All salaries -SalariesStatistics=Salary statistics -SalariesAndPayments=Salaries and payments -ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? -FillFieldFirst=Fill employee field first +THMDescription=Ta vrednost se lahko uporabi za izračun stroškov časa, porabljenega za projekt, ki so ga vnesli uporabniki, če je uporabljen projekt modula +TJMDescription=Ta vrednost je trenutno samo informativna in se ne uporablja za noben izračun +LastSalaries=Zadnje %s plače +AllSalaries=Vse plače +SalariesStatistics=Statistika plač +SalariesAndPayments=Plače in plačila +ConfirmDeleteSalaryPayment=Ali želite izbrisati to izplačilo plače? +FillFieldFirst=Najprej izpolnite polje zaposlenega +UpdateAmountWithLastSalary=Nastavite znesek z zadnjo plačo diff --git a/htdocs/langs/sl_SI/sendings.lang b/htdocs/langs/sl_SI/sendings.lang index 04920320919..0561a7a4749 100644 --- a/htdocs/langs/sl_SI/sendings.lang +++ b/htdocs/langs/sl_SI/sendings.lang @@ -2,32 +2,32 @@ RefSending=Referenca pošiljke Sending=Odprema Sendings=Pošiljke -AllSendings=All Shipments +AllSendings=Vse pošiljke Shipment=Odprema Shipments=Odpreme -ShowSending=Show Shipments -Receivings=Delivery Receipts +ShowSending=Prikaži pošiljke +Receivings=Potrdila o dostavi SendingsArea=Področje pošiljk ListOfSendings=Seznam pošiljk SendingMethod=Način pošiljanja -LastSendings=Latest %s shipments +LastSendings=Najnovejše pošiljke %s StatisticsOfSendings=Statistika pošiljk NbOfSendings=Število pošiljk NumberOfShipmentsByMonth=Število pošiljk po mesecih -SendingCard=Shipment card +SendingCard=Pošiljna kartica NewSending=Nova pošiljka CreateShipment=Kreiranje pošiljke QtyShipped=Poslana količina -QtyShippedShort=Qty ship. -QtyPreparedOrShipped=Qty prepared or shipped +QtyShippedShort=Količina ladje. +QtyPreparedOrShipped=Količina pripravljena ali poslana QtyToShip=Količina za pošiljanje -QtyToReceive=Qty to receive +QtyToReceive=Količina za prejem QtyReceived=Prejeta količina -QtyInOtherShipments=Qty in other shipments -KeepToShip=Remain to ship -KeepToShipShort=Remain +QtyInOtherShipments=Količina v drugih pošiljkah +KeepToShip=Ostanek za pošiljanje +KeepToShipShort=Ostani OtherSendingsForSameOrder=Ostale pošiljke za to naročilo -SendingsAndReceivingForSameOrder=Shipments and receipts for this order +SendingsAndReceivingForSameOrder=Pošiljke in potrdila za to naročilo SendingsToValidate=Pošiljke za potrditev StatusSendingCanceled=Preklicano StatusSendingCanceledShort=Preklicano @@ -37,40 +37,40 @@ StatusSendingProcessed=Obdelani StatusSendingDraftShort=Osnutek StatusSendingValidatedShort=Potrjena StatusSendingProcessedShort=Obdelani -SendingSheet=Shipment sheet -ConfirmDeleteSending=Are you sure you want to delete this shipment? -ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? -ConfirmCancelSending=Are you sure you want to cancel this shipment? +SendingSheet=Odpremni list +ConfirmDeleteSending=Ali ste prepričani, da želite izbrisati to pošiljko? +ConfirmValidateSending=Ali ste prepričani, da želite potrditi to pošiljko s sklicem %s ? +ConfirmCancelSending=Ali ste prepričani, da želite preklicati to pošiljko? DocumentModelMerou=Vzorec dokumenta Merou A5 WarningNoQtyLeftToSend=Pozor, noben proizvod ne čaka na pošiljanje. -StatsOnShipmentsOnlyValidated=Statistics are only for validated shipments. Date used is the date of validation of shipment (planned delivery date is not always known) -DateDeliveryPlanned=Planned date of delivery -RefDeliveryReceipt=Ref delivery receipt -StatusReceipt=Status delivery receipt +StatsOnShipmentsOnlyValidated=Statistika je samo za potrjene pošiljke. Uporabljeni datum je datum potrditve pošiljke (načrtovani datum dostave ni vedno znan) +DateDeliveryPlanned=Načrtovani datum dostave +RefDeliveryReceipt=Ref potrdilo o dostavi +StatusReceipt=Potrdilo o dostavi statusa DateReceived=Datum prejema dobave -ClassifyReception=Classify reception -SendShippingByEMail=Send shipment by email +ClassifyReception=Razvrsti sprejem +SendShippingByEMail=Pošljite pošiljko po elektronski pošti SendShippingRef=Oddaja pošiljke %s ActionsOnShipping=Aktivnosti v zvezi z odpremnico LinkToTrackYourPackage=Povezave za sledenje vaše pošiljke -ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the Sales Order record. +ShipmentCreationIsDoneFromOrder=Zaenkrat se kreiranje nove pošiljke izvede iz zapisa Prodajni nalog. ShipmentLine=Vrstica na odpremnici -ProductQtyInCustomersOrdersRunning=Product quantity from open sales orders -ProductQtyInSuppliersOrdersRunning=Product quantity from open purchase orders -ProductQtyInShipmentAlreadySent=Product quantity from open sales order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open purchase orders already received -NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. Correct stock or go back to choose another warehouse. -WeightVolShort=Weight/Vol. -ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. +ProductQtyInCustomersOrdersRunning=Količina izdelkov iz odprtih prodajnih naročil +ProductQtyInSuppliersOrdersRunning=Količina izdelkov iz odprtih naročilnic +ProductQtyInShipmentAlreadySent=Količina izdelka iz odprtega prodajnega naročila je že poslana +ProductQtyInSuppliersShipmentAlreadyRecevied=Količina izdelkov iz že prejetih odprtih naročilnic +NoProductToShipFoundIntoStock=V skladišču ni bilo mogoče najti nobenega izdelka za pošiljanje %s . Popravite zalogo ali se vrnite in izberite drugo skladišče. +WeightVolShort=Teža/prostornina +ValidateOrderFirstBeforeShipment=Preden lahko pošiljate pošiljke, morate najprej potrditi naročilo. # Sending methods # ModelDocument DocumentModelTyphon=Popolnejši vzorec dobavnice (logo...) -DocumentModelStorm=More complete document model for delivery receipts and extrafields compatibility (logo...) +DocumentModelStorm=Popolnejši model dokumenta za združljivost potrdil o dostavi in dodatnih polj (logotip...) Error_EXPEDITION_ADDON_NUMBER_NotDefined== SumOfProductVolumes=Vsota volumnov proizvodov SumOfProductWeights=Vsota tež proizvodov # warehouse details -DetailWarehouseNumber= Warehouse details -DetailWarehouseFormat= W:%s (Qty: %d) +DetailWarehouseNumber= Podrobnosti o skladišču +DetailWarehouseFormat= W:%s (Št.: %d) diff --git a/htdocs/langs/sl_SI/sms.lang b/htdocs/langs/sl_SI/sms.lang index 96ce4a6a465..3015b81e250 100644 --- a/htdocs/langs/sl_SI/sms.lang +++ b/htdocs/langs/sl_SI/sms.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - sms Sms=SMS -SmsSetup=Nastavitev SMS -SmsDesc=Ta stran omogoča defenicijo globalnih opcij za funkcije SMS +SmsSetup=nastavitev SMS-a +SmsDesc=Ta stran vam omogoča, da določite globalne možnosti za funkcije SMS SmsCard=SMS kartica -AllSms=Vse SMS kampanje +AllSms=Vse SMS akcije SmsTargets=Cilji SmsRecipients=Prejemniki SmsRecipient=Prejemnik @@ -14,17 +14,17 @@ SmsTopic=SMS zadeva SmsText=Sporočilo SmsMessage=SMS sporočilo ShowSms=Prikaži SMS -ListOfSms=Seznam SMS kampanj -NewSms=Nova SMS kampanja +ListOfSms=Seznam SMS akcij +NewSms=Nova SMS akcija EditSms=Uredi SMS ResetSms=Ponovno pošiljanje -DeleteSms=Brisanje SMS kampanje -DeleteASms=Osdstrani SMS kampanjo -PreviewSms=Predogled SMS -PrepareSms=Priprava SMS +DeleteSms=Izbriši SMS akcijo +DeleteASms=Odstranite SMS akcijo +PreviewSms=Prejšnji SMS +PrepareSms=Pripravite SMS CreateSms=Ustvari SMS -SmsResult=Rezultatipošiljanja SMS -TestSms=Testiraj SMS +SmsResult=Rezultat pošiljanja SMS-a +TestSms=Test SMS ValidSms=Potrdi SMS ApproveSms=Odobri SMS SmsStatusDraft=Osnutek @@ -35,17 +35,17 @@ SmsStatusSentPartialy=Delno poslan SmsStatusSentCompletely=Poslan v celoti SmsStatusError=Napaka SmsStatusNotSent=Ni poslan -SmsSuccessfulySent=SMS uspešno poslan (od %s do %s) +SmsSuccessfulySent=SMS pravilno poslan (od %s do %s) ErrorSmsRecipientIsEmpty=Številka prekjemnika ne obstaja WarningNoSmsAdded=Ni nove številke za dodajanje med prejemnike -ConfirmValidSms=Do you confirm validation of this campain? -NbOfUniqueSms=Število enoličnih telefonskih številk +ConfirmValidSms=Ali potrjujete potrditev te akcije? +NbOfUniqueSms=Število edinstvenih telefonskih številk NbOfSms=Število telefonskih številk ThisIsATestMessage=To je tekstovno sporočilo SendSms=Pošlji SMS -SmsInfoCharRemain=Število preostalih znakov -SmsInfoNumero= (mednarodni format npr : +33899701761) +SmsInfoCharRemain=Št. preostalih znakov +SmsInfoNumero= (mednarodna oblika npr.: +33899701761) DelayBeforeSending=Zakasnitev začetka pošiljanja (minut) SmsNoPossibleSenderFound=Posrednik ni nastavljen. Preverite nastavitve vašega SMS posrednika. SmsNoPossibleRecipientFound=Ni prejemnika. Preverite nastavitve vašega SMS providerja. -DisableStopIfSupported=Disable STOP message (if supported) +DisableStopIfSupported=Onemogoči sporočilo STOP (če je podprto) diff --git a/htdocs/langs/sl_SI/stocks.lang b/htdocs/langs/sl_SI/stocks.lang index f0327fefdec..b95ea1997e5 100644 --- a/htdocs/langs/sl_SI/stocks.lang +++ b/htdocs/langs/sl_SI/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Reopen ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Začete ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/sl_SI/stripe.lang b/htdocs/langs/sl_SI/stripe.lang index 8978d6ad897..a234f59f96c 100644 --- a/htdocs/langs/sl_SI/stripe.lang +++ b/htdocs/langs/sl_SI/stripe.lang @@ -1,71 +1,74 @@ # Dolibarr language file - Source file is en_US - stripe -StripeSetup=Stripe module setup -StripeDesc=Offer your customers an online payment page for payments with credit/debit cards via Stripe. This can be used to allow your customers to make ad-hoc payments or for payments related to a particular Dolibarr object (invoice, order, ...) -StripeOrCBDoPayment=Pay with credit card or Stripe +StripeSetup=Nastavitev modula Stripe +StripeDesc=Ponudite svojim strankam spletno plačilno stran za plačila s kreditnimi/debetnimi karticami prek Stripe . To lahko uporabite, da svojim strankam omogočite ad hoc plačila ali za plačila v zvezi z določenim objektom Dolibarr (račun, naročilo, ...) +StripeOrCBDoPayment=Plačajte s kreditno kartico ali Stripe FollowingUrlAreAvailableToMakePayments=Naslednji URL naslovi so na voljo kupcem za izvedbo plačil Dolibarr postavk PaymentForm=Obrazec za plačilo -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=Dobrodošli v naši spletni plačilni storitvi ThisScreenAllowsYouToPay=Ta zaslon omogoča online plačilo za %s. ThisIsInformationOnPayment=To je informacija o potrebnem plačilu ToComplete=Za dokončanje YourEMail=E-pošta za potrditev plačila -STRIPE_PAYONLINE_SENDEMAIL=Email notification after a payment attempt (success or fail) +STRIPE_PAYONLINE_SENDEMAIL=E-poštno obvestilo po poskusu plačila (uspešnem ali neuspešnem) Creditor=Upnik PaymentCode=Koda plačila -StripeDoPayment=Pay with Stripe -YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +StripeDoPayment=Plačajte s Stripe +YouWillBeRedirectedOnStripe=Preusmerjeni boste na zaščiteno stran Stripe, da vnesete podatke o svoji kreditni kartici Continue=Naslednji ToOfferALinkForOnlinePayment=URL za %s plačila -ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment page for a sales order -ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment page for a customer invoice -ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment page for a contract line -ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment page of any amount with no existing object -ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment page for a member subscription -ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment page for payment of a donation -YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (mandatory only for payment not linked to an object) to add your own payment comment tag.
    For the URL of payments with no existing object, you may also add the parameter &noidempotency=1 so the same link with same tag can be used several times (some payment mode may limit the payment to 1 for each different link without this parameter) -SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +ToOfferALinkForOnlinePaymentOnOrder=URL za ponudbo %s strani za spletno plačilo za prodajno naročilo +ToOfferALinkForOnlinePaymentOnInvoice=URL za ponudbo %s strani za spletno plačilo za račun stranke +ToOfferALinkForOnlinePaymentOnContractLine=URL za ponudbo %s spletne plačilne strani za pogodbeno vrstico +ToOfferALinkForOnlinePaymentOnFreeAmount=URL za ponudbo %s strani za spletno plačilo poljubnega zneska brez obstoječega predmeta +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL za ponudbo %s strani za spletno plačilo za člansko naročnino +ToOfferALinkForOnlinePaymentOnDonation=URL za ponudbo %s spletne plačilne strani za plačilo donacije +YouCanAddTagOnUrl=Parameter URL-ja &tag= vrednost lahko dodate tudi kateremu koli od teh URL-jev (obvezno samo za plačilo, ki ni povezano s predmetom), da dodate lastno oznako komentarja o plačilu.
    Za URL plačil brez obstoječega predmeta lahko dodate tudi parameter &noidempotency=1 , tako da je mogoče isto povezavo z isto oznako uporabiti večkrat (nekateri načini plačila lahko omejijo plačilo na 1 za vsako različno povezavo brez tega parameter) +SetupStripeToHavePaymentCreatedAutomatically=Nastavite svoj Stripe z url %s , da se plačilo samodejno ustvari, ko ga potrdi Stripe. AccountParameter=Parametri računa UsageParameter=Parametri uporabe InformationToFindParameters=Pomoč pri iskanju informacij računa %s -STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +STRIPE_CGI_URL_V2=URL modula Stripe CGI za plačilo CSSUrlForPaymentForm=url CSS vzorca obrazca plačila -NewStripePaymentReceived=New Stripe payment received -NewStripePaymentFailed=New Stripe payment tried but failed -FailedToChargeCard=Failed to charge card -STRIPE_TEST_SECRET_KEY=Secret test key -STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key -STRIPE_TEST_WEBHOOK_KEY=Webhook test key -STRIPE_LIVE_SECRET_KEY=Secret live key -STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key -STRIPE_LIVE_WEBHOOK_KEY=Webhook live key -ONLINE_PAYMENT_WAREHOUSE=Stock to use for stock decrease when online payment is done
    (TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice ?) -StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) -StripeImportPayment=Import Stripe payments -ExampleOfTestCreditCard=Example of credit card for test: %s => valid, %s => error CVC, %s => expired, %s => charge fails -StripeGateways=Stripe gateways -OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...) -OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...) -BankAccountForBankTransfer=Bank account for fund payouts -StripeAccount=Stripe account -StripeChargeList=List of Stripe charges -StripeTransactionList=List of Stripe transactions -StripeCustomerId=Stripe customer id -StripePaymentModes=Stripe payment modes -LocalID=Local ID +NewStripePaymentReceived=Prejeto novo plačilo Stripe +NewStripePaymentFailed=Poskusilo novo plačilo Stripe, vendar neuspešno +FailedToChargeCard=Kartice ni bilo mogoče bremeniti +STRIPE_TEST_SECRET_KEY=Tajni testni ključ +STRIPE_TEST_PUBLISHABLE_KEY=Preskusni ključ za objavo +STRIPE_TEST_WEBHOOK_KEY=Preizkusni ključ Webhook +STRIPE_LIVE_SECRET_KEY=Tajni ključ v živo +STRIPE_LIVE_PUBLISHABLE_KEY=Objavljiv ključ v živo +STRIPE_LIVE_WEBHOOK_KEY=Ključ v živo Webhook +ONLINE_PAYMENT_WAREHOUSE=Zaloga, ki se uporabi za zmanjšanje zaloge, ko je opravljeno spletno plačilo
    (TODO Ko se izvede možnost zmanjšanja zaloge za dejanje na računu in spletno plačilo samo ustvari račun?) +StripeLiveEnabled=Stripe v živo omogočen (sicer preskusni/peskovniški način) +StripeImportPayment=Uvozite plačila Stripe +ExampleOfTestCreditCard=Primer kreditne kartice za preizkus: %s => veljavna, %s => napaka CVC, %s => potekla, %s => bremenitev ni uspela +StripeGateways=Stripe prehodi +OAUTH_STRIPE_TEST_ID=ID odjemalca Stripe Connect (ca_...) +OAUTH_STRIPE_LIVE_ID=ID odjemalca Stripe Connect (ca_...) +BankAccountForBankTransfer=Bančni račun za izplačila sredstev +StripeAccount=Stripe račun +StripeChargeList=Seznam stroškov Stripe +StripeTransactionList=Seznam transakcij Stripe +StripeCustomerId=ID stranke Stripe +StripePaymentModes=Načini plačila Stripe +LocalID=Lokalni ID StripeID=Stripe ID -NameOnCard=Name on card -CardNumber=Card Number -ExpiryDate=Expiry Date +NameOnCard=Ime na kartici +CardNumber=Številka kartice +ExpiryDate=Rok uporabnosti CVN=CVN -DeleteACard=Delete Card -ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card? -CreateCustomerOnStripe=Create customer on Stripe -CreateCardOnStripe=Create card on Stripe -ShowInStripe=Show in Stripe -StripeUserAccountForActions=User account to use for email notification of some Stripe events (Stripe payouts) -StripePayoutList=List of Stripe payouts -ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) -ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) -PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. -ClickHereToTryAgain=Click here to try again... -CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s +DeleteACard=Izbriši kartico +ConfirmDeleteCard=Ali ste prepričani, da želite izbrisati to kreditno ali debetno kartico? +CreateCustomerOnStripe=Ustvari stranko na Stripe +CreateCardOnStripe=Ustvarite kartico na Stripe +CreateBANOnStripe=Ustvari banko na Stripe +ShowInStripe=Prikaži v Stripe +StripeUserAccountForActions=Uporabniški račun za uporabo za e-poštno obveščanje o nekaterih dogodkih Stripe (izplačila Stripe) +StripePayoutList=Seznam izplačil Stripe +ToOfferALinkForTestWebhook=Povezava do nastavitve Stripe WebHook za klic IPN (testni način) +ToOfferALinkForLiveWebhook=Povezava za nastavitev Stripe WebHook za klic IPN (način v živo) +PaymentWillBeRecordedForNextPeriod=Plačilo bo evidentirano za naslednje obdobje. +ClickHereToTryAgain= Kliknite tukaj, če želite poskusiti znova ... +CreationOfPaymentModeMustBeDoneFromStripeInterface=Zaradi pravil stroge avtentikacije strank je treba kartico ustvariti v zaledni pisarni Stripe. Tukaj lahko kliknete, da vklopite evidenco strank Stripe: %s +TERMINAL_LOCATION=Lokacija (naslov) za terminale +RequestDirectDebitWithStripe=Zahtevajte direktno bremenitev s Stripe diff --git a/htdocs/langs/sl_SI/supplier_proposal.lang b/htdocs/langs/sl_SI/supplier_proposal.lang index ecd2bd37b74..eb24c199f41 100644 --- a/htdocs/langs/sl_SI/supplier_proposal.lang +++ b/htdocs/langs/sl_SI/supplier_proposal.lang @@ -1,54 +1,58 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposal=Vendor commercial proposals -supplier_proposalDESC=Manage price requests to suppliers -SupplierProposalNew=New price request -CommRequest=Price request -CommRequests=Price requests -SearchRequest=Find a request -DraftRequests=Draft requests -SupplierProposalsDraft=Draft vendor proposals -LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Open price requests -SupplierProposalArea=Vendor proposals area -SupplierProposalShort=Vendor proposal -SupplierProposals=Vendor proposals -SupplierProposalsShort=Vendor proposals -NewAskPrice=New price request -ShowSupplierProposal=Show price request -AddSupplierProposal=Create a price request -SupplierProposalRefFourn=Vendor ref +SupplierProposal=Komercialne ponudbe dobaviteljev +supplier_proposalDESC=Upravljajte zahteve po cenah dobaviteljem +SupplierProposalNew=Nova zahteva po ceni +CommRequest=Zahteva po ceni +CommRequests=Zahteve po ceni +SearchRequest=Poiščite zahtevo +DraftRequests=Osnutki zahtev +SupplierProposalsDraft=Osnutki ponudb dobaviteljev +LastModifiedRequests=Zadnje %s spremenjene zahteve po cenah +RequestsOpened=Odprto povpraševanje po cenah +SupplierProposalArea=Ponudbe dobaviteljev +SupplierProposalShort=Ponudba dobavitelja +SupplierProposals=Ponudbe dobavitelja +SupplierProposalsShort=Ponudbe +AskPrice=Zahteva po ceni +NewAskPrice=Nova zahteva po ceni +ShowSupplierProposal=Pokaži zahtevo po ceni +AddSupplierProposal=Ustvarite zahtevo za ceno +SupplierProposalRefFourn=Ref. dobavitelj SupplierProposalDate=Datum dobave -SupplierProposalRefFournNotice=Before closing to "Accepted", think to grasp suppliers references. -ConfirmValidateAsk=Are you sure you want to validate this price request under name %s? -DeleteAsk=Delete request -ValidateAsk=Validate request +SupplierProposalRefFournNotice=Preden zaprete na "Sprejeto", razmislite o dobaviteljevih referencah. +ConfirmValidateAsk=Ali ste prepričani, da želite potrditi to zahtevo po ceni pod imenom %s ? +DeleteAsk=Izbriši zahtevo +ValidateAsk=Potrdi zahtevo SupplierProposalStatusDraft=Osnutek (potrebno potrditi) -SupplierProposalStatusValidated=Validated (request is open) +SupplierProposalStatusValidated=Potrjeno (zahteva je odprta) SupplierProposalStatusClosed=Zaključeno -SupplierProposalStatusSigned=Accepted +SupplierProposalStatusSigned=Sprejeto SupplierProposalStatusNotSigned=Zavrnjeno SupplierProposalStatusDraftShort=Osnutek SupplierProposalStatusValidatedShort=Potrjen SupplierProposalStatusClosedShort=Zaključeno -SupplierProposalStatusSignedShort=Accepted +SupplierProposalStatusSignedShort=Sprejeto SupplierProposalStatusNotSignedShort=Zavrnjeno -CopyAskFrom=Create price request by copying existing a request -CreateEmptyAsk=Create blank request -ConfirmCloneAsk=Are you sure you want to clone the price request %s? -ConfirmReOpenAsk=Are you sure you want to open back the price request %s? -SendAskByMail=Send price request by mail -SendAskRef=Sending the price request %s -SupplierProposalCard=Request card -ConfirmDeleteAsk=Are you sure you want to delete this price request %s? -ActionsOnSupplierProposal=Events on price request -DocModelAuroreDescription=A complete request model (logo...) -CommercialAsk=Price request +CopyAskFrom=Ustvarite zahtevo po ceni tako, da kopirate obstoječo zahtevo +CreateEmptyAsk=Ustvarite prazno zahtevo +ConfirmCloneAsk=Ali ste prepričani, da želite klonirati zahtevo za ceno %s ? +ConfirmReOpenAsk=Ali ste prepričani, da želite odpreti povpraševanje po ceni %s ? +SendAskByMail=Povpraševanje po ceni pošljite po pošti +SendAskRef=Pošiljanje povpraševanja po ceni %s +SupplierProposalCard=Zahtevaj kartico +ConfirmDeleteAsk=Ali ste prepričani, da želite izbrisati to zahtevo za ceno %s ? +ActionsOnSupplierProposal=Dogodki po ceni na povpraševanje +DocModelAuroreDescription=Popoln model zahteve (logotip ...) +CommercialAsk=Zahteva po ceni DefaultModelSupplierProposalCreate=Ustvarjanje privzetega modela -DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) -DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposals=List of vendor proposal requests -ListSupplierProposalsAssociatedProject=List of vendor proposals associated with project -SupplierProposalsToClose=Vendor proposals to close -SupplierProposalsToProcess=Vendor proposals to process -LastSupplierProposals=Latest %s price requests -AllPriceRequests=All requests +DefaultModelSupplierProposalToBill=Privzeta predloga pri zapiranju zahteve za ceno (sprejeto) +DefaultModelSupplierProposalClosed=Privzeta predloga pri zapiranju zahteve za ceno (zavrnjeno) +ListOfSupplierProposals=Seznam zahtevkov za ponudbe ponudnikov +ListSupplierProposalsAssociatedProject=Seznam ponudb ponudnikov, povezanih s projektom +SupplierProposalsToClose=Ponudniki za zaprtje +SupplierProposalsToProcess=Predlagani dobavitelji +LastSupplierProposals=Zadnje %s povpraševanje po cenah +AllPriceRequests=Vse zahteve +TypeContact_supplier_proposal_external_SHIPPING=Kontakt prodajalca za dostavo +TypeContact_supplier_proposal_external_BILLING=Kontakt prodajalca za obračun +TypeContact_supplier_proposal_external_SERVICE=Predstavnik za sledenje ponudbe diff --git a/htdocs/langs/sl_SI/suppliers.lang b/htdocs/langs/sl_SI/suppliers.lang index 3d8988b89e7..71d448fc9ea 100644 --- a/htdocs/langs/sl_SI/suppliers.lang +++ b/htdocs/langs/sl_SI/suppliers.lang @@ -1,49 +1,57 @@ # Dolibarr language file - Source file is en_US - vendors -Suppliers=Vendors -SuppliersInvoice=Fakture dobaviteljev -SupplierInvoices=Fakture dobaviteljev -ShowSupplierInvoice=Show Vendor Invoice -NewSupplier=New vendor +Suppliers=Dobavitelji +SuppliersInvoice=Prejeti račun +SupplierInvoices=Prejeti računi +ShowSupplierInvoice=Prikaži račun dobavitelja +NewSupplier=Nov dobavitelj +NewSupplierInvoice = Nov prejeti račun History=Zgodovina -ListOfSuppliers=List of vendors -ShowSupplier=Show vendor +ListOfSuppliers=Seznam dobaviteljev +ShowSupplier=Prikaži dobavitelja OrderDate=Datum naročila -BuyingPriceMin=Best buying price -BuyingPriceMinShort=Best buying price +BuyingPriceMin=Najboljša nakupna cena +BuyingPriceMinShort=Najboljša nakupna cena TotalBuyingPriceMinShort=Seštevek nabavnih cen pod-proizvodov -TotalSellingPriceMinShort=Total of subproducts selling prices +TotalSellingPriceMinShort=Skupaj prodajne cene podizdelkov SomeSubProductHaveNoPrices=Nekateri pod-proizvodi nimajo določenih cen -AddSupplierPrice=Add buying price -ChangeSupplierPrice=Change buying price -SupplierPrices=Vendor prices -ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s -NoRecordedSuppliers=No vendor recorded -SupplierPayment=Vendor payment -SuppliersArea=Vendor area -RefSupplierShort=Ref. vendor +AddSupplierPrice=Dodajte nakupno ceno +ChangeSupplierPrice=Spremenite nakupno ceno +SupplierPrices=Cenik dobavitelja +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Referenca dobavitelja je že povezana z izdelkom: %s +NoRecordedSuppliers=Dobavitelj ni zabeležen +SupplierPayment=Plačila dobaviteljem +SuppliersArea=Dobavitelji +RefSupplierShort=Ref. dobavitelj Availability=Razpoložljivost -ExportDataset_fournisseur_1=Vendor invoices and invoice details -ExportDataset_fournisseur_2=Vendor invoices and payments -ExportDataset_fournisseur_3=Purchase orders and order details +ExportDataset_fournisseur_1=Prejeti računi in podrobnosti o računu +ExportDataset_fournisseur_2=Saldakonti dobaviteljev +ExportDataset_fournisseur_3=Naročila in podrobnosti naročila ApproveThisOrder=Odobri to naročilo -ConfirmApproveThisOrder=Are you sure you want to approve order %s? +ConfirmApproveThisOrder=Ali ste prepričani, da želite odobriti naročilo %s ? DenyingThisOrder=Zavrni to naročilo -ConfirmDenyingThisOrder=Are you sure you want to deny this order %s? -ConfirmCancelThisOrder=Are you sure you want to cancel this order %s? -AddSupplierOrder=Create Purchase Order -AddSupplierInvoice=Create vendor invoice -ListOfSupplierProductForSupplier=List of products and prices for vendor %s -SentToSuppliers=Sent to vendors -ListOfSupplierOrders=List of purchase orders -MenuOrdersSupplierToBill=Purchase orders to invoice -NbDaysToDelivery=Delivery delay (days) -DescNbDaysToDelivery=The longest delivery delay of the products from this order -SupplierReputation=Vendor reputation -ReferenceReputation=Reference reputation -DoNotOrderThisProductToThisSupplier=Do not order -NotTheGoodQualitySupplier=Low quality -ReputationForThisProduct=Reputation -BuyerName=Buyer name -AllProductServicePrices=All product / service prices -AllProductReferencesOfSupplier=All references of vendor -BuyingPriceNumShort=Vendor prices +ConfirmDenyingThisOrder=Ali ste prepričani, da želite zavrniti to naročilo %s ? +ConfirmCancelThisOrder=Ali ste prepričani, da želite preklicati to naročilo %s ? +AddSupplierOrder=Ustvarite naročilnico +AddSupplierInvoice=Ustvarite prejeti račun +ListOfSupplierProductForSupplier=Seznam dobaviteljevih izdelkov in cen %s +SentToSuppliers=Poslano dobaviteljem +ListOfSupplierOrders=Seznam naročilnic +MenuOrdersSupplierToBill=Naročila za fakturiranje +NbDaysToDelivery=Zamuda pri dostavi (dni) +DescNbDaysToDelivery=Najdaljša zamuda pri dostavi izdelkov iz tega naročila +SupplierReputation=Ugled dobavitelja +ReferenceReputation=Referenčni ugled +DoNotOrderThisProductToThisSupplier=Ne naročajte +NotTheGoodQualitySupplier=Nizka kvaliteta +ReputationForThisProduct=Ugled +BuyerName=Ime kupca +AllProductServicePrices=Vse cene izdelkov / storitev +AllProductReferencesOfSupplier=Vse reference dobavitelja +BuyingPriceNumShort=Ceniki dobaviteljev +RepeatableSupplierInvoice=Predloga računa dobavitelja +RepeatableSupplierInvoices=Predloge računov dobaviteljev +RepeatableSupplierInvoicesList=Predloge računov dobaviteljev +RecurringSupplierInvoices=Ponavljajoči se računi dobavitelja +ToCreateAPredefinedSupplierInvoice=Za izdelavo predloge računa dobavitelja morate ustvariti standardni račun, nato pa brez potrditve kliknite na gumb "%s". +GeneratedFromSupplierTemplate=Ustvarjeno iz predloge računa dobavitelja %s +SupplierInvoiceGeneratedFromTemplate=Račun dobavitelja %s Ustvarjeno iz predloge računa dobavitelja %s diff --git a/htdocs/langs/sl_SI/ticket.lang b/htdocs/langs/sl_SI/ticket.lang index be7e2d31183..5c24e13f2d0 100644 --- a/htdocs/langs/sl_SI/ticket.lang +++ b/htdocs/langs/sl_SI/ticket.lang @@ -18,307 +18,337 @@ # Generic # -Module56000Name=Tickets -Module56000Desc=Ticket system for issue or request management +Module56000Name=Zahtevki +Module56000Desc=Sistem za upravljanje zahtevkov -Permission56001=See tickets -Permission56002=Modify tickets -Permission56003=Delete tickets -Permission56004=Manage tickets -Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Permission56001=Poglej zahtevke +Permission56002=Sprememba zahtevkov +Permission56003=Izbriši zahtevke +Permission56004=Upravljanje zahtevkov +Permission56005=Pogled zahtevkov vseh partnerjev (ne velja za zunanje uporabnike, vedno bodite pozorni na pomebne partnerje) -TicketDictType=Ticket - Types -TicketDictCategory=Ticket - Groupes -TicketDictSeverity=Ticket - Severities -TicketDictResolution=Ticket - Resolution +Tickets=Vstopnice +TicketDictType=Zahtevki - vrste +TicketDictCategory=Zahtevki - skupine +TicketDictSeverity=Zahtevki - pomebnost +TicketDictResolution=Zahtevki - ločljivost -TicketTypeShortCOM=Commercial question -TicketTypeShortHELP=Request for functionnal help -TicketTypeShortISSUE=Issue or bug -TicketTypeShortPROBLEM=Problem -TicketTypeShortREQUEST=Change or enhancement request +TicketTypeShortCOM=Komercialno vprašanje +TicketTypeShortHELP=Zahteva za funkcionalno pomoč +TicketTypeShortISSUE=Težava ali napaka +TicketTypeShortPROBLEM=Težava +TicketTypeShortREQUEST=Spremeni oziroma izpopolni zahtevo TicketTypeShortPROJET=Projekt TicketTypeShortOTHER=Ostalo -TicketSeverityShortLOW=Majhen potencial -TicketSeverityShortNORMAL=Normal -TicketSeverityShortHIGH=Visok potencial -TicketSeverityShortBLOCKING=Critical, Blocking +TicketSeverityShortLOW=Nizka +TicketSeverityShortNORMAL=Normalna +TicketSeverityShortHIGH=Visoka +TicketSeverityShortBLOCKING=Kritična, blokiranje TicketCategoryShortOTHER=Ostalo -ErrorBadEmailAddress=Field '%s' incorrect -MenuTicketMyAssign=My tickets -MenuTicketMyAssignNonClosed=My open tickets -MenuListNonClosed=Open tickets +ErrorBadEmailAddress=Polje '%s' ni pravilno +MenuTicketMyAssign=Moji zahtevki +MenuTicketMyAssignNonClosed=Moji odprti zahtevki +MenuListNonClosed=Odprti zahtevki TypeContact_ticket_internal_CONTRIBUTOR=Sodelavec -TypeContact_ticket_internal_SUPPORTTEC=Assigned user -TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking -TypeContact_ticket_external_CONTRIBUTOR=External contributor +TypeContact_ticket_internal_SUPPORTTEC=Dodeljeno uporabniku +TypeContact_ticket_external_SUPPORTCLI=Stik kupec / sledenje incidentom +TypeContact_ticket_external_CONTRIBUTOR=Zunanji sodelavec -OriginEmail=Reporter Email -Notify_TICKET_SENTBYMAIL=Send ticket message by email +OriginEmail=Poročavalec e-pošta +Notify_TICKET_SENTBYMAIL=Pošljite sporočilo po e-pošti # Status Read=Preberite -Assigned=Assigned -InProgress=In progress -NeedMoreInformation=Waiting for reporter feedback -NeedMoreInformationShort=Waiting for feedback -Answered=Answered +Assigned=Dodeljeno +InProgress=V postopku +NeedMoreInformation=Čakanje na povratne informacije poročevalca +NeedMoreInformationShort=Čakanje na povratne informacije +Answered=Odgovoril Waiting=Na čakanju -SolvedClosed=Solved -Deleted=Deleted +SolvedClosed=Rešeno +Deleted=Izbrisano # Dict Type=Tip -Severity=Severity -TicketGroupIsPublic=Group is public -TicketGroupIsPublicDesc=If a ticket group is public, it will be visible in the form when creating a ticket from the public interface +Severity=Pomembnost +TicketGroupIsPublic=Javna skupina +TicketGroupIsPublicDesc=Če je skupina zahtevka javna, bo vidna v obrazcu, ko ustvarite zahtevek v javnem vmesniku # Email templates -MailToSendTicketMessage=To send email from ticket message +MailToSendTicketMessage=Pošiljanje zahtevka po e-pošti # # Admin page # -TicketSetup=Ticket module setup -TicketSettings=Settings +TicketSetup=Nastavitev zahtevkov +TicketSettings=Nastavitve TicketSetupPage= -TicketPublicAccess=A public interface requiring no identification is available at the following url -TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries -TicketParamModule=Module variable setup -TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. -TicketNewEmailBodyLabel=Text message sent after creating a ticket -TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. -TicketParamPublicInterface=Public interface setup -TicketsEmailMustExist=Require an existing email address to create a ticket -TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. -PublicInterface=Public interface -TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface -TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) -TicketPublicInterfaceTextHomeLabelAdmin=Welcome text of the public interface -TicketPublicInterfaceTextHome=You can create a support ticket or view existing from its identifier tracking ticket. -TicketPublicInterfaceTextHomeHelpAdmin=The text defined here will appear on the home page of the public interface. -TicketPublicInterfaceTopicLabelAdmin=Interface title -TicketPublicInterfaceTopicHelp=This text will appear as the title of the public interface. -TicketPublicInterfaceTextHelpMessageLabelAdmin=Help text to the message entry -TicketPublicInterfaceTextHelpMessageHelpAdmin=This text will appear above the message input area of the user. -ExtraFieldsTicket=Extra attributes -TicketCkEditorEmailNotActivated=HTML editor is not activated. Please put FCKEDITOR_ENABLE_MAIL content to 1 to get it. -TicketsDisableEmail=Do not send emails for ticket creation or message recording -TicketsDisableEmailHelp=By default, emails are sent when new tickets or messages created. Enable this option to disable *all* email notifications -TicketsLogEnableEmail=Enable log by email -TicketsLogEnableEmailHelp=At each change, an email will be sent **to each contact** associated with the ticket. -TicketParams=Params -TicketsShowModuleLogo=Display the logo of the module in the public interface -TicketsShowModuleLogoHelp=Enable this option to hide the logo module in the pages of the public interface -TicketsShowCompanyLogo=Display the logo of the company in the public interface -TicketsShowCompanyLogoHelp=Enable this option to hide the logo of the main company in the pages of the public interface -TicketsEmailAlsoSendToMainAddress=Also send a notification to the main email address -TicketsEmailAlsoSendToMainAddressHelp=Enable this option to also send an email to the address defined into setup "%s" (see tab "%s") -TicketsLimitViewAssignedOnly=Restrict the display to tickets assigned to the current user (not effective for external users, always be limited to the third party they depend on) -TicketsLimitViewAssignedOnlyHelp=Only tickets assigned to the current user will be visible. Does not apply to a user with tickets management rights. -TicketsActivatePublicInterface=Activate public interface -TicketsActivatePublicInterfaceHelp=Public interface allow any visitors to create tickets. -TicketsAutoAssignTicket=Automatically assign the user who created the ticket -TicketsAutoAssignTicketHelp=When creating a ticket, the user can be automatically assigned to the ticket. -TicketNumberingModules=Tickets numbering module -TicketsModelModule=Document templates for tickets -TicketNotifyTiersAtCreation=Notify third party at creation -TicketsDisableCustomerEmail=Always disable emails when a ticket is created from public interface -TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is added to a ticket -TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) -TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) -TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketPublicAccess=Javni vmesnik, ki ne zahteva identifikacije, je na voljo na naslednjem URL-ju +TicketSetupDictionaries=Vrsto zahtevka, pomebnost in analitično kodo je mogoče konfigurirati iz slovarjev +TicketParamModule=Nastavitev spremenljivke modula +TicketParamMail=Nastavitev e-pošte +TicketEmailNotificationFrom=E-mail pošiljatelja za obveščanje o odgovorih +TicketEmailNotificationFromHelp=E-pošta pošiljatelja, ki se uporablja za pošiljanje e-pošte z obvestilom, ko je odgovor zagotovljen v zaledni pisarni. Na primer noreply@example.com +TicketEmailNotificationTo=Obvestilo o ustvarjanju zahtevka na e-poštni naslov +TicketEmailNotificationToHelp=Če je prisoten, bo ta e-poštni naslov obveščen o ustvarjanju zahtevka +TicketNewEmailBodyLabel=Besedilno sporočilo, poslano po ustvarjanju zahtevka +TicketNewEmailBodyHelp=Tukaj navedeno besedilo bo vstavljeno v e-poštno sporočilo, ki potrjuje ustvarjanje novega zahtevka iz javnega vmesnika. Informacije o pregledu zahhtevka se samodejno dodajo. +TicketParamPublicInterface=Nastavitev javnega vmesnika +TicketsEmailMustExist=Za ustvarjanje zahtevka zahtevajte obstoječi e-poštni naslov +TicketsEmailMustExistHelp=V javnem vmesniku mora biti e-poštni naslov že izpolnjen v zbirki podatkov, da ustvarite nov zahtevek. +TicketCreateThirdPartyWithContactIfNotExist=Vprašajte za ime in naziv podjetja za neznane e-poštne naslove. +TicketCreateThirdPartyWithContactIfNotExistHelp=Preverite, ali obstaja partner ali stik za vneseno e-pošto. Če ne, zahtevajte ime in naziv podjetja, da ustvarite stik z partnerjem. +PublicInterface=Javni vmesnik +TicketUrlPublicInterfaceLabelAdmin=Nadomestni URL za javni vmesnik +TicketUrlPublicInterfaceHelpAdmin=Spletnemu strežniku je mogoče določiti vzdevek in tako dati na voljo javni vmesnik z drugim URL-jem (strežnik mora delovati kot proxy na tem novem URL-ju) +TicketPublicInterfaceTextHomeLabelAdmin=Pozdravno besedilo javnega vmesnika +TicketPublicInterfaceTextHome=Ustvarite lahko zahtevek za podporo ali si ogledate obstoječ zahtevek za sledenje identifikatorja. +TicketPublicInterfaceTextHomeHelpAdmin=Tukaj definirano besedilo bo prikazano na domači strani javnega vmesnika. +TicketPublicInterfaceTopicLabelAdmin=Naslov vmesnika +TicketPublicInterfaceTopicHelp=To besedilo bo prikazano kot naslov javnega vmesnika. +TicketPublicInterfaceTextHelpMessageLabelAdmin=Besedilo pomoči za vnos sporočila +TicketPublicInterfaceTextHelpMessageHelpAdmin=To besedilo se bo pojavilo nad območjem za vnos sporočila uporabnika. +ExtraFieldsTicket=Dodatni atributi +TicketCkEditorEmailNotActivated=Urejevalnik HTML ni aktiviran. Vsebino spremenljivke FCKEDITOR_ENABLE_MAIL postavite na 1, da ga omogočite. +TicketsDisableEmail=Ne pošiljajte e-pošte za ustvarjanje zahtevkov ali snemanje sporočil +TicketsDisableEmailHelp=E-poštna sporočila so privzeto poslana, ko so ustvarjene novi zahtevki ali sporočila. Omogočite to možnost, da onemogočite *vsa* e-poštna obvestila +TicketsLogEnableEmail=Omogoči prijavo po e-pošti +TicketsLogEnableEmailHelp=Ob vsaki spremembi bo **vsakemu kontaktu**, ki je povezan z zahtevkom, poslano e-poštno sporočilo. +TicketParams=Parametri +TicketsShowModuleLogo=Prikažite logotip modula v javnem vmesniku +TicketsShowModuleLogoHelp=Omogočite to možnost, če želite skriti modul logotipa na straneh javnega vmesnika +TicketsShowCompanyLogo=Prikažite logotip podjetja v javnem vmesniku +TicketsShowCompanyLogoHelp=Omogočite to možnost, če želite skriti logotip glavnega podjetja na straneh javnega vmesnika +TicketsEmailAlsoSendToMainAddress=Obvestilo pošljite tudi na glavni elektronski naslov +TicketsEmailAlsoSendToMainAddressHelp=Omogočite to možnost, če želite poslati e-pošto tudi na naslov, določen v nastavitvah "%s" (glejte zavihek "%s") +TicketsLimitViewAssignedOnly=Omejite prikaz na zahtevka, dodeljene trenutnemu uporabniku (ne velja za zunanje uporabnike, vedno bodite omejeni na pomebne partnerje) +TicketsLimitViewAssignedOnlyHelp=Vidni bodo le zahtevki, dodeljeni trenutnemu uporabniku. Ne velja za uporabnike s pravicami upravljanja zahtevkov. +TicketsActivatePublicInterface=Aktivirajte javni vmesnik +TicketsActivatePublicInterfaceHelp=Javni vmesnik omogoča vsem obiskovalcem ustvarjanje zahtevkov. +TicketsAutoAssignTicket=Samodejno dodelite uporabnika, ki je ustvaril zahtevek +TicketsAutoAssignTicketHelp=Pri ustvarjanju zahtevka je lahko uporabnik samodejno dodeljen zahtevku. +TicketNumberingModules=Modul za številčenje zahtevkov +TicketsModelModule=Predloge zahtevkov +TicketNotifyTiersAtCreation=Obvesti partnerja ob ustvarjanju +TicketsDisableCustomerEmail=Vedno onemogoči e-pošto, ko je zahtevek ustvarjen iz javnega vmesnika +TicketsPublicNotificationNewMessage=Pošlji e-pošto, ko je zahtevku dodano novo sporočilo/komentar +TicketsPublicNotificationNewMessageHelp=Pošlji e-pošto, ko je novo sporočilo dodano iz javnega vmesnika (dodeljenemu uporabniku ali e-poštno sporočilo z obvestili na (posodobitev) in/ali e-poštno sporočilo z obvestili na) +TicketPublicNotificationNewMessageDefaultEmail=Obvestila po e-pošti na (posodobitev) +TicketPublicNotificationNewMessageDefaultEmailHelp=Na ta naslov pošljite e-poštno sporočilo za obvestila o vsakem novem sporočilu, če zahtevku ni dodeljen uporabnik ali če uporabnik nima znanega e-poštnega naslova. +TicketsAutoReadTicket=Samodejno označi zahtevek kot prebran (ko je ustvarjen v zaledni pisarni) +TicketsAutoReadTicketHelp=Samodejno označi zahtevek kot prebran, ko je ustvarjen v zaledni pisarni. Ko je zahtevek ustvarjen iz javnega vmesnika, ostane s statusom »Ni prebrano«. +TicketsDelayBeforeFirstAnswer=Nov zahtevek mora prejeti prvi odgovor pred (ur): +TicketsDelayBeforeFirstAnswerHelp=Če nov zahtevek po tem časovnem obdobju (v urah) ne prejme odgovora, bo v pogledu seznama prikazana pomembna opozorilna ikona. +TicketsDelayBetweenAnswers=Nerešen zahtevek ne sme biti neaktiven med (ur): +TicketsDelayBetweenAnswersHelp=Če nerazrešena zahtevek, ki je že prejel odgovor, ni imel nadaljnje interakcije po tem časovnem obdobju (v urah), bo v seznamu prikazana opozorilna ikona. +TicketsAutoNotifyClose=Samodejno obvesti partnerja, ko zaprete zahtevek +TicketsAutoNotifyCloseHelp=Pri zapiranju zahtevka vam bo predlagano, da pošljete sporočilo enemu od stikov partnerja. Ob množičnem zaprtju bo poslano sporočilo enemu stiku partnerja, ki je povezan z zahtevkom. +TicketWrongContact=Navedeni stik ni del trenutnih stikov na zahtevku. E-pošta ni poslana. +TicketChooseProductCategory=Kategorija izdelka za podporo zahtevku +TicketChooseProductCategoryHelp=Izberite kategorijo izdelka podpore za zahtevek. To bo uporabljeno za samodejno povezovanje pogodbe z zahtevkom. +TicketUseCaptchaCode=Pri ustvarjanju zahtevka uporabite grafično kodo (CAPTCHA). +TicketUseCaptchaCodeHelp=Doda preverjanje CAPTCHA pri ustvarjanju novega zahtevka. + # # Index & list page # -TicketsIndex=Tickets area -TicketList=List of tickets -TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user -NoTicketsFound=No ticket found -NoUnreadTicketsFound=No unread ticket found -TicketViewAllTickets=View all tickets -TicketViewNonClosedOnly=View only open tickets -TicketStatByStatus=Tickets by status -OrderByDateAsc=Sort by ascending date -OrderByDateDesc=Sort by descending date -ShowAsConversation=Show as conversation list -MessageListViewType=Show as table list +TicketsIndex=Območje zahtevka +TicketList=Seznam zahtevkov +TicketAssignedToMeInfos=Na tej strani je prikazan seznam zahtevkov, ki jih je ustvaril ali dodelil trenutni uporabnik +NoTicketsFound=Ni zahtevkov +NoUnreadTicketsFound=Ni neprebranih zahtevkov +TicketViewAllTickets=Oglejte si vse zahtevke +TicketViewNonClosedOnly=Oglejte si samo odprte zahtevke +TicketStatByStatus=Zahtevki po statusu +OrderByDateAsc=Razvrsti po naraščajočem datumu +OrderByDateDesc=Razvrsti po padajočem datumu +ShowAsConversation=Prikaži kot seznam pogovorov +MessageListViewType=Prikaži kot seznam tabel +ConfirmMassTicketClosingSendEmail=Samodejno pošiljanje e-pošte ob zapiranju zahtevkov +ConfirmMassTicketClosingSendEmailQuestion=Ali želite ob zapiranju teh zahtevkov obvestiti partnerje? # # Ticket card # -Ticket=Ticket -TicketCard=Ticket card -CreateTicket=Create ticket -EditTicket=Edit ticket -TicketsManagement=Tickets Management -CreatedBy=Created by -NewTicket=New Ticket -SubjectAnswerToTicket=Ticket answer -TicketTypeRequest=Request type -TicketCategory=Ticket categorization -SeeTicket=See ticket -TicketMarkedAsRead=Ticket has been marked as read -TicketReadOn=Read on +Ticket=Zahtevek +TicketCard=Kartica zahtevka +CreateTicket=Ustvari zahtevek +EditTicket=Uredi zahtevek +TicketsManagement=Upravljanje zahtevkov +CreatedBy=Ustvaril +NewTicket=Nov zahtevek +SubjectAnswerToTicket=Odgovor na zahtevek +TicketTypeRequest=Vrsta zahteve +TicketCategory=Kategorizacija zahtevka +SeeTicket=Glej zahtevek +TicketMarkedAsRead=Zahtevek je označen kot prebran +TicketReadOn=Beri naprej TicketCloseOn=Datum zaključka -MarkAsRead=Mark ticket as read -TicketHistory=Ticket history -AssignUser=Assign to user -TicketAssigned=Ticket is now assigned -TicketChangeType=Change type -TicketChangeCategory=Change analytic code -TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message -MessageSuccessfullyAdded=Ticket added -TicketMessageSuccessfullyAdded=Message successfully added -TicketMessagesList=Message list -NoMsgForThisTicket=No message for this ticket -TicketProperties=Classification -LatestNewTickets=Latest %s newest tickets (not read) -TicketSeverity=Severity -ShowTicket=See ticket -RelatedTickets=Related tickets +MarkAsRead=Označi zahtevek kot prebran +TicketHistory=Zgodovina zahtevkov +AssignUser=Dodeli uporabniku +TicketAssigned=Zahtevek je zdaj dodeljen +TicketChangeType=Spremeni vrsto +TicketChangeCategory=Spremenite analitično kodo +TicketChangeSeverity=Spremenite pomembnost +TicketAddMessage=Dodaj zasebno sporočilo +MessageSuccessfullyAdded=Zahtevek dodan +TicketMessageSuccessfullyAdded=Sporočilo je bilo uspešno dodano +TicketMessagesList=Seznam sporočil +NoMsgForThisTicket=Za ta zahtevek ni sporočila +TicketProperties=Razvrstitev +LatestNewTickets=Zadnjih %s najnovejših zahtevkov (ni prebrano) +TicketSeverity=Pomebnost +ShowTicket=Glej zahtevek +RelatedTickets=Povezani zahtevki TicketAddIntervention=Dodaj intervencijo -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket -CloseATicket=Close|Solve a ticket -ConfirmCloseAticket=Confirm ticket closing -ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' -ConfirmDeleteTicket=Please confirm ticket deleting -TicketDeletedSuccess=Ticket deleted with success -TicketMarkedAsClosed=Ticket marked as closed -TicketDurationAuto=Calculated duration -TicketDurationAutoInfos=Duration calculated automatically from intervention related -TicketUpdated=Ticket updated -SendMessageByEmail=Send message by email -TicketNewMessage=New message -ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send -TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction -TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Podpis -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. -TicketMessageHelp=Only this text will be saved in the message list on ticket card. -TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. -TimeElapsedSince=Time elapsed since -TicketTimeToRead=Time elapsed before read -TicketTimeElapsedBeforeSince=Time elapsed before / since -TicketContacts=Contacts ticket -TicketDocumentsLinked=Documents linked to ticket -ConfirmReOpenTicket=Confirm reopen this ticket ? -TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticket with the subject %s: -TicketAssignedToYou=Ticket assigned -TicketAssignedEmailBody=You have been assigned the ticket #%s by %s -MarkMessageAsPrivate=Mark message as private -TicketMessagePrivateHelp=This message will not display to external users -TicketEmailOriginIssuer=Issuer at origin of the tickets -InitialMessage=Initial Message -LinkToAContract=Link to a contract -TicketPleaseSelectAContract=Select a contract -UnableToCreateInterIfNoSocid=Can not create an intervention when no third party is defined -TicketMailExchanges=Mail exchanges -TicketInitialMessageModified=Initial message modified -TicketMessageSuccesfullyUpdated=Message successfully updated -TicketChangeStatus=Change status -TicketConfirmChangeStatus=Confirm the status change: %s ? -TicketLogStatusChanged=Status changed: %s to %s -TicketNotNotifyTiersAtCreate=Not notify company at create -Unread=Unread -TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. -ErrorTicketRefRequired=Ticket reference name is required +CloseTicket=Zapri|Reši +AbandonTicket=Opuščen +CloseATicket=Zapri|Reši zahtevek +ConfirmCloseAticket=Potrdite zapiranje zahtevka +ConfirmAbandonTicket=Ali potrdite zaprtje zahtevka v status 'Opuščeno' +ConfirmDeleteTicket=Prosimo, potrdite brisanje zahtevka +TicketDeletedSuccess=Zahtevek je uspešno izbrisan +TicketMarkedAsClosed=Zahtevek je označen kot zaprt +TicketDurationAuto=Izračunano trajanje +TicketDurationAutoInfos=Samodejno izračunano trajanje na podlagi intervencije +TicketUpdated=Zahtevek posodobljen +SendMessageByEmail=Pošlji sporočilo po e-pošti +TicketNewMessage=Novo sporočilo +ErrorMailRecipientIsEmptyForSendTicketMessage=Prejemnik je prazen. Brez pošiljanja e-pošte +TicketGoIntoContactTab=Pojdite na zavihek "Stiki", da jih izberete +TicketMessageMailIntro=Glava sporočila +TicketMessageMailIntroHelp=To besedilo je dodano samo na začetku e-pošte in ne bo shranjeno. +TicketMessageMailIntroText=Pozdravljeni,
    zahtevkom, ki jih spremljate, je bil dodan nov odgovor. Tukaj je sporočilo:
    +TicketMessageMailIntroHelpAdmin=To besedilo bo vstavljeno pred odgovor, ko odgovarjate na zahtevke +TicketMessageMailFooter=Noga sporočila +TicketMessageMailFooterHelp=To besedilo je dodano samo na koncu sporočila, poslanega po e-pošti, in ne bo shranjeno. +TicketMessageMailFooterText=Sporočilo poslal %s prek Dolibarr +TicketMessageMailFooterHelpAdmin=To besedilo bo vstavljeno za odgovornim sporočilom. +TicketMessageHelp=Samo to besedilo bo shranjeno na seznamu sporočil na kartici zahtevka. +TicketMessageSubstitutionReplacedByGenericValues=Nadomestne spremenljivke so nadomeščene z generičnimi vrednostmi. +ForEmailMessageWillBeCompletedWith=Za e-poštna sporočila, poslana zunanjim uporabnikom, bo sporočilo dopolnjeno z +TimeElapsedSince=Čas je pretekel od +TicketTimeToRead=Čas, ki je pretekel pred branjem +TicketTimeElapsedBeforeSince=Čas, ki je pretekel pred / od +TicketContacts=Zahtek stikov +TicketDocumentsLinked=Dokumenti, povezani z zahtevkom +ConfirmReOpenTicket=Potrjujem ponovno odpiranje zahtevka? +TicketMessageMailIntroAutoNewPublicMessage=Na zahtevku je bilo objavljeno novo sporočilo z zadevo %s: +TicketAssignedToYou=Zahtevek dodeljen +TicketAssignedEmailBody=%s vam je dodelil zahtevek #%s +MarkMessageAsPrivate=Označi sporočilo kot zasebno +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) +TicketMessagePrivateHelp=To sporočilo ne bo prikazano zunanjim uporabnikom +TicketEmailOriginIssuer=Izdajatelj originalnega zahtevka +InitialMessage=Začetno sporočilo +LinkToAContract=Povezava do pogodbe +TicketPleaseSelectAContract=Izberite pogodbo +UnableToCreateInterIfNoSocid=Ni mogoče ustvariti posega, če ni definiran partner +TicketMailExchanges=Izmenjave pošte +TicketInitialMessageModified=Začetno sporočilo spremenjeno +TicketMessageSuccesfullyUpdated=Sporočilo je bilo uspešno posodobljeno +TicketChangeStatus=Spremeni status +TicketConfirmChangeStatus=Potrdite spremembo stanja: %s ? +TicketLogStatusChanged=Status spremenjen: %s v %s +TicketNotNotifyTiersAtCreate=Ne obvesti podjetja ob ustvarjanju +NotifyThirdpartyOnTicketClosing=Stiki za obveščanje med zapiranjem zahtevka +TicketNotifyAllTiersAtClose=Vsi povezani stiki +TicketNotNotifyTiersAtClose=Ni povezanega stika +Unread=Neprebrano +TicketNotCreatedFromPublicInterface=Ni na voljo. Zahtevek ni bil ustvarjen iz javnega vmesnika. +ErrorTicketRefRequired=Zahtevana je referenca zahtevka +TicketsDelayForFirstResponseTooLong=Preveč časa je preteklo od odprtja zahtevka brez nobenega odgovora. +TicketsDelayFromLastResponseTooLong=Od zadnjega odgovora na tej kartici je preteklo preveč časa. +TicketNoContractFoundToLink=Najdena ni bila nobena pogodba, ki bi bila samodejno povezana z zahtevkom. Prosimo, da ročno povežete pogodbo. +TicketManyContractsLinked=Številne pogodbe so bile samodejno povezane z zahtevkom. Prepričajte se, kateri bi morali izbrati. # # Logs # -TicketLogMesgReadBy=Ticket %s read by %s -NoLogForThisTicket=No log for this ticket yet -TicketLogAssignedTo=Ticket %s assigned to %s -TicketLogPropertyChanged=Ticket %s modified: classification from %s to %s -TicketLogClosedBy=Ticket %s closed by %s -TicketLogReopen=Ticket %s re-open +TicketLogMesgReadBy=Zahtevek %s je prebral %s +NoLogForThisTicket=Za zahtevek še ni dnevnika +TicketLogAssignedTo=Zahtevek %s je dodeljen %s +TicketLogPropertyChanged=Zahtevek %s spremenjen: razvrstitev iz %s v %s +TicketLogClosedBy=Zahtevek %s je zaprl %s +TicketLogReopen=Zahtevek %s je ponovno odprt # # Public pages # -TicketSystem=Ticket system -ShowListTicketWithTrackId=Display ticket list from track ID -ShowTicketWithTrackId=Display ticket from track ID -TicketPublicDesc=You can create a support ticket or check from an existing ID. -YourTicketSuccessfullySaved=Ticket has been successfully saved! -MesgInfosPublicTicketCreatedWithTrackId=A new ticket has been created with ID %s and Ref %s. -PleaseRememberThisId=Please keep the tracking number that we might ask you later. -TicketNewEmailSubject=Ticket creation confirmation - Ref %s (public ticket ID %s) -TicketNewEmailSubjectCustomer=New support ticket -TicketNewEmailBody=This is an automatic email to confirm you have registered a new ticket. -TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. -TicketNewEmailBodyInfosTicket=Information for monitoring the ticket -TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. -TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link -TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. -TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. -TicketPublicMsgViewLogIn=Please enter ticket tracking ID -TicketTrackId=Public Tracking ID -OneOfTicketTrackId=One of your tracking ID -ErrorTicketNotFound=Ticket with tracking ID %s not found! +TicketSystem=Sistem zahtevkov +ShowListTicketWithTrackId=Prikaži seznam zahtevkov na podlagi ID +ShowTicketWithTrackId=Prikaži zahtevek na podlagi ID +TicketPublicDesc=Ustvarite lahko zahtevek za podporo ali preverite iz obstoječega ID-ja. +YourTicketSuccessfullySaved=Zahtevek je uspešno shranjen! +MesgInfosPublicTicketCreatedWithTrackId=Nov zahtevek je bila ustvarjen z ID-jem %s in Ref %s. +PleaseRememberThisId=Prosimo, shranite sledilno številko, ki jo bomo morda zahtevali pozneje. +TicketNewEmailSubject=Potrditev ustvarjanja zahtevka - Ref %s (javni ID zahtevka %s) +TicketNewEmailSubjectCustomer=Nov zahtevek za podporo +TicketNewEmailBody=To je samodejno e-poštno sporočilo za potrditev, da ste registrirali nov zahtevek. +TicketNewEmailBodyCustomer=To je samodejno e-poštno sporočilo za potrditev, da je bil nov zahtevek pravkar ustvarjen v vašem računu. +TicketNewEmailBodyInfosTicket=Informacije za spremljanje zahtevka +TicketNewEmailBodyInfosTrackId=Sledilna številka zahtevka: %s +TicketNewEmailBodyInfosTrackUrl=Zahtevek si lahko spremljate s klikom na naslednji povezavi +TicketNewEmailBodyInfosTrackUrlCustomer=Zahtevek si lahko ogledate v posebnem vmesniku s klikom na naslednjo povezavo +TicketCloseEmailBodyInfosTrackUrlCustomer=Zgodovino zahtevka si lahko ogledate s klikom na naslednjo povezavo +TicketEmailPleaseDoNotReplyToThisEmail=Prosimo, ne odgovarjajte neposredno na to e-pošto! Uporabite povezavo za odgovor v vmesniku. +TicketPublicInfoCreateTicket=Ta obrazec vam omogoča, da v našem sistemu upravljanja zabeležite zahtevek za podporo. +TicketPublicPleaseBeAccuratelyDescribe=Prosimo, natančno opišite svoje vprašanje. Navedite največ možnih informacij, da bomo lahko pravilno prepoznali vašo zahtevo. +TicketPublicMsgViewLogIn=Vnesite ID za sledenje zahtevku +TicketTrackId=Javni ID za sledenje +OneOfTicketTrackId=Eden od vaših ID-jev za sledenje +ErrorTicketNotFound=Zahtevka z ID-jem za sledenje %s ni mogoče najti! Subject=Predmet -ViewTicket=View ticket -ViewMyTicketList=View my ticket list -ErrorEmailMustExistToCreateTicket=Error: email address not found in our database -TicketNewEmailSubjectAdmin=New ticket created - Ref %s (public ticket ID %s) -TicketNewEmailBodyAdmin=

    Ticket has just been created with ID #%s, see information:

    -SeeThisTicketIntomanagementInterface=See ticket in management interface -TicketPublicInterfaceForbidden=The public interface for the tickets was not enabled -ErrorEmailOrTrackingInvalid=Bad value for tracking ID or email -OldUser=Old user +ViewTicket=Ogled zahtevka +ViewMyTicketList=Oglejte si moj seznam zahtevkov +ErrorEmailMustExistToCreateTicket=Napaka: e-poštnega naslova ni bilo mogoče najti v naši bazi podatkov +TicketNewEmailSubjectAdmin=Nov zahtevek je ustvarjen - Ref %s (javni ID zahtevka %s) +TicketNewEmailBodyAdmin=

    Zahtevek je bila pravkar ustvarjen z ID #%s, glejte informacije:

    +SeeThisTicketIntomanagementInterface=Oglejte si zahtevek v vmesniku za upravljanje +TicketPublicInterfaceForbidden=Javni vmesnik za zahtevke ni omogočen +ErrorEmailOrTrackingInvalid=Nepravilna vrednost za ID ali e-pošto za sledenje +OldUser=Stari uporabnik NewUser=Nov uporabnik -NumberOfTicketsByMonth=Number of tickets per month -NbOfTickets=Number of tickets +NumberOfTicketsByMonth=Število zahtevkov na mesec +NbOfTickets=Število zahtevkov # notifications -TicketNotificationEmailSubject=Ticket %s updated -TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated -TicketNotificationRecipient=Notification recipient -TicketNotificationLogMessage=Log message -TicketNotificationEmailBodyInfosTrackUrlinternal=View ticket into interface -TicketNotificationNumberEmailSent=Notification email sent: %s +TicketCloseEmailSubjectCustomer=Zahtevek zaprt +TicketCloseEmailBodyCustomer=To je samodejno sporočilo, ki vas obvešča, da je bil zahtevek%s pravkar zaprt. +TicketCloseEmailSubjectAdmin=Zahtevek zaprt - Réf %s (javni ID zahtevka %s) +TicketCloseEmailBodyAdmin=Zahtevek z ID #%s je bila pravkar zaprt, glejte informacije: +TicketNotificationEmailSubject=Zahtevek %s posodobljena +TicketNotificationEmailBody=To je samodejno sporočilo, ki vas obvešča, da je bil zahtevek%s pravkar posodobljen +TicketNotificationRecipient=Prejemnik obvestila +TicketNotificationLogMessage=Dnevnik sporočila +TicketNotificationEmailBodyInfosTrackUrlinternal=Oglejte si zahtevek v vmesniku +TicketNotificationNumberEmailSent=Poslano e-poštno obvestilo: %s -ActionsOnTicket=Events on ticket +ActionsOnTicket=Dogodki na zahtevku # # Boxes # -BoxLastTicket=Latest created tickets -BoxLastTicketDescription=Latest %s created tickets +BoxLastTicket=Zadnji ustvarjeni zahtevki +BoxLastTicketDescription=Najnovejših %s ustvarjenih zahtevkov BoxLastTicketContent= -BoxLastTicketNoRecordedTickets=No recent unread tickets -BoxLastModifiedTicket=Latest modified tickets -BoxLastModifiedTicketDescription=Latest %s modified tickets +BoxLastTicketNoRecordedTickets=Ni nedavnih neprebranih zahtevkov +BoxLastModifiedTicket=Zadnje spremenjeni zahtevki +BoxLastModifiedTicketDescription=Najnovejših %s spremenjenih zahtevkov BoxLastModifiedTicketContent= -BoxLastModifiedTicketNoRecordedTickets=No recent modified tickets -BoxTicketType=Distribution of open tickets by type -BoxTicketSeverity=Number of open tickets by severity -BoxNoTicketSeverity=No tickets opened -BoxTicketLastXDays=Number of new tickets by days the last %s days -BoxTicketLastXDayswidget = Number of new tickets by days the last X days -BoxNoTicketLastXDays=No new tickets the last %s days -BoxNumberOfTicketByDay=Number of new tickets by day -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) -TicketCreatedToday=Ticket created today -TicketClosedToday=Ticket closed today -KMFoundForTicketGroup=We found topics and FAQs that may answers your question, thanks to check them before submitting the ticket +BoxLastModifiedTicketNoRecordedTickets=Ni nedavno spremenjenih zahtevkov +BoxTicketType=Seznam odprtih zahtev po vrsti +BoxTicketSeverity=Število odprtih zahtev glede na pomembnost +BoxNoTicketSeverity=Ni odprtih zahtev +BoxTicketLastXDays=Število novih zahtev po dnevih zadnjih %s dni +BoxTicketLastXDayswidget = Število novih zahtev po dnevih zadnjih X dni +BoxNoTicketLastXDays=V zadnjih %s dneh ni bilo novih zahtevkov +BoxNumberOfTicketByDay=Število novih zahtev po dnevih +BoxNewTicketVSClose=Število zahtev v primerjavi z zaprtimi zahtevki (danes) +TicketCreatedToday=Današnji prejeti zahtevki +TicketClosedToday=Današnji zaprti zahtevki +KMFoundForTicketGroup=Našli smo teme in pogosta vprašanja, ki lahko odgovorijo na vaše vprašanje, zato jih preverite, preden oddate zahtevo diff --git a/htdocs/langs/sl_SI/trips.lang b/htdocs/langs/sl_SI/trips.lang index 8b989e0ab57..45a474350f4 100644 --- a/htdocs/langs/sl_SI/trips.lang +++ b/htdocs/langs/sl_SI/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Show expense report -Trips=Stroškovna poročila -TripsAndExpenses=Expenses reports -TripsAndExpensesStatistics=Expense reports statistics -TripCard=Expense report card -AddTrip=Create expense report -ListOfTrips=List of expense reports -ListOfFees=Seznam stroškov -TypeFees=Types of fees -ShowTrip=Show expense report -NewTrip=New expense report -LastExpenseReports=Latest %s expense reports -AllExpenseReports=All expense reports -CompanyVisited=Company/organization visited -FeesKilometersOrAmout=Količina kilometrov -DeleteTrip=Delete expense report -ConfirmDeleteTrip=Are you sure you want to delete this expense report? -ListTripsAndExpenses=List of expense reports -ListToApprove=Waiting for approval -ExpensesArea=Expense reports area +AUTHOR=Posnel +AUTHORPAIEMENT=Plačano s strani +AddTrip=Ustvari poročilo o stroških +AllExpenseReport=Vse vrste poročil o stroških +AllExpenseReports=Vsa poročila o stroških +AnyOtherInThisListCanValidate=Oseba, ki jo je treba obvestiti za potrditev zahteve. +AttachTheNewLineToTheDocument=Pripni vrstico naloženemu dokumentu +AucuneLigne=Ni še nobenega poročila o stroških +BrouillonnerTrip=Premakni nazaj poročilo o stroških v stanje »Osnutek« +byEX_DAY=dnevno (omejitev na %s) +byEX_EXP=po vrstici (omejitev na %s) +byEX_MON=po mesecih (omejitev na %s) +byEX_YEA=po letu (omejitev na %s) +CANCEL_USER=Izbrisal +CarCategory=Kategorija vozila ClassifyRefunded=Označi kot "Povrnjeno" -ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.
    - User: %s
    - Period: %s
    Click here to validate: %s -ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval -ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.
    The %s, you refused to approve the expense report for this reason: %s.
    A new version has been proposed and waiting for your approval.
    - User: %s
    - Period: %s
    Click here to validate: %s -ExpenseReportApproved=An expense report was approved -ExpenseReportApprovedMessage=The expense report %s was approved.
    - User: %s
    - Approved by: %s
    Click here to show the expense report: %s -ExpenseReportRefused=An expense report was refused -ExpenseReportRefusedMessage=The expense report %s was refused.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s -ExpenseReportCanceled=An expense report was canceled -ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s -ExpenseReportPaid=An expense report was paid -ExpenseReportPaidMessage=The expense report %s was paid.
    - User: %s
    - Paid by: %s
    Click here to show the expense report: %s -TripId=Id expense report -AnyOtherInThisListCanValidate=Person to be informed for validating the request. -TripSociete=Information company -TripNDF=Informations expense report -PDFStandardExpenseReports=Standard template to generate a PDF document for expense report -ExpenseReportLine=Expense report line -TF_OTHER=Ostalo -TF_TRIP=Transportation +CompanyVisited=Obiskano podjetje/organizacija +ConfirmBrouillonnerTrip=Ali ste prepričani, da želite to poročilo o stroških premakniti v stanje »Osnutek«? +ConfirmCancelTrip=Ali ste prepričani, da želite preklicati to poročilo o stroških? +ConfirmCloneExpenseReport=Ali ste prepričani, da želite klonirati to poročilo o stroških? +ConfirmDeleteTrip=Ali ste prepričani, da želite izbrisati to poročilo o stroških? +ConfirmPaidTrip=Ali ste prepričani, da želite spremeniti status tega poročila o stroških v »Plačano«? +ConfirmRefuseTrip=Ali ste prepričani, da želite zavrniti to poročilo o stroških? +ConfirmSaveTrip=Ali ste prepričani, da želite potrditi to poročilo o stroških? +ConfirmValideTrip=Ali ste prepričani, da želite odobriti to poročilo o stroških? +DATE_CANCEL=Datum odpovedi +DATE_PAIEMENT=Datum plačila +DATE_REFUS=Zavrni datum +DATE_SAVE=Datum potrditve +DefaultCategoryCar=Privzeti način prevoza +DefaultRangeNumber=Privzeto število obsega +DeleteTrip=Izbriši poročilo o stroških +ErrorDoubleDeclaration=Prijavili ste drugo poročilo o stroških za podobno časovno obdobje. +Error_EXPENSEREPORT_ADDON_NotDefined=Napaka, pravilo za oštevilčenje poročila o stroških ref ni bilo definirano v nastavitvah modula 'Poročilo o stroških' +ExpenseRangeOffset=Znesek odmika: %s +expenseReportCatDisabled=Kategorija je onemogočena - glejte slovar c_exp_tax_cat +expenseReportCoef=Koeficient +expenseReportCoefUndefined=(vrednost ni definirana) +expenseReportOffset=Odmik +expenseReportPrintExample=odmik + (d x koef) = %s +expenseReportRangeDisabled=Obseg onemogočen - glejte slovar c_exp_tax_range +expenseReportRangeFromTo=od %d do %d +expenseReportRangeMoreThan=več kot %d +expenseReportTotalForFive=Primer z d = 5 +ExpenseReportApplyTo=Se nanaša na +ExpenseReportApproved=Potrjeno je bilo poročilo o stroških +ExpenseReportApprovedMessage=Potrjeno je bilo poročilo o stroških %s.
    - Uporabnik: %s
    - Odobril: %s
    Kliknite tukaj za prikaz poročila o stroških: %s +ExpenseReportCanceled=Poročilo o stroških je bilo preklicano +ExpenseReportCanceledMessage=Poročilo o stroških %s je bilo preklicano.
    - Uporabnik: %s
    - Preklical: %s
    - Razlog za preklic: %s
    Kliknite tukaj za prikaz poročila o stroškihfecz87f4b: a0ec +ExpenseReportConstraintViolationError=Največji znesek presežen (pravilo %s): %s je višji od %s (prekoračitev prepovedana) +ExpenseReportConstraintViolationWarning=Največji znesek presežen (pravilo %s): %s je višji od %s (dovoljena prekoračitev) +ExpenseReportDateEnd=Datum veljavnosti +ExpenseReportDateStart=Začetni datum +ExpenseReportDomain=Domena za prijavo +ExpenseReportIkDesc=Izračun stroškov za kilometre lahko spremenite po kategorijah in obsegih, ki so predhodno definirani. d je razdalja v kilometrih +ExpenseReportLimitAmount=Največji znesek +ExpenseReportLimitOn=Omejitev vklopljena +ExpenseReportLine=Vrstica poročila o stroških +ExpenseReportPaid=Poročilo o stroških je bilo plačano +ExpenseReportPaidMessage=Poročilo o stroških %s je bilo plačano.
    - Uporabnik: %s
    - Plačnik: %s
    Kliknite tukaj za prikaz poročila o stroških: %s +ExpenseReportPayment=Plačilo poročila o stroških +ExpenseReportRef=Ref. poročilo o izdatkih +ExpenseReportRefused=Poročilo o stroških je bilo zavrnjeno +ExpenseReportRefusedMessage=Poročilo o stroških %s je bilo zavrnjeno.
    - Uporabnik: %s
    - Zavrnil: %s
    - Razlog za zavrnitev: %s
    Kliknite tukaj za prikaz poročila o stroškihfecz87f4b: a0ec +ExpenseReportRestrictive=Prekoračitev prepovedana +ExpenseReportRuleErrorOnSave=Napaka: %s +ExpenseReportRuleSave=Pravilo za poročilo o stroških je shranjeno +ExpenseReportRulesDesc=Določite lahko pravila za največji znesek za poročila o stroških. Ta pravila bodo uporabljena, ko bo v poročilo o stroških dodan nov strošek +ExpenseReportWaitingForApproval=Novo poročilo o stroških je bilo predloženo v potrditev +ExpenseReportWaitingForApprovalMessage=Novo poročilo o stroških je bilo predloženo in čaka na odobritev.
    - Uporabnik: %s
    - Obdobje: %s
    Kliknite tukaj za potrditev: %s +ExpenseReportWaitingForReApproval=Poročilo o stroških je bilo predloženo v ponovno odobritev +ExpenseReportWaitingForReApprovalMessage=Poročilo o stroških je bilo predloženo in čaka na ponovno odobritev.
    %s, zavrnili ste odobritev poročila o stroških iz tega razloga: %s.
    Nova različica je bila predlagana in čaka na vašo odobritev.
    - Uporabnik: %s
    - Obdobje: %s
    Kliknite tukaj za potrditev: %s +ExpenseReportsIk=Konfiguracija zaračunavanja kilometrine +ExpenseReportsRules=Pravila za poročilo o stroških +ExpenseReportsToApprove=Poročila o stroških za odobritev +ExpenseReportsToPay=Poročila o stroških za plačilo +ExpensesArea=Področje za poročila o stroških +FeesKilometersOrAmout=Količina kilometrov +LastExpenseReports=Najnovejša %s poročila o stroških +ListOfFees=Seznam stroškov +ListOfTrips=Seznam poročil o stroških +ListToApprove=Čakam na odobritev +ListTripsAndExpenses=Seznam poročil o stroških +MOTIF_CANCEL=Razlog +MOTIF_REFUS=Razlog +ModePaiement=Način plačila +NewTrip=Novo poročilo o stroških +nolimitbyEX_DAY=dnevno (brez omejitev) +nolimitbyEX_EXP=po vrsticah (brez omejitev) +nolimitbyEX_MON=po mesecih (brez omejitev) +nolimitbyEX_YEA=po letih (brez omejitev) +NoTripsToExportCSV=Za to obdobje ni poročila o stroških za izvoz. +NOT_AUTHOR=Niste avtor tega poročila o stroških. Operacija preklicana. +OnExpense=Stroškovna linija +PDFStandardExpenseReports=Standardna predloga za ustvarjanje dokumenta PDF za poročilo o stroških +PaidTrip=Plačajte poročilo o stroških +REFUSEUR=Zavrnil +RangeIk=Razpon prevoženih kilometrov +RangeNum=Razpon %d +SaveTrip=Potrdite poročilo o stroških +ShowExpenseReport=Pokaži poročilo o stroških +ShowTrip=Pokaži poročilo o stroških +TripCard=Poročilo o stroških +TripId=Identifikacijsko poročilo o stroških +TripNDF=Poročilo o stroških informacij +TripSociete=Informacijsko podjetje +Trips=Stroškovna poročila +TripsAndExpenses=Poročila o stroških +TripsAndExpensesStatistics=Statistika poročil o stroških +TypeFees=Vrste pristojbin +UploadANewFileNow=Naložite nov dokument zdaj +VALIDATOR=Uporabnik odgovoren za odobritev +VALIDOR=Odobril +ValidateAndSubmit=Potrdite in predložite v odobritev +ValidatedWaitingApproval=Potrjeno (čaka na odobritev) +ValideTrip=Potrdite poročilo o stroških + +## Dictionary +EX_BRE=Zajtrk +EX_CAM=Vzdrževanje in popravilo CV +EX_CAM_VP=PV vzdrževanje in popravilo +EX_CAR=Najem avtomobila +EX_CUR=Stranke prejemajo +EX_DOC=Dokumentacija +EX_EMM=Obrok za zaposlene +EX_FUE=Gorivo CV +EX_FUE_VP=Gorivo PV +EX_GUM=Obrok za goste +EX_HOT=Hotel +EX_IND=Naročnina za odškodninski prevoz +EX_KME=Stroški kilometrine +EX_OTR=Drugo prejemanje +EX_PAR=CV parkiranja +EX_PAR_VP=Parkirišče PV +EX_POS=Poštnina +EX_SUM=Zaloga za vzdrževanje +EX_SUO=Pisarniški material +EX_TAX=Razni davki +EX_TOL=Toll CV +EX_TOL_VP=Cestnina PV +TF_BUS=Avtobus +TF_CAR=avto +TF_ESSENCE=Gorivo +TF_HOTEL=Hotel TF_LUNCH=Kosilo TF_METRO=Metro -TF_TRAIN=Train -TF_BUS=Bus -TF_CAR=Car -TF_PEAGE=Toll -TF_ESSENCE=Fuel -TF_HOTEL=Hotel -TF_TAXI=Taxi -EX_KME=Mileage costs -EX_FUE=Fuel CV -EX_HOT=Hotel -EX_PAR=Parking CV -EX_TOL=Toll CV -EX_TAX=Various Taxes -EX_IND=Indemnity transportation subscription -EX_SUM=Maintenance supply -EX_SUO=Office supplies -EX_CAR=Car rental -EX_DOC=Documentation -EX_CUR=Customers receiving -EX_OTR=Other receiving -EX_POS=Postage -EX_CAM=CV maintenance and repair -EX_EMM=Employees meal -EX_GUM=Guests meal -EX_BRE=Breakfast -EX_FUE_VP=Fuel PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parking PV -EX_CAM_VP=PV maintenance and repair -DefaultCategoryCar=Default transportation mode -DefaultRangeNumber=Default range number -UploadANewFileNow=Upload a new document now -Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report' -ErrorDoubleDeclaration=You have declared another expense report into a similar date range. -AucuneLigne=There is no expense report declared yet -ModePaiement=Payment mode -VALIDATOR=User responsible for approval -VALIDOR=Odobril -AUTHOR=Recorded by -AUTHORPAIEMENT=Paid by -REFUSEUR=Denied by -CANCEL_USER=Deleted by -MOTIF_REFUS=Razlog -MOTIF_CANCEL=Razlog -DATE_REFUS=Deny date -DATE_SAVE=Datum potrditve -DATE_CANCEL=Cancelation date -DATE_PAIEMENT=Datum plačila -ExpenseReportRef=Ref. expense report -ValidateAndSubmit=Validate and submit for approval -ValidatedWaitingApproval=Validated (waiting for approval) -NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. -ConfirmRefuseTrip=Are you sure you want to deny this expense report? -ValideTrip=Approve expense report -ConfirmValideTrip=Are you sure you want to approve this expense report? -PaidTrip=Pay an expense report -ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? -ConfirmCancelTrip=Are you sure you want to cancel this expense report? -BrouillonnerTrip=Move back expense report to status "Draft" -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? -SaveTrip=Validate expense report -ConfirmSaveTrip=Are you sure you want to validate this expense report? -NoTripsToExportCSV=No expense report to export for this period. -ExpenseReportPayment=Expense report payment -ExpenseReportsToApprove=Expense reports to approve -ExpenseReportsToPay=Expense reports to pay -ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? -ExpenseReportsIk=Configuration of mileage charges -ExpenseReportsRules=Expense report rules -ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers -ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report -expenseReportOffset=Odmik -expenseReportCoef=Coefficient -expenseReportTotalForFive=Example with d = 5 -expenseReportRangeFromTo=from %d to %d -expenseReportRangeMoreThan=more than %d -expenseReportCoefUndefined=(value not defined) -expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary -expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Apply to -ExpenseReportDomain=Domain to apply -ExpenseReportLimitOn=Limit on -ExpenseReportDateStart=Začetni datum -ExpenseReportDateEnd=Datum veljavnosti -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden -AllExpenseReport=All type of expense report -OnExpense=Expense line -ExpenseReportRuleSave=Expense report rule saved -ExpenseReportRuleErrorOnSave=Error: %s -RangeNum=Range %d -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) -byEX_DAY=by day (limitation to %s) -byEX_MON=by month (limitation to %s) -byEX_YEA=by year (limitation to %s) -byEX_EXP=by line (limitation to %s) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) -nolimitbyEX_DAY=by day (no limitation) -nolimitbyEX_MON=by month (no limitation) -nolimitbyEX_YEA=by year (no limitation) -nolimitbyEX_EXP=by line (no limitation) -CarCategory=Vehicle category -ExpenseRangeOffset=Offset amount: %s -RangeIk=Mileage range -AttachTheNewLineToTheDocument=Attach the line to an uploaded document +TF_OTHER=Ostalo +TF_PEAGE=Cestnina +TF_TAXI=Taksi +TF_TRAIN=Vlak +TF_TRIP=Prevozništvo diff --git a/htdocs/langs/sl_SI/users.lang b/htdocs/langs/sl_SI/users.lang index 6d85331479c..8d72c453249 100644 --- a/htdocs/langs/sl_SI/users.lang +++ b/htdocs/langs/sl_SI/users.lang @@ -6,14 +6,14 @@ Permission=Dovoljenje Permissions=Dovoljenja EditPassword=Spremeni geslo SendNewPassword=Regeneriraj in pošlji geslo -SendNewPasswordLink=Send link to reset password +SendNewPasswordLink=Pošlji povezavo za ponastavitev gesla ReinitPassword=Regeneriraj geslo PasswordChangedTo=Geslo spremenjeno v: %s -SubjectNewPassword=Your new password for %s +SubjectNewPassword=Vaše novo geslo za %s GroupRights=Dovoljenja skupine UserRights=Dovoljenja uporabnika -Credentials=Credentials -UserGUISetup=User Display Setup +Credentials=Poverilnice +UserGUISetup=Nastavitev uporabniškega zaslona DisableUser=Onemogoči DisableAUser=Onemogoči DeleteUser=Izbriši @@ -21,12 +21,12 @@ DeleteAUser=Izbriši uporabnika EnableAUser=Omogoči uporabnika DeleteGroup=Izbriši DeleteAGroup=Izbriši skupino -ConfirmDisableUser=Are you sure you want to disable user %s? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=Ali ste prepričani, da želite onemogočiti uporabnika %s ? +ConfirmDeleteUser=Ali ste prepričani, da želite izbrisati uporabnika %s ? +ConfirmDeleteGroup=Ali ste prepričani, da želite izbrisati skupino %s ? +ConfirmEnableUser=Ali ste prepričani, da želite omogočiti uporabnika %s ? +ConfirmReinitPassword=Ali ste prepričani, da želite ustvariti novo geslo za uporabnika %s ? +ConfirmSendNewPassword=Ali ste prepričani, da želite ustvariti in poslati novo geslo za uporabnika %s ? NewUser=Nov uporabnik CreateUser=Kreiraj uporabnika LoginNotDefined=Uporabniško ime ni določeno. @@ -35,8 +35,8 @@ ListOfUsers=Seznam uporabnikov SuperAdministrator=Super Administrator SuperAdministratorDesc=Administrator z vsemi pravicami AdministratorDesc=Administrator -DefaultRights=Default Permissions -DefaultRightsDesc=Define here the default permissions that are automatically granted to a new user (to modify permissions for existing users, go to the user card). +DefaultRights=Privzeta dovoljenja +DefaultRightsDesc=Tu določite privzeta dovoljenja , ki so samodejno dodeljena novemu uporabniku (če želite spremeniti dovoljenja za obstoječe uporabnike, pojdite na uporabniško kartico). DolibarrUsers=Dolibarr uporabniki LastName=Priimek FirstName=Ime @@ -45,14 +45,14 @@ NewGroup=Nova skupina CreateGroup=Kreiraj skupino RemoveFromGroup=Odstrani iz skupine PasswordChangedAndSentTo=Geslo spremenjeno in poslano %s. -PasswordChangeRequest=Request to change password for %s +PasswordChangeRequest=Zahteva za spremembo gesla za %s PasswordChangeRequestSent=Zahtevek za spremembo gesla %s poslan %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. -IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. -ConfirmPasswordReset=Confirm password reset +IfLoginExistPasswordRequestSent=Če je ta prijava veljaven račun (z veljavno e-pošto), je bilo poslano e-poštno sporočilo za ponastavitev gesla. +IfEmailExistPasswordRequestSent=Če je to e-poštno sporočilo veljaven račun, je bilo poslano e-poštno sporočilo za ponastavitev gesla. +ConfirmPasswordReset=Potrdite ponastavitev gesla MenuUsersAndGroups=Uporabniki & Skupine -LastGroupsCreated=Latest %s groups created -LastUsersCreated=Latest %s users created +LastGroupsCreated=Najnovejše ustvarjene skupine %s +LastUsersCreated=Zadnji ustvarjeni uporabniki %s ShowGroup=Prikaži skupino ShowUser=Prikaži uporabnika NonAffectedUsers=Nevključeni uporabniki @@ -62,27 +62,26 @@ ListOfUsersInGroup=Seznam uporabnikov v tej skupini ListOfGroupsForUser=Seznam skupin tega uporabnika LinkToCompanyContact=Povezava na partnerja / kontakt LinkedToDolibarrMember=Povezava do člana -LinkedToDolibarrUser=Link to user -LinkedToDolibarrThirdParty=Link to third party +LinkedToDolibarrUser=Povezava do uporabnika +LinkedToDolibarrThirdParty=Povezava do partnerja CreateDolibarrLogin=Kreiraj Dolibarr uporabnika CreateDolibarrThirdParty=Kreiraj partnerja LoginAccountDisableInDolibarr=Račun v Dolibarrju onemogočen. UsePersonalValue=Uporabi osebne podatke -InternalUser=Interni uporabnik -ExportDataset_user_1=Users and their properties +ExportDataset_user_1=Uporabniki in njihove lastnosti DomainUser=Uporabnik domene %s Reactivate=Ponovno aktiviraj -CreateInternalUserDesc=This form allows you to create an internal user in your company/organization. To create an external user (customer, vendor etc. ..), use the button 'Create Dolibarr User' from that third-party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/organization, or is a partner user outside of your organization that may need to see more data than data related to his company (the permission system will define what he can or can't see or do).
    An external user is a customer, vendor or other that must view ONLY data related to himself (Creating an external user for a third-party can be done from the contact record of the third-party).

    In both cases, you must grant permissions on the features that the user need. +CreateInternalUserDesc=Ta obrazec omogoča ustvarjanje internega uporabnika v vašem podjetju/organizaciji. Če želite ustvariti zunanjega uporabnika (kupca, dobavitelja itd.), uporabite gumb 'Ustvari uporabnika' na kontaktni kartici partnerja. +InternalExternalDesc=Interni uporabnik je uporabnik, ki je del vašega podjetja/organizacije ali je partnerski uporabnik zunaj vaše organizacije, ki bo morda potreboval več podatkov kot podatkov, povezanih z njegovim podjetjem (sistem dovoljenj bo določil, kaj sme oz. ne vidim ali delam).
    zunanji uporabnik je stranka, prodajalec ali druga oseba, ki si mora ogledati SAMO podatke, povezane z njim samim (zunanjega uporabnika za partnerja lahko ustvarite iz kontaktnega zapisa partnerja).

    V obeh primerih morate podeliti dovoljenja za funkcije, ki jih potrebuje uporabnik. PermissionInheritedFromAGroup=Dovoljenje dodeljeno zaradi podedovanja od druge uporabniške skupine. Inherited=Podedovan -UserWillBe=Created user will be +UserWillBe=Ustvarjen uporabnik bo UserWillBeInternalUser=Kreiran uporabnik bo interni uporabnik (ker ni povezan z določenim partnerjem) UserWillBeExternalUser=Kreiran uporabnik bo zunanji uporabnik (ker je povezan z določenim partnerjem) IdPhoneCaller=ID klicatelja po telefonu NewUserCreated=Uporabik %s je kreiran NewUserPassword=Sprememba gesla za %s -NewPasswordValidated=Your new password have been validated and must be used now to login. +NewPasswordValidated=Vaše novo geslo je potrjeno in ga morate zdaj uporabiti za prijavo. EventUserModified=Uporabnik %s je spremenjen UserDisabled=Uporabnik %s je onemogočen UserEnabled=Uporabnik %s je aktiviran @@ -90,37 +89,43 @@ UserDeleted=Uporabnik %s je odstranjen NewGroupCreated=Skupina %s je kreirana GroupModified=Skupina %s je spremenjena GroupDeleted=Skupina %s je odstranjena -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? -ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? +ConfirmCreateContact=Ali ste prepričani, da želite ustvariti račun Dolibarr za ta stik? +ConfirmCreateLogin=Ali ste prepričani, da želite ustvariti račun Dolibarr za tega člana? +ConfirmCreateThirdParty=Ali ste prepričani, da želite ustvariti partnerja za tega člana? LoginToCreate=Kreiranje uporabniškega imena NameToCreate=Kreiranje imena partnerja YourRole=Vaše vloge YourQuotaOfUsersIsReached=Dosežena je vaša kvota aktivnih uporabnikov ! -NbOfUsers=Number of users -NbOfPermissions=Number of permissions +NbOfUsers=Število uporabnikov +NbOfPermissions=Število dovoljenj DontDowngradeSuperAdmin=Samo superadmin lahko degradira samo superadmin HierarchicalResponsible=Nadzornik HierarchicView=Hierarhični pogled UseTypeFieldToChange=Uporabi polje "Vnos" za spremembo OpenIDURL=Spletni naslov OpenID LoginUsingOpenID=Uporabi OpenID za prijavo -WeeklyHours=Hours worked (per week) -ExpectedWorkedHours=Expected hours worked per week +WeeklyHours=Delovne ure (na teden) +ExpectedWorkedHours=Pričakovano število opravljenih ur na teden ColorUser=Barve uporabnika DisabledInMonoUserMode=Izklopljeno v načinu vzdrževanja -UserAccountancyCode=User accounting code -UserLogoff=User logout -UserLogged=User logged -DateOfEmployment=Employment date -DateEmployment=Employment -DateEmploymentstart=Employment Start Date -DateEmploymentEnd=Employment End Date -RangeOfLoginValidity=Access validity date range -CantDisableYourself=You can't disable your own user record -ForceUserExpenseValidator=Force expense report validator -ForceUserHolidayValidator=Force leave request validator -ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of the user. Keep empty to keep this behaviour. -UserPersonalEmail=Personal email -UserPersonalMobile=Personal mobile phone -WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +UserAccountancyCode=Računovodska koda uporabnika +UserLogoff=Odjava uporabnika +UserLogged=Uporabnik prijavljen +DateOfEmployment=Datum zaposlitve +DateEmployment=Zaposlitev +DateEmploymentStart=Datum začetka zaposlitve +DateEmploymentEnd=Datum konca zaposlitve +RangeOfLoginValidity=Datumsko obdobje veljavnosti dostopa +CantDisableYourself=Svojega uporabniškega zapisa ne morete onemogočiti +ForceUserExpenseValidator=Vsili validator poročil o stroških +ForceUserHolidayValidator=Vsili validator zahtev za dopust +ValidatorIsSupervisorByDefault=Privzeto je validator nadzornik uporabnika. Pustite prazno, da ohranite to vedenje. +UserPersonalEmail=Osebni e-poštni naslov +UserPersonalMobile=Osebni mobilni telefon +WarningNotLangOfInterface=Opozorilo, to je glavni jezik, ki ga uporabnik govori, ne jezik vmesnika, ki ga je izbral. Če želite spremeniti jezik vmesnika, ki ga vidi ta uporabnik, pojdite na zavihek %s +DateLastLogin=Datum zadnje prijave +DatePreviousLogin=Datum prejšnje prijave +IPLastLogin=IP zadnja prijava +IPPreviousLogin=IP prejšnja prijava +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/sl_SI/website.lang b/htdocs/langs/sl_SI/website.lang index f0e2a16cf8c..0405c6a5dda 100644 --- a/htdocs/langs/sl_SI/website.lang +++ b/htdocs/langs/sl_SI/website.lang @@ -1,147 +1,157 @@ # Dolibarr language file - Source file is en_US - website Shortname=Koda -WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. +WebsiteName=Ime spletne strani +WebsiteSetupDesc=Tukaj ustvarite spletna mesta, ki jih želite uporabljati. Nato pojdite v meni Spletna mesta, da jih uredite. DeleteWebsite=Izbriši spletno stran -ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. The files uploaded (like into the medias directory, the ECM module, ...) will remain. -WEBSITE_TYPE_CONTAINER=Type of page/container -WEBSITE_PAGE_EXAMPLE=Web page to use as example -WEBSITE_PAGENAME=Page name/alias -WEBSITE_ALIASALT=Alternative page names/aliases -WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:
    alternativename1, alternativename2, ... -WEBSITE_CSS_URL=URL of external CSS file -WEBSITE_CSS_INLINE=CSS file content (common to all pages) -WEBSITE_JS_INLINE=Javascript file content (common to all pages) -WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages) -WEBSITE_ROBOT=Robot file (robots.txt) -WEBSITE_HTACCESS=Website .htaccess file -WEBSITE_MANIFEST_JSON=Website manifest.json file -WEBSITE_README=README.md file -WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. -HtmlHeaderPage=HTML header (specific to this page only) -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. -EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container. -MediaFiles=Media library -EditCss=Edit website properties -EditMenu=Edit menu -EditMedias=Edit medias -EditPageMeta=Edit page/container properties -EditInLine=Edit inline -AddWebsite=Add website -Webpage=Web page/container -AddPage=Add page/container +ConfirmDeleteWebsite=Ali ste prepričani, da želite izbrisati to spletno mesto? Odstranjene bodo tudi vse njegove strani in vsebina. Naložene datoteke (na primer v imenik medias, modul ECM, ...) bodo ostale. +WEBSITE_TYPE_CONTAINER=Vrsta strani/vsebnika +WEBSITE_PAGE_EXAMPLE=Spletna stran za primer +WEBSITE_PAGENAME=Ime/vzdevek strani +WEBSITE_ALIASALT=Nadomestna imena/vzdevki strani +WEBSITE_ALIASALTDesc=Tukaj uporabite seznam drugih imen/vzdevkov, tako da je mogoče do strani dostopati tudi s temi drugimi imeni/vzdevki (na primer staro ime po preimenovanju vzdevka, da povratna povezava na staro povezavo/ime še naprej deluje). Sintaksa je:
    alternativename1, alternativename2, ... +WEBSITE_CSS_URL=URL zunanje datoteke CSS +WEBSITE_CSS_INLINE=Vsebina datoteke CSS (skupna vsem stranem) +WEBSITE_JS_INLINE=Vsebina datoteke Javascript (skupna vsem stranem) +WEBSITE_HTML_HEADER=Dodatek na dnu glave HTML (skupno vsem stranem) +WEBSITE_ROBOT=Robot datoteka (robots.txt) +WEBSITE_HTACCESS=Datoteka .htaccess spletne strani +WEBSITE_MANIFEST_JSON=Datoteka manifest.json spletnega mesta +WEBSITE_KEYWORDSDesc=Vrednosti ločite z vejico +EnterHereReadmeInformation=Tukaj vnesite opis spletne strani. Če svoje spletno mesto distribuirate kot predlogo, bo datoteka vključena v paket temptate. +EnterHereLicenseInformation=Tukaj vnesite LICENCO kode spletnega mesta. Če svoje spletno mesto distribuirate kot predlogo, bo datoteka vključena v paket temptate. +HtmlHeaderPage=Glava HTML (samo za to stran) +PageNameAliasHelp=Ime ali vzdevek strani.
    Ta vzdevek se uporablja tudi za ponarejanje URL-ja SEO, ko se spletno mesto izvaja z navideznega gostitelja spletnega strežnika (kot je Apacke, Nginx, ...). Za urejanje tega vzdevka uporabite gumb " %s ". +EditTheWebSiteForACommonHeader=Opomba: Če želite definirati prilagojeno glavo za vse strani, uredite glavo na ravni spletnega mesta namesto na strani/vsebniku. +MediaFiles=Medijska knjižnica +EditCss=Uredite lastnosti spletnega mesta +EditMenu=Uredi meni +EditMedias=Urejanje medijev +EditPageMeta=Uredite lastnosti strani/vsebnika +EditInLine=Uredi v vrstici +AddWebsite=Dodaj spletno stran +Webpage=Spletna stran/vsebnik +AddPage=Dodaj stran/vsebnik PageContainer=Stran -PreviewOfSiteNotYetAvailable=The preview of your website %s is not yet available. You must first 'Import a full website template' or just 'Add a page/container'. -RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -SiteDeleted=Web site '%s' deleted -PageContent=Page/Contenair -PageDeleted=Page/Contenair '%s' of website %s deleted -PageAdded=Page/Contenair '%s' added -ViewSiteInNewTab=View site in new tab -ViewPageInNewTab=View page in new tab -SetAsHomePage=Set as Home page -RealURL=Real URL -ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s -ExampleToUseInApacheVirtualHostConfig=Example to use in Apache virtual host setup: -YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org -CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s +PreviewOfSiteNotYetAvailable=Predogled vaše spletne strani %s še ni na voljo. Najprej morate ' uvoziti celotno predlogo spletnega mesta ' ali samo ' dodati stran/vsebnik '. +RequestedPageHasNoContentYet=Zahtevana stran z ID-jem %s še nima vsebine ali pa je bila predpomnilniška datoteka .tpl.php odstranjena. Uredite vsebino strani, da rešite to težavo. +SiteDeleted=Spletno mesto '%s' izbrisano +PageContent=Stran/Contenair +PageDeleted=Stran/Contenair '%s' spletnega mesta %s izbrisana +PageAdded=Dodana stran/Contenair '%s' +ViewSiteInNewTab=Ogled spletnega mesta v novem zavihku +ViewPageInNewTab=Ogled strani v novem zavihku +SetAsHomePage=Nastavi kot domačo stran +RealURL=Pravi URL +ViewWebsiteInProduction=Oglejte si spletno stran z domačimi URL-ji +Virtualhost=Virtualni gostitelj ali ime domene +VirtualhostDesc=Ime virtualnega gostitelja ali domene (na primer: www.mywebsite.com, mybigcompany.net, ...) +SetHereVirtualHost= Uporabite z Apache/NGinx/...
    Na svojem spletnem strežniku (Apache, Nginx, ...) ustvarite namenski navidezni gostitelj z omogočenim PHP in korenskim imenikom na
    a0ecb2f6zd807f109f +ExampleToUseInApacheVirtualHostConfig=Primer za uporabo pri nastavitvi virtualnega gostitelja Apache: +YouCanAlsoTestWithPHPS= Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s +YouCanAlsoDeployToAnotherWHP= Poganjajte svoje spletno mesto z drugim ponudnikom gostovanja Dolibarr
    Če v internetu nimate na voljo spletnega strežnika, kot je Apache ali NGinx, lahko izvozite in uvozite svoje spletno mesto v drug primerek Dolibarr, ki ga nudi drug ponudnik gostovanja Dolibarr in ki nudi popolno integracija z modulom Spletna stran. Seznam nekaterih ponudnikov gostovanja Dolibarr najdete na https://saas.dolibarr.org +CheckVirtualHostPerms=Preverite tudi, ali ima uporabnik navideznega gostitelja (na primer www-data) %s dovoljenja za datoteke v
    %s a0a65d071f6fc9z ReadPerm=Preberite -WritePerm=Write -TestDeployOnWeb=Test/deploy on web -PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s -PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that the URLs of pages are not user friendly and start with the path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that points on directory
    %s
    then enter the name of this virtual server in the properties of this website and click on the link "Test/Deploy on the web". -VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined -NoPageYet=No pages yet -YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template -SyntaxHelp=Help on specific syntax tips -YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. -YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    +WritePerm=Pišite +TestDeployOnWeb=Test/uvedba v spletu +PreviewSiteServedByWebServer= Predogled %s v novem zavihku.

    %s bo stregel zunanji spletni strežnik (kot je Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s +PreviewSiteServedByDolibarr= Predogled %s v novem zavihku.

    %s bo stregel strežnik Dolibarr, tako da ne potrebuje dodatnega spletnega strežnika (kot je Apache, Nginx, IIS), ki ga je treba namestiti.
    Neprijetno je, da URL-ji strani niso uporabniku prijazni in se začnejo s potjo vašega Dolibarrja.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that points on directory
    %s
    then enter the name of this virtual server v lastnostih tega spletnega mesta in kliknite na povezavo "Preizkusi/Uvedi v spletu". +VirtualHostUrlNotDefined=URL virtualnega gostitelja, ki ga streže zunanji spletni strežnik, ni definiran +NoPageYet=Ni še nobene strani +YouCanCreatePageOrImportTemplate=Ustvarite lahko novo stran ali uvozite celotno predlogo spletnega mesta +SyntaxHelp=Pomoč pri posebnih nasvetih glede sintakse +YouCanEditHtmlSourceckeditor=Izvorno kodo HTML lahko urejate z gumbom "Vir" v urejevalniku. +YouCanEditHtmlSource=
    V ta vir lahko vključite kodo PHP z oznakami <?php ?> . Na voljo so naslednje globalne spremenljivke: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Vsebino druge strani/vsebnika lahko vključite tudi z naslednjo sintakso:
    a03900df7d31ecz_0?php includeascontainer_of_0?php ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/ ]ime.ext">
    Za datoteko v dokumentih/medijih (odprt imenik za javni dostop) je sintaksa:
    <a href= "/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href=" /document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . -ClonePage=Clone page/container -CloneSite=Clone site -SiteAdded=Website added -ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. -PageIsANewTranslation=The new page is a translation of the current page ? -LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page. -ParentPageId=Parent page ID -WebsiteId=Website ID -CreateByFetchingExternalPage=Create page/container by fetching page from external URL... -OrEnterPageInfoManually=Or create page from scratch or from a page template... -FetchAndCreate=Fetch and Create -ExportSite=Export website -ImportSite=Import website template -IDOfPage=Id of page -Banner=Banner -BlogPost=Blog post -WebsiteAccount=Website account -WebsiteAccounts=Website accounts -AddWebsiteAccount=Create web site account -BackToListForThirdParty=Back to list for the third-party -DisableSiteFirst=Disable website first -MyContainerTitle=My web site title -AnotherContainer=This is how to include content of another page/container (you may have an error here if you enable dynamic code because the embedded subcontainer may not exists) -SorryWebsiteIsCurrentlyOffLine=Sorry, this website is currently off line. Please comme back later... -WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / third party -YouMustDefineTheHomePage=You must first define the default Home page -OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved for experienced users. Depending on the complexity of source page, the result of importation may differ from the original. Also if the source page uses common CSS styles or conflicting javascript, it may break the look or features of the Website editor when working on this page. This method is a quicker way to create a page but it is recommended to create your new page from scratch or from a suggested page template.
    Note also that the inline editor may not works correclty when used on a grabbed external page. -OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site -GrabImagesInto=Grab also images found into css and page. -ImagesShouldBeSavedInto=Images should be saved into directory -WebsiteRootOfImages=Root directory for website images -SubdirOfPage=Sub-directory dedicated to page -AliasPageAlreadyExists=Alias page %s already exists -CorporateHomePage=Corporate Home page -EmptyPage=Empty page -ExternalURLMustStartWithHttp=External URL must start with http:// or https:// -ZipOfWebsitePackageToImport=Upload the Zip file of the website template package -ZipOfWebsitePackageToLoad=or Choose an available embedded website template package -ShowSubcontainers=Show dynamic content -InternalURLOfPage=Internal URL of page -ThisPageIsTranslationOf=This page/container is a translation of -ThisPageHasTranslationPages=This page/container has translation -NoWebSiteCreateOneFirst=No website has been created yet. Create one first. -GoTo=Go to -DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). -NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Search or Replace website content -DeleteAlsoJs=Delete also all javascript files specific to this website? -DeleteAlsoMedias=Delete also all medias files specific to this website? -MyWebsitePages=My website pages -SearchReplaceInto=Search | Replace into -ReplaceString=New string -CSSContentTooltipHelp=Enter here CSS content. To avoid any conflict with the CSS of the application, be sure to prepend all declaration with the .bodywebsite class. For example:

    #mycssselector, input.myclass:hover { ... }
    must be
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }

    Note: If you have a large file without this prefix, you can use 'lessc' to convert it to append the .bodywebsite prefix everywhere. -LinkAndScriptsHereAreNotLoadedInEditor=Warning: This content is output only when site is accessed from a server. It is not used in Edit mode so if you need to load javascript files also in edit mode, just add your tag 'script src=...' into the page. -Dynamiccontent=Sample of a page with dynamic content -ImportSite=Import website template -EditInLineOnOff=Mode 'Edit inline' is %s -ShowSubContainersOnOff=Mode to execute 'dynamic content' is %s -GlobalCSSorJS=Global CSS/JS/Header file of web site -BackToHomePage=Back to home page... -TranslationLinks=Translation links -YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not available.
    (ref=%s, type=%s, status=%s) -UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 characters -MainLanguage=Main language -OtherLanguages=Other languages -UseManifest=Provide a manifest.json file -PublicAuthorAlias=Public author alias -AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties -ReplacementDoneInXPages=Replacement done in %s pages or containers +YouCanEditHtmlSource2=Za sliko, ki je v skupni rabi s povezavo za skupno rabo (odprt dostop z uporabo zgoščenega ključa za skupno rabo datoteke), je sintaksa:
    <img src="/viewimage.php?hashp=12345679012..."a0012c7dcbe087fcc0 a0a6f0fda39z071f +YouCanEditHtmlSourceMore=
    Več primerov HTML ali dinamične kode je na voljo na dokumentaciji wiki
    . +ClonePage=Kloniraj stran/vsebnik +CloneSite=Kloniraj spletno mesto +SiteAdded=Dodano spletno mesto +ConfirmClonePage=Vnesite kodo/vzdevek nove strani in če gre za prevod klonirane strani. +PageIsANewTranslation=Je nova stran prevod trenutne strani? +LanguageMustNotBeSameThanClonedPage=Klonirate stran kot prevod. Jezik nove strani se mora razlikovati od jezika izvorne strani. +ParentPageId=ID nadrejene strani +WebsiteId=ID spletnega mesta +CreateByFetchingExternalPage=Ustvarite stran/vsebnik tako, da pridobite stran z zunanjega URL-ja ... +OrEnterPageInfoManually=Ali ustvarite stran iz nič ali iz predloge strani ... +FetchAndCreate=Pridobi in ustvari +ExportSite=Izvozno spletno mesto +ImportSite=Uvoz predloge spletnega mesta +IDOfPage=ID strani +Banner=Pasica +BlogPost=Objava na blogu +WebsiteAccount=Račun spletnega mesta +WebsiteAccounts=Računi spletnih mest +AddWebsiteAccount=Ustvari račun spletnega mesta +BackToListForThirdParty=Nazaj na seznam partnerjev +DisableSiteFirst=Najprej onemogočite spletno mesto +MyContainerTitle=Naslov moje spletne strani +AnotherContainer=Tako vključite vsebino druge strani/vsebnika (tu lahko pride do napake, če omogočite dinamično kodo, ker vdelani podvsebnik morda ne obstaja) +SorryWebsiteIsCurrentlyOffLine=Oprostite, to spletno mesto trenutno ni na spletu. Prosim, vrni se kasneje ... +WEBSITE_USE_WEBSITE_ACCOUNTS=Omogoči tabelo računov spletnega mesta +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Omogočite tabelo za shranjevanje računov spletnega mesta (prijava/geslo) za vsako spletno mesto/tretjo osebo +YouMustDefineTheHomePage=Najprej morate določiti privzeto domačo stran +OnlyEditionOfSourceForGrabbedContentFuture=Opozorilo: Ustvarjanje spletne strani z uvozom zunanje spletne strani je rezervirano za izkušene uporabnike. Odvisno od kompleksnosti izvorne strani se lahko rezultat uvoza razlikuje od izvirnika. Tudi če izvorna stran uporablja običajne sloge CSS ali nasprotujoč si javascript, lahko pri delu na tej strani pokvari videz ali funkcije urejevalnika spletnega mesta. Ta metoda je hitrejši način za ustvarjanje strani, vendar je priporočljivo, da svojo novo stran ustvarite od začetka ali iz predlagane predloge strani.
    Upoštevajte tudi, da vgrajeni urejevalnik morda ne bo deloval pravilno, če ga uporabljate na prejeti zunanji strani. +OnlyEditionOfSourceForGrabbedContent=Možna je le izdaja vira HTML, če je bila vsebina povzeta z zunanjega mesta +GrabImagesInto=Zgrabite tudi slike, ki jih najdete v css in strani. +ImagesShouldBeSavedInto=Slike je treba shraniti v imenik +WebsiteRootOfImages=Korenski imenik za slike spletnih mest +SubdirOfPage=Podimenik, namenjen strani +AliasPageAlreadyExists=Alias stran %s že obstaja +CorporateHomePage=Domača stran podjetja +EmptyPage=Prazna stran +ExternalURLMustStartWithHttp=Zunanji URL se mora začeti s http:// ali https:// +ZipOfWebsitePackageToImport=Naložite datoteko Zip paketa predlog spletnega mesta +ZipOfWebsitePackageToLoad=ali Izberite razpoložljiv vdelani paket predlog spletnega mesta +ShowSubcontainers=Prikaži dinamično vsebino +InternalURLOfPage=Notranji URL strani +ThisPageIsTranslationOf=Ta stran/vsebnik je prevod +ThisPageHasTranslationPages=Ta stran/vsebnik ima prevod +NoWebSiteCreateOneFirst=Izdelana še ni bila nobena spletna stran. Najprej ga ustvarite. +GoTo=Pojdi do +DynamicPHPCodeContainsAForbiddenInstruction=Dodate dinamično kodo PHP, ki vsebuje navodilo PHP ' %s ', ki je privzeto prepovedano kot dinamična vsebina (glejte skrite možnosti WEBSITE_PHP_ALLOW_xxx za povečanje seznama dovoljenih ukazov). +NotAllowedToAddDynamicContent=Nimate dovoljenja za dodajanje ali urejanje dinamične vsebine PHP na spletnih mestih. Prosite za dovoljenje ali samo pustite kodo v oznakah php nespremenjeno. +ReplaceWebsiteContent=Iskanje ali zamenjava vsebine spletnega mesta +DeleteAlsoJs=Ali želite izbrisati tudi vse datoteke javascript, specifične za to spletno mesto? +DeleteAlsoMedias=Ali želite izbrisati tudi vse predstavnostne datoteke, specifične za to spletno mesto? +MyWebsitePages=Moje spletne strani +SearchReplaceInto=Iskanje | Zamenjaj v +ReplaceString=Nova vrvica +CSSContentTooltipHelp=Tukaj vnesite vsebino CSS. Da bi se izognili kakršnim koli navzkrižjem s CSS aplikacije, pred vse deklaracije dodajte razred .bodywebsite. For example:

    #mycssselector, input.myclass:hover { ... }
    must be
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }

    Note: If you have a large file without to predpono, lahko uporabite 'lessc', da jo pretvorite tako, da povsod dodate predpono .bodywebsite. +LinkAndScriptsHereAreNotLoadedInEditor=Opozorilo: Ta vsebina je prikazana samo, ko se do spletnega mesta dostopa s strežnika. Ne uporablja se v načinu urejanja, tako da, če morate naložiti datoteke javascript tudi v načinu urejanja, preprosto dodajte svojo oznako 'script src=...' na stran. +Dynamiccontent=Primer strani z dinamično vsebino +ImportSite=Uvoz predloge spletnega mesta +EditInLineOnOff=Način 'Urejanje v vrstici' je %s +ShowSubContainersOnOff=Način za izvajanje 'dinamične vsebine' je %s +GlobalCSSorJS=Globalna datoteka CSS/JS/glava spletnega mesta +BackToHomePage=Nazaj na domačo stran ... +TranslationLinks=Prevajalske povezave +YouTryToAccessToAFileThatIsNotAWebsitePage=Poskušate dostopati do strani, ki ni na voljo.
    (ref=%s, tip=%s, status=%s) +UseTextBetween5And70Chars=Za dobre prakse SEO uporabite besedilo med 5 in 70 znaki +MainLanguage=Glavni jezik +OtherLanguages=Drugi jeziki +UseManifest=Navedite datoteko manifest.json +PublicAuthorAlias=Vzdevek javnega avtorja +AvailableLanguagesAreDefinedIntoWebsiteProperties=Razpoložljivi jeziki so opredeljeni v lastnostih spletnega mesta +ReplacementDoneInXPages=Zamenjava izvedena na %s straneh ali vsebnikih RSSFeed=Vir RSS -RSSFeedDesc=You can get a RSS feed of latest articles with type 'blogpost' using this URL -PagesRegenerated=%s page(s)/container(s) regenerated -RegenerateWebsiteContent=Regenerate web site cache files -AllowedInFrames=Allowed in Frames -DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file -ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... -ConfirmSitemapsCreation=Confirm sitemap generation -SitemapGenerated=Sitemap file %s generated +RSSFeedDesc=S tem URL-jem lahko dobite vir RSS najnovejših člankov z vrsto 'blogpost' +PagesRegenerated=%s ponovno ustvarjene strani/vsebniki +RegenerateWebsiteContent=Znova ustvari predpomnilniške datoteke spletnega mesta +AllowedInFrames=Dovoljeno v okvirjih +DefineListOfAltLanguagesInWebsiteProperties=Določite seznam vseh razpoložljivih jezikov v lastnostih spletnega mesta. +GenerateSitemaps=Ustvari datoteko sitemap.xml spletne strani +ConfirmGenerateSitemaps=Če potrdite, boste izbrisali obstoječo datoteko zemljevida mesta ... +ConfirmSitemapsCreation=Potrdite ustvarjanje zemljevida spletnega mesta +SitemapGenerated=Datoteka zemljevida spletnega mesta %s ustvarjena ImportFavicon=Favicon -ErrorFaviconType=Favicon must be png -ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 -FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +ErrorFaviconType=Favicon mora biti png +ErrorFaviconSize=Favicon mora biti velikosti 16x16, 32x32 ali 64x64 +FaviconTooltip=Naložite sliko, ki mora biti png (16x16, 32x32 ali 64x64) +NextContainer=Naslednja stran/vsebnik +PreviousContainer=Prejšnja stran/vsebnik +WebsiteMustBeDisabled=Spletna stran mora imeti status "%s" +WebpageMustBeDisabled=Spletna stran mora imeti status "%s" +SetWebsiteOnlineBefore=Ko je spletno mesto brez povezave, so vse strani brez povezave. Najprej spremenite status spletne strani. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/sl_SI/withdrawals.lang b/htdocs/langs/sl_SI/withdrawals.lang index 55f7143afcb..9e5f377d443 100644 --- a/htdocs/langs/sl_SI/withdrawals.lang +++ b/htdocs/langs/sl_SI/withdrawals.lang @@ -1,156 +1,163 @@ # Dolibarr language file - Source file is en_US - withdrawals -CustomersStandingOrdersArea=Payments by Direct debit orders -SuppliersStandingOrdersArea=Payments by Credit transfer -StandingOrdersPayment=Direct debit payment orders -StandingOrderPayment=Direct debit payment order -NewStandingOrder=New direct debit order -NewPaymentByBankTransfer=New payment by credit transfer +CustomersStandingOrdersArea=Plačila z nalogi za direktno obremenitev +SuppliersStandingOrdersArea=Plačila s kreditnim nakazilom +StandingOrdersPayment=Plačilni nalogi z direktno obremenitvijo +StandingOrderPayment=Plačilni nalog za direktno obremenitev +NewStandingOrder=Nov nalog za direktno bremenitev +NewPaymentByBankTransfer=Novo plačilo s kreditnim nakazilom StandingOrderToProcess=Za obdelavo -PaymentByBankTransferReceipts=Credit transfer orders -PaymentByBankTransferLines=Credit transfer order lines -WithdrawalsReceipts=Direct debit orders -WithdrawalReceipt=Direct debit order -BankTransferReceipts=Credit transfer orders -BankTransferReceipt=Credit transfer order -LatestBankTransferReceipts=Latest %s credit transfer orders -LastWithdrawalReceipts=Latest %s direct debit files -WithdrawalsLine=Direct debit order line -CreditTransfer=Credit transfer -CreditTransferLine=Credit transfer line -WithdrawalsLines=Direct debit order lines -CreditTransferLines=Credit transfer lines -RequestStandingOrderToTreat=Requests for direct debit payment order to process -RequestStandingOrderTreated=Requests for direct debit payment order processed -RequestPaymentsByBankTransferToTreat=Requests for credit transfer to process -RequestPaymentsByBankTransferTreated=Requests for credit transfer processed +PaymentByBankTransferReceipts=Kreditni nalogi +PaymentByBankTransferLines=Vrstice naloga za nakazilo kredita +WithdrawalsReceipts=Nalogi za direktno bremenitev +WithdrawalReceipt=Nalog za direktno bremenitev +BankTransferReceipts=Kreditni nalogi +BankTransferReceipt=Nalog za nakazilo +LatestBankTransferReceipts=Najnovejši %s kreditni nalogi +LastWithdrawalReceipts=Najnovejše datoteke z direktno bremenitvijo %s +WithdrawalsLine=Vrstica naloga za direktno bremenitev +CreditTransfer=Nakazilo kredita +CreditTransferLine=Linija za prenos kredita +WithdrawalsLines=Vrstice naročila za direktno obremenitev +CreditTransferLines=Linije za prenos kreditov +RequestStandingOrderToTreat=Zahtevki za plačilni nalog z direktno bremenitvijo za obdelavo +RequestStandingOrderTreated=Zahtevki za plačilni nalog z direktno obremenitvijo obdelani +RequestPaymentsByBankTransferToTreat=Zahtevki za prenos kredita v obdelavo +RequestPaymentsByBankTransferTreated=Zahtevki za kreditno nakazilo obdelani NotPossibleForThisStatusOfWithdrawReceiptORLine=Trenutno ni možno. Status nakazila je potrebno nastaviti na 'kreditiran' pred zavrnitvijo specifičnih vrstic. -NbOfInvoiceToWithdraw=No. of qualified customer invoices with waiting direct debit order -NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information -NbOfInvoiceToPayByBankTransfer=No. of qualified supplier invoices waiting for a payment by credit transfer -SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit transfer -InvoiceWaitingWithdraw=Invoice waiting for direct debit -InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer +NbOfInvoiceToWithdraw=Število kvalificiranih računov strank s čakajočim nalogom za direktno bremenitev +NbOfInvoiceToWithdrawWithInfo=št. računa kupca z nalogi za direktne obremenitve z definiranimi podatki o bančnem računu +NbOfInvoiceToPayByBankTransfer=Število računov kvalificiranega dobavitelja, ki čakajo na plačilo s kreditnim nakazilom +SupplierInvoiceWaitingWithdraw=Račun dobavitelja čaka na plačilo s kreditnim nakazilom +InvoiceWaitingWithdraw=Račun čaka na direktno bremenitev +InvoiceWaitingPaymentByBankTransfer=Račun čaka na dobropis AmountToWithdraw=Vrednost za nakazilo -NoInvoiceToWithdraw=No invoice open for '%s' is waiting. Go on tab '%s' on invoice card to make a request. -NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request. -ResponsibleUser=User Responsible -WithdrawalsSetup=Direct debit payment setup -CreditTransferSetup=Credit transfer setup -WithdrawStatistics=Direct debit payment statistics -CreditTransferStatistics=Credit transfer statistics +AmountToTransfer=Znesek za prenos +NoInvoiceToWithdraw=Noben odprt račun za '%s' ne čaka. Pojdite na zavihek '%s' na kartici računa, da podate zahtevo. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. +ResponsibleUser=Uporabnik odgovoren +WithdrawalsSetup=Nastavitev plačila z direktno bremenitvijo +CreditTransferSetup=Nastavitev prenosa kredita +WithdrawStatistics=Statistika plačil z direktno obremenitvijo +CreditTransferStatistics=Statistika prenosa kredita Rejects=Zavrnitve -LastWithdrawalReceipt=Latest %s direct debit receipts -MakeWithdrawRequest=Make a direct debit payment request -MakeBankTransferOrder=Make a credit transfer request -WithdrawRequestsDone=%s direct debit payment requests recorded -BankTransferRequestsDone=%s credit transfer requests recorded -ThirdPartyBankCode=Third-party bank code -NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode %s. -WithdrawalCantBeCreditedTwice=This withdrawal receipt is already marked as credited; this can't be done twice, as this would potentially create duplicate payments and bank entries. +LastWithdrawalReceipt=Najnovejša potrdila o neposredni bremenitvi %s +MakeWithdrawRequest=Izvedite plačilo z direktno bremenitvijo +MakeWithdrawRequestStripe=Izvedite plačilo z direktno bremenitvijo prek storitve Stripe +MakeBankTransferOrder=Vložite zahtevo za nakazilo kredita +WithdrawRequestsDone=%s zabeležene zahteve za plačilo z direktno bremenitvijo +BankTransferRequestsDone=%s zabeležene zahteve za kreditna nakazila +ThirdPartyBankCode=Koda banke partnerja +NoInvoiceCouldBeWithdrawed=Noben račun ni bil uspešno bremenjen. Preverite, ali so računi za podjetja z veljavnim IBAN in ali ima IBAN UMR (Unique Mandate Reference) z načinom %s . +WithdrawalCantBeCreditedTwice=To potrdilo o dvigu je že označeno kot knjiženo; tega ni mogoče storiti dvakrat, saj bi to lahko ustvarilo podvojena plačila in bančne vnose. ClassCredited=Označi kot prejeto -ClassDebited=Classify debited +ClassDebited=Razvrsti bremenitve ClassCreditedConfirm=Ali zares želite to potrdilo o nakazilu označiti kot »v dobro« na vašem bančnem računu ? TransData=Datum prenosa TransMetod=Metoda prenosa Send=Pošlji Lines=Vrstice StandingOrderReject=Izdaja zavrnitve -WithdrawsRefused=Direct debit refused +WithdrawsRefused=Neposredna bremenitev zavrnjena WithdrawalRefused=Zavrnjena nakazila -CreditTransfersRefused=Credit transfers refused +CreditTransfersRefused=Kreditni prenosi zavrnjeni WithdrawalRefusedConfirm=Ali zares želite vnesti zavrnitev nakazila za družbo RefusedData=Datum zavrnitve RefusedReason=Razlog za zavrnitev RefusedInvoicing=Zaračunavanje zavrnitev NoInvoiceRefused=Ne zaračunaj zavrnitve InvoiceRefused=Zavrnjen račun (zaračunati zavrnitev stranki) -StatusDebitCredit=Status debit/credit +StatusDebitCredit=Status debet/kredit StatusWaiting=Na čakanju StatusTrans=Prenešeno -StatusDebited=Debited +StatusDebited=V breme StatusCredited=Odobreno StatusPaid=Plačano StatusRefused=Zavrnjeno StatusMotif0=Nedoločeno StatusMotif1=Nezadostno stanje StatusMotif2=Sporna izdaja -StatusMotif3=No direct debit payment order +StatusMotif3=Brez plačilnega naloga z direktno bremenitvijo StatusMotif4=Naročilo StatusMotif5=RIB ni možno izkoristiti StatusMotif6=Račun brez bilance StatusMotif7=Sodne odločbe StatusMotif8=Drugih razlogi -CreateForSepaFRST=Create direct debit file (SEPA FRST) -CreateForSepaRCUR=Create direct debit file (SEPA RCUR) -CreateAll=Create direct debit file -CreateFileForPaymentByBankTransfer=Create file for credit transfer -CreateSepaFileForPaymentByBankTransfer=Create credit transfer file (SEPA) +CreateForSepaFRST=Ustvari datoteko z direktno bremenitvijo (SEPA FRST) +CreateForSepaRCUR=Ustvari datoteko z direktno bremenitvijo (SEPA RCUR) +CreateAll=Ustvari datoteko z direktno bremenitvijo +CreateFileForPaymentByBankTransfer=Ustvari datoteko za prenos kredita +CreateSepaFileForPaymentByBankTransfer=Ustvari datoteko za kreditni prenos (SEPA) CreateGuichet=Samo urad CreateBanque=Samo banka OrderWaiting=Čakanje na postopek -NotifyTransmision=Record file transmission of order -NotifyCredit=Record credit of order +NotifyTransmision=Posnetek prenosa naročila +NotifyCredit=Zabeležite dobropis naročila NumeroNationalEmetter=Nacionalna številka prenosa WithBankUsingRIB=Za bančne račune, ki uporabljajo RIB WithBankUsingBANBIC=Za bančne račune, ki uporabljajo IBAN/BIC/SWIFT -BankToReceiveWithdraw=Receiving Bank Account -BankToPayCreditTransfer=Bank Account used as source of payments +BankToReceiveWithdraw=Prejem bančnega računa +BankToPayCreditTransfer=Bančni račun, uporabljen kot vir plačil CreditDate=Datum kredita WithdrawalFileNotCapable=Ni možno generirati datoteke za prejem nakazil za vašo državo %s (vaša država ni podprta) -ShowWithdraw=Show Direct Debit Order -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. -DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Payment by direct debit to generate and manage the direct debit order. When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. -DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu Bank->Payment by credit transfer to generate and manage the credit transfer order. When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. -WithdrawalFile=Debit order file -CreditTransferFile=Credit transfer file +ShowWithdraw=Prikaži nalog za direktno bremenitev +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Če pa ima račun vsaj en plačilni nalog z direktno bremenitvijo, ki še ni obdelan, ne bo nastavljen kot plačan, da bi omogočili predhodno upravljanje dvigov. +DoStandingOrdersBeforePayments=Ta zavihek vam omogoča, da zahtevate plačilni nalog z direktno bremenitvijo. Ko končate, lahko greste v meni »Banka->Plačilo z direktno bremenitvijo«, da ustvarite in upravljate datoteko naloga za direktno bremenitev. +DoStandingOrdersBeforePayments2=Zahtevo lahko pošljete tudi neposredno plačilnemu procesorju SEPA, kot je Stripe, ... +DoStandingOrdersBeforePayments3=Ko je nalog za direktno obremenitev zaprt, se plačilo na računih samodejno zabeleži, računi pa se zaprejo, če je preostanek za plačilo ničen. +DoCreditTransferBeforePayments=Ta zavihek vam omogoča, da zahtevate nalog za dobroimetje. Ko končate, pojdite v meni »Banka->Plačilo s kreditnim nakazilom«, da ustvarite in upravljate datoteko naloga za kreditno nakazilo. +DoCreditTransferBeforePayments3=Ko je nalog za dobroimetje zaprt, se plačilo na računih samodejno zabeleži, računi pa se zaprejo, če je ostanek za plačilo nič. +WithdrawalFile=Datoteka z debetnim nalogom +CreditTransferFile=Datoteka za prenos kredita SetToStatusSent=Nastavi status na "Datoteka poslana" -ThisWillAlsoAddPaymentOnInvoice=This will also record payments on invoices and will classify them as "Paid" if remain to pay is null +ThisWillAlsoAddPaymentOnInvoice=To bo zabeležilo tudi plačila na računih in jih razvrstilo kot »Plačano«, če je preostalo plačilo nič StatisticsByLineStatus=Statistika po statusu vrstic RUM=UMR -DateRUM=Mandate signature date -RUMLong=Unique Mandate Reference -RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. -WithdrawMode=Direct debit mode (FRST or RECUR) -WithdrawRequestAmount=Amount of Direct debit request: -BankTransferAmount=Amount of Credit Transfer request: -WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. -SepaMandate=SEPA Direct Debit Mandate -SepaMandateShort=SEPA Mandate -PleaseReturnMandate=Please return this mandate form by email to %s or by mail to -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. -CreditorIdentifier=Creditor Identifier -CreditorName=Creditor Name -SEPAFillForm=(B) Please complete all the fields marked * -SEPAFormYourName=Your name -SEPAFormYourBAN=Your Bank Account Name (IBAN) -SEPAFormYourBIC=Your Bank Identifier Code (BIC) -SEPAFrstOrRecur=Type of payment -ModeRECUR=Recurring payment -ModeFRST=One-off payment -PleaseCheckOne=Please check one only -CreditTransferOrderCreated=Credit transfer order %s created -DirectDebitOrderCreated=Direct debit order %s created -AmountRequested=Amount requested +DateRUM=Datum podpisa mandata +RUMLong=Edinstvena referenca mandata +RUMWillBeGenerated=Če je polje prazno, bo UMR (enotna referenca mandata) ustvarjen, ko bodo podatki o bančnem računu shranjeni. +WithdrawMode=Način neposredne bremenitve (FRST ali RECUR) +WithdrawRequestAmount=Znesek zahteve za direktno bremenitev: +BankTransferAmount=Znesek zahteve za nakazilo kredita: +WithdrawRequestErrorNilAmount=Ni mogoče ustvariti zahteve za direktno bremenitev za prazen znesek. +SepaMandate=Pooblastilo za direktno obremenitev SEPA +SepaMandateShort=Mandat SEPA +PleaseReturnMandate=Prosimo, vrnite ta obrazec pooblastila po e-pošti na %s ali po pošti na +SEPALegalText=S podpisom tega pooblastila pooblaščate (A) %s in njegovega ponudnika plačilnih storitev, da vaši banki pošljejo navodila za bremenitev vašega računa in (B) vašo banko, da bremeni vaš račun v skladu z navodili %s. Kot del vaših pravic ste upravičeni do povračila od vaše banke v skladu s pogoji vaše pogodbe z vašo banko. Vaše pravice v zvezi z zgornjim pooblastilom so pojasnjene v izjavi, ki jo lahko dobite pri svoji banki. +CreditorIdentifier=Identifikator upnika +CreditorName=Ime upnika +SEPAFillForm=(B) Izpolnite vsa polja, označena z * +SEPAFormYourName=Tvoje ime +SEPAFormYourBAN=Ime vašega bančnega računa (IBAN) +SEPAFormYourBIC=Identifikacijska koda vaše banke (BIC) +SEPAFrstOrRecur=Vrsta plačila +ModeRECUR=Ponavljajoče se plačilo +ModeFRST=Enkratno plačilo +PleaseCheckOne=Prosimo označite samo enega +CreditTransferOrderCreated=Nalog za nakazilo %s ustvarjen +DirectDebitOrderCreated=Nalog za direktno bremenitev %s ustvarjen +AmountRequested=Zahtevani znesek SEPARCUR=SEPA CUR SEPAFRST=SEPA FRST -ExecutionDate=Execution date -CreateForSepa=Create direct debit file -ICS=Creditor Identifier - ICS -END_TO_END="EndToEndId" SEPA XML tag - Unique id assigned per transaction -USTRD="Unstructured" SEPA XML tag -ADDDAYS=Add days to Execution Date -NoDefaultIBANFound=No default IBAN found for this third party +ExecutionDate=Datum izvršitve +CreateForSepa=Ustvari datoteko z direktno bremenitvijo +ICS=Identifikator upnika – ICS +IDS=Identifikator dolžnika +END_TO_END=Oznaka XML "EndToEndId" SEPA - Enolični ID, dodeljen na transakcijo +USTRD="Nestrukturirana" oznaka SEPA XML +ADDDAYS=Datumu izvršitve dodajte dneve +NoDefaultIBANFound=Privzeti IBAN za partnerja ni bil najden ### Notifications -InfoCreditSubject=Payment of direct debit payment order %s by the bank -InfoCreditMessage=The direct debit payment order %s has been paid by the bank
    Data of payment: %s -InfoTransSubject=Transmission of direct debit payment order %s to bank -InfoTransMessage=The direct debit payment order %s has been sent to bank by %s %s.

    +InfoCreditSubject=Plačilo direktne obremenitve plačilnega naloga %s s strani banke +InfoCreditMessage=Plačilni nalog za direktno bremenitev %s je banka plačala
    Podatki o plačilu: %s +InfoTransSubject=Posredovanje plačilnega naloga za direktno bremenitev %s banki +InfoTransMessage=Plačilni nalog za direktno bremenitev %s je banki poslal %s %s.

    InfoTransData=Znesek: %s
    Način: %s
    Datum: %s -InfoRejectSubject=Direct debit payment order refused -InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s related to the company %s, with an amount of %s has been refused by the bank.

    --
    %s +InfoRejectSubject=Plačilni nalog za direktno obremenitev zavrnjen +InfoRejectMessage=Pozdravljeni,

    banka je zavrnila plačilni nalog za direktno obremenitev računa %s v zvezi s podjetjem %s z zneskom %s.

    --
    %s ModeWarning=Opcija za delo v živo ni bila nastavljena, zato se bo sistem ustavil po simulaciji -ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. -ErrorICSmissing=Missing ICS in Bank account %s -TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines -WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s -WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +ErrorCompanyHasDuplicateDefaultBAN=Podjetje z ID-jem %s ima več kot en privzeti bančni račun. Ni načina, da bi vedel, katerega uporabiti. +ErrorICSmissing=Manjka ICS na bančnem računu %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Skupni znesek naloga za direktno bremenitev se razlikuje od vsote vrstic +WarningSomeDirectDebitOrdersAlreadyExists=Opozorilo: Nekaj čakajočih nalogov za direktno bremenitev (%s) je že zahtevanih za znesek %s +WarningSomeCreditTransferAlreadyExists=Opozorilo: Za znesek %s je že na voljo nekaj čakajočega kreditnega nakazila (%s). +UsedFor=Uporablja se za %s diff --git a/htdocs/langs/sl_SI/workflow.lang b/htdocs/langs/sl_SI/workflow.lang index 93ddb52a75a..1f361b60af7 100644 --- a/htdocs/langs/sl_SI/workflow.lang +++ b/htdocs/langs/sl_SI/workflow.lang @@ -1,26 +1,36 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Nastavitev modula poteka dela -WorkflowDesc=This module provides some automatic actions. By default, the workflow is open (you can do things in the order you want) but here you can activate some automatic actions. +WorkflowDesc=Ta modul ponuja nekaj samodejnih dejanj. Privzeto je potek dela odprt (stvari lahko počnete v želenem vrstnem redu), vendar lahko tukaj aktivirate nekaj samodejnih dejanj. ThereIsNoWorkflowToModify=Prilagajanje poteka dela za aktivirane module ni na voljo. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Samodejno ustvarite prodajno naročilo po podpisu komercialne ponudbe (novo naročilo bo imelo enak znesek kot ponudba) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Samodejno ustvarite račun stranke po podpisu komercialne ponudbe (nov račun bo imel enak znesek kot ponudba) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, po validaciji pogodbe. -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Samodejno ustvarite račun stranke, ko je prodajno naročilo zaprto (nov račun bo imel enak znesek kot naročilo) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Pri ustvarjanju vozovnice samodejno ustvarite intervencijo. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Razvrsti predlog povezanega vira kot zaračunan, ko je prodajno naročilo nastavljeno na zaračunano (in če je znesek naročila enak skupnemu znesku podpisanega povezanega predloga) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Razvrsti predlog povezanega vira kot zaračunan, ko je račun stranke potrjen (in če je znesek računa enak skupnemu znesku podpisanega povezanega predloga) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Razvrsti prodajno naročilo povezanega vira kot zaračunano, ko je račun stranke potrjen (in če je znesek računa enak skupnemu znesku povezanega naročila) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Razvrsti prodajno naročilo povezanega vira kot zaračunano, ko je račun stranke nastavljen na plačan (in če je znesek računa enak skupnemu znesku povezanega naročila) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Razvrsti prodajno naročilo povezanega vira kot poslano, ko je pošiljka potrjena (in če je količina, poslana z vsemi pošiljkami, enaka kot v naročilu za posodobitev) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Razvrsti prodajno naročilo povezanega vira kot poslano, ko je pošiljka zaprta (in če je količina, poslana z vsemi pošiljkami, enaka kot v naročilu za posodobitev) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Razvrsti ponudbo ponudnika povezanega vira kot zaračunano, ko je račun prodajalca potrjen (in če je znesek računa enak skupnemu znesku povezane ponudbe) # Autoclassify purchase order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Razvrsti naročilo povezanega vira kot zaračunano, ko je račun prodajalca potrjen (in če je znesek računa enak skupnemu znesku povezanega naročila) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Razvrsti naročilo povezanega vira kot prejeto, ko je sprejem potrjen (in če je količina, ki so jo prejeli vsi sprejemi, enaka kot v naročilu za posodobitev) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Razvrstite naročilo povezanega vira kot prejeto, ko je sprejem zaprt (in če je količina, ki so jo prejeli vsi sprejemi, enaka kot v naročilu za posodobitev) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Prejeme razvrstite v »zaračunane«, ko je povezan račun za nakup potrjen (in če je znesek računa enak skupnemu znesku povezanih prejemov) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=Ko ustvarjate vstopnico, povežite razpoložljive pogodbe z partnerjem +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Pri povezovanju pogodb iščite med pogodbami matičnih podjetij # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Zaprite vse posege, povezane z vstopnico, ko je vstopnica zaprta AutomaticCreation=Samodejno generiranje AutomaticClassification=Samodejno spreminjanje statusa # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Razvrsti pošiljko povezanega vira kot zaprto, ko je račun stranke potrjen (in če je znesek računa enak skupnemu znesku povezanih pošiljk) +AutomaticClosing=Samodejno zapiranje +AutomaticLinking=Samodejno povezovanje diff --git a/htdocs/langs/sl_SI/zapier.lang b/htdocs/langs/sl_SI/zapier.lang index b4cc4ccba4a..222304bcdb5 100644 --- a/htdocs/langs/sl_SI/zapier.lang +++ b/htdocs/langs/sl_SI/zapier.lang @@ -13,9 +13,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -ModuleZapierForDolibarrName = Zapier for Dolibarr -ModuleZapierForDolibarrDesc = Zapier for Dolibarr module -ZapierForDolibarrSetup=Setup of Zapier for Dolibarr -ZapierDescription=Interface with Zapier -ZapierAbout=About the module Zapier -ZapierSetupPage=There is no need for a setup on Dolibarr side to use Zapier. However, you must generate and publish a package on zapier to be able to use Zapier with Dolibarr. See documentation on this wiki page. +ModuleZapierForDolibarrName = Zapier za Dolibarr +ModuleZapierForDolibarrDesc = Zapier za modul Dolibarr +ZapierForDolibarrSetup=Nastavitev Zapierja za Dolibarr +ZapierDescription=Vmesnik z Zapierjem +ZapierAbout=O modulu Zapier +ZapierSetupPage=Za uporabo Zapierja na strani Dolibarr ni potrebna nastavitev. Vendar pa morate ustvariti in objaviti paket na zapierju, da lahko uporabljate Zapier z Dolibarrom. Oglejte si dokumentacijo na tej strani wiki . diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index 190e3d67eec..190f34a0b95 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Balanca e llogarisё @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Jo i vendosur -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Viti qё do tё fshihet DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index 9ceec93e86e..ab3501c3387 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Client collation WarningModuleNotActive=Module %s must be enabled WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. DolibarrSetup=Instalo ose përditëso Dolibarr -InternalUser=Përdorues i brendshëm -ExternalUser=Përdorues i jashtëm InternalUsers=Përdorues të brendshëm ExternalUsers=Përdorues të jashtëm UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Full path to antivirus command AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= More parameters on command line @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) @@ -439,8 +438,10 @@ Unique=Unique Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Price +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table ExtrafieldSeparator=Separator (not a field) @@ -477,7 +478,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=All barcode values have been removed @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Enable usage of overwritten translation +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Field @@ -645,9 +647,9 @@ Module2400Name=Events/Agenda Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. Module2500Name=DMS / ECM Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=API/Web services (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) +Module2610Name=API / Web services (REST server) Module2610Desc=Enable the Dolibarr REST server providing API services Module2660Name=Call WebServices (SOAP client) Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Add features to manage Incoterms Module63000Name=Resources Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module94160Name=Receptions Permission11=Read customer invoices Permission12=Create/modify customer invoices Permission13=Invalidate customer invoices @@ -714,13 +717,14 @@ Permission27=Delete commercial proposals Permission28=Export commercial proposals Permission31=Read products Permission32=Create/modify products +Permission33=Read prices products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Read interventions Permission62=Create/modify interventions @@ -739,6 +743,7 @@ Permission79=Create/modify subscriptions Permission81=Read customers orders Permission82=Create/modify customers orders Permission84=Validate customers orders +Permission85=Generate the documents sales orders Permission86=Send customers orders Permission87=Close customers orders Permission88=Cancel customers orders @@ -766,9 +771,10 @@ Permission122=Create/modify third parties linked to user Permission125=Delete third parties linked to user Permission126=Export third parties Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Read providers Permission147=Read stats Permission151=Read direct debit payment orders @@ -839,9 +845,9 @@ Permission286=Export contacts Permission291=Read tariffs Permission292=Set permissions on the tariffs Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Read services Permission312=Assign service/subscription to contract Permission331=Read bookmarks @@ -873,6 +879,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Read services Permission532=Create/modify services +Permission533=Read prices services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services @@ -883,6 +890,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -964,11 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,9 +1081,14 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Setup saved SetupNotSaved=Setup not saved +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Back to Module list BackToDictionaryList=Back to Dictionaries list TypeOfRevenueStamp=Type of tax stamp @@ -1122,7 +1140,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1187,7 +1205,7 @@ BankModuleNotActive=Bank accounts module not enabled ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Alerts -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1228,11 +1246,13 @@ BrowserName=Browser name BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. AccountantFileNumber=Accountant code DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1283,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP DownloadMoreSkins=More skins to download SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1339,6 +1361,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1368,7 +1391,7 @@ GetBarCode=Get barcode NumberingModules=Numbering models DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. PasswordGenerationPerso=Return a password according to your personally defined configuration. SetupPerso=According to your configuration @@ -1420,6 +1443,12 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1462,11 +1491,12 @@ WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) ##### Members ##### MembersSetup=Members module setup MemberMainOptions=Main options +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Manage a Login for each member AdherentMailRequired=Email required to create a new member MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1728,8 +1758,8 @@ ActivateFCKeditor=Activate advanced editor for: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) FCKeditorForUserSignature=WYSIWIG creation/edition of user signature FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) @@ -1752,7 +1782,7 @@ DetailMenuHandler=Menu handler where to show new menu DetailMenuModule=Module name if menu entry come from a module DetailType=Type of menu (top or left) DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Condition to show or not entry DetailRight=Condition to display unauthorized grey menus DetailLangs=Lang file name for label code translation @@ -1823,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatib CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Bookmark module setup BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. @@ -1861,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Vendor invoices numbering models IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. @@ -1912,11 +1942,13 @@ BackupDumpWizard=Wizard to build the database dump file BackupZipWizard=Wizard to build the archive of documents directory SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1957,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1970,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1966,6 +1998,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Contracts MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Third parties MailToMember=Members MailToUser=Users @@ -2019,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2036,8 +2070,10 @@ RemoveSpecialChars=Remove special characters COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,27 +2084,47 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect +TestCollectNow=Test collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2082,14 +2138,14 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2190,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2200,10 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2172,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Recommended NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2185,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2206,12 +2267,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2281,77 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/sq_AL/datapolicy.lang b/htdocs/langs/sq_AL/datapolicy.lang new file mode 100644 index 00000000000..d74fd78070e --- /dev/null +++ b/htdocs/langs/sq_AL/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Klienti +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Klienti +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/sq_AL/errors.lang b/htdocs/langs/sq_AL/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/sq_AL/errors.lang +++ b/htdocs/langs/sq_AL/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/sq_AL/externalsite.lang b/htdocs/langs/sq_AL/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/sq_AL/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/sq_AL/ftp.lang b/htdocs/langs/sq_AL/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/sq_AL/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/sq_AL/mails.lang b/htdocs/langs/sq_AL/mails.lang index d7420351184..1b7c14fed84 100644 --- a/htdocs/langs/sq_AL/mails.lang +++ b/htdocs/langs/sq_AL/mails.lang @@ -7,10 +7,10 @@ MailCard=EMailing card MailRecipients=Recipients MailRecipient=Recipient MailTitle=Përshkrimi -MailFrom=Dërguesi +MailFrom=From MailErrorsTo=Errors to MailReply=Reply to -MailTo=Receiver(s) +MailTo=To MailToUsers=To user(s) MailCC=Copy to MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang index ffad3cdd5c6..6c3e31b561e 100644 --- a/htdocs/langs/sq_AL/main.lang +++ b/htdocs/langs/sq_AL/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Hapur Upload=Upload ToLink=Link Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Fjalëkalimi -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=Name NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Përshkrimi DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=Tjetër Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Metoda Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Përdorues i brendshëm +ExternalUser=Përdorues i jashtëm diff --git a/htdocs/langs/sq_AL/propal.lang b/htdocs/langs/sq_AL/propal.lang index b5056ba3c40..92c6639b276 100644 --- a/htdocs/langs/sq_AL/propal.lang +++ b/htdocs/langs/sq_AL/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=No draft proposals CopyPropalFrom=Create commercial proposal by copying existing proposal CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Default commercial proposal validity duration (in days) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Availability delay SetAvailability=Set availability delay AfterOrder=after order OtherProposals=Other proposals + ##### Availability ##### AvailabilityTypeAV_NOW=Immediate AvailabilityTypeAV_1W=1 week AvailabilityTypeAV_2W=2 weeks AvailabilityTypeAV_3W=3 weeks AvailabilityTypeAV_1M=1 month -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representative following-up proposal TypeContact_propal_external_BILLING=Customer invoice contact TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) DefaultModelPropalCreate=Default model creation DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Refuzo +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/sq_AL/recruitment.lang b/htdocs/langs/sq_AL/recruitment.lang index 6b0e8117254..5beb4bb1ce2 100644 --- a/htdocs/langs/sq_AL/recruitment.lang +++ b/htdocs/langs/sq_AL/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Rrogë +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/sq_AL/users.lang b/htdocs/langs/sq_AL/users.lang index 2cb2968f29e..85340d32138 100644 --- a/htdocs/langs/sq_AL/users.lang +++ b/htdocs/langs/sq_AL/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Remove from group PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Request to change password for %s sent to %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Users & Groups @@ -68,7 +68,6 @@ CreateDolibarrLogin=Create a user CreateDolibarrThirdParty=Create a third party LoginAccountDisableInDolibarr=Account disabled in Dolibarr. UsePersonalValue=Use personal value -InternalUser=Përdorues i brendshëm ExportDataset_user_1=Users and their properties DomainUser=Domain user %s Reactivate=Reactivate @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index ba595027daf..2c52ea0caf6 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Stanje računa @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Izveštaj prodaje -ACCOUNTING_PURCHASE_JOURNAL=Izveštaj nabavke -ACCOUNTING_MISCELLANEOUS_JOURNAL=Ostali izveštaji +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Izveštaj troškova -ACCOUNTING_SOCIAL_JOURNAL=Izveštaj društvenih aktivnosti +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Izveštaj društvenih aktivnosti ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tip dokumenta Docdate=Datum @@ -210,7 +217,7 @@ Codejournal=Izveštaj JournalLabel=Journal label NumPiece=Deo broj TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Po godini NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finansijski izveštaji ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finansijski izveštaji uključujući sve vrste uplata preko bankovnog računa @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Ukupni obrt pre poreza TotalMarge=Ukupna prodajna marža -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete opbrisati ovaj računovodstveni nalog, jer je u upotrebi -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Prodaje AccountingJournalType3=Nabavke AccountingJournalType4=Banka -AccountingJournalType5=Expenses report +AccountingJournalType5=Troškovi AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model izvoza @@ -394,6 +406,26 @@ Range=Opseg knjižnih računa Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index a94e2cdc96c..09bf746bf1b 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -5,8 +5,8 @@ Foundation=Osnova Version=Verzija Publisher=Publisher VersionProgram=Verzija programa -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Početna verzija instalacije +VersionLastUpgrade=Poslednja verzija nadogradnje VersionExperimental=Eksperimentalno VersionDevelopment=Razvoj VersionUnknown=Nepoznato @@ -29,193 +29,193 @@ AvailableOnlyOnPackagedVersions=The local file for integrity checking is only av XmlNotFound=Xml Integrity File of application not found SessionId=Sesija ID SessionSaveHandler=Rukovalac čuvanja sesije -SessionSavePath=Session save location +SessionSavePath=Lokacija za čuvanje sesije PurgeSessions=Čišćenje sesije -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. +ConfirmPurgeSessions=Da li zaista želite da očistite sve sesije? Ovo će prekinuti vezu svih korisnika (sem vaše) +NoSessionListWithThisHandler=Rukovalac čuvanja sesija konfigurisan u vašem PHP ne dozvoljava listanje svih tekućih sesija LockNewSessions=Zaključaj nove konekcije -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. -UnlockNewSessions=Ukloni +ConfirmLockNewSessions=Da li ste sigurni da želite da ograničite nove Dolibarr veze na samo vašu? Samo korisnik %s će moći da se poveže nakon toga. +UnlockNewSessions=Ukloni zaključavanje veze YourSession=Vaša sesija -Sessions=Users Sessions +Sessions=Sesija korisnika WebUserGroup=Web server korisnik/grupa PermissionsOnFiles=Permissions on files PermissionsOnFilesInWebRoot=Permissions on files in web root directory PermissionsOnFile=Permissions on file %s -NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (%s) may be protected (for example by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data +NoSessionFound=Izgleda da vaša PHP konfiguracija ne dozvoljava listanje aktivnih sesija. Direktorijum koji se koristi za snimanje sesija (%s) je možda zaštićen (na primer OS dozvolama ili PHP direktivama open_basedir). +DBStoringCharset=Karakter set baze za čuvanje podataka +DBSortingCharset=Karakter set baze za sortiranje podataka HostCharset=Host charset ClientCharset=Client charset ClientSortingCharset=Client collation -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users +WarningModuleNotActive=Modul %s mora biti omogućen +WarningOnlyPermissionOfActivatedModules=Ovde se pokazuju samo dozvole u vezi sa aktiviranim modulima. Možete aktivirati druge module u Početna->Podešavanja->Moduli. +DolibarrSetup=Dolibarr instalacija ili nadogradnja +InternalUser=Interni korisnik +ExternalUser=Spoljni korisnik +InternalUsers=Interni korisnici +ExternalUsers=Spoljni korisnici UserInterface=User interface -GUISetup=Display +GUISetup=Prikaz SetupArea=Podešavanja UploadNewTemplate=Upload new template(s) -FormToTestFileUploadForm=Form to test file upload (according to setup) +FormToTestFileUploadForm=Forma za testiranje uploada fajla (prema postavkama) ModuleMustBeEnabled=The module/application %s must be enabled ModuleIsEnabled=The module/application %s has been enabled -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove/rename file %s if it exists, to allow usage of the Update/Install tool. -RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. -SecuritySetup=Security setup +IfModuleEnabled=Pažnja: da je u funkciji samo ako je odobren modul %s +RemoveLock=Uklonite/preimenujte fajl %s ako postoji, da bi dozvolili alat za Ažuriranje/Instalaciju +RestoreLock=Vratite fajl %s, samo sa dozvolom za čitanje, da bi onemogućili dalje korišćenje alata za Ažuriranje/Instalaciju +SecuritySetup=Sigurnosna podešavanja PHPSetup=PHP setup OSSetup=OS setup SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. +ErrorModuleRequirePHPVersion=Pažnja, ovaj modul zahteva PHP verziju %s ili višu +ErrorModuleRequireDolibarrVersion=Pažnja, ovaj modul zahteva Dolibarr verziju %s ili višu +ErrorDecimalLargerThanAreForbidden=Greška, nije podržana preciznost veća od %s . DictionarySetup=Dictionary setup Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions +ErrorReservedTypeSystemSystemAuto=Vrednost 'system' i 'systemauto' su rezervisane za tip. Možete koristiti 'user' kao vrednost da unesete svoj zapis +ErrorCodeCantContainZero=Kod ne može sadržati vrednost 0 +DisableJavascript=Onemogućiti JavaScript i Ajax funkcije DisableJavascriptNote=Note: For test or debug purpose only. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.
    This may increase performance if you have a large number of third parties, but it is less convenient. DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. -NumberOfKeyToSearch=Number of characters to trigger search: %s +NumberOfKeyToSearch=Broj karaktera da se pokrene pretraga: %s NumberOfBytes=Number of Bytes SearchString=Search string -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled +NotAvailableWhenAjaxDisabled=Nije dostupno kada je onemogućen Ajax AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview +JavascriptDisabled=JavaScript onemogućen +UsePreviewTabs=Koristite kartice za pregled +ShowPreview=Prikaži pregled ShowHideDetails=Show-Hide details -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active +PreviewNotAvailable=Pregled nije dostupan +ThemeCurrentlyActive=Trenutno aktivna tema MySQLTimeZone=TimeZone MySql (database) TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) +Space=Razmak +Table=Tabela +Fields=Polja +Index=Indeks +Mask=Maska +NextValue=Sledeća vrednost +NextValueForInvoices=Sledeća vrednost (računi) +NextValueForCreditNotes=Sledeća vrednost (knjižno odobrenje) NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand=Full path to antivirus command -AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe -AntiVirusParam= More parameters on command line -AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup +MustBeLowerThanPHPLimit=Pažnja: vaša PHP konfiguracija trenutno ograničava maksimalnu veličinu fajla za upload na%s%s, nezavisno od vrednosti ovog parametra +NoMaxSizeByPHPLimit=Pažnja: nije postavljen limit u vašoj PHP konfiguraciji +MaxSizeForUploadedFiles=Maksimalna veličina za uploadovane fajlove (0 da bi onemogućili bilo kakav upload) +UseCaptchaCode=Koristiti grafički kod (CAPTCHA) na strani za prijavu i nekim javnim stranama +AntiVirusCommand=Puna putanja za antivirusnu komandu +AntiVirusCommandExample=Primer za ClamAv Daemon (zahteva clamav-daemon): /usr/bin/clamdscan
    Primer za ClamWin (veoma veoma sporo): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe +AntiVirusParam= Više parametara na komandnoj liniji +AntiVirusParamExample=Primer za ClamAv Daemon: --fdpass
    Primer za ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ComptaSetup=Postavke modula knjigovodstva +UserSetup=Postavke menadžmenta korisnika MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) +MenuLimits=Limiti i tačnost +MenuIdParent=ID menija višeg nivoa +DetailMenuIdParent=ID menija višeg nivoa (prazno za najviši meni) ParentID=Parent ID -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module/Application not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other Setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator +DetailPosition=Sortirati brojeve da se definiše pozicija menija +AllMenus=Sve +NotConfigured=Nije konfigurisan Modul/Aplikacija +Active=Aktivno +SetupShort=Postavke +OtherOptions=Ostale opcije +OtherSetup=Ostale postavke +CurrentValueSeparatorDecimal=Odvajač decimale +CurrentValueSeparatorThousand=Odvajač hiljada Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localization parameters -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout +LanguageBrowserParameter=Parametar %s +LocalisationDolibarrParameters=Parametri lokalizacije +ClientHour=Vreme klijenta (korisnik) +OSTZ=Vremenska zona OS Servera +PHPTZ=Vremenska zona PHP servera +DaylingSavingTime=Letnje računanje vremena +CurrentHour=PHP vreme (server) +CurrentSessionTimeOut=Vremensko ograničenje trenutne sesije YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris" HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server. -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max. number of lines for widgets +Box=Vidžet +Boxes=Vidžeti +MaxNbOfLinesForBoxes=Maksimalni broj linija za vidžete AllWidgetsWereEnabled=All available widgets are enabled -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
    Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file +PositionByDefault=Podrazumevani redosled +Position=Pozicija +MenusDesc=Menadžer menija postavlja sadržaj dve trake menija (horizontalnu i vertikalnu). +MenusEditorDesc=Editor menija vam dozvoljava da definišete prilagođene unose menija. Koristite ih pažljivo da bi izbegli nestabilnost i trajnu nedostupnost unosa menija.
    Neki moduli dodaju unose menija (u meni Svi uglavnom). Ako uklonite neki od ovih unosa greškom, možete ih povratiti tako što ćete prvo onemogućiti pa onda omogućiti modul. +MenuForUsers=Meni za korisnike +LangFile=.lang fajl Language_en_US_es_MX_etc=Language (en_US, es_MX, ...) -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Parameter can be 'tempfilesold', 'logfiles' or both 'tempfilesold+logfiles'. Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. +System=Sistem +SystemInfo=Informacije o sistemu +SystemToolsArea=Oblast sistemskih alata +SystemToolsAreaDesc=Ova oblast omogućava administrativne funkcije. Koristite meni da bi odabrali tražene mogućnosti- +Purge=Čišćenje +PurgeAreaDesc=Ova strana vam dozvoljava da obrišete sve fajlove generisane ili sačuvane od strane Dolibarr (privremeni fajlovi ili svi fajlovi u %s folderu). Korišćenje ove funkcije normalno nije potrebno. Omogućena je kao pomoć za korisnike kojima je Dolibarr hostovan kod provajdera koji ne nudi dozvole za brisanje fajlova generisanih od strane web servera. +PurgeDeleteLogFile=Brisanje log fajla, uključujući %s definisano za Syslog modul (bez rizika od gubljenja podataka) +PurgeDeleteTemporaryFiles=Obrisati sve logove i privremene fajlove (bez rizika za gubljenje podataka). Parametri mogu biti 'tempfilesold', 'logfiles' ili oba 'tempfilesold+logfiles'. Pažnja: Brisanje privremenih fajlova se radi samo ako je temp folder napravljen pre više od 24 sata. PurgeDeleteTemporaryFilesShort=Delete log and temporary files (no risk of losing data) -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
    This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeDeleteAllFilesInDocumentsDir=Brisanje svih fajlova u folderu: %s.
    Ovo će obrisati sva generisana dokumenta, u vezi sa elementima (treće strane, računi i sl...), fajlove uploadovane na ECM module, otpaci bekapa baze podataka i privremenih fajlova. +PurgeRunNow=Očistiti sada +PurgeNothingToDelete=Nema foldera ili fajlova za brisanje +PurgeNDirectoriesDeleted=%s fajlovi ili direktorijumi obrisani. PurgeNDirectoriesFailed=Failed to delete %s files or directories. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=The generated file can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.
    For example: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: +PurgeAuditEvents=Očistiti sve bezbednosne događaje +ConfirmPurgeAuditEvents=Da li ste sigurni da želite da očistite sve bezbednosne događaje? Svi bezbednosni logovi će biti obrisani, ostali podaci neće biti obrisani. +GenerateBackup=Generisanje rezervne kopije +Backup=Rezervna kopija +Restore=Vraćanje sačuvane rezervne kopije +RunCommandSummary=Pravljenje rezervne kopije je pokrenuto sledećom komandom +BackupResult=Rezultat pravljenja rezervne kopije +BackupFileSuccessfullyCreated=Uspešno generisana rezervna kopija +YouCanDownloadBackupFile=Generisani fajl može sada biti preuzet +NoBackupFileAvailable=Nema dostupnih fajlova rezervne kopije. +ExportMethod=Metoda izvoza +ImportMethod=Metoda uvoza +ToBuildBackupFileClickHere=Da bi se generisao fajl rezervne kopije, kliknite ovde. +ImportMySqlDesc=Da bi uvezli MySQL fajl rezervne kopije, možete koristiti phpMyAdmin preko vašeg hostinga ili koristiti mysql komandu iz Komandne linije
    Na primer: +ImportPostgreSqlDesc=Da izvezete fajl rezervne kopije, morate koristiti pg_restore komandu iz komandne linije: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filename for backup: -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file +FileNameToGenerate=Ime fajla rezervne kopije: +Compression=Kompresija +CommandsToDisableForeignKeysForImport=Komanda da za onemogućavanje stranih unosa tokom uvoza +CommandsToDisableForeignKeysForImportWarning=Obavezno ako želite da zadržite mogućnost da vratite svoj sql izvoz kasnije +ExportCompatibility=Kompatibilnost generisanog izvoznog fajla ExportUseMySQLQuickParameter=Use the --quick parameter ExportUseMySQLQuickParameterHelp=The '--quick' parameter helps limit RAM consumption for large tables. -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo +MySqlExportParameters=MySQL parametri izvoza +PostgreSqlExportParameters= PostgreSQL parametri izvoza +UseTransactionnalMode=Koristiti transakcioni režim +FullPathToMysqldumpCommand=Puna putanja do mysqldump komande +FullPathToPostgreSQLdumpCommand=Puna putanja do pg_dump komande +AddDropDatabase=Dodati DROP DATABASE komandu +AddDropTable=Dodati DROP TABLE komandu +ExportStructure=Struktura +NameColumn=Ime kolona +ExtendedInsert=Prošireni INSERT +NoLockBeforeInsert=Bez komandi zaključavanja oko INSERT +DelayedInsert=Odloženo umetanje +EncodeBinariesInHexa=Kodiranje binarnih podataka u heksadecimalne +IgnoreDuplicateRecords=Ignorisanje grešaka kod dupliranih zapisa (INSERT IGNORE) +AutoDetectLang=Automatsko detektovanje (jezik browser-a) +FeatureDisabledInDemo=Funkcija onemogućena u demo verziji FeatureAvailableOnlyOnStable=Feature only available on official stable versions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. +BoxesDesc=Widžeti su komponente koje pokazuju neke informacije koje možete dodati da bi prilagodili neke strane. Možete odabrati između prikazivanja vidžeta ili ne tako što ćete otvoriti ciljnu stranicu i kliknuti 'Aktiviranje', ili klikom na kantu za smeće kako bi je onemogućili +OnlyActiveElementsAreShown=Prikazani su samo elementi iz omogućenih modula . +ModulesDesc=Moduli/Aplikacije određuju koje funkcionalnosti su omogućene u softveru. Neki moduli zahtevaju dozvole za korisnike nakon aktiviranja modula. Kliknuti na uklj/isklj dugme %s svakog modula da bi se omogućo ili onemogućio modul/aplikacija. ModulesDesc2=Click the wheel button %s to configure the module/application. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... +ModulesMarketPlaceDesc=Možete pronaći više modula za preuzimanje na eksternim sajtovima na internetu... ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. -ModulesMarketPlaces=Find external app/modules +ModulesMarketPlaces=Pronaći eksterni modul/aplikaciju ModulesDevelopYourModule=Develop your own app/modules ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)... @@ -230,49 +230,49 @@ SetOptionTo=Set option %s to %s Updated=Updated AchatTelechargement=Buy / Download GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules +DoliStoreDesc=DoliStore, zvanični market za Dolibarr ERP/CRM eksterne module DoliPartnersDesc=List of companies providing custom-developed modules or features.
    Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module. -WebSiteDesc=External websites for more add-on (non-core) modules... +WebSiteDesc=Eksterni sajtovi sa više dodataka i modula (nevezani za jezgro programa)... DevelopYourModuleDesc=Some solutions to develop your own module... URL=URL RelativeURL=Relative URL -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on +BoxesAvailable=Dostupni vidžeti +BoxesActivated=Aktivirani vidžeti +ActivateOn=Aktivirati +ActiveOn=Aktivirano ActivatableOn=Activatable on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required +SourceFile=Izvorni fajl +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Dostupno samo ako JavaScript nije onemogućen +Required=Potrebno UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option. -MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option. -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
    $dolibarr_main_db_pass="...";
    by
    $dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
    $dolibarr_main_db_pass="crypted:...";
    by
    $dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation. -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr official web site +Security=Bezbednost +Passwords=Šifra +DoNotStoreClearPassword=Kriptovanje šifri sačuvanih u bazi podataka (NE kao običan tekst). Strogo se preporučuje da se aktivira ova opcija. +MainDbPasswordFileConfEncrypted=Šifra kriptovane baze podataka sačuvana u conf.php. Strogo se preporučuje da se aktivira ova opcija. +InstrucToEncodePass=Da bi se šifra kodirala u conf.php fajl, zameniti liniju
    $dolibarr_main_db_pass="...";
    sa
    $dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=Da bi se šifra dekodirala (čisto) u conf.php fajlu, zamenite liniju
    $dolibarr_main_db_pass="crypted:...";
    sa
    $dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Zaštita generisanih PDF fajlova. Ovo NIJE preporučeno jer zaustavlja grupno generisanje PDF fajlova. +ProtectAndEncryptPdfFilesDesc=Zaštita PDF dokumenta zadržava mogućnost čitanja i pisanja sa bilo kojim PDF čitačem. Ipak, menjanje i kopiranje više nije moguće. Obratite pažnju da korišćenje ove funkcije sprečava generisanje globalno spojenih PDF fajlova. +Feature=Svojstvo +DolibarrLicense=Licenca +Developpers=Developeri/Saradnici +OfficialWebSite=Dolibarr zvanični web sajt OfficialWebSiteLocal=Lokalni web sajt (%s) -OfficialWiki=Dolibarr documentation / Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) +OfficialWiki=Dolibarr dokumentacija / Wiki +OfficialDemo=Dolibarr onlajn demo +OfficialMarketPlace=Zvaničan market za eksterne module/dodatke +OfficialWebHostingService=Referentni web hosting servis (Cloud hosting) ReferencedPreferredPartners=Preferred Partners OtherResources=Other resources ExternalResources=External Resources SocialNetworks=Social Networks SocialNetworkId=Social Network ID -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
    take a look at the Dolibarr Wiki:
    %s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
    %s -HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. -HelpCenterDesc2=Some of these resources are only available in english. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit +ForDocumentationSeeWiki=Za dokumentaciju za korisnike ili developere (Doc, FAQ...),
    pogledajte na Dolibarr Wiki:
    %s +ForAnswersSeeForum=Za druga pitanja/pomoć, možete koristiti Dolibarr forum:
    %s +HelpCenterDesc1=Evo nekih resursa da bi pronašli pomoć i podršku sa Dolibarr. +HelpCenterDesc2=Neki od resursa su dostupni samo na engleskom. +CurrentMenuHandler=Trenutni rukovalac menija +MeasuringUnit=Merna jedinica LeftMargin=Left margin TopMargin=Top margin PaperSize=Paper type @@ -284,74 +284,74 @@ Content=Content ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) NoticePeriod=Rok za obaveštenje NewByMonth=New by month -Emails=Emails -EMailsSetup=Emails setup -EMailsDesc=This page allows you to set parameters or options for email sending. +Emails=Email +EMailsSetup=Email podešavanja +EMailsDesc=Ova strana omogućava da postavite parametre i opcije za slanje emailova EmailSenderProfiles=Emails sender profiles EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) -MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (podrazumevana vrednost u php.ini: %s) +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (podrazumevana vrednost u php.ini: %s) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Nije definisano u PHP ili Unix-olikim sistemima) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Nije definisano u PHP ili Unix-olikim sistemima) +MAIN_MAIL_EMAIL_FROM=Pošiljalac email-a za automatske email-ove (podrazumevana vrednost u php.ini: %s) +MAIN_MAIL_ERRORS_TO=Email koji se koristi za povratne mailove sa greškom (polje 'Errors-To' u poslatim email-ovima) +MAIN_MAIL_AUTOCOPY_TO= Kopirati (Bcc) sve poslate email-ove na +MAIN_DISABLE_ALL_MAILS=Onemogućiti slanje email-ova (u svrhu testiranja ili demoa) MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) MAIN_MAIL_ENABLED_USER_DEST_SELECT=Suggest emails of employees (if defined) into the list of predefined recipient when writing a new email -MAIN_MAIL_SENDMODE=Email sending method -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) -MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption +MAIN_MAIL_SENDMODE=Metoda slanja email-ova +MAIN_MAIL_SMTPS_ID=SMTP ID (ako server za slanje zahteva proveru identiteta) +MAIN_MAIL_SMTPS_PW=SMTP Šifra (ako server za slanje zahteva proveru identiteta) +MAIN_MAIL_EMAIL_TLS=Koristi TLS (SSL) kriptovanje MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing -MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending +MAIN_DISABLE_ALL_SMS=Onemogućiti slanje SMS (u svrhu testiranja ili demoa) +MAIN_SMS_SENDMODE=Metod za slanje SMS +MAIN_MAIL_SMS_FROM=Podrazumevani broj telefona pošiljaoca za slanje SMS MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) UserEmail=User email CompanyEmail=Company Email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. +FeatureNotAvailableOnLinux=Mogućnost nije dostupna na Unix-olikim sistemima. Testirajte program za slanje maila lokalno. FixOnTransifex=Fix the translation on the online translation platform of project -SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslation=Ako prevod ovog jezika nije kompletan ili ako pronađete greške, možete ih ispraviti editovanjem fajlova u folderu langs/%s i dostaviti svoje ispravke na www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr -ModuleSetup=Module setup -ModulesSetup=Modules/Application setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relationship Management (CRM) +ModuleSetup=Postavke modula +ModulesSetup=Postavke modula/aplikacije +ModuleFamilyBase=Sistem +ModuleFamilyCrm=Menadžment odnosa sa kupcem (Customer Relationship Management CRM) ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) +ModuleFamilyProducts=Menadžment proizvoda (Product Management PM) +ModuleFamilyHr=Menadžment ljudskih resursa (Human Resource Management HR) +ModuleFamilyProjects=Projekti/Udruženi poslovi +ModuleFamilyOther=Ostalo +ModuleFamilyTechnic=Alati za više modula +ModuleFamilyExperimental=Eksperimentalni moduli +ModuleFamilyFinancial=Finansijski moduli (knjgovodstvo/blagajna) +ModuleFamilyECM=Menadžment elektronskog sadržaja (Electronic Content Management ECM) ModuleFamilyPortal=Websites and other frontal application ModuleFamilyInterface=Interfejsi sa eksternim sistemima -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=Upgrade procedure: +MenuHandlers=Rukovaoci menija +MenuAdmin=Uređivač menija +DoNotUseInProduction=Ne koristiti u proizvodnji +ThisIsProcessToFollow=Procedura nadogradnje: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s). -DownloadPackageFromWebSite=Download package (for example from the official web site %s). -UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: %s +StepNb=Korak %s +FindPackageFromWebSite=Pronađite paket koji obezbeđuje mogućnosti koje su vam potrebne (na primer na zvaničnom web sajtu %s). +DownloadPackageFromWebSite=Preuzmite paket (na primer sa zvaničnog web sajta %s). +UnpackPackageInDolibarrRoot=Raspakujte zapakovane fajlove na vaš Dolibar server folder: %s UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
    -InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    -InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=You can upload the .zip file of module package from here: -CurrentVersion=Dolibarr current version -CallUpdatePage=Browse to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version +SetupIsReadyForUse=Instaliranje modula je završeno. Morate ipak omogućiti i postaviti vrednosti za modul u svojoj aplikaciji tako što ćete otići na stranu za postavku modula: %s. +NotExistsDirect=Alternativni root folder nije definisan u postojećem folderu.
    +InfDirAlt=Od verzije 3, moguće je definisati alternativni root folder. Ovo omogućava da sačuvate, u za to namenjen folder, plug-in i prilagođene šablone.
    Samo napravite folder na root Dolibarr (npr: prilagodjeno).
    +InfDirExample=
    Onda ga deklarišite u fajlu conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Ako su ove linije sa "#"na početku reda kao komentar, da bi ih omogućili samo uklonite oznaku za komentar karakter "#". +YouCanSubmitFile=Možete uploadovati .zip fajl modula paketa odavde: +CurrentVersion=Dolibarr trenutna verzija +CallUpdatePage=Idite na stranu koja nadograđuje strukturu baze podataka i podatke: %s. +LastStableVersion=Poslednja stabilna verzija LastActivationDate=Latest activation date LastActivationAuthor=Latest activation author LastActivationIP=Latest activation IP @@ -360,72 +360,72 @@ UpdateServerOffline=Update server offline WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags can be used:
    {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
    {000000+000} same as the previous one but an offset corresponding to the number to the right of the + sign is applied starting on the first %s.
    {000000@x} same as the previous one but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then the sequence {yy}{mm} or {yyyy}{mm} is also required.
    {dd} day (01 to 31).
    {mm} month (01 to 12).
    {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
    GenericMaskCodes2={cccc} the client code on n characters
    {cccc000} the client code on n characters is followed by a counter dedicated to the customer. This counter dedicated to customer is reset at same time as the global counter.
    {tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
    -GenericMaskCodes3=All other characters in the mask will remain intact.
    Spaces are not allowed.
    +GenericMaskCodes3=Svi ostali karakteri u masci će ostati netaknuti.
    Razmaci nisu dozvoljeni.
    GenericMaskCodes3EAN=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13, the last character after the last } in 13th position should be * or ? . It will be replaced by the calculated key.
    -GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    -GenericMaskCodes4b=Example on third party created on 2007-03-01:
    -GenericMaskCodes4c=Example on product created on 2007-03-01:
    -GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML +GenericMaskCodes4a=Primer na 99. %sTreće strane TheCompany, sa datumom 2007-01-31:
    +GenericMaskCodes4b=Primer na Trećoj strani napravljen 2007-03-01:
    +GenericMaskCodes4c=Primer na Proizvodu napravljen 2007-03-01:
    +GenericMaskCodes5=ABC{yy}{mm}-{000000} će dati ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX će dati 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} će dati IN0701-0099-A ako je tip kompanitje 'Registrovana za porez' sa kodom za tip koji je 'A_RI' +GenericNumRefModelDesc=Vraća prilagođen broj prema definisanoj masci. +ServerAvailableOnIPOrPort=Server je dostupan na adresi %s na portu %s +ServerNotAvailableOnIPOrPort=Server nije dostupan na adresi %s na portu%s +DoTestServerAvailability=Testiranje povezanosti servera +DoTestSend=Test slanja +DoTestSendHTML=Test slanja HTML ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
    It must be the octal value (for example, 0666 means read and write for everyone).
    This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide the link "Need help or support" on the login page -DisableLinkToHelp=Hide the link to the online help "%s" -AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed. -ConfirmPurge=Are you sure you want to execute this purge?
    This will permanently delete all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Greška, ne možete koristiti opciju @ ako sekvenca {yy}{mm} ili {yyyy}{mm} nije unutar maske. +UMask=UMask parameter za nove fajlove na Unix/Linux/BSD/Mac fajl sistemima. +UMaskExplanation=Ovaj parametar omogućava da definišete dozvole koje se podrazumevano postavljaju na fajlovima koje pravi Dolibarr na serveru (tokom uploada na primer).
    Mora biti oktalna vrednost (na primer, 0666 znači čitaj i piši za sve).
    Ovaj parametar je beskoristan na Windows serveru. +SeeWikiForAllTeam=Pogledajte na Wiki strani listu saradnika i njihove organizacije +UseACacheDelay= Odlaganje za keširanje eksport odgovora u sekundama (0 ili prazno da nema keša) +DisableLinkToHelpCenter=Sakriti link "Potrebna pomoć ili podrška" na login strani +DisableLinkToHelp=Sakriti link za online pomoć "%s" +AddCRIfTooLong=Nema automatskog preloma teksta, tekst koji je previše dugačak se neće prikazati na dokumentima. Molimo dodajte prelaz u novi red teksta ako je potrebno. +ConfirmPurge=Da li ste sigurni da želite da izvršite ovo čišćenje?
    Ovo će trajno obrisati sve data fajlove i neće biti više načina da ih vratite (ECM fajlovi, prikačeni fajlovi...). +MinLength=Minimalna dužina +LanguageFilesCachedIntoShmopSharedMemory=Fajlovi .lang učitani u deljenu memoriju LanguageFile=Language file -ExamplesWithCurrentSetup=Examples with current configuration -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=Lista foldera sa templejtima u OpenDocument formatu.

    Staviti apsolutnu putanju foldera.
    Svaki folder u listi mora biti na novoj liniji.
    Da biste dodali folder GED modulu, ubacite ga ovde DOL_DATA_ROOT/ecm/ime_vaseg_foldera.

    Fajlovi u tim folderima moraju imati ekstenziju .odt ili .ods. -NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
    To know how to create your odt document templates, before storing them in those directories, read wiki documentation: +ExamplesWithCurrentSetup=Primer sa trenutnom konfiguracijom +ListOfDirectories=Lista foldera OpenDocument šablona +ListOfDirectoriesForModelGenODT=Lista foldera sa šablonima u OpenDocument formatu.

    Staviti apsolutnu putanju foldera.
    Svaki folder u listi mora biti na novoj liniji.
    Da biste dodali folder GED modulu, ubacite ga ovde DOL_DATA_ROOT/ecm/ime_vaseg_foldera.

    Fajlovi u tim folderima moraju imati ekstenziju .odt ili .ods. +NumberOfModelFilesFound=Broj ODT/ODS šablona pronađenih u ovim folderima +ExampleOfDirectoriesForModelGen=Primer sintakse:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    Da bi znali kako da kreirate vaše šablone odt dokumenata, pre čuvanja u ovim folderima, pročitajte Wiki dokumentaciju: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours. -ThemeDir=Skins directory -ConnectionTimeout=Connection timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ +FirstnameNamePosition=Pozicija Imena/Prezimena +DescWeather=Sledeće slike će biti prikazane na komandnoj tabli kada broj kasnih akcija dostigne sledeću vrednost: +KeyForWebServicesAccess=Ključ za korišćenje Web Servisa (parameter "dolibarrkey" unutar webservices) +TestSubmitForm=Forma testa unosa +ThisForceAlsoTheme=Korišćenjem ovog menadžera menija će se koristiti i njegova tema bez obzira na izbor korisnika. Takođe ovaj menadžer menija specijalizovan za mobilne telefone ne radi za sve modele mobilnih telefona. Koristite drugi menadžer menija ako iskusite problema sa vašim. +ThemeDir=Folder skinova +ConnectionTimeout=Isteklo vreme predviđeno za vezu +ResponseTimeout=Isteklo vreme predviđeno za odgovor +SmsTestMessage=Test poruka od __PHONEFROM__ za __PHONETO__ ModuleMustBeEnabledFirst=Modul %s mora biti aktiviran da biste koristili ovu funkcionalnost. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external vendor, but you can find some on %s +SecurityToken=Ključ za sigurni URL +NoSmsEngine=Ne postoji dostupan menadžer slanja SMS. Menadžer slanja SMS nije instaliran sa podrazumevanom distribucijom jer zavise od spoljnog dobavljača, ali možete neke pronaći na %s PDF=PDF -PDFDesc=Global options for PDF generation +PDFDesc=Globalne opcije za generisanje PDF PDFOtherDesc=PDF Option specific to some modules -PDFAddressForging=Rules for address section -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT +PDFAddressForging=Pravila za sekciju adresa +HideAnyVATInformationOnPDF=Sakriti sve informacije u vezi sa Porezom na promet/PDV PDFRulesForSalesTax=Rules for Sales Tax / VAT PDFLocaltax=Rules for %s HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT -HideDescOnPDF=Hide products description -HideRefOnPDF=Hide products ref. -HideDetailsOnPDF=Hide product lines details +HideDescOnPDF=Sakriti opis proizvoda +HideRefOnPDF=Sakriti reference proizvoda +HideDetailsOnPDF=Sakriti detalje linije proizvoda PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch bulk conversion +Library=Biblioteka +UrlGenerationParameters=Parametri za osiguranje URL-ova +SecurityTokenIsUnique=Koristiti jedinstveni securekey parametar za svaki URL +EnterRefToBuildUrl=Uneti referencu za objekat %s +GetSecuredUrl=Dobijanje proračunatog URL +ButtonHideUnauthorized=Sakriti neautorizovane dugmiće takođe i za interne korisnike (inače samo zatamnjeni) +OldVATRates=Stara stopa PDV +NewVATRates=Nova stopa PDV +PriceBaseTypeToChange=Promeni na cenama sa definisanim osnovnim referentnim vrednostima +MassConvert=Pokrenuti grupnu konverziju PriceFormatInCurrentLanguage=Price Format In Current Language String=String String1Line=String (1 line) @@ -434,19 +434,19 @@ TextLongNLines=Long text (n lines) HtmlText=Html text Int=Integer Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (one checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price +DateAndTime=Datum i vreme +Unique=Jedinstveno +Boolean=Boolean (jedan čekboks) +ExtrafieldPhone = Telefon +ExtrafieldPrice = Cena ExtrafieldMail = Email ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSelect = Odabir sa liste +ExtrafieldSelectList = Odabir iz tabele +ExtrafieldSeparator=Odvajač (nije polje) ExtrafieldPassword=Password -ExtrafieldRadio=Radio buttons (one choice only) -ExtrafieldCheckBox=Checkboxes +ExtrafieldRadio=Radio dugmad (samo jedan izbor) +ExtrafieldCheckBox=Čekboksevi ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field @@ -455,29 +455,29 @@ Computedpersistent=Store computed field ComputedpersistentDesc=Computed extra fields will be stored in the database, however, the value will only be recalculated when the object of this field is changed. If the computed field depends on other objects or global data this value might be wrong!! ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).
    Set 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value) ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    In order to have the list depending on another list:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpcheckbox=Lista vrednosti moraju biti linije sa formatom ključ,vrednost (gde ključ ne može biti '0')

    na primer:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpradio=Lista vrednosti moraju biti linije sa formatom ključ,vrednost (gde ključ ne može biti '0')

    na primer:
    1,value1
    2,value2
    3,value3
    ... ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    - id_field is necessarly a primary int key
    - filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter witch is the current id of current object
    To do a SELECT in filter use $SEL$
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath ExtrafieldParamHelpSeparator=Keep empty for a simple separator
    Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)
    Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session) -LibraryToBuildPDF=Library used for PDF generation -LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:
    1: local tax apply on products and services without vat (localtax is calculated on amount without tax)
    2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)
    3: local tax apply on products without vat (localtax is calculated on amount without tax)
    4: local tax apply on products including vat (localtax is calculated on amount + main vat)
    5: local tax apply on services without vat (localtax is calculated on amount without tax)
    6: local tax apply on services including vat (localtax is calculated on amount + tax) +LibraryToBuildPDF=Biblioteka koja se koristi za generisanje PDF +LocalTaxDesc=Neke zemlje mogu koristiti dve ili više poreske stope za svaku liniju računa. Ako je ovo slučaj, odaberite tip za drugi i treći porez i njegovu stopu. Mogućnosti su:
    1: lokalna stopa poreza se postavlja na proizvode i usluge bez PDV (lokalni porez se računa na iznos bez poreza)
    2: lokalni porez se postavlja na proizvode i usluge uključujući PDV (lokalni porez se računa na sumu + glavni porez)
    3: lokalni porez se postavlja na proizvode bez PDV (lokalni porez se računa na sumu bez poreza)
    4: lokalni porez se postavlja na proizvode uključujući PDV (lokalni porez se računa kao suma + glavni porez)
    5: lokalni porez se postavlja na usluge bez PDV (lokalni porez se računa kao suma bez poreza)
    6: lokalni porez se postavlja na usluge uključujući PDV (lokalni porez se računa kao suma + porez) SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value +LinkToTestClickToDial=Unesite broj telefona koji se poziva da bi se pokazao link za testiranje url-a ClickToDial za korisnika %s +RefreshPhoneLink=Osvežiti link +LinkToTest=Link koji se može kliknuti je generisan za korisnika %s (kliknuti broj telefona za testiranje) +KeepEmptyToUseDefault=Zadržati prazno da bi se koristila podrazumevana vrednost KeepThisEmptyInMostCases=In most cases, you can keep this field empy. -DefaultLink=Default link +DefaultLink=Podrazumevana vrednost SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) +ValueOverwrittenByUserSetup=Upozorenje, ova vrednost može biti prepisana od strane korisnika specifičnom postavkom (svaki korisnik može postaviti svoj ClickToDial url) ExternalModule=External module InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=All barcode values have been removed @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -536,152 +536,152 @@ DAV_ALLOW_PUBLIC_DIRTooltip=The generic public directory is a WebDAV directory a DAV_ALLOW_ECM_DIR=Enable the DMS/ECM private directory (root directory of the DMS/ECM module - login required) DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it. # Modules -Module0Name=Korisnici & Grupe -Module0Desc=Users / Employees and Groups management -Module1Name=Third Parties -Module1Desc=Companies and contacts management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting (simplified) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass Emailings -Module22Desc=Manage bulk emailing -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Sales Orders -Module25Desc=Sales order management -Module30Name=Invoices -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers -Module40Name=Vendors -Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) -Module42Name=Debug Logs -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module0Name=Korisnici i grupe +Module0Desc=Menadžment korisnika/zaposlenih i grupa +Module1Name=Treće strane +Module1Desc=Menadžment kompanija i kontakta (kupci, prospekti...) +Module2Name=Trgovina +Module2Desc=Menadžment trgovine +Module10Name=Knjigovodstvo (pojednostavljeno) +Module10Desc=Jednostavni knjigovodstveni izveštaji (dnevnik, promet) zasnovano na sadržaju baze. Ne koristi nikakve knjgovodstvene knjige +Module20Name=Ponude +Module20Desc=Menadžment trgovačkih ponuda +Module22Name=Masovni email +Module22Desc=Menadžment grupnog slanja email-ova +Module23Name=Energija +Module23Desc=Monitoring potrošnje energije +Module25Name=Potvrda narudžbina +Module25Desc=Menadžment potvrda narudžbina +Module30Name=Računi +Module30Desc=Menadžment računa i avansnih računa za korisnike. Menadžment računa i avansnih računa za dobavljače +Module40Name=Dobavljači +Module40Desc=Dobavljači i menadžment kupovine (narudžbine za kupovinu i računi dobavljača) +Module42Name=Debug logovi +Module42Desc=Logovanje strukutra (file, syslog...) Ovi logovi su u svrgu tehničke podrške/debug Module43Name=Debug Bar Module43Desc=A tool for developper adding a debug bar in your browser. -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Management of Products -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management -Module53Name=Services -Module53Desc=Management of Services -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or recurring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode or QR code management -Module56Name=Payment by credit transfer -Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. -Module57Name=Payments by Direct Debit -Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. +Module49Name=Urednici +Module49Desc=Menadžment urednika +Module50Name=Proizvodi +Module50Desc=Menadžment proizvoda +Module51Name=Masovna pošta +Module51Desc=Menadžment masovne papirne pošte +Module52Name=Skladište +Module52Desc=Menadžment skladišta +Module53Name=Usluge +Module53Desc=Menadžment usluga +Module54Name=Ugovori/Pretplate +Module54Desc=Menadžment ugovora (usluga ili ponavljajuće pretplate) +Module55Name=Bar kodovi +Module55Desc=Menadžment bar kodova ili QR kodova +Module56Name=Plaćanje transferom kredita +Module56Desc=Menadžment plaćanja dobavljača prenosom kredita. Uključuje generisanje SEPA fajla za Evropske zemlje. +Module57Name=Plaćanje direktnim debit zaduživanjem +Module57Desc=Menadžment porudžbina direktnim debi zaduživanjem. Uključuje generisanje SEPA fajla za Evropske zemlje. Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) +Module58Desc=Integracija ClickToDial sistema (Asterisk, ...) Module60Name=Stickers Module60Desc=Management of stickers -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash -Module85Desc=Management of bank or cash accounts -Module100Name=External Site -Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module +Module70Name=Intervencije +Module70Desc=Menadžment intervencija +Module75Name=Troškovi i beleške puta +Module75Desc=Menadžment troškova i beleški puta +Module80Name=Pošiljke +Module80Desc=Menadžment pošiljki i otpremnica +Module85Name=Banke i keš blagajna +Module85Desc=Menadžment računa banaka i keš blagajne +Module100Name=Spoljni sajt +Module100Desc=Dodati link za spoljni websajt kao glavnu ikonu menija. Websajt je prikazan kao frejm ispod gornjeg menija. +Module105Name=Poštar i SPIP +Module105Desc=Poštar ili SPIP interfejs za korisnički modul Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=LDAP sinhronizacija foldera Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistance) -Module250Name=Data imports -Module250Desc=Tool to import data into Dolibarr (with assistance) -Module310Name=Members -Module310Desc=Foundation members management +Module210Desc=PostNuke integracija +Module240Name=Izvoz podataka +Module240Desc=Alat za izvoz Dolibarr podataka (sa asistencijom) +Module250Name=Uvoz podataka +Module250Desc=Alat za uvoz podataka u Dolibarr (sa asistencijom) +Module310Name=Članovi +Module310Desc=Menadžment članova fondacije Module320Name=RSS Feed -Module320Desc=Add a RSS feed to Dolibarr pages -Module330Name=Bookmarks & Shortcuts -Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access -Module400Name=Projects or Leads -Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Taxes & Special Expenses -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module320Desc=Dodati RSS feed u Dolibarr strane +Module330Name=Obeleživači i prečice +Module330Desc=Napravite prečice, uvek dostupne, za unutrašnje ili spoljne strane koje često koristite +Module400Name=Projekti ili tragovi +Module400Desc=Menadžment projekata, tragova/mogućnosti i/ili zadataka. Možete takođe zadati bilo koji element (račun, narudžbina, ponuda, intervencija...) u projekat i dobiti transverzalni pregled iz prikaza za projekte +Module410Name=Web kalendar +Module410Desc=Integracija web kalendara +Module500Name=Porezi i specijalni troškovi +Module500Desc=Menadžment drugih troškova (prodajni porez, socijalni ili fiskalni porez, dividende...) Module510Name=Plate Module510Desc=Record and track employee payments Module520Name=Krediti Module520Desc=Management of loans -Module600Name=Notifications on business event -Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails +Module600Name=Obaveštenje u slučaju poslovnog događaja +Module600Desc=Poslati email obaveštenje u slučaju poslovnog događaja: prema korisniku (postavke za svakog korisnika), prema kontaktima treće strane (postavke za svaku treću stranu) ili prema specifičnim emailovima Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda. Module610Name=Product Variants Module610Desc=Creation of product variants (color, size etc.) -Module700Name=Donations -Module700Desc=Donation management +Module700Name=Donacije +Module700Desc=Menadžment donacija Module770Name=Expense Reports Module770Desc=Manage expense reports claims (transportation, meal, ...) Module1120Name=Vendor Commercial Proposals Module1120Desc=Request vendor commercial proposal and prices Module1200Name=Mantis -Module1200Desc=Mantis integration +Module1200Desc=Mantis integracija Module1520Name=Document Generation Module1520Desc=Mass email document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) +Module1780Name=Tagovi/kategorije +Module1780Desc=Napravite tagove/kategorije (proizvodi, kupci, dobavljači, kontakti ili članovi) Module2000Name=WYSIWYG editor -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=Uredite/formatirajte tekst polja pomoću CKEditor (html) Module2200Name=Dynamic Prices Module2200Desc=Use maths expressions for auto-generation of prices -Module2300Name=Planirane operacije -Module2300Desc=Scheduled jobs management (alias cron or chrono table) -Module2400Name=Events/Agenda -Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. +Module2300Name=Planirani poslovi +Module2300Desc=Menadžment planiranih poslova (alias cron ili chrono tabela) +Module2400Name=Događaji/agenda +Module2400Desc=Pratite događaje. Logovanje automatskih događaja za praćenje smisla ili beleženje ručnih događaja ili sastanaka. Ovo je glavni modul za Menadžment Odnosa sa Kupcima ili Dobavljačima Module2500Name=DMS / ECM -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services +Module2500Desc=Sistem menadžmenta dokumenata DMS / Menadžment elektronskog sadržaja ECM. Automatska organizacija vaših generisanih i sačuvanih dokuemenata. Delite ih kada je potrebno. +Module2600Name=API/Web servisi (SOAP server) +Module2600Desc=Omogućiti da Dolibarr SOAP server pruža API servis Module2610Name=API/Web services (REST server) Module2610Desc=Enable the Dolibarr REST server providing API services Module2660Name=Poziv WebServices (SOAP client) Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access -Module2800Desc=FTP Client +Module2700Desc=Koristiti online Gravatar servis (www.gravatar.com) da bi se pokazala slika korisnika/člana (prema emailu). Potreban pristup internetu +Module2800Desc=FTP Klijent Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities +Module2900Desc=GeoIP Maxmind mogućnosti konverzije Module3200Name=Unalterable Archives Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. Module3400Name=Social Networks Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). Module4000Name=HRM Module4000Desc=Human resources management (management of department, employee contracts and feelings) -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies +Module5000Name=Više kompanija +Module5000Desc=Omogućava da upravljate sa više kompanija Module6000Name=Inter-modules Workflow Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) Module10000Name=Websites Module10000Desc=Create websites (public) with a WYSIWYG editor. This is a webmaster or developer oriented CMS (it is better to know HTML and CSS language). Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name. -Module20000Name=Leave Request Management -Module20000Desc=Define and track employee leave requests +Module20000Name=Menadžment zahteva za odmor +Module20000Desc=Definisati i pratiti zahteve za odmor zaposlenih Module39000Name=Product Lots Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products Module40000Name=Multicurrency Module40000Desc=Use alternative currencies in prices and documents Module50000Name=PayBox -Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50000Desc=Ponudite kupcijam PayBox online stranu za plaćanje (kreditne/debitne kartice). Ovo može biti korišćeno da bi se dozvolilo kupcijam da prave ad-hok plaćanja ili plaćanja prema specifičnim Dolibarr objektima (računi, porudžbine i sl...) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale module SimplePOS (simple POS). +Module50100Desc=Point of Sale modul SimplePOS (jednostavni POS). Module50150Name=POS TakePOS Module50150Desc=Point of Sale module TakePOS (touchscreen POS, for shops, bars or restaurants). Module50200Name=Paypal -Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50200Desc=Ponudite kupcima stranu za PayPal online plaćanje (PayPal račun ili kreditna/debitna kartica). Ovo može biti korišćeno da dozvolite kupcima da prave ad-hok plaćanja ili plaćanja prema specijalnim Dolibarr objektima (račun, narudžbina i sl...) Module50300Name=Stripe Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) Module50400Name=Accounting (double entry) @@ -690,33 +690,34 @@ Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). Module55000Name=Anketa ili Glasanje Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) -Module59000Name=Margins -Module59000Desc=Module to follow margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions +Module59000Name=Marže +Module59000Desc=Modul za praćenje marži +Module60000Name=Provizije +Module60000Desc=Modul za praćenje provizija Module62000Name=Incoterms Module62000Desc=Add features to manage Incoterms Module63000Name=Resursi Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Invalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products +Permission11=Pregled računa za kupce +Permission12=Napravi/promeni račun za kupca +Permission13=Poništi račun za kupca +Permission14=Potvrdi račun za kupca +Permission15=Slanje računa za kupca email-om +Permission16=Napravi plaćanje za račun kupca +Permission19=Obriši račune za kupce +Permission21=Pregled trgovačkih ponuda +Permission22=Napravi/promeni trgovačke ponude +Permission24=Potvrdi trgovačke ponude +Permission25=Pošalji trgovačke ponude +Permission26=Zatvori trgovačke ponude +Permission27=Obriši trgovačke ponude +Permission28=Izvezi trgovačke ponude +Permission31=Pregled proizvoda +Permission32=Napravi/promeni proizvode +Permission33=Read prices products +Permission34=Obriši proizvode +Permission36=Pregledaj/uredi skrivene proizvode +Permission38=Izvoz proizvoda Permission39=Ignore minimum price Permission41=Read projects and tasks (shared projects and projects of which I am a contact). Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks @@ -739,6 +740,7 @@ Permission79=Create/modify subscriptions Permission81=Read customers orders Permission82=Create/modify customers orders Permission84=Validate customers orders +Permission85=Generate the documents sales orders Permission86=Send customers orders Permission87=Close customers orders Permission88=Cancel customers orders @@ -874,6 +876,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Read services Permission532=Create/modify services +Permission533=Read prices services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services @@ -1129,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1235,6 +1238,7 @@ BrowserName=Browser name BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. @@ -1936,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Pozadinska boja za naslovnu liniju tabela BackgroundTableTitleTextColor=Text color for Table title line @@ -1977,6 +1981,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Ugovori MailToSendReception=Receptions +MailToExpenseReport=Troškovi MailToThirdparty=Subjekti MailToMember=Članovi MailToUser=Korisnici @@ -2030,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2059,9 +2065,16 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector @@ -2073,14 +2086,14 @@ DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2101,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2118,7 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module @@ -2167,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2208,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2248,13 +2265,21 @@ TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2287,23 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/sr_RS/banks.lang b/htdocs/langs/sr_RS/banks.lang index 0279c350ad4..515f8c32fd1 100644 --- a/htdocs/langs/sr_RS/banks.lang +++ b/htdocs/langs/sr_RS/banks.lang @@ -39,7 +39,7 @@ StandingOrders=Direct debit orders StandingOrder=Direct debit order PaymentByDirectDebit=Payment by direct debit PaymentByBankTransfers=Payments by credit transfer -PaymentByBankTransfer=Payment by credit transfer +PaymentByBankTransfer=Plaćanje transferom kredita AccountStatement=Izvod AccountStatementShort=Izvod AccountStatements=Izvodi @@ -95,11 +95,11 @@ LineRecord=Transakcija AddBankRecord=Add entry AddBankRecordLong=Add entry manually Conciliated=Reconciled -ConciliatedBy=Poravnjaj sa +ReConciliedBy=Poravnjaj sa DateConciliating=Datum poravnanja BankLineConciliated=Entry reconciled with bank receipt -Reconciled=Reconciled -NotReconciled=Not reconciled +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Uplata kupca SupplierInvoicePayment=Vendor payment SubscriptionPayment=Uplata pretplate @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandate YourSEPAMandate=Your SEPA mandate FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation -CashControl=POS cash desk control -NewCashFence=New cash desk opening or closing +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Colorize movements BankColorizeMovementDesc=If this function is enable, you can choose specific background color for debit or credit movements BankColorizeMovementName1=Background color for debit movement @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on NoBankAccountDefined=No bank account defined NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled. AlreadyOneBankAccount=Already one bank account defined +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. +ToCreateRelatedRecordIntoBank=To create missing related bank record diff --git a/htdocs/langs/sr_RS/companies.lang b/htdocs/langs/sr_RS/companies.lang index d4f9dcb7f89..d263971284b 100644 --- a/htdocs/langs/sr_RS/companies.lang +++ b/htdocs/langs/sr_RS/companies.lang @@ -38,7 +38,7 @@ ThirdPartyProspectsStats=Kandidati ThirdPartyCustomers=Klijenti ThirdPartyCustomersStats=Klijenti ThirdPartyCustomersWithIdProf12=Klijenti sa %s ili %s -ThirdPartySuppliers=Vendors +ThirdPartySuppliers=Dobavljači ThirdPartyType=Third-party type Individual=Fizičko lice ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough. @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=Adresa State=Država/Provincija +StateId=State ID StateCode=State/Province code StateShort=Stanje Region=Regija Region-State=Region - State Country=Zemlja CountryCode=Kod zemlje -CountryId=Id zemlje +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Drugi ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/sr_RS/compta.lang b/htdocs/langs/sr_RS/compta.lang index f1b909b9fc6..f196af85726 100644 --- a/htdocs/langs/sr_RS/compta.lang +++ b/htdocs/langs/sr_RS/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=Stanje Debit=Izlaz Credit=Ulaz +AccountingDebit=Izlaz +AccountingCredit=Ulaz Piece=Računovodstvena dokumentacija AmountHTVATRealReceived=Neto prihoda AmountHTVATRealPaid=Plaćeno neto @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Obriši uplatu poreza/doprinosa DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Uplate poreza/doprinosa CalcModeVATDebt=Mod %sPDV u posvećenom računovodstvu%s. CalcModeVATEngagement=Mod %sPDV na prihodima-rashodima%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Naćin obračuna AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/sr_RS/contracts.lang b/htdocs/langs/sr_RS/contracts.lang index 3736b3aea10..55e871b6679 100644 --- a/htdocs/langs/sr_RS/contracts.lang +++ b/htdocs/langs/sr_RS/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Ugovori/Pretplate ContractsAndLine=Ugovori i linije ugovora Contract=Ugovor ContractLine=Linija ugovora +ContractLines=Contract lines Closing=Zatvaranje NoContracts=Nema ugovora MenuServices=Usluge @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Premesti uslugu u drugi ugovor. ConfirmMoveToAnotherContract=Izabran je novi ugovor i ova usluga treba biti prebačena na novi ugovor. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Obnovi liniju ugovora (broj %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Datum isticanja NoExpiredServices=Nema isteklih aktivnih usluga ListOfServicesToExpireWithDuration=Liste usluga koje ističu za %s dana @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Kontakt klijenta koji potpisuje ugovor HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/sr_RS/datapolicy.lang b/htdocs/langs/sr_RS/datapolicy.lang new file mode 100644 index 00000000000..56596b25f98 --- /dev/null +++ b/htdocs/langs/sr_RS/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Klijent +DATAPOLICY_TIERS_PROSPECT = Prospekt +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dobavljač +DATAPOLICY_CONTACT_CLIENT = Klijent +DATAPOLICY_CONTACT_PROSPECT = Prospekt +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dobavljač +DATAPOLICY_ADHERENT = Član +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/sr_RS/dict.lang b/htdocs/langs/sr_RS/dict.lang index f53c973b2a7..e04bbfe0af3 100644 --- a/htdocs/langs/sr_RS/dict.lang +++ b/htdocs/langs/sr_RS/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holandija CountryHU=Mađarska CountryRU=sija CountrySE=Švedska -CountryCI=Obala Slonovače +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Gđa. +CivilityMMEShort=Gđa. CivilityMR=Gdin. +CivilityMRShort=Gdin. CivilityMLE=Gđica. CivilityMTRE=MR CivilityDR=DR diff --git a/htdocs/langs/sr_RS/ecm.lang b/htdocs/langs/sr_RS/ecm.lang index fe6c8096946..b3d5844c525 100644 --- a/htdocs/langs/sr_RS/ecm.lang +++ b/htdocs/langs/sr_RS/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ručni folder ECMSectionAuto=Automatski folder ECMSectionsManual=Ručna struktura ECMSectionsAuto=Automatska struktura +ECMSectionsMedias=Medias tree ECMSections=Folderi ECMRoot=ECM Root ECMNewSection=Nov folder @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Broj fajlova u pod-folderima ECMCreationUser=Kreirao ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatski folderi su automatski popunjeni prilikom dodavanja dokumenata iz kartice nekog objekta.
    * Ručni folderi se mogu koristiti za čuvanje dokumenata koji nisu vezani za neki određen objekat. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Folder %s je obrisan. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Potraži po ključnoj reči diff --git a/htdocs/langs/sr_RS/errors.lang b/htdocs/langs/sr_RS/errors.lang index ce3cbc6b148..cade3860462 100644 --- a/htdocs/langs/sr_RS/errors.lang +++ b/htdocs/langs/sr_RS/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) ErrorBadUrl=Url %s is incorrect ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Login %s već postoji ErrorGroupAlreadyExists=Grupa %s već postoji ErrorEmailAlreadyExists=Email %s already exists. @@ -55,7 +56,7 @@ ErrorFailedToCreateDir=Greška prilikom kreacije foldera. Proverite da li Web se ErrorNoMailDefinedForThisUser=Mail nije definisan za ovog korisnika ErrorSetupOfEmailsNotComplete=Setup of emails is not complete ErrorFeatureNeedJavascript=Za ovu funkcionalnost morate aktivirati javascript. -ErrorTopMenuMustHaveAParentWithId0=Meni tipa "Top" ne može imati parent meni. Stavite 0 u parent meni ili izaberite meni tipa "Left". +ErrorTopMenuMustHaveAParentWithId0=Meni tipa "Top" ne može imati roditeljski meni. Stavite 0 u roditeljski meni ili izaberite meni tipa "Levi". ErrorLeftMenuMustHaveAParentId=Meni tipa "Levi" mora imati parent ID. ErrorFileNotFound=Fajl %s nije pronađen (pogrešna putanja, nedovoljna prava, ili je pristup sprečen PHP openbasedir ili safe_mode parametrima) ErrorDirNotFound=Folder %s nije pronađen (pogrešna putanja, nedovoljna prava, ili je pristup sprečen PHP openbasedir ili safe_mode parametrima) @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name %s already exist ErrorPartialFile=Fajl nije u celosti primljen na server. ErrorNoTmpDir=Privremeni folder %s ne postoji. ErrorUploadBlockedByAddon=Upload blokiran PHP/Apache pluginom. -ErrorFileSizeTooLarge=Fajl je preveliki. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Field %s is too long. ErrorSizeTooLongForIntType=Predugačka vrednost za int tip (%s cifara maksimum) ErrorSizeTooLongForVarcharType=Predugačka vrednost za string tip (%s karaktera maksimum) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Da bi ova funkcionalnost bila dostupna, Javascript ErrorPasswordsMustMatch=Unete lozinke se moraju podudarati ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref ErrorsOnXLines=%s errors found @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Lozinka je podešena za ovog člana, ali korisnik nije kreiran. To znači da je lozinka sačuvana, ali se član ne može ulogovati na Dolibarr. Informaciju može koristiti neka eksterna komponenta, ali ako nemate potrebe da definišete korisnika/lozinku za članove, možete deaktivirati opciju "Upravljanje lozinkama za svakog člana" u podešavanjima modula Članovi. Ukoliko morate da kreirate login, ali Vam nije potrebna lozinka, ostavite ovo polje prazno da se ovo upozorenje ne bi prikazivalo. Napomena: email može biti korišćen kao login ako je član povezan sa korisnikom. -WarningMandatorySetupNotComplete=Click here to setup mandatory parameters +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications WarningSafeModeOnCheckExecDir=Upozorenje PHP opcija safe_mode je aktivna, tako da komanda mora biti u folderu definisanom u PHP parametru safe_mode_exec_dir. WarningBookmarkAlreadyExists=Oznaka sa ovim naslovom ili ovim URL-om već postoji. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/sr_RS/externalsite.lang b/htdocs/langs/sr_RS/externalsite.lang deleted file mode 100644 index 7f81e5e93ed..00000000000 --- a/htdocs/langs/sr_RS/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Podesi link ka eksternom sajtu -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Modul eksterni sajt nije ispravno konfigurisan. -ExampleMyMenuEntry=Stavka iz mog menija diff --git a/htdocs/langs/sr_RS/ftp.lang b/htdocs/langs/sr_RS/ftp.lang deleted file mode 100644 index 15cb044156d..00000000000 --- a/htdocs/langs/sr_RS/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Podešavanja FTP Client modula -NewFTPClient=Nova FTP konekcija -FTPArea=Oblast FTP -FTPAreaDesc=Ovaj ekran vam prikazuje sadržaj FTP servera -SetupOfFTPClientModuleNotComplete=Podešavanja FTP client modula nisu potpuna -FTPFeatureNotSupportedByYourPHP=Vaša verzija PHP-a ne omogućava korišćenje FTP-a -FailedToConnectToFTPServer=Greška u konekcij na FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Pogrešan login/password za konekciju na FTP server -FTPFailedToRemoveFile=Greška prilikom brisanja fajla %s. -FTPFailedToRemoveDir=Greška prilkom brisanja foldera %s (proverite prava i da li je flder pazan). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Izaberite FTP stavku u meniju... -FailedToGetFile=Greška prilikom preuzimanja fajlova %s diff --git a/htdocs/langs/sr_RS/holiday.lang b/htdocs/langs/sr_RS/holiday.lang index c755ad5cfac..d46786b5ad0 100644 --- a/htdocs/langs/sr_RS/holiday.lang +++ b/htdocs/langs/sr_RS/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Mesečna promena MenuAddCP=Novi zahtev za odsustvo +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Zatraži odsustvo DateDebCP=Početak @@ -56,6 +58,7 @@ ConfirmDeleteCP=Potvrdi brisanje zahteva za odsustvo? ErrorCantDeleteCP=Greška, nemate pravo da obrišete ovaj zahtev. CantCreateCP=Nemate pravo da kreirate zahtev za odsustvo. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Morate izabrati početni datum. NoDateFin=Morate izabrati završni datum. ErrorDureeCP=Vaš zahtev za odsustvo ne sadrži radne dane. @@ -79,6 +82,8 @@ MotifCP=Razlog UserCP=Korisnik ErrorAddEventToUserCP=Greška prilikom kreiranja vanrednog odsustva. AddEventToUserOkCP=Kreiranje vanrednog odsustva je završeno. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Prikaži log izmena LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Prethodno stanje NewSoldeCP=Novo stanje alreadyCPexist=Zahtev za odsustvo već postoji za ovaj period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupe +users=Korisnici +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/sr_RS/hrm.lang b/htdocs/langs/sr_RS/hrm.lang index bb60449ee93..acbcc55b188 100644 --- a/htdocs/langs/sr_RS/hrm.lang +++ b/htdocs/langs/sr_RS/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Otvori ogranak CloseEtablishment=Zatvori ogranak # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HR - Lista odeljenja +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Zaposleni @@ -20,13 +20,14 @@ Employee=Zaposleni NewEmployee=Novi zaposleni ListOfEmployees=Lista zaposlenih HrmSetup=Podešavanja HRM modula -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Operacija -Jobs=Jobs +JobPosition=Operacija +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozicija -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/sr_RS/install.lang b/htdocs/langs/sr_RS/install.lang index a209d2d65e8..a70a5d48aaa 100644 --- a/htdocs/langs/sr_RS/install.lang +++ b/htdocs/langs/sr_RS/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=Konfiguracioni fajl %s može biti izmenjen. ConfFileMustBeAFileNotADir=Configuration file %s must be a file, not a directory. ConfFileReload=Reloading parameters from configuration file. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP podržava POST i GET promenljive PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=PHP podržava sesije. @@ -16,13 +17,6 @@ PHPMemoryOK=Maksimalna memorija za sesije je %s. To bi trebalo biti dovol PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Click here for a more detailed test ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. ErrorDirDoesNotExists=Folder %s ne postoji. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,9 +24,11 @@ ErrorWrongValueForParameter=Verovatno ste uneli pogrešnu vrednost za parametar ErrorFailedToCreateDatabase=Greška prilikom kreacije baze podataka "%s". ErrorFailedToConnectToDatabase=Greška prilikom povezivanja na bazu podataka "%s". ErrorDatabaseVersionTooLow=Verzija baze (%s) je previš stara. Neophodna je verzija %s ili novija. -ErrorPHPVersionTooLow=Verzija PHP instalacije je previše stara. Neophodna je verzija %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=Baza "%s" već postoji. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=Ukoliko baza već postoji, vratite se nazad i od-selektirajte opciju "Kreiranje baze". WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/sr_RS/mailmanspip.lang b/htdocs/langs/sr_RS/mailmanspip.lang index 591621e408c..ce7a4e2c421 100644 --- a/htdocs/langs/sr_RS/mailmanspip.lang +++ b/htdocs/langs/sr_RS/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=Mailman će biti ažuriran SynchroSpipEnabled=SPIP će biti ažuriran -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL za Mailman prijave DescADHERENT_MAILMAN_UNSUB_URL=URL za Mailman odjave DescADHERENT_MAILMAN_LISTS=Lista(e) automatskih prijava novih članova (odvojenih zarezima) diff --git a/htdocs/langs/sr_RS/mails.lang b/htdocs/langs/sr_RS/mails.lang index e8308544a90..f651ac48d5a 100644 --- a/htdocs/langs/sr_RS/mails.lang +++ b/htdocs/langs/sr_RS/mails.lang @@ -7,10 +7,10 @@ MailCard=Emailing kartica MailRecipients=Primaoci MailRecipient=Primalac MailTitle=Opis -MailFrom=Pošiljalac +MailFrom=Od MailErrorsTo=Greške za MailReply=Odgovori -MailTo=Primalac(oci) +MailTo=Za MailToUsers=To user(s) MailCC=CC MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index 93c6129c492..f8ea9a3c7d5 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Dostupne zamenske promenljive NoTranslation=Nema prevoda Translation=Prevod +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Validno Approve=Odobri Disapprove=Odbij ReOpen=Ponovo otvori +OpenVerb=Otvoreno Upload=Upload ToLink=ink Select=Izaberi @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Korisnička grupa nije definisana Password=Lozinka -PasswordRetype=Ponovo unesi lozinku +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Dosta funkcionalnosti/modula su deaktivirani u ovoj demonstraciji. Name=Ime NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Opis DescriptionOfLine=Opis linije DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Događaj @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Događaji vezani za ovog člana ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s kasni ToDo=Na čekanju Completed=Completed @@ -517,6 +527,7 @@ or=ili Other=Drugo Others=Drugi OtherInformations=Other information +Workflow=Workflow Quantity=Količina Qty=Kol. ChangedBy=Izmenio @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Fajlovi i dokumenti u prilogu JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Funkcionalnost deaktivirana MoveBox=Move widget Offered=Ponuđeno NotEnoughPermissions=Nemate pravo da izvršite ovu operaciju +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Ime sesije Method=Metoda Receive=Primi @@ -798,6 +811,7 @@ URLPhoto=URL fotografije/logoa SetLinkToAnotherThirdParty=Link ka drugom subjektu LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link ka narudžbini LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Troškovi SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Na čekanju Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Kurs +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interni korisnik +ExternalUser=Spoljni korisnik diff --git a/htdocs/langs/sr_RS/members.lang b/htdocs/langs/sr_RS/members.lang index c1c03b01a38..cf5ee4be072 100644 --- a/htdocs/langs/sr_RS/members.lang +++ b/htdocs/langs/sr_RS/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Drugi član (ime: %s, login: < ErrorUserPermissionAllowsToLinksToItselfOnly=Iz sigurnosnih razloga, morate imati dozvole za izmenu svih korisnika kako biste mogli da povežete člana sa korisnikom koji nije Vaš. SetLinkToUser=Link sa Dolibarr korisnikom SetLinkToThirdParty=Link sa Dolibarr subjektom +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Lista članova MembersListToValid=Lista draft članova (za potvrdu) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ID člana +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Novi član MemberType=Tip člana MemberTypeId=ID tipa člana @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=Novi doprinos NewSubscriptionDesc=Ovaj obrazac Vam omogućava da snimite svoju pretplatu kao novi član fondacije. Ukoliko želite da produžite pretplatu (ukoliko ste već član), molimo Vas da kontaktirate fondaciju putem maila %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Trajanje +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Kasni SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Sadržaj Vaše kartice člana # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Obrt (za kompaniju) ili budžet (za fondaciju) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Pređi na integrisanu online stranicu uplate +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/sr_RS/modulebuilder.lang b/htdocs/langs/sr_RS/modulebuilder.lang index 61b5c939d12..670dccc7767 100644 --- a/htdocs/langs/sr_RS/modulebuilder.lang +++ b/htdocs/langs/sr_RS/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. -EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory NewModule=New module NewObjectInModulebuilder=New object +NewDictionary=New dictionary ModuleKey=Module key ObjectKey=Object key +DicKey=Dictionary key ModuleInitialized=Module initialized FilesForObjectInitialized=Files for new object '%s' initialized FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) @@ -52,7 +55,7 @@ LanguageFile=File for language ObjectProperties=Object Properties ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. NotNull=Not NULL -NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0). +NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) SearchAll=Used for 'search all' DatabaseIndex=Database index FileAlreadyExists=File %s already exists @@ -94,7 +97,7 @@ LanguageDefDesc=Enter in this files, all the key and the translation for each la MenusDefDesc=Define here the menus provided by your module DictionariesDefDesc=Define here the dictionaries provided by your module PermissionsDefDesc=Define here the new permissions provided by your module -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), menus are also visible into the menu editor available to administrator users on %s. +MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s. DictionariesDefDescTooltip=The dictionaries provided by your module/application are defined into the array $this->dictionaries into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), dictionaries are also visible into the setup area to administrator users on %s. PermissionsDefDescTooltip=The permissions provided by your module/application are defined into the array $this->rights into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and module re-activated), permissions are visible into the default permissions setup %s. HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code).
    Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destroy table if empty) TableDoesNotExists=The table %s does not exists TableDropped=Table %s deleted InitStructureFromExistingTable=Build the structure array string of an existing table -UseAboutPage=Disable the about page +UseAboutPage=Do not generate the About page UseDocFolder=Disable the documentation folder UseSpecificReadme=Use a specific ReadMe ContentOfREADMECustomized=Note: The content of the README.md file has been replaced with the specific value defined into setup of ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Use a specific editor URL UseSpecificFamily = Use a specific family UseSpecificAuthor = Use a specific author UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation automatically of the reference -IncludeDocGeneration=I want to generate some documents from the object +IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules +IncludeDocGeneration=I want to generate some documents from templates for the object IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. ShowOnCombobox=Show value into combobox KeyForTooltip=Key for tooltip @@ -138,10 +141,16 @@ CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Not editable ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example) +TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Ascii to HTML converter AsciiToPdfConverter=Ascii to PDF converter TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Put 1 if this field need to be validated with $this->validateField() or 0 if validation required +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated +LinkToParentMenu=Meni višeg nivoa (fk_xxxxmenu) +ListOfTabsEntries=List of tab entries +TabsDefDesc=Define here the tabs provided by your module +TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s diff --git a/htdocs/langs/sr_RS/oauth.lang b/htdocs/langs/sr_RS/oauth.lang index c5b772af121..80fd31c5166 100644 --- a/htdocs/langs/sr_RS/oauth.lang +++ b/htdocs/langs/sr_RS/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Token je generisan i sačuvan u lokalnoj bazi NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token obrisan -RequestAccess=Kliknite ovde da biste tražili/obnovili pristup i primili novi token za čuvanje +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Kliknite ovde da obrišete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=See previous tab +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired @@ -23,10 +24,13 @@ TOKEN_DELETE=Obriši sačuvani token OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/sr_RS/orders.lang b/htdocs/langs/sr_RS/orders.lang index 7e9e4479535..29c86f71cbb 100644 --- a/htdocs/langs/sr_RS/orders.lang +++ b/htdocs/langs/sr_RS/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=An order was already open linked to this proposal, so no other order was created automatically OrdersArea=Oblast narudžbina klijenta SuppliersOrdersArea=Purchase orders area OrderCard=Kartica narudžbine @@ -21,7 +22,7 @@ SaleOrderLines=Sales order lines PurchaseOrderLines=Puchase order lines SuppliersOrdersRunning=Current purchase orders CustomerOrder=Sales Order -CustomersOrders=Sales Orders +CustomersOrders=Potvrda narudžbina CustomersOrdersRunning=Current sales orders CustomersOrdersAndOrdersLines=Sales orders and order details OrdersDeliveredToBill=Sales orders delivered to bill @@ -68,6 +69,8 @@ CreateOrder=Kreiraj narudžbinu RefuseOrder=Odbij narudžbinu ApproveOrder=Odobri narudžbinu Approve2Order=Odobri narudžbinu (drugi nivo) +UserApproval=User for approval +UserApproval2=User for approval (second level) ValidateOrder=Odobri narudžbinu UnvalidateOrder=Poništi odobrenje narudžbine DeleteOrder=Obriši narudžbinu @@ -102,6 +105,8 @@ ConfirmCancelOrder=Are you sure you want to cancel this order? ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? GenerateBill=Generiši račun ClassifyShipped=Označi kao ispostavljeno +PassedInShippedStatus=classified delivered +YouCantShipThis=I can't classify this. Please check user permissions DraftOrders=Nacrt narudžbine DraftSuppliersOrders=Draft purchase orders OnProcessOrders=Narudžbine u toku diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang index b9561452741..4d6e35598c2 100644 --- a/htdocs/langs/sr_RS/other.lang +++ b/htdocs/langs/sr_RS/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Komercijalna ponuda je potvrđena Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Komercijalna ponuda poslata mailom Notify_WITHDRAW_TRANSMIT=Podizanje transfera Notify_WITHDRAW_CREDIT=Kreditno podizanje @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=tačka BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Nazad na login stranu AuthenticationDoesNotAllowSendNewPassword=Mod autentifikacije je %s.
    U ovom modu, Dolibarr nema uvid u Vašu lozinku i ne može je promeniti.
    Kontaktirajte Vašeg sistem administratora ukoliko želite da promenite lozinku. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zatvori Autofill = Autofill + +# externalsite +ExternalSiteSetup=Podesi link ka eksternom sajtu +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Modul eksterni sajt nije ispravno konfigurisan. +ExampleMyMenuEntry=Stavka iz mog menija + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Greška prilikom brisanja fajla %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Greška prilikom preuzimanja fajlova %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/sr_RS/products.lang b/htdocs/langs/sr_RS/products.lang index ce21333c0a3..c4a95e4900c 100644 --- a/htdocs/langs/sr_RS/products.lang +++ b/htdocs/langs/sr_RS/products.lang @@ -87,7 +87,7 @@ ErrorProductAlreadyExists=Proizvod sa referencom %s već postoji ErrorProductBadRefOrLabel=Pogrešna vrednost za referencu ili naziv. ErrorProductClone=Došlo je do greške prilikom dupliranja proizvoda ili usluge. ErrorPriceCantBeLowerThanMinPrice=Greška, cena ne može biti manja od minimalne. -Suppliers=Vendors +Suppliers=Dobavljači SupplierRef=Vendor SKU ShowProduct=Pokaži proizvod ShowService=Pokaži uslugu @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Da li ste sigurni da želite da obrišete ovu liniju pr ProductSpecial=Specijalno QtyMin=Min. purchase quantity PriceQtyMin=Price quantity min. -PriceQtyMinCurrency=Price (currency) for this qty. (no discount) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=VAT Rate (for this vendor/product) DiscountQtyMin=Discount for this qty. NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product @@ -261,7 +262,7 @@ Quarter1=1. Kvartal Quarter2=2. Kvartal Quarter3=3. Kvartal Quarter4=4. Kvartal -BarCodePrintsheet=Štampanje bar koda +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. NumberOfStickers=Broj nalepnica za štampanje na strani PrintsheetForOneBarCode=Odštampaj više nalepnica za jedan bar code @@ -346,7 +347,7 @@ UseProductFournDesc=Add a feature to define the product description defined by t ProductSupplierDescription=Vendor description for the product UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) PackagingForThisProduct=Packaging -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield diff --git a/htdocs/langs/sr_RS/propal.lang b/htdocs/langs/sr_RS/propal.lang index a08a560feef..3e8c292ffbe 100644 --- a/htdocs/langs/sr_RS/propal.lang +++ b/htdocs/langs/sr_RS/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Nema draft ponuda CopyPropalFrom=Dupliraj postojeću ponudu CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Default trajanje validnosti komercijalne ponude (u danima) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Čekanje dostupnosti SetAvailability=Postavi trajanje čekanja dostupnosti AfterOrder=posle narudžbine OtherProposals=Druge ponude + ##### Availability ##### AvailabilityTypeAV_NOW=Odmah AvailabilityTypeAV_1W=1 nedelja AvailabilityTypeAV_2W=2 nedelje AvailabilityTypeAV_3W=3 nedelje AvailabilityTypeAV_1M=1 mesec -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Agent koji prati ponudu TypeContact_propal_external_BILLING=Kontakt sa računa klijenta TypeContact_propal_external_CUSTOMER=Kontakt klijenta koji prati ponudu TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Default model prilikom zatvaranja komercijalne ponude (nenaplaćen) DefaultModelPropalCreate=Kreacija default modela DefaultModelPropalToBill=Default model prilikom zatvaranja komercijalne ponude (za naplatu) -DefaultModelPropalClosed=Default model prilikom zatvaranja komercijalne ponude (nenaplaćen) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odbij +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Pismeno odobrenje, pečat kompanije, datum i potpis ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/sr_RS/recruitment.lang b/htdocs/langs/sr_RS/recruitment.lang index 4a53daa7854..ec8566e86c9 100644 --- a/htdocs/langs/sr_RS/recruitment.lang +++ b/htdocs/langs/sr_RS/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Plata +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/sr_RS/salaries.lang b/htdocs/langs/sr_RS/salaries.lang index eec614e40f7..6bcf9e4fb2a 100644 --- a/htdocs/langs/sr_RS/salaries.lang +++ b/htdocs/langs/sr_RS/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto koji se koristi za korisnike trećih lica -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Plata @@ -24,3 +24,4 @@ SalariesStatistics=Salary statistics SalariesAndPayments=Salaries and payments ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/sr_RS/stocks.lang b/htdocs/langs/sr_RS/stocks.lang index eabbd6ab419..dbb156b3cd1 100644 --- a/htdocs/langs/sr_RS/stocks.lang +++ b/htdocs/langs/sr_RS/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=Ponovo Otvoreno ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Započeto ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/sr_RS/suppliers.lang b/htdocs/langs/sr_RS/suppliers.lang index 60fd4cbf67f..60f0f2f8271 100644 --- a/htdocs/langs/sr_RS/suppliers.lang +++ b/htdocs/langs/sr_RS/suppliers.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - vendors -Suppliers=Vendors +Suppliers=Dobavljači SuppliersInvoice=Vendor invoice SupplierInvoices=Vendor invoices ShowSupplierInvoice=Show Vendor Invoice @@ -47,3 +47,10 @@ BuyerName=Buyer name AllProductServicePrices=All product / service prices AllProductReferencesOfSupplier=All references of vendor BuyingPriceNumShort=Vendor prices +RepeatableSupplierInvoice=Template supplier invoice +RepeatableSupplierInvoices=Template supplier invoices +RepeatableSupplierInvoicesList=Template supplier invoices +RecurringSupplierInvoices=Recurring supplier invoices +ToCreateAPredefinedSupplierInvoice=In order to create template supplier invoice, you must create a standard invoice, then, without validating it, click on the "%s" button. +GeneratedFromSupplierTemplate=Generated from supplier invoice template %s +SupplierInvoiceGeneratedFromTemplate=Supplier invoice %s Generated from supplier invoice template %s diff --git a/htdocs/langs/sr_RS/ticket.lang b/htdocs/langs/sr_RS/ticket.lang index 89f95857c97..0292490480b 100644 --- a/htdocs/langs/sr_RS/ticket.lang +++ b/htdocs/langs/sr_RS/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Kreiraj intervenciju -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Potpis -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Novi korisnik NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/sr_RS/users.lang b/htdocs/langs/sr_RS/users.lang index a80d70f05ad..f41e2ad1fb1 100644 --- a/htdocs/langs/sr_RS/users.lang +++ b/htdocs/langs/sr_RS/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Izbaci iz grupe PasswordChangedAndSentTo=Lozinka izmenjena i poslata na %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Zahtev za izmenu lozinke za %s je poslat %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Korisnici & Grupe @@ -68,7 +68,6 @@ CreateDolibarrLogin=Kreiraj korisnika CreateDolibarrThirdParty=Kreiraj subjekat LoginAccountDisableInDolibarr=Nalog je deaktiviran u Dolibarr-u UsePersonalValue=Upotrebi lićnu vrednost -InternalUser=Interni korsnik ExportDataset_user_1=Users and their properties DomainUser=Korisnik domena %s Reactivate=Reaktiviraj @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index 3baf9fff011..02599ca892e 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -4,20 +4,20 @@ Accounting=Redovisning ACCOUNTING_EXPORT_SEPARATORCSV=Kolumnseparator för exportfil ACCOUNTING_EXPORT_DATE=Datumformat för exportfil ACCOUNTING_EXPORT_PIECE=Export the number of piece -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Exportera titel -ACCOUNTING_EXPORT_AMOUNT=Exportera belopp +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportera med globalt konto +ACCOUNTING_EXPORT_LABEL=Exporttitel +ACCOUNTING_EXPORT_AMOUNT=Exportbelopp ACCOUNTING_EXPORT_DEVISE=Exportera valuta -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_FORMAT=Select the format for the file +Selectformat=Välj filformat +ACCOUNTING_EXPORT_FORMAT=Välj filformat ACCOUNTING_EXPORT_ENDLINE=Välj vagnens returtyp -ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name -ThisService=Tjänsten -ThisProduct=Den här produkten -DefaultForService=Standard för service -DefaultForProduct=Standard för produkter -ProductForThisThirdparty=Produkt för denna tredje part -ServiceForThisThirdparty=Service för denna tredje part +ACCOUNTING_EXPORT_PREFIX_SPEC=Ange prefix för filnamnet +ThisService=Denna tjänst +ThisProduct=Denna produkt +DefaultForService=Standard för tjänst +DefaultForProduct=Standard för produkt +ProductForThisThirdparty=Produkt för denna tredjepart +ServiceForThisThirdparty=Tjänst för denna tredjepart CantSuggest=Kan inte föreslå AccountancySetupDoneFromAccountancyMenu=De flesta inställningarna för bokföringen görs från menyn %s ConfigAccountingExpert=Konfiguration av modulredovisningen (dubbel inmatning) @@ -37,8 +37,8 @@ OtherInfo=Övrig information DeleteCptCategory=Ta bort redovisningskontot från gruppen ConfirmDeleteCptCategory=Är du säker på att du vill ta bort det här kontot konto från kontokoncernen? JournalizationInLedgerStatus=Status för bokföring -AlreadyInGeneralLedger=Already transferred to accounting journals and ledger -NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger +AlreadyInGeneralLedger=Redan överfört till redovisningsjournaler och reskontra +NotYetInGeneralLedger=Ännu inte överfört till redovisningsjournaler och reskontra GroupIsEmptyCheckSetup=Gruppen är tom, kontrollera inställningen av den personliga redovisningsgruppen DetailByAccount=Visa detaljer efter konto AccountWithNonZeroValues=Konton med icke-nollvärden @@ -48,8 +48,9 @@ CountriesNotInEEC=Länder inte i EEG CountriesInEECExceptMe=Länder i EEG förutom %s CountriesExceptMe=Alla länder utom %s AccountantFiles=Exportera källdokument -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=Med det här verktyget kan du söka och exportera källhändelserna som används för att skapa din bokföring.
    Den exporterade ZIP-filen kommer att innehålla listor över begärda objekt i CSV, såväl som deras bifogade filer i originalformat (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=För att exportera verifikationer, använd menyn %s - %s +ExportAccountingProjectHelp=Ange ett projekt om du behöver en redovisningsrapport endast för ett specifikt projekt. Kostnadsredovisningar och lånebetalningar ingår inte i projektredovisningar. VueByAccountAccounting=Visa baserat på redovisningskonto VueBySubAccountAccounting=Visa efter redovisning av underkonto @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Huvudkonton för leverantörer som inte defini MainAccountForUsersNotDefined=Huvudkontonskonto för användare som inte definierats i installationen MainAccountForVatPaymentNotDefined=Huvudkonton för momsbetalning som inte definieras i inställningen MainAccountForSubscriptionPaymentNotDefined=Huvudkonton för abonnemangsbetalning som inte definieras i inställningen +UserAccountNotDefined=Redovisningskonto för användare är inte definierat i konfigurationen AccountancyArea=Redovisningsområde AccountancyAreaDescIntro=Användningen av bokföringsmodulen görs i flera steg: AccountancyAreaDescActionOnce=Följande åtgärder utförs vanligtvis en gång bara, eller en gång per år ... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting +AccountancyAreaDescActionOnceBis=Nästa steg bör göras för att spara tid i framtiden genom att föreslå att du automatiskt använder rätt standardkonto när du överför data i bokföring AccountancyAreaDescActionFreq=Följande åtgärder utförs vanligtvis varje månad, vecka eller dag för mycket stora företag ... -AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEG %s: Kontrollera innehållet i din tidskriftslista från menyn %s AccountancyAreaDescChartModel=STEG %s: Kontrollera att det finns en kontodiagrammodell eller skapa en från menyn %s AccountancyAreaDescChart=STEG %s: Välj och | eller slutför ditt kontoplan från meny %s AccountancyAreaDescVat=STEG %s: Definiera redovisningskonton för varje moms. För detta, använd menyinmatningen %s. AccountancyAreaDescDefault=STEG %s: Definiera standardbokföringskonton. För detta, använd menyinmatningen %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEG %s: Definiera standardkonton för varje typ av utgiftsrapport. Använd menyposten %s för detta. AccountancyAreaDescSal=STEG %s: Definiera standardbokföringskonto för betalning av löner. För detta, använd menyinmatningen %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEG %s: Definiera standardkonton för skatter (särskilda utgifter). För detta, använd menyposten %s. AccountancyAreaDescDonation=STEG %s: Definiera standardbokföringskonto för donation. För detta, använd menyinmatningen %s. AccountancyAreaDescSubscription=STEG %s: Definiera standardbokföringskonto för medlemsabonnemang. För detta, använd menyinmatningen %s. AccountancyAreaDescMisc=STEG %s: Ange obligatoriskt standardkonto och standardbokföringskonto för diverse transaktioner. För detta, använd menyinmatningen %s. AccountancyAreaDescLoan=STEG %s: Definiera standardbokföringskonto för lån. För detta, använd menyinmatningen %s. AccountancyAreaDescBank=STEG %s: Definiera bokföringskonto och kontokod för varje bank- och bokföringskonto. För detta, använd menyinmatningen %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEG %s: Definiera bokföringskonton på dina produkter/tjänster. För detta, använd menyposten %s. AccountancyAreaDescBind=STEG %s: Kontrollera bindningen mellan befintliga %s linjer och bokföringskonto är klar så att applikationen kommer att kunna bokföra transaktioner i huvudboken med ett klick. Korrigera saknade bindningar. För detta, använd menyinmatningen %s. AccountancyAreaDescWriteRecords=STEG %s: Skriv transaktioner i huvudboken. För detta, gå till menyn %s , och klicka på knappen %s . @@ -112,7 +114,7 @@ MenuAccountancyClosure=Stängning MenuAccountancyValidationMovements=Validera rörelser ProductsBinding=Produkter konton TransferInAccounting=Överföring i bokföring -RegistrationInAccounting=Recording in accounting +RegistrationInAccounting=Bokföring i bokföring Binding=Förbindande till konton CustomersVentilation=Kundfaktura förbindande SuppliersVentilation=Leverantörsfaktura förbindande @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Utläggsrapport förbindande CreateMvts=Skapa ny transaktion UpdateMvts=Ändring av en transaktion ValidTransaction=Bekräfta transaktionen -WriteBookKeeping=Record transactions in accounting +WriteBookKeeping=Registrera transaktioner i bokföringen Bookkeeping=Huvudbok BookkeepingSubAccount=Underledger AccountBalance=Kontobalans @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Inaktivera direktinspelning av transaktion i bankkonto ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Aktivera utkastexport på loggbok ACCOUNTANCY_COMBO_FOR_AUX=Aktivera kombinationslista för dotterbolagskonto (kan vara långsam om du har många tredje parter, bryter förmågan att söka efter en del av värdet) ACCOUNTING_DATE_START_BINDING=Definiera ett datum för att börja binda och överföra i bokföring. Under detta datum överförs inte transaktionerna till bokföring. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Vid bokföringsöverföring, välj periodvisning som standard +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Vid bokföringsöverföring, vilken period är vald som standard -ACCOUNTING_SELL_JOURNAL=Försäljningsloggbok -ACCOUNTING_PURCHASE_JOURNAL=Inköpsloggbok -ACCOUNTING_MISCELLANEOUS_JOURNAL=Logg för diverse operationer +ACCOUNTING_SELL_JOURNAL=Försäljningsjournal (försäljning och returer) +ACCOUNTING_PURCHASE_JOURNAL=Inköpsjournal (köp och returer) +ACCOUNTING_BANK_JOURNAL=Kassajournal (kvitton och utbetalningar) ACCOUNTING_EXPENSEREPORT_JOURNAL=Utgiftsloggbok -ACCOUNTING_SOCIAL_JOURNAL=Socialloggbok +ACCOUNTING_MISCELLANEOUS_JOURNAL=Allmän journal ACCOUNTING_HAS_NEW_JOURNAL=Har ny loggbok +ACCOUNTING_INVENTORY_JOURNAL=Inventeringsjournal +ACCOUNTING_SOCIAL_JOURNAL=Socialloggbok ACCOUNTING_RESULT_PROFIT=Resultaträkningskonto (vinst) ACCOUNTING_RESULT_LOSS=Resultaträkningskonto (förlust) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Loggbok för stängning -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Redovisningskonto övergångsöverföring +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Konto (från kontoplanen) som ska användas som konto för övergångsbanköverföringar TransitionalAccount=Övergångsbanköverföringskonto -ACCOUNTING_ACCOUNT_SUSPENSE=Redovisningskonto för väntan -DONATION_ACCOUNTINGACCOUNT=Redovisningskonto för att registrera donationer -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Redovisningskonto för att registrera prenumerationer +ACCOUNTING_ACCOUNT_SUSPENSE=Konto (från kontoplanen) som ska användas som konto för icke allokerade medel antingen mottagna eller betalda, dvs medel i "väntar" +DONATION_ACCOUNTINGACCOUNT=Konto (från kontoplanen) som ska användas för att registrera donationer (donationsmodul) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto (från kontoplanen) som ska användas för att registrera medlemskapsabonnemang (Medlemsmodul - om medlemskap registrerats utan faktura) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Redovisningskonto som standard för att registrera kundinsättning -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto (från kontoplanen) som ska användas som standardkonto för att registrera kundinsättning +UseAuxiliaryAccountOnCustomerDeposit=Lagra kundkonto som individuellt konto i huvudboken för rader med förskottsbetalningar (om det är inaktiverat förblir individuellt konto för förskottsrader tomt) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (från kontoplanen) som ska användas som standard +UseAuxiliaryAccountOnSupplierDeposit=Lagra leverantörskonto som individuellt konto i huvudboken för rader med förskottsbetalningar (om det är inaktiverat förblir individuellt konto för förskottsrader tomt) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Redovisningskonto som standard för de köpta produkterna (används om det inte definieras i produktbladet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Redovisningskonto som standard för de köpta produkterna i EEG (används om det inte definieras i produktbladet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Redovisningskonto som standard för de köpta produkterna och importeras från EEG (används om det inte definieras i produktbladet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Bokföringskonto som standard för de sålda produkterna (används om de inte anges i produktbladet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Redovisningskonto som standard för produkter som säljs i EEG (används om de inte definieras i produktbladet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Redovisningskonto som standard för de produkter som säljs och exporteras från EEG (används om det inte definieras i produktbladet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för produkter köpta inom samma land (används om det inte definieras i produktbladet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de produkter som köpts från EEC till ett annat EEC-land (används om det inte anges i produktbladet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de produkter som köps och importeras från något annat främmande land (används om det inte definieras i produktbladet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de sålda produkterna (används om det inte definieras i produktbladet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för produkter som säljs från EEC till ett annat EEC-land (används om det inte anges i produktbladet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de produkter som säljs och exporteras till något annat främmande land (används om det inte anges i produktbladet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Bokföringskonto som standard för de köpta tjänsterna (används om det inte anges i servicebladet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Redovisningskonto som standard för de köpta tjänsterna i EEG (används om det inte definieras i tjänstebladet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Redovisningskonto som standard för de köpta tjänsterna och importeras från EEG (används om det inte definieras i tjänstebladet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Redovisningskonto som standard för de sålda tjänsterna (används om de inte anges i servicebladet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Redovisningskonto som standard för tjänster som säljs i EEG (används om de inte definieras i tjänstebladet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Redovisningskonto som standard för de tjänster som säljs och exporteras från EEG (används om de inte definieras i tjänstebladet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för tjänster köpta inom samma land (används om det inte definieras i servicebladet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för tjänster som köpts från EEC till ett annat EEC-land (används om det inte anges i servicebladet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de tjänster som köpts och importerats från ett annat främmande land (används om det inte anges i servicebladet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de sålda tjänsterna (används om det inte definieras i servicebladet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för tjänster som säljs från EEC till ett annat EEC-land (används om det inte anges i servicebladet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för de tjänster som säljs och exporteras till något annat främmande land (används om det inte anges i servicebladet) Doctype=Typ av dokument Docdate=Datum @@ -211,7 +217,7 @@ Codejournal=Loggbok JournalLabel=Loggboksetikett NumPiece=Stycke nummer TransactionNumShort=Num. transaktion -AccountingCategory=Anpassad grupp +AccountingCategory=Anpassad grupp av konton GroupByAccountAccounting=Gruppera efter huvudbokskonto GroupBySubAccountAccounting=Gruppera efter underkontokonto AccountingAccountGroupsDesc=Här kan du definiera vissa grupper av bokföringskonto. De kommer att användas för personliga redovisningsrapporter. @@ -220,12 +226,12 @@ ByPredefinedAccountGroups=Av fördefinierade grupper ByPersonalizedAccountGroups=Av personliga grupper ByYear=Per år NotMatch=Inte inställd -DeleteMvt=Delete some lines from accounting +DeleteMvt=Ta bort några rader från bokföringen DelMonth=Månad att ta bort DelYear=År att radera DelJournal=Loggbok att radera -ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) +ConfirmDeleteMvt=Detta kommer att radera alla rader i bokföring för året/månaden och/eller för en specifik journal (minst ett kriterium krävs). Du måste återanvända funktionen '%s' för att få tillbaka den raderade posten i redovisningen. +ConfirmDeleteMvtPartial=Detta kommer att radera transaktionen från bokföringen (alla rader relaterade till samma transaktion kommer att raderas) FinanceJournal=Finansloggbok ExpenseReportsJournal=Utläggsrapporter loggbok DescFinanceJournal=Finansbokföring inklusive alla typer av betalningar via bankkonto @@ -247,9 +253,9 @@ DescThirdPartyReport=Här kan du se listan över tredje partskunder och säljare ListAccounts=Förteckning över redovisningskonton UnknownAccountForThirdparty=Okänt tredje part konto. Vi använder %s UnknownAccountForThirdpartyBlocking=Okänt tredje part konto. Blockeringsfel -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or third party or user unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Underreskontro inte definierat eller tredje part eller användare okänd. Vi kommer att använda %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Tredjeparts okänd och underleverantör definieras inte på betalningen. Vi kommer att hålla underskottets kontovärde tomt. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledger account not defined or third party or user unknown. Blocking error. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Underreskontro inte definierat eller tredje part eller användare okänd. Blockeringsfel. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Okänt tredje part konto och väntande konto inte definierat. Blockeringsfel PaymentsNotLinkedToProduct=Betalning som inte är kopplad till någon produkt / tjänst OpeningBalance=Öppningsbalans @@ -265,13 +271,13 @@ Reconcilable=Förenlig TotalVente=Total turnover before tax TotalMarge=Total försäljning marginal -DescVentilCustomer=Här kan du se listan över kundfakturor som är bundna (eller inte) till ett konto för produktkonton -DescVentilMore=I de flesta fall, om du använder fördefinierade produkter eller tjänster och du ställer in kontonummeret på produkt- / servicekortet, kommer programmet att kunna göra allt förbindande mellan dina fakturarader och kontot för ditt kontoplan, bara i ett klick med knappen "%s" . Om kontot inte anges på produkt- / servicekort eller om du fortfarande har några rader som inte är kopplade till ett konto måste du göra en manuell förbindning från menyn " %s ". -DescVentilDoneCustomer=Konsultera här listan över raderna av fakturakunder och deras konto för produktkonton -DescVentilTodoCustomer=Binda fakturulinjer som inte redan är bundna med ett konto för produktkonton -ChangeAccount=Ändra produkt- / serviceredovisningskonto för utvalda linjer med följande bokföringskonto: +DescVentilCustomer=Se här listan över kundfakturarader bundna (eller inte) till ett produktkonto från kontoplan +DescVentilMore=I de flesta fall, om du använder fördefinierade produkter eller tjänster och du ställer in kontot (från kontoplan) på produkt-/tjänstkortet, kommer applikationen att kunna göra all bindning mellan dina fakturarader och redovisningskontot för ditt diagram av konton, bara med ett klick med knappen "%s" . Om kontot inte var inställt på produkt-/tjänstkort eller om du fortfarande har några rader som inte är bundna till ett konto, måste du göra en manuell bindning från menyn " %s ". +DescVentilDoneCustomer=Se här listan över rader av fakturakunder och deras produktkonto från kontoplan +DescVentilTodoCustomer=Bind fakturarader som inte redan är bundna till ett produktkonto från kontoplan +ChangeAccount=Ändra produkt-/tjänstkonto (från kontoplan) för de valda raderna med följande konto: Vide=- -DescVentilSupplier=Se här listan över leverantörsfakturorader bundna eller ännu inte bundna till ett produktredovisningskonto (endast post som inte redan överförts i bokföring syns) +DescVentilSupplier=Se här listan över leverantörsfakturarader bundna eller ännu inte bundna till ett produktkonto från kontoplan (endast post som inte redan överförts i bokföringen är synlig) DescVentilDoneSupplier=Här kan du se listan över leverantörsfakturor och deras bokföringskonto DescVentilTodoExpenseReport=Förbinda utläggsrapportsrader som inte redan är bundna med ett konto i bokföringen DescVentilExpenseReport=Här kan du se listan över kostnadsrapporter som är bundna (eller inte) till ett avgiftsredovisningskonto @@ -279,31 +285,31 @@ DescVentilExpenseReportMore=Om du ställer in bokföringskonto på typ av kostna DescVentilDoneExpenseReport=Här kan du se listan över raderna för kostnadsrapporter och deras bokföringskonto Closure=Årlig nedläggning -DescClosure=Consult here the number of movements by month who are not yet validated & locked -OverviewOfMovementsNotValidated=Overview of movements not validated and locked -AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +DescClosure=Se här antalet rörelser per månad som ännu inte har validerats och låst +OverviewOfMovementsNotValidated=Översikt över rörelser som inte är validerade och låsta +AllMovementsWereRecordedAsValidated=Alla rörelser registrerades som validerade och låsta +NotAllMovementsCouldBeRecordedAsValidated=Alla rörelser kunde inte registreras som validerade och låsta +ValidateMovements=Validera och låsa rörelser... DescValidateMovements=Alla ändringar eller raderingar av skrift, bokstäver och raderingar är förbjudna. Alla bidrag till en övning måste valideras, annars är det inte möjligt att stänga ValidateHistory=Förbind automatiskt -AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +AutomaticBindingDone=Automatiska bindningar gjorda (%s) - Automatisk bindning är inte möjlig för vissa poster (%s) -ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort eller inaktivera det här kontoplanen eftersom det används +MvtNotCorrectlyBalanced=Rörelse inte korrekt balanserad. Debet = %s & kredit = %s Balancing=Balansering FicheVentilation=Förbindande kort GeneralLedgerIsWritten=Transaktioner skrivs i huvudboken GeneralLedgerSomeRecordWasNotRecorded=Några av transaktionerna kunde inte bokföras. Om det inte finns något annat felmeddelande beror det troligen på att de redan var bokförade. -NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Förteckning över produkter som inte är kopplade till något kontokonto +NoNewRecordSaved=Ingen mer post att överföra +ListOfProductsWithoutAccountingAccount=Lista över produkter som inte är bundna till något kontoplan ChangeBinding=Ändra bindningen Accounted=Redovisas i huvudbok -NotYetAccounted=Not yet transferred to accounting +NotYetAccounted=Ännu inte överfört till bokföring ShowTutorial=Visa handledning NotReconciled=Inte avstämd -WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view -AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +WarningRecordWithoutSubledgerAreExcluded=Varning, alla rader utan definierat underreskontrakonto filtreras och exkluderas från denna vy +AccountRemovedFromCurrentChartOfAccount=Redovisningskonto som inte finns i gällande kontoplan ## Admin BindingOptions=Bindande alternativ @@ -319,9 +325,10 @@ AccountingJournalType1=Övrig verksamhet AccountingJournalType2=Försäljning AccountingJournalType3=Inköp AccountingJournalType4=Bank -AccountingJournalType5=Utgiftsrapport +AccountingJournalType5=Räkningar AccountingJournalType8=Lager AccountingJournalType9=Har nya +GenerationOfAccountingEntries=Generering av bokföringsposter ErrorAccountingJournalIsAlreadyUse=Denna loggboken används redan AccountingAccountForSalesTaxAreDefinedInto=Obs! Bokföringskonto för försäljningsskatt definieras i menyn %s - %s NumberOfAccountancyEntries=Antal poster @@ -329,11 +336,13 @@ NumberOfAccountancyMovements=Antal rörelser ACCOUNTING_DISABLE_BINDING_ON_SALES=Inaktivera bindning och överföring av bokföring vid försäljning (kundfakturor kommer inte att beaktas vid redovisning) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Inaktivera bindning och överföring av bokföring vid köp (leverantörsfakturor kommer inte att beaktas vid redovisning) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Inaktivera bindning och överföring i bokföring på kostnadsrapporter (kostnadsrapporter kommer inte att beaktas vid redovisning) +ACCOUNTING_ENABLE_LETTERING=Aktivera bokstäverfunktionen i bokföringen ## Export -NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) -DateValidationAndLock=Date validation and lock +NotExportLettering=Exportera inte bokstäverna när filen genereras +NotifiedExportDate=Flagga exporterade rader som exporterade (för att ändra en rad måste du radera hela transaktionen och överföra den till bokföringen igen) +NotifiedValidationDate=Validera och lås de exporterade posterna (samma effekt som "%s"-funktionen, modifiering och radering av raderna kommer DEFINITIVT inte att vara möjligt) +DateValidationAndLock=Datumvalidering och lås ConfirmExportFile=Bekräftelse på generering av bokföringsexportfilen? ExportDraftJournal=Exportera utkast till loggbok Modelcsv=Modell av export @@ -342,11 +351,11 @@ Modelcsv_normal=Klassisk export Modelcsv_CEGID=Exportera till CEGID Expert Comptabilité Modelcsv_COALA=Exportera till Sage Coala Modelcsv_bob50=Export för Sage BOB 50 -Modelcsv_ciel=Export for Sage50, Ciel Compta or Compta Evo. (Format XIMPORT) +Modelcsv_ciel=Exportera för Sage50, Ciel Compta eller Compta Evo. (Format XIMPORT) Modelcsv_quadratus=Exportera till Quadratus QuadraCompta Modelcsv_ebp=Exportera till EBP Modelcsv_cogilog=Exportera till Cogilog -Modelcsv_agiris=Export for Agiris Isacompta +Modelcsv_agiris=Export för Agiris Isacompta Modelcsv_LDCompta=Exportera för LD Compta (v9) (Test) Modelcsv_LDCompta10=Exportera för LD Compta (v10 och högre) Modelcsv_openconcerto=Exportera för OpenConcerto (Test) @@ -354,10 +363,10 @@ Modelcsv_configurable=Exportera CSV konfigurerbar Modelcsv_FEC=Exportera FEC Modelcsv_FEC2=Exportera FEC (med datumgenerering / omvänd dokument) Modelcsv_Sage50_Swiss=Export för Sage 50 Schweiz -Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta +Modelcsv_winfic=Exportera för Winfic - eWinfic - WinSis Compta Modelcsv_Gestinumv3=Exportera för Gestinum (v3) -Modelcsv_Gestinumv5=Export for Gestinum (v5) -Modelcsv_charlemagne=Export for Aplim Charlemagne +Modelcsv_Gestinumv5=Exportera för Gestinum (v5) +Modelcsv_charlemagne=Export för Aplim Charlemagne ChartofaccountsId=Diagram över konton Id ## Tools - Init accounting account on product / service @@ -390,27 +399,32 @@ SaleExport=Exportförsäljning SaleEEC=Försäljning i EEG SaleEECWithVAT=Försäljning i EEG med moms som inte är null, så vi antar att detta INTE är en försäljning inom gemenskapen och det föreslagna kontot är standardproduktkontot. SaleEECWithoutVATNumber=Försäljning i EEG utan moms men tredjeparts moms-ID definieras inte. Vi återgår till produktkontot för standardförsäljning. Du kan fastställa tredjeparts moms-ID eller produktkonto om det behövs. -ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. -ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. +ForbiddenTransactionAlreadyExported=Förbjudet: Transaktionen har validerats och/eller exporterats. +ForbiddenTransactionAlreadyValidated=Förbjudet: Transaktionen har validerats. ## Dictionary Range=Räckvidd av bokföringskonto Calculated=Beräknad Formula=Formel ## Reconcile -Unlettering=Unreconcile -AccountancyNoLetteringModified=No reconcile modified -AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified -AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified -AccountancyNoUnletteringModified=No unreconcile modified -AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified -AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified +LetteringAuto=Avstämning auto +LetteringManual=Avstämning manuell +Unlettering=Ta bort avstämning +UnletteringAuto=Ta bort automatisk avstämning +UnletteringManual=Tabort manuell avstämning +AccountancyNoLetteringModified=Ingen avstämning modifierad +AccountancyOneLetteringModifiedSuccessfully=En avstämning har modifierats +AccountancyLetteringModifiedSuccessfully=%s avstämning har modifierats +AccountancyNoUnletteringModified=Ingen avstämning har modifierats +AccountancyOneUnletteringModifiedSuccessfully=En avstämning har modifierats +AccountancyUnletteringModifiedSuccessfully=%s unreconcile har modifierats ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? -ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation -ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? +ConfirmMassUnletteringAuto=Bekräftelse av automatisk avstämning av bulk +ConfirmMassUnletteringManual=Bekräftelse av manuell avstämning av bulk +ConfirmMassUnletteringQuestion=Är du säker på att du vill ta bort de %s valda posterna? +ConfirmMassDeleteBookkeepingWriting=Massraderingsbekräftelse +ConfirmMassDeleteBookkeepingWritingQuestion=Detta kommer att radera transaktionen från bokföringen (alla rader relaterade till samma transaktion kommer att raderas) Är du säker på att du vill ta bort den eller de valda posterna %s? ## Error SomeMandatoryStepsOfSetupWereNotDone=Några obligatoriska steg för installationen var inte färdiga, var god fyll i dem @@ -423,10 +437,11 @@ NoJournalDefined=Ingen loggbok definierad Binded=Förbundna rader ToBind=Rader att förbinda UseMenuToSetBindindManualy=Linjer som ännu inte är bundna, använd menyn %s för att göra bindningen manuellt -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices -AccountancyErrorMismatchLetterCode=Mismatch in reconcile code -AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 -AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Tyvärr är den här modulen inte kompatibel med den experimentella funktionen i situationsfakturor +AccountancyErrorMismatchLetterCode=Missmatch i avstämningskod +AccountancyErrorMismatchBalanceAmount=Saldot (%s) är inte lika med 0 +AccountancyErrorLetteringBookkeeping=Fel har uppstått angående transaktionerna: %s +ErrorAccountNumberAlreadyExists=Kontonumret %s finns redan ## Import ImportAccountingEntries=Redovisningsposter @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Flervalskod (Idevise) DateExport=Datum export WarningReportNotReliable=Varning, den här rapporten är inte baserad på huvudboken-modulen, så den innehåller inte transaktioner modifierad manuellt i huvudboken. Om din bokföring är uppdaterad är bokföringsvisningen mer exakt. ExpenseReportJournal=Kostnadsrapportsloggbok -InventoryJournal=Inventarieloggbok NAccounts=%s-konton diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 8125bfcd83e..aab53f3f92e 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin -BoldRefAndPeriodOnPDF=Print reference and period of product item in PDF -BoldLabelOnPDF=Print label of product item in Bold in PDF +BoldRefAndPeriodOnPDF=Skriv ut referens och period för produkt i PDF +BoldLabelOnPDF=Skriv ut etiketter för produkt i fetstil i PDF Foundation=Stiftelse Version=Version Publisher=Utgivare @@ -12,1393 +12,1408 @@ VersionDevelopment=Utveckling VersionUnknown=Okänd VersionRecommanded=Rekommenderad FileCheck=Integritetskontroll av filer -FileCheckDesc=Med det här verktyget kan du kontrollera filens integritet och inställningen av din ansökan, jämföra varje fil med den officiella. Värdet på vissa inställningskonstanter kan också kontrolleras. Du kan använda det här verktyget för att avgöra om några filer har ändrats (t.ex. av en hackare). +FileCheckDesc=Med det här verktyget kan du kontrollera filintegritet och inställningar i din applikation, och jämföra varje fil med de officiella. Värdet på vissa inställningskonstanter kan också kontrolleras. Du kan använda det här verktyget för att avgöra om några filer har ändrats (t.ex. av en hackare). FileIntegrityIsStrictlyConformedWithReference=Filens integritet överensstämmer strikt med referensen. -FileIntegrityIsOkButFilesWereAdded=Filens integritetskontroll har passerat, men vissa nya filer har lagts till. -FileIntegritySomeFilesWereRemovedOrModified=Kontroll av filer integritet har misslyckats. Vissa filer har ändrats, tagits bort eller lagts till. +FileIntegrityIsOkButFilesWereAdded=Filens integritetskontroll har klarats, men vissa nya filer har lagts till. +FileIntegritySomeFilesWereRemovedOrModified=Kontroll av filintegritet har misslyckats. Vissa filer har ändrats, tagits bort eller lagts till. GlobalChecksum=Global kontrollsumma MakeIntegrityAnalysisFrom=Gör integritetsanalys av applikationsfiler från LocalSignature=Inbäddad lokal signatur (mindre tillförlitlig) -RemoteSignature=Fjärrlägsen signatur (mer tillförlitlig) +RemoteSignature=Fjärrsignatur (mer tillförlitlig) FilesMissing=Saknade filer FilesUpdated=Uppdaterade filer FilesModified=Ändrade filer FilesAdded=Tillagda filer -FileCheckDolibarr=Kontrollera integriteten av applikationsfiler +FileCheckDolibarr=Kontrollera integriteten på filer AvailableOnlyOnPackagedVersions=Den lokala filen för integritetskontroll är endast tillgänglig när programmet är installerat från ett officiellt paket -XmlNotFound=Xml Integritetsfilen för ansökan hittades inte -SessionId=Session ID -SessionSaveHandler=Handler för att spara sessioner -SessionSavePath=Stig för sessionslagring -PurgeSessions=Utrensning av sessioner -ConfirmPurgeSessions=Vill du verkligen tömma alla sessioner? Detta kommer logga ut alla användare (förutom dig själv). -NoSessionListWithThisHandler=Spara session handler konfigurerad i ditt PHP tillåter inte att lista alla körsessioner. +XmlNotFound=Xml integritetsfilen för applikationen hittades inte +SessionId=Sessions ID +SessionSaveHandler=Hanterare för att spara sessioner +SessionSavePath=Sökväg för sessionslagring +PurgeSessions=Rensning av sessioner +ConfirmPurgeSessions=Vill du verkligen rensa alla sessioner? Detta kommer logga ut alla användare (utom dig själv). +NoSessionListWithThisHandler=Hanteraren för sparade sessioner konfigurerad i PHP tillåter inte att lista alla körsessioner. LockNewSessions=Lås nya förbindelser ConfirmLockNewSessions=Är du säker på att du vill begränsa alla nya Dolibarr-anslutningar till dig själv? Endast användare %s kommer att kunna ansluta efter det. UnlockNewSessions=Ta bort lås för anslutning YourSession=Din session Sessions=Användarsessioner -WebUserGroup=Webbserver användare / grupp -PermissionsOnFiles=Behörigheter för filer -PermissionsOnFilesInWebRoot=Behörigheter för filer i webbrotkatalogen -PermissionsOnFile=Behörigheter på fil %s -NoSessionFound=Din PHP-konfiguration verkar inte tillåta att du registrerar aktiva sessioner. Den katalog som används för att spara sessioner ( %s ) kan skyddas (till exempel av operatörsbehörigheter eller genom PHP-direktivet open_basedir). -DBStoringCharset=Databas charset för att lagra data -DBSortingCharset=Databas charset att sortera data +WebUserGroup=Webbserver användare/grupp +PermissionsOnFiles=Rättigheter på filer +PermissionsOnFilesInWebRoot=Rättigheter på filer i root-katalogen +PermissionsOnFile=Rättigheter på filen %s +NoSessionFound=Din PHP-konfiguration verkar inte tillåta att du listar aktiva sessioner. Den katalog som används för att spara sessioner ( %s ) kan skyddas (till exempel via rättigheter eller genom PHP-direktivet open_basedir). +DBStoringCharset=Databasens teckenuppsättning för att lagra data +DBSortingCharset=Databasens teckenuppsättning för att sortera data HostCharset=Teckenuppsättning för värd -ClientCharset=Klientcharset +ClientCharset=Klientens teckenuppsättning ClientSortingCharset=Klientsamling -WarningModuleNotActive=Modul %s måste vara aktiverat -WarningOnlyPermissionOfActivatedModules=Endast behörigheter som rör aktiverad moduler visas här. Du kan aktivera andra moduler i Hem-> Inställningar-> moduler. -DolibarrSetup=Dolibarr installera eller uppgradera -InternalUser=Intern användare -ExternalUser=Extern användare +WarningModuleNotActive=Modulen %s måste vara aktiverad +WarningOnlyPermissionOfActivatedModules=Endast rättigheter som rör aktiverad moduler visas här. Du kan aktivera andra moduler i Hem-> Inställningar-> Moduler. +DolibarrSetup=Dolibarr installation eller uppgradering InternalUsers=Interna användare ExternalUsers=Externa användare UserInterface=Användargränssnitt GUISetup=Visa SetupArea=Inställning -UploadNewTemplate=Ladda upp ny mall (er) +UploadNewTemplate=Ladda upp mall FormToTestFileUploadForm=Formulär för att testa filuppladdning (enligt inställningar) -ModuleMustBeEnabled=Modulen / applikationen %s måste vara aktiverad -ModuleIsEnabled=Modulen / applikationen %s har aktiverats -IfModuleEnabled=Anm: ja effektivt endast om modul %s är aktiverat -RemoveLock=Ta bort / byt namn på filen %s om den existerar, för att tillåta användning av Update / Install-verktyget. -RestoreLock=Återställ fil %s , endast med läsbehörighet, för att inaktivera ytterligare användning av Update / Install-verktyget. -SecuritySetup=Säkerhets inställning +ModuleMustBeEnabled=Modulen/applikationen %s måste vara aktiverad +ModuleIsEnabled=Modulen/applikationen %s har aktiverats +IfModuleEnabled=Obs: ja är bara effektivt endast om modulen %s är aktiverad +RemoveLock=Ta bort/byt namn på filen %s om den existerar, för att tillåta användning av verktyget uppdatera/installera. +RestoreLock=Återställ filen %s med endast läsbehörighet för att inaktivera ytterligare användning av verktyget uppdatera/installera. +SecuritySetup=Säkerhetsinställning PHPSetup=PHP-inställning OSSetup=Inställning av operativsystem -SecurityFilesDesc=Definiera här alternativ relaterade till säkerhet om uppladdning av filer. -ErrorModuleRequirePHPVersion=Fel, kräver denna modul PHP version %s eller högre -ErrorModuleRequireDolibarrVersion=Fel, kräver denna modul Dolibarr version %s eller högre +SecurityFilesDesc=Ange alternativ relaterade till säkerhet rörande uppladdning av filer. +ErrorModuleRequirePHPVersion=Fel, denna modul kräver PHP-version %s eller högre +ErrorModuleRequireDolibarrVersion=Fel, denna modul kräver Dolibarr-version %s eller högre ErrorDecimalLargerThanAreForbidden=Fel, en precision högre än %s stöds inte. -DictionarySetup=Lexikon inställnings -Dictionary=Ordlista +DictionarySetup=Inställningar för ordlista +Dictionary=Ordlistor ErrorReservedTypeSystemSystemAuto=Värdena "system" och "systemauto" för typ är reserverade. Du kan använda "user" som värde för att lägga till en egen post. ErrorCodeCantContainZero=Kod får inte innehålla värdet 0 DisableJavascript=Inaktivera JavaScript och Ajax funktioner -DisableJavascriptNote=Obs! För test eller debug-syfte. För optimering för blinda eller textbläsare kan du föredra att använda inställningen på användarens profil -UseSearchToSelectCompanyTooltip=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant COMPANY_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. -UseSearchToSelectContactTooltip=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant CONTACT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. -DelaiedFullListToSelectCompany=Vänta tills en tangent trycks innan du laddar innehållet i kombinationslistan från tredje part.
    Detta kan öka prestanda om du har ett stort antal tredje parter, men det är mindre bekvämt. -DelaiedFullListToSelectContact=Vänta tills en tangent trycks ned innan du laddar innehållet i kontaktlistan.
    Detta kan öka prestandan om du har ett stort antal kontakter, men det är mindre bekvämt. +DisableJavascriptNote=Obs! För test eller debug-syfte. Optimering för synskadade eller textwebbläsare kan du göra via inställningen på användarens profil +UseSearchToSelectCompanyTooltip=Även om du har ett stort antal tredjeparter (> 100 000) kan du öka hastigheten genom att sätta konstant COMPANY_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. +UseSearchToSelectContactTooltip=Även om du har ett stort antal tredjeparter (> 100 000) kan du öka hastigheten genom att sätta konstant CONTACT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. +DelaiedFullListToSelectCompany=Vänta tills en tangent trycks ner innan du laddar innehållet i kombinationslistan från tredjepart.
    Detta kan öka prestanda om du har ett stort antal tredje parter, men det är mindre bekvämt. +DelaiedFullListToSelectContact=Vänta tills en tangent trycks ner innan du laddar innehållet i kontaktlistan.
    Detta kan öka prestandan om du har ett stort antal kontakter, men det är mindre bekvämt. NumberOfKeyToSearch=Antal tecken som ska utlösa sökning: %s NumberOfBytes=Antal byte SearchString=Söksträng -NotAvailableWhenAjaxDisabled=Inte tillgänglig när Ajax funktionshindrade -AllowToSelectProjectFromOtherCompany=På tredje parts dokument kan du välja ett projekt kopplat till en annan tredje part +NotAvailableWhenAjaxDisabled=Inte tillgänglig när Ajax är inaktiverad +AllowToSelectProjectFromOtherCompany=I tredjeparts dokument kan du välja ett projekt kopplat till en annan tredjepart TimesheetPreventAfterFollowingMonths=Förhindra tidsregistrering efter antal månader -JavascriptDisabled=JavaScript funktionshindrade -UsePreviewTabs=Använd förhandsgranska flikar +JavascriptDisabled=JavaScript inaktiverad +UsePreviewTabs=Använd flik för förhandsgranskning ShowPreview=Visa förhandsgranskning -ShowHideDetails=Visa-dölj detaljer -PreviewNotAvailable=Förhandsgranska inte tillgänglig -ThemeCurrentlyActive=Tema för tillfället -MySQLTimeZone=Timezone MySql (databas) +ShowHideDetails=Visa/dölj detaljer +PreviewNotAvailable=Förhandsgranskning inte tillgänglig +ThemeCurrentlyActive=Aktivt tema +MySQLTimeZone=Tidszon MySql (databas) TZHasNoEffect=Datum lagras och returneras av databaseserver som om de behölls som inlämnade strängar. Tidszonen har endast effekt när UNIX_TIMESTAMP-funktionen används (som inte ska användas av Dolibarr, så databasen TZ skulle inte ha någon effekt, även om den ändrats efter att data hade angetts). -Space=Space +Space=Mellanslag Table=Tabell Fields=Fält Index=Index Mask=Mask NextValue=Nästa värde NextValueForInvoices=Nästa värde (fakturor) -NextValueForCreditNotes=Nästa värde (kreditnotor) +NextValueForCreditNotes=Nästa värde (kreditfakturor) NextValueForDeposit=Nästa värde (förskottsbetalning) NextValueForReplacements=Nästa värde (ersättare) MustBeLowerThanPHPLimit=Obs: din PHP-konfiguration begränsar för närvarande den maximala filstorleken för uppladdning till %s %s, oavsett värdet på denna parameter -NoMaxSizeByPHPLimit=Obs: Ingen gräns som anges i din PHP konfiguration -MaxSizeForUploadedFiles=Maximala storleken för uppladdade filer (0 att förkasta varje uppladdning) -UseCaptchaCode=Använd grafisk kod (CAPTCHA) på inloggningssidan -AntiVirusCommand=Fullständiga sökvägen till antivirus kommandot -AntiVirusCommandExample=Exempel för ClamAv Daemon (kräver clamav-daemon): / usr / bin / clamdscan
    Exempel på ClamWin (väldigt långsamt): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe +NoMaxSizeByPHPLimit=Obs: Ingen gräns som anges i din PHP-konfiguration +MaxSizeForUploadedFiles=Maximala storleken för uppladdade filer (0 att inte tillåta uppladdning) +UseCaptchaCode=Använd grafisk kod (CAPTCHA) på inloggningssidan och vissa publika sidor +AntiVirusCommand=Fullständig sökväg till antivirus- kommando +AntiVirusCommandExample=Exempelvis för ClamAv Daemon (kräver clamav-daemon): /usr/bin/clamdscan
    Exempel för ClamWin (väldigt långsamt): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Fler parametrar på kommandoraden -AntiVirusParamExample=Exempel för ClamAv Daemon: --fdpass
    Exempel för ClamWin: --database = "C: \\ Program Files (x86) \\ ClamWin \\ lib" -ComptaSetup=Redovisning modul inställning -UserSetup=Användarens hantering inställning -MultiCurrencySetup=Multi-valuta inställning -MenuLimits=Gränser och noggrannhet -MenuIdParent=Överordnade menyn ID -DetailMenuIdParent=ID överordnade menyn (0 för en toppmenyn) -ParentID=Förälder-ID -DetailPosition=Sortera nummer att definiera menyposition +AntiVirusParamExample=Exempel för ClamAv Daemon: --fdpass
    Exempel för ClamWin: --database = "C:\\Program Files (x86)\\ClamWin\\lib" +ComptaSetup=Modulinställning bokföring +UserSetup=Användarhantering +MultiCurrencySetup=Inställning för flera valutor +MenuLimits=Begränsningar och noggrannhet +MenuIdParent=Överordnad meny-ID +DetailMenuIdParent=ID på överordnad meny (lämna tomt för en toppmeny) +ParentID=Överordnad-ID +DetailPosition=Sortera numeriskt för att ange menyposition AllMenus=Alla -NotConfigured=Modul/Applikation är inte konfigurerad +NotConfigured=Modul/applikation är inte konfigurerad Active=Aktiv -SetupShort=Inställning +SetupShort=Inställningar OtherOptions=Andra alternativ OtherSetup=Annan inställning -CurrentValueSeparatorDecimal=Decimaltecken +CurrentValueSeparatorDecimal=Decimalavgränsare CurrentValueSeparatorThousand=Tusentalsavgränsare Destination=Destination IdModule=Modul ID -IdPermissions=Behörighet ID +IdPermissions=Rättighets-ID LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Lokaliseringsparametrar -ClientHour=Kund tid (användare) +LocalisationDolibarrParameters=Lokalisering +ClientHour=Kundtid (användare) OSTZ=Server OS tidszon -PHPTZ=Tidszon PHP server -DaylingSavingTime=Sommartid (användare) -CurrentHour=PHP Tid (server) +PHPTZ=Tidszon PHP-server +DaylingSavingTime=Sommartid +CurrentHour=PHP-tid (server) CurrentSessionTimeOut=Aktuell session timeout -YouCanEditPHPTZ=Om du vill ställa in en annan PHP-tidszon (krävs inte) kan du försöka lägga till en .htaccess-fil med en rad som denna "SetEnv TZ Europe / Paris" -HoursOnThisPageAreOnServerTZ=Varning, i motsats till andra skärmar, är timmarna på den här sidan inte i din lokala tidszon, utan i tidsserveren på servern. +YouCanEditPHPTZ=För att ange en annan PHP-tidszon (krävs inte) kan du försöka lägga till en .htaccess-fil med en rad som denna "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Varning, i motsats till andra skärmar, är tiden på den här sidan inte i din lokala tidszon, utan i tidsserveren på servern. Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max. antal rader för widgets -AllWidgetsWereEnabled=Alla tillgängliga widgets är aktiverade -PositionByDefault=Standard för +Boxes=Widgetar +MaxNbOfLinesForBoxes=Max antal rader för widgetar +AllWidgetsWereEnabled=Alla tillgängliga widgetar är aktiverade +PositionByDefault=Standardsortering Position=Position -MenusDesc=Menyfunktioner ställer in innehållet i de två menyerna (horisontellt och vertikalt). -MenusEditorDesc=Menyredigeraren låter dig definiera egna menyposter. Använd den försiktigt för att undvika instabilitet och permanent otillgängliga menyposter.
    Vissa moduler lägger till menyposter (i menyn Alla mestadels). Om du av misstag tar bort några av dessa poster kan du återställa dem genom att inaktivera och återaktivera modulen. +MenusDesc=Menyhanterare ställer in innehållet i de två menyerna (horisontellt och vertikalt). +MenusEditorDesc=Menyeditorn låter dig ange egna menyposter. Använd den med försiktighet för att undvika instabilitet och permanent otillgängliga menyposter.
    Vissa moduler lägger till menyposter (i menyn Alla mestadels). Om du av misstag tar bort några av dessa poster kan du återställa dem genom att inaktivera och återaktivera modulen. MenuForUsers=Meny för användare -LangFile=Fil. Lang -Language_en_US_es_MX_etc=Språk (en_US, es_MX, ...) +LangFile=.lang-fil +Language_en_US_es_MX_etc=Språk (sv_SE, en_US, ...) System=System SystemInfo=Systeminformation -SystemToolsArea=Systemverktyg område +SystemToolsArea=Verktygsområde SystemToolsAreaDesc=Detta område ger administrationsfunktioner. Använd menyn för att välja önskad funktion. Purge=Rensa -PurgeAreaDesc=På den här sidan kan du radera alla filer som genereras eller lagras av Dolibarr (temporära filer eller alla filer i %s katalog). Att använda den här funktionen är normalt inte nödvändig. Den tillhandahålls som en lösning för användare vars Dolibarr är värd av en leverantör som inte erbjuder behörigheter för att radera filer som genereras av webbservern. +PurgeAreaDesc=På den här sidan kan du radera alla filer som genereras eller lagras av Dolibarr (temporära filer eller alla filer i %s katalog). Att använda den här funktionen är normalt inte nödvändigt. Den tillhandahålls som en lösning för användare vars värd är en leverantör som inte erbjuder rättigheter för att radera filer som genereras av webbservern. PurgeDeleteLogFile=Ta bort loggfiler, inklusive %s definierad för Syslog-modulen (ingen risk att förlora data) PurgeDeleteTemporaryFiles=Ta bort alla loggfiler och tillfälliga filer (ingen risk att förlora data). Parametern kan vara 'tempfilesold', 'logfiles' eller båda 'tempfilesold + logfiles'. Obs! Radering av tillfälliga filer görs endast om temp-katalogen skapades för mer än 24 timmar sedan. PurgeDeleteTemporaryFilesShort=Ta bort loggar och temporära filer (Ingen risk att förlora data) -PurgeDeleteAllFilesInDocumentsDir=Ta bort alla filer i katalogen: %s .
    Detta tar bort alla genererade dokument relaterade till elementer (tredje part, fakturor etc ...), filer som laddas upp i ECM-modulen, databassäkerhetskopior och tillfälliga filer. +PurgeDeleteAllFilesInDocumentsDir=Ta bort alla filer i katalogen: %s .
    Detta tar bort alla genererade dokument relaterade till element (tredjepart, fakturor etc ...), filer som laddas upp i ECM-modulen, databassäkerhetskopior och tillfälliga filer. PurgeRunNow=Rensa nu PurgeNothingToDelete=Ingen katalog eller filer att radera. -PurgeNDirectoriesDeleted=%s filer eller kataloger bort. -PurgeNDirectoriesFailed=Misslyckades med att ta bort %s filer eller kataloger. -PurgeAuditEvents=Rensa alla evenemang -ConfirmPurgeAuditEvents=Är du säker på att du vill rensa alla säkerhetshändelser? Alla säkerhetsloggar tas bort, inga andra data kommer att tas bort. -GenerateBackup=Skapa backup -Backup=Backup +PurgeNDirectoriesDeleted=%s filer eller kataloger raderades. +PurgeNDirectoriesFailed=Misslyckades med att radera %s filer eller kataloger. +PurgeAuditEvents=Rensa alla säkerhetsevent +ConfirmPurgeAuditEvents=Är du säker på att du vill rensa alla säkerhetsevent? Alla säkerhetsloggar tas bort, ingen annan data kommer att tas bort. +GenerateBackup=Skapa säkerhetskopia +Backup=Säkerhetskopia Restore=Återställ -RunCommandSummary=Backup kommer att ske genom följande kommando -BackupResult=Backup resultat -BackupFileSuccessfullyCreated=Backup fil framgångsrikt genereras -YouCanDownloadBackupFile=Den genererade filen kan nu laddas ner -NoBackupFileAvailable=Ingen backup filer tillgängliga. -ExportMethod=Export metod -ImportMethod=Import metoden -ToBuildBackupFileClickHere=Att bygga en backup fil, klicka här . +RunCommandSummary=Säkerhetskopiering har startats med följande kommando +BackupResult=Resultat av säkerhetskopia +BackupFileSuccessfullyCreated=Säkerhetskopiering har genomförts +YouCanDownloadBackupFile=Säkerhetskopian kan nu laddas ner +NoBackupFileAvailable=Ingen säkerhetskopior tillgängliga. +ExportMethod=Exportsätt +ImportMethod=Importsätt +ToBuildBackupFileClickHere=För att skapa en säkerhetskopia klickar du här. ImportMySqlDesc=För att importera en MySQL-säkerhetskopieringsfil kan du använda phpMyAdmin via din värd eller använda kommandot mysql från kommandoraden.
    Till exempel: -ImportPostgreSqlDesc=Om du vill importera en backup fil måste du använda pg_restore kommando från kommandoraden: +ImportPostgreSqlDesc=Om du vill importera en säkerhetskopia måste du använda pg_restore kommandot från kommandoraden: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filnamn för säkerhetskopiering: +FileNameToGenerate=Filnamn för säkerhetskopia: Compression=Komprimering -CommandsToDisableForeignKeysForImport=Kommando för att stänga av främmande nycklar vid import -CommandsToDisableForeignKeysForImportWarning=Obligatoriskt om du vill kunna återställa din sql-dump vid ett senare tillfälle -ExportCompatibility=Förenlighet genererade exportfil +CommandsToDisableForeignKeysForImport=Kommando för att inaktivera främmande nycklar vid import +CommandsToDisableForeignKeysForImportWarning=Obligatoriskt om du vill kunna återställa din databaskopia vid ett senare tillfälle +ExportCompatibility=Kompabilitet på skapad exportfil ExportUseMySQLQuickParameter=Använd parametern --quick ExportUseMySQLQuickParameterHelp=Parametern '--quick' hjälper till att begränsa RAM-förbrukningen för stora tabeller. -MySqlExportParameters=MySQL export parametrar +MySqlExportParameters=MySQL exportparametrar PostgreSqlExportParameters= PostgreSQL exportparametrar -UseTransactionnalMode=Använd affärsbeslut läge +UseTransactionnalMode=Använd läget transacional FullPathToMysqldumpCommand=Fullständiga sökvägen till mysqldump kommandot -FullPathToPostgreSQLdumpCommand=Hela sökvägen till pg_dump kommandot -AddDropDatabase=Lägg DROP DATABASE-kommandot -AddDropTable=Lägg DROP TABLE kommandot +FullPathToPostgreSQLdumpCommand=Fullständiga sökvägen till pg_dump kommandot +AddDropDatabase=Lägg kommandot DROP DATABASE +AddDropTable=Lägg till kommandot DROP TABLE ExportStructure=Struktur -NameColumn=Namn kolumner +NameColumn=Namn-kolumner ExtendedInsert=Utökade INSERT -NoLockBeforeInsert=Inga lås kommandon runt INSERT -DelayedInsert=Fördröjd in +NoLockBeforeInsert=Inga låskommandon runt INSERT +DelayedInsert=Fördröjd infogning EncodeBinariesInHexa=Koda binära data i hexadecimal IgnoreDuplicateRecords=Ignorera fel på dubbla poster (INSERT IGNORE) -AutoDetectLang=Autodetektera (webbläsare språk) -FeatureDisabledInDemo=Funktion avstängd i demo +AutoDetectLang=Autodetektera (webbläsarens språk) +FeatureDisabledInDemo=Funktionen inaktiverad i demo FeatureAvailableOnlyOnStable=Funktionen är endast tillgänglig på officiella stabila versioner -BoxesDesc=Widgets är komponenter som visar lite information som du kan lägga till för att anpassa vissa sidor. Du kan välja mellan att visa widgeten eller inte, genom att välja målsida och klicka på "Aktivera", eller genom att klicka på papperskorgen för att inaktivera den. +BoxesDesc=Widgets är komponenter som visar information som du kan lägga till för att anpassa vissa sidor. Du kan välja mellan att visa widgeten eller inte, genom att välja målsida och klicka på "Aktivera", eller genom att klicka på papperskorgen för att inaktivera den. OnlyActiveElementsAreShown=Endast delar av aktiverade moduler visas. -ModulesDesc=Modulerna / applikationerna avgör vilka funktioner som finns i programvaran. Vissa moduler kräver behörighet för användare efter att ha aktiverat modulen. Klicka på på / av-knappen %s för varje modul för att aktivera eller inaktivera en modul / applikation. -ModulesDesc2=Klicka på hjulknappen %s för att konfigurera modulen / applikationen. -ModulesMarketPlaceDesc=Du kan hitta fler moduler att ladda ner på externa webbplatser på Internet ... +ModulesDesc=Modulerna/applikationerna avgör vilka funktioner som finns i programvaran. Vissa moduler kräver behörighet för användare efter att ha aktiverat modulen. Klicka på av/på-knappen %s för varje modul för att aktivera eller inaktivera en modul/applikation. +ModulesDesc2=Klicka på kugghjulet %s för att konfigurera modulen/applikationen. +ModulesMarketPlaceDesc=Du kan hitta fler moduler att ladda ner på olika webbplatser på Internet ... ModulesDeployDesc=Om behörigheter i ditt filsystem tillåter det kan du använda det här verktyget för att distribuera en extern modul. Modulen kommer då att visas på fliken %s . -ModulesMarketPlaces=Hitta externa app / moduler -ModulesDevelopYourModule=Utveckla din egen app / moduler +ModulesMarketPlaces=Hitta app/moduler +ModulesDevelopYourModule=Skapa din egen app/modul ModulesDevelopDesc=Du kan också utveckla din egen modul eller hitta en partner för att utveckla en för dig. -DOLISTOREdescriptionLong=I stället för att starta www.dolistore.com webbplats för att hitta en extern modul, kan du använda det här inbäddade verktyget som ska utföra sökningen på den externa marknaden för dig (kan vara långsam, behöver en internetåtkomst) ... +DOLISTOREdescriptionLong=I stället för att gå till www.dolistore.com för att hitta moduler, kan du använda det här inbäddade verktyget som utför sökningen direkt på DoliStore. NewModule=Ny modul FreeModule=Gratis CompatibleUpTo=Kompatibel med version %s NotCompatible=Den här modulen verkar inte vara kompatibel med din Dolibarr %s (Min %s - Max %s). CompatibleAfterUpdate=Den här modulen kräver en uppdatering av din Dolibarr %s (Min %s - Max %s). -SeeInMarkerPlace=Se på marknaden -SeeSetupOfModule=Se installation av modul %s -SetOptionTo=Sätt alternativ %s till %s +SeeInMarkerPlace=Visa på marknadsplatsen +SeeSetupOfModule=Visa inställning av modul %s +SetOptionTo=Ange alternativ %s till %s Updated=Uppdaterad -AchatTelechargement=Köp / Hämta -GoModuleSetupArea=För att distribuera / installera en ny modul, gå till modulens inställningsområde: %s . -DoliStoreDesc=DoliStore, den officiella marknadsplatsen för Dolibarr ERP / CRM externa moduler +AchatTelechargement=Köp/ladda ner +GoModuleSetupArea=För att starta/installera en ny modul går du till modulens inställningsområde: %s . +DoliStoreDesc=DoliStore är den officiella marknadsplatsen för Dolibarr ERP/CRM moduler DoliPartnersDesc=Lista över företag som tillhandahåller specialutvecklade moduler eller funktioner.
    Obs! Eftersom Dolibarr är ett program med öppen källkod bör någon med erfarenhet av PHP-programmering kunna utveckla en modul. -WebSiteDesc=Externa webbplatser för fler moduler utan tillägg... +WebSiteDesc=Externa webbplatser för fler moduler... DevelopYourModuleDesc=Några lösningar för att utveckla din egen modul ... URL=URL -RelativeURL=Relativ webbadress +RelativeURL=Relativ URL BoxesAvailable=Widgets tillgängliga BoxesActivated=Widgets aktiverade -ActivateOn=Aktivera på -ActiveOn=Aktiverad på -ActivatableOn=Aktiverbar på +ActivateOn=Aktivera den +ActiveOn=Aktiverad den +ActivatableOn=Aktiverbar den SourceFile=Källfil -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Endast tillgängligt om JavaScript är inte oduglig +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Endast tillgängligt om JavaScript inte är inaktiverat Required=Obligatorisk -UsedOnlyWithTypeOption=Används av en viss agenda alternativet +UsedOnlyWithTypeOption=Används av vissa dagordningsalernativ enbart Security=Säkerhet Passwords=Lösenord DoNotStoreClearPassword=Kryptera lösenord som är lagrade i databasen (INTE som vanlig text). Det rekommenderas starkt att aktivera det här alternativet. MainDbPasswordFileConfEncrypted=Kryptera databaslösenord som lagras i conf.php. Det rekommenderas starkt att aktivera det här alternativet. -InstrucToEncodePass=Att ha lösenord kodad i conf.php filen, ersätt raden
    $ Dolibarr_main_db_pass = "...";
    av
    $ Dolibarr_main_db_pass = "krypterad:%s"; -InstrucToClearPass=Att ha lösenord avkodas (klar) i conf.php filen, ersätt raden
    $ Dolibarr_main_db_pass = "krypterat: ...";
    av
    $ Dolibarr_main_db_pass = "%s"; -ProtectAndEncryptPdfFiles=Skydda genererade PDF-filer. Detta rekommenderas INTE eftersom det bryter massprodukten i PDF-format. -ProtectAndEncryptPdfFilesDesc=Skyddet av ett PDF-dokument håller det tillgängligt att läsa och skriva ut med en PDF-webbläsare. Redigering och kopiering är dock inte längre möjligt. Observera att användandet av den här funktionen gör det möjligt att bygga en global sammanslagen PDF-fil inte fungerar. -Feature=Huvudnummer +InstrucToEncodePass=Att ha lösenord kodad i conf.php filen, ersätt raden
    $dolibarr_main_db_pass = "...";
    med
    $dolibarr_main_db_pass = "crypted:%s"; +InstrucToClearPass=För att ha lösenord avkodade (läsbara) i conf.php-filen ersätter du raden
    $dolibarr_main_db_pass = "crypted: ...";
    med
    $dolibarr_main_db_pass = "%s"; +ProtectAndEncryptPdfFiles=Skydda genererade PDF-filer. Detta rekommenderas INTE eftersom det bryter bulkhantering av PDF:er. +ProtectAndEncryptPdfFilesDesc=Skyddet av ett PDF-dokument gör det möjligt att läsa och skriva ut i en PDF-läsare. Redigering och kopiering är dock inte längre möjlig. Observera att användandet av den här funktionen gör det omöjligt att använda globala sammanslagna PDF-filer. +Feature=Funktion DolibarrLicense=Licens -Developpers=Utvecklare / bidragsgivare +Developpers=Utvecklare/bidragsgivare OfficialWebSite=Dolibarrs officiella webbplats OfficialWebSiteLocal=Lokal webbplats (%s) -OfficialWiki=Dolibarr dokumentation / Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Officiella marknadsplats för externa moduler / addons -OfficialWebHostingService=Refererade webbhotell (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners +OfficialWiki=Dolibarr dokumentation/Wiki +OfficialDemo=Dolibarr online-demo +OfficialMarketPlace=Officiella marknadsplats för moduler/tillägg +OfficialWebHostingService=Rekommenderade webbhotell (Cloud hosting) +ReferencedPreferredPartners=Föredragna partners OtherResources=Andra resurser ExternalResources=Externa resurser SocialNetworks=Sociala nätverk SocialNetworkId=Socialt nätverks-ID -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
    take a look at the Dolibarr Wiki:
    %s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
    %s +ForDocumentationSeeWiki=För användar-/utvecklardokumentation (Doc, FAQs...),
    läs Dolibarr Wiki:
    %s +ForAnswersSeeForum=För andra frågor eller hjälp kan du använda Dolibarrs forum:
    %s HelpCenterDesc1=Här finns några resurser för att få hjälp och support med Dolibarr. -HelpCenterDesc2=Några av dessa resurser finns endast i engelska . -CurrentMenuHandler=Aktuell meny handler -MeasuringUnit=Mätenhet +HelpCenterDesc2=Några av dessa resurser finns endast på engelska. +CurrentMenuHandler=Aktuell menyhanterare +MeasuringUnit=Måttenhet LeftMargin=Vänster marginal TopMargin=Toppmarginal PaperSize=Papperstyp Orientation=Orientering -SpaceX=Utrymme x -SpaceY=Rymlig +SpaceX=Mellanrum X +SpaceY=Mellanrum Y FontSize=Textstorlek Content=Innehåll -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +ContentForLines=Innehåll att visa för varje produkt eller tjänst (från variabeln __LINES__ innehåll) NoticePeriod=Uppsägningstid -NewByMonth=Ny i månaden +NewByMonth=Ny per månad Emails=E-post EMailsSetup=E-postinställningar -EMailsDesc=På den här sidan kan du ställa in parametrar eller alternativ för att skicka e-post. -EmailSenderProfiles=E-postmeddelanden skickar profiler -EMailsSenderProfileDesc=Du kan hålla det här avsnittet tomt. Om du anger några e-postmeddelanden här kommer de att läggas till i listan över möjliga avsändare i kombinationsrutan när du skriver ett nytt e-postmeddelande. -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-porten (standardvärde i php.ini: %s ) -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-värd (standardvärde i php.ini: %s ) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS-port (Ej definierad i PHP på Unix-liknande system) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS-värd (Ej definierad i PHP på Unix-liknande system) -MAIN_MAIL_EMAIL_FROM=Avsändar-e-post för automatiska e-postmeddelanden (standardvärde i php.ini: %s ) -MAIN_MAIL_ERRORS_TO=E-post används för att returnera e-postmeddelanden (fält "Fel-Till" i skickade e-postmeddelanden) -MAIN_MAIL_AUTOCOPY_TO= Kopiera (Bcc) alla skickade e-postmeddelanden till -MAIN_DISABLE_ALL_MAILS=Inaktivera all e-postsändning (för teständamål eller demo) -MAIN_MAIL_FORCE_SENDTO=Skicka alla e-postmeddelanden till (i stället för riktiga mottagare, för teständamål) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Föreslå e-postmeddelanden från anställda (om de är definierade) i listan över fördefinierade mottagare när du skriver ett nytt e-postmeddelande -MAIN_MAIL_SENDMODE=E-postsändningsmetod -MAIN_MAIL_SMTPS_ID=SMTP-ID (om sändning av server kräver autentisering) -MAIN_MAIL_SMTPS_PW=SMTP-lösenord (om sändning av server kräver autentisering) -MAIN_MAIL_EMAIL_TLS=Använd kryptering av TLS (SSL) +EMailsDesc=På den här sidan kan du ställa in parametrar eller alternativ för e-post. +EmailSenderProfiles=Avsändarprofiler för e-post +EMailsSenderProfileDesc=Du kan hålla denna sektion tom. Om du anger e-postadresser här kommer de att läggas till i listan över möjliga avsändare i kombinationsrutan när du skriver ett nytt e-postmeddelande. +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS-porten (standardvärde i php.ini: %s) +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS-värd (standardvärde i php.ini: %s) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-port (inte angiven i PHP på Unix-liknande system) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS-värd (inte angiven i PHP på Unix-liknande system) +MAIN_MAIL_EMAIL_FROM=E-postadress som avsändare vid automatiska meddelanden (standardvärde i php.ini: %s) +EMailHelpMsgSPFDKIM=För att förhindra att automatiska meddelanden klassas som skräppost, se till att servern är auktoriserad att skicka e-post från denna adress med SPF- och DKIM-konfiguration +MAIN_MAIL_ERRORS_TO=E-post som används som retur vid felaktiga e-postmeddelanden (fält "Error-To" i skickad e-post) +MAIN_MAIL_AUTOCOPY_TO= Hemlig kopia (Bcc) för all e-post till +MAIN_DISABLE_ALL_MAILS=Inaktivera all e-post (för teständamål eller demo) +MAIN_MAIL_FORCE_SENDTO=Skicka all e-post till (i stället för riktiga mottagare, för teständamål) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Föreslå e-post från anställda (om de är angivna) i listan över fördefinierade mottagare när du skriver ett nytt meddelande +MAIN_MAIL_SENDMODE=Metod för sändning av e-post +MAIN_MAIL_SMTPS_ID=SMTP-ID (om sändning kräver autentisering) +MAIN_MAIL_SMTPS_PW=SMTP-lösenord (om sändning kräver autentisering) +MAIN_MAIL_EMAIL_TLS=Använd TLS (SSL) kryptering MAIN_MAIL_EMAIL_STARTTLS=Använd TLS (STARTTLS) kryptering MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Auktorisera automatiska signaturer -MAIN_MAIL_EMAIL_DKIM_ENABLED=Använd DKIM för att skapa e-signatur -MAIN_MAIL_EMAIL_DKIM_DOMAIN=E-post domän för användning med dkim -MAIN_MAIL_EMAIL_DKIM_SELECTOR=Namn på dkim-väljaren -MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privat nyckel för dkim signering -MAIN_DISABLE_ALL_SMS=Inaktivera all sms-sändning (för teständamål eller demo) +MAIN_MAIL_EMAIL_DKIM_ENABLED=Använd DKIM för att skapa e-postsignatur +MAIN_MAIL_EMAIL_DKIM_DOMAIN=E-postdomän för användning med DKIM +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Namn på DKIM-väljaren +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privat nyckel för DKIM-signering +MAIN_DISABLE_ALL_SMS=Inaktivera all SMS-sändning (för teständamål eller demo) MAIN_SMS_SENDMODE=Metod som ska användas för att skicka SMS -MAIN_MAIL_SMS_FROM=Standard avsändarens telefonnummer för sms-sändning -MAIN_MAIL_DEFAULT_FROMTYPE=Standard avsändarmail för manuell sändning (användar e-post eller företags e-post) -UserEmail=Användar-e-post -CompanyEmail=Företagets Email -FeatureNotAvailableOnLinux=Funktionen inte finns på Unix-liknande system. Testa din sendmail program lokalt. -FixOnTransifex=Fixa översättningen på online-översättningsplattformen för projektet -SubmitTranslation=Om översättningen för detta språk inte är fullständigt eller du hittar fel kan du korrigera detta genom att redigera filer i katalogen langs / %s och skicka in din ändring till www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=Om översättningen för detta språk inte är komplett eller om du hittar fel kan du korrigera detta genom att redigera filer i katalogen langs / %s och skicka ändrade filer på dolibarr.org/forum eller, om du är utvecklare, med en PR på github .com / Dolibarr / dolibarr -ModuleSetup=Modul inställning -ModulesSetup=Moduler / Programinställningar +MAIN_MAIL_SMS_FROM=Standard telefonnummer för avsändarens vid SMS +MAIN_MAIL_DEFAULT_FROMTYPE=Standard e-postadress för avsändaren vid manuell sändning +UserEmail=Användares e-postadress +CompanyEmail=Företagets e-postadress +FeatureNotAvailableOnLinux=Funktionen inte finns på Unix-liknande system. Testa sendmail lokalt. +FixOnTransifex=Lös översättningen på onlineplattformen för översättningar +SubmitTranslation=Om översättningen för detta språk inte är fullständig eller du hittar fel kan du korrigera detta genom att redigera filer i katalogen langs/%s och skicka in din ändring till www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Om översättningen för detta språk inte är komplett eller om du hittar fel kan du korrigera detta genom att redigera filer i katalogen langs/%s och skicka ändrade filer på dolibarr.org/forum eller, om du är utvecklare, med en PR på github.com/Dolibarr/dolibarr +ModuleSetup=Modulinställningar +ModulesSetup=Inställningar för moduler/program ModuleFamilyBase=System ModuleFamilyCrm=Customer Relationship Management (CRM) ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Produktledning (PM) +ModuleFamilyProducts=Product Management (PM) ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projekt / gemensamt arbete +ModuleFamilyProjects=Projekt/gemensamt arbete ModuleFamilyOther=Andra -ModuleFamilyTechnic=Multi-moduler verktyg -ModuleFamilyExperimental=Experimentell moduler -ModuleFamilyFinancial=Finansiella Moduler (Redovisning / Treasury) -ModuleFamilyECM=ECM -ModuleFamilyPortal=Webbplatser och annan frontal applikation +ModuleFamilyTechnic=Verktyg för flera moduler +ModuleFamilyExperimental=Experimentella moduler +ModuleFamilyFinancial=Finansiella Moduler (redovisning/bokföring) +ModuleFamilyECM=Electronic Content Management (ECM) +ModuleFamilyPortal=Webbplatser och andra frontapplikationer ModuleFamilyInterface=Gränssnitt med externa system -MenuHandlers=Meny hanterar -MenuAdmin=Menu Editor -DoNotUseInProduction=Använd inte i poroduktion -ThisIsProcessToFollow=Uppgraderingsprocedur: -ThisIsAlternativeProcessToFollow=Det här är en alternativ inställning som ska behandlas manuellt: +MenuHandlers=Menyhanterare +MenuAdmin=Menuredigerare +DoNotUseInProduction=Använd inte i produktion +ThisIsProcessToFollow=Procedur för uppgradering: +ThisIsAlternativeProcessToFollow=Detta är en alternativ inställning som ska hanteras manuellt: StepNb=Steg %s FindPackageFromWebSite=Hitta ett paket som innehåller de funktioner du behöver (till exempel på den officiella webbplatsen %s). DownloadPackageFromWebSite=Ladda ner paketet (till exempel från den officiella hemsidan %s). -UnpackPackageInDolibarrRoot=Packa upp / packa upp de förpackade filerna i din Dolibarr-serverns katalog: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s -SetupIsReadyForUse=Modulutbyggnad är klar. Du måste dock aktivera och konfigurera modulen i din applikation genom att gå till modulerna för inställning av sidor: %s . -NotExistsDirect=Den alternativa rotkatalogen är inte definierad till en befintlig katalog.
    -InfDirAlt=Sedan version 3 är det möjligt att definiera en alternativ rotkatalog. Detta gör att du kan lagra, till en dedikerad katalog, plugin-moduler och anpassade mallar.
    Skapa bara en katalog i roten till Dolibarr (t ex: anpassad).
    -InfDirExample= 
    Angiv sedan det i filen conf.php
    $ dolibarr_main_url_root_alt = '/ anpassad'
    $ dolibarr_main_document_root_alt = '/ path / of / dolibarr / htdocs / anpassad'
    Om dessa rader kommenteras med "#" , bara uncomment genom att ta bort "#" tecknet. -YouCanSubmitFile=Du kan ladda upp .zip-filen för modulpaketet härifrån: -CurrentVersion=Dolibarr nuvarande version -CallUpdatePage=Bläddra till den sida som uppdaterar databasstrukturen och data: %s. -LastStableVersion=Senaste stabila versionen +UnpackPackageInDolibarrRoot=Packa upp filerna i din Dolibarr-installations katalog: %s +UnpackPackageInModulesRoot=För att installera en extern modul måste du packa upp arkivfilen i installationsmappen dedikerad för externa moduler:
    %s +SetupIsReadyForUse=Modulen är installerad. Du måste dock aktivera och konfigurera modulen i din applikation: %s . +NotExistsDirect=Den alternativa rotkatalogen är inte angiven till en existerande katalog.
    +InfDirAlt=Sedan version 3 är det möjligt att ange en alternativ rotkatalog. Detta gör att du kan lagra, i den dedikerade katalogen, moduler och anpassade mallar.
    Skapa bara en katalog i roten till Dolibarr (t ex: anpassningar).
    +InfDirExample=
    Ange det sedan i filen conf.php
    $dolibarr_main_url_root_alt = '/anpassningar'
    $dolibarr_main_document_root_alt = '/path/of/dolibarr/htdocs/anpassningar'
    Om dessa rader är kommenterade med "#" återaktiverar du raden genom att ta bort #-tecknet. +YouCanSubmitFile=Du kan ladda upp .zip-filen för modulen härifrån: +CurrentVersion=Dolibarrs nuvarande version +CallUpdatePage=Gå till den sida som uppdaterar databasstrukturen och data: %s. +LastStableVersion=Senast stabila version LastActivationDate=Senaste aktiveringsdatum -LastActivationAuthor=Senaste aktiveringsförfattaren +LastActivationAuthor=Senaste aktivering användare LastActivationIP=Senaste aktivering IP -LastActivationVersion=Latest activation version +LastActivationVersion=Senaste aktivering version UpdateServerOffline=Uppdatera server offline WithCounter=Hantera en räknare -GenericMaskCodes=Du kan ange valfri numreringsmask. I den här masken kan följande taggar användas:
    {000000} motsvarar ett nummer som kommer att ökas på varje %s. Ange så många nollor som önskad längd på räknaren. Räknaren kompletteras med nollor från vänster för att ha lika många nollor som masken.
    {000000+000} samma som den föregående men en förskjutning som motsvarar numret till höger om + -tecknet tillämpas med början på den första %s.
    {000000@x} samma som föregående men räknaren återställs till noll när månad x nås (x mellan 1 och 12, eller 0 för att använda de första månaderna av räkenskapsåret som definierats i din konfiguration, eller 99 till återställs till noll varje månad). Om detta alternativ används och x är 2 eller högre krävs också sekvensen {åå} {mm} eller {åååå} {mm}.
    {dd} dag (01 till 31).
    {mm} månad (01 till 12).
    {yy} , {yyyy} eller {y} år över 2,4 eller 1 nummer.
    -GenericMaskCodes2= {cccc} klientkoden på n tecken
    {cccc000} kunden är kundens kund. Denna räknare dedikerad till kunden återställs samtidigt som den globala räknaren.
    {tttt} Koden för tredje parts typ på n tecken (se menyn Hem - Inställningar - Ordbok - Typer av tredje part). Om du lägger till den här taggen kommer räknaren att vara annorlunda för varje typ av tredje part.
    -GenericMaskCodes3=Alla andra tecken i masken förblir intakt.
    Blanksteg är inte tillåtna.
    -GenericMaskCodes3EAN=Alla andra tecken i masken förblir intakta (utom * eller? I 13: e position i EAN13).
    Utrymmen är inte tillåtna.
    I EAN13 ska det sista tecknet efter det sista} i 13: e position vara * eller? . Den kommer att ersättas av den beräknade nyckeln.
    -GenericMaskCodes4a=  Exempel på 99: e %s från tredje part TheCompany, med datum 2007-01-31:
    -GenericMaskCodes4b=Exempel på tredje part som har skapats på 2007/03/01:
    -GenericMaskCodes4c=Exempel på artikel skapad 2007-03-01:
    -GenericMaskCodes5=  ABC {yy} {mm} - {000 tusen} kommer att ge ABC0701-000099
    {0000 + 100 @ 1} -ZZZ / {dd} / XXX ger 0199-ZZZ / 31 / XXX
    IN {yy} {mm} - {0000} - {t} ger IN0701-0099-A om typen av företag är "Responsable Inscripto" med kod för typ som är "A_RI" -GenericNumRefModelDesc=Avkastningen en anpassningsbar nummer enligt en fastställd mask. +GenericMaskCodes=Du kan ange valfri numreringsmask. I den här masken kan följande taggar användas:
    {000000} motsvarar ett nummer som kommer att ökas på varje %s. Ange så många nollor som önskad längd på räknaren. Räknaren kompletteras med nollor från vänster för att ha lika många nollor som masken.
    {000000+000} ger samma som föregående men med en förskjutning som motsvarar numret till höger om + -tecknet och tillämpas med början på den första %s.
    {000000@x} samma som föregående men räknaren återställs till noll när månad x nås (x mellan 1 och 12, eller 0 för att använda de första månaderna av räkenskapsåret som anges i din konfiguration, eller 99 till återställs till noll varje månad). Om detta alternativ används och x är 2 eller högre krävs också sekvensen {yy} {mm} eller {yyyy} {mm}.
    {dd} dag (01 till 31).
    {mm} månad (01 till 12).
    {yy}, {yyyy} eller {y} år med 2, 4 respektive 1 nummer.
    +GenericMaskCodes2={cccc} klientkoden med n tecken
    {cccc000} är kundnummer med löpnummer dedikerat kunden. Denna räknare återställs samtidigt som den globala räknaren.
    {tttt} Koden för varje tredjeparts typ med n tecken (se menyn Hem - Inställningar - Ordbok - Typer av tredjepart). Om du lägger till den här taggen kommer räknaren att vara annorlunda för varje typ av tredjepart.
    +GenericMaskCodes3=Alla andra tecken i masken förblir intakt.
    Mellanslag är inte tillåtna.
    +GenericMaskCodes3EAN=Alla andra tecken i masken förblir intakta (utom * eller ? i 13:e position i EAN13).
    Mellanslag är inte tillåtna.
    I EAN13 ska det sista tecknet efter det sista} i 13:e position vara * eller ?. Den kommer att ersättas av den beräknade nyckeln.
    +GenericMaskCodes4a=Exempel på 99:e %s från tredjeparten StorFöretaget, med datum 2007-01-31:
    +GenericMaskCodes4b=Exempel på tredjepart som har skapats på 2007-03-01:
    +GenericMaskCodes4c=Exempel på produkt skapad 2007-03-01:
    +GenericMaskCodes5=ABC{yy}{mm}-{000000} kommer att resultera i ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX ger 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} ger IN0701-0099-A om typen av företag är "Responsable Inscripto" med kod för typ som är "A_RI" +GenericNumRefModelDesc=Ger en anpassningsbar nummerserie enligt en fastställd mask. ServerAvailableOnIPOrPort=Server finns på adressen %s på port %s -ServerNotAvailableOnIPOrPort=Servern är inte tillgänglig på adress %s på port %s -DoTestServerAvailability=Test serveranslutning +ServerNotAvailableOnIPOrPort=Servern är inte tillgänglig på adresseb %s på port %s +DoTestServerAvailability=Testa serveranslutning DoTestSend=Testa att skicka DoTestSendHTML=Testa att skicka HTML -ErrorCantUseRazIfNoYearInMask=Fel, kan inte använda alternativet @ för att återställa räknaren varje år om sekvens {åå} eller {yyyy} inte är i mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fel, kan inte använda alternativet @ om sekvensen (yy) (mm) eller (ÅÅÅÅ) (mm) inte är i mask. -UMask=Umask parameter för nya filer på Unix / Linux / BSD-filsystemet. -UMaskExplanation=Denna parameter gör att du kan definiera behörigheter som standard på filer skapade av Dolibarr på servern (under upp till exempel).
    Det måste vara det oktala värdet (till exempel 0666 innebär läsa och skriva för alla).
    Denna parameter är meningslöst på en Windows server. +ErrorCantUseRazIfNoYearInMask=Fel! Kan inte använda alternativet @ för att återställa räknaren varje år om sekvensen {yy} eller {yyyy} inte finns i masken. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fel! Kan inte använda alternativet @ om sekvensen (yy)(mm) eller (yyyy)(mm) inte finns i masken. +UMask=UMask-parameter för nya filer på Unix/Linux/BSD-filsystem. +UMaskExplanation=Denna parameter gör att du kan ange rättigheter som standard på filer skapade av Dolibarr på servern (under uppladdning till exempel).
    Det måste vara det oktala värdet (till exempel 0666 innebär läs- och skrivrättigheter för alla).
    Denna parameter är meningslös på en Windows-server. SeeWikiForAllTeam=Ta en titt på Wiki-sidan för en lista över bidragsgivare och deras organisation -UseACacheDelay= Fördröjning för caching export svar i sekunder (0 eller tomt för ingen cache) -DisableLinkToHelpCenter=Dölj länken "Behöver du hjälp eller support" på inloggningssidan -DisableLinkToHelp=Dölj länken för online-hjälp "%s" -AddCRIfTooLong=Det finns ingen automatisk textförpackning, texten som är för lång kommer inte att visas på dokument. Vänligen lägg till vagnreturer i textområdet om det behövs. -ConfirmPurge=Är du säker på att du vill utföra denna utrensning?
    Detta kommer permanent radera alla dina datafiler på något sätt för att återställa dem (ECM-filer, bifogade filer ...). +UseACacheDelay= Fördröjning för cache-exportsvar i sekunder (0 eller tomt för ingen cache) +DisableLinkToHelpCenter=Dölj länken Behöver du hjälp eller support på inloggningssidan +DisableLinkToHelp=Dölj länken för onlinehjälp %s +AddCRIfTooLong=Det finns ingen automatisk radbrytning för text. Text som är för lång kommer inte att visas på dokument. Lägg till radmatning i textområdet om det behövs. +ConfirmPurge=Är du säker på att du vill utföra denna rensning?
    Detta kommer permanent radera alla dina datafiler utan något sätt att återställa dem (ECM-filer, bifogade filer ...). MinLength=Minsta längd -LanguageFilesCachedIntoShmopSharedMemory=Filer. Lang lastas i det delade minnet +LanguageFilesCachedIntoShmopSharedMemory=.lang-filer laddas i det delade minnet LanguageFile=Språkfil ExamplesWithCurrentSetup=Exempel med nuvarande konfiguration -ListOfDirectories=Förteckning över OpenDocument mallar kataloger -ListOfDirectoriesForModelGenODT=Lista över kataloger som innehåller mallfiler med OpenDocument-format.

    Sätt här hela sökvägen till kataloger.
    Lägg till en vagnretur mellan eah-katalogen.
    För att lägga till en katalog över GED-modulen, lägg till här DOL_DATA_ROOT / ecm / ditt katalognamn .

    Filer i katalogerna måste sluta med .odt eller .ods . -NumberOfModelFilesFound=Antal ODT / ODS-mallfiler som finns i dessa kataloger -ExampleOfDirectoriesForModelGen=Exempel på syntax:
    c: \\ myapp \\ mydocumentdir \\ mysubdir
    / home / myapp / mydocumentdir / mysubdir
    DOL_DATA_ROOT / ecm / ecmdir -FollowingSubstitutionKeysCanBeUsed=
    Att veta hur du skapar dina odT dokumentmallar, innan du förvarar dem i dessa kataloger, läs wiki dokumentation: +ListOfDirectories=Lista över OpenDocument mallkatalog +ListOfDirectoriesForModelGenODT=Lista över kataloger som innehåller mallfiler i OpenDocument-format.

    Ange hela sökvägen till kataloger.
    Lägg till en radmatning mellan eah-kataloger.
    För att lägga till en katalog för GED-modulen gör du det härDOL_DATA_ROOT/ecm/dittkatalognamn.

    Filer i dessa kataloger måste sluta med .odt eller .ods. +NumberOfModelFilesFound=Antal ODT/ODS-mallfiler som finns i dessa kataloger +ExampleOfDirectoriesForModelGen=Exempel på syntax:
    c: \\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    För att lära dig hur du skapar odt-mallar, innan du sparar dem i dessa kataloger, läs wiki-dokumentation: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Ståndpunkt av förnamn / namn -DescWeather=Följande bilder visas på instrumentpanelen när antalet sena åtgärder når följande värden: -KeyForWebServicesAccess=För att kunna använda Web Services (parameter "dolibarrkey" i WebServices) -TestSubmitForm=Ingång Testformuläret -ThisForceAlsoTheme=Användning av denna menychef kommer också att använda sitt eget tema oavsett användarvalet. Även denna menyfunktion som är specialiserad för smartphones fungerar inte på alla smartphones. Använd en annan menychef om du har problem med din. -ThemeDir=Skins katalogen -ConnectionTimeout=Anslutningstidsavbrott -ResponseTimeout=Respons tidsutlösning +FirstnameNamePosition=Position för förnamn/efternamn +DescWeather=Följande bilder visas på kontrollpanelen när antalet sena åtgärder når följande värden: +KeyForWebServicesAccess=Nyckel för att använda Web Services (parameter "dolibarrkey" i WebServices) +TestSubmitForm=Inmatning testformulär +ThisForceAlsoTheme=Denna menyredigerare kommer att använda sitt eget tema oavsett användarvalet. Även om menyredigeraren är anpassad för mobila enheter så fungerar den tyvärr inte på alla. Använd en annan menyredigerare om du har problem. +ThemeDir=Skins-katalogen +ConnectionTimeout=Anslutning timeout +ResponseTimeout=Svar timeout SmsTestMessage=Testmeddelande från __ PHONEFROM__ till __ PHONETO__ -ModuleMustBeEnabledFirst=Modul %s måste aktiveras först om du behöver den här funktionen. -SecurityToken=Nyckeln till säkra webbadresser -NoSmsEngine=Ingen SMS-avsändare finns tillgänglig. En SMS-avsändarhanterare är inte installerad med standarddistributionen eftersom de är beroende av en extern leverantör, men du kan hitta några på %s +ModuleMustBeEnabledFirst=Modulen %s måste aktiveras först om du behöver den här funktionen. +SecurityToken=Nyckeln för säkra webbadresser +NoSmsEngine=Ingen SMS-avsändare finns tillgänglig. En hanterare för SMS-avsändare är inte installerad eftersom de är beroende av en extern leverantör, men du kan hitta några på %s PDF=PDF PDFDesc=Globala alternativ för PDF-generation -PDFOtherDesc=PDF-alternativ som är specifikt för vissa moduler -PDFAddressForging=Regler för adressavsnitt -HideAnyVATInformationOnPDF=Dölj all information om försäljningsskatt / moms -PDFRulesForSalesTax=Regler för försäljningsskatt / moms +PDFOtherDesc=PDF-alternativ som är specifika för vissa moduler +PDFAddressForging=Regler för adress-blocket +HideAnyVATInformationOnPDF=Dölj all information om moms +PDFRulesForSalesTax=Regler för moms PDFLocaltax=Regler för %s -HideLocalTaxOnPDF=Dölj %s i kolumn Försäljningsskatt / moms +HideLocalTaxOnPDF=Dölj %s i kolumnen moms HideDescOnPDF=Dölj produktbeskrivning -HideRefOnPDF=Dölj produkter ref. -HideDetailsOnPDF=Dölj produktlinjer detaljer -PlaceCustomerAddressToIsoLocation=Använd fransk standardposition (La Poste) för kundadressposition +HideRefOnPDF=Dölj produktref. +HideDetailsOnPDF=Dölj produktraden beskrivning +PlaceCustomerAddressToIsoLocation=Använd fransk standardposition (La Poste) för position av kundadress Library=Bibliotek -UrlGenerationParameters=Parametrar för att säkra webbadresser -SecurityTokenIsUnique=Använd en unik securekey parameter för varje webbadress -EnterRefToBuildUrl=Ange referens för objekt %s -GetSecuredUrl=Få beräknat URL +UrlGenerationParameters=Parametrar för säkra webbadresser +SecurityTokenIsUnique=Använd en unik securekey-parameter för varje webbadress +EnterRefToBuildUrl=Ange referens för objektet %s +GetSecuredUrl=Få beräknad URL ButtonHideUnauthorized=Dölj obehöriga åtgärdsknappar också för interna användare (bara gråtonad annars) OldVATRates=Gammal momssats NewVATRates=Ny momssats -PriceBaseTypeToChange=Ändra om priser med bas referensvärde som definieras på -MassConvert=Starta masskonvertering +PriceBaseTypeToChange=Ändra om priser med basreferensvärde definieras på +MassConvert=Starta bulkkonvertering PriceFormatInCurrentLanguage=Prisformat på nuvarande språk -String=String +String=Sträng String1Line=Sträng (1 rad) TextLong=Lång text TextLongNLines=Lång text (n rader) HtmlText=Html-text Int=Heltal -Float=Flyttal +Float=Float DateAndTime=Datum och timme Unique=Unik -Boolean=Booleska (en kryssruta) +Boolean=Boolsk (en kryssruta) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris -ExtrafieldMail = epost -ExtrafieldUrl = Url -ExtrafieldSelect = Välj lista +ExtrafieldPriceWithCurrency=Pris med valuta +ExtrafieldMail = E-post +ExtrafieldUrl = URL +ExtrafieldIP = IP +ExtrafieldSelect = Väljlista ExtrafieldSelectList = Välj från tabell ExtrafieldSeparator=Separator (inte ett fält) ExtrafieldPassword=Lösenord ExtrafieldRadio=Radioknappar (endast ett val) ExtrafieldCheckBox=Kryssrutor -ExtrafieldCheckBoxFromList=Kryssrutor från bordet +ExtrafieldCheckBoxFromList=Kryssrutor från tabell ExtrafieldLink=Länk till ett objekt ComputedFormula=Beräknat fält -ComputedFormulaDesc=Du kan ange här en formel som använder andra objektegenskaper eller någon PHP-kodning för att få ett dynamiskt beräknat värde. Du kan använda alla PHP-kompatibla formler inklusive "?" tillståndsoperatör och följande globala objekt: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
    VARNING : Endast vissa egenskaper för $ objekt kan vara tillgängliga. Om du behöver egenskaper som inte har laddats, hämtar du bara objektet till din formel som i det andra exemplet.
    Att använda ett beräknat fält betyder att du inte kan ange något värde från gränssnittet. Om det finns ett syntaxfel kan formeln kanske inte returnera något.

    Exempel på formel:
    $ object-> id < 10 ? round($object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2 )

    Exempel på att ladda om objekt
    (($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetchNoCompute ($ obj-> id? $ obj-> id: ($ obj-> rad) > rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

    Annat exempel på formel för att tvinga objektets belastning och dess överordnade objekt:
    (($ reloadedob = )) && ($ reloadedobj-> fetchNoCompute ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($ secondloadedobj-> fetchNoCompute ($ reloadedobj-> fk_project)> 0))? $ secondloadedobj-> ref: 'Föräldraprojekt hittades inte' +ComputedFormulaDesc=Här kan du ange en formel som använder andra objektegenskaper eller någon PHP-kodning för att få ett dynamiskt beräknat värde. Du kan använda alla PHP-kompatibla formler inklusive "?" operand och följande globala objekt: $db, $conf, $langs, $mysoc, $user, $object.
    VARNING: Endast vissa egenskaper för $object kan vara tillgängliga. Om du behöver egenskaper som inte har laddats hämtar du bara objektet till din formel som i det andra exemplet.
    Att använda ett beräknat fält betyder att du inte kan ange något värde från gränssnittet. Om det finns ett syntaxfel kan formeln kanske inte returnera något.

    Exempel på formel
    $object->id<10?round($object->id/2,2):($object->id+2*$user->id)*(int) substr($mysoc->zip,1,2)

    Exempel på att ladda om objekt
    (($reloadedobj=newSociete($db))&&($reloadedobj->fetchNoCompute($obj->id?$obj->id:($obj->rad)>rowid:$object->id))>0))?$reloadedobj->array_options ['options_extrafieldkey']*$reloadedobj->capital/5:'-1'

    Annat exempel på formel för att tvinga objektets laddning och dess överordnade objekt:
    (($reloadedob=))&&($reloadedobj->fetchNoCompute($object->id)>0)&&($secondloadedobj=newProject($db))&&($secondloadedobj->fetchNoCompute($reloadedobj->fk_project)>0))?$secondloadedobj->ref:'Överordnat projekt hittades inte' Computedpersistent=Lagra beräknat fält -ComputedpersistentDesc=Beräknade extra fält kommer att lagras i databasen, men värdet beräknas bara om objektet för detta fält ändras. Om det beräknade fältet beror på andra objekt eller globala data kan detta värde vara fel !! -ExtrafieldParamHelpPassword=Om du lämnar fältet tomt betyder det att detta värde kommer att sparas utan kryptering (fältet måste bara döljas med stjärnan på skärmen).
    Ange 'auto' för att använda standardkrypteringsregeln för att spara lösenord i databasen (då är läsningsvärde endast ett hash, inget sätt att hämta originalvärdet) -ExtrafieldParamHelpselect=Förteckning över värden måste vara linjer med formatnyckel, värde (där nyckel inte kan vara '0')

    till exempel:
    1, värde1
    2, värde2
    code3, värde3
    ...

    För att få lista beroende på en annan komplementär attributlista:
    1, värde1 | options_ parent_list_code : parent_key
    2, value2 | options_ parent_list_code : parent_key

    För att få listan beroende på en annan lista:
    1, värde1 | parent_list_code : parent_key
    2, värde2 | parent_list_code : parent_key -ExtrafieldParamHelpcheckbox=Lista över värden måste vara rader med formatnyckel, värde (där nyckel inte kan vara '0')

    till exempel:
    1, värde1
    2, värde2
    3, värde3
    ... -ExtrafieldParamHelpradio=Lista över värden måste vara rader med formatnyckel, värde (där nyckel inte kan vara '0')

    till exempel:
    1, värde1
    2, värde2
    3, värde3
    ... -ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    - id_field is necessarly a primary int key
    - filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Värdelista kommer från en tabell
    Syntax: tabellnamn: label_field: id_field :: filtersql
    Exempel: c_typent: libelle: id :: filtersql

    filter kan bara vara ett aktivt test2 (t.ex. kan också använda $ ID $ i filterhäxan är det aktuella idet för det aktuella objektet
    Om du vill göra en SELECT i filter använder du $ SEL $
    om du vill filtrera på extrafält använder syntax extra.fieldcode = ... (där fältkoden är uppförande extrafield)

    för att få listan beroende på en annan kompletterande attributlista:
    c_typent: libelle: id: options_ parent_list_code | parent_column: filter

    för att få listan beroende på en annan lista:
    c_typent: libelle: id: parent_list_code | parent_column: filter -ExtrafieldParamHelplink=Parametrar måste vara ObjectName: Classpath
    Syntax: ObjectName: Classpath -ExtrafieldParamHelpSeparator=Håll tomt för en enkel separator
    Ställ in detta på 1 för en kollapsande separator (öppna som standard för en ny session, sedan behålls status för varje användarsession)
    Ställ detta till 2 för en kollapsande separator (kollapsad som standard för ny session, sedan status hålls före varje användarsession) +ComputedpersistentDesc=Beräknade extrafält kommer att lagras i databasen, men värdet beräknas bara om objektet för detta fält ändras. Om det beräknade fältet beror på andra objekt eller globala data kan detta värde vara fel!! +ExtrafieldParamHelpPassword=Om du lämnar fältet tomt betyder det att detta värde kommer att sparas utan kryptering (fältet döljas bara med stjärnor på skärmen).
    Ange 'auto' för att använda standardregel för kryptering för att spara lösenord i databasen (då är läsningsvärde endast en hash och det finns inget sätt att hämta originalvärdet) +ExtrafieldParamHelpselect=Lista över värden måste vara rader med formatet nyckel,värde (där nyckel inte kan vara '0')

    till exempel:
    1,värde1
    2,värde2
    code3,värde3
    ...

    För att få listan beroende av andra komplementära attribut:
    1,värde1|options_ parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    För att få listan beroende av en annan lista:
    1,värde1|parent_list_code:parent_key
    2,värde2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Lista över värden måste vara rader med formatet nyckel,värde (där nyckel inte kan vara '0')

    till exempel:
    1,värde1
    2,värde2
    3,värde3
    ... +ExtrafieldParamHelpradio=Lista över värden måste vara rader med formatet nyckel,värde (där nyckel inte kan vara '0')

    till exempel:
    1,värde1
    2,värde2
    3,värde3
    ... +ExtrafieldParamHelpsellist=Listan med värden kommer från en tabell
    Syntax: tabellnamn:etikettfält:idfält::filtersql
    Exempel: c_typent:libelle:id::filtersql

    - id_field krävs som en primär nyckel
    - filtersql är ett SQL-villkor. Det kan enkelt testas (t.ex. active=1) för att visa endast aktiva värden
    Du kan också använda $ID$ i filter, som är aktuellt ID för aktuellt objekt.
    För att använda SELECT i ett filter använder du $SEL$ för att åsidosätta anti-inject--skyddet.
    Om du vill filtrera på extrafält använder du syntax extra.fieldcode=... (där fältkoden är koden för extrafältet)

    För att ha listan beroende av andra komplementära attribut:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    För att ha listan beroende av en annan lista:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=Listan med värden kommer från en tabell
    Syntax: table_name:label_field:id_field::filtersql
    Exempel: c_typent:libelle:id::filtersql

    filter kan vara ett enkelt test (t.ex. active=1) för att visa endast aktiva värden
    Du kan också använda $ID$ i filter som är aktuellt ID för aktuellt objekt
    För att göra en SELECT i filter använder du $SEL$
    om du vill filtrera på extrafält använder du syntax extra.fieldcode= ... (där fältkoden är koden för extrafältet)

    För att listan skall vara beroende av komplementära attribut:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    För att få listan beroende av en annan lista:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelplink=Parametrar måste vara ObjectName:Classpath
    Syntax: ObjectName:Classpath +ExtrafieldParamHelpSeparator=Håll tomt för en enkel separator
    Ange detta till 1 för en kollapsande separator (öppnas som standard för en ny session, sedan behålls status för varje användarsession)
    Ange detta till 2 för en kollapsande separator (kollapsad som standard för ny session, sedan status hålls för varje användarsession) LibraryToBuildPDF=Bibliotek som används för PDF-generering -LocalTaxDesc=Vissa länder kan ansöka om två eller tre skatter på varje faktura. Om så är fallet, välj typ för andra och tredje skatt och dess skattesats. Möjlig typ är:
    1: Lokal skatt gäller för produkter och tjänster utan moms (localtax beräknas på belopp utan skatt)
    2: Lokal skatt gäller för produkter och tjänster inklusive moms (lokal skatt beräknas på belopp + huvudskatt)
    3: lokal skatt tillämpas på varor utan moms (lokal skatt beräknas på belopp utan skatt)
    4: Lokal skatt gäller för produkter inklusive moms (lokal skatt beräknas på belopp + huvudskatt)
    5: Lokal skatt gäller för tjänster utan moms (lokal skatt beräknas på belopp utan skatt)
    6: Lokal skatt gäller för tjänster inklusive moms (lokal skatt beräknas på belopp + skatt) +LocalTaxDesc=Vissa länder kan använda två eller tre momssatser på varje fakturarad. Om så är fallet, ange typ för andra och tredje moms, och dess momssats. Möjlig typ är:
    1: Lokal moms för produkter och tjänster utan moms (lokal moms beräknas på belopp utan skatt)
    2: Lokal moms gäller för produkter och tjänster inklusive moms (lokal moms beräknas på belopp + huvudmoms)
    3: Lokal moms tillämpas på varor utan moms (lokal moms beräknas på belopp utan skatt)
    4: Lokal moms gäller för produkter inklusive moms (lokal moms beräknas på belopp + huvudmoms)
    5: Lokal moms gäller för tjänster utan moms (lokal moms beräknas på belopp utan moms)
    6: Lokal moms gäller för tjänster inklusive moms (lokal moms beräknas på belopp + moms) SMS=SMS -LinkToTestClickToDial=Skriv in ett telefonnummer att ringa upp för att visa en länk för att prova ClickToDial url för användare %s +LinkToTestClickToDial=Ange ett telefonnummer att ringa upp för att visa en länk för att prova ClickToDial url för användare %s RefreshPhoneLink=Uppdatera länk -LinkToTest=Väljbar länk genererad för användare %s (klicka på tfn-nummer för att prova) +LinkToTest=Klickbar länk genererad för användare %s (klicka på telefonnummer för att testa) KeepEmptyToUseDefault=Lämna tom för standardvärde -KeepThisEmptyInMostCases=I de flesta fall kan du behålla detta fält. +KeepThisEmptyInMostCases=I de flesta fall kan du lämna detta fält tomt. DefaultLink=Standardlänk SetAsDefault=Ange som standard -ValueOverwrittenByUserSetup=Varning, kan detta värde skrivas över av användarspecifik installation (varje användare kan ställa in sin egen clicktodial url) +ValueOverwrittenByUserSetup=Varning, detta värde kan skrivas över av användarspecifik inställning (varje användare kan ange sin egen clicktodial url) ExternalModule=Extern modul InstalledInto=Installerad i katalogen %s -BarcodeInitForThirdparties=Mass streckkod init för tredje part -BarcodeInitForProductsOrServices=Mass streckkod init eller återställning efter produkter eller tjänster -CurrentlyNWithoutBarCode=För närvarande har du %s rader på %s %s utan steckkod angett. -InitEmptyBarCode=Init värde för nästa% s tomma poster +BarcodeInitForThirdparties=Initiera bulkstreckkod för tredjepart +BarcodeInitForProductsOrServices=Initiering av bulkstreckkod eller återställning för produkter eller tjänster +CurrentlyNWithoutBarCode=För närvarande har du %s poster på %s %s utan steckkod angiven. +InitEmptyBarCode=Initvärde för %s tomma streckkoder EraseAllCurrentBarCode=Radera alla nuvarande streckkoder -ConfirmEraseAllCurrentBarCode=Är du säker på att du vill radera alla nuvarande streckkodsvärden? -AllBarcodeReset=Alla värden för streckkod har raderats -NoBarcodeNumberingTemplateDefined=Ingen numrerande streckkodsmall aktiverad i streckkodsmodulens inställning. +ConfirmEraseAllCurrentBarCode=Är du säker på att du vill radera alla nuvarande streckkoder? +AllBarcodeReset=Alla värden för streckkoder har raderats +NoBarcodeNumberingTemplateDefined=Ingen streckkodsmall för numrering aktiverad i streckkodsmodulens inställningar. EnableFileCache=Aktivera filcache -ShowDetailsInPDFPageFoot=Lägg till fler detaljer i sidfot, till exempel företagsadress eller administratörsnamn (förutom professionell ID, företagskapital och momsnummer). -NoDetails=Inga ytterligare detaljer i sidfot +ShowDetailsInPDFPageFoot=Lägg till fler detaljer i sidfoten, till exempel företagsadress eller ansvarigs namn (förutom professionellt ID, säte och organisationsnummer). +NoDetails=Inga ytterligare uppgifter i sidfoten DisplayCompanyInfo=Visa företagsadress -DisplayCompanyManagers=Visa administratörsnamn -DisplayCompanyInfoAndManagers=Visa företagsadress och administratörsnamn -EnableAndSetupModuleCron=Om du vill generera denna återkommande faktura automatiskt måste modulen * %s * vara aktiverad och korrekt inställd. Annars måste generering av fakturor ske manuellt från den här mallen med * Skapa * -knappen. Observera att även om du aktiverat automatisk generation kan du fortfarande starta manuellt generering på ett säkert sätt. Generering av duplikat under samma period är inte möjligt. -ModuleCompanyCodeCustomerAquarium=%s följt av kundkod för kundkodskod -ModuleCompanyCodeSupplierAquarium=%s följt av leverantörskod för en leverantörs bokföringskod -ModuleCompanyCodePanicum=Återvänd en tom bokföringskod. -ModuleCompanyCodeDigitaria=Returnerar en sammansatt redovisningskod enligt namnet på tredje part. Koden består av ett prefix som kan definieras i den första positionen följt av antalet tecken som definierats i tredjepartskoden. -ModuleCompanyCodeCustomerDigitaria=%s följt av det trunkerade kundnamnet med antalet tecken: %s för kundredovisningskoden. -ModuleCompanyCodeSupplierDigitaria=%s följt av det trunkerade leverantörsnamnet med antalet tecken: %s för leverantörens bokföringskod. -Use3StepsApproval=Som standard måste inköpsorder skapas och godkännas av 2 olika användare (ett steg / användare att skapa och ett steg / användare att godkänna. Observera att om användaren har båda tillstånd att skapa och godkänna, är ett steg / användaren tillräckligt) . Du kan fråga med det här alternativet att införa ett tredje steg / användargodkännande, om beloppet är högre än ett dedikerat värde (så 3 steg kommer att behövas: 1 = godkännande, 2 = första godkännande och 3 = andra godkännande om beloppet är tillräckligt).
    Ställ in det här för att tömma om ett godkännande (2 steg) räcker, ställ det till ett mycket lågt värde (0.1) om ett andra godkännande (3 steg) alltid krävs. -UseDoubleApproval=Använd ett 3 steg godkännande när beloppet (utan skatt) är högre än ... -WarningPHPMail=VARNING: Inställningen för att skicka e-postmeddelanden från applikationen använder den allmänna standardinställningen. Det är ofta bättre att ställa in utgående e-post för att använda e-postleverantörens e-postserver istället för standardinställningen av flera skäl: -WarningPHPMailA=- Användning av e-postleverantörens server ökar tillförlitligheten för din e-post, så det ökar leveranssäkerheten utan att flaggas som SPAM -WarningPHPMailB=- Vissa e-postleverantörer (som Yahoo) tillåter inte att du skickar ett e-postmeddelande från en annan server än sin egen server. Din nuvarande inställning använder programmets server för att skicka e-post och inte din e-postleverantörs server, så vissa mottagare (den som är kompatibel med det begränsande DMARC-protokollet) frågar din e-postleverantör om de kan acceptera din e-post och vissa e-postleverantörer (som Yahoo) kan svara "nej" eftersom servern inte tillhör dem, så få av dina skickade e-postmeddelanden kanske inte accepteras för leverans (var också försiktig med din e-postleverantörs sändningskvot). -WarningPHPMailC=- Att använda din egen e-postleverantörs SMTP-server för att skicka e-post är också intressant, så alla e-postmeddelanden som skickas från applikationen kommer också att sparas i din "Skickade" katalog i din brevlåda. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. -WarningPHPMail2=Om din e-post SMTP-leverantör behöver begränsa e-postklienten till vissa IP-adresser (mycket sällsynt), är detta e-postadressen för e-postanvändaragenten (MUA) för din ERP CRM-ansökan: %s . -WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +DisplayCompanyManagers=Visa ansvarigs namn +DisplayCompanyInfoAndManagers=Visa företagsadress och ansvarigs namn +EnableAndSetupModuleCron=Om du vill generera denna återkommande faktura automatiskt måste modulen %s vara aktiverad och korrekt inställd. Annars måste fakturor genereras manuellt från den här mallen med knappen Skapa. Observera att även om du aktiverat automatisk generation kan du fortfarande starta manuell generering på ett säkert sätt. Generation av duplikat under samma period är inte möjligt. +ModuleCompanyCodeCustomerAquarium=%s följt av kundkod för en kundspecifik bokföringskod +ModuleCompanyCodeSupplierAquarium=%s följt av leverantörskod för en leverantörsspecifik bokföringskod +ModuleCompanyCodePanicum=Ge en tom bokföringskod. +ModuleCompanyCodeDigitaria=Ger en sammansatt redovisningskod enligt namnet på tredjepart. Koden består av ett prefix som kan anges i den första positionen följt av antalet tecken som anges i tredjepartskoden. +ModuleCompanyCodeCustomerDigitaria=%s följt av det trunkerade kundnamnet med antalet tecken: %s för kundspecifik bokföringskod. +ModuleCompanyCodeSupplierDigitaria=%s följt av det trunkerade leverantörsnamnet med antalet tecken: %s för leverantörsspecifik bokföringskod. +Use3StepsApproval=Som standard måste inköpsorder skapas och godkännas av 2 olika användare (ett steg/användare att skapa och ett steg/användare att godkänna. Observera att om användaren har båda tillstånd att skapa och godkänna, är ett steg/användaren tillräckligt). Du kan genom detta alternativ fråga om att införa ett tredje steg/användare för godkännande, om beloppet är högre än ett angivet värde (så 3 steg kommer att behövas: 1=godkännande, 2=första godkännande och 3=andra godkännande om beloppet är tillräckligt högt).
    Låt detta fält vara tomt om ett godkännande (2 steg) räcker. Ange ett mycket lågt värde (0.1) om ett andra godkännande (3 steg) alltid krävs. +UseDoubleApproval=Använd ett 3-stegs godkännande när beloppet (utan moms) är högre än ... +WarningPHPMail=VARNING: Inställningen för att skicka e-post från applikationen använder standardinställningen. Det är ofta bättre att ange utgående e-post genom din leverantörs server istället för standardinställningen av flera skäl: +WarningPHPMailA=- Användning av leverantören server ökar trovärdigheten och därmed minskar sannolikheten att det landar i mottagarens spam-korg +WarningPHPMailB=- Vissa leverantörer (exempelvis Yahoo) tillåter inte att du skickar e-post från en annan server än sin egen server. Din nuvarande inställning använder programmets server för att skicka e-post och inte din leverantörs server, så vissa mottagare (den som är kompatibel med det begränsande DMARC-protokollet) frågar din leverantör om de kan acceptera din e-post och vissa leverantörer (som Yahoo) kan svara "nej" eftersom servern inte tillhör dem, så några av dina skickade meddelanden kanske inte accepteras för leverans (se också upp med din leverantörs sändningskvot). +WarningPHPMailC=- Att använda din egen leverantörs SMTP-server för att skicka e-post gör också att alla meddelanden som skickas också sparas i din skickat-mapp. +WarningPHPMailD=Det rekommenderas därför att ändra sändningsmetoden för e-post till värdet "SMTP". +WarningPHPMailDbis=Om du verkligen vill behålla standardmetoden "PHP" för att skicka e-post, ignorera bara denna varning eller ta bort den genom att %sklicka här%s. +WarningPHPMail2=Om din leverantör behöver begränsa epostklienten till vissa IP-adresser (mycket sällsynt), är detta IP-adressen för ditt ERP/CRM: %s. +WarningPHPMailSPF=Om domännamnet du skickar från är skyddat av SPF (fråga din domännamns registrar), måste du lägga till följande IP-adress i SPF för din domän: %s +ActualMailSPFRecordFound=SPF hittat (för e-post %s): %s ClickToShowDescription=Klicka för att visa beskrivning -DependsOn=Denna modul behöver modulen / modulerna -RequiredBy=Denna modul krävs enligt modul (er) -TheKeyIsTheNameOfHtmlField=Detta är namnet på HTML-fältet. Teknisk kunskap krävs för att läsa innehållet på HTML-sidan för att få namnet på ett fält. -PageUrlForDefaultValues=Du måste ange den relativa sökvägen för sidadressen. Om du anger parametrar i URL, kommer standardvärdena att vara effektiva om alla parametrar är inställda på samma värde. -PageUrlForDefaultValuesCreate= 
    Exempel:
    För formuläret för att skapa en ny tredje part är det %s .
    För URL för externa moduler installerade i anpassad katalog, inkludera inte "custom /", så använd sökvägen som mymodule / mypage.php och inte anpassad / mymodule / mypage.php.
    Om du bara vill ha standardvärde om url har någon parameter kan du använda %s -PageUrlForDefaultValuesList= 
    Exempel:
    För sidan som listar tredje part är den %s .
    För URL för externa moduler installerade i anpassad katalog, inkludera inte "custom /" så använd en sökväg som mymodule / mypagelist.php och inte anpassad / mymodule / mypagelist.php.
    Om du bara vill ha standardvärde om url har någon parameter kan du använda %s -AlsoDefaultValuesAreEffectiveForActionCreate=Observera också att överskrivning av standardvärden för formulärskapande endast fungerar för sidor som var korrekt utformade (så med parameteråtgärd = skapa eller presend ...) +DependsOn=Denna modul är beroende av modul(erna) +RequiredBy=Denna modul krävs enligt modul(er) +TheKeyIsTheNameOfHtmlField=Detta är namnet på HTML-fältet. Teknisk kunskap krävs för att läsa innehållet på HTML-sidan för att hitta namnet på ett fält. +PageUrlForDefaultValues=Du måste ange den relativa sökvägen för sidan. Om du anger parametrar i URL kommer standardvärdena endast att vara effektiva om alla parametrar är inställda på samma värde. +PageUrlForDefaultValuesCreate=
    Exempel:
    För att formuläret för att skapa en ny tredjepart är det %s.
    För URL för externa moduler installerade i anpassad katalog, inkludera inte "anpassat/", så används sökvägen mymodule/mypage.php och inte anpassat/mymodule/mypage.php.
    Om du bara vill ha standardvärde om url har någon parameter kan du använda %s +PageUrlForDefaultValuesList=
    Exempel:
    För sidan som listar tredjeparter är den %s.
    För URL för externa moduler installerade i anpassad katalog, inkludera inte "anpassat/", så används en sökväg mymodule/mypagelist.php och inte anpassat/mymodule/mypagelist.php.
    Om du bara vill ha standardvärde om url har någon parameter kan du använda %s +AlsoDefaultValuesAreEffectiveForActionCreate=Observera också att överskrivning av standardvärden för formulärskapande endast fungerar för sidor som är korrekt utformade (med åtgärd=create eller presend ...) EnableDefaultValues=Aktivera anpassning av standardvärden -EnableOverwriteTranslation=Aktivera användning av överskriven översättning -GoIntoTranslationMenuToChangeThis=En översättning har hittats för nyckeln med den här koden. För att ändra detta värde måste du redigera det från Home-Setup-translation. -WarningSettingSortOrder=Varning, om du anger en standard sorteringsordning kan resultera i ett tekniskt fel när du går på listasidan om fältet är ett okänt fält. Om du upplever ett sådant fel, kom tillbaka till den här sidan för att ta bort standard sorteringsordning och återställ standardbeteendet. +EnableOverwriteTranslation=Tillåt anpassning av översättningar +GoIntoTranslationMenuToChangeThis=En översättning har hittats för nyckeln med den här koden. För att ändra detta värde måste du redigera det från Start - Inställningar - Översättning. +WarningSettingSortOrder=Varning! Om du anger en standard sorteringsordning kan det resultera i ett tekniskt fel när du går till listsidan om fältet är ett okänt fält. Om du upplever dessa fel, tar du bort standard sorteringsordning och återställer standardbeteendet. Field=Fält ProductDocumentTemplates=Dokumentmallar för att generera produktdokument FreeLegalTextOnExpenseReports=Fri juridisk text om kostnadsrapporter WatermarkOnDraftExpenseReports=Vattenmärke på utkast till utgiftsrapporter -ProjectIsRequiredOnExpenseReports=Projektet är obligatoriskt för att fylla i utläggsrapport -PrefillExpenseReportDatesWithCurrentMonth=Fyll i start och slutdatum automatiskt för nya utläggsrapporter med start och slutdatum för innevarande månad -ForceExpenseReportsLineAmountsIncludingTaxesOnly=Force the entry of expense report amounts always in amount with taxes +ProjectIsRequiredOnExpenseReports=Projektet är obligatoriskt för att fylla i utgiftsrapport +PrefillExpenseReportDatesWithCurrentMonth=Förangivna start- och slutdatum för nya utgiftsrapporter med start- och slutdatum för innevarande månad +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Forcera utläggens summa att vara inkl. moms AttachMainDocByDefault=Ange det här till 1 om du vill bifoga huvuddokumentet till e-post som standard (om tillämpligt) FilesAttachedToEmail=Bifoga fil -SendEmailsReminders=Skicka agendan påminnelser via e-post +SendEmailsReminders=Skicka dagordning som påminnelse via e-post davDescription=Konfigurera en WebDAV-server -DAVSetup=Uppställning av modul DAV -DAV_ALLOW_PRIVATE_DIR=Aktivera den generiska privata katalogen (WebDAV-dedikerad katalog som heter "privat" - inloggning krävs) -DAV_ALLOW_PRIVATE_DIRTooltip=Den generiska privata katalogen är en WebDAV-katalog som alla kan komma åt med sin inloggning / pass. -DAV_ALLOW_PUBLIC_DIR=Aktivera den generiska offentliga katalogen (WebDAV-dedikerad katalog som heter "allmän" - ingen inloggning krävs) -DAV_ALLOW_PUBLIC_DIRTooltip=Den generiska offentliga katalogen är en WebDAV-katalog som alla kan komma åt (i läs- och skrivläge), utan tillstånd krävs (inloggnings- / lösenordskonto). -DAV_ALLOW_ECM_DIR=Aktivera den privata DMS / ECM-katalogen (rootkatalog för DMS / ECM-modulen - inloggning krävs) -DAV_ALLOW_ECM_DIRTooltip=Rotkatalogen där alla filer laddas upp manuellt när du använder DMS / ECM-modulen. På samma sätt som åtkomst från webbgränssnittet behöver du ett giltigt inloggnings / lösenord med adekvata behörigheter för åtkomst till det. +DAVSetup=Konfiguration av modulen DAV +DAV_ALLOW_PRIVATE_DIR=Aktivera den generiska privata katalogen (WebDAV-dedikerad katalog som heter "privat" och kräver inloggning) +DAV_ALLOW_PRIVATE_DIRTooltip=Den allmänna privata katalogen är en WebDAV-katalog som alla kan komma åt med sin inloggning/lösenord. +DAV_ALLOW_PUBLIC_DIR=Aktivera den allmänna katalogen (WebDAV-dedikerad katalog som heter "public" - ingen inloggning krävs) +DAV_ALLOW_PUBLIC_DIRTooltip=Den allmänna katalogen är en WebDAV-katalog som alla kan komma åt (i läs- och skrivläge), utan att tillstånd krävs (inloggning/lösenord). +DAV_ALLOW_ECM_DIR=Aktivera den privata DMS/ECM-katalogen (rootkatalog för DMS/ECM-modulen - inloggning krävs) +DAV_ALLOW_ECM_DIRTooltip=Rootkatalogen där alla filer laddas upp när du använder DMS/ECM-modulen. På samma sätt som åtkomst från webbgränssnittet behöver du ett giltigt inloggningsnamn/lösenord med tillräckliga rättigheter för åtkomst. # Modules Module0Name=Användare & grupper -Module0Desc=Användare / Medarbetare och Gruppledning -Module1Name=Utomstående -Module1Desc=Företag och kontaktledning (kunder, utsikter ...) -Module2Name=Kommersiella -Module2Desc=Kommersiell förvaltning +Module0Desc=Användare/anställda och grupphantering +Module1Name=Tredjeparter +Module1Desc=Hantering av företag och kontakter (kunder, prospekt ...) +Module2Name=Kommersiellt +Module2Desc=Kommersiell hantering Module10Name=Redovisning (förenklad) -Module10Desc=Enkla redovisningsrapporter (loggböcker, omsättning) baserat på databasinnehåll. Använder inte huvudboken. -Module20Name=Förslag -Module20Desc=Hantering av affärsförslag -Module22Name=Mass Emailings -Module22Desc=Hantera bulk emailing +Module10Desc=Enkla redovisningsrapporter (loggböcker, omsättning) baserat på databasinnehåll. Använder inte huvudbok. +Module20Name=Offerter +Module20Desc=Hantering av offerter +Module22Name=E-postutskick +Module22Desc=Hantera e-postutskick Module23Name=Energi -Module23Desc=Övervakning av förbrukningen av energi -Module25Name=Försäljningsorder -Module25Desc=Försäljningsorderhantering +Module23Desc=Övervakning av energiförbrukning +Module25Name=Order +Module25Desc=Orderhantering Module30Name=Fakturor -Module30Desc=Förvaltning av fakturor och kreditanteckningar för kunder. Förvaltning av fakturor och kreditanteckningar för leverantörer -Module40Name=Säljare -Module40Desc=Leverantörer och inköpshantering (inköpsorder och fakturering av leverantörsfakturor) +Module30Desc=Hantering av fakturering och kreditering för kunder. Hantering av leverantörsfakturor och -kreditering. +Module40Name=Leverantörer +Module40Desc=Leverantörer och inköpshantering (inköpsorder och leverantörsfakturor) Module42Name=Felsökningsloggar -Module42Desc=Loggningsfunktioner (fil, syslog, ...). Sådana loggar är för tekniska / debug-ändamål. +Module42Desc=Loggningsfunktioner (fil, syslog, ...). Sådana loggar är för tekniska- eller debug-ändamål. Module43Name=Felsökningsfält -Module43Desc=Ett verktyg för att utveckla ett felsökningsfält i din webbläsare. -Module49Name=Redaktion -Module49Desc=Redaktör ledning +Module43Desc=Ett verktyg för att lägga till ett felsökningsfält i din webbläsare. +Module49Name=Redigerare +Module49Desc=Hantering av redigerare Module50Name=Produkter -Module50Desc=Förvaltning av produkter +Module50Desc=Produkthantering Module51Name=Massutskick -Module51Desc=Massa papper utskick ledning +Module51Desc=Hantering av fysiska massutskick Module52Name=Lager Module52Desc=Lagerhantering Module53Name=Tjänster -Module53Desc=Förvaltning av tjänster -Module54Name=Avtal / Prenumerationer -Module54Desc=Förvaltning av kontrakt (tjänster eller återkommande abonnemang) +Module53Desc=Tjänstehantering +Module54Name=Avtal/prenumerationer +Module54Desc=Hantering av kontrakt (tjänster eller återkommande prenumerationer) Module55Name=Streckkoder -Module55Desc=Streckkod eller QRkods hantering +Module55Desc=Hantering av streckkoder eller QR-koder Module56Name=Betalning med kreditöverföring -Module56Desc=Hantering av betalning av leverantörer med kreditöverföringsorder. Den inkluderar generering av SEPA-filer för europeiska länder. -Module57Name=Betalningar med autogiro -Module57Desc=Hantering av direktdebiteringsorder. Den inkluderar generering av SEPA-filer för europeiska länder. +Module56Desc=Hantering av betalleverantörer som tillhandahåller kreditöverföringar. Den inkluderar generering av SEPA-filer för europeiska länder. +Module57Name=Betalningar med direktdebitering +Module57Desc=Hantering av order med direktdebitering. Den inkluderar generering av SEPA-filer för europeiska länder. Module58Name=ClickToDial Module58Desc=Integrering av ett ClickToDial system (Asterisk, ...) -Module60Name=Klistermärken -Module60Desc=Hantering av klistermärken -Module70Name=Insatser -Module70Desc=Intervention ledning -Module75Name=Kostnader och resor anteckningar -Module75Desc=Kostnader och resor notera ledning -Module80Name=Transporter -Module80Desc=Leverans och leveranshantering -Module85Name=Banker och kontanter -Module85Desc=Förvaltning av bank eller kontanter konton +Module60Name=Stickers +Module60Desc=Hantering av stickers +Module70Name=Interventioner +Module70Desc=Hantering av interventioner +Module75Name=Kostnader och reseanteckningar +Module75Desc=Hantering av kostnader och reseanteckningar +Module80Name=Leveranser +Module80Desc=Hantering av leveranser och bipacksedlar +Module85Name=Bank & kontant +Module85Desc=Hantering av banker eller kontantkonton Module100Name=Extern webbplats -Module100Desc=Lägg till en länk till en extern hemsida som huvudmenyikon. Webbplatsen visas i en ram under toppmenyn. -Module105Name=Mailman och Sip -Module105Desc=Mailman eller SPIP gränssnitt för medlemmar modulen +Module100Desc=Lägg till en länk till en extern hemsida som huvudmenyikon. Webbplatsen visas i en ram (iFrame) under toppmenyn. +Module105Name=Mailman och SPIP +Module105Desc=Mailman- eller SPIP-gränssnitt för medlemsmodulen Module200Name=LDAP Module200Desc=LDAP-katalogsynkronisering Module210Name=PostNuke Module210Desc=PostNuke integration -Module240Name=Data export +Module240Name=Dataexport Module240Desc=Verktyg för att exportera Dolibarr-data (med hjälp) -Module250Name=Data import +Module250Name=Dataimport Module250Desc=Verktyg för att importera data till Dolibarr (med hjälp) Module310Name=Medlemmar -Module310Desc=Foundation i ledningen +Module310Desc=Hantering av medlemmar i förening eller stiftelse Module320Name=RSS-flöde Module320Desc=Lägg till ett RSS-flöde till Dolibarr-sidor -Module330Name=Bokmärken och genvägar -Module330Desc=Skapa genvägar, alltid tillgängliga, till de interna eller externa sidorna som du ofta har tillgång till -Module400Name=Projekt eller Leads -Module400Desc=Förvaltning av projekt, ledningar / möjligheter och / eller uppgifter. Du kan också tilldela ett element (faktura, order, förslag, ingripande, ...) till ett projekt och få en tvärgående vy från projektvyn. +Module330Name=Bokmärken & genvägar +Module330Desc=Skapa genvägar, alltid tillgängliga, till interna eller externa sidor som du ofta använder +Module400Name=Projekt & leads +Module400Desc=Hantering av projekt, leads/möjligheter och/eller uppgifter. Du kan också tilldela ett element (faktura, order, offert, intervention, ...) till ett projekt och få en tvärgående vy från projektvyn. Module410Name=WebCalendar Module410Desc=WebCalendar integration -Module500Name=Skatter och specialkostnader -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module500Name=Moms & specialkostnader +Module500Desc=Hantering av andra utgifter (moms, utdelningar, etc.) Module510Name=Löner -Module510Desc=Spela in och spåra anställda betalningar +Module510Desc=Registrera och spåra löneutbetalningar Module520Name=Lån -Module520Desc=Förvaltning av lån +Module520Desc=Hantering av lån Module600Name=Meddelanden om affärshändelse -Module600Desc=Skicka e-postmeddelanden som utlöses av en företagshändelse: per användare (inställning definierad på varje användare), per tredjepartskontakter (inställning definierad på var tredje part) eller genom specifika e-postmeddelanden -Module600Long=Observera att den här modulen skickar e-postmeddelanden i realtid när en viss företagshändelse inträffar. Om du letar efter en funktion för att skicka e-postpåminnelser för agendahändelser, gå till inställningen av modulens Agenda. +Module600Desc=Skicka e-post som utlöses av en företagshändelse: per användare (inställning angiven på varje användare), per tredjepartskontakter (inställning angiven på varje tredjepart) eller genom specifika e-postmeddelanden +Module600Long=Observera att den här modulen skickar e-post i realtid när en viss företagshändelse inträffar. Om du letar efter en funktion för att skicka e-postpåminnelser för agendahändelser, gå till inställningen av modulen Dagordning. Module610Name=Produktvarianter -Module610Desc=Skapande av produktvarianter (färg, storlek etc.) +Module610Desc=Skapa av produktvarianter (färg, storlek etc.) Module700Name=Donationer -Module700Desc=Donation ledning +Module700Desc=Hantering av donationer Module770Name=Kostnadsrapporter Module770Desc=Hantera kostnadsrapportrapporter (transport, måltid, ...) -Module1120Name=Leverantörsreklamförslag -Module1120Desc=Begär leverantörens kommersiella förslag och priser +Module1120Name=Leverantörsofferter +Module1120Desc=Begär pris från leverantörer Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1520Name=Dokument Generation -Module1520Desc=Massa e-postdokumentgenerering +Module1200Desc=Integration av Mantis +Module1520Name=Dokumentgeneration +Module1520Desc=Bulkgeneration av e-postdokument Module1780Name=Taggar/Kategorier -Module1780Desc=Skapa taggar / kategori (produkter, kunder, leverantörer, kontakter eller medlemmar) -Module2000Name=FCKeditor -Module2000Desc=Tillåt textfält att redigeras / formateras med hjälp av CKEditor (html) +Module1780Desc=Skapa tagg/kategori (produkter, kunder, leverantörer, kontakter eller medlemmar) +Module2000Name=WYSIWYG-redigerare +Module2000Desc=Tillåt textfält att redigeras/formateras med hjälp av CKEditor (html) Module2200Name=Dynamiska priser -Module2200Desc=Använd mattexempel för automatisk generering av priser +Module2200Desc=Använd matematiska uttryck för att skapa priser automatiskt Module2300Name=Schemalagda jobb -Module2300Desc=Schemalagd jobbadministration (alias cron eller chronotabell) -Module2400Name=Händelser / agenda -Module2400Desc=Spåra händelser. Logga in automatiska händelser för spårningsändamål eller spela in manuella händelser eller möten. Detta är huvudmodulen för bra kund- eller leverantörsrelation. -Module2500Name=DMS / ECM -Module2500Desc=Dokumenthanteringssystem / Elektronisk innehållshantering. Automatisk organisering av dina genererade eller lagrade dokument. Dela dem när du behöver. -Module2600Name=API / webbtjänster (SOAP-server) -Module2600Desc=Aktivera Dolibarr SOAP server tillhandahåller API-tjänster -Module2610Name=API / webbtjänster (REST-server) -Module2610Desc=Aktivera Dolibarr REST servern tillhandahåller API-tjänster -Module2660Name=Ring webbtjänster (SOAP-klient) -Module2660Desc=Aktivera Dolibarr webbtjänster klient (Kan användas för att trycka data / begäran till externa servrar. Endast inköpsorder stöds för närvarande.) +Module2300Desc=Hantering av schemalagda jobb (cron eller chrono-tabell) +Module2400Name=Händelser/dagordning +Module2400Desc=Registrera händelser. Logga automatiska händelser för spårningsändamål eller registrera händelser eller möten manuellt. Detta är huvudmodulen för bra kund- eller leverantörsrelation! +Module2500Name=DMS/ECM +Module2500Desc=Dokumenthanteringssystem/elektronisk innehållshantering. Automatisk organisering av dina skapade eller lagrade dokument. Dela dem när du behöver. +Module2600Name=API/webbtjänster (SOAP-server) +Module2600Desc=Aktivera Dolibarr SOAP-server som tillhandahåller API-tjänster +Module2610Name=API/webbtjänster (REST-server) +Module2610Desc=Aktivera Dolibarr REST-servern som tillhandahåller API-tjänster +Module2660Name=Webbtjänster för samtal (SOAP-klient) +Module2660Desc=Aktivera Dolibarrs webbtjänstklient (kan användas för att skicka data/begäran till externa servrar. Endast inköpsorder stöds för närvarande.) Module2700Name=Gravatar -Module2700Desc=Använd online Gravatar service (www.gravatar.com) för att visa foto av användare / medlemmar (hittas med sina e-postmeddelanden). Behöver tillgång till Internet +Module2700Desc=Använd Gravatar (www.gravatar.com) för att visa ett foto av användare/medlemmar (hittas via sina e-postadresser). Kräver tillgång till Internet Module2800Desc=FTP-klient Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind omvandlingar kapacitet +Module2900Desc=GeoIP Maxmind konverteringskapacitet Module3200Name=Oföränderliga arkiv -Module3200Desc=Aktivera en oföränderlig logg över affärshändelser. Händelser arkiveras i realtid. Loggen är en skrivskyddad tabell med kedjda händelser som kan exporteras. Denna modul kan vara obligatorisk för vissa länder. +Module3200Desc=Aktivera en oföränderlig logg över affärshändelser. Händelser arkiveras i realtid. Loggen är en skrivskyddad tabell med händelser som kan exporteras. Denna modul kan vara obligatorisk i vissa länder. Module3400Name=Sociala nätverk -Module3400Desc=Aktivera sociala nätverksfält till tredje part och adresser (skype, twitter, facebook, ...). +Module3400Desc=Aktivera fält för sociala nätverks i tredjeparter och adresser (Skype, Twitter, Facebook, ...). Module4000Name=HRM -Module4000Desc=Personalhantering (förvaltningen av avdelningen, anställningskontrakt och känslor) -Module5000Name=Multi-bolag +Module4000Desc=Personalhantering (hanterar avdelningar, anställningskontrakt och känslor) +Module5000Name=Flera bolag Module5000Desc=Gör att du kan hantera flera företag -Module6000Name=Intermoduler Arbetsflöde -Module6000Desc=Arbetsflödeshantering mellan olika moduler (automatisk skapande av objekt och / eller automatisk statusändring) -Module10000Name=webbplatser -Module10000Desc=Skapa webbplatser (offentliga) med en WYSIWYG-redigerare. Detta är en webbansvarig eller utvecklarorienterad CMS (det är bättre att känna till HTML- och CSS-språk). Ställ bara in din webbserver (Apache, Nginx, ...) för att peka på den dedikerade Dolibarr-katalogen för att ha den online på internet med ditt eget domännamn. -Module20000Name=Lämna begäranhantering -Module20000Desc=Definiera och spåra begäran om ansvarsfriskrivning -Module39000Name=Produktpartier -Module39000Desc=Massor, serienummer, mat-by / sälj-datum hantering för produkter +Module6000Name=Tvärmodul för arbetsflöde +Module6000Desc=Hantering av arbetsflöde mellan olika moduler (automatiskt skapande av objekt och/eller automatisk statusändring) +Module10000Name=Webbplatser +Module10000Desc=Skapa webbplatser med en WYSIWYG-redigerare. Detta är ett enklare CMS och det är bra att kunna HTML och/eller CSS). Ange bara typ av webbserver (Apache, Nginx, ...) och peka på din Dolibarr-installation för att ha den online med ditt eget domännamn. +Module20000Name=Hantering av ledigheter och frånvaro +Module20000Desc=Hantera och spåra anställdas ledigheter +Module39000Name=Produktbatcher +Module39000Desc=Hantering av batcher, serienummer och bäst-före/sälj-före-datum Module40000Name=Flera valutor Module40000Desc=Använd alternativa valutor i priser och dokument -Module50000Name=Paybox -Module50000Desc=Erbjud kunderna en PayBox online betalningssida (kredit- / betalkort). Detta kan användas för att dina kunder ska kunna göra ad hoc-betalningar eller betalningar relaterade till ett specifikt Dolibarr-objekt (faktura, order etc ...) +Module50000Name=PayBox +Module50000Desc=Erbjud kunderna att betala online via PayBox (kredit-/betalkort). Detta kan användas för att dina kunder ska kunna göra direktbetalningar eller betalningar relaterade till ett specifikt objekt (faktura, order etc ...) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale-modulen SimplePOS (enkel POS). +Module50100Desc=Kassamodulen SimplePOS Module50150Name=POS TakePOS -Module50150Desc=Point of Sale-modul TakePOS (POS för pekskärm, för butiker, barer eller restauranger). +Module50150Desc=Kassamodulen TakePOS (kassa för pekskärmar) Module50200Name=Paypal -Module50200Desc=Erbjud kunderna en PayPal-betalningssida för PayPal (PayPal-konto eller kredit- / betalkort). Detta kan användas för att dina kunder ska kunna göra ad hoc-betalningar eller betalningar relaterade till ett specifikt Dolibarr-objekt (faktura, order etc ...) -Module50300Name=Rand -Module50300Desc=Erbjud kunderna en Stripe online betalningssida (kredit- / betalkort). Detta kan användas för att dina kunder ska kunna göra ad hoc-betalningar eller betalningar relaterade till ett specifikt Dolibarr-objekt (faktura, order etc ...) +Module50200Desc=Erbjud kunderna möjlighet att betala med PayPal (PayPal-konto eller kredit-/betalkort). Detta kan användas för att dina kunder ska kunna göra direktbetalningar eller betalningar relaterade till ett specifikt objekt (faktura, order etc ...) +Module50300Name=Stripe +Module50300Desc=Erbjud kunderna möjlighet att betala online via Stripe (kredit-/betalkort). Detta kan användas för att dina kunder ska kunna göra direktbetalningar eller betalningar relaterade till ett specifikt objekt (faktura, order etc ...) Module50400Name=Redovisning (dubbel inmatning) -Module50400Desc=Redovisningshantering (dubbla poster, stöd General och dotterbolag Ledgers). Exportera huvudboken i flera andra bokföringsprogramformat. +Module50400Desc=Redovisningshantering (dubbla poster, stöd för huvudbok och bok för dotterbolag). Exportera huvudboken i flera andra format. Module54000Name=PrintIPP -Module54000Desc=Direktutskrift (utan att öppna dokumenten) med koppar IPP-gränssnitt (skrivaren måste vara synlig från servern och CUPS måste installeras på servern). -Module55000Name=Omröstning, undersökning eller omröstning -Module55000Desc=Skapa online-omröstningar, undersökningar eller röster (som Doodle, Studs, RDVz etc ...) +Module54000Desc=Direktutskrift (utan att öppna dokument) med Cups IPP-gränssnitt (skrivaren måste hittas från servern och Cups måste vara installerat på servern). +Module55000Name=Omröstningar eller undersökningar +Module55000Desc=Skapa omröstningar eller undersökningar (som Doodle, Studs, RDVz etc ...) Module59000Name=Marginaler -Module59000Desc=Modul för att följa marginaler -Module60000Name=Provision -Module60000Desc=Modul för att hantera uppdrag +Module59000Desc=Modul för att se marginaler +Module60000Name=Provisioner +Module60000Desc=Modul för att hantera provisioner Module62000Name=Incoterms Module62000Desc=Lägg till funktioner för att hantera Incoterms Module63000Name=Resurser Module63000Desc=Hantera resurser (skrivare, bilar, rum, ...) för att tilldela händelser -Permission11=Läs fakturor -Permission12=Skapa / ändra fakturor -Permission13=Ogiltiga kundfakturor +Module94160Name=Mottagningar +Permission11=Se fakturor +Permission12=Skapa/ändra fakturor +Permission13=Ogiltigförklara fakturor Permission14=Bekräfta fakturor Permission15=Skicka fakturor via e-post Permission16=Skapa betalningar för fakturor Permission19=Radera fakturor -Permission21=Läs affärsförslag -Permission22=Skapa / ändra affärsförslag -Permission24=Bekräfta affärsförslag -Permission25=Skicka affärsförslag -Permission26=Stäng affärsförslag -Permission27=Ta bort affärsförslag -Permission28=Export affärsförslag -Permission31=Läs produkter -Permission32=Skapa / modifiera produkter -Permission34=Ta bort produkter -Permission36=Se / hantera dold produkter -Permission38=EXPORTVARA +Permission21=Se offerter +Permission22=Skapa/ändra offert +Permission24=Bekräfta offert +Permission25=Skicka offert +Permission26=Stäng offert +Permission27=Radera offert +Permission28=Exportera offert +Permission31=Se produkter +Permission32=Skapa/ändra produkter +Permission33=Se produktpriser +Permission34=Radera produkter +Permission36=Se/hantera dolda produkter +Permission38=Exportera produkter Permission39=Ignorera minimipriset -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=Se projekt och uppgifter (delade projekt och projekt jag är kontakt för) +Permission42=Skapa/ändra projekt (delade projekt och projekt jag är kontakt för). Kan också tilldela användare till projekt och uppgifter. +Permission44=Ta bort projekt (delade projekt och projekt som jag är kontakt för) Permission45=Exportera projekt -Permission61=Läs insatser -Permission62=Skapa / ändra inlägg -Permission64=Ta bort inlägg -Permission67=Export insatser -Permission68=Skicka insatser via e-post -Permission69=Validera ingripanden -Permission70=Ogiltiga åtgärder -Permission71=Läs medlemmar -Permission72=Skapa / modifiera medlemmar -Permission74=Ta bort medlemmar -Permission75=Definera typer av medlemskap +Permission61=Se interventioner +Permission62=Skapa/ändra interventioner +Permission64=Radera interventioner +Permission67=Exportera interventioner +Permission68=Skicka interventioner via e-post +Permission69=Bekräfta interventioner +Permission70=Ogiltigförklara interventioner +Permission71=Se medlemmar +Permission72=Skapa/ändra medlemmar +Permission74=Radera medlemmar +Permission75=Ange medlemstyper Permission76=Exportera data -Permission78=Läs prenumerationer -Permission79=Skapa / ändra abonnemang -Permission81=Läs kunderna order -Permission82=Skapa / modifiera kunder order -Permission84=Bekräfta kunder order -Permission86=Skicka kunder order -Permission87=Stäng kunder order -Permission88=Avbryt kunder order -Permission89=Ta bort kunder order -Permission91=Läs sociala eller skattemässiga skatter och moms -Permission92=Skapa / ändra sociala eller skattemässiga skatter och moms -Permission93=Radera sociala eller skattemässiga skatter och moms -Permission94=Exportera social eller skatte skatter -Permission95=Läs rapporter -Permission101=Läs sendings -Permission102=Skapa / ändra sendings -Permission104=Bekräfta leveranser -Permission105=Skicka sändningar via e-post -Permission106=Exportsend -Permission109=Ta bort sendings -Permission111=Läs finansiella räkenskaper -Permission112=Skapa / ändra / radera och jämför transaktioner -Permission113=Setup financial accounts (create, manage categories of bank transactions) +Permission78=Se prenumerationer +Permission79=Skapa/ändra prenumerationer +Permission81=Se order +Permission82=Skapa/ändra order +Permission84=Bekräfta order +Permission85=Generera ordererkännande +Permission86=Skicka ordererkännande +Permission87=Stäng order +Permission88=Avbryt order +Permission89=Radera order +Permission91=Se moms och skatter +Permission92=Skapa/ändra moms eller skatt +Permission93=Radera moms eller skatt +Permission94=Exportera moms eller skatt +Permission95=Se rapporter +Permission101=Se leveranser +Permission102=Skapa/ändra leverans +Permission104=Bekräfta leverans +Permission105=Skicka leveransinformation via e-post +Permission106=Exportera leveranser +Permission109=Radera leveranser +Permission111=Se finansiella konton +Permission112=Skapa/ändra/radera och jämför transaktioner +Permission113=Inställningar för bankkonton (skapa, hantera kategorier för banktransaktioner) Permission114=Förena transaktioner -Permission115=Exporttransaktioner och kontoutdrag +Permission115=Exportera transaktioner och kontoutdrag Permission116=Överföringar mellan konton -Permission117=Hantera kontroller som skickas -Permission121=Läs tredje part kopplad till användaren -Permission122=Skapa / ändra tredje part kopplad till användaren -Permission125=Radera tredje part kopplad till användaren -Permission126=Export tredje part -Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission146=Läs leverantörer -Permission147=Läs statistik -Permission151=Läs direkta betalningsuppdrag -Permission152=Skapa / ändra en order för direktbetalning -Permission153=Skicka / överför direktbetalningsorder -Permission154=Registreringskrediter / Avslag på order för direktbetalning -Permission161=Läs kontrakt / abonnemang -Permission162=Skapa / ändra avtal / abonnemang -Permission163=Aktivera en tjänst / teckning av ett kontrakt -Permission164=Inaktivera en tjänst / teckning av ett kontrakt -Permission165=Radera kontrakt / abonnemang -Permission167=Exportkontrakt -Permission171=Läs resor och utgifter (dina och dina underordnade) -Permission172=Skapa / ändra resor och kostnader -Permission173=Ta bort resor och kostnader -Permission174=Läsa alla resor och kostnader -Permission178=Export resor och kostnader -Permission180=Läs leverantörer -Permission181=Läs köporder -Permission182=Skapa / ändra inköpsorder +Permission117=Hantera checkar som skickas +Permission121=Se tredjepart kopplad till användaren +Permission122=Skapa/ändra tredjepart kopplad till användaren +Permission125=Radera tredjepart kopplad till användaren +Permission126=Exportera tredjepart +Permission130=Skapa/ändra tredjeparts betalningsinformation +Permission141=Se alla projekt och uppgifter (även privata projekt som jag inte är kontakt för) +Permission142=Skapa/ändra alla projekt och uppgifter (även privata projekt som jag inte är kontakt för) +Permission144=Ta bort alla projekt och uppgifter (även privata projekt jag inte är kontakt för) +Permission145=Kan ange nedlagd tid, för mig eller min hirearki, för tilldelade uppgifter (tidkort) +Permission146=Se leverantörer +Permission147=Se statistik +Permission151=Se order med direktbetalning +Permission152=Skapa/ändra order med direktbetalning +Permission153=Skicka/överför order med direktbetalning +Permission154=Registrera kreditering/nekande vid order med direktdebitering +Permission161=Se kontrakt/prenumerationer +Permission162=Skapa/ändra avtal/prenumeration +Permission163=Aktivera tjänst/prenumeration i ett kontrakt +Permission164=Inaktivera tjänst/prenumeration i ett kontrakt +Permission165=Radera kontrakt/prenumeration +Permission167=Exportera kontrakt +Permission171=Se resor och utgifter (du och underställda dig) +Permission172=Skapa/ändra resor och kostnader +Permission173=Radera resor och kostnader +Permission174=Se alla resor och kostnader +Permission178=Exportera resor och kostnader +Permission180=Se leverantörer +Permission181=Se inköpsorder +Permission182=Skapa/ändra inköpsorder Permission183=Bekräfta inköpsorder -Permission184=Godkänn köporder -Permission185=Beställ eller avbeställ inköpsorder +Permission184=Godkänn inköporder +Permission185=Beställ eller avbryt inköpsorder Permission186=Ta emot inköpsorder -Permission187=Stäng köporder -Permission188=Avbryt köporder -Permission192=Skapa linjer -Permission193=Avbryt linjer -Permission194=Läs bandbreddslinjerna +Permission187=Stäng inköpsorder +Permission188=Avbryt inköpsorder +Permission192=Skapa rader +Permission193=Makulera rader +Permission194=Se bandbreddsrader Permission202=Skapa ADSL-anslutning -Permission203=Beställ anslutningar order +Permission203=Beställ anslutningsorder Permission204=Beställ anslutningar Permission205=Hantera anslutningar -Permission206=Läs anslutningar -Permission211=Läs Telefoni +Permission206=Se anslutningar +Permission211=Se telefoni Permission212=Orderrader -Permission213=Aktivera linje -Permission214=Setup Telefoni -Permission215=Setup leverantörer -Permission221=Läs emailings -Permission222=Skapa / ändra emailings (ämne, mottagare ...) -Permission223=Bekräfta emailings (medger sändning) -Permission229=Ta bort emailings +Permission213=Aktivera rad +Permission214=Inställningar för telefoni +Permission215=Inställningar för leverantörer +Permission221=Se e-postutskick +Permission222=Skapa/ändra e-postutskick (ämne, mottagare ...) +Permission223=Bekräfta e-postutskick (sändning tillåts) +Permission229=Radera e-postutskick Permission237=Visa mottagare och info -Permission238=Skicka försändelserna manuellt -Permission239=Radera utskick efter bekräftande eller märkning av skickad -Permission241=Läs kategorier -Permission242=Skapa / ändra kategorier -Permission243=Ta bort kategorier -Permission244=Se innehållet i de dolda kategorier -Permission251=Läs andra användare och grupper -PermissionAdvanced251=Läs andra användare -Permission252=Skapa / ändra andra användare, grupper och permisssions -Permission253=Skapa / ändra andra användare, grupper och behörigheter -PermissionAdvanced253=Skapa / ändra interna / externa användare och behörigheter -Permission254=Ta bort eller inaktivera andra användare -Permission255=Skapa / ändra sin egen användarinformation -Permission256=Ändra sina egna lösenord -Permission262=Utöka åtkomst till alla tredje parter OCH deras objekt (inte bara tredje parter för vilka användaren är en försäljningsrepresentant).
    Inte effektivt för externa användare (alltid begränsade till sig själva för förslag, beställningar, fakturor, kontrakt etc.).
    Inte effektivt för projekt (endast regler om projektbehörigheter, synlighet och uppdragsfrågor). -Permission263=Utöka åtkomst till alla tredje parter UTAN deras objekt (inte bara tredje parter för vilka användaren är en försäljningsrepresentant).
    Inte effektivt för externa användare (alltid begränsade till sig själva för förslag, beställningar, fakturor, kontrakt etc.).
    Inte effektivt för projekt (endast regler om projektbehörigheter, synlighet och uppdragsfrågor). -Permission271=Läs CA -Permission272=Läs fakturor +Permission238=Skicka meddelanden manuellt +Permission239=Radera utskick efter bekräftande eller när markerad som skickad +Permission241=Se kategorier +Permission242=Skapa/ändra kategorier +Permission243=Radera kategorier +Permission244=Se innehåll i dolda kategorier +Permission251=Se andra användare och grupper +PermissionAdvanced251=Se andra användare +Permission252=Skapa/ändra andra användare, grupper och rättigheter +Permission253=Skapa/ändra andra användare, grupper och rättigheter +PermissionAdvanced253=Skapa/ändra interna/externa användare och rättigheter +Permission254=Radera eller inaktivera externa användare +Permission255=Ändra andra användares lösenord +Permission256=Radera eller inaktivera andra användare +Permission262=Utöka åtkomst till alla tredjeparter OCH deras objekt (inte bara tredjeparter för vilka användaren är representant).
    Gäller inte externa användare (alltid begränsade till sig själva för offerter, order, fakturor, kontrakt etc.).
    Gäller inte heller projekt (endast regler om projekträttigheter, synlighet och uppdragsfrågor). +Permission263=Utöka åtkomst till alla tredjeparter UTAN deras objekt (inte bara tredjeparter för vilka användaren är representant).
    Gäller inte externa användare (alltid begränsade till sig själva för offerter, order, fakturor, kontrakt etc.).
    Gäller inte heller projekt (endast regler om projektbehörigheter, synlighet och uppdragsfrågor). +Permission271=Se CA +Permission272=Se fakturor Permission273=Utfärda fakturor -Permission281=Läs kontakter -Permission282=Skapa / ändra kontakter +Permission281=Se kontakter +Permission282=Skapa/ändra kontakter Permission283=Radera kontakter Permission286=Exportera kontakter -Permission291=Läs taxor -Permission292=Ange behörigheter på den taxor -Permission293=Ändra kundens avgifter -Permission300=Läs streckkoder -Permission301=Skapa / ändra streckkoder -Permission302=Radera streckkoder -Permission311=Läs tjänster -Permission312=Tilldela tjänst / abonnemang att ingå avtal -Permission331=Läs bokmärken -Permission332=Skapa / ändra bokmärken -Permission333=Ta bort bokmärken -Permission341=Läs sina egna behörigheter -Permission342=Skapa / ändra sin egen användarinformation -Permission343=Ändra sitt lösenord -Permission344=Ändra sina egna behörigheter -Permission351=Läs grupper -Permission352=Läs grupper tillstånd -Permission353=Skapa / ändra grupper +Permission291=Se taxor +Permission292=Ange rättigheter på taxor +Permission293=Ändra kunders taxa +Permission301=Generera PDF-dokument med streckkoder +Permission304=Skapa/ändra streckkoder +Permission305=Radera streckkoder +Permission311=Se tjänster +Permission312=Tilldela tjänst/prenumeratil till avtal +Permission331=Se bokmärken +Permission332=Skapa/ändra bokmärken +Permission333=Radera bokmärken +Permission341=Se egna behörigheter +Permission342=Skapa/ändra egen användarinformation +Permission343=Ändra eget lösenord +Permission344=Ändra egna behörigheter +Permission351=Se grupper +Permission352=Se grupprättigheter +Permission353=Skapa/ändra grupper Permission354=Ta bort eller inaktivera grupper Permission358=Exportera användare -Permission401=Läs rabatter -Permission402=Skapa / ändra rabatter +Permission401=Se rabatter +Permission402=Skapa/ändra rabatter Permission403=Bekräfta rabatter -Permission404=Ta bort rabatter +Permission404=Radera rabatter Permission430=Använd felsökningsfältet -Permission511=Visa löner och utbetalningar (dina och anställdas) +Permission511=Se löner och utbetalningar (dina och anställdas) Permission512=Skapa/ändra löner och utbetalningar -Permission514=Ta bort löner och utbetalningar -Permission517=Visa löner och utbetalningar för alla -Permission519=Export löner -Permission520=Läs Lån -Permission522=Skapa / ändra lån +Permission514=Radera löner och utbetalningar +Permission517=Se löner och utbetalningar för alla +Permission519=Exportera löner +Permission520=Se lån +Permission522=Skapa/ändra lån Permission524=Radera lån -Permission525=Tillgång lån kalkylator -Permission527=Exportlånet -Permission531=Läs tjänster -Permission532=Skapa / modifiera tjänster -Permission534=Ta bort tjänster -Permission536=Se / Hantera dolda tjänster +Permission525=Åtkomst lånekalkylator +Permission527=Exportera lån +Permission531=Se tjänster +Permission532=Skapa/ändra tjänster +Permission533=Se tjänstepriser +Permission534=Radera tjänster +Permission536=Se/hantera dolda tjänster Permission538=Exportera tjänster -Permission561=Läs betalningsuppdrag via kreditöverföring -Permission562=Skapa / ändra betalningsorder genom kreditöverföring -Permission563=Skicka / överför betalningsorder med kreditöverföring -Permission564=Spela in debiteringar / avslag på kreditöverföring -Permission601=Läs klistermärken -Permission602=Skapa / ändra klistermärken -Permission609=Ta bort klistermärken -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants -Permission650=Läs Bills of Materials -Permission651=Skapa / uppdatera materialräkningar -Permission652=Ta bort materialräkningar -Permission660=Läs tillverkningsorder (MO) -Permission661=Skapa / uppdatera tillverkningsorder (MO) -Permission662=Ta bort tillverkningsorder (MO) -Permission701=Läs donationer -Permission702=Skapa / ändra donationer -Permission703=Ta bort donationer -Permission771=Läs utgiftsrapporter (din och dina underordnade) -Permission772=Create/modify expense reports (for you and your subordinates) -Permission773=Radera räkningar -Permission775=Godkänn räkningar -Permission776=Betala räkningar -Permission777=Read all expense reports (even those of user not subordinates) -Permission778=Skapa / modifiera utgiftsrapporter för alla -Permission779=Export räkningar -Permission1001=Läs lager -Permission1002=Skapa / ändra lager +Permission561=Se betalningsuppdrag via kreditöverföring +Permission562=Skapa/ändra betalningsorder via kreditöverföring +Permission563=Skicka/överför betalningsorder via kreditöverföring +Permission564=Registrera debiteringar/nekanden på kreditöverföring +Permission601=Se stickers +Permission602=Skapa/ändra stickers +Permission609=Radera stickers +Permission611=Se attribut för varianter +Permission612=Skapa/uppdatera attribut för varianter +Permission613=Radera attribut för varianter +Permission650=Se Bill of Materials +Permission651=Skapa/uppdatera BoM +Permission652=Radera BoM +Permission660=Se tillverkningsorder (MO) +Permission661=Skapa/uppdatera tillverkningsorder (MO) +Permission662=Radera tillverkningsorder (MO) +Permission701=Se donationer +Permission702=Skapa/ändra donationer +Permission703=Radera donationer +Permission771=Se utgiftsrapporter (din och underordnade) +Permission772=Skapa/ändra utgiftsrapporter (för dig och underordnade) +Permission773=Radera utgiftsrapporter +Permission775=Godkänn utgiftsrapporter +Permission776=Betala utgiftsrapporter +Permission777=Se alla utläggsrapporter (även för användare som inte är dina underordnade) +Permission778=Skapa/ändra utgiftsrapporter för alla +Permission779=Exportera utgiftsrapporter +Permission1001=Se lager +Permission1002=Skapa/ändra lager Permission1003=Radera lager -Permission1004=Läs lager rörelser -Permission1005=Skapa / ändra lager rörelser -Permission1011=Visa inventarier -Permission1012=Create new inventory -Permission1014=Bekräfta inventering -Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory -Permission1101=Läs leveranskvitton -Permission1102=Skapa / modifiera leveranskvitton -Permission1104=Validera leveranskvitton +Permission1004=Se lagerrörelser +Permission1005=Skapa/ändra lagerrörelser +Permission1011=Se inventarier +Permission1012=Skapa ny inventarie +Permission1014=Bekräfta inventerie +Permission1015=Tillåt att ändra PMP-värdet för en produkt +Permission1016=Radera inventarie +Permission1101=Se leveranskvitton +Permission1102=Skapa/ändra leveranskvitton +Permission1104=Bekräfta leveranskvitton Permission1109=Ta bort leveranskvitton -Permission1121=Läs leverantörsförslag -Permission1122=Skapa / modifiera leverantörsförslag -Permission1123=Validera leverantörsförslag -Permission1124=Skicka leverantörsförslag -Permission1125=Ta bort leverantörsförslag -Permission1126=Stäng förfrågningar om leverantörspris -Permission1181=Läs leverantörer -Permission1182=Läs köporder -Permission1183=Skapa / ändra inköpsorder +Permission1121=Se leverantörsofferter +Permission1122=Skapa/ändra leverantörsofferter +Permission1123=Bekräfta leverantörsofferter +Permission1124=Skicka leverantörsofferter +Permission1125=Radera leverantörsofferter +Permission1126=Stäng prisförfrågan +Permission1181=Se leverantörer +Permission1182=Se inköpsorder +Permission1183=Skapa/ändra inköpsorder Permission1184=Bekräfta inköpsorder -Permission1185=Godkänn köporder -Permission1186=Beställ beställningsorder +Permission1185=Godkänn inköpsorder +Permission1186=Beställ inköpsorder Permission1187=Bekräfta mottagande av inköpsorder -Permission1188=Ta bort inköpsorder -Permission1189=Markera / avmarkera en inköpsordermottagning +Permission1188=Radera inköpsorder +Permission1189=Markera/avmarkera ett mottagande av inköpsorder Permission1190=Godkänn (andra godkännande) inköpsorder Permission1191=Exportera leverantörsorder och deras attribut -Permission1201=Få resultat av en export -Permission1202=Skapa / ändra en export -Permission1231=Läs leverantörsfakturor -Permission1232=Skapa / ändra försäljningsfakturor +Permission1201=Få resultatet av en export +Permission1202=Skapa/ändra en export +Permission1231=Se leverantörsfakturor +Permission1232=Skapa/ändra leverantörsfakturor Permission1233=Bekräfta leverantörsfakturor -Permission1234=Radera försäljningsfakturor -Permission1235=Skicka försäljningsfakturor via e-post +Permission1234=Radera leverantörsfakturor +Permission1235=Skicka leverantörsfakturor via e-post Permission1236=Exportera leverantörsfakturor, attribut och betalningar Permission1237=Exportera inköpsorder och deras uppgifter -Permission1251=Kör massiv import av externa data till databasen (data last) -Permission1321=Export kundfakturor, attribut och betalningar +Permission1251=Kör bulkimport av extern data till databasen (dataladdning) +Permission1321=Export fakturor, attribut och betalningar Permission1322=Öppna en betald faktura igen -Permission1421=Exportera försäljningsorder och attribut -Permission1521=Läs dokument -Permission1522=Ta bort dokument -Permission2401=Läs åtgärder (händelser eller uppgifter) som är länkade till hans användarkonto (om ägare till händelsen eller just tilldelats till) -Permission2402=Skapa / modifiera åtgärder (händelser eller uppgifter) länkade till sitt användarkonto (om ägare till händelse) -Permission2403=Ta bort åtgärder (händelser eller uppgifter) som är länkade till hans användarkonto (om ägaren till händelsen) -Permission2411=Läs åtgärder (händelser eller uppgifter) andras -Permission2412=Skapa / ändra åtgärder (händelser eller uppgifter) andras -Permission2413=Radera åtgärder (händelser eller uppgifter) andras -Permission2414=Exportera åtgärder / uppgifter från andra -Permission2501=Läsa dokument -Permission2502=Skicka eller ta bort dokument -Permission2503=Lämna eller ta bort dokument -Permission2515=Setup dokument kataloger -Permission2801=Använd FTP-klient i läsläge (bläddra och ladda endast) +Permission1421=Exportera order och attribut +Permission1521=Se dokument +Permission1522=Radera dokument +Permission2401=Se åtgärder (händelser eller uppgifter) som är länkade till ett användarkonto (om ägare till händelsen eller just tilldelats) +Permission2402=Skapa/ändra åtgärder (händelser eller uppgifter) länkade till ett användarkonto (om ägare till händelse) +Permission2403=Radera åtgärder (händelser eller uppgifter) som är länkade till ett användarkonto (om ägare till händelsen) +Permission2411=Se åtgärder (händelser eller uppgifter) för andra +Permission2412=Skapa/ändra åtgärder (händelser eller uppgifter) för andra +Permission2413=Radera åtgärder (händelser eller uppgifter) för andra +Permission2414=Exportera åtgärder/uppgifter från andra +Permission2501=Se/ladda ner dokument +Permission2502=Ladda ner dokument +Permission2503=Skicka eller radera dokument +Permission2515=Ange dokumentkataloger +Permission2801=Använd FTP-klient i läsläge (bläddra och ladda ner enbart) Permission2802=Använd FTP-klient i skrivläge (radera eller ladda upp filer) -Permission3200=Läs arkiverade händelser och fingeravtryck +Permission3200=Se arkiverade händelser och fingeravtryck Permission3301=Skapa nya moduler -Permission4001=Read skill/job/position -Permission4002=Create/modify skill/job/position -Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu -Permission4031=Read personal information -Permission4032=Write personal information -Permission10001=Läs webbplatsens innehåll -Permission10002=Skapa / ändra webbplatsinnehåll (html- och javaskriptinnehåll) -Permission10003=Skapa / modifiera webbplatsinnehåll (dynamisk php-kod). Farligt, måste reserveras för begränsade utvecklare. -Permission10005=Ta bort webbplatsinnehåll -Permission20001=Läs ledighetsförfrågningar (din ledighet och dina underordnade) -Permission20002=Skapa / ändra dina förfrågningar (din ledighet och dina underordnade) -Permission20003=Radera ledighets förfrågningar -Permission20004=Read all leave requests (even those of user not subordinates) -Permission20005=Create/modify leave requests for everybody (even those of user not subordinates) -Permission20006=Administer leave requests (setup and update balance) -Permission20007=Godkänn ledighetsförfrågningar -Permission23001=Läs Planerad jobb -Permission23002=Skapa / uppdatera Schemalagt jobb +Permission4001=Se utbildning/jobb/position +Permission4002=Skapa/ändra utbildning/jobb/position +Permission4003=Radera utbildning/jobb/position +Permission4021=Läs utvärderingar (dina och underordnade) +Permission4022=Skapa/ändra utvärderingar +Permission4023=Bekräfta utvärdering +Permission4025=Radera utvärdering +Permission4028=Se jämförelsemeny +Permission4031=Se personlig information +Permission4032=Skriva personlig information +Permission4033=Läs alla utvärderingar (även de som inte är underordnade) +Permission10001=Se webbplatsens innehåll +Permission10002=Skapa/ändra innehåll på webbplatsen webbplatsinnehåll (html- och javaskript) +Permission10003=Skapa/ändra innehåll på webbplatsen (dynamisk php-kod). Bör reserveras för utvecklare! +Permission10005=Radera innehåll från webbplatsen +Permission20001=Se ledighetsförfrågningar (din och underordnade) +Permission20002=Skapa/ändra ledighetsförfrågningar (din och underordnade) +Permission20003=Radera ledighetsansökningar +Permission20004=Se alla ledighetsansökningar (även för användare som inte är dina underordnade) +Permission20005=Skapa/ändra ledighetsansökningar (även för användare som inte är dina underordnade) +Permission20006=Hantera ledighetsansökningar (inställningar och uppdatera) +Permission20007=Godkänn ledighetsansökningar +Permission23001=Se schemalagda jobb +Permission23002=Skapa/uppdatera schemalagt jobb Permission23003=Radera schemalagt jobb -Permission23004=Utför schemalagt jobb -Permission50101=Använd försäljningsstället (SimplePOS) -Permission50151=Använd försäljningsställe (TakePOS) -Permission50152=Redigera försäljningslinjer -Permission50153=Redigera beställda försäljningsrader -Permission50201=Läs transaktioner +Permission23004=Kör schemalagt jobb +Permission50101=Använd kassa (SimplePOS) +Permission50151=Använd kassa (TakePOS) +Permission50152=Ändra orderrader +Permission50153=Ändra beställd orderrad +Permission50201=Se transaktioner Permission50202=Importera transaktioner Permission50330=Läs objekt från Zapier -Permission50331=Skapa / uppdatera objekt från Zapier -Permission50332=Ta bort objekt från Zapier -Permission50401=Binda produkter och fakturor med redovisningskonton -Permission50411=Läs operationer i storbok -Permission50412=Skriv / redigera operationer i storbok -Permission50414=Ta bort operationer i storbok -Permission50415=Ta bort alla operationer efter år och journal i huvudbok -Permission50418=Exportbokföringen -Permission50420=Rapporter och exportrapporter (omsättning, balans, tidskrifter, huvudbok) -Permission50430=Definiera budgetperioder. Validera transaktioner och stäng räkenskapsperioder. +Permission50331=Skapa/uppdatera objekt från Zapier +Permission50332=Radera objekt från Zapier +Permission50401=Binda produkter och fakturor mot redovisningskonton +Permission50411=Se operationer i huvudboken +Permission50412=Skriv/redigera operationer i huvudboken +Permission50414=Radera operationer i huvudboken +Permission50415=Ta bort alla operationer efter år och journal i huvudboken +Permission50418=Exportera bokföringen +Permission50420=Rapporter och exportrapporter (omsättning, balans, journal och huvudbok) +Permission50430=Ange budgetperioder. Bekräfta transaktioner och stänga räkenskapsperioder. Permission50440=Hantera kontoplan, konfiguration av bokföring -Permission51001=Läs tillgångar -Permission51002=Skapa / uppdatera tillgångar -Permission51003=Ta bort tillgångar -Permission51005=Konfiguration av tillgångstillgångar -Permission54001=Print -Permission55001=Läs omröstningar -Permission55002=Skapa / ändra omröstningar -Permission59001=Läs kommersiella marginaler -Permission59002=Definiera kommersiella marginaler -Permission59003=Läs varje användaremarginal -Permission63001=Läs resurser -Permission63002=Skapa / modifiera resurser -Permission63003=Ta bort resurser -Permission63004=Länka resurser till agendahändelser +Permission51001=Se tillgångar +Permission51002=Skapa/uppdatera tillgångar +Permission51003=Radera tillgångar +Permission51005=Konfigurera tillgångstyper +Permission54001=Skriv ut +Permission55001=Se omröstningar +Permission55002=Skapa/ändra omröstningar +Permission59001=Se marginaler +Permission59002=Ange marginaler +Permission59003=Se varje användarmarginal +Permission63001=Se resurser +Permission63002=Skapa/ändra resurser +Permission63003=Radera resurser +Permission63004=Länka resurser till dagordningshändelser Permission64001=Tillåt direktutskrift Permission67000=Tillåt utskrift av kvitton -Permission68001=Läs intracomm-rapporten -Permission68002=Skapa / ändra intracomm-rapport -Permission68004=Ta bort intracomm-rapporten -Permission941601=Läsa kvitton +Permission68001=Läs intracomm-rapport +Permission68002=Skapa/ändra intracomm-rapport +Permission68004=Radera intracomm-rapporten +Permission941601=Se kvitton Permission941602=Skapa och ändra kvitton -Permission941603=Validera kvitton +Permission941603=Bekräfta kvitton Permission941604=Skicka kvitton via e-post Permission941605=Exportera kvitton -Permission941606=Ta bort kvitton +Permission941606=Radera kvitton DictionaryCompanyType=Tredjepartstyper DictionaryCompanyJuridicalType=Tredjeparts juridiska personer DictionaryProspectLevel=Prospekt potentialnivå för företag DictionaryProspectContactLevel=Prospekt potentialnivå för kontakter -DictionaryCanton=Stater / Provinser +DictionaryCanton=Stater/län DictionaryRegion=Regioner DictionaryCountry=Länder DictionaryCurrency=Valutor -DictionaryCivility=Honorific titlar -DictionaryActions=Typer av agendahändelser -DictionarySocialContributions=Typer av sociala eller skattemässiga skatter -DictionaryVAT=Moms Priser och Sales Tax Rates -DictionaryRevenueStamp=Belopp för skattefrimärken +DictionaryCivility=Tilltalstitlar +DictionaryActions=Typer av händelser i dagordningen +DictionarySocialContributions=Typer av moms och skatt +DictionaryVAT=Moms- och skattesatser +DictionaryRevenueStamp=Antal skattemärken DictionaryPaymentConditions=Betalningsvillkor DictionaryPaymentModes=Betalningslägen -DictionaryTypeContact=Kontakt / adresstyper -DictionaryTypeOfContainer=Webbplats - Typ av webbsidor / containrar +DictionaryTypeContact=Kontakt-/adresstyper +DictionaryTypeOfContainer=Webbplats - typ av sida/container DictionaryEcotaxe=Miljöskatt (WEEE) DictionaryPaperFormat=Pappersformat DictionaryFormatCards=Kortformat -DictionaryFees=Kostnadsrapport - Typ av kostnadsrapporteringsrader -DictionarySendingMethods=Fraktmetoder -DictionaryStaff=antal anställda +DictionaryFees=Kostnadsrapport - typer av rader på rapporten +DictionarySendingMethods=Leveranssätt +DictionaryStaff=Antal anställda DictionaryAvailability=Leveransförsening -DictionaryOrderMethods=Beställningsmetoder -DictionarySource=Ursprung av affärsförslag / beställning +DictionaryOrderMethods=Beställningssätt +DictionarySource=Ursprung för offert/order DictionaryAccountancyCategory=Personliga grupper för rapporter DictionaryAccountancysystem=Modeller för kontoplan DictionaryAccountancyJournal=Bokföringsloggbok DictionaryEMailTemplates=E-postmallar DictionaryUnits=Enheter -DictionaryMeasuringUnits=Mätningsenheter +DictionaryMeasuringUnits=Måttenheter DictionarySocialNetworks=Sociala nätverk DictionaryProspectStatus=Prospektstatus för företag DictionaryProspectContactStatus=Prospektstatus för kontakter -DictionaryHolidayTypes=Ledighet - Typer av ledighet -DictionaryOpportunityStatus=Ledningsstatus för projekt / ledning -DictionaryExpenseTaxCat=Kostnadsrapport - Transportkategorier -DictionaryExpenseTaxRange=Kostnadsrapport - Räckvidd per transportkategori -DictionaryTransportMode=Intracomm-rapport - Transportläge -DictionaryBatchStatus=Produktparti / seriell kvalitetskontrollstatus -DictionaryAssetDisposalType=Type of disposal of assets +DictionaryHolidayTypes=Ledighet - typer av ledighet +DictionaryOpportunityStatus=Status för projekt/lead +DictionaryExpenseTaxCat=Utgiftsrapport - transportkategorier +DictionaryExpenseTaxRange=Utgiftsrapport - avstånd per transportkategori +DictionaryTransportMode=Intracomm-rapport - transportläge +DictionaryBatchStatus=Status för kvalitetskontroll med batch/sernummer +DictionaryAssetDisposalType=Typ av avyttring av tillgångar TypeOfUnit=Typ av enhet SetupSaved=Inställningarna sparas SetupNotSaved=Inställningen är inte sparad +OAuthServiceConfirmDeleteTitle=Radera OAuth-post +OAuthServiceConfirmDeleteMessage=Är du säker på att du vill radera denna OAuth-post? Alla befintliga tokens för den kommer också att raderas. +ErrorInEntryDeletion=Fel vid radering av post +EntryDeleted=Posten raderad BackToModuleList=Tillbaka till modullista -BackToDictionaryList=Tillbaka till ordböcker listan -TypeOfRevenueStamp=Typ av skattemärke -VATManagement=Sales Tax Management -VATIsUsedDesc=Som standard när du skapar prospekt, fakturor, order etc. följer försäljningsskattesatsen den aktiva standardregeln:
    Om säljaren inte är föremål för moms, är försäljningsskatten till 0. Slut på regeln.
    Om (säljarens land = köparens land) är försäljningsskatten som standard lika med försäljningsskatten för produkten i säljarens land. Slut på regeln.
    Om säljaren och köparen är både i Europeiska gemenskapen och varor är transportrelaterade produkter (frakt, frakt, flygbolag) är standardmomsen 0. Denna regel är beroende av säljarens land - var god kontakta din revisor. Momsen ska betalas av köparen till tullkontoret i sitt land och inte till säljaren. Slut på regeln.
    Om säljaren och köparen är både i Europeiska gemenskapen och köparen inte är ett företag (med ett registrerat momsnumret inom gemenskapen), är mervärdesskattavgiften till säljarens landets mervärdesskattesats. Slut på regeln.
    Om säljaren och köparen är både i Europeiska gemenskapen och köparen är ett företag (med ett registrerat momsnummer inom gemenskapen), är momsen 0 som standard. Slut på regeln.
    I annat fall är den föreslagna standarden Försäljningsskatt = 0. Slut på regeln. -VATIsNotUsedDesc=Den föreslagna försäljningsskatten är som standard 0 som kan användas för fall som föreningar, individer eller småföretag. -VATIsUsedExampleFR=I Frankrike betyder det att företag eller organisationer har ett riktigt finanssystem (förenklad verklig eller normal verklig). Ett system där momsen deklareras. -VATIsNotUsedExampleFR=I Frankrike betyder det föreningar som inte är Försäljningsskatt deklarerade eller företag, organisationer eller liberala yrken som har valt mikroföretagets skattesystem (Försäljningsskatt i franchise) och betalat en franchise Försäkringsskatt utan någon momsdeklaration. Detta val kommer att visa referensen "Ej tillämplig Försäljningsskatt - art-293B av CGI" på fakturor. +BackToDictionaryList=Tillbaka till ordboken +TypeOfRevenueStamp=Typ av skattestämpel +VATManagement=Hantera moms +VATIsUsedDesc=Som standard när du skapar prospekt, faktura, order etc. följer momssatsen den aktiva standardregeln:
    Om säljaren inte är föremål för moms är momsen satt till 0. Slut på regeln.
    Om (säljarens land=köparens land) är momsen som standard lika med försäljningsskatten för produkten i säljarens land. Slut på regeln.
    Om säljaren och köparen båda finns inom EU och varor är transportrelaterat (frakt, flygfrakt, etc) är standardmomsen 0. Denna regel är beroende av säljarens land - var god kontakta din revisor. Momsen ska betalas av köparen till tullkontoret i sitt land och inte till säljaren. Slut på regeln.
    Om säljaren och köparen båda finns inom EU och köparen inte är ett företag (med ett registrerat momsnummer), är momsen densamma som momssatsen i säljarens land. Slut på regeln.
    Om säljaren och köparen båda finns in EU och köparen är ett företag (med ett registrerat momsnummer), är momsen 0 som standard. Slut på regeln.
    I annat fall är den föreslagna standarden moms=0. Slut på regeln. +VATIsNotUsedDesc=Den föreslagna momsen är som standard 0, men som kan användas för fall som föreningar, individer eller småföretagare. +VATIsUsedExampleFR=I Frankrike betyder det att företag eller organisationer har ett riktigt system som påminner om företag (förenklad verklig eller normal verklig). Ett system där momsen deklareras. +VATIsNotUsedExampleFR=I Frankrike betyder det föreningar som inte är momsskyldiga, eller företag, organisationer eller liberala yrken som har valt mikroföretagets skattesystem (försäljningsskatt i franchise) och betalat en franchise moms utan någon momsdeklaration. Detta val kommer att visa referensen "Ej tillämplig Försäljningsskatt - art-293B av CGI" på fakturor. ##### Local Taxes ##### TypeOfSaleTaxes=Typ av moms -LTRate=Betyg -LocalTax1IsNotUsed=Använd inte andra skatte -LocalTax1IsUsedDesc=Använd en andra typ av skatt (annan än den första) -LocalTax1IsNotUsedDesc=Använd inte annan typ av skatt (annan än den första) -LocalTax1Management=Andra typen av skatt +LTRate=Taxa +LocalTax1IsNotUsed=Använd inte andra momsen +LocalTax1IsUsedDesc=Använd en andra typ av moms (annan än den första) +LocalTax1IsNotUsedDesc=Använd inte annan typ av moms (annan än den första) +LocalTax1Management=Andra typen av moms LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Använd inte tredje skatt -LocalTax2IsUsedDesc=Använd en tredje typ av skatt (annan än den första) -LocalTax2IsNotUsedDesc=Använd inte annan typ av skatt (annan än den första) -LocalTax2Management=Tredje typen av skatt +LocalTax2IsNotUsed=Använd inte tredje moms +LocalTax2IsUsedDesc=Använd en tredje typ av moms (annan än den första och andra) +LocalTax2IsNotUsedDesc=Använd inte annan typ av moms (annan än den första) +LocalTax2Management=Tredje typen av moms LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= -LocalTax1ManagementES=RE Förvaltning -LocalTax1IsUsedDescES=RE-räntan som standard när du skapar prospekt, fakturor, order etc. följer aktiv standardregel:
    Om köparen inte utsätts för RE, RE som standard = 0. Slut på regeln.
    Om köparen utsätts för RE så är RE som standard. Slut på regeln.
    +LocalTax1ManagementES=RE hantering +LocalTax1IsUsedDescES=RE-taxan följer som standard när du skapar prospekt, fakturor, order etc. en aktiv standardregel:
    Om köparen inte utsätts för RE, RE som standard = 0. Slut på regeln.
    Om köparen utsätts för RE så är RE som standard. Slut på regeln.
    LocalTax1IsNotUsedDescES=Som standard föreslås RE är 0. Slut på regeln. -LocalTax1IsUsedExampleES=I Spanien är proffs förbehåll för vissa särskilda delar av den spanska IAE. -LocalTax1IsNotUsedExampleES=I Spanien de är professionella och samhällen och på vissa delar av den spanska IAE. -LocalTax2ManagementES=IRPF Management -LocalTax2IsUsedDescES=IRPF-räntan som standard när du skapar prospekt, fakturor, order etc. följer aktiv standardregel:
    Om säljaren inte utsätts för IRPF, då IRPF som standard = 0. Slut på regeln.
    Om säljaren utsätts för IRPF, är IRPF som standard. Slut på regeln.
    -LocalTax2IsNotUsedDescES=Som standard föreslås IRPF är 0. Slut på regeln. -LocalTax2IsUsedExampleES=I Spanien, frilansare och oberoende yrkesutövare som tillhandahåller tjänster och företag som har valt skattesystemet i moduler. -LocalTax2IsNotUsedExampleES=I Spanien är de företag som inte omfattas av skattesystem för moduler. -RevenueStampDesc="Skattstämpel" eller "inkomststämpel" är en fast skatt du per faktura (Det beror inte på fakturabeloppet). Det kan också vara en procentskatt men att använda den andra eller tredje typen av skatt är bättre för procentskatt eftersom skattefrimärken inte ger någon rapportering. Endast få länder använder denna typ av skatt. +LocalTax1IsUsedExampleES=I Spanien är professionella föremål för vissa särskilda delar av den spanska IAE. +LocalTax1IsNotUsedExampleES=I Spanien är professionella och sällskap föremål för vissa delar av den spanska IAE. +LocalTax2ManagementES=IRPF-hantering +LocalTax2IsUsedDescES=IRPF-taxan följer som standard när du skapar prospekt, fakturor, order etc. en aktiv standardregel:
    Om säljaren inte utsätts för IRPF, då är IRPF som standard = 0. Slut på regeln.
    Om säljaren utsätts för IRPF, är IRPF som standard. Slut på regeln.
    +LocalTax2IsNotUsedDescES=Som standard föreslås att IRPF är 0. Slut på regeln. +LocalTax2IsUsedExampleES=I Spanien är frilansare och oberoende professionella som tillhandahåller tjänster, och företag som har valt ett modulbaserat skattesystem. +LocalTax2IsNotUsedExampleES=I Spanien är de företag som inte omfattas av modulbaserat skattesystem. +RevenueStampDesc="Skattstämpel" eller "intäktsstämpel" är en fast skatt du betalar per faktura (det beror inte på fakturabeloppet). Det kan också vara en procentskatt men att använda den andra eller tredje typen av moms är bättre för procentskatt eftersom skattestämplar inte ger någon rapportering. Endast få länder använder denna typ av skatt. UseRevenueStamp=Använd en skattestämpel -UseRevenueStampExample=Skattstämpelns värde definieras som standard i inställningen av ordböcker (%s - %s - %s) +UseRevenueStampExample=Skattstämpelns värde definieras som standard i inställningen i ordböcker (%s - %s - %s) CalcLocaltax=Rapporter om lokala skatter -CalcLocaltax1=Försäljning - Inköp -CalcLocaltax1Desc=Lokala skatter rapporter beräknas med skillnaden mellan localtaxes försäljning och localtaxes inköp +CalcLocaltax1=Försäljning - inköp +CalcLocaltax1Desc=Lokala skatterapporter beräknas med skillnaden mellan lokal försäljningsskatt och lokal inköpsskatt CalcLocaltax2=Inköp -CalcLocaltax2Desc=Lokala skatter rapporter är summan av localtaxes inköp +CalcLocaltax2Desc=Lokala skatterapporter är summan av lokal inköpsskatt CalcLocaltax3=Försäljning -CalcLocaltax3Desc=Lokala skatter rapporter är summan av localtaxes försäljning +CalcLocaltax3Desc=Lokala skatter rapporter är summan av lokal försäljningsskatt NoLocalTaxXForThisCountry=Enligt skatteupplägget (se %s - %s - %s) behöver ditt land inte använda en sådan typ av skatt -LabelUsedByDefault=Etikett som används som standard om ingen översättning kan hittas för kod +LabelUsedByDefault=Etikett att använda som standard om ingen översättning kan hittas för kod LabelOnDocuments=Etikett på dokument -LabelOrTranslationKey=Etikett eller översättningstangent +LabelOrTranslationKey=Etikett eller översättningsnyckel ValueOfConstantKey=Värdet på en konfigurationskonstant -ConstantIsOn=Alternativ %s är på +ConstantIsOn=Alternativet %s är aktiverat NbOfDays=Antal dagar AtEndOfMonth=I slutet av månaden -CurrentNext=Current / Next +CurrentNext=En specifik dag i månaden Offset=Offset AlwaysActive=Alltid aktiv Upgrade=Uppgradera -MenuUpgrade=Uppgradera / Extend -AddExtensionThemeModuleOrOther=Installera / installera extern app / modul +MenuUpgrade=Uppgradera/utöka +AddExtensionThemeModuleOrOther=Installera extern app/modul WebServer=Webbserver -DocumentRootServer=Webbservers rotkatalog -DataRootServer=Datafiler katalog +DocumentRootServer=Webbservers rootkatalog +DataRootServer=Katalog för datafiler IP=IP Port=Port -VirtualServerName=Virtuell server namn +VirtualServerName=Namn på virtuell server OS=OS PhpWebLink=Webb-php länk Server=Server Database=Databas -DatabaseServer=Databas värd -DatabaseName=Databas namn -DatabasePort=Databas hamn -DatabaseUser=Databas användare -DatabasePassword=Databas lösenord +DatabaseServer=Databasvärd +DatabaseName=Databasnamn +DatabasePort=Databasport +DatabaseUser=Databasanvändare +DatabasePassword=Databaslösenord Tables=Tabeller -TableName=Tabell namn +TableName=Tabellnamn NbOfRecord=Antal poster Host=Server DriverType=Driver typ -SummarySystem=Systeminformation sammandrag -SummaryConst=Lista över alla Dolibarr inställning parametrar -MenuCompanySetup=Företag / Organisation -DefaultMenuManager= Standard Menu Manager -DefaultMenuSmartphoneManager=Smartphone menyhanteraren -Skin=Hud tema -DefaultSkin=Standard hud tema -MaxSizeList=Max längd för lista -DefaultMaxSizeList=Standard max längd för listor -DefaultMaxSizeShortList=Standard max längd för korta listor (dvs i kundkort) +SummarySystem=Sammandrag systeminformation +SummaryConst=Lista över alla inställningsparametrar +MenuCompanySetup=Företag/organisation +DefaultMenuManager= Standard menyhanterare +DefaultMenuSmartphoneManager=Menyhanterare för mobila enheter +Skin=Tema för utseende +DefaultSkin=Standardtema +MaxSizeList=Maxlängd för lista +DefaultMaxSizeList=Standard maxlängd för listor +DefaultMaxSizeShortList=Standard maxlängd för korta listor (exempelvis i kundkort) MessageOfDay=Dagens meddelande -MessageLogin=Inloggningssidan meddelande -LoginPage=Login sida +MessageLogin=Meddelande på inloggningssida +LoginPage=Inloggningssida BackgroundImageLogin=Bakgrundsbild -PermanentLeftSearchForm=Permanent sökformuläret på menyn till vänster +PermanentLeftSearchForm=Permanent sökformulär i menyn till vänster DefaultLanguage=Standardspråk -EnableMultilangInterface=Aktivera flerspråkig support för kund- eller leverantörsrelationer -EnableShowLogo=Visa företagslogotypen i menyn -CompanyInfo=Företag / Organisation -CompanyIds=Företag / Organisationsidentiteter +EnableMultilangInterface=Aktivera flerspråkigt stöd för kunder- eller leverantörer +EnableShowLogo=Visa logotyp i menyn +CompanyInfo=Företag/organisation +CompanyIds=Identitet för företag/organisation CompanyName=Namn CompanyAddress=Adress -CompanyZip=Zip -CompanyTown=Staden +CompanyZip=Postnummer +CompanyTown=Ort CompanyCountry=Land -CompanyCurrency=Viktigaste valuta -CompanyObject=Föremålet för bolagets verksamhet -IDCountry=ID-land -Logo=Logo -LogoDesc=Huvudlogotyp för företaget. Kommer att användas i genererade dokument (PDF, ...) -LogoSquarred=Logotyp (kvadrat) -LogoSquarredDesc=Måste vara en fyrkantig ikon (bredd = höjd). Den här logotypen kommer att användas som favoritikon eller annat behov som för den övre menyraden (om den inte är inaktiverad i skärmkonfigurationen). -DoNotSuggestPaymentMode=Pekar inte -NoActiveBankAccountDefined=Inga aktiva bankkonto definierade -OwnerOfBankAccount=Ägare till %s bankkonto -BankModuleNotActive=Bankkonton modulen inte aktiverad -ShowBugTrackLink=Visa länken "%s" -ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' +CompanyCurrency=Huvudvaluta +CompanyObject=Företagets mål +IDCountry=Land ID +Logo=Logotyp +LogoDesc=Logotyp för företaget. Kommer att användas i dokument (PDF, ...) +LogoSquarred=Logotyp (kvadratisk) +LogoSquarredDesc=Måste vara fyrkantig (bredd = höjd). Den här logotypen kommer att användas som favicon eller annat som rör den övre menyraden (om den inte är inaktiverad). +DoNotSuggestPaymentMode=Föreslå inte +NoActiveBankAccountDefined=Inga aktivt bankkonto angivet +OwnerOfBankAccount=Innehavare till bankkontot %s +BankModuleNotActive=Modlen bankkonton inte aktiverad +ShowBugTrackLink=Visa länken %s +ShowBugTrackLinkDesc=Lämna tomt för att inte visa denna länk, använd värdet 'github' för länk till Dolibarr projektet eller ange en url direkt 'https://...' Alerts=Varningar -DelaysOfToleranceBeforeWarning=Displaying a warning alert for... -DelaysOfToleranceDesc=Ställ in fördröjningen innan en varningsikon %s visas på skärmen för det sena elementet. -Delays_MAIN_DELAY_ACTIONS_TODO=Planerade händelser (agendahändelser) inte slutförda +DelaysOfToleranceBeforeWarning=Visa en varning för... +DelaysOfToleranceDesc=Ange fördröjning innan en varningsikon %s visas på skärmen för det försenade elementet. +Delays_MAIN_DELAY_ACTIONS_TODO=Planerade händelser (dagordningshändelser) som inte är slutförda Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projektet är inte stängt i tid Delays_MAIN_DELAY_TASKS_TODO=Planerad uppgift (projektuppgifter) inte slutförd Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order inte behandlad -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Köporder inte behandlad -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Förslaget är inte avslutat -Delays_MAIN_DELAY_PROPALS_TO_BILL=Förslag inte fakturerat -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service för att aktivera -Delays_MAIN_DELAY_RUNNING_SERVICES=Förfallitjänst -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Obetalda fakturor utan betalning -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Obetalda kundfaktura -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Väntar på bankavstämning +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Inköpsorder inte behandlad +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Offert inte avslutat +Delays_MAIN_DELAY_PROPALS_TO_BILL=Offert inte fakturerad +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tjänst att aktivera +Delays_MAIN_DELAY_RUNNING_SERVICES=Förfallen tjänst +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Obetald leverantörsfaktura +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Obetald faktura +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Inväntar bankavstämning Delays_MAIN_DELAY_MEMBERS=Försenad medlemsavgift -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Kontrollera insättning inte gjort -Delays_MAIN_DELAY_EXPENSEREPORTS=Utläggsrapport att godkänna -Delays_MAIN_DELAY_HOLIDAYS=Lämna begäranden att godkänna -SetupDescription1=Innan du börjar använda Dolibarr måste vissa initialparametrar definieras och moduler aktiveras / konfigureras. +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Checkinsättning inte gjord +Delays_MAIN_DELAY_EXPENSEREPORTS=Utgiftsrapport att godkänna +Delays_MAIN_DELAY_HOLIDAYS=Ledighetsansökan att godkänna +SetupDescription1=Innan du börjar använda Dolibarr måste vissa grundinställningar göras och moduler aktiveras/konfigureras. SetupDescription2=Följande två avsnitt är obligatoriska (de två första inmatningarna i inställningsmenyn): -SetupDescription3= %s -> %s

    Grundläggande parametrar som används för att anpassa standardbeteendet för din applikation (t.ex. för landsrelaterade funktioner). -SetupDescription4= %s -> %s

    Denna programvara är en serie med många moduler / applikationer. Modulerna relaterade till dina behov måste vara aktiverade och konfigurerade. Menyposter visas med aktiveringen av dessa moduler. +SetupDescription3= %s -> %s

    Grundläggande parametrar som används för att anpassa standardbeteendet (t.ex. för landsspecifika funktioner). +SetupDescription4= %s -> %s

    Denna programvara innehåller en serie av många moduler. Modulerna för just dina behov måste vara aktiverade och konfigurerade. Menyposter visas efter aktiveringen av dessa moduler. SetupDescription5=Andra inställningsmenyposter hanterar valfria parametrar. SetupDescriptionLink=%s - %s -SetupDescription3b=Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4b=This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. +SetupDescription3b=Grundläggande inställningar för att anpassa standardbeteendet (t.ex. för landsspecifika funktioner). +SetupDescription4b=Denna programvara innehåller en serie av många moduler. Modulerna för just dina behov måste vara aktiverade och konfigurerade. Menyposter visas efter aktiveringen av dessa moduler. AuditedSecurityEvents=Säkerhetshändelser som granskas -NoSecurityEventsAreAduited=Inga säkerhetshändelser granskas. Du kan aktivera dem från meny %s +NoSecurityEventsAreAduited=Inga säkerhetshändelser granskas. Du kan aktivera dem från menyn %s Audit=Säkerhetshändelser InfoDolibarr=Om Dolibarr -InfoBrowser=Om Browser +InfoBrowser=Om webbläsaren InfoOS=Om OS -InfoWebServer=Om webbserver +InfoWebServer=Om webbservern InfoDatabase=Om databasen InfoPHP=Om PHP -InfoPerf=Om föreställningar -InfoSecurity=Om säkerhet -BrowserName=Browser namn -BrowserOS=Browser OS -ListOfSecurityEvents=Förteckning över Dolibarr säkerhetshändelser -SecurityEventsPurged=Säkerhetshändelser renas -LogEventDesc=Aktivera loggning för specifika säkerhetshändelser. Administratörer loggen via menyn %s - %s . Varning kan denna funktion generera en stor mängd data i databasen. -AreaForAdminOnly=Inställningsparametrar kan ställas in av endast administratörs användare . -SystemInfoDesc=System information diverse teknisk information får du i skrivskyddad läge och synlig för administratörer bara. -SystemAreaForAdminOnly=Det här området är endast tillgängligt för administratörsanvändare. Dolibarr användarbehörigheter kan inte ändra denna begränsning. -CompanyFundationDesc=Redigera informationen för ditt företag / din organisation. Klicka på knappen "%s" längst ner på sidan när du är klar. -AccountantDesc=Om du har en extern revisor / bokförare kan du redigera informationen här. +InfoPerf=Om prestandan +InfoSecurity=Om säkerheten +BrowserName=Webbläsarens namn +BrowserOS=Webbläsarens OS +ListOfSecurityEvents=Förteckning över säkerhetshändelser +SecurityEventsPurged=Säkerhetshändelser rensas +TrackableSecurityEvents=Spårbara säkerhetshändelser +LogEventDesc=Aktivera loggning för specifika säkerhetshändelser. Administratörer når loggen via menyn %s - %s. Varning! Denna funktion kan denna generera en stor mängd data i databasen. +AreaForAdminOnly=Inställningar kan ändras av administratörer enbart. +SystemInfoDesc=Systeminformation diverse teknisk information du får i skrivskyddat läge och som är synligt för administratörer enbart. +SystemAreaForAdminOnly=Det här området är endast tillgängligt för administratörer. Dolibarr användarrättigheter kan inte ändra denna begränsning. +CompanyFundationDesc=Redigera informationen för ditt företag/din organisation. Klicka på knappen %s längst ner på sidan när du är klar. +MoreNetworksAvailableWithModule=Fler sociala nätverk kan vara tillgängliga genom att aktivera modulen "Sociala nätverk". +AccountantDesc=Om du har en extern revisor/bokföringskonsult kan du ange informationen här. AccountantFileNumber=Bokföringskod -DisplayDesc=Parametrar som berör utseende och presentation av applikationen kan bli modifierade här. -AvailableModules=Tillgängliga app / moduler -ToActivateModule=För att aktivera moduler, gå på Setup-menyn (Hem-> Inställningar-> Modules). -SessionTimeOut=Time out för session -SessionExplanation=Detta nummer garanterar att sessionen aldrig upphör att gälla före denna fördröjning, om sessionen rengöringsmedel görs av Internal PHP-rengöringsmedel (och inget annat). Intern rengöringsprogram för PHP-session garanterar inte att sessionen upphör att gälla efter denna fördröjning. Det kommer att löpa ut efter denna fördröjning och när sessionen renare körs, så varje %s / %s åtkomst, men endast under åtkomst av andra sessioner (om värdet är 0, betyder det att rensning av session endast sker av en extern bearbeta).
    Obs! På vissa servrar med en extern sessionrensningsmekanism (cron under debian, ubuntu ...) kan sessionerna förstöras efter en period som definieras av en extern inställning, oavsett vad värdet som anges här är. -SessionsPurgedByExternalSystem=Sessionerna på denna server verkar ha blivit rensade av extern händelse (cron under debian, ubuntu...), var %s sekund ( Värdet är session.gc_maxlifetime), så att ändra värdet här har ingen effekt. Du måste be serveradministratören att ändra sessionstiden -TriggersAvailable=Tillgängliga triggers -TriggersDesc=Utlösare är filer som ändrar beteendet hos Dolibarr-arbetsflödet en gång kopierat till katalogen htdocs / core / triggers . De inser nya åtgärder, aktiverade på Dolibarr-evenemang (ny företagsskapande, fakturabekräftande, ...). -TriggerDisabledByName=Triggers i denna fil är inaktiverade av-NORUN suffixet i deras namn. -TriggerDisabledAsModuleDisabled=Triggers i denna fil är funktionshindrade modul %s är inaktiverad. -TriggerAlwaysActive=Triggers i denna fil är alltid aktiva, oavsett är det aktiverade Dolibarr moduler. -TriggerActiveAsModuleActive=Triggers i denna fil är verksamma som modul %s är aktiverat. +DisplayDesc=Parametrar som rör utseende och presentation kan ändras här. +AvailableModules=Tillgängliga moduler +ToActivateModule=För att aktivera moduler, gå till menyn Inställningar (Start -> Inställningar-> Moduler). +SessionTimeOut=Sessionen fick time-out +SessionExplanation=Detta värde garanterar att sessionen aldrig upphör att gälla före denna fördröjning, om sessionen rensas av en intern PHP-rensare och inget annat. Interna rensningar för PHP-sessioner garanterar inte att sessionen upphör att gälla efter denna fördröjning. Det kommer att löpa ut efter denna fördröjning och när sessionens rensare körs, så varje %s/%s åtkomst, men endast under åtkomst av andra sessioner (om värdet är 0, betyder det att rensning av session endast sker av en extern process).
    Obs! På vissa servers med extern sessionrensning (exempelvis cron under Debian, Ubuntu ...) kan sessionerna förstöras efter en period som anges av en extern inställning, oavsett vad värdet som anges här är. +SessionsPurgedByExternalSystem=Sessionerna på denna server verkar ha blivit rensade av en extern process (cron under Debian, Ubuntu...), var %s sekund (värdet är session.gc_maxlifetime), så att ändra värdet här har ingen effekt. Du måste be serveradministratören att ändra sessionstiden +TriggersAvailable=Tillgängliga utlösare +TriggersDesc=Utlösare är filer som ändrar beteendet i arbetsflödet väl kopierat till katalogen htdocs/core/triggers. De verkställer nya åtgärder baserade på händelser i systemet (nytt företag, bekräftad faktura, ...). +TriggerDisabledByName=Utlösare i denna fil är inaktiverade av -NORUN suffixet i deras namn. +TriggerDisabledAsModuleDisabled=Utlösare i denna fil är inaktiverade då modulen %s är inaktiverad. +TriggerAlwaysActive=Utlösare i denna fil är alltid aktiva, oavsett vilka moduler som är aktiverade. +TriggerActiveAsModuleActive=Utlösare i denna fil är aktiva då modulen %s är aktiv. GeneratedPasswordDesc=Välj den metod som ska användas för automatiskt genererade lösenord. -DictionaryDesc=Sätt in alla referensdata. Du kan lägga till dina värden till standardvärdet. -ConstDesc=Denna sida låter dig redigera (åsidosätta) parametrar som inte är tillgängliga på andra sidor. Dessa är oftast reserverade parametrar för utvecklare / avancerad felsökning. -MiscellaneousDesc=Alla andra säkerhetsrelaterade parametrar definieras här. -LimitsSetup=Gränser / Precision inställning -LimitsDesc=Du kan definiera gränser, precisioner och optimeringar som används av Dolibarr här -MAIN_MAX_DECIMALS_UNIT=Max. decimaler för enhetspriser -MAIN_MAX_DECIMALS_TOT=Max. decimaler för totala priser -MAIN_MAX_DECIMALS_SHOWN=Max. decimaler för priser som visas på skärmen . Lägg till en ellipsis ... efter denna parameter (t ex "2 ...") om du vill se " ... " suffixed till den avkortade priset. -MAIN_ROUNDING_RULE_TOT=Steg av avrundningsintervall (för länder där avrundning görs på något annat än bas 10. Till exempel, sätt 0,05 om avrundning görs med 0,05 steg) -UnitPriceOfProduct=Net priset per enhet för en produkt -TotalPriceAfterRounding=Totalpris (exkl / moms / inkl skatt) efter avrundning -ParameterActiveForNextInputOnly=Parameter effektiv för nästa inmatning -NoEventOrNoAuditSetup=Ingen säkerhetshändelse har loggats. Detta är normalt om Audit inte har aktiverats på sidan "Inställning - Säkerhet - Händelser". +DictionaryDesc=Ange all referensdata. Du kan lägga till dina värden i standardvärdet. +ConstDesc=Denna sida låter dig redigera (åsidosätta) inställningar som inte är tillgängliga på andra sidor. Dessa är oftast reserverade för utvecklare/avancerad felsökning. +MiscellaneousDesc=Alla andra säkerhetsrelaterade inställningar anges här. +LimitsSetup=Begränsningar/precisionsinställningar +LimitsDesc=Du kan ange begränsningar, precisioner och optimeringar som används av Dolibarr här +MAIN_MAX_DECIMALS_UNIT=Max decimaler för enhetspriser +MAIN_MAX_DECIMALS_TOT=Max decimaler för totala priset +MAIN_MAX_DECIMALS_SHOWN=Max decimaler för priser som visas på skärmen. Lägg till en ellips ... efter denna parameter (t ex "2 ...") om du vill att ... ska visas efter det avkortade priset. +MAIN_ROUNDING_RULE_TOT=Steg för avrundningsintervall (för länder där avrundning görs på någon annat än bas 10. Till exempel, anger du 0,05 om avrundning görs med 0,05 steg) +UnitPriceOfProduct=Nettopris per enhet för en produkt +TotalPriceAfterRounding=Totalpris (exkl/inkl moms) efter avrundning +ParameterActiveForNextInputOnly=Inställning verkställs för nästa inmatning enbart +NoEventOrNoAuditSetup=Ingen säkerhetshändelse har loggats. Detta är normalt om granskning inte har aktiverats på sidan "Inställningar - Säkerhet - Händelser". NoEventFoundWithCriteria=Inga säkerhetshändelser har hittats för dessa sökkriterier. SeeLocalSendMailSetup=Se din lokala sendmail inställning -BackupDesc=En komplett backup av en Dolibarr-installation kräver två steg. -BackupDesc2=Säkerhetskopiera innehållet i katalogen "dokument" ( %s ) som innehåller alla uppladdade och genererade filer. Detta inkluderar också alla dumpfiler som genererades i steg 1. Den här åtgärden kan ta flera minuter. -BackupDesc3=Säkerhetskopiera strukturen och innehållet i din databas ( %s ) till en dumpfil. För detta kan du använda följande assistent. -BackupDescX=Den arkiverade katalogen ska lagras på ett säkert ställe. -BackupDescY=Den genererade dumpfilen bör förvaras på ett säkert ställe. -BackupPHPWarning=Säkerhetskopiering kan inte garanteras med den här metoden. Föregående rekommenderas. -RestoreDesc=För att återställa en Dolibarr-säkerhetskopiering krävs två steg. -RestoreDesc2=Återställ säkerhetskopieringsfilen (t.ex. zip-filen) i katalogen "Dokument" till en ny Dolibarr-installation eller till den här aktuella dokumentkatalogen ( %s ). -RestoreDesc3=Återställ databasstrukturen och data från en säkerhetskopieringsdumpfil till databasen för den nya Dolibarr-installationen eller i databasen för den aktuella installationen ( %s ). Varning, när återställningen är klar måste du använda ett inloggnings / lösenord som existerade från backuptid / installation för att ansluta igen.
    För att återställa en backup-databas till den här nuvarande installationen kan du följa den här assistenten. +BackupDesc=En komplett säkerhetskopia av installationen kräver två steg. +BackupDesc2=Säkerhetskopiera innehållet i katalogen "documents" (%s) som innehåller alla uppladdade och genererade filer. Detta inkluderar också alla dumpfiler som genererades i steg 1. Den här åtgärden kan ta flera minuter. +BackupDesc3=Säkerhetskopiera strukturen och innehållet i din databas (%s) till en dumpfil. För detta kan du använda följande assistent. +BackupDescX=Den arkiverade katalogen bör lagras på ett säkert ställe. +BackupDescY=Den genererade dumpfilen bör lagras på ett säkert ställe. +BackupPHPWarning=Säkerhetskopiering kan inte garanteras med denna metod. Föregående rekommenderas. +RestoreDesc=För att återställa en säkerhetskopia krävs två steg. +RestoreDesc2=Återställ säkerhetskopian (t.ex. zip-filen) i katalogen "documents" till en ny installation eller till denna aktuella katalog (%s). +RestoreDesc3=Återställ databasstrukturen och data från en dumpfil till databasen för den nya installationen eller i databasen aktuell installation (%s). Varning! När återställningen är klar måste du använda ett inloggningsnamn/lösenord som existerade från tiden säkerhetskopian togs!
    För att återställa en säkerhetskopierad databas till den här installationen kan du använda den här assistenten. RestoreMySQL=MySQL import ForcedToByAModule=Denna regel tvingas %s av en aktiverad modul -ValueIsForcedBySystem=Detta värde tvingas av systemet. Du kan inte ändra det. -PreviousDumpFiles=Befintliga säkerhetskopieringsfiler +ValueIsForcedBySystem=Detta värde är påtvingat av systemet. Du kan inte ändra det. +PreviousDumpFiles=Befintliga säkerhetskopior PreviousArchiveFiles=Befintliga arkivfiler WeekStartOnDay=Första dagen i veckan -RunningUpdateProcessMayBeRequired=Att köra uppgraderingsprocessen verkar vara nödvändigt (Programversion %s skiljer sig från databasversionen %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Du måste köra det här kommandot från kommandoraden efter login till ett skal med användare %s. +RunningUpdateProcessMayBeRequired=Att köra uppgraderingen verkar vara nödvändigt (programversion %s skiljer sig från databasversionen %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Du måste köra det här kommandot från kommandoraden efter inloggning till ett skal med användare %s eller så får du lägga till -W i slutet av kommandot för att ange %s lösenord. YourPHPDoesNotHaveSSLSupport=SSL-funktioner inte är tillgängliga i din PHP -DownloadMoreSkins=Mer skinn att ladda ner -SimpleNumRefModelDesc=Returnerar referensnumret i formatet %syymm-nnnn där yy är året, mm är månaden och nnnn är ett sekventiellt automatiskt ökande nummer utan återställning -SimpleNumRefNoDateModelDesc=Returnerar referensnumret i formatet %s-nnnn där nnnn är ett sekventiellt automatiskt inkrementeringsnummer utan återställning +DownloadMoreSkins=Fler utseenden att ladda ner +SimpleNumRefModelDesc=Ger referensnumret i formatet %syymm-nnnn där yy är år, mm är månad och nnnn är ett löpnummer utan återställning +SimpleRefNumRefModelDesc=Ger ett referensnummer i formatet n, där n är en sekventiellt löpnummer utan återställning +AdvancedNumRefModelDesc=Ger ett referensnummer i formatet %syymm-nnnn där yy är år, mm är månad och nnnn är ett sekventiellt löpnummer utan återställning +SimpleNumRefNoDateModelDesc=Ger referensnumret i formatet %s-nnnn där nnnn är ett löpnummer utan återställning ShowProfIdInAddress=Visa professionellt ID med adresser -ShowVATIntaInAddress=Dölj momsnummer inom gemenskapen -TranslationUncomplete=Partiell översättning -MAIN_DISABLE_METEO=Inaktivera meterologi +ShowVATIntaInAddress=Dölj momsnummer +TranslationUncomplete=Delvis översatt +MAIN_DISABLE_METEO=Inaktivera väderminiatyr MeteoStdMod=Standardläge MeteoStdModEnabled=Standardläge aktiverat MeteoPercentageMod=Procentläge -MeteoPercentageModEnabled=Procentuell läge aktiverad +MeteoPercentageModEnabled=Procentuellt läge aktiverat MeteoUseMod=Klicka för att använda %s -TestLoginToAPI=Testa logga in API -ProxyDesc=Vissa funktioner i Dolibarr kräver internetåtkomst. Definiera här internetanslutningsparametrarna, t.ex. tillgång via en proxyserver om det behövs. -ExternalAccess=Extern / Internetåtkomst -MAIN_PROXY_USE=Använd en proxyserver (annars är åtkomst direkt till internet) -MAIN_PROXY_HOST=Proxyserver: Namn / Adress +TestLoginToAPI=Testa inloggning API +ProxyDesc=Vissa funktioner kräver internetåtkomst. Ange eventuella extra inställningar, exempelvis proxyserver om det behövs, här. +ExternalAccess=Extern/internetåtkomst +MAIN_PROXY_USE=Använd en proxyserver (annars direktåtkomst till internet) +MAIN_PROXY_HOST=Proxyserver: Namn/Adress MAIN_PROXY_PORT=Proxyserver: Port -MAIN_PROXY_USER=Proxyserver: Logga in / Användare +MAIN_PROXY_USER=Proxyserver: Inloggning/Användare MAIN_PROXY_PASS=Proxyserver: Lösenord -DefineHereComplementaryAttributes=Definiera ytterligare / anpassade attribut som måste läggas till: %s -ExtraFields=Komplementära egenskaper +DefineHereComplementaryAttributes=Ange ytterligare/anpassade attribut som måste läggas till: %s +ExtraFields=Kompletterande attribut ExtraFieldsLines=Kompletterande attribut (rader) -ExtraFieldsLinesRec=Kompletterande attribut (mallar fakturor linjer) +ExtraFieldsLinesRec=Kompletterande attribut (mallar fakturarader) ExtraFieldsSupplierOrdersLines=Kompletterande attribut (orderrader) -ExtraFieldsSupplierInvoicesLines=Kompletterande attribut (faktura linjer) -ExtraFieldsThirdParties=Kompletterande attribut (tredje part) -ExtraFieldsContacts=Kompletterande attribut (kontakter / adress) -ExtraFieldsMember=Kompletterande attribut (medlem) -ExtraFieldsMemberType=Kompletterande attribut (ledamot typ) +ExtraFieldsSupplierInvoicesLines=Kompletterande attribut (fakturarader) +ExtraFieldsThirdParties=Kompletterande attribut (tredjepart) +ExtraFieldsContacts=Kompletterande attribut (kontakter/adress) +ExtraFieldsMember=Kompletterande attribut (medlemmar) +ExtraFieldsMemberType=Kompletterande attribut (medlemstyp) ExtraFieldsCustomerInvoices=Kompletterande attribut (fakturor) ExtraFieldsCustomerInvoicesRec=Kompletterande attribut (mallar fakturor) -ExtraFieldsSupplierOrders=Kompletterande attribut (beslut) +ExtraFieldsSupplierOrders=Kompletterande attribut (order) ExtraFieldsSupplierInvoices=Kompletterande attribut (fakturor) ExtraFieldsProject=Kompletterande attribut (projekt) -ExtraFieldsProjectTask=Kompletterande attribut (arbetsuppgifter) +ExtraFieldsProjectTask=Kompletterande attribut (uppgifter) ExtraFieldsSalaries=Kompletterande attribut (löner) -ExtraFieldHasWrongValue=Attribut% s har ett felaktigt värde. +ExtraFieldHasWrongValue=Attributet %s har ett felaktigt värde. AlphaNumOnlyLowerCharsAndNoSpace=endast gemena alfanumeriska tecken utan mellanslag -SendmailOptionNotComplete=Varning, på vissa Linux-system, för att skicka e-post från e-post, sendmail utförande inställning måste conatins Alternativ-ba (parameter mail.force_extra_parameters i din php.ini-fil). Om vissa mottagare inte emot e-post, försök att redigera den här PHP parameter med mail.force_extra_parameters =-BA). -PathToDocuments=Sökväg till handlingar -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Funktion att skicka mail med hjälp av metoden "PHP mail direct" kommer att generera ett mailmeddelande som kanske inte analyseras korrekt av vissa mottagande mailservrar. Resultatet är att vissa e-postmeddelanden inte kan läsas av personer som är värd för dessa bugged-plattformar. Detta är fallet för vissa Internetleverantörer (Ex: Orange i Frankrike). Detta är inte ett problem med Dolibarr eller PHP men med den mottagande postservern. Du kan dock lägga till ett alternativ MAIN_FIX_FOR_BUGGED_MTA till 1 i Setup - Other för att ändra Dolibarr för att undvika detta. Det kan dock uppstå problem med andra servrar som strikt använder SMTP-standarden. Den andra lösningen (rekommenderas) är att använda metoden "SMTP socket library" som inte har några nackdelar. -TranslationSetup=Uppställning av översättning -TranslationKeySearch=Sök en översättningstangent eller en sträng -TranslationOverwriteKey=Skriv över en översättningssträng -TranslationDesc=Så här ställer du in visningsspråket:
    * Standard / Systemwide: Meny Hem -> Inställning -> Display
    * Per användare: Klicka på användarnamnet högst upp på skärmen och ändra Användarskärmsinställning fliken på användaren kort. -TranslationOverwriteDesc=Du kan också åsidosätta strängar som fyller i följande tabell. Välj ditt språk från "%s" rullgardinsmenyn, sätt in translationsnyckelsträngen i "%s" och din nya översättning till "%s" -TranslationOverwriteDesc2=Du kan använda den andra fliken för att hjälpa dig veta vilken översättningsnyckel som ska användas +SendmailOptionNotComplete=Varning! På vissa Linux-system, för att skicka e-post från din e-postadress, behöver sendmails inställning innehålla alternativet -ba (parameter mail.force_extra_parameters i din php.ini). Om vissa mottagare inte får någon e-post, försök att redigera den här PHP-parameter- med mail.force_extra_parameters = -ba. +PathToDocuments=Sökväg till dokument +PathDirectory=Katalog +SendmailOptionMayHurtBuggedMTA=Funktion för att skicka mail med hjälp av metoden "PHP mail direct" kommer att generera ett e-postmeddelande som kanske inte analyseras korrekt av vissa mottagande mailservrar. Resultatet är att vissa e-postmeddelanden inte kan läsas av personer som har dessa som värd. Så är fallet för vissa Internetleverantörer (Ex: Orange i Frankrike). Detta är inte ett problem med Dolibarr eller PHP, utan med den mottagande e-postservern. Du kan dock lägga till alternativet MAIN_FIX_FOR_BUGGED_MTA = 1 i Inställningar - Annat för att undvika detta. Det kan dock uppstå problem med andra servers som strikt använder SMTP-standard. Den andra lösningen (rekommenderas) är att använda metoden "SMTP socket library" som inte har några nackdelar. +TranslationSetup=Uppsättning av översättning +TranslationKeySearch=Sök översättning eller sträng +TranslationOverwriteKey=Skriv över översättningssträng +TranslationDesc=Så här ställer du in visningsspråket:
    * Standard: Meny Start -> Inställningar -> Display
    * Per användare: Klicka på användarnamnet högst upp på skärmen och ändra Användarskärmsinställning fliken på användaren kort. +TranslationOverwriteDesc=Du kan också åsidosätta strängar som fyller följande tabell. Välj ditt språk från rullgardinsmenyn %s, ange översättningsnyckeln i "%s" och din nya översättning i "%s" +TranslationOverwriteDesc2=Du kan använda den andra fliken för att veta vilken översättningsnyckel som ska användas TranslationString=Översättningssträng CurrentTranslationString=Aktuell översättningsträng -WarningAtLeastKeyOrTranslationRequired=En sökkriterium krävs åtminstone för nyckel- eller översättningssträngen +WarningAtLeastKeyOrTranslationRequired=En sökkriterium krävs åtminstone för nyckel eller översättningssträng NewTranslationStringToShow=Ny översättningssträng att visa -OriginalValueWas=Den ursprungliga översättningen överskridits. Ursprungligt värde var:

    %s -TransKeyWithoutOriginalValue=Du tvingade en ny översättning till översättningsnyckeln ' %s ' som inte finns i några språkfiler +OriginalValueWas=Den ursprungliga översättningen har skrivits över. Ursprungligt värde var:

    %s +TransKeyWithoutOriginalValue=Du tvingade en ny översättning till översättningsnyckeln '%s' som inte finns i några språkfiler TitleNumberOfActivatedModules=Aktiverade moduler -TotalNumberOfActivatedModules=Aktiverade moduler: %s / %s -YouMustEnableOneModule=Minst 1 modul måste aktiveras -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation -ClassNotFoundIntoPathWarning=Klass %s hittades inte i PHP-sökvägen +TotalNumberOfActivatedModules=Aktiverade moduler: %s / %s +YouMustEnableOneModule=Minst en modul måste aktiveras +YouMustEnableTranslationOverwriteBefore=Du måste först tillåta överskrivning av översättningar för att kunna ändra en översättning +ClassNotFoundIntoPathWarning=Klassen %s hittades inte i PHP-sökvägen YesInSummer=Ja, under sommaren -OnlyFollowingModulesAreOpenedToExternalUsers=Observera att endast följande moduler är tillgängliga för externa användare (oberoende av behörigheterna för sådana användare) och endast om behörigheter beviljas:
    -SuhosinSessionEncrypt=Session lagring krypteras av Suhosin -ConditionIsCurrently=Condition är för närvarande% s +OnlyFollowingModulesAreOpenedToExternalUsers=Observera att endast följande moduler är tillgängliga för externa användare (oberoende av rättigheterna för sådana användare) och endast om rättigheter beviljats:
    +SuhosinSessionEncrypt=Sessionlagring krypteras av Suhosin +ConditionIsCurrently=Tillståndet är för närvarande %s YouUseBestDriver=Du använder drivrutinen %s vilket är den bästa drivrutinen som för närvarande finns tillgänglig. -YouDoNotUseBestDriver=Du använder drivrutinen %s men drivrutinen %s rekommenderas. +YouDoNotUseBestDriver=Du använder drivrutinen %s, men drivrutinen %s rekommenderas. NbOfObjectIsLowerThanNoPb=Du har bara %s %s i databasen. Detta kräver ingen speciell optimering. ComboListOptim=Optimering av kombinationslistans laddning SearchOptim=Sökoptimering -YouHaveXObjectUseComboOptim=Du har %s %s i databasen. Du kan gå in i installationen av modulen för att möjliggöra laddning av kombinationslistan vid tangenttryckt händelse. -YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du kan lägga till konstanten %s till 1 i Home-Setup-Other. -YouHaveXObjectUseSearchOptimDesc=Detta begränsar sökningar till början av rader för att förenkla databasens användning av indexering, vilket resulterar i snabbare respons. -YouHaveXObjectAndSearchOptimOn=Du har %s %s i databasen och konstant %s är inställd på %s i Home-Setup-Other. -BrowserIsOK=Du använder %s webbläsaren. Den här webbläsaren är ok för säkerhet och prestanda. -BrowserIsKO=Du använder %s webbläsaren. Den här webbläsaren är känd för att vara ett dåligt val för säkerhet, prestanda och tillförlitlighet. Vi rekommenderar att du använder Firefox, Chrome, Opera eller Safari. +YouHaveXObjectUseComboOptim=Du har %s %s i databasen. Du kan gå in i inställningen för modulen för att möjliggöra laddning av kombinationslistan vid tangenttryckning. +YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du kan lägga till konstanten %s till 1 i Star - Inställningar - Annat. +YouHaveXObjectUseSearchOptimDesc=Detta begränsar sökningar till början av strängar för att förenkla databasens användning av indexering, vilket resulterar i snabbare respons. +YouHaveXObjectAndSearchOptimOn=Du har %s %s i databasen och konstanten %s är inställd på %s i Start - Inställningar - Annat. +BrowserIsOK=Du använder webbläsaren %s. Den här webbläsaren är ok sett till säkerhet och prestanda. +BrowserIsKO=Du använder webbläsaren %s. Den här webbläsaren är känd för att ha risker när det gäller säkerhet, prestanda och tillförlitlighet. Vi rekommenderar att du använder Firefox, Chrome, Opera eller Safari. PHPModuleLoaded=PHP-komponenten %s är laddad PreloadOPCode=Förinstallerad OPCode används -AddRefInList=Display Customer/Vendor ref. into combo lists.
    Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp". -AddVatInList=Display Customer/Vendor VAT number into combo lists. -AddAdressInList=Display Customer/Vendor adress into combo lists.
    Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp". -AddEmailPhoneTownInContactList=Visa kontakt-e-post (eller telefoner om det inte är definierat) och stadsinfo-lista (välj lista eller kombinationsruta)
    Kontakter visas med namnformatet "Dupond Durand - dupond.durand@email.com - Paris" eller "Dupond Durand - 06 07 59 65 66 - Paris "istället för" Dupond Durand ". -AskForPreferredShippingMethod=Be om föredragen leveransmetod för tredje parter. -FieldEdition=Edition av fält %s -FillThisOnlyIfRequired=Exempel: +2 (fyll endast om tidszon offset problem är erfarna) +AddRefInList=Visa kunds/leverantörs referens i kombolistor
    Tredjeparter kommer synas med format "CC12345 - SC45678 - StorFöretaget." istället för bara "StorFöretaget" +AddVatInList=Visa kunds/leverantörs momsnummer i kombolistor +AddAdressInList=Visa kunds/leverantörs adress i kombolistor
    Tredjeparter kommer synas som "StorFöretaget - Storgatan 1 123 45 Stad - Sverige" istället för "StorFöretaget" +AddEmailPhoneTownInContactList=Visa kontakts e-postadress (eller telefonnummer om e-post inte är angivet) och stad i infolista (välj lista eller kombinationsruta)
    Kontakter visas med namnformatet "Kalle Anka - kalle.anka@ankeborg.se - Ankeborg" eller "Kalle Anka - 012-345 678 - Angeborg" istället för "Kalle Anka". +AskForPreferredShippingMethod=Be om det föredragna leveranssättet för tredjeparter. +FieldEdition=Ändring av fält %s +FillThisOnlyIfRequired=Exempel: +2 (ange endast om problem med tidszon offset upplevs) GetBarCode=Få streckkod NumberingModules=Numreringsmodeller DocumentModules=Dokumentmodeller ##### Module password generation -PasswordGenerationStandard=Returnera ett lösenord som genererats enligt intern Dolibarr-algoritm: %s tecken som innehåller delade nummer och tecken i gemener. +PasswordGenerationStandard=Ger ett lösenord genererat efter den interna algoritmen: %s tecken som innehåller både siffror och tecken. PasswordGenerationNone=Föreslå inte ett genererat lösenord. Lösenordet måste skrivas in manuellt. -PasswordGenerationPerso=Returnera ett lösenord enligt din personligt definierade konfiguration. +PasswordGenerationPerso=Ge ett lösenord enligt din personligt angivna konfiguration. SetupPerso=Enligt din konfiguration -PasswordPatternDesc=Lösenordsmönsterbeskrivning +PasswordPatternDesc=Beskrivning av lösenordsmönster ##### Users setup ##### -RuleForGeneratedPasswords=Regler för att generera och bekräfta lösenord +RuleForGeneratedPasswords=Regler för att skapa och bekräfta lösenord DisableForgetPasswordLinkOnLogonPage=Visa inte länken "Glömt lösenord" på sidan Inloggning -UsersSetup=Användare modul inställning -UserMailRequired=E-post krävs för att skapa en ny användare +UsersSetup=Inställningar för modulen Användare +UserMailRequired=E-postadress krävs för att skapa en ny användare UserHideInactive=Dölj inaktiva användare från alla kombinationslistor över användare (rekommenderas inte: detta kan innebära att du inte kan filtrera eller söka efter gamla användare på vissa sidor) UsersDocModules=Dokumentmallar för dokument som genereras från användarposten GroupsDocModules=Dokumentmallar för dokument som genereras från en grupppost ##### HRM setup ##### HRMSetup=Inställning av HRM-modulen ##### Company setup ##### -CompanySetup=Företag modul inställning +CompanySetup=Inställning av modulen Företag CompanyCodeChecker=Alternativ för automatisk generering av kund / leverantörskoder AccountCodeManager=Alternativ för automatisk generering av kund / leverantörsräkningskod -NotificationsDesc=E-postmeddelanden kan skickas automatiskt för vissa Dolibarr-evenemang.
    Mottagare av anmälningar kan definieras: +NotificationsDesc=E-postmeddelanden kan skickas automatiskt för vissa Dolibarr-evenemang.
    Mottagare av notiser kan definieras: NotificationsDescUser=* per användare, en användare i taget. NotificationsDescContact=* per tredjepartskontakter (kunder eller leverantörer), en kontakt i taget. -NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. +NotificationsDescGlobal=* eller genom att sätta en global e-postadress under inställningar för modulen ModelModules=Dokumentmallar DocumentModelOdt=Generera dokument från OpenDocument-mallar (.ODT / .ODS-filer från LibreOffice, OpenOffice, KOffice, TextEdit, ...) WatermarkOnDraft=Vattenstämpel utkast @@ -1428,8 +1443,12 @@ WatermarkOnDraftInvoices=Vattenstämpel på utkast till fakturor (ingen om tom) PaymentsNumberingModule=Betalningsnummereringsmodell SuppliersPayment=Leverantörsbetalningar SupplierPaymentSetup=Inställningar för leverantörsbetalningar -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceCheckPosteriorDate=Kontrollera fakturadatum före godkännande +InvoiceCheckPosteriorDateHelp=Godkännande av fakturan är förbjudet om datumet är tidigare än senaste fakturan av samma typ +InvoiceOptionCategoryOfOperations=Visa omnämningen "verksamhetskategori" på fakturan. +InvoiceOptionCategoryOfOperationsHelp=Beroende på situationen kommer omnämnandet att visas i formen:
    - Verksamhetskategori: Leverans av varor
    - Verksamhetskategori: Tillhandahållande av tjänster
    - Verksamhetskategori: Blandat och tillhandahållande av tjänster +InvoiceOptionCategoryOfOperationsYes1=Ja, under adressblocket +InvoiceOptionCategoryOfOperationsYes2=Ja, i nedre vänstra hörnet ##### Proposals ##### PropalSetup=Kommersiella förslag modul inställning ProposalsNumberingModules=Kommersiella förslag numrering moduler @@ -1444,12 +1463,12 @@ SupplierProposalNumberingModules=Pris förfrågningar leverantörer numrerings m SupplierProposalPDFModules=Pris begär leverantörer dokument modeller FreeLegalTextOnSupplierProposal=Fritext på förfrågningar pris leverantörer WatermarkOnDraftSupplierProposal=Vattenstämpel om förslaget pris begär leverantörer (ingen om tom) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Fråga efter bankkonto destination pris begäran +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Fråga efter bankkonto destination prisbegäran WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Be om lagerkälla för order ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Be om kontokortdestination för inköpsorder ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order +SuggestedPaymentModesIfNotDefinedInOrder=Föreslaget betalningsläge på försäljningsorder om standardvärde inte är inställt i ordern OrdersSetup=Försäljningsorderhanteringsinställningar OrdersNumberingModules=Beställningar numrering moduler OrdersModelModule=Beställ dokument modeller @@ -1464,20 +1483,21 @@ FicheinterNumberingModules=Intervention numrering moduler TemplatePDFInterventions=Intervention kort dokument modeller WatermarkOnDraftInterventionCards=Vattenstämpel på åtgärdskort dokument (ingen om tom) ##### Contracts ##### -ContractsSetup=Avtal / Prenumerationer modul installation +ContractsSetup=Avtal / Abonnemanger modul installation ContractsNumberingModules=Kontrakt numrering moduler TemplatePDFContracts=Contract documents modeller FreeLegalTextOnContracts=Fritext om avtal -WatermarkOnDraftContractCards=Vattenstämpel på kontraktsförslag (inget om de är tomma) +WatermarkOnDraftContractCards=Vattenstämpel på kontraktsförslag (inget om fältet är tomt) ##### Members ##### MembersSetup=Medlemmar modul inställning MemberMainOptions=Huvudalternativ +MemberCodeChecker=Alternativ för automatisk generation av medlemskoder AdherentLoginRequired= Hantera en inloggning för varje medlem AdherentMailRequired=E-post krävs för att skapa en ny medlem MemberSendInformationByMailByDefault=Kryssruta för att skicka e-post bekräftelse till medlemmar (bekräftande eller nya abonnemang) är aktiverat som standard -MemberCreateAnExternalUserForSubscriptionValidated=Skapa en extern användarinloggning för varje validerad ny medlemsprenumeration -VisitorCanChooseItsPaymentMode=Besökare kan välja mellan tillgängliga betalningssätt -MEMBER_REMINDER_EMAIL=Aktivera automatisk påminnelse via e-post av utgått prenumerationer. Obs! Modul %s måste vara aktiverad och korrekt inställd för att skicka påminnelser. +MemberCreateAnExternalUserForSubscriptionValidated=Skapa en extern användarinloggning för varje validerad ny medlemsabonnemang +VisitorCanChooseItsPaymentMode=Besökare kan välja mellan alla tillgängliga betalningssätt +MEMBER_REMINDER_EMAIL=Aktivera automatisk påminnelse via e-post av utgånget abonnemang. Obs! Modul %s måste vara aktiverad och korrekt inställd för att skicka påminnelser. MembersDocModules=Dokumentmallar för dokument som genereras från medlemsposten ##### LDAP setup ##### LDAPSetup=LDAP-inställningar @@ -1684,21 +1704,21 @@ ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurera rengöring schemalagt DonationsSetup=Donation modul inställning DonationsReceiptModel=Mall för donation kvitto ##### Barcode ##### -BarcodeSetup=Barcode inställning +BarcodeSetup=Streckkodsinställning PaperFormatModule=Skriv format modul -BarcodeEncodeModule=Barcode kodningstypen -CodeBarGenerator=Barcode generator +BarcodeEncodeModule=Streckkod kodningstyp +CodeBarGenerator=Streckkodsgenerator ChooseABarCode=Ingen generator definierade FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode av typ EAN8 -BarcodeDescEAN13=Barcode av typ EAN13 -BarcodeDescUPC=Barcode av typ UPC -BarcodeDescISBN=Barcode av typ ISBN +BarcodeDescEAN8=Streckkod av typ EAN8 +BarcodeDescEAN13=Streckkod av typ EAN13 +BarcodeDescUPC=Streckkod av typ UPC +BarcodeDescISBN=Streckkod av typ ISBN BarcodeDescC39=Streckkod av typen C39 -BarcodeDescC128=Barcode av typ C128 -BarcodeDescDATAMATRIX=Barcode av typen Datamatrix -BarcodeDescQRCODE=Barcode typ QR-kod -GenbarcodeLocation=Bar kodgenerering kommandoradsverktyg (som används av intern motor för vissa streckkodstyper). Måste vara kompatibel med "genbarcode".
    Till exempel: / usr / local / bin / genbarcode +BarcodeDescC128=Streckkod av typ C128 +BarcodeDescDATAMATRIX=Streckkod av typen Datamatrix +BarcodeDescQRCODE=Streckkod typ QR-kod +GenbarcodeLocation=Bar kodgenerering kommandoradsverktyg (som används av intern motor för vissa streckkodstyper). Måste vara kompatibel med "genbarcode".
    Till exempel: /usr/local/bin/genbarcode BarcodeInternalEngine=Intern motor BarCodeNumberManager=Manager för att automatiskt definiera streckkodsnummer ##### Prelevements ##### @@ -1717,9 +1737,9 @@ MailingDelay=Sekunder fördröjning efter sändning av nästa meddelande NotificationSetup=Anmälan för e-postmeddelandemodul NotificationEMailFrom=Sender-e-post (Från) för e-postmeddelanden som skickas av Notifieringsmodulen FixedEmailTarget=Mottagare -NotificationDisableConfirmMessageContact=Hide the list of recipients (subscribed as contact) of notifications into the confirmation message -NotificationDisableConfirmMessageUser=Hide the list of recipients (subscribed as user) of notifications into the confirmation message -NotificationDisableConfirmMessageFix=Hide the list of recipients (subscribed as global email) of notifications into the confirmation message +NotificationDisableConfirmMessageContact=Dölj listan över mottagare (kontakter) för notiser i bekräftelsemeddelandet +NotificationDisableConfirmMessageUser=Dölj listan över mottagare (användare) för notiser i bekräftelsemeddelandet +NotificationDisableConfirmMessageFix=Dölj listan över mottagare (global e-postadress) för notiser i bekräftelsemeddelandet ##### Sendings ##### SendingsSetup=Inmatning av fraktmodul SendingsReceiptModel=Att skicka kvitto modell @@ -1735,15 +1755,15 @@ FreeLegalTextOnDeliveryReceipts=Fri text om leverans kvitton ##### FCKeditor ##### AdvancedEditor=Avancerad redaktör ActivateFCKeditor=Aktivera FCKeditor för: -FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements -FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements -FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG skapande / utgåva av produktdetaljer för alla enheter (förslag, order, fakturor, etc ...). Varning: Att använda det här alternativet i det här fallet rekommenderas på allvar inte eftersom det kan skapa problem med specialtecken och sidformatering när du bygger PDF-filer. +FCKeditorForNotePublic=WYSIWIG skapade/ändring i fältet "publika noteringar" +FCKeditorForNotePrivate=WYSIWIG skapade/ändring i fältet "privata noteringar" +FCKeditorForCompany=WYSIWIG skapande/änrande i fältet "beskrivning" (förutom produkter/tjänster) +FCKeditorForProductDetails=WYSIWIG skapande/utgåva av produktbeskrivning eller rader för objekt (rader av förslag, order, fakturor, etc...). +FCKeditorForProductDetails2=Varning: Att använda det här alternativet för det här fallet rekommenderas verkligen inte eftersom det kan skapa problem med specialtecken och sidformatering när du bygger PDF-filer. FCKeditorForMailing= WYSIWYG skapande / utgåva av försändelser FCKeditorForUserSignature=WYSIWYG skapande / upplaga av signatur FCKeditorForMail=WYSIWIG skapande / utgåva för all mail (utom Verktygs-> eMailing) -FCKeditorForTicket=WYSIWIG skapande / upplaga för biljetter +FCKeditorForTicket=WYSIWIG skapande / upplaga för ärenden ##### Stock ##### StockSetup=Inställning av lagermodul IfYouUsePointOfSaleCheckModule=Om du använder modulen Point of Sale (POS) som standard eller en extern modul, kan denna inställning ignoreras av din POS-modul. De flesta POS-moduler är utformade som standard för att skapa en faktura omedelbart och minska lageret oberoende av alternativen här. Så om du behöver eller inte har en lagerminskning när du registrerar en försäljning från din POS, kolla även din POS-moduluppsättning. @@ -1762,7 +1782,7 @@ DetailMenuHandler=Meny hanterare där för att visa nya menyn DetailMenuModule=Modulnamn om menyalternativet kommer från en modul DetailType=Typ av menyn (överst eller vänster) DetailTitre=Meny etikett eller etikett kod för översättning -DetailUrl=URL där menyn skicka (Absoluta URL-länk eller extern länk med http://) +DetailUrl=URL dit menyn skickar dig (Relativ URL-länk eller extern länk med https://) DetailEnabled=Villkor för att visa eller inte trätt DetailRight=Villkor för att visa obehörig grå menyer DetailLangs=Lang filnamn för märkningen kodnyckel @@ -1817,7 +1837,7 @@ ClickToDialSetup=Klicka för att Dial modul inställning ClickToDialUrlDesc=Url ringde när ett klick på telefon picto är gjort. I URL kan du använda taggar
    __PHONETO__ som kommer att ersättas med telefonnumret person att ringa
    __PHONEFROM__ som kommer att ersättas med telefonnummer att ringa person (er)
    __LOGIN__ som kommer att ersättas med clicktodial inloggning (definierad på användarkort)
    __PASS__ som kommer att ersättas med clicktodial lösenord (definierat på användarkort). ClickToDialDesc=Denna modul ändrar telefonnummer när du använder en stationär dator till klickbara länkar. Ett klick ringer upp numret. Detta kan användas för att starta telefonsamtalet när du använder en mjuk telefon på skrivbordet eller när du t.ex. använder ett CTI-system baserat på SIP-protokoll. Obs! När du använder en smartphone är telefonnummer alltid klickbara. ClickToDialUseTelLink=Använd bara en länk "tel:" på telefonnummer -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface, installed on the same computer as the browser, and called when you click on a link starting with "tel:" in your browser. If you need a link that start with "sip:" or a full server solution (no need of local software installation), you must set this to "No" and fill the next field. +ClickToDialUseTelLinkDesc=Använd den här metoden om dina användare har en datortelefon eller ett programvarugränssnitt, installerat på samma dator som webbläsaren och anropas när du klickar på en länk som börjar med "tel:" i din webbläsare. Om du behöver en länk som börjar med "sip:" eller en komplett serverlösning (inget behov av lokal mjukvaruinstallation), måste du ställa in denna på "Nej" och fylla i nästa fält. ##### Point Of Sale (CashDesk) ##### CashDesk=Försäljningsstället CashDeskSetup=Inställning av försäljningsmodul @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Lagerminskning i POS är inte kompati CashDeskYouDidNotDisableStockDecease=Du inaktiverade inte lagerminskning när du gör en försäljning från försäljningsstället. Därför krävs ett lager. CashDeskForceDecreaseStockLabel=Lagerminskning för batchprodukter tvingades. CashDeskForceDecreaseStockDesc=Minska först med de äldsta datumen för att äta och sälja. -CashDeskReaderKeyCodeForEnter=Nyckelkod för "Enter" definierad i streckkodsläsare (Exempel: 13) +CashDeskReaderKeyCodeForEnter=Nyckel ASCII-kod för "Enter" definierad i streckkodsläsaren (exempel: 13) ##### Bookmark ##### BookmarkSetup=Bokmärk modul inställning BookmarkDesc=Den här modulen låter dig hantera bokmärken. Du kan också lägga till genvägar till alla Dolibarr-sidor eller externa webbplatser på din vänstra meny. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Leverantörsfakturor nummereringsmodeller IfSetToYesDontForgetPermission=Om det är inställt på ett värde som inte är null, glöm inte att ge behörigheter till grupper eller användare som är godkända för det andra godkännandet ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind modul inställning -PathToGeoIPMaxmindCountryDataFile=Sökväg till fil som innehåller Maxmind ip till landsöversättning.
    Exempel:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usrIPshare / Gare / G +PathToGeoIPMaxmindCountryDataFile=Sökväg till fil som innehåller Maxmind ip för landöversättning NoteOnPathLocation=Observera att ditt ip till land datafil måste vara inne i en katalog din PHP kan läsa (Kolla din PHP open_basedir inställningar och behörigheter filsystem). YouCanDownloadFreeDatFileTo=Du kan ladda ner en gratis demoversion av Maxmind GeoIP landet filen på %s. YouCanDownloadAdvancedDatFileTo=Du kan också ladda ner en mer komplett version, med uppdateringar av de Maxmind GeoIP landet filen på %s. @@ -1911,7 +1931,7 @@ ExpenseReportsRulesSetup=Inställning av modul Utläggsrapportsregler ExpenseReportNumberingModules=Modul för utläggsrapporteringsnummer NoModueToManageStockIncrease=Ingen modul kunna hantera automatiska lagerökningen har aktiverats. Stock ökning kommer att ske på bara manuell inmatning. YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan hitta alternativ för e-postmeddelanden genom att aktivera och konfigurera modulen "Meddelande". -TemplatesForNotifications=Templates for notifications +TemplatesForNotifications=Mallar för notiser ListOfNotificationsPerUser=Lista över automatiska aviseringar per användare * ListOfNotificationsPerUserOrContact=Lista över möjliga automatiska aviseringar (på affärshändelse) tillgängliga per användare * eller per kontakt ** ListOfFixedNotifications=Lista över automatiska fasta aviseringar @@ -1922,40 +1942,41 @@ BackupDumpWizard=Guiden för att skapa databasdumpfilen BackupZipWizard=Guiden för att bygga arkivet med dokumentkatalogen SomethingMakeInstallFromWebNotPossible=Installation av extern modul är inte möjligt från webbgränssnittet av följande skäl: SomethingMakeInstallFromWebNotPossible2=Av den anledningen är processen att uppgradera som beskrivs här en manuell process endast en privilegierad användare kan utföra. +InstallModuleFromWebHasBeenDisabledContactUs=Installation eller utveckling av externa moduler eller dynamiska webbplatser, från applikationen, är för närvarande låst av säkerhetsskäl. Kontakta oss om du behöver aktivera den här funktionen. InstallModuleFromWebHasBeenDisabledByFile=Installation av extern modul från ansökan har inaktiverats av administratören. Du måste be honom att ta bort filen% s för att tillåta denna funktion. ConfFileMustContainCustom=Installera eller bygga en extern modul från programmet måste spara modulfilerna i katalogen %s . För att få den här katalogen bearbetad av Dolibarr måste du konfigurera conf / conf.php för att lägga till 2 direktivlinjer:
    $ dolibarr_main_url_root_alt = '/ custom';
    $ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Markera tabelllinjer när musen flytta passerar över HighlightLinesColor=Markera färg på linjen när musen passerar över (använd 'ffffff' för ingen höjdpunkt) HighlightLinesChecked=Markera färg på linjen när den är markerad (använd 'ffffff' för ingen höjdpunkt) -UseBorderOnTable=Show left-right borders on tables -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +UseBorderOnTable=Visa vänster-höger kanter i tabeller +BtnActionColor=Färg på spara knappen +TextBtnActionColor=Textfärg på spara knappen TextTitleColor=Textfärg på sidtitel LinkColor=Färg på länkar PressF5AfterChangingThis=Tryck CTRL + F5 på tangentbordet eller rensa webbläsarens cacheminne när du har ändrat det här värdet för att få det effektivt NotSupportedByAllThemes=Kommer att fungera med kärnämnen, kanske inte stöds av externa teman BackgroundColor=Bakgrundsfärg TopMenuBackgroundColor=Bakgrundsfärg för Huvudmeny -TopMenuDisableImages=Dölj bilder i toppmenyn +TopMenuDisableImages=Ikon eller text i menyn LeftMenuBackgroundColor=Bakgrundsfärg för vänstermenyn BackgroundTableTitleColor=Bakgrundsfärg för tabellens titellinje BackgroundTableTitleTextColor=Textfärg för tabellens titellinje BackgroundTableTitleTextlinkColor=Textfärg för länkrad för tabellrubrik BackgroundTableLineOddColor=Bakgrundsfärg för udda bords linjer BackgroundTableLineEvenColor=Bakgrundsfärg för ännu bords linjer -MinimumNoticePeriod=Minsta varseltid (Din ledighet begäran måste göras innan denna försening) +MinimumNoticePeriod=Minsta varseltid (Din ledighetsansökan måste göras innan denna period) NbAddedAutomatically=Antal dagar som läggs till räknare av användare (automatiskt) varje månad EnterAnyCode=Det här fältet innehåller en referens för att identifiera raden. Ange valfritt värde, men utan specialtecken. Enter0or1=Ange 0 eller 1 UnicodeCurrency=Ange här mellan hållare, lista med byte nummer som representerar valutasymbolen. Till exempel: för $, skriv [36] - för brazil real R $ [82,36] - för €, skriv [8364] ColorFormat=RGB-färgen är i HEX-format, t.ex.: FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=Ikonnamn i format:
    - image.png för en bildfil till den aktuella temakatalogen
    - image.png@module om filen finns i katalogen /img/ för en modul
    - fa-xxx för en FontAwesomepicto fa-x
    - fonwtawesome_xxx_fa_color_size för en FontAwesome fa-xxx-bild (med prefix, färg och storleksuppsättning) PositionIntoComboList=Position of line i kombinationslistor SellTaxRate=Försäljningsmomssats RecuperableOnly=Ja för moms "Ej uppfattad men återställbar" tillägnad vissa stater i Frankrike. Håll värdet till "Nej" i alla andra fall. UrlTrackingDesc=Om leverantören eller transporttjänsten erbjuder en sida eller webbplats för att kontrollera statusen för dina leveranser, kan du ange den här. Du kan använda nyckeln {TRACKID} i URL-parametrarna så att systemet kommer att ersätta det med det spårningsnummer som användaren angett på försändelsekortet. OpportunityPercent=När du skapar en ledning definierar du en beräknad mängd projekt / ledning. Enligt ledningens status kan detta belopp multipliceras med denna kurs för att utvärdera ett totalt belopp som alla dina leads kan generera. Värdet är en procentandel (mellan 0 och 100). -TemplateForElement=This mail template is related to what type of object? An email template is available only when using the "Send Email" button from the related object. +TemplateForElement=Denna mail-mall är relaterat till vilken typ av objekt? mail-mall är enbart tillgänglig när man använder "Skicka e-post" knappen från relaterat objekt TypeOfTemplate=Typ av mall TemplateIsVisibleByOwnerOnly=Mall är endast synlig för ägaren VisibleEverywhere=Synlig överallt @@ -1977,11 +1998,12 @@ MailToSendSupplierOrder=Beställning MailToSendSupplierInvoice=Leverantörsfakturor MailToSendContract=Kontrakt MailToSendReception=Mottagningar +MailToExpenseReport=Räkningar MailToThirdparty=Tredje part MailToMember=Medlemmar MailToUser=Användare MailToProject=Projekt -MailToTicket=Biljetter +MailToTicket=Ärenden ByDefaultInList=Visa som standard i listvy YouUseLastStableVersion=Du använder den senaste stabila versionen TitleExampleForMajorRelease=Exempel på meddelande du kan använda för att meddela den här stora versionen (gärna använda den på dina webbplatser) @@ -1991,7 +2013,7 @@ ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s är tillgänglig MultiPriceRuleDesc=När alternativet "Flera prisnivåer per produkt / tjänst" är aktiverat kan du definiera olika priser (en per prisnivå) för varje produkt. För att spara tid kan du här ange en regel för att autokaluta ett pris för varje nivå baserat på priset på första nivån, så du måste bara ange ett pris för första nivån för varje produkt. Den här sidan är utformad för att spara tid, men är endast användbar om dina priser för varje nivå är i förhållande till första nivån. Du kan ignorera den här sidan i de flesta fall. ModelModulesProduct=Mallar för produktdokument WarehouseModelModules=Mallar för dokument från lager -ToGenerateCodeDefineAutomaticRuleFirst=För att kunna generera koder automatiskt måste du först definiera en chef för att automatiskt definiera streckkodsnumret. +ToGenerateCodeDefineAutomaticRuleFirst=För att kunna generera koder automatiskt måste du först definiera en streckkodsgenerator för att automatiskt definiera streckkodsnumret. SeeSubstitutionVars=Se * anteckning för lista över möjliga substitutionsvariabler SeeChangeLog=Se ChangeLog-fil (endast på engelska) AllPublishers=Alla utgivare @@ -2024,79 +2046,90 @@ TypeCdr=Använd "None" om datumet för betalningsperioden är fakturadatum plus BaseCurrency=Referensvaluta för företaget (gå in i företagets inställning för att ändra detta) WarningNoteModuleInvoiceForFrenchLaw=Denna modul %s överensstämmer med franska lagar (Loi Finance 2016). WarningNoteModulePOSForFrenchLaw=Denna modul %s överensstämmer med franska lagar (Loi Finance 2016) eftersom modulen Non Reversible Logs automatiskt aktiveras. -WarningInstallationMayBecomeNotCompliantWithLaw=Du försöker installera modul %s som är en extern modul. Aktivering av en extern modul innebär att du litar på utgivaren av den modulen och att du är säker på att denna modul inte påverkar beteendet på din ansökan negativt och överensstämmer med landets lagar (%s). Om modulen introducerar en olaglig funktion, blir du ansvarig för användningen av olaglig programvara. -MAIN_PDF_MARGIN_LEFT=Vänster marginal på PDF -MAIN_PDF_MARGIN_RIGHT=Höger marginal på PDF -MAIN_PDF_MARGIN_TOP=Toppmarginal på PDF -MAIN_PDF_MARGIN_BOTTOM=Bottenmarginal på PDF -MAIN_DOCUMENTS_LOGO_HEIGHT=Höjd för logotyp på PDF -MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines -MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines -MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame -MAIN_PDF_NO_RECIPENT_FRAME=Hide borders on recipent address frame -MAIN_PDF_HIDE_CUSTOMER_CODE=Hide customer code -MAIN_PDF_HIDE_SENDER_NAME=Hide sender/company name in address block -PROPOSAL_PDF_HIDE_PAYMENTTERM=Hide payments conditions -PROPOSAL_PDF_HIDE_PAYMENTMODE=Hide payment mode -MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Lägg till elektronisk inloggning PDF +WarningInstallationMayBecomeNotCompliantWithLaw=Du försöker installera modulen %s som är en extern modul. Aktivering av en extern modul innebär att du litar på utgivaren av den modulen och att du är säker på att denna modul inte påverkar funktionen i din applikation negativt och överensstämmer med landets lagar (%s). Om modulen skulle medföra en olaglig funktion blir du ansvarig för användningen. +MAIN_PDF_MARGIN_LEFT=Vänstermarginal i PDF +MAIN_PDF_MARGIN_RIGHT=Högermarginal i PDF +MAIN_PDF_MARGIN_TOP=Toppmarginal i PDF +MAIN_PDF_MARGIN_BOTTOM=Bottenmarginal i PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=Höjd på logotyp i PDF +DOC_SHOW_FIRST_SALES_REP=Visa första säljare +MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Lägg till kolumn för bild på offertrader +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Bredd på kolumnen om en bild läggs till på rader +MAIN_PDF_NO_SENDER_FRAME=Dölj kanter på avsändarens adressram +MAIN_PDF_NO_RECIPENT_FRAME=Dölj kanter på mottagarens adressram +MAIN_PDF_HIDE_CUSTOMER_CODE=Dölj kundnummer +MAIN_PDF_HIDE_SENDER_NAME=Dölj avsändarens/företagets namn i adressblocket +PROPOSAL_PDF_HIDE_PAYMENTTERM=Dölj betalningsvillkor +PROPOSAL_PDF_HIDE_PAYMENTMODE=Dölj betalningsläge +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Lägg till elektronisk signatur i PDF NothingToSetup=Det finns ingen specifik inställning som krävs för den här modulen. -SetToYesIfGroupIsComputationOfOtherGroups=Ställ det här på ja om den här gruppen är en beräkning av andra grupper -EnterCalculationRuleIfPreviousFieldIsYes=Ange beräkningsregel om föregående fält var satt till Ja.
    Till exempel:
    CODEGRP1 + CODEGRP2 +SetToYesIfGroupIsComputationOfOtherGroups=Ange det här till ja om den här gruppen är en sammanslagning av andra grupper +EnterCalculationRuleIfPreviousFieldIsYes=Ange beräkningsregel om föregående fält var satt till Ja.
    Exempelvis:
    CODEGRP1 + CODEGRP2 SeveralLangugeVariatFound=Flera språkvarianter hittades RemoveSpecialChars=Ta bort specialtecken -COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter till rent värde (COMPANY_AQUARIUM_CLEAN_REGEX) -COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter för att rengöra värdet (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter för att rensa värde (COMPANY_AQUARIUM_CLEAN_REGEX) +COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter för att rensa värdet (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicering är inte tillåtet +RemoveSpecialWords=Ta bort vissa ord när du skapar underkonton för kunder eller leverantörer +RemoveSpecialWordsHelp=Ange orden som ska tas bort innan du beräknar kund- eller leverantörskontot. Använd ett ; mellan varje ord GDPRContact=Dataskyddsansvarig (DPO, Data Privacy eller GDPR-kontakt) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here -HelpOnTooltip=Hjälptext för att visa på verktygstips -HelpOnTooltipDesc=Lägg text eller en översättningstangent här för att texten ska visas i ett verktygstips när detta fält visas i en blankett +GDPRContactDesc=Om du lagrar personuppgifter i ditt informationssystem kan du här nämna den kontakt som är ansvarig för den allmänna dataskyddsförordningen +HelpOnTooltip=Hjälptext att visa i verktygstips +HelpOnTooltipDesc=Lägg text eller en översättning här för att texten ska visas i ett verktygstips när detta fält visas i ett formulär YouCanDeleteFileOnServerWith=Du kan ta bort den här filen på servern med kommandorad:
    %s ChartLoaded=Kontoplan laddad -SocialNetworkSetup=Uppställning av modulen Sociala nätverk -EnableFeatureFor=Aktivera funktioner för %s -VATIsUsedIsOff=Obs! Alternativet att använda moms eller moms har ställts till Av i menyn %s - %s, så Försäljningsskatt eller moms används alltid 0 för försäljning. -SwapSenderAndRecipientOnPDF=Byt avsändar- och mottagaradressposition på PDF-dokument -FeatureSupportedOnTextFieldsOnly=Varning, funktionen stöds endast i textfält och kombinationslistor. En URL-parameteråtgärd = skapa eller åtgärd = redigera måste också ställas in ELLER måste sidnamnet sluta med 'new.php' för att utlösa den här funktionen. -EmailCollector=E-post samlare -EmailCollectorDescription=Lägg till ett schemalagt jobb och en installationssida för att skanna regelbundet e-postrutor (med IMAP-protokoll) och spela in e-postmeddelanden som tas emot i din ansökan, på rätt plats och / eller skapa några poster automatiskt (som ledningar). +SocialNetworkSetup=Inställning av modulen Sociala nätverknätverk +EnableFeatureFor=Aktivera funktioner för %s +VATIsUsedIsOff=Obs! Alternativet att använda moms har ställts till Av i menyn %s - %s, så moms kommer alltid vara 0 vid försäljning. +SwapSenderAndRecipientOnPDF=Byt avsändar- och mottagarposition på adress i PDF +FeatureSupportedOnTextFieldsOnly=Varning! Funktionen stöds endast i textfält och kombinationslistor. En URL-parameteråtgärd=skapa eller åtgärd=redigera måste också ställas in ELLER så måste sidnamnet sluta med 'new.php' för att utlösa den här funktionen. +EmailCollector=E-postsamlare +EmailCollectors=E-postsamlare +EmailCollectorDescription=Lägg till ett schemalagt jobb och en installationssida för att regelbundet skanna e-postadresser (med IMAP) och mata in e-postmeddelanden i din applikation, på rätt plats och/eller skapa poster automatiskt (som leads). NewEmailCollector=Ny e-postsamlare -EMailHost=Värd för e-post IMAP-server -MailboxSourceDirectory=Postkälla källkatalog -MailboxTargetDirectory=Målkatalogen för brevlådan -EmailcollectorOperations=Verksamhet att göra av samlare -EmailcollectorOperationsDesc=Operationer utförs från topp till nedre ordning -MaxEmailCollectPerCollect=Max antal e-postmeddelanden som samlats in per insamling -CollectNow=Samla nu -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? -DateLastCollectResult=Datum för senaste insamlingsförsök -DateLastcollectResultOk=Datum för senaste insamlingsframgång +EMailHost=Värd för e-post, IMAP-server +EMailHostPort=Port för e-post, IMAP-server +loginPassword=Inloggning/lösenord +oauthToken=Oauth2-token +accessType=Åtkomsttyp +oauthService=Oauth-tjänst +TokenMustHaveBeenCreated=Modulen OAuth2 måste vara aktiverad och en oauth2-token måste ha skapats med rätt behörigheter (till exempel omfattningen "gmail_full" med OAuth för Gmail). +MailboxSourceDirectory=E-post källkatalog +MailboxTargetDirectory=E-post målkatalog +EmailcollectorOperations=Åtgärder att utföra av e-postsamlaren +EmailcollectorOperationsDesc=Åtgärder utförs i ordning från topp till botten +MaxEmailCollectPerCollect=Max antal e-postmeddelanden som hämtas per insamling +TestCollectNow=Prova hämta +CollectNow=Hämta nu +ConfirmCloneEmailCollector=Är du säker på att du vill klona E-postsamlaren %s? +DateLastCollectResult=Datum för senaste hämtningsförsök +DateLastcollectResultOk=Datum för senaste hämtning LastResult=Senaste resultatet -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. -EmailCollectorConfirmCollectTitle=E-post samla bekräftelse -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorHideMailHeaders=Inkludera inte innehållet i e-posthuvudet i det sparade innehållet +EmailCollectorHideMailHeadersHelp=När det är aktiverat läggs inte e-posthuvudet till i slutet innehållet som sparas som en händelse på dagordningen. +EmailCollectorConfirmCollectTitle=Bekräfta hämtning av e-post +EmailCollectorConfirmCollect=Vill du köra den här hämtningen nu? +EmailCollectorExampleToCollectTicketRequestsDesc=Samla e-postmeddelanden som matchar vissa regler och skapa automatiskt en ärende (Ärendemodulen måste vara aktiverad) med e-postinformationen. Du kan använda den här samlaren om du ger lite support via e-post, så din ärendeförfrågan genereras automatiskt. Aktivera också Collect_Responses för att samla in svar från din klient direkt på ärendevyn (du måste svara från Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Exempel på att hämta ärendeförfrågan (endast första meddelandet) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Skanna din postlåda "Skickat"-katalog för att hitta e-postmeddelanden som skickades som svar på ett annat e-postmeddelande direkt från din e-postprogramvara och inte från Dolibarr. Om ett sådant e-postmeddelande hittas, registreras svaret i Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Exempel på att hämta in e-postsvar skickade från ett externt e-postprogram +EmailCollectorExampleToCollectDolibarrAnswersDesc=Hämta alla mejl som är ett svar på ett mejl som skickats från din ansökan. En händelse (Agendamodulen måste vara aktiverad) med e-postsvaret kommer att sparas på den bra platsen. Om du till exempel skickar ett kommersiellt förslag, en order, en faktura eller ett meddelande om en ärende via e-post från applikationen, och mottagaren svarar på din e-post, kommer systemet automatiskt att hämta svaret och lägga till det i ditt affärssystem. +EmailCollectorExampleToCollectDolibarrAnswers=Exempel som hämtar in alla inkommande meddelanden är svar på meddelanden skickade från Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Hämta e-postmeddelanden som matchar vissa regler och skapa automatiskt en potentiell kund (Module Project måste vara aktiverat) med e-postinformationen. Du kan använda den här samlaren om du vill följa din lead med modulen Project (1 lead = 1 projekt), så dina leads kommer att genereras automatiskt. Om samlaren Collect_Responses också är aktiverad, när du skickar ett e-postmeddelande från dina leads, förslag eller något annat objekt, kan du också se svar från dina kunder eller partners direkt i applikationen.
    Obs: Med det här initiala exemplet genereras titeln på leadet inklusive e-postmeddelandet. Om tredje part inte kan hittas i databasen (ny kund), kommer leaden att kopplas till tredje part med ID 1. +EmailCollectorExampleToCollectLeads=Exempel på att samla in leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Samla e-postmeddelanden som ansöker om jobberbjudanden (Rekryteringsmodulen måste vara aktiverad). Du kan fylla i den här samlaren om du automatiskt vill skapa en kandidatur för en jobbförfrågan. Obs: Med detta initiala exempel genereras titeln på kandidaturen inklusive e-postmeddelandet. +EmailCollectorExampleToCollectJobCandidatures=Exempel på att samla in jobbkandidater som tas emot via e-post NoNewEmailToProcess=Ingen ny email (matchande filter) att bearbeta NothingProcessed=Inget gjort -XEmailsDoneYActionsDone=%s e-postadresser kvalificerade, %s e-postmeddelanden som bearbetats framgångsrikt (för %s-post / åtgärder gjorda) -RecordEvent=Record an event in agenda (with type Email sent or received) -CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) +XEmailsDoneYActionsDone=%s e-postmeddelanden förkvalificerade, %s e-postmeddelanden behandlade framgångsrikt (för %s post/åtgärder gjorda) +RecordEvent=Spara en händelse i agendan (med typen E-post skickat eller mottaget) +CreateLeadAndThirdParty=Skapa en potentiell kund (och en tredje part om det behövs) +CreateTicketAndThirdParty=Skapa ett ärende (länkad till en tredje part om den tredje parten laddades av en tidigare operation eller gissades från en spårare i e-posthuvudet, utan tredje part annars) CodeLastResult=Senaste resultatkoden NbOfEmailsInInbox=Antal e-postmeddelanden i källkatalogen LoadThirdPartyFromName=Ladda tredjepartsökning på %s (endast belastning) LoadThirdPartyFromNameOrCreate=Ladda tredjepartsökning på %s (skapa om ej hittad) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. +AttachJoinedDocumentsToObject=Spara bifogade filer i objektdokument om en ref för ett objekt hittas i e-postämnet. WithDolTrackingID=Meddelande från en konversation initierad av ett första e-postmeddelande skickat från Dolibarr WithoutDolTrackingID=Meddelande från en konversation initierad av ett första e-postmeddelande som INTE skickades från Dolibarr WithDolTrackingIDInMsgId=Meddelande skickat från Dolibarr @@ -2105,14 +2138,14 @@ CreateCandidature=Skapa jobbansökan FormatZip=Zip MainMenuCode=Menyinmatningskod (huvudmeny) ECMAutoTree=Visa automatiskt ECM-träd -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Definiera reglerna som ska användas för att extrahera vissa data eller ange värden som ska användas för drift.

    Exempel för att extrahera ett företagsnamn från e-postämnet till en temporär variabel:
    tmp_var=EXTRACT:SUBJECT:Meddelande från företaget ([^\n]*)

    Exempel för att ställa in egenskaperna för ett objekt som ska skapas:
    objproperty1=SET:ett hårdkodat värde
    objproperty2=SETT är endast objproperty2_var__property2=SET:__t1FEM_värde_värde:_f3värde_definierat värde:_f31F_värde_värde endast:_f3värde_värde
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    företagsnamn är\\s([^\\s]*)

    Använd en ; char som separator för att extrahera eller ställa in flera egenskaper. OpeningHours=Öppettider OpeningHoursDesc=Ange här företagets vanliga öppettider. ResourceSetup=Konfiguration av resursmodulen UseSearchToSelectResource=Använd en sökformulär för att välja en resurs (snarare än en rullgardinslista). DisabledResourceLinkUser=Inaktivera funktionen för att länka en resurs till användarna DisabledResourceLinkContact=Inaktivera funktionen för att länka en resurs till kontakter -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=Förhindra användning av samma resurs samtidigt i dagordningen ConfirmUnactivation=Bekräfta modulåterställning OnMobileOnly=På en liten skärm (smartphone) bara DisableProspectCustomerType=Inaktivera typen "Prospect + Customer" från tredje part (så tredje part måste vara "Prospect" eller "Customer", men kan inte vara båda) @@ -2151,13 +2184,13 @@ LargerThan=Större än IfTrackingIDFoundEventWillBeLinked=Observera att om ett spårnings-ID för ett objekt hittas i e-post, eller om e-postmeddelandet är ett svar på ett e-postområde som samlas in och länkas till ett objekt, kommer den skapade händelsen automatiskt att länkas till det kända relaterade objektet. WithGMailYouCanCreateADedicatedPassword=Med ett GMail-konto, om du aktiverade valet av 2 steg, rekommenderas att du skapar ett dedikerat andra lösenord för programmet istället för att använda ditt eget lösenordsord från https://myaccount.google.com/. EmailCollectorTargetDir=Det kan vara ett önskat beteende att flytta e-postmeddelandet till en annan tagg / katalog när den bearbetades framgångsrikt. Ange bara namnet på katalogen här för att använda den här funktionen (Använd INTE specialtecken i namnet). Observera att du också måste använda ett inloggningskonto för läs / skriv. -EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +EmailCollectorLoadThirdPartyHelp=Du kan använda den här åtgärden för att använda e-postinnehållet för att hitta och ladda en befintlig tredje part i din databas. Den hittade (eller skapade) tredje parten kommer att användas för följande åtgärder som behöver det.
    Till exempel, om du vill skapa en tredje part med ett namn extraherat från en sträng 'Namn: namn att hitta' som finns i brödtexten, använd avsändarens e-postmeddelande som e-post, du kan ställa in parameterfältet så här:
    'email= HUVUD:^Från:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=Slutpunkt för %s: %s DeleteEmailCollector=Ta bort e-postsamlare ConfirmDeleteEmailCollector=Är du säker på att du vill ta bort denna e-postsamlare? RecipientEmailsWillBeReplacedWithThisValue=Mottagarens e-postmeddelanden kommer alltid att ersättas med detta värde AtLeastOneDefaultBankAccountMandatory=Minst 1 standardbankkonto måste definieras -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +RESTRICT_ON_IP=Tillåt API-åtkomst till endast vissa klient-IP:er (jokertecken tillåts inte, använd mellanslag mellan värdena). Tom betyder att alla kunder kan komma åt. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Baserat på biblioteksversionen av SabreDAV NotAPublicIp=Inte en offentlig IP @@ -2167,8 +2200,12 @@ EmailTemplate=Mall för e-post EMailsWillHaveMessageID=E-postmeddelanden kommer att ha taggen "Referenser" som matchar denna syntax PDF_SHOW_PROJECT=Visa projekt på dokument ShowProjectLabel=Projektetikett +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Inkludera alias i tredje parts namn +THIRDPARTY_ALIAS=Namn tredje part - Alias tredje part +ALIAS_THIRDPARTY=Alias tredje part - Namn tredje part +PDFIn2Languages=Visa etiketter i PDF på 2 olika språk PDF_USE_ALSO_LANGUAGE_CODE=Om du vill att några texter i din PDF ska dupliceras på två olika språk i samma genererade PDF, måste du ställa in det här andra språket så att genererad PDF kommer att innehålla 2 olika språk på samma sida, det som du valt när du skapar PDF och det här ( endast få PDF-mallar stöder detta). Håll tomt för 1 språk per PDF. -PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF +PDF_USE_A=Generera PDF-dokument med formatet PDF/A istället för standardformatet PDF FafaIconSocialNetworksDesc=Ange här koden för en FontAwesome-ikon. Om du inte vet vad som är FontAwesome kan du använda det allmänna värdet fa-adressbok. RssNote=Obs! Varje RSS-feeddefinition ger en widget som du måste aktivera för att ha den tillgänglig i instrumentpanelen JumpToBoxes=Hoppa till Setup -> Widgets @@ -2191,75 +2228,130 @@ AskThisIDToYourBank=Kontakta din bank för att få detta ID AdvancedModeOnly=Tillstånd endast tillgängligt i avancerat tillståndsläge ConfFileIsReadableOrWritableByAnyUsers=Conf-filen är läsbar eller skrivbar av alla användare. Ge endast webbserveranvändare och gruppbehörighet. MailToSendEventOrganization=Event Organisation -MailToPartnership=Partnership +MailToPartnership=Partnerskap AGENDA_EVENT_DEFAULT_STATUS=Standardhändelsestatus när du skapar en händelse från formuläret YouShouldDisablePHPFunctions=Du bör inaktivera PHP-funktioner IfCLINotRequiredYouShouldDisablePHPFunctions=Förutom om du behöver köra systemkommandon i anpassad kod, ska du inaktivera PHP-funktioner -PHPFunctionsRequiredForCLI=För skaländamål (som schemalagd säkerhetskopiering av jobb eller körning av ett anitivursprogram) måste du behålla PHP-funktioner +PHPFunctionsRequiredForCLI=För shell-ändamål (som schemalagda säkerhetskopior eller antivirus) med PHP-funktioner NoWritableFilesFoundIntoRootDir=Inga skrivbara filer eller kataloger för de vanliga programmen hittades i din rotkatalog (Bra) -RecommendedValueIs=Rekommenderas: %s +RecommendedValueIs=Rekommenderad: %s Recommended=Rekommenderad NotRecommended=Rekommenderas inte -ARestrictedPath=Some restricted path +ARestrictedPath=Begränsad sökväg för datafiler CheckForModuleUpdate=Sök efter uppdateringar av externa moduler -CheckForModuleUpdateHelp=Denna åtgärd kommer att ansluta till redaktörer för externa moduler för att kontrollera om en ny version är tillgänglig. +CheckForModuleUpdateHelp=Denna åtgärd kommer att ansluta till utgivare av externa moduler för att kontrollera om en ny version är tillgänglig. ModuleUpdateAvailable=En uppdatering är tillgänglig NoExternalModuleWithUpdate=Inga uppdateringar hittades för externa moduler SwaggerDescriptionFile=Swagger API beskrivningsfil (för exempelvis användning med redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Du har aktiverat utfasade WS-API. Du borde använda REST API istället. RandomlySelectedIfSeveral=Slumpmässigt vald om flera bilder är tillgängliga +SalesRepresentativeInfo=För offert, order, fakturor. DatabasePasswordObfuscated=Databasens lösenord är dolt i konfigurationsfilen DatabasePasswordNotObfuscated=Databasens lösenord är INTE dolt i konfigurationsfilen APIsAreNotEnabled=API-moduler är inte aktiverade YouShouldSetThisToOff=Du borde sätta detta till 0 eller av -InstallAndUpgradeLockedBy=Install and upgrades are locked by the file %s -OldImplementation=Old implementation -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=If some online payment modules are enabled (Paypal, Stripe, ...), add a link on the PDF to make the online payment -DashboardDisableGlobal=Disable globally all the thumbs of open objects -BoxstatsDisableGlobal=Disable totally box statistics -DashboardDisableBlocks=Thumbs of open objects (to process or late) on main dashboard -DashboardDisableBlockAgenda=Disable the thumb for agenda -DashboardDisableBlockProject=Disable the thumb for projects -DashboardDisableBlockCustomer=Disable the thumb for customers -DashboardDisableBlockSupplier=Disable the thumb for suppliers -DashboardDisableBlockContract=Disable the thumb for contracts -DashboardDisableBlockTicket=Disable the thumb for tickets -DashboardDisableBlockBank=Disable the thumb for banks -DashboardDisableBlockAdherent=Disable the thumb for memberships -DashboardDisableBlockExpenseReport=Disable the thumb for expense reports -DashboardDisableBlockHoliday=Disable the thumb for leaves -EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -LanguageAndPresentation=Language and presentation -SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -PDF_USE_1A=Generate PDF with PDF/A-1b format -MissingTranslationForConfKey = Missing translation for %s -NativeModules=Native modules -NoDeployedModulesFoundWithThisSearchCriteria=No modules found for these search criteria -API_DISABLE_COMPRESSION=Disable compression of API responses -EachTerminalHasItsOwnCounter=Each terminal use its own counter. -FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first -PreviousHash=Previous hash -LateWarningAfter="Late" warning after -TemplateforBusinessCards=Template for a business card in different size -InventorySetup= Inventory Setup -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +InstallAndUpgradeLockedBy=Installation och uppgraderingar låses av filen %s +OldImplementation=Gammal implementering +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Om vissa moduler för onlinebetaning är aktiverad (Paypal, Stripe, ...), kan du lägga till en länk i PDF:en för att göra betalningen online +DashboardDisableGlobal=Inaktivera globalt alla miniatyrer för öppna objekt +BoxstatsDisableGlobal=Inaktivera helt boxstatistik +DashboardDisableBlocks=Miniatyrer för öppna objekt (att bearbeta eller försenat) på kontrollpanelen +DashboardDisableBlockAgenda=Inaktivera miniatyrer för dagordning +DashboardDisableBlockProject=Inaktivera miniatyrer för projekt +DashboardDisableBlockCustomer=Inaktivera miniatyrer för kunder +DashboardDisableBlockSupplier=Inaktivera miniatyrer för leverantörer +DashboardDisableBlockContract=Inaktivera miniatyrer för kontrakt +DashboardDisableBlockTicket=Inaktivera miniatyrer för ärenden +DashboardDisableBlockBank=Inaktivera miniatyrer för banker +DashboardDisableBlockAdherent=Inaktivera miniatyrer för medlemskap +DashboardDisableBlockExpenseReport=Inaktivera miniatyrer för utgiftsrapporter +DashboardDisableBlockHoliday=Inaktivera miniatyrer för frånvaro +EnabledCondition=Villkor för att ha fältet aktiverat (om det inte är aktiverat kommer synlighet alltid att vara inaktivt) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Om du vill använda en andra moms måste du även aktivera den första momsen +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Om du vill använda en tredje moms måste du även aktivera den första momsen +LanguageAndPresentation=Språk och presentation +SkinAndColors=Utseende och färger +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Om du vill använda en andra moms måste du även aktivera den första momsen +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Om du vill använda en tredje moms måste du även aktivera den första momsen +PDF_USE_1A=Skapa PDF med PDF/A-1b-format +MissingTranslationForConfKey = Saknar översättning för %s +NativeModules=Inbyggda moduler +NoDeployedModulesFoundWithThisSearchCriteria=Ingen modul hittades för dessa sökkriterier +API_DISABLE_COMPRESSION=Inaktivera komprimering av API-svar +EachTerminalHasItsOwnCounter=Varje terminal använder sin egen kassa. +FillAndSaveAccountIdAndSecret=Fyll i och spara konto-ID och hemlighet först +PreviousHash=Tidigare hash +LateWarningAfter=Varning för försening efter +TemplateforBusinessCards=Mall för visitkort i olika storlekar +InventorySetup= Lagerinställning +ExportUseLowMemoryMode=Använd ett läge med lågt minne +ExportUseLowMemoryModeHelp=Använd lågminnesläget för att generera dumpfilen (komprimering görs genom en pipe istället för i PHP-minnet). Den här metoden tillåter inte att kontrollera om filen är komplett och felmeddelandet kan inte rapportera om det misslyckas. Använd den om du upplever att du inte har tillräckligt med minne. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Gränssnitt för att fånga dolibarr-utlösare och skicka den till en URL +WebhookSetup = Webhook-inställning +Settings = Inställningar +WebhookSetupPage = Inställningar för webhooks +ShowQuickAddLink=Visa en knapp för att snabbt lägga till ett element i den övre högra menyn + +HashForPing=Hash används för ping +ReadOnlyMode=Är instans i "Läs"-läge +DEBUGBAR_USE_LOG_FILE=Använd filen dolibarr.log för att spara loggar +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Använd filen dolibarr.log för att spara loggar istället för att spara i minnet. Det gör det möjligt att spara alla loggar istället för att bara logga den aktuella processen, men kommer att göra din instans mer långsam. Rekommenderas inte. +FixedOrPercent=Fast (använd nyckelordet "fixed") eller procent (använd sökordet "percent") +DefaultOpportunityStatus=Standardstatus för möjligheter (första status när lead skapas) + +IconAndText=Ikon och text +TextOnly=Endast text +IconOnlyAllTextsOnHover=Endast ikon - alla texter visas under ikonen på menyraden för muspekaren +IconOnlyTextOnHover=Endast ikon - texten till ikonen visas under ikonen när du håller muspekaren över ikonen +IconOnly=Endast ikon - text endast på verktygstips +INVOICE_ADD_ZATCA_QR_CODE=Visa ZATCA QR-koden på fakturor +INVOICE_ADD_ZATCA_QR_CODEMore=Vissa arabiska länder behöver denna QR-kod på sina fakturor +INVOICE_ADD_SWISS_QR_CODE=Visa den schweiziska QR-koden på fakturor +INVOICE_SHOW_SHIPPING_ADDRESS=Visa leveransadress +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligatorisk omnämnande för Frankrike +UrlSocialNetworksDesc=Url-länk till socialt nätverk. Använd {socialid} för den variabla delen som innehåller det sociala nätverkets ID. +IfThisCategoryIsChildOfAnother=Om denna kategori är en underkategori till en annan +DarkThemeMode=Mörkt läge +AlwaysDisabled=Alltid inaktiverad +AccordingToBrowser=Enligt webbläsare +AlwaysEnabled=Alltid aktiverad +DoesNotWorkWithAllThemes=Fungerar inte med alla teman +NoName=Inget namn +ShowAdvancedOptions= Visa avancerade alternativ +HideAdvancedoptions= Dölj avancerade alternativ +CIDLookupURL=Modulen ger en URL som kan användas av ett externt verktyg för att få namnet på en tredjepart eller kontakt från dess telefonnummer. URL att använda är: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2-autentisering är inte tillgänglig hos alla värdar, och en token med rätt rättigheter måste ha skapats uppströms i OAUTH-modulen +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2-autentiseringstjänst +DontForgetCreateTokenOauthMod=En token med rätt rättigheter måste ha skapats uppströms med OAUTH-modulen +MAIN_MAIL_SMTPS_AUTH_TYPE=Autentiseringsmetod +UsePassword=Använd ett lösenord +UseOauth=Använd en OAUTH-token +Images=Bilder +MaxNumberOfImagesInGetPost=Max antal tillåtna bilder i ett HTML-fält som skickas in i ett formulär +MaxNumberOfPostOnPublicPagesByIP=Max antal postningar på publika sidor från samma IP-adress under en månad +CIDLookupURL=Modulen ger en URL som kan användas av ett externt verktyg för att få namnet på en tredjepart eller kontakt från dess telefonnummer. URL att använda är: +ScriptIsEmpty=Skriptet är tomt +ShowHideTheNRequests=Visa/dölj %s SQL-begäran(den) +DefinedAPathForAntivirusCommandIntoSetup=Ange en sökväg för ett antivirusprogram i %s +TriggerCodes=Utlösbara händelser +TriggerCodeInfo=Ange triggerkod(er) som ska generera en post efter en webbförfrågan (endast extern URL är tillåten). Du kan ange flera triggerkoder separerade med kommatecken. +EditableWhenDraftOnly=Om avmarkerad kan värdet endast ändras när objektet har en utkaststatus +CssOnEdit=CSS på redigeringssidor +CssOnView=CSS på visningssidor +CssOnList=CSS på listsidor +HelpCssOnEditDesc=CSS som används vid redigering av fältet.
    Exempel: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=CSS som används när du visar fältet. +HelpCssOnListDesc=CSS som används när fältet finns i en listtabell.
    Exempel: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Dölj den beställda kvantiteten på de genererade dokumenten för mottagningar +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Visa pris på de genererade dokumenten för mottagningar +WarningDisabled=Varning inaktiverad +LimitsAndMitigation=Åtkomstgränser och begränsningar +DesktopsOnly=Endast datorer +DesktopsAndSmartphones=Datorer och mobila enheter +AllowOnlineSign=Tillåt onlinesignering +AllowExternalDownload=Tillåt extern nedladdning (utan inloggning, med en delad länk) +DeadlineDayVATSubmission=Sista dag för momsinlämning nästa månad +MaxNumberOfAttachementOnForms=Max antal sammanfogade filer i ett formulär +IfDefinedUseAValueBeetween=Om angiven, använd ett värde mellan %soch %s diff --git a/htdocs/langs/sv_SE/agenda.lang b/htdocs/langs/sv_SE/agenda.lang index d2090cd56b8..55fa261258d 100644 --- a/htdocs/langs/sv_SE/agenda.lang +++ b/htdocs/langs/sv_SE/agenda.lang @@ -1,174 +1,181 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=ID händelse -Actions=Åtgärder -Agenda=Agenda -TMenuAgenda=Agenda +Actions=Händelser +Agenda=Dagordning +TMenuAgenda=Dagordning Agendas=Dagordningar LocalAgenda=Standardkalender ActionsOwnedBy=Händelse som ägs av ActionsOwnedByShort=Ägare -AffectedTo=Påverkas i +AffectedTo=Tilldelad Event=Händelse -Events=Evenemang +Events=Händelser EventsNb=Antal händelser -ListOfActions=Lista över evenemang +ListOfActions=Lista över händelser EventReports=Händelsesrapporter -Location=Läge +Location=Plats ToUserOfGroup=Händelse tilldelad till alla användare i gruppen -EventOnFullDay=Händelse heldag -MenuToDoActions=Alla ofullständiga handlingar -MenuDoneActions=Alla avslutade åtgärder -MenuToDoMyActions=Min ofullständiga handlingar -MenuDoneMyActions=Min avslutas åtgärder +EventOnFullDay=Heldagshändelse +MenuToDoActions=Alla ofullständiga händelser +MenuDoneActions=Alla avslutade händelser +MenuToDoMyActions=Min ofullständiga händelser +MenuDoneMyActions=Min avslutade händelser ListOfEvents=Händelselista (standardkalender) -ActionsAskedBy=Åtgärder som registrerats av -ActionsToDoBy=Åtgärder påverkas -ActionsDoneBy=Åtgärder som utförs av -ActionAssignedTo=Händelse delad -ViewCal=Visa kalender +ActionsAskedBy=Händelser rapporterade av +ActionsToDoBy=Händelser tilldelade +ActionsDoneBy=Händelser utförda av +ActionAssignedTo=Händelse tilldelad +ViewCal=Månadsvy ViewDay=Dagsvy ViewWeek=Veckovy -ViewPerUser=Per user view -ViewPerType=Per typvy -AutoActions= Automatisk fyllning av dagordning -AgendaAutoActionDesc= Här kan du definiera events som du vill ha Dolibarr till create automatically i Agenda. Om inget är checked, kommer endast manuella åtgärder att inkluderas i loggar and som visas i Agenda. Automatisk spårning av affärsåtgärder gjorda på objects (bekräftelse, statusändring) sparas inte. +ViewPerUser=Vy per användare +ViewPerType=Vy per typ +AutoActions= Automatisk fyllning +AgendaAutoActionDesc= Här kan du ange händelser som du vill att Dolibarr ska skapa automatiskt i dagordningen. Om inget är förkryssat kommer endast manuella händelser att inkluderas i loggar och visas i dagordningen. Automatisk spårning av affärsåtgärder gjorda på objekt (bekräftelse, statusändring) sparas inte. AgendaSetupOtherDesc= Den här sidan innehåller alternativ för att tillåta export av dina Dolibarr events till en extern kalender (Thunderbird, Google Kalender etc ...) -AgendaExtSitesDesc=Den här sidan gör det möjligt att deklarera externa kalendrar för att se sina evenemang i Dolibarr agenda. -ActionsEvents=Händelser som Dolibarr kommer att skapa en talan i agenda automatiskt -EventRemindersByEmailNotEnabled=Händelsepåminnelser av email var inte aktiverat i %s module inställning. +AgendaExtSitesDesc=Den här sidan gör det möjligt att ange externa kalendrar för att se sina evenemang i dagordningen. +ActionsEvents=Händelser som Dolibarr kommer att skapa en händelse för i dagordningen automatiskt +EventRemindersByEmailNotEnabled=Händelsepåminnelser via e-post var inte aktiverat i modulinställningen %s . ##### Agenda event labels ##### -NewCompanyToDolibarr=Tredje part %s skapad -COMPANY_MODIFYInDolibarr=Tredje part %s modifierad -COMPANY_DELETEInDolibarr=Tredje part %s borttagen +NewCompanyToDolibarr=Tredjepart %s skapad +COMPANY_MODIFYInDolibarr=Tredjepart %s ändrad +COMPANY_DELETEInDolibarr=Tredjepart %s raderad ContractValidatedInDolibarr=Kontrakt %s bekräftades CONTRACT_DELETEInDolibarr=Kontrakt %s raderad -PropalClosedSignedInDolibarr=Förslag %s undertecknade -PropalClosedRefusedInDolibarr=Förslag %s vägrade -PropalValidatedInDolibarr=Förslag %s bekräftades -PropalClassifiedBilledInDolibarr=Förslag %s märkt faktureras +PropalClosedSignedInDolibarr=Offert%s signerades +PropalClosedRefusedInDolibarr=Offert %s avslogs +PropalValidatedInDolibarr=Offert %s bekräftades +PropalBackToDraftInDolibarr=Offert %s backades till utkast +PropalClassifiedBilledInDolibarr=Offert %s markerades som fakturerad InvoiceValidatedInDolibarr=Faktura %s bekräftades -InvoiceValidatedInDolibarrFromPos=Faktura %s bekräftats från POS -InvoiceBackToDraftInDolibarr=Faktura %s gå tillbaka till förslaget status -InvoiceDeleteDolibarr=Faktura %s raderas -InvoicePaidInDolibarr=Faktura %s ändrades till betald -InvoiceCanceledInDolibarr=Faktura %s annulleras +InvoiceValidatedInDolibarrFromPos=Faktura %s bekräftades från POS +InvoiceBackToDraftInDolibarr=Faktura %s backades till utkast +InvoiceDeleteDolibarr=Faktura %s raderad +InvoicePaidInDolibarr=Faktura %s markerades som betald +InvoiceCanceledInDolibarr=Faktura %s makulerades MemberValidatedInDolibarr=Medlem %s bekräftades -MemberModifiedInDolibarr=Medlem %s modified +MemberModifiedInDolibarr=Medlem %s ändrad MemberResiliatedInDolibarr=Medlem %s avslutad MemberDeletedInDolibarr=Medlem %s raderad +MemberExcludedInDolibarr=Medlem %s utesluten MemberSubscriptionAddedInDolibarr=Prenumeration %s för medlem %s tillagd -MemberSubscriptionModifiedInDolibarr=Prenumeration %s för medlem %s modified +MemberSubscriptionModifiedInDolibarr=Prenumeration %s för medlem %s ändrad MemberSubscriptionDeletedInDolibarr=Prenumeration %s för medlem %s raderad -ShipmentValidatedInDolibarr=Leverans %s bekräftat -ShipmentClassifyClosedInDolibarr=Sändning %s märkt fakturerad -ShipmentUnClassifyCloseddInDolibarr=Leverans %s klassificerad återöppen -ShipmentBackToDraftInDolibarr=Leverans %s gå tillbaka till utkast status +ShipmentValidatedInDolibarr=Leverans %s bekräftad +ShipmentClassifyClosedInDolibarr=Leverans %s markerades som fakturerad +ShipmentUnClassifyCloseddInDolibarr=Leverans %s markerades som återöppnad +ShipmentBackToDraftInDolibarr=Leverans %s backades till utkast ShipmentDeletedInDolibarr=Frakten %s raderad -ShipmentCanceledInDolibarr=Shipment %s canceled -ReceptionValidatedInDolibarr=Mottagning %s validerad +ShipmentCanceledInDolibarr=Leverans %s avbruten +ReceptionValidatedInDolibarr=Mottagning %s bekräftad +ReceptionDeletedInDolibarr=Leverans %s raderad +ReceptionClassifyClosedInDolibarr=Mottagning %s stängdes OrderCreatedInDolibarr=Order %s skapad -OrderValidatedInDolibarr=Order %s bekräftades -OrderDeliveredInDolibarr=Order %s märkt levererad -OrderCanceledInDolibarr=Order %s avbryts -OrderBilledInDolibarr=Order %s märkt fakturerad -OrderApprovedInDolibarr=Ordningens %s godkänd -OrderRefusedInDolibarr=Order %s vägrade -OrderBackToDraftInDolibarr=Order %s gå tillbaka till förslaget status -ProposalSentByEMail=Kommersiell proposal %s skickad av email -ContractSentByEMail=Kontrakt %s skickat av email -OrderSentByEMail=Försäljning order %s skickad av email -InvoiceSentByEMail=Kund invoice %s skickad av email -SupplierOrderSentByEMail=Purchase order %s skickad av email -ORDER_SUPPLIER_DELETEInDolibarr=Inköpsorder %s borttagen -SupplierInvoiceSentByEMail=Vendor invoice %s skickad av email -ShippingSentByEMail=Leverans %s skickad av email -ShippingValidated= Leverans %s bekräftat -InterventionSentByEMail=Intervention %s skickad av email -ProposalDeleted=Förslag raderad +OrderValidatedInDolibarr=Order %s bekräftad +OrderDeliveredInDolibarr=Order %s markerades som levererad +OrderCanceledInDolibarr=Order %s avbruten +OrderBilledInDolibarr=Order %s markerades som fakturerad +OrderApprovedInDolibarr=Order %s godkänd +OrderRefusedInDolibarr=Order %s avslogs +OrderBackToDraftInDolibarr=Order %s backades till utkast +ProposalSentByEMail=Offert %s skickades via e-post +ContractSentByEMail=Kontrakt %s skickades via e-post +OrderSentByEMail=Order %s skickades via e-post +InvoiceSentByEMail=Faktura %s skickades via e-post +SupplierOrderSentByEMail=Inköpsorder %s skickades via e-post +ORDER_SUPPLIER_DELETEInDolibarr=Inköpsorder %s raderad +SupplierInvoiceSentByEMail=Leverantörsfaktura %s skickades via e-post +ShippingSentByEMail=Leverans %s skickades via e-post +ShippingValidated= Leverans %s bekräftad +InterventionSentByEMail=Intervention %s skickades via e-post +ProjectSentByEMail=Projekt %s skickades via e-post +ProposalDeleted=Offert raderad OrderDeleted=Order raderad InvoiceDeleted=Faktura raderad DraftInvoiceDeleted=Utkastsfaktura borttagen -CONTACT_CREATEInDolibarr=Kontakt %s skapat +CONTACT_CREATEInDolibarr=Kontakt %s skapad CONTACT_MODIFYInDolibarr=Kontakt %s ändrad -CONTACT_DELETEInDolibarr=Kontakt %s borttagen +CONTACT_DELETEInDolibarr=Kontakt %s raderad PRODUCT_CREATEInDolibarr=Produkt %s skapad -PRODUCT_MODIFYInDolibarr=Produkt %s modified +PRODUCT_MODIFYInDolibarr=Produkt %s ändrad PRODUCT_DELETEInDolibarr=Produkt %s raderad -HOLIDAY_CREATEInDolibarr=Begäran om ledighet %s skapad -HOLIDAY_MODIFYInDolibarr=Begäran om ledighet %s ändrad -HOLIDAY_APPROVEInDolibarr=Begäran om ledighet %s godkänd -HOLIDAY_VALIDATEInDolibarr=Begäran om ledighet %s bekräftad -HOLIDAY_DELETEInDolibarr=Begäran om ledighet %s borttagen -EXPENSE_REPORT_CREATEInDolibarr=Kostnadsrapport %s skapad -EXPENSE_REPORT_VALIDATEInDolibarr=Kostnadsrapport %s bekräftat -EXPENSE_REPORT_APPROVEInDolibarr=Kostnadsrapport %s godkänd -EXPENSE_REPORT_DELETEInDolibarr=Kostnadsrapport %s raderad -EXPENSE_REPORT_REFUSEDInDolibarr=Kostnadsrapport %s refused +HOLIDAY_CREATEInDolibarr=Ledighetsansökan %s skapad +HOLIDAY_MODIFYInDolibarr=Ledighetsansökan %s ändrad +HOLIDAY_APPROVEInDolibarr=Ledighetsansökan %s godkänd +HOLIDAY_VALIDATEInDolibarr=Ledighetsansökan %s bekräftad +HOLIDAY_DELETEInDolibarr=Ledighetsansökan %s borttagen +EXPENSE_REPORT_CREATEInDolibarr=Utlägg %s skapad +EXPENSE_REPORT_VALIDATEInDolibarr=Utlägg %s bekräftad +EXPENSE_REPORT_APPROVEInDolibarr=Utlägg %s godkänd +EXPENSE_REPORT_DELETEInDolibarr=Utlägg %s raderad +EXPENSE_REPORT_REFUSEDInDolibarr=Utlägg %s avslogs PROJECT_CREATEInDolibarr=Projekt %s skapad -PROJECT_MODIFYInDolibarr=Projekt %s modified +PROJECT_MODIFYInDolibarr=Projekt %s ändrad PROJECT_DELETEInDolibarr=Projekt %s raderad -TICKET_CREATEInDolibarr=Biljett %s skapad -TICKET_MODIFYInDolibarr=Biljett %s modified +TICKET_CREATEInDolibarr=Ärende %s skapad +TICKET_MODIFYInDolibarr=Ärende %s ändrad TICKET_ASSIGNEDInDolibarr=Ärende %s tilldelat -TICKET_CLOSEInDolibarr=Biljett %s stängt -TICKET_DELETEInDolibarr=Biljett %s raderad -BOM_VALIDATEInDolibarr=BOM validerad -BOM_UNVALIDATEInDolibarr=Stycklista ogiltig +TICKET_CLOSEInDolibarr=Ärende %s stängd +TICKET_DELETEInDolibarr=Ärende %s raderad +BOM_VALIDATEInDolibarr=BOM bekräftad +BOM_UNVALIDATEInDolibarr=BOM obekräftad BOM_CLOSEInDolibarr=BOM inaktiverad -BOM_REOPENInDolibarr=BOM öppnas igen +BOM_REOPENInDolibarr=BOM återöppnad BOM_DELETEInDolibarr=BOM raderad -MRP_MO_VALIDATEInDolibarr=MO validerad -MRP_MO_UNVALIDATEInDolibarr=MO inställd på utkaststatus +MRP_MO_VALIDATEInDolibarr=MO bekräftad +MRP_MO_UNVALIDATEInDolibarr=MO angiven till utkast MRP_MO_PRODUCEDInDolibarr=MO producerad -MRP_MO_DELETEInDolibarr=MO borttagen -MRP_MO_CANCELInDolibarr=MO avbröts +MRP_MO_DELETEInDolibarr=MO raderad +MRP_MO_CANCELInDolibarr=MO avbruten PAIDInDolibarr=%s betald ##### End agenda events ##### -AgendaModelModule=Dokumentmallar för event +AgendaModelModule=Dokumentmallar för händelser DateActionStart=Startdatum DateActionEnd=Slutdatum -AgendaUrlOptions1=Du kan också lägga till följande parametrar för att filtrera utgång: -AgendaUrlOptions3=Logina =%s ​​att begränsa produktionen till åtgärder som ägs av en användare%s. -AgendaUrlOptionsNotAdmin=  logina =! %s för att begränsa produktionen till åtgärder som inte ägs av user %s . -AgendaUrlOptions4=  logint = %s för att begränsa utdata till åtgärder som tilldelats user %s (ägare and andra). -AgendaUrlOptionsProject=  project = __ PROJECT_ID__ för att begränsa utsignalen till åtgärder linked till project __PROJECT_ID__ . -AgendaUrlOptionsNotAutoEvent=  notactiontype = systemauto för att utesluta automatisk events. -AgendaUrlOptionsIncludeHolidays=includeholidays=1 ta med helgdagar +AgendaUrlOptions1=Du kan också lägga till följande parametrar för att filtrera: +AgendaUrlOptions3=Logina =%s ​​att begränsa till åtgärder som ägs av en användare%s. +AgendaUrlOptionsNotAdmin= logina =! %s för att begränsa till åtgärder som inte ägs av användare %s . +AgendaUrlOptions4=logint= för att begränsa till åtgärder som tilldelats användare %s (ägare och andra) +AgendaUrlOptionsProject= project = __ PROJECT_ID__ för att begränsa till åtgärder länkade till projekt __PROJECT_ID__ . +AgendaUrlOptionsNotAutoEvent= notactiontype = systemauto för att utesluta automatiska händelser. +AgendaUrlOptionsIncludeHolidays=includeholidays=1 för att inkludera helgdagar AgendaShowBirthdayEvents=Kontakters födelsedagar -AgendaHideBirthdayEvents=Dölj födelsedagar av contacts +AgendaHideBirthdayEvents=Dölj kontakters födelsedagar Busy=Upptagen -ExportDataset_event1=Lista över dagordningen händelser -DefaultWorkingDays=Standard arbetsdagar varierar i veckan (exempel: 1-5, 1-6) -DefaultWorkingHours=Standard arbetstiden i dag (exempel: 9-18) +ExportDataset_event1=Lista händelser på dagordningen +DefaultWorkingDays=Spann på arbetsdagar under veckan (exempel: 1-5, 1-6) +DefaultWorkingHours=Arbetstid under en dag (exempel: 8-17) # External Sites ical -ExportCal=Export kalender -ExtSites=Importera externa kalendrar -ExtSitesEnableThisTool=Show externa kalendrar (definierad i global inställning) i Agenda. Inverkar inte på externa kalendrar som definieras av users. +ExportCal=Exportera kalender +ExtSites=Importera extern kalender +ExtSitesEnableThisTool=Visa extern kalender (angiven i global inställning) i dagordningen. Påverkar inte externa kalendrar som angivits av användare. ExtSitesNbOfAgenda=Antal kalendrar -AgendaExtNb=Kalender nr. %s -ExtSiteUrlAgenda=URL att komma åt. Ical-fil +AgendaExtNb=Kalender nr %s +ExtSiteUrlAgenda=URL för .ical-fil ExtSiteNoLabel=Ingen beskrivning VisibleTimeRange=Synligt tidsintervall -VisibleDaysRange=Synligt dagintervall -AddEvent=Skapa event +VisibleDaysRange=Synligt dagsintervall +AddEvent=Skapa händelse MyAvailability=Min tillgänglighet ActionType=Typ av händelse DateActionBegin=Startdatum för händelse -ConfirmCloneEvent=Är du säker på att du vill klona event %s ? +ConfirmCloneEvent=Är du säker på att du vill klona händelse %s ? RepeatEvent=Repetera händelsen OnceOnly=Endast en gång +EveryDay=Varje dag EveryWeek=Varje vecka EveryMonth=Varje månad DayOfMonth=Dag i månaden DayOfWeek=Dag i veckan DateStartPlusOne=Startdatum +1 timma -SetAllEventsToTodo=Sätt alla händelser "att göra" -SetAllEventsToInProgress=Sätt alla händelser under behandling -SetAllEventsToFinished=Sätt alla händelser som utförda -ReminderTime=Påminnelseperiod innan händelse +SetAllEventsToTodo=Ange alla händelser som att göra +SetAllEventsToInProgress=Ange alla händelser som under behandling +SetAllEventsToFinished=Ange alla händelser som utförda +ReminderTime=Påminnelse innan händelse TimeType=Varaktighetstyp -ReminderType=Återuppringningstyp -AddReminder=Skapa en automatisk påminnelsenotifiering för denna händelse -ErrorReminderActionCommCreation=Fel vid skapande av påminnelsenotifiering för denna händelse -BrowserPush=Meddelande om popup-webbläsare -ActiveByDefault=Enabled by default +ReminderType=Återanropstyp +AddReminder=Skapa en automatisk påminnelse för händelsen +ErrorReminderActionCommCreation=Fel vid skapande av påminnelse +BrowserPush=Popup i webbläsare +ActiveByDefault=Aktiverad som standard +Until=tills diff --git a/htdocs/langs/sv_SE/assets.lang b/htdocs/langs/sv_SE/assets.lang index 003cf538258..f7f921cf798 100644 --- a/htdocs/langs/sv_SE/assets.lang +++ b/htdocs/langs/sv_SE/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,52 +16,171 @@ # # Generic # -Assets = Tillgångar -NewAsset = Ny tillgång -AccountancyCodeAsset = Redovisningskod (tillgång) -AccountancyCodeDepreciationAsset = Redovisningskod (avskrivningstillgångskonto) -AccountancyCodeDepreciationExpense = Redovisningskod (avskrivningskostnadskonto) -NewAssetType=Ny tillgångstyp -AssetsTypeSetup=Inställning av tillgångstyp -AssetTypeModified=Asset typ modifierad -AssetType=Tillgångstyp +NewAsset=Ny tillgång +AccountancyCodeAsset=Redovisningskod (tillgång) +AccountancyCodeDepreciationAsset=Redovisningskod (avskrivningstillgångskonto) +AccountancyCodeDepreciationExpense=Redovisningskod (avskrivningskostnadskonto) AssetsLines=Tillgångar DeleteType=Radera -DeleteAnAssetType=Ta bort en tillgångstyp -ConfirmDeleteAssetType=Är du säker på att du vill ta bort denna tillgångstyp? -ShowTypeCard=Visa typ '%s' +DeleteAnAssetType=Ta bort en tillgångsmodell +ConfirmDeleteAssetType=Är du säker på att du vill ta bort den här tillgångsmodellen? +ShowTypeCard=Visa modell '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Tillgångar +ModuleAssetsName=Tillgångar # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Tillgångsbeskrivning +ModuleAssetsDesc=Tillgångsbeskrivning # # Admin page # -AssetsSetup = Inställning av tillgångar -Settings = inställningar -AssetsSetupPage = Inställningssidan för tillgångar -ExtraFieldsAssetsType = Kompletterande attribut (tillgångstyp) -AssetsType=Tillgångstyp -AssetsTypeId=Tillgångstyp id -AssetsTypeLabel=Typ av tillgångstyp -AssetsTypes=Tillgångstyper +AssetSetup=Inställning av tillgångar +AssetSetupPage=Inställningssida för tillgångar +ExtraFieldsAssetModel=Kompletterande attribut (tillgångens modell) + +AssetsType=Tillgångsmodell +AssetsTypeId=Tillgångsmodell-id +AssetsTypeLabel=Tillgångsmodelletikett +AssetsTypes=Tillgångsmodeller +ASSET_ACCOUNTANCY_CATEGORY=Redovisningsgrupp för anläggningstillgångar # # Menu # -MenuAssets = Tillgångar -MenuNewAsset = Ny tillgång -MenuTypeAssets = Skriv tillgångar -MenuListAssets = Lista -MenuNewTypeAssets = Ny -MenuListTypeAssets = Lista +MenuAssets=Tillgångar +MenuNewAsset=Ny tillgång +MenuAssetModels=Modelltillgångar +MenuListAssets=Lista +MenuNewAssetModel=Ny tillgångsmodell +MenuListAssetModels=Lista # # Module # +ConfirmDeleteAsset=Vill du verkligen ta bort den här tillgången? + +# +# Tab +# +AssetDepreciationOptions=Avskrivningsmöjligheter +AssetAccountancyCodes=Redovisningskonton +AssetDepreciation=Avskrivning + +# +# Asset +# Asset=Tillgång -NewAssetType=Ny tillgångstyp -NewAsset=Ny tillgång -ConfirmDeleteAsset=Är du säker på att du vill ta bort denna tillgång? +Assets=Tillgångar +AssetReversalAmountHT=Återföringsbelopp (utan skatter) +AssetAcquisitionValueHT=Förvärvsbelopp (utan skatter) +AssetRecoveredVAT=Återförd moms +AssetReversalDate=Återföringsdatum +AssetDateAcquisition=Förvärvsdatum +AssetDateStart=Datum för uppstart +AssetAcquisitionType=Typ av förvärv +AssetAcquisitionTypeNew=Ny +AssetAcquisitionTypeOccasion=Använd +AssetType=Typ av tillgång +AssetTypeIntangible=Immateriella +AssetTypeTangible=Materiella +AssetTypeInProgress=Pågående +AssetTypeFinancial=Finansiell +AssetNotDepreciated=Ej avskriven +AssetDisposal=Förfogande +AssetConfirmDisposalAsk=Är du säker på att du vill göra dig av med tillgången %s ? +AssetConfirmReOpenAsk=Är du säker på att du vill öppna tillgången %s igen? + +# +# Asset status +# +AssetInProgress=Pågående +AssetDisposed=Avyttrad +AssetRecorded=Redovisad + +# +# Asset disposal +# +AssetDisposalDate=Datum för avyttring +AssetDisposalAmount=Avyttringsvärde +AssetDisposalType=Typ av avyttring +AssetDisposalDepreciated=Skriv av överföringsåret +AssetDisposalSubjectToVat=Avyttring för moms + +# +# Asset model +# +AssetModel=Tillgångens modell +AssetModels=Tillgångens modeller + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Ekonomisk avskrivning +AssetDepreciationOptionAcceleratedDepreciation=Accelererad avskrivning (skatt) +AssetDepreciationOptionDepreciationType=Typ av avskrivning +AssetDepreciationOptionDepreciationTypeLinear=Linjär +AssetDepreciationOptionDepreciationTypeDegressive=Degressiv +AssetDepreciationOptionDepreciationTypeExceptional=Exceptionell +AssetDepreciationOptionDegressiveRate=Degressiv takt +AssetDepreciationOptionAcceleratedDepreciation=Accelererad avskrivning (skatt) +AssetDepreciationOptionDuration=Längd +AssetDepreciationOptionDurationType=Typ varaktighet +AssetDepreciationOptionDurationTypeAnnual=Årlig +AssetDepreciationOptionDurationTypeMonthly=Månatlig +AssetDepreciationOptionDurationTypeDaily=Daglig +AssetDepreciationOptionRate=Takt (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Avskrivningsunderlag (exkl. moms) +AssetDepreciationOptionAmountBaseDeductibleHT=Avdragsgill bas (exkl. moms) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Totalt belopp senaste avskrivning (exkl. moms) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Ekonomisk avskrivning +AssetAccountancyCodeAsset=Tillgång +AssetAccountancyCodeDepreciationAsset=Avskrivning +AssetAccountancyCodeDepreciationExpense=Avskrivningar +AssetAccountancyCodeValueAssetSold=Värdet på avyttrad tillgång +AssetAccountancyCodeReceivableOnAssignment=Fordran vid avyttring +AssetAccountancyCodeProceedsFromSales=Intäkter från avyttring +AssetAccountancyCodeVatCollected=Insamlad moms +AssetAccountancyCodeVatDeductible=Återförd moms på tillgångar +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Accelererad avskrivning (skatt) +AssetAccountancyCodeAcceleratedDepreciation=Konto +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Avskrivningar +AssetAccountancyCodeProvisionAcceleratedDepreciation=Återtagande/provision + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Avskrivningsunderlag (exkl. moms) +AssetDepreciationBeginDate=Start av avskrivning den +AssetDepreciationDuration=Längd +AssetDepreciationRate=Takt (%%) +AssetDepreciationDate=Avskrivningsdatum +AssetDepreciationHT=Avskrivning (exkl. moms) +AssetCumulativeDepreciationHT=Kumulativa avskrivningar (exkl. moms) +AssetResidualHT=Restvärde (exkl. moms) +AssetDispatchedInBookkeeping=Bokförda avskrivningar +AssetFutureDepreciationLine=Framtida avskrivningar +AssetDepreciationReversal=Återföring + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Id för tillgången eller modellljudet har inte angetts +AssetErrorFetchAccountancyCodesForMode=Fel vid hämtning av bokföringskontona för avskrivningsläget '%s' +AssetErrorDeleteAccountancyCodesForMode=Fel vid radering av redovisningskonton från avskrivningsläget '%s' +AssetErrorInsertAccountancyCodesForMode=Fel vid infogning av bokföringskontona för avskrivningsläget '%s' +AssetErrorFetchDepreciationOptionsForMode=Fel vid hämtning av alternativ för avskrivningsläget '%s' +AssetErrorDeleteDepreciationOptionsForMode=Fel vid borttagning av "%s" alternativ för avskrivningsläge +AssetErrorInsertDepreciationOptionsForMode=Fel vid insättning av alternativen för '%s' avskrivningsläge +AssetErrorFetchDepreciationLines=Fel vid hämtning av registrerade avskrivningsrader +AssetErrorClearDepreciationLines=Fel vid rensning av registrerade avskrivningsrader (återföring och framtida) +AssetErrorAddDepreciationLine=Fel när en avskrivningsrad lades till +AssetErrorCalculationDepreciationLines=Fel vid beräkning av avskrivningsraderna (återföring och framtid) +AssetErrorReversalDateNotProvidedForMode=Återföringsdatumet anges inte för avskrivningsmetoden '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Återföringsdatumet måste vara senare eller från början av innevarande räkenskapsår för avskrivningsmetoden '%s' +AssetErrorReversalAmountNotProvidedForMode=Återföringsbeloppet anges inte för avskrivningsläget '%s'. +AssetErrorFetchCumulativeDepreciation=Fel vid hämtning av det ackumulerade avskrivningsbeloppet från avskrivningsraden +AssetErrorSetLastCumulativeDepreciation=Fel vid registrering av det senaste ackumulerade avskrivningsbeloppet diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang index f384fbb2c0d..63f54c9f208 100644 --- a/htdocs/langs/sv_SE/banks.lang +++ b/htdocs/langs/sv_SE/banks.lang @@ -1,38 +1,38 @@ # Dolibarr language file - Source file is en_US - banks Bank=Bank -MenuBankCash=Banker | Kontanter +MenuBankCash=Bank | Kontanter MenuVariousPayment=Diverse betalningar MenuNewVariousPayment=Ny diverse betalning BankName=Bankens namn FinancialAccount=Konto BankAccount=Bankkonto BankAccounts=Bankkonton -BankAccountsAndGateways=Bankkonton | Gateways +BankAccountsAndGateways=Bankkonton i gateways ShowAccount=Visa konto AccountRef=Finansiell balans ref AccountLabel=Finansiell balans etikett -CashAccount=Cash konto +CashAccount=Kontantkonto CashAccounts=Likvida medel CurrentAccounts=Löpande räkningar SavingAccounts=Sparkonton -ErrorBankLabelAlreadyExists=Finansiell balans etikett finns redan +ErrorBankLabelAlreadyExists=Finansiell balansetikett finns redan BankBalance=Balans BankBalanceBefore=Balans innan BankBalanceAfter=Balans efter BalanceMinimalAllowed=Minsta tillåtna balans BalanceMinimalDesired=Lägsta önskvärd balans -InitialBankBalance=Initial jämvikt -EndBankBalance=Avsluta balans -CurrentBalance=Aktuellt saldo +InitialBankBalance=Initial balans +EndBankBalance=Slutbalans +CurrentBalance=Aktuell balans FutureBalance=Framtida balans ShowAllTimeBalance=Visa balans från start AllTime=Från början Reconciliation=Avstämning RIB=Bankkontonummer IBAN=IBAN-nummer -BIC=BIC / SWIFT-kod -SwiftValid=BIC / SWIFT giltig -SwiftNotValid=BIC / SWIFT är ej giltigt +BIC=BIC/SWIFT-kod +SwiftValid=BIC/SWIFT giltig +SwiftNotValid=BIC/SWIFT är ej giltigt IbanValid=BAN giltig IbanNotValid=BAN är ej giltigt StandingOrders=Direkt debiteringsorder @@ -41,26 +41,26 @@ PaymentByDirectDebit=Direktbetalning PaymentByBankTransfers=Betalningar med kreditöverföring PaymentByBankTransfer=Betalning med kreditöverföring AccountStatement=Kontoutdrag -AccountStatementShort=Uttalande +AccountStatementShort=Utdrag AccountStatements=Kontoutdrag LastAccountStatements=Senaste kontoutdrag IOMonthlyReporting=Månadsrapport -BankAccountDomiciliation=bankadress +BankAccountDomiciliation=Bankadress BankAccountCountry=Konto land -BankAccountOwner=Konto ägare namn -BankAccountOwnerAddress=Konto ägare adress +BankAccountOwner=Kontoinnehavare namn +BankAccountOwnerAddress=Kontoinnehavare adress CreateAccount=Skapa konto NewBankAccount=Nytt konto -NewFinancialAccount=Nya finansiella konto -MenuNewFinancialAccount=Nya finansiella konto +NewFinancialAccount=Nytt finansiellt konto +MenuNewFinancialAccount=Nytt finansiellt konto EditFinancialAccount=Redigera konto -LabelBankCashAccount=Bank eller kontant etikett +LabelBankCashAccount=Etikett för bank eller kontant AccountType=Kontotyp BankType0=Sparkonto -BankType1=Bytesbalans -BankType2=Cash konto -AccountsArea=Konton område -AccountCard=Konto-kort +BankType1=Nuvarande eller kontokortskonto +BankType2=Kontantkonto +AccountsArea=Kontoområde +AccountCard=Kontokort DeleteAccount=Radera konto ConfirmDeleteAccount=Är du säker på att du vill radera detta konto? Account=Konto @@ -73,23 +73,23 @@ IdTransaction=Transaktions-ID BankTransactions=Bankposter BankTransaction=Bankpost ListTransactions=Lista poster -ListTransactionsByCategory=Lista poster / kategori -TransactionsToConciliate=Inlägg för att förena +ListTransactionsByCategory=Lista poster/kategori +TransactionsToConciliate=Poster att förlika TransactionsToConciliateShort=Att förlika -Conciliable=Kan förenas -Conciliate=Reconcile -Conciliation=Avstämning +Conciliable=Kan förlikas +Conciliate=Förlika +Conciliation=Förlikning SaveStatementOnly=Spara endast uttalandet -ReconciliationLate=Sen avstämning -IncludeClosedAccount=Inkludera stängda konton +ReconciliationLate=Sen förlikning +IncludeClosedAccount=Inkludera avslutade konton OnlyOpenedAccount=Enbart öppna konton -AccountToCredit=Hänsyn till kreditinstitut +AccountToCredit=Konto att kreditera AccountToDebit=Konto att debitera -DisableConciliation=Inaktivera försoning för den här kontot -ConciliationDisabled=Avstämning inaktiverad +DisableConciliation=Inaktivera förlikning för den här kontot +ConciliationDisabled=Förlikning inaktiverad LinkedToAConciliatedTransaction=Kopplad till en förlikad post StatusAccountOpened=Öppen -StatusAccountClosed=Stängt +StatusAccountClosed=Stängd AccountIdShort=Antal LineRecord=Transaktion AddBankRecord=Lägg till post @@ -110,58 +110,58 @@ BankTransfers=Kreditöverföringar MenuBankInternalTransfer=Intern överföring TransferDesc=Använd intern överföring för att överföra från ett konto till ett annat. Systemet kommer skapa två poster: en debit och en kredit, samma summa, benämning och datum kommer bli använt för transaktionen. TransferFrom=Från -TransferTo=För att +TransferTo=Till TransferFromToDone=En överföring från %s till %s av %s %s har registrerats. CheckTransmitter=Avsändare -ValidateCheckReceipt=Bekräfta detta check-kvitto? +ValidateCheckReceipt=Bekräfta detta checkkvitto? ConfirmValidateCheckReceipt=Är du säker på att du vill skicka det här kvittot för validering? Inga ändringar är möjliga när de validerats. DeleteCheckReceipt=Ta bort detta kvitto? ConfirmDeleteCheckReceipt=Är du säker på att du vill radera detta kvitto? BankChecks=Bankcheckar -BankChecksToReceipt=Checkar väntar på insättning -BankChecksToReceiptShort=Kontroller som väntar på insättning -ShowCheckReceipt=Visar kontrollera insättning mottagande +BankChecksToReceipt=Checkar som inväntar insättning +BankChecksToReceiptShort=Kontroller som inväntar insättning +ShowCheckReceipt=Visa kvitto för checkinsättning NumberOfCheques=Antal checkar DeleteTransaction=Ta bort post ConfirmDeleteTransaction=Är du säker på att du vill radera den här posten? ThisWillAlsoDeleteBankRecord=Detta kommer även att ta bort genererad bankpost -BankMovements=Rörelser +BankMovements=Förflyttningar PlannedTransactions=Planerade poster -Graph=Grafer/historik +Graph=Grafer ExportDataset_banque_1=Bankposter och kontoutdrag ExportDataset_banque_2=Insättningsblankett TransactionOnTheOtherAccount=Transaktionen på det andra kontot -PaymentNumberUpdateSucceeded=Betalningsnummer uppdaterat framgångsrikt +PaymentNumberUpdateSucceeded=Betalningsnummer uppdaterat PaymentNumberUpdateFailed=Betalningsnummer kunde inte uppdateras -PaymentDateUpdateSucceeded=Betalningsdatum uppdateras framgångsrikt +PaymentDateUpdateSucceeded=Betalningsdatum uppdaterat PaymentDateUpdateFailed=Betalningsdagen kunde inte uppdateras Transactions=Transaktioner BankTransactionLine=Bankpost -AllAccounts=Alla bank- och kontonkonton +AllAccounts=Alla bank- och kontantkonton BackToAccount=Tillbaka till konto ShowAllAccounts=Visa för alla konton -FutureTransaction=Framtida transaktion. Det gick inte att förena. -SelectChequeTransactionAndGenerate=Välj / filtrera de checkar som ska ingå i kvittot på check. Klicka sedan på "Skapa". +FutureTransaction=Framtida transaktion. Det gick inte att stämma av. +SelectChequeTransactionAndGenerate=Välj/filtrera de checkar som ska ingå i kvittot på check. Klicka sedan på "Skapa". InputReceiptNumber=Välj kontoutdrag relaterat till förlikningen. Använd ett sorterbart numeriskt värde: YYYYMM or YYYYMMDD -EventualyAddCategory=Så småningom, ange en kategori då för att märka posterna +EventualyAddCategory=Ange en kategori för att dela upp posterna ToConciliate=Att avstämma? -ThenCheckLinesAndConciliate=Kontrollera sedan linjerna som finns i kontoutdraget och klicka +ThenCheckLinesAndConciliate=Kontrollera sedan raderna som finns i kontoutdraget och klicka DefaultRIB=Standard BAN AllRIB=Alla BAN LabelRIB=BAN etikett -NoBANRecord=Inget BAN rad +NoBANRecord=Ingen BAN rad DeleteARib=Radera BAN rad ConfirmDeleteRib=Är du säker på att du vill ta bort denna BAN-post? -RejectCheck=Kontrollera tillbaka -ConfirmRejectCheck=Är du säker på att du vill markera den här kontrollen som avvisad? -RejectCheckDate=Datumet kontrollen returnerades -CheckRejected=Kontrollera tillbaka -CheckRejectedAndInvoicesReopened=Kontrollera retur och fakturor öppnas igen +RejectCheck=Check returnerad +ConfirmRejectCheck=Är du säker på att du vill markera den här checken som avvisad? +RejectCheckDate=Datumet då checken returnerades +CheckRejected=Check returnerad +CheckRejectedAndInvoicesReopened=Check returnerad och faktura öppnas igen BankAccountModelModule=Dokumentmallar för bankkonton DocumentModelSepaMandate=Mall för SEPA-mandat. Användbar endast för europeiska länder i EEG. DocumentModelBan=Mall för att skriva ut en sida med BAN-information. -NewVariousPayment=Ny "övrig" betalning -VariousPayment=Övriga betalningar +NewVariousPayment=Ny övrig betalning +VariousPayment=Övrig betalning VariousPayments=Diverse betalningar ShowVariousPayment=Visa övriga betalningar AddVariousPayment=Lägg till övrig betalning @@ -172,16 +172,16 @@ SEPAMandate=SEPA-mandatet YourSEPAMandate=Ditt SEPA-mandat FindYourSEPAMandate=Detta är ditt SEPA-mandat för att bemyndiga vårt företag att göra direkt debitering till din bank. Returnera det undertecknat (skanna av det signerade dokumentet) eller skicka det via post till AutoReportLastAccountStatement=Fyll i fältet 'Antal kontoutdrag' automatiskt med det sista kontonummeret när avstämning görs -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) -BankColorizeMovement=Colorize rörelser -BankColorizeMovementDesc=Om den här funktionen är aktiverad kan du välja en specifik bakgrundsfärg för debiterings- eller kreditrörelser -BankColorizeMovementName1=Bakgrundsfärg för debiteringsrörelse -BankColorizeMovementName2=Bakgrundsfärg för kreditrörelse +CashControl=POS kontantkontroll +NewCashFence=Ny kontantkontroll (öppning eller stängning) +BankColorizeMovement=Färglägg förflyttningar +BankColorizeMovementDesc=Om den här funktionen är aktiverad kan du välja en specifik bakgrundsfärg för debit- eller kreditrörelser +BankColorizeMovementName1=Bakgrundsfärg för debitförflyttning +BankColorizeMovementName2=Bakgrundsfärg för kreditförflyttning IfYouDontReconcileDisableProperty=Om du inte gör någon bankavstämning på vissa bankkonton, inaktivera "%s" på dem för att ta bort denna varning NoBankAccountDefined=Inget bankkonto definerat NoRecordFoundIBankcAccount=Ingen post hittades på bankkontot. Vanligtvis inträffar detta när en post har raderats manuellt från transaktionslistan på bankkontot (till exempel under en avstämning av bankkontot). En annan anledning är att betalningen registrerades när modulen "%s" inaktiverades. -AlreadyOneBankAccount=Already one bank account defined -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. -ToCreateRelatedRecordIntoBank=To create missing related bank record +AlreadyOneBankAccount=Ett bankkonto har redan definierats +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA-överföring: 'Betalningstyp' på 'Credit Transfer'-nivå +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=När du genererar en SEPA XML-fil för kreditöverföringar kan avsnittet "PaymentTypeInformation" nu placeras i avsnittet "CreditTransferTransactionInformation" (istället för avsnittet "Payment"). Vi rekommenderar starkt att du inte markerar detta för att placera PaymentTypeInformation på betalningsnivå, eftersom alla banker inte nödvändigtvis accepterar det på CreditTransferTransactionInformation-nivå. Kontakta din bank innan du placerar PaymentTypeInformation på CreditTransferTransactionInformation-nivå. +ToCreateRelatedRecordIntoBank=För att skapa en relaterad bankpost som saknas diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 73f62304938..084acaadccd 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Kundfakturor statistik BillsStatisticsSuppliers=Leverantörer fakturor statistik DisabledBecauseDispatchedInBookkeeping=Inaktiverad eftersom fakturan skickades till bokföring DisabledBecauseNotLastInvoice=Inaktiverad eftersom fakturan inte kan raderas. Vissa fakturor registrerades efter den här och det kommer att skapa hål i räknaren. +DisabledBecauseNotLastSituationInvoice=Inaktiverad eftersom faktura inte går att radera. Denna faktura är inte den sista i situationens fakturacykel. DisabledBecauseNotErasable=Inaktiverad eftersom kan inte raderas InvoiceStandard=Standard faktura InvoiceStandardAsk=Standard faktura InvoiceStandardDesc=Denna typ av faktura är den gemensamma fakturan. +InvoiceStandardShort=Standard InvoiceDeposit=Nedbetalningsfaktura InvoiceDepositAsk=Nedbetalningsfaktura InvoiceDepositDesc=Denna typ av faktura görs när en förskottsbetalning har mottagits. @@ -24,6 +26,7 @@ InvoiceProForma=Proforma faktura InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma faktura är en bild av en sann faktura men har ingen bokföring värde. InvoiceReplacement=Ersättnings faktura +InvoiceReplacementShort=Ersättning InvoiceReplacementAsk=Ersättnings faktura för faktura InvoiceReplacementDesc= Ersättningsfaktura används för att helt ersätta en faktura utan redan mottagen betalning.

    Obs! Endast fakturor utan betalning kan ersättas. Om fakturan du byter ut ännu inte stängs stängs den automatiskt för 'övergiven'. InvoiceAvoir=Kreditnota @@ -81,14 +84,14 @@ PaymentsReports=Betalningar rapporter PaymentsAlreadyDone=Betalningar redan gjort PaymentsBackAlreadyDone=Återbetalningar redan gjorda PaymentRule=Betalningsregel -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Betalningsmetod +PaymentModes=Betalningsmetoder +DefaultPaymentMode=Standard betalningsmetod DefaultBankAccount=Standard bankkonto -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Betalningsmetod (id) +CodePaymentMode=Betalningsmetod (kod) +LabelPaymentMode=Betalningsmetod (namn) +PaymentModeShort=Betalningsmetod PaymentTerm=Betalningsvillkor PaymentConditions=Betalningsvillkor PaymentConditionsShort=Betalningsvillkor @@ -140,7 +143,7 @@ Refunded=återbetalas BillShortStatusConverted=Betald BillShortStatusCanceled=Övergiven BillShortStatusValidated=Bekräftat -BillShortStatusStarted=Började +BillShortStatusStarted=Påbörjad BillShortStatusNotPaid=Ej betald BillShortStatusNotRefunded=Icke återbetalad BillShortStatusClosedUnpaid=Stängt @@ -156,9 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=Fel, måste korrigera fakturan ett negativt belo ErrorInvoiceOfThisTypeMustBePositive=Fel, denna typ av faktura måste ha ett belopp exklusive skattepositivt (eller null) ErrorCantCancelIfReplacementInvoiceNotValidated=Fel, kan inte avbryta en faktura som har ersatts av en annan faktura som fortfarande i utkast status ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Den här delen eller en annan används redan så att rabattserier inte kan tas bort. -ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. +ErrorInvoiceIsNotLastOfSameType=Fel: Datumet för fakturan %s är %s. Det måste vara efter eller samma som sista datum för samma typ av fakturor (%s). Ändra fakturadatum. BillFrom=Från BillTo=Fakturamottagare +ShippingTo=Levereras til ActionsOnBill=Åtgärder mot faktura RecurringInvoiceTemplate=Mall / Återkommande faktura NoQualifiedRecurringInvoiceTemplateFound=Ingen återkommande mallfaktura kvalificerad för generation. @@ -192,7 +196,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=Återstående obetald (%s %s) (%s %s) är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag godkänner förlust av momsen på denna rabatt. ConfirmClassifyPaidPartiallyReasonDiscountVat=Återstående obetalt (%s %s) är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag återskapar momsen på denna rabatt med en kreditnota. ConfirmClassifyPaidPartiallyReasonBadCustomer=Dålig kund -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Avdrag för bank (förmedlande bankavgifter) ConfirmClassifyPaidPartiallyReasonProductReturned=Produkter som returneras delvis ConfirmClassifyPaidPartiallyReasonOther=Belopp övergivna av annan orsak ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Detta val är möjligt om din faktura har fått lämpliga kommentarer. (Exempel «Endast den skatt som motsvarar det pris som faktiskt betalats ger rätt till avdrag») @@ -200,7 +204,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=I vissa länder kan detta val ConfirmClassifyPaidPartiallyReasonAvoirDesc=Använd detta val om alla andra inte passar ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=En fel kund är en kund som vägrar att betala sin skuld. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Detta val används när betalningen är inte fullständig eftersom vissa av produkterna var tillbaka -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=Det obetalda beloppet är förmedlande bankavgifter , avdragna direkt från det korrekta beloppet som betalats av kunden. ConfirmClassifyPaidPartiallyReasonOtherDesc=Använd det här valet om alla andra inte är lämpliga, till exempel i följande situation:
    - Betalningen är inte slutförd eftersom vissa produkter skickades tillbaka
    - Beloppet hävdades för viktigt eftersom en rabatt glöts
    I alla fall måste det överklagade beloppet rättas i kontosystemet genom att skapa en kreditnot. ConfirmClassifyAbandonReasonOther=Andra ConfirmClassifyAbandonReasonOtherDesc=Detta val kommer att användas i alla andra fall. Till exempel därför att du planerar att skapa en ersättning faktura. @@ -236,24 +240,24 @@ AlreadyPaidBack=Redan återbetald AlreadyPaidNoCreditNotesNoDeposits=Redan betalat (utan kreditnoteringar och handpenning) Abandoned=Övergiven RemainderToPay=Återstående obetalt -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=Återstående obetald, originalvaluta RemainderToTake=Återstående belopp att ta -RemainderToTakeMulticurrency=Remaining amount to take, original currency +RemainderToTakeMulticurrency=Återstående belopp att ta, originalvaluta RemainderToPayBack=Återstående belopp för återbetalning -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency -NegativeIfExcessRefunded=negative if excess refunded +RemainderToPayBackMulticurrency=Återstående belopp att återbetala, originalvaluta +NegativeIfExcessRefunded=negativt om överskottet återbetalas Rest=Avvaktande AmountExpected=Yrkade beloppet ExcessReceived=Överskott fått -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received +ExcessReceivedMulticurrency=Mottaget överskott, ursprunglig valuta +NegativeIfExcessReceived=negativt om överskott mottaget ExcessPaid=För mycket betald -ExcessPaidMulticurrency=Excess paid, original currency +ExcessPaidMulticurrency=Överskjutande betald, ursprunglig valuta EscompteOffered=Rabatterna (betalning innan terminen) EscompteOfferedShort=Rabatt SendBillRef=Inlämning av faktura %s SendReminderBillRef=Inlämning av faktura %s (påminnelse) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Inlämning av betalningskvitto %s NoDraftBills=Inget förslag fakturor NoOtherDraftBills=Inga andra förslag fakturor NoDraftInvoices=Inget faktura-utkast @@ -270,7 +274,7 @@ DateInvoice=Fakturadatum DatePointOfTax=Skattpunkt NoInvoice=Ingen faktura NoOpenInvoice=Ingen obetald faktura -NbOfOpenInvoices=Number of open invoices +NbOfOpenInvoices=Antal öppna fakturor ClassifyBill=Märk faktura SupplierBillsToPay=Obetalda leverantörsfakturor CustomerBillsUnpaid=Obetalda kundfakturor @@ -280,11 +284,11 @@ SetMode=Ange betalningstyp SetRevenuStamp=Ställ in intäktsstämpel Billed=Fakturerade RecurringInvoices=Återkommande fakturor -RecurringInvoice=Recurring invoice +RecurringInvoice=Återkommande faktura RepeatableInvoice=Fakturamall RepeatableInvoices=Fakturamallar -RecurringInvoicesJob=Generation of recurring invoices (sales invoices) -RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +RecurringInvoicesJob=Generering av återkommande fakturor (försäljningsfakturor) +RecurringSupplierInvoicesJob=Generering av återkommande fakturor (inköpsfakturor) Repeatable=Mall Repeatables=Mallar ChangeIntoRepeatableInvoice=Konvertera till fakturamall @@ -296,14 +300,14 @@ ExportDataset_invoice_1=Kundfaktura och fakturadata ExportDataset_invoice_2=Kund fakturor och betalningar ProformaBill=Proforma faktura: Reduction=Rabatt -ReductionShort=Skiva. +ReductionShort=Rab. Reductions=Rabatter -ReductionsShort=Skiva. +ReductionsShort=Rab. Discounts=Rabatter -AddDiscount=Lägg rabatt +AddDiscount=Skapa rabatt AddRelativeDiscount=Skapa relativ rabatt EditRelativeDiscount=Redigera procentuell rabatt -AddGlobalDiscount=Lägg rabatt +AddGlobalDiscount=Skapa absolut rabatt EditGlobalDiscounts=Redigera absoluta rabatter AddCreditNote=Skapa kreditnota ShowDiscount=Visa rabatt @@ -322,8 +326,8 @@ DiscountFromExcessReceived=Betalningar som överstiger faktura %s DiscountFromExcessPaid=Betalningar som överstiger faktura %s AbsoluteDiscountUse=Denna typ av krediter kan användas på fakturan innan bekräftande CreditNoteDepositUse=Faktura måste bekräftas för att använda denna typ av krediter -NewGlobalDiscount=Ny fix rabatt -NewRelativeDiscount=Nya relativa rabatt +NewGlobalDiscount=Ny absolut rabatt +NewRelativeDiscount=Ny relativa rabatt DiscountType=Rabatttyp NoteReason=Not/orsak ReasonDiscount=Orsak @@ -357,7 +361,7 @@ ConfirmCloneInvoice=Är du säker på att du vill klona denna faktura %s %s
    %s i två mindre rabatter? TypeAmountOfEachNewDiscount=Inmatningsbelopp för var och en av två delar: TotalOfTwoDiscountMustEqualsOriginal=Summan av de två nya rabatterna måste vara lika med det ursprungliga rabattbeloppet. @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 dagar PaymentCondition14D=14 dagar PaymentConditionShort14DENDMONTH=14 dagar i månadsskiftet PaymentCondition14DENDMONTH=Inom 14 dagar efter slutet av månaden +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposition +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposition, resterande del vid leverans FixAmount=Fast belopp - 1 rad med etiketten '%s' VarAmount=Variabelt belopp (%% summa) VarAmountOneLine=Variabel mängd (%% tot.) - 1 rad med etikett '%s' VarAmountAllLines=Variabelt belopp (%% tot.) - alla rader från ursprung +DepositPercent=Deposition %% +DepositGenerationPermittedByThePaymentTermsSelected=Detta tillåts av de valda betalningsvillkoren +GenerateDeposit=Generera en %s%% depositionsfaktura +ValidateGeneratedDeposit=Godkänn den genererade insättningen +DepositGenerated=Deposition genererad +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Du kan endast automatiskt generera en deposition från ett förslag eller en beställning +ErrorPaymentConditionsNotEligibleToDepositCreation=De valda betalningsvillkoren är inte kvalificerade för automatisk depositionsgenerering # PaymentType PaymentTypeVIR=Banköverföring PaymentTypeShortVIR=Banköverföring PaymentTypePRE=Direktbetalningsorder +PaymentTypePREdetails=(på konto *-%s) PaymentTypeShortPRE=Betalningsorder PaymentTypeLIQ=Kontanter PaymentTypeShortLIQ=Kontanter @@ -480,12 +494,12 @@ FullPhoneNumber=Telefon TeleFax=Fax PrettyLittleSentence=Acceptera mängden betalningar med check som utfärdats i mitt namn som ledamot i en redovisning förening godkänd av skattemyndigheten. IntracommunityVATNumber=Inom gemenskaps moms-ID -PaymentByChequeOrderedTo=Check betalningar (inklusive skatt) betalas till %s, skickas till -PaymentByChequeOrderedToShort=Check betalningar (inkl. Skatt) betalas till +PaymentByChequeOrderedTo=Check betalningar (inkl. moms) betalas till %s, skickas till +PaymentByChequeOrderedToShort=Check betalningar (inkl. moms) betalas till SendTo=skickas till PaymentByTransferOnThisBankAccount=Betalning genom överföring till följande bankkonto VATIsNotUsedForInvoice=* Ej tillämpligt moms konst-293B av CGI -VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI +VATIsNotUsedForInvoiceAsso=* Ej tillämplig moms art-261-7 i CGI LawApplicationPart1=Genom tillämpning av lagen 80,335 av 12/05/80 LawApplicationPart2=Varan förblir egendom LawApplicationPart3=säljaren till full betalning av @@ -508,7 +522,7 @@ NbCheque=Antal kontroller CreditNoteConvertedIntoDiscount=Denna %s har konverterats till %s UsBillingContactAsIncoiveRecipientIfExist=Använd kontakt / adress med typ "faktureringskontakt" istället för adress från tredje part som mottagare av fakturor ShowUnpaidAll=Visa alla obetalda fakturor -ShowUnpaidLateOnly=Visa sent obetald faktura endast +ShowUnpaidLateOnly=Visa försent obetald faktura endast PaymentInvoiceRef=Betalning faktura %s ValidateInvoice=Bekräfta faktura ValidateInvoices=Bekräfta fakturor @@ -607,8 +621,13 @@ SituationTotalRayToRest=Resten att betala utan skatt PDFSituationTitle=Läge nr %d SituationTotalProgress=Total framsteg %d %% SearchUnpaidInvoicesWithDueDate=Sök efter obetalda fakturor med förfallodatum = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices -MakePaymentAndClassifyPayed=Record payment -BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +NoPaymentAvailable=Ingen betalning tillgänglig för %s +PaymentRegisteredAndInvoiceSetToPaid=Betalning registrerad och faktura %s inställd till betald +SendEmailsRemindersOnInvoiceDueDate=Skicka påminnelse via e-post för obetalda fakturor +MakePaymentAndClassifyPayed=Lägg in betalning +BulkPaymentNotPossibleForInvoice=Massbetalning är inte möjlig för faktura %s (dålig typ eller status) +MentionVATDebitOptionIsOn=Möjlighet att betala skatt baserat på debiteringar +MentionCategoryOfOperations=Kategori av verksamhet +MentionCategoryOfOperations0=Leverans av varor +MentionCategoryOfOperations1=Tillhandahållande av tjänster +MentionCategoryOfOperations2=Blandat - Leverans av varor & tillhandahållande av tjänster diff --git a/htdocs/langs/sv_SE/blockedlog.lang b/htdocs/langs/sv_SE/blockedlog.lang index 3dfa8134d68..ea652706440 100644 --- a/htdocs/langs/sv_SE/blockedlog.lang +++ b/htdocs/langs/sv_SE/blockedlog.lang @@ -14,30 +14,8 @@ OkCheckFingerprintValidityButChainIsKo=Arkiverad logg verkar giltig jämfört me AddedByAuthority=Lagras i fjärrmyndighet NotAddedByAuthorityYet=Ännu inte lagrad i fjärrmyndighet ShowDetails=Visa sparade detaljer -logPAYMENT_VARIOUS_CREATE=Betalning (ej tilldelad faktura) skapad -logPAYMENT_VARIOUS_MODIFY=Betalning (ej tilldelad faktura) modifierad -logPAYMENT_VARIOUS_DELETE=Betalning (ej tilldelad faktura) logisk borttagning -logPAYMENT_ADD_TO_BANK=Betalning läggs till bank -logPAYMENT_CUSTOMER_CREATE=Kundbetalning skapad -logPAYMENT_CUSTOMER_DELETE=Kundbetalning logisk borttagning -logDONATION_PAYMENT_CREATE=Donationsbetalning skapad -logDONATION_PAYMENT_DELETE=Donationsbetalning logisk borttagning -logBILL_PAYED=Kundfaktura betalad -logBILL_UNPAYED=Kundfaktura inställd obetald -logBILL_VALIDATE=Kundfaktura bekräftades -logBILL_SENTBYMAIL=Kundfaktura skickas per post -logBILL_DELETE=Kundfaktura raderas logiskt -logMODULE_RESET=Modul BlockedLog inaktiverades -logMODULE_SET=Modul BlockedLog aktiverades -logDON_VALIDATE=Donation bekräftat -logDON_MODIFY=Donation modifierad -logDON_DELETE=Donation logisk borttagning -logMEMBER_SUBSCRIPTION_CREATE=Medlemskapsabonnemang skapad -logMEMBER_SUBSCRIPTION_MODIFY=Medlemsabonnemang modifierad -logMEMBER_SUBSCRIPTION_DELETE=Medlems abonnemangs logisk borttagning -logCASHCONTROL_VALIDATE=Registrering av stängning av kassaskåpets behållning -BlockedLogBillDownload=Kundfaktura nedladdning -BlockedLogBillPreview=Kundfaktura förhandsvisning +BlockedLogBillDownload=Ladda ner faktura +BlockedLogBillPreview=Förhandsgranska faktura BlockedlogInfoDialog=Logguppgifter ListOfTrackedEvents=Lista över spårade händelser Fingerprint=Fingeravtryck @@ -49,9 +27,35 @@ ImpossibleToReloadObject=Originalobjekt (typ %s, id %s) inte länkat (se kolumne BlockedLogAreRequiredByYourCountryLegislation=Modifierad loggmodul kan krävas enligt ditt lands lagstiftning. Inaktivera den här modulen kan göra eventuella framtida transaktioner ogiltiga med avseende på lagen och användningen av laglig programvara eftersom de inte kan bekräftas av en skatterevision. BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Modifierad loggmodul aktiverades på grund av lagstiftningen i ditt land. Inaktivera den här modulen kan göra eventuella framtida transaktioner ogiltiga med avseende på lagen och användningen av laglig programvara eftersom de inte kan bekräftas av en skatterevision. BlockedLogDisableNotAllowedForCountry=Lista över länder där användningen av den här modulen är obligatorisk (bara för att förhindra att modulen stängs av med fel, om ditt land är i listan, är det inte möjligt att inaktivera modulen utan att redigera den här listan först. Observera också att aktivering / inaktivering av denna modul kommer att håll ett spår i den oföränderliga loggen). -OnlyNonValid=Icke giltigt -TooManyRecordToScanRestrictFilters=För många poster att skanna / analysera. Begränsa listan med mer restriktiva filter. -RestrictYearToExport=Begränsa månad / år att exportera -BlockedLogEnabled=System to track events into unalterable logs has been enabled -BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken -BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. +OnlyNonValid=Ogiltigt +TooManyRecordToScanRestrictFilters=För många poster att skanna/analysera. Begränsa listan med mer restriktiva filter. +RestrictYearToExport=Begränsa månad/år att exportera +BlockedLogEnabled=System för att spåra händelser i oföränderliga loggar har aktiverats +BlockedLogDisabled=Systemet för att spåra händelser i oföränderliga loggar har inaktiverats efter att vissa kontroller gjorts. Vi sparade ett speciellt fingeravtryck för att spåra kedjan som trasig +BlockedLogDisabledBis=Systemet för att spåra händelser i oföränderliga loggar har inaktiverats. Detta är möjligt eftersom ingen registrering har gjorts ännu. + +## logTypes +logBILL_DELETE=Faltira raderas logiskt +logBILL_PAYED=Faktura betald +logBILL_SENTBYMAIL=Faktura skickas per post +logBILL_UNPAYED=Faktura angiven som obetald +logBILL_VALIDATE=Faktura bekräftades +logCASHCONTROL_VALIDATE=Registrering av kassabehållning vid stängning +logDOC_DOWNLOAD=Nedladdning av ett bekräftat dokument för att skriva ut eller skicka +logDOC_PREVIEW=Förhandsgranskning av ett bekräftat dokument för att kunna skriva ut eller hämta +logDONATION_PAYMENT_CREATE=Donation skapad +logDONATION_PAYMENT_DELETE=Donation logisk borttagning +logDON_DELETE=Donation logisk borttagning +logDON_MODIFY=Donation ändrad +logDON_VALIDATE=Donation bekräftat +logMEMBER_SUBSCRIPTION_CREATE=Prenumeration skapad +logMEMBER_SUBSCRIPTION_DELETE=Prenumeration logisk borttagning +logMEMBER_SUBSCRIPTION_MODIFY=Prenumeration ändrad +logMODULE_RESET=Modul BlockedLog inaktiverades +logMODULE_SET=Modul BlockedLog aktiverades +logPAYMENT_ADD_TO_BANK=Betalning tillagd i bank +logPAYMENT_CUSTOMER_CREATE=Kundbetalning skapad +logPAYMENT_CUSTOMER_DELETE=Kundbetalning logisk borttagning +logPAYMENT_VARIOUS_CREATE=Betalning (ej tilldelad till faktura) skapad +logPAYMENT_VARIOUS_DELETE=Betalning (ej tilldelad till faktura) logisk borttagning +logPAYMENT_VARIOUS_MODIFY=Betalning (ej tilldelad till faktura) modifierad diff --git a/htdocs/langs/sv_SE/bookmarks.lang b/htdocs/langs/sv_SE/bookmarks.lang index a2d9ee52ab8..8b90a61fe4f 100644 --- a/htdocs/langs/sv_SE/bookmarks.lang +++ b/htdocs/langs/sv_SE/bookmarks.lang @@ -2,12 +2,12 @@ AddThisPageToBookmarks=Lägg till aktuell sida till bokmärken Bookmark=Bokmärke Bookmarks=Bokmärken -ListOfBookmarks=Listan över bokmärken -EditBookmarks=Lista/Ändra bokmärken +ListOfBookmarks=Lista bokmärken +EditBookmarks=Lista/ändra bokmärken NewBookmark=Nytt bokmärke ShowBookmark=Visa bokmärke OpenANewWindow=Öppna en ny flik -ReplaceWindow=Byt aktuell flik +ReplaceWindow=Ersätt aktuell flik BookmarkTargetNewWindowShort=Ny flik BookmarkTargetReplaceWindowShort=Aktuell flik BookmarkTitle=Bokmärkesnamn @@ -15,8 +15,9 @@ UrlOrLink=URL BehaviourOnClick=Beteende när en bokmärkes-URL är vald CreateBookmark=Skapa bokmärke SetHereATitleForLink=Ange ett namn för bokmärket -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. +UseAnExternalHttpLinkOrRelativeDolibarrLink=Använd en extern/absolut länk (https://externalurl.com) eller en intern/relativ länk (/mypage.php). Du kan också använda telefon som tel:0123456. ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Välj om den länkade sidan ska öppnas i den aktuella fliken eller en ny flik -BookmarksManagement=Förvaltning av bokmärken förvaltning +BookmarksManagement=Hantera bokmärken BookmarksMenuShortCut=Ctrl + Skift + m -NoBookmarks=No bookmarks defined +NoBookmarks=Inga bokmärken har definierats +NoBookmarkFound=Inget bokmärke hittades diff --git a/htdocs/langs/sv_SE/boxes.lang b/htdocs/langs/sv_SE/boxes.lang index c81b3b6dffe..3a114393c78 100644 --- a/htdocs/langs/sv_SE/boxes.lang +++ b/htdocs/langs/sv_SE/boxes.lang @@ -2,119 +2,121 @@ BoxDolibarrStateBoard=Statistik över huvudsakliga affärsobjekt i databasen BoxLoginInformation=inloggningsinformation BoxLastRssInfos=RSS Information -BoxLastProducts=Senaste %s Produkter / tjänster -BoxProductsAlertStock=Varning lagervaror -BoxLastProductsInContract=Senaste %s avtalade produkter / tjänster +BoxLastProducts=Senaste %s produkter/tjänster +BoxProductsAlertStock=Lagervarning för produkter +BoxLastProductsInContract=Senaste %s avtalade produkter/tjänster BoxLastSupplierBills=Senaste leverantörsfakturor BoxLastCustomerBills=Senaste kundfakturor BoxOldestUnpaidCustomerBills=Äldsta obetalda kundfakturor BoxOldestUnpaidSupplierBills=Äldsta obetalda leverantörsfakturor -BoxLastProposals=Senaste kommersiella förslag -BoxLastProspects=Senast ändrade utsikter +BoxLastProposals=Senaste offerter +BoxLastProspects=Senast ändrade prospekt BoxLastCustomers=Senast ändrade kunder -BoxLastSuppliers=Senast uppdaterade leverantörer -BoxLastCustomerOrders=Senaste försäljningsorder +BoxLastSuppliers=Senast ändrade leverantörer +BoxLastCustomerOrders=Senaste order BoxLastActions=Senaste åtgärderna BoxLastContracts=Senaste kontrakt -BoxLastContacts=Senaste kontakter / adresser -BoxLastMembers=Senaste medlemmarna -BoxLastModifiedMembers=Senast modifierade medlemmar -BoxLastMembersSubscriptions=Senaste medlemsabonnemang +BoxLastContacts=Senaste kontakter/adresser +BoxLastMembers=Senaste medlemmar +BoxLastModifiedMembers=Senast ändrade medlemmar +BoxLastMembersSubscriptions=Senaste prenmerationer BoxFicheInter=Senaste interventioner -BoxCurrentAccounts=Öppna konton balans +BoxCurrentAccounts=Öppna kontobalanser BoxTitleMemberNextBirthdays=Födelsedagar denna månad (medlemmar) -BoxTitleMembersByType=Medlemmar efter typ -BoxTitleMembersSubscriptionsByYear=Medlemmar Prenumerationer per år +BoxTitleMembersByType=Medlemmar efter typ och status +BoxTitleMembersSubscriptionsByYear=Prenumerationer per år BoxTitleLastRssInfos=Senaste %s nyheter från %s -BoxTitleLastProducts=Produkter / tjänster: senaste %s modifierad +BoxTitleLastProducts=Produkter/tjänster: senaste %s ändrade BoxTitleProductsAlertStock=Produkter: lagervarning -BoxTitleLastSuppliers=Senaste %s inspelade leverantörerna -BoxTitleLastModifiedSuppliers=Leverantörer: senaste %s modifierad -BoxTitleLastModifiedCustomers=Kunder: senaste %s modifierad -BoxTitleLastCustomersOrProspects=Senaste %s kunder eller framtidsutsikter -BoxTitleLastCustomerBills=Senaste %s ändrade kundfakturor +BoxTitleLastSuppliers=Senaste %s registrerade leverantörerna +BoxTitleLastModifiedSuppliers=Leverantörer: senaste %s ändrade +BoxTitleLastModifiedCustomers=Kunder: senaste %s ändrade +BoxTitleLastCustomersOrProspects=Senaste %s kunder eller prospekt +BoxTitleLastCustomerBills=Senaste %s ändrade fakturorna BoxTitleLastSupplierBills=Senaste %s ändrade leverantörsfakturor -BoxTitleLastModifiedProspects=Utsikter: senaste %s modifierad +BoxTitleLastModifiedProspects=Prospekt: senaste %s ändrade BoxTitleLastModifiedMembers=Senaste %s medlemmarna -BoxTitleLastFicheInter=Senaste %s modifierade interventioner -BoxTitleOldestUnpaidCustomerBills=Kundfaktura: äldsta %s obetald -BoxTitleOldestUnpaidSupplierBills=Leverantörsfakturor: äldsta %s obetald +BoxTitleLastFicheInter=Senaste %s ändrade interventionerna +BoxTitleOldestUnpaidCustomerBills=Fakturor: äldsta %s obetalda +BoxTitleOldestUnpaidSupplierBills=Leverantörsfakturor: äldsta %s obetalda BoxTitleCurrentAccounts=Öppna konton: saldon BoxTitleSupplierOrdersAwaitingReception=Ej mottagna leverantörsordrar -BoxTitleLastModifiedContacts=Kontakter / Adresser: senaste %s modifierad +BoxTitleLastModifiedContacts=Kontakter/adresser: senaste %s ändrade BoxMyLastBookmarks=Bokmärken: senaste %s -BoxOldestExpiredServices=Äldsta aktiva passerat tjänster -BoxLastExpiredServices=Senaste %s äldsta kontakterna med aktiva utgåttjänster +BoxOldestExpiredServices=Äldsta aktiva utgångna tjänsterna +BoxOldestActions=Äldsta uppgifter att göra +BoxLastExpiredServices=Senaste %s äldsta kontakterna med aktiva utgångna tjänster BoxTitleLastActionsToDo=Senaste %s åtgärderna att göra -BoxTitleLastContracts=Senaste %s avtal som blivit ändrade +BoxTitleOldestActionsToDo=Äldsta %s uppgifterna att göra, ej slutförda +BoxTitleLastContracts=Senaste %s kontrakt som blivit ändrade BoxTitleLastModifiedDonations=Senaste %s donationer som har blivit ändrade -BoxTitleLastModifiedExpenses=Senaste %s utläggsrapporter som blivit modifierade -BoxTitleLatestModifiedBoms=Senaste %s BOM som blivit modifierade -BoxTitleLatestModifiedMos=Senaste %s tillverkningsbeställningar som blivit modifierade -BoxTitleLastOutstandingBillReached=Kunder med högst skuld +BoxTitleLastModifiedExpenses=Senaste %s utläggsrapporter som blivit ändrade +BoxTitleLatestModifiedBoms=Senaste %s BOM som blivit ändrade +BoxTitleLatestModifiedMos=Senaste %s tillverkningsorder som blivit ändrade +BoxTitleLastOutstandingBillReached=Kunder med högst obetald skuld BoxGlobalActivity=Global aktivitet (fakturor, förslag, order) BoxGoodCustomers=Bra kunder -BoxTitleGoodCustomers=%s Bra kunder +BoxTitleGoodCustomers=%s bra kunder BoxScheduledJobs=Schemalagda jobb -BoxTitleFunnelOfProspection=Lead tratt -FailedToRefreshDataInfoNotUpToDate=Misslyckades med att uppdatera RSS-flöde. Senaste framgångsrika uppdateringsdatum: %s +BoxTitleFunnelOfProspection=Lead funnel +FailedToRefreshDataInfoNotUpToDate=Misslyckades med att uppdatera RSS-flöde. Senaste uppdateringsdatum: %s LastRefreshDate=Senaste uppdateringsdatum -NoRecordedBookmarks=Inga bokmärken definieras. Klicka här för att lägga till bokmärken. +NoRecordedBookmarks=Inga bokmärken angivna. ClickToAdd=Klicka här för att lägga till. NoRecordedCustomers=Inga registrerade kunder -NoRecordedContacts=Inga noterade kontakter +NoRecordedContacts=Inga sparade kontakter NoActionsToDo=Inga åtgärder för att göra -NoRecordedOrders=Inga registrerade försäljningsorder -NoRecordedProposals=Inga registrerade förslag -NoRecordedInvoices=Inga registrerade kundfakturor +NoRecordedOrders=Ingen order har skapats ännu +NoRecordedProposals=Inga offerter har skapats ännu +NoRecordedInvoices=Inga fakturor skapade ännu NoUnpaidCustomerBills=Inga obetalda kundfakturor NoUnpaidSupplierBills=Inga obetalda leverantörsfakturor NoModifiedSupplierBills=Inga registrerade leverantörsfakturor -NoRecordedProducts=Inga registrerade produkter / tjänster -NoRecordedProspects=Inga registrerade framtidsutsikter -NoContractedProducts=Inga produkter / tjänster avtalade -NoRecordedContracts=Inga registrerade kontrakt -NoRecordedInterventions=Inga inspelade interventioner +NoRecordedProducts=Inga registrerade produkter/tjänster +NoRecordedProspects=Inga prospekt skapade ännu +NoContractedProducts=Inga avtalade produkter/tjänster +NoRecordedContracts=Inga kontrakt skapade ännu +NoRecordedInterventions=Inga interventioner skapade ännu BoxLatestSupplierOrders=Senaste inköpsorder -BoxLatestSupplierOrdersAwaitingReception=Senaste inköpsordrar (som ej anlänt) -NoSupplierOrder=Ingen registrerad köporder -BoxCustomersInvoicesPerMonth=Kundfakturor per månad +BoxLatestSupplierOrdersAwaitingReception=Senaste inköpsordrar (som inte anlänt) +NoSupplierOrder=Ingen skapade inköpsorder +BoxCustomersInvoicesPerMonth=Fakturor per månad BoxSuppliersInvoicesPerMonth=Leverantörsfakturor per månad -BoxCustomersOrdersPerMonth=Försäljningsorder per månad -BoxSuppliersOrdersPerMonth=Leverantörsorder per månad -BoxProposalsPerMonth=Förslag per månad -NoTooLowStockProducts=Inga produkter ligger under den låga lagergränsen -BoxProductDistribution=Produkter / Tjänster Distribution +BoxCustomersOrdersPerMonth=Order per månad +BoxSuppliersOrdersPerMonth=Inköpsorder per månad +BoxProposalsPerMonth=Offerter per månad +NoTooLowStockProducts=Inga produkter ligger under beställningsnivån +BoxProductDistribution=Distribution av produkt/tjänster ForObject=På %s -BoxTitleLastModifiedSupplierBills=Leverantörsfakturor: senaste %s modifierad -BoxTitleLatestModifiedSupplierOrders=Leverantörsorder: senaste %s modifierad -BoxTitleLastModifiedCustomerBills=Kundfaktura: senaste %s modifierad -BoxTitleLastModifiedCustomerOrders=Försäljningsorder: senaste %s modifierad -BoxTitleLastModifiedPropals=Senaste %s ändrade förslag -BoxTitleLatestModifiedJobPositions=Senaste %s modifierade jobbpositioner -BoxTitleLatestModifiedCandidatures=Senaste %s modifierade jobbansökningar -ForCustomersInvoices=Kundens fakturor -ForCustomersOrders=Kund beställningar -ForProposals=Förslag +BoxTitleLastModifiedSupplierBills=Leverantörsfakturor: senaste %s ändrade +BoxTitleLatestModifiedSupplierOrders=Inköpsorder: senaste %s ändrade +BoxTitleLastModifiedCustomerBills=Fakturor: senaste %s ändrade +BoxTitleLastModifiedCustomerOrders=Ordererkännande: senaste %s modifierad +BoxTitleLastModifiedPropals=Senaste %s ändrade offerter +BoxTitleLatestModifiedJobPositions=Senaste %s ändrade platsannonserna +BoxTitleLatestModifiedCandidatures=Senaste %s ändrade platsannonserna +ForCustomersInvoices=Kundfakturor +ForCustomersOrders=Order +ForProposals=Offerter LastXMonthRolling=Den senaste %s månaden rullande -ChooseBoxToAdd=Lägg till widget i din instrumentpanel -BoxAdded=Widget har lagts till i din instrumentpanel +ChooseBoxToAdd=Lägg till widget i din kontrollpanel +BoxAdded=Widget har lagts till i din kontrollpanel BoxTitleUserBirthdaysOfMonth=Födelsedagar denna månad (användare) BoxLastManualEntries=Senaste posten i bokföring som har angetts manuellt eller utan källdokument -BoxTitleLastManualEntries=%s senaste posten manuellt eller utan källdokument -NoRecordedManualEntries=Inga manuella poster registreras i bokföring -BoxSuspenseAccount=Räkna bokföring med diversekonto (en. suspense account, se https://en.wikipedia.org/wiki/Suspense_account) +BoxTitleLastManualEntries=%s senaste posten manuellt angiven eller utan källdokument +NoRecordedManualEntries=Inga manuella poster registrerade i bokföring +BoxSuspenseAccount=Räkna bokföring med diversekonto BoxTitleSuspenseAccount=Antal oallokerade rader NumberOfLinesInSuspenseAccount=Antal rader i diversekonto -SuspenseAccountNotDefined=Diversekonto är inte definierat +SuspenseAccountNotDefined=Diversekonto är inte angivet BoxLastCustomerShipments=Senaste kundleveranser BoxTitleLastCustomerShipments=Senaste %s kundleveranser -NoRecordedShipments=Inga registrerade kundleveranser +NoRecordedShipments=Inga leveranser har skapats BoxCustomersOutstandingBillReached=Kunds kreditgräns uppnådd # Pages -UsersHome=Hemanvändare och grupper -MembersHome=Hemmedlemskap -ThirdpartiesHome=Hemma tredje parter -TicketsHome=Hembiljetter -AccountancyHome=Hembokföring -ValidatedProjects=Validerade projekt +UsersHome=Användare och grupper +MembersHome=Medlemskap +ThirdpartiesHome=Tredjepart +TicketsHome=Ärenden +AccountancyHome=Bokföring +ValidatedProjects=Bekräftade projekt diff --git a/htdocs/langs/sv_SE/cashdesk.lang b/htdocs/langs/sv_SE/cashdesk.lang index 93abdeef9bb..2ec217a852e 100644 --- a/htdocs/langs/sv_SE/cashdesk.lang +++ b/htdocs/langs/sv_SE/cashdesk.lang @@ -3,114 +3,114 @@ CashDeskMenu=Kassa CashDesk=Kassa CashDeskBankCash=Bankkonto (kontanter) CashDeskBankCB=Bankkonto (kort) -CashDeskBankCheque=Bankkonto (kontroll) +CashDeskBankCheque=Bankkonto (check) CashDeskWarehouse=Lager -CashdeskShowServices=Sälja tjänster +CashdeskShowServices=Sälj tjänster CashDeskProducts=Produkter CashDeskStock=Lager CashDeskOn=på -CashDeskThirdParty=Tredje part +CashDeskThirdParty=Tredjepart ShoppingCart=Kundvagn -NewSell=Nyförsäljning -AddThisArticle=Lägg till den här artikeln -RestartSelling=Gå tillbaka på sälj +NewSell=Ny försäljning +AddThisArticle=Lägg till artikel +RestartSelling=Gå tillbaka till försäljning SellFinished=Försäljning avslutad -PrintTicket=Skriv ut biljetten +PrintTicket=Skriv ut kvitto SendTicket=Skicka biljett NoProductFound=Ingen artikel hittades -ProductFound=Produkt hittad +ProductFound=produkt hittad NoArticle=Ingen artikel Identification=Identifiering Article=Artikel Difference=Skillnad -TotalTicket=Totalt biljett +TotalTicket=Totalt biljetter NoVAT=Momsfri försäljning Change=Växel mottagen BankToPay=Betalningskonto ShowCompany=Visa företag ShowStock=Visa lager DeleteArticle=Klicka här för att ta bort den här artikeln -FilterRefOrLabelOrBC=Sök (Ref / etikett) -UserNeedPermissionToEditStockToUsePos=Du ber om att sänka lagret vid fakturaföretag, så användare som använder POS behöver ha tillstånd att redigera lager. -DolibarrReceiptPrinter=Dolibarr Kvittoskrivare -PointOfSale=Försäljningsstället -PointOfSaleShort=POS -CloseBill=Stäng bill -Floors=golv +FilterRefOrLabelOrBC=Sök (ref/etikett) +UserNeedPermissionToEditStockToUsePos=Du ber om att minska lagret vid fakturering, så användare som använder kassan behöver ha tillstånd att redigera lager. +DolibarrReceiptPrinter=Dolibarr kvittoskrivare +PointOfSale=Kassa +PointOfSaleShort=Kassa +CloseBill=Stäng nota +Floors=Golv Floor=Golv -AddTable=Lägg till tabell +AddTable=Lägg till bord Place=Plats TakeposConnectorNecesary='TakePOS Connector' krävs OrderPrinters=Lägg till en knapp för att skicka beställningen till vissa skrivare utan betalning (till exempel för att skicka en beställning till ett kök) -NotAvailableWithBrowserPrinter=Not available when printer for receipt is set to browser +NotAvailableWithBrowserPrinter=Inte tillgängligt när skrivare för kvitto är inställd på webbläsare SearchProduct=Sök produkt Receipt=Kvitto Header=Rubrik -Footer=sidfot +Footer=Sidfot AmountAtEndOfPeriod=Belopp vid periodens utgång (dag, månad eller år) TheoricalAmount=Teoretisk mängd RealAmount=Verklig mängd -CashFence=Cash box closing -CashFenceDone=Cash box closing done for the period -NbOfInvoices=Antal av fakturor +CashFence=Kassa stängs +CashFenceDone=Kassastängning gjord för perioden +NbOfInvoices=Antal fakturor Paymentnumpad=Typ av kudde för att komma in i betalningen -Numberspad=Numbers Pad -BillsCoinsPad=Mynt och sedlar Pad -DolistorePosCategory=TakePOS-moduler och andra POS-lösningar för Dolibarr +Numberspad=Sifferblock +BillsCoinsPad=Mynt och sedelblock +DolistorePosCategory=TakePOS-moduler och andra kassalösningar för Dolibarr TakeposNeedsCategories=TakePOS behöver minst en produktkategori för att fungera -TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS behöver minst 1 produktkategori under kategorin %s för att arbeta -OrderNotes=Kan lägga till några anteckningar till varje beställd artikel +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS behöver minst 1 produktkategori under kategorin %s för att fungera +OrderNotes=Kan lägga till anteckningar till varje beställd artikel CashDeskBankAccountFor=Standardkonto som ska användas för betalningar i -NoPaimementModesDefined=Inget paimentläge definierat i TakePOS-konfiguration -TicketVatGrouped=Gruppmoms efter skattesats i biljetter | kvitton -AutoPrintTickets=Skriv automatiskt ut biljetter | kvitton -PrintCustomerOnReceipts=Skriv ut kund på biljetter | kvitton +NoPaimementModesDefined=Inget paimentläge angivet i TakePOS-konfiguration +TicketVatGrouped=Gruppera moms efter momssats i biljettkvitton +AutoPrintTickets=Skriv automatiskt ut biljett|kvitton +PrintCustomerOnReceipts=Skriv ut kundinfo på biljetter/kvitton EnableBarOrRestaurantFeatures=Aktivera funktioner för bar eller restaurang -ConfirmDeletionOfThisPOSSale=Bekräftar du att du har raderat den aktuella försäljningen? -ConfirmDiscardOfThisPOSSale=Vill du kasta den här aktuella försäljningen? -History=Historia -ValidateAndClose=Validera och stäng +ConfirmDeletionOfThisPOSSale=Bekräftar du vill radera den aktuella försäljningen? +ConfirmDiscardOfThisPOSSale=Vill du radera den aktuella försäljningen? +History=Historik +ValidateAndClose=Bekräfta och stäng Terminal=Terminal NumberOfTerminals=Antal terminaler TerminalSelect=Välj terminal du vill använda: -POSTicket=POS-biljett -POSTerminal=POS-terminal +POSTicket=Kassa biljetter +POSTerminal=Kassaterminal POSModule=POS-modul BasicPhoneLayout=Använd grundläggande layout för telefoner -SetupOfTerminalNotComplete=Installationen av terminal %s är inte klar +SetupOfTerminalNotComplete=Inställning för terminal %s är inte klar DirectPayment=Direktbetalning -DirectPaymentButton=Lägg till knappen "Direkt kontant betalning" -InvoiceIsAlreadyValidated=Fakturan är redan validerad +DirectPaymentButton=Lägg till knappen "Direkt betalning" +InvoiceIsAlreadyValidated=Fakturan är redan bekräftad NoLinesToBill=Inga rader att fakturera CustomReceipt=Anpassat kvitto -ReceiptName=Kvittans namn -ProductSupplements=Hantera kosttillskott av produkter -SupplementCategory=Tilläggskategori +ReceiptName=Kvittonamn +ProductSupplements=Hantera tillägg till produkter +SupplementCategory=Kategori för tillägg ColorTheme=Färgtema Colorful=Färgrik -HeadBar=Head Bar +HeadBar=Sidhuvudsfält SortProductField=Fält för sortering av produkter Browser=Webbläsare -BrowserMethodDescription=Enkel och enkel kvittoutskrift. Bara några få parametrar för att konfigurera kvittot. Skriv ut via webbläsaren. +BrowserMethodDescription=Enkel och lätt kvittoutskrift. Bara några få parametrar för att konfigurera kvittot. Skriv ut via webbläsaren. TakeposConnectorMethodDescription=Extern modul med extra funktioner. Möjlighet att skriva ut från molnet. PrintMethod=Utskriftsmetod ReceiptPrinterMethodDescription=Kraftfull metod med många parametrar. Fullt anpassningsbara med mallar. Servern som är värd för applikationen kan inte finnas i molnet (måste kunna nå skrivarna i ditt nätverk). ByTerminal=Med terminal TakeposNumpadUsePaymentIcon=Använd ikonen istället för text på betalningsknapparna på numpad -CashDeskRefNumberingModules=Numreringsmodul för POS-försäljning -CashDeskGenericMaskCodes6 =
    {TN} -tagg används för att lägga till terminalnumret -TakeposGroupSameProduct=Gruppera samma produktlinjer +CashDeskRefNumberingModules=Numreringsmodul för kassaförsäljning +CashDeskGenericMaskCodes6 =
    {TN}-tagg används för att lägga till terminalnumret +TakeposGroupSameProduct=Gruppera lika produktrader StartAParallelSale=Starta en ny parallellförsäljning -SaleStartedAt=Försäljningen startade på %s -ControlCashOpening=Open the "Control cash box" popup when opening the POS -CloseCashFence=Close cash box control +SaleStartedAt=Försäljningen startade %s +ControlCashOpening=Öppna popupen "Kontrollera kassa" när du öppnar kassan +CloseCashFence=Stäng kassakontroll CashReport=Kassarapport MainPrinterToUse=Huvudskrivare att använda -OrderPrinterToUse=Beställ skrivaren att använda -MainTemplateToUse=Huvudmallen som ska användas -OrderTemplateToUse=Beställ mall som ska användas -BarRestaurant=Barrestaurang -AutoOrder=Beställ av kunden själv +OrderPrinterToUse=Orderskrivare att använda +MainTemplateToUse=Huvudmall som ska användas +OrderTemplateToUse=Ordermall som ska användas +BarRestaurant=Bar/restaurang +AutoOrder=Beställning från kunden själv RestaurantMenu=Meny CustomerMenu=Kundmeny ScanToMenu=Skanna QR-kod för att se menyn @@ -119,20 +119,29 @@ Appearance=Utseende HideCategoryImages=Dölj kategoribilder HideProductImages=Dölj produktbilder NumberOfLinesToShow=Antal bilder som ska visas -DefineTablePlan=Definiera tabellplan -GiftReceiptButton=Lägg till knappen "Presentkvitto" -GiftReceipt=Presentkvitto -ModuleReceiptPrinterMustBeEnabled=Modulkvittenskrivaren måste ha aktiverats först -AllowDelayedPayment=Tillåt försenad betalning -PrintPaymentMethodOnReceipts=Skriv ut betalningsmetod på biljetter | kvitton +DefineTablePlan=Ange bordsplacering +GiftReceiptButton=Lägg till knappen "present" +GiftReceipt=Present +ModuleReceiptPrinterMustBeEnabled=Modulen kvittokrivare måste ha aktiverats först +AllowDelayedPayment=Tillåt fördröjd betalning +PrintPaymentMethodOnReceipts=Skriv ut betalsätt för biljetter på kvitton WeighingScale=Våg ShowPriceHT = Visa kolumnen med priset exklusive moms (på skärmen) ShowPriceHTOnReceipt = Visa kolumnen med priset exklusive moms (på kvittot) -CustomerDisplay=Customer display -SplitSale=Split sale -PrintWithoutDetailsButton=Add "Print without details" button -PrintWithoutDetailsLabelDefault=Line label by default on printing without details -PrintWithoutDetails=Print without details -YearNotDefined=Year is not defined -TakeposBarcodeRuleToInsertProduct=Barcode rule to insert product -TakeposBarcodeRuleToInsertProductDesc=Rule to extract the product reference + a quantity from a scanned barcode.
    If empty (default value), application will use the full barcode scanned to find the product.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +CustomerDisplay=Kunddisplay +SplitSale=Dela försäljning +PrintWithoutDetailsButton=Lägg till knappen "Skriv ut utan detaljer". +PrintWithoutDetailsLabelDefault=Rad som standard vid utskrift utan detaljer +PrintWithoutDetails=Skriv ut utan detaljer +YearNotDefined=År är inte angivet +TakeposBarcodeRuleToInsertProduct=Streckkodsregel för att infoga produkt +TakeposBarcodeRuleToInsertProductDesc=Regel för att extrahera produktreferensen + en kvantitet från en skannad streckkod.
    Om tom (standardvärde), kommer programmet att använda hela streckkoden som skannas för att hitta produkten.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +AlreadyPrinted=Redan utskriven +HideCategories=Dölj kategorier +HideStockOnLine=Dölj lager på raden +ShowOnlyProductInStock=Visa produkter i lager +ShowCategoryDescription=Visa kategoribeskrivning +ShowProductReference=Visa referens för produkter +UsePriceHT=Använd pris exkl. moms och inte pris inkl. moms +TerminalName=Terminal %s +TerminalNameDesc=Terminalnamn diff --git a/htdocs/langs/sv_SE/categories.lang b/htdocs/langs/sv_SE/categories.lang index 48eda9417bd..d5b8923f05c 100644 --- a/htdocs/langs/sv_SE/categories.lang +++ b/htdocs/langs/sv_SE/categories.lang @@ -1,100 +1,105 @@ # Dolibarr language file - Source file is en_US - categories -Rubrique=Tag / Kategori -Rubriques=Taggar/Kategorier -RubriquesTransactions=Taggar / Kategorier av transaktioner -categories=taggar / kategorier +Rubrique=Tagg/kategori +Rubriques=Taggar/kategorier +RubriquesTransactions=Taggar/kategorier av transaktioner +categories=taggar/kategorier NoCategoryYet=Ingen tagg/katergori för denna typen har skapats In=I AddIn=Lägg till i -modify=modifiera +modify=ändra Classify=Märk -CategoriesArea=Taggar / kategorier område -ProductsCategoriesArea=Produkt/Servicetagg/Kategoriområde -SuppliersCategoriesArea=Tillverkarens tagg/kategori -CustomersCategoriesArea=Kundens tagg/kategori -MembersCategoriesArea=Medlemmarnas taggar / kategorier -ContactsCategoriesArea=Kontaktens tagg/kategori -AccountsCategoriesArea=Bankkontots tagg/kategori -ProjectsCategoriesArea=Projektets tagg/kategori -UsersCategoriesArea=Anvädnarens tagg/kategori +CategoriesArea=Taggar/kategorier +ProductsCategoriesArea=Produkt/tjänst/kategorier +SuppliersCategoriesArea=Leverantörer tagg/kategori +CustomersCategoriesArea=Kund tagg/kategori +MembersCategoriesArea=Medlems taggar/kategorie +ContactsCategoriesArea=Kontakter tagg/kategori +AccountsCategoriesArea=Bankkonto tagg/kategori +ProjectsCategoriesArea=Projekt tagg/kategori +UsersCategoriesArea=Användare tagg/kategori SubCats=Underkategorier -CatList=Lista med taggar / kategorier +CatList=Lista taggar/kategorier CatListAll=Visa alla taggar/kategorier -NewCategory=Ny tagg / kategori -ModifCat=Ändra tagg / kategori -CatCreated=Tagg / kategori skapad -CreateCat=Skapa tag / kategori -CreateThisCat=Skapa den här taggen / kategorin +NewCategory=Ny tagg/kategori +ModifCat=Ändra tagg/kategori +CatCreated=Tagg/kategori skapad +CreateCat=Skapa tag/kategori +CreateThisCat=Skapa den här taggen/kategorin NoSubCat=Inga underkategori. SubCatOf=Underkategori -FoundCats=Hittade taggar / kategorier -ImpossibleAddCat=Omöjligt att lägga till taggen / kategorin %s +FoundCats=Hittade taggar/kategorier +ImpossibleAddCat=Omöjligt att lägga till taggen/kategorin %s WasAddedSuccessfully=%s har lagts till. -ObjectAlreadyLinkedToCategory=Element är redan länkat till den här taggen / kategorin. -ProductIsInCategories=Produkt / tjänst är kopplad till följande taggar / kategorier -CompanyIsInCustomersCategories=Denna tredje part är kopplad till följande kunder / utsikter taggar / kategorier -CompanyIsInSuppliersCategories=Den här tredje parten är kopplad till följande säljare / kategorier -MemberIsInCategories=Den här medlemmen är kopplad till följande medlemmar taggar / kategorier -ContactIsInCategories=Den här kontakten är kopplad till följande kontakter / kategorier -ProductHasNoCategory=Denna produkt / tjänst finns inte i några taggar / kategorier -CompanyHasNoCategory=Denna tredje part finns inte i några taggar / kategorier -MemberHasNoCategory=Den här medlemmen finns inte i några taggar / kategorier -ContactHasNoCategory=Den här kontakten finns inte i några taggar / kategorier -ProjectHasNoCategory=Detta projekt finns inte i några taggar / kategorier -ClassifyInCategory=Lägg till i tagg / kategori -NotCategorized=Utan tagg / kategori +ObjectAlreadyLinkedToCategory=Element är redan länkat till den här taggen/kategorin. +ProductIsInCategories=Produkt/tjänst är kopplad till följande taggar/kategorier +CompanyIsInCustomersCategories=Denna tredjepart är kopplad till följande kunder/prospekt-tagg/kategori +CompanyIsInSuppliersCategories=Den här tredjeparten är kopplad till följande leverantör/kategori +MemberIsInCategories=Den här medlemmen är kopplad till följande medlems-tagg/kategori +ContactIsInCategories=Den här kontakten är kopplad till följande kontakter/kategorier +ProductHasNoCategory=Denna produkt/tjänst har inte i några taggar/kategorier +CompanyHasNoCategory=Denna tredjepart har inte i några taggar/kategorier +MemberHasNoCategory=Den här medlemmen har inte i några taggar/kategorier +ContactHasNoCategory=Den här kontakten har inte i några taggar/kategorier +ProjectHasNoCategory=Detta projekt har inte i några taggar/kategorier +ClassifyInCategory=Lägg till i tagg/kategori +RemoveCategory=Ta bort kategori +NotCategorized=Utan tagg/kategori CategoryExistsAtSameLevel=Denna kategori finns redan med denna ref -ContentsVisibleByAllShort=Innehållsförteckning synlig för alla -ContentsNotVisibleByAllShort=Innehåll inte synlig för alla -DeleteCategory=Ta bort tagg / kategori -ConfirmDeleteCategory=Är du säker på att du vill radera den här taggen / kategorin? -NoCategoriesDefined=Ingen tagg / kategori definierad -SuppliersCategoryShort=Leverantörslabel / kategori -CustomersCategoryShort=Kunder tagg / kategori -ProductsCategoryShort=Produkter tagg / kategori -MembersCategoryShort=Medlemmar tagg / kategori -SuppliersCategoriesShort=Leverantörer tags / kategorier -CustomersCategoriesShort=Kunder taggar / kategorier -ProspectsCategoriesShort=Utsikter taggar / kategorier -CustomersProspectsCategoriesShort=Cust./Prosp. taggar / kategorier -ProductsCategoriesShort=Produkter taggar / kategorier -MembersCategoriesShort=Medlemmar taggar / kategorier -ContactCategoriesShort=Kontakter taggar / kategorier -AccountsCategoriesShort=Kontokoder / kategorier -ProjectsCategoriesShort=Projekt taggar / kategorier -UsersCategoriesShort=Användare taggar / kategorier -StockCategoriesShort=Lagrets taggar/kategorier -ThisCategoryHasNoItems=Denna kategori innehåller inga produkter. -CategId=Tagg / kategori id +ContentsVisibleByAllShort=Innehåll synligt för alla +ContentsNotVisibleByAllShort=Innehåll inte synligt för alla +DeleteCategory=Ta bort tagg/kategori +ConfirmDeleteCategory=Är du säker på att du vill radera den här taggen/kategorin? +NoCategoriesDefined=Ingen tagg/kategori angiven +SuppliersCategoryShort=Leverantör tagg/kategori +CustomersCategoryShort=Kund tagg/kategori +ProductsCategoryShort=Produkt tagg/kategori +MembersCategoryShort=Medlem tagg/kategori +SuppliersCategoriesShort=Leverantör taggar/kategorier +CustomersCategoriesShort=Kund taggar/kategorier +ProspectsCategoriesShort=Prospekt taggar/kategorier +CustomersProspectsCategoriesShort=Prospekt/kund taggar/kategorier +ProductsCategoriesShort=Produkt taggar/kategorier +MembersCategoriesShort=Medlem taggar/kategorier +ContactCategoriesShort=Kontakter taggar/kategorier +AccountsCategoriesShort=Konton taggar/kategorier +ProjectsCategoriesShort=Projekt taggar/kategorier +UsersCategoriesShort=Användare taggar/kategorier +StockCategoriesShort=Lager taggar/kategorier +ThisCategoryHasNoItems=Denna kategori innehåller inga objekt. +CategId=Tagg/kategori id ParentCategory=Överordnad tagg/kategori +ParentCategoryID=ID för överordnad tagg/kategori ParentCategoryLabel=Benämning av överordnad tagg/kategori -CatSupList=Lista tillverkarens taggar/kategorier -CatCusList=Lista (eventuella) kunders taggar/kategorier -CatProdList=Lista över produkter taggar / kategorier -CatMemberList=Lista över medlemmar taggar / kategorier +CatSupList=Lista leverantör taggar/kategorier +CatCusList=Lista prospekts/kunders taggar/kategorier +CatProdList=Lista över produkters taggar/kategorier +CatMemberList=Lista över medlem taggar/kategorier CatContactList=Lista kontakters taggar/kategorier -CatProjectsList=Lista projektens taggar/kategorier +CatProjectsList=Lista projekts taggar/kategorier CatUsersList=Lista användarnas taggar/kategorier CatSupLinks=Länkar mellan leverantörer och taggar/kategorier -CatCusLinks=Länkar mellan kunder / utsikter och taggar / kategorier +CatCusLinks=Länkar mellan kunder/prospekt och taggar/kategorier CatContactsLinks=Länkar mellan kontakter/adresser och taggar/kategorier -CatProdLinks=Länkar mellan produkter / tjänster och taggar / kategorier -CatMembersLinks=Länkar mellan medlemmar och taggar / kategorier +CatProdLinks=Länkar mellan produkter/tjänster och taggar/kategorier +CatMembersLinks=Länkar mellan medlemmar och taggar/kategorier CatProjectsLinks=Länkar mellan projekt och taggar/kategorier CatUsersLinks=Länkar mellan användare och taggar/kategorier -DeleteFromCat=Ta bort från taggar / kategori +DeleteFromCat=Ta bort från tagg/kategori ExtraFieldsCategories=Extra attibut -CategoriesSetup=Taggar / kategorier inställning -CategorieRecursiv=Länk med moderkort / kategori automatiskt -CategorieRecursivHelp=Om alternativet är på, när du lägger till en produkt i en underkategori kommer produkten också att läggas till i kategorin förälder. -AddProductServiceIntoCategory=Lägg till följande produkt / tjänst +CategoriesSetup=Inställningar taggar/kategorier +CategorieRecursiv=Länka med överordnad tagg/kategori automatiskt +CategorieRecursivHelp=Om alternativet är aktiverat kommer objektet också att läggas till i de överordnade kategorierna när du lägger till ett objekt i en underkategori. +AddProductServiceIntoCategory=Lägg till följande produkt/tjänst AddCustomerIntoCategory=Tilldela kategori till kund AddSupplierIntoCategory=Tilldela kategori till leverantör -ShowCategory=Visa tagg / kategori +AssignCategoryTo=Tilldela kategori till +ShowCategory=Visa tagg/kategori ByDefaultInList=Som standard i listan ChooseCategory=Välj kategori -StocksCategoriesArea=Lagrets kategorier +StocksCategoriesArea=Lagerkategorier +TicketsCategoriesArea=Ärendekategorier ActionCommCategoriesArea=Händelsekategori WebsitePagesCategoriesArea=Innehållskategorier -KnowledgemanagementsCategoriesArea=KM article Categories -UseOrOperatorForCategories=Använd operatören 'OR' för kategorier +KnowledgemanagementsCategoriesArea=KM artikel kategorier +UseOrOperatorForCategories=Använd operatören 'ELLER' för kategorier +AddObjectIntoCategory=Lägg till objekt i kategori diff --git a/htdocs/langs/sv_SE/commercial.lang b/htdocs/langs/sv_SE/commercial.lang index 76c9444f753..2613687ec85 100644 --- a/htdocs/langs/sv_SE/commercial.lang +++ b/htdocs/langs/sv_SE/commercial.lang @@ -1,81 +1,89 @@ # Dolibarr language file - Source file is en_US - commercial Commercial=Handel -CommercialArea=Handelsområde -Customer=Kunden +CommercialArea=Handel +Customer=Kund Customers=Kunder -Prospect=Prospect -Prospects=Framtidsutsikter -DeleteAction=Ta bort en händelse -NewAction=Nytt händelse -AddAction=Skapa event -AddAnAction=Skapa en händelse -AddActionRendezVous=Skapa en Rendez-vous händelse -ConfirmDeleteAction=Är du säker på att du vill radera den här händelsen? -CardAction=Action-kort +Prospect=Prospekt +Prospects=Prospekt +DeleteAction=Radera åtgärd +NewAction=Ny åtgärd +AddAction=Skapa åtgärd +AddAnAction=Skapa åtgärd +AddActionRendezVous=Skapa en åtgärd med fysiskt möte +ConfirmDeleteAction=Är du säker på att du vill radera denna åtgärd? +CardAction=Åtgärdskort ActionOnCompany=Relaterat företag ActionOnContact=Relaterad kontakt TaskRDVWith=Möte med %s ShowTask=Visa uppgift -ShowAction=Visa åtgärder -ActionsReport=Åtgärder rapport -ThirdPartiesOfSaleRepresentative=Tredje part med försäljningsrepresentant -SaleRepresentativesOfThirdParty=Försäljningsrepresentanter från tredje part +ShowAction=Visa uppgifter +ActionsReport=Åtgärdsrapport +ThirdPartiesOfSaleRepresentative=Tredjepart med representant +SaleRepresentativesOfThirdParty=Representanter från tredjepart SalesRepresentative=Säljare SalesRepresentatives=Säljare -SalesRepresentativeFollowUp=Försäljare (uppföljning) -SalesRepresentativeSignature=Försäljare (underskrift) -NoSalesRepresentativeAffected=Ingen särskild säljare påverkas +SalesRepresentativeFollowUp=Säljare (uppföljning) +SalesRepresentativeSignature=Säljare (underskrift) +NoSalesRepresentativeAffected=Ingen särskild säljare tilldelad ShowCustomer=Visa kund -ShowProspect=Visa utsikter -ListOfProspects=Lista över framtidsutsikter -ListOfCustomers=Lista över kunder -LastDoneTasks=Senaste %s genomförda åtgärderna -LastActionsToDo=Äldsta %s inte slutförda åtgärder -DoneAndToDoActions=Slutföras och att göra uppgifter +ShowProspect=Visa prospekt +ListOfProspects=Lista prospekt +ListOfCustomers=Lista kunder +LastDoneTasks=Senaste %s slutförda åtgärderna +LastActionsToDo= %s äldsta inte slutförda åtgärder +DoneAndToDoActions=Slutför och uppgifter att göra DoneActions=Genomförda åtgärder -ToDoActions=Ofullständig åtgärder -SendPropalRef=Inlämning av kommersiella förslag %s -SendOrderRef=Inlämning av order %s +ToDoActions=Ofärdiga åtgärder +SendPropalRef=Sändning av offert %s +SendOrderRef=Sändning av order %s StatusNotApplicable=Ej tillämpligt -StatusActionToDo=För att göra -StatusActionDone=Komplett -StatusActionInProcess=I processen +StatusActionToDo=Att göra +StatusActionDone=Slutförd +StatusActionInProcess=Pågående TasksHistoryForThisContact=Aktiviteter för denna kontakt LastProspectDoNotContact=Kontakta inte -LastProspectNeverContacted=Aldrig kontaktat -LastProspectToContact=För att kontakta +LastProspectNeverContacted=Aldrig kontaktad +LastProspectToContact=Att kontakta LastProspectContactInProcess=Kontakta i processen -LastProspectContactDone=Kontakta gjort -ActionAffectedTo=Åtgärd påverkas -ActionDoneBy=Åtgärder som utförs av +LastProspectContactDone=Kontakt genomförd +ActionAffectedTo=Åtgärd tilldelad +ActionDoneBy=Åtgärd utförd av ActionAC_TEL=Telefonsamtal ActionAC_FAX=Skicka fax -ActionAC_PROP=Skicka förslag via e-post +ActionAC_PROP=Skicka offert via e-post ActionAC_EMAIL=Skicka e-post -ActionAC_EMAIL_IN=Mottagning av e-post +ActionAC_EMAIL_IN=Mottagare av e-post ActionAC_RDV=Möten ActionAC_INT=Intervention på plats -ActionAC_FAC=Skicka kundfaktura med post -ActionAC_REL=Skicka kundfaktura via post (påminnelse) +ActionAC_FAC=Skicka fakatura +ActionAC_REL=Skicka påminnelse ActionAC_CLO=Stäng -ActionAC_EMAILING=Skicka mängd-e-post -ActionAC_COM=Skicka försäljningsorder via post -ActionAC_SHIP=Skicka Leverans med e-post -ActionAC_SUP_ORD=Skicka inköpsorder via post -ActionAC_SUP_INV=Skicka försäljningsfaktura via post +ActionAC_EMAILING=Skicka massmail +ActionAC_COM=Skicka ordererkännande via post +ActionAC_SHIP=Skicka sändningsinformation +ActionAC_SUP_ORD=Skicka inköpsorder +ActionAC_SUP_INV=Skicka leverantörsfaktura ActionAC_OTH=Andra ActionAC_OTH_AUTO=Annan automatik -ActionAC_MANUAL=Manuellt införda händelser -ActionAC_AUTO=Automatiskt införda händelser +ActionAC_MANUAL=Manuellt infogade åtgärder +ActionAC_AUTO=Automatiskt infogade åtgärder ActionAC_OTH_AUTOShort=Andra -ActionAC_EVENTORGANIZATION=Event organisation evenemang +ActionAC_EVENTORGANIZATION=Evenemangsorganisation Stats=Försäljningsstatistik -StatusProsp=Prospect status -DraftPropals=Utforma kommersiella förslag +StatusProsp=Prospektstatus +DraftPropals=Utforma offert NoLimit=Ingen gräns -ToOfferALinkForOnlineSignature=Länk för online signatur -WelcomeOnOnlineSignaturePage=Välkommen till sidan för att acceptera kommersiella förslag från %s -ThisScreenAllowsYouToSignDocFrom=Den här skärmen låter dig acceptera och underteckna eller vägra, ett citat / kommersiellt förslag -ThisIsInformationOnDocumentToSign=Detta är information på dokument för att acceptera eller vägra -SignatureProposalRef=Underskrift av offert / kommersiellt förslag %s -FeatureOnlineSignDisabled=Funktion för online-signering avaktiverad eller dokumentgenerering innan funktionen aktiverades +ToOfferALinkForOnlineSignature=Länk för onlinesignatur +WelcomeOnOnlineSignaturePageProposal=Välkommen till sidan för att acceptera offerter från %s +WelcomeOnOnlineSignaturePageContract=Välkommen till %s sida för att signera kontrakt +WelcomeOnOnlineSignaturePageFichinter=Välkommen till %s signering för interventioner +ThisScreenAllowsYouToSignDocFromProposal=Här kan du acceptera och signera, eller neka, en offert +ThisScreenAllowsYouToSignDocFromContract=Här kan du signera kontrakt i PDF-format online. +ThisScreenAllowsYouToSignDocFromFichinter=Här kan du signera interventioner i PDF-format online. +ThisIsInformationOnDocumentToSignProposal=Detta är information i dokument att acceptera eller neka +ThisIsInformationOnDocumentToSignContract=Detta är informationen om kontrakt som ska undertecknas +ThisIsInformationOnDocumentToSignFichinter=Detta är information om intervention att skriva under +SignatureProposalRef=Underskrift av offert %s +SignatureContractRef=Underskrift av kontrakt %s +SignatureFichinterRef=Underskrift av intervention %s +FeatureOnlineSignDisabled=Funktion för onlinesignering inaktiverad eller så blev dokumentet genererat innan funktionen aktiverades diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang index 4c374149506..ebee840f1ed 100644 --- a/htdocs/langs/sv_SE/companies.lang +++ b/htdocs/langs/sv_SE/companies.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - companies ErrorCompanyNameAlreadyExists=Företagets namn %s finns redan. Välj en annan en. ErrorSetACountryFirst=Välj land först -SelectThirdParty=Välj en tredje part +SelectThirdParty=Välj tredjepart ConfirmDeleteCompany=Är du säker på att du vill ta bort företaget och all relaterad information? DeleteContact=Radera en kontakt ConfirmDeleteContact=Är du säker på att du vill ta bort den här kontakten och all relaterad information? MenuNewThirdParty=Ny tredjepart MenuNewCustomer=Ny kund -MenuNewProspect=Nytt perspektiv -MenuNewSupplier=Ny Leverantör -MenuNewPrivateIndividual=Nya privatperson +MenuNewProspect=Nytt prospekt +MenuNewSupplier=Ny leverantör +MenuNewPrivateIndividual=Ny privatperson NewCompany=Nytt företag (prospekt, kund, leverantör) NewThirdParty=Ny tredjepart (prospekt, kund, leverantör) CreateDolibarrThirdPartySupplier=Skapa en tredjepart (leverantör) -CreateThirdPartyOnly=Skapa tredje part -CreateThirdPartyAndContact=Skapa en tredjepart + en barnkontakt -ProspectionArea=Prospektering område -IdThirdParty=Id tredje part -IdCompany=Företag Id -IdContact=Kontact ID -ThirdPartyAddress=Third-party address -ThirdPartyContacts=Tredjeparts kontakter -ThirdPartyContact=Tredjeparts kontakt / adress +CreateThirdPartyOnly=Skapa tredjepart +CreateThirdPartyAndContact=Skapa en tredjepart + en underordnad kontakt +ProspectionArea=Prospektering +IdThirdParty=ID tredjepart +IdCompany=Företags-ID +IdContact=Kontakt-ID +ThirdPartyAddress=Adress till tredjepart +ThirdPartyContacts=Kontakter hos tredjepart +ThirdPartyContact=Kontakt/adress hos tredjepart Company=Företag CompanyName=Företagets namn AliasNames=Alias namn (kommersiellt, varumärke, ...) @@ -30,52 +30,53 @@ Companies=Företag CountryIsInEEC=Landet ligger inom Europeiska ekonomiska gemenskapen PriceFormatInCurrentLanguage=Prisvisningsformat på aktuellt språk och valuta ThirdPartyName=Namn på tredjepart -ThirdPartyEmail=Tredjeparts e-post +ThirdPartyEmail=E-post till tredjepart ThirdParty=Tredjepart ThirdParties=Utomstående -ThirdPartyProspects=Möjliga kunder -ThirdPartyProspectsStats=Möjliga kunder +ThirdPartyProspects=Prospekt +ThirdPartyProspectsStats=Prospekt ThirdPartyCustomers=Kunder ThirdPartyCustomersStats=Kunder ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s ThirdPartySuppliers=Säljare -ThirdPartyType=Tredjeparts typ +ThirdPartyType=Tredjepartstyp Individual=Privatperson -ToCreateContactWithSameName=Skapar automatiskt en kontakt / adress med samma information som tredjepart under tredjepart. I de flesta fall, även om din tredjepart är en fysisk person, är det bara att skapa en tredjepart. +ToCreateContactWithSameName=Skapar automatiskt en kontakt/adress med samma information som tredjepart. I de flesta fall, även om din tredjepart är en fysisk person, är det bara att skapa en tredjepart. ParentCompany=Moderbolaget Subsidiaries=Dotterbolag ReportByMonth=Rapportera per månad ReportByCustomers=Rapportera per kund -ReportByThirdparties=Rapport per tredje part +ReportByThirdparties=Rapport per tredjepart ReportByQuarter=Rapportera per kurs -CivilityCode=Hövlighet kod +CivilityCode=Titulering RegisteredOffice=Säte Lastname=Efternamn Firstname=Förnamn -RefEmployee=Employee reference -NationalRegistrationNumber=National registration number +RefEmployee=Anställds referens +NationalRegistrationNumber=Personnummer PostOrFunction=Befattning UserTitle=Titel NatureOfThirdParty=Tredjepartens art NatureOfContact=Kontaktens art Address=Adress State=Delstat / provins -StateCode=Stat / provins kod -StateShort=stat +StateId=Regions-ID +StateCode=Länskod +StateShort=Ö'm Region=Region -Region-State=Region - Stat +Region-State=Region - Län Country=Land CountryCode=Landskod -CountryId=Land-id +CountryId=Lands-ID Phone=Telefon -PhoneShort=Tel +PhoneShort=Telefon Skype=Skype Call=Ring upp -Chat=Chat +Chat=Chatta PhonePro=Företagstelefon PhonePerso=Pers. telefon PhoneMobile=Mobil -No_Email=Avvisa bulk emailings +No_Email=Nekat e-postutskick Fax=Fax Zip=Postnummer Town=Stad @@ -83,29 +84,29 @@ Web=Webb Poste= Position DefaultLang=Standardspråk VATIsUsed=Försäljningsskatt används -VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers +VATIsUsedWhenSelling=Detta anger om tredjeparten påverkas av moms eller inte när de skapar fakturor till egena kunder VATIsNotUsed=Försäljningsskatt används inte CopyAddressFromSoc=Kopiera adress från uppgifter från tredjepart ThirdpartyNotCustomerNotSupplierSoNoRef=Tredjepart varken kund eller leverantör, inga tillgängliga hänvisningsobjekt ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tredjepart varken kund eller leverantör, rabatter är inte tillgängliga -PaymentBankAccount=Betalnings bankkonto -OverAllProposals=Förslag -OverAllOrders=Beställningar +PaymentBankAccount=Bankkonto för betalningar +OverAllProposals=Offerter +OverAllOrders=Order OverAllInvoices=Fakturor OverAllSupplierProposals=Prisförfrågningar ##### Local Taxes ##### -LocalTax1IsUsed=Använda andra skatte +LocalTax1IsUsed=Använd sekundär moms LocalTax1IsUsedES= RE används LocalTax1IsNotUsedES= RE används inte -LocalTax2IsUsed=Använd tredje skatt +LocalTax2IsUsed=Använd tredje moms LocalTax2IsUsedES= IRPF används LocalTax2IsNotUsedES= IRPF används inte WrongCustomerCode=Kundkod ogiltig WrongSupplierCode=Leverantörskoden är ogiltig -CustomerCodeModel=Kundkod, mall +CustomerCodeModel=Kundkodsmall SupplierCodeModel=Leverantörskodsmodell -Gencod=Barcode -GencodBuyPrice=Barcode of price ref +Gencod=Streckkod +GencodBuyPrice=Streckkod för prisreferens ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -127,17 +128,17 @@ ProfId5AR=- ProfId6AR=- ProfId1AT=Prof Id 1 (USt.-IdNr) ProfId2AT=Prof Id 2 (USt.-Nr) -ProfId3AT=Prof Id 3 (Handelsregister-Nr.) +ProfId3AT=Prof id 3 (handelsregister nr.) ProfId4AT=- ProfId5AT=EORI-nummer ProfId6AT=- -ProfId1AU=Prof Id 1 (ABN) +ProfId1AU=Prof id 1 (ABN) ProfId2AU=- ProfId3AU=- ProfId4AU=- ProfId5AU=- ProfId6AU=- -ProfId1BE=Prof Id 1 (Professional antal) +ProfId1BE=Prof id 1 (organisationsnummer) ProfId2BE=- ProfId3BE=- ProfId4BE=- @@ -149,10 +150,10 @@ ProfId3BR=IM (Inscricao Municipal) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS -ProfId1CH=UID-Nummer +ProfId1CH=UID-nummer ProfId2CH=- -ProfId3CH=Prof Id 1 (Federal antal) -ProfId4CH=Prof Id 2 (Commercial Rekordmånga) +ProfId3CH=Prof Id 1 (federalt nummer) +ProfId4CH=Prof Id 2 (kommersiellt registreringsnummer) ProfId5CH=EORI-nummer ProfId6CH=- ProfId1CL=Prof Id 1 (RUT) @@ -161,17 +162,17 @@ ProfId3CL=- ProfId4CL=- ProfId5CL=- ProfId6CL=- -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) -ProfId5CM=Id. prof. 5 (Others) +ProfId1CM=Id. prof. 1 (handelsregister) +ProfId2CM=Id. prof. 2 (skatteregistreringsnummer) +ProfId3CM=Id. prof. 3 (nr. skapelsedekret) +ProfId4CM=Id. prof. 4 (insättningsbevis nr.) +ProfId5CM=Id. prof. 5 (annat) ProfId6CM=- -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits -ProfId5ShortCM=Övrigt +ProfId1ShortCM=Handelsregister +ProfId2ShortCM=Skatteregistreringsnummer +ProfId3ShortCM=Nr skapelsedekret +ProfId4ShortCM=Insättningsbevis nr. +ProfId5ShortCM=Annat ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -181,18 +182,18 @@ ProfId5CO=- ProfId6CO=- ProfId1DE=Prof Id 1 (USt.-IdNr) ProfId2DE=Prof Id 2 (USt.-Nr) -ProfId3DE=Prof Id 3 (Handelsregister-Nr.) +ProfId3DE=Prof Id 3 (handelsregister) ProfId4DE=- ProfId5DE=EORI-nummer ProfId6DE=- ProfId1ES=Prof Id 1 (CIF / NIF) -ProfId2ES=Prof Id 2 (Social Security Number) +ProfId2ES=Prof Id 2 (personnummer) ProfId3ES=Prof Id 3 (CNAE) -ProfId4ES=Prof Id 4 (Collegiate nummer) +ProfId4ES=Prof Id 4 (kollegiatnummer) ProfId5ES=Prof Id 5 (EORI-nummer) ProfId6ES=- ProfId1FR=Prof Id 1 (SIREN) -ProfId2FR=Prof Id 2 (Siret) +ProfId2FR=Prof Id 2 (siret) ProfId3FR=Prof Id 3 (NAF, gamla APE) ProfId4FR=Prof Id 4 (RCS / RM) ProfId5FR=Prof Id 5 (EORI-nummer) @@ -241,7 +242,7 @@ ProfId5MA=Id prof. 5 (I.C.E.) ProfId6MA=- ProfId1MX=Prof Id 1 (RFC). ProfId2MX=Prof Id 2 (R.. P. IMSS) -ProfId3MX=Prof Id 3 (Profesional stadgan) +ProfId3MX=Prof Id 3 (profesional stadgan) ProfId4MX=- ProfId5MX=- ProfId6MX=- @@ -266,7 +267,7 @@ ProfId6SN=- ProfId1TN=Prof Id 1 (RC) ProfId2TN=Prof Id 2 (Fiscal matricule) ProfId3TN=Prof Id 3 (Douane kod) -ProfId4TN=Prof Id 4 (förbud) +ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- ProfId1US=Prof Id (FEIN) @@ -290,58 +291,58 @@ ProfId6RU=- ProfId1UA=Prof Id 1 (EDRPOU) ProfId2UA=Prof Id 2 (DRFO) ProfId3UA=Prof Id 3 (INN) -ProfId4UA=Prof Id 4 (Certificate) +ProfId4UA=Prof Id 4 (certifikat) ProfId5UA=Prof Id 5 (RNOKPP) ProfId6UA=Prof Id 6 (TRDPAU) ProfId1DZ=RC -ProfId2DZ=Konst. +ProfId2DZ=Art. ProfId3DZ=NIF ProfId4DZ=NIS VATIntra=Momsregistreringsnummer VATIntraShort=Momsregistreringsnummer VATIntraSyntaxIsValid=Syntaxen är giltigt -VATReturn=Momsavkastning -ProspectCustomer=Möjlig kund / Kund -Prospect=Möjlig kund +VATReturn=Moms åter +ProspectCustomer=Prospekt/kund +Prospect=Prospekt CustomerCard=Kundkort Customer=Kund CustomerRelativeDiscount=Relativ kundrabatt -SupplierRelativeDiscount=Relativ försäljningsrabatt +SupplierRelativeDiscount=Relativ leverantörsrabatt CustomerRelativeDiscountShort=Relativ rabatt CustomerAbsoluteDiscountShort=Absolut rabatt -CompanyHasRelativeDiscount=Denna kund har en rabatt på %s%% -CompanyHasNoRelativeDiscount=Denna kund har ingen relativ rabatt som standard -HasRelativeDiscountFromSupplier=Du har en standardrabatt på %s%% från denna säljare -HasNoRelativeDiscountFromSupplier=Du har ingen standardrelativ rabatt från denna leverantör +CompanyHasRelativeDiscount=Denna kund har en standardrabatt på %s%% +CompanyHasNoRelativeDiscount=Denna kund har ingen standardrabatt +HasRelativeDiscountFromSupplier=Du har en standardrabatt på %s%% hos denna leverantör +HasNoRelativeDiscountFromSupplier=Ingen standard rabatt hos denna leverantör CompanyHasAbsoluteDiscount=Den här kunden har rabatter tillgängliga (krediter eller nedbetalningar) för %s %s -CompanyHasDownPaymentOrCommercialDiscount=Denna kund har rabatter tillgängliga (kommersiella, nedbetalningar) för %s %s -CompanyHasCreditNote=Denna kund har fortfarande kreditnotor för %s %s -HasNoAbsoluteDiscountFromSupplier=Du har ingen rabattkredit tillgänglig från den här försäljaren -HasAbsoluteDiscountFromSupplier=Du har rabatter tillgängliga (krediter noteringar eller nedbetalningar) för %s %s från denna säljare -HasDownPaymentOrCommercialDiscountFromSupplier=Du har rabatter tillgängliga (kommersiella, nedbetalningar) för %s %s från denna säljare -HasCreditNoteFromSupplier=Du har kreditanteckningar för %s %s från denna säljare -CompanyHasNoAbsoluteDiscount=Denna kund har inga rabatttillgodohavanden -CustomerAbsoluteDiscountAllUsers=Absoluta kundrabatter (beviljas av alla användare) -CustomerAbsoluteDiscountMy=Absoluta kundrabatter (beviljas av dig själv) +CompanyHasDownPaymentOrCommercialDiscount=Denna kund har rabatter tillgängliga (kommersiella, förskott) på %s %s +CompanyHasCreditNote=Denna kund har fortfarande kreditnotor på %s %s +HasNoAbsoluteDiscountFromSupplier=Ingen rabatt/kredit tillgänglig hos denna leverantör +HasAbsoluteDiscountFromSupplier=Du har rabatter tillgängliga (krediter noteringar eller förskott) på %s %s hos denna leverantör +HasDownPaymentOrCommercialDiscountFromSupplier=Du har rabatter tillgängliga (kommersiella, förskott) på %s %s hos denna leverantör +HasCreditNoteFromSupplier=Du har en rabatt på %s %s hos denna leverantör +CompanyHasNoAbsoluteDiscount=Denna kund har inga rabatter tillgängliga +CustomerAbsoluteDiscountAllUsers=Absoluta kundrabatter (som beviljas av alla användare) +CustomerAbsoluteDiscountMy=Absoluta kundrabatter (som beviljas av dig) SupplierAbsoluteDiscountAllUsers=Absoluta leverantörsrabatter (angivna av alla användare) -SupplierAbsoluteDiscountMy=Absoluta leverantörsrabatter (angivna av dig själv) +SupplierAbsoluteDiscountMy=Absoluta leverantörsrabatter (angivna av dig) DiscountNone=Ingen -Vendor=Säljare +Vendor=Leverantör Supplier=Leverantör AddContact=Skapa kontakt -AddContactAddress=Skapa kontakt / adress -EditContact=Redigera kontakt / adress -EditContactAddress=Redigera kontakt / adress -Contact=Kontakt Adress +AddContactAddress=Skapa kontakt/adress +EditContact=Redigera kontakt/adress +EditContactAddress=Redigera kontakt/adress +Contact=Kontakt/adress Contacts=Kontakter/adresser ContactId=Kontakt id -ContactsAddresses=Kontakt / Adresser +ContactsAddresses=Kontakt/adresser FromContactName=Namn: -NoContactDefinedForThirdParty=Ingen kontakt inlagd för denna tredje part +NoContactDefinedForThirdParty=Ingen kontakt inlagd för denna tredjepart NoContactDefined=Ingen kontakt inlagd -DefaultContact=Standard kontakt / adress -ContactByDefaultFor=Standardkontakt / adress för -AddThirdParty=Skapa tredje part +DefaultContact=Standard kontakt/adress +ContactByDefaultFor=Standard kontakt/adress för +AddThirdParty=Skapa tredjepart DeleteACompany=Ta bort ett företag PersonalInformations=Personuppgifter AccountancyCode=Redovisningskonto @@ -351,54 +352,54 @@ CustomerCodeShort=Kundkod SupplierCodeShort=Leverantörskoder CustomerCodeDesc=Kundkod, unik för alla kunder SupplierCodeDesc=Leverantörskod, unik för alla leverantörer -RequiredIfCustomer=Krävs om tredje part är en kund eller möjlig kund +RequiredIfCustomer=Krävs om tredjepart är en kund eller prospekt RequiredIfSupplier=Krävs om tredjepart är en leverantör ValidityControledByModule=Giltighet kontrollerad av modulen ThisIsModuleRules=Regler för denna modul -ProspectToContact=Möjlig kund att kontakta +ProspectToContact=Prospekt att kontakta CompanyDeleted=Företaget "%s" raderad från databasen. -ListOfContacts=Lista med kontakter / adresser -ListOfContactsAddresses=Lista med kontakter / adresser +ListOfContacts=Lista med kontakter/adresser +ListOfContactsAddresses=Lista med kontakter/adresser ListOfThirdParties=Förteckning över tredjeparter -ShowCompany=Tredje part +ShowCompany=Tredjepart ShowContact=Kontaktadress ContactsAllShort=Alla (inget filter) -ContactType=Contact role -ContactForOrders=Beställningens kontaktinformation +ContactType=Kontakttyp +ContactForOrders=Orderns kontakt ContactForOrdersOrShipments=Orderens eller försändelsens kontakt ContactForProposals=Offertens kontaktinformation ContactForContracts=Kontraktets kontaktinformation ContactForInvoices=Fakturans kontaktinformation NoContactForAnyOrder=Denna kontakt är inte kontakt för någon order NoContactForAnyOrderOrShipments=Den här kontakten är inte en kontakt för någon order eller försändelse -NoContactForAnyProposal=Denna kontakt är inte kontakt i någon kommersiell offert +NoContactForAnyProposal=Denna kontakt är inte en kontakt i någon offert NoContactForAnyContract=Denna kontakt är inte kontakt för något kontrakt NoContactForAnyInvoice=Denna kontakt är inte kontakt för någon faktura NewContact=Ny kontakt -NewContactAddress=Ny kontakt / adress +NewContactAddress=Ny kontakt/adress MyContacts=Mina kontakter Capital=Kapital CapitalOf=Kapital %s EditCompany=Redigera företag -ThisUserIsNot=Denna användare är inte en prospekt, kund eller leverantör -VATIntraCheck=Kontrollera -VATIntraCheckDesc=Moms-ID måste innehålla land prefix. Länken %s använder den europeiska mervärdesskattjänsten (VIES) som kräver internetåtkomst från Dolibarr-servern. +ThisUserIsNot=Denna användare är inte ett prospekt, kund eller leverantör +VATIntraCheck=Check +VATIntraCheckDesc=Momsregistreringsnummer måste innehålla land prefix. Länken %s använder den europeiska mervärdesskattjänsten (VIES) som kräver internetåtkomst från Dolibarr-servern. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=Kontrollera momsnumret inom gemenskapen på Europeiska kommissionens webbplats -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraManualCheck=Du kan också kontrollera på EU's webbsida %s ErrorVATCheckMS_UNAVAILABLE=Kontroll inte möjlig. Kontrollera om tjänsten tillhandahålls av medlemsstaten (%s). -NorProspectNorCustomer=Inte utsikter, eller kund -JuridicalStatus=Typ av affärsenhet -Workforce=Arbetskraft -Staff=anställda -ProspectLevelShort=Potentiella -ProspectLevel=Prospect potential +NorProspectNorCustomer=Inte prospekt eller kund +JuridicalStatus=Typ av företag +Workforce=Antal anställda +Staff=Anställda +ProspectLevelShort=Potential +ProspectLevel=Prospekts potential ContactPrivate=Privat ContactPublic=Delad ContactVisibility=Synlighet ContactOthers=Andra -OthersNotLinkedToThirdParty=Andra, inte kopplade till tredje part -ProspectStatus=Prospect status +OthersNotLinkedToThirdParty=Annan, inte kopplad till tredjepart +ProspectStatus=Prospekts status PL_NONE=Ingen PL_UNKNOWN=Okänd PL_LOW=Låg @@ -408,8 +409,8 @@ TE_UNKNOWN=- TE_STARTUP=Startup TE_GROUP=Stort företag TE_MEDIUM=Medelstort företag -TE_ADMIN=Statliga -TE_SMALL=Små företag +TE_ADMIN=Statligt +TE_SMALL=Småföretagare TE_RETAIL=Återförsäljare TE_WHOLE=Grossist TE_PRIVATE=Privatperson @@ -424,27 +425,27 @@ ChangeNeverContacted=Ändra status till 'Ännu ej kontaktad' ChangeToContact=Ändra status till "Kontaktas" ChangeContactInProcess=Ändra status till 'Pågående kontakt' ChangeContactDone=Ändra status till 'Kontakt utförd' -ProspectsByStatus=Möjliga kunder efter status +ProspectsByStatus=Prospekt efter status NoParentCompany=Ingen -ExportCardToFormat=Export-kort för att formatera -ContactNotLinkedToCompany=Kontakt ej länkad till någon tredje part +ExportCardToFormat=Exportera kort till format +ContactNotLinkedToCompany=Kontakt inte länkad till någon tredjepart DolibarrLogin=Dolibarr inloggning NoDolibarrAccess=Dolibarr ej nåbar -ExportDataset_company_1=Tredjeparter (företag / stiftelser / fysiska personer) och deras egenskaper +ExportDataset_company_1=Tredjeparter (företag/stiftelser/fysiska personer) och deras egenskaper ExportDataset_company_2=Kontakter och deras egenskaper -ImportDataset_company_1=Tredjepartier och deras egenskaper -ImportDataset_company_2=Tredjepartens ytterligare kontakter / adresser och attribut +ImportDataset_company_1=Tredjeparter och deras egenskaper +ImportDataset_company_2=Tredjepartens ytterligare kontakter/adresser och attribut ImportDataset_company_3=Tredjeparts bankkonton -ImportDataset_company_4=Tredjepartens försäljningsrepresentanter (tilldela försäljningsrepresentanter / användare till företag) +ImportDataset_company_4=Tredjepartens säljare (tilldela säljare/användare till företag) PriceLevel=Prisnivå PriceLevelLabels=Prisnivåetiketter DeliveryAddress=Leveransadress AddAddress=Lägg till adress SupplierCategory=Leverantörskategori -JuridicalStatus200=Självständig +JuridicalStatus200=Fristående DeleteFile=Ta bort fil -ConfirmDeleteFile=Är du säker på att du vill ta bort denna fil? -AllocateCommercial=Tilldelad försäljningsrepresentant +ConfirmDeleteFile=Är du säker på att du vill ta bort filen %s? +AllocateCommercial=Tilldelad säljare Organization=Organisation FiscalYearInformation=Räkenskapsår FiscalMonthStart=Första månad av verksamhetsåret @@ -456,44 +457,46 @@ SocialNetworksInstagramURL=Instagram-URL SocialNetworksYoutubeURL=Youtube URL SocialNetworksGithubURL=Github URL YouMustAssignUserMailFirst=Du måste skapa ett mail för den här användaren innan du kan lägga till ett e-postmeddelande. -YouMustCreateContactFirst=För att kunna lägga till e-postmeddelanden måste du först definiera kontakter med giltiga e-postmeddelanden till tredjepart +YouMustCreateContactFirst=För att kunna lägga till e-postmeddelanden måste du först ange kontakter med giltiga e-postadresser för tredjepart ListSuppliersShort=Förteckning över leverantörer -ListProspectsShort=Förteckning över utsikter +ListProspectsShort=Förteckning över prospekt ListCustomersShort=Förteckning över kunder -ThirdPartiesArea=Tredjeparter / Kontakter +ThirdPartiesArea=Tredjeparter/kontakter LastModifiedThirdParties=Senaste %s tredjeparter som modifierades UniqueThirdParties=Totalt antal tredjeparter InActivity=Öppen -ActivityCeased=Stängt +ActivityCeased=Stängd ThirdPartyIsClosed=Tredjepart är stängd -ProductsIntoElements=Lista över produkter / tjänster mappade till %s +ProductsIntoElements=Lista över produkter/tjänster kopplade till %s CurrentOutstandingBill=Obetalda fakturor -OutstandingBill=Max för obetald faktura -OutstandingBillReached=Max. för enastående räkning uppnådd +OutstandingBill=Kreditgräns +OutstandingBillReached=Kreditgräns uppnådd OrderMinAmount=Minsta belopp för beställning -MonkeyNumRefModelDesc=Returnera ett nummer i formatet %syymm-nnnn för kundkoden och %syymm-nnnn för leverantörskoden där yy är år, mm är månad och nnnn är ett sekventiellt automatiskt inkrementeringsnummer utan paus och ingen retur till 0. -LeopardNumRefModelDesc=Kund / leverantör-nummer är ledig. Denna kod kan ändras när som helst. -ManagingDirectors=Företagledares namn (vd, direktör, ordförande ...) +MonkeyNumRefModelDesc=Ange nummer i formatet %syymm-nnnn för kundkoden och %syymm-nnnn för leverantörskoden där yy är år, mm är månad och nnnn är ett sekventiellt automatiskt inkrementeringsnummer utan mellanrum. +LeopardNumRefModelDesc=Koden kan ändras när som helst. +ManagingDirectors=Företagledares namn (VD, ordförande ...) MergeOriginThirdparty=Duplicera tredjepart (tredjepart du vill ta bort) MergeThirdparties=Sammanfoga tredjepart ConfirmMergeThirdparties=Är du säker på att du vill slå samman den valda tredjeparten med den nuvarande? Alla länkade objekt (fakturor, beställningar, ...) flyttas till den aktuella tredjeparten, varefter den valda tredjeparten raderas. -ThirdpartiesMergeSuccess=Tredjepart har blivit fusionerad -SaleRepresentativeLogin=Inloggning av försäljare -SaleRepresentativeFirstname=Förnamn på försäljningsrepresentant -SaleRepresentativeLastname=Efternamn för försäljare +ThirdpartiesMergeSuccess=Tredjepart har blivit sammanfogad +SaleRepresentativeLogin=Inloggning för säljare +SaleRepresentativeFirstname=Förnamn på säljare +SaleRepresentativeLastname=Efternamn på säljare ErrorThirdpartiesMerge=Ett fel uppstod vid borttagning av tredjepart. Kontrollera loggen. Ändringar har återställts. -NewCustomerSupplierCodeProposed=Kunder eller leverantörskod som redan används, föreslås en ny kod -KeepEmptyIfGenericAddress=Håll det här fältet tomt om den här adressen är en generisk adress +NewCustomerSupplierCodeProposed=Kund- eller leverantörskod används redan. Du bör använda en annan. +KeepEmptyIfGenericAddress=Håll det här fältet tomt om den här adressen är generell #Imports -PaymentTypeCustomer=Betalningstyp - Kund -PaymentTermsCustomer=Betalningsvillkor - Kund -PaymentTypeSupplier=Betalningstyp - Leverantör -PaymentTermsSupplier=Betalningstid - Leverantör +PaymentTypeCustomer=Betalningstyp - kund +PaymentTermsCustomer=Betalvillkor - kund +PaymentTypeSupplier=Betalningstyp - leverantör +PaymentTermsSupplier=Betalvillkor - leverantör PaymentTypeBoth=Betalningstyp - Kund och leverantör -MulticurrencyUsed=Använd multicurrency +MulticurrencyUsed=Använd flera valutor MulticurrencyCurrency=Valuta InEEC=Europa (EEG) RestOfEurope=Övriga Europa (EEG) -OutOfEurope=Ut ur Europa (EEG) -CurrentOutstandingBillLate=Nuvarande utestående räkning sent -BecarefullChangeThirdpartyBeforeAddProductToInvoice=Var försiktig, beroende på dina produktprisinställningar, bör du ändra tredje part innan du lägger till produkten i kassan. +OutOfEurope=Utanför Europa (EEG) +CurrentOutstandingBillLate=Faktura försenad +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Beroende på dina inställningar för produktpris så bör du ändra tredjepart innan du lägger till produkten i kassan. +EmailAlreadyExistsPleaseRewriteYourCompanyName=E-postadressen finns redan, vänligen skriv ditt företagsnamn +TwoRecordsOfCompanyName=det finns mer än en post för detta företag, kontakta oss för att slutföra din partnerskapsförfrågan" diff --git a/htdocs/langs/sv_SE/compta.lang b/htdocs/langs/sv_SE/compta.lang index c611358f7cf..5829ca7bca2 100644 --- a/htdocs/langs/sv_SE/compta.lang +++ b/htdocs/langs/sv_SE/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balans (före) Balance=Balans Debit=Debet Credit=Credit +AccountingDebit=Debit +AccountingCredit=Kredit Piece=Redovisning Doc. AmountHTVATRealReceived=Net insamlade AmountHTVATRealPaid=Net betalas @@ -146,15 +148,15 @@ ConfirmPaySalary=Är du säker på att du vill klassificera lönekortet som beta DeleteSocialContribution=Ta bort en social eller skattemässig skattebetalning DeleteVAT=Radera en momsdeklaration DeleteSalary=Ta bort ett lönekort -DeleteVariousPayment=Delete a various payment +DeleteVariousPayment=Ta bort en annan betalning ConfirmDeleteSocialContribution=Är du säker på att du vill ta bort denna sociala / skattemässiga betalning? ConfirmDeleteVAT=Är du säker på att du vill ta bort denna momsdeklaration? -ConfirmDeleteSalary=Are you sure you want to delete this salary ? -ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? +ConfirmDeleteSalary=Är du säker på att du vill ta bort denna lön? +ConfirmDeleteVariousPayment=Är du säker på att du vill ta bort denna olika betalning? ExportDataset_tax_1=Sociala och skattemässiga skatter och betalningar CalcModeVATDebt=Läge% svat på redovisning engagemang% s. CalcModeVATEngagement=Läge% svat på inkomster-utgifter% s. -CalcModeDebt=Analys av kända inspelade dokument även om de ännu inte redovisas i huvudboken. +CalcModeDebt=Analys av kända registrerade dokument även om de ännu inte redovisas i huvudboken. CalcModeEngagement=Analys av kända registrerade betalningar, även om de ännu inte är redovisade i huvudboken. CalcModeBookkeeping=Analys av data bokförd i huvudboken. CalcModeLT1= Läge% SRE på kundfakturor - leverantörerna fakturerar% s @@ -172,9 +174,9 @@ SeeReportInInputOutputMode=Se %sanalys av betalningar%s för en beräkn SeeReportInDueDebtMode=Se %sanalys av registrerade dokument %s för en beräkning baserad på kända registrerade dokument även om de ännu inte redovisas i huvudboken SeeReportInBookkeepingMode=Se %sanalys av bokföringsboken table%s för en rapport baserad på Bokföringsbokstabell RulesAmountWithTaxIncluded=- Belopp som visas är med alla skatter inkluderade -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded -RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. +RulesAmountWithTaxExcluded=- Fakturabeloppen som visas är exklusive moms +RulesResultDue=– Det inkluderar alla fakturor, utgifter, moms, donationer, löner, oavsett om de betalas eller inte.
    - Det är baserat på faktureringsdatum för fakturor och på förfallodatum för utgifter eller skattebetalningar. För löner används datum för periodens slut. +RulesResultInOut=– Det inkluderar de verkliga betalningarna på fakturor, utgifter, moms och löner.
    - Det är baserat på betalningsdatum för fakturor, utgifter, moms, donationer och löner. RulesCADue=- Det inkluderar kundens förfallna fakturor, oavsett om de betalas eller inte.
    - Det är baserat på faktureringsdatum för dessa fakturor.
    RulesCAIn=- Det inkluderar alla effektiva betalningar av fakturor som mottagits från kunder.
    - Det är baserat på betalningsdatum för dessa fakturor
    RulesCATotalSaleJournal=Den innehåller alla kreditlinjer från försäljningsloggboken. @@ -192,24 +194,24 @@ LT2ReportByCustomers=Rapportera skatt 3 av tredje part LT1ReportByCustomersES=Rapport från tredje part RE LT2ReportByCustomersES=Rapport från tredje part IRPF VATReport=Försäljningsmomsrapport -VATReportByPeriods=Sales tax report by period -VATReportByMonth=Sales tax report by month -VATReportByRates=Sales tax report by rate -VATReportByThirdParties=Sales tax report by third party -VATReportByCustomers=Sales tax report by customer +VATReportByPeriods=Momsrapport per period +VATReportByMonth=Momsrapport per månad +VATReportByRates=Momsrapport efter momssats +VATReportByThirdParties=Momsrapport från tredje part +VATReportByCustomers=Momsrapport per kund VATReportByCustomersInInputOutputMode=Rapport av kunden moms samlas och betalas -VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid +VATReportByQuartersInInputOutputMode=Rapportering av momssatsen för insamlad och betald moms VATReportShowByRateDetails=Visa detaljer om denna kurs LT1ReportByQuarters=Rapportera skatt 2 efter skatt LT2ReportByQuarters=Rapportera skatt 3 efter skatt LT1ReportByQuartersES=Rapport från RE hastighet LT2ReportByQuartersES=Betänkande av IRPF hastighet -SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation -SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing -RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. -RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. -RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. -RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. +SeeVATReportInInputOutputMode=Se rapporten %smomsuppbörd%s för en standardberäkning +SeeVATReportInDueDebtMode=Se rapport %smoms på debit%s för en beräkning med option på faktureringen +RulesVATInServices=- För tjänster inkluderar rapporten momsen på betalningar som faktiskt har tagits emot eller betalats på basis av betalningsdatum. +RulesVATInProducts=- För materiella tillgångar inkluderar rapporten momsen på basis av betalningsdatum. +RulesVATDueServices=- För tjänster inkluderar rapporten moms på förfallna fakturor, betalda eller ej, baserat på fakturadatum. +RulesVATDueProducts=- För materiella tillgångar inkluderar rapporten momsen på förfallna fakturor, baserat på fakturadatum. OptionVatInfoModuleComptabilite=Anmärkning: För materiella tillgångar, bör det använda dagen för leverans att vara mer rättvis. ThisIsAnEstimatedValue=Det här är en förhandsgranskning, baserad på affärshändelser och inte från det slutliga ledgardabellen, så slutresultatet kan skilja sig från dessa förhandsgranskningsvärden PercentOfInvoice=%% / Faktura @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Rapporten om omsättning som TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Rapporten om omsättning samlad per försäljningsskattesats är inte tillgänglig. Denna rapport är endast tillgänglig för fakturering av omsättning. CalculationMode=Beräkning läge AccountancyJournal=Redovisningskodsloggbok -ACCOUNTING_VAT_SOLD_ACCOUNT=Bokföringskonto som standard för moms på försäljning (används om den inte är definierad i momsordlista) -ACCOUNTING_VAT_BUY_ACCOUNT=Bokföringskonto som standard för moms vid köp (används om det inte är definierat i inställningen för momsordlista) -ACCOUNTING_VAT_PAY_ACCOUNT=Bokföringskonto som standard för att betala moms -ACCOUNTING_ACCOUNT_CUSTOMER=Redovisningskonto som används för kundens tredje part +ACCOUNTING_VAT_SOLD_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för moms på försäljning (används om det inte har definierats i inställningar för momsordbok) +ACCOUNTING_VAT_BUY_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för moms på inköp (används om det inte har definierats i inställningar för momsordbok) +ACCOUNTING_VAT_PAY_ACCOUNT=Konto (från kontoplanen) som ska användas som standardkonto för att betala moms +ACCOUNTING_ACCOUNT_CUSTOMER=Konto (från kontoplanen) används för "kund" tredje part ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Det dedikerade bokföringskontot som definieras på tredjepartskort kommer endast att användas för Subledger-bokföring. Den här kommer att användas till huvudbokföring och som standardvärde för Subledger-redovisning om en dedikerad kundkonto på tredjeparten inte är definierat. -ACCOUNTING_ACCOUNT_SUPPLIER=Redovisningskonto som används för leverantörs tredje part +ACCOUNTING_ACCOUNT_SUPPLIER=Konto (från kontoplanen) som används för "leverantörens" tredje part ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Det dedikerade bokföringskontot som definieras på tredje partskort kommer endast att användas för Subledger-bokföring. Den här kommer att användas för huvudboken och som standardvärde för Subledger-bokföring om en dedikerad leverantörsredovisningskonto på tredjeparten inte är definierad. ConfirmCloneTax=Bekräfta klon av en social / skattemässig skatt ConfirmCloneVAT=Bekräfta klonen på en momsdeklaration @@ -289,14 +291,15 @@ ReportPurchaseTurnover=Fakturerad inköpsomsättning ReportPurchaseTurnoverCollected=Inköpt omsättning IncludeVarpaysInResults = Inkludera olika betalningar i rapporter IncludeLoansInResults = Inkludera lån i rapporter -InvoiceLate30Days = Late (> 30 days) -InvoiceLate15Days = Late (15 to 30 days) -InvoiceLateMinus15Days = Late (< 15 days) -InvoiceNotLate = To be collected (< 15 days) -InvoiceNotLate15Days = To be collected (15 to 30 days) -InvoiceNotLate30Days = To be collected (> 30 days) -InvoiceToPay=To pay (< 15 days) -InvoiceToPay15Days=To pay (15 to 30 days) -InvoiceToPay30Days=To pay (> 30 days) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +InvoiceLate30Days = Försenad (> 30 dagar) +InvoiceLate15Days = Försenad (15 till 30 dagar) +InvoiceLateMinus15Days = Försenad (< 15 dagar) +InvoiceNotLate = Ska samlas in (< 15 dagar) +InvoiceNotLate15Days = Ska samlas in (15 till 30 dagar) +InvoiceNotLate30Days = Ska samlas in (> 30 dagar) +InvoiceToPay=Att betala (< 15 dagar) +InvoiceToPay15Days=Att betala (15 till 30 dagar) +InvoiceToPay30Days=Att betala (> 30 dagar) +ConfirmPreselectAccount=Förvälj bokföringskod +ConfirmPreselectAccountQuestion=Är du säker på att du vill förvälja de %s valda raderna med denna bokföringskod? +AmountPaidMustMatchAmountOfDownPayment=Betalt belopp måste matcha handpenningens belopp diff --git a/htdocs/langs/sv_SE/contracts.lang b/htdocs/langs/sv_SE/contracts.lang index e644f24c5e6..539228180b3 100644 --- a/htdocs/langs/sv_SE/contracts.lang +++ b/htdocs/langs/sv_SE/contracts.lang @@ -1,59 +1,60 @@ # Dolibarr language file - Source file is en_US - contracts -ContractsArea=Kontrakt område -ListOfContracts=Förteckning över avtal +ContractsArea=Kontraktsområde +ListOfContracts=Lista med kontrakt AllContracts=Alla kontrakt -ContractCard=Kontrakt kort -ContractStatusNotRunning=Inte kör -ContractStatusDraft=Förslag +ContractCard=Kontraktkort +ContractStatusNotRunning=Inte igång +ContractStatusDraft=Utkast ContractStatusValidated=Bekräftat ContractStatusClosed=Stängt -ServiceStatusInitial=Inte löpande -ServiceStatusRunning=Löpande -ServiceStatusNotLate=Löpande, inte löpt ut +ServiceStatusInitial=Inte pågående +ServiceStatusRunning=Pågående +ServiceStatusNotLate=Pågående, inte löpt ut ServiceStatusNotLateShort=Inte löpt ut -ServiceStatusLate=Löpande, löpt ut -ServiceStatusLateShort=Utgångna +ServiceStatusLate=Pågående, löpt ut +ServiceStatusLateShort=Utgånget ServiceStatusClosed=Stängt ShowContractOfService=Visa servicekontrakt Contracts=Kontrakt -ContractsSubscriptions=Avtal / Prenumerationer -ContractsAndLine=Kontrakt och kontraktslängd +ContractsSubscriptions=Avtal/prenumerationer +ContractsAndLine=Kontrakt och kontraktsrader Contract=Kontrakt -ContractLine=Kontraktslinje -Closing=Stängning +ContractLine=Kontraktsrad +ContractLines=Kontraktsrader +Closing=Stänger NoContracts=Inga kontrakt MenuServices=Tjänster -MenuInactiveServices=Tjänster inte aktiv -MenuRunningServices=Löpande tjänster -MenuExpiredServices=Utlöpta tjänster +MenuInactiveServices=Tjänster inte aktiva +MenuRunningServices=Pågående tjänster +MenuExpiredServices=Utgångna tjänster MenuClosedServices=Stängda tjänster NewContract=Nytt kontrakt -NewContractSubscription=Nytt avtal eller abonnemang +NewContractSubscription=Nytt avtal eller prenumeration AddContract=Skapa kontrakt -DeleteAContract=Ta bort ett kontrakt +DeleteAContract=Ta bort kontrakt ActivateAllOnContract=Aktivera alla tjänster CloseAContract=Stäng ett kontrakt ConfirmDeleteAContract=Är du säker på att du vill radera detta kontrakt och alla dess tjänster? -ConfirmValidateContract=Är du säker på att du vill bekräfta detta kontrakt under namnet %s ? +ConfirmValidateContract=Är du säker på att du vill bekräfta kontrakt under namnet %s? ConfirmActivateAllOnContract=Detta öppnar alla tjänster (ännu inte aktiva). Är du säker på att du vill öppna alla tjänster? -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? -ConfirmCloseService=Är du säker på att du vill stänga den här tjänsten med datum %s ? -ValidateAContract=Bekräfta ett kontrakt +ConfirmCloseContract=Detta kommer att stänga alla tjänster (förfallna eller inte). Är du säker på att du vill avsluta det här avtalet? +ConfirmCloseService=Är du säker på att du vill stänga den här tjänsten med datum %s? +ValidateAContract=Bekräfta kontrakt ActivateService=Aktivera tjänsten -ConfirmActivateService=Är du säker på att du vill aktivera den här tjänsten med datum %s ? -RefContract=Avtalsreferens +ConfirmActivateService=Är du säker på att du vill aktivera den här tjänsten med datum %s? +RefContract=Kontraktsreferens DateContract=Kontraktsdatum DateServiceActivate=Aktiveringsdatum för tjänst -ListOfServices=Förteckning över tjänster -ListOfInactiveServices=Förteckning över ej aktiva tjänster -ListOfExpiredServices=Förteckning över utlöpta aktiva tjänster +ListOfServices=Lista över tjänster +ListOfInactiveServices=Lista över inaktiva tjänster +ListOfExpiredServices=Lista över utgångna aktiva tjänster ListOfClosedServices=Lista över stängda tjänster -ListOfRunningServices=Förteckning över löpande tjänster +ListOfRunningServices=Lista över pågående tjänster NotActivatedServices=Inaktiva tjänster (bland bekräftades kontrakt) -BoardNotActivatedServices=Tjänster att aktivera bland bekräftades kontrakt +BoardNotActivatedServices=Tjänster att aktivera bland bekräftade kontrakt BoardNotActivatedServicesShort=Tjänster att aktivera -LastContracts=Senaste %s kontrakten -LastModifiedServices=Senaste %s modifierade tjänster +LastContracts=Senaste %s kontrakt +LastModifiedServices=Senaste %s ändrade tjänster ContractStartDate=Startdatum ContractEndDate=Slutdatum DateStartPlanned=Planerat startdatum @@ -65,31 +66,31 @@ DateStartRealShort=Verkligt startdatum DateEndReal=Verkligt slutdatum DateEndRealShort=Verkligt slutdatum CloseService=Stäng tjänst -BoardRunningServices=Aktiva tjänster -BoardRunningServicesShort=Aktiva tjänster -BoardExpiredServices=Avslutade tjänster -BoardExpiredServicesShort=Avslutade tjänster +BoardRunningServices=Pågående tjänster +BoardRunningServicesShort=Pågående tjänster +BoardExpiredServices=Utgångna tjänster +BoardExpiredServicesShort=Utgångna tjänster ServiceStatus=Status för tjänst -DraftContracts=Utkast avtal +DraftContracts=Avtalsutkast CloseRefusedBecauseOneServiceActive=Kontraktet kan inte stängas eftersom det finns minst en öppen tjänst på den -ActivateAllContracts=Aktivera alla kontraktslinjer -CloseAllContracts=Stäng alla kontrakt linjer -DeleteContractLine=Ta bort ett kontrakt linje -ConfirmDeleteContractLine=Är du säker på att du vill radera denna kontraktslängd? -MoveToAnotherContract=Flytta tjänster i ett annat avtal. -ConfirmMoveToAnotherContract=Jag valde ny målavtal och bekräfta jag vill flytta den här tjänsten i detta avtal. -ConfirmMoveToAnotherContractQuestion=Välj i vilket befintligt kontrakt (av samma tredje part), vill du flytta denna tjänst till? -PaymentRenewContractId=Förnya kontrakt linje (nummer %s) +ActivateAllContracts=Aktivera alla kontraktsrader +CloseAllContracts=Stäng alla kontraktsrader +DeleteContractLine=Radera en kontraktsrad +ConfirmDeleteContractLine=Är du säker på att du vill radera denna kontraktsrad? +MoveToAnotherContract=Flytta tjänster till ett annat avtal. +ConfirmMoveToAnotherContract=Jag valde nytt målavtal och bekräftar att jag vill flytta den här tjänsten i detta avtal. +ConfirmMoveToAnotherContractQuestion=Välj vilket befintligt kontrakt (hos samma tredjepart) du vill flytta denna tjänst till? +PaymentRenewContractId=Förnya kontrakt %s (tjänst %s) ExpiredSince=Utgångsdatum NoExpiredServices=Inga utgångna aktiva tjänster ListOfServicesToExpireWithDuration=Förteckning över tjänster som löper ut inom %s dagar ListOfServicesToExpireWithDurationNeg=Förteckning över tjänster som löpt ut sedan mer än %s dagar ListOfServicesToExpire=Förteckning över tjänster som löper ut -NoteListOfYourExpiredServices=Denna förteckning omfattar endast tjänster från avtal med tredje part i förhållande till vilka du är säljare. +NoteListOfYourExpiredServices=Denna förteckning omfattar endast tjänster från avtal med tredjepart i förhållande till vilka du är säljare. StandardContractsTemplate=Standardkontrakt mall ContactNameAndSignature=För %s, namn och underskrift: -OnlyLinesWithTypeServiceAreUsed=Endast rader med typ "Service" kommer att klonas. -ConfirmCloneContract=Är du säker på att du vill klona kontraktet %s ? +OnlyLinesWithTypeServiceAreUsed=Endast rader med typ "Tjänst" kommer att klonas. +ConfirmCloneContract=Är du säker på att du vill klona kontraktet %s? LowerDateEndPlannedShort=Lägre planerat slutdatum för aktiva tjänster SendContractRef=Upphandlingsinformation __REF__ OtherContracts=Övriga kontrakt @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Undertecknande kontrakt kundkontakt HideClosedServiceByDefault=Dölj avslutade tjänster som standard ShowClosedServices=Visa avslutade tjänster HideClosedServices=Dölj avslutade tjänster +UserStartingService=Användarstarttjänst +UserClosingService=Användarstängningstjänst diff --git a/htdocs/langs/sv_SE/cron.lang b/htdocs/langs/sv_SE/cron.lang index c0dd13b0651..957ca64b110 100644 --- a/htdocs/langs/sv_SE/cron.lang +++ b/htdocs/langs/sv_SE/cron.lang @@ -26,7 +26,7 @@ CronCommand=Kommando CronList=Schemalagda jobb CronDelete=Radera schemalagda jobb CronConfirmDelete=Är du säker på att du vill ta bort dessa schemalagda jobb? -CronExecute=Starta planerat jobb +CronExecute=Kör nu CronConfirmExecute=Är du säker på att du vill utföra dessa schemalagda jobb nu? CronInfo=Schemalagd arbetsmodul gör det möjligt att schemalägga jobb för att utföra dem automatiskt. Jobb kan också startas manuellt. CronTask=Jobb @@ -58,7 +58,7 @@ CronNote=Kommentar CronFieldMandatory=Fält %s är obligatoriskt CronErrEndDateStartDt=Slutdatum kan inte vara före startdatum StatusAtInstall=Status vid modulinstallation -CronStatusActiveBtn=Schemalägg +CronStatusActiveBtn=Aktivera schemaläggning CronStatusInactiveBtn=Inaktivera CronTaskInactive=Detta arbete är inaktiverat (ej schemalagt) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Gå till menyn "Hem - Adminverktyg JobDisabled=Jobb inaktiverat MakeLocalDatabaseDumpShort=Lokal databas säkerhetskopia MakeLocalDatabaseDump=Skapa en lokal databasdump. Parametrarna är: komprimering ('gz' eller 'bz' eller 'none'), säkerhetskopieringstyp ('mysql', 'pgsql', 'auto'), 1, 'auto' eller filnamn att bygga, antal backupfiler för att hålla +MakeSendLocalDatabaseDumpShort=Skicka säkerhetskopiering av lokal databas +MakeSendLocalDatabaseDump=Skicka säkerhetskopiering av lokal databas via e-post. Parametrarna är: till, från, ämne, meddelande, filnamn (namn på fil som skickades), filter ('sql' endast för säkerhetskopiering av databas) +BackupIsTooLargeSend=Tyvärr, den senaste säkerhetskopian är för stor för att skickas med e-post +CleanUnfinishedCronjobShort=Städa oavslutat cronjob +CleanUnfinishedCronjob=Rensa cronjob som har fastnat i bearbetningen när processen inte längre körs WarningCronDelayed=Uppmärksamhet, för prestationsändamål, vad som än är nästa datum för utförande av aktiverade jobb, kan dina jobb försenas till högst %s timmar innan de körs. DATAPOLICYJob=Resning och anonymisering av data JobXMustBeEnabled=Jobb %s måste vara aktiverat +EmailIfError=E-post för varning vid fel +ErrorInBatch=Fel vid körning av jobbet %s + # Cron Boxes LastExecutedScheduledJob=Senast utfört schemalagda arbete NextScheduledJobExecute=Nästa schemalagda arbete att köra NumberScheduledJobError=Antal schemalagda arbete med fel +NumberScheduledJobNeverFinished=Antal schemalagda jobb aldrig avslutade diff --git a/htdocs/langs/sv_SE/datapolicy.lang b/htdocs/langs/sv_SE/datapolicy.lang new file mode 100644 index 00000000000..dc2f51f319c --- /dev/null +++ b/htdocs/langs/sv_SE/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Sekretesspolicy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul för att hantera sekretess (i enlighet med GDPR) + +# +# Administration page +# +datapolicySetup = Inställning av sekretesspolicy +Deletion = Radering av data +datapolicySetupPage = Beroende på lagarna i ditt land (exempelvis artikel 5 i GDPR) måste personuppgifter sparas under en period som inte överstiger vad som är nödvändigt för de ändamål för vilka de samlades in, förutom för arkivändamål.
    Raderingen kommer att göras automatiskt efter en viss varaktighet utan händelse (längden som du kommer att ha angett nedan). +NB_MONTHS = %s månader +ONE_YEAR = 1 år +NB_YEARS = %s år +DATAPOLICY_TIERS_CLIENT = Kund +DATAPOLICY_TIERS_PROSPECT = Prospekt +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospekt/kund +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Inte prospekt eller kund +DATAPOLICY_TIERS_FOURNISSEUR = Leverantör +DATAPOLICY_CONTACT_CLIENT = Kund +DATAPOLICY_CONTACT_PROSPECT = Prospekt +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospekt/kund +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Inte prospekt eller kund +DATAPOLICY_CONTACT_FOURNISSEUR = Leverantör +DATAPOLICY_ADHERENT = Medlem +DATAPOLICY_Tooltip_SETUP = Typ av kontakt - ange dina val för varje typ. +DATAPOLICYMail = E-postinställningar +DATAPOLICYSUBJECTMAIL = Ärenderad för e-post +DATAPOLICYCONTENTMAIL = Innehållet i e-post +DATAPOLICYSUBSITUTION = Du kan använda följande variabler i din e-post (LINKACCEPT gör det möjligt att skapa en länk som registrerar personens samtycke, LINKREFUSED gör det möjligt att registrera personens nekande): +DATAPOLICYACCEPT = Meddelande efter överenskommelse +DATAPOLICYREFUSE = Meddelande efter oenighet +SendAgreementText = Du kan skicka e-post angående GDPR till alla dina relevanta kontakter (som ännu inte har fått ett mejl och som du inte har registrerat något för om deras GDPR-avtal). För att göra detta, använd följande knapp. +SendAgreement = Skicka e-post +AllAgreementSend = All e-post har skickats +TXTLINKDATAPOLICYACCEPT = Text för länken "godkänn" +TXTLINKDATAPOLICYREFUSE = Text för länken "neka" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: hantering av personuppgifter +DATAPOLICY_consentement = Samtycke inhämtat för behandling av personuppgifter +DATAPOLICY_opposition_traitement = Motsätter sig hantering av personuppgifter +DATAPOLICY_opposition_prospection = Motsätter sig hantering av personuppgifter i prospekteringssyfte + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymisera en tredjepart +DATAPOLICY_POPUP_ANONYME_TEXTE = Du kan inte ta bort den här kontakten från Dolibarr eftersom det finns relaterade objekt. I enlighet med GDPR kommer du att göra all denna data anonym för att uppfylla dina skyldigheter. Vill du fortsätta? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilitet GDPR +DATAPOLICY_PORTABILITE_TITLE = Export av personuppgifter +DATAPOLICY_PORTABILITE_CONFIRMATION = Du vill exportera den här kontaktens personuppgifter. Är du säker? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymiserade %s + +# V2 +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_date = Datum för godkännande/nekande av GDPR +DATAPOLICY_send = Datum då sekretessförfrågan skickats +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_SEND = Skicka GDPR-förfrågan +MailSent = E-post har skickats + +# ERROR +ErrorSubjectIsRequired = Fel: Ämnet för e-post är obligatoriskt. Ange det i modulinställningen +=På grund av ett tekniskt problem kunde vi inte registrera ditt val. Vi ber om ursäkt för det. Kontakta oss för att skicka oss ditt val. +NUMBER_MONTH_BEFORE_DELETION = Antal månader före radering diff --git a/htdocs/langs/sv_SE/deliveries.lang b/htdocs/langs/sv_SE/deliveries.lang index a2260392827..2f9d5d3b544 100644 --- a/htdocs/langs/sv_SE/deliveries.lang +++ b/htdocs/langs/sv_SE/deliveries.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Leverans DeliveryRef=Er referens -DeliveryCard=Kvittokort +DeliveryCard=Kvitto DeliveryOrder=Leveranskvitto DeliveryDate=Leveransdatum CreateDeliveryOrder=Skapa orderbekräftelse DeliveryStateSaved=Leveransstatus sparad SetDeliveryDate=Ställ in leveransdatum ValidateDeliveryReceipt=Bekräfta leveranskvitto -ValidateDeliveryReceiptConfirm=Är du säker att du vill bekräfta denna leveranskvittering? -DeleteDeliveryReceipt=Radera leveranskvittens +ValidateDeliveryReceiptConfirm=Är du säker att du vill bekräfta denna leverans? +DeleteDeliveryReceipt=Radera leverans DeleteDeliveryReceiptConfirm=Är du säker att du vill ta bort orderbekräftelse %s? -DeliveryMethod=Leveransmetod -TrackingNumber=Spårningsnummer -DeliveryNotValidated=Leverans är inte bekräftat -StatusDeliveryCanceled=Annullerad +DeliveryMethod=Leveranssätt +TrackingNumber=Spårnummer +DeliveryNotValidated=Leverans är inte bekräftad +StatusDeliveryCanceled=Avbruten StatusDeliveryDraft=Utkast StatusDeliveryValidated=Mottagna # merou PDF model -NameAndSignature=Namn och Signatur: -ToAndDate=To___________________________________ den ____ / _____ / __________ +NameAndSignature=Namn och signatur: +ToAndDate=Till___________________________________ den ____ / _____ / __________ GoodStatusDeclaration=Har tagit emot varan ovan i gott skick, -Deliverer=Bud: +Deliverer=Speditör: Sender=Avsändare Recipient=Mottagare ErrorStockIsNotEnough=Det finns inte tillräckligt i lager @@ -30,4 +30,4 @@ NonShippable=Inte sändbara ShowShippableStatus=Visa leveransstatus ShowReceiving=Visa orderbekräftelse NonExistentOrder=Icke-existerande ordning -StockQuantitiesAlreadyAllocatedOnPreviousLines = Lagerkvantiteter som redan tilldelats på tidigare rader +StockQuantitiesAlreadyAllocatedOnPreviousLines = Lagerantal som redan tilldelats på tidigare rader diff --git a/htdocs/langs/sv_SE/dict.lang b/htdocs/langs/sv_SE/dict.lang index ec142df29fe..daad01c28d8 100644 --- a/htdocs/langs/sv_SE/dict.lang +++ b/htdocs/langs/sv_SE/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs +CivilityMMEShort=Mrs CivilityMR=Mr +CivilityMRShort=Mr CivilityMLE=Ms CivilityMTRE=Master CivilityDR=Doktor diff --git a/htdocs/langs/sv_SE/donations.lang b/htdocs/langs/sv_SE/donations.lang index d8c64be326e..1b18f536261 100644 --- a/htdocs/langs/sv_SE/donations.lang +++ b/htdocs/langs/sv_SE/donations.lang @@ -1,35 +1,35 @@ # Dolibarr language file - Source file is en_US - donations Donation=Donation Donations=Donationer -DonationRef=Donation ref. +DonationRef=Donationsref. Donor=Givare AddDonation=Skapa en donation NewDonation=Ny donation -DeleteADonation=Ta bort en gåva -ConfirmDeleteADonation=Är du säker att du vill ta bort denna gåva? -PublicDonation=Offentliga donation -DonationsArea=Donationer område -DonationStatusPromiseNotValidated=Förslag löfte +DeleteADonation=Radera donatio +ConfirmDeleteADonation=Är du säker att du vill ta bort denna donation? +PublicDonation=Offentlig donation +DonationsArea=Donationsområde +DonationStatusPromiseNotValidated=Utkast löfte DonationStatusPromiseValidated=Bekräftat löfte -DonationStatusPaid=Donation fått -DonationStatusPromiseNotValidatedShort=Förslag -DonationStatusPromiseValidatedShort=Bekräftat +DonationStatusPaid=Donation mottagen +DonationStatusPromiseNotValidatedShort=Utkast +DonationStatusPromiseValidatedShort=Bekräftad DonationStatusPaidShort=Mottagna -DonationTitle=Donation kvitto +DonationTitle=Donationskvitto DonationDate=Donationsdatum DonationDatePayment=Betalningsdag ValidPromess=Bekräfta löfte -DonationReceipt=Donation kvitto -DonationsModels=Dokument modeller för donation kvitton -LastModifiedDonations=Senast %s ändrade gåvor -DonationRecipient=Donation mottagaren -IConfirmDonationReception=Mottagaren förklarar mottagning, som en donation, av följande belopp -MinimumAmount=Minsta belopp är% s -FreeTextOnDonations=Fri text för att visa i sidfoten +DonationReceipt=Donationskvitto +DonationsModels=Dokumentmodeller för donationskvitton +LastModifiedDonations=Senast %s ändrade donationer +DonationRecipient=Donation mottagare +IConfirmDonationReception=Mottagaren tar, som donation, emot följande belopp +MinimumAmount=Minsta belopp är %s +FreeTextOnDonations=Fritext att visa i sidfot FrenchOptions=Alternativ för Frankrike -DONATION_ART200=Visar artikel 200 från CGI om du är orolig -DONATION_ART238=Visar artikel 238 från CGI om du är orolig -DONATION_ART885=Visar artikel 885 från CGI om du är orolig +DONATION_ART200=Visar artikel 200 från CGI om du är berörd +DONATION_ART238=Visar artikel 238 från CGI om du är berörd +DONATION_ART885=Visar artikel 885 från CGI om du är berörd DonationPayment=Donation DonationValidated=Gåva %s bekräftad DonationUseThirdparties=Använd en befintlig tredjepart som givarkoordinator diff --git a/htdocs/langs/sv_SE/ecm.lang b/htdocs/langs/sv_SE/ecm.lang index 39aaeec209c..85ff1196a46 100644 --- a/htdocs/langs/sv_SE/ecm.lang +++ b/htdocs/langs/sv_SE/ecm.lang @@ -5,8 +5,9 @@ ECMSectionManual=Manuell katalog ECMSectionAuto=Automatisk katalog ECMSectionsManual=Manuell struktur ECMSectionsAuto=Automatisk struktur +ECMSectionsMedias=Mediaträd ECMSections=Kataloger -ECMRoot=ECM Root +ECMRoot=ECM-root ECMNewSection=Ny katalog ECMAddSection=Lägg till katalog ECMCreationDate=Datum för skapande @@ -14,36 +15,38 @@ ECMNbOfFilesInDir=Antalet filer i katalogen ECMNbOfSubDir=Antal underkataloger ECMNbOfFilesInSubDir=Antalet filer i underkataloger ECMCreationUser=Skapare -ECMArea=DMS/ECM yta -ECMAreaDesc=Med DMS / ECM-området (Document Management System / Electronic Content Management) kan du spara, dela och söka snabbt alla typer av dokument i Dolibarr. -ECMAreaDesc2=* Automatisk kataloger fylls automatiskt när man lägger till dokument från kort av ett element.
    * Manuell kataloger kan användas för att spara dokument inte är knutna till ett visst element. -ECMSectionWasRemoved=Mapp %s har tagits bort. -ECMSectionWasCreated=Mapp %s har skapats. -ECMSearchByKeywords=Sök på nyckelord -ECMSearchByEntity=Sök på objektet -ECMSectionOfDocuments=Register över handlingar +ECMArea=DMS/ECM område +ECMAreaDesc=Med DMS/ECM-området (Document Management System/Electronic Content Management) kan du spara, dela och söka snabbt i alla typer av dokument. +ECMAreaDesc2a=* Manuella kataloger kan användas för att spara dokument som inte är kopplade till ett visst element. +ECMAreaDesc2b=* Automatiska kataloger fylls automatiskt när du lägger till dokument från sidan av ett element. +ECMAreaDesc3=* Mediakataloger är filer i underkatalogen /medias i dokumentkatalogen, läsbara av alla utan att behöva logga in och utan att filen måste delas. Den används för att lagra bildfiler från e-post eller modulen webbplatser. +ECMSectionWasRemoved=Katalogen %s har raderats. +ECMSectionWasCreated=Katalogen %s har skapats. +ECMSearchByKeywords=Sök nyckelord +ECMSearchByEntity=Sök objekt +ECMSectionOfDocuments=Register över dokument ECMTypeAuto=Automatisk ECMDocsBy=Dokument länkade till %s -ECMNoDirectoryYet=Ingen katalog skapas +ECMNoDirectoryYet=Ingen katalog skapad ShowECMSection=Visa katalog -DeleteSection=Ta bort katalog -ConfirmDeleteSection=Vänligen bekräfta att du vill ta bort mappen %s? +DeleteSection=Radera katalog +ConfirmDeleteSection=Bekräfta att du vill ta bort katalogen %s? ECMDirectoryForFiles=Relativ katalog för filer -CannotRemoveDirectoryContainsFilesOrDirs=Borttagning är inte möjlig eftersom det innehåller några filer eller underkataloger -CannotRemoveDirectoryContainsFiles=Borttagning är inte möjlig eftersom det innehåller några filer -ECMFileManager=Filhanteraren +CannotRemoveDirectoryContainsFilesOrDirs=Borttagning är inte möjlig eftersom den innehåller några filer eller underkataloger +CannotRemoveDirectoryContainsFiles=Borttagning är inte möjlig eftersom den innehåller filer +ECMFileManager=Filhanterare ECMSelectASection=Välj en mapp i strukturen... -DirNotSynchronizedSyncFirst=Den här katalogen verkar vara skapad eller modifierad utanför ECM-modulen. Du måste klicka på "Resync" -knappen först för att synkronisera skivan och databasen för att hämta innehåll i den här katalogen. +DirNotSynchronizedSyncFirst=Den här katalogen verkar vara skapad eller ändrad utanför ECM-modulen. Du måste klicka på knappen "Uppdatera" först för att synkronisera hårddisken och databasen för att hämta innehåll i den här katalogen. ReSyncListOfDir=Uppdatera lista med mappar HashOfFileContent=Hash av filinnehåll -NoDirectoriesFound=Inga mappar funna +NoDirectoriesFound=Inga kataloger funna FileNotYetIndexedInDatabase=Filen är inte indexerad i databasen (försök ladda upp igen) -ExtraFieldsEcmFiles=Extrafields Ecm Files -ExtraFieldsEcmDirectories=Extrafields Ecm-kataloger -ECMSetup=ECM-inställning -GenerateImgWebp=Kopiera alla bilder med en annan version med .webp-format -ConfirmGenerateImgWebp=Om du bekräftar kommer du generera en bild i .webp format för alla bilder som finns i denna mapp (undermappar är inte inkluderade) +ExtraFieldsEcmFiles=Extrafält ECM-filer +ExtraFieldsEcmDirectories=Extrafält ECM-kataloger +ECMSetup=ECM-inställningar +GenerateImgWebp=Duplicera alla bilder i en annan version med .webp-format +ConfirmGenerateImgWebp=Om du bekräftar kommer du generera en bild i .webp-format för alla bilder som finns i denna mapp (undermappar är inte inkluderade) ConfirmImgWebpCreation=Bekräfta kloning av alla bilder -SucessConvertImgWebp=Bilder blev klonade -ECMDirName=Dir name -ECMParentDirectory=Parent directory +SucessConvertImgWebp=Bilder har klonats +ECMDirName=Katalognamn +ECMParentDirectory=Överordnad katalog diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang index 6eac66b349a..f64c8d9d52b 100644 --- a/htdocs/langs/sv_SE/errors.lang +++ b/htdocs/langs/sv_SE/errors.lang @@ -9,10 +9,12 @@ ErrorBadMXDomain=E-post %s verkar felaktig (domänen har ingen giltig MX-post) ErrorBadUrl=Url %s är felaktig ErrorBadValueForParamNotAString=Dåligt värde för din parameter. Det lägger till i allmänhet när översättning saknas. ErrorRefAlreadyExists=Referens %s finns redan. +ErrorTitleAlreadyExists=Titel %s finns redan. ErrorLoginAlreadyExists=Logga %s finns redan. ErrorGroupAlreadyExists=Grupp %s finns redan. ErrorEmailAlreadyExists=E-post %s finns redan. ErrorRecordNotFound=Spela in hittades inte. +ErrorRecordNotFoundShort=Hittades inte ErrorFailToCopyFile=Det gick inte att kopiera filen "%s" till "%s". ErrorFailToCopyDir=Misslyckades att kopiera katalogen ' %s ' i ' %s '. ErrorFailToRenameFile=Det gick inte att byta namn på filen '%s "till" %s ". @@ -27,9 +29,9 @@ ErrorThisContactIsAlreadyDefinedAsThisType=Denna kontakt redan har definierats s ErrorCashAccountAcceptsOnlyCashMoney=Detta bankkonto är en kontant-konto, så det tar emot betalningar av typ kontanter endast. ErrorFromToAccountsMustDiffers=Källa och mål bankkonton måste vara olika. ErrorBadThirdPartyName=Dåligt värde för tredje parts namn -ForbiddenBySetupRules=Forbidden by setup rules +ForbiddenBySetupRules=Förbjudet enligt inställningsregler ErrorProdIdIsMandatory=%s är obligatoriskt -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=Bokföringskoden för kunden %s är obligatorisk ErrorBadCustomerCodeSyntax=Dålig syntax för kundkod ErrorBadBarCodeSyntax=Dålig syntax för streckkod. Kan du ställa in en dålig streckkodstyp eller du definierade en streckkodsmask för numrering som inte matchar värdet skannat. ErrorCustomerCodeRequired=Kunden som erfordras @@ -47,6 +49,7 @@ ErrorBadImageFormat=Bildfilen har inte ett format som stöds (Din PHP stöder in ErrorBadDateFormat=Värde "%s" har fel datumformat ErrorWrongDate=Datum är inte korrekt! ErrorFailedToWriteInDir=Misslyckades med att skriva i katalogen %s +ErrorFailedToBuildArchive=Det gick inte att bygga arkivfilen %s ErrorFoundBadEmailInFile=Hittade felaktig e-syntax för %s rader i filen (t.ex. linje %s med email = %s) ErrorUserCannotBeDelete=Användaren kan inte raderas. Kanske är det associerat med Dolibarr-enheter. ErrorFieldsRequired=Vissa obligatoriska fält har lämnats tomma. @@ -66,7 +69,7 @@ ErrorDestinationAlreadyExists=En annan fil med namnet %s finns redan. ErrorPartialFile=Handlingar den mottagit inte helt av server. ErrorNoTmpDir=Tillfälliga directy %s inte existerar. ErrorUploadBlockedByAddon=Ladda upp blockeras av en PHP / Apache plugin. -ErrorFileSizeTooLarge=Filen är för stor. +ErrorFileSizeTooLarge=Filstorleken är för stor eller filen tillhandahålls inte. ErrorFieldTooLong=Fältet %s är för långt. ErrorSizeTooLongForIntType=Storlek för lång för int typ (%s siffror max) ErrorSizeTooLongForVarcharType=Storlek för lång för sträng typ (%s tecken max) @@ -75,7 +78,7 @@ ErrorNoValueForCheckBoxType=Vänligen fyll i värde för krysslista ErrorNoValueForRadioType=Vänligen fyll i värde för radiolista ErrorBadFormatValueList=Listvärdet kan inte ha mer än ett komma: %s , men behöver minst en: nyckel, värde ErrorFieldCanNotContainSpecialCharacters=Fältet %s får inte innehålla specialtecken. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Fältet %s får inte innehålla specialtecken eller stora bokstäver och kan inte innehålla enda nummer. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Fältet %s får inte innehålla specialtecken, inte heller versaler och måste börja med ett alfabetiskt tecken (a-z) ErrorFieldMustHaveXChar=Fältet %s måste ha minst %s tecken. ErrorNoAccountancyModuleLoaded=Ingen bokföring modul aktiverad ErrorExportDuplicateProfil=Detta profilnamn finns redan för denna export. @@ -85,17 +88,18 @@ ErrorCantSaveADoneUserWithZeroPercentage=Kan inte spara en åtgärd med "status ErrorRefAlreadyExists=Referens %s finns redan. ErrorPleaseTypeBankTransactionReportName=Var god ange kontoutdragsnamnet där posten ska rapporteras ErrorRecordHasChildren=Misslyckades med att radera rekord eftersom det har några barnrekord. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s +ErrorRecordHasAtLeastOneChildOfType=Objekt %s har minst en underkategori av typen %s ErrorRecordIsUsedCantDelete=Kan inte radera posten. Den används redan eller ingår i ett annat objekt. ErrorModuleRequireJavascript=Javascript måste inte avaktiveras att ha denna funktion fungerar. Aktivera / inaktivera Javascript, gå till menyn Hem-> Inställningar-> Display. ErrorPasswordsMustMatch=Båda skrivit lösenord måste matcha varandra ErrorContactEMail=Ett tekniskt fel uppstod. Vänligen kontakta administratören till följande email %s och ge felkoden %s i ditt meddelande, eller lägg till en skärmkopia av den här sidan. ErrorWrongValueForField=Fält %s : ' %s ' överensstämmer inte med regexregeln %s +ErrorHtmlInjectionForField=Fält %s : Värdet ' %s ' innehåller inte tillåten data ErrorFieldValueNotIn=Fält %s : ' %s ' är inte ett värde som finns i fält %s av %s ErrorFieldRefNotIn=Fält %s : ' %s ' är inte en %s existerande referens +ErrorMultipleRecordFoundFromRef=Flera poster hittades vid sökning från ref %s . Inget sätt att veta vilket ID du ska använda. ErrorsOnXLines=%s hittade fel ErrorFileIsInfectedWithAVirus=Antivirusprogrammet inte har kunnat bekräfta (fil kan vara smittade av ett virus) -ErrorSpecialCharNotAllowedForField=Speciella tecken är inte tillåtna för användning i fält "%s" ErrorNumRefModel=En hänvisning finns i databasen (%s) och är inte förenligt med denna numrering regel. Ta bort post eller bytt namn hänvisning till aktivera den här modulen. ErrorQtyTooLowForThisSupplier=Mängden är för låg för den här försäljaren eller inget pris som definieras på denna produkt för den här försäljaren ErrorOrdersNotCreatedQtyTooLow=Vissa beställningar har inte skapats på grund av för låga kvantiteter @@ -113,7 +117,7 @@ ErrorFailedToLoadRSSFile=Inte få RSS-flöde. Försök att lägga konstant MAIN_ ErrorForbidden=Tillträde beviljas ej.
    Du försöker komma åt en sida, ett område eller en funktion av en inaktiverad modul eller utan att vara i en autentiserad session eller det är inte tillåtet för din användare. ErrorForbidden2=Tillstånd för den här inloggningen kan definieras av din Dolibarr administratör från menyn %s-> %s. ErrorForbidden3=Det verkar som Dolibarr inte används genom en bestyrkt session. Ta en titt på Dolibarr inställning dokumentation för att veta hur man ska hantera verifieringar (htaccess, mod_auth eller andra ...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=Obs: rensa din webbläsares cookies för att förstöra befintliga sessioner för denna inloggning. ErrorNoImagickReadimage=Funktion imagick_readimage finns inte i denna PHP. Ingen förhandsgranskning kan vara tillgängliga. Administratörer kan inaktivera den här fliken från menyn Setup - Display. ErrorRecordAlreadyExists=Record finns redan ErrorLabelAlreadyExists=Denna etikett finns redan @@ -151,7 +155,7 @@ ErrorPHPNeedModule=Fel, din PHP måste ha modul %s installerad för att a ErrorOpenIDSetupNotComplete=Du inställning för Dolibarr konfigurationsfil möjliggör OpenID autentisering, men webbadressen OpenID tjänsten definieras inte i ständig %s ErrorWarehouseMustDiffers=Källa och mål lager måste skiljer ErrorBadFormat=Dåligt format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fel, den här medlemmen är inte länkad till någon tredje part. Länk medlem till en befintlig tredje part eller skapa en ny tredje part innan du skapar prenumeration med faktura. +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fel, den här medlemmen är inte länkad till någon tredje part. Länk medlem till en befintlig tredje part eller skapa en ny tredje part innan du skapar abonnemang mot faktura. ErrorThereIsSomeDeliveries=Fel, det finns några leveranser kopplade till denna sändning. Radering vägrade. ErrorCantDeletePaymentReconciliated=Det går inte att ta bort en betalning som hade genererat en bankpost som försonades ErrorCantDeletePaymentSharedWithPayedInvoice=Det går inte att ta bort en betalning som delas av minst en faktura med status Betald @@ -177,8 +181,8 @@ ErrorPriceExpressionInternal=Internt fel '%s' ErrorPriceExpressionUnknown=Okänt fel '%s' ErrorSrcAndTargetWarehouseMustDiffers=Källa och mål lager måste skiljer ErrorTryToMakeMoveOnProductRequiringBatchData=Fel, försök att göra en lagerrörelse utan mycket / seriell information, på produkt '%s' som kräver mycket / seriell information -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Alla inspelade mottagningar måste först verifieras (godkänd eller nekad) innan du får göra den här åtgärden -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Alla inspelade mottagningar måste först verifieras (godkända) innan de får göra den här åtgärden +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Alla registrerade mottagningar måste först verifieras (godkänd eller nekad) innan du får göra den här åtgärden +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Alla registrerade mottagningar måste först verifieras (godkända) innan de får göra den här åtgärden ErrorGlobalVariableUpdater0=HTTP-förfrågan misslyckades med felet '%s' ErrorGlobalVariableUpdater1=Ogiltigt JSON-format '%s' ErrorGlobalVariableUpdater2=Saknad parameter '%s' @@ -240,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objekt måste ha status 'Aktiv' för ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objekt måste ha statusen 'Utkast' eller 'Inaktiverad' för att aktiveras ErrorNoFieldWithAttributeShowoncombobox=Inga fält har egenskapen 'showoncombobox' till definition av objektet '%s'. Inget sätt att visa kombineraren. ErrorFieldRequiredForProduct=Fältet '%s' krävs för produkten %s +AlreadyTooMuchPostOnThisIPAdress=Du har redan skrivit för mycket på denna IP-adress. ProblemIsInSetupOfTerminal=Problemet är vid installation av terminal %s. ErrorAddAtLeastOneLineFirst=Lägg till minst en rad först ErrorRecordAlreadyInAccountingDeletionNotPossible=Fel, posten har redan överförts i bokföringen, raderingen är inte möjlig. @@ -269,19 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Du måste först ställa in ditt kontop ErrorFailedToFindEmailTemplate=Det gick inte att hitta mall med kodnamn %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Varaktighet definieras inte i tjänsten. Inget sätt att beräkna timpriset. ErrorActionCommPropertyUserowneridNotDefined=Användarens ägare krävs -ErrorActionCommBadType=Vald händelsetyp (id: %n, kod: %s) finns inte i ordlistan för händelsetyp +ErrorActionCommBadType=Vald händelsetyp (id: %s, kod: %s) finns inte i ordboken Event Type CheckVersionFail=Versionskontroll misslyckades ErrorWrongFileName=Filens namn kan inte innehålla __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Inte i ordningen för betalningsvillkor, ändra. -ErrorIsNotADraft=%s is not a draft -ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrorIsNotADraft=%s är inte ett utkast +ErrorExecIdFailed=Kan inte köra kommandot "id" +ErrorBadCharIntoLoginName=Obehörig karaktär i fältet %s +ErrorRequestTooLarge=Fel, begäran för stor eller sessionen har löpt ut +ErrorNotApproverForHoliday=Du är inte godkännaren för ledighet %s +ErrorAttributeIsUsedIntoProduct=Det här attributet används i en eller flera produktvarianter +ErrorAttributeValueIsUsedIntoProduct=Detta attributvärde används i en eller flera produktvarianter +ErrorPaymentInBothCurrency=Fel, alla belopp måste anges i samma kolumn +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Du försöker betala fakturor i valutan %s från ett konto med valutan %s +ErrorInvoiceLoadThirdParty=Det går inte att ladda tredjepartsobjekt för fakturan "%s" +ErrorInvoiceLoadThirdPartyKey=Tredjepartsnyckel "%s" inte inställd för faktura "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Radera rad tillåts inte av aktuell objektstatus +ErrorAjaxRequestFailed=Begäran misslyckades +ErrorThirpdartyOrMemberidIsMandatory=Tredje part eller medlem i partnerskap är obligatoriskt +ErrorFailedToWriteInTempDirectory=Det gick inte att skriva i den temporära katalogen +ErrorQuantityIsLimitedTo=Antalet är begränsat till %s +ErrorFailedToLoadThirdParty=Det gick inte att hitta/läsa in tredje part från id=%s, email=%s, namn=%s +ErrorThisPaymentModeIsNotSepa=Detta betalningssätt är inte ett bankkonto +ErrorStripeCustomerNotFoundCreateFirst=Stripe-kund är inte inställd för denna tredje part (eller satt till ett värde som raderats på Stripe-sidan). Skapa (eller bifoga igen) det först. +ErrorCharPlusNotSupportedByImapForSearch=IMAP-sökning kan inte söka i avsändare eller mottagare efter en sträng som innehåller tecknet + +ErrorTableNotFound=Tabell %s hittades inte +ErrorValueForTooLow=Värdet för %s är för lågt +ErrorValueCantBeNull=Värdet för %s kan inte vara null +ErrorDateOfMovementLowerThanDateOfFileTransmission=Datumet för banktransaktionen får inte vara tidigare än datumet för filöverföringen +ErrorTooMuchFileInForm=För många filer i formuläret, det maximala antalet är %s fil(er) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Din PHP-parameter upload_max_filesize (%s) är högre än PHP-parameter post_max_size (%s). Detta är inte en konsekvent installation. WarningPasswordSetWithNoAccount=Ett lösenord har ställts för den här medlemmen. Men inget användarkonto skapades. Så det här lösenordet är lagrat men kan inte användas för att logga in till Dolibarr. Den kan användas av en extern modul / gränssnitt men om du inte behöver definiera någon inloggning eller ett lösenord för en medlem kan du inaktivera alternativet "Hantera en inloggning för varje medlem" från inställningen av medlemsmodulen. Om du behöver hantera en inloggning men inte behöver något lösenord, kan du hålla fältet tomt för att undvika denna varning. Obs! Email kan också användas som inloggning om medlemmen är länkad till en användare. -WarningMandatorySetupNotComplete=Klicka här för att ställa in obligatoriska parametrar +WarningMandatorySetupNotComplete=Klicka här för att ställa in huvudparametrar WarningEnableYourModulesApplications=Klicka här för att aktivera dina moduler och applikationer WarningSafeModeOnCheckExecDir=Varning, PHP alternativ safe_mode är på så kommando måste stoppas in i en katalog som deklarerats av php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=Ett bokmärke med denna avdelning eller detta mål (URL) finns redan. @@ -290,9 +316,9 @@ WarningConfFileMustBeReadOnly=Varning, konfigurationsfilen (htdocs / conf / c WarningsOnXLines=Varningar om %s källrader WarningNoDocumentModelActivated=Ingen modell, för dokumentgenerering, har aktiverats. En modell kommer att väljas som standard tills du kontrollerar din modulinställning. WarningLockFileDoesNotExists=Varning när installationen är klar måste du inaktivera installations- / migreringsverktygen genom att lägga till en fil install.lock i katalogen %s . Att undanröja skapandet av den här filen är en allvarlig säkerhetsrisk. -WarningUntilDirRemoved=Alla säkerhetsvarningar (visas endast av administrativa användare) kommer att förbli aktiva så länge som sårbarheten är närvarande (eller den konstanta MAIN_REMOVE_INSTALL_WARNING läggs till i Setup-> Other Setup). +WarningUntilDirRemoved=Denna säkerhetsvarning kommer att förbli aktiv så länge som sårbarheten finns. WarningCloseAlways=Varning, är stängning göras även om beloppet varierar mellan källa och mål element. Aktivera den här funktionen med försiktighet. -WarningUsingThisBoxSlowDown=Varning, använder denna ruta bromsa allvarligt alla sidor som visar lådan. +WarningUsingThisBoxSlowDown=Varning, att använda denna funktion sänker allvarligt hastigheten på alla sidor som visar rutan. WarningClickToDialUserSetupNotComplete=Inställning av ClickToDial informationen för ditt användarkonto är inte fullständiga (se fliken ClickToDial på din användarkortet). WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature inaktiveras när display inställning är optimerad för blinda personer eller textbaserade webbläsare. WarningPaymentDateLowerThanInvoiceDate=Betalningsdag (%s) är tidigare än fakturadatum (%s) för faktura %s. @@ -310,25 +336,28 @@ WarningTheHiddenOptionIsOn=Varning, det dolda alternativet %s är på. WarningCreateSubAccounts=Varning, du kan inte skapa ett underkonto direkt, du måste skapa en tredje part eller en användare och tilldela dem en redovisningskod för att hitta dem i den här listan WarningAvailableOnlyForHTTPSServers=Endast tillgängligt om du använder HTTPS-säker anslutning. WarningModuleXDisabledSoYouMayMissEventHere=Modulen %s har inte aktiverats. Så du kanske missar en hel del evenemang här. -WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningPaypalPaymentNotCompatibleWithStrict=Värdet "Strikt" gör att onlinebetalningsfunktionerna inte fungerar korrekt. Använd "Lax" istället. +WarningThemeForcedTo=Varning, temat har tvingats till %s av en dold konstant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Varning, detta kommer också att radera alla befintliga sidor/behållare på webbplatsen. Du bör exportera din webbplats innan, så du har en säkerhetskopia för att återimportera den senare. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatisk validering är inaktiverad när alternativet att minska lager är inställt på "Fakturavalidering". # Validate -RequireValidValue = Value not valid -RequireAtLeastXString = Requires at least %s character(s) -RequireXStringMax = Requires %s character(s) max -RequireAtLeastXDigits = Requires at least %s digit(s) -RequireXDigitsMax = Requires %s digit(s) max -RequireValidNumeric = Requires a numeric value -RequireValidEmail = Email address is not valid -RequireMaxLength = Length must be less than %s chars -RequireMinLength = Length must be more than %s char(s) -RequireValidUrl = Require valid URL -RequireValidDate = Require a valid date -RequireANotEmptyValue = Is required -RequireValidDuration = Require a valid duration -RequireValidExistingElement = Require an existing value -RequireValidBool = Require a valid boolean -BadSetupOfField = Error bad setup of field -BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation -BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion -BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class +RequireValidValue = Värdet är inte giltigt +RequireAtLeastXString = Kräver minst %s tecken(er) +RequireXStringMax = Kräver max %s tecken +RequireAtLeastXDigits = Kräver minst %s siffror +RequireXDigitsMax = Kräver max %s siffra(r). +RequireValidNumeric = Kräver ett numeriskt värde +RequireValidEmail = E-postadressen är inte giltig +RequireMaxLength = Längden måste vara mindre än %s tecken +RequireMinLength = Längden måste vara mer än %s tecken +RequireValidUrl = Kräv giltig URL +RequireValidDate = Kräv ett giltigt datum +RequireANotEmptyValue = Krävs +RequireValidDuration = Kräv en giltig varaktighet +RequireValidExistingElement = Kräv ett befintligt värde +RequireValidBool = Kräv en giltig boolean +BadSetupOfField = Fel inställning av fältet +BadSetupOfFieldClassNotFoundForValidation = Felaktig inställning av fält: Klass hittades inte för validering +BadSetupOfFieldFileNotFound = Felaktig inställning av fält: Filen hittades inte för inkludering +BadSetupOfFieldFetchNotCallable = Felaktig inställning av fält: Hämtning kan inte anropas på klass diff --git a/htdocs/langs/sv_SE/eventorganization.lang b/htdocs/langs/sv_SE/eventorganization.lang index c16dec9ca59..5f8426b3080 100644 --- a/htdocs/langs/sv_SE/eventorganization.lang +++ b/htdocs/langs/sv_SE/eventorganization.lang @@ -17,82 +17,86 @@ # # Generic # -ModuleEventOrganizationName = Event Organisation -EventOrganizationDescription = Eventorganisation genom modulprojekt -EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +ModuleEventOrganizationName = Evenemangsorganisation +EventOrganizationDescription = Evenemangsorganisation genom modulen Projekt +EventOrganizationDescriptionLong= Hantera organisationen av ett evenemang (show, konferenser, deltagare eller talare, med offentliga sidor för förslag, omröstning eller registrering) # # Menu # EventOrganizationMenuLeft = Organiserade evenemang EventOrganizationConferenceOrBoothMenuLeft = Konferens eller monter -PaymentEvent=Payment of event +PaymentEvent=Betalning för evenemang # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Konfiguration av händelseorganisation -EventOrganization=Event organization -Settings=inställningar -EventOrganizationSetupPage = Inställningssida för händelseorganisation -EVENTORGANIZATION_TASK_LABEL = Etikett för uppgifter som ska skapas automatiskt när projektet valideras -EVENTORGANIZATION_TASK_LABELTooltip = När du validerar en organiserad händelse kan vissa uppgifter skapas automatiskt i projektet

    Exempel:
    Skicka samtal för konferens
    Skicka samtal för monter
    Ta emot samtal för konferens
    påminna om händelse till högtalare
    Skicka påminnelse om händelse till den bodansvariga
    Skicka påminnelse om händelse till deltagare
    Skicka påminnelse om händelse till den bodansvariga
    Skicka påminnelse om händelse till deltagare -EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategori som automatiskt kan läggas till tredje part när någon föreslår en konferens -EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategori som ska läggas till tredje part automatiskt skapas när de föreslår en monter -EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Mall för e-post att skicka efter att ha fått ett förslag på en konferens. -EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Mall för e-post att skicka efter att ha fått ett förslag på en monter. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Template of email to send after a registration to a booth has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Template of email to send after a registration to an event has been paid. -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Template of email to use when sending emails from the massaction "Send emails" to speakers -EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Template of email to use when sending emails from the massaction "Send emails" on attendee list -EVENTORGANIZATION_FILTERATTENDEES_CAT = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties in the category -EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, restricts the list of thirdparties to thirdparties with the nature +NewRegistration=Registrering +EventOrganizationSetup=Inställning för evenemangsorganisation +EventOrganization=Eventorganisation +Settings=Inställningar +EventOrganizationSetupPage = Inställningssida för evenemangsorganisation +EVENTORGANIZATION_TASK_LABEL = Etikett för uppgifter som ska skapas automatiskt när projektet bekräftas +EVENTORGANIZATION_TASK_LABELTooltip = När du validerar ett evenemang att organisera kommer vissa uppgifter automatiskt bli skapat i projektet

    Exempel:
    Skapa konferenssamtal
    Skapa samtal för bås
    Validera förslag för konferensen
    Validera beställning för bås
    Öppna prenumeration för evenemangen för deltagare
    Skicka en påminnelse om evenemanget till talare
    Skicka en påminnelse om evenemanget till båsvärdar
    Skicka en påminnelse om evenemanget till deltagarna +EVENTORGANIZATION_TASK_LABELTooltip2=Lämna tomt om du inte behöver skapa uppgifter automatiskt. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategori som automatiskt kan läggas till tredjepart när någon föreslår en konferens +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategori att läggas till tredjepart automatiskt skapas när de föreslår en monter +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = E-postmall att skicka efter att ha fått ett förslag på en konferens. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = E-postmall att skicka efter att ha fått ett förslag på en monter. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = E-postmall att skicka efter att en registrering till en monter är betald. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = E-postmall att skicka efter att en anmälan till ett evenemang har betalats. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = E-postmall att använda när du skickar e-postmeddelanden från massåtgärden "Skicka e-post" till talare +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = E-postmall som ska användas när du skickar e-postmeddelanden från massåtgärden "Skicka e-post" till deltagare +EVENTORGANIZATION_FILTERATTENDEES_CAT = I formuläret för att skapa/lägga till en deltagare begränsas listan över tredjeparter till tredjeparter som finns i kategorin +EVENTORGANIZATION_FILTERATTENDEES_TYPE = I formuläret för att skapa/lägga till en deltagare begränsas listan över tredjeparter till tredjeparter med karaktären # # Object # EventOrganizationConfOrBooth= Konferens eller monter -ManageOrganizeEvent = Manage the organization of an event +EventOrganizationConfOrBoothes=Konferens eller monter +ManageOrganizeEvent = Hantera organisationen av ett evenemang ConferenceOrBooth = Konferens eller monter ConferenceOrBoothTab = Konferens eller monter -AmountPaid = Amount paid -DateOfRegistration = Date of registration +AmountPaid = Betalt belopp +DateOfRegistration = Registreringsdatum ConferenceOrBoothAttendee = Konferens eller monterdeltagare +ApplicantOrVisitor=Utställare eller besökare +Speaker=Talare # # Template Mail # -YourOrganizationEventConfRequestWasReceived = Din begäran om konferens mottogs -YourOrganizationEventBoothRequestWasReceived = Din begäran om monter togs emot +YourOrganizationEventConfRequestWasReceived = Din begäran om konferens har tagits emot +YourOrganizationEventBoothRequestWasReceived = Din begäran om monter har tagits emot EventOrganizationEmailAskConf = Begäran om konferens EventOrganizationEmailAskBooth = Begäran om monter -EventOrganizationEmailBoothPayment = Payment of your booth -EventOrganizationEmailRegistrationPayment = Registration for an event -EventOrganizationMassEmailAttendees = Kommunikation till deltagarna -EventOrganizationMassEmailSpeakers = Kommunikation till högtalarna -ToSpeakers=To speakers +EventOrganizationEmailBoothPayment = Betalning av monter +EventOrganizationEmailRegistrationPayment = Anmälan till ett event +EventOrganizationMassEmailAttendees = Meddelande till deltagare +EventOrganizationMassEmailSpeakers = Meddelande till talare +ToSpeakers=Till talare # # Event # -AllowUnknownPeopleSuggestConf=Allow people to suggest conferences -AllowUnknownPeopleSuggestConfHelp=Allow unknown people to suggest a conference they want to do -AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth -AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth +AllowUnknownPeopleSuggestConf=Tillåt personer att föreslå konferenser +AllowUnknownPeopleSuggestConfHelp=Tillåt okända personer att föreslå en konferens de vill göra +AllowUnknownPeopleSuggestBooth=Låt folk ansöka om en monter +AllowUnknownPeopleSuggestBoothHelp=Tillåt okända personer att ansöka om en monter PriceOfRegistration=Pris för registrering -PriceOfRegistrationHelp=Price to pay to register or participate in the event -PriceOfBooth=Prenumerationspris för att stå en monter -PriceOfBoothHelp=Prenumerationspris för att stå en monter -EventOrganizationICSLink=Link ICS for conferences +PriceOfRegistrationHelp=Pris att betala för att registrera eller delta i evenemanget +PriceOfBooth=Kostnad för att stå i en monter +PriceOfBoothHelp=Kostnad för att stå i en monter +EventOrganizationICSLink=Länka ICS för konferenser ConferenceOrBoothInformation=Information om konferens eller monter Attendees=Deltagare -ListOfAttendeesOfEvent=List of attendees of the event project +ListOfAttendeesOfEvent=Lista över deltagare i evenemangsprojektet DownloadICSLink = Ladda ner ICS-länk -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference -SERVICE_BOOTH_LOCATION = Tjänst som används för fakturaraden om en monterplats -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event -NbVotes=Röstetal +EVENTORGANIZATION_SECUREKEY = Seed för att säkra nyckeln för registrering för att föreslå en konferens +SERVICE_BOOTH_LOCATION = Tjänst som används på fakturaraden för monterplats +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Tjänst som används på fakturaraden för deltagaravgift för ett evenemang +NbVotes=Antal röster # # Status # @@ -101,67 +105,70 @@ EvntOrgSuggested = Föreslagen EvntOrgConfirmed = Bekräftad EvntOrgNotQualified = Inte kvalificerad EvntOrgDone = Klar -EvntOrgCancelled = Inställt +EvntOrgCancelled = Inställd # # Public page # SuggestForm = Förslagssida -SuggestOrVoteForConfOrBooth = Page for suggestion or vote -EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest a new one for the event. You can also apply to have a booth during the event. -EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. -EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. +SuggestOrVoteForConfOrBooth = Sida för förslag eller omröstning +EvntOrgRegistrationHelpMessage = Här kan du rösta på en konferens eller föreslå en till ett evenemang. Du kan även ansöka om en monter under evenemanget. +EvntOrgRegistrationConfHelpMessage = Här kan du föreslå en ny konferens under evenemanget. +EvntOrgRegistrationBoothHelpMessage = Här kan du ansöka om en monter under evenemanget. ListOfSuggestedConferences = Lista över föreslagna konferenser -ListOfSuggestedBooths = Lista över föreslagna bås -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Föreslagna montrar +ListOfConferencesOrBooths=Konferenser eller montrar i ett evenemangsprojekt SuggestConference = Föreslå en ny konferens SuggestBooth = Föreslå en monter -ViewAndVote = Visa och rösta på föreslagna händelser -PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event -PublicAttendeeSubscriptionPage = Public link for registration to this event only +ViewAndVote = Visa och rösta på föreslagna evenemang +PublicAttendeeSubscriptionGlobalPage = Offentlig länk för anmälan till evenemanget +PublicAttendeeSubscriptionPage = Offentlig länk för registrering endast till detta evenemang MissingOrBadSecureKey = Säkerhetsnyckeln är ogiltig eller saknas -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = Detta formulär låter dig registrera dig som ny deltagare i evenemanget EvntOrgDuration = Denna konferens börjar på %s och slutar på %s. -ConferenceAttendeeFee = Konferensdeltagaravgift för evenemanget: '%s' som inträffar från %s till %s. -BoothLocationFee = Båsplats för evenemanget: '%s' som inträffar från %s till %s -EventType = Typ av händelse -LabelOfBooth=Båsetikett +ConferenceAttendeeFee = Deltagaravgift för evenemanget %s, %s till %s. +BoothLocationFee = Monter under evenemanget'%s, %s till %s. +EventType = Typ av evenemang +LabelOfBooth=Monteretikett LabelOfconference=Konferensetikett -ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet -DateMustBeBeforeThan=%s must be before %s -DateMustBeAfterThan=%s must be after %s +ConferenceIsNotConfirmed=Registrering ej tillgänglig, konferensen är inte bekräftad ännu +DateMustBeBeforeThan=%s måste vara före %s +DateMustBeAfterThan=%s måste vara efter %s +MaxNbOfAttendeesReached=Maximalt antal deltagare har uppnåtts +NewSubscription=Registrering +OrganizationEventConfRequestWasReceived=Ditt förslag på konferens har tagits emot +OrganizationEventBoothRequestWasReceived=Din begäran om en monter har tagits emot +OrganizationEventPaymentOfBoothWasReceived=Din betalning för monter har registrerats +OrganizationEventPaymentOfRegistrationWasReceived=Din betalning för din evenemang har registrerats +OrganizationEventBulkMailToAttendees=Detta är en påminnelse om ett evenemang du anmält dig till +OrganizationEventBulkMailToSpeakers=Detta är en påminnelse ett evenemanget du skall tala på +OrganizationEventLinkToThirdParty=Länk till tredjepart (kund, leverantör eller partner) +OrganizationEvenLabelName=Offentligt namn på konferensen eller montern -NewSubscription=Registration -OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received -OrganizationEventBoothRequestWasReceived=Your request for a booth has been received -OrganizationEventPaymentOfBoothWasReceived=Your payment for your booth has been recorded -OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event registration has been recorded -OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee -OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker -OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) - -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Ansökan om monter +NewSuggestionOfConference=Ansökan om konferens # # Vote page # -EvntOrgRegistrationWelcomeMessage = Välkommen till konferens- eller monteringssidan. +EvntOrgRegistrationWelcomeMessage = Välkommen till konferens- eller montersidan. EvntOrgRegistrationConfWelcomeMessage = Välkommen till konferenssidan. EvntOrgRegistrationBoothWelcomeMessage = Välkommen till förslagssidan för monter. -EvntOrgVoteHelpMessage = Här kan du se och rösta på de föreslagna händelserna för projektet -VoteOk = Din röst har accepterats. +EvntOrgVoteHelpMessage = Här kan du se och rösta på de föreslagna evenemangen för projektet +VoteOk = Din röst har tagits emot. AlreadyVoted = Du har redan röstat på det här evenemanget. VoteError = Ett fel har inträffat under omröstningen, försök igen. -SubscriptionOk = Your registration has been validated -ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event +SubscriptionOk=Din registrering har skapats +ConfAttendeeSubscriptionConfirmation = Bekräftelse av ditt deltagande på ett evenemang Attendee = Deltagare -PaymentConferenceAttendee = Konferensdeltagarebetalning -PaymentBoothLocation = Betalning av monterplats -DeleteConferenceOrBoothAttendee=Remove attendee -RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s -EmailAttendee=Attendee email -EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) -ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +PaymentConferenceAttendee = Betalning för deltagare +PaymentBoothLocation = Betalning för monter +DeleteConferenceOrBoothAttendee=Ta bort deltagare +RegistrationAndPaymentWereAlreadyRecorder=En registrering och en betalning har redan registrerats för e-postadressen%s +EmailAttendee=Deltagarens e-post +EmailCompany=Företagets e-post +EmailCompanyForInvoice=Företagets e-postadress (för faktura, om den skiljer sig från deltagarens e-postadress) +ErrorSeveralCompaniesWithEmailContactUs=Flera företag med denna e-postadress har hittats så vi kan inte bekräfta din registrering automatiskt. Kontakta oss på %s för en manuell bekräftelse +ErrorSeveralCompaniesWithNameContactUs=Flera företag med detta namn har hittats så vi kan inte validera din registrering automatiskt. Kontakta oss på %s för en manuell validering +NoPublicActionsAllowedForThisEvent=Det finns inga åtgärder som är öppna för allmänheten för detta evenemang +MaxNbOfAttendees=Max antal deltagare diff --git a/htdocs/langs/sv_SE/exports.lang b/htdocs/langs/sv_SE/exports.lang index b4815bb027b..eecba4709d7 100644 --- a/htdocs/langs/sv_SE/exports.lang +++ b/htdocs/langs/sv_SE/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Exporterbara fält ExportedFields=Exporterade fält ImportModelName=Importera profilnamn ImportModelSaved=Importprofilen sparad som %s . +ImportProfile=Importera profil DatasetToExport=Dataset att exportera DatasetToImport=Importera fil till dataset ChooseFieldsOrdersAndTitle=Välj fältordning ... @@ -46,15 +47,16 @@ LineDescription=Beskrivning av linjen LineUnitPrice=Priset per enhet på linjen LineVATRate=Momssats på linjen LineQty=Kvantitet för linje -LineTotalHT=Belopp exkl. skatt för linje -LineTotalTTC=Belopp med skatt för linje +LineTotalHT=Belopp exkl. moms för linje +LineTotalTTC=Belopp inkl. moms för linje LineTotalVAT=Det mervärdesskattebelopp för linje TypeOfLineServiceOrProduct=Typ av linje (0 = produkt, 1 = tjänst) FileWithDataToImport=Fil med data för att importera FileToImport=Källa fil du vill importera FileMustHaveOneOfFollowingFormat=Fil som ska importeras måste ha ett av följande format -DownloadEmptyExample=Download a template file with examples and information on fields you can import -StarAreMandatory=Into the template file, all fields with a * are mandatory fields +DownloadEmptyExampleShort=Ladda ner en exempelfil +DownloadEmptyExample=Ladda ner en mallfil med exempel och information om fält du kan importera +StarAreMandatory=I mallfilen är alla fält med en * obligatoriska fält ChooseFormatOfFileToImport=Välj det filformat som ska användas som importfilformat genom att klicka på ikonen %s för att välja den ... ChooseFileToImport=Ladda upp filen och klicka sedan på %s ikonen för att välja fil som källa importfil ... SourceFileFormat=Källa filformat @@ -82,7 +84,7 @@ SelectFormat=Välj denna import filformat RunImportFile=Importera datan NowClickToRunTheImport=Kontrollera resultaten av importimuleringen. Korrigera eventuella fel och ompröva.
    När simuleringen rapporterar inga fel kan du fortsätta att importera data till databasen. DataLoadedWithId=Den importerade data kommer att ha ett tilläggsfält i varje databastabell med detta import-id: %s , så att det kan sökas vid undersökning av ett problem relaterat till denna import. -ErrorMissingMandatoryValue=Obligatoriska uppgifter är tomma i källfilen för fält %s . +ErrorMissingMandatoryValue=Obligatoriska uppgifter är tomma i källfilen i kolumn %s . TooMuchErrors=Det finns fortfarande %s andra källlinjer med fel men utsignalen är begränsad. TooMuchWarnings=Det finns fortfarande %s andra källlinjer med varningar men utmatningen har varit begränsad. EmptyLine=Tom rad (kommer att slängas) @@ -92,12 +94,12 @@ YouCanUseImportIdToFindRecord=Du kan hitta alla importerade poster i din databas NbOfLinesOK=Antal rader utan fel och inga varningar: %s. NbOfLinesImported=Antal rader importerades: %s. DataComeFromNoWhere=Värde att infoga kommer från ingenstans i källfilen. -DataComeFromFileFieldNb=Värde att infoga kommer från nummer %s fältet i källfilen. -DataComeFromIdFoundFromRef=Värdet som kommer från fältnummer %s av källfilen kommer att användas för att hitta identifieringsobjektets parentes att använda (så objektet %s som har referens från källfilen måste finnas i databasen). -DataComeFromIdFoundFromCodeId=Kod som kommer från fältnummer %s av källfilen kommer att användas för att hitta identifieringsobjektets id att använda (så koden från källfilen måste finnas i ordlistan %s ). Observera att om du vet id, kan du också använda den i källfilen istället för koden. Importen ska fungera i båda fallen. +DataComeFromFileFieldNb=Värdet att infoga kommer från kolumnen %s i källfilen. +DataComeFromIdFoundFromRef=Värdet som kommer från källfilen kommer att användas för att hitta id för det överordnade objektet som ska användas (så objektet %s som har ref. från källfilen måste finnas i databasen). +DataComeFromIdFoundFromCodeId=Värdet på koden som kommer från källfilen kommer att användas för att hitta id för det överordnade objektet som ska användas (så koden från källfilen måste finnas i ordboken %s ). Observera att om du känner till id:t kan du också använda det i källfilen istället för koden. Import bör fungera i båda fallen. DataIsInsertedInto=Uppgifter från källfilen kommer att införas i följande område: -DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: -DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +DataIDSourceIsInsertedInto=ID:t för det överordnade objektet, som hittades med hjälp av data i källfilen, kommer att infogas i följande fält: +DataCodeIDSourceIsInsertedInto=ID:t för den överordnade raden, som hittades från koden, kommer att infogas i följande fält: SourceRequired=Data värde är obligatoriskt SourceExample=Exempel på möjliga datavärde ExampleAnyRefFoundIntoElement=Varje ref för element %s @@ -132,9 +134,14 @@ FormatControlRule=Formatera kontrollregeln ## imports updates KeysToUseForUpdates=Nyckel (kolumn) som ska användas för uppdatering av befintliga data NbInsert=Antal infogade rader: %s +NbInsertSim=Antal rader som kommer att infogas: %s NbUpdate=Antal uppdaterade rader: %s +NbUpdateSim=Antal rader som kommer att uppdateras: %s MultipleRecordFoundWithTheseFilters=Flera poster har hittats med dessa filter: %s StocksWithBatch=Lager och plats (lager) för produkter med batch / serienummer -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used -SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +WarningFirstImportedLine=De första raderna kommer inte att importeras med det aktuella valet +NotUsedFields=Databasfält används inte +SelectImportFieldsSource = Välj källfilsfälten du vill importera och deras målfält i databasen genom att välja fälten i varje markeringsruta, eller välj en fördefinierad importprofil: +MandatoryTargetFieldsNotMapped=Vissa obligatoriska målfält är inte mappade +AllTargetMandatoryFieldsAreMapped=Alla målfält som behöver ett obligatoriskt värde mappas +ResultOfSimulationNoError=Resultat av simulering: Inget fel diff --git a/htdocs/langs/sv_SE/externalsite.lang b/htdocs/langs/sv_SE/externalsite.lang deleted file mode 100644 index bb812b412ed..00000000000 --- a/htdocs/langs/sv_SE/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup länk till extern webbplats -ExternalSiteURL=Extern webbadress för HTML för iframe-innehåll -ExternalSiteModuleNotComplete=Modul ExternalSite var inte korrekt konfigurerad. -ExampleMyMenuEntry=Min meny posten diff --git a/htdocs/langs/sv_SE/ftp.lang b/htdocs/langs/sv_SE/ftp.lang deleted file mode 100644 index d556f413bfc..00000000000 --- a/htdocs/langs/sv_SE/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP- eller SFTP-klientmodulinställning -NewFTPClient=Ny FTP / FTPS-anslutningsinstallation -FTPArea=FTP / FTPS-område -FTPAreaDesc=Denna skärm visar en vy av en FTP et SFTP-server. -SetupOfFTPClientModuleNotComplete=Installationen av FTP- eller SFTP-klientmodulen verkar vara ofullständig -FTPFeatureNotSupportedByYourPHP=Din PHP stöder inte FTP- eller SFTP-funktioner -FailedToConnectToFTPServer=Det gick inte att ansluta till servern (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Det gick inte att logga in på servern med definierat inloggning / lösenord -FTPFailedToRemoveFile=Misslyckades med att ta bort fil %s. -FTPFailedToRemoveDir=Misslyckades med att ta bort katalogen %s : kolla behörigheter och att katalogen är tom. -FTPPassiveMode=Passivt läge -ChooseAFTPEntryIntoMenu=Välj en FTP / SFTP-webbplats från menyn ... -FailedToGetFile=Filhämtning misslyckades %s diff --git a/htdocs/langs/sv_SE/help.lang b/htdocs/langs/sv_SE/help.lang index 696e7f5bdaa..3893e4818ff 100644 --- a/htdocs/langs/sv_SE/help.lang +++ b/htdocs/langs/sv_SE/help.lang @@ -1,23 +1,23 @@ # Dolibarr language file - Source file is en_US - help -CommunitySupport=Forum / Wiki stöd -EMailSupport=E-postmeddelanden stöd -RemoteControlSupport=Online realtid / fjärrsupport -OtherSupport=Annat stöd -ToSeeListOfAvailableRessources=För att kontakta / se tillgängliga resurser: +CommunitySupport=Forum/Wiki +EMailSupport=E-postsupport +RemoteControlSupport=Online realtid/fjärrsupport +OtherSupport=Annan support +ToSeeListOfAvailableRessources=För att kontakta/se tillgängliga resurser: HelpCenter=Hjälpcenter -DolibarrHelpCenter=Dolibarr Help and Support Center -ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. -TypeOfSupport=Type of support +DolibarrHelpCenter=Dolibarr Hjälp och Supportcenter +ToGoBackToDolibarr=Annars, klicka här för att fortsätta använda Dolibarr. +TypeOfSupport=Typ av support TypeSupportCommunauty=Gemenskapen (gratis) -TypeSupportCommercial=Kommersiella +TypeSupportCommercial=Kommersiell TypeOfHelp=Typ NeedHelpCenter=Behöver du hjälp eller stöd? Efficiency=Effektivitet TypeHelpOnly=Hjälp endast TypeHelpDev=Hjälp + Utveckling -TypeHelpDevForm=Help+Development+Training -BackToHelpCenter=Otherwise, go back to Help center home page. -LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated): +TypeHelpDevForm=Hjälp + Utveckling + Utbildning +BackToHelpCenter=Annars kan du gå tillbaka till start för hjälpcentret. +LinkToGoldMember=Du kan ringa en av de utbildare som valts ut av Dolibarr för just ditt språk (%s) genom att klicka på deras Widget (status och högsta pris uppdateras automatiskt): PossibleLanguages=Språk som stöds -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation -SeeOfficalSupport=För officiell Dolibarr support på ditt språk:
    %s +SubscribeToFoundation=Hjälp Dolibarr-projektet, prenumerera hos stiftelsen +SeeOfficalSupport=För officiell Dolibarr-support på ditt språk:
    %s diff --git a/htdocs/langs/sv_SE/holiday.lang b/htdocs/langs/sv_SE/holiday.lang index f216ac98992..40d897dfd10 100644 --- a/htdocs/langs/sv_SE/holiday.lang +++ b/htdocs/langs/sv_SE/holiday.lang @@ -1,11 +1,13 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Lämna -CPTitreMenu=Lämna +Holidays=Semester +Holiday=Ledighet +CPTitreMenu=Ledighet MenuReportMonth=Månatlig rapport MenuAddCP=Ny ledighetsansökan -NotActiveModCP=Du måste aktivera modulen Lämna för att se den här sidan. -AddCP=Gör en förfrågan ledighet +MenuCollectiveAddCP=Ny förfrågan om kollektivledighet +NotActiveModCP=Du måste aktivera modulen Ledighet för att se den här sidan. +AddCP=Skapa en ledighetsansökan DateDebCP=Startdatum DateFinCP=Slutdatum DraftCP=Utkast @@ -15,8 +17,8 @@ CancelCP=Annullerad RefuseCP=Refused ValidatorCP=Godkännare ListeCP=Förteckning över ledighet -Leave=Lämna begäran -LeaveId=Lämna ID +Leave=Ledighetsansökan +LeaveId=Ledighets ID ReviewedByCP=Kommer att godkännas av UserID=användar ID UserForApprovalID=Användare för godkännande-ID @@ -24,18 +26,18 @@ UserForApprovalFirstname=Förnamn för godkännande användare UserForApprovalLastname=Efternamn för godkännandeanvändare UserForApprovalLogin=Inloggning av godkännande användaren DescCP=Beskrivning -SendRequestCP=Skapa permission begäran -DelayToRequestCP=Lämna begäran måste göras minst %s dag (ar) före dem. +SendRequestCP=Skapa ledighetsansökan +DelayToRequestCP=Ledighetsansökan måste göras minst %s dag (ar) före dem. MenuConfCP=Lönebalans -SoldeCPUser=Leave balance (in days) %s +SoldeCPUser=Semesterbalans (i dagar) %s ErrorEndDateCP=Du måste välja ett slutdatum senare än startdatum. ErrorSQLCreateCP=Ett SQL-fel uppstod under skapandet: -ErrorIDFicheCP=Ett fel har uppstått, inte existerar begäran ledighet. +ErrorIDFicheCP=Ett fel har uppstått, ledighetsansökan finns inte ReturnCP=Tillbaka till föregående sida -ErrorUserViewCP=Du har inte behörighet att läsa denna ledighet begäran. +ErrorUserViewCP=Du har inte behörighet att läsa denna ledighetsansökan InfosWorkflowCP=Information Workflow RequestByCP=Begäran från -TitreRequestCP=Lämna begäran +TitreRequestCP=Ledighetsansökan TypeOfLeaveId=Typ av ledighet ID TypeOfLeaveCode=Typ av ledighetskod TypeOfLeaveLabel=Typ av lämnad etikett @@ -51,23 +53,24 @@ DeleteCP=Ta bort ActionRefuseCP=Vägra ActionCancelCP=Avbryt StatutCP=Status -TitleDeleteCP=Radera begäran ledighet +TitleDeleteCP=Radera ledighetsansökan ConfirmDeleteCP=Bekräfta raderingen av denna ledighet förfrågan? -ErrorCantDeleteCP=Fel att du inte har rätt att ta bort denna ledighet begäran. +ErrorCantDeleteCP=Fel att du inte har rätt att ta bort denna ledighetsansökan CantCreateCP=Du har inte rätt att göra ledighet förfrågningar. -InvalidValidatorCP=Du måste välja godkännare för din ledighetsförfrågan. +InvalidValidatorCP=Du måste välja godkännare för din ledighetsansökan. +InvalidValidator=Den valda användaren är inte en godkännare. NoDateDebut=Du måste välja ett startdatum. NoDateFin=Du måste välja ett slutdatum. -ErrorDureeCP=Din ledighet framställningen inte innehåller arbetsdag. -TitleValidCP=Godkänna begäran ledighet -ConfirmValidCP=Är du säker på att du vill godkänna begäran ledighet? +ErrorDureeCP=Din ledighetsansökan innehåller ingen arbetsdag. +TitleValidCP=Godkänn ledighetsansökan +ConfirmValidCP=Är du säker på att du vill godkänna ledighetsansökan? DateValidCP=Datum godkänd -TitleToValidCP=Skicka permission begäran -ConfirmToValidCP=Är du säker på att du vill skicka en begäran ledighet? -TitleRefuseCP=Avslå begäran ledighet -ConfirmRefuseCP=Är du säker på att du vill avslå begäran ledighet? -NoMotifRefuseCP=Du måste välja ett skäl för att vägra begäran. -TitleCancelCP=Avbryta begäran ledighet +TitleToValidCP=Skicka ledighetsansökan +ConfirmToValidCP=Är du säker på att du vill skicka en ledighetsansökan? +TitleRefuseCP=Avslå ledighetsansökan +ConfirmRefuseCP=Är du säker på att du vill avslå ledighetsansökan? +NoMotifRefuseCP=Du måste välja ett skäl för att neka förfrågan. +TitleCancelCP=Avbryt ledighetsansökan ConfirmCancelCP=Är du säker på att du vill avbryta din semester? DetailRefusCP=Orsak till avslag DateRefusCP=Datum för avslag @@ -79,24 +82,33 @@ MotifCP=Reason UserCP=Användare ErrorAddEventToUserCP=Ett fel uppstod när den exceptionella ledighet. AddEventToUserOkCP=Tillägget av den exceptionella ledigheten har slutförts. +ErrorFieldRequiredUserOrGroup=Fältet "grupp" eller "användare" måste fyllas i +fusionGroupsUsers=Gruppfältet och användarfältet kommer att slås samman MenuLogCP=Kontrollera ändringsloggen LogCP=Logg över alla uppdateringar gjorda av "Balans av ledighet" ActionByCP=Uppdaterad av UserUpdateCP=Uppdaterad för PrevSoldeCP=Föregående Balance NewSoldeCP=New Balance -alreadyCPexist=En begäran ledigheten har redan gjorts på denna period. -FirstDayOfHoliday=Börjedag för begäran om ledighet +alreadyCPexist=En ledighetsansökan har redan gjorts på denna period. +UseralreadyCPexist=En ledighetsansökan har redan gjorts för denna period för %s. +groups=Grupper +users=Användare +AutoSendMail=Automatisk utskick +NewHolidayForGroup=Ny förfrågan om kollektivledighet +SendRequestCollectiveCP=Skicka förfrågan om kollektiv ledighet +AutoValidationOnCreate=Automatisk validering +FirstDayOfHoliday=Startdag för ledighetsansökan LastDayOfHoliday=Slutdagens ledighetsförfrågan -BoxTitleLastLeaveRequests=Senaste %s ändrade lämnar förfrågningar +BoxTitleLastLeaveRequests=Senaste %s ändrade ledighetsansökningar HolidaysMonthlyUpdate=Månads uppdatering ManualUpdate=Manuell uppdatering -HolidaysCancelation=Lämna begäran Spärr +HolidaysCancelation=Spärra ledighetsansökan EmployeeLastname=Medarbetare efternamn EmployeeFirstname=Medarbetare förnamn TypeWasDisabledOrRemoved=Avlastnings typ (id %s) var inaktiverad eller borttagen -LastHolidays=Senaste %s lämnar förfrågningar -AllHolidays=Alla lämnar förfrågningar +LastHolidays=Senaste %s ledighetsansökningar +AllHolidays=Alla ledighetsansökningar HalfDay=Halv dag NotTheAssignedApprover=Du är inte den tilldelade godkännaren LEAVE_PAID=Betald semester @@ -107,33 +119,40 @@ LEAVE_PAID_FR=Betald semester LastUpdateCP=Senaste automatiska uppdateringen av tilldelning av ledighet MonthOfLastMonthlyUpdate=Månad för senaste automatiska uppdatering av tilldelning av ledighet UpdateConfCPOK=Uppdaterats. -Module27130Name= Hantering av ledighet förfrågningar -Module27130Desc= Hantering av ledighet förfrågningar +Module27130Name= Hantering av ledighetsansökan +Module27130Desc= Hantering av ledighetansökningar ErrorMailNotSend=Ett fel uppstod när du skickar e-post: NoticePeriod=Uppsägningstid #Messages -HolidaysToValidate=Bekräfta ledighets förfrågningar -HolidaysToValidateBody=Nedan finns en ledighet begäran om att bekräfta -HolidaysToValidateDelay=Denna ledighet begäran kommer att ske inom en period på mindre än %s dagar. -HolidaysToValidateAlertSolde=Användaren som gjorde denna begäran om förfrågan har inte tillräckligt med lediga dagar. -HolidaysValidated=Bekräftade ledighets förfrågningar -HolidaysValidatedBody=Din ledighets begäran om %s till %s har bekräftats. -HolidaysRefused=Begäran nekades -HolidaysRefusedBody=Din begäran om förflyttning för %s till %s har blivit nekad av följande orsak: -HolidaysCanceled=Annulleras leaved begäran -HolidaysCanceledBody=Din ledighet begäran om %s till %s har avbrutits. +HolidaysToValidate=Bekräfta ledighetsansökningar +HolidaysToValidateBody=Nedan finns en ledighetsansökan att bekräfta +HolidaysToValidateDelay=Denna ledighetsansökan kommer vara inom en period kortare än %sdagar. +HolidaysToValidateAlertSolde=Användaren som skapat denna ledighetsansökan har inte tillräckligt tillgängliga dagar. +HolidaysValidated=Bekräftade ledighetsansökningar +HolidaysValidatedBody=Din ledighetsansökan från %s till %s har bekräftats. +HolidaysRefused=Begäran nekad +HolidaysRefusedBody=Din ledighetsansökan från %s till %s har blivit nekad av följande orsak: +HolidaysCanceled=Annulerad ledighetsansökan +HolidaysCanceledBody=Din ledighetsansökan om %s till %s har avbrutits FollowedByACounter=1: Denna typ av ledighet måste följas av en räknare. Räknaren ökas manuellt eller automatiskt och när en förfrågningsbegäran är validerad minskas räknaren.
    0: Ej följd av en räknare. -NoLeaveWithCounterDefined=Det finns inga lämna typer som måste följas av en räknare -GoIntoDictionaryHolidayTypes=Gå in i Hem - Inställning - Ordböcker - Typ av tjänst för att konfigurera olika typer av löv. -HolidaySetup=Installation av modulen Lämna -HolidaysNumberingModules=Numreringsmodeller för ledighetsförfrågningar -TemplatePDFHolidays=Mall för lämningsförfrågningar PDF +NoLeaveWithCounterDefined=Det finns inga ledighetstyper som måste följas av en räknare +GoIntoDictionaryHolidayTypes=Gå in i Hem - Inställning - Ordböcker - Typ av ledighet för att konfigurera olika typer av löv. +HolidaySetup=Installation av modulen Ledighet +HolidaysNumberingModules=Numreringsmodeller för ledighetsansökningar +TemplatePDFHolidays=Mall för ledighetsansökan PDF FreeLegalTextOnHolidays=Gratis text på PDF WatermarkOnDraftHolidayCards=Vattenstämplar på utkastsförfrågningar HolidaysToApprove=Semester att godkänna NobodyHasPermissionToValidateHolidays=Ingen har tillstånd att godkänna helgdagar HolidayBalanceMonthlyUpdate=Månadsuppdatering av semestersaldot -XIsAUsualNonWorkingDay=%s is usualy a NON working day -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative -ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +XIsAUsualNonWorkingDay=%s är vanligtvis en INTE arbetsdag +BlockHolidayIfNegative=Blockera om saldot är negativt +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Skapandet av denna ledighetsansökan är blockerad eftersom ditt saldo är negativt +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Ledighetsansökan %s måste vara utkast, avbruten eller nekad för att raderas +IncreaseHolidays=Öka semestern +HolidayRecordsIncreased= %s semester ökad +HolidayRecordIncreased=Semester ökad +ConfirmMassIncreaseHoliday=Massa semesterökning +NumberDayAddMass=Antal dagar att lägga till i urvalet +ConfirmMassIncreaseHolidayQuestion=Är du säker på att du vill öka semestern för de %s valda posterna? +HolidayQtyNotModified=Saldot av återstående dagar för %s har inte ändrats diff --git a/htdocs/langs/sv_SE/hrm.lang b/htdocs/langs/sv_SE/hrm.lang index 8039f587136..262cae6c093 100644 --- a/htdocs/langs/sv_SE/hrm.lang +++ b/htdocs/langs/sv_SE/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Öppen anläggning CloseEtablishment=Stäng anläggningen # Dictionary DictionaryPublicHolidays=Ledighet - Helgdagar -DictionaryDepartment=HRM - Avdelningslista +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Jobbpositioner # Module Employees=anställda @@ -20,13 +20,14 @@ Employee=Anställd NewEmployee=Ny anställd ListOfEmployees=Lista över anställda HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Jobb -Jobs=Jobs +JobPosition=Jobb +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Position -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang index eee9da54666..bd463e4ecb5 100644 --- a/htdocs/langs/sv_SE/install.lang +++ b/htdocs/langs/sv_SE/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Konfigurationsfil %s är inte skrivbar. Kontrolle ConfFileIsWritable=Konfigurationsfilen %s är skrivbar. ConfFileMustBeAFileNotADir=Konfigurationsfil %s måste vara en fil, inte en katalog. ConfFileReload=Uppdatera parametrar från konfigurationsfilen. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Detta stöder PHP variabler POST och GET. PHPSupportPOSTGETKo=Det är möjligt att din PHP-inställning inte stöder variabler POST och / eller GET. Kontrollera parametern variables_order i php.ini. PHPSupportSessions=Detta stöder PHP sessioner. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Du kan ha skrivit fel värde för parametern "% ErrorFailedToCreateDatabase=Misslyckades med att skapa databasen %s. ErrorFailedToConnectToDatabase=Det gick inte att ansluta till databasen "%s". ErrorDatabaseVersionTooLow=Databasens version (%s) för gammal. Version %s eller senare krävs. -ErrorPHPVersionTooLow=PHP version gamla också. Version %s krävs. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Anslutning till servern lyckad men databasen '%s' hittades inte. ErrorDatabaseAlreadyExists=Databas "%s" finns redan. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Om databasen inte existerar, gå tillbaka och kolla alternativet "Skapa databas". IfDatabaseExistsGoBackAndCheckCreate=Om databasen redan finns, gå tillbaka och avmarkera "Skapa databasen" valen. WarningBrowserTooOld=Versionen av webbläsaren är för gammal. Uppgradering av webbläsaren till en ny version av Firefox, Chrome eller Opera rekommenderas starkt. diff --git a/htdocs/langs/sv_SE/interventions.lang b/htdocs/langs/sv_SE/interventions.lang index f3f970777f2..5d6f479606a 100644 --- a/htdocs/langs/sv_SE/interventions.lang +++ b/htdocs/langs/sv_SE/interventions.lang @@ -1,68 +1,72 @@ # Dolibarr language file - Source file is en_US - interventions -Intervention=Insats -Interventions=Insatser -InterventionCard=Insatskort -NewIntervention=Nya insatser -AddIntervention=Skapa insats -ChangeIntoRepeatableIntervention=Byt till repeterbar insats -ListOfInterventions=Förteckning över åtgärder -ActionsOnFicheInter=Åtgärder för insats +Intervention=Intervention +Interventions=Interventioner +InterventionCard=Interventionskort +NewIntervention=Ny intervention +AddIntervention=Skapa intervention +ChangeIntoRepeatableIntervention=Ändra till upprepningsbar intervention +ListOfInterventions=Lista interventioner +ActionsOnFicheInter=Åtgärder för intervention LastInterventions=Senaste %s interventionerna -AllInterventions=Alla insatser +AllInterventions=Alla interventioner CreateDraftIntervention=Skapa utkast -InterventionContact=Insatskontakt -DeleteIntervention=Ta bort insats -ValidateIntervention=Bekräfta insats -ModifyIntervention=Ändra insats -DeleteInterventionLine=Ta bort insats linje -ConfirmDeleteIntervention=Är du säker på att du vill radera detta insats? -ConfirmValidateIntervention=Är du säker på att du vill bekräfta detta insats under namnet %s ? -ConfirmModifyIntervention=Är du säker på att du vill ändra detta insats? -ConfirmDeleteInterventionLine=Är du säker på att du vill ta bort denna interventionslinje? -ConfirmCloneIntervention=Är du säker på att du vill klona detta insats? -NameAndSignatureOfInternalContact=Namn och underskrift av intervenient: +InterventionContact=Kontakt för intervention +DeleteIntervention=Ta bort intervention +ValidateIntervention=Bekräfta intervention +ModifyIntervention=Ändra intervention +DeleteInterventionLine=Ta bort rad +ConfirmDeleteIntervention=Är du säker på att du vill radera denna intervention? +ConfirmValidateIntervention=Är du säker på att du vill bekräfta denna intervention under namnet %s? +ConfirmModifyIntervention=Är du säker på att du vill ändra denna intervention? +ConfirmDeleteInterventionLine=Är du säker på att du vill ta bort denna interventionsrad? +ConfirmCloneIntervention=Är du säker på att du vill klona denna intervention? +NameAndSignatureOfInternalContact=Namn och underskrift: NameAndSignatureOfExternalContact=Kundens namn och underskrift: -DocumentModelStandard=Standarddokument modell för insatser -InterventionCardsAndInterventionLines=Insats och linjer av interventioner -InterventionClassifyBilled=Märk "Fakturerad" -InterventionClassifyUnBilled=Classify "ofakturerade" -InterventionClassifyDone=Märk "klar" +DocumentModelStandard=Modell för standarddokument för interventioner +InterventionCardsAndInterventionLines=Interventioner och rader med interventioner +InterventionClassifyBilled=Markera som fakturerad +InterventionClassifyUnBilled=Markera som ofakturerad +InterventionClassifyDone=Markera som klar StatusInterInvoiced=Fakturerade -SendInterventionRef=Inlämning av insats %s -SendInterventionByMail=Skicka insats via e-post -InterventionCreatedInDolibarr=Insats %s skapad -InterventionValidatedInDolibarr=Insats %s bekräftades -InterventionModifiedInDolibarr=Insats %s modifierade -InterventionClassifiedBilledInDolibarr=Insats %s uppsättning som faktureras -InterventionClassifiedUnbilledInDolibarr=Insats %s uppsättning som ofakturerade -InterventionSentByEMail=Insats %s skickad av email -InterventionDeletedInDolibarr=Insats %s raderad -InterventionsArea=Insatssområde -DraftFichinter=Utkast till ingripanden -LastModifiedInterventions=Senaste %s modifierade interventioner -FichinterToProcess=Insatser för att bearbeta +SendInterventionRef=Inlämning av intervention %s +SendInterventionByMail=Skicka intervention via e-post +InterventionCreatedInDolibarr=Intervention %s skapad +InterventionValidatedInDolibarr=Intervention %s bekräftad +InterventionModifiedInDolibarr=Intervention %s ändrad +InterventionClassifiedBilledInDolibarr=Intervention %s angiven som fakturerad +InterventionClassifiedUnbilledInDolibarr=Intervention %s angiven som ofakturerad +InterventionSentByEMail=Intervention %s skickad via e-post +InterventionDeletedInDolibarr=Intervention %s raderad +InterventionsArea=Interventioner +DraftFichinter=Utkast till Interventioner +LastModifiedInterventions=Senaste %s ändrade interventioner +FichinterToProcess=Interventioner att bearbeta TypeContact_fichinter_external_CUSTOMER=Uppföljning kundkontakt -PrintProductsOnFichinter=Skriv även rader av typen "produkt" (inte bara tjänster) på interventionskortet -PrintProductsOnFichinterDetails=Insatser skapade utifrån order -UseServicesDurationOnFichinter=Använd tjänstens varaktighet för interventioner som genereras av order +PrintProductsOnFichinter=Skriv också ut rader av typen "produkt" (inte bara tjänster) på interventionskortet +PrintProductsOnFichinterDetails=Interventioner skapade utifrån order +UseServicesDurationOnFichinter=Använd tjänstens varaktighet för interventioner som genereras från order UseDurationOnFichinter=Döljer varaktighetsfältet för interventionsposter -UseDateWithoutHourOnFichinter=Döljer timmar och minuter från datumfältet för interventionsrekord +UseDateWithoutHourOnFichinter=Döljer timmar och minuter från datumfältet för interventionsposter InterventionStatistics=Statistik över interventioner NbOfinterventions=Antal interventionskort NumberOfInterventionsByMonth=Antal interventionskort per månad (datum för bekräftande) -AmountOfInteventionNotIncludedByDefault=Antalet ingripanden ingår inte som standard i vinst (i de flesta fall används tidtabeller för att räkna upp tid). Lägg till alternativ PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT till 1 i heminställningar-andra för att inkludera dem. -InterId=Insatss id -InterRef=Insatss ref. -InterDateCreation=Datum skapande insats -InterDuration=Varaktighetsintervention -InterStatus=Statusintervention -InterNote=Observera insats -InterLine=Interventionslinje -InterLineId=Line id insats -InterLineDate=Linjedatumintervention -InterLineDuration=Linjens längdintervention -InterLineDesc=Linjebeskrivningsintervention +AmountOfInteventionNotIncludedByDefault=Antalet interventioner ingår inte som standard i beräkning av vinst (i de flesta fall används tidkort för att räkna den använda tiden). Lägg till alternativ PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT till 1 i Start-Inställningar-Annat för att inkludera dem. +InterId=Intervention ID +InterRef=Interventionsref. +InterDateCreation=Intervention skapad datum +InterDuration=Intervention varaktighet +InterStatus=Intervention status +InterNote=Intervention anteckning +InterLine=Interventionsrad +InterLineId=Intervention rad-ID +InterLineDate=Intervention datumrad +InterLineDuration=Intervention varaktighetsrad +InterLineDesc=Intervention radbeskrivning RepeatableIntervention=Mall för intervention ToCreateAPredefinedIntervention=För att skapa en fördefinierad eller återkommande intervention, skapa en gemensam intervention och konvertera den till interventionsmall -ConfirmReopenIntervention=Är du säker på att du vill öppna interventionen %s ? -GenerateInter=Generera intervention +ConfirmReopenIntervention=Är du säker på att du vill återöppna interventionen %s? +GenerateInter=Skapa intervention +FichinterNoContractLinked=Intervention %s har skapats utan ett länkat kontrakt. +ErrorFicheinterCompanyDoesNotExist=Företaget finns inte. Intervention har inte skapats. +NextDateToIntervention=Datum för nästa skapande av intervention +NoIntervention=Inget ingripande diff --git a/htdocs/langs/sv_SE/intracommreport.lang b/htdocs/langs/sv_SE/intracommreport.lang index 2cdd3169b27..3ef4859a78b 100644 --- a/htdocs/langs/sv_SE/intracommreport.lang +++ b/htdocs/langs/sv_SE/intracommreport.lang @@ -1,25 +1,25 @@ Module68000Name = Intracomm-rapport -Module68000Desc = Intracomm-rapporthantering (stöd för franska DEB / DES-format) -IntracommReportSetup = Konfigurering av modul för internkommunikation -IntracommReportAbout = Om intracommreport +Module68000Desc = Intracomm-rapporthantering (stöd för franska DEB/DES-format) +IntracommReportSetup = Konfigurering av modul för Intracomm-rapporter +IntracommReportAbout = Om Intracomm-rapport # Setup -INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) -INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur -INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur -INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions -INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions -INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" +INTRACOMMREPORT_NUM_AGREMENT=Godkännandenummer (utfärdat av det CISD som det är kopplat till) +INTRACOMMREPORT_TYPE_ACTEUR=Typ av aktör +INTRACOMMREPORT_ROLE_ACTEUR=Roll för aktören +INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Nivå av skyldighet för introducerare +INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Nivå av skyldighet på försändelser +INTRACOMMREPORT_CATEG_FRAISDEPORT=Kategori av tjänster av typen "Fraktkostnader" -INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant +INTRACOMMREPORT_NUM_DECLARATION=Deklarantens nummer # Menu MenuIntracommReport=Intracomm-rapport -MenuIntracommReportNew=Ny förklaring +MenuIntracommReportNew=Ny deklarant MenuIntracommReportList=Lista # View -NewDeclaration=Ny förklaring +NewDeclaration=Ny deklaration Declaration=Deklaration AnalysisPeriod=Analysperiod TypeOfDeclaration=Typ av deklaration @@ -31,7 +31,7 @@ IntracommReportTitle=Förberedelse av en XML-fil i ProDouane-format # List IntracommReportList=Lista över genererade deklarationer -IntracommReportNumber=Numero of declaration +IntracommReportNumber=Deklarationsnummer IntracommReportPeriod=Analysperiod IntracommReportTypeDeclaration=Typ av deklaration IntracommReportDownload=ladda ner XML-fil diff --git a/htdocs/langs/sv_SE/knowledgemanagement.lang b/htdocs/langs/sv_SE/knowledgemanagement.lang index de1b5b17445..2dd1cce8770 100644 --- a/htdocs/langs/sv_SE/knowledgemanagement.lang +++ b/htdocs/langs/sv_SE/knowledgemanagement.lang @@ -18,37 +18,37 @@ # # Module label 'ModuleKnowledgeManagementName' -ModuleKnowledgeManagementName = Kunskapshanteringssystem +ModuleKnowledgeManagementName = Kunskapsbas # Module description 'ModuleKnowledgeManagementDesc' -ModuleKnowledgeManagementDesc=Hantera en kunskapshanterings- (KM) eller Help-Desk-bas +ModuleKnowledgeManagementDesc=Hantera en kunskapsbas eller helpdesk-bas # # Admin page # -KnowledgeManagementSetup = Konfigurationssystem för kunskapshantering -Settings = inställningar -KnowledgeManagementSetupPage = Kunskapshanteringssystem inställningssida +KnowledgeManagementSetup = Konfiguration av kunskapsbas +Settings = Inställningar +KnowledgeManagementSetupPage = Inställningar för kunskapsbas # # About page # About = Om -KnowledgeManagementAbout = Om kunskapshantering -KnowledgeManagementAboutPage = Kunshantering om sidan +KnowledgeManagementAbout = Om kunskapsbasen +KnowledgeManagementAboutPage = Kunskapsbasens om-sida -KnowledgeManagementArea = Kunskapshantering +KnowledgeManagementArea = Kunskapsbas MenuKnowledgeRecord = Kunskapsbas ListKnowledgeRecord = Lista över artiklar NewKnowledgeRecord = Ny artikel -ValidateReply = Validera lösningen +ValidateReply = Bekräfta lösning KnowledgeRecords = Artiklar KnowledgeRecord = Artikel KnowledgeRecordExtraFields = Extrafält för artikel -GroupOfTicket=Grupp av biljetter -YouCanLinkArticleToATicketCategory=Du kan länka en artikel till en biljettgrupp (så artikeln kommer att föreslås under kvalificeringen av nya biljetter) -SuggestedForTicketsInGroup=Suggested for tickets when group is +GroupOfTicket=Grupp av ärenden +YouCanLinkArticleToATicketCategory=Du kan länka artikeln till en ärendegrupp (så att artikeln markeras på alla ärenden i denna grupp) +SuggestedForTicketsInGroup=Föreslås vid skapande av ärende -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=Ange som föråldrad +ConfirmCloseKM=Bekräftar du att denna artikel är föråldrad och skall stängas? +ConfirmReopenKM=Vill du återställa den här artikeln till statusen "Bekräftad"? diff --git a/htdocs/langs/sv_SE/languages.lang b/htdocs/langs/sv_SE/languages.lang index 4cac00c7760..fc6c39a2380 100644 --- a/htdocs/langs/sv_SE/languages.lang +++ b/htdocs/langs/sv_SE/languages.lang @@ -1,27 +1,32 @@ # Dolibarr language file - Source file is en_US - languages Language_am_ET=Etiopisk Language_ar_AR=Arabiska -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=Arabiska (Algeriet) Language_ar_EG=Arabiska (egypten) -Language_ar_MA=Arabic (Moroco) +Language_ar_JO=Arabiska (Jordanien) +Language_ar_MA=Arabiska (Marocko) Language_ar_SA=Arabiskt Language_ar_TN=Arabiska (Tunisien) Language_ar_IQ=Arabiska (irak) -Language_as_IN=Assamese +Language_as_IN=assamiska Language_az_AZ=Azerbajdzjanska Language_bn_BD=Bengaliska Language_bn_IN=Bengali (Indien) Language_bg_BG=Bulgariska +Language_bo_CN=tibetanska Language_bs_BA=Bosniska Language_ca_ES=Katalanska Language_cs_CZ=Tjeckiska +Language_cy_GB=walesiska Language_da_DA=Danska Language_da_DK=Danskt Language_de_DE=Tyska Language_de_AT=Tyska (Österrike) Language_de_CH=Tyska (Schweiz) +Language_de_LU=tyska (Luxemburg) Language_el_GR=Grekiska Language_el_CY=Grekiska +Language_en_AE=engelska (Förenade Arabemiraten) Language_en_AU=Engelska (Australien) Language_en_CA=Engelska (Kanada) Language_en_GB=Engelska (Storbritannien) @@ -31,11 +36,13 @@ Language_en_SA=Engelska (Saudiarabien) Language_en_SG=Engelska (Singapore) Language_en_US=Engelska (USA) Language_en_ZA=Engelska (Sydafrika) +Language_en_ZW=engelska (Zimbabwe) Language_es_ES=Spanska Language_es_AR=Spanska (Argentina) Language_es_BO=Spanska (Bilivia) Language_es_CL=Spanska (Chile) Language_es_CO=Spanska (Colombia) +Language_es_CR=Spanska (Costa Rica) Language_es_DO=Spanska (Dominikanska republiken) Language_es_EC=Spanska (ecuador) Language_es_GT=Spanska (Guatemala) @@ -74,7 +81,7 @@ Language_it_IT=Italienska Language_it_CH=Italienska (Schweiz) Language_ja_JP=Japanska Language_ka_GE=Gregorianska -Language_kk_KZ=Kazakh +Language_kk_KZ=Kazakiska Language_km_KH=Khmer Language_kn_IN=Kanadensiska Language_ko_KR=Koreanska @@ -83,19 +90,22 @@ Language_lt_LT=Litauiska Language_lv_LV=Lettländska Language_mk_MK=Makedonska Language_mn_MN=mongoliska +Language_my_MM=burmesiska Language_nb_NO=Norska (bokmål) Language_ne_NP=Nepalesiska Language_nl_BE=Holländska (Belgien) Language_nl_NL=Nederländska Language_pl_PL=Polska Language_pt_AO=Portugisiska (Angola) +Language_pt_MZ=Portugisiska (Moçambique) Language_pt_BR=Portugisiska (Brasilien) Language_pt_PT=Portugisiska Language_ro_MD=Rumänska (Moldavien) Language_ro_RO=Rumänska Language_ru_RU=Ryska Language_ru_UA=Ryska (Ukraina) -Language_tg_TJ=Tajik +Language_ta_IN=Tamil +Language_tg_TJ=Tadzjikiska Language_tr_TR=Turkiska Language_sl_SI=Slovenska Language_sv_SV=Svenska @@ -103,9 +113,11 @@ Language_sv_SE=Svenskt Language_sq_AL=Albanska Language_sk_SK=Slovakiska Language_sr_RS=Serbiska +Language_sw_KE=Swahili Language_sw_SW=Swahili Language_th_TH=Thailändska Language_uk_UA=Ukrainska +Language_ur_PK=Urdu Language_uz_UZ=Uzbekiska Language_vi_VN=Vietnamesiska Language_zh_CN=Kinesiska diff --git a/htdocs/langs/sv_SE/ldap.lang b/htdocs/langs/sv_SE/ldap.lang index c73608e5fb8..48358ffd44a 100644 --- a/htdocs/langs/sv_SE/ldap.lang +++ b/htdocs/langs/sv_SE/ldap.lang @@ -8,20 +8,24 @@ LDAPInformationsForThisMember=Information i LDAP-databas för denna medlem LDAPInformationsForThisMemberType=Information i LDAP-databasen för denna medlemstyp LDAPAttributes=LDAP-attribut LDAPCard=LDAP-kort -LDAPRecordNotFound=Spela som inte finns i LDAP-databas +LDAPRecordNotFound=Post som inte finns i LDAP-databas LDAPUsers=Användare i LDAP-databas LDAPFieldStatus=Status -LDAPFieldFirstSubscriptionDate=Första teckningsdag -LDAPFieldFirstSubscriptionAmount=Fist teckningsbelopp +LDAPFieldFirstSubscriptionDate=Första prenumerationsdatum +LDAPFieldFirstSubscriptionAmount=Första prenumerationsbelopp LDAPFieldLastSubscriptionDate=Senaste prenumerationsdatum -LDAPFieldLastSubscriptionAmount=Senaste abonnemangsbeloppet +LDAPFieldLastSubscriptionAmount=Senaste prenumerationsbelopp LDAPFieldSkype=Skype ID -LDAPFieldSkypeExample=Exempel: SkypeName -UserSynchronized=Användare synkroniseras -GroupSynchronized=Grupp synkroniseras -MemberSynchronized=Medlem synkroniseras +LDAPFieldSkypeExample=Exempel: SkypeNamn +UserSynchronized=Användare synkroniserad +GroupSynchronized=Grupp synkroniserad +MemberSynchronized=Medlem synkroniserad MemberTypeSynchronized=Medlemstypen synkroniserad -ContactSynchronized=Kontakta synkroniseras +ContactSynchronized=Kontakt synkroniserad ForceSynchronize=Tvinga synkronisering Dolibarr -> LDAP -ErrorFailedToReadLDAP=Misslyckades med att läsa LDAP-databas. Kontrollera LDAP-modul setup och databas tillgänglighet. +ErrorFailedToReadLDAP=Misslyckades med att läsa LDAP-databas. Kontrollera LDAP-modul inställning och databas tillgänglighet. PasswordOfUserInLDAP=Lösenord för användare i LDAP +LDAPPasswordHashType=Lösenord hashtyp +LDAPPasswordHashTypeExample=Typ av lösenordshash som används på servern +SupportedForLDAPExportScriptOnly=Stöds endast av ett LDAP-exportskript +SupportedForLDAPImportScriptOnly=Stöds endast av ett LDAP-importskript diff --git a/htdocs/langs/sv_SE/link.lang b/htdocs/langs/sv_SE/link.lang index dbe9db244dc..da38186f5b8 100644 --- a/htdocs/langs/sv_SE/link.lang +++ b/htdocs/langs/sv_SE/link.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - languages -LinkANewFile=Länka en ny fil / dokument +LinkANewFile=Länka en ny fil/dokument LinkedFiles=Länkade filer och dokument NoLinkFound=Inga registrerade länkar -LinkComplete=Filen har kopplats framgångsrikt -ErrorFileNotLinked=Filen kunde inte kopplas +LinkComplete=Filen har länkats +ErrorFileNotLinked=Filen kunde inte länkas LinkRemoved=Länken %s har tagits bort -ErrorFailedToDeleteLink= Det gick inte att ta bort länk '%s' -ErrorFailedToUpdateLink= Det gick inte att uppdatera länken '%s' +ErrorFailedToDeleteLink= Det gick inte att ta bort länk %s +ErrorFailedToUpdateLink= Det gick inte att uppdatera länken %s URLToLink=URL för länk OverwriteIfExists=Skriv över fil om den existerar diff --git a/htdocs/langs/sv_SE/loan.lang b/htdocs/langs/sv_SE/loan.lang index c1be5555d90..3f665dc7c22 100644 --- a/htdocs/langs/sv_SE/loan.lang +++ b/htdocs/langs/sv_SE/loan.lang @@ -3,20 +3,20 @@ Loan=Lån Loans=Lån NewLoan=Nytt lån ShowLoan=Visa lån -PaymentLoan=lånebetalning -LoanPayment=lånebetalning -ShowLoanPayment=visa lånebetalning +PaymentLoan=Lånebetalning +LoanPayment=Lånebetalning +ShowLoanPayment=Visa lånebetalning LoanCapital=Kapital Insurance=Försäkring Interest=Ränta -Nbterms=Antal termer -Term=Termin -LoanAccountancyCapitalCode=Redovisningskontokapital -LoanAccountancyInsuranceCode=Redovisningskontoförsäkring -LoanAccountancyInterestCode=Räkningskonto ränta -ConfirmDeleteLoan=Bekräfta borttagning av lån -LoanDeleted=Lånet borttaget -ConfirmPayLoan=Bekräfta uppmärkningen av detta lån +Nbterms=Antal perioder +Term=Period +LoanAccountancyCapitalCode=Redovisningskonto kapital +LoanAccountancyInsuranceCode=Redovisningskonto försäkring +LoanAccountancyInterestCode=Redovisningskonto ränta +ConfirmDeleteLoan=Bekräfta radering av lån +LoanDeleted=Lånet raderat +ConfirmPayLoan=Bekräfta markeringen av detta lån LoanPaid=Lånet betalt ListLoanAssociatedProject=Förteckning över lån i samband med projektet AddLoan=Skapa lån @@ -24,11 +24,11 @@ FinancialCommitment=Finansiellt engagemang InterestAmount=Ränta CapitalRemain=Kapital kvarstår TermPaidAllreadyPaid = Denna period är redan betald -CantUseScheduleWithLoanStartedToPaid = Kan inte använda schemaläggaren för ett lån när betalningen har startat -CantModifyInterestIfScheduleIsUsed = Du kan inte ändra intresse om du använder schema +CantUseScheduleWithLoanStartedToPaid = Det går inte att generera en tidslinje för ett lån med en påbörjad betalning +CantModifyInterestIfScheduleIsUsed = Du kan inte ändra ränta om du använder ett schema # Admin -ConfigLoan=Modullånets konfiguration -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Redovisningskontokapital som standard -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Räkenskapsredovisning är som standard -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Redovisningsbokföringsförsäkring som standard +ConfigLoan=Inställningar för modulen lån +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Konto (från kontoplanen) som ska användas som standard för kapital (lånemodul) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Konto (från kontoplanen) som ska användas som standard för ränta (lånemodul) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Konto (från kontoplanen) som ska användas som standard för försäkring (lånemodul) CreateCalcSchedule=Redigera ekonomiskt engagemang diff --git a/htdocs/langs/sv_SE/mailmanspip.lang b/htdocs/langs/sv_SE/mailmanspip.lang index 5f396378c15..73e89c9db76 100644 --- a/htdocs/langs/sv_SE/mailmanspip.lang +++ b/htdocs/langs/sv_SE/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -MailmanSpipSetup=Brevbärare och SPIP modul Setup -MailmanTitle=Mailman sändlista systemet -TestSubscribe=För att testa prenumeration på Mailman listor -TestUnSubscribe=För att testa unsubscribe från Mailman listor -MailmanCreationSuccess=Prenumerationstest genomfördes framgångsrikt -MailmanDeletionSuccess=Avprenumenerationstest utfördes framgångsrikt -SynchroMailManEnabled=En Mailman uppdatering kommer att utföras -SynchroSpipEnabled=En SPIP uppdatering kommer att utföras -DescADHERENT_MAILMAN_ADMINPW=Mailman administratörslösenord +MailmanSpipSetup=Inställningar för modulen Mailman och SPIP +MailmanTitle=Mailman e-postlista +TestSubscribe=För att testa prenumerera på Mailman-listor +TestUnSubscribe=För att testa avprenumerera från Mailman-listor +MailmanCreationSuccess=Test för prenumeration gick utmärkt +MailmanDeletionSuccess=Test för avprenumeration gick utmärkt +SynchroMailManEnabled=En uppdatering av Mailman kommer att utföras +SynchroSpipEnabled=En uppdatering av SPIP kommer att utföras +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administratörslösenord DescADHERENT_MAILMAN_URL=URL för Mailman prenumerationer -DescADHERENT_MAILMAN_UNSUB_URL=URL för Mailman unsubscriptions -DescADHERENT_MAILMAN_LISTS=List (ar) för automatisk inskription av nya medlemmar (separerade med ett kommatecken) +DescADHERENT_MAILMAN_UNSUB_URL=URL för Mailman avprenumerationer +DescADHERENT_MAILMAN_LISTS=List(or) för automatisk addering av nya medlemmar (separerade med ett kommatecken) SPIPTitle=SPIP Content Management System -DescADHERENT_SPIP_SERVEUR=SPIP Server -DescADHERENT_SPIP_DB=SPIP databasnamn -DescADHERENT_SPIP_USER=SPIP databas inloggning -DescADHERENT_SPIP_PASS=SPIP databas lösenord +DescADHERENT_SPIP_SERVEUR=SPIP-server +DescADHERENT_SPIP_DB=SPIP-databasnamn +DescADHERENT_SPIP_USER=SPIP-databasinloggning +DescADHERENT_SPIP_PASS=SPIP-databaslösenord AddIntoSpip=Lägg till SPIP AddIntoSpipConfirmation=Är du säker på att du vill lägga till denna medlem i SPIP? AddIntoSpipError=Det gick inte att lägga till användaren i SPIP DeleteIntoSpip=Ta bort från SPIP DeleteIntoSpipConfirmation=Är du säker på att du vill ta bort den här medlemmen från SPIP? -DeleteIntoSpipError=Det gick inte att undertrycka användaren från SPIP +DeleteIntoSpipError=Det gick inte att trycka bort användaren från SPIP SPIPConnectionFailed=Det gick inte att ansluta till SPIP -SuccessToAddToMailmanList=%s framgångsrikt lagd till mailman lista %s eller SPIP databas -SuccessToRemoveToMailmanList=%s avlägsnades framgångsrikt från brevlistorlistan %s eller SPIP-databasen +SuccessToAddToMailmanList=%s har lagts till mailman-lista %s eller SPIP databas +SuccessToRemoveToMailmanList=%s avlägsnades från mailman-lista %s eller SPIP-databasen diff --git a/htdocs/langs/sv_SE/mails.lang b/htdocs/langs/sv_SE/mails.lang index a574fd58692..c00d6838921 100644 --- a/htdocs/langs/sv_SE/mails.lang +++ b/htdocs/langs/sv_SE/mails.lang @@ -7,10 +7,10 @@ MailCard=E-post kort MailRecipients=Mottagare MailRecipient=Mottagare MailTitle=Beskrivning -MailFrom=Avsändare +MailFrom=Från MailErrorsTo=Fel på MailReply=Svara -MailTo=Mottagare (s) +MailTo=Fakturamottagare MailToUsers=Till användare MailCC=Kopiera till MailToCCUsers=Kopiera till användare (er) @@ -43,7 +43,7 @@ MailSuccessfulySent=E-post (från %s till %s) godkänd för leverans MailingSuccessfullyValidated=E-post bekräftades MailUnsubcribe=Avanmälan MailingStatusNotContact=Kontakta inte längre -MailingStatusReadAndUnsubscribe=Läs och avsluta prenumerationen +MailingStatusReadAndUnsubscribe=Läs och avsluta abonnemang ErrorMailRecipientIsEmpty=E-postmottagare är tom WarningNoEMailsAdded=Inga nya E-posta lägga till mottagarens lista. ConfirmValidMailing=Är du säker på att du vill bekräfta den här e-posten? @@ -60,7 +60,7 @@ EMailTestSubstitutionReplacedByGenericValues=När du använder testläge är sub MailingAddFile=Bifoga filen NoAttachedFiles=Inga bifogade filer BadEMail=Dåligt värde för e-post -EMailNotDefined=Email not defined +EMailNotDefined=E-post inte definierad ConfirmCloneEMailing=Är du säker på att du vill klona den här e-posten? CloneContent=Klona meddelande CloneReceivers=Cloner mottagare @@ -126,13 +126,13 @@ EMailRecipient=Mottagarens E-post TagMailtoEmail=Mottagar Email (inklusive html "mailto:" länk) NoEmailSentBadSenderOrRecipientEmail=Ingen email skickad. Dålig avsändare eller mottagarens e-postadress. Verifiera användarprofil. # Module Notifications -Notifications=Anmälningar +Notifications=Notiser NotificationsAuto=Meddelanden Auto. NoNotificationsWillBeSent=Inga automatiska e-postmeddelanden planeras för den här händelsetypen och företaget ANotificationsWillBeSent=En automatisk avisering skickas via e-post SomeNotificationsWillBeSent=%s automatiska meddelanden skickas via e-post AddNewNotification=Prenumerera på ett nytt automatiskt e-postmeddelande (mål / händelse) -ListOfActiveNotifications=Lista över alla aktiva prenumerationer (mål / händelser) för automatisk e-postavisering +ListOfActiveNotifications=Lista över alla aktiva abonnemang (mål/händelser) för automatisk e-postavisering ListOfNotificationsDone=Lista över alla automatiska e-postmeddelanden som skickats MailSendSetupIs=Konfiguration av e-post att skicka har ställts in till "% s". Detta läge kan inte användas för att skicka massutskick. MailSendSetupIs2=Du måste först gå, med ett administratörskonto, i meny% Shome - Setup - e-post% s för att ändra parameter '% s' för att använda läget "% s". Med det här läget kan du ange inställningar för SMTP-servern från din internetleverantör och använda Mass mejla funktionen. @@ -163,8 +163,8 @@ AdvTgtDeleteFilter=Radera filter AdvTgtSaveFilter=Spara filter AdvTgtCreateFilter=Skapa filter AdvTgtOrCreateNewFilter=Namn på nytt filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties +NoContactWithCategoryFound=Ingen kategori hittades kopplad till vissa kontakter/adresser +NoContactLinkedToThirdpartieWithCategoryFound=Ingen kategori hittades kopplad till vissa tredje parter OutGoingEmailSetup=Utgående e-post InGoingEmailSetup=Inkommande e-postmeddelanden OutGoingEmailSetupForEmailing=Utgående e-post (för modul %s) @@ -176,5 +176,6 @@ Answered=Besvarade IsNotAnAnswer=Är inte svaret (första e-postmeddelandet) IsAnAnswer=Är ett svar på ett första e-postmeddelande RecordCreatedByEmailCollector=Post skapad av e-postsamlare %s från e-post %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact +DefaultBlacklistMailingStatus=Standardvärde för fältet '%s' när en ny kontakt skapas DefaultStatusEmptyMandatory=Tom men obligatorisk +WarningLimitSendByDay=VARNING: Inställningen eller kontraktet för din instans begränsar ditt antal e-postmeddelanden per dag till %s . Om du försöker skicka mer kan det leda till att din instans saktar ner eller avbryts. Kontakta din support om du behöver en högre kvot. diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 3ab6e851b6d..55d059c60ec 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -1,76 +1,83 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, SeparatorThousand=Space -FormatDateShort=%Y-%m-%d -FormatDateShortInput=%Y-%m-%d -FormatDateShortJava=yyyy-MM-dd -FormatDateShortJavaInput=yyyy-MM-dd -FormatDateShortJQuery=yy-mm-dd -FormatDateShortJQueryInput=yy-mm-dd -FormatHourShortJQuery=tt:mm -FormatHourShort=%H:%M +FormatDateShort=%m/%d/%Y +FormatDateShortInput=%m/%d/%Y +FormatDateShortJava=MM/dd/yyyy +FormatDateShortJavaInput=MM/dd/yyyy +FormatDateShortJQuery=mm/dd/yy +FormatDateShortJQueryInput=mm/dd/yy +FormatHourShortJQuery=HH:MI +FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M -FormatDateTextShort=%b %d %Y -FormatDateText=%B %d %Y -FormatDateHourShort=%Y-%m-%d %H:%M -FormatDateHourSecShort=%Y-%m-%d %I:%M:%S %p -FormatDateHourTextShort=%d %b %Y, %H:%M -FormatDateHourText=%d %B %Y, %H:%M +FormatDateTextShort=%b %d, %Y +FormatDateText=%B %d, %Y +FormatDateHourShort=%m/%d/%Y %I:%M %p +FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourTextShort=%b %d, %Y, %I:%M %p +FormatDateHourText=%B %d, %Y, %I:%M %p DatabaseConnection=Databasanslutning NoTemplateDefined=Ingen mall tillgänglig för denna e-posttyp -AvailableVariables=Tillgängliga substitutionsvariabler +AvailableVariables=Tillgängliga ersättningsvariabler NoTranslation=Ingen översättning Translation=Översättning -CurrentTimeZone=PHP server tidszon +Translations=Översättningar +CurrentTimeZone=Tidszon PHP (server) EmptySearchString=Ange icke tomma sökkriterier EnterADateCriteria=Ange ett datumkriterium NoRecordFound=Ingen post funnen -NoRecordDeleted=Ingen post borttagen +NoRecordDeleted=Ingen post raderad NotEnoughDataYet=Inte tillräckligt med data NoError=Inget fel Error=Fel Errors=Fel -ErrorFieldRequired=Fältet '%s' måste anges +ErrorFieldRequired=Fältet '%s' är obligatoriskt ErrorFieldFormat=Fältet '%s' har ett felaktigt värde -ErrorFileDoesNotExists=Arkiv %s finns inte +ErrorFileDoesNotExists=Filen %s finns inte ErrorFailedToOpenFile=Kunde inte öppna filen %s -ErrorCanNotCreateDir=Kan inte skapa dir %s -ErrorCanNotReadDir=Kan inte läsa dir %s -ErrorConstantNotDefined=Parameter %s inte definierad +ErrorCanNotCreateDir=Kunde inte skapa katalogen %s +ErrorCanNotReadDir=Kan inte läsa katalogen %s +ErrorConstantNotDefined=Parametern %s inte angiven ErrorUnknown=Okänt fel ErrorSQL=SQL-fel -ErrorLogoFileNotFound=Logo fil '%s' hittades inte -ErrorGoToGlobalSetup=Gå till "Company / Organization" inställning för att åtgärda det här -ErrorGoToModuleSetup=Gå till modul inställningarna för att åtgärda detta +ErrorLogoFileNotFound=Logo filen %s hittades inte +ErrorGoToGlobalSetup=Gå till inställningen "Företag/organisation" för att åtgärda +ErrorGoToModuleSetup=Gå till modulinställningarna för att åtgärda detta ErrorFailedToSendMail=Det gick inte att skicka e-post (avsändare = %s, mottagare = %s) ErrorFileNotUploaded=Filen har inte laddats upp. Kontrollera att storleken inte överskrider högsta tillåtna, att det finns plats på disken och att det inte redan finns en fil med samma namn i den här katalogen. ErrorInternalErrorDetected=Fel upptäckt ErrorWrongHostParameter=Fel värdparameter -ErrorYourCountryIsNotDefined=Ditt land är inte definierat. Gå till Hem-Setup-Redigera och skicka formuläret igen. -ErrorRecordIsUsedByChild=Misslyckades med att radera den här posten. Denna post används av minst en barnpost. +ErrorYourCountryIsNotDefined=Ditt land har inte angivits. Gå till Start-Inställningar-Redigera och skicka formuläret igen. +ErrorRecordIsUsedByChild=Misslyckades med att radera den här posten. Denna post används av minst en underordnadpost. ErrorWrongValue=Fel värde ErrorWrongValueForParameterX=Felaktigt värde för parametern %s -ErrorNoRequestInError=Ingen begäran av misstag +ErrorNoRequestInError=Ingen begäran i felet ErrorServiceUnavailableTryLater=Tjänsten är inte tillgänglig just nu. Försök igen senare. -ErrorDuplicateField=Dublett-värde i ett unikt fält +ErrorDuplicateField=Dublettvärde i ett unikt fält ErrorSomeErrorWereFoundRollbackIsDone=Några fel hittades. Ändringar har rullats tillbaka. -ErrorConfigParameterNotDefined=Parameter %s definieras inte i Dolibarr config-filen conf.php . -ErrorCantLoadUserFromDolibarrDatabase=Det gick inte att hitta användare %s i Dolibarr databas. -ErrorNoVATRateDefinedForSellerCountry=Fel, ingen moms har definierats för landet '%s'. -ErrorNoSocialContributionForSellerCountry=Fel, ingen social / skatteskatt typ definierad för land "%s". -ErrorFailedToSaveFile=Fel, kunde inte spara filen. -ErrorCannotAddThisParentWarehouse=Du försöker lägga till ett förälderlager som redan är ett barn i ett befintligt lager -FieldCannotBeNegative=Fältet "%s" får inte vara negativt -MaxNbOfRecordPerPage=Max. Antal poster per sida +ErrorConfigParameterNotDefined=Parametern %s har inte angivits i Dolibarr konfiguration conf.php. +ErrorCantLoadUserFromDolibarrDatabase=Det gick inte att hitta användaren %s i Dolibarrs databas. +ErrorNoVATRateDefinedForSellerCountry=Fel! Ingen moms har angivits för landet %s. +ErrorNoSocialContributionForSellerCountry=Fel! Ingen momstyp angiven för landet %s. +ErrorFailedToSaveFile=Fel! Kunde inte spara filen. +ErrorCannotAddThisParentWarehouse=Du försöker lägga till ett överordnat lager som redan är underordnat till ett befintligt lager +FieldCannotBeNegative=Fältet %s får inte vara negativt +MaxNbOfRecordPerPage=Max antal poster per sida NotAuthorized=Du har inte behörighet att göra det. -SetDate=Ställ in datum +SetDate=Ange datum SelectDate=Välj datum SeeAlso=Se även %s SeeHere=Se hänvisning @@ -78,65 +85,65 @@ ClickHere=Klicka här Here=Här Apply=Tillämpa BackgroundColorByDefault=Standard bakgrundsfärg -FileRenamed=Filen ändrades med framgång -FileGenerated=Filen lyckades genereras +FileRenamed=Filen har ändrats +FileGenerated=Filen har genererats FileSaved=Filen har sparats FileUploaded=Filen har laddats upp -FileTransferComplete=Fil (er) laddade upp framgångsrikt -FilesDeleted=Fil(erna) har tagits bort -FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta. +FileTransferComplete=Fil (er) har laddats upp +FilesDeleted=Fil(er) har tagits bort +FileWasNotUploaded=En fil är vald att bifoga, men har ännu inte laddats upp. Klicka på Bifoga fil för att ladda upp. NbOfEntries=Antal poster -GoToWikiHelpPage=Läs onlinehjälp (Internet behövs) -GoToHelpPage=Läs hjälpen -DedicatedPageAvailable=Dedicated help page related to your current screen +GoToWikiHelpPage=Läs onlinehjälp (internetåtkomst krävs) +GoToHelpPage=Läs hjälp +DedicatedPageAvailable=Dedikerad hjälpsida relaterat till nuvarande skärmbild HomePage=Webbsida RecordSaved=Post sparades RecordDeleted=Post raderad RecordGenerated=Post skapad LevelOfFeature=Nivå av funktioner -NotDefined=Inte definierat -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr-autentiseringsläget är inställt på %s i konfigurationsfilen conf.php .
    Det betyder att lösenordsdatabasen är extern till Dolibarr, så att ändra detta fält kan inte ha någon effekt. +NotDefined=Inte angivet +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr-autentiseringsläget är inställt på %s i konfigurationsfilen conf.php.
    Det betyder att lösenordsdatabasen är extern till Dolibarr, så att ändra detta fält kan inte ha någon effekt. Administrator=Administratör Undefined=Odefinierad -PasswordForgotten=Lösenordet glömt? +PasswordForgotten=Glömt lösenord? NoAccount=Inget konto? SeeAbove=Se ovan -HomeArea=Hem +HomeArea=Start LastConnexion=Senaste inloggning -PreviousConnexion=Tidigare inloggning +PreviousConnexion=Senaste inloggning PreviousValue=Föregående värde -ConnectedOnMultiCompany=Ansluten enhet +ConnectedOnMultiCompany=Ansluten på miljö ConnectedSince=Ansluten sedan AuthenticationMode=Autentiseringsläge RequestedUrl=Begärd webbadress -DatabaseTypeManager=Database Type Manager -RequestLastAccessInError=Senaste databasåtkomstförfrågan fel -ReturnCodeLastAccessInError=Returkod för senaste databasåtkomstbegäran -InformationLastAccessInError=Information för senaste databasåtkomstbegäran +DatabaseTypeManager=Hanterare för databastyp +RequestLastAccessInError=Senaste fel för databasåtkomst +ReturnCodeLastAccessInError=Svar vid senaste fel vid databasåtkomst +InformationLastAccessInError=Information för senaste fel vid databas åtkomst DolibarrHasDetectedError=Dolibarr har upptäckt ett tekniskt fel -YouCanSetOptionDolibarrMainProdToZero=Du kan läsa loggfilen eller ange alternativ $ dolibarr_main_prod till '0' i din config-fil för att få mer information. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +YouCanSetOptionDolibarrMainProdToZero=Du kan läsa loggfilen eller ange alternativ $dolibarr_main_prod till '0' i din config-fil för att få mer information. +InformationToHelpDiagnose=Denna informationen kan vara bra för felsökningssyfte (du kan ange $dolibarr_main_prod till '1' för att dölja känslig information) MoreInformation=Mer information TechnicalInformation=Teknisk information TechnicalID=Tekniskt ID -LineID=Linje-ID +LineID=Rad-ID NotePublic=Anteckning (offentlig) NotePrivate=Anteckning (privat) PrecisionUnitIsLimitedToXDecimals=Dolibarr har ställts in för att ange enhetspriser med %s decimaler. DoTest=Test ToFilter=Filter NoFilter=Inget filter -WarningYouHaveAtLeastOneTaskLate=Varning, du har minst ett element som har överskridit tolerans tiden. +WarningYouHaveAtLeastOneTaskLate=Varning, du har minst ett element som har överskridit toleranstiden. yes=ja Yes=Ja no=nej No=Nej All=Alla -Home=Hem +Home=Start Help=Hjälp -OnlineHelp=Online hjälp +OnlineHelp=Onlinehjälp PageWiki=Wiki-sida -MediaBrowser=Media webbläsare +MediaBrowser=Medialäsare Always=Alltid Never=Aldrig Under=under @@ -146,12 +153,12 @@ SelectedPeriod=Vald period PreviousPeriod=Tidigare period Activate=Aktivera Activated=Aktiverat -Closed=Stängt -Closed2=Stängt -NotClosed=Ej stängd +Closed=Stängd +Closed2=Stängd +NotClosed=Inte stängd Enabled=Aktiverat Enable=Aktivera -Deprecated=Föråldrad +Deprecated=Utfasad Disable=Inaktivera Disabled=Inaktiverad Add=Lägg till @@ -160,31 +167,31 @@ RemoveLink=Ta bort länk AddToDraft=Lägg till i utkast Update=Uppdatera Close=Stäng -CloseAs=Ställ in status på -CloseBox=Ta bort widget från din instrumentpanel +CloseAs=Ange status till +CloseBox=Ta bort widget från kontrollpanel Confirm=Bekräfta -ConfirmSendCardByMail=Vill du verkligen skicka innehållet på detta kort via mail till %s ? -Delete=Ta bort -Remove=Ta bort +ConfirmSendCardByMail=Vill du verkligen skicka innehållet på detta kort via e-post till %s? +Delete=Radera +Remove=Radera Resiliate=Avsluta Cancel=Avbryt Modify=Ändra Edit=Redigera Validate=Bekräfta -ValidateAndApprove=Godkänn och bekräft +ValidateAndApprove=Godkänn och bekräfta ToValidate=Att bekräfta NotValidated=Ej bekräftat Save=Spara SaveAs=Spara som SaveAndStay=Spara och stanna -SaveAndNew=Spara och nytt +SaveAndNew=Spara och ny TestConnection=Testa anslutning -ToClone=Klon -ConfirmCloneAsk=Är du säker på att du vill klona objektet %s ? +ToClone=Klona +ConfirmCloneAsk=Är du säker på att du vill klona objektet %s? ConfirmClone=Välj de data du vill klona: -NoCloneOptionsSpecified=Inga uppgifter att klona definierade. +NoCloneOptionsSpecified=Inga uppgifter att klona har angivits. Of=av -Go=Gå +Go=Kör Run=Kör CopyOf=Kopia av Show=Visa @@ -192,39 +199,40 @@ Hide=Dölj ShowCardHere=Visa kort Search=Sök SearchOf=Sök -SearchMenuShortCut=Ctrl + skift + f -QuickAdd=Snabb tillägg -QuickAddMenuShortCut=Ctrl + shift + l +SearchMenuShortCut=Ctrl + Shift + F +QuickAdd=Lägg till snabbt +QuickAddMenuShortCut=Ctrl + Shift + l Valid=Giltig Approve=Godkänn -Disapprove=Ogilla -ReOpen=Öppnar igen +Disapprove=Neka +ReOpen=Öppna igen +OpenVerb=Öppen Upload=Ladda upp ToLink=Länk Select=Välj SelectAll=Välj alla Choose=Välj Resize=Ändra storlek -ResizeOrCrop=Ändra storlek eller beskära -Recenter=Recenter +ResizeOrCrop=Ändra storlek eller beskär +Recenter=Centrera igen Author=Författare User=Användare Users=Användare Group=Grupp Groups=Grupper -UserGroup=User group -UserGroups=User groups -NoUserGroupDefined=Ingen användargrupp är definerad +UserGroup=Användargrupp +UserGroups=Användargrupper +NoUserGroupDefined=Ingen användargrupp är angiven Password=Lösenord -PasswordRetype=Ange ditt lösenord -NoteSomeFeaturesAreDisabled=Observera att en hel del funktioner / moduler är inaktiverade i denna demonstration. +PasswordRetype=Repetera lösenordet +NoteSomeFeaturesAreDisabled=Observera att en hel del funktioner/moduler är inaktiverade i denna demonstration. Name=Namn -NameSlashCompany=Namn / Företag +NameSlashCompany=Namn/företag Person=Person Parameter=Parameter Parameters=Parametrar Value=Värde -PersonalValue=Personlig värde +PersonalValue=Personligt värde NewObject=Ny %s NewValue=Nytt värde OldValue=Gammalt värde %s @@ -232,7 +240,7 @@ CurrentValue=Aktuellt värde Code=Kod Type=Typ Language=Språk -MultiLanguage=Multi-språk +MultiLanguage=Flera språk Note=Anteckning Title=Titel Label=Etikett @@ -241,11 +249,12 @@ Info=Logg Family=Familj Description=Beskrivning Designation=Beskrivning -DescriptionOfLine=Beskrivning av linjen +DescriptionOfLine=Beskrivning av raden DateOfLine=Datum för rad -DurationOfLine=Varaktighet av raden -Model=Doc mall -DefaultModel=Standard doksmall +DurationOfLine=Varaktighet för raden +ParentLine=Överordnad rad-ID +Model=Dokumentmall +DefaultModel=Standard dokumentmall Action=Händelse About=Om Number=Antal @@ -256,9 +265,9 @@ Limit=Gräns Limits=Gränser Logout=Logga ut NoLogoutProcessWithAuthMode=Ingen applikativ koppling funktionen med autentisering läge %s -Connection=Inlogg -Setup=Setup -Alert=Alert +Connection=Logga in +Setup=Inställningar +Alert=Varning MenuWarnings=Varningar Previous=Föregående Next=Nästa @@ -268,40 +277,40 @@ Now=Nu HourStart=Start timme Deadline=Deadline Date=Datum -DateAndHour=Datum och timme +DateAndHour=Datum och klockslag DateToday=Dagens datum DateReference=Referensdatum DateStart=Startdatum DateEnd=Slutdatum DateCreation=Datum för skapande -DateCreationShort=Creat. datum +DateCreationShort=Skapandedatum IPCreation=Skapande IP DateModification=Ändringsdatum DateModificationShort=Ändr. datum IPModification=Ändring IP DateLastModification=Senaste ändringsdatum DateValidation=Bekräftelsesdatum -DateSigning=Underteckningsdatum +DateSigning=Signeringsdatum DateClosing=Sista dag DateDue=Förfallodag -DateValue=Valuteringsdag -DateValueShort=Valuteringsdag -DateOperation=Operation datum -DateOperationShort=Oper. Datum +DateValue=Värderingsdag +DateValueShort=Värderingsdag +DateOperation=Utförandedatum +DateOperationShort=Utf. datum DateLimit=Begränsa datum -DateRequest=Begär datum -DateProcess=Process datum +DateRequest=Förfrågningsdatum +DateProcess=Processdatum DateBuild=Rapportera byggdatum DatePayment=Datum för betalning DateApprove=Godkännandedatum DateApprove2=Godkännandedatum (andra godkännande) -RegistrationDate=Registrerings datum -UserCreation=Skapande användare -UserModification=Modifieringsanvändare -UserValidation=Bekräftelsesanvändare -UserCreationShort=Creat. användare -UserModificationShort=Modif. användare -UserValidationShort=Giltig. användare +RegistrationDate=Registreringsdatum +UserCreation=Skapade användare +UserModification=Ändrade användare +UserValidation=Godkände användare +UserCreationShort=Skap. anv. +UserModificationShort=Ändr. anv. +UserValidationShort=Godk. anv. DurationYear=år DurationMonth=månad DurationWeek=vecka @@ -336,15 +345,15 @@ MonthOfDay=Dagens månad DaysOfWeek=Veckodagar HourShort=H MinuteShort=mn -Rate=Sats -CurrencyRate=Valutaomräkningskurs -UseLocalTax=Inkludera skatt +Rate=Kurs +CurrencyRate=Valutakurs +UseLocalTax=Inkludera moms Bytes=Bytes KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Ceated av +UserAuthor=Skapad av UserModif=Uppdaterad av b=b. Kb=Kb @@ -356,43 +365,43 @@ Copy=Kopiera Paste=Klistra in Default=Standard DefaultValue=Standardvärde -DefaultValues=Standardvärden / filter / sortering +DefaultValues=Standardvärden/filter/sortering Price=Pris PriceCurrency=Pris (valuta) UnitPrice=Pris per enhet UnitPriceHT=Enhetspris (exkl.) -UnitPriceHTCurrency=Enhetspris (exkl.) (Valuta) +UnitPriceHTCurrency=Enhetspris (exkl.) (valuta) UnitPriceTTC=Pris per enhet PriceU=Styckpris -PriceUHT=St.pris(net) -PriceUHTCurrency=U.P (netto) (valuta) -PriceUTTC=UPP. (inkl. skatt) +PriceUHT=Styckepris (netto) +PriceUHTCurrency=Styckepris (netto) (valuta) +PriceUTTC=Styckepris (inkl. moms) Amount=Belopp AmountInvoice=Fakturabelopp -AmountInvoiced=Belopp fakturerat -AmountInvoicedHT=Fakturerat belopp (exkl. Moms) -AmountInvoicedTTC=Fakturerat belopp (inkl. Moms) -AmountPayment=Betalningsbelopp -AmountHTShort=Belopp (exkl.) -AmountTTCShort=Belopp (inkl. moms) -AmountHT=Belopp (exkl. Skatt) -AmountTTC=Belopp (inkl. moms) -AmountVAT=Belopp moms +AmountInvoiced=Fakturerat belopp +AmountInvoicedHT=Fakturerat belopp (exkl. moms) +AmountInvoicedTTC=Fakturerat belopp (inkl. moms) +AmountPayment=Att betala +AmountHTShort=Att betala (exkl.) +AmountTTCShort=Att betala (inkl. moms) +AmountHT=Att betala (exkl. moms) +AmountTTC=Att betala (inkl. moms) +AmountVAT=Moms MulticurrencyAlreadyPaid=Redan betalad, ursprunglig valuta -MulticurrencyRemainderToPay=Fortsätt att betala, ursprunglig valuta -MulticurrencyPaymentAmount=Betalningsbelopp, ursprunglig valuta -MulticurrencyAmountHT=Belopp (exkl. Skatt), ursprunglig valuta -MulticurrencyAmountTTC=Belopp (inkl. Skatt), ursprunglig valuta -MulticurrencyAmountVAT=Belopp skatt, ursprunglig valuta +MulticurrencyRemainderToPay=Återstår att betala, ursprunglig valuta +MulticurrencyPaymentAmount=Att betala, ursprunglig valuta +MulticurrencyAmountHT=Belopp (exkl. moms), ursprunglig valuta +MulticurrencyAmountTTC=Belopp (inkl. moms), ursprunglig valuta +MulticurrencyAmountVAT=Moms, ursprunglig valuta MulticurrencySubPrice=Belopp delpris flera valutor -AmountLT1=Belopp skatt 2 -AmountLT2=Belopp skatt 3 +AmountLT1=Belopp moms 2 +AmountLT2=Belopp moms 3 AmountLT1ES=Belopp RE AmountLT2ES=Belopp IRPF -AmountTotal=Summa +AmountTotal=Totalt belopp AmountAverage=Genomsnittligt belopp -PriceQtyMinHT=Pris kvantitet min. (exkl. skatt) -PriceQtyMinHTCurrency=Pris kvantitet min. (exkl. skatt) (valuta) +PriceQtyMinHT=Pris kvantitet min. (exkl. moms) +PriceQtyMinHTCurrency=Pris kvantitet min. (exkl. moms) (valuta) PercentOfOriginalObject=Procent av originalobjektet AmountOrPercent=Belopp eller procent Percentage=Procent @@ -400,26 +409,26 @@ Total=Summa SubTotal=Delsumma TotalHTShort=Totalt (exkl.) TotalHT100Short=Totalt 100%% (exkl.) -TotalHTShortCurrency=Totalt (exkl. I valuta) -TotalTTCShort=Summa (inkl. moms) -TotalHT=Totalt (exkl. Skatt) -TotalHTforthispage=Totalt (exkl. Skatt) för denna sida +TotalHTShortCurrency=Totalt (exkl. i valuta) +TotalTTCShort=Totalt (inkl. moms) +TotalHT=Totalt (exkl. moms) +TotalHTforthispage=Totalt (exkl. moms) för denna sida Totalforthispage=Totalt för denna sida -TotalTTC=Summa (inkl. moms) -TotalTTCToYourCredit=Summa kredit (inkl. moms) +TotalTTC=Totalt (inkl. moms) +TotalTTCToYourCredit=Totalt (inkl. moms) för kreditering TotalVAT=Summa moms TotalVATIN=Totalt IGST -TotalLT1=Summa skatt 2 -TotalLT2=Summa skatt 3 +TotalLT1=Summa moms 2 +TotalLT2=Summa moms 3 TotalLT1ES=Totalt RE TotalLT2ES=Totalt IRPF TotalLT1IN=Totalt CGST TotalLT2IN=Totalt SGST -HT=Exkl. beskatta +HT=Exkl. moms TTC=Inkl. moms -INCVATONLY=Inc. moms -INCT=Inc. alla skatter -VAT=Moms +INCVATONLY=Inkl. moms +INCT=Inkl. moms och skatt +VAT=Försäljningsskatt VATIN=IGST VATs=Försäljningsskatt VATINs=IGST skatter @@ -432,18 +441,18 @@ LT2ES=IRPF LT1IN=CGST LT2IN=SGST LT1GC=Extra cent -VATRate=Mervärdesskattesats -RateOfTaxN=Skattesats %s -VATCode=Skattesatsskod -VATNPR=Skattesats NPR -DefaultTaxRate=Standard skattesats +VATRate=Momssats +RateOfTaxN=Momssats %s +VATCode=Momssats kod +VATNPR=Momssats NPR +DefaultTaxRate=Standard momssats Average=Genomsnittlig Sum=Summa Delta=Delta StatusToPay=Att betala -RemainToPay=Fortsätt att betala -Module=Modul / applikation -Modules=Moduler / Applications +RemainToPay=Återstår att betala +Module=Modul/applikation +Modules=Moduler/applikationer Option=Alternativ Filters=Filter List=Lista @@ -456,12 +465,12 @@ Favorite=Favorit ShortInfo=Info Ref=Ref. ExternalRef=Ref. extern -RefSupplier=Ref. Säljare +RefSupplier=Ref. säljare RefPayment=Ref. betalning -CommercialProposalsShort=Kommersiella förslag +CommercialProposalsShort=Offerter Comment=Kommentar Comments=Kommentarer -ActionsToDo=Åtgärder att göra +ActionsToDo=Händelser att göra ActionsToDoShort=Att göra ActionsDoneShort=Klar ActionNotApplicable=Ej tillämpligt @@ -470,40 +479,41 @@ ActionRunningShort=Pågående ActionDoneShort=Färdiga ActionUncomplete=Ofullständig LatestLinkedEvents=Senaste %s länkade händelserna -CompanyFoundation=Företag / Organisation +CompanyFoundation=Företag/organisation Accountant=Revisor -ContactsForCompany=Kontakter till denna tredje part -ContactsAddressesForCompany=Kontakter / adresser för denna tredje part -AddressesForCompany=Adresser för denna tredje part -ActionsOnCompany=Evenemang för denna tredje part -ActionsOnContact=Händelser för denna kontakt / adress +ContactsForCompany=Kontakter till denna tredjepart +ContactsAddressesForCompany=Kontakter/adresser för denna tredjepart +AddressesForCompany=Adresser till denna tredjepart +ActionsOnCompany=Händelser för denna tredjepart +ActionsOnContact=Händelser för denna kontakt/adress ActionsOnContract=Händelser för detta kontrakt -ActionsOnMember=Händelser om denna medlem -ActionsOnProduct=Händelser om denna produkt -NActionsLate=%s sent +ActionsOnMember=Händelser runt denna medlem +ActionsOnProduct=Händelser runt denna produkt +ActionsOnAsset=Händelser för denna anläggningstillgång +NActionsLate=%s försenad ToDo=Att göra Completed=Avslutad Running=Pågående RequestAlreadyDone=Begär redan registrerats Filter=Filter -FilterOnInto=Sökkriterier ' %s ' i fält %s -RemoveFilter=Ta bort filtret +FilterOnInto=Sökkriterier %s i fält %s +RemoveFilter=Ta bort filter ChartGenerated=Diagram genererat ChartNotGenerated=Diagram ej genererat GeneratedOn=Byggd den %s Generate=Generera -Duration=Längd -TotalDuration=Total längd +Duration=Varaktighet +TotalDuration=Total varaktighet Summary=Sammanfattning DolibarrStateBoard=Databasstatistik -DolibarrWorkBoard=Öppna föremål +DolibarrWorkBoard=Öppna objekt NoOpenedElementToProcess=Inget öppet element att bearbeta -Available=Tillgängliga +Available=Tillgängligt NotYetAvailable=Ännu inte tillgängligt -NotAvailable=Inte tillgänglig -Categories=Taggar / kategorier -Category=Tag / kategori -By=Genom att +NotAvailable=Inte tillgängligt +Categories=Taggar/kategorier +Category=Tagg/kategori +By=Av From=Från FromDate=Från FromLocation=Från @@ -515,58 +525,59 @@ at=på and=och or=eller Other=Andra -Others=Övrigt +Others=Andra OtherInformations=Övrig information -Quantity=Kvantitet -Qty=Antal +Workflow=Arbetsflöde +Quantity=Antal +Qty=Ant. ChangedBy=Ändrad av ApprovedBy=Godkänd av ApprovedBy2=Godkänd av (andra godkännande) Approved=Godkänd -Refused=Refused +Refused=Nekad ReCalculate=Uppdatera beräkning ResultKo=Misslyckande Reporting=Rapportering Reportings=Rapportering Draft=Utkast Drafts=Utkast -StatusInterInvoiced=faktureras -Validated=Bekräftat -ValidatedToProduce=Validerad (att producera) +StatusInterInvoiced=Fakturerad +Validated=Bekräftad +ValidatedToProduce=Bekräftad (att producera) Opened=Öppen -OpenAll=Öppna alla) -ClosedAll=Stängt (Alla) +OpenAll=Öppna (alla) +ClosedAll=Stängd (alla) New=Ny Discount=Rabatt Unknown=Okänd General=Allmänt Size=Storlek OriginalSize=Originalstorlek -Received=Mottagna +Received=Mottagen Paid=Betald Topic=Ämne -ByCompanies=Av tredje part +ByCompanies=Av tredjepart ByUsers=Av användaren Links=Länkar Link=Länk -Rejects=Rejects +Rejects=Nekanden Preview=Förhandsgranska NextStep=Nästa steg Datas=Data None=Ingen NoneF=Ingen NoneOrSeveral=Ingen eller flera -Late=Sent -LateDesc=Ett objekt definieras som Fördröjd enligt systemkonfigurationen i menyn Hem - Inställningar - Varningar. +Late=Försenad +LateDesc=Ett objekt anges som Fördröjd enligt systemkonfigurationen i menyn Start - Inställningar - Varningar. NoItemLate=Inga sena föremål Photo=Bild Photos=Bilder AddPhoto=Lägg till bild DeletePicture=Ta bort bild ConfirmDeletePicture=Bekräfta ta bort bild? -Login=Inloggning +Login=Logga in LoginEmail=Logga in (e-post) -LoginOrEmail=Logga in eller E-post +LoginOrEmail=Inloggningsnamn eller e-postadress CurrentLogin=Nuvarande inloggning EnterLoginDetail=Ange inloggningsuppgifter January=Januari @@ -591,7 +602,7 @@ Month07=Juli Month08=Augusti Month09=September Month10=Oktober -Month11=november +Month11=November Month12=December MonthShort01=Jan MonthShort02=Feb @@ -599,7 +610,7 @@ MonthShort03=Mar MonthShort04=Apr MonthShort05=Maj MonthShort06=Jun -MonthShort07=Juli +MonthShort07=Jul MonthShort08=Aug MonthShort09=Sep MonthShort10=Okt @@ -608,22 +619,23 @@ MonthShort12=Dec MonthVeryShort01=J MonthVeryShort02=F MonthVeryShort03=M -MonthVeryShort04=en +MonthVeryShort04=A MonthVeryShort05=M MonthVeryShort06=J MonthVeryShort07=J -MonthVeryShort08=en +MonthVeryShort08=A MonthVeryShort09=S MonthVeryShort10=O MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Bifogade filer och dokument JoinMainDoc=Gå med i huvuddokumentet -DateFormatYYYYMM=ÅÅÅÅ-MM -DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD -DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD HH:SS -ReportName=Rapport namn -ReportPeriod=Rapportperiodens utgång +JoinMainDocOrLastGenerated=Skicka standarddokumentet eller det senast genererade om inget funnet. +DateFormatYYYYMM=YYYY-MM +DateFormatYYYYMMDD=YYYY-MM-DD +DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS +ReportName=Rapportnamn +ReportPeriod=Rapportperiod ReportDescription=Beskrivning Report=Rapport Keyword=Nyckelord @@ -631,60 +643,60 @@ Origin=Ursprung Legend=Legend Fill=Fyll Reset=Återställ -File=Arkiv +File=Fil Files=Filer NotAllowed=Inte tillåtet ReadPermissionNotAllowed=Läsbehörighet är inte tillåten -AmountInCurrency=Belopp i %s valuta +AmountInCurrency=Belopp i valutan %s Example=Exempel -Examples=Exempel på +Examples=Exempel NoExample=Inga exempel FindBug=Rapportera ett fel -NbOfThirdParties=Antal tredje parter +NbOfThirdParties=Antal tredjeparter NbOfLines=Antal rader NbOfObjects=Antal objekt -NbOfObjectReferers=Antal relaterade föremål -Referers=Relaterade saker -TotalQuantity=Total kvantitet +NbOfObjectReferers=Antal relaterade objekt +Referers=Relaterade objekt +TotalQuantity=Totalt antal DateFromTo=Från %s till %s DateFrom=Från %s -DateUntil=Fram %s -Check=Kontrollera +DateUntil=Till %s +Check=Markera Uncheck=Avmarkera -Internal=Interna +Internal=Intern External=Extern Internals=Interna -Externals=Extern +Externals=Externa Warning=Varning Warnings=Varningar -BuildDoc=Bygg Doc -Entity=Entity +BuildDoc=Bygg dokument +Entity=Miljö Entities=Enheter -CustomerPreview=Kunden förhandsgranska -SupplierPreview=Leverantörsförhandsgranskning -ShowCustomerPreview=Visa kunden förhandsgranskning -ShowSupplierPreview=Visa leverantörsförhandsvisning -RefCustomer=Ref. kund -InternalRef=Intern referens +CustomerPreview=Förhandsgranska kund +SupplierPreview=Förhandsgranska leverantör +ShowCustomerPreview=Visa förhandsgranskning som kund +ShowSupplierPreview=Visa förhandsgranskning som leverantör +RefCustomer=Kundref. +InternalRef=Intern ref. Currency=Valuta InfoAdmin=Information för administratörer Undo=Ångra Redo=Gör om ExpandAll=Expandera alla UndoExpandAll=Ångra expandera -SeeAll=Se allt +SeeAll=Visa alla Reason=Orsak -FeatureNotYetSupported=Funktionen inte stöds ännu +FeatureNotYetSupported=Funktionen stöds inte ännu CloseWindow=Stäng fönster Response=Svar Priority=Prioritet SendByMail=Skicka via e-post MailSentBy=E-post skickas med -NotSent=Skickades inte -TextUsedInTheMessageBody=E-organ +NotSent=Inte skickat +TextUsedInTheMessageBody=Sidkropp e-post SendAcknowledgementByMail=Skicka bekräftelsemail SendMail=Skicka e-post -Email=epost +Email=E-post NoEMail=Ingen e-post AlreadyRead=Redan läst NotRead=Oläst @@ -693,48 +705,49 @@ Owner=Ägare FollowingConstantsWillBeSubstituted=Följande konstanter kommer att ersätta med motsvarande värde. Refresh=Uppdatera BackToList=Tillbaka till listan -BackToTree=Tillbaka till trädet -GoBack=Gå tillbaka +BackToTree=Tillbaka till träd +GoBack=Bakåt CanBeModifiedIfOk=Kan ändras om det är giltigt CanBeModifiedIfKo=Kan ändras om inte giltigt ValueIsValid=Värdet är giltigt ValueIsNotValid=Värdet är inte giltigt -RecordCreatedSuccessfully=Spela in skapad framgångsrikt -RecordModifiedSuccessfully=Post ändrades korrekt -RecordsModified=%s post (er) modifierad -RecordsDeleted=%s post (er) raderade -RecordsGenerated=%s skapade skivor +RecordCreatedSuccessfully=Post har skapats +RecordModifiedSuccessfully=Post har ändrats +RecordsModified=%s post(er) ändrade +RecordsDeleted=%s post(er) raderade +RecordsGenerated=%s post(er) genererade AutomaticCode=Automatisk kod -FeatureDisabled=Funktion avstängd -MoveBox=Flytta widgeten -Offered=Erbjuds +FeatureDisabled=Funktionen inaktiverad +MoveBox=Flytta widget +Offered=Offererats NotEnoughPermissions=Du har inte behörighet för denna åtgärd -SessionName=Session namn +UserNotInHierachy=Denna åtgärd är till för handläggare för användaren +SessionName=Sessionens namn Method=Metod Receive=Ta emot -CompleteOrNoMoreReceptionExpected=Komplet eller inget mer förväntat +CompleteOrNoMoreReceptionExpected=Komplett eller inget mer förväntat ExpectedValue=Förväntat värde ExpectedQty=Förväntat antal -PartialWoman=Partiell +PartialWoman=Deelvis TotalWoman=Totalt -NeverReceived=Aldrig fick -Canceled=Annullerad +NeverReceived=Fick aldrig +Canceled=Avbruten YouCanChangeValuesForThisListFromDictionarySetup=Du kan ändra värden för den här listan från menyn Inställningar - Ordböcker YouCanChangeValuesForThisListFrom=Du kan ändra värden för den här listan från menyn %s YouCanSetDefaultValueInModuleSetup=Du kan ange det standardvärde som används när du skapar en ny post i modulinställningen Color=Färg Documents=Länkade filer Documents2=Dokument -UploadDisabled=Uppladdning avaktiverad +UploadDisabled=Uppladdning inaktiverad MenuAccountancy=Redovisning MenuECM=Dokument MenuAWStats=AWStats MenuMembers=Medlemmar MenuAgendaGoogle=Google dagordning -MenuTaxesAndSpecialExpenses=Skatter | Särskilda utgifter -ThisLimitIsDefinedInSetup=Dolibarr gräns (meny hem-inställning-säkerhet): %s Kb, PHP gräns: %s Kb -ThisLimitIsDefinedInSetupAt=Dolibarr-gräns (meny %s): %s Kb, PHP-gräns (Param %s): %s Kb -NoFileFound=Inga dokument laddade upp +MenuTaxesAndSpecialExpenses=Moms för särskilda utgifter +ThisLimitIsDefinedInSetup=Dolibarr begränsning (meny Start-Inställningar-Säkerhet): %s Kb, PHP gräns: %s Kb +ThisLimitIsDefinedInSetupAt=Dolibarr begränsning (meny %s): %s Kb, PHP-gräns (Param %s): %s Kb +NoFileFound=Inga dokument laddades upp CurrentUserLanguage=Nuvarande språk CurrentTheme=Nuvarande tema CurrentMenuManager=Nuvarande menyhanterare @@ -747,43 +760,43 @@ ForCustomer=För kund Signature=Namnteckning DateOfSignature=Datum för underskrift HidePassword=Visa kommando med dolt lösenord -UnHidePassword=Visa riktiga kommandot med lösenord i klartext +UnHidePassword=Visa kommandot med lösenord i klartext Root=Root -RootOfMedias=Rot av offentliga medier (/medias) +RootOfMedias=Root för offentlig media (/medias) Informations=Information Page=Sida Notes=Anteckningar AddNewLine=Lägg till ny rad AddFile=Lägg till fil FreeZone=Fritextprodukt -FreeLineOfType=Fri text text, typ: -CloneMainAttributes=Klona objekt med dess viktigaste attribut +FreeLineOfType=Fritext objekt, typ: +CloneMainAttributes=Klona objekt med dess huvudattribut ReGeneratePDF=Återskapa PDF -PDFMerge=PDF-dokument +PDFMerge=Sammanfoga PDF Merge=Sammanfoga DocumentModelStandardPDF=Standard PDF-mall -PrintContentArea=Visa sidan för att skriva ut huvudinnehållet -MenuManager=Menyhanteraren -WarningYouAreInMaintenanceMode=Varning, du är i underhållsläge: endast inloggning %s får använda programmet i det här läget. +PrintContentArea=Visa sidan för att skriva ut innehållsområdet +MenuManager=Menyhanterare +WarningYouAreInMaintenanceMode=Varning, du är i underhållsläge: endast inloggning %s får använda programmet i det här läget. CoreErrorTitle=Systemfel -CoreErrorMessage=Beklagar, ett fel uppstod. Kontakta systemadministratören för att kontrollera loggarna eller inaktivera $ dolibarr_main_prod = 1 för att få mer information. +CoreErrorMessage=Beklagar, men ett fel uppstod! Kontakta systemadministratören för att kontrollera loggarna eller inaktivera $dolibarr_main_prod=1 för att få mer information. CreditCard=Kreditkort ValidatePayment=Bekräfta betalning -CreditOrDebitCard=Kredit-eller betalkort +CreditOrDebitCard=Kredit- eller betalkort FieldsWithAreMandatory=Fält med %s är obligatoriska -FieldsWithIsForPublic=Fält med %s visas i den offentliga listan över medlemmar. Om du inte vill ha det här markerar du kryssrutan "public". +FieldsWithIsForPublic=Fält med %s visas i den offentliga listan över medlemmar. Om du inte vill ha det här markerar du kryssrutan "offentlig". AccordingToGeoIPDatabase=(enligt GeoIP-omvandling) -Line=Line +Line=Rad NotSupported=Stöds inte RequiredField=Obligatoriskt fält Result=Resultat ToTest=Test ValidateBefore=Objektet måste valideras innan du använder den här funktionen Visibility=Synlighet -Totalizable=Totalizable +Totalizable=Totaliserbar TotalizableDesc=Det här fältet kan totaliseras i listan Private=Privat -Hidden=Dolda +Hidden=Dold Resources=Resurser Source=Källa Prefix=Prefix @@ -792,39 +805,40 @@ After=Efter IPAddress=IP-adress Frequency=Frekvens IM=Snabbmeddelanden -NewAttribute=Nya attribut +NewAttribute=Nytt attribut AttributeCode=Attributkod -URLPhoto=URL foto / logo -SetLinkToAnotherThirdParty=Länk till en annan tredje part -LinkTo=Anknyta till -LinkToProposal=Länk till förslag -LinkToOrder=Länk för att beställa -LinkToInvoice=Länk till faktura -LinkToTemplateInvoice=Länk till mallfaktura -LinkToSupplierOrder=Länk till inköpsorder -LinkToSupplierProposal=Länk till leverantörsförslag -LinkToSupplierInvoice=Länk till leverantörsfaktura -LinkToContract=Länk till kontrakt -LinkToIntervention=Länk till intervention -LinkToTicket=Länk till biljett -LinkToMo=Link to Mo +URLPhoto=URL bild/logo +SetLinkToAnotherThirdParty=Länk till en annan tredjepart +LinkTo=Länka till +LinkToProposal=Länka till offert +LinkToExpedition= Länka till expedition +LinkToOrder=Länka till beställning +LinkToInvoice=Länka till faktura +LinkToTemplateInvoice=Länka till fakturamall +LinkToSupplierOrder=Länka till inköpsorder +LinkToSupplierProposal=Länka till leverantörsoffert +LinkToSupplierInvoice=Länka till leverantörsfaktura +LinkToContract=Länka till kontrakt +LinkToIntervention=Länka till intervention +LinkToTicket=Länka till ärendet +LinkToMo=Länka till Mo CreateDraft=Skapa utkast SetToDraft=Tillbaka till utkast ClickToEdit=Klicka för att redigera ClickToRefresh=Klicka för att uppdatera EditWithEditor=Redigera med CKEditor -EditWithTextEditor=Redigera med Textredigerare +EditWithTextEditor=Redigera med textredigerare EditHTMLSource=Redigera HTML-källa -ObjectDeleted=Objekt %s raderad -ByCountry=Per land -ByTown=Per stad -ByDate=Per datum -ByMonthYear=Per månad / år -ByYear=Per år -ByMonth=Per månad -ByDay=Per dag -BySalesRepresentative=Genom säljare -LinkedToSpecificUsers=Länkad till särskild användarekontakt +ObjectDeleted=Objektet %s raderat +ByCountry=Efter land +ByTown=Efter stad +ByDate=Efter datum +ByMonthYear=Efter månad/år +ByYear=Efter år +ByMonth=Efter månad +ByDay=Efter dag +BySalesRepresentative=Efter säljare +LinkedToSpecificUsers=Länkad till särskilt kontakt NoResults=Inga resultat AdminTools=Adminverktyg SystemTools=Systemverktyg @@ -832,124 +846,125 @@ ModulesSystemTools=Modulverktyg Test=Test Element=Element NoPhotoYet=Inga bilder tillgängliga -Dashboard=instrumentbräda -MyDashboard=Min instrumentpanel +Dashboard=Kontrollpanel +MyDashboard=Min kontrollpanel Deductible=Avdragsgill from=från toward=mot Access=Åtkomst SelectAction=Välj åtgärd -SelectTargetUser=Välj målanvändare / anställd -HelpCopyToClipboard=Använd Ctrl+C för att kopiera till klippbordet -SaveUploadedFileWithMask=Spara filen på servern med namnet "%s" (annars "%s") +SelectTargetUser=Välj målanvändare/anställd +HelpCopyToClipboard=Använd Ctrl+C för att kopiera till urklipp +SaveUploadedFileWithMask=Spara filen på servern med namnet %s (eller %s) OriginFileName=Ursprungligt filnamn -SetDemandReason=Ställ in källa -SetBankAccount=Definiera bankkonto +SetDemandReason=Ange källa +SetBankAccount=Ange bankkonto AccountCurrency=Kontovaluta -ViewPrivateNote=Se noter -XMoreLines=%s rader osynliga -ShowMoreLines=Visa fler / mindre rader +ViewPrivateNote=Se anteckningar +XMoreLines=%s rader dolda +ShowMoreLines=Visa fler/färre rader PublicUrl=Offentlig webbadress AddBox=Lägg till låda SelectElementAndClick=Välj ett element och klicka på %s PrintFile=Skriv ut fil %s ShowTransaction=Visa post på bankkonto -ShowIntervention=Visar ingripande +ShowIntervention=Visar intervention ShowContract=Visa kontrakt -GoIntoSetupToChangeLogo=Gå till Hem - Inställning - Företag för att byta logotyp eller gå till Hem - Inställning - Display för att dölja. -Deny=Förneka +GoIntoSetupToChangeLogo=Gå till Start - Inställningar - Företag för att byta logotyp eller gå till Start - Inställningar - Display för att dölja. +Deny=Neka Denied=Nekad ListOf=Lista över %s ListOfTemplates=Lista över mallar Gender=Kön -Genderman=Manlig +Genderman=Man Genderwoman=Kvinna -Genderother=Andra +Genderother=Annat ViewList=Visa lista -ViewGantt=Gantt-vy -ViewKanban=Kanban-vy +ViewGantt=Ganttvy +ViewKanban=Kanbanvy Mandatory=Obligatorisk -Hello=Hallå -GoodBye=Adjö -Sincerely=vänliga hälsningar +Hello=Hej +GoodBye=Hejdå +Sincerely=Vänliga hälsningar ConfirmDeleteObject=Är du säker på att du vill ta bort det här objektet? DeleteLine=Radera rad ConfirmDeleteLine=Är du säker på att du vill radera den här raden? -ErrorPDFTkOutputFileNotFound=Fel: filen genererades inte. Kontrollera att kommandot 'pdftk' är installerat i en katalog som ingår i miljövariabeln $ PATH (endast Linux / unix) eller kontakta systemadministratören. -NoPDFAvailableForDocGenAmongChecked=Ingen PDF var tillgänglig för dokumentgenerering bland kontrollerad post -TooManyRecordForMassAction=För många poster valda för massåtgärder. Åtgärden är begränsad till en lista över %s poster. +ErrorPDFTkOutputFileNotFound=Fel: filen genererades inte. Kontrollera att kommandot 'pdftk' är installerat i en katalog som ingår i miljövariabeln $PATH (endast linux/unix) eller kontakta systemadministratören. +NoPDFAvailableForDocGenAmongChecked=Ingen PDF var tillgänglig för dokumentgenerering bland kontrollerade poster +TooManyRecordForMassAction=För många poster valda för bulkåtgärder. Åtgärden är begränsad till en lista med %s poster. NoRecordSelected=Ingen post vald -MassFilesArea=Område för filer som byggts av massåtgärder -ShowTempMassFilesArea=Visa område med filer som byggts av massåtgärder -ConfirmMassDeletion=Bulk Ta bort bekräftelse -ConfirmMassDeletionQuestion=Är du säker på att du vill ta bort %s markerade poster? +MassFilesArea=Område för filer som skapats via bulkåtgärder +ShowTempMassFilesArea=Visa område med filer som skapats via bulkåtgärder +ConfirmMassDeletion=Bekräftelse för bulkradering +ConfirmMassDeletionQuestion=Är du säker på att du vill ta bort %s markerade post(er)? RelatedObjects=Relaterade objekt ClassifyBilled=Märk fakturerad ClassifyUnbilled=Märk ofakturerad Progress=Framsteg -ProgressShort=Progr. +ProgressShort=Framst. FrontOffice=Front office BackOffice=Back office -Submit=Skicka in -View=Se -Export=Export -Exports=Export +Submit=Skicka +View=Visa +Export=Exportera +Exports=Exporter ExportFilteredList=Exportera filtrerad lista -ExportList=Exportera listan -ExportOptions=Export Options +ExportList=Exportera lista +ExportOptions=Exportalternativ IncludeDocsAlreadyExported=Inkludera dokument som redan har exporterats ExportOfPiecesAlreadyExportedIsEnable=Export av redan exporterade bitar är aktiverad ExportOfPiecesAlreadyExportedIsDisable=Export av redan exporterade bitar är inaktiverad -AllExportedMovementsWereRecordedAsExported=Alla exporterade rörelser registrerades som exporterade -NotAllExportedMovementsCouldBeRecordedAsExported=Inte alla exporterade rörelser kunde registreras som exporterade +AllExportedMovementsWereRecordedAsExported=Alla exporterade förflyttningar har registrerats som exporterade +NotAllExportedMovementsCouldBeRecordedAsExported=Inte alla exporterade förflyttningar kunde registreras som exporterade Miscellaneous=Diverse Calendar=Kalender -GroupBy=Grupp av... -ViewFlatList=Visa plattlista +GroupBy=Gruppera efter... +ViewFlatList=Visa platt lista ViewAccountList=Visa huvudbok -ViewSubAccountList=Visa underkontokonto +ViewSubAccountList=Visa bok för underkonton RemoveString=Ta bort strängen '%s' -SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at https://transifex.com/projects/p/dolibarr/ to add your improvements. +SomeTranslationAreUncomplete=Vissa av de språk som erbjuds kan vara delvis översatta eller kan innehålla fel. Hjälp till att rätta ditt språk genom att registrera dig på https://transifex.com/projects/p/dolibarr/ för att lägga till förbättringar. DirectDownloadLink=Offentlig nedladdningslänk PublicDownloadLinkDesc=Endast länken krävs för att ladda ner filen DirectDownloadInternalLink=Privat nedladdningslänk PrivateDownloadLinkDesc=Du måste vara loggad och du behöver behörighet för att se eller ladda ner filen Download=Ladda ner DownloadDocument=Hämta dokument +DownloadSignedDocument=Hämta signerat dokument ActualizeCurrency=Uppdatera valutakurs -Fiscalyear=Räkenskapsåret +Fiscalyear=Räkenskapsår ModuleBuilder=Modul- och applikationsbyggare SetMultiCurrencyCode=Ange valuta -BulkActions=Massåtgärder +BulkActions=Bulkåtgärder ClickToShowHelp=Klicka för att visa verktygstipshjälp -WebSite=Hemsida -WebSites=webbplatser -WebSiteAccounts=Webbsida konton -ExpenseReport=Kostnads rapport -ExpenseReports=Räkningar +WebSite=Webbplats +WebSites=Webbplatser +WebSiteAccounts=Webbplatskonton +ExpenseReport=Kostnadsrapport +ExpenseReports=Kostnadsrapporter HR=HR -HRAndBank=HR och Bank +HRAndBank=HR och bank AutomaticallyCalculated=Automatiskt beräknad TitleSetToDraft=Gå tillbaka till utkast -ConfirmSetToDraft=Är du säker på att du vill gå tillbaka till formulärstatus? -ImportId=Importera id -Events=Evenemang -EMailTemplates=Email mallar -FileNotShared=Filen delas inte till extern allmänhet +ConfirmSetToDraft=Är du säker på att du vill gå tillbaka till utkaststatus? +ImportId=Importera ID +Events=Händelser +EMailTemplates=E-postmallar +FileNotShared=Filen delas inte externt Project=Projekt Projects=Projekt -LeadOrProject=Bly | Projekt -LeadsOrProjects=Leads | projekt -Lead=Leda -Leads=leads -ListOpenLeads=Lista öppna ledningar -ListOpenProjects=Lista öppna projekt -NewLeadOrProject=Ny ledning eller projekt -Rights=Behörigheter -LineNb=Linje nr. +LeadOrProject=Lead i projekt +LeadsOrProjects=Leads i projekt +Lead=Lead +Leads=Leads +ListOpenLeads=Öppna leads +ListOpenProjects=Öppna projekt +NewLeadOrProject=Ny lead eller projekt +Rights=Rättigheter +LineNb=Rad nr. IncotermLabel=Incoterms -TabLetteringCustomer=Kundbokstäver -TabLetteringSupplier=Leverantörs bokstäver +TabLetteringCustomer=Kundtext +TabLetteringSupplier=Leverantörstext Monday=Måndag Tuesday=Tisdag Wednesday=Onsdag @@ -957,13 +972,13 @@ Thursday=Torsdag Friday=Fredag Saturday=Lördag Sunday=Söndag -MondayMin=Mån. -TuesdayMin=Tisd. -WednesdayMin=Ons. -ThursdayMin=Tors. -FridayMin=Fre. -SaturdayMin=Lör. -SundayMin=Sön. +MondayMin=Mån +TuesdayMin=Tisd +WednesdayMin=Ons +ThursdayMin=Tors +FridayMin=Fre +SaturdayMin=Lör +SundayMin=Sön Day1=Måndag Day2=Tisdag Day3=Onsdag @@ -972,11 +987,11 @@ Day5=Fredag Day6=Lördag Day0=Söndag ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T +ShortTuesday=Ti +ShortWednesday=O +ShortThursday=To ShortFriday=F -ShortSaturday=S +ShortSaturday=L ShortSunday=S one=ett two=två @@ -1012,98 +1027,99 @@ billion=miljard trillion=biljon quadrillion=biljard SelectMailModel=Välj en e-postmall -SetRef=Set ref +SetRef=Ange ref Select2ResultFoundUseArrows=Några resultat hittades. Använd pilarna för att välja. -Select2NotFound=inga resultat -Select2Enter=Stiga på -Select2MoreCharacter=eller mer tecken +Select2NotFound=Inga resultat +Select2Enter=Enter +Select2MoreCharacter=eller fler tecken Select2MoreCharacters=eller fler tecken -Select2MoreCharactersMore=  Sök syntax:
    | ELLER (a | b)
    * Alla tecken (a * b)
    ^ Börja med (^ ab)
    $ Avsluta med ( ab $)
    +Select2MoreCharactersMore=Sök syntax:
    | ELLER(a|b)
    * Alla tecken (a*b)
    ^ Börja med (^ab)
    $ Avsluta med (ab$)
    Select2LoadingMoreResults=Laddar fler resultat ... -Select2SearchInProgress=Sök pågår ... -SearchIntoThirdparties=Tredje part +Select2SearchInProgress=Sökning pågår ... +SearchIntoThirdparties=Tredjepart SearchIntoContacts=Kontakter SearchIntoMembers=Medlemmar SearchIntoUsers=Användare SearchIntoProductsOrServices=Produkter eller tjänster -SearchIntoBatch=Massor / Serier +SearchIntoBatch=Batch/serier SearchIntoProjects=Projekt SearchIntoMO=Tillverkningsorder SearchIntoTasks=Uppgifter SearchIntoCustomerInvoices=Kundfakturor SearchIntoSupplierInvoices=Leverantörsfakturor SearchIntoCustomerOrders=Försäljningsorder -SearchIntoSupplierOrders=Beställning -SearchIntoCustomerProposals=Kommersiella förslag -SearchIntoSupplierProposals=Leverantörsförslag -SearchIntoInterventions=Insatser +SearchIntoSupplierOrders=Inköpsorder +SearchIntoCustomerProposals=Offerter +SearchIntoSupplierProposals=Leverantörsofferter +SearchIntoInterventions=Interventioner SearchIntoContracts=Kontrakt SearchIntoCustomerShipments=Kundförsändelser -SearchIntoExpenseReports=Räkningar -SearchIntoLeaves=Lämna -SearchIntoTickets=biljetter +SearchIntoExpenseReports=Utgiftsrapporter +SearchIntoLeaves=Ledighet +SearchIntoKM=Kunskapsbas +SearchIntoTickets=Ärenden SearchIntoCustomerPayments=Kundbetalningar SearchIntoVendorPayments=Leverantörsbetalningar SearchIntoMiscPayments=Diverse betalningar CommentLink=Kommentarer NbComments=Antal kommentarer -CommentPage=Kommentarer utrymme +CommentPage=Kommentarersutrymme CommentAdded=Kommentar tillagd CommentDeleted=Kommentar raderad Everybody=Alla PayedBy=Betalad av -PayedTo=Betalad för att -Monthly=En gång i månaden -Quarterly=Kvartals -Annual=Årlig +PayedTo=Betalad till +Monthly=Månatligen +Quarterly=Kvartalsvis +Annual=Årligen Local=Lokal -Remote=Avlägsen -LocalAndRemote=Lokal och fjärrkontroll +Remote=Fjärr +LocalAndRemote=Lokal- och fjärrkontroll KeyboardShortcut=Tangentbordsgenväg -AssignedTo=Påverkas i -Deletedraft=Ta bort utkast -ConfirmMassDraftDeletion=Utkast till massberegningsbekräftelse +AssignedTo=Tilldelad +Deletedraft=Radera utkast +ConfirmMassDraftDeletion=Bekräftelse bulkradering av utkast FileSharedViaALink=Fil delas med en offentlig länk -SelectAThirdPartyFirst=Välj en tredje part först ... -YouAreCurrentlyInSandboxMode=Du befinner dig för närvarande i %s "sandbox" -läget +SelectAThirdPartyFirst=Välj en tredjepart först ... +YouAreCurrentlyInSandboxMode=Du befinner dig för närvarande i %s "sandbox" -läge Inventory=Lager AnalyticCode=Analytisk kod TMenuMRP=MRP ShowCompanyInfos=Visa företagsinfo ShowMoreInfos=Visa mer info -NoFilesUploadedYet=Var god ladda upp ett dokument först -SeePrivateNote=Se privat notering +NoFilesUploadedYet=Ladda upp ett dokument först +SeePrivateNote=Se privat anteckning PaymentInformation=Betalningsinformation ValidFrom=Giltig från ValidUntil=Giltig till NoRecordedUsers=Inga användare -ToClose=För nära -ToRefuse=Att vägra -ToProcess=För att kunna behandla +ToClose=Att stänga +ToRefuse=Att nega +ToProcess=Att hantera ToApprove=Att godkänna GlobalOpenedElemView=Global vy -NoArticlesFoundForTheKeyword=Ingen artikel hittades för nyckelordet ' %s ' +NoArticlesFoundForTheKeyword=Ingen artikel hittades för nyckelordet %s NoArticlesFoundForTheCategory=Ingen artikel hittades för kategorin -ToAcceptRefuse=Att acceptera | vägra +ToAcceptRefuse=Att acceptera | neka ContactDefault_agenda=Händelse -ContactDefault_commande=Beställ +ContactDefault_commande=Beställning ContactDefault_contrat=Kontrakt ContactDefault_facture=Faktura -ContactDefault_fichinter=Insats +ContactDefault_fichinter=Intervention ContactDefault_invoice_supplier=Leverantörsfaktura ContactDefault_order_supplier=Inköpsorder ContactDefault_project=Projekt ContactDefault_project_task=Uppgift -ContactDefault_propal=Förslag -ContactDefault_supplier_proposal=Leverantörsförslag -ContactDefault_ticket=Biljett -ContactAddedAutomatically=Kontakt tillagd från roller från tredje part +ContactDefault_propal=Offert +ContactDefault_supplier_proposal=Leverantörsoffert +ContactDefault_ticket=Ärende +ContactAddedAutomatically=Kontakt tillagd från tredjeparts roller More=Mer ShowDetails=Visa detaljer CustomReports=Anpassade rapporter StatisticsOn=Statistik över SelectYourGraphOptionsFirst=Välj dina grafalternativ för att skapa ett diagram -Measures=Åtgärder +Measures=Mått XAxis=X-Axis YAxis=Y-axel StatusOfRefMustBe=Status för %s måste vara %s @@ -1115,13 +1131,13 @@ NotUsedForThisCustomer=Används inte för den här kunden AmountMustBePositive=Beloppet måste vara positivt ByStatus=Efter status InformationMessage=Information -Used=Begagnade +Used=Använt ASAP=Så snart som möjligt -CREATEInDolibarr=Spela in %s skapad -MODIFYInDolibarr=Spela in %s modifierad -DELETEInDolibarr=Spela in %s borttagen -VALIDATEInDolibarr=Spela in %s validerat -APPROVEDInDolibarr=Spela in %s godkänd +CREATEInDolibarr=Post %s skapad +MODIFYInDolibarr=Post %s ändrad +DELETEInDolibarr=Post %s raderad +VALIDATEInDolibarr=Post %s bekräftad +APPROVEDInDolibarr=Post %s godkänd DefaultMailModel=Standard e-postmodell PublicVendorName=Säljarens offentliga namn DateOfBirth=Födelsedatum @@ -1130,37 +1146,67 @@ UpToDate=Aktuell OutOfDate=Föråldrad EventReminder=Händelsepåminnelse UpdateForAllLines=Uppdatering för alla rader -OnHold=Placerad i kö -Civility=Hövlighet -AffectTag=Påverka taggen +OnHold=Pausad +Civility=Tilltal +AffectTag=Tilldela tagg +AffectUser=Tilldela användare +SetSupervisor=Ange överordnad CreateExternalUser=Skapa extern användare -ConfirmAffectTag=Bulk Tag påverkar -ConfirmAffectTagQuestion=Är du säker på att du vill påverka taggar till den %s valda post (er)? +ConfirmAffectTag=Tilldela tagg i bulk +ConfirmAffectUser=Tilldela användare i bulk +ProjectRole=Roll tilldelad på varje projekt +TasksRole=Roll tilldelad för varje uppgift i varje projekt +ConfirmSetSupervisor=Ange överordnad i bulk +ConfirmUpdatePrice=Välj kurs för att öka/minska pris +ConfirmAffectTagQuestion=Är du säker på att du vill tilldela taggen till %s valda poster? +ConfirmAffectUserQuestion=Är du säker på att du vill tilldela användare till %s valda poster? +ConfirmSetSupervisorQuestion=Är du säker på att du vill ställa in överordnad för post(erna) %s? +ConfirmUpdatePriceQuestion=Är du säker på att du vill uppdatera priset för post(erna) %s? CategTypeNotFound=Ingen taggtyp hittades för typ av poster -CopiedToClipboard=Kopieras till Urklipp -InformationOnLinkToContract=Detta belopp är endast summan av alla rader i kontraktet. Ingen tidsbegrepp tas med i beräkningen. +Rate=Kurs +SupervisorNotFound=Överordnad hittades inte +CopiedToClipboard=Kopieras till urklipp +InformationOnLinkToContract=Detta belopp är endast summan av alla rader i kontraktet. Ingen tidsåtgång har tagits med i beräkningen. ConfirmCancel=Är du säker på att du vill avbryta -EmailMsgID=E-post meddelande-id -SetToEnabled=Ställ in till aktiverat -SetToDisabled=Ställ in till inaktiverad -ConfirmMassEnabling=mass möjliggör bekräftelse -ConfirmMassEnablingQuestion=Är du säker på att du vill aktivera %s vald(a) post(er)? -ConfirmMassDisabling=massavaktiverande bekräftelse -ConfirmMassDisablingQuestion=Är du säker på att du vill inaktivera den / de valda post (erna) %s? -RecordsEnabled=%s-post (ar) aktiverad -RecordsDisabled=%s post (ar) inaktiverad -RecordEnabled=Inspelning aktiverad -RecordDisabled=Posten inaktiverad -Forthcoming=Tillmötesgående -Currently=Currently -ConfirmMassLeaveApprovalQuestion=Are you sure you want to approve the %s selected record(s)? -ConfirmMassLeaveApproval=Mass leave approval confirmation -RecordAproved=Record approved -RecordsApproved=%s Record(s) approved -Properties=Properties -hasBeenValidated=%s has been validated -ClientTZ=Kund tidzon (användare) -NotClosedYet=Not yet closed -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +EmailMsgID=E-postmeddelande ID +EmailDate=E-postdatum +SetToStatus=Ange status %s +SetToEnabled=Aktivera +SetToDisabled=Inaktivera +ConfirmMassEnabling=bulkaktivera bekräftelse +ConfirmMassEnablingQuestion=Är du säker på att du vill aktivera %s post(er)? +ConfirmMassDisabling=bulkinaktivera bekräftelse +ConfirmMassDisablingQuestion=Är du säker på att du vill inaktivera %s post(er)? +RecordsEnabled=Aktiverat %s post(er) +RecordsDisabled=Inaktiverat %s post(er) +RecordEnabled=Post aktiverad +RecordDisabled=Post inaktiverad +Forthcoming=Kommande +Currently=För närvarande +ConfirmMassLeaveApprovalQuestion=Är du säker på att du vill godkänna %s markerade objekt? +ConfirmMassLeaveApproval=Godkänn ledighetsansökan i bulk +RecordAproved=Post godkänd +RecordsApproved=%s post(er) godkända +Properties=Egenskaper +hasBeenValidated=%s har bekräftats +ClientTZ=Tidszon (användare) +NotClosedYet=Inte stängd ännu +ClearSignature=Återställ signatur +CanceledHidden=Ångra dolt +CanceledShown=Ångra visa +Terminate=Avsluta +Terminated=Avslutad +AddLineOnPosition=Lägg till rad vid position (i slutet om tomt) +ConfirmAllocateCommercial=Bekräfta att tilldela säljare +ConfirmAllocateCommercialQuestion=Är du säker att du vill tilldela %s markerade post(er)? +CommercialsAffected=Säljare tilldelade +CommercialAffected=Säljare tilldelad +YourMessage=Ditt meddelande +YourMessageHasBeenReceived=Ditt meddelande har tagits emot. Vi kommer återkomma till dig snarast möjligt. +UrlToCheck=Länk att kontrollera +Automation=Automatisering +CreatedByEmailCollector=Skapad via e-postinsamling +CreatedByPublicPortal=Skapad i portalen +UserAgent=Webbläsare +InternalUser=Intern användare +ExternalUser=Extern användare diff --git a/htdocs/langs/sv_SE/margins.lang b/htdocs/langs/sv_SE/margins.lang index b7e3f3a8bc7..e056471bffe 100644 --- a/htdocs/langs/sv_SE/margins.lang +++ b/htdocs/langs/sv_SE/margins.lang @@ -2,44 +2,44 @@ Margin=Marginal Margins=Marginaler -TotalMargin=Summa marginal -MarginOnProducts=Marginal / Produkter -MarginOnServices=Marginal / Tjänster +TotalMargin=Total marginal +MarginOnProducts=Marginal/produkter +MarginOnServices=Marginal/tjänster MarginRate=Marginalsats -MarkRate=Markera sats +MarkRate=Marginalkurs DisplayMarginRates=Visa marginalsatser -DisplayMarkRates=Display markera hastigheter +DisplayMarkRates=Visa marginalkurser InputPrice=Inpris margin=Hantering av vinstmarginaler -margesSetup=Inställningar för vinstmarginalhantering +margesSetup=Inställning för hantering vinstmarginaler MarginDetails=Marginaldetaljer ProductMargins=Produktmarginaler CustomerMargins=Kundmarginaler -SalesRepresentativeMargins=Återförsäljares marginaler -ContactOfInvoice=Kontakt av faktura +SalesRepresentativeMargins=Säljares marginaler +ContactOfInvoice=Kontakt för faktura UserMargins=Användarmarginaler ProductService=Produkt eller tjänst AllProducts=Alla produkter och tjänster ChooseProduct/Service=Välj produkt eller tjänst -ForceBuyingPriceIfNull=Tvinga köp / kostpris till försäljningspris om det inte är definierat -ForceBuyingPriceIfNullDetails=If buying/cost price not provided when we add a new line, and this option is "ON", the margin will be 0%% on the new line (buying/cost price = selling price). If this option is "OFF" (recommended), margin will be equal to the value suggested by default (and may be 100%% if no default value can be found). +ForceBuyingPriceIfNull=Tvinga köp/kostpris till försäljningspris om det inte är angivet +ForceBuyingPriceIfNullDetails=Om köp/kostnadspris inte anges när vi lägger till en ny rad, och det här alternativet är "PÅ", kommer marginalen att vara 0%% på den nya raden (köp/kostnadspris = försäljningspris). Om det här alternativet är "AV" (rekommenderas), kommer marginalen att vara lika med värdet som föreslagits som standard (och kan vara 100%% om inget standardvärde kan hittas). MARGIN_METHODE_FOR_DISCOUNT=Marginalmetod för globala rabatter UseDiscountAsProduct=Som produkt UseDiscountAsService=Som tjänst UseDiscountOnTotal=På delsumma -MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definierar om en global rabatt behandlas som en produkt, en tjänst, eller bara på delsumman för beräkning marginal. -MARGIN_TYPE=Köp / Kostnadspris som föreslagits som standard för marginalberäkning -MargeType1=Marginal på Bästa leverantörspriset +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Anger om en global rabatt behandlas som en produkt, en tjänst, eller bara på delsumman för beräkning av marginal. +MARGIN_TYPE=Köp/kostpris som föreslagits som standard för marginalberäkning +MargeType1=Marginal på bästa leverantörspriset MargeType2=Marginal på vägt genomsnittligt pris (WAP) MargeType3=Marginal på kostpris -MarginTypeDesc=* Marginal på bästa köpkurs = Försäljningspris - Bästa försäljningspriset definierat på produktkort
    * Marginal på vägt genomsnittligt pris (WAP) = Försäljningspris - Produktviktat genomsnittspris (WAP) eller bäst försäljningspris om WAP ännu inte definierats
    * Marginal på kostnadskurs = Försäljningspris - Kostnadspris definierat på produktkort eller WAP om kostnadspris ej definierat eller bästa försäljningspris om WAP ännu inte definierats -CostPrice=Kostnadspris +MarginTypeDesc=* Marginal på bästa inköpspris = Försäljningspris - Bästa inköpspris angivet på produktkort
    * Marginal på vägt genomsnittligt pris (WAP) = Försäljningspris - Produktviktat genomsnittspris (WAP) eller bästa inköpspris om WAP ännu inte angivits * Marginal på kostnadskurs = Försäljningspris - Kostpris angivet på produktkort eller WAP om kostpris inte angivits eller bästa inköpspris om WAP ännu inte angivits +CostPrice=Kostpris UnitCharges=Enhetspris Charges=Avgifter -AgentContactType=Handelsagentens kontakttyp -AgentContactTypeDetails=Definiera vilken kontakttyp (länkad på fakturor) som ska användas för marginalrapport per kontakt / adress. Observera att läsning av statistik för en kontakt inte är tillförlitlig eftersom kontakten i de flesta fall kanske inte definieras uttryckligen på fakturorna. +AgentContactType=Agents kontakttyp +AgentContactTypeDetails=Ange vilken kontakttyp (länkad på fakturor) som ska användas för marginalrapport per kontakt/adress. Observera att läsning av statistik för en kontakt inte är tillförlitlig eftersom kontakten i de flesta fall kanske inte anges uttryckligen på fakturorna. rateMustBeNumeric=Betyg måste vara ett numeriskt värde -markRateShouldBeLesserThan100=Mark takt bör vara lägre än 100 +markRateShouldBeLesserThan100=Värdet bör vara lägre än 100 ShowMarginInfos=Visa marginal information CheckMargins=Marginaldetaljer MarginPerSaleRepresentativeWarning=Rapporten för marginal per användare använder länken mellan tredje part och försäljningsrepresentanter för att beräkna marginalen för varje försäljningsrepresentant. Eftersom vissa tredje parter kanske inte har någon dedikerad försäljningsrepresentant och vissa tredje parter kan kopplas till flera, kan vissa belopp inte inkluderas i denna rapport (om det inte finns någon försäljningsrepresentant) och vissa kan förekomma på olika sätt (för varje försäljningsrepresentant) . diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang index ec01c2afc5d..c98b2f139d8 100644 --- a/htdocs/langs/sv_SE/members.lang +++ b/htdocs/langs/sv_SE/members.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - members -MembersArea=Rum för medlemmar +MembersArea=Medlemsområde MemberCard=Medlemskort SubscriptionCard=Abonnemangskort Member=Medlem @@ -7,7 +7,7 @@ Members=Medlemmar ShowMember=Visa medlemskort UserNotLinkedToMember=Användare länkade inte till en medlem ThirdpartyNotLinkedToMember=Tredje part inte kopplad till en medlem -MembersTickets=Membership address sheet +MembersTickets=Medlemsadressblad FundationMembers=Stiftelsemedlemmar ListOfValidatedPublicMembers=Förteckning över bekräftades, offentliga medlemmar ErrorThisMemberIsNotPublic=Denna medlem är inte offentlig @@ -15,12 +15,13 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=En annan ledamot (namn: %s, lo ErrorUserPermissionAllowsToLinksToItselfOnly=Av säkerhetsskäl måste du beviljas behörighet att redigera alla användare att kunna koppla en medlem till en användare som inte är din. SetLinkToUser=Koppla till en Dolibarr användare SetLinkToThirdParty=Koppla till en Dolibarr tredje part -MembersCards=Generation of cards for members +MemberCountersArePublic=Räknare för giltiga medlemmar är offentliga +MembersCards=Generering av kort för medlemmar MembersList=Förteckning över medlemmar MembersListToValid=Förteckning över förslag till medlemmar (att bekräftas) MembersListValid=Förteckning över giltiga medlemmar -MembersListUpToDate=List of valid members with up-to-date contribution -MembersListNotUpToDate=List of valid members with out-of-date contribution +MembersListUpToDate=Lista över giltiga medlemmar med aktuellt bidrag +MembersListNotUpToDate=Lista över giltiga medlemmar med inaktuella bidrag MembersListExcluded=Lista över uteslutna medlemmar MembersListResiliated=Förteckning över avslutade medlemmar MembersListQualified=Förteckning över kvalificerade ledamöter @@ -28,14 +29,16 @@ MenuMembersToValidate=Förslag medlemmar MenuMembersValidated=Bekräftat medlemmar MenuMembersExcluded=Uteslutna medlemmar MenuMembersResiliated=Avslutade medlemmar -MembersWithSubscriptionToReceive=Members with contribution to receive -MembersWithSubscriptionToReceiveShort=Contributions to receive -DateSubscription=Date of membership -DateEndSubscription=End date of membership -EndSubscription=End of membership -SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Medlem id +MembersWithSubscriptionToReceive=Medlemmar med bidrag att ta emot +MembersWithSubscriptionToReceiveShort=Bidrag att ta emot +DateSubscription=Datum för medlemskap +DateEndSubscription=Slutdatum för medlemskap +EndSubscription=Slut på medlemskap +SubscriptionId=Bidrags-ID +WithoutSubscription=Utan medlemskap +WaitingSubscription=Medlemskap väntar +MemberId=Medlems-ID +MemberRef=Medlem Ref NewMember=Ny medlem MemberType=Medlem typ MemberTypeId=Medlem typ id @@ -43,11 +46,11 @@ MemberTypeLabel=Medlem etikett MembersTypes=Medlemmar typer MemberStatusDraft=Utkast (måste bekräftas) MemberStatusDraftShort=Utkast -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=Validerad (väntar bidrag) MemberStatusActiveShort=Bekräftade -MemberStatusActiveLate=Contribution expired +MemberStatusActiveLate=Bidraget har löpt ut MemberStatusActiveLateShort=Utgångna -MemberStatusPaid=Prenumeration aktuell +MemberStatusPaid=Abonnemanget är aktuell MemberStatusPaidShort=Aktuell MemberStatusExcluded=Exkluderad medlem MemberStatusExcludedShort=Utesluten @@ -56,12 +59,12 @@ MemberStatusResiliatedShort=Avslutad MembersStatusToValid=Förslag medlemmar MembersStatusExcluded=Uteslutna medlemmar MembersStatusResiliated=Avslutade medlemmar -MemberStatusNoSubscription=Validated (no contribution required) +MemberStatusNoSubscription=Validerad (inget bidrag krävs) MemberStatusNoSubscriptionShort=Bekräftade -SubscriptionNotNeeded=No contribution required +SubscriptionNotNeeded=Inget bidrag krävs NewCotisation=Nya bidrag PaymentSubscription=Nya bidrag betalning -SubscriptionEndDate=Prenumeration slutdatum +SubscriptionEndDate=Abonnemangets slutdatum MembersTypeSetup=Medlemmar typ inställning MemberTypeModified=Medlemstyp ändrad DeleteAMemberType=Ta bort en medlemstyp @@ -69,18 +72,24 @@ ConfirmDeleteMemberType=Är du säker på att du vill radera den här medlemstyp MemberTypeDeleted=Medlemstypen raderad MemberTypeCanNotBeDeleted=Medlemstypen kan inte raderas NewSubscription=Nya bidrag -NewSubscriptionDesc=Denna blankett kan du spela in din prenumeration som en ny medlem i stiftelsen. Om du vill förnya din prenumeration (om du redan är medlem), kontakta styrelsen för stiftelsen i stället av e %s. -Subscription=Contribution -Subscriptions=Contributions -SubscriptionLate=Sent -SubscriptionNotReceived=Contribution never received +NewSubscriptionDesc=Detta formulär låter dig skapa ett abonnemang som en ny medlem i stiftelsen. Om du vill förnya ditt abonnemang (om du redan är medlem), kontakta styrelsen för stiftelsen via e-post %s. +Subscription=Bidrag +AnyAmountWithAdvisedAmount=Valfri mängd, rekommenderas %s +AnyAmountWithoutAdvisedAmount=Valfritt belopp +CanEditAmountShort=Valfritt belopp +CanEditAmountShortForValues=rekommenderas, vilket belopp som helst +MembershipDuration=Längd +GetMembershipButtonLabel=Anslut +Subscriptions=Bidrag +SubscriptionLate=Försent +SubscriptionNotReceived=Bidrag har aldrig mottagits ListOfSubscriptions=List of contributions SendCardByMail=Skicka kort via e-post AddMember=Skapa medlem NoTypeDefinedGoToSetup=Ingen medlem definierade typer. Gå till Setup - Medlemmar typer NewMemberType=Ny medlemstyp WelcomeEMail=Välkommen e-post -SubscriptionRequired=Contribution required +SubscriptionRequired=Bidrag krävs DeleteType=Ta bort VoteAllowed=Röstning tillåten Physical=Enskild @@ -88,62 +97,62 @@ Moral=Företag MorAndPhy=Corporation och individ Reenable=Återaktivera ExcludeMember=Uteslut en medlem -Exclude=Exclude +Exclude=Uteslut ConfirmExcludeMember=Är du säker på att du vill utesluta den här medlemmen? ResiliateMember=Avsluta en medlem ConfirmResiliateMember=Är du säker på att du vill säga upp den här medlemmen? DeleteMember=Ta bort en medlem -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? -DeleteSubscription=Ta bort en prenumeration -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteMember=Är du säker på att du vill ta bort den här medlemmen (Om du tar bort en medlem raderas alla hans bidrag)? +DeleteSubscription=Ta bort ett abonnemang +ConfirmDeleteSubscription=Är du säker på att du vill ta bort detta bidrag? Filehtpasswd=htpasswd fil ValidateMember=Bekräfta en medlem ConfirmValidateMember=Är du säker på att du vill bekräfta den här medlemmen? FollowingLinksArePublic=Följande länkar är öppna sidor som inte skyddas av något Dolibarr-tillstånd. De är inte formaterade sidor, som ett exempel som visar hur man listar medlemmarnas databas. PublicMemberList=Offentliga medlemslista -BlankSubscriptionForm=Public self-registration form +BlankSubscriptionForm=Offentlig självregistreringsblankett BlankSubscriptionFormDesc=Dolibarr kan ge dig en allmän webbadress / hemsida för att tillåta externa besökare att be om att prenumerera på stiftelsen. Om en online betalningsmodul är aktiverad kan en betalningsblankett också automatiskt tillhandahållas. EnablePublicSubscriptionForm=Aktivera den offentliga webbplatsen med självformulär ForceMemberType=Tvinga medlemstypen -ExportDataset_member_1=Members and contributions +ExportDataset_member_1=Medlemmar och bidrag ImportDataset_member_1=Medlemmar LastMembersModified=Senaste %s modifierade medlemmarna -LastSubscriptionsModified=Latest %s modified contributions +LastSubscriptionsModified=Senaste %s modifierade bidrag String=String Text=Text Int=Int DateAndTime=Datum och tid PublicMemberCard=Medlem offentlig kort -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +SubscriptionNotRecorded=Bidrag inte registrerat +AddSubscription=Skapa bidrag +ShowSubscription=Visa bidrag # Label of email templates SendingAnEMailToMember=Skickar informationsmail till medlem SendingEmailOnAutoSubscription=Skickar e-post vid automatisk registrering SendingEmailOnMemberValidation=Skickar e-post vid bekräftande av nya medlemmar -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions +SendingEmailOnNewSubscription=Skickar mail om nytt bidrag +SendingReminderForExpiredSubscription=Skickar påminnelse om utgångna bidrag SendingEmailOnCancelation=Skickar e-post vid avbokning SendingReminderActionComm=Skickar påminnelse för agendahändelse # Topic of email templates YourMembershipRequestWasReceived=Ditt medlemskap har tagits emot. YourMembershipWasValidated=Ditt medlemskap bekräftades -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder +YourSubscriptionWasRecorded=Ditt nya bidrag skapades +SubscriptionReminderEmail=bidragspåminnelse YourMembershipWasCanceled=Ditt medlemskap avbröts CardContent=Innehållet i ditt medlemskort # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Vi vill meddela dig att din medlemsförfrågan har mottagits.

    ThisIsContentOfYourMembershipWasValidated=Vi vill meddela att ditt medlemskap bekräftades med följande information:

    -ThisIsContentOfYourSubscriptionWasRecorded=Vi vill meddela dig att din nya prenumeration har spelats in.

    -ThisIsContentOfSubscriptionReminderEmail=Vi vill meddela att din prenumeration är på väg att upphöra eller har gått ut (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Vi hoppas att du kommer att förnya det.

    +ThisIsContentOfYourSubscriptionWasRecorded=Vi vill meddela dig att ditt nya abonnemang har registrerats. Vänligen hitta din faktura här bifogad.

    +ThisIsContentOfSubscriptionReminderEmail=Vi vill meddela att ditt abonnemang är på väg att upphöra eller har gått ut (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Vi hoppas att du kommer att förnya det.

    ThisIsContentOfYourCard=Detta är en sammanfattning av den information vi har om dig. Kontakta oss om något är felaktigt.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Ämnet av meddelandemeddelandet mottaget vid automatisk inskription av en gäst DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Innehållet i meddelandemeddelandet mottaget vid automatisk inskription av en gäst -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=E-postmall att använda för att skicka e-post till en medlem vid automatisk registrering av medlemmar DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=E-postmall för att använda för att skicka e-post till en medlem om medlemsbekräftande -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Email template to use to send email to a member on new contribution recording -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Email template to use to send email reminder when contribution is about to expire +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=E-postmall att använda för att skicka e-post till en medlem vid nytt bidrag +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=E-postmall att använda för att skicka e-postpåminnelse när bidraget är på väg att löpa ut DescADHERENT_EMAIL_TEMPLATE_CANCELATION=E-postmall för att använda för att skicka e-post till en medlem om medlemsavbeställning DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=E-postmall som du kan använda för att skicka e-post till en medlem om uteslutning av medlemmar DescADHERENT_MAIL_FROM=Avsändare E-post för automatiska e-postmeddelanden @@ -156,21 +165,21 @@ DescADHERENT_CARD_TEXT_RIGHT=Text tryckt på medlemskort (Anpassning till höger DescADHERENT_CARD_FOOTER_TEXT=Text tryckt längst ner på medlemskort ShowTypeCard=Visa typ '%' HTPasswordExport=htpassword-fil skapas -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +NoThirdPartyAssociatedToMember=Ingen tredje part associerad med denna medlem +MembersAndSubscriptions=Medlemmar och bidrag MoreActions=Kompletterande åtgärder vid registrering -MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution +MoreActionsOnSubscription=Kompletterande åtgärd som föreslagits som standard vid registrering av ett bidrag, görs också automatiskt vid onlinebetalning av ett bidrag MoreActionBankDirect=Skapa en direkt post på bankkontot MoreActionBankViaInvoice=Skapa en faktura och en betalning på bankkonto MoreActionInvoiceOnly=Skapa en faktura utan betalning -LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPages=Generering av visitkort eller adressblad LinkToGeneratedPagesDesc=Den här skärmen kan du skapa PDF-filer med visitkort för alla dina medlemmar eller en viss medlem. DocForAllMembersCards=Generera visitkort för alla medlemmar (Format för utgång faktiskt inställning: %s) DocForOneMemberCards=Generera visitkort för en viss medlem (Format för utgång faktiskt inställning: %s) DocForLabels=Generera adress ark (Format för utgång faktiskt inställning: %s) -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution +SubscriptionPayment=Bidragsbetalning +LastSubscriptionDate=Datum för senaste bidragsinbetalning +LastSubscriptionAmount=Belopp för senaste bidrag LastMemberType=Senaste medlemstyp MembersStatisticsByCountries=Medlemmar statistik per land MembersStatisticsByState=Medlemmar statistik från stat / provins @@ -187,34 +196,39 @@ MembersByRegion=Den här skärmen visar statistik över medlemmar efter region. MembersStatisticsDesc=Välj statistik du vill läsa ... MenuMembersStats=Statistik LastMemberDate=Senaste datum för medlemskap -LatestSubscriptionDate=Latest contribution date +LatestSubscriptionDate=Senaste bidragsdatum MemberNature=Medlemmens natur MembersNature=Medlemmarnas natur Public=Informationen är offentlig NewMemberbyWeb=Ny ledamot till. Väntar på godkännande NewMemberForm=Ny medlem formen -SubscriptionsStatistics=Contributions statistics -NbOfSubscriptions=Number of contributions -AmountOfSubscriptions=Amount collected from contributions +SubscriptionsStatistics=Bidragsstatistik +NbOfSubscriptions=Antal bidrag +AmountOfSubscriptions=Belopp som samlas in från bidrag TurnoverOrBudget=Omsättning (för ett företag) eller Budget (för en stiftelse) -DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Hoppa på integrerad online-betalning sidan +DefaultAmount=Standardbelopp för bidrag +CanEditAmount=Prenumerationen är gratis +CanEditAmountDetail=Besökare kan välja/redigera beloppet för sitt bidrag oavsett medlemstyp +AmountIsLowerToMinimumNotice=på totalt förfallen till %s +MEMBER_NEWFORM_PAYONLINE=Efter onlineregistreringen byter du automatiskt på onlinebetalningssidan ByProperties=Efter egenskaper MembersStatisticsByProperties=Medlemsstatistik efter egenskaper -VATToUseForSubscriptions=VAT rate to use for contributionss -NoVatOnSubscription=No VAT for contributions -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for contribution line into invoice: %s +VATToUseForSubscriptions=Momssats att använda för bidrag +NoVatOnSubscription=Ingen moms för bidrag +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produkt som används för bidragsrad till faktura: %s NameOrCompany=Namn eller Företag -SubscriptionRecorded=Contribution recorded +SubscriptionRecorded=Bidrag registrerat NoEmailSentToMember=Inget email skickat till medlemmen EmailSentToMember=E-post skickad till medlem på %s -SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired contributions -SendReminderForExpiredSubscription=Send reminder by email to members when contribution is about to expire (parameter is number of days before end of membership to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5') +SendReminderForExpiredSubscriptionTitle=Skicka påminnelse via e-post för utgångna bidrag +SendReminderForExpiredSubscription=Skicka påminnelse via e-post till medlemmar när bidraget är på väg att löpa ut (parametern är antalet dagar före slutet av medlemskapet för att skicka påminnelsen. Det kan vara en lista över dagar separerade med semikolon, till exempel '10;5;0;-5 ') MembershipPaid=Medlemskap som betalats för nuvarande period (till %s) YouMayFindYourInvoiceInThisEmail=Du kan hitta din faktura bifogad till det här e-postmeddelandet XMembersClosed=%s medlem(ar) stängda XExternalUserCreated=%s externa användare har skapats ForceMemberNature=Tvinga medlemmarnas natur (individ eller företag) -CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. -CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +CreateDolibarrLoginDesc=Skapandet av en användarinloggning för medlemmar gör att de kan ansluta till applikationen. Beroende på vilka tillstånd som beviljats kommer de till exempel att kunna konsultera eller ändra sin fil själva. +CreateDolibarrThirdPartyDesc=En tredje part är den juridiska person som kommer att användas på fakturan om du bestämmer dig för att generera faktura för varje bidrag. Du kommer att kunna skapa den senare under processen att spela in bidraget. +MemberFirstname=Medlemmens förnamn +MemberLastname=Medlemmens efternamn +MemberCodeDesc=Medlemskod, unik för alla medlemmar diff --git a/htdocs/langs/sv_SE/modulebuilder.lang b/htdocs/langs/sv_SE/modulebuilder.lang index 715e897c170..78fe4115358 100644 --- a/htdocs/langs/sv_SE/modulebuilder.lang +++ b/htdocs/langs/sv_SE/modulebuilder.lang @@ -1,17 +1,19 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. -EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. -EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. +IdModule= Modul-id +ModuleBuilderDesc=Detta verktyg får endast användas av erfarna användare eller utvecklare. Det tillhandahåller verktyg för att bygga eller redigera din egen modul. Dokumentation för alternativ manuell utveckling finns här . +EnterNameOfModuleDesc=Ange namnet på modulen/applikationen som ska skapas utan mellanslag. Använd versaler för att separera ord (till exempel: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Ange namnet på objektet som ska skapas utan mellanslag. Använd versaler för att skilja ord åt (till exempel: Mitt objekt, elev, lärare...). Klassfilen CRUD, sidorna att lista/lägga till/redigera/ta bort objektet och SQL-filerna kommer att genereras. +EnterNameOfDictionaryDesc=Ange namnet på den ordbok som ska skapas utan mellanslag. Använd versaler för att skilja ord åt (till exempel: MyDico...). Klassfilen, men även SQL-filen kommer att genereras. ModuleBuilderDesc2=Vägen där moduler genereras / redigeras (första katalogen för externa moduler definierad i %s): %s ModuleBuilderDesc3=Genererade / redigerbara moduler hittades: %s ModuleBuilderDesc4=En modul detekteras som "redigerbar" när filen %s existerar i root av modulkatalogen NewModule=Ny modul NewObjectInModulebuilder=Nytt objekt -NewDictionary=New dictionary +NewDictionary=Ny ordbok +ModuleName=Modulnamn ModuleKey=Modulnyckel ObjectKey=Objektnyckel -DicKey=Dictionary key +DicKey=Ordboksnyckel ModuleInitialized=Modul initialiserad FilesForObjectInitialized=Filer för nytt objekt '%s' initialiserades FilesForObjectUpdated=Filer för objekt '%s' uppdaterad (.sql-filer och .class.php-fil) @@ -48,14 +50,17 @@ PathToModulePackage=Vägen till zip på modulen / applikationspaketet PathToModuleDocumentation=Ban till fil med modul / ansökningsdokumentation (%s) SpaceOrSpecialCharAreNotAllowed=Mellanslag eller specialtecken är inte tillåtna. FileNotYetGenerated=Filen är ännu inte genererad +GenerateCode=Generera kod RegenerateClassAndSql=Tvinga uppdatering av .class- och .sql-filer RegenerateMissingFiles=Generera saknade filer SpecificationFile=Dokumentationsfil LanguageFile=Fil för språk ObjectProperties=Objektegenskaper +Property=Egendom +PropertyDesc=En egenskap är ett attribut som kännetecknar ett objekt. Detta attribut har en kod, en etikett och en typ med flera alternativ. ConfirmDeleteProperty=Är du säker på att du vill ta bort egenskapen %s ? Detta kommer att ändra kod i PHP-klassen men även ta bort kolumn från tabelldefinition av objekt. NotNull=Inte NULL -NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) +NotNullDesc=1=Sätt databasen till NOT NULL, 0=Tillåt nullvärden, -1=Tillåt nollvärden genom att tvinga värdet till NULL om det är tomt ('' eller 0) SearchAll=Används för "sök alla" DatabaseIndex=Databasindex FileAlreadyExists=Filen %s existerar redan @@ -81,15 +86,16 @@ IsAMeasure=Är en åtgärd DirScanned=Directory skannad NoTrigger=Ingen utlösare NoWidget=Ingen widget -GoToApiExplorer=API-utforskare +ApiExplorer=API-utforskare ListOfMenusEntries=Lista över menyuppgifter ListOfDictionariesEntries=Lista över ordböcker ListOfPermissionsDefined=Lista över definierade behörigheter SeeExamples=Se exempel här -EnabledDesc=Villkor att ha detta fält aktivt (Exempel: 1 eller $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Visa detta fält på kompatibla PDF-dokument, du kan hantera position med fältet "Position".
    För närvarande är kända kompatibla PDF-modeller: eratosthen (order), espadon (ship), svamp (fakturor), cyan (propal / offert), cornas (leverantörsbeställning)

    a0e7843947c0cf6a0a0a0a = display
    2 = visa endast om inte tömma

    för dokumentlinjer:
    0 = inte visas
    1 = visas i en kolumn
    3 = visning på rad beskrivning kolumn efter beskrivningen
    4 = display i beskrivningen kolonn efter beskrivning endast om den inte är tom -DisplayOnPdf=Visa på PDF +EnabledDesc=Villkor för att ha detta fält aktivt.

    Exempel:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    +VisibleDesc=Är fältet synligt? (Exempel: 0=Aldrig synlig, 1=Synlig på lista och skapa/uppdatera/visa formulär, 2=Synlig endast på lista, 3=Synlig endast på skapa/uppdatera/visa formulär (inte lista), 4=Synlig på listan och uppdatering/visa endast formulär (inte skapa), 5=Synlig endast på listslutvy formulär (inte skapa, inte uppdatera)

    Att använda ett negativt värde betyder att fältet inte visas som standard på listan men kan väljas för visning). +ItCanBeAnExpression=Det kan vara ett uttryck. Exempel:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Visa detta fält på kompatibla PDF-dokument, du kan hantera position med "Position"-fältet.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description kolumn efter beskrivningen
    4 = visas i beskrivningskolumnen efter beskrivningen endast om den inte är tom +DisplayOnPdf=På PDF IsAMeasureDesc=Kan värdet av fält ackumuleras för att få en total i listan? (Exempel: 1 eller 0) SearchAllDesc=Är fältet används för att göra en sökning från snabbsökningsverktyget? (Exempel: 1 eller 0) SpecDefDesc=Ange här all dokumentation du vill ge med din modul som inte redan är definierad av andra flikar. Du kan använda .md eller bättre, den rika .asciidoc-syntaxen. @@ -97,11 +103,11 @@ LanguageDefDesc=Skriv in i dessa filer, all nyckel och översättning för varje MenusDefDesc=Definiera här menyerna som tillhandahålls av din modul DictionariesDefDesc=Definiera här ordböckerna som tillhandahålls av din modul PermissionsDefDesc=Definiera här de nya behörigheterna från din modul -MenusDefDescTooltip=The menus provided by your module/application are defined into the array $this->menus into the module descriptor file. You can edit manually this file or use the embedded editor.

    Note: Once defined (and the module re-activated), the menus are also visible into the menu editor available to administrator users on %s. +MenusDefDescTooltip=Menyerna som tillhandahålls av din modul/applikation definieras i arrayen $this->menyer i modulbeskrivningsfilen. Du kan redigera den här filen manuellt eller använda den inbäddade redigeraren.

    Obs: När de har definierats (och modulen återaktiverats), är menyerna också synliga i menyredigeraren som är tillgänglig för administratörsanvändare på %s. DictionariesDefDescTooltip=Ordböckerna som tillhandahålls av din modul / applikation definieras i arrayen $ denna-> ordböcker i modulbeskrivningsfilen. Du kan redigera den här filen manuellt eller använda den inbäddade redigeraren.

    Obs: När de väl är definierade (och modulen har aktiverats igen) är ordböcker också synliga i installationsområdet för administratörsanvändare på %s. PermissionsDefDescTooltip=Behörigheterna från din modul / applikation definieras i arrayen $ this-> rights i modulbeskrivningsfilen. Du kan redigera den här filen manuellt eller använda den inbäddade redigeraren.

    Obs: När de väl är definierade (och modulen har aktiverats igen), visas behörigheterna i standardbehörighetsinställningen %s. HooksDefDesc=Definiera i egenskapen modul_parts ['krokar'] i modulbeskrivningen, kontexten av krokar som du vill hantera (kontextlista kan hittas med en sökning på ' initHooks (' i kärnkoden).
    Redigera krokfilen för att lägga till kod för dina anslutna funktioner (krokbara funktioner kan hittas genom en sökning på ' executeHooks ' i kärnkod). -TriggerDefDesc=Define in the trigger file the code that you want to execute when a business event external to your module is executed (events triggered by other modules). +TriggerDefDesc=Definiera i triggerfilen koden som du vill exekvera när en affärshändelse utanför din modul exekveras (händelser som utlöses av andra moduler). SeeIDsInUse=Se ID-er som används i din installation SeeReservedIDsRangeHere=Se utbud av reserverade ID-skivor ToolkitForDevelopers=Verktygssats för Dolibarr-utvecklare @@ -113,7 +119,7 @@ DropTableIfEmpty=(Förstör bordet om det är tomt) TableDoesNotExists=Tabellen %s existerar inte TableDropped=Tabell %s utgår InitStructureFromExistingTable=Bygg strukturen array-strängen i en befintlig tabell -UseAboutPage=Do not generate the About page +UseAboutPage=Skapa inte sidan Om UseDocFolder=Inaktivera dokumentationsmappen UseSpecificReadme=Använd en specifik ReadMe ContentOfREADMECustomized=Obs! Innehållet i README.md-filen har ersatts med det specifika värde som definierats i installationen av ModuleBuilder. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Använd en specifik redigeringsadress UseSpecificFamily = Använd en specifik familj UseSpecificAuthor = Använd en specifik författare UseSpecificVersion = Använd en specifik första version -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules -IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeRefGeneration=Referensen för detta objekt måste genereras automatiskt av anpassade numreringsregler +IncludeRefGenerationHelp=Markera detta om du vill inkludera kod för att hantera genereringen av referensen automatiskt med hjälp av anpassade numreringsregler +IncludeDocGeneration=Jag vill att funktionen ska generera några dokument (PDF, ODT) från mallar för detta objekt IncludeDocGenerationHelp=Om du markerar detta genereras en viss kod för att lägga till rutan "Skapa dokument" i posten. -ShowOnCombobox=Visa värde i kombinationsrutan +ShowOnCombobox=Visa värde i kombinationsrutor KeyForTooltip=Nyckel för verktygstips CSSClass=CSS för redigera / skapa formulär CSSViewClass=CSS för läsform CSSListClass=CSS för lista NotEditable=Ej redigerbar ForeignKey=Främmande nyckel -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=Om värdet av detta fält måste garanteras finns i en annan tabell. Ange här ett värde som matchar syntaxen: tablename.parentfieldtocheck +TypeOfFieldsHelp=Exempel:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    ' 1' betyder att vi lägger till en +-knapp efter kombinationen för att skapa posten
    'filter' är ett SQL-villkor, exempel: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=Detta är typen av fält/attribut. AsciiToHtmlConverter=Ascii till HTML-omvandlare AsciiToPdfConverter=Ascii till PDF-omvandlare TableNotEmptyDropCanceled=Bordet är inte tomt. Drop har avbrutits. ModuleBuilderNotAllowed=Modulbyggaren är tillgänglig men inte tillåten för din användare. ImportExportProfiles=Importera och exportera profiler -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. -WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated -LinkToParentMenu=Parent menu (fk_xxxxmenu) -ListOfTabsEntries=List of tab entries -TabsDefDesc=Define here the tabs provided by your module -TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +ValidateModBuilderDesc=Sätt detta till 1 om du vill att metoden $this->validateField() för objekt ska anropas för att validera innehållet i fältet under infogning eller uppdatering. Sätt 0 om det inte krävs någon validering. +WarningDatabaseIsNotUpdated=Varning: Databasen uppdateras inte automatiskt, du måste förstöra tabeller och inaktivera-aktivera modulen för att få tabeller återskapade +LinkToParentMenu=Föräldrameny (fk_xxxxmenu) +ListOfTabsEntries=Lista över flikposter +TabsDefDesc=Definiera flikarna som tillhandahålls av din modul +TabsDefDescTooltip=Flikarna som tillhandahålls av din modul/applikation är definierade i arrayen $this->tabs i modulbeskrivningsfilen. Du kan redigera den här filen manuellt eller använda den inbäddade redigeraren. +BadValueForType=Fel värde för typ %s +DefinePropertiesFromExistingTable=Definiera egenskaper från en befintlig tabell +DefinePropertiesFromExistingTableDesc=Om det redan finns en tabell i databasen (för objektet att skapa) kan du använda den för att definiera objektets egenskaper. +DefinePropertiesFromExistingTableDesc2=Håll tabellen tom om den inte finns ännu. Kodgeneratorn kommer att använda olika typer av fält för att bygga ett exempel på tabell som du kan redigera senare. diff --git a/htdocs/langs/sv_SE/mrp.lang b/htdocs/langs/sv_SE/mrp.lang index 9eb01f8e0aa..aef6f852aa7 100644 --- a/htdocs/langs/sv_SE/mrp.lang +++ b/htdocs/langs/sv_SE/mrp.lang @@ -9,10 +9,10 @@ LatestBOMModified=Senaste %s Modifierade räkningar LatestMOModified=Senaste %s Tillverkningsorder har ändrats Bom=Räkningar av material BillOfMaterials=Bill of Materials -BillOfMaterialsLines=Bill of Materials lines +BillOfMaterialsLines=Rader med stycklistor BOMsSetup=Inställning av modul BOM -ListOfBOMs=Förteckning över materialräkningar - BOM -ListOfManufacturingOrders=Lista över tillverkningsorder +ListOfBOMs=Materiallistor - BOM +ListOfManufacturingOrders=Tillverkningsorder NewBOM=Ny materialförteckning ProductBOMHelp=Produkt som ska skapas (eller tas isär) med denna BOM.
    Obs! Produkter med egenskapen 'Produktens natur' = 'Råvara' syns inte i listan. BOMsNumberingModules=BOM nummereringsmallar @@ -27,12 +27,13 @@ ConfirmCloneBillOfMaterials=Är du säker på att du vill klona materialräkning ConfirmCloneMo=Är du säker på att du vill klona tillverkningsordern %s? ManufacturingEfficiency=Tillverkningseffektivitet ConsumptionEfficiency=Förbrukningseffektivitet -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +Consumption=Konsumtion +ValueOfMeansLoss=Värdet 0,95 betyder ett genomsnitt på 5%% förlust under tillverkningen eller demonteringen ValueOfMeansLossForProductProduced=Värdet 0,95 betyder i genomsnitt 5%% förlust av producerad produkt DeleteBillOfMaterials=Ta bort materiallista DeleteMo=Ta bort tillverkningsorder ConfirmDeleteBillOfMaterials=Är du säker på att du vill ta bort detta material? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? +ConfirmDeleteMo=Är du säker på att du vill ta bort denna tillverkningsorder? MenuMRP=Tillverkningsorder NewMO=Ny tillverkningsorder QtyToProduce=Antal att producera @@ -56,7 +57,7 @@ WarehouseForProduction=Lager för produktion CreateMO=Skapa MO ToConsume=Att konsumera ToProduce=Att producera -ToObtain=To obtain +ToObtain=För att uppnå QtyAlreadyConsumed=Antal redan förbrukat QtyAlreadyProduced=Antal redan producerat QtyRequiredIfNoLoss=Antal krävs om det inte finns någon förlust (Tillverkningseffektiviteten är 100%%) @@ -69,17 +70,20 @@ ForAQuantityToConsumeOf=För en kvantitet att ta isär %s ConfirmValidateMo=Är du säker på att du vill validera denna tillverkningsorder? ConfirmProductionDesc=Genom att klicka på '%s' validerar du förbrukningen och / eller produktionen för de angivna kvantiteterna. Detta kommer också att uppdatera lager och registrera lagerrörelser. ProductionForRef=Produktion av %s +CancelProductionForRef=Annullering av produktlagerminskning för produkt %s +TooltipDeleteAndRevertStockMovement=Ta bort rad och återställ lagerrörelse AutoCloseMO=Stäng automatiskt tillverkningsordern om kvantiteter att konsumera och producera uppnås NoStockChangeOnServices=Ingen lagerförändring på tjänsterna ProductQtyToConsumeByMO=Produktkvantitet som fortfarande ska konsumeras av öppen MO ProductQtyToProduceByMO=Produktkvantitet som fortfarande produceras av öppen MO AddNewConsumeLines=Lägg till en ny rad att konsumera -AddNewProduceLines=Add new line to produce +AddNewProduceLines=Lägg till ny linje att producera ProductsToConsume=Produkter att konsumera ProductsToProduce=Produkter att producera UnitCost=Enhetskostnad TotalCost=Total kostnad BOMTotalCost=Kostnaden för att producera den här stycklistan baserat på kostnaden för varje kvantitet och produkt som ska konsumeras (använd kostpris om det är definierat, annars medelviktat pris om det är definierat, annars det bästa inköpspriset) +BOMTotalCostService=Om modulen "Workstation" är aktiverad och en arbetsstation är definierad som standard på linjen, så är beräkningen "kvantitet (omräknat till timmar) x arbetsstation ahr", annars "kvantitet (omvandlat till timmar) x kostnad för tjänsten" GoOnTabProductionToProduceFirst=Du måste först ha startat produktionen för att stänga en tillverkningsorder (se fliken '%s'). Men du kan avbryta det. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ett kit kan inte användas i en BOM eller en MO Workstation=Arbetsstation @@ -104,6 +108,13 @@ HumanMachine=Människa / maskin WorkstationArea=Arbetsstationsområde Machines=Maskiner THMEstimatedHelp=Denna hastighet gör det möjligt att definiera en prognoskostnad för artikeln -BOM=Bill Of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module -MOAndLines=Manufacturing Orders and lines +BOM=Materialförteckning +CollapseBOMHelp=Du kan definiera standardvisningen av uppgifterna i nomenklaturen i konfigurationen av BOM-modulen +MOAndLines=Tillverkning av order och linjer +MoChildGenerate=Generera barn-tillverkningsorder +ParentMo=MO förälder +MOChild=MO barn +BomCantAddChildBom=Nomenklaturen %s finns redan i trädet som leder till nomenklaturen %s +BOMNetNeeds = BOM nettobehov +BOMProductsList=BOMs produkter +BOMServicesList=BOM:s tjänster diff --git a/htdocs/langs/sv_SE/multicurrency.lang b/htdocs/langs/sv_SE/multicurrency.lang index 1f479e7626c..6e69efb8a4a 100644 --- a/htdocs/langs/sv_SE/multicurrency.lang +++ b/htdocs/langs/sv_SE/multicurrency.lang @@ -1,38 +1,38 @@ # Dolibarr language file - Source file is en_US - multicurrency MultiCurrency=Flera valutor -ErrorAddRateFail=Fel i tilläggspris -ErrorAddCurrencyFail=Fel i tilläggsvaluta +ErrorAddRateFail=Fel i tillagt pris +ErrorAddCurrencyFail=Fel i tillagd valuta ErrorDeleteCurrencyFail=Radering misslyckades multicurrency_syncronize_error=Synkroniseringsfel: %s -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Använd datumet för dokumentet för att hitta valutakursen istället för att använda den senast kända kursen -multicurrency_useOriginTx=När ett objekt skapas från en annan, behåll originalfrekvensen från källobjektet (använd annars den senast kända kursen) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Använd datumet för dokumentet för att hitta valutakursen istället för att använda den senaste kursen +multicurrency_useOriginTx=När ett objekt skapas från en annan, behåll originalkursen från källobjektet (använd annars den senast kända kursen) CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=Du måste skapa ett konto på webbplatsen %s för att kunna använda denna funktion.
    Skaffa din API-nyckel .
    Om du använder ett gratis konto kan du inte ändra källvaluta (USD som standard).
    Om din huvudvaluta inte är USD beräknar applikationen den automatiskt.

    Du är begränsad till 1000 synkroniseringar per månad. +CurrencyLayerAccount_help_to_synchronize=Du måste skapa ett konto på webbplatsen %s för att kunna använda denna funktion.
    Skaffa din API-nyckel.
    Om du använder ett gratis konto kan du inte ändra källvaluta (USD som standard).
    Om din huvudvaluta inte är USD beräknar applikationen den automatiskt.

    Du är begränsad till 1000 synkroniseringar per månad. multicurrency_appId=API-nyckel multicurrency_appCurrencySource=Grundvaluta multicurrency_alternateCurrencySource=Alternativ grundvaluta CurrenciesUsed=Valutor som används -CurrenciesUsed_help_to_add=Lägg till de olika valutorna och priserna du behöver använda på dina förslag , beställer etc. -rate=Betygsätta +CurrenciesUsed_help_to_add=Lägg till de olika valutorna och priserna du behöver använda i dina offerter, ordererkännande etc. +rate=kurs MulticurrencyReceived=Mottagen, ursprunglig valuta MulticurrencyRemainderToTake=Återstående belopp, ursprunglig valuta MulticurrencyPaymentAmount=Betalningsbelopp, ursprunglig valuta -AmountToOthercurrency=Belopp till (i valuta för mottagande konto) -CurrencyRateSyncSucceed=Växlingskurssynkronisering klar. +AmountToOthercurrency=Konverterat till (i valuta för mottagande konto) +CurrencyRateSyncSucceed=Synkronisering av valutakurs klar. MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Använd dokumentets valuta för onlinebetalningar -TabTitleMulticurrencyRate=Kurslista -ListCurrencyRate=Lista över valutakurser för valutan +TabTitleMulticurrencyRate=Lista valutakurser +ListCurrencyRate=Lista över kurser för valutan CreateRate=Skapa en kurs -FormCreateRate=Betygsätt skapande -FormUpdateRate=Rate modifiering +FormCreateRate=Skapa en kurs +FormUpdateRate=Ändra en kurs successRateCreate=Kurs för valuta %s har lagts till i databasen -ConfirmDeleteLineRate=Är du säker på att du vill ta bort %s-kursen för valuta %s på %s-datum? +ConfirmDeleteLineRate=Är du säker på att du vill ta bort kursen %s för valutan %s på datumet %s? DeleteLineRate=Rensa kurs successRateDelete=Kurs borttagen errorRateDelete=Fel vid borttagning av kurs successUpdateRate=Ändring gjord ErrorUpdateRate=Fel vid ändring av kurs -Codemulticurrency=Valutakod -UpdateRate=Ändra kursen -CancelUpdate=Avbryt +Codemulticurrency=valutakurs +UpdateRate=ändra kurs +CancelUpdate=avbryt NoEmptyRate=Fältet "kurs" kan inte vara tomt diff --git a/htdocs/langs/sv_SE/oauth.lang b/htdocs/langs/sv_SE/oauth.lang index 58b50d72893..6d64ab3f817 100644 --- a/htdocs/langs/sv_SE/oauth.lang +++ b/htdocs/langs/sv_SE/oauth.lang @@ -1,32 +1,40 @@ # Dolibarr language file - Source file is en_US - oauth ConfigOAuth=OAuth-konfiguration -OAuthServices=OAuth Services -ManualTokenGeneration=Manuell token generation -TokenManager=Token Manager +OAuthServices=OAuth-tjänster +ManualTokenGeneration=Generera token manuellt +TokenManager=Hantera tokens IsTokenGenerated=Genereras token? NoAccessToken=Ingen åtkomsttoken sparas i den lokala databasen HasAccessToken=En token genererades och sparades i den lokala databasen NewTokenStored=Token mottagen och sparad -ToCheckDeleteTokenOnProvider=Klicka här för att kontrollera / radera behörighet som sparats av %s OAuth-leverantören +ToCheckDeleteTokenOnProvider=Klicka här för att kontrollera/radera behörighet som sparats av OAuth-leverantören %s TokenDeleted=Token raderad -RequestAccess=Klicka här för att begära / förnya åtkomst och få en ny token att spara -DeleteAccess=Klicka här för att radera token -UseTheFollowingUrlAsRedirectURI=Använd följande URL-adress som omdirigerings-URI när du skapar dina uppgifter med din OAuth-leverantör: -ListOfSupportedOauthProviders=Ange inloggningsuppgifterna från din OAuth2-leverantör. Endast stödda OAuth2-leverantörer listas här. Dessa tjänster kan användas av andra moduler som behöver OAuth2-autentisering. -OAuthSetupForLogin=Sida för att skapa en OAuth-token +GetAccess=Klicka här för att få en token +RequestAccess=Klicka här för att begära/förnya åtkomst och få en ny token +DeleteAccess=Klicka här för att ta bort token +UseTheFollowingUrlAsRedirectURI=Använd följande URL som omdirigerings-URI när du skapar dina uppgifter med din OAuth-leverantör: +ListOfSupportedOauthProviders=Lägg till dina OAuth2-tokenleverantörer. Gå sedan till din OAuth-leverantörs adminsida för att skapa/skaffa ett OAuth-ID och hemlighet och spara dem här. När du är klar, växla till den andra fliken för att generera din token. +OAuthSetupForLogin=Sida för att hantera (generera/ta bort) OAuth-tokens SeePreviousTab=Se föregående flik -OAuthIDSecret=OAuth ID och Secret -TOKEN_REFRESH=Token Refresh Present +OAuthProvider=OAuth-leverantör +OAuthIDSecret=OAuth ID och hemlig nyckel +TOKEN_REFRESH=Förnya token TOKEN_EXPIRED=Token utgått TOKEN_EXPIRE_AT=Token upphör att gälla vid TOKEN_DELETE=Radera sparade token OAUTH_GOOGLE_NAME=OAuth Google-tjänst OAUTH_GOOGLE_ID=OAuth Google Id -OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Gå till den här sidan och sedan "Credentials" för att skapa OAuth-uppgifter -OAUTH_GITHUB_NAME=OAuth GitHub service +OAUTH_GOOGLE_SECRET=OAuth Google hemlig +OAUTH_GITHUB_NAME=OAuth GitHub tjänst OAUTH_GITHUB_ID=OAuth GitHub Id -OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Gå till den här sidan sedan "Registrera en ny applikation" för att skapa OAuth-uppgifter +OAUTH_GITHUB_SECRET=OAuth GitHub hemlig +OAUTH_URL_FOR_CREDENTIAL=Gå till den här sidan för att skapa eller få ditt OAuth-ID och hemlig nyckel OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Strip Live +OAUTH_ID=OAuth-ID +OAUTH_SECRET=OAuth hemlig nyckel +OAuthProviderAdded=OAuth-leverantör har lagts till +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=En OAuth-post för den här leverantören och etiketten finns redan +URLOfServiceForAuthorization=URL tillhandahållen av OAuth-tjänsten för autentisering +Scopes=Behörigheter (omfång) +ScopeUndefined=Behörigheter (omfång) odefinierade (se föregående flik) diff --git a/htdocs/langs/sv_SE/opensurvey.lang b/htdocs/langs/sv_SE/opensurvey.lang index 50c6debd8d2..4ca3e2be953 100644 --- a/htdocs/langs/sv_SE/opensurvey.lang +++ b/htdocs/langs/sv_SE/opensurvey.lang @@ -48,8 +48,8 @@ AddEndHour=Lägg till slut tid votes=röst (er) NoCommentYet=Inga kommentarer har lagts till den här omröstningen ännu CanComment=Väljarna kan kommentera i omröstningen -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +YourVoteIsPrivate=Den här omröstningen är privat, ingen kan se din röst. +YourVoteIsPublic=Den här omröstningen är offentlig, alla med länken kan se din röst. CanSeeOthersVote=Väljarna kan se andra människors röst SelectDayDesc=För varje vald dag kan du välja, eller inte, mötes timmar i följande format:
    - tom,
    - "8h", "8H" eller "8:00" för att ge ett mötes starttid,
    - "8- 11 "," 8h-11h "," 8h-11h "eller" 8: 00-11: 00 "för att ge ett mötes start- och sluttid,
    -" 8h15-11h15 "," 8H15-11H15 "eller" 8: 15-11: 15 "för samma sak men med minuter. BackToCurrentMonth=Tillbaka till aktuella månaden diff --git a/htdocs/langs/sv_SE/orders.lang b/htdocs/langs/sv_SE/orders.lang index fc7f7d3ca19..83e567e6154 100644 --- a/htdocs/langs/sv_SE/orders.lang +++ b/htdocs/langs/sv_SE/orders.lang @@ -1,23 +1,24 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Kunders ordrar +OrderExists=En beställning var redan öppen länkad till detta förslag, så ingen annan beställning skapades automatiskt +OrdersArea=Kundordrar SuppliersOrdersArea=Inköpsordrar -OrderCard=Beställ kort +OrderCard=Orderkort OrderId=Order Id -Order=Beställ -PdfOrderTitle=Beställ -Orders=Beställningar +Order=Order +PdfOrderTitle=Order +Orders=Ordrar OrderLine=Orderrad -OrderDate=Beställ datum -OrderDateShort=Beställ datum -OrderToProcess=Att kunna bearbeta +OrderDate=Orderdatum +OrderDateShort=Orderdatum +OrderToProcess=Order att hantera NewOrder=Ny order NewSupplierOrderShort=Ny order NewOrderSupplier=Ny inköpsorder -ToOrder=Gör så -MakeOrder=Gör så +ToOrder=Acceptera order +MakeOrder=Acceptera order SupplierOrder=Inköpsorder -SuppliersOrders=Beställning -SaleOrderLines=Sales order lines +SuppliersOrders=Inköpsordrar +SaleOrderLines=Försäljningsorderrader PurchaseOrderLines=Inköpsorderrader SuppliersOrdersRunning=Nuvarande köporder CustomerOrder=Kundorder @@ -28,58 +29,60 @@ OrdersDeliveredToBill=Försäljningsorder levereras till faktura OrdersToBill=Försäljningsorder levereras OrdersInProcess=Försäljningsorder pågår OrdersToProcess=Försäljningsorder att bearbeta -SuppliersOrdersToProcess=Köp beställningar att bearbeta +SuppliersOrdersToProcess=Inköpsordrar att hantera SuppliersOrdersAwaitingReception=Inköpsorder som väntar på mottagning AwaitingReception=Väntar på mottagning StatusOrderCanceledShort=Annullerad -StatusOrderDraftShort=Förslag +StatusOrderDraftShort=Utkast StatusOrderValidatedShort=Bekräftat -StatusOrderSentShort=I processen +StatusOrderSentShort=Pågår StatusOrderSent=Sändning pågår StatusOrderOnProcessShort=Beställda -StatusOrderProcessedShort=Bearbetade -StatusOrderDelivered=Till Bill -StatusOrderDeliveredShort=Till Bill -StatusOrderToBillShort=Till Bill +StatusOrderProcessedShort=Hanterade +StatusOrderDelivered=Levererad +StatusOrderDeliveredShort=Levererad +StatusOrderToBillShort=Levererad StatusOrderApprovedShort=Godkänd -StatusOrderRefusedShort=Refused -StatusOrderToProcessShort=För att kunna behandla +StatusOrderRefusedShort=Nekad +StatusOrderToProcessShort=Att hantera StatusOrderReceivedPartiallyShort=Delvis fått -StatusOrderReceivedAllShort=Mottagna produkter +StatusOrderReceivedAllShort=Produkter har mottagits StatusOrderCanceled=Annullerad StatusOrderDraft=Utkast (måste bekräftas) StatusOrderValidated=Bekräftat -StatusOrderOnProcess=Beställda, väntar på inleverans -StatusOrderOnProcessWithValidation=Beställd - Avvakter mottagning eller bekräftande -StatusOrderProcessed=Bearbetade -StatusOrderToBill=Till Bill +StatusOrderOnProcess=Beställd, väntar på inleverans +StatusOrderOnProcessWithValidation=Beställd - Avvaktar inleverans eller bekräftande +StatusOrderProcessed=Hanterade +StatusOrderToBill=Levererad StatusOrderApproved=Godkänd StatusOrderRefused=Refused StatusOrderReceivedPartially=Delvis fått StatusOrderReceivedAll=Alla produkter mottagna -ShippingExist=En sändning föreligger +ShippingExist=En sändning finns QtyOrdered=Antal beställda -ProductQtyInDraft=Produktmängd till beställningsutkast +ProductQtyInDraft=Produktmängd till orderutkast ProductQtyInDraftOrWaitingApproved=Produktmnängd till beställningsutkast eller godkända beställningar, ännu ej lagda -MenuOrdersToBill=Order till faktura +MenuOrdersToBill=Skickade ordrar MenuOrdersToBill2=Fakturerbara order -ShipProduct=Ship produkt +ShipProduct=Skicka produkt CreateOrder=Skapa order -RefuseOrder=Vägra att -ApproveOrder=Godkänn beställning +RefuseOrder=Neka order +ApproveOrder=Godkänn ordern Approve2Order=Godkänn order (andra nivån) -ValidateOrder=Verifiera att +UserApproval=Användare för godkännande +UserApproval2=Användare för godkännande (andra nivå) +ValidateOrder=Bekräfta ordern UnvalidateOrder=Märka ordrar från bekräftat->utkast DeleteOrder=Radera order -CancelOrder=Avbryt för +CancelOrder=Annullera ordern OrderReopened= Order %s återöppnad AddOrder=Skapa order AddSupplierOrderShort=Skapa order AddPurchaseOrder=Skapa inköpsorder -AddToDraftOrders=Lägg till förlags order -ShowOrder=Visa att -OrdersOpened=Beställer att bearbeta -NoDraftOrders=Inga förslag till beslut +AddToDraftOrders=Lägg till orderutkast +ShowOrder=Visa ordern +OrdersOpened=Ordrar att hantera +NoDraftOrders=Inga orderutkast finns NoOrder=Ingen order NoSupplierOrder=Ingen inköpsorder LastOrders=Senaste %s försäljningsorder @@ -88,13 +91,13 @@ LastSupplierOrders=Senaste %s inköpsorder LastModifiedOrders=Senaste %s ändrade order AllOrders=Alla order NbOfOrders=Antal order -OrdersStatistics=Beställ statistik -OrdersStatisticsSuppliers=Beställningsstatistik -NumberOfOrdersByMonth=Antal beställningar per månad +OrdersStatistics=Orderstatistik +OrdersStatisticsSuppliers=Inköpsorderstatistik +NumberOfOrdersByMonth=Antal ordrar per månad AmountOfOrdersByMonthHT=Antal order per månad (exkl. Skatt) -ListOfOrders=Lista över beställningar +ListOfOrders=Lista över ordrar CloseOrder=Stäng order -ConfirmCloseOrder=Är du säker på att du vill ställa in den här beställningen att levereras? När en beställning har levererats kan den ställas in för fakturering. +ConfirmCloseOrder=Är du säker på att du vill ändra den här order till levererad? När en order har levererats kan den fakturas. ConfirmDeleteOrder=Är du säker på att du vill radera den här beställningen? ConfirmValidateOrder=Är du säker på att du vill bekräfta denna order under namnet %s ? ConfirmUnvalidateOrder=Är du säker på att du vill återställa ordningen %s till utkastsstatus? @@ -102,12 +105,14 @@ ConfirmCancelOrder=Är du säker på att du vill avbryta denna order? ConfirmMakeOrder=Är du säker på att du vill bekräfta att du har gjort denna order på %s ? GenerateBill=Skapa faktura ClassifyShipped=Märk levererad +PassedInShippedStatus=markerad levererad +YouCantShipThis=Jag kan inte klassificera det här. Kontrollera användarens behörigheter DraftOrders=Förslag till beslut -DraftSuppliersOrders=Utkast till beställningar +DraftSuppliersOrders=Inköpsorderutkast OnProcessOrders=I processen order RefOrder=Ref. För -RefCustomerOrder=Ref. beställning för kund -RefOrderSupplier=Ref. beställning för leverantör +RefCustomerOrder=Kundordernummer +RefOrderSupplier=Leverantörordernummer RefOrderSupplierShort=Ref. orderleverantör SendOrderByMail=Skicka beställningen per post ActionsOnOrder=Åtgärder för att @@ -116,7 +121,7 @@ OrderMode=Beställ metod AuthorRequest=Begär författare UserWithApproveOrderGrant=Användare som beviljats med "godkänna order"-behörighet. PaymentOrderRef=Betalning av att %s -ConfirmCloneOrder=Är du säker på att du vill klona denna beställning %s ? +ConfirmCloneOrder=Är du säker på att du vill klona denna order %s ? DispatchSupplierOrder=Ta emot inköpsorder %s FirstApprovalAlreadyDone=Första godkännande redan gjort SecondApprovalAlreadyDone=Andra godkännande redan gjort @@ -124,8 +129,8 @@ SupplierOrderReceivedInDolibarr=Beställningsorder %s fick %s SupplierOrderSubmitedInDolibarr=Beställningsnummer %s skickat SupplierOrderClassifiedBilled=Beställningsorder %s set fakturerad OtherOrders=Övriga beställningar -SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderValidatedAndApproved=Leverantörsorder är validerad och godkänd: %s +SupplierOrderValidated=Leverantörsorder är validerad: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Representativ uppföljningsordern TypeContact_commande_internal_SHIPPING=Representanten uppföljning sjöfart @@ -153,7 +158,7 @@ PDFEdisonDescription=En enkel ordermodell PDFProformaDescription=Fullständig Proforma fakturaamll CreateInvoiceForThisCustomer=Faktura order CreateInvoiceForThisSupplier=Faktura order -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisReceptions=Räkningsmottagningar NoOrdersToInvoice=Inga order fakturerbar CloseProcessedOrdersAutomatically=Märk "bearbetade" alla valda order. OrderCreation=Order skapning @@ -186,7 +191,7 @@ StatusSupplierOrderReceivedAllShort=Produkter mottagna StatusSupplierOrderCanceled=Annullerad StatusSupplierOrderDraft=Utkast (måste bekräftas) StatusSupplierOrderValidated=Bekräftade -StatusSupplierOrderOnProcess=Beställda, väntar på inleverans +StatusSupplierOrderOnProcess=Beställd, väntar på inleverans StatusSupplierOrderOnProcessWithValidation=Beställd - Avvakter mottagning eller bekräftande StatusSupplierOrderProcessed=Bearbetad StatusSupplierOrderToBill=Till Bill diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index c849acbea45..e5314d5c7d6 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -1,148 +1,150 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Säkerhetskod -NumberingShort=N ° +NumberingShort=N Tools=Verktyg TMenuTools=Verktyg ToolsDesc=Alla verktyg som inte ingår i andra menyposter grupperas här.
    Alla verktyg kan nås via menyn till vänster. Birthday=Födelsedag -BirthdayAlertOn=födelsedag alert aktiva -BirthdayAlertOff=födelsedag alert inaktiv +BirthdayAlertOn=födelsedagsalarm aktivt +BirthdayAlertOff=födelsedagsalarm inaktivt TransKey=Översättning av nyckel: TransKey MonthOfInvoice=Månad (nummer 1-12) på fakturadatum TextMonthOfInvoice=Månad (text) på fakturadatum PreviousMonthOfInvoice=Föregående månad (nummer 1-12) på fakturadatum TextPreviousMonthOfInvoice=Föregående månad (text) på fakturadatum -NextMonthOfInvoice=Följande månad (nummer 1-12) på fakturadatum -TextNextMonthOfInvoice=Följande månad (text) på fakturadatum +NextMonthOfInvoice=Kommande månad (nummer 1-12) på fakturadatum +TextNextMonthOfInvoice=Kommande månad (text) på fakturadatum PreviousMonth=Föregående månad CurrentMonth=Nuvarande månad -ZipFileGeneratedInto=Zip-fil genererad till %s . -DocFileGeneratedInto=Doc-filen genereras till %s . +ZipFileGeneratedInto=Zip-fil genererad i %s. +DocFileGeneratedInto=Doc-fil genererad i %s. JumpToLogin=Förbindelse förlorad. Gå till inloggningssidan ... -MessageForm=Meddelande på onlinebetalningsformulär -MessageOK=Meddelande på retursidan för en bekräftat betalning -MessageKO=Meddelande på retursidan för en avbokad betalning -ContentOfDirectoryIsNotEmpty=Innehållet i den här katalogen är inte tomt. -DeleteAlsoContentRecursively=Kontrollera att allt innehåll rekursivt raderas -PoweredBy=Körs av +MessageForm=Meddelande på formulär för onlinebetalning +MessageOK=Meddelande på retursidan för en bekräftad betalning +MessageKO=Meddelande på retursidan för en avbruten betalning +ContentOfDirectoryIsNotEmpty=Denna katalog har innehåll i sig. +DeleteAlsoContentRecursively=Markera för att radera allt innehåll. +PoweredBy=Drivs med YearOfInvoice=År för fakturadatum PreviousYearOfInvoice=Föregående år av fakturadatum NextYearOfInvoice=Följande år med fakturadatum -DateNextInvoiceBeforeGen=Datum för nästa faktura (före generationen) -DateNextInvoiceAfterGen=Datum för nästa faktura (efter generation) -GraphInBarsAreLimitedToNMeasures=Grapics är begränsade till mått %s i 'Bars' -läge. Läget "Linjer" valdes automatiskt istället. +DateNextInvoiceBeforeGen=Datum för nästa faktura (före skapande) +DateNextInvoiceAfterGen=Datum för nästa faktura (efter skapande) +GraphInBarsAreLimitedToNMeasures=Grapics är begränsade till mått %s i 'Bars' -läge. Läget "Lines" valdes automatiskt istället. OnlyOneFieldForXAxisIsPossible=Enbart 1 fält är möjligt i X-axeln. Bara det första markerade fältet har valts. -AtLeastOneMeasureIsRequired=Minst 1 fält är obligatiskt +AtLeastOneMeasureIsRequired=Minst 1 fält för mått är obligatiskt AtLeastOneXAxisIsRequired=Minst 1 fält för X-axeln är obligatirskt LatestBlogPosts=Senaste blogginlägg -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail -Notify_ORDER_VALIDATE=Försäljningsorder bekräftat -Notify_ORDER_SENTBYMAIL=Försäljningsorder skickad via post -Notify_ORDER_SUPPLIER_SENTBYMAIL=Beställningsorder skickad via e-post -Notify_ORDER_SUPPLIER_VALIDATE=Beställningsorder registrerad -Notify_ORDER_SUPPLIER_APPROVE=Köporder godkänd -Notify_ORDER_SUPPLIER_REFUSE=Inköpsorder nekades -Notify_PROPAL_VALIDATE=Kunden förslag bekräftades -Notify_PROPAL_CLOSE_SIGNED=Kundförslaget är undertecknat -Notify_PROPAL_CLOSE_REFUSED=Kundförslaget stängdes vägrade -Notify_PROPAL_SENTBYMAIL=Kommersiell förslag skickas per post -Notify_WITHDRAW_TRANSMIT=Överföring tillbakadragande -Notify_WITHDRAW_CREDIT=Credit tillbakadragande -Notify_WITHDRAW_EMIT=Isue tillbakadragande -Notify_COMPANY_CREATE=Tredje part som skapats -Notify_COMPANY_SENTBYMAIL=Post som skickas från tredjepartskort -Notify_BILL_VALIDATE=Kundfaktura bekräftades -Notify_BILL_UNVALIDATE=Kundfakturan Fraktpris saknas -Notify_BILL_PAYED=Kundfaktura betalad -Notify_BILL_CANCEL=Kundfaktura avbryts -Notify_BILL_SENTBYMAIL=Kundfaktura skickas per post -Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura bekräftat +notiftouser=Till användare +notiftofixedemail=Till fast e-postadress +notiftouserandtofixedemail=Till användare och fast e-postadress +Notify_ORDER_VALIDATE=Order bekräftad +Notify_ORDER_SENTBYMAIL=Ordererkännande skickad +Notify_ORDER_SUPPLIER_SENTBYMAIL=Inköpsorder skickad via e-post +Notify_ORDER_SUPPLIER_VALIDATE=Order registrerad +Notify_ORDER_SUPPLIER_APPROVE=Inköpsorder godkänd +Notify_ORDER_SUPPLIER_REFUSE=Inköpsorder avslogs +Notify_PROPAL_VALIDATE=Offert bekräftades +Notify_PROPAL_CLOSE_SIGNED=Offert signerad +Notify_PROPAL_CLOSE_SIGNED_WEB=Kundförslag stängt signerat på portalsidan +Notify_PROPAL_CLOSE_REFUSED=Offert nekad och stängd +Notify_PROPAL_CLOSE_REFUSED_WEB=Kundförslaget stängt nekades på portalsidan +Notify_PROPAL_SENTBYMAIL=Offert skickad +Notify_WITHDRAW_TRANSMIT=Överföring drogs tillbaka +Notify_WITHDRAW_CREDIT=Kredit drogs tillbaka +Notify_WITHDRAW_EMIT=Proforma drogs tillbaka +Notify_COMPANY_CREATE=Tredjepart skapad +Notify_COMPANY_SENTBYMAIL=E-post som skickats från tredjepartskort +Notify_BILL_VALIDATE=Faktura bekräftad +Notify_BILL_UNVALIDATE=Faktura obekräftad +Notify_BILL_PAYED=Faktura betald +Notify_BILL_CANCEL=Faktura avbruten +Notify_BILL_SENTBYMAIL=Faktura skickad +Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura bekräftad Notify_BILL_SUPPLIER_PAYED=Leverantörsfaktura betalad -Notify_BILL_SUPPLIER_SENTBYMAIL=Leverantörsfaktura skickad via post -Notify_BILL_SUPPLIER_CANCELED=Leverantörsfaktura inställd -Notify_CONTRACT_VALIDATE=Kontrakt bekräftades -Notify_FICHINTER_VALIDATE=Intervention bekräftades -Notify_FICHINTER_ADD_CONTACT=Tillagd kontakt till insats -Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post -Notify_SHIPPING_VALIDATE=Frakt bekräftades -Notify_SHIPPING_SENTBYMAIL=Leverans skickas per post -Notify_MEMBER_VALIDATE=Medlem bekräftades -Notify_MEMBER_MODIFY=Medlem modifierad -Notify_MEMBER_SUBSCRIPTION=Medlem tecknat +Notify_BILL_SUPPLIER_SENTBYMAIL=Leverantörsfaktura skickad +Notify_BILL_SUPPLIER_CANCELED=Leverantörsfaktura avbruten +Notify_CONTRACT_VALIDATE=Kontrakt bekräftat +Notify_FICHINTER_VALIDATE=Intervention bekräftad +Notify_FICHINTER_ADD_CONTACT=Kontakt tillagd i intervention +Notify_FICHINTER_SENTBYMAIL=Intervention skickad +Notify_SHIPPING_VALIDATE=Leverans bekräftad +Notify_SHIPPING_SENTBYMAIL=Leverans skickad +Notify_MEMBER_VALIDATE=Medlem bekräftad +Notify_MEMBER_MODIFY=Medlem ändrad +Notify_MEMBER_SUBSCRIPTION=Medlem prenumererar Notify_MEMBER_RESILIATE=Medlem avslutad -Notify_MEMBER_DELETE=Elementet bort -Notify_PROJECT_CREATE=Projekt skapande -Notify_TASK_CREATE=Task skapade -Notify_TASK_MODIFY=Task modifierad -Notify_TASK_DELETE=Uppgift utgår -Notify_EXPENSE_REPORT_VALIDATE=Utläggsrapport bekräftat (godkännande krävs) +Notify_MEMBER_DELETE=Medlem raderad +Notify_PROJECT_CREATE=Projekt skapades +Notify_TASK_CREATE=Uppgift skapad +Notify_TASK_MODIFY=Uppgift ändrad +Notify_TASK_DELETE=Uppgift raderad +Notify_EXPENSE_REPORT_VALIDATE=Kostnadsrapport bekräftad (godkännande krävs) Notify_EXPENSE_REPORT_APPROVE=Kostnadsrapport godkänd -Notify_HOLIDAY_VALIDATE=Lämna förfrågan bekräftat (godkännande krävs) -Notify_HOLIDAY_APPROVE=Lämna förfrågan godkänd -Notify_ACTION_CREATE=Tillagd till agenda +Notify_HOLIDAY_VALIDATE=Ledighetsansökan bekräftad (godkännande krävs) +Notify_HOLIDAY_APPROVE=Ledighetsansökan godkänd +Notify_ACTION_CREATE=Tillagd i dagordning SeeModuleSetup=Se inställning av modul %s -NbOfAttachedFiles=Antal bifogade filer / dokument -TotalSizeOfAttachedFiles=Total storlek på bifogade filer / dokument +NbOfAttachedFiles=Antal bifogade filer/dokument +TotalSizeOfAttachedFiles=Total storlek på bifogade filer/dokument MaxSize=Maximal storlek -AttachANewFile=Bifoga en ny fil / dokument +AttachANewFile=Bifoga en ny fil/dokument LinkedObject=Länkat objekt -NbOfActiveNotifications=Antal anmälningar (antal mottagarens e-postmeddelanden) -PredefinedMailTest=__(Hello)__\nDetta är ett testmail skickat till __EMAIL__.\nDessa rader är separerade med radbrytning.\n\n__USER_SIGNATURE__ -PredefinedMailTestHtml=__(Hello)__
    Detta är ett testmailskickat till __EMAIL__ (ordet testmail ska vara i fet text).
    Linjerna är separerade med radbrytning.

    __USER_SIGNATURE__ -PredefinedMailContentContract=__(Hej)__\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoice=__(Hej)__\n\nVänligen hitta faktura __REF__ bifogad\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__(Hej)__\n\nVi vill påminna dig om att fakturan __REF__ verkar inte ha betalats. En kopia av fakturan är bifogad som en påminnelse.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendProposal=__(Hej)__\n\nVänligen hitta det kommersiella förslaget __REF__ bifogat\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__(Hej)__\n\nVänligen hitta prisförfrågan __REF__ bifogad\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendOrder=__(Hej)__\n\nVänligen hitta order __REF__ bifogad\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierOrder=__(Hej)__\n\nVänligen hitta vår beställning __REF__ bifogad\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__(Hej)__\n\nVänligen hitta faktura __REF__ bifogad\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendShipping=__(Hej)__\n\nVänligen hitta frakt __REF__ bifogad\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendFichInter=__(Hej)__\n\nVänligen hitta intervention __REF__ bifogad\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +NbOfActiveNotifications=Antal notiser (antal mottagare av e-post) +PredefinedMailTest=__(Hejsan,)__\nDetta är ett testmail skickat till __EMAIL__.\nDessa rader är separerade med radbrytning.\n\n__USER_SIGNATURE__ +PredefinedMailTestHtml=__(Hejsan,)__
    Detta är ett testmailskickat till __EMAIL__ (ordet testmail ska vara i fet text).
    Linjerna är separerade med radbrytning.

    __USER_SIGNATURE__ +PredefinedMailContentContract=__(Hejsan,)__\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__(Hejsan,)__\n\nVänligen se bifogad faktura __REF__ vid detta mail\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__(Hejsan,)__\n\nEnligt våra noteringar har faktura __REF__ inte betalats. En kopia av fakturan är bifogad som en påminnelse.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=__(Hejsan,)__\n\nTack för er förfrågan! Bifogat detta mail finns vår offert __REF__ \n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(Hejsan,)__\n\nBifogat detta mail finns vår förfrågan __REF__ \n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Hejsan,)__\n\nTack för er beställning! Vårt ordererkännande __REF__ är bifogat detta mail\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Hejsan)__\n\nVår beställning __REF__ är bifogad detta mail\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Hejsan,)__\n\nVår faktura __REF__ är bifogad detta mail\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Hejsan,)__\n\nBifogat detta mail är vår leveranssedel __REF__ \n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Hejsan,)__\n\nBifogat detta mail är vår intervention __REF__ \n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ PredefinedMailContentLink=Du kan klicka på länken nedan för att göra din betalning om den inte redan är klar.\n\n%s\n\n PredefinedMailContentGeneric=__(Hej)__\n\n\n__(Vänliga hälsningar)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendActionComm=Händelsepåminnelse "__EVENT_LABEL__" den __EVENT_DATE__ kl __EVENT_TIME__

    Detta är ett automatiskt meddelande, det går inte att besvara. -DemoDesc=Dolibarr är en kompakt ERP / CRM som stöder flera affärsmoduler. En demo som visar alla moduler ger ingen mening eftersom detta scenario aldrig uppstår (flera hundra tillgängliga). Det finns därför flera demoprofiler tillgängliga. +PredefinedMailContentSendActionComm=Påminnelse för händelsen __EVENT_LABEL__ den __EVENT_DATE__ kl __EVENT_TIME__

    Detta är ett automatiskt meddelande, det går inte att svara på. +DemoDesc=Dolibarr är ett kompakt ERP/CRM som stöder flera affärsmoduler. En demo som visar alla moduler är helt irrelevant eftersom detta scenario aldrig uppstår då flera hundra är tillgängliga. Det finns därför flera olika profiler för demo tillgängliga. ChooseYourDemoProfil=Välj den demoprofil som bäst passar dina behov ... ChooseYourDemoProfilMore=... eller bygg din egen profil
    (manuellt modulval) -DemoFundation=Hantera medlemmar av en stiftelse -DemoFundation2=Hantera medlemmar och bankkonto i en stiftelse -DemoCompanyServiceOnly=Endast företag eller frilansförsäljning -DemoCompanyShopWithCashDesk=Manage a shop with a cash box -DemoCompanyProductAndStocks=Handla produkter som säljs med Point of Sales +DemoFundation=Hantera medlemmar i en stiftelse +DemoFundation2=Hantera medlemmar och bankkonton i en stiftelse +DemoCompanyServiceOnly=Företag eller frilanstjänster +DemoCompanyShopWithCashDesk=Hantera en butik med en kassa +DemoCompanyProductAndStocks=Butik med produkter och kassa DemoCompanyManufacturing=Företag som tillverkar produkter DemoCompanyAll=Företag med flera aktiviteter (alla huvudmoduler) CreatedBy=Skapad av %s -ModifiedBy=Uppdaterad av %s +ModifiedBy=Ändrad av %s ValidatedBy=Bekräftad av %s -SignedBy=Signerat av %s +SignedBy=Signerad av %s ClosedBy=Stängt av %s -CreatedById=Användarkod som skapade +CreatedById=Användar-ID som skapade ModifiedById=Användar-ID som gjorde senaste ändringen -ValidatedById=Användarkod som bekräftats -CanceledById=Användar-ID som annulleras -ClosedById=Användar-ID som stängd +ValidatedById=Användar-ID som bekräftade +CanceledById=Användar-ID som avbröt +ClosedById=Användar-ID som stängde CreatedByLogin=Användarinloggning som skapade ModifiedByLogin=Användarinloggning som gjorde senaste ändringen -ValidatedByLogin=Användarinloggning som bekräftats -CanceledByLogin=Användarinloggning som annullerats +ValidatedByLogin=Användarinloggning som bekräftade +CanceledByLogin=Användarinloggning som avbröt ClosedByLogin=Användarinloggning som stängde -FileWasRemoved=Arkiv %s togs bort -DirWasRemoved=Nummer %s togs bort +FileWasRemoved=Filen %s raderades +DirWasRemoved=Katalogen %s raderades FeatureNotYetAvailable=Funktionen är ännu inte tillgänglig i den nuvarande versionen FeatureNotAvailableOnDevicesWithoutMouse=Funktionen är inte tillgänglig på enheter utan pekdon. FeaturesSupported=Stödda funktioner Width=Bredd Height=Höjd Depth=Djup -Top=Topp +Top=Ovansida Bottom=Botten Left=Vänster Right=Höger CalculatedWeight=Beräknad vikt -CalculatedVolume=Beräknade volymen +CalculatedVolume=Beräknad volymen Weight=Vikt WeightUnitton=ton WeightUnitkg=kg @@ -179,128 +181,159 @@ SizeUnitmm=mm SizeUnitinch=tum SizeUnitfoot=fot SizeUnitpoint=poäng -BugTracker=Bug tracker -SendNewPasswordDesc=Denna blankett låter dig begära ett nytt lösenord. Den skickas till din e-postadress.
    Ändringen kommer att träda i kraft när du klickar på länken för bekräftelse i e-postmeddelandet.
    Kontrollera din inkorg. +BugTracker=Felsökare +SendNewPasswordDesc=Med detta formulär kan du begära ett nytt lösenord. Den skickas till din e-postadress.
    Ändringen kommer att träda i kraft när du klickar på länken för bekräftelse i e-postmeddelandet.
    Kontrollera din inkorg. +EnterNewPasswordHere=Ange ditt nya lösenord här BackToLoginPage=Tillbaka till inloggningssidan -AuthenticationDoesNotAllowSendNewPassword=Autentiseringsläge är %s.
    I detta läge kan Dolibarr vet inte heller ändra ditt lösenord.
    Kontakta systemadministratören om du vill ändra ditt lösenord. +AuthenticationDoesNotAllowSendNewPassword=Autentiseringsläge är %s.
    I detta läge kan Dolibarr inte känna till eller ändra ditt lösenord.
    Kontakta systemadministratören om du vill ändra ditt lösenord. EnableGDLibraryDesc=Installera eller aktivera GD-biblioteket på din PHP-installation för att använda det här alternativet. -ProfIdShortDesc=Prof Id %s är en information är beroende av tredje part land.
    Till exempel för landets %s, det är kod %s. -DolibarrDemo=Dolibarr ERP / CRM-demo -StatsByNumberOfUnits=Statistik för summan av produkter / tjänster -StatsByNumberOfEntities=Statistik för antalet valda typer (antal fakturor eller ordrar...) -NumberOfProposals=Antal förslag -NumberOfCustomerOrders=Antal försäljningsorder -NumberOfCustomerInvoices=Antal kundfakturor -NumberOfSupplierProposals=Antal leverantörsförslag +ProfIdShortDesc=Prof Id %s är en information beroende på tredjeparts land.
    Till exempel för landets %s, som är kod %s. +DolibarrDemo=Demo av Dolibarr ERP/CRM +StatsByNumberOfUnits=Statistik för summan av antalet produkter/tjänster +StatsByNumberOfEntities=Statistik för antalet valda typer (antal fakturor eller order...) +NumberOfProposals=Antal offerter +NumberOfCustomerOrders=Antal order +NumberOfCustomerInvoices=Antal fakturor +NumberOfSupplierProposals=Antal leverantörsofferter NumberOfSupplierOrders=Antal inköpsorder NumberOfSupplierInvoices=Antal leverantörsfakturor NumberOfContracts=Antal avtal NumberOfMos=Antal tillverkningsordrar -NumberOfUnitsProposals=Antal enheter på förslag -NumberOfUnitsCustomerOrders=Antal enheter på försäljningsorder -NumberOfUnitsCustomerInvoices=Antal enheter på kundfakturor -NumberOfUnitsSupplierProposals=Antal enheter på leverantörsförslag -NumberOfUnitsSupplierOrders=Antal enheter på inköpsorder -NumberOfUnitsSupplierInvoices=Antal enheter på leverantörsfakturor -NumberOfUnitsContracts=Antal produkter på avtal -NumberOfUnitsMos=Antal produkter i tillverkningsordrar -EMailTextInterventionAddedContact=Ett nytt ingripande %s har tilldelats dig. +NumberOfUnitsProposals=Antal enheter i offerter +NumberOfUnitsCustomerOrders=Antal enheter i order +NumberOfUnitsCustomerInvoices=Antal enheter i fakturor +NumberOfUnitsSupplierProposals=Antal enheter i leverantörsofferter +NumberOfUnitsSupplierOrders=Antal enheter i inköpsorder +NumberOfUnitsSupplierInvoices=Antal enheter i leverantörsfakturor +NumberOfUnitsContracts=Antal produkter i avtal +NumberOfUnitsMos=Antal produkter i tillverkningsorder +EMailTextInterventionAddedContact=Den nya interventionen %s har tilldelats dig. EMailTextInterventionValidated=Interventionen %s har bekräftats. EMailTextInvoiceValidated=Faktura %s har bekräftats. EMailTextInvoicePayed=Faktura %s har betalats. EMailTextProposalValidated=Förslag %s har bekräftats. -EMailTextProposalClosedSigned=Förslag %s har avslutats undertecknat. +EMailTextProposalClosedSigned=Förslag %s har signerats och stängts. +EMailTextProposalClosedSignedWeb=Förslag %s har stängts signerat på portalsidan. +EMailTextProposalClosedRefused=Förslag %s har avslutats avslogs. +EMailTextProposalClosedRefusedWeb=Förslag %s har stängts avvisat på portalsidan. EMailTextOrderValidated=Order %s har bekräftats. -EMailTextOrderApproved=Beställningen %s har godkänts. -EMailTextOrderValidatedBy=Order %s har spelats in av %s. -EMailTextOrderApprovedBy=Beställningen %s har godkänts av %s. -EMailTextOrderRefused=Beställningen %s har vägrats. -EMailTextOrderRefusedBy=Beställningen %s har blivit nekad av %s. -EMailTextExpeditionValidated=Frakt %s har bekräftats. +EMailTextOrderApproved=Order %s har godkänts. +EMailTextOrderValidatedBy=Order %s har registrerats av %s. +EMailTextOrderApprovedBy=Order %s har godkänts av %s. +EMailTextOrderRefused=Order %s har nekats. +EMailTextOrderRefusedBy=Order %s har nekats av %s. +EMailTextExpeditionValidated=Leveransen %s har bekräftats. EMailTextExpenseReportValidated=Kostnadsrapport %s har bekräftats. EMailTextExpenseReportApproved=Kostnadsrapport %s har godkänts. -EMailTextHolidayValidated=Lämna förfrågan %s har bekräftats. -EMailTextHolidayApproved=Förfrågan %s har godkänts. -EMailTextActionAdded=Åtgärden %s har lagts till i agendan. -ImportedWithSet=Import dataunderlaget -DolibarrNotification=Automatisk anmälan -ResizeDesc=Ange nya bredd eller ny höjd. Förhållandet kommer att hållas under storleksändring ... +EMailTextHolidayValidated=Ledighetsansökan %s har bekräftats. +EMailTextHolidayApproved=Ledighetsansökan %s har godkänts. +EMailTextActionAdded=Åtgärden %s har lagts till i dagordningen. +ImportedWithSet=Importera data +DolibarrNotification=Automatisk notis +ResizeDesc=Ange ny bredd ELLER ny höjd. Förhållandet kommer att bibehållas under storleksändring ... NewLength=Ny bredd NewHeight=Ny höjd NewSizeAfterCropping=Ny storlek efter beskärning -DefineNewAreaToPick=Definiera nya området på bilden för att plocka (till vänster klicka på bilden och dra tills du kommer till motsatt hörn) +DefineNewAreaToPick=Ange nytt område på bilden för att välja (till vänster klicka på bilden och dra tills du kommer till motsatt hörn) CurrentInformationOnImage=Det här verktyget är utformat för att hjälpa dig att ändra storlek eller beskära en bild. Detta är informationen om den aktuella redigerade bilden ImageEditor=Bildredigerare YouReceiveMailBecauseOfNotification=Du får detta meddelande eftersom din e-post har lagts till i förteckningen över de mål som skall informeras om särskilda händelser i %s programvara %s. YouReceiveMailBecauseOfNotification2=Denna händelse är följande: -ThisIsListOfModules=Detta är en lista över moduler förvalda genom denna demo profil (endast vanligaste modulerna är synas i denna demo). Redigera den här att ha en mer personlig demo och klicka på "Start". -UseAdvancedPerms=Använd den avancerade behörigheter för vissa moduler +ThisIsListOfModules=Detta är en lista över moduler förvalda genom denna demoprofil (endast vanligaste modulerna visas i denna demo). Redigera den här för att ha en mer personlig demo och klicka på "Start". +UseAdvancedPerms=Använd avancerade rättigheter för vissa moduler FileFormat=Filformat SelectAColor=Välj en färg AddFiles=Lägg till filer -StartUpload=Starta upp -CancelUpload=Avbryt upp +StartUpload=Ladda upp +CancelUpload=Avbryt uppladdning FileIsTooBig=Filer är för stor -PleaseBePatient=Ha tålamod ... +PleaseBePatient=Alldeles strax färdig ... NewPassword=Nytt lösenord ResetPassword=Återställ lösenord RequestToResetPasswordReceived=En begäran om att ändra ditt lösenord har tagits emot. NewKeyIs=Det här är din nya nycklar för att logga in -NewKeyWillBe=Din nya knappen för att logga in på programvaran kommer att vara +NewKeyWillBe=Din nya knappen för att logga in kommer att vara ClickHereToGoTo=Klicka här för att gå till %s -YouMustClickToChange=Du måste dock först klicka på följande länk för att bekräfta detta lösenord förändring +YouMustClickToChange=Du måste dock först klicka på följande länk för att bekräfta detta lösenord ConfirmPasswordChange=Bekräfta lösenordsbyte -ForgetIfNothing=Om du inte har begärt denna förändring, bara glömma detta mail. Dina referenser förvaras säkert. -IfAmountHigherThan=Om mängden högre än %s +ForgetIfNothing=Om du inte har begärt denna förändring kan du bortse från detta mail. Dina uppgifter förvaras säkert! +IfAmountHigherThan=Om värdet är högre än %s SourcesRepository=Förvaring för källor Chart=Diagram -PassEncoding=Lösenordskodning -PermissionsAdd=Tillstånd tillagda -PermissionsDelete=Tillstånden har tagits bort -YourPasswordMustHaveAtLeastXChars=Ditt lösenord måste ha minst %s chars -PasswordNeedAtLeastXUpperCaseChars=The password need at least %s upper case chars -PasswordNeedAtLeastXDigitChars=The password need at least %s numeric chars -PasswordNeedAtLeastXSpecialChars=The password need at least %s special chars -PasswordNeedNoXConsecutiveChars=The password must not have %s consecutive similar chars -YourPasswordHasBeenReset=Ditt lösenord har återställts framgångsrikt +PassEncoding=Lösenordskryptering +PermissionsAdd=Rättigheter tillagda +PermissionsDelete=Rättigheter raderade +YourPasswordMustHaveAtLeastXChars=Ditt lösenord måste ha minst %s tecken +PasswordNeedAtLeastXUpperCaseChars=Lösenordet behöver minst %s versal(er) +PasswordNeedAtLeastXDigitChars=Lösenordet behöver minst %s numeriska tecken +PasswordNeedAtLeastXSpecialChars=Lösenordet behöver minst %s specialtecken +PasswordNeedNoXConsecutiveChars=Lösenordet får inte ha %s på varandra följande liknande tecken +YourPasswordHasBeenReset=Ditt lösenord har återställts ApplicantIpAddress=Sökandens IP-adress SMSSentTo=SMS skickat till %s MissingIds=Saknande ID -ThirdPartyCreatedByEmailCollector=Tredje part skapad av e-post samlare från e-post MSGID %s -ContactCreatedByEmailCollector=Kontakt / adress skapad via e-post samlare från email MSGID %s -ProjectCreatedByEmailCollector=Projekt skapat av e-post samlare från email MSGID %s -TicketCreatedByEmailCollector=Biljett skapad av e-post samlare från email MSGID %s +ThirdPartyCreatedByEmailCollector=Tredjepart skapad av e-postsamlare från e-post MSGID %s +ContactCreatedByEmailCollector=Kontakt/adress skapad via e-postsamlare från email MSGID %s +ProjectCreatedByEmailCollector=Projekt skapat av e-postsamlare från email MSGID %s +TicketCreatedByEmailCollector=Ärende skapat av e-postsamlare från email MSGID %s OpeningHoursFormatDesc=Använd "-" för att separera öppettider.
    Använd mellanslag för flera tidpunkter.
    Exempel: 8-12 14-18 SuffixSessionName=Suffix för sessionens namn -LoginWith=Login with %s +LoginWith=Logga in med %s ##### Export ##### -ExportsArea=Export område +ExportsArea=Exportområde AvailableFormats=Tillgängliga format LibraryUsed=Biblioteket som används LibraryVersion=Bibliotekversion -ExportableDatas=Exporteras data -NoExportableData=Inga exporteras data (ingen moduler med exporteras laddats uppgifter, eller behörigheter som saknas) +ExportableDatas=Exporterbar data +NoExportableData=Ingen exporterbar data (inga moduler med exporterbar data laddad, eller saknade rättigheter) ##### External sites ##### -WebsiteSetup=Uppställning av modulens webbplats -WEBSITE_PAGEURL=Webbadressen +WebsiteSetup=Inställningar för modulen webbplats +WEBSITE_PAGEURL=Webbadress WEBSITE_TITLE=Titel WEBSITE_DESCRIPTION=Beskrivning WEBSITE_IMAGE=Bild -WEBSITE_IMAGEDesc=Relativ väg för bildmediet. Du kan hålla det tomt eftersom det sällan används (det kan användas av dynamiskt innehåll för att visa en miniatyr i en lista med blogginlägg). Använd __WEBSITE_KEY__ i sökvägen om sökvägen beror på webbplatsens namn (till exempel: image / __ WEBSITE_KEY __ / stories / myimage.png). +WEBSITE_IMAGEDesc=Relativ väg för bilden. Du kan hålla det tomt eftersom det sällan används (det kan användas av dynamiskt innehåll för att visa en miniatyr i en lista med blogginlägg). Använd __WEBSITE_KEY__ i sökvägen om sökvägen beror på webbplatsens namn (till exempel: image / __ WEBSITE_KEY __ / stories / myimage.png). WEBSITE_KEYWORDS=Nyckelord LinesToImport=Rader att importera MemoryUsage=Minnesanvändning -RequestDuration=Varaktighet för förfrågan +RequestDuration=Varaktighet på förfrågan ProductsPerPopularity=Produkter/tjänster baserat på populäritet -PopuProp=Produkter/tjänster baserat på populäritet i förslag -PopuCom=Produkter/tjänster baserat på populäritet i ordrar -ProductStatistics=Produkter/tjänster statistik -NbOfQtyInOrders=Antal i ordrar +PopuProp=Produkter/tjänster baserat på populäritet i offerter +PopuCom=Produkter/tjänster baserat på populäritet i order +ProductStatistics=Statistik för produkter/tjänster +NbOfQtyInOrders=Antal i order SelectTheTypeOfObjectToAnalyze=Välj ett objekt för att visa statistik... -ConfirmBtnCommonContent = Är du säker på att du vill "%s"? -ConfirmBtnCommonTitle = Bekräfta din handling +ConfirmBtnCommonContent = Är du säker på att du vill %s? +ConfirmBtnCommonTitle = Bekräfta åtgärd CloseDialog = Stäng -Autofill = Autofill +Autofill = Autofyll + +# externalsite +ExternalSiteSetup=Ange länk till extern webbplats +ExternalSiteURL=Extern webbadress för HTML för iframe-innehåll +ExternalSiteModuleNotComplete=Modulen ExternalSite är inte korrekt konfigurerad. +ExampleMyMenuEntry=Min menyposten + +# ftp +FTPClientSetup=Inställningar för FTP- eller SFTP-klientmodul +NewFTPClient=Ny FTP/SFTP-anslutning +FTPArea=FTP/SFTP område +FTPAreaDesc=Denna vy visar en FTP- eller SFTP-server. +SetupOfFTPClientModuleNotComplete=Installationen av FTP- eller SFTP-klientmodulen verkar vara ofullständig +FTPFeatureNotSupportedByYourPHP=Din PHP stöder inte FTP- eller SFTP-funktioner +FailedToConnectToFTPServer=Det gick inte att ansluta till servern (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Det gick inte att logga in på servern med angivet användarnamn/lösenord +FTPFailedToRemoveFile=Misslyckades med att ta bort fil %s. +FTPFailedToRemoveDir=Det gick inte att ta bort katalogen %s: kontrollera rättigheter och att katalogen är tom. +FTPPassiveMode=Passivt läge +ChooseAFTPEntryIntoMenu=Välj en FTP/SFTP-plats från menyn... +FailedToGetFile=Filhämtning misslyckades %s +ErrorFTPNodisconnect=Fel vid frånkoppling av FTP/SFTP-server +FileWasUpload=Filen %s laddades upp +FTPFailedToUploadFile=Det gick inte att ladda upp filen %s. +AddFolder=Skapa mapp +FileWasCreateFolder=Katalogen %s har skapats +FTPFailedToCreateFolder=Det gick inte att skapa mappen %s. diff --git a/htdocs/langs/sv_SE/partnership.lang b/htdocs/langs/sv_SE/partnership.lang index 18c772f1f50..701d4a88e71 100644 --- a/htdocs/langs/sv_SE/partnership.lang +++ b/htdocs/langs/sv_SE/partnership.lang @@ -16,77 +16,81 @@ # # Generic # -ModulePartnershipName=Partnerskapshantering -PartnershipDescription=Partnerskapshanteringsmodul -PartnershipDescriptionLong= Partnerskapshanteringsmodul -Partnership=Partnership -AddPartnership=Lägg till partnerskap -CancelPartnershipForExpiredMembers=Partnerskap: Avbryt partnerskap med inaktiva abonnemang -PartnershipCheckBacklink=Partnerskap: Kontrollera hänvisningslänk +ModulePartnershipName=Hantering av partners +PartnershipDescription=Modul för hantering av partners +PartnershipDescriptionLong= Modul för hantering av partners +Partnership=Partner +Partnerships=Partners +AddPartnership=Lägg till partner +CancelPartnershipForExpiredMembers=Partners: Avbryt partners med inaktiva prenumerationer +PartnershipCheckBacklink=Partners: Kontrollera hänvisningslänk # # Menu # -NewPartnership=Nytt partnerskap -ListOfPartnerships=Lista över partnerskap +NewPartnership=Nytt partner +NewPartnershipbyWeb= Din partner har lagts till. +ListOfPartnerships=Lista över partners # # Admin page # -PartnershipSetup=Partnerskapsupplägg -PartnershipAbout=Om partnerskap -PartnershipAboutPage=Om partnerskapssidan -partnershipforthirdpartyormember=Partnerstatus måste ställas in på "tredje part" eller "medlem" -PARTNERSHIP_IS_MANAGED_FOR=Partnerskap hanterad för -PARTNERSHIP_BACKLINKS_TO_CHECK=Bakåtlänkar att kontrollera -PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Antal dagar innan partnerskap avbryts när ett abonnemang har löpt ut -ReferingWebsiteCheck=Kontroll av webbplatsens hänvisning +PartnershipSetup=Inställningar för partners +PartnershipAbout=Om partners +PartnershipAboutPage=Partners om-sida +partnershipforthirdpartyormember=Partnerstatus måste anges till "tredjepart" eller "medlem" +PARTNERSHIP_IS_MANAGED_FOR=Partners hanterad åt +PARTNERSHIP_BACKLINKS_TO_CHECK=Baklänkar att kontrollera +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Antal dagar innan partners avbryts när ett prenumeration har löpt ut +ReferingWebsiteCheck=Kontroll av webbplatsens hänvisningar ReferingWebsiteCheckDesc=Du kan aktivera en funktion för att kontrollera om din partner har länkat tillbaka till er hemsida via deras egen hemsida. +PublicFormRegistrationPartnerDesc=Dolibarr kan ge dig en offentlig URL/webbplats så att externa besökare kan begära att få bli partner. # # Object # -DeletePartnership=Ta bort partnerskap -PartnershipDedicatedToThisThirdParty=Partnerskap dedikerat till denna kund/leverantör -PartnershipDedicatedToThisMember=Partnerskap tillägnad denna medlem +DeletePartnership=Ta bort partner +PartnershipDedicatedToThisThirdParty=Partnerskap dedikerat denna kund/leverantör +PartnershipDedicatedToThisMember=Partnerskap dedikerat denna medlem DatePartnershipStart=Startdatum DatePartnershipEnd=Slutdatum ReasonDecline=Avslagsanledning ReasonDeclineOrCancel=Avslagsanledning -PartnershipAlreadyExist=Partnerskap finns redan -ManagePartnership=Hantera partnerskap -BacklinkNotFoundOnPartnerWebsite=Backlink hittades inte på partnerwebbplatsen +PartnershipAlreadyExist=Partner finns redan +ManagePartnership=Hantera partner +BacklinkNotFoundOnPartnerWebsite=Baklänk hittades inte på partners webbplats ConfirmClosePartnershipAsk=Är du säker på att du vill avbryta detta partnerskap? -PartnershipType=Partnerskapstyp -PartnershipRefApproved=Partnership %s approved +PartnershipType=Partnertyp +PartnershipRefApproved=Partnern %s godkänd +KeywordToCheckInWebsite=Om du vill kontrollera att ett givet sökord finns på webbplatsen för varje partner, anger du nyckelordet här +PartnershipDraft=Utkast +PartnershipAccepted=Accepterad +PartnershipRefused=Nekad +PartnershipCanceled=Avbruten +PartnershipManagedFor=Partnerområde # # Template Mail # -SendingEmailOnPartnershipWillSoonBeCanceled=Partnerskap kommer snart att avbrytas -SendingEmailOnPartnershipRefused=Partnerskap nekat -SendingEmailOnPartnershipAccepted=Partnerskap accepterat -SendingEmailOnPartnershipCanceled=Partnerskap avbrutet +SendingEmailOnPartnershipWillSoonBeCanceled=Partnerskapet kommer snart att avbrytas +SendingEmailOnPartnershipRefused=Partner nekad +SendingEmailOnPartnershipAccepted=Partner accepterad +SendingEmailOnPartnershipCanceled=Partnerskap avbruten YourPartnershipWillSoonBeCanceledTopic=Partnerskap kommer snart att avbrytas -YourPartnershipRefusedTopic=Partnerskap nekat -YourPartnershipAcceptedTopic=Partnerskap accepterat -YourPartnershipCanceledTopic=Partnerskap avbrutet +YourPartnershipRefusedTopic=Partner nekad +YourPartnershipAcceptedTopic=Partner accepterad +YourPartnershipCanceledTopic=Partnerskap avbruten -YourPartnershipWillSoonBeCanceledContent=Vi informerar dig om att ditt partnerskap snart kommer att avbrytas (Backlink hittades inte) -YourPartnershipRefusedContent=Vi vill informera dig om att parnterskapsförfrågan har blivit nekad. -YourPartnershipAcceptedContent=Vi vill informera dig om att partnerskapsförfrågan har blivit accepterad -YourPartnershipCanceledContent=Vi vill informera dig om att partnerskapsförfrågan har blivit avbruten +YourPartnershipWillSoonBeCanceledContent=Vi vill informera dig om att ditt partnerskap snart kommer att avbrytas (baklänk hittades inte) +YourPartnershipRefusedContent=Vi vill informera dig om att din förfrågan om partnerskap har nekats. +YourPartnershipAcceptedContent=Vi vill informera dig om att din fråga om partnerskap har accepterats +YourPartnershipCanceledContent=Vi vill informera dig om att din förfrågan om partnerskap har avbrutits -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check +CountLastUrlCheckError=Antal fel för senaste URL-kontroll +LastCheckBacklink=Datum för senaste URL-kontroll ReasonDeclineOrCancel=Avslagsanledning -# -# Status -# -PartnershipDraft=Utkast -PartnershipAccepted=Accepterad -PartnershipRefused=Refused -PartnershipCanceled=Annullerad -PartnershipManagedFor=Partnerutrymme +NewPartnershipRequest=Ny förfrågan om partnerskap +NewPartnershipRequestDesc=I detta formulär kan du skicka in en fråga och beägra att bli en del av vårt partnerskapsprogram. Om du behöver hjälp med att fylla i detta formulär, vänligen kontakta oss via e-post %s. + diff --git a/htdocs/langs/sv_SE/paybox.lang b/htdocs/langs/sv_SE/paybox.lang index 268e3223cee..420e42034e2 100644 --- a/htdocs/langs/sv_SE/paybox.lang +++ b/htdocs/langs/sv_SE/paybox.lang @@ -1,29 +1,29 @@ # Dolibarr language file - Source file is en_US - paybox -PayBoxSetup=PayBox modul inställning -PayBoxDesc=Denna modul erbjuder sidor för att möjliggöra betalning på Paybox av kunder. Detta kan användas för en kostnadsfri betalning eller en betalning på en viss Dolibarr objekt (faktura, order, ...) -FollowingUrlAreAvailableToMakePayments=Följande webbadresser finns att erbjuda en sida till en kund att göra en förskottsbetalning Dolibarr objekt -PaymentForm=Inbetalningskort -WelcomeOnPaymentPage=Välkommen till vår online betalningstjänst -ThisScreenAllowsYouToPay=Denna skärm tillåter dig att göra en online-betalning till %s. -ThisIsInformationOnPayment=Detta är information om betalning för att göra -ToComplete=För att komplettera -YourEMail=E-post för betalning bekräftelse +PayBoxSetup=Inställningar för PayBox-modulen +PayBoxDesc=Denna modul erbjuder sidor för att tillåta betalning via PayBox för kunder. Detta kan användas för exempelvis en betalning på ett visst Dolibarr-objekt (faktura, order, ...) +FollowingUrlAreAvailableToMakePayments=Följande webbadresser finns att erbjuda en kund för att göra en betalning på Dolibarr-objekt +PaymentForm=Betalningsformulär +WelcomeOnPaymentPage=Välkommen till vår onlinebetalning +ThisScreenAllowsYouToPay=Denna vy låter dig göra en onlinebetalning till %s. +ThisIsInformationOnPayment=Detta är information om betalningen +ToComplete=För att slutföra +YourEMail=E-post för att få betalningsbekräftelse Creditor=Borgenär -PaymentCode=Betalning kod -PayBoxDoPayment=Betala med Paybox -YouWillBeRedirectedOnPayBox=Du kommer att omdirigeras på säkrade Paybox sida för att mata dig kreditkortsinformation +PaymentCode=Betalningskod +PayBoxDoPayment=Betala med PayBox +YouWillBeRedirectedOnPayBox=Du kommer att omdirigeras till PayBox säkra sida där du kan ange ditt kortnummer Continue=Nästa -SetupPayBoxToHavePaymentCreatedAutomatically=Konfigurera din lön med url %s för att ha betalning skapad automatiskt när bekräftat av Paybox. -YourPaymentHasBeenRecorded=Den här sidan bekräftar att din betalning har registrerats. Tack. -YourPaymentHasNotBeenRecorded=Din betalning har INTE registrerats och transaktionen har annullerats. Tack. -AccountParameter=Tagen parametrar -UsageParameter=Användning parametrar +SetupPayBoxToHavePaymentCreatedAutomatically=Konfigurera din PayBox med url %s för att få betalningar automatiskt bekräftade hos PayBox. +YourPaymentHasBeenRecorded=Denna sida bekräftar att din betalning har registrerats. Tack! +YourPaymentHasNotBeenRecorded=Din betalning har INTE registrerats och transaktionen har avbrutits. Tack! +AccountParameter=Kontoparametrar +UsageParameter=Användningsparametrar InformationToFindParameters=Hjälp att hitta din %s kontoinformation -PAYBOX_CGI_URL_V2=URL Paybox CGI-modul för betalning -CSSUrlForPaymentForm=CSS-formatmall URL för inbetalningskort -NewPayboxPaymentReceived=Ny Paybox betalning mottagen -NewPayboxPaymentFailed=Ny Paybox betalnings försök men misslyckats -PAYBOX_PAYONLINE_SENDEMAIL=E-postmeddelande efter betalningsförsök (framgång eller misslyckande) +PAYBOX_CGI_URL_V2=URL till Paybox CGI-modul för betalning +CSSUrlForPaymentForm=CSS-formatmall URL för betalningsformulär +NewPayboxPaymentReceived=Ny PayBox-betalning mottagen +NewPayboxPaymentFailed=Nytt PayBox betalningsförsök har tyvärr misslyckats +PAYBOX_PAYONLINE_SENDEMAIL=E-postmeddelande efter betalningsförsök (lyckat eller misslyckat) PAYBOX_PBX_SITE=Värde för PBX SITE PAYBOX_PBX_RANG=Värde för PBX Rang PAYBOX_PBX_IDENTIFIANT=Värde för PBX-ID diff --git a/htdocs/langs/sv_SE/paypal.lang b/htdocs/langs/sv_SE/paypal.lang index 907c1cff4d3..a5124f3e14c 100644 --- a/htdocs/langs/sv_SE/paypal.lang +++ b/htdocs/langs/sv_SE/paypal.lang @@ -1,36 +1,37 @@ # Dolibarr language file - Source file is en_US - paypal -PaypalSetup=PayPal-modul installation -PaypalDesc=Denna modul tillåter betalning av kunder via PayPal . Detta kan användas för en ad hoc-betalning eller för en betalning relaterad till ett Dolibarr-objekt (faktura, order, ...) -PaypalOrCBDoPayment=Betala med PayPal (kort eler PayPal) +PaypalSetup=Installation av PayPal-modul +PaypalDesc=Denna modul låter dig ta betalt av kunder via PayPal. Detta kan användas vid en direktbetalning eller för betalning relaterad till ett Dolibarr-objekt (faktura, order, ...) +PaypalOrCBDoPayment=Betala med PayPal (kort eller PayPal) PaypalDoPayment=Betala med PayPal -PAYPAL_API_SANDBOX=Läge test / sandlåda +PAYPAL_API_SANDBOX=Testläge/sandlåda PAYPAL_API_USER=API användarnamn -PAYPAL_API_PASSWORD=API-lösenord +PAYPAL_API_PASSWORD=API lösenord PAYPAL_API_SIGNATURE=API signatur PAYPAL_SSLVERSION=Curl SSL Version PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Erbjud "integrerad" betalning (kreditkort + PayPal) eller "PayPal" bara -PaypalModeIntegral=Integral +PaypalModeIntegral=Integrerad PaypalModeOnlyPaypal=PayPal endast ONLINE_PAYMENT_CSS_URL=Valfri URL för CSS-stilarket på betalningssidan för online -ThisIsTransactionId=Detta är id transaktion: %s -PAYPAL_ADD_PAYMENT_URL=Inkludera PayPal-betalningsadressen när du skickar ett dokument via e-post -NewOnlinePaymentReceived=Ny online betalning mottagen -NewOnlinePaymentFailed=Ny onlinebetalning försökte men misslyckades -ONLINE_PAYMENT_SENDEMAIL=E-postadress för meddelanden efter varje betalningsförsök (för framgång och misslyckande) -ReturnURLAfterPayment=Återgå URL efter betalning -ValidationOfOnlinePaymentFailed=Bekräftelse av online betalning misslyckades -PaymentSystemConfirmPaymentPageWasCalledButFailed=Betalningsbekräftelse sidan kallades av betalningssystemet returnerade ett fel -SetExpressCheckoutAPICallFailed=SetExpressCheckout API-samtal misslyckades. -DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API-samtal misslyckades. -DetailedErrorMessage=Detaljerad felmeddelande +ThisIsTransactionId=Detta är id för transaktionen: %s +PAYPAL_ADD_PAYMENT_URL=Inkludera PayPals betalningsadress när du skickar ett dokument via e-post +NewOnlinePaymentReceived=Ny onlinebetalning mottagen +NewOnlinePaymentFailed=Ny onlinebetalning har misslyckats +ONLINE_PAYMENT_SENDEMAIL=E-postadress för meddelanden efter varje betalningsförsök (lyckade och misslyckade) +ReturnURLAfterPayment=Retur-URL efter betalning +ValidationOfOnlinePaymentFailed=Bekräftelse av onlinebetalning misslyckades +PaymentSystemConfirmPaymentPageWasCalledButFailed=Sidan för betalningsbekräftelse returnerade ett fel +SetExpressCheckoutAPICallFailed=SetExpressCheckout API-anrop misslyckades. +DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API-anrop misslyckades. +DetailedErrorMessage=Detaljerat felmeddelande ShortErrorMessage=Kort felmeddelande ErrorCode=Felkod -ErrorSeverityCode=Fel Severity Code -OnlinePaymentSystem=Online betalningssystem -PaypalLiveEnabled=PayPal "live" -läge aktiverat (annars test / sandbox-läge) +ErrorSeverityCode=Fel Allvarlighetskod +OnlinePaymentSystem=Onlinebetalning +PaypalLiveEnabled=PayPal "live" -läge aktiverat (annars test/sandbox-läge) PaypalImportPayment=Importera PayPal-betalningar -PostActionAfterPayment=Posta åtgärder efter betalningar -ARollbackWasPerformedOnPostActions=En återuppringning utfördes på alla Post-åtgärder. Du måste fylla i posthandlingar manuellt om det behövs. -ValidationOfPaymentFailed=Bekräftandet av betalningen har misslyckats +PostActionAfterPayment=Poståtgärder efter betalning +ARollbackWasPerformedOnPostActions=En bakåtrullning utfördes på alla Post-åtgärder. Du måste slutföra åtgärderna manuellt om de behövs. +ValidationOfPaymentFailed=Bekräftelse av betalning har misslyckats CardOwner=Kortinnehavare -PayPalBalance=PayPal Kredit +PayPalBalance=PayPal-krediter +OnlineSubscriptionPaymentLine=Onlineprenumeration registrerad %s
    Betald via %s
    Från IP-adress: %s
    Transaktions-ID:%s diff --git a/htdocs/langs/sv_SE/printing.lang b/htdocs/langs/sv_SE/printing.lang index b9c35d23145..a0b0d610260 100644 --- a/htdocs/langs/sv_SE/printing.lang +++ b/htdocs/langs/sv_SE/printing.lang @@ -3,7 +3,7 @@ Module64000Name=Direktutskrift Module64000Desc=Aktivera direktutskrift PrintingSetup=Ställ in Direktutskrift PrintingDesc=Denna modul lägger till "Skriv ut" knapp i olika moduler för att skriva ut dokumenten direkt till förutbestämd skrivare, utan att öppna dokumentet i en annan applikation -MenuDirectPrinting=One click Printing jobs +MenuDirectPrinting=Snabbutskriftjobb DirectPrint=Direktutskift PrintingDriverDesc=Konfigurationsvariabler för skrivardrivrutin. ListDrivers=Lista över drivrutiner diff --git a/htdocs/langs/sv_SE/productbatch.lang b/htdocs/langs/sv_SE/productbatch.lang index 054285c62e2..790e78d0ec3 100644 --- a/htdocs/langs/sv_SE/productbatch.lang +++ b/htdocs/langs/sv_SE/productbatch.lang @@ -1,45 +1,47 @@ # ProductBATCH language file - Source file is en_US - ProductBATCH -ManageLotSerial=Använd batch/serie-nummer -ProductStatusOnBatch=Ja (tillverkning/serienummer krävs) -ProductStatusOnSerial=Ja (Unikt serienummer krävs) -ProductStatusNotOnBatch=Nej (batch/serie-nummer används ej) -ProductStatusOnBatchShort=Parti -ProductStatusOnSerialShort=Serie +ManageLotSerial=Använd batch/serienummer +ProductStatusOnBatch=Ja (serienummer krävs) +ProductStatusOnSerial=Ja (unikt serienummer krävs) +ProductStatusNotOnBatch=Nej (batch/serienummer används ej) +ProductStatusOnBatchShort=Batch +ProductStatusOnSerialShort=Serienummer ProductStatusNotOnBatchShort=Nej -Batch=Batch/Serie -atleast1batchfield=Bäst före-datum eller Batch/Serie-nummer -batch_number=Batch/Serie-nummer -BatchNumberShort=Batch/Serie +Batch=Batch/serienummer +atleast1batchfield=Bäst före-datum eller batch/serienummer +batch_number=Batch/serienummer +BatchNumberShort=Batch/serienummer EatByDate=Bäst före-datum -SellByDate=Bäst före-datum -DetailBatchNumber=Batch/Serie detaljer -printBatch=Batch/Serie: %s -printEatby=Äter med:%s -printSellby=Sälj-med :%s +SellByDate=Sälj före-datum +DetailBatchNumber=Batch/serie-uppgifter +printBatch=Batch/serie: %s +printEatby=Bäst före:%s +printSellby=Sälj före:%s printQty=Antal: %d -AddDispatchBatchLine=Lägg en linje för Hållbarhet avsändning -WhenProductBatchModuleOnOptionAreForced=När modulen Lot / Serial är på, är automatisk lagerminskning tvungen att "Minska reella lager vid fraktbekräftande" och automatisk ökningsläge är tvungen att "Öka reella lager vid manuell leverans till lager" och kan inte redigeras. Andra alternativ kan definieras som du vill. -ProductDoesNotUseBatchSerial=Denna produkt använder ej batch/serie-nummer -ProductLotSetup=Inställning av batch/serie modul -ShowCurrentStockOfLot=Visa aktuellt lager för sammansatt produkt/parti -ShowLogOfMovementIfLot=Visa statestik för sammansatt produkt/parti -StockDetailPerBatch=Detaljlager för parti -SerialNumberAlreadyInUse=Serienummer %s är redan använt för produkt %s +printPlannedWarehouse=Lager: %s +AddDispatchBatchLine=Lägg en rad för hållbarhetmärkning +WhenProductBatchModuleOnOptionAreForced=När modulen Batch/serienummer är aktiverad är automatisk lagerminskning tvunget att "Minska reella lager vid fraktbekräftande" och automatiskt ökningsläge är tvunget att "Öka reella lager vid manuell leverans till lager" och kan inte redigeras. Andra alternativ kan anges som du vill. +ProductDoesNotUseBatchSerial=Denna produkt använder inte batch/serienummer +ProductLotSetup=Inställningar för modulen batch/serienummer +ShowCurrentStockOfLot=Visa aktuellt lager för sammansatt produkt/batch +ShowLogOfMovementIfLot=Visa statistik för sammansatt produkt/batch +StockDetailPerBatch=Lagerdetaljer för batch +SerialNumberAlreadyInUse=Serienummer %s används redan för produkten %s TooManyQtyForSerialNumber=Du kan bara ha en produkt %s för serienummer %s ManageLotMask=Anpassad mask -CustomMasks=Möjlighet att definiera en annan numreringsmask för varje produkt -BatchLotNumberingModules=Numreringsregel för automatisk generering av partinummer -BatchSerialNumberingModules=Numreringsregel för automatisk generering av serienummer (för produkter med egendom 1 unikt parti / serienummer för varje produkt) -QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned +CustomMasks=Möjlighet att ange en annan numreringsmask för varje produkt +BatchLotNumberingModules=Numreringsregel för automatisk generering av batchnummer +BatchSerialNumberingModules=Numreringsregel för automatisk generering av serienummer (för produkter med egendom 1 unik batch/serienummer för varje produkt) +QtyToAddAfterBarcodeScan=Antal till %s för varje skannad streckkod/batch/serie LifeTime=Livslängd (i dagar) EndOfLife=Livslängd ManufacturingDate=Tillverkningsdatum -DestructionDate=Raseringsdatum +DestructionDate=Kasseringsdatum FirstUseDate=Första användningsdatum QCFrequency=Kvalitetskontrollsperiod (i dagar) -ShowAllLots=Show all lots -HideLots=Hide lots +ShowAllLots=Visa alla batcher +HideLots=Dölj batcher #Traceability - qc status -OutOfOrder=Ej tillgänglig +OutOfOrder=Ur funktion InWorkingOrder=I fungerande skick -ToReplace=Replace +ToReplace=Byt ut +CantMoveNonExistantSerial=Fel. Du ber om att flytta en post för en serie som inte finns längre. Kan vara så att du tar samma serie på samma lager flera gånger i samma försändelse eller så användes den av en annan försändelse. Ta bort den här försändelsen och förbered en annan. diff --git a/htdocs/langs/sv_SE/products.lang b/htdocs/langs/sv_SE/products.lang index 94f608e7855..82884c9b5cd 100644 --- a/htdocs/langs/sv_SE/products.lang +++ b/htdocs/langs/sv_SE/products.lang @@ -44,8 +44,8 @@ ServicesOnPurchaseOnly=Endast tjänster för inköp ServicesNotOnSell=Tjänster som inte är till salu och inte för köp ServicesOnSellAndOnBuy=Tjänster till försäljning och inköp LastModifiedProductsAndServices=Senaste %s produkter / tjänster som modifierades -LastRecordedProducts=Senaste %s inspelade produkterna -LastRecordedServices=Senaste %s inspelade tjänsterna +LastRecordedProducts=Senaste %s registrerade produkterna +LastRecordedServices=Senaste %s registrerade tjänsterna CardProduct0=Produkt CardProduct1=Service Stock=Lager @@ -99,10 +99,10 @@ BuyingPrice=BETALKURS PriceForEachProduct=Produkter med specifika priser SupplierCard=Leverantörskort PriceRemoved=Pris bort -BarCode=Barcode -BarcodeType=Barcode typ +BarCode=Streckkod +BarcodeType=Streckkodstyp SetDefaultBarcodeType=Ställ streckkodstypblock -BarcodeValue=Barcode värde +BarcodeValue=Streckkodsvärde NoteNotVisibleOnBill=Obs (ej synlig på fakturor, förslag ...) ServiceLimitedDuration=Om produkten är en tjänst med begränsad varaktighet: FillWithLastServiceDates=Fyll i de senaste servicelinjen @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Är du säker på att du vill ta bort denna produktlinj ProductSpecial=Särskilda QtyMin=Min. köpmängd PriceQtyMin=Pris kvantitet min. -PriceQtyMinCurrency=Pris (valuta) för denna mängd. (ingen rabatt) +PriceQtyMinCurrency=Pris (valuta) för detta antal. +WithoutDiscount=Utan rabatt VATRateForSupplierProduct=Momsavgift (för denna leverantör / produkt) DiscountQtyMin=Rabatt för denna mängd. NoPriceDefinedForThisSupplier=Inget pris / antal definierat för denna leverantör / produkt @@ -261,7 +262,7 @@ Quarter1=1:a kvartalet Quarter2=2:a kvartalet Quarter3=3:e kvartalet Quarter4=4:e kvartalet -BarCodePrintsheet=Skriv ut streckkod +BarCodePrintsheet=Skriv ut streckkoder PageToGenerateBarCodeSheets=Med det här verktyget kan du skriva ut ark med streckkodstickor. Välj format på din klistersida, typ av streckkod och värde för streckkod, klicka sedan på knappen %s . NumberOfStickers=Antal etiketter att skriva ut på sidan PrintsheetForOneBarCode=Skriv ut flera etiketter per streckkod @@ -344,9 +345,9 @@ PossibleValues=Möjliga värden GoOnMenuToCreateVairants=Gå på menyn %s - %s för att förbereda attributvarianter (som färger, storlek, ...) UseProductFournDesc=Lägg till en funktion för att definiera produktbeskrivningen som definieras av leverantörerna (för varje leverantörsreferens) utöver beskrivningen för kunderna ProductSupplierDescription=Leverantörsbeskrivning för produkten -UseProductSupplierPackaging=Använd förpackning till leverantörspriser (beräkna kvantiteter enligt förpackning som anges på leverantörspris när du lägger till / uppdaterar rad i leverantörsdokument) +UseProductSupplierPackaging=Använd förpackningar för priser avrundade till multiplar för inköpspriser (beräkna om kvantiteter enligt multiplar som är inställda på inköpspriser när du lägger till/uppdaterar rad i ett leverantörsdokument) PackagingForThisProduct=Förpackning -PackagingForThisProductDesc=Vid leverantörsbeställning kommer du automatiskt att beställa denna kvantitet (eller en multipel av denna kvantitet). Får inte vara mindre än minsta köpkvantitet +PackagingForThisProductDesc=Du kommer automatiskt att köpa en multipel av denna kvantitet. QtyRecalculatedWithPackaging=Mängden av linjen beräknades om enligt leverantörens förpackning #Attributes @@ -398,16 +399,33 @@ ActionAvailableOnVariantProductOnly=Åtgärd endast tillgänglig på varianter a ProductsPricePerCustomer=Produktpriser per kund ProductSupplierExtraFields=Ytterligare attribut (leverantörspriser) DeleteLinkedProduct=Ta bort den underordnade produkten som är länkad till kombinationen -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Enhetsbelopp som ska användas för att uppdatera det vägda genomsnittspriset PMPValue=Vägda genomsnittliga priset PMPValueShort=WAP mandatoryperiod=Obligatoriska perioder -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined +mandatoryPeriodNeedTobeSet=Obs! Period (start- och slutdatum) måste definieras mandatoryPeriodNeedTobeSetMsgValidate=En tjänst kräver en start- och slutperiod -mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
    Note that the message is a warning and not a blocking error. +mandatoryHelper=Markera detta om du vill ha ett meddelande till användaren när du skapar / validerar en faktura, kommersiellt förslag, försäljningsorder utan att ange ett start- och slutdatum på rader med denna tjänst.
    Observera att meddelandet är en varning och inte ett blockeringsfel. DefaultBOM=Standard BOM DefaultBOMDesc=Standard BOM som rekommenderas att använda för att tillverka denna produkt. Detta fält kan endast ställas in om produktens natur är '%s'. Rank=Rank -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +MergeOriginProduct=Dubblettprodukt (produkt du vill ta bort) +MergeProducts=Slå ihop produkter +ConfirmMergeProducts=Är du säker på att du vill slå samman den valda produkten med den nuvarande? Alla länkade objekt (fakturor, beställningar, ...) kommer att flyttas till den aktuella produkten, varefter den valda produkten raderas. +ProductsMergeSuccess=Produkterna har slagits samman +ErrorsProductsMerge=Fel vid produkt sammanslagning +SwitchOnSaleStatus=Slå på försäljningsstatus +SwitchOnPurchaseStatus=Slå på köpstatus +UpdatePrice=Öka/minska kundpriset +StockMouvementExtraFields= Extra fält (lagerrörelse) +InventoryExtraFields= Extra fält (inventering) +ScanOrTypeOrCopyPasteYourBarCodes=Skanna eller skriv eller kopiera/klistra in dina streckkoder +PuttingPricesUpToDate=Uppdatera priser med aktuella kända priser +PMPExpected=Förväntad PMP +ExpectedValuation=Förväntad värdering +PMPReal=Riktig PMP +RealValuation=Verklig värdering +ConfirmEditExtrafield = Välj det extrafält du vill ändra +ConfirmEditExtrafieldQuestion = Är du säker på att du vill ändra detta extrafält? +ModifyValueExtrafields = Ändra värdet för ett extrafält +OrProductsWithCategories=Eller produkter med taggar/kategorier diff --git a/htdocs/langs/sv_SE/projects.lang b/htdocs/langs/sv_SE/projects.lang index 3b072f8f138..dbd4eb749d0 100644 --- a/htdocs/langs/sv_SE/projects.lang +++ b/htdocs/langs/sv_SE/projects.lang @@ -1,63 +1,66 @@ # Dolibarr language file - Source file is en_US - projects RefProject=Ref. projekt -ProjectRef=Projekt ref. -ProjectId=Projekt Id +ProjectRef=Projektref. +ProjectId=Projekt ID ProjectLabel=Projektetikett ProjectsArea=Projektområde ProjectStatus=Projektstatus SharedProject=Alla -PrivateProject=Assigned contacts +PrivateProject=Tilldelade kontakter ProjectsImContactFor=Projekt där jag är kontaktperson AllAllowedProjects=Allt projekt jag kan läsa (min + offentliga) AllProjects=Alla projekt MyProjectsDesc=Denna vy är begränsad till projekt du är kontaktperson för -ProjectsPublicDesc=Denna uppfattning presenterar alla projekt du har rätt att läsa. -TasksOnProjectsPublicDesc=Denna vy presenterar alla uppgifter på projekt som du får läsa. -ProjectsPublicTaskDesc=Denna uppfattning presenterar alla projekt och uppgifter som du får läsa. -ProjectsDesc=Denna uppfattning presenterar alla projekt (din användarbehörighet tillåta dig att visa allt). -TasksOnProjectsDesc=Denna vy presenterar alla uppgifter på alla projekt (dina användarbehörigheter ger dig tillstånd att se allt). +ProjectsPublicDesc=Denna vy visar alla projekt du har rätt att läsa. +TasksOnProjectsPublicDesc=Denna vy presenterar alla uppgifter i projekt som du får läsa. +ProjectsPublicTaskDesc=Denna vy visar alla projekt och uppgifter som du får läsa. +ProjectsDesc=Denna vy visar alla projekt (dina rättigheter låter dig se allt). +TasksOnProjectsDesc=Denna vy presenterar alla uppgifter på alla projekt (dina rättigheter låter dig se allt). MyTasksDesc=Denna vy är begränsad till projekt eller uppgifter du är kontaktperson för -OnlyOpenedProject=Endast öppna projekt är synliga (projekt i utkast eller stängt status är inte synliga). +OnlyOpenedProject=Endast öppna projekt är synliga (projekt med statusen utkast eller stängd är inte synliga). ClosedProjectsAreHidden=Avslutade projekt är inte synliga. -TasksPublicDesc=Denna uppfattning presenterar alla projekt och uppgifter som du får läsa. -TasksDesc=Denna uppfattning presenterar alla projekt och uppgifter (din användarbehörighet tillåta dig att visa allt). -AllTaskVisibleButEditIfYouAreAssigned=Alla uppgifter för kvalificerade projekt är synliga, men du kan bara ange tid för uppgift som är tilldelad till vald användare. Tilldela uppgiften om du behöver ange tid på den. -OnlyYourTaskAreVisible=Enbart uppgifter som du är tilldelad är synliga. Om du behöver rapportera tid på en uppgift och uppgiften inte är synlig här, måste du tilldela den till dig själv. -ImportDatasetTasks=Uppgifter av projekt -ProjectCategories=Projektetiketter / kategorier +TasksPublicDesc=Denna vy visar alla projekt och uppgifter som du får läsa. +TasksDesc=Denna vy visar alla projekt och uppgifter (dina rättigheter låter dig se allt). +AllTaskVisibleButEditIfYouAreAssigned=Alla uppgifter för kvalificerade projekt är synliga, men du kan bara ange tid för uppgift som är tilldelad vald användare. Tilldela uppgiften om du behöver ange tid på den. +OnlyYourTaskAreVisible=Enbart uppgifter som du tilldelats är synliga. Om du behöver rapportera tid på en uppgift och uppgiften inte är synlig här, måste du tilldela den till dig själv. +ImportDatasetProjects=Projekt eller möjligheter +ImportDatasetTasks=Uppgifter i projekt +ProjectCategories=Projektetiketter/kategorier NewProject=Nytt projekt AddProject=Skapa projekt -DeleteAProject=Ta bort ett projekt -DeleteATask=Ta bort en uppgift +DeleteAProject=Ta bort projekt +DeleteATask=Ta bort uppgift ConfirmDeleteAProject=Är du säker på att du vill radera detta projekt? ConfirmDeleteATask=Är du säker på att du vill radera den här uppgiften? OpenedProjects=Öppna projekt OpenedTasks=Öppna uppgifter -OpportunitiesStatusForOpenedProjects=Ledar mängd öppna projekt efter status -OpportunitiesStatusForProjects=Ledar mängd projekt med status +OpportunitiesStatusForOpenedProjects=Leads med antal öppna projekt efter status +OpportunitiesStatusForProjects=Leads med antal projekt efter status ShowProject=Visa projekt ShowTask=Visa uppgift -SetProject=Ställ projekt -NoProject=Inget projekt definieras eller ägs +SetThirdParty=Ange tredjepart +SetProject=Ange projekt +OutOfProject=Utanför projektet +NoProject=Inget projekt angivet eller ägs NbOfProjects=Antal projekt NbOfTasks=Antal uppgifter -TimeSpent=Tid som tillbringas -TimeSpentByYou=Tid spenderad av dig -TimeSpentByUser=Tid spenderad av användaren -TimesSpent=Tid -TaskId=UppgiftsID -RefTask=Uppgiftsreferens -LabelTask=Uppgiftsbenämning -TaskTimeSpent=Tid som ägnas åt uppgifter +TimeSpent=Använd tid +TimeSpentByYou=Tid använd av dig +TimeSpentByUser=Tid använd av användare +TimesSpent=Använd tid +TaskId=Uppgifts-ID +RefTask=Uppgiftsref. +LabelTask=Uppgiftsetikett +TaskTimeSpent=Tid använd på uppgifter TaskTimeUser=Användare -TaskTimeNote=Anmärkning +TaskTimeNote=Anteckning TaskTimeDate=Datum -TasksOnOpenedProject=Uppgifter på öppna projekt -WorkloadNotDefined=Arbetsbelastning inte definierad -NewTimeSpent=Tid -MyTimeSpent=Min tid -BillTime=Räkna ut tiden -BillTimeShort=Fakt. tid +TasksOnOpenedProject=Uppgifter i öppna projekt +WorkloadNotDefined=Arbetsbelastning inte angiven +NewTimeSpent=Använd tid +MyTimeSpent=Min använda tid +BillTime=Fakturera använd tid +BillTimeShort=Fakturera tid TimeToBill=Tid inte fakturerad TimeBilled=Tid fakturerad Tasks=Uppgifter @@ -67,68 +70,69 @@ TaskDateEnd=Uppgift slutdatum TaskDescription=Uppgiftsbeskrivning NewTask=Ny uppgift AddTask=Skapa uppgift -AddTimeSpent=Skapa tid spenderad -AddHereTimeSpentForDay=Lägg till här tid för denna dag / uppgift -AddHereTimeSpentForWeek=Registrera tid spenderat på denna vecka/uppgift +AddTimeSpent=Skapa använd tid +AddHereTimeSpentForDay=Lägg till använd tid för denna dag/uppgift +AddHereTimeSpentForWeek=Lägg till använd tid för denna vecka/uppgift Activity=Aktivitet -Activities=Uppgifter / aktiviteter -MyActivities=Mina uppgifter / aktiviteter +Activities=Uppgifter/aktiviteter +MyActivities=Mina uppgifter/aktiviteter MyProjects=Mina projekt -MyProjectsArea=Mina projektområde -DurationEffective=Effektiv längd -ProgressDeclared=Deklarera framgång -TaskProgressSummary=Uppgiftsframsteg -CurentlyOpenedTasks=Just nu aktiva uppgifter -TheReportedProgressIsLessThanTheCalculatedProgressionByX=Den deklarerade verkliga utvecklingen är mindre %s än konsumtionsförloppet -TheReportedProgressIsMoreThanTheCalculatedProgressionByX=Den deklarerade verkliga utvecklingen är mer %s än konsumtionsframstegen -ProgressCalculated=Konsumtionsframsteg -WhichIamLinkedTo=vilka jag är länkade till -WhichIamLinkedToProject=vilka projekt jag är länkade till +MyProjectsArea=Mina projekt +DurationEffective=Effektiv varaktighet +ProgressDeclared=Faktiskt framgång +TaskProgressSummary=Framsteg i uppgifter +CurentlyOpenedTasks=Öppna uppgifter +TheReportedProgressIsLessThanTheCalculatedProgressionByX=Den faktiska framgången är mindre %s än förbrukningen +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=Den faktiska framgången är mer %s än förbrukningen +ProgressCalculated=Framsteg och förbrukning +WhichIamLinkedTo=som jag är länkad till +WhichIamLinkedToProject=där jag är länkad till projekt Time=Tid -TimeConsumed=Konsumerat -ListOfTasks=Lista över uppgifter -GoToListOfTimeConsumed=Gå till listan över tidskrävt +TimeConsumed=Förbrukat +ListOfTasks=Lista med uppgifter +GoToListOfTimeConsumed=Gå till listan över förbrukad tid GanttView=Gantt-vy ListWarehouseAssociatedProject=Lista lager associerade till detta projekt -ListProposalsAssociatedProject=Förteckning över de kommersiella förslagen relaterade till projektet -ListOrdersAssociatedProject=Förteckning över försäljningsorder relaterade till projektet -ListInvoicesAssociatedProject=Förteckning över kundfakturor relaterade till projektet -ListPredefinedInvoicesAssociatedProject=Förteckning över kundmallfakturor relaterade till projektet -ListSupplierOrdersAssociatedProject=Förteckning över inköpsorder relaterade till projektet -ListSupplierInvoicesAssociatedProject=Förteckning över leverantörsfakturor relaterade till projektet -ListContractAssociatedProject=Förteckning över kontrakt relaterade till projektet -ListShippingAssociatedProject=Förteckning över frakt relaterade till projektet -ListFichinterAssociatedProject=Förteckning över interventioner relaterade till projektet -ListExpenseReportsAssociatedProject=Förteckning över kostnadsrapporter relaterade till projektet -ListDonationsAssociatedProject=Förteckning över donationer relaterade till projektet -ListVariousPaymentsAssociatedProject=Förteckning över diverse betalningar relaterade till projektet -ListSalariesAssociatedProject=Förteckning över betalningar av löner relaterade till projektet -ListActionsAssociatedProject=Förteckning över händelser relaterade till projektet -ListMOAssociatedProject=Lista tillverkningsordrar relaterade till detta projekt -ListTaskTimeUserProject=Förteckning över tid som konsumeras på projektets uppgifter +ListProposalsAssociatedProject=Lista över offerter relaterade till projektet +ListOrdersAssociatedProject=Lista över order relaterade till projektet +ListInvoicesAssociatedProject=Lista över fakturor relaterade till projektet +ListPredefinedInvoicesAssociatedProject=Lista över fakturamallar relaterade till projektet +ListSupplierOrdersAssociatedProject=Lista över inköpsorder relaterade till projektet +ListSupplierInvoicesAssociatedProject=Lista över leverantörsfakturor relaterade till projektet +ListContractAssociatedProject=Lista över kontrakt relaterade till projektet +ListShippingAssociatedProject=Lista över försändelser relaterade till projektet +ListFichinterAssociatedProject=Lista över interventioner relaterade till projektet +ListExpenseReportsAssociatedProject=Lista över kostnadsrapporter relaterade till projektet +ListDonationsAssociatedProject=Lista över donationer relaterade till projektet +ListVariousPaymentsAssociatedProject=Lista över diverse betalningar relaterade till projektet +ListSalariesAssociatedProject=Lista över betalningar av löner relaterade till projektet +ListActionsAssociatedProject=Lista över händelser relaterade till projektet +ListMOAssociatedProject=Lista över tillverkningsordrar relaterade till detta projekt +ListTaskTimeUserProject=Lista över tid som använts på projektets uppgifter ListTaskTimeForTask=Lista över tid förbrukad på uppgift ActivityOnProjectToday=Aktivitet på projektet idag ActivityOnProjectYesterday=Aktivitet på projektet igår ActivityOnProjectThisWeek=Aktivitet på projekt den här veckan ActivityOnProjectThisMonth=Aktivitet på projekt denna månad ActivityOnProjectThisYear=Aktivitet på projekt i år -ChildOfProjectTask=Barn av projekt / uppdrag -ChildOfTask=Barn av uppgift -TaskHasChild=Uppgiften har barn -NotOwnerOfProject=Inte ägaren av denna privata projekt -AffectedTo=Påverkas i -CantRemoveProject=Detta projekt kan inte tas bort, eftersom det är refererat i något annat föremål (faktura, order etc.). Se i flik "%s" -ValidateProject=Bekräfta projet +ChildOfProjectTask=Underordnad projekt/uppgift +ChildOfTask=Underordnad uppgift +TaskHasChild=Uppgiften har underordnade +NotOwnerOfProject=Inte ägare av detta privata projekt +AffectedTo=Allokerad +CantRemoveProject=Detta projekt kan inte tas bort, eftersom det är refererat i något annat föremål (faktura, order etc.). Se flik %s +ValidateProject=Bekräfta projekt ConfirmValidateProject=Är du säker på att du vill bekräfta detta projekt? CloseAProject=Stäng projekt ConfirmCloseAProject=Är du säker på att du vill stänga detta projekt? -AlsoCloseAProject=Stäng också projektet (håll det öppet om du fortfarande behöver följa produktionsuppgifterna på den) +AlsoCloseAProject=Stäng också projekt +AlsoCloseAProjectTooltip=Behåll det öppet om du fortfarande har produktionsåtgärder kvar ReOpenAProject=Öppna projekt ConfirmReOpenAProject=Är du säker på att du vill öppna det här projektet igen? -ProjectContact=Kontakter av projekt -TaskContact=Uppgiftskontakter -ActionsOnProject=Åtgärder för projektet -YouAreNotContactOfProject=Du är inte en kontakt på denna privata projekt +ProjectContact=Kontakter i projekt +TaskContact=Kontakter för uppgift +ActionsOnProject=Händelser i projektet +YouAreNotContactOfProject=Du är inte en kontakt i detta privata projekt UserIsNotContactOfProject=Användaren är inte kontakt med det här privata projektet DeleteATimeSpent=Ta bort tid ConfirmDeleteATimeSpent=Är du säker på att du vill radera den här tiden? @@ -165,7 +169,7 @@ OpportunityProbability=Ledsannolikhet OpportunityProbabilityShort=Bly probab. OpportunityAmount=Blybelopp OpportunityAmountShort=Blybelopp -OpportunityWeightedAmount=Möjlighet vägd mängd +OpportunityWeightedAmount=Möjligheten i förhållande till sannolikheten OpportunityWeightedAmountShort=Opp. vägd mängd OpportunityAmountAverageShort=Genomsnittlig blybelopp OpportunityAmountWeigthedShort=Viktad blybelopp @@ -190,7 +194,7 @@ PlannedWorkload=Planerad arbetsbelastning PlannedWorkloadShort=Arbetsbelastning ProjectReferers=Relaterade saker ProjectMustBeValidatedFirst=Projekt måste bekräftas först -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. +MustBeValidatedToBeSigned=%s måste valideras först för att ställas in på Signerad. FirstAddRessourceToAllocateTime=Tilldela en användarresurs som kontaktperson för projekt att rapportera tid InputPerDay=Ingång per dag InputPerWeek=Ingång per vecka @@ -198,7 +202,7 @@ InputPerMonth=Ingång per månad InputDetail=Inmatningsdetalj TimeAlreadyRecorded=Det här är den tid som redan spelats in för den här uppgiften / dag och användare %s ProjectsWithThisUserAsContact=Projekt med denna användare som kontakt -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=Projekt med denna kontakt TasksWithThisUserAsContact=Uppgifter som tilldelats den här användaren ResourceNotAssignedToProject=Ej tilldelat till projekt ResourceNotAssignedToTheTask=Ej tilldelad uppgiften @@ -238,7 +242,7 @@ OppStatusPENDING=Avvaktande OppStatusWON=Vann OppStatusLOST=Förlorat Budget=Budget -AllowToLinkFromOtherCompany=Tillåt att länka projektet från annat företag

    Stödda värden:
    - Håll tom: Kan länka alla projekt av företaget (standard)
    - "all": Kan länka alla projekt, även projekt från andra företag
    - En lista över tredjeparts-ID separerade med kommatecken: kan länka alla projekt av dessa tredje partier (Exempel: 123,4795,53)
    +AllowToLinkFromOtherCompany=Tillåt att länka ett element med ett projekt från ett annat företag

    Värden som stöds:
    - Håll tomt: Kan länka element med a0cc-projektet som helst, Canfaults: Canfaults elements with a0cc-projektet, "Canf9b" projekt från andra företag
    - En lista över tredjeparts-ID separerade med kommatecken: kan länka element till alla projekt från dessa tredje parter (Exempel: 123,4795,53)
    LatestProjects=Senaste %s projekten LatestModifiedProjects=Senaste %s modifierade projekten OtherFilteredTasks=Andra filtrerade uppgifter @@ -259,7 +263,7 @@ TimeSpentInvoiced=Tid förbrukad fakturerad TimeSpentForIntervention=Tid TimeSpentForInvoice=Tid OneLinePerUser=En rad per användare -ServiceToUseOnLines=Service att använda på linjer +ServiceToUseOnLines=Tjänst att använda på linjer som standard InvoiceGeneratedFromTimeSpent=Faktura %s har genererats från tid till projekt InterventionGeneratedFromTimeSpent=Intervention %s har genererats från tid på projektet ProjectBillTimeDescription=Kontrollera om du anger tidrapport för projektuppgifter OCH du planerar att generera fakturor från tidrapporten för att fakturera kunden för projektet (kontrollera inte om du planerar att skapa faktura som inte baseras på angivna tidrapporter). Obs! För att generera faktura, gå till fliken "Tid" för projektet och välj rader som ska inkluderas. @@ -276,21 +280,22 @@ NewInter=Nya insatser OneLinePerTask=En rad per uppgift OneLinePerPeriod=En rad per period OneLinePerTimeSpentLine=En rad för varje tidrapport -AddDetailDateAndDuration=With date and duration into line description +AddDetailDateAndDuration=Med datum och varaktighet i radbeskrivning RefTaskParent=Refererad överordnad uppgift ProfitIsCalculatedWith=Vinst är beräknad av AddPersonToTask=Lägg också till i uppgift UsageOrganizeEvent=Användning: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klassificera projektet som stängt när alla dess uppgifter är slutförda (100%% framsteg) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Obs: befintliga projekt med alla uppgifter vid 100%%-framsteg påverkas inte: du måste stänga dem manuellt. Det här alternativet påverkar endast öppna projekt. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Obs! Befintliga projekt med alla uppgifter som redan är inställda på 100%% kommer inte att påverkas: du måste stänga dem manuellt. Det här alternativet påverkar endast öppna projekt. SelectLinesOfTimeSpentToInvoice=Välj rader med tid som inte har fakturerats och sedan massåtgärden "Generera faktura" för att fakturera dem -ProjectTasksWithoutTimeSpent=Project tasks without time spent -FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. -ProjectsHavingThisContact=Projects having this contact +ProjectTasksWithoutTimeSpent=Projektuppgifter utan tidsåtgång +FormForNewLeadDesc=Tack för att du fyller i följande formulär för att kontakta oss. Du kan också skicka ett mejl direkt till %s . +ProjectsHavingThisContact=Projekt som har denna kontakt StartDateCannotBeAfterEndDate=Slutdatum kan inte vara före startdatum -ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types -LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form -LeadFromPublicForm=Online lead from public form +ErrorPROJECTLEADERRoleMissingRestoreIt=Rollen "PROJECTLEADER" saknas eller har avaktiverats, vänligen återställ i ordlistan över kontakttyper +LeadPublicFormDesc=Här kan du aktivera en offentlig sida så att dina potentiella kunder kan ta en första kontakt med dig från ett offentligt onlineformulär +EnablePublicLeadForm=Aktivera det offentliga formuläret för kontakt +NewLeadbyWeb=Ditt meddelande eller din förfrågan har sparats. Vi svarar eller kontaktar dig snart. +NewLeadForm=Nytt kontaktformulär +LeadFromPublicForm=Online lead från offentlig form +ExportAccountingReportButtonLabel=Få rapport diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang index c3813ff5a4f..119387e08fb 100644 --- a/htdocs/langs/sv_SE/propal.lang +++ b/htdocs/langs/sv_SE/propal.lang @@ -22,7 +22,7 @@ SearchAProposal=Sök ett förslag NoProposal=Inget förslag ProposalsStatistics=Kommersiella förslag statistik NumberOfProposalsByMonth=Antal per månad -AmountOfProposalsByMonthHT=Belopp per månad (exkl. skatt) +AmountOfProposalsByMonthHT=Belopp per månad (exkl. moms) NbOfProposals=Antal kommersiella förslag ShowPropal=Visa förslag PropalsDraft=Utkast @@ -35,7 +35,7 @@ PropalStatusBilled=Fakturerade PropalStatusDraftShort=Förslag PropalStatusValidatedShort=Bekräftat (öppen) PropalStatusClosedShort=Stängt -PropalStatusSignedShort=Signerad +PropalStatusSignedShort=Undertecknad PropalStatusNotSignedShort=Inte undertecknat PropalStatusBilledShort=Fakturerade PropalsToClose=Kommersiella förslag att stänga @@ -54,7 +54,7 @@ NoDraftProposals=Inga förslagsutkast CopyPropalFrom=Skapa kommersiella förslag genom att kopiera befintliga förslaget CreateEmptyPropal=Skapa tomt kommersiellt förslag eller från listan över produkter / tjänster DefaultProposalDurationValidity=Standard kommersiella förslag giltighet längd (i dagar) -DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal +DefaultPuttingPricesUpToDate=Uppdatera som standard priser med aktuella kända priser vid kloning av ett förslag UseCustomerContactAsPropalRecipientIfExist=Använd kontakt / adress med typ "Kontakt efterföljande förslag" om det definieras i stället för tredjepartsadress som mottagaradress för förslag ConfirmClonePropal=Är du säker på att du vill klona det kommersiella förslaget %s ? ConfirmReOpenProp=Är du säker på att du vill öppna tillbaka det kommersiella förslaget %s ? @@ -65,49 +65,54 @@ AvailabilityPeriod=Tillgänglighet fördröjning SetAvailability=Ställa tillgänglighet fördröjning AfterOrder=Efter att OtherProposals=Andra förslag + ##### Availability ##### AvailabilityTypeAV_NOW=Omedelbar AvailabilityTypeAV_1W=1 vecka AvailabilityTypeAV_2W=2 veckor AvailabilityTypeAV_3W=3 veckor AvailabilityTypeAV_1M=1 månad -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representanten följa upp förslag TypeContact_propal_external_BILLING=Kundfaktura kontakt TypeContact_propal_external_CUSTOMER=Kundkontakt följa upp förslag TypeContact_propal_external_SHIPPING=Kundkontakt för leverans + # Document models -DocModelAzurDescription=En komplett förslagsmodell (gammal implementering av Cyan-mall) -DocModelCyanDescription=En komplett förslagsmodell +CantBeNoSign=kan inte ställas in som osignerad +CaseFollowedBy=Fall följt av +ConfirmMassNoSignature=Bulk Ej signerad bekräftelse +ConfirmMassNoSignatureQuestion=Är du säker på att du vill ställa in osignerade de valda posterna? +ConfirmMassSignature=Bekräftelse på bulksignatur +ConfirmMassSignatureQuestion=Är du säker på att du vill signera de valda posterna? +ConfirmMassValidation=Massvalidera bekräftelse +ConfirmMassValidationQuestion=Är du säker på att du vill validera de valda posterna? +ConfirmRefusePropal=Är du säker på att du vill tacka nej till detta kommersiella förslag? +ContractSigned=Kontrakt undertecknat +DefaultModelPropalClosed=Standardmall när ett affärsförslag sluts (ofakturerat) DefaultModelPropalCreate=Skapa standardmodell DefaultModelPropalToBill=Standardmall när ett affärsförslag sluts (att fakturera) -DefaultModelPropalClosed=Standardmall när ett affärsförslag sluts (ofakturerat) +DocModelAzurDescription=En komplett förslagsmodell (gammal implementering av Cyan-mall) +DocModelCyanDescription=En komplett förslagsmodell +FichinterSigned=Intervention undertecknad +IdProduct=Serienummer +IdProposal=Förslag ID +IsNotADraft=är inte ett utkast +LineBuyPriceHT=Köp Pris Belopp exklusive skatt för linjen +NoSign=Vägra +NoSigned=sätt ej signerat +PassedInOpenStatus=har validerats +PropalAlreadyRefused=Förslaget har redan avslagits +PropalAlreadySigned=Förslaget har redan godkänts +PropalRefused=Förslaget avslogs +PropalSigned=Förslaget accepterat ProposalCustomerSignature=Skriftligt godkännande, företagsstämpel, datum och signatur ProposalsStatisticsSuppliers=Statistik för leverantörsförslag -CaseFollowedBy=Fall följt av +RefusePropal=Avslå förslag +Sign=Sign +SignContract=Signera kontrakt +SignFichinter=Signera intervention +SignPropal=Acceptera förslaget +Signed=signerad SignedOnly=Endast signerad -NoSign=Set not signed -NoSigned=set not signed -CantBeNoSign=cannot be set not signed -ConfirmMassNoSignature=Bulk Not signed confirmation -ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? -IsNotADraft=is not a draft -PassedInOpenStatus=has been validated -Sign=Sign -Signed=signed -ConfirmMassValidation=Bulk Validate confirmation -ConfirmMassSignature=Bulk Signature confirmation -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? -ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=Förslag ID -IdProduct=Serienummer -LineBuyPriceHT=Köp Pris Belopp exklusive skatt för linjen -SignPropal=Accept proposal -RefusePropal=Refuse proposal -Sign=Sign -NoSign=Set not signed -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? diff --git a/htdocs/langs/sv_SE/receiptprinter.lang b/htdocs/langs/sv_SE/receiptprinter.lang index 9217fd41539..ba7688eeada 100644 --- a/htdocs/langs/sv_SE/receiptprinter.lang +++ b/htdocs/langs/sv_SE/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Test skickat till skrivare %s ReceiptPrinter=Mottagningsskrivare ReceiptPrinterDesc=Inställning av kvitteringsskrivare ReceiptPrinterTemplateDesc=Inställning av mallar -ReceiptPrinterTypeDesc=Beskrivning av kvittotypens typ +ReceiptPrinterTypeDesc=Exempel på möjliga värden för fältet "Parametrar" beroende på typ av drivrutin ReceiptPrinterProfileDesc=Beskrivning av kvittensskrivarens profil ListPrinters=Lista över skrivare SetupReceiptTemplate=Mallinställning @@ -40,8 +40,8 @@ DOL_USE_FONT_B=Använd typsnitt B i skrivaren DOL_USE_FONT_C=Använd typsnitt C i skrivaren DOL_PRINT_BARCODE=Skriv ut streckkod DOL_PRINT_BARCODE_CUSTOMER_ID=Skriv ut streckkods kund id -DOL_CUT_PAPER_FULL=Klipp biljetten helt -DOL_CUT_PAPER_PARTIAL=Klipp biljetten delvis +DOL_CUT_PAPER_FULL=Dela ärende helt +DOL_CUT_PAPER_PARTIAL=Dela ärendet delvis DOL_OPEN_DRAWER=Öppna kassalådan DOL_ACTIVATE_BUZZER=Aktivera summer DOL_PRINT_QRCODE=Skriv ut QR-kod @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Standard höjd och bredd DOL_UNDERLINE=Aktivera understrykning DOL_UNDERLINE_DISABLED=Inaktivera understrykning DOL_BEEP=Summer +DOL_BEEP_ALTERNATIVE=Pipljud (alternativt läge) +DOL_PRINT_CURR_DATE=Skriv ut aktuellt datum/tid DOL_PRINT_TEXT=Skriv text DateInvoiceWithTime=Fakturadatum och ti YearInvoice=Fakturaår diff --git a/htdocs/langs/sv_SE/receptions.lang b/htdocs/langs/sv_SE/receptions.lang index 3e7eb7455e0..fbcf0febf4d 100644 --- a/htdocs/langs/sv_SE/receptions.lang +++ b/htdocs/langs/sv_SE/receptions.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=Vendor reception management (Create reception documents) -ReceptionsSetup=Vendor Reception setup +ReceptionDescription=Leverantörsmottagningshantering (Skapa mottagningsdokument) +ReceptionsSetup=Inställning av leverantörsmottagning RefReception=Ref. reception Reception=Den process Receptions=mottagningar @@ -24,14 +24,15 @@ ReceptionsAndReceivingForSameOrder=Mottagningar och kvitton för denna beställn ReceptionsToValidate=Mottaganden att validera StatusReceptionCanceled=Annullerad StatusReceptionDraft=Utkast -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionValidated=Validerad (produkter att ta emot eller redan mottagna) +StatusReceptionValidatedToReceive=Validerad (produkter att ta emot) +StatusReceptionValidatedReceived=Validerad (mottagna produkter) StatusReceptionProcessed=Bearbetad StatusReceptionDraftShort=Utkast StatusReceptionValidatedShort=Bekräftade StatusReceptionProcessedShort=Bearbetad ReceptionSheet=Mottagningsblad +ValidateReception=Validera mottagning ConfirmDeleteReception=Är du säker på att du vill ta bort denna mottagning? ConfirmValidateReception=Är du säker på att du vill validera denna mottagning med referens %s ? ConfirmCancelReception=Är du säker på att du vill avbryta mottagningen? @@ -39,7 +40,7 @@ StatsOnReceptionsOnlyValidated=Statistik som utförs på mottagningar är endast SendReceptionByEMail=Skicka mottagning via e-post SendReceptionRef=Inlämning av mottagning %s ActionsOnReception=Händelser i receptionen -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. +ReceptionCreationIsDoneFromOrder=För tillfället skapas en ny leverans från inköpsordern. ReceptionLine=Mottagningslinje ProductQtyInReceptionAlreadySent=Produktkvantitet från öppen försäljningsorder redan skickad ProductQtyInSuppliersReceptionAlreadyRecevied=Produktkvantitet från öppen leverantörsorder redan mottagen @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Numreringsmodul för mottagningar ReceptionsReceiptModel=Dokumentmallar för mottagningar NoMorePredefinedProductToDispatch=Inga fler fördefinierade produkter att skicka ReceptionExist=Det finns en mottagning -ByingPrice=Bying price -ReceptionBackToDraftInDolibarr=Reception %s back to draft -ReceptionClassifyClosedInDolibarr=Reception %s classified Closed -ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open +ReceptionBackToDraftInDolibarr=Leverans %s tillbaka till utkast +ReceptionClassifyClosedInDolibarr=Leverans %s klassificerad Stängd +ReceptionUnClassifyCloseddInDolibarr=Leverans %s öppnad igen diff --git a/htdocs/langs/sv_SE/recruitment.lang b/htdocs/langs/sv_SE/recruitment.lang index b92dea1dc3b..600da554f13 100644 --- a/htdocs/langs/sv_SE/recruitment.lang +++ b/htdocs/langs/sv_SE/recruitment.lang @@ -20,57 +20,60 @@ # Module label 'ModuleRecruitmentName' ModuleRecruitmentName = Rekrytering # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Hantera och följ rekryteringskampanjer för nya jobb +ModuleRecruitmentDesc = Hantera och följ rekryteringar för utannonserade tjänster # # Admin page # -RecruitmentSetup = Rekryteringsinställning +RecruitmentSetup = Inställningar för rekrytering Settings = inställningar -RecruitmentSetupPage = Ange här inställningen av huvudalternativ för rekryteringsmodulen +RecruitmentSetupPage = Ange huvudalternativ för rekryteringsmodulen RecruitmentArea=Rekryteringsområde -PublicInterfaceRecruitmentDesc=Offentliga sidor med jobb är offentliga webbadresser för att visa och svara på öppna jobb. Det finns en annan länk för varje öppet jobb som finns i varje jobb. -EnablePublicRecruitmentPages=Aktivera offentliga sidor med öppna jobb +PublicInterfaceRecruitmentDesc=Publika sidor med tjänster är offentliga webbadresser för att visa upp lediga tjänster. Det finns en annan länk för varje ledig position som finns i varje tjänst. +EnablePublicRecruitmentPages=Aktivera publika sidor med lediga tjänster # # About page # About = Om -RecruitmentAbout = Om rekrytering -RecruitmentAboutPage = Rekrytering om sida +RecruitmentAbout = Om rekryteringen +RecruitmentAboutPage = Rekryteringens om-sida NbOfEmployeesExpected=Förväntat antal anställda -JobLabel=Etikett för jobbet +JobLabel=Etikett för tjänsten WorkPlace=Arbetsplats DateExpected=Förväntat datum FutureManager=Framtida chef ResponsibleOfRecruitement=Ansvarig för rekrytering -IfJobIsLocatedAtAPartner=Om jobbet finns på en partnerplats +IfJobIsLocatedAtAPartner=Finns tjänsten på en partnerplats PositionToBeFilled=Befattning -PositionsToBeFilled=Jobbpositioner -ListOfPositionsToBeFilled=Lista över anställningar -NewPositionToBeFilled=Nya jobbpositioner +PositionsToBeFilled=Befattningar +ListOfPositionsToBeFilled=Lista över befattningar +NewPositionToBeFilled=Nya befattningar -JobOfferToBeFilled=Jobb som ska fyllas -ThisIsInformationOnJobPosition=Information om den anställning som ska fyllas +JobOfferToBeFilled=Befattning att tillsätta +ThisIsInformationOnJobPosition=Information om den befattning som ska tillsättas ContactForRecruitment=Kontakt för rekrytering -EmailRecruiter=E-postrekryterare +EmailRecruiter=E-post till rekryterare ToUseAGenericEmail=Att använda ett generiskt e-postmeddelande. Om det inte definieras kommer e-postmeddelandet till den ansvariga för rekryteringen att användas NewCandidature=Ny ansökan -ListOfCandidatures=Lista över ansökningar -RequestedRemuneration=Begärd ersättning -ProposedRemuneration=Föreslagen ersättning -ContractProposed=Avtalsförslag -ContractSigned=Kontrakt undertecknat -ContractRefused=Avtal nekades +ListOfCandidatures=Lista ansökningar +Remuneration=Lön +RequestedRemuneration=Önskad lön +ProposedRemuneration=Föreslagen lön +ContractProposed=Avtals föreslag +ContractSigned=Avtal signerat +ContractRefused=Avtal nekat RecruitmentCandidature=Ansökan -JobPositions=Jobbpositioner +JobPositions=Befattningar RecruitmentCandidatures=Applikationer -InterviewToDo=Intervju att göra -AnswerCandidature=Ansökan svar +InterviewToDo=Kontakter att följa +AnswerCandidature=Svar på ansökan YourCandidature=Din ansökan YourCandidatureAnswerMessage=Tack för din ansökan.
    ... -JobClosedTextCandidateFound=Jobbet är stängt. Anställningen har fyllts. -JobClosedTextCanceled=Jobbet är stängt. -ExtrafieldsJobPosition=Kompletterande attribut (jobbpositioner) -ExtrafieldsApplication=Kompletterande attribut (jobbansökningar) -MakeOffer=Göra ett erbjudande +JobClosedTextCandidateFound=Ansökan har avslutats och positionen är tillsatt. +JobClosedTextCanceled=Befattningen är tillsatt. +ExtrafieldsJobPosition=Kompletterande attribut (befattningar) +ExtrafieldsApplication=Kompletterande attribut (ansökningar) +MakeOffer=Ge ett erbjudande +WeAreRecruiting=Vi rekryterar! Detta är en lista över lediga tjänster som ska tillsättas... +NoPositionOpen=Inga lediga tjänster för tillfället diff --git a/htdocs/langs/sv_SE/resource.lang b/htdocs/langs/sv_SE/resource.lang index 16ec7c66e6c..cbabf8553be 100644 --- a/htdocs/langs/sv_SE/resource.lang +++ b/htdocs/langs/sv_SE/resource.lang @@ -2,38 +2,38 @@ MenuResourceIndex=Resurser MenuResourceAdd=Ny resurs DeleteResource=Radera resurs -ConfirmDeleteResourceElement=Bekräfta radera resurs för detta element +ConfirmDeleteResourceElement=Bekräfta radering av resurs för detta element NoResourceInDatabase=Ingen resurs i databasen. -NoResourceLinked=Ingen resurs kopplad -ActionsOnResource=Händelser om den här resursen -ResourcePageIndex=Listan över resurser +NoResourceLinked=Ingen resurs länkad +ActionsOnResource=Händelser om denna resurs +ResourcePageIndex=Lista över resurser ResourceSingular=Resurs -ResourceCard=Resurs kort +ResourceCard=Resurskort AddResource=Skapa en resurs ResourceFormLabel_ref=Resursnamn -ResourceType=Resurs typ +ResourceType=Resurstyp ResourceFormLabel_description=Resursbeskrivning -ResourcesLinkedToElement=Resurser kopplade till elementet +ResourcesLinkedToElement=Resurser länkade till elementet ShowResource=Visa resurs -ResourceElementPage=Element resurser +ResourceElementPage=Elementresurser ResourceCreatedWithSuccess=Resursen har skapats -RessourceLineSuccessfullyDeleted=Resurslinje har tagits bort -RessourceLineSuccessfullyUpdated=Resurs linje har uppdaterats -ResourceLinkedWithSuccess=Resurs kopplat med framgång +RessourceLineSuccessfullyDeleted=Resursrad har tagits bort +RessourceLineSuccessfullyUpdated=Resursrad har uppdaterats +ResourceLinkedWithSuccess=Resursen har länkats -ConfirmDeleteResource=Bekräfta radera denna resurs -RessourceSuccessfullyDeleted=Resurs tagits bort +ConfirmDeleteResource=Bekräfta radering av denna resurs +RessourceSuccessfullyDeleted=Resurs har tagits bort DictionaryResourceType=Typ av resurser SelectResource=Välj resurs IdResource=ID-resurs AssetNumber=Serienummer -ResourceTypeCode=Typ av resurs typ +ResourceTypeCode=Resurs typkod ImportDataset_resource_1=Resurser -ErrorResourcesAlreadyInUse=Vissa resurser är använda +ErrorResourcesAlreadyInUse=Vissa resurser används ErrorResourceUseInEvent=%s använt i %s diff --git a/htdocs/langs/sv_SE/salaries.lang b/htdocs/langs/sv_SE/salaries.lang index 4af0111e77a..4d5d2bc6997 100644 --- a/htdocs/langs/sv_SE/salaries.lang +++ b/htdocs/langs/sv_SE/salaries.lang @@ -1,26 +1,27 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Redovisningskonto som används för tredje part -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Det dedikerade bokföringskontot som definieras på användarkortet kommer endast att användas för Subledger-bokföring. Den här kommer att användas för huvudboken och som standardvärde för Subledger-bokföring om ett dedikerat användarkonto på användare inte är definierat. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto (från kontoplanen) används som standard för "användare" tredje part +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Det dedikerade kontot som definieras på användarkortet kommer endast att användas för underreskontra. Denna kommer att användas för huvudbok och som standardvärde för underreskontra om ett dedikerat användarkonto för användare inte är definierat. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Redovisningskonto som standard för lönebetalningar CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Lämna som standard tomt alternativet "Skapa en total betalning automatiskt" när du skapar en lön Salary=Lön Salaries=Löner NewSalary=Ny lön -AddSalary=Add salary +AddSalary=Lägg till lön NewSalaryPayment=Nytt lönekort AddSalaryPayment=Lägg till lönbetalning SalaryPayment=Lönebetalning SalariesPayments=Löneutbetalningar -SalariesPaymentsOf=Löner betalningar av %s +SalariesPaymentsOf=Lönerutbetalningar av %s ShowSalaryPayment=Visa löneutbetalning -THM=Genomsnittlig timpris -TJM=Genomsnittlig dagskurs +THM=Genomsnittlig timkurs +TJM=Genomsnittligt dagskurs CurrentSalary=Nuvarande lön THMDescription=Det här värdet kan användas för att beräkna kostnaden för tidskrävande på ett projekt som användaren har infört om modulprojekt används TJMDescription=Detta värde är för närvarande endast för information och används inte för någon beräkning -LastSalaries=Senaste %s löner +LastSalaries=Senaste %s lönerna AllSalaries=Alla löner SalariesStatistics=Lönestatistik SalariesAndPayments=Löner och betalningar ConfirmDeleteSalaryPayment=Vill du ta bort den här lönen? -FillFieldFirst=Fill employee field first +FillFieldFirst=Fyll i fällt om den anställda först +UpdateAmountWithLastSalary=Sätt belopp med senaste lön diff --git a/htdocs/langs/sv_SE/sendings.lang b/htdocs/langs/sv_SE/sendings.lang index 8877cdcd389..814d1461287 100644 --- a/htdocs/langs/sv_SE/sendings.lang +++ b/htdocs/langs/sv_SE/sendings.lang @@ -53,7 +53,7 @@ SendShippingByEMail=Skicka leverans via e-post SendShippingRef=Inlämning av leveransen %s ActionsOnShipping=Evenemang på leverans LinkToTrackYourPackage=Länk till spåra ditt paket -ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the Sales Order record. +ShipmentCreationIsDoneFromOrder=För tillfället skapas en ny försändelse från försäljningsorderposten. ShipmentLine=Transport linje ProductQtyInCustomersOrdersRunning=Produktkvantitet från öppna försäljningsorder ProductQtyInSuppliersOrdersRunning=Produktkvantitet från öppna beställningar diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang index 75e2cedb2dc..1e1e171a0aa 100644 --- a/htdocs/langs/sv_SE/stocks.lang +++ b/htdocs/langs/sv_SE/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Lagergräns för varning och önskat optimalt lager ProductStockWarehouseUpdated=Lagergräns för varning och önskat optimalt lager korrekt uppdaterat ProductStockWarehouseDeleted=Lagergräns för varning och önskat optimalt lager raderas korrekt AddNewProductStockWarehouse=Ange ny gräns för alert och önskat optimalt lager -AddStockLocationLine=Minska kvantiteten klicka sedan för att lägga till ett annat lager för denna produkt +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Lagerdatum Inventories=Inventories NewInventory=Ny inventering @@ -254,7 +254,7 @@ ReOpen=Öppna igen ConfirmFinish=Bekräftar du stängningen av inventeringen? Detta genererar alla lagerrörelser för att uppdatera ditt lager till det verkliga antalet du angav i lageret. ObjectNotFound=%s hittades inte MakeMovementsAndClose=Generera rörelser och stäng -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=Som standard visar du batchuppgifter på fliken "lager" CollapseBatchDetailHelp=Du kan ställa in standardvisning för batchdetaljer i lagermodulkonfiguration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Påbörjad ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=inställningar +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/sv_SE/stripe.lang b/htdocs/langs/sv_SE/stripe.lang index ff0b4050f5e..35d559d99a1 100644 --- a/htdocs/langs/sv_SE/stripe.lang +++ b/htdocs/langs/sv_SE/stripe.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - stripe StripeSetup=Stripe modul inställning -StripeDesc=Offer your customers an online payment page for payments with credit/debit cards via Stripe. This can be used to allow your customers to make ad-hoc payments or for payments related to a particular Dolibarr object (invoice, order, ...) +StripeDesc=Erbjud dina kunder en onlinebetalningssida för betalningar med kredit-/betalkort via Stripe . Detta kan användas för att låta dina kunder göra ad-hoc-betalningar eller för betalningar relaterade till ett visst Dolibarr-objekt (faktura, order, ...) StripeOrCBDoPayment=Betala med kreditkort eller Stripe FollowingUrlAreAvailableToMakePayments=Följande webbadresser finns att erbjuda en sida till en kund att göra en förskottsbetalning Dolibarr objekt PaymentForm=Inbetalningskort @@ -18,7 +18,7 @@ Continue=Nästa ToOfferALinkForOnlinePayment=URL för %s betalning ToOfferALinkForOnlinePaymentOnOrder=URL för att erbjuda en %s onlinebetalningssida för en försäljningsorder ToOfferALinkForOnlinePaymentOnInvoice=URL för att erbjuda en %s onlinebetalningssida för en kundfaktura -ToOfferALinkForOnlinePaymentOnContractLine=URL för att erbjuda en online-betalningssida %s för en kontraktslinje +ToOfferALinkForOnlinePaymentOnContractLine=URL för att erbjuda en online-betalningssida %s för en kontraktsrad ToOfferALinkForOnlinePaymentOnFreeAmount=URL för att erbjuda en %s onlinebetalningssida av vilket belopp som helst utan något befintligt objekt ToOfferALinkForOnlinePaymentOnMemberSubscription=URL för att erbjuda en %s onlinebetalningssida för ett medlemsabonnemang ToOfferALinkForOnlinePaymentOnDonation=URL för att erbjuda en %s onlinebetalningssida för betalning av en donation @@ -61,6 +61,7 @@ DeleteACard=Radera kort ConfirmDeleteCard=Är du säker på att du vill radera detta kredit- eller betalkort? CreateCustomerOnStripe=Skapa kund på Stripe CreateCardOnStripe=Skapa kort på Stripe +CreateBANOnStripe=Skapa bank på Stripe ShowInStripe=Visa i Stripe StripeUserAccountForActions=Användarkonto som ska användas för e-postnotifiering av vissa Stripe-händelser (Stripe-utbetalningar) StripePayoutList=Lista över Stripe utbetalningar @@ -69,3 +70,5 @@ ToOfferALinkForLiveWebhook=Länk till installation Stripe WebHook för att ringa PaymentWillBeRecordedForNextPeriod=Betalning kommer att registreras för nästa period. ClickHereToTryAgain= Klicka här för att försöka igen ... CreationOfPaymentModeMustBeDoneFromStripeInterface=På grund av starka regler för kundautentisering måste ett kort skapas från Stripe backoffice. Du kan klicka här för att slå på Stripes kundregister: %s +TERMINAL_LOCATION=Plats (adress) för terminaler +RequestDirectDebitWithStripe=Begär autogiro med Stripe diff --git a/htdocs/langs/sv_SE/supplier_proposal.lang b/htdocs/langs/sv_SE/supplier_proposal.lang index 823b602fe4f..772a3146902 100644 --- a/htdocs/langs/sv_SE/supplier_proposal.lang +++ b/htdocs/langs/sv_SE/supplier_proposal.lang @@ -1,58 +1,58 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposal=Leverantörsförslag -supplier_proposalDESC=Hantera prisförfrågningar till leverantörer +SupplierProposal=Leverantörsoffert +supplier_proposalDESC=Hantera prisförfrågningar hos leverantörer SupplierProposalNew=Ny prisförfrågan CommRequest=Prisförfrågan CommRequests=Prisförfrågningar SearchRequest=Hitta en förfrågan -DraftRequests=Utkast till ansökningar -SupplierProposalsDraft=Utkast till leverantörsförslag -LastModifiedRequests=Senaste %s ändrade prisförfrågningar +DraftRequests=Utkast på förfrågningar +SupplierProposalsDraft=Utkast på prisförfrågan +LastModifiedRequests=%s senast ändrade prisförfrågningar RequestsOpened=Öppna prisförfrågningar -SupplierProposalArea=Leverantörsförslag -SupplierProposalShort=Leverantörsförslag -SupplierProposals=Leverantörsförslag -SupplierProposalsShort=Leverantörsförslag +SupplierProposalArea=Leverantörsoffert +SupplierProposalShort=Leverantörsoffert +SupplierProposals=Leverantörsoffert +SupplierProposalsShort=Leverantörsoffert AskPrice=Prisförfrågan NewAskPrice=Ny prisförfrågan ShowSupplierProposal=Visa prisförfrågan AddSupplierProposal=Skapa en prisförfrågan -SupplierProposalRefFourn=Leverantör ref +SupplierProposalRefFourn=Leverantörref. SupplierProposalDate=Leveransdatum -SupplierProposalRefFournNotice=Innan du stänger till "Accepterad", tänk att få tag på leverantörens referenser. -ConfirmValidateAsk=Är du säker på att du vill bekräfta denna prisförfrågan under namn %s ? -DeleteAsk=Ta bort förfrågan +SupplierProposalRefFournNotice=Innan du anger som "Accepterad", kom ihåg att försöka få leverantörens referenser. +ConfirmValidateAsk=Är du säker på att du vill bekräfta denna prisförfrågan under namn %s? +DeleteAsk=Radera förfrågan ValidateAsk=Bekräfta förfrågan SupplierProposalStatusDraft=Utkast (måste bekräftas) -SupplierProposalStatusValidated=Bekräftat (begäran är öppen) -SupplierProposalStatusClosed=Stängt +SupplierProposalStatusValidated=Bekräftad (förfrågan är öppen) +SupplierProposalStatusClosed=Stängd SupplierProposalStatusSigned=Accepterad -SupplierProposalStatusNotSigned=Refused +SupplierProposalStatusNotSigned=Nekad SupplierProposalStatusDraftShort=Utkast -SupplierProposalStatusValidatedShort=Bekräftade -SupplierProposalStatusClosedShort=Stängt +SupplierProposalStatusValidatedShort=Bekräftad +SupplierProposalStatusClosedShort=Stängd SupplierProposalStatusSignedShort=Accepterad -SupplierProposalStatusNotSignedShort=Refused -CopyAskFrom=Skapa en prisförfrågan genom att kopiera en befintlig begäran -CreateEmptyAsk=Skapa blank begäran -ConfirmCloneAsk=Är du säker på att du vill klona prisförfrågan %s ? -ConfirmReOpenAsk=Är du säker på att du vill öppna tillbaka prisförfrågan %s ? -SendAskByMail=Skicka prisförfrågan via post -SendAskRef=Skicka prisförfrågan %s +SupplierProposalStatusNotSignedShort=Nekad +CopyAskFrom=Skapa en prisförfrågan genom att kopiera en befintlig +CreateEmptyAsk=Skapa tom förfrågan +ConfirmCloneAsk=Är du säker på att du vill klona prisförfrågan %s? +ConfirmReOpenAsk=Är du säker på att du vill åter-öppna prisförfrågan %s? +SendAskByMail=Skicka prisförfrågan +SendAskRef=Skickar prisförfrågan %s SupplierProposalCard=Förfråganskort -ConfirmDeleteAsk=Är du säker på att du vill radera denna prisförfrågan %s ? -ActionsOnSupplierProposal=Händelser på prisförfrågan -DocModelAuroreDescription=En komplett begäran modell (logotyp ...) +ConfirmDeleteAsk=Är du säker på att du vill radera denna prisförfrågan %s? +ActionsOnSupplierProposal=Händelser för prisförfrågan +DocModelAuroreDescription=En komplett modell (logotyp ...) CommercialAsk=Prisförfrågan DefaultModelSupplierProposalCreate=Skapa standardmodell DefaultModelSupplierProposalToBill=Standardmall när du avslutar en prisförfrågan (accepterad) -DefaultModelSupplierProposalClosed=Standardmall när du avslutar en prisförfrågan (vägrade) -ListOfSupplierProposals=Förteckning över leverantörsförslagförfrågningar -ListSupplierProposalsAssociatedProject=Förteckning över leverantörsförslag i samband med projektet -SupplierProposalsToClose=Leverantörsförslag att stänga -SupplierProposalsToProcess=Leverantörsförslag att bearbeta +DefaultModelSupplierProposalClosed=Standardmall när du avslutar en prisförfrågan (nekad) +ListOfSupplierProposals=Förteckning över förfrågningar +ListSupplierProposalsAssociatedProject=Förteckning över leverantörsofferter i samband med projekt +SupplierProposalsToClose=Leverantörsofferter att stänga +SupplierProposalsToProcess=Leverantörsofferter att bearbeta LastSupplierProposals=Senaste %s prisförfrågningar AllPriceRequests=Alla förfrågningar TypeContact_supplier_proposal_external_SHIPPING=Leverantörskontakt för leverans TypeContact_supplier_proposal_external_BILLING=Leverantörskontakt för fakturering -TypeContact_supplier_proposal_external_SERVICE=Representanten följa upp förslag +TypeContact_supplier_proposal_external_SERVICE=Representant att följa upp offert diff --git a/htdocs/langs/sv_SE/suppliers.lang b/htdocs/langs/sv_SE/suppliers.lang index ee23dd635c2..e442977b94f 100644 --- a/htdocs/langs/sv_SE/suppliers.lang +++ b/htdocs/langs/sv_SE/suppliers.lang @@ -1,49 +1,57 @@ # Dolibarr language file - Source file is en_US - vendors -Suppliers=Säljare +Suppliers=Leverantörer SuppliersInvoice=Leverantörsfaktura SupplierInvoices=Leverantörsfakturor ShowSupplierInvoice=Visa leverantörsfaktura NewSupplier=Ny leverantör -History=Historia -ListOfSuppliers=Förteckning över leverantörer +NewSupplierInvoice = Ny leverantörsfaktura +History=Historik +ListOfSuppliers=Leverantörsförteckning ShowSupplier=Visa leverantör -OrderDate=Beställ datum -BuyingPriceMin=Bästa köpeskillingen -BuyingPriceMinShort=Bästa köpeskillingen -TotalBuyingPriceMinShort=Totalt subprodukter köper priserna -TotalSellingPriceMinShort=Summa underprodukter säljer priser -SomeSubProductHaveNoPrices=Vissa under produkter har inget pris definierat -AddSupplierPrice=Lägg till köpeskilling -ChangeSupplierPrice=Ändra köpeskillingen +OrderDate=Beställningsdatum +BuyingPriceMin=Bästa inköpspris +BuyingPriceMinShort=Bästa inköpspris +TotalBuyingPriceMinShort=Totala inköpspriset av underprodukter +TotalSellingPriceMinShort=Totala försäljningspriset av underprodukter +SomeSubProductHaveNoPrices=Vissa underprodukter har inget pris angivet +AddSupplierPrice=Lägg till inköpspris +ChangeSupplierPrice=Ändra inköpspris SupplierPrices=Leverantörspriser ReferenceSupplierIsAlreadyAssociatedWithAProduct=Denna leverantörsreferens är redan associerad med en produkt: %s -NoRecordedSuppliers=Ingen säljare registrerad +NoRecordedSuppliers=Ingen leverantör registrerad SupplierPayment=Leverantörsbetalning -SuppliersArea=Leverantörsareal -RefSupplierShort=Ref. Säljare +SuppliersArea=Leverantörsområde +RefSupplierShort=Leverantörsref. Availability=Tillgänglighet -ExportDataset_fournisseur_1=Leverantörsfaktura och faktura detaljer +ExportDataset_fournisseur_1=Leverantörsfaktura och fakturauppgifter ExportDataset_fournisseur_2=Leverantörsfakturor och betalningar -ExportDataset_fournisseur_3=Beställningar och beställningsuppgifter -ApproveThisOrder=Godkänna denna order -ConfirmApproveThisOrder=Är du säker på att du vill godkänna beställningen %s ? +ExportDataset_fournisseur_3=Inköpsorder och orderuppgifter +ApproveThisOrder=Godkänn denna order +ConfirmApproveThisOrder=Är du säker på att du vill godkänna beställningen %s? DenyingThisOrder=Neka denna order -ConfirmDenyingThisOrder=Är du säker på att du vill neka denna order %s ? -ConfirmCancelThisOrder=Är du säker på att du vill avbryta denna order %s ? +ConfirmDenyingThisOrder=Är du säker på att du vill neka denna order %s? +ConfirmCancelThisOrder=Är du säker på att du vill avbryta denna order %s? AddSupplierOrder=Skapa inköpsorder AddSupplierInvoice=Skapa leverantörsfaktura -ListOfSupplierProductForSupplier=Lista över produkter och priser för säljare %s -SentToSuppliers=Skickas till leverantörer -ListOfSupplierOrders=Förteckning över inköpsorder +ListOfSupplierProductForSupplier=Lista över produkter och priser för leverantören %s +SentToSuppliers=Skickad till leverantörer +ListOfSupplierOrders=Lista inköpsorder MenuOrdersSupplierToBill=Inköpsorder att fakturera -NbDaysToDelivery=Leveransfördröjning (dagar) -DescNbDaysToDelivery=Den längsta leveransförseningen för produkterna från denna order -SupplierReputation=Leverantörs rykte -ReferenceReputation=Referens rykte +NbDaysToDelivery=Leveranstid (dagar) +DescNbDaysToDelivery=Den längsta leveranstiden för produkter i denna order +SupplierReputation=Leverantörsrykte +ReferenceReputation=Referensrykte DoNotOrderThisProductToThisSupplier=Beställ inte NotTheGoodQualitySupplier=Låg kvalitet ReputationForThisProduct=Rykte -BuyerName=Köparens namn -AllProductServicePrices=Alla produkt- / servicepriser -AllProductReferencesOfSupplier=Alla referenser från leverantören +BuyerName=Inköpares namn +AllProductServicePrices=Alla produkt-/servicepriser +AllProductReferencesOfSupplier=Alla referenser om leverantören BuyingPriceNumShort=Leverantörspriser +RepeatableSupplierInvoice=Mall leverantörsfaktura +RepeatableSupplierInvoices=Mall leverantörsfakturor +RepeatableSupplierInvoicesList=Mall leverantörsfakturor +RecurringSupplierInvoices=Återkommande leverantörsfakturor +ToCreateAPredefinedSupplierInvoice=För att skapa mall för leverantörsfaktura måste du skapa en standardfaktura och sedan, utan att bekräfta den, klicka på knappen %s. +GeneratedFromSupplierTemplate=Genererad från leverantörsfakturamall %s +SupplierInvoiceGeneratedFromTemplate=Leverantörsfaktura %s har genererats från leverantörsfakturamall %s diff --git a/htdocs/langs/sv_SE/ticket.lang b/htdocs/langs/sv_SE/ticket.lang index f93fd8f86d9..81b60716c19 100644 --- a/htdocs/langs/sv_SE/ticket.lang +++ b/htdocs/langs/sv_SE/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Radera ärenden Permission56004=Hantera ärenden Permission56005=Se ärenden till alla tredje parter (inte effektiva för externa användare, alltid begränsad till tredje part som de är beroende av) +Tickets=Ärenden TicketDictType=Ärende - Typer TicketDictCategory=Ärende - Grupper TicketDictSeverity=Ticket - Severiteter @@ -84,21 +85,23 @@ MailToSendTicketMessage=Att skicka e-post från ärrendemeddelande # Admin page # TicketSetup=Inställning av ärrendemodul -TicketSettings=inställningar +TicketSettings=Inställningar TicketSetupPage= TicketPublicAccess=Ett offentligt gränssnitt som kräver ingen identifiering finns på följande webbadress TicketSetupDictionaries=Typ av ärende, svårighetsgrad och analytiska koder är konfigurerbara från ordböcker TicketParamModule=Inställning av modulvariabler TicketParamMail=E-postinställningar -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr -TicketEmailNotificationTo=Notify ticket creation to this e-mail address -TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation +TicketEmailNotificationFrom=Avsändare e-post för avisering om svar +TicketEmailNotificationFromHelp=Avsändarens e-post som ska användas för att skicka e-postmeddelandet när ett svar ges i backoffice. Till exempel noreply@example.com +TicketEmailNotificationTo=Meddela skapande av ärendet till denna e-postadress +TicketEmailNotificationToHelp=Om den är angiven kommer denna e-postadress att meddelas om en ärendeskapande TicketNewEmailBodyLabel=Textmeddelande skickat efter att du skapat en ärende TicketNewEmailBodyHelp=Texten som anges här kommer att införas i e-postmeddelandet som bekräftar skapandet av en ny ärende från det offentliga gränssnittet. Information om samråd med ärendet läggs automatiskt till. TicketParamPublicInterface=Inställningar för offentligt gränssnitt TicketsEmailMustExist=Kräver en befintlig e-postadress för att skapa en ärende TicketsEmailMustExistHelp=I det offentliga gränssnittet ska e-postadressen redan fyllas i databasen för att skapa en ny ärende. +TicketCreateThirdPartyWithContactIfNotExist=Fråga namn och företagsnamn för okända e-postmeddelanden. +TicketCreateThirdPartyWithContactIfNotExistHelp=Kontrollera om det finns en tredje part eller en kontakt för e-postmeddelandet. Om inte, fråga ett namn och ett företagsnamn för att skapa en tredje part med kontakt. PublicInterface=Offentligt gränssnitt TicketUrlPublicInterfaceLabelAdmin=Alternativ webbadress för offentligt gränssnitt TicketUrlPublicInterfaceHelpAdmin=Det är möjligt att definiera ett alias till webbservern och därmed göra tillgängligt det offentliga gränssnittet med en annan webbadress (servern måste fungera som en proxy på den här nya webbadressen) @@ -136,17 +139,19 @@ TicketsPublicNotificationNewMessage=Skicka e-post när ett nytt meddelande / en TicketsPublicNotificationNewMessageHelp=Skicka e-post (ar) när ett nytt meddelande läggs till från det offentliga gränssnittet (tilldelad användare eller e-postmeddelanden till (uppdatering) och / eller e-postmeddelanden till) TicketPublicNotificationNewMessageDefaultEmail=Meddelanden via e-post till (uppdatering) TicketPublicNotificationNewMessageDefaultEmailHelp=Skicka ett e-postmeddelande till den här adressen för varje meddelande om nytt meddelande om ärendet inte har tilldelats någon användare eller om användaren inte har någon känd e-post. -TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) -TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". -TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): -TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. -TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): -TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. -TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket -TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. -TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. -TicketChooseProductCategory=Product category for ticket support -TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketsAutoReadTicket=Markera ärendet automatiskt som läst (när den skapas från backoffice) +TicketsAutoReadTicketHelp=Markera automatiskt ärendet som läst när den skapas från backoffice. När ärendet skapas från det offentliga gränssnittet förblir ärendet med statusen "Inte läst". +TicketsDelayBeforeFirstAnswer=Ett nytt ärende bör få ett första svar innan (timmar): +TicketsDelayBeforeFirstAnswerHelp=Om ett nytt ärende inte har fått något svar efter denna tidsperiod (i timmar), kommer en viktig varningsikon att visas i listvyn. +TicketsDelayBetweenAnswers=Ett olöst ärende ska inte vara inaktivt under (timmar): +TicketsDelayBetweenAnswersHelp=Om ett olöst ärende som redan har fått ett svar inte har haft ytterligare interaktion efter denna tidsperiod (i timmar), kommer en varningsikon att visas i listvyn. +TicketsAutoNotifyClose=Meddela automatiskt tredje part när du stänger ett ärende +TicketsAutoNotifyCloseHelp=När du stänger ett ärende kommer du att föreslås skicka ett meddelande till en av tredje parts kontakter. Vid massstängning kommer ett meddelande att skickas till en kontakt från den tredje part som är kopplad till ärendet. +TicketWrongContact=Förutsatt att kontakt inte är en del av aktuella ärendekontakter. E-post har inte skickats. +TicketChooseProductCategory=Produktkategori för ärendesupport +TicketChooseProductCategoryHelp=Välj produktkategori för ärendesupport. Detta kommer att användas för att automatiskt koppla ett kontrakt till ett ärende. +TicketUseCaptchaCode=Använd grafisk kod (CAPTCHA) när du skapar ett ärende +TicketUseCaptchaCodeHelp=Lägger till CAPTCHA-verifiering när du skapar en nytt ärende # # Index & list page @@ -163,8 +168,8 @@ OrderByDateAsc=Sortera efter stigande datum OrderByDateDesc=Sortera efter fallande datum ShowAsConversation=Visa som konversationslista MessageListViewType=Visa som tabellista -ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets -ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? +ConfirmMassTicketClosingSendEmail=Skicka e-post automatiskt när du stänger ärende +ConfirmMassTicketClosingSendEmailQuestion=Vill du meddela tredje part när du stänger dessa ärenden? # # Ticket card @@ -190,8 +195,7 @@ TicketAssigned=Ärendeen är nu tilldelad TicketChangeType=Ändra typ TicketChangeCategory=Ändra analytisk kod TicketChangeSeverity=Ändra allvarlighet -TicketAddMessage=Lägg till ett meddelande -AddMessage=Lägg till ett meddelande +TicketAddMessage=Lägg till privat meddelande MessageSuccessfullyAdded=Ärende tillagd TicketMessageSuccessfullyAdded=Meddelandet har lagts till TicketMessagesList=Meddelandelista @@ -202,8 +206,8 @@ TicketSeverity=Allvarlighet ShowTicket=Se ärende RelatedTickets=Relaterade ärenden TicketAddIntervention=Skapa ingripande -CloseTicket=Lös/Stäng ärende -AbandonTicket=Överge ärende +CloseTicket=Stäng|Lös +AbandonTicket=Överge CloseATicket=Lös/Stäng ett ärende ConfirmCloseAticket=Bekräfta ärende stängning ConfirmAbandonTicket=Vänligen bekräfta att du vill sätta ärendet som "Övergivet" @@ -217,18 +221,17 @@ SendMessageByEmail=Skicka meddelande via e-post TicketNewMessage=Nytt meddelande ErrorMailRecipientIsEmptyForSendTicketMessage=Mottagaren är tom. Ingen email skickad TicketGoIntoContactTab=Vänligen gå till fliken "Kontakter" för att välja dem -TicketMessageMailIntro=Introduktion +TicketMessageMailIntro=Meddelandehuvud TicketMessageMailIntroHelp=Denna text läggs till endast i början av e-postmeddelandet och kommer inte att sparas. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Namnteckning -TicketMessageMailSignatureHelp=Denna text läggs till endast i slutet av e-postmeddelandet och kommer inte att sparas. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatur för e-postsvar -TicketMessageMailSignatureHelpAdmin=Denna text läggs in efter svarmeddelandet. +TicketMessageMailIntroText=Hej,
    Ett nytt svar har lagts till på ett ärende som du följer. Här är meddelandet:
    +TicketMessageMailIntroHelpAdmin=Denna text kommer att infogas före svaret när du svarar på ett ärende från Dolibarr +TicketMessageMailFooter=Meddelandes sidfot +TicketMessageMailFooterHelp=Denna text läggs endast till i slutet av meddelandet som skickas via e-post och kommer inte att sparas. +TicketMessageMailFooterText=Meddelande skickat av %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Denna text kommer att infogas efter svarsmeddelandet. TicketMessageHelp=Endast den här texten sparas i meddelandelistan på ärrendekortet. TicketMessageSubstitutionReplacedByGenericValues=Substitutionsvariabler ersätts av generiska värden. +ForEmailMessageWillBeCompletedWith=För e-postmeddelanden som skickas till externa användare kommer meddelandet att kompletteras med TimeElapsedSince=Tid förflutit sedan TicketTimeToRead=Tid förfluten innan den läste TicketTimeElapsedBeforeSince=Tid som gått före / sedan @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Ett nytt meddelande publicerades på TicketAssignedToYou=Ärende tilldelad TicketAssignedEmailBody=Du har tilldelats ärendet # %s av %s MarkMessageAsPrivate=Markera meddelande som privat +TicketMessageSendEmailHelp=Ett e-postmeddelande kommer att skickas till alla tilldelade kontakter (interna kontakter, men även externa kontakter förutom om alternativet "%s" är markerat) TicketMessagePrivateHelp=Det här meddelandet visas inte till externa användare TicketEmailOriginIssuer=Utgivare på grund av ärrendeerna InitialMessage=Initialt meddelande @@ -252,16 +256,16 @@ TicketChangeStatus=Byta status TicketConfirmChangeStatus=Bekräfta statusändringen: %s? TicketLogStatusChanged=Status ändrad: %s till %s TicketNotNotifyTiersAtCreate=Meddela inte företaget på create -NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket -TicketNotifyAllTiersAtClose=All related contacts -TicketNotNotifyTiersAtClose=No related contact +NotifyThirdpartyOnTicketClosing=Kontakter att meddela när du stänger ärendet +TicketNotifyAllTiersAtClose=Alla relaterade kontakter +TicketNotNotifyTiersAtClose=Ingen relaterad kontakt Unread=Oläst TicketNotCreatedFromPublicInterface=Inte tillgänglig. Ärendeen skapades inte från det offentliga gränssnittet. ErrorTicketRefRequired=Ärendereferensnamn krävs -TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. -TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. -TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. -TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. +TicketsDelayForFirstResponseTooLong=Det har gått för lång tid sedan ärendet skapades utan något svar. +TicketsDelayFromLastResponseTooLong=Det har gått för lång tid sedan senaste svaret på detta ärendet. +TicketNoContractFoundToLink=Inget kontrakt hittades som automatiskt är kopplat till detta ärende. Vänligen länka ett kontrakt manuellt. +TicketManyContractsLinked=Många kontrakt har automatiskt kopplats till detta ärende. Se till att verifiera vilken som ska väljas. # # Logs @@ -289,12 +293,12 @@ TicketNewEmailBody=Det här är ett automatiskt e-postmeddelande som bekräftar TicketNewEmailBodyCustomer=Det här är ett automatiskt e-postmeddelande för att bekräfta en ny ärende har just skapats i ditt konto. TicketNewEmailBodyInfosTicket=Information för övervakning av ärendet TicketNewEmailBodyInfosTrackId=Ärendespårningsnummer: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrl=Du kan se förloppet för ärendet genom att klicka på följande länk TicketNewEmailBodyInfosTrackUrlCustomer=Du kan se framstegen på ärendet i det specifika gränssnittet genom att klicka på följande länk -TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=Du kan se historiken för detta ärende genom att klicka på följande länk TicketEmailPleaseDoNotReplyToThisEmail=Vänligen svara inte direkt på det här meddelandet! Använd länken för att svara på gränssnittet. TicketPublicInfoCreateTicket=I det här formuläret kan du spela in en supportärrende i vårt styrsystem. -TicketPublicPleaseBeAccuratelyDescribe=Var snäll och beskriv problemet. Ge så mycket information som möjligt för att vi ska kunna identifiera din förfrågan korrekt. +TicketPublicPleaseBeAccuratelyDescribe=Vänligen beskriv din fråga korrekt. Ge så mycket information som möjligt för att vi ska kunna identifiera din begäran korrekt. TicketPublicMsgViewLogIn=Vänligen ange ärrendespårnings-ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=Ett av ditt spårnings-ID @@ -313,10 +317,10 @@ NewUser=Ny användare NumberOfTicketsByMonth=Antal ärenden per månad NbOfTickets=Antal ärenden # notifications -TicketCloseEmailSubjectCustomer=Ticket closed -TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. -TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) -TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: +TicketCloseEmailSubjectCustomer=Ärendet stängt +TicketCloseEmailBodyCustomer=Detta är ett automatiskt meddelande för att meddela dig att ärendet %s just har stängts. +TicketCloseEmailSubjectAdmin=Ärendet stängd - Ref %s (offentligt ärende-ID %s) +TicketCloseEmailBodyAdmin=Ett ärende med ID #%s har just stängts, se information: TicketNotificationEmailSubject=Ärende %s uppdaterad TicketNotificationEmailBody=Detta är ett automatiskt meddelande för att meddela dig att ärendet %s just har uppdaterats TicketNotificationRecipient=Meddelande mottagare @@ -344,7 +348,7 @@ BoxTicketLastXDays=Antal nya ärenden per dagar de senaste %s dagarna BoxTicketLastXDayswidget = Antal nya ärenden efter dagar de senaste X dagarna BoxNoTicketLastXDays=Inga nya ärenden de senaste %s dagarna BoxNumberOfTicketByDay=Antal nya ärenden per dag -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=Antal ärenden kontra stängda ärenden (idag) TicketCreatedToday=Ärende skapad idag TicketClosedToday=Ärendeen stängd idag KMFoundForTicketGroup=Vi hittade ämnen och FAQ som kan svara din fråga, vänligen kontrollera dem innan du skapar ärendet. diff --git a/htdocs/langs/sv_SE/trips.lang b/htdocs/langs/sv_SE/trips.lang index 963e36d225a..df1126ff084 100644 --- a/htdocs/langs/sv_SE/trips.lang +++ b/htdocs/langs/sv_SE/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Visa kostnadsrapport -Trips=Räkningar -TripsAndExpenses=Kostnadsrapporter -TripsAndExpensesStatistics=Kostnadsrapporteringsstatistik -TripCard=Kostnadsrapport +AUTHOR=Registrerad av +AUTHORPAIEMENT=Betalad av AddTrip=Skapa kostnadsrapport -ListOfTrips=Förteckning över kostnadsrapporter -ListOfFees=Prislista för -TypeFees=Typer av avgifter -ShowTrip=Visa kostnadsrapport -NewTrip=Ny kostnadsrapport -LastExpenseReports=Senaste %s kostnadsrapporter +AllExpenseReport=All typ av kostnadsrapport AllExpenseReports=Alla kostnadsrapporter -CompanyVisited=Företag / organisation som besökts -FeesKilometersOrAmout=Belopp eller kilometer -DeleteTrip=Ta bort kostnadsrapport -ConfirmDeleteTrip=Är du säker på att du vill ta bort denna kostnadsrapport? -ListTripsAndExpenses=Förteckning över kostnadsrapporter -ListToApprove=Väntar på godkännande -ExpensesArea=Kostnadsrapporteringsområde +AnyOtherInThisListCanValidate=Person som ska informeras för att validera begäran. +AttachTheNewLineToTheDocument=Bifoga raden till ett uppladdat dokument +AucuneLigne=Det finns ingen kostnadsrapport som deklarerats än +BrouillonnerTrip=Flytta tillbaka kostnadsrapport till status "Draft" +byEX_DAY=dag (begränsning till %s) +byEX_EXP=för rad (begränsning till %s) +byEX_MON=per månad (begränsning till %s) +byEX_YEA=per år (begränsning till %s) +CANCEL_USER=Släckt av +CarCategory=Fordonskategori ClassifyRefunded=Märk 'Återbetalas' +CompanyVisited=Företag / organisation som besökts +ConfirmBrouillonnerTrip=Är du säker på att du vill flytta denna kostnadsrapport till status "Draft"? +ConfirmCancelTrip=Är du säker på att du vill avbryta denna kostnadsrapport? +ConfirmCloneExpenseReport=Är du säker på att du vill klona denna kostnadsrapport? +ConfirmDeleteTrip=Är du säker på att du vill ta bort denna kostnadsrapport? +ConfirmPaidTrip=Är du säker på att du vill ändra status för denna kostnadsrapport till "Betald"? +ConfirmRefuseTrip=Är du säker på att du vill neka denna kostnadsrapport? +ConfirmSaveTrip=Är du säker på att du vill bekräfta denna kostnadsrapport? +ConfirmValideTrip=Är du säker på att du vill godkänna denna kostnadsrapport? +DATE_CANCEL=Avbokningsdatum +DATE_PAIEMENT=Betalningsdag +DATE_REFUS=Neka datum +DATE_SAVE=Bekräftelsesdatum +DefaultCategoryCar=Standard transportläge +DefaultRangeNumber=Standardintervallnummer +DeleteTrip=Ta bort kostnadsrapport +ErrorDoubleDeclaration=Du har lämnat en annan kostnadsrapport inom samma datumintervall. +Error_EXPENSEREPORT_ADDON_NotDefined=Fel, regeln för utläggsrapportsnummereringsref definierades inte i inställningen av modulen "Utläggsrapport" +ExpenseRangeOffset=Förskjutningsbelopp: %s +expenseReportCatDisabled=Kategori inaktiverad - se ordboken c_exp_tax_cat +expenseReportCoef=Koefficient +expenseReportCoefUndefined=(värde ej definierat) +expenseReportOffset=Offset +expenseReportPrintExample=offset + (dx coef) = %s +expenseReportRangeDisabled=Område inaktiverat - se c_exp_tax_range dictionay +expenseReportRangeFromTo=från %d till %d +expenseReportRangeMoreThan=mer än %d +expenseReportTotalForFive=Exempel med d = 5 +ExpenseReportApplyTo=Ansöka till +ExpenseReportApproved=En kostnadsrapport godkändes +ExpenseReportApprovedMessage=Kostnadsrapporten %s godkändes.
    - Användare: %s
    - Godkänd av: %s
    Klicka här för att visa kostnadsrapporten: %s +ExpenseReportCanceled=En kostnadsrapport annullerades +ExpenseReportCanceledMessage=Kostnadsrapporten %s avbröts.
    - Användare: %s
    - Avbrytad av: %s
    - Motiv för avbokning: %s
    Klicka här för att visa kostnadsrapporten: %s +ExpenseReportConstraintViolationError=Maxbeloppet har överskridits (regel %s): %s är högre än %s (överskridande förbjudet) +ExpenseReportConstraintViolationWarning=Maxbeloppet har överskridits (regel %s): %s är högre än %s (överskrider behörighet) +ExpenseReportDateEnd=Slutdatum +ExpenseReportDateStart=Startdatum +ExpenseReportDomain=Domän att ansöka +ExpenseReportIkDesc=Du kan ändra beräkningen av kilometerkostnaden efter kategori och intervall som de tidigare definierats. d är avståndet i kilometer +ExpenseReportLimitAmount=Maxbelopp +ExpenseReportLimitOn=Begränsa på +ExpenseReportLine=Kostnadsrapportsrad +ExpenseReportPaid=En kostnadsrapport utbetalades +ExpenseReportPaidMessage=Kostnadsrapporten %s betalades.
    - Användare: %s
    - Betald av: %s
    Klicka här för att visa kostnadsrapporten: %s +ExpenseReportPayment=Kostnadsrapportsbetalning +ExpenseReportRef=Ref. kostnads rapport +ExpenseReportRefused=En kostnadsrapport nekades +ExpenseReportRefusedMessage=Kostnadsrapporten %s nekades.
    - Användare: %s
    - Nekad av: %s
    - Motiv för vägran: %s
    Klicka här för att visa kostnadsrapporten: %s +ExpenseReportRestrictive=Överskridande förbjudet +ExpenseReportRuleErrorOnSave=Fel: %s +ExpenseReportRuleSave=Kostnadsrapportregeln sparades +ExpenseReportRulesDesc=Du kan definiera maxbeloppsregler för utgiftsrapporter. Dessa regler kommer att tillämpas när en ny utgift läggs till i en utgiftsredovisning ExpenseReportWaitingForApproval=En ny kostnadsrapport har skickats in för godkännande ExpenseReportWaitingForApprovalMessage=En ny kostnadsrapport har skickats in och väntar på godkännande.
    - Användare: %s
    - Period: %s
    Klicka här för att bekräfta: %s ExpenseReportWaitingForReApproval=En kostnadsrapport har lämnats in för omprövning ExpenseReportWaitingForReApprovalMessage=En kostnadsrapport har skickats in och väntar på omprövning.
    %s, du vägrade att godkänna kostnadsrapporten av den anledningen: %s.
    En ny version har föreslagits och väntar på ditt godkännande.
    - Användare: %s
    - Period: %s
    Klicka här för att godkänna: %s -ExpenseReportApproved=En kostnadsrapport godkändes -ExpenseReportApprovedMessage=Kostnadsrapporten %s godkändes.
    - Användare: %s
    - Godkänd av: %s
    Klicka här för att visa kostnadsrapporten: %s -ExpenseReportRefused=En kostnadsrapport nekades -ExpenseReportRefusedMessage=Kostnadsrapporten %s nekades.
    - Användare: %s
    - Nekad av: %s
    - Motiv för vägran: %s
    Klicka här för att visa kostnadsrapporten: %s -ExpenseReportCanceled=En kostnadsrapport annullerades -ExpenseReportCanceledMessage=Kostnadsrapporten %s avbröts.
    - Användare: %s
    - Avbrytad av: %s
    - Motiv för avbokning: %s
    Klicka här för att visa kostnadsrapporten: %s -ExpenseReportPaid=En kostnadsrapport utbetalades -ExpenseReportPaidMessage=Kostnadsrapporten %s betalades.
    - Användare: %s
    - Betald av: %s
    Klicka här för att visa kostnadsrapporten: %s -TripId=ID utgiftsrapport -AnyOtherInThisListCanValidate=Person som ska informeras för att validera begäran. -TripSociete=Informationsföretag -TripNDF=Informationsutgiftsrapport -PDFStandardExpenseReports=Standardmall för att skapa ett PDF-dokument för kostnadsrapport -ExpenseReportLine=Kostnadsrapportsrad -TF_OTHER=Andra -TF_TRIP=Transport -TF_LUNCH=Lunch -TF_METRO=Metro -TF_TRAIN=Tåg -TF_BUS=Buss -TF_CAR=Bil -TF_PEAGE=Vägtull -TF_ESSENCE=Bränsle -TF_HOTEL=Hotell -TF_TAXI=Taxi -EX_KME=Milkostnader -EX_FUE=Bränsle CV -EX_HOT=Hotell -EX_PAR=Parkering CV -EX_TOL=Toll CV -EX_TAX=Olika skatter -EX_IND=Skydd för ersättning för ersättning -EX_SUM=Underhållstillförsel -EX_SUO=Kontorsmaterial -EX_CAR=Biluthyrning -EX_DOC=Dokumentation -EX_CUR=Kunder som tar emot -EX_OTR=Andra mottagande -EX_POS=Porto -EX_CAM=CV underhåll och reparation -EX_EMM=Anställda måltid -EX_GUM=Gäster måltid -EX_BRE=Frukost -EX_FUE_VP=Bränsle PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parkering PV -EX_CAM_VP=PV underhåll och reparation -DefaultCategoryCar=Standard transportläge -DefaultRangeNumber=Standardintervallnummer -UploadANewFileNow=Ladda upp ett nytt dokument nu -Error_EXPENSEREPORT_ADDON_NotDefined=Fel, regeln för utläggsrapportsnummereringsref definierades inte i inställningen av modulen "Utläggsrapport" -ErrorDoubleDeclaration=Du har lämnat en annan kostnadsrapport inom samma datumintervall. -AucuneLigne=Det finns ingen kostnadsrapport som deklarerats än -ModePaiement=Betalningssätt -VALIDATOR=Användare ansvarig för godkännande -VALIDOR=Godkänd av -AUTHOR=Inspelad av -AUTHORPAIEMENT=Betalad av -REFUSEUR=Nekad av -CANCEL_USER=Släckt av -MOTIF_REFUS=Orsak -MOTIF_CANCEL=Orsak -DATE_REFUS=Neka datum -DATE_SAVE=Bekräftelsesdatum -DATE_CANCEL=Avbokningsdatum -DATE_PAIEMENT=Betalningsdag -ExpenseReportRef=Ref. kostnads rapport -ValidateAndSubmit=Bekräfta och lämna in för godkännande -ValidatedWaitingApproval=Bekräftat (väntar på godkännande) -NOT_AUTHOR=Du är inte författaren till denna kostnadsrapport. Drift avbruten. -ConfirmRefuseTrip=Är du säker på att du vill neka denna kostnadsrapport? -ValideTrip=Godkänn kostnadsrapport -ConfirmValideTrip=Är du säker på att du vill godkänna denna kostnadsrapport? -PaidTrip=Betala en kostnadsrapport -ConfirmPaidTrip=Är du säker på att du vill ändra status för denna kostnadsrapport till "Betald"? -ConfirmCancelTrip=Är du säker på att du vill avbryta denna kostnadsrapport? -BrouillonnerTrip=Flytta tillbaka kostnadsrapport till status "Draft" -ConfirmBrouillonnerTrip=Är du säker på att du vill flytta denna kostnadsrapport till status "Draft"? -SaveTrip=Bekräft kostnadsrapport -ConfirmSaveTrip=Är du säker på att du vill bekräfta denna kostnadsrapport? -NoTripsToExportCSV=Ingen kostnadsrapport att exportera för denna period. -ExpenseReportPayment=Kostnadsrapportsbetalning -ExpenseReportsToApprove=Rapporter att godkänna -ExpenseReportsToPay=Kostnad rapporterar att betala -ConfirmCloneExpenseReport=Är du säker på att du vill klona denna kostnadsrapport? ExpenseReportsIk=Konfiguration av körsträcka ExpenseReportsRules=Kostnadsrapporteringsregler -ExpenseReportIkDesc=Du kan ändra beräkningen av kilometerkostnaden efter kategori och intervall som de tidigare definierats. d är avståndet i kilometer -ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report -expenseReportOffset=Offset -expenseReportCoef=Koefficient -expenseReportTotalForFive=Exempel med d = 5 -expenseReportRangeFromTo=från %d till %d -expenseReportRangeMoreThan=mer än %d -expenseReportCoefUndefined=(värde ej definierat) -expenseReportCatDisabled=Kategori inaktiverad - se ordboken c_exp_tax_cat -expenseReportRangeDisabled=Område inaktiverat - se c_exp_tax_range dictionay -expenseReportPrintExample=offset + (dx coef) = %s -ExpenseReportApplyTo=Ansöka till -ExpenseReportDomain=Domän att ansöka -ExpenseReportLimitOn=Begränsa på -ExpenseReportDateStart=Startdatum -ExpenseReportDateEnd=Slutdatum -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden -AllExpenseReport=All typ av kostnadsrapport -OnExpense=Utläggsrad -ExpenseReportRuleSave=Kostnadsrapportregeln sparades -ExpenseReportRuleErrorOnSave=Fel: %s -RangeNum=Område %d -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) -byEX_DAY=dag (begränsning till %s) -byEX_MON=per månad (begränsning till %s) -byEX_YEA=per år (begränsning till %s) -byEX_EXP=för rad (begränsning till %s) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpenseReportsToApprove=Rapporter att godkänna +ExpenseReportsToPay=Kostnad rapporterar att betala +ExpensesArea=Kostnadsrapporteringsområde +FeesKilometersOrAmout=Belopp eller kilometer +LastExpenseReports=Senaste %s kostnadsrapporter +ListOfFees=Prislista för +ListOfTrips=Förteckning över kostnadsrapporter +ListToApprove=Väntar på godkännande +ListTripsAndExpenses=Förteckning över kostnadsrapporter +MOTIF_CANCEL=Orsak +MOTIF_REFUS=Orsak +ModePaiement=Betalningssätt +NewTrip=Ny kostnadsrapport nolimitbyEX_DAY=om dagen (ingen begränsning) +nolimitbyEX_EXP=efter rad (ingen begränsning) nolimitbyEX_MON=per månad (ingen begränsning) nolimitbyEX_YEA=per år (ingen begränsning) -nolimitbyEX_EXP=efter rad (ingen begränsning) -CarCategory=Fordonskategori -ExpenseRangeOffset=Förskjutningsbelopp: %s +NoTripsToExportCSV=Ingen kostnadsrapport att exportera för denna period. +NOT_AUTHOR=Du är inte författaren till denna kostnadsrapport. Drift avbruten. +OnExpense=Utläggsrad +PDFStandardExpenseReports=Standardmall för att skapa ett PDF-dokument för kostnadsrapport +PaidTrip=Betala en kostnadsrapport +REFUSEUR=Nekad av RangeIk=Mileage range -AttachTheNewLineToTheDocument=Bifoga raden till ett uppladdat dokument +RangeNum=Område %d +SaveTrip=Bekräft kostnadsrapport +ShowExpenseReport=Visa kostnadsrapport +ShowTrip=Visa kostnadsrapport +TripCard=Kostnadsrapport +TripId=ID utgiftsrapport +TripNDF=Informationsutgiftsrapport +TripSociete=Informationsföretag +Trips=Räkningar +TripsAndExpenses=Kostnadsrapporter +TripsAndExpensesStatistics=Kostnadsrapporteringsstatistik +TypeFees=Typer av avgifter +UploadANewFileNow=Ladda upp ett nytt dokument nu +VALIDATOR=Användare ansvarig för godkännande +VALIDOR=Godkänd av +ValidateAndSubmit=Bekräfta och lämna in för godkännande +ValidatedWaitingApproval=Bekräftat (väntar på godkännande) +ValideTrip=Godkänn kostnadsrapport + +## Dictionary +EX_BRE=Frukost +EX_CAM=CV underhåll och reparation +EX_CAM_VP=PV underhåll och reparation +EX_CAR=Biluthyrning +EX_CUR=Kunder som tar emot +EX_DOC=Dokumentation +EX_EMM=Anställda måltid +EX_FUE=Bränsle CV +EX_FUE_VP=Bränsle PV +EX_GUM=Gäster måltid +EX_HOT=Hotell +EX_IND=Skydd för ersättning för ersättning +EX_KME=Milkostnader +EX_OTR=Andra mottagande +EX_PAR=Parkering CV +EX_PAR_VP=Parkering PV +EX_POS=Porto +EX_SUM=Underhållstillförsel +EX_SUO=Kontorsmaterial +EX_TAX=Olika skatter +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Buss +TF_CAR=Bil +TF_ESSENCE=Bränsle +TF_HOTEL=Hotell +TF_LUNCH=Lunch +TF_METRO=Metro +TF_OTHER=Andra +TF_PEAGE=Vägtull +TF_TAXI=Taxi +TF_TRAIN=Tåg +TF_TRIP=Transport diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang index c510dbebff2..1fa6d43de6f 100644 --- a/htdocs/langs/sv_SE/users.lang +++ b/htdocs/langs/sv_SE/users.lang @@ -1,130 +1,131 @@ # Dolibarr language file - Source file is en_US - users HRMArea=HRM område UserCard=Användarkort -GroupCard=Grupp kort -Permission=Behörighet -Permissions=Behörigheter +GroupCard=Gruppkort +Permission=Rättighet +Permissions=Rättigheter EditPassword=Ändra lösenord -SendNewPassword=Regenerera och skicka lösenord -SendNewPasswordLink=Skicka åters.länk för lösenordet +SendNewPassword=Skapa och skicka lösenord +SendNewPasswordLink=Skicka länk för återställning av lösenordet ReinitPassword=Regenerera lösenord PasswordChangedTo=Lösenord ändras till: %s SubjectNewPassword=Ditt nya lösenord för %s -GroupRights=Gruppbehörigheter -UserRights=Användarbehörighet -Credentials=Referenser -UserGUISetup=Användarskärmsinställning +GroupRights=Grupprättigheter +UserRights=Användarrättighet +Credentials=Inloggningsuppgifter +UserGUISetup=Inställning användarvyer DisableUser=Inaktivera DisableAUser=Inaktivera en användare -DeleteUser=Ta bort -DeleteAUser=Ta bort en användare +DeleteUser=Radera +DeleteAUser=Radera en användare EnableAUser=Aktivera en användare -DeleteGroup=Ta bort -DeleteAGroup=Ta bort en grupp -ConfirmDisableUser=Är du säker på att du vill inaktivera användaren %s ? -ConfirmDeleteUser=Är du säker på att du vill radera användaren %s ? -ConfirmDeleteGroup=Är du säker på att du vill ta bort grupp %s ? -ConfirmEnableUser=Är du säker på att du vill aktivera användaren %s ? -ConfirmReinitPassword=Är du säker på att du vill skapa ett nytt lösenord för användare %s ? -ConfirmSendNewPassword=Är du säker på att du vill skapa och skicka nytt lösenord för användare %s ? +DeleteGroup=Radera +DeleteAGroup=Radera en grupp +ConfirmDisableUser=Är du säker på att du vill inaktivera användaren %s? +ConfirmDeleteUser=Är du säker på att du vill radera användaren %s? +ConfirmDeleteGroup=Är du säker på att du vill radera gruppen %s? +ConfirmEnableUser=Är du säker på att du vill aktivera användaren %s? +ConfirmReinitPassword=Är du säker på att du vill skapa ett nytt lösenord för användaren %s? +ConfirmSendNewPassword=Är du säker på att du vill skapa och skicka nytt lösenord till användaren %s? NewUser=Ny användare CreateUser=Skapa användare -LoginNotDefined=Inloggning är inte definierat. -NameNotDefined=Namn är inte definierad. -ListOfUsers=Lista över användare -SuperAdministrator=Super Administrator -SuperAdministratorDesc=Administratör med alla rättigheter +LoginNotDefined=Inloggningsnamn är inte angivet. +NameNotDefined=Namn är inte angivet. +ListOfUsers=Lista användare +SuperAdministrator=Superadministratör +SuperAdministratorDesc=Global administratör AdministratorDesc=Administratör -DefaultRights=Standardbehörigheter -DefaultRightsDesc=Definiera här standard behörigheter som automatiskt ges till en ny användare (för att ändra behörigheter för befintliga användare, gå till användarkortet). -DolibarrUsers=Dolibarr användare +DefaultRights=Standardrättigheter +DefaultRightsDesc=Ange standardrättigheter som automatiskt tilldelas en ny användare (för att ändra rättigheter för befintliga användare går du till användarkortet). +DolibarrUsers=Dolibarranvändare LastName=Efternamn FirstName=Förnamn -ListOfGroups=Lista över grupper +ListOfGroups=Lista grupper NewGroup=Ny grupp CreateGroup=Skapa grupp RemoveFromGroup=Ta bort från grupp -PasswordChangedAndSentTo=Lösenord ändras och skickas till %s. -PasswordChangeRequest=Begär om ändring av lösenord för %s -PasswordChangeRequestSent=Begäran om att ändra lösenord för %s skickas till %s. -IfLoginExistPasswordRequestSent=Om denna inloggning är ett giltigt konto har ett e-postmeddelande skickats för att återställa lösenordet. -IfEmailExistPasswordRequestSent=Om det här e-postmeddelandet är ett giltigt konto har ett e-postmeddelande skickats för att återställa lösenordet. +PasswordChangedAndSentTo=Lösenord ändras och skickas till %s. +PasswordChangeRequest=Begär ändring av lösenord för %s +PasswordChangeRequestSent=Begäran om att ändra lösenord för %s skickas till %s. +IfLoginExistPasswordRequestSent=Om denna inloggning är ett giltigt konto (med en giltig e-postadress), har ett e-postmeddelande för att återställa lösenordet skickats. +IfEmailExistPasswordRequestSent=Om den här e-postadressen är ett giltigt konto har ett e-postmeddelande skickats för att återställa lösenordet. ConfirmPasswordReset=Bekräfta återställning av lösenord -MenuUsersAndGroups=Användare & grupper +MenuUsersAndGroups=Användare & Grupper LastGroupsCreated=Senaste %s grupper skapade LastUsersCreated=Senaste %s användare skapade ShowGroup=Visa grupp ShowUser=Visa användare -NonAffectedUsers=Icke drabbade användare -UserModified=Användare ändrades korrekt -PhotoFile=Bildfilen +NonAffectedUsers=Otilldelade användare +UserModified=Användare har uppdaterats +PhotoFile=Bildfil ListOfUsersInGroup=Lista över användare i denna grupp ListOfGroupsForUser=Lista över grupper för denna användare -LinkToCompanyContact=Länk till tredje part / kontakt +LinkToCompanyContact=Länk till tredjepart/kontakt LinkedToDolibarrMember=Länk till medlem LinkedToDolibarrUser=Länk till användare LinkedToDolibarrThirdParty=Länk till tredjepart -CreateDolibarrLogin=Skapa en användare -CreateDolibarrThirdParty=Skapa en tredje part -LoginAccountDisableInDolibarr=Konto funktionshindrade i Dolibarr. -UsePersonalValue=Använd personlig värde -InternalUser=Intern användare -ExportDataset_user_1=Användare och deras egenskaper -DomainUser=Domän användare %s +CreateDolibarrLogin=Skapa användare +CreateDolibarrThirdParty=Skapa tredjepart +LoginAccountDisableInDolibarr=Konto inaktiverat. +UsePersonalValue=Använd personligt värde +ExportDataset_user_1=Användare och egenskaper +DomainUser=Domänanvändare %s Reactivate=Återaktivera -CreateInternalUserDesc=I det här formuläret kan du skapa en intern användare i ditt företag / organisation. För att skapa en extern användare (kund, leverantör etc.), använd knappen "Create Dolibarr User" från den tredje partens kontaktkort. -InternalExternalDesc=En intern -användare är en användare som ingår i ditt företag / organisation, eller är en partneranvändare utanför din organisation som kan behöva se mer data än data relaterade till sitt företag (tillståndssystemet definierar vad han kan eller kan inte se eller göra).
    En extern användare är en kund, leverantör eller annan som måste se ENDAST data relaterade till sig själv (Skapa en extern användare för en tredje part kan göras från tredjeparts kontaktposter).

    I båda fallen måste du bevilja behörighet för de funktioner som användaren behöver. -PermissionInheritedFromAGroup=Tillstånd beviljas, eftersom ärvt från en av en användares grupp. +CreateInternalUserDesc=I det här formuläret kan du skapa en intern användare i ditt företag/organisation. För att skapa en extern användare (kund, leverantör etc.) använder du knappen "Skapa användare" från tredjepartens kontaktkort. +InternalExternalDesc=En intern användare är en användare som ingår i ditt företag/organisation, eller är en partneranvändare utanför din organisation som kan behöva se mer data än den kopplat till deras företag (rättighetssystemet definierar vad hen kan eller kan inte se eller göra).
    En extern användare är en kund, leverantör eller annan som bara får se ENDAST data kopplad till sig själv. Skapa en extern användare för en tredjepart kan göras från tredjeparts kontaktkort.

    I båda fallen måste du bevilja behörighet för de funktioner som användaren behöver. +PermissionInheritedFromAGroup=Tillstånd beviljas då det är ärvt från en av användarens grupper. Inherited=Ärvda UserWillBe=Skapad användare kommer att vara -UserWillBeInternalUser=Skapad användare kommer att vara en intern användare (eftersom inte kopplade till en viss tredje part) -UserWillBeExternalUser=Skapad användare kommer att vara en extern användare (eftersom kopplat till en viss tredje part) -IdPhoneCaller=Id telefonen ringer -NewUserCreated=Användare %s skapade -NewUserPassword=Ändring av lösenord för %s -NewPasswordValidated=Ditt nya lösenord har validerats och måste användas nu för att logga in. -EventUserModified=Användare %s modifierade -UserDisabled=Användare %s funktionshindrade -UserEnabled=Användare %s aktiverad -UserDeleted=Användare %s bort -NewGroupCreated=Grupp %s skapade -GroupModified=Grupp% s modifierade -GroupDeleted=Grupp %s bort -ConfirmCreateContact=Är du säker på att du vill skapa ett Dolibarr-konto för den här kontakten? -ConfirmCreateLogin=Är du säker på att du vill skapa ett Dolibarr-konto för den här medlemmen? -ConfirmCreateThirdParty=Är du säker på att du vill skapa en tredje part för den här medlemmen? +UserWillBeInternalUser=Skapad användare kommer att vara en intern användare (eftersom den inte är kopplad till en viss tredjepart) +UserWillBeExternalUser=Skapad användare kommer att vara en extern användare (eftersom den är kopplad till en viss tredjepart) +IdPhoneCaller=Nummerpresentation +NewUserCreated=Användaren %s skapad +NewUserPassword=Lösenord ändrat för %s +NewPasswordValidated=Ditt nya lösenord har bekräftats och kan nu användas för att logga in. +EventUserModified=Användaren %s ändrades +UserDisabled=Användaren %s inaktiverad +UserEnabled=Användaren %s aktiverad +UserDeleted=Användaren %s raderad +NewGroupCreated=Gruppen %s skapades +GroupModified=Gruppen %s ändrades +GroupDeleted=Gruppen %s raderades +ConfirmCreateContact=Är du säker på att du vill skapa ett konto för den här kontakten? +ConfirmCreateLogin=Är du säker på att du vill skapa ett konto för den här medlemmen? +ConfirmCreateThirdParty=Är du säker på att du vill skapa en tredjepart för den här medlemmen? LoginToCreate=Logga in för att skapa -NameToCreate=Namn på tredje part för att skapa -YourRole=Din roller +NameToCreate=Namn på tredjepart för att skapa +YourRole=Dina roller YourQuotaOfUsersIsReached=Din kvot på aktiva användare är nådd! NbOfUsers=Antal användare -NbOfPermissions=Antal behörigheter -DontDowngradeSuperAdmin=Endast en SuperAdmin kan nedgradera en SuperAdmin +NbOfPermissions=Antal rättigheter +DontDowngradeSuperAdmin=Endast en SuperAdmin kan nedgradera en annan SuperAdmin HierarchicalResponsible=Handledare HierarchicView=Hierarkisk vy -UseTypeFieldToChange=Använd fält Typ för att ändra +UseTypeFieldToChange=Använd fältet "typ" för att ändra OpenIDURL=OpenID URL LoginUsingOpenID=Logga in med OpenID -WeeklyHours=Timmar arbetade (per vecka) -ExpectedWorkedHours=Förväntade arbetade timmar per vecka +WeeklyHours=Arbetade timmar (per vecka) +ExpectedWorkedHours=Förväntad arbetstid per vecka ColorUser=Färg på användaren DisabledInMonoUserMode=Inaktiverad i underhållsläge -UserAccountancyCode=Användarkonto -UserLogoff=Användarutloggning +UserAccountancyCode=Användares bokföringskod +UserLogoff=Logga ut användare UserLogged=Användare loggad DateOfEmployment=Anställningsdatum DateEmployment=Sysselsättning -DateEmploymentStart=Employment Start Date +DateEmploymentStart=Anställningens startdatum DateEmploymentEnd=Anställningens slutdatum -RangeOfLoginValidity=Åtkomst giltighetsdatumintervall -CantDisableYourself=Du kan inte inaktivera din egen användarrekord -ForceUserExpenseValidator=Tvinga valideringsrapport för utgiftsrapport -ForceUserHolidayValidator=Tvinga lämningsbegäran -ValidatorIsSupervisorByDefault=Som standard är valideraren användarens övervakare. Håll dig tom för att behålla detta beteende. -UserPersonalEmail=Personlig email +RangeOfLoginValidity=Åtkomstsgiltighet datumintervall +CantDisableYourself=Du kan inte inaktivera din egen användare +ForceUserExpenseValidator=Tvinga bekräftelse för utgiftsrapport +ForceUserHolidayValidator=Tvinga bekräftelse av ledighet +ValidatorIsSupervisorByDefault=Som standard är den som ska bekräfta användarens handledare. Behåll tomt värde för att behålla denna funktion. +UserPersonalEmail=Personlig e-post UserPersonalMobile=Personlig mobiltelefon -WarningNotLangOfInterface=Varning, detta är det huvudspråk som användaren talar, inte språket för gränssnittet han valde att se. För att ändra gränssnittsspråket som visas av den här användaren, gå till fliken %s -DateLastLogin=Date last login -DatePreviousLogin=Date previous login -IPLastLogin=IP last login -IPPreviousLogin=IP previous login +WarningNotLangOfInterface=Varning! Detta är det huvudspråk som användaren talar, inte språket för gränssnittet hen valde att se. För att ändra gränssnittsspråket som visas av den här användaren går du till fliken %s +DateLastLogin=Datum senaste inloggning +DatePreviousLogin=Datum föregående inloggning +IPLastLogin=IP senaste inloggning +IPPreviousLogin=IP föregående inloggning +ShowAllPerms=Visa alla rättighetsrader +HideAllPerms=Dölj alla rättighetsrader diff --git a/htdocs/langs/sv_SE/website.lang b/htdocs/langs/sv_SE/website.lang index 70b9b832adc..af402fed96f 100644 --- a/htdocs/langs/sv_SE/website.lang +++ b/htdocs/langs/sv_SE/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kod +WebsiteName=Webbplatsens namn WebsiteSetupDesc=Skapa här de webbplatser du vill använda. Gå sedan till menyn webbplatser för att redigera dem. DeleteWebsite=Ta bort webbplats ConfirmDeleteWebsite=Är du säker på att du vill ta bort den här webbplatsen? Alla sidor och innehåll tas också bort. Filerna som laddas upp (som till mediekatalogen, ECM-modulen, ...) kommer att finnas kvar. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Tillägg längst ner i HTML-rubrik (vanligt för alla sidor) WEBSITE_ROBOT=Robotfil (robots.txt) WEBSITE_HTACCESS=Webbsida. Htaccess-fil WEBSITE_MANIFEST_JSON=Webbplats manifest.json-fil -WEBSITE_README=README.md-fil WEBSITE_KEYWORDSDesc=Använd ett komma för att separera värden -EnterHereLicenseInformation=Ange här metadata eller licensinformation för att arkivera en README.md-fil. om du distribuerar din webbplats som en mall inkluderas filen i det frestande paketet. +EnterHereReadmeInformation=Ange en beskrivning av webbplatsen. Om du distribuerar din webbplats som en mall kommer filen att inkluderas i temptate-paketet. +EnterHereLicenseInformation=Ange här LICENSEN för koden för webbplatsen. Om du distribuerar din webbplats som en mall kommer filen att inkluderas i temptate-paketet. HtmlHeaderPage=HTML-rubrik (endast för den här sidan) PageNameAliasHelp=Namn eller alias på sidan.
    Detta alias används också för att skapa en SEO-URL när webbplatsen springer från en virtuell värd på en webbserver (som Apacke, Nginx, ...). Använd knappen " %s " för att redigera detta alias. EditTheWebSiteForACommonHeader=Obs! Om du vill definiera en personlig rubrik för alla sidor, redigera rubriken på sidnivån istället för på sidan / behållaren. @@ -42,11 +43,13 @@ ViewPageInNewTab=Visa sida i ny flik SetAsHomePage=Sätt som hemsida RealURL=Verklig URL ViewWebsiteInProduction=Visa webbplats med hjälp av hemadresser -SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s +Virtualhost=Virtuell värd eller domännamn +VirtualhostDesc=Namnet på den virtuella värden eller domänen (till exempel: www.mywebsite.com, mybigcompany.net, ...) +SetHereVirtualHost= Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Exempel att använda i Apache virtuell värdinställning: YouCanAlsoTestWithPHPS=  Använd med PHP-inbäddad server
    På utvecklingsmiljö kan du föredra att testa webbplatsen med PHP-inbäddad webbserver (PHP 5.5 krävs) genom att köra
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Kör din webbplats med en annan Dolibarr Hosting-leverantör
    Om du inte har en webbserver som Apache eller NGinx tillgänglig på internet kan du exportera och importera din webbplats till en annan Dolibarr-instans som tillhandahålls av en annan Dolibarr-värdleverantör integration med webbplatsmodulen. Du hittar en lista med några Dolibarr-värdleverantörer på https://saas.dolibarr.org -CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s +YouCanAlsoDeployToAnotherWHP= Kör din webbplats med en annan Dolibarr-värdleverantör
    Om du inte har en webbserver som Apache eller NGinx tillgänglig på internet, kan du exportera och importera din webbplats till en annan Dolibarr-instans som tillhandahåller en annan Dolibarr-instans som tillhandahåller en komplett värd från Dolibarr. integration med webbplatsmodulen. Du kan hitta en lista över några Dolibarr-värdleverantörer på https://saas.dolibarr.org +CheckVirtualHostPerms=Kontrollera också att den virtuella värdanvändaren (till exempel www-data) har %s -behörigheter för filer till
    %s ReadPerm=Läsa WritePerm=Skriva TestDeployOnWeb=Test / distribuera på webben @@ -59,8 +62,8 @@ SyntaxHelp=Hjälp med specifika syntaxtips YouCanEditHtmlSourceckeditor=Du kan redigera HTML-källkod med knappen "Källa" i redigeraren. YouCanEditHtmlSource=
    Du kan inkludera PHP-kod i den här källan med taggar <? php? > a0a65d071f6fcf Följande globala variabler är tillgängliga: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    Du kan också inkludera innehållet i en annan sida / behållare med följande syntax:
    a313907? ? >

    Du kan göra en omdirigering till en annan sida / Container med följande syntax (OBS! Inte ut innehållet innan en omdirigering):
    < php redirectToContainer (alias_of_container_to_redirect_to '); ? >

    att lägga till en länk till en annan sida använder syntax:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    att inkludera en länk för att hämta en fil som lagras i dokument -katalog, använd document.php wrapper:
    Exempel, för en fil till dokument / ecm (måste loggas), syntax är: a0342fccfda19b4 ] filename.ext ">

    För en fil till dokument / media (öppen katalog för allmän åtkomst) är syntax:
    a03900df7d "/document.php?modulepart=medias&file= [relative_dir/] filnamn.ext">
    För en fil som delas med en delningslänk (öppen åtkomst med den delande hash-nyckeln för fil) är syntax20 /document.php?hashp=publicsharekeyoffile">


    för att inkludera en bild lagras in i de dokument katalog använder viewimage.php wrapper:
    Exempel, för en bild i dokument / medier (öppna katalog för allmän åtkomst), syntax är:
    <img src = "/ viewimage.php? modulepart = medias&file = [relativ_dir /] filnamn.ext" a012c07 #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    Fler exempel på HTML eller dynamisk kod finns på wiki-dokumentationen
    . +YouCanEditHtmlSource2=För en bild som delas med en delningslänk (öppen åtkomst med hjälp av fildelnings-hash-nyckeln), är syntaxen:
    <img src="/viewimage.php?hashp=120142567...accad09accdf0000142677acccf0001425677acccf0001425677accdf0001426770001426670001426770001256770001256770000000000000000002000 +YouCanEditHtmlSourceMore=
    Fler exempel på HTML eller dynamisk kod finns på wikidokumentationen
    . ClonePage=Klona sida / behållare CloneSite=Klona webbplatsen SiteAdded=Webbplats tillagd @@ -137,7 +140,7 @@ PagesRegenerated=%s sida (er) / behållare / regenererade RegenerateWebsiteContent=Återskapa cachefiler på webbplatsen AllowedInFrames=Tillåtet i ramar DefineListOfAltLanguagesInWebsiteProperties=Definiera lista över alla tillgängliga språk i webbplatsegenskaper. -GenerateSitemaps=Skapa webbplatskarta för webbplats +GenerateSitemaps=Skapa webbplats sitemap.xml-fil ConfirmGenerateSitemaps=Om du bekräftar raderar du den befintliga webbplatskartfilen ... ConfirmSitemapsCreation=Bekräfta generering av webbplatskarta SitemapGenerated=Sitemap-fil %s genererad @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon måste vara png ErrorFaviconSize=Favicon måste vara 16x16, 32x32 eller 64x64 FaviconTooltip=Ladda upp en bild som måste vara en png (16x16, 32x32 eller 64x64) +NextContainer=Nästa sida/behållare +PreviousContainer=Föregående sida/behållare +WebsiteMustBeDisabled=Webbplatsen måste ha statusen "%s" +WebpageMustBeDisabled=Webbsidan måste ha statusen "%s" +SetWebsiteOnlineBefore=När webbplatsen är offline är alla sidor offline. Ändra webbplatsens status först. +Booking=Bokning +Reservation=Reservation diff --git a/htdocs/langs/sv_SE/withdrawals.lang b/htdocs/langs/sv_SE/withdrawals.lang index ce1586583eb..d3371316e0d 100644 --- a/htdocs/langs/sv_SE/withdrawals.lang +++ b/htdocs/langs/sv_SE/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Leverantörsfaktura som väntar på betalning med InvoiceWaitingWithdraw=Faktura som väntar på direktdebitering InvoiceWaitingPaymentByBankTransfer=Fakturan väntar på kreditöverföring AmountToWithdraw=Belopp att dra tillbaka +AmountToTransfer=Antal att överföra NoInvoiceToWithdraw=Ingen faktura öppen för '%s' väntar. Gå till fliken '%s' på fakturakortet för att göra en begäran. -NoSupplierInvoiceToWithdraw=Ingen leverantörsfaktura med öppna 'Direkt kreditförfrågningar' väntar. Gå till fliken '%s' på fakturakortet för att göra en begäran. +NoSupplierInvoiceToWithdraw=Ingen leverantörsfaktura med öppen '%s' väntar. Gå till fliken '%s' på fakturakortet för att göra en förfrågan. ResponsibleUser=Användaransvarig WithdrawalsSetup=Inställning för direktbetalning CreditTransferSetup=Inställning av kreditöverföring @@ -41,6 +42,7 @@ CreditTransferStatistics=Statistik för kreditöverföring Rejects=Rejects LastWithdrawalReceipt=Senaste %s direktavköpsintäkterna MakeWithdrawRequest=Gör en förskottsbetalningsförfrågan +MakeWithdrawRequestStripe=Gör en förfrågan om autogirobetalning via Stripe MakeBankTransferOrder=Gör en kreditöverföringsbegäran WithdrawRequestsDone=%s begärda betalningsförfrågningar BankTransferRequestsDone=%s kreditöverföringsförfrågningar registrerade @@ -48,7 +50,7 @@ ThirdPartyBankCode=Tredjeparts bankkod NoInvoiceCouldBeWithdrawed=Ingen faktura debiteras framgångsrikt. Kontrollera att fakturor är på företag med en giltig IBAN och att IBAN har en UMR (Unique Mandate Reference) med läget %s . WithdrawalCantBeCreditedTwice=Detta uttagskvitto är redan markerat som krediterat. detta kan inte göras två gånger, eftersom detta potentiellt skulle kunna skapa dubbla betalningar och bankposter. ClassCredited=Märk krediterad -ClassDebited=Classify debited +ClassDebited=Markera debiterad ClassCreditedConfirm=Är du säker på att du vill märka detta tillbakadragande mottagande som krediteras på ditt bankkonto? TransData=Datum Transmission TransMetod=Metod Transmission @@ -82,7 +84,7 @@ StatusMotif7=Rättsligt beslut StatusMotif8=Annan orsak CreateForSepaFRST=Skapa direkt debitfil (SEPA FRST) CreateForSepaRCUR=Skapa direkt debitfil (SEPA RCUR) -CreateAll=Create direct debit file +CreateAll=Skapa autogirofil CreateFileForPaymentByBankTransfer=Skapa fil för kreditöverföring CreateSepaFileForPaymentByBankTransfer=Skapa kreditöverföringsfil (SEPA) CreateGuichet=Endast kontor @@ -99,8 +101,11 @@ CreditDate=Krediter på WithdrawalFileNotCapable=Det går inte att skapa uttags kvitto fil för ditt land %s (ditt land stöds inte) ShowWithdraw=Visa beställning av direktdebitering IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Om fakturan har minst en betalningsorder för direktdebitering som ännu inte har behandlats kommer den inte att ställas in som betald för att möjliggöra tidigare uttagshantering. -DoStandingOrdersBeforePayments=På den här fliken kan du begära en betalningsorder för direktdebitering. När du är klar går du in i menyn Bank-> Betalning med autogiro för att generera och hantera autogiro. När direktdebiteringen stängs registreras fakturering automatiskt och fakturor stängs om återstående betalning är noll. -DoCreditTransferBeforePayments=På den här fliken kan du begära en kreditöverföringsorder. När du är klar går du till menyn Bank-> Betalning med kreditöverföring för att generera och hantera kreditöverföringsordern. När kreditöverföringsordern stängs registreras betalning på fakturor automatiskt och fakturor stängs om återstående betalning är noll. +DoStandingOrdersBeforePayments=Den här fliken låter dig begära en betalningsorder för autogiro. När du är klar kan du gå in i menyn "Bank->Betalning med autogiro" för att generera och hantera en autogiroorderfil. +DoStandingOrdersBeforePayments2=Du kan också skicka en förfrågan direkt till en SEPA-betalningsprocessor som Stripe, ... +DoStandingOrdersBeforePayments3=När autogiro är stängd, kommer betalning på fakturor att registreras automatiskt, och fakturor stängs om återstående betalning är noll. +DoCreditTransferBeforePayments=Den här fliken låter dig begära en kreditöverföringsorder. När du är klar, gå in i menyn "Bank->Betalning med kreditöverföring" för att skapa och hantera en beställningsfil för kreditöverföring. +DoCreditTransferBeforePayments3=När kreditöverföringsordern stängs, kommer betalning på fakturor att registreras automatiskt och fakturor stängs om återstående betalning är noll. WithdrawalFile=Debiteringsfil CreditTransferFile=Kreditöverföringsfil SetToStatusSent=Ställ in på status "File Skickat" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Det gick inte att skapa en direkt debitering för SepaMandate=SEPA-direkt debiteringsmandat SepaMandateShort=SEPA-mandat PleaseReturnMandate=Vänligen returnera detta mandatformulär via e-post till %s eller via mail till -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=Genom att underteckna detta fullmaktsformulär godkänner du (A) %s och dess betaltjänstleverantör att skicka instruktioner till din bank om att debitera ditt konto och (B) din bank att debitera ditt konto i enlighet med instruktionerna från %s. Som en del av dina rättigheter har du rätt till återbetalning från din bank enligt villkoren i ditt avtal med din bank. Dina rättigheter gällande ovanstående fullmakt förklaras i ett uttalande som du kan få från din bank. CreditorIdentifier=Creditor Identifier CreditorName=Kreditgivarens namn SEPAFillForm=(B) Vänligen fyll i alla fält markerade * @@ -135,7 +140,8 @@ SEPARCUR=SEPA CUR SEPAFRST=SEPA FRST ExecutionDate=Exekveringsdatum CreateForSepa=Skapa direkt debitfil -ICS=Creditor Identifier - ICS +ICS=Borgenärsidentifierare - ICS +IDS=Debitoridentifierare END_TO_END="EndToEndId" SEPA XML-tagg - Unikt ID tilldelat per transaktion USTRD="Ostrukturerad" SEPA XML-tagg ADDDAYS=Lägg till dagar till Exekveringsdatum @@ -152,5 +158,6 @@ ModeWarning=Alternativ på riktigt läget inte var satt, sluta vi efter denna si ErrorCompanyHasDuplicateDefaultBAN=Företag med id %s har mer än ett standardbankkonto. Inget sätt att veta vilken man ska använda. ErrorICSmissing=Saknar ICS på bankkonto %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Det totala beloppet för direktdebitering skiljer sig från summan av rader -WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s -WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +WarningSomeDirectDebitOrdersAlreadyExists=Varning: Det finns redan några pågående direktdebiteringsorder (%s) begärda för ett belopp på %s +WarningSomeCreditTransferAlreadyExists=Varning: Det finns redan några pågående kreditöverföringar (%s) begärda för ett belopp på %s +UsedFor=Används för %s diff --git a/htdocs/langs/sv_SE/workflow.lang b/htdocs/langs/sv_SE/workflow.lang index 92bae74c475..0311dba3df8 100644 --- a/htdocs/langs/sv_SE/workflow.lang +++ b/htdocs/langs/sv_SE/workflow.lang @@ -1,26 +1,36 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Arbetsflöde modul konfiguration +WorkflowSetup=Inställning av arbetsflödesmodul WorkflowDesc=Denna modul ger några automatiska åtgärder. Som standard är arbetsflödet öppet (du kan göra saker i den ordning du vill) men här kan du aktivera några automatiska åtgärder. ThereIsNoWorkflowToModify=Det finns inga arbetsflödesändringar tillgängliga med de aktiverade modulerna. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Skapa automatiskt en försäljningsorder när ett kommersiellt förslag är undertecknat (den nya ordern kommer att ha samma belopp som förslaget) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Skapa automatiskt en kundfaktura efter att ett kommersiellt förslag har skrivits (den nya fakturan kommer att ha samma belopp som förslaget) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Skapa automatiskt en försäljningsorder när en offert är undertecknad (den nya ordern kommer att ha samma belopp som offerten) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Skapa automatiskt en kundfaktura efter att en offert har undertecknats (den nya fakturan kommer att ha samma belopp som offerten) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Skapa automatiskt en kundfaktura efter att ett kontrakt är bekräftat -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Skapa en kundfaktura automatiskt efter att en order har stängts (den nya fakturan kommer att ha samma belopp som beställningen) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Skapa en kundfaktura automatiskt efter att en order har stängts (den nya fakturan kommer att ha samma belopp som ordern) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Skapa automatiskt en intervention när du skapar ett ärende. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Märk det länkade källoffert som fakturerad när försäljningsordern är märkt fakturerad (och om orderens storlek är densamma som det totala beloppet för det signerade länkade förslaget) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Märk länkad källans förslag som fakturerad när kundfakturan är bekräftat (och om fakturans belopp är samma som det totala beloppet för det signerade länkade förslaget) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Märk länkad källsäljorder som fakturerad när kundfaktura är bekräftat (och om fakturans storlek är densamma som totalbeloppet för den länkade ordern) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Märk länkad källsäljorder som fakturerad när kundfaktura är inställd att betala (och om fakturans storlek är densamma som totalbeloppet för den länkade ordern) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Märk länkad källsäljningsorder som skickas när en försändelse är bekräftat (och om den mängd som skickas av alla leveranser är densamma som i den ordning som ska uppdateras) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Märk den länkade källofferten som fakturerad när försäljningsordern är märkt fakturerad (och om orderens storlek är densamma som det totala beloppet för den signerade länkade offerten) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Märk den länkade källofferten som fakturerad när kundfakturan är bekräftad (och om fakturans belopp är samma som det totala beloppet för den signerade länkade offerten) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Märk länkad källorder som fakturerad när kundfaktura är bekräftad (och om fakturans storlek är densamma som totalbeloppet för den länkade ordern) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Märk länkad källorder som fakturerad när kundfaktura är inställd på att betalas (och om fakturans storlek är densamma som totalbeloppet för den länkade ordern) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Märk länkad källorder som skickad när en försändelse är bekräftad (och om den mängd som skickas i alla leveranser är densamma som i ordern som ska uppdateras) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Märk länkad källorder som levererad när en försändelse stängs (och om antalet som skickas i alla försändelser är densamma som i ordern som ska uppdateras) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Märk länkad käll-leverantörsoffert som fakturerad när leverantörsfaktura är bekräftad (och om fakturans storlek är densamma som det totala beloppet för den länkade offerten) # Autoclassify purchase order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Märk länkad källleverantörsförslag som fakturerat när leverantörsfaktura är bekräftat (och om fakturans storlek är densamma som det totala beloppet för det länkade förslaget) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Märk kopplad inköpsorder som fakturerad när leverantörsfaktura är bekräftat (och om fakturans storlek är densamma som totalbeloppet för den länkade ordern) -descWORKFLOW_BILL_ON_RECEPTION=Klassificera mottagningar till "fakturerade" när en länkad leverantörsorder är validerad +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Märk länkad inköpsorder som fakturerad när leverantörsfaktura är bekräftad (och om fakturans storlek är densamma som totalbeloppet för den länkade ordern) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Märk länkad inköpsorder som mottagen när en mottagning bekräftas (och om antalet som tas emot i alla mottagningar är densamma som i inköpsordern som ska uppdateras) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Märk länkad inköpsorder som mottagen när en mottagning stängs (och om antalet som tas emot i alla mottagningar är densamma som i inköpsordern som ska uppdateras) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Märk mottagningar som "fakturerade" när en länkad inköpsfaktura bekräftas (och om fakturabeloppet är detsamma som det totala beloppet för de länkade mottagningarna) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=När du skapar ett ärende, länka tillgängliga kontrakt från matchande tredjepart +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=När du kopplar kontrakt sök bland moderbolagens # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Stäng alla ingripanden kopplade till biljetten när en biljett är stängd -AutomaticCreation=Automatisk skapande -AutomaticClassification=Automatisk uppmärkning +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Stäng alla intervention kopplade till ärendet när ärendet stängs +AutomaticCreation=Automatiskt skapande +AutomaticClassification=Automatisk märkning # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificera länkad källtransport som stängd när kundfakturan valideras +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Märk länkad källförsändelse som stängd när kundfakturan bekräftas (och om fakturabeloppet är detsamma som det totala beloppet för de länkade försändelserna) +AutomaticClosing=Automatisk stängning +AutomaticLinking=Automatisk länkning diff --git a/htdocs/langs/sv_SE/zapier.lang b/htdocs/langs/sv_SE/zapier.lang index b85cdb8bd32..1d3430da10b 100644 --- a/htdocs/langs/sv_SE/zapier.lang +++ b/htdocs/langs/sv_SE/zapier.lang @@ -14,8 +14,8 @@ # along with this program. If not, see . ModuleZapierForDolibarrName = Zapier för Dolibarr -ModuleZapierForDolibarrDesc = Zapier för Dolibarr-modul +ModuleZapierForDolibarrDesc = Zapier för Dolibarrmodul ZapierForDolibarrSetup=Installation av Zapier för Dolibarr -ZapierDescription=Gränssnitt med Zapier +ZapierDescription=Länka med Zapier ZapierAbout=Om modulen Zapier -ZapierSetupPage=Det finns inget behov av en installation på Dolibarr-sidan för att använda Zapier. Du måste dock skapa och publicera ett paket på zapier för att kunna använda Zapier med Dolibarr. Se dokumentation på denna wiki-sida . +ZapierSetupPage=Det finns inget behov av en installation på Dolibarr-sidan för att använda Zapier. Du måste dock skapa och publicera ett paket på Zapier för att kunna använda Zapier med Dolibarr. Se dokumentation på denna wiki-sida . diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/sw_SW/datapolicy.lang b/htdocs/langs/sw_SW/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/sw_SW/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/sw_SW/errors.lang b/htdocs/langs/sw_SW/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/sw_SW/errors.lang +++ b/htdocs/langs/sw_SW/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/sw_SW/externalsite.lang b/htdocs/langs/sw_SW/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/sw_SW/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/sw_SW/ftp.lang b/htdocs/langs/sw_SW/ftp.lang deleted file mode 100644 index 8ecb0c55cad..00000000000 --- a/htdocs/langs/sw_SW/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen show you content of a FTP server view -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/ta_IN/accountancy.lang b/htdocs/langs/ta_IN/accountancy.lang index 0d8d086f542..b6f96fe04bd 100644 --- a/htdocs/langs/ta_IN/accountancy.lang +++ b/htdocs/langs/ta_IN/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=EEC இல் இல்லாத நாடுகள் CountriesInEECExceptMe=%s தவிர EEC இல் உள்ள நாடுகள் CountriesExceptMe=%s தவிர அனைத்து நாடுகளும் AccountantFiles=மூல ஆவணங்களை ஏற்றுமதி செய்யவும் -ExportAccountingSourceDocHelp=இந்தக் கருவி மூலம், உங்கள் கணக்கை உருவாக்கப் பயன்படுத்தப்படும் மூல நிகழ்வுகளை (CSV மற்றும் PDFகளில் உள்ள பட்டியல்) ஏற்றுமதி செய்யலாம். +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=உங்கள் பத்திரிகைகளை ஏற்றுமதி செய்ய, %s - %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=கணக்கு கணக்கு மூலம் பார்க்கவும் VueBySubAccountAccounting=கணக்கியல் துணைக் கணக்கு மூலம் பார்க்கவும் @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=விற்பனையாளர்களு MainAccountForUsersNotDefined=பயனர்களுக்கான பிரதான கணக்கியல் கணக்கு அமைப்பில் வரையறுக்கப்படவில்லை MainAccountForVatPaymentNotDefined=VAT செலுத்துதலுக்கான முதன்மை கணக்கு கணக்கு அமைப்பில் வரையறுக்கப்படவில்லை MainAccountForSubscriptionPaymentNotDefined=சந்தா செலுத்துதலுக்கான முதன்மை கணக்கு கணக்கு அமைப்பில் வரையறுக்கப்படவில்லை +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=கணக்கியல் பகுதி AccountancyAreaDescIntro=கணக்கியல் தொகுதியின் பயன்பாடு பல படிகளில் செய்யப்படுகிறது: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=வங்கிக் கணக்கில் பர ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=ஜர்னலில் வரைவு ஏற்றுமதியை இயக்கவும் ACCOUNTANCY_COMBO_FOR_AUX=துணைக் கணக்கிற்கான சேர்க்கை பட்டியலை இயக்கவும் (உங்களிடம் நிறைய மூன்றாம் தரப்பினர் இருந்தால் மெதுவாக இருக்கலாம், மதிப்பின் ஒரு பகுதியை தேடும் திறனை உடைக்கவும்) ACCOUNTING_DATE_START_BINDING=கணக்கியலில் பிணைப்பு மற்றும் பரிமாற்றத்தைத் தொடங்குவதற்கான தேதியை வரையறுக்கவும். இந்த தேதிக்கு கீழே, பரிவர்த்தனைகள் கணக்கியலுக்கு மாற்றப்படாது. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=கணக்கியல் பரிமாற்றத்தில், இயல்புநிலையாக காலக் காட்சியைத் தேர்ந்தெடுக்கவும் +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=பத்திரிக்கையை விற்கவும் -ACCOUNTING_PURCHASE_JOURNAL=கொள்முதல் இதழ் -ACCOUNTING_MISCELLANEOUS_JOURNAL=இதர இதழ் +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=செலவு அறிக்கை இதழ் -ACCOUNTING_SOCIAL_JOURNAL=சமூக இதழ் +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=புதிய ஜர்னல் உள்ளது +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=சமூக இதழ் ACCOUNTING_RESULT_PROFIT=முடிவு கணக்கு கணக்கு (லாபம்) ACCOUNTING_RESULT_LOSS=முடிவு கணக்கு கணக்கு (இழப்பு) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=மூடல் இதழ் -ACCOUNTING_ACCOUNT_TRANSFER_CASH=இடைநிலை வங்கி பரிமாற்றத்தின் கணக்கியல் கணக்கு +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=இடைக்கால வங்கி பரிமாற்ற கணக்கு -ACCOUNTING_ACCOUNT_SUSPENSE=காத்திருப்பின் கணக்கு கணக்கு -DONATION_ACCOUNTINGACCOUNT=நன்கொடைகளை பதிவு செய்ய கணக்கு கணக்கு -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=சந்தாக்களை பதிவு செய்ய கணக்கியல் கணக்கு +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=வாடிக்கையாளர் வைப்புத்தொகையை பதிவு செய்ய இயல்புநிலையாக கணக்கு கணக்கு -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=வாங்கிய பொருட்களுக்கான இயல்புநிலை கணக்கு கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=EEC இல் வாங்கிய தயாரிப்புகளுக்கான இயல்புநிலை கணக்கு கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=EEC இலிருந்து வாங்கப்பட்ட மற்றும் இறக்குமதி செய்யப்பட்ட தயாரிப்புகளுக்கான இயல்புநிலை கணக்கியல் கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=விற்கப்பட்ட பொருட்களுக்கான இயல்புநிலை கணக்கியல் கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=EEC இல் விற்கப்படும் தயாரிப்புகளுக்கான இயல்புநிலை கணக்கு கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=EEC இலிருந்து விற்கப்பட்ட மற்றும் ஏற்றுமதி செய்யப்பட்ட தயாரிப்புகளுக்கான இயல்புநிலை கணக்கு கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=வாங்கிய சேவைகளுக்கு முன்னிருப்பாக கணக்கியல் கணக்கு (சேவை தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=EEC இல் வாங்கிய சேவைகளுக்கான இயல்புநிலை கணக்கியல் கணக்கு (சேவைத் தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=EEC இலிருந்து வாங்கிய மற்றும் இறக்குமதி செய்யப்பட்ட சேவைகளுக்கான இயல்புநிலை கணக்கியல் கணக்கு (சேவைத் தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=விற்கப்பட்ட சேவைகளுக்கு முன்னிருப்பாக கணக்கியல் கணக்கு (சேவை தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=EEC இல் விற்கப்படும் சேவைகளுக்கான இயல்புநிலை கணக்கியல் கணக்கு (சேவைத் தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=EEC இலிருந்து விற்கப்பட்ட மற்றும் ஏற்றுமதி செய்யப்பட்ட சேவைகளுக்கான இயல்புநிலை கணக்கியல் கணக்கு (சேவைத் தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=ஆவணத்தின் வகை Docdate=தேதி @@ -211,7 +217,7 @@ Codejournal=இதழ் JournalLabel=ஜர்னல் லேபிள் NumPiece=துண்டு எண் TransactionNumShort=எண் பரிவர்த்தனை -AccountingCategory=தனிப்பயன் குழு +AccountingCategory=Custom group of accounts GroupByAccountAccounting=பொதுப் பேரேடு கணக்கின்படி குழுவாக்கவும் GroupBySubAccountAccounting=சப்லெட்ஜர் கணக்கு மூலம் குழு AccountingAccountGroupsDesc=கணக்கியல் கணக்கின் சில குழுக்களை நீங்கள் இங்கே வரையறுக்கலாம். தனிப்பயனாக்கப்பட்ட கணக்கியல் அறிக்கைகளுக்கு அவை பயன்படுத்தப்படும். @@ -265,13 +271,13 @@ Reconcilable=சமரசம் செய்யக்கூடியது TotalVente=வரிக்கு முந்தைய மொத்த விற்றுமுதல் TotalMarge=மொத்த விற்பனை அளவு -DescVentilCustomer=ஒரு தயாரிப்பு கணக்கியல் கணக்கிற்கு இணைக்கப்பட்ட (அல்லது இல்லை) வாடிக்கையாளர் இன்வாய்ஸ் வரிகளின் பட்டியலை இங்கே பார்க்கவும் -DescVentilMore=பெரும்பாலான சந்தர்ப்பங்களில், நீங்கள் முன் வரையறுக்கப்பட்ட தயாரிப்புகள் அல்லது சேவைகளைப் பயன்படுத்தி, தயாரிப்பு/சேவை அட்டையில் கணக்கு எண்ணை அமைத்தால், உங்கள் இன்வாய்ஸ் வரிகளுக்கும் உங்கள் கணக்கு விளக்கப்படத்தின் கணக்கியல் கணக்கிற்கும் இடையே உள்ள அனைத்து பிணைப்புகளையும் பயன்பாட்டினால் செய்ய முடியும். "%s" பொத்தானைக் கொண்டு ஒரு கிளிக் செய்யவும். தயாரிப்பு/சேவை கார்டுகளில் கணக்கு அமைக்கப்படாமல் இருந்தாலோ அல்லது கணக்கிற்குக் கட்டுப்படாத சில வரிகள் உங்களிடம் இருந்தாலோ, " %s " மெனுவிலிருந்து கைமுறையாகப் பிணைக்க வேண்டும். -DescVentilDoneCustomer=இன்வாய்ஸ் வாடிக்கையாளர்கள் மற்றும் அவர்களின் தயாரிப்பு கணக்கியல் கணக்கின் வரிகளின் பட்டியலை இங்கே பார்க்கவும் -DescVentilTodoCustomer=ஏற்கனவே தயாரிப்பு கணக்கியல் கணக்குடன் பிணைக்கப்படாத விலைப்பட்டியல் வரிகளை பிணைக்கவும் -ChangeAccount=பின்வரும் கணக்கியல் கணக்குடன் தேர்ந்தெடுக்கப்பட்ட வரிகளுக்கான தயாரிப்பு/சேவை கணக்கியல் கணக்கை மாற்றவும்: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=ஒரு தயாரிப்பு கணக்கியல் கணக்குடன் இணைக்கப்பட்ட அல்லது இன்னும் பிணைக்கப்படாத விற்பனையாளர் விலைப்பட்டியல் வரிகளின் பட்டியலை இங்கே பார்க்கவும் (கணக்கில் ஏற்கனவே மாற்றப்படாத பதிவு மட்டுமே தெரியும்) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=விற்பனையாளர் விலைப்பட்டியல் மற்றும் அவர்களின் கணக்கியல் கணக்கின் வரிகளின் பட்டியலை இங்கே பார்க்கவும் DescVentilTodoExpenseReport=கட்டணம் கணக்கியல் கணக்குடன் ஏற்கனவே பிணைக்கப்படாத செலவு அறிக்கை வரிகளை பிணைக்கவும் DescVentilExpenseReport=கட்டணக் கணக்குக் கணக்கிற்குக் கட்டுப்பட்ட (அல்லது இல்லை) செலவு அறிக்கை வரிகளின் பட்டியலை இங்கே பார்க்கவும் @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=நீங்கள் அமைப்பு இழ DescVentilDoneExpenseReport=செலவு அறிக்கைகள் மற்றும் அவற்றின் கட்டணக் கணக்குகளின் வரிகளின் பட்டியலை இங்கே பார்க்கவும் Closure=வருடாந்திர மூடல் -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=எழுதுதல், எழுதுதல் மற்றும் நீக்குதல் ஆகியவற்றில் ஏதேனும் மாற்றம் அல்லது நீக்குதல் தடைசெய்யப்படும். ஒரு பயிற்சிக்கான அனைத்து உள்ளீடுகளும் சரிபார்க்கப்பட வேண்டும் இல்லையெனில் மூடுவது சாத்தியமில்லை ValidateHistory=தானாக பிணைக்கவும் AutomaticBindingDone=தானியங்கி பிணைப்புகள் செய்யப்பட்டன (%s) - சில பதிவுகளுக்கு தானியங்கு பிணைப்பு சாத்தியமில்லை (%s) -ErrorAccountancyCodeIsAlreadyUse=பிழை, இந்தக் கணக்கியல் கணக்கு பயன்படுத்தப்படுவதால் உங்களால் நீக்க முடியாது +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=சமநிலைப்படுத்துதல் FicheVentilation=பைண்டிங் கார்டு GeneralLedgerIsWritten=பரிவர்த்தனைகள் லெட்ஜரில் எழுதப்பட்டுள்ளன GeneralLedgerSomeRecordWasNotRecorded=சில பரிவர்த்தனைகளை ஜர்னலிஸ் செய்ய முடியவில்லை. வேறு எந்த பிழைச் செய்தியும் இல்லை என்றால், அவை ஏற்கனவே ஜர்னலிஸ் செய்யப்பட்டதால் இருக்கலாம். NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=எந்தவொரு கணக்கியல் கணக்கிற்கும் கட்டுப்படாத தயாரிப்புகளின் பட்டியல் +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=பிணைப்பை மாற்றவும் Accounted=லெட்ஜரில் கணக்கு வைக்கப்பட்டுள்ளது NotYetAccounted=இன்னும் கணக்கியலுக்கு மாற்றப்படவில்லை @@ -319,9 +325,10 @@ AccountingJournalType1=இதர செயல்பாடுகள் AccountingJournalType2=விற்பனை AccountingJournalType3=கொள்முதல் AccountingJournalType4=வங்கி -AccountingJournalType5=செலவு அறிக்கை +AccountingJournalType5=Expense reports AccountingJournalType8=சரக்கு AccountingJournalType9=புதியது +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=இந்த இதழ் ஏற்கனவே பயன்பாட்டில் உள்ளது AccountingAccountForSalesTaxAreDefinedInto=குறிப்பு: விற்பனை வரிக்கான கணக்கு கணக்கு %s - %s a0904 NumberOfAccountancyEntries=உள்ளீடுகளின் எண்ணிக்கை @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=இயக்கங்களின் எண்ண ACCOUNTING_DISABLE_BINDING_ON_SALES=விற்பனையில் கணக்கியலில் பிணைப்பு மற்றும் பரிமாற்றத்தை முடக்கு (கணக்கில் வாடிக்கையாளர் விலைப்பட்டியல்கள் கணக்கில் எடுத்துக்கொள்ளப்படாது) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=வாங்குதல்களில் கணக்கியலில் பிணைப்பு & பரிமாற்றத்தை முடக்கு (கணக்கில் விற்பனையாளர் இன்வாய்ஸ்கள் கணக்கில் எடுத்துக்கொள்ளப்படாது) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=செலவு அறிக்கைகள் மீதான கணக்கியலில் பிணைப்பு மற்றும் பரிமாற்றத்தை முடக்கு (கணக்கில் செலவு அறிக்கைகள் கணக்கில் எடுத்துக்கொள்ளப்படாது) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=கணக்கியல் ஏற்றுமதி கோப்பின் தலைமுறையை உறுதிப்படுத்தவா? ExportDraftJournal=ஏற்றுமதி வரைவு இதழ் @@ -398,7 +407,11 @@ Calculated=கணக்கிடப்பட்டது Formula=சூத்திரம் ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=ம AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=கணக்கு பதிவுகள் @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=மல்டிகரன்சி குறியீ DateExport=தேதி ஏற்றுமதி WarningReportNotReliable=எச்சரிக்கை, இந்த அறிக்கை லெட்ஜரை அடிப்படையாகக் கொண்டது அல்ல, எனவே லெட்ஜரில் கைமுறையாக மாற்றப்பட்ட பரிவர்த்தனை இல்லை. உங்கள் ஜர்னலைசேஷன் புதுப்பித்த நிலையில் இருந்தால், புத்தக பராமரிப்பு பார்வை மிகவும் துல்லியமாக இருக்கும். ExpenseReportJournal=செலவு அறிக்கை இதழ் -InventoryJournal=சரக்கு இதழ் NAccounts=%s கணக்குகள் diff --git a/htdocs/langs/ta_IN/admin.lang b/htdocs/langs/ta_IN/admin.lang index 5ebf50a8451..0559086fe84 100644 --- a/htdocs/langs/ta_IN/admin.lang +++ b/htdocs/langs/ta_IN/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=வாடிக்கையாளர் தொகுப் WarningModuleNotActive=தொகுதி %s இயக்கப்பட்டிருக்க வேண்டும் WarningOnlyPermissionOfActivatedModules=செயல்படுத்தப்பட்ட தொகுதிகள் தொடர்பான அனுமதிகள் மட்டுமே இங்கே காட்டப்படும். Home->Setup->Modules பக்கத்தில் நீங்கள் மற்ற தொகுதிகளை செயல்படுத்தலாம். DolibarrSetup=Dolibarr நிறுவவும் அல்லது மேம்படுத்தவும் -InternalUser=உள் பயனர் -ExternalUser=வெளிப்புற பயனர் InternalUsers=உள் பயனர்கள் ExternalUsers=வெளிப்புற பயனர்கள் UserInterface=பயனர் இடைமுகம் @@ -109,7 +107,7 @@ NextValueForReplacements=அடுத்த மதிப்பு (மாற் MustBeLowerThanPHPLimit=குறிப்பு: உங்கள் PHP உள்ளமைவு இந்த அளவுருவின் மதிப்பைப் பொருட்படுத்தாமல், %s %s க்கு பதிவேற்றுவதற்கான அதிகபட்ச கோப்பு அளவைக் கட்டுப்படுத்துகிறது. NoMaxSizeByPHPLimit=குறிப்பு: உங்கள் PHP உள்ளமைவில் வரம்பு எதுவும் அமைக்கப்படவில்லை MaxSizeForUploadedFiles=பதிவேற்றிய கோப்புகளுக்கான அதிகபட்ச அளவு (எந்தப் பதிவேற்றத்தையும் அனுமதிக்காததற்கு 0) -UseCaptchaCode=உள்நுழைவு பக்கத்தில் வரைகலை குறியீட்டைப் (CAPTCHA) பயன்படுத்தவும் +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=வைரஸ் தடுப்பு கட்டளைக்கான முழு பாதை AntiVirusCommandExample=ClamAv Daemon க்கான எடுத்துக்காட்டு (clamav-daemon தேவை): /usr/bin/clamdscan
    ClamWin க்கான எடுத்துக்காட்டு (மிக மிக மெதுவாக): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= கட்டளை வரியில் கூடுதல் அளவுருக்கள் @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS ஹோஸ்ட் (php.ini இல் இயல MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS போர்ட் (யுனிக்ஸ் போன்ற கணினிகளில் PHP இல் வரையறுக்கப்படவில்லை) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS ஹோஸ்ட் (யுனிக்ஸ் போன்ற கணினிகளில் PHP என வரையறுக்கப்படவில்லை) MAIN_MAIL_EMAIL_FROM=தானியங்கி மின்னஞ்சல்களுக்கான மின்னஞ்சல் அனுப்புனர் (php.ini இல் இயல்புநிலை மதிப்பு: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=மின்னஞ்சல்களைப் பிழை திரும்பப் பெறுவதற்குப் பயன்படுத்தப்படும் மின்னஞ்சல் (அனுப்பப்பட்ட மின்னஞ்சல்களில் உள்ள 'பிழைகள்-செய்யும்' புலங்கள்) MAIN_MAIL_AUTOCOPY_TO= அனுப்பிய எல்லா மின்னஞ்சல்களையும் நகலெடுக்கவும் (Bcc). MAIN_DISABLE_ALL_MAILS=அனைத்து மின்னஞ்சல் அனுப்புதலையும் முடக்கு (சோதனை நோக்கங்களுக்காக அல்லது டெமோக்களுக்காக) @@ -439,8 +438,10 @@ Unique=தனித்துவமான Boolean=பூலியன் (ஒரு தேர்வுப்பெட்டி) ExtrafieldPhone = தொலைபேசி ExtrafieldPrice = விலை +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = மின்னஞ்சல் ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = பட்டியலைத் தேர்ந்தெடுக்கவும் ExtrafieldSelectList = அட்டவணையில் இருந்து தேர்ந்தெடுக்கவும் ExtrafieldSeparator=பிரிப்பான் (ஒரு புலம் அல்ல) @@ -477,7 +478,7 @@ InstalledInto=%s கோப்பகத்தில் நிறுவப்ப BarcodeInitForThirdparties=மூன்றாம் தரப்பினருக்கான மாஸ் பார்கோடு init BarcodeInitForProductsOrServices=தயாரிப்புகள் அல்லது சேவைகளுக்கு பெருமளவிலான பார்கோடு துவக்கவும் அல்லது மீட்டமைக்கவும் CurrentlyNWithoutBarCode=தற்போது, %s a0a65d071f6fc947c06bz0 %s பதிவு உள்ளது. -InitEmptyBarCode=அடுத்த %s வெற்றுப் பதிவுகளுக்கான தொடக்க மதிப்பு +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=தற்போதைய பார்கோடு மதிப்புகள் அனைத்தையும் அழிக்கவும் ConfirmEraseAllCurrentBarCode=தற்போதைய பார்கோடு மதிப்புகள் அனைத்தையும் நிச்சயமாக அழிக்க விரும்புகிறீர்களா? AllBarcodeReset=அனைத்து பார்கோடு மதிப்புகளும் அகற்றப்பட்டன @@ -501,10 +502,11 @@ WarningPHPMail=எச்சரிக்கை: பயன்பாட்டில WarningPHPMailA=- மின்னஞ்சல் சேவை வழங்குநரின் சேவையகத்தைப் பயன்படுத்துவது உங்கள் மின்னஞ்சலின் நம்பகத்தன்மையை அதிகரிக்கிறது, எனவே இது ஸ்பேம் எனக் கொடியிடப்படாமல் விநியோகத்தை அதிகரிக்கிறது WarningPHPMailB=- சில மின்னஞ்சல் சேவை வழங்குநர்கள் (Yahoo போன்றவை) தங்கள் சொந்த சேவையகத்தை விட வேறொரு சேவையகத்திலிருந்து மின்னஞ்சல் அனுப்ப உங்களை அனுமதிப்பதில்லை. உங்கள் தற்போதைய அமைப்பு மின்னஞ்சலை அனுப்ப பயன்பாட்டின் சேவையகத்தைப் பயன்படுத்துகிறது, உங்கள் மின்னஞ்சல் வழங்குநரின் சேவையகத்தை அல்ல, எனவே சில பெறுநர்கள் (கட்டுப்படுத்தப்பட்ட DMARC நெறிமுறையுடன் இணக்கமானது), உங்கள் மின்னஞ்சலையும் சில மின்னஞ்சல் வழங்குநர்களையும் ஏற்க முடியுமா என்று உங்கள் மின்னஞ்சல் வழங்குநரிடம் கேட்பார்கள். (Yahoo போன்றது) "இல்லை" என்று பதிலளிக்கலாம், ஏனெனில் சேவையகம் அவர்களுடையது அல்ல, எனவே நீங்கள் அனுப்பிய சில மின்னஞ்சல்கள் டெலிவரிக்கு ஏற்றுக்கொள்ளப்படாமல் போகலாம் (உங்கள் மின்னஞ்சல் வழங்குநரின் அனுப்பும் ஒதுக்கீட்டிலும் கவனமாக இருக்கவும்). WarningPHPMailC=- மின்னஞ்சல்களை அனுப்ப உங்கள் சொந்த மின்னஞ்சல் சேவை வழங்குநரின் SMTP சேவையகத்தைப் பயன்படுத்துவதும் சுவாரஸ்யமானது, எனவே பயன்பாட்டிலிருந்து அனுப்பப்படும் அனைத்து மின்னஞ்சல்களும் உங்கள் அஞ்சல் பெட்டியின் "அனுப்பப்பட்ட" கோப்பகத்தில் சேமிக்கப்படும். -WarningPHPMailD=மேலும், மின்னஞ்சல்களை அனுப்பும் முறையை "SMTP" மதிப்பிற்கு மாற்ற பரிந்துரைக்கப்படுகிறது. மின்னஞ்சல்களை அனுப்புவதற்கு இயல்புநிலை "PHP" முறையை நீங்கள் உண்மையிலேயே வைத்திருக்க விரும்பினால், இந்த எச்சரிக்கையைப் புறக்கணிக்கவும் அல்லது MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP ஐ முகப்பு - அமைவு - மற்றவற்றில் நிலையான 1 என அமைப்பதன் மூலம் அதை அகற்றவும். +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=உங்கள் மின்னஞ்சல் SMTP வழங்குநர் மின்னஞ்சல் கிளையண்ட்டை சில IP முகவரிகளுக்கு (மிகவும் அரிதான) கட்டுப்படுத்த வேண்டும் என்றால், இது உங்கள் ERP CRM பயன்பாட்டிற்கான அஞ்சல் பயனர் முகவரின் (MUA) ஐபி முகவரி: %s a0a65d071f6f6f6fc9 WarningPHPMailSPF=உங்கள் அனுப்புநரின் மின்னஞ்சல் முகவரியில் உள்ள டொமைன் பெயர் SPF பதிவினால் பாதுகாக்கப்பட்டிருந்தால் (உங்கள் டொமைன் பெயர் பதிவேட்டைக் கேளுங்கள்), உங்கள் டொமைனின் DNS இன் SPF பதிவில் பின்வரும் IPகளை நீங்கள் சேர்க்க வேண்டும்: %s a0a65d071f. -ActualMailSPFRecordFound=உண்மையான SPF பதிவு கண்டறியப்பட்டது : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=விளக்கத்தைக் காட்ட கிளிக் செய்யவும் DependsOn=இந்த தொகுதிக்கு தொகுதி(கள்) தேவை RequiredBy=இந்த தொகுதிக்கு தொகுதி(கள்) தேவை @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    எடுத்துக்காட்ட PageUrlForDefaultValuesList=
    எடுத்துக்காட்டு:
    மூன்றாம் தரப்பினரைப் பட்டியலிடும் பக்கத்திற்கு, இது %s .
    தனிப்பயன் கோப்பகத்தில் நிறுவப்பட்ட வெளிப்புற தொகுதிகளின் URL க்கு, "தனிப்பயன்/" சேர்க்க வேண்டாம், எனவே mymodule/mypagelist.php போன்ற பாதையைப் பயன்படுத்தவும் மற்றும் custom/mymodule.ph.
    url இல் ஏதேனும் அளவுரு இருந்தால் மட்டுமே இயல்புநிலை மதிப்பை நீங்கள் விரும்பினால், நீங்கள் %s ஐப் பயன்படுத்தலாம் AlsoDefaultValuesAreEffectiveForActionCreate=படிவ உருவாக்கத்திற்கான இயல்புநிலை மதிப்புகளை மேலெழுதுவது சரியாக வடிவமைக்கப்பட்ட பக்கங்களுக்கு மட்டுமே வேலை செய்யும் (அதனால் அளவுரு செயல்=உருவாக்கு அல்லது வழங்குதல்...) EnableDefaultValues=இயல்புநிலை மதிப்புகளின் தனிப்பயனாக்கத்தை இயக்கு -EnableOverwriteTranslation=மேலெழுதப்பட்ட மொழிபெயர்ப்பின் பயன்பாட்டை இயக்கவும் +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=இந்தக் குறியீட்டைக் கொண்ட விசைக்கான மொழிபெயர்ப்பு கண்டறியப்பட்டுள்ளது. இந்த மதிப்பை மாற்ற, Home-Setup-translation இலிருந்து நீங்கள் திருத்த வேண்டும். WarningSettingSortOrder=எச்சரிக்கை, புலம் தெரியாத புலமாக இருந்தால், பட்டியல் பக்கத்தில் செல்லும் போது, இயல்புநிலை வரிசை வரிசையை அமைப்பது தொழில்நுட்ப பிழையை ஏற்படுத்தலாம். இதுபோன்ற பிழையை நீங்கள் சந்தித்தால், இயல்புநிலை வரிசை வரிசையை அகற்றி இயல்புநிலை நடத்தையை மீட்டமைக்க இந்தப் பக்கத்திற்கு மீண்டும் வரவும். Field=களம் @@ -645,9 +647,9 @@ Module2400Name=நிகழ்வுகள்/நிகழ்ச்சி நி Module2400Desc=நிகழ்வுகளைக் கண்காணிக்கவும். கண்காணிப்பு நோக்கங்களுக்காக தானியங்கி நிகழ்வுகளை பதிவு செய்யவும் அல்லது கைமுறை நிகழ்வுகள் அல்லது சந்திப்புகளை பதிவு செய்யவும். நல்ல வாடிக்கையாளர் அல்லது விற்பனையாளர் உறவு மேலாண்மைக்கான முதன்மை தொகுதி இதுவாகும். Module2500Name=டிஎம்எஸ் / ஈசிஎம் Module2500Desc=ஆவண மேலாண்மை அமைப்பு / மின்னணு உள்ளடக்க மேலாண்மை. நீங்கள் உருவாக்கிய அல்லது சேமிக்கப்பட்ட ஆவணங்களின் தானியங்கி அமைப்பு. உங்களுக்குத் தேவைப்படும்போது அவற்றைப் பகிரவும். -Module2600Name=API/இணைய சேவைகள் (SOAP சர்வர்) +Module2600Name=API / Web services (SOAP server) Module2600Desc=API சேவைகளை வழங்கும் Dolibarr SOAP சேவையகத்தை இயக்கவும் -Module2610Name=API/இணைய சேவைகள் (REST சர்வர்) +Module2610Name=API / Web services (REST server) Module2610Desc=API சேவைகளை வழங்கும் Dolibarr REST சேவையகத்தை இயக்கவும் Module2660Name=இணைய சேவைகளை (SOAP கிளையன்ட்) அழைக்கவும் Module2660Desc=Dolibarr இணைய சேவை கிளையண்டை இயக்கு (தரவு/கோரிக்கைகளை வெளிப்புற சேவையகங்களுக்குத் தள்ளப் பயன்படுத்தலாம். கொள்முதல் ஆர்டர்கள் மட்டுமே தற்போது ஆதரிக்கப்படுகின்றன.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Incoterms ஐ நிர்வகிக்க அம்சங்களைச் சேர்க்கவும் Module63000Name=வளங்கள் Module63000Desc=நிகழ்வுகளுக்கு ஒதுக்குவதற்கான ஆதாரங்களை (அச்சுப்பொறிகள், கார்கள், அறைகள், ...) நிர்வகிக்கவும் +Module94160Name=Receptions Permission11=வாடிக்கையாளர் இன்வாய்ஸ்களைப் படிக்கவும் Permission12=வாடிக்கையாளர் இன்வாய்ஸ்களை உருவாக்கவும்/மாற்றவும் Permission13=வாடிக்கையாளர் இன்வாய்ஸ்களை செல்லாததாக்கு @@ -714,6 +717,7 @@ Permission27=வணிக முன்மொழிவுகளை நீக் Permission28=வர்த்தக முன்மொழிவுகளை ஏற்றுமதி செய்யுங்கள் Permission31=தயாரிப்புகளைப் படிக்கவும் Permission32=தயாரிப்புகளை உருவாக்கவும் / மாற்றவும் +Permission33=Read prices products Permission34=தயாரிப்புகளை நீக்கு Permission36=மறைக்கப்பட்ட தயாரிப்புகளைப் பார்க்கவும்/நிர்வகிக்கவும் Permission38=ஏற்றுமதி பொருட்கள் @@ -739,6 +743,7 @@ Permission79=சந்தாக்களை உருவாக்கவும் Permission81=வாடிக்கையாளர் ஆர்டர்களைப் படிக்கவும் Permission82=வாடிக்கையாளர் ஆர்டர்களை உருவாக்கவும்/மாற்றவும் Permission84=வாடிக்கையாளர் ஆர்டர்களை சரிபார்க்கவும் +Permission85=Generate the documents sales orders Permission86=வாடிக்கையாளர்களுக்கு ஆர்டர்களை அனுப்பவும் Permission87=வாடிக்கையாளர் ஆர்டர்களை மூடு Permission88=வாடிக்கையாளர் ஆர்டர்களை ரத்து செய் @@ -840,9 +845,9 @@ Permission286=தொடர்புகளை ஏற்றுமதி செய Permission291=கட்டணங்களைப் படிக்கவும் Permission292=கட்டணங்களில் அனுமதிகளை அமைக்கவும் Permission293=வாடிக்கையாளரின் கட்டணங்களை மாற்றவும் -Permission300=பார்கோடுகளைப் படிக்கவும் -Permission301=பார்கோடுகளை உருவாக்கவும்/மாற்றவும் -Permission302=பார்கோடுகளை நீக்கு +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=சேவைகளைப் படிக்கவும் Permission312=ஒப்பந்தத்திற்கு சேவை/சந்தாவை ஒதுக்கவும் Permission331=புக்மார்க்குகளைப் படிக்கவும் @@ -874,6 +879,7 @@ Permission525=கடன் கால்குலேட்டரை அணுக Permission527=ஏற்றுமதி கடன்கள் Permission531=சேவைகளைப் படிக்கவும் Permission532=சேவைகளை உருவாக்கவும்/மாற்றவும் +Permission533=Read prices services Permission534=சேவைகளை நீக்கு Permission536=மறைக்கப்பட்ட சேவைகளைப் பார்க்கவும்/நிர்வகிக்கவும் Permission538=ஏற்றுமதி சேவைகள் @@ -968,13 +974,14 @@ Permission3301=புதிய தொகுதிகளை உருவாக் Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=மதிப்பீட்டைச் சரிபார்க்கவும் -Permission4023=மதிப்பீட்டை நீக்கு -Permission4030=ஒப்பீட்டு மெனுவைப் பார்க்கவும் +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=இணையதள உள்ளடக்கத்தைப் படிக்கவும் Permission10002=இணையதள உள்ளடக்கத்தை உருவாக்கவும்/மாற்றவும் (html மற்றும் javascript உள்ளடக்கம்) Permission10003=வலைத்தள உள்ளடக்கத்தை உருவாக்கவும்/மாற்றவும் (டைனமிக் php குறியீடு). ஆபத்தானது, கட்டுப்படுத்தப்பட்ட டெவலப்பர்களுக்கு ஒதுக்கப்பட வேண்டும். @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=அலகு வகை SetupSaved=அமைவு சேமிக்கப்பட்டது SetupNotSaved=அமைவு சேமிக்கப்படவில்லை +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=தொகுதிப் பட்டியலுக்குத் திரும்பு BackToDictionaryList=அகராதிகளின் பட்டியலுக்குத் திரும்பு TypeOfRevenueStamp=வரி முத்திரையின் வகை @@ -1129,7 +1140,7 @@ ValueOfConstantKey=ஒரு கட்டமைப்பு மாறிலி ConstantIsOn=விருப்பம் %s இயக்கத்தில் உள்ளது NbOfDays=நாட்களின் எண்ணிக்கை AtEndOfMonth=மாத இறுதியில் -CurrentNext=தற்போதைய/அடுத்து +CurrentNext=A given day in month Offset=ஆஃப்செட் AlwaysActive=எப்போதும் சுறுசுறுப்பாக இருக்கும் Upgrade=மேம்படுத்தல் @@ -1235,11 +1246,13 @@ BrowserName=உலாவி பெயர் BrowserOS=உலாவி OS ListOfSecurityEvents=டோலிபார் பாதுகாப்பு நிகழ்வுகளின் பட்டியல் SecurityEventsPurged=பாதுகாப்பு நிகழ்வுகள் அகற்றப்பட்டன +TrackableSecurityEvents=Trackable security events LogEventDesc=குறிப்பிட்ட பாதுகாப்பு நிகழ்வுகளுக்கு பதிவு செய்வதை இயக்கவும். %s - %s மெனு வழியாகப் பதிவை நிர்வாகிகள் செய்கிறார்கள். எச்சரிக்கை, இந்த அம்சம் தரவுத்தளத்தில் அதிக அளவிலான தரவை உருவாக்க முடியும். AreaForAdminOnly=அமைவு அளவுருக்களை நிர்வாகி பயனர்கள் மட்டுமே அமைக்க முடியும். SystemInfoDesc=கணினித் தகவல் என்பது நீங்கள் படிக்க மட்டும் பயன்முறையில் பெறும் மற்றும் நிர்வாகிகளுக்கு மட்டுமே தெரியும் பல்வேறு தொழில்நுட்பத் தகவலாகும். SystemAreaForAdminOnly=இந்த பகுதி நிர்வாகி பயனர்களுக்கு மட்டுமே கிடைக்கும். Dolibarr பயனர் அனுமதிகள் இந்த கட்டுப்பாட்டை மாற்ற முடியாது. CompanyFundationDesc=உங்கள் நிறுவனம்/நிறுவனத்தின் தகவலைத் திருத்தவும். முடிந்ததும் பக்கத்தின் கீழே உள்ள "%s" பொத்தானைக் கிளிக் செய்யவும். +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=உங்களிடம் வெளிப்புறக் கணக்காளர்/புத்தகக் காப்பாளர் இருந்தால், அதன் தகவலை இங்கே திருத்தலாம். AccountantFileNumber=கணக்காளர் குறியீடு DisplayDesc=பயன்பாட்டின் தோற்றம் மற்றும் விளக்கக்காட்சியைப் பாதிக்கும் அளவுருக்கள் இங்கே மாற்றியமைக்கப்படலாம். @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=பயனர் %s உ YourPHPDoesNotHaveSSLSupport=உங்கள் PHP இல் SSL செயல்பாடுகள் இல்லை DownloadMoreSkins=பதிவிறக்கம் செய்ய மேலும் தோல்கள் SimpleNumRefModelDesc=%syymm-nnnn வடிவத்தில் குறிப்பு எண்ணை வழங்குகிறது, இங்கு yy என்பது ஆண்டு, mm என்பது மாதம் மற்றும் nnnn என்பது மீட்டமைக்கப்படாத ஒரு தொடர்ச்சியான தானியங்கு-அதிகரிப்பு எண்ணாகும். +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=%s-nnnn வடிவத்தில் குறிப்பு எண்ணை வழங்கும் ShowProfIdInAddress=முகவரிகளுடன் தொழில்முறை ஐடியைக் காட்டு ShowVATIntaInAddress=சமூகத்திற்குள் VAT எண்ணை மறை @@ -1376,7 +1391,7 @@ GetBarCode=பார்கோடு பெறவும் NumberingModules=எண் மாதிரிகள் DocumentModules=ஆவண மாதிரிகள் ##### Module password generation -PasswordGenerationStandard=உள் Dolibarr அல்காரிதம் படி உருவாக்கப்பட்ட கடவுச்சொல்லை திருப்பி அனுப்பவும்: %s எழுத்துகள் பகிரப்பட்ட எண்கள் மற்றும் சிறிய எழுத்துக்களில் உள்ள எழுத்துக்கள். +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=உருவாக்கப்பட்ட கடவுச்சொல்லை பரிந்துரைக்க வேண்டாம். கடவுச்சொல்லை கைமுறையாக தட்டச்சு செய்ய வேண்டும். PasswordGenerationPerso=உங்கள் தனிப்பட்ட முறையில் வரையறுக்கப்பட்ட உள்ளமைவின்படி கடவுச்சொல்லை திருப்பி அனுப்பவும். SetupPerso=உங்கள் கட்டமைப்பின் படி @@ -1430,6 +1445,10 @@ SuppliersPayment=விற்பனையாளர் கொடுப்பன SupplierPaymentSetup=விற்பனையாளர் கட்டண அமைப்பு InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=வணிக முன்மொழிவுகள் தொகுதி அமைவு ProposalsNumberingModules=வணிக முன்மொழிவு எண் மாதிரிகள் @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=வரைவு ஒப்பந்தங்கள ##### Members ##### MembersSetup=உறுப்பினர்கள் தொகுதி அமைப்பு MemberMainOptions=முக்கிய விருப்பங்கள் +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= ஒவ்வொரு உறுப்பினருக்கும் ஒரு உள்நுழைவை நிர்வகிக்கவும் AdherentMailRequired=புதிய உறுப்பினரை உருவாக்க மின்னஞ்சல் தேவை MemberSendInformationByMailByDefault=உறுப்பினர்களுக்கு மின்னஞ்சல் உறுதிப்படுத்தலை அனுப்புவதற்கான தேர்வுப்பெட்டி (சரிபார்ப்பு அல்லது புதிய சந்தா) இயல்பாகவே இயக்கத்தில் உள்ளது MemberCreateAnExternalUserForSubscriptionValidated=சரிபார்க்கப்பட்ட ஒவ்வொரு புதிய உறுப்பினர் சந்தாவிற்கும் வெளிப்புற பயனர் உள்நுழைவை உருவாக்கவும் -VisitorCanChooseItsPaymentMode=கிடைக்கக்கூடிய கட்டண முறைகளில் இருந்து பார்வையாளர் தேர்வு செய்யலாம் +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=காலாவதியான சந்தாக்களின்
    மின்னஞ்சல் மூலம் என்ற தானியங்கி நினைவூட்டலை இயக்கவும். குறிப்பு: தொகுதி %s இயக்கப்பட்டிருக்க வேண்டும் மற்றும் நினைவூட்டல்களை அனுப்ப, சரியாக அமைக்க வேண்டும். MembersDocModules=உறுப்பினர் பதிவிலிருந்து உருவாக்கப்பட்ட ஆவணங்களுக்கான ஆவண வார்ப்புருக்கள் ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=மேம்பட்ட எடிட்டரைச் செ FCKeditorForNotePublic=உறுப்புகளின் "பொது குறிப்புகள்" புலத்தின் WYSIWIG உருவாக்கம்/பதிப்பு FCKeditorForNotePrivate=உறுப்புகளின் "தனியார் குறிப்புகள்" புலத்தின் WYSIWIG உருவாக்கம்/பதிப்பு FCKeditorForCompany=WYSIWIG உருவாக்கம்/உறுப்புகளின் புல விளக்கத்தின் பதிப்பு (தயாரிப்புகள்/சேவைகள் தவிர) -FCKeditorForProduct=தயாரிப்புகள்/சேவைகளின் கள விளக்கத்தின் WYSIWIG உருவாக்கம்/பதிப்பு -FCKeditorForProductDetails=WYSIWIG தயாரிப்புகளின் உருவாக்கம்/பதிப்பு அனைத்து நிறுவனங்களுக்கும் (முன்மொழிவுகள், ஆர்டர்கள், இன்வாய்ஸ்கள் போன்றவை...) விவரங்கள். எச்சரிக்கை: PDF கோப்புகளை உருவாக்கும்போது சிறப்பு எழுத்துகள் மற்றும் பக்க வடிவமைப்பில் சிக்கல்களை உருவாக்கலாம் என்பதால், இந்த விஷயத்தில் இந்த விருப்பத்தைப் பயன்படுத்துவது பரிந்துரைக்கப்படவில்லை. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= வெகுஜன மின்னஞ்சல்களுக்கான WYSIWIG உருவாக்கம்/பதிப்பு (கருவிகள்-> மின்னஞ்சல்) FCKeditorForUserSignature=WYSIWIG உருவாக்கம்/பயனர் கையொப்பத்தின் பதிப்பு FCKeditorForMail=அனைத்து அஞ்சல்களுக்கும் WYSIWIG உருவாக்கம்/பதிப்பு (கருவிகள்-> மின்னஞ்சல் தவிர) @@ -1762,7 +1782,7 @@ DetailMenuHandler=புதிய மெனுவைக் காண்பிக DetailMenuModule=மெனு உள்ளீடு ஒரு தொகுதியிலிருந்து வந்தால் தொகுதியின் பெயர் DetailType=மெனு வகை (மேல் அல்லது இடது) DetailTitre=மொழிபெயர்ப்பிற்கான மெனு லேபிள் அல்லது லேபிள் குறியீடு -DetailUrl=மெனு உங்களுக்கு அனுப்பும் URL (முழுமையான URL இணைப்பு அல்லது http:// உடன் வெளிப்புற இணைப்பு) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=காட்ட வேண்டிய அல்லது நுழைவதற்கான நிபந்தனை DetailRight=அங்கீகரிக்கப்படாத சாம்பல் மெனுக்களைக் காண்பிக்க வேண்டிய நிபந்தனை DetailLangs=லேபிள் குறியீடு மொழிபெயர்ப்புக்கான லாங் கோப்பு பெயர் @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POS இல் பங்கு கு CashDeskYouDidNotDisableStockDecease=பாயிண்ட் ஆஃப் சேல் மூலம் விற்பனை செய்யும் போது பங்கு குறைப்பை நீங்கள் முடக்கவில்லை. எனவே ஒரு கிடங்கு தேவை. CashDeskForceDecreaseStockLabel=தொகுதி தயாரிப்புகளுக்கான பங்கு குறைப்பு கட்டாயப்படுத்தப்பட்டது. CashDeskForceDecreaseStockDesc=பழமையான சாப்பிடும் மற்றும் விற்கும் தேதிகளால் முதலில் குறைக்கவும். -CashDeskReaderKeyCodeForEnter="Enter" க்கான முக்கிய குறியீடு பார்கோடு ரீடரில் வரையறுக்கப்பட்டுள்ளது (எடுத்துக்காட்டு: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=புக்மார்க் தொகுதி அமைவு BookmarkDesc=புக்மார்க்குகளை நிர்வகிக்க இந்த தொகுதி உங்களை அனுமதிக்கிறது. உங்கள் இடது மெனுவில் உள்ள எந்த Dolibarr பக்கங்களுக்கும் அல்லது வெளிப்புற இணைய தளங்களுக்கும் குறுக்குவழிகளைச் சேர்க்கலாம். @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=விற்பனையாளர் இன்வ IfSetToYesDontForgetPermission=பூஜ்யமற்ற மதிப்பாக அமைக்கப்பட்டால், இரண்டாவது ஒப்புதலுக்கு அனுமதிக்கப்பட்ட குழுக்கள் அல்லது பயனர்களுக்கு அனுமதிகளை வழங்க மறக்காதீர்கள் ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind தொகுதி அமைப்பு -PathToGeoIPMaxmindCountryDataFile=கோப்பிற்கான பாதை Maxmind ip to நாட்டு மொழிபெயர்ப்பு.
    எடுத்துக்காட்டுகள்:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat a0342fccfda19bzre0342fccfda19bz0 +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=உங்கள் IP முதல் நாடு வரையிலான தரவுக் கோப்பு உங்கள் PHP படிக்கக்கூடிய கோப்பகத்தில் இருக்க வேண்டும் என்பதை நினைவில் கொள்ளவும் (உங்கள் PHP open_basedir அமைப்பு மற்றும் கோப்பு முறைமை அனுமதிகளைச் சரிபார்க்கவும்). YouCanDownloadFreeDatFileTo=Maxmind GeoIP நாட்டுக் கோப்பின் இலவச டெமோ பதிப்பான ஐ %s இல் பதிவிறக்கம் செய்யலாம். YouCanDownloadAdvancedDatFileTo=%s இல் Maxmind GeoIP நாட்டுக் கோப்பின்
    புதுப்பிப்புகளுடன் மேலும் முழுப் பதிப்பையும் பதிவிறக்கம் செய்யலாம். @@ -1922,6 +1942,7 @@ BackupDumpWizard=தரவுத்தள டம்ப் கோப்பை உ BackupZipWizard=ஆவணங்கள் கோப்பகத்தின் காப்பகத்தை உருவாக்க வழிகாட்டி SomethingMakeInstallFromWebNotPossible=பின்வரும் காரணத்திற்காக இணைய இடைமுகத்திலிருந்து வெளிப்புற தொகுதியை நிறுவுவது சாத்தியமில்லை: SomethingMakeInstallFromWebNotPossible2=இந்த காரணத்திற்காக, இங்கு விவரிக்கப்பட்டுள்ள மேம்படுத்தல் செயல்முறையானது ஒரு சிறப்புரிமை பெற்ற பயனர் மட்டுமே செய்யக்கூடிய ஒரு கைமுறை செயல்முறையாகும். +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=பயன்பாட்டிலிருந்து வெளிப்புற தொகுதியை நிறுவுவது உங்கள் நிர்வாகியால் முடக்கப்பட்டுள்ளது. இந்த அம்சத்தை அனுமதிக்க, %s கோப்பை அகற்றும்படி அவரிடம் கேட்க வேண்டும். ConfFileMustContainCustom=பயன்பாட்டிலிருந்து வெளிப்புற தொகுதியை நிறுவுதல் அல்லது உருவாக்குதல் தொகுதி கோப்புகளை %s கோப்பகத்தில் சேமிக்க வேண்டும். இந்த கோப்பகத்தை Dolibarr ஆல் செயல்படுத்த, 2 வழிகாட்டுதல் வரிகளைச் சேர்க்க, conf/conf.php ஐ அமைக்க வேண்டும்:
    a0e7843947cli'rto_in_barz0 $d06bz

    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=மவுஸ் நகர்த்தும்போது அட்டவணை வரிகளை முன்னிலைப்படுத்தவும் @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=விசைப்பலகையில் CTRL+F5 ஐ NotSupportedByAllThemes=வில் முக்கிய தீம்களுடன் வேலை செய்கிறது, வெளிப்புற தீம்களால் ஆதரிக்கப்படாமல் இருக்கலாம் BackgroundColor=பின்னணி நிறம் TopMenuBackgroundColor=மேல் மெனுவிற்கான பின்னணி நிறம் -TopMenuDisableImages=மேல் மெனுவில் படங்களை மறை +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=இடது மெனுவிற்கான பின்னணி நிறம் BackgroundTableTitleColor=அட்டவணை தலைப்பு வரிக்கான பின்னணி நிறம் BackgroundTableTitleTextColor=அட்டவணை தலைப்பு வரிக்கான உரை வண்ணம் @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=கொள்முதல் ஆணைகள் MailToSendSupplierInvoice=விற்பனையாளர் விலைப்பட்டியல் MailToSendContract=ஒப்பந்தங்கள் MailToSendReception=வரவேற்புகள் +MailToExpenseReport=Expense reports MailToThirdparty=மூன்றாம் தரப்பினர் MailToMember=உறுப்பினர்கள் MailToUser=பயனர்கள் @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF இல் வலது ஓரம் MAIN_PDF_MARGIN_TOP=PDF இல் மேல் விளிம்பு MAIN_PDF_MARGIN_BOTTOM=PDF இல் கீழ் விளிம்பு MAIN_DOCUMENTS_LOGO_HEIGHT=PDF இல் லோகோவுக்கான உயரம் +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=முன்மொழிவு வரிகளில் படத்திற்கான நெடுவரிசையைச் சேர்க்கவும் MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=வரிகளில் படம் சேர்க்கப்பட்டால் நெடுவரிசையின் அகலம் MAIN_PDF_NO_SENDER_FRAME=அனுப்புநர் முகவரி சட்டத்தில் எல்லைகளை மறை @@ -2047,6 +2070,8 @@ RemoveSpecialChars=சிறப்பு எழுத்துக்களை COMPANY_AQUARIUM_CLEAN_REGEX=ரீஜெக்ஸ் வடிப்பானில் சுத்தமான மதிப்பு (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=ரீஜெக்ஸ் ஃபில்டர் சுத்தமான மதிப்பு (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=நகல் அனுமதிக்கப்படவில்லை +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=தரவு பாதுகாப்பு அதிகாரி (DPO, தரவு தனியுரிமை அல்லது GDPR தொடர்பு) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=உதவிக்குறிப்பில் உரையைக் காட்ட உதவும் @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=குறிப்பு: %s - %s என்ற மெனுவி SwapSenderAndRecipientOnPDF=PDF ஆவணங்களில் அனுப்புநர் மற்றும் பெறுநரின் முகவரி நிலையை மாற்றவும் FeatureSupportedOnTextFieldsOnly=எச்சரிக்கை, அம்சம் உரை புலங்கள் மற்றும் சேர்க்கை பட்டியல்களில் மட்டுமே ஆதரிக்கப்படுகிறது. மேலும் ஒரு URL அளவுரு செயல்=உருவாக்கு அல்லது செயல்=திருத்தம் அமைக்கப்பட வேண்டும் அல்லது இந்த அம்சத்தைத் தூண்டுவதற்கு பக்கத்தின் பெயர் 'new.php' உடன் முடிவடைய வேண்டும். EmailCollector=மின்னஞ்சல் சேகரிப்பான் +EmailCollectors=Email collectors EmailCollectorDescription=வழக்கமான மின்னஞ்சல் பெட்டிகளை (IMAP நெறிமுறையைப் பயன்படுத்தி) ஸ்கேன் செய்ய திட்டமிடப்பட்ட வேலை மற்றும் அமைவுப் பக்கத்தைச் சேர்க்கவும் மற்றும் உங்கள் விண்ணப்பத்தில் பெறப்பட்ட மின்னஞ்சல்களை சரியான இடத்தில் பதிவு செய்யவும் மற்றும்/அல்லது சில பதிவுகளை தானாக உருவாக்கவும் (லீட்கள் போன்றவை). NewEmailCollector=புதிய மின்னஞ்சல் கலெக்டர் EMailHost=மின்னஞ்சல் IMAP சேவையகத்தின் ஹோஸ்ட் +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=அஞ்சல் பெட்டி மூல அடைவு MailboxTargetDirectory=அஞ்சல் பெட்டி இலக்கு அடைவு EmailcollectorOperations=கலெக்டர் மூலம் செய்ய வேண்டிய செயல்பாடுகள் EmailcollectorOperationsDesc=செயல்பாடுகள் மேலிருந்து கீழ் வரிசையில் செயல்படுத்தப்படுகின்றன MaxEmailCollectPerCollect=ஒரு சேகரிப்புக்கு அதிகபட்ச மின்னஞ்சல்கள் சேகரிக்கப்படுகின்றன +TestCollectNow=Test collect CollectNow=இப்போது சேகரிக்கவும் ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=சமீபத்திய சேகரிப்பு முயற்சியின் தேதி DateLastcollectResultOk=சமீபத்திய சேகரிப்பு வெற்றியின் தேதி LastResult=சமீபத்திய முடிவு EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=மின்னஞ்சல் சேகரிப்பு உறுதிப்படுத்தல் EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=செயலாக்க புதிய மின்னஞ்சல் (பொருந்தும் வடிப்பான்கள்) இல்லை NothingProcessed=எதுவும் செய்யவில்லை -XEmailsDoneYActionsDone=%s மின்னஞ்சல்கள் தகுதிபெற்றன, %s மின்னஞ்சல்கள் வெற்றிகரமாகச் செயலாக்கப்பட்டன (%s பதிவு/செயல்களுக்கு) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=வேலை விண்ணப்பத்தை உருவ FormatZip=ஜிப் MainMenuCode=மெனு நுழைவு குறியீடு (முதன்மை மெனு) ECMAutoTree=தானியங்கி ECM மரத்தைக் காட்டு -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=தொடக்க நேரம் OpeningHoursDesc=உங்கள் நிறுவனத்தின் வழக்கமான திறந்திருக்கும் நேரத்தை இங்கே உள்ளிடவும். ResourceSetup=வள தொகுதியின் கட்டமைப்பு @@ -2167,6 +2200,10 @@ EmailTemplate=மின்னஞ்சலுக்கான டெம்ப் EMailsWillHaveMessageID=மின்னஞ்சல்களில் இந்த தொடரியல் பொருந்தும் 'குறிப்புகள்' குறிச்சொல் இருக்கும் PDF_SHOW_PROJECT=ஆவணத்தில் திட்டத்தைக் காட்டு ShowProjectLabel=திட்ட லேபிள் +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=உங்கள் PDF இல் உள்ள சில உரைகளை ஒரே மாதிரியான PDF இல் 2 வெவ்வேறு மொழிகளில் நகல் எடுக்க விரும்பினால், நீங்கள் இந்த இரண்டாவது மொழியை இங்கே அமைக்க வேண்டும், எனவே உருவாக்கப்பட்ட PDF ஆனது ஒரே பக்கத்தில் 2 வெவ்வேறு மொழிகளைக் கொண்டிருக்கும், PDF ஐ உருவாக்கும் போது தேர்ந்தெடுக்கப்பட்ட மொழி மற்றும் இது ( சில PDF வார்ப்புருக்கள் மட்டுமே இதை ஆதரிக்கின்றன). ஒரு PDFக்கு 1 மொழிக்கு காலியாக இருங்கள். PDF_USE_A=இயல்புநிலை PDF வடிவத்திற்கு பதிலாக PDF/A வடிவத்துடன் PDF ஆவணங்களை உருவாக்கவும் FafaIconSocialNetworksDesc=FontAwesome ஐகானின் குறியீட்டை இங்கே உள்ளிடவும். FontAwesome என்றால் என்னவென்று உங்களுக்குத் தெரியாவிட்டால், FA-address-book என்ற பொதுவான மதிப்பைப் பயன்படுத்தலாம். @@ -2195,12 +2232,12 @@ MailToPartnership=கூட்டு AGENDA_EVENT_DEFAULT_STATUS=படிவத்திலிருந்து நிகழ்வை உருவாக்கும் போது இயல்புநிலை நிகழ்வு நிலை YouShouldDisablePHPFunctions=நீங்கள் PHP செயல்பாடுகளை முடக்க வேண்டும் IfCLINotRequiredYouShouldDisablePHPFunctions=தனிப்பயன் குறியீட்டில் கணினி கட்டளைகளை இயக்க வேண்டும் என்றால் தவிர, நீங்கள் PHP செயல்பாடுகளை முடக்க வேண்டும் -PHPFunctionsRequiredForCLI=ஷெல் நோக்கத்திற்காக (திட்டமிடப்பட்ட வேலை காப்புப்பிரதி அல்லது anitivurs நிரலை இயக்குவது போன்றவை), நீங்கள் PHP செயல்பாடுகளை வைத்திருக்க வேண்டும் +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=உங்கள் ரூட் கோப்பகத்தில் எழுதக்கூடிய கோப்புகள் அல்லது பொதுவான நிரல்களின் கோப்பகங்கள் எதுவும் காணப்படவில்லை (நல்லது) RecommendedValueIs=பரிந்துரைக்கப்படுகிறது: %s Recommended=பரிந்துரைக்கப்படுகிறது NotRecommended=பரிந்துரைக்கப்படவில்லை -ARestrictedPath=சில தடைசெய்யப்பட்ட பாதை +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=வெளிப்புற தொகுதிகள் புதுப்பிப்புகளைச் சரிபார்க்கவும் CheckForModuleUpdateHelp=புதிய பதிப்பு உள்ளதா என்பதைச் சரிபார்க்க, இந்தச் செயல் வெளிப்புற தொகுதிகளின் எடிட்டர்களுடன் இணைக்கப்படும். ModuleUpdateAvailable=ஒரு புதுப்பிப்பு கிடைக்கிறது @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=வெளிப்புற தொகுதிகள SwaggerDescriptionFile=Swagger API விளக்கக் கோப்பு (உதாரணமாக redoc உடன் பயன்படுத்த) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=நீங்கள் நிறுத்தப்பட்ட WS API ஐ இயக்கியுள்ளீர்கள். அதற்குப் பதிலாக நீங்கள் REST API ஐப் பயன்படுத்த வேண்டும். RandomlySelectedIfSeveral=பல படங்கள் இருந்தால் தோராயமாக தேர்ந்தெடுக்கப்படும் +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=conf கோப்பில் தரவுத்தள கடவுச்சொல் தெளிவற்றது DatabasePasswordNotObfuscated=conf கோப்பில் தரவுத்தள கடவுச்சொல் தெளிவற்றதாக இல்லை APIsAreNotEnabled=APIகள் தொகுதிகள் இயக்கப்படவில்லை @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/ta_IN/categories.lang b/htdocs/langs/ta_IN/categories.lang index 3edacdba443..629d4f9679a 100644 --- a/htdocs/langs/ta_IN/categories.lang +++ b/htdocs/langs/ta_IN/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=இந்த உறுப்பினர் எந்த க ContactHasNoCategory=இந்த தொடர்பு எந்த குறிச்சொற்களிலும்/வகைகளிலும் இல்லை ProjectHasNoCategory=இந்த திட்டம் எந்த குறிச்சொற்களிலும்/வகைகளிலும் இல்லை ClassifyInCategory=குறிச்சொல்/வகையில் சேர்க்கவும் +RemoveCategory=Remove category NotCategorized=குறி/வகை இல்லாமல் CategoryExistsAtSameLevel=இந்த ref உடன் இந்த வகை ஏற்கனவே உள்ளது ContentsVisibleByAllShort=அனைவருக்கும் தெரியும் உள்ளடக்கம் @@ -67,6 +68,7 @@ StockCategoriesShort=கிடங்கு குறிச்சொற்கள ThisCategoryHasNoItems=இந்த வகை எந்த உருப்படிகளையும் கொண்டிருக்கவில்லை. CategId=குறி/வகை ஐடி ParentCategory=பெற்றோர் குறிச்சொல்/வகை +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=பெற்றோர் குறிச்சொல்/வகையின் லேபிள் CatSupList=விற்பனையாளர்கள் குறிச்சொற்கள்/வகைகளின் பட்டியல் CatCusList=வாடிக்கையாளர்கள்/எதிர்பார்ப்பு குறிச்சொற்கள்/வகைகளின் பட்டியல் @@ -86,15 +88,18 @@ DeleteFromCat=குறிச்சொற்கள்/வகையிலிர ExtraFieldsCategories=நிரப்பு பண்புகள் CategoriesSetup=குறிச்சொற்கள்/வகைகள் அமைப்பு CategorieRecursiv=தானாக பெற்றோர் குறிச்சொல்/வகையுடன் இணைக்கவும் -CategorieRecursivHelp=விருப்பம் இயக்கத்தில் இருந்தால், ஒரு தயாரிப்பை துணைப்பிரிவில் சேர்க்கும்போது, தயாரிப்பு மூல வகையிலும் சேர்க்கப்படும். +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=பின்வரும் தயாரிப்பு/சேவையைச் சேர்க்கவும் AddCustomerIntoCategory=வாடிக்கையாளருக்கு வகையை ஒதுக்கவும் AddSupplierIntoCategory=சப்ளையருக்கு வகையை ஒதுக்கவும் +AssignCategoryTo=Assign category to ShowCategory=குறிச்சொல்/வகையைக் காட்டு ByDefaultInList=பட்டியலில் இயல்பாக ChooseCategory=வகையைத் தேர்ந்தெடுக்கவும் StocksCategoriesArea=கிடங்கு வகைகள் +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=நிகழ்வு வகைகள் WebsitePagesCategoriesArea=பக்கம்-கொள்கலன் வகைகள் KnowledgemanagementsCategoriesArea=KM கட்டுரை வகைகள் UseOrOperatorForCategories=வகைகளுக்கு 'OR' ஆபரேட்டரைப் பயன்படுத்தவும் +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/ta_IN/commercial.lang b/htdocs/langs/ta_IN/commercial.lang index 1772e8ef941..95f19a55264 100644 --- a/htdocs/langs/ta_IN/commercial.lang +++ b/htdocs/langs/ta_IN/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=வாய்ப்பு நிலை DraftPropals=வரைவு வணிக முன்மொழிவுகள் NoLimit=எல்லை இல்லாத ToOfferALinkForOnlineSignature=ஆன்லைன் கையொப்பத்திற்கான இணைப்பு -WelcomeOnOnlineSignaturePage=%s இலிருந்து வணிக முன்மொழிவுகளை ஏற்க பக்கத்திற்கு வரவேற்கிறோம் -ThisScreenAllowsYouToSignDocFrom=மேற்கோள்/வணிக முன்மொழிவை ஏற்கவும் கையொப்பமிடவும் அல்லது மறுக்கவும் இந்தத் திரை உங்களை அனுமதிக்கிறது -ThisIsInformationOnDocumentToSign=இது ஏற்றுக்கொள்ள அல்லது மறுப்பதற்கான ஆவணத்தில் உள்ள தகவல் +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=மேற்கோளின் கையொப்பம்/வணிக முன்மொழிவு %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=ஆன்லைனில் கையொப்பமிடுவதற்கான அம்சம் முடக்கப்பட்டது அல்லது அம்சம் இயக்கப்படுவதற்கு முன் உருவாக்கப்பட்ட ஆவணம் diff --git a/htdocs/langs/ta_IN/companies.lang b/htdocs/langs/ta_IN/companies.lang index 36b52b72329..7dd16e899b7 100644 --- a/htdocs/langs/ta_IN/companies.lang +++ b/htdocs/langs/ta_IN/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=மூன்றாம் தரப்பினரின் NatureOfContact=தொடர்பு இயல்பு Address=முகவரி State=மாநிலம்/மாகாணம் +StateId=State ID StateCode=மாநிலம்/ மாகாண குறியீடு StateShort=நிலை Region=பிராந்தியம் Region-State=பகுதி - மாநிலம் Country=நாடு CountryCode=நாட்டின் குறியீடு -CountryId=நாட்டின் ஐடி +CountryId=Country ID Phone=தொலைபேசி PhoneShort=தொலைபேசி Skype=ஸ்கைப் @@ -105,6 +106,7 @@ WrongSupplierCode=விற்பனையாளர் குறியீடு CustomerCodeModel=வாடிக்கையாளர் குறியீடு மாதிரி SupplierCodeModel=விற்பனையாளர் குறியீடு மாதிரி Gencod=பார்கோடு +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=பேராசிரியர் ஐடி 1 ProfId2Short=பேராசிரியர் ஐடி 2 @@ -162,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=பேராசிரியர் ஐடி 1 (ஆர்.யு.டி.) ProfId2CO=- @@ -442,7 +444,7 @@ AddAddress=முகவரியைச் சேர்க்கவும் SupplierCategory=விற்பனையாளர் வகை JuridicalStatus200=சுதந்திரமான DeleteFile=கோப்பை அழிக்கவும் -ConfirmDeleteFile=இந்தக் கோப்பை நிச்சயமாக நீக்க விரும்புகிறீர்களா? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=விற்பனை பிரதிநிதிக்கு ஒதுக்கப்பட்டது Organization=அமைப்பு FiscalYearInformation=நிதியாண்டு diff --git a/htdocs/langs/ta_IN/compta.lang b/htdocs/langs/ta_IN/compta.lang index f776488fa97..d94d167c379 100644 --- a/htdocs/langs/ta_IN/compta.lang +++ b/htdocs/langs/ta_IN/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=இருப்பு (முன்) Balance=இருப்பு Debit=பற்று Credit=கடன் +AccountingDebit=Debit +AccountingCredit=Credit Piece=கணக்கியல் ஆவணம். AmountHTVATRealReceived=நிகர சேகரிக்கப்பட்டது AmountHTVATRealPaid=நிகரமாக செலுத்தப்பட்டது @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=ஒரு தயாரிப TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=ஒரு விற்பனை வரி விகிதத்தில் வசூலிக்கப்படும் விற்றுமுதல் அறிக்கை கிடைக்கவில்லை. இந்த அறிக்கை விற்றுமுதல் விலைப்பட்டியலுக்கு மட்டுமே கிடைக்கும். CalculationMode=கணக்கீட்டு முறை AccountancyJournal=கணக்கியல் குறியீடு இதழ் -ACCOUNTING_VAT_SOLD_ACCOUNT=விற்பனையின் மீதான VATக்கான இயல்புநிலை கணக்கியல் கணக்கு (VAT அகராதி அமைப்பில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) -ACCOUNTING_VAT_BUY_ACCOUNT=வாங்குதல்களின் மீதான VATக்கான இயல்புநிலை கணக்கியல் கணக்கு (VAT அகராதி அமைப்பில் வரையறுக்கப்படாவிட்டால் பயன்படுத்தப்படும்) -ACCOUNTING_VAT_PAY_ACCOUNT=VAT செலுத்துவதற்கான இயல்புநிலை கணக்கு கணக்கு -ACCOUNTING_ACCOUNT_CUSTOMER=வாடிக்கையாளர் மூன்றாம் தரப்பினருக்குப் பயன்படுத்தப்படும் கணக்கு கணக்கு +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=மூன்றாம் தரப்பு அட்டையில் வரையறுக்கப்பட்ட பிரத்யேக கணக்கியல் கணக்கு சப்லெட்ஜர் கணக்கியலுக்கு மட்டுமே பயன்படுத்தப்படும். மூன்றாம் தரப்பினரின் பிரத்யேக வாடிக்கையாளர் கணக்கியல் கணக்கு வரையறுக்கப்படவில்லை என்றால், இது பொதுப் பேரேடுக்காகவும், சப்லெட்ஜர் கணக்கியலின் இயல்புநிலை மதிப்பாகவும் பயன்படுத்தப்படும். -ACCOUNTING_ACCOUNT_SUPPLIER=விற்பனையாளர் மூன்றாம் தரப்பினருக்குப் பயன்படுத்தப்படும் கணக்கியல் கணக்கு +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=மூன்றாம் தரப்பு அட்டையில் வரையறுக்கப்பட்ட பிரத்யேக கணக்கு கணக்கு சப்லெட்ஜர் கணக்கியலுக்கு மட்டுமே பயன்படுத்தப்படும். மூன்றாம் தரப்பினரின் பிரத்யேக விற்பனையாளர் கணக்கியல் கணக்கு வரையறுக்கப்படாவிட்டால், பொதுப் பேரேடுக்காகவும், சப்லெட்ஜர் கணக்கின் இயல்புநிலை மதிப்பாகவும் இது பயன்படுத்தப்படும். ConfirmCloneTax=சமூக/நிதி வரியின் குளோனை உறுதிப்படுத்தவும் ConfirmCloneVAT=VAT அறிவிப்பின் குளோனை உறுதிப்படுத்தவும் @@ -300,3 +302,4 @@ InvoiceToPay15Days=செலுத்த (15 முதல் 30 நாட்க InvoiceToPay30Days=செலுத்த (> 30 நாட்கள்) ConfirmPreselectAccount=கணக்கியல் குறியீட்டை முன்கூட்டியே தேர்ந்தெடுக்கவும் ConfirmPreselectAccountQuestion=இந்தக் கணக்கியல் குறியீட்டைக் கொண்டு தேர்ந்தெடுக்கப்பட்ட %s வரிகளை நிச்சயமாகத் தேர்ந்தெடுக்க விரும்புகிறீர்களா? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/ta_IN/contracts.lang b/htdocs/langs/ta_IN/contracts.lang index 0cd88ad5820..0d9e9c1502a 100644 --- a/htdocs/langs/ta_IN/contracts.lang +++ b/htdocs/langs/ta_IN/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=ஒப்பந்தங்கள்/சந்தாக ContractsAndLine=ஒப்பந்தங்கள் மற்றும் ஒப்பந்தங்களின் வரி Contract=ஒப்பந்த ContractLine=ஒப்பந்த வரி +ContractLines=Contract lines Closing=மூடுவது NoContracts=ஒப்பந்தங்கள் இல்லை MenuServices=சேவைகள் @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=இந்த ஒப்பந்த வரியை ந MoveToAnotherContract=சேவையை மற்றொரு ஒப்பந்தத்திற்கு மாற்றவும். ConfirmMoveToAnotherContract=நான் புதிய இலக்கு ஒப்பந்தத்தைத் தேர்ந்தெடுத்து, இந்தச் சேவையை இந்த ஒப்பந்தத்திற்கு நகர்த்த விரும்புவதை உறுதிப்படுத்துகிறேன். ConfirmMoveToAnotherContractQuestion=தற்போதுள்ள எந்த ஒப்பந்தத்தில் (அதே மூன்றாம் தரப்பினரின்) இந்தச் சேவையை மாற்ற விரும்புகிறீர்கள் என்பதைத் தேர்வுசெய்யவும்? -PaymentRenewContractId=ஒப்பந்த வரியை புதுப்பிக்கவும் (எண் %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=காலாவதி தேதி NoExpiredServices=காலாவதியான செயலில் உள்ள சேவைகள் இல்லை ListOfServicesToExpireWithDuration=%s நாட்களில் காலாவதியாகும் சேவைகளின் பட்டியல் @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=வாடிக்கையாளர HideClosedServiceByDefault=மூடிய சேவைகளை இயல்பாக மறை ShowClosedServices=மூடிய சேவைகளைக் காட்டு HideClosedServices=மூடிய சேவைகளை மறை +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/ta_IN/cron.lang b/htdocs/langs/ta_IN/cron.lang index 29aab0a040a..167c5788a26 100644 --- a/htdocs/langs/ta_IN/cron.lang +++ b/htdocs/langs/ta_IN/cron.lang @@ -26,7 +26,7 @@ CronCommand=கட்டளை CronList=திட்டமிடப்பட்ட வேலைகள் CronDelete=திட்டமிடப்பட்ட வேலைகளை நீக்கவும் CronConfirmDelete=இந்த திட்டமிடப்பட்ட வேலைகளை நிச்சயமாக நீக்க விரும்புகிறீர்களா? -CronExecute=திட்டமிடப்பட்ட வேலையைத் தொடங்கவும் +CronExecute=Launch now CronConfirmExecute=இந்த திட்டமிடப்பட்ட வேலைகளை இப்போது நிச்சயமாகச் செய்ய விரும்புகிறீர்களா? CronInfo=திட்டமிடப்பட்ட வேலை தொகுதி தானாக செயல்படுத்த வேலைகளை திட்டமிட அனுமதிக்கிறது. வேலைகளை கைமுறையாகவும் தொடங்கலாம். CronTask=வேலை @@ -58,7 +58,7 @@ CronNote=கருத்து CronFieldMandatory=புலங்கள் %s கட்டாயம் CronErrEndDateStartDt=இறுதித் தேதி தொடக்கத் தேதிக்கு முன் இருக்கக்கூடாது StatusAtInstall=தொகுதி நிறுவலின் நிலை -CronStatusActiveBtn=அட்டவணை +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=முடக்கு CronTaskInactive=இந்த வேலை முடக்கப்பட்டுள்ளது (திட்டமிடப்படவில்லை) CronId=ஐடி @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=திட்டமிடப்பட்ட வ JobDisabled=வேலை முடக்கப்பட்டது MakeLocalDatabaseDumpShort=உள்ளூர் தரவுத்தள காப்புப்பிரதி MakeLocalDatabaseDump=உள்ளூர் தரவுத்தள டம்ப்பை உருவாக்கவும். அளவுருக்கள்: சுருக்கம் ('gz' அல்லது 'bz' அல்லது 'இல்லை'), காப்புப் பிரதி வகை ('mysql', 'pgsql', 'auto'), 1, 'தானியங்கு' அல்லது உருவாக்க வேண்டிய கோப்பு பெயர், வைத்திருக்க வேண்டிய காப்பு கோப்புகளின் எண்ணிக்கை +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=கவனம், செயல்திறன் நோக்கத்திற்காக, செயல்படுத்தப்பட்ட வேலைகளை நிறைவேற்றுவதற்கான அடுத்த தேதி எதுவாக இருந்தாலும், உங்கள் வேலைகள் இயக்கப்படுவதற்கு முன், அதிகபட்சம் %s மணிநேரம் வரை தாமதமாகலாம். DATAPOLICYJob=டேட்டா கிளீனர் மற்றும் அநாமதேயர் JobXMustBeEnabled=வேலை %s இயக்கப்பட்டிருக்க வேண்டும் +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=கடைசியாக செயல்படுத்தப்பட்ட திட்டமிடப்பட்ட வேலை NextScheduledJobExecute=அடுத்த திட்டமிடப்பட்ட வேலை NumberScheduledJobError=திட்டமிடப்பட்ட வேலைகளின் எண்ணிக்கை பிழை +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/ta_IN/datapolicy.lang b/htdocs/langs/ta_IN/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ta_IN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ta_IN/ecm.lang b/htdocs/langs/ta_IN/ecm.lang index e9c049ec9f0..32a59c15dbd 100644 --- a/htdocs/langs/ta_IN/ecm.lang +++ b/htdocs/langs/ta_IN/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=கையேடு அடைவு ECMSectionAuto=தானியங்கி அடைவு ECMSectionsManual=கையேடு மரம் ECMSectionsAuto=தானியங்கி மரம் +ECMSectionsMedias=Medias tree ECMSections=அடைவுகள் ECMRoot=ஈசிஎம் ரூட் ECMNewSection=புதிய அடைவு @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=துணை அடைவுகளில் உள்ள ECMCreationUser=படைப்பாளி ECMArea=DMS/ECM பகுதி ECMAreaDesc=DMS/ECM (ஆவண மேலாண்மை அமைப்பு / மின்னணு உள்ளடக்க மேலாண்மை) பகுதியானது Dolibarr இல் அனைத்து வகையான ஆவணங்களையும் சேமிக்கவும், பகிரவும் மற்றும் விரைவாக தேடவும் உங்களை அனுமதிக்கிறது. -ECMAreaDesc2=* ஒரு உறுப்பின் அட்டையிலிருந்து ஆவணங்களைச் சேர்க்கும்போது தானியங்கி அடைவுகள் தானாக நிரப்பப்படும்.
    * ஒரு குறிப்பிட்ட உறுப்புடன் இணைக்கப்படாத ஆவணங்களைச் சேமிக்க கையேடு கோப்பகங்களைப் பயன்படுத்தலாம். +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved= %s கோப்பகம் நீக்கப்பட்டது. ECMSectionWasCreated= %s கோப்பகம் உருவாக்கப்பட்டது. ECMSearchByKeywords=முக்கிய வார்த்தைகள் மூலம் தேடுங்கள் diff --git a/htdocs/langs/ta_IN/errors.lang b/htdocs/langs/ta_IN/errors.lang index 04fa1d14975..1287e0d82bc 100644 --- a/htdocs/langs/ta_IN/errors.lang +++ b/htdocs/langs/ta_IN/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=மின்னஞ்சல் %s தவறாகத் தெ ErrorBadUrl=Url %s தவறானது ErrorBadValueForParamNotAString=உங்கள் அளவுருவுக்கு மோசமான மதிப்பு. மொழிபெயர்ப்பு இல்லாதபோது இது பொதுவாக இணைக்கப்படும். ErrorRefAlreadyExists=குறிப்பு %s ஏற்கனவே உள்ளது. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=உள்நுழைவு %s ஏற்கனவே உள்ளது. ErrorGroupAlreadyExists=குழு %s ஏற்கனவே உள்ளது. ErrorEmailAlreadyExists=மின்னஞ்சல் %s ஏற்கனவே உள்ளது. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists= %s என்ற பெயரில் ம ErrorPartialFile=கோப்பு சேவையகத்தால் முழுமையாகப் பெறப்படவில்லை. ErrorNoTmpDir=தற்காலிக டைரக்டி %s இல்லை. ErrorUploadBlockedByAddon=PHP/Apache செருகுநிரலால் பதிவேற்றம் தடுக்கப்பட்டது. -ErrorFileSizeTooLarge=கோப்பு அளவு மிகவும் பெரியது. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=புலம் %s மிக நீளமாக உள்ளது. ErrorSizeTooLongForIntType=முழு எண்ணாக அளவு மிக நீளமானது (அதிகபட்சம் %s இலக்கங்கள்) ErrorSizeTooLongForVarcharType=சரம் வகைக்கு மிக நீளமான அளவு (%s எழுத்துகள் அதிகபட்சம்) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=இந்த அம்சம் செயல்ப ErrorPasswordsMustMatch=தட்டச்சு செய்யப்பட்ட இரண்டு கடவுச்சொற்களும் ஒன்றுக்கொன்று பொருந்த வேண்டும் ErrorContactEMail=தொழில்நுட்ப பிழை ஏற்பட்டது. தயவு செய்து, பின்வரும் மின்னஞ்சலுக்கு நிர்வாகியைத் தொடர்புகொள்ளவும் %s மற்றும் பிழைக் குறியீட்டை %s a009a4b7 ErrorWrongValueForField=புலம் %s : ' %s a09a4b739f49fz0 a09a4b739f17f8365837fz0 %s a09a4b739f490 a09a4b739f490 a09a4b739f170a4b739f170a4b739f170a4b739f170a4b739f170a4b739f170a4b739f170a4b739f170a4b730 +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=களம் %s : ' %s ' மதிப்பின் துறையில் %s காணப்படும் அல்ல %s ErrorFieldRefNotIn=புலம் %s : ' %s a09a4b739f17f8365873906878887878787887 ErrorsOnXLines=%s பிழைகள் கண்டறியப்பட்டன @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=முதலில் உங்கள ErrorFailedToFindEmailTemplate=%s என்ற குறியீட்டுப் பெயருடன் டெம்ப்ளேட்டைக் கண்டறிய முடியவில்லை ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=சேவையில் காலம் வரையறுக்கப்படவில்லை. மணிநேர விலையை கணக்கிட வழி இல்லை. ErrorActionCommPropertyUserowneridNotDefined=பயனரின் உரிமையாளர் தேவை -ErrorActionCommBadType=தேர்ந்தெடுக்கப்பட்ட நிகழ்வு வகை (ஐடி: %n, குறியீடு: %s) நிகழ்வு வகை அகராதியில் இல்லை +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=பதிப்பு சரிபார்ப்பு தோல்வி ErrorWrongFileName=கோப்பின் பெயரில் __சம்திங்__ இருக்கக்கூடாது ErrorNotInDictionaryPaymentConditions=கட்டண விதிமுறைகள் அகராதியில் இல்லை, தயவுசெய்து மாற்றவும். @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s ஒரு வரைவு அல்ல ErrorExecIdFailed="id" கட்டளையை இயக்க முடியவில்லை ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=உங்கள் PHP அளவுரு upload_max_filesize (%s) PHP அளவுரு post_max_size (%s) ஐ விட அதிகமாக உள்ளது. இது ஒரு நிலையான அமைப்பு அல்ல. WarningPasswordSetWithNoAccount=இந்த உறுப்பினருக்கு கடவுச்சொல் அமைக்கப்பட்டது. இருப்பினும், பயனர் கணக்கு எதுவும் உருவாக்கப்படவில்லை. எனவே இந்த கடவுச்சொல் சேமிக்கப்பட்டுள்ளது ஆனால் Dolibarr இல் உள்நுழைய பயன்படுத்த முடியாது. இது ஒரு வெளிப்புற தொகுதி/இடைமுகத்தால் பயன்படுத்தப்படலாம், ஆனால் ஒரு உறுப்பினருக்கான உள்நுழைவு அல்லது கடவுச்சொல்லை நீங்கள் வரையறுக்கத் தேவையில்லை என்றால், உறுப்பினர் தொகுதி அமைப்பிலிருந்து "ஒவ்வொரு உறுப்பினருக்கும் ஒரு உள்நுழைவை நிர்வகி" விருப்பத்தை நீங்கள் முடக்கலாம். நீங்கள் உள்நுழைவை நிர்வகிக்க வேண்டும் ஆனால் கடவுச்சொல் எதுவும் தேவையில்லை என்றால், இந்த எச்சரிக்கையைத் தவிர்க்க இந்தப் புலத்தை காலியாக வைத்திருக்கலாம். குறிப்பு: உறுப்பினர் ஒரு பயனருடன் இணைக்கப்பட்டிருந்தால், மின்னஞ்சலை உள்நுழைவாகவும் பயன்படுத்தலாம். -WarningMandatorySetupNotComplete=கட்டாய அளவுருக்களை அமைக்க இங்கே கிளிக் செய்யவும் +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=உங்கள் தொகுதிகள் மற்றும் பயன்பாடுகளை இயக்க இங்கே கிளிக் செய்யவும் WarningSafeModeOnCheckExecDir=எச்சரிக்கை, PHP விருப்பம் safe_mode இயக்கத்தில் உள்ளது, எனவே கட்டளையை php அளவுரு safe_mode_exec_dir a09a4b739f 17f8z39f 17f8z390 மூலம் அறிவிக்கப்பட்ட கோப்பகத்தில் சேமிக்க வேண்டும். WarningBookmarkAlreadyExists=இந்த தலைப்பு அல்லது இந்த இலக்குடன் (URL) புக்மார்க் ஏற்கனவே உள்ளது. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=எச்சரிக்கை, நீங்கள் WarningAvailableOnlyForHTTPSServers=HTTPS பாதுகாப்பான இணைப்பைப் பயன்படுத்தினால் மட்டுமே கிடைக்கும். WarningModuleXDisabledSoYouMayMissEventHere=தொகுதி %s இயக்கப்படவில்லை. எனவே நீங்கள் இங்கு பல நிகழ்வுகளை இழக்க நேரிடலாம். WarningPaypalPaymentNotCompatibleWithStrict='ஸ்டிரிக்ட்' மதிப்பு, ஆன்லைன் கட்டண அம்சங்களைச் சரியாகச் செயல்படாமல் செய்கிறது. அதற்கு பதிலாக 'லாக்ஸ்' பயன்படுத்தவும். +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = மதிப்பு செல்லாது diff --git a/htdocs/langs/ta_IN/eventorganization.lang b/htdocs/langs/ta_IN/eventorganization.lang index a8e9c41e0a9..875225c0600 100644 --- a/htdocs/langs/ta_IN/eventorganization.lang +++ b/htdocs/langs/ta_IN/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=நிகழ்வு அமைப்பு Settings=அமைப்புகள் EventOrganizationSetupPage = நிகழ்வு அமைப்பு அமைவு பக்கம் EVENTORGANIZATION_TASK_LABEL = திட்டம் சரிபார்க்கப்படும் போது தானாக உருவாக்க பணிகளின் லேபிள் -EVENTORGANIZATION_TASK_LABELTooltip = நீங்கள் ஒரு ஒழுங்கமைக்கப்பட்ட நிகழ்வு மதிப்பிட போது, சில காரியங்கள் தானாக உதாரணமாக திட்டம்

    உள்ள உருவாக்க முடியும்: கான்பரன்ஸ்
    அனுப்புக கால்


    பூத் அழைப்பு பெறவும்
    அனுப்புக பங்கேற்பாளர்கள் நிகழ்வுகளுக்கு திறந்த சந்தாக்கள்
    மாநாடுகள் அழைப்பு பெறவும் பூத் க்கான அனுப்பவும் கால் நிகழ்வை பேச்சாளர்களுக்கு நினைவூட்டு
    நிகழ்வை நினைவூட்டல் பூத் ஹோஸ்டருக்கு அனுப்பு
    பங்கேற்பாளர்களுக்கு நிகழ்வை நினைவூட்டு அனுப்பு +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = மூன்றாம் தரப்பினருடன் சேர்ப்பதற்கான வகை, மாநாட்டை யாராவது பரிந்துரைக்கும் போது தானாகவே உருவாக்கப்படும் EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = மூன்றாம் தரப்பினரிடம் சேர்ப்பதற்கான வகை, ஒரு சாவடியைப் பரிந்துரைக்கும் போது தானாகவே உருவாக்கப்படும் EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = மாநாட்டின் பரிந்துரையைப் பெற்ற பிறகு அனுப்ப வேண்டிய மின்னஞ்சலின் டெம்ப்ளேட். @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= மாநாடு அல்லது சாவடி +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = ஒரு நிகழ்வின் அமைப்பை நிர்வகிக்கவும் ConferenceOrBooth = மாநாடு அல்லது சாவடி ConferenceOrBoothTab = மாநாடு அல்லது சாவடி AmountPaid = பணம் செலுத்தப்பட்டது DateOfRegistration = பதிவு செய்யப்பட்ட தேதி ConferenceOrBoothAttendee = மாநாடு அல்லது பூத் பங்கேற்பாளர் +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = இங்கே, நீங்கள் ஒர EvntOrgRegistrationConfHelpMessage = நிகழ்வின் போது உயிரூட்ட ஒரு புதிய மாநாட்டை இங்கே பரிந்துரைக்கலாம். EvntOrgRegistrationBoothHelpMessage = இங்கே, நிகழ்வின் போது ஒரு சாவடிக்கு விண்ணப்பிக்கலாம். ListOfSuggestedConferences = பரிந்துரைக்கப்பட்ட மாநாடுகளின் பட்டியல் -ListOfSuggestedBooths = பரிந்துரைக்கப்பட்ட சாவடிகளின் பட்டியல் -ListOfConferencesOrBooths=மாநாடுகள் அல்லது நிகழ்வுத் திட்டத்தின் சாவடிகளின் பட்டியல் +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = புதிய மாநாட்டை பரிந்துரைக்கவும் SuggestBooth = ஒரு சாவடியை பரிந்துரைக்கவும் ViewAndVote = பரிந்துரைக்கப்பட்ட நிகழ்வுகளைப் பார்த்து வாக்களியுங்கள் PublicAttendeeSubscriptionGlobalPage = நிகழ்வில் பதிவு செய்வதற்கான பொது இணைப்பு PublicAttendeeSubscriptionPage = இந்த நிகழ்விற்கான பதிவுக்கான பொது இணைப்பு மட்டும் MissingOrBadSecureKey = பாதுகாப்பு விசை தவறானது அல்லது காணவில்லை -EvntOrgWelcomeMessage = நிகழ்வில் புதிய பங்கேற்பாளராகப் பதிவுசெய்ய இந்தப் படிவம் உங்களை அனுமதிக்கிறது : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = இந்த மாநாடு %s இல் தொடங்கி %s இல் முடிவடைகிறது. ConferenceAttendeeFee = நிகழ்விற்கான மாநாட்டில் பங்கேற்பாளர் கட்டணம்: '%s' %s முதல் %s வரை. BoothLocationFee = நிகழ்விற்கான பூத் இடம் : '%s' %s முதல் %s வரை @@ -129,7 +133,7 @@ LabelOfconference=மாநாட்டு லேபிள் ConferenceIsNotConfirmed=பதிவு கிடைக்கவில்லை, மாநாடு இன்னும் உறுதிப்படுத்தப்படவில்லை DateMustBeBeforeThan=%s கண்டிப்பாக %s DateMustBeAfterThan=%s கண்டிப்பாக %s ஆக இருக்க வேண்டும் - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=பதிவு OrganizationEventConfRequestWasReceived=மாநாட்டிற்கான உங்கள் ஆலோசனை பெறப்பட்டது OrganizationEventBoothRequestWasReceived=சாவடிக்கான உங்கள் கோரிக்கை பெறப்பட்டது @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=உங்கள் நிக OrganizationEventBulkMailToAttendees=நிகழ்வில் பங்கேற்பாளராக நீங்கள் பங்கேற்பதைப் பற்றிய நினைவூட்டல் இது OrganizationEventBulkMailToSpeakers=ஒரு பேச்சாளராக நிகழ்வில் நீங்கள் பங்கேற்பதற்கான நினைவூட்டல் இது OrganizationEventLinkToThirdParty=மூன்றாம் தரப்பினருக்கான இணைப்பு (வாடிக்கையாளர், சப்ளையர் அல்லது பங்குதாரர்) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=ஒரு சாவடிக்கான விண்ணப்பம் NewSuggestionOfConference=ஒரு மாநாட்டிற்கான விண்ணப்பம் @@ -153,7 +158,7 @@ VoteOk = உங்கள் வாக்கு ஏற்றுக்கொள் AlreadyVoted = இந்த நிகழ்வுக்கு நீங்கள் ஏற்கனவே வாக்களித்துள்ளீர்கள். VoteError = வாக்களிப்பின் போது பிழை ஏற்பட்டது, மீண்டும் முயற்சிக்கவும். -SubscriptionOk = உங்கள் பதிவு சரிபார்க்கப்பட்டது +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = நிகழ்வுக்கான உங்கள் சந்தாவை உறுதிப்படுத்துதல் Attendee = பங்கேற்பாளர் PaymentConferenceAttendee = மாநாட்டில் பங்கேற்பாளர் கட்டணம் @@ -161,7 +166,9 @@ PaymentBoothLocation = சாவடி இடம் கட்டணம் DeleteConferenceOrBoothAttendee=பங்கேற்பாளரை அகற்று RegistrationAndPaymentWereAlreadyRecorder= %s என்ற மின்னஞ்சலுக்கான பதிவும் கட்டணமும் ஏற்கனவே பதிவு செய்யப்பட்டுள்ளன. EmailAttendee=பங்கேற்பாளர் மின்னஞ்சல் +EmailCompany=Company email EmailCompanyForInvoice=நிறுவனத்தின் மின்னஞ்சல் (விலைப்பட்டியலுக்கு, பங்கேற்பாளர் மின்னஞ்சலில் இருந்து வேறுபட்டால்) ErrorSeveralCompaniesWithEmailContactUs=இந்த மின்னஞ்சலைக் கொண்ட பல நிறுவனங்கள் கண்டறியப்பட்டதால், உங்கள் பதிவைத் தானாகச் சரிபார்க்க முடியாது. கைமுறை சரிபார்ப்புக்கு எங்களை %s இல் தொடர்பு கொள்ளவும் ErrorSeveralCompaniesWithNameContactUs=இந்தப் பெயரைக் கொண்ட பல நிறுவனங்கள் கண்டறியப்பட்டதால், உங்கள் பதிவைத் தானாகச் சரிபார்க்க முடியாது. கைமுறை சரிபார்ப்புக்கு எங்களை %s இல் தொடர்பு கொள்ளவும் NoPublicActionsAllowedForThisEvent=இந்த நிகழ்விற்கான பொது நடவடிக்கைகள் எதுவும் பொது மக்களுக்குத் திறக்கப்படவில்லை +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/ta_IN/externalsite.lang b/htdocs/langs/ta_IN/externalsite.lang deleted file mode 100644 index cc877ee68b4..00000000000 --- a/htdocs/langs/ta_IN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=வெளிப்புற இணையதளத்திற்கான இணைப்பை அமைக்கவும் -ExternalSiteURL=HTML iframe உள்ளடக்கத்தின் வெளிப்புற தள URL -ExternalSiteModuleNotComplete=ExternalSite தொகுதி சரியாக உள்ளமைக்கப்படவில்லை. -ExampleMyMenuEntry=எனது மெனு பதிவு diff --git a/htdocs/langs/ta_IN/ftp.lang b/htdocs/langs/ta_IN/ftp.lang deleted file mode 100644 index e05341534fd..00000000000 --- a/htdocs/langs/ta_IN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP அல்லது SFTP கிளையண்ட் தொகுதி அமைவு -NewFTPClient=புதிய FTP/FTPS இணைப்பு அமைப்பு -FTPArea=FTP/FTPS பகுதி -FTPAreaDesc=இந்தத் திரையானது FTP மற்றும் SFTP சேவையகத்தின் காட்சியைக் காட்டுகிறது. -SetupOfFTPClientModuleNotComplete=FTP அல்லது SFTP கிளையன்ட் தொகுதியின் அமைவு முழுமையடையவில்லை -FTPFeatureNotSupportedByYourPHP=உங்கள் PHP FTP அல்லது SFTP செயல்பாடுகளை ஆதரிக்காது -FailedToConnectToFTPServer=சேவையகத்துடன் இணைக்க முடியவில்லை (சர்வர் %s, port %s) -FailedToConnectToFTPServerWithCredentials=வரையறுக்கப்பட்ட உள்நுழைவு/கடவுச்சொல் மூலம் சர்வரில் உள்நுழைவதில் தோல்வி -FTPFailedToRemoveFile= %s கோப்பை அகற்ற முடியவில்லை. -FTPFailedToRemoveDir=கோப்பகத்தை அகற்றுவதில் தோல்வி -FTPPassiveMode=செயலற்ற பயன்முறை -ChooseAFTPEntryIntoMenu=மெனுவிலிருந்து FTP/SFTP தளத்தைத் தேர்வு செய்யவும்... -FailedToGetFile=%s கோப்புகளைப் பெறுவதில் தோல்வி diff --git a/htdocs/langs/ta_IN/holiday.lang b/htdocs/langs/ta_IN/holiday.lang index cb88a2d1041..11438b9527c 100644 --- a/htdocs/langs/ta_IN/holiday.lang +++ b/htdocs/langs/ta_IN/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=கிளம்பு +Holidays=Leaves +Holiday=Leave CPTitreMenu=கிளம்பு MenuReportMonth=மாதாந்திர அறிக்கை MenuAddCP=புதிய விடுப்பு கோரிக்கை +MenuCollectiveAddCP=New collective leave request NotActiveModCP=இந்தப் பக்கத்தைப் பார்க்க, நீங்கள் தொகுதி வெளியேறு என்பதை இயக்க வேண்டும். AddCP=விடுப்புக் கோரிக்கையை விடுங்கள் DateDebCP=தொடக்க தேதி @@ -56,6 +58,7 @@ ConfirmDeleteCP=இந்த விடுப்பு கோரிக்கை ErrorCantDeleteCP=இந்த விடுப்பு கோரிக்கையை நீக்க உங்களுக்கு உரிமை இல்லை. CantCreateCP=விடுப்பு கோரிக்கைகளை வைக்க உங்களுக்கு உரிமை இல்லை. InvalidValidatorCP=உங்கள் விடுப்புக் கோரிக்கைக்கு நீங்கள் அனுமதியளிப்பவரைத் தேர்ந்தெடுக்க வேண்டும். +InvalidValidator=The user chosen isn't an approver. NoDateDebut=தொடக்கத் தேதியைத் தேர்ந்தெடுக்க வேண்டும். NoDateFin=நீங்கள் முடிவுத் தேதியைத் தேர்ந்தெடுக்க வேண்டும். ErrorDureeCP=உங்கள் விடுப்பு கோரிக்கையில் வேலை நாள் இல்லை. @@ -79,6 +82,8 @@ MotifCP=காரணம் UserCP=பயனர் ErrorAddEventToUserCP=விதிவிலக்கான விடுப்பைச் சேர்க்கும்போது பிழை ஏற்பட்டது. AddEventToUserOkCP=விதிவிலக்கான விடுப்புச் சேர்க்கை முடிந்தது. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=மாற்ற பதிவுகளைப் பார்க்கவும் LogCP="பேலன்ஸ் ஆஃப் லீவ்" க்கு செய்யப்பட்ட அனைத்து புதுப்பிப்புகளின் பதிவு ActionByCP=மூலம் புதுப்பிக்கப்பட்டது @@ -86,6 +91,13 @@ UserUpdateCP=க்கு புதுப்பிக்கப்பட்டத PrevSoldeCP=முந்தைய இருப்பு NewSoldeCP=புதிய சமநிலையை alreadyCPexist=இந்தக் காலக்கட்டத்தில் ஏற்கனவே விடுப்புக் கோரிக்கை விடுக்கப்பட்டுள்ளது. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=விடுப்புக் கோரிக்கையின் தொடக்க நாள் LastDayOfHoliday=விடுப்புக் கோரிக்கையின் முடிவு நாள் BoxTitleLastLeaveRequests=சமீபத்திய %s மாற்றியமைக்கப்பட்ட விடுப்புக் கோரிக்கைகள் @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s என்பது பொதுவாக வேலை BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=விடுப்பு கோரிக்கை %s வரைவாக இருக்க வேண்டும், ரத்து செய்யப்பட வேண்டும் அல்லது நீக்கப்பட மறுக்கப்பட வேண்டும் +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/ta_IN/hrm.lang b/htdocs/langs/ta_IN/hrm.lang index 0a31f5cc191..75d86e6469a 100644 --- a/htdocs/langs/ta_IN/hrm.lang +++ b/htdocs/langs/ta_IN/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=திறந்த நிறுவனம் CloseEtablishment=மூடு ஸ்தாபனம் # Dictionary DictionaryPublicHolidays=விடுப்பு - பொது விடுமுறை நாட்கள் -DictionaryDepartment=HRM - துறை பட்டியல் +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - வேலை நிலைகள் # Module Employees=பணியாளர்கள் @@ -70,12 +70,22 @@ RequiredSkills=இந்த வேலைக்கு தேவையான த UserRank=பயனர் தரவரிசை SkillList=திறன் பட்டியல் SaveRank=தரத்தை சேமிக்கவும் -knowHow=எப்படி தெரியும் -HowToBe=எப்படி இருக்க வேண்டும் -knowledge=அறிவு +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=கைவிடுதல் கருத்து DateLastEval=கடைசி மதிப்பீடு தேதி NoEval=இந்த பணியாளருக்கு எந்த மதிப்பீடும் செய்யப்படவில்லை HowManyUserWithThisMaxNote=இந்த தரவரிசையில் உள்ள பயனர்களின் எண்ணிக்கை HighestRank=மிக உயர்ந்த பதவி SkillComparison=திறன் ஒப்பீடு +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/ta_IN/install.lang b/htdocs/langs/ta_IN/install.lang index 5f8e39cf4fa..682b5cd7503 100644 --- a/htdocs/langs/ta_IN/install.lang +++ b/htdocs/langs/ta_IN/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=உள்ளமைவு கோப்பு %s ConfFileIsWritable=உள்ளமைவு கோப்பு %s எழுதக்கூடியது. ConfFileMustBeAFileNotADir=உள்ளமைவு கோப்பு %s ஒரு கோப்பாக இருக்க வேண்டும், கோப்பகமாக இருக்கக்கூடாது. ConfFileReload=உள்ளமைவு கோப்பிலிருந்து அளவுருக்களை மீண்டும் ஏற்றுகிறது. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=இந்த PHP ஆனது POST மற்றும் GET ஆகிய மாறிகளை ஆதரிக்கிறது. PHPSupportPOSTGETKo=உங்கள் PHP அமைப்பு POST மற்றும்/அல்லது GET மாறிகளை ஆதரிக்காது. php.ini இல் variables_order அளவுருவைச் சரிபார்க்கவும். PHPSupportSessions=இந்த PHP அமர்வுகளை ஆதரிக்கிறது. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter='%s' என்ற அளவுருவிற்க ErrorFailedToCreateDatabase='%s' தரவுத்தளத்தை உருவாக்குவதில் தோல்வி. ErrorFailedToConnectToDatabase='%s' தரவுத்தளத்துடன் இணைக்க முடியவில்லை. ErrorDatabaseVersionTooLow=தரவுத்தள பதிப்பு (%s) மிகவும் பழையது. %s அல்லது அதற்கு மேற்பட்ட பதிப்பு தேவை. -ErrorPHPVersionTooLow=PHP பதிப்பு மிகவும் பழையது. பதிப்பு %s தேவை. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=சேவையகத்திற்கான இணைப்பு வெற்றிகரமாக உள்ளது ஆனால் தரவுத்தளமான '%s' கிடைக்கவில்லை. ErrorDatabaseAlreadyExists=தரவுத்தளம் '%s' ஏற்கனவே உள்ளது. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=தரவுத்தளம் இல்லை என்றால், திரும்பிச் சென்று "தரவுத்தளத்தை உருவாக்கு" விருப்பத்தை சரிபார்க்கவும். IfDatabaseExistsGoBackAndCheckCreate=தரவுத்தளம் ஏற்கனவே இருந்தால், திரும்பிச் சென்று "தரவுத்தளத்தை உருவாக்கு" விருப்பத்தைத் தேர்வுநீக்கவும். WarningBrowserTooOld=உலாவியின் பதிப்பு மிகவும் பழையது. உங்கள் உலாவியை Firefox, Chrome அல்லது Opera இன் சமீபத்திய பதிப்பிற்கு மேம்படுத்துவது மிகவும் பரிந்துரைக்கப்படுகிறது. diff --git a/htdocs/langs/ta_IN/knowledgemanagement.lang b/htdocs/langs/ta_IN/knowledgemanagement.lang index 414eebbea0f..9aafa09565d 100644 --- a/htdocs/langs/ta_IN/knowledgemanagement.lang +++ b/htdocs/langs/ta_IN/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = கட்டுரைகள் KnowledgeRecord = கட்டுரை KnowledgeRecordExtraFields = கட்டுரைக்கான கூடுதல் புலங்கள் GroupOfTicket=டிக்கெட்டுகளின் குழு -YouCanLinkArticleToATicketCategory=நீங்கள் ஒரு கட்டுரையை டிக்கெட் குழுவுடன் இணைக்கலாம் (எனவே புதிய டிக்கெட்டுகளின் தகுதியின் போது கட்டுரை பரிந்துரைக்கப்படும்) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=குழுவாக இருக்கும்போது டிக்கெட்டுகளுக்கு பரிந்துரைக்கப்படுகிறது SetObsolete=Set as obsolete diff --git a/htdocs/langs/ta_IN/loan.lang b/htdocs/langs/ta_IN/loan.lang index da99eccc3a8..2d4881f138d 100644 --- a/htdocs/langs/ta_IN/loan.lang +++ b/htdocs/langs/ta_IN/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=நிதி அர்ப்பணிப்பு InterestAmount=ஆர்வம் CapitalRemain=மூலதனம் உள்ளது TermPaidAllreadyPaid = இந்த காலம் ஏற்கனவே செலுத்தப்பட்டது -CantUseScheduleWithLoanStartedToPaid = பணம் செலுத்தத் தொடங்கியவுடன் கடனுக்காக திட்டமிடலைப் பயன்படுத்த முடியாது +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = நீங்கள் அட்டவணையைப் பயன்படுத்தினால் ஆர்வத்தை மாற்ற முடியாது # Admin ConfigLoan=தொகுதி கடன் கட்டமைப்பு -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=கணக்கியல் கணக்கு மூலதனம் இயல்பாக -LOAN_ACCOUNTING_ACCOUNT_INTEREST=கணக்கியல் கணக்கு வட்டி இயல்பாக -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=முன்னிருப்பாக கணக்கியல் கணக்கு காப்பீடு +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=நிதி உறுதியைத் திருத்தவும் diff --git a/htdocs/langs/ta_IN/mailmanspip.lang b/htdocs/langs/ta_IN/mailmanspip.lang index 60e339c970a..bbc6d2a1847 100644 --- a/htdocs/langs/ta_IN/mailmanspip.lang +++ b/htdocs/langs/ta_IN/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=சந்தா சோதனை வெற்றிகர MailmanDeletionSuccess=குழுவிலகல் சோதனை வெற்றிகரமாகச் செயல்படுத்தப்பட்டது SynchroMailManEnabled=ஒரு Mailman மேம்படுத்தல் செய்யப்படும் SynchroSpipEnabled=ஒரு ஸ்பிப் அப்டேட் செய்யப்படும் -DescADHERENT_MAILMAN_ADMINPW=Mailman நிர்வாகி கடவுச்சொல் +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=Mailman சந்தாக்களுக்கான URL DescADHERENT_MAILMAN_UNSUB_URL=Mailman சந்தா விலக்குக்கான URL DescADHERENT_MAILMAN_LISTS=புதிய உறுப்பினர்களின் தானியங்கி கல்வெட்டுக்கான பட்டியல்(கள்) (காற்புள்ளியால் பிரிக்கப்பட்டது) diff --git a/htdocs/langs/ta_IN/mails.lang b/htdocs/langs/ta_IN/mails.lang index a502549e29c..da4dbb2706e 100644 --- a/htdocs/langs/ta_IN/mails.lang +++ b/htdocs/langs/ta_IN/mails.lang @@ -7,10 +7,10 @@ MailCard=மின்னஞ்சல் அட்டை MailRecipients=பெற்றவர்கள் MailRecipient=பெறுபவர் MailTitle=விளக்கம் -MailFrom=அனுப்புபவர் +MailFrom=From MailErrorsTo=பிழைகள் MailReply=பதிலளிக்க -MailTo=பெறுநர்(கள்) +MailTo=To MailToUsers=பயனர்(களுக்கு) MailCC=நகலெடு MailToCCUsers=பயனர்களுக்கு நகலெடு @@ -178,3 +178,4 @@ IsAnAnswer=ஆரம்ப மின்னஞ்சலின் பதில் RecordCreatedByEmailCollector=%s மின்னஞ்சலில் இருந்து %s மின்னஞ்சல் சேகரிப்பாளரால் உருவாக்கப்பட்டது DefaultBlacklistMailingStatus=புதிய தொடர்பை உருவாக்கும் போது '%s' புலத்திற்கான இயல்பு மதிப்பு DefaultStatusEmptyMandatory=காலி ஆனால் கட்டாயம் +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/ta_IN/main.lang b/htdocs/langs/ta_IN/main.lang index b61756b95b0..e83a90ca339 100644 --- a/htdocs/langs/ta_IN/main.lang +++ b/htdocs/langs/ta_IN/main.lang @@ -1,10 +1,16 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data -FONTFORPDF=freemono +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil +FONTFORPDF=freeserif FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, @@ -28,6 +34,7 @@ NoTemplateDefined=இந்த மின்னஞ்சல் வகைக்க AvailableVariables=கிடைக்கக்கூடிய மாற்று மாறிகள் NoTranslation=மொழிபெயர்ப்பு இல்லை Translation=மொழிபெயர்ப்பு +Translations=Translations CurrentTimeZone=நேர மண்டல PHP (சர்வர்) EmptySearchString=காலியாக இல்லாத தேடல் அளவுகோல்களை உள்ளிடவும் EnterADateCriteria=தேதி அளவுகோலை உள்ளிடவும் @@ -199,6 +206,7 @@ Valid=செல்லுபடியாகும் Approve=ஒப்புதல் Disapprove=ஏற்கவில்லை ReOpen=மீண்டும் திறக்கவும் +OpenVerb=Open Upload=பதிவேற்றவும் ToLink=இணைப்பு Select=தேர்ந்தெடு @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=பயனர் குழு வரையறுக்கப்படவில்லை Password=கடவுச்சொல் -PasswordRetype=உங்கள் கடவுச்சொல்லை மீண்டும் தட்டச்சு செய்யவும் +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=இந்த ஆர்ப்பாட்டத்தில் நிறைய அம்சங்கள்/தொகுதிகள் முடக்கப்பட்டுள்ளன என்பதை நினைவில் கொள்ளவும். Name=பெயர் NameSlashCompany=பெயர் / நிறுவனம் @@ -244,6 +252,7 @@ Designation=விளக்கம் DescriptionOfLine=வரியின் விளக்கம் DateOfLine=வரியின் தேதி DurationOfLine=வரியின் காலம் +ParentLine=Parent line ID Model=ஆவண டெம்ப்ளேட் DefaultModel=இயல்புநிலை ஆவண டெம்ப்ளேட் Action=நிகழ்வு @@ -344,7 +353,7 @@ KiloBytes=கிலோபைட்டுகள் MegaBytes=மெகாபைட்கள் GigaBytes=ஜிகாபைட்கள் TeraBytes=டெராபைட்டுகள் -UserAuthor=மூலம் அமைக்கப்பட்டது +UserAuthor=Created by UserModif=மூலம் புதுப்பிக்கப்பட்டது b=பி. Kb=கேபி @@ -480,6 +489,7 @@ ActionsOnContact=இந்த தொடர்பு/முகவரிக்க ActionsOnContract=இந்த ஒப்பந்தத்திற்கான நிகழ்வுகள் ActionsOnMember=இந்த உறுப்பினரைப் பற்றிய நிகழ்வுகள் ActionsOnProduct=இந்த தயாரிப்பு பற்றிய நிகழ்வுகள் +ActionsOnAsset=Events for this fixed asset NActionsLate=%s தாமதமானது ToDo=செய்ய Completed=நிறைவு @@ -517,6 +527,7 @@ or=அல்லது Other=மற்றவை Others=மற்றவைகள் OtherInformations=பிற தகவல் +Workflow=Workflow Quantity=அளவு Qty=அளவு ChangedBy=மூலம் மாற்றப்பட்டது @@ -619,6 +630,7 @@ MonthVeryShort11=என் MonthVeryShort12=டி AttachedFiles=இணைக்கப்பட்ட கோப்புகள் மற்றும் ஆவணங்கள் JoinMainDoc=முக்கிய ஆவணத்தில் சேரவும் +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=அம்சம் முடக்கப்பட்டது MoveBox=விட்ஜெட்டை நகர்த்தவும் Offered=வழங்கப்பட்டது NotEnoughPermissions=இந்தச் செயலுக்கு உங்களிடம் அனுமதி இல்லை +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=அமர்வு பெயர் Method=முறை Receive=பெறு @@ -798,6 +811,7 @@ URLPhoto=புகைப்படம்/லோகோவின் URL SetLinkToAnotherThirdParty=மற்றொரு மூன்றாம் தரப்பினருக்கான இணைப்பு LinkTo=இணைப்பு LinkToProposal=முன்மொழிவுக்கான இணைப்பு +LinkToExpedition= Link to expedition LinkToOrder=ஆர்டருக்கான இணைப்பு LinkToInvoice=விலைப்பட்டியலுக்கான இணைப்பு LinkToTemplateInvoice=டெம்ப்ளேட் விலைப்பட்டியலுக்கான இணைப்பு @@ -916,6 +930,7 @@ DirectDownloadInternalLink=தனிப்பட்ட பதிவிறக் PrivateDownloadLinkDesc=நீங்கள் உள்நுழைந்திருக்க வேண்டும் மற்றும் கோப்பைப் பார்க்க அல்லது பதிவிறக்க உங்களுக்கு அனுமதிகள் தேவை Download=பதிவிறக்க Tamil DownloadDocument=ஆவணத்தைப் பதிவிறக்கவும் +DownloadSignedDocument=Download signed document ActualizeCurrency=நாணய விகிதத்தைப் புதுப்பிக்கவும் Fiscalyear=நிதியாண்டு ModuleBuilder=தொகுதி மற்றும் பயன்பாட்டு பில்டர் @@ -1041,6 +1056,7 @@ SearchIntoContracts=ஒப்பந்தங்கள் SearchIntoCustomerShipments=வாடிக்கையாளர் ஏற்றுமதி SearchIntoExpenseReports=செலவு அறிக்கைகள் SearchIntoLeaves=கிளம்பு +SearchIntoKM=Knowledge base SearchIntoTickets=டிக்கெட்டுகள் SearchIntoCustomerPayments=வாடிக்கையாளர் கொடுப்பனவுகள் SearchIntoVendorPayments=விற்பனையாளர் கொடுப்பனவுகள் @@ -1132,15 +1148,29 @@ EventReminder=நிகழ்வு நினைவூட்டல் UpdateForAllLines=அனைத்து வரிகளுக்கும் புதுப்பிக்கவும் OnHold=நிறுத்தி வைக்கப்பட்டுள்ளது Civility=நாகரீகம் -AffectTag=தாக்க குறிச்சொல் +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=வெளிப்புற பயனரை உருவாக்கவும் -ConfirmAffectTag=மொத்த டேக் பாதிப்பு -ConfirmAffectTagQuestion=%s தேர்ந்தெடுக்கப்பட்ட பதிவின்(கள்) குறிச்சொற்களை நிச்சயமாகப் பாதிக்க விரும்புகிறீர்களா? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=பதிவுகளின் வகைக்கு குறிச்சொல் வகை எதுவும் இல்லை +Rate=மதிப்பிடவும் +SupervisorNotFound=Supervisor not found CopiedToClipboard=கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது InformationOnLinkToContract=இந்த தொகை ஒப்பந்தத்தின் அனைத்து வரிகளின் மொத்தமாகும். நேரம் பற்றிய எந்த கருத்தும் கணக்கில் எடுத்துக்கொள்ளப்படவில்லை. ConfirmCancel=நீங்கள் நிச்சயமாக ரத்து செய்ய விரும்புகிறீர்களா EmailMsgID=மின்னஞ்சல் MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=இயக்கப்பட்டது என அமைக்கவும் SetToDisabled=முடக்கப்பட்டதாக அமைக்கவும் ConfirmMassEnabling=நிறை செயல்படுத்தும் உறுதிப்படுத்தல் @@ -1164,3 +1194,19 @@ NotClosedYet=இன்னும் மூடவில்லை ClearSignature=கையொப்பத்தை மீட்டமைக்கவும் CanceledHidden=ரத்து செய்யப்பட்டது மறைக்கப்பட்டது CanceledShown=காட்டப்பட்டது ரத்து செய்யப்பட்டது +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/ta_IN/members.lang b/htdocs/langs/ta_IN/members.lang index beffc11ef48..73a3ccf65a4 100644 --- a/htdocs/langs/ta_IN/members.lang +++ b/htdocs/langs/ta_IN/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=மற்றொரு உறுப ErrorUserPermissionAllowsToLinksToItselfOnly=பாதுகாப்பு காரணங்களுக்காக, உங்களுடையது அல்லாத ஒரு பயனருடன் ஒரு உறுப்பினரை இணைக்க அனைத்து பயனர்களையும் திருத்துவதற்கான அனுமதிகள் உங்களுக்கு வழங்கப்பட வேண்டும். SetLinkToUser=Dolibarr பயனருக்கான இணைப்பு SetLinkToThirdParty=Dolibarr மூன்றாம் தரப்பினருக்கான இணைப்பு +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=உறுப்பினர்களின் பட்டியல் MembersListToValid=வரைவு உறுப்பினர்களின் பட்டியல் (சரிபார்க்கப்பட வேண்டும்) @@ -34,8 +35,10 @@ DateSubscription=உறுப்பினர் தேதி DateEndSubscription=உறுப்பினர் முடிவு தேதி EndSubscription=உறுப்பினர் முடிவு SubscriptionId=பங்களிப்பு ஐடி -WithoutSubscription=பங்களிப்பு இல்லாமல் -MemberId=உறுப்பினர் அடையாள எண் +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=புதிய உறுப்பினர் MemberType=உறுப்பினர் வகை MemberTypeId=உறுப்பினர் வகை ஐடி @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=உறுப்பினர் வகையை நீ NewSubscription=புதிய பங்களிப்பு NewSubscriptionDesc=அறக்கட்டளையின் புதிய உறுப்பினராக உங்கள் சந்தாவைப் பதிவுசெய்ய இந்தப் படிவம் உங்களை அனுமதிக்கிறது. உங்கள் சந்தாவைப் புதுப்பிக்க விரும்பினால் (ஏற்கனவே உறுப்பினராக இருந்தால்), அதற்கு பதிலாக %s என்ற மின்னஞ்சல் மூலம் அடித்தள வாரியத்தைத் தொடர்பு கொள்ளவும். Subscription=பங்களிப்பு +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=பங்களிப்புகள் SubscriptionLate=லேட் SubscriptionNotReceived=பங்களிப்பு ஒருபோதும் பெறப்படவில்லை @@ -135,7 +144,7 @@ CardContent=உங்கள் உறுப்பினர் அட்டைய # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=உங்கள் உறுப்பினர் கோரிக்கை பெறப்பட்டது என்பதை உங்களுக்குத் தெரிவிக்க விரும்புகிறோம்.

    ThisIsContentOfYourMembershipWasValidated=பின்வரும் தகவலுடன் உங்கள் உறுப்பினர் சரிபார்க்கப்பட்டது என்பதை உங்களுக்குத் தெரிவிக்க விரும்புகிறோம்:

    -ThisIsContentOfYourSubscriptionWasRecorded=உங்கள் புதிய சந்தா பதிவுசெய்யப்பட்டது என்பதை உங்களுக்குத் தெரிவிக்க விரும்புகிறோம்.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=உங்கள் சந்தா காலாவதியாகப் போகிறது அல்லது ஏற்கனவே காலாவதியாகிவிட்டது என்பதை உங்களுக்குத் தெரிவிக்க விரும்புகிறோம் (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). நீங்கள் அதை புதுப்பிப்பீர்கள் என்று நம்புகிறோம்.

    ThisIsContentOfYourCard=உங்களைப் பற்றி எங்களிடம் உள்ள தகவலின் சுருக்கம் இது. ஏதேனும் தவறாக இருந்தால் எங்களை தொடர்பு கொள்ளவும்.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=விருந்தினரின் தானாகக் கல்வெட்டு ஏற்பட்டால் பெறப்பட்ட அறிவிப்பு மின்னஞ்சலின் பொருள் @@ -198,8 +207,10 @@ NbOfSubscriptions=பங்களிப்புகளின் எண்ணி AmountOfSubscriptions=பங்களிப்புகளிலிருந்து சேகரிக்கப்பட்ட தொகை TurnoverOrBudget=விற்றுமுதல் (ஒரு நிறுவனத்திற்கு) அல்லது பட்ஜெட் (ஒரு அடித்தளத்திற்கு) DefaultAmount=பங்களிப்பு தொகையின் இயல்புநிலை -CanEditAmount=அதன் பங்களிப்பின் அளவை பார்வையாளர் தேர்வு செய்யலாம்/திருத்தலாம் -MEMBER_NEWFORM_PAYONLINE=ஒருங்கிணைந்த ஆன்லைன் கட்டணப் பக்கத்தில் செல்லவும் +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=இயற்கையாகவே MembersStatisticsByProperties=இயல்பிலேயே உறுப்பினர்களின் புள்ளிவிவரங்கள் VATToUseForSubscriptions=பங்களிப்புகளுக்கு பயன்படுத்த VAT விகிதம் @@ -218,3 +229,6 @@ XExternalUserCreated=%s வெளிப்புற பயனர்(கள்) ForceMemberNature=கட்டாய உறுப்பினர் இயல்பு (தனிநபர் அல்லது நிறுவனம்) CreateDolibarrLoginDesc=உறுப்பினர்களுக்கான பயனர் உள்நுழைவை உருவாக்குவது, பயன்பாட்டோடு இணைக்க அவர்களை அனுமதிக்கிறது. வழங்கப்பட்ட அங்கீகாரங்களைப் பொறுத்து, அவர்கள் தங்கள் கோப்பைக் கலந்தாலோசிக்க அல்லது மாற்றியமைக்க முடியும். CreateDolibarrThirdPartyDesc=மூன்றாம் தரப்பினர் என்பது ஒவ்வொரு பங்களிப்பிற்கும் விலைப்பட்டியல் உருவாக்க முடிவு செய்தால், விலைப்பட்டியலில் பயன்படுத்தப்படும் சட்டப்பூர்வ நிறுவனம் ஆகும். பங்களிப்பைப் பதிவு செய்யும் போது நீங்கள் அதை உருவாக்க முடியும். +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/ta_IN/modulebuilder.lang b/htdocs/langs/ta_IN/modulebuilder.lang index b4782fad195..6ae354aa6f5 100644 --- a/htdocs/langs/ta_IN/modulebuilder.lang +++ b/htdocs/langs/ta_IN/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=இந்த கருவியை அனுபவம் வாய்ந்த பயனர்கள் அல்லது டெவலப்பர்கள் மட்டுமே பயன்படுத்த வேண்டும். இது உங்கள் சொந்த தொகுதியை உருவாக்க அல்லது திருத்துவதற்கான பயன்பாடுகளை வழங்குகிறது. மாற்று கைமுறை மேம்பாட்டிற்கான ஆவணம் இங்கே . EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=தொகுதிகள் உருவாக்கப்படும்/திருத்தப்படும் பாதை (வெளிப்புற தொகுதிகளுக்கான முதல் அடைவு %s என வரையறுக்கப்பட்டுள்ளது): %s ModuleBuilderDesc3=உருவாக்கப்பட்ட/திருத்தக்கூடிய தொகுதிகள் கண்டறியப்பட்டன: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=தொகுதி கோப்பகத்தின் ம NewModule=புதிய தொகுதி NewObjectInModulebuilder=புதிய பொருள் NewDictionary=New dictionary +ModuleName=Module name ModuleKey=தொகுதி விசை ObjectKey=பொருள் விசை DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=தொகுதி/பயன்பாடு தொகுப PathToModuleDocumentation=தொகுதி/பயன்பாட்டு ஆவணங்களின் கோப்புக்கான பாதை (%s) SpaceOrSpecialCharAreNotAllowed=இடைவெளிகள் அல்லது சிறப்பு எழுத்துக்கள் அனுமதிக்கப்படாது. FileNotYetGenerated=கோப்பு இன்னும் உருவாக்கப்படவில்லை +GenerateCode=Generate code RegenerateClassAndSql=.class மற்றும் .sql கோப்புகளை கட்டாயமாக புதுப்பிக்கவும் RegenerateMissingFiles=விடுபட்ட கோப்புகளை உருவாக்கவும் SpecificationFile=ஆவணக் கோப்பு LanguageFile=மொழிக்கான கோப்பு ObjectProperties=பொருள் பண்புகள் +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty= %s சொத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா? இது PHP வகுப்பில் குறியீட்டை மாற்றும் ஆனால் பொருளின் அட்டவணை வரையறையிலிருந்து நெடுவரிசையை அகற்றும். NotNull=NULL அல்ல NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=ஒரு அளவீடு ஆகும் DirScanned=கோப்பகம் ஸ்கேன் செய்யப்பட்டது NoTrigger=தூண்டுதல் இல்லை NoWidget=விட்ஜெட் இல்லை -GoToApiExplorer=ஏபிஐ எக்ஸ்ப்ளோரர் +ApiExplorer=API explorer ListOfMenusEntries=மெனு உள்ளீடுகளின் பட்டியல் ListOfDictionariesEntries=அகராதி உள்ளீடுகளின் பட்டியல் ListOfPermissionsDefined=வரையறுக்கப்பட்ட அனுமதிகளின் பட்டியல் SeeExamples=உதாரணங்களை இங்கே பார்க்கவும் -EnabledDesc=இந்த புலம் செயலில் இருக்க வேண்டிய நிபந்தனை (எடுத்துக்காட்டுகள்: 1 அல்லது $conf->global->MYMODULE_MYOPTION) -VisibleDesc=புலம் தெரிகிறதா? (எடுத்துக்காட்டுகள்: 0=எப்போதும் காணமுடியாது, 1=பட்டியல் மற்றும் உருவாக்க/புதுப்பித்தல்/பார்க்கும் படிவங்களில் தெரியும், 2=பட்டியலிலேயே தெரியும், 3=உருவாக்கும்/புதுப்பிப்பு/பார்க்கும் படிவத்தில் மட்டும் தெரியும் (பட்டியல் அல்ல), 4=பட்டியலில் தெரியும் மற்றும் புதுப்பித்தல்/பார்வை படிவம் மட்டும் (உருவாக்கவில்லை), 5=பட்டியல் இறுதிக் காட்சிப் படிவத்தில் மட்டும் தெரியும் (உருவாக்கவில்லை, புதுப்பிக்கவில்லை).

    இது ஒரு வெளிப்பாடாக இருக்கலாம், எடுத்துக்காட்டாக:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    -DisplayOnPdfDesc=இணக்கமான PDF ஆவணங்களில் இந்தப் புலத்தைக் காண்பி, நீங்கள் "நிலை" புலத்துடன் நிலையை நிர்வகிக்கலாம்.
    தற்போது, அறியப்பட்ட இணக்கதன்மை பிடிஎப் மாதிரிகள் உள்ளன: eratosthene (ஆர்டர்), espadon (கப்பல்), கடற்பாசி (பொருள்), சியான் (propal / மேற்கோள்), cornas (சப்ளையர் ஆர்டர்)

    ஆவணம்:
    0 =
    1 காண்பிக்கப்படவில்லை = காட்சி
    2 = காட்ட மட்டுமே காலி இல்லை என்றால்

    பொறுத்தவரை ஆவணம் வரிகளை:
    0 = இல்லை
    1 = பிறகு விளக்கம் பத்தியில் 4 = காட்சி
    விளக்கம் பிறகு
    வரி விளக்கம் பத்தியில் 3 = காட்சி ஒரு பத்தியில் காட்டப்படும் காட்டப்படும் காலியாக இல்லாவிட்டால் மட்டுமே விளக்கம் -DisplayOnPdf=PDF இல் காட்சி +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=புலத்தின் மதிப்பை மொத்தமாக பட்டியலில் சேர்க்க முடியுமா? (எடுத்துக்காட்டுகள்: 1 அல்லது 0) SearchAllDesc=விரைவு தேடல் கருவியில் இருந்து தேடுவதற்கு புலம் பயன்படுத்தப்படுகிறதா? (எடுத்துக்காட்டுகள்: 1 அல்லது 0) SpecDefDesc=மற்ற தாவல்களால் ஏற்கனவே வரையறுக்கப்படாத உங்கள் தொகுதியுடன் நீங்கள் வழங்க விரும்பும் அனைத்து ஆவணங்களையும் இங்கே உள்ளிடவும். நீங்கள் .md அல்லது சிறந்த, பணக்கார .asciidoc தொடரியல் பயன்படுத்தலாம். @@ -130,26 +136,32 @@ UseSpecificEditorURL = குறிப்பிட்ட எடிட்டர UseSpecificFamily = ஒரு குறிப்பிட்ட குடும்பத்தைப் பயன்படுத்தவும் UseSpecificAuthor = ஒரு குறிப்பிட்ட ஆசிரியரைப் பயன்படுத்தவும் UseSpecificVersion = ஒரு குறிப்பிட்ட ஆரம்ப பதிப்பைப் பயன்படுத்தவும் -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=இதை நீங்கள் சரிபார்த்தால், பதிவில் "ஆவணத்தை உருவாக்கு" பெட்டியைச் சேர்க்க சில குறியீடு உருவாக்கப்படும். -ShowOnCombobox=காம்போபாக்ஸில் மதிப்பைக் காட்டு +ShowOnCombobox=Show value into combo boxes KeyForTooltip=உதவிக்குறிப்புக்கான திறவுகோல் CSSClass=படிவத்தை திருத்த/உருவாக்க CSS CSSViewClass=படிவத்தை படிக்க CSS CSSListClass=பட்டியலுக்கு CSS NotEditable=திருத்த முடியாது ForeignKey=வெளிநாட்டு விசை -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii க்கு HTML மாற்றி AsciiToPdfConverter=Ascii to PDF மாற்றி TableNotEmptyDropCanceled=அட்டவணை காலியாக இல்லை. டிராப் ரத்து செய்யப்பட்டது. ModuleBuilderNotAllowed=மாட்யூல் பில்டர் உள்ளது ஆனால் உங்கள் பயனருக்கு அனுமதிக்கப்படவில்லை. ImportExportProfiles=சுயவிவரங்களை இறக்குமதி மற்றும் ஏற்றுமதி -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/ta_IN/mrp.lang b/htdocs/langs/ta_IN/mrp.lang index 29c220b444b..bfb2036cfbd 100644 --- a/htdocs/langs/ta_IN/mrp.lang +++ b/htdocs/langs/ta_IN/mrp.lang @@ -11,8 +11,8 @@ Bom=பொருள் பில்கள் BillOfMaterials=பொருட்களின் அளவுக்கான ரசீது BillOfMaterialsLines=பொருட்கள் வரிகளின் பில் BOMsSetup=தொகுதி BOM அமைவு -ListOfBOMs=பொருள் பில்கள் பட்டியல் - BOM -ListOfManufacturingOrders=உற்பத்தி ஆணைகளின் பட்டியல் +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=பொருட்கள் புதிய பில் ProductBOMHelp=இந்த BOM மூலம் உருவாக்க (அல்லது பிரிப்பதற்கான) தயாரிப்பு.
    குறிப்பு: 'பொருளின் தன்மை' = 'மூலப் பொருள்' என்ற பண்பு கொண்ட தயாரிப்புகள் இந்தப் பட்டியலில் காணப்படாது. BOMsNumberingModules=BOM எண் வார்ப்புருக்கள் @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=%s மெட்டீரியல்களின் ConfirmCloneMo=%s உற்பத்தி ஆர்டரை நிச்சயமாக குளோன் செய்ய விரும்புகிறீர்களா? ManufacturingEfficiency=உற்பத்தி திறன் ConsumptionEfficiency=நுகர்வு திறன் +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=0.95 இன் மதிப்பு என்பது உற்பத்தி செய்யப்பட்ட பொருளின் சராசரி இழப்பு 5%% DeleteBillOfMaterials=பொருட்களின் மசோதாவை நீக்கவும் @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=%s பிரித்தெடுக்கும் அ ConfirmValidateMo=இந்த உற்பத்தி ஆர்டரை நிச்சயமாக சரிபார்க்க விரும்புகிறீர்களா? ConfirmProductionDesc='%s' ஐக் கிளிக் செய்வதன் மூலம், அளவுகளின் அளவுக்கான நுகர்வு மற்றும்/அல்லது உற்பத்தியை நீங்கள் சரிபார்க்கலாம். இது பங்குகளைப் புதுப்பித்து, பங்கு நகர்வுகளைப் பதிவு செய்யும். ProductionForRef=%s இன் உற்பத்தி +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=நுகர்வு மற்றும் உற்பத்தி செய்ய வேண்டிய அளவுகள் எட்டப்பட்டால், உற்பத்தி ஆணை தானாக மூடவும் NoStockChangeOnServices=சேவைகளில் பங்கு மாற்றம் இல்லை ProductQtyToConsumeByMO=திறந்த MO மூலம் இன்னும் பயன்படுத்த வேண்டிய தயாரிப்பு அளவு @@ -80,6 +83,7 @@ ProductsToProduce=உற்பத்தி செய்ய வேண்டிய UnitCost=அலகு விலை TotalCost=மொத்த செலவு BOMTotalCost=இந்த BOM ஐ உற்பத்தி செய்வதற்கான செலவு ஒவ்வொரு அளவு மற்றும் நுகர்வுக்கான பொருளின் விலையின் அடிப்படையில் (வரையறுக்கப்பட்டால் செலவு விலையைப் பயன்படுத்தவும், இல்லையெனில் சராசரி எடையுள்ள விலை வரையறுக்கப்பட்டால், சிறந்த கொள்முதல் விலை) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=உற்பத்தி ஆர்டரை மூடுவதற்கு நீங்கள் முதலில் தயாரிப்பைத் தொடங்கியிருக்க வேண்டும் ('%s' தாவலைப் பார்க்கவும்). ஆனால் நீங்கள் அதை ரத்து செய்யலாம். ErrorAVirtualProductCantBeUsedIntoABomOrMo=ஒரு கிட்டை BOM அல்லது MO இல் பயன்படுத்த முடியாது Workstation=பணிநிலையம் @@ -107,3 +111,10 @@ THMEstimatedHelp=இந்த விகிதமானது பொருளி BOM=பொருட்களின் அளவுக்கான ரசீது CollapseBOMHelp=BOM தொகுதியின் கட்டமைப்பில் பெயரிடலின் விவரங்களின் இயல்புநிலை காட்சியை நீங்கள் வரையறுக்கலாம் MOAndLines=உற்பத்தி ஆர்டர்கள் மற்றும் வரிகள் +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/ta_IN/oauth.lang b/htdocs/langs/ta_IN/oauth.lang index aa85e80f2eb..d14a3f7391f 100644 --- a/htdocs/langs/ta_IN/oauth.lang +++ b/htdocs/langs/ta_IN/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=ஒரு டோக்கன் உருவாக்கப்ப NewTokenStored=டோக்கன் பெறப்பட்டு சேமிக்கப்பட்டது ToCheckDeleteTokenOnProvider=%s OAuth வழங்குநரால் சேமிக்கப்பட்ட அங்கீகாரத்தைச் சரிபார்க்க/நீக்க இங்கே கிளிக் செய்யவும் TokenDeleted=டோக்கன் நீக்கப்பட்டது -RequestAccess=அணுகலைக் கோர/புதுப்பிக்க இங்கே கிளிக் செய்யவும் மற்றும் சேமிக்க புதிய டோக்கனைப் பெறவும் -DeleteAccess=டோக்கனை நீக்க இங்கே கிளிக் செய்யவும் +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=உங்கள் OAuth வழங்குனருடன் உங்கள் நற்சான்றிதழ்களை உருவாக்கும் போது, பின்வரும் URL ஐ வழிமாற்று URI ஆகப் பயன்படுத்தவும்: -ListOfSupportedOauthProviders=உங்கள் OAuth2 வழங்குநர் வழங்கிய நற்சான்றிதழ்களை உள்ளிடவும். ஆதரிக்கப்படும் OAuth2 வழங்குநர்கள் மட்டுமே இங்கே பட்டியலிடப்பட்டுள்ளனர். OAuth2 அங்கீகாரம் தேவைப்படும் பிற தொகுதிக்கூறுகளால் இந்த சேவைகள் பயன்படுத்தப்படலாம். -OAuthSetupForLogin=OAuth டோக்கனை உருவாக்குவதற்கான பக்கம் +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=முந்தைய தாவலைப் பார்க்கவும் +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ஐடி மற்றும் ரகசியம் TOKEN_REFRESH=டோக்கன் புதுப்பிப்பு தற்போது TOKEN_EXPIRED=டோக்கன் காலாவதியானது @@ -23,10 +24,13 @@ TOKEN_DELETE=சேமித்த டோக்கனை நீக்கு OAUTH_GOOGLE_NAME=OAuth Google சேவை OAUTH_GOOGLE_ID=OAuth Google ஐடி OAUTH_GOOGLE_SECRET=OAuth Google ரகசியம் -OAUTH_GOOGLE_DESC=OAuth நற்சான்றிதழ்களை உருவாக்க, இந்தப் பக்கத்திற்குச் செல்லவும் பின்னர் "நற்சான்றிதழ்கள்" OAUTH_GITHUB_NAME=OAuth கிட்ஹப் சேவை OAUTH_GITHUB_ID=OAuth கிட்ஹப் ஐடி OAUTH_GITHUB_SECRET=OAuth கிட்ஹப் ரகசியம் -OAUTH_GITHUB_DESC=OAuth நற்சான்றிதழ்களை உருவாக்க, இந்தப் பக்கத்திற்குச் சென்று பின்னர் "புதிய பயன்பாட்டைப் பதிவுசெய்க" +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth ஸ்ட்ரைப் சோதனை OAUTH_STRIPE_LIVE_NAME=OAuth ஸ்ட்ரைப் லைவ் +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/ta_IN/products.lang b/htdocs/langs/ta_IN/products.lang index 93368950736..0c2da86779e 100644 --- a/htdocs/langs/ta_IN/products.lang +++ b/htdocs/langs/ta_IN/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=இந்தத் தயாரிப்பு வர ProductSpecial=சிறப்பு QtyMin=குறைந்தபட்சம் கொள்முதல் அளவு PriceQtyMin=விலை அளவு நிமிடம். -PriceQtyMinCurrency=இந்த qtyக்கான விலை (நாணயம்). (தள்ளுபடி இல்லை) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=VAT விகிதம் (இந்த விற்பனையாளர்/தயாரிப்பு) DiscountQtyMin=இந்த தொகைக்கு தள்ளுபடி. NoPriceDefinedForThisSupplier=இந்த விற்பனையாளர்/தயாரிப்புக்கு விலை/அளவு வரையறுக்கப்படவில்லை @@ -261,7 +262,7 @@ Quarter1=1வது காலாண்டு Quarter2=2வது காலாண்டு Quarter3=3வது. காலாண்டு Quarter4=4வது காலாண்டு -BarCodePrintsheet=பார்கோடு அச்சிடவும் +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=இந்த கருவி மூலம், பார்கோடு ஸ்டிக்கர்களின் தாள்களை அச்சிடலாம். உங்கள் ஸ்டிக்கர் பக்கத்தின் வடிவம், பார்கோடு வகை மற்றும் பார்கோடின் மதிப்பு ஆகியவற்றைத் தேர்வுசெய்து, %s பொத்தானைக் கிளிக் செய்யவும். NumberOfStickers=பக்கத்தில் அச்சிட வேண்டிய ஸ்டிக்கர்களின் எண்ணிக்கை PrintsheetForOneBarCode=ஒரு பார்கோடுக்கு பல ஸ்டிக்கர்களை அச்சிடுங்கள் @@ -344,9 +345,9 @@ PossibleValues=சாத்தியமான மதிப்புகள் GoOnMenuToCreateVairants=பண்புக்கூறு வகைகளை (வண்ணங்கள், அளவு, ... போன்றவை) தயார் செய்ய, %s - %s மெனுவில் செல்லவும். UseProductFournDesc=வாடிக்கையாளர்களுக்கான விளக்கத்துடன் கூடுதலாக விற்பனையாளர்களால் (ஒவ்வொரு விற்பனையாளர் குறிப்புக்கும்) வரையறுக்கப்பட்ட தயாரிப்பு விளக்கத்தை வரையறுக்க ஒரு அம்சத்தைச் சேர்க்கவும். ProductSupplierDescription=தயாரிப்புக்கான விற்பனையாளர் விளக்கம் -UseProductSupplierPackaging=சப்ளையர் விலையில் பேக்கேஜிங்கைப் பயன்படுத்தவும் (சப்ளையர் ஆவணங்களில் வரியைச் சேர்க்கும்போது/புதுப்பிக்கும்போது சப்ளையர் விலையில் அமைக்கப்பட்ட பேக்கேஜிங்கின் படி அளவுகளை மீண்டும் கணக்கிடவும்) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=பேக்கேஜிங் -PackagingForThisProductDesc=சப்ளையர் ஆர்டரில், நீங்கள் தானாகவே இந்த அளவை ஆர்டர் செய்வீர்கள் (அல்லது இந்த அளவின் பல மடங்கு). குறைந்தபட்ச கொள்முதல் அளவை விட குறைவாக இருக்க முடியாது +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=சப்ளையர் பேக்கேஜிங்கின் படி வரியின் அளவு மீண்டும் கணக்கிடப்பட்டது #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=தயாரிப்பின் மாற ProductsPricePerCustomer=வாடிக்கையாளர்களுக்கான தயாரிப்பு விலைகள் ProductSupplierExtraFields=கூடுதல் பண்புக்கூறுகள் (சப்ளையர் விலைகள்) DeleteLinkedProduct=கலவையுடன் இணைக்கப்பட்ட குழந்தை தயாரிப்பை நீக்கவும் -AmountUsedToUpdateWAP=எடையுள்ள சராசரி விலையைப் புதுப்பிக்கப் பயன்படுத்த வேண்டிய தொகை +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=எடையுள்ள சராசரி விலை PMPValueShort=WAP mandatoryperiod=கட்டாய காலங்கள் @@ -408,6 +409,23 @@ mandatoryHelper=இந்தச் சேவையில் தொடக்க DefaultBOM=இயல்புநிலை BOM DefaultBOMDesc=இந்த தயாரிப்பைத் தயாரிக்க, இயல்புநிலை BOM பயன்படுத்த பரிந்துரைக்கப்படுகிறது. தயாரிப்பின் தன்மை '%s' ஆக இருந்தால் மட்டுமே இந்தப் புலத்தை அமைக்க முடியும். Rank=தரவரிசை +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=விற்பனை நிலையை இயக்கவும் SwitchOnPurchaseStatus=கொள்முதல் நிலையை இயக்கவும் +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/ta_IN/projects.lang b/htdocs/langs/ta_IN/projects.lang index 31d9293b3d0..de6dfe7fade 100644 --- a/htdocs/langs/ta_IN/projects.lang +++ b/htdocs/langs/ta_IN/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=இந்தக் காட்சி நீங்கள் ப TasksDesc=இந்த பார்வை அனைத்து திட்டப்பணிகளையும் பணிகளையும் வழங்குகிறது (உங்கள் பயனர் அனுமதிகள் அனைத்தையும் பார்க்க உங்களுக்கு அனுமதி அளிக்கிறது). AllTaskVisibleButEditIfYouAreAssigned=தகுதிவாய்ந்த திட்டங்களுக்கான அனைத்து பணிகளும் தெரியும், ஆனால் தேர்ந்தெடுக்கப்பட்ட பயனருக்கு ஒதுக்கப்பட்ட பணிக்கு மட்டுமே நீங்கள் நேரத்தை உள்ளிட முடியும். நீங்கள் நேரத்தை உள்ளிட வேண்டும் என்றால் பணியை ஒதுக்கவும். OnlyYourTaskAreVisible=உங்களுக்கு ஒதுக்கப்பட்ட பணிகள் மட்டுமே தெரியும். நீங்கள் ஒரு பணியில் நேரத்தை உள்ளிட வேண்டும் மற்றும் பணி இங்கே தெரியவில்லை என்றால், நீங்கள் பணியை ஒதுக்க வேண்டும். +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=திட்டங்களின் பணிகள் ProjectCategories=திட்ட குறிச்சொற்கள்/வகைகள் NewProject=புதிய திட்டம் @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=திறந்த திட்டங்க OpportunitiesStatusForProjects=நிலையின்படி திட்டங்களின் அளவை வழிநடத்துகிறது ShowProject=திட்டத்தைக் காட்டு ShowTask=பணியைக் காட்டு +SetThirdParty=Set third party SetProject=திட்டத்தை அமைக்கவும் +OutOfProject=Out of project NoProject=எந்த திட்டமும் வரையறுக்கப்படவில்லை அல்லது சொந்தமானது NbOfProjects=திட்டங்களின் எண்ணிக்கை NbOfTasks=பணிகளின் எண்ணிக்கை @@ -122,7 +125,8 @@ ValidateProject=திட்டத்தை சரிபார்க்கவு ConfirmValidateProject=இந்தத் திட்டத்தைச் சரிபார்க்க விரும்புகிறீர்களா? CloseAProject=திட்டத்தை மூடவும் ConfirmCloseAProject=இந்தத் திட்டத்தை நிச்சயமாக மூட விரும்புகிறீர்களா? -AlsoCloseAProject=திட்டத்தையும் மூடவும் (நீங்கள் இன்னும் அதில் உற்பத்தி பணிகளைப் பின்பற்ற வேண்டும் என்றால், அதைத் திறந்து வைக்கவும்) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=திட்டத்தைத் திறக்கவும் ConfirmReOpenAProject=இந்தத் திட்டத்தை மீண்டும் திறக்க விரும்புகிறீர்களா? ProjectContact=திட்டத்தின் தொடர்புகள் @@ -165,7 +169,7 @@ OpportunityProbability=முன்னணி நிகழ்தகவு OpportunityProbabilityShort=முன்னணி ப்ரோபாப். OpportunityAmount=முன்னணி அளவு OpportunityAmountShort=முன்னணி அளவு -OpportunityWeightedAmount=வாய்ப்பு எடையிடப்பட்ட அளவு +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=எதிர் எடையுள்ள அளவு OpportunityAmountAverageShort=சராசரி ஈய அளவு OpportunityAmountWeigthedShort=எடையிடப்பட்ட ஈய அளவு @@ -238,7 +242,7 @@ OppStatusPENDING=நிலுவையில் உள்ளது OppStatusWON=வெற்றி பெற்றது OppStatusLOST=இழந்தது Budget=பட்ஜெட் -AllowToLinkFromOtherCompany=மற்ற நிறுவனத்திலிருந்து இணைப்பை திட்டம் அனுமதி

    ஆதரிக்கப்படும் மதிப்புகள்:
    - காலியாக வைத்து: நிறுவனம் (இயல்புநிலை) எந்த திட்டம்
    இணைக்க முடியுமா - "எல்லா": எந்த திட்டங்கள்,
    பிற நிறுவனங்கள் கூட திட்டங்கள் இணைக்க முடியுமா - பட்டியல் காற்புள்ளிகளால் பிரிக்கப்பட்ட மூன்றாம் தரப்பு ஐடிகள்: இந்த மூன்றாம் தரப்பினரின் அனைத்து திட்டப்பணிகளையும் இணைக்க முடியும் (எடுத்துக்காட்டு: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=சமீபத்திய %s திட்டங்கள் LatestModifiedProjects=சமீபத்திய %s மாற்றியமைக்கப்பட்ட திட்டங்கள் OtherFilteredTasks=பிற வடிகட்டப்பட்ட பணிகள் @@ -259,7 +263,7 @@ TimeSpentInvoiced=கட்டணம் செலுத்தப்பட்ட TimeSpentForIntervention=செலவிட்ட நேரம் TimeSpentForInvoice=செலவிட்ட நேரம் OneLinePerUser=ஒரு பயனருக்கு ஒரு வரி -ServiceToUseOnLines=வரிகளில் பயன்படுத்த வேண்டிய சேவை +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=திட்டத்தில் செலவழித்த நேரத்திலிருந்து விலைப்பட்டியல் %s உருவாக்கப்பட்டுள்ளது InterventionGeneratedFromTimeSpent=தலையீடு %s திட்டத்தில் செலவிடப்பட்ட நேரத்திலிருந்து உருவாக்கப்பட்டுள்ளது ProjectBillTimeDescription=திட்டத்தின் பணிகளில் டைம்ஷீட்டை உள்ளிடுகிறீர்களா என்பதைச் சரிபார்த்து, திட்டத்தின் வாடிக்கையாளருக்கு பில் பில் செய்ய டைம்ஷீட்டிலிருந்து விலைப்பட்டியல்(களை) உருவாக்க திட்டமிட்டுள்ளீர்கள் (உள்ளிடப்பட்ட டைம்ஷீட்களின் அடிப்படையில் இல்லாத விலைப்பட்டியலை உருவாக்கத் திட்டமிட்டுள்ளீர்களா எனச் சரிபார்க்க வேண்டாம்). குறிப்பு: விலைப்பட்டியலை உருவாக்க, திட்டத்தின் 'செலவிக்கப்பட்ட நேரம்' தாவலுக்குச் சென்று சேர்க்க வேண்டிய வரிகளைத் தேர்ந்தெடுக்கவும். @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=பயன்படுத்தி லாபம் கண AddPersonToTask=பணிகளிலும் சேர்க்கவும் UsageOrganizeEvent=பயன்பாடு: நிகழ்வு அமைப்பு PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=திட்டப்பணிகள் அனைத்தும் முடிந்ததும் மூடப்பட்டதாக வகைப்படுத்தவும் (100%% முன்னேற்றம்) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=குறிப்பு: 100%% இல் உள்ள அனைத்துப் பணிகளுடன் ஏற்கனவே உள்ள திட்டப்பணிகளின் முன்னேற்றம் பாதிக்கப்படாது: நீங்கள் அவற்றை கைமுறையாக மூட வேண்டும். இந்த விருப்பம் திறந்த திட்டங்களை மட்டுமே பாதிக்கிறது. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=கட்டணம் செலுத்தப்படாத நேரத்தைத் தேர்ந்தெடுத்து, அவற்றை பில் செய்ய மொத்த நடவடிக்கை "இன்வாய்ஸை உருவாக்கு" ProjectTasksWithoutTimeSpent=நேரத்தை செலவழிக்காமல் திட்ட பணிகள் FormForNewLeadDesc=எங்களை தொடர்பு கொள்ள பின்வரும் படிவத்தை நிரப்பியதற்கு நன்றி. நீங்கள் எங்களுக்கு நேரடியாக %s க்கு மின்னஞ்சல் அனுப்பலாம். @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/ta_IN/recruitment.lang b/htdocs/langs/ta_IN/recruitment.lang index 855030e9893..93b87a139d6 100644 --- a/htdocs/langs/ta_IN/recruitment.lang +++ b/htdocs/langs/ta_IN/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=மின்னஞ்சல் பணியமர்த்து ToUseAGenericEmail=பொதுவான மின்னஞ்சலைப் பயன்படுத்த. வரையறுக்கப்படவில்லை என்றால், ஆட்சேர்ப்புக்கு பொறுப்பானவரின் மின்னஞ்சல் பயன்படுத்தப்படும் NewCandidature=புதிய பயன்பாடு ListOfCandidatures=விண்ணப்பங்களின் பட்டியல் -RequestedRemuneration=ஊதியம் கேட்டார் -ProposedRemuneration=முன்மொழியப்பட்ட ஊதியம் +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=ஒப்பந்தம் முன்மொழியப்பட்டது ContractSigned=ஒப்பந்தம் கையெழுத்தானது ContractRefused=ஒப்பந்தம் மறுத்துவிட்டது RecruitmentCandidature=விண்ணப்பம் JobPositions=வேலை நிலைகள் RecruitmentCandidatures=விண்ணப்பங்கள் -InterviewToDo=நேர்காணல் செய்ய வேண்டும் +InterviewToDo=Contacts to follow AnswerCandidature=விண்ணப்ப பதில் YourCandidature=உங்கள் விண்ணப்பம் YourCandidatureAnswerMessage=உங்கள் விண்ணப்பத்திற்கு நன்றி.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=வேலை நிலை மூடப்பட்டு ExtrafieldsJobPosition=நிரப்பு பண்புக்கூறுகள் (வேலை நிலைகள்) ExtrafieldsApplication=நிரப்பு பண்புக்கூறுகள் (வேலை விண்ணப்பங்கள்) MakeOffer=சலுகை கொடு +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/ta_IN/salaries.lang b/htdocs/langs/ta_IN/salaries.lang index 8613af209d9..3a1912ad03c 100644 --- a/htdocs/langs/ta_IN/salaries.lang +++ b/htdocs/langs/ta_IN/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=பயனரின் மூன்றாம் தரப்பினருக்குப் பயன்படுத்தப்படும் கணக்கியல் கணக்கு -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=பயனர் அட்டையில் வரையறுக்கப்பட்ட பிரத்யேக கணக்கியல் கணக்கு சப்லெட்ஜர் கணக்கியலுக்கு மட்டுமே பயன்படுத்தப்படும். இது ஜெனரல் லெட்ஜருக்குப் பயன்படுத்தப்படும் மற்றும் பயனரின் பிரத்யேக பயனர் கணக்கியல் கணக்கு வரையறுக்கப்படாவிட்டால், சப்லெட்ஜர் கணக்கின் இயல்புநிலை மதிப்பாகப் பயன்படுத்தப்படும். +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=ஊதியக் கொடுப்பனவுகளுக்கு முன்னிருப்பாக கணக்கியல் கணக்கு CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=இயல்பாக, சம்பளத்தை உருவாக்கும் போது "தானாக மொத்த கட்டணத்தை உருவாக்கு" என்ற விருப்பத்தை காலியாக விடவும் Salary=சம்பளம் diff --git a/htdocs/langs/ta_IN/stocks.lang b/htdocs/langs/ta_IN/stocks.lang index 3e0d8a0786a..ace390a46fa 100644 --- a/htdocs/langs/ta_IN/stocks.lang +++ b/htdocs/langs/ta_IN/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=எதிர்காலத்தில் தேதி StocksByLotSerial=லாட்/சீரியல் மூலம் பங்குகள் LotSerial=நிறைய/தொடர்கள் LotSerialList=நிறைய/தொடர்களின் பட்டியல் +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=இயக்கங்கள் ErrorWarehouseRefRequired=கிடங்கு குறிப்பு பெயர் தேவை ListOfWarehouses=கிடங்குகளின் பட்டியல் @@ -48,7 +49,7 @@ StockCorrection=பங்கு திருத்தம் CorrectStock=சரியான இருப்பு StockTransfer=பங்கு பரிமாற்றம் TransferStock=பங்குகளை மாற்றவும் -MassStockTransferShort=வெகுஜன பங்கு பரிமாற்றம் +MassStockTransferShort=Bulk stock change StockMovement=பங்கு இயக்கம் StockMovements=பங்கு இயக்கங்கள் NumberOfUnit=அலகுகளின் எண்ணிக்கை @@ -146,8 +147,9 @@ Replenishments=நிரப்புதல்கள் NbOfProductBeforePeriod=தேர்ந்தெடுக்கப்பட்ட காலத்திற்கு முன் கையிருப்பில் உள்ள தயாரிப்பின் அளவு %s (<%s) NbOfProductAfterPeriod=தேர்ந்தெடுக்கப்பட்ட காலத்திற்குப் பிறகு கையிருப்பில் உள்ள தயாரிப்பின் அளவு %s (> %s) MassMovement=வெகுஜன இயக்கம் -SelectProductInAndOutWareHouse=ஒரு மூலக் கிடங்கு மற்றும் இலக்குக் கிடங்கு, ஒரு தயாரிப்பு மற்றும் அளவு ஆகியவற்றைத் தேர்ந்தெடுத்து "%s" என்பதைக் கிளிக் செய்யவும். தேவையான அனைத்து இயக்கங்களுக்கும் இது முடிந்ததும், "%s" என்பதைக் கிளிக் செய்யவும். +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=பதிவு பரிமாற்றம் +RecordMovements=Record stock movements ReceivingForSameOrder=இந்த ஆர்டருக்கான ரசீதுகள் StockMovementRecorded=பங்குகளின் இயக்கங்கள் பதிவு செய்யப்பட்டன RuleForStockAvailability=பங்கு தேவைகளுக்கான விதிகள் @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=எச்சரிக்கை மற்றும ProductStockWarehouseUpdated=எச்சரிக்கை மற்றும் விரும்பிய உகந்த பங்குக்கான பங்கு வரம்பு சரியாக புதுப்பிக்கப்பட்டது ProductStockWarehouseDeleted=எச்சரிக்கை மற்றும் விரும்பிய உகந்த பங்குக்கான பங்கு வரம்பு சரியாக நீக்கப்பட்டது AddNewProductStockWarehouse=எச்சரிக்கை மற்றும் விரும்பிய உகந்த பங்குக்கான புதிய வரம்பை அமைக்கவும் -AddStockLocationLine=இந்த தயாரிப்புக்கான மற்றொரு கிடங்கைச் சேர்க்க, அளவைக் குறைத்து, கிளிக் செய்யவும் +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=சரக்கு தேதி Inventories=சரக்குகள் NewInventory=புதிய சரக்கு @@ -234,7 +236,7 @@ StockIncrease=பங்கு அதிகரிப்பு StockDecrease=பங்கு குறைவு InventoryForASpecificWarehouse=ஒரு குறிப்பிட்ட கிடங்கிற்கான சரக்கு InventoryForASpecificProduct=ஒரு குறிப்பிட்ட தயாரிப்புக்கான சரக்கு -StockIsRequiredToChooseWhichLotToUse=எந்த லாட்டைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்வுசெய்ய ஸ்டாக் தேவை +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=கட்டாயப்படுத்துங்கள் AlwaysShowFullArbo=கிடங்கு இணைப்புகளின் பாப்அப்பில் கிடங்கின் முழு மரத்தையும் காட்சிப்படுத்தவும் (எச்சரிக்கை: இது வியத்தகு செயல்திறனைக் குறைக்கலாம்) StockAtDatePastDesc=கடந்த காலத்தில் கொடுக்கப்பட்ட தேதியில் பங்குகளை (உண்மையான பங்கு) இங்கே பார்க்கலாம் @@ -254,7 +256,7 @@ ReOpen=மீண்டும் திறக்கவும் ConfirmFinish=சரக்கு மூடப்படுவதை உறுதிப்படுத்துகிறீர்களா? இது உங்கள் பங்குகளை நீங்கள் சரக்குக்குள் உள்ளிட்ட உண்மையான qtyக்கு புதுப்பிக்க அனைத்து பங்கு இயக்கங்களையும் உருவாக்கும். ObjectNotFound=%s கிடைக்கவில்லை MakeMovementsAndClose=இயக்கங்களை உருவாக்கி மூடவும் -AutofillWithExpected=உண்மையான அளவை எதிர்பார்த்த அளவோடு மாற்றவும் +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=இயல்பாக, தயாரிப்பு "பங்கு" தாவலில் தொகுதி விவரங்களைக் காட்டு CollapseBatchDetailHelp=பங்குகள் தொகுதி உள்ளமைவில் தொகுதி விவரம் இயல்புநிலை காட்சியை நீங்கள் அமைக்கலாம் ErrorWrongBarcodemode=அறியப்படாத பார்கோடு பயன்முறை @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=பார்கோடு கொண்ட தயார WarehouseId=கிடங்கு ஐடி WarehouseRef=கிடங்கு Ref SaveQtyFirst=பங்கு இயக்கத்தை உருவாக்கக் கேட்பதற்கு முன், உண்மையான கையிருப்பு அளவுகளை முதலில் சேமிக்கவும். +ToStart=Start InventoryStartedShort=தொடங்கப்பட்டது ErrorOnElementsInventory=பின்வரும் காரணங்களுக்காக செயல்பாடு ரத்து செய்யப்பட்டது: ErrorCantFindCodeInInventory=சரக்குகளில் பின்வரும் குறியீட்டைக் கண்டறிய முடியவில்லை QtyWasAddedToTheScannedBarcode=வெற்றி!! கோரப்பட்ட அனைத்து பார்கோடுகளிலும் அளவு சேர்க்கப்பட்டது. நீங்கள் ஸ்கேனர் கருவியை மூடலாம். -StockChangeDisabled=பங்கு மாற்றம் முடக்கப்பட்டுள்ளது +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=டெர்மினலுக்கான கிடங்கு எதுவும் வரையறுக்கப்படவில்லை +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/ta_IN/ticket.lang b/htdocs/langs/ta_IN/ticket.lang index d4b70db3ad3..7a969be34a6 100644 --- a/htdocs/langs/ta_IN/ticket.lang +++ b/htdocs/langs/ta_IN/ticket.lang @@ -27,6 +27,7 @@ Permission56003=டிக்கெட்டுகளை நீக்கு Permission56004=டிக்கெட்டுகளை நிர்வகிக்கவும் Permission56005=அனைத்து மூன்றாம் தரப்பினரின் டிக்கெட்டுகளையும் பார்க்கவும் (வெளிப்புற பயனர்களுக்கு பயனுள்ளதாக இல்லை, எப்போதும் அவர்கள் சார்ந்திருக்கும் மூன்றாம் தரப்பினருக்கு மட்டுமே) +Tickets=Tickets TicketDictType=டிக்கெட் - வகைகள் TicketDictCategory=டிக்கெட் - குழுக்கள் TicketDictSeverity=டிக்கெட் - தீவிரங்கள் @@ -90,8 +91,8 @@ TicketPublicAccess=அடையாளம் தேவைப்படாத ப TicketSetupDictionaries=டிக்கெட்டின் வகை, தீவிரம் மற்றும் பகுப்பாய்வு குறியீடுகள் அகராதிகளிலிருந்து கட்டமைக்கப்படுகின்றன TicketParamModule=தொகுதி மாறி அமைவு TicketParamMail=மின்னஞ்சல் அமைப்பு -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=டிக்கெட்டை உருவாக்கிய பிறகு அனுப்பப்பட்ட குறுஞ்செய்தி @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=பொது இடைமுகத்திலிரு TicketParamPublicInterface=பொது இடைமுக அமைப்பு TicketsEmailMustExist=டிக்கெட்டை உருவாக்க, ஏற்கனவே உள்ள மின்னஞ்சல் முகவரி தேவை TicketsEmailMustExistHelp=பொது இடைமுகத்தில், புதிய டிக்கெட்டை உருவாக்க தரவுத்தளத்தில் மின்னஞ்சல் முகவரி ஏற்கனவே நிரப்பப்பட்டிருக்க வேண்டும். +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=பொது இடைமுகம் TicketUrlPublicInterfaceLabelAdmin=பொது இடைமுகத்திற்கான மாற்று URL TicketUrlPublicInterfaceHelpAdmin=இணைய சேவையகத்திற்கு மாற்றுப்பெயரை வரையறுத்து, மற்றொரு URL உடன் பொது இடைமுகத்தை கிடைக்கச் செய்யலாம் (இந்த புதிய URL இல் சேவையகம் ஒரு ப்ராக்ஸியாக செயல்பட வேண்டும்) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=டிக்கெட் இப்போது ஒதுக்க TicketChangeType=வகையை மாற்றவும் TicketChangeCategory=பகுப்பாய்வு குறியீட்டை மாற்றவும் TicketChangeSeverity=தீவிரத்தை மாற்றவும் -TicketAddMessage=ஒரு செய்தியைச் சேர்க்கவும் -AddMessage=ஒரு செய்தியைச் சேர்க்கவும் +TicketAddMessage=Add private message MessageSuccessfullyAdded=டிக்கெட் சேர்க்கப்பட்டது TicketMessageSuccessfullyAdded=செய்தி வெற்றிகரமாக சேர்க்கப்பட்டது TicketMessagesList=செய்தி பட்டியல் @@ -202,8 +206,8 @@ TicketSeverity=தீவிரம் ShowTicket=சீட்டைப் பார்க்கவும் RelatedTickets=தொடர்புடைய டிக்கெட்டுகள் TicketAddIntervention=தலையீட்டை உருவாக்குங்கள் -CloseTicket=மூடு|டிக்கெட்டை தீர்க்கவும் -AbandonTicket=டிக்கெட்டை கைவிடு +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=மூடு|ஒரு டிக்கெட்டை தீர்க்கவும் ConfirmCloseAticket=டிக்கெட் மூடுவதை உறுதிப்படுத்தவும் ConfirmAbandonTicket='கைவிடப்பட்டது' என்ற நிலைக்கு டிக்கெட் மூடப்படுவதை உறுதிப்படுத்துகிறீர்களா? @@ -217,18 +221,17 @@ SendMessageByEmail=மின்னஞ்சல் மூலம் செய் TicketNewMessage=புதிய தகவல் ErrorMailRecipientIsEmptyForSendTicketMessage=பெறுநர் காலியாக உள்ளார். மின்னஞ்சல் அனுப்பவில்லை TicketGoIntoContactTab=அவற்றைத் தேர்ந்தெடுக்க, "தொடர்புகள்" தாவலுக்குச் செல்லவும் -TicketMessageMailIntro=அறிமுகம் +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=இந்த உரை மின்னஞ்சலின் தொடக்கத்தில் மட்டுமே சேர்க்கப்படும் மற்றும் சேமிக்கப்படாது. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=கையெழுத்து -TicketMessageMailSignatureHelp=இந்த உரை மின்னஞ்சலின் முடிவில் மட்டுமே சேர்க்கப்படும் மற்றும் சேமிக்கப்படாது. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=பதில் மின்னஞ்சலின் கையொப்பம் -TicketMessageMailSignatureHelpAdmin=பதில் செய்திக்குப் பிறகு இந்த உரை செருகப்படும். +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=டிக்கெட் கார்டில் உள்ள செய்தி பட்டியலில் இந்த உரை மட்டுமே சேமிக்கப்படும். TicketMessageSubstitutionReplacedByGenericValues=மாற்று மாறிகள் பொதுவான மதிப்புகளால் மாற்றப்படுகின்றன. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=அதிலிருந்து காலம் கழிந்தது TicketTimeToRead=படிக்கும் முன் நேரம் கடந்துவிட்டது TicketTimeElapsedBeforeSince=முன் / பின் நேரம் கழிந்தது @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=%s என்ற தலைப்பி TicketAssignedToYou=டிக்கெட் ஒதுக்கப்பட்டது TicketAssignedEmailBody=%s மூலம் #%s டிக்கெட் உங்களுக்கு ஒதுக்கப்பட்டுள்ளது MarkMessageAsPrivate=செய்தியை தனிப்பட்டதாகக் குறிக்கவும் +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=இந்த செய்தி வெளிப்புற பயனர்களுக்கு காட்டப்படாது TicketEmailOriginIssuer=டிக்கெட்டுகளின் தோற்றத்தில் வழங்குபவர் InitialMessage=ஆரம்ப செய்தி @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=பின்வரும் இணைப TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=இந்த மின்னஞ்சலுக்கு நேரடியாக பதிலளிக்க வேண்டாம்! இடைமுகத்தில் பதிலளிக்க இணைப்பைப் பயன்படுத்தவும். TicketPublicInfoCreateTicket=எங்கள் நிர்வாக அமைப்பில் ஆதரவு டிக்கெட்டை பதிவு செய்ய இந்தப் படிவம் உங்களை அனுமதிக்கிறது. -TicketPublicPleaseBeAccuratelyDescribe=சிக்கலை சரியாக விவரிக்கவும். உங்கள் கோரிக்கையைச் சரியாகக் கண்டறிய எங்களை அனுமதிக்க, முடிந்தவரை அதிகமான தகவல்களை வழங்கவும். +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=டிக்கெட் கண்காணிப்பு ஐடியை உள்ளிடவும் TicketTrackId=பொது கண்காணிப்பு ஐடி OneOfTicketTrackId=உங்கள் கண்காணிப்பு ஐடி ஒன்று diff --git a/htdocs/langs/ta_IN/users.lang b/htdocs/langs/ta_IN/users.lang index 20190b5f547..edd2c6bde2b 100644 --- a/htdocs/langs/ta_IN/users.lang +++ b/htdocs/langs/ta_IN/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=குழுவிலிருந்து நீக்கு PasswordChangedAndSentTo=கடவுச்சொல் மாற்றப்பட்டு %s க்கு அனுப்பப்பட்டது. PasswordChangeRequest= %s க்கான கடவுச்சொல்லை மாற்ற கோரிக்கை PasswordChangeRequestSent= %s க்கான கடவுச்சொல்லை மாற்றுவதற்கான கோரிக்கை %s a09a4b730f.17f8 -IfLoginExistPasswordRequestSent=இந்த உள்நுழைவு சரியான கணக்காக இருந்தால், கடவுச்சொல்லை மீட்டமைப்பதற்கான மின்னஞ்சல் அனுப்பப்பட்டது. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=இந்த மின்னஞ்சல் சரியான கணக்காக இருந்தால், கடவுச்சொல்லை மீட்டமைப்பதற்கான மின்னஞ்சல் அனுப்பப்பட்டது. ConfirmPasswordReset=கடவுச்சொல் மீட்டமைப்பை உறுதிப்படுத்தவும் MenuUsersAndGroups=பயனர்கள் மற்றும் குழுக்கள் @@ -68,7 +68,6 @@ CreateDolibarrLogin=ஒரு பயனரை உருவாக்கவும CreateDolibarrThirdParty=மூன்றாம் தரப்பை உருவாக்கவும் LoginAccountDisableInDolibarr=Dolibarr இல் கணக்கு முடக்கப்பட்டது. UsePersonalValue=தனிப்பட்ட மதிப்பைப் பயன்படுத்தவும் -InternalUser=உள் பயனர் ExportDataset_user_1=பயனர்கள் மற்றும் அவர்களின் பண்புகள் DomainUser=டொமைன் பயனர் %s Reactivate=மீண்டும் இயக்கு @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/ta_IN/website.lang b/htdocs/langs/ta_IN/website.lang index 15fa755fd54..2be323e011b 100644 --- a/htdocs/langs/ta_IN/website.lang +++ b/htdocs/langs/ta_IN/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=குறியீடு +WebsiteName=Name of the website WebsiteSetupDesc=நீங்கள் பயன்படுத்த விரும்பும் இணையதளங்களை இங்கே உருவாக்கவும். அவற்றைத் திருத்த, மெனு இணையதளங்களுக்குச் செல்லவும். DeleteWebsite=இணையதளத்தை நீக்கு ConfirmDeleteWebsite=இந்த இணையதளத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா? அதன் அனைத்து பக்கங்களும் உள்ளடக்கமும் அகற்றப்படும். பதிவேற்றப்பட்ட கோப்புகள் (மீடியாஸ் கோப்பகத்தில், ECM தொகுதி, ...) அப்படியே இருக்கும். @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=HTML தலைப்பின் கீழே சேர் WEBSITE_ROBOT=ரோபோ கோப்பு (robots.txt) WEBSITE_HTACCESS=வலைத்தளம் .htaccess கோப்பு WEBSITE_MANIFEST_JSON=இணையதளம் manifest.json கோப்பு -WEBSITE_README=README.md கோப்பு WEBSITE_KEYWORDSDesc=மதிப்புகளைப் பிரிக்க கமாவைப் பயன்படுத்தவும் -EnterHereLicenseInformation=README.md கோப்பை நிரப்ப இங்கே மெட்டா தரவு அல்லது உரிமத் தகவலை உள்ளிடவும். உங்கள் வலைத்தளத்தை டெம்ப்ளேட்டாக விநியோகித்தால், கோப்பு டெம்டேட் தொகுப்பில் சேர்க்கப்படும். +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML தலைப்பு (இந்தப் பக்கத்திற்கு மட்டும்) PageNameAliasHelp=பக்கத்தின் பெயர் அல்லது மாற்றுப்பெயர்.
    இணைய சேவையகத்தின் மெய்நிகர் ஹோஸ்டிலிருந்து (Apacke, Nginx, ... போன்றவை) இணையதளம் இயங்கும் போது SEO URL ஐ உருவாக்கவும் இந்த மாற்றுப்பெயர் பயன்படுத்தப்படுகிறது. இந்த மாற்றுப் பெயரைத் திருத்த, " %s " என்ற பொத்தானைப் பயன்படுத்தவும். EditTheWebSiteForACommonHeader=குறிப்பு: எல்லாப் பக்கங்களுக்கும் தனிப்பயனாக்கப்பட்ட தலைப்பை நீங்கள் வரையறுக்க விரும்பினால், பக்கம்/கன்டெய்னருக்குப் பதிலாக தள அளவில் தலைப்பைத் திருத்தவும். @@ -42,6 +43,8 @@ ViewPageInNewTab=புதிய தாவலில் பக்கத்தை SetAsHomePage=முகப்பு பக்கமாக ஆக்கவும் RealURL=உண்மையான URL ViewWebsiteInProduction=வீட்டு URLகளைப் பயன்படுத்தி இணையதளத்தைப் பார்க்கவும் +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= அப்பாச்சி கொண்ட பயன்பாட்டு / Nginx / ...
    உங்கள் வலை சர்வரில் உருவாக்கவும் (அப்பாச்சி, nginx, ...) PHP ஒரு அர்ப்பணிப்பு மெய்நிகர் ஹோஸ்ட் செயல்படுத்தப்படும் மற்றும் ஒரு ரூட் டைரக்டரி
    %s ExampleToUseInApacheVirtualHostConfig=Apache மெய்நிகர் ஹோஸ்ட் அமைப்பில் பயன்படுத்துவதற்கான எடுத்துக்காட்டு: YouCanAlsoTestWithPHPS= அன்று
    PHP பதிக்கப்பட்ட சர்வர்
    கொண்டு பயன்பாட்டு உருவாக்க சூழல், நீங்கள்
    PHP -S 0.0.0.0:8080 -t %s இயங்கும் மூலம் PHP பதிக்கப்பட்ட இணையதள சர்வர் தளம் (PHP 5.5, தேவை) சோதிக்க விரும்பும் அதிகப்படியான @@ -137,7 +140,7 @@ PagesRegenerated=%s பக்கம்(கள்)/கொள்கலன்(க RegenerateWebsiteContent=இணைய தள தற்காலிக சேமிப்பு கோப்புகளை மீண்டும் உருவாக்கவும் AllowedInFrames=ஃபிரேம்களில் அனுமதிக்கப்படுகிறது DefineListOfAltLanguagesInWebsiteProperties=கிடைக்கக்கூடிய அனைத்து மொழிகளின் பட்டியலை இணைய தள பண்புகளாக வரையறுக்கவும். -GenerateSitemaps=இணையதள தளவரைபடக் கோப்பை உருவாக்கவும் +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=உறுதிப்படுத்தினால், ஏற்கனவே உள்ள தளவரைபடக் கோப்பை அழிப்பீர்கள்... ConfirmSitemapsCreation=தளவரைபட உருவாக்கத்தை உறுதிப்படுத்தவும் SitemapGenerated=தளவரைபடக் கோப்பு %s உருவாக்கப்பட்டது @@ -145,3 +148,10 @@ ImportFavicon=ஃபேவிகான் ErrorFaviconType=ஃபேவிகான் png ஆக இருக்க வேண்டும் ErrorFaviconSize=ஃபேவிகான் 16x16, 32x32 அல்லது 64x64 அளவில் இருக்க வேண்டும் FaviconTooltip=png ஆக இருக்க வேண்டிய படத்தைப் பதிவேற்றவும் (16x16, 32x32 அல்லது 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/ta_IN/withdrawals.lang b/htdocs/langs/ta_IN/withdrawals.lang index 75c7a5fb563..8dbb897b03d 100644 --- a/htdocs/langs/ta_IN/withdrawals.lang +++ b/htdocs/langs/ta_IN/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=கிரெடிட் பரிமாற்ற InvoiceWaitingWithdraw=நேரடிப் பற்றுக்காகக் காத்திருக்கும் விலைப்பட்டியல் InvoiceWaitingPaymentByBankTransfer=கடன் பரிமாற்றத்திற்காக காத்திருக்கும் விலைப்பட்டியல் AmountToWithdraw=திரும்பப் பெற வேண்டிய தொகை +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw='%s'க்கான இன்வாய்ஸ் எதுவும் திறக்கப்படவில்லை. கோரிக்கையைச் செய்ய விலைப்பட்டியல் அட்டையில் '%s' தாவலுக்குச் செல்லவும். -NoSupplierInvoiceToWithdraw=திறந்த 'நேரடி கடன் கோரிக்கைகள்' கொண்ட சப்ளையர் இன்வாய்ஸ் எதுவும் காத்திருக்கவில்லை. கோரிக்கையைச் செய்ய விலைப்பட்டியல் அட்டையில் '%s' தாவலுக்குச் செல்லவும். +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=பயனர் பொறுப்பு WithdrawalsSetup=நேரடி டெபிட் கட்டண அமைப்பு CreditTransferSetup=கடன் பரிமாற்ற அமைப்பு @@ -41,6 +42,7 @@ CreditTransferStatistics=கடன் பரிமாற்ற புள்ள Rejects=நிராகரிக்கிறது LastWithdrawalReceipt=சமீபத்திய %s நேரடி டெபிட் ரசீதுகள் MakeWithdrawRequest=நேரடி டெபிட் கட்டண கோரிக்கையை உருவாக்கவும் +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=கடன் பரிமாற்ற கோரிக்கையை உருவாக்கவும் WithdrawRequestsDone=%s நேரடி டெபிட் கட்டண கோரிக்கைகள் பதிவு செய்யப்பட்டன BankTransferRequestsDone=%s கடன் பரிமாற்ற கோரிக்கைகள் பதிவு செய்யப்பட்டன @@ -99,8 +101,11 @@ CreditDate=அன்று கடன் WithdrawalFileNotCapable=உங்கள் நாடு %s க்கான திரும்பப் பெறுதல் ரசீது கோப்பை உருவாக்க முடியவில்லை (உங்கள் நாடு ஆதரிக்கப்படவில்லை) ShowWithdraw=நேரடி டெபிட் ஆர்டரைக் காட்டு IfInvoiceNeedOnWithdrawPaymentWontBeClosed=இருப்பினும், இன்வாய்ஸில் குறைந்தபட்சம் ஒரு நேரடி டெபிட் பேமெண்ட் ஆர்டராவது இன்னும் செயல்படுத்தப்படவில்லை எனில், முன் திரும்பப் பெறுதல் நிர்வாகத்தை அனுமதிக்கும் வகையில் அது செலுத்தப்பட்டதாக அமைக்கப்படாது. -DoStandingOrdersBeforePayments=இந்த டேப் நேரடி டெபிட் பேமெண்ட் ஆர்டரைக் கோர உங்களை அனுமதிக்கிறது. முடிந்ததும், நேரடி டெபிட் ஆர்டரை உருவாக்கி நிர்வகிக்க, வங்கி->நேரடி டெபிட் மூலம் பணம் செலுத்துதல் என்ற மெனுவிற்குச் செல்லவும். நேரடி டெபிட் ஆர்டர் மூடப்பட்டால், இன்வாய்ஸ்களில் பணம் செலுத்துவது தானாகவே பதிவு செய்யப்படும், மீதமுள்ள பணம் செல்லாததாக இருந்தால் இன்வாய்ஸ்கள் மூடப்படும். -DoCreditTransferBeforePayments=இந்த தாவல் கிரெடிட் பரிமாற்ற ஆர்டரைக் கோர உங்களை அனுமதிக்கிறது. முடிந்ததும், கிரெடிட் டிரான்ஸ்ஃபர் ஆர்டரை உருவாக்கி நிர்வகிக்க வங்கி->கிரெடிட் டிரான்ஸ்ஃபர் மூலம் பணம் செலுத்துதல் என்ற மெனுவிற்குச் செல்லவும். கிரெடிட் டிரான்ஸ்ஃபர் ஆர்டர் மூடப்படும் போது, இன்வாய்ஸ்களில் பணம் செலுத்துவது தானாகவே பதிவு செய்யப்படும், மீதமுள்ள பணம் செல்லாததாக இருந்தால் இன்வாய்ஸ்கள் மூடப்படும். +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=டெபிட் ஆர்டர் கோப்பு CreditTransferFile=கடன் பரிமாற்ற கோப்பு SetToStatusSent="கோப்பு அனுப்பப்பட்டது" நிலைக்கு அமைக்கவும் @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=வெற்றுத் தொகைக்கு SepaMandate=SEPA நேரடி டெபிட் ஆணை SepaMandateShort=SEPA ஆணை PleaseReturnMandate=இந்த ஆணை படிவத்தை %s க்கு மின்னஞ்சல் மூலமாகவோ அல்லது அஞ்சல் மூலமாகவோ திருப்பி அனுப்பவும் -SEPALegalText=இந்த ஆணைப் படிவத்தில் கையொப்பமிடுவதன் மூலம், %s உங்கள் கணக்கில் டெபிட் செய்வதற்கான வழிமுறைகளை (A) %s மற்றும் (B) %s இன் வழிமுறைகளுக்கு இணங்க உங்கள் கணக்கில் டெபிட் செய்ய உங்கள் வங்கியை அங்கீகரிக்கிறீர்கள். உங்கள் உரிமைகளின் ஒரு பகுதியாக, உங்கள் வங்கியுடனான உங்கள் ஒப்பந்தத்தின் விதிமுறைகள் மற்றும் நிபந்தனைகளின் கீழ் உங்கள் வங்கியிடமிருந்து பணத்தைத் திரும்பப் பெற உங்களுக்கு உரிமை உள்ளது. மேலே உள்ள ஆணை தொடர்பான உங்கள் உரிமைகள் உங்கள் வங்கியிலிருந்து நீங்கள் பெறக்கூடிய அறிக்கையில் விளக்கப்பட்டுள்ளன. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=கடனாளர் அடையாளங்காட்டி CreditorName=கடனாளியின் பெயர் SEPAFillForm=(B) குறிக்கப்பட்ட அனைத்து புலங்களையும் பூர்த்தி செய்யவும்* @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=செயல்படுத்தும் தேதி CreateForSepa=நேரடி டெபிட் கோப்பை உருவாக்கவும் ICS=கடனாளி அடையாளங்காட்டி - ICS +IDS=Debitor Identifier END_TO_END="EndToEndId" SEPA XML டேக் - ஒரு பரிவர்த்தனைக்கு தனிப்பட்ட ஐடி ஒதுக்கப்படும் USTRD="கட்டமைக்கப்படாத" SEPA XML குறிச்சொல் ADDDAYS=செயல்படுத்தும் தேதியில் நாட்களைச் சேர்க்கவும் @@ -154,3 +160,4 @@ ErrorICSmissing=%s வங்கிக் கணக்கில் ICS இல் TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=நேரடி டெபிட் ஆர்டரின் மொத்த அளவு வரிகளின் தொகையிலிருந்து வேறுபடுகிறது WarningSomeDirectDebitOrdersAlreadyExists=எச்சரிக்கை: %s தொகைக்காகக் கோரப்பட்ட சில நேரடி டெபிட் ஆர்டர்கள் (%s) ஏற்கனவே நிலுவையில் உள்ளன WarningSomeCreditTransferAlreadyExists=எச்சரிக்கை: %s தொகைக்கு ஏற்கனவே சில கிரெடிட் டிரான்ஸ்ஃபர் (%s) கோரப்பட்டுள்ளது +UsedFor=Used for %s diff --git a/htdocs/langs/ta_IN/workflow.lang b/htdocs/langs/ta_IN/workflow.lang index 71b1059c002..a1bab1b40a7 100644 --- a/htdocs/langs/ta_IN/workflow.lang +++ b/htdocs/langs/ta_IN/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=வணிக முன்மொழிவு descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=வணிக முன்மொழிவு கையொப்பமிடப்பட்ட பிறகு தானாகவே வாடிக்கையாளர் விலைப்பட்டியலை உருவாக்கவும் (புதிய விலைப்பட்டியல் முன்மொழிவின் அதே தொகையைக் கொண்டிருக்கும்) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=ஒப்பந்தம் சரிபார்க்கப்பட்ட பிறகு தானாகவே வாடிக்கையாளர் விலைப்பட்டியலை உருவாக்கவும் descWORKFLOW_ORDER_AUTOCREATE_INVOICE=விற்பனை ஆர்டர் மூடப்பட்ட பிறகு தானாகவே வாடிக்கையாளர் விலைப்பட்டியலை உருவாக்கவும் (புதிய விலைப்பட்டியல் ஆர்டரின் அதே தொகையைக் கொண்டிருக்கும்) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=விற்பனை ஆர்டரை பில் செய்யும்போது பில் செய்யப்பட்டதாக இணைக்கப்பட்ட மூல முன்மொழிவை வகைப்படுத்தவும் (மற்றும் ஆர்டரின் தொகையானது கையொப்பமிடப்பட்ட இணைக்கப்பட்ட முன்மொழிவின் மொத்தத் தொகையாக இருந்தால்) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=வாடிக்கையாளர் விலைப்பட்டியல் சரிபார்க்கப்படும் போது இணைக்கப்பட்ட மூல முன்மொழிவை பில் செய்யப்பட்டதாக வகைப்படுத்தவும் (மற்றும் விலைப்பட்டியல் தொகையானது கையொப்பமிடப்பட்ட இணைக்கப்பட்ட திட்டத்தின் மொத்தத் தொகையாக இருந்தால்) @@ -21,10 +22,15 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=விற்பனை descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=ஒரு வரவேற்பு சரிபார்க்கப்படும் போது பெறப்பட்ட இணைக்கப்பட்ட மூல கொள்முதல் ஆர்டரை வகைப்படுத்தவும் (மற்றும் அனைத்து வரவேற்புகளிலும் பெறப்பட்ட அளவு வாங்குதல் ஆர்டரில் உள்ளதைப் போலவே புதுப்பிக்கவும்) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=ஒரு வரவேற்பு மூடப்படும் போது பெறப்பட்ட இணைக்கப்பட்ட மூல கொள்முதல் ஆர்டரை வகைப்படுத்தவும் (மற்றும் அனைத்து வரவேற்புகளிலும் பெறப்பட்ட அளவு வாங்குதல் ஆர்டரில் உள்ளதைப் போலவே புதுப்பிக்கவும்) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=இணைக்கப்பட்ட சப்ளையர் ஆர்டர் சரிபார்க்கப்படும் போது வரவேற்புகளை "பில்" என வகைப்படுத்தவும் +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=டிக்கெட் மூடப்படும் போது, டிக்கெட்டுடன் இணைக்கப்பட்ட அனைத்து தலையீடுகளையும் மூடு AutomaticCreation=தானியங்கி உருவாக்கம் AutomaticClassification=தானியங்கி வகைப்பாடு # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=வாடிக்கையாளர் இன்வாய்ஸ் சரிபார்க்கப்படும் போது இணைக்கப்பட்ட மூல ஏற்றுமதி மூடப்பட்டதாக வகைப்படுத்தவும் +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/tg_TJ/accountancy.lang b/htdocs/langs/tg_TJ/accountancy.lang index 6abf6edd9f9..4470fcfc624 100644 --- a/htdocs/langs/tg_TJ/accountancy.lang +++ b/htdocs/langs/tg_TJ/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Кишварҳое, ки дар ИАА нестанд CountriesInEECExceptMe=Кишварҳо дар ЕЭК ба истиснои %s CountriesExceptMe=Ҳама кишварҳо ба истиснои %s AccountantFiles=Ҳуҷҷатҳои манбаъро содир кунед -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Барои содироти маҷаллаҳои худ, вуруди менюи %s - %s -ро истифода баред. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Аз ҳисоби ҳисоби баҳисобгирӣ дидан кунед VueBySubAccountAccounting=Бо зерсохтори баҳисобгирӣ дидан кунед @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Ҳисоби асосии баҳисобгир MainAccountForUsersNotDefined=Ҳисоби асосии баҳисобгирӣ барои корбароне, ки дар танзим муайян нашудаанд MainAccountForVatPaymentNotDefined=Ҳисоби асосии баҳисобгирии пардохти ААИ дар танзим муқаррар нашудааст MainAccountForSubscriptionPaymentNotDefined=Ҳисоби асосии баҳисобгирии пардохти обуна дар танзимот муайян нашудааст +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Минтақаи баҳисобгирӣ AccountancyAreaDescIntro=Истифодаи модули ҳисобдорӣ дар якчанд марҳила сурат мегирад: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Сабти мустақими амалиёт дар с ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Экспорти лоиҳаро дар маҷалла фаъол созед ACCOUNTANCY_COMBO_FOR_AUX=Рӯйхати combo -ро барои ҳисоби фаръӣ фаъол созед (агар шумо шумораи зиёди шахсони сеюм дошта бошед, қобилияти ҷустуҷӯи як қисми арзишро вайрон кунед) ACCOUNTING_DATE_START_BINDING=Санаи оғози ҳатмӣ ва интиқол дар муҳосиботро муайян кунед. Дар зери ин сана амалиётҳо ба ҳисобдорӣ гузаронида намешаванд. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Ҳангоми интиқоли ҳисобдорӣ, давраи пешфарзро бо нобаёнӣ интихоб кунед +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Журнал фурӯшед -ACCOUNTING_PURCHASE_JOURNAL=Журнал харед -ACCOUNTING_MISCELLANEOUS_JOURNAL=Маҷаллаи гуногун +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Маҷаллаи ҳисоботи хароҷот -ACCOUNTING_SOCIAL_JOURNAL=Маҷаллаи иҷтимоӣ +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Маҷаллаи нав дорад +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Маҷаллаи иҷтимоӣ ACCOUNTING_RESULT_PROFIT=Ҳисоби баҳисобгирии натиҷаҳо (фоида) ACCOUNTING_RESULT_LOSS=Ҳисоби баҳисобгирии натиҷаҳо (талафот) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Маҷаллаи басташавӣ -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Ҳисоби баҳисобгирии интиқоли бонкӣ +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Ҳисоби интиқоли бонк -ACCOUNTING_ACCOUNT_SUSPENSE=Ҳисоби баҳисобгирии интизорӣ -DONATION_ACCOUNTINGACCOUNT=Ҳисоби баҳисобгирӣ барои бақайдгирии хайрияҳо -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Ҳисоби баҳисобгирӣ барои бақайдгирии обунаҳо +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои бақайдгирии пасандози муштарӣ -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти харидашуда (агар дар варақаи маҳсулот муайян нашуда бошад) истифода мешавад -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти харидашуда дар EEC (агар дар варақаи маҳсулот муайян нашуда бошад) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти харидашуда ва берун аз ИА ворид карда мешавад (агар дар варақаи маҳсулот муайян нашуда бошад) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти фурӯхташуда (агар дар варақаи маҳсулот муайян нашуда бошад) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Ҳисоби баҳисобгирӣ барои маҳсулоти дар EEC фурӯхташуда (агар дар варақаи маҳсулот муайян нашуда бошад) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти фурӯхташуда ва берун аз EEC содиршуда (агар дар варақаи маҳсулот муайян нашуда бошад) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои хидматҳои харидашуда (агар дар варақаи хидмат муайян нашуда бошад) истифода мешавад -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои хидматҳои харидашуда дар EEC (агар дар варақаи хидматӣ муайян нашуда бошад) истифода мешавад -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои хидматҳои харидашуда ва берун аз EEC воридшуда (агар дар варақаи хидматрасонӣ муайян нашуда бошад) истифода мешавад -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои хидматҳои фурӯхташуда (агар дар варақаи хидмат муайян нашуда бошад) истифода мешавад -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои хидматҳои дар EEC фурӯхташуда (агар дар варақаи хидматрасонӣ муайян нашуда бошад) истифода мешавад -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои хидматҳои фурӯхташуда ва берун аз EEC (агар дар варақаи хидматрасонӣ муайян нашуда бошад) истифода мешавад +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Навъи ҳуҷҷат Docdate=Сана @@ -211,7 +217,7 @@ Codejournal=Маҷалла JournalLabel=Нишони рӯзнома NumPiece=Рақами дона TransactionNumShort=Адад муомилот -AccountingCategory=Гурӯҳи фармоишӣ +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Гурӯҳбандӣ аз рӯи ҳисоби китоби умумӣ GroupBySubAccountAccounting=Гурӯҳбандӣ аз рӯи ҳисоби зерпардохт AccountingAccountGroupsDesc=Шумо метавонед дар ин ҷо баъзе гурӯҳҳои баҳисобгирии муҳосибиро муайян кунед. Онҳо барои ҳисоботи шахсии баҳисобгирӣ истифода мешаванд. @@ -265,13 +271,13 @@ Reconcilable=Оштӣ TotalVente=Маблағи умумии гардиш пеш аз андоз TotalMarge=Маржаи умумии фурӯш -DescVentilCustomer=Дар ин ҷо рӯйхати хатҳои фактураи муштариёнро, ки ба суратҳисоби баҳисобгирии маҳсулот баста шудаанд, баррасӣ кунед -DescVentilMore=Дар аксари ҳолатҳо, агар шумо маҳсулот ё хидматҳои пешакӣ муайяншударо истифода баред ва рақами суратҳисобро дар корти маҳсулот/хидмат гузоштед, барнома қодир аст, ки байни хатҳои ҳисобнома -фактураи шумо ва суратҳисоби муҳосибии нақшаи суратҳисобҳои шумо ҳатмӣ бошад. як клик бо тугмаи "%s" . Агар ҳисоб дар кортҳои маҳсулот/хидматрасонӣ насб нашуда бошад ё агар шумо то ҳол баъзе сатрҳои ба суратҳисоб алоқаманд набошед, шумо бояд аз менюи " %s " дастӣ ҳатмӣ кунед. -DescVentilDoneCustomer=Дар ин ҷо ба рӯйхати хатҳои муштариёни ҳисобнома -фактура ва ҳисоби баҳисобгирии маҳсулоти онҳо муроҷиат кунед -DescVentilTodoCustomer=Хатҳои фактураро, ки аллакай бо ҳисоби баҳисобгирии маҳсулот баста нашудаанд, бандед -ChangeAccount=Ҳисоби баҳисобгирии маҳсулот/хидматро барои хатҳои интихобшуда бо ҳисоби баҳисобгирии зерин иваз кунед: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Дар ин ҷо ба рӯйхати хатҳои фактураи фурӯшанда муроҷиат кунед, ки ба суратҳисоби баҳисобгирии маҳсулот баста ё ҳанӯз баста нашудаанд (танҳо сабтҳое, ки ҳоло дар муҳосибот интиқол дода нашудаанд) намоёнанд) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Дар ин ҷо ба рӯйхати хатҳои фактураҳои фурӯшанда ва ҳисоби баҳисобгирии онҳо муроҷиат кунед DescVentilTodoExpenseReport=Хатҳои ҳисоботи хароҷотро, ки аллакай бо ҳисоби баҳисобгирии пардохтҳо алоқаманд нестанд, пайваст кунед DescVentilExpenseReport=Дар ин ҷо ба рӯйхати хатҳои ҳисоботи хароҷот, ки ба суратҳисоби баҳисобгирӣ вобастаанд, муроҷиат кунед @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Агар шумо ҳисоби баҳисобгир DescVentilDoneExpenseReport=Дар ин ҷо ба рӯйхати хатҳои ҳисобот дар бораи хароҷот ва ҳисоби баҳисобгирии хароҷоти онҳо муроҷиат кунед Closure=Бастани солона -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Ҳама гуна тағир ё нест кардани навиштан, навиштан ва нест кардан манъ карда мешавад. Ҳама сабтҳо барои машқ бояд тасдиқ карда шаванд, вагарна пӯшида намешавад ValidateHistory=Ба таври худкор пайваст кунед AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Хато, шумо наметавонед ин ҳисоби баҳисобгириро нест кунед, зеро он истифода мешавад +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Тавозун FicheVentilation=Корти ҳатмӣ GeneralLedgerIsWritten=Амалиётҳо дар дафтар навишта мешаванд GeneralLedgerSomeRecordWasNotRecorded=Баъзе транзаксияҳоро нашр кардан ғайриимкон буд. Агар паёми хатогии дигар вуҷуд надошта бошад, ин шояд аз он сабаб бошад, ки онҳо аллакай рӯзноманигор буданд. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Рӯйхати маҳсулоте, ки ба ягон ҳисоби баҳисобгирӣ вобастагӣ надоранд +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Пайвастшавиро тағир диҳед Accounted=Дар дафтари баҳисобгирӣ NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=Амалиётҳои гуногун AccountingJournalType2=Фурӯш AccountingJournalType3=Харидҳо AccountingJournalType4=Бонк -AccountingJournalType5=Ҳисобот оид ба хароҷот +AccountingJournalType5=Expense reports AccountingJournalType8=Инвентаризатсия AccountingJournalType9=Нав-дорад +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Ин маҷалла аллакай истифода мешавад AccountingAccountForSalesTaxAreDefinedInto=Эзоҳ: Ҳисоби баҳисобгирии андоз аз фурӯш дар менюи %s - %s муайян карда шудааст NumberOfAccountancyEntries=Шумораи сабтҳо @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Шумораи ҳаракатҳо ACCOUNTING_DISABLE_BINDING_ON_SALES=Ҳатмӣ ва интиқол дар муҳосибот дар фурӯшро хомӯш кунед (фактураҳои муштариён ҳангоми баҳисобгирӣ ба назар гирифта намешаванд) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Ҳатмӣ ва интиқол дар муҳосибот ҳангоми харидро хомӯш кунед (фактураҳои фурӯшанда ҳангоми баҳисобгирӣ ба назар гирифта намешаванд) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Ҳатмӣ ва интиқол дар муҳосибот дар ҳисоботи хароҷотро хомӯш кунед (ҳисоботи хароҷот ҳангоми баҳисобгирӣ ба назар гирифта намешаванд) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Тасдиқи тавлиди файли содироти баҳисобгирӣ? ExportDraftJournal=Содироти маҷаллаи лоиҳа @@ -398,7 +407,11 @@ Calculated=Ҳисоб карда шудааст Formula=Формула ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Сабтҳои баҳисобгирӣ @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Рамзи бисёрҷониба (Idevise) DateExport=Содироти сана WarningReportNotReliable=Огоҳӣ, ин гузориш ба дафтарча асос наёфтааст, аз ин рӯ амалиётеро, ки дар дафтар ба таври дастӣ тағир дода шудааст, дар бар намегирад. Агар рӯзноманигории шумо нав бошад, назари ҳисобдорӣ дақиқтар аст. ExpenseReportJournal=Ҳисоботи хароҷоти рӯзнома -InventoryJournal=Маҷаллаи инвентаризатсия NAccounts=ҳисобҳои %s diff --git a/htdocs/langs/tg_TJ/admin.lang b/htdocs/langs/tg_TJ/admin.lang index fea843ceb5f..d23d2f3cd7d 100644 --- a/htdocs/langs/tg_TJ/admin.lang +++ b/htdocs/langs/tg_TJ/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Ҷамъоварии мизоҷон WarningModuleNotActive=Модули %s бояд фаъол карда шавад WarningOnlyPermissionOfActivatedModules=Дар ин ҷо танҳо иҷозатҳои марбут ба модулҳои фаъол нишон дода шудаанд. Шумо метавонед модулҳои дигарро дар саҳифаи Home-> Setup-> Modules фаъол созед. DolibarrSetup=Dolibarr насб ё навсозӣ кунед -InternalUser=Истифодабарандаи дохилӣ -ExternalUser=Истифодабарандаи беруна InternalUsers=Истифодабарандагони дохилӣ ExternalUsers=Истифодабарандагони беруна UserInterface=Интерфейси корбар @@ -109,7 +107,7 @@ NextValueForReplacements=Арзиши навбатӣ (иваз) MustBeLowerThanPHPLimit=Эзоҳ: конфигуратсияи PHP -и шумо айни замон андозаи максималии файлҳоро барои боргузорӣ ба %s %s маҳдуд мекунад, новобаста аз арзиши ин параметр NoMaxSizeByPHPLimit=Эзоҳ: Дар конфигуратсияи PHP -и шумо маҳдудият муқаррар карда нашудааст MaxSizeForUploadedFiles=Андозаи ҳадди аксари файлҳои боршуда (0 барои манъ кардани боргузорӣ) -UseCaptchaCode=Дар саҳифаи воридшавӣ коди графикӣ (CAPTCHA) -ро истифода баред +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Роҳи пурра ба фармони антивирус AntiVirusCommandExample=Мисол барои ClamAv Daemon (талаб clamav-daemon):/usr/bin/clamdscan
    Мисол барои ClamWin (хеле суст): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Параметрҳои бештар дар сатри фармон @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (арзиши пешфарз дар php.in MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Порт SMTP/SMTPS (Дар системаҳои ба Unix монанд ба PHP муайян нашудааст) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Хости SMTP/SMTPS (Дар системаҳои ба Unix монанд ба PHP муайян нашудааст) MAIN_MAIL_EMAIL_FROM=Почтаи ирсолкунанда барои мактубҳои автоматӣ (арзиши пешфарз дар php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Почтаи электронӣ, ки барои хатогӣ истифода мешавад, паёмҳои электрониро бармегардонад (майдонҳои 'Errors-To' дар мактубҳои фиристодашуда) MAIN_MAIL_AUTOCOPY_TO= Нусхабардорӣ (Bcc) ҳамаи мактубҳои ирсолшуда ба MAIN_DISABLE_ALL_MAILS=Ҳама фиристодани почтаи электрониро хомӯш кунед (бо мақсади санҷиш ё намоишҳо) @@ -439,8 +438,10 @@ Unique=Беназир Boolean=Були (як қуттии қайд) ExtrafieldPhone = Телефон ExtrafieldPrice = Нарх +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Почтаи электронӣ ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Рӯйхатро интихоб кунед ExtrafieldSelectList = Аз ҷадвал интихоб кунед ExtrafieldSeparator=Ҷудокунанда (майдон нест) @@ -477,7 +478,7 @@ InstalledInto=Дар феҳристи %s насб карда шудааст BarcodeInitForThirdparties=Барри коди оммавӣ барои шахсони сеюм BarcodeInitForProductsOrServices=Штрихкоди оммавӣ ё аз нав танзимкунии маҳсулот ё хидмат CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Арзиши ибтидоӣ барои сабтҳои холии %s +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Ҳама арзишҳои штрих -кодро тоза кунед ConfirmEraseAllCurrentBarCode=Шумо мутмаинед, ки мехоҳед ҳамаи арзишҳои штрих -кодро нест кунед? AllBarcodeReset=Ҳама арзишҳои штрих -код хориҷ карда шуданд @@ -501,10 +502,11 @@ WarningPHPMail=ҲУШДОР: Танзимот барои фиристодани WarningPHPMailA=- Истифодаи сервери провайдери хидматрасони почтаи электронӣ эътимоднокии почтаи электронии шуморо афзоиш медиҳад, аз ин рӯ интиқолро бе нишонгузории SPAM афзоиш медиҳад. WarningPHPMailB=- Баъзе провайдерҳои хидматрасони почтаи электронӣ (ба монанди Yahoo) ба шумо имкон намедиҳанд, ки аз сервери дигар аз сервери худ паёми электронӣ фиристед. Танзимоти кунунии шумо сервери барномаро барои фиристодани почтаи электронӣ истифода мебарад, на сервери провайдери почтаи электронии шумо, аз ин рӯ баъзе гирандагон (оне, ки бо протоколи маҳдудкунандаи DMARC мувофиқ аст) аз провайдери почтаи электронии шумо мепурсанд, ки оё онҳо метавонанд почтаи электронии шуморо қабул кунанд ва баъзе провайдерҳои почтаи электронӣ (мисли Yahoo) метавонад "не" посух диҳад, зеро сервер аз они онҳо нест, аз ин рӯ шумораи ками мактубҳои фиристодаи шумо барои интиқол қабул карда намешаванд (инчунин аз квотаи ирсоли провайдери почтаи электронии худ эҳтиёт шавед). WarningPHPMailC=- Истифодаи сервери SMTP -и провайдери хидматрасони почтаи электронии худ барои фиристодани мактубҳо низ ҷолиб аст, аз ин рӯ ҳамаи мактубҳои аз барнома фиристодашуда низ дар феҳристи "Ирсолшуда" -и қуттии почтаи шумо сабт карда мешаванд. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Агар провайдери SMTP -и почтаи электронии шумо бояд муштарии почтаи электрониро бо баъзе суроғаҳои IP маҳдуд кунад (хеле кам), ин суроғаи IP -и агенти корбари почта (MUA) барои барномаи ERP CRM -и шумост: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Барои нишон додани тавсиф пахш кунед DependsOn=Ин модул ба модулҳо ниёз дорад RequiredBy=Ин модул аз ҷониби модулҳо талаб карда мешавад @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Мисол:
    Барои шакл сох PageUrlForDefaultValuesList=
    Мисол:
    Барои саҳифае, ки шахсони сеюмро номбар мекунад, он %s аст.
    Барои URL -и модулҳои беруна, ки дар феҳристи фармоишӣ насб шудаанд, "custom/" - ро дар бар намегирад, аз ин рӯ роҳеро истифода баред mymodule/mypagelist.php , на custom/mymodule/mypagelist.php
    Агар шумо хоҳед, ки арзиши пешфарз танҳо дар он бошад, ки url ягон параметр дошта бошад, шумо метавонед %s истифода баред AlsoDefaultValuesAreEffectiveForActionCreate=Инчунин дар хотир доред, ки аз нав сабт кардани арзишҳои пешфарз барои эҷоди шакл танҳо барои саҳифаҳое тарҳрезӣ шудааст, ки дуруст тарҳрезӣ шудаанд (ҳамин тавр бо параметр = action = create or presend ...) EnableDefaultValues=Танзими арзишҳои пешфарзро фаъол созед -EnableOverwriteTranslation=Истифодаи тарҷумаи аз нав сабтшударо фаъол созед +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Тарҷумаи калид бо ин рамз пайдо шудааст. Барои тағир додани ин арзиш, шумо бояд онро аз тарҷумаи Home-Setup-вироиш кунед. WarningSettingSortOrder=Огоҳӣ, муқаррар кардани фармони пешфарз метавонад ҳангоми ба саҳифаи рӯйхат рафтан ба хатои техникӣ оварда расонад, агар майдон майдони номаълум бошад. Агар шумо чунин хатогиро эҳсос кунед, ба ин саҳифа баргардед, то тартиботи пешфарзро хориҷ кунед ва рафтори пешфарзро барқарор кунед. Field=Майдон @@ -645,9 +647,9 @@ Module2400Name=Рӯйдодҳо/рӯзнома Module2400Desc=Ҳодисаҳоро пайгирӣ кунед. Ҳодисаҳои автоматиро бо мақсади пайгирӣ сабт кунед ё рӯйдодҳо ё вохӯриҳои дастиро сабт кунед. Ин модули асосӣ барои идоракунии муносибатҳои хуб бо муштариён ё фурӯшандагон мебошад. Module2500Name=DMS / ECM Module2500Desc=Системаи идоракунии ҳуҷҷатҳо / Идоракунии мундариҷаи электронӣ. Ташкили худкори ҳуҷҷатҳои тавлидшуда ё захирашудаи шумо. Ҳангоми зарурат онҳоро мубодила кунед. -Module2600Name=Хидматҳои API/Web (сервери SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Сервери Dolibarr SOAP -ро, ки хидматҳои API -ро пешниҳод мекунад, фаъол созед -Module2610Name=Хидматҳои API/Web (сервери REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Сервери Dolibarr REST -ро, ки хидматҳои API -ро пешниҳод мекунад, фаъол созед Module2660Name=Ба WebServices занг занед (муштарии SOAP) Module2660Desc=Мизоҷи хидматҳои вебии Dolibarr -ро фаъол созед (Онро барои интиқоли маълумот/дархостҳо ба серверҳои беруна истифода бурдан мумкин аст. Айни замон танҳо фармоишҳои харид дастгирӣ карда мешаванд.) @@ -698,6 +700,7 @@ Module62000Name=Инкотермс Module62000Desc=Илова кардани хусусиятҳо барои идоракунии Incoterms Module63000Name=Манбаъҳо Module63000Desc=Идоракунии захираҳо (принтерҳо, мошинҳо, ҳуҷраҳо, ...) барои тақсим кардани чорабиниҳо +Module94160Name=Receptions Permission11=Ҳисобномаҳои муштариёнро хонед Permission12=Ҳисобнома -фактураҳои муштариёнро эҷод/тағир диҳед Permission13=Ҳисобнома -фактураҳои муштариёнро беэътибор кунед @@ -714,6 +717,7 @@ Permission27=Пешниҳодҳои тиҷоратиро нест кунед Permission28=Пешниҳодҳои тиҷоратиро содир кунед Permission31=Маҳсулотро хонед Permission32=Маҳсулотро эҷод/тағир диҳед +Permission33=Read prices products Permission34=Маҳсулотро нест кунед Permission36=Маҳсулоти пинҳоншударо бинед/идора кунед Permission38=Маҳсулотларни экспорт қилиш @@ -739,6 +743,7 @@ Permission79=Эҷод/тағир додани обунаҳо Permission81=Фармоишҳои муштариёнро хонед Permission82=Фармоишҳои муштариёнро эҷод/тағир диҳед Permission84=Фармоишҳои муштариёнро тасдиқ кунед +Permission85=Generate the documents sales orders Permission86=Ба мизоҷон фармоиш фиристед Permission87=Фармоишҳои муштариёнро пӯшед Permission88=Фармоишҳои муштариёнро бекор кунед @@ -840,9 +845,9 @@ Permission286=Тамосҳои содиротӣ Permission291=Тарифҳоро хонед Permission292=Иҷозатномаҳоро дар тарофаҳо таъин кунед Permission293=Тарофаҳои мизоҷонро тағир диҳед -Permission300=Баркодҳоро хонед -Permission301=Баркодҳоро эҷод/тағир диҳед -Permission302=Баркодҳоро нест кунед +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Хидматҳоро хонед Permission312=Хизмат/обуна ба шартнома таъин кунед Permission331=Хатчӯбҳоро хонед @@ -874,6 +879,7 @@ Permission525=Ҳисобкунаки қарзро дастрас кунед Permission527=Қарзҳои содиротӣ Permission531=Хидматҳоро хонед Permission532=Хидматҳоро эҷод/тағир диҳед +Permission533=Read prices services Permission534=Хидматҳоро нест кунед Permission536=Хидматҳои пинҳонро бинед/идора кунед Permission538=Хидматҳои содиротӣ @@ -968,13 +974,14 @@ Permission3301=Модулҳои нав эҷод кунед Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Мундариҷаи вебсайтро хонед Permission10002=Эҷод/тағир додани мундариҷаи вебсайт (мундариҷаи html ва javascript) Permission10003=Эҷод/тағир додани мундариҷаи вебсайт (коди динамикии php). Хатарнок, бояд ба таҳиягарони маҳдуд ҳифз карда шавад. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Навъи воҳид SetupSaved=Танзимот захира карда шуд SetupNotSaved=Танзимот захира карда нашудааст +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Бозгашт ба рӯйхати модулҳо BackToDictionaryList=Бозгашт ба рӯйхати луғатҳо TypeOfRevenueStamp=Навъи мӯҳри андоз @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Арзиши доимии конфигуратсия ConstantIsOn=Опсияи %s фаъол аст NbOfDays=Шумораи рӯзҳо AtEndOfMonth=Дар охири моҳ -CurrentNext=Ҷорӣ/Оянда +CurrentNext=A given day in month Offset=Офсет AlwaysActive=Ҳамеша фаъол Upgrade=Навсозӣ кардан @@ -1235,11 +1246,13 @@ BrowserName=Номи браузер BrowserOS=Браузери OS ListOfSecurityEvents=Рӯйхати рӯйдодҳои амниятии Dolibarr SecurityEventsPurged=Чораҳои амниятӣ тоза карда шуданд +TrackableSecurityEvents=Trackable security events LogEventDesc=Сабтро барои рӯйдодҳои мушаххаси амниятӣ фаъол созед. Администраторҳо гузоришро тавассути менюи %s - %s меноманд. Огоҳӣ, ин хусусият метавонад миқдори зиёди маълумотро дар пойгоҳи дода тавлид кунад. AreaForAdminOnly=Параметрҳои танзимро танҳо корбарони администратор танзим карда метавонанд. SystemInfoDesc=Маълумоти система маълумоти мухталифи техникист, ки шумо дар ҳолати танҳо хондан мегиред ва танҳо барои маъмурон намоён аст. SystemAreaForAdminOnly=Ин минтақа танҳо барои корбарони администратор дастрас аст. Иҷозатҳои корбарони Dolibarr ин маҳдудиятро тағир дода наметавонанд. CompanyFundationDesc=Маълумоти ширкат/ташкилоти худро таҳрир кунед. Ҳангоми анҷом додан тугмаи "%s" -ро дар поёни саҳифа клик кунед. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Агар шумо муҳосиб/муҳосиби беруна дошта бошед, шумо метавонед маълумоти онро дар ин ҷо таҳрир кунед. AccountantFileNumber=Рамзи муҳосиб DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=Функсияҳои SSL дар PHP -и шумо дастрас нестанд DownloadMoreSkins=Пӯстҳои бештар барои зеркашӣ SimpleNumRefModelDesc=Рақами истинодро дар формати %syymm-nnnn бармегардонад, ки дар он yy сол аст, мм моҳ аст ва nnnn рақами пайдарпайи афзояндаи худкор нест, +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Рақами истинодро дар формати %s-nnnn бармегардонад, ки дар он nnnn рақами пайдарпайи афзояндаи худкор аст ва бидуни барқарорсозӣ ShowProfIdInAddress=Нишон додани ID касбӣ бо суроғаҳо ShowVATIntaInAddress=Рақами андоз аз арзиши иловашударо дар дохили ҷомеа пинҳон кунед @@ -1376,7 +1391,7 @@ GetBarCode=Баркодро гиред NumberingModules=Моделҳои рақамгузорӣ DocumentModules=Моделҳои ҳуҷҷат ##### Module password generation -PasswordGenerationStandard=Гузарвожаеро, ки тибқи алгоритми дохилии Dolibarr тавлид шудааст, баргардонед: аломатҳои %s дорои рақамҳои муштарак ва аломатҳои хурд. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Пароли тавлидшударо пешниҳод накунед. Парол бояд дастӣ навишта шавад. PasswordGenerationPerso=Паролро мувофиқи конфигуратсияи шахсан муайянкардаи худ баргардонед. SetupPerso=Мувофиқи конфигуратсияи шумо @@ -1430,6 +1445,10 @@ SuppliersPayment=Пардохтҳои фурӯшанда SupplierPaymentSetup=Танзими пардохтҳои фурӯшанда InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Танзими модули пешниҳодҳои тиҷоратӣ ProposalsNumberingModules=Моделҳои рақамгузории пешниҳоди тиҷоратӣ @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Нишонаи обӣ дар лоиҳаи шарт ##### Members ##### MembersSetup=Танзими модули аъзоён MemberMainOptions=Вариантҳои асосӣ +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Логинро барои ҳар як аъзо идора кунед AdherentMailRequired=Паёми электронӣ барои сохтани узви нав лозим аст MemberSendInformationByMailByDefault=Қуттии қайд барои фиристодани тасдиқи почта ба аъзоён (тасдиқ ё обунаи нав) бо нобаёнӣ фаъол аст MemberCreateAnExternalUserForSubscriptionValidated=Барои ҳар як обунаи узви нави тасдиқшуда воридшавии корбари беруна созед -VisitorCanChooseItsPaymentMode=Меҳмонон метавонанд аз усулҳои дастраси пардохт интихоб кунанд +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Ёддошти худкор тавассути почтаи электронии обунаҳои мӯҳлати истифодашударо фаъол созед. Эзоҳ: Модули %s бояд барои фиристодани ёдраскуниҳо фаъол ва дуруст танзим карда шавад. MembersDocModules=Шаблонҳои ҳуҷҷатҳо барои ҳуҷҷатҳое, ки аз сабти аъзоён тавлид шудаанд ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Муҳаррири пешрафтаро фаъол созед: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=Таъсис/нашри WYSIWIG хатҳои тафсилоти маҳсулот барои ҳама субъектҳо (пешниҳодҳо, фармоишҳо, фактураҳо ва ғайра). Огоҳӣ: Истифодаи ин хосият барои ин ҳолат ба таври ҷиддӣ тавсия дода намешавад, зеро он метавонад ҳангоми сохтани файлҳои PDF бо аломатҳои махсус ва форматкунии саҳифа мушкилот эҷод кунад. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Эҷод/нашри WYSIWIG барои почтаи электронии оммавӣ (Tools-> eMailing) FCKeditorForUserSignature=Эҷоди WYSIWIG/нашри имзои корбар FCKeditorForMail=Эҷод/нашри WYSIWIG барои ҳама почта (ба истиснои Tools-> eMailing) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Менюи меню дар куҷо менюи навро ни DetailMenuModule=Номи модул, агар вуруди меню аз модул бошад DetailType=Навъи меню (боло ё чап) DetailTitre=Тамғаи меню ё рамзи тамға барои тарҷума -DetailUrl=URL, ки меню ба шумо мефиристад (Истиноди мутлақи URL ё истиноди беруна бо http: //) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Шарти нишон додан ё надодан DetailRight=Шароит барои намоиши менюҳои хокистарии беиҷозат DetailLangs=Номи файл барои тарҷумаи рамзи барчасп @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Камшавии саҳмияҳо д CashDeskYouDidNotDisableStockDecease=Ҳангоми фурӯши фурӯш аз нуқтаи фурӯш шумо коҳиши саҳмияҳоро хомӯш накардаед. Аз ин рӯ, анбор лозим аст. CashDeskForceDecreaseStockLabel=Коҳиши саҳмияҳои маҳсулоти партияӣ маҷбур шуд. CashDeskForceDecreaseStockDesc=Аввал аз рӯи санаҳои қадимтарин хӯрдан ва фурӯхтан кам кунед. -CashDeskReaderKeyCodeForEnter=Рамзи калидӣ барои "Enter", ки дар хонандаи штрих -код муайян шудааст (Мисол: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Танзимоти модули хатчӯб BookmarkDesc=Ин модул ба шумо имкон медиҳад, ки хатчӯбҳоро идора кунед. Шумо инчунин метавонед ба ҳама саҳифаҳои Dolibarr ё вебсайтҳои беруна дар менюи чапи худ миёнабурҳо илова кунед. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Фурӯшанда моделҳои рақамг IfSetToYesDontForgetPermission=Агар ба қимати ғайрирасмӣ таъин шуда бошад, фаромӯш накунед, ки ба гурӯҳҳо ё корбароне, ки барои тасдиқи дуввум иҷозат дода шудаанд, иҷозат диҳед ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Танзими модули GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Роҳ ба файли дорои Maxmind ip ба тарҷумаи кишвар.
    Намунаҳо:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat a0342fccfr/ip2/GGo2bg0/ +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Дар хотир доред, ки файли додаҳои IP ба кишвар бояд дар дохили феҳристе бошад, ки PHP -и шумо хонда тавонад (Танзимоти PHP open_basedir ва иҷозатҳои системаи файлиро тафтиш кунед). YouCanDownloadFreeDatFileTo=Шумо метавонед версияи ройгони демо -и файли кишварии Maxmind GeoIP -ро дар %s зеркашӣ кунед. YouCanDownloadAdvancedDatFileTo=Шумо инчунин метавонед версияи мукаммали -ро бо навсозиҳо, -и файли кишварии Maxmind GeoIP дар %s зеркашӣ кунед. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Ёвар барои сохтани файли партови п BackupZipWizard=Ёвар барои сохтани бойгонии феҳристи ҳуҷҷатҳо SomethingMakeInstallFromWebNotPossible=Насби модули беруна аз сабаби зерин имконнопазир аст: SomethingMakeInstallFromWebNotPossible2=Аз ин сабаб, раванди навсозӣ дар ин ҷо тавсифшуда раванди дастӣ аст, ки танҳо корбари имтиёзнок иҷро карда метавонад. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Аз ҷониби мудири шумо насб кардани модули беруна аз барнома хомӯш карда шудааст. Шумо бояд аз ӯ хоҳиш кунед, ки файли %s хориҷ кунад, то ин хусусият иҷозат дода шавад. ConfFileMustContainCustom=Насб кардан ё сохтани модули беруна аз барнома бояд файлҳои модулро дар феҳристи %s захира кунад. Барои коркарди ин феҳрист аз ҷониби Dolibarr, шумо бояд conf/conf.php -ро насб кунед, то 2 хати директивиро илова кунед:
    $ dolibarr_main_;
    $ dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Ҳангоми гузаштан аз болои муш хатҳои ҷадвалро равшан кунед @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=CTRL+F5 -ро дар клавиатура пахш ку NotSupportedByAllThemes=Уилл бо мавзӯъҳои асосӣ кор мекунад, мумкин аст аз ҷониби мавзӯъҳои беруна дастгирӣ карда нашавад BackgroundColor=Ранги пасзамина TopMenuBackgroundColor=Ранги пасзамина барои менюи боло -TopMenuDisableImages=Пинҳон кардани тасвирҳо дар менюи боло +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Ранги пасзамина барои менюи чап BackgroundTableTitleColor=Ранги пасзамина барои сатри сарлавҳаи Ҷадвал BackgroundTableTitleTextColor=Ранги матн барои сатри сарлавҳаи Ҷадвал @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Фармоишҳои харид MailToSendSupplierInvoice=Ҳисобнома -фактураҳои фурӯшанда MailToSendContract=Шартномаҳо MailToSendReception=Қабулгоҳҳо +MailToExpenseReport=Expense reports MailToThirdparty=Шахсони сеюм MailToMember=Аъзоён MailToUser=Истифодабарандагон @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Ҳошияи рост дар PDF MAIN_PDF_MARGIN_TOP=Маржа боло дар PDF MAIN_PDF_MARGIN_BOTTOM=Ҳошияи поёни дар PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Баландӣ барои логотип дар PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Аломатҳои махсусро хориҷ кунед COMPANY_AQUARIUM_CLEAN_REGEX=Филтри регекс ба арзиши тоза (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Филтри Regex ба арзиши тоза (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Нусхабардорӣ иҷозат дода намешавад +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Корманди ҳифзи маълумот (DPO, Privacy Data or GDPR тамос) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Матни кӯмак барои нишон додан дар лавҳаи асбобҳо @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Эзоҳ: Имконияти истифодаи андоз аз SwapSenderAndRecipientOnPDF=Мавқеи ирсолкунанда ва қабулкунандаро дар ҳуҷҷатҳои PDF иваз кунед FeatureSupportedOnTextFieldsOnly=Огоҳӣ, хусусият танҳо дар майдонҳои матн ва танҳо рӯйхати комбинатсия дастгирӣ карда мешавад. Инчунин параметри URL -и амал = эҷод ё амал = таҳрир бояд муқаррар карда шавад Ё номи саҳифа бояд бо 'new.php' хотима дода шавад, то ин хусусиятро фаъол созад. EmailCollector=Коллексияи почтаи электронӣ +EmailCollectors=Email collectors EmailCollectorDescription=Барои скан кардани қуттиҳои почтаи электронӣ (бо истифода аз протоколи IMAP) ва сабт кардани мактубҳои ба аризаи шумо дар ҷои лозима навишташуда ва/ё ба таври худкор эҷод кардани баъзе сабтҳо (ба монанди роҳбарон), кори ба нақша гирифташуда ва саҳифаи танзимро илова кунед. NewEmailCollector=Коллексияи нави почтаи электронӣ EMailHost=Хости сервери почтаи IMAP +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Феҳристи манбаъҳои паёмдони почта MailboxTargetDirectory=Феҳристи ҳадафҳои паёмдони почта EmailcollectorOperations=Амалиётҳое, ки аз ҷониби коллектор иҷро карда мешаванд EmailcollectorOperationsDesc=Амалиётҳо аз боло то поён иҷро карда мешаванд MaxEmailCollectPerCollect=Шумораи максималии мактубҳои дар як ҷамъоварӣ ҷамъшуда +TestCollectNow=Test collect CollectNow=Ҳоло ҷамъ кунед ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Санаи охирин кӯшиши ҷамъоварӣ DateLastcollectResultOk=Санаи охирини муваффақияти ҷамъоварӣ LastResult=Натиҷаи охирин EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Тасдиқи ҷамъоварии почтаи электронӣ EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Барои коркарди почтаи нав (филтрҳои мувофиқ) нест NothingProcessed=Ҳеҷ коре накардааст -XEmailsDoneYActionsDone=%s мактубҳои мувофиқ, %s бомуваффақият коркард карда шуданд (барои сабт/амалҳои %s) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Эҷоди аризаи корӣ FormatZip=Zip MainMenuCode=Рамзи вуруд ба меню (менюи асосӣ) ECMAutoTree=Нишон додани дарахти автоматии ECM -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Соатҳои корӣ OpeningHoursDesc=Дар ин ҷо соатҳои кории муқаррарии ширкати худро ворид кунед. ResourceSetup=Танзимоти модули захираҳо @@ -2167,6 +2200,10 @@ EmailTemplate=Шаблон барои почтаи электронӣ EMailsWillHaveMessageID=Почтаи электронӣ дорои "Истинодҳо" хоҳад буд, ки ба ин синтаксис мувофиқат мекунад PDF_SHOW_PROJECT=Нишон додани лоиҳа дар ҳуҷҷат ShowProjectLabel=Нишони лоиҳа +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Агар шумо хоҳед, ки баъзе матнҳо дар PDF -и худ бо 2 забони гуногун дар як PDF -и тавлидшуда такрор карда шаванд, шумо бояд ин забони дуввумро муқаррар кунед, то PDF -и тавлидшуда дар як саҳифа 2 забони гуногунро дар бар гирад, ки ҳангоми тавлиди PDF интихоб шудааст ва ин ( Танҳо чанд қолаби PDF инро дастгирӣ мекунанд). Барои 1 забон барои як PDF холӣ бошед. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Дар ин ҷо рамзи тасвири FontAwesomeро ворид кунед. Агар шумо намедонед, ки FontAwesome чист, шумо метавонед арзиши умумии fa-address-book -ро истифода баред. @@ -2195,12 +2232,12 @@ MailToPartnership=Шарикӣ AGENDA_EVENT_DEFAULT_STATUS=Ҳолати пешфарз ҳангоми эҷоди ҳодиса аз форма YouShouldDisablePHPFunctions=Шумо бояд вазифаҳои PHP -ро хомӯш кунед IfCLINotRequiredYouShouldDisablePHPFunctions=Ба истиснои агар ба шумо лозим аст, ки фармонҳои системаро дар коди фармоишӣ иҷро кунед, шумо бояд вазифаҳои PHP -ро ғайрифаъол кунед -PHPFunctionsRequiredForCLI=Бо мақсади ниҳонӣ (ба монанди нусхаи эҳтиётии кор ё иҷрои барномаи антивурс), шумо бояд вазифаҳои PHP -ро нигоҳ доред +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Дар директорияи решавии шумо ягон файл ё феҳристи барномаҳои маъмул ёфт нашуд (Хуб) RecommendedValueIs=Тавсия дода мешавад: %s Recommended=Тавсия дода мешавад NotRecommended=Тавсия дода намешавад -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Навсозии модулҳои беруниро тафтиш кунед CheckForModuleUpdateHelp=Ин амал ба муҳаррирони модулҳои беруна пайваст мешавад, то дастрасии версияи навро тафтиш кунад. ModuleUpdateAvailable=Навсозӣ дастрас аст @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Барои модулҳои беруна ягон н SwaggerDescriptionFile=Файли тавсифи API Swagger (барои истифода бо redoc масалан) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Шумо WS API -и кӯҳнашударо фаъол кардед. Шумо бояд ба ҷои REST API истифода баред. RandomlySelectedIfSeveral=Ба таври тасодуфӣ интихоб карда мешавад, агар якчанд тасвир мавҷуд бошад +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Пароли пойгоҳи додаҳо дар файли conf шарҳ дода шудааст DatabasePasswordNotObfuscated=Пароли пойгоҳи додаҳо дар файли conf пинҳон карда нашудааст APIsAreNotEnabled=Модулҳои API фаъол нестанд @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/tg_TJ/categories.lang b/htdocs/langs/tg_TJ/categories.lang index 4b948d6caaf..83543aa9af6 100644 --- a/htdocs/langs/tg_TJ/categories.lang +++ b/htdocs/langs/tg_TJ/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Ин узв дар ягон барчаспҳо/катего ContactHasNoCategory=Ин тамос дар ягон барчаспҳо/категорияҳо нест ProjectHasNoCategory=Ин лоиҳа дар ягон барчаспҳо/категорияҳо нест ClassifyInCategory=Ба тег/категория илова кунед +RemoveCategory=Remove category NotCategorized=Бе барчасп/категория CategoryExistsAtSameLevel=Ин категория аллакай бо ин реф мавҷуд аст ContentsVisibleByAllShort=Мундариҷа барои ҳама намоён аст @@ -67,6 +68,7 @@ StockCategoriesShort=Барчасбҳо/категорияҳои анбор ThisCategoryHasNoItems=Ин категория ягон ҷузъро дарбар намегирад. CategId=ID/категория ParentCategory=Теги/категорияи волидайн +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Нишони барчасп/категорияи волидайн CatSupList=Рӯйхати барчаспҳо/категорияҳо CatCusList=Рӯйхати мизоҷон/барчаспҳо/категорияҳо @@ -86,15 +88,18 @@ DeleteFromCat=Аз барчаспҳо/категория хориҷ кунед ExtraFieldsCategories=Хусусиятҳои иловагӣ CategoriesSetup=Танзимоти барчаспҳо/категорияҳо CategorieRecursiv=Ба таври худкор бо тег/категорияи волидайн пайванд кунед -CategorieRecursivHelp=Агар интихоб фаъол бошад, вақте ки шумо маҳсулотро ба зеркатегория илова мекунед, маҳсулот низ ба категорияи волидайн илова карда мешавад. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Маҳсулот/хидмати зеринро илова кунед AddCustomerIntoCategory=Ба муштарӣ категория таъин кунед AddSupplierIntoCategory=Ба таъминкунанда категория таъин кунед +AssignCategoryTo=Assign category to ShowCategory=Нишон додани тег/категория ByDefaultInList=Бо нобаёнӣ дар рӯйхат ChooseCategory=Категорияро интихоб кунед StocksCategoriesArea=Категорияҳои анборҳо +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Категорияҳои чорабиниҳо WebsitePagesCategoriesArea=Категорияҳои саҳифа-контейнерӣ KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Барои категорияҳо оператори 'Ё' -ро истифода баред +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/tg_TJ/commercial.lang b/htdocs/langs/tg_TJ/commercial.lang index 6e04e8cebc1..a0b0b533644 100644 --- a/htdocs/langs/tg_TJ/commercial.lang +++ b/htdocs/langs/tg_TJ/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Ҳолати дурнамо DraftPropals=Лоиҳаи пешниҳодҳои тиҷоратӣ NoLimit=Бе маҳдудият ToOfferALinkForOnlineSignature=Истинод барои имзои онлайн -WelcomeOnOnlineSignaturePage=Хуш омадед ба саҳифа барои қабули пешниҳодҳои тиҷоратӣ аз %s -ThisScreenAllowsYouToSignDocFrom=Ин экран ба шумо имкон медиҳад, ки иқтибос/пешниҳоди тиҷоратиро қабул кунед ва имзо гузоред ё рад кунед -ThisIsInformationOnDocumentToSign=Ин маълумот дар бораи ҳуҷҷат барои қабул ё рад кардан аст +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Имзои иқтибос/пешниҳоди тиҷоратӣ %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Хусусият барои имзои онлайн ғайрифаъол аст ё ҳуҷҷате, ки пеш аз фаъол кардани он тавлид шудааст diff --git a/htdocs/langs/tg_TJ/companies.lang b/htdocs/langs/tg_TJ/companies.lang index 4e50aa4f7a6..efd0993aac5 100644 --- a/htdocs/langs/tg_TJ/companies.lang +++ b/htdocs/langs/tg_TJ/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Табиати шахси сеюм NatureOfContact=Табиати тамос Address=Суроға State=Давлат/вилоят +StateId=State ID StateCode=Рамзи иёлот/вилоят StateShort=Давлат Region=Минтақа Region-State=Минтақа - Давлат Country=Кишвар CountryCode=Коди давлат -CountryId=ID и кишвар +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Skype @@ -105,6 +106,7 @@ WrongSupplierCode=Рамзи фурӯшанда нодуруст аст CustomerCodeModel=Модели рамзи муштариён SupplierCodeModel=Модели рамзи фурӯшанда Gencod=Баркод +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Проф. Id 1 ProfId2Short=Проф. Id 2 @@ -162,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Профессор 1 (R.U.T.) ProfId2CO=- @@ -442,7 +444,7 @@ AddAddress=Иловаи адрес SupplierCategory=Категорияи фурӯшанда JuridicalStatus200=Мустақил DeleteFile=Файлро нест кунед -ConfirmDeleteFile=Шумо мутмаин ҳастед, ки мехоҳед ин файлро нест кунед? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Ба намояндаи фурӯш таъин карда шудааст Organization=Ташкилот FiscalYearInformation=Соли молиявӣ diff --git a/htdocs/langs/tg_TJ/compta.lang b/htdocs/langs/tg_TJ/compta.lang index 39a0b1ee583..c9e0fa0863b 100644 --- a/htdocs/langs/tg_TJ/compta.lang +++ b/htdocs/langs/tg_TJ/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Тавозун (пеш) Balance=Тавозун Debit=Дебет Credit=Кредит +AccountingDebit=Debit +AccountingCredit=Credit Piece=Ҳуҷҷати ҳисобдорӣ. AmountHTVATRealReceived=Нет ҷамъоварӣ AmountHTVATRealPaid=Натиҷаи пардохт @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Ҳисоботи муоми TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Ҳисоботи гардиши ҷамъшудаи меъёри андози фурӯш дастрас нест. Ин ҳисобот танҳо барои ҳисобот дар бораи гардиши мол дастрас аст. CalculationMode=Ҳолати ҳисобкунӣ AccountancyJournal=Журнали рамзи баҳисобгирӣ -ACCOUNTING_VAT_SOLD_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои ААИ оид ба фурӯш (агар дар танзимоти луғати ААИ муайян нашуда бошад, истифода мешавад) -ACCOUNTING_VAT_BUY_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои андоз аз арзиши иловашуда ҳангоми харид (агар дар танзимоти луғати ААИ муайян нашуда бошад) истифода мешавад -ACCOUNTING_VAT_PAY_ACCOUNT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои пардохти ААИ -ACCOUNTING_ACCOUNT_CUSTOMER=Ҳисоби баҳисобгирӣ барои муштариёни сеюм истифода мешавад +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Ҳисоби баҳисобгирии муҳосибӣ, ки дар корти тарафи сеюм муайян карда шудааст, танҳо барои баҳисобгирии зерпардохт истифода мешавад. Агар он ҳисоби махсуси баҳисобгирии муштариён дар шахси сеюм муайян карда нашуда бошад, он барои китоби умумӣ ва ҳамчун арзиши пешфарзии баҳисобгирии Subledger истифода мешавад. -ACCOUNTING_ACCOUNT_SUPPLIER=Ҳисоби баҳисобгирӣ барои фурӯшандагони сеюм истифода мешавад +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Ҳисоби баҳисобгирии муҳосибӣ, ки дар корти тарафи сеюм муайян карда шудааст, танҳо барои баҳисобгирии зерпардохт истифода мешавад. Ин барои китоби умумӣ ва ҳамчун арзиши пешфарзии баҳисобгирии Subledger истифода мешавад, агар ҳисоби баҳисобгирии муҳосибии фурӯшанда дар шахси сеюм муайян карда нашуда бошад. ConfirmCloneTax=Тасдиқи клони андози иҷтимоӣ/фискалӣ ConfirmCloneVAT=Клони эъломияи андоз аз арзиши иловашударо тасдиқ кунед @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/tg_TJ/contracts.lang b/htdocs/langs/tg_TJ/contracts.lang index 6bf8354996e..d6e34f29b39 100644 --- a/htdocs/langs/tg_TJ/contracts.lang +++ b/htdocs/langs/tg_TJ/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Шартномаҳо/Обунаҳо ContractsAndLine=Шартҳо ва хатти шартномаҳо Contract=Шартнома ContractLine=Хатти шартнома +ContractLines=Contract lines Closing=Бастани NoContracts=Шартнома нест MenuServices=Хизматҳо @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Шумо мутмаин ҳастед, ки мехоҳ MoveToAnotherContract=Хидматро ба шартномаи дигар гузаронед. ConfirmMoveToAnotherContract=Ман шартномаи нави мақсаднокро интихоб кардам ва тасдиқ мекунам, ки ин хидматро ба ин шартнома интиқол додан мехоҳам. ConfirmMoveToAnotherContractQuestion=Интихоб кунед, ки дар кадом шартномаи мавҷуда (ҳамон як шахси сеюм) шумо мехоҳед ин хидматро ба он интиқол диҳед? -PaymentRenewContractId=Навсозии хати шартнома (рақами %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Муҳлати тамомшави NoExpiredServices=Хидматҳои фаъоле, ки мӯҳлати истифодаашон гузаштааст, вуҷуд надорад ListOfServicesToExpireWithDuration=Рӯйхати хидматҳо дар %s рӯз ба охир мерасад @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Имзои шартномаи тамо HideClosedServiceByDefault=Пинҳон кардани хидматҳои пӯшида бо нобаёнӣ ShowClosedServices=Хидматҳои пӯшида нишон диҳед HideClosedServices=Хидматҳои пӯшида +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/tg_TJ/cron.lang b/htdocs/langs/tg_TJ/cron.lang index 271f9c614da..ccd6276e6a6 100644 --- a/htdocs/langs/tg_TJ/cron.lang +++ b/htdocs/langs/tg_TJ/cron.lang @@ -26,7 +26,7 @@ CronCommand=Фармон CronList=Корҳои ба нақша гирифташуда CronDelete=Корҳои ба нақша гирифташударо нест кунед CronConfirmDelete=Шумо мутмаин ҳастед, ки мехоҳед ин корҳои ба нақша гирифташударо нест кунед? -CronExecute=Оғози кори ба нақша гирифташуда +CronExecute=Launch now CronConfirmExecute=Шумо мутмаин ҳастед, ки мехоҳед ин корҳои таъиншударо ҳозир иҷро кунед? CronInfo=Модули кории ба нақша гирифташуда имкон медиҳад, ки ҷойҳои корӣ ба таври худкор иҷро карда шаванд. Корҳоро инчунин дастӣ оғоз кардан мумкин аст. CronTask=Айюб @@ -58,7 +58,7 @@ CronNote=Шарҳ CronFieldMandatory=Майдонҳои %s ҳатмӣ мебошанд CronErrEndDateStartDt=Санаи анҷом наметавонад пеш аз санаи оғоз бошад StatusAtInstall=Ҳолати насби модул -CronStatusActiveBtn=Ҷадвал +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Хомӯш кардан CronTaskInactive=Ин кор ғайрифаъол аст (ба нақша гирифта нашудааст) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Ба менюи " Home - Восит JobDisabled=Кор хомӯш карда шудааст MakeLocalDatabaseDumpShort=Захираи пойгоҳи додаҳои маҳаллӣ MakeLocalDatabaseDump=Як партовгоҳи пойгоҳи додаҳои маҳаллиро эҷод кунед. Параметрҳо инҳоянд: фишурдасозӣ ('gz' ё 'bz' ё 'ҳеҷ'), навъи нусхабардорӣ ('mysql', 'pgsql', 'auto'), 1, 'auto' ё номи файл барои сохтан, шумораи файлҳои захиравӣ барои нигоҳ доштан +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Диққат, бо мақсади иҷроиш, кадом санаи навбатии иҷрои корҳои имконпазир бошад, ҷойҳои кории шумо то ҳадди аксар %s ба таъхир гузошта мешаванд. DATAPOLICYJob=Тозакунандаи маълумот ва анонимайзер JobXMustBeEnabled=Job %s бояд фаъол карда шавад +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Охирин кори ба нақша гирифташуда NextScheduledJobExecute=Кори навбатии ба нақша гирифташуда барои иҷро NumberScheduledJobError=Шумораи ҷойҳои кории ба нақша гирифташуда +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/tg_TJ/datapolicy.lang b/htdocs/langs/tg_TJ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/tg_TJ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/tg_TJ/ecm.lang b/htdocs/langs/tg_TJ/ecm.lang index 56da691bfb8..6c9872f3c82 100644 --- a/htdocs/langs/tg_TJ/ecm.lang +++ b/htdocs/langs/tg_TJ/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Феҳристи дастӣ ECMSectionAuto=Феҳристи автоматӣ ECMSectionsManual=Дарахти дастӣ ECMSectionsAuto=Дарахти автоматӣ +ECMSectionsMedias=Medias tree ECMSections=Директорияҳо ECMRoot=ECM решавӣ ECMNewSection=Феҳристи нав @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Шумораи файлҳо дар зерфеҳристҳо ECMCreationUser=Офаридгор ECMArea=Минтақаи DMS/ECM ECMAreaDesc=Минтақаи DMS / ECM (Системаи идоракунии ҳуҷҷатҳо / Идоракунии мундариҷаи электронӣ) ба шумо имкон медиҳад, ки ҳама гуна ҳуҷҷатҳоро дар Dolibarr зуд захира, мубодила ва ҷустуҷӯ кунед. -ECMAreaDesc2=* Ҳангоми илова кардани ҳуҷҷатҳо аз корти унсурҳо директорияҳои автоматӣ пур карда мешаванд.
    * Маълумотномаҳои дастиро барои сабт кардани ҳуҷҷатҳое, ки ба унсури мушаххас иртибот надоранд, истифода бурдан мумкин аст. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Феҳристи %s нест карда шуд. ECMSectionWasCreated=Феҳристи %s сохта шудааст. ECMSearchByKeywords=Ҷустуҷӯ аз рӯи калимаҳои калидӣ diff --git a/htdocs/langs/tg_TJ/errors.lang b/htdocs/langs/tg_TJ/errors.lang index b861ec4b276..a725dddd129 100644 --- a/htdocs/langs/tg_TJ/errors.lang +++ b/htdocs/langs/tg_TJ/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Почтаи электронии %s нодуруст ба на ErrorBadUrl=URL %s нодуруст аст ErrorBadValueForParamNotAString=Арзиши бад барои параметри шумо. Он одатан ҳангоми набудани тарҷума замима мешавад. ErrorRefAlreadyExists=Истинод %s аллакай вуҷуд дорад. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Вуруд %s аллакай вуҷуд дорад. ErrorGroupAlreadyExists=Гурӯҳи %s аллакай вуҷуд дорад. ErrorEmailAlreadyExists=Почтаи электронӣ %s аллакай мавҷуд аст. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Файли дигаре бо номи %s ErrorPartialFile=Файл аз ҷониби сервер пурра қабул нашудааст. ErrorNoTmpDir=Роҳнамои муваққатӣ %s вуҷуд надорад. ErrorUploadBlockedByAddon=Боркунӣ аз ҷониби плагини PHP/Apache баста шудааст. -ErrorFileSizeTooLarge=Андозаи файл хеле калон аст. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Майдони %s хеле дароз аст. ErrorSizeTooLongForIntType=Андоза барои намуди int хеле дароз аст (%s рақамҳои ҳадди аксар) ErrorSizeTooLongForVarcharType=Андоза барои навъи сатр хеле дароз аст (%s аломатҳои ҳадди аксар) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Барои кор кардани ин хусус н ErrorPasswordsMustMatch=Ҳарду паролҳои чопшуда бояд бо ҳам мувофиқ бошанд ErrorContactEMail=Хатогии техникӣ рух дод. Лутфан, бо администратор тамос гиред, то почтаи электронии %s дошта бошед ва рамзи хатогиро %s дар паёми худ ирсол кунед ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Field %s : « %s » аст, ки арзиши дар соҳаи %s аз ёфт нашуд %s ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref ErrorsOnXLines=%s хатогиҳо ёфт шуданд @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=Шумо аввал бояд ҷадва ErrorFailedToFindEmailTemplate=Шаблон бо номи рамзи %s ёфт нашуд ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Давомнокии хидмат муайян карда нашудааст. Ҳеҷ гуна ҳисоб кардани нархи соатбайъ. ErrorActionCommPropertyUserowneridNotDefined=Соҳиби корбар лозим аст -ErrorActionCommBadType=Навъи рӯйдоди интихобшуда (id: %n, рамз: %s) дар луғати навъи чорабиниҳо вуҷуд надорад +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Санҷиши версия ноком шуд ErrorWrongFileName=Номи файл наметавонад дар он __SOMETHING__ дошта бошад ErrorNotInDictionaryPaymentConditions=Дар луғати шартҳои пардохт нест, лутфан тағир диҳед. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Параметри PHP -и шумо upload_max_filesize (%s) аз параметрҳои PHP post_max_size (%s) баландтар аст. Ин танзимоти пайдарпай нест. WarningPasswordSetWithNoAccount=Барои ин аъзо парол таъин карда шуд. Бо вуҷуди ин, ягон ҳисоби корбарӣ таъсис дода нашудааст. Ҳамин тавр, ин парол нигоҳ дошта мешавад, аммо барои ворид шудан ба Dolibarr наметавонад истифода шавад. Он метавонад аз ҷониби модул/интерфейси беруна истифода шавад, аммо агар ба шумо ягон узвият ё паролро муайян кардан лозим набошад, шумо метавонед имконоти "Идоракунии вуруд барои ҳар як аъзо" -ро аз танзимоти модули аъзо ғайрифаъол кунед. Агар ба шумо лозим аст, ки воридшавиро идора кунед, аммо ба парол ниёз надоред, шумо метавонед ин майдонро холӣ нигоҳ доред, то ин огоҳӣ пешгирӣ карда шавад. Эзоҳ: Почтаи электронӣ инчунин метавонад ҳамчун логин истифода шавад, агар аъзо ба корбар пайванд бошад. -WarningMandatorySetupNotComplete=Барои насб кардани параметрҳои ҳатмӣ ин ҷо клик кунед +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Барои фаъол кардани модулҳо ва барномаҳои худ ин ҷо клик кунед WarningSafeModeOnCheckExecDir=Огоҳӣ, варианти PHP safe_mode фаъол аст, бинобар ин фармон бояд дар дохили феҳристи бо параметри php эълоншудаи safe_mode_exec_dir нигоҳ дошта шавад. WarningBookmarkAlreadyExists=Замимаи дорои ин унвон ё ин ҳадаф (URL) аллакай вуҷуд дорад. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Огоҳӣ, шумо наметавонед муста WarningAvailableOnlyForHTTPSServers=Танҳо дар сурати дастрас будани пайвасти боэътимоди HTTPS дастрас аст. WarningModuleXDisabledSoYouMayMissEventHere=Модули %s фаъол карда нашудааст. Ҳамин тавр, шумо метавонед дар ин ҷо бисёр чорабиниҳоро аз даст диҳед. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/tg_TJ/eventorganization.lang b/htdocs/langs/tg_TJ/eventorganization.lang index cb9a53dada5..ca957f68246 100644 --- a/htdocs/langs/tg_TJ/eventorganization.lang +++ b/htdocs/langs/tg_TJ/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Event organization Settings=Танзимот EventOrganizationSetupPage = Саҳифаи танзими ташкили чорабинӣ EVENTORGANIZATION_TASK_LABEL = Нишони вазифаҳо барои ба таври худкор эҷод кардани лоиҳа ҳангоми тасдиқи лоиҳа -EVENTORGANIZATION_TASK_LABELTooltip = Вақте, ки шумо тасдиқи чорабинии муташаккил, баъзе вазифаҳои мумкин аст ба таври худкор дар ин лоиҳа

    Масалан офарида:
    Ирсол даъвати Конфронси Call барои Хаймаи Ирсол

    гиред даъват конфронсҳои
    Гирифтани даъват Хаймаи обуна Open ба чорабиниҳо барои ҳозирин
    Ирсол
    ёдрас кардани чорабинӣ ба баромадкунандагон +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Категория барои илова кардан ба шахсони сеюм, вақте ки касе конфронс пешниҳод мекунад, ба таври худкор таъсис дода мешавад EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Категория барои ба шахсони сеюм илова кардан ба таври худкор ҳангоми пешниҳоди стенд офарида мешавад EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Шаблон почтаи электронӣ барои фиристодани пас аз гирифтани пешниҳоди конфронс. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Конфронс ё Бут +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = Конфронс ё Бут ConferenceOrBoothTab = Конфронс ё Бут AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Иштирокчии конфронс ё Бут +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = Рӯйхати конфронсҳои пешниҳодшуда -ListOfSuggestedBooths = Рӯйхати қуттиҳои пешниҳодшуда -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Конфронси навро пешниҳод кунед SuggestBooth = Хайма пешниҳод кунед ViewAndVote = Воқеаҳои пешниҳодшударо бубинед ва овоз диҳед PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = Калиди амният нодуруст ё гум шудааст -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Ин конфронс аз %s оғоз шуда, дар %s ба охир мерасад. ConferenceAttendeeFee = Пардохти иштирокчиёни конфронс барои ин чорабинӣ: '%s', ки аз %s то %s рух медиҳад. BoothLocationFee = Ҷойгоҳи стенд барои ин чорабинӣ: '%s', ки аз %s то %s рух медиҳад @@ -129,7 +133,7 @@ LabelOfconference=Нишондиҳандаи конфронс ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s бояд пеш аз %s бошад DateMustBeAfterThan=%s бояд пас аз %s бошад - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registration OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -153,7 +158,7 @@ VoteOk = Овози шумо қабул шуд. AlreadyVoted = Шумо аллакай ба ин чорабинӣ овоз додед. VoteError = Ҳангоми овоздиҳӣ хато рух дод, лутфан бори дигар кӯшиш кунед. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event Attendee = Иштирокчӣ PaymentConferenceAttendee = Пардохти иштирокчиёни конфронс @@ -161,7 +166,9 @@ PaymentBoothLocation = Пардохти маҳалли ҷойгиршавӣ DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/tg_TJ/externalsite.lang b/htdocs/langs/tg_TJ/externalsite.lang deleted file mode 100644 index 9d2064b2e93..00000000000 --- a/htdocs/langs/tg_TJ/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Пайвастшавӣ ба вебсайти беруна -ExternalSiteURL=URL -и сайти берунии мундариҷаи HTML iframe -ExternalSiteModuleNotComplete=Модули ExternalSite дуруст танзим нашудааст. -ExampleMyMenuEntry=Вуруди менюи ман diff --git a/htdocs/langs/tg_TJ/ftp.lang b/htdocs/langs/tg_TJ/ftp.lang deleted file mode 100644 index 85090f61c8d..00000000000 --- a/htdocs/langs/tg_TJ/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Танзими модули мизоҷи FTP ё SFTP -NewFTPClient=Танзимоти нави пайвастшавии FTP/FTPS -FTPArea=Минтақаи FTP/FTPS -FTPAreaDesc=Ин экран намуди сервери FTP ва SFTP -ро нишон медиҳад. -SetupOfFTPClientModuleNotComplete=Танзимоти модули муштарии FTP ё SFTP ба назар мерасад -FTPFeatureNotSupportedByYourPHP=PHP -и шумо вазифаҳои FTP ё SFTP -ро пуштибонӣ намекунад -FailedToConnectToFTPServer=Ба сервер пайваст нашуд (сервер %s, порти %s) -FailedToConnectToFTPServerWithCredentials=Воридшавӣ ба сервер бо логин/пароли муайяншуда ноком шуд -FTPFailedToRemoveFile=Файли %s нест карда нашуд. -FTPFailedToRemoveDir=Феҳристи %s нест карда нашуд: иҷозатҳоро тафтиш кунед ва феҳрист холӣ аст. -FTPPassiveMode=Ҳолати ғайрифаъол -ChooseAFTPEntryIntoMenu=Аз меню сайти FTP/SFTP -ро интихоб кунед ... -FailedToGetFile=Файлҳои %s гирифта нашуданд diff --git a/htdocs/langs/tg_TJ/holiday.lang b/htdocs/langs/tg_TJ/holiday.lang index 0b03fd4cea4..37a47013060 100644 --- a/htdocs/langs/tg_TJ/holiday.lang +++ b/htdocs/langs/tg_TJ/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Тарк +Holidays=Leaves +Holiday=Leave CPTitreMenu=Тарк MenuReportMonth=Изҳороти ҳармоҳа MenuAddCP=Дархости рухсатии нав +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Шумо бояд модули таркро барои дидани ин саҳифа фаъол созед. AddCP=Дархости рухсатӣ диҳед DateDebCP=Саршавии Сана @@ -56,6 +58,7 @@ ConfirmDeleteCP=Ҳазфи ин дархости рухсатиро тасдиқ ErrorCantDeleteCP=Хато, ки шумо ҳуқуқи нест кардани ин дархости рухсатиро надоред. CantCreateCP=Шумо ҳақ надоред, ки дархости рухсатӣ диҳед. InvalidValidatorCP=Шумо бояд тасдиқкунандаи дархости рухсатии худро интихоб кунед. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Шумо бояд санаи оғозро интихоб кунед. NoDateFin=Шумо бояд санаи анҷомро интихоб кунед. ErrorDureeCP=Дархости рухсатии шумо рӯзи кориро дарбар намегирад. @@ -79,6 +82,8 @@ MotifCP=Сабаб UserCP=Истифодабаранда ErrorAddEventToUserCP=Ҳангоми илова кардани рухсатии истисноӣ хато рух дод. AddEventToUserOkCP=Илова ба рухсатии истисноӣ ба анҷом расид. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Дидани сабтҳои тағирот LogCP=Сабти ҳамаи навсозиҳо ба "Тавозуни рухсатӣ" ActionByCP=Навсозӣ аз ҷониби @@ -86,6 +91,13 @@ UserUpdateCP=Навсозӣ барои PrevSoldeCP=Тавозуни қаблӣ NewSoldeCP=Тавозуни нав alreadyCPexist=Дар ин давра дархости рухсатӣ аллакай анҷом дода шудааст. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Рӯзи оғози дархости рухсатӣ LastDayOfHoliday=Анҷоми рӯзи дархости рухсатӣ BoxTitleLastLeaveRequests=Охирин дархостҳои тағирёфтаи %s @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s одатан рӯзи корӣ нест BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/tg_TJ/hrm.lang b/htdocs/langs/tg_TJ/hrm.lang index 03c1aa53b3d..e170b0cf1d1 100644 --- a/htdocs/langs/tg_TJ/hrm.lang +++ b/htdocs/langs/tg_TJ/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Муассисаи кушод CloseEtablishment=Муассисаи наздик # Dictionary DictionaryPublicHolidays=Рухсатӣ - рӯзҳои истироҳат -DictionaryDepartment=HRM - Рӯйхати шӯъбаҳо +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Ҷойҳои корӣ # Module Employees=Кормандон @@ -20,13 +20,14 @@ Employee=Корманд NewEmployee=Корманди нав ListOfEmployees=Рӯйхати кормандон HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Job -Jobs=Jobs +JobPosition=Job +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Position -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/tg_TJ/install.lang b/htdocs/langs/tg_TJ/install.lang index ea747e72573..ac851fed382 100644 --- a/htdocs/langs/tg_TJ/install.lang +++ b/htdocs/langs/tg_TJ/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Файли танзимот %s навишта н ConfFileIsWritable=Файли танзимот %s навиштан мумкин аст. ConfFileMustBeAFileNotADir=Файли танзимот %s бояд файл бошад, на директория. ConfFileReload=Бозсозии параметрҳо аз файли танзимот. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Ин PHP тағирёбандаҳои POST ва GET -ро дастгирӣ мекунад. PHPSupportPOSTGETKo=Эҳтимол аст, ки PHP -и шумо тағирёбандаҳои POST ва/ё GET -ро дастгирӣ намекунад. Параметри variables_order -ро дар php.ini санҷед. PHPSupportSessions=Ин PHP сессияҳоро дастгирӣ мекунад. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Шояд шумо барои параметри '%s' ErrorFailedToCreateDatabase=Бунёди махзани '%s' ноком шуд. ErrorFailedToConnectToDatabase=Ба базаи '%s' пайваст шудан муяссар нашуд. ErrorDatabaseVersionTooLow=Версияи пойгоҳи додаҳо (%s) хеле кӯҳна аст. Версияи %s ё болотар лозим аст. -ErrorPHPVersionTooLow=Версияи PHP хеле кӯҳна аст. Версияи %s лозим аст. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Пайвастшавӣ ба сервер муваффақ шуд, аммо пойгоҳи додаҳои '%s' ёфт нашуд. ErrorDatabaseAlreadyExists=Пойгоҳи додаҳои '%s' аллакай вуҷуд дорад. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Агар пойгоҳи додаҳо вуҷуд надошта бошад, ба қафо баргардед ва имкони "Эҷоди пойгоҳи додаҳо" -ро тафтиш кунед. IfDatabaseExistsGoBackAndCheckCreate=Агар пойгоҳи додаҳо аллакай вуҷуд дошта бошад, ба қафо баргардед ва "Эҷоди пойгоҳи додаҳо" -ро интихоб кунед. WarningBrowserTooOld=Версияи браузер хеле кӯҳна аст. Навсозии браузери шумо ба версияи охирини Firefox, Chrome ё Opera хеле тавсия дода мешавад. diff --git a/htdocs/langs/tg_TJ/knowledgemanagement.lang b/htdocs/langs/tg_TJ/knowledgemanagement.lang index 6d40f2f2022..cd5a2372d9e 100644 --- a/htdocs/langs/tg_TJ/knowledgemanagement.lang +++ b/htdocs/langs/tg_TJ/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Мақолаҳо KnowledgeRecord = Мақола KnowledgeRecordExtraFields = Майдони экзотикӣ барои мақола GroupOfTicket=Гурӯҳи чиптаҳо -YouCanLinkArticleToATicketCategory=Шумо метавонед мақоларо ба гурӯҳи чиптаҳо пайваст кунед (аз ин рӯ мақола ҳангоми тахассуси чиптаҳои нав пешниҳод карда мешавад) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Suggested for tickets when group is SetObsolete=Set as obsolete diff --git a/htdocs/langs/tg_TJ/loan.lang b/htdocs/langs/tg_TJ/loan.lang index 59935ba49d6..5f167be22f8 100644 --- a/htdocs/langs/tg_TJ/loan.lang +++ b/htdocs/langs/tg_TJ/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Ӯҳдадории молиявӣ InterestAmount=Фоиз CapitalRemain=Сармоя боқӣ мемонад TermPaidAllreadyPaid = Ин мӯҳлат аллакай пардохта шудааст -CantUseScheduleWithLoanStartedToPaid = Ман наметавонам банақшагирро барои қарз бо оғози пардохт истифода барам +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Агар шумо ҷадвалро истифода баред, шумо наметавонед фоизҳоро тағир диҳед # Admin ConfigLoan=Танзимоти қарзи модул -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Сармояи ҳисоби баҳисобгирӣ бо нобаёнӣ -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Фоизи суратҳисоби баҳисобгирӣ бо нобаёнӣ -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Суғуртаи суратҳисоби баҳисобгирӣ бо нобаёнӣ +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Таҳрири ӯҳдадориҳои молиявӣ diff --git a/htdocs/langs/tg_TJ/mailmanspip.lang b/htdocs/langs/tg_TJ/mailmanspip.lang index 8c7b1595304..d18f8b56846 100644 --- a/htdocs/langs/tg_TJ/mailmanspip.lang +++ b/htdocs/langs/tg_TJ/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Санҷиши обуна бомуваффақият иҷ MailmanDeletionSuccess=Санҷиши обунашавӣ бомуваффақият иҷро шуд SynchroMailManEnabled=Навсозии почтаи электронӣ иҷро карда мешавад SynchroSpipEnabled=Навсозии Spip иҷро карда мешавад -DescADHERENT_MAILMAN_ADMINPW=Пароли администратор +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL барои обунаҳои почта DescADHERENT_MAILMAN_UNSUB_URL=URL барои обунаҳои почтаи электронӣ DescADHERENT_MAILMAN_LISTS=Рӯйхатҳо барои сабти автоматии аъзоёни нав (бо вергул ҷудо карда шудаанд) diff --git a/htdocs/langs/tg_TJ/mails.lang b/htdocs/langs/tg_TJ/mails.lang index 9975af18ee1..06b537ffc63 100644 --- a/htdocs/langs/tg_TJ/mails.lang +++ b/htdocs/langs/tg_TJ/mails.lang @@ -7,10 +7,10 @@ MailCard=Корти почтаи электронӣ MailRecipients=Қабулкунандагон MailRecipient=Гиранда MailTitle=Тавсиф -MailFrom=Ирсолкунанда +MailFrom=From MailErrorsTo=Хатогиҳо ба MailReply=Ҷавоб ба -MailTo=Қабулкунанда +MailTo=To MailToUsers=Ба корбарон MailCC=Нусхабардорӣ ба MailToCCUsers=Нусхабардорӣ ба корбарон @@ -178,3 +178,4 @@ IsAnAnswer=Ҷавоби почтаи аввал аст RecordCreatedByEmailCollector=Сабт аз ҷониби коллектори почтаи %s аз почтаи %s сохта шудааст DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Холӣ, аммо ҳатмӣ +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/tg_TJ/main.lang b/htdocs/langs/tg_TJ/main.lang index 470a718cd60..fab00674f6b 100644 --- a/htdocs/langs/tg_TJ/main.lang +++ b/htdocs/langs/tg_TJ/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Барои ин намуди почтаи электронӣ AvailableVariables=Тағирёбандаҳои ивазкунандаи дастрас NoTranslation=Тарҷума нест Translation=Тарҷума +Translations=Translations CurrentTimeZone=TimeZone PHP (сервер) EmptySearchString=Меъёрҳои холии ҷустуҷӯро ворид кунед EnterADateCriteria=Меъёрҳои сана ворид кунед @@ -199,6 +206,7 @@ Valid=Эътибор дорад Approve=Тасдиқ кардан Disapprove=Рад кардан ReOpen=Аз нав кушоед +OpenVerb=Open Upload=Боргузорӣ ToLink=Пайванд Select=Интихоб кунед @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Ягон гурӯҳи корбарон муайян нашудааст Password=Рамз -PasswordRetype=Пароли худро дубора ворид кунед +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Дар хотир доред, ки дар ин намоиш бисёр хусусиятҳо/модулҳо хомӯш карда шудаанд. Name=Ном NameSlashCompany=Ном / ширкат @@ -244,6 +252,7 @@ Designation=Тавсиф DescriptionOfLine=Тавсифи хат DateOfLine=Санаи хат DurationOfLine=Давомнокии хат +ParentLine=Parent line ID Model=Шаблон ҳуҷҷат DefaultModel=Шаблон ҳуҷҷати пешфарз Action=Чорабинӣ @@ -344,7 +353,7 @@ KiloBytes=Килобайтҳо MegaBytes=Мегабайт GigaBytes=Гигабайтҳо TeraBytes=Терабайтҳо -UserAuthor=Аз ҷониби интизорӣ +UserAuthor=Created by UserModif=Навсозӣ аз ҷониби b=б. Kb=Кб @@ -480,6 +489,7 @@ ActionsOnContact=Чорабиниҳо барои ин тамос/суроға ActionsOnContract=Чорабиниҳо барои ин шартнома ActionsOnMember=Ҳодисаҳо дар бораи ин аъзо ActionsOnProduct=Ҳодисаҳо дар бораи ин маҳсулот +ActionsOnAsset=Events for this fixed asset NActionsLate=%s дер ToDo=Кардан Completed=Анҷом ёфт @@ -517,6 +527,7 @@ or=ё Other=Дигар Others=Дигарон OtherInformations=Маълумоти дигар +Workflow=Workflow Quantity=Миқдор Qty=Миқдори ChangedBy=Аз ҷониби тағир дода шудааст @@ -619,6 +630,7 @@ MonthVeryShort11=Н. MonthVeryShort12=Д. AttachedFiles=Файлҳо ва ҳуҷҷатҳои замимашуда JoinMainDoc=Ба ҳуҷҷати асосӣ ҳамроҳ шавед +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +721,7 @@ FeatureDisabled=Хусусият хомӯш карда шудааст MoveBox=Виджетро интиқол диҳед Offered=Пешниҳод шудааст NotEnoughPermissions=Шумо барои ин амал иҷозат надоред +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Номи сессия Method=Усул Receive=Гирифтан @@ -798,6 +811,7 @@ URLPhoto=URL -и акс/логотип SetLinkToAnotherThirdParty=Истинод ба шахси сеюм LinkTo=Истинод ба LinkToProposal=Пайванд ба пешниҳод +LinkToExpedition= Link to expedition LinkToOrder=Истинод ба фармоиш LinkToInvoice=Истинод ба ҳисобнома -фактура LinkToTemplateInvoice=Истинод ба ҳисобнома -фактура @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Истиноди зеркашии хусусӣ PrivateDownloadLinkDesc=Шумо бояд вориди систем шавед ва барои дидан ё зеркашӣ кардани файл ба шумо иҷозат лозим аст Download=Зеркашӣ кунед DownloadDocument=Ҳуҷҷатро зеркашӣ кунед +DownloadSignedDocument=Download signed document ActualizeCurrency=Навсозии қурби асъор Fiscalyear=Соли молиявӣ ModuleBuilder=Модул ва созандаи барнома @@ -1041,6 +1056,7 @@ SearchIntoContracts=Шартномаҳо SearchIntoCustomerShipments=Интиқоли мизоҷон SearchIntoExpenseReports=Ҳисоботи хароҷот SearchIntoLeaves=Тарк +SearchIntoKM=Knowledge base SearchIntoTickets=Чиптаҳо SearchIntoCustomerPayments=Пардохтҳои муштариён SearchIntoVendorPayments=Пардохтҳои фурӯшанда @@ -1132,15 +1148,29 @@ EventReminder=Ёддошти ҳодиса UpdateForAllLines=Навсозӣ барои ҳама сатрҳо OnHold=Барои нигоҳдорӣ Civility=Шаҳрвандӣ -AffectTag=Таъсир ба Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Эҷоди корбари беруна -ConfirmAffectTag=Таъсири барчаспҳо -ConfirmAffectTagQuestion=Шумо мутмаин ҳастед, ки мехоҳед барчаспҳоро ба сабт (ҳо) -и интихобшудаи %s таъсир расонед? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Барои намуди сабтҳо ягон барчасп ёфт нашуд +Rate=Нарх +SupervisorNotFound=Supervisor not found CopiedToClipboard=Ба силули мухобиротӣ нусхабардорӣ карда шуд InformationOnLinkToContract=Ин маблағ танҳо маҷмӯи ҳамаи сатрҳои шартнома аст. Ҳеҷ як мафҳуми вақт ба назар гирифта намешавад. ConfirmCancel=Шумо мутмаин ҳастед, ки бекор кардан мехоҳед EmailMsgID=Ба почтаи MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Ба фаъол гузоштан SetToDisabled=Ба ғайрифаъол гузоштан ConfirmMassEnabling=тасдиқи оммавӣ, ки имкон медиҳад @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/tg_TJ/members.lang b/htdocs/langs/tg_TJ/members.lang index 43a74d7b508..d5dacecff19 100644 --- a/htdocs/langs/tg_TJ/members.lang +++ b/htdocs/langs/tg_TJ/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=Бо мақсади амният, шумо бояд иҷозати таҳрири ҳамаи корбаронро дошта бошед, то узвро ба корбаре, ки аз они шумо нест, пайванд кунед. SetLinkToUser=Истинод ба як корбари Dolibarr SetLinkToThirdParty=Истинод ба тарафи сеюми Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Рӯйхати аъзоён MembersListToValid=Рӯйхати аъзоёни лоиҳа (тасдиқ карда мешавад) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Идентификатсияи аъзо +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Аъзои нав MemberType=Навъи аъзо MemberTypeId=Идентификатори намуди аъзо @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Навъи аъзоро нест кардан мумк NewSubscription=New contribution NewSubscriptionDesc=Ин шакл ба шумо имкон медиҳад, ки обунаи худро ҳамчун узви нави бунёд сабт кунед. Агар шумо хоҳед, ки обунаи худро навсозӣ кунед (агар аллакай узв бошад), лутфан ба Шӯрои бунёд тавассути почтаи электронии %s муроҷиат кунед. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Дер SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Мундариҷаи корти узви шумо # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Мо мехоҳем ба шумо хабар диҳем, ки дархости узвияти шумо қабул шудааст.

    ThisIsContentOfYourMembershipWasValidated=Мо мехоҳем ба шумо хабар диҳем, ки узвияти шумо бо маълумоти зерин тасдиқ карда шудааст:

    -ThisIsContentOfYourSubscriptionWasRecorded=Мо мехоҳем ба шумо хабар диҳем, ки обунаи нави шумо сабт шудааст.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Мо мехоҳем ба шумо хабар диҳем, ки обунаи шумо ба охир мерасад ё аллакай ба охир расидааст (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Умедворем, ки шумо онро навсозӣ мекунед.

    ThisIsContentOfYourCard=Ин хулосаи маълумоти мо дар бораи шумост. Лутфан бо мо тамос гиред, агар чизе нодуруст бошад.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Мавзӯи почтаи огоҳинома дар сурати худкор навиштани меҳмон гирифта мешавад @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Гардиш (барои ширкат) ё буҷет (барои таҳкурсӣ) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Ба саҳифаи маҷмӯии пардохти онлайн гузаред +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Аз рӯи табиат MembersStatisticsByProperties=Аъзоёни омор аз рӯи табиат VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s корбари беруна сохта шудааст ForceMemberNature=Хусусияти узви қувва (инфиродӣ ё корпоративӣ) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/tg_TJ/modulebuilder.lang b/htdocs/langs/tg_TJ/modulebuilder.lang index f255a6225fa..7559f207229 100644 --- a/htdocs/langs/tg_TJ/modulebuilder.lang +++ b/htdocs/langs/tg_TJ/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Роҳе, ки модулҳо тавлид/таҳрир карда мешаванд (феҳристи аввал барои модулҳои беруна ба %s муайян карда шудааст): %s ModuleBuilderDesc3=Модулҳои тавлидшуда/таҳриршаванда ёфт шуданд: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Ҳангоме ки файли %s дар NewModule=Модули нав NewObjectInModulebuilder=Объекти нав NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Калиди модул ObjectKey=Калиди объект DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Роҳ ба zip -и модул/бастаи барнома PathToModuleDocumentation=Роҳ ба файли ҳуҷҷатҳои модул/ариза (%s) SpaceOrSpecialCharAreNotAllowed=Ҷойҳо ё аломатҳои махсус иҷозат дода намешаванд. FileNotYetGenerated=Файл ҳоло тавлид нашудааст +GenerateCode=Generate code RegenerateClassAndSql=Навсозии маҷбурии файлҳои .class ва .sql RegenerateMissingFiles=Файлҳои гумшударо эҷод кунед SpecificationFile=Файли ҳуҷҷатҳо LanguageFile=Файл барои забон ObjectProperties=Хусусиятҳои объект +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Шумо мутмаин ҳастед, ки моликияти %s нест кардан мехоҳед? Ин рамзро дар синфи PHP тағир медиҳад, аммо сутунро аз таърифи ҷадвали объект хориҷ мекунад. NotNull=Не NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Андоза аст DirScanned=Феҳрист скан шуд NoTrigger=Триггер нест NoWidget=Виджет нест -GoToApiExplorer=Муҳаққиқи API +ApiExplorer=API explorer ListOfMenusEntries=Рӯйхати вурудоти меню ListOfDictionariesEntries=Рӯйхати вурудоти луғатҳо ListOfPermissionsDefined=Рӯйхати иҷозатномаҳои муайяншуда SeeExamples=Намунаҳоро дар ин ҷо бубинед -EnabledDesc=Шарти фаъол будани ин майдон (Намунаҳо: 1 ё $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Оё майдон намоён аст? (Мисолҳо: 0 = Ҳеҷ гоҳ намоён нест, 1 = Дар рӯйхат намоён аст ва шаклҳоро эҷод/навсозӣ/дидан, 2 = Танҳо дар рӯйхат дидан, 3 = Танҳо дар шакли сохтан/навсозӣ/дидан (на рӯйхат), 4 = Дар рӯйхат намоён ва танҳо формаи навсозӣ/намоиш (офарида намешавад), 5 = Танҳо дар намуди рӯйхат намоён аст (эҷод карда намешавад, навсозӣ намешавад.

    Он метавонад ифода бошад, масалан:
    preg_match ('/public/', $ _SERVER ['PHP_SELF'])? 0: 1 a0342fccfda19bz_ (0 user-> 1)> $ user-> 1) -DisplayOnPdfDesc=Ин майдонро дар ҳуҷҷатҳои мувофиқи PDF намоиш диҳед, шумо метавонед мавқеъро бо майдони "Мавқеъ" идора кунед.
    Айни замон, маълум моделҳои ҳамсозҳо PDF мебошанд: eratosthene (амрномаи), espadon (киштӣ), исфанҷеро (њисобнома), кабуд (propal / иқтибос), cornas (молрасон ва тартибот)

    Барои ҳуҷҷат:
    0 = нишон дода нашавад
    1 = Намоиши
    2 = нишон додани танҳо агар холӣ нест,

    Барои хати санад:
    0 = не нишон
    1 = дар сутуни
    3 = Намоиши дар сутуни Тавсифи хатти пас аз тавсифи
    4 = Намоиши дар сутуни тавсифи баъд аз намоиш тавсиф танҳо агар холӣ набошад -DisplayOnPdf=Намоиши PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Оё барои ба рӯйхат дохил шудан арзиши майдонро ҷамъ кардан мумкин аст? (Намунаҳо: 1 ё 0) SearchAllDesc=Оё майдон барои ҷустуҷӯи асбоби ҷустуҷӯи зуд истифода мешавад? (Намунаҳо: 1 ё 0) SpecDefDesc=Дар ин ҷо ҳама ҳуҷҷатҳое, ки шумо мехоҳед бо модули худ пешниҳод кунед, ки аз ҷониби дигар ҷадвалҳо муайян нашудаанд, ворид кунед. Шумо метавонед .md ё беҳтар, синтаксиси .asciidoc бойро истифода баред. @@ -130,26 +136,32 @@ UseSpecificEditorURL = URL -и муҳаррири мушаххасро исти UseSpecificFamily = Як оилаи мушаххасро истифода баред UseSpecificAuthor = Муаллифи мушаххасро истифода баред UseSpecificVersion = Як версияи мушаххаси ибтидоиро истифода баред -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Агар шумо инро тафтиш кунед, барои илова кардани қуттии "Ҳуҷҷат эҷод кардан" дар сабт баъзе кодҳо тавлид карда мешаванд. -ShowOnCombobox=Нишон додани арзиши дар combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Калид барои маслиҳат CSSClass=CSS барои таҳрир/сохтани форма CSSViewClass=CSS барои хондан CSSListClass=CSS барои рӯйхат NotEditable=Таҳрир карда намешавад ForeignKey=Калиди хориҷӣ -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Табдилдиҳандаи Ascii ба HTML AsciiToPdfConverter=Табдилдиҳандаи Ascii ба PDF TableNotEmptyDropCanceled=Ҷадвал холӣ нест. Таркиш бекор карда шуд. ModuleBuilderNotAllowed=Созандаи модул дастрас аст, аммо ба корбари шумо иҷозат дода намешавад. ImportExportProfiles=Профилҳои воридот ва содирот -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/tg_TJ/mrp.lang b/htdocs/langs/tg_TJ/mrp.lang index fa1ecdac6f0..2b86d18ff7f 100644 --- a/htdocs/langs/tg_TJ/mrp.lang +++ b/htdocs/langs/tg_TJ/mrp.lang @@ -11,8 +11,8 @@ Bom=Векселҳои моддӣ BillOfMaterials=Билл Маводҳо BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Танзими модули BOM -ListOfBOMs=Рӯйхати векселҳои мавод - BOM -ListOfManufacturingOrders=Рӯйхати фармоишҳои истеҳсолӣ +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Ҳисоботи нави маводҳо ProductBOMHelp=Маҳсулот барои сохтан (ё ҷудо кардан) бо ин БОМ.
    Эзоҳ: Маҳсулоте, ки дорои хусусияти 'Табиати маҳсулот' = 'Ашёи хом' аст, дар ин рӯйхат намоён нестанд. BOMsNumberingModules=Шаблонҳои рақамгузории BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Шумо мутмаин ҳастед, ки вара ConfirmCloneMo=Шумо мутмаин ҳастед, ки фармони истеҳсолотро %s клон кардан мехоҳед? ManufacturingEfficiency=Самаранокии истеҳсолот ConsumptionEfficiency=Самаранокии истеъмол +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Арзиши 0.95 маънои ба ҳисоби миёна 5%% талафи маҳсулоти истеҳсолшударо дорад DeleteBillOfMaterials=Билли маводро нест кунед @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=Барои миқдори тақсим кардани %s ConfirmValidateMo=Шумо мутмаин ҳастед, ки ин фармоиши истеҳсолиро тасдиқ кардан мехоҳед? ConfirmProductionDesc=Бо зеркунии '%s', шумо истеъмол ва/ё истеҳсолро барои миқдори муқарраршуда тасдиқ мекунед. Ин инчунин саҳмияҳоро навсозӣ мекунад ва ҳаракати саҳмияҳоро сабт мекунад. ProductionForRef=Истеҳсоли %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Агар миқдори истеъмол ва истеҳсол ба даст ояд, Фармони истеҳсолотро ба таври худкор пӯшед NoStockChangeOnServices=Тағйирёбии саҳмияҳо дар хидматҳо ProductQtyToConsumeByMO=Миқдори маҳсулот то ҳол аз ҷониби MO кушода мешавад @@ -80,6 +83,7 @@ ProductsToProduce=Маҳсулот барои истеҳсол UnitCost=Арзиши воҳид TotalCost=Арзиши умумӣ BOMTotalCost=Арзиши истеҳсоли ин БМ дар асоси арзиши ҳар як миқдор ва маҳсулоти истеъмолшаванда (истифодаи арзиши хароҷот, агар муайян карда шуда бошад, дигар Нархи миёнавазни миёна агар муайян карда шавад, дигар нархи беҳтарин харид) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Шумо бояд аввал истеҳсолотро барои бастани фармоиши истеҳсолӣ оғоз карда бошед (Ба ҷадвали '%s' нигаред). Аммо шумо метавонед онро бекор кунед. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Маҷмӯаро ба БОМ ё ММ истифода бурдан мумкин нест Workstation=Истгоҳи корӣ @@ -107,3 +111,10 @@ THMEstimatedHelp=Ин меъёр имкон медиҳад, ки арзиши п BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/tg_TJ/oauth.lang b/htdocs/langs/tg_TJ/oauth.lang index 844e0791c37..1a88edeb3a2 100644 --- a/htdocs/langs/tg_TJ/oauth.lang +++ b/htdocs/langs/tg_TJ/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Нишон тавлид шуд ва дар пойгоҳи дод NewTokenStored=Токен қабул ва захира карда шуд ToCheckDeleteTokenOnProvider=Барои тафтиш/нест кардани иҷозати аз ҷониби провайдери %s OAuth сабтшуда ин ҷо клик кунед TokenDeleted=Нишон нест карда шуд -RequestAccess=Барои дархост кардан/нав кардани дастрасӣ ва гирифтани аломати нав барои наҷот ин ҷо клик кунед -DeleteAccess=Барои нест кардани аломат ин ҷо клик кунед +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Ҳангоми эҷоди эътимодномаи худ бо провайдери OAuth URL -и зеринро ҳамчун URI масир истифода баред: -ListOfSupportedOauthProviders=Эътимодномаеро, ки провайдери OAuth2 пешниҳод кардааст, ворид кунед. Дар ин ҷо танҳо провайдерҳои пуштибони OAuth2 номбар шудаанд. Ин хидматҳо метавонанд аз ҷониби дигар модулҳое истифода шаванд, ки ба тасдиқи OAuth2 ниёз доранд. -OAuthSetupForLogin=Саҳифа барои тавлиди OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Ба ҷадвали қаблӣ нигаред +OAuthProvider=OAuth provider OAuthIDSecret=ID ва махфияти OAuth TOKEN_REFRESH=Ҳозираи навсозии токен TOKEN_EXPIRED=Мӯҳлати нишона гузаштааст @@ -23,10 +24,13 @@ TOKEN_DELETE=Нишони захирашударо нест кунед OAUTH_GOOGLE_NAME=Хидмати OAuth Google OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=Сирри Google OAuth -OAUTH_GOOGLE_DESC=Ба ба ин саҳифа равед ва сипас "Эътимоднома" барои эҷоди маълумоти OAuth OAUTH_GITHUB_NAME=Хидмати OAuth GitHub OAUTH_GITHUB_ID=Шиносаи OAuth GitHub OAUTH_GITHUB_SECRET=Сирри OAuth GitHub -OAUTH_GITHUB_DESC=Ба ба ин саҳифа равед ва сипас "Эҷоди як барномаи навро сабт кунед" то эътимодномаи OAuth эҷод кунед. +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=Санҷиши рахи OAuth OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/tg_TJ/products.lang b/htdocs/langs/tg_TJ/products.lang index b93148d333a..6d9ff1e01eb 100644 --- a/htdocs/langs/tg_TJ/products.lang +++ b/htdocs/langs/tg_TJ/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Шумо мутмаин ҳастед, ки ин хат ProductSpecial=Махсус QtyMin=Дақ. миқдори харид PriceQtyMin=Миқдори нарх min. -PriceQtyMinCurrency=Нарх (асъор) барои ин адад. (тахфиф нест) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=Меъёри ААИ (барои ин фурӯшанда/маҳсулот) DiscountQtyMin=Тахфиф барои ин миқдор. NoPriceDefinedForThisSupplier=Барои ин фурӯшанда/маҳсулот нарх/миқдор муайян карда нашудааст @@ -261,7 +262,7 @@ Quarter1=1 -ум. Семоҳа Quarter2=2 -юм. Семоҳа Quarter3=3 -юм. Семоҳа Quarter4=4 -ум. Семоҳа -BarCodePrintsheet=Баркодро чоп кунед +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Бо ин асбоб, шумо метавонед варақаҳои стикерҳои штрих -кодро чоп кунед. Формати саҳифаи стикер, навъи штрих -код ва арзиши штрих -кодро интихоб кунед ва тугмаи %s -ро клик кунед. NumberOfStickers=Шумораи стикерҳо барои чоп дар саҳифа PrintsheetForOneBarCode=Барои як штрих -код якчанд стикер чоп кунед @@ -344,9 +345,9 @@ PossibleValues=Арзишҳои имконпазир GoOnMenuToCreateVairants=Ба менюи %s - %s гузаред, то вариантҳои атрибутҳоро омода кунед (ба монанди рангҳо, андоза, ...) UseProductFournDesc=Илова ба тавсифи муштариён хусусиятеро барои муайян кардани тавсифи маҳсулоте, ки фурӯшандагон муайян кардаанд (барои ҳар як истинод ба фурӯшанда) илова кунед ProductSupplierDescription=Тавсифи фурӯшанда барои маҳсулот -UseProductSupplierPackaging=Истифодаи бастабандӣ дар нархҳои таъминкунандагон (миқдорро мувофиқи бастабандӣ дар нархи таъминкунанда ҳангоми илова/навсозии хати ҳуҷҷатҳои таъминкунанда муқаррар кунед) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Бастабандӣ -PackagingForThisProductDesc=Ҳангоми фармоиши таъминкунанда, шумо ба таври худкор ин миқдорро фармоиш медиҳед (ё ин миқдори зиёд). Аз ҳадди ақали харид камтар буда наметавонад +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Миқдори хати мувофиқи бастаи таъминкунандагон аз нав ҳисоб карда шуд #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Амал танҳо дар варианти ProductsPricePerCustomer=Нархи маҳсулот барои як муштарӣ ProductSupplierExtraFields=Хусусиятҳои иловагӣ (Нархи таъминкунандагон) DeleteLinkedProduct=Маҳсулоти кӯдаконаеро, ки ба комбинат алоқаманданд, нест кунед -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Нархи миёнаи вазн PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/tg_TJ/projects.lang b/htdocs/langs/tg_TJ/projects.lang index 0a529de8455..55d91073a3c 100644 --- a/htdocs/langs/tg_TJ/projects.lang +++ b/htdocs/langs/tg_TJ/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Ин назар ҳама лоиҳаҳо ва вазифаҳое TasksDesc=Ин намуд ҳамаи лоиҳаҳо ва вазифаҳоро муаррифӣ мекунад (иҷозатҳои корбарии шумо ба шумо барои дидани ҳама чиз иҷозат медиҳанд). AllTaskVisibleButEditIfYouAreAssigned=Ҳама вазифаҳо барои лоиҳаҳои тахассусӣ намоёнанд, аммо шумо метавонед вақтро танҳо барои вазифаи ба корбари интихобшуда таъиншуда ворид кунед. Вазифаро таъин кунед, агар ба шумо лозим аст, ки вақти онро ворид кунед. OnlyYourTaskAreVisible=Танҳо вазифаҳои ба шумо супоридашуда намоёнанд. Агар ба шумо лозим аст, ки вақтро дар ягон вазифа ворид кунед ва агар вазифа дар ин ҷо намоён набошад, шумо бояд вазифаро ба худатон супоред. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Вазифаҳои лоиҳаҳо ProjectCategories=Барчасбҳо/категорияҳои лоиҳа NewProject=Лоиҳаи нав @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Миқдори пешбари лоиҳаҳ OpportunitiesStatusForProjects=Миқдори лоиҳаҳо аз рӯи мақом пешсафанд ShowProject=Нишон додани лоиҳа ShowTask=Нишон додани вазифа +SetThirdParty=Set third party SetProject=Танзими лоиҳа +OutOfProject=Out of project NoProject=Ягон лоиҳа муайян ё молик нест NbOfProjects=Шумораи лоиҳаҳо NbOfTasks=Шумораи вазифаҳо @@ -122,7 +125,8 @@ ValidateProject=Тасвирро тасдиқ кунед ConfirmValidateProject=Шумо мутмаин ҳастед, ки мехоҳед ин лоиҳаро тасдиқ кунед? CloseAProject=Лоиҳа пӯшед ConfirmCloseAProject=Шумо мутмаин ҳастед, ки мехоҳед ин лоиҳаро пӯшед? -AlsoCloseAProject=Ҳамчунин лоиҳаро пӯшед (онро кушода нигоҳ доред, агар ба шумо то ҳол вазифаҳои истеҳсолиро риоя кардан лозим бошад) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Лоиҳаи кушод ConfirmReOpenAProject=Оё мутмаинед, ки мехоҳед ин лоиҳаро дубора кушоед? ProjectContact=Тамосҳои лоиҳа @@ -165,7 +169,7 @@ OpportunityProbability=Эҳтимоли роҳбарӣ OpportunityProbabilityShort=Пробаби сурб. OpportunityAmount=Миқдори роҳбар OpportunityAmountShort=Миқдори роҳбар -OpportunityWeightedAmount=Миқдори вазнини имконият +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Опп. миқдори вазн OpportunityAmountAverageShort=Миқдори миёнаи қурбонӣ OpportunityAmountWeigthedShort=Миқдори сурбшудаи вазн @@ -238,7 +242,7 @@ OppStatusPENDING=Интизоранд OppStatusWON=Ғолиб OppStatusLOST=Гумшуда Budget=Буҷет -AllowToLinkFromOtherCompany=Иҷозат диҳед, ки лоиҳаро аз ширкати дигар пайваст кунед идентификаторҳои тарафи сеюм, ки бо вергул ҷудо карда шудаанд: метавонанд ҳамаи лоиҳаҳои ин сеюмро пайванд диҳанд (Мисол: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Лоиҳаҳои охирини %s LatestModifiedProjects=Лоиҳаҳои охирини %s OtherFilteredTasks=Дигар вазифаҳои филтршуда @@ -259,7 +263,7 @@ TimeSpentInvoiced=Вақти сарфшуда ҳисоб карда мешава TimeSpentForIntervention=Вақти сарфшуда TimeSpentForInvoice=Вақти сарфшуда OneLinePerUser=Як сатр барои як корбар -ServiceToUseOnLines=Хизмат барои истифода дар хатҳо +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Ҳисобнома -фактура %s аз вақти сарфшуда дар лоиҳа таҳия шудааст InterventionGeneratedFromTimeSpent=Мудохила %s аз вақти сарфшуда дар лоиҳа тавлид шудааст ProjectBillTimeDescription=Санҷед, ки оё шумо ба ҷадвали вақт оид ба вазифаҳои лоиҳа ворид мешавед ВА шумо ният доред, ки аз ҷадвали вақт ҳисобнома -фактура (ҳо) эҷод кунед, то ба фармоишгари лоиҳа ҳисоб кунед (оё тафтиш накунед, ки оё шумо нақшаи ҳисобнома -фактураро тартиб додаед, ки ба ҷадвали вақт дохил нашудааст). Эзоҳ: Барои таҳияи ҳисобнома -фактура, ба ҷадвали 'Вақти сарфшуда' -и лоиҳа гузаред ва сатрҳои дохилшударо интихоб кунед. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Фоида бо истифода аз он ҳисоб к AddPersonToTask=Ба вазифаҳо низ илова кунед UsageOrganizeEvent=Истифода: Ташкили чорабиниҳо PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Лоиҳаро ҳамчун пӯшида тасниф кунед, вақте ки ҳамаи вазифаҳо иҷро мешаванд (100%% пешрафт) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Эзоҳ: лоиҳаҳои мавҷуда бо ҳама вазифаҳо дар пешрафти 100%% таъсир намерасонанд: шумо бояд онҳоро дастӣ пӯшед. Ин хосият танҳо ба лоиҳаҳои кушод таъсир мерасонад. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Хатҳои вақти сарфшударо ҳисоб накунед, пас амали оммавии "Ҳисобнома -фактура" -ро барои ҳисоб кардани онҳо интихоб кунед ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/tg_TJ/recruitment.lang b/htdocs/langs/tg_TJ/recruitment.lang index aff829ed9be..234c15c0285 100644 --- a/htdocs/langs/tg_TJ/recruitment.lang +++ b/htdocs/langs/tg_TJ/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Иштироки почтаи электронӣ ToUseAGenericEmail=Барои истифодаи почтаи электронӣ. Агар номаълум набошад, почтаи электронии масъули ҷалбкунӣ истифода мешавад NewCandidature=Барномаи нав ListOfCandidatures=Рӯйхати барномаҳо -RequestedRemuneration=Музди дархостшуда -ProposedRemuneration=Мукофоти пешниҳодшуда +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Шартнома таклиф этилди ContractSigned=Шартнома ба имзо расид ContractRefused=Шартнома рад кард RecruitmentCandidature=Ариза JobPositions=Ҷойҳои корӣ RecruitmentCandidatures=Барномаҳо -InterviewToDo=Мусоҳиба кардан +InterviewToDo=Contacts to follow AnswerCandidature=Ҷавоби ариза YourCandidature=Аризаи шумо YourCandidatureAnswerMessage=Ташаккур ба шумо барои дархостатон.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=Вазифаи корӣ баста аст. ExtrafieldsJobPosition=Хусусиятҳои иловагӣ (мансабҳои корӣ) ExtrafieldsApplication=Хусусиятҳои иловагӣ (дархостҳои корӣ) MakeOffer=Пешниҳод кунед +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/tg_TJ/salaries.lang b/htdocs/langs/tg_TJ/salaries.lang index c7d1c2b9d97..5c553df0b98 100644 --- a/htdocs/langs/tg_TJ/salaries.lang +++ b/htdocs/langs/tg_TJ/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Ҳисоби баҳисобгирӣ барои корбарони сеюм истифода мешавад -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Ҳисоби баҳисобгирии муҳосибӣ, ки дар корти корбар муайян шудааст, танҳо барои баҳисобгирии зерпардохт истифода мешавад. Ин барои китоби умумӣ ва ҳамчун арзиши пешфарзии баҳисобгирии Subledger истифода мешавад, агар ҳисоби махсуси баҳисобгирии корбар дар корбар муайян карда нашуда бошад. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои пардохти музди меҳнат CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Бо нобаёнӣ, ҳангоми эҷод кардани маош опсияи "Ба таври худкор пардохти умумӣ" -ро холӣ гузоред Salary=Музди меҳнат @@ -24,3 +24,4 @@ SalariesStatistics=Омори музди меҳнат SalariesAndPayments=Музди меҳнат ва пардохтҳо ConfirmDeleteSalaryPayment=Оё шумо ин пардохти музди меҳнатро нест кардан мехоҳед? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/tg_TJ/stocks.lang b/htdocs/langs/tg_TJ/stocks.lang index 03fe4d7059f..2013e0c12c3 100644 --- a/htdocs/langs/tg_TJ/stocks.lang +++ b/htdocs/langs/tg_TJ/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Сана дар оянда StocksByLotSerial=Саҳмияҳо аз рӯи қуръа/серия LotSerial=Бисёр/серияҳо LotSerialList=Рӯйхати серияҳо/серияҳо +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Ҳаракатҳо ErrorWarehouseRefRequired=Номи истинод ба анбор лозим аст ListOfWarehouses=Рӯйхати анборҳо @@ -48,7 +49,7 @@ StockCorrection=Ислоҳи саҳҳомӣ CorrectStock=Захираи дуруст StockTransfer=Интиқоли саҳмияҳо TransferStock=Ҳиссаи интиқол -MassStockTransferShort=Интиқоли оммавии саҳмияҳо +MassStockTransferShort=Bulk stock change StockMovement=Ҳаракати саҳҳомӣ StockMovements=Ҳаракатҳои саҳҳомӣ NumberOfUnit=Шумораи воҳидҳо @@ -146,8 +147,9 @@ Replenishments=Ивазкуниҳо NbOfProductBeforePeriod=Миқдори маҳсулоти %s дар давраи қабл аз интихобшуда мавҷуд аст (<%s) NbOfProductAfterPeriod=Миқдори маҳсулоти %s пас аз давраи интихобшуда дар саҳҳомӣ аст (> %s) MassMovement=Ҳаракати оммавӣ -SelectProductInAndOutWareHouse=Анбори манбаъ ва анбори мақсаднок, маҳсулот ва миқдорро интихоб кунед ва "%s" -ро клик кунед. Пас аз он ки ин барои ҳама ҳаракатҳои зарурӣ анҷом дода мешавад, клик кунед "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Интиқоли сабт +RecordMovements=Record stock movements ReceivingForSameOrder=Маблағҳо барои ин фармоиш StockMovementRecorded=Ҳаракати саҳмияҳо сабт карда шуд RuleForStockAvailability=Қоидаҳо оид ба талаботи саҳҳомӣ @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=Маҳдудияти саҳҳомӣ барои са ProductStockWarehouseUpdated=Маҳдудияти саҳҳомӣ барои саҳмияҳои оптималӣ ва дилхоҳ дуруст нав карда мешавад ProductStockWarehouseDeleted=Маҳдудияти саҳҳомӣ барои саҳмияҳои оптималӣ ва дилхоҳ дуруст нест карда шуд AddNewProductStockWarehouse=Маҳдудияти навро барои саҳмияҳои оптималӣ ва дилхоҳ муқаррар кунед -AddStockLocationLine=Миқдорро кам кунед ва клик кунед, то анбори дигари ин маҳсулотро илова кунед +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Санаи инвентаризатсия Inventories=Inventories NewInventory=Инвентаризатсияи нав @@ -234,7 +236,7 @@ StockIncrease=Афзоиши саҳмияҳо StockDecrease=Камшавии саҳмияҳо InventoryForASpecificWarehouse=Инвентаризатсия барои анбори мушаххас InventoryForASpecificProduct=Инвентаризатсия барои як маҳсулоти мушаххас -StockIsRequiredToChooseWhichLotToUse=Барои интихоб кардани кадом лот саҳмия лозим аст +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Маҷбур кардан ба AlwaysShowFullArbo=Дар равзанаи истиноди анбор дарахти пурраи анборро намоиш диҳед (Огоҳӣ: Ин метавонад нишондиҳандаҳоро ба таври назаррас коҳиш диҳад) StockAtDatePastDesc=Шумо метавонед дар ин ҷо саҳмияҳоро (саҳмияҳои воқеӣ) дар санаи додашуда дар гузашта дидан кунед @@ -254,7 +256,7 @@ ReOpen=Боз кардан ConfirmFinish=Оё шумо бастани инвентаризатсияро тасдиқ мекунед? Ин ҳама ҳаракатҳои саҳҳомиро ба вуҷуд меорад, то саҳмияҳои худро ба миқдори воқеии ба инвентаризатсия воридшуда навсозӣ кунанд. ObjectNotFound=%s ёфт нашуд MakeMovementsAndClose=Ҳаракатҳоро эҷод кунед ва пӯшед -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=Бо нобаёнӣ, тафсилоти партияро дар ҷадвали "саҳмия" -и маҳсулот нишон диҳед CollapseBatchDetailHelp=Шумо метавонед намоиши пешфарзии тафсилоти партияро дар конфигуратсияи модули саҳмияҳо таъин кунед ErrorWrongBarcodemode=Ҳолати штрих -кодҳои номаълум @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=Маҳсулот бо штрих -код вуҷуд WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Start InventoryStartedShort=Started ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. -StockChangeDisabled=Change on stock disabled +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/tg_TJ/ticket.lang b/htdocs/langs/tg_TJ/ticket.lang index ac9b1fa27b4..370265f8852 100644 --- a/htdocs/langs/tg_TJ/ticket.lang +++ b/htdocs/langs/tg_TJ/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Билетҳоро нест кунед Permission56004=Идоракунии чиптаҳо Permission56005=Чиптаҳои ҳамаи шахсони сеюмро бинед (барои корбарони беруна муассир нест, ҳамеша бо тарафи сеюме, ки ба онҳо вобаста аст, маҳдуд аст) +Tickets=Tickets TicketDictType=Чипта - намудҳо TicketDictCategory=Чипта - гурӯҳҳо TicketDictSeverity=Чипта - вазнинӣ @@ -90,8 +91,8 @@ TicketPublicAccess=Интерфейси оммавӣ, ки бидуни шино TicketSetupDictionaries=Навъи чипта, вазнинӣ ва рамзҳои таҳлилӣ аз луғатҳо танзим карда мешаванд TicketParamModule=Танзими тағирёбандаи модул TicketParamMail=Танзимоти почтаи электронӣ -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Паёми матнӣ пас аз сохтани чипта фиристода мешавад @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Матни дар ин ҷо нишон додашуда TicketParamPublicInterface=Танзимоти интерфейси оммавӣ TicketsEmailMustExist=Барои сохтани чипта суроғаи почтаи электронии мавҷударо талаб кунед TicketsEmailMustExistHelp=Дар интерфейси оммавӣ, суроғаи почтаи электронӣ бояд барои сохтани чиптаи нав дар пойгоҳи додаҳо пур карда шавад. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Интерфейси оммавӣ TicketUrlPublicInterfaceLabelAdmin=URL -и алтернативӣ барои интерфейси оммавӣ TicketUrlPublicInterfaceHelpAdmin=Тақаллусро ба веб -сервер муайян кардан ва ба ин васила интерфейси оммавиро бо URLи дигар дастрас кардан мумкин аст (сервер бояд дар ин URLи нав ҳамчун прокси амал кунад) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Ҳоло чипта таъин карда мешавад TicketChangeType=Тағир додани намуди TicketChangeCategory=Тағир додани рамзи таҳлилӣ TicketChangeSeverity=Тағир додани шиддат -TicketAddMessage=Паём илова кунед -AddMessage=Паём илова кунед +TicketAddMessage=Add private message MessageSuccessfullyAdded=Билет илова карда шуд TicketMessageSuccessfullyAdded=Паём бомуваффақият илова карда шуд TicketMessagesList=Рӯйхати паёмҳо @@ -202,8 +206,8 @@ TicketSeverity=Шиддатнокӣ ShowTicket=Билетро бинед RelatedTickets=Чиптаҳои марбут TicketAddIntervention=Эҷоди мудохила -CloseTicket=Пӯшед | Билетро ҳал кунед -AbandonTicket=Билетро тарк кунед +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Пӯшед | Билетро ҳал кунед ConfirmCloseAticket=Бастани чиптаро тасдиқ кунед ConfirmAbandonTicket=Оё шумо пӯшидани чиптаро ба мақоми 'партофташуда' тасдиқ мекунед? @@ -217,18 +221,17 @@ SendMessageByEmail=Паёмро тавассути почтаи электрон TicketNewMessage=Хабари нав ErrorMailRecipientIsEmptyForSendTicketMessage=Қабулкунанда холӣ аст. Фиристодани почтаи электронӣ нест TicketGoIntoContactTab=Лутфан ба ҷадвали "Тамос" ворид шавед, то онҳоро интихоб кунед -TicketMessageMailIntro=Муқаддима +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Ин матн танҳо дар аввали почтаи электронӣ илова карда мешавад ва захира карда намешавад. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Имзо -TicketMessageMailSignatureHelp=Ин матн танҳо дар охири почтаи электронӣ илова карда мешавад ва захира карда намешавад. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Имзои почтаи электронӣ -TicketMessageMailSignatureHelpAdmin=Ин матн пас аз паёми ҷавоб ворид карда мешавад. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Танҳо ин матн дар рӯйхати паёмҳо дар корти чипта сабт карда мешавад. TicketMessageSubstitutionReplacedByGenericValues=Тағирёбандаҳои ивазшаванда бо арзишҳои умумӣ иваз карда мешаванд. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Аз он вақт гузашт TicketTimeToRead=Вақт пеш аз хондан гузашт TicketTimeElapsedBeforeSince=Вақт пеш / аз он гузашт @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Дар чипта паёми нав TicketAssignedToYou=Билет таъин карда шуд TicketAssignedEmailBody=Ба шумо чиптаи #%s аз ҷониби %s таъин карда шудааст MarkMessageAsPrivate=Паёмро ҳамчун хусусӣ қайд кунед +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Ин паём ба корбарони беруна намоиш дода намешавад TicketEmailOriginIssuer=Эмитент дар пайдоиши чиптаҳо InitialMessage=Паёми ибтидоӣ @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Шумо метавонед ҷараён TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Лутфан бевосита ба ин почтаи электронӣ ҷавоб надиҳед! Истинодро барои посух додан ба интерфейс истифода баред. TicketPublicInfoCreateTicket=Ин шакл ба шумо имкон медиҳад, ки чиптаи дастгирӣ дар системаи идоракунии мо сабт кунед. -TicketPublicPleaseBeAccuratelyDescribe=Лутфан мушкилотро дақиқ тавсиф кунед. Маълумоти бештарро пешниҳод кунед, то ба мо имкон диҳем, ки дархости шуморо дуруст муайян кунем. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Лутфан ID пайгирии чиптаро ворид кунед TicketTrackId=ID пайгирии ҷамъиятӣ OneOfTicketTrackId=Яке аз ID пайгирии шумо diff --git a/htdocs/langs/tg_TJ/users.lang b/htdocs/langs/tg_TJ/users.lang index d268d4f6d17..1147a06d8cb 100644 --- a/htdocs/langs/tg_TJ/users.lang +++ b/htdocs/langs/tg_TJ/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Аз гурӯҳ хориҷ кунед PasswordChangedAndSentTo=Рамз иваз карда шуда, ба %s фиристода шуд. PasswordChangeRequest=Дархост барои иваз кардани парол барои %s PasswordChangeRequestSent=Дархост барои иваз кардани парол барои %s ба %s фиристода шудааст. -IfLoginExistPasswordRequestSent=Агар ин воридшавӣ ҳисоби дуруст бошад, почтаи электронӣ барои аз нав танзимкунии парол фиристода шудааст. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Агар ин почтаи электронӣ ҳисоби дуруст бошад, почтаи электронӣ барои аз нав танзимкунии парол фиристода шудааст. ConfirmPasswordReset=Аз нав танзимкунии паролро тасдиқ кунед MenuUsersAndGroups=Истифодабарандагон ва гурӯҳҳо @@ -68,7 +68,6 @@ CreateDolibarrLogin=Истифодабаранда эҷод кунед CreateDolibarrThirdParty=Эҷоди як шахси сеюм LoginAccountDisableInDolibarr=Ҳисоб дар Dolibarr хомӯш карда шудааст. UsePersonalValue=Арзиши шахсиро истифода баред -InternalUser=Истифодабарандаи дохилӣ ExportDataset_user_1=Истифодабарандагон ва хосиятҳои онҳо DomainUser=Истифодабарандаи домен %s Reactivate=Аз нав фаъол кунед @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/tg_TJ/website.lang b/htdocs/langs/tg_TJ/website.lang index 610ac5fa899..3367de55646 100644 --- a/htdocs/langs/tg_TJ/website.lang +++ b/htdocs/langs/tg_TJ/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Рамз +WebsiteName=Name of the website WebsiteSetupDesc=Дар ин ҷо вебсайтҳое, ки мехоҳед истифода баред, эҷод кунед. Сипас ба менюи Вебсайтҳо ворид шавед, то онҳоро таҳрир кунед. DeleteWebsite=Вебсайтро нест кунед ConfirmDeleteWebsite=Шумо мутмаин ҳастед, ки мехоҳед ин вебсайтро нест кунед? Ҳама саҳифаҳо ва мундариҷаи он низ нест карда мешаванд. Файлҳои боршуда (ба монанди директорияи медиа, модули ECM, ...) боқӣ мемонанд. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Илова дар поёни сарлавҳаи HTML (уму WEBSITE_ROBOT=Файли роботӣ (robots.txt) WEBSITE_HTACCESS=Файли вебсайт .htaccess WEBSITE_MANIFEST_JSON=Файли вебсайти manifest.json -WEBSITE_README=Файли README.md WEBSITE_KEYWORDSDesc=Барои ҷудо кардани арзишҳо вергулро истифода баред -EnterHereLicenseInformation=Барои пешниҳоди файли README.md маълумоти мета ё маълумоти литсензияро дар ин ҷо ворид кунед. агар шумо вебсайти худро ҳамчун шаблон паҳн кунед, файл ба бастаи озмоишӣ дохил карда мешавад. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Сарлавҳаи HTML (танҳо ба ин саҳифа хос аст) PageNameAliasHelp=Ном ё тахаллуси саҳифа.
    Ин тахаллус инчунин ҳангоми сохтани вебсайт аз як мизбони виртуалии сервери веб (ба монанди Apacke, Nginx, ...) барои сохтани URL -и SEO истифода мешавад. Барои таҳрири ин тахаллус тугмаи " %s " -ро истифода баред. EditTheWebSiteForACommonHeader=Эзоҳ: Агар шумо хоҳед, ки барои ҳамаи саҳифаҳо сарлавҳаи инфиродӣ муайян кунед, сарлавҳаро дар сатҳи сайт на ба саҳифа/контейнер таҳрир кунед. @@ -42,10 +43,12 @@ ViewPageInNewTab=Дидани саҳифа дар ҷадвали нав SetAsHomePage=Ҳамчун саҳифаи асосӣ танзим кунед RealURL=URL воқеӣ ViewWebsiteInProduction=Дидани вебсайт бо истифода аз URL -и хонагӣ +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Намуна барои истифода дар танзими мизбони виртуалии Apache: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Вебсайти худро бо провайдери дигари хостинги Dolibarr идора кунед
    Агар шумо веб -сервери монанди Apache ё NGinx дар интернет дастрас набошед, шумо метавонед вебсайти худро ба як мисоли дигари Dolibarr, ки аз ҷониби провайдери дигари хостинги Dolibarr пешниҳод шудааст, содир ва ворид кунед. ҳамгироӣ бо модули вебсайт. Шумо метавонед рӯйхати баъзе провайдерҳои хостинги Dolibarr -ро дар пайдо кунед https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=Хондан WritePerm=Нависед @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Шумо метавонед рамзи сарчаш YouCanEditHtmlSource=
    Шумо метавонед бо истифода аз барчаспҳои <? php? a0012c7d7c00770 Тағирёбандаҳои глобалӣ мавҷуданд: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    Шумо инчунин метавонед мундариҷаи дигар Саҳифа/Контейнерро бо синтаксиси зерин дохил кунед:
    a0e78439c0_f09_d094c0f4f4d94 ? >


    Шумо метавонед масир ба дигар Page / зарф бо синтаксиси зерин кунад (Эзоҳ: мекунед, натиҷаи ҳама гуна мазмуни пеш аз масир надорад):
    < PHP redirectToContainer ( 'alias_of_container_to_redirect_to'); ? >

    Барои илова кардани пайванди саҳифаи дигар истифода наҳвӣ:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    Барои дохил пайванди ба боргирӣ файл нигоҳ дошта, ба њуљљатњои ба феҳристи , истифода document.php wrapper:
    Мисол, барои як файл ба санадњои / ecm (зарурати ба систем ворид шуда бошед), наҳвӣ аст?
    <a href = "/ document.php modulepart = ecm & файли = [relative_dir / ] filename.ext ">
    Барои файл дар ҳуҷҷатҳо/медиа (феҳристи кушод барои дастрасии оммавӣ), синтаксис ин аст:
    a0e7843947d09cz "/document.php?modulepart=medias&file=[relativ_dir/] /document.php?hashp=publicsharekeyoffile">


    барои дохил кардани тасвир захира ба ҳуҷҷатҳои феҳрист истифода viewimage.php wrapper:
    Мисол, ки барои тасвир ба санадњои / medias (кушода директория барои дастрасии ҷамъиятӣ), синтаксис ин аст:
    <img src = "/viewimage.php? modulepart = medias&file a0c7 #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=Барои тасвире, ки бо истиноди мубодила мубодила карда мешавад (дастрасии кушод бо калиди мубодилаи ҳеши файл), синтаксис ин аст:
    <img src = "/viewimage.php? Hashp = 12345679012z00f01d0f0d0fd09d09d0fd09d0f0f0e9 -YouCanEditHtmlSourceMore=
    Намунаҳои дигари HTML ё коди динамикӣ дар дар ҳуҷҷатҳои вики
    дастрасанд. +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Саҳифа/контейнерро клон кунед CloneSite=Сайти клон SiteAdded=Вебсайт илова карда шуд @@ -137,7 +140,7 @@ PagesRegenerated=%s саҳифа/ҳо/контейнерҳо дубора бар RegenerateWebsiteContent=Файлҳои кэши вебсайтро дубора барқарор кунед AllowedInFrames=Дар Чаҳорчӯба иҷозат дода шудааст DefineListOfAltLanguagesInWebsiteProperties=Рӯйхати ҳамаи забонҳои дастрасро ба хосиятҳои вебсайт муайян кунед. -GenerateSitemaps=Файли харитаи вебсайтро эҷод кунед +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Агар шумо тасдиқ кунед, шумо файли мавҷудаи харитаи сайтро нест мекунед ... ConfirmSitemapsCreation=Насли харитаи сайтро тасдиқ кунед SitemapGenerated=Файли харитаи сайт %s тавлид шудааст @@ -145,3 +148,10 @@ ImportFavicon=Фавикон ErrorFaviconType=Favicon бояд png бошад ErrorFaviconSize=Favicon бояд андозаи 16x16, 32x32 ё 64x64 бошад FaviconTooltip=Тасвиреро бор кунед, ки бояд png бошад (16x16, 32x32 ё 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/tg_TJ/withdrawals.lang b/htdocs/langs/tg_TJ/withdrawals.lang index 99a56d0c634..9ea92893574 100644 --- a/htdocs/langs/tg_TJ/withdrawals.lang +++ b/htdocs/langs/tg_TJ/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Ҳисобнома -фактураи фурӯша InvoiceWaitingWithdraw=Ҳисобнома -фактура интизори гирифтани қарзи мустақим InvoiceWaitingPaymentByBankTransfer=Ҳисобнома -фактура барои интиқоли кредит AmountToWithdraw=Маблағ барои бозпас гирифтан +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=Ҳеҷ фактураи кушода барои '%s' интизор нест. Барои дархост кардан ба ҷадвали '%s' дар корти фактура гузаред. -NoSupplierInvoiceToWithdraw=Ҳеҷ як фактураи таъминкунанда бо кушодани 'дархостҳои кредитии мустақим' интизор нест. Барои дархост кардан ба ҷадвали '%s' дар корти фактура гузаред. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Истифодабарандаи масъул WithdrawalsSetup=Танзими пардохти дебети мустақим CreditTransferSetup=Танзими интиқоли қарз @@ -41,6 +42,7 @@ CreditTransferStatistics=Омори интиқоли қарз Rejects=Рад мекунад LastWithdrawalReceipt=Охирин мадохилоти дебетии %s MakeWithdrawRequest=Дархости пардохти қарзи мустақимро пешниҳод кунед +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Дархости интиқоли кредит кунед WithdrawRequestsDone=%s дархостҳои пардохти дебетии мустақим сабт карда шуданд BankTransferRequestsDone=%s дархостҳои интиқоли кредит сабт карда шуданд @@ -99,8 +101,11 @@ CreditDate=Кредит дар WithdrawalFileNotCapable=Файли таҳрири хуруҷи кишвари шумо %s -ро эҷод карда натавонист (кишвари шумо дастгирӣ намешавад) ShowWithdraw=Тартиби дебети мустақимро нишон диҳед IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Аммо, агар ҳисобнома дорои ҳадди ақал як супориши пардохти дебетӣ бошад, ки то ҳол коркард нашудааст, он барои пардохт кардани идоракунии пешакии гирифтани маблағ пардохт карда намешавад. -DoStandingOrdersBeforePayments=Ин ҷадвал ба шумо имкон медиҳад, ки супориши пардохти дебетии мустақимро дархост кунед. Пас аз анҷом додан, ба менюи Bank-> Пардохт тавассути дебети мустақим ворид шавед ва фармоишро оид ба дебети мустақим таҳия ва идора кунед. Ҳангоме ки фармоиши дебети мустақим баста мешавад, пардохт дар суратҳисобҳо ба таври худкор сабт карда мешавад ва суратҳисобҳо баста мешаванд, агар бақияи пардохт беэътибор бошад. -DoCreditTransferBeforePayments=Ин ҷадвал ба шумо имкон медиҳад, ки фармоиши интиқоли қарзро дархост кунед. Пас аз анҷом додан, ба менюи Bank-> Пардохт тавассути интиқоли кредит ворид шавед ва фармоишро барои интиқол додан ва идора кунед. Ҳангоме ки фармоиши интиқоли кредит баста мешавад, пардохт дар суратҳисобҳо ба таври худкор сабт карда мешавад ва суратҳисобҳо баста мешаванд, агар бақияи пардохт бекор бошад. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Файли фармоиши дебетӣ CreditTransferFile=Файли интиқоли қарз SetToStatusSent=Ба ҳолати "Файли фиристодашуда" таъин кунед @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=Эҷоди дархости дебети муст SepaMandate=Мандати қарзи мустақими SEPA SepaMandateShort=Мандати SEPA PleaseReturnMandate=Лутфан ин шакли мандатро тавассути почтаи электронӣ ба %s ё тавассути почта ба -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Муайянкунандаи кредитор CreditorName=Номи кредитор SEPAFillForm=(B) Лутфан ҳамаи майдонҳои ишорашударо пур кунед * @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Санаи иҷро CreateForSepa=Файли дебетии мустақим эҷод кунед ICS=Муайянкунандаи кредитор - ICS +IDS=Debitor Identifier END_TO_END=Теги "EndToEndId" SEPA XML - Идентификатори беҳамтое, ки барои як транзаксия таъин карда мешавад USTRD=Теги "сохторнашуда" SEPA XML ADDDAYS=Ба санаи иҷро рӯзҳо илова кунед @@ -154,3 +160,4 @@ ErrorICSmissing=Набудани ICS дар суратҳисоби бонкӣ %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Маблағи умумии фармоиши дебети мустақим аз маблағи сатрҳо фарқ мекунад WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/tg_TJ/workflow.lang b/htdocs/langs/tg_TJ/workflow.lang index 7a34cb478bd..923592fa2bb 100644 --- a/htdocs/langs/tg_TJ/workflow.lang +++ b/htdocs/langs/tg_TJ/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Пас аз имзои пешниҳоди descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Пас аз имзои пешниҳоди тиҷоратӣ ба таври худкор ҳисобнома -фактураи муштарӣ эҷод кунед (фактураи нав ҳамон миқдоре, ки пешниҳод дорад) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Пас аз тасдиқи шартнома ба таври худкор ҳисобнома -фактураи муштарӣ эҷод кунед descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Ба таври худкор ҳисобнома -фактураи муштариро пас аз бастани фармоиши фурӯш эҷод кунед (фактураи нав ҳамон миқдорро бо фармоиш хоҳад дошт) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Пешниҳоди манбаи алоқамандро ҳамчун ҳисобшуда тасниф кунед, вақте ки фармоиши фурӯш ба суратҳисоб таъин карда мешавад (ва агар маблағи фармоиш бо маблағи умумии пешниҳоди пайванди имзошуда якхела бошад) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Пешниҳоди манбаи пайвандшударо ҳамчун тасдиқи ҳисобнома -фактураи муштарӣ тасниф кунед (ва агар маблағи фактура бо маблағи умумии пешниҳоди пайванди имзошуда якхела бошад) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Фармоиши фурӯши descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Ҳангоми пардохти ҳисобнома -фактураи муштарӣ фармоиши фурӯши сарчашмаҳои пайвандшударо ҳамчун ҳисобшуда гурӯҳбандӣ кунед (ва агар маблағи фактура бо маблағи умумии фармоиши алоқаманд якхела бошад) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Фармоиши фурӯши сарчашмаҳои пайвандшударо ҳамчун тасдиқи бор тасниф кунед (ва агар миқдори фиристодаи ҳамаи интиқолҳо бо фармони навсозӣ якхела бошад) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Фармоиши фурӯши сарчашмаҳои пайвандшударо ҳамчун бастаи интиқол тасниф кунед (ва агар миқдори фиристодаи ҳамаи интиқолҳо бо фармони навсозӣ якхела бошад) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Пешниҳоди фурӯшандаи манбаи алоқамандро ҳангоми тасдиқи ҳисобнома -фактураи фурӯшанда тасниф кунед (ва агар маблағи фактура бо маблағи умумии пешниҳоди алоқаманд бошад) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Фармоиши хариди сарчашмаи пайвандшударо ҳамчун тасдиқи ҳисобнома -фактураи фурӯшанда тасниф кунед (ва агар маблағи фактура бо маблағи умумии фармоиши алоқаманд бошад) -descWORKFLOW_BILL_ON_RECEPTION=Ҳангоми тасдиқи фармоиши иртиботдиҳанда қабулҳоро ба "ҳисобшуда" тасниф кунед +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Ҳангоми пӯшидани чипта ҳама дахолатҳои марбут ба чиптаро пӯшед AutomaticCreation=Эҷоди автоматӣ AutomaticClassification=Таснифоти автоматӣ # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Ҳангоми тасдиқи фактураи муштарӣ интиқоли сарчашмаи пайвандшударо ҳамчун пӯшида тасниф кунед +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index dae9c62f384..c50c86b443d 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=ขายวารสาร -ACCOUNTING_PURCHASE_JOURNAL=วารสารการสั่งซื้อ -ACCOUNTING_MISCELLANEOUS_JOURNAL=วารสารเบ็ดเตล็ด +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=รายงานค่าใช้จ่ายวารสาร -ACCOUNTING_SOCIAL_JOURNAL=วารสารสังคม +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=วารสารสังคม ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=ประเภทของเอกสาร Docdate=วันที่ @@ -210,7 +217,7 @@ Codejournal=วารสาร JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=โดยปี NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=อัตรากำไรขั้นต้นรวมยอดขาย -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=ข้อผิดพลาดที่คุณไม่สามารถลบบัญชีบัญชีนี้เพราะมันถูกนำมาใช้ -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=ขาย AccountingJournalType3=การสั่งซื้อสินค้า AccountingJournalType4=ธนาคาร -AccountingJournalType5=Expenses report +AccountingJournalType5=รายงานค่าใช้จ่าย AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=รูปแบบของการส่งออก @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index 70e693f4b0d..dec2043069b 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -109,7 +109,7 @@ NextValueForReplacements=ค่าถัดไป (เปลี่ยน) MustBeLowerThanPHPLimit=หมายเหตุ: ปัจจุบันการกำหนดค่า PHP ของคุณจำกัดขนาดไฟล์สูงสุดสำหรับการอัปโหลด %s%sโดยไม่คำนึงถึงค่าของพารามิเตอร์นี้ NoMaxSizeByPHPLimit=หมายเหตุ: ไม่ จำกัด มีการตั้งค่าในการกำหนดค่าของ PHP MaxSizeForUploadedFiles=ขนาดสูงสุดของไฟล์ที่อัปโหลด (0 ไม่อนุญาตให้อัปโหลดใด ๆ ) -UseCaptchaCode=ใช้รหัสแบบกราฟิก (CAPTCHA) บนหน้าเข้าสู่ระบบ +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=เส้นทางแบบเต็มคำสั่งป้องกันไวรัส AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= พารามิเตอร์เพิ่มเติมเกี่ยวกับบรรทัดคำสั่ง @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=init บาร์โค้ดมวลหรือตั้งค่าสำหรับผลิตภัณฑ์หรือบริการ CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=ค่า init สำหรับถัด% ระเบียนที่ว่างเปล่า +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=ลบทุกค่าบาร์โค้ดปัจจุบัน ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=ทั้งหมดค่าบาร์โค้ดได้ถูกลบออก @@ -504,7 +504,7 @@ WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to se WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -714,6 +714,7 @@ Permission27=ลบข้อเสนอในเชิงพาณิชย์ Permission28=ข้อเสนอในเชิงพาณิชย์เพื่อการส่งออก Permission31=ดูผลิตภัณฑ์ Permission32=สร้าง / แก้ไขผลิตภัณฑ์ +Permission33=Read prices products Permission34=ลบผลิตภัณฑ์ Permission36=ดู / จัดการผลิตภัณฑ์ที่ซ่อน Permission38=สินค้าส่งออก @@ -739,6 +740,7 @@ Permission79=สร้าง / แก้ไขการสมัครสมา Permission81=อ่านคำสั่งซื้อของลูกค้า Permission82=สร้าง / แก้ไขคำสั่งซื้อของลูกค้า Permission84=ตรวจสอบการสั่งซื้อของลูกค้า +Permission85=Generate the documents sales orders Permission86=ส่งคำสั่งซื้อของลูกค้า Permission87=ลูกค้าปิดการสั่งซื้อ Permission88=ยกเลิกคำสั่งซื้อของลูกค้า @@ -874,6 +876,7 @@ Permission525=เครื่องคิดเลขสินเชื่อเ Permission527=เงินให้กู้ยืมเพื่อการส่งออก Permission531=ดูบริการ Permission532=สร้าง / แก้ไขบริการ +Permission533=Read prices services Permission534=ลบบริการ Permission536=ดู / จัดการบริการซ่อน Permission538=บริการส่งออก @@ -1129,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=ในตอนท้ายของเดือน -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=สาขา AlwaysActive=ใช้งานอยู่เสมอ Upgrade=อัพเกรด @@ -1235,6 +1238,7 @@ BrowserName=ชื่อเบราว์เซอร์ BrowserOS=ระบบปฏิบัติการเบราว์เซอร์ ListOfSecurityEvents=รายการ Dolibarr เหตุการณ์การรักษาความปลอดภัย SecurityEventsPurged=เหตุการณ์การรักษาความปลอดภัยกำจัด +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=ข้อมูลระบบข้อมูลทางด้านเทคนิคอื่น ๆ ที่คุณได้รับในโหมดอ่านอย่างเดียวและมองเห็นสำหรับผู้ดูแลระบบเท่านั้น @@ -1936,7 +1940,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=สีพื้นหลัง TopMenuBackgroundColor=สีพื้นหลังสำหรับเมนูยอดนิยม -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=สีพื้นหลังสำหรับเมนูด้านซ้าย BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1977,6 +1981,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=สัญญา MailToSendReception=Receptions +MailToExpenseReport=รายงานค่าใช้จ่าย MailToThirdparty=บุคคลที่สาม MailToMember=สมาชิก MailToUser=ผู้ใช้ @@ -2030,6 +2035,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2059,9 +2065,16 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector @@ -2073,14 +2086,14 @@ DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2101,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2118,7 @@ CreateCandidature=Create job application FormatZip=รหัสไปรษณีย์ MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=เวลาเปิดทำการ OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module @@ -2167,6 +2180,9 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2208,6 +2224,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2248,13 +2265,21 @@ TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2287,23 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form diff --git a/htdocs/langs/th_TH/companies.lang b/htdocs/langs/th_TH/companies.lang index 926976c9a55..ae77fd5da39 100644 --- a/htdocs/langs/th_TH/companies.lang +++ b/htdocs/langs/th_TH/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature of Third party NatureOfContact=Nature of Contact Address=ที่อยู่ State=รัฐ / จังหวัด +StateId=State ID StateCode=State/Province code StateShort=State Region=ภูมิภาค Region-State=Region - State Country=ประเทศ CountryCode=รหัสประเทศ -CountryId=รหัสประเทศ +CountryId=Country ID Phone=โทรศัพท์ PhoneShort=โทรศัพท์ Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=คนอื่น ๆ ProfId6ShortCM=- ProfId1CO=ศหมายเลข 1 (RUT) diff --git a/htdocs/langs/th_TH/compta.lang b/htdocs/langs/th_TH/compta.lang index d40ca6a332b..05118f25459 100644 --- a/htdocs/langs/th_TH/compta.lang +++ b/htdocs/langs/th_TH/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (before) Balance=สมดุล Debit=หักบัญชี Credit=เครดิต +AccountingDebit=หักบัญชี +AccountingCredit=เครดิต Piece=บัญชีหมอ AmountHTVATRealReceived=สุทธิเก็บรวบรวม AmountHTVATRealPaid=จ่ายสุทธิ @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=ลบชำระภาษีทางสังคมหรือทางการคลัง DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=ภาษีสังคมและการคลังและการชำระเงิน CalcModeVATDebt=โหมด% sVAT ความมุ่งมั่นบัญชี% s CalcModeVATEngagement=โหมด sVAT% รายได้ค่าใช้จ่าย-% s @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=โหมดการคำนวณ AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/th_TH/contracts.lang b/htdocs/langs/th_TH/contracts.lang index 749291c8bf4..eeb2bc7ab6e 100644 --- a/htdocs/langs/th_TH/contracts.lang +++ b/htdocs/langs/th_TH/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=สัญญา / สมัครสมาชิก ContractsAndLine=สัญญาและสายของสัญญา Contract=สัญญา ContractLine=Contract line +ContractLines=Contract lines Closing=Closing NoContracts=ไม่มีสัญญา MenuServices=บริการ @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=ย้ายบริการทำสัญญาอีก ConfirmMoveToAnotherContract=ฉันเลือกสัญญาเป้าหมายใหม่และยืนยันที่ฉันต้องการที่จะย้ายบริการนี​​้ในสัญญานี้ ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=ต่ออายุสัญญาสาย (หมายเลข% s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=วันหมดอายุ NoExpiredServices=ไม่มีบริการที่ใช้งานหมดอายุ ListOfServicesToExpireWithDuration=รายชื่อของบริการที่จะหมดอายุในวันที่% s @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=ลงนามในสัญญา HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/th_TH/datapolicy.lang b/htdocs/langs/th_TH/datapolicy.lang new file mode 100644 index 00000000000..e1b7a527603 --- /dev/null +++ b/htdocs/langs/th_TH/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = ลูกค้า +DATAPOLICY_TIERS_PROSPECT = โอกาส +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = ผู้ผลิต +DATAPOLICY_CONTACT_CLIENT = ลูกค้า +DATAPOLICY_CONTACT_PROSPECT = โอกาส +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = ผู้ผลิต +DATAPOLICY_ADHERENT = สมาชิก +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/th_TH/dict.lang b/htdocs/langs/th_TH/dict.lang index d87ca70b407..fad471baac0 100644 --- a/htdocs/langs/th_TH/dict.lang +++ b/htdocs/langs/th_TH/dict.lang @@ -21,7 +21,7 @@ CountryNL=เนเธอร์แลนด์ CountryHU=ฮังการี CountryRU=รัสเซีย CountrySE=สวีเดน -CountryCI=Ivoiry ชายฝั่ง +CountryCI=Ivory Coast CountrySN=ประเทศเซเนกัล CountryAR=อาร์เจนตินา CountryCM=แคเมอรูน @@ -250,7 +250,9 @@ CountryMF=เซนต์มาร์ติน ##### Civilities ##### CivilityMME=นาง +CivilityMMEShort=นาง CivilityMR=นาย +CivilityMRShort=นาย CivilityMLE=นางสาว CivilityMTRE=เจ้านาย CivilityDR=คุณหมอ diff --git a/htdocs/langs/th_TH/ecm.lang b/htdocs/langs/th_TH/ecm.lang index 01778da9d3e..7d4a246fd1e 100644 --- a/htdocs/langs/th_TH/ecm.lang +++ b/htdocs/langs/th_TH/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=สมุดคู่มือ ECMSectionAuto=ไดเรกทอรีอัตโนมัติ ECMSectionsManual=ต้นไม้คู่มือการใช้งาน ECMSectionsAuto=ต้นไม้อัตโนมัติ +ECMSectionsMedias=Medias tree ECMSections=ไดเรกทอรี ECMRoot=ECM Root ECMNewSection=ไดเรกทอรีใหม่ @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=จำนวนของไฟล์ในไดเรก ECMCreationUser=ผู้สร้าง ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* ไดเรกทอรีอัตโนมัติจะเต็มไปโดยอัตโนมัติเมื่อมีการเพิ่มเอกสารจากบัตรขององค์ประกอบ
    * ไดเรกทอรีคู่มือการใช้งานสามารถใช้ในการบันทึกเอกสารไม่เชื่อมโยงกับองค์ประกอบโดยเฉพาะอย่างยิ่ง +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=สารบบ% s ได้ถูกลบออก ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=ค้นหาตามคำหลัก diff --git a/htdocs/langs/th_TH/errors.lang b/htdocs/langs/th_TH/errors.lang index 43200416193..efeb030607d 100644 --- a/htdocs/langs/th_TH/errors.lang +++ b/htdocs/langs/th_TH/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/th_TH/externalsite.lang b/htdocs/langs/th_TH/externalsite.lang deleted file mode 100644 index f650f17c22f..00000000000 --- a/htdocs/langs/th_TH/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=การติดตั้งการเชื่อมโยงไปยังเว็บไซต์ภายนอก -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=โมดูล ExternalSite ไม่ได้กำหนดค่าอย่างถูกต้อง -ExampleMyMenuEntry=รายการเมนู diff --git a/htdocs/langs/th_TH/ftp.lang b/htdocs/langs/th_TH/ftp.lang deleted file mode 100644 index e7a78ac1a66..00000000000 --- a/htdocs/langs/th_TH/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=การติดตั้งโมดูล FTP ไคลเอนต์ -NewFTPClient=การตั้งค่าการเชื่อมต่อใหม่ FTP -FTPArea=พื้นที่ FTP -FTPAreaDesc=หน้าจอนี้จะแสดงให้คุณเห็นเนื้อหาในมุมมองของ FTP เซิร์ฟเวอร์ -SetupOfFTPClientModuleNotComplete=การติดตั้งโมดูลลูกค้า FTP ดูเหมือนว่าจะไม่สมบูรณ์ -FTPFeatureNotSupportedByYourPHP=PHP ของคุณไม่สนับสนุนฟังก์ชั่น FTP -FailedToConnectToFTPServer=ล้มเหลวในการเชื่อมต่อกับเซิร์ฟเวอร์ FTP (เซิร์ฟเวอร์% s พอร์ต% s) -FailedToConnectToFTPServerWithCredentials=ล้มเหลวในการเข้าสู่เซิร์ฟเวอร์ FTP ที่มีกำหนดเข้าสู่ระบบ / รหัสผ่าน -FTPFailedToRemoveFile=ไม่สามารถลบไฟล์% s -FTPFailedToRemoveDir=ไม่สามารถลบไดเรกทอรี% s (สิทธิ์ตรวจสอบไดเรกทอรีที่ว่างเปล่า) -FTPPassiveMode=โหมด Passive -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/th_TH/holiday.lang b/htdocs/langs/th_TH/holiday.lang index 17f16cda631..b07d0d8a258 100644 --- a/htdocs/langs/th_TH/holiday.lang +++ b/htdocs/langs/th_TH/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=ระบบบริหารจัดการทรัพยากรบุคคล -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=คำสั่งรายเดือน MenuAddCP=คำขอลาใหม่ +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=ขอลา DateDebCP=วันที่เริ่มต้น @@ -56,6 +58,7 @@ ConfirmDeleteCP=ยืนยันการลบคำขอออกจาก ErrorCantDeleteCP=ข้อผิดพลาดของคุณไม่ได้มีสิทธิ์ในการลบคำขอลานี้ CantCreateCP=คุณไม่ได้มีสิทธิที่จะขอลา InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=คุณต้องเลือกวันที่เริ่มต้น NoDateFin=คุณต้องเลือกวันที่สิ้นสุด ErrorDureeCP=คำขอลาของคุณไม่ได้มีวันทำงาน @@ -79,6 +82,8 @@ MotifCP=เหตุผล UserCP=ผู้ใช้งาน ErrorAddEventToUserCP=เกิดข้อผิดพลาดในขณะที่เพิ่มการลาพิเศษ AddEventToUserOkCP=นอกเหนือจากการลาพิเศษเสร็จเรียบร้อยแล้ว +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=ดูบันทึกการเปลี่ยนแปลง LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=คงเหลือก่อนหน้า NewSoldeCP=นิวบาลานซ์ alreadyCPexist=คำขอลาได้ทำไปแล้วในเวลานี้ +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=กลุ่ม +users=ผู้ใช้ +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/th_TH/hrm.lang b/htdocs/langs/th_TH/hrm.lang index 7a9ae778662..2450224f349 100644 --- a/htdocs/langs/th_TH/hrm.lang +++ b/htdocs/langs/th_TH/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Employees @@ -20,13 +20,14 @@ Employee=ลูกจ้าง NewEmployee=New employee ListOfEmployees=List of employees HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=งาน -Jobs=Jobs +JobPosition=Job profile +JobsPosition=Job profiles NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=ตำแหน่ง -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,23 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels +NoDescription=No description diff --git a/htdocs/langs/th_TH/install.lang b/htdocs/langs/th_TH/install.lang index 87e87a11afc..041c1efd3b1 100644 --- a/htdocs/langs/th_TH/install.lang +++ b/htdocs/langs/th_TH/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=ไฟล์การกำหนดค่า %sไ ConfFileIsWritable=ไฟล์การกำหนดค่า %sสามารถเขียนได้ ConfFileMustBeAFileNotADir=ไฟล์การกำหนดค่า %sต้องเป็นไฟล์ ไม่ใช่ไดเร็กทอรี ConfFileReload=กำลังโหลดพารามิเตอร์อีกครั้งจากไฟล์การกำหนดค่า -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP นี้สนับสนุนตัวแปร POST และ GET PHPSupportPOSTGETKo=เป็นไปได้ว่าการตั้งค่า PHP ของคุณไม่รองรับตัวแปร POST และ/หรือ GET ตรวจสอบพารามิเตอร์ variables_order ใน php.ini PHPSupportSessions=PHP นี้รองรับเซสชัน @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=คุณอาจจะพิมพ์ค่าท ErrorFailedToCreateDatabase=ไม่สามารถสร้างฐานข้อมูล '%s' ErrorFailedToConnectToDatabase=ไม่สามารถเชื่อมต่อกับฐานข้อมูล '%s' ErrorDatabaseVersionTooLow=เวอร์ชั่นฐานข้อมูล (%s) เก่าเกินไป ต้องใช้เวอร์ชั่น %s หรือสูงกว่า -ErrorPHPVersionTooLow=PHP รุ่นเก่าเกินไป % s รุ่นจะต้อง +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=การเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จ แต่ไม่พบฐานข้อมูล '%s' ErrorDatabaseAlreadyExists=ฐานข้อมูล '%s' อยู่แล้ว +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=หากไม่มีฐานข้อมูล ให้ย้อนกลับและเลือกตัวเลือก "สร้างฐานข้อมูล" IfDatabaseExistsGoBackAndCheckCreate=ถ้าฐานข้อมูลที่มีอยู่แล้วให้กลับไปและยกเลิก "สร้างฐานข้อมูลตัวเลือก" WarningBrowserTooOld=เวอร์ชันของเบราว์เซอร์เก่าเกินไป ขอแนะนำให้อัปเกรดเบราว์เซอร์ของคุณเป็น Firefox, Chrome หรือ Opera เวอร์ชันล่าสุด diff --git a/htdocs/langs/th_TH/mailmanspip.lang b/htdocs/langs/th_TH/mailmanspip.lang index e2abddd4463..31daf4fe313 100644 --- a/htdocs/langs/th_TH/mailmanspip.lang +++ b/htdocs/langs/th_TH/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=การปรับปรุงบุรุษไปรษณีย์จะดำเนินการ SynchroSpipEnabled=การปรับปรุงหลักสูตรนานาชาติจะดำเนินการ -DescADHERENT_MAILMAN_ADMINPW=รหัสผ่านผู้ดูแลบุรุษไปรษณีย์ +DescADHERENT_MAILMAN_ADMIN_PASSWORD=รหัสผ่านผู้ดูแลบุรุษไปรษณีย์ DescADHERENT_MAILMAN_URL=URL สำหรับการสมัครสมาชิกบุรุษไปรษณีย์ DescADHERENT_MAILMAN_UNSUB_URL=URL สำหรับ unsubscriptions บุรุษไปรษณีย์ DescADHERENT_MAILMAN_LISTS=รายการ (s) สำหรับจารึกอัตโนมัติของสมาชิกใหม่ (คั่นด้วยเครื่องหมายจุลภาค) diff --git a/htdocs/langs/th_TH/mails.lang b/htdocs/langs/th_TH/mails.lang index bcfabf63025..4fdde098262 100644 --- a/htdocs/langs/th_TH/mails.lang +++ b/htdocs/langs/th_TH/mails.lang @@ -7,10 +7,10 @@ MailCard=บัตรการส่งอีเมล MailRecipients=ผู้รับ MailRecipient=ผู้รับ MailTitle=ลักษณะ -MailFrom=ผู้ส่ง +MailFrom=จาก MailErrorsTo=ข้อผิดพลาดที่จะ MailReply=ตอบกลับ -MailTo=รับสัญญาณ (s) +MailTo=ไปยัง MailToUsers=To user(s) MailCC=คัดลอกไป MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang index ac7fce2ff2a..662a2ddbcbc 100644 --- a/htdocs/langs/th_TH/main.lang +++ b/htdocs/langs/th_TH/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=แปลไม่มี Translation=การแปล +Translations=Translations CurrentTimeZone=เขต PHP (เซิร์ฟเวอร์) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=ถูกต้อง Approve=อนุมัติ Disapprove=ไม่พอใจ ReOpen=Re: เปิด +OpenVerb=เปิด Upload=Upload ToLink=ลิงค์ Select=เลือก @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=ไม่มีกลุ่มผู้ใช้ที่กำหนดไว้ Password=รหัสผ่าน -PasswordRetype=พิมพ์รหัสผ่านของคุณ +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=โปรดทราบว่าจำนวนมากของคุณสมบัติ / โมดูลถูกปิดใช้งานในการสาธิตนี้ Name=ชื่อ NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=ลักษณะ DescriptionOfLine=คำอธิบายของสาย DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=เหตุการณ์ @@ -344,7 +353,7 @@ KiloBytes=กิโลไบต์ MegaBytes=เมกะไบต์ GigaBytes=กิกะไบต์ TeraBytes=เทราไบต์ -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=ข Kb=กิโลไบต์ @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=เหตุการณ์ที่เกิดขึ้นเกี่ยวกับสมาชิกในนี้ ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=% s ปลาย ToDo=ที่จะทำ Completed=Completed @@ -517,6 +527,7 @@ or=หรือ Other=อื่น ๆ Others=คนอื่น ๆ OtherInformations=Other information +Workflow=ขั้นตอนการทำงาน Quantity=ปริมาณ Qty=จำนวน ChangedBy=เปลี่ยนแปลงได้โดย @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=ไฟล์ที่แนบมาและเอกสาร JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=ปิดใช้งานคุณลักษณะ MoveBox=Move widget Offered=ที่นำเสนอ NotEnoughPermissions=คุณไม่ได้รับอนุญาตสำหรับการดำเนินการนี​​้ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=ชื่อเซสชั่น Method=วิธี Receive=ได้รับ @@ -798,6 +811,7 @@ URLPhoto=URL ของภาพ / โลโก้ SetLinkToAnotherThirdParty=เชื่อมโยงไปยังบุคคลที่สามอีก LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=เชื่อมโยงการสั่งซื้อ LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=ปีงบประมาณ ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=สัญญา SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=รายงานค่าใช้จ่าย SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=ไว้ Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=ประเมิน +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=ผู้ใช้ภายใน +ExternalUser=ผู้ใช้ภายนอก diff --git a/htdocs/langs/th_TH/members.lang b/htdocs/langs/th_TH/members.lang index db2de131b02..d14212e46cd 100644 --- a/htdocs/langs/th_TH/members.lang +++ b/htdocs/langs/th_TH/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=สมาชิกอีกคนห ErrorUserPermissionAllowsToLinksToItselfOnly=ด้วยเหตุผลด้านความปลอดภัยคุณต้องได้รับสิทธิ์ในการแก้ไขผู้ใช้ทุกคนที่จะสามารถที่จะเชื่อมโยงสมาชิกให้กับผู้ใช้ที่ไม่ได้เป็นของคุณ SetLinkToUser=เชื่อมโยงไปยังผู้ใช้ Dolibarr SetLinkToThirdParty=เชื่อมโยงไปยัง Dolibarr ของบุคคลที่สาม +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=รายชื่อสมาชิก MembersListToValid=รายชื่อสมาชิกร่าง (ที่จะถูกตรวจสอบ) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=รหัสสมาชิก +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=สมาชิกใหม่ MemberType=ประเภทสมาชิก MemberTypeId=หมายเลขสมาชิกประเภท @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Member type can not be deleted NewSubscription=ผลงานใหม่ NewSubscriptionDesc=รูปแบบนี้จะช่วยให้คุณสามารถบันทึกการสมัครสมาชิกของคุณเป็นสมาชิกใหม่ของมูลนิธิ หากคุณต้องการที่จะต่ออายุการเป็นสมาชิกของคุณ (ถ้าเป็นสมาชิกอยู่แล้ว) กรุณาติดต่อคณะกรรมการมูลนิธิแทนโดยการส่งอีเมล์% s Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=ระยะเวลา +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=สาย SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=เนื้อหาของบัตรสมาชิกขอ # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=มูลค่าการซื้อขาย (สำหรับ บริษัท ) หรืองบประมาณ (มูลนิธิ) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=กระโดดขึ้นไปบนหน้าการชำระเงินออนไลน์แบบบูรณาการ +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang index 9534d3da785..a2f379c446e 100644 --- a/htdocs/langs/th_TH/other.lang +++ b/htdocs/langs/th_TH/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=ข้อเสนอของลูกค้าผ่านการตรวจสอบ Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=ข้อเสนอเชิงพาณิชย์ส่งทางไปรษณีย์ Notify_WITHDRAW_TRANSMIT=ถอนการส่ง Notify_WITHDRAW_CREDIT=ถอนเครดิต @@ -181,6 +183,7 @@ SizeUnitfoot=เท้า SizeUnitpoint=จุด BugTracker=ติดตามข้อผิดพลาด SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
    Change will become effective once you click on the confirmation link in the email.
    Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=กลับไปหน้าเข้าสู่ระบบ AuthenticationDoesNotAllowSendNewPassword=โหมดการตรวจสอบเป็น% s
    ในโหมดนี้ Dolibarr ไม่สามารถรู้หรือเปลี่ยนรหัสผ่านของคุณ
    ติดต่อผู้ดูแลระบบของคุณถ้าคุณต้องการที่จะเปลี่ยนรหัสผ่านของคุณ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = ใกล้ Autofill = Autofill + +# externalsite +ExternalSiteSetup=การติดตั้งการเชื่อมโยงไปยังเว็บไซต์ภายนอก +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=โมดูล ExternalSite ไม่ได้กำหนดค่าอย่างถูกต้อง +ExampleMyMenuEntry=รายการเมนู + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=ไม่สามารถลบไฟล์% s +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=โหมด Passive +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/th_TH/propal.lang b/htdocs/langs/th_TH/propal.lang index f76b1196379..5d7a4a51d0a 100644 --- a/htdocs/langs/th_TH/propal.lang +++ b/htdocs/langs/th_TH/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=ไม่มีร่างข้อเสนอ CopyPropalFrom=สร้างข้อเสนอในเชิงพาณิชย์โดยการคัดลอกข้อเสนอที่มีอยู่ CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=ระยะเวลาเริ่มต้นความถูกต้องข้อเสนอในเชิงพาณิชย์ (ในวัน) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=ความล่าช้าที่ว่าง SetAvailability=ความล่าช้าในการตั้งค่าความพร้อม AfterOrder=หลังจากที่สั่งซื้อ OtherProposals=ข้อเสนออื่น ๆ + ##### Availability ##### AvailabilityTypeAV_NOW=ทันทีทันใด AvailabilityTypeAV_1W=1 สัปดาห์ AvailabilityTypeAV_2W=2 สัปดาห์ที่ผ่านมา AvailabilityTypeAV_3W=3 สัปดาห์ที่ผ่านมา AvailabilityTypeAV_1M=1 เดือน -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=แทนข้อเสนอดังต่อไปนี้ขึ้น TypeContact_propal_external_BILLING=ติดต่อใบแจ้งหนี้ของลูกค้า TypeContact_propal_external_CUSTOMER=การติดต่อกับลูกค้าข้อเสนอดังต่อไปนี้ขึ้น TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=แม่แบบเริ่มต้นเมื่อปิดข้อเสนอทางธุรกิจ (ยังไม่เรียกเก็บ) DefaultModelPropalCreate=เริ่มต้นการสร้างแบบจำลอง DefaultModelPropalToBill=แม่แบบเริ่มต้นเมื่อปิดข้อเสนอทางธุรกิจ (ที่จะออกใบแจ้งหนี้) -DefaultModelPropalClosed=แม่แบบเริ่มต้นเมื่อปิดข้อเสนอทางธุรกิจ (ยังไม่เรียกเก็บ) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=ปฏิเสธ +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=ยอมรับเขียนประทับ บริษัท วันและลายเซ็น ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/th_TH/recruitment.lang b/htdocs/langs/th_TH/recruitment.lang index ce6312bb2e5..da83a9fef3d 100644 --- a/htdocs/langs/th_TH/recruitment.lang +++ b/htdocs/langs/th_TH/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=เงินเดือน +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/th_TH/stocks.lang b/htdocs/langs/th_TH/stocks.lang index a1ff3eff301..1a7262d62ce 100644 --- a/htdocs/langs/th_TH/stocks.lang +++ b/htdocs/langs/th_TH/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Inventory date Inventories=Inventories NewInventory=New inventory @@ -254,7 +254,7 @@ ReOpen=เปิดใหม่ ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=เริ่มต้น InventoryStartedShort=เริ่มต้น ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/th_TH/ticket.lang b/htdocs/langs/th_TH/ticket.lang index fd3ed422d04..928f7c8b7f3 100644 --- a/htdocs/langs/th_TH/ticket.lang +++ b/htdocs/langs/th_TH/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=การแทรกแซงสร้าง -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=ลายเซ็น -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

    Sincerely,

    --

    -TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=ผู้ใช้ใหม่ NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/th_TH/users.lang b/htdocs/langs/th_TH/users.lang index a58390f19d8..1655cd05555 100644 --- a/htdocs/langs/th_TH/users.lang +++ b/htdocs/langs/th_TH/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=ลบออกจากกลุ่ม PasswordChangedAndSentTo=เปลี่ยนรหัสผ่านและส่งไปยัง% s PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=ขอเปลี่ยนรหัสผ่านสำหรับ% s ส่งไปยัง% s -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=ผู้ใช้และกลุ่ม @@ -68,7 +68,6 @@ CreateDolibarrLogin=สร้างผู้ใช้ CreateDolibarrThirdParty=สร้างของบุคคลที่สาม LoginAccountDisableInDolibarr=บัญชีปิดใช้งานใน Dolibarr UsePersonalValue=ใช้ค่าส่วนบุคคล -InternalUser=ผู้ใช้งานภายใน ExportDataset_user_1=Users and their properties DomainUser=โดเมนของผู้ใช้% s Reactivate=ฟื้นฟู @@ -114,7 +113,7 @@ UserLogoff=User logout UserLogged=User logged DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index 0c452a1d554..94fee86beb9 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Avrupa Ekonomi Topluluğu'nda Olmayan Ülkeler CountriesInEECExceptMe=%s hariç Avrupa Ekonomi Topluluğu ülkeleri CountriesExceptMe=%s hariç tüm ülkeler AccountantFiles=Kaynak belgeleri dışa aktar -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Tedarikçiler için ana muhasebe hesabı kurul MainAccountForUsersNotDefined=Kullanıcılar için ana muhasebe hesabı kurulumda tanımlı değil MainAccountForVatPaymentNotDefined=KDV ödemesi için ana muhasebe hesabı kurulumda tanımlı değil MainAccountForSubscriptionPaymentNotDefined=Kurulumda tanımlanmayan abonelik ödemesi için ana muhasebe hesabı +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Muhasebe alanı AccountancyAreaDescIntro=Muhasebe modülünün kullanımı birkaç adımda tamamlanır: @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Satış günlüğü -ACCOUNTING_PURCHASE_JOURNAL=Alış günlüğü -ACCOUNTING_MISCELLANEOUS_JOURNAL=Çeşitli günlük +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Gider raporu günlüğü -ACCOUNTING_SOCIAL_JOURNAL=Sosyal günlük +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Sosyal günlük ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Kapanış günlüğü -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Muhasebe hesabının bekletilmesi -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Satılan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Satınalınan hizmetler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Satılan hizmetler için varsayılan muhasebe kodu (hizmet sayfasında tanımlanmamışsa) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Belge türü Docdate=Tarih @@ -210,7 +217,7 @@ Codejournal=Günlük JournalLabel=Journal label NumPiece=Parça sayısı TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Vergi öncesi toplam gelir TotalMarge=Toplam satışlar kar oranı -DescVentilCustomer=Burada bir ürün hesabına bağlı (ya da bağlı olmayan) müşteri faturaları satırları listesine bakın. -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Burada müşteri faturaları satırlarına ve onların ürün muhasebe hesabı listesine bakın -DescVentilTodoCustomer=Bir ürün muhasebe hesabı ile bağlı olmayan müşteri faturaları satırlarını bağlayın -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,24 +285,24 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Yıllık kapanış -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Otomatik Olarak Bağla AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Hata, kullanıldığı için bu muhasebe hesabını silemezsiniz -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Bağlama kartı GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Bağlamayı değiştir Accounted=Accounted in ledger NotYetAccounted=Henüz muhasebeye aktarılmamış @@ -318,9 +325,10 @@ AccountingJournalType1=Çeşitli işlemler AccountingJournalType2=Satışlar AccountingJournalType3=Alışlar AccountingJournalType4=Banka -AccountingJournalType5=Gider raporu +AccountingJournalType5=Gider raporları AccountingJournalType8=Envanter AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Girişlerin sayısı @@ -328,10 +336,12 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal @@ -397,7 +407,11 @@ Calculated=Hesaplanmış Formula=Formül ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -406,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Toplu Silme onayı ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -426,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Muhasebe girişleri @@ -452,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index df05cedcc71..d8eedca3e74 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=İstemci karşılaştırma WarningModuleNotActive=%s modülü etkin olmalıdır WarningOnlyPermissionOfActivatedModules=Burada sadece etkinleştirilmiş modüllerle ile ilgili izinler gösterilir. Diğer modülleri Giriş->Ayarlar->Modüller/Uygulamalar sayfasından etkinleştirebilirsiniz. DolibarrSetup=Dolibarr yükleme veya yükseltme -InternalUser=İç kullanıcı -ExternalUser=Dış kullanıcı InternalUsers=İç kullanıcılar ExternalUsers=Dış kullanıcılar UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Sonraki değer (değiştirmeler) MustBeLowerThanPHPLimit=Not: PHP yapılandırmanız şu anda bu parametrenin değerine bakılmaksızın %s %s'a yükleme için maksimum dosya boyutunu sınırlıyor NoMaxSizeByPHPLimit=Not: PHP yapılandırmanızda hiç sınır ayarlanmamış MaxSizeForUploadedFiles=Yüklenen dosyalar için maksimum boyut (herhangi bir yüklemeye izin vermemek için 0 olarak ayarlayın) -UseCaptchaCode=Oturum açma sayfasında grafiksel kod (CAPTCHA) kullan +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Antivirüs komutu tam yolu AntiVirusCommandExample=ClamAv Daemon örneği (clamav-daemon gerektirir):/usr/bin/clamdscan
    ClamWin örneği (çok çok yavaş): c:\\Progra ~ 1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Komut satırında daha çok parametre @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP Sunucusu (php.ini içinde varsayılan değer: %s%s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Geri dönen hatalı mailler için kullanılacak e-posta adresi (gönderilen maillerdeki 'Hatalar-buraya' alanı) MAIN_MAIL_AUTOCOPY_TO= Gönderilen tüm maillerin kopyasının (Bcc) gönderileceği e-posta adresi MAIN_DISABLE_ALL_MAILS=Tüm e-posta gönderimini devre dışı bırak (test veya demo kullanımı için) @@ -439,8 +438,10 @@ Unique=Benzersiz Boolean=Boole (bir onay kutusu) ExtrafieldPhone = Telefon ExtrafieldPrice = Fiyat +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = E-posta ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Liste seç ExtrafieldSelectList = Tablodan seç ExtrafieldSeparator=Ayırıcı (bir alan değil) @@ -477,7 +478,7 @@ InstalledInto=%s dizinine yüklendi BarcodeInitForThirdparties=Cariler için toplu barkod girişi BarcodeInitForProductsOrServices=Ürünler ve hizmetler için toplu barkod başlatma ve sıfırlama CurrentlyNWithoutBarCode=Şu anda, bazı %s kayıtlarınızda %s %s tanımlı barkod bulunmamaktadır. -InitEmptyBarCode=Sonraki %s boş kayıt için ilk değer +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Geçerli bütün barkod değerlerini sil ConfirmEraseAllCurrentBarCode=Geçerli bütün barkod değerlerini silmek istediğinizden emin misiniz? AllBarcodeReset=Tüm barkod değerleri silinmiştir @@ -501,10 +502,11 @@ WarningPHPMail=UYARI: Uygulamadan e-posta gönderme kurulumu, varsayılan genel WarningPHPMailA=E-posta Hizmet Sağlayıcısının sunucusunu kullanmak, e-postanızın güvenilirliğini artırır, böylece SPAM olarak işaretlenmeden teslim edilebilirliği artırır. WarningPHPMailB=- Bazı E-posta Servis Sağlayıcıları kendi sunucularından başka bir sunucudan e-posta göndermenize izin vermez. Mevcut kurulumunuz e-posta göndermek için uygulama sunucusunu kullanıyor, e-posta sağlayıcınızın sunucusunu değil, bu nedenle bazı alıcılar (kısıtlayıcı DMARC protokolüyle uyumlu olan) e-posta sağlayıcınıza e-postanızı ve bazı e-posta sağlayıcılarını kabul edip edemeyeceklerini soracaktır. (Yahoo gibi), sunucu kendilerine ait olmadığı için "hayır" yanıtını verebilir, bu nedenle, gönderdiğiniz E-postaların çok azı teslim için kabul edilmeyebilir (e-posta sağlayıcınızın gönderme kotasına da dikkat edin). WarningPHPMailC=- E-posta göndermek için kendi E-posta Servis Sağlayıcınızın SMTP sunucusunu kullanmak da ilginçtir, bu nedenle uygulamadan gönderilen tüm e-postalar ayrıca posta kutunuzun "Gönderilen" dizinine kaydedilecektir. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=E-posta SMTP sağlayıcınızın e-posta istemcisini bazı IP adresleriyle kısıtlaması gerekiyorsa (çok nadir), bu, ERP CRM uygulamanız için posta kullanıcı aracısının (MUA) IP adresidir: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Açıklamayı görmek için tıkla DependsOn=Bu modülün gerektirdiği modül(ler) RequiredBy=Bu modül, modül(ler) için zorunludur @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Örnek:
    Yeni bir cari oluşturma formu kull PageUrlForDefaultValuesList=
    Örnek:
    Carileri listeleyen sayfa için, bu %s.
    Özel dizine yüklenmiş harici modüllerin URL'si için, "custom/" custom/mymodule /mypagelist.php yerine mymodule/mypagelist.php gibi bir yol kullanın.
    Varsayılan değeri yalnızca url'de bir parametre varsa istiyorsanız, %s AlsoDefaultValuesAreEffectiveForActionCreate=Form oluşturmak için varsayılan değerlerin üzerine yazma işleminin sadece doğru bir şekilde tasarlanmış sayfalarda çalışacağını unutmayın (action=create veya presend... parametresi ile) EnableDefaultValues=Varsayılan değerlerin kişiselleştirilmesini etkinleştir -EnableOverwriteTranslation=Üzerine yazılabilir çeviri kullanımını etkinleştir +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Bu kodlu anahtar için bir çeviri bulundu. Bu değeri değiştirmek için onu Giriş-Ayarlar-Çeviri bölümünde düzenlemelisiniz. WarningSettingSortOrder=Uyarı: Varsayılan bir sıralama düzeni ayarlamak, eğer alan bilinmeyen bir alan ise liste sayfasına giderken teknik bir hataya neden olabilir. Böyle bir hatayla karşılaşırsanız varsayılan sıralama düzenini kaldırmak için bu sayfaya geri dönün ve önceki davranışı geri yükleyin. Field=Alan @@ -645,9 +647,9 @@ Module2400Name=Etkinlik/Gündem Module2400Desc=Etkinlikleri takip edin. İzleme amacıyla otomatik etkinlikleri günlüğe geçirin veya manuel etkinlikleri ya da toplantıları kaydedin. Bu, iyi bir Müşteri veya Tedarikçi İlişkileri Yönetimi için temel modüldür. Module2500Name=DMS/ECM Module2500Desc=Belge Yönetim Sistemi/Elektronik İçerik Yönetimi. Oluşturulan veya saklanan belgelerinizin otomatik organizasyonu. İhtiyacınız olduğunda paylaşın. -Module2600Name=API/Web hizmetleri (SOAP sunucusu) +Module2600Name=API / Web services (SOAP server) Module2600Desc=API hizmetlerini sağlayan Dolibarr SOAP sunucusunu etkinleştir -Module2610Name=API/Web hizmetleri (REST sunucusu) +Module2610Name=API / Web services (REST server) Module2610Desc=API hizmetlerini sağlayan Dolibarr REST sunucusunu etkinleştir Module2660Name=Çağrı Web hizmetleri (SOAP istemcisi) Module2660Desc=Dolibarr web hizmetleri istemcisini etkinleştirin (Dış sunuculara veri/istek göndermek için kullanılabilir. Şu anda yalnızca Satın alma siparişleri desteklenmektedir.) @@ -698,6 +700,7 @@ Module62000Name=Uluslararası Ticaret Terimleri Module62000Desc=Uluslararası Ticaret Terimleri'ni yönetmek için özellikler ekleyin Module63000Name=Kaynaklar Module63000Desc=Etkinliklere tahsis etmek için kaynakları (yazıcılar, arabalar, odalar, ...) yönetin +Module94160Name=Resepsiyonlar Permission11=Müşteri faturalarını oku Permission12=Müşteri faturaları oluştur/düzenle Permission13=Müşteri faturalarını geçersiz kılın @@ -714,6 +717,7 @@ Permission27=Teklif sil Permission28=Teklifleri dışa aktar Permission31=Ürün oku Permission32=Ürün oluştur/düzenle +Permission33=Read prices products Permission34=Ürün sil Permission36=Gizli ürünleri gör/yönet Permission38=Ürünleri dışa aktar @@ -739,6 +743,7 @@ Permission79=Abonelik oluştur/düzenle Permission81=Müşteri siparişi oku Permission82=Müşteri siparişleri oluştur/düzenle Permission84=Müşteri siparişi doğrula +Permission85=Generate the documents sales orders Permission86=Müşteri siparişi gönder Permission87=Müşteri siparişi kapat Permission88=Müşteri siparişi iptal et @@ -840,9 +845,9 @@ Permission286=Kişileri dışa aktar Permission291=Tarife oku Permission292=Tarife izinlerini kur Permission293=Müşterinin tarifelerini değiştirin -Permission300=Barkodları oku -Permission301=Barkod oluştur/değiştir -Permission302=Barkodları sil +Permission301=Generate PDF sheets of barcodes +Permission304=Barkod oluştur/değiştir +Permission305=Barkodları sil Permission311=Hizmet oku Permission312=Sözleşmeye hizmet/abonelik ata Permission331=Yerimi oku @@ -874,6 +879,7 @@ Permission525=Borç hesaplayıcısına erişim Permission527=Borçları dışa aktar Permission531=Hizmet oku Permission532=Hizmet oluştur/değiştir +Permission533=Read prices services Permission534=Hizmet sil Permission536=Gizli hizmetleri gör/yönet Permission538=Hizmetleri dışa aktar @@ -968,13 +974,14 @@ Permission3301=Yeni modüller oluşturun Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Web sitesi içeriğini okuyun Permission10002=Web sitesi içeriği oluşturun/değiştirin (HTML ve Javascript içeriği) Permission10003=Web sitesi içeriği oluşturun/değiştirin (dinamik php kodu). Tehlikeli, kısıtlı geliştiricilere ayrılmalıdır. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Ünite türü SetupSaved=Kurulum kaydedildi SetupNotSaved=Kurulum kaydedilmedi +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Modül listesine dön BackToDictionaryList=Sözlük listesine dön TypeOfRevenueStamp=Damga pulu türü @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Bir konfigürasyon sabitinin değeri ConstantIsOn=%s seçeneği açık NbOfDays=Gün sayısı AtEndOfMonth=Ay sonunda -CurrentNext=Güncel/Sonraki +CurrentNext=A given day in month Offset=Sapma AlwaysActive=Her zaman etkin Upgrade=Yükselt @@ -1235,11 +1246,13 @@ BrowserName=Tarayıcı adı BrowserOS=Tarayıcı OS ListOfSecurityEvents=Dolibarr güvenlik etkinlikleri listesi SecurityEventsPurged=Güvenlik etkinlikleri temizlendi +TrackableSecurityEvents=Trackable security events LogEventDesc=Belirli güvenlik etkinlikleri için günlüğe kaydetmeyi etkinleştirin. Yöneticiler %s - %s menüsünden günlüğü görebilir. Uyarı: Bu özellik veri tabanında büyük miktarda veri üretebilir. AreaForAdminOnly=Kurulum parametreleri sadece yönetici olan kullanıcılar tarafından ayarlanabilir. SystemInfoDesc=Sistem bilgileri sadece okuma modunda ve yöneticiler için görüntülenen çeşitli teknik bilgilerdir. SystemAreaForAdminOnly=Bu alan yalnızca yönetici kullanıcılar tarafından kullanılabilir. Dolibarr kullanıcı izinleri bu kısıtlamayı değiştiremez. CompanyFundationDesc=Firmanızın/kuruluşunuzun bilgilerini düzenleyebilirsiniz. İşiniz bittiğinde sayfanın altındaki "%s" butonuna tıklayarak işleminizi tamamlayın. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Harici bir muhasebeciniz/saymanınız varsa, onun bilgilerini burada düzenleyebilirsiniz. AccountantFileNumber=Muhasebeci kodu DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Bu komutu %s kullanıcı YourPHPDoesNotHaveSSLSupport=SSL fonksiyonları PHP nizde mevcut değildir DownloadMoreSkins=Daha fazla kaplama indirin SimpleNumRefModelDesc=Referans numarasını% yyyyaa-nnnn biçiminde döndürür; burada yy yıl, aa ay ve nnnn sıfırlama olmadan sıralı otomatik artan bir sayıdır +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Referans numarasını% yyyyaa-nnnn biçiminde döndürür; burada yy yıl, aa ay ve nnnn sıfırlama olmadan sıralı otomatik artan bir sayıdır SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Vergi numarasını gizle @@ -1376,7 +1391,7 @@ GetBarCode=Barkovizyon al NumberingModules=Numaralandırma modelleri DocumentModules=Belge modelleri ##### Module password generation -PasswordGenerationStandard=Dahili Dolibarr algoritmasına göre oluşturulmuş bir parola döndür: paylaşılan sayılar ve küçük harfli karakterler içeren %s karakter. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Oluşturulan bir parola önerme. Parola manuel olarak yazılmalıdır. PasswordGenerationPerso=Kişisel tanımlanmış yapılandırmanıza göre bir parola girin. SetupPerso=Yapılandırmanıza göre @@ -1430,6 +1445,10 @@ SuppliersPayment=Tedarikçi ödemeleri SupplierPaymentSetup=Tedarikçi ödemesi ayarları InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Teklif modülü kurulumu ProposalsNumberingModules=Teklif numaralandırma modülü @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Taslak sözleşmeler üzerinde filigran (boşsa yo ##### Members ##### MembersSetup=Üye modülü kurulumu MemberMainOptions=Ana seçenekler +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Her üye için bir Kullanıcı adı yürütün AdherentMailRequired=Yeni bir üye oluşturmak için e-posta gereklidir MemberSendInformationByMailByDefault=Üyelere onay epostası (doğrulama ya da yeni abonelik) göndermek için onay kutusu varsayılan olarak açıktır MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Ziyaretçi kişi mevcut ödeme türlerinden birini seçebilir +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Süresi dolmuş abonelikler için mail yoluyla otomatik hatırlatıcıyı etkinleştir. Not: Hatırlatıcıyı gönderebilmek için %s modülü etkinleştirilmiş ve doğru bir şekilde yapılandırılmış olmalıdır. MembersDocModules=Üye kaydından oluşturulan belgeler için belge şablonları ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Gelişmiş düzenleyiciyi şunun için etkinleştir: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=Tüm varlıklar (teklifler, siparişler, faturalar, vb.) İçin ürün ayrıntı satırlarının WYSIWIG oluşturulması/baskısı. Uyarı: Bu durumda bu seçeneğin kullanılması, PDF dosyalarını oluştururken özel karakterler ve sayfa biçimlendirmeyle ilgili sorunlar yaratabileceğinden, kesinlikle önerilmez. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Toplu e-postalar için WYSIWIG oluşturma/düzenleme (Araçlar->E-postalamalar) FCKeditorForUserSignature=Kullanıcı imzasının WYSIWIG olarak oluşturulması/düzenlenmesi FCKeditorForMail=Tüm mailler için WYSIWIG oluşturma/düzenleme (Araçlar->E-postalamalar hariç) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Yeni menü göstermek için menü işleyicisi DetailMenuModule=Eğer menü girişi bir modülden geliyorsa modül adı DetailType=Menü türü (üst ya da sol) DetailTitre=Çeviri için menü etiketi veya etiket kodu -DetailUrl=Menü tarafından gönderilen URL (Mutlak URL bağlantısı veya http:// ile dış bağlantı) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Giriş gösterip göstermeme koşulu DetailRight=Yetkisiz gri menüleri gösterme koşulu DetailLangs=Etiket kodu çevirisi için Lang dosya adı @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POS'taki stok düşüşü Seri/Lot y CashDeskYouDidNotDisableStockDecease=Satış Noktasından satış yaparken stok düşüşünü devre dışı bırakmadınız. Bu nedenle bir depo gereklidir. CashDeskForceDecreaseStockLabel=Toplu ürünler için stok azalması zorlandı. CashDeskForceDecreaseStockDesc=Önce en eski yemek kadar azaltın ve tarihlere göre satış yapın. -CashDeskReaderKeyCodeForEnter=Barkod okuyucusunda tanımlanan "Enter" anahtar kodu (Örnek: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Yerimi modülü kurulumu BookmarkDesc=Bu modül yer imlerini yönetmenize imkan sağlar. Ayrıca, sol taraftaki menünüzde herhangi bir Dolibarr sayfasına veya harici web sitelerine kısayollar ekleyebilirsiniz. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Tedarikçi faturaları numaralandırma modelleri IfSetToYesDontForgetPermission=f boş olmayan bir değere ayarlanırsa, ikinci onay için izin verilen gruplara veya kullanıcılara izinler vermeyi unutmayın ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP MaxMind modülü kurulumu -PathToGeoIPMaxmindCountryDataFile=Maxmind ip'den ülkeye çeviriyi içeren dosya yolu.
    Örnekler:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Ülkenizin ip veri dosyasının PHP nizin okuyabileceği bir dizin içinde olmasına dikkat edin (PHP nizin ope_basdir kurulumunu ve filesystem izinlerini denetleyin) YouCanDownloadFreeDatFileTo=Maxmind GeoIP ülke dosyasının bir ücretsiz demo sürümünü %s konumundan indirebilirsiniz. YouCanDownloadAdvancedDatFileTo=Ayrıca Maxmind GeoIP ülke dosyasına daha çok dosyayı %s konumundan indirebilirsiniz, güncellemeleri ile birlikte tam sürümünü, @@ -1922,6 +1942,7 @@ BackupDumpWizard=Veritabanı döküm dosyasını oluşturma sihirbazı BackupZipWizard=Belgeler dizini arşivini oluşturma sihirbazı SomethingMakeInstallFromWebNotPossible=Web arayüzünden dış modül kurulumu aşağıdaki nedenden ötürü olanaksızdır: SomethingMakeInstallFromWebNotPossible2=Bu nedenle, burada açıklanan yükseltme işlemi, yalnızca ayrıcalıklı bir kullanıcının gerçekleştirebileceği manuel bir işlemdir. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Dış modülün uygulama içerisinden kurulumu yöneticiniz tarafından engellenmiştir. Bu özelliğe izin verilmesi için ondan %s dosyasını kaldırmasını istemelisiniz. ConfFileMustContainCustom=Uygulamadan harici bir modül kurmak veya oluşturmak, modül dosyalarını %s dizinine kaydetmelidir. Bu dizinin Dolibarr tarafından işlenmesi için, conf/conf.php dosyanızı 2 yönerge satırını ekleyecek şekilde ayarlamalısınız:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt ='%s/özel'; HighlightLinesOnMouseHover=Tablo satırlarını fare üzerine geldiğinde vurgula @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Bu değeri değiştirdikten sonra geçerli olabilmesi i NotSupportedByAllThemes=Yalnızca çekirdek temaları ile çalışır ancak dış temalar tarafından desteklenmez BackgroundColor=Arka plan rengi TopMenuBackgroundColor=Üst menü için arka plan rengi -TopMenuDisableImages=Üst menüdeki görüntüleri gizle +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Sol menü için arka plan rengi BackgroundTableTitleColor=Tablo satırı başlığı için arka plan rengi BackgroundTableTitleTextColor=Tablo satırı başlığı için metin rengi @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Tedarikçi siparişleri MailToSendSupplierInvoice=Tedarikçi faturaları MailToSendContract=Sözleşmeler MailToSendReception=Resepsiyonlar +MailToExpenseReport=Gider raporları MailToThirdparty=Cariler MailToMember=Üyeler MailToUser=Kullanıcılar @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF'deki sağ boşluk MAIN_PDF_MARGIN_TOP=PDF'deki üst boşluk MAIN_PDF_MARGIN_BOTTOM=PDF'deki alt kenar boşluğu MAIN_DOCUMENTS_LOGO_HEIGHT=PDF'deki logo için yükseklik +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Özel karakterleri kaldır COMPANY_AQUARIUM_CLEAN_REGEX=Değeri temizlemek için normal ifade filtresi (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Değeri temizlemek için normal ifade filtresi (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Yinelemeye izin verilmiyor +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Veri Koruma Görevlisi (DPO, Veri Gizliliği veya GDPR kişisi) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Araç ipucunda gösterilecek yardım metni @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Not: KDV kullanma seçeneği %s - %s menüsünde Kapalı SwapSenderAndRecipientOnPDF=PDF üzerindeki gönderen ve alıcı adreslerinin yerini birbiriyle değiştir FeatureSupportedOnTextFieldsOnly=Uyarı, özellik yalnızca metin alanlarında ve birleşik listelerde desteklenir. Ayrıca bir URL parametresi action=create veya action=edit ayarlanmalıdır VEYA sayfa adı bu özelliği tetiklemek için 'new.php' ile bitmelidir. EmailCollector=E-posta toplayıcı +EmailCollectors=Email collectors EmailCollectorDescription=Düzenli olarak e-posta kutularını taramak (IMAP protokolünü kullanarak) ve uygulamanıza alınan e-postaları doğru yerde kaydetmek ve/veya bazı kayıtları otomatik olarak (potansiyel müşteriler gibi) oluşturmak için planlanmış bir iş ve bir kurulum sayfası ekleyin. NewEmailCollector=Yeni E-posta Toplayıcı EMailHost=E-posta IMAP sunucusu ana bilgisayarı +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Posta kutusu kaynak dizini MailboxTargetDirectory=Posta kutusu hedef dizini EmailcollectorOperations=Toplayıcı tarafından yapılacak işlemler EmailcollectorOperationsDesc=İşlemler yukarıdan aşağıya doğru yapılır MaxEmailCollectPerCollect=Toplama başına toplanan maksimum e-posta sayısı +TestCollectNow=Test collect CollectNow=Şimdi topla ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=En son deneme toplama tarihi DateLastcollectResultOk=En son başarılı toplama tarihi LastResult=En son sonuç EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=E-posta toplama onayı EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=İşlenecek yeni e-posta (eşleşen filtreler) yok NothingProcessed=Hiçbir şey yapılmadı -XEmailsDoneYActionsDone=%s e-postası uygun, %s e-postası başarıyla işlendi (%s kaydı/yapılan eylem için) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=İş başvurusu oluştur FormatZip=Posta Kodu MainMenuCode=Menü giriş kodu (ana menü) ECMAutoTree=Otomatik ECM ağacını göster -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Açılış saatleri OpeningHoursDesc=Buraya firmanızın normal çalışma saatlerini girin. ResourceSetup=Kaynak modülünün yapılandırılması @@ -2167,6 +2200,10 @@ EmailTemplate=E-posta şablonu EMailsWillHaveMessageID=E-postalarda bu sözdizimiyle eşleşen bir 'Referanslar' etiketi bulunacak PDF_SHOW_PROJECT=Belgede projeyi göster ShowProjectLabel=Proje Etiketi +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=PDF'nizdeki bazı metinlerin aynı oluşturulan PDF'de 2 farklı dilde çoğaltılmasını istiyorsanız, burada bu ikinci dili ayarlamanız gerekir, böylece oluşturulan PDF aynı sayfada 2 farklı dil içerir, biri PDF oluşturulurken seçilir ve bu ( yalnızca birkaç PDF şablonu bunu destekler). PDF başına 1 dil için boş bırakın. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Buraya FontAwesome simgesinin kodunu girin. FontAwesome'ın ne olduğunu bilmiyorsanız, fa-address-book genel değerini kullanabilirsiniz. @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Formdan bir olay oluştururken varsayılan olay durumu YouShouldDisablePHPFunctions=PHP işlevlerini devre dışı bırakmalısınız IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Kök dizininizde ortak programların yazılabilir dosyaları veya dizinleri bulunamadı (İyi) RecommendedValueIs=Önerilen: %s Recommended=Önerilen NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Envanter Kurulumu ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Ayarlar +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/tr_TR/categories.lang b/htdocs/langs/tr_TR/categories.lang index 6ff23b98f79..e9545ba04af 100644 --- a/htdocs/langs/tr_TR/categories.lang +++ b/htdocs/langs/tr_TR/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Bu üye hiçbir etikette/kategoride yoktur ContactHasNoCategory=Bu kişi hiçbir etikette/kategoride yok ProjectHasNoCategory=Bu proje hiçbir etikette/kategoride yok ClassifyInCategory=Etikete/kategoriye ekle +RemoveCategory=Remove category NotCategorized=Etiketsiz/kategorisiz CategoryExistsAtSameLevel=Bu kategori zaten bu ilgi ile var ContentsVisibleByAllShort=Içerik herkes tarafından görülebilir @@ -67,6 +68,7 @@ StockCategoriesShort=Depo etiketleri / kategorileri ThisCategoryHasNoItems=Bu kategori herhangi bir öğe içermiyor. CategId=Etiket/kategori kimliği ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=Etiketlerden/kategorilerden kaldır ExtraFieldsCategories=Tamamlayıcı öznitelikler CategoriesSetup=Etiket/kategori ayarları CategorieRecursiv=Otomatik ana etiketli/kategorili bağlantı -CategorieRecursivHelp=Bu seçenek aktifse, alt bir kategoriye ürün eklediğinizde bu ürün aynı zamanda üst kategoriye de eklenecektir. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Aşağıdaki ürünü/hizmeti ekle AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Etiketi/kategoriyi göster ByDefaultInList=B listede varsayılana göre ChooseCategory=Kategori seç StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/tr_TR/commercial.lang b/htdocs/langs/tr_TR/commercial.lang index f2d43076cde..1c60a05379b 100644 --- a/htdocs/langs/tr_TR/commercial.lang +++ b/htdocs/langs/tr_TR/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=Sevkiyatı e-posta ile gönder ActionAC_SUP_ORD=Tedarikçi siparişini e-posta ile gönder ActionAC_SUP_INV=Tedarikçi faturasını e-posta ile gönder ActionAC_OTH=Diğer -ActionAC_OTH_AUTO=Otomatik olarak eklenen etkinlikler +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Elle eklenen etkinlikler ActionAC_AUTO=Otomatik olarak eklenen etkinlikler -ActionAC_OTH_AUTOShort=Oto +ActionAC_OTH_AUTOShort=Diğer +ActionAC_EVENTORGANIZATION=Event organization events Stats=Satış istatistikleri StatusProsp=Aday durumu DraftPropals=Taslak teklifler NoLimit=Sınır yok ToOfferALinkForOnlineSignature=Online imza için link -WelcomeOnOnlineSignaturePage=%s'dan ticari teklifleri kabul etme sayfasına hoş geldiniz. -ThisScreenAllowsYouToSignDocFrom=Bu ekran, bir teklifi kabul etmenize ve imzalamanıza veya reddetmenize olanak sağlar. -ThisIsInformationOnDocumentToSign=Bu, kabul veya reddedilecek belge hakkında bilgidir +WelcomeOnOnlineSignaturePageProposal=%s'dan ticari teklifleri kabul etme sayfasına hoş geldiniz. +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Bu ekran, bir teklifi kabul etmenize ve imzalamanıza veya reddetmenize olanak sağlar. +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Bu, kabul veya reddedilecek belge hakkında bilgidir +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Ticari teklifin imzası %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Çevrimiçi imzalama özelliği devre dışı bırakıldı veya belge bu özellik etkinleştirilmeden önce oluşturuldu diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang index 93449051d58..03db3db97d1 100644 --- a/htdocs/langs/tr_TR/companies.lang +++ b/htdocs/langs/tr_TR/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Üçüncü partinin yapısı NatureOfContact=Kişinin Niteliği Address=Adresi State=Eyaleti/İli +StateId=State ID StateCode=Eyalet/il kodu StateShort=Durum Region=Bölgesi Region-State=Bölge - Eyalet Country=Ülkesi CountryCode=Ülke kodu -CountryId=Ülke kimliği +CountryId=Country ID Phone=Telefonu PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Diğerleri ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 0baa8dba090..371af92f81e 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Bakiye (önce) Balance=Bakiye Debit=Borç Credit=Alacak +AccountingDebit=Borç +AccountingCredit=Alacak Piece=Muhasebe Belg. AmountHTVATRealReceived=Net alınan AmountHTVATRealPaid=Net ödenen @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Ürün başına toplanan Cir TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Satış vergisi oranı başına toplanan Ciro raporu mevcut değildir. Bu rapor yalnızca faturalandırılan ciro için kullanılabilir. CalculationMode=Hesaplama modu AccountancyJournal=Muhasebe kodu günlüğü -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Müşteri üçüncü partileri için kullanılan muhasebe hesabı +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partileri için kullanılan muhasebe hesabı +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Sosyal/mali vergi kopyasının oluşturulmasını onayla ConfirmCloneVAT=KDV beyannamesinin klonlanmasını onaylayın @@ -300,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/tr_TR/contracts.lang b/htdocs/langs/tr_TR/contracts.lang index 3ea4e9a2141..848f0c13d7a 100644 --- a/htdocs/langs/tr_TR/contracts.lang +++ b/htdocs/langs/tr_TR/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Sözleşmeler/Üyelikler ContractsAndLine=Sözleşmeler ve satırları Contract=Sözleşme ContractLine=Sözleşme satırı +ContractLines=Contract lines Closing=Kapatma NoContracts=Sözleşme yok MenuServices=Hizmetler @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Bu sözleşme satırını silmek istediğinizden emin MoveToAnotherContract=Hizmeti başka bir sözleşmeye taşıyın. ConfirmMoveToAnotherContract=Yeni hedefi seçtim ve bu hizmetin bu sözleşmeye taşınmasını onaylıyorum. ConfirmMoveToAnotherContractQuestion=Bu hizmeti hangi varolan sözleşmeye (aynı üçüncü partinin) taşımak istediğinizi seçin? -PaymentRenewContractId=Sözleşme satırını yenile (sayı %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Süre bitiş tarihi NoExpiredServices=Süresi dolmamış etkin hizmetler ListOfServicesToExpireWithDuration=%s günde süresi dolacak Hizmetler Listesi @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Sözleşmeyi imzalayacak müşteri ilg HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/tr_TR/cron.lang b/htdocs/langs/tr_TR/cron.lang index 2a1a962c1d7..84b612cc1c6 100644 --- a/htdocs/langs/tr_TR/cron.lang +++ b/htdocs/langs/tr_TR/cron.lang @@ -26,7 +26,7 @@ CronCommand=Komut CronList=Planlı İşler CronDelete=Planlı işleri sil CronConfirmDelete=Bu zamanlanmış işleri silmek istediğinizden emin misiniz? -CronExecute=Planlı işi başlat +CronExecute=Launch now CronConfirmExecute=Bu zamanlanmış işleri şimdi yürütmek istediğinizden emin misiniz? CronInfo=Zamanlanmış iş modülü, işlerin otomatik olarak yürütülmesi için planlanmasına izin verir. İşler manuel olarak da başlatılabilir. CronTask=İş @@ -58,7 +58,7 @@ CronNote=Yorum CronFieldMandatory=%s alanı zorunludur CronErrEndDateStartDt=Bitiş tarihi başlama tarihinden önce olamaz StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Engelle CronTaskInactive=This job is disabled (not scheduled) CronId=Kimlik @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=İş engellendi MakeLocalDatabaseDumpShort=Yerel veritabanı yedeklemesi MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Dikkat: Performans amaçlı olarak etkinleştirilmiş işlerin bir sonraki yürütme tarihi ne olursa olsun, işleriniz çalıştırılmadan önce maksimum %s saat ertelenebilir. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/tr_TR/datapolicy.lang b/htdocs/langs/tr_TR/datapolicy.lang new file mode 100644 index 00000000000..ac391018274 --- /dev/null +++ b/htdocs/langs/tr_TR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Müşteri +DATAPOLICY_TIERS_PROSPECT = Aday +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Tedarikçi +DATAPOLICY_CONTACT_CLIENT = Müşteri +DATAPOLICY_CONTACT_PROSPECT = Aday +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Tedarikçi +DATAPOLICY_ADHERENT = Üye +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/tr_TR/ecm.lang b/htdocs/langs/tr_TR/ecm.lang index 3ce948bd80c..1df8a9a60f4 100644 --- a/htdocs/langs/tr_TR/ecm.lang +++ b/htdocs/langs/tr_TR/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manuel dizin ECMSectionAuto=Otomatik dizin ECMSectionsManual=Manuel ağaç ECMSectionsAuto=Otomatik ağaç +ECMSectionsMedias=Medias tree ECMSections=Dizinler ECMRoot=ECM Root ECMNewSection=Yeni dizin @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Alt dizilerdeki dosya sayısı ECMCreationUser=Oluşturan ECMArea=DMS/ECM alanı ECMAreaDesc=DMS/ECM (Belge Yönetim Sistemi / Elektronik İçerik Yönetimi) alanı, Dolibarr'daki her türlü belgenin hızlı bir şekilde kaydedilmesine, paylaşılmasına ve aranmasına imkan sağlar. -ECMAreaDesc2=* Otomatik dizinler, bir öğenin kartından belge eklenirken otomatikman doldurulur.
    * Manuel dizinler, belirli bir öğeye bağlı olmayan belgelerin saklanması için kullanılabilir. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=%sDizini silindi. ECMSectionWasCreated=%s dizini oluşturuldu. ECMSearchByKeywords=Anahtar kelimelere göre ara diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index 37622276db8..22036ef98fe 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) ErrorBadUrl=Url %s is incorrect ErrorBadValueForParamNotAString=Parametreniz için hatalı değer. Genellikle çeviri eksik olduğunda eklenir. ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=%s kullanıcı adı zaten var. ErrorGroupAlreadyExists=%s Grubu zaten var. ErrorEmailAlreadyExists=Email %s already exists. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name %s already exist ErrorPartialFile=Dosya sunucu tarafından tamamen alınmadı. ErrorNoTmpDir=Geçici %s dizini yok. ErrorUploadBlockedByAddon=Dosya gönderme PHP/Apache eklentisi tarafından bloke edilmiş. -ErrorFileSizeTooLarge=Dosya boyutu çok büyük. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Field %s is too long. ErrorSizeTooLongForIntType=Tam sayı türü için boyut çok uzun (ençok %s ondalık) ErrorSizeTooLongForVarcharType=Dize türü için boyut çok uzun (ençok %s karakter) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Bu özelliğin çalışması için Javascript engel ErrorPasswordsMustMatch=Her iki yazdığınız şifrenin birbiriyle eşleşmesi gerekir ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref ErrorsOnXLines=%s hata bulundu @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=PHP'nizdeki upload_max_filesize (%s) parametresi, post_max_size (%s) PHP parametresinden daha yüksek. Bu tutarlı bir kurulum değil. WarningPasswordSetWithNoAccount=Bu üye için bir parola ayarlıdır. Ancak, hiçbir kullanıcı hesabı oluşturulmamıştır. Yani bu şifre saklanır ama Dolibarr'a giriş için kullanılamaz. Dış bir modül/arayüz tarafından kullanılıyor olabilir, ama bir üye için ne bir kullanıcı adı ne de parola tanımlamanız gerekmiyorsa "Her üye için bir kullanıcı adı yönet" seçeneğini devre dışı bırakabilirsiniz. Bir kullanıcı adı yönetmeniz gerekiyorsa ama herhangi bir parolaya gereksinim duymuyorsanız bu uyarıyı engellemek için bu alanı boş bırakabilirsiniz. Not: Eğer bir üye bir kullanıcıya bağlıysa kullanıcı adı olarak e-posta adresi de kullanılabilir. -WarningMandatorySetupNotComplete=Zorunlu parametreleri ayarlamak için buraya tıklayın +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications WarningSafeModeOnCheckExecDir=Uyarı, PHP seçeneği güvenli_mode açıktır, böylece komut php parametresi güvenli_mode_exec_dir tarafından bildirilen bir dizine saklanabilir. WarningBookmarkAlreadyExists=Bu konulu ya da bu hedefli (URL) bir yerimi zaten var. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/tr_TR/externalsite.lang b/htdocs/langs/tr_TR/externalsite.lang deleted file mode 100644 index 43f6d94f301..00000000000 --- a/htdocs/langs/tr_TR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Dış web sitesine bağlantı ayarla -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Dış Web Sitesi modülü doğru yapılandırılmamış. -ExampleMyMenuEntry=Menü girişim diff --git a/htdocs/langs/tr_TR/ftp.lang b/htdocs/langs/tr_TR/ftp.lang deleted file mode 100644 index e771e1006e1..00000000000 --- a/htdocs/langs/tr_TR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP İstemcisi modülü kurulumu -NewFTPClient=Yeni FTP bağlantı kurulumu -FTPArea=FTP Alanı -FTPAreaDesc=Bu ekran bir FTP sunucusunun görünümünü sergiler. -SetupOfFTPClientModuleNotComplete=FTP istemci modülünün kurulumu eksik görünüyor -FTPFeatureNotSupportedByYourPHP=PHP'niz FTP işlevlerini desteklemiyor -FailedToConnectToFTPServer=FTP sunucusuna bağlanamadı (sunucu %s, port %s) -FailedToConnectToFTPServerWithCredentials=Tanımlı kullanıcı adı/parola ile FTP sunucusunda oturum açılamadı -FTPFailedToRemoveFile=%s dosyası kaldırılamadı. -FTPFailedToRemoveDir=%s dizini kaldırılamadı: izinleri kontrol edin ve dizinin boş olduğundan emin olun. -FTPPassiveMode=Pasif mod -ChooseAFTPEntryIntoMenu=Menüden bir FTP sitesi seçin... -FailedToGetFile=%s dosyaları alınamadı diff --git a/htdocs/langs/tr_TR/holiday.lang b/htdocs/langs/tr_TR/holiday.lang index 45bd42c217c..882497f67fc 100644 --- a/htdocs/langs/tr_TR/holiday.lang +++ b/htdocs/langs/tr_TR/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=IK -Holidays=İzinler +Holidays=Leaves +Holiday=İzinler CPTitreMenu=İzinler MenuReportMonth=Aylık özet MenuAddCP=Yeni izin isteği +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Bu sayfayı görüntülemek için İzin modülünü etkinleştirmelisiniz. AddCP=Bir izin isteği yap DateDebCP=Başlama tarihi @@ -56,6 +58,7 @@ ConfirmDeleteCP=Bu izin isteğinin silinmesini onaylıyor musunuz? ErrorCantDeleteCP=Hata, bu izin isteğini silmek için yetkiniz yok. CantCreateCP=İzin isteği yapmak için yetkiniz yok. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Bir başlama tarihi seçmelisiniz. NoDateFin=Bir bitiş tarihi seçmelisiniz. ErrorDureeCP=İzin isteğiniz çalışma günü içermiyor. @@ -79,6 +82,8 @@ MotifCP=Neden UserCP=Kullanıcı ErrorAddEventToUserCP=Özel izin eklenirken hata oluştu. AddEventToUserOkCP=Özel izin eklenmesi tamamlanmıştır. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Değişiklik kütüklerini incele LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Önceki Bakiye NewSoldeCP=Yeni Bakiye alreadyCPexist=Bu dönem için bir izin isteği zaten yapılmış. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Gruplar +users=Kullanıcılar +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Değiştirilen son %s izin isteği @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/tr_TR/hrm.lang b/htdocs/langs/tr_TR/hrm.lang index 89d3d4449bb..9bf699c895b 100644 --- a/htdocs/langs/tr_TR/hrm.lang +++ b/htdocs/langs/tr_TR/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Kuruluş aç CloseEtablishment=Kuruluş kapat # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=İKY - Departman listesi +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Çalışanlar @@ -20,13 +20,14 @@ Employee=Çalışan NewEmployee=Yeni çalışan ListOfEmployees=Çalışanlar listesi HrmSetup=İK modülü ayarları -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=İş -Jobs=Jobs +JobPosition=İş +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Bu yetenek için çalışan sıralaması -Position=Konum -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Bu pozisyondaki çalışanlar group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=Bu çalışan için değerlendirme yapılmadı HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang index 08afdf7307b..5ce83ac323e 100644 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=%s yapılandırma dosyası yazılabilir değil. İz ConfFileIsWritable=%s yapılandırma dosyası yazılabilir. ConfFileMustBeAFileNotADir=%s yapılandırma dosyası bir dizin değil, dosya olmalıdır. ConfFileReload=Yapılandırma dosyasındaki parametreleri yeniden yükleme. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Bu PHP GÖNDER ve AL değişkenlerini destekliyor. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=Bu PHP oturumları destekliyor. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Parametresi '%s' için yanlış değer yazmış olab ErrorFailedToCreateDatabase=Veritabanı '%s' oluşturulamadı. ErrorFailedToConnectToDatabase=Veritabanı '%s' e bağlanılamadı. ErrorDatabaseVersionTooLow=Veritabanı sürümü (%s) çok eski. Sürüm %s ya da daha yükseği gerekir. -ErrorPHPVersionTooLow=PHP sürümü çok eski. %s Sürümü gereklidir. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Sunucuya bağlantı başarılı fakat '%s' veritabanı bulunamadı. ErrorDatabaseAlreadyExists=Veritabanı '%s' zaten var. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Veritabanı mevcut değilse geri gidin ve "Veritabanı oluştur" seçeneğini kontrol edin. IfDatabaseExistsGoBackAndCheckCreate=Eğer veritabanı zaten mevcutsa, geri gidin ve "Veritabanı oluştur" seçeneğindeki işareti kaldırın. WarningBrowserTooOld=Tarayıcı sürümü çok eski. Tarayıcınızı Firefox, Chrome veya Opera'nın en son sürümlerine güncellemeniz önemle tavsiye edilir. diff --git a/htdocs/langs/tr_TR/loan.lang b/htdocs/langs/tr_TR/loan.lang index c23e85c4d93..f40efda0081 100644 --- a/htdocs/langs/tr_TR/loan.lang +++ b/htdocs/langs/tr_TR/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Finansal taahhüt InterestAmount=Faiz CapitalRemain=Kalan sermaye TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Kredi modülünün yapılandırılması -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Varsayılan muhasebe hesabı sermayesi -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Varsayılan muhasebe hesabı faiz oranı -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Varsayılan muhasebe hesabı sigortası +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Finansal taahhüdü düzenle diff --git a/htdocs/langs/tr_TR/mailmanspip.lang b/htdocs/langs/tr_TR/mailmanspip.lang index 7399371d015..060e7b2805c 100644 --- a/htdocs/langs/tr_TR/mailmanspip.lang +++ b/htdocs/langs/tr_TR/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Abonelik denemesi başarıyla gerçekleştirildi MailmanDeletionSuccess=Abonelik iptali denemesi başarıyla gerçekleştirildi SynchroMailManEnabled=Bir Mailman güncellemesi gerçekleştirilecektir SynchroSpipEnabled=Bir Spip güncellemesi gerçekleştirilecektir -DescADHERENT_MAILMAN_ADMINPW=Mailman yönetici parolası +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman yönetici parolası DescADHERENT_MAILMAN_URL=Mailman abonelikleri için URL DescADHERENT_MAILMAN_UNSUB_URL=Mailman abonelik iptali için URL DescADHERENT_MAILMAN_LISTS=Yeni üyelerin otomatik kayıt listesi(leri) (virgülle ayrılmış) diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang index 19f1d3c9d1b..cd3ffbce9b8 100644 --- a/htdocs/langs/tr_TR/mails.lang +++ b/htdocs/langs/tr_TR/mails.lang @@ -10,7 +10,7 @@ MailTitle=Açıklama MailFrom=Gönderen MailErrorsTo=Hatalar MailReply=Yanıtla -MailTo=Alıcı(lar) +MailTo=Kime MailToUsers=To user(s) MailCC=Kopyala MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index f9a71e2c878..87d13df4e03 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Bu e-posta türü için mevcut şablon yok AvailableVariables=Mevcut yedek değişkenler NoTranslation=Çeviri yok Translation=Çeviri +Translations=Translations CurrentTimeZone=PHP Saat Dilimi (sunucu) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Geçerli Approve=Onayla Disapprove=Onaylama ReOpen=Yeniden aç +OpenVerb=Açık Upload=Yükle ToLink=Bağlantıla Select=Seç @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Tanımlı kullanıcı grubu yok Password=Parola -PasswordRetype=Parolanızı yeniden yazın +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Bu demoda bir çok özelliğin/modülün engelli olduğuna dikkat edin. Name=Adı NameSlashCompany=İsim / Firma @@ -244,6 +252,7 @@ Designation=Açıklama DescriptionOfLine=Satır açıklaması DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doküman şablonu DefaultModel=Varsayılan doküman şablonu Action=Etkinlik @@ -344,7 +353,7 @@ KiloBytes=Kilobayt MegaBytes=Megabayt GigaBytes=Gigabayt TeraBytes=Terabayt -UserAuthor=Ceated by +UserAuthor=Oluşturan UserModif=Updated by b=bayt Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Bu kişi/adres için etkinlikler ActionsOnContract=Bu sözleşme için etkinlikler ActionsOnMember=Bu üye hakkındaki etkinlikler ActionsOnProduct=Bu ürünle ilgili etkinlikler +ActionsOnAsset=Events for this fixed asset NActionsLate=%s son ToDo=Yapılacaklar Completed=Tamamlanmış @@ -517,6 +527,7 @@ or=veya Other=Diğer Others=Diğerleri OtherInformations=Diğer Bilgiler +Workflow=İş akışı Quantity=Miktar Qty=Miktar ChangedBy=Değiştiren @@ -619,6 +630,7 @@ MonthVeryShort11=Ka MonthVeryShort12=Ar AttachedFiles=Ekli dosya ve belgeler JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-AA DateFormatYYYYMMDD=YYYY-AA-GG DateFormatYYYYMMDDHHMM=YYYY-AA-GG SS:SS @@ -709,6 +721,7 @@ FeatureDisabled=Özellik devre dışı MoveBox=Ekran etiketini taşı Offered=Önerilen NotEnoughPermissions=Bu eylem için izininiz yok +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Oturum adı Method=Yöntem Receive=Al @@ -798,6 +811,7 @@ URLPhoto=Fotoğraf/logo İnternet adresi SetLinkToAnotherThirdParty=Başka bir üçüncü partiye bağlantı LinkTo=Buna bağlantıla LinkToProposal=Teklife bağlantıla +LinkToExpedition= Link to expedition LinkToOrder=Siparişe bağlantıla LinkToInvoice=Faturaya bağlantıla LinkToTemplateInvoice=Şablon faturasına bağlantı @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=İndir DownloadDocument=Belgeyi indir +DownloadSignedDocument=Download signed document ActualizeCurrency=Para birimini güncelle Fiscalyear=Mali yıl ModuleBuilder=Modül ve Uygulama Oluşturucu @@ -1041,6 +1056,7 @@ SearchIntoContracts=Sözleşmeler SearchIntoCustomerShipments=Müşteri sevkiyatları SearchIntoExpenseReports=Gider raporları SearchIntoLeaves=İzin +SearchIntoKM=Knowledge base SearchIntoTickets=Destek Bildirimleri SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Tedarikçi ödemeleri @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Beklemede Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Oran +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Sonlandır +Terminated=Sonlandırılmış +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=İç kullanıcı +ExternalUser=Dış kullanıcı diff --git a/htdocs/langs/tr_TR/members.lang b/htdocs/langs/tr_TR/members.lang index 373d86d8bc4..41e0a542092 100644 --- a/htdocs/langs/tr_TR/members.lang +++ b/htdocs/langs/tr_TR/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Başka bir üye (adı: %s, ku ErrorUserPermissionAllowsToLinksToItselfOnly=Güvenlik nedeniyle, bir üyenin kendinizin dışında bir kullanıcıya bağlı olabilmesi için tüm kullanıcıları düzenleme iznine sahip olmanız gerekir. SetLinkToUser=Bir Dolibarr kullanıcısına bağlantı SetLinkToThirdParty=Bir Dolibarr üçüncü partisine bağlantı +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Üyelerin listesi MembersListToValid=Taslak üye listesi (doğrulanacak) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Üye kimliği +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Yeni üye MemberType=Üyelik türü MemberTypeId=Üyelik türü kimliği @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Üye türü silinemiyor NewSubscription=Yeni katkı payı NewSubscriptionDesc=Bu form aboneliğinizi derneğe yeni bir üye olarak kaydetmenize olanak verir. Abonelik yenilemek istiyorsanız (Zaten üyeyseniz), dernek yönetimine %s e-postası ile başvurun. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Süre +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Son SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Üye kartınızın içeriği # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.

    ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Ciro (bir firma için) veya Bütçe (bir dernek için) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Entegre çevrimiçi ödeme sayfasına atla +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=By nature MembersStatisticsByProperties=Yapısına göre üye istatistikleri VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/tr_TR/mrp.lang b/htdocs/langs/tr_TR/mrp.lang index 88cebca662f..e056dc8bf4d 100644 --- a/htdocs/langs/tr_TR/mrp.lang +++ b/htdocs/langs/tr_TR/mrp.lang @@ -11,8 +11,8 @@ Bom=Gereç Cetvelleri BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=BOM (Ürün Ağacı) modülü kurulumu -ListOfBOMs=Gereç cetveli listesi - BOM -ListOfManufacturingOrders=Üretim Emirleri Listesi +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Üretim Emirleri NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=BOM numbering templates @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=%s Üretim Emrini klonlamak istediğinizden emin misiniz? ManufacturingEfficiency=Üretim verimliliği ConsumptionEfficiency=Consumption efficiency +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Delete Bill Of Materials @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Bu Üretim Emrini doğrulamak istediğinizden emin misiniz? ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. ProductionForRef=Production of %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Tüketim ve üretim miktarlarına ulaşıldığında Üretim Emrini otomatik olarak kapatın NoStockChangeOnServices=No stock change on services ProductQtyToConsumeByMO=Product quantity still to consume by open MO @@ -80,6 +83,7 @@ ProductsToProduce=Products to produce UnitCost=Unit cost TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/tr_TR/oauth.lang b/htdocs/langs/tr_TR/oauth.lang index d3a40660e11..c512ec88ec7 100644 --- a/htdocs/langs/tr_TR/oauth.lang +++ b/htdocs/langs/tr_TR/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Bir belirteç oluşturuldu ve yerel veritabanına kaydedildi NewTokenStored=Token received and saved ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Belirteç silindi -RequestAccess=Erişim ve kaydedilecek yeni bir belirteç alma isteği/yenilemesi için buraya tıklayın +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Belirteçi silmek için burayı tıkla UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Önceki sekmeye bakın +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Belirteç Yenilemesi Mevcuttur TOKEN_EXPIRED=Token expired @@ -23,10 +24,13 @@ TOKEN_DELETE=Kayıtlı belrteçi sil OAUTH_GOOGLE_NAME=OAuth Google hizmeti OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub hizmeti OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Bu sayfaya gidin ve sonra OAuth kimlik bilgileri oluşturmak için "Yeni bir uygulama kaydet" linkine gidin +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index c90819941c4..ddd7cfb6d17 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Tedarikçi siparişi onaylandı Notify_ORDER_SUPPLIER_REFUSE=Tedarikçi siparişi reddedildi Notify_PROPAL_VALIDATE=Müşteri teklifi onaylandı Notify_PROPAL_CLOSE_SIGNED=Müşteri teklifi imzalanmış olarak kapatıldı +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Müşteri teklifi reddedilmiş olarak kapatıldı +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Teklif e-posta ile gönderildi Notify_WITHDRAW_TRANSMIT=Havale çekme Notify_WITHDRAW_CREDIT=Kredi çekme @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=nokta BugTracker=Hata izleyici SendNewPasswordDesc=Bu form yeni bir parola istemenizi sağlar. Yeni parolanız e-posta adresinize gönderilecektir.
    Gelen e-postadaki onay bağlantısını tıkladığınızda değişiklik gerçekleşecektir.
    Gelen kutunuzu kontrol edin. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Oturum açma sayfasına geri dön AuthenticationDoesNotAllowSendNewPassword=Kimlik doğrulama modu %s.
    bu modda, Dolibarr parolanızı bilemez ve değiştiremez.
    Parola değiştirmek istiyorsanız sistem yöneticinize danışın. EnableGDLibraryDesc=Bu seçeneği kullanmak için PHP nizdeki GD kütüphanesini kurun ya da etkinleştirin. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Fatura %s doğrulandı. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Teklif %s doğrulandı. EMailTextProposalClosedSigned=Teklif %s imzalı olarak kapatıldı. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Sipariş %s doğrulandı. EMailTextOrderApproved=Sipariş %s onaylandı. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Kapat Autofill = Autofill + +# externalsite +ExternalSiteSetup=Dış web sitesine bağlantı ayarla +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Dış Web Sitesi modülü doğru yapılandırılmamış. +ExampleMyMenuEntry=Menü girişim + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=%s dosyası kaldırılamadı. +FTPFailedToRemoveDir=%s dizini kaldırılamadı: izinleri kontrol edin ve dizinin boş olduğundan emin olun. +FTPPassiveMode=Pasif mod +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=%s dosyaları alınamadı +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang index 57897e1349c..c6c30305ef6 100644 --- a/htdocs/langs/tr_TR/propal.lang +++ b/htdocs/langs/tr_TR/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Teslim süresi SetAvailability=Teslim süresi ayarla AfterOrder=siparişten sonra OtherProposals=Diğer teklifler + ##### Availability ##### AvailabilityTypeAV_NOW=Listedeki tüm ürünler hemen teslim edilecektir AvailabilityTypeAV_1W=Listedeki tüm ürünler 1 haftada teslim edilecektir AvailabilityTypeAV_2W=Listedeki tüm ürünler 2 haftada teslim edilecektir AvailabilityTypeAV_3W=Listedeki tüm ürünler 3 haftada teslim edilecektir AvailabilityTypeAV_1M=Listedeki tüm ürünler 4-6 haftada teslim edilecektir -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Teklif izleme temsilcisi TypeContact_propal_external_BILLING=Müşteri faturası ilgilisi TypeContact_propal_external_CUSTOMER=Müşteri teklif izleme ilgilisi TypeContact_propal_external_SHIPPING=Teslimat için müşteri iletişim kişisi + # Document models -DocModelAzurDescription=Eksiksiz bir teklif modeli (Cyan şablonunun eski uygulaması) -DocModelCyanDescription=Eksiksiz bir teklif modeli -DefaultModelPropalCreate=Varsayılan model oluşturma -DefaultModelPropalToBill=Bir teklifi kapatma sırasında varsayılan şablon (faturalanacak) -DefaultModelPropalClosed=Bir teklifi kapatma sırasında varsayılan şablon (faturalanmamış) -ProposalCustomerSignature=Kesin sipariş için Firma Kaşesi, Tarih ve İmza -ProposalsStatisticsSuppliers=Tedarikçi teklifi istatistikleri -CaseFollowedBy=Case followed by -SignedOnly=Sadece imzalı -NoSign=Set not signed -NoSigned=set not signed CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by ConfirmMassNoSignature=Bulk Not signed confirmation ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? -IsNotADraft=is not a draft -PassedInOpenStatus=has been validated -Sign=Sign -Signed=signed -ConfirmMassValidation=Bulk Validate confirmation ConfirmMassSignature=Bulk Signature confirmation -ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? -IdProposal=Teklif Kimlik Numarası +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Bu teklifi reddetmek istediğinizden emin misiniz? +ContractSigned=Contract signed +DefaultModelPropalClosed=Bir teklifi kapatma sırasında varsayılan şablon (faturalanmamış) +DefaultModelPropalCreate=Varsayılan model oluşturma +DefaultModelPropalToBill=Bir teklifi kapatma sırasında varsayılan şablon (faturalanacak) +DocModelAzurDescription=Eksiksiz bir teklif modeli (Cyan şablonunun eski uygulaması) +DocModelCyanDescription=Eksiksiz bir teklif modeli +FichinterSigned=Intervention signed IdProduct=Ürün Kimlik Numarası +IdProposal=Teklif Kimlik Numarası +IsNotADraft=is not a draft LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal +NoSign=Reddet +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted +ProposalCustomerSignature=Kesin sipariş için Firma Kaşesi, Tarih ve İmza +ProposalsStatisticsSuppliers=Tedarikçi teklifi istatistikleri RefusePropal=Teklifi reddet Sign=Sign -NoSign=Set not signed -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Bu teklifi reddetmek istediğinizden emin misiniz? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Sadece imzalı diff --git a/htdocs/langs/tr_TR/recruitment.lang b/htdocs/langs/tr_TR/recruitment.lang index be287da7fd9..842ec47f2ff 100644 --- a/htdocs/langs/tr_TR/recruitment.lang +++ b/htdocs/langs/tr_TR/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Maaş +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/tr_TR/salaries.lang b/htdocs/langs/tr_TR/salaries.lang index 7e43dccda8a..eb424207873 100644 --- a/htdocs/langs/tr_TR/salaries.lang +++ b/htdocs/langs/tr_TR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kullanıcı üçüncü tarafları için kullanılan muhasebe hesabı -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Ücret ödemeleri için varsayılan muhasebe hesabı CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Varsayılan olarak, maaş oluştururken "Otomatik olarak toplam ödeme oluştur" seçeneğini boş bırakın Salary=Maaş @@ -24,3 +24,4 @@ SalariesStatistics=Maaş istatistikleri SalariesAndPayments=Maaşlar ve ödemeler ConfirmDeleteSalaryPayment=Bu maaş ödemesini silmek istiyor musunuz? FillFieldFirst=Önce çalışan alanını doldurun +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang index d633833926d..8cccb817bb6 100644 --- a/htdocs/langs/tr_TR/stocks.lang +++ b/htdocs/langs/tr_TR/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Envanter tarihi Inventories=Envanterler NewInventory=Yeni envanter @@ -254,7 +254,7 @@ ReOpen=Yeniden aç ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Depo Kimlik Numarası WarehouseRef=Depo Referansı SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Başlat InventoryStartedShort=Başladı ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Ayarlar +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/tr_TR/ticket.lang b/htdocs/langs/tr_TR/ticket.lang index 1449a05f6cc..453a58dd926 100644 --- a/htdocs/langs/tr_TR/ticket.lang +++ b/htdocs/langs/tr_TR/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Destek bildirimlerini sil Permission56004=Destek bildirimlerini yönet Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Destek Bildirimleri TicketDictType=Destek Bildirimi - Türler TicketDictCategory=Destek Bildirimi - Gruplar TicketDictSeverity=Destek Bildirimi - Önemler @@ -90,8 +91,8 @@ TicketPublicAccess=Kimlik gerektirmeyen herkese açık bir arayüz şu url'de ad TicketSetupDictionaries=Destek bildirimi, önem ve analitik kodlarının türleri sözlüklerden yapılandırılabilir TicketParamModule=Modül değişken kurulumu TicketParamMail=E-posta kurulumu -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Bir destek bildirimi oluşturulduktan sonra metin mesajı gönderildi @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Burada belirtilen metin, ortak arayüzden yeni bir destek TicketParamPublicInterface=Genel arayüz kurulumu TicketsEmailMustExist=Destek bildirimi oluşturmak için geçerli bir e-posta adresi iste TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Genel arayüz TicketUrlPublicInterfaceLabelAdmin=Genel arayüz için alternatif URL TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Destek bildirimi şimdi atandı TicketChangeType=Türü değiştir TicketChangeCategory=Analitik kodu değiştir TicketChangeSeverity=Önem seviyesini değiştir -TicketAddMessage=Bir mesaj ekleyin -AddMessage=Bir mesaj ekle +TicketAddMessage=Add private message MessageSuccessfullyAdded=Destek bildirimi eklendi TicketMessageSuccessfullyAdded=Mesaj başarılı şekilde eklendi TicketMessagesList=Mesaj listesi @@ -202,8 +206,8 @@ TicketSeverity=Önem seviyesi ShowTicket=Destek bildirimini gör RelatedTickets=İlgili destek bildirimleri TicketAddIntervention=Müdahale oluştur -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Destek bildirimi kapatmayı onayla ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Mesajı e-posta ile gönder TicketNewMessage=Yeni mesaj ErrorMailRecipientIsEmptyForSendTicketMessage=Alıcı boş. E-posta gönderilmedi TicketGoIntoContactTab=Onları seçmek için lütfen "Kişiler" sekmesine gidin -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=İmza -TicketMessageMailSignatureHelp=Bu metin sadece e-postanın sonuna eklenir ve saklanmayacaktır. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Yanıt e-postasının imzası -TicketMessageMailSignatureHelpAdmin=Bu metin cevap mesajının sonuna eklenecektir. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Bu metin cevap mesajının sonuna eklenecektir. TicketMessageHelp=Destek bildirimi kartı üzerindeki mesaj listesinde sadece bu metin kaydedilecektir. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Destek bildirimi üzerinden %s konulu TicketAssignedToYou=Destek bildirimi atandı TicketAssignedEmailBody=#%s destek bildirimine %s tarafından atandınız MarkMessageAsPrivate=Mesajı özel olarak işaretle +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Bu mesaj harici kullanıcılara gösterilmeyecektir TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=İlk Mesaj @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Aşağıdaki bağlantıya tıklayarak de TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Lütfen doğrudan bu e-postayı yanıtlamayın! Arayüzde cevap vermek için bağlantıyı kullanın. TicketPublicInfoCreateTicket=Bu form yönetim sistemimizde bir destek bildirimi kaydetmenizi sağlar -TicketPublicPleaseBeAccuratelyDescribe=Lütfen sorunu açıklayıcı bir şekilde tanımlayın. Talebinizi tam olarak saptayabilmemiz için mümkün oldukça tüm bilgiyi girin. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Lütfen destek bildirimi takip numarasını girin TicketTrackId=Genel Takip Numarası OneOfTicketTrackId=Takip numaralarınızdan biri diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang index cb05fc38d3f..d298ce917bb 100644 --- a/htdocs/langs/tr_TR/users.lang +++ b/htdocs/langs/tr_TR/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Gruptan kaldır PasswordChangedAndSentTo=Parola değiştirildi ve %s e gönderildi. PasswordChangeRequest=%s için şifre değiştirme isteği PasswordChangeRequestSent=Parola değiştirildi ve %s e gönderildi. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Şifre sıfırlamayı onayla MenuUsersAndGroups=Kullanıcılar ve Gruplar @@ -68,7 +68,6 @@ CreateDolibarrLogin=Bir kullanıcı oluştur CreateDolibarrThirdParty=Bir üçüncü parti oluştur LoginAccountDisableInDolibarr=Dolibarr’da hesap engelli. UsePersonalValue=Kişisel değer kullanın -InternalUser=İç kullanıcı ExportDataset_user_1=Kullanıcılar ve özellikleri DomainUser=Etki alanı kullanıcısı %s Reactivate=Yeniden etkinleştir @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/tr_TR/workflow.lang b/htdocs/langs/tr_TR/workflow.lang index 7894abff367..333c51646f6 100644 --- a/htdocs/langs/tr_TR/workflow.lang +++ b/htdocs/langs/tr_TR/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Bir teklifin imzalanmasının ardından oto descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Bir teklifin imzalanmasına istinaden otomatik olarak bir müşteri faturası oluştur (yeni fatura teklifle aynı tutara sahip olacaktır) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Bir sözleşme doğrulandıktan sonra kendiliğinden bir müşteri faturası oluştur descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Bir müşteri siparişinin kapatılmasının ardından otomatik olarak müşteri faturası oluştur (yeni fatura sipariş ile aynı tutara sahip olacaktır) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Müşteri siparişi "faturalandı" olarak ayarlandığında (ve siparişin tutarı imzalanmış olan bağlantılı teklifin toplam tutarı ile aynı ise) bağlantılı kaynak teklifi de "faturalandı" olarak sınıflandır descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Müşteri faturası doğrulandığında (ve faturanın tutarı imzalanmış olan bağlantılı teklifin toplam tutarı ile aynı ise) bağlantılı kaynak teklifi "faturalandı" olarak sınıflandır @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Müşteri faturası doğruland descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Bir sevkiyat doğrulandığında (ve tüm sevkiyatlardan sonra sevk edilen miktar siparişteki miktar ile aynı ise) bağlantılı kaynak müşteri siparişini "sevk edildi" olarak sınıflandır descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Tedarikçi faturası doğrulandığında (ve faturanın tutarı bağlantılı teklifin toplam tutarı ile aynı ise) bağlantılı kaynak tedarikçi teklifini "faturalandı" olarak sınıflandır +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Tedarikçi faturası doğrulandığında (ve faturanın tutarı bağlantılı siparişin toplam tutarı ile aynı ise) bağlantılı kaynak tedarikçi siparişini "faturalandı" olarak sınıflandır -descWORKFLOW_BILL_ON_RECEPTION=Bağlantılı bir tedarikçi siparişi doğrulandığında alımları "faturalandırıldı" olarak sınıflandırın +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classify linked source purchase order as received when a reception is validated (and if the quantity received by all receptions is the same as in the purchase order to update) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classify linked source purchase order as received when a reception is closed (and if the quantity received by all rceptions is the same as in the purchase order to update) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Otomatik oluşturma AutomaticClassification=Otomatik sınıflandırma # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index ad867df1a85..d5411f8801e 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Країни, які не входять до ЄЕС CountriesInEECExceptMe=Країни ЄЕС, крім %s CountriesExceptMe=Усі країни, крім %s AccountantFiles=Експортувати вихідні документи -ExportAccountingSourceDocHelp=За допомогою цього інструмента ви можете експортувати вихідні події (список у CSV та PDF-файлах), які використовуються для створення вашого обліку. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Щоб експортувати свої журнали, використовуйте пункт меню %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Переглянути за обліковим записом VueBySubAccountAccounting=Перегляд за бухгалтерським субрахунком @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Основний обліковий запис MainAccountForUsersNotDefined=Основний обліковий запис для користувачів, не визначених під час налаштування MainAccountForVatPaymentNotDefined=Основний рахунок для сплати ПДВ не визначено в налаштуваннях MainAccountForSubscriptionPaymentNotDefined=Основний обліковий запис для оплати передплати не визначено в налаштуваннях +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Зона обліку AccountancyAreaDescIntro=Використання облікового модуля здійснюється в декілька кроків: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Вимкнути прямий запис транза ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Увімкнути експорт чернетки в журналі ACCOUNTANCY_COMBO_FOR_AUX=Увімкнути комбінований список для дочірнього облікового запису (може працювати повільно, якщо у вас багато третіх сторін, порушує можливість пошуку на частині вартості) ACCOUNTING_DATE_START_BINDING=Визначте дату початку зв’язування та перенесення в бухгалтерію. Нижче цієї дати операції не будуть передані до бухгалтерського обліку. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Під час перенесення бухгалтерського обліку виберіть відображення періоду за замовчуванням +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Має новий журнал +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Облік результатів (прибуток) ACCOUNTING_RESULT_LOSS=Облік результатів (збиток) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Журнал закриття -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Бухгалтерський рахунок перехідного банківського переказу +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Перехідний рахунок банківського переказу -ACCOUNTING_ACCOUNT_SUSPENSE=Бухгалтерський рахунок очікування -DONATION_ACCOUNTINGACCOUNT=Обліковий рахунок для реєстрації пожертв -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Обліковий запис для реєстрації підписок +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Обліковий рахунок за замовчуванням для реєстрації депозиту клієнта -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Обліковий рахунок за замовчуванням для купленої продукції (використовується, якщо не визначено в товарному аркуші) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Обліковий рахунок за замовчуванням для купленої продукції в ЄЕС (використовується, якщо не визначено в товарному аркуші) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Обліковий рахунок за замовчуванням для придбаної продукції та імпортованої за межі ЄЕС (використовується, якщо не визначено в товарному аркуші) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Обліковий рахунок за замовчуванням для проданої продукції (використовується, якщо не визначено в товарному аркуші) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Обліковий рахунок за замовчуванням для продуктів, що продаються в ЄЕС (використовується, якщо не визначено в товарному аркуші) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Обліковий рахунок за замовчуванням для продукції, що продається та експортується за межі ЄЕС (використовується, якщо не визначено в товарному аркуші) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Обліковий рахунок за замовчуванням для придбаних послуг (використовується, якщо не визначено в сервісному листі) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Обліковий рахунок за замовчуванням для придбаних послуг в ЄЕС (використовується, якщо не визначено в сервісному листі) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Обліковий рахунок за замовчуванням для придбаних послуг та імпортованих за межі ЄЕС (використовується, якщо не визначено в сервісному листі) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Обліковий рахунок за замовчуванням для проданих послуг (використовується, якщо не визначено в сервісному листі) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Обліковий запис за замовчуванням для послуг, що продаються в ЄЕС (використовується, якщо не визначено в сервісному листі) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Обліковий запис за замовчуванням для послуг, що продаються та експортуються за межі ЄЕС (використовується, якщо не визначено в сервісному аркуші) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -211,7 +217,7 @@ Codejournal=Journal JournalLabel=Етикетка журналу NumPiece=Номер штуки TransactionNumShort=Кількість транзакції -AccountingCategory=Спеціальна група +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Групувати за рахунками Головної книги GroupBySubAccountAccounting=Групувати за рахунками підкниги AccountingAccountGroupsDesc=Тут можна визначити кілька груп облікових рахунків. Вони будуть використовуватися для персоніфікованих бухгалтерських звітів. @@ -265,13 +271,13 @@ Reconcilable=Примирений TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Перегляньте тут список рядків рахунків-фактур клієнта, прив’язаних (або ні) до облікового запису продукту -DescVentilMore=У більшості випадків, якщо ви використовуєте попередньо визначені продукти чи послуги та встановите номер рахунку на картці продукту/послуги, програма зможе зробити всі прив’язки між вашими рядками рахунків-фактур та обліковим рахунком вашого плану рахунків лише в одним натисканням кнопки "%s" . Якщо обліковий запис не було встановлено на картках продуктів/послуг або якщо у вас все ще є рядки, не прив’язані до облікового запису, вам доведеться зробити прив’язку вручну з меню « %s «. -DescVentilDoneCustomer=Ознайомтеся зі списком рядків рахунків-фактур клієнтів та їх обліковим записом продукції -DescVentilTodoCustomer=Прив’язуйте рядки рахунків-фактур, які ще не зв’язані з обліковим записом продукту -ChangeAccount=Змініть обліковий запис обліку продуктів/послуг для вибраних рядків на такий обліковий запис: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Ознайомтеся зі списком рядків рахунків-фактур постачальника, прив’язаних або ще не прив’язаних до облікового запису продукту (відображаються лише записи, які ще не передані в бухгалтерії) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Ознайомтеся зі списком рядків рахунків-фактур постачальників та їх бухгалтерського обліку DescVentilTodoExpenseReport=Прив’язати рядки звіту про витрати, які ще не зв’язані з рахунком обліку комісій DescVentilExpenseReport=Ознайомтеся зі списком рядків звіту про витрати, прив’язаних (або ні) до рахунку обліку комісій @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Якщо ви налаштуєте рахунок б DescVentilDoneExpenseReport=Ознайомтеся з переліком рядків звітів про витрати та їх обліковим рахунком Closure=Щорічне закриття -DescClosure=Перегляньте тут кількість переміщень за місяць, які ще не підтверджені та заблоковані +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Огляд переміщень не підтверджених і заблокованих AllMovementsWereRecordedAsValidated=Усі рухи були зафіксовані як підтверджені та заблоковані NotAllMovementsCouldBeRecordedAsValidated=Не всі переміщення можна записати як підтверджені та заблоковані -ValidateMovements=Перевірити та заблокувати запис... +ValidateMovements=Validate and lock movements... DescValidateMovements=Будь-яка зміна чи видалення записів, написів та видалення буде заборонено. Усі записи для вправи мають бути підтверджені, інакше закриття буде неможливим ValidateHistory=Прив’язувати автоматично AutomaticBindingDone=Автоматичне прив’язування виконано (%s) – Автоматичне прив’язування неможливе для деяких записів (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Балансування FicheVentilation=Картка для прив'язки GeneralLedgerIsWritten=Операції записуються в Книгу GeneralLedgerSomeRecordWasNotRecorded=Деякі транзакції не вдалося зареєструвати. Якщо немає іншого повідомлення про помилку, це, ймовірно, тому, що вони вже були внесені в журнал. NoNewRecordSaved=Більше немає запису для передачі -ListOfProductsWithoutAccountingAccount=Список продуктів, не прив'язаних до жодного бухгалтерського рахунку +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Змінити прив'язку Accounted=Облік у книзі NotYetAccounted=На бухгалтерію ще не передано @@ -319,9 +325,10 @@ AccountingJournalType1=Різні операції AccountingJournalType2=Продажі AccountingJournalType3=Покупки AccountingJournalType4=банк -AccountingJournalType5=Звіт про витрати +AccountingJournalType5=Expense reports AccountingJournalType8=Інвентаризація AccountingJournalType9=Має-новий +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Цим журналом вже користуються AccountingAccountForSalesTaxAreDefinedInto=Примітка. Обліковий рахунок податку з продажів визначається в меню %s - %s a09f14fz NumberOfAccountancyEntries=Кількість записів @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Кількість рухів ACCOUNTING_DISABLE_BINDING_ON_SALES=Вимкнути прив'язку та переказ в бухгалтерії по продажам (рахунки клієнта в обліку не враховуватимуться) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Вимкнути прив'язку та переказ в обліку закупівель (рахунки постачальника не будуть враховуватися в обліку) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Вимкнути прив'язку та перенесення в бухгалтерії у звітах про витрати (звіти про витрати не враховуватимуться в бухгалтерії) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Позначте експортовані рядки як експортовані (щоб змінити рядок, вам потрібно буде видалити всю транзакцію та повторно перенести її в облік) -NotifiedValidationDate=Перевірте та заблокуйте експортовані записи (той самий ефект, що й функція «Закриття», зміна та видалення рядків ОБОВ’ЯЗКОВО неможливі) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Перевірка дати та блокування ConfirmExportFile=Підтвердження створення файлу експорту бухгалтерського обліку? ExportDraftJournal=Експортувати чернетку журналу @@ -398,7 +407,11 @@ Calculated=Розраховано Formula=Формула ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Не погоджуватись +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=Звірка не змінена AccountancyOneLetteringModifiedSuccessfully=Одне узгодження успішно змінено AccountancyLetteringModifiedSuccessfully=%s узгодженнь успішно змінено @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Одне неузгодження AccountancyUnletteringModifiedSuccessfully=%s неузгодженнь успішно змінено ## Confirm box -ConfirmMassUnlettering=Підтвердження масового неузгодження -ConfirmMassUnletteringQuestion=Ви впевнені, що хочете скасувати узгодження вибраних записів %s? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Підтвердження масового видалення ConfirmMassDeleteBookkeepingWritingQuestion=Це призведе до видалення транзакції з обліку (усі рядки, пов’язані з тією ж транзакцією, будуть видалені). Ви впевнені, що хочете видалити вибраний запис(и) %s? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=На AccountancyErrorMismatchLetterCode=Невідповідність коду узгодження AccountancyErrorMismatchBalanceAmount=Залишок (%s) не дорівнює 0 AccountancyErrorLetteringBookkeeping=Сталися помилки щодо транзакцій: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Бухгалтерські проводки @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Мультивалютний код (Idevise) DateExport=Експорт дати WarningReportNotReliable=Попередження, цей звіт не базується на Книзі, тому не містить транзакції, змінені вручну в Книзі. Якщо ваша журнальність оновлена, бухгалтерський облік буде точнішим. ExpenseReportJournal=Журнал звітів про витрати -InventoryJournal=Інвентарний журнал NAccounts=%s облікові записи diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index ed9c650e8b0..83d8a8232e9 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Співставлення клієнта WarningModuleNotActive=Модуль %s повинен бути активованим WarningOnlyPermissionOfActivatedModules=Тут відображаються лише дозволи, пов'язані з активованими модулями. Ви можете активувати інші модулі на сторінці Головна-> Налаштування-> Модулі. DolibarrSetup=Установка або оновлення Dolibarr -InternalUser=Внутрішній користувач -ExternalUser=Зовнішній користувач InternalUsers=Внутрішні користувачі ExternalUsers=Зовнішні користувачі UserInterface=Інтерфейс користувача @@ -109,7 +107,7 @@ NextValueForReplacements=Наступне значення (заміни) MustBeLowerThanPHPLimit=Примітка: ваша конфігурація PHP наразі обмежує максимальний розмір файлів для завантаження на %s %s, незалежно від значення цього параметра NoMaxSizeByPHPLimit=Примітка: у вашій конфігурації PHP не встановлено обмеження MaxSizeForUploadedFiles=Максимальний розмір для завантажених файлів (0 для заборони будь-яких завантажень) -UseCaptchaCode=Використовувати графічний код (CAPTCHA) на сторінці входу +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Повний шлях команди антивірусу AntiVirusCommandExample=Приклад для ClamAv Daemon (потрібен clamav-daemon): /usr/bin/clamdscan
    Приклад для ClamWin (дуже-дуже повільно): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Решта параметрів командного рядка @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS сервер (значення за замов MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Порт SMTP/SMTPS (Не визначено в PHP для Unix-подібних систем) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS сервер (Не визначено в PHP для Unix-подібних систем) MAIN_MAIL_EMAIL_FROM=Відправник електронної пошти для автоматичних електронних листів (значення за замовчуванням у php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Електронний лист, який використовується для повернення повідомлень про помилку (поле "Errors-To" в надісланих електронних листах) MAIN_MAIL_AUTOCOPY_TO= Копія (Bcc) усіх листів надсилати до MAIN_DISABLE_ALL_MAILS=Вимкнути надсилання всіх електронної пошти (для тестових цілей або демонстрацій) @@ -439,8 +438,10 @@ Unique=Унікальне Boolean=Булеве (один прапорець) ExtrafieldPhone = Телефон ExtrafieldPrice = іна +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Адреса URL +ExtrafieldIP = IP ExtrafieldSelect = Список вибору ExtrafieldSelectList = Вибір з таблиці ExtrafieldSeparator=Роздільник (не поле) @@ -477,7 +478,7 @@ InstalledInto=Встановлено в каталог %s BarcodeInitForThirdparties=Масова ініціалізація штрих-коду для третіх сторін BarcodeInitForProductsOrServices=Масове ініціювання або скидання штрих-коду для продуктів або послуг CurrentlyNWithoutBarCode=На даний момент у вас є запис %s на %s a0a65d071f6fc9z, визначений без barcode a0a65d071f6fc9z2. -InitEmptyBarCode=Ініціальне значення для наступних порожніх записів %s +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Стерти всі поточні значення штрих-коду ConfirmEraseAllCurrentBarCode=Ви впевнені, що хочете стерти всі поточні значення штрих-коду? AllBarcodeReset=Усі значення штрих-коду видалено @@ -501,10 +502,11 @@ WarningPHPMail=ПОПЕРЕДЖЕННЯ. Налаштування для над WarningPHPMailA=- Використання сервера постачальника послуг електронної пошти підвищує надійність вашої електронної пошти, тому збільшує доставку, не позначаючись як СПАМ WarningPHPMailB=- Деякі постачальники послуг електронної пошти (наприклад, Yahoo) не дозволяють надсилати електронні листи з іншого сервера, ніж їх власний сервер. Ваші поточні налаштування використовує сервер програми для надсилання електронної пошти, а не сервер вашого постачальника послуг електронної пошти, тому деякі одержувачі (сумісний з обмежувальним протоколом DMARC) запитуватимуть вашого постачальника електронної пошти, чи можуть вони прийняти вашу електронну пошту та деякі постачальники електронної пошти. (наприклад, Yahoo) може відповісти "ні", тому що сервер не належить їм, тому деякі з ваших надісланих електронних листів можуть не прийматися для доставки (також будьте обережні щодо квоти надсилання вашого постачальника послуг електронної пошти). WarningPHPMailC=- Використання SMTP-сервера вашого власного постачальника послуг електронної пошти для надсилання електронних листів також є цікавим, тому всі листи, надіслані з програми, також будуть збережені у вашому каталозі «Відправлені» вашої поштової скриньки. -WarningPHPMailD=Тому рекомендується змінити метод надсилання електронних листів на значення «SMTP». Якщо ви дійсно хочете зберегти метод «PHP» за замовчуванням для надсилання електронних листів, просто проігноруйте це попередження або видаліть його, встановивши для константи MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP значення 1 у розділі «Домашня сторінка» - «Налаштування» - «Інше». +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Якщо вашому постачальнику послуг електронної пошти SMTP потрібно обмежити клієнта електронної пошти деякими IP-адресами (дуже рідко), це IP-адреса поштового агента користувача (MUA) для вашої програми ERP CRM: %s . WarningPHPMailSPF=Якщо доменне ім’я у вашій адресі електронної пошти відправника захищене записом SPF (запитайте ваш реєстр доменних імен), ви повинні додати такі IP-адреси в SPF-запис DNS вашого домену: %s . -ActualMailSPFRecordFound=Знайдено фактичний запис SPF: %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Натисніть, щоб показати опис DependsOn=Цей модуль потребує модуля(ів) RequiredBy=Цей модуль необхідний для модуля(ів) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Приклад:
    Для форми дл PageUrlForDefaultValuesList=
    Приклад:
    Для сторінки, яка містить перелік третіх сторін, це %s .
    Для URL-адрес зовнішніх модулів, встановлених у користувацькому каталозі, не включайте "custom/", тому використовуйте шлях, наприклад mymodule/mypagelist.php , а не custom/mymodule/mypagelist.php.
    Якщо ви хочете значення за замовчуванням, лише якщо URL-адреса має якийсь параметр, ви можете використовувати %s AlsoDefaultValuesAreEffectiveForActionCreate=Також зауважте, що перезапис значень за замовчуванням для створення форми працює лише для сторінок, які були правильно розроблені (тому з параметром action=create або presen...) EnableDefaultValues=Увімкнути налаштування значень за замовчуванням -EnableOverwriteTranslation=Увімкнути використання перезаписаного перекладу +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Знайдено переклад для ключа з цим кодом. Щоб змінити це значення, ви повинні відредагувати його з Home-Setup-translation. WarningSettingSortOrder=Попередження, встановлення порядку сортування за замовчуванням може призвести до технічної помилки під час переходу на сторінку списку, якщо поле є невідомим полем. Якщо у вас виникла така помилка, поверніться на цю сторінку, щоб видалити порядок сортування за замовчуванням і відновити поведінку за замовчуванням. Field=Поле @@ -645,9 +647,9 @@ Module2400Name=Події/Порядок денний Module2400Desc=Відстежуйте події. Записуйте автоматичні події з метою відстеження або записуйте події чи зустрічі вручну. Це основний модуль для хорошого управління відносинами з клієнтами або постачальниками. Module2500Name=DMS / ECM Module2500Desc=Система документообігу / Управління електронним вмістом. Автоматична організація створених або збережених документів. Поділіться ними, коли вам потрібно. -Module2600Name=API/веб-служби (сервер SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Увімкніть SOAP-сервер Dolibarr, який надає послуги API -Module2610Name=API/веб-служби (сервер REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Увімкніть сервер Dolibarr REST, який надає послуги API Module2660Name=Виклик WebServices (клієнт SOAP) Module2660Desc=Увімкнути клієнт веб-сервісів Dolibarr (може використовуватися для надсилання даних/запитів на зовнішні сервери. Наразі підтримуються лише замовлення на покупку.) @@ -698,6 +700,7 @@ Module62000Name=Інкотермс Module62000Desc=Додайте функції для керування Інкотермс Module63000Name=Ресурси Module63000Desc=Керуйте ресурсами (принтерами, автомобілями, кімнатами, ...) для розподілу подій +Module94160Name=Receptions Permission11=Читайте рахунки-фактури клієнтів Permission12=Створення/змінювання рахунків-фактур клієнтів Permission13=Визнати недійсними рахунки клієнта @@ -714,6 +717,7 @@ Permission27=Видалити комерційні пропозиції Permission28=Експортні комерційні пропозиції Permission31=Читайте продукти Permission32=Створювати/змінювати продукти +Permission33=Read prices products Permission34=Видалити продукти Permission36=Переглядати/керувати прихованими продуктами Permission38=Експортна продукція @@ -739,6 +743,7 @@ Permission79=Створення/змінювання підписок Permission81=Читайте замовлення клієнтів Permission82=Створення/змінювання замовлень клієнтів Permission84=Перевіряйте замовлення клієнтів +Permission85=Generate the documents sales orders Permission86=Відправляти замовлення клієнтам Permission87=Закрити замовлення клієнтів Permission88=Скасувати замовлення клієнтів @@ -840,9 +845,9 @@ Permission286=Експортувати контакти Permission291=Читайте тарифи Permission292=Налаштувати дозволи на тарифи Permission293=Змінити тарифи клієнта -Permission300=Читайте штрих-коди -Permission301=Створення/змінювання штрих-кодів -Permission302=Видалити штрих-коди +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Читайте послуги Permission312=Призначити послугу/підписку на контракт Permission331=Прочитайте закладки @@ -874,6 +879,7 @@ Permission525=Доступ до кредитного калькулятора Permission527=Експортні кредити Permission531=Читайте послуги Permission532=Створювати/змінювати служби +Permission533=Read prices services Permission534=Видалити послуги Permission536=Переглядати/керувати прихованими службами Permission538=Експортні послуги @@ -968,13 +974,14 @@ Permission3301=Створення нових модулів Permission4001=Читайте навички/робота/посада Permission4002=Створити/змінити навички/роботу/позицію Permission4003=Видалити навички/роботу/позицію -Permission4020=Прочитайте оцінки -Permission4021=Створіть/змініть свою оцінку -Permission4022=Підтвердити оцінку -Permission4023=Видалити оцінку -Permission4030=Дивіться меню порівняння +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Прочитайте особисту інформацію Permission4032=Напишіть особисту інформацію +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Читайте вміст веб-сайту Permission10002=Створення/змінювання вмісту веб-сайту (вміст HTML і JavaScript) Permission10003=Створення/змінювання вмісту веб-сайту (динамічний php-код). Небезпечно, має бути зарезервовано для обмежених розробників. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Вид вибуття активів TypeOfUnit=Тип агрегату SetupSaved=Налаштування збережено SetupNotSaved=Налаштування не збережено +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Повернутися до списку модулів BackToDictionaryList=Повернутися до списку словників TypeOfRevenueStamp=Вид податкової марки @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Значення константи конфігурації ConstantIsOn=Увімкнено параметр %s NbOfDays=Кількість днів AtEndOfMonth=В кінці місяця -CurrentNext=Поточний/Наступний +CurrentNext=A given day in month Offset=Зміщення AlwaysActive=Завжди активний Upgrade=Оновлення @@ -1235,11 +1246,13 @@ BrowserName=Назва браузера BrowserOS=ОС браузера ListOfSecurityEvents=Список подій безпеки Dolibarr SecurityEventsPurged=Події безпеки очищені +TrackableSecurityEvents=Trackable security events LogEventDesc=Увімкнути ведення журналу для певних подій безпеки. Адміністратори ведуть журнал через меню %s - %s . Увага, ця функція може генерувати велику кількість даних у базі даних. AreaForAdminOnly=Параметри налаштування можуть встановлювати лише користувачі адміністратора . SystemInfoDesc=Системна інформація – це різна технічна інформація, яку ви отримуєте в режимі лише для читання та видиму лише для адміністраторів. SystemAreaForAdminOnly=Ця область доступна лише користувачам-адміністраторам. Дозволи користувача Dolibarr не можуть змінити це обмеження. CompanyFundationDesc=Відредагуйте інформацію про свою компанію/організацію. Після завершення натисніть кнопку «%s» внизу сторінки. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Якщо у вас є зовнішній бухгалтер/бухгалтер, ви можете змінити тут його інформацію. AccountantFileNumber=Код бухгалтера DisplayDesc=Тут можна змінити параметри, що впливають на зовнішній вигляд та презентацію програми. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Ви повинні запус YourPHPDoesNotHaveSSLSupport=Функції SSL недоступні у вашому PHP DownloadMoreSkins=Більше скінів для завантаження SimpleNumRefModelDesc=Повертає контрольний номер у форматі %syymm-nnnn, де yy – рік, mm – місяць, а nnnn – послідовне число, що автоматично збільшується без скидання. +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Повертає контрольний номер у форматі %s-nnnn, де nnnn – послідовне число, що автоматично збільшується без скидання ShowProfIdInAddress=Показати професійне посвідчення з адресами ShowVATIntaInAddress=Приховати номер ПДВ у межах Співтовариства @@ -1376,7 +1391,7 @@ GetBarCode=Отримати штрих-код NumberingModules=Нумерація моделей DocumentModules=Моделі документів ##### Module password generation -PasswordGenerationStandard=Повернути пароль, згенерований відповідно до внутрішнього алгоритму Долібарра: %s символи, що містять спільні цифри та символи в нижньому регістрі. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Не пропонуйте згенерований пароль. Пароль необхідно вводити вручну. PasswordGenerationPerso=Поверніть пароль відповідно до вашої особисто визначеної конфігурації. SetupPerso=Відповідно до вашої конфігурації @@ -1430,6 +1445,10 @@ SuppliersPayment=Платежі постачальників SupplierPaymentSetup=Налаштування оплати постачальником InvoiceCheckPosteriorDate=Перевірте дату виготовлення перед підтвердженням InvoiceCheckPosteriorDateHelp=Перевірка рахунка-фактури буде заборонена, якщо його дата передує даті останнього рахунка-фактури такого ж типу. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Налаштування модуля комерційних пропозицій ProposalsNumberingModules=Моделі нумерації комерційних пропозицій @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Водяний знак на проектах ко ##### Members ##### MembersSetup=Налаштування модуля Members MemberMainOptions=Основні варіанти +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Керуйте логіном для кожного члена AdherentMailRequired=Для створення нового учасника потрібна електронна адреса MemberSendInformationByMailByDefault=Прапорець для надсилання підтвердження поштою учасникам (перевірка або нова підписка) увімкнено за замовчуванням MemberCreateAnExternalUserForSubscriptionValidated=Створіть зовнішній логін користувача для кожної підтвердженої підписки нового члена -VisitorCanChooseItsPaymentMode=Відвідувач може вибрати один із доступних способів оплати +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Увімкнути автоматичне нагадування електронною поштою про термін дії підписок. Примітка. Модуль %s має бути увімкнений та правильно налаштований для надсилання нагадувань. MembersDocModules=Шаблони документів для документів, створених із запису члена ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Активувати розширений редактор д FCKeditorForNotePublic=Створення/видання WYSIWIG поля «публічні примітки» елементів FCKeditorForNotePrivate=Створення/видання WYSIWIG поля «приватні примітки» елементів FCKeditorForCompany=Створення/видання WYSIWIG опису поля елементів (крім продуктів/послуг) -FCKeditorForProduct=Створення/видання WYSIWIG опису поля продуктів/послуг -FCKeditorForProductDetails=Створення/видання WYSIWIG рядків деталей продуктів для всіх сутностей (пропозиції, замовлення, рахунки-фактури тощо...). Попередження: використання цієї опції в цьому випадку серйозно не рекомендується, оскільки це може створити проблеми зі спеціальними символами та форматуванням сторінки під час створення PDF-файлів. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Створення/видання WYSIWIG для масових розсилок електронною поштою (Інструменти->Електронна розсилка) FCKeditorForUserSignature=Створення/видання підпису користувача WYSIWIG FCKeditorForMail=Створення/видання WYSIWIG для всієї пошти (крім Інструменти->Електронна розсилка) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Обробник меню, де відображати нов DetailMenuModule=Ім’я модуля, якщо вхід в меню надходить із модуля DetailType=Тип меню (верхнє або ліворуч) DetailTitre=Мітка меню або код етикетки для перекладу -DetailUrl=URL-адреса, куди вам надсилає меню (Посилання на абсолютну URL-адресу або зовнішнє посилання з http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Умова для показу чи не входу DetailRight=Умова для відображення несанкціонованих сірих меню DetailLangs=Назва файлу мови для перекладу коду етикетки @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Зменшення запасів у CashDeskYouDidNotDisableStockDecease=Ви не вимкнули зменшення запасів під час продажу з точки продажу. Тому потрібен склад. CashDeskForceDecreaseStockLabel=Зменшення запасів партійної продукції було вимушеним. CashDeskForceDecreaseStockDesc=Зменшіть спочатку на найстаріші дати споживання та продажу. -CashDeskReaderKeyCodeForEnter=Код ключа для "Enter", визначений у зчитувачі штрих-кодів (Приклад: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Налаштування модуля закладки BookmarkDesc=Цей модуль дозволяє керувати закладками. Ви також можете додати ярлики до будь-яких сторінок Dolibarr або зовнішніх веб-сайтів у лівому меню. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Моделі нумерації рахунків- IfSetToYesDontForgetPermission=Якщо встановлено значення, відмінне від null, не забудьте надати дозволи групам або користувачам, яким дозволено друге схвалення ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Налаштування модуля GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Шлях до файлу, що містить переклад Maxmind ip у країну.
    Приклади:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat a0342fccfda/Geoip. +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Зауважте, що ваш файл із даними IP-адреси для країни повинен знаходитися в каталозі, який може прочитати ваш PHP (перевірте налаштування PHP open_basedir і дозволи файлової системи). YouCanDownloadFreeDatFileTo=Ви можете завантажити безкоштовну демонстраційну версію файлу країни Maxmind GeoIP за адресою %s. YouCanDownloadAdvancedDatFileTo=Ви також можете завантажити більш повну версію з оновленнями, файлу країни Maxmind GeoIP за адресою %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Майстер для створення файлу дампа BackupZipWizard=Майстер для створення архіву документів каталогу SomethingMakeInstallFromWebNotPossible=Установка зовнішнього модуля з веб-інтерфейсу неможлива з наступних причин: SomethingMakeInstallFromWebNotPossible2=З цієї причини описаний тут процес оновлення є ручним процесом, який може виконувати лише привілейований користувач. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Встановлення зовнішнього модуля з програми було вимкнено вашим адміністратором. Ви повинні попросити його видалити файл %s , щоб дозволити цю функцію. ConfFileMustContainCustom=Для встановлення або створення зовнішнього модуля з програми необхідно зберегти файли модуля в каталозі %s . Щоб цей каталог обробив Dolibarr, ви повинні налаштувати ваш conf/conf.php , щоб додати 2 рядки директиви:
    a0e7843947c06brl'/mainro_doli_bz0';

    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Підсвічуйте рядки таблиці, коли курсор миші проходить @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Натисніть CTRL+F5 на клавіатурі а NotSupportedByAllThemes=Will працює з основними темами, може не підтримуватися зовнішніми темами BackgroundColor=Колір фону TopMenuBackgroundColor=Колір фону для верхнього меню -TopMenuDisableImages=Приховати зображення в верхньому меню +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Колір фону для лівого меню BackgroundTableTitleColor=Колір фону для рядка заголовка таблиці BackgroundTableTitleTextColor=Колір тексту рядка заголовка таблиці @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Замовлення на закупівлю MailToSendSupplierInvoice=Рахунки постачальників MailToSendContract=Контракти MailToSendReception=Прийоми +MailToExpenseReport=Expense reports MailToThirdparty=Треті особи MailToMember=Члени MailToUser=Користувачі @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Праве поле в PDF MAIN_PDF_MARGIN_TOP=Верхнє поле в PDF MAIN_PDF_MARGIN_BOTTOM=Нижнє поле в PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Висота логотипу в PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Додайте стовпець для зображення в рядках пропозиції MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Ширина стовпця, якщо зображення додано по рядках MAIN_PDF_NO_SENDER_FRAME=Приховати межі в рамці адреси відправника @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Видалити спеціальні символи COMPANY_AQUARIUM_CLEAN_REGEX=Фільтр регулярних виразів для очищення значення (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Фільтр регулярних виразів для очищення значення (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Копіювання заборонено +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Офіцер із захисту даних (DPO, конфіденційність даних або GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Текст довідки для відображення у підказці @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Примітка. Для параметра використан SwapSenderAndRecipientOnPDF=Поміняйте місцями адреси відправника та одержувача в PDF-документах FeatureSupportedOnTextFieldsOnly=Попередження, функція підтримується лише в текстових полях і комбінованих списках. Також потрібно встановити параметр URL-адреси action=create або action=edit, АБО назва сторінки має закінчуватися на "new.php", щоб активувати цю функцію. EmailCollector=Збірник електронної пошти +EmailCollectors=Email collectors EmailCollectorDescription=Додайте заплановану роботу та сторінку налаштування, щоб регулярно сканувати скриньки електронної пошти (за допомогою протоколу IMAP) і записувати електронні листи, отримані у вашу програму, у потрібному місці та/або створювати деякі записи автоматично (наприклад, потенційні клієнти). NewEmailCollector=Новий збірник електронної пошти EMailHost=Хост сервера електронної пошти IMAP +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Джерельний каталог поштової скриньки MailboxTargetDirectory=Цільовий каталог поштової скриньки EmailcollectorOperations=Операції, які виконує колектор EmailcollectorOperationsDesc=Операції виконуються зверху вниз MaxEmailCollectPerCollect=Максимальна кількість електронних листів, зібраних за один збір +TestCollectNow=Test collect CollectNow=Зберіть зараз ConfirmCloneEmailCollector=Ви впевнені, що хочете клонувати збірник електронної пошти %s? DateLastCollectResult=Дата останньої спроби збору DateLastcollectResultOk=Дата останнього успіху збирання LastResult=Останній результат EmailCollectorHideMailHeaders=Не включайте вміст заголовка електронної пошти до збереженого вмісту зібраних електронних листів -EmailCollectorHideMailHeadersHelp=Якщо ввімкнено, заголовки електронних листів не додаються в кінці вмісту електронної пошти, який зберігається як події. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Отримати підтвердження електронною поштою EmailCollectorConfirmCollect=Ви хочете запустити цей колектор зараз? EmailCollectorExampleToCollectTicketRequestsDesc=Збирайте електронні листи, які відповідають деяким правилам, і автоматично створюйте квиток (модульний квиток має бути ввімкнено) з інформацією електронної пошти. Ви можете використовувати цей збірник, якщо надасте певну підтримку електронною поштою, тож ваш запит на квиток буде згенеровано автоматично. Активуйте також Collect_Responses, щоб збирати відповіді вашого клієнта безпосередньо на перегляді квитка (ви повинні відповісти від Dolibarr). EmailCollectorExampleToCollectTicketRequests=Приклад отримання запиту на квиток (лише перше повідомлення) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Скануйте каталог «Відправлені» своєї поштової скриньки, щоб знайти електронні листи, надіслані як відповідь на іншу електронну пошту, безпосередньо з вашого програмного забезпечення електронної пошти, а не з Dolibarr. Якщо такий електронний лист знайдено, подія відповіді записується в Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Приклад збору відповідей електронною поштою, надісланих із зовнішнього програмного забезпечення електронної пошти -EmailCollectorExampleToCollectDolibarrAnswersDesc=Зберіть усі листи, які є відповіддю на лист, надісланий з вашої програми. Подія (Порядок денний модуля має бути ввімкнено) з відповіддю електронною поштою буде записано в хорошому місці. Наприклад, якщо ви надсилаєте комерційну пропозицію, замовлення, рахунок-фактуру або повідомлення для квитка електронною поштою з програми, і ваш клієнт відповідає на вашу електронну пошту, система автоматично зловить відповідь і додасть її до вашої ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Приклад збору всіх вхідних повідомлень, які є відповідями на повідомлення, надіслані з Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Збирайте електронні листи, які відповідають деяким правилам, і автоматично створюйте потенційного клієнта (модульний проект має бути ввімкнено) з інформацією електронної пошти. Ви можете використовувати цей збірник, якщо хочете слідкувати за вашими прикладами за допомогою модуля Проект (1 лідик = 1 проект), тож ваші потенційні клієнти будуть автоматично створені. Якщо також увімкнено збірник Collect_Responses, коли ви надсилаєте електронний лист від ваших потенційних клієнтів, пропозицій чи будь-якого іншого об’єкта, ви також можете бачити відповіді своїх клієнтів або партнерів безпосередньо в програмі.
    Примітка. У цьому початковому прикладі генерується назва потенційного клієнта, включаючи електронну пошту. Якщо третю сторону неможливо знайти в базі даних (новий клієнт), потенційний клієнт буде приєднано до третьої сторони з ідентифікатором 1. EmailCollectorExampleToCollectLeads=Приклад збору потенційних клієнтів @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Збирайте електр EmailCollectorExampleToCollectJobCandidatures=Приклад збору кандидатур на роботу, отриманих на електронну пошту NoNewEmailToProcess=Немає нових електронних листів (відповідних фільтрів) для обробки NothingProcessed=Нічого не зроблено -XEmailsDoneYActionsDone=%s електронні листи кваліфіковані, %s електронні листи успішно оброблено (для %s запису/зроблених дій) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Записати подію в порядку денному (з типом Email надіслано або отримано) CreateLeadAndThirdParty=Створіть потенційного клієнта (і третю сторону, якщо необхідно) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Створити заявку на роботу FormatZip=Застібка на блискавці MainMenuCode=Код входу в меню (головне меню) ECMAutoTree=Показати автоматичне дерево ECM -OperationParamDesc=Визначте правила для вилучення або встановлення значень.
    Приклад операцій, які потребують вилучення імені з теми електронного листа:
    name=EXTRACT:SUBJECT:Повідомлення від компанії ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY name is\\sy( [^\\s]*)

    Використовуйте ; char як роздільник для вилучення або встановлення кількох властивостей. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Години роботи OpeningHoursDesc=Введіть тут звичайні години роботи вашої компанії. ResourceSetup=Конфігурація модуля ресурсів @@ -2167,6 +2200,10 @@ EmailTemplate=Шаблон для електронної пошти EMailsWillHaveMessageID=Електронні листи матимуть тег "Посилання", що відповідає цьому синтаксису PDF_SHOW_PROJECT=Показати проект на документі ShowProjectLabel=Етикетка проекту +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Якщо ви хочете, щоб деякі тексти у вашому PDF-файлі були продубльовані двома різними мовами в одному згенерованому PDF-файлі, ви повинні встановити тут цю другу мову, щоб згенерований PDF-файл містив 2 різні мови на одній сторінці, одну, вибрану під час створення PDF-файлу, і цю ( лише кілька шаблонів PDF підтримують це). Залиште порожнім для 1 мови для PDF. PDF_USE_A=Створюйте PDF-документи у форматі PDF/A замість формату PDF за умовчанням FafaIconSocialNetworksDesc=Введіть тут код значка FontAwesome. Якщо ви не знаєте, що таке FontAwesome, ви можете використовувати загальне значення fa-address-book. @@ -2195,12 +2232,12 @@ MailToPartnership=Партнерство AGENDA_EVENT_DEFAULT_STATUS=Статус події за замовчуванням під час створення події з форми YouShouldDisablePHPFunctions=Вам слід вимкнути функції PHP IfCLINotRequiredYouShouldDisablePHPFunctions=За винятком випадків, коли вам потрібно запускати системні команди в спеціальному коді, ви повинні вимкнути функції PHP -PHPFunctionsRequiredForCLI=Для цілей оболонки (наприклад, запланованого резервного копіювання завдань або запуску програми anitivurs) ви повинні зберегти функції PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=У вашому кореневому каталозі не знайдено жодних записуваних файлів або каталогів звичайних програм (Добре) RecommendedValueIs=Рекомендовано: %s Recommended=Рекомендована NotRecommended=Не рекомендовано -ARestrictedPath=Якийсь обмежений шлях +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Перевірте наявність оновлень зовнішніх модулів CheckForModuleUpdateHelp=Ця дія підключить редактори зовнішніх модулів, щоб перевірити, чи доступна нова версія. ModuleUpdateAvailable=Доступне оновлення @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Не знайдено оновлень для зов SwaggerDescriptionFile=Файл опису API Swagger (наприклад, для використання з redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Ви ввімкнули застарілий WS API. Натомість слід використовувати REST API. RandomlySelectedIfSeveral=Вибирається випадковим чином, якщо доступно кілька зображень +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Пароль бази даних заплутаний у файлі conf DatabasePasswordNotObfuscated=Пароль бази даних НЕ обфускується у файлі conf APIsAreNotEnabled=Модулі API не ввімкнені @@ -2247,14 +2285,22 @@ LateWarningAfter=«Пізнє» попередження після TemplateforBusinessCards=Шаблон для візитки різного розміру InventorySetup= Налаштування інвентарю ExportUseLowMemoryMode=Використовуйте режим малої пам’яті -ExportUseLowMemoryModeHelp=Використовуйте режим малої пам’яті для виконання дампу (стиснення виконується через канал, а не в пам’ять PHP). Цей метод не дозволяє перевірити, що файл заповнений, і повідомлення про помилку не можна повідомити, якщо він не вдається. -ShowQuickAddLink=Показати кнопку, щоб швидко додати елемент у верхньому правому меню +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Налаштування +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Хеш, що використовується для пінгу ReadOnlyMode=Є екземпляром у режимі «Тільки для читання». DEBUGBAR_USE_LOG_FILE=Використовуйте файл dolibarr.log для захоплення журналів UsingLogFileShowAllRecordOfSubrequestButIsSlower=Використовуйте файл dolibarr.log для захоплення журналів замість перехоплення оперативної пам’яті. Це дозволяє ловити всі журнали, а не лише журнал поточного процесу (тому включаючи один із сторінок підзапитів ajax), але зробить ваш екземпляр дуже дуже повільним. Не рекомендовано. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/uk_UA/categories.lang b/htdocs/langs/uk_UA/categories.lang index 4cd58826ade..939f608cc56 100644 --- a/htdocs/langs/uk_UA/categories.lang +++ b/htdocs/langs/uk_UA/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Цього учасника немає в жодних те ContactHasNoCategory=Цей контакт немає в жодних тегах/категоріях ProjectHasNoCategory=Цього проекту немає в жодних тегах/категоріях ClassifyInCategory=Додати до тегу/категорії +RemoveCategory=Remove category NotCategorized=Без тегу/категорії CategoryExistsAtSameLevel=Ця категорія вже існує з цим посиланням ContentsVisibleByAllShort=Вміст видимий усім @@ -67,6 +68,7 @@ StockCategoriesShort=Складські теги/категорії ThisCategoryHasNoItems=Ця категорія не містить жодних елементів. CategId=Ідентифікатор тегу/категорії ParentCategory=Батьківський тег/категорія +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Мітка батьківського тега/категорії CatSupList=Список тегів/категорій постачальників CatCusList=Список тегів/категорій клієнтів/потенційних клієнтів @@ -86,7 +88,7 @@ DeleteFromCat=Видалити з тегів/категорій ExtraFieldsCategories=Додаткові атрибути CategoriesSetup=Налаштування тегів/категорій CategorieRecursiv=Посилання з батьківським тегом/категорією автоматично -CategorieRecursivHelp=Якщо цей параметр увімкнено, коли ви додаєте продукт до підкатегорії, продукт також буде додано до батьківської категорії. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Додайте наступний продукт/послугу AddCustomerIntoCategory=Призначте категорію клієнту AddSupplierIntoCategory=Призначте категорію постачальнику @@ -95,7 +97,9 @@ ShowCategory=Показати тег/категорію ByDefaultInList=За замовчуванням у списку ChooseCategory=Виберіть категорію StocksCategoriesArea=Складські категорії +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Категорії подій WebsitePagesCategoriesArea=Категорії контейнерів сторінки KnowledgemanagementsCategoriesArea=Категорії статті КМ UseOrOperatorForCategories=Використовуйте оператор «АБО» для категорій +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/uk_UA/commercial.lang b/htdocs/langs/uk_UA/commercial.lang index dfb601dd0e3..e503110d214 100644 --- a/htdocs/langs/uk_UA/commercial.lang +++ b/htdocs/langs/uk_UA/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Перспективний статус DraftPropals=Проект комерційних пропозицій NoLimit=Немає межі ToOfferALinkForOnlineSignature=Посилання для онлайн підпису -WelcomeOnOnlineSignaturePage=Ласкаво просимо на сторінку, щоб прийняти комерційні пропозиції від %s -ThisScreenAllowsYouToSignDocFrom=На цьому екрані ви можете прийняти та підписати або відмовитися від пропозиції/комерційної пропозиції -ThisIsInformationOnDocumentToSign=Це інформація про документ, який потрібно прийняти або відмовити +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Підпис пропозиції/комерційної пропозиції %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Функція онлайнового підпису вимкнена або документ створений до ввімкнення функції diff --git a/htdocs/langs/uk_UA/companies.lang b/htdocs/langs/uk_UA/companies.lang index 10caee4a9f6..ebfedcbc54d 100644 --- a/htdocs/langs/uk_UA/companies.lang +++ b/htdocs/langs/uk_UA/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Характер контрагента NatureOfContact=Характер контакту Address=Адреса State=Штат/провінція/область +StateId=State ID StateCode=Код штату StateShort=Штат/область Region=Регіон Region-State=Регіон - держава Country=Країна CountryCode=Код країни -CountryId=id країни +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=id. проф. 1 (Торговий реєстр) ProfId2CM=id. проф. 2 (№ платника податків) -ProfId3CM=id. проф. 3 (Декрет про створення) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Торговий реєстр ProfId2ShortCM=№ платника податків -ProfId3ShortCM=Указ про створення -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Ідентифікатор професора 1 (R.U.T.) @@ -443,7 +444,7 @@ AddAddress=Додайте адресу SupplierCategory=Категорія продавця JuridicalStatus200=Незалежний DeleteFile=Видалити файл -ConfirmDeleteFile=Ви впевнені, що хочете видалити цей файл? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Призначено торговому представнику Organization=Організація FiscalYearInformation=Фіскальний рік diff --git a/htdocs/langs/uk_UA/compta.lang b/htdocs/langs/uk_UA/compta.lang index b8b2574e28b..5c087346bf6 100644 --- a/htdocs/langs/uk_UA/compta.lang +++ b/htdocs/langs/uk_UA/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Баланс (раніше) Balance=Баланс Debit=Дебет Credit=Кредит +AccountingDebit=Debit +AccountingCredit=Credit Piece=Бухгалтерський док. AmountHTVATRealReceived=Чисто зібрано AmountHTVATRealPaid=Чиста оплата @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Звіт про товаро TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Звіт про оборот, зібраний за ставкою податку з продажу, недоступний. Цей звіт доступний лише для оборотів, за які виставляється рахунок. CalculationMode=Режим розрахунку AccountancyJournal=Журнал облікових кодів -ACCOUNTING_VAT_SOLD_ACCOUNT=Обліковий запис за замовчуванням для ПДВ на продажі (використовується, якщо не визначено під час налаштування словника ПДВ) -ACCOUNTING_VAT_BUY_ACCOUNT=Обліковий запис за замовчуванням для ПДВ на покупки (використовується, якщо не визначено під час налаштування словника ПДВ) -ACCOUNTING_VAT_PAY_ACCOUNT=Бухгалтерський рахунок за замовчуванням для сплати ПДВ -ACCOUNTING_ACCOUNT_CUSTOMER=Обліковий запис, який використовується для третіх осіб клієнта +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Спеціальний обліковий рахунок, визначений на картці третьої сторони, використовуватиметься лише для обліку Subledger. Це значення буде використовуватися для Головної книги та як значення за замовчуванням для обліку Підкниги, якщо спеціальний обліковий запис клієнта у третьої сторони не визначено. -ACCOUNTING_ACCOUNT_SUPPLIER=Обліковий запис, що використовується для третіх сторін постачальника +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Спеціальний обліковий рахунок, визначений на картці третьої сторони, використовуватиметься лише для обліку Subledger. Це значення буде використовуватися для Головної книги та як значення за замовчуванням для обліку підкниги, якщо виділений обліковий запис постачальника на третьої сторони не визначено. ConfirmCloneTax=Підтвердьте клон соціального/фіскального податку ConfirmCloneVAT=Підтвердьте клон декларації з ПДВ @@ -300,3 +302,4 @@ InvoiceToPay15Days=Для оплати (15-30 днів) InvoiceToPay30Days=Для оплати (> 30 днів) ConfirmPreselectAccount=Попередньо виберіть бухгалтерський код ConfirmPreselectAccountQuestion=Ви впевнені, що бажаєте попередньо вибрати %s вибрані рядки з цим обліковим кодом? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/uk_UA/contracts.lang b/htdocs/langs/uk_UA/contracts.lang index 5bbde0c16e3..4e84be290ec 100644 --- a/htdocs/langs/uk_UA/contracts.lang +++ b/htdocs/langs/uk_UA/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Ви впевнені, що хочете видали MoveToAnotherContract=Перенесіть послугу в інший контракт. ConfirmMoveToAnotherContract=Я вибрав новий цільовий контракт і підтверджую, що хочу перемістити цю послугу в цей контракт. ConfirmMoveToAnotherContractQuestion=Виберіть, у якому існуючому контракті (одної третьої сторони) ви хочете перемістити цю послугу? -PaymentRenewContractId=Поновити рядок контракту (номер %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Термін придатності NoExpiredServices=Немає прострочених активних послуг ListOfServicesToExpireWithDuration=Термін дії списку служб закінчується через %s днів diff --git a/htdocs/langs/uk_UA/cron.lang b/htdocs/langs/uk_UA/cron.lang index 0aba7c27928..143fb8dcfc1 100644 --- a/htdocs/langs/uk_UA/cron.lang +++ b/htdocs/langs/uk_UA/cron.lang @@ -26,7 +26,7 @@ CronCommand=Команда CronList=Заплановані роботи CronDelete=Видалити заплановані завдання CronConfirmDelete=Ви впевнені, що хочете видалити ці заплановані завдання? -CronExecute=Запустити заплановану роботу +CronExecute=Launch now CronConfirmExecute=Ви впевнені, що хочете виконати ці заплановані завдання зараз? CronInfo=Модуль запланованих завдань дозволяє планувати завдання для їх автоматичного виконання. Роботи також можна запускати вручну. CronTask=Робота @@ -58,7 +58,7 @@ CronNote=Коментар CronFieldMandatory=Поля %s є обов’язковими для заповнення CronErrEndDateStartDt=Дата завершення не може передувати даті початку StatusAtInstall=Статус при установці модуля -CronStatusActiveBtn=Розклад +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Вимкнути CronTaskInactive=Це завдання вимкнено (не заплановано) CronId=id @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Резервне копіювання локальн MakeLocalDatabaseDump=Створіть локальний дамп бази даних. Параметри: стиснення ('gz' або 'bz' або 'none'), тип резервної копії ('mysql', 'pgsql', 'auto'), 1, 'auto' або ім'я файлу для створення, кількість файлів резервної копії для збереження MakeSendLocalDatabaseDumpShort=Надіслати резервну копію локальної бази даних MakeSendLocalDatabaseDump=Надсилайте резервну копію локальної бази даних електронною поштою. Параметри: до, від, тема, повідомлення, ім'я файлу (ім'я надісланого файлу), фільтр ("sql" лише для резервної копії бази даних) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Увага, з метою продуктивності, незалежно від наступної дати виконання ввімкнених завдань, ваші завдання можуть бути відкладені максимум на %s годин перед запуском. DATAPOLICYJob=Засіб очищення та анонімізації даних JobXMustBeEnabled=Завдання %s має бути увімкнено +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Остання виконана запланована робота NextScheduledJobExecute=Наступне заплановано завдання для виконання NumberScheduledJobError=Кількість запланованих завдань з помилкою +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/uk_UA/datapolicy.lang b/htdocs/langs/uk_UA/datapolicy.lang new file mode 100644 index 00000000000..c4570d1e9c9 --- /dev/null +++ b/htdocs/langs/uk_UA/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Покупець +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Покупець +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/uk_UA/ecm.lang b/htdocs/langs/uk_UA/ecm.lang index b040af92133..9ec18f6c77a 100644 --- a/htdocs/langs/uk_UA/ecm.lang +++ b/htdocs/langs/uk_UA/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ручний каталог ECMSectionAuto=Автоматичний довідник ECMSectionsManual=Ручне дерево ECMSectionsAuto=Автоматичне дерево +ECMSectionsMedias=Medias tree ECMSections=Довідники ECMRoot=Корінь ECM ECMNewSection=Новий каталог @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Кількість файлів у підкаталогах ECMCreationUser=Творець ECMArea=Зона DMS/ECM ECMAreaDesc=Область DMS/ECM (Система керування документами / електронне керування вмістом) дозволяє зберігати, обмінюватися та швидко шукати всі види документів у Dolibarr. -ECMAreaDesc2=* Автоматичні довідники заповнюються автоматично при додаванні документів з картки елемента.
    * Каталоги вручну можна використовувати для збереження документів, не пов'язаних з певним елементом. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Каталог %s видалено. ECMSectionWasCreated=Створено каталог %s . ECMSearchByKeywords=Пошук за ключовими словами diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang index 1f310d658aa..1cd4633d865 100644 --- a/htdocs/langs/uk_UA/errors.lang +++ b/htdocs/langs/uk_UA/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Вхід %s вже існує. ErrorGroupAlreadyExists=Група %s вже існує. ErrorEmailAlreadyExists=Електронна адреса %s вже існує. ErrorRecordNotFound=Запис не знайдено. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Не вдалося скопіювати файл ' %s ' в ' %s a09a4b73. ErrorFailToCopyDir=Не вдалося скопіювати каталог ' %s ' в ' %s a09a17f7. ErrorFailToRenameFile=Не вдалося перейменувати файл ' %s ' в ' %s a09a17f7. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Файл зображення не підтримує фор ErrorBadDateFormat=Значення '%s' має неправильний формат дати ErrorWrongDate=Дата не правильна! ErrorFailedToWriteInDir=Не вдалося записати в каталог %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Знайдено неправильний синтаксис електронної пошти для рядків %s у файлі (приклад рядка %s з email=%s) ErrorUserCannotBeDelete=Користувача не можна видалити. Можливо, це пов’язано з сутностями Dolibarr. ErrorFieldsRequired=Деякі обов’язкові поля залишено порожніми. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Будь ласка, заповніть значен ErrorNoValueForRadioType=Будь ласка, заповніть значення для списку радіо ErrorBadFormatValueList=Значення списку не може містити більше однієї коми: %s , але потрібно принаймні одне: ключ, значення ErrorFieldCanNotContainSpecialCharacters=Поле %s не повинно містити спеціальних символів. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Поле %s не повинно містити ні спеціальних символів, ні символів верхнього регістру та не може містити лише цифри. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=Поле %s має містити щонайменше символ %s. ErrorNoAccountancyModuleLoaded=Не активовано модуль бухгалтерії ErrorExportDuplicateProfil=Ця назва профілю вже існує для цього набору експорту. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Javascript не потрібно відключат ErrorPasswordsMustMatch=Обидва введені паролі повинні відповідати один одному ErrorContactEMail=Сталася технічна помилка. Будь ласка, зв’яжіться з адміністратором за електронною поштою %s і вкажіть код помилки %s a09a4b730 або додайте копію сторінки вашого повідомлення. ErrorWrongValueForField=Поле %s : ' %s A09NICFRIMS0FZ0 A0CB20FRIFTIONM0303030303030303030303030303030308520308508508352030858350835083508358358358358358358358358358583583583583583583583583583583583583583583583. +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Field %s : ' %s ' is not a value found in field %s of %s ErrorFieldRefNotIn=Field %s : ' %s ' is not a %s existing ref +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=Знайдено помилки %s ErrorFileIsInfectedWithAVirus=Антивірусна програма не змогла перевірити файл (можливо, файл заражений вірусом) -ErrorSpecialCharNotAllowedForField=Спеціальні символи не допускаються для поля "%s" ErrorNumRefModel=Посилання існує в базі даних (%s) і несумісне з цим правилом нумерації. Видаліть запис або перейменуйте посилання, щоб активувати цей модуль. ErrorQtyTooLowForThisSupplier=Замала кількість для цього постачальника або ціна не визначена на цей продукт для цього постачальника ErrorOrdersNotCreatedQtyTooLow=Деякі замовлення не створено через занадто малу кількість @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Об’єкти повинні ма ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Щоб увімкнути, об’єкти повинні мати статус «Чернетка» або «Вимкнено». ErrorNoFieldWithAttributeShowoncombobox=Жодне поля не має властивості 'showoncombobox' у визначенні об'єкта '%s'. Неможливо показати комболіст. ErrorFieldRequiredForProduct=Поле "%s" є обов'язковим для продукту %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Проблема в налаштуванні терміналу %s. ErrorAddAtLeastOneLineFirst=Спочатку додайте хоча б один рядок ErrorRecordAlreadyInAccountingDeletionNotPossible=Помилка, запис уже перенесено в бухгалтерію, видалення неможливо. @@ -270,24 +274,40 @@ ErrorYouMustFirstSetupYourChartOfAccount=Спочатку потрібно на ErrorFailedToFindEmailTemplate=Не вдалося знайти шаблон із кодовою назвою %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Тривалість обслуговування не визначена. Неможливо розрахувати погодинну ціну. ErrorActionCommPropertyUserowneridNotDefined=Потрібен власник користувача -ErrorActionCommBadType=Вибраний тип події (id: %n, код: %s) не існує в словнику типів події +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Помилка перевірки версії ErrorWrongFileName=У назві файлу не може бути __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Немає в словнику умов оплати, будь ласка, змініть. ErrorIsNotADraft=%s не є чернеткою ErrorExecIdFailed=Не вдається виконати команду "id" -ErrorBadCharIntoLoginName=Неавторизований символ в імені для входу -ErrorRequestTooLarge=Помилка, запит завеликий +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=Ви не затверджуєте відпустку %s ErrorAttributeIsUsedIntoProduct=Цей атрибут використовується в одному або кількох варіантах товару ErrorAttributeValueIsUsedIntoProduct=Це значення атрибута використовується в одному або кількох варіантах продукту ErrorPaymentInBothCurrency=Помилка, усі суми потрібно ввести в одну колонку ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Ви намагаєтеся оплачувати рахунки у валюті %s з рахунку у валюті %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Ваш параметр PHP upload_max_filesize (%s) вищий за параметр PHP post_max_size (%s). Це не послідовне налаштування. WarningPasswordSetWithNoAccount=Для цього учасника встановлено пароль. Однак обліковий запис користувача не створено. Таким чином, цей пароль зберігається, але його не можна використовувати для входу в Dolibarr. Він може використовуватися зовнішнім модулем/інтерфейсом, але якщо вам не потрібно вказувати логін чи пароль для учасника, ви можете вимкнути опцію «Керувати логіном для кожного члена» у налаштуваннях модуля Member. Якщо вам потрібно керувати логіном, але не потрібен пароль, ви можете залишити це поле порожнім, щоб уникнути цього попередження. Примітка: електронну пошту також можна використовувати як логін, якщо учасник пов’язаний з користувачем. -WarningMandatorySetupNotComplete=Натисніть тут, щоб налаштувати обов'язкові параметри +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Натисніть тут, щоб увімкнути свої модулі та програми WarningSafeModeOnCheckExecDir=Попередження, параметр PHP safe_mode увімкнено, тому команда має зберігатися в каталозі, оголошеному параметром php safe_mode_exec_dir a09a4b739f1. WarningBookmarkAlreadyExists=Закладка з такою назвою або цією цільовою URL-адресою вже існує. @@ -296,7 +316,7 @@ WarningConfFileMustBeReadOnly=Попередження, ваш файл конф WarningsOnXLines=Попередження щодо %s вихідних записів WarningNoDocumentModelActivated=Жодна модель для створення документів не активована. Модель буде вибрана за замовчуванням, доки ви не перевірите налаштування модуля. WarningLockFileDoesNotExists=Попередження, після завершення налаштування ви повинні вимкнути інструменти встановлення/міграції, додавши файл install.lock до каталогу %s a300. Пропуск створення цього файлу є серйозною загрозою безпеці. -WarningUntilDirRemoved=Усі попередження безпеки (видні лише користувачам-адміністраторам) залишаться активними, доки вразливість є (або константу MAIN_REMOVE_INSTALL_WARNING додано в Налаштування->Інше налаштування). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Попередження, закриття виконується, навіть якщо кількість різниться між вихідними та цільовими елементами. Увімкніть цю функцію обережно. WarningUsingThisBoxSlowDown=Попередження, використання цього поля серйозно уповільнює роботу всіх сторінок, на яких відображається поле. WarningClickToDialUserSetupNotComplete=Налаштування інформації ClickToDial для вашого користувача не завершено (див. вкладку ClickToDial на вашій картці користувача). @@ -317,6 +337,9 @@ WarningCreateSubAccounts=Попередження, ви не можете ств WarningAvailableOnlyForHTTPSServers=Доступно лише за умови використання захищеного з’єднання HTTPS. WarningModuleXDisabledSoYouMayMissEventHere=Модуль %s не ввімкнено. Тому ви можете пропустити багато подій тут. WarningPaypalPaymentNotCompatibleWithStrict=Значення "Strict" робить функції онлайн-платежів некоректними. Натомість використовуйте "Lax". +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate RequireValidValue = Недійсне значення diff --git a/htdocs/langs/uk_UA/eventorganization.lang b/htdocs/langs/uk_UA/eventorganization.lang index 2dccbf9f263..4160b6a3c0a 100644 --- a/htdocs/langs/uk_UA/eventorganization.lang +++ b/htdocs/langs/uk_UA/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = У формі для створення # Object # EventOrganizationConfOrBooth= Конференція або стенд +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Керуйте організацією заходу ConferenceOrBooth = Конференція або стенд ConferenceOrBoothTab = Конференція або стенд AmountPaid = Виплачувана сума DateOfRegistration = Дата реєстрації ConferenceOrBoothAttendee = Учасник конференції або стенду +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Тут ви можете проголосува EvntOrgRegistrationConfHelpMessage = Тут ви можете запропонувати нову конференцію для анімації під час події. EvntOrgRegistrationBoothHelpMessage = Тут ви можете подати заявку на наявність стенду під час заходу. ListOfSuggestedConferences = Список пропонованих конференцій -ListOfSuggestedBooths = Список пропонованих кабін -ListOfConferencesOrBooths=Список конференцій або стендів заходу проекту +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Запропонуйте нову конференцію SuggestBooth = Запропонуйте будку ViewAndVote = Переглядайте запропоновані події та голосуйте за них PublicAttendeeSubscriptionGlobalPage = Загальне посилання для реєстрації на подію PublicAttendeeSubscriptionPage = Загальне посилання лише для реєстрації на цю подію MissingOrBadSecureKey = Ключ безпеки недійсний або відсутній -EvntOrgWelcomeMessage = Ця форма дозволяє зареєструватися як новий учасник заходу: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Ця конференція починається на %s і закінчується на %s. ConferenceAttendeeFee = Плата за відвідування конференції за подію: «%s» від %s до %s. BoothLocationFee = Розташування стенду для події: "%s" від %s до %s @@ -130,7 +133,7 @@ LabelOfconference=Етикетка конференції ConferenceIsNotConfirmed=Реєстрація недоступна, конференція ще не підтверджена DateMustBeBeforeThan=%s має бути перед %s DateMustBeAfterThan=%s має бути після %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Реєстрація OrganizationEventConfRequestWasReceived=Вашу пропозицію щодо конференції отримано OrganizationEventBoothRequestWasReceived=Ваш запит на будку отримано @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Ваш платіж за ре OrganizationEventBulkMailToAttendees=Це нагадування про вашу участь у заході як учасника OrganizationEventBulkMailToSpeakers=Це нагадування про вашу участь у заході як доповідача OrganizationEventLinkToThirdParty=Посилання на третю сторону (клієнт, постачальник або партнер) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Заявка на стенд NewSuggestionOfConference=Заявка на конференцію @@ -154,7 +158,7 @@ VoteOk = Ваш голос прийнято. AlreadyVoted = Ви вже проголосували за цю подію. VoteError = Під час голосування сталася помилка, спробуйте ще раз. -SubscriptionOk = Ваша реєстрація підтверджена +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Підтвердження вашої підписки на подію Attendee = Учасник PaymentConferenceAttendee = Оплата учасникам конференції @@ -162,6 +166,7 @@ PaymentBoothLocation = Оплата місця розташування стен DeleteConferenceOrBoothAttendee=Видалити учасника RegistrationAndPaymentWereAlreadyRecorder=Реєстрація та платіж уже були записані для електронної пошти %s EmailAttendee=Електронна адреса учасника +EmailCompany=Company email EmailCompanyForInvoice=Електронна адреса компанії (для рахунку-фактури, якщо вона відрізняється від електронної адреси учасника) ErrorSeveralCompaniesWithEmailContactUs=Знайдено кілька компаній із цією електронною поштою, тому ми не можемо автоматично підтвердити вашу реєстрацію. Будь ласка, зв’яжіться з нами за адресою %s для перевірки вручну ErrorSeveralCompaniesWithNameContactUs=Було знайдено кілька компаній з такою назвою, тому ми не можемо автоматично підтвердити вашу реєстрацію. Будь ласка, зв’яжіться з нами за адресою %s для перевірки вручну diff --git a/htdocs/langs/uk_UA/externalsite.lang b/htdocs/langs/uk_UA/externalsite.lang deleted file mode 100644 index 3f7497d77f1..00000000000 --- a/htdocs/langs/uk_UA/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Налаштування посилання на зовнішній веб-сайт -ExternalSiteURL=URL-адреса зовнішнього сайту вмісту iframe HTML -ExternalSiteModuleNotComplete=Модуль ExternalSite неправильно налаштовано. -ExampleMyMenuEntry=Мій запис в меню diff --git a/htdocs/langs/uk_UA/ftp.lang b/htdocs/langs/uk_UA/ftp.lang deleted file mode 100644 index d2a3df365ab..00000000000 --- a/htdocs/langs/uk_UA/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Налаштування модуля клієнта FTP або SFTP -NewFTPClient=Нове налаштування з’єднання FTP/FTPS -FTPArea=Зона FTP/FTPS -FTPAreaDesc=Цей екран показує вигляд сервера FTP та SFTP. -SetupOfFTPClientModuleNotComplete=Налаштування клієнтського модуля FTP або SFTP здається неповним -FTPFeatureNotSupportedByYourPHP=Ваш PHP не підтримує функції FTP або SFTP -FailedToConnectToFTPServer=Не вдалося підключитися до сервера (сервер %s, порт %s) -FailedToConnectToFTPServerWithCredentials=Не вдалося ввійти на сервер із визначеним логіном/паролем -FTPFailedToRemoveFile=Не вдалося видалити файл %s . -FTPFailedToRemoveDir=Не вдалося видалити каталог %s : перевірте дозволи та переконайтеся, що каталог порожній. -FTPPassiveMode=Пасивний режим -ChooseAFTPEntryIntoMenu=Виберіть у меню сайт FTP/SFTP... -FailedToGetFile=Не вдалося отримати файли %s diff --git a/htdocs/langs/uk_UA/holiday.lang b/htdocs/langs/uk_UA/holiday.lang index 94a4245e689..078b0a63317 100644 --- a/htdocs/langs/uk_UA/holiday.lang +++ b/htdocs/langs/uk_UA/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Залишати +Holidays=Leaves +Holiday=Leave CPTitreMenu=Залишати MenuReportMonth=Щомісячна виписка MenuAddCP=Нова заява на відпустку +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Ви повинні ввімкнути модуль Залишити, щоб переглянути цю сторінку. AddCP=Подайте заявку на відпустку DateDebCP=Дата початку @@ -56,6 +58,7 @@ ConfirmDeleteCP=Підтвердити видалення цього запит ErrorCantDeleteCP=Помилка, ви не маєте права видалити цей запит на відпустку. CantCreateCP=Ви не маєте права подавати заяву на відпустку. InvalidValidatorCP=Ви повинні вибрати затверджувача для вашого запиту на відпустку. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Ви повинні вибрати дату початку. NoDateFin=Ви повинні вибрати дату завершення. ErrorDureeCP=Ваша заява на відпустку не містить робочого дня. @@ -79,6 +82,8 @@ MotifCP=Підстава UserCP=Користувач ErrorAddEventToUserCP=Під час додавання виняткової відпустки сталася помилка. AddEventToUserOkCP=Додавання виняткової відпустки завершено. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Переглянути журнали змін LogCP=Журнал усіх оновлень, внесених до "Балансу відпусток" ActionByCP=Оновлено @@ -86,6 +91,13 @@ UserUpdateCP=Оновлено для PrevSoldeCP=Попередній баланс NewSoldeCP=Новий баланс alreadyCPexist=Запит на відпустку на цей період вже подано. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Запит на початок відпустки LastDayOfHoliday=День закінчення заяви на відпустку BoxTitleLastLeaveRequests=Останні %s змінені запити на відпустку @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s, як правило, неробочий день BlockHolidayIfNegative=Блокувати, якщо баланс негативний LeaveRequestCreationBlockedBecauseBalanceIsNegative=Створення цього запиту на відпустку заблоковано, оскільки ваш баланс негативний ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Запит на залишення %s має бути чернетковий, скасований або відмовлено у видаленні +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/uk_UA/hrm.lang b/htdocs/langs/uk_UA/hrm.lang index cc698bc8ad1..9175e5488ca 100644 --- a/htdocs/langs/uk_UA/hrm.lang +++ b/htdocs/langs/uk_UA/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Відкритий заклад CloseEtablishment=Закритий заклад # Dictionary DictionaryPublicHolidays=Відпустка - державні свята -DictionaryDepartment=HRM - Список відділів +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Посади # Module Employees=Співробітники @@ -70,9 +70,9 @@ RequiredSkills=Необхідні навички для цієї роботи UserRank=Ранг користувача SkillList=Список навичок SaveRank=Збережіть звання -knowHow=Ноу-хау -HowToBe=Як бути -knowledge=Знання +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Коментар про відмову DateLastEval=Дата останньої оцінки NoEval=Оцінка цього працівника не проводилася @@ -88,3 +88,4 @@ DeleteSkill = Навик видалено SkillsExtraFields=Attributs supplémentaires (Compétences) JobsExtraFields=Додаткові атрибути (Emplois) EvaluationsExtraFields=Attributes supplémentaires (оцінки) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/uk_UA/install.lang b/htdocs/langs/uk_UA/install.lang index 5c1f2d40b02..de4b97ac2a8 100644 --- a/htdocs/langs/uk_UA/install.lang +++ b/htdocs/langs/uk_UA/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Файл конфігурації %s недост ConfFileIsWritable=Файл конфігурації %s доступний для запису. ConfFileMustBeAFileNotADir=Файл конфігурації %s має бути файлом, а не каталогом. ConfFileReload=Перезавантаження параметрів з конфігураційного файлу. -NoReadableConfFileSoStartInstall=Конфігураційний файл conf/conf.php не існує або його не можна знайти. Ми запустимо процес встановлення, щоб спробувати його ініціалізувати. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Цей PHP підтримує змінні POST і GET. PHPSupportPOSTGETKo=Можливо, ваші налаштування PHP не підтримують змінні POST та/або GET. Перевірте параметр variables_order у php.ini. PHPSupportSessions=Цей PHP підтримує сеанси. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Можливо, ви ввели неправильн ErrorFailedToCreateDatabase=Не вдалося створити базу даних "%s". ErrorFailedToConnectToDatabase=Не вдалося підключитися до бази даних "%s". ErrorDatabaseVersionTooLow=Версія бази даних (%s) застаріла. Потрібна версія %s або вище. -ErrorPHPVersionTooLow=Версія PHP занадто стара. Необхідна версія %s. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Підключення до сервера успішне, але база даних '%s' не знайдена. ErrorDatabaseAlreadyExists=База даних '%s' вже існує. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Якщо бази даних не існує, поверніться назад і поставте прапорець «Створити базу даних». IfDatabaseExistsGoBackAndCheckCreate=Якщо база даних уже існує, поверніться назад і зніміть прапорець «Створити базу даних». WarningBrowserTooOld=Версія браузера застаріла. Настійно рекомендується оновити свій браузер до останньої версії Firefox, Chrome або Opera. diff --git a/htdocs/langs/uk_UA/knowledgemanagement.lang b/htdocs/langs/uk_UA/knowledgemanagement.lang index bd16a87cb7c..c37fbd261da 100644 --- a/htdocs/langs/uk_UA/knowledgemanagement.lang +++ b/htdocs/langs/uk_UA/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = статті KnowledgeRecord = стаття KnowledgeRecordExtraFields = Додаткові поля для ст GroupOfTicket=Група квитків -YouCanLinkArticleToATicketCategory=Ви можете прив’язати статтю до групи квитків (тому стаття буде запропонована під час кваліфікації нових квитків) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Пропонується для квитків, коли група SetObsolete=Встановити як застаріле diff --git a/htdocs/langs/uk_UA/loan.lang b/htdocs/langs/uk_UA/loan.lang index 569d9f99dc2..d56a8ab0944 100644 --- a/htdocs/langs/uk_UA/loan.lang +++ b/htdocs/langs/uk_UA/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Фінансові зобов'язання InterestAmount=Інтерес CapitalRemain=Залишається капітал TermPaidAllreadyPaid = Цей термін уже оплачений -CantUseScheduleWithLoanStartedToPaid = Не можна використовувати планувальник для позики з розпочатим платежем +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Ви не можете змінити відсотки, якщо використовуєте розклад # Admin ConfigLoan=Конфігурація модульної позики -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Обліковий капітал за замовчуванням -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Бухгалтерський рахунок процентів за замовчуванням -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Страхування бухгалтерського рахунку за замовчуванням +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Відредагувати фінансові зобов'язання diff --git a/htdocs/langs/uk_UA/mailmanspip.lang b/htdocs/langs/uk_UA/mailmanspip.lang index 83de047d099..3efd9cb1491 100644 --- a/htdocs/langs/uk_UA/mailmanspip.lang +++ b/htdocs/langs/uk_UA/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Тест підписки виконано успішно MailmanDeletionSuccess=Тест скасування підписки виконано успішно SynchroMailManEnabled=Буде виконано оновлення Mailman SynchroSpipEnabled=Буде виконано оновлення Spip -DescADHERENT_MAILMAN_ADMINPW=Пароль адміністратора Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL-адреса для підписок на Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL для скасування підписки на Mailman DescADHERENT_MAILMAN_LISTS=Список(и) для автоматичного внесення нових учасників (розділені комою) diff --git a/htdocs/langs/uk_UA/mails.lang b/htdocs/langs/uk_UA/mails.lang index d871103f853..d17a3dcb4a3 100644 --- a/htdocs/langs/uk_UA/mails.lang +++ b/htdocs/langs/uk_UA/mails.lang @@ -7,10 +7,10 @@ MailCard=Картка електронної пошти MailRecipients=Одержувачі MailRecipient=одержувач MailTitle=Опис -MailFrom=Відправник +MailFrom=Продавець MailErrorsTo=Помилки до MailReply=Відповісти -MailTo=приймач(и) +MailTo=Покупець MailToUsers=Користувачам MailCC=Копіювати до MailToCCUsers=Копіювати користувачам @@ -178,3 +178,4 @@ IsAnAnswer=Це відповідь на початковий електронн RecordCreatedByEmailCollector=Запис, створений збирачем електронної пошти %s з електронної пошти %s DefaultBlacklistMailingStatus=Значення за замовчуванням для поля '%s' під час створення нового контакту DefaultStatusEmptyMandatory=Порожній, але обов’язковий +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index 43cea0671c4..ba5adc74e53 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=freemono FONTSIZEFORPDF=8 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Немає шаблону для цього типу елек AvailableVariables=Доступні змінні заміни NoTranslation=Немає перекладу Translation=Переклад +Translations=Translations CurrentTimeZone=PHP TimeZone (сервер) EmptySearchString=Введіть не порожні критерії пошуку EnterADateCriteria=Введіть критерії дати @@ -199,6 +206,7 @@ Valid=Дійсний Approve=Затвердити Disapprove=Не схвалювати ReOpen=Відкрити повторно +OpenVerb=Open Upload=Завантажити ToLink=Посилання Select=Виберіть @@ -216,7 +224,7 @@ UserGroup=Група користувачів UserGroups=Групи користувачів NoUserGroupDefined=Група користувачів не визначена Password=Пароль -PasswordRetype=Повторно введіть пароль +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Зауважте, що багато функцій/модулів вимкнено в цій демонстрації. Name=Ім'я NameSlashCompany=Назва / Компанія @@ -345,7 +353,7 @@ KiloBytes=Кілобайти MegaBytes=мегабайти GigaBytes=гігабайти TeraBytes=терабайти -UserAuthor=Переведено +UserAuthor=Створено UserModif=Оновлено b=б. Kb=Кб @@ -481,6 +489,7 @@ ActionsOnContact=Події для цього контакту/адреси ActionsOnContract=Події для цього договору ActionsOnMember=Події про цього учасника ActionsOnProduct=Події про цей продукт +ActionsOnAsset=Events for this fixed asset NActionsLate=%s пізно ToDo=Зробити Completed=Завершено @@ -712,6 +721,7 @@ FeatureDisabled=Функція вимкнена MoveBox=Перемістити віджет Offered=Запропоновано NotEnoughPermissions=У вас немає дозволу на цю дію +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Назва сеансу Method=Метод Receive=Отримати @@ -801,6 +811,7 @@ URLPhoto=URL-адреса фотографії/логотипа SetLinkToAnotherThirdParty=Посилання на іншу третю сторону LinkTo=Посилання на LinkToProposal=Посилання на пропозицію +LinkToExpedition= Link to expedition LinkToOrder=Посилання на замовлення LinkToInvoice=Посилання на рахунок-фактуру LinkToTemplateInvoice=Посилання на шаблон рахунка-фактури @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Приватне посилання для скачу PrivateDownloadLinkDesc=Ви повинні увійти в систему та отримати дозвіл на перегляд або завантаження файлу Download=Завантажити DownloadDocument=Завантажити документ +DownloadSignedDocument=Download signed document ActualizeCurrency=Оновити курс валюти Fiscalyear=Фіскальний рік ModuleBuilder=Конструктор модулів і додатків @@ -1044,6 +1056,7 @@ SearchIntoContracts=Контракти SearchIntoCustomerShipments=Відправки клієнтам SearchIntoExpenseReports=Звіти про витрати SearchIntoLeaves=Залишати +SearchIntoKM=Knowledge base SearchIntoTickets=Заявки SearchIntoCustomerPayments=Виплати клієнтів SearchIntoVendorPayments=Платежі постачальників @@ -1135,15 +1148,29 @@ EventReminder=Нагадування про подію UpdateForAllLines=Оновлення для всіх ліній OnHold=На утриманні Civility=Цивілізованість -AffectTag=Тег впливу +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Створити зовнішнього користувача -ConfirmAffectTag=Вплив масових тегів -ConfirmAffectTagQuestion=Ви впевнені, що хочете вплинути на теги для вибраних записів %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Не знайдено тип тегу для типу записів +Rate=Оцінити +SupervisorNotFound=Supervisor not found CopiedToClipboard=Скопійовано в буфер обміну InformationOnLinkToContract=Ця сума є лише підсумком усіх рядків договору. Поняття часу не враховується. ConfirmCancel=Ви впевнені, що хочете скасувати? EmailMsgID=Надіслати електронний лист MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Увімкнено SetToDisabled=Вимкнено ConfirmMassEnabling=підтвердження масового дозволу @@ -1172,5 +1199,14 @@ Terminated=Припинено AddLineOnPosition=Додати рядок до позиції (в кінці, якщо порожній) ConfirmAllocateCommercial=Призначте підтвердження торгового представника ConfirmAllocateCommercialQuestion=Ви впевнені, що хочете призначити %s вибраний запис(и)? -CommercialsAffected=Постраждали торгові представники -CommercialAffected=Постраждав торговий представник +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Внутрішній користувач +ExternalUser=Зовнішній користувач diff --git a/htdocs/langs/uk_UA/members.lang b/htdocs/langs/uk_UA/members.lang index 6ec1bfd9cb8..463bf7b3269 100644 --- a/htdocs/langs/uk_UA/members.lang +++ b/htdocs/langs/uk_UA/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s , ErrorUserPermissionAllowsToLinksToItselfOnly=З міркувань безпеки вам потрібно надати дозвіл редагувати всіх користувачів, щоб мати можливість пов’язувати учасника з іншим користувачем. SetLinkToUser=Посилання на користувача Dolibarr SetLinkToThirdParty=Посилання на третю сторону Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Генерація карток для учасників MembersList=Список членів MembersListToValid=Список членів проекту (підлягає підтвердженню) @@ -34,8 +35,10 @@ DateSubscription=Дата членства DateEndSubscription=Дата закінчення членства EndSubscription=Кінець членства SubscriptionId=Ідентифікатор внеску -WithoutSubscription=Без внеску -MemberId=Ідентифікатор учасника +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Новий учасник MemberType=Тип члена MemberTypeId=Ідентифікатор типу члена @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Тип члена не можна видалити NewSubscription=Новий внесок NewSubscriptionDesc=Ця форма дозволяє зареєструвати свою підписку як нового члена фонду. Якщо ви хочете поновити свою підписку (якщо вже є учасником), зверніться до ради фонду електронною поштою %s. Subscription=Внесок +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Внески SubscriptionLate=Пізно SubscriptionNotReceived=Внесок так і не отримав @@ -135,7 +144,7 @@ CardContent=Вміст вашої членської картки # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Хочемо повідомити, що ваш запит на членство отримано.

    ThisIsContentOfYourMembershipWasValidated=Хочемо повідомити, що ваше членство було підтверджено такою інформацією:

    -ThisIsContentOfYourSubscriptionWasRecorded=Хочемо повідомити, що ваша нова підписка була записана.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Хочемо повідомити, що термін дії вашої підписки скоро закінчиться або вже закінчився (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Сподіваємося, ви його поновите.

    ThisIsContentOfYourCard=Це короткий огляд інформації, яку ми маємо про вас. Будь ласка, зв’яжіться з нами, якщо щось не так.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Тема повідомлення електронною поштою, отриманого у разі автоматичного запису гостя @@ -198,8 +207,10 @@ NbOfSubscriptions=Кількість внесків AmountOfSubscriptions=Сума, зібрана з внесків TurnoverOrBudget=Оборот (для компанії) або бюджет (для фонду) DefaultAmount=Сума внеску за замовчуванням -CanEditAmount=Відвідувач може вибрати/змінити суму свого внеску -MEMBER_NEWFORM_PAYONLINE=Перейдіть на інтегровану сторінку онлайн-платежів +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Від природи MembersStatisticsByProperties=Статистика учасників за характером VATToUseForSubscriptions=Ставка ПДВ для внесків @@ -218,3 +229,6 @@ XExternalUserCreated=%s створено зовнішніх користувач ForceMemberNature=Характер члена сил (фізична особа або корпорація) CreateDolibarrLoginDesc=Створення логіна користувача для учасників дозволяє їм підключатися до програми. Залежно від наданих авторизацій вони зможуть, наприклад, самі переглядати або змінювати свій файл. CreateDolibarrThirdPartyDesc=Третя сторона – це юридична особа, яка буде використовуватися в рахунку-фактурі, якщо ви вирішите створювати рахунок-фактуру для кожного внеску. Ви зможете створити його пізніше під час процесу запису внеску. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/uk_UA/modulebuilder.lang b/htdocs/langs/uk_UA/modulebuilder.lang index 057ecd40626..e9e55421862 100644 --- a/htdocs/langs/uk_UA/modulebuilder.lang +++ b/htdocs/langs/uk_UA/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=Цим інструментом повинні користуватися лише досвідчені користувачі або розробники. Він надає утиліти для створення або редагування вашого власного модуля. Документація для альтернативної розробки вручну знаходиться тут . EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Шлях, де генеруються/редагуються модулі (перший каталог для зовнішніх модулів, визначених як %s): %s ModuleBuilderDesc3=Знайдено створені/редаговані модулі: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Модуль визначається як «доступни NewModule=Новий модуль NewObjectInModulebuilder=Новий об'єкт NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Ключ модуля ObjectKey=Ключ об'єкта DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Шлях до zip пакета модуля/програми PathToModuleDocumentation=Шлях до файлу документації модуля/програми (%s) SpaceOrSpecialCharAreNotAllowed=Пробіли або спеціальні символи не допускаються. FileNotYetGenerated=Файл ще не згенерований +GenerateCode=Generate code RegenerateClassAndSql=Примусове оновлення файлів .class і .sql RegenerateMissingFiles=Згенерувати відсутні файли SpecificationFile=Файл документації LanguageFile=Файл для мови ObjectProperties=Властивості об'єкта +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Ви впевнені, що хочете видалити властивість %s ? Це змінить код у класі PHP, але також видалить стовпець із визначення об’єкта в таблиці. NotNull=Не NULL NotNullDesc=1=Встановити базу даних у значення NOT NULL, 0=Дозволити нульові значення, -1=Дозволити нульові значення шляхом примусового значення NULL, якщо порожнє ('' або 0) @@ -81,15 +86,16 @@ IsAMeasure=Є мірою DirScanned=Каталог відскановано NoTrigger=Без тригера NoWidget=Немає віджета -GoToApiExplorer=API Explorer +ApiExplorer=API explorer ListOfMenusEntries=Список пунктів меню ListOfDictionariesEntries=Список словникових статей ListOfPermissionsDefined=Список визначених дозволів SeeExamples=Дивіться приклади тут -EnabledDesc=Умова, щоб це поле було активним (приклади: 1 або $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Чи видно поле? (Приклади: 0=Ніколи не видно, 1=Відображається у списку та формах створення/оновлення/перегляду, 2=Відображається лише у списку, 3=Відображається лише під час створення/оновлення/перегляду форми (не в списку), 4=Відображається у списку та оновити/переглянути лише форму (не створити), 5=Відображається лише у формі кінцевого перегляду списку (не створювати, не оновлювати)

    Використання від’ємного значення означає, що поле не відображається за замовчуванням у списку, але його можна вибрати для перегляду).

    Це може бути вираз, наприклад:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    . -DisplayOnPdfDesc=Відображайте це поле на сумісних PDF-документах, ви можете керувати позицією за допомогою поля «Позиція».
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the опис лише якщо не порожній -DisplayOnPdf=Відображення в PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Чи можна сумувати значення поля, щоб отримати підсумок у списку? (Приклади: 1 або 0) SearchAllDesc=Чи використовується поле для пошуку за допомогою інструмента швидкого пошуку? (Приклади: 1 або 0) SpecDefDesc=Введіть сюди всю документацію, яку ви хочете надати зі своїм модулем, яка ще не визначена іншими вкладками. Ви можете використовувати .md або краще, багатий синтаксис .asciidoc. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Використовуйте конкретну URL-ад UseSpecificFamily = Використовуйте конкретну сім'ю UseSpecificAuthor = Використовуйте конкретного автора UseSpecificVersion = Використовуйте конкретну початкову версію -IncludeRefGeneration=Посилання на об'єкт має генеруватися автоматично за допомогою спеціальних правил нумерації +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Поставте прапорець, якщо ви хочете включити код для автоматичного керування створенням посилання за допомогою спеціальних правил нумерації -IncludeDocGeneration=Я хочу створити деякі документи з шаблонів для об’єкта +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Якщо ви поставите цей прапорець, буде створено деякий код, щоб додати до запису поле «Створити документ». -ShowOnCombobox=Показати значення у списку +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Ключ для підказки CSSClass=CSS для редагування/створення форми CSSViewClass=CSS для читання форми CSSListClass=CSS для списку NotEditable=Не можна редагувати ForeignKey=Зовнішній ключ -TypeOfFieldsHelp=Тип полів:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' означає, що ми додаємо кнопку + після комбінації для створення запису
    'фільтр' є умовою sql, наприклад: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED)_ENT. +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Конвертер Ascii в HTML AsciiToPdfConverter=Конвертер Ascii в PDF TableNotEmptyDropCanceled=Стіл не порожній. Викидання скасовано. ModuleBuilderNotAllowed=Конструктор модулів доступний, але не дозволений вашому користувачеві. ImportExportProfiles=Імпорт і експорт профілів -ValidateModBuilderDesc=Встановіть для цього значення 1, якщо ви хочете, щоб метод $this->validateField() об’єкта був викликаний для перевірки вмісту поля під час вставки або оновлення. Встановіть 0, якщо перевірка не потрібна. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Попередження: база даних не оновлюється автоматично, ви повинні знищити таблиці та вимкнути-ввімкнути модуль для відтворення таблиць LinkToParentMenu=Батьківське меню (fk_xxxxmenu) ListOfTabsEntries=Список записів вкладки TabsDefDesc=Визначте тут вкладки, надані вашим модулем TabsDefDescTooltip=Вкладки, надані вашим модулем/додатком, визначаються в масиві $this->tabs у файлі дескриптора модуля. Ви можете редагувати цей файл вручну або використовувати вбудований редактор. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/uk_UA/mrp.lang b/htdocs/langs/uk_UA/mrp.lang index 8b58e9fb5ff..b6c6da2fb0f 100644 --- a/htdocs/langs/uk_UA/mrp.lang +++ b/htdocs/langs/uk_UA/mrp.lang @@ -11,8 +11,8 @@ Bom=Специфікація матеріалів BillOfMaterials=Специфікація матеріалів BillOfMaterialsLines=Лінії переліку матеріалів BOMsSetup=Налаштування специфікації модуля -ListOfBOMs=Перелік технічних документів - BOM -ListOfManufacturingOrders=Список замовлень на виготовлення +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Нова специфікація матеріалів ProductBOMHelp=Продукт для створення (або розбирання) за допомогою цієї специфікації.
    Примітка. Продукти з властивістю «Природа продукту» = «Сировина» не відображаються в цьому списку. BOMsNumberingModules=Шаблони нумерації BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Ви впевнені, що хочете клону ConfirmCloneMo=Ви впевнені, що хочете клонувати замовлення на виробництво %s? ManufacturingEfficiency=Ефективність виробництва ConsumptionEfficiency=Ефективність споживання +Consumption=Consumption ValueOfMeansLoss=Значення 0,95 означає в середньому 5%% втрати під час виготовлення або розбирання ValueOfMeansLossForProductProduced=Значення 0,95 означає в середньому 5%% втрати виробленого продукту DeleteBillOfMaterials=Видалити специфікацію @@ -82,6 +83,7 @@ ProductsToProduce=Продукти для виробництва UnitCost=Вартість одиниці TotalCost=Загальна вартість BOMTotalCost=Витрати на виготовлення цієї специфікації на основі вартості кожної кількості та продукту для споживання (використовуйте собівартість, якщо визначено, інакше середню зважену ціну, якщо визначено, інакше найкращу закупівельну ціну) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Ви повинні спочатку розпочати виробництво, щоб закрити виробниче замовлення (див. вкладку '%s'). Але ви можете скасувати його. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Набір не може бути використаний у специфікації або МО Workstation=Робоча станція @@ -112,3 +114,7 @@ MOAndLines=Виробничі замовлення та лінії MoChildGenerate=Generate Child Mo ParentMo=MO Parent MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/uk_UA/oauth.lang b/htdocs/langs/uk_UA/oauth.lang index fc7116b2183..c59d15d7fe4 100644 --- a/htdocs/langs/uk_UA/oauth.lang +++ b/htdocs/langs/uk_UA/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Токен було створено та збережено в NewTokenStored=Токен отримано та збережено ToCheckDeleteTokenOnProvider=Натисніть тут, щоб перевірити/видалити авторизацію, збережену постачальником OAuth %s TokenDeleted=Токен видалено -RequestAccess=Натисніть тут, щоб запитати/відновити доступ та отримати новий маркер для збереження -DeleteAccess=Натисніть тут, щоб видалити маркер +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Використовуйте таку URL-адресу як URI переспрямування під час створення облікових даних у свого постачальника OAuth: -ListOfSupportedOauthProviders=Введіть облікові дані, надані вашим постачальником OAuth2. Тут перелічено лише підтримуваних постачальників OAuth2. Ці служби можуть використовуватися іншими модулями, які потребують аутентифікації OAuth2. -OAuthSetupForLogin=Сторінка для створення токена OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Дивіться попередню вкладку +OAuthProvider=OAuth provider OAuthIDSecret=Ідентифікатор та секрет OAuth TOKEN_REFRESH=Присутнє оновлення маркера TOKEN_EXPIRED=Термін дії токена закінчився @@ -23,10 +24,13 @@ TOKEN_DELETE=Видалити збережений маркер OAUTH_GOOGLE_NAME=Сервіс Google OAuth OAUTH_GOOGLE_ID=Ідентифікатор Google OAuth OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Перейдіть до цієї сторінки , потім «Облікові дані», щоб створити облікові дані OAuth OAUTH_GITHUB_NAME=Служба OAuth GitHub OAUTH_GITHUB_ID=Ідентифікатор OAuth GitHub OAUTH_GITHUB_SECRET=Секрет OAuth GitHub -OAUTH_GITHUB_DESC=Перейдіть до цієї сторінки , а потім «Зареєструйте нову програму», щоб створити облікові дані OAuth +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/uk_UA/products.lang b/htdocs/langs/uk_UA/products.lang index ddb0582d5b6..cf80c3e8f60 100644 --- a/htdocs/langs/uk_UA/products.lang +++ b/htdocs/langs/uk_UA/products.lang @@ -262,7 +262,7 @@ Quarter1=1-й Квартал Quarter2=2-е. Квартал Quarter3=3-й. Квартал Quarter4=4-й Квартал -BarCodePrintsheet=Роздрукувати штрих-код +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=За допомогою цього інструменту ви можете роздрукувати аркуші наклейок зі штрих-кодом. Виберіть формат сторінки з наклейками, тип штрих-коду та значення штрих-коду, потім натисніть кнопку %s . NumberOfStickers=Кількість наклейок для друку на сторінці PrintsheetForOneBarCode=Роздрукуйте кілька наклейок для одного штрих-коду @@ -345,7 +345,7 @@ PossibleValues=Можливі значення GoOnMenuToCreateVairants=Перейдіть до меню %s - %s, щоб підготувати варіанти атрибутів (наприклад, кольори, розмір, ...) UseProductFournDesc=Додайте функцію для визначення опису продукту, визначеного постачальниками (для кожного посилання на постачальника), на додаток до опису для клієнтів ProductSupplierDescription=Опис постачальника товару -UseProductSupplierPackaging=Використовуйте упаковку за цінами постачальника (перерахуйте кількість відповідно до упаковки, встановленої в ціні постачальника при додаванні/оновленні рядка в документах постачальника) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Упаковка PackagingForThisProductDesc=Ви автоматично придбаєте кратну цю кількість. QtyRecalculatedWithPackaging=Кількість лінії було перераховано відповідно до упаковки постачальника @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Дія доступна лише для ва ProductsPricePerCustomer=Ціни продукції за одного клієнта ProductSupplierExtraFields=Додаткові атрибути (ціни постачальників) DeleteLinkedProduct=Видаліть дочірній продукт, пов’язаний з комбінацією -AmountUsedToUpdateWAP=Сума для оновлення середньозваженої ціни +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Середньозважена ціна PMPValueShort=WAP mandatoryperiod=Обов'язкові періоди @@ -416,6 +416,7 @@ ProductsMergeSuccess=Продукти об’єднані ErrorsProductsMerge=Помилки в продуктах злиття SwitchOnSaleStatus=Увімкнути статус продажу SwitchOnPurchaseStatus=Увімкніть статус покупки +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Додаткові поля (рух акцій) InventoryExtraFields= Додаткові поля (інвентар) ScanOrTypeOrCopyPasteYourBarCodes=Скануйте або введіть або скопіюйте/вставте свої штрих-коди @@ -424,3 +425,7 @@ PMPExpected=Очікуваний PMP ExpectedValuation=Очікувана оцінка PMPReal=Справжній PMP RealValuation=Реальна оцінка +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/uk_UA/projects.lang b/htdocs/langs/uk_UA/projects.lang index 9b25bbf1d37..1f127ec2b10 100644 --- a/htdocs/langs/uk_UA/projects.lang +++ b/htdocs/langs/uk_UA/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=У цьому поданні представлені всі п TasksDesc=У цьому поданні представлені всі проекти та завдання (ваші дозволи користувача надають вам дозвіл переглядати все). AllTaskVisibleButEditIfYouAreAssigned=Усі завдання для кваліфікованих проектів відображаються, але ви можете ввести час лише для завдання, призначеного вибраному користувачеві. Призначте завдання, якщо вам потрібно ввести на нього час. OnlyYourTaskAreVisible=Відображаються лише призначені вам завдання. Якщо вам потрібно ввести час виконання завдання, і якщо завдання тут не видно, то вам потрібно призначити завдання собі. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Завдання проектів ProjectCategories=Теги/категорії проекту NewProject=Новий проект @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Веде кількість відкрит OpportunitiesStatusForProjects=Веде кількість проектів за статусом ShowProject=Показати проект ShowTask=Показати завдання +SetThirdParty=Set third party SetProject=Встановити проект +OutOfProject=Out of project NoProject=Жодного проекту не визначено чи належить NbOfProjects=Кількість проектів NbOfTasks=Кількість завдань @@ -122,7 +125,8 @@ ValidateProject=Перевірити проект ConfirmValidateProject=Ви впевнені, що хочете підтвердити цей проект? CloseAProject=Закрити проект ConfirmCloseAProject=Ви впевнені, що хочете закрити цей проект? -AlsoCloseAProject=Також закрийте проект (залиште його відкритим, якщо вам все ще потрібно виконувати виробничі завдання в ньому) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Відкритий проект ConfirmReOpenAProject=Ви впевнені, що хочете знову відкрити цей проект? ProjectContact=Контакти проекту @@ -165,7 +169,7 @@ OpportunityProbability=Імовірність свинцю OpportunityProbabilityShort=Ймовірно привести. OpportunityAmount=Кількість свинцю OpportunityAmountShort=Кількість свинцю -OpportunityWeightedAmount=Зважена сума можливостей +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. зважена сума OpportunityAmountAverageShort=Середня кількість свинцю OpportunityAmountWeigthedShort=Зважена кількість свинцю @@ -238,7 +242,7 @@ OppStatusPENDING=В очікуванні OppStatusWON=Виграв OppStatusLOST=Загублено Budget=Бюджет -AllowToLinkFromOtherCompany=Дозволити зв'язувати проект з іншої компанії

    Підтримувані значення:
    - Залишити порожнім: можна зв'язати будь-який проект компанії, навіть можна зв'язати будь-який проект компанії, навіть можна зв'язати будь-який проект компанії, -за умовчанням список проектів компанії: сторонні ідентифікатори, розділені комами: можна пов’язувати всі проекти цих сторонніх розробників (приклад: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Останні проекти %s LatestModifiedProjects=Останні модифіковані проекти %s OtherFilteredTasks=Інші відфільтровані завдання @@ -259,7 +263,7 @@ TimeSpentInvoiced=Витрачений час TimeSpentForIntervention=Витрачений час TimeSpentForInvoice=Витрачений час OneLinePerUser=Один рядок на користувача -ServiceToUseOnLines=Сервіс для використання на лініях +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Рахунок-фактура %s створено за час, витрачений на проект InterventionGeneratedFromTimeSpent=Втручання %s було створено з часу, витраченого на проект ProjectBillTimeDescription=Перевірте, чи ви вводите табель обліку робочого часу для завдань проекту І плануєте створювати рахунки-фактури з табеля обліку робочого часу для виставлення рахунку клієнту проекту (не перевіряйте, чи плануєте ви створювати рахунок-фактуру, який не базується на введених табелях обліку робочого часу). Примітка. Щоб створити рахунок-фактуру, перейдіть на вкладку «Витрачений час» проекту та виберіть рядки для включення. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Прибуток розраховується за доп AddPersonToTask=Додайте також до завдань UsageOrganizeEvent=Використання: Організація подій PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Класифікувати проект як закритий, коли всі його завдання виконані (100%% прогрес) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Примітка: існуючі проекти з усіма завданнями на 100%% прогрес це не вплине: вам доведеться закрити їх вручну. Цей параметр стосується лише відкритих проектів. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Виберіть рядки витраченого часу, які не виставляються, а потім групову дію "Створити рахунок-фактуру", щоб виставити рахунок ProjectTasksWithoutTimeSpent=Проектні завдання без витрат часу FormForNewLeadDesc=Дякуємо, заповнивши наступну форму, щоб зв’язатися з нами. Ви також можете надіслати нам електронний лист безпосередньо на адресу %s . @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/uk_UA/propal.lang b/htdocs/langs/uk_UA/propal.lang index 5b061dbff09..dd90644a1c4 100644 --- a/htdocs/langs/uk_UA/propal.lang +++ b/htdocs/langs/uk_UA/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Затримка доступності SetAvailability=Установити затримку доступності AfterOrder=після замовлення OtherProposals=Інші пропозиції + ##### Availability ##### AvailabilityTypeAV_NOW=Негайно AvailabilityTypeAV_1W=1 тиждень AvailabilityTypeAV_2W=2 тижні AvailabilityTypeAV_3W=3 тижні AvailabilityTypeAV_1M=1 місяць -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Представницька подальша пропозиція TypeContact_propal_external_BILLING=Зв'язок з рахунками-фактурою клієнта TypeContact_propal_external_CUSTOMER=Наступна пропозиція щодо контакту з клієнтом TypeContact_propal_external_SHIPPING=Контакт з клієнтом для доставки + # Document models -DocModelAzurDescription=Повна модель пропозиції (стара реалізація шаблону Cyan) -DocModelCyanDescription=Повна модель пропозиції -DefaultModelPropalCreate=Створення моделі за замовчуванням -DefaultModelPropalToBill=Шаблон за замовчуванням під час закриття бізнес-пропозиції (виставляється рахунок-фактура) -DefaultModelPropalClosed=Шаблон за умовчанням під час закриття бізнес-пропозиції (не оплачується) -ProposalCustomerSignature=Письмове прийняття, печатка компанії, дата та підпис -ProposalsStatisticsSuppliers=Статистика пропозицій постачальників -CaseFollowedBy=Слідом за випадком -SignedOnly=Тільки підписано -NoSign=Набір не підписаний -NoSigned=набір не підписаний CantBeNoSign=не можна встановити без підпису +CaseFollowedBy=Слідом за випадком ConfirmMassNoSignature=Масове Непідписане підтвердження ConfirmMassNoSignatureQuestion=Ви впевнені, що хочете встановити непідписані вибрані записи? -IsNotADraft=не є чернеткою -PassedInOpenStatus=було підтверджено -Sign=Підписати -Signed=підписаний -ConfirmMassValidation=Підтвердження масової перевірки ConfirmMassSignature=Масове підтвердження підпису -ConfirmMassValidationQuestion=Ви впевнені, що хочете перевірити вибрані записи? ConfirmMassSignatureQuestion=Ви впевнені, що хочете підписати вибрані записи? -IdProposal=Ідентифікатор пропозиції +ConfirmMassValidation=Підтвердження масової перевірки +ConfirmMassValidationQuestion=Ви впевнені, що хочете перевірити вибрані записи? +ConfirmRefusePropal=Ви впевнені, що хочете відмовитися від цієї комерційної пропозиції? +ContractSigned=Contract signed +DefaultModelPropalClosed=Шаблон за умовчанням під час закриття бізнес-пропозиції (не оплачується) +DefaultModelPropalCreate=Створення моделі за замовчуванням +DefaultModelPropalToBill=Шаблон за замовчуванням під час закриття бізнес-пропозиції (виставляється рахунок-фактура) +DocModelAzurDescription=Повна модель пропозиції (стара реалізація шаблону Cyan) +DocModelCyanDescription=Повна модель пропозиції +FichinterSigned=Intervention signed IdProduct=Ідентифікатор продукту +IdProposal=Ідентифікатор пропозиції +IsNotADraft=не є чернеткою LineBuyPriceHT=Купити Ціна Сума без податку за лінію -SignPropal=Прийняти пропозицію +NoSign=Refuse +NoSigned=набір не підписаний +PassedInOpenStatus=було підтверджено +PropalAlreadyRefused=Пропозиція вже відхилена +PropalAlreadySigned=Пропозиція вже прийнята +PropalRefused=Пропозиція відхилена +PropalSigned=Пропозиція прийнята +ProposalCustomerSignature=Письмове прийняття, печатка компанії, дата та підпис +ProposalsStatisticsSuppliers=Статистика пропозицій постачальників RefusePropal=Відмовитися від пропозиції Sign=Підписати -NoSign=Набір не підписаний -PropalAlreadySigned=Пропозиція вже прийнята -PropalAlreadyRefused=Пропозиція вже відхилена -PropalSigned=Пропозиція прийнята -PropalRefused=Пропозиція відхилена -ConfirmRefusePropal=Ви впевнені, що хочете відмовитися від цієї комерційної пропозиції? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Прийняти пропозицію +Signed=підписаний +SignedOnly=Тільки підписано diff --git a/htdocs/langs/uk_UA/recruitment.lang b/htdocs/langs/uk_UA/recruitment.lang index ed7879faf7e..d60521d4f15 100644 --- a/htdocs/langs/uk_UA/recruitment.lang +++ b/htdocs/langs/uk_UA/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Електронний рекрутер ToUseAGenericEmail=Щоб використовувати загальну електронну адресу. Якщо не визначено, використовуватиметься електронна адреса відповідального за підбір персоналу NewCandidature=Нова програма ListOfCandidatures=Список додатків -RequestedRemuneration=Запитувана винагорода -ProposedRemuneration=Пропонована винагорода +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Запропоновано договір ContractSigned=Договір підписаний ContractRefused=Контракт відмовлено RecruitmentCandidature=Застосування JobPositions=Посади RecruitmentCandidatures=Додатки -InterviewToDo=Інтерв’ю зробити +InterviewToDo=Contacts to follow AnswerCandidature=Відповідь на заявку YourCandidature=Ваша заявка YourCandidatureAnswerMessage=Дякую за вашу заявку.
    ... diff --git a/htdocs/langs/uk_UA/salaries.lang b/htdocs/langs/uk_UA/salaries.lang index 34ec2d0266d..b865205d031 100644 --- a/htdocs/langs/uk_UA/salaries.lang +++ b/htdocs/langs/uk_UA/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Обліковий запис, що використовується для третіх осіб користувача -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Спеціальний обліковий рахунок, визначений на картці користувача, використовуватиметься лише для обліку Subledger. Це буде використовуватися для Головної книги та як значення за замовчуванням для обліку підкниги, якщо для користувача не визначено спеціальний обліковий запис користувача. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Бухгалтерський рахунок за замовчуванням для виплати заробітної плати CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=За замовчуванням залиште порожнім параметр «Автоматично створювати загальний платіж» під час створення зарплати Salary=Заробітна плата diff --git a/htdocs/langs/uk_UA/stocks.lang b/htdocs/langs/uk_UA/stocks.lang index 6160f5c7e77..e89b866ced0 100644 --- a/htdocs/langs/uk_UA/stocks.lang +++ b/htdocs/langs/uk_UA/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Дата в майбутньому StocksByLotSerial=Акції за лотами/серійними LotSerial=Лоти/Серіали LotSerialList=Список лотів/серіалів +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Рухи ErrorWarehouseRefRequired=Потрібна довідкова назва складу ListOfWarehouses=Список складів @@ -48,7 +49,7 @@ StockCorrection=Корекція запасу CorrectStock=Правильний запас StockTransfer=Передача запасів TransferStock=Передача запасів -MassStockTransferShort=Перенесення маси запасів +MassStockTransferShort=Bulk stock change StockMovement=Рух запасів StockMovements=Рухи запасів NumberOfUnit=Кількість одиниць @@ -146,8 +147,9 @@ Replenishments=Поповнення NbOfProductBeforePeriod=Кількість товару %s в наявності до вибраного періоду (< %s) NbOfProductAfterPeriod=Кількість продукту %s на складі після вибраного періоду (> %s) MassMovement=Масовий рух -SelectProductInAndOutWareHouse=Виберіть вихідний склад і цільовий склад, продукт і кількість, а потім натисніть «%s». Після того, як це буде зроблено для всіх необхідних рухів, натисніть «%s». +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Передача запису +RecordMovements=Record stock movements ReceivingForSameOrder=Квитанції на це замовлення StockMovementRecorded=Зафіксовано рух запасів RuleForStockAvailability=Правила вимог до запасів @@ -234,7 +236,7 @@ StockIncrease=Збільшення запасів StockDecrease=Зниження запасів InventoryForASpecificWarehouse=Інвентар для конкретного складу InventoryForASpecificProduct=Інвентаризація для конкретного товару -StockIsRequiredToChooseWhichLotToUse=Запас необхідний, щоб вибрати, який лот використовувати +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Змусити до AlwaysShowFullArbo=Відображати повне дерево складу у спливаючому вікні посилань на склад (Попередження: це може значно знизити продуктивність) StockAtDatePastDesc=Тут можна переглянути запаси (реальні запаси) на певну дату в минулому @@ -265,10 +267,53 @@ ProductBarcodeDoesNotExist=Товар зі штрих-кодом не існує WarehouseId=Ідентифікатор складу WarehouseRef=Склад Реф SaveQtyFirst=Спочатку збережіть реальні інвентаризовані кількості, перш ніж запитувати створення руху запасів. +ToStart=Start InventoryStartedShort=Розпочатий ErrorOnElementsInventory=Операцію скасовано з таких причин: ErrorCantFindCodeInInventory=Не вдається знайти наступний код в інвентарі QtyWasAddedToTheScannedBarcode=Успіху!! Кількість додано до всіх запитаних штрих-кодів. Ви можете закрити інструмент Scanner. -StockChangeDisabled=Зміна на складі вимкнена +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=Для терміналу не визначено склад ClearQtys=Очистити всі кількості +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Налаштування +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/uk_UA/ticket.lang b/htdocs/langs/uk_UA/ticket.lang index 97c96e419f5..d88d27762ff 100644 --- a/htdocs/langs/uk_UA/ticket.lang +++ b/htdocs/langs/uk_UA/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Видалити заявки Permission56004=Управління заявками Permission56005=Перегляньте заявки всіх контрагентів (не діє для зовнішніх користувачів, завжди обмежуйтеся третьою стороною, від якої вони залежать) +Tickets=Заявки TicketDictType=Заявка - Типи TicketDictCategory=Заявка - Групи TicketDictSeverity=Заявка - серйозності @@ -90,8 +91,8 @@ TicketPublicAccess=Загальнодоступний інтерфейс, яки TicketSetupDictionaries=Тип заявки, складність та аналітичні коди можна налаштувати із словників TicketParamModule=Налаштування змінної модуля TicketParamMail=Налаштування електронної пошти -TicketEmailNotificationFrom=Електронна пошта відправника для відповідей на заявки -TicketEmailNotificationFromHelp=Електронна пошта відправника для відповідей на заявки, надіслані з Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Повідомте про створення заявки на цю адресу електронної пошти TicketEmailNotificationToHelp=За наявності цієї адреси електронної пошти буде сповіщено про створення заявки TicketNewEmailBodyLabel=Текстове повідомлення надіслано після створення квитка @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Вказаний тут текст буде вставл TicketParamPublicInterface=Налаштування загальнодоступного інтерфейсу TicketsEmailMustExist=Для створення квитка потрібна наявна адреса електронної пошти TicketsEmailMustExistHelp=У загальнодоступному інтерфейсі електронна адреса вже має бути заповнена в базі даних, щоб створити новий квиток. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Загальнодоступний інтерфейс TicketUrlPublicInterfaceLabelAdmin=Альтернативна URL-адреса для загальнодоступного інтерфейсу TicketUrlPublicInterfaceHelpAdmin=Можна визначити псевдонім для веб-сервера і таким чином зробити доступним загальнодоступний інтерфейс з іншою URL-адресою (сервер повинен діяти як проксі-сервер на цій новій URL-адресі) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=При закритті квитка вам буде TicketWrongContact=Наданий контакт не є частиною поточних контактів для квитка. Електронна пошта не надіслана. TicketChooseProductCategory=Категорія продуктів для підтримки квитків TicketChooseProductCategoryHelp=Виберіть категорію продукту підтримки квитків. Це буде використано для автоматичного зв’язування контракту з квитком. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Квиток призначено TicketChangeType=Змінити тип TicketChangeCategory=Змінити аналітичний код TicketChangeSeverity=Зміна тяжкості -TicketAddMessage=Додайте повідомлення -AddMessage=Додайте повідомлення +TicketAddMessage=Add private message MessageSuccessfullyAdded=Квиток додано TicketMessageSuccessfullyAdded=Повідомлення успішно додано TicketMessagesList=Список повідомлень @@ -202,8 +206,8 @@ TicketSeverity=Тяжкість ShowTicket=Дивіться квиток RelatedTickets=Пов'язані квитки TicketAddIntervention=Створіть втручання -CloseTicket=Закрити|Вирішити квиток -AbandonTicket=Відмовитися від квитка +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Закрити|Розгадати квиток ConfirmCloseAticket=Підтвердьте закриття квитка ConfirmAbandonTicket=Чи підтверджуєте ви закриття квитка до статусу «Закинутий» @@ -217,18 +221,17 @@ SendMessageByEmail=Надіслати повідомлення електрон TicketNewMessage=Нове повідомлення ErrorMailRecipientIsEmptyForSendTicketMessage=Одержувач порожній. Немає надсилання електронної пошти TicketGoIntoContactTab=Будь ласка, перейдіть на вкладку «Контакти», щоб вибрати їх -TicketMessageMailIntro=Вступ +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Цей текст додається лише на початку листа і не буде збережено. -TicketMessageMailIntroLabelAdmin=Вступний текст до всіх відповідей на заявки TicketMessageMailIntroText=Привіт,
    Нова відповідь була додана до заявки, на яку ви підписалися. Ось повідомлення:
    TicketMessageMailIntroHelpAdmin=Цей текст буде вставлено перед відповіддю під час відповіді на заявку від Dolibarr -TicketMessageMailSignature=Підпис -TicketMessageMailSignatureHelp=Цей текст додається лише в кінці листа і не буде збережено. -TicketMessageMailSignatureText=Повідомлення надіслав %s через Dolibarr -TicketMessageMailSignatureLabelAdmin=Підпис електронного листа з відповіддю -TicketMessageMailSignatureHelpAdmin=Цей текст буде вставлено після повідомлення-відповіді. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Тільки цей текст буде збережено в списку повідомлень на картці квитка. TicketMessageSubstitutionReplacedByGenericValues=Змінні підстановки замінюються загальними значеннями. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=З того часу минув час TicketTimeToRead=Минув час до прочитання TicketTimeElapsedBeforeSince=Час, що минув до / після @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=На квитку було розмі TicketAssignedToYou=Квиток призначено TicketAssignedEmailBody=Вам призначено квиток #%s від %s MarkMessageAsPrivate=Позначити повідомлення як приватне +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Це повідомлення не відображатиметься зовнішнім користувачам TicketEmailOriginIssuer=Емітент при відправленні квитків InitialMessage=Початкове повідомлення @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Ви можете переглянути TicketCloseEmailBodyInfosTrackUrlCustomer=Ви можете ознайомитися з історією цього квитка, натиснувши наступне посилання TicketEmailPleaseDoNotReplyToThisEmail=Будь ласка, не відповідайте безпосередньо на цей електронний лист! Використовуйте посилання, щоб відповісти в інтерфейсі. TicketPublicInfoCreateTicket=Ця форма дозволяє записати заявку на підтримку в нашій системі управління. -TicketPublicPleaseBeAccuratelyDescribe=Будь ласка, точно опишіть проблему. Надайте якомога більше інформації, щоб ми могли правильно ідентифікувати ваш запит. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Будь ласка, введіть ідентифікатор відстеження квитка TicketTrackId=Загальнодоступний ідентифікатор відстеження OneOfTicketTrackId=Один із ваших ідентифікаторів відстеження diff --git a/htdocs/langs/uk_UA/users.lang b/htdocs/langs/uk_UA/users.lang index 1557098d9fa..1f58e8b8106 100644 --- a/htdocs/langs/uk_UA/users.lang +++ b/htdocs/langs/uk_UA/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Видалити з групи PasswordChangedAndSentTo=Пароль змінено та надіслано на адресу %s . PasswordChangeRequest=Запит на зміну пароля для %s PasswordChangeRequestSent=Запит на зміну пароля для %s надіслано на адресу %s a09a4b739f17f17. -IfLoginExistPasswordRequestSent=Якщо цей логін є дійсним обліковим записом, було надіслано електронний лист для відновлення пароля. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Якщо цей електронний лист є дійсним обліковим записом, було надіслано лист для відновлення пароля. ConfirmPasswordReset=Підтвердьте скидання пароля MenuUsersAndGroups=Користувачі та групи @@ -68,7 +68,6 @@ CreateDolibarrLogin=Створити користувача CreateDolibarrThirdParty=Створіть третю сторону LoginAccountDisableInDolibarr=Обліковий запис вимкнено в Dolibarr. UsePersonalValue=Використовуйте особисту цінність -InternalUser=Внутрішній користувач ExportDataset_user_1=Користувачі та їх властивості DomainUser=Користувач домену %s Reactivate=Повторно активувати @@ -128,3 +127,5 @@ DateLastLogin=Дата останнього входу DatePreviousLogin=Дата попереднього входу IPLastLogin=IP останній вхід IPPreviousLogin=IP попередній вхід +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang index a09e3a09cc0..3bb25746a89 100644 --- a/htdocs/langs/uk_UA/website.lang +++ b/htdocs/langs/uk_UA/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=код +WebsiteName=Name of the website WebsiteSetupDesc=Створіть тут веб-сайти, які ви хочете використовувати. Потім перейдіть до меню Веб-сайти, щоб відредагувати їх. DeleteWebsite=Видалити веб-сайт ConfirmDeleteWebsite=Ви впевнені, що хочете видалити цей веб-сайт? Усі його сторінки та вміст також буде видалено. Завантажені файли (наприклад, у каталог медіа, модуль ECM, ...) залишаться. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Додавання внизу заголовка HTML (за WEBSITE_ROBOT=Файл робота (robots.txt) WEBSITE_HTACCESS=Файл веб-сайту .htaccess WEBSITE_MANIFEST_JSON=Файл manifest.json веб-сайту -WEBSITE_README=Файл README.md WEBSITE_KEYWORDSDesc=Використовуйте кому для розділення значень -EnterHereLicenseInformation=Введіть тут метадані або інформацію про ліцензію, щоб заповнити файл README.md. якщо ви розповсюджуєте свій веб-сайт як шаблон, файл буде включено до пакета Temptate. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML-заголовок (лише для цієї сторінки) PageNameAliasHelp=Ім'я або псевдонім сторінки.
    Цей псевдонім також використовується для підробки URL-адреси SEO, коли веб-сайт запускається з віртуального хоста веб-сервера (наприклад, Apacke, Nginx, ...). Скористайтеся кнопкою « %s », щоб відредагувати цей псевдонім. EditTheWebSiteForACommonHeader=Примітка. Якщо ви хочете визначити персоналізований заголовок для всіх сторінок, відредагуйте заголовок на рівні сайту, а не на сторінці/контейнері. @@ -42,6 +43,8 @@ ViewPageInNewTab=Переглянути сторінку в новій вкла SetAsHomePage=Встановити як домашню сторінку RealURL=Справжня URL-адреса ViewWebsiteInProduction=Перегляд веб-сайту за допомогою домашньої URL-адреси +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Використовуйте з Apache/NGinx/...
    Створіть на своєму веб-сервері (Apache, Nginx, ...) виділений віртуальний хост з увімкненим та кореневим каталогом на a0342fccfda06c7b0f043fccfda07c07f0b0fccfda07c0b0f06f77c0b0f06f77c0b0f06f77c0f06f77c0b0f06cf7c0b ExampleToUseInApacheVirtualHostConfig=Приклад для використання в налаштуваннях віртуального хоста Apache: YouCanAlsoTestWithPHPS= Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s сторінок/контейнерів відновлено RegenerateWebsiteContent=Відновіть файли кешу веб-сайту AllowedInFrames=Дозволено в кадрах DefineListOfAltLanguagesInWebsiteProperties=Визначте список усіх доступних мов у властивостях веб-сайту. -GenerateSitemaps=Створення файлу карти сайту +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Якщо ви підтвердите, ви видалите наявний файл карти сайту... ConfirmSitemapsCreation=Підтвердьте створення карти сайту SitemapGenerated=Створено файл карти сайту %s @@ -145,3 +148,10 @@ ImportFavicon=Фавікон ErrorFaviconType=Значок фавікона має бути png ErrorFaviconSize=Favicon має бути розміром 16x16, 32x32 або 64x64 FaviconTooltip=Завантажте зображення, яке має бути у форматі png (16x16, 32x32 або 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/uk_UA/withdrawals.lang b/htdocs/langs/uk_UA/withdrawals.lang index 0cd26dde3da..0048332a4fd 100644 --- a/htdocs/langs/uk_UA/withdrawals.lang +++ b/htdocs/langs/uk_UA/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Рахунок-фактура чекає к AmountToWithdraw=Сума для зняття AmountToTransfer=Сума для переказу NoInvoiceToWithdraw=Немає рахунка-фактури, відкритого для '%s'. Перейдіть на вкладку «%s» на картці рахунків-фактур, щоб зробити запит. -NoSupplierInvoiceToWithdraw=Рахунок-фактура постачальника з відкритими "Прями кредитними запитами" не очікується. Перейдіть на вкладку «%s» на картці рахунків-фактур, щоб зробити запит. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Відповідальний користувач WithdrawalsSetup=Налаштування оплати прямого дебету CreditTransferSetup=Налаштування кредитного переказу @@ -42,6 +42,7 @@ CreditTransferStatistics=Статистика кредитних переказ Rejects=Відкидає LastWithdrawalReceipt=Останні квитанції прямого дебету %s MakeWithdrawRequest=Зробіть запит на оплату прямим дебетом +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Зробіть запит на кредитний переказ WithdrawRequestsDone=%s Записи запитів на оплату прямого дебету BankTransferRequestsDone=%s Записи запитів на переказ кредиту @@ -100,8 +101,11 @@ CreditDate=Кредит на WithdrawalFileNotCapable=Не вдається створити файл квитанції про зняття коштів для вашої країни %s (Ваша країна не підтримується) ShowWithdraw=Показати замовлення прямого дебету IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Однак, якщо в рахунку-фактурі є принаймні одне платіжне доручення прямого дебету, яке ще не оброблено, воно не буде визначено як оплачене, щоб дозволити попереднє зняття коштів. -DoStandingOrdersBeforePayments=Ця вкладка дозволяє запитати платіжне доручення прямого дебету. Після завершення перейдіть до меню Банк->Оплата прямим дебетом, щоб створити та керувати дорученням прямого дебету. Коли доручення прямого дебету закрито, оплата за рахунками-фактурами буде автоматично записана, а рахунки-фактури закриються, якщо залишок до оплати є нульовим. -DoCreditTransferBeforePayments=На цій вкладці можна запитати доручення кредитного переказу. Після завершення перейдіть до меню Банк->Оплата кредитним переказом, щоб створити та керувати дорученням на кредитний переказ. Коли замовлення на кредитний переказ закрито, оплата за рахунками-фактурами буде автоматично записана, а рахунки-фактури закриються, якщо залишок до оплати є нульовим. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Файл дебетового доручення CreditTransferFile=Файл переказу кредиту SetToStatusSent=Установити статус «Файл надіслано» @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Не вдається створити запит SepaMandate=Доручення на прямий дебет SEPA SepaMandateShort=Мандат SEPA PleaseReturnMandate=Будь ласка, поверніть цю форму доручення електронною поштою на адресу %s або поштою на адресу -SEPALegalText=Підписуючи цю форму доручення, ви уповноважуєте (A) %s надсилати інструкції вашому банку щодо списання коштів із вашого рахунку та (B) вашому банку дебетувати ваш рахунок відповідно до інструкцій від %s. Як частина ваших прав, ви маєте право на відшкодування від вашого банку згідно з умовами вашої угоди з вашим банком. Ваші права щодо вищезазначеного мандату пояснюються у заяві, яку ви можете отримати у своєму банку. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Ідентифікатор кредитора CreditorName=Ім'я кредитора SEPAFillForm=(B) Будь ласка, заповніть усі поля, позначені * diff --git a/htdocs/langs/uk_UA/workflow.lang b/htdocs/langs/uk_UA/workflow.lang index 64e893d5601..f86ee72d0d0 100644 --- a/htdocs/langs/uk_UA/workflow.lang +++ b/htdocs/langs/uk_UA/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Класифікув descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Класифікувати пов’язане джерело замовлення на закупівлю як отримане, коли прийом підтверджено (і якщо кількість, отримана всіма прийомами, така ж, як у замовленні на покупку для оновлення) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Класифікувати замовлення на закупівлю з пов’язаним джерелом як отримане, коли прийом закритий (і якщо кількість, отримана всіма прийомами, така ж, як у замовленні на покупку для оновлення) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Класифікуйте прийоми як «оплачувані», коли пов’язане замовлення постачальника підтверджено +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=При створенні квитка зв’яжіть доступні контракти відповідної третьої сторони descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Зв’язуючи договори, шукайте серед тих материнських компаній @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Закрийте всі заходи, п AutomaticCreation=Автоматичне створення AutomaticClassification=Автоматична класифікація # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Класифікувати відправлення зв’язаного джерела як закрите, коли рахунок-фактура клієнта підтверджено +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Автоматичне закриття AutomaticLinking=Автоматичне підключення diff --git a/htdocs/langs/ur_PK/accountancy.lang b/htdocs/langs/ur_PK/accountancy.lang index 0871e38c1b8..c6d3ff12bb5 100644 --- a/htdocs/langs/ur_PK/accountancy.lang +++ b/htdocs/langs/ur_PK/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=وہ ممالک جو EEC میں نہیں ہیں۔ CountriesInEECExceptMe=ای ای سی میں شامل ممالک سوائے %s کے CountriesExceptMe=%s کے علاوہ تمام ممالک AccountantFiles=ماخذ کی دستاویزات برآمد کریں۔ -ExportAccountingSourceDocHelp=اس ٹول کے ساتھ، آپ ان سورس ایونٹس کو ایکسپورٹ کر سکتے ہیں (CSV اور PDFs میں فہرست) جو آپ کی اکاؤنٹنسی بنانے کے لیے استعمال ہوتے ہیں۔ +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=اپنے جریدے برآمد کرنے کے لیے، مینو اندراج %s - %s استعمال کریں۔ +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=حساب کتاب کے حساب سے دیکھیں VueBySubAccountAccounting=اکاؤنٹنگ ذیلی اکاؤنٹ کے ذریعہ دیکھیں @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=وینڈرز کے لیے مین اکاؤنٹن MainAccountForUsersNotDefined=صارفین کے لیے مرکزی اکاؤنٹنگ اکاؤنٹ سیٹ اپ میں بیان نہیں کیا گیا ہے۔ MainAccountForVatPaymentNotDefined=VAT ادائیگی کے لیے مرکزی اکاؤنٹنگ اکاؤنٹ سیٹ اپ میں بیان نہیں کیا گیا ہے۔ MainAccountForSubscriptionPaymentNotDefined=رکنیت کی ادائیگی کے لیے مرکزی اکاؤنٹنگ اکاؤنٹ سیٹ اپ میں بیان نہیں کیا گیا ہے۔ +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=اکاؤنٹنگ ایریا AccountancyAreaDescIntro=اکاؤنٹنسی ماڈیول کا استعمال کئی مراحل میں کیا جاتا ہے: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=بینک اکاؤنٹ میں لین دین کی برا ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=جرنل پر ڈرافٹ ایکسپورٹ کو فعال کریں۔ ACCOUNTANCY_COMBO_FOR_AUX=ذیلی اکاؤنٹ کے لیے کومبو لسٹ کو فعال کریں (اگر آپ کے پاس بہت سارے فریق ثالث ہیں تو سست ہو سکتے ہیں، قدر کے کسی حصے پر تلاش کرنے کی صلاحیت کو توڑ دیں) ACCOUNTING_DATE_START_BINDING=اکاؤنٹنسی میں بائنڈنگ اور ٹرانسفر شروع کرنے کے لیے تاریخ کی وضاحت کریں۔ اس تاریخ کے نیچے، لین دین کو اکاؤنٹنگ میں منتقل نہیں کیا جائے گا۔ -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=اکاؤنٹنسی ٹرانسفر پر، ڈیفالٹ کے مطابق مدت شو کو منتخب کریں۔ +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=جریدہ فروخت کریں۔ -ACCOUNTING_PURCHASE_JOURNAL=جریدہ خریدیں۔ -ACCOUNTING_MISCELLANEOUS_JOURNAL=متفرق جریدہ +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=اخراجات کی رپورٹ جرنل -ACCOUNTING_SOCIAL_JOURNAL=سماجی جریدہ +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=نیا جریدہ ہے۔ +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=سماجی جریدہ ACCOUNTING_RESULT_PROFIT=نتیجہ اکاؤنٹنگ اکاؤنٹ (منافع) ACCOUNTING_RESULT_LOSS=نتیجہ اکاؤنٹنگ اکاؤنٹ (نقصان) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=بندش کا جریدہ -ACCOUNTING_ACCOUNT_TRANSFER_CASH=عبوری بینک ٹرانسفر کا اکاؤنٹنگ اکاؤنٹ +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=عبوری بینک ٹرانسفر اکاؤنٹ -ACCOUNTING_ACCOUNT_SUSPENSE=انتظار کا حساب کتاب -DONATION_ACCOUNTINGACCOUNT=عطیات کو رجسٹر کرنے کے لیے اکاؤنٹنگ اکاؤنٹ -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=سبسکرپشنز کو رجسٹر کرنے کے لیے اکاؤنٹنگ اکاؤنٹ +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=کسٹمر ڈپازٹ کو رجسٹر کرنے کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=خریدی گئی مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=EEC میں خریدی گئی مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=خریدی گئی اور EEC سے درآمد شدہ مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=فروخت شدہ مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=EEC میں فروخت ہونے والی مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں اس کی وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=EEC سے باہر فروخت اور برآمد کی جانے والی مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=خریدی گئی خدمات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر سروس شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=EEC میں خریدی گئی خدمات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر سروس شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=خریدی گئی اور EEC سے درآمد شدہ خدمات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر سروس شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=فروخت شدہ خدمات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر سروس شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=EEC میں فروخت کی جانے والی خدمات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر سروس شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=EEC سے فروخت اور برآمد کی جانے والی خدمات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر سروس شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=دستاویز کی قسم Docdate=تاریخ @@ -211,7 +217,7 @@ Codejournal=جرنل JournalLabel=جرنل لیبل NumPiece=ٹکڑا نمبر TransactionNumShort=نمبر لین دین -AccountingCategory=حسب ضرورت گروپ +AccountingCategory=Custom group of accounts GroupByAccountAccounting=عام لیجر اکاؤنٹ کے لحاظ سے گروپ کریں۔ GroupBySubAccountAccounting=سبلیجر اکاؤنٹ کے لحاظ سے گروپ کریں۔ AccountingAccountGroupsDesc=آپ یہاں اکاؤنٹنگ اکاؤنٹ کے کچھ گروپس کی وضاحت کر سکتے ہیں۔ وہ ذاتی اکاؤنٹنگ رپورٹس کے لیے استعمال کیے جائیں گے۔ @@ -265,13 +271,13 @@ Reconcilable=قابلِ مصالحت TotalVente=ٹیکس سے پہلے کل کاروبار TotalMarge=فروخت کا کل مارجن -DescVentilCustomer=پروڈکٹ اکاؤنٹنگ اکاؤنٹ سے منسلک (یا نہیں) کسٹمر انوائس لائنوں کی فہرست یہاں دیکھیں -DescVentilMore=زیادہ تر معاملات میں، اگر آپ پہلے سے طے شدہ مصنوعات یا خدمات استعمال کرتے ہیں اور آپ پروڈکٹ/سروس کارڈ پر اکاؤنٹ نمبر سیٹ کرتے ہیں، تو ایپلیکیشن آپ کے انوائس لائنوں اور آپ کے اکاؤنٹس کے چارٹ کے اکاؤنٹنگ اکاؤنٹ کے درمیان تمام پابندیاں لگانے کے قابل ہو جائے گی۔ بٹن کے ساتھ ایک کلک "%s" ۔ اگر اکاؤنٹ کو پروڈکٹ/سروس کارڈز پر سیٹ نہیں کیا گیا تھا یا اگر آپ کے پاس اب بھی کچھ لائنیں ہیں جو اکاؤنٹ سے منسلک نہیں ہیں، تو آپ کو مینو " %s " مینو سے دستی بائنڈنگ کرنا ہوگی۔ -DescVentilDoneCustomer=یہاں انوائس کے صارفین کی لائنوں کی فہرست اور ان کے پروڈکٹ اکاؤنٹنگ اکاؤنٹ سے مشورہ کریں۔ -DescVentilTodoCustomer=انوائس لائنوں کو باندھیں جو پہلے سے پروڈکٹ اکاؤنٹنگ اکاؤنٹ کے ساتھ پابند نہیں ہیں۔ -ChangeAccount=درج ذیل اکاؤنٹنگ اکاؤنٹ کے ساتھ منتخب لائنوں کے لیے پروڈکٹ/سروس اکاؤنٹنگ اکاؤنٹ تبدیل کریں: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=یہاں وینڈر انوائس لائنوں کی فہرست سے مشورہ کریں جو کسی پروڈکٹ اکاؤنٹنگ اکاؤنٹ سے منسلک ہیں یا ابھی تک پابند نہیں ہیں (صرف اکاؤنٹنسی میں پہلے سے منتقل نہیں کیا گیا ریکارڈ نظر آتا ہے) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=یہاں وینڈر انوائس کی لائنوں کی فہرست اور ان کے اکاؤنٹنگ اکاؤنٹ سے مشورہ کریں۔ DescVentilTodoExpenseReport=اخراجات کی رپورٹ لائنوں کو باندھیں جو فیس اکاؤنٹنگ اکاؤنٹ کے ساتھ پہلے سے پابند نہیں ہیں۔ DescVentilExpenseReport=فیس اکاؤنٹنگ اکاؤنٹ سے منسلک (یا نہیں) اخراجات کی رپورٹ لائنوں کی فہرست یہاں دیکھیں @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=اگر آپ اکاؤنٹنگ اکاؤنٹ کو اخ DescVentilDoneExpenseReport=یہاں اخراجات کی رپورٹوں کی فہرست اور ان کے فیس اکاؤنٹنگ اکاؤنٹ سے مشورہ کریں۔ Closure=سالانہ بندش -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=تحریر، حروف اور حذف میں کسی قسم کی ترمیم یا حذف ممنوع ہو گا۔ مشق کے لیے تمام اندراجات کی توثیق ہونی چاہیے ورنہ بند کرنا ممکن نہیں ہوگا۔ ValidateHistory=خودکار طور پر باندھیں۔ AutomaticBindingDone=خودکار بائنڈنگ ہو گئی (%s) - کچھ ریکارڈ کے لیے خودکار بائنڈنگ ممکن نہیں ہے (%s) -ErrorAccountancyCodeIsAlreadyUse=خرابی، آپ اس اکاؤنٹنگ اکاؤنٹ کو حذف نہیں کر سکتے کیونکہ یہ استعمال کیا گیا ہے۔ +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=توازن FicheVentilation=بائنڈنگ کارڈ GeneralLedgerIsWritten=لین دین لیجر میں لکھا جاتا ہے۔ GeneralLedgerSomeRecordWasNotRecorded=کچھ لین دین کو جرنلائز نہیں کیا جا سکا۔ اگر کوئی اور غلطی کا پیغام نہیں ہے، تو شاید اس کی وجہ یہ ہے کہ وہ پہلے ہی جرنلائز ہو چکے تھے۔ NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=پروڈکٹس کی فہرست کسی اکاؤنٹنگ اکاؤنٹ کے پابند نہیں ہے۔ +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=بائنڈنگ کو تبدیل کریں۔ Accounted=لیجر میں حساب NotYetAccounted=ابھی تک اکاؤنٹنگ میں منتقل نہیں ہوا ہے۔ @@ -319,9 +325,10 @@ AccountingJournalType1=متفرق آپریشنز AccountingJournalType2=سیلز AccountingJournalType3=خریداری AccountingJournalType4=بینک -AccountingJournalType5=اخراجات کی رپورٹ +AccountingJournalType5=Expense reports AccountingJournalType8=انوینٹری AccountingJournalType9=نیا ہے۔ +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=یہ جریدہ پہلے ہی استعمال میں ہے۔ AccountingAccountForSalesTaxAreDefinedInto=نوٹ: سیلز ٹیکس کے اکاؤنٹنگ اکاؤنٹ کی وضاحت مینو میں %s - %s a097fz0 a09784a میں کی گئی ہے۔ NumberOfAccountancyEntries=اندراجات کی تعداد @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=نقل و حرکت کی تعداد ACCOUNTING_DISABLE_BINDING_ON_SALES=سیلز پر اکاؤنٹنسی میں بائنڈنگ اور ٹرانسفر کو غیر فعال کریں (کسٹمر انوائس کو اکاؤنٹنگ میں مدنظر نہیں رکھا جائے گا) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=خریداری پر اکاؤنٹنسی میں بائنڈنگ اور ٹرانسفر کو غیر فعال کریں (وینڈر انوائس کو اکاؤنٹنگ میں مدنظر نہیں رکھا جائے گا) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=اخراجات کی رپورٹوں پر اکاؤنٹنسی میں بائنڈنگ اور ٹرانسفر کو غیر فعال کریں (اکاؤنٹنگ میں اخراجات کی رپورٹوں کو مدنظر نہیں رکھا جائے گا) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=اکاؤنٹنگ برآمد فائل کی نسل کی تصدیق؟ ExportDraftJournal=ڈرافٹ جرنل برآمد کریں۔ @@ -398,7 +407,11 @@ Calculated=حساب لگایا Formula=فارمولا ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=مع AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=اکاؤنٹنگ اندراجات @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=ملٹی کرنسی کوڈ (آئیڈیوائز) DateExport=تاریخ برآمد WarningReportNotReliable=انتباہ، یہ رپورٹ لیجر پر مبنی نہیں ہے، لہذا اس میں لیجر میں دستی طور پر ترمیم شدہ لین دین شامل نہیں ہے۔ اگر آپ کی جرنلائزیشن اپ ٹو ڈیٹ ہے، تو بک کیپنگ کا نظریہ زیادہ درست ہے۔ ExpenseReportJournal=اخراجات کی رپورٹ جرنل -InventoryJournal=انوینٹری جرنل NAccounts=%s اکاؤنٹس diff --git a/htdocs/langs/ur_PK/admin.lang b/htdocs/langs/ur_PK/admin.lang index 0bfbae3e576..bb8a5d8626e 100644 --- a/htdocs/langs/ur_PK/admin.lang +++ b/htdocs/langs/ur_PK/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=کلائنٹ کولیشن WarningModuleNotActive=ماڈیول %s فعال ہونا ضروری ہے WarningOnlyPermissionOfActivatedModules=یہاں صرف فعال ماڈیولز سے متعلق اجازتیں دکھائی گئی ہیں۔ آپ ہوم-> سیٹ اپ-> ماڈیولز صفحہ میں دوسرے ماڈیولز کو چالو کر سکتے ہیں۔ DolibarrSetup=Dolibarr انسٹال یا اپ گریڈ کریں۔ -InternalUser=اندرونی صارف -ExternalUser=بیرونی صارف InternalUsers=اندرونی صارفین ExternalUsers=بیرونی صارفین UserInterface=یوزر انٹرفیس @@ -109,7 +107,7 @@ NextValueForReplacements=اگلی قدر (متبادل) MustBeLowerThanPHPLimit=نوٹ: آپ کی PHP کنفیگریشن فی الحال %s %s پر اپ لوڈ کرنے کے لیے زیادہ سے زیادہ فائل سائز کو محدود کرتی ہے، اس پیرامیٹر کی قدر سے قطع نظر NoMaxSizeByPHPLimit=نوٹ: آپ کی پی ایچ پی کی ترتیب میں کوئی حد مقرر نہیں ہے۔ MaxSizeForUploadedFiles=اپ لوڈ کردہ فائلوں کے لیے زیادہ سے زیادہ سائز (0 کسی بھی اپ لوڈ کی اجازت نہ دینے کے لیے) -UseCaptchaCode=لاگ ان پیج پر گرافیکل کوڈ (کیپچا) استعمال کریں۔ +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=اینٹی وائرس کمانڈ کا مکمل راستہ AntiVirusCommandExample=ClamAv ڈیمون کی مثال (کلاماو ڈیمون کی ضرورت ہے): /usr/bin/clamdscan
    کلیم ون کی مثال (بہت سست): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= کمانڈ لائن پر مزید پیرامیٹرز @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS میزبان (php.ini میں پہلے سے طے MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS پورٹ (یونکس جیسے سسٹمز پر پی ایچ پی میں بیان نہیں کیا گیا) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS میزبان (یونکس جیسے سسٹمز پر پی ایچ پی میں بیان نہیں کیا گیا) MAIN_MAIL_EMAIL_FROM=خودکار ای میلز کے لیے بھیجنے والا ای میل (php.ini میں ڈیفالٹ ویلیو: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=غلطی کے لیے استعمال ہونے والی ای میل ای میلز واپس کرتی ہے (بھیجے گئے ای میلز میں فیلڈز 'Errors-To') MAIN_MAIL_AUTOCOPY_TO= تمام بھیجی گئی ای میلز کو کاپی (Bcc) کریں۔ MAIN_DISABLE_ALL_MAILS=تمام ای میل بھیجنے کو غیر فعال کریں (ٹیسٹ کے مقاصد یا ڈیمو کے لیے) @@ -439,8 +438,10 @@ Unique=منفرد Boolean=بولین (ایک چیک باکس) ExtrafieldPhone = فون ExtrafieldPrice = قیمت +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = ای میل ExtrafieldUrl = یو آر ایل +ExtrafieldIP = IP ExtrafieldSelect = فہرست منتخب کریں۔ ExtrafieldSelectList = ٹیبل سے منتخب کریں۔ ExtrafieldSeparator=الگ کرنے والا (فیلڈ نہیں) @@ -477,7 +478,7 @@ InstalledInto=ڈائرکٹری %s میں انسٹال ہے۔ BarcodeInitForThirdparties=فریق ثالث کے لیے بڑے پیمانے پر بارکوڈ init BarcodeInitForProductsOrServices=بڑے پیمانے پر بارکوڈ شروع کریں یا مصنوعات یا خدمات کے لیے دوبارہ ترتیب دیں۔ CurrentlyNWithoutBarCode=فی الحال، آپ کے پاس %s ریکارڈ ہے -InitEmptyBarCode=اگلے %s خالی ریکارڈز کے لیے ابتدائی قدر +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=تمام موجودہ بارکوڈ اقدار کو مٹا دیں۔ ConfirmEraseAllCurrentBarCode=کیا آپ واقعی بارکوڈ کی تمام موجودہ اقدار کو مٹانا چاہتے ہیں؟ AllBarcodeReset=بارکوڈ کی تمام اقدار کو ہٹا دیا گیا ہے۔ @@ -501,10 +502,11 @@ WarningPHPMail=انتباہ: ایپلیکیشن سے ای میلز بھیجنے WarningPHPMailA=- ای میل سروس فراہم کنندہ کے سرور کا استعمال آپ کے ای میل کی قابل اعتمادیت کو بڑھاتا ہے، لہذا یہ سپیم کے طور پر نشان زد کیے بغیر ڈیلیوریبلٹی کو بڑھاتا ہے۔ WarningPHPMailB=- کچھ ای میل سروس فراہم کرنے والے (جیسے Yahoo) آپ کو اپنے سرور کے بجائے کسی دوسرے سرور سے ای میل بھیجنے کی اجازت نہیں دیتے ہیں۔ آپ کا موجودہ سیٹ اپ ای میل بھیجنے کے لیے ایپلیکیشن کے سرور کا استعمال کرتا ہے نہ کہ آپ کے ای میل فراہم کنندہ کا سرور، اس لیے کچھ وصول کنندگان (جو پابندی والے DMARC پروٹوکول کے ساتھ مطابقت رکھتا ہے) آپ کے ای میل فراہم کنندہ سے پوچھیں گے کہ کیا وہ آپ کی ای میل اور کچھ ای میل فراہم کنندگان کو قبول کر سکتے ہیں۔ (جیسے Yahoo) "نہیں" میں جواب دے سکتا ہے کیونکہ سرور ان کا نہیں ہے، اس لیے آپ کی بھیجی گئی ای میلز میں سے کچھ کو ڈیلیوری کے لیے قبول نہیں کیا جا سکتا ہے (اپنے ای میل فراہم کنندہ کے بھیجنے کے کوٹے سے بھی محتاط رہیں)۔ WarningPHPMailC=- ای میلز بھیجنے کے لیے آپ کے اپنے ای میل سروس پرووائیڈر کے SMTP سرور کا استعمال کرنا بھی دلچسپ ہے اس لیے ایپلی کیشن سے بھیجی گئی تمام ای میلز آپ کے میل باکس کی "بھیجی گئی" ڈائرکٹری میں بھی محفوظ ہو جائیں گی۔ -WarningPHPMailD=نیز، اس لیے ای میل بھیجنے کے طریقے کو "SMTP" کی قدر میں تبدیل کرنے کی سفارش کی جاتی ہے۔ اگر آپ واقعی ای میلز بھیجنے کے لیے پہلے سے طے شدہ "PHP" طریقہ کو برقرار رکھنا چاہتے ہیں، تو صرف اس انتباہ کو نظر انداز کریں، یا ہوم - سیٹ اپ - دیگر میں MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP مستقل کو 1 پر سیٹ کرکے اسے ہٹا دیں۔ +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=اگر آپ کے ای میل SMTP فراہم کنندہ کو ای میل کلائنٹ کو کچھ IP پتوں تک محدود کرنے کی ضرورت ہے (بہت کم)، یہ آپ کی ERP CRM درخواست کے لیے میل صارف ایجنٹ (MUA) کا IP پتہ ہے: %s ۔ WarningPHPMailSPF=اگر آپ کے بھیجنے والے کے ای میل ایڈریس میں موجود ڈومین کا نام SPF ریکارڈ کے ذریعے محفوظ ہے (اپنے ڈومین نام کے رجسٹرار سے پوچھیں)، تو آپ کو اپنے ڈومین کے DNS کے SPF ریکارڈ میں درج ذیل آئی پیز کو شامل کرنا ہوگا: %s a0a65d071f6f6fz0. -ActualMailSPFRecordFound=اصل SPF ریکارڈ ملا: %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=تفصیل دکھانے کے لیے کلک کریں۔ DependsOn=اس ماڈیول کو ماڈیول کی ضرورت ہے RequiredBy=یہ ماڈیول ماڈیول (زبانوں) کو درکار ہے @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    مثال:
    ایک نیا فریق ثال PageUrlForDefaultValuesList=
    مثال:
    تیسرے فریقوں کی فہرست والے صفحہ کے لیے، یہ %s ہے۔
    کسٹم ڈائرکٹری میں نصب بیرونی ماڈیولز کے URL کے لیے، "کسٹم/" شامل نہ کریں اس لیے mymodule/mypagelist.php جیسا راستہ استعمال کریں نہ کہ custom/mymodule/mypage.list.
    اگر آپ صرف اس صورت میں ڈیفالٹ قدر چاہتے ہیں جب url میں کچھ پیرامیٹر ہو تو آپ %s استعمال کرسکتے ہیں۔ AlsoDefaultValuesAreEffectiveForActionCreate=یہ بھی نوٹ کریں کہ فارم بنانے کے لیے پہلے سے طے شدہ اقدار کو اوور رائٹنگ کرنا صرف ان صفحات کے لیے کام کرتا ہے جو درست طریقے سے ڈیزائن کیے گئے تھے (لہذا پیرامیٹر ایکشن = تخلیق یا پیش کریں...) EnableDefaultValues=ڈیفالٹ اقدار کی حسب ضرورت کو فعال کریں۔ -EnableOverwriteTranslation=اوور رائٹ ترجمہ کے استعمال کو فعال کریں۔ +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=اس کوڈ والی کلید کا ترجمہ ملا ہے۔ اس قدر کو تبدیل کرنے کے لیے، آپ کو Home-Setup-translation سے اس میں ترمیم کرنا ہوگی۔ WarningSettingSortOrder=تنبیہ، پہلے سے طے شدہ ترتیب ترتیب دینے کے نتیجے میں فہرست کے صفحہ پر جاتے وقت تکنیکی خرابی ہو سکتی ہے اگر فیلڈ ایک نامعلوم فیلڈ ہے۔ اگر آپ کو ایسی غلطی کا سامنا کرنا پڑتا ہے تو، پہلے سے طے شدہ ترتیب کو ہٹانے اور پہلے سے طے شدہ رویے کو بحال کرنے کے لیے اس صفحہ پر واپس آئیں۔ Field=میدان @@ -645,9 +647,9 @@ Module2400Name=تقریبات/ایجنڈا Module2400Desc=واقعات کو ٹریک کریں۔ ٹریکنگ کے مقاصد کے لیے خودکار ایونٹس کو لاگ کریں یا دستی ایونٹس یا میٹنگز کو ریکارڈ کریں۔ یہ اچھے کسٹمر یا وینڈر ریلیشن شپ مینجمنٹ کے لیے پرنسپل ماڈیول ہے۔ Module2500Name=ڈی ایم ایس / ای سی ایم Module2500Desc=دستاویز مینجمنٹ سسٹم / الیکٹرانک مواد کا انتظام۔ آپ کے تیار کردہ یا ذخیرہ شدہ دستاویزات کی خودکار تنظیم۔ جب آپ کو ضرورت ہو تو ان کا اشتراک کریں۔ -Module2600Name=API/ویب خدمات (SOAP سرور) +Module2600Name=API / Web services (SOAP server) Module2600Desc=API خدمات فراہم کرنے والے Dolibarr SOAP سرور کو فعال کریں۔ -Module2610Name=API/ویب خدمات (REST سرور) +Module2610Name=API / Web services (REST server) Module2610Desc=API خدمات فراہم کرنے والے Dolibarr REST سرور کو فعال کریں۔ Module2660Name=ویب سروسز کو کال کریں (SOAP کلائنٹ) Module2660Desc=Dolibarr ویب سروسز کلائنٹ کو فعال کریں (ڈیٹا/درخواستوں کو بیرونی سرورز تک پہنچانے کے لیے استعمال کیا جا سکتا ہے۔ فی الحال صرف پرچیز آرڈرز سپورٹ ہیں۔) @@ -698,6 +700,7 @@ Module62000Name=انکوٹرمز Module62000Desc=Incoterms کا نظم کرنے کے لیے خصوصیات شامل کریں۔ Module63000Name=حوالہ جات Module63000Desc=ایونٹس کو مختص کرنے کے لیے وسائل (پرنٹرز، کاریں، کمرے، ...) کا نظم کریں۔ +Module94160Name=Receptions Permission11=کسٹمر کی رسیدیں پڑھیں Permission12=کسٹمر انوائس بنائیں/ترمیم کریں۔ Permission13=گاہک کی رسیدیں باطل کریں۔ @@ -714,6 +717,7 @@ Permission27=تجارتی تجاویز کو حذف کریں۔ Permission28=تجارتی تجاویز برآمد کریں۔ Permission31=مصنوعات پڑھیں Permission32=مصنوعات بنائیں/ترمیم کریں۔ +Permission33=Read prices products Permission34=مصنوعات کو حذف کریں۔ Permission36=پوشیدہ پروڈکٹس دیکھیں/ان کا نظم کریں۔ Permission38=مصنوعات برآمد کریں۔ @@ -739,6 +743,7 @@ Permission79=سبسکرپشنز بنائیں/ترمیم کریں۔ Permission81=گاہکوں کے احکامات پڑھیں Permission82=صارفین کے آرڈرز بنائیں/ترمیم کریں۔ Permission84=صارفین کے آرڈرز کی توثیق کریں۔ +Permission85=Generate the documents sales orders Permission86=صارفین کو آرڈر بھیجیں۔ Permission87=گاہکوں کے احکامات کو بند کریں۔ Permission88=صارفین کے آرڈرز منسوخ کریں۔ @@ -840,9 +845,9 @@ Permission286=رابطے برآمد کریں۔ Permission291=ٹیرف پڑھیں Permission292=ٹیرف پر اجازتیں مقرر کریں۔ Permission293=کسٹمر کے ٹیرف میں ترمیم کریں۔ -Permission300=بارکوڈز پڑھیں -Permission301=بارکوڈز بنائیں/ترمیم کریں۔ -Permission302=بارکوڈز کو حذف کریں۔ +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=خدمات پڑھیں Permission312=معاہدے کے لیے سروس/سبسکرپشن تفویض کریں۔ Permission331=بُک مارکس پڑھیں @@ -874,6 +879,7 @@ Permission525=قرض کیلکولیٹر تک رسائی حاصل کریں۔ Permission527=قرضے برآمد کریں۔ Permission531=خدمات پڑھیں Permission532=خدمات بنائیں/ترمیم کریں۔ +Permission533=Read prices services Permission534=خدمات کو حذف کریں۔ Permission536=پوشیدہ خدمات دیکھیں/ان کا نظم کریں۔ Permission538=ایکسپورٹ سروسز @@ -968,13 +974,14 @@ Permission3301=نئے ماڈیولز بنائیں Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=تشخیص کی توثیق کریں۔ -Permission4023=تشخیص کو حذف کریں۔ -Permission4030=موازنہ کا مینو دیکھیں +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=ویب سائٹ کا مواد پڑھیں Permission10002=ویب سائٹ کا مواد بنائیں/ترمیم کریں (HTML اور جاوا اسکرپٹ مواد) Permission10003=ویب سائٹ کا مواد بنائیں/ترمیم کریں (متحرک پی ایچ پی کوڈ)۔ خطرناک، محدود ڈویلپرز کے لیے محفوظ ہونا چاہیے۔ @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=یونٹ کی قسم SetupSaved=سیٹ اپ محفوظ ہو گیا۔ SetupNotSaved=سیٹ اپ محفوظ نہیں ہوا۔ +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=ماڈیول کی فہرست پر واپس جائیں۔ BackToDictionaryList=لغت کی فہرست پر واپس جائیں۔ TypeOfRevenueStamp=ٹیکس سٹیمپ کی قسم @@ -1129,7 +1140,7 @@ ValueOfConstantKey=کنفیگریشن مستقل کی قدر ConstantIsOn=آپشن %s آن ہے۔ NbOfDays=دنوں کی تعداد AtEndOfMonth=مہینے کے آخر میں -CurrentNext=موجودہ/اگلا +CurrentNext=A given day in month Offset=آفسیٹ AlwaysActive=ہمیشہ متحرک Upgrade=اپ گریڈ @@ -1235,11 +1246,13 @@ BrowserName=براؤزر کا نام BrowserOS=براؤزر OS ListOfSecurityEvents=Dolibarr سیکورٹی کے واقعات کی فہرست SecurityEventsPurged=سیکورٹی کے واقعات کو صاف کیا +TrackableSecurityEvents=Trackable security events LogEventDesc=مخصوص سیکیورٹی ایونٹس کے لیے لاگنگ کو فعال کریں۔ منتظمین لاگ ان مینو کے ذریعے %s - %s ۔ وارننگ، یہ فیچر ڈیٹا بیس میں بڑی مقدار میں ڈیٹا تیار کر سکتا ہے۔ AreaForAdminOnly=سیٹ اپ پیرامیٹرز صرف ایڈمنسٹریٹر صارفین کے ذریعے سیٹ کیے جا سکتے ہیں۔ SystemInfoDesc=سسٹم کی معلومات متفرق تکنیکی معلومات ہیں جو آپ کو صرف پڑھنے کے موڈ میں ملتی ہیں اور صرف منتظمین کے لیے دکھائی دیتی ہیں۔ SystemAreaForAdminOnly=یہ علاقہ صرف منتظم صارفین کے لیے دستیاب ہے۔ Dolibarr صارف کی اجازت اس پابندی کو تبدیل نہیں کر سکتی۔ CompanyFundationDesc=اپنی کمپنی/تنظیم کی معلومات میں ترمیم کریں۔ مکمل ہونے پر صفحہ کے نیچے "%s" بٹن پر کلک کریں۔ +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=اگر آپ کے پاس ایک بیرونی اکاؤنٹنٹ/بک کیپر ہے، تو آپ یہاں اس کی معلومات میں ترمیم کر سکتے ہیں۔ AccountantFileNumber=اکاؤنٹنٹ کوڈ DisplayDesc=درخواست کی شکل اور پیشکش کو متاثر کرنے والے پیرامیٹرز کو یہاں تبدیل کیا جا سکتا ہے۔ @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=آپ کو صارف %s YourPHPDoesNotHaveSSLSupport=ایس ایس ایل فنکشنز آپ کے پی ایچ پی میں دستیاب نہیں ہیں۔ DownloadMoreSkins=ڈاؤن لوڈ کرنے کے لیے مزید کھالیں۔ SimpleNumRefModelDesc=حوالہ نمبر %syymm-nnnn فارمیٹ میں لوٹاتا ہے جہاں yy سال ہے، mm مہینہ ہے اور nnnn ایک ترتیب وار خود بخود بڑھنے والا نمبر ہے بغیر کسی ری سیٹ کے +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=حوالہ نمبر %s-nnnn فارمیٹ میں لوٹاتا ہے جہاں nnnn ایک ترتیب وار خود بخود بڑھنے والا نمبر ہے بغیر کسی ری سیٹ کے ShowProfIdInAddress=ایڈریس کے ساتھ پروفیشنل آئی ڈی دکھائیں۔ ShowVATIntaInAddress=انٹرا کمیونٹی VAT نمبر چھپائیں۔ @@ -1376,7 +1391,7 @@ GetBarCode=بارکوڈ حاصل کریں۔ NumberingModules=نمبر دینے والے ماڈل DocumentModules=دستاویزی ماڈلز ##### Module password generation -PasswordGenerationStandard=اندرونی Dolibarr الگورتھم کے مطابق تیار کردہ پاس ورڈ واپس کریں: %s حروف جس میں مشترکہ نمبر اور چھوٹے حروف شامل ہوں۔ +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=تیار کردہ پاس ورڈ تجویز نہ کریں۔ پاس ورڈ کو دستی طور پر ٹائپ کرنا ضروری ہے۔ PasswordGenerationPerso=اپنی ذاتی طور پر طے شدہ ترتیب کے مطابق پاس ورڈ واپس کریں۔ SetupPerso=آپ کی ترتیب کے مطابق @@ -1430,6 +1445,10 @@ SuppliersPayment=وینڈر کی ادائیگی SupplierPaymentSetup=وینڈر ادائیگیوں کا سیٹ اپ InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=تجارتی تجاویز ماڈیول سیٹ اپ ProposalsNumberingModules=تجارتی تجویز نمبر دینے والے ماڈل @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=مسودہ معاہدوں پر واٹر مارک ( ##### Members ##### MembersSetup=ممبران ماڈیول سیٹ اپ MemberMainOptions=اہم اختیارات +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= ہر ممبر کے لیے لاگ ان کا انتظام کریں۔ AdherentMailRequired=نیا رکن بنانے کے لیے ای میل درکار ہے۔ MemberSendInformationByMailByDefault=اراکین کو میل کی تصدیق بھیجنے کے لیے چیک باکس (توثیق یا نئی رکنیت) بطور ڈیفالٹ آن ہے۔ MemberCreateAnExternalUserForSubscriptionValidated=ہر نئے رکن کی توثیق شدہ رکنیت کے لیے ایک بیرونی صارف لاگ ان بنائیں -VisitorCanChooseItsPaymentMode=وزیٹر دستیاب ادائیگی کے طریقوں میں سے انتخاب کر سکتا ہے۔ +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=میعاد ختم ہونے والی سبسکرپشنز کی ای میل
    کے ذریعے خودکار یاد دہانی کو فعال کریں۔ نوٹ: یاد دہانی بھیجنے کے لیے ماڈیول %s فعال اور درست طریقے سے سیٹ اپ ہونا چاہیے۔ MembersDocModules=ممبر کے ریکارڈ سے تیار کردہ دستاویزات کے لیے دستاویزی ٹیمپلیٹس ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=اعلی درجے کے ایڈیٹر کو فعال کریں: FCKeditorForNotePublic=WYSIWIG عناصر کے "عوامی نوٹس" فیلڈ کا تخلیق/ایڈیشن FCKeditorForNotePrivate=WYSIWIG عناصر کے "نجی نوٹ" فیلڈ کی تخلیق/ایڈیشن FCKeditorForCompany=WYSIWIG عناصر کی فیلڈ تفصیل کا تخلیق/ایڈیشن (سوائے پروڈکٹس/سروسز) -FCKeditorForProduct=WYSIWIG مصنوعات/خدمات کی فیلڈ تفصیل کا تخلیق/ایڈیشن -FCKeditorForProductDetails=WYSIWIG تمام اداروں (تجاویز، آرڈرز، انوائسز وغیرہ...) کے لیے مصنوعات کی تفصیلات کی لائنز کی تخلیق/ایڈیشن۔ تنبیہ: اس کیس کے لیے اس اختیار کو استعمال کرنے کی سنجیدگی سے سفارش نہیں کی جاتی ہے کیونکہ یہ پی ڈی ایف فائلز بناتے وقت خصوصی حروف اور صفحہ کی فارمیٹنگ میں مسائل پیدا کر سکتا ہے۔ +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= بڑے پیمانے پر ای میلنگ کے لیے WYSIWIG تخلیق/ایڈیشن (ٹولز-> ای میلنگ) FCKeditorForUserSignature=WYSIWIG تخلیق/صارف کے دستخط کا ایڈیشن FCKeditorForMail=تمام میل کے لیے WYSIWIG تخلیق/ایڈیشن (سوائے ٹولز-> ای میلنگ) @@ -1762,7 +1782,7 @@ DetailMenuHandler=مینو ہینڈلر جہاں نیا مینو دکھانا ہ DetailMenuModule=ماڈیول کا نام اگر مینو اندراج ماڈیول سے آتا ہے۔ DetailType=مینو کی قسم (اوپر یا بائیں) DetailTitre=ترجمہ کے لیے مینو لیبل یا لیبل کوڈ -DetailUrl=URL جہاں مینو آپ کو بھیجتا ہے (مطلق URL لنک یا http:// کے ساتھ بیرونی لنک) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=اندراج دکھانے یا نہ کرنے کی شرط DetailRight=غیر مجاز گرے مینو ڈسپلے کرنے کی حالت DetailLangs=لیبل کوڈ کے ترجمہ کے لیے Lang فائل کا نام @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POS میں اسٹاک میں کمی CashDeskYouDidNotDisableStockDecease=آپ نے پوائنٹ آف سیل سے سیل کرتے وقت اسٹاک میں کمی کو غیر فعال نہیں کیا۔ اس لیے گودام کی ضرورت ہے۔ CashDeskForceDecreaseStockLabel=بیچ کی مصنوعات کے اسٹاک میں کمی کو مجبور کیا گیا تھا۔ CashDeskForceDecreaseStockDesc=سب سے پہلے سب سے پرانے کھانے اور فروخت کی تاریخوں سے کم کریں۔ -CashDeskReaderKeyCodeForEnter=بار کوڈ ریڈر میں بیان کردہ "Enter" کے لیے کلیدی کوڈ (مثال: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=بک مارک ماڈیول سیٹ اپ BookmarkDesc=یہ ماڈیول آپ کو بک مارکس کا انتظام کرنے کی اجازت دیتا ہے۔ آپ اپنے بائیں مینو میں کسی بھی Dolibarr صفحات یا بیرونی ویب سائٹس میں شارٹ کٹس بھی شامل کر سکتے ہیں۔ @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=وینڈر انوائسز نمبرنگ ماڈلز IfSetToYesDontForgetPermission=اگر غیر null قدر پر سیٹ ہے تو، دوسری منظوری کے لیے اجازت یافتہ گروپوں یا صارفین کو اجازت دینا نہ بھولیں۔ ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind ماڈیول سیٹ اپ -PathToGeoIPMaxmindCountryDataFile=میکس مائنڈ آئی پی ٹو کنٹری ترجمہ پر مشتمل فائل کا راستہ۔
    مثالیں:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat a0342fccfda19bz/Cousr/Cosme/Couser +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=نوٹ کریں کہ آپ کی آئی پی ٹو کنٹری ڈیٹا فائل ایک ڈائرکٹری کے اندر ہونی چاہیے جسے آپ کا پی ایچ پی پڑھ سکتا ہے (اپنا پی ایچ پی اوپن_بیسڈر سیٹ اپ اور فائل سسٹم کی اجازتوں کو چیک کریں)۔ YouCanDownloadFreeDatFileTo=آپ %s پر Maxmind GeoIP کنٹری فائل کا مفت ڈیمو ورژن ڈاؤن لوڈ کرسکتے ہیں۔ YouCanDownloadAdvancedDatFileTo=آپ %s پر Maxmind GeoIP کنٹری فائل کے
    اپ ڈیٹس کے ساتھ مزید مکمل ورژن بھی ڈاؤن لوڈ کر سکتے ہیں۔ @@ -1922,6 +1942,7 @@ BackupDumpWizard=ڈیٹا بیس ڈمپ فائل بنانے کے لیے وزرڈ BackupZipWizard=دستاویزات کی ڈائرکٹری کے آرکائیو بنانے کے لیے مددگار SomethingMakeInstallFromWebNotPossible=مندرجہ ذیل وجہ سے ویب انٹرفیس سے بیرونی ماڈیول کی تنصیب ممکن نہیں ہے۔ SomethingMakeInstallFromWebNotPossible2=اس وجہ سے، یہاں بیان کردہ اپ گریڈ کرنے کا عمل ایک دستی عمل ہے جو صرف ایک مراعات یافتہ صارف انجام دے سکتا ہے۔ +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=آپ کے منتظم کے ذریعہ ایپلیکیشن سے بیرونی ماڈیول کی تنصیب کو غیر فعال کر دیا گیا ہے۔ اس خصوصیت کی اجازت دینے کے لیے آپ کو اس سے فائل %s کو ہٹانے کے لیے کہنا چاہیے۔ ConfFileMustContainCustom=ایپلیکیشن سے کسی بیرونی ماڈیول کو انسٹال کرنے یا بنانے کے لیے ماڈیول فائلوں کو ڈائرکٹری میں محفوظ کرنے کی ضرورت ہے %s ۔ اس ڈائرکٹری کو Dolibarr کے ذریعے پروسیس کرنے کے لیے، آپ کو اپنا conf/conf.php سیٹ اپ کرنا چاہیے تاکہ 2 ڈائرکٹیو لائنیں شامل کی جا سکیں:
    _c06bz0.
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=جب ماؤس کی حرکت گزر جاتی ہے تو ٹیبل لائنوں کو نمایاں کریں۔ @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=کی بورڈ پر CTRL+F5 دبائیں یا اس قد NotSupportedByAllThemes=ول بنیادی تھیمز کے ساتھ کام کرتا ہے، ہو سکتا ہے کہ بیرونی تھیمز کی حمایت نہ ہو۔ BackgroundColor=پس منظر کا رنگ TopMenuBackgroundColor=ٹاپ مینو کے لیے پس منظر کا رنگ -TopMenuDisableImages=ٹاپ مینو میں تصاویر چھپائیں۔ +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=بائیں مینو کے لیے پس منظر کا رنگ BackgroundTableTitleColor=ٹیبل ٹائٹل لائن کے لیے پس منظر کا رنگ BackgroundTableTitleTextColor=ٹیبل ٹائٹل لائن کے لیے متن کا رنگ @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=خریداری کے احکامات MailToSendSupplierInvoice=وینڈر کی رسیدیں MailToSendContract=معاہدے MailToSendReception=استقبالیہ +MailToExpenseReport=Expense reports MailToThirdparty=تیسرے فریقوں MailToMember=ممبران MailToUser=صارفین @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=پی ڈی ایف پر دایاں مارجن MAIN_PDF_MARGIN_TOP=پی ڈی ایف پر ٹاپ مارجن MAIN_PDF_MARGIN_BOTTOM=پی ڈی ایف پر نیچے کا مارجن MAIN_DOCUMENTS_LOGO_HEIGHT=پی ڈی ایف پر لوگو کی اونچائی +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=پروپوزل لائنز پر تصویر کے لیے کالم شامل کریں۔ MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=کالم کی چوڑائی اگر لائنوں پر تصویر شامل کی جائے۔ MAIN_PDF_NO_SENDER_FRAME=مرسل ایڈریس فریم پر بارڈرز چھپائیں۔ @@ -2047,6 +2070,8 @@ RemoveSpecialChars=خصوصی حروف کو ہٹا دیں۔ COMPANY_AQUARIUM_CLEAN_REGEX=کلین ویلیو کے لیے ریجیکس فلٹر (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=کلین ویلیو کے لیے ریجیکس فلٹر (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=نقل کی اجازت نہیں ہے۔ +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=ڈیٹا پروٹیکشن آفیسر (ڈی پی او، ڈیٹا پرائیویسی یا جی ڈی پی آر رابطہ) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=ٹول ٹپ پر دکھانے کے لیے متن کی مدد کریں۔ @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=نوٹ: مینو %s - %s میں سیلز ٹیکس یا VAT است SwapSenderAndRecipientOnPDF=پی ڈی ایف دستاویزات پر بھیجنے والے اور وصول کنندہ کے پتے کی پوزیشن کو تبدیل کریں۔ FeatureSupportedOnTextFieldsOnly=تنبیہ، خصوصیت صرف ٹیکسٹ فیلڈز اور کومبو لسٹوں پر معاون ہے۔ نیز ایک URL پیرامیٹر ایکشن=create or action=edit سیٹ ہونا چاہیے یا اس فیچر کو متحرک کرنے کے لیے صفحہ کا نام 'new.php' کے ساتھ ختم ہونا چاہیے۔ EmailCollector=ای میل کلکٹر +EmailCollectors=Email collectors EmailCollectorDescription=باقاعدگی سے ای میل باکسز (IMAP پروٹوکول کا استعمال کرتے ہوئے) اسکین کرنے کے لیے ایک طے شدہ جاب اور سیٹ اپ صفحہ شامل کریں اور اپنی درخواست میں موصول ہونے والی ای میلز کو صحیح جگہ پر ریکارڈ کریں اور/یا کچھ ریکارڈ خود بخود بنائیں (جیسے لیڈز)۔ NewEmailCollector=نیا ای میل کلکٹر EMailHost=ای میل IMAP سرور کا میزبان +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=میل باکس سورس ڈائرکٹری MailboxTargetDirectory=میل باکس ٹارگٹ ڈائرکٹری EmailcollectorOperations=کلیکٹر کے ذریعہ کرنے کے لئے آپریشن EmailcollectorOperationsDesc=اوپر سے نیچے کے حکم تک آپریشنز کیے جاتے ہیں۔ MaxEmailCollectPerCollect=فی جمع کردہ ای میلز کی زیادہ سے زیادہ تعداد +TestCollectNow=Test collect CollectNow=ابھی جمع کریں۔ ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=جمع کرنے کی تازہ ترین کوشش کی تاریخ DateLastcollectResultOk=جمع کرنے کی تازہ ترین کامیابی کی تاریخ LastResult=تازہ ترین نتیجہ EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=ای میل جمع تصدیق EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=کارروائی کے لیے کوئی نیا ای میل (مماثل فلٹرز) نہیں ہے۔ NothingProcessed=کچھ نہیں کیا -XEmailsDoneYActionsDone=%s ای میلز اہل ہیں، %s ای میلز پر کامیابی کے ساتھ کارروائی کی گئی (%s ریکارڈ/کارروائیوں کے لیے) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=ملازمت کی درخواست بنائیں FormatZip=زپ MainMenuCode=مینو انٹری کوڈ (مین مینو) ECMAutoTree=خودکار ECM درخت دکھائیں۔ -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=ابتدائی گھنٹے OpeningHoursDesc=اپنی کمپنی کے باقاعدہ کھلنے کے اوقات یہاں درج کریں۔ ResourceSetup=وسائل کے ماڈیول کی ترتیب @@ -2167,6 +2200,10 @@ EmailTemplate=ای میل کے لیے ٹیمپلیٹ EMailsWillHaveMessageID=ای میلز میں اس نحو سے مماثل ٹیگ 'حوالہ جات' ہوگا۔ PDF_SHOW_PROJECT=دستاویز پر پروجیکٹ دکھائیں۔ ShowProjectLabel=پروجیکٹ لیبل +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=اگر آپ چاہتے ہیں کہ آپ کی پی ڈی ایف میں کچھ متن ایک ہی جنریٹڈ پی ڈی ایف میں 2 مختلف زبانوں میں ڈپلیکیٹ ہوں، تو آپ کو یہاں یہ دوسری زبان سیٹ کرنی ہوگی تاکہ جنریٹ کی گئی پی ڈی ایف ایک ہی صفحہ میں 2 مختلف زبانوں پر مشتمل ہو، جو پی ڈی ایف بنانے کے وقت منتخب کی گئی ہو اور یہ ( صرف چند پی ڈی ایف ٹیمپلیٹس اس کی حمایت کرتے ہیں)۔ فی پی ڈی ایف 1 زبان کے لیے خالی رکھیں۔ PDF_USE_A=ڈیفالٹ فارمیٹ پی ڈی ایف کے بجائے PDF/A فارمیٹ کے ساتھ پی ڈی ایف دستاویزات تیار کریں۔ FafaIconSocialNetworksDesc=یہاں ایک FontAwesome آئیکن کا کوڈ درج کریں۔ اگر آپ نہیں جانتے کہ FontAwesome کیا ہے، تو آپ عام قدر fa-address-book استعمال کر سکتے ہیں۔ @@ -2195,12 +2232,12 @@ MailToPartnership=شراکت داری AGENDA_EVENT_DEFAULT_STATUS=فارم سے ایونٹ بناتے وقت ڈیفالٹ ایونٹ کی حیثیت YouShouldDisablePHPFunctions=آپ کو پی ایچ پی کے افعال کو غیر فعال کرنا چاہئے۔ IfCLINotRequiredYouShouldDisablePHPFunctions=سوائے اس کے کہ اگر آپ کو کسٹم کوڈ میں سسٹم کمانڈ چلانے کی ضرورت ہو، تو آپ کو پی ایچ پی فنکشنز کو غیر فعال کرنا چاہیے۔ -PHPFunctionsRequiredForCLI=شیل مقصد کے لیے (جیسا کہ طے شدہ جاب بیک اپ کرنا یا اینی ٹیوورس پروگرام چلانا)، آپ کو پی ایچ پی کے افعال کو برقرار رکھنا چاہیے۔ +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=آپ کی روٹ ڈائرکٹری (اچھی) میں عام پروگراموں کی کوئی قابل تحریر فائل یا ڈائرکٹری نہیں ملی RecommendedValueIs=تجویز کردہ: %s Recommended=تجویز کردہ NotRecommended=تجویز کردہ نہیں -ARestrictedPath=کچھ محدود راستہ +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=بیرونی ماڈیولز کی تازہ کاریوں کی جانچ کریں۔ CheckForModuleUpdateHelp=یہ عمل بیرونی ماڈیولز کے ایڈیٹرز سے رابطہ کرے گا تاکہ یہ چیک کیا جا سکے کہ آیا کوئی نیا ورژن دستیاب ہے۔ ModuleUpdateAvailable=ایک اپ ڈیٹ دستیاب ہے۔ @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=بیرونی ماڈیولز کے لیے کوئی اپ SwaggerDescriptionFile=سویگر API تفصیل فائل (مثال کے طور پر redoc کے ساتھ استعمال کے لیے) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=آپ نے فرسودہ WS API کو فعال کیا۔ اس کے بجائے آپ کو REST API استعمال کرنا چاہیے۔ RandomlySelectedIfSeveral=اگر متعدد تصاویر دستیاب ہوں تو تصادفی طور پر منتخب کریں۔ +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=ڈیٹا بیس کا پاس ورڈ conf فائل میں مبہم ہے۔ DatabasePasswordNotObfuscated=ڈیٹا بیس کا پاس ورڈ conf فائل میں مبہم نہیں ہے۔ APIsAreNotEnabled=APIs ماڈیولز فعال نہیں ہیں۔ @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Inventory Setup ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/ur_PK/categories.lang b/htdocs/langs/ur_PK/categories.lang index 51a89cb8a61..f9d26dc3a85 100644 --- a/htdocs/langs/ur_PK/categories.lang +++ b/htdocs/langs/ur_PK/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=یہ ممبر کسی ٹیگ/کیٹیگری میں نہیں ContactHasNoCategory=یہ رابطہ کسی ٹیگ/کیٹیگری میں نہیں ہے۔ ProjectHasNoCategory=یہ منصوبہ کسی بھی ٹیگ/زمرے میں نہیں ہے۔ ClassifyInCategory=ٹیگ/زمرہ میں شامل کریں۔ +RemoveCategory=Remove category NotCategorized=ٹیگ/زمرہ کے بغیر CategoryExistsAtSameLevel=یہ زمرہ اس حوالہ کے ساتھ پہلے سے موجود ہے۔ ContentsVisibleByAllShort=مواد سب کو نظر آتا ہے۔ @@ -67,6 +68,7 @@ StockCategoriesShort=گودام کے ٹیگ/زمرے ThisCategoryHasNoItems=اس زمرے میں کوئی آئٹم نہیں ہے۔ CategId=ٹیگ/زمرہ کی شناخت ParentCategory=پیرنٹ ٹیگ/زمرہ +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=پیرنٹ ٹیگ/زمرہ کا لیبل CatSupList=دکانداروں کے ٹیگ/زمرے کی فہرست CatCusList=صارفین/ممکنہ ٹیگز/زمرے کی فہرست @@ -86,15 +88,18 @@ DeleteFromCat=ٹیگز/زمرہ سے ہٹا دیں۔ ExtraFieldsCategories=تکمیلی صفات CategoriesSetup=ٹیگز/کیٹیگریز سیٹ اپ CategorieRecursiv=پیرنٹ ٹیگ/زمرہ کے ساتھ خود بخود لنک کریں۔ -CategorieRecursivHelp=اگر آپشن آن ہے، جب آپ کسی پروڈکٹ کو ذیلی زمرہ میں شامل کرتے ہیں، تو پروڈکٹ کو بھی پیرنٹ کیٹیگری میں شامل کر دیا جائے گا۔ +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=درج ذیل پروڈکٹ/سروس شامل کریں۔ AddCustomerIntoCategory=گاہک کو زمرہ تفویض کریں۔ AddSupplierIntoCategory=سپلائر کو زمرہ تفویض کریں۔ +AssignCategoryTo=Assign category to ShowCategory=ٹیگ/زمرہ دکھائیں۔ ByDefaultInList=فہرست میں بطور ڈیفالٹ ChooseCategory=زمرہ منتخب کریں۔ StocksCategoriesArea=گودام کے زمرے +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=ایونٹ کے زمرے WebsitePagesCategoriesArea=صفحہ کنٹینر زمرہ جات KnowledgemanagementsCategoriesArea=KM مضمون کے زمرے UseOrOperatorForCategories=زمرہ جات کے لیے 'OR' آپریٹر استعمال کریں۔ +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/ur_PK/commercial.lang b/htdocs/langs/ur_PK/commercial.lang index 2d111025699..aa2e759a7be 100644 --- a/htdocs/langs/ur_PK/commercial.lang +++ b/htdocs/langs/ur_PK/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=امکانی حیثیت DraftPropals=تجارتی تجاویز کا مسودہ NoLimit=کوئی حد نہیں ToOfferALinkForOnlineSignature=آن لائن دستخط کے لیے لنک -WelcomeOnOnlineSignaturePage=%s سے تجارتی تجاویز قبول کرنے کے لیے صفحہ پر خوش آمدید -ThisScreenAllowsYouToSignDocFrom=یہ اسکرین آپ کو ایک اقتباس/تجارتی تجویز کو قبول کرنے اور اس پر دستخط کرنے، یا انکار کرنے کی اجازت دیتی ہے۔ -ThisIsInformationOnDocumentToSign=یہ قبول کرنے یا انکار کرنے کے لیے دستاویز کی معلومات ہے۔ +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=اقتباس/تجارتی تجویز %s کے دستخط +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=آن لائن دستخط کرنے کی خصوصیت غیر فعال یا خصوصیت کے فعال ہونے سے پہلے تیار کردہ دستاویز diff --git a/htdocs/langs/ur_PK/companies.lang b/htdocs/langs/ur_PK/companies.lang index 19bb9e4ab55..7155ad7f338 100644 --- a/htdocs/langs/ur_PK/companies.lang +++ b/htdocs/langs/ur_PK/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=تیسرے فریق کی نوعیت NatureOfContact=رابطے کی نوعیت Address=پتہ State=ریاست/صوبہ +StateId=State ID StateCode=ریاست/صوبائی کوڈ StateShort=حالت Region=علاقہ Region-State=علاقہ - ریاست Country=ملک CountryCode=ملک کا کوڈ -CountryId=ملک کی شناخت +CountryId=Country ID Phone=فون PhoneShort=فون Skype=سکائپ @@ -105,6 +106,7 @@ WrongSupplierCode=وینڈر کوڈ غلط ہے۔ CustomerCodeModel=کسٹمر کوڈ ماڈل SupplierCodeModel=وینڈر کوڈ ماڈل Gencod=بارکوڈ +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=پروفیسر آئی ڈی 1 ProfId2Short=پروفیسر آئی ڈی 2 @@ -162,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=پروفیسر Id 1 (R.U.T.) ProfId2CO=- @@ -442,7 +444,7 @@ AddAddress=ایڈریس شامل کریں۔ SupplierCategory=وینڈر کیٹیگری JuridicalStatus200=آزاد DeleteFile=فائل کو ڈیلیٹ کریں -ConfirmDeleteFile=کیا آپ واقعی اس فائل کو حذف کرنا چاہتے ہیں؟ +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=سیلز کے نمائندے کو تفویض کیا گیا۔ Organization=تنظیم FiscalYearInformation=مالی سال diff --git a/htdocs/langs/ur_PK/compta.lang b/htdocs/langs/ur_PK/compta.lang index f442eed2da1..9302a6754ff 100644 --- a/htdocs/langs/ur_PK/compta.lang +++ b/htdocs/langs/ur_PK/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=توازن (پہلے) Balance=بقیہ Debit=ڈیبٹ Credit=کریڈٹ +AccountingDebit=Debit +AccountingCredit=Credit Piece=اکاؤنٹنگ ڈاکٹر AmountHTVATRealReceived=نیٹ جمع AmountHTVATRealPaid=خالص ادائیگی @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=فی پروڈکٹ جمع ہ TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=فی سیل ٹیکس کی شرح سے جمع ہونے والے ٹرن اوور کی رپورٹ دستیاب نہیں ہے۔ یہ رپورٹ صرف ٹرن اوور انوائس کے لیے دستیاب ہے۔ CalculationMode=کیلکولیشن موڈ AccountancyJournal=اکاؤنٹنگ کوڈ جرنل -ACCOUNTING_VAT_SOLD_ACCOUNT=سیلز پر VAT کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر VAT ڈکشنری سیٹ اپ پر وضاحت نہیں کی گئی ہے تو استعمال کیا جاتا ہے) -ACCOUNTING_VAT_BUY_ACCOUNT=خریداریوں پر VAT کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر VAT لغت کے سیٹ اپ پر وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) -ACCOUNTING_VAT_PAY_ACCOUNT=VAT کی ادائیگی کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ -ACCOUNTING_ACCOUNT_CUSTOMER=اکاؤنٹنگ اکاؤنٹ کسٹمر تھرڈ پارٹیز کے لیے استعمال کیا جاتا ہے۔ +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=تھرڈ پارٹی کارڈ پر بیان کردہ وقف اکاؤنٹنگ اکاؤنٹ صرف Subledger اکاؤنٹنگ کے لیے استعمال کیا جائے گا۔ یہ جنرل لیجر کے لیے اور سبلیجر اکاؤنٹنگ کی ڈیفالٹ ویلیو کے طور پر استعمال کیا جائے گا اگر تھرڈ پارٹی پر مخصوص کسٹمر اکاؤنٹنگ اکاؤنٹ کی وضاحت نہیں کی گئی ہے۔ -ACCOUNTING_ACCOUNT_SUPPLIER=وینڈر تھرڈ پارٹیز کے لیے اکاؤنٹنگ اکاؤنٹ استعمال کیا جاتا ہے۔ +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=تھرڈ پارٹی کارڈ پر بیان کردہ وقف اکاؤنٹنگ اکاؤنٹ صرف Subledger اکاؤنٹنگ کے لیے استعمال کیا جائے گا۔ یہ جنرل لیجر کے لیے اور سبلیجر اکاؤنٹنگ کی ڈیفالٹ ویلیو کے طور پر استعمال کیا جائے گا اگر تیسرے فریق پر ڈیڈیکیٹڈ وینڈر اکاؤنٹنگ اکاؤنٹ کی وضاحت نہیں کی گئی ہے۔ ConfirmCloneTax=سماجی/مالیاتی ٹیکس کے کلون کی تصدیق کریں۔ ConfirmCloneVAT=VAT ڈیکلریشن کے کلون کی تصدیق کریں۔ @@ -300,3 +302,4 @@ InvoiceToPay15Days=ادائیگی کے لیے (15 سے 30 دن) InvoiceToPay30Days=ادائیگی کے لیے (> 30 دن) ConfirmPreselectAccount=اکاؤنٹنسی کوڈ کو پہلے سے منتخب کریں۔ ConfirmPreselectAccountQuestion=کیا آپ واقعی اس اکاؤنٹنسی کوڈ کے ساتھ %s منتخب لائنوں کو پہلے سے منتخب کرنا چاہتے ہیں؟ +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/ur_PK/contracts.lang b/htdocs/langs/ur_PK/contracts.lang index f5008da9565..b99de6c488d 100644 --- a/htdocs/langs/ur_PK/contracts.lang +++ b/htdocs/langs/ur_PK/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=معاہدے/سبسکرپشنز ContractsAndLine=معاہدے اور معاہدے کی لائن Contract=معاہدہ ContractLine=معاہدہ لائن +ContractLines=Contract lines Closing=بند کرنا NoContracts=کوئی معاہدہ نہیں۔ MenuServices=خدمات @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=کیا آپ واقعی اس معاہدہ لائن کو MoveToAnotherContract=سروس کو دوسرے معاہدے میں منتقل کریں۔ ConfirmMoveToAnotherContract=میں نے نیا ہدف معاہدہ منتخب کیا اور تصدیق کی کہ میں اس سروس کو اس معاہدے میں منتقل کرنا چاہتا ہوں۔ ConfirmMoveToAnotherContractQuestion=منتخب کریں کہ کون سا موجودہ معاہدہ (اسی تیسرے فریق کا) ہے، آپ اس سروس کو منتقل کرنا چاہتے ہیں؟ -PaymentRenewContractId=کنٹریکٹ لائن کی تجدید کریں (نمبر %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=میعاد ختم ہونے کی تاریخ NoExpiredServices=کوئی میعاد ختم شدہ فعال خدمات نہیں ہیں۔ ListOfServicesToExpireWithDuration=خدمات کی فہرست %s دنوں میں ختم ہونے والی ہے۔ @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=کنٹریکٹ پر دستخط کرن HideClosedServiceByDefault=بند خدمات کو بطور ڈیفالٹ چھپائیں۔ ShowClosedServices=بند خدمات دکھائیں۔ HideClosedServices=بند خدمات کو چھپائیں۔ +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/ur_PK/cron.lang b/htdocs/langs/ur_PK/cron.lang index 432b56a5362..2e9136fb77f 100644 --- a/htdocs/langs/ur_PK/cron.lang +++ b/htdocs/langs/ur_PK/cron.lang @@ -26,7 +26,7 @@ CronCommand=کمانڈ CronList=طے شدہ ملازمتیں۔ CronDelete=طے شدہ ملازمتوں کو حذف کریں۔ CronConfirmDelete=کیا آپ واقعی ان شیڈول کردہ جابز کو حذف کرنا چاہتے ہیں؟ -CronExecute=طے شدہ کام شروع کریں۔ +CronExecute=Launch now CronConfirmExecute=کیا آپ واقعی ان طے شدہ ملازمتوں کو ابھی انجام دینا چاہتے ہیں؟ CronInfo=شیڈول کردہ جاب ماڈیول ملازمتوں کو خود بخود انجام دینے کے لیے شیڈول کرنے کی اجازت دیتا ہے۔ ملازمتیں دستی طور پر بھی شروع کی جا سکتی ہیں۔ CronTask=جاب @@ -58,7 +58,7 @@ CronNote=تبصرہ CronFieldMandatory=فیلڈز %s لازمی ہے۔ CronErrEndDateStartDt=اختتامی تاریخ تاریخ آغاز سے پہلے کی نہیں ہو سکتی StatusAtInstall=ماڈیول کی تنصیب کی حالت -CronStatusActiveBtn=شیڈول +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=غیر فعال کریں۔ CronTaskInactive=یہ کام غیر فعال ہے (شیڈول نہیں ہے) CronId=آئی ڈی @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=مینو میں جائیں " ہو JobDisabled=ملازمت غیر فعال MakeLocalDatabaseDumpShort=مقامی ڈیٹا بیس کا بیک اپ MakeLocalDatabaseDump=ایک مقامی ڈیٹا بیس ڈمپ بنائیں۔ پیرامیٹرز ہیں: کمپریشن ('gz' یا 'bz' یا 'none')، بیک اپ کی قسم ('mysql'، 'pgsql'، 'auto')، 1، 'auto' یا فائل کا نام، رکھنے کے لیے بیک اپ فائلوں کی تعداد +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=توجہ، کارکردگی کے مقصد کے لیے، فعال ملازمتوں کے نفاذ کی اگلی تاریخ جو بھی ہو، آپ کی ملازمتوں کو چلانے سے پہلے زیادہ سے زیادہ %s گھنٹے تک تاخیر ہو سکتی ہے۔ DATAPOLICYJob=ڈیٹا کلینر اور گمنام JobXMustBeEnabled=جاب %s کا فعال ہونا ضروری ہے۔ +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=آخری بار طے شدہ کام NextScheduledJobExecute=اگلا طے شدہ کام انجام دینے کے لیے NumberScheduledJobError=غلطی سے طے شدہ کاموں کی تعداد +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/ur_PK/datapolicy.lang b/htdocs/langs/ur_PK/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ur_PK/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ur_PK/ecm.lang b/htdocs/langs/ur_PK/ecm.lang index cc4546ea90c..06e18a8501f 100644 --- a/htdocs/langs/ur_PK/ecm.lang +++ b/htdocs/langs/ur_PK/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=دستی ڈائریکٹری ECMSectionAuto=خودکار ڈائریکٹری ECMSectionsManual=دستی درخت ECMSectionsAuto=خودکار درخت +ECMSectionsMedias=Medias tree ECMSections=ڈائریکٹریز ECMRoot=ای سی ایم روٹ ECMNewSection=نئی ڈائریکٹری @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=ذیلی ڈائریکٹریوں میں فائلوں کی ت ECMCreationUser=خالق ECMArea=DMS/ECM ایریا ECMAreaDesc=DMS/ECM (دستاویزی انتظامی نظام/الیکٹرانک مواد کا انتظام) کا علاقہ آپ کو Dolibarr میں تمام قسم کے دستاویزات کو تیزی سے محفوظ کرنے، شیئر کرنے اور تلاش کرنے کی اجازت دیتا ہے۔ -ECMAreaDesc2=* کسی عنصر کے کارڈ سے دستاویزات شامل کرتے وقت خودکار ڈائریکٹریز خود بخود بھر جاتی ہیں۔
    * دستی ڈائریکٹریز کو کسی خاص عنصر سے منسلک نہ ہونے والی دستاویزات کو محفوظ کرنے کے لیے استعمال کیا جا سکتا ہے۔ +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=ڈائریکٹری %s حذف کر دی گئی ہے۔ ECMSectionWasCreated=ڈائرکٹری %s بنائی گئی ہے۔ ECMSearchByKeywords=مطلوبہ الفاظ کے ذریعہ تلاش کریں۔ diff --git a/htdocs/langs/ur_PK/errors.lang b/htdocs/langs/ur_PK/errors.lang index 905d70ab7fb..b65a51ea2c0 100644 --- a/htdocs/langs/ur_PK/errors.lang +++ b/htdocs/langs/ur_PK/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=ای میل %s غلط معلوم ہوتا ہے (ڈومین کا ErrorBadUrl=یو آر ایل %s غلط ہے۔ ErrorBadValueForParamNotAString=آپ کے پیرامیٹر کی خراب قدر۔ یہ عام طور پر اس وقت شامل ہوتا ہے جب ترجمہ غائب ہو۔ ErrorRefAlreadyExists=حوالہ %s پہلے سے موجود ہے۔ +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=لاگ ان %s پہلے سے موجود ہے۔ ErrorGroupAlreadyExists=گروپ %s پہلے سے موجود ہے۔ ErrorEmailAlreadyExists=ای میل %s پہلے سے موجود ہے۔ @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists= %s نام کی ایک اور فائل پ ErrorPartialFile=فائل سرور کے ذریعہ مکمل طور پر موصول نہیں ہوئی۔ ErrorNoTmpDir=عارضی ڈائرکٹری %s موجود نہیں ہے۔ ErrorUploadBlockedByAddon=اپ لوڈ کو PHP/Apache پلگ ان کے ذریعے مسدود کر دیا گیا ہے۔ -ErrorFileSizeTooLarge=فائل کا سائز بہت بڑا ہے۔ +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=فیلڈ %s بہت لمبا ہے۔ ErrorSizeTooLongForIntType=int قسم کے لیے سائز بہت لمبا ہے (%s ہندسے زیادہ سے زیادہ) ErrorSizeTooLongForVarcharType=سٹرنگ کی قسم کے لیے سائز بہت لمبا ہے (%s حروف زیادہ سے زیادہ) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=اس فیچر کو کام کرنے کے لیے جا ErrorPasswordsMustMatch=دونوں ٹائپ شدہ پاس ورڈ ایک دوسرے سے مماثل ہونے چاہئیں ErrorContactEMail=ایک تکنیکی خرابی پیش آگئی۔ براہ کرم، درج ذیل ای میل کے لیے منتظم سے رابطہ کریں ErrorWrongValueForField=فیلڈ %s : ' %s a09a4b739f17f8zec0839f17f8zec083839f17f8zexa83fz39fz7839f49fz083839f49fz0839fz7839f49fz0839fz7fz19 سے مماثل ہے +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=فیلڈ %s : ' %s ' ایک قیمت میدان %s میں پائے کا نہیں ہے %s ErrorFieldRefNotIn=فیلڈ %s : ' %s 839f17f8z080839f739f17fz087839fz08739fz087fz0839fz087fz39fz087fz087fz087fz07fz087f49fz07fz09fz0839f17fz087fz087fz07fz07fz0839f17fz07fz087fz0839f17fz087fz. ErrorsOnXLines=%s غلطیاں پائی گئیں۔ @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=آپ کو پہلے اپنے اکاؤن ErrorFailedToFindEmailTemplate=کوڈ نام %s کے ساتھ ٹیمپلیٹ تلاش کرنے میں ناکام ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=سروس پر مدت کی وضاحت نہیں کی گئی ہے۔ فی گھنٹہ قیمت کا حساب لگانے کا کوئی طریقہ نہیں ہے۔ ErrorActionCommPropertyUserowneridNotDefined=صارف کا مالک درکار ہے۔ -ErrorActionCommBadType=ایونٹ کی قسم کی منتخب کردہ (id: %n، کوڈ: %s) ایونٹ کی قسم ڈکشنری میں موجود نہیں ہے۔ +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=ورژن کی جانچ ناکام ErrorWrongFileName=فائل کے نام میں __SOMETHING__ نہیں ہو سکتا ErrorNotInDictionaryPaymentConditions=ادائیگی کی شرائط ڈکشنری میں نہیں ہے، براہ کرم ترمیم کریں۔ @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s ڈرافٹ نہیں ہے۔ ErrorExecIdFailed=کمانڈ "id" پر عمل نہیں کیا جا سکتا ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=آپ کا پی ایچ پی پیرامیٹر upload_max_filesize (%s) PHP پیرامیٹر post_max_size (%s) سے زیادہ ہے۔ یہ ایک مستقل سیٹ اپ نہیں ہے۔ WarningPasswordSetWithNoAccount=اس ممبر کے لیے پاس ورڈ سیٹ کیا گیا تھا۔ تاہم، کوئی صارف اکاؤنٹ نہیں بنایا گیا تھا۔ لہذا یہ پاس ورڈ محفوظ ہے لیکن اسے Dolibarr میں لاگ ان کرنے کے لیے استعمال نہیں کیا جا سکتا۔ اسے کسی بیرونی ماڈیول/انٹرفیس کے ذریعے استعمال کیا جا سکتا ہے لیکن اگر آپ کو کسی رکن کے لیے کوئی لاگ ان یا پاس ورڈ متعین کرنے کی ضرورت نہیں ہے، تو آپ ممبر ماڈیول سیٹ اپ سے "ہر ممبر کے لیے لاگ ان کا انتظام کریں" کے آپشن کو غیر فعال کر سکتے ہیں۔ اگر آپ کو لاگ ان کا انتظام کرنے کی ضرورت ہے لیکن کسی پاس ورڈ کی ضرورت نہیں ہے، تو آپ اس انتباہ سے بچنے کے لیے اس فیلڈ کو خالی رکھ سکتے ہیں۔ نوٹ: اگر ممبر کسی صارف سے منسلک ہے تو ای میل کو لاگ ان کے طور پر بھی استعمال کیا جا سکتا ہے۔ -WarningMandatorySetupNotComplete=لازمی پیرامیٹرز ترتیب دینے کے لیے یہاں کلک کریں۔ +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=اپنے ماڈیولز اور ایپلیکیشنز کو فعال کرنے کے لیے یہاں کلک کریں۔ WarningSafeModeOnCheckExecDir=وارننگ، PHP آپشن safe_mode آن ہے لہذا کمانڈ کو php پیرامیٹر safe_mode_exec_dir a09a4b739f80f17 کے ذریعہ اعلان کردہ ڈائریکٹری کے اندر ذخیرہ کرنا ضروری ہے۔ WarningBookmarkAlreadyExists=اس عنوان یا اس ہدف (URL) کے ساتھ ایک بک مارک پہلے سے موجود ہے۔ @@ -311,6 +325,7 @@ WarningCreateSubAccounts=وارننگ، آپ براہ راست ذیلی اکاؤ WarningAvailableOnlyForHTTPSServers=صرف HTTPS محفوظ کنکشن استعمال کرنے کی صورت میں دستیاب ہے۔ WarningModuleXDisabledSoYouMayMissEventHere=ماڈیول %s کو فعال نہیں کیا گیا ہے۔ تو ہو سکتا ہے کہ آپ یہاں بہت سی تقریب سے محروم رہیں۔ WarningPaypalPaymentNotCompatibleWithStrict=قدر 'سخت' آن لائن ادائیگی کی خصوصیات کو صحیح طریقے سے کام نہیں کرتی ہے۔ اس کے بجائے 'Lax' استعمال کریں۔ +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = قدر درست نہیں ہے۔ diff --git a/htdocs/langs/ur_PK/eventorganization.lang b/htdocs/langs/ur_PK/eventorganization.lang index 8229da5d7ab..1b876e269c7 100644 --- a/htdocs/langs/ur_PK/eventorganization.lang +++ b/htdocs/langs/ur_PK/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=تقریب کی تنظیم Settings=ترتیبات EventOrganizationSetupPage = ایونٹ آرگنائزیشن سیٹ اپ صفحہ EVENTORGANIZATION_TASK_LABEL = پروجیکٹ کی توثیق ہونے پر خود بخود تخلیق کرنے کے لیے کاموں کا لیبل -EVENTORGANIZATION_TASK_LABELTooltip = آپ ایک منظم واقعہ کی توثیق کرتے ہیں، بعض کاموں کو خود کار طریقے سے مثال کے منصوبے

    میں پیدا کیا جا سکتا ہے: کانفرنس کے
    بھیجیں کال
    کانفرنسوں
    بوتھ کے لئے کال وصول بھیجیں
    شرکاء کے لئے واقعات کو کھولیں سبسکرپشنز
    لئے کال وصول بوتھ کے لئے کال ارسال
    مقررین کو ایونٹ کی یاد دلائیں
    بوتھ ہوسٹر کو ایونٹ کی یاد دہانی بھیجیں +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = فریق ثالث میں شامل کرنے کے لیے زمرہ خود بخود بن جاتا ہے جب کوئی کانفرنس تجویز کرتا ہے۔ EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = تیسری پارٹیوں میں شامل کرنے کے لیے زمرہ خود بخود بن جاتا ہے جب وہ بوتھ تجویز کرتے ہیں۔ EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = کانفرنس کی تجویز موصول ہونے کے بعد بھیجنے کے لیے ای میل کا سانچہ۔ @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= کانفرنس یا بوتھ +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = ایونٹ کی تنظیم کا نظم کریں۔ ConferenceOrBooth = کانفرنس یا بوتھ ConferenceOrBoothTab = کانفرنس یا بوتھ AmountPaid = رقم ادا کر دی DateOfRegistration = رجسٹریشن کی تاریخ ConferenceOrBoothAttendee = کانفرنس یا بوتھ اٹینڈی +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = یہاں، آپ کانفرنس کے لیے وو EvntOrgRegistrationConfHelpMessage = یہاں، آپ ایونٹ کے دوران متحرک ہونے کے لیے ایک نئی کانفرنس تجویز کر سکتے ہیں۔ EvntOrgRegistrationBoothHelpMessage = یہاں، آپ ایونٹ کے دوران بوتھ رکھنے کے لیے درخواست دے سکتے ہیں۔ ListOfSuggestedConferences = تجویز کردہ کانفرنسوں کی فہرست -ListOfSuggestedBooths = تجویز کردہ بوتھوں کی فہرست -ListOfConferencesOrBooths=کانفرنسوں یا ایونٹ پروجیکٹ کے بوتھ کی فہرست +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = ایک نئی کانفرنس تجویز کریں۔ SuggestBooth = ایک بوتھ تجویز کریں۔ ViewAndVote = تجویز کردہ واقعات کو دیکھیں اور ووٹ دیں۔ PublicAttendeeSubscriptionGlobalPage = ایونٹ کی رجسٹریشن کے لیے پبلک لنک PublicAttendeeSubscriptionPage = صرف اس ایونٹ کی رجسٹریشن کے لیے پبلک لنک MissingOrBadSecureKey = سیکیورٹی کلید غلط یا غائب ہے۔ -EvntOrgWelcomeMessage = یہ فارم آپ کو ایونٹ میں ایک نئے شریک کے طور پر رجسٹر کرنے کی اجازت دیتا ہے: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = یہ کانفرنس %s پر شروع ہوتی ہے اور %s پر ختم ہوتی ہے۔ ConferenceAttendeeFee = ایونٹ کے لیے کانفرنس کے شرکاء کی فیس: '%s' %s سے %s تک ہوتی ہے۔ BoothLocationFee = ایونٹ کے لیے بوتھ کا مقام: '%s' %s سے %s تک @@ -129,7 +133,7 @@ LabelOfconference=کانفرنس کا لیبل ConferenceIsNotConfirmed=رجسٹریشن دستیاب نہیں ہے، کانفرنس کی ابھی تصدیق نہیں ہوئی ہے۔ DateMustBeBeforeThan=%s %s سے پہلے ہونا ضروری ہے DateMustBeAfterThan=%s %s کے بعد ہونا چاہیے - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=اندراج OrganizationEventConfRequestWasReceived=کانفرنس کے لیے آپ کی تجویز موصول ہوئی ہے۔ OrganizationEventBoothRequestWasReceived=بوتھ کے لیے آپ کی درخواست موصول ہو گئی ہے۔ @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=آپ کے ایونٹ کے رج OrganizationEventBulkMailToAttendees=یہ ایک حاضری کے طور پر ایونٹ میں آپ کی شرکت کے بارے میں ایک یاد دہانی ہے۔ OrganizationEventBulkMailToSpeakers=یہ ایک مقرر کی حیثیت سے تقریب میں آپ کی شرکت کی یاد دہانی ہے۔ OrganizationEventLinkToThirdParty=فریق ثالث سے لنک کریں (کسٹمر، سپلائر یا پارٹنر) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=بوتھ کے لیے درخواست NewSuggestionOfConference=کانفرنس کے لیے درخواست @@ -153,7 +158,7 @@ VoteOk = آپ کا ووٹ قبول کر لیا گیا ہے۔ AlreadyVoted = آپ پہلے ہی اس ایونٹ کے لیے ووٹ دے چکے ہیں۔ VoteError = ووٹنگ کے دوران ایک خرابی پیش آگئی، براہ کرم دوبارہ کوشش کریں۔ -SubscriptionOk = آپ کی رجسٹریشن کی توثیق کر دی گئی ہے۔ +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = کسی تقریب میں آپ کی رکنیت کی تصدیق Attendee = حاضری PaymentConferenceAttendee = کانفرنس کے شرکاء کی ادائیگی @@ -161,7 +166,9 @@ PaymentBoothLocation = بوتھ کے مقام کی ادائیگی DeleteConferenceOrBoothAttendee=شرکت کنندہ کو ہٹا دیں۔ RegistrationAndPaymentWereAlreadyRecorder=ای میل %s کے لیے رجسٹریشن اور ادائیگی پہلے ہی ریکارڈ کی گئی تھی۔ EmailAttendee=حاضری کا ای میل +EmailCompany=Company email EmailCompanyForInvoice=کمپنی کا ای میل (انوائس کے لیے، اگر حاضری کے ای میل سے مختلف ہو) ErrorSeveralCompaniesWithEmailContactUs=اس ای میل کے ساتھ کئی کمپنیاں مل گئی ہیں لہذا ہم آپ کی رجسٹریشن کو خودکار طور پر درست نہیں کر سکتے۔ براہ کرم دستی توثیق کے لیے ہم سے %s پر رابطہ کریں۔ ErrorSeveralCompaniesWithNameContactUs=اس نام کی کئی کمپنیاں ملی ہیں اس لیے ہم آپ کی رجسٹریشن کو خودکار طور پر درست نہیں کر سکتے۔ براہ کرم دستی توثیق کے لیے ہم سے %s پر رابطہ کریں۔ NoPublicActionsAllowedForThisEvent=اس تقریب کے لیے عوام کے لیے کوئی عوامی کارروائی نہیں ہے۔ +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/ur_PK/externalsite.lang b/htdocs/langs/ur_PK/externalsite.lang deleted file mode 100644 index 6663e35aa30..00000000000 --- a/htdocs/langs/ur_PK/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=بیرونی ویب سائٹ کا لنک سیٹ کریں۔ -ExternalSiteURL=HTML iframe مواد کا بیرونی سائٹ URL -ExternalSiteModuleNotComplete=ماڈیول ExternalSite کو صحیح طریقے سے کنفیگر نہیں کیا گیا تھا۔ -ExampleMyMenuEntry=میرا مینو اندراج diff --git a/htdocs/langs/ur_PK/ftp.lang b/htdocs/langs/ur_PK/ftp.lang deleted file mode 100644 index 26c4647aa20..00000000000 --- a/htdocs/langs/ur_PK/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP یا SFTP کلائنٹ ماڈیول سیٹ اپ -NewFTPClient=نیا FTP/FTPS کنکشن سیٹ اپ -FTPArea=FTP/FTPS ایریا -FTPAreaDesc=یہ اسکرین FTP اور SFTP سرور کا منظر دکھاتی ہے۔ -SetupOfFTPClientModuleNotComplete=FTP یا SFTP کلائنٹ ماڈیول کا سیٹ اپ نامکمل لگتا ہے۔ -FTPFeatureNotSupportedByYourPHP=آپ کا پی ایچ پی FTP یا SFTP فنکشنز کو سپورٹ نہیں کرتا ہے۔ -FailedToConnectToFTPServer=سرور سے منسلک ہونے میں ناکام (سرور %s، پورٹ %s) -FailedToConnectToFTPServerWithCredentials=متعین لاگ ان/پاس ورڈ کے ساتھ سرور میں لاگ ان کرنے میں ناکام -FTPFailedToRemoveFile=فائل کو ہٹانے میں ناکام %s ۔ -FTPFailedToRemoveDir=ڈائرکٹری کو ہٹانے میں ناکام %s : اجازتیں چیک کریں اور یہ کہ ڈائرکٹری خالی ہے۔ -FTPPassiveMode=غیر فعال موڈ -ChooseAFTPEntryIntoMenu=مینو سے ایک FTP/SFTP سائٹ منتخب کریں... -FailedToGetFile=فائلیں %s حاصل کرنے میں ناکام diff --git a/htdocs/langs/ur_PK/holiday.lang b/htdocs/langs/ur_PK/holiday.lang index da01ba7ce46..18d5fb218af 100644 --- a/htdocs/langs/ur_PK/holiday.lang +++ b/htdocs/langs/ur_PK/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=چھوڑو +Holidays=Leaves +Holiday=Leave CPTitreMenu=چھوڑو MenuReportMonth=ماہانہ بیان MenuAddCP=چھٹی کی نئی درخواست +MenuCollectiveAddCP=New collective leave request NotActiveModCP=اس صفحہ کو دیکھنے کے لیے آپ کو ماڈیول Leave کو فعال کرنا ہوگا۔ AddCP=چھٹی کی درخواست کریں۔ DateDebCP=شروع کرنے کی تاریخ @@ -56,6 +58,7 @@ ConfirmDeleteCP=اس چھٹی کی درخواست کو حذف کرنے کی تص ErrorCantDeleteCP=غلطی آپ کو اس چھٹی کی درخواست کو حذف کرنے کا حق نہیں ہے۔ CantCreateCP=آپ کو چھٹی کی درخواستیں کرنے کا حق نہیں ہے۔ InvalidValidatorCP=آپ کو اپنی چھٹی کی درخواست کے لیے منظور کنندہ کا انتخاب کرنا چاہیے۔ +InvalidValidator=The user chosen isn't an approver. NoDateDebut=آپ کو شروع کی تاریخ کا انتخاب کرنا ہوگا۔ NoDateFin=آپ کو ایک اختتامی تاریخ منتخب کرنی ہوگی۔ ErrorDureeCP=آپ کی چھٹی کی درخواست میں کام کا دن شامل نہیں ہے۔ @@ -79,6 +82,8 @@ MotifCP=وجہ UserCP=صارف ErrorAddEventToUserCP=غیر معمولی چھٹی شامل کرتے وقت ایک خرابی پیش آگئی۔ AddEventToUserOkCP=غیر معمولی چھٹی کا اضافہ مکمل ہو گیا ہے۔ +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=تبدیلی کے نوشتہ جات دیکھیں LogCP="بیلنس آف لیو" میں کی گئی تمام اپ ڈیٹس کا لاگ ActionByCP=کی طرف سے اپ ڈیٹ @@ -86,6 +91,13 @@ UserUpdateCP=کے لیے اپ ڈیٹ کیا گیا۔ PrevSoldeCP=پچھلا بیلنس NewSoldeCP=نیا بیلنس alreadyCPexist=اس مدت پر چھٹی کی درخواست پہلے ہی کی جا چکی ہے۔ +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=چھٹی کی درخواست کا ابتدائی دن LastDayOfHoliday=چھٹی کی درخواست کا اختتامی دن BoxTitleLastLeaveRequests=تازہ ترین %s ترمیم شدہ چھٹی کی درخواستیں۔ @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s عام طور پر غیر کام کا دن ہوتا ہ BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=چھوڑنے کی درخواست %s کو مسودہ، منسوخ یا حذف کرنے سے انکار کیا جانا چاہیے +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/ur_PK/hrm.lang b/htdocs/langs/ur_PK/hrm.lang index dd5c8e817cd..8eddfbc2d61 100644 --- a/htdocs/langs/ur_PK/hrm.lang +++ b/htdocs/langs/ur_PK/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=کھلی اسٹیبلشمنٹ CloseEtablishment=بند اسٹیبلشمنٹ # Dictionary DictionaryPublicHolidays=چھٹی - عوامی تعطیلات -DictionaryDepartment=HRM - محکمہ کی فہرست +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - ملازمت کی پوزیشنیں۔ # Module Employees=ملازمین @@ -70,12 +70,22 @@ RequiredSkills=اس کام کے لیے درکار ہنر UserRank=صارف کی درجہ بندی SkillList=ہنر کی فہرست SaveRank=رینک محفوظ کریں۔ -knowHow=جانتے ہیں کہ کس طرح -HowToBe=کیسے بننا ہے۔ -knowledge=علم +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=ترک تبصرہ DateLastEval=آخری تشخیص کی تاریخ NoEval=اس ملازم کی کوئی تشخیص نہیں کی گئی۔ HowManyUserWithThisMaxNote=اس رینک والے صارفین کی تعداد HighestRank=اعلیٰ ترین عہدہ SkillComparison=مہارت کا موازنہ +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/ur_PK/install.lang b/htdocs/langs/ur_PK/install.lang index 2f18712058e..167e05d0c94 100644 --- a/htdocs/langs/ur_PK/install.lang +++ b/htdocs/langs/ur_PK/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=کنفیگریشن فائل %s قابل تحری ConfFileIsWritable=کنفیگریشن فائل %s قابل تحریر ہے۔ ConfFileMustBeAFileNotADir=کنفیگریشن فائل %s فائل ہونی چاہیے، ڈائریکٹری نہیں۔ ConfFileReload=کنفیگریشن فائل سے پیرامیٹرز کو دوبارہ لوڈ کرنا۔ -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=یہ پی ایچ پی متغیر POST اور GET کو سپورٹ کرتا ہے۔ PHPSupportPOSTGETKo=یہ ممکن ہے کہ آپ کا پی ایچ پی سیٹ اپ متغیرات POST اور/یا GET کو سپورٹ نہ کرے۔ php.ini میں variables_order پیرامیٹر چیک کریں۔ PHPSupportSessions=یہ پی ایچ پی سیشن کو سپورٹ کرتا ہے۔ @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=ہو سکتا ہے آپ نے پیرامیٹر '%s' ErrorFailedToCreateDatabase=ڈیٹا بیس '%s' بنانے میں ناکام۔ ErrorFailedToConnectToDatabase=ڈیٹا بیس '%s' سے جڑنے میں ناکام۔ ErrorDatabaseVersionTooLow=ڈیٹا بیس ورژن (%s) بہت پرانا ہے۔ ورژن %s یا اس سے زیادہ درکار ہے۔ -ErrorPHPVersionTooLow=پی ایچ پی ورژن بہت پرانا ہے۔ ورژن %s درکار ہے۔ +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=سرور سے کنکشن کامیاب لیکن ڈیٹا بیس '%s' نہیں ملا۔ ErrorDatabaseAlreadyExists=ڈیٹا بیس '%s' پہلے سے موجود ہے۔ +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=اگر ڈیٹا بیس موجود نہیں ہے تو واپس جائیں اور "Create database" کے آپشن کو چیک کریں۔ IfDatabaseExistsGoBackAndCheckCreate=اگر ڈیٹا بیس پہلے سے موجود ہے تو واپس جائیں اور "ڈیٹا بیس بنائیں" کے آپشن کو غیر چیک کریں۔ WarningBrowserTooOld=براؤزر کا ورژن بہت پرانا ہے۔ اپنے براؤزر کو Firefox، Chrome یا Opera کے حالیہ ورژن میں اپ گریڈ کرنے کی انتہائی سفارش کی جاتی ہے۔ diff --git a/htdocs/langs/ur_PK/knowledgemanagement.lang b/htdocs/langs/ur_PK/knowledgemanagement.lang index edcaf0493cc..0283e9b33fb 100644 --- a/htdocs/langs/ur_PK/knowledgemanagement.lang +++ b/htdocs/langs/ur_PK/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = مضامین KnowledgeRecord = مضمون KnowledgeRecordExtraFields = آرٹیکل کے لیے ایکسٹرا فیلڈز GroupOfTicket=ٹکٹوں کا گروپ -YouCanLinkArticleToATicketCategory=آپ کسی مضمون کو ٹکٹ گروپ سے جوڑ سکتے ہیں (لہذا نئے ٹکٹوں کی اہلیت کے دوران مضمون تجویز کیا جائے گا) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=جب گروپ ہوتا ہے تو ٹکٹوں کے لیے تجویز کیا جاتا ہے۔ SetObsolete=Set as obsolete diff --git a/htdocs/langs/ur_PK/loan.lang b/htdocs/langs/ur_PK/loan.lang index 0bfd57d77e7..6f706677e6b 100644 --- a/htdocs/langs/ur_PK/loan.lang +++ b/htdocs/langs/ur_PK/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=مالی وابستگی InterestAmount=دلچسپی CapitalRemain=سرمایہ باقی ہے۔ TermPaidAllreadyPaid = یہ اصطلاح پہلے سے ادا کی جاتی ہے۔ -CantUseScheduleWithLoanStartedToPaid = ادائیگی شروع ہونے کے ساتھ قرض کے لیے شیڈیولر استعمال نہیں کر سکتے +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = اگر آپ شیڈول استعمال کرتے ہیں تو آپ دلچسپی میں ترمیم نہیں کر سکتے # Admin ConfigLoan=ماڈیول قرض کی ترتیب -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=ڈیفالٹ کے حساب سے اکاؤنٹنگ کا سرمایہ -LOAN_ACCOUNTING_ACCOUNT_INTEREST=ڈیفالٹ کے حساب سے اکاؤنٹنگ سود -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=اکاؤنٹنگ اکاؤنٹ انشورنس بطور ڈیفالٹ +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=مالی وابستگی میں ترمیم کریں۔ diff --git a/htdocs/langs/ur_PK/mailmanspip.lang b/htdocs/langs/ur_PK/mailmanspip.lang index 966c6d94059..1ec45978717 100644 --- a/htdocs/langs/ur_PK/mailmanspip.lang +++ b/htdocs/langs/ur_PK/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=سبسکرپشن ٹیسٹ کامیابی کے ساتھ ا MailmanDeletionSuccess=ان سبسکرپشن ٹیسٹ کو کامیابی کے ساتھ انجام دیا گیا۔ SynchroMailManEnabled=میل مین اپ ڈیٹ کیا جائے گا۔ SynchroSpipEnabled=ایک سپپ اپ ڈیٹ کیا جائے گا۔ -DescADHERENT_MAILMAN_ADMINPW=میل مین ایڈمنسٹریٹر کا پاس ورڈ +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=میل مین سبسکرپشنز کے لیے URL DescADHERENT_MAILMAN_UNSUB_URL=میل مین کی رکنیت ختم کرنے کے لیے URL DescADHERENT_MAILMAN_LISTS=نئے اراکین کی خودکار تحریر کے لیے فہرست (کوما سے الگ) diff --git a/htdocs/langs/ur_PK/mails.lang b/htdocs/langs/ur_PK/mails.lang index 978752c091a..acdda587caa 100644 --- a/htdocs/langs/ur_PK/mails.lang +++ b/htdocs/langs/ur_PK/mails.lang @@ -7,10 +7,10 @@ MailCard=ای میل کارڈ MailRecipients=وصول کنندگان MailRecipient=وصول کنندہ MailTitle=تفصیل -MailFrom=بھیجنے والا +MailFrom=From MailErrorsTo=کی خرابیاں MailReply=کا جواب دیں -MailTo=وصول کنندہ +MailTo=To MailToUsers=صارف (صارفین) کو MailCC=میں کاپی کریں۔ MailToCCUsers=صارفین کو کاپی کریں @@ -178,3 +178,4 @@ IsAnAnswer=ابتدائی ای میل کا جواب ہے۔ RecordCreatedByEmailCollector=ای میل کلکٹر %s ای میل %s سے ریکارڈ بنایا گیا DefaultBlacklistMailingStatus=نیا رابطہ بناتے وقت فیلڈ '%s' کے لیے ڈیفالٹ قدر DefaultStatusEmptyMandatory=خالی لیکن لازمی +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/ur_PK/main.lang b/htdocs/langs/ur_PK/main.lang index 8e3147fb32f..4ab620c3cd0 100644 --- a/htdocs/langs/ur_PK/main.lang +++ b/htdocs/langs/ur_PK/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=rtl +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=اس ای میل کی قسم کے لیے کوئی ٹیمپلی AvailableVariables=دستیاب متبادل متغیرات NoTranslation=کوئی ترجمہ نہیں Translation=ترجمہ +Translations=Translations CurrentTimeZone=ٹائم زون پی ایچ پی (سرور) EmptySearchString=غیر خالی تلاش کے معیارات درج کریں۔ EnterADateCriteria=تاریخ کا معیار درج کریں۔ @@ -199,6 +206,7 @@ Valid=درست Approve=منظور کرو Disapprove=نامنظور کرنا ReOpen=دوبارہ کھولیں۔ +OpenVerb=Open Upload=اپ لوڈ کریں۔ ToLink=لنک Select=منتخب کریں۔ @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=کسی صارف گروپ کی وضاحت نہیں کی گئی۔ Password=پاس ورڈ -PasswordRetype=اپنا پاس ورڈ دوبارہ ٹائپ کریں۔ +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=نوٹ کریں کہ اس مظاہرے میں بہت ساری خصوصیات/ماڈیولز غیر فعال ہیں۔ Name=نام NameSlashCompany=نام / کمپنی @@ -244,6 +252,7 @@ Designation=تفصیل DescriptionOfLine=لائن کی تفصیل DateOfLine=لائن کی تاریخ DurationOfLine=لائن کا دورانیہ +ParentLine=Parent line ID Model=دستاویز ٹیمپلیٹ DefaultModel=ڈیفالٹ دستاویز ٹیمپلیٹ Action=تقریب @@ -344,7 +353,7 @@ KiloBytes=کلو بائٹس MegaBytes=میگا بائٹس GigaBytes=گیگا بائٹس TeraBytes=ٹیرا بائٹس -UserAuthor=کی طرف سے مقرر +UserAuthor=Created by UserModif=کی طرف سے اپ ڈیٹ b=ب Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=اس رابطہ/پتہ کے لیے واقعات ActionsOnContract=اس معاہدے کے لیے تقریبات ActionsOnMember=اس رکن کے بارے میں واقعات ActionsOnProduct=اس پروڈکٹ کے بارے میں واقعات +ActionsOnAsset=Events for this fixed asset NActionsLate=%s دیر سے ToDo=ایسا کرنے کے لئے Completed=مکمل @@ -517,6 +527,7 @@ or=یا Other=دیگر Others=دوسرے OtherInformations=دوسری معلومات +Workflow=Workflow Quantity=مقدار Qty=مقدار ChangedBy=کی طرف سے تبدیل @@ -619,6 +630,7 @@ MonthVeryShort11=ن MonthVeryShort12=ڈی AttachedFiles=منسلک فائلیں اور دستاویزات JoinMainDoc=مرکزی دستاویز میں شامل ہوں۔ +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=خصوصیت غیر فعال ہے۔ MoveBox=ویجیٹ کو منتقل کریں۔ Offered=کی پیشکش کی NotEnoughPermissions=آپ کو اس کارروائی کی اجازت نہیں ہے۔ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=سیشن کا نام Method=طریقہ Receive=وصول کریں۔ @@ -798,6 +811,7 @@ URLPhoto=تصویر/لوگو کا URL SetLinkToAnotherThirdParty=کسی اور تیسرے فریق سے لنک کریں۔ LinkTo=سے لنک کریں۔ LinkToProposal=تجویز کا لنک +LinkToExpedition= Link to expedition LinkToOrder=آرڈر کے لیے لنک LinkToInvoice=انوائس سے لنک کریں۔ LinkToTemplateInvoice=ٹیمپلیٹ انوائس کا لنک @@ -916,6 +930,7 @@ DirectDownloadInternalLink=نجی ڈاؤن لوڈ لنک PrivateDownloadLinkDesc=آپ کو لاگ ان ہونے کی ضرورت ہے اور آپ کو فائل دیکھنے یا ڈاؤن لوڈ کرنے کے لیے اجازت کی ضرورت ہے۔ Download=ڈاؤن لوڈ کریں DownloadDocument=دستاویز ڈاؤن لوڈ کریں۔ +DownloadSignedDocument=Download signed document ActualizeCurrency=کرنسی کی شرح کو اپ ڈیٹ کریں۔ Fiscalyear=مالی سال ModuleBuilder=ماڈیول اور ایپلیکیشن بلڈر @@ -1041,6 +1056,7 @@ SearchIntoContracts=معاہدے SearchIntoCustomerShipments=گاہک کی ترسیل SearchIntoExpenseReports=اخراجات کی رپورٹ SearchIntoLeaves=چھوڑو +SearchIntoKM=Knowledge base SearchIntoTickets=ٹکٹ SearchIntoCustomerPayments=گاہک کی ادائیگی SearchIntoVendorPayments=وینڈر کی ادائیگی @@ -1132,15 +1148,29 @@ EventReminder=واقعہ کی یاد دہانی UpdateForAllLines=تمام لائنوں کے لیے اپ ڈیٹ کریں۔ OnHold=ہولڈ پر Civility=تہذیب -AffectTag=ٹیگ کو متاثر کریں۔ +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=بیرونی صارف بنائیں -ConfirmAffectTag=بلک ٹیگ کا اثر -ConfirmAffectTagQuestion=کیا آپ واقعی %s منتخب کردہ ریکارڈ (ریکارڈز) پر ٹیگز کو متاثر کرنا چاہتے ہیں؟ +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=ریکارڈ کی قسم کے لیے کوئی ٹیگ کی قسم نہیں ملی +Rate=شرح +SupervisorNotFound=Supervisor not found CopiedToClipboard=کلپ بورڈ پر کاپی ہو گیا۔ InformationOnLinkToContract=یہ رقم صرف معاہدے کی تمام لائنوں کا کل ہے۔ وقت کا کوئی خیال نہیں رکھا جاتا۔ ConfirmCancel=کیا تمہیں یقین ہے تم اسے ملتوی کرنا چاہتے ہو EmailMsgID=MsgID کو ای میل کریں۔ +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=فعال پر سیٹ کریں۔ SetToDisabled=غیر فعال پر سیٹ کریں۔ ConfirmMassEnabling=بڑے پیمانے پر چالو کرنے کی تصدیق @@ -1164,3 +1194,19 @@ NotClosedYet=ابھی بند نہیں ہوا۔ ClearSignature=دستخط دوبارہ ترتیب دیں۔ CanceledHidden=چھپا ہوا منسوخ کر دیا گیا۔ CanceledShown=منسوخ شدہ دکھایا گیا ہے۔ +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/ur_PK/members.lang b/htdocs/langs/ur_PK/members.lang index d4f2fee3785..415d5f0e577 100644 --- a/htdocs/langs/ur_PK/members.lang +++ b/htdocs/langs/ur_PK/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=ایک اور رکن (نام: %s ErrorUserPermissionAllowsToLinksToItselfOnly=حفاظتی وجوہات کی بناء پر، آپ کو تمام صارفین میں ترمیم کرنے کی اجازت دی جانی چاہیے تاکہ کسی رکن کو کسی ایسے صارف سے جوڑ سکیں جو آپ کا نہیں ہے۔ SetLinkToUser=Dolibarr صارف سے لنک کریں۔ SetLinkToThirdParty=ڈولیبر تھرڈ پارٹی سے لنک کریں۔ +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=ممبران کی فہرست MembersListToValid=مسودہ کے ارکان کی فہرست (توثیق کی جائے گی) @@ -34,8 +35,10 @@ DateSubscription=رکنیت کی تاریخ DateEndSubscription=رکنیت کی آخری تاریخ EndSubscription=رکنیت کا خاتمہ SubscriptionId=تعاون کی شناخت -WithoutSubscription=شراکت کے بغیر -MemberId=رکن کی شناخت +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=نیا رکن MemberType=ممبر کی قسم MemberTypeId=ممبر کی قسم کی شناخت @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=ممبر کی قسم کو حذف نہیں کیا جا NewSubscription=نئی شراکت NewSubscriptionDesc=یہ فارم آپ کو فاؤنڈیشن کے نئے رکن کے طور پر اپنی رکنیت کو ریکارڈ کرنے کی اجازت دیتا ہے۔ اگر آپ اپنی سبسکرپشن کی تجدید کرنا چاہتے ہیں (اگر پہلے ہی ممبر ہیں)، تو براہ کرم اس کے بجائے فاؤنڈیشن بورڈ سے ای میل %s سے رابطہ کریں۔ Subscription=شراکت +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=شراکتیں SubscriptionLate=دیر SubscriptionNotReceived=شراکت کبھی نہیں ملی @@ -135,7 +144,7 @@ CardContent=آپ کے ممبر کارڈ کا مواد # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=ہم آپ کو بتانا چاہتے ہیں کہ آپ کی رکنیت کی درخواست موصول ہو گئی ہے۔

    ThisIsContentOfYourMembershipWasValidated=ہم آپ کو بتانا چاہتے ہیں کہ آپ کی رکنیت کی توثیق درج ذیل معلومات کے ساتھ کی گئی تھی:

    -ThisIsContentOfYourSubscriptionWasRecorded=ہم آپ کو بتانا چاہتے ہیں کہ آپ کی نئی رکنیت ریکارڈ کی گئی تھی۔

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=ہم آپ کو بتانا چاہتے ہیں کہ آپ کی رکنیت ختم ہونے والی ہے یا پہلے ہی ختم ہو چکی ہے (__MEMBER_LAST_SUBSCRIPTION_DATE_END__)۔ ہمیں امید ہے کہ آپ اس کی تجدید کریں گے۔

    ThisIsContentOfYourCard=یہ آپ کے بارے میں ہمارے پاس موجود معلومات کا خلاصہ ہے۔ اگر کچھ غلط ہے تو براہ کرم ہم سے رابطہ کریں۔

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=کسی مہمان کے خودکار تحریر کی صورت میں موصول ہونے والی اطلاعی ای میل کا موضوع @@ -198,8 +207,10 @@ NbOfSubscriptions=تعاون کی تعداد AmountOfSubscriptions=عطیات سے جمع کی گئی رقم TurnoverOrBudget=ٹرن اوور (کمپنی کے لیے) یا بجٹ (فاؤنڈیشن کے لیے) DefaultAmount=شراکت کی طے شدہ رقم -CanEditAmount=وزیٹر اپنی شراکت کی رقم کا انتخاب/ترمیم کر سکتا ہے۔ -MEMBER_NEWFORM_PAYONLINE=مربوط آن لائن ادائیگی کے صفحے پر جائیں۔ +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=فطرت سے MembersStatisticsByProperties=اراکین کے اعداد و شمار فطرت کے لحاظ سے VATToUseForSubscriptions=شراکت کے لیے استعمال کرنے کے لیے VAT کی شرح @@ -218,3 +229,6 @@ XExternalUserCreated=%s بیرونی صارف (صارفین) بنائے گئے۔ ForceMemberNature=فورس ممبر کی نوعیت (انفرادی یا کارپوریشن) CreateDolibarrLoginDesc=اراکین کے لیے صارف لاگ ان کی تخلیق انہیں ایپلی کیشن سے منسلک ہونے کی اجازت دیتی ہے۔ دی گئی اجازتوں پر انحصار کرتے ہوئے، وہ، مثال کے طور پر، خود اپنی فائل سے مشورہ کرنے یا اس میں ترمیم کرنے کے قابل ہوں گے۔ CreateDolibarrThirdPartyDesc=فریق ثالث قانونی ادارہ ہے جو انوائس پر استعمال کیا جائے گا اگر آپ ہر شراکت کے لیے انوائس بنانے کا فیصلہ کرتے ہیں۔ آپ شراکت کو ریکارڈ کرنے کے عمل کے دوران بعد میں اسے تخلیق کر سکیں گے۔ +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/ur_PK/modulebuilder.lang b/htdocs/langs/ur_PK/modulebuilder.lang index e36a90e1070..95e1ac68ca2 100644 --- a/htdocs/langs/ur_PK/modulebuilder.lang +++ b/htdocs/langs/ur_PK/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=یہ ٹول صرف تجربہ کار صارفین یا ڈویلپرز کے ذریعہ استعمال کیا جانا چاہئے۔ یہ آپ کے اپنے ماڈیول کو بنانے یا اس میں ترمیم کرنے کے لیے افادیت فراہم کرتا ہے۔ متبادل مینوئل ڈویلپمنٹ کے لیے دستاویزات یہاں ہے۔ EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=وہ راستہ جہاں ماڈیولز تیار/ترمیم کیے جاتے ہیں (بیرونی ماڈیولز کے لیے پہلی ڈائریکٹری %s میں بیان کی گئی ہے): %s ModuleBuilderDesc3=تیار کردہ/ قابل تدوین ماڈیولز ملے: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=جب فائل %s ماڈیول ڈائرکٹ NewModule=نیا ماڈیول NewObjectInModulebuilder=نیا اعتراض NewDictionary=New dictionary +ModuleName=Module name ModuleKey=ماڈیول کلید ObjectKey=آبجیکٹ کلید DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=ماڈیول/ایپلی کیشن پیکج کی زپ کا ر PathToModuleDocumentation=ماڈیول/ایپلی کیشن دستاویزات کی فائل کا راستہ (%s) SpaceOrSpecialCharAreNotAllowed=خالی جگہوں یا خصوصی حروف کی اجازت نہیں ہے۔ FileNotYetGenerated=فائل ابھی تک تیار نہیں ہوئی۔ +GenerateCode=Generate code RegenerateClassAndSql=کلاس اور .sql فائلوں کو زبردستی اپ ڈیٹ کریں۔ RegenerateMissingFiles=گمشدہ فائلیں بنائیں SpecificationFile=دستاویزات کی فائل LanguageFile=زبان کے لیے فائل ObjectProperties=آبجیکٹ پراپرٹیز +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=کیا آپ واقعی %s پراپرٹی کو حذف کرنا چاہتے ہیں؟ یہ پی ایچ پی کلاس میں کوڈ کو تبدیل کرے گا لیکن آبجیکٹ کی ٹیبل تعریف سے کالم کو بھی ہٹا دے گا۔ NotNull=NULL نہیں۔ NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=ایک پیمانہ ہے۔ DirScanned=ڈائرکٹری اسکین کی گئی۔ NoTrigger=کوئی محرک نہیں۔ NoWidget=کوئی ویجیٹ نہیں۔ -GoToApiExplorer=API ایکسپلورر +ApiExplorer=API explorer ListOfMenusEntries=مینو اندراجات کی فہرست ListOfDictionariesEntries=لغات کے اندراجات کی فہرست ListOfPermissionsDefined=متعین اجازتوں کی فہرست SeeExamples=یہاں مثالیں دیکھیں -EnabledDesc=اس فیلڈ کو فعال رکھنے کی شرط (مثالیں: 1 یا $conf->global->MYMODULE_MYOPTION) -VisibleDesc=کیا میدان نظر آتا ہے؟ (مثالیں: 0=کبھی نظر نہیں آتا، 1=فہرست میں دکھائی دیتا ہے اور فارمز کو تخلیق/اپ ڈیٹ/دیکھتا ہے، 2=صرف فہرست میں مرئی، 3=صرف بنانے/اپ ڈیٹ کرنے/دیکھنے کے فارم پر نظر آتا ہے (فہرست نہیں)، 4=فہرست پر نظر آتا ہے اور اپ ڈیٹ/دیکھیں فارم صرف (تخلیق نہیں)، 5=صرف لسٹ اینڈ ویو فارم پر نظر آتا ہے (تخلیق نہیں، اپ ڈیٹ نہیں)۔

    یہ ایک اظہار ہو سکتا ہے، مثال کے طور پر:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    > -DisplayOnPdfDesc=اس فیلڈ کو مطابقت پذیر پی ڈی ایف دستاویزات پر ڈسپلے کریں، آپ "پوزیشن" فیلڈ کے ساتھ پوزیشن کا نظم کر سکتے ہیں۔
    فی الحال، نام سے جانا جاتا پر compatibles PDF ماڈل ہیں: eratosthene (کے حکم) espadon (جہاز)، سپنج (رسید)، لاجوردی (propal / کوٹیشن)، cornas (سپلائر حکم)

    دستاویز کے طور پر:
    0 =
    1 دکھایا = ڈسپلے
    2 = ڈسپلے صرف خالی نہیں ہے تو

    لئے دستاویز لائنز:
    0 = نہیں دکھایا
    1 = بعد تفصیل کالم میں
    4 = ڈسپلے وضاحت کے بعد
    لائن کی تفصیل کالم میں 3 = ڈسپلے ایک کالم میں دکھائے تفصیل صرف اس صورت میں جب خالی نہ ہو۔ -DisplayOnPdf=پی ڈی ایف پر ڈسپلے کریں۔ +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=کیا فہرست میں کل حاصل کرنے کے لیے فیلڈ کی قدر کو جمع کیا جا سکتا ہے؟ (مثالیں: 1 یا 0) SearchAllDesc=کیا کوئیک سرچ ٹول سے تلاش کرنے کے لیے فیلڈ کا استعمال کیا جاتا ہے؟ (مثالیں: 1 یا 0) SpecDefDesc=یہاں وہ تمام دستاویزات درج کریں جو آپ اپنے ماڈیول کے ساتھ فراہم کرنا چاہتے ہیں جو پہلے سے دوسرے ٹیبز کے ذریعہ بیان نہیں کیے گئے ہیں۔ آپ .md یا اس سے بہتر، امیر .asciidoc نحو استعمال کر سکتے ہیں۔ @@ -130,26 +136,32 @@ UseSpecificEditorURL = ایک مخصوص ایڈیٹر URL استعمال کری UseSpecificFamily = ایک مخصوص خاندان کا استعمال کریں UseSpecificAuthor = کسی مخصوص مصنف کا استعمال کریں۔ UseSpecificVersion = ایک مخصوص ابتدائی ورژن استعمال کریں۔ -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=اگر آپ اسے چیک کرتے ہیں تو ریکارڈ پر "دستاویز تیار کریں" کے باکس کو شامل کرنے کے لیے کچھ کوڈ تیار کیا جائے گا۔ -ShowOnCombobox=کومبو باکس میں قدر دکھائیں۔ +ShowOnCombobox=Show value into combo boxes KeyForTooltip=ٹول ٹپ کے لیے کلید CSSClass=فارم میں ترمیم/تخلیق کے لیے CSS CSSViewClass=پڑھنے کے فارم کے لیے CSS CSSListClass=فہرست کے لیے سی ایس ایس NotEditable=قابل تدوین نہیں۔ ForeignKey=غیر ملکی چابی -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii سے HTML کنورٹر AsciiToPdfConverter=Ascii سے پی ڈی ایف کنورٹر TableNotEmptyDropCanceled=ٹیبل خالی نہیں ہے۔ ڈراپ منسوخ کر دیا گیا ہے۔ ModuleBuilderNotAllowed=ماڈیول بلڈر دستیاب ہے لیکن آپ کے صارف کو اس کی اجازت نہیں ہے۔ ImportExportProfiles=پروفائلز درآمد اور برآمد کریں۔ -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/ur_PK/mrp.lang b/htdocs/langs/ur_PK/mrp.lang index 5da87a94d0c..c99e9588e94 100644 --- a/htdocs/langs/ur_PK/mrp.lang +++ b/htdocs/langs/ur_PK/mrp.lang @@ -11,8 +11,8 @@ Bom=مواد کے بل BillOfMaterials=سامان کا بل BillOfMaterialsLines=مواد کی لائنوں کا بل BOMsSetup=ماڈیول BOM کا سیٹ اپ -ListOfBOMs=مواد کے بلوں کی فہرست - BOM -ListOfManufacturingOrders=مینوفیکچرنگ آرڈرز کی فہرست +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=مواد کا نیا بل ProductBOMHelp=اس BOM کے ساتھ بنانے (یا جدا کرنے) کے لیے پروڈکٹ۔
    نوٹ: 'نیچر آف پروڈکٹ' = 'خام مال' کی خاصیت والی مصنوعات اس فہرست میں نظر نہیں آتیں۔ BOMsNumberingModules=BOM نمبری ٹیمپلیٹس @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=کیا آپ واقعی مواد کے بل کو کل ConfirmCloneMo=کیا آپ واقعی مینوفیکچرنگ آرڈر %s کو کلون کرنا چاہتے ہیں؟ ManufacturingEfficiency=مینوفیکچرنگ کی کارکردگی ConsumptionEfficiency=کھپت کی کارکردگی +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=0.95 کی قدر کا مطلب ہے پیدا شدہ مصنوعات کے نقصان کا اوسط 5%% DeleteBillOfMaterials=مواد کا بل حذف کریں۔ @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=%s کو جدا کرنے کی مقدار کے لیے ConfirmValidateMo=کیا آپ واقعی اس مینوفیکچرنگ آرڈر کی توثیق کرنا چاہتے ہیں؟ ConfirmProductionDesc='%s' پر کلک کرنے سے، آپ سیٹ کی مقدار کے لیے کھپت اور/یا پیداوار کی توثیق کریں گے۔ یہ اسٹاک کو بھی اپ ڈیٹ کرے گا اور اسٹاک کی نقل و حرکت کو ریکارڈ کرے گا۔ ProductionForRef=%s کی پیداوار +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=مینوفیکچرنگ آرڈر کو خود بخود بند کر دیں اگر استعمال کرنے اور پیدا کرنے کی مقدار پوری ہو جائے۔ NoStockChangeOnServices=خدمات پر اسٹاک میں کوئی تبدیلی نہیں۔ ProductQtyToConsumeByMO=پروڈکٹ کی مقدار ابھی بھی اوپن ایم او کے ذریعے استعمال کرنا ہے۔ @@ -80,6 +83,7 @@ ProductsToProduce=پیدا کرنے کے لئے مصنوعات UnitCost=یونٹ لاگت TotalCost=کل لاگت BOMTotalCost=اس BOM کو تیار کرنے کی لاگت ہر ایک مقدار اور استعمال کی مصنوعات کی لاگت پر مبنی ہے (اگر وضاحت کی گئی ہو تو لاگت کی قیمت کا استعمال کریں، ورنہ اوسط وزنی قیمت اگر وضاحت کی گئی ہو، ورنہ بہترین خریداری کی قیمت) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=مینوفیکچرنگ آرڈر کو بند کرنے کے لیے آپ نے پہلے پروڈکشن شروع کی ہوگی (ٹیب '%s' دیکھیں)۔ لیکن آپ اسے منسوخ کر سکتے ہیں۔ ErrorAVirtualProductCantBeUsedIntoABomOrMo=ایک کٹ کو BOM یا MO میں استعمال نہیں کیا جا سکتا Workstation=ورک سٹیشن @@ -107,3 +111,10 @@ THMEstimatedHelp=یہ شرح آئٹم کی پیشن گوئی کی قیمت کی BOM=سامان کا بل CollapseBOMHelp=آپ BOM ماڈیول کی ترتیب میں نام کی تفصیلات کے پہلے سے طے شدہ ڈسپلے کی وضاحت کر سکتے ہیں MOAndLines=مینوفیکچرنگ آرڈرز اور لائنز +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/ur_PK/oauth.lang b/htdocs/langs/ur_PK/oauth.lang index 229279e4a47..3cb9e11cc37 100644 --- a/htdocs/langs/ur_PK/oauth.lang +++ b/htdocs/langs/ur_PK/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=ایک ٹوکن تیار کیا گیا اور مقامی ڈیٹا NewTokenStored=ٹوکن موصول ہوا اور محفوظ کیا گیا۔ ToCheckDeleteTokenOnProvider=%s OAuth فراہم کنندہ کے ذریعہ محفوظ کردہ اجازت کو چیک کرنے / حذف کرنے کے لیے یہاں کلک کریں TokenDeleted=ٹوکن حذف ہو گیا۔ -RequestAccess=رسائی کی درخواست/ تجدید کے لیے یہاں کلک کریں اور محفوظ کرنے کے لیے ایک نیا ٹوکن وصول کریں۔ -DeleteAccess=ٹوکن کو حذف کرنے کے لیے یہاں کلک کریں۔ +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=اپنے OAuth فراہم کنندہ کے ساتھ اپنی اسناد بناتے وقت درج ذیل URL کو ری ڈائریکٹ URI کے بطور استعمال کریں: -ListOfSupportedOauthProviders=اپنے OAuth2 فراہم کنندہ کے ذریعہ فراہم کردہ اسناد درج کریں۔ صرف تعاون یافتہ OAuth2 فراہم کنندگان یہاں درج ہیں۔ یہ خدمات دوسرے ماڈیولز کے ذریعہ استعمال کی جا سکتی ہیں جن کو OAuth2 کی توثیق کی ضرورت ہے۔ -OAuthSetupForLogin=OAuth ٹوکن بنانے کے لیے صفحہ +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=پچھلا ٹیب دیکھیں +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID اور خفیہ TOKEN_REFRESH=ٹوکن ریفریش پیش کریں۔ TOKEN_EXPIRED=ٹوکن کی میعاد ختم ہو گئی۔ @@ -23,10 +24,13 @@ TOKEN_DELETE=محفوظ کردہ ٹوکن کو حذف کریں۔ OAUTH_GOOGLE_NAME=OAuth گوگل سروس OAUTH_GOOGLE_ID=OAuth گوگل آئی ڈی OAUTH_GOOGLE_SECRET=OAuth گوگل سیکریٹ -OAUTH_GOOGLE_DESC= اس صفحہ پر جائیں پھر OAuth اسناد بنانے کے لیے "Credentials" پر جائیں OAUTH_GITHUB_NAME=OAuth GitHub سروس OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub سیکریٹ -OAUTH_GITHUB_DESC= اس صفحہ پر جائیں پھر OAuth اسناد بنانے کے لیے "نئی درخواست رجسٹر کریں" +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth اسٹرائپ ٹیسٹ OAUTH_STRIPE_LIVE_NAME=OAuth اسٹرائپ لائیو +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/ur_PK/products.lang b/htdocs/langs/ur_PK/products.lang index 4f65a215f19..4e284969766 100644 --- a/htdocs/langs/ur_PK/products.lang +++ b/htdocs/langs/ur_PK/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=کیا آپ واقعی اس پروڈکٹ لائن کو ProductSpecial=خاص QtyMin=کم از کم خریداری کی مقدار PriceQtyMin=قیمت کی مقدار کم از کم -PriceQtyMinCurrency=اس مقدار کے لیے قیمت (کرنسی)۔ (کوئی رعایت نہیں) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=VAT کی شرح (اس وینڈر/پروڈکٹ کے لیے) DiscountQtyMin=اس مقدار کے لیے رعایت۔ NoPriceDefinedForThisSupplier=اس وینڈر/ پروڈکٹ کے لیے کوئی قیمت/ مقدار متعین نہیں ہے۔ @@ -261,7 +262,7 @@ Quarter1=1st. کوارٹر Quarter2=2nd کوارٹر Quarter3=3rd کوارٹر Quarter4=4th. کوارٹر -BarCodePrintsheet=بارکوڈ پرنٹ کریں۔ +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=اس ٹول کے ذریعے، آپ بارکوڈ اسٹیکرز کی شیٹ پرنٹ کر سکتے ہیں۔ اپنے اسٹیکر پیج کا فارمیٹ، بارکوڈ کی قسم اور بارکوڈ کی قدر کا انتخاب کریں، پھر بٹن %s پر کلک کریں۔ NumberOfStickers=صفحہ پر پرنٹ کرنے کے لیے اسٹیکرز کی تعداد PrintsheetForOneBarCode=ایک بار کوڈ کے لیے کئی اسٹیکرز پرنٹ کریں۔ @@ -344,9 +345,9 @@ PossibleValues=ممکنہ اقدار GoOnMenuToCreateVairants=انتساب کی قسمیں تیار کرنے کے لیے مینو %s - %s پر جائیں (جیسے رنگ، سائز، ...) UseProductFournDesc=صارفین کے لیے تفصیل کے علاوہ وینڈرز (ہر وینڈر کے حوالے کے لیے) کے ذریعے بیان کردہ پروڈکٹ کی تفصیل کی وضاحت کرنے کے لیے ایک خصوصیت شامل کریں۔ ProductSupplierDescription=پروڈکٹ کے لیے وینڈر کی تفصیل -UseProductSupplierPackaging=سپلائر کی قیمتوں پر پیکیجنگ کا استعمال کریں (سپلائر کی دستاویزات میں لائن شامل/اپ ڈیٹ کرتے وقت سپلائر کی قیمت پر سیٹ کردہ پیکیجنگ کے مطابق مقدار کا دوبارہ حساب لگائیں) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=پیکیجنگ -PackagingForThisProductDesc=سپلائر کے آرڈر پر، آپ خود بخود اس مقدار (یا اس مقدار کا ایک کثیر) آرڈر کریں گے۔ کم از کم خریداری کی مقدار سے کم نہیں ہو سکتی +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=لائن کی مقدار کو سپلائر پیکیجنگ کے مطابق دوبارہ شمار کیا گیا تھا۔ #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=کارروائی صرف پروڈکٹ کے م ProductsPricePerCustomer=مصنوعات کی قیمتیں فی گاہک ProductSupplierExtraFields=اضافی خصوصیات (سپلائر کی قیمتیں) DeleteLinkedProduct=امتزاج سے منسلک چائلڈ پروڈکٹ کو حذف کریں۔ -AmountUsedToUpdateWAP=وزنی اوسط قیمت کو اپ ڈیٹ کرنے کے لیے استعمال کی جانے والی رقم +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=وزنی اوسط قیمت PMPValueShort=WAP mandatoryperiod=لازمی ادوار @@ -408,6 +409,23 @@ mandatoryHelper=اس کو چیک کریں اگر آپ انوائس، تجارت DefaultBOM=ڈیفالٹ BOM DefaultBOMDesc=پہلے سے طے شدہ BOM اس پروڈکٹ کو تیار کرنے کے لیے استعمال کرنے کی تجویز کرتا ہے۔ یہ فیلڈ صرف اس صورت میں سیٹ کی جا سکتی ہے جب پروڈکٹ کی نوعیت '%s' ہو۔ Rank=رینک +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=فروخت کی حالت پر سوئچ کریں۔ SwitchOnPurchaseStatus=خریداری کی حیثیت کو آن کریں۔ +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/ur_PK/projects.lang b/htdocs/langs/ur_PK/projects.lang index 6a22b98eb9b..f5692cc356c 100644 --- a/htdocs/langs/ur_PK/projects.lang +++ b/htdocs/langs/ur_PK/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=یہ منظر ان تمام منصوبوں اور کاموں ک TasksDesc=یہ منظر تمام منصوبوں اور کاموں کو پیش کرتا ہے (آپ کے صارف کی اجازت آپ کو سب کچھ دیکھنے کی اجازت دیتی ہے)۔ AllTaskVisibleButEditIfYouAreAssigned=اہل پروجیکٹس کے تمام کام نظر آتے ہیں، لیکن آپ صرف منتخب صارف کو تفویض کردہ کام کے لیے وقت درج کر سکتے ہیں۔ اگر آپ کو اس پر وقت داخل کرنے کی ضرورت ہو تو کام تفویض کریں۔ OnlyYourTaskAreVisible=صرف آپ کو تفویض کردہ کام نظر آتے ہیں۔ اگر آپ کو کسی ٹاسک پر وقت دینے کی ضرورت ہے اور اگر ٹاسک یہاں نظر نہیں آ رہا ہے، تو آپ کو اپنے آپ کو ٹاسک تفویض کرنے کی ضرورت ہے۔ +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=منصوبوں کے کام ProjectCategories=پروجیکٹ ٹیگز/زمرے NewProject=نیا کام @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=اسٹیٹس کے لحاظ سے کھلے پ OpportunitiesStatusForProjects=اسٹیٹس کے لحاظ سے پروجیکٹس کی مقدار لیڈ کرتا ہے۔ ShowProject=پروجیکٹ دکھائیں۔ ShowTask=کام دکھائیں۔ +SetThirdParty=Set third party SetProject=پروجیکٹ سیٹ کریں۔ +OutOfProject=Out of project NoProject=کوئی پروجیکٹ متعین یا ملکیت نہیں ہے۔ NbOfProjects=منصوبوں کی تعداد NbOfTasks=کاموں کی تعداد @@ -122,7 +125,8 @@ ValidateProject=پروجیکٹ کی توثیق کریں۔ ConfirmValidateProject=کیا آپ واقعی اس پروجیکٹ کی توثیق کرنا چاہتے ہیں؟ CloseAProject=پروجیکٹ بند کریں۔ ConfirmCloseAProject=کیا آپ واقعی اس پروجیکٹ کو بند کرنا چاہتے ہیں؟ -AlsoCloseAProject=پروجیکٹ کو بھی بند کریں (اگر آپ کو ابھی بھی اس پر پیداواری کاموں کی پیروی کرنے کی ضرورت ہے تو اسے کھلا رکھیں) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=پروجیکٹ کھولیں۔ ConfirmReOpenAProject=کیا آپ واقعی اس پروجیکٹ کو دوبارہ کھولنا چاہتے ہیں؟ ProjectContact=پروجیکٹ کے رابطے @@ -165,7 +169,7 @@ OpportunityProbability=لیڈ کا امکان OpportunityProbabilityShort=لیڈ پروباب۔ OpportunityAmount=لیڈ کی مقدار OpportunityAmountShort=لیڈ کی مقدار -OpportunityWeightedAmount=مواقع وزنی رقم +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=بالمقابل وزنی رقم OpportunityAmountAverageShort=لیڈ کی اوسط رقم OpportunityAmountWeigthedShort=وزنی لیڈ کی مقدار @@ -238,7 +242,7 @@ OppStatusPENDING=زیر التواء OppStatusWON=جیت گیا۔ OppStatusLOST=کھو دیا Budget=بجٹ -AllowToLinkFromOtherCompany=دیگر کمپنی سے لنک منصوبے کی اجازت دیں

    تائید اقدار:
    - خالی رکھیں: کمپنی (ڈیفالٹ) میں سے کسی منصوبے
    جوڑ سکتی ہے - "تمام": کسی بھی منصوبوں، دیگر کمپنیوں کی بھی پروجیکٹس
    جوڑ سکتی ہے - کی ایک فہرست فریق ثالث کی آئی ڈیز کو کوما سے الگ کیا گیا ہے: ان تھرڈ پارٹیز کے تمام پروجیکٹس کو لنک کر سکتے ہیں (مثال: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=تازہ ترین %s پروجیکٹس LatestModifiedProjects=تازہ ترین %s ترمیم شدہ پروجیکٹس OtherFilteredTasks=دیگر فلٹر شدہ کام @@ -259,7 +263,7 @@ TimeSpentInvoiced=وقت گزارا ہوا بل TimeSpentForIntervention=وقت گزارا۔ TimeSpentForInvoice=وقت گزارا۔ OneLinePerUser=فی صارف ایک لائن -ServiceToUseOnLines=لائنوں پر استعمال کرنے کے لیے سروس +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=انوائس %s پروجیکٹ پر خرچ کیے گئے وقت سے تیار کیا گیا ہے InterventionGeneratedFromTimeSpent=مداخلت %s پروجیکٹ پر خرچ کیے گئے وقت سے پیدا کی گئی ہے۔ ProjectBillTimeDescription=چیک کریں کہ آیا آپ پروجیکٹ کے کاموں پر ٹائم شیٹ درج کرتے ہیں اور آپ پروجیکٹ کے کسٹمر کو بل دینے کے لیے ٹائم شیٹ سے انوائس (انوائسز) بنانے کا ارادہ رکھتے ہیں (یہ چیک نہ کریں کہ آیا آپ انوائس بنانے کا ارادہ رکھتے ہیں جو درج کردہ ٹائم شیٹ پر مبنی نہیں ہے)۔ نوٹ: انوائس بنانے کے لیے، پراجیکٹ کے 'وقت گزارا ہوا' ٹیب پر جائیں اور شامل کرنے کے لیے لائنوں کو منتخب کریں۔ @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=منافع کا استعمال کرتے ہوئے شمار AddPersonToTask=کاموں میں بھی شامل کریں۔ UsageOrganizeEvent=استعمال: ایونٹ آرگنائزیشن PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=پروجیکٹ کو بند کے طور پر درجہ بندی کریں جب اس کے تمام کام مکمل ہوجائیں (100%% پیش رفت) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=نوٹ: 100%% پر تمام ٹاسک والے موجودہ پروجیکٹس پر کوئی اثر نہیں پڑے گا: آپ کو انہیں دستی طور پر بند کرنا پڑے گا۔ یہ اختیار صرف کھلے منصوبوں کو متاثر کرتا ہے۔ +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=گزارے گئے وقت کی لائنیں منتخب کریں جن کا بل نہیں ہے، پھر ان کو بل کرنے کے لیے بڑی تعداد میں "انوائس تیار کریں" ProjectTasksWithoutTimeSpent=بغیر وقت کے پروجیکٹ کے کام FormForNewLeadDesc=ہم سے رابطہ کرنے کے لیے درج ذیل فارم کو پُر کرنے کا شکریہ۔ آپ ہمیں براہ راست %s پر ای میل بھی بھیج سکتے ہیں۔ @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/ur_PK/recruitment.lang b/htdocs/langs/ur_PK/recruitment.lang index 29e986d3d59..e6c3a6e71a6 100644 --- a/htdocs/langs/ur_PK/recruitment.lang +++ b/htdocs/langs/ur_PK/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=ای میل بھرتی کرنے والا ToUseAGenericEmail=ایک عام ای میل استعمال کرنے کے لیے۔ اگر وضاحت نہیں کی گئی ہے تو، بھرتی کے ذمہ دار کا ای میل استعمال کیا جائے گا۔ NewCandidature=نئی درخواست ListOfCandidatures=درخواستوں کی فہرست -RequestedRemuneration=معاوضے کی درخواست کی۔ -ProposedRemuneration=مجوزہ معاوضہ +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=معاہدہ تجویز کیا گیا۔ ContractSigned=معاہدے پر دستخط کیے گئے۔ ContractRefused=معاہدہ کرنے سے انکار کر دیا۔ RecruitmentCandidature=درخواست JobPositions=ملازمت کے عہدے RecruitmentCandidatures=ایپلی کیشنز -InterviewToDo=انٹرویو کرنا ہے۔ +InterviewToDo=Contacts to follow AnswerCandidature=درخواست کا جواب YourCandidature=آپ کی درخواست YourCandidatureAnswerMessage=آپ کی درخواست کے لیے آپ کا شکریہ۔
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=ملازمت کی پوزیشن بند ہے۔ ExtrafieldsJobPosition=تکمیلی صفات (ملازمت کی پوزیشنیں) ExtrafieldsApplication=تکمیلی صفات (نوکری کی درخواستیں) MakeOffer=ایک پیشکش کریں۔ +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/ur_PK/salaries.lang b/htdocs/langs/ur_PK/salaries.lang index 3c6e18296f4..8827cd329e2 100644 --- a/htdocs/langs/ur_PK/salaries.lang +++ b/htdocs/langs/ur_PK/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=اکاؤنٹنگ اکاؤنٹ صارف تیسرے فریق کے لیے استعمال کیا جاتا ہے۔ -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=صارف کارڈ پر بیان کردہ وقف اکاؤنٹنگ اکاؤنٹ صرف Subledger اکاؤنٹنگ کے لیے استعمال کیا جائے گا۔ یہ جنرل لیجر کے لیے اور سبلیجر اکاؤنٹنگ کی ڈیفالٹ ویلیو کے طور پر استعمال کیا جائے گا اگر صارف پر وقف صارف اکاؤنٹنگ اکاؤنٹ کی وضاحت نہیں کی گئی ہے۔ +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=اجرت کی ادائیگی کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=بطور ڈیفالٹ، تنخواہ بناتے وقت "خودکار طور پر کل ادائیگی بنائیں" کے آپشن کو خالی چھوڑ دیں۔ Salary=تنخواہ diff --git a/htdocs/langs/ur_PK/stocks.lang b/htdocs/langs/ur_PK/stocks.lang index a776633222b..e3c353d9226 100644 --- a/htdocs/langs/ur_PK/stocks.lang +++ b/htdocs/langs/ur_PK/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=مستقبل میں تاریخ StocksByLotSerial=لاٹ/سیریل کے حساب سے اسٹاک LotSerial=لاٹس/سیریلز LotSerialList=لاٹ/سیریلز کی فہرست +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=حرکتیں ErrorWarehouseRefRequired=گودام کے حوالے کا نام درکار ہے۔ ListOfWarehouses=گوداموں کی فہرست @@ -48,7 +49,7 @@ StockCorrection=اسٹاک کی اصلاح CorrectStock=درست اسٹاک StockTransfer=اسٹاک کی منتقلی TransferStock=اسٹاک منتقل کریں۔ -MassStockTransferShort=بڑے پیمانے پر اسٹاک کی منتقلی +MassStockTransferShort=Bulk stock change StockMovement=اسٹاک کی نقل و حرکت StockMovements=اسٹاک کی نقل و حرکت NumberOfUnit=یونٹوں کی تعداد @@ -146,8 +147,9 @@ Replenishments=دوبارہ بھرنے NbOfProductBeforePeriod=منتخب مدت سے پہلے اسٹاک میں پروڈکٹ %s کی مقدار (<%s) NbOfProductAfterPeriod=منتخب مدت کے بعد اسٹاک میں پروڈکٹ %s کی مقدار (> %s) MassMovement=عوامی تحریک -SelectProductInAndOutWareHouse=ایک ذریعہ گودام اور ہدف گودام، ایک پروڈکٹ اور مقدار منتخب کریں پھر "%s" پر کلک کریں۔ ایک بار جب یہ تمام مطلوبہ حرکتوں کے لیے ہو جائے تو "%s" پر کلک کریں۔ +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=ریکارڈ کی منتقلی +RecordMovements=Record stock movements ReceivingForSameOrder=اس آرڈر کی رسیدیں StockMovementRecorded=اسٹاک کی نقل و حرکت ریکارڈ کی گئی۔ RuleForStockAvailability=اسٹاک کی ضروریات پر قواعد @@ -176,7 +178,7 @@ ProductStockWarehouseCreated=انتباہ کے لیے اسٹاک کی حد او ProductStockWarehouseUpdated=الرٹ کے لیے اسٹاک کی حد اور مطلوبہ بہترین اسٹاک کو درست طریقے سے اپ ڈیٹ کیا گیا۔ ProductStockWarehouseDeleted=الرٹ کے لیے اسٹاک کی حد اور مطلوبہ بہترین اسٹاک کو صحیح طریقے سے حذف کر دیا گیا۔ AddNewProductStockWarehouse=الرٹ اور مطلوبہ بہترین اسٹاک کے لیے نئی حد مقرر کریں۔ -AddStockLocationLine=مقدار کو کم کریں پھر اس پروڈکٹ کے لیے دوسرا گودام شامل کرنے کے لیے کلک کریں۔ +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=انوینٹری کی تاریخ Inventories=انوینٹریز NewInventory=نئی انوینٹری @@ -234,7 +236,7 @@ StockIncrease=اسٹاک میں اضافہ StockDecrease=اسٹاک میں کمی InventoryForASpecificWarehouse=مخصوص گودام کے لیے انوینٹری InventoryForASpecificProduct=کسی مخصوص پروڈکٹ کے لیے انوینٹری -StockIsRequiredToChooseWhichLotToUse=کون سا لاٹ استعمال کرنا ہے اس کا انتخاب کرنے کے لیے اسٹاک کی ضرورت ہے۔ +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=کرنے پر مجبور کریں۔ AlwaysShowFullArbo=گودام کے لنکس کے پاپ اپ پر گودام کا پورا درخت دکھائیں (انتباہ: یہ ڈرامائی طور پر کارکردگی کو کم کر سکتا ہے) StockAtDatePastDesc=آپ یہاں ماضی میں دی گئی تاریخ پر اسٹاک (اصلی اسٹاک) دیکھ سکتے ہیں۔ @@ -254,7 +256,7 @@ ReOpen=دوبارہ کھولیں۔ ConfirmFinish=کیا آپ انوینٹری کے بند ہونے کی تصدیق کرتے ہیں؟ یہ آپ کے اسٹاک کو آپ کی انوینٹری میں داخل کردہ اصلی مقدار میں اپ ڈیٹ کرنے کے لیے تمام اسٹاک کی نقل و حرکت پیدا کرے گا۔ ObjectNotFound=%s نہیں ملا MakeMovementsAndClose=نقل و حرکت پیدا کریں اور بند کریں۔ -AutofillWithExpected=حقیقی مقدار کو متوقع مقدار سے بدل دیں۔ +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=بطور ڈیفالٹ، پروڈکٹ "اسٹاک" ٹیب پر بیچ کی تفصیلات دکھائیں۔ CollapseBatchDetailHelp=آپ اسٹاک ماڈیول کنفیگریشن میں بیچ ڈیٹیل ڈیفالٹ ڈسپلے سیٹ کر سکتے ہیں۔ ErrorWrongBarcodemode=نامعلوم بارکوڈ وضع @@ -265,9 +267,53 @@ ProductBarcodeDoesNotExist=بارکوڈ والا پروڈکٹ موجود نہی WarehouseId=گودام کی شناخت WarehouseRef=گودام ریف SaveQtyFirst=سٹاک کی نقل و حرکت کے بارے میں پوچھنے سے پہلے پہلے اصلی انوینٹری شدہ مقداروں کو محفوظ کریں۔ +ToStart=Start InventoryStartedShort=شروع ErrorOnElementsInventory=مندرجہ ذیل وجہ سے آپریشن منسوخ کر دیا گیا: ErrorCantFindCodeInInventory=انوینٹری میں درج ذیل کوڈ نہیں مل سکتا QtyWasAddedToTheScannedBarcode=کامیابی !! مقدار کو تمام درخواست کردہ بار کوڈ میں شامل کیا گیا تھا۔ آپ سکینر ٹول کو بند کر سکتے ہیں۔ -StockChangeDisabled=اسٹاک پر تبدیلی غیر فعال ہے۔ +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=ٹرمینل کے لیے کوئی گودام متعین نہیں ہے۔ +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/ur_PK/ticket.lang b/htdocs/langs/ur_PK/ticket.lang index 36c951e7e57..dda8881b5ff 100644 --- a/htdocs/langs/ur_PK/ticket.lang +++ b/htdocs/langs/ur_PK/ticket.lang @@ -27,6 +27,7 @@ Permission56003=ٹکٹیں حذف کریں۔ Permission56004=ٹکٹوں کا انتظام کریں۔ Permission56005=تمام فریق ثالث کے ٹکٹ دیکھیں (بیرونی صارفین کے لیے موثر نہیں، ہمیشہ ان تیسرے فریق تک محدود رہیں جس پر وہ انحصار کرتے ہیں) +Tickets=Tickets TicketDictType=ٹکٹ - اقسام TicketDictCategory=ٹکٹ - گروپس TicketDictSeverity=ٹکٹ - شدت @@ -90,8 +91,8 @@ TicketPublicAccess=ایک عوامی انٹرفیس جس کے لیے کسی شن TicketSetupDictionaries=ٹکٹ کی قسم، شدت اور تجزیاتی کوڈ لغات سے قابل ترتیب ہیں۔ TicketParamModule=ماڈیول متغیر سیٹ اپ TicketParamMail=ای میل سیٹ اپ -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=ٹکٹ بنانے کے بعد ٹیکسٹ میسج بھیجا گیا۔ @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=یہاں بیان کردہ متن عوامی انٹرفی TicketParamPublicInterface=عوامی انٹرفیس سیٹ اپ TicketsEmailMustExist=ٹکٹ بنانے کے لیے موجودہ ای میل ایڈریس کی ضرورت ہے۔ TicketsEmailMustExistHelp=پبلک انٹرفیس میں، نیا ٹکٹ بنانے کے لیے ڈیٹا بیس میں ای میل ایڈریس کو پہلے سے ہی بھرنا چاہیے۔ +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=عوامی انٹرفیس TicketUrlPublicInterfaceLabelAdmin=عوامی انٹرفیس کے لیے متبادل URL TicketUrlPublicInterfaceHelpAdmin=ویب سرور کے لیے ایک عرف کی وضاحت کرنا اور اس طرح عوامی انٹرفیس کو دوسرے یو آر ایل کے ساتھ دستیاب کرنا ممکن ہے (سرور کو اس نئے یو آر ایل پر پراکسی کے طور پر کام کرنا چاہیے) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=ٹکٹ اب تفویض کیا گیا ہے۔ TicketChangeType=قسم تبدیل کریں۔ TicketChangeCategory=تجزیاتی کوڈ کو تبدیل کریں۔ TicketChangeSeverity=شدت کو تبدیل کریں۔ -TicketAddMessage=ایک پیغام شامل کریں۔ -AddMessage=ایک پیغام شامل کریں۔ +TicketAddMessage=Add private message MessageSuccessfullyAdded=ٹکٹ شامل کیا گیا۔ TicketMessageSuccessfullyAdded=پیغام کامیابی کے ساتھ شامل ہو گیا۔ TicketMessagesList=پیغام کی فہرست @@ -202,8 +206,8 @@ TicketSeverity=شدت ShowTicket=ٹکٹ دیکھیں RelatedTickets=متعلقہ ٹکٹ TicketAddIntervention=مداخلت پیدا کریں۔ -CloseTicket=بند کریں | ٹکٹ حل کریں۔ -AbandonTicket=ٹکٹ چھوڑ دیں۔ +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=بند کریں | ٹکٹ حل کریں۔ ConfirmCloseAticket=ٹکٹ بند ہونے کی تصدیق کریں۔ ConfirmAbandonTicket=کیا آپ ٹکٹ کے بند ہونے کی تصدیق کرتے ہیں اسٹیٹس 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=ای میل کے ذریعے پیغام بھیجیں۔ TicketNewMessage=نیا پیغام ErrorMailRecipientIsEmptyForSendTicketMessage=وصول کنندہ خالی ہے۔ کوئی ای میل نہیں بھیجا۔ TicketGoIntoContactTab=براہ کرم انہیں منتخب کرنے کے لیے "رابطے" ٹیب میں جائیں۔ -TicketMessageMailIntro=تعارف +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=یہ متن صرف ای میل کے شروع میں شامل کیا گیا ہے اور محفوظ نہیں کیا جائے گا۔ -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=دستخط -TicketMessageMailSignatureHelp=یہ متن صرف ای میل کے آخر میں شامل کیا گیا ہے اور محفوظ نہیں کیا جائے گا۔ -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=جوابی ای میل کے دستخط -TicketMessageMailSignatureHelpAdmin=یہ متن جوابی پیغام کے بعد داخل کیا جائے گا۔ +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=ٹکٹ کارڈ پر پیغام کی فہرست میں صرف یہ متن محفوظ کیا جائے گا۔ TicketMessageSubstitutionReplacedByGenericValues=متبادل متغیرات کو عام اقدار سے تبدیل کیا جاتا ہے۔ +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=تب سے وقت گزر گیا۔ TicketTimeToRead=پڑھنے سے پہلے وقت گزر گیا۔ TicketTimeElapsedBeforeSince=وقت سے پہلے / بعد سے گزر گیا @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=ٹکٹ پر %s موضوع کے سات TicketAssignedToYou=ٹکٹ تفویض کر دیا گیا۔ TicketAssignedEmailBody=آپ کو %s کی طرف سے ٹکٹ #%s تفویض کیا گیا ہے MarkMessageAsPrivate=پیغام کو نجی کے بطور نشان زد کریں۔ +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=یہ پیغام بیرونی صارفین کو نہیں دکھایا جائے گا۔ TicketEmailOriginIssuer=ٹکٹوں کی اصل پر جاری کنندہ InitialMessage=ابتدائی پیغام @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=آپ درج ذیل لنک پر کلک ک TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=براہ کرم اس ای میل کا براہ راست جواب نہ دیں! انٹرفیس میں جواب دینے کے لیے لنک کا استعمال کریں۔ TicketPublicInfoCreateTicket=یہ فارم آپ کو ہمارے انتظامی نظام میں سپورٹ ٹکٹ ریکارڈ کرنے کی اجازت دیتا ہے۔ -TicketPublicPleaseBeAccuratelyDescribe=براہ کرم مسئلہ کی درست وضاحت کریں۔ ہمیں آپ کی درخواست کی درست شناخت کرنے کی اجازت دینے کے لیے زیادہ سے زیادہ معلومات فراہم کریں۔ +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=براہ کرم ٹکٹ ٹریکنگ ID درج کریں۔ TicketTrackId=عوامی ٹریکنگ ID OneOfTicketTrackId=آپ کی ٹریکنگ آئی ڈی میں سے ایک diff --git a/htdocs/langs/ur_PK/users.lang b/htdocs/langs/ur_PK/users.lang index 18dbee63458..e14eaf1e067 100644 --- a/htdocs/langs/ur_PK/users.lang +++ b/htdocs/langs/ur_PK/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=گروپ سے نکال دیں۔ PasswordChangedAndSentTo=پاس ورڈ تبدیل کر کے %s پر بھیج دیا گیا۔ PasswordChangeRequest= %s کے لیے پاس ورڈ تبدیل کرنے کی درخواست PasswordChangeRequestSent= کے لیے پاس ورڈ بدلنے کی درخواست -IfLoginExistPasswordRequestSent=اگر یہ لاگ ان ایک درست اکاؤنٹ ہے تو پاس ورڈ کو دوبارہ ترتیب دینے کے لیے ایک ای میل بھیجی گئی ہے۔ +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=اگر یہ ای میل ایک درست اکاؤنٹ ہے تو پاس ورڈ کو دوبارہ ترتیب دینے کے لیے ایک ای میل بھیجی گئی ہے۔ ConfirmPasswordReset=پاس ورڈ دوبارہ ترتیب دینے کی تصدیق کریں۔ MenuUsersAndGroups=صارفین اور گروپس @@ -68,7 +68,6 @@ CreateDolibarrLogin=ایک صارف بنائیں CreateDolibarrThirdParty=تیسری پارٹی بنائیں LoginAccountDisableInDolibarr=Dolibarr میں اکاؤنٹ کو غیر فعال کر دیا گیا ہے۔ UsePersonalValue=ذاتی قدر استعمال کریں۔ -InternalUser=اندرونی صارف ExportDataset_user_1=صارفین اور ان کی خصوصیات DomainUser=ڈومین صارف %s Reactivate=دوبارہ فعال کریں۔ @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/ur_PK/website.lang b/htdocs/langs/ur_PK/website.lang index c9cce686375..443744e6ef8 100644 --- a/htdocs/langs/ur_PK/website.lang +++ b/htdocs/langs/ur_PK/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=کوڈ +WebsiteName=Name of the website WebsiteSetupDesc=یہاں وہ ویب سائٹس بنائیں جو آپ استعمال کرنا چاہتے ہیں۔ پھر ان میں ترمیم کرنے کے لیے مینو ویب سائٹس میں جائیں۔ DeleteWebsite=ویب سائٹ کو حذف کریں۔ ConfirmDeleteWebsite=کیا آپ واقعی اس ویب سائٹ کو حذف کرنا چاہتے ہیں؟ اس کے تمام صفحات اور مواد کو بھی ہٹا دیا جائے گا۔ اپ لوڈ کی گئی فائلیں (جیسے میڈیا ڈائرکٹری، ECM ماڈیول، ...) باقی رہیں گی۔ @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=HTML ہیڈر کے نیچے اضافہ (تمام صفحات WEBSITE_ROBOT=روبوٹ فائل (robots.txt) WEBSITE_HTACCESS=ویب سائٹ .htaccess فائل WEBSITE_MANIFEST_JSON=ویب سائٹ manifest.json فائل -WEBSITE_README=README.md فائل WEBSITE_KEYWORDSDesc=اقدار کو الگ کرنے کے لیے کوما کا استعمال کریں۔ -EnterHereLicenseInformation=README.md فائل کو بھرنے کے لیے یہاں میٹا ڈیٹا یا لائسنس کی معلومات درج کریں۔ اگر آپ اپنی ویب سائٹ کو ٹیمپلیٹ کے طور پر تقسیم کرتے ہیں، تو فائل کو آزمائشی پیکیج میں شامل کیا جائے گا۔ +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML ہیڈر (صرف اس صفحہ کے لیے مخصوص) PageNameAliasHelp=صفحہ کا نام یا عرف۔
    یہ عرف SEO یو آر ایل بنانے کے لیے بھی استعمال ہوتا ہے جب ویب سائٹ کسی ویب سرور کے ورچوئل ہوسٹ (جیسے Apacke, Nginx, ...) سے چلائی جاتی ہے۔ اس عرف میں ترمیم کرنے کے لیے بٹن " %s " استعمال کریں۔ EditTheWebSiteForACommonHeader=نوٹ: اگر آپ تمام صفحات کے لیے ذاتی نوعیت کے ہیڈر کی وضاحت کرنا چاہتے ہیں تو صفحہ/کنٹینر کے بجائے سائٹ کی سطح پر ہیڈر میں ترمیم کریں۔ @@ -42,6 +43,8 @@ ViewPageInNewTab=نئے ٹیب میں صفحہ دیکھیں SetAsHomePage=ہوم پیج سیٹ کریں RealURL=اصلی URL ViewWebsiteInProduction=ہوم یو آر ایل کا استعمال کرتے ہوئے ویب سائٹ دیکھیں +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= اپاچی کے ساتھ استعمال / NGinx / ...
    آپ کے ویب سرور پر تخلیق کریں (اپاچی، Nginx ...) پی ایچ پی کے ساتھ ایک سرشار مجازی میزبان فعال اور پر ایک روٹ ڈائریکٹری
    %s ExampleToUseInApacheVirtualHostConfig=اپاچی ورچوئل ہوسٹ سیٹ اپ میں استعمال کرنے کی مثال: YouCanAlsoTestWithPHPS= پر
    PHP سرایت سرور
    ساتھ استعمال کے ماحول کی ترقی، آپ
    PHP -S 0.0.0.0:8080 -t %s چلا کر PHP سرایت ویب سرور کے ساتھ سائٹ (PHP 5.5 درکار) کی جانچ کے لیے پسند کر سکتے ہیں @@ -137,7 +140,7 @@ PagesRegenerated=%s صفحہ/کنٹینر دوبارہ تیار کیا گیا RegenerateWebsiteContent=ویب سائٹ کیش فائلوں کو دوبارہ تخلیق کریں۔ AllowedInFrames=فریموں میں اجازت ہے۔ DefineListOfAltLanguagesInWebsiteProperties=ویب سائٹ کی خصوصیات میں تمام دستیاب زبانوں کی فہرست کی وضاحت کریں۔ -GenerateSitemaps=ویب سائٹ کا نقشہ فائل بنائیں +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=اگر آپ تصدیق کرتے ہیں، تو آپ موجودہ سائٹ میپ فائل کو مٹا دیں گے... ConfirmSitemapsCreation=سائٹ کا نقشہ تیار کرنے کی تصدیق کریں۔ SitemapGenerated=سائٹ کا نقشہ فائل %s تیار کیا گیا @@ -145,3 +148,10 @@ ImportFavicon=فیویکان ErrorFaviconType=Favicon png ہونا چاہیے۔ ErrorFaviconSize=فیویکن کا سائز 16x16، 32x32 یا 64x64 ہونا چاہیے۔ FaviconTooltip=ایک تصویر اپ لوڈ کریں جس کا png ہونا ضروری ہے (16x16، 32x32 یا 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/ur_PK/withdrawals.lang b/htdocs/langs/ur_PK/withdrawals.lang index 11f9cc76b26..57fe76132d6 100644 --- a/htdocs/langs/ur_PK/withdrawals.lang +++ b/htdocs/langs/ur_PK/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=وینڈر انوائس کریڈٹ ٹرانسفر InvoiceWaitingWithdraw=انوائس براہ راست ڈیبٹ کا انتظار کر رہا ہے۔ InvoiceWaitingPaymentByBankTransfer=انوائس کریڈٹ ٹرانسفر کا انتظار کر رہی ہے۔ AmountToWithdraw=واپس لینے کی رقم +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw='%s' کے لیے کھلا کوئی رسید انتظار نہیں کر رہا ہے۔ درخواست کرنے کے لیے انوائس کارڈ پر ٹیب '%s' پر جائیں۔ -NoSupplierInvoiceToWithdraw=کھلی 'براہ راست کریڈٹ کی درخواستوں' کے ساتھ کوئی سپلائر انوائس انتظار نہیں کر رہا ہے۔ درخواست کرنے کے لیے انوائس کارڈ پر ٹیب '%s' پر جائیں۔ +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=صارف ذمہ دار WithdrawalsSetup=براہ راست ڈیبٹ ادائیگی کا سیٹ اپ CreditTransferSetup=کریڈٹ ٹرانسفر سیٹ اپ @@ -41,6 +42,7 @@ CreditTransferStatistics=کریڈٹ ٹرانسفر کے اعدادوشمار Rejects=رد کرتا ہے۔ LastWithdrawalReceipt=تازہ ترین %s براہ راست ڈیبٹ رسیدیں۔ MakeWithdrawRequest=براہ راست ڈیبٹ ادائیگی کی درخواست کریں۔ +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=کریڈٹ ٹرانسفر کی درخواست کریں۔ WithdrawRequestsDone=%s براہ راست ڈیبٹ ادائیگی کی درخواستیں ریکارڈ کی گئیں۔ BankTransferRequestsDone=%s کریڈٹ ٹرانسفر کی درخواستیں ریکارڈ کی گئیں۔ @@ -99,8 +101,11 @@ CreditDate=پر کریڈٹ WithdrawalFileNotCapable=آپ کے ملک %s (آپ کا ملک تعاون یافتہ نہیں ہے) کے لیے رقم نکلوانے کی رسید بنانے میں ناکام ShowWithdraw=براہ راست ڈیبٹ آرڈر دکھائیں۔ IfInvoiceNeedOnWithdrawPaymentWontBeClosed=تاہم، اگر انوائس میں کم از کم ایک براہ راست ڈیبٹ ادائیگی کا آرڈر ابھی تک پروسیس نہیں ہوا ہے، تو اسے پہلے سے نکالنے کے انتظام کی اجازت دینے کے لیے بطور ادائیگی سیٹ نہیں کیا جائے گا۔ -DoStandingOrdersBeforePayments=یہ ٹیب آپ کو براہ راست ڈیبٹ ادائیگی کے آرڈر کی درخواست کرنے کی اجازت دیتا ہے۔ ایک بار مکمل ہوجانے کے بعد، مینو میں جائیں Bank->براہ راست ڈیبٹ کے ذریعے ادائیگی تاکہ ڈائریکٹ ڈیبٹ آرڈر تیار کریں اور اس کا نظم کریں۔ ڈائریکٹ ڈیبٹ آرڈر بند ہونے پر، انوائسز پر ادائیگی خود بخود ریکارڈ ہو جائے گی، اور اگر ادائیگی باقی ہے تو انوائسز بند ہو جائیں گی۔ -DoCreditTransferBeforePayments=یہ ٹیب آپ کو کریڈٹ ٹرانسفر آرڈر کی درخواست کرنے کی اجازت دیتا ہے۔ ایک بار مکمل ہوجانے کے بعد، مینو میں جائیں بینک-> کریڈٹ ٹرانسفر کے ذریعے ادائیگی کریڈٹ ٹرانسفر آرڈر تیار کرنے اور اس کا نظم کرنے کے لیے۔ جب کریڈٹ ٹرانسفر آرڈر بند ہو جائے گا، انوائس پر ادائیگی خود بخود ریکارڈ ہو جائے گی، اور اگر ادائیگی باقی ہے تو انوائسز بند ہو جائیں گی۔ +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=ڈیبٹ آرڈر فائل CreditTransferFile=کریڈٹ ٹرانسفر فائل SetToStatusSent="فائل بھیجی گئی" کی حیثیت پر سیٹ کریں @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=خالی رقم کے لیے براہ راست ڈی SepaMandate=SEPA ڈائریکٹ ڈیبٹ مینڈیٹ SepaMandateShort=SEPA مینڈیٹ PleaseReturnMandate=براہ کرم یہ مینڈیٹ فارم بذریعہ ای میل %s پر یا بذریعہ ڈاک واپس کریں۔ -SEPALegalText=اس مینڈیٹ فارم پر دستخط کرکے، آپ (A) %s کو اختیار دیتے ہیں کہ وہ آپ کے اکاؤنٹ کو ڈیبٹ کرنے کے لیے اپنے بینک کو ہدایات بھیجے اور (B) آپ کے بینک کو %s کی ہدایات کے مطابق آپ کے اکاؤنٹ کو ڈیبٹ کرنے کا اختیار دیں۔ اپنے حقوق کے حصے کے طور پر، آپ اپنے بینک کے ساتھ اپنے معاہدے کی شرائط و ضوابط کے تحت اپنے بینک سے رقم کی واپسی کے حقدار ہیں۔ مندرجہ بالا مینڈیٹ سے متعلق آپ کے حقوق کی وضاحت ایک بیان میں کی گئی ہے جو آپ اپنے بینک سے حاصل کر سکتے ہیں۔ +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=قرض دہندہ شناخت کنندہ CreditorName=قرض دینے والے کا نام SEPAFillForm=(B) براہ کرم نشان زدہ تمام فیلڈز کو مکمل کریں* @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=پھانسی کی تاریخ CreateForSepa=ڈائریکٹ ڈیبٹ فائل بنائیں ICS=کریڈٹ کنندہ شناخت کنندہ - ICS +IDS=Debitor Identifier END_TO_END="EndToEndId" SEPA XML ٹیگ - فی ٹرانزیکشن تفویض کردہ منفرد شناخت USTRD="غیر ساختہ" SEPA XML ٹیگ ADDDAYS=عملدرآمد کی تاریخ میں دن شامل کریں۔ @@ -154,3 +160,4 @@ ErrorICSmissing=بینک اکاؤنٹ %s میں ICS غائب ہے۔ TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=براہ راست ڈیبٹ آرڈر کی کل رقم لائنوں کے مجموعے سے مختلف ہے۔ WarningSomeDirectDebitOrdersAlreadyExists=انتباہ: پہلے سے ہی کچھ زیر التواء ڈائریکٹ ڈیبٹ آرڈرز (%s) کی درخواست کی گئی ہے %s WarningSomeCreditTransferAlreadyExists=انتباہ: پہلے سے ہی کچھ زیر التواء کریڈٹ ٹرانسفر (%s) کی درخواست کی گئی ہے %s کی رقم +UsedFor=Used for %s diff --git a/htdocs/langs/ur_PK/workflow.lang b/htdocs/langs/ur_PK/workflow.lang index 552890cec33..7da2a5f992f 100644 --- a/htdocs/langs/ur_PK/workflow.lang +++ b/htdocs/langs/ur_PK/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=تجارتی تجویز پر دستخط ہ descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=تجارتی تجویز پر دستخط ہونے کے بعد خودکار طور پر ایک کسٹمر انوائس بنائیں (نئے انوائس میں پروپوزل کے برابر رقم ہوگی) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=معاہدے کی توثیق کے بعد خودکار طور پر ایک کسٹمر انوائس بنائیں descWORKFLOW_ORDER_AUTOCREATE_INVOICE=سیلز آرڈر بند ہونے کے بعد خودکار طور پر کسٹمر انوائس بنائیں (نئے انوائس میں آرڈر کے برابر رقم ہوگی) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=جب سیلز آرڈر کو بل پر سیٹ کیا جاتا ہے تو لنکڈ سورس پروپوزل کو بطور بل کی درجہ بندی کریں (اور اگر آرڈر کی رقم دستخط شدہ لنکڈ پروپوزل کی کل رقم کے برابر ہے) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=جب گاہک کی انوائس کی توثیق کی جاتی ہے تو لنک شدہ سورس پروپوزل کو بل کے طور پر درجہ بندی کریں (اور اگر انوائس کی رقم دستخط شدہ لنکڈ پروپوزل کی کل رقم کے برابر ہے) @@ -21,10 +22,15 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=جب وینڈر ان descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=جب کسی استقبالیہ کی توثیق ہو جاتی ہے تو منسلک ذریعہ خریداری کے آرڈر کو موصول ہونے کے مطابق درجہ بندی کریں (اور اگر تمام استقبالیوں کو موصول ہونے والی مقدار وہی ہے جو اپ ڈیٹ کرنے کے لیے خریداری آرڈر میں ہے) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=ریسیپشن بند ہونے پر موصول ہونے والے لنکڈ سورس پرچیز آرڈر کی درجہ بندی کریں (اور اگر تمام ریسپشنز کو موصول ہونے والی مقدار وہی ہے جو اپ ڈیٹ کرنے کے لیے خریداری آرڈر میں ہے) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=جب کسی منسلک سپلائر آرڈر کی توثیق ہو جاتی ہے تو استقبالیہ کو "بل شدہ" میں درجہ بندی کریں۔ +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=ٹکٹ بند ہونے پر ٹکٹ سے منسلک تمام مداخلتوں کو بند کر دیں۔ AutomaticCreation=خودکار تخلیق AutomaticClassification=خودکار درجہ بندی # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=جب کسٹمر انوائس کی توثیق ہو جائے تو لنک شدہ سورس شپمنٹ کو بند کے طور پر درجہ بندی کریں۔ +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index c1d0b7d84b9..d1e47ddef53 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=EEC tarkibiga kirmagan mamlakatlar CountriesInEECExceptMe=%s dan tashqari EECdagi mamlakatlar CountriesExceptMe=%s dan tashqari barcha mamlakatlar AccountantFiles=Dastlabki hujjatlarni eksport qilish -ExportAccountingSourceDocHelp=Ushbu vosita yordamida siz buxgalteriya hisobingizni yaratish uchun foydalaniladigan manba voqealarini (CSV va PDF-dagi ro'yxat) eksport qilishingiz mumkin. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=Jurnallaringizni eksport qilish uchun %s - %s menyu yozuvidan foydalaning. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=Buxgalteriya hisobi bo'yicha ko'rish VueBySubAccountAccounting=Buxgalteriya subkontaji bo'yicha ko'rish @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=O'rnatishda aniqlanmagan sotuvchilar uchun aso MainAccountForUsersNotDefined=O'rnatishda aniqlanmagan foydalanuvchilar uchun asosiy buxgalteriya hisobi MainAccountForVatPaymentNotDefined=O'rnatishda aniqlanmagan QQSni to'lash uchun asosiy buxgalteriya hisobi MainAccountForSubscriptionPaymentNotDefined=O'rnatishda aniqlanmagan obuna to'lovining asosiy buxgalteriya hisobi +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Buxgalteriya hisobi maydoni AccountancyAreaDescIntro=Buxgalteriya modulidan foydalanish bir necha bosqichda amalga oshiriladi: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Bank hisobvarag'idagi operatsiyani to'g'ridan-to'g'ri ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Jurnalda qoralama eksportni yoqish ACCOUNTANCY_COMBO_FOR_AUX=Yordamchi hisob uchun kombinatsiyalangan ro'yxatni yoqish (agar sizda uchinchi shaxslar ko'p bo'lsa, sekin bo'lishi mumkin, qiymatning bir qismini qidirish qobiliyati buziladi) ACCOUNTING_DATE_START_BINDING=Buxgalteriyada majburiy va o'tkazishni boshlash uchun sanani aniqlang. Ushbu sana ostida operatsiyalar buxgalteriya hisobiga o'tkazilmaydi. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Buxgalteriya o'tkazmalarida sukut bo'yicha davr ko'rsatilishini tanlang +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Yangi jurnal mavjud +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Natija buxgalteriya hisobi (foyda) ACCOUNTING_RESULT_LOSS=Natija buxgalteriya hisobi (Zarar) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Yopish jurnali -ACCOUNTING_ACCOUNT_TRANSFER_CASH=O'tish davri o'tkazmalarining buxgalteriya hisobi +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=O'tkazma hisobvarag'i -ACCOUNTING_ACCOUNT_SUSPENSE=Kutishning buxgalteriya hisobi -DONATION_ACCOUNTINGACCOUNT=Xayriya mablag'larini ro'yxatdan o'tkazish uchun buxgalteriya hisobi -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Obunalarni ro'yxatdan o'tkazish uchun buxgalteriya hisobi +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Mijozlar depozitini ro'yxatdan o'tkazish uchun sukut bo'yicha buxgalteriya hisobi -UseAuxiliaryAccountOnCustomerDeposit=Mijozlarning depozit liniyalarida sub-hisoblardan foydalaning +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Xarid qilingan mahsulotlar uchun sukut bo'yicha buxgalteriya hisobi (agar mahsulot varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=EECda sotib olingan mahsulotlar uchun sukut bo'yicha buxgalteriya hisobi (agar mahsulot varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Sotib olingan va EECdan tashqariga olib kirilgan mahsulotlar uchun sukut bo'yicha buxgalteriya hisobi (agar mahsulot varag'ida belgilanmagan bo'lsa) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Sotilgan mahsulotlar uchun sukut bo'yicha buxgalteriya hisobi (agar mahsulot varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=EECda sotilgan mahsulotlar uchun sukut bo'yicha buxgalteriya hisobi (agar mahsulot varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=EECdan tashqarida sotilgan va eksport qilingan mahsulotlar uchun sukut bo'yicha buxgalteriya hisobi (agar mahsulot varag'ida belgilanmagan bo'lsa) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Sotib olingan xizmatlar uchun sukut bo'yicha buxgalteriya hisobi (agar xizmat varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=EECda sotib olingan xizmatlar uchun sukut bo'yicha buxgalteriya hisobi (agar xizmat varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Sotib olingan va EECdan tashqariga olib kirilgan xizmatlar uchun sukut bo'yicha buxgalteriya hisobi (agar xizmat varag'ida ko'rsatilmagan bo'lsa) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Sotilgan xizmatlar uchun sukut bo'yicha buxgalteriya hisobi (agar xizmat varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=EECda sotilgan xizmatlar uchun sukut bo'yicha buxgalteriya hisobi (agar xizmat varag'ida belgilanmagan bo'lsa foydalaniladi) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=EECdan tashqarida sotilgan va eksport qilingan xizmatlar uchun sukut bo'yicha buxgalteriya hisobi (agar xizmat varag'ida belgilanmagan bo'lsa) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -211,7 +217,7 @@ Codejournal=Journal JournalLabel=Jurnal yorlig'i NumPiece=Parcha raqami TransactionNumShort=Raqam bitim -AccountingCategory=Maxsus guruh +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Bosh kitob schyoti bo'yicha guruhlash GroupBySubAccountAccounting=Subledger schyoti bo'yicha guruhlash AccountingAccountGroupsDesc=Siz bu erda buxgalteriya hisobining ayrim guruhlarini belgilashingiz mumkin. Ular shaxsiylashtirilgan buxgalteriya hisobotlari uchun ishlatiladi. @@ -265,13 +271,13 @@ Reconcilable=Yarashtiriladigan TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Mahsulotni hisobga olish hisobvarag'iga bog'langan (yoki bo'lmagan) mijozlarning hisob-fakturalari satrlari ro'yxati bilan bu erda maslahatlashing -DescVentilMore=Ko'pgina hollarda, agar siz oldindan belgilangan mahsulot yoki xizmatlardan foydalansangiz va mahsulot / xizmat kartasida hisob raqamini o'rnatgan bo'lsangiz, ilova sizning hisob-faktura satrlari va sizning hisobvaraqlar rejangizning buxgalteriya hisobi o'rtasidagi majburiylikni amalga oshirishi mumkin. "%s" tugmasi bilan bir marta bosish. Agar mahsulot / xizmat kartalarida hisob o'rnatilmagan bo'lsa yoki sizda hali ham biron bir qatorga bog'liq bo'lmagan bo'lsa, siz " %s " menyusidan majburiy ravishda majburiy ulanishingiz kerak bo'ladi. -DescVentilDoneCustomer=Xaridorlarning schyot-fakturalari ro'yxati va ularning mahsulotlarini hisobga olish hisobi bilan bu erda maslahatlashing -DescVentilTodoCustomer=Mahsulotni hisobga olish hisobvarag'i bilan bog'lanmagan hisob-faktura satrlarini bog'lab qo'ying -ChangeAccount=Tanlangan yo'nalishlar uchun mahsulot / xizmatning buxgalteriya hisobini quyidagi buxgalteriya hisobi bilan o'zgartiring: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Mahsulotni hisobga olish hisobvarag'iga bog'langan yoki hali bog'lanmagan sotuvchining faktura satrlari ro'yxati bilan bu erda maslahatlashing (faqat buxgalteriyada o'tkazilmagan yozuvlar ko'rinadi) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Bu erda sotuvchilarning schyot-fakturalari ro'yxati va ularning buxgalteriya hisobi bilan maslahatlashing DescVentilTodoExpenseReport=To'lovlarni hisobga olish hisobvarag'i bilan bog'lanmagan majburiy xarajatlar to'g'risidagi hisobot satrlari DescVentilExpenseReport=To'lovlarni hisobga olish hisobvarag'iga bog'langan (yoki bo'lmagan) xarajatlar hisobotlari ro'yxati bilan bu erda maslahatlashing @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Agar siz buxgalteriya hisobini xarajatlar to'g'risid DescVentilDoneExpenseReport=Xarajatlar hisobotlari ro'yxati va ularning to'lovlarini hisobga olish hisobi bilan bu erda maslahatlashing Closure=Yillik yopilish -DescClosure=Hali tasdiqlanmagan va qulflanmagan oylar bo'yicha harakatlar soni bilan bu erda maslahatlashing +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Tasdiqlanmagan va qulflanmagan harakatlarning umumiy ko'rinishi AllMovementsWereRecordedAsValidated=Barcha harakatlar tasdiqlangan va qulflangan sifatida qayd etilgan NotAllMovementsCouldBeRecordedAsValidated=Hamma harakatlarni tasdiqlangan va qulflangan deb yozib bo'lmaydi -ValidateMovements=Yozuvni tasdiqlash va bloklash... +ValidateMovements=Validate and lock movements... DescValidateMovements=Yozishni, xatlarni va o'chirishni har qanday o'zgartirish yoki o'chirish taqiqlanadi. Jismoniy mashqlar uchun barcha yozuvlar tasdiqlanishi kerak, aks holda yopish mumkin bo'lmaydi ValidateHistory=Avtomatik bog'lash AutomaticBindingDone=Avtomatik ulanishlar bajarildi (%s) - Ba'zi yozuvlar uchun avtomatik bog'lash mumkin emas (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Harakat to'g'ri muvozanatlanmagan. Debet = %s & Kredit = %s Balancing=Balanslash FicheVentilation=Majburiy karta GeneralLedgerIsWritten=Bitimlar kitobda yozilgan GeneralLedgerSomeRecordWasNotRecorded=Ba'zi operatsiyalarni jurnalga yozib bo'lmaydi. Agar boshqa xato xabari bo'lmasa, bu ular allaqachon jurnalga yozilganligi sababli bo'lishi mumkin. NoNewRecordSaved=O‘tkazish uchun boshqa rekord yo‘q -ListOfProductsWithoutAccountingAccount=Hech qanday buxgalteriya hisobiga bog'lanmagan mahsulotlar ro'yxati +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Majburiylikni o'zgartiring Accounted=Hisob kitobida hisobga olingan NotYetAccounted=Buxgalteriya hisobiga hali o'tkazilmagan @@ -319,9 +325,10 @@ AccountingJournalType1=Turli xil operatsiyalar AccountingJournalType2=Sotish AccountingJournalType3=Xaridlar AccountingJournalType4=Bank -AccountingJournalType5=Xarajatlar to'g'risida hisobot +AccountingJournalType5=Expense reports AccountingJournalType8=Inventarizatsiya AccountingJournalType9=Yangi-yangi +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Ushbu jurnal allaqachon ishlatilgan AccountingAccountForSalesTaxAreDefinedInto=Izoh: Sotish solig'i bo'yicha buxgalteriya hisobi %s - %s menyusida aniqlanadi NumberOfAccountancyEntries=Yozuvlar soni @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Harakatlar soni ACCOUNTING_DISABLE_BINDING_ON_SALES=Sotish bo'yicha buxgalteriyada majburiy va o'tkazishni o'chirib qo'ying (mijozlar hisob-kitoblari buxgalteriya hisobida hisobga olinmaydi) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Xaridlar bo'yicha buxgalteriyada majburiy va o'tkazishni o'chirib qo'ying (sotuvchi hisob-kitoblari buxgalteriya hisobida hisobga olinmaydi) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Xarajatlar hisobotlari bo'yicha buxgalteriyada majburiy va o'tkazishni o'chirib qo'ying (xarajatlar hisoboti buxgalteriya hisobida hisobga olinmaydi) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Eksport qilingan qatorlarni eksport qilingan deb belgilash (chiziqni o‘zgartirish uchun siz butun tranzaksiyani o‘chirib tashlashingiz va uni buxgalteriya hisobiga qayta o‘tkazishingiz kerak) -NotifiedValidationDate=Eksport qilingan yozuvlarni tekshirish va bloklash (“Yopish” funksiyasi bilan bir xil effekt, satrlarni o‘zgartirish va o‘chirish ALBATTA mumkin emas) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Sanani tekshirish va qulflash ConfirmExportFile=Buxgalteriya eksporti faylini yaratishni tasdiqlashmi? ExportDraftJournal=Jurnal jurnalini eksport qiling @@ -398,7 +407,11 @@ Calculated=Hisoblangan Formula=Formula ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Murosasiz +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=Hech qanday kelishuv o'zgartirilmagan AccountancyOneLetteringModifiedSuccessfully=Bitta yarashuv muvaffaqiyatli oʻzgartirildi AccountancyLetteringModifiedSuccessfully=%s moslashtirish muvaffaqiyatli o'zgartirildi @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Bitta kelishuv muvaffaqiyatli oʻz AccountancyUnletteringModifiedSuccessfully=%s unreconcile muvaffaqiyatli oʻzgartirildi ## Confirm box -ConfirmMassUnlettering=Ommaviy kelishuvni tasdiqlash -ConfirmMassUnletteringQuestion=Haqiqatan ham %s tanlangan yozuv(lar)ni yarashtirmoqchimisiz? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Ommaviy oʻchirishni tasdiqlash ConfirmMassDeleteBookkeepingWritingQuestion=Bu operatsiyani buxgalteriya hisobidan o'chirib tashlaydi (bir xil tranzaksiyaga tegishli barcha qatorlar o'chiriladi) %s tanlangan yozuv(lar)ni o'chirib tashlamoqchimisiz? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Kech AccountancyErrorMismatchLetterCode=Kelishuv kodidagi nomuvofiqlik AccountancyErrorMismatchBalanceAmount=Balans (%s) 0 ga teng emas AccountancyErrorLetteringBookkeeping=Tranzaktsiyalarda xatoliklar yuz berdi: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Buxgalteriya yozuvlari @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Ko'p valyuta kodi (Idevise) DateExport=Sana eksporti WarningReportNotReliable=Diqqat, ushbu hisobot daftarga asoslanmagan, shuning uchun daftarda qo'lda o'zgartirilgan bitimni o'z ichiga olmaydi. Agar sizning jurnalizatsiya dolzarb bo'lsa, buxgalteriya hisobi yanada aniqroq bo'ladi. ExpenseReportJournal=Xarajatlar bo'yicha hisobot jurnali -InventoryJournal=Inventarizatsiya jurnali NAccounts=%s hisob qaydnomalari diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index 53a5095c1ba..de6320aef64 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Mijozlarni taqqoslash WarningModuleNotActive= %s moduli yoqilgan bo'lishi kerak WarningOnlyPermissionOfActivatedModules=Bu erda faqat faollashtirilgan modullarga tegishli ruxsatlar ko'rsatilgan. Boshqa modullarni Home-> Setup-> Modules sahifasida faollashtirishingiz mumkin. DolibarrSetup=Dolibarr-ni o'rnating yoki yangilang -InternalUser=Ichki foydalanuvchi -ExternalUser=Tashqi foydalanuvchi InternalUsers=Ichki foydalanuvchilar ExternalUsers=Tashqi foydalanuvchilar UserInterface=Foydalanuvchi interfeysi @@ -109,7 +107,7 @@ NextValueForReplacements=Keyingi qiymat (almashtirish) MustBeLowerThanPHPLimit=Eslatma: sizning PHP konfiguratsiyangiz hozirda ushbu parametr qiymatidan qat'i nazar, %s %s-ga yuklash uchun maksimal hajmni cheklaydi NoMaxSizeByPHPLimit=Eslatma: PHP-ning konfiguratsiyasida chegara o'rnatilmagan MaxSizeForUploadedFiles=Yuklangan fayllar uchun maksimal o'lcham (har qanday yuklashga ruxsat bermaslik uchun 0) -UseCaptchaCode=Kirish sahifasida grafik koddan (CAPTCHA) foydalaning +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Antivirus buyrug'iga to'liq yo'l AntiVirusCommandExample=ClamAv Daemon uchun namuna (clamav-demon talab qilinadi): / usr / bin / clamdscan
    ClamWin uchun misol (juda sekin): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Buyruq satrida ko'proq parametrlar @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (php.ini-da standart qiymat: %s MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS porti (Unix-ga o'xshash tizimlarda PHP-da aniqlanmagan) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS xosti (Unixga o'xshash tizimlarda PHP-da aniqlanmagan) MAIN_MAIL_EMAIL_FROM=Avtomatik elektron pochta xabarlari uchun jo'natuvchi elektron pochtasi (php.ini-da standart qiymat: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Xato uchun foydalanilgan elektron pochta xabarlarini qaytaradi (elektron pochtalarda "Xatolar" maydonlari) MAIN_MAIL_AUTOCOPY_TO= Barcha elektron pochta xabarlarini nusxa ko'chiring (Bcc) MAIN_DISABLE_ALL_MAILS=Barcha elektron pochta xabarlarini yuborishni o'chirib qo'ying (sinov maqsadida yoki namoyish uchun) @@ -439,8 +438,10 @@ Unique=Noyob Boolean=Mantiqiy (bitta katakcha) ExtrafieldPhone = Telefon ExtrafieldPrice = Narx +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Elektron pochta ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Ro'yxatni tanlang ExtrafieldSelectList = Jadvaldan tanlang ExtrafieldSeparator=Ajratuvchi (maydon emas) @@ -477,7 +478,7 @@ InstalledInto=%s katalogiga o'rnatilgan BarcodeInitForThirdparties=Uchinchi tomonlar uchun ommaviy shtrix-kod BarcodeInitForProductsOrServices=Mahsulotlar yoki xizmatlar uchun ommaviy shtrix kodni qayta tiklash yoki tiklash CurrentlyNWithoutBarCode=Ayni paytda sizda %s yozuvi %s a0a65d071f60z0c bardefined29fcda mavjud. -InitEmptyBarCode=Keyingi %s bo'sh yozuvlar uchun boshlang'ich qiymati +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Barcha joriy shtrix qiymatlarini o'chirib tashlang ConfirmEraseAllCurrentBarCode=Haqiqatan ham barcha shtrix kod qiymatlarini o'chirishni xohlaysizmi? AllBarcodeReset=Barcha shtrix qiymatlari o'chirildi @@ -501,10 +502,11 @@ WarningPHPMail=OGOHLANTIRISH: Ilovadan elektron pochta xabarlarini yuborish uchu WarningPHPMailA=- Elektron pochta xizmati provayderining serveridan foydalanish elektron pochtangizning ishonchliligini oshiradi, shuning uchun SPAM sifatida belgilanmasdan etkazib berish qobiliyatini oshiradi. WarningPHPMailB=- Ba'zi elektron pochta xizmatlarini ko'rsatuvchi provayderlar (Yahoo singari) sizga o'z serverlaridan tashqari boshqa serverlardan elektron pochta xabarlarini yuborishga ruxsat bermaydilar. Sizning joriy sozlamangiz dastur serveridan sizning elektron pochta provayderingiz serverini emas, balki elektron pochta xabarlarini yuborish uchun foydalanadi, shuning uchun ba'zi qabul qiluvchilar (cheklovchi DMARC protokoli bilan mos keladigan) sizning elektron pochta provayderingizdan sizning elektron pochtangizni va ba'zi elektron pochta provayderlarini qabul qila oladimi deb so'rashadi. (Yahoo singari) "yo'q" deb javob berishi mumkin, chunki server ularga tegishli emas, shuning uchun yuborilgan elektron pochtangizning oz qismi etkazib berishga qabul qilinmasligi mumkin (elektron pochta provayderingiz yuborish kvotasidan ham ehtiyot bo'ling). WarningPHPMailC=- Elektron pochta xabarlarini yuborish uchun o'zingizning elektron pochta xizmati provayderingizning SMTP-serveridan foydalanish ham qiziq, shuning uchun dasturdan yuborilgan barcha elektron pochta xabarlari sizning pochta qutingizdagi "Yuborilgan" katalogga saqlanadi. -WarningPHPMailD=Shuningdek, elektron pochta xabarlarini yuborish usulini "SMTP" qiymatiga o'zgartirish tavsiya etiladi. Agar siz haqiqatan ham elektron pochta xabarlarini yuborish uchun "PHP" usulini saqlamoqchi bo'lsangiz, bu ogohlantirishni e'tiborsiz qoldiring yoki MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP -ni "Uy - O'rnatish - Boshqalar" da 1 ga o'zgartirib, olib tashlang. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Agar sizning SMTP elektron pochta provayderingiz elektron pochta mijozini ba'zi bir IP-manzillar bilan cheklashi kerak bo'lsa (juda kam), bu sizning ERP CRM-ilovangiz uchun pochta foydalanuvchisi agentining (MUA) IP-manzili: %s . WarningPHPMailSPF=Yuboruvchi elektron pochta manzilidagi domen nomi SPF yozuvi bilan himoyalangan bo'lsa (domen nomini ro'yxatga oluvchidan so'rang), siz domeningiz DNS SPF yozuviga quyidagi IP-larni qo'shishingiz kerak: %s . -ActualMailSPFRecordFound=Haqiqiy SPF yozuvi topildi: %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Tavsifni ko'rsatish uchun bosing DependsOn=Ushbu modulga modul (lar) kerak RequiredBy=Ushbu modul modul (lar) tomonidan talab qilinadi @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Masalan:
    forma yangi uchinchi tomonni y PageUrlForDefaultValuesList=
    Masalan:
    uchinchi shaxslar ro'yxati berilgan sahifa uchun %s .
    Maxsus katalogga o'rnatilgan tashqi modullarning URL manzili uchun "custom /" ni qo'shmang, shuning uchun mymodule / mypagelist.php va custom / mymodule / mypagelist.php kabi yo'ldan foydalaning.
    Agar url parametrlari bo'lsa, standart qiymatni xohlasangiz, siz %s dan foydalanishingiz mumkin AlsoDefaultValuesAreEffectiveForActionCreate=Shuni ham yodda tutingki, forma yaratish uchun standart qiymatlarning ustiga yozish faqat to'g'ri ishlab chiqilgan sahifalar uchun ishlaydi (shuning uchun parametr action = create or presend ... bilan) EnableDefaultValues=Standart qiymatlarni sozlashni yoqish -EnableOverwriteTranslation=Qayta yozilgan tarjimadan foydalanishni yoqish +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Ushbu kod bilan kalit uchun tarjima topildi. Ushbu qiymatni o'zgartirish uchun uni Home-Setup-translation-dan tahrirlashingiz kerak. WarningSettingSortOrder=Ogohlantirish, standart tartiblash tartibini o'rnatish, agar maydon noma'lum maydon bo'lsa, ro'yxat sahifasiga o'tishda texnik xatolarga olib kelishi mumkin. Agar siz bunday xatoga duch kelsangiz, standart saralash tartibini olib tashlash va odatiy xatti-harakatlarni tiklash uchun ushbu sahifaga qayting. Field=Maydon @@ -645,9 +647,9 @@ Module2400Name=Tadbirlar / kun tartibi Module2400Desc=Voqealarni kuzatib borish. Kuzatish maqsadida avtomatik tadbirlarni ro'yxatdan o'tkazing yoki qo'lda sodir bo'lgan voqealar yoki uchrashuvlarni yozib oling. Bu yaxshi mijozlar yoki sotuvchilar bilan munosabatlarni boshqarish uchun asosiy moduldir. Module2500Name=DMS / ECM Module2500Desc=Hujjatlarni boshqarish tizimi / elektron tarkibni boshqarish. Yaratilgan yoki saqlanadigan hujjatlaringizni avtomatik ravishda tashkil etish. Agar kerak bo'lsa, ularni baham ko'ring. -Module2600Name=API / veb-xizmatlar (SOAP-server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=API xizmatlarini taqdim etadigan Dolibarr SOAP serverini yoqing -Module2610Name=API / veb-xizmatlar (REST-server) +Module2610Name=API / Web services (REST server) Module2610Desc=API xizmatlarini ko'rsatadigan Dolibarr REST serverini yoqing Module2660Name=WebServices-ga qo'ng'iroq qiling (SOAP mijozi) Module2660Desc=Dolibarr veb-xizmatlari mijozini yoqing (Ma'lumotlarni / so'rovlarni tashqi serverlarga yuborish uchun ishlatilishi mumkin. Hozirda faqat Buyurtma buyurtmalari qo'llab-quvvatlanadi.) @@ -698,6 +700,7 @@ Module62000Name=Inkoermalar Module62000Desc=Incoterms-ni boshqarish uchun funktsiyalarni qo'shing Module63000Name=Resurslar Module63000Desc=Tadbirlarga ajratish uchun resurslarni (printerlar, mashinalar, xonalar, ...) boshqaring +Module94160Name=Receptions Permission11=Mijozlarning hisob-fakturalarini o'qing Permission12=Mijozlarning hisob-kitoblarini yaratish / o'zgartirish Permission13=Mijozlarning hisob-kitoblarini bekor qilish @@ -714,6 +717,7 @@ Permission27=Tijorat takliflarini o'chirib tashlang Permission28=Tijorat takliflarini eksport qiling Permission31=Mahsulotlarni o'qing Permission32=Mahsulotlarni yaratish / o'zgartirish +Permission33=Read prices products Permission34=Mahsulotlarni o'chirish Permission36=Yashirin mahsulotlarni ko'ring / boshqaring Permission38=Mahsulotlarni eksport qilish @@ -739,6 +743,7 @@ Permission79=Obunalarni yaratish / o'zgartirish Permission81=Mijozlarning buyurtmalarini o'qing Permission82=Mijozlarning buyurtmalarini yaratish / o'zgartirish Permission84=Mijozlarning buyurtmalarini tasdiqlash +Permission85=Generate the documents sales orders Permission86=Mijozlarga buyurtmalar yuboring Permission87=Mijozlarning buyurtmalarini yopish Permission88=Mijozlarning buyurtmalarini bekor qilish @@ -840,9 +845,9 @@ Permission286=Kontaktlarni eksport qilish Permission291=Tariflarni o'qing Permission292=Tariflar bo'yicha ruxsatnomalarni o'rnating Permission293=Mijozning tariflarini o'zgartiring -Permission300=Shtrixli kodlarni o'qing -Permission301=Shtrixli kodlarni yaratish / o'zgartirish -Permission302=Shtrixli kodlarni o'chirish +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Xizmatlarni o'qing Permission312=Shartnomaga xizmat / obuna tayinlang Permission331=Xatcho'plarni o'qing @@ -874,6 +879,7 @@ Permission525=Kredit kalkulyatori Permission527=Eksport kreditlari Permission531=Xizmatlarni o'qing Permission532=Xizmatlarni yaratish / o'zgartirish +Permission533=Read prices services Permission534=Xizmatlarni o'chirish Permission536=Yashirin xizmatlarni ko'rish / boshqarish Permission538=Eksport xizmatlari @@ -968,13 +974,14 @@ Permission3301=Yangi modullarni yarating Permission4001=Ko'nikma / ish / lavozimni o'qing Permission4002=Ko'nikma / ish / pozitsiyani yaratish / o'zgartirish Permission4003=Malaka/ish/lavozimni oʻchirish -Permission4020=Baholarni o'qing -Permission4021=O'zingizning baholashingizni yarating/o'zgartiring -Permission4022=Baholashni tasdiqlash -Permission4023=Baholashni o'chirish -Permission4030=Taqqoslash menyusiga qarang +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Shaxsiy ma'lumotlarni o'qing Permission4032=Shaxsiy ma'lumotlarni yozing +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Veb-sayt tarkibini o'qing Permission10002=Veb-sayt tarkibini yaratish / o'zgartirish (HTML va javascript tarkibi) Permission10003=Veb-sayt tarkibini yaratish / o'zgartirish (dinamik php-kod). Xavfli, cheklangan ishlab chiquvchilarga tegishli bo'lishi kerak. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Aktivlarni yo'q qilish turi TypeOfUnit=Birlikning turi SetupSaved=O'rnatish saqlandi SetupNotSaved=Sozlash saqlanmadi +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Modullar ro'yxatiga qaytish BackToDictionaryList=Lug'atlar ro'yxatiga qaytish TypeOfRevenueStamp=Soliq markasining turi @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Konfiguratsiya doimiyligining qiymati ConstantIsOn=%s variant yoniq NbOfDays=Kunlar soni AtEndOfMonth=Oy oxirida -CurrentNext=Joriy / keyingi +CurrentNext=A given day in month Offset=Ofset AlwaysActive=Har doim faol Upgrade=Yangilash @@ -1235,11 +1246,13 @@ BrowserName=Brauzer nomi BrowserOS=Brauzer OS ListOfSecurityEvents=Dolibarr xavfsizlik tadbirlari ro'yxati SecurityEventsPurged=Xavfsizlik tadbirlari tozalandi +TrackableSecurityEvents=Trackable security events LogEventDesc=Muayyan xavfsizlik hodisalari uchun jurnalga yozishni yoqing. Administratorlar jurnalni %s - %s menyusi orqali qayd etishadi. Ogohlantirish, ushbu xususiyat ma'lumotlar bazasida katta hajmdagi ma'lumotlarni yaratishi mumkin. AreaForAdminOnly=O'rnatish parametrlarini faqat administrator foydalanuvchilari tomonidan o'rnatishi mumkin. SystemInfoDesc=Tizim ma'lumotlari faqat o'qish rejimida olinadigan va faqat administratorlar uchun ko'rinadigan turli xil texnik ma'lumotlardir. SystemAreaForAdminOnly=Ushbu maydon faqat administrator foydalanuvchilari uchun mavjud. Dolibarr foydalanuvchi ruxsatnomalari ushbu cheklovni o'zgartira olmaydi. CompanyFundationDesc=Kompaniyangiz / tashkilotingiz ma'lumotlarini tahrirlash. Ish tugagandan so'ng sahifaning pastki qismidagi "%s" tugmasini bosing. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Agar sizda tashqi buxgalter / buxgalter bo'lsa, bu erda uning ma'lumotlarini tahrirlashingiz mumkin. AccountantFileNumber=Buxgalter kodi DisplayDesc=Ilovaning ko'rinishi va taqdimotiga ta'sir qiluvchi parametrlarni bu erda o'zgartirish mumkin. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser= %s foydalanuvchisi bil YourPHPDoesNotHaveSSLSupport=Sizning PHP-da SSL funktsiyalari mavjud emas DownloadMoreSkins=Yuklab olish uchun ko'proq terilar SimpleNumRefModelDesc=%syymm-nnnn formatidagi mos yozuvlar raqamini qaytaradi, bu erda yy yil, mm oy va nnnn ketma-ket avtomatik ortib boruvchi raqam +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=%s-nnnn formatidagi mos yozuvlar raqamini qaytaradi, bu erda nnnn qayta tiklanmagan ketma-ket avtomatik ko'paytiruvchi raqam ShowProfIdInAddress=Manzillari ko'rsatilgan professional identifikatorni ko'rsating ShowVATIntaInAddress=Hamjamiyat ichida QQS raqamini yashirish @@ -1376,7 +1391,7 @@ GetBarCode=Shtrixli kodni oling NumberingModules=Nomerlash modellari DocumentModules=Hujjat modellari ##### Module password generation -PasswordGenerationStandard=Ichki Dolibarr algoritmiga binoan yaratilgan parolni qaytaring: %s belgilarida umumiy raqamlar va kichik harflardagi belgilar mavjud. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Yaratilgan parolni taklif qilmang. Parolni qo'lda kiritish kerak. PasswordGenerationPerso=Shaxsiy belgilangan konfiguratsiyaga muvofiq parolni qaytaring. SetupPerso=Sizning konfiguratsiyangizga muvofiq @@ -1430,6 +1445,10 @@ SuppliersPayment=Sotuvchi uchun to'lovlar SupplierPaymentSetup=Sotuvchi to'lovlarini sozlash InvoiceCheckPosteriorDate=Tasdiqlashdan oldin haqiqiy sanani tekshiring InvoiceCheckPosteriorDateHelp=Hisob-fakturaning sanasi xuddi shu turdagi oxirgi hisob-faktura sanasidan oldin bo'lsa, uni tasdiqlash taqiqlanadi. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Tijorat takliflari modulini sozlash ProposalsNumberingModules=Tijorat takliflarini raqamlash modellari @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Shartnoma loyihalari bo'yicha suv belgisi (agar bo ##### Members ##### MembersSetup=A'zolar modulini sozlash MemberMainOptions=Asosiy variantlar +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Har bir a'zo uchun tizimga kirishni boshqaring AdherentMailRequired=Yangi a'zo yaratish uchun elektron pochta kerak MemberSendInformationByMailByDefault=Odatiy ravishda a'zolarga pochta orqali tasdiqlash (tasdiqlash yoki yangi obuna) yuborish uchun tasdiqlash qutisi yoqilgan MemberCreateAnExternalUserForSubscriptionValidated=Tasdiqlangan har bir yangi a'zo obuna uchun tashqi foydalanuvchi loginini yarating -VisitorCanChooseItsPaymentMode=Mehmon mavjud to'lov usullarini tanlashi mumkin +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Muddati o'tgan obunalarni
    elektron pochta orqali avtomatik eslatib turishni yoqing. Eslatma: %s moduli yoqilgan va eslatmalarni yuborish uchun to'g'ri sozlangan bo'lishi kerak. MembersDocModules=Ro'yxatdan yozuvlaridan hosil bo'lgan hujjatlar uchun hujjat shablonlari ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Kengaytirilgan tahrirlovchini faollashtirish: FCKeditorForNotePublic=WYSIWIG elementlarning "ommaviy eslatmalar" maydonini yaratish/nashr qilish FCKeditorForNotePrivate=WYSIWIG elementlarning "shaxsiy qaydlari" maydonini yaratish/nashr qilish FCKeditorForCompany=WYSIWIG elementlarining tavsifini yaratish/nashr qilish (mahsulotlar/xizmatlardan tashqari) -FCKeditorForProduct=WYSIWIG yaratish/mahsulotlar/xizmatlar tavsifi nashrlari -FCKeditorForProductDetails=WYSIWIG mahsulotlarini yaratish / nashr qilish barcha sub'ektlar uchun tafsilotlar liniyalari (takliflar, buyurtmalar, hisob-fakturalar va boshqalar ...). Ogohlantirish: ushbu holat uchun ushbu parametrdan foydalanish jiddiy tavsiya etilmaydi, chunki u PDF-fayllarni yaratishda maxsus belgilar va sahifalarni formatlash bilan bog'liq muammolarni keltirib chiqarishi mumkin. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Ommaviy elektron pochta xabarlari uchun WYSIWIG yaratish / nashr (Asboblar -> Elektron pochta) FCKeditorForUserSignature=WYSIWIG yaratish / foydalanuvchi imzosini nashr etish FCKeditorForMail=Barcha pochta uchun WYSIWIG yaratish / nashr (Asboblar -> elektron pochtadan tashqari) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Yangi menyu ko'rsatiladigan menyu boshqaruvchisi DetailMenuModule=Agar menyuga kirish moduldan keladigan bo'lsa, modul nomi DetailType=Menyu turi (yuqori yoki chap) DetailTitre=Tarjima qilish uchun menyu yorlig'i yoki yorliq kodi -DetailUrl=Sizga menyu yuboradigan URL (Mutlaq URL havolasi yoki http: // bilan tashqi havola) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Kirish yoki ko'rsatmaslik sharti DetailRight=Ruxsatsiz kulrang menyularni ko'rsatish sharti DetailLangs=Yorliq kodini tarjima qilish uchun lang fayl nomi @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POS-da aktsiyalarning pasayishi Seria CashDeskYouDidNotDisableStockDecease=Sale of Sale-dan savdo-sotiqni amalga oshirayotganda siz aktsiyalarning pasayishini o'chirib qo'ymadingiz. Shuning uchun ombor kerak. CashDeskForceDecreaseStockLabel=Partiya mahsulotlari uchun zaxiralarni pasaytirish majbur bo'ldi. CashDeskForceDecreaseStockDesc=Avvaliga eng qadimgi ovqatlanish va sotish sanalari bo'yicha kamaytiring. -CashDeskReaderKeyCodeForEnter=Shtrixli o'quvchida aniqlangan "Enter" uchun kalit kod (Misol: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Xatcho'plar modulini sozlash BookmarkDesc=Ushbu modul sizga xatcho'plarni boshqarish imkonini beradi. Shuningdek, chap menyuda joylashgan har qanday Dolibarr sahifalariga yoki tashqi veb-saytlarga yorliq qo'shishingiz mumkin. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Sotuvchi fakturalarni raqamlash modellari IfSetToYesDontForgetPermission=Agar nol qiymatga o'rnatilgan bo'lsa, ikkinchi tasdiqlash uchun ruxsat berilgan guruhlarga yoki foydalanuvchilarga ruxsat berishni unutmang ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind modulini sozlash -PathToGeoIPMaxmindCountryDataFile=Maxmind ipni mamlakat tarjimasiga o'z ichiga olgan faylga yo'l.
    Misollar:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/Gare-Cite/Gare/Bare/Gare/Bare +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Sizning mamlakatingizga ip ma'lumotlari sizning PHP o'qishi mumkin bo'lgan katalog ichida bo'lishi kerakligini unutmang (PHP open_basedir sozlamalarini va fayl tizimining ruxsatlarini tekshiring). YouCanDownloadFreeDatFileTo=Maxmind GeoIP mamlakat faylining bepul demo versiyasini %s manzilidan yuklab olishingiz mumkin. YouCanDownloadAdvancedDatFileTo=Bundan tashqari, %s manzilidan Maxmind GeoIP mamlakat faylining
    yangilangan to'liq versiyasini yuklab olishingiz mumkin. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Ma'lumotlar bazasi dump faylini yaratish ustasi BackupZipWizard=Hujjatlar katalogini yaratish uchun sehrgar SomethingMakeInstallFromWebNotPossible=Tashqi modulni o'rnatish quyidagi sabablarga ko'ra veb-interfeysdan mumkin emas: SomethingMakeInstallFromWebNotPossible2=Shu sababli, bu erda tavsiflangan yangilash jarayoni faqat imtiyozli foydalanuvchi amalga oshirishi mumkin bo'lgan qo'lda bajariladigan jarayondir. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Ilovadan tashqi modulni o'rnatishni administratoringiz o'chirib qo'ydi. Ushbu funktsiyaga ruxsat berish uchun siz undan %s faylini olib tashlashini so'rashingiz kerak. ConfFileMustContainCustom=Tashqi modulni dasturdan o'rnatish yoki yaratish uchun modul fayllarini %s katalogiga saqlash kerak. Ushbu katalogni Dolibarr tomonidan qayta ishlash uchun siz ikkita direktiv qatorini qo'shish uchun conf / conf.php -ni o'rnatishingiz kerak:
    $ dolibarr_main_url_root_;
    $ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Sichqoncha harakati o'tib ketganda jadval satrlarini ajratib ko'rsatish @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Klaviaturada CTRL + F5 tugmachalarini bosing yoki ushbu NotSupportedByAllThemes=Will asosiy mavzular bilan ishlaydi, tashqi mavzular tomonidan qo'llab-quvvatlanmasligi mumkin BackgroundColor=Fon rangi TopMenuBackgroundColor=Yuqori menyu uchun fon rangi -TopMenuDisableImages=Yuqori menyuda rasmlarni yashirish +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Chap menyu uchun fon rangi BackgroundTableTitleColor=Jadval sarlavhasi uchun fon rangi BackgroundTableTitleTextColor=Jadval sarlavhasi uchun matn rangi @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Sotib olish uchun buyurtmalar MailToSendSupplierInvoice=Sotuvchi hisob-fakturalari MailToSendContract=Shartnomalar MailToSendReception=Qabullar +MailToExpenseReport=Expense reports MailToThirdparty=Uchinchi shaxslar MailToMember=A'zolar MailToUser=Foydalanuvchilar @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF-dagi o'ng chekka MAIN_PDF_MARGIN_TOP=PDF-dagi eng yaxshi margin MAIN_PDF_MARGIN_BOTTOM=PDF-dagi pastki hoshiya MAIN_DOCUMENTS_LOGO_HEIGHT=PDF-dagi logotip uchun balandlik +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Taklif satrlarida rasm uchun ustun qo'shing MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Chiziqlarga rasm qo'shilsa, ustunning kengligi MAIN_PDF_NO_SENDER_FRAME=Yuboruvchining manzil ramkasidagi chegaralarni yashirish @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Maxsus belgilarni olib tashlang COMPANY_AQUARIUM_CLEAN_REGEX=Regex filtri toza qiymatga (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filtri toza qiymatga (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Uni nusxalashga ruxsat berilmagan +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Ma'lumotlarni himoya qilish bo'yicha mutaxassis (DPO, ma'lumotlarning maxfiyligi yoki GDPR aloqasi) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Matnni ko'rsatmalar panelida ko'rsatish uchun yordam bering @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Eslatma: %s - %s menyusida Off menyusida Eslatma: Ushbu dastlabki misolda yetakchi sarlavhasi, jumladan, e-pochta ham yaratiladi. Agar uchinchi tomon ma'lumotlar bazasida topilmasa (yangi mijoz), yetakchi ID 1 bilan uchinchi tomonga biriktiriladi. EmailCollectorExampleToCollectLeads=Qo'llanmalarni yig'ish misoli @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Ish takliflariga murojaat qili EmailCollectorExampleToCollectJobCandidatures=Elektron pochta orqali olingan nomzodlarni yig'ish misoli NoNewEmailToProcess=Ishlash uchun yangi elektron pochta xabarlari (mos keladigan filtrlar) yo'q NothingProcessed=Hech narsa qilinmadi -XEmailsDoneYActionsDone=%s elektron pochta xabarlari malakali, %s elektron pochta xabarlari muvaffaqiyatli qayta ishlandi (%s yozuvi / bajarilgan harakatlar uchun) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Tadbirni kun tartibiga yozib qo'ying (elektron pochta turi yuborilgan yoki qabul qilingan holda) CreateLeadAndThirdParty=Etakchi (va kerak bo'lsa, uchinchi tomon) yarating CreateTicketAndThirdParty=Chipta yarating (agar uchinchi tomon oldingi operatsiya orqali yuklangan bo'lsa yoki elektron pochta sarlavhasidagi trekerdan taxmin qilingan bo'lsa, uchinchi tomon bilan bog'langan, aks holda uchinchi tomonsiz) @@ -2105,7 +2138,7 @@ CreateCandidature=Ishga ariza yarating FormatZip=Zip MainMenuCode=Menyu kirish kodi (asosiy menyu) ECMAutoTree=Avtomatik ECM daraxtini ko'rsating -OperationParamDesc=Qiymatlarni ajratib olish yoki o'rnatish uchun foydalanish qoidalarini belgilang.
    E-pochta mavzusidan nom chiqarish kerak bo'lgan operatsiyalarga misol:
    name=EXTRACT:SUBJECT:Kompaniyadan xabar ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:Mening kompaniyam [^\\s]*)

    a foydalaning; char bir nechta xususiyatlarni ajratib olish yoki o'rnatish uchun ajratuvchi sifatida. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Ish vaqti OpeningHoursDesc=Bu erga kompaniyangizning muntazam ish vaqtiga kiring. ResourceSetup=Resurs modulining konfiguratsiyasi @@ -2167,6 +2200,10 @@ EmailTemplate=Elektron pochta uchun shablon EMailsWillHaveMessageID=Elektron pochta xabarlarida ushbu sintaksisga mos keladigan 'Adabiyotlar' yorlig'i bo'ladi PDF_SHOW_PROJECT=Loyihani hujjatda ko'rsatish ShowProjectLabel=Loyiha yorlig'i +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Agar siz o'zingizning PDF-dagi ba'zi matnlarni bir xil hosil qilingan PDF-da 2 xil tilda nusxalashni xohlasangiz, siz ushbu ikkinchi tilni o'rnatishingiz kerak, shuning uchun yaratilgan PDF bir xil sahifada 2 xil tilni o'z ichiga oladi, bu PDF yaratishda tanlangan va shu ( faqat bir nechta PDF shablonlari buni qo'llab-quvvatlaydi). PDF uchun 1 ta til uchun bo'sh qoldiring. PDF_USE_A=PDF hujjatlarini standart PDF formati o'rniga PDF/A formatida yarating FafaIconSocialNetworksDesc=Bu erga FontAwesome ikonkasining kodini kiriting. Agar siz FontAwesome nima ekanligini bilmasangiz, umumiy qiymatdan foydalanishingiz mumkin. @@ -2195,12 +2232,12 @@ MailToPartnership=Hamkorlik AGENDA_EVENT_DEFAULT_STATUS=Shakldan voqea yaratishda odatiy hodisa holati YouShouldDisablePHPFunctions=PHP funktsiyalarini o'chirib qo'yishingiz kerak IfCLINotRequiredYouShouldDisablePHPFunctions=Agar siz tizim buyruqlarini maxsus kodda ishlatishingiz kerak bo'lsa, siz PHP funktsiyalarini o'chirib qo'yasiz -PHPFunctionsRequiredForCLI=Qobiq maqsadi uchun (masalan, rejalashtirilgan ishni zaxiralash yoki anitivurs dasturini ishga tushirish), siz PHP funktsiyalarini saqlashingiz kerak +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Ildiz katalogingizda yoziladigan fayllar yoki umumiy dasturlarning kataloglari topilmadi (Yaxshi) RecommendedValueIs=Tavsiya etiladi: %s Recommended=Tavsiya etiladi NotRecommended=Tavsiya etilmaydi -ARestrictedPath=Ba'zi cheklangan yo'l +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Tashqi modullarning yangilanishlarini tekshiring CheckForModuleUpdateHelp=Ushbu amal tashqi modullar tahrirlovchilariga yangi versiya mavjudligini tekshirish uchun ulanadi. ModuleUpdateAvailable=Yangilanish mavjud @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=Tashqi modullar uchun hech qanday yangilanish topilma SwaggerDescriptionFile=Swagger API tavsif fayli (masalan, redoc bilan ishlatish uchun) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Siz bekor qilingan WS API-ni yoqdingiz. Buning o'rniga REST API-dan foydalanishingiz kerak. RandomlySelectedIfSeveral=Agar bir nechta rasm mavjud bo'lsa, tasodifiy tanlanadi +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Ma'lumotlar bazasi paroli conf faylida buzilgan DatabasePasswordNotObfuscated=Ma'lumotlar bazasi paroli conf faylida buzilmaydi APIsAreNotEnabled=API modullari yoqilmagan @@ -2247,14 +2285,22 @@ LateWarningAfter=Keyin "kechik" ogohlantirish TemplateforBusinessCards=Turli o'lchamdagi biznes karta uchun shablon InventorySetup= Inventarizatsiyani sozlash ExportUseLowMemoryMode=Kam xotira rejimidan foydalaning -ExportUseLowMemoryModeHelp=Dumpni bajarish uchun past xotira rejimidan foydalaning (siqish PHP xotirasiga emas, balki quvur orqali amalga oshiriladi). Ushbu usul faylning to'ldirilganligini tekshirishga imkon bermaydi va agar u muvaffaqiyatsiz bo'lsa, xato xabari haqida xabar berib bo'lmaydi. -ShowQuickAddLink=Yuqori o'ng menyuda elementni tezda qo'shish uchun tugmani ko'rsating +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Ping uchun ishlatiladigan xesh ReadOnlyMode=Misol "Faqat o'qish" rejimida DEBUGBAR_USE_LOG_FILE=Jurnallarni yopish uchun dolibarr.log faylidan foydalaning UsingLogFileShowAllRecordOfSubrequestButIsSlower=Jonli xotirani ushlash o'rniga jurnallarni tuzoqqa tushirish uchun dolibarr.log faylidan foydalaning. Bu faqat joriy jarayon jurnali o'rniga barcha jurnallarni qo'lga olish imkonini beradi (shu jumladan, ajax sub-so'rovlar sahifalaridan biri), lekin sizning misolingizni juda sekinlashtiradi. Tavsiya etilmaydi. FixedOrPercent=Ruxsat etilgan ("fikrlangan" kalit so'zidan foydalaning) yoki foiz ("foiz" kalit so'zidan foydalaning) DefaultOpportunityStatus=Birlamchi imkoniyat holati (etakchi yaratilgandagi birinchi holat) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/uz_UZ/categories.lang b/htdocs/langs/uz_UZ/categories.lang index c9fcb14233b..0d03fca5c20 100644 --- a/htdocs/langs/uz_UZ/categories.lang +++ b/htdocs/langs/uz_UZ/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Ushbu a'zo hech qanday teg / toifada emas ContactHasNoCategory=Ushbu aloqa hech qanday teg / toifada emas ProjectHasNoCategory=Ushbu loyiha biron bir teg / toifada emas ClassifyInCategory=Tag / toifaga qo'shish +RemoveCategory=Remove category NotCategorized=Tag / toifasiz CategoryExistsAtSameLevel=Ushbu turkum ushbu havola bilan allaqachon mavjud ContentsVisibleByAllShort=Hamma ko'rinadigan tarkib @@ -67,6 +68,7 @@ StockCategoriesShort=Ombor teglari / toifalari ThisCategoryHasNoItems=Ushbu turkumda biron bir narsa mavjud emas. CategId=Tag / kategoriya identifikatori ParentCategory=Ota-ona yorlig'i / toifasi +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Ota-ona yorlig'i / toifasi yorlig'i CatSupList=Sotuvchilar teglari / toifalari ro'yxati CatCusList=Mijozlar ro'yxati / istiqbollari teglari / toifalari @@ -86,7 +88,7 @@ DeleteFromCat=Teglardan / toifadan olib tashlash ExtraFieldsCategories=Bir-birini to'ldiruvchi atributlar CategoriesSetup=Teglar / toifalarni sozlash CategorieRecursiv=Ota-ona yorlig'i / toifasi bilan avtomatik ravishda bog'lanish -CategorieRecursivHelp=Agar parametr yoniq bo'lsa, mahsulotni pastki toifaga qo'shganda, mahsulot ota-onalar toifasiga qo'shiladi. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Quyidagi mahsulot / xizmatni qo'shing AddCustomerIntoCategory=Mijozga toifani tayinlang AddSupplierIntoCategory=Yetkazib beruvchiga toifani tayinlang @@ -95,7 +97,9 @@ ShowCategory=Teg / toifani ko'rsatish ByDefaultInList=Odatiy bo'lib, ro'yxatda ChooseCategory=Toifani tanlang StocksCategoriesArea=Ombor toifalari +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Voqealar toifalari WebsitePagesCategoriesArea=Sahifa konteynerlari toifalari KnowledgemanagementsCategoriesArea=KM maqola toifalari UseOrOperatorForCategories=Kategoriyalar uchun 'OR' operatoridan foydalaning +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/uz_UZ/commercial.lang b/htdocs/langs/uz_UZ/commercial.lang index f5a79674ddc..25f6f2751f1 100644 --- a/htdocs/langs/uz_UZ/commercial.lang +++ b/htdocs/langs/uz_UZ/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Istiqbol holati DraftPropals=Tijorat takliflari loyihasi NoLimit=Cheklov yo'q ToOfferALinkForOnlineSignature=Onlayn imzo uchun havola -WelcomeOnOnlineSignaturePage=%s dan tijorat takliflarini qabul qilish uchun sahifaga xush kelibsiz -ThisScreenAllowsYouToSignDocFrom=Ushbu ekran sizga takliflarni / tijorat takliflarini qabul qilish va imzolashga yoki rad etishga imkon beradi -ThisIsInformationOnDocumentToSign=Bu qabul qilish yoki rad etish to'g'risidagi hujjatdagi ma'lumot +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=%s taklifi / tijorat taklifining imzosi +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Onlayn imzo chekish xususiyati o'chirilgan yoki ushbu xususiyat yoqilmaguncha yaratilgan hujjat diff --git a/htdocs/langs/uz_UZ/companies.lang b/htdocs/langs/uz_UZ/companies.lang index 21e0118a2e6..84dbd2fcdef 100644 --- a/htdocs/langs/uz_UZ/companies.lang +++ b/htdocs/langs/uz_UZ/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Uchinchi shaxsning tabiati NatureOfContact=Aloqa xususiyati Address=Manzil State=Shtat / viloyat +StateId=State ID StateCode=Shtat / viloyat kodi StateShort=Shtat Region=Mintaqa Region-State=Hudud - shtat Country=Mamlakat CountryCode=Mamlakat kodi -CountryId=Mamlakat identifikatori +CountryId=Country ID Phone=Telefon PhoneShort=Telefon Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (savdo reestri) ProfId2CM=Id. prof. 2 (Soliq to'lovchi raqami) -ProfId3CM=Id. prof. 3 (Yaratilish qarori) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Savdo reestri ProfId2ShortCM=Soliq to'lovchi raqami -ProfId3ShortCM=Yaratilish farmoni -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) @@ -443,7 +444,7 @@ AddAddress=Manzil qo'shing SupplierCategory=Sotuvchi toifasi JuridicalStatus200=Mustaqil DeleteFile=Faylni o'chirish -ConfirmDeleteFile=Ushbu faylni o'chirishni xohlaysizmi? +ConfirmDeleteFile=Are you sure you want to delete this file? AllocateCommercial=Savdo vakiliga tayinlangan Organization=Tashkilot FiscalYearInformation=Moliyaviy yil diff --git a/htdocs/langs/uz_UZ/compta.lang b/htdocs/langs/uz_UZ/compta.lang index deb233bb02e..05015773ac4 100644 --- a/htdocs/langs/uz_UZ/compta.lang +++ b/htdocs/langs/uz_UZ/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balans (oldin) Balance=Balans Debit=Debet Credit=Kredit +AccountingDebit=Debit +AccountingCredit=Credit Piece=Buxgalteriya hujjati. AmountHTVATRealReceived=Tarmoq yig'ildi AmountHTVATRealPaid=Net to'langan @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Har bir mahsulot uchun to'pl TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Sotish uchun soliq stavkasi bo'yicha yig'ilgan tovar aylanmasi to'g'risidagi hisobot mavjud emas. Ushbu hisobot faqat tovar aylanmasi uchun taqdim etiladi. CalculationMode=Hisoblash rejimi AccountancyJournal=Buxgalteriya kodlari jurnali -ACCOUNTING_VAT_SOLD_ACCOUNT=Sotish bo'yicha QQS uchun sukut bo'yicha buxgalteriya hisobi (agar QQS lug'atida o'rnatilmagan bo'lsa ishlatiladi) -ACCOUNTING_VAT_BUY_ACCOUNT=Xaridlarda QQS uchun sukut bo'yicha buxgalteriya hisobi (agar QQS lug'atida o'rnatilmagan bo'lsa ishlatiladi) -ACCOUNTING_VAT_PAY_ACCOUNT=QQS to'lash uchun sukut bo'yicha buxgalteriya hisobi -ACCOUNTING_ACCOUNT_CUSTOMER=Mijozlarning uchinchi shaxslari uchun foydalaniladigan buxgalteriya hisobi +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Uchinchi tomon kartasida belgilangan buxgalteriya hisobi faqat Subledger buxgalteriyasi uchun ishlatiladi. Ushbu mablag 'Bosh daftar uchun ishlatiladi va Subledger buxgalteriya hisobining standart qiymati sifatida, agar uchinchi tomonning maxsus mijozlar hisobi aniqlanmagan bo'lsa. -ACCOUNTING_ACCOUNT_SUPPLIER=Sotuvchi uchinchi shaxslar uchun foydalaniladigan buxgalteriya hisobi +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Uchinchi tomon kartasida belgilangan buxgalteriya hisobi faqat Subledger buxgalteriyasi uchun ishlatiladi. Ushbu mablag 'Bosh daftar uchun va Subledger buxgalteriya hisobining standart qiymati sifatida ishlatiladi, agar uchinchi tomonning maxsus sotuvchisi buxgalteriya hisobi aniqlanmasa. ConfirmCloneTax=Ijtimoiy / soliq soliqlarining klonini tasdiqlang ConfirmCloneVAT=QQS deklaratsiyasining klonini tasdiqlang @@ -300,3 +302,4 @@ InvoiceToPay15Days=To'lash uchun (15 dan 30 kungacha) InvoiceToPay30Days=To'lash uchun (> 30 kun) ConfirmPreselectAccount=Buxgalteriya kodini oldindan tanlang ConfirmPreselectAccountQuestion=Haqiqatan ham ushbu hisob kodi bilan tanlangan %s qatorlarini oldindan tanlamoqchimisiz? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/uz_UZ/contracts.lang b/htdocs/langs/uz_UZ/contracts.lang index f10a7e9610d..18db6fcb240 100644 --- a/htdocs/langs/uz_UZ/contracts.lang +++ b/htdocs/langs/uz_UZ/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Ushbu shartnoma qatorini o'chirishni xohlaysizmi? MoveToAnotherContract=Xizmatni boshqa shartnomaga o'tkazing. ConfirmMoveToAnotherContract=Men yangi maqsadli shartnomani tanladim va ushbu xizmatni ushbu shartnomaga o'tkazishni xohlayotganimni tasdiqladim. ConfirmMoveToAnotherContractQuestion=Qaysi amaldagi shartnomada (xuddi shu uchinchi tomonda) ushbu xizmatga o'tishni xohlaysizmi? -PaymentRenewContractId=Shartnomani yangilang (raqam %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Tugash muddati NoExpiredServices=Muddati o'tgan faol xizmatlar yo'q ListOfServicesToExpireWithDuration=%s kun ichida tugaydigan xizmatlar ro'yxati diff --git a/htdocs/langs/uz_UZ/cron.lang b/htdocs/langs/uz_UZ/cron.lang index f672a8ace02..b9a2c9f2db1 100644 --- a/htdocs/langs/uz_UZ/cron.lang +++ b/htdocs/langs/uz_UZ/cron.lang @@ -26,7 +26,7 @@ CronCommand=Buyruq CronList=Rejalashtirilgan ish joylari CronDelete=Rejalashtirilgan ishlarni o'chirish CronConfirmDelete=Ushbu rejalashtirilgan ishlarni o'chirishni xohlaysizmi? -CronExecute=Rejalashtirilgan ishni boshlash +CronExecute=Launch now CronConfirmExecute=Ushbu rejalashtirilgan ishlarni hoziroq bajarishni xohlaysizmi? CronInfo=Rejalashtirilgan ish moduli ishlarni avtomatik ravishda bajarilishini rejalashtirishga imkon beradi. Ishlarni qo'lda boshlash ham mumkin. CronTask=Ish @@ -58,7 +58,7 @@ CronNote=Izoh CronFieldMandatory=%s maydonlari majburiydir CronErrEndDateStartDt=Tugash sanasi boshlanish sanasidan oldin bo'lishi mumkin emas StatusAtInstall=Modulni o'rnatish holati -CronStatusActiveBtn=Jadval +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=O'chirish CronTaskInactive=Bu ish o'chirilgan (rejalashtirilgan emas) CronId=Id @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Mahalliy ma'lumotlar bazasini zaxiralash MakeLocalDatabaseDump=Mahalliy ma'lumotlar bazasi axlatxonasini yarating. Parametrlar quyidagilardir: siqish ('gz' yoki 'bz' yoki 'yo'q'), zaxira turi ('mysql', 'pgsql', 'auto'), 1, 'auto' yoki fayl nomi yaratish, saqlash uchun zaxira fayllar soni MakeSendLocalDatabaseDumpShort=Mahalliy ma'lumotlar bazasi zahirasini yuboring MakeSendLocalDatabaseDump=Mahalliy ma'lumotlar bazasi zahirasini elektron pochta orqali yuboring. Parametrlar: kimga, kimdan, mavzu, xabar, fayl nomi (yuborilgan fayl nomi), filtr (faqat maʼlumotlar bazasini zaxiralash uchun "sql") +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=E'tibor bering, ishga tushirilgan ish kunining keyingi sanasi qanday bo'lishidan qat'i nazar, sizning ishingiz bajarilishidan oldin maksimal %s soatga kechiktirilishi mumkin. DATAPOLICYJob=Ma'lumotlarni tozalovchi va anonimayzer JobXMustBeEnabled=%s ishi yoqilgan bo'lishi kerak +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Oxirgi marta rejalashtirilgan ish NextScheduledJobExecute=Keyingi rejalashtirilgan ish NumberScheduledJobError=Xatoda rejalashtirilgan ishlarning soni +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/uz_UZ/datapolicy.lang b/htdocs/langs/uz_UZ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/uz_UZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/uz_UZ/ecm.lang b/htdocs/langs/uz_UZ/ecm.lang index bc8be435c12..414fb082bbd 100644 --- a/htdocs/langs/uz_UZ/ecm.lang +++ b/htdocs/langs/uz_UZ/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Qo'llanma katalogi ECMSectionAuto=Avtomatik katalog ECMSectionsManual=Qo'lda ishlatiladigan daraxt ECMSectionsAuto=Avtomatik daraxt +ECMSectionsMedias=Medias tree ECMSections=Kataloglar ECMRoot=ECM ildizi ECMNewSection=Yangi katalog @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Ichki kataloglardagi fayllar soni ECMCreationUser=Ijodkor ECMArea=DMS / ECM maydoni ECMAreaDesc=DMS / ECM (Hujjatlarni boshqarish tizimi / Elektron kontentni boshqarish) maydoni Dolibarrdagi barcha turdagi hujjatlarni saqlash, almashish va tezkor qidirish imkonini beradi. -ECMAreaDesc2=* Element kartasidan hujjatlar qo'shilganda avtomatik kataloglar avtomatik ravishda to'ldiriladi.
    * qo'llanma kataloglaridan ma'lum bir elementga bog'lanmagan hujjatlarni saqlash uchun foydalanish mumkin. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved= %s katalog o'chirildi. ECMSectionWasCreated= %s katalogi yaratildi. ECMSearchByKeywords=Kalit so'zlar bo'yicha qidirish diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang index e992dabb6b3..d5d58644cae 100644 --- a/htdocs/langs/uz_UZ/errors.lang +++ b/htdocs/langs/uz_UZ/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=%s-ga kirish allaqachon mavjud. ErrorGroupAlreadyExists=%s guruhi allaqachon mavjud. ErrorEmailAlreadyExists=%s elektron pochtasi allaqachon mavjud. ErrorRecordNotFound=Yozuv topilmadi. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=' %s ' faylini ' %s ' ga ko'chirib bo'lmadi. ErrorFailToCopyDir=' %s ' katalogini ' %s ' ga ko'chirib bo'lmadi. ErrorFailToRenameFile=' %s ' faylini ' %s ' deb o'zgartirib bo'lmadi. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Rasm fayli qo'llab-quvvatlanadigan formatga ega emas (siznin ErrorBadDateFormat="%s" qiymati noto'g'ri sana formatiga ega ErrorWrongDate=Sana to'g'ri emas! ErrorFailedToWriteInDir=%s katalogiga yozib bo'lmadi +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Faylda %s satrlari uchun noto'g'ri elektron pochta sintaksisini topdi (masalan, %s qatori elektron pochta bilan = %s) ErrorUserCannotBeDelete=Foydalanuvchini o'chirib bo'lmaydi. Ehtimol, bu Dolibarr sub'ektlari bilan bog'liq. ErrorFieldsRequired=Ba'zi majburiy maydonlar bo'sh qoldirildi. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Iltimos, katakchalar ro'yxati uchun qiymatni to'ldir ErrorNoValueForRadioType=Iltimos, radio ro'yxati uchun qiymatni to'ldiring ErrorBadFormatValueList=Ro'yxat qiymati bitta verguldan iborat bo'lishi mumkin emas: %s , lekin kamida bittasi kerak: key, value ErrorFieldCanNotContainSpecialCharacters= %s maydonida maxsus belgilar bo'lmasligi kerak. -ErrorFieldCanNotContainSpecialNorUpperCharacters= %s maydonida maxsus belgilar, shuningdek katta harflar bo'lmasligi va faqat raqamlardan iborat bo'lishi kerak. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar= %s maydonida kamida %s belgilar bo'lishi kerak. ErrorNoAccountancyModuleLoaded=Buxgalteriya moduli faollashtirilmagan ErrorExportDuplicateProfil=Ushbu eksport to'plami uchun ushbu profil nomi allaqachon mavjud. @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=Ushbu xususiyat ishlashi uchun Javascript o'chirib ErrorPasswordsMustMatch=Yozilgan har ikkala parol bir-biriga mos kelishi kerak ErrorContactEMail=Texnik xatolik yuz berdi. Iltimos, administrator bilan bog'laning. %s elektron pochta manziliga va sizning xabaringiz nusxasida ushbu ekranning nusxasini yoki sizning ekraningizda nusxa ko'chirish xatosini yuboring %s , ErrorWrongValueForField=Maydon %s : ' %s ' regex qoida %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Dala %s : « %s " bir qiymati dala %s topilmadi %s ErrorFieldRefNotIn=Maydon %s : ' %s ' %s emas +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s xatolar topildi ErrorFileIsInfectedWithAVirus=Antivirus dasturi faylni tekshira olmadi (faylga virus yuqishi mumkin) -ErrorSpecialCharNotAllowedForField="%s" maydoni uchun maxsus belgilarga ruxsat berilmaydi ErrorNumRefModel=Ma'lumotlar bazasida (%s) ma'lumotlar bazasi mavjud va bu raqamlash qoidalariga mos kelmaydi. Ushbu modulni faollashtirish uchun yozuvni o'chirib tashlang yoki nomini o'zgartiring. ErrorQtyTooLowForThisSupplier=Ushbu sotuvchi uchun juda kam miqdor yoki ushbu sotuvchida ushbu mahsulot uchun narx belgilanmagan ErrorOrdersNotCreatedQtyTooLow=Kam miqdordagi buyurtma tufayli ba'zi buyurtmalar yaratilmagan @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=O'chirish uchun ob'ektlar "Faol" hol ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Ob'ektlarni yoqish uchun "Qoralama" yoki "O'chirilgan" holati bo'lishi kerak ErrorNoFieldWithAttributeShowoncombobox=Hech bir maydonda '%s' ob'ekti ta'rifida 'showoncombobox' xususiyati mavjud emas. Kombolistni ko'rsatishning imkoni yo'q. ErrorFieldRequiredForProduct=%s mahsuloti uchun '%s' maydoni talab qilinadi +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Muammo %s terminalini o'rnatishda. ErrorAddAtLeastOneLineFirst=Avval kamida bitta satr qo'shing ErrorRecordAlreadyInAccountingDeletionNotPossible=Xato, yozuv allaqachon buxgalteriya hisobiga o'tkazilgan, yo'q qilish mumkin emas. @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=Avval hisob qaydnomangizni o'rnatishing ErrorFailedToFindEmailTemplate=%s kodli shablonni topib bo'lmadi ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Xizmat muddati aniqlanmagan. Bir soatlik narxni hisoblashning iloji yo'q. ErrorActionCommPropertyUserowneridNotDefined=Foydalanuvchi egasi talab qilinadi -ErrorActionCommBadType=Tanlangan voqea turi (id: %n, kod: %s) Voqealar turi lug'atida mavjud emas +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Versiyani tekshirib bo'lmadi ErrorWrongFileName=Fayl nomida __SOMETHING__ bo'lishi mumkin emas ErrorNotInDictionaryPaymentConditions=To'lov shartlari lug'atida yo'q, iltimos o'zgartiring. ErrorIsNotADraft=%s qoralama emas ErrorExecIdFailed="ID" buyrug'ini bajarib bo'lmadi -ErrorBadCharIntoLoginName=Kirish nomidagi ruxsatsiz belgi -ErrorRequestTooLarge=Xato, soʻrov juda katta +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=Siz %s tark etishni tasdiqlovchi emassiz ErrorAttributeIsUsedIntoProduct=Ushbu atribut bir yoki bir nechta mahsulot variantida qo'llaniladi ErrorAttributeValueIsUsedIntoProduct=Ushbu atribut qiymati bir yoki bir nechta mahsulot variantida ishlatiladi @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=Xato, barcha summalar bitta ustunga kiritilishi kerak ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Hisob-fakturalarni %s valyutasidagi hisobdan %s valyutasida to‘lashga harakat qilasiz. ErrorInvoiceLoadThirdParty=“%s” invoys uchun uchinchi tomon obyektini yuklab bo‘lmadi ErrorInvoiceLoadThirdPartyKey=“%s” uchinchi tomon kaliti “%s” invoys uchun sozlanmagan -ErrorDeleteLineNotAllowedByObjectStatus=Haqiqiy ob'ekt holati bo'yicha qatorni o'chirishga ruxsat berilmaydi +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status ErrorAjaxRequestFailed=So‘rov bajarilmadi +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=PHP parametringiz upload_max_filesize (%s) PHP post_max_size (%s) parametridan yuqori. Bu izchil o'rnatish emas. WarningPasswordSetWithNoAccount=Ushbu a'zo uchun parol o'rnatildi. Biroq, foydalanuvchi hisobi yaratilmagan. Shunday qilib, ushbu parol saqlanadi, ammo Dolibarr-ga kirish uchun foydalanib bo'lmaydi. U tashqi modul / interfeys tomonidan ishlatilishi mumkin, ammo agar siz a'zo uchun hech qanday login va parolni belgilashga hojat bo'lmasa, siz "har bir a'zo uchun kirishni boshqarish" parametrini a'zo modulidan o'chirib qo'yishingiz mumkin. Agar sizga loginni boshqarish kerak bo'lsa, lekin hech qanday parol kerak bo'lmasa, ushbu ogohlantirishni oldini olish uchun ushbu maydonni bo'sh qoldirishingiz mumkin. Izoh: Agar foydalanuvchi bilan bog'langan bo'lsa, elektron pochta orqali kirish sifatida ham foydalanish mumkin. -WarningMandatorySetupNotComplete=Majburiy parametrlarni o'rnatish uchun shu erni bosing +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Modul va dasturlarni yoqish uchun shu erni bosing WarningSafeModeOnCheckExecDir=Ogohlantirish, PHP opsiyasi yoniq, shuning uchun buyruq php parametri safe_mode_exec_dir php parametri bilan e'lon qilingan katalog ichida saqlanishi kerak. WarningBookmarkAlreadyExists=Ushbu nom yoki ushbu maqsad (URL) bilan xatcho'p allaqachon mavjud. @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=Ogohlantirish, sizning konfiguratsiya fayli ( h WarningsOnXLines= %s manba yozuvlari (lar) haqida ogohlantirishlar WarningNoDocumentModelActivated=Hujjatlarni yaratish uchun hech qanday model faollashtirilmagan. Modul sozlamalarini tekshirguningizcha sukut bo'yicha model tanlanadi. WarningLockFileDoesNotExists=Ogohlantirish, o'rnatish tugagandan so'ng, faylini qo'shib o'rnatish / ko'chirish vositalarini o'chirib qo'yishingiz kerak katalogiga %s . Ushbu faylni yaratishni tashlab qo'yish xavfsizlikka katta xavf tug'diradi. -WarningUntilDirRemoved=Barcha xavfsizlik ogohlantirishlari (faqat administrator foydalanuvchilari tomonidan ko'rinadigan) zaiflik mavjud bo'lganda (yoki Setup-> Other Setup-ga doimiy MAIN_REMOVE_INSTALL_WARNING qo'shilsa) faol bo'lib qoladi. +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Ogohlantirish, yopish, agar manba va maqsad elementlari o'rtasida farq bo'lsa ham amalga oshiriladi. Ushbu xususiyatni ehtiyotkorlik bilan yoqing. WarningUsingThisBoxSlowDown=Ogohlantirish, ushbu katakchadan foydalanib, katakchani ko'rsatadigan barcha sahifalarni sekinlashtiring. WarningClickToDialUserSetupNotComplete=Foydalanuvchingiz uchun ClickToDial ma'lumotlarini sozlash tugallanmagan (ClickToDial yorlig'ini foydalanuvchi kartangizga qarang). @@ -321,12 +337,10 @@ WarningCreateSubAccounts=Ogohlantirish, siz to'g'ridan-to'g'ri sub-qayd yozuvini WarningAvailableOnlyForHTTPSServers=Faqat HTTPS xavfsiz ulanishidan foydalanish mumkin. WarningModuleXDisabledSoYouMayMissEventHere=%s moduli yoqilmagan. Shunday qilib, siz bu erda ko'plab tadbirlarni o'tkazib yuborishingiz mumkin. WarningPaypalPaymentNotCompatibleWithStrict="Qat'iy" qiymati onlayn to'lov xususiyatlarining noto'g'ri ishlashiga olib keladi. Buning o'rniga "Lax" dan foydalaning. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". -<<<<<<< BOSH -======= -<<<<<<< BOSH -<<<<<<< BOSH ->>>>>>> git@github.com ning '15.0' filiali:Dolibarr/dolibarr.git # Validate RequireValidValue = Qiymat yaroqsiz RequireAtLeastXString = Kamida %s belgi kerak @@ -347,12 +361,3 @@ BadSetupOfField = Maydonni noto'g'ri sozlashda xato BadSetupOfFieldClassNotFoundForValidation = Maydonni noto'g'ri o'rnatish xatosi: Tasdiqlash uchun sinf topilmadi BadSetupOfFieldFileNotFound = Maydonni noto'g'ri o'rnatishda xato: Faylni kiritish uchun topilmadi BadSetupOfFieldFetchNotCallable = Maydonni noto'g'ri o'rnatish xatosi: Sinfda qo'ng'iroq qilib bo'lmaydi -<<<<<<< BOSH -======= -======= -======= ->>>>>>> git@github.com ning '15.0' filiali:Dolibarr/dolibarr.git ->>>>>>> git@github.com ning '15.0' filiali:Dolibarr/dolibarr.git -======= ->>>>>>> git@github.com ning '15.0' filiali:Dolibarr/dolibarr.git ->>>>>>> git@github.com ning '15.0' filiali:Dolibarr/dolibarr.git diff --git a/htdocs/langs/uz_UZ/eventorganization.lang b/htdocs/langs/uz_UZ/eventorganization.lang index 5e2479ff6aa..8966084c87b 100644 --- a/htdocs/langs/uz_UZ/eventorganization.lang +++ b/htdocs/langs/uz_UZ/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Ishtirokchini yaratish/qo'shish shaklid # Object # EventOrganizationConfOrBooth= Konferentsiya yoki stend +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Tadbirni tashkil qilishni boshqaring ConferenceOrBooth = Konferentsiya yoki stend ConferenceOrBoothTab = Konferentsiya yoki stend AmountPaid = To'langan miqdor DateOfRegistration = Ro'yxatdan o'tish sanasi ConferenceOrBoothAttendee = Konferentsiya yoki stend ishtirokchisi +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Bu yerda siz konferentsiya uchun ovoz berishing EvntOrgRegistrationConfHelpMessage = Bu yerda siz tadbir davomida jonlantirish uchun yangi konferentsiya taklif qilishingiz mumkin. EvntOrgRegistrationBoothHelpMessage = Bu erda siz tadbir davomida stendga ega bo'lish uchun ariza berishingiz mumkin. ListOfSuggestedConferences = Tavsiya etilgan konferentsiyalar ro'yxati -ListOfSuggestedBooths = Tavsiya etilgan kabinalar ro'yxati -ListOfConferencesOrBooths=Loyiha konferentsiyalari yoki stendlari ro'yxati +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Yangi konferentsiyani taklif eting SuggestBooth = Stendni taklif qiling ViewAndVote = Taklif etilgan tadbirlarni ko'ring va ovoz bering PublicAttendeeSubscriptionGlobalPage = Tadbirga ro'yxatdan o'tish uchun ochiq havola PublicAttendeeSubscriptionPage = Faqat ushbu tadbirga ro'yxatdan o'tish uchun ochiq havola MissingOrBadSecureKey = Elektron kalit yaroqsiz yoki yo'q -EvntOrgWelcomeMessage = Ushbu shakl sizga tadbirning yangi ishtirokchisi sifatida ro'yxatdan o'tishga imkon beradi: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Ushbu anjuman %s da boshlanadi va %s da tugaydi. ConferenceAttendeeFee = Tadbir uchun konferentsiya qatnashchilari uchun to'lov: '%s' %s dan %s gacha. BoothLocationFee = Hodisa uchun stend joylashuvi: %s dan %s gacha bo'lgan '%s'. @@ -130,7 +133,7 @@ LabelOfconference=Konferentsiya yorlig'i ConferenceIsNotConfirmed=Ro'yxatdan o'tish mumkin emas, konferentsiya hali tasdiqlanmagan DateMustBeBeforeThan=%s %sdan oldin bo'lishi kerak DateMustBeAfterThan=%s %s dan keyin bo'lishi kerak - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Ro'yxatdan o'tish OrganizationEventConfRequestWasReceived=Sizning konferentsiya haqidagi taklifingiz qabul qilindi OrganizationEventBoothRequestWasReceived=Stend uchun so'rovingiz qabul qilindi @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Tadbirni ro'yxatdan o'tkazish OrganizationEventBulkMailToAttendees=Bu sizning tadbirda ishtirokchi sifatida ishtirok etishingizni eslatadi OrganizationEventBulkMailToSpeakers=Bu sizning ma'ruzachi sifatida tadbirda ishtirok etishingizni eslatadi OrganizationEventLinkToThirdParty=Uchinchi shaxsga havola (mijoz, yetkazib beruvchi yoki hamkor) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Stend uchun ariza NewSuggestionOfConference=Konferentsiya uchun ariza @@ -154,7 +158,7 @@ VoteOk = Sizning ovozingiz qabul qilindi. AlreadyVoted = Siz ushbu tadbir uchun allaqachon ovoz bergansiz. VoteError = Ovoz berish paytida xatolik yuz berdi, qayta urinib ko'ring. -SubscriptionOk = Sizning ro'yxatdan o'tishingiz tasdiqlandi +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Tadbirga obunangizni tasdiqlash Attendee = Ishtirokchi PaymentConferenceAttendee = Konferentsiya qatnashchilarining to'lovlari @@ -162,6 +166,7 @@ PaymentBoothLocation = Stend joylashgan joy uchun to'lov DeleteConferenceOrBoothAttendee=Ishtirokchini olib tashlash RegistrationAndPaymentWereAlreadyRecorder= %s elektron pochta uchun ro'yxatdan o'tish va to'lov allaqachon qayd qilingan. EmailAttendee=Ishtirokchining elektron pochtasi +EmailCompany=Company email EmailCompanyForInvoice=Kompaniyaning elektron pochtasi (hisob -faktura uchun, agar ishtirokchining elektron pochtasi boshqacha bo'lsa) ErrorSeveralCompaniesWithEmailContactUs=Bu elektron pochtaga ega bo'lgan bir nechta kompaniyalar topildi, shuning uchun biz sizning ro'yxatdan o'tishingizni avtomatik tarzda tasdiqlay olmaymiz. Iltimos, qo'lda tekshirish uchun %s biz bilan bog'laning ErrorSeveralCompaniesWithNameContactUs=Bu nomdagi bir nechta kompaniyalar topilgan, shuning uchun biz sizning ro'yxatdan o'tishingizni avtomatik tarzda tasdiqlay olmaymiz. Iltimos, qo'lda tekshirish uchun %s biz bilan bog'laning diff --git a/htdocs/langs/uz_UZ/externalsite.lang b/htdocs/langs/uz_UZ/externalsite.lang deleted file mode 100644 index db049960d45..00000000000 --- a/htdocs/langs/uz_UZ/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Tashqi veb-saytga havolani o'rnatish -ExternalSiteURL=HTML iframe tarkibidagi tashqi sayt URL manzili -ExternalSiteModuleNotComplete=ExternalSite moduli to'g'ri sozlanmagan. -ExampleMyMenuEntry=Mening yozuvim diff --git a/htdocs/langs/uz_UZ/ftp.lang b/htdocs/langs/uz_UZ/ftp.lang deleted file mode 100644 index 4c409340eca..00000000000 --- a/htdocs/langs/uz_UZ/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP yoki SFTP Client modulini sozlash -NewFTPClient=FTP / FTPS ulanishini yangi sozlash -FTPArea=FTP / FTPS maydoni -FTPAreaDesc=Ushbu ekran FTP va SFTP serverining ko'rinishini ko'rsatadi. -SetupOfFTPClientModuleNotComplete=FTP yoki SFTP mijoz modulini sozlash tugallanmaganga o'xshaydi -FTPFeatureNotSupportedByYourPHP=Sizning PHP-da FTP yoki SFTP funktsiyalari qo'llab-quvvatlanmaydi -FailedToConnectToFTPServer=Serverga ulanib bo'lmadi (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Belgilangan login / parol bilan serverga kirishda xatolik yuz berdi -FTPFailedToRemoveFile= %s faylini o'chirib bo'lmadi. -FTPFailedToRemoveDir= %s katalogini o'chirib bo'lmadi: ruxsatlarni tekshiring va katalog bo'sh. -FTPPassiveMode=Passiv rejim -ChooseAFTPEntryIntoMenu=Menyudan FTP / SFTP saytini tanlang ... -FailedToGetFile=%s fayllari olinmadi diff --git a/htdocs/langs/uz_UZ/holiday.lang b/htdocs/langs/uz_UZ/holiday.lang index 761eafd5b14..c3dc00371dc 100644 --- a/htdocs/langs/uz_UZ/holiday.lang +++ b/htdocs/langs/uz_UZ/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Keting +Holidays=Leaves +Holiday=Leave CPTitreMenu=Keting MenuReportMonth=Oylik bayonot MenuAddCP=Yangi ta'til so'rovi +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Ushbu sahifani ko'rish uchun "Ketish" modulini yoqishingiz kerak. AddCP=Dam olish to'g'risida so'rov yuboring DateDebCP=Boshlanish vaqti @@ -56,6 +58,7 @@ ConfirmDeleteCP=Ushbu ta'til so'rovi o'chirilganligini tasdiqlaysizmi? ErrorCantDeleteCP=Xatolik, ushbu ta'tilni o'chirish huquqiga ega emassiz. CantCreateCP=Sizda ta'tilga chiqish to'g'risida so'rov yuborish huquqingiz yo'q. InvalidValidatorCP=Ta'tilga chiqish uchun tasdiqlovchini tanlashingiz kerak. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Boshlanish sanasini tanlashingiz kerak. NoDateFin=Tugash sanasini tanlashingiz kerak. ErrorDureeCP=Sizning ta'til so'rovingiz ish kunini o'z ichiga olmaydi. @@ -79,6 +82,8 @@ MotifCP=Sabab UserCP=Foydalanuvchi ErrorAddEventToUserCP=Istisno ta'tilini qo'shishda xatolik yuz berdi. AddEventToUserOkCP=Istisno ta'tiliga qo'shilish tugallandi. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=O'zgarish jurnallarini ko'rish LogCP="Ta'til balansi" ga kiritilgan barcha yangilanishlar jurnali ActionByCP=Tomonidan yangilangan @@ -86,6 +91,13 @@ UserUpdateCP=Uchun yangilangan PrevSoldeCP=Oldingi qoldiq NewSoldeCP=Yangi balans alreadyCPexist=Ushbu davrda ta'til so'ralgan. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Ta'tilga chiqish kunining boshlanishi LastDayOfHoliday=Ta'tilni talab qilish kuni tugaydi BoxTitleLastLeaveRequests=Oxirgi %s o'zgartirilgan ta'til so'rovlari @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s odatda NON ish kuni hisoblanadi BlockHolidayIfNegative=Balans salbiy bo'lsa blokirovka qiling LeaveRequestCreationBlockedBecauseBalanceIsNegative=Balansingiz manfiy bo‘lgani uchun ta’til so‘rovini yaratish bloklandi ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Qoldirish soʻrovi %s qoralama boʻlishi, bekor qilinishi yoki oʻchirish rad etilishi kerak +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/uz_UZ/hrm.lang b/htdocs/langs/uz_UZ/hrm.lang index b5c3ef8615a..99d100ed717 100644 --- a/htdocs/langs/uz_UZ/hrm.lang +++ b/htdocs/langs/uz_UZ/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Ochiq muassasa CloseEtablishment=Yaqin muassasasi # Dictionary DictionaryPublicHolidays=Ta'til - rasmiy bayramlar -DictionaryDepartment=HRM - bo'limlar ro'yxati +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - ish joylari # Module Employees=Xodimlar @@ -70,9 +70,9 @@ RequiredSkills=Ushbu ish uchun zarur bo'lgan ko'nikmalar UserRank=Foydalanuvchi darajasi SkillList=Ko'nikmalar ro'yxati SaveRank=Darajani saqlang -knowHow=Nou-hau -HowToBe=Qanday bo'lish -knowledge=Bilim +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Bekor qilish sharhi DateLastEval=Oxirgi baholash sanasi NoEval=Ushbu xodim uchun hech qanday baholash o'tkazilmagan @@ -88,3 +88,4 @@ DeleteSkill = Ko'nikma olib tashlandi SkillsExtraFields=Atributlar qo'shimchalari (Kompentsiyalar) JobsExtraFields=Attributs supplémentaires (Emplois) EvaluationsExtraFields=Atributlar qoʻshimchalari (baholar) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/uz_UZ/install.lang b/htdocs/langs/uz_UZ/install.lang index 8a33bb02391..acc7e24720e 100644 --- a/htdocs/langs/uz_UZ/install.lang +++ b/htdocs/langs/uz_UZ/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable= %s konfiguratsiya fayli yozib bo'lmaydi. Ruxsatla ConfFileIsWritable= %s konfiguratsiya fayli yozilishi mumkin. ConfFileMustBeAFileNotADir=Konfiguratsiya fayli %s fayl bo'lishi kerak, katalog emas. ConfFileReload=Parametrlarni konfiguratsiya faylidan qayta yuklash. -NoReadableConfFileSoStartInstall= conf/conf.php konfiguratsiya fayli mavjud emas yoki qayta tiklanmaydi. Uni ishga tushirishga harakat qilish uchun o'rnatish jarayonini ishga tushiramiz. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=Ushbu PHP POST va GET o'zgaruvchilarini qo'llab-quvvatlaydi. PHPSupportPOSTGETKo=PHP sozlamangiz POST va / yoki GET o'zgaruvchilarini qo'llab-quvvatlamasligi mumkin. Php.ini da variables_order parametrini tekshiring. PHPSupportSessions=Ushbu PHP sessiyalarni qo'llab-quvvatlaydi. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Siz '%s' parametri uchun noto'g'ri qiymat yozgan bo' ErrorFailedToCreateDatabase='%s' ma'lumotlar bazasini yaratib bo'lmadi. ErrorFailedToConnectToDatabase='%s' ma'lumotlar bazasiga ulanib bo'lmadi. ErrorDatabaseVersionTooLow=Ma'lumotlar bazasi versiyasi (%s) juda eski. %s yoki undan yuqori versiyasi talab qilinadi. -ErrorPHPVersionTooLow=PHP versiyasi juda eski. %s versiyasi talab qilinadi. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Serverga ulanish muvaffaqiyatli bo'ldi, ammo '%s' ma'lumotlar bazasi topilmadi. ErrorDatabaseAlreadyExists='%s' ma'lumotlar bazasi allaqachon mavjud. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Agar ma'lumotlar bazasi mavjud bo'lmasa, orqaga qayting va "Ma'lumotlar bazasini yaratish" bandini tekshiring. IfDatabaseExistsGoBackAndCheckCreate=Agar ma'lumotlar bazasi allaqachon mavjud bo'lsa, orqaga qayting va "Ma'lumotlar bazasini yaratish" parametrini olib tashlang. WarningBrowserTooOld=Brauzer versiyasi juda eski. Brauzeringizni Firefox, Chrome yoki Opera-ning so'nggi versiyasiga yangilash tavsiya etiladi. diff --git a/htdocs/langs/uz_UZ/knowledgemanagement.lang b/htdocs/langs/uz_UZ/knowledgemanagement.lang index 63f433adf89..8311d8e14c7 100644 --- a/htdocs/langs/uz_UZ/knowledgemanagement.lang +++ b/htdocs/langs/uz_UZ/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Maqolalar KnowledgeRecord = Maqola KnowledgeRecordExtraFields = Maqola uchun qo'shimcha joylar GroupOfTicket=Chiptalar guruhi -YouCanLinkArticleToATicketCategory=Siz maqolani chiptalar guruhiga bog'lashingiz mumkin (shuning uchun maqola yangi chiptalarni saralash paytida taklif qilinadi) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Guruh bo'lganda chiptalar taklif etiladi SetObsolete=Eskirgan deb belgilang diff --git a/htdocs/langs/uz_UZ/loan.lang b/htdocs/langs/uz_UZ/loan.lang index 204de3d76eb..6170dfea12c 100644 --- a/htdocs/langs/uz_UZ/loan.lang +++ b/htdocs/langs/uz_UZ/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Moliyaviy majburiyat InterestAmount=Qiziqish CapitalRemain=Kapital qoladi TermPaidAllreadyPaid = Ushbu muddat allaqachon to'langan -CantUseScheduleWithLoanStartedToPaid = To'lov boshlangan kredit uchun rejalashtiruvchidan foydalanib bo'lmaydi +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Agar jadvaldan foydalansangiz, foizlarni o'zgartira olmaysiz # Admin ConfigLoan=Modulli kreditni sozlash -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Sukut bo'yicha buxgalteriya hisobi kapitali -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Sukut bo'yicha buxgalteriya hisobi foizlari -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Sukut bo'yicha buxgalteriya hisobini sug'urtalash +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Moliyaviy majburiyatni tahrirlash diff --git a/htdocs/langs/uz_UZ/mailmanspip.lang b/htdocs/langs/uz_UZ/mailmanspip.lang index c403293b784..4465f2e4267 100644 --- a/htdocs/langs/uz_UZ/mailmanspip.lang +++ b/htdocs/langs/uz_UZ/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Obuna testi muvaffaqiyatli bajarildi MailmanDeletionSuccess=Obunani bekor qilish testi muvaffaqiyatli bajarildi SynchroMailManEnabled=Pochta xizmatining yangilanishi amalga oshiriladi SynchroSpipEnabled=Spip yangilanishi amalga oshiriladi -DescADHERENT_MAILMAN_ADMINPW=Pochtachi ma'murining paroli +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=Pochtachi obunalari uchun URL manzili DescADHERENT_MAILMAN_UNSUB_URL=Pochtachi obunalarini bekor qilish uchun URL manzili DescADHERENT_MAILMAN_LISTS=Yangi a'zolarni avtomatik ravishda yozish uchun ro'yxat (lar) (vergul bilan ajratilgan) diff --git a/htdocs/langs/uz_UZ/mails.lang b/htdocs/langs/uz_UZ/mails.lang index 624ee5c9967..d3e3d75787e 100644 --- a/htdocs/langs/uz_UZ/mails.lang +++ b/htdocs/langs/uz_UZ/mails.lang @@ -7,10 +7,10 @@ MailCard=Elektron pochta kartasi MailRecipients=Qabul qiluvchilar MailRecipient=Qabul qiluvchi MailTitle=Tavsif -MailFrom=Yuboruvchi +MailFrom=From MailErrorsTo=Xatolar MailReply=Ga javob -MailTo=Qabul qiluvchilar (lar) +MailTo=To MailToUsers=Foydalanuvchi (lar) ga MailCC=Nusxalash MailToCCUsers=Foydalanuvchilar (lar) ga nusxalash @@ -178,3 +178,4 @@ IsAnAnswer=Dastlabki elektron pochtaning javobi RecordCreatedByEmailCollector=%s elektron pochtasidan elektron pochta yig'uvchisi %s tomonidan yaratilgan yozuv DefaultBlacklistMailingStatus=Yangi kontakt yaratishda "%s" maydonining standart qiymati DefaultStatusEmptyMandatory=Bo'sh, ammo majburiy +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index 97a74ddab6a..88629c28785 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=freemono FONTSIZEFORPDF=8 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Ushbu elektron pochta turi uchun shablon mavjud emas AvailableVariables=Mavjud almashtirish o'zgaruvchilari NoTranslation=Tarjima yo'q Translation=Tarjima +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Bo'sh bo'lmagan qidiruv mezonlarini kiriting EnterADateCriteria=Sana mezonlarini kiriting @@ -199,6 +206,7 @@ Valid=Yaroqli Approve=Tasdiqlash Disapprove=Tasdiqlamayman ReOpen=Qayta oching +OpenVerb=Open Upload=Yuklash ToLink=Havola Select=Tanlang @@ -216,7 +224,7 @@ UserGroup=Foydalanuvchilar guruhi UserGroups=Foydalanuvchi guruhlari NoUserGroupDefined=Hech qanday foydalanuvchi guruhi aniqlanmagan Password=Parol -PasswordRetype=Parolingizni qayta kiriting +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Ushbu namoyishda ko'plab funktsiyalar / modullar o'chirilganligini unutmang. Name=Ism NameSlashCompany=Ism / kompaniya @@ -345,7 +353,7 @@ KiloBytes=Kilobayt MegaBytes=Megabayt GigaBytes=Gigabayt TeraBytes=Terabayt -UserAuthor=Tomonidan belgilangan +UserAuthor=Created by UserModif=Tomonidan yangilangan b=b. Kb=Kb @@ -481,6 +489,7 @@ ActionsOnContact=Ushbu aloqa / manzil uchun tadbirlar ActionsOnContract=Ushbu shartnoma bo'yicha tadbirlar ActionsOnMember=Ushbu a'zo haqidagi tadbirlar ActionsOnProduct=Ushbu mahsulot haqidagi tadbirlar +ActionsOnAsset=Events for this fixed asset NActionsLate=%s kech ToDo=Qilmoq Completed=Bajarildi @@ -712,6 +721,7 @@ FeatureDisabled=Funktsiya o'chirilgan MoveBox=Vidjetni ko'chirish Offered=Taklif qilingan NotEnoughPermissions=Sizda bu harakat uchun ruxsat yo'q +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Sessiya nomi Method=Usul Receive=Qabul qiling @@ -801,6 +811,7 @@ URLPhoto=Surat / logotipning URL manzili SetLinkToAnotherThirdParty=Boshqa uchinchi tomon bilan bog'lanish LinkTo=Ga havola LinkToProposal=Taklifga havola +LinkToExpedition= Link to expedition LinkToOrder=Buyurtma uchun havola LinkToInvoice=Hisob-fakturaga havola LinkToTemplateInvoice=Shablon hisob-fakturasiga havola @@ -919,6 +930,7 @@ DirectDownloadInternalLink=Shaxsiy yuklab olish havolasi PrivateDownloadLinkDesc=Siz tizimga kirishingiz kerak va faylni ko'rish yoki yuklab olish uchun sizga ruxsat kerak Download=Yuklash DownloadDocument=Hujjatni yuklab oling +DownloadSignedDocument=Download signed document ActualizeCurrency=Valyuta kursini yangilang Fiscalyear=Moliyaviy yil ModuleBuilder=Modul va dastur yaratuvchisi @@ -1044,6 +1056,7 @@ SearchIntoContracts=Shartnomalar SearchIntoCustomerShipments=Mijozlar jo'natmalari SearchIntoExpenseReports=Xarajatlar bo'yicha hisobotlar SearchIntoLeaves=Keting +SearchIntoKM=Knowledge base SearchIntoTickets=Chiptalar SearchIntoCustomerPayments=Mijozlar uchun to'lovlar SearchIntoVendorPayments=Sotuvchi uchun to'lovlar @@ -1135,15 +1148,29 @@ EventReminder=Voqealar to'g'risida eslatma UpdateForAllLines=Barcha satrlar uchun yangilash OnHold=Ushlab qolingan Civility=Fuqarolik -AffectTag=Tegga ta'sir qilish +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Tashqi foydalanuvchini yarating -ConfirmAffectTag=Ommaviy teg ta'sir qiladi -ConfirmAffectTagQuestion=Siz tanlangan %s yozuvlariga teglar ta'sir qilishni xohlaysizmi? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Yozuvlar turi uchun yorliq turi topilmadi +Rate=Tezlik +SupervisorNotFound=Supervisor not found CopiedToClipboard=Buferga nusxa olindi InformationOnLinkToContract=Ushbu miqdor faqat shartnomadagi barcha satrlarning jami hisoblanadi. Vaqt tushunchasi hisobga olinmaydi. ConfirmCancel=Bekor qilishni xohlaysizmi? EmailMsgID=MsgID-ga elektron pochta orqali yuboring +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Faol qilib sozlang SetToDisabled=O'chirib qo'yilgan ConfirmMassEnabling=tasdiqlashga imkon beradigan ommaviy @@ -1172,8 +1199,14 @@ Terminated=Tugatilgan AddLineOnPosition=Lavozimga qator qo'shing (bo'sh bo'lsa oxirida) ConfirmAllocateCommercial=Savdo vakilini tasdiqlashni tayinlang ConfirmAllocateCommercialQuestion=Haqiqatan ham %s tanlangan yozuv(lar)ni tayinlashni xohlaysizmi? -CommercialsAffected=Savdo vakillari zarar ko'rdi -CommercialAffected=Savdo vakili zarar ko'rdi -YourMessage=Votre xabari +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message YourMessageHasBeenReceived=Sizning xabaringiz qabul qilindi. Biz imkon qadar tezroq javob beramiz yoki siz bilan bog'lanamiz. UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/uz_UZ/members.lang b/htdocs/langs/uz_UZ/members.lang index 11b58cd09c1..396468d86f9 100644 --- a/htdocs/langs/uz_UZ/members.lang +++ b/htdocs/langs/uz_UZ/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s , ErrorUserPermissionAllowsToLinksToItselfOnly=Xavfsizlik nuqtai nazaridan, barcha foydalanuvchilarni tahrirlash uchun sizga o'zingizga tegishli bo'lmagan foydalanuvchi bilan bog'lanish uchun ruxsat berilishi kerak. SetLinkToUser=Dolibarr foydalanuvchisiga havola SetLinkToThirdParty=Dolibarr uchinchi tomoniga havola +MemberCountersArePublic=Counters of valid members are public MembersCards=A'zolar uchun kartalarni yaratish MembersList=A'zolar ro'yxati MembersListToValid=Loyiha a'zolari ro'yxati (tasdiqlanishi kerak) @@ -34,8 +35,10 @@ DateSubscription=Ro'yxatdan o'tish sanasi DateEndSubscription=A'zolikning tugash sanasi EndSubscription=Obunaning tugashi SubscriptionId=Hissa identifikatori -WithoutSubscription=Hissa qo'shmasdan -MemberId=A'zo identifikatori +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Yangi a'zo MemberType=Ro'yxatdan turi MemberTypeId=Ro'yxatdan turi identifikatori @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Ro'yxatdan turini o'chirib bo'lmaydi NewSubscription=Yangi hissa NewSubscriptionDesc=Ushbu shakl sizga obunangizni fondning yangi a'zosi sifatida qayd etish imkonini beradi. Agar siz obunangizni yangilamoqchi bo'lsangiz (agar u allaqachon a'zo bo'lsa), %s elektron pochta orqali poydevor kengashiga murojaat qiling. Subscription=Hissa +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Join Subscriptions=Hissa SubscriptionLate=Kech SubscriptionNotReceived=Hissa hech qachon olinmagan @@ -135,7 +144,7 @@ CardContent=A'zo kartangizning tarkibi # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=A'zolik so'rovi olinganligini sizga xabar qilmoqchimiz.

    ThisIsContentOfYourMembershipWasValidated=Sizning a'zoligingiz quyidagi ma'lumotlar bilan tasdiqlanganligini sizga xabar qilmoqchimiz:

    -ThisIsContentOfYourSubscriptionWasRecorded=Sizga yangi obunangiz yozib olingani haqida xabar bermoqchimiz.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Obunangiz muddati tugashini yoki allaqachon tugaganligini sizga xabar qilmoqchimiz (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Siz uni yangilaysiz degan umiddamiz.

    ThisIsContentOfYourCard=Bu siz haqingizda mavjud bo'lgan ma'lumotlarning qisqacha mazmuni. Iltimos, biron bir narsa noto'g'ri bo'lsa, biz bilan bog'laning.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Agar mehmon avtomatik ravishda yozgan bo'lsa, elektron pochta xabarining mavzusi @@ -198,8 +207,10 @@ NbOfSubscriptions=Hissalar soni AmountOfSubscriptions=Hisob -kitoblardan yig'ilgan mablag ' TurnoverOrBudget=Tovar aylanmasi (kompaniya uchun) yoki byudjet (fond uchun) DefaultAmount=Standart badal miqdori -CanEditAmount=Mehmon o'z hissasi miqdorini tanlashi/tahrir qilishi mumkin -MEMBER_NEWFORM_PAYONLINE=Onlayn to'lovlar sahifasiga o'ting +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Tabiatan MembersStatisticsByProperties=A'zolar statistikasi tabiatan VATToUseForSubscriptions=Hisob -kitoblar uchun QQS stavkasi @@ -220,3 +231,4 @@ CreateDolibarrLoginDesc=A'zolar uchun foydalanuvchi loginini yaratish ularga ilo CreateDolibarrThirdPartyDesc=Uchinchi tomon, agar siz har bir hissa uchun hisob -fakturani tuzishga qaror qilsangiz, hisob -fakturada ishlatiladigan yuridik shaxs. Hisobni yozish jarayonida siz uni keyinchalik yaratishingiz mumkin bo'ladi. MemberFirstname=A'zoning ismi MemberLastname=A'zo familiyasi +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/uz_UZ/modulebuilder.lang b/htdocs/langs/uz_UZ/modulebuilder.lang index d05cefad9a6..20e1b920f50 100644 --- a/htdocs/langs/uz_UZ/modulebuilder.lang +++ b/htdocs/langs/uz_UZ/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=Ushbu vositadan faqat tajribali foydalanuvchilar yoki ishlab chiquvchilar foydalanishi kerak. U o'z modulingizni yaratish yoki tahrirlash uchun yordamchi dasturlarni taqdim etadi. Muqobil qo'lda ishlab chiqish uchun hujjatlar bu yerda . EnterNameOfModuleDesc=Bo'sh joy qoldirmasdan yaratish uchun modul/ilova nomini kiriting. So'zlarni ajratish uchun katta harflardan foydalaning (masalan: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Yaratish uchun ob'ekt nomini bo'sh joysiz kiriting. So'zlarni ajratish uchun katta harflardan foydalaning (Masalan: MyObject, Student, Teacher...). CRUD sinf fayli, shuningdek, API fayli, ob'ektni ro'yxatga olish/qo'shish/tahrirlash/o'chirish sahifalari va SQL fayllari yaratiladi. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Boʻsh joy qoldirmasdan yaratish uchun lugʻat nomini kiriting. So'zlarni ajratish uchun katta harflardan foydalaning (Masalan: MyDico...). Sinf fayli, balki SQL fayli ham yaratiladi. ModuleBuilderDesc2=Modullar ishlab chiqarilgan / tahrirlangan yo'l (tashqi modullar uchun birinchi katalog %s da belgilangan): %s ModuleBuilderDesc3=Yaratilgan / tahrirlanadigan modullar topildi: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4= %s fayli modul katalogining ildizida mavju NewModule=Yangi modul NewObjectInModulebuilder=Yangi ob'ekt NewDictionary=Yangi lug'at +ModuleName=Module name ModuleKey=Modul kaliti ObjectKey=Ob'ekt kaliti DicKey=Lug'at kaliti @@ -48,11 +50,14 @@ PathToModulePackage=Modul / dastur paketini zipga yo'naltirish PathToModuleDocumentation=Modul / dastur hujjatlari fayliga yo'l (%s) SpaceOrSpecialCharAreNotAllowed=Bo'sh joy yoki maxsus belgilarga ruxsat berilmaydi. FileNotYetGenerated=Fayl hali yaratilmagan +GenerateCode=Generate code RegenerateClassAndSql=.Class va .sql fayllarini majburiy yangilash RegenerateMissingFiles=Yo'qotilgan fayllarni yaratish SpecificationFile=Hujjatlar fayli LanguageFile=Til uchun fayl ObjectProperties=Ob'ekt xususiyatlari +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty= %s xususiyatini o'chirishni xohlaysizmi? Bu PHP sinfidagi kodni o'zgartiradi, shuningdek ob'ektni jadval ta'rifidan ustunni olib tashlaydi. NotNull=NULL emas NotNullDesc=1=Ma'lumotlar bazasini NO NULL ga o'rnating, 0=Nul qiymatlarga ruxsat bering, -1=Bo'sh bo'lsa, qiymatni NULLga majburlash orqali null qiymatlarga ruxsat bering ('' yoki 0) @@ -81,15 +86,16 @@ IsAMeasure=Bu o'lchovdir DirScanned=Katalog skanerdan o'tkazildi NoTrigger=Trigger yo'q NoWidget=Vidjet yo‘q -GoToApiExplorer=API Explorer +ApiExplorer=API explorer ListOfMenusEntries=Menyu yozuvlari ro'yxati ListOfDictionariesEntries=Lug'at yozuvlari ro'yxati ListOfPermissionsDefined=Belgilangan ruxsatnomalar ro'yxati SeeExamples=Bu erda misollarni ko'ring -EnabledDesc=Ushbu maydon faol bo'lishi sharti (Masalan: 1 yoki $ conf-> global-> MYMODULE_MYOPTION) -VisibleDesc=Maydon ko'rinadimi? (Masalan: 0 = Hech qachon ko'rinmaydi, 1 = Ro'yxatda ko'rinadi va shakllarni yaratadi / yangilaydi / ko'radi, 2 = Faqat ro'yxatda ko'rinadi, 3 = Faqat shaklni yaratadi / yangilaydi / ko'radi (ro'yxatda emas), 4 = Ro'yxatda ko'rinadigan va faqat yangilash / ko'rish formasi (yaratilmaydi), 5 = Faqat ro'yxat ko'rinishida ko'rinadigan shakl (yaratilmaydi, yangilanmaydi).

    manfiy qiymatdan foydalanish maydon sukut bo'yicha ro'yxatda ko'rsatilmaydi, lekin ko'rish uchun tanlanishi mumkin).

    Bu ibora bo'lishi mumkin, masalan:
    preg_match ('/ public /', $ _SERVER ['PHP_SELF'])? 0: 1
    ($ user-> Rights_day> -DisplayOnPdfDesc=Ushbu maydonni mos keladigan PDF hujjatlarida ko'rsating, siz "Pozitsiya" maydonida pozitsiyani boshqarishingiz mumkin.
    Bugungi kunda ma'lum compatibles PDF modellari: eratosthene (tartibi), espadon (kema), shimgichni (Xarajatlarni), ko'k (propal / narx), cornas (etkazib beruvchi tartib)

    hujjat uchun:
    0 =
    1 ko'rsatilmaydi = ko'rsatish
    2 = ko'rsatishi faqat bo'sh emas, agar

    uchun hujjat bosqichlari:
    0 = emas
    1 = keyin Tavsif ustun 4 = namoyish
    ta'rifi keyin liniyasi Tavsif ustun 3 = namoyish
    bir ustun ko'rsatiladi ko'rsatilgan faqat bo'sh bo'lmasa tavsif -DisplayOnPdf=PDF-da ko'rsatish +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Jami ro'yxatga kiritish uchun maydon qiymatini yig'ish mumkinmi? (Masalan: 1 yoki 0) SearchAllDesc=Ushbu maydon tezkor qidiruv vositasidan qidirish uchun foydalaniladimi? (Masalan: 1 yoki 0) SpecDefDesc=O'zingizning modulingiz bilan ta'minlamoqchi bo'lgan barcha boshqa hujjatlarni bu erga kiriting. Siz .md yoki undan yaxshiroq, boy .asciidoc sintaksisidan foydalanishingiz mumkin. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Muayyan tahrirlovchining URL manzilidan foydalaning UseSpecificFamily = Muayyan oiladan foydalaning UseSpecificAuthor = Muayyan muallifdan foydalaning UseSpecificVersion = Muayyan dastlabki versiyadan foydalaning -IncludeRefGeneration=Ob'ektga havola maxsus raqamlash qoidalari bilan avtomatik ravishda yaratilishi kerak +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Maxsus raqamlash qoidalaridan foydalangan holda ma'lumotnomani avtomatik ravishda yaratishni boshqarish uchun kod qo'shmoqchi bo'lsangiz, buni belgilang -IncludeDocGeneration=Ob'ekt uchun shablonlardan ba'zi hujjatlarni yaratmoqchiman +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Agar buni belgilasangiz, yozuvga "Hujjat yaratish" katagini qo'shish uchun ba'zi kodlar hosil bo'ladi. -ShowOnCombobox=Kombay qutisiga qiymatni ko'rsating +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Maslahatlar uchun kalit CSSClass=Formani tahrirlash / yaratish uchun CSS CSSViewClass=O'qish shakli uchun CSS CSSListClass=Ro'yxat uchun CSS NotEditable=Tahrirlash mumkin emas ForeignKey=Chet el kaliti -TypeOfFieldsHelp=Maydonlar turi:
    varchar(99), double(24,8), real, text, html, datetime, timetamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' yozuvni yaratish uchun kombinatsiyadan keyin + tugmasini qo'shamiz degan ma'noni anglatadi
    'filtr' bu sql sharti, misol: 'status=1 AND fk_user=__USER_ID__ VA ob'ekt ENT (__SHARED_)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii-dan HTML-ga o'zgartiruvchi AsciiToPdfConverter=Ascii-dan PDF-ga o'tkazuvchi TableNotEmptyDropCanceled=Stol bo'sh emas Drop bekor qilindi. ModuleBuilderNotAllowed=Modul yaratuvchisi mavjud, ammo sizning foydalanuvchingizga ruxsat berilmagan. ImportExportProfiles=Import va eksport rejimlari -ValidateModBuilderDesc=Agar siz kiritish yoki yangilash vaqtida maydon mazmunini tekshirish uchun chaqirilayotgan ob'ektning $this->validateField() usuliga ega bo'lishni istasangiz, buni 1 ga o'rnating. Agar tekshirish talab qilinmasa, 0 ni o'rnating. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Ogohlantirish: Ma'lumotlar bazasi avtomatik ravishda yangilanmaydi, siz jadvallarni yo'q qilishingiz va jadvallarni qayta yaratish uchun modulni o'chirib qo'yishingiz kerak. LinkToParentMenu=Asosiy menyu (fk_xxxxmenu) ListOfTabsEntries=Yorliqlar ro'yxati TabsDefDesc=Bu yerda modulingiz tomonidan taqdim etilgan yorliqlarni belgilang TabsDefDescTooltip=Modul/ilovangiz tomonidan taqdim etilgan yorliqlar $this->tabs massivida modul identifikatori faylida aniqlanadi. Siz ushbu faylni qo'lda tahrirlashingiz yoki o'rnatilgan muharriridan foydalanishingiz mumkin. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/uz_UZ/mrp.lang b/htdocs/langs/uz_UZ/mrp.lang index d9e022d5d5b..37ec90cc3d7 100644 --- a/htdocs/langs/uz_UZ/mrp.lang +++ b/htdocs/langs/uz_UZ/mrp.lang @@ -11,8 +11,8 @@ Bom=Materiallar veksellari BillOfMaterials=Materiallar hujjati BillOfMaterialsLines=Materiallar ro'yxati BOMsSetup=BOM modulini sozlash -ListOfBOMs=Materiallar ro'yxati - BOM -ListOfManufacturingOrders=Ishlab chiqarish buyurtmalarining ro'yxati +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Manufacturing Orders NewBOM=Yangi hisobot materiallari ProductBOMHelp=Ushbu BOM bilan yaratish (yoki qismlarga ajratish) uchun mahsulot.
    Izoh: 'Mahsulotning tabiati' = 'Xomashyo' xususiyatiga ega mahsulotlar ushbu ro'yxatda ko'rinmaydi. BOMsNumberingModules=BOM raqamlash shablonlari @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=%s materiallar hisobini klonlamoqchimisiz? ConfirmCloneMo=%s ishlab chiqarish buyurtmasini klonlamoqchimisiz? ManufacturingEfficiency=Ishlab chiqarish samaradorligi ConsumptionEfficiency=Iste'mol samaradorligi +Consumption=Consumption ValueOfMeansLoss=0,95 qiymati ishlab chiqarish yoki demontaj paytida o'rtacha 5%% yo'qotishni bildiradi. ValueOfMeansLossForProductProduced=0,95 qiymati ishlab chiqarilgan mahsulotning o'rtacha 5%% yo'qolishini anglatadi DeleteBillOfMaterials=Materiallar varaqasini o'chirish @@ -82,6 +83,7 @@ ProductsToProduce=Ishlab chiqarish uchun mahsulotlar UnitCost=Birlik narxi TotalCost=Umumiy qiymati BOMTotalCost=Ushbu BOMni ishlab chiqarish uchun har bir miqdor va iste'mol qilinadigan mahsulot narxiga qarab xarajatlar (agar belgilangan bo'lsa, Narx narxidan foydalaning, boshqasi aniqlangan bo'lsa, o'rtacha og'irlik narxidan, eng yaxshi sotib olish narxidan) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=Ishlab chiqarish buyurtmasini yopish uchun siz avval ishlab chiqarishni boshlashingiz kerak ('%s' yorlig'iga qarang). Ammo siz buni bekor qilishingiz mumkin. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Kitni BOM yoki MOda ishlatib bo'lmaydi Workstation=Ish stantsiyasi @@ -112,3 +114,7 @@ MOAndLines=Buyurtma va chiziqlarni ishlab chiqarish MoChildGenerate=Generate Child Mo ParentMo=MO Parent MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/uz_UZ/oauth.lang b/htdocs/langs/uz_UZ/oauth.lang index 9b039218e4b..b14e3e406e9 100644 --- a/htdocs/langs/uz_UZ/oauth.lang +++ b/htdocs/langs/uz_UZ/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Token yaratildi va mahalliy ma'lumotlar bazasiga saqlandi NewTokenStored=Token qabul qilindi va saqlandi ToCheckDeleteTokenOnProvider=%s OAuth provayderi tomonidan saqlangan avtorizatsiyani tekshirish / o'chirish uchun shu erni bosing TokenDeleted=Jeton o'chirildi -RequestAccess=Kirish huquqini so'rash / yangilash va saqlash uchun yangi belgini olish uchun shu erni bosing -DeleteAccess=Tokenni o'chirish uchun shu erni bosing +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=OAuth provayderingiz bilan hisobga olish ma'lumotlarini yaratishda quyidagi URL manzilini qayta yo'naltirish URI sifatida foydalaning: -ListOfSupportedOauthProviders=OAuth2 provayderingiz tomonidan taqdim etilgan hisobga olish ma'lumotlarini kiriting. Bu erda faqat qo'llab-quvvatlanadigan OAuth2 provayderlari ro'yxatga olingan. Ushbu xizmatlardan OAuth2 autentifikatsiyasini talab qiladigan boshqa modullar foydalanishi mumkin. -OAuthSetupForLogin=OAuth belgisini yaratish uchun sahifa +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Oldingi yorliqni ko'ring +OAuthProvider=OAuth provider OAuthIDSecret=OAuth identifikatori va maxfiy TOKEN_REFRESH=Tokenni yangilash sovg'asi TOKEN_EXPIRED=Jeton muddati tugagan @@ -23,10 +24,13 @@ TOKEN_DELETE=Saqlangan belgini o'chirish OAUTH_GOOGLE_NAME=OAuth Google xizmati OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=OAuth hisob maʼlumotlarini yaratish uchun bu sahifaga oʻting , soʻng “Hisob maʼlumotlari”. OAUTH_GITHUB_NAME=OAuth GitHub xizmati OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=OAuth hisob maʼlumotlarini yaratish uchun bu sahifaga oʻting , soʻng “Yangi ilovani roʻyxatdan oʻtkazing”. +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe testi OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/uz_UZ/products.lang b/htdocs/langs/uz_UZ/products.lang index d2ae38bce36..4d7461949f5 100644 --- a/htdocs/langs/uz_UZ/products.lang +++ b/htdocs/langs/uz_UZ/products.lang @@ -262,7 +262,7 @@ Quarter1=1-chi. Chorak Quarter2=2-chi. Chorak Quarter3=3-chi. Chorak Quarter4=4-chi. Chorak -BarCodePrintsheet=Shtrixli kodni chop eting +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Ushbu vosita yordamida siz shtrix-stiker varaqlarini chop etishingiz mumkin. Stiker sahifangizning formatini, shtrix-kod turini va shtrix-kodning qiymatini tanlang, so'ng %s tugmachasini bosing. NumberOfStickers=Sahifada chop etiladigan stikerlar soni PrintsheetForOneBarCode=Bitta shtrix-kod uchun bir nechta stikerlarni chop eting @@ -345,7 +345,7 @@ PossibleValues=Mumkin bo'lgan qiymatlar GoOnMenuToCreateVairants=Atribut variantlarini tayyorlash uchun (ranglar, o'lchamlar, ... kabi) %s - %s menyusiga o'ting. UseProductFournDesc=Xaridorlar tavsifiga qo'shimcha ravishda sotuvchilar tomonidan aniqlangan mahsulot tavsifini (har bir sotuvchi ma'lumotnomasi uchun) belgilash xususiyatini qo'shing. ProductSupplierDescription=Mahsulot uchun sotuvchining tavsifi -UseProductSupplierPackaging=Paketni etkazib beruvchilar narxlarida ishlating (etkazib beruvchilar hujjatlaridagi qatorni qo'shish / yangilashda etkazib beruvchining narxida belgilangan qadoqlarga muvofiq miqdorlarni qayta hisoblang) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Paket PackagingForThisProductDesc=Siz avtomatik ravishda ushbu miqdorning bir nechtasini sotib olasiz. QtyRecalculatedWithPackaging=Chiziq miqdori etkazib beruvchilarning qadoqlariga muvofiq qayta hisoblab chiqilgan @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Aksiya faqat mahsulotning variantida mavjud ProductsPricePerCustomer=Xaridorlar uchun mahsulot narxi ProductSupplierExtraFields=Qo'shimcha atributlar (etkazib beruvchilar narxi) DeleteLinkedProduct=Kombinatsiyaga bog'langan bolalar mahsulotini o'chirib tashlang -AmountUsedToUpdateWAP=O'rtacha o'rtacha narxni yangilash uchun ishlatiladigan miqdor +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=O'rtacha narx PMPValueShort=WAP mandatoryperiod=Majburiy davrlar @@ -416,6 +416,7 @@ ProductsMergeSuccess=Mahsulotlar birlashtirildi ErrorsProductsMerge=Mahsulotlarni birlashtirishdagi xatolar SwitchOnSaleStatus=Sotish holatini yoqing SwitchOnPurchaseStatus=Xarid holatini yoqing +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Qo'shimcha maydonlar (birja harakati) InventoryExtraFields= Qo'shimcha maydonlar (inventarizatsiya) ScanOrTypeOrCopyPasteYourBarCodes=Shtrix-kodlaringizni skanerlang yoki yozing yoki nusxalash/joylashtirish @@ -427,3 +428,4 @@ RealValuation=Haqiqiy baholash ConfirmEditExtrafield = O'zgartirmoqchi bo'lgan qo'shimcha maydonni tanlang ConfirmEditExtrafieldQuestion = Haqiqatan ham bu qoʻshimcha maydonni oʻzgartirmoqchimisiz? ModifyValueExtrafields = Qo'shimcha maydonning qiymatini o'zgartirish +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/uz_UZ/projects.lang b/htdocs/langs/uz_UZ/projects.lang index fa107d10da2..ea23af2c8cd 100644 --- a/htdocs/langs/uz_UZ/projects.lang +++ b/htdocs/langs/uz_UZ/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Ushbu ko'rinish sizga o'qishga ruxsat berilgan barcha loyihalar TasksDesc=Ushbu ko'rinish barcha loyihalar va vazifalarni taqdim etadi (foydalanuvchi ruxsatlari sizga hamma narsani ko'rishga ruxsat beradi). AllTaskVisibleButEditIfYouAreAssigned=Malakali loyihalar uchun barcha vazifalar ko'rinib turadi, ammo siz faqat tanlangan foydalanuvchiga berilgan topshiriq uchun vaqt kiritishingiz mumkin. Agar unga vaqt kiritishingiz kerak bo'lsa, vazifani tayinlang. OnlyYourTaskAreVisible=Faqat sizga yuklangan vazifalar ko'rinadi. Agar topshiriq bo'yicha vaqtni kiritishingiz kerak bo'lsa va agar bu erda vazifa ko'rinmasa, unda siz o'zingiz uchun vazifani tayinlashingiz kerak. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Loyihalarning vazifalari ProjectCategories=Loyiha teglari / toifalari NewProject=Yangi loyiha @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Status bo'yicha ochiq loyihalarning etakchi OpportunitiesStatusForProjects=Loyihalar miqdori bo'yicha maqomi bo'yicha etakchilik qiladi ShowProject=Loyihani namoyish etish ShowTask=Vazifani ko'rsatish +SetThirdParty=Set third party SetProject=Loyihani o'rnating +OutOfProject=Out of project NoProject=Hech qanday loyiha aniqlanmagan yoki tegishli emas NbOfProjects=Loyihalar soni NbOfTasks=Vazifalar soni @@ -122,7 +125,8 @@ ValidateProject=Proyektorni tasdiqlang ConfirmValidateProject=Ushbu loyihani tasdiqlamoqchimisiz? CloseAProject=Loyihani yoping ConfirmCloseAProject=Ushbu loyihani yopmoqchi ekanligingizga aminmisiz? -AlsoCloseAProject=Loyihani yoping (agar siz hali ham ishlab chiqarish vazifalarini bajarishingiz kerak bo'lsa, uni ochiq holda saqlang) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Ochiq loyiha ConfirmReOpenAProject=Ushbu loyihani qayta ochishni xohlaysizmi? ProjectContact=Loyiha aloqalari @@ -165,7 +169,7 @@ OpportunityProbability=Qo'rg'oshin ehtimoli OpportunityProbabilityShort=Qo'rg'oshin probab. OpportunityAmount=Qo'rg'oshin miqdori OpportunityAmountShort=Qo'rg'oshin miqdori -OpportunityWeightedAmount=Imkoniyatni hisobga olgan holda miqdori +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Opp. tortilgan miqdor OpportunityAmountAverageShort=O'rtacha qo'rg'oshin miqdori OpportunityAmountWeigthedShort=Qo'rg'oshin miqdori @@ -238,7 +242,7 @@ OppStatusPENDING=Kutilmoqda OppStatusWON=Yutuq OppStatusLOST=Yo'qotilgan Budget=Byudjet -AllowToLinkFromOtherCompany=Loyihani boshqa kompaniyadan bog'lashga ruxsat bering

    Qo'llab-quvvatlanadigan qiymatlar:
    - Bo'sh tuting: kompaniyaning istalgan loyihasini bog'lashi mumkin (default) a0342fccfdab " vergul bilan ajratilgan uchinchi tomon identifikatorlari: ushbu uchinchi tomonlarning barcha loyihalarini bog'lashi mumkin (Masalan: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Oxirgi %s loyihalari LatestModifiedProjects=Oxirgi %s o'zgartirilgan loyihalar OtherFilteredTasks=Boshqa filtrlangan vazifalar @@ -259,7 +263,7 @@ TimeSpentInvoiced=Hisob-kitob qilingan vaqt TimeSpentForIntervention=O'tkazilgan vaqt TimeSpentForInvoice=O'tkazilgan vaqt OneLinePerUser=Har bir foydalanuvchi uchun bitta qator -ServiceToUseOnLines=Qatorlarda foydalanish uchun xizmat +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=%s hisob-fakturasi loyihaga sarf qilingan vaqtdan boshlab tuzildi InterventionGeneratedFromTimeSpent=%s aralashuvi loyihaga sarflangan vaqtdan kelib chiqqan ProjectBillTimeDescription=Loyiha vazifalari bo'yicha ish jadvalini kiritganingizni tekshiring va loyiha buyurtmachisiga hisob-kitob qilish uchun hisob varag'idan hisob-kitob (lar) yaratishni rejalashtiryapsiz (kiritilgan ish jadvallariga asoslanmagan hisob-faktura yaratishni rejalashtirayotganingizni tekshirmang). Izoh: Hisob-fakturani yaratish uchun loyihaning "sarflangan vaqt" yorlig'iga o'ting va qo'shiladigan qatorlarni tanlang. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Foyda yordamida hisoblanadi AddPersonToTask=Vazifalarga qo'shimcha ravishda qo'shing UsageOrganizeEvent=Foydalanish: tadbirlarni tashkil etish PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Barcha vazifalar bajarilgandan so'ng loyihani yopiq deb tasniflang (100%% taraqqiyoti) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Izoh: 100%% da barcha vazifalar mavjud loyihalar ta'sir qilmaydi: ularni qo'lda yopishingiz kerak bo'ladi. Ushbu parametr faqat ochiq loyihalarga ta'sir qiladi. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Hisob-kitob qilinmagan sarflangan vaqtni tanlang, so'ngra hisob-kitob qilish uchun "Hisob-fakturani yaratish" ommaviy harakati ProjectTasksWithoutTimeSpent=Vaqt sarflamasdan loyiha vazifalari FormForNewLeadDesc=Biz bilan bog'lanish uchun quyidagi shaklni to'ldirganingiz uchun tashakkur. Shuningdek, bizga to'g'ridan-to'g'ri %s elektron pochta xabarini yuborishingiz mumkin. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Aloqa uchun umumiy shaklni yoqing NewLeadbyWeb=Sizning xabaringiz yoki so'rovingiz yozib olindi. Tez orada javob beramiz yoki siz bilan bog'lanamiz. NewLeadForm=Yangi aloqa shakli LeadFromPublicForm=Ommaviy shakldan onlayn rahbar +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/uz_UZ/propal.lang b/htdocs/langs/uz_UZ/propal.lang index ba04616e36d..98c7577d27f 100644 --- a/htdocs/langs/uz_UZ/propal.lang +++ b/htdocs/langs/uz_UZ/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Mavjudligini kechiktirish SetAvailability=Mavjudligini kechiktirishni o'rnating AfterOrder=buyurtmadan keyin OtherProposals=Boshqa takliflar + ##### Availability ##### AvailabilityTypeAV_NOW=Darhol AvailabilityTypeAV_1W=1 hafta AvailabilityTypeAV_2W=2 hafta AvailabilityTypeAV_3W=3 hafta AvailabilityTypeAV_1M=1 oy -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Vakilning keyingi taklifi TypeContact_propal_external_BILLING=Mijozlarning hisob-fakturasi bilan aloqa qilish TypeContact_propal_external_CUSTOMER=Keyingi taklif bilan mijozlar bilan bog'lanish TypeContact_propal_external_SHIPPING=Yetkazib berish uchun mijozlar bilan bog'lanish + # Document models -DocModelAzurDescription=Taklifning to'liq modeli (Cyan shablonining eski tatbiqi) -DocModelCyanDescription=To'liq taklif modeli -DefaultModelPropalCreate=Standart model yaratish -DefaultModelPropalToBill=Tijorat taklifini yopish paytida standart shablon (hisob-faktura) -DefaultModelPropalClosed=Tijorat taklifini yopish paytida standart shablon (taqdim etilmagan) -ProposalCustomerSignature=Yozma qabul, kompaniya muhri, sanasi va imzosi -ProposalsStatisticsSuppliers=Sotuvchi takliflari statistikasi -CaseFollowedBy=Keyingi ish -SignedOnly=Faqat imzolangan -NoSign=Imzolanmagan toʻplam -NoSigned=imzolanmagan to'plam CantBeNoSign=o'rnatib bo'lmaydi, imzolanmagan +CaseFollowedBy=Keyingi ish ConfirmMassNoSignature=Ommaviy imzolanmagan tasdiq ConfirmMassNoSignatureQuestion=Tanlangan yozuvlarni imzolanmagan holda o'rnatmoqchimisiz? -IsNotADraft=qoralama emas -PassedInOpenStatus=tasdiqlangan -Sign=Imzo -Signed=imzolangan -ConfirmMassValidation=Ommaviy tasdiqlash tasdiqlanishi ConfirmMassSignature=Ommaviy imzoni tasdiqlash -ConfirmMassValidationQuestion=Haqiqatan ham tanlangan yozuvlarni tasdiqlamoqchimisiz? ConfirmMassSignatureQuestion=Tanlangan yozuvlarni imzolashni xohlaysizmi? -IdProposal=Taklif identifikatori +ConfirmMassValidation=Ommaviy tasdiqlash tasdiqlanishi +ConfirmMassValidationQuestion=Haqiqatan ham tanlangan yozuvlarni tasdiqlamoqchimisiz? +ConfirmRefusePropal=Haqiqatan ham bu tijorat taklifini rad qilmoqchimisiz? +ContractSigned=Contract signed +DefaultModelPropalClosed=Tijorat taklifini yopish paytida standart shablon (taqdim etilmagan) +DefaultModelPropalCreate=Standart model yaratish +DefaultModelPropalToBill=Tijorat taklifini yopish paytida standart shablon (hisob-faktura) +DocModelAzurDescription=Taklifning to'liq modeli (Cyan shablonining eski tatbiqi) +DocModelCyanDescription=To'liq taklif modeli +FichinterSigned=Intervention signed IdProduct=Mahsulot identifikatori +IdProposal=Taklif identifikatori +IsNotADraft=qoralama emas LineBuyPriceHT=Sotib olish narxlari qatori uchun soliqni olib tashlagan holda -SignPropal=Taklifni qabul qiling +NoSign=Refuse +NoSigned=imzolanmagan to'plam +PassedInOpenStatus=tasdiqlangan +PropalAlreadyRefused=Taklif allaqachon rad etilgan +PropalAlreadySigned=Taklif allaqachon qabul qilingan +PropalRefused=Taklif rad etildi +PropalSigned=Taklif qabul qilindi +ProposalCustomerSignature=Yozma qabul, kompaniya muhri, sanasi va imzosi +ProposalsStatisticsSuppliers=Sotuvchi takliflari statistikasi RefusePropal=Taklifni rad etish Sign=Imzo -NoSign=Imzolanmagan toʻplam -PropalAlreadySigned=Taklif allaqachon qabul qilingan -PropalAlreadyRefused=Taklif allaqachon rad etilgan -PropalSigned=Taklif qabul qilindi -PropalRefused=Taklif rad etildi -ConfirmRefusePropal=Haqiqatan ham bu tijorat taklifini rad qilmoqchimisiz? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Taklifni qabul qiling +Signed=imzolangan +SignedOnly=Faqat imzolangan diff --git a/htdocs/langs/uz_UZ/recruitment.lang b/htdocs/langs/uz_UZ/recruitment.lang index 8f30a60f515..7aecf47dee4 100644 --- a/htdocs/langs/uz_UZ/recruitment.lang +++ b/htdocs/langs/uz_UZ/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Elektron pochta orqali yollovchi ToUseAGenericEmail=Umumiy elektron pochtadan foydalanish uchun. Agar aniqlanmagan bo'lsa, ishga qabul qilish uchun mas'ul bo'lgan elektron pochtadan foydalaniladi NewCandidature=Yangi dastur ListOfCandidatures=Arizalar ro'yxati -RequestedRemuneration=Talab qilingan to'lov -ProposedRemuneration=Taklif qilingan ish haqi +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Shartnoma taklif qilingan ContractSigned=Shartnoma imzolandi ContractRefused=Shartnoma rad etildi RecruitmentCandidature=Ilova JobPositions=Ish joylari RecruitmentCandidatures=Ilovalar -InterviewToDo=Intervyu qilish kerak +InterviewToDo=Contacts to follow AnswerCandidature=Ariza javobi YourCandidature=Sizning arizangiz YourCandidatureAnswerMessage=Arizangiz uchun tashakkur.
    ... diff --git a/htdocs/langs/uz_UZ/salaries.lang b/htdocs/langs/uz_UZ/salaries.lang index ad81408709a..1d2aba1d51f 100644 --- a/htdocs/langs/uz_UZ/salaries.lang +++ b/htdocs/langs/uz_UZ/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Foydalanuvchi uchinchi shaxslar uchun foydalaniladigan buxgalteriya hisobi -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Foydalanuvchi kartasida belgilangan buxgalteriya hisobi faqat Subledger buxgalteriyasi uchun ishlatiladi. Ushbu foydalanuvchi Bosh daftar uchun va Subledger buxgalteriyasining standart qiymati sifatida foydalanuvchida maxsus foydalanuvchi hisob qaydnomasi aniqlanmagan taqdirda foydalaniladi. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Ish haqi to'lovlari bo'yicha sukut bo'yicha buxgalteriya hisobi CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Odatiy bo'lib, Ish haqini yaratishda "Umumiy to'lovni avtomatik ravishda yaratish" parametrini bo'sh qoldiring Salary=Ish haqi diff --git a/htdocs/langs/uz_UZ/stocks.lang b/htdocs/langs/uz_UZ/stocks.lang index 096624a7703..d39a3e63572 100644 --- a/htdocs/langs/uz_UZ/stocks.lang +++ b/htdocs/langs/uz_UZ/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Kelajakdagi sana StocksByLotSerial=Qurilma / seriya bo'yicha aktsiyalar LotSerial=Ko'p / seriyalar LotSerialList=Lot / seriyalar ro'yxati +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Harakatlar ErrorWarehouseRefRequired=Omborga mos yozuvlar nomi talab qilinadi ListOfWarehouses=Omborlar ro'yxati @@ -48,7 +49,7 @@ StockCorrection=Qimmatli qog'ozlarni tuzatish CorrectStock=To'g'ri aktsiyalar StockTransfer=Qimmatli qog'ozlarni o'tkazish TransferStock=O'tkazma zaxiralari -MassStockTransferShort=Ommaviy aktsiyalarni o'tkazish +MassStockTransferShort=Bulk stock change StockMovement=Birja harakati StockMovements=Birja harakatlari NumberOfUnit=Birlik soni @@ -146,8 +147,9 @@ Replenishments=To'ldirish NbOfProductBeforePeriod=%s mahsulotining tanlangan muddatgacha zaxiradagi miqdori (<%s) NbOfProductAfterPeriod=Tanlangan davrdan keyin zaxiradagi %s mahsulotining miqdori (> %s) MassMovement=Ommaviy harakat -SelectProductInAndOutWareHouse=Manba omborini va maqsadli omborni, mahsulotni va miqdorni tanlang, so'ng "%s" tugmasini bosing. Bu barcha kerakli harakatlar uchun bajarilgandan so'ng, "%s" tugmasini bosing. +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Yozuvni o'tkazish +RecordMovements=Record stock movements ReceivingForSameOrder=Ushbu buyurtma uchun kvitansiyalar StockMovementRecorded=Qimmatli qog'ozlar harakati qayd etildi RuleForStockAvailability=Qimmatli qog'ozlarga talablar bo'yicha qoidalar @@ -234,7 +236,7 @@ StockIncrease=Qimmatli qog'ozlarning ko'payishi StockDecrease=Qimmatli qog'ozlar kamayadi InventoryForASpecificWarehouse=Muayyan ombor uchun inventarizatsiya InventoryForASpecificProduct=Muayyan mahsulot uchun inventarizatsiya -StockIsRequiredToChooseWhichLotToUse=Qaysi lotdan foydalanishni tanlash uchun stok talab qilinadi +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Majburlash AlwaysShowFullArbo=Qalqib chiqadigan omborxonada to'liq ombor daraxtini ko'rsating (Ogohlantirish: Bu ko'rsatkichlar keskin pasayishi mumkin) StockAtDatePastDesc=Siz bu erda o'tmishda berilgan sanada aktsiyalarni (haqiqiy aktsiyalar) ko'rishingiz mumkin @@ -265,10 +267,53 @@ ProductBarcodeDoesNotExist=Shtrixli mahsulot mavjud emas WarehouseId=Ombor identifikatori WarehouseRef=Ombor Ref SaveQtyFirst=Qimmatli qog'ozlar harakati yaratilishini so'rashdan oldin, birinchi navbatda, haqiqiy inventarizatsiya miqdorini saqlang. +ToStart=Start InventoryStartedShort=Boshlandi ErrorOnElementsInventory=Operatsiya quyidagi sabablarga ko'ra bekor qilindi: ErrorCantFindCodeInInventory=Inventarda quyidagi kod topilmadi QtyWasAddedToTheScannedBarcode=Muvaffaqiyat!! Miqdor barcha so'ralgan shtrix-kodga qo'shildi. Skaner vositasini yopishingiz mumkin. -StockChangeDisabled=Birjadagi o'zgarishlar o'chirilgan +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=Terminal uchun ombor aniqlanmagan ClearQtys=Barcha miqdorlarni tozalang +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/uz_UZ/ticket.lang b/htdocs/langs/uz_UZ/ticket.lang index fcaa5fb7738..f3539ed954a 100644 --- a/htdocs/langs/uz_UZ/ticket.lang +++ b/htdocs/langs/uz_UZ/ticket.lang @@ -90,8 +90,8 @@ TicketPublicAccess=Identifikatsiyani talab qilmaydigan umumiy interfeys quyidagi TicketSetupDictionaries=Chipta turi, jiddiyligi va analitik kodlari lug'atlarda sozlanishi mumkin TicketParamModule=Modulning o'zgaruvchini sozlash TicketParamMail=Elektron pochtani sozlash -TicketEmailNotificationFrom=Chipta javoblari uchun e-mail yuboruvchi -TicketEmailNotificationFromHelp=Dolibarrdan yuborilgan chipta javoblari uchun yuboruvchi elektron pochta +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Chipta yaratilishi haqida ushbu elektron pochta manziliga xabar bering TicketEmailNotificationToHelp=Agar mavjud bo'lsa, ushbu elektron pochta manziliga chipta yaratilishi haqida xabar beriladi TicketNewEmailBodyLabel=Chipta yaratilgandan so'ng yuborilgan matnli xabar diff --git a/htdocs/langs/uz_UZ/users.lang b/htdocs/langs/uz_UZ/users.lang index 01bd6042b6b..c4de2d64306 100644 --- a/htdocs/langs/uz_UZ/users.lang +++ b/htdocs/langs/uz_UZ/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Guruhdan olib tashlash PasswordChangedAndSentTo=Parol o'zgartirildi va %s raqamiga yuborildi. PasswordChangeRequest= %s uchun parolni o'zgartirish haqida so'rov PasswordChangeRequestSent= %s uchun %s uchun parolni o'zgartirish uchun so'rov. -IfLoginExistPasswordRequestSent=Agar ushbu kirish to'g'ri hisob bo'lsa, parolni tiklash uchun elektron pochta xabarini yuborgan. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Agar ushbu elektron pochta manzili haqiqiy hisob bo'lsa, parolni tiklash uchun elektron pochta xabarlari yuborilgan. ConfirmPasswordReset=Parolni tiklashni tasdiqlang MenuUsersAndGroups=Foydalanuvchilar va guruhlar @@ -68,7 +68,6 @@ CreateDolibarrLogin=Foydalanuvchini yarating CreateDolibarrThirdParty=Uchinchi tomonni yarating LoginAccountDisableInDolibarr=Dolibarr-da hisob o'chirilgan. UsePersonalValue=Shaxsiy qiymatdan foydalaning -InternalUser=Ichki foydalanuvchi ExportDataset_user_1=Foydalanuvchilar va ularning xususiyatlari DomainUser=Domen foydalanuvchisi %s Reactivate=Qayta faollashtiring @@ -128,3 +127,5 @@ DateLastLogin=Oxirgi kirish sanasi DatePreviousLogin=Oldingi kirish sanasi IPLastLogin=IP oxirgi kirish IPPreviousLogin=IP oldingi kirish +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/uz_UZ/website.lang b/htdocs/langs/uz_UZ/website.lang index d3a85d25032..8fa0e0554fa 100644 --- a/htdocs/langs/uz_UZ/website.lang +++ b/htdocs/langs/uz_UZ/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kod +WebsiteName=Name of the website WebsiteSetupDesc=Bu erda siz foydalanmoqchi bo'lgan veb-saytlarni yarating. Keyin ularni tahrirlash uchun veb-saytlar menyusiga o'ting. DeleteWebsite=Veb-saytni o'chirish ConfirmDeleteWebsite=Ushbu veb-saytni o'chirishni xohlaysizmi? Uning barcha sahifalari va tarkibi ham o'chiriladi. Yuklangan fayllar (masalan, Medlar katalogiga, ECM moduliga, ...) qoladi. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=HTML sarlavhasi ostidagi qo'shimchalar (barcha sahifalar uch WEBSITE_ROBOT=Robot fayli (robots.txt) WEBSITE_HTACCESS=Veb-sayt .htaccess fayli WEBSITE_MANIFEST_JSON=Veb-sayt manifest.json fayli -WEBSITE_README=README.md fayli WEBSITE_KEYWORDSDesc=Qiymatlarni ajratish uchun verguldan foydalaning -EnterHereLicenseInformation=README.md faylini to'ldirish uchun bu erga meta ma'lumotlar yoki litsenziya ma'lumotlarini kiriting. agar siz veb-saytingizni shablon sifatida tarqatsangiz, fayl vasvasaga solingan paketga kiritiladi. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML sarlavhasi (faqat ushbu sahifaga xos) PageNameAliasHelp=Sahifaning nomi yoki taxallusi.
    Ushbu taxallus, shuningdek veb-serverning Virtual xostidan (Apacke, Nginx, ... kabi) veb-sayt ishga tushirilganda, SEO URL-ni yaratish uchun ishlatiladi. Ushbu taxallusni tahrirlash uchun " %s " tugmachasidan foydalaning. EditTheWebSiteForACommonHeader=Izoh: Agar siz barcha sahifalar uchun moslashtirilgan sarlavhani belgilamoqchi bo'lsangiz, sarlavhani sahifa / konteyner o'rniga sayt darajasida tahrirlang. @@ -42,6 +43,8 @@ ViewPageInNewTab=Sahifani yangi varaqda ko'rish SetAsHomePage=Uy sahifasi sifatida o'rnating RealURL=Haqiqiy URL ViewWebsiteInProduction=Uy manzillaridan foydalangan holda veb-saytni ko'ring +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Apache/NGinx/bilan ishlatish ...
    Veb -serveringizda (Apache, Nginx, ...) PHP yoqilgan maxsus Virtual Xost PHP bilan va Root direktoriyada
    %s ExampleToUseInApacheVirtualHostConfig=Apache virtual xostini o'rnatishda foydalanish uchun misol: YouCanAlsoTestWithPHPS= Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s sahifa / lar / qayta tiklangan konteyner (lar) RegenerateWebsiteContent=Veb-sayt kesh fayllarini qayta yarating AllowedInFrames=Kadrlarda ruxsat berilgan DefineListOfAltLanguagesInWebsiteProperties=Barcha mavjud tillarning ro'yxatini veb-sayt xususiyatlariga aniqlang. -GenerateSitemaps=Veb-sayt sayt xaritasi faylini yarating +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Agar siz tasdiqlasangiz, mavjud sayt xaritasi faylini o'chirib tashlaysiz ... ConfirmSitemapsCreation=Sayt xaritasini yaratishni tasdiqlang SitemapGenerated=Sayt xaritasi fayli %s @@ -145,3 +148,10 @@ ImportFavicon=Favikon ErrorFaviconType=Favicon png bo'lishi kerak ErrorFaviconSize=Favikon hajmi 16x16, 32x32 yoki 64x64 bo'lishi kerak FaviconTooltip=Png (16x16, 32x32 yoki 64x64) bo'lishi kerak bo'lgan rasmni yuklang +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/uz_UZ/withdrawals.lang b/htdocs/langs/uz_UZ/withdrawals.lang index f5aa317dc7f..d0ef81a5817 100644 --- a/htdocs/langs/uz_UZ/withdrawals.lang +++ b/htdocs/langs/uz_UZ/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Kredit o'tkazilishini kutayotgan hisob-faktu AmountToWithdraw=Chiqish uchun mablag ' AmountToTransfer=O'tkazish uchun miqdor NoInvoiceToWithdraw="%s" uchun hech qanday hisob-faktura kutilmaydi. So'rov yuborish uchun faktura kartasidagi '%s' yorlig'iga o'ting. -NoSupplierInvoiceToWithdraw="To'g'ridan-to'g'ri kredit so'rovlari" bo'lgan etkazib beruvchilarning hech qanday schyoti kutilmaydi. So'rov yuborish uchun faktura kartasidagi '%s' yorlig'iga o'ting. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Foydalanuvchi uchun javobgar WithdrawalsSetup=To'g'ridan-to'g'ri debet to'lovini sozlash CreditTransferSetup=Kredit o'tkazmalarini sozlash @@ -42,6 +42,7 @@ CreditTransferStatistics=Kredit o'tkazmalari statistikasi Rejects=Rad etadi LastWithdrawalReceipt=Oxirgi %s to'g'ridan-to'g'ri debet tushumlari MakeWithdrawRequest=To'g'ridan-to'g'ri debetni to'lash to'g'risida so'rov yuboring +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Kredit o'tkazish to'g'risida so'rov yuboring WithdrawRequestsDone=%s to'g'ridan-to'g'ri debet to'lovi bo'yicha so'rovlar yozib olindi BankTransferRequestsDone=%s kredit o'tkazish bo'yicha so'rovlar yozib olindi @@ -100,8 +101,11 @@ CreditDate=Kredit bo'yicha WithdrawalFileNotCapable=%s mamlakatingiz uchun pul olish kvitansiyasini yaratib bo'lmadi (Sizning mamlakatingiz qo'llab-quvvatlanmaydi) ShowWithdraw=To'g'ridan-to'g'ri debet buyurtmasini ko'rsatish IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Biroq, agar hisob-fakturada hali kamida bitta to'g'ridan-to'g'ri debet to'lovi buyurtmasi qayta ishlanmagan bo'lsa, uni oldindan olib qo'yishni boshqarish uchun to'lov sifatida o'rnatilmaydi. -DoStandingOrdersBeforePayments=Ushbu yorliq to'g'ridan-to'g'ri debet to'lovi buyurtmasini talab qilishga imkon beradi. Amalga oshirilgandan so'ng to'g'ridan-to'g'ri debet buyurtmasini yaratish va boshqarish uchun Bank-> To'g'ridan-to'g'ri debet orqali to'lov menyusiga o'ting. To'g'ridan-to'g'ri debet buyurtmasi yopilganda, hisob-fakturalar bo'yicha to'lov avtomatik ravishda qayd etiladi va qolgan to'lovlar bekor qilingan taqdirda hisob-kitoblar yopiladi. -DoCreditTransferBeforePayments=Ushbu yorliq sizga kredit o'tkazish tartibini so'rashga imkon beradi. Amalga oshirilgandan so'ng, kredit o'tkazish tartibini yaratish va boshqarish uchun Bank-> Kredit o'tkazmasi orqali to'lov menyusiga o'ting. Kredit o'tkazish bo'yicha buyurtma yopilganda, hisob-fakturalar bo'yicha to'lov avtomatik ravishda qayd etiladi va qolgan to'lovlar bekor qilingan taqdirda hisob-kitoblar yopiladi. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Debet buyurtma fayli CreditTransferFile=Kredit o'tkazish fayli SetToStatusSent="Fayl yuborildi" holatiga o'rnating @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Bo'sh miqdor uchun to'g'ridan-to'g'ri debet so'rov SepaMandate=SEPA to'g'ridan-to'g'ri debet mandati SepaMandateShort=SEPA mandati PleaseReturnMandate=Iltimos, ushbu mandat shaklini elektron pochta orqali %s raqamiga yoki pochta orqali qaytaring -SEPALegalText=Ushbu mandat shaklini imzolash orqali siz (A) %s kompaniyasiga %s ko‘rsatmalariga muvofiq hisobingizni debet qilish bo‘yicha bankingizga ko‘rsatmalar yuborishga va (B) bankingizga hisobingizni debet qilishga ruxsat berasiz. Huquqlaringizning bir qismi sifatida siz bankingiz bilan tuzilgan shartnoma shartlariga muvofiq bankingizdan pulingizni qaytarib olish huquqiga egasiz. Yuqoridagi mandatga oid huquqlaringiz bankingizdan olishingiz mumkin bo'lgan bayonotda tushuntirilgan. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Kreditor identifikatori CreditorName=Kreditor nomi SEPAFillForm=(B) * belgilangan barcha maydonlarni to'ldiring. diff --git a/htdocs/langs/uz_UZ/workflow.lang b/htdocs/langs/uz_UZ/workflow.lang index 0062bc2a2ad..dd4d1430c94 100644 --- a/htdocs/langs/uz_UZ/workflow.lang +++ b/htdocs/langs/uz_UZ/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Sotib oluvchi hisob-f descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Bog'langan manba sotib olish buyurtmasini qabul qilish tasdiqlanganda olingan deb tasniflang (va barcha qabullar tomonidan qabul qilingan miqdor yangilash uchun xarid buyurtmasi bilan bir xil bo'lsa) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Bog'langan manba buyurtmasini qabulxona yopilganda olingan deb tasniflang (va barcha qabulxonalar tomonidan qabul qilingan miqdor yangilash uchun xarid buyurtmasidagi bilan bir xil bo'lsa) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Bog'langan etkazib beruvchining buyurtmasi tasdiqlanganda qabullarni "hisob-kitob" ga tasniflang +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Chipta yaratishda, mos keladigan uchinchi tomonning mavjud shartnomalarini bog'lang descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Shartnomalarni ulashda, ota-onalar kompaniyalari orasidan qidiring @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Chipta yopilganda chipta bilan bog'liq ba AutomaticCreation=Avtomatik yaratish AutomaticClassification=Avtomatik tasnif # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Mijozlarning hisob-fakturasi tasdiqlanganda bog'langan manbalarni etkazib berishni yopiq deb tasniflang +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Avtomatik yopish AutomaticLinking=Avtomatik ulanish diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index 8aad217d4bd..08fafdcd27f 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Các nước không thuộc EEC CountriesInEECExceptMe=Các quốc gia trong EEC ngoại trừ %s CountriesExceptMe=Tất cả các quốc gia trừ %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Tài khoản kế toán chính cho các nhà c MainAccountForUsersNotDefined=Tài khoản kế toán chính cho người dùng không được định nghĩa trong thiết lập MainAccountForVatPaymentNotDefined=Tài khoản kế toán chính cho thanh toán VAT không được định nghĩa trong thiết lập MainAccountForSubscriptionPaymentNotDefined=Tài khoản kế toán chính cho thanh toán thuê bao không được định nghĩa trong thiết lập +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Khu vực kế toán AccountancyAreaDescIntro=Việc sử dụng mô đun kế toán được thực hiện trong một số bước: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Vô hiệu hóa ghi trực tiếp giao dịch trong t ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Cho phép xuất dữ liệu bản nháp trong nhật ký ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Nhật ký bán hàng -ACCOUNTING_PURCHASE_JOURNAL=Nhật ký mua hàng -ACCOUNTING_MISCELLANEOUS_JOURNAL=Nhật ký khác +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Nhật ký báo cáo chi phí -ACCOUNTING_SOCIAL_JOURNAL=Nhật ký chi phí xã hội +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Có nhật ký mới +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Nhật ký chi phí xã hội ACCOUNTING_RESULT_PROFIT=Tài khoản kế toán kết quả kinh doanh (Lợi nhuận) ACCOUNTING_RESULT_LOSS=Tài khoản kế toán kết quả kinh doanh (Lỗ) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Nhật ký đóng -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Tài khoản kế toán chuyển khoản ngân hàng chuyển tiếp +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Tài khoản chuyển khoản ngân hàng chuyển tiếp -ACCOUNTING_ACCOUNT_SUSPENSE=Tài khoản kế toán chờ -DONATION_ACCOUNTINGACCOUNT=Tài khoản kế toán cho đăng ký quyên góp. -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Tài khoản kế toán để đăng ký tham gia +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Tài khoản kế toán theo mặc định cho các sản phẩm đã mua (được sử dụng nếu không được xác định trong bảng sản phẩm) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Tài khoản kế toán theo mặc định cho các sản phẩm đã mua trong EEC (được sử dụng nếu không được xác định trong bảng sản phẩm) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Tài khoản kế toán theo mặc định cho các sản phẩm đã mua và được nhập ra khỏi EEC (được sử dụng nếu không được xác định trong bảng sản phẩm) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Tài khoản kế toán theo mặc định cho các sản phẩm đã bán (được sử dụng nếu không được xác định trong bảng sản phẩm) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Tài khoản kế toán theo mặc định cho các sản phẩm được bán trong EEC (được sử dụng nếu không được xác định trong bảng sản phẩm) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Tài khoản kế toán theo mặc định cho các sản phẩm được bán và xuất ra khỏi EEC (được sử dụng nếu không được xác định trong bảng sản phẩm) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Tài khoản kế toán theo mặc định cho các dịch vụ đã mua (được sử dụng nếu không được xác định trong bảng dịch vụ) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Tài khoản kế toán theo mặc định cho các dịch vụ đã mua trong EEC (được sử dụng nếu không được xác định trong bảng dịch vụ) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Tài khoản kế toán theo mặc định cho các dịch vụ đã mua và được nhập ra khỏi EEC (được sử dụng nếu không được xác định trong bảng dịch vụ) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Tài khoản kế toán theo mặc định cho các dịch vụ đã bán (được sử dụng nếu không được xác định trong bảng dịch vụ) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Tài khoản kế toán theo mặc định cho các dịch vụ được bán trong EEC (được sử dụng nếu không được xác định trong bảng dịch vụ) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Tài khoản kế toán theo mặc định cho các dịch vụ được bán và xuất ra khỏi EEC (được sử dụng nếu không được xác định trong bảng dịch vụ) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Loại chứng từ Docdate=Ngày @@ -211,7 +217,7 @@ Codejournal=Nhật ký JournalLabel=Mã nhật ký NumPiece=Số lượng cái TransactionNumShort=Số Giao dịch -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=Bạn có thể định nghĩa ở đây một số nhóm tài khoản kế toán. Chúng sẽ được sử dụng cho các báo cáo kế toán đã cá nhân hóa. @@ -265,13 +271,13 @@ Reconcilable=Đối soát lại TotalVente=Tổng doanh thu trước thuế TotalMarge=Tổng lợi nhuận bán hàng -DescVentilCustomer=Tham khảo tại đây danh sách các dòng hóa đơn của khách hàng bị ràng buộc (hoặc không) với tài khoản kế toán sản phẩm -DescVentilMore=Trong hầu hết các trường hợp, nếu bạn sử dụng các sản phẩm hoặc dịch vụ được xác định trước và bạn đặt số tài khoản trên thẻ sản phẩm/ dịch vụ, ứng dụng sẽ có thể thực hiện tất cả các ràng buộc giữa các dòng hóa đơn và tài khoản kế toán của hệ thống tài khoản của bạn, chỉ trong một cú nhấp chuột với nút "%s" . Nếu tài khoản không được thiết lập trên thẻ sản phẩm/ dịch vụ hoặc nếu bạn vẫn còn một số dòng không bị ràng buộc với tài khoản, bạn sẽ phải thực hiện ràng buộc thủ công từ menu " %s ". -DescVentilDoneCustomer=Tham khảo tại đây danh sách các dòng hóa đơn của khách hàng và tài khoản kế toán sản phẩm của họ -DescVentilTodoCustomer=Ràng buộc dòng hóa đơn chưa được ràng buộc với tài khoản kế toán sản phẩm -ChangeAccount=Thay đổi tài khoản kế toán sản phẩm/ dịch vụ cho các dòng được chọn bằng tài khoản kế toán sau: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Tham khảo tại đây danh sách các dòng hóa đơn của nhà cung cấp bị ràng buộc hoặc chưa được ràng buộc với tài khoản kế toán sản phẩm (chỉ có bản ghi chưa được chuyển trong kế toán) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Tham khảo tại đây danh sách các dòng hóa đơn của nhà cung cấp và tài khoản kế toán của họ DescVentilTodoExpenseReport=Ràng buộc dòng báo cáo chi phí chưa được ràng buộc với tài khoản kế toán phí DescVentilExpenseReport=Tham khảo tại đây danh sách các dòng báo cáo chi phí ràng buộc (hoặc không) với tài khoản kế toán phí @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=Nếu bạn thiết lập tài khoản kế toán th DescVentilDoneExpenseReport=Tham khảo tại đây danh sách các dòng báo cáo chi phí và tài khoản kế toán phí của họ Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Bất kỳ sửa đổi hoặc xóa viết, chữ và xóa sẽ bị cấm. Tất cả các mục cho một thi hành phải được xác nhận nếu không việc đóng sẽ không thể thực hiện được ValidateHistory=Tự động ràng buộc AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Lỗi, bạn không thể xóa tài khoản kế toán này bởi vì nó được sử dụng +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Số dư FicheVentilation=Thẻ ràng buộc GeneralLedgerIsWritten=Giao dịch được ghi trong Sổ Cái GeneralLedgerSomeRecordWasNotRecorded=Một số giao dịch không thể được ghi nhật ký. Nếu không có thông báo lỗi khác, điều này có thể là do chúng đã được ghi nhật ký. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Danh sách các sản phẩm không ràng buộc với bất kỳ tài khoản kế toán +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Thay đổi ràng buộc Accounted=Tài khoản trên Sổ cái NotYetAccounted=Not yet transferred to accounting @@ -322,6 +328,7 @@ AccountingJournalType4=Ngân hàng AccountingJournalType5=Báo cáo chi phí AccountingJournalType8=Hàng tồn kho AccountingJournalType9=Có-mới +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Nhật ký này đã được sử dụng AccountingAccountForSalesTaxAreDefinedInto=Lưu ý: Tài khoản kế toán thuế VAT được xác định trong menu %s - %s NumberOfAccountancyEntries=Số lượng mục @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Số lượng kết chuyển ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Xuất dữ liệu bản nháp nhật ký @@ -398,7 +407,11 @@ Calculated=Tính toán Formula=Công thức ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Xác nhận xóa hàng loạt ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Ghi sổ kế toán @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Ngày xuất WarningReportNotReliable=Cảnh báo, báo cáo này không dựa trên Sổ Cái, do đó không chứa giao dịch được sửa đổi thủ công trong Sổ Cái. Nếu nhật ký của bạn được cập nhật, chế độ xem sổ sách chính xác hơn. ExpenseReportJournal=Nhật ký báo cáo chi phí -InventoryJournal=Nhật ký tồn kho NAccounts=%s accounts diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index a616b073dc8..dcc5d6937eb 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Đối chiếu máy khách WarningModuleNotActive=Module %s phải được mở WarningOnlyPermissionOfActivatedModules=Chỉ những quyền liên quan đến các module được kích hoạt mới được hiển thị tại đây. Bạn cần kích hoạt các module khác trong Nhà->Thiết lập->Trang Module. DolibarrSetup=Cài đặt hoặc nâng cấp Dolibarr -InternalUser=Người dùng bên trong -ExternalUser=Người dùng bên ngoài InternalUsers=Người dùng bên trong ExternalUsers=Người dùng bên ngoài UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Giá trị tiếp theo (thay thế) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Ghi chú: Không có giới hạn được chỉnh sửa trong phần chỉnh sửa PHP MaxSizeForUploadedFiles=Kích thước tối đa của tập tin được tải lên (0 sẽ tắt chế độ tải lên) -UseCaptchaCode=Sử dụng mã xác nhận (CAPTCHA) ở trang đăng nhập +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Đường dẫn đầy đủ để thi hành việc quét virus AntiVirusCommandExample=Ví dụ cho ClamAv Daemon (yêu cầu clamav-daemon): / usr / bin / clamdscan
    Example cho ClamWin (rất rất chậm): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Nhiều thông số trên dòng lệnh @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Máy chủ SMTP / SMTPS (giá trị mặc định trong ph MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Cổng SMTP / SMTPS (Không được xác định trong PHP trên các hệ thống tương tự Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Máy chủ SMTP / SMTPS (Không được xác định trong PHP trên các hệ thống tương tự Unix) MAIN_MAIL_EMAIL_FROM=Email người gửi cho email tự động (giá trị mặc định trong php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Email được sử dụng cho lỗi trả về email (các trường 'Lỗi-Đến' trong email đã gửi) MAIN_MAIL_AUTOCOPY_TO= Sao chép (Bcc) tất cả các email đã gửi đến MAIN_DISABLE_ALL_MAILS=Vô hiệu hóa tất cả gửi email (cho mục đích thử nghiệm hoặc bản demo) @@ -439,8 +438,10 @@ Unique=Unique Boolean=Boolean (một hộp kiểm) ExtrafieldPhone = Phone ExtrafieldPrice = Giá +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Lựa chọn danh sách ExtrafieldSelectList = Chọn từ bảng ExtrafieldSeparator=Dấu phân cách (không phải là một trường) @@ -477,7 +478,7 @@ InstalledInto=Đã cài đặt vào thư mục %s BarcodeInitForThirdparties=Khởi tạo mã vạch hàng loạt cho bên thứ ba BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Hiện tại, bạn có %s bản ghi %s %s không xác định được mã vạch -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Xóa tất cả các giá trị hiện tại của mã vạch ConfirmEraseAllCurrentBarCode=Bạn có chắc muốn xóa tất cả các giá trị mã vạch hiện tại? AllBarcodeReset=Tất cả giá trị mã vạch đã được loại bỏ @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Nếu nhà cung cấp dịch vụ email email của bạn cần hạn chế ứng dụng email khách đến một số địa chỉ IP (rất hiếm), thì đây là địa chỉ IP của tác nhân người dùng thư (MUA) cho ứng dụng ERP CRM của bạn: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Nhấn vào đây để hiển thị mô tả DependsOn=Mô-đun này cần (các) mô-đun RequiredBy=Mô-đun này được yêu cầu bởi (các) mô-đun @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Thí dụ:
    Đối với biểu mẫu đ PageUrlForDefaultValuesList=
    Thí dụ:
    Đối với trang liệt kê các bên thứ ba, đó là %s .
    Đối với URL của các mô-đun bên ngoài được cài đặt vào thư mục tùy chỉnh, không bao gồm "custom/", vì vậy hãy sử dụng một đường dẫn như mymodule/mypagelist.php và không tùy chỉnh /mymodule/mypagelist.php.
    Nếu bạn chỉ muốn giá trị mặc định nếu url có một số tham số, bạn có thể sử dụng %s AlsoDefaultValuesAreEffectiveForActionCreate=Cũng lưu ý rằng việc ghi đè các giá trị mặc định để tạo biểu mẫu chỉ hoạt động đối với các trang được thiết kế chính xác (vì vậy với tham số action = tạo hoặc đặt trước ...) EnableDefaultValues=Cho phép tùy chỉnh các giá trị mặc định -EnableOverwriteTranslation=Cho phép sử dụng bản dịch ghi đè +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Một bản dịch đã được tìm thấy cho khóa với mã này. Để thay đổi giá trị này, bạn phải chỉnh sửa nó từ Nhà - Thiết lập - Dịch. WarningSettingSortOrder=Cảnh báo, đặt thứ tự sắp xếp mặc định có thể dẫn đến lỗi kỹ thuật khi vào trang danh sách nếu trường là trường không xác định. Nếu bạn gặp lỗi như vậy, hãy quay lại trang này để xóa thứ tự sắp xếp mặc định và khôi phục hành vi mặc định. Field=Trường @@ -645,9 +647,9 @@ Module2400Name=Sự kiện / Chương trình nghị sự Module2400Desc=Theo dấu sự kiện. Đăng nhập các sự kiện tự động cho mục đích theo dõi hoặc ghi lại thủ công các sự kiện hoặc cuộc họp. Đây là mô-đun chính tốt cho Quản lý quan hệ khách hàng hoặc nhà cung cấp. Module2500Name=DMS / ECM Module2500Desc=Hệ thống quản lý tài liệu / Quản lý nội dung điện tử. Tự động tổ chức các tài liệu được tạo hoặc lưu trữ của bạn. Chia sẻ chúng khi bạn cần. -Module2600Name=API/dịch vụ Web (máy chủ SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Kích hoạt máy chủ Dolibarr SOAP cung cấp dịch vụ API -Module2610Name=API / dịch vụ Web (máy chủ REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Kích hoạt máy chủ Dolibarr REST cung cấp dịch vụ API Module2660Name=Gọi Dịch vụ Web (ứng dụng khách SOAP) Module2660Desc=Kích hoạt ứng dụng khách dịch vụ web Dolibarr (Có thể được sử dụng để đẩy dữ liệu/yêu cầu đến các máy chủ bên ngoài. Chỉ các đơn đặt hàng Mua hiện được hỗ trợ.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Thêm các tính năng để quản lý Incoterms Module63000Name=Tài nguyên Module63000Desc=Quản lý tài nguyên (máy in, ô tô, phòng, ...) để phân bổ cho các sự kiện +Module94160Name=Tiếp nhận Permission11=Xem hóa đơn khách hàng Permission12=Tạo/chỉnh sửa hóa đơn khách hàng Permission13=Invalidate customer invoices @@ -714,6 +717,7 @@ Permission27=Xóa đơn hàng đề xuất Permission28=Xuất dữ liệu đơn hàng đề xuất Permission31=Xem sản phẩm Permission32=Tạo/chỉnh sửa sản phẩm +Permission33=Read prices products Permission34=Xóa sản phẩm Permission36=Xem/quản lý sản phẩm ẩn Permission38=Xuất dữ liệu sản phẩm @@ -739,6 +743,7 @@ Permission79=Tạo/sửa đổi thuê bao Permission81=Xem đơn hàng khách hàng Permission82=Tạo/chỉnh sửa đơn hàng khách hàng Permission84=Xác nhận đơn hàng khách hàng +Permission85=Generate the documents sales orders Permission86=Gửi đơn hàng khách hàng Permission87=Đóng đơn hàng khách hàng Permission88=Hủy bỏ đơn hàng khách hàng @@ -840,9 +845,9 @@ Permission286=Xuất dữ liệu liên lạc Permission291=Xem thuế Permission292=Chỉnh phân quyền trên mức thuế Permission293=Sửa đổi biểu thuế của khách hàng -Permission300=Xem mã vạch -Permission301=Tạo / sửa đổi mã vạch -Permission302=Xóa mã vạch +Permission301=Generate PDF sheets of barcodes +Permission304=Tạo / sửa đổi mã vạch +Permission305=Xóa mã vạch Permission311=Xem dịch vụ Permission312=Chỉ định dịch vụ/thuê bao cho hợp đồng Permission331=Xem bookmark @@ -874,6 +879,7 @@ Permission525=Truy cập tính toán cho vay Permission527=Xuất dữ liệu cho vay Permission531=Xem dịch vụ Permission532=Tạo/chỉnh sửa dịch vụ +Permission533=Read prices services Permission534=Xóa dịch vụ Permission536=Xem/quản lý dịch vụ ẩn Permission538=Xuất dữ liệu Dịch vụ @@ -968,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Xem nội dung trang web Permission10002=Tạo / sửa đổi nội dung trang web (nội dung html và javascript) Permission10003=Tạo / sửa đổi nội dung trang web (mã php động). Cảnh báo, phải được hạn chế và dành riêng cho các nhà phát triển. @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Cài đặt đã lưu SetupNotSaved=Thiết lập không được lưu +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Quay lại danh sách Mô-đun BackToDictionaryList=Quay lại danh sách Từ điển TypeOfRevenueStamp=Loại tem thuế @@ -1129,7 +1140,7 @@ ValueOfConstantKey=Giá trị của hằng số ConstantIsOn=Option %s is on NbOfDays=Số ngày AtEndOfMonth=Vào cuối tháng -CurrentNext=Hiện tại / Tiếp theo +CurrentNext=A given day in month Offset=Offset AlwaysActive=Luôn hoạt động Upgrade=Nâng cấp @@ -1235,11 +1246,13 @@ BrowserName=Tên trình duyệt BrowserOS=Trình duyệt hệ điều hành ListOfSecurityEvents=Danh sách các sự kiện bảo mật Dolibarr SecurityEventsPurged=Sự kiện bảo mật được thanh lọc +TrackableSecurityEvents=Trackable security events LogEventDesc=Cho phép đăng nhập cho các sự kiện bảo mật cụ thể. Quản trị các nhật ký thông qua menu %s - %s . Cảnh báo, tính năng này có thể tạo ra một lượng lớn dữ liệu trong cơ sở dữ liệu. AreaForAdminOnly=Thông số cài đặt chỉ có thể được đặt bởi người dùng quản trị viên . SystemInfoDesc=Hệ thống thông tin là thông tin kỹ thuật linh tinh bạn nhận được trong chế độ chỉ đọc và có thể nhìn thấy chỉ cho quản trị viên. SystemAreaForAdminOnly=Khu vực này chỉ dành cho người dùng quản trị viên. Quyền người dùng Dolibarr không thể thay đổi hạn chế này. CompanyFundationDesc=Chỉnh sửa thông tin của công ty/tổ chức. Nhấp vào nút "%s" ở cuối trang. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Nếu bạn có một kế toán viên/ kế toán bên ngoài, bạn có thể chỉnh sửa thông tin ở đây. AccountantFileNumber=Mã kế toán DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=Chức năng SSL không có sẵn trong chương trình PHP DownloadMoreSkins=Nhiều giao diện để tải về SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1376,7 +1391,7 @@ GetBarCode=Nhận mã vạch NumberingModules=Kiểu thiết lập số DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Không có gợi ý tạo mật khẩu. Mật khẩu phải được nhập bằng tay. PasswordGenerationPerso=Trả lại mật khẩu theo định nghĩa cấu hình cá nhân của bạn. SetupPerso=Theo cấu hình của bạn @@ -1430,6 +1445,10 @@ SuppliersPayment=Thanh toán của nhà cung cấp SupplierPaymentSetup=Thiết lập thanh toán của nhà cung cấp InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Cài đặt module đơn hàng đề xuất ProposalsNumberingModules=Mô hình đánh số đơn hàng đề xuất @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=Watermark on dự thảo hợp đồng (none if em ##### Members ##### MembersSetup=Cài đặt module thành viên MemberMainOptions=Lựa chọn chính +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Quản lý một Đăng nhập cho mỗi thành viên AdherentMailRequired=Yêu cầu email để tạo thành viên mới MemberSendInformationByMailByDefault=Hộp kiểm để gửi thư xác nhận cho các thành viên (xác nhận hoặc đăng ký mới) là theo mặc định MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Khách truy cập có thể chọn từ các chế độ thanh toán có sẵn +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Cho phép nhắc nhở tự động qua email của các thuê bao đã hết hạn. Lưu ý: Mô-đun %s phải được bật và thiết lập chính xác để gửi lời nhắc. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=Kích hoạt trình soạn thảo nâng cao cho: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Công cụ->eMailing) FCKeditorForUserSignature=WYSIWIG tạo / sửa chữ ký người sử dụng FCKeditorForMail=WYSIWIG tạo/soạn thảo cho tất cả thư (ngoại trừ Công cụ-> Gửi thư điện tử) @@ -1762,7 +1782,7 @@ DetailMenuHandler=Xử lý menu nơi hiển thị menu mới DetailMenuModule=Tên module nếu menu vào đến từ một module DetailType=Loại menu (trên hoặc bên trái) DetailTitre=Nhãn Menu hoặc mã nhãn để dịch -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Điều kiện để hiển thị hoặc không nhập DetailRight=Điều kiện để hiển thị menu không được phép màu xám DetailLangs=Tên file lang cho việc dịch mã nhãn @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Giảm tồn kho trong POS không tư CashDeskYouDidNotDisableStockDecease=Bạn đã không vô hiệu hóa giảm tồn kho khi thực hiện bán hàng từ Điểm bán hàng. Do đó có một kho được yêu cầu. CashDeskForceDecreaseStockLabel=Giảm tồn kho cho các lô sản phẩm đã bị buộc. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Mã khóa cho "Enter" được xác định trong đầu đọc mã vạch (Ví dụ: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Cài đặt module Bookmark BookmarkDesc=Mô-đun này cho phép bạn quản lý dấu trang. Bạn cũng có thể thêm lối tắt vào bất kỳ trang Dolibarr hoặc các trang web bên ngoài trên menu bên trái của bạn. @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Mô hình đánh số hóa đơn nhà cung cấp IfSetToYesDontForgetPermission=Nếu được đặt thành giá trị không null, đừng quên cung cấp quyền cho các nhóm hoặc người dùng được phép phê duyệt lần thứ hai ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Cài đặt module GeoIP MaxMind -PathToGeoIPMaxmindCountryDataFile=Đường dẫn đến tệp chứa ip Maxmind tới bản dịch quốc gia.
    Ví dụ:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. @@ -1922,6 +1942,7 @@ BackupDumpWizard=Hướng dẫn cách dump file dữ liệu BackupZipWizard=Hướng dẫn tạo lưu trữ của thư mục hồ sơ SomethingMakeInstallFromWebNotPossible=Cài đặt module bên ngoài là không thể từ giao diện web với các lý do sau: SomethingMakeInstallFromWebNotPossible2=Vì lý do này, quá trình nâng cấp được mô tả ở đây là quy trình thủ công chỉ người dùng đặc quyền mới có thể thực hiện. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Cài đặt các module bên ngoài từ các ứng dụng đã bị vô hiệu bởi quản trị viên của bạn. Bạn phải yêu cầu ông phải loại bỏ các tập tin %s để cho phép tính năng này. ConfFileMustContainCustom=Cài đặt hoặc xây dựng một mô-đun bên ngoài từ ứng dụng cần lưu các tệp mô-đun vào thư mục %s. Để thư mục này được Dolibarr xử lý, bạn phải thiết lập conf/conf.php của mình để thêm 2 dòng lệnh:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Tô sáng các dòng bảng khi chuột di chuyển qua @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=Nhấn CTRL + F5 trên bàn phím hoặc xóa bộ nh NotSupportedByAllThemes=Sẽ hoạt động với các theme cốt lõi, có thể không được hỗ trợ bởi các theme bên ngoài BackgroundColor=Màu nền TopMenuBackgroundColor=Màu nền của menu trên -TopMenuDisableImages=Ẩn hình ảnh trong menu trên cùng +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Màu nền của menu Trái BackgroundTableTitleColor=Màu nền cho tiêu đề của Table BackgroundTableTitleTextColor=Màu văn bản cho dòng tiêu đề Bảng @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=Đơn đặt hàng mua MailToSendSupplierInvoice=Hóa đơn nhà cung cấp MailToSendContract=Hợp đồng MailToSendReception=Tiếp nhận +MailToExpenseReport=Báo cáo chi phí MailToThirdparty=Bên thứ ba MailToMember=Thành viên MailToUser=Người dùng @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Lề phải trên PDF MAIN_PDF_MARGIN_TOP=Lề trên PDF MAIN_PDF_MARGIN_BOTTOM=Lề dưới PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2047,6 +2070,8 @@ RemoveSpecialChars=Xóa các ký tự đặc biệt COMPANY_AQUARIUM_CLEAN_REGEX=Bộ lọc Regex để làm sạch giá trị (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Bộ lọc Regex để làm sạch giá trị (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Không cho phép trùng lặp +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Cán bộ bảo vệ dữ liệu (DPO, Bảo mật dữ liệu hoặc liên lạc GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Trợ giúp văn bản để hiển thị trên tooltip @@ -2059,28 +2084,36 @@ VATIsUsedIsOff=Lưu ý: Tùy chọn sử dụng Thuế bán hàng hoặc VAT đ SwapSenderAndRecipientOnPDF=Hoán đổi vị trí địa chỉ người gửi và người nhận trên tài liệu PDF FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Trình thu thập email +EmailCollectors=Email collectors EmailCollectorDescription=Thêm một công việc được lên lịch và một trang thiết lập để quét các hộp thư điện tử thường xuyên (sử dụng giao thức IMAP) và ghi lại các email nhận được vào ứng dụng của bạn, đúng nơi và/hoặc tự động tạo một số bản ghi (như khách hàng tiềm năng). NewEmailCollector=Trình thu thập email mới EMailHost=Máy chủ email IMAP +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Thư mục nguồn hộp thư MailboxTargetDirectory=Thư mục đích hộp thư EmailcollectorOperations=Hoạt động để làm bởi trình thu thập EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Số lượng email tối đa được thu thập trên mỗi thu thập +TestCollectNow=Test collect CollectNow=Thu thập ngay bây giờ ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Kết quả mới nhất EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email xác nhận thu thập EmailCollectorConfirmCollect=Do you want to run this collector now? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=Example collecting leads @@ -2088,7 +2121,7 @@ EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=Không có email mới (bộ lọc phù hợp) để xử lý NothingProcessed=Chưa có gì hoàn thành -XEmailsDoneYActionsDone=%s email đủ điều kiện, %s email được xử lý thành công (đối với bản ghi / hành động %s được thực hiện) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Mã mục nhập menu (mainmenu) ECMAutoTree=Hiển thị cây ECM tự động -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Giờ mở cửa OpeningHoursDesc=Nhập vào đây giờ mở cửa thường xuyên của công ty bạn. ResourceSetup=Cấu hình của mô-đun tài nguyên @@ -2167,6 +2200,10 @@ EmailTemplate=Mẫu cho email EMailsWillHaveMessageID=Email sẽ có thẻ 'Tài liệu tham khảo' khớp với cú pháp này PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Nếu bạn muốn có text trong PDF của mình bằng 2 ngôn ngữ khác nhau trong cùng một tệp PDF được tạo, bạn phải đặt ở đây ngôn ngữ thứ hai này để PDF được tạo sẽ chứa 2 ngôn ngữ khác nhau trong cùng một trang, một ngôn ngữ được chọn khi tạo PDF và ngôn ngữ này ( chỉ có vài mẫu PDF hỗ trợ này). Giữ trống cho 1 ngôn ngữ trên mỗi PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Nhập vào đây mã của biểu tượng FontAwgie. Nếu bạn không biết FontAwgie là gì, bạn có thể sử dụng fa-address-book @@ -2195,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Khuyên dùng NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2247,14 +2285,22 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Thiết lập kiểm kho ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Cài đặt +WebhookSetupPage = Webhook setup page ShowQuickAddLink=Show a button to quickly add an element in top right menu + HashForPing=Hash used for ping ReadOnlyMode=Is instance in "Read Only" mode DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + IconAndText=Icon and text TextOnly=Text only IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar @@ -2262,4 +2308,50 @@ IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover t IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/vi_VN/categories.lang b/htdocs/langs/vi_VN/categories.lang index 4ceb5fc985b..f89aaef6b41 100644 --- a/htdocs/langs/vi_VN/categories.lang +++ b/htdocs/langs/vi_VN/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Thành viên này không có trong bất kỳ thẻ/ danh m ContactHasNoCategory=Liên lạc này không có trong bất kỳ thẻ/ danh mục ProjectHasNoCategory=Dự án này không có trong bất kỳ thẻ/ danh mục nào ClassifyInCategory=Thêm vào thẻ/ danh mục +RemoveCategory=Remove category NotCategorized=Không có thẻ/ danh mục CategoryExistsAtSameLevel=Danh mục này đã tồn tại với tham chiếu này ContentsVisibleByAllShort=Nội dung hiển thị bởi tất cả @@ -67,6 +68,7 @@ StockCategoriesShort=thẻ/ danh mục Kho ThisCategoryHasNoItems=Danh mục này không có dữ liệu nào CategId=ID thẻ/ danh mục ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=Xóa khỏi thẻ/ danh mục ExtraFieldsCategories=Thuộc tính bổ sung CategoriesSetup=Thiết lập thẻ/ danh mục CategorieRecursiv=Tự động liên kết với thẻ/ danh mục cha -CategorieRecursivHelp=Nếu tùy chọn được bật, khi bạn thêm sản phẩm vào danh mục con, sản phẩm cũng sẽ được thêm vào danh mục cha. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Thêm sản phẩm / dịch vụ sau đây AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Hiển thị thẻ/ danh mục ByDefaultInList=Theo mặc định trong danh sách ChooseCategory=Chọn danh mục StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/vi_VN/commercial.lang b/htdocs/langs/vi_VN/commercial.lang index f6f01d06444..17633460fff 100644 --- a/htdocs/langs/vi_VN/commercial.lang +++ b/htdocs/langs/vi_VN/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=Gửi đơn hàng vận chuyển bằng thư ActionAC_SUP_ORD=Gửi đơn đặt hàng mua qua thư ActionAC_SUP_INV=Gửi hóa đơn nhà cung cấp qua thư ActionAC_OTH=Khác -ActionAC_OTH_AUTO=Sự kiện tự động chèn +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Sự kiện chèn bằng tay ActionAC_AUTO=Sự kiện tự động chèn -ActionAC_OTH_AUTOShort=Tự động +ActionAC_OTH_AUTOShort=Khác +ActionAC_EVENTORGANIZATION=Event organization events Stats=Thống kê bán hàng StatusProsp=Trạng thái KH tiềm năng DraftPropals=Dự thảo đơn hàng đề xuất NoLimit=Không giới hạn ToOfferALinkForOnlineSignature=Liên kết cho chữ ký trực tuyến -WelcomeOnOnlineSignaturePage=Chào mừng bạn đến trang để chấp nhận các đề xuất thương mại từ %s -ThisScreenAllowsYouToSignDocFrom=Màn hình này cho phép bạn chấp nhận và ký, hoặc từ chối, một báo giá / đề xuất thương mại -ThisIsInformationOnDocumentToSign=Đây là thông tin trên tài liệu để chấp nhận hoặc từ chối +WelcomeOnOnlineSignaturePageProposal=Chào mừng bạn đến trang để chấp nhận các đề xuất thương mại từ %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Màn hình này cho phép bạn chấp nhận và ký, hoặc từ chối, một báo giá / đề xuất thương mại +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Đây là thông tin trên tài liệu để chấp nhận hoặc từ chối +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Chữ ký của báo giá / đề xuất thương mại %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Tính năng ký trực tuyến bị vô hiệu hóa hoặc tài liệu được tạo trước khi tính năng được bật diff --git a/htdocs/langs/vi_VN/companies.lang b/htdocs/langs/vi_VN/companies.lang index 26306f895ff..21fce333e9a 100644 --- a/htdocs/langs/vi_VN/companies.lang +++ b/htdocs/langs/vi_VN/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=Nature của Third party NatureOfContact=Bản chất của liên hệ Address=Địa chỉ State=Bang/Tỉnh +StateId=State ID StateCode=Mã tiểu bang / tỉnh StateShort=Tỉnh/ thành Region=Vùng Region-State=Vùng - Tỉnh/ thành Country=Quốc gia CountryCode=Mã quốc gia -CountryId=ID quốc gia +CountryId=Country ID Phone=Điện thoại PhoneShort=Tel Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=Khác ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/vi_VN/compta.lang b/htdocs/langs/vi_VN/compta.lang index 24d6dd5c05f..e9509627016 100644 --- a/htdocs/langs/vi_VN/compta.lang +++ b/htdocs/langs/vi_VN/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Số dư (trước) Balance=Số dư Debit=Nợ Credit=Tín dụng +AccountingDebit=Nợ +AccountingCredit=Tín dụng Piece=Chứng từ kế toán AmountHTVATRealReceived=Thu thập ròng AmountHTVATRealPaid=Thanh toán ròng @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Xóa một khoản thanh toán thuế xã hội hoặc tài chính DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Thuế và tài chính xã hội và thanh toán CalcModeVATDebt=Chế độ %sVAT về kế toán cam kết%s. CalcModeVATEngagement=Chế độ %sVAT đối với thu nhập-chi phí%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Báo cáo Doanh thu được TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Báo cáo Doanh thu được thu thập trên mỗi mức thuế suất bán hàng không có sẵn. Báo cáo này chỉ có sẵn cho doanh thu có hóa đơn. CalculationMode=Chế độ tính toán AccountancyJournal=Mã nhật ký kế toán -ACCOUNTING_VAT_SOLD_ACCOUNT=Tài khoản kế toán theo mặc định cho VAT khi bán hàng (được sử dụng nếu không được định nghĩa khi thiết lập từ điển VAT) -ACCOUNTING_VAT_BUY_ACCOUNT=Tài khoản kế toán theo mặc định cho VAT khi mua hàng (được sử dụng nếu không được định nghĩa khi thiết lập từ điển VAT) -ACCOUNTING_VAT_PAY_ACCOUNT=Tài khoản kế toán theo mặc định để thanh toán VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Tài khoản kế toán được sử dụng cho khách hàng bên thứ ba +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Tài khoản kế toán chuyên dụng được xác định trên thẻ của bên thứ ba sẽ chỉ được sử dụng cho kế toán Sổ phụ. Cái này sẽ được sử dụng cho Sổ cái và là giá trị mặc định của kế toán Sô phụ nếu tài khoản kế toán chuyên dụng của khách hàng bên thứ ba không được xác định. -ACCOUNTING_ACCOUNT_SUPPLIER=Tài khoản kế toán được sử dụng cho nhà cung cấp bên thứ ba +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Tài khoản kế toán chuyên dụng được xác định trên thẻ của bên thứ ba sẽ chỉ được sử dụng cho kế toán Sổ phụ. Cái này sẽ được sử dụng cho Sổ cái và là giá trị mặc định của kế toán Sổ phụ nếu tài khoản kế toán chuyên dụng của nhà cung cấp bên thứ ba không được xác định. ConfirmCloneTax=Xác nhận nhân bản thuế xã hội / tài chính ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Doanh số hàng mua đã ra hoá đơn ReportPurchaseTurnoverCollected=Doanh số hàng mua đã tập hợp IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/vi_VN/contracts.lang b/htdocs/langs/vi_VN/contracts.lang index 175fe646d97..0883ace32ea 100644 --- a/htdocs/langs/vi_VN/contracts.lang +++ b/htdocs/langs/vi_VN/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Hợp đồng/Thuê bao ContractsAndLine=Hợp đồng và chi tiết của hợp đồng Contract=Hợp đồng ContractLine=Phạm vi hợp đồng +ContractLines=Contract lines Closing=Đang đóng NoContracts=Không có hợp đồng nào MenuServices=Dịch vụ @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Bạn có chắc chắn muốn xoá phạm vi hợp đ MoveToAnotherContract=Chuyển dịch vụ vào hợp đồng khác. ConfirmMoveToAnotherContract=Tôi đã chọn hợp đồng đích mới và xác nhận muốn chuyển dịch vụ này vào hợp đồng đó. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Làm mới chi tiết hợp đồng (số %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Ngày hết hạn NoExpiredServices=Không có dịch vụ kích hoạt đã hết hạn ListOfServicesToExpireWithDuration=Danh sách dịch vụ sẽ hết hạn trong %s ngày @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Liên lạc để ký hợp đồng c HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/vi_VN/cron.lang b/htdocs/langs/vi_VN/cron.lang index 401b1d5e1f7..57833556461 100644 --- a/htdocs/langs/vi_VN/cron.lang +++ b/htdocs/langs/vi_VN/cron.lang @@ -26,7 +26,7 @@ CronCommand=Lệnh CronList=Công việc theo lịch trình CronDelete=Xóa công việc theo lịch trình CronConfirmDelete=Bạn có chắc chắn muốn xóa các công việc theo lịch trình này? -CronExecute=Khởi chạy công việc theo lịch trình +CronExecute=Launch now CronConfirmExecute=Bạn có chắc chắn muốn thực hiện các công việc theo lịch trình này ngay bây giờ? CronInfo=Mô-đun công việc được lên lịch cho phép lên lịch các công việc để thực hiện chúng tự động. Công việc cũng có thể được bắt đầu bằng tay. CronTask=Công việc @@ -58,7 +58,7 @@ CronNote=Nhận xét CronFieldMandatory=Các trường %s là bắt buộc CronErrEndDateStartDt=Ngày kết thúc không thể trước ngày bắt đầu StatusAtInstall=Trạng thái khi cài đặt mô-đun -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Vô hiệu hoá CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Đi vào menu " Trang chủ - Công JobDisabled=Công việc bị vô hiệu hóa MakeLocalDatabaseDumpShort=Sao lưu cơ sở dữ liệu cục bộ MakeLocalDatabaseDump=Tạo một kết xuất cơ sở dữ liệu cục bộ. Các tham số là: nén('gz' hoặc 'bz' hoặc 'none'), loại sao lưu ('mysql', 'pssql', 'auto'), 1, 'auto' hoặc tên tệp để tạo, số lượng tệp sao lưu cần giữ +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Chú ý, vì mục đích hiệu suất, bất kể ngày nào là ngày thực hiện các công việc được kích hoạt, công việc của bạn có thể bị trì hoãn tối đa là %s giờ trước khi được chạy. DATAPOLICYJob=Trình dọn dẹp dữ liệu và ẩn danh JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/vi_VN/datapolicy.lang b/htdocs/langs/vi_VN/datapolicy.lang new file mode 100644 index 00000000000..41ec560e4b7 --- /dev/null +++ b/htdocs/langs/vi_VN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Khách hàng +DATAPOLICY_TIERS_PROSPECT = KH tiềm năng +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Nhà cung cấp +DATAPOLICY_CONTACT_CLIENT = Khách hàng +DATAPOLICY_CONTACT_PROSPECT = KH tiềm năng +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Nhà cung cấp +DATAPOLICY_ADHERENT = Thành viên +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/vi_VN/dict.lang b/htdocs/langs/vi_VN/dict.lang index e93b63dcc7b..25580260292 100644 --- a/htdocs/langs/vi_VN/dict.lang +++ b/htdocs/langs/vi_VN/dict.lang @@ -21,7 +21,7 @@ CountryNL=Hà Lan CountryHU=Hungary CountryRU=Nga CountrySE=Thụy Điển -CountryCI=Ivoiry Coast +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Cameroon @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Bà +CivilityMMEShort=Bà CivilityMR=Ông +CivilityMRShort=Ông CivilityMLE=Cô CivilityMTRE=Thạc sĩ CivilityDR=Tiến sĩ diff --git a/htdocs/langs/vi_VN/ecm.lang b/htdocs/langs/vi_VN/ecm.lang index 407caefa820..82018cff366 100644 --- a/htdocs/langs/vi_VN/ecm.lang +++ b/htdocs/langs/vi_VN/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Thư mục ECMSectionAuto=Thư mục tự động ECMSectionsManual=Cây thư mục ECMSectionsAuto=Cây tự động +ECMSectionsMedias=Medias tree ECMSections=Thư mục ECMRoot=Gốc ECMNewSection=Thư mục mới @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Số ảnh trong thư mục con ECMCreationUser=Người tạo ECMArea=Vùng DMS/ECM ECMAreaDesc=Vùng DMS/ECM (Document Management System / Electronic Content Management) cho phép bạn lưu, chia sẻ và tìm nhanh mọi loại tài liệu trong hệ thống. -ECMAreaDesc2=* Thư mục tự động được điền tự động khi thêm tài liệu từ thẻ của một phần tử.
    * Hướng dẫn sử dụng các thư mục có thể được sử dụng để lưu các tài liệu không liên quan đến một yếu tố cụ thể. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Thư mục% s đã bị xóa. ECMSectionWasCreated=Thư mục %s đã được tạo ECMSearchByKeywords=Tìm kiếm theo từ khóa diff --git a/htdocs/langs/vi_VN/errors.lang b/htdocs/langs/vi_VN/errors.lang index 1b8c6ca61b9..aaa1e41fa65 100644 --- a/htdocs/langs/vi_VN/errors.lang +++ b/htdocs/langs/vi_VN/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) ErrorBadUrl=Url %s is incorrect ErrorBadValueForParamNotAString=Giá trị xấu cho tham số của bạn. Nói chung khi dịch bị thiếu. ErrorRefAlreadyExists=Reference %s already exists. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Đăng nhập% s đã tồn tại. ErrorGroupAlreadyExists=Nhóm% s đã tồn tại. ErrorEmailAlreadyExists=Email %s already exists. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name %s already exist ErrorPartialFile=File không nhận được hoàn toàn bởi máy chủ. ErrorNoTmpDir=Directy tạm thời% s không tồn tại. ErrorUploadBlockedByAddon=Tải bị chặn bởi một plugin PHP / Apache. -ErrorFileSizeTooLarge=Kích thước quá lớn. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Kích thước trường %squá lớn. ErrorSizeTooLongForIntType=Kích thước quá dài cho kiểu int (tối đa số% s) ErrorSizeTooLongForVarcharType=Kích thước quá dài cho kiểu chuỗi (ký tự tối đa% s) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript không được vô hiệu hóa để l ErrorPasswordsMustMatch=Cả hai mật khẩu gõ phải phù hợp với nhau ErrorContactEMail=Xảy ra lỗi kỹ thuật. Vui lòng liên hệ với quản trị viên để theo dõi email %s và cung cấp mã lỗi %s trong tin nhắn của bạn hoặc thêm bản chụp màn hình của trang này. ErrorWrongValueForField=Trường %s : ' %s ' không khớp với quy tắc regex %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Trường %s : ' %s ' không phải là giá trị được tìm thấy trong trường %s của %s ErrorFieldRefNotIn=Trường %s : ' %s ' không phải là %s ref hiện có ErrorsOnXLines=Đã tìm thấy lỗi %s @@ -269,7 +271,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s is not a draft ErrorExecIdFailed=Can't execute command "id" ErrorBadCharIntoLoginName=Unauthorized character in the login name ErrorRequestTooLarge=Error, request too large +ErrorNotApproverForHoliday=You are not the approver for leave %s +ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants +ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants +ErrorPaymentInBothCurrency=Error, all amounts must be entered in the same column +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Tham số PHP của bạn upload_max_filesize (%s) cao hơn tham số PHP post_max_size (%s). Đây không phải là một thiết lập phù hợp. WarningPasswordSetWithNoAccount=Một mật khẩu đã được đặt cho thành viên này. Tuy nhiên, không có tài khoản người dùng nào được tạo. Vì vậy, mật khẩu này được lưu trữ nhưng không thể được sử dụng để đăng nhập vào Dolibarr. Nó có thể được sử dụng bởi một mô-đun / giao diện bên ngoài nhưng nếu bạn không cần xác định bất kỳ thông tin đăng nhập hay mật khẩu nào cho thành viên, bạn có thể tắt tùy chọn "Quản lý đăng nhập cho từng thành viên" từ thiết lập mô-đun Thành viên. Nếu bạn cần quản lý thông tin đăng nhập nhưng không cần bất kỳ mật khẩu nào, bạn có thể để trống trường này để tránh cảnh báo này. Lưu ý: Email cũng có thể được sử dụng làm thông tin đăng nhập nếu thành viên được liên kết với người dùng. -WarningMandatorySetupNotComplete=Nhấn vào đây để thiết lập các tham số bắt buộc +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=Nhấn vào đây để kích hoạt các mô-đun và ứng dụng của bạn WarningSafeModeOnCheckExecDir=Cảnh báo, PHP safe_mode lựa chọn là do đó, lệnh phải được lưu trữ bên trong một thư mục tuyên bố tham số php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Dấu trang với danh hiệu này hay mục tiêu này (URL) đã tồn tại. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Warning, you can't create directly a sub account, you m WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/vi_VN/externalsite.lang b/htdocs/langs/vi_VN/externalsite.lang deleted file mode 100644 index 9292c2606ba..00000000000 --- a/htdocs/langs/vi_VN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Thiết lập liên kết đến trang web bên ngoài -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Mô-đun trang web bên ngoài được cấu hình không đúng. -ExampleMyMenuEntry=Mục menu của tôi diff --git a/htdocs/langs/vi_VN/ftp.lang b/htdocs/langs/vi_VN/ftp.lang deleted file mode 100644 index 0070a8d2da6..00000000000 --- a/htdocs/langs/vi_VN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Cài đặt máy trạm FTP -NewFTPClient=Tạo thiết lập FTP -FTPArea=Kết nối FTP -FTPAreaDesc=Màn hình này hiển thị chế độ xem của máy chủ FTP. -SetupOfFTPClientModuleNotComplete=Việc thiết lập mô đun máy khách FTP dường như chưa hoàn tất -FTPFeatureNotSupportedByYourPHP=PHP của bạn không hỗ trợ chức năng FTP -FailedToConnectToFTPServer=Không thể kết nối đến máy chủ FTP (máy chủ% s, cổng% s) -FailedToConnectToFTPServerWithCredentials=Không thể đăng nhập vào máy chủ FTP với tên đăng nhập / mật khẩu đã được khai báo -FTPFailedToRemoveFile=Không thể xóa bỏ các tập tin %s. -FTPFailedToRemoveDir=Không thể xóa thư mục %s : kiểm tra quyền và thư mục đó là rỗng. -FTPPassiveMode=Chế độ thụ động -ChooseAFTPEntryIntoMenu=Chọn một trang FTP từ menu ... -FailedToGetFile=Lỗi khi tải tệp tin %s diff --git a/htdocs/langs/vi_VN/holiday.lang b/htdocs/langs/vi_VN/holiday.lang index a004e3a5064..31b61101a3e 100644 --- a/htdocs/langs/vi_VN/holiday.lang +++ b/htdocs/langs/vi_VN/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Nghỉ +Holidays=Leaves +Holiday=Nghỉ CPTitreMenu=Nghỉ MenuReportMonth=Báo cáo hàng tháng MenuAddCP=Xin nghỉ phép +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Bạn phải kích hoạt mô-đun Nghỉ để xem trang này. AddCP=Tạo một yêu cầu nghỉ phép DateDebCP=Ngày bắt đầu @@ -56,6 +58,7 @@ ConfirmDeleteCP=Xác nhận việc xóa yêu cầu nghỉ này? ErrorCantDeleteCP=Lỗi bạn không có quyền xóa yêu cầu nghỉ phép này. CantCreateCP=Bạn không có quyền thực hiện các yêu cầu nghỉ phép. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Bạn phải chọn một ngày bắt đầu. NoDateFin=Bạn phải chọn ngày kết thúc. ErrorDureeCP=Yêu cầu nghỉ phép của bạn không có một ngày làm việc. @@ -79,6 +82,8 @@ MotifCP=Lý do UserCP=Người dùng ErrorAddEventToUserCP=Đã xảy ra lỗi khi thêm ngày nghỉ đặc biệt. AddEventToUserOkCP=Việc bổ sung nghỉ đặc biệt đã được hoàn thành. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Lịch sử thay đổi LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Cân bằng trước NewSoldeCP=Tạo cân bằng alreadyCPexist=Một yêu cầu nghỉ phép đã được thực hiện vào thời gian này. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Nhóm +users=Người dùng +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=%s yêu cầu nghỉ phép mới được sửa @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/vi_VN/hrm.lang b/htdocs/langs/vi_VN/hrm.lang index eecc641e4d5..b890940b18a 100644 --- a/htdocs/langs/vi_VN/hrm.lang +++ b/htdocs/langs/vi_VN/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=Mở cơ sở CloseEtablishment=Đóng cơ sở # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Danh sách phòng/ban +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=Nhân viên @@ -20,13 +20,14 @@ Employee=Nhân viên NewEmployee=Tạo nhân viên ListOfEmployees=List of employees HrmSetup=Thiết lập mô-đun Nhân sự -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=Công việc -Jobs=Jobs +JobPosition=Công việc +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Chức vụ -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/vi_VN/install.lang b/htdocs/langs/vi_VN/install.lang index 055ad643c39..33bf62bdb76 100644 --- a/htdocs/langs/vi_VN/install.lang +++ b/htdocs/langs/vi_VN/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Tệp cấu hình %s không thể ghi. Kiểm tra q ConfFileIsWritable=Tập tin cấu hình %s có thể ghi. ConfFileMustBeAFileNotADir=Tệp cấu hình %s phải là một tệp, không phải là một thư mục. ConfFileReload=Tải lại các tham số từ tập tin cấu hình. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP này hỗ trợ các biến POST và GET. PHPSupportPOSTGETKo=Có thể thiết lập PHP của bạn không hỗ trợ các biến POST và / hoặc GET. Kiểm tra tham số variables_order trong php.ini. PHPSupportSessions=PHP này hỗ trợ phiên. @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=Bạn có thể gõ một giá trị sai cho tham s ErrorFailedToCreateDatabase=Không thể tạo cơ sở dữ liệu '%s'. ErrorFailedToConnectToDatabase=Không thể kết nối với cơ sở dữ liệu '%s'. ErrorDatabaseVersionTooLow=Phiên bản cơ sở dữ liệu (%s) quá già. Phiên bản %s hoặc cao hơn là cần thiết. -ErrorPHPVersionTooLow=PHP phiên bản quá cũ. Phiên bản %s là bắt buộc. +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Kết nối với máy chủ thành công nhưng không tìm thấy cơ sở dữ liệu '%s'. ErrorDatabaseAlreadyExists=Cơ sở dữ liệu '%s' đã tồn tại. +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=Nếu cơ sở dữ liệu không tồn tại, hãy quay lại và kiểm tra tùy chọn "Tạo cơ sở dữ liệu". IfDatabaseExistsGoBackAndCheckCreate=Nếu cơ sở dữ liệu đã tồn tại, quay trở lại và bỏ chọn "Tạo cơ sở dữ liệu" tùy chọn. WarningBrowserTooOld=Phiên bản trình duyệt quá cũ. Nâng cấp trình duyệt của bạn lên phiên bản Firefox, Chrome hoặc Opera gần đây rất được khuyến nghị. diff --git a/htdocs/langs/vi_VN/loan.lang b/htdocs/langs/vi_VN/loan.lang index 9caa82ae0e9..c05598741c8 100644 --- a/htdocs/langs/vi_VN/loan.lang +++ b/htdocs/langs/vi_VN/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Cam kết tài chính InterestAmount=Lãi suất CapitalRemain=Gốc còn lại TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Cấu hình của mô-đun cho vay -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Tài khoản kế toán vốn theo mặc định -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Tài khoản kế toán lãi vay theo mặc định -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Tài khoản kế toán bảo hiểm theo mặc định +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Chỉnh sửa cam kết tài chính diff --git a/htdocs/langs/vi_VN/mailmanspip.lang b/htdocs/langs/vi_VN/mailmanspip.lang index 9005d553e1c..17ff19eecc9 100644 --- a/htdocs/langs/vi_VN/mailmanspip.lang +++ b/htdocs/langs/vi_VN/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Kiểm tra đăng ký đã được thực hiện thành MailmanDeletionSuccess=Kiểm tra bỏ đăng ký đã được thực hiện thành công SynchroMailManEnabled=Một bản cập nhật Mailman sẽ được thực hiện SynchroSpipEnabled=Một bản cập nhật Spip sẽ được thực hiện -DescADHERENT_MAILMAN_ADMINPW=Mật khẩu quản trị Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mật khẩu quản trị Mailman DescADHERENT_MAILMAN_URL=URL cho đăng ký Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL cho unsubscriptions Mailman DescADHERENT_MAILMAN_LISTS=Danh sách (s) để tự động ghi các thành viên mới (cách nhau bằng dấu phẩy) diff --git a/htdocs/langs/vi_VN/mails.lang b/htdocs/langs/vi_VN/mails.lang index 13e7bdf3f4e..0c3fc622abd 100644 --- a/htdocs/langs/vi_VN/mails.lang +++ b/htdocs/langs/vi_VN/mails.lang @@ -7,10 +7,10 @@ MailCard=Thẻ Gửi Email MailRecipients=Người nhận MailRecipient=Người nhận MailTitle=Mô tả -MailFrom=Tên người gửi +MailFrom=Từ MailErrorsTo=Lỗi tới MailReply=Trả lời -MailTo=(những) Người nhận +MailTo=Đến MailToUsers=(những) Người dùng MailCC=Sao chép vào MailToCCUsers=Sao chép cho (những) người dùng @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index be80241bf8a..3f4045837d0 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -17,17 +23,18 @@ FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M -FormatDateTextShort=%b %d, %Y -FormatDateText=%B %d, %Y +FormatDateTextShort=%d %b, %Y +FormatDateText=%d %B, %Y FormatDateHourShort=%d/%m/%Y %I:%M %p FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p -FormatDateHourTextShort=%b %d, %Y, %I:%M %p -FormatDateHourText=%B %d, %Y, %I:%M %p +FormatDateHourTextShort=%d %b, %Y, %I:%M %p +FormatDateHourText=%d %B, %Y, %I:%M %p DatabaseConnection=Kết nối cơ sở dữ liệu NoTemplateDefined=Không có sẵn mẫu nào cho loại email này AvailableVariables=Các biến thay thế có sẵn NoTranslation=Không dịch Translation=Dịch +Translations=Translations CurrentTimeZone=Mã vùng thời gian PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Xác nhận Approve=Duyệt Disapprove=Không chấp thuận ReOpen=Mở lại +OpenVerb=Mở Upload=Tải lên ToLink=Liên kết Select=Chọn @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Không có nhóm người dùng được xác định Password=Mật khẩu -PasswordRetype=Nhập lại mật khẩu của bạn +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Lưu ý rằng rất nhiều tính năng/modules bị vô hiệu hóa trong trình diễn này. Name=Tên NameSlashCompany=Tên / Công ty @@ -244,6 +252,7 @@ Designation=Mô tả DescriptionOfLine=Mô tả dòng DateOfLine=Ngày của dòng DurationOfLine=Thời hạn của dòng +ParentLine=Parent line ID Model=Mẫu tài liệu DefaultModel=Mẫu tài liệu mặc định Action=Sự kiện @@ -344,7 +353,7 @@ KiloBytes=Kilobyte MegaBytes=MB GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Ceated by +UserAuthor=Được tạo bởi UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Sự kiện cho liên lạc/ địa chỉ này ActionsOnContract=Sự kiện cho hợp đồng này ActionsOnMember=Sự kiện về thành viên này ActionsOnProduct=Sự kiện về sản phẩm này +ActionsOnAsset=Events for this fixed asset NActionsLate=%s cuối ToDo=Việc cần làm Completed=Đã hoàn thành @@ -517,6 +527,7 @@ or=hoặc Other=Khác Others=Khác OtherInformations=Thông tin khác +Workflow=Quy trình làm việc Quantity=Số lượng Qty=Số lượng ChangedBy=Thay đổi bằng @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Được đính kèm tập tin và tài liệu JoinMainDoc=Tham gia tài liệu chính +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Tính năng bị vô hiệu hóa MoveBox=Di chuyển widget Offered=Đã đề nghị NotEnoughPermissions=Bạn không có quyền cho hành động này +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Tên phiên Method=Phương pháp Receive=Nhận @@ -798,6 +811,7 @@ URLPhoto=URL của hình ảnh / logo SetLinkToAnotherThirdParty=Liên kết đến một bên thứ ba LinkTo=Liên kết đến LinkToProposal=Liên kết với đề xuất +LinkToExpedition= Link to expedition LinkToOrder=Liên kết để đặt hàng LinkToInvoice=Liên kết với hóa đơn LinkToTemplateInvoice=Liên kết với mẫu hóa đơn @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Tải xuống DownloadDocument=Tải tài liệu +DownloadSignedDocument=Download signed document ActualizeCurrency=Cập nhật tỷ giá tiền tệ Fiscalyear=Năm tài chính ModuleBuilder=Xây dựng mô-đun và ứng dụng @@ -1041,6 +1056,7 @@ SearchIntoContracts=Hợp đồng SearchIntoCustomerShipments=Lô hàng của khách hàng SearchIntoExpenseReports=Báo cáo chi tiêu SearchIntoLeaves=Nghỉ +SearchIntoKM=Knowledge base SearchIntoTickets=Vé SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Thanh toán của nhà cung cấp @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Tỷ lệ +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Chấm dứt +Terminated=Chấm dứt +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Người dùng bên trong +ExternalUser=Người dùng bên ngoài diff --git a/htdocs/langs/vi_VN/members.lang b/htdocs/langs/vi_VN/members.lang index d3f6b5ec80b..d7fb04d492c 100644 --- a/htdocs/langs/vi_VN/members.lang +++ b/htdocs/langs/vi_VN/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Một thành viên khác (tên: %s ErrorUserPermissionAllowsToLinksToItselfOnly=Vì lý do bảo mật, bạn phải được cấp quyền chỉnh sửa tất cả người dùng để có thể liên kết thành viên với người dùng không phải của bạn. SetLinkToUser=Liên kết với người dùng Dolibarr SetLinkToThirdParty=Liên kết với bên thứ ba Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Danh sách thành viên MembersListToValid=Danh sách thành viên dự thảo (sẽ được xác nhận) @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=ID Thành viên +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=Thành viên mới MemberType=Loại thành viên MemberTypeId=Id Loại thành viên @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=Loại thành viên không thể bị xóa NewSubscription=Đóng góp mới NewSubscriptionDesc=Biểu mẫu này cho phép bạn ghi lại đăng ký của mình như một thành viên mới của tổ chức. Nếu bạn muốn gia hạn đăng ký của mình (nếu đã là thành viên), vui lòng liên hệ với hội đồng sáng lập thay vì gửi email %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Thời hạn +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Trễ SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=Nội dung thẻ thành viên của bạn # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Chúng tôi muốn cho bạn biết rằng yêu cầu thành viên của bạn đã được nhận.

    ThisIsContentOfYourMembershipWasValidated=Chúng tôi muốn cho bạn biết rằng tư cách thành viên của bạn đã được xác nhận với các thông tin sau:

    -ThisIsContentOfYourSubscriptionWasRecorded=Chúng tôi muốn cho bạn biết rằng đăng ký mới của bạn đã được ghi lại.

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=Chúng tôi muốn cho bạn biết rằng đăng ký của bạn sắp hết hạn hoặc đã hết hạn (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Chúng tôi hy vọng bạn sẽ làm mới nó.

    ThisIsContentOfYourCard=Đây là một bản tóm tắt các thông tin chúng tôi có về bạn. Vui lòng liên hệ với chúng tôi nếu bất cứ điều gì là không chính xác.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Chủ đề của email thông báo nhận được trong trường hợp tự động đăng ký của khách @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Doanh thu (cho một công ty) hoặc Ngân sách (cho một tổ chức) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Nhảy vào trang thanh toán trực tuyến được tích hợp +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Theo bản chất tự nhiên MembersStatisticsByProperties=Thống kê thành viên theo bản chất VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/vi_VN/modulebuilder.lang b/htdocs/langs/vi_VN/modulebuilder.lang index ccb0abc09cf..29928a85e99 100644 --- a/htdocs/langs/vi_VN/modulebuilder.lang +++ b/htdocs/langs/vi_VN/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Đường dẫn nơi các mô-đun được tạo/chỉnh sửa (thư mục đầu tiên cho các mô-đun bên ngoài được xác định vào %s): %s ModuleBuilderDesc3=Các mô-đun được tạo / chỉnh sửa được tìm thấy: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Một mô-đun được phát hiện là 'có thể chỉnh s NewModule=Mô-đun mới NewObjectInModulebuilder=Đối tượng mới NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Khóa mô-đun ObjectKey=Khóa đối tượng DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Đường dẫn đến zip của gói mô-đun/ứng dụng PathToModuleDocumentation=Đường dẫn đến tệp tài liệu mô-đun/ứng dụng (%s) SpaceOrSpecialCharAreNotAllowed=Khoảng trắng hoặc ký tự đặc biệt không được phép. FileNotYetGenerated=Tệp chưa được tạo +GenerateCode=Generate code RegenerateClassAndSql=Ép buộc cập nhật các tập tin .class và .sql RegenerateMissingFiles=Tạo tập tin bị thiếu SpecificationFile=Tập tin tài liệu LanguageFile=Tập tin cho ngôn ngữ ObjectProperties=Thuộc tính đối tượng +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Bạn có chắc chắn muốn xóa thuộc tính %s ? Điều này sẽ thay đổi mã trong lớp PHP nhưng cũng loại bỏ cột khỏi bảng định nghĩa của đối tượng. NotNull=Không NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Là một phép do DirScanned=Thư mục được quét NoTrigger=Không trigger NoWidget=Không có widget -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=Danh sách các mục menu ListOfDictionariesEntries=Danh sách các mục từ điển ListOfPermissionsDefined=Danh sách các quyền được định nghĩa SeeExamples=Xem ví dụ ở đây -EnabledDesc=Điều kiện để có trường này hoạt động (Ví dụ: 1 hoặc $conf-> golobal->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Hiển thị trên file PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Giá trị của trường có thể được tích lũy để có được tổng số vào danh sách không? (Ví dụ: 1 hoặc 0) SearchAllDesc=Là trường được sử dụng để thực hiện tìm kiếm từ công cụ tìm kiếm nhanh? (Ví dụ: 1 hoặc 0) SpecDefDesc=Nhập vào đây tất cả tài liệu bạn muốn cung cấp với mô-đun chưa được xác định bởi các tab khác. Bạn có thể sử dụng .md hoặc tốt hơn, cú pháp .asciidoc đầy đủ. @@ -130,26 +136,32 @@ UseSpecificEditorURL = Sử dụng một URL biên tập cụ thể UseSpecificFamily = Sử dụng một họ cụ thể UseSpecificAuthor = Sử dụng một tác giả cụ thể UseSpecificVersion = Sử dụng một phiên bản mở đầu cụ thể -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Nếu bạn kiểm tra điều này, một số mã sẽ được tạo để thêm hộp "Tạo tài liệu" trong hồ sơ. -ShowOnCombobox=Hiển thị giá trị vào combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Khóa cho tooltip CSSClass=CSS for edit/create form CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Không thể chỉnh sửa ForeignKey=Khóa ngoại -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Chuyển mã ASCII sang HTML AsciiToPdfConverter=Chuyển ASCII sang PDF TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/vi_VN/mrp.lang b/htdocs/langs/vi_VN/mrp.lang index d9006590c30..9c4f78a96b4 100644 --- a/htdocs/langs/vi_VN/mrp.lang +++ b/htdocs/langs/vi_VN/mrp.lang @@ -11,8 +11,8 @@ Bom=Hóa đơn của vật liệu BillOfMaterials=Bill of Materials BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Thiết lập mô-đun BOM -ListOfBOMs=Danh sách hóa đơn vật liệu - BOM -ListOfManufacturingOrders=Danh sách các đơn đặt hàng sản xuất +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Đơn đặt hàng sản xuất NewBOM=New bill of materials ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=Mẫu đánh số BOM @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials ConfirmCloneMo=Bạn có chắc chắn muốn sao chép Đơn hàng sản xuất %s không? ManufacturingEfficiency=Hiệu quả sản xuất ConsumptionEfficiency=Consumption efficiency +Consumption=Consumption ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Xóa hóa đơn vật liệu @@ -69,6 +70,8 @@ ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Bạn có chắc chắn muốn xác nhận Đơn hàng sản xuất này không? ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. ProductionForRef=Production of %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached NoStockChangeOnServices=No stock change on services ProductQtyToConsumeByMO=Product quantity still to consume by open MO @@ -80,6 +83,7 @@ ProductsToProduce=Products to produce UnitCost=Unit cost TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO Workstation=Workstation @@ -107,3 +111,10 @@ THMEstimatedHelp=This rate makes it possible to define a forecast cost of the it BOM=Bill Of Materials CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/vi_VN/oauth.lang b/htdocs/langs/vi_VN/oauth.lang index 5f9377e4368..4e2be4ca8d8 100644 --- a/htdocs/langs/vi_VN/oauth.lang +++ b/htdocs/langs/vi_VN/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=Một token đã được tạo và lưu vào cơ sở dữ liệ NewTokenStored=Token đã nhận và lưu ToCheckDeleteTokenOnProvider=Nhấn vào đây để kiểm tra / xóa ủy quyền được lưu bởi nhà cung cấp %s OAuth TokenDeleted=Token đã bị xóa -RequestAccess=Nhấp vào đây để yêu cầu / gia hạn quyền truy cập và nhận token mới để lưu +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=Nhấn vào đây để xóa token UseTheFollowingUrlAsRedirectURI=Sử dụng URL sau đây làm URI chuyển hướng khi tạo thông tin đăng nhập với nhà cung cấp OAuth của bạn: -ListOfSupportedOauthProviders=Nhập thông tin đăng nhập được cung cấp bởi nhà cung cấp OAuth2 của bạn. Chỉ các nhà cung cấp OAuth2 được hỗ trợ được liệt kê ở đây. Các dịch vụ này có thể được sử dụng bởi các mô-đun khác cần xác thực OAuth2. -OAuthSetupForLogin=Trang để tạo token OAuth +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=Xem tab trước +OAuthProvider=OAuth provider OAuthIDSecret=ID OAuth và bảo mật TOKEN_REFRESH=Làm mới token TOKEN_EXPIRED=Token đã hết hạn @@ -23,10 +24,13 @@ TOKEN_DELETE=Xóa token đã lưu OAUTH_GOOGLE_NAME=Dịch vụ Google OAuth OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=Bảo mật Google OAuth -OAUTH_GOOGLE_DESC=Chuyển đến trang này sau đó "Thông tin xác thực" để tạo thông tin xác thực OAuth OAUTH_GITHUB_NAME=Dịch vụ OAuth GitHub OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=Bảo mật của OAuth GitHub -OAUTH_GITHUB_DESC=Chuyển đến trang này sau đó "Đăng ký ứng dụng mới" để tạo thông tin đăng nhập OAuth -OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test -OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret +OAUTH_STRIPE_TEST_NAME=OAuth Stripe Thử nghiệm +OAUTH_STRIPE_LIVE_NAME=OAuth Stripe chạy thực tế +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang index 98a9a7cdf57..12d80fa93ce 100644 --- a/htdocs/langs/vi_VN/other.lang +++ b/htdocs/langs/vi_VN/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Đơn đặt hàng mua được phê duyệt Notify_ORDER_SUPPLIER_REFUSE=Đơn đặt hàng mua bị từ chối Notify_PROPAL_VALIDATE=Đề nghị khách hàng xác nhận Notify_PROPAL_CLOSE_SIGNED=Đề xuất khách hàng được đóng đã ký +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Đề xuất khách hàng được đóng đã bị từ chối +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Đề nghị thương mại gửi qua đường bưu điện Notify_WITHDRAW_TRANSMIT=Rút truyền Notify_WITHDRAW_CREDIT=Rút tín dụng @@ -181,6 +183,7 @@ SizeUnitfoot=chân SizeUnitpoint=điểm BugTracker=Theo dõi lỗi SendNewPasswordDesc=Hình thức này cho phép bạn yêu cầu một mật khẩu mới. Nó sẽ được gửi đến địa chỉ email của bạn.
    Thay đổi sẽ có hiệu lực khi bạn nhấp vào liên kết xác nhận trong email.
    Kiểm tra hộp thư của bạn. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Trở lại trang đăng nhập AuthenticationDoesNotAllowSendNewPassword=Chế độ xác thực là% s.
    Trong chế độ này, Dolibarr không thể biết và cũng không thay đổi mật khẩu của bạn.
    Liên hệ quản trị hệ thống của bạn nếu bạn muốn thay đổi mật khẩu của bạn. EnableGDLibraryDesc=Cài đặt hoặc kích hoạt thư viện GD trên bản cài đặt PHP của bạn để sử dụng tùy chọn này. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Hóa đơn %s đã được xác nhận. EMailTextInvoicePayed=Hóa đơn %s đã được thanh toán. EMailTextProposalValidated=Đề xuất %s đã được xác nhận. EMailTextProposalClosedSigned=Đề xuất %s đã được đóng đã ký. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Đơn hàng %s đã được xác nhận. EMailTextOrderApproved=Đơn hàng %s đã được phê duyệt. EMailTextOrderValidatedBy=Đơn hàng %s đã được ghi lại bởi %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Đóng Autofill = Autofill + +# externalsite +ExternalSiteSetup=Thiết lập liên kết đến trang web bên ngoài +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Mô-đun trang web bên ngoài được cấu hình không đúng. +ExampleMyMenuEntry=Mục menu của tôi + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Không thể xóa bỏ các tập tin %s. +FTPFailedToRemoveDir=Không thể xóa thư mục %s : kiểm tra quyền và thư mục đó là rỗng. +FTPPassiveMode=Chế độ thụ động +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Lỗi khi tải tệp tin %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/vi_VN/products.lang b/htdocs/langs/vi_VN/products.lang index a7b84c95a9f..e98ea34bf3e 100644 --- a/htdocs/langs/vi_VN/products.lang +++ b/htdocs/langs/vi_VN/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Bạn Bạn có chắc chắn muốn xóa dòng sản p ProductSpecial=Đặc biệt QtyMin=S.lượng mua tối thiểu PriceQtyMin=Giá cho s.lượng tối thiểu -PriceQtyMinCurrency=Giá cho s.lượng này (chưa chiết khấu) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=Tỷ lệ VAT (cho nhà cung cấp/ sản phẩm này) DiscountQtyMin=Chiết khấu cho s.lượng này NoPriceDefinedForThisSupplier=Không có giá/ s.lượng được định rõ cho nhà cung cấp/ sản phẩm này @@ -261,7 +262,7 @@ Quarter1=Quý 1 Quarter2=Quý 2 Quarter3=Quý 3 Quarter4=Quý 4 -BarCodePrintsheet=In barcode +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=Với công cụ này, bạn có thể in các tờ giấy dán mã vạch. Chọn định dạng của nhãn dán, loại mã vạch và giá trị của mã vạch, sau đó nhấp vào nút %s . NumberOfStickers=Số lượng nhãn để in trên trang PrintsheetForOneBarCode=In nhiều nhãn cho một mã vạch @@ -344,9 +345,9 @@ PossibleValues=Các giá trị có thể GoOnMenuToCreateVairants=Vào menu %s - %s để chuẩn bị các biến thể thuộc tính (như màu sắc, kích thước, ...) UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers ProductSupplierDescription=Mô tả sản phẩm của nhà cung cấp -UseProductSupplierPackaging=Sử dụng đóng gói theo giá của nhà cung cấp (tính toán lại số lượng theo bao bì được đặt theo giá của nhà cung cấp khi thêm / cập nhật dòng trong tài liệu của nhà cung cấp) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Đóng gói -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Số lượng của dòng được tính toán lại theo đóng gói của nhà cung cấp #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Hành động chỉ có hiệu lực trên b ProductsPricePerCustomer=Giá sản phẩm mỗi khách hàng ProductSupplierExtraFields=Thuộc tính bổ sung (Giá Nhà cung cấp) DeleteLinkedProduct=Xóa sản phẩm con được liên kết với sự kết hợp -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Giá bình quân gia quyền PMPValueShort=WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/vi_VN/projects.lang b/htdocs/langs/vi_VN/projects.lang index f8ce6f7a543..75037997ecc 100644 --- a/htdocs/langs/vi_VN/projects.lang +++ b/htdocs/langs/vi_VN/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Phần xem này hiển thị tất cả dự án và tác vụ m TasksDesc=Phần xem này hiển thị tất cả các dự án và tác vụ (quyền người dùng của bạn hiện đang cho phép bạn xem tất cả thông tin). AllTaskVisibleButEditIfYouAreAssigned=Tất cả các nhiệm vụ cho các dự án đủ điều kiện đều hiển thị, nhưng bạn chỉ có thể nhập thời gian cho nhiệm vụ được giao cho người dùng đã chọn. Phân công nhiệm vụ nếu bạn cần nhập thời gian vào nó. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Nhiệm vụ của dự án ProjectCategories=Thẻ dự án/ danh mục NewProject=Dự án mới @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Số tiền tiềm năng của dự án m OpportunitiesStatusForProjects=Số tiền tiềm năng của dự án theo trạng thái ShowProject=Hiển thị dự án ShowTask=Hiện tác vụ +SetThirdParty=Set third party SetProject=Lập dự án +OutOfProject=Out of project NoProject=Không có dự án được xác định hoặc tự tạo NbOfProjects=Số dự án NbOfTasks=Số công việc @@ -122,7 +125,8 @@ ValidateProject=Xác nhận dự án ConfirmValidateProject=Bạn có chắc chắn muốn xác nhận dự án này? CloseAProject=Đóng dự án ConfirmCloseAProject=Bạn có chắc chắn muốn đóng dự án này? -AlsoCloseAProject=Cũng như đóng dự án (giữ cho nó mở nếu bạn vẫn cần theo dõi các nhiệm vụ sản xuất trên đó) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=Mở dự án ConfirmReOpenAProject=Bạn có chắc chắn muốn mở lại dự án này? ProjectContact=Liên lạc của dự án @@ -165,7 +169,7 @@ OpportunityProbability=Xác suất tiềm năng OpportunityProbabilityShort=Xác suất tiềm năng OpportunityAmount=Số tiền tiềm năng OpportunityAmountShort=Số tiền tiềm năng -OpportunityWeightedAmount=Tổng trị giá cơ hội +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Tổng trị giá cơ hội OpportunityAmountAverageShort=Số tiền tiềm năng trung bình OpportunityAmountWeigthedShort=Số tiền tiềm năng thận trọng @@ -238,7 +242,7 @@ OppStatusPENDING=Chờ xử lý OppStatusWON=Thắng OppStatusLOST=Thua Budget=Ngân sách -AllowToLinkFromOtherCompany=Cho phép liên kết dự án từ công ty khác

    Các giá trị được hỗ trợ:
    - Giữ trống: Có thể liên kết bất kỳ dự án nào của công ty (mặc định)
    - "tất cả": Có thể liên kết bất kỳ dự án nào, thậm chí dự án của các công ty khác
    - Danh sách id của bên thứ ba được phân tách bằng dấu phẩy: có thể liên kết tất cả các dự án của các bên thứ ba đó(Ví dụ: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=Dự án %s mới nhất LatestModifiedProjects=Dự án sửa đổi %s mới nhất OtherFilteredTasks=Các nhiệm vụ được lọc khác @@ -259,7 +263,7 @@ TimeSpentInvoiced=Thời gian đã qua được lập hóa đơn TimeSpentForIntervention=Thời gian đã qua TimeSpentForInvoice=Thời gian đã qua OneLinePerUser=Một dòng trên mỗi người dùng -ServiceToUseOnLines=Dịch vụ được sử dụng trên các dòng +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Hóa đơn %s đã được tạo từ thời gian dành đã qua trên dự án InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Kiểm tra xem bạn nhập bảng thời gian vào các nhiệm vụ của dự án VÀ bạn có kế hoạch tạo (các) hóa đơn từ bảng chấm công để lập hóa đơn cho khách hàng của dự án (không kiểm tra xem bạn có kế hoạch tạo hóa đơn không dựa trên bảng thời gian đã nhập không). Lưu ý: Để tạo hóa đơn, hãy chuyển đến tab 'Thời gian sử dụng' của dự án và chọn các dòng để đưa vào. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/vi_VN/propal.lang b/htdocs/langs/vi_VN/propal.lang index 9f6c18b9e4f..fef81544d68 100644 --- a/htdocs/langs/vi_VN/propal.lang +++ b/htdocs/langs/vi_VN/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Không có đề xuất dự thảo CopyPropalFrom=Tạo đơn hàng đề xuất bằng cách sao chép đề nghị hiện tại CreateEmptyPropal=Tạo đề xuất thương mại trống hoặc từ danh sách các sản phẩm/ dịch vụ DefaultProposalDurationValidity=Thời gian hiệu lực mặc định của đơn hàng đề xuất (theo ngày) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Sử dụng liên hệ / địa chỉ với loại 'liên hệ theo dõi đề xuất' nếu được xác định thay vì địa chỉ bên thứ ba làm địa chỉ người nhận đề xuất ConfirmClonePropal=Bạn có chắc chắn muốn nhân bản đề xuất thương mại %s ? ConfirmReOpenProp=Bạn có chắc chắn muốn mở lại đề xuất thương mại %s ? @@ -64,36 +65,54 @@ AvailabilityPeriod=Độ chậm trễ có thể SetAvailability=Chỉnh thời gian trì hoãn sẵn có AfterOrder=sau đơn hàng OtherProposals=Các đơn hàng đề xuất khác + ##### Availability ##### AvailabilityTypeAV_NOW=Ngay lập tức AvailabilityTypeAV_1W=1 tuần AvailabilityTypeAV_2W=2 tuần AvailabilityTypeAV_3W=3 tuần AvailabilityTypeAV_1M=1 tháng -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Đại diện kinh doanh theo dõi đơn hàng đề xuất TypeContact_propal_external_BILLING=Liên lạc khách hàng về hóa đơn TypeContact_propal_external_CUSTOMER=Liên hệ với khách hàng sau-up đề nghị TypeContact_propal_external_SHIPPING=Liên lạc khách hàng để giao hàng + # Document models -DocModelAzurDescription=Mẫu hoàn chỉnh của báo giá (mẫu cũ của Cyan) -DocModelCyanDescription=Mẫu hoàn chỉnh của báo giá +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Theo bởi trường hợp +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Mặc định mẫu khi đóng cửa một đề xuất kinh doanh (chưa lập hoá đơn) DefaultModelPropalCreate=Tạo mô hình mặc định DefaultModelPropalToBill=Mặc định mẫu khi đóng cửa một đề xuất kinh doanh (được lập hoá đơn) -DefaultModelPropalClosed=Mặc định mẫu khi đóng cửa một đề xuất kinh doanh (chưa lập hoá đơn) +DocModelAzurDescription=Mẫu hoàn chỉnh của báo giá (mẫu cũ của Cyan) +DocModelCyanDescription=Mẫu hoàn chỉnh của báo giá +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Từ chối +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Văn bản chấp nhận, dấu công ty, ngày và chữ ký ProposalsStatisticsSuppliers=Thống kê đề xuất nhà cung cấp -CaseFollowedBy=Theo bởi trường hợp -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/vi_VN/recruitment.lang b/htdocs/langs/vi_VN/recruitment.lang index c1d145f9b0a..e6f3a651a40 100644 --- a/htdocs/langs/vi_VN/recruitment.lang +++ b/htdocs/langs/vi_VN/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Mức lương +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
    ... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/vi_VN/salaries.lang b/htdocs/langs/vi_VN/salaries.lang index da0535ce0e9..1f4b418f2a5 100644 --- a/htdocs/langs/vi_VN/salaries.lang +++ b/htdocs/langs/vi_VN/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Tài khoản kế toán được sử dụng cho bên thứ ba của người dùng -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Tài khoản kế toán chuyên dụng được xác định trên thẻ người dùng sẽ chỉ được sử dụng cho kế toán Sổ phụ. Tài khoản này sẽ được sử dụng cho Sổ cái chung và là giá trị mặc định của kế toán Sổ phụ nếu tài khoản kế toán chuyên dụng trên người dùng không được xác định. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Tài khoản kế toán theo mặc định cho các khoản thanh toán tiền lương CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Mức lương @@ -24,3 +24,4 @@ SalariesStatistics=Thống kê lương SalariesAndPayments=Lương và thanh toán ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/vi_VN/stocks.lang b/htdocs/langs/vi_VN/stocks.lang index 966f94237c8..65198013c61 100644 --- a/htdocs/langs/vi_VN/stocks.lang +++ b/htdocs/langs/vi_VN/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=Giới hạn tồn kho để cảnh báo và tồn ProductStockWarehouseUpdated=Giới hạn tồn kho để cảnh báo và tồn kho tối ưu mong muốn được cập nhật chính xác ProductStockWarehouseDeleted=Giới hạn tồn kho để cảnh báo và tồn kho tối ưu mong muốn được xóa chính xác AddNewProductStockWarehouse=Đặt giới hạn mới cho cảnh báo và tồn kho tối ưu mong muốn -AddStockLocationLine=Giảm số lượng sau đó nhấp để thêm kho khác cho sản phẩm này +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Ngày Kiểm kho Inventories=Kiểm kho NewInventory=Kiểm kho mới @@ -254,7 +254,7 @@ ReOpen=Mở lại ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=Bắt đầu InventoryStartedShort=Đã bắt đầu ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Cài đặt +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/vi_VN/ticket.lang b/htdocs/langs/vi_VN/ticket.lang index 9ca803d425d..14f78dccfb5 100644 --- a/htdocs/langs/vi_VN/ticket.lang +++ b/htdocs/langs/vi_VN/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Xóa vé Permission56004=Quản lý vé Permission56005=Xem vé của tất cả các bên thứ ba (không hiệu quả đối với người dùng bên ngoài, luôn bị giới hạn ở bên thứ ba mà họ phụ thuộc) +Tickets=Vé TicketDictType=Vé - Các loại TicketDictCategory=Vé - Nhóm TicketDictSeverity=Vé - Mức độ nghiêm trọng @@ -90,8 +91,8 @@ TicketPublicAccess=Giao diện công cộng không yêu cầu nhận dạng có TicketSetupDictionaries=Loại vé, mức độ nghiêm trọng và mã phân tích có thể được cấu hình từ từ điển TicketParamModule=Thiết lập biến thể mô-đun TicketParamMail=Thiết lập email -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Thông điệp văn bản được gửi sau khi tạo vé @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Văn bản được chỉ định ở đây sẽ được TicketParamPublicInterface=Thiết lập giao diện công cộng TicketsEmailMustExist=Yêu cầu một địa chỉ email hiện có để tạo vé TicketsEmailMustExistHelp=Trong giao diện công cộng, địa chỉ email đã được điền vào cơ sở dữ liệu để tạo một vé mới. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Giao diện công cộng TicketUrlPublicInterfaceLabelAdmin=URL thay thế cho giao diện công cộng TicketUrlPublicInterfaceHelpAdmin=Có thể xác định bí danh cho máy chủ web và do đó cung cấp giao diện công khai với một URL khác (máy chủ phải hoạt động như một proxy trên URL mới này) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Vé đã được chỉ định TicketChangeType=Đổi loại TicketChangeCategory=Thay đổi mã phân tích TicketChangeSeverity=Thay đổi mức độ nghiêm trọng -TicketAddMessage=Thêm thông điệp -AddMessage=Thêm thông điệp +TicketAddMessage=Add private message MessageSuccessfullyAdded=Đã thêm vé TicketMessageSuccessfullyAdded=Thông điệp đã được thêm thành công TicketMessagesList=Danh sách tin nhắn @@ -202,8 +206,8 @@ TicketSeverity=Mức độ nghiêm trọng ShowTicket=Xem vé RelatedTickets=Vé liên quan TicketAddIntervention=Tạo sự can thiệp -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Xác nhận đóng vé ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=Gửi tin nhắn qua email TicketNewMessage=Tin nhắn mới ErrorMailRecipientIsEmptyForSendTicketMessage=Người nhận trống rỗng. Không gửi email TicketGoIntoContactTab=Vui lòng vào tab "Danh bạ" để chọn chúng -TicketMessageMailIntro=Giới thiệu +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Văn bản này chỉ được thêm vào lúc bắt đầu email và sẽ không được lưu. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Chữ ký -TicketMessageMailSignatureHelp=Văn bản này chỉ được thêm vào cuối email và sẽ không được lưu. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Chữ ký của email phản hồi -TicketMessageMailSignatureHelpAdmin=Văn bản này sẽ được chèn sau thông báo phản hồi. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Văn bản này sẽ được chèn sau thông báo phản hồi. TicketMessageHelp=Chỉ văn bản này sẽ được lưu trong danh sách tin nhắn trên thẻ vé. TicketMessageSubstitutionReplacedByGenericValues=Các biến thay thế được thay thế bằng các giá trị chung. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Thời gian trôi qua kể từ khi TicketTimeToRead=Thời gian trôi qua trước khi đọc TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Một tin nhắn mới đã được TicketAssignedToYou=Vé đã được chỉ định TicketAssignedEmailBody=Bạn đã được chỉ định vé # %s bởi %s MarkMessageAsPrivate=Đánh dấu tin nhắn là riêng tư +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Thông điệp này sẽ không hiển thị cho người dùng bên ngoài TicketEmailOriginIssuer=Tổ chức phát hành gốc của vé InitialMessage=Tin nhắn khởi đầu @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Bạn có thể xem tiến trình của TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Xin đừng trả lời trực tiếp email này! Sử dụng liên kết để trả lời trong giao diện. TicketPublicInfoCreateTicket=Biểu mẫu này cho phép bạn ghi lại một vé hỗ trợ trong hệ thống quản lý của chúng tôi. -TicketPublicPleaseBeAccuratelyDescribe=Hãy mô tả chính xác vấn đề. Cung cấp hầu hết thông tin có thể để cho phép chúng tôi xác định chính xác yêu cầu của bạn. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Vui lòng nhập ID theo dõi vé TicketTrackId=ID theo dõi công khai OneOfTicketTrackId=Một trong những ID theo dõi của bạn diff --git a/htdocs/langs/vi_VN/users.lang b/htdocs/langs/vi_VN/users.lang index 7990ecc606c..4e89c22d5b8 100644 --- a/htdocs/langs/vi_VN/users.lang +++ b/htdocs/langs/vi_VN/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Xóa khỏi nhóm PasswordChangedAndSentTo=Mật khẩu thay đổi và gửi đến %s. PasswordChangeRequest=Yêu cầu thay đổi mật khẩu cho %s PasswordChangeRequestSent=Yêu cầu thay đổi mật khẩu cho %s đã gửi đến % s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Xác nhận đặt lại mật khẩu MenuUsersAndGroups=Người dùng & Nhóm @@ -68,7 +68,6 @@ CreateDolibarrLogin=Tạo một người dùng CreateDolibarrThirdParty=Tạo một bên thứ ba LoginAccountDisableInDolibarr=Tài khoản bị vô hiệu hóa trong Dolibarr. UsePersonalValue=Dùng giá trị cá nhân -InternalUser=Người dùng bên trong ExportDataset_user_1=Người dùng và các tính chất của họ DomainUser=Domain người dùng %s Reactivate=Kích hoạt lại @@ -128,3 +127,5 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/vi_VN/website.lang b/htdocs/langs/vi_VN/website.lang index def041bf053..25e7e021f06 100644 --- a/htdocs/langs/vi_VN/website.lang +++ b/htdocs/langs/vi_VN/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Mã +WebsiteName=Name of the website WebsiteSetupDesc=Tạo ở đây các trang web bạn muốn sử dụng. Sau đó vào menu Trang web để chỉnh sửa chúng. DeleteWebsite=Xóa trang web ConfirmDeleteWebsite=Bạn có chắc chắn muốn xóa trang web này? Tất cả các trang và nội dung của nó cũng sẽ bị xóa. Các tệp được tải lên (như vào thư mục trung gian, mô-đun ECM, ...) sẽ vẫn còn. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Bổ sung ở dưới cùng của Tiêu đề HTML (chung ch WEBSITE_ROBOT=Tệp robot (robot.txt) WEBSITE_HTACCESS=Trang web tệp .htaccess WEBSITE_MANIFEST_JSON=Trang web tệp manifest.json -WEBSITE_README=Tập tin README.md WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Nhập vào đây dữ liệu meta hoặc thông tin giấy phép để lưu tệp README.md. nếu bạn phân phối trang web của mình dưới dạng mẫu, tệp sẽ được đưa vào gói mẫu. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Tiêu đề HTML (chỉ dành riêng cho trang này) PageNameAliasHelp=Tên hoặc bí danh của trang.
    Bí danh này cũng được sử dụng để giả mạo SEO URL khi trang web được chạy từ máy chủ ảo của máy chủ Web (như Apacke, Nginx, ...). Sử dụng nút " %s " để chỉnh sửa bí danh này. EditTheWebSiteForACommonHeader=Lưu ý: Nếu bạn muốn xác định tiêu đề được cá nhân hóa cho tất cả các trang, hãy chỉnh sửa tiêu đề ở cấp trang thay vì trên trang / vùng chứa. @@ -42,10 +43,12 @@ ViewPageInNewTab=Xem trang trong tab mới SetAsHomePage=Đặt làm trang chủ RealURL=URL thật ViewWebsiteInProduction=Xem trang web bằng URL nhà +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Example to use in Apache virtual host setup: YouCanAlsoTestWithPHPS=Sử dụng với máy chủ nhúng PHP
    Trên môi trường phát triển, bạn có thể muốn kiểm tra trang web với máy chủ web nhúng PHP (yêu cầu PHP 5.5) bằng cách chạy
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Chạy trang web của bạn với một nhà cung cấp Dolibarr Hosting khác
    Nếu bạn không có máy chủ web như Apache hoặc NGinx có sẵn trên internet, bạn có thể xuất và nhập trang web của mình vào một phiên bản Dolibarr khác được cung cấp bởi một nhà cung cấp dịch vụ lưu trữ Dolibarr khác cung cấp tích hợp đầy đủ với mô-đun Trang web. Bạn có thể tìm thấy danh sách một số nhà cung cấp dịch vụ lưu trữ Dolibarr trên https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=Đọc WritePerm=Viết @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Bạn có thể chỉnh sửa mã nguồn HTML bằ YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Nhân bản Trang / vùng chứa CloneSite=Nhân bản trang web SiteAdded=Đã thêm trang web @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index 23c32bf2ecd..8510eefe75b 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=非欧共体国家 CountriesInEECExceptMe=欧共体国家除了%s CountriesExceptMe=除%s以外的所有国家/地区 AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=未在设置中定义的供应商的主要会 MainAccountForUsersNotDefined=未在设置中定义的用户的主要会计科目 MainAccountForVatPaymentNotDefined=未在设置中定义的税款支付的主要会计科目 MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=会计区 AccountancyAreaDescIntro=会计模块的使用分几步完成: @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=禁止在银行帐户中直接记录交易 ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=在日记帐上启用草稿导出 ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=销售日记帐 -ACCOUNTING_PURCHASE_JOURNAL=采购日记帐 -ACCOUNTING_MISCELLANEOUS_JOURNAL=杂项日记帐 +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=费用报表日记帐 -ACCOUNTING_SOCIAL_JOURNAL=社会日记帐 +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=有新的日常报表 +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=社会日记帐 ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=会计科目-等待 -DONATION_ACCOUNTINGACCOUNT=会计科目-登记捐款 -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=销售产品的默认会计科目(如果未在产品说明书中定义,则使用) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=已购买服务的默认会计科目(如果未在服务单中定义,则使用) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=默认情况下,已售出服务的会计科目(如果未在服务单中定义,则使用) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=文件类型 Docdate=日期 @@ -211,7 +217,7 @@ Codejournal=日记帐 JournalLabel=Journal label NumPiece=件数 TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=您可以在此处定义一些会计科目组。它们将用于会计分类报告。 @@ -265,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=总销售利润率 -DescVentilCustomer=请在此处查看与产品会计科目绑定(或不绑定)的客户发票行列表 -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=请在此查看发票客户及其产品会计科目的行列表 -DescVentilTodoCustomer=绑定尚未与产品会计科目绑定的发票行 -ChangeAccount=使用以下会计科目更改所选行的产品/服务会计科目: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=绑定费用报表行尚未绑定费用会计帐户 DescVentilExpenseReport=请在此处查看费用会计帐户绑定(或不绑定)的费用报表行列表 @@ -279,24 +285,24 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=请在此查询费用报表行及其费用会计帐户清单 Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=自动绑定 AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计科目,因为正被使用。 +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=平衡 FicheVentilation=绑定卡 GeneralLedgerIsWritten=交易是在Ledger中写的 GeneralLedgerSomeRecordWasNotRecorded=某些交易无法记录。如果没有其他错误消息,这可能是因为它们已经被记录。 NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=未绑定到任何会计科目的产品列表 +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=更改绑定 Accounted=占总账 NotYetAccounted=Not yet transferred to accounting @@ -319,9 +325,10 @@ AccountingJournalType1=杂项业务 AccountingJournalType2=销售 AccountingJournalType3=采购 AccountingJournalType4=银行 -AccountingJournalType5=费用报告 +AccountingJournalType5=费用报表 AccountingJournalType8=库存 AccountingJournalType9=拥有全新 +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=该日常报表已经使用 AccountingAccountForSalesTaxAreDefinedInto=注意:销售税的会计科目已定义到菜单 %s - %s NumberOfAccountancyEntries=Number of entries @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=导出日常报表草稿 @@ -398,7 +407,11 @@ Calculated=计算 Formula=公式 ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,9 +420,10 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? -ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=批量删除确认 ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? ## Error @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=会计分录 @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=费用报告日常报表 -InventoryJournal=库存日常报表 NAccounts=%s accounts diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 87ef8d603fb..957f4dab7ef 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -1,26 +1,26 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=在PDF中打印产品项目的参考编号和期限 BoldLabelOnPDF=在PDF中使用粗体打印产品的标签 -Foundation=机构 +Foundation=基金会 Version=版本 -Publisher=出版者 +Publisher=发布者 VersionProgram=程序版本 VersionLastInstall=初始安装版本 VersionLastUpgrade=最新版本升级 -VersionExperimental=试验 +VersionExperimental=试验性 VersionDevelopment=开发 VersionUnknown=未知 VersionRecommanded=推荐 FileCheck=文件集完整性检查 -FileCheckDesc=使用此工具,您可以将文件与正式文件进行比较,以检查文件的完整性和应用程序的设置。也可以检查某些设置常数的值。您可以使用此工具来确定是否已修改任何文件(例如,被黑客入侵)。 -FileIntegrityIsStrictlyConformedWithReference=文件完整性严格符合参考。 +FileCheckDesc=使用此工具,您可以将文件与正式文件进行比较,以检查文件的完整性和应用程序的设置。也可以检查某些设置常数的值。您可以使用此工具来确定是否有任何文件被修改(例如,被黑客入侵)。 +FileIntegrityIsStrictlyConformedWithReference=文件完整性严格符合参考值。 FileIntegrityIsOkButFilesWereAdded=文件完整性检查已通过,但添加了一些新文件。 -FileIntegritySomeFilesWereRemovedOrModified=文件完整性检查失败。某些文件已被修改,删除或添加。 +FileIntegritySomeFilesWereRemovedOrModified=文件完整性检查失败。某些文件已被修改、删除或添加。 GlobalChecksum=全局校验和 MakeIntegrityAnalysisFrom=对应用程序文件进行完整性分析 LocalSignature=嵌入式本地签名(不太可靠) -RemoteSignature=远程遥控签名(更可靠) -FilesMissing=缺少文件 +RemoteSignature=远端签名(更可靠) +FilesMissing=缺少的文件 FilesUpdated=已更新的文件 FilesModified=已修改的文件 FilesAdded=增加的文件 @@ -31,29 +31,27 @@ SessionId=会话 ID SessionSaveHandler=会话保存处理程序 SessionSavePath=会话保存位置 PurgeSessions=清空会话 -ConfirmPurgeSessions=您真的要清除所有会话吗?它将断开每个用户(您自己除外)。 +ConfirmPurgeSessions=您真的要清空所有会话吗?它将断开每个用户(您自己除外)。 NoSessionListWithThisHandler=您 PHP 中设置的保存会话处理程序不允许列出运行中的会话。 LockNewSessions=锁定新连接 ConfirmLockNewSessions=你确定要限制 Dolibarr 的所有新连接,只允许您自己连入?此后将只有用户 %s 可以连入。 -UnlockNewSessions=取消连接锁定 +UnlockNewSessions=移除连接锁定 YourSession=你的会话 Sessions=用户会话 WebUserGroup=Web 服务器用户/组 PermissionsOnFiles=文件权限 PermissionsOnFilesInWebRoot=Web根目录中文件的权限 PermissionsOnFile=文件%s的权限 -NoSessionFound=您的PHP配置似乎不允许列出活动会话。可以保护用于保存会话的目录( %s )(例如,通过OS权限或PHP指令open_basedir)。 -DBStoringCharset=数据库保存数据的字符编码 -DBSortingCharset=数据库排序数据的字符编码 +NoSessionFound=您的 PHP 配置似乎不允许列出活动会话。用于保存会话的目录 ( %s ) 可能受到保护(例如通过操作系统权限或 PHP 指令 open_basedir)。 +DBStoringCharset=保存数据的数据库字符集 +DBSortingCharset=排序数据的数据库字符集 HostCharset=主机字符集 -ClientCharset=客户端的字符编码 -ClientSortingCharset=客户核对 +ClientCharset=客户端的字符集 +ClientSortingCharset=客户端整理 WarningModuleNotActive= %s 模块必须启用 -WarningOnlyPermissionOfActivatedModules=仅与已启用模块相关的权限显示在此。您可以在 "主页"->"设置"->"模块"页面中启用其它模块。 -DolibarrSetup=Dolibarr安装及升级 - 向导 -InternalUser=内部员工用户 -ExternalUser=外部用户 -InternalUsers=内部员工用户 +WarningOnlyPermissionOfActivatedModules=仅与已启用模块相关的权限显示在此。您可以在 "首页"->"设置"->"模块"页面中启用其它模块。 +DolibarrSetup=Dolibarr安装或升级 +InternalUsers=内部用户 ExternalUsers=外部用户 UserInterface=用户界面 GUISetup=主题 @@ -61,41 +59,41 @@ SetupArea=设置 UploadNewTemplate=上传新模板 FormToTestFileUploadForm=文件上传功能测试 ModuleMustBeEnabled=必须启用模块/应用程序 %s -ModuleIsEnabled=启用了模块/应用程序 %s +ModuleIsEnabled=模块/应用程序 %s 已启用 IfModuleEnabled=注:“是”仅在模块 %s 启用时有效 -RemoveLock=删除/重命名文件 %s (如果存在),以允许使用更新/安装工具。 -RestoreLock=恢复文件 %s 的只读权限,以禁止升级工具的使用。 +RemoveLock=如果存在文件 %s ,将它删除/重命名,以允许使用更新/安装工具。 +RestoreLock=恢复文件 %s 的读取权限,以禁止更新/安装工具的使用。 SecuritySetup=安全设置 PHPSetup=PHP设置 -OSSetup=系统设置 -SecurityFilesDesc=在此定义与上载文件的安全性相关的选项。 +OSSetup=操作系统设置 +SecurityFilesDesc=在此处定义与上传文件的安全性相关的选项。 ErrorModuleRequirePHPVersion=错误,此模块要求 PHP 版本 %s 或更高 ErrorModuleRequireDolibarrVersion=错误,此模块要求 Dolibarr 版本 %s 或更高 ErrorDecimalLargerThanAreForbidden=错误,不支持超过 %s 的精度。 -DictionarySetup=字典的设置 +DictionarySetup=字典设置 Dictionary=字典库 -ErrorReservedTypeSystemSystemAuto=类型的值'system'和'systemauto'保留。您可以使用“user”作为值来添加自己的记录 +ErrorReservedTypeSystemSystemAuto=类型的值'system'和'systemauto'为保留值。您可以使用“user”作为值来添加自己的记录 ErrorCodeCantContainZero=编码不能包含 0 DisableJavascript=禁用 JavaScript 和 Ajax 功能 -DisableJavascriptNote=Note: For test or debug purpose only. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user +DisableJavascriptNote=注意:仅用于测试或调试目的。为了针对盲人或文本浏览器进行优化,建议使用用户配置文件上的设置 UseSearchToSelectCompanyTooltip=此外,如果您有大量第三方(> 100 000),您可以通过在"设置"-> "其他"中将常量COMPANY_DONOTSEARCH_ANYWHERE设置为1来提高速度。然后搜索将限制为以字符串的开头。 UseSearchToSelectContactTooltip=此外,如果您有大量第三方(> 100 000),您可以通过在"设置"-> "其他"中将常量CONTACT_DONOTSEARCH_ANYWHERE设置为1来提高速度。然后搜索将限制为以字符串开头。 -DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.
    This may increase performance if you have a large number of third parties, but it is less convenient. -DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. -NumberOfKeyToSearch=Number of characters to trigger search: %s +DelaiedFullListToSelectCompany=在任意键被按下后再加载第三方组合列表的内容。
    如果您有大量第三方,这可能会提高性能,但不太方便。 +DelaiedFullListToSelectContact=在任意键被按下后再加载联系人组合列表列表的内容。
    如果您有大量联系人,这可能会提高性能,但不太方便。 +NumberOfKeyToSearch=可触发搜索的字符数量:%s NumberOfBytes=字节数 -SearchString=搜寻字串 +SearchString=搜索字符串 NotAvailableWhenAjaxDisabled=Ajax 禁用时不可用 -AllowToSelectProjectFromOtherCompany=在合作方的文档上,可以选择链接到另一个合作方的项目 -TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months -JavascriptDisabled=禁用 JavaScript -UsePreviewTabs=使用预览标签 +AllowToSelectProjectFromOtherCompany=在第三方的文件上,可以选择与另一个第三方关联的项目 +TimesheetPreventAfterFollowingMonths=在以下几个月后阻止记录花费的时间 +JavascriptDisabled=JavaScript已禁用 +UsePreviewTabs=使用预览标签页 ShowPreview=显示预览 -ShowHideDetails=显示隐藏详细信息 -PreviewNotAvailable=无预览 +ShowHideDetails=显示-隐藏详细信息 +PreviewNotAvailable=预览不可用 ThemeCurrentlyActive=当前使用的主题 -MySQLTimeZone=MySql 服务器的时区 -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +MySQLTimeZone=MySql(数据库)服务器的时区 +TZHasNoEffect=日期由数据库服务器存储和返回,类似字符串一样提交和保存。时区仅在使用 UNIX_TIMESTAMP 函数时有效(Dolibarr 不应使用该函数,因此数据库时区应该没有影响,即使在输入数据后更改了时区)。 Space=空间 Table=表 Fields=字段 @@ -103,24 +101,24 @@ Index=索引 Mask=格式掩码 NextValue=下一个值 NextValueForInvoices=下一个值(发票) -NextValueForCreditNotes=下一个值(贷方记录) -NextValueForDeposit=下一个值(首付) +NextValueForCreditNotes=下一个值(贷记单) +NextValueForDeposit=下一个值(预付款) NextValueForReplacements=下一个值(替换) -MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter +MustBeLowerThanPHPLimit=注意:您的 PHP 当前配置将上传的最大文件大小限制为 %s %s,与此参数的值无关 NoMaxSizeByPHPLimit=注:您的 PHP 配置参数中没有设置限制 -MaxSizeForUploadedFiles=上传文件的最大尺寸(0表示不允许上传) -UseCaptchaCode=登陆页面启用图形验证码 -AntiVirusCommand=防毒命令的完整路径 -AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe +MaxSizeForUploadedFiles=上传文件的最大尺寸(0表示禁止任何上传) +UseCaptchaCode=在登录页面和一些公共页面上使用图形验证代码 (CAPTCHA) +AntiVirusCommand=杀毒命令的完整路径 +AntiVirusCommandExample=ClamAv Daemon示例(需要 clamav-daemon):/usr/bin/clamdscan
    ClamWin 示例(非常非常慢):c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= 更多命令行参数 -AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AntiVirusParamExample=ClamAv Daemon 示例:--fdpass
    ClamWin 示例:--database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=会计模块设置 UserSetup=用户管理设置 MultiCurrencySetup=多币种设置 -MenuLimits=精确度 +MenuLimits=限制和精度 MenuIdParent=父菜单ID DetailMenuIdParent=父菜单ID (空表示顶级菜单) -ParentID=Parent ID +ParentID=父ID DetailPosition=排序编号,以确定菜单位置 AllMenus=全部 NotConfigured=模块或应用未配置 @@ -135,37 +133,37 @@ IdModule=模块ID IdPermissions=权限ID LanguageBrowserParameter=参数 %s LocalisationDolibarrParameters=本地化参数 -ClientHour=(用户)客户端时间 +ClientHour=客户端(用户)时间 OSTZ=服务器操作系统时区 PHPTZ=PHP服务器时区 -DaylingSavingTime=夏令时间 +DaylingSavingTime=夏令时 CurrentHour=PHP 服务器时间 CurrentSessionTimeOut=当前会话超时 -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris" -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server. +YouCanEditPHPTZ=您可以尝试添加一个 .htaccess 文件来设置不同的 PHP 时区(不是必需的),其中包含类似“SetEnv TZ Europe/Paris”的行 +HoursOnThisPageAreOnServerTZ=警告,与其他屏幕相反,此页面上的小时不是您当地的时区,而是服务器的时区。 Box=插件 Boxes=插件 -MaxNbOfLinesForBoxes=插件清单数量最大值 -AllWidgetsWereEnabled=全部插件已启用 +MaxNbOfLinesForBoxes=插件的最大行数 +AllWidgetsWereEnabled=全部可用的小工具都已启用 PositionByDefault=默认顺序 Position=位置 -MenusDesc=菜单管理器定义两菜单中的内容(横向和纵向菜单栏)。 -MenusEditorDesc=菜单编辑器允许您定义自定义菜单条目。请小心使用,以避免不稳定和永久无法访问的菜单项。
    某些模块添加菜单项(通常在菜单全部中)。如果您错误地删除了其中一些条目,则可以恢复它们禁用并重新启用该模块。 +MenusDesc=菜单管理器定义两个菜单中的内容(横向和纵向菜单栏)。 +MenusEditorDesc=菜单编辑器允许您定义自定义菜单条目。请小心使用,以避免不稳定和永久无法访问某些菜单项。
    某些模块会添加菜单项(通常在菜单全部中)。如果您错误地移除了其中一些条目,则可以禁用和重新启用该模块来恢复它们。 MenuForUsers=用户菜单 LangFile=.lang 文件 Language_en_US_es_MX_etc=语言(en_US,es_MX等) System=系统 SystemInfo=系统信息 SystemToolsArea=系统工具区 -SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature. +SystemToolsAreaDesc=该区域提供管理功能。使用菜单来选择所需的功能。 Purge=清空 -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. +PurgeAreaDesc=此页面允许您删除 Dolibarr 生成或存储的所有文件(临时文件或 %s 目录中的所有文件)。通常您不需要使用此功能。它是为那些托管在不提供删除 Web 服务器生成的文件的权限的提供商的Dolibarr用户提供的一种解决方法。 PurgeDeleteLogFile=删除系统日志模块定义的日志文件%s(无数据丢失风险) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Parameter can be 'tempfilesold', 'logfiles' or both 'tempfilesold+logfiles'. Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files (no risk of losing data) -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
    This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files. +PurgeDeleteTemporaryFiles=删除所有日志和临时文件(没有丢失数据的风险)。参数可以是“tempfilesold”、“logfiles”或两者都是“tempfilesold+logfiles”。注意:仅当临时目录创建时间超过 24 小时时,才会删除临时文件。 +PurgeDeleteTemporaryFilesShort=删除日志和临时文件(没有丢失数据的风险) +PurgeDeleteAllFilesInDocumentsDir=删除此目录中的所有文件: %s
    这将删除所有生成的与功能相关的文档(第三方、发票等...)、上传到 ECM 模块的文件、数据库备份转储和临时文件。 PurgeRunNow=立即清空 -PurgeNothingToDelete=未删除目录或文件 +PurgeNothingToDelete=没有要删除的目录或文件。 PurgeNDirectoriesDeleted=%s 个文件或目录删除。 PurgeNDirectoriesFailed=删除 %s文件或目录失败 PurgeAuditEvents=清空所有安全事件 @@ -181,14 +179,14 @@ NoBackupFileAvailable=没有可用的备份文件。 ExportMethod=导出方法 ImportMethod=导入方法 ToBuildBackupFileClickHere=要建立一个备份文件,请单击此处 -ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.
    For example: +ImportMySqlDesc=要导入 MySQL 备份文件,您可以使用服务提供商的 phpMyAdmin 或在命令行使用mysql 命令。
    例如: ImportPostgreSqlDesc=导入备份文件,你必须使用 pg_restore 命令行命令: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=备份文件名: Compression=压缩 -CommandsToDisableForeignKeysForImport=导入时禁用 Foreign Key 的命令 -CommandsToDisableForeignKeysForImportWarning=如果你希望稍候能恢复您的SQL转储则必须使用。 +CommandsToDisableForeignKeysForImport=导入时禁用外键的命令 +CommandsToDisableForeignKeysForImportWarning=如果您希望以后能够恢复您的 SQL转储,则为必填项 ExportCompatibility=生成导出文件的兼容性 ExportUseMySQLQuickParameter=使用--quick参数 ExportUseMySQLQuickParameterHelp=“ --quick”参数有助于限制大型表的RAM消耗。 @@ -204,234 +202,235 @@ NameColumn=名称列 ExtendedInsert=扩展 INSERT NoLockBeforeInsert=INSERT 命令前后没有锁定命令 DelayedInsert=延迟插入 -EncodeBinariesInHexa=二进制数据以十六进制编码 +EncodeBinariesInHexa=以十六进制编码二进制数据 IgnoreDuplicateRecords=忽略重复记录错误(INSERT IGNORE) AutoDetectLang=自动检测(浏览器的语言) FeatureDisabledInDemo=功能在演示版中已禁用 FeatureAvailableOnlyOnStable=功能仅适用于官方稳定版本 -BoxesDesc=资讯框是一些页面中显示信息的屏幕区域。你可以选择目标页面并点击“启用”或垃圾桶按钮来显示或禁用这些信息域。 +BoxesDesc=插件是一些页面中显示信息的屏幕区域。你可以选择目标页面和点击“启用”或垃圾桶按钮来显示或禁用这些插件。 OnlyActiveElementsAreShown=仅显示 已启用模块 的元素。 -ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. -ModulesDesc2=Click the wheel button %s to configure the module/application. -ModulesMarketPlaceDesc=你能在外部互联网查找到并下载更多的功能模块... -ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. -ModulesMarketPlaces=更多模块... -ModulesDevelopYourModule=开发自己的模块 -ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. -DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)... +ModulesDesc=模块/应用程序确定软件中可用的功能。某些模块需要在激活模块后授予用户权限。单击每个模块的开/关按钮 %s 以启用或禁用模块/应用程序。 +ModulesDesc2=单击齿轮按钮 %s 以配置模块/应用程序。 +ModulesMarketPlaceDesc=您可以在 Internet 上的外部网站上找到更多可下载的模块... +ModulesDeployDesc=如果您的文件系统上的权限允许,您可以使用此工具部署外部模块。然后,该模块将在选项卡 %s 上可见。 +ModulesMarketPlaces=查找外部应用程序/模块 +ModulesDevelopYourModule=开发您自己的应用程序/模块 +ModulesDevelopDesc=您也可以开发自己的模块或寻找合作伙伴为您开发模块。 +DOLISTOREdescriptionLong=无需打开 www.dolistore.com 网站来查找外部模块,您可以使用此嵌入式工具为您在外部市场上执行搜索(可能很慢,需要互联网访问)... NewModule=新模块 FreeModule=空余 CompatibleUpTo=与版本%s兼容 NotCompatible=此模块似乎与您的Dolibarr %s(Min %s - Max %s)不兼容。 -CompatibleAfterUpdate=此模块需要更新Dolibarr %s(Min %s - Max %s)。 +CompatibleAfterUpdate=此模块需要更新您的Dolibarr %s(最低版本 %s - 最高版本 %s)。 SeeInMarkerPlace=在市场上看到 SeeSetupOfModule=参见模块设置 %s -SetOptionTo=Set option %s to %s +SetOptionTo=将选项 %s 设置为 %s Updated=已更新 AchatTelechargement=购买/下载 -GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. -DoliStoreDesc=DoliStore,为 Dolibarr 的 ERP/CRM 的外部模块官方市场 -DoliPartnersDesc=List of companies providing custom-developed modules or features.
    Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module. -WebSiteDesc=参考网址查找更多模块... -DevelopYourModuleDesc=一些开发自己模块的解决方案...... -URL=网址 -RelativeURL=相关URL -BoxesAvailable=插件可用 +GoModuleSetupArea=要部署/安装新模块,请转到模块设置区域: %s 。 +DoliStoreDesc=DoliStore,为 Dolibarr ERP/CRM 提供外部模块的官方市场 +DoliPartnersDesc=提供定制开发模块或功能的公司列表。
    注意:由于 Dolibarr 是一个开源应用程序, 任何有 PHP 编程经验的人 都应该能够开发模块。 +WebSiteDesc=可以获取更多附加(非核心)模块的外部网站... +DevelopYourModuleDesc=一些开发您自己的模块的解决方案...... +URL=URL +RelativeURL=相对URL +BoxesAvailable=有可用的插件 BoxesActivated=插件已启用 -ActivateOn=启用 -ActiveOn=启用 -ActivatableOn=可激活 +ActivateOn=启用日期 +ActiveOn=已启用日期 +ActivatableOn=在…可启用 SourceFile=来源文件 AvailableOnlyIfJavascriptAndAjaxNotDisabled=仅当 JavaScript 启用时可用 -Required=必要 +Required=必要的 UsedOnlyWithTypeOption=仅供某些议程选项使用 Security=安全 Passwords=密码 -DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option. -MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option. +DoNotStoreClearPassword=加密存储在数据库中的密码(不保存为纯文本)。强烈建议激活此选项。 +MainDbPasswordFileConfEncrypted=加密存储在 conf.php 中的数据库密码。强烈建议激活此选项。 InstrucToEncodePass=要将 conf.php 文件中的密码加密,替换行
    $ dolibarr_main_db_pass="..."

    $dolibarr_main_db_pass="crypted:%s" InstrucToClearPass=要在conf.php文件中使用将明文密码,替换行
    $ dolibarr_main_db_pass="crypted:..."

    $dolibarr_main_db_pass="%s" -ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation. -ProtectAndEncryptPdfFilesDesc=PDF保护允许在PDF浏览器中阅读和打印PDF,但无法编辑和复制内容。请注意,使用此功能将导致生成全局多页合并PDF的功能无效(例如未支付账单)。 +ProtectAndEncryptPdfFiles=保护生成的 PDF 文件。不建议这样做,因为它会阻止批量 PDF 生成。 +ProtectAndEncryptPdfFilesDesc=PDF 文档的保护使其可以使用任何 PDF 浏览器进行阅读和打印。但是,无法再进行编辑和复制。请注意,使用此功能会使构建全局合并 PDF 不起作用。 Feature=功能 DolibarrLicense=授权 Developpers=开发者/贡献者 OfficialWebSite=Dolibarr官方网站 -OfficialWebSiteLocal=内部网站 (%s) -OfficialWiki=Dolibarr文档/ Wiki +OfficialWebSiteLocal=本地网站 (%s) +OfficialWiki=Dolibarr文档/Wiki OfficialDemo=Dolibarr在线演示 -OfficialMarketPlace=官方市场提供外部模块/扩展 -OfficialWebHostingService=引用网络托管服务(云主机) +OfficialMarketPlace=外部模块/插件的官方市场 +OfficialWebHostingService=可参考的网络托管服务商(云托管) ReferencedPreferredPartners=首选合作伙伴 OtherResources=其他资源 ExternalResources=外部资源 SocialNetworks=社交网络 SocialNetworkId=社交网络ID -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
    take a look at the Dolibarr Wiki:
    %s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
    %s -HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. -HelpCenterDesc2=此资源的一些部分,仅有英文 可用。 +ForDocumentationSeeWiki=要查找用户或开发人员文档(文档、常见问题解答...),请查看 Dolibarr Wiki:
    %s +ForAnswersSeeForum=对于其他的任何问题/帮助,您可以使用 Dolibarr 论坛:
    %s +HelpCenterDesc1=以下是获取 Dolibarr 帮助和支持的一些资源。 +HelpCenterDesc2=此资源的一些部分仅以英文 提供。 CurrentMenuHandler=当前菜单处理程序 MeasuringUnit=计量单位 LeftMargin=左页边距 -TopMargin=顶页边距 +TopMargin=上页边距 PaperSize=纸张类型 Orientation=方向 SpaceX=空间X. SpaceY=空间Y. FontSize=字体大小 Content=内容 -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +ContentForLines=为每个产品或服务显示的内容(来自 Content 的变量 __LINES__) NoticePeriod=通知期 NewByMonth=按月新增 Emails=电子邮件 EMailsSetup=电子邮件设置 -EMailsDesc=This page allows you to set parameters or options for email sending. +EMailsDesc=此页面允许您设置电子邮件发送的参数或选项。 EmailSenderProfiles=电子邮件发件人资料 -EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email. +EMailsSenderProfileDesc=您可以将此部分留空。如果您在此处输入一些电子邮件地址,当您撰写新电子邮件时,您可以从可选的发件人列表组合框中选择。 MAIN_MAIL_SMTP_PORT=SMTP/SMTPS 端口 ( php.ini 文件中的默认值:%s) MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS 主机 ( php.ini 文件中的默认值:%s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS 端口 ( Unix 类系统下未在 PHP 中定义) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS 端口(类 Unix 系统上的 PHP 中未定义) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS 主机(类 Unix 系统上的 PHP 中未定义) +MAIN_MAIL_EMAIL_FROM=自动电子邮件的发件人电子邮件地址(php.ini 中的默认值: %s ) +EMailHelpMsgSPFDKIM=为了防止 Dolibarr 电子邮件被归类为垃圾邮件,请确保服务器通过 SPF 和 DKIM 配置授权从此地址发送电子邮件 +MAIN_MAIL_ERRORS_TO=用于错误退信的电子邮件地址(已发送的电子邮件中的“错误退信”字段) MAIN_MAIL_AUTOCOPY_TO= 将所有已发送的电子邮件复制(密件抄送)到 MAIN_DISABLE_ALL_MAILS=禁用所有电子邮件发送(出于测试目的或演示目的) MAIN_MAIL_FORCE_SENDTO=发送电子邮件至(替换实际的收件人,用于测试目的) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Suggest emails of employees (if defined) into the list of predefined recipient when writing a new email -MAIN_MAIL_SENDMODE=Email sending method -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=在撰写新电子邮件时将员工的电子邮件(如果已定义)建议到预定义收件人列表中 +MAIN_MAIL_SENDMODE=电子邮件发送方式 +MAIN_MAIL_SMTPS_ID=SMTP 账号(如果发送服务器需要验证) +MAIN_MAIL_SMTPS_PW=SMTP 密码(如果发送服务器需要验证) MAIN_MAIL_EMAIL_TLS=使用 TLS(SSL)加密 MAIN_MAIL_EMAIL_STARTTLS=使用TLS(STARTTLS)加密 -MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés -MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature -MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim -MAIN_MAIL_EMAIL_DKIM_SELECTOR=dkim选择器名称 -MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing -MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos) +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=允许自签名证书 +MAIN_MAIL_EMAIL_DKIM_ENABLED=使用 DKIM 生成电子邮件签名 +MAIN_MAIL_EMAIL_DKIM_DOMAIN=用于 DKIM 的电子邮件域名 +MAIN_MAIL_EMAIL_DKIM_SELECTOR=DKIM选择器名称 +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=DKIM签名的私钥 +MAIN_DISABLE_ALL_SMS=禁止所有的短信发送(用于测试或演示目的) MAIN_SMS_SENDMODE=短信发送方法 -MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending -MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) +MAIN_MAIL_SMS_FROM=发送短信的默认发件人电话号码 +MAIN_MAIL_DEFAULT_FROMTYPE=手动发送的默认发件人电子邮件地址(用户电子邮件或公司电子邮件) UserEmail=用户邮箱 -CompanyEmail=Company Email -FeatureNotAvailableOnLinux=功能在 Unix 类系统下不可用。请在本地测试您的sendmail程序。 -FixOnTransifex=Fix the translation on the online translation platform of project -SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr +CompanyEmail=公司邮箱 +FeatureNotAvailableOnLinux=功能在类Unix系统下不可用。请在本地测试您的sendmail程序。 +FixOnTransifex=于在线翻译平台上修复项目翻译 +SubmitTranslation=如果该语言的翻译不完整或您发现错误,您可以通过编辑目录 langs/%s 中的文件来更正此问题,并将您的更改提交到 www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=如果该语言的翻译不完整或您发现错误,您可以通过将编辑目录 langs/%s 下的文件并在 dolibarr.org/forum 上提交修改后的文件来纠正此问题,或者,如果您是开发人员,请在 github.com/Dolibarr/dolibarr 上提交 PR ModuleSetup=模块设置 -ModulesSetup=模块设置 +ModulesSetup=模块/应用程序设置 ModuleFamilyBase=系统 -ModuleFamilyCrm=Customer Relationship Management (CRM) -ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) +ModuleFamilyCrm=客户关系管理 (CRM) +ModuleFamilySrm=供应商关系管理 (VRM) +ModuleFamilyProducts=产品管理(PM) ModuleFamilyHr=人力资源管理 (HR) ModuleFamilyProjects=项目/协同工作 ModuleFamilyOther=其他 ModuleFamilyTechnic=多模块工具 ModuleFamilyExperimental=试验性模块 -ModuleFamilyFinancial=财务模块(会计/金库) +ModuleFamilyFinancial=财务模块(会计/财务) ModuleFamilyECM=电子文档管理(ECM) -ModuleFamilyPortal=Websites and other frontal application -ModuleFamilyInterface=系统外部扩展接口 +ModuleFamilyPortal=网站和其他前台应用 +ModuleFamilyInterface=与外部系统的接口 MenuHandlers=菜单处理程序 MenuAdmin=菜单编辑器 -DoNotUseInProduction=请勿用于生产环境 -ThisIsProcessToFollow=Upgrade procedure: +DoNotUseInProduction=不要在生产中使用 +ThisIsProcessToFollow=升级步骤: ThisIsAlternativeProcessToFollow=这是手动处理的替代设置: StepNb=第 %s 步 -FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s). -DownloadPackageFromWebSite=Download package (for example from the official web site %s). -UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. -NotExistsDirect=未设置可选备用根目录。
    +FindPackageFromWebSite=查找提供您需要的功能的软件包(例如在官方网站 %s 上)。 +DownloadPackageFromWebSite=下载软件包(例如从官方网站 %s)。 +UnpackPackageInDolibarrRoot=将打包的软件包文件解压到 Dolibarr 服务器目录: %s +UnpackPackageInModulesRoot=要部署/安装外部模块,您必须将存档文件解压缩到专用于外部模块的以下服务器目录:
    %s +SetupIsReadyForUse=模块部署已完成。但是,您必须在模块/应用设置页面来启用和设置模块: %s 。 +NotExistsDirect=替代根目录未定义到现有目录。
    InfDirAlt=自 v3 版本开始,Dolibarr 可以定义备用根目录地址。这令您可以将插件和自定义模板保存至同一位置。
    您只需在Dolibarr的根目录下创建一个目录(例如custom)。
    InfDirExample=
    然后在文件 conf.php中声明它。
    $ dolibarr_main_url_root_alt ='/ custom'
    $ dolibarr_main_document_root_alt ='/ path / of / dolibarr / htdocs / custom'
    如果这些行用“#”注释,要启用它们,只需删除“#”字符即可取消注释。 -YouCanSubmitFile=You can upload the .zip file of module package from here: +YouCanSubmitFile=您可以从这里上传模块包的 .zip 文件: CurrentVersion=Dolibarr 当前版本 -CallUpdatePage=Browse to the page that updates the database structure and data: %s. +CallUpdatePage=打开更新数据库结构和数据的页面:%s。 LastStableVersion=最新稳定版 LastActivationDate=最新激活日期 LastActivationAuthor=最新激活作者 LastActivationIP=最新激活IP -LastActivationVersion=Latest activation version +LastActivationVersion=最新的激活版本 UpdateServerOffline=离线升级服务器 -WithCounter=管理柜台 -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags can be used:
    {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
    {000000+000} same as the previous one but an offset corresponding to the number to the right of the + sign is applied starting on the first %s.
    {000000@x} same as the previous one but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then the sequence {yy}{mm} or {yyyy}{mm} is also required.
    {dd} day (01 to 31).
    {mm} month (01 to 12).
    {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
    -GenericMaskCodes2={cccc} the client code on n characters
    {cccc000} the client code on n characters is followed by a counter dedicated to the customer. This counter dedicated to customer is reset at same time as the global counter.
    {tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
    -GenericMaskCodes3=其它非标记字符将维持不变。
    不允许使用空格
    -GenericMaskCodes3EAN=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13, the last character after the last } in 13th position should be * or ? . It will be replaced by the calculated key.
    -GenericMaskCodes4a=例如: 2007-01-31 第三方“TheCompany”的第99笔 %s :
    -GenericMaskCodes4b=例如合作方创建于 2007-03-01:
    -GenericMaskCodes4c=例如: 于 2007-03-1 建立的产品资料:
    -GenericMaskCodes5=格式掩码: ABC{yy}{mm}-{000000} 将生成编号 ABC0701-000099
    格式掩码:{0000+100}-ZZZ/{dd}/XXX 将生成编号 0199-ZZZ/31/XXX -GenericNumRefModelDesc=根据事先定义的格式掩码,返回一个可定制编号,详见说明。 -ServerAvailableOnIPOrPort=可用服务器地址: %s:%s -ServerNotAvailableOnIPOrPort=服务器地址: %s:%s 不可用 +WithCounter=管理计数器 +GenericMaskCodes=您可以输入任何编号掩码。在此掩码中,可以使用以下标签:
    {000000} 对应于将在每个 %s 上递增的数字。输入与所需的计数器长度一样多的零。计数器将由左侧的零补全,以便具有与掩码一样多的零。
    {000000+000} 与前一个相同,但从第一个 %s 开始应用与 + 号右侧数字相对应的偏移量。
    {000000@x} 与前一个相同,但当达到 x 月时,计数器重置为零(x 介于 1 和 12 之间,或 0 使用配置中定义的财政年度的前几个月,或 99 以每个月归零)。如果使用此选项且 x 为 2 或更高,则还需要序列 {yy}{mm} 或 {yyyy}{mm}。
    {dd} 天(01 到 31)。
    {mm} 月(01 到 12)。
    {yy} , {yyyy} {y} 2个,4个,或者1个数字。
    +GenericMaskCodes2=使用 {cccc} n 个字符的客户代码
    {cccc000} n 个字符上的客户代码后跟一个客户专用的计数器。该客户专用计数器与全局计数器同时复位。
    {tttt} n 个字符上的第三方类型代码(参见菜单主页 - 设置 - 字典 - 第三方类型)。如果添加此标签,则每种类型的第三方的计数器都会有所不同。
    +GenericMaskCodes3=掩码中的所有其他字符将保持不变。
    不允许使用空格。
    +GenericMaskCodes3EAN=掩码中的所有其他字符将保持不变(EAN13 中第 13 位的 * 或 ? 除外)。
    不允许使用空格。
    在 EAN13 中,第 13 位最后一个 } 之后的最后一个字符应该是 * 或 ? 。它将被计算的校验和替换。
    +GenericMaskCodes4a=2007-01-31 第三方“TheCompany”的第99笔 %s 的示例:
    +GenericMaskCodes4b= 在 2007 年 3 月 1 日创建的第三方示例:
    +GenericMaskCodes4c= 在2007 年 3 月 1 日创建的产品示例:
    +GenericMaskCodes5= ABC{yy}{mm}-{000000} 将生成 ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX 将生成 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} 将生成 IN0701-0099-A 如果公司类型为“Responsable Inscripto”且类型代码为“A_RI” +GenericNumRefModelDesc=根据定义的掩码返回可自定义的数字。 +ServerAvailableOnIPOrPort=服务器在地址: %s端口%s上可用 +ServerNotAvailableOnIPOrPort=服务器在地址: %s端口%s上不可用 DoTestServerAvailability=测试服务器连通性 -DoTestSend=测试发送 +DoTestSend=已启动测试 DoTestSendHTML=测试发送 HTML ErrorCantUseRazIfNoYearInMask=错误,如果序列{yy}或{yyyy}不在掩码中,则不能使用选项@来重置计数器。 -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=错误,格式掩码中标记 @ 必须与{yy}{mm}或{yyyy}{mm}同时使用。 +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=错误,如果序列 {yy}{mm} 或 {yyyy}{mm} 不在掩码中,则无法使用选项 @。 UMask=Unix/Linux/BSD 文件系统下新文件的 umask 参数。 -UMaskExplanation=定义服务器上 Dolibarr 创建文件的默认权限(例如上传的文件)。
    它必须是八进制值(例如,0666就表示人人可读可写)。
    此参数对Windows服务器无效。 -SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization -UseACacheDelay= 缓存导出响应的延迟时间(0或留空表示禁用缓存) -DisableLinkToHelpCenter=Hide the link "Need help or support" on the login page -DisableLinkToHelp=Hide the link to the online help "%s" -AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed. -ConfirmPurge=Are you sure you want to execute this purge?
    This will permanently delete all your data files with no way to restore them (ECM files, attached files...). +UMaskExplanation=此参数允许您定义 Dolibarr 在服务器上创建的文件的默认权限(例如上传的文件)。
    必须是八进制值(例如 0666 表示所有人都可以读写)。
    此参数在 Windows 服务器上无效。 +SeeWikiForAllTeam=查看 Wiki 页面以获取贡献者及其组织的列表 +UseACacheDelay= 以秒为单位缓存导出响应的延迟(0 或空无缓存) +DisableLinkToHelpCenter=在登录页面隐藏链接“ 需要帮助或支持 ” +DisableLinkToHelp=隐藏在线帮助链接“ %s ” +AddCRIfTooLong=没有自动换行功能,太长的文本会无法显示在文档上。如果需要,请在文本区域添加回车来换行。 +ConfirmPurge=您确定要执行此清除吗?
    这将永久性删除您的所有数据文件且无法恢复它们(ECM 文件、附件...)。 MinLength=最小长度 LanguageFilesCachedIntoShmopSharedMemory=文件 .lang 已加载到共享内存 LanguageFile=语言文件 -ExamplesWithCurrentSetup=Examples with current configuration -ListOfDirectories=开源办公软件文档模板目录列表 -ListOfDirectoriesForModelGenODT=包含开源办公软件的格式的文档的模板目录列表。

    请在此填写完整的目录路径。
    每填写一个目录路径结尾按回车换行。
    添加一个 GED 模块目录, 如下 DOL_DATA_ROOT/ecm/yourdirectoryname

    该目录中的文件格式必须是 .odt 格式或 .ods格式。 -NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
    要知道如何建立您的ODT文件范本并储存在指定目录,请至wiki网站: +ExamplesWithCurrentSetup=当前配置的示例 +ListOfDirectories=OpenDocument模板目录列表 +ListOfDirectoriesForModelGenODT=包含OpenDocument格式的文档的模板目录列表。

    请在此填写完整的目录路径。
    每填写一个目录路径结尾按回车换行。
    添加一个 GED 模块目录, 如下 DOL_DATA_ROOT/ecm/yourdirectoryname

    该目录中的文件格式必须是 .odt 格式或 .ods格式。 +NumberOfModelFilesFound=在这些目录中发现的 ODT/ODS 模板文件数量 +ExampleOfDirectoriesForModelGen=语法示例:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    要知道如何建立您的ODT文件范本并储存在指定目录,请访问wiki网站: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=姓 /名 位置顺序 -DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: +FirstnameNamePosition=名称/姓氏的位置顺序 +DescWeather=当延迟操作的数量达到以下值时,主看板上将显示以下图标: KeyForWebServicesAccess=使用 SOAP 服务的密钥 (webservices 中的"dolibarrkey"参数) -TestSubmitForm=可在以下表单输入资料来测试 -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours. -ThemeDir=主题目录 -ConnectionTimeout=Connection timeout -ResponseTimeout=响应超时 -SmsTestMessage=测试消息从 __PHONEFROM__ 至 __ PHONETO__ -ModuleMustBeEnabledFirst=必须先行激活启用 %s 模块如果你需要使用这个功能的话。 +TestSubmitForm=输入测试表单 +ThisForceAlsoTheme=无论用户如何设置,使用此菜单管理器将同时使用其主题。同时此菜单管理器专为智能手机而设计但并不适用于所有手机。如果您的手机上使用有问题请选择其它主题。 +ThemeDir=皮肤目录 +ConnectionTimeout=连接已超时 +ResponseTimeout=响应已超时 +SmsTestMessage=从 __PHONEFROM__ 至 __ PHONETO__的测试消息 +ModuleMustBeEnabledFirst=如果你需要使用这个功能必须先行激活启用 %s 模块。 SecurityToken=保护URL链接的密钥 -NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external vendor, but you can find some on %s -PDF=PDF格式 -PDFDesc=Global options for PDF generation -PDFOtherDesc=PDF Option specific to some modules -PDFAddressForging=Rules for address section -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT -PDFRulesForSalesTax=销售税/增值税规则 +NoSmsEngine=没有可用的短信发送管理器。短信发送管理器在默认发布版本没有安装 (因为他们依赖于一个外部供应商) 但你能在 %s找到一些 +PDF=PDF +PDFDesc=PDF生成的全局选项 +PDFOtherDesc=某些模块的PDF特定选项 +PDFAddressForging=地址部分的规则 +HideAnyVATInformationOnPDF=隐藏与销售税/VAT相关的所有信息 +PDFRulesForSalesTax=销售税/VAT规则 PDFLocaltax=%s的规则 -HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT -HideDescOnPDF=Hide products description -HideRefOnPDF=Hide products ref. -HideDetailsOnPDF=Hide product lines details +HideLocalTaxOnPDF=在销售税/VAT列中隐藏 %s 税率 +HideDescOnPDF=隐藏产品描述 +HideRefOnPDF=隐藏产品参考 +HideDetailsOnPDF=隐藏产品行详细信息 PlaceCustomerAddressToIsoLocation=使用法国标准位置(La Poste)作为客户地址位置 Library=资料库 -UrlGenerationParameters=URL地址的保护参数 +UrlGenerationParameters=用于保护 URL 的参数 SecurityTokenIsUnique=为每个URL使用唯一的securekey参数值 -EnterRefToBuildUrl=输入对象 %s 的编号 -GetSecuredUrl=获取算得的URL地址 -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +EnterRefToBuildUrl=输入对象 %s 的参考 +GetSecuredUrl=获取计算的 URL +ButtonHideUnauthorized=对内部用户隐藏未经授权的操作按钮(否则为变灰) OldVATRates=以前的增值税率(VAT) -NewVATRates=新建增值税率(VAT) -PriceBaseTypeToChange=设置了基本参考价值的产品的价格 -MassConvert=Launch bulk conversion -PriceFormatInCurrentLanguage=Price Format In Current Language +NewVATRates=新的增值税率(VAT) +PriceBaseTypeToChange=根据已在…定义的基础参考来修改价格 +MassConvert=启动批量转换 +PriceFormatInCurrentLanguage=当前语言的价格格式 String=字符串 -String1Line=String (1 line) +String1Line=字符串(1 行) TextLong=长文本 -TextLongNLines=Long text (n lines) -HtmlText=Html文字 +TextLongNLines=长文本(n 行) +HtmlText=Html文本 Int=整型 Float=浮点型 DateAndTime=日期与小时 @@ -439,697 +438,709 @@ Unique=唯一 Boolean=布尔值(复选框) ExtrafieldPhone = 电话 ExtrafieldPrice = 价格 +ExtrafieldPriceWithCurrency=带币种的价格 ExtrafieldMail = 电子邮件 ExtrafieldUrl = 网址 +ExtrafieldIP = IP ExtrafieldSelect = 选择列表 ExtrafieldSelectList = 从表格中选取 ExtrafieldSeparator=分隔符(不是字段) ExtrafieldPassword=密码 -ExtrafieldRadio=Radio buttons (one choice only) +ExtrafieldRadio=单选按钮(仅一种选择) ExtrafieldCheckBox=复选框 ExtrafieldCheckBoxFromList=表格中的复选框 -ExtrafieldLink=连接到对象 -ComputedFormula=计算字段 -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
    Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

    Example of formula:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Example to reload object
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Other example of formula to force load of object and its parent object:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' -Computedpersistent=Store computed field -ComputedpersistentDesc=Computed extra fields will be stored in the database, however, the value will only be recalculated when the object of this field is changed. If the computed field depends on other objects or global data this value might be wrong!! -ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).
    Set 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value) -ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    In order to have the list depending on another list:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    - id_field is necessarly a primary int key
    - filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=List of values comes from a table
    Syntax: table_name:label_field:id_field::filtersql
    Example: c_typent:libelle:id::filtersql

    filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter witch is the current id of current object
    To do a SELECT in filter use $SEL$
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath -ExtrafieldParamHelpSeparator=Keep empty for a simple separator
    Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)
    Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session) -LibraryToBuildPDF=已使用资料库以支持生成PDF文件 -LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:
    1: local tax apply on products and services without vat (localtax is calculated on amount without tax)
    2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)
    3: local tax apply on products without vat (localtax is calculated on amount without tax)
    4: local tax apply on products including vat (localtax is calculated on amount + main vat)
    5: local tax apply on services without vat (localtax is calculated on amount without tax)
    6: local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=短信 -LinkToTestClickToDial=输入一个电话号码来为用户显示网络电话网址测试功能 %s +ExtrafieldLink=链接到对象 +ComputedFormula=计算出的字段 +ComputedFormulaDesc=您可以在此处使用对象的其他属性或任何 PHP 编码输入公式,以获取动态计算值。您可以使用任何与 PHP 兼容的公式,包括“?”条件运算符和以下全局对象: $db, $conf, $langs, $mysoc, $user, $object
    警告 : 只有 $object 的某些属性可用。如果您需要未加载的属性,只需将对象放入您的公式中,就像在第二个示例中一样。
    使用计算域意味着您不能从界面输入任何值。此外,如果存在语法错误,公式可能不会返回任何内容。

    公式示例:
    $object->id < 10 ? round($object-> id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2 )

    重新加载对象的示例
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj- >rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    其他强制加载对象及其父对象的公式示例:
    (($reloadedobj = new Task($db )) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: '未找到父项目' +Computedpersistent=存储计算出的域 +ComputedpersistentDesc=计算出的额外字段将存储在数据库中,但是,只有在更改该字段的对象时才会重新计算该值。如果计算域依赖于其他对象或全局数据,这个值可能是错误的!! +ExtrafieldParamHelpPassword=将此字段留空意味着该值将在不加密的情况下存储(字段必须仅在屏幕上用星号隐藏)。
    设置“auto”以使用默认加密规则将密码保存到数据库中(之后读取的值将只是哈希值,无法检索原始值) +ExtrafieldParamHelpselect=值列表必须是格式为键/值对的行(其中键不能为'0')

    \n例如:
    1,value1
    2,value2
    code3,value3
    ...

    \n 为了使列表具有另一个补充属性列表:
    1,value1 | options_parent_list_code :parent_key
    2,value2 | options_parent_list_code :parent_key

    \n为了使列表依赖于另一个列表:
    1,value1 | parent_list_code:parent_key
    2,value2 | parent_list_code :parent_key +ExtrafieldParamHelpcheckbox=值列表必须是格式为 键/值 的对(其中 键不能为 '0')

    例如:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpradio=值列表必须是格式为 键/值 的对(其中 键不能为 '0')1 2 例如:3 1,value1 4 2,value2 5 3,value3 6 ... +ExtrafieldParamHelpsellist=值列表来自表
    语法:table_name:label_field:id_field::filtersql
    示例:c_typent:libelle:id::filtersql

    - id_field 必须是主 int 键
    -sql 过滤器是 SQL 条件。可以是一个简单的测试(例如 active=1),只显示活动值
    您也可以在过滤器中使用 $ID$,它是当前对象
    的当前 ID 要在过滤器中使用 SELECT,请使用关键字 $SEL$ 来绕过防喷油保护。
    如果要过滤额外字段,请使用语法 extra.fieldcode=... (其中字段代码是额外字段的代码)

    为了使列表依赖于另一个补充属性列表:
    c_typent:libelle:id:options_ parent_list_code |parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id: parent_list_code |parent_column:filter +ExtrafieldParamHelpchkbxlst=值列表来自表
    语法:table_name:label_field:id_field::filtersql
    示例:c_typent:libelle:id::filtersql

    过滤器可以是一个简单的测试(例如 active=1),只显示活动值
    也可以在过滤器中使用 $ID$ 女巫是当前对象的当前 id
    要在过滤器中进行 SELECT 使用 $SEL$
    如果要过滤额外字段,请使用语法 extra.fieldcode=... (其中字段代码是code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_ parent_list_code |parent_column:filter

    In order to have the list depending on another list:
    c_typent: libelle:id: parent_list_code |parent_column:filter +ExtrafieldParamHelplink=参数必须是 ObjectName:Classpath
    语法:ObjectName:Classpath +ExtrafieldParamHelpSeparator=为简单分隔符留空
    将此设置为 1 用于折叠分隔符(默认为新会话打开,然后为每个用户会话保留状态)
    将此设置为 2 用于折叠分隔符(默认为新会话折叠,然后在每个用户会话之前保持状态) +LibraryToBuildPDF=用于 PDF 生成的库 +LocalTaxDesc=一些国家/地区可能对每个发票行征收两到三个税。如果是这种情况,请选择第二和第三税的类型及其税率。可能的类型有:
    1:对不含增值税的产品和服务征收地方税(按不含税金额计算地方税)
    2:对含增值税的产品和服务征收地方税(按金额+主要税计算地方税)
    3:不含增值税产品适用地方税(按不含税金额计算当地税)
    4:含增值税产品适用当地税(按金额+主要增值税计算当地税)
    5:不含增值税服务适用当地税(按当地税计算不含税的金额)
    6:包括增值税在内的服务适用地方税(地方税按金额 + 税款计算) +SMS=SMS +LinkToTestClickToDial=输入一个电话号码来为用户显示ClickToDial网址测试功能 %s RefreshPhoneLink=刷新链接 -LinkToTest=为用户生成的可访问链接%s (单击电话号码来测试) -KeepEmptyToUseDefault=不填表示使用默认值 -KeepThisEmptyInMostCases=In most cases, you can keep this field empy. +LinkToTest=为用户 %s 生成的可点击链接(点击电话号码进行测试) +KeepEmptyToUseDefault=留空以使用默认值 +KeepThisEmptyInMostCases=在大多数情况下,您可以将此字段保留为空。 DefaultLink=默认链接 SetAsDefault=设为默认 -ValueOverwrittenByUserSetup=警告,此设置可能被用户设置所覆盖(用户可以设置各自的网络电话链接) -ExternalModule=External module -InstalledInto=Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for third-parties +ValueOverwrittenByUserSetup=警告,此设置可能被用户设置所覆盖(用户可以设置各自的clicktodial链接) +ExternalModule=外部模块 +InstalledInto=已安装到目录 %s +BarcodeInitForThirdparties=第三方条码批量初始化 BarcodeInitForProductsOrServices=产品或服务条码批量初始化或重置 -CurrentlyNWithoutBarCode=目前,您在 %s %s上没有定义条形码时有 %s 记录。 -InitEmptyBarCode=初始值为下一个%s空记录 -EraseAllCurrentBarCode=抹掉现存所有条码值 +CurrentlyNWithoutBarCode=目前,您在 %s %s 上有未定义条形码的 %s 记录。 +InitEmptyBarCode=%s 空条码的初始值 +EraseAllCurrentBarCode=删除所有当前条码值 ConfirmEraseAllCurrentBarCode=您确定要删除所有当前条形码值吗? -AllBarcodeReset=所有现存条码值已经被删除 -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. +AllBarcodeReset=所有当前条码值已经被删除 +NoBarcodeNumberingTemplateDefined=条码模块设置中未启用条码编号模板。 EnableFileCache=启用文件缓存 -ShowDetailsInPDFPageFoot=Add more details into footer, such as company address or manager names (in addition to professional ids, company capital and VAT number). +ShowDetailsInPDFPageFoot=在页脚中添加更多详细信息,例如公司地址或经理姓名(除资格ID、公司资本和增值税号外)。 NoDetails=页脚中没有其他详细信息 DisplayCompanyInfo=显示公司地址 DisplayCompanyManagers=显示经理姓名 DisplayCompanyInfoAndManagers=显示公司地址和经理姓名 -EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible. -ModuleCompanyCodeCustomerAquarium=%s后跟客户会计代码的客户代码 -ModuleCompanyCodeSupplierAquarium=%s后跟供应商会计代码的合作方供应商代码 +EnableAndSetupModuleCron=如果您希望自动生成此定期发票,则必须启用并正确设置模块 *%s*。否则,必须使用 *创建* 按钮从该模板手动生成发票。请注意,即使您启用了自动生成,您仍然可以安全地启动手动生成,而不会在同一时期生成重复项。 +ModuleCompanyCodeCustomerAquarium=%s后跟客户代码作为记账科目代码 +ModuleCompanyCodeSupplierAquarium=%s后跟供应商代码作为供应商记账科目代码 ModuleCompanyCodePanicum=返回一个空的科目代码 -ModuleCompanyCodeDigitaria=Returns a compound accounting code according to the name of the third party. The code consists of a prefix that can be defined in the first position followed by the number of characters defined in the third party code. -ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by the number of characters: %s for the customer accounting code. -ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code. -Use3StepsApproval=默认情况下,需要由2个不同的用户创建和批准采购订单(一步/用户创建和一步/用户批准。请注意,如果用户同时拥有创建和批准权限,则一步/用户就足够了) 。如果金额高于专用值,您可以要求使用此选项引入第三步/用户批准(因此需要3个步骤:1 =确认,2 =首次批准,3 =如果金额足够则为第二批准)。
    如果一个批准(2个步骤)足够,则将其设置为空,如果始终需要第二个批准(3个步骤),则将其设置为非常低的值(0.1)。 -UseDoubleApproval=当金额(不含税金)高于......时,使用3步批准 -WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons: -WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM -WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). -WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +ModuleCompanyCodeDigitaria=根据第三方名称返回复合科目代码。该代码由一个可以在第一个位置定义的前缀和在第三方代码中定义的字符组成。 +ModuleCompanyCodeCustomerDigitaria=%s 后跟按字符数截断的客户名称:%s 作为客户科目代码。 +ModuleCompanyCodeSupplierDigitaria=%s 后跟按字符数截断的供应商名称:%s 作为供应商科目代码。 +Use3StepsApproval=默认情况下,需要由2个不同的用户创建和审批采购订单(一个步骤/用户创建和一个步骤/用户审批。请注意,如果用户同时拥有创建和审批权限,则一个步骤/用户就足够了) 。如果金额高于特定值,您可以要求使用此选项引入第三个步骤/用户审批(因此需要3个步骤:1 =确认,2 =首次审批,3 =如果金额足够则二次审批)。
    如果一次审批(2个步骤)足够,则将其设置为空,如果始终需要二次审批(3个步骤),则将其设置为非常低的值(0.1)。 +UseDoubleApproval=当金额(不含税)高于...时,使用 3 步审批 +WarningPHPMail=警告:从应用程序发送电子邮件的设置正使用默认的通用设置。将外发电子邮件设置为使用电子邮件服务提供商的电子邮件服务器通常比默认设置更好,原因如下: +WarningPHPMailA=- 使用电子邮件服务提供商的服务器可以提高您电子邮件的可信度,因此它可以提高可传递性而不会被标记为垃圾邮件 +WarningPHPMailB=- 一些电子邮件服务提供商(如雅虎)不允许您从其他服务器而不是他们自己的服务器发送电子邮件。您当前的设置使用应用程序的服务器而不是您的电子邮件提供商的服务器来发送电子邮件,因此某些收件人(与限制性 DMARC 协议兼容的)会询问您的电子邮件提供商他们是否可以接受您的电子邮件,某些电子邮件提供商(如雅虎)可能会回答“不”,因为发送服务器不是他们的,所以您发送的电子邮件中有少数可能不被接受(还要注意您的电子邮件提供商的发送配额)。 +WarningPHPMailC=- 使用您自己的电子邮件服务提供商的 SMTP 服务器发送电子邮件也很有趣,因为从应用程序发送的所有电子邮件也将保存到您邮箱的“已发送”目录中。 +WarningPHPMailD=因此,建议将电子邮件的发送方式更改为"SMTP"值。 +WarningPHPMailDbis=如果您确实想保持默认的“PHP”方式发送电子邮件,请忽略此警告,或%s点击这里%s将其移除。 WarningPHPMail2=如果您的电子邮件SMTP提供商需要将电子邮件客户端限制为某些IP地址(非常罕见),则这是您的ERP CRM应用程序的邮件用户代理(MUA)的IP地址: %s。 -WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s -ClickToShowDescription=单击以显示描述 +WarningPHPMailSPF=如果您的发件人电子邮件地址域受 SPF 记录保护(询问您的域名注册商),您必须在您域名的 DNS 记录中添加以下 IP的 SPF 记录: %s 。 +ActualMailSPFRecordFound=实际找到的 SPF 记录(对于电子邮件 %s):%s +ClickToShowDescription=点击以显示描述 DependsOn=该模块需要模块(集) RequiredBy=本模块被以下模块(集)需要 -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field. -PageUrlForDefaultValues=You must enter the relative path of the page URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value. -PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third party, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/", so use path like mymodule/mypage.php and not custom/mymodule/mypage.php.
    If you want default value only if url has some parameter, you can use %s -PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s -AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) +TheKeyIsTheNameOfHtmlField=这是 HTML 字段的名称。需要技术知识才能读取 HTML 页面的内容以获取字段的键名。 +PageUrlForDefaultValues=您必须输入页面 URL 的相对路径。如果您在 URL 中包含参数,则如果所有参数都设置为相同的值,则默认值将生效。 +PageUrlForDefaultValuesCreate=
    示例:
    用于创建新的第三方的表单,它是 %s
    对于安装到自定义目录的外部模块的 URL,不要包含“custom/”,因此使用 mymodule/mypage.php 之类的路径,而不是 custom/mymodule/mypage.php。
    如果只有在 url 有一些参数时才需要默认值,你可以使用 %s +PageUrlForDefaultValuesList=
    示例:
    对于列出第三方的页面,它是 %s
    对于安装到自定义目录的外部模块的 URL,不要包含“custom/”,因此请使用 mymodule/mypagelist.php 之类的路径,而不是 custom/mymodule/mypagelist.php。
    如果只有在 url 有一些参数时才需要默认值,你可以使用 %s +AlsoDefaultValuesAreEffectiveForActionCreate=另请注意,覆盖表单创建的默认值仅适用于正确设计的页面(因此请使用参数 action=create 或 presend...) EnableDefaultValues=启用自定义默认值 -EnableOverwriteTranslation=启用覆盖翻译 -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. +EnableOverwriteTranslation=允许自定义翻译 +GoIntoTranslationMenuToChangeThis=已使用此代码找到此键的翻译。要更改此值,您必须通过 主页-设置-翻译 对其进行编辑。 WarningSettingSortOrder=警告,如果字段是未知字段,则在列表页面上设置默认排序顺序可能会导致技术错误。如果遇到此类错误,请返回此页面以删除默认排序顺序并恢复默认行为。 Field=字段 -ProductDocumentTemplates=文档模板以生成产品文档 -FreeLegalTextOnExpenseReports=费用报告中的免费法律文本 -WatermarkOnDraftExpenseReports=草稿费用报告上的水印 -ProjectIsRequiredOnExpenseReports=The project is mandatory for entering an expense report -PrefillExpenseReportDatesWithCurrentMonth=Pre-fill start and end dates of new expense report with start and end dates of the current month -ForceExpenseReportsLineAmountsIncludingTaxesOnly=Force the entry of expense report amounts always in amount with taxes +ProductDocumentTemplates=生成产品文档的文档模板 +FreeLegalTextOnExpenseReports=费用报表中的的自由法律文本 +WatermarkOnDraftExpenseReports=草稿费用报表上的水印 +ProjectIsRequiredOnExpenseReports=该项目是输入费用报表的强制性项目 +PrefillExpenseReportDatesWithCurrentMonth=用当月的开始和结束日期预先填写新费用报表的开始和结束日期 +ForceExpenseReportsLineAmountsIncludingTaxesOnly=强制以含税金额输入费用报表金额 AttachMainDocByDefault=如果要在默认情况下将主文档附加到电子邮件,请将此项设置为1(如果适用) FilesAttachedToEmail=附加文件 SendEmailsReminders=通过电子邮件发送议程提醒 davDescription=设置WebDAV服务器 DAVSetup=模块DAV的设置 -DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) -DAV_ALLOW_PRIVATE_DIRTooltip=The generic private directory is a WebDAV directory anybody can access with its application login/pass. -DAV_ALLOW_PUBLIC_DIR=Enable the generic public directory (WebDAV dedicated directory named "public" - no login required) -DAV_ALLOW_PUBLIC_DIRTooltip=The generic public directory is a WebDAV directory anybody can access (in read and write mode), with no authorization required (login/password account). -DAV_ALLOW_ECM_DIR=Enable the DMS/ECM private directory (root directory of the DMS/ECM module - login required) -DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it. +DAV_ALLOW_PRIVATE_DIR=启用通用私有目录(名为“private”的 WebDAV 专用目录 - 需要登录) +DAV_ALLOW_PRIVATE_DIRTooltip=通用私有目录是任何人都可以通过其应用程序登录名/密码访问的 WebDAV 目录。 +DAV_ALLOW_PUBLIC_DIR=启用通用公共目录(名为“public”的 WebDAV 专用目录 - 无需登录) +DAV_ALLOW_PUBLIC_DIRTooltip=通用公共目录是任何人都可以访问的 WebDAV 目录(可读可写模式),无需授权(用户名/密码登陆)。 +DAV_ALLOW_ECM_DIR=启用 DMS/ECM 私有目录(DMS/ECM 模块的根目录 - 需要登录) +DAV_ALLOW_ECM_DIRTooltip=使用 DMS/ECM 模块时手动上传所有文件的根目录。与从 Web 界面访问类似,您需要具有适当权限的有效登录名/密码才能访问它。 # Modules Module0Name=用户和组 -Module0Desc=用户/员工和组管理 -Module1Name=合作伙伴 -Module1Desc=Companies and contacts management (customers, prospects...) +Module0Desc=用户/雇员和组管理 +Module1Name=第三方 +Module1Desc=公司和联系人管理(客户、潜在客户......) Module2Name=商业交易 -Module2Desc=交易管理 -Module10Name=Accounting (simplified) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. -Module20Name=报价 -Module20Desc=报价管理模块 -Module22Name=Mass Emailings -Module22Desc=Manage bulk emailing +Module2Desc=商业交易管理 +Module10Name=会计(简化) +Module10Desc=基于数据库内容的简单会计报告(日常报表、营业额)。不使用任何复式账本。 +Module20Name=提案 +Module20Desc=商业提案管理模块 +Module22Name=群发电子邮件 +Module22Desc=群发电子邮件管理 Module23Name=能耗 -Module23Desc=能耗监测 -Module25Name=Sales Orders -Module25Desc=Sales order management +Module23Desc=监测能源消耗 +Module25Name=销售订单 +Module25Desc=销售订单管理 Module30Name=发票 -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers +Module30Desc=管理客户发票和贷记单。管理供应商发票和贷记单 Module40Name=供应商 -Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) +Module40Desc=供应商和采购管理(采购订单和供应商发票开票) Module42Name=调试日志 -Module42Desc=记录设施(文件,系统日志,......)。此类日志用于技术/调试目的。 -Module43Name=Debug Bar -Module43Desc=A tool for developper adding a debug bar in your browser. +Module42Desc=日志设施(文件,系统日志,......)。此类日志用于技术/调试目的。 +Module43Name=调试栏 +Module43Desc=为开发人员在浏览器中添加调试栏的工具。 Module49Name=编辑器 Module49Desc=编辑器管理 Module50Name=产品 -Module50Desc=Management of Products -Module51Name=批量邮寄 -Module51Desc=批量邮寄文件管理 +Module50Desc=产品管理 +Module51Name=群发邮件 +Module51Desc=群发邮件管理 Module52Name=库存 -Module52Desc=Stock management +Module52Desc=库存管理 Module53Name=服务 -Module53Desc=Management of Services -Module54Name=联系人/订阅 -Module54Desc=Management of contracts (services or recurring subscriptions) +Module53Desc=服务管理 +Module54Name=合约/订阅 +Module54Desc=合约管理(服务或定期订阅) Module55Name=条码 -Module55Desc=Barcode or QR code management -Module56Name=Payment by credit transfer -Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. -Module57Name=Payments by Direct Debit -Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. -Module58Name=网络电话 -Module58Desc=网络电话系统集成(Asterisk ...) -Module60Name=Stickers -Module60Desc=Management of stickers +Module55Desc=条码或二维码管理 +Module56Name=通过贷记转账付款 +Module56Desc=管理使用贷记转账对供应商的付款。它包括为欧洲国家生成 SEPA 文件。 +Module57Name=直接借记付款 +Module57Desc=管理使用直接借记对供应商的付款。它包括为欧洲国家生成 SEPA 文件。 +Module58Name=ClickToDial +Module58Desc=ClickToDial系统集成(Asterisk ...) +Module60Name=便签 +Module60Desc=便签管理 Module70Name=干预 Module70Desc=干预管理模块 -Module75Name=差旅费用记录 +Module75Name=费用和差旅记录 Module75Desc=费用和差旅记录的管理 -Module80Name=运输 -Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module80Name=货件 +Module80Desc=货件和送货单管理 +Module85Name=银行和现金 Module85Desc=银行或现金帐户管理 -Module100Name=External Site -Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. +Module100Name=外部站点 +Module100Desc=添加指向外部网站的链接为主菜单图标。网站将显示在顶部菜单下的框架中。 Module105Name=Mailman 及 SPIP Module105Desc=会员模块的 Mailman 或 SPIP 接口 Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=LDAP 目录同步 Module210Name=PostNuke -Module210Desc=PostNuke 整合 +Module210Desc=PostNuke 集成 Module240Name=数据导出 -Module240Desc=Tool to export Dolibarr data (with assistance) +Module240Desc=导出 Dolibarr 数据的工具(有协助) Module250Name=数据导入 -Module250Desc=Tool to import data into Dolibarr (with assistance) +Module250Desc=将数据导入 Dolibarr 的工具(有协助) Module310Name=会员 -Module310Desc=机构会员管理模块 +Module310Desc=基金会会员管理模块 Module320Name=RSS 源 -Module320Desc=Add a RSS feed to Dolibarr pages -Module330Name=Bookmarks & Shortcuts -Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access -Module400Name=Projects or Leads -Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=日历 -Module410Desc=日历整合 -Module500Name=Taxes & Special Expenses -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module320Desc=向 Dolibarr 页面添加 RSS 源 +Module330Name=书签和快捷方式 +Module330Desc=为您经常访问的内部或外部页面创建始终可见的快捷方式 +Module400Name=项目或商机 +Module400Desc=管理项目、商机/机会和/或任务。您还可以将任何元素(发票、订单、建议、干预......)分配给项目并从项目视图中获取横向视图。 +Module410Name=Webcalendar +Module410Desc=Webcalendar集成 +Module500Name=税收和特殊费用 +Module500Desc=管理其他费用(销售税、社会或财政税、股息……) Module510Name=工资 -Module510Desc=Record and track employee payments +Module510Desc=记录和跟踪员工付款 Module520Name=贷款 Module520Desc=贷款管理模块 -Module600Name=Notifications on business event -Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails -Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda. +Module600Name=商业活动通知 +Module600Desc=发送由商业活动触发的电子邮件通知:按用户(在每个用户上定义的设置)、按第三方联系人(在每个第三方上定义的设置)或通过特定电子邮件 +Module600Long=请注意,此模块会在特定商业活动发生时实时发送电子邮件。如果您正在寻找通过电子邮件发送议程事件提醒的功能,请进入议程模块设置。 Module610Name=产品变体 -Module610Desc=Creation of product variants (color, size etc.) +Module610Desc=创建产品变体(颜色、尺寸等) Module700Name=捐赠 Module700Desc=捐赠管理模块 -Module770Name=Expense Reports -Module770Desc=Manage expense reports claims (transportation, meal, ...) -Module1120Name=Vendor Commercial Proposals -Module1120Desc=请求供应商商业提案和价格 +Module770Name=费用报表 +Module770Desc=管理费用报表申报(交通,膳食,...) +Module1120Name=供应商商业提案 +Module1120Desc=要求供应商商业提案和价格 Module1200Name=Mantis -Module1200Desc=Mantis 整合 +Module1200Desc=Mantis 集成 Module1520Name=文档生成 -Module1520Desc=Mass email document generation +Module1520Desc=生成群发电子邮件 Module1780Name=标签/分类 Module1780Desc=创建标签/分类(商品、客户、供应商、联系人或会员) Module2000Name=所见即所得编辑器 -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=允许使用 CKEditor编辑/格式化文本字段 (html)  Module2200Name=动态定价 -Module2200Desc=Use maths expressions for auto-generation of prices +Module2200Desc=使用公式自动生成价格 Module2300Name=计划任务 -Module2300Desc=预定的工作管理(别名cron或chrono表) +Module2300Desc=计划任务管理(cron 或 chrono table) Module2400Name=事件/日程 -Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. +Module2400Desc=跟踪项目。记录自动事件以进行跟踪或记录手动事件或会议。这是良好的客户或供应商关系管理的主要模块。 Module2500Name=DMS / ECM Module2500Desc=文件管理系统/电子内容管理。自动组织生成或存储的文档。在需要时分享。 -Module2600Name=API/Web 服务 (SOAP 服务器) +Module2600Name=API / 网络服务 (SOAP 服务器) Module2600Desc=允许 Dolibarr SOAP 服务器提供 API 服务 -Module2610Name=API/Web 服务 (REST 服务器) +Module2610Name=API / 网络服务 (REST 服务器) Module2610Desc=允许 Dolibarr REST 服务器提供 API 服务 Module2660Name=调用WebServices(SOAP客户端) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) +Module2660Desc=启用 Dolibarr Web服务客户端(可用于将数据/请求推送到外部服务器。目前仅支持采购订单。) Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access +Module2700Desc=使用在线 Gravatar 服务 (www.gravatar.com) 显示用户/成员的头像(通过他们的电子邮件找到)。需要互联网连接 Module2800Desc=FTP 客户端 -Module2900Name=Maxmind网站的GeoIP全球IP地址数据库 -Module2900Desc=Maxmind的geoip数据库的转换能力 -Module3200Name=不可改变的档案 -Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. +Module2900Name=Maxmind的GeoIP全球IP地址数据库 +Module2900Desc=Maxmind的GeoIP数据库的转换能力 +Module3200Name=不可更改的档案 +Module3200Desc=启用不可更改的商业活动日志。事件被实时存档。日志是只读的可以导出的链式事件表。对于某些国家/地区,此模块可能是强制性的。 Module3400Name=社交网络 -Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). -Module4000Name=人事管理 -Module4000Desc=人力资源管理(部门管理,员工合同和感受) +Module3400Desc=启用第三方和地址的社交网络字段(skype、twitter、facebook、...)。 +Module4000Name=人力资源管理 +Module4000Desc=人力资源管理(部门管理,员工合约和感受) Module5000Name=多公司 Module5000Desc=允许你管理多个公司 -Module6000Name=Inter-modules Workflow -Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) +Module6000Name=模块间工作流 +Module6000Desc=不同模块之间的工作流管理(自动创建对象和/或自动更改状态) Module10000Name=网站 -Module10000Desc=Create websites (public) with a WYSIWYG editor. This is a webmaster or developer oriented CMS (it is better to know HTML and CSS language). Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name. -Module20000Name=Leave Request Management -Module20000Desc=Define and track employee leave requests -Module39000Name=Product Lots -Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products -Module40000Name=Multicurrency -Module40000Desc=Use alternative currencies in prices and documents -Module50000Name=钱箱 -Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module10000Desc=使用所见即所得编辑器创建网站(公共的)。这是一个面向网站管理员或开发人员的 CMS(最好先了解 HTML 和 CSS 语言)。只需将您的 Web 服务器(Apache、Nginx 等)指向专用的 Dolibarr 目录,即可使用您自己的域名在 Internet 上线。 +Module20000Name=休假请求管理 +Module20000Desc=定义和跟踪员工休假请求 +Module39000Name=产品批号 +Module39000Desc=产品的批号、序列号、食用/销售日期管理 +Module40000Name=多币种 +Module40000Desc=在价格和文件中使用替代货币 +Module50000Name=PayBox +Module50000Desc=为客户提供 PayBox 在线支付页面(信用卡/借记卡)。这可用于允许您的客户进行临时付款或与特定 Dolibarr 对象(发票、订单等)相关的付款 Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale module SimplePOS (simple POS). +Module50100Desc=销售点模块 SimplePOS(Simple POS)。 Module50150Name=POS TakePOS -Module50150Desc=Point of Sale module TakePOS (touchscreen POS, for shops, bars or restaurants). +Module50150Desc=销售点模块 TakePOS(触摸屏 POS,用于商店、酒吧或餐馆)。 Module50200Name=Paypal -Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50200Desc=为客户提供 PayPal 在线支付页面(PayPal 账户或信用卡/借记卡)。这可用于允许您的客户进行临时付款或与特定 Dolibarr 对象(发票、订单等)相关的付款 Module50300Name=Stripe -Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) -Module50400Name=Accounting (double entry) -Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module50300Desc=为客户提供 Stripe 在线支付页面(信用卡/借记卡)。这可用于允许您的客户进行临时付款或与特定 Dolibarr 对象(发票、订单等)相关的付款 +Module50400Name=会计(复式) +Module50400Desc=会计管理(复式分录,支持总账和分录账)。支持以其他几种会计软件格式导出账目。 Module54000Name=IPP打印 -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). -Module55000Name=问卷, 调查或投票 -Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) +Module54000Desc=使用 Cups IPP 界面直接打印(无需打开文档)(打印机必须在服务器可见,并且 CUPS 必须安装在服务器上)。 +Module55000Name=问卷,调查或投票 +Module55000Desc=创建在线问卷,调查或投票(类似 Doodle、Studs、RDVz 等...) Module59000Name=利润空间 -Module59000Desc=Module to follow margins +Module59000Desc=利润空间管理模块 Module60000Name=佣金 Module60000Desc=佣金管理模块 -Module62000Name=国际贸易术语解释通则 -Module62000Desc=Add features to manage Incoterms +Module62000Name=国际贸易术语 +Module62000Desc=添加功能来管理国际贸易术语 Module63000Name=资源 -Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events -Permission11=读取销售账单 +Module63000Desc=管理用于分配给活动的资源(打印机、汽车、房间等) +Module94160Name=收货 +Permission11=查看客户发票 Permission12=创建/变更发票 -Permission13=Invalidate customer invoices +Permission13=作废客户发票 Permission14=确认客户发票 Permission15=通过电邮发送发票 Permission16=添加客户发票付款记录 Permission19=删除客户发票 -Permission21=读取报价单 +Permission21=查看报价单 Permission22=创建/变更报价单 Permission24=确认报价单 Permission25=发送报价单 Permission26=关闭报价单 Permission27=删除报价单 Permission28=导出报价单 -Permission31=读取产品信息 +Permission31=查看产品信息 Permission32=创建/变更产品信息 +Permission33=读取产品价格 Permission34=删除产品信息 Permission36=查看/管理隐藏产品 Permission38=导出产品信息 -Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission39=忽略最低价格 +Permission41=查看项目和任务(我是其联系人的共享项目和项目)。 +Permission42=创建/修改项目(共享项目和我是其联系人的项目)。还可以将用户分配给项目和任务 +Permission44=删除项目(共享项目和我作为联系人的项目) Permission45=导出项目 -Permission61=读取干预 +Permission61=查看干预 Permission62=创建/变更干预 Permission64=删除干预 Permission67=导出干预措施 -Permission68=Send interventions by email -Permission69=Validate interventions -Permission70=Invalidate interventions -Permission71=读取会员 +Permission68=通过电子邮件发送干预 +Permission69=验证干预 +Permission70=作废干预 +Permission71=查看会员 Permission72=创建/变更会员 Permission74=删除会员 Permission75=设置会员类型 Permission76=导出数据 -Permission78=读取订阅 +Permission78=查看订阅 Permission79=创建/变更订阅 -Permission81=读取客户订单 +Permission81=查看客户订单 Permission82=创建/变更客户订单 Permission84=确认客户订单 +Permission85=生成销售订单文件 Permission86=发送客户订单 Permission87=关闭客户订单 Permission88=取消客户订单 Permission89=删除客户订单 -Permission91=读取财政税和增值税 +Permission91=查看财政税和增值税 Permission92=创建/变更财政税和增值税 Permission93=删除财政税和增值税 Permission94=导出财政税和增值税 -Permission95=读取报表 -Permission101=读取发货单信息 +Permission95=查看报表 +Permission101=查看发货单信息 Permission102=创建/变更发货单 Permission104=确认发送 -Permission105=Send sendings by email +Permission105=通过电子邮件发送 Permission106=导出发货单 Permission109=删除发货单 -Permission111=读取财务帐目 +Permission111=查看财务账户 Permission112=创建/变更/删除和比较交易 -Permission113=Setup financial accounts (create, manage categories of bank transactions) -Permission114=Reconcile transactions +Permission113=设置财务账户(创建、管理银行交易类别) +Permission114=交易对账 Permission115=导出交易和帐户报表 Permission116=账户间转账 -Permission117=Manage checks dispatching -Permission121=读取合作方信息关联用户 -Permission122=创建/变更与用户相关联的合作方信息 -Permission125=删除与用户相关联的合作方信息 -Permission126=导出合作方信息 -Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission146=读取供应商 -Permission147=读取统计 -Permission151=阅读长期订单 -Permission152=创建/修改长期订单 -Permission153=阅读长期订单收据 -Permission154=Record Credits/Rejections of direct debit payment orders -Permission161=读取联系人/订阅 -Permission162=创建/变更联系人/订阅 -Permission163=启用联系人服务/订阅 -Permission164=禁用联系人服务/订阅 -Permission165=删除联系人/订阅 -Permission167=导出联系人 -Permission171=读取行程及开支 (自己和其下属) -Permission172=创建/变更行程及开支 +Permission117=管理支票调度 +Permission121=查看链接到用户的第三方 +Permission122=创建/修改链接到用户的第三方 +Permission125=删除链接到用户的第三方 +Permission126=导出第三方 +Permission130=创建/修改第三方支付信息 +Permission141=查看所有项目和任务(以及我不是联系人的私人项目) +Permission142=创建/修改所有项目和任务(以及我不是联系人的私人项目) +Permission144=删除所有项目和任务(以及我不是联系人的私人项目) +Permission145=可以为我或我的下属输入分配的任务所消耗的时间(时间表) +Permission146=查看供应商 +Permission147=查看统计 +Permission151=查看直接借记付款单 +Permission152=创建/修改直接借记付款单 +Permission153=发送/传输直接借记付款单 +Permission154=记录直接借记付款单的贷项/拒绝 +Permission161=查看合约/订阅 +Permission162=创建/修改合同/订阅 +Permission163=激活合同的服务/订阅 +Permission164=禁用合同的服务/订阅 +Permission165=删除合同/订阅 +Permission167=导出合同 +Permission171=查看行程及开支 (自己和下属) +Permission172=创建/修改行程和费用 Permission173=删除行程及开支 -Permission174=读取所有行程和开支 +Permission174=查看所有行程和开支 Permission178=导出行程及开支 -Permission180=读取供应商资料 -Permission181=Read purchase orders -Permission182=Create/modify purchase orders -Permission183=Validate purchase orders -Permission184=Approve purchase orders -Permission185=Order or cancel purchase orders -Permission186=Receive purchase orders -Permission187=Close purchase orders -Permission188=Cancel purchase orders +Permission180=查看供应商 +Permission181=查看采购订单 +Permission182=创建/修改采购订单 +Permission183=验证采购订单 +Permission184=审批采购订单 +Permission185=订购或取消采购订单 +Permission186=接收采购订单 +Permission187=关闭采购订单 +Permission188=取消采购订单 Permission192=添加线路 Permission193=取消线路 -Permission194=Read the bandwidth lines +Permission194=查看宽带线路 Permission202=创建 ADSL 连接 -Permission203=订立连接订单 +Permission203=创建连接订单 Permission204=订购连接 Permission205=链接管理 -Permission206=读取链接 -Permission211=读取电话 +Permission206=查看连接 +Permission211=查看电话 Permission212=订购线路 Permission213=激活线路 Permission214=安装电话 Permission215=安装商 -Permission221=读取邮件 -Permission222=创建/变更邮件(主题,收件人,,,) -Permission223=确认邮寄(允许发送) -Permission229=删除邮件 +Permission221=查看电子邮件 +Permission222=创建/变更电子邮件(主题,收件人,,,) +Permission223=验证电子邮件(允许发送) +Permission229=删除电子邮件 Permission237=查看收件人及信息 -Permission238=手动发送邮件 -Permission239=确认或发送后删除邮件记录 -Permission241=读取分类 -Permission242=创建/变更分类 +Permission238=手动发送电子邮件 +Permission239=确认或发送后删除电子邮件记录 +Permission241=查看分类 +Permission242=创建/修改分类 Permission243=删除分类 -Permission244=查看隐藏类别的内容 -Permission251=读取其他用户和群组资料 -PermissionAdvanced251=读取其他用户 -Permission252=读取其他用户的使用权限 -Permission253=Create/modify other users, groups and permissions -PermissionAdvanced253=创建/变更内部/外部用户和权限 -Permission254=只能创建/变更外部用户资料 +Permission244=查看隐藏分类的内容 +Permission251=查看其他用户和组 +PermissionAdvanced251=查看其他用户 +Permission252=查看其他用户的权限 +Permission253=创建/修改其他用户、组和权限 +PermissionAdvanced253=创建/修改内部/外部用户和权限 +Permission254=只能创建/修改外部用户资料 Permission255=修改其他用户密码 -Permission256=删除或暂时关闭其他用户 -Permission262=Extend access to all third parties AND their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). -Permission263=Extend access to all third parties WITHOUT their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). -Permission271=读取 CA -Permission272=读取发票 +Permission256=删除或禁用其他用户 +Permission262=将访问权限扩展到所有第三方及其对象(不仅是用户作为销售代表的第三方)。
    对外部用户无效(对于提案、订单、发票、合同等,始终仅限于他们自己)。
    对项目无效(仅关于项目权限、可见性和分配事项的规则)。 +Permission263=将访问权限扩展到所有没有对象的第三方(不仅是用户作为销售代表的第三方)。
    对外部用户无效(对于提案、订单、发票、合同等,始终仅限于他们自己)。
    对项目无效(仅关于项目权限、可见性和分配事项的规则)。 +Permission271=查看 CA +Permission272=查看发票 Permission273=开具发票 -Permission281=读取联络人资料 -Permission282=创建/变更联络人资料 -Permission283=删除联络人资料 -Permission286=导出联络人资料 -Permission291=读取关税 +Permission281=查看联系人 +Permission282=创建/变更联系人 +Permission283=删除联系人 +Permission286=导出联系人 +Permission291=查看关税 Permission292=设置关税权限 -Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes -Permission311=读取服务 -Permission312=为联系人指定服务/订阅 -Permission331=读取书签 +Permission293=修改客户关税 +Permission301=生成条码的PDF表单 +Permission304=创建/修改条码 +Permission305=删除条码 +Permission311=查看服务 +Permission312=将服务/订阅分配给合同 +Permission331=查看书签 Permission332=创建/变更书签 Permission333=删除书签 -Permission341=读取个人权限 -Permission342=创建/变更个人资料 +Permission341=查看个人的权限 +Permission342=创建/修改个人资料 Permission343=修改个人密码 Permission344=修改个人权限 -Permission351=读取组 -Permission352=读取组的权限 -Permission353=创建/变更群组 +Permission351=查看组 +Permission352=查看组的权限 +Permission353=创建/修改组 Permission354=删除或禁用组 -Permission358=导出用户资料 -Permission401=读取折扣 -Permission402=创建/变更折扣 -Permission403=确认折扣 +Permission358=导出用户 +Permission401=查看折扣 +Permission402=创建/修改折扣 +Permission403=验证折扣 Permission404=删除折扣 -Permission430=Use Debug Bar -Permission511=Read salaries and payments (yours and subordinates) -Permission512=Create/modify salaries and payments -Permission514=Delete salaries and payments -Permission517=Read salaries and payments everybody +Permission430=使用调试栏 +Permission511=查看工资和付款(您和下属) +Permission512=创建/修改工资和付款 +Permission514=删除工资和付款 +Permission517=查看每个人的工资和付款 Permission519=导出工资 -Permission520=读取贷款 -Permission522=创建/变更贷款 +Permission520=查看贷款 +Permission522=创建/修改贷款 Permission524=删除贷款 Permission525=访问贷款计算器 Permission527=导出贷款 -Permission531=读取服务 +Permission531=查看服务 Permission532=创建/变更服务 +Permission533=读取服务价格 Permission534=删除服务 -Permission536=查看/隐藏服务管理 +Permission536=查看管理隐藏的服务 Permission538=导出服务 -Permission561=Read payment orders by credit transfer -Permission562=Create/modify payment order by credit transfer -Permission563=Send/Transmit payment order by credit transfer -Permission564=Record Debits/Rejections of credit transfer -Permission601=Read stickers -Permission602=Create/modify stickers -Permission609=Delete stickers -Permission611=Read attributes of variants -Permission612=Create/Update attributes of variants -Permission613=Delete attributes of variants -Permission650=Read Bills of Materials -Permission651=Create/Update Bills of Materials -Permission652=Delete Bills of Materials -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) -Permission701=读取捐款资料 -Permission702=创建/变更捐款资料 -Permission703=删除捐款资料 +Permission561=读取贷记转账的付款单 +Permission562=创建/修改贷记转账付款单 +Permission563=发送/传输贷记转账付款单 +Permission564=记录贷记转账的贷项/拒绝 +Permission601=查看便签 +Permission602=创建/修改便签 +Permission609=删除便签 +Permission611=查看变体的属性 +Permission612=创建/更新变体的属性 +Permission613=删除变体的属性 +Permission650=读取物料清单(BOM) +Permission651=创建/修改物料清单(BOM) +Permission652=删除物料清单(BOM) +Permission660=读取制造订单 (MO) +Permission661=创建/修改制造订单 (MO) +Permission662=删除制造订单 (MO) +Permission701=查看捐款 +Permission702=创建/修改捐款 +Permission703=删除捐款 Permission771=读取费用报表(您以及您下属) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission772=创建/修改费用报表(为您和您的下属) Permission773=删除费用报表 -Permission775=批准费用报表 +Permission775=审批费用报表 Permission776=支付费用报表 -Permission777=Read all expense reports (even those of user not subordinates) -Permission778=Create/modify expense reports of everybody +Permission777=读取所有费用报表(包括非下属的用户) +Permission778=创建/修改每个人的费用报表 Permission779=导出费用报表 -Permission1001=读取库存信息 -Permission1002=创建/变更仓库 +Permission1001=查看库存 +Permission1002=创建/修改仓库 Permission1003=删除仓库 -Permission1004=读取库存转让 -Permission1005=创建/变更库存移转调拨 -Permission1011=View inventories -Permission1012=Create new inventory -Permission1014=Validate inventory -Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory -Permission1101=Read delivery receipts -Permission1102=Create/modify delivery receipts -Permission1104=Validate delivery receipts -Permission1109=Delete delivery receipts -Permission1121=Read supplier proposals -Permission1122=Create/modify supplier proposals -Permission1123=Validate supplier proposals -Permission1124=Send supplier proposals -Permission1125=Delete supplier proposals -Permission1126=Close supplier price requests -Permission1181=读取供应商资料 -Permission1182=Read purchase orders -Permission1183=Create/modify purchase orders -Permission1184=Validate purchase orders -Permission1185=Approve purchase orders -Permission1186=Order purchase orders -Permission1187=Acknowledge receipt of purchase orders -Permission1188=Delete purchase orders -Permission1189=Check/Uncheck a purchase order reception -Permission1190=Approve (second approval) purchase orders -Permission1191=Export supplier orders and their attributes +Permission1004=查看库存调拨 +Permission1005=创建/修改库存调拨 +Permission1011=查看库存 +Permission1012=创建新库存 +Permission1014=验证库存 +Permission1015=允许更改产品的 PMP 值 +Permission1016=删除库存 +Permission1101=查看交货回单 +Permission1102=创建/修改交货回单 +Permission1104=验证交货回单 +Permission1109=删除交货回单 +Permission1121=查看供应商提案 +Permission1122=创建/修改供应商提案 +Permission1123=验证供应商提案 +Permission1124=发送供应商提案 +Permission1125=删除供应商提案 +Permission1126=关闭供应商价格请求 +Permission1181=查看供应商资料 +Permission1182=查看采购订单 +Permission1183=创建/修改采购订单 +Permission1184=验证采购订单 +Permission1185=审批采购订单 +Permission1186=采购订单下单 +Permission1187=采购订单确认收货 +Permission1188=删除采购订单 +Permission1189=选中/取消选中采购订单接收 +Permission1190=审批(二次审批)采购订单 +Permission1191=导出供应商订单及其属性 Permission1201=获得导出结果 -Permission1202=创建/变更导出信息 -Permission1231=Read vendor invoices -Permission1232=Create/modify vendor invoices -Permission1233=Validate vendor invoices -Permission1234=Delete vendor invoices -Permission1235=Send vendor invoices by email -Permission1236=Export vendor invoices, attributes and payments -Permission1237=Export purchase orders and their details -Permission1251=导入大量外部数据到数据库(载入资料) +Permission1202=创建/修改导出信息 +Permission1231=查看供应商发票 +Permission1232=创建/修改供应商发票 +Permission1233=验证供应商发票 +Permission1234=删除供应商发票 +Permission1235=通过电子邮件发送供应商发票 +Permission1236=导出供应商发票、属性和付款资料 +Permission1237=导出采购订单及其详细信息 +Permission1251=将大量外部数据导入数据库(数据加载) Permission1321=导出客户发票、属性及其付款资料 -Permission1322=重新开立付费账单 -Permission1421=Export sales orders and attributes -Permission1521=Read documents -Permission1522=Delete documents -Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to) -Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) -Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) -Permission2411=读取他人的动作(事件或任务) -Permission2412=创建/变更他人的动作(事件或任务) -Permission2413=删除他人的动作(事件或任务) -Permission2414=导出其他动作/任务 -Permission2501=读取/下载文档 +Permission1322=重新打开已付账单 +Permission1421=导出销售订单和属性 +Permission1521=查看文件 +Permission1522=删除文件 +Permission2401=查看关联到此的用户帐户的操作(事件或任务)(如果是事件的所有者或分配到该用户) +Permission2402=创建/修改关联到此的用户帐户的操作(事件或任务)(如果是事件的所有者或分配到该用户) +Permission2403=删除关联到此的用户帐户的操作(事件或任务)(如果是事件的所有者或分配到该用户) +Permission2411=查看他人的操作(事件或任务) +Permission2412=创建/修改他人的操作(事件或任务) +Permission2413=删除他人的操作(事件或任务) +Permission2414=导出他人的操作/任务 +Permission2501=查看/下载文档 Permission2502=下载文档 -Permission2503=提交或删除的文档 +Permission2503=提交或删除文档 Permission2515=设置文档目录 -Permission2801=允许FTP客户端读取(仅供浏览和下载) -Permission2802=允许FTP客户端写入(删除和上传文件) -Permission3200=Read archived events and fingerprints -Permission3301=Generate new modules -Permission4001=Read skill/job/position -Permission4002=Create/modify skill/job/position -Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu -Permission4031=Read personal information -Permission4032=Write personal information -Permission10001=Read website content -Permission10002=Create/modify website content (html and javascript content) -Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. -Permission10005=Delete website content -Permission20001=Read leave requests (your leave and those of your subordinates) -Permission20002=Create/modify your leave requests (your leave and those of your subordinates) -Permission20003=删除请假申请 -Permission20004=Read all leave requests (even those of user not subordinates) -Permission20005=Create/modify leave requests for everybody (even those of user not subordinates) -Permission20006=Administer leave requests (setup and update balance) -Permission20007=Approve leave requests -Permission23001=读取排定任务 -Permission23002=创建/更新排定任务 -Permission23003=删除排定任务 -Permission23004=执行排定任务 -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) -Permission50152=Edit sales lines -Permission50153=Edit ordered sales lines -Permission50201=读取交易 +Permission2801=在只读模式下使用 FTP 客户端(仅浏览和下载) +Permission2802=在写入模式下使用 FTP 客户端(删除或上传文件) +Permission3200=读取已存档的事件和指纹 +Permission3301=生成新模块 +Permission4001=查看技能/工作/职位 +Permission4002=创建/修改 技能/工作/职位 +Permission4003=删除技能/工作/职位 +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=验证评价 +Permission4025=删除评价 +Permission4028=查看比较菜单 +Permission4031=查看个人信息 +Permission4032=写入个人信息 +Permission4033=Read all evaluations (even those of user not subordinates) +Permission10001=查看网站内容 +Permission10002=创建/修改网站内容(HTML和 JavaScript 内容) +Permission10003=创建/修改网站内容(动态 PHP代码)。危险,只能提供给受限制的开发人员。 +Permission10005=删除网站内容 +Permission20001=查看休假请求(您和您下属的休假) +Permission20002=创建/修改您的休假请求(您和您下属的休假) +Permission20003=删除休假请求 +Permission20004=查看所有休假请求(即使是用户不是下属) +Permission20005=为所有人创建/修改休假请求(即使是非下属的用户) +Permission20006=管理休假请求(设置和更新余额) +Permission20007=审批休假请求 +Permission23001=查看计划任务 +Permission23002=创建/修改计划任务 +Permission23003=删除计划任务 +Permission23004=执行计划任务 +Permission50101=使用销售点模块 (SimplePOS) +Permission50151=使用销售点模块 (TakePOS) +Permission50152=编辑销售订单行 +Permission50153=编辑已订购的销售订单行 +Permission50201=查看交易 Permission50202=导入交易 -Permission50330=Read objects of Zapier -Permission50331=Create/Update objects of Zapier -Permission50332=Delete objects of Zapier -Permission50401=Bind products and invoices with accounting accounts -Permission50411=Read operations in ledger -Permission50412=Write/Edit operations in ledger -Permission50414=Delete operations in ledger -Permission50415=Delete all operations by year and journal in ledger -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define fiscal periods. Validate transactions and close fiscal periods. -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50330=查看 Zapier 的对象 +Permission50331=创建/修改 Zapier 的对象 +Permission50332=删除 Zapier 的对象 +Permission50401=将产品和发票与会计科目绑定 +Permission50411=查看账目 +Permission50412=写入/修改账目 +Permission50414=删除账目 +Permission50415=在账目中按年份和分类帐删除所有项目 +Permission50418=导出账目 +Permission50420=报表和导出报表(营业额、余额、日记帐、分类帐) +Permission50430=定义会计期间。验证交易并结账。 +Permission50440=管理会计科目表,会计设置 +Permission51001=查看资产 +Permission51002=创建/修改资产 +Permission51003=删除资产 +Permission51005=设置资产类型 Permission54001=打印 -Permission55001=读取调查 -Permission55002=创建/变更调查 +Permission55001=查看调查 +Permission55002=创建/修改调查 Permission59001=查看商业利润 -Permission59002=确定商业利润 -Permission59003=读取每位用户利润 -Permission63001=读取资源 -Permission63002=创建/变更资源 +Permission59002=定义商业利润 +Permission59003=查看每位用户利润 +Permission63001=查看资源 +Permission63002=创建/修改资源 Permission63003=删除资源 Permission63004=将资源链接到议程事件 -Permission64001=Allow direct printing -Permission67000=Allow printing of receipts -Permission68001=Read intracomm report -Permission68002=Create/modify intracomm report -Permission68004=Delete intracomm report -Permission941601=Read receipts -Permission941602=Create and modify receipts -Permission941603=Validate receipts -Permission941604=Send receipts by email -Permission941605=Export receipts -Permission941606=Delete receipts -DictionaryCompanyType=Third-party types -DictionaryCompanyJuridicalType=Third-party legal entities -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts -DictionaryCanton=States/Provinces +Permission64001=允许直接打印 +Permission67000=允许打印收据 +Permission68001=查看内部通讯报告 +Permission68002=创建/修改内部通信报告 +Permission68004=删除内部通讯报告 +Permission941601=查看收据 +Permission941602=创建和编辑收据 +Permission941603=验证收据 +Permission941604=通过电子邮件发送收据 +Permission941605=导出收据 +Permission941606=删除收据 +DictionaryCompanyType=第三方类型 +DictionaryCompanyJuridicalType=第三方法人实体类型 +DictionaryProspectLevel=公司的前景潜力水平 +DictionaryProspectContactLevel=联系人的前景潜力水平 +DictionaryCanton=州/省 DictionaryRegion=地区 DictionaryCountry=国家 DictionaryCurrency=货币 -DictionaryCivility=Honorific titles +DictionaryCivility=尊称 DictionaryActions=活动议程类型 -DictionarySocialContributions=Types of social or fiscal taxes -DictionaryVAT=增值税率和消费税率 -DictionaryRevenueStamp=税票金额 -DictionaryPaymentConditions=Payment Terms -DictionaryPaymentModes=Payment Modes +DictionarySocialContributions=社会税或财政税的类型 +DictionaryVAT=VAT或销售税率 +DictionaryRevenueStamp=印花税金额 +DictionaryPaymentConditions=付款条款 +DictionaryPaymentModes=付款方式 DictionaryTypeContact=联络人/地址类型 -DictionaryTypeOfContainer=Website - Type of website pages/containers -DictionaryEcotaxe=Ecotax 指令 +DictionaryTypeOfContainer=网站 - 网站页面/容器的类型 +DictionaryEcotaxe=生态税 (WEEE) DictionaryPaperFormat=纸张格式 -DictionaryFormatCards=Card formats +DictionaryFormatCards=卡片格式 DictionaryFees=费用报表 - 费用报表行的类型 DictionarySendingMethods=运输方式 -DictionaryStaff=Number of Employees -DictionaryAvailability=送货延迟 -DictionaryOrderMethods=Order methods -DictionarySource=报价/订单来源方式 -DictionaryAccountancyCategory=报告的个性化组 -DictionaryAccountancysystem=会计科目表模型 -DictionaryAccountancyJournal=会计日常报表 -DictionaryEMailTemplates=Email Templates +DictionaryStaff=雇员人数 +DictionaryAvailability=交货用时 +DictionaryOrderMethods=订购方式 +DictionarySource=提案/订单的来源 +DictionaryAccountancyCategory=个性化的报告组 +DictionaryAccountancysystem=会计科目表 +DictionaryAccountancyJournal=会计日记账 +DictionaryEMailTemplates=电子邮件模板 DictionaryUnits=单位 -DictionaryMeasuringUnits=Measuring Units +DictionaryMeasuringUnits=测量单位 DictionarySocialNetworks=社交网络 -DictionaryProspectStatus=Prospect status for companies -DictionaryProspectContactStatus=Prospect status for contacts -DictionaryHolidayTypes=Leave - Types of leave -DictionaryOpportunityStatus=Lead status for project/lead +DictionaryProspectStatus=公司的前景状况 +DictionaryProspectContactStatus=联系人的前景状况 +DictionaryHolidayTypes=休假 - 休假类型 +DictionaryOpportunityStatus=项目/商机的潜在状态 DictionaryExpenseTaxCat=费用报告 - 运输类别 -DictionaryExpenseTaxRange=费用报告 - 按运输类别排列 -DictionaryTransportMode=Intracomm report - Transport mode -DictionaryBatchStatus=Product lot/serial Quality Control status -DictionaryAssetDisposalType=Type of disposal of assets -TypeOfUnit=Type of unit -SetupSaved=设置已经成功保存 -SetupNotSaved=安装程序未保存 -BackToModuleList=Back to Module list -BackToDictionaryList=Back to Dictionaries list -TypeOfRevenueStamp=税票类型 -VATManagement=Sales Tax Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sales Tax rate follows the active standard rule:
    If the seller is not subject to Sales tax, then Sales tax defaults to 0. End of rule.
    If the (seller's country = buyer's country), then the Sales tax by default equals the Sales tax of the product in the seller's country. End of rule.
    If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default VAT is 0. This rule is dependant on the seller's country - please consult with your accountant. The VAT should be paid by the buyer to the customs office in their country and not to the seller. End of rule.
    If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community VAT number) then the VAT defaults to the VAT rate of the seller's country. End of rule.
    If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community VAT number), then the VAT is 0 by default. End of rule.
    In any other case the proposed default is Sales tax=0. End of rule. -VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for cases like associations, individuals or small companies. -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration. This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices. +DictionaryExpenseTaxRange=费用报告 - 按运输类别划分的范围 +DictionaryTransportMode=内部通信报告 - 运输方式 +DictionaryBatchStatus=产品批号/序列号的质量控制状态 +DictionaryAssetDisposalType=资产处置类型 +TypeOfUnit=单位类型 +SetupSaved=设置已保存 +SetupNotSaved=设置未保存 +OAuthServiceConfirmDeleteTitle=删除OAuth条目 +OAuthServiceConfirmDeleteMessage=您确定要删除这个认证条目吗?它的所有现存令牌也将被删除。 +ErrorInEntryDeletion=删除条目时出错 +EntryDeleted=条目已删除 +BackToModuleList=返回模块列表 +BackToDictionaryList=返回字典列表 +TypeOfRevenueStamp=印花税票种类 +VATManagement=销售税管理 +VATIsUsedDesc=默认情况下,在创建潜在客户、发票、订单等时,销售税率遵循现行标准规则:
    如果卖方不缴纳销售税,则销售税默认为 0。规则结束。
    如果(卖方国家=买方国家),则销售税默认等于卖方国家/地区的产品销售税。规则结束。
    如果卖方和买方都在欧共体且货物是与运输相关的产品(拖运、海运、航空),则默认增值税为 0。此规则取决于卖家所在的国家/地区 - 请咨询您的会计师。增值税应由买方向其所在国家的海关支付,而不是向卖方支付。规则结束。
    如果卖方和买方都在欧共体,并且买方不是公司(具有注册的欧盟内部增值税号),则增值税默认为卖方所在国家/地区的增值税税率。规则结束。
    如果卖方和买方都在欧共体,并且买方是公司(注册了欧盟内增值税号),则默认增值税为 0。规则结束。
    在任何其他情况下,建议的默认值为销售税 = 0。规则结束。 +VATIsNotUsedDesc=默认情况下,建议的销售税为 0,可用于协会、个人或小公司等情况。 +VATIsUsedExampleFR=在法国,这意味着这个公司或机构有一个真正的财政系统(简化实际或正常实际),这个体制会申报增值税。 +VATIsNotUsedExampleFR=在法国,它指的是非增值税申报的协会或选择微型企业财政系统(特许经营增值税)并在没有任何增值税申报的情况下支付特许经营增值税的公司,组织或自由职业。该选项将在发票上显示“Non applicable VAT - art-293B of CGI”的参考。 ##### Local Taxes ##### -TypeOfSaleTaxes=Type of sales tax -LTRate=税率 +TypeOfSaleTaxes=销售税类型 +LTRate=利率 LocalTax1IsNotUsed=不使用第二税率 -LocalTax1IsUsedDesc=Use a second type of tax (other than first one) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax1IsUsedDesc=使用第二种税率类型(第一种除外) +LocalTax1IsNotUsedDesc=不要使用其他类型的税(除了第一个) LocalTax1Management=第二税率类型 LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=不使用第三税率 -LocalTax2IsUsedDesc=Use a third type of tax (other than first one) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax2IsUsedDesc=使用第三种税率类型(第一种除外) +LocalTax2IsNotUsedDesc=不要使用其他类型的税率(除了第一个) LocalTax2Management=第三税率类型 LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= -LocalTax1ManagementES=RE 管理(大陆不适用) -LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the buyer is not subjected to RE, RE by default=0. End of rule.
    If the buyer is subjected to RE then the RE by default. End of rule.
    -LocalTax1IsNotUsedDescES=默认情况下,建议RE为0。规则结束。 +LocalTax1ManagementES=RE管理 +LocalTax1IsUsedDescES=创建潜在客户,发票,订单等时默认的RE率遵循有效标准规则:
    如果买方未受RE限制,则RE默认= 0。规则结束。
    如果买方受RE限制,则默认为RE。规则结束。
    +LocalTax1IsNotUsedDescES=默认情况下,建议的RE为0。规则结束。 LocalTax1IsUsedExampleES=在西班牙,他们是受西班牙IAE某些特定部分影响的专业人士。 LocalTax1IsNotUsedExampleES=在西班牙,他们是专业人士和社团,并受西班牙IAE的某些部分的约束。 -LocalTax2ManagementES=IRPF 管理(大陆不适用) -LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
    If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
    If the seller is subjected to IRPF then the IRPF by default. End of rule.
    +LocalTax2ManagementES=IRPF 管理 +LocalTax2IsUsedDescES=创建潜在客户,发票,订单等时默认的RE率遵循有效的标准规则:
    如果卖方不受IRPF的约束,则IRPF默认= 0。规则结束。
    如果卖方受到IRPF的约束,则默认为IRPF。规则结束。
    LocalTax2IsNotUsedDescES=默认情况下,建议IRPF为0。规则结束。 LocalTax2IsUsedExampleES=在西班牙,提供服务的自由职业者和独立专业人士以及选择模块税制的公司。 -LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules. -RevenueStampDesc=The "tax stamp" or "revenue stamp" is a fixed tax you per invoice (It does not depend on amount of invoice). It can also be a percent tax but using the second or third type of tax is better for percent taxes as tax stamps does not provide any reporting. Only few countries uses this type of tax. -UseRevenueStamp=Use a tax stamp -UseRevenueStampExample=The value of tax stamp is defined by default into the setup of dictionaries (%s - %s - %s) -CalcLocaltax=地税报表 +LocalTax2IsNotUsedExampleES=在西班牙,它们是不受模块税收制度约束的企业。 +RevenueStampDesc=“印花税票”是基于您每张发票的固定税款(不取决于发票金额)。它也可以是百分比税,但使用第二类或第三类税更适合百分比税,因为印花税票不提供任何报告。只有少数国家使用这种税收。 +UseRevenueStamp=使用印花税 +UseRevenueStampExample=印花税的默认值在设置的字典中定义 (%s - %s - %s) +CalcLocaltax=地方税报表 CalcLocaltax1=销售 - 采购 -CalcLocaltax1Desc=地税报表已经分别计算了在销售和采购时所产生的不同税。 +CalcLocaltax1Desc=地方税报告是根据进项地方税和销项地方税之间的差额计算的 CalcLocaltax2=采购 -CalcLocaltax2Desc=地税报表是采购总计 +CalcLocaltax2Desc=地方税报表是进项的地方税总额 CalcLocaltax3=销售 -CalcLocaltax3Desc=地税报表是销售总计 -NoLocalTaxXForThisCountry=According to the setup of taxes (See %s - %s - %s), your country does not need to use such type of tax +CalcLocaltax3Desc=地方税报告是地方税销项额的总和 +NoLocalTaxXForThisCountry=根据税收设置(参见 %s - %s - %s),您所在国家/地区不需要使用此类税收 LabelUsedByDefault=如果代码没有翻译则默认使用以下标签 LabelOnDocuments=文档中的标签 -LabelOrTranslationKey=Label or translation key -ValueOfConstantKey=Value of a configuration constant -ConstantIsOn=Option %s is on -NbOfDays=No. of days +LabelOrTranslationKey=标签或翻译键 +ValueOfConstantKey=配置的常量值 +ConstantIsOn=选项 %s 已启用 +NbOfDays=天数 AtEndOfMonth=月末 -CurrentNext=当前/下一项 +CurrentNext=一个月中的某一天 Offset=偏移 AlwaysActive=始终启用 Upgrade=升级 @@ -1138,10 +1149,10 @@ AddExtensionThemeModuleOrOther=部署/安装外部模块 WebServer=网页服务器 DocumentRootServer=网页服务器的根目录 DataRootServer=数据文件的目录 -IP=IP 地址 +IP=IP Port=端口 VirtualServerName=虚拟服务器名称 -OS=操作系统 +OS=OS PhpWebLink=Web-Php链接 Server=服务器 Database=数据库 @@ -1152,289 +1163,297 @@ DatabaseUser=数据库用户 DatabasePassword=数据库密码 Tables=表 TableName=表名称 -NbOfRecord=No. of records +NbOfRecord=记录数 Host=服务器 DriverType=驱动类型 SummarySystem=系统信息摘要 -SummaryConst=Dolibarr所有设置参数清单 +SummaryConst=所有 Dolibarr 设置参数列表 MenuCompanySetup=公司/组织 -DefaultMenuManager= 标准菜单管理 -DefaultMenuSmartphoneManager=智能手机菜单管理 +DefaultMenuManager= 标准菜单管理器 +DefaultMenuSmartphoneManager=智能手机菜单管理器 Skin=外观主题 DefaultSkin=默认外观主题 MaxSizeList=最大列表长度 DefaultMaxSizeList=列表默认最大值 -DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) -MessageOfDay=每日消息 -MessageLogin=登陆页面显示消息 +DefaultMaxSizeShortList=短列表的默认最大长度(如在客户卡中) +MessageOfDay=今日消息 +MessageLogin=登陆页面显示的消息 LoginPage=登录页面 BackgroundImageLogin=背景图 -PermanentLeftSearchForm=常驻左侧菜单搜寻框 -DefaultLanguage=Default language -EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships -EnableShowLogo=Show the company logo in the menu +PermanentLeftSearchForm=搜索表单常驻左侧菜单 +DefaultLanguage=默认语言(语言代码) +EnableMultilangInterface=为客户或供应商关系启用多语言支持 +EnableShowLogo=在菜单中显示公司LOGO CompanyInfo=公司/组织 -CompanyIds=Company/Organization identities +CompanyIds=公司/组织身份 CompanyName=名称 CompanyAddress=地址 CompanyZip=邮编 -CompanyTown=城镇 +CompanyTown=城市 CompanyCountry=国家 -CompanyCurrency=通行货币 +CompanyCurrency=主要货币 CompanyObject=公司愿景 -IDCountry=ID country -Logo=LOGO标志 -LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...) -LogoSquarred=Logo (squarred) -LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into display setup). -DoNotSuggestPaymentMode=不提示 +IDCountry=ID国家 +Logo=LOGO +LogoDesc=公司的主LOGO。将用于生成的文档(PDF,...) +LogoSquarred=LOGO(方形) +LogoSquarredDesc=必须是方形图标(宽度 = 高度)。此徽标将用作收藏夹图标或其他需要例如顶部菜单栏(如在显示设置中未禁用)。 +DoNotSuggestPaymentMode=不建议 NoActiveBankAccountDefined=没有定义有效的银行帐户 OwnerOfBankAccount=银行帐户 %s 的户主 BankModuleNotActive=银行账户模块没有启用 -ShowBugTrackLink=Show the link "%s" -ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' +ShowBugTrackLink=显示链接“ %s ” +ShowBugTrackLinkDesc=留空不显示此链接,使用值 'github' 为 Dolibarr 项目的链接,或直接定义一个 URL 'https://...' Alerts=警告 -DelaysOfToleranceBeforeWarning=Displaying a warning alert for... -DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposal not closed -Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done -Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve -Delays_MAIN_DELAY_HOLIDAYS=Leave requests to approve -SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured. -SetupDescription2=The following two sections are mandatory (the two first entries in the Setup menu): -SetupDescription3=%s -> %s

    Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4=%s -> %s

    This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. -SetupDescription5=Other Setup menu entries manage optional parameters. +DelaysOfToleranceBeforeWarning=为…显示警告 +DelaysOfToleranceDesc=这里您可以设置主看板区出现逾期提醒 (带有%s图标) 前的逾期时间。 +Delays_MAIN_DELAY_ACTIONS_TODO=计划的活动(议程活动)未完成 +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=项目未及时关闭 +Delays_MAIN_DELAY_TASKS_TODO=计划的任务(项目任务)未完成 +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=订单未处理 +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=采购订单未处理 +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=提案未关闭 +Delays_MAIN_DELAY_PROPALS_TO_BILL=提案未出账单 +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=可激活的服务 +Delays_MAIN_DELAY_RUNNING_SERVICES=过期的服务 +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=供应商发票未付 +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=客户发票未付 +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=待处理的银行对账 +Delays_MAIN_DELAY_MEMBERS=会员费延迟 +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=支票存款未完成 +Delays_MAIN_DELAY_EXPENSEREPORTS=费用报表审批 +Delays_MAIN_DELAY_HOLIDAYS=休假请求审批 +SetupDescription1=在开始使用 Dolibarr 之前,必须先定义一些初始参数并启用/配置模块。 +SetupDescription2=以下两个部分是必须的的(设置菜单中的前两个条目): +SetupDescription3= %s -> %s

    用于自定义应用程序默认行为的基本参数(例如与国家/地区相关的功能)。 +SetupDescription4= %s -> %s

    该软件是许多模块/应用程序的套件。必须启用和配置与您的需求相关的模块。激活这些模块后将出现菜单条目。 +SetupDescription5=其他设置菜单条目管理可选参数。 SetupDescriptionLink=%s - %s -SetupDescription3b=Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4b=This software is a suite of many modules/applications. The modules related to your needs must be enabled and configured. Menu entries will appears with the activation of these modules. -AuditedSecurityEvents=Security events that are audited -NoSecurityEventsAreAduited=No security events are audited. You can enable them from menu %s -Audit=Security events +SetupDescription3b=用于自定义应用程序默认行为的基本参数(例如与国家/地区相关的功能)。 +SetupDescription4b=该软件是许多模块/应用程序的套件。必须启用和配置与您的需求相关的模块。激活这些模块后将出现菜单条目。 +AuditedSecurityEvents=被审计的安全事件 +NoSecurityEventsAreAduited=未审计任何安全事件。您可以从菜单 %s 启用它们 +Audit=安全事件 InfoDolibarr=关于Dolibarr InfoBrowser=关于浏览器 InfoOS=关于OS -InfoWebServer=关于WEB服务器 +InfoWebServer=关于Web服务器 InfoDatabase=关于数据库 InfoPHP=关于PHP InfoPerf=关于性能 -InfoSecurity=About Security +InfoSecurity=关于安全 BrowserName=浏览器名称 BrowserOS=浏览器操作系统 -ListOfSecurityEvents=安全事件清单 -SecurityEventsPurged=安全事件清除 -LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. -AreaForAdminOnly=此功能仅供管理员用户 使用。 -SystemInfoDesc=系统信息指以只读方式显示的其它技术信息,只对系统管理员可见。 -SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. -CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. -AccountantFileNumber=Accountant code -DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. -AvailableModules=可用模块 +ListOfSecurityEvents=Dolibarr安全事件列表 +SecurityEventsPurged=安全事件已清除 +TrackableSecurityEvents=可追踪的安全事件 +LogEventDesc=启用特定安全事件的日志记录。管理可通过菜单 %s - %s 记录的日志。警告,此功能会在数据库中生成大量数据。 +AreaForAdminOnly=设置参数只能由 管理员用户 设置。 +SystemInfoDesc=系统信息指只对系统管理员可见的以只读方式显示的杂项技术信息。 +SystemAreaForAdminOnly=此区域仅供管理员用户使用。 Dolibarr 用户权限无法更改此限制。 +CompanyFundationDesc=编辑您的公司/组织的信息。完成后单击页面底部的“%s”按钮。 +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". +AccountantDesc=如果您有外部会计师/簿记员,您可以在此处编辑其信息。 +AccountantFileNumber=会计师代码 +DisplayDesc=在此处可以修改影响应用程序外观和呈现的参数。 +AvailableModules=可用的应用程序/模块 ToActivateModule=要启用模块,请到“设定”区 (“首页”->“设定”->“模块”)。 SessionTimeOut=会话超时 -SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every %s/%s access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).
    Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is. -SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every %s seconds (= value of parameter session.gc_maxlifetime), so changing the value here has no effect. You must ask the server administrator to change session delay. +SessionExplanation=如果会话清理器由内部 PHP 会话清理器完成(仅此而已),则此数字保证会话在此延迟之前永远不会过期。内部 PHP 会话清理器不保证会话会在此延迟后会过期。它将在此延迟之后且当会话清理器运行时过期,因此每次 %s/%s 访问,但仅在其他会话进行访问期间(如果值为 0,则意味着清除会话仅由外部过程完成)。
    注意:在某些具有外部会话清理机制的服务器上(debian、ubuntu 下的 cron...),无论此处输入的值是什么,会话都可以在外部设置定义的时间后销毁。 +SessionsPurgedByExternalSystem=此服务器上的会话似乎是由外部机制(debian、ubuntu 下的 cron ......)清理的,可能每 %s 秒(= 参数值 session.gc_maxlifetime ),所以在这里改变值没有效果。您必须要求服务器管理员更改会话延迟。 TriggersAvailable=可用的触发器 -TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=文件中的触发器代码可以通过文件名中的 -NoRun 前缀禁用。 +TriggersDesc=触发器是一旦复制到目录 htdocs / core / triggers中就会修改Dolibarr工作流程行为的文件。他们可以感知新的Dolibarr事件(新公司创建,发票验证......)。 +TriggerDisabledByName=此文件中的触发器被其名称中的 -NORUN 后缀禁用。 TriggerDisabledAsModuleDisabled=此文件中的触发器将在%s模块禁用时禁用。 TriggerAlwaysActive=无论 Dolibarr 的各模块是否启用,此文件中的触发器一直处于启用状态。 TriggerActiveAsModuleActive=此文件中的触发器将于 %s 模块启用后启用。 -GeneratedPasswordDesc=Choose the method to be used for auto-generated passwords. -DictionaryDesc=输入全部参考数据.你能添加你的参数值为默认值。 -ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting only. -MiscellaneousDesc=所有其他安全相关的参数定义在这里。 -LimitsSetup=范围及精确度 -LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max. decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max. decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max. decimals for prices shown on screen. Add an ellipsis ... after this parameter (e.g. "2...") if you want to see "..." suffixed to the truncated price. -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=税前单价 -TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding +GeneratedPasswordDesc=选择用于自动生成密码的方法。 +DictionaryDesc=输入全部参考数据。您能添加你的参数值为默认值。 +ConstDesc=此页面允许您编辑(覆盖)其他页面中不可用的参数。这些主要是为开发人员/高级故障排除保留的参数。 +MiscellaneousDesc=所有其他安全相关的参数在这里定义。 +LimitsSetup=限制及精度设置 +LimitsDesc=您可以在此处定义 Dolibarr 的使用限制、精度和优化 +MAIN_MAX_DECIMALS_UNIT=单价小数位 +MAIN_MAX_DECIMALS_TOT=总价小数位 +MAIN_MAX_DECIMALS_SHOWN=屏幕上显示的价格的小数位。如果您希望遇到小数位截断的情况下显示...(例如 2…),请在此数值后加上... +MAIN_ROUNDING_RULE_TOT=舍入范围的步长(对于在除了基数10之外的其他位置进行舍入的国家。例如,如果通过0.05步长舍入,则输入0.05) +UnitPriceOfProduct=产品的净单价 +TotalPriceAfterRounding=四舍五入后的总价 (税前价/增值税/税后价) ParameterActiveForNextInputOnly=参数仅在下次输入数值起生效。 -NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page. -NoEventFoundWithCriteria=No security event has been found for this search criteria. +NoEventOrNoAuditSetup=未记录任何安全事件。如果在“设置 - 安全 - 事件”页面中没有启用审核,这是正常的。 +NoEventFoundWithCriteria=未发现符合搜索条件的安全事件。 SeeLocalSendMailSetup=参见您的本机 sendmail 设置 -BackupDesc=A complete backup of a Dolibarr installation requires two steps. -BackupDesc2=Backup the contents of the "documents" directory (%s) containing all uploaded and generated files. This will also include all the dump files generated in Step 1. This operation may last several minutes. -BackupDesc3=Backup the structure and contents of your database (%s) into a dump file. For this, you can use the following assistant. -BackupDescX=The archived directory should be stored in a secure place. +BackupDesc=Dolibarr 安装的 完整 备份需要两个步骤。 +BackupDesc2=备份包含所有上传和生成的文件的“documents”目录 ( %s ) 的内容。这还将包括在步骤 1 中生成的所有转储文件。此操作可能会持续几分钟。 +BackupDesc3=将数据库 (%s) 的结构和内容备份到转储文件中。您可以使用以下助手。 +BackupDescX=存档的文档目录应存储在一个安全的地方。 BackupDescY=生成的转储文件应存放在安全的地方。 -BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended. -RestoreDesc=To restore a Dolibarr backup, two steps are required. -RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (%s). -RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.
    To restore a backup database into this current installation, you can follow this assistant. +BackupPHPWarning=此方法无法确保备份成功。推荐使用前者。 +RestoreDesc=要恢复 Dolibarr 备份,需要两个步骤。 +RestoreDesc2=将“documents”目录的备份文件(例如 zip 文件)恢复到新的 Dolibarr 安装或当前的“documents”目录( %s )。 +RestoreDesc3=将备份转储文件中的数据库结构和数据恢复到新 Dolibarr 安装的数据库或当前安装的数据库 ( %s )。警告,一旦恢复完成,您必须使用备份时存在的用户名/密码重新登陆。
    要将备份数据库恢复到当前安装,您可以按照此助手操作。 RestoreMySQL=MySQL 导入 -ForcedToByAModule=此规则被一个启用中的模块强制应用于 %s -ValueIsForcedBySystem=This value is forced by the system. You can't change it. -PreviousDumpFiles=Existing backup files -PreviousArchiveFiles=Existing archive files -WeekStartOnDay=First day of the week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s) +ForcedToByAModule=此规则被某个激活的模块强制为 %s +ValueIsForcedBySystem=这个值是系统强制的。你不能改变它。 +PreviousDumpFiles=现有备份文件 +PreviousArchiveFiles=现有存档文件 +WeekStartOnDay=一周的第一天 +RunningUpdateProcessMayBeRequired=似乎需要运行升级程序(程序版本 %s 与数据库版本 %s 不同) YouMustRunCommandFromCommandLineAfterLoginToUser=您必须以 %s 用户在MySQL控制台登陆后通过命令行运行此命令否则您必须在命令行的末尾使用 -W 选项来提供 %s 的密码。 -YourPHPDoesNotHaveSSLSupport=SSL 在您的 PHP 中不可用 +YourPHPDoesNotHaveSSLSupport=SSL 函数在您的 PHP 中不可用 DownloadMoreSkins=下载更多外观主题 -SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset -SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset -ShowProfIdInAddress=Show professional ID with addresses -ShowVATIntaInAddress=Hide intra-Community VAT number -TranslationUncomplete=部分翻译 -MAIN_DISABLE_METEO=Disable weather thumb +SimpleNumRefModelDesc=返回格式为 %syymm-nnnn 的参考编号,其中 yy 是年份,mm 是月份,nnnn 是顺序自动递增不会重置的数字 +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=返回格式为 %syymm-nnnn 的参考编号,其中 yy 是年份,mm 是月份,nnnn 是顺序自动递增不会重置的数字 +SimpleNumRefNoDateModelDesc=返回格式为 %s-nnnn 的参考号,其中 nnnn 是顺序自动递增不会重置的数字 +ShowProfIdInAddress=显示带有地址的资格ID +ShowVATIntaInAddress=隐藏欧盟内增值税号 +TranslationUncomplete=未完成翻译 +MAIN_DISABLE_METEO=禁用天气图标 MeteoStdMod=标准模式 MeteoStdModEnabled=标准模式已启用 MeteoPercentageMod=百分比模式 -MeteoPercentageModEnabled=已启用百分比模式 +MeteoPercentageModEnabled=百分比模式已启用 MeteoUseMod=点击使用%s TestLoginToAPI=测试 API 登陆 -ProxyDesc=Some features of Dolibarr require internet access. Define here the internet connection parameters such as access through a proxy server if necessary. -ExternalAccess=External/Internet Access -MAIN_PROXY_USE=Use a proxy server (otherwise access is direct to the internet) -MAIN_PROXY_HOST=Proxy server: Name/Address -MAIN_PROXY_PORT=Proxy server: Port -MAIN_PROXY_USER=Proxy server: Login/User -MAIN_PROXY_PASS=Proxy server: Password -DefineHereComplementaryAttributes=Define any additional / custom attributes that must be added to: %s +ProxyDesc=Dolibarr 的某些功能需要互联网访问。如需要,在此处设置 Internet 连接参数,如需要通过代理服务器进行访问。 +ExternalAccess=外部/互联网访问 +MAIN_PROXY_USE=使用代理服务器(否则直接访问互联网) +MAIN_PROXY_HOST=代理服务器:名称/地址 +MAIN_PROXY_PORT=代理服务器:端口 +MAIN_PROXY_USER=代理服务器:登录名/用户名 +MAIN_PROXY_PASS=代理服务器:密码 +DefineHereComplementaryAttributes=定义必须添加到:%s的任何附加/自定义属性 ExtraFields=自定义属性 -ExtraFieldsLines=自定义属性 (行列) -ExtraFieldsLinesRec=补充属性(模板发票行) -ExtraFieldsSupplierOrdersLines=补充属性(订单行) -ExtraFieldsSupplierInvoicesLines=自定义属性(发票明细) -ExtraFieldsThirdParties=Complementary attributes (third party) -ExtraFieldsContacts=Complementary attributes (contacts/address) -ExtraFieldsMember=自定义属性 (会员) -ExtraFieldsMemberType=自定义属性 (会员类型) -ExtraFieldsCustomerInvoices=自定义属性(发票) -ExtraFieldsCustomerInvoicesRec=补充属性(模板发票) -ExtraFieldsSupplierOrders=自定义属性 (订单) -ExtraFieldsSupplierInvoices=自定义属性 (账单) -ExtraFieldsProject=自定义属性 (项目) -ExtraFieldsProjectTask=自定义属性 (任务) -ExtraFieldsSalaries=Complementary attributes (salaries) +ExtraFieldsLines=自定义属性(行) +ExtraFieldsLinesRec=自定义属性(发票模板行) +ExtraFieldsSupplierOrdersLines=自定义属性(订单行) +ExtraFieldsSupplierInvoicesLines=自定义属性(发票行) +ExtraFieldsThirdParties=自定义属性(第三方) +ExtraFieldsContacts=自定义属性(联系人/地址) +ExtraFieldsMember=自定义属性(会员) +ExtraFieldsMemberType=自定义属性(会员类型) +ExtraFieldsCustomerInvoices=自定义属性(发票) +ExtraFieldsCustomerInvoicesRec=自定义属性(发票模板) +ExtraFieldsSupplierOrders=自定义属性(订单) +ExtraFieldsSupplierInvoices=自定义属性(发票) +ExtraFieldsProject=自定义属性(项目) +ExtraFieldsProjectTask=自定义属性(任务) +ExtraFieldsSalaries=自定义属性(薪酬) ExtraFieldHasWrongValue=属性 %s 有一个错误的值。 -AlphaNumOnlyLowerCharsAndNoSpace=仅限英文大小写字母不含空格 +AlphaNumOnlyLowerCharsAndNoSpace=仅限没有空格的字母数字和小写字符 SendmailOptionNotComplete=警告,在某些Linux系统上,要从您的电子邮件发送电子邮件,sendmail执行设置必须包含选项-ba(参数mail.force_extra_parameters到您的php.ini文件中)。如果某些收件人从未收到电子邮件,请尝试使用mail.force_extra_parameters = -ba编辑此PHP参数。 -PathToDocuments=文件路径 +PathToDocuments=文档路径 PathDirectory=目录 -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages. +SendmailOptionMayHurtBuggedMTA=使用“PHP mail direct”方法发送邮件的功能将生成可能无法被某些接收邮件服务器正确解析的邮件消息。结果是,某些邮件无法被那些有漏洞的平台托管的人阅读。某些 Internet 提供商就是这种情况(例如:法国的 Orange)。这不是 Dolibarr 或 PHP 的问题,而是接收邮件服务器的问题。但是,您可以在 设置- 其他 中将选项 MAIN_FIX_FOR_BUGGED_MTA 设置为 1 以修改 Dolibarr 来避免这种情况。但是,您可能会遇到其他严格使用 SMTP 标准的服务器的问题。另一种解决方案(推荐)是使用没有缺点的方法“SMTP socket library”。 TranslationSetup=翻译设置 -TranslationKeySearch=搜索翻译键值或字符串 -TranslationOverwriteKey=覆盖翻译字符串 -TranslationDesc=How to set the display language:
    * Default/Systemwide: menu Home -> Setup -> Display
    * Per user: Click on the username at the top of the screen and modify the User Display Setup tab on the user card. -TranslationOverwriteDesc=您还可以覆盖填充下表的字符串。从“%s”下拉列表中选择您的语言,将翻译键字符串插入“%s”并将新翻译成“%s” -TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use +TranslationKeySearch=搜索翻译键或字符串 +TranslationOverwriteKey=覆盖一个翻译字符串 +TranslationDesc=如何设置显示语言:
    * 默认/系统范围:菜单 主页 -> 设置 -> 显示
    * 每个用户:单击屏幕顶部的用户名并修改用户选项卡上的 用户显示设置卡片。 +TranslationOverwriteDesc=您还可以覆盖下表中的字符串。从“%s”下拉列表中选择您的语言,将翻译键字符串插入“%s”并将新翻译填写到“%s” +TranslationOverwriteDesc2=您可以使用其他选项卡来帮助您了解要使用的翻译键 TranslationString=翻译字符串 CurrentTranslationString=当前翻译字符串 -WarningAtLeastKeyOrTranslationRequired=至少对于密钥或翻译字符串,需要搜索条件 -NewTranslationStringToShow=显示新翻译字符串 +WarningAtLeastKeyOrTranslationRequired=搜索条件至少要有一个键或翻译字串 +NewTranslationStringToShow=要显示的新翻译字符串 OriginalValueWas=原始翻译被覆盖。原值是:

    %s -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exist in any language files -TitleNumberOfActivatedModules=Activated modules -TotalNumberOfActivatedModules=Activated modules: %s / %s +TransKeyWithoutOriginalValue=您可以对不存在于任何语言文件中的翻译键“ %s ”强制进行新翻译 +TitleNumberOfActivatedModules=已启用的模块 +TotalNumberOfActivatedModules=已启用的模块: %s / %s YouMustEnableOneModule=您必须至少启用 1 个模块 -YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation -ClassNotFoundIntoPathWarning=Class %s not found in PHP path -YesInSummer=是(在夏天) -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    +YouMustEnableTranslationOverwriteBefore=您必须首先启用翻译覆盖才能替换翻译 +ClassNotFoundIntoPathWarning=在 PHP 路径中找不到类 %s +YesInSummer=是的(在夏天) +OnlyFollowingModulesAreOpenedToExternalUsers=请注意,只有以下模块可供外部用户使用(无论此类用户的权限如何)并且仅在授予权限的情况下:
    SuhosinSessionEncrypt=会话存储空间已用 Suhosin 加密 -ConditionIsCurrently=当前条件为 %s -YouUseBestDriver=You use driver %s which is the best driver currently available. -YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. -ComboListOptim=Combo list loading optimization +ConditionIsCurrently=目前情況 %s +YouUseBestDriver=您使用了驱动程序 %s,这是目前可用的最佳驱动程序。 +YouDoNotUseBestDriver=您使用了驱动程序 %s 但建议使用驱动程序 %s。 +NbOfObjectIsLowerThanNoPb=数据库中只有 %s %s 。这不需要任何特定的优化。 +ComboListOptim=组合列表加载优化 SearchOptim=搜索优化 -YouHaveXObjectUseComboOptim=You have %s %s in the database. You can go into setup of module to enable loading of combo list on key pressed event. -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. -YouHaveXObjectUseSearchOptimDesc=This limits the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. -YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to %s in Home-Setup-Other. -BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. -BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. -PHPModuleLoaded=PHP component %s is loaded -PreloadOPCode=Preloaded OPCode is used -AddRefInList=Display Customer/Vendor ref. into combo lists.
    Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp". -AddVatInList=Display Customer/Vendor VAT number into combo lists. -AddAdressInList=Display Customer/Vendor adress into combo lists.
    Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp". -AddEmailPhoneTownInContactList=Display Contact email (or phones if not defined) and town info list (select list or combobox)
    Contacts will appear with a name format of "Dupond Durand - dupond.durand@email.com - Paris" or "Dupond Durand - 06 07 59 65 66 - Paris" instead of "Dupond Durand". -AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. +YouHaveXObjectUseComboOptim=您在数据库中有 %s %s 。您可以进入模块设置以启用在按键后再加载组合列表。 +YouHaveXObjectUseSearchOptim=您在数据库中有 %s %s 。您可以在 主页-设置-其他 中将常数 %s 设置为 1。 +YouHaveXObjectUseSearchOptimDesc=这将搜索限制在字符串的开头,这使得数据库可以使用索引,您应该能立即得到响应。 +YouHaveXObjectAndSearchOptimOn=您在数据库中有 %s %s 并且已在 主页-设置-其他 中将常量 %s 设置为 %s。 +BrowserIsOK=您正在使用 %s 网络浏览器。该浏览器的安全性和性能都OK。 +BrowserIsKO=您正在使用 %s 网络浏览器。众所周知,这种浏览器在安全性、性能和可靠性方面是一个糟糕的选择。我们建议使用 Firefox、Chrome、Opera 或 Safari。 +PHPModuleLoaded=PHP 组件 %s 已加载 +PreloadOPCode=已使用预加载的 OPCode +AddRefInList=在组合列表中显示客户/供应商参考。
    第三方将以“CC12345 - SC45678 - The Big Company corp.”的名称格式出现。而不是“The Big Company corp”。 +AddVatInList=在组合列表中显示客户/供应商增值税号。 +AddAdressInList=在组合列表中显示客户/供应商地址。
    第三方将以“The Big Company corp. - 21 jump street 123456 Big town - USA”的名称格式出现,而不是“The Big Company corp”。 +AddEmailPhoneTownInContactList=显示联系人电子邮件(或电话,如果未定义电子邮件)和城镇信息清单(选择清单或组合框)
    联系人将显示为“Dupond Durand - dupond.durand@email.com - 巴黎”或“Dupond Durand - 06 07 59 65 66 - 巴黎”而不是“Dupond Durand”。 +AskForPreferredShippingMethod=询问第三方的首选运输方式。 FieldEdition=%s 字段的编辑 FillThisOnlyIfRequired=例如:+2 (请只在时区错误问题出现时填写) GetBarCode=获取条码 -NumberingModules=Numbering models -DocumentModules=Document models +NumberingModules=编码模式 +DocumentModules=文件模式 ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. +PasswordGenerationNone=不要建议生成密码。密码必须手动输入。 PasswordGenerationPerso=返回一个字符串用于设置你的个人密码。 SetupPerso=根据你的配置 PasswordPatternDesc=密码模式说明 ##### Users setup ##### -RuleForGeneratedPasswords=Rules to generate and validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page +RuleForGeneratedPasswords=生成和验证密码的规则 +DisableForgetPasswordLinkOnLogonPage=不要在登录页面上显示“忘记密码”链接 UsersSetup=用户模块设置 -UserMailRequired=Email required to create a new user -UserHideInactive=Hide inactive users from all combo lists of users (Not recommended: this may means you won't be able to filter or search on old users on some pages) -UsersDocModules=Document templates for documents generated from user record -GroupsDocModules=Document templates for documents generated from a group record +UserMailRequired=创建新用户时必须输入电子邮件地址 +UserHideInactive=从所有用户组合列表中隐藏非活动用户(不推荐:这可能意味着您将无法在某些页面上过滤或搜索旧用户) +UsersDocModules=从用户记录生成的文档的文档模板 +GroupsDocModules=从组记录生成的文档的文档模板 ##### HRM setup ##### HRMSetup=人力资源管理模块设置 ##### Company setup ##### CompanySetup=客户/供应商模块及其相关参数设置 -CompanyCodeChecker=Options for automatic generation of customer/vendor codes -AccountCodeManager=Options for automatic generation of customer/vendor accounting codes -NotificationsDesc=Email notifications can be sent automatically for some Dolibarr events.
    Recipients of notifications can be defined: -NotificationsDescUser=* per user, one user at a time. -NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time. -NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. -ModelModules=Document Templates -DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) +CompanyCodeChecker=自动生成客户/供应商代码的选项 +AccountCodeManager=自动生成客户/供应商会计科目代码的选项 +NotificationsDesc=可以为某些 Dolibarr 事件自动发送电子邮件通知。
    可以定义通知的接收者: +NotificationsDescUser=* 每个用户,一次一个用户。 +NotificationsDescContact=* 每个第三方联系人(客户或供应商),一次一个联系人。 +NotificationsDescGlobal=* 或通过在模块的设置页面中设置全局电子邮件地址。 +ModelModules=文档模板 +DocumentModelOdt=从 OpenDocument 模板生成文档(来自 LibreOffice、OpenOffice、KOffice、TextEdit 等的 .ODT / .ODS 文件) WatermarkOnDraft=为草稿文档加水印 JSOnPaimentBill=激活启用在线支付功能来自动填充付款的形式 -CompanyIdProfChecker=Rules for Professional IDs +CompanyIdProfChecker=资格 ID 规则 MustBeUnique=必须是独特的吗? -MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? +MustBeMandatory=创建第三方必须填写(如果定义了增值税号或公司类型) ? MustBeInvoiceMandatory=是否必须验证发票? TechnicalServicesProvided=提供技术服务 #####DAV ##### -WebDAVSetupDesc=This is the link to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that needs an existing login account/password for access. -WebDavServer=Root URL of %s server: %s +WebDAVSetupDesc=这是访问 WebDAV 目录的链接。它包含一个对知道 URL 的任何用户开放的“公共”目录(如果允许公共目录访问)和一个需要现有登录帐户/密码才能访问的“私人”目录。 +WebDavServer=%s 服务器的根 URL:%s ##### Webcal setup ##### WebCalUrlForVCalExport=%s格式的导出文件可以通过链接 %s 下载 ##### Invoices ##### BillsSetup=发票模块设置 BillsNumberingModule=发票与信用记录编号模块 BillsPDFModules=发票文档模板 -BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type +BillsPDFModulesAccordindToInvoiceType=根据发票类型的发票文件模型 PaymentsPDFModules=付款文件模型 ForceInvoiceDate=强制发票中的日期为确认日期 -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined on the invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdrawal on account -SuggestPaymentByChequeToAddress=Suggest payment by check to +SuggestedPaymentModesIfNotDefinedInInvoice=如果未在发票上定义,则发票上的默认建议付款方式 +SuggestPaymentByRIBOnAccount=根据账户的提款方式来建议付款方式 +SuggestPaymentByChequeToAddress=建议以支票付款至 FreeLegalTextOnInvoices=发票中的额外说明文本 WatermarkOnDraftInvoices=发票草稿加水印(无则留空) PaymentsNumberingModule=付款编号模式 -SuppliersPayment=Vendor payments -SupplierPaymentSetup=Vendor payments setup -InvoiceCheckPosteriorDate=Check facture date before validation -InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +SuppliersPayment=供应商付款 +SupplierPaymentSetup=供应商付款设置 +InvoiceCheckPosteriorDate=在验证前检查发票日期 +InvoiceCheckPosteriorDateHelp=如果发票日期早于最后一张同类型发票的日期,将禁止验证发票。 +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=报价单模块设置 ProposalsNumberingModules=报价单编号模块 ProposalsPDFModules=报价单文档模板 -SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined on the proposal +SuggestedPaymentModesIfNotDefinedInProposal=如果未在提案中定义,则默认为提案的建议付款方式 FreeLegalTextOnProposal=报价单中的额外说明文本 WatermarkOnDraftProposal=为商业计划书草案添加水印(无则留空) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=询问银行账户 @@ -1449,8 +1468,8 @@ WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=要求仓库来源订购 ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=询问采购订单的银行帐户目的地 ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order -OrdersSetup=Sales Orders management setup +SuggestedPaymentModesIfNotDefinedInOrder=如果订单上未定义,则默认销售订单上的建议付款方式 +OrdersSetup=销售订单管理设置 OrdersNumberingModules=订单编号模块 OrdersModelModule=订单文档模板 FreeLegalTextOnOrders=订单中的额外说明文本 @@ -1472,13 +1491,14 @@ WatermarkOnDraftContractCards=为合同草案添加水印 (无则留空) ##### Members ##### MembersSetup=会员模块设置 MemberMainOptions=主要选项 +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= 管理人员登陆 -AdherentMailRequired=Email required to create a new member +AdherentMailRequired=创建新成员必须输入电子邮件地址 MemberSendInformationByMailByDefault=设置向会员发送邮件确认(会员确认或添加订阅)复选框默认为启用 -MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes -MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. -MembersDocModules=Document templates for documents generated from member record +MemberCreateAnExternalUserForSubscriptionValidated=为每个经过验证的新订阅用户创建一个外部登录用户 +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes +MEMBER_REMINDER_EMAIL=通过电子邮件
    启用订阅过期的自动提醒 。注意:模块 %s 必须启用并正确设置才能发送提醒。 +MembersDocModules=从成员记录生成的文档的文档模板 ##### LDAP setup ##### LDAPSetup=LDAP 设置 LDAPGlobalParameters=全局参数 @@ -1500,10 +1520,10 @@ LDAPSynchronizeMembersTypes=在LDAP中组织基金会的成员类型 LDAPPrimaryServer=主服务器 LDAPSecondaryServer=副服务器 LDAPServerPort=服务器端口 -LDAPServerPortExample=Standard or StartTLS: 389, LDAPs: 636 +LDAPServerPortExample=标准或 StartTLS:389,LDAP:636 LDAPServerProtocolVersion=协议版本 LDAPServerUseTLS=使用 TLS -LDAPServerUseTLSExample=Your LDAP server use StartTLS +LDAPServerUseTLSExample=您的 LDAP 服务器使用 StartTLS LDAPServerDn=服务器的 DN LDAPAdminDn=管理员的 DN LDAPAdminDnExample=完整DN(例如:cn = admin,dc = example,dc = com或cn = Administrator,cn = Users,dc = example,dc = com表示活动目录) @@ -1547,70 +1567,70 @@ LDAPTestSynchroMemberType=测试成员类型同步 LDAPTestSearch= 测试 LDAP 搜索 LDAPSynchroOK=同步测试成功 LDAPSynchroKO=同步测试失败 -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates +LDAPSynchroKOMayBePermissions=同步测试失败。检查与服务器的连接是否正确配置并允许 LDAP 更新 LDAPTCPConnectOK=TCP 连接到 LDAP 服务器连接成功 (服务器=%s, 端口=%s) LDAPTCPConnectKO=TCP 连接到 LDAP 服务器连接失败 (服务器=%s, 端口=%s) -LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindOK=连接/验证到 LDAP 服务器成功(服务器=%s,端口=%s,管理员=%s,密码=%s) +LDAPBindKO=连接/验证 LDAP 服务器失败(服务器=%s,端口=%s,管理员=%s,密码=%s) LDAPSetupForVersion3=LDAP服务器版本配置为 v3 LDAPSetupForVersion2=LDAP服务器版本配置为 v2 LDAPDolibarrMapping=Dolibarr 映射 LDAPLdapMapping=LDAP 映射 LDAPFieldLoginUnix=登陆 (Unix) -LDAPFieldLoginExample=Example: uid +LDAPFieldLoginExample=例如:UID LDAPFilterConnection=筛选搜索 -LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) -LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) +LDAPFilterConnectionExample=例如:&(objectClass=inetOrgPerson) +LDAPGroupFilterExample=例如:&(objectClass=groupOfUsers) LDAPFieldLoginSamba=登陆 (samba,activedirectory) -LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldLoginSambaExample=例如:samaccountname LDAPFieldFullname=全名 -LDAPFieldFullnameExample=Example: cn -LDAPFieldPasswordNotCrypted=Password not encrypted -LDAPFieldPasswordCrypted=Password encrypted -LDAPFieldPasswordExample=Example: userPassword -LDAPFieldCommonNameExample=Example: cn +LDAPFieldFullnameExample=例如:cn +LDAPFieldPasswordNotCrypted=明文密码 +LDAPFieldPasswordCrypted=加密密码 +LDAPFieldPasswordExample=例如:用户密码 +LDAPFieldCommonNameExample=例如:cn LDAPFieldName=名称 -LDAPFieldNameExample=Example: sn +LDAPFieldNameExample=例如:sn LDAPFieldFirstName=名 -LDAPFieldFirstNameExample=Example: givenName +LDAPFieldFirstNameExample=例如:名 LDAPFieldMail=电邮地址 -LDAPFieldMailExample=Example: mail +LDAPFieldMailExample=例如:邮件 LDAPFieldPhone=办公电话号码 -LDAPFieldPhoneExample=Example: telephonenumber +LDAPFieldPhoneExample=例如:电话 LDAPFieldHomePhone=个人电话号码 -LDAPFieldHomePhoneExample=Example: homephone +LDAPFieldHomePhoneExample=例如:家庭电话 LDAPFieldMobile=手机 -LDAPFieldMobileExample=Example: mobile +LDAPFieldMobileExample=例如:手机 LDAPFieldFax=传真 -LDAPFieldFaxExample=Example: facsimiletelephonenumber +LDAPFieldFaxExample=例如:传真电话号码 LDAPFieldAddress=街道 -LDAPFieldAddressExample=Example: street +LDAPFieldAddressExample=示例:街道地址 LDAPFieldZip=邮编 -LDAPFieldZipExample=Example: postalcode +LDAPFieldZipExample=例如:邮政编码 LDAPFieldTown=城镇 -LDAPFieldTownExample=Example: l +LDAPFieldTownExample=例如: l LDAPFieldCountry=国家 LDAPFieldDescription=描述 -LDAPFieldDescriptionExample=Example: description +LDAPFieldDescriptionExample=例如 :描述 LDAPFieldNotePublic=公开备注 -LDAPFieldNotePublicExample=Example: publicnote +LDAPFieldNotePublicExample=例如:公开备注 LDAPFieldGroupMembers= 群组成员 -LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldGroupMembersExample= 例如:uniqueMember LDAPFieldBirthdate=生日 LDAPFieldCompany=公司 -LDAPFieldCompanyExample=Example: o +LDAPFieldCompanyExample=例如:o LDAPFieldSid=SID -LDAPFieldSidExample=Example: objectsid +LDAPFieldSidExample=例如:objectsid LDAPFieldEndLastSubscription=订阅结束日期 LDAPFieldTitle=岗位 LDAPFieldTitleExample=例如: 标题 -LDAPFieldGroupid=Group id -LDAPFieldGroupidExample=Exemple : gidnumber -LDAPFieldUserid=User id -LDAPFieldUseridExample=Exemple : uidnumber -LDAPFieldHomedirectory=Home directory -LDAPFieldHomedirectoryExample=Exemple : homedirectory -LDAPFieldHomedirectoryprefix=Home directory prefix +LDAPFieldGroupid=组ID +LDAPFieldGroupidExample=例如:gidnumber +LDAPFieldUserid=用户ID +LDAPFieldUseridExample=例如:uidnumber +LDAPFieldHomedirectory=主目录 +LDAPFieldHomedirectoryExample=例如:homedirectory +LDAPFieldHomedirectoryprefix=主目录前缀 LDAPSetupNotComplete=LDAP 的安装程序不完整的 (请检查其他选项卡) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=未提供管理员名称或密码LDAP 将以只读模式匿名访问。 LDAPDescContact=此页面中可以定义 Dolibarr 联系人各项数据在 LDAP 树中的 LDAP 属性名称。 @@ -1621,47 +1641,47 @@ LDAPDescMembersTypes=此页面允许您在LDAP树中为Dolibarr成员类型上 LDAPDescValues=例值以载入如下模式的 OpenLDAP为例:core.schema, cosine.schema, inetorgperson.schema)如果您使用OpenLDAP和这些例值,请修改您的 LDAP 配置文件slapd.conf来载入全部这些模式。 ForANonAnonymousAccess=存取访问要求验证, (例如读写访问) PerfDolibarr=性能设置/优化报告 -YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance. -NotInstalled=Not installed. -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. +YouMayFindPerfAdviceHere=此页面提供了一些与性能相关的检查或建议。 +NotInstalled=未安装。 +NotSlowedDownByThis=并没有因此而减慢。 +NotRiskOfLeakWithThis=没有泄漏的风险。 ApplicativeCache=应用型缓存 MemcachedNotAvailable=找不到应用缓存。您可以通过安装缓存服务器Memcached和能够使用此缓存服务器的模块来增强性能。
    更多信息,请访问 http: //wiki.dolibarr.org/index.php/Module_MemCached_EN 。请注意,很多网络托管服务提供商都没有提供此类缓存服务器。 MemcachedModuleAvailableButNotSetup=找到应用程序缓存的memcached模块,但模块设置不完整。 MemcachedAvailableAndSetup=启用专用于使用memcached服务器的模块memcached。 OPCodeCache=操作码缓存 -NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad). +NoOPCodeCacheFound=未找到 OPCode 缓存。也许您正在使用 XCache 或 eAccelerator 以外的 OPCode 缓存(好),或者您可能没有 OPCode 缓存(非常糟糕)。 HTTPCacheStaticResources=HTTP缓存的静态资源(CSS,JavaScript,IMG) FilesOfTypeCached=HTTP服务器 %s 类型的文件缓存 FilesOfTypeNotCached=HTTP服务器不缓存的文件类型%s FilesOfTypeCompressed=HTTP服务器 %s 类型的文件被压缩 FilesOfTypeNotCompressed=HTTP服务器 %s 类型的文件不会被压缩 CacheByServer=缓存服务器 -CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=例如使用 Apache 指令“ExpiresByType image/gif A2592000” CacheByClient=通过浏览器缓存 CompressionOfResources=压缩的HTTP响应 -CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=例如使用 Apache 指令“AddOutputFilterByType DEFLATE” TestNotPossibleWithCurrentBrowsers=这种自动检测在该浏览器中不适用 -DefaultValuesDesc=Here you may define the default value you wish to use when creating a new record, and/or default filters or the sort order when you list records. -DefaultCreateForm=Default values (to use on forms) +DefaultValuesDesc=在这里,您可以定义创建新记录时希望使用的默认值,和/或列出记录时的默认过滤器或排序顺序。 +DefaultCreateForm=默认值(用于表单) DefaultSearchFilters=默认搜索过滤器 DefaultSortOrder=默认排序顺序 DefaultFocus=默认焦点字段 -DefaultMandatory=Mandatory form fields +DefaultMandatory=必填表单域 ##### Products ##### ProductSetup=产品模块设置 ServiceSetup=服务模块设置 ProductServiceSetup=产品和服务模块的设置 -NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit) -ViewProductDescInFormAbility=Display product descriptions in lines of items (otherwise show description in a tooltip popup) -OnProductSelectAddProductDesc=How to use the description of the products when adding a product as a line of a document -AutoFillFormFieldBeforeSubmit=Auto fill the description input field with the description of product -DoNotAutofillButAutoConcat=Do not autofill the input field with description of product. Description of the product will be concatenated to the entered description automatically. -DoNotUseDescriptionOfProdut=Description of the product will never be included into the description of lines of documents +NumberOfProductShowInSelect=组合选择列表中显示的最大产品数量(0=无限制) +ViewProductDescInFormAbility=在项目行中显示产品描述(否则在工具提示弹出窗口中显示描述) +OnProductSelectAddProductDesc=将产品添加为文档行时如何使用产品描述 +AutoFillFormFieldBeforeSubmit=使用产品描述自动填充描述字段 +DoNotAutofillButAutoConcat=不要使用产品描述自动填充输入字段。产品描述将自动连接到输入的描述。 +DoNotUseDescriptionOfProdut=产品描述永远不会包含在文档行的描述中 MergePropalProductCard=在产品/服务附加文件选项卡中激活如果产品/服务在提案中,则将产品PDF文档合并到提案PDF azur的选项 -ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) -UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +ViewProductDescInThirdpartyLanguageAbility=以第三方的语言(否则以用户的语言)在表单中显示产品描述 +UseSearchToSelectProductTooltip=此外,如果您有大量产品 (> 100 000),您可以通过在 设置->其他中将常量 PRODUCT_DONOTSEARCH_ANYWHERE 设置为 1 来提高速度。然后搜索将被限制在字符串的开头。 +UseSearchToSelectProduct=等到你按下一个键再加载产品组合列表的内容(如果你有很多产品,这可能会提高性能,但不太方便) SetDefaultBarcodeTypeProducts=默认的条码类型 SetDefaultBarcodeTypeThirdParties=合作方默认条码类型 UseUnits=在订单,建议或发票行版本中定义数量的度量单位 @@ -1676,9 +1696,9 @@ SyslogLevel=级别 SyslogFilename=文件名称和路径 YouCanUseDOL_DATA_ROOT=您可以使用 DOL_DATA_ROOT/dolibarr.log 来表示“documents”目录下的日志文件。您可以设置不同的路径来保存此文件。 ErrorUnknownSyslogConstant=常量 %s 不是已知的 Syslog 常数 -OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported +OnlyWindowsLOG_USER=在 Windows 上,仅支持 LOG_USER 工具 CompressSyslogs=压缩和备份调试日志文件(由模块Log生成以进行调试) -SyslogFileNumberOfSaves=Number of backup logs to keep +SyslogFileNumberOfSaves=要保留的备份日志数量 ConfigureCleaningCronjobToSetFrequencyOfSaves=配置清理预定作业以设置日志备份频率 ##### Donations ##### DonationsSetup=捐赠模块设置 @@ -1702,7 +1722,7 @@ GenbarcodeLocation=条形码生成命令行工具(内部引擎用于某些条 BarcodeInternalEngine=内部引擎 BarCodeNumberManager=自动定义条形码管理器 ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=设置直接借记付款模块 ##### ExternalRSS ##### ExternalRSSSetup=外部 RSS 的导入设置 NewRSS=新增 RSS 源 @@ -1710,22 +1730,22 @@ RSSUrl=RSS 链接 RSSUrlExample=感兴趣的 RSS 源 ##### Mailing ##### MailingSetup=电邮发送模块设置 -MailingEMailFrom=Sender email (From) for emails sent by emailing module -MailingEMailError=Return Email (Errors-to) for emails with errors +MailingEMailFrom=用于电子邮件模的发件人电子邮件地址(发件人) +MailingEMailError=用于有错误的电子邮件的退信地址(Errors-to) MailingDelay=在发送下一条信息时等待几秒 ##### Notification ##### -NotificationSetup=Email Notification module setup -NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +NotificationSetup=电子邮件通知模块设置 +NotificationEMailFrom=通知模块使用的发件人电子邮件(发件人) FixedEmailTarget=接收方 -NotificationDisableConfirmMessageContact=Hide the list of recipients (subscribed as contact) of notifications into the confirmation message -NotificationDisableConfirmMessageUser=Hide the list of recipients (subscribed as user) of notifications into the confirmation message -NotificationDisableConfirmMessageFix=Hide the list of recipients (subscribed as global email) of notifications into the confirmation message +NotificationDisableConfirmMessageContact=在确认消息中隐藏通知的收件人列表(订阅为联系人) +NotificationDisableConfirmMessageUser=在确认消息中隐藏通知的收件人列表(订阅为用户) +NotificationDisableConfirmMessageFix=在确认消息中隐藏通知的收件人列表(订阅为全局邮件) ##### Sendings ##### -SendingsSetup=Shipping module setup +SendingsSetup=运输模块设置 SendingsReceiptModel=运输模板 SendingsNumberingModules=运输编号模块 SendingsAbility=支持为客户送货时采用发货单 -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=在大多数情况下,发货单既用作客户交付的表(要发送的产品列表),也用作客户接收和签名的单据。因此,产品交货收据是一个重复的功能,很少被激活。 FreeLegalTextOnShippings=运单中的额外说明文本 ##### Deliveries ##### DeliveryOrderNumberingModules=收货回执编号模块 @@ -1735,40 +1755,40 @@ FreeLegalTextOnDeliveryReceipts=收货回执中的额外说明文本 ##### FCKeditor ##### AdvancedEditor=高级编辑 ActivateFCKeditor=为以下为功能启用高级编辑器功能: -FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements -FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements -FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForNotePublic=所见即所得方式创建/编辑元素的“公共笔记”字段 +FCKeditorForNotePrivate=所见即所得方式创建/编辑元素的“内部笔记”字段 +FCKeditorForCompany=所见即所得方式创建/编辑元素的描述字段(产品/服务除外) +FCKeditorForProductDetails=所见即所得方式创建/编辑的产品描述或对象的行 (建议、订单、发票的行等……)。 +FCKeditorForProductDetails2=警告。严重不建议在这种情况下使用该选项,因为它在建立PDF文件时可能会创建特殊字符和页面格式的问题。 FCKeditorForMailing= 以所见即所得方式创建/编辑群发邮件(工具->电邮寄送) FCKeditorForUserSignature=以所见即所得方式创建/编辑用户签名 FCKeditorForMail=所有邮件的WYSIWIG创建/版本(工具 - > eMailing除外) -FCKeditorForTicket=WYSIWIG creation/edition for tickets +FCKeditorForTicket=所见即所得方式创建/编辑工单 ##### Stock ##### StockSetup=库存模块设置 -IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup. +IfYouUsePointOfSaleCheckModule=如果您使用默认提供的销售点模块 (POS) 或外部模块,您的 POS 模块可能会忽略此设置。大多数 POS 模块默认设计为立即创建发票并减少库存,无论此处的选项如何。因此,如果您在从 POS 销售时需要或不需要减少库存,请检查您的 POS 模块设置。 ##### Menu ##### MenuDeleted=菜单(项)已删除 -Menu=Menu +Menu=菜单 Menus=菜单 TreeMenuPersonalized=个性化选单 NotTopTreeMenuPersonalized=个性化菜单未链接到顶部菜单条目 NewMenu=新建菜单 MenuHandler=菜单处理程序 MenuModule=源模块 -HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +HideUnauthorizedMenu=对内部用户隐藏未经授权的菜单(否则为变灰) DetailId=菜单编号 DetailMenuHandler=菜单处理程序 (决定何处显示新菜单) DetailMenuModule=模块名称 (如果菜单项来自模块) DetailType=菜单类型 (顶部或左侧) DetailTitre=翻译用的菜单标签或标签代码 -DetailUrl=菜单指向的URL (绝对链接或尾部链接,以http://开头) +DetailUrl=菜单发送给您的 URL (相对的 URL 链接或外部链接 https://) DetailEnabled=菜单是否显示的条件 DetailRight=菜单显示为变灰禁用的条件 DetailLangs=标签翻译使用的 .lang 文件名 DetailUser=内部 / 外部 / 全部 Target=目标 -DetailTarget=Target for links (_blank top opens a new window) +DetailTarget=链接的目标(使用_blank 打开新窗口/标签) DetailLevel=级 (-1:顶部菜单,0:头菜单,> 0菜单和子菜单) ModifMenu=菜单变化 DeleteMenu=删除选单项 @@ -1779,11 +1799,11 @@ TaxSetup=财政税和增值税模块设置 OptionVatMode=增值税到期 OptionVATDefault=标准依据 OptionVATDebitOption=权责发生制 -OptionVatDefaultDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on payments for services -OptionVatDebitOptionDesc=VAT is due:
    - on delivery of goods (based on invoice date)
    - on invoice (debit) for services +OptionVatDefaultDesc=应缴纳增值税:
    - 货物交付(基于发票日期)
    - 服务付款 +OptionVatDebitOptionDesc=应缴纳增值税:
    - 货物交付时(基于发票日期)
    - 服务发票(借机单) OptionPaymentForProductAndServices=产品和服务的现金基础 OptionPaymentForProductAndServicesDesc=增值税到期:
    - 货物付款
    - 服务付款 -SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option: +SummaryOfVatExigibilityUsedByDefault=根据所选选项的默认增值税资格时间: OnDelivery=交货时 OnPayment=付款时 OnInvoice=发出发票时 @@ -1796,56 +1816,56 @@ YourCompanyDoesNotUseVAT=贵公司已被定义为不含增值税 (首页->设定 AccountancyCode=科目代码 AccountancyCodeSell=销售账户代码 AccountancyCodeBuy=采购账户代码 -CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Keep the checkbox “Automatically create the payment” empty by default when creating a new tax +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=创建新税时,默认将“自动创建付款”复选框保留为空 ##### Agenda ##### AgendaSetup=事件及行程模块设置 PasswordTogetVCalExport=导出链接的授权密钥 -SecurityKey = Security Key +SecurityKey = 安全密钥 PastDelayVCalExport=不导出早于这个日期的时间 -AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form -AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view -AGENDA_DEFAULT_VIEW=Which view do you want to open by default when selecting menu Agenda -AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (When remind date is reached, a popup is shown by the browser. Each user can disable such notifications from its browser notification setup). +AGENDA_USE_EVENT_TYPE=使用事件类型(在菜单设置 -> 词典 -> 议程事件类型中管理) +AGENDA_USE_EVENT_TYPE_DEFAULT=在事件创建表单中自动为事件类型设置此默认值 +AGENDA_DEFAULT_FILTER_TYPE=自动将此事件设置为议程视图的搜索过滤器 +AGENDA_DEFAULT_FILTER_STATUS=自动将此状态设置为议程视图的搜索过滤器 +AGENDA_DEFAULT_VIEW=选择菜单议程时默认打开哪个视图 +AGENDA_REMINDER_BROWSER=在用户的浏览器
    上启用事件提醒 (到达提醒日期时,浏览器会显示一个弹出窗口。每个用户都可以从其浏览器通知设置中禁用此类通知)。 AGENDA_REMINDER_BROWSER_SOUND=启用声音通知 -AGENDA_REMINDER_EMAIL=Enable event reminder by emails (remind option/delay can be defined on each event). -AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the scheduled job %s must be enough to be sure that the remind are sent at the correct moment. +AGENDA_REMINDER_EMAIL=启用通过电子邮件发送事件提醒 (可以在每个事件上定义提醒选项/延迟)。 +AGENDA_REMINDER_EMAIL_NOTE=注意:计划作业 %s 的频率必须足以确保在正确的时刻发送提醒。 AGENDA_SHOW_LINKED_OBJECT=将链接对象显示在议程视图中 ##### Clicktodial ##### ClickToDialSetup=点击拨号模块设置 ClickToDialUrlDesc=当点击手机图片完成时,网址会被呼叫。在网址中,您可以使用标记为
    __ PHONETO __ ,这些标记将替换为要拨打电话号码的人员的电话号码
    __ PHONEFROM __ 将替换为通话电话号码person(你的)
    __ LOGIN __将替换为clicktodial登录(在用户卡上定义)
    __ PASS __ 将替换为clicktodial密码(在用户上定义)卡)。 -ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable. +ClickToDialDesc=在使用桌面计算机时此模块会将电话号码更改为可点击的链接,单击将呼叫该号码。例如,当在桌面上使用软电话或使用基于 SIP 协议的 CTI 系统时,这可用于启动电话呼叫。注意:使用智能手机时,电话号码始终是可点击的。 ClickToDialUseTelLink=在电话号码上链接 "tel:" -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface, installed on the same computer as the browser, and called when you click on a link starting with "tel:" in your browser. If you need a link that start with "sip:" or a full server solution (no need of local software installation), you must set this to "No" and fill the next field. +ClickToDialUseTelLinkDesc=如果您的用户有软件电话或软件界面,安装在与浏览器相同的计算机上,并在您单击浏览器中以“tel:”开头的链接时可以调用,请使用此方法。如果您需要以“sip:”开头的链接或完整的服务器解决方案(无需安装本地软件),您必须将其设置为“否”并填写下一个字段。 ##### Point Of Sale (CashDesk) ##### -CashDesk=Point of Sale -CashDeskSetup=Point of Sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sales +CashDesk=销售点 +CashDeskSetup=销售点模块设置 +CashDeskThirdPartyForSell=用于销售的默认通用第三方 CashDeskBankAccountForSell=接收现金付款的默认帐户 -CashDeskBankAccountForCheque=Default account to use to receive payments by check +CashDeskBankAccountForCheque=用于接收支票付款的默认帐户 CashDeskBankAccountForCB=接收信用卡支付的默认帐户 -CashDeskBankAccountForSumup=Default bank account to use to receive payments by SumUp -CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock). +CashDeskBankAccountForSumup=用于接收 SumUp 付款的默认银行帐户 +CashDeskDoNotDecreaseStock=禁用POS模块销售时的库存减少功能(如果选择”否“,则无论库存模块设置如何,每一笔经过POS模块的销售都会减掉该商品的库存)。 CashDeskIdWareHouse=强制和限制仓库库存减少 -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with module Serial/Lot management (currently active) so stock decrease is disabled. -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. -CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. -CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +StockDecreaseForPointOfSaleDisabled=POS模块减少库存功能被禁用 +StockDecreaseForPointOfSaleDisabledbyBatch=POS 中的库存减少与模块序列号/批号管理(当前处于活动状态)不兼容,因此库存减少已被禁用。 +CashDeskYouDidNotDisableStockDecease=你没有禁用POS模块的减少库存功能,所以必须有一个仓库可以使用。 +CashDeskForceDecreaseStockLabel=已强制启用有序列号/批号的产品的库存减少。 +CashDeskForceDecreaseStockDesc=首先按最旧的eatby 和sellby 日期减少。 +CashDeskReaderKeyCodeForEnter=条形码阅读器中定义的"输入"的关键ASCII代码 (例如:13) ##### Bookmark ##### BookmarkSetup=书签模块设置 -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. +BookmarkDesc=该模块允许您管理书签。您还可以在左侧菜单中添加任何 Dolibarr 页面或外部网站的快捷方式。 NbOfBoomarkToShow=左侧菜单中显示书签的最大数量 ##### WebServices ##### WebServicesSetup=SOAP Webservice 模块设置 -WebServicesDesc=启用此模块,Dolibarr成为Web服务器提供其他Web服务。 +WebServicesDesc=通过启用此模块,Dolibarr将成为提供各种杂项Web服务的服务器。 WSDLCanBeDownloadedHere=提供服务的 WSDL描述文件可以从此处下载 EndPointIs=SOAP客户端必须将其请求发送到URL上提供的Dolibarr端点 ##### API #### ApiSetup=API模块设置 -ApiDesc=通过启用此模块,Dolibarr成为REST服务器以提供各种Web服务。 +ApiDesc=通过启用此模块,Dolibarr将成为提供各种杂项Web服务的REST服务器。 ApiProductionMode=启用生产模式(这将激活使用缓存进行服务管理) ApiExporerIs=您可以在URL上浏览和测试API OnlyActiveElementsAreExposed=仅公开已启用模块中的元素 @@ -1853,25 +1873,25 @@ ApiKey=API的Key WarningAPIExplorerDisabled=API资源管理器已被禁用。 API资源管理器不需要提供API服务。它是开发人员查找/测试REST API的工具。如果您需要此工具,请进入模块API REST的设置以激活它。 ##### Bank ##### BankSetupModule=银行模块设置 -FreeLegalTextOnChequeReceipts=Free text on check receipts +FreeLegalTextOnChequeReceipts=支票收据上的自由文本 BankOrderShow=Display order of bank accounts for countries using "detailed bank number" BankOrderGlobal=一般 BankOrderGlobalDesc=一般的显示顺序 BankOrderES=西班牙语 BankOrderESDesc=西班牙语显示顺序 -ChequeReceiptsNumberingModule=Check Receipts Numbering Module +ChequeReceiptsNumberingModule=支票收据编号模块 ##### Multicompany ##### MultiCompanySetup=多公司模块设置 ##### Suppliers ##### -SuppliersSetup=Vendor module setup -SuppliersCommandModel=Complete template of Purchase Order -SuppliersCommandModelMuscadet=Complete template of Purchase Order (old implementation of cornas template) -SuppliersInvoiceModel=Complete template of Vendor Invoice -SuppliersInvoiceNumberingModel=Vendor invoices numbering models -IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval +SuppliersSetup=供应商模块设置 +SuppliersCommandModel=完整的采购订单模板 +SuppliersCommandModelMuscadet=完整的采购订单模板(基于cornas 模板的旧实现) +SuppliersInvoiceModel=供应商发票的完整模板 +SuppliersInvoiceNumberingModel=供应商发票编号模型 +IfSetToYesDontForgetPermission=如果设置为非空值,请不要忘记向允许进行二次审核的组或用户授予权限 ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Maxmind Geoip 模块设置 -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=注意此数据文件所处目录您的PHP必需能读取(检查您 PHP 的 open_basedir 设置和文件系统权限)。 YouCanDownloadFreeDatFileTo=您可以下载 Maxmind网站的GeoIP全球IP地址数据库 免费演示版 的国家地理位置数据文件,地址是 %s。 YouCanDownloadAdvancedDatFileTo=您也可以下载更加完整更新更快的 Maxmind GeoIP 国家文件版本,地址是 %s。 @@ -1882,7 +1902,7 @@ ProjectsSetup=项目模块设置 ProjectsModelModule=项目报告文档模板 TasksNumberingModules=任务编号模块 TaskModelModule=任务报告文档模板 -UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.
    This may improve performance if you have a large number of projects, but it is less convenient. +UseSearchToSelectProject=直到按下某个键再加载项目组合列表的内容。
    如果您有大量项目,这可能会提高性能,但不太方便。 ##### ECM (GED) ##### ##### Fiscal Year ##### AccountingPeriods=会计期间 @@ -1903,72 +1923,73 @@ NoAmbiCaracAutoGeneration=不使用模糊字符 (例如"1","l","i","|","0","O") SalariesSetup=薪酬模块设置 SortOrder=排序顺序 Format=格式 -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and suppliers payment type +TypePaymentDesc=0:客户支付类型,1:供应商支付类型,2:客户和供应商支付类型 IncludePath=包含路径 (定义变量 %s) ExpenseReportsSetup=费用报表模块设置 TemplatePDFExpenseReports=用于生成费用报表文件的文件模板 ExpenseReportsRulesSetup=模块费用报告的设置 - 规则 ExpenseReportNumberingModules=费用报告编号模块 NoModueToManageStockIncrease=没有能够管理自动库存增加的模块已被激活。库存增加仅在手动输入时完成。 -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -TemplatesForNotifications=Templates for notifications -ListOfNotificationsPerUser=List of automatic notifications per user* -ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** -ListOfFixedNotifications=List of automatic fixed notifications -GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go to the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +YouMayFindNotificationsFeaturesIntoModuleNotification=您可以通过启用和配置“通知”模块找到电子邮件通知的选项。 +TemplatesForNotifications=通知模板 +ListOfNotificationsPerUser=每个用户的自动通知列表* +ListOfNotificationsPerUserOrContact=每个用户*或每个联系人**可用的自动通知列表(关于商业活动) +ListOfFixedNotifications=自动固定通知列表 +GoOntoUserCardToAddMore=转到用户的“通知”选项卡以添加或删除用户的通知 +GoOntoContactCardToAddMore=转到第三方的“通知”选项卡以添加或删除联系人/地址的通知 Threshold=阈值 -BackupDumpWizard=Wizard to build the database dump file -BackupZipWizard=Wizard to build the archive of documents directory +BackupDumpWizard=建立数据库转储文件的向导 +BackupZipWizard=建立documents目录压缩包的向导 SomethingMakeInstallFromWebNotPossible=由于以下原因,无法从Web界面安装外部模块: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +SomethingMakeInstallFromWebNotPossible2=因此,此处描述的升级过程是只有特权用户才能执行的手动过程。 +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=管理员已禁用从应用程序安装外部模块。您必须要求他删除文件 %s 以允许此功能。 ConfFileMustContainCustom=从应用程序安装或构建外部模块需要将模块文件保存到目录 %s中。要让Dolibarr处理此目录,您必须设置 conf / conf.php 以添加2个指令行:
    $ dolibarr_main_url_root_alt ='/ custom';
    $ dolibarr_main_document_root_alt = '%s /自定义'; HighlightLinesOnMouseHover=当鼠标经过表格明细时高亮显示 -HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) -HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) -UseBorderOnTable=Show left-right borders on tables -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +HighlightLinesColor=鼠标经过时突出显示线条的颜色(使用 'ffffff' 不突出显示) +HighlightLinesChecked=选中时突出显示线条的颜色(使用 'ffffff' 表示不突出显示) +UseBorderOnTable=在表格上显示左右边框 +BtnActionColor=操作按钮的颜色 +TextBtnActionColor=操作按钮的文本颜色 TextTitleColor=页面标题的文字颜色 LinkColor=颜色链接 PressF5AfterChangingThis=在键盘上按CTRL + F5或更改此值后清除浏览器缓存以使其生效 NotSupportedByAllThemes=将与核心主题一起使用,可能不受外部主题的支持 BackgroundColor=背景颜色 TopMenuBackgroundColor=顶部菜单背景颜色 -TopMenuDisableImages=隐藏顶部菜单图片 +TopMenuDisableImages=顶部菜单中的图标或文本 LeftMenuBackgroundColor=左侧菜单背景颜色 BackgroundTableTitleColor=清单表格表头背景颜色 BackgroundTableTitleTextColor=表标题行的文本颜色 -BackgroundTableTitleTextlinkColor=Text color for Table title link line +BackgroundTableTitleTextlinkColor=表格标题链接线的文本颜色 BackgroundTableLineOddColor=表格奇数背景颜色 BackgroundTableLineEvenColor=表格偶数背景颜色 MinimumNoticePeriod=最小通知间隔 NbAddedAutomatically=每月添加到用户计数器(自动)的天数 -EnterAnyCode=This field contains a reference to identify the line. Enter any value of your choice, but without special characters. -Enter0or1=Enter 0 or 1 -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +EnterAnyCode=此字段包含用于标识行的引用。输入您选择的任何值,但不要输入特殊字符。 +Enter0or1=输入 0 或 1 +UnicodeCurrency=在大括号之间输入代表货币符号的字节数列表。例如:对于 $,输入 [36] - 对于巴西雷亚尔 R$ [82,36] - 对于 €,输入 [8364] ColorFormat=RGB颜色采用HEX格式,例如:FF0000 -PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) +PictoHelp=图标名称的格式:
    - image.png 用于将图像文件放入当前主题目录
    如果文件位于模块的目录 /img/ 中,- image.png@module
    - fa-xxx 用于 FontAwesome fa-xxx picto
    - FontAwesome fa-xxx picto 的 fonwtawesome_xxx_fa_color_size(带有前缀、颜色和大小设置) PositionIntoComboList=行位置到组合列表中 -SellTaxRate=Sales tax rate +SellTaxRate=销售税率 RecuperableOnly=适用于法国某些州的增值税“Not Perceived but Recoverable”是的。在所有其他情况下,将值保持为“否”。 -UrlTrackingDesc=If the provider or transport service offers a page or web site to check the status of your shipments, you may enter it here. You can use the key {TRACKID} in the URL parameters so the system will replace it with the tracking number the user entered into the shipment card. -OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of the lead, this amount may be multiplied by this rate to evaluate a total amount all your leads may generate. Value is a percentage (between 0 and 100). -TemplateForElement=This mail template is related to what type of object? An email template is available only when using the "Send Email" button from the related object. +UrlTrackingDesc=如果供应商或运输服务提供页面或网站来检查您的货件状态,您可以在此处输入。您可以在 URL 参数中使用键 {TRACKID},以便系统将其替换为用户在货件卡中输入的跟踪号。 +OpportunityPercent=创建潜在客户时,您将定义项目/潜在客户的估计金额。根据潜在客户的状态,此金额可能会乘以此比率来评估您的所有潜在客户可能产生的总金额。值是一个百分比(介于 0 和 100 之间)。 +TemplateForElement=此邮件模板与什么类型的对象相关?电子邮件模板仅在使用相关对象中的“发送电子邮件”按钮时可用。 TypeOfTemplate=模板类型 -TemplateIsVisibleByOwnerOnly=Template is visible to owner only +TemplateIsVisibleByOwnerOnly=模板仅对所有者可见 VisibleEverywhere=四处可见 VisibleNowhere=无处可见 FixTZ=时区修复 FillFixTZOnlyIfRequired=例:+2 (只有问题发生时才填写) ExpectedChecksum=预计校验 CurrentChecksum=当前校验 -ExpectedSize=Expected size -CurrentSize=Current size +ExpectedSize=预期规模 +CurrentSize=目前的规模 ForcedConstants=必需的常量值 MailToSendProposal=客户报价 -MailToSendOrder=Sales orders +MailToSendOrder=销售订单 MailToSendInvoice=客户发票 MailToSendShipment=运输 MailToSendIntervention=干预 @@ -1976,31 +1997,32 @@ MailToSendSupplierRequestForQuotation=报价请求 MailToSendSupplierOrder=订单 MailToSendSupplierInvoice=供应商发票 MailToSendContract=合同 -MailToSendReception=Receptions +MailToSendReception=收货 +MailToExpenseReport=费用报表 MailToThirdparty=合作方 MailToMember=会员 MailToUser=用户 MailToProject=项目 -MailToTicket=票据 +MailToTicket=工单 ByDefaultInList=默认显示列表视图 YouUseLastStableVersion=您使用最新的稳定版本 TitleExampleForMajorRelease=您可以用来宣布此主要版本的消息示例(可以在您的网站上使用它) TitleExampleForMaintenanceRelease=您可以用来宣布此维护版本的消息示例(可以在您的网站上使用它) ExampleOfNewsMessageForMajorRelease=Dolibarr ERP&CRM %s可用。版本%s是一个主要版本,为用户和开发人员提供了许多新功能。您可以从https://www.dolibarr.org portal(子目录稳定版本)的下载区下载它。您可以阅读 ChangeLog 以获取完整的更改列表。 -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so contains only bug fixes. We recommend all users to upgrade to this version. A maintenance release does not introduce new features or changes to the database. You may download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read the ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several levels of prices per product/service" is enabled, you can define different prices (one per price level) for each product. To save you time, here you may enter a rule to autocalculate a price for each level based on the price of the first level, so you will have to only enter a price for the first level for each product. This page is designed to save you time but is useful only if your prices for each level are relative to first level. You can ignore this page in most cases. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s 可用。版本 %s 是维护版本,因此仅包含错误修复。我们建议所有用户升级到此版本。维护版本不会向数据库引入新功能或更改。您可以从 https://www.dolibarr.org 门户(子目录稳定版本)的下载区域下载它。您可以阅读 ChangeLog 以获取完整的更改列表。 +MultiPriceRuleDesc=当启用“每种产品/服务的多个价格级别”选项时,您可以为每种产品定义不同的价格(每个价格级别一个)。为了节省您的时间,您可以在此处输入一个规则,以根据第一级的价格自动计算每个级别的价格,因此您只需为每个产品输入第一级的价格。此页面旨在节省您的时间,但仅当您的每个级别的价格都与第一级别相关时才有用。在大多数情况下,您可以忽略此页面。 ModelModulesProduct=产品文件模板 -WarehouseModelModules=Templates for documents of warehouses -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto-define the barcode number. +WarehouseModelModules=仓库文件模板 +ToGenerateCodeDefineAutomaticRuleFirst=为了能够自动生成代码,您必须首先定义一个管理器来自动定义条码编号。 SeeSubstitutionVars=有关可能的替换变量列表,请参阅* note SeeChangeLog=请参阅ChangeLog文件(仅英文) -AllPublishers=所有出版商 -UnknownPublishers=未知的发布商 +AllPublishers=所有发布者 +UnknownPublishers=未知的发布者 AddRemoveTabs=添加或删除标签 AddDataTables=添加对象表 AddDictionaries=添加词典表 AddData=添加对象或词典数据 -AddBoxes=添加插件 +AddBoxes=添加小工具 AddSheduledJobs=添加计划任务 AddHooks=添加钩子 AddTriggers=添加触发器 @@ -2012,254 +2034,324 @@ AddOtherPagesOrServices=添加其他页面或服务 AddModels=添加文档或数据模板 AddSubstitutions=添加密钥替换 DetectionNotPossible=检测不可能 -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call) +UrlToGetKeyToUseAPIs=获取令牌以使用 API 的 URL(一旦收到令牌,它就会保存在数据库用户表中,并且必须在每次 API 调用时提供) ListOfAvailableAPIs=可用的API列表 -activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter $dolibarr_main_restrict_os_commands in the conf.php file. +activateModuleDependNotSatisfied=模块“%s”依赖于不存在的模块“%s”,因此模块“%1$s”可能无法正常工作。如果您想避免意外,请安装模块“%2$s”或禁用模块“%1$s” +CommandIsNotInsideAllowedCommands=您尝试运行的命令不在 conf.php 文件中的参数 $dolibarr_main_restrict_os_commands 中定义的允许命令列表中。 LandingPage=加载页 -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments +SamePriceAlsoForSharedCompanies=如果您使用了多公司模块,并选择了“单一价格”,如果产品在环境之间共享,则所有公司的价格也将相同 ModuleEnabledAdminMustCheckRights=模块已激活。已激活模块的权限仅授予管理员用户。如有必要,您可能需要手动向其他用户或组授予权限。 -UserHasNoPermissions=This user has no permissions defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")
    Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)
    Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s") +UserHasNoPermissions=此用户没有定义权限 +TypeCdr=如果付款条款的日期是发票日期加上一个 delta 天数 (delta 是字段“%s”) 使用“无”
    如果在 delta 之后,日期必须增加以达到月底(+一个可选的“%s”天数),使用“在月底”
    ,付款条款的日期是 delta 之后的第一个月的第 N 天 (delta 是字段“%s”,N 被存储在字段“%s”),使用 “当前/下一个”。 BaseCurrency=公司的参考货币(进入公司设置改变这个) -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. -WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software. +WarningNoteModuleInvoiceForFrenchLaw=此模块 %s 符合法国法律 (Loi Finance 2016)。 +WarningNoteModulePOSForFrenchLaw=此模块 %s 符合法国法律 (Loi Finance 2016),因为模块不可逆日志是自动激活的。 +WarningInstallationMayBecomeNotCompliantWithLaw=您正在尝试安装外部模块 %s。激活外部模块意味着您信任该模块的发布者,并且您确信该模块不会对您的应用程序的行为产生不利影响,同时符合您所在国家/地区的法律 (%s)。如该模块引入了非法功能,您将对使用非法软件负责。 MAIN_PDF_MARGIN_LEFT=PDF的左边距 MAIN_PDF_MARGIN_RIGHT=PDF的右边距 MAIN_PDF_MARGIN_TOP=PDF的上边距 MAIN_PDF_MARGIN_BOTTOM=PDF的底部边距 -MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF -MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines -MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines -MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame -MAIN_PDF_NO_RECIPENT_FRAME=Hide borders on recipent address frame -MAIN_PDF_HIDE_CUSTOMER_CODE=Hide customer code -MAIN_PDF_HIDE_SENDER_NAME=Hide sender/company name in address block -PROPOSAL_PDF_HIDE_PAYMENTTERM=Hide payments conditions -PROPOSAL_PDF_HIDE_PAYMENTMODE=Hide payment mode -MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Add electronic sign in PDF -NothingToSetup=There is no specific setup required for this module. +MAIN_DOCUMENTS_LOGO_HEIGHT=PDF上LOGO的高度 +DOC_SHOW_FIRST_SALES_REP=显示第一位销售代表 +MAIN_GENERATE_PROPOSALS_WITH_PICTURE=在提案行中添加图片列 +MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=图片列的宽度(如有) +MAIN_PDF_NO_SENDER_FRAME=隐藏发件人地址框的边框 +MAIN_PDF_NO_RECIPENT_FRAME=隐藏收件人地址框的边框 +MAIN_PDF_HIDE_CUSTOMER_CODE=隐藏客户代码 +MAIN_PDF_HIDE_SENDER_NAME=在地址块中隐藏发送人/公司名称 +PROPOSAL_PDF_HIDE_PAYMENTTERM=隐藏付款条款 +PROPOSAL_PDF_HIDE_PAYMENTMODE=隐藏支付方式 +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=在 PDF 中添加电子签名 +NothingToSetup=此模块无需特定设置。 SetToYesIfGroupIsComputationOfOtherGroups=如果此组是其他组的计算,则将此值设置为yes -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes.
    For example:
    CODEGRP1+CODEGRP2 +EnterCalculationRuleIfPreviousFieldIsYes=如果上一个字段设置为是,则输入计算规则。
    例如:
    CODEGRP1+CODEGRP2 SeveralLangugeVariatFound=找到了几种语言变体 -RemoveSpecialChars=Remove special characters +RemoveSpecialChars=删除特殊字符 COMPANY_AQUARIUM_CLEAN_REGEX=正则表达式过滤器清理值(COMPANY_AQUARIUM_CLEAN_REGEX) -COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) -COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed -GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here -HelpOnTooltip=Help text to show on tooltip -HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form -YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s -ChartLoaded=Chart of account loaded -SocialNetworkSetup=Setup of module Social Networks -EnableFeatureFor=Enable features for %s -VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. -SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents -FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. -EmailCollector=Email collector -EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). -NewEmailCollector=New Email Collector -EMailHost=Host of email IMAP server -MailboxSourceDirectory=Mailbox source directory -MailboxTargetDirectory=Mailbox target directory -EmailcollectorOperations=Operations to do by collector -EmailcollectorOperationsDesc=Operations are executed from top to bottom order -MaxEmailCollectPerCollect=Max number of emails collected per collect -CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? -DateLastCollectResult=Date of latest collect try -DateLastcollectResultOk=Date of latest collect success -LastResult=Latest result -EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails -EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run this collector now? -EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr -EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. -EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' -EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. -EmailCollectorExampleToCollectLeads=Example collecting leads -EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail -NoNewEmailToProcess=No new email (matching filters) to process -NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) -RecordEvent=Record an event in agenda (with type Email sent or received) -CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) -CodeLastResult=Latest result code -NbOfEmailsInInbox=Number of emails in source directory -LoadThirdPartyFromName=Load third party searching on %s (load only) -LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. -WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr -WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr -WithDolTrackingIDInMsgId=Message sent from Dolibarr -WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr -CreateCandidature=Create job application +COMPANY_DIGITARIA_CLEAN_REGEX=清理值的正则表达式(COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=不允许重复 +RemoveSpecialWords=为客户或供应商生成子帐户时清除某些字词 +RemoveSpecialWordsHelp=在计算客户或供应商帐户之前指定要清理的单词。 在每个单词之间使用“;” +GDPRContact=数据保护官(DPO、数据隐私或 GDPR 联系人) +GDPRContactDesc=如果您将个人数据存储在您的信息系统中,您可以在此处指定负责一般数据保护条例(GDPR)的联系人 +HelpOnTooltip=显示在工具提示上的帮助文本 +HelpOnTooltipDesc=当该字段出现在表单中时,将文本或翻译键放在此处以在工具提示中显示文本 +YouCanDeleteFileOnServerWith=您可以使用此命令行在服务器上删除此文件:
    %s +ChartLoaded=已加载的会计科目表 +SocialNetworkSetup=社交网络模块的设置 +EnableFeatureFor=启用 %s 的功能 +VATIsUsedIsOff=注意:在菜单 %s - %s 中,使用销售税或增值税的选项已设置为 关闭,因此销售税或增值税始终为 0。 +SwapSenderAndRecipientOnPDF=交换 PDF 文档上的发件人和收件人地址位置 +FeatureSupportedOnTextFieldsOnly=警告,仅文本字段和组合列表支持的功能。此外,必须设置 URL 参数 action=create 或 action=edit 或页面名称必须以“new.php”结尾才能触发此功能。 +EmailCollector=电子邮件收集器 +EmailCollectors=电子邮件收集器 +EmailCollectorDescription=添加计划作业和设置页面以定期扫描电子邮件箱(使用 IMAP 协议),并在应用程序的正确的位置记录收到的电子邮件和/或自动创建一些记录(如潜在客户)。 +NewEmailCollector=新建电子邮件收集器 +EMailHost=电子邮件 IMAP 服务器 +EMailHostPort=电子邮件 IMAP 服务器的端口 +loginPassword=登入/密码 +oauthToken=Oauth2令牌 +accessType=访问类型 +oauthService=认证服务 +TokenMustHaveBeenCreated=必须启用OAuth2模块,和必须使用正确的权限创建oauth2令牌(例如,Gmail的OAuth范围为"gmail_full") +MailboxSourceDirectory=邮箱源目录 +MailboxTargetDirectory=邮箱目标目录 +EmailcollectorOperations=收集器要做的操作 +EmailcollectorOperationsDesc=操作从上到下顺序执行 +MaxEmailCollectPerCollect=每次收集的最大电子邮件数量 +TestCollectNow=收集测试 +CollectNow=立即收集 +ConfirmCloneEmailCollector=您确定要克隆电子邮件收集器 %s 吗? +DateLastCollectResult=最近一次收集尝试的日期 +DateLastcollectResultOk=最近一次收集成功的日期 +LastResult=最新结果 +EmailCollectorHideMailHeaders=不要将邮件头的内容保存在已收集的邮件中 +EmailCollectorHideMailHeadersHelp=启用后,电子邮件头不会添加到保存为议程事件的电子邮件内容的末尾。 +EmailCollectorConfirmCollectTitle=电子邮件收集确认 +EmailCollectorConfirmCollect=你想现在运行这个收集器吗? +EmailCollectorExampleToCollectTicketRequestsDesc=收集符合某些规则的电子邮件,并使用电子邮件信息自动创建工单(必须启用工单票证)。如果您通过电子邮件提供一些支持,您可以使用此收集器,因此您的工单请求将自动生成。同时激活 Collect_Responses 以直接在工单视图上收集客户的答案(您必须从 Dolibarr 回复)。 +EmailCollectorExampleToCollectTicketRequests=收集工单请求的示例(仅限第一条消息) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=扫描您的邮箱“已发送”目录以查找直接从您的电子邮件软件作为另一封电子邮件的答复而不是从 Dolibarr发送的电子邮件。如果找到这样的电子邮件,则将应答事件记录到 Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=收集从外部电子邮件软件发送的电子邮件回复的示例 +EmailCollectorExampleToCollectDolibarrAnswersDesc=收集所有回复您的应用程序发送的电子邮件的电子邮件。带有电子邮件响应的事件(必须启用模块议程)将记录在好位置。例如,如果您从应用程序通过电子邮件发送商业提案、订单、发票或工单消息,并且收件人回复了您的电子邮件,系统将自动捕获回复并将其添加到您的 ERP 中。 +EmailCollectorExampleToCollectDolibarrAnswers=收集所有传入消息的示例,这些消息是从 Dolibarr 发送的消息的答复 +EmailCollectorExampleToCollectLeadsDesc=收集符合某些规则的电子邮件并使用电子邮件信息自动创建潜在客户(必须启用模块项目)。如果您想使用模块项目(1 个潜在客户 = 1 个项目)跟踪您的潜在客户,您可以使用此收集器,因此您的潜在客户将自动生成。如果收集器 Collect_Responses 也已启用,当您从潜在客户、提案或任何其他对象发送电子邮件时,您还可以直接在应用程序上看到客户或合作伙伴的答案。
    注意:在这个初始示例中,生成的线索标题包括电子邮件。如果在数据库中找不到第三方(新客户),则线索将附加到 ID 为 1 的第三方。 +EmailCollectorExampleToCollectLeads=收集商业机会的示例 +EmailCollectorExampleToCollectJobCandidaturesDesc=收集申请工作机会的电子邮件(必须启用模块招聘)。如果您想为工作请求自动创建候选人,您可以完成此收集器。注意:在这个初始示例中,会生成候选人的标题,包括电子邮件。 +EmailCollectorExampleToCollectJobCandidatures=收集通过电子邮件收到的求职者的示例 +NoNewEmailToProcess=没有要处理的新电子邮件(匹配过滤器) +NothingProcessed=什么都没做 +XEmailsDoneYActionsDone=%s 个电子邮件已通过预审,%s 个电子邮件已成功处理(对于 %s 记录/已完成的操作) +RecordEvent=在议程中记录事件(类型为发送或接收的电子邮件) +CreateLeadAndThirdParty=创建商业机会(必要时创建第三方) +CreateTicketAndThirdParty=创建工单(如果第三方由先前的操作加载或可以从电子邮件标头中的跟踪器猜测,则链接到第三方,否则没有第三方) +CodeLastResult=最新结果代码 +NbOfEmailsInInbox=源目录中的电子邮件数量 +LoadThirdPartyFromName=在 %s 上加载第三方搜索(仅加载) +LoadThirdPartyFromNameOrCreate=在 %s 上加载第三方搜索(如果未找到则创建) +AttachJoinedDocumentsToObject=如果在电子邮件主题中找到对象的引用,则将附件保存到对象文档中。 +WithDolTrackingID=来自 Dolibarr 发送的第一封电子邮件发起的对话的消息 +WithoutDolTrackingID=来自不是从 Dolibarr 发送的第一封电子邮件发起的对话的消息 +WithDolTrackingIDInMsgId=来自 Dolibarr 的消息 +WithoutDolTrackingIDInMsgId=不来自 Dolibarr 的信息 +CreateCandidature=创建工作申请 FormatZip=邮编 -MainMenuCode=Menu entry code (mainmenu) -ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. -OpeningHours=Opening hours -OpeningHoursDesc=Enter here the regular opening hours of your company. -ResourceSetup=Configuration of Resource module +MainMenuCode=菜单入口代码(主菜单) +ECMAutoTree=显示自动 ECM 树 +OperationParamDesc=定义用于提取某些数据或设置用于操作的值的规则。

    从电子邮件主题中提取公司名称到临时变量的示例:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    设置要创建对象的属性的示例:
    objproperty1=SET:硬编码值
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY 值集
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My公司名称为\\s([^\\s]*)

    使用a; char 作为分隔符来提取或设置几个属性。 +OpeningHours=营业时间 +OpeningHoursDesc=在此处输入贵公司的正常营业时间。 +ResourceSetup=资源模块的配置 UseSearchToSelectResource=使用搜索表单选择资源(而不是下拉列表)。 DisabledResourceLinkUser=禁用将资源链接到用户的功能 DisabledResourceLinkContact=禁用将资源链接到联系人的功能 -EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +EnableResourceUsedInEventCheck=禁止在议程中同时使用相同的资源 ConfirmUnactivation=确认模块重置 -OnMobileOnly=On small screen (smartphone) only -DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) -MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links. -MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person -MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. -Protanopia=Protanopia -Deuteranopes=Deuteranopes -Tritanopes=Tritanopes -ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' -DefaultCustomerType=Default thirdparty type for "New customer" creation form -ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. -RootCategoryForProductsToSell=Root category of products to sell -RootCategoryForProductsToSellDesc=If defined, only products inside this category or childs of this category will be available in the Point Of Sale -DebugBar=Debug Bar -DebugBarDesc=Toolbar that comes with a plenty of tools to simplify debugging -DebugBarSetup=DebugBar Setup -GeneralOptions=General Options -LogsLinesNumber=Number of lines to show on logs tab -UseDebugBar=Use the debug bar -DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console -WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -ModuleActivated=Module %s is activated and slows the interface -ModuleActivatedWithTooHighLogLevel=Module %s is activated with a too high logging level (try to use a lower level for better performances and security) -ModuleSyslogActivatedButLevelNotTooVerbose=Module %s is activated and log level (%s) is correct (not too verbose) -IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. -AntivirusEnabledOnUpload=Antivirus enabled on uploaded files -SomeFilesOrDirInRootAreWritable=Some files or directories are not in a read-only mode -EXPORTS_SHARE_MODELS=Export models are share with everybody -ExportSetup=Setup of module Export -ImportSetup=Setup of module Import -InstanceUniqueID=Unique ID of the instance -SmallerThan=Smaller than -LargerThan=Larger than -IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object. -WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/. -EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account. -EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.
    For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    -EndPointFor=End point for %s : %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? -RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value -AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. +OnMobileOnly=仅在小屏幕(智能手机)上 +DisableProspectCustomerType=禁用“潜在+ 客户”第三方类型(因此第三方必须是“潜在”或“客户”,但不能同时是两者) +MAIN_OPTIMIZEFORTEXTBROWSER=盲人简化界面 +MAIN_OPTIMIZEFORTEXTBROWSERDesc=如果您是盲人,或者如果您从 Lynx 或 Links 等文本浏览器使用应用程序,请启用此选项。 +MAIN_OPTIMIZEFORCOLORBLIND=为色盲者更改界面颜色 +MAIN_OPTIMIZEFORCOLORBLINDDesc=如果您是色盲者,请启用此选项,在某些情况下界面会更改颜色设置以增加对比度。 +Protanopia=红眼病 +Deuteranopes=氘核 +Tritanopes=钛太粉 +ThisValueCanOverwrittenOnUserLevel=每个用户都可以从其用户页面覆盖此值 - 选项卡“%s” +DefaultCustomerType=“新客户”创建表单的默认第三方类型 +ABankAccountMustBeDefinedOnPaymentModeSetup=注意:必须在每种支付方式(Paypal,Stripe,...)的模块上定义银行帐户才能使此功能正常工作。 +RootCategoryForProductsToSell=要销售的产品的根类别 +RootCategoryForProductsToSellDesc=如果已定义,在销售点(POS)中仅可以使用此类别内的产品或子产品 +DebugBar=调试栏 +DebugBarDesc=带有大量工具的工具栏,可简化调试 +DebugBarSetup=调试栏设置 +GeneralOptions=常规选项 +LogsLinesNumber=日志选项卡上显示的行数 +UseDebugBar=使用调试栏 +DEBUGBAR_LOGS_LINES_NUMBER=保留在控制台中的最新日志行数 +WarningValueHigherSlowsDramaticalyOutput=警告,较高的值会显着减慢输出 +ModuleActivated=模块 %s 被激活并减慢了界面 +ModuleActivatedWithTooHighLogLevel=模块 %s 以过高的日志记录级别激活(尝试使用较低级别以获得更好的性能和安全性) +ModuleSyslogActivatedButLevelNotTooVerbose=模块 %s 已激活且日志级别 (%s) 正确(不太冗长) +IfYouAreOnAProductionSetThis=如果您在生产环境中,则应将此属性设置为 %s。 +AntivirusEnabledOnUpload=已对上传的文件启用防病毒 +SomeFilesOrDirInRootAreWritable=某些文件或目录未处于只读模式 +EXPORTS_SHARE_MODELS=导出模型将与所有人共享 +ExportSetup=模块 导出 设置 +ImportSetup=模块 导入 设置 +InstanceUniqueID=实例的唯一标识 +SmallerThan=小于 +LargerThan=大于 +IfTrackingIDFoundEventWillBeLinked=请注意,如果在电子邮件中找到对象的跟踪 ID,或者如果电子邮件是收集到的并链接到对象的电子邮件区域的答复,则创建的事件将自动链接到已知的相关对象。 +WithGMailYouCanCreateADedicatedPassword=如果您启用了 GMail 帐户的两步验证,需要为Dolibarr创建一个专用的应用密码,而不是使用您自己的来自 https://myaccount.google.com/ 的帐户密码。 +EmailCollectorTargetDir=成功处理电子邮件后,将其移动到另一个标签/目录可能是一种期望中的行为。只需在此处设置目录名称即可使用此功能(请勿在名称中使用特殊字符)。请注意,您还必须使用可以读/写的登录帐户。 +EmailCollectorLoadThirdPartyHelp=您可以使用此操作来使用电子邮件内容在数据库中查找和加载现有第三方。找到的(或创建的)第三方将用于后续需要它的操作。
    例如,如果您想创建一个第三方名称,该名称从正文中的字符串“名称:要查找的名称”中提取,使用发件人电子邮件作为电子邮件,您可以将参数字段设置为:
    'email=标题:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +EndPointFor=%s 的终点:%s +DeleteEmailCollector=删除电子邮件收集器 +ConfirmDeleteEmailCollector=您确定要删除此电子邮件收集器吗? +RecipientEmailsWillBeReplacedWithThisValue=收件人电子邮件将始终替换为此值 +AtLeastOneDefaultBankAccountMandatory=必须定义至少 1 个默认银行帐户 +RESTRICT_ON_IP=仅允许某些客户端 IP访问API (不允许通配符,在值之间使用空格)。留空意味着所有客户端都可以访问。 IPListExample=127.0.0.1 192.168.0.2 [::1] -BaseOnSabeDavVersion=Based on the library SabreDAV version -NotAPublicIp=Not a public IP -MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation. -FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled -EmailTemplate=Template for email -EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax -PDF_SHOW_PROJECT=Show project on document -ShowProjectLabel=Project Label -PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. -PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF -FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. -RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard -JumpToBoxes=Jump to Setup -> Widgets -MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time" -MeasuringScaleDesc=The scale is the number of places you have to move the decimal part to match the default reference unit. For "time" unit type, it is the number of seconds. Values between 80 and 99 are reserved values. -TemplateAdded=Template added -TemplateUpdated=Template updated -TemplateDeleted=Template deleted -MailToSendEventPush=Event reminder email -SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security -DictionaryProductNature= Nature of product -CountryIfSpecificToOneCountry=Country (if specific to a given country) -YouMayFindSecurityAdviceHere=You may find security advisory here -ModuleActivatedMayExposeInformation=This PHP extension may expose sensitive data. If you don't need it, disable it. -ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment. -CombinationsSeparator=Separator character for product combinations -SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples -SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. -AskThisIDToYourBank=Contact your bank to get this ID -AdvancedModeOnly=Permision available in Advanced permission mode only -ConfFileIsReadableOrWritableByAnyUsers=The conf file is readable or writable by any users. Give permission to web server user and group only. -MailToSendEventOrganization=Event Organization -MailToPartnership=Partnership -AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form -YouShouldDisablePHPFunctions=You should disable PHP functions -IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions -NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) -RecommendedValueIs=Recommended: %s +BaseOnSabeDavVersion=基于库 SabreDAV 的版本 +NotAPublicIp=不是公网IP +MakeAnonymousPing=对 Dolibarr 基金会服务器进行匿名 '+1' Ping(仅在安装后执行 1 次)以允许基金会计算 Dolibarr 安装量。 +FeatureNotAvailableWithReceptionModule=启用模块接收后此特性不可用 +EmailTemplate=电子邮件模板 +EMailsWillHaveMessageID=电子邮件将具有与此语法匹配的标签“参考” +PDF_SHOW_PROJECT=在文档上显示项目 +ShowProjectLabel=项目标签 +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=在第三方名称中包含别名 +THIRDPARTY_ALIAS=第三方名 - 第三方别名 +ALIAS_THIRDPARTY=第三方别名 - 第三方名 +PDFIn2Languages=Show labels into PDF in 2 different languages +PDF_USE_ALSO_LANGUAGE_CODE=如果您想在同一个生成的 PDF 中以 2 种不同的语言复制 PDF 中的某些文本,则必须在此处设置第二种语言,以便生成的 PDF 将在同一页面中包含 2 种不同的语言:生成 PDF 时选择的一种和这个(只有少数 PDF 模板支持这一点)。留空为每个 PDF只有1种语言。 +PDF_USE_A=使用 PDF/A 格式而不是默认格式 PDF 生成 PDF 文档 +FafaIconSocialNetworksDesc=在此处输入 FontAwesome 图标的代码。如果你不知道什么是 FontAwesome,你可以使用通用值 fa-address-book。 +RssNote=注意:每个 RSS 源定义都提供了一个小根据,您必须启用该小工具才能使其在主看板中可用 +JumpToBoxes=跳转到设置 -> 小根据 +MeasuringUnitTypeDesc=在这里使用像“大小”、“表面”、“体积”、“重量”、“时间”这样的值 +MeasuringScaleDesc=比例是您必须移动小数部分以匹配默认参考单位的位数。对于“时间”单位类型,它是秒数。 80 到 99 之间的值是保留值。 +TemplateAdded=模板已添加 +TemplateUpdated=模板已更新 +TemplateDeleted=模板已删除 +MailToSendEventPush=活动提醒邮件 +SwitchThisForABetterSecurity=建议将此值切换为 %s 以提高安全性 +DictionaryProductNature= 产品性质 +CountryIfSpecificToOneCountry=国家(如果特定于给定国家) +YouMayFindSecurityAdviceHere=您可以在此处找到安全建议 +ModuleActivatedMayExposeInformation=这个 PHP 扩展可能会暴露敏感数据。如果您不需要它,请禁用它。 +ModuleActivatedDoNotUseInProduction=为开发设计的模块已启用。不要在生产环境中启用它。 +CombinationsSeparator=产品组合的分隔符 +SeeLinkToOnlineDocumentation=有关示例,请参见顶部菜单上的在线文档链接 +SHOW_SUBPRODUCT_REF_IN_PDF=如果使用了模块 %s 的特性“%s”,将在 PDF 上显示套件的子产品的详细信息。 +AskThisIDToYourBank=请与您的银行联系以获取此 ID +AdvancedModeOnly=权限仅在高级权限模式下可用 +ConfFileIsReadableOrWritableByAnyUsers=任何用户都可以读取或写入 conf 文件。请只向 Web 服务器用户和组授予权限。 +MailToSendEventOrganization=活动组织 +MailToPartnership=合伙 +AGENDA_EVENT_DEFAULT_STATUS=从表单创建事件时的默认事件状态 +YouShouldDisablePHPFunctions=您应该禁用 PHP 函数 +IfCLINotRequiredYouShouldDisablePHPFunctions=除非您需要在自定义代码中运行系统命令,否则您应该禁用 PHP 函数 +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions +NoWritableFilesFoundIntoRootDir=在您的根目录中没有找到常用程序的可写文件或目录(好) +RecommendedValueIs=建议:%s Recommended=推荐 -NotRecommended=Not recommended -ARestrictedPath=Some restricted path -CheckForModuleUpdate=Check for external modules updates -CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. -ModuleUpdateAvailable=An update is available -NoExternalModuleWithUpdate=No updates found for external modules -SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) -YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. -RandomlySelectedIfSeveral=Randomly selected if several pictures are available -DatabasePasswordObfuscated=Database password is obfuscated in conf file -DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file -APIsAreNotEnabled=APIs modules are not enabled -YouShouldSetThisToOff=You should set this to 0 or off -InstallAndUpgradeLockedBy=Install and upgrades are locked by the file %s -OldImplementation=Old implementation -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=If some online payment modules are enabled (Paypal, Stripe, ...), add a link on the PDF to make the online payment -DashboardDisableGlobal=Disable globally all the thumbs of open objects -BoxstatsDisableGlobal=Disable totally box statistics -DashboardDisableBlocks=Thumbs of open objects (to process or late) on main dashboard -DashboardDisableBlockAgenda=Disable the thumb for agenda -DashboardDisableBlockProject=Disable the thumb for projects -DashboardDisableBlockCustomer=Disable the thumb for customers -DashboardDisableBlockSupplier=Disable the thumb for suppliers -DashboardDisableBlockContract=Disable the thumb for contracts -DashboardDisableBlockTicket=Disable the thumb for tickets -DashboardDisableBlockBank=Disable the thumb for banks -DashboardDisableBlockAdherent=Disable the thumb for memberships -DashboardDisableBlockExpenseReport=Disable the thumb for expense reports -DashboardDisableBlockHoliday=Disable the thumb for leaves -EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -LanguageAndPresentation=Language and presentation -SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax -PDF_USE_1A=Generate PDF with PDF/A-1b format -MissingTranslationForConfKey = Missing translation for %s -NativeModules=Native modules -NoDeployedModulesFoundWithThisSearchCriteria=No modules found for these search criteria -API_DISABLE_COMPRESSION=Disable compression of API responses -EachTerminalHasItsOwnCounter=Each terminal use its own counter. -FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first -PreviousHash=Previous hash -LateWarningAfter="Late" warning after -TemplateforBusinessCards=Template for a business card in different size -InventorySetup= Inventory Setup -ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. -ShowQuickAddLink=Show a button to quickly add an element in top right menu -HashForPing=Hash used for ping -ReadOnlyMode=Is instance in "Read Only" mode -DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs -UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. -FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices -UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +NotRecommended=不建议 +ARestrictedPath=Some restricted path for data files +CheckForModuleUpdate=检查外部模块更新 +CheckForModuleUpdateHelp=此操作将连接到外部模块的编写者以检查是否有新版本可用。 +ModuleUpdateAvailable=有可用的更新 +NoExternalModuleWithUpdate=未找到外部模块的更新 +SwaggerDescriptionFile=Swagger API 描述文件(例如与 redoc 一起使用) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=您启用了已弃用的 WS API。您应该改用 REST API。 +RandomlySelectedIfSeveral=如果有多张图片则随机选择 +SalesRepresentativeInfo=用于建议、订单、发票 +DatabasePasswordObfuscated=在 conf 文件中的数据库密码已被混淆 +DatabasePasswordNotObfuscated=在 conf 文件中的数据库密码未被混淆 +APIsAreNotEnabled=未启用 API 模块 +YouShouldSetThisToOff=您应该将此设置为 0 或关闭 +InstallAndUpgradeLockedBy=安装和升级被文件 %s 锁定 +OldImplementation=旧实现 +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=如果启用了某些在线支付模块(Paypal、Stripe、...),请在 PDF 上添加一个链接以进行在线支付 +DashboardDisableGlobal=全局禁用所有开放对象的缩略图 +BoxstatsDisableGlobal=完全禁用统计信息盒子 +DashboardDisableBlocks=在主看板上开放对象(处理或延迟)的缩略图 +DashboardDisableBlockAgenda=禁用议程的缩略图 +DashboardDisableBlockProject=禁用项目的缩略图 +DashboardDisableBlockCustomer=禁用客户的缩略图 +DashboardDisableBlockSupplier=禁用供应商的缩略图 +DashboardDisableBlockContract=禁用合同的缩略图 +DashboardDisableBlockTicket=禁用工单的缩略图 +DashboardDisableBlockBank=禁用银行的缩略图 +DashboardDisableBlockAdherent=禁用会员的缩略图 +DashboardDisableBlockExpenseReport=禁用费用报表的缩略图 +DashboardDisableBlockHoliday=禁用休假的缩略图 +EnabledCondition=启用字段的条件(如果未启用,可见性将始终关闭) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=如果您想使用第二个税,您还必须启用第一个销售税 +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=如果您想使用第三税,您还必须启用第一销售税 +LanguageAndPresentation=语言和呈现 +SkinAndColors=皮肤和颜色 +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=如果您想使用第二个税,您还必须启用第一个销售税 +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=如果您想使用第三税,您还必须启用第一销售税 +PDF_USE_1A=生成 PDF/A-1b 格式的 PDF +MissingTranslationForConfKey = 缺少 %s 的翻译 +NativeModules=原生模块 +NoDeployedModulesFoundWithThisSearchCriteria=未找到符合这些搜索条件的模块 +API_DISABLE_COMPRESSION=禁止压缩 API 响应 +EachTerminalHasItsOwnCounter=每个终端使用自己的计数器。 +FillAndSaveAccountIdAndSecret=先填写并保存账号ID和密码 +PreviousHash=以前的哈希 +LateWarningAfter=“逾期”警告时间 +TemplateforBusinessCards=不同大小的名片模板 +InventorySetup= 库存设置 +ExportUseLowMemoryMode=使用低内存模式 +ExportUseLowMemoryModeHelp=使用低内存模式来生成转储文件 (压缩是通过管道而不是进入 PHP 内存)。这种方法不允许检查文件是否完整,如果失败也不能报告错误信息。如果你遇到内存不足的错误,请使用它。 + +ModuleWebhookName = Webhook +ModuleWebhookDesc = 捕获 dolibarr 触发器并将其发送到某个 URL 的接口 +WebhookSetup = Webhook 设置 +Settings = 设置 +WebhookSetupPage = Webhook 设置页面 +ShowQuickAddLink=在右上角的菜单中显示一个快速添加元素的按钮 + +HashForPing=用于 Ping 的哈希 +ReadOnlyMode=实例是否处于“只读”模式 +DEBUGBAR_USE_LOG_FILE=使用 dolibarr.log 文件捕获日志 +UsingLogFileShowAllRecordOfSubrequestButIsSlower=使用 dolibarr.log 文件捕获日志而不是实时内存捕获。它允许捕获所有日志,而不仅仅是当前进程的日志(因此包括 ajax 子请求页面),但会使您的实例非常非常慢。不建议。 +FixedOrPercent=固定(使用关键字“固定”)或百分比(使用关键字“百分比”) +DefaultOpportunityStatus=默认机会状态(创建潜在客户时的第一个状态) + +IconAndText=图标和文字 +TextOnly=纯文本 +IconOnlyAllTextsOnHover=仅图标 - 所有文本都显示在鼠标悬停菜单的图标下显示 +IconOnlyTextOnHover=仅图标 - 图标文本都显示在在鼠标悬停菜单的图标下 +IconOnly=仅图标 - 仅在工具提示上显示文本 +INVOICE_ADD_ZATCA_QR_CODE=在发票上显示 ZATCA 二维码 +INVOICE_ADD_ZATCA_QR_CODEMore=一些阿拉伯国家的发票上需要此二维码 +INVOICE_ADD_SWISS_QR_CODE=在发票上显示瑞士QR-Bill二维码 +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=社交网络的 URL 链接。使用 {socialid} 作为包含社交网络 ID 的变量部分。 +IfThisCategoryIsChildOfAnother=如果此类别是另一个类别的子类别 +DarkThemeMode=深色主题模式 +AlwaysDisabled=始终禁用 +AccordingToBrowser=根据浏览器 +AlwaysEnabled=始终启用 +DoesNotWorkWithAllThemes=不适用于所有主题 +NoName=无名 +ShowAdvancedOptions= 显示高级选项 +HideAdvancedoptions= 隐藏高级选项 +CIDLookupURL=该模块带来了一个 URL,外部工具可以使用该 URL 从其电话号码中获取第三方或联系人的名称。可使用的网址是: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 身份验证不适用于所有主机,并且必须已使用 OAUTH 模块在上游创建了具有正确权限的令牌 +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 认证服务 +DontForgetCreateTokenOauthMod=必须使用 OAUTH 模块在上游创建具有正确权限的令牌 +MAIN_MAIL_SMTPS_AUTH_TYPE=认证方式 +UsePassword=使用密码 +UseOauth=使用 OAUTH 令牌 +Images=图像 +MaxNumberOfImagesInGetPost=在表单中提交的HTML字段中允许的最大图片数量 +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=该模块带来了一个 URL,外部工具可以使用该 URL 从其电话号码中获取第三方或联系人的名称。可使用的网址是: +ScriptIsEmpty=脚本是空的 +ShowHideTheNRequests=显示/隐藏%sSQL请求 +DefinedAPathForAntivirusCommandIntoSetup=定义一个杀毒程序的路径到%s +TriggerCodes=可触发的事件 +TriggerCodeInfo=在这里输入必须生成网络请求帖子的触发代码 (只允许外部 URL)。你可以输入几个用逗号分隔的触发代码。 +EditableWhenDraftOnly=如果不勾选,只有当对象在草稿状态时才能修改该值 +CssOnEdit=编辑页面上的CSS +CssOnView=浏览页面上的CSS +CssOnList=清单页面上的CSS +HelpCssOnEditDesc=当编辑字段时使用的 Css。
    例如:“minwiwdth100 maxwidth500 widthcentpercentminusx” +HelpCssOnViewDesc=当浏览字段时使用的 Css。 +HelpCssOnListDesc=当字段位于清单表格中时使用的 Css。
    例如:“tdoverflowmax200” +RECEPTION_PDF_HIDE_ORDERED=在生成的收货文档上隐藏订购数量 +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=在生成的收货文档上显示价格 +WarningDisabled=警告已禁用 +LimitsAndMitigation=访问限制和缓解 +DesktopsOnly=仅限台式机 +DesktopsAndSmartphones=台式机和智能手机 +AllowOnlineSign=允许在线签名 +AllowExternalDownload=允许外部下载 (无需登录,使用共享链接) +DeadlineDayVATSubmission=下个月提交增值税的截止日期 +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/zh_CN/assets.lang b/htdocs/langs/zh_CN/assets.lang index 400f1d46bc5..ae647333de2 100644 --- a/htdocs/langs/zh_CN/assets.lang +++ b/htdocs/langs/zh_CN/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,50 +16,171 @@ # # Generic # -Assets = 资产 -NewAsset = 新资产 -AccountancyCodeAsset = 科目代码(资产) -AccountancyCodeDepreciationAsset = 科目代码(折旧资产帐户) -AccountancyCodeDepreciationExpense = 科目代码(折旧费用帐户) -NewAssetType=新资产类型 -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified -AssetType=Asset type +NewAsset=新资产 +AccountancyCodeAsset=科目代码(资产) +AccountancyCodeDepreciationAsset=科目代码(折旧资产帐户) +AccountancyCodeDepreciationExpense=科目代码(折旧费用帐户) AssetsLines=资产 DeleteType=删除 -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? -ShowTypeCard=显示类型'%s' +DeleteAnAssetType=删除资产模型 +ConfirmDeleteAssetType=您确定要删除该资产模型吗? +ShowTypeCard=显示模型“%s” # Module label 'ModuleAssetsName' -ModuleAssetsName = 资产 +ModuleAssetsName=资产 # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = 资产说明 +ModuleAssetsDesc=资产描述 # # Admin page # -AssetsSetup = 资产设置 -Settings = 设置 -AssetsSetupPage = 资产设置页面 -ExtraFieldsAssetsType = Complementary attributes (Asset type) -AssetsType=资产类型 -AssetsTypeId=资产类型ID -AssetsTypeLabel=资产类型标签 -AssetsTypes=资产类型 +AssetSetup=资产设置 +AssetSetupPage=资产设置页面 +ExtraFieldsAssetModel=互补属性 (资产的模型) + +AssetsType=资产模型 +AssetsTypeId=资产模型 ID +AssetsTypeLabel=资产模型标签 +AssetsTypes=资产模型 +ASSET_ACCOUNTANCY_CATEGORY=固定资产科目组 # # Menu # -MenuAssets = 资产 -MenuNewAsset = 新资产 -MenuTypeAssets = 输入资产 -MenuListAssets = 名单 -MenuNewTypeAssets = 新建 -MenuListTypeAssets = 名单 +MenuAssets=资产 +MenuNewAsset=新资产 +MenuAssetModels=模型资产 +MenuListAssets=清单 +MenuNewAssetModel=新资产模型 +MenuListAssetModels=清单 # # Module # -NewAssetType=新资产类型 -NewAsset=新资产 +ConfirmDeleteAsset=您真的要移除该资产吗? + +# +# Tab +# +AssetDepreciationOptions=折旧选项 +AssetAccountancyCodes=会计科目 +AssetDepreciation=折旧 + +# +# Asset +# +Asset=资产 +Assets=资产 +AssetReversalAmountHT=冲销金额 (未税) +AssetAcquisitionValueHT=购置金额 (未税) +AssetRecoveredVAT=Recovered VAT +AssetReversalDate=Reversal date +AssetDateAcquisition=购置日期 +AssetDateStart=开始日期 +AssetAcquisitionType=购置类型 +AssetAcquisitionTypeNew=新建 +AssetAcquisitionTypeOccasion=已使用 +AssetType=资产类型 +AssetTypeIntangible=Intangible +AssetTypeTangible=Tangible +AssetTypeInProgress=进行中 +AssetTypeFinancial=Financial +AssetNotDepreciated=Not depreciated +AssetDisposal=处置 +AssetConfirmDisposalAsk=您确定要处置资产%s吗? +AssetConfirmReOpenAsk=您确定要重新打开资产%s吗? + +# +# Asset status +# +AssetInProgress=进行中 +AssetDisposed=已处置 +AssetRecorded=已记帐 + +# +# Asset disposal +# +AssetDisposalDate=处置日期 +AssetDisposalAmount=处置价值 +AssetDisposalType=处置类型 +AssetDisposalDepreciated=Depreciate the year of transfer +AssetDisposalSubjectToVat=Disposal subject to VAT + +# +# Asset model +# +AssetModel=资产的模型 +AssetModels=资产的模型 + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Economic depreciation +AssetDepreciationOptionAcceleratedDepreciation=Accelerated depreciation (tax) +AssetDepreciationOptionDepreciationType=Depreciation type +AssetDepreciationOptionDepreciationTypeLinear=Linear +AssetDepreciationOptionDepreciationTypeDegressive=Degressive +AssetDepreciationOptionDepreciationTypeExceptional=Exceptional +AssetDepreciationOptionDegressiveRate=Degressive rate +AssetDepreciationOptionAcceleratedDepreciation=Accelerated depreciation (tax) +AssetDepreciationOptionDuration=为期 +AssetDepreciationOptionDurationType=Type duration +AssetDepreciationOptionDurationTypeAnnual=全年 +AssetDepreciationOptionDurationTypeMonthly=月度 +AssetDepreciationOptionDurationTypeDaily=Daily +AssetDepreciationOptionRate=Rate (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Depreciation base (excl. VAT) +AssetDepreciationOptionAmountBaseDeductibleHT=Deductible base (excl. VAT) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Total amount last depreciation (excl. VAT) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Economic depreciation +AssetAccountancyCodeAsset=资产 +AssetAccountancyCodeDepreciationAsset=折旧 +AssetAccountancyCodeDepreciationExpense=Depreciation expense +AssetAccountancyCodeValueAssetSold=Value of asset disposed +AssetAccountancyCodeReceivableOnAssignment=Receivable on disposal +AssetAccountancyCodeProceedsFromSales=Proceeds from disposal +AssetAccountancyCodeVatCollected=Collected VAT +AssetAccountancyCodeVatDeductible=Recovered VAT on assets +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Accelerated depreciation (tax) +AssetAccountancyCodeAcceleratedDepreciation=账户 +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Depreciation expense +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossession/Provision + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Depreciation basis (excl. VAT) +AssetDepreciationBeginDate=Start of depreciation on +AssetDepreciationDuration=为期 +AssetDepreciationRate=Rate (%%) +AssetDepreciationDate=Depreciation date +AssetDepreciationHT=Depreciation (excl. VAT) +AssetCumulativeDepreciationHT=Cumulative depreciation (excl. VAT) +AssetResidualHT=Residual value (excl. VAT) +AssetDispatchedInBookkeeping=Depreciation recorded +AssetFutureDepreciationLine=Future depreciation +AssetDepreciationReversal=Reversal + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Id of the asset or the model sound has not been provided +AssetErrorFetchAccountancyCodesForMode=Error when retrieving the accounting accounts for the '%s' depreciation mode +AssetErrorDeleteAccountancyCodesForMode=Error when deleting accounting accounts from the '%s' depreciation mode +AssetErrorInsertAccountancyCodesForMode=Error when inserting the accounting accounts of the depreciation mode '%s' +AssetErrorFetchDepreciationOptionsForMode=Error when retrieving options for the '%s' depreciation mode +AssetErrorDeleteDepreciationOptionsForMode=Error when deleting the '%s' depreciation mode options +AssetErrorInsertDepreciationOptionsForMode=Error when inserting the '%s' depreciation mode options +AssetErrorFetchDepreciationLines=Error when retrieving recorded depreciation lines +AssetErrorClearDepreciationLines=Error when purging recorded depreciation lines (reversal and future) +AssetErrorAddDepreciationLine=Error when adding a depreciation line +AssetErrorCalculationDepreciationLines=Error when calculating the depreciation lines (recovery and future) +AssetErrorReversalDateNotProvidedForMode=The reversal date is not provided for the '%s' depreciation method +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=The reversal date must be greater than or equal to the beginning of the current fiscal year for the '%s' depreciation method +AssetErrorReversalAmountNotProvidedForMode=The reversal amount is not provided for the depreciation mode '%s'. +AssetErrorFetchCumulativeDepreciation=Error when retrieving the accumulated depreciation amount from the depreciation line +AssetErrorSetLastCumulativeDepreciation=Error when recording the last accumulated depreciation amount diff --git a/htdocs/langs/zh_CN/banks.lang b/htdocs/langs/zh_CN/banks.lang index 26feb7ea2d5..965d5846c93 100644 --- a/htdocs/langs/zh_CN/banks.lang +++ b/htdocs/langs/zh_CN/banks.lang @@ -39,7 +39,7 @@ StandingOrders=提款收据 StandingOrder=直接借记订单 PaymentByDirectDebit=Payment by direct debit PaymentByBankTransfers=Payments by credit transfer -PaymentByBankTransfer=Payment by credit transfer +PaymentByBankTransfer=通过银行汇款付款 AccountStatement=户口结单 AccountStatementShort=声明 AccountStatements=户口结单 @@ -95,11 +95,11 @@ LineRecord=交易 AddBankRecord=添加条目 AddBankRecordLong=手动添加条目 Conciliated=调解 -ConciliatedBy=调节人 +ReConciliedBy=调节人 DateConciliating=核对日期 BankLineConciliated=Entry reconciled with bank receipt -Reconciled=调解 -NotReconciled=未调解 +BankLineReconciled=调解 +BankLineNotReconciled=未调解 CustomerInvoicePayment=客户付款 SupplierInvoicePayment=Vendor payment SubscriptionPayment=认购款项 @@ -172,8 +172,8 @@ SEPAMandate=SEPA授权 YourSEPAMandate=您的SEPA授权 FindYourSEPAMandate=这是您的SEPA授权,授权我们公司向您的银行直接扣款。返回签名(扫描签名文档)或通过邮件发送给 AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation -CashControl=POS cash desk control -NewCashFence=New cash desk opening or closing +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Colorize movements BankColorizeMovementDesc=If this function is enable, you can choose specific background color for debit or credit movements BankColorizeMovementName1=Background color for debit movement @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on NoBankAccountDefined=No bank account defined NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled. AlreadyOneBankAccount=Already one bank account defined +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. +ToCreateRelatedRecordIntoBank=To create missing related bank record +BanklineExtraFields=Bank Line Extrafields diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang index a575254c7dd..592a162c5c0 100644 --- a/htdocs/langs/zh_CN/bills.lang +++ b/htdocs/langs/zh_CN/bills.lang @@ -71,7 +71,7 @@ ConfirmConvertToReduc=Do you want to convert this %s into an available credit? ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. ConfirmConvertToReducSupplier=Do you want to convert this %s into an available credit? ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. -SupplierPayments=Vendor payments +SupplierPayments=供应商付款 ReceivedPayments=收到的付款 ReceivedCustomersPayments=收到客户付款 PayedSuppliersPayments=Payments paid to vendors @@ -90,8 +90,8 @@ CodePaymentMode=Payment method (code) LabelPaymentMode=Payment method (label) PaymentModeShort=Payment method PaymentTerm=Payment Term -PaymentConditions=Payment Terms -PaymentConditionsShort=Payment Terms +PaymentConditions=付款条款 +PaymentConditionsShort=付款条款 PaymentAmount=付款金额 PaymentHigherThanReminderToPay=付款金额比需要支付的金额高 HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
    Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=错误,这种类型的发票必须有一个负 ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have an amount excluding tax positive (or null) ErrorCantCancelIfReplacementInvoiceNotValidated=错误,无法取消一个已经被处于草稿状态发票替代的发票 ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. +ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. BillFrom=发送方 BillTo=接收方 ActionsOnBill=发票的动作 @@ -282,6 +283,8 @@ RecurringInvoices=定期发票 RecurringInvoice=Recurring invoice RepeatableInvoice=模板发票 RepeatableInvoices=模板发票 +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=模板 Repeatables=模板 ChangeIntoRepeatableInvoice=转换为模板发票 @@ -426,14 +429,24 @@ PaymentConditionShort14D=14天 PaymentCondition14D=14天 PaymentConditionShort14DENDMONTH=月末14天 PaymentCondition14DENDMONTH=在月底之后的14天内 +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% deposit, remainder on delivery FixAmount=Fixed amount - 1 line with label '%s' VarAmount=可变金额(%% tot.) VarAmountOneLine=可变金额(%% tot。) - 1行标签'%s' VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +DepositPercent=Deposit %% +DepositGenerationPermittedByThePaymentTermsSelected=This is permitted by the payment terms selected +GenerateDeposit=Generate a %s%% deposit invoice +ValidateGeneratedDeposit=Validate the generated deposit +DepositGenerated=Deposit generated +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=You can only automatically generate a deposit from a proposal or an order +ErrorPaymentConditionsNotEligibleToDepositCreation=The chose payment conditions are not eligible for automatic deposit generation # PaymentType PaymentTypeVIR=银行转帐 PaymentTypeShortVIR=银行转帐 PaymentTypePRE=直接付款订单 +PaymentTypePREdetails=(on account *-%s) PaymentTypeShortPRE=借记卡付款单 PaymentTypeLIQ=现金 PaymentTypeShortLIQ=现金 @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to SendTo=发送到 PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account VATIsNotUsedForInvoice=* 不得包含增值税, 详见CGI-293B +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=通过对应用的12/05/80法80.335 LawApplicationPart2=货物仍然是该人士/组织的资产 LawApplicationPart3=the seller until full payment of @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted UnitPriceXQtyLessDiscount=Unit price x Qty - Discount CustomersInvoicesArea=Customer billing area SupplierInvoicesArea=Supplier billing area -FacParentLine=Invoice Line Parent SituationTotalRayToRest=Remainder to pay without taxe PDFSituationTitle=Situation n° %d SituationTotalProgress=Total progress %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s NoPaymentAvailable=No payment available for %s PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +MakePaymentAndClassifyPayed=Record payment +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) diff --git a/htdocs/langs/zh_CN/blockedlog.lang b/htdocs/langs/zh_CN/blockedlog.lang index c501fb4621f..4dc752e6765 100644 --- a/htdocs/langs/zh_CN/blockedlog.lang +++ b/htdocs/langs/zh_CN/blockedlog.lang @@ -1,47 +1,25 @@ -BlockedLog=Unalterable Logs +BlockedLog=不可更改的日志 Field=字段 BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). -Fingerprints=Archived events and fingerprints +Fingerprints=归档的事件和指纹 FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). -CompanyInitialKey=Company initial key (hash of genesis block) -BrowseBlockedLog=Unalterable logs -ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) -ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) -DownloadBlockChain=Download fingerprints +CompanyInitialKey=公司初始密钥 (创世区块的哈希值) +BrowseBlockedLog=不可更改的日志 +ShowAllFingerPrintsMightBeTooLong=显示所有的归档日志 (可能很长) +ShowAllFingerPrintsErrorsMightBeTooLong=显示所有的无效归档日志 (可能很长) +DownloadBlockChain=下载指纹 KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists) or has modified checksum of the previous record. -OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. -OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. -AddedByAuthority=Stored into remote authority -NotAddedByAuthorityYet=Not yet stored into remote authority -ShowDetails=Show stored details -logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created -logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified -logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion -logPAYMENT_ADD_TO_BANK=Payment added to bank -logPAYMENT_CUSTOMER_CREATE=Customer payment created -logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion -logDONATION_PAYMENT_CREATE=Donation payment created -logDONATION_PAYMENT_DELETE=Donation payment logical deletion -logBILL_PAYED=Customer invoice paid -logBILL_UNPAYED=Customer invoice set unpaid -logBILL_VALIDATE=客户发票已验证 -logBILL_SENTBYMAIL=Customer invoice send by mail -logBILL_DELETE=Customer invoice logically deleted -logMODULE_RESET=Module BlockedLog was disabled -logMODULE_SET=Module BlockedLog was enabled -logDON_VALIDATE=Donation validated -logDON_MODIFY=Donation modified -logDON_DELETE=Donation logical deletion -logMEMBER_SUBSCRIPTION_CREATE=Member subscription created -logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified -logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion -logCASHCONTROL_VALIDATE=Cash desk closing recording -BlockedLogBillDownload=Customer invoice download -BlockedLogBillPreview=Customer invoice preview -BlockedlogInfoDialog=Log Details +OkCheckFingerprintValidity=归档日志记录有效。此行的数据没被编辑过,并且该条目跟随在上一个条目之后。 +OkCheckFingerprintValidityButChainIsKo=跟之前的日志比较,归档日志似乎有效,但是链之前已损坏。 +AddedByAuthority=储存在远程授权中 +NotAddedByAuthorityYet=尚未储存在远程授权中 +ShowDetails=显示已储存的详细信息 +BlockedLogBillDownload=客户发票下载 +BlockedLogBillPreview=客户发票预览 +BlockedlogInfoDialog=日志详情 ListOfTrackedEvents=List of tracked events -Fingerprint=Fingerprint -DownloadLogCSV=Export archived logs (CSV) +Fingerprint=指纹 +DownloadLogCSV=导出归档日志 (CSV) logDOC_PREVIEW=Preview of a validated document in order to print or download logDOC_DOWNLOAD=Download of a validated document in order to print or send DataOfArchivedEvent=Full datas of archived event @@ -55,3 +33,29 @@ RestrictYearToExport=Restrict month / year to export BlockedLogEnabled=System to track events into unalterable logs has been enabled BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. + +## logTypes +logBILL_DELETE=Customer invoice logically deleted +logBILL_PAYED=Customer invoice paid +logBILL_SENTBYMAIL=Customer invoice send by mail +logBILL_UNPAYED=Customer invoice set unpaid +logBILL_VALIDATE=客户发票已验证 +logCASHCONTROL_VALIDATE=Cash desk closing recording +logDOC_DOWNLOAD=Download of a validated document in order to print or send +logDOC_PREVIEW=Preview of a validated document in order to print or download +logDONATION_PAYMENT_CREATE=Donation payment created +logDONATION_PAYMENT_DELETE=Donation payment logical deletion +logDON_DELETE=Donation logical deletion +logDON_MODIFY=Donation modified +logDON_VALIDATE=Donation validated +logMEMBER_SUBSCRIPTION_CREATE=Member subscription created +logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion +logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified +logMODULE_RESET=Module BlockedLog was disabled +logMODULE_SET=Module BlockedLog was enabled +logPAYMENT_ADD_TO_BANK=Payment added to bank +logPAYMENT_CUSTOMER_CREATE=Customer payment created +logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion +logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created +logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion +logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified diff --git a/htdocs/langs/zh_CN/bookmarks.lang b/htdocs/langs/zh_CN/bookmarks.lang index 40e308d67d9..44a64499024 100644 --- a/htdocs/langs/zh_CN/bookmarks.lang +++ b/htdocs/langs/zh_CN/bookmarks.lang @@ -6,17 +6,18 @@ ListOfBookmarks=书签列表 EditBookmarks=列出/编辑书签 NewBookmark=新建书签 ShowBookmark=显示书签 -OpenANewWindow=Open a new tab -ReplaceWindow=Replace current tab -BookmarkTargetNewWindowShort=New tab -BookmarkTargetReplaceWindowShort=Current tab -BookmarkTitle=Bookmark name +OpenANewWindow=打开新标签 +ReplaceWindow=替换当前标签 +BookmarkTargetNewWindowShort=新标签 +BookmarkTargetReplaceWindowShort=当前标签 +BookmarkTitle=书签名称 UrlOrLink=网址 BehaviourOnClick=选择书签URL时的行为 CreateBookmark=创建书签 -SetHereATitleForLink=Set a name for the bookmark -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab +SetHereATitleForLink=为书签设置名称 +UseAnExternalHttpLinkOrRelativeDolibarrLink=使用外部/绝对链接(https://externalurl.com)或内部/相对链接(/mypage.php). 您也可以使用电话号码如tel:0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=选择链接的页面在目前标签或者新标签中打开 BookmarksManagement=书签管理 BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=未设置任何书签 +NoBookmarkFound=未发现书签 diff --git a/htdocs/langs/zh_CN/boxes.lang b/htdocs/langs/zh_CN/boxes.lang index d2b765df1c0..7c28d7df6a6 100644 --- a/htdocs/langs/zh_CN/boxes.lang +++ b/htdocs/langs/zh_CN/boxes.lang @@ -1,120 +1,122 @@ # Dolibarr language file - Source file is en_US - boxes -BoxDolibarrStateBoard=Statistics on main business objects in database -BoxLoginInformation=Login Information -BoxLastRssInfos=RSS Information -BoxLastProducts=Latest %s Products/Services +BoxDolibarrStateBoard=数据库中主要业务对象的统计 +BoxLoginInformation=登录信息 +BoxLastRssInfos=RSS信息 +BoxLastProducts=最新的%s产品/服务 BoxProductsAlertStock=产品库存预警 BoxLastProductsInContract=最新已签了合同的 %s 产品/服务 -BoxLastSupplierBills=Latest Vendor invoices -BoxLastCustomerBills=Latest Customer invoices +BoxLastSupplierBills=最新供应商发票 +BoxLastCustomerBills=最新客户发票 BoxOldestUnpaidCustomerBills=最早未支付客户发票 -BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices +BoxOldestUnpaidSupplierBills=最早未支付供应商发票 BoxLastProposals=最新商业报价 BoxLastProspects=最近变更的准客户 BoxLastCustomers=最新变更的客户 BoxLastSuppliers=最近变更的供应商 -BoxLastCustomerOrders=Latest sales orders +BoxLastCustomerOrders=最新销售订单 BoxLastActions=最近的动作 BoxLastContracts=最近的合同 BoxLastContacts=最新联系人/地址 BoxLastMembers=最新会员 -BoxLastModifiedMembers=Latest modified members -BoxLastMembersSubscriptions=Latest member subscriptions +BoxLastModifiedMembers=最新编辑过的会员 +BoxLastMembersSubscriptions=最新会员订阅 BoxFicheInter=最新干预 BoxCurrentAccounts=打开财务会计账单 -BoxTitleMemberNextBirthdays=Birthdays of this month (members) -BoxTitleMembersByType=Members by type -BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year +BoxTitleMemberNextBirthdays=本月生日(会员) +BoxTitleMembersByType=按类型和状态分类的会员 +BoxTitleMembersSubscriptionsByYear=按年的会员订阅 BoxTitleLastRssInfos=来自 %s 的最新的 %s 条新闻 -BoxTitleLastProducts=Products/Services: last %s modified -BoxTitleProductsAlertStock=Products: stock alert +BoxTitleLastProducts=产品/服务:最新%s编辑过的 +BoxTitleProductsAlertStock=产品:库存预警 BoxTitleLastSuppliers=最近登记的 %s 位供应商 -BoxTitleLastModifiedSuppliers=Vendors: last %s modified -BoxTitleLastModifiedCustomers=Customers: last %s modified +BoxTitleLastModifiedSuppliers=供应商:最新%s编辑过的 +BoxTitleLastModifiedCustomers=客户:最新%s编辑过的 BoxTitleLastCustomersOrProspects=最近的 %s 位客户或准客户 -BoxTitleLastCustomerBills=Latest %s modified Customer invoices -BoxTitleLastSupplierBills=Latest %s modified Vendor invoices -BoxTitleLastModifiedProspects=Prospects: last %s modified +BoxTitleLastCustomerBills=最新%s编辑过的客户发票 +BoxTitleLastSupplierBills=最新%s编辑过的供应商发票 +BoxTitleLastModifiedProspects=准客户:最新%s编辑过的 BoxTitleLastModifiedMembers=新进 %s 位会员 BoxTitleLastFicheInter=最近变更的 %s 条干预 -BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid -BoxTitleOldestUnpaidSupplierBills=Vendor Invoices: oldest %s unpaid -BoxTitleCurrentAccounts=Open Accounts: balances -BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception -BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified -BoxMyLastBookmarks=Bookmarks: latest %s +BoxTitleOldestUnpaidCustomerBills=客户发票:最早%s未支付的 +BoxTitleOldestUnpaidSupplierBills=供应商发票:最早%s未支付的 +BoxTitleCurrentAccounts=打开帐户:余额 +BoxTitleSupplierOrdersAwaitingReception=等待接收的采购订单 +BoxTitleLastModifiedContacts=联系人/地址:最新%s编辑过的 +BoxMyLastBookmarks=书签:最新的%s BoxOldestExpiredServices=执行中的逾期时间最长的服务 +BoxOldestActions=Oldest events to do BoxLastExpiredServices=最近 %s 老联系人激活过期服务 BoxTitleLastActionsToDo=最近的 %s 个动作 -BoxTitleLastContracts=Latest %s contracts which were modified -BoxTitleLastModifiedDonations=Latest %s donations which were modified -BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified -BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified -BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified -BoxTitleLastOutstandingBillReached=Customers with maximum outstanding exceeded +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed +BoxTitleLastContracts=最新%s编辑过的合同 +BoxTitleLastModifiedDonations=最新%s编辑过的捐赠 +BoxTitleLastModifiedExpenses=最新%s编辑过的费用报告 +BoxTitleLatestModifiedBoms=最新%s编辑过的物料清单 +BoxTitleLatestModifiedMos=最新%s编辑过的制造订单 +BoxTitleLastOutstandingBillReached=超过最大未偿付额的客户 BoxGlobalActivity=全局活动(账单,报价,订单) BoxGoodCustomers=优质客户 BoxTitleGoodCustomers=%s 优质客户 -BoxScheduledJobs=计划任务 +BoxScheduledJobs=计划好的工作 BoxTitleFunnelOfProspection=Lead funnel -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s +FailedToRefreshDataInfoNotUpToDate=更新RSS流量失败,最新成功更新日期:%s LastRefreshDate=最后刷新日期 NoRecordedBookmarks=未设置任何书签。 ClickToAdd=点此添加 NoRecordedCustomers=空空如也——没有记录 NoRecordedContacts=无联系人记录 NoActionsToDo=无待办事项 -NoRecordedOrders=No recorded sales orders +NoRecordedOrders=没有已记录的销售订单 NoRecordedProposals=空空如也——没有报价单记录 -NoRecordedInvoices=没有记录的客户发票 +NoRecordedInvoices=没有已记录的客户发票 NoUnpaidCustomerBills=没有未付款的顾客发票 -NoUnpaidSupplierBills=No unpaid vendor invoices -NoModifiedSupplierBills=No recorded vendor invoices +NoUnpaidSupplierBills=没有未付款的供应商发票 +NoModifiedSupplierBills=没有已记录的供应商发票 NoRecordedProducts=空空如也——没有产品/服务记录 NoRecordedProspects=空空如也——没有潜在客户记录 NoContractedProducts=无签订合同的产品 NoRecordedContracts=空空如也——没有合同记录 NoRecordedInterventions=空空如也——没有干预措施的记录 -BoxLatestSupplierOrders=Latest purchase orders -BoxLatestSupplierOrdersAwaitingReception=Latest Purchase Orders (with a pending reception) -NoSupplierOrder=No recorded purchase order -BoxCustomersInvoicesPerMonth=Customer Invoices per month -BoxSuppliersInvoicesPerMonth=Vendor Invoices per month -BoxCustomersOrdersPerMonth=Sales Orders per month -BoxSuppliersOrdersPerMonth=Vendor Orders per month +BoxLatestSupplierOrders=最新采购订单 +BoxLatestSupplierOrdersAwaitingReception=最新采购订单(等待接收) +NoSupplierOrder=没有已记录的采购订单 +BoxCustomersInvoicesPerMonth=每月客户发票 +BoxSuppliersInvoicesPerMonth=每月供应商发票 +BoxCustomersOrdersPerMonth=每月销售订单 +BoxSuppliersOrdersPerMonth=每月采购订单 BoxProposalsPerMonth=每月报价 -NoTooLowStockProducts=No products are under the low stock limit -BoxProductDistribution=Products/Services Distribution +NoTooLowStockProducts=没有产品低于库存限制 +BoxProductDistribution=产品/服务分布 ForObject=On %s -BoxTitleLastModifiedSupplierBills=Vendor Invoices: last %s modified -BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified -BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified -BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified +BoxTitleLastModifiedSupplierBills=供应商发票:最新%s编辑过的 +BoxTitleLatestModifiedSupplierOrders=采购订单:最新%s编辑过的 +BoxTitleLastModifiedCustomerBills=客户发票:最新%s编辑过的 +BoxTitleLastModifiedCustomerOrders=销售订单:最新%s编辑过的 BoxTitleLastModifiedPropals=最近变更的 %s 份报价 -BoxTitleLatestModifiedJobPositions=Latest %s modified job positions -BoxTitleLatestModifiedCandidatures=Latest %s modified job applications +BoxTitleLatestModifiedJobPositions=最新%s编辑过的职位 +BoxTitleLatestModifiedCandidatures=最新%s编辑过的职位申请 ForCustomersInvoices=客户发票 ForCustomersOrders=客户订单 ForProposals=报价 LastXMonthRolling=最后 %s 月波动 ChooseBoxToAdd=点击下拉菜单选择相应视图并添加到你的看板 BoxAdded=插件已添加到仪表板中 -BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Latest record in accountancy entered manually or without source document -BoxTitleLastManualEntries=%s latest record entered manually or without source document -NoRecordedManualEntries=No manual entries record in accountancy -BoxSuspenseAccount=Count accountancy operation with suspense account -BoxTitleSuspenseAccount=Number of unallocated lines -NumberOfLinesInSuspenseAccount=Number of line in suspense account -SuspenseAccountNotDefined=Suspense account isn't defined -BoxLastCustomerShipments=Last customer shipments -BoxTitleLastCustomerShipments=Latest %s customer shipments -NoRecordedShipments=No recorded customer shipment -BoxCustomersOutstandingBillReached=Customers with oustanding limit reached +BoxTitleUserBirthdaysOfMonth=本月生日(用户) +BoxLastManualEntries=手工输入或没有源文档的最新会计记录 +BoxTitleLastManualEntries=手工输入或没有源文档的%s最新记录 +NoRecordedManualEntries=会计没有手动输入记录 +BoxSuspenseAccount=用暂记账户清点会计业务 +BoxTitleSuspenseAccount=未分配的行数量 +NumberOfLinesInSuspenseAccount=暂记账户中的行数量 +SuspenseAccountNotDefined=暂记账户未定义 +BoxLastCustomerShipments=最近客户发货 +BoxTitleLastCustomerShipments=最新%s客户发货 +NoRecordedShipments=没有已记录的客户发货 +BoxCustomersOutstandingBillReached=已达到未偿付限额的客户 # Pages -UsersHome=Home users and groups -MembersHome=Home Membership -ThirdpartiesHome=Home Thirdparties -TicketsHome=Home Tickets -AccountancyHome=Home Accountancy -ValidatedProjects=Validated projects +UsersHome=用户和群组首页 +MembersHome=会员首页 +ThirdpartiesHome=第三方首页 +TicketsHome=工单首页 +AccountancyHome=会计首页 +ValidatedProjects=已验证的项目 diff --git a/htdocs/langs/zh_CN/cashdesk.lang b/htdocs/langs/zh_CN/cashdesk.lang index 5c56bf4ce3b..e455900af65 100644 --- a/htdocs/langs/zh_CN/cashdesk.lang +++ b/htdocs/langs/zh_CN/cashdesk.lang @@ -33,7 +33,7 @@ DeleteArticle=删除项目 FilterRefOrLabelOrBC=搜索 (REF /标签) UserNeedPermissionToEditStockToUsePos=您要求减少发票创建的库存,因此使用POS的用户需要具有编辑库存的权限。 DolibarrReceiptPrinter=Dolibarr 发票打印机 -PointOfSale=Point of Sale +PointOfSale=销售点 PointOfSaleShort=POS CloseBill=Close Bill Floors=地板 @@ -50,8 +50,8 @@ Footer=Footer AmountAtEndOfPeriod=Amount at end of period (day, month or year) TheoricalAmount=Theorical amount RealAmount=Real amount -CashFence=Cash desk closing -CashFenceDone=Cash desk closing done for the period +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=发票数 Paymentnumpad=Type of Pad to enter payment Numberspad=Numbers Pad @@ -92,7 +92,7 @@ HeadBar=Head Bar SortProductField=Field for sorting products Browser=浏览器 BrowserMethodDescription=Simple and easy receipt printing. Only a few parameters to configure the receipt. Print via browser. -TakeposConnectorMethodDescription=External module with extra features. Posibility to print from the cloud. +TakeposConnectorMethodDescription=具有额外功能的外部模块。有可能从云端打印。 PrintMethod=Print method ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. The server hosting the application can't be in the Cloud (must be able to reach the printers in your network). ByTerminal=By terminal @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} tag is used to add the terminal numb TakeposGroupSameProduct=Group same products lines StartAParallelSale=Start a new parallel sale SaleStartedAt=Sale started at %s -ControlCashOpening=Open the "Control cash" popup when opening the POS -CloseCashFence=Close cash desk control +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Cash report MainPrinterToUse=Main printer to use OrderPrinterToUse=Order printer to use @@ -111,7 +111,7 @@ MainTemplateToUse=Main template to use OrderTemplateToUse=Order template to use BarRestaurant=Bar Restaurant AutoOrder=Order by the customer himself -RestaurantMenu=Menu +RestaurantMenu=菜单 CustomerMenu=Customer menu ScanToMenu=Scan QR code to see the menu ScanToOrder=Scan QR code to order @@ -134,3 +134,14 @@ PrintWithoutDetailsButton=Add "Print without details" button PrintWithoutDetailsLabelDefault=Line label by default on printing without details PrintWithoutDetails=Print without details YearNotDefined=Year is not defined +TakeposBarcodeRuleToInsertProduct=Barcode rule to insert product +TakeposBarcodeRuleToInsertProductDesc=Rule to extract the product reference + a quantity from a scanned barcode.
    If empty (default value), application will use the full barcode scanned to find the product.

    If defined, syntax must be:
    ref:NB+qu:NB+qd:NB+other:NB
    where NB is the number of characters to use to extract data from the scanned barcode with:
    • ref : product reference
    • qu : quantity to set when inserting item (units)
    • qd : quantity to set when inserting item (decimals)
    • other : others characters
    +AlreadyPrinted=Already printed +HideCategories=Hide categories +HideStockOnLine=Hide stock on line +ShowOnlyProductInStock=Show the products in stock +ShowCategoryDescription=Show category description +ShowProductReference=Show reference of products +UsePriceHT=Use price excl. taxes and not price incl. taxes +TerminalName=Terminal %s +TerminalNameDesc=Terminal name diff --git a/htdocs/langs/zh_CN/commercial.lang b/htdocs/langs/zh_CN/commercial.lang index 146eef98814..509fdd8f851 100644 --- a/htdocs/langs/zh_CN/commercial.lang +++ b/htdocs/langs/zh_CN/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=准客户状态 DraftPropals=起草商业报价 NoLimit=没有限制 ToOfferALinkForOnlineSignature=链接在线签名 -WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s -ThisScreenAllowsYouToSignDocFrom=此屏幕允许您接受,签署或拒绝报价/商业提案 -ThisIsInformationOnDocumentToSign=这是关于接受或拒绝的文件的信息 +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Signature of quote/commercial proposal %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=禁用联机签名的功能或在启用功能之前生成的文档 diff --git a/htdocs/langs/zh_CN/companies.lang b/htdocs/langs/zh_CN/companies.lang index d8eaea38f4c..e2d02e8769d 100644 --- a/htdocs/langs/zh_CN/companies.lang +++ b/htdocs/langs/zh_CN/companies.lang @@ -60,13 +60,14 @@ NatureOfThirdParty=合伙人的性质 NatureOfContact=Nature of Contact Address=地址 State=州/省 +StateId=State ID StateCode=State/Province code StateShort=国家 Region=地区 Region-State=地区 - 州 Country=国家 CountryCode=国家代码 -CountryId=国家编号 +CountryId=Country ID Phone=电话 PhoneShort=电话 Skype=Skype @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. ProfId5ShortCM=其他 ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) diff --git a/htdocs/langs/zh_CN/compta.lang b/htdocs/langs/zh_CN/compta.lang index 7da2d81ffc6..10550d85fac 100644 --- a/htdocs/langs/zh_CN/compta.lang +++ b/htdocs/langs/zh_CN/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=平衡(之前) Balance=平衡 Debit=借方 Credit=贷方 +AccountingDebit=借记卡 +AccountingCredit=贷方 Piece=会计文档. AmountHTVATRealReceived=净收入 AmountHTVATRealPaid=净支出 @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=删除社会或财政税款 DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=社会和财政税和付款 CalcModeVATDebt=模式 %sVAT 关于承诺债务%s. CalcModeVATEngagement=模式 %s 增值税收入,支出 %s. @@ -164,7 +168,7 @@ CalcModeLT2Rec= 模式 %sIRPF 供应商发票%s AnnualSummaryDueDebtMode=年度总结的收支平衡表 AnnualSummaryInputOutputMode=年度总结的收支平衡表 AnnualByCompanies=按预定义的帐户组划分的收入和支出余额 -AnnualByCompaniesDueDebtMode=收支平衡,详细按合作方,模式%sClaims-Debts%s,据说承诺债务。 +AnnualByCompaniesDueDebtMode=收支平衡,详细按预定义组别,模式为%s索赔-债务%s,据说承诺会计。 AnnualByCompaniesInputOutputMode=收支平衡,详细按合作方,模式%sIncomes-Expenses%s,据说现金会计。 SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation based on recorded payments made even if they are not yet accounted in Ledger SeeReportInDueDebtMode=See %sanalysis of recorded documents%s for a calculation based on known recorded documents even if they are not yet accounted in Ledger @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=不提供每件商品收集 TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=无法按销售税率收取营业额报告。此报告仅适用于已开票的营业额。 CalculationMode=计算模式 AccountancyJournal=科目代码日记账 -ACCOUNTING_VAT_SOLD_ACCOUNT=销售增值税的默认会计科目(如果未在增值税字典设置中定义,则使用) -ACCOUNTING_VAT_BUY_ACCOUNT=默认会计科目-采购增值税(如果未在增值税字典设置中定义,则使用) -ACCOUNTING_VAT_PAY_ACCOUNT=默认会计科目-支付增值税 -ACCOUNTING_ACCOUNT_CUSTOMER=用于顾客合作方的会计科目 +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=用于供应商合作方的会计帐户 +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/zh_CN/contracts.lang b/htdocs/langs/zh_CN/contracts.lang index 5ab0a747253..3120578a4ee 100644 --- a/htdocs/langs/zh_CN/contracts.lang +++ b/htdocs/langs/zh_CN/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=联系人/订阅 ContractsAndLine=合同及合同明细 Contract=合同 ContractLine=合同明细 +ContractLines=Contract lines Closing=关闭 NoContracts=没有合同 MenuServices=服务 @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=您确定要删除此合约项吗? MoveToAnotherContract=移动到另一个合同的服务。 ConfirmMoveToAnotherContract=我选用新的目标合同,确认我想进入这个合同这项服务。 ConfirmMoveToAnotherContractQuestion=选择哪个现有合同(同一合作方),您想将此服务移至哪个? -PaymentRenewContractId=续订合同线(%s的数目) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=失效日期 NoExpiredServices=空空如也——没有过期的主动服务 ListOfServicesToExpireWithDuration=在 %s 天内将期满的服务列表 @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=签约客户的联系人 HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/zh_CN/cron.lang b/htdocs/langs/zh_CN/cron.lang index d14d20202fa..1157134ff68 100644 --- a/htdocs/langs/zh_CN/cron.lang +++ b/htdocs/langs/zh_CN/cron.lang @@ -26,7 +26,7 @@ CronCommand=命令 CronList=计划任务 CronDelete=删除计划任务 CronConfirmDelete=您确定要删除这些预定作业吗? -CronExecute=安排计划工作 +CronExecute=Launch now CronConfirmExecute=您确定要立即执行这些预定作业吗? CronInfo=计划作业模块允许计划作业以自动执行它们。也可以手动启动作业。 CronTask=工作 @@ -58,7 +58,7 @@ CronNote=说明 CronFieldMandatory=栏位 %s 为必填 CronErrEndDateStartDt=结束日期不能早过开始日期啊,时光不能倒流呀魂淡 StatusAtInstall=模块安装时的状态 -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=禁用 CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=岗位无效 MakeLocalDatabaseDumpShort=本地数据库备份 MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=注意,出于性能目的,无论启用作业的下一个执行日期是什么,您的作业可能会在运行之前延迟到最大值%s小时。 DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/zh_CN/datapolicy.lang b/htdocs/langs/zh_CN/datapolicy.lang new file mode 100644 index 00000000000..11e8baf2403 --- /dev/null +++ b/htdocs/langs/zh_CN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = 数据隐私政策 +# Module description 'ModuledatapolicyDesc' +Module4100Desc = 管理数据隐私的模块(符合GDPR) + +# +# Administration page +# +datapolicySetup = 数据隐私政策模块设置 +Deletion = 删除数据 +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s月 +ONE_YEAR = 1年 +NB_YEARS = %s年 +DATAPOLICY_TIERS_CLIENT = 客户 +DATAPOLICY_TIERS_PROSPECT = 准客户 +DATAPOLICY_TIERS_PROSPECT_CLIENT = 准客户/客户 +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = 供应商 +DATAPOLICY_CONTACT_CLIENT = 客户 +DATAPOLICY_CONTACT_PROSPECT = 准客户 +DATAPOLICY_CONTACT_PROSPECT_CLIENT = 准客户/客户 +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = 供应商 +DATAPOLICY_ADHERENT = 会员 +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = 电子邮件设置 +DATAPOLICYSUBJECTMAIL = 电子邮件主题 +DATAPOLICYCONTENTMAIL = 电子邮件内容 +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = 发送电子邮件 +AllAgreementSend = 所有电子邮件都已发送 +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = 个人数据的导出 +DATAPOLICY_PORTABILITE_CONFIRMATION = 您想导出该联系人的个人资料。您确定吗? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = 电子邮件已发送 + +# ERROR +ErrorSubjectIsRequired = 错误 : 电子邮件的主题是必需的。请在模块设置中注明 +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/zh_CN/deliveries.lang b/htdocs/langs/zh_CN/deliveries.lang index af63b1c926c..bc9eea3545d 100644 --- a/htdocs/langs/zh_CN/deliveries.lang +++ b/htdocs/langs/zh_CN/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=交货 DeliveryRef=送达编号 -DeliveryCard=交货信息 -DeliveryOrder=Delivery receipt +DeliveryCard=收货卡 +DeliveryOrder=交货凭证 DeliveryDate=交货日期 -CreateDeliveryOrder=产生交货单 +CreateDeliveryOrder=生成交货凭证 DeliveryStateSaved=交货状态保存 SetDeliveryDate=送货日期设置 ValidateDeliveryReceipt=验证送达回执 -ValidateDeliveryReceiptConfirm=你确定要验证这个交货收据吗? +ValidateDeliveryReceiptConfirm=您确定要验证这张交货凭证吗? DeleteDeliveryReceipt=删除送达回执 -DeleteDeliveryReceiptConfirm=你确定要删除送达回执%s吗? +DeleteDeliveryReceiptConfirm=您确定要删除交货凭证%s吗? DeliveryMethod=运输方式 TrackingNumber=运单号码 DeliveryNotValidated=交付未验证 @@ -18,16 +18,16 @@ StatusDeliveryCanceled=已取消 StatusDeliveryDraft=草稿 StatusDeliveryValidated=已接收 # merou PDF model -NameAndSignature=Name and Signature: +NameAndSignature=名字和签名: ToAndDate=To___________________________________ on ____/_____/__________ GoodStatusDeclaration=上述货物完好并已签收, -Deliverer=Deliverer: +Deliverer=送货员: Sender=发送方 Recipient=接收方 ErrorStockIsNotEnough=库存不足 Shippable=可运输 NonShippable=不可运输 -ShowShippableStatus=Show shippable status -ShowReceiving=显示送达回执 -NonExistentOrder=Nonexistent order -StockQuantitiesAlreadyAllocatedOnPreviousLines = Stock quantities already allocated on previous lines +ShowShippableStatus=显示运输的状态 +ShowReceiving=显示交货凭证 +NonExistentOrder=不存在的订单 +StockQuantitiesAlreadyAllocatedOnPreviousLines = 已经分配到前几行的的库存数量 diff --git a/htdocs/langs/zh_CN/dict.lang b/htdocs/langs/zh_CN/dict.lang index 770f81c6f4c..b8642c1185d 100644 --- a/htdocs/langs/zh_CN/dict.lang +++ b/htdocs/langs/zh_CN/dict.lang @@ -21,7 +21,7 @@ CountryNL=荷兰 CountryHU=匈牙利 CountryRU=俄国 CountrySE=瑞典 -CountryCI=Ivoiry海岸 +CountryCI=Ivory Coast CountrySN=塞内加尔 CountryAR=阿根廷 CountryCM=喀麦隆 @@ -250,7 +250,9 @@ CountryMF=圣马丁 ##### Civilities ##### CivilityMME=夫人 +CivilityMMEShort=夫人 CivilityMR=先生 +CivilityMRShort=先生 CivilityMLE=女士 CivilityMTRE=尊上(花千骨看多了) CivilityDR=医生 diff --git a/htdocs/langs/zh_CN/donations.lang b/htdocs/langs/zh_CN/donations.lang index ba7103cc726..db58e7ed867 100644 --- a/htdocs/langs/zh_CN/donations.lang +++ b/htdocs/langs/zh_CN/donations.lang @@ -16,7 +16,7 @@ DonationStatusPromiseNotValidatedShort=草稿 DonationStatusPromiseValidatedShort=验证 DonationStatusPaidShort=收稿 DonationTitle=捐款收据 -DonationDate=Donation date +DonationDate=捐赠日期 DonationDatePayment=付款日期 ValidPromess=验证承诺 DonationReceipt=捐款收据 @@ -32,3 +32,4 @@ DONATION_ART238=从CGI显示238笔 DONATION_ART885=从CGI显示885笔 DonationPayment=捐赠付款 DonationValidated=捐赠%s经过验证 +DonationUseThirdparties=使用现有的第三方作为捐赠者的目标 diff --git a/htdocs/langs/zh_CN/ecm.lang b/htdocs/langs/zh_CN/ecm.lang index b4d31e86981..7c6670bce74 100644 --- a/htdocs/langs/zh_CN/ecm.lang +++ b/htdocs/langs/zh_CN/ecm.lang @@ -1,29 +1,32 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=No. of documents in directory +ECMNbOfDocs=目录中的文档数量 ECMSection=目录 ECMSectionManual=手册目录 ECMSectionAuto=自动目录 ECMSectionsManual=手动目录树 ECMSectionsAuto=自动目录树 +ECMSectionsMedias=Medias tree ECMSections=目录 ECMRoot=ECM Root ECMNewSection=新目录 -ECMAddSection=添加手册目录 +ECMAddSection=添加目录 ECMCreationDate=创建日期 ECMNbOfFilesInDir=在目录中的文件数 -ECMNbOfSubDir=数子目录 +ECMNbOfSubDir=子目录数量 ECMNbOfFilesInSubDir=子目录中的文件数量 -ECMCreationUser=创造者 -ECMArea=电子文档管理 +ECMCreationUser=创建人 +ECMArea=电子文档管理区域 ECMAreaDesc=DMS / ECM(文档管理系统/电子内容管理)区域允许您快速保存,共享和搜索Dolibarr中的所有类型的文档。 -ECMAreaDesc2=*自动填写目录时自动加入一个元素从卡的文件。
    *手动目录可以用来保存未链接到一个特定元素的文件。 +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=目录%s已被删除。 ECMSectionWasCreated=目录 %s已创建。 ECMSearchByKeywords=搜寻关键字 ECMSearchByEntity=搜索对象 ECMSectionOfDocuments=目录中的文件 ECMTypeAuto=自动 -ECMDocsBy=Documents linked to %s +ECMDocsBy=文档链接到%s ECMNoDirectoryYet=没有目录中创建 ShowECMSection=显示目录 DeleteSection=删除目录 @@ -34,16 +37,16 @@ CannotRemoveDirectoryContainsFiles=不可删除,因为它包含一些文件 ECMFileManager=档案管理员 ECMSelectASection=请在左侧目录树中选取目录... DirNotSynchronizedSyncFirst=此目录似乎是在ECM模块外部创建或修改的。您必须先单击“重新同步”按钮以同步磁盘和数据库以获取此目录的内容。 -ReSyncListOfDir=重新同步目录列表 -HashOfFileContent=散列文件内容 +ReSyncListOfDir=重新同步目录清单 +HashOfFileContent=文件内容的哈希值 NoDirectoriesFound=找不到目录 FileNotYetIndexedInDatabase=文件尚未编入数据库(尝试重新上传) -ExtraFieldsEcmFiles=Extrafields Ecm Files -ExtraFieldsEcmDirectories=Extrafields Ecm Directories -ECMSetup=ECM Setup -GenerateImgWebp=Duplicate all images with another version with .webp format -ConfirmGenerateImgWebp=If you confirm, you will generate an image in .webp format for all images currently into this folder (subfolders are not included)... -ConfirmImgWebpCreation=Confirm all images duplication -SucessConvertImgWebp=Images successfully duplicated -ECMDirName=Dir name -ECMParentDirectory=Parent directory +ExtraFieldsEcmFiles=额外字段 Ecm 文件 +ExtraFieldsEcmDirectories=额外字段 Ecm 目录 +ECMSetup=ECM 设置 +GenerateImgWebp=用另一个带有 .webp 格式的版本复制所有图像 +ConfirmGenerateImgWebp=如果您确认,您将为目前进入此文件夹的所有图像都生成一份带.wepb 格式的图像 (不包含子文件夹)…… +ConfirmImgWebpCreation=确认所有图像重复 +SucessConvertImgWebp=图像成功复制 +ECMDirName=目录名称 +ECMParentDirectory=父目录 diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang index 1783be09f3a..2fd7f39c933 100644 --- a/htdocs/langs/zh_CN/errors.lang +++ b/htdocs/langs/zh_CN/errors.lang @@ -4,15 +4,17 @@ NoErrorCommitIsDone=没有错误,我们承诺 # Errors ErrorButCommitIsDone=发现错误我们将进行验证 -ErrorBadEMail=Email %s is incorrect -ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record) -ErrorBadUrl=Url %s is incorrect +ErrorBadEMail=电子邮件%s不正确 +ErrorBadMXDomain=电子邮件%s似乎不正确(域名没有有效的MX记录) +ErrorBadUrl=网址%s不正确 ErrorBadValueForParamNotAString=参数值不正确。它通常在缺少翻译时附加。 -ErrorRefAlreadyExists=Reference %s already exists. +ErrorRefAlreadyExists=参考%s已存在 +ErrorTitleAlreadyExists=标题%s已存在 ErrorLoginAlreadyExists=登陆%s已经存在。 ErrorGroupAlreadyExists=组%s已经存在。 -ErrorEmailAlreadyExists=Email %s already exists. +ErrorEmailAlreadyExists=电子邮件%s已存在 ErrorRecordNotFound=记录没有找到。 +ErrorRecordNotFoundShort=未找到 ErrorFailToCopyFile=无法复制文件'%s''%s'。 ErrorFailToCopyDir=无法将目录“ %s ”复制到“ %s ”中。 ErrorFailToRenameFile=无法重新命名为“%s'文件'%s'。 @@ -26,34 +28,35 @@ ErrorFailToGenerateFile=无法生成文件' %s '。 ErrorThisContactIsAlreadyDefinedAsThisType=这个联络已定义为这种类型的接触。 ErrorCashAccountAcceptsOnlyCashMoney=这是一个银行帐户的现金帐户,所以只接受现金支付的类型。 ErrorFromToAccountsMustDiffers=源和目标的银行帐户必须是不同的。 -ErrorBadThirdPartyName=Bad value for third-party name -ForbiddenBySetupRules=Forbidden by setup rules +ErrorBadThirdPartyName=第三方名称的错误值 +ForbiddenBySetupRules=已经被设置规则禁止 ErrorProdIdIsMandatory=%s 是强制性的 -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory -ErrorBadCustomerCodeSyntax=错误的客户编号 -ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. -ErrorCustomerCodeRequired=客户编号需要 -ErrorBarCodeRequired=Barcode required -ErrorCustomerCodeAlreadyUsed=客户编号已被使用 -ErrorBarCodeAlreadyUsed=Barcode already used +ErrorAccountancyCodeCustomerIsMandatory=客户%s的科目代码是必须的 +ErrorBadCustomerCodeSyntax=客户代码的语法错误 +ErrorBadBarCodeSyntax=条形码语法错误。可能是您设置了一个错误的条形码类型,或者您定义的条形码掩码与扫描的数值不匹配 +ErrorCustomerCodeRequired=需要客户代码 +ErrorBarCodeRequired=需要条形码 +ErrorCustomerCodeAlreadyUsed=客户代码已被使用 +ErrorBarCodeAlreadyUsed=条形码已使用 ErrorPrefixRequired=前缀要求 ErrorBadSupplierCodeSyntax=供应商代码的语法错误 ErrorSupplierCodeRequired=需要供应商代码 ErrorSupplierCodeAlreadyUsed=已使用供应商代码 ErrorBadParameters=错误的参数 -ErrorWrongParameters=Wrong or missing parameters +ErrorWrongParameters=错误或缺少参数 ErrorBadValueForParameter=错误值 '%s' 参数 '%s' ErrorBadImageFormat=图片格式不支持(你的PHP不支持图片格式转换功能) ErrorBadDateFormat=值“%s”有错误的日期格式 ErrorWrongDate=日期不正确! ErrorFailedToWriteInDir=无法写在目录%s +ErrorFailedToBuildArchive=建立档案文件%s失败 ErrorFoundBadEmailInFile=找到%S的语法不正确的电子邮件文件中的行(例如行%的电子邮件s =%s)的 -ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. -ErrorFieldsRequired=Some required fields have been left blank. -ErrorSubjectIsRequired=The email subject is required +ErrorUserCannotBeDelete=无法删除用户,也许它与Dolibarr实体相关 +ErrorFieldsRequired=一些必填字段被留空 +ErrorSubjectIsRequired=需要电子邮件主题 ErrorFailedToCreateDir=无法创建一个目录。检查Web服务器的用户有权限写入Dolibarr文件目录。如果参数safe_mode设置为启用这个PHP,检查Dolibarr php文件到Web服务器的用户拥有(或组)。 ErrorNoMailDefinedForThisUser=没有邮件定义该用户 -ErrorSetupOfEmailsNotComplete=Setup of emails is not complete +ErrorSetupOfEmailsNotComplete=电子邮件设置未完成 ErrorFeatureNeedJavascript=此功能需要Javascript被激活才能工作。更改此设置 - 显示。 ErrorTopMenuMustHaveAParentWithId0=一个类型'顶'不能有一个父菜单中的菜单。放在父菜单0或选择一个类型为'左'菜单。 ErrorLeftMenuMustHaveAParentId=一个类型为'左'必须有一个父菜单的ID。 @@ -62,58 +65,59 @@ ErrorDirNotFound=目录%s不存在(错误的道路,错误的参数saf ErrorFunctionNotAvailableInPHP=函数%s是需要此功能,但并不在此版本/ PHP设置的。 ErrorDirAlreadyExists=具有此名称的目录已经存在。 ErrorFileAlreadyExists=具有此名称的文件已经存在。 -ErrorDestinationAlreadyExists=Another file with the name %s already exists. -ErrorPartialFile=文件未收到了完全由服务器。 +ErrorDestinationAlreadyExists=名称为%s的文件已存在 +ErrorPartialFile=服务器没有完整收到文件 ErrorNoTmpDir=临时的说明书%s不存在。 -ErrorUploadBlockedByAddon=上传封锁一个PHP / Apache的插件。 -ErrorFileSizeTooLarge=文件大小是太大。 -ErrorFieldTooLong=Field %s is too long. -ErrorSizeTooLongForIntType=尺寸int类型的长(%s最大位数) -ErrorSizeTooLongForVarcharType=尺寸长字符串类型(%s字符最大) -ErrorNoValueForSelectType=请填写选取列表值 +ErrorUploadBlockedByAddon=PHP / Apache的插件阻止上传 +ErrorFileSizeTooLarge=文件尺寸太大或文件未提供 +ErrorFieldTooLong=字段%s太长 +ErrorSizeTooLongForIntType=对于int类型来说,尺寸太长(%s最大数字) +ErrorSizeTooLongForVarcharType=对于字符串类型来说,尺寸太长(%s最大字符数) +ErrorNoValueForSelectType=请填写选取清单的值 ErrorNoValueForCheckBoxType=请填写复选框列表值 ErrorNoValueForRadioType=请填写电台列表的值 ErrorBadFormatValueList=列表值不能有一个以上的逗号: %s, 但至少需要一个: key,value -ErrorFieldCanNotContainSpecialCharacters=The field %s must not contains special characters. -ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters and cannot contain only numbers. -ErrorFieldMustHaveXChar=The field %s must have at least %s characters. +ErrorFieldCanNotContainSpecialCharacters=字段%s必须不包括特殊字符 +ErrorFieldCanNotContainSpecialNorUpperCharacters=字段%s必须不包括特殊字符,也不能包括大写字符,和必须以字母字符(a-z)开始 +ErrorFieldMustHaveXChar=字段%s必须有至少%s字符 ErrorNoAccountancyModuleLoaded=没有激活启用任何财务会计模块 ErrorExportDuplicateProfil=导出设定配置名称已存在 ErrorLDAPSetupNotComplete=Dolibarr - LDAP的匹配是不完整的。 ErrorLDAPMakeManualTest=甲。LDIF文件已经生成在目录%s的尝试加载命令行手动有更多的错误信息。 ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled. -ErrorRefAlreadyExists=Reference %s already exists. +ErrorRefAlreadyExists=参考%s已存在 ErrorPleaseTypeBankTransactionReportName=请输入必须报告条目的银行对账单名称(格式YYYYMM或YYYYMMDD) -ErrorRecordHasChildren=Failed to delete record since it has some child records. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object. +ErrorRecordHasChildren=因为有子记录所以删除记录失败 +ErrorRecordHasAtLeastOneChildOfType=对象%s至少有一个子类别%s +ErrorRecordIsUsedCantDelete=无法删除记录,它已经被使用或者包括在另一个对象中 ErrorModuleRequireJavascript=不能禁用JavaScript必须有此功能的工作。要启用/禁用JavaScript,进入菜单首页->安装->“显示。 ErrorPasswordsMustMatch=这两种类型的密码必须相互匹配 ErrorContactEMail=A technical error occured. Please, contact administrator to following email %s and provide the error code %s in your message, or add a screen copy of this page. ErrorWrongValueForField=Field %s: '%s' does not match regex rule %s +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Field %s: '%s' is not a value found in field %s of %s -ErrorFieldRefNotIn=Field %s: '%s' is not a %s existing ref -ErrorsOnXLines=%s errors found +ErrorFieldRefNotIn=字段%s:“%s”不是%s现有参考。 +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. +ErrorsOnXLines=发现%s错误 ErrorFileIsInfectedWithAVirus=防病毒程序无法验证文件(文件可能被病毒感染) -ErrorSpecialCharNotAllowedForField=特殊字符不为外地允许“%s的” ErrorNumRefModel=存在一个引用(%s)和编号是不符合本规则兼容到数据库。记录中删除或重命名参考激活此模块。 ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. -ErrorBadMask=在面具的错误 -ErrorBadMaskFailedToLocatePosOfSequence=没有序列号错误,面具 +ErrorBadMask=掩码错误 +ErrorBadMaskFailedToLocatePosOfSequence=错误,掩码没有序列数字 ErrorBadMaskBadRazMonth=错误,坏的复位值 -ErrorMaxNumberReachForThisMask=Maximum number reached for this mask +ErrorMaxNumberReachForThisMask=该掩码达到的最大数字 ErrorCounterMustHaveMoreThan3Digits=计数器必须有3个以上的数字 -ErrorSelectAtLeastOne=Error, select at least one entry. -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated +ErrorSelectAtLeastOne=错误,至少选择一项 +ErrorDeleteNotPossibleLineIsConsolidated=无法删除,因为记录链接到一个已调解的银行交易 ErrorProdIdAlreadyExist=%s被分配到其他合作方 ErrorFailedToSendPassword=无法传送密码 ErrorFailedToLoadRSSFile=未能得到RSS提要。尝试添加恒定MAIN_SIMPLEXMLLOAD_DEBUG,如果错误消息不提供足够的信息。 -ErrorForbidden=访问被拒绝。
    您尝试访问已禁用模块的页面,区域或功能,或者不在经过身份验证的会话中或不允许您的用户访问。 +ErrorForbidden=访问被拒绝。
    您尝试访问已禁用模块的页面、区域或功能,或者不在经过身份验证的会话中或不允许您的用户访问。 ErrorForbidden2=此登陆权限可在你的Dolibarr管理员菜单 %s->%s中定义。 ErrorForbidden3=看来Dolibarr是不是通过身份验证的会话中使用。以在Dolibarr安装文件就会知道如何管理认证(htaccess的,mod_auth或其他...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=注意:清除你的浏览器cookies,以销毁该登录的现有会话。 ErrorNoImagickReadimage=功能imagick_readimage是没有发现在这个PHP。没有预览可用。管理员可以从菜单中禁用此设置 - 显示选项卡。 ErrorRecordAlreadyExists=记录已存在 ErrorLabelAlreadyExists=此标签已存在 @@ -130,7 +134,7 @@ ErrorBothFieldCantBeNegative=栏位%s和%s不能都为负的 ErrorFieldCantBeNegativeOnInvoice=Field %s cannot be negative on this type of invoice. If you need to add a discount line, just create the discount first (from field '%s' in thirdparty card) and apply it to the invoice. ErrorLinesCantBeNegativeForOneVATRate=Total of lines (net of tax) can't be negative for a given not null VAT rate (Found a negative total for VAT rate %s%%). ErrorLinesCantBeNegativeOnDeposits=Lines can't be negative in a deposit. You will face problems when you will need to consume the deposit in final invoice if you do so. -ErrorQtyForCustomerInvoiceCantBeNegative=进入客户发票的数量不能为负数 +ErrorQtyForCustomerInvoiceCantBeNegative=进入客户发票行的数量不能为负数 ErrorWebServerUserHasNotPermission=%s用来执行Web服务器用户帐户没有该权限 ErrorNoActivatedBarcode=没有激活的条码类型 ErrUnzipFails=%s 无法解压缩与解压缩 @@ -144,17 +148,17 @@ ErrorNewValueCantMatchOldValue=新价值不能等于旧的价值 ErrorFailedToValidatePasswordReset=重新初始化密码密码失败。重新初始化密码已经完成(该链接可以只用一次)。如果没有,请尝试重新启动初始化过程。 ErrorToConnectToMysqlCheckInstance=连接数据库失败。检查数据库服务器是否正在运行(例如,使用mysql / mariadb,您可以使用'sudo service mysql start'从命令行启动它)。 ErrorFailedToAddContact=无法添加联系人 -ErrorDateMustBeBeforeToday=The date must be lower than today -ErrorDateMustBeInFuture=The date must be greater than today +ErrorDateMustBeBeforeToday=日期必须早于今天 +ErrorDateMustBeInFuture=日期必须晚于今天 ErrorPaymentModeDefinedToWithoutSetup=付款模式设置为键入%s但未完成模块发票的设置以定义要为此付款模式显示的信息。 ErrorPHPNeedModule=错误,您的PHP必须安装模块 %s 才能使用此功能。 -ErrorOpenIDSetupNotComplete=您设置Dolibarr配置文件以允许OpenID身份验证,但OpenID服务的URL未定义为常量%s +ErrorOpenIDSetupNotComplete=您设置Dolibarr配置文件以允许OpenID身份认证,但OpenID服务的网址未定义为常量%s ErrorWarehouseMustDiffers=源仓库和目标仓库必须不同 ErrorBadFormat=格式错误! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=错误,此成员尚未链接到任何合作方。在创建订阅发票之前,将成员链接到现有合作方或创建新的合作方。 +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=错误,此会员尚未链接到任何合作方。在创建订阅发票之前,将会员链接到现有合作方或创建新的合作方。 ErrorThereIsSomeDeliveries=错误,此运输已被关联到某交货,即可能已经交货了不能反悔了。拒绝删除。 ErrorCantDeletePaymentReconciliated=无法删除已生成已对帐的银行条目的付款 -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid +ErrorCantDeletePaymentSharedWithPayedInvoice=无法删除由至少一张状态为已支付的发票共享的付款 ErrorPriceExpression1=无法分配到常数 '%s' ErrorPriceExpression2=不能重新定义内置函数 '%s' ErrorPriceExpression3=未定义的变量 '%s' 在函数的定义 @@ -190,16 +194,16 @@ ErrorMandatoryParametersNotProvided=未提供强制参数 ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter it's status. ErrorFailedToLoadModuleDescriptorForXXX=无法加载%s的模块描述符类 ErrorBadDefinitionOfMenuArrayInModuleDescriptor=模块描述符中菜单数组的错误定义(关键字fk_menu的错误值) -ErrorSavingChanges=An error has occurred when saving the changes +ErrorSavingChanges=保存变更时发生错误 ErrorWarehouseRequiredIntoShipmentLine=在运输线上需要仓库 ErrorFileMustHaveFormat=文件格式必须为%s -ErrorFilenameCantStartWithDot=Filename can't start with a '.' +ErrorFilenameCantStartWithDot=文件名称不能以“.”开始 ErrorSupplierCountryIsNotDefined=未定义此供应商的国家/地区。先纠正这个问题。 ErrorsThirdpartyMerge=两条记录合并失败。请求已取消。 ErrorStockIsNotEnoughToAddProductOnOrder=产品%s的库存不足以将其添加到新订单中。 ErrorStockIsNotEnoughToAddProductOnInvoice=产品%s的库存不足以将其添加到新发票中。 -ErrorStockIsNotEnoughToAddProductOnShipment=产品%s的库存不足以将其添加到新货件中。 -ErrorStockIsNotEnoughToAddProductOnProposal=产品%s的库存不足以将其添加到新提案中。 +ErrorStockIsNotEnoughToAddProductOnShipment=产品%s的库存不足以将其添加到新发货中。 +ErrorStockIsNotEnoughToAddProductOnProposal=产品%s的库存不足以将其添加到新提案/建议中。 ErrorFailedToLoadLoginFileForMode=无法获取模式'%s'的登录密钥。 ErrorModuleNotFound=找不到模块文件。 ErrorFieldAccountNotDefinedForBankLine=未为源行标识%s(%s)定义的会计科目值 @@ -207,14 +211,14 @@ ErrorFieldAccountNotDefinedForInvoiceLine=未为发票标识%s(%s)定义的 ErrorFieldAccountNotDefinedForLine=未为该行定义的会计科目值(%s) ErrorBankStatementNameMustFollowRegex=错误,银行对帐单名称必须遵循以下语法规则%s ErrorPhpMailDelivery=检查您是否使用了过多的收件人,并且您的电子邮件内容与垃圾邮件不相似。还请管理员检查防火墙和服务器日志文件以获取更完整的信息。 -ErrorUserNotAssignedToTask=必须为用户分配用户才能输入消耗的时间。 +ErrorUserNotAssignedToTask=必须为任务分配用户才能输入消耗的时间。 ErrorTaskAlreadyAssigned=任务已分配给用户 ErrorModuleFileSeemsToHaveAWrongFormat=模块包似乎格式错误。 -ErrorModuleFileSeemsToHaveAWrongFormat2=At least one mandatory directory must exists into zip of module: %s or %s +ErrorModuleFileSeemsToHaveAWrongFormat2=至少有一个强制性目录必须存在于模块的压缩包中: %s%s ErrorFilenameDosNotMatchDolibarrPackageRules=模块包的名称( %s )与预期的名称语法不匹配: %s ErrorDuplicateTrigger=错误,重复的触发器名称%s。已经从%s加载。 ErrorNoWarehouseDefined=错误,没有定义仓库。 -ErrorBadLinkSourceSetButBadValueForRef=您使用的链接无效。定义了付款的“来源”,但“参考”的值无效。 +ErrorBadLinkSourceSetButBadValueForRef=您使用的链接无效。付款的“来源”已定义,但“参考”的值无效。 ErrorTooManyErrorsProcessStopped=错误太多了。过程停止了。 ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=在此操作上设置增加/减少库存的选项时,无法进行批量验证(您必须逐个验证,以便您可以定义仓库以增加/减少) ErrorObjectMustHaveStatusDraftToBeValidated=对象%s必须为'草稿'状态。 @@ -222,67 +226,89 @@ ErrorObjectMustHaveLinesToBeValidated=对象%s必须有要验证的行。 ErrorOnlyInvoiceValidatedCanBeSentInMassAction=只有经过验证的发票才能使用“通过电子邮件发送”批量操作发送。 ErrorChooseBetweenFreeEntryOrPredefinedProduct=您必须选择文章是否为预定义产品 ErrorDiscountLargerThanRemainToPaySplitItBefore=您尝试申请的折扣大于剩余支付。之前将折扣分为2个较小的折扣。 -ErrorFileNotFoundWithSharedLink=找不到档案。可能是修改了共享密钥或最近删除了文件。 +ErrorFileNotFoundWithSharedLink=找不到文件,可能是共享密钥被编辑过或最近删除了文件。 ErrorProductBarCodeAlreadyExists=产品条形码%s已存在于其他产品参考中。 ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using kits to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number. -ErrorDescRequiredForFreeProductLines=对于包含免费产品的行,必须说明 +ErrorDescRequiredForFreeProductLines=对于包含免费产品的行,必须进行描述 ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually. ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set. -ErrorURLMustEndWith=URL %s must end %s -ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// -ErrorHostMustNotStartWithHttp=Host name %s must NOT start with http:// or https:// -ErrorNewRefIsAlreadyUsed=Error, the new reference is already used -ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. -ErrorSearchCriteriaTooSmall=Search criteria too small. -ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to be disabled -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled +ErrorURLMustEndWith=网址%s必须以%s结束 +ErrorURLMustStartWithHttp=网址%s必须以 http:// 或 https:// 开始 +ErrorHostMustNotStartWithHttp=主机名称%s不能以 http:// 或 https:// 开始 +ErrorNewRefIsAlreadyUsed=错误,新参考已被使用 +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=错误,无法删除链接到已关闭发票的付款 +ErrorSearchCriteriaTooSmall=搜索条件太小 +ErrorObjectMustHaveStatusActiveToBeDisabled=对象必须具有“启用”状态才能被停用 +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=对象必须具有“草稿”或“停用”状态才能被启用 ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist. -ErrorFieldRequiredForProduct=Field '%s' is required for product %s -ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s. -ErrorAddAtLeastOneLineFirst=Add at least one line first -ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible. -ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Error, language is mandatory if you set the page as a translation of another one. -ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one. +ErrorFieldRequiredForProduct=产品%s必须有字段“%s” +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. +ProblemIsInSetupOfTerminal=问题在于终端%s的设置 +ErrorAddAtLeastOneLineFirst=请先至少增加一行 +ErrorRecordAlreadyInAccountingDeletionNotPossible=错误,记录已经在会计科目中转移,无法删除 +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=错误,如果你将页面设置为另一个页面的翻译,那语言是必须的。 +ErrorLanguageOfTranslatedPageIsSameThanThisPage=错误,翻译后的页面语言与本页面相同。 ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in warehouse "%s". ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s". ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded) ErrorTooManyDifferentValueForSelectedGroupBy=Found too many different value (more than %s) for the field '%s', so we can't use it as a 'Group by' for graphics. The field 'Group By' has been removed. May be you wanted to use it as an X-Axis ? -ErrorReplaceStringEmpty=Error, the string to replace into is empty -ErrorProductNeedBatchNumber=Error, product '%s' need a lot/serial number -ErrorProductDoesNotNeedBatchNumber=Error, product '%s' does not accept a lot/serial number -ErrorFailedToReadObject=Error, failed to read object of type %s -ErrorParameterMustBeEnabledToAllwoThisFeature=Error, parameter %s must be enabled into conf/conf.php to allow use of Command Line Interface by the internal job scheduler -ErrorLoginDateValidity=Error, this login is outside the validity date range +ErrorReplaceStringEmpty=错误,要替换的字符串为空 +ErrorProductNeedBatchNumber=错误,产品“%s”需要一个批号/序列号 +ErrorProductDoesNotNeedBatchNumber=错误,产品'“%s”不接受批号/序列号 +ErrorFailedToReadObject=错误,无法读取%s类型的对象 +ErrorParameterMustBeEnabledToAllwoThisFeature=错误,必须在conf/conf.php中启用参数%s以允许内部作业调度器使用命令行界面。 +ErrorLoginDateValidity=错误,此登录已超出有效日期范围 ErrorValueLength=Length of field '%s' must be higher than '%s' ErrorReservedKeyword=The word '%s' is a reserved keyword -ErrorNotAvailableWithThisDistribution=Not available with this distribution -ErrorPublicInterfaceNotEnabled=Public interface was not enabled +ErrorNotAvailableWithThisDistribution=不适用于此版本 +ErrorPublicInterfaceNotEnabled=未启用公共界面 ErrorLanguageRequiredIfPageIsTranslationOfAnother=The language of new page must be defined if it is set as a translation of another page ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=The language of new page must not be the source language if it is set as a translation of another page ErrorAParameterIsRequiredForThisOperation=A parameter is mandatory for this operation -ErrorDateIsInFuture=Error, the date can't be in the future -ErrorAnAmountWithoutTaxIsRequired=Error, amount is mandatory -ErrorAPercentIsRequired=Error, please fill in the percentage correctly +ErrorDateIsInFuture=错误,日期不可能在将来 +ErrorAnAmountWithoutTaxIsRequired=错误,金额为必填项目 +ErrorAPercentIsRequired=错误,请正确填写百分比 ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of account -ErrorFailedToFindEmailTemplate=Failed to find template with code name %s -ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. +ErrorFailedToFindEmailTemplate=无法找到代码为%s的模板 +ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=服务上没有定义持续时间。没有办法计算每小时的价格。 ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary -CheckVersionFail=Version check fail +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary +CheckVersionFail=版本检查失败 ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it -ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. -ErrorIsNotADraft=%s is not a draft -ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrorNotInDictionaryPaymentConditions=不在付款条款类别中,请编辑 +ErrorIsNotADraft=%s不是草稿 +ErrorExecIdFailed=无法执行命令”id" +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired +ErrorNotApproverForHoliday=您不是休假%s的批准人 +ErrorAttributeIsUsedIntoProduct=该属性用于一个或多个产品变体中 +ErrorAttributeValueIsUsedIntoProduct=这个属性数值被用于一个或多个产品变体中 +ErrorPaymentInBothCurrency=错误,所有金额必须输入于同一列 +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=You try to pay invoices in the currency %s from an account with the currency %s +ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" +ErrorInvoiceLoadThirdPartyKey=第三方密钥“%s”没有为发票”%s“设置 +ErrorDeleteLineNotAllowedByObjectStatus=当前对象状态不允许删除行 +ErrorAjaxRequestFailed=请求失败 +ErrorThirpdartyOrMemberidIsMandatory=第三方或合伙企业的会员是强制性的 +ErrorFailedToWriteInTempDirectory=无法写入临时目录 +ErrorQuantityIsLimitedTo=数量限制在%s +ErrorFailedToLoadThirdParty=从id=%s, email=%s, name=%s中查找/加载第三方失败 +ErrorThisPaymentModeIsNotSepa=这种付款模式不是一个银行帐户 +ErrorStripeCustomerNotFoundCreateFirst=Stripe客户没有为这个第三方设置(或设置为在Stripe方面删除的值)。先创建(或重新连接)它。 +ErrorCharPlusNotSupportedByImapForSearch=IMAP搜索无法搜索到包含字符+的发件人或收件人的字符串。 +ErrorTableNotFound=表格%s未找到 +ErrorValueForTooLow=%s的数值太低 +ErrorValueCantBeNull=%s的数值不能为空 +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings -WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=您的PHP参数 upload_max_filesize (%s)比PHP参数 post_max_size(%s)高。这不是一个一致的设置。 WarningPasswordSetWithNoAccount=为此成员设置了密码。但是,未创建任何用户帐户。因此,此密码已存储,但无法用于登录Dolibarr。它可以由外部模块/接口使用,但如果您不需要为成员定义任何登录名或密码,则可以从成员模块设置中禁用“管理每个成员的登录名”选项。如果您需要管理登录但不需要任何密码,则可以将此字段保留为空以避免此警告。注意:如果成员链接到用户,则电子邮件也可用作登录。 -WarningMandatorySetupNotComplete=Click here to setup mandatory parameters -WarningEnableYourModulesApplications=Click here to enable your modules and applications +WarningMandatorySetupNotComplete=点击这里设置主要参数 +WarningEnableYourModulesApplications=点击这里,启用您的模块和应用程序 WarningSafeModeOnCheckExecDir=警告,PHP的选项safe_mode设置为在此情况下命令必须在safe_mode_exec_dir之存储参数的PHP目录内宣布。 WarningBookmarkAlreadyExists=本标题或此目标(网址)书签已存在。 WarningPassIsEmpty=警告,数据库密码是空的。这是一个安全漏洞。您应该添加一个密码到您的数据库,并改变你的conf.php文件,以反映这一点。 @@ -290,7 +316,7 @@ WarningConfFileMustBeReadOnly=警告:您的服务器配置文件 (htdocs/co WarningsOnXLines=%S上的源代码行警告 WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=即使源和目标之间金额不同进行警告,禁用。启用此功能时要小心。 WarningUsingThisBoxSlowDown=警告,使用此框会严重减慢显示该框的所有页面。 WarningClickToDialUserSetupNotComplete=即将完工的网络电话资料信息设置 (详见用户资料信息页的网络电话). @@ -302,33 +328,36 @@ WarningYourLoginWasModifiedPleaseLogin=您的登录已被修改。出于安全 WarningAnEntryAlreadyExistForTransKey=此语言的翻译密钥已存在条目 WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to %s when using the mass actions on lists WarningDateOfLineMustBeInExpenseReportRange=警告,行日期不在费用报表范围内 -WarningProjectDraft=Project is still in draft mode. Don't forget to validate it if you plan to use tasks. -WarningProjectClosed=Project is closed. You must re-open it first. -WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list. -WarningFailedToAddFileIntoDatabaseIndex=Warning, failed to add file entry into ECM database index table -WarningTheHiddenOptionIsOn=Warning, the hidden option %s is on. -WarningCreateSubAccounts=Warning, you can't create directly a sub account, you must create a third party or an user and assign them an accounting code to find them in this list -WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection. -WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. +WarningProjectDraft=项目仍处于草案模式。如果您计划使用任务,别忘了验证。 +WarningProjectClosed=项目已关闭,您必须首先重新打开它 +WarningSomeBankTransactionByChequeWereRemovedAfter=一些银行交易被删除后,包括这些交易在内的收据被生成。因此,支票的数量和收据的总额可能与清单上的数量和总额不同。 +WarningFailedToAddFileIntoDatabaseIndex=警告,向ECM数据库索引表添加文件条目失败 +WarningTheHiddenOptionIsOn=警告,隐藏选项%s已打开。 +WarningCreateSubAccounts=警告,您不能直接创建一个子账户,您必须创建一个第三方或一个用户,和给他们分配一个科目代码,以便在这个清单中找到他们。 +WarningAvailableOnlyForHTTPSServers=仅在使用HTTPS安全连接时可用 +WarningModuleXDisabledSoYouMayMissEventHere=模块%s尚未启用。所以您可能会在这里错过很多事件。 WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=警告,这也将删除网站的所有现有页面/容器。您应该先导出您的网站,这样您就有一个备份,以后再重新导入。 +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=当在 "发票验证 "中设置了减少库存的选项时,自动验证功能被禁用。 # Validate -RequireValidValue = Value not valid -RequireAtLeastXString = Requires at least %s character(s) -RequireXStringMax = Requires %s character(s) max -RequireAtLeastXDigits = Requires at least %s digit(s) -RequireXDigitsMax = Requires %s digit(s) max -RequireValidNumeric = Requires a numeric value -RequireValidEmail = Email address is not valid -RequireMaxLength = Length must be less than %s chars -RequireMinLength = Length must be more than %s char(s) -RequireValidUrl = Require valid URL -RequireValidDate = Require a valid date -RequireANotEmptyValue = Is required -RequireValidDuration = Require a valid duration -RequireValidExistingElement = Require an existing value -RequireValidBool = Require a valid boolean -BadSetupOfField = Error bad setup of field -BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation -BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion +RequireValidValue = 数值无效 +RequireAtLeastXString = 至少需要%s个字符 +RequireXStringMax = 最多需要%s个字符 +RequireAtLeastXDigits = 至少需要%s位数字 +RequireXDigitsMax = 最多需要%s位数字 +RequireValidNumeric = 需要一个数值 +RequireValidEmail = 电子邮件地址无效 +RequireMaxLength = 长度必须不得少于%s字符 +RequireMinLength = 长度必须不得超过%s字符 +RequireValidUrl = 需要有效网址 +RequireValidDate = 需要有效日期 +RequireANotEmptyValue = 必要 +RequireValidDuration = 需要有效周期 +RequireValidExistingElement = 需要一个存在的数值 +RequireValidBool = 需要一个有效的布林值 +BadSetupOfField = 字段设置错误 +BadSetupOfFieldClassNotFoundForValidation = 字段设置错误:未找到用于验证的类 +BadSetupOfFieldFileNotFound = 字段设置错误:未找到可纳入的文件 BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class diff --git a/htdocs/langs/zh_CN/eventorganization.lang b/htdocs/langs/zh_CN/eventorganization.lang index 6fd538f1ad2..b8d605b7c25 100644 --- a/htdocs/langs/zh_CN/eventorganization.lang +++ b/htdocs/langs/zh_CN/eventorganization.lang @@ -17,7 +17,7 @@ # # Generic # -ModuleEventOrganizationName = Event Organization +ModuleEventOrganizationName = 活动组织 EventOrganizationDescription = Event Organization through Module Project EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) # @@ -37,7 +37,8 @@ EventOrganization=Event organization Settings=设置 EventOrganizationSetupPage = Event Organization setup page EVENTORGANIZATION_TASK_LABEL = Label of tasks to create automatically when project is validated -EVENTORGANIZATION_TASK_LABELTooltip = When you validate an organized event, some tasks can be automatically created in the project

    For example:
    Send Call for Conference
    Send Call for Booth
    Receive call for conferences
    Receive call for Booth
    Open subscriptions to events for attendees
    Send remind of event to speakers
    Send remind of event to Booth hoster
    Send remind of event to attendees +EVENTORGANIZATION_TASK_LABELTooltip = When you validate an event to organize, some tasks can be automatically created in the project

    For example:
    Send Call for Conferences
    Send Call for Booths
    Validate suggestions of Conferences
    Validate application for Booths
    Open subscriptions to the event for attendees
    Send a remind of the event to speakers
    Send a remind of the event to Booth hosters
    Send a remind of the event to attendees +EVENTORGANIZATION_TASK_LABELTooltip2=Keep empty if you don't need to create tasks automatically. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Category to add to third-parties automatically created when someone suggests a conference EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Category to add to third-parties automatically created when they suggests a booth EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Template of email to send after receiving a suggestion of a conference. @@ -53,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Conference Or Booth +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = Conference Or Booth ConferenceOrBoothTab = Conference Or Booth AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Conference Or Booth Attendee +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -111,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = List of suggested conferences -ListOfSuggestedBooths = List of suggested booths -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Suggest a new conference SuggestBooth = Suggest a booth ViewAndVote = View and vote for suggested events PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event PublicAttendeeSubscriptionPage = Public link for registration to this event only MissingOrBadSecureKey = The security key is invalid or missing -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = This conference starts on %s and ends on %s. ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s @@ -129,7 +133,7 @@ LabelOfconference=Conference label ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet DateMustBeBeforeThan=%s must be before %s DateMustBeAfterThan=%s must be after %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Registration OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received OrganizationEventBoothRequestWasReceived=Your request for a booth has been received @@ -138,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event re OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Application for a booth NewSuggestionOfConference=Application for a conference @@ -153,7 +158,7 @@ VoteOk = Your vote has been accepted. AlreadyVoted = You have already voted for this event. VoteError = An error has occurred during the vote, please try again. -SubscriptionOk = Your registration has been validated +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event Attendee = Attendee PaymentConferenceAttendee = Conference attendee payment @@ -161,7 +166,9 @@ PaymentBoothLocation = Booth location payment DeleteConferenceOrBoothAttendee=Remove attendee RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s EmailAttendee=Attendee email +EmailCompany=Company email EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/zh_CN/externalsite.lang b/htdocs/langs/zh_CN/externalsite.lang deleted file mode 100644 index 5ad169c8784..00000000000 --- a/htdocs/langs/zh_CN/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=设置链接到外部网站 -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=外部网站模块配置不正确。 -ExampleMyMenuEntry=我的菜单选项 diff --git a/htdocs/langs/zh_CN/ftp.lang b/htdocs/langs/zh_CN/ftp.lang deleted file mode 100644 index 31efb1c5f66..00000000000 --- a/htdocs/langs/zh_CN/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP客户端模块设置 -NewFTPClient=新建FTP链接 -FTPArea=FTP 区 -FTPAreaDesc=这个屏幕显示您的FTP服务器查看内容 -SetupOfFTPClientModuleNotComplete=模块的FTP客户端安装程序似乎是不完整 -FTPFeatureNotSupportedByYourPHP=您的PHP不支持FTP功能 -FailedToConnectToFTPServer=无法连接到FTP服务器(服务器%s,港口%s) -FailedToConnectToFTPServerWithCredentials=无法登录到FTP服务器的定义登陆/密码 -FTPFailedToRemoveFile=无法删除文件%s。 -FTPFailedToRemoveDir=无法删除目录%s(检查权限和目录是空的)。 -FTPPassiveMode=被动模式 -ChooseAFTPEntryIntoMenu=在菜单中选择一个FTP选项 -FailedToGetFile=获取文件失败 %s diff --git a/htdocs/langs/zh_CN/help.lang b/htdocs/langs/zh_CN/help.lang index d12483eefae..cbb65933673 100644 --- a/htdocs/langs/zh_CN/help.lang +++ b/htdocs/langs/zh_CN/help.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=论坛/维基支持 EMailSupport=电子邮件支持 -RemoteControlSupport=网上实时/远程支持 +RemoteControlSupport=线上实时/远程支持 OtherSupport=其他支持 ToSeeListOfAvailableRessources=查看/联络可用的资源: HelpCenter=帮助中心 -DolibarrHelpCenter=Dolibarr Help and Support Center -ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. -TypeOfSupport=Type of support +DolibarrHelpCenter=Dolibarr帮助和支持中心 +ToGoBackToDolibarr=否则,点击这里继续使用Dolibar +TypeOfSupport=支持类型 TypeSupportCommunauty=社区(免费) TypeSupportCommercial=商业 TypeOfHelp=类型 @@ -15,9 +15,9 @@ NeedHelpCenter=需要帮助或支持? Efficiency=效率 TypeHelpOnly=只有帮助 TypeHelpDev=帮助+开发 -TypeHelpDevForm=Help+Development+Training -BackToHelpCenter=Otherwise, go back to Help center home page. -LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated): +TypeHelpDevForm=帮助+开发+培训 +BackToHelpCenter=否则,请返回帮助中心首页 +LinkToGoldMember=您可以通过点击小工具来呼叫Dolibarr为您的语言(%s)预先选择的教练(状态和最高价格会自动更新): PossibleLanguages=支持的语言 -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation -SeeOfficalSupport=使用您的语言的 Dolibarr 官方支持:
    %s +SubscribeToFoundation=帮助Dolibarr项目,向基金会捐款 +SeeOfficalSupport=使用您语言的Dolibarr官方支持:
    %s diff --git a/htdocs/langs/zh_CN/holiday.lang b/htdocs/langs/zh_CN/holiday.lang index 492299e752b..73479b67fb5 100644 --- a/htdocs/langs/zh_CN/holiday.lang +++ b/htdocs/langs/zh_CN/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=人事管理 -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=月结单 MenuAddCP=新建请假请求 +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=做一个请假申请 DateDebCP=开始日期 @@ -56,6 +58,7 @@ ConfirmDeleteCP=确认删除该请假申请? ErrorCantDeleteCP=错误,您没有权限删除这个请假条。 CantCreateCP=您无权做请假条。 InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=起始日期为必选。 NoDateFin=结束日期为必选。 ErrorDureeCP=你的请假申请不在工作时间内即是说你不需要请假因为不是工作时间呀请什么假呀。 @@ -79,13 +82,22 @@ MotifCP=雷森 UserCP=用户 ErrorAddEventToUserCP=添加外部请假时出错异常。 AddEventToUserOkCP=外部请假添加成功。 +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=查看变更日志 LogCP=Log of all updates made to "Balance of Leave" -ActionByCP=Updated by +ActionByCP=更新者 UserUpdateCP=Updated for PrevSoldeCP=上一条平衡 NewSoldeCP=新建平衡 alreadyCPexist=这个期间已有请假申请了。 +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=群组 +users=用户 +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=最近变更的 %s 份请假申请 @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=大量增加假期 +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/zh_CN/hrm.lang b/htdocs/langs/zh_CN/hrm.lang index 1e7dc84d94f..f34283acae9 100644 --- a/htdocs/langs/zh_CN/hrm.lang +++ b/htdocs/langs/zh_CN/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=打开机构 CloseEtablishment=关闭机构 # Dictionary DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - 部门列表 +DictionaryDepartment=HRM - Organizational Unit DictionaryFunction=HRM - Job positions # Module Employees=雇员 @@ -20,13 +20,14 @@ Employee=雇员 NewEmployee=新建雇员 ListOfEmployees=List of employees HrmSetup=人力资源管理模块设置 -HRM_MAXRANK=Maximum rank for a skill +SkillsManagement=Skills management +HRM_MAXRANK=Maximum number of levels to rank a skill HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created deplacement=Shift DateEval=Evaluation date JobCard=Job card -Job=工作 -Jobs=Jobs +JobPosition=工作 +JobsPosition=Jobs NewSkill=New Skill SkillType=Skill type Skilldets=List of ranks for this skill @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Are you sure you want to validate this evaluation with EvaluationCard=Evaluation card RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=位置 -Positions=Positions -PositionCard=Position card +EmployeePosition=Employee position +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -70,12 +70,22 @@ RequiredSkills=Required skills for this job UserRank=User Rank SkillList=Skill list SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation NoEval=No evaluation done for this employee HowManyUserWithThisMaxNote=Number of users with this rank HighestRank=Highest rank SkillComparison=Skill comparison +ActionsOnJob=Events on this job +VacantPosition=job vacancy +VacantCheckboxHelper=Checking this option will show unfilled positions (job vacancy) +SaveAddSkill = Skill(s) added +SaveLevelSkill = Skill(s) level saved +DeleteSkill = Skill removed +SkillsExtraFields=Attributs supplémentaires (Compétences) +JobsExtraFields=Attributs supplémentaires (Emplois) +EvaluationsExtraFields=Attributs supplémentaires (Evaluations) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang index 5ae78a7ef0d..61c026d5c75 100644 --- a/htdocs/langs/zh_CN/install.lang +++ b/htdocs/langs/zh_CN/install.lang @@ -8,7 +8,7 @@ ConfFileIsNotWritable=Configuration file %s is not writable. Check permis ConfFileIsWritable=配置文件 %s 为可写权限。 ConfFileMustBeAFileNotADir=配置文件 %s 必须是文件,而不是目录。 ConfFileReload=Reloading parameters from configuration file. -NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not reabable. We will run the installation process to try to initialize it. +NoReadableConfFileSoStartInstall=The configuration file conf/conf.php does not exists or is not readable. We will run the installation process to try to initialize it. PHPSupportPOSTGETOk=PHP的POST和GET支持。 PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. PHPSupportSessions=PHP多线程支持。 @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=您可能输入了一个错误的参数值的 '%s' ErrorFailedToCreateDatabase=无法创建数据库 '%s'。 ErrorFailedToConnectToDatabase=无法连接到数据库 '%s'。 ErrorDatabaseVersionTooLow=数据库版本 (%s) 太低了,需要 %s 或更高版本。 -ErrorPHPVersionTooLow=PHP的版本太旧了。至少需要 %s 版本。 +ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required. +ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required. ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. ErrorDatabaseAlreadyExists=数据库 '%s' 已存在。 +ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=如果数据库已经存在,请返回并取消选中“创建数据库”选项。 WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. diff --git a/htdocs/langs/zh_CN/intracommreport.lang b/htdocs/langs/zh_CN/intracommreport.lang index c3d706989ae..499f34d44cf 100644 --- a/htdocs/langs/zh_CN/intracommreport.lang +++ b/htdocs/langs/zh_CN/intracommreport.lang @@ -4,7 +4,7 @@ IntracommReportSetup = Intracommreport module setup IntracommReportAbout = About intracommreport # Setup -INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) +INTRACOMMREPORT_NUM_AGREMENT=批准号(由CISD签发) INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions @@ -32,7 +32,7 @@ IntracommReportTitle=Preparation of an XML file in ProDouane format # List IntracommReportList=List of generated declarations IntracommReportNumber=Numero of declaration -IntracommReportPeriod=Period of nalysis +IntracommReportPeriod=Period of analysis IntracommReportTypeDeclaration=Type of declaration IntracommReportDownload=download XML file diff --git a/htdocs/langs/zh_CN/knowledgemanagement.lang b/htdocs/langs/zh_CN/knowledgemanagement.lang index e7884d5be4e..22e170ea67c 100644 --- a/htdocs/langs/zh_CN/knowledgemanagement.lang +++ b/htdocs/langs/zh_CN/knowledgemanagement.lang @@ -18,37 +18,37 @@ # # Module label 'ModuleKnowledgeManagementName' -ModuleKnowledgeManagementName = Knowledge Management System +ModuleKnowledgeManagementName = 知识管理系统 # Module description 'ModuleKnowledgeManagementDesc' -ModuleKnowledgeManagementDesc=Manage a Knowledge Management (KM) or Help-Desk base +ModuleKnowledgeManagementDesc=管理一个知识管理(KM)或服务台基础 # # Admin page # -KnowledgeManagementSetup = Knowledge Management System setup +KnowledgeManagementSetup = 知识管理系统设置 Settings = 设置 -KnowledgeManagementSetupPage = Knowledge Management System setup page +KnowledgeManagementSetupPage = 知识管理系统设置页面 # # About page # About = 关于 -KnowledgeManagementAbout = About Knowledge Management -KnowledgeManagementAboutPage = Knowledge Management about page +KnowledgeManagementAbout = 关于知识管理 +KnowledgeManagementAboutPage = 知识管理简介页面 -KnowledgeManagementArea = Knowledge Management -MenuKnowledgeRecord = Knowledge base -ListKnowledgeRecord = List of articles -NewKnowledgeRecord = New article -ValidateReply = Validate solution -KnowledgeRecords = Articles -KnowledgeRecord = 项目 -KnowledgeRecordExtraFields = Extrafields for Article -GroupOfTicket=Group of tickets -YouCanLinkArticleToATicketCategory=You can link an article to a ticket group (so the article will be suggested during qualification of new tickets) -SuggestedForTicketsInGroup=Suggested for tickets when group is +KnowledgeManagementArea = 知识管理 +MenuKnowledgeRecord = 知识库 +ListKnowledgeRecord = 文章清单 +NewKnowledgeRecord = 新文章 +ValidateReply = 验证方案 +KnowledgeRecords = 文章 +KnowledgeRecord = 文章 +KnowledgeRecordExtraFields = 文章的附加字段 +GroupOfTicket=工单组 +YouCanLinkArticleToATicketCategory=您可以将文章链接到一个工单组(这样文章就会在这个组的任何工单上突出显示)。 +SuggestedForTicketsInGroup=Suggested on ticket creation -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=设置为过时的 +ConfirmCloseKM=你是否确认要将这篇文章关闭并设定为已经过时吗? +ConfirmReopenKM=您想将这篇文章恢复到 "已验证 "状态吗? diff --git a/htdocs/langs/zh_CN/ldap.lang b/htdocs/langs/zh_CN/ldap.lang index 0e344352314..2215bfda1bc 100644 --- a/htdocs/langs/zh_CN/ldap.lang +++ b/htdocs/langs/zh_CN/ldap.lang @@ -5,7 +5,7 @@ LDAPInformationsForThisContact=在此LDAP数据库信息联系 LDAPInformationsForThisUser=LDAP数据库中该用户信息 LDAPInformationsForThisGroup=在LDAP数据库的资料本组 LDAPInformationsForThisMember=在LDAP数据库信息该会员 -LDAPInformationsForThisMemberType=Information in LDAP database for this member type +LDAPInformationsForThisMemberType=LDAP成员资格的数据库中的信息 LDAPAttributes=LDAP属性 LDAPCard=LDAP信息 LDAPRecordNotFound=记录中找不到LDAP数据库 @@ -13,15 +13,19 @@ LDAPUsers=在LDAP用户数据库 LDAPFieldStatus=地位 LDAPFieldFirstSubscriptionDate=首先认购日期 LDAPFieldFirstSubscriptionAmount=认购金额拳 -LDAPFieldLastSubscriptionDate=Latest subscription date -LDAPFieldLastSubscriptionAmount=Latest subscription amount +LDAPFieldLastSubscriptionDate=最新订阅日期 +LDAPFieldLastSubscriptionAmount=最新订阅金额 LDAPFieldSkype=Skype账号 -LDAPFieldSkypeExample=例如 : skype账号 +LDAPFieldSkypeExample=例如:skype 名称 UserSynchronized=用户同步 GroupSynchronized=集团同步 MemberSynchronized=会员同步 -MemberTypeSynchronized=Member type synchronized +MemberTypeSynchronized=成员类型已同步 ContactSynchronized=同步联系人 ForceSynchronize=力同步Dolibarr - >的LDAP ErrorFailedToReadLDAP=无法读取LDAP数据库。检查的LDAP模块设置和数据库获取。 -PasswordOfUserInLDAP=Password of user in LDAP +PasswordOfUserInLDAP=LDAP中用户的密码 +LDAPPasswordHashType=密码哈希类型 +LDAPPasswordHashTypeExample=服务器上使用的密码哈希类型 +SupportedForLDAPExportScriptOnly=只有 ldap 导出脚本支持 +SupportedForLDAPImportScriptOnly=只有 ldap 导入脚本支持 diff --git a/htdocs/langs/zh_CN/link.lang b/htdocs/langs/zh_CN/link.lang index 3c715594202..5c2a5c3dcf4 100644 --- a/htdocs/langs/zh_CN/link.lang +++ b/htdocs/langs/zh_CN/link.lang @@ -8,4 +8,4 @@ LinkRemoved=链接 %s 已移除 ErrorFailedToDeleteLink= 移除链接失败 '%s' ErrorFailedToUpdateLink= 更新链接失败 '%s' URLToLink=URL网址超链接 -OverwriteIfExists=Overwrite file if exists +OverwriteIfExists=如果存在就覆盖文件 diff --git a/htdocs/langs/zh_CN/loan.lang b/htdocs/langs/zh_CN/loan.lang index 6ab3065f727..0af45a180e6 100644 --- a/htdocs/langs/zh_CN/loan.lang +++ b/htdocs/langs/zh_CN/loan.lang @@ -23,12 +23,12 @@ AddLoan=创建贷款 FinancialCommitment=财务承诺 InterestAmount=利率 CapitalRemain=资本依旧 -TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started -CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule +TermPaidAllreadyPaid = 本期已支付 +CantUseScheduleWithLoanStartedToPaid = 无法生成已开始付款的贷款的时间线 +CantModifyInterestIfScheduleIsUsed = 如果您使用时间表,您就不能变更利息 # Admin ConfigLoan=货款模块设置 -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=默认会计科目资金 -LOAN_ACCOUNTING_ACCOUNT_INTEREST=默认会计科目利息 -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=默认会计科目保险 +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=编辑财务承诺 diff --git a/htdocs/langs/zh_CN/mailmanspip.lang b/htdocs/langs/zh_CN/mailmanspip.lang index d1a66a29775..be730addd7c 100644 --- a/htdocs/langs/zh_CN/mailmanspip.lang +++ b/htdocs/langs/zh_CN/mailmanspip.lang @@ -7,10 +7,10 @@ MailmanCreationSuccess=订阅测试执行成功 MailmanDeletionSuccess=非订阅测试执行成功 SynchroMailManEnabled=Mailman更新执行 SynchroSpipEnabled=SPIP更新执行 -DescADHERENT_MAILMAN_ADMINPW=Mailman 超级管理员administrator密码 +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman 超级管理员administrator密码 DescADHERENT_MAILMAN_URL=Mailman的订阅URL地址 DescADHERENT_MAILMAN_UNSUB_URL=Mailman的非订阅URL地址 -DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) +DescADHERENT_MAILMAN_LISTS=自动登记新成员名单(以逗号分隔) SPIPTitle=SPIP内容管理系统 DescADHERENT_SPIP_SERVEUR=SPIP服务 DescADHERENT_SPIP_DB=SPIP 数据库名称 diff --git a/htdocs/langs/zh_CN/mails.lang b/htdocs/langs/zh_CN/mails.lang index 0bf81b9b2bb..16b348e6de9 100644 --- a/htdocs/langs/zh_CN/mails.lang +++ b/htdocs/langs/zh_CN/mails.lang @@ -7,10 +7,10 @@ MailCard=通过电子邮件发送卡 MailRecipients=收件人 MailRecipient=接收方 MailTitle=描述 -MailFrom=寄件者 +MailFrom=从 MailErrorsTo=Errors to MailReply=回复 -MailTo=收件者(s) +MailTo=接收方 MailToUsers=给用户 MailCC=抄送 MailToCCUsers=复制给用户 @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang index 95ab4e7a0b0..3c874617524 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=stsongstdlight FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,9 +34,10 @@ NoTemplateDefined=此电子邮件类型没有可用的模板 AvailableVariables=可用的替代变量 NoTranslation=没有翻译 Translation=翻译 +Translations=翻译 CurrentTimeZone=PHP 服务器的时区 -EmptySearchString=Enter non empty search criterias -EnterADateCriteria=Enter a date criteria +EmptySearchString=输入非空搜索条件 +EnterADateCriteria=输入日期条件 NoRecordFound=空空如也——没有找到记录 NoRecordDeleted=未删除记录 NotEnoughDataYet=数据不足 @@ -53,22 +60,22 @@ ErrorFailedToSendMail=无法发送邮件(发件人=%s后,接收器=%s)的 ErrorFileNotUploaded=文件没有上传。检查大小不超过允许的最大值,即在磁盘上的可用空间是可用和有没有这已经与in这个目录同名文件。 ErrorInternalErrorDetected=检测到错误 ErrorWrongHostParameter=错误的主机参数 -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record. +ErrorYourCountryIsNotDefined=你的国家没有定义。 转到主页-设置-编辑和再次发布表单。 +ErrorRecordIsUsedByChild=删除此记录失败。 该记录由至少一个子记录使用。 ErrorWrongValue=错误的值 ErrorWrongValueForParameterX=错误的参数值%s ErrorNoRequestInError=无请求错误 -ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later. +ErrorServiceUnavailableTryLater=暂时没有服务。 稍后再试。 ErrorDuplicateField=在唯一的栏位中使用了重复值 -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back. -ErrorConfigParameterNotDefined=Parameter %s is not defined in the Dolibarr config file conf.php. +ErrorSomeErrorWereFoundRollbackIsDone=发现了一些错误。 变更已回滚。 +ErrorConfigParameterNotDefined=参数%s没有在Dolibarr设定文件conf.php中定义 ErrorCantLoadUserFromDolibarrDatabase=在数据库无法找到用户%s ErrorNoVATRateDefinedForSellerCountry=错误,没有为国家'%s'设置增值税税率。 ErrorNoSocialContributionForSellerCountry=错误,没有为国家'%s'定义社会/财政税类型 ErrorFailedToSaveFile=错误,无法保存文件。 -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a existing warehouse -FieldCannotBeNegative=Field "%s" cannot be negative -MaxNbOfRecordPerPage=Max. number of records per page +ErrorCannotAddThisParentWarehouse=您正在尝试加入一个已经有子仓库的父仓库 +FieldCannotBeNegative=字段%s不能为负值 +MaxNbOfRecordPerPage=每页最多记录数量 NotAuthorized=您无权执行此操作。 SetDate=设置日期 SelectDate=请选择日期 @@ -82,17 +89,17 @@ FileRenamed=该文件已成功重命名 FileGenerated=该文件已成功生成 FileSaved=该文件已成功保存 FileUploaded=文件上传成功 -FileTransferComplete=File(s) uploaded successfully +FileTransferComplete=文件上传成功 FilesDeleted=文件已成功删除 FileWasNotUploaded=一个文件被选中的附件,但还没有上传。点击“附加文件”上传。 NbOfEntries=No. of entries GoToWikiHelpPage=阅读在线帮助文档 (需要访问外网) GoToHelpPage=阅读帮助 -DedicatedPageAvailable=Dedicated help page related to your current screen -HomePage=Home Page +DedicatedPageAvailable=与您当前屏幕相关的专用帮助页面 +HomePage=首页 RecordSaved=记录已保存 RecordDeleted=记录已删除 -RecordGenerated=Record generated +RecordGenerated=记录已生成 LevelOfFeature=权限级别 NotDefined=未定义 DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr身份验证模式在配置文件 conf.php 中设置为 %s
    这意味着密码数据库在Dolibarr外部,因此更改此字段可能无效。 @@ -102,8 +109,8 @@ PasswordForgotten=忘记密码? NoAccount=没有账号? SeeAbove=见上文 HomeArea=主页 -LastConnexion=Last login -PreviousConnexion=Previous login +LastConnexion=最后登录 +PreviousConnexion=上次登录 PreviousValue=上一个值 ConnectedOnMultiCompany=对实体连接 ConnectedSince=当前连接状态 @@ -119,14 +126,14 @@ InformationToHelpDiagnose=This information can be useful for diagnostic purposes MoreInformation=更多信息 TechnicalInformation=技术信息 TechnicalID=技术ID -LineID=Line ID +LineID=行 ID NotePublic=备注 (公开) NotePrivate=备注(私人) PrecisionUnitIsLimitedToXDecimals=Dolibarr是安装精度的限制价格单位为%s小数。 DoTest=测试 ToFilter=筛选 NoFilter=不筛选 -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +WarningYouHaveAtLeastOneTaskLate=警告,您至少有一个元素已经超过了容忍时间 yes=是 Yes=是 no=没有 @@ -163,7 +170,7 @@ Close=关闭 CloseAs=设置状态 CloseBox=将插件从你的看板中移除 Confirm=确认 -ConfirmSendCardByMail=Do you really want to send the content of this card by mail to %s? +ConfirmSendCardByMail=您真的想把这张卡片的内容邮寄给%s吗? Delete=删除 Remove=移除 Resiliate=终止 @@ -176,12 +183,12 @@ ToValidate=验证 NotValidated=未经验证 Save=保存 SaveAs=另存为 -SaveAndStay=Save and stay -SaveAndNew=Save and new +SaveAndStay=保存并留下 +SaveAndNew=保存并新增 TestConnection=测试连接 ToClone=复制 -ConfirmCloneAsk=Are you sure you want to clone the object %s? -ConfirmClone=Choose the data you want to clone: +ConfirmCloneAsk=您确定要复制这个对象%s吗? +ConfirmClone=选取你想要复制的数据: NoCloneOptionsSpecified=未定义可复制数据 Of=的 Go=下一步 @@ -193,16 +200,17 @@ ShowCardHere=显示卡片 Search=搜索 SearchOf=搜索 SearchMenuShortCut=Ctrl + shift + f -QuickAdd=Quick add +QuickAdd=快速新增 QuickAddMenuShortCut=Ctrl + shift + l Valid=有效 Approve=批准 Disapprove=不同意 ReOpen=重新开放 -Upload=Upload +OpenVerb=打开 +Upload=上传 ToLink=链接 Select=选取 -SelectAll=Select all +SelectAll=全选 Choose=选择 Resize=调整大小 ResizeOrCrop=调整大小或裁剪 @@ -212,14 +220,14 @@ User=用户 Users=用户 Group=组 Groups=群组 -UserGroup=User group -UserGroups=User groups +UserGroup=用户群组 +UserGroups=用户群组 NoUserGroupDefined=未定义用户群组 Password=密码 -PasswordRetype=重新输入您的密码 +PasswordRetype=重复您的密码 NoteSomeFeaturesAreDisabled=敬告:本演示中部分功能/模块均处于禁用状态,这是正常的请保持镇定。 Name=名称 -NameSlashCompany=Name / Company +NameSlashCompany=姓名/公司 Person=人 Parameter=参数 Parameters=参数 @@ -227,7 +235,7 @@ Value=值 PersonalValue=自定义 NewObject=新%s NewValue=新值 -OldValue=Old value %s +OldValue=旧值%s CurrentValue=当前值 Code=编码 Type=类型 @@ -242,14 +250,15 @@ Family=家庭 Description=描述 Designation=描述 DescriptionOfLine=说明线 -DateOfLine=Date of line +DateOfLine=日期行 DurationOfLine=Duration of line +ParentLine=Parent line ID Model=文档模板 DefaultModel=默认文档模板 Action=事件 About=关于 Number=数字 -NumberByMonth=Total reports by month +NumberByMonth=每月报告总数 AmountByMonth=每月金额 Numero=数字 Limit=限制 @@ -266,7 +275,7 @@ Cards=信息卡 Card=信息卡 Now=现在 HourStart=开始时间 -Deadline=Deadline +Deadline=截止日期 Date=日期 DateAndHour=日期与小时 DateToday=今天的日期 @@ -281,7 +290,7 @@ DateModificationShort=变更日期 IPModification=Modification IP DateLastModification=最后修改日期 DateValidation=验证日期 -DateSigning=Signing date +DateSigning=签名日期 DateClosing=截止日期 DateDue=截止日期 DateValue=确认日期 @@ -344,8 +353,8 @@ KiloBytes=KB MegaBytes=MB GigaBytes=GB TeraBytes=TB -UserAuthor=Ceated by -UserModif=Updated by +UserAuthor=制作: +UserModif=更新者 b=b. Kb=Kb Mb=兆 @@ -356,54 +365,54 @@ Copy=复制 Paste=粘贴 Default=默认 DefaultValue=默认值 -DefaultValues=Default values/filters/sorting +DefaultValues=默认值/过滤器/排序 Price=价格 PriceCurrency=价格(货币) UnitPrice=单价 -UnitPriceHT=Unit price (excl.) -UnitPriceHTCurrency=Unit price (excl.) (currency) +UnitPriceHT=单位价格(不包括) +UnitPriceHTCurrency=单位价格(不包括)(货币) UnitPriceTTC=单价 PriceU=单价 PriceUHT=单价(不含税) -PriceUHTCurrency=U.P (net) (currency) +PriceUHTCurrency=单价(净)(货币) PriceUTTC=单价(含税) Amount=金额 AmountInvoice=发票金额 AmountInvoiced=发票金额 -AmountInvoicedHT=Amount invoiced (excl. tax) -AmountInvoicedTTC=Amount invoiced (inc. tax) +AmountInvoicedHT=开票金额(不含税金) +AmountInvoicedTTC=开票金额(含税金) AmountPayment=付款金额 -AmountHTShort=Amount (excl.) +AmountHTShort=金额(不含) AmountTTCShort=金额(含税) -AmountHT=Amount (excl. tax) +AmountHT=金额(不含税金) AmountTTC=金额(含税) AmountVAT=增值税总金额 -MulticurrencyAlreadyPaid=Already paid, original currency +MulticurrencyAlreadyPaid=已支付,原币 MulticurrencyRemainderToPay=保持支付,原始货币 MulticurrencyPaymentAmount=付款金额,原始货币 -MulticurrencyAmountHT=Amount (excl. tax), original currency +MulticurrencyAmountHT=金额(不含税金),原币 MulticurrencyAmountTTC=金额(包括税),原始货币 MulticurrencyAmountVAT=金额税,原始货币 -MulticurrencySubPrice=Amount sub price multi currency +MulticurrencySubPrice=子价格金额,多币种 AmountLT1=税额2 AmountLT2=税额3 AmountLT1ES=RE 额 AmountLT2ES=IRPF 额 AmountTotal=总金额 AmountAverage=平均金额 -PriceQtyMinHT=Price quantity min. (excl. tax) -PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) -PercentOfOriginalObject=Percent of original object -AmountOrPercent=Amount or percent +PriceQtyMinHT=最小数量价格(不含税金) +PriceQtyMinHTCurrency=最小数量价格(不含税金)(货币) +PercentOfOriginalObject=原始对象的百分比 +AmountOrPercent=金额或百分比 Percentage=百分比 Total=总计 SubTotal=小计 -TotalHTShort=Total (excl.) -TotalHT100Short=Total 100%% (excl.) +TotalHTShort=总计(不含) +TotalHT100Short=总计100%%(不含) TotalHTShortCurrency=Total (excl. in currency) TotalTTCShort=共计(含税) -TotalHT=Total (excl. tax) -TotalHTforthispage=Total (excl. tax) for this page +TotalHT=总计(不含税金) +TotalHTforthispage=此页总计(不含税金) Totalforthispage=本页总计 TotalTTC=共计(含税) TotalTTCToYourCredit=共计(含税)你的信用 @@ -415,7 +424,7 @@ TotalLT1ES=共有再生能源 TotalLT2ES=共有IRPF TotalLT1IN=总CGST TotalLT2IN=SGST总计 -HT=Excl. tax +HT=不含税金 TTC=含增值税 INCVATONLY=含增值税 INCT=所有税收 @@ -433,7 +442,7 @@ LT1IN=CGST LT2IN=SGST LT1GC=Additionnal cents VATRate=增值税率 -RateOfTaxN=Rate of tax %s +RateOfTaxN=税率%s VATCode=税率代码 VATNPR=税率NPR DefaultTaxRate=默认税率 @@ -445,10 +454,10 @@ RemainToPay=继续付钱 Module=模块/应用程序 Modules=模块/应用 Option=选项 -Filters=Filters +Filters=过滤器 List=列表 FullList=全部列表 -FullConversation=Full conversation +FullConversation=全部转换 Statistics=统计 OtherStatistics=其他统计 Status=状态 @@ -468,7 +477,7 @@ ActionNotApplicable=不适用 ActionRunningNotStarted=等待 ActionRunningShort=进行中 ActionDoneShort=已完成 -ActionUncomplete=Incomplete +ActionUncomplete=不完整的 LatestLinkedEvents=最新的%s链接事件 CompanyFoundation=公司/组织 Accountant=会计 @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=有关此会员的事件 ActionsOnProduct=有关此产品的事件 +ActionsOnAsset=Events for this fixed asset NActionsLate=逾期 %s ToDo=未完成 Completed=已完成 @@ -517,6 +527,7 @@ or=或 Other=其他 Others=其他 OtherInformations=Other information +Workflow=工作流程 Quantity=数量 Qty=数量 ChangedBy=改变者: @@ -619,6 +630,7 @@ MonthVeryShort11=11 MonthVeryShort12=12 AttachedFiles=附件 JoinMainDoc=加入主要文件 +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -678,7 +690,7 @@ FeatureNotYetSupported=功能尚不支持 CloseWindow=关闭窗口 Response=反应 Priority=优先级 -SendByMail=Send by email +SendByMail=用电子邮件发送 MailSentBy=电子邮件发送者: NotSent=不发送 TextUsedInTheMessageBody=电子邮件正文 @@ -686,8 +698,8 @@ SendAcknowledgementByMail=发送确认邮件 SendMail=发送电子邮件 Email=电子邮件 NoEMail=没有电子邮件 -AlreadyRead=Already read -NotRead=Unread +AlreadyRead=已读取 +NotRead=未读 NoMobilePhone=没有手机号码 Owner=拥有者 FollowingConstantsWillBeSubstituted=以下常量将与相应的值代替。 @@ -709,6 +721,7 @@ FeatureDisabled=功能禁用 MoveBox=拖动插件 Offered=提供 NotEnoughPermissions=您没有这个动作的权限 +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=会话名称 Method=方法 Receive=收到 @@ -798,6 +811,7 @@ URLPhoto=照片/徽标的URL SetLinkToAnotherThirdParty=关联其他合伙人 LinkTo=链接到 LinkToProposal=链接到报价 +LinkToExpedition= Link to expedition LinkToOrder=链接到订单 LinkToInvoice=链接到发票 LinkToTemplateInvoice=Link to template invoice @@ -811,7 +825,7 @@ LinkToMo=Link to Mo CreateDraft=创建草稿 SetToDraft=返回草稿 ClickToEdit=单击“编辑” -ClickToRefresh=Click to refresh +ClickToRefresh=点击刷新 EditWithEditor=使用CKEditor编辑 EditWithTextEditor=用文本编辑器编辑 EditHTMLSource=编辑HTML源 @@ -826,7 +840,7 @@ ByDay=按天 BySalesRepresentative=按销售代表 LinkedToSpecificUsers=链接到指定的用户联系人 NoResults=没有结果 -AdminTools=Admin Tools +AdminTools=管理工具 SystemTools=系统工具 ModulesSystemTools=模块工具 Test=测试 @@ -862,17 +876,17 @@ Denied=否认 ListOf=列表%s ListOfTemplates=模板列表 Gender=性别 -Genderman=Male -Genderwoman=Female +Genderman=男性 +Genderwoman=女性 Genderother=其他 ViewList=列表视图 -ViewGantt=Gantt view -ViewKanban=Kanban view +ViewGantt=甘特图 +ViewKanban=看板图 Mandatory=强制性 Hello=你好 GoodBye=再见 Sincerely=诚恳地 -ConfirmDeleteObject=Are you sure you want to delete this object? +ConfirmDeleteObject=您确定要删除这个对象吗? DeleteLine=删除行 ConfirmDeleteLine=您确定要删除此行吗? ErrorPDFTkOutputFileNotFound=Error: the file was not generated. Please check that the 'pdftk' command is installed in a directory included in the $PATH environment variable (linux/unix only) or contact your system administrator. @@ -881,8 +895,8 @@ TooManyRecordForMassAction=Too many records selected for mass action. The action NoRecordSelected=未选定记录 MassFilesArea=批量动作生成文件区 ShowTempMassFilesArea=显示批量动作生成文件区 -ConfirmMassDeletion=Bulk Delete confirmation -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeletion=批量删除确认 +ConfirmMassDeletionQuestion=您确定要删除%s已选记录吗? RelatedObjects=关联项目 ClassifyBilled=归为已付款 ClassifyUnbilled=分类未开单 @@ -916,26 +930,27 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=下载 DownloadDocument=下载文件 +DownloadSignedDocument=Download signed document ActualizeCurrency=更新货币汇率 Fiscalyear=财务年度 ModuleBuilder=Module and Application Builder SetMultiCurrencyCode=设置货币 BulkActions=批量行动 ClickToShowHelp=单击以显示工具提示帮助 -WebSite=Website +WebSite=网站 WebSites=网站 -WebSiteAccounts=Website accounts +WebSiteAccounts=网站帐号 ExpenseReport=费用报表 ExpenseReports=费用报表 HR=HR HRAndBank=人力资源和银行 AutomaticallyCalculated=自动计算 TitleSetToDraft=回到草案 -ConfirmSetToDraft=Are you sure you want to go back to Draft status? +ConfirmSetToDraft=您确定要返回草稿状态吗? ImportId=导入ID Events=事件 -EMailTemplates=Email templates -FileNotShared=File not shared to external public +EMailTemplates=电子邮件模板 +FileNotShared=未向外部公众分享的文件 Project=项目 Projects=项目 LeadOrProject=Lead | Project @@ -1028,11 +1043,11 @@ SearchIntoUsers=用户 SearchIntoProductsOrServices=产品或服务 SearchIntoBatch=Lots / Serials SearchIntoProjects=项目 -SearchIntoMO=Manufacturing Orders +SearchIntoMO=制造业订单 SearchIntoTasks=任务 SearchIntoCustomerInvoices=客户发票 SearchIntoSupplierInvoices=供应商发票 -SearchIntoCustomerOrders=Sales orders +SearchIntoCustomerOrders=销售订单 SearchIntoSupplierOrders=订单 SearchIntoCustomerProposals=报价单 SearchIntoSupplierProposals=供应商提案 @@ -1041,9 +1056,10 @@ SearchIntoContracts=合同 SearchIntoCustomerShipments=客户运输 SearchIntoExpenseReports=费用报表 SearchIntoLeaves=Leave +SearchIntoKM=知识库 SearchIntoTickets=票据 SearchIntoCustomerPayments=Customer payments -SearchIntoVendorPayments=Vendor payments +SearchIntoVendorPayments=供应商付款 SearchIntoMiscPayments=杂项付款 CommentLink=说明 NbComments=评论数量 @@ -1115,7 +1131,7 @@ NotUsedForThisCustomer=Not used for this customer AmountMustBePositive=Amount must be positive ByStatus=By status InformationMessage=信息 -Used=Used +Used=已使用 ASAP=As Soon As Possible CREATEInDolibarr=Record %s created MODIFYInDolibarr=Record %s modified @@ -1132,19 +1148,33 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=税率 +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation -ConfirmMassEnablingQuestion=Are you sure you want to enable the %s selected record(s)? +ConfirmMassEnablingQuestion=您确定要启用%s选定的记录吗? ConfirmMassDisabling=mass disabling confirmation ConfirmMassDisablingQuestion=Are you sure you want to disable the %s selected record(s)? RecordsEnabled=%s record(s) enabled @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=内部用户 +ExternalUser=外部用户 diff --git a/htdocs/langs/zh_CN/margins.lang b/htdocs/langs/zh_CN/margins.lang index 00c7c495b89..7c550e822bf 100644 --- a/htdocs/langs/zh_CN/margins.lang +++ b/htdocs/langs/zh_CN/margins.lang @@ -16,7 +16,7 @@ MarginDetails=利润明细 ProductMargins=产品利润 CustomerMargins=客户利润 SalesRepresentativeMargins=销售代表利润率 -ContactOfInvoice=Contact of invoice +ContactOfInvoice=发票联系人 UserMargins=用户利润 ProductService=产品或服务 AllProducts=全部产品和服务 diff --git a/htdocs/langs/zh_CN/members.lang b/htdocs/langs/zh_CN/members.lang index c175a16fa82..395a0427d70 100644 --- a/htdocs/langs/zh_CN/members.lang +++ b/htdocs/langs/zh_CN/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=另一名成员 (名称: %s ErrorUserPermissionAllowsToLinksToItselfOnly=出于安全原因,您必须被授予权限编辑所有用户能够连接到用户的成员是不是你的。 SetLinkToUser=用户链接到Dolibarr SetLinkToThirdParty=链接到Dolibarr合作方 +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=会员列表 MembersListToValid=准会员 (待验证)列表 @@ -34,8 +35,10 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=会员ID +WithoutSubscription=Without membership +WaitingSubscription=Membership pending +MemberId=Member Id +MemberRef=Member Ref NewMember=新会员 MemberType=会员类型 MemberTypeId=会员类型ID @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=成员类型无法删除 NewSubscription=新的捐献 NewSubscriptionDesc=这种形式可以让你记录你的订阅为基础的新会员。如果你想续订(如果已经是会员),请联系,而不是通过电子邮件%s 机构董事会。 Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=为期 +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=逾期 SubscriptionNotReceived=Contribution never received @@ -135,7 +144,7 @@ CardContent=内容您的会员卡 # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=我们希望通知您收到了您的会员资格请求。

    ThisIsContentOfYourMembershipWasValidated=我们希望通过以下信息通知您,您的会员资格已经过验证:

    -ThisIsContentOfYourSubscriptionWasRecorded=我们希望通知您,您的新订阅已被记录。

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.

    ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the notification email received in case of auto-inscription of a guest @@ -198,8 +207,10 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=营业额(公司)或财政预算案(基础) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=集成在线支付页面跳转 +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=对应的总金额为%s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=自然地 MembersStatisticsByProperties=成员统计数据 VATToUseForSubscriptions=VAT rate to use for contributionss @@ -218,3 +229,6 @@ XExternalUserCreated=%s external user(s) created ForceMemberNature=Force member nature (Individual or Corporation) CreateDolibarrLoginDesc=The creation of a user login for members allows them to connect to the application. Depending on the authorizations granted, they will be able, for example, to consult or modify their file themselves. CreateDolibarrThirdPartyDesc=A thirdparty is the legal entity that will be used on the invoice if you decide to generate invoice for each contribution. You will be able to create it later during the process of recording the contribution. +MemberFirstname=Member firstname +MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/zh_CN/modulebuilder.lang b/htdocs/langs/zh_CN/modulebuilder.lang index c159cdfafd9..782cd6248a3 100644 --- a/htdocs/langs/zh_CN/modulebuilder.lang +++ b/htdocs/langs/zh_CN/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=This tool must be used only by experienced users or developers. It provides utilities to build or edit your own module. Documentation for alternative manual development is here. EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s ModuleBuilderDesc3=找到生成/可编辑的模块: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=当模块目录的根目录中存在 %s 文 NewModule=新模块 NewObjectInModulebuilder=New object NewDictionary=New dictionary +ModuleName=Module name ModuleKey=模块名 ObjectKey=对象名 DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=zip /模块/应用程序包的路径 PathToModuleDocumentation=Path to file of module/application documentation (%s) SpaceOrSpecialCharAreNotAllowed=不允许使用空格或特殊字符。 FileNotYetGenerated=文件尚未生成 +GenerateCode=Generate code RegenerateClassAndSql=Force update of .class and .sql files RegenerateMissingFiles=生成丢失的文件 SpecificationFile=File of documentation LanguageFile=语言文件 ObjectProperties=Object Properties +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=Are you sure you want to delete the property %s? This will change code in PHP class but also remove column from table definition of object. NotNull=不是NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=是衡量标准 DirScanned=扫描目录 NoTrigger=没有触发器 NoWidget=无插件 -GoToApiExplorer=API explorer +ApiExplorer=API explorer ListOfMenusEntries=菜单条目列表 ListOfDictionariesEntries=List of dictionaries entries ListOfPermissionsDefined=已定义权限的列表 SeeExamples=见这里的例子 -EnabledDesc=激活此字段的条件(示例:1 或 $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing).

    It can be an expression, for example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    Currently, known compatibles PDF models are : eratosthene (order), espadon (ship), sponge (invoices), cyan (propal/quotation), cornas (supplier order)

    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty -DisplayOnPdf=Display on PDF +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0) SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0) SpecDefDesc=在此输入您要为模块提供的所有文档,这些文档尚未由其他选项卡定义。您可以使用.md或更好的.asciidoc语法。 @@ -130,26 +136,32 @@ UseSpecificEditorURL = Use a specific editor URL UseSpecificFamily = Use a specific family UseSpecificAuthor = Use a specific author UseSpecificVersion = Use a specific initial version -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record. -ShowOnCombobox=Show value into combobox +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Key for tooltip CSSClass=CSS for edit/create form CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Not editable ForeignKey=Foreign key -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Ascii to HTML converter AsciiToPdfConverter=Ascii to PDF converter TableNotEmptyDropCanceled=Table not empty. Drop has been canceled. ModuleBuilderNotAllowed=The module builder is available but not allowed to your user. ImportExportProfiles=Import and export profiles -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/zh_CN/mrp.lang b/htdocs/langs/zh_CN/mrp.lang index afbb5672376..e29b12b51a0 100644 --- a/htdocs/langs/zh_CN/mrp.lang +++ b/htdocs/langs/zh_CN/mrp.lang @@ -1,109 +1,120 @@ -Mrp=Manufacturing Orders -MOs=Manufacturing orders -ManufacturingOrder=Manufacturing Order -MRPDescription=Module to manage production and Manufacturing Orders (MO). -MRPArea=MRP Area -MrpSetupPage=Setup of module MRP -MenuBOM=Bills of material -LatestBOMModified=Latest %s Bills of materials modified -LatestMOModified=Latest %s Manufacturing Orders modified -Bom=Bills of Material -BillOfMaterials=Bill of Materials -BillOfMaterialsLines=Bill of Materials lines -BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=List of Manufacturing Orders -NewBOM=New bill of materials -ProductBOMHelp=Product to create (or disassemble) with this BOM.
    Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. -BOMsNumberingModules=BOM numbering templates -BOMsModelModule=BOM document templates -MOsNumberingModules=MO numbering templates -MOsModelModule=MO document templates -FreeLegalTextOnBOMs=Free text on document of BOM -WatermarkOnDraftBOMs=Watermark on draft BOM -FreeLegalTextOnMOs=Free text on document of MO -WatermarkOnDraftMOs=Watermark on draft MO -ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? -ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? -ManufacturingEfficiency=Manufacturing efficiency -ConsumptionEfficiency=Consumption efficiency -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly -ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product -DeleteBillOfMaterials=Delete Bill Of Materials -DeleteMo=Delete Manufacturing Order -ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? -MenuMRP=Manufacturing Orders -NewMO=New Manufacturing Order -QtyToProduce=Qty to produce -DateStartPlannedMo=Date start planned -DateEndPlannedMo=Date end planned -KeepEmptyForAsap=Empty means 'As Soon As Possible' -EstimatedDuration=Estimated duration -EstimatedDurationDesc=Estimated duration to manufacture (or disassemble) this product using this BOM +Mrp=制造订单 +MOs=制造订单 +ManufacturingOrder=制造订单 +MRPDescription=管理生产和制造订单(MO)的模块 +MRPArea=MRP区 +MrpSetupPage=MRP模块设置 +MenuBOM=物料清单 +LatestBOMModified=最新的%s编辑过的物料清单 +LatestMOModified=最新的%s编辑过的制造订单 +Bom=物料清单 +BillOfMaterials=物料清单 +BillOfMaterialsLines=物料清单行 +BOMsSetup=BOM模块设置 +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=制造订单 +NewBOM=新物料清单 +ProductBOMHelp=用此物料清单创建(或拆卸)的产品。
    注:属性为'产品性质'='原材料'的产品在此列表中不可见。 +BOMsNumberingModules=物料清单编号模板 +BOMsModelModule=物料清单文档模块 +MOsNumberingModules=制造订单编号模板 +MOsModelModule=制造订单文档模板 +FreeLegalTextOnBOMs=物料清单文档上的自由文本 +WatermarkOnDraftBOMs=物料清单草稿上的水印 +FreeLegalTextOnMOs=制造订单文档上的自由文本 +WatermarkOnDraftMOs=制造订单草稿上的水印 +ConfirmCloneBillOfMaterials=您确定要复制物料清单%s吗? +ConfirmCloneMo=您确认要复制制造订单%s吗? +ManufacturingEfficiency=制造效率 +ConsumptionEfficiency=消耗效率 +Consumption=Consumption +ValueOfMeansLoss=0.95的值意味着在制造或拆卸过程中的平均损失为5%%。 +ValueOfMeansLossForProductProduced=0.95的值意味着生产产品的平均损失为5%% +DeleteBillOfMaterials=删除物料清单 +DeleteMo=删除制造订单 +ConfirmDeleteBillOfMaterials=您确定要删除此物料清单吗? +ConfirmDeleteMo=您确定要删除此制造订单吗? +MenuMRP=制造订单 +NewMO=新制造订单 +QtyToProduce=生产数量 +DateStartPlannedMo=计划开始日期 +DateEndPlannedMo=计划结束日期 +KeepEmptyForAsap=空白表示“尽快” +EstimatedDuration=估计时间 +EstimatedDurationDesc=使用此BOM制造(或拆卸)此产品的估计时间 ConfirmValidateBom=Are you sure you want to validate the BOM with the reference %s (you will be able to use it to build new Manufacturing Orders) -ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? -ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) -StatusMOProduced=Produced -QtyFrozen=Frozen Qty -QuantityFrozen=Frozen Quantity +ConfirmCloseBom=您确定要取消此物料清单(您将无法再使用它来建立新制造订单)? +ConfirmReopenBom=您确定要重新打开此物料清单(您将能够使用它来建立新制造订单)? +StatusMOProduced=已生产 +QtyFrozen=冻结数量 +QuantityFrozen=冻结数量 QuantityConsumedInvariable=When this flag is set, the quantity consumed is always the value defined and is not relative to the quantity produced. -DisableStockChange=Stock change disabled +DisableStockChange=库存修改已禁用 DisableStockChangeHelp=When this flag is set, there is no stock change on this product, whatever is the quantity consumed BomAndBomLines=Bills Of Material and lines BOMLine=Line of BOM -WarehouseForProduction=Warehouse for production -CreateMO=Create MO -ToConsume=To consume -ToProduce=To produce -ToObtain=To obtain -QtyAlreadyConsumed=Qty already consumed -QtyAlreadyProduced=Qty already produced -QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%) -ConsumeOrProduce=Consume or Produce -ConsumeAndProduceAll=Consume and Produce All -Manufactured=Manufactured -TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce. +WarehouseForProduction=生产仓库 +CreateMO=创建生产订单 +ToConsume=消耗 +ToProduce=生产 +ToObtain=获得 +QtyAlreadyConsumed=已消耗数量 +QtyAlreadyProduced=已生产数量 +QtyRequiredIfNoLoss=如果没有损失需要的数量(制造效率为100%%)。 +ConsumeOrProduce=消耗或生产 +ConsumeAndProduceAll=消耗和生产所有产品 +Manufactured=已制造 +TheProductXIsAlreadyTheProductToProduce=要增加的产品已经是要生产的产品 ForAQuantityOf=For a quantity to produce of %s ForAQuantityToConsumeOf=For a quantity to disassemble of %s ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. -ProductionForRef=Production of %s -AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached +ProductionForRef=%s的生产 +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=删除行和恢复库存移库 +AutoCloseMO=如果达到消耗和生产的数量,自动关闭制造订单 NoStockChangeOnServices=No stock change on services ProductQtyToConsumeByMO=Product quantity still to consume by open MO ProductQtyToProduceByMO=Product quantity still to produce by open MO AddNewConsumeLines=Add new line to consume AddNewProduceLines=Add new line to produce -ProductsToConsume=Products to consume -ProductsToProduce=Products to produce -UnitCost=Unit cost -TotalCost=Total cost +ProductsToConsume=消耗的产品 +ProductsToProduce=生产的产品 +UnitCost=单位成本 +TotalCost=总成本 BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) -GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. +BOMTotalCostService=如果 "工作站 "模块被激活,并且线路上默认定义了一个工作站,那么计算方法是 "数量(换算成小时)x工作站ahr",否则是 "数量(换算成小时)x服务的成本价格" +GoOnTabProductionToProduceFirst=您必须先开始生产,才能关闭制造订单(见标签'%s'),但是您可以取消它。 ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO -Workstation=Workstation -Workstations=Workstations -WorkstationsDescription=Workstations management -WorkstationSetup = Workstations setup -WorkstationSetupPage = Workstations setup page -WorkstationList=Workstation list -WorkstationCreate=Add new workstation -ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? -EnableAWorkstation=Enable a workstation -ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? -DisableAWorkstation=Disable a workstation +Workstation=工作站 +Workstations=工作站 +WorkstationsDescription=工作站管理 +WorkstationSetup = 工作站设置 +WorkstationSetupPage = 工作站设置页面 +WorkstationList=工作站清单 +WorkstationCreate=新增工作站 +ConfirmEnableWorkstation=您确定要启用工作站%s吗? +EnableAWorkstation=启用工作站 +ConfirmDisableWorkstation=您确定停用工作站%s吗? +DisableAWorkstation=停用工作站 DeleteWorkstation=删除 -NbOperatorsRequired=Number of operators required +NbOperatorsRequired=需要的操作人员数量 THMOperatorEstimated=Estimated operator THM THMMachineEstimated=Estimated machine THM -WorkstationType=Workstation type -Human=Human -Machine=Machine -HumanMachine=Human / Machine -WorkstationArea=Workstation area -Machines=Machines +WorkstationType=工作站类型 +Human=人员 +Machine=机器 +HumanMachine=人员/机器 +WorkstationArea=工作站区域 +Machines=机器 THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item -BOM=Bill Of Materials +BOM=物料清单 CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module MOAndLines=Manufacturing Orders and lines +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/zh_CN/multicurrency.lang b/htdocs/langs/zh_CN/multicurrency.lang index 4f05cd491b6..4334211ff7d 100644 --- a/htdocs/langs/zh_CN/multicurrency.lang +++ b/htdocs/langs/zh_CN/multicurrency.lang @@ -1,20 +1,38 @@ # Dolibarr language file - Source file is en_US - multicurrency -MultiCurrency=Multi currency -ErrorAddRateFail=Error in added rate -ErrorAddCurrencyFail=Error in added currency -ErrorDeleteCurrencyFail=Error delete fail -multicurrency_syncronize_error=Synchronisation error: %s -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) +MultiCurrency=多币种 +ErrorAddRateFail=添加汇率出错 +ErrorAddCurrencyFail=添加货币时出错 +ErrorDeleteCurrencyFail=错误删除失败 +multicurrency_syncronize_error=同步错误:%s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=使用文档的日期来查找货币汇率,而不是使用最新的已知汇率 +multicurrency_useOriginTx=当从另一个对象创建对象时,请保留源对象的原始汇率(否则使用最新的已知汇率) CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month -multicurrency_appId=API key -multicurrency_appCurrencySource=Currency source -multicurrency_alternateCurrencySource=Alternate currency source -CurrenciesUsed=Currencies used -CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. -rate=rate -MulticurrencyReceived=Received, original currency -MulticurrencyRemainderToTake=Remaining amout, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -AmountToOthercurrency=Amount To (in currency of receiving account) +CurrencyLayerAccount_help_to_synchronize=您必须在网站%s创建账户来使用这功能。
    获取您的API密钥
    如果您使用免费账户,您不能改变源货币(默认为 USD)。
    如果您的主要货币不是 USD,应用程序会自动重新计算。

    您每月只能进行1000次同步。 +multicurrency_appId=API密钥 +multicurrency_appCurrencySource=源货币 +multicurrency_alternateCurrencySource=替代源货币 +CurrenciesUsed=使用的货币 +CurrenciesUsed_help_to_add=添加您需要使用在您的报价订单等等上的不同货币和汇率。 +rate=汇率 +MulticurrencyReceived=收到的原始货币 +MulticurrencyRemainderToTake=剩余金额,原始货币 +MulticurrencyPaymentAmount=付款金额,原始货币 +AmountToOthercurrency=金额(以接收帐户的货币计算) +CurrencyRateSyncSucceed=货币汇率成功完成同步 +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=使用文档中的货币进行在线支付 +TabTitleMulticurrencyRate=汇率列表 +ListCurrencyRate=货币的兑换率列表 +CreateRate=创建汇率 +FormCreateRate=汇率创建 +FormUpdateRate=汇率修改 +successRateCreate=货币汇率%s已被添加到数据库 +ConfirmDeleteLineRate=您确定要移除%s日期的货币%s的%s汇率吗? +DeleteLineRate=清除汇率 +successRateDelete=汇率已删除 +errorRateDelete=删除汇率时出现错误 +successUpdateRate=所作的修改 +ErrorUpdateRate=改变汇率时出错 +Codemulticurrency=货币代码 +UpdateRate=改变汇率 +CancelUpdate=取消 +NoEmptyRate=汇率字段必须不能为空 diff --git a/htdocs/langs/zh_CN/oauth.lang b/htdocs/langs/zh_CN/oauth.lang index ec78fca0783..324f13941fd 100644 --- a/htdocs/langs/zh_CN/oauth.lang +++ b/htdocs/langs/zh_CN/oauth.lang @@ -9,12 +9,13 @@ HasAccessToken=一个token已生成并保存到本地数据库 NewTokenStored=令牌收到并保存 ToCheckDeleteTokenOnProvider=点击此处查看/删除%s OAuth提供商保存的授权 TokenDeleted=删除Token -RequestAccess=单击此处请求/续订访问权限并接收要保存的新令牌 +RequestAccess=Click here to request/renew access and receive a new token DeleteAccess=点击这里删除token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider: -ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=用于生成OAuth令牌的页面 +ListOfSupportedOauthProviders=Add your OAuth2 token providers. Then, go on your OAuth provider admin page to create/get an OAuth ID and Secret and save them here. Once done, switch on the other tab to generate your token. +OAuthSetupForLogin=Page to manage (generate/delete) OAuth tokens SeePreviousTab=见上一个标签 +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID和秘密 TOKEN_REFRESH=令牌刷新存在 TOKEN_EXPIRED=令牌已过期 @@ -23,10 +24,13 @@ TOKEN_DELETE=删除已保存的Token OAUTH_GOOGLE_NAME=OAuth Google service OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=Go to this page then "Credentials" to create OAuth credentials OAUTH_GITHUB_NAME=OAuth GitHub service OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_URL_FOR_CREDENTIAL=Go to this page to create or get your OAuth ID and Secret OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth secret +OAuthProviderAdded=OAuth provider added +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=An OAuth entry for this provider and label already exists diff --git a/htdocs/langs/zh_CN/opensurvey.lang b/htdocs/langs/zh_CN/opensurvey.lang index 25af249d27c..8d928c0d5a2 100644 --- a/htdocs/langs/zh_CN/opensurvey.lang +++ b/htdocs/langs/zh_CN/opensurvey.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - opensurvey Survey=调查 Surveys=调查 -OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select the type of poll... +OrganizeYourMeetingEasily=轻松组织您的会议和问卷,首先选择问卷类型…… NewSurvey=新建调查 OpenSurveyArea=调查问卷区 AddACommentForPoll=您可以在民意调查中添加评论...... @@ -11,7 +11,7 @@ PollTitle=调查问卷标题 ToReceiveEMailForEachVote=每次投票均接收邮件 TypeDate=日期类型 TypeClassic=标准类型 -OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +OpenSurveyStep2=在空闲日期 (灰色) 中选择您的日期,所选日期为绿色。您可以再次点击之前选择的日子来取消选择。 RemoveAllDays=移除全部日期 CopyHoursOfFirstDay=复制首日时数 RemoveAllHours=删除所有小时 @@ -35,7 +35,7 @@ TitleChoice=选择标签 ExportSpreadsheet=导出电子表格结果 ExpireDate=限定日期 NbOfSurveys=调查问卷数量 -NbOfVoters=No. of voters +NbOfVoters=投票人数 SurveyResults=结果 PollAdminDesc=你有权限通过 "编辑"菜单来变更全部投票详细. 你也可以 , 移除 %s. 你更可以添加 %s. 5MoreChoices=5 个以上选择 @@ -48,10 +48,10 @@ AddEndHour=添加结束时间 votes=调查(s) NoCommentYet=这个调查投票问卷没有评论 CanComment=投票者可评论该投票 -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +YourVoteIsPrivate=这次问卷是私人的,没有人可以看到您的投票。 +YourVoteIsPublic=这次问卷是公开的,任何有链接的人都能看到您的投票。 CanSeeOthersVote=投票者可查看其他人的投票 -SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:
    - empty,
    - "8h", "8H" or "8:00" to give a meeting's start hour,
    - "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
    - "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +SelectDayDesc=对于每个选定的一天,您可以选择或不选择以下格式的会议时间:
    -空,
    -“8h”,“8H”或“8:00”给会议的开始时间,
    -“8-11”,“8h-11h”,“8h-11H”或“8:00-11:00”给会议的开始和结束时间,
    -“8h15-11h15”,“8H15-11h15”或“8:15-11:15”做同样的事情,但要加上分钟。 BackToCurrentMonth=回到当前月份 ErrorOpenSurveyFillFirstSection=您尚未填写投票创建的第一部分 ErrorOpenSurveyOneChoice=输入至少一个选项 diff --git a/htdocs/langs/zh_CN/orders.lang b/htdocs/langs/zh_CN/orders.lang index 17d57a38d7c..9be3bc19ed9 100644 --- a/htdocs/langs/zh_CN/orders.lang +++ b/htdocs/langs/zh_CN/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=An order was already open linked to this proposal, so no other order was created automatically OrdersArea=客户订单区 SuppliersOrdersArea=采购订单区 OrderCard=订单信息 @@ -12,18 +13,18 @@ OrderDateShort=订单日期 OrderToProcess=待处理订单 NewOrder=新订单 NewSupplierOrderShort=新订单 -NewOrderSupplier=New Purchase Order +NewOrderSupplier=新的采购订单 ToOrder=订单填写 MakeOrder=订单填写 SupplierOrder=采购订单 SuppliersOrders=采购订单 -SaleOrderLines=Sales order lines -PurchaseOrderLines=Puchase order lines +SaleOrderLines=销售订单行 +PurchaseOrderLines=采购订单行 SuppliersOrdersRunning=当前采购订单 -CustomerOrder=Sales Order -CustomersOrders=Sales Orders -CustomersOrdersRunning=Current sales orders -CustomersOrdersAndOrdersLines=Sales orders and order details +CustomerOrder=销售订单 +CustomersOrders=销售订单 +CustomersOrdersRunning=当前销售订单 +CustomersOrdersAndOrdersLines=销售订单和订单详情 OrdersDeliveredToBill=Sales orders delivered to bill OrdersToBill=Sales orders delivered OrdersInProcess=Sales orders in process @@ -68,6 +69,8 @@ CreateOrder=创建订单 RefuseOrder=拒绝订单 ApproveOrder=批准订单 Approve2Order=批准订单(第二级) +UserApproval=User for approval +UserApproval2=User for approval (second level) ValidateOrder=验证订单 UnvalidateOrder=未验证订单 DeleteOrder=删除订单 @@ -75,15 +78,15 @@ CancelOrder=取消订单 OrderReopened= Order %s re-open AddOrder=创建订单 AddSupplierOrderShort=创建订单 -AddPurchaseOrder=Create purchase order +AddPurchaseOrder=创建采购订单 AddToDraftOrders=添加订单草稿 ShowOrder=显示订单 OrdersOpened=处理订单 NoDraftOrders=没有订单草稿 NoOrder=空空如也——没有订单 NoSupplierOrder=没有采购订单 -LastOrders=Latest %s sales orders -LastCustomerOrders=Latest %s sales orders +LastOrders=最新%s销售订单 +LastCustomerOrders=最新%s销售订单 LastSupplierOrders=最新%s采购订单 LastModifiedOrders=最近变更的 %s 份订单 AllOrders=所有的订单 @@ -102,6 +105,8 @@ ConfirmCancelOrder=您确定要取消此订单吗? ConfirmMakeOrder=您确定要确认是否在 %s 上确认了此订单? GenerateBill=生成发票 ClassifyShipped=归类"已交付" +PassedInShippedStatus=classified delivered +YouCantShipThis=I can't classify this. Please check user permissions DraftOrders=订单草稿 DraftSuppliersOrders=采购订单草稿 OnProcessOrders=处理中订单 @@ -148,9 +153,9 @@ OrderByWWW=在线 OrderByPhone=电话 # Documents models PDFEinsteinDescription=A complete order model (old implementation of Eratosthene template) -PDFEratostheneDescription=A complete order model +PDFEratostheneDescription=完整的订单模型 PDFEdisonDescription=一份简单的订购模式 -PDFProformaDescription=A complete Proforma invoice template +PDFProformaDescription=完整的形式发票模板 CreateInvoiceForThisCustomer=计费订单 CreateInvoiceForThisSupplier=计费订单 CreateInvoiceForThisReceptions=Bill receptions @@ -182,7 +187,7 @@ StatusSupplierOrderApprovedShort=已获批准 StatusSupplierOrderRefusedShort=已被拒绝 StatusSupplierOrderToProcessShort=待处理 StatusSupplierOrderReceivedPartiallyShort=部分收到 -StatusSupplierOrderReceivedAllShort=Products received +StatusSupplierOrderReceivedAllShort=收到的产品 StatusSupplierOrderCanceled=已取消 StatusSupplierOrderDraft=草稿(需要确认) StatusSupplierOrderValidated=批准 @@ -193,4 +198,4 @@ StatusSupplierOrderToBill=已递送 StatusSupplierOrderApproved=已获批准 StatusSupplierOrderRefused=已被拒绝 StatusSupplierOrderReceivedPartially=部分收到 -StatusSupplierOrderReceivedAll=All products received +StatusSupplierOrderReceivedAll=所有收到的产品 diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang index 9850b9ff10e..6af54c9c3d2 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=验证客户的建议 Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=通过邮件发送的商业报价 Notify_WITHDRAW_TRANSMIT=传输撤军 Notify_WITHDRAW_CREDIT=信贷撤离 @@ -181,6 +183,7 @@ SizeUnitfoot=脚 SizeUnitpoint=点 BugTracker=bug跟踪系统 SendNewPasswordDesc=此表单允许您请求新密码。它将被发送到您的电子邮件地址。
    一旦您点击电子邮件中的确认链接,更改将生效。
    检查您的收件箱。 +EnterNewPasswordHere=Enter your new password here BackToLoginPage=返回登陆界面 AuthenticationDoesNotAllowSendNewPassword=认证模式为%s。
    在这种模式下,Dolibarr不能知道,也不更改密码。
    联系您的系统管理员,如果您想更改您的密码。 EnableGDLibraryDesc=这个选项安装或启用PHP的GD支持库。 @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = 关闭 Autofill = Autofill + +# externalsite +ExternalSiteSetup=设置链接到外部网站 +ExternalSiteURL=HTML 框架内容的外部网站链接 +ExternalSiteModuleNotComplete=外部网站模块配置不正确。 +ExampleMyMenuEntry=我的菜单选项 + +# ftp +FTPClientSetup=FTP 或 SFTP 客户端模块设置 +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=这屏幕显示 FTP 或 SFTP 服务器的视图 +SetupOfFTPClientModuleNotComplete=FTP 或 SFTP 客户端模块的设置似乎不完整 +FTPFeatureNotSupportedByYourPHP=您的 PHP 不支持 FTP 或 SFTP 功能 +FailedToConnectToFTPServer=连接服务器失败 (服务器%s,端口%s) +FailedToConnectToFTPServerWithCredentials=使用定义的登录名/密码登录服务器失败 +FTPFailedToRemoveFile=无法删除文件%s。 +FTPFailedToRemoveDir=移除目录%s失败:检查权限和目录为空。 +FTPPassiveMode=被动模式 +ChooseAFTPEntryIntoMenu=从菜单中选择一个FTP/FTPS站点… +FailedToGetFile=获取文件失败 %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/zh_CN/partnership.lang b/htdocs/langs/zh_CN/partnership.lang index 53cfd3349be..ac470d86204 100644 --- a/htdocs/langs/zh_CN/partnership.lang +++ b/htdocs/langs/zh_CN/partnership.lang @@ -19,7 +19,8 @@ ModulePartnershipName=Partnership management PartnershipDescription=Module Partnership management PartnershipDescriptionLong= Module Partnership management -Partnership=Partnership +Partnership=合伙 +Partnerships=Partnerships AddPartnership=Add partnership CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions PartnershipCheckBacklink=Partnership: Check referring backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnership: Check referring backlink # Menu # NewPartnership=New Partnership +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=List of partnership # @@ -42,6 +44,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks to check PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb of days before cancelling status of a partnership when a subscription has expired ReferingWebsiteCheck=Check of website referring ReferingWebsiteCheckDesc=You can enable a feature to check that your partners has added a backlink to your website domains on their own website. +PublicFormRegistrationPartnerDesc=Dolibarr can provide you a public URL/website to allow external visitors to request to be part of the partnership program. # # Object @@ -59,6 +62,12 @@ BacklinkNotFoundOnPartnerWebsite=Backlink not found on partner website ConfirmClosePartnershipAsk=Are you sure you want to cancel this partnership? PartnershipType=Partnership type PartnershipRefApproved=Partnership %s approved +KeywordToCheckInWebsite=If you want to check that a given keyword is present into the website of each partner, define this keyword here +PartnershipDraft=草稿 +PartnershipAccepted=接受 +PartnershipRefused=已被拒绝 +PartnershipCanceled=已取消 +PartnershipManagedFor=Partners are # # Template Mail @@ -82,11 +91,6 @@ CountLastUrlCheckError=Number of errors for last URL check LastCheckBacklink=Date of last URL check ReasonDeclineOrCancel=Decline reason -# -# Status -# -PartnershipDraft=草稿 -PartnershipAccepted=接受 -PartnershipRefused=已被拒绝 -PartnershipCanceled=已取消 -PartnershipManagedFor=Partners are +NewPartnershipRequest=New partnership request +NewPartnershipRequestDesc=This form allows you to request to be part of one of our partnership program. If you need help to fill this form, please contact by email %s. + diff --git a/htdocs/langs/zh_CN/paybox.lang b/htdocs/langs/zh_CN/paybox.lang index 96ae9775047..15d81385ed1 100644 --- a/htdocs/langs/zh_CN/paybox.lang +++ b/htdocs/langs/zh_CN/paybox.lang @@ -1,31 +1,30 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=PayBox模块设置 -PayBoxDesc=该模块提供的网页,以便在付款Paybox客户。这可以用来为一个自由付款或就某一Dolibarr对象(发票,订货,付款...) +PayBoxDesc=该模块提供页面,允许客户在Paybox付款。这可以用于免费付款或给特定的 Dolibarr 对象 (发票、订单……) 付款 FollowingUrlAreAvailableToMakePayments=以下网址可提供给客户的网页上,能够作出Dolibarr支付对象 -PaymentForm=付款方式 -WelcomeOnPaymentPage=Welcome to our online payment service +PaymentForm=付款表单 +WelcomeOnPaymentPage=欢迎使用我们的在线付款服务 ThisScreenAllowsYouToPay=这个屏幕允许你进行网上支付%s。 ThisIsInformationOnPayment=这是在做付款信息 ToComplete=要完成 YourEMail=付款确认的电子邮件 Creditor=债权人 PaymentCode=付款代码 -PayBoxDoPayment=Pay with Paybox +PayBoxDoPayment=使用 Paybox 付款 YouWillBeRedirectedOnPayBox=您将被重定向担保Paybox页,输入您的信用卡信息 Continue=下一个 -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. +SetupPayBoxToHavePaymentCreatedAutomatically=用网站链接%s设置您的 Paybox,以便当用 Paybox 验证时自动创建付款。 YourPaymentHasBeenRecorded=本页面确认您的付款已记录。谢谢。 -YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you. +YourPaymentHasNotBeenRecorded=您的付款尚未记录和交易已取消。谢谢。 AccountParameter=帐户参数 UsageParameter=使用参数 InformationToFindParameters=帮助,找到你的%s帐户信息 PAYBOX_CGI_URL_V2=钱箱付款CGI模块的调用地址 -VendorName=供应商名称 CSSUrlForPaymentForm=付款方式的CSS样式表的URL NewPayboxPaymentReceived=新建收款钱箱 NewPayboxPaymentFailed=尝试新建收款钱箱失败 -PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail) +PAYBOX_PAYONLINE_SENDEMAIL=付款尝试以后的电子邮件通知 (成功或失败) PAYBOX_PBX_SITE=PBX SITE参数值 PAYBOX_PBX_RANG=PBX Rang参数值 PAYBOX_PBX_IDENTIFIANT=PBX ID参数值 -PAYBOX_HMAC_KEY=HMAC key +PAYBOX_HMAC_KEY=HMAC 密钥 diff --git a/htdocs/langs/zh_CN/paypal.lang b/htdocs/langs/zh_CN/paypal.lang index 596f40f636e..f26e3f1fb9a 100644 --- a/htdocs/langs/zh_CN/paypal.lang +++ b/htdocs/langs/zh_CN/paypal.lang @@ -1,22 +1,22 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=贝宝模块的设置 -PaypalDesc=This module allows payment by customers via PayPal. This can be used for a ad-hoc payment or for a payment related to a Dolibarr object (invoice, order, ...) -PaypalOrCBDoPayment=Pay with PayPal (Card or PayPal) -PaypalDoPayment=Pay with PayPal +PaypalDesc=该模块允许客户通过PayPal付款。这可用于临时付款或与 Dolibarr 对象相关的付款 (发票、订单……) +PaypalOrCBDoPayment=使用 PayPal 付款 (信用卡或 PayPal) +PaypalDoPayment=使用 PayPal 付款 PAYPAL_API_SANDBOX=测试/沙箱模式 PAYPAL_API_USER=API的用户名 PAYPAL_API_PASSWORD=API密码 PAYPAL_API_SIGNATURE=API签名 PAYPAL_SSLVERSION=Curl SSL 版本 -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer "integral" payment (Credit card+PayPal) or "PayPal" only +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=提供“整体”付款 (信用卡+ PayPal) 或仅提供“PayPal”付款 PaypalModeIntegral=积分 PaypalModeOnlyPaypal=支付宝 -ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page +ONLINE_PAYMENT_CSS_URL=在线付款页面 CSS 样式表的可选网址 ThisIsTransactionId=这是交易编号:%s -PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email +PAYPAL_ADD_PAYMENT_URL=当您通过电子邮件发送文档时,请包含 PayPal 付款网址 NewOnlinePaymentReceived=收到新的在线支付 NewOnlinePaymentFailed=新的在线支付尝试但失败了 -ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail) +ONLINE_PAYMENT_SENDEMAIL=每次付款尝试 (成功和失败) 后通知的电子邮件地址 ReturnURLAfterPayment=付款后返回网页地址 ValidationOfOnlinePaymentFailed=验证在线支付失败 PaymentSystemConfirmPaymentPageWasCalledButFailed=支付系统调用支付确认页面返回错误 @@ -27,10 +27,11 @@ ShortErrorMessage=简短错误信息 ErrorCode=错误代码 ErrorSeverityCode=错误严重性代码 OnlinePaymentSystem=在线支付系统 -PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode) -PaypalImportPayment=Import PayPal payments +PaypalLiveEnabled=启用 PayPal “实时”模式 (否则是测试/沙盒模式) +PaypalImportPayment=导入 PayPal 付款 PostActionAfterPayment=付款后发布操作 ARollbackWasPerformedOnPostActions=对所有Post操作执行了回滚。如果必要,您必须手动完成后期操作。 -ValidationOfPaymentFailed=Validation of payment has failed -CardOwner=Card holder -PayPalBalance=Paypal credit +ValidationOfPaymentFailed=付款验证失败 +CardOwner=持卡人 +PayPalBalance=PayPal 信用 +OnlineSubscriptionPaymentLine=在线订阅记录在%s
    通过%s缴付
    原始 IP 地址:%s
    交易 ID:%s diff --git a/htdocs/langs/zh_CN/printing.lang b/htdocs/langs/zh_CN/printing.lang index d3064ea0e93..14cc1497b17 100644 --- a/htdocs/langs/zh_CN/printing.lang +++ b/htdocs/langs/zh_CN/printing.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=One click Printing -Module64000Desc=Enable One click Printing System -PrintingSetup=Setup of One click Printing System -PrintingDesc=This module adds a Print button to various modules to allow documents to be printed directly to a printer with no need to open the document into another application. -MenuDirectPrinting=One click Printing jobs -DirectPrint=One click Print +Module64000Name=一键打印 +Module64000Desc=启用一键打印系统 +PrintingSetup=一键打印系统的设置 +PrintingDesc=该模块在各种模块中增加了一个打印按钮,允许将文件直接打印到打印机上,而不需要在其他应用程序中打开文档。 +MenuDirectPrinting=一键打印工作 +DirectPrint=一键打印 PrintingDriverDesc=打印驱动程序的配置变量。 ListDrivers=驱动列表 -PrintTestDesc=打印机列表。 +PrintTestDesc=打印机清单。 FileWasSentToPrinter=文件 %s 已发送到打印机 ViaModule=通过模块 -NoActivePrintingModuleFound=没有活动的驱动程序来打印文档检查模块%s的设置。 +NoActivePrintingModuleFound=没有活动的驱动程序来打印文档,检查模块%s的设置。 PleaseSelectaDriverfromList=请在驱动列表中选择驱动程序。 PleaseConfigureDriverfromList=请在下面配置列表中选择一个驱动程序。 SetupDriver=驱动设置 @@ -19,7 +19,7 @@ UserConf=单用户设置 PRINTGCP_INFO=谷歌 OAuth API 设置 PRINTGCP_AUTHLINK=认证 PRINTGCP_TOKEN_ACCESS=谷歌云打印 OAuth Token -PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. +PrintGCPDesc=这个驱动程序允许使用谷歌云打印将文档直接发送到打印机。 GCP_Name=名称 GCP_displayName=显示名称 GCP_Id=打印机ID号 @@ -27,7 +27,7 @@ GCP_OwnerName=用户名称 GCP_State=打印机状态 GCP_connectionStatus=在线状态 GCP_Type=打印机类型 -PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. +PrintIPPDesc=这个驱动程序允许将文档直接发送到打印机,它需要一个安装了 CUPS 的 Linux 系统。 PRINTIPP_HOST=打印服务器 PRINTIPP_PORT=端口 PRINTIPP_USER=登陆 @@ -45,8 +45,8 @@ IPP_Color=彩色 IPP_Device=设备 IPP_Media=打印媒体 IPP_Supported=媒体类型 -DirectPrintingJobsDesc=此页面列出了可用打印机的打印作业。 -GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret. +DirectPrintingJobsDesc=此页列出了为可用打印机找到的打印任务。 +GoogleAuthNotConfigured=谷歌OAuth还没有设置。启用OAuth模块和设置谷歌 ID/密码。 GoogleAuthConfigured=在OAuth模块的设置中发现了Google OAuth凭据。 PrintingDriverDescprintgcp=配置可用的谷歌云打印机驱动 PrintingDriverDescprintipp=打印驱动程序杯的配置变量。 diff --git a/htdocs/langs/zh_CN/products.lang b/htdocs/langs/zh_CN/products.lang index bd485326d4a..cfdf15ace35 100644 --- a/htdocs/langs/zh_CN/products.lang +++ b/htdocs/langs/zh_CN/products.lang @@ -2,7 +2,7 @@ ProductRef=产品编号 ProductLabel=产品名称 ProductLabelTranslated=产品标签已翻译 -ProductDescription=Product description +ProductDescription=产品描述 ProductDescriptionTranslated=产品描述已翻译 ProductNoteTranslated=产品备注已翻译 ProductServiceCard=产品/服务 信息卡 @@ -17,43 +17,43 @@ Create=创建 Reference=编号 NewProduct=新建产品 NewService=新建服务 -ProductVatMassChange=Global VAT Update -ProductVatMassChangeDesc=This tool updates the VAT rate defined on ALL products and services! +ProductVatMassChange=更新全局增值税 +ProductVatMassChangeDesc=此工具更新所有产品和服务定义的增值税税率。 MassBarcodeInit=批量条码初始化 MassBarcodeInitDesc=此页面可用于初始化未定义条形码的对象上的条形码。在模块条形码设置完成之前检查。 ProductAccountancyBuyCode=科目代码(采购) -ProductAccountancyBuyIntraCode=Accounting code (purchase intra-community) -ProductAccountancyBuyExportCode=Accounting code (purchase import) +ProductAccountancyBuyIntraCode=科目代码 (社区内采购) +ProductAccountancyBuyExportCode=科目代码 (进口采购) ProductAccountancySellCode=科目代码(销售) -ProductAccountancySellIntraCode=Accounting code (sale intra-Community) -ProductAccountancySellExportCode=科目代码(销售导出) +ProductAccountancySellIntraCode=科目代码 (社区内销售) +ProductAccountancySellExportCode=科目代码(出口销售) ProductOrService=产品或服务 ProductsAndServices=产品和服务 ProductsOrServices=产品或服务 -ProductsPipeServices=产品|服务 -ProductsOnSale=Products for sale -ProductsOnPurchase=Products for purchase -ProductsOnSaleOnly=产品(仅出售) -ProductsOnPurchaseOnly=产品(仅购买) -ProductsNotOnSell=产品(不出售也不采购) -ProductsOnSellAndOnBuy=产品(可销售、可采购) -ServicesOnSale=Services for sale -ServicesOnPurchase=Services for purchase -ServicesOnSaleOnly=服务(仅销售) -ServicesOnPurchaseOnly=服务(仅采购) -ServicesNotOnSell=服务(非出售也非采购) +ProductsPipeServices=产品 | 服务 +ProductsOnSale=供出售的产品 +ProductsOnPurchase=供采购的产品 +ProductsOnSaleOnly=仅供出售的产品 +ProductsOnPurchaseOnly=仅供采购的产品 +ProductsNotOnSell=非卖品和非采购产品 +ProductsOnSellAndOnBuy=供出售和供采购的产品 +ServicesOnSale=供出售的服务 +ServicesOnPurchase=供采购的服务 +ServicesOnSaleOnly=仅供出售的服务 +ServicesOnPurchaseOnly=仅供采购的服务 +ServicesNotOnSell=非卖品和非采购的服务 ServicesOnSellAndOnBuy=可销售的服务与可采购的服务 -LastModifiedProductsAndServices=Latest %s products/services which were modified +LastModifiedProductsAndServices=最新%s编辑过的产品/服务 LastRecordedProducts=最近登记的 %s 产品 LastRecordedServices=最后 %s 已记录服务 CardProduct0=产品 CardProduct1=服务 Stock=库存 MenuStocks=库存 -Stocks=Stocks and location (warehouse) of products +Stocks=产品的库存和位置 ( 仓库 ) Movements=库间调拨 Sell=销售 -Buy=Purchase +Buy=采购 OnSell=可销售 OnBuy=可采购 NotOnSell=不可销售 @@ -68,18 +68,18 @@ ProductStatusNotOnBuyShort=不可采购 UpdateVAT=更新VAT UpdateDefaultPrice=更新默认价格 UpdateLevelPrices=更新各级价格 -AppliedPricesFrom=Applied from +AppliedPricesFrom=申请自 SellingPrice=售价 -SellingPriceHT=Selling price (excl. tax) +SellingPriceHT=销售价格 ( 不含税 ) SellingPriceTTC=售价(税后) -SellingMinPriceTTC=Minimum Selling price (inc. tax) +SellingMinPriceTTC=最低销售价格 ( 含税 ) CostPriceDescription=This price field (excl. tax) can be used to capture the average amount this product costs to your company. It may be any price you calculate yourself, for example, from the average buying price plus average production and distribution cost. -CostPriceUsage=该值可用于保证金计算。 -ManufacturingPrice=Manufacturing price +CostPriceUsage=此值可用于利润计算。 +ManufacturingPrice=制造价格 SoldAmount=销售总额 PurchasedAmount=采购总额 NewPrice=新增价格 -MinPrice=Min. selling price +MinPrice=最低售价 EditSellingPriceLabel=编辑销售价格标签 CantBeLessThanMinPrice=售价不能低于此产品的最低价格 (%s 税前)。此消息也可能在您输入折扣巨大时出现 ContractStatusClosed=已禁用 @@ -88,7 +88,7 @@ ErrorProductBadRefOrLabel=输入的编号或标签无效,请输入符合要求 ErrorProductClone=试图同时复制该产品或服务会有一个问题。 ErrorPriceCantBeLowerThanMinPrice=错误,价格不能低于最低价格。 Suppliers=供应商 -SupplierRef=Vendor SKU +SupplierRef=供应商SKU ShowProduct=显示产品 ShowService=显示服务 ProductsAndServicesArea=产品和服务区 @@ -97,7 +97,7 @@ ServicesArea=服务区 ListOfStockMovements=库存移动清单 BuyingPrice=买价 PriceForEachProduct=产品明码标价 -SupplierCard=Vendor card +SupplierCard=供应商卡 PriceRemoved=价格已删除 BarCode=条码 BarcodeType=条码类型 @@ -105,7 +105,7 @@ SetDefaultBarcodeType=设置条码类型 BarcodeValue=条码值 NoteNotVisibleOnBill=备注 (账单、报价...中不可见) ServiceLimitedDuration=如果产品是有限期的服务: -FillWithLastServiceDates=Fill with last service line dates +FillWithLastServiceDates=填写最后服务行日期 MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment) MultiPricesNumPrices=价格个数 DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices @@ -115,7 +115,7 @@ AssociatedProducts=Kits AssociatedProductsNumber=Number of products composing this kit ParentProductsNumber=父级包装产品的数量 ParentProducts=父产品 -IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit +IfZeroItIsNotAVirtualProduct=如果为0,这产品不是套件 IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit KeywordFilter=关键词筛选 CategoryFilter=分类筛选 @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=您确定要删除这行产品吗? ProductSpecial=Special QtyMin=Min. purchase quantity PriceQtyMin=Price quantity min. -PriceQtyMinCurrency=Price (currency) for this qty. (no discount) +PriceQtyMinCurrency=Price (currency) for this qty. +WithoutDiscount=Without discount VATRateForSupplierProduct=VAT Rate (for this vendor/product) DiscountQtyMin=Discount for this qty. NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product @@ -175,7 +176,7 @@ CountryOrigin=Country of origin RegionStateOrigin=Region of origin StateOrigin=State|Province of origin Nature=Nature of product (raw/manufactured) -NatureOfProductShort=Nature of product +NatureOfProductShort=产品性质 NatureOfProductDesc=Raw material or manufactured product ShortLabel=标签别名 Unit=单位 @@ -261,7 +262,7 @@ Quarter1=一季度 Quarter2=二季度 Quarter3=三季度 Quarter4=四季度 -BarCodePrintsheet=打印条码 +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. NumberOfStickers=要打印的标签数量 PrintsheetForOneBarCode=为一个条形码打印几个贴纸 @@ -344,9 +345,9 @@ PossibleValues=可能的值 GoOnMenuToCreateVairants=继续菜单%s - %s准备属性变体(如颜色,大小......) UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers ProductSupplierDescription=Vendor description for the product -UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=Packaging -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging #Attributes @@ -398,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Action only available on the variant of prod ProductsPricePerCustomer=Product prices per customers ProductSupplierExtraFields=Additional Attributes (Supplier Prices) DeleteLinkedProduct=Delete the child product linked to the combination -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=加权平均价格 PMPValueShort=的WAP mandatoryperiod=Mandatory periods @@ -408,6 +409,23 @@ mandatoryHelper=Check this if you want a message to the user when creating / val DefaultBOM=Default BOM DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. Rank=Rank +MergeOriginProduct=Duplicate product (product you want to delete) +MergeProducts=Merge products +ConfirmMergeProducts=Are you sure you want to merge the chosen product with the current one? All linked objects (invoices, orders, ...) will be moved to the current product, after which the chosen product will be deleted. +ProductsMergeSuccess=Products have been merged +ErrorsProductsMerge=Errors in products merge SwitchOnSaleStatus=Switch on sale status SwitchOnPurchaseStatus=Switch on purchase status +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Extra Fields (inventory) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation +ConfirmEditExtrafield = Select the extrafield you want modify +ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? +ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/zh_CN/projects.lang b/htdocs/langs/zh_CN/projects.lang index 1707b18cf65..a5f298a79e1 100644 --- a/htdocs/langs/zh_CN/projects.lang +++ b/htdocs/langs/zh_CN/projects.lang @@ -6,23 +6,24 @@ ProjectLabel=项目标签 ProjectsArea=项目区 ProjectStatus=项目状态 SharedProject=全体同仁 -PrivateProject=Assigned contacts -ProjectsImContactFor=Projects for which I am explicitly a contact +PrivateProject=分配的联系人 +ProjectsImContactFor=我明确是联系人的项目 AllAllowedProjects=我能阅读的所有项目(我的+公共) AllProjects=所有项目 -MyProjectsDesc=This view is limited to the projects that you are a contact for +MyProjectsDesc=此视图仅限于您作为联系人的项目 ProjectsPublicDesc=这种观点提出了所有你被允许阅读的项目。 TasksOnProjectsPublicDesc=此视图显示允许您阅读的项目的所有任务。 ProjectsPublicTaskDesc=这种观点提出的所有项目,您可阅读任务。 ProjectsDesc=这种观点提出的所有项目(你的用户权限批准你认为一切)。 TasksOnProjectsDesc=此视图显示所有项目的所有任务(您的用户权限授予您查看所有项目的权限)。 -MyTasksDesc=This view is limited to the projects or tasks that you are a contact for +MyTasksDesc=此视图仅限于您作为联系人的项目或任务 OnlyOpenedProject=只能看到打开的项目(草稿或关闭状态的项目不可见)。 ClosedProjectsAreHidden=已关闭的项目是不可见的。 TasksPublicDesc=这种观点提出的所有项目,您可阅读任务。 TasksDesc=这种观点提出的所有项目和任务(您的用户权限批准你认为一切)。 AllTaskVisibleButEditIfYouAreAssigned=合格项目的所有任务都是可见的,但您只能为分配给所选用户的任务输入时间。如果需要在其上输入时间,请分配任务。 -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. If you need to enter time on a task and if the task is not visible here, then you need to assign the task to yourself. +OnlyYourTaskAreVisible=只有分配给您的任务才可见。 如果您需要在任务上输入时间,和任务在这里不可见,那么您需要将任务分配给自己。 +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=项目任务 ProjectCategories=项目标签/类别 NewProject=新建项目 @@ -37,17 +38,19 @@ OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status OpportunitiesStatusForProjects=Leads amount of projects by status ShowProject=显示项目 ShowTask=显示任务 +SetThirdParty=Set third party SetProject=设置项目 +OutOfProject=项目外 NoProject=没有项目或拥有的定义 -NbOfProjects=Number of projects -NbOfTasks=Number of tasks +NbOfProjects=项目数量 +NbOfTasks=任务数量 TimeSpent=花费的时间 TimeSpentByYou=你花费的时间 TimeSpentByUser=用户花费时间 TimesSpent=所花费的时间 -TaskId=Task ID -RefTask=Task ref. -LabelTask=Task label +TaskId=任务ID +RefTask=任务参考 +LabelTask=任务标签 TaskTimeSpent=任务花费时间 TaskTimeUser=用户 TaskTimeNote=备注 @@ -57,9 +60,9 @@ WorkloadNotDefined=工作量没有定义 NewTimeSpent=所花费的时间 MyTimeSpent=我的时间花 BillTime=时间成本 -BillTimeShort=Bill time -TimeToBill=Time not billed -TimeBilled=Time billed +BillTimeShort=账单时间 +TimeToBill=未计费的时间 +TimeBilled=计费时间 Tasks=任务 Task=任务 TaskDateStart=任务开始日期 @@ -69,42 +72,42 @@ NewTask=新建任务 AddTask=创建任务 AddTimeSpent=创造时间成本 AddHereTimeSpentForDay=为天/任务添加时间成本 -AddHereTimeSpentForWeek=Add here time spent for this week/task +AddHereTimeSpentForWeek=在此添加本星期/任务的时间成本 Activity=活动 Activities=任务/活动 MyActivities=我的任务/活动 MyProjects=我的项目 MyProjectsArea=我的项目区 DurationEffective=有效时间 -ProgressDeclared=Declared real progress -TaskProgressSummary=Task progress -CurentlyOpenedTasks=Curently open tasks -TheReportedProgressIsLessThanTheCalculatedProgressionByX=The declared real progress is less %s than the progress on consumption -TheReportedProgressIsMoreThanTheCalculatedProgressionByX=The declared real progress is more %s than the progress on consumption -ProgressCalculated=Progress on consumption +ProgressDeclared=已宣布的实际进展 +TaskProgressSummary=任务进展 +CurentlyOpenedTasks=当前打开的任务 +TheReportedProgressIsLessThanTheCalculatedProgressionByX=宣布的实际进展比消耗进展少%s +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=宣布的实际进展比消耗进展多%s +ProgressCalculated=消耗进展 WhichIamLinkedTo=which I'm linked to WhichIamLinkedToProject=which I'm linked to project Time=时间 -TimeConsumed=Consumed +TimeConsumed=已消耗 ListOfTasks=任务列表 GoToListOfTimeConsumed=转到消耗的时间列表 GanttView=甘特视图 -ListWarehouseAssociatedProject=List of warehouses associated to the project -ListProposalsAssociatedProject=List of the commercial proposals related to the project -ListOrdersAssociatedProject=List of sales orders related to the project -ListInvoicesAssociatedProject=List of customer invoices related to the project -ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project -ListSupplierOrdersAssociatedProject=List of purchase orders related to the project -ListSupplierInvoicesAssociatedProject=List of vendor invoices related to the project -ListContractAssociatedProject=List of contracts related to the project -ListShippingAssociatedProject=List of shippings related to the project -ListFichinterAssociatedProject=List of interventions related to the project -ListExpenseReportsAssociatedProject=List of expense reports related to the project -ListDonationsAssociatedProject=List of donations related to the project -ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project -ListSalariesAssociatedProject=List of payments of salaries related to the project -ListActionsAssociatedProject=List of events related to the project -ListMOAssociatedProject=List of manufacturing orders related to the project +ListWarehouseAssociatedProject=与项目关联的仓库清单 +ListProposalsAssociatedProject=与项目相关的商业建议书清单 +ListOrdersAssociatedProject=与项目相关的销售订单清单 +ListInvoicesAssociatedProject=与项目相关的客户发票清单 +ListPredefinedInvoicesAssociatedProject=与项目相关的客户模板发票清单 +ListSupplierOrdersAssociatedProject=与项目相关的采购订单清单 +ListSupplierInvoicesAssociatedProject=与项目相关的供应商发票清单 +ListContractAssociatedProject=与项目相关的联系人清单 +ListShippingAssociatedProject=与项目相关的发货清单 +ListFichinterAssociatedProject=与项目相关的干预措施清单 +ListExpenseReportsAssociatedProject=与项目相关的费用报告清单 +ListDonationsAssociatedProject=与项目相关的捐款清单 +ListVariousPaymentsAssociatedProject=与项目相关的杂项付款清单 +ListSalariesAssociatedProject=与项目相关的工资支付清单 +ListActionsAssociatedProject=与项目相关的事件清单 +ListMOAssociatedProject=与项目相关的制造订单清单 ListTaskTimeUserProject=项目相关任务时间列表 ListTaskTimeForTask=任务消耗的时间列表 ActivityOnProjectToday=今天的项目活动 @@ -117,12 +120,13 @@ ChildOfTask=子项目/任务 TaskHasChild=任务有子内容 NotOwnerOfProject=不是所有者的私人项目 AffectedTo=分配给 -CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See tab '%s'. +CantRemoveProject=这个项目不能被删除,因为它被其他对象(发票,订单或其他)引用。 请参照标签“%s” ValidateProject=验证谟 ConfirmValidateProject=您确定要验证此项目吗? CloseAProject=关闭项目 ConfirmCloseAProject=您确定要关闭此项目吗? -AlsoCloseAProject=也关闭项目(如果你仍然需要关注生产任务,请保持打开状态) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=打开的项目 ConfirmReOpenAProject=您确定要重新打开此项目吗? ProjectContact=项目联系人 @@ -134,13 +138,13 @@ DeleteATimeSpent=删除的时间 ConfirmDeleteATimeSpent=你确定要删除这段时间吗? DoNotShowMyTasksOnly=查看未分配给我的任务 ShowMyTasksOnly=查看仅分配给我的任务 -TaskRessourceLinks=Contacts of task +TaskRessourceLinks=任务联系人 ProjectsDedicatedToThisThirdParty=这个项目致力于合作方 NoTasks=该项目没有任务 LinkedToAnotherCompany=链接到其他合作方 TaskIsNotAssignedToUser=任务未分配给用户。使用按钮“ %s ”立即分配任务。 ErrorTimeSpentIsEmpty=所花费的时间是空的 -TimeRecordingRestrictedToNMonthsBack=Time recording is restricted to %s months back +TimeRecordingRestrictedToNMonthsBack=时间记录只限于过去%s个月 ThisWillAlsoRemoveTasks=这一行动也将删除所有项目任务 (%s 任务的时刻) ,花全部的时间都投入。 IfNeedToUseOtherObjectKeepEmpty=如果某些对象(发票,订单,...),属于其他合作方,必须与该项目以创建,保持这个空项目多的合作方。 CloneTasks=复制任务 @@ -165,8 +169,8 @@ OpportunityProbability=Lead probability OpportunityProbabilityShort=Lead probab. OpportunityAmount=Lead amount OpportunityAmountShort=Lead amount -OpportunityWeightedAmount=Opportunity weighted amount -OpportunityWeightedAmountShort=Opp. weighted amount +OpportunityWeightedAmount=Amount of opportunity, weighted by probability +OpportunityWeightedAmountShort=商机加权金额 OpportunityAmountAverageShort=Average lead amount OpportunityAmountWeigthedShort=Weighted lead amount WonLostExcluded=不包括赢得/失去的 @@ -183,37 +187,37 @@ SelectElement=选择元素 AddElement=链接到元素 LinkToElementShort=链接到 # Documents models -DocumentModelBeluga=Project document template for linked objects overview -DocumentModelBaleine=Project document template for tasks -DocumentModelTimeSpent=Project report template for time spent +DocumentModelBeluga=链接对象的项目文档模板概述 +DocumentModelBaleine=任务的项目文档模板 +DocumentModelTimeSpent=时间成本的项目报告模板 PlannedWorkload=计划的工作量 PlannedWorkloadShort=工作量 ProjectReferers=关联物料 ProjectMustBeValidatedFirst=项目首先必须认证 -MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. -FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time +MustBeValidatedToBeSigned=%s必须首先经过验证才能设置为已签名 +FirstAddRessourceToAllocateTime=指定一个用户资源作为项目的联系人来分配时间 InputPerDay=输入天数 InputPerWeek=输入周数 -InputPerMonth=Input per month +InputPerMonth=每月输入 InputDetail=输入细节 TimeAlreadyRecorded=这是此任务/日和用户%s已记录的时间 ProjectsWithThisUserAsContact=项目的用户作为联系人 -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=此联系人的项目 TasksWithThisUserAsContact=任务分配给这个用户 ResourceNotAssignedToProject=未分配到项目 ResourceNotAssignedToTheTask=未分配给任务 -NoUserAssignedToTheProject=No users assigned to this project +NoUserAssignedToTheProject=没有用户分配给这个项目 TimeSpentBy=花费的时间 TasksAssignedTo=分配给的任务 -AssignTaskToMe=Assign task to myself +AssignTaskToMe=分配任务给自己 AssignTaskToUser=将任务分配给%s SelectTaskToAssign=选择要分配的任务... AssignTask=分配 ProjectOverview=概览 -ManageTasks=Use projects to follow tasks and/or report time spent (timesheets) +ManageTasks=使用项目来跟踪任务和/或报告时间成本(工时表) ManageOpportunitiesStatus=用项目跟进机会/线索 -ProjectNbProjectByMonth=No. of created projects by month -ProjectNbTaskByMonth=No. of created tasks by month +ProjectNbProjectByMonth=每月创建的项目数 +ProjectNbTaskByMonth=每月创建的任务数 ProjectOppAmountOfProjectsByMonth=Amount of leads by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month ProjectOpenedProjectByOppStatus=Open project|lead by lead status @@ -238,7 +242,7 @@ OppStatusPENDING=待办 OppStatusWON=赢得 OppStatusLOST=失去 Budget=预算 -AllowToLinkFromOtherCompany=Allow to link project from other company

    Supported values:
    - Keep empty: Can link any project of the company (default)
    - "all": Can link any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=最新的%s项目 LatestModifiedProjects=最新的%s编辑过的项目 OtherFilteredTasks=其他过滤任务 @@ -259,7 +263,7 @@ TimeSpentInvoiced=Time spent billed TimeSpentForIntervention=所花费的时间 TimeSpentForInvoice=所花费的时间 OneLinePerUser=One line per user -ServiceToUseOnLines=Service to use on lines +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Invoice %s has been generated from time spent on project InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Check if you enter timesheet on tasks of project AND you plan to generate invoice(s) from the timesheet to bill the customer of the project (do not check if you plan to create invoice that is not based on entered timesheets). Note: To generate invoice, go on tab 'Time spent' of the project and select lines to include. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -290,7 +294,8 @@ ProjectsHavingThisContact=Projects having this contact StartDateCannotBeAfterEndDate=结束日期不能早过开始日期啊,时光不能倒流呀魂淡 ErrorPROJECTLEADERRoleMissingRestoreIt=The "PROJECTLEADER" role is missing or has been de-activited, please restore in the dictionary of contact types LeadPublicFormDesc=You can enable here a public page to allow your prospects to make a first contact to you from a public online form -EnablePublicLeadForm=Enable the public form for contact -NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. -NewLeadForm=New contact form +EnablePublicLeadForm=启用公共表单来联系 +NewLeadbyWeb=您的信息或请求已被记录。 我们会尽快回复或与您联系。 +NewLeadForm=新联系人表单 LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=获取报告 diff --git a/htdocs/langs/zh_CN/propal.lang b/htdocs/langs/zh_CN/propal.lang index 35e3834b316..492d61f5b9c 100644 --- a/htdocs/langs/zh_CN/propal.lang +++ b/htdocs/langs/zh_CN/propal.lang @@ -54,9 +54,10 @@ NoDraftProposals=没有报价草稿 CopyPropalFrom=通过复制(并变更)现有报价单创建新报价单 CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=默认报价单有效期(按天计算) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=您确定要克隆商业提案 %s 吗? -ConfirmReOpenProp=您确定要打开商业提案 %s 吗? +ConfirmReOpenProp=您确定要再打开商业提案 %s 吗? ProposalsAndProposalsLines=报价单和报价项目 ProposalLine=报价项目 ProposalLines=Proposal lines @@ -64,36 +65,54 @@ AvailabilityPeriod=交货延迟期 SetAvailability=设置交货延迟期 AfterOrder=下单后 OtherProposals=其他报价单 + ##### Availability ##### AvailabilityTypeAV_NOW=即时 AvailabilityTypeAV_1W=1 周 AvailabilityTypeAV_2W=2 周 AvailabilityTypeAV_3W=3 周 AvailabilityTypeAV_1M=1 个月 -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=跟进报价的销售代表 TypeContact_propal_external_BILLING=客户账单联系人 TypeContact_propal_external_CUSTOMER=跟进报价的客户联系人 TypeContact_propal_external_SHIPPING=客户联系以便交付 + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=关闭订单时使用的默认模板(待付款) DefaultModelPropalCreate=设置默认模板 DefaultModelPropalToBill=关闭订单时使用的默认模板(待生成账单) -DefaultModelPropalClosed=关闭订单时使用的默认模板(待付款) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=拒绝 +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=书面接受,公司盖章,日期和签名 ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/zh_CN/receiptprinter.lang b/htdocs/langs/zh_CN/receiptprinter.lang index 57c5326da13..0bd9048fc2f 100644 --- a/htdocs/langs/zh_CN/receiptprinter.lang +++ b/htdocs/langs/zh_CN/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=发送测试页到打印机 %s ReceiptPrinter=发票打印机 ReceiptPrinterDesc=设置发票打印机 ReceiptPrinterTemplateDesc=模板设置 -ReceiptPrinterTypeDesc=发票打印机类型描述 +ReceiptPrinterTypeDesc=Example of possible values for the field "Parameters" according to the type of driver ReceiptPrinterProfileDesc=发票打印机配置 ListPrinters=打印机列表 SetupReceiptTemplate=模板设置 @@ -54,14 +54,16 @@ DOL_DOUBLE_WIDTH=Double width size DOL_DEFAULT_HEIGHT_WIDTH=Default height and width size DOL_UNDERLINE=Enable underline DOL_UNDERLINE_DISABLED=Disable underline -DOL_BEEP=Beed sound +DOL_BEEP=Beep sound +DOL_BEEP_ALTERNATIVE=Beep sound (alternative mode) +DOL_PRINT_CURR_DATE=Print current date/time DOL_PRINT_TEXT=Print text DateInvoiceWithTime=Invoice date and time YearInvoice=Invoice year DOL_VALUE_MONTH_LETTERS=Invoice month in letters DOL_VALUE_MONTH=Invoice month DOL_VALUE_DAY=Invoice day -DOL_VALUE_DAY_LETTERS=Inovice day in letters +DOL_VALUE_DAY_LETTERS=发票日(以字母为单位) DOL_LINE_FEED_REVERSE=Line feed reverse InvoiceID=Invoice ID InvoiceRef=发票号 diff --git a/htdocs/langs/zh_CN/receptions.lang b/htdocs/langs/zh_CN/receptions.lang index 2061cb326db..b6bcc2d833d 100644 --- a/htdocs/langs/zh_CN/receptions.lang +++ b/htdocs/langs/zh_CN/receptions.lang @@ -3,10 +3,10 @@ ReceptionDescription=Vendor reception management (Create reception documents) ReceptionsSetup=Vendor Reception setup RefReception=Ref. reception Reception=论过程 -Receptions=Receptions +Receptions=收货 AllReceptions=All Receptions Reception=论过程 -Receptions=Receptions +Receptions=收货 ShowReception=Show Receptions ReceptionsArea=Receptions area ListOfReceptions=List of receptions @@ -32,6 +32,7 @@ StatusReceptionDraftShort=草稿 StatusReceptionValidatedShort=批准 StatusReceptionProcessedShort=处理完毕 ReceptionSheet=Reception sheet +ValidateReception=Validate reception ConfirmDeleteReception=Are you sure you want to delete this reception? ConfirmValidateReception=Are you sure you want to validate this reception with reference %s? ConfirmCancelReception=Are you sure you want to cancel this reception? @@ -41,14 +42,13 @@ SendReceptionRef=Submission of reception %s ActionsOnReception=Events on reception ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. ReceptionLine=Reception line -ProductQtyInReceptionAlreadySent=Product quantity from open sales order already sent +ProductQtyInReceptionAlreadySent=开放销售订单的产品数量已发送 ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplier order already received ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions. ReceptionsNumberingModules=Numbering module for receptions ReceptionsReceiptModel=Document templates for receptions NoMorePredefinedProductToDispatch=No more predefined products to dispatch ReceptionExist=A reception exists -ByingPrice=Bying price ReceptionBackToDraftInDolibarr=Reception %s back to draft ReceptionClassifyClosedInDolibarr=Reception %s classified Closed ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open diff --git a/htdocs/langs/zh_CN/recruitment.lang b/htdocs/langs/zh_CN/recruitment.lang index 275b1a7c633..c08651f02c7 100644 --- a/htdocs/langs/zh_CN/recruitment.lang +++ b/htdocs/langs/zh_CN/recruitment.lang @@ -18,17 +18,17 @@ # # Module label 'ModuleRecruitmentName' -ModuleRecruitmentName = Recruitment +ModuleRecruitmentName = 招聘 # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Manage and follow recruitment campaigns for new job positions +ModuleRecruitmentDesc = 管理和跟踪新工作职位的招聘活动 # # Admin page # -RecruitmentSetup = Recruitment setup +RecruitmentSetup = 招聘设置 Settings = 设置 -RecruitmentSetupPage = Enter here the setup of main options for the recruitment module -RecruitmentArea=Recruitement area +RecruitmentSetupPage = 在此输入招聘模块的主要选项设置 +RecruitmentArea=招聘区 PublicInterfaceRecruitmentDesc=Public pages of jobs are public URLs to show and answer to open jobs. There is one different link for each open job, found on each job record. EnablePublicRecruitmentPages=Enable public pages of open jobs @@ -38,39 +38,42 @@ EnablePublicRecruitmentPages=Enable public pages of open jobs About = 关于 RecruitmentAbout = About Recruitment RecruitmentAboutPage = Recruitment about page -NbOfEmployeesExpected=Expected nb of employees +NbOfEmployeesExpected=预期的雇员人数 JobLabel=Label of job position -WorkPlace=Work place +WorkPlace=工作地点 DateExpected=Expected date FutureManager=Future manager ResponsibleOfRecruitement=Responsible of recruitment IfJobIsLocatedAtAPartner=If job is located at a partner place PositionToBeFilled=工作岗位 -PositionsToBeFilled=Job positions -ListOfPositionsToBeFilled=List of job positions -NewPositionToBeFilled=New job positions +PositionsToBeFilled=工作岗位 +ListOfPositionsToBeFilled=工作岗位清单 +NewPositionToBeFilled=新工作岗位 JobOfferToBeFilled=Job position to be filled ThisIsInformationOnJobPosition=Information of the job position to be filled ContactForRecruitment=Contact for recruitment EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used -NewCandidature=New application -ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +NewCandidature=新申请 +ListOfCandidatures=申请清单 +Remuneration=工资 +RequestedRemuneration=要求的工资 +ProposedRemuneration=提议的工资 ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused -RecruitmentCandidature=Application -JobPositions=Job positions -RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +RecruitmentCandidature=申请 +JobPositions=工作岗位 +RecruitmentCandidatures=申请 +InterviewToDo=Contacts to follow AnswerCandidature=Application answer -YourCandidature=Your application -YourCandidatureAnswerMessage=Thanks you for your application.
    ... +YourCandidature=您的申请 +YourCandidatureAnswerMessage=感谢您的申请
    … JobClosedTextCandidateFound=The job position is closed. The position has been filled. -JobClosedTextCanceled=The job position is closed. -ExtrafieldsJobPosition=Complementary attributes (job positions) -ExtrafieldsApplication=Complementary attributes (job applications) -MakeOffer=Make an offer +JobClosedTextCanceled=这个职位已关闭 +ExtrafieldsJobPosition=补充属性(工作岗位) +ExtrafieldsApplication=补充属性(工作岗位) +MakeOffer=开价 +WeAreRecruiting=我们正在招聘。这是一份有待填补的空缺职位清单... +NoPositionOpen=目前没有职位空缺 diff --git a/htdocs/langs/zh_CN/resource.lang b/htdocs/langs/zh_CN/resource.lang index 70350bae181..559d8a02faf 100644 --- a/htdocs/langs/zh_CN/resource.lang +++ b/htdocs/langs/zh_CN/resource.lang @@ -5,7 +5,7 @@ DeleteResource=删除资源 ConfirmDeleteResourceElement=确认从这个元素中删除资源 NoResourceInDatabase=数据库中无资源 NoResourceLinked=无资源链接 - +ActionsOnResource=有关此资源的事件 ResourcePageIndex=资源列表 ResourceSingular=资源 ResourceCard=资源信息卡 @@ -30,7 +30,10 @@ DictionaryResourceType=资源类别 SelectResource=请选择资源 -IdResource=Id resource -AssetNumber=Serial number -ResourceTypeCode=Resource type code +IdResource=Id资源 +AssetNumber=序列号 +ResourceTypeCode=资源类型代码 ImportDataset_resource_1=资源 + +ErrorResourcesAlreadyInUse=有些资源正在使用中 +ErrorResourceUseInEvent=%s被用于%s事件 diff --git a/htdocs/langs/zh_CN/salaries.lang b/htdocs/langs/zh_CN/salaries.lang index e8710293444..fd89e0bf43d 100644 --- a/htdocs/langs/zh_CN/salaries.lang +++ b/htdocs/langs/zh_CN/salaries.lang @@ -1,26 +1,27 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=用于合伙人的会计帐户 -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=财务记账科目代码 -CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=默认为工资支付的会计科目 +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=默认情况下,在创建工资时将“自动创建总付款”选项留空 Salary=工资 Salaries=工资 -NewSalary=New salary -AddSalary=Add salary -NewSalaryPayment=New salary card -AddSalaryPayment=Add salary payment +NewSalary=新工资 +AddSalary=添加工资 +NewSalaryPayment=新工资卡 +AddSalaryPayment=添加工资付款 SalaryPayment=工资支付 SalariesPayments=工资支付 -SalariesPaymentsOf=Salaries payments of %s +SalariesPaymentsOf=%s的工资支付 ShowSalaryPayment=显示工资支付 THM=平均时薪 TJM=平均日薪 CurrentSalary=当前薪资 -THMDescription=This value may be used to calculate the cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently for information only and is not used for any calculation -LastSalaries=Latest %s salaries -AllSalaries=All salaries -SalariesStatistics=Salary statistics -SalariesAndPayments=Salaries and payments -ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? -FillFieldFirst=Fill employee field first +THMDescription=如果项目模块已使用,该值可用于计算用户输入的项目所消耗的时间成本 +TJMDescription=该数值目前仅用于提供信息,不用于任何计算 +LastSalaries=最新%s工资 +AllSalaries=所有工资 +SalariesStatistics=工资统计 +SalariesAndPayments=工资和支付 +ConfirmDeleteSalaryPayment=您要删除这笔工资付款吗? +FillFieldFirst=先填写雇员字段 +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/zh_CN/sendings.lang b/htdocs/langs/zh_CN/sendings.lang index 5b960723b2d..a737f8a3d27 100644 --- a/htdocs/langs/zh_CN/sendings.lang +++ b/htdocs/langs/zh_CN/sendings.lang @@ -21,7 +21,7 @@ QtyShipped=出货数量 QtyShippedShort=数量船。 QtyPreparedOrShipped=数量(准备或发货) QtyToShip=出货数量 -QtyToReceive=Qty to receive +QtyToReceive=接收数量 QtyReceived=收到的数量 QtyInOtherShipments=数量(其他运输) KeepToShip=继续发货 @@ -43,34 +43,34 @@ ConfirmValidateSending=您确定要参考 %s 验证此货件吗? ConfirmCancelSending=您确定要取消此货件吗? DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=警告,没有产品等待装运。 -StatsOnShipmentsOnlyValidated=Statistics are only for validated shipments. Date used is the date of validation of shipment (planned delivery date is not always known) +StatsOnShipmentsOnlyValidated=统计数据只针对已验证的发货。使用的日期是确认发货的日期(计划交货日期并不总是知道) DateDeliveryPlanned=计划运输日期 RefDeliveryReceipt=参考送货收据 StatusReceipt=状态交货收据 DateReceived=交货日期收到 -ClassifyReception=Classify reception -SendShippingByEMail=Send shipment by email +ClassifyReception=分类接收 +SendShippingByEMail=通过电子邮件发送 SendShippingRef=提交运输 %s ActionsOnShipping=运输活动 LinkToTrackYourPackage=链接到追踪您的包裹 -ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the Sales Order record. +ShipmentCreationIsDoneFromOrder=目前,从销售订单记录中创建新的发货已完成。 ShipmentLine=运输线路 -ProductQtyInCustomersOrdersRunning=Product quantity from open sales orders -ProductQtyInSuppliersOrdersRunning=Product quantity from open purchase orders -ProductQtyInShipmentAlreadySent=Product quantity from open sales order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open purchase orders already received -NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. Correct stock or go back to choose another warehouse. +ProductQtyInCustomersOrdersRunning=开放销售订单的产品数量 +ProductQtyInSuppliersOrdersRunning=开放采购订单的产品数量 +ProductQtyInShipmentAlreadySent=开放销售订单的产品数量已发送 +ProductQtyInSuppliersShipmentAlreadyRecevied=开放采购订单的产品数量已收到 +NoProductToShipFoundIntoStock=仓库%s中找不到要运输的产品,更正库存或返回以选择另一个仓库。 WeightVolShort=重量/体积 ValidateOrderFirstBeforeShipment=您必须先验证订单才能发货。 # Sending methods # ModelDocument DocumentModelTyphon=更多的送货单(logo. ..完整的文档模板) -DocumentModelStorm=More complete document model for delivery receipts and extrafields compatibility (logo...) +DocumentModelStorm=更完整的交货凭证和额外字段兼容性的文档模型(标识...) Error_EXPEDITION_ADDON_NUMBER_NotDefined=没有定义的常数EXPEDITION_ADDON_NUMBER SumOfProductVolumes=产品总数 SumOfProductWeights=产品总重 # warehouse details DetailWarehouseNumber= 仓库明细 -DetailWarehouseFormat= W:%s (Qty: %d) +DetailWarehouseFormat= W:%s(数量:%d) diff --git a/htdocs/langs/zh_CN/sms.lang b/htdocs/langs/zh_CN/sms.lang index 369166d2f61..4d372db049c 100644 --- a/htdocs/langs/zh_CN/sms.lang +++ b/htdocs/langs/zh_CN/sms.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - sms Sms=短信 -SmsSetup=SMS安装 -SmsDesc=此页面允许您定义全局选项上的短信功能 +SmsSetup=短信设置 +SmsDesc=此页面允许您定义短信功能的全局选项 SmsCard=短信卡 -AllSms=所有短信campains +AllSms=所有短信活动 SmsTargets=目标 SmsRecipients=目标 SmsRecipient=目标 @@ -13,19 +13,19 @@ SmsTo=目标 SmsTopic=主题的短信 SmsText=讯息 SmsMessage=短信 -ShowSms=显示SMS -ListOfSms=清单 - 短信campains -NewSms=新短信战役 +ShowSms=显示短信 +ListOfSms=列出短信活动 +NewSms=新短信活动 EditSms=编辑短信 ResetSms=新发送 -DeleteSms=删除SMS战役 -DeleteASms=移除SMS战役 -PreviewSms=previuw短信 -PrepareSms=编写短信 -CreateSms=创建SMS -SmsResult=结果发送短信 +DeleteSms=删除短信活动 +DeleteASms=移除短信活动 +PreviewSms=预览短信 +PrepareSms=准备短信 +CreateSms=创建短信 +SmsResult=短信发送结果 TestSms=测试短信 -ValidSms=验证SMS +ValidSms=验证短信 ApproveSms=批准短信 SmsStatusDraft=草稿 SmsStatusValidated=验证 @@ -35,17 +35,17 @@ SmsStatusSentPartialy=发送部分 SmsStatusSentCompletely=完全发送 SmsStatusError=错误 SmsStatusNotSent=不发送 -SmsSuccessfulySent=短信正确发送(从%s %s) +SmsSuccessfulySent=短信正确发送 (从%s到%s) ErrorSmsRecipientIsEmpty=目标号码是空的 WarningNoSmsAdded=没有新的电话号码添加到目标列表 -ConfirmValidSms=Do you confirm validation of this campain? -NbOfUniqueSms=电话号码单位数量 +ConfirmValidSms=你确认这次活动的有效性吗? +NbOfUniqueSms=唯一的电话号码数量 NbOfSms=电话号码数量 ThisIsATestMessage=这是一条测试消息 SendSms=发送短信 SmsInfoCharRemain=剩余字符数量 -SmsInfoNumero= (国际格式如:33899701761) +SmsInfoNumero= (国际格式,例如:+33899701761) DelayBeforeSending=延迟发送前(分钟) -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. -SmsNoPossibleRecipientFound=没有目标。检查您的SMS提供商的设置。 -DisableStopIfSupported=Disable STOP message (if supported) +SmsNoPossibleSenderFound=没有发件人可用。检查您的 SMS 提供商的设置。 +SmsNoPossibleRecipientFound=没有目标。检查您的 SMS 提供商的设置。 +DisableStopIfSupported=禁用STOP消息(如果支持) diff --git a/htdocs/langs/zh_CN/stocks.lang b/htdocs/langs/zh_CN/stocks.lang index 000c4ec4d04..155986a90ed 100644 --- a/htdocs/langs/zh_CN/stocks.lang +++ b/htdocs/langs/zh_CN/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=正确创建警报和所需最佳库存的库存限 ProductStockWarehouseUpdated=正确更新警报和所需最佳库存的库存限制 ProductStockWarehouseDeleted=正确删除警报和所需最佳库存的库存限制 AddNewProductStockWarehouse=设置警报和所需最佳库存的新限制 -AddStockLocationLine=减少数量,然后单击以添加此产品的另一个仓库 +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=库存日期 Inventories=Inventories NewInventory=新库存 @@ -254,7 +254,7 @@ ReOpen=重新打开 ConfirmFinish=Do you confirm the closing of the inventory ? This will generate all stock movements to update your stock to the real qty you entered into the inventory. ObjectNotFound=%s not found MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Fill real quantity with expected quantity ShowAllBatchByDefault=By default, show batch details on product "stock" tab CollapseBatchDetailHelp=You can set batch detail default display in stocks module configuration ErrorWrongBarcodemode=Unknown Barcode mode @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +ToStart=开始 InventoryStartedShort=开始 ErrorOnElementsInventory=Operation canceled for the following reason: ErrorCantFindCodeInInventory=Can't find the following code in inventory QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. StockChangeDisabled=Change on stock disabled NoWarehouseDefinedForTerminal=No warehouse defined for terminal +ClearQtys=Clear all quantities +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=设置 +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/zh_CN/stripe.lang b/htdocs/langs/zh_CN/stripe.lang index c3ace0f5829..422c774dee2 100644 --- a/htdocs/langs/zh_CN/stripe.lang +++ b/htdocs/langs/zh_CN/stripe.lang @@ -4,7 +4,7 @@ StripeDesc=Offer your customers an online payment page for payments with credit/ StripeOrCBDoPayment=使用信用卡或Stripe付款 FollowingUrlAreAvailableToMakePayments=以下网址可提供给客户的网页上,能够作出Dolibarr支付对象 PaymentForm=付款方式 -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=欢迎使用我们的在线付款服务 ThisScreenAllowsYouToPay=这个屏幕允许你进行网上支付%s。 ThisIsInformationOnPayment=这是在做付款信息 ToComplete=要完成 @@ -61,6 +61,7 @@ DeleteACard=删除卡 ConfirmDeleteCard=您确定要删除此信用卡或借记卡吗? CreateCustomerOnStripe=在Stripe上创建客户 CreateCardOnStripe=在Stripe上创建卡片 +CreateBANOnStripe=Create bank on Stripe ShowInStripe=在Stripe中显示 StripeUserAccountForActions=User account to use for email notification of some Stripe events (Stripe payouts) StripePayoutList=List of Stripe payouts @@ -69,3 +70,5 @@ ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mo PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. ClickHereToTryAgain=Click here to try again... CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s +TERMINAL_LOCATION=Location (address) for terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe diff --git a/htdocs/langs/zh_CN/supplier_proposal.lang b/htdocs/langs/zh_CN/supplier_proposal.lang index 8f70109f665..19f71a785be 100644 --- a/htdocs/langs/zh_CN/supplier_proposal.lang +++ b/htdocs/langs/zh_CN/supplier_proposal.lang @@ -13,6 +13,7 @@ SupplierProposalArea=供应商提案区域 SupplierProposalShort=供应商提案 SupplierProposals=供应商提案 SupplierProposalsShort=供应商提案 +AskPrice=询价申请 NewAskPrice=新建询价申请 ShowSupplierProposal=显示询价申请 AddSupplierProposal=创建询价申请 @@ -32,7 +33,7 @@ SupplierProposalStatusValidatedShort=已确认 SupplierProposalStatusClosedShort=关闭 SupplierProposalStatusSignedShort=接受 SupplierProposalStatusNotSignedShort=拒绝 -CopyAskFrom=复制已创建的询价申请为新的询价申请 +CopyAskFrom=通过复制现有请求创建一个价格请求 CreateEmptyAsk=创建空白申请 ConfirmCloneAsk=您确定要克隆价格请求 %s 吗? ConfirmReOpenAsk=您确定要打开价格请求 %s 吗? @@ -52,3 +53,6 @@ SupplierProposalsToClose=供应商提案结束 SupplierProposalsToProcess=供应商提议处理 LastSupplierProposals=最新的%s价格要求 AllPriceRequests=全部申请 +TypeContact_supplier_proposal_external_SHIPPING=供应商交货联系人 +TypeContact_supplier_proposal_external_BILLING=供应商开具账单联系人 +TypeContact_supplier_proposal_external_SERVICE=跟进报价的销售代表 diff --git a/htdocs/langs/zh_CN/suppliers.lang b/htdocs/langs/zh_CN/suppliers.lang index b53b51c3e06..724d69f6596 100644 --- a/htdocs/langs/zh_CN/suppliers.lang +++ b/htdocs/langs/zh_CN/suppliers.lang @@ -4,17 +4,18 @@ SuppliersInvoice=供应商发票 SupplierInvoices=供应商发票 ShowSupplierInvoice=显示供应商发票 NewSupplier=新供应商 +NewSupplierInvoice = 新供应商发票 History=历史 -ListOfSuppliers=供应商列表 +ListOfSuppliers=供应商清单 ShowSupplier=显示供应商 OrderDate=订购日期 -BuyingPriceMin=最优采购价 -BuyingPriceMinShort=最优采购价 +BuyingPriceMin=最优采购价格 +BuyingPriceMinShort=最优采购价格 TotalBuyingPriceMinShort=子产品采购价格总计 TotalSellingPriceMinShort=子产品销售价格合计 SomeSubProductHaveNoPrices=某些副产品没有定义价格 -AddSupplierPrice=添加采购价 -ChangeSupplierPrice=更改采购价 +AddSupplierPrice=添加采购价格 +ChangeSupplierPrice=更改采购价格 SupplierPrices=供应商价格 ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s NoRecordedSuppliers=没有供应商记录 @@ -36,14 +37,21 @@ ListOfSupplierProductForSupplier=供应商的产品清单和价格 %s SentToSuppliers=发送给供应商 ListOfSupplierOrders=采购订单清单 MenuOrdersSupplierToBill=采购订单发票 -NbDaysToDelivery=Delivery delay (days) -DescNbDaysToDelivery=The longest delivery delay of the products from this order +NbDaysToDelivery=交货延迟时间 (天) +DescNbDaysToDelivery=这订单中产品的最长交货延迟时间 SupplierReputation=供应商声誉 ReferenceReputation=Reference reputation DoNotOrderThisProductToThisSupplier=不订购 -NotTheGoodQualitySupplier=Low quality +NotTheGoodQualitySupplier=质量低下 ReputationForThisProduct=信誉 BuyerName=买家名称 AllProductServicePrices=全部 产品/服务 价格 -AllProductReferencesOfSupplier=All references of vendor +AllProductReferencesOfSupplier=供应商的所有参考 BuyingPriceNumShort=供应商价格 +RepeatableSupplierInvoice=供应商发票模块 +RepeatableSupplierInvoices=供应商发票模块 +RepeatableSupplierInvoicesList=供应商发票模块 +RecurringSupplierInvoices=Recurring supplier invoices +ToCreateAPredefinedSupplierInvoice=In order to create template supplier invoice, you must create a standard invoice, then, without validating it, click on the "%s" button. +GeneratedFromSupplierTemplate=Generated from supplier invoice template %s +SupplierInvoiceGeneratedFromTemplate=Supplier invoice %s Generated from supplier invoice template %s diff --git a/htdocs/langs/zh_CN/ticket.lang b/htdocs/langs/zh_CN/ticket.lang index eacf5e31b7b..5126ad8236d 100644 --- a/htdocs/langs/zh_CN/ticket.lang +++ b/htdocs/langs/zh_CN/ticket.lang @@ -27,6 +27,7 @@ Permission56003=删除票据 Permission56004=管理票据 Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=工单 TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,8 +91,8 @@ TicketPublicAccess=以下网址提供不需要识别的公共接口 TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=模块变量设置 TicketParamMail=电子邮件设置 -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=此处指定的文本将插入到确认从公共界面创 TicketParamPublicInterface=公共界面设置 TicketsEmailMustExist=需要现有电子邮件地址才能创建故障单 TicketsEmailMustExistHelp=在公共界面中,电子邮件地址应该已经填入数据库以创建新票证。 +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=公共界面 TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -182,7 +187,7 @@ TicketCategory=Ticket categorization SeeTicket=查看票据 TicketMarkedAsRead=票据已标记为已读 TicketReadOn=请继续阅读 -TicketCloseOn=截止日期 +TicketCloseOn=关闭日期 MarkAsRead=将票证标记为已读 TicketHistory=票务历史 AssignUser=分配给用户 @@ -190,8 +195,7 @@ TicketAssigned=现在分配了票证 TicketChangeType=改变类型 TicketChangeCategory=Change analytic code TicketChangeSeverity=改变严重程度 -TicketAddMessage=添加消息 -AddMessage=添加消息 +TicketAddMessage=Add private message MessageSuccessfullyAdded=新增票据 TicketMessageSuccessfullyAdded=消息已成功添加 TicketMessagesList=消息列表 @@ -202,8 +206,8 @@ TicketSeverity=严重 ShowTicket=看票 RelatedTickets=相关票据 TicketAddIntervention=创建干预 -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=确认票据关闭 ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +221,17 @@ SendMessageByEmail=通过电子邮件发送消息 TicketNewMessage=新消息 ErrorMailRecipientIsEmptyForSendTicketMessage=收件人是空的。没有电子邮件发送 TicketGoIntoContactTab=请进入“联系人”标签以选择它们 -TicketMessageMailIntro=介绍 +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=此文本仅在电子邮件的开头添加,不会保存。 -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers -TicketMessageMailIntroText=Hello,
    A new answer has been added to a ticket that you follow. Here is the message:
    +TicketMessageMailIntroText=您好,在您联络的工单上有新回复
    。以下是信息:
    TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=签名 -TicketMessageMailSignatureHelp=此文本仅在电子邮件末尾添加,不会保存。 -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=回复电子邮件的签名 -TicketMessageMailSignatureHelpAdmin=该文本将在响应消息后插入。 +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=只有此文本将保存在故障单卡的消息列表中。 TicketMessageSubstitutionReplacedByGenericValues=替换变量由通用值替换。 +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=机票已分配 TicketAssignedEmailBody=您已获得%s的票据#%s MarkMessageAsPrivate=将邮件标记为私有 +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=此消息不会显示给外部用户 TicketEmailOriginIssuer=发行人在门票的原产地 InitialMessage=初步讯息 @@ -255,7 +259,7 @@ TicketNotNotifyTiersAtCreate=不在创建时通知公司 NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket TicketNotifyAllTiersAtClose=All related contacts TicketNotNotifyTiersAtClose=No related contact -Unread=Unread +Unread=未读 TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=您可以通过单击以下链接查看 TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=请不要直接回复此电子邮件!使用该链接回复界面。 TicketPublicInfoCreateTicket=此表单允许您在我们的管理系统中记录支持服务单。 -TicketPublicPleaseBeAccuratelyDescribe=请准确描述问题。提供尽可能多的信息,以便我们正确识别您的请求。 +TicketPublicPleaseBeAccuratelyDescribe=请准确描述您的问题,提供尽可能多的信息让我们能够正确识别您的要求。 TicketPublicMsgViewLogIn=请输入故障单跟踪ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID diff --git a/htdocs/langs/zh_CN/trips.lang b/htdocs/langs/zh_CN/trips.lang index 13bf397bc51..6ff0844d1fd 100644 --- a/htdocs/langs/zh_CN/trips.lang +++ b/htdocs/langs/zh_CN/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=显示费用报表 -Trips=费用报表 -TripsAndExpenses=费用报表 -TripsAndExpensesStatistics=费用报表统计 -TripCard=费用报表信息卡 +AUTHOR=记录人员 +AUTHORPAIEMENT=付款人 AddTrip=创建费用报表 -ListOfTrips=费用报表列表 -ListOfFees=费用清单 -TypeFees=费用类型 -ShowTrip=显示费用报表 -NewTrip=新建费用报表 -LastExpenseReports=最新的%s费用报告 +AllExpenseReport=所有类型的费用报告 AllExpenseReports=所有费用报告 -CompanyVisited=公司/组织访问过 -FeesKilometersOrAmout=金额或公里 -DeleteTrip=删除费用报表 -ConfirmDeleteTrip=您确定要删除此费用报表吗? -ListTripsAndExpenses=费用报表列表 -ListToApprove=等待审批 -ExpensesArea=费用报表区 +AnyOtherInThisListCanValidate=被通知验证请求的人。 +AttachTheNewLineToTheDocument=将该行附加在上传的文档中 +AucuneLigne=尚未宣布费用报告 +BrouillonnerTrip=费用报表回退到"草稿"状态 +byEX_DAY=按天(限制为%s) +byEX_EXP=按行(限制为%s) +byEX_MON=按月(限制为%s) +byEX_YEA=按年(限制为%s) +CANCEL_USER=删除者 +CarCategory=车辆类别 ClassifyRefunded=归类 'Refunded' +CompanyVisited=公司/组织访问过 +ConfirmBrouillonnerTrip=您确定要将此费用报告移至状态“草稿”吗? +ConfirmCancelTrip=您确定要取消此费用报告吗? +ConfirmCloneExpenseReport=您确定要克隆此费用报告吗? +ConfirmDeleteTrip=您确定要删除此费用报表吗? +ConfirmPaidTrip=您确定要将此费用报表的状态更改为“付费”吗? +ConfirmRefuseTrip=您确定要拒绝此费用报告吗? +ConfirmSaveTrip=您确定要验证此费用报告吗? +ConfirmValideTrip=您确定要批准此费用报表吗? +DATE_CANCEL=取消日期 +DATE_PAIEMENT=付款日期 +DATE_REFUS=否认日期 +DATE_SAVE=验证日期 +DefaultCategoryCar=默认运输模式 +DefaultRangeNumber=默认范围编号 +DeleteTrip=删除费用报表 +ErrorDoubleDeclaration=您已将另一个费用报表声明为类似的日期范围。 +Error_EXPENSEREPORT_ADDON_NotDefined=错误,费用报告编号ref的规则未定义到模块“费用报告”的设置中 +ExpenseRangeOffset=抵消金额:%s +expenseReportCatDisabled=类别已禁用 - 请参阅c_exp_tax_cat字典 +expenseReportCoef=系数 +expenseReportCoefUndefined=(值未定义) +expenseReportOffset=偏移 +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=范围已禁用 - 请参阅c_exp_tax_range词典 +expenseReportRangeFromTo=从%d到%d +expenseReportRangeMoreThan=超过%d +expenseReportTotalForFive= d = 5的示例 +ExpenseReportApplyTo=适用于 +ExpenseReportApproved=费用报告获得批准 +ExpenseReportApprovedMessage=费用报告%s获得批准。
    - 用户:%s
    - 批准人:%s
    点击此处显示费用报告:%s +ExpenseReportCanceled=费用报告已取消 +ExpenseReportCanceledMessage=费用报告%s被取消。
    - 用户:%s
    - 取消:%s
    - 取消原因:%s
    点击此处查看费用报告:%s +ExpenseReportConstraintViolationError=超出最大金额 (规则%s):%s高于%s (超出禁止范围) +ExpenseReportConstraintViolationWarning=超出最大金额 (规则%s):%s高于%s (超出授权范围) +ExpenseReportDateEnd=截至日期 +ExpenseReportDateStart=开始日期 +ExpenseReportDomain=要申请的域名 +ExpenseReportIkDesc=您可以按类别和范围修改公里费用的计算。 d 是以千米为单位的距离 +ExpenseReportLimitAmount=最大金额 +ExpenseReportLimitOn=限制 +ExpenseReportLine=费用报表明细 +ExpenseReportPaid=支付了费用报告 +ExpenseReportPaidMessage=费用报告%s已付款。
    - 用户:%s
    - 支付方式:%s
    点击此处显示费用报告:%s +ExpenseReportPayment=支付费用报表 +ExpenseReportRef=参考。开支报告 +ExpenseReportRefused=费用报告遭到拒绝 +ExpenseReportRefusedMessage=费用报告%s被拒绝。
    - 用户:%s
    - 拒绝:%s
    - 拒绝动机:%s
    点击此处显示费用报告:%s +ExpenseReportRestrictive=超出禁止范围 +ExpenseReportRuleErrorOnSave=错误:%s +ExpenseReportRuleSave=已保存费用报表规则 +ExpenseReportRulesDesc=您可以为费用报告定义最高金额规则。将新的费用添加到费用报告时将应用这些规则。 ExpenseReportWaitingForApproval=新的费用报告已提交审批 ExpenseReportWaitingForApprovalMessage=新的费用报告已提交并正在等待批准。
    - 用户:%s
    - 期间:%s
    点击此处验证:%s ExpenseReportWaitingForReApproval=已提交费用报告以供重新批准 ExpenseReportWaitingForReApprovalMessage=已提交费用报告并等待重新批准。
    %s,您因此拒绝批准费用报告:%s。
    已提出新版本并等待您的批准。 > - 用户:%s
    - 期间:%s
    点击此处验证:%s -ExpenseReportApproved=费用报告获得批准 -ExpenseReportApprovedMessage=费用报告%s获得批准。
    - 用户:%s
    - 批准人:%s
    点击此处显示费用报告:%s -ExpenseReportRefused=费用报告遭到拒绝 -ExpenseReportRefusedMessage=费用报告%s被拒绝。
    - 用户:%s
    - 拒绝:%s
    - 拒绝动机:%s
    点击此处显示费用报告:%s -ExpenseReportCanceled=费用报告已取消 -ExpenseReportCanceledMessage=费用报告%s被取消。
    - 用户:%s
    - 取消:%s
    - 取消原因:%s
    点击此处查看费用报告:%s -ExpenseReportPaid=支付了费用报告 -ExpenseReportPaidMessage=费用报告%s已付款。
    - 用户:%s
    - 支付方式:%s
    点击此处显示费用报告:%s -TripId=费用报表ID号 -AnyOtherInThisListCanValidate=Person to be informed for validating the request. -TripSociete=公司资料信息 -TripNDF=费用报表信息 -PDFStandardExpenseReports=用于生成费用报表PDF文档的标准模板 -ExpenseReportLine=费用报表明细 -TF_OTHER=其他 -TF_TRIP=交通 -TF_LUNCH=午餐 -TF_METRO=地铁 -TF_TRAIN=火车 -TF_BUS=公交 -TF_CAR=汽车 -TF_PEAGE=总数 -TF_ESSENCE=燃料 -TF_HOTEL=酒店 -TF_TAXI=的士 -EX_KME=里程费用 -EX_FUE=燃料 CV -EX_HOT=酒店 -EX_PAR=停车 CV -EX_TOL=收费 CV -EX_TAX=各种税 -EX_IND=赔偿运输订阅 -EX_SUM=维修供应 -EX_SUO=办公用品 -EX_CAR=汽车出租 -EX_DOC=文档 -EX_CUR=客户收到 -EX_OTR=其他接收 -EX_POS=邮资 -EX_CAM=CV维护和修理 -EX_EMM=员工用餐 -EX_GUM=客人用餐 -EX_BRE=早餐 -EX_FUE_VP=燃料PV -EX_TOL_VP=收费PV -EX_PAR_VP=停车PV -EX_CAM_VP=PV 维护和维修 -DefaultCategoryCar=默认运输模式 -DefaultRangeNumber=默认范围编号 -UploadANewFileNow=Upload a new document now -Error_EXPENSEREPORT_ADDON_NotDefined=错误,费用报告编号ref的规则未定义到模块“费用报告”的设置中 -ErrorDoubleDeclaration=您已将另一个费用报表声明为类似的日期范围。 -AucuneLigne=尚未宣布费用报告 -ModePaiement=支付模式 -VALIDATOR=用户负责批准 -VALIDOR=被批准 -AUTHOR=记录人员 -AUTHORPAIEMENT=付款人 -REFUSEUR=否认人 -CANCEL_USER=删除者 -MOTIF_REFUS=原因 -MOTIF_CANCEL=原因 -DATE_REFUS=否认日期 -DATE_SAVE=验证日期 -DATE_CANCEL=取消日期 -DATE_PAIEMENT=付款日期 -ExpenseReportRef=参考。开支报告 -ValidateAndSubmit=同意验证和提交 -ValidatedWaitingApproval=验证 (等待审批) -NOT_AUTHOR=您不是此费用报告的作者。操作取消。 -ConfirmRefuseTrip=您确定要拒绝此费用报告吗? -ValideTrip=批准费用报告 -ConfirmValideTrip=您确定要批准此费用报表吗? -PaidTrip=支付费用报告 -ConfirmPaidTrip=您确定要将此费用报表的状态更改为“付费”吗? -ConfirmCancelTrip=您确定要取消此费用报告吗? -BrouillonnerTrip=费用报表回退到"草稿"状态 -ConfirmBrouillonnerTrip=您确定要将此费用报告移至状态“草稿”吗? -SaveTrip=批准费用报表 -ConfirmSaveTrip=您确定要验证此费用报告吗? -NoTripsToExportCSV=此期间无出口费用报告。 -ExpenseReportPayment=支付费用报表 +ExpenseReportsIk=里程费用的配置 +ExpenseReportsRules=费用报告规则 ExpenseReportsToApprove=批准费用报表 ExpenseReportsToPay=支付费用报表 -ConfirmCloneExpenseReport=您确定要克隆此费用报告吗? -ExpenseReportsIk=Configuration of mileage charges -ExpenseReportsRules=费用报告规则 -ExpenseReportIkDesc=您可以按类别和范围修改公里费用的计算。 d 是以千米为单位的距离 -ExpenseReportRulesDesc=You can define max amount rules for expense reports. These rules will be applied when a new expense is added to an expense report -expenseReportOffset=偏移 -expenseReportCoef=系数 -expenseReportTotalForFive= d = 5的示例 -expenseReportRangeFromTo=从%d到%d -expenseReportRangeMoreThan=超过%d -expenseReportCoefUndefined=(值未定义) -expenseReportCatDisabled=类别已禁用 - 请参阅c_exp_tax_cat字典 -expenseReportRangeDisabled=范围已禁用 - 请参阅c_exp_tax_range词典 -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=适用于 -ExpenseReportDomain=要申请的域名 -ExpenseReportLimitOn=限制 -ExpenseReportDateStart=开始日期 -ExpenseReportDateEnd=截至日期 -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden -AllExpenseReport=所有类型的费用报告 -OnExpense=费用行 -ExpenseReportRuleSave=已保存费用报表规则 -ExpenseReportRuleErrorOnSave=错误:%s -RangeNum=范围%d -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) -byEX_DAY=按天(限制为%s) -byEX_MON=按月(限制为%s) -byEX_YEA=按年(限制为%s) -byEX_EXP=按行(限制为%s) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpensesArea=费用报表区 +FeesKilometersOrAmout=金额或公里 +LastExpenseReports=最新的%s费用报告 +ListOfFees=费用清单 +ListOfTrips=费用报表列表 +ListToApprove=等待审批 +ListTripsAndExpenses=费用报表列表 +MOTIF_CANCEL=原因 +MOTIF_REFUS=原因 +ModePaiement=支付模式 +NewTrip=新建费用报表 nolimitbyEX_DAY=按天(没有限制) +nolimitbyEX_EXP=按行(没有限制) nolimitbyEX_MON=按月(无限制) nolimitbyEX_YEA=按年(无限制) -nolimitbyEX_EXP=按行(没有限制) -CarCategory=Vehicle category -ExpenseRangeOffset=抵消金额:%s +NoTripsToExportCSV=此期间无出口费用报告。 +NOT_AUTHOR=您不是此费用报告的作者。操作取消。 +OnExpense=费用行 +PDFStandardExpenseReports=用于生成费用报表PDF文档的标准模板 +PaidTrip=支付费用报告 +REFUSEUR=否认人 RangeIk=里程范围 -AttachTheNewLineToTheDocument=Attach the line to an uploaded document +RangeNum=范围%d +SaveTrip=批准费用报表 +ShowExpenseReport=显示费用报表 +ShowTrip=显示费用报表 +TripCard=费用报表信息卡 +TripId=费用报表ID号 +TripNDF=费用报表信息 +TripSociete=公司资料信息 +Trips=费用报表 +TripsAndExpenses=费用报表 +TripsAndExpensesStatistics=费用报表统计 +TypeFees=费用类型 +UploadANewFileNow=立即上传新文档 +VALIDATOR=用户负责批准 +VALIDOR=被批准 +ValidateAndSubmit=同意验证和提交 +ValidatedWaitingApproval=验证 (等待审批) +ValideTrip=批准费用报告 + +## Dictionary +EX_BRE=早餐 +EX_CAM=CV维护和修理 +EX_CAM_VP=PV 维护和维修 +EX_CAR=汽车出租 +EX_CUR=接收的客户 +EX_DOC=文档 +EX_EMM=员工用餐 +EX_FUE=燃料 CV +EX_FUE_VP=燃料PV +EX_GUM=客人用餐 +EX_HOT=酒店 +EX_IND=赔偿运输订阅 +EX_KME=里程费用 +EX_OTR=其他接收 +EX_PAR=停车 CV +EX_PAR_VP=停车PV +EX_POS=邮资 +EX_SUM=维修供应 +EX_SUO=办公用品 +EX_TAX=各种税 +EX_TOL=收费 CV +EX_TOL_VP=收费PV +TF_BUS=公交 +TF_CAR=汽车 +TF_ESSENCE=燃料 +TF_HOTEL=酒店 +TF_LUNCH=午餐 +TF_METRO=地铁 +TF_OTHER=其他 +TF_PEAGE=总数 +TF_TAXI=的士 +TF_TRAIN=火车 +TF_TRIP=交通 diff --git a/htdocs/langs/zh_CN/users.lang b/htdocs/langs/zh_CN/users.lang index fb2abe3cd20..38faecdafd0 100644 --- a/htdocs/langs/zh_CN/users.lang +++ b/htdocs/langs/zh_CN/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=从组中删除 PasswordChangedAndSentTo=密码更改,发送到%s。 PasswordChangeRequest=请求更改 %s 的密码 PasswordChangeRequestSent=要求更改密码的S%发送到%s。 -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=确认密码重置 MenuUsersAndGroups=用户和组 @@ -68,7 +68,6 @@ CreateDolibarrLogin=创建用户 CreateDolibarrThirdParty=创建合伙人 LoginAccountDisableInDolibarr=停用帐户 UsePersonalValue=使用自定义值 -InternalUser=内部用户 ExportDataset_user_1=用户及属性 DomainUser=域用户%s Reactivate=重新激活 @@ -114,7 +113,7 @@ UserLogoff=用户注销 UserLogged=用户登录 DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +123,9 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/zh_CN/website.lang b/htdocs/langs/zh_CN/website.lang index 7e6f598ca4f..d2e23b422f8 100644 --- a/htdocs/langs/zh_CN/website.lang +++ b/htdocs/langs/zh_CN/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=代码 +WebsiteName=Name of the website WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. DeleteWebsite=删除网址 ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. The files uploaded (like into the medias directory, the ECM module, ...) will remain. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=在HTML标题的底部添加(对所有页面通用) WEBSITE_ROBOT=机器人文件(robots.txt) WEBSITE_HTACCESS=Website .htaccess file WEBSITE_MANIFEST_JSON=Website manifest.json file -WEBSITE_README=README.md file WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML标头(仅限此页面) PageNameAliasHelp=页面的名称或别名。
    当从Web服务器的虚拟主机(如Apacke,Nginx,...)运行网站时,此别名也用于伪造SEO URL。使用“ %s ”按钮编辑此别名。 EditTheWebSiteForACommonHeader=注意:如果要为所有页面定义个性化标题,请在站点级别而不是页面/容器上编辑标题。 @@ -42,10 +43,12 @@ ViewPageInNewTab=在新标签页查看页面 SetAsHomePage=设为首页 RealURL=真实URL地址 ViewWebsiteInProduction=使用主页URL网址查看网页 +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Use with Apache/NGinx/...
    Create on your web server (Apache, Nginx, ...) a dedicated Virtual Host with PHP enabled and a Root directory on
    %s ExampleToUseInApacheVirtualHostConfig=Example to use in Apache virtual host setup: YouCanAlsoTestWithPHPS=Use with PHP embedded server
    On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
    If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s ReadPerm=阅读 WritePerm=写 @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=您可以使用编辑器中的“源”按钮编辑 YouCanEditHtmlSource=
    You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    You can also include content of another Page/Container with the following syntax:
    <?php includeContainer('alias_of_container_to_include'); ?>

    You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    To add a link to another page, use the syntax:
    <a href="alias_of_page_to_link_to.php">mylink<a>

    To include a link to download a file stored into the documents directory, use the document.php wrapper:
    Example, for a file into documents/ecm (need to be logged), syntax is:
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For a file into documents/medias (open directory for public access), syntax is:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For a file shared with a share link (open access using the sharing hash key of file), syntax is:
    <a href="/document.php?hashp=publicsharekeyoffile">

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/medias (open directory for public access), syntax is:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
    #YouCanEditHtmlSource2=
    To include a image shared publicaly, use the viewimage.php wrapper:
    Example with a shared key 123456789, syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=克隆页面/容器 CloneSite=克隆网站 SiteAdded=Website added @@ -78,7 +81,7 @@ IDOfPage=页面ID Banner=旗帜 BlogPost=博客文章 WebsiteAccount=Website account -WebsiteAccounts=Website accounts +WebsiteAccounts=网站帐号 AddWebsiteAccount=创建网站帐户 BackToListForThirdParty=Back to list for the third-party DisableSiteFirst=首先停用网站 @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/zh_CN/withdrawals.lang b/htdocs/langs/zh_CN/withdrawals.lang index 72dd3ffd8b9..61086602c51 100644 --- a/htdocs/langs/zh_CN/withdrawals.lang +++ b/htdocs/langs/zh_CN/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit tran InvoiceWaitingWithdraw=发票等待直接付款 InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer AmountToWithdraw=收回的款额 +AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=No invoice open for '%s' is waiting. Go on tab '%s' on invoice card to make a request. -NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=User Responsible WithdrawalsSetup=提款设置 CreditTransferSetup=Credit transfer setup @@ -41,6 +42,7 @@ CreditTransferStatistics=Credit transfer statistics Rejects=拒绝 LastWithdrawalReceipt=最新的%s直接借记收据 MakeWithdrawRequest=直接付款请求 +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Make a credit transfer request WithdrawRequestsDone=%s记录了直接付款请求 BankTransferRequestsDone=%s credit transfer requests recorded @@ -75,7 +77,7 @@ StatusMotif0=未指定 StatusMotif1=提供insuffisante StatusMotif2=Tirage conteste StatusMotif3=没有直接付款订单 -StatusMotif4=Sales Order +StatusMotif4=销售订单 StatusMotif5=肋inexploitable StatusMotif6=帐户无余额 StatusMotif7=司法判决 @@ -99,8 +101,11 @@ CreditDate=信贷 WithdrawalFileNotCapable=无法为您所在的国家/地区生成提款收据文件%s(不支持您所在的国家/地区) ShowWithdraw=Show Direct Debit Order IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. -DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Payment by direct debit to generate and manage the direct debit order. When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. -DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu Bank->Payment by credit transfer to generate and manage the credit transfer order. When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Debit order file CreditTransferFile=Credit transfer file SetToStatusSent=设置状态“发送的文件” @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=无法为空金额创建直接付款请求。 SepaMandate=SEPA直接借记授权 SepaMandateShort=SEPA授权 PleaseReturnMandate=请将此任务表格通过电子邮件发送至%s或邮寄至 -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=债权人标识符 CreditorName=Creditor Name SEPAFillForm=(B)请填写标有*的所有字段 @@ -136,6 +141,7 @@ SEPAFRST=SEPA FRST ExecutionDate=执行日期 CreateForSepa=创建直接付款文件 ICS=Creditor Identifier - ICS +IDS=Debitor Identifier END_TO_END="EndToEndId" SEPA XML tag - Unique id assigned per transaction USTRD="Unstructured" SEPA XML tag ADDDAYS=Add days to Execution Date @@ -154,3 +160,4 @@ ErrorICSmissing=Missing ICS in Bank account %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s diff --git a/htdocs/langs/zh_CN/zapier.lang b/htdocs/langs/zh_CN/zapier.lang index b4cc4ccba4a..5ca9f7cede9 100644 --- a/htdocs/langs/zh_CN/zapier.lang +++ b/htdocs/langs/zh_CN/zapier.lang @@ -13,9 +13,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -ModuleZapierForDolibarrName = Zapier for Dolibarr -ModuleZapierForDolibarrDesc = Zapier for Dolibarr module -ZapierForDolibarrSetup=Setup of Zapier for Dolibarr -ZapierDescription=Interface with Zapier -ZapierAbout=About the module Zapier -ZapierSetupPage=There is no need for a setup on Dolibarr side to use Zapier. However, you must generate and publish a package on zapier to be able to use Zapier with Dolibarr. See documentation on this wiki page. +ModuleZapierForDolibarrName = Dolibarr 的 Zapier +ModuleZapierForDolibarrDesc = Dolibarr 的 Zapier 模块 +ZapierForDolibarrSetup=Dolibarr 的 Zapier 设置 +ZapierDescription=与 Zapier 的接口 +ZapierAbout=关于模块 Zapier +ZapierSetupPage=使用 Zapier 不需要在 Dolibarr 方面进行设置。然而,你必须在 Zapier 上生成并发布一个包,以便能够在 Dolibarr 上使用 Zapier。请看这个维基页面上的文档。 diff --git a/htdocs/langs/zh_HK/admin.lang b/htdocs/langs/zh_HK/admin.lang index d79adb1e960..86054ea0fae 100644 --- a/htdocs/langs/zh_HK/admin.lang +++ b/htdocs/langs/zh_HK/admin.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=Print reference and period of product item in PDF BoldLabelOnPDF=Print label of product item in Bold in PDF -Foundation=Foundation -Version=Version +Foundation=基礎 +Version=版本 Publisher=Publisher -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended +VersionProgram=版本程序 +VersionLastInstall=初始安裝版本 +VersionLastUpgrade=最新版本升級 +VersionExperimental=實驗性的 +VersionDevelopment=發展 +VersionUnknown=未知 +VersionRecommanded=推薦的 FileCheck=Fileset Integrity Checks FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to determine if any files have been modified (e.g by a hacker). FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. @@ -27,17 +27,17 @@ FilesAdded=Added Files FileCheckDolibarr=Check integrity of application files AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when the application is installed from an official package XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Session save location -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users Sessions +SessionId=會話 ID +SessionSaveHandler=保存會話的處理程序 +SessionSavePath=會話保存位置 +PurgeSessions=清除會話 +ConfirmPurgeSessions=您真的要清除所有會話嗎?這將斷開每個用戶(除了你自己)。 +NoSessionListWithThisHandler=在您的 PHP 中配置的保存會話處理程序不允許列出所有正在運行的會話。 +LockNewSessions=鎖定新連接 +ConfirmLockNewSessions=您確定要將任何新的 Dolibarr 連接限制為您自己嗎?只有用戶 %s 之後才能連接。 +UnlockNewSessions=解除連接鎖 +YourSession=您的會話 +Sessions=用戶會話 WebUserGroup=Web server user/group PermissionsOnFiles=Permissions on files PermissionsOnFilesInWebRoot=Permissions on files in web root directory @@ -51,8 +51,6 @@ ClientSortingCharset=Client collation WarningModuleNotActive=Module %s must be enabled WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user InternalUsers=Internal users ExternalUsers=External users UserInterface=User interface @@ -109,7 +107,7 @@ NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page +UseCaptchaCode=Use graphical code (CAPTCHA) on login page and some public pages AntiVirusCommand=Full path to antivirus command AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= More parameters on command line @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) @@ -439,8 +438,10 @@ Unique=Unique Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table ExtrafieldSeparator=Separator (not a field) @@ -477,7 +478,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Erase all current barcode values ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=All barcode values have been removed @@ -501,10 +502,11 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. -ActualMailSPFRecordFound=Actual SPF record found : %s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Click to show description DependsOn=This module needs the module(s) RequiredBy=This module is required by module(s) @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Enable usage of overwritten translation +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Field @@ -645,9 +647,9 @@ Module2400Name=Events/Agenda Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. Module2500Name=DMS / ECM Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=API/Web services (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) +Module2610Name=API / Web services (REST server) Module2610Desc=Enable the Dolibarr REST server providing API services Module2660Name=Call WebServices (SOAP client) Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Add features to manage Incoterms Module63000Name=Resources Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module94160Name=Receptions Permission11=Read customer invoices Permission12=Create/modify customer invoices Permission13=Invalidate customer invoices @@ -714,13 +717,14 @@ Permission27=Delete commercial proposals Permission28=Export commercial proposals Permission31=Read products Permission32=Create/modify products +Permission33=Read prices products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products Permission39=Ignore minimum price -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Read projects and tasks (shared projects and projects of which I am a contact). +Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks +Permission44=Delete projects (shared projects and projects of which I am a contact) Permission45=Export projects Permission61=Read interventions Permission62=Create/modify interventions @@ -739,6 +743,7 @@ Permission79=Create/modify subscriptions Permission81=Read customers orders Permission82=Create/modify customers orders Permission84=Validate customers orders +Permission85=Generate the documents sales orders Permission86=Send customers orders Permission87=Close customers orders Permission88=Cancel customers orders @@ -766,9 +771,10 @@ Permission122=Create/modify third parties linked to user Permission125=Delete third parties linked to user Permission126=Export third parties Permission130=Create/modify third parties payment information -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) +Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) +Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=Read providers Permission147=Read stats Permission151=Read direct debit payment orders @@ -839,9 +845,9 @@ Permission286=Export contacts Permission291=Read tariffs Permission292=Set permissions on the tariffs Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=Read services Permission312=Assign service/subscription to contract Permission331=Read bookmarks @@ -873,6 +879,7 @@ Permission525=Access loan calculator Permission527=Export loans Permission531=Read services Permission532=Create/modify services +Permission533=Read prices services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services @@ -883,6 +890,9 @@ Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials @@ -964,11 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu +Permission4031=Read personal information +Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1068,9 +1081,14 @@ DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Setup saved SetupNotSaved=Setup not saved +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Back to Module list BackToDictionaryList=Back to Dictionaries list TypeOfRevenueStamp=Type of tax stamp @@ -1122,7 +1140,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Always active Upgrade=Upgrade @@ -1187,7 +1205,7 @@ BankModuleNotActive=Bank accounts module not enabled ShowBugTrackLink=Show the link "%s" ShowBugTrackLinkDesc=Keep empty to not display this link, use value 'github' for the link to the Dolibarr project or define directly an url 'https://...' Alerts=Alerts -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time @@ -1228,11 +1246,13 @@ BrowserName=Browser name BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged +TrackableSecurityEvents=Trackable security events LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. CompanyFundationDesc=Edit the information of your company/organization. Click on "%s" button at the bottom of the page when done. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. AccountantFileNumber=Accountant code DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1283,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP DownloadMoreSkins=More skins to download SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1339,6 +1361,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    @@ -1368,7 +1391,7 @@ GetBarCode=Get barcode NumberingModules=Numbering models DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. PasswordGenerationPerso=Return a password according to your personally defined configuration. SetupPerso=According to your configuration @@ -1420,6 +1443,12 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup +InvoiceCheckPosteriorDate=Check facture date before validation +InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1462,11 +1491,12 @@ WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) ##### Members ##### MembersSetup=Members module setup MemberMainOptions=Main options +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Manage a Login for each member AdherentMailRequired=Email required to create a new member MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1728,8 +1758,8 @@ ActivateFCKeditor=Activate advanced editor for: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) FCKeditorForUserSignature=WYSIWIG creation/edition of user signature FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) @@ -1752,7 +1782,7 @@ DetailMenuHandler=Menu handler where to show new menu DetailMenuModule=Module name if menu entry come from a module DetailType=Type of menu (top or left) DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Condition to show or not entry DetailRight=Condition to display unauthorized grey menus DetailLangs=Lang file name for label code translation @@ -1823,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatib CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. CashDeskForceDecreaseStockLabel=Stock decrease for batch products was forced. CashDeskForceDecreaseStockDesc=Decrease first by the oldest eatby and sellby dates. -CashDeskReaderKeyCodeForEnter=Key code for "Enter" defined in barcode reader (Example: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Bookmark module setup BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. @@ -1861,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Vendor invoices numbering models IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
    Examples:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. @@ -1912,11 +1942,13 @@ BackupDumpWizard=Wizard to build the database dump file BackupZipWizard=Wizard to build the archive of documents directory SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
    $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (use 'ffffff' for no highlight) HighlightLinesChecked=Highlight color of the line when it is checked (use 'ffffff' for no highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Text color of Page title @@ -1925,7 +1957,7 @@ PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache a NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Background color for Left menu BackgroundTableTitleColor=Background color for Table title line BackgroundTableTitleTextColor=Text color for Table title line @@ -1938,7 +1970,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Icon name in format:
    - image.png for an image file into the current theme directory
    - image.png@module if file is into the directory /img/ of a module
    - fa-xxx for a FontAwesome fa-xxx picto
    - fonwtawesome_xxx_fa_color_size for a FontAwesome fa-xxx picto (with prefix, color and size set) PositionIntoComboList=Position of line into combo lists SellTaxRate=Sales tax rate RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1966,6 +1998,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Contracts MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Third parties MailToMember=Members MailToUser=Users @@ -2019,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=Right margin on PDF MAIN_PDF_MARGIN_TOP=Top margin on PDF MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +DOC_SHOW_FIRST_SALES_REP=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines MAIN_PDF_NO_SENDER_FRAME=Hide borders on sender address frame @@ -2036,8 +2070,10 @@ RemoveSpecialChars=Remove special characters COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact) -GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
    %s @@ -2048,27 +2084,47 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields and combo lists only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector +EmailCollectors=Email collectors EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). NewEmailCollector=New Email Collector EMailHost=Host of email IMAP server +EMailHostPort=Port of email IMAP server +loginPassword=Login/Password +oauthToken=Oauth2 token +accessType=Acces type +oauthService=Oauth service +TokenMustHaveBeenCreated=Module OAuth2 must be enabled and an oauth2 token must have been created with the correct permissions (for example scope "gmail_full" with OAuth for Gmail). MailboxSourceDirectory=Mailbox source directory MailboxTargetDirectory=Mailbox target directory EmailcollectorOperations=Operations to do by collector EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Max number of emails collected per collect +TestCollectNow=Test collect CollectNow=Collect now -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? +ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result +EmailCollectorHideMailHeaders=Do not include the content of email header into the saved content of collected e-mails +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +EmailCollectorConfirmCollect=Do you want to run this collector now? +EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Example collecting e-mail answers sent from an external e-mail software +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswers=Example collecting all ingoing messages being answers to messages sent from Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. +EmailCollectorExampleToCollectLeads=Example collecting leads +EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. +EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done -XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record an event in agenda (with type Email sent or received) CreateLeadAndThirdParty=Create a lead (and a third party if necessary) -CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -2082,14 +2138,14 @@ CreateCandidature=Create job application FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree -OperationParamDesc=Define the rules to use to extract or set values.
    Example for operations that need to extract a name from email subject:
    name=EXTRACT:SUBJECT:Message from company ([^\n]*)
    Example for operations that create objects:
    objproperty1=SET:the value to set
    objproperty2=SET:a value including value of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. ResourceSetup=Configuration of Resource module UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). DisabledResourceLinkUser=Disable feature to link a resource to users DisabledResourceLinkContact=Disable feature to link a resource to contacts -EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Confirm module reset OnMobileOnly=On small screen (smartphone) only DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) @@ -2134,7 +2190,7 @@ DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +RESTRICT_ON_IP=Allow API access to only certain client IPs (wildcard not allowed, use space between values). Empty means every clients can access. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Based on the library SabreDAV version NotAPublicIp=Not a public IP @@ -2144,6 +2200,10 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_SHOW_PROJECT=Show project on document ShowProjectLabel=Project Label +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. @@ -2172,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Recommended NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2185,6 +2245,7 @@ NoExternalModuleWithUpdate=No updates found for external modules SwaggerDescriptionFile=Swagger API description file (for use with redoc for example) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You should use REST API instead. RandomlySelectedIfSeveral=Randomly selected if several pictures are available +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Database password is obfuscated in conf file DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file APIsAreNotEnabled=APIs modules are not enabled @@ -2206,12 +2267,12 @@ DashboardDisableBlockAdherent=Disable the thumb for memberships DashboardDisableBlockExpenseReport=Disable the thumb for expense reports DashboardDisableBlockHoliday=Disable the thumb for leaves EnabledCondition=Condition to have field enabled (if not enabled, visibility will always be off) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax LanguageAndPresentation=Language and presentation SkinAndColors=Skin and colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sales tax +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sales tax PDF_USE_1A=Generate PDF with PDF/A-1b format MissingTranslationForConfKey = Missing translation for %s NativeModules=Native modules @@ -2220,3 +2281,77 @@ API_DISABLE_COMPRESSION=Disable compression of API responses EachTerminalHasItsOwnCounter=Each terminal use its own counter. FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first PreviousHash=Previous hash +LateWarningAfter="Late" warning after +TemplateforBusinessCards=Template for a business card in different size +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Use a low memory mode +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Settings +WebhookSetupPage = Webhook setup page +ShowQuickAddLink=Show a button to quickly add an element in top right menu + +HashForPing=Hash used for ping +ReadOnlyMode=Is instance in "Read Only" mode +DEBUGBAR_USE_LOG_FILE=Use the dolibarr.log file to trap Logs +UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. +FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') +DefaultOpportunityStatus=Default opportunity status (first status when lead is created) + +IconAndText=Icon and text +TextOnly=Text only +IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar +IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon +IconOnly=Icon only - Text on tooltip only +INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices +INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France +UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
    Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/zh_HK/datapolicy.lang b/htdocs/langs/zh_HK/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/zh_HK/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example
    Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/zh_HK/errors.lang b/htdocs/langs/zh_HK/errors.lang index e05f9dc7a2a..20f5b6f264a 100644 --- a/htdocs/langs/zh_HK/errors.lang +++ b/htdocs/langs/zh_HK/errors.lang @@ -269,7 +269,7 @@ ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of acco ErrorFailedToFindEmailTemplate=Failed to find template with code name %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. ErrorActionCommPropertyUserowneridNotDefined=User's owner is required -ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Version check fail ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify. diff --git a/htdocs/langs/zh_HK/externalsite.lang b/htdocs/langs/zh_HK/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/zh_HK/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Setup link to external website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry diff --git a/htdocs/langs/zh_HK/ftp.lang b/htdocs/langs/zh_HK/ftp.lang deleted file mode 100644 index d80b87c2715..00000000000 --- a/htdocs/langs/zh_HK/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP Client module setup -NewFTPClient=New FTP connection setup -FTPArea=FTP Area -FTPAreaDesc=This screen shows a view of an FTP server. -SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete -FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions -FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password -FTPFailedToRemoveFile=Failed to remove file %s. -FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/zh_HK/main.lang b/htdocs/langs/zh_HK/main.lang index 2d850927782..bbb4ed227c4 100644 --- a/htdocs/langs/zh_HK/main.lang +++ b/htdocs/langs/zh_HK/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Open Upload=Upload ToLink=Link Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Password -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=Name NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Description DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=Other Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index e3e5087cbe0..2e30e85acf7 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=非歐盟國家 CountriesInEECExceptMe=除了%s以外的歐盟國家 CountriesExceptMe=除了%s以外的所有國家 AccountantFiles=匯出來源文件 -ExportAccountingSourceDocHelp=使用此工具,您可以匯出用於產生會計的來源事件(CSV 和 PDF 中的清單)。 +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
    The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=要匯出您的日記帳,請使用選單條目 %s - %s。 +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=依會計科目檢視 VueBySubAccountAccounting=依會計子分類帳檢視 @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=在設定中供應商的主要會計帳戶尚 MainAccountForUsersNotDefined=在設定中使用者的主要會計帳戶尚未定義 MainAccountForVatPaymentNotDefined=在設定中營業稅付款的主要會計帳戶尚未定義 MainAccountForSubscriptionPaymentNotDefined=未在"設定"中定義訂閱付款的主會計帳戶 +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=會計區域 AccountancyAreaDescIntro=會計模組的使用要數個步驟才能完成: @@ -107,8 +109,8 @@ MenuTaxAccounts=稅捐會計項目 MenuExpenseReportAccounts=費用報表會計項目 MenuLoanAccounts=借款會計項目 MenuProductsAccounts=產品會計項目 -MenuClosureAccounts=關閉帳戶 -MenuAccountancyClosure=關閉 +MenuClosureAccounts=結束帳戶 +MenuAccountancyClosure=結案 MenuAccountancyValidationMovements=驗證動作 ProductsBinding=產品會計項目 TransferInAccounting=會計轉移 @@ -161,42 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=停用銀行帳戶中直接記錄交易 ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=在日記帳上啟用草稿匯出 ACCOUNTANCY_COMBO_FOR_AUX=為子公司帳戶啟用組合列表(如果您有很多合作方,可能會很慢,損失搜尋部份數值的能力) ACCOUNTING_DATE_START_BINDING=定義開始綁定和轉移會計的日期。小於此日期,交易將不會轉入會計。 -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=在會計轉帳時,預設選擇為週期顯示 +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=銷售日記帳 -ACCOUNTING_PURCHASE_JOURNAL=採購日記帳 -ACCOUNTING_MISCELLANEOUS_JOURNAL=雜項日記帳 +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=費用報表日記帳 -ACCOUNTING_SOCIAL_JOURNAL=交際/社交日記帳 +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=有新的日記帳 +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=交際/社交日記帳 ACCOUNTING_RESULT_PROFIT=結果會計科目(利潤) ACCOUNTING_RESULT_LOSS=結果會計科目(虧損) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=關閉日記帳 +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=結束日記帳 -ACCOUNTING_ACCOUNT_TRANSFER_CASH=過渡性銀行轉帳的會計帳戶 +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=過渡銀行轉帳帳戶 -ACCOUNTING_ACCOUNT_SUSPENSE=等待的會計科目 -DONATION_ACCOUNTINGACCOUNT=註冊捐款的會計科目 -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=用於註冊訂閱的會計科目 +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=會計帳戶預設註冊客戶存款 -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=所購買產品的預設會計科目(如果在產品表中未定義則使用) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=預設情況下,在EEC中所購買產品的會計帳戶(如果未在產品單中定義則使用) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=預設情況下,用於在EEC以外購買產品並且輸入產品的會計帳戶(如果在產品表中未定義,則使用) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=所銷售產品的預設會計科目(如果在產品表中未定義則使用) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=在歐盟所販賣產品的預設會計科目(如果在產品表中未定義則使用) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=在歐盟以外地區所販賣產品並且輸出的預設會計科目(如果在產品表中未定義則使用) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=委外服務預設會計項目(若沒在服務頁中定義時使用) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=預設情況下,在EEC中購買服務的會計帳戶(如果未在服務單中定義,則使用) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=預設情況下,用於在EEC以外購買服務並且輸入服務的會計帳戶(如果未在服務單中定義,則使用) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=服務收入預設會計項目(若沒在服務頁中定義時使用) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=在歐盟國家中服務收入預設會計項目(若沒在服務頁中定義時使用) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=在歐盟以外國家中服務收入預設會計項目(若沒在服務頁中定義時使用) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=文件類型 Docdate=日期 @@ -211,7 +217,7 @@ Codejournal=日記帳 JournalLabel=日記帳標籤 NumPiece=件數 TransactionNumShort=交易編號 -AccountingCategory=自定義群組 +AccountingCategory=Custom group of accounts GroupByAccountAccounting=依總分類帳帳戶的群組 GroupBySubAccountAccounting=依子分類帳帳戶的群組 AccountingAccountGroupsDesc=您可定義某些會計科目大類。他們可以在個人化會計報表中使用。 @@ -265,38 +271,38 @@ Reconcilable=可和解 TotalVente=稅前總周轉 TotalMarge=總銷貨淨利 -DescVentilCustomer=在此查閱客戶發票清單是否關聯到產品會計項目 -DescVentilMore=在大多數情況下,如果您使用預定義的產品或服務,並且在產品/服務卡上設定了帳號,則應用程序將能夠在發票行和會計科目表的會計科目之間進行所有綁定。點擊按鈕“ %s” 。如果未在產品/服務卡上設定帳戶,或者仍有一些行未綁定到帳戶,則必須從選單“ %s ”進行手動綁定。 -DescVentilDoneCustomer=在此查閱已開立各式發票客戶的清單及其產品會計項目 -DescVentilTodoCustomer=關聯發票沒有關聯到產品會計項目 -ChangeAccount=用以下會計項目變更產品/服務的會計項目: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=請在此處查詢綁定或尚未綁定到產品會計帳戶的供應商發票行的清單(僅顯示尚未在會計中轉移的記錄) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=請在此處查詢供應商發票行及其會計帳戶的清單 DescVentilTodoExpenseReport=關聯費用報表行數還沒準備好要關聯費用會計項目 DescVentilExpenseReport=在此查閱費用報表行數是否關聯到費用會計項目的清單 DescVentilExpenseReportMore=如果您在費用報表類型上設定會計帳戶,則應用程序將能夠在費用報表和會計科目表的會計帳戶之間進行所有綁定,只需點擊按鈕“ %s”即可 。如果未在費用字典中設定帳戶,或者您仍有某些行未綁定到任何帳戶,則必須從選單“ %s ”進行手動綁定。 DescVentilDoneExpenseReport=在此查閱費用報表的清單及其費用會計項目。 -Closure=年度關閉 -DescClosure=請在此處查詢依照月份的未驗證與未鎖定移動數 +Closure=年度結帳 +DescClosure=請在此處查詢按月排列的尚未驗證及尚未鎖定的異動數 OverviewOfMovementsNotValidated=未驗證和未鎖定的移動概覽 AllMovementsWereRecordedAsValidated=所有動作都被記錄為已驗證並鎖定 NotAllMovementsCouldBeRecordedAsValidated=並非所有動作都可以記錄為已驗證與已鎖定 -ValidateMovements=驗證與鎖定記錄... +ValidateMovements=Validate and lock movements... DescValidateMovements=禁止修改,刪除任何文字內容。所有條目都必須經過驗證,否則將無法結案 ValidateHistory=自動關聯 AutomaticBindingDone=自動綁定完成 (%s) - 某些記錄無法自動綁定 (%s) -ErrorAccountancyCodeIsAlreadyUse=錯誤,您不能刪除此會計項目,因為已使用 +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=平衡中 FicheVentilation=關聯卡片 GeneralLedgerIsWritten=交易已紀錄到總帳中 GeneralLedgerSomeRecordWasNotRecorded=某些交易未記錄。若沒有其他錯誤,這可能是因為已被記錄。 NoNewRecordSaved=沒有更多記錄要轉移 -ListOfProductsWithoutAccountingAccount=清單中的產品沒有指定任何會計項目 +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=修改關聯性 Accounted=計入總帳 NotYetAccounted=尚未轉入會計 @@ -322,6 +328,7 @@ AccountingJournalType4=銀行 AccountingJournalType5=費用報表 AccountingJournalType8=庫存 AccountingJournalType9=擁有-全新 +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=此日記帳已使用 AccountingAccountForSalesTaxAreDefinedInto=注意:銷項稅額的會計項目定義到選單 %s - %s NumberOfAccountancyEntries=條目數 @@ -329,10 +336,12 @@ NumberOfAccountancyMovements=移動次數 ACCOUNTING_DISABLE_BINDING_ON_SALES=停用銷售中的會計綁定和轉移(會計中不考慮客戶發票) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=停用採購中的會計綁定和轉移(會計中不考慮供應商發票) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=停用費用報表中的會計綁定和轉移(會計中不考慮費用報表) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) DateValidationAndLock=驗證與鎖定的日期 ConfirmExportFile=確定要產生會計匯出檔案 ? ExportDraftJournal=匯出日記帳草稿 @@ -364,7 +373,7 @@ ChartofaccountsId=會計項目表ID InitAccountancy=初始會計 InitAccountancyDesc=此頁可在沒有定義產品及服務的銷售及採購會計項目下使用產品及服務的會計項目。 DefaultBindingDesc=當沒有設定特定會計項目時,此頁面可設定預設會計項目連結到薪資、捐贈、稅捐及營業稅的交易紀錄。 -DefaultClosureDesc=該頁面可用於設置用於會計結帳的參數。 +DefaultClosureDesc=該頁面可用於設置會計結帳的參數。 Options=選項 OptionModeProductSell=銷售模式 OptionModeProductSellIntra=在EEC中的銷售模式已匯出 @@ -398,7 +407,11 @@ Calculated=已計算 Formula=公式 ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=不協調 +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=未修改協調 AccountancyOneLetteringModifiedSuccessfully=一個協調成功地修改 AccountancyLetteringModifiedSuccessfully=%s 協調已成功地修改 @@ -407,8 +420,9 @@ AccountancyOneUnletteringModifiedSuccessfully=成功地修改了一個不協調 AccountancyUnletteringModifiedSuccessfully=%s 不協調已成功地修改 ## Confirm box -ConfirmMassUnlettering=批次不協調確認 -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=批次刪除確認 ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +441,7 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=抱 AccountancyErrorMismatchLetterCode=協調代碼不匹配 AccountancyErrorMismatchBalanceAmount=餘額(%s)不等於0 AccountancyErrorLetteringBookkeeping=交易發生錯誤:%s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=會計條目 @@ -453,6 +468,5 @@ FECFormatMulticurrencyCode=多國幣別代碼(Idevise) DateExport=日期輸出 WarningReportNotReliable=警告,此報表非依總帳製作的,所以不含總帳中人工修改的交易。若您日記簿是最新的日期,則記帳檢視會比較準確。 ExpenseReportJournal=費用報表日記帳 -InventoryJournal=庫存日記帳 NAccounts=%s 個帳戶 diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index bc7a051e644..b20e87b40be 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=客戶端整理 WarningModuleNotActive=模組%s必須啓用 WarningOnlyPermissionOfActivatedModules=在此顯示已啓動模組之相關權限。你可在 首頁 -> 設定 -> 模組頁上啓動其他模組。 DolibarrSetup=Dolibarr 安裝或昇級 -InternalUser=內部用戶 -ExternalUser=外部用戶 InternalUsers=內部用戶 ExternalUsers=外部用戶 UserInterface=使用者介面 @@ -109,7 +107,7 @@ NextValueForReplacements=下一個值(代替) MustBeLowerThanPHPLimit=注意: 您的 PHP設定目前限制了上傳到%s%s的最大檔案大小,無論此參數的值如何 NoMaxSizeByPHPLimit=註:你的 PHP 偏好設定為無限制 MaxSizeForUploadedFiles=上傳檔案最大值(0 為禁止上傳) -UseCaptchaCode=在登入頁中的使用圖形碼 (CAPTCHA) +UseCaptchaCode=在登入頁或某些公開網頁上的使用圖形碼 (CAPTCHA) AntiVirusCommand=防毒命令的完整路徑 AntiVirusCommandExample=ClamAv Daemon 的範例(需要 clamav-daemon): / usr / bin / clamdscan
    ClamWin的範例(非常慢): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= 在命令列中更多的參數 @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS主機(php.ini中的預設值: %s MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS連接埠(類Unix系統上未定義至PHP) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS主機(類Unix系統上未定義至PHP) MAIN_MAIL_EMAIL_FROM=自動寄送至"自動寄送電子郵件"(php.ini中的預設值: %s ) +EMailHelpMsgSPFDKIM=為避免 Dolibarr 寄出的信件遭標示為垃圾信件,請務必確認該寄件伺服器已已透過設置 SPF 與 DKIM 之方式,授權此寄件者網域傳送電子郵件 MAIN_MAIL_ERRORS_TO=用於錯誤返回的電子郵件(寄送的電子郵件中的“錯誤至”字段) MAIN_MAIL_AUTOCOPY_TO= 複製(密件)所有已寄送的電子郵件至 MAIN_DISABLE_ALL_MAILS=停用所有電子郵件寄送(出於測試目的或demo) @@ -439,8 +438,10 @@ Unique=唯一 Boolean=布林值 (一個勾選框) ExtrafieldPhone = 電話 ExtrafieldPrice = 價格 +ExtrafieldPriceWithCurrency=以貨幣計價 ExtrafieldMail = 電子郵件 ExtrafieldUrl = 網址 +ExtrafieldIP = IP ExtrafieldSelect = 選擇清單 ExtrafieldSelectList = 從表格選取 ExtrafieldSeparator=分隔 (非欄位) @@ -477,7 +478,7 @@ InstalledInto=已安裝到 %s 資料夾 BarcodeInitForThirdparties=合作方的批次條碼初始化 BarcodeInitForProductsOrServices=批次條碼初始化或產品或服務重置 CurrentlyNWithoutBarCode=目前您在沒有條碼%s%s中有%s的記錄。 -InitEmptyBarCode=下一筆%s記錄初始值 +InitEmptyBarCode=%s空條碼的整數值 EraseAllCurrentBarCode=刪除目前全部條碼現有值 ConfirmEraseAllCurrentBarCode=您確定您要刪除目前全部條碼現有值? AllBarcodeReset=全部條碼值已刪除 @@ -501,10 +502,11 @@ WarningPHPMail=警告: 從此應用程式寄出電子郵件的設定使用的是 WarningPHPMailA=- 使用電子郵件服務提供者的伺服器可以增加您電子信箱的可信度,所以會增加寄信成功率並且不會被標記為垃圾信件 WarningPHPMailB=- 一些電子郵件服務提供商(如雅虎)不允許您從其他伺服器而不是他們自己的伺服器發送電子郵件。您當前的設定是使用程式的伺服器而不是您的電子郵件提供商的伺服器來發送電子郵件,因此某些收件人(與限制性 DMARC 協議兼容的那個)會詢問您的電子郵件提供商他們是否可以接受您的電子郵件而某些電子郵件供應商(如雅虎)可能會回答“否”,因為伺服器不是他們的,所以您發送的電子郵件中有可能少部份不被接受(還要注意您的電子郵件供應商的發送配額)。 WarningPHPMailC=- 使用您自己的電子郵件服務提供商的 SMTP 伺服器發送電子郵件也很好,因此從應用程式發送的所有電子郵件也將保存到您電子郵件的“已發送”資料夾中。 -WarningPHPMailD=此外,因此建議將電子郵件的發送方法更改為“SMTP”。如果您確實想保留預設的“PHP”方式來發送電子郵件,只需忽略此警告,或在 首頁 - 設定 - 其他設定 中將 MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP 數值設定為 1 來刪除它。 +WarningPHPMailD=在此建議您可將電子郵件寄送方式變更為“SMTP”。 +WarningPHPMailDbis=如果您確實想使用預設的“PHP”模式寄送電子郵件,請忽略此警告或是%s點我移除%s。 WarningPHPMail2=如果您的電子郵件SMTP程式需要將電子郵件客戶端限制為某些IP地址(非常罕見),則這是ERP CRM應用程式的郵件用戶代理(MUA)的IP地址: %s 。 WarningPHPMailSPF=如果您的寄件人電子郵件地址中的網域名稱受到SPF 記錄保護(詢問您的網域名稱註冊商),您必須在您的網域 DNS 的 SPF 記錄中增加以下 IP: %s 。 -ActualMailSPFRecordFound=找到的實際 SPF 記錄:%s +ActualMailSPFRecordFound=找到的實際 SPF 記錄(Email%s):%s ClickToShowDescription=點選顯示描述 DependsOn=此模組需要此模組 RequiredBy=模組需要此模組 @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
    範例:
    對於建立新合作方的表 PageUrlForDefaultValuesList=
    範例:
    對於列出合作方的頁面,它是%s
    對於安裝到自定義資料夾中的外部模組網址,請不要包含“ custom /”,因此請使用諸如mymodule / mypagelist.php之類的路徑,而不要使用custom / mymodule / mypagelist.php之類的路徑。
    如果僅在網址具有某些參數的情況下您需要預設值,則可以使用%s AlsoDefaultValuesAreEffectiveForActionCreate=另請注意,覆寫預設值以用於表單建立僅適用於正確設計的頁面(因此,使用參數action = create或presend ...) EnableDefaultValues=啟用自定義預設值 -EnableOverwriteTranslation=啟用覆寫翻譯 +EnableOverwriteTranslation=允許自定義翻譯 GoIntoTranslationMenuToChangeThis=找到了帶有此代碼的密鑰的翻譯。要更改此值,必須從首頁-設定-翻譯編輯它。 WarningSettingSortOrder=警告,如果欄位是未知欄位,則在清單頁面上設定預設的排列順序可能會導致技術錯誤。如果遇到此類錯誤,請返回此頁面以刪除預設的排列順序並恢復預設行為。 Field=欄位 @@ -645,9 +647,9 @@ Module2400Name=事件/應辦事項 Module2400Desc=追蹤事件。記錄自動事件以進行追踪或記錄手動事件或會議。這是良好的客戶或供應商關係管理的主要模組。 Module2500Name=檔案管理系統(DMS) / 電子控制管理(ECM) Module2500Desc=文件管理系統 / 電子內容管理。您產生或是儲存的文件會自動整理組織。當您有需要就分享吧。 -Module2600Name=API/Web 服務 ( SOAP 伺服器 ) +Module2600Name=API / 網頁伺服器(SOAP 伺服器) Module2600Desc=啟用 Dolibarr SOAP 伺服器提供 API 服務 -Module2610Name=API/Web 服務( REST 伺服器) +Module2610Name=API / 網頁伺服器 (REST 伺服器) Module2610Desc=啟用 Dolibarr REST 伺服器提供 API 服務 Module2660Name=呼叫網站服務 (SOAP 客戶端) Module2660Desc=啟用Dolibarr Web服務客戶端(可用於將數據/要求傳送到外部伺服器。目前僅支援採購訂單。) @@ -698,6 +700,7 @@ Module62000Name=國際貿易術語 Module62000Desc=新增功能來管理國際貿易術語 Module63000Name=資源 Module63000Desc=管理用於分配給事件的資源(印表機,汽車,房間等) +Module94160Name=收貨(s) Permission11=讀取客戶發票 Permission12=建立/修改客戶發票 Permission13=無效的客戶發票 @@ -714,13 +717,14 @@ Permission27=刪除商業提案/建議書 Permission28=匯出商業提案/建議書 Permission31=讀取產品資訊 Permission32=建立/修改產品資訊 +Permission33=讀取產品價格 Permission34=刪除產品 Permission36=查看/管理隱藏的產品 Permission38=匯出產品資訊 Permission39=忽略最低價格 -Permission41=Read projects and tasks (shared projects and projects of which I am a contact). -Permission42=Create/modify projects (shared projects and projects of which I am a contact). Can also assign users to projects and tasks -Permission44=Delete projects (shared projects and projects of which I am a contact) +Permission41=讀取專案及任務(已分享專案及我擔任連絡人的專案) +Permission42=建立/修改專案(已分享專案及以我擔任連絡人的專案)。也可以指派用戶到專案及任務 +Permission44=刪除專案(已分享專案及以我擔任連絡人的專案) Permission45=匯出專案 Permission61=讀取干預 Permission62=建立/修改干預 @@ -739,6 +743,7 @@ Permission79=建立/修改訂閲 Permission81=讀取客戶訂單 Permission82=建立/修改客戶訂單 Permission84=驗證客戶訂單 +Permission85=產生銷售訂單文件 Permission86=傳送客戶訂單 Permission87=關閉客戶訂單(結案) Permission88=取消客戶訂單 @@ -766,10 +771,10 @@ Permission122=建立/修改已連結到用戶的合作方 Permission125=刪除已連結到用戶的合作方 Permission126=匯出合作方資料 Permission130=建立/修改合作方支付資訊 -Permission141=Read all projects and tasks (as well as the private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (as well as the private projects for which I am not a contact) -Permission144=Delete all projects and tasks (as well as the private projects I am not a contact) -Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission141=讀取全部專案及任務(也含我不是聯絡人的私人專案) +Permission142=建立/修改全部專案及任務(也包含我不是連絡人的私人專案) +Permission144=刪除全部專案及任務(也包含我不是連絡人的私人專案) +Permission145=可以為我或我的層級輸入已分配的任務所消耗的時間(時間表) Permission146=讀取提供者 Permission147=讀取統計資料 Permission151=讀取直接轉帳付款訂單 @@ -840,9 +845,9 @@ Permission286=匯出通訊錄 Permission291=讀取關稅 Permission292=設定關稅權限 Permission293=修改客戶關稅 -Permission300=讀取條碼 -Permission301=建立/修改條碼 -Permission302=刪除條碼 +Permission301=產生條碼的PDF表 +Permission304=建立/修改條碼 +Permission305=刪除條碼 Permission311=讀取服務 Permission312=分配服務/訂閱到合約 Permission331=讀取書籤 @@ -874,6 +879,7 @@ Permission525=存取借款計算器 Permission527=匯出借款 Permission531=讀取服務 Permission532=建立/修改服務 +Permission533=讀取服務價格 Permission534=刪除服務 Permission536=查看/管理隱藏服務 Permission538=匯出服務 @@ -968,13 +974,14 @@ Permission3301=產生新模組 Permission4001=讀取技能/工作/職位 Permission4002=建立/修改技能/工作/職位 Permission4003=刪除技能/工作/職位 -Permission4020=讀取評價 -Permission4021=建立/修改您的評價 -Permission4022=驗證評估 -Permission4023=刪除評價 -Permission4030=查看比較選單 +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=驗證評估 +Permission4025=刪除評價 +Permission4028=查看比較選單 Permission4031=讀取個人資訊 Permission4032=寫入個人資訊 +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=讀取網站內容 Permission10002=建立/修改網站內容(html和javascript內容) Permission10003=建立/修改網站內容(動態php代碼)。危險,必須留給受限開發人員使用。 @@ -1078,6 +1085,10 @@ DictionaryAssetDisposalType=資產處置類型 TypeOfUnit=單位類型 SetupSaved=設定已儲存 SetupNotSaved=設定未儲存 +OAuthServiceConfirmDeleteTitle=刪除 OAuth條目 +OAuthServiceConfirmDeleteMessage=您確定要刪除此 OAuth 條目嗎?它的所有現存令牌也將被刪除。 +ErrorInEntryDeletion=條目刪除錯誤 +EntryDeleted=條目已刪除 BackToModuleList=返回模組清單 BackToDictionaryList=返回分類清單 TypeOfRevenueStamp=印花稅類型 @@ -1129,7 +1140,7 @@ ValueOfConstantKey=常數設置的值 ConstantIsOn= 選項%s啟用中 NbOfDays=天數 AtEndOfMonth=月底 -CurrentNext=現在/下一個 +CurrentNext=一個月中的某一天 Offset=Offset AlwaysActive=始終啟動 Upgrade=升級 @@ -1197,7 +1208,7 @@ Alerts=警告 DelaysOfToleranceBeforeWarning=顯示警告警報... DelaysOfToleranceDesc=設定延遲時間,以在螢幕上顯示延遲元件的警告圖案%s。 Delays_MAIN_DELAY_ACTIONS_TODO=未完成計劃事件(應辦事項事件) -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=專案未及時關閉 +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=專案未及時結束 Delays_MAIN_DELAY_TASKS_TODO=未完成計劃任務(專案任務) Delays_MAIN_DELAY_ORDERS_TO_PROCESS=未處理訂單 Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=未處理採購訂單 @@ -1235,11 +1246,13 @@ BrowserName=瀏覽器名稱 BrowserOS=瀏覽器系統 ListOfSecurityEvents=Dolibarr 安全事件清單 SecurityEventsPurged=清除安全事件 +TrackableSecurityEvents=可追踪的安全事件 LogEventDesc=啟用特定安全事件的日誌記錄。通過選單%s-%s來管理日誌。警告,此功能可能會在資料庫中產生大量數據。 AreaForAdminOnly=設定參數僅可由管理員進行設定。 SystemInfoDesc=僅供系統管理員以唯讀及可見模式取得系統資訊。 SystemAreaForAdminOnly=此區域僅管理員可用。 Dolibarr用戶權限無法更改此限制。 CompanyFundationDesc=編輯您的 公司/組織 資訊。完成後,點擊頁面底部的“ %s”按鈕。 +MoreNetworksAvailableWithModule=啟用“社交網路”模組,有更多社交網路選項可使用 AccountantDesc=如果您有外部會計師/簿記員,則可以在此處編輯其資訊。 AccountantFileNumber=會計代碼 DisplayDesc=可以在此處修改影響應用程式外觀和顯示的參數。 @@ -1290,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=用戶%s在登入終端 YourPHPDoesNotHaveSSLSupport=您的PHP中無法使用SSL功能 DownloadMoreSkins=更多佈景主題下載 SimpleNumRefModelDesc=回傳格式為 %syymm-nnnn 的參考編號,其中 yy 是年份,mm 是月份,nnnn 是自動遞增的連續數字,無法重置 +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=回傳格式為 %syymm-nnnn 的參考編號,其中 yy 是年份,mm 是月份,nnnn 是自動遞增的連續數字,無法重置 SimpleNumRefNoDateModelDesc=回傳格式為 %s-nnnn 的參考號,其中 nnnn 是自動遞增的連續數字,無法重置 ShowProfIdInAddress=顯示含有地址的專業 ID ShowVATIntaInAddress=隱藏歐盟內增值稅號 @@ -1376,7 +1391,7 @@ GetBarCode=取得條碼 NumberingModules=編號模型 DocumentModules=文件模型 ##### Module password generation -PasswordGenerationStandard=回傳根據 Dolibarr 內部算法產生的密碼:%s 個字元,包含數字和小寫字元。 +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=不要產生建議密碼。密碼必須手動輸入。 PasswordGenerationPerso=根據您個人定義的偏好設定返回密碼。 SetupPerso=根據您的偏好設定 @@ -1430,6 +1445,10 @@ SuppliersPayment=供應商付款 SupplierPaymentSetup=供應商付款設定 InvoiceCheckPosteriorDate=在驗證前檢查製造日期 InvoiceCheckPosteriorDateHelp=如果發票日期早於最後一張同類型發票的日期,將禁止驗證發票。 +InvoiceOptionCategoryOfOperations=在發票上顯示“操作類別” +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
    - Category of operations: Delivery of goods
    - Category of operations: Provision of services
    - Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=是的,在地址區塊下方 +InvoiceOptionCategoryOfOperationsYes2=是的,在左下角 ##### Proposals ##### PropalSetup=商業提案/建議書模組設定 ProposalsNumberingModules=商業提案/建議書編號模型 @@ -1472,11 +1491,12 @@ WatermarkOnDraftContractCards=草稿合約浮水印(若空白則無) ##### Members ##### MembersSetup=會員模組設定 MemberMainOptions=主要選項 +MemberCodeChecker=自動產生會員代碼的選項 AdherentLoginRequired= 管理每位會員登入 AdherentMailRequired=建立新會員需要電子郵件 MemberSendInformationByMailByDefault=已勾選預設傳送電子郵件驗證成員(驗證或新訂閲) MemberCreateAnExternalUserForSubscriptionValidated=為每個經過驗證的新會員訂閱建立一個外部用戶帳號 -VisitorCanChooseItsPaymentMode=訪客可以選擇可用的付款方式 +VisitorCanChooseItsPaymentMode=訪客可以選擇任何可用的付款方式 MEMBER_REMINDER_EMAIL=以電子郵件啟動自動提醒過期的訂閱。注意:必須啟用模組%s並正確設定才能發送提醒。 MembersDocModules=從會員記錄產生文件的文件模板 ##### LDAP setup ##### @@ -1738,8 +1758,8 @@ ActivateFCKeditor=啟用進階編輯器: FCKeditorForNotePublic=所見即所得編輯器建立/編輯元件欄位的“公開備註” FCKeditorForNotePrivate=所見即所得編輯器建立/編輯元件欄位的“不公開備註” FCKeditorForCompany=所見即所得編輯器建立/編輯元件欄位描述(產品/服務除外) -FCKeditorForProduct=所見即所得建立/編輯產品/服務的欄位描述 -FCKeditorForProductDetails=所見即所得為所有項目(提案/建議書,訂單,發票等)建立/編輯產品明細行。 警告:在這種情況下,強烈建議不要使用此選項,因為在產生PDF文件時,它會產生特殊字元和頁面格式的問題。 +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= 以所見即所得建立/編輯電子郵件 ( 工具 --> 電子郵件 ) FCKeditorForUserSignature=以所見即所得建立/編輯用戶簽名檔 FCKeditorForMail=以所見即所得建立/編輯全部電子郵件( 除了工具 --> 電子郵件) @@ -1762,7 +1782,7 @@ DetailMenuHandler=顯示新的選單的選單處理程式 DetailMenuModule=若選單項目來自一個模組則為模組名稱 DetailType=選單類型(在頂部或左側) DetailTitre=翻譯的選單標籤或標籤代碼 -DetailUrl=傳送選單上的網址給您(以 http:// 的絶對網址連線或外部連線) +DetailUrl=選單傳送給您的網址(以 https:// 的相關網址連結或外部連結) DetailEnabled=條件顯示或不進入 DetailRight=顯示未經授權的灰色菜單條件 DetailLangs=標籤代碼轉換的語言檔案名稱 @@ -1833,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=POS中的庫存減少與序列/批次 CashDeskYouDidNotDisableStockDecease=從銷售點進行銷售時,您沒有停用庫存減少。因此,需要一個倉庫。 CashDeskForceDecreaseStockLabel=批次產品的庫存強制減少。 CashDeskForceDecreaseStockDesc=首先減少最早的Eatby和Sellby日期。 -CashDeskReaderKeyCodeForEnter=在條碼掃描器中定義的“ Enter”的鍵代碼(範例:13) +CashDeskReaderKeyCodeForEnter=在條碼掃描器中輸入 ASCII 代碼定義“Enter”鍵 (例如:13) ##### Bookmark ##### BookmarkSetup=書籤模組設定 BookmarkDesc=此模組允許您管理書籤。您也可以在左側選單上為任何Dolibarr頁面或外部網站增加捷徑。 @@ -1871,7 +1891,7 @@ SuppliersInvoiceNumberingModel=供應商發票編號模型 IfSetToYesDontForgetPermission=如果設定為非null值,請不要忘記為允許第二次批准的群組或用戶提供權限 ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind 模組設定 -PathToGeoIPMaxmindCountryDataFile=包含Maxmind ip到國家/地區轉換檔案的路徑。
    範例:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=包含Maxmind ip到國家/地區轉換檔案的路徑 NoteOnPathLocation=請注意您的 IP 到國家資料檔案必須在您 PHP 資料夾中且可以讀取(檢查您 PHP 中 open_basedir 設定和檔案系統權限)。 YouCanDownloadFreeDatFileTo=您可以從%s下載Maxmind GeoIP國家/地區檔案的免費展示版本 。 YouCanDownloadAdvancedDatFileTo=您也可以在%s的 Maxmind GeoIP國家檔案下載更完整更新版本 @@ -1922,6 +1942,7 @@ BackupDumpWizard=建立資料庫轉存檔案的小精靈 BackupZipWizard=建立文件資料夾壓縮檔的小精靈 SomethingMakeInstallFromWebNotPossible=由於以下原因,無法從 Web 界面安裝外部模組: SomethingMakeInstallFromWebNotPossible2=因此,此處描述的升級過程是只有特權用戶才能執行的手動過程。 +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=您的管理員已禁止從應用程式安裝外部模組。您必須要求他刪除檔案%s才能使用此功能。 ConfFileMustContainCustom=從應用程式安裝或建構外部模組需要將模組檔案保存到資料夾%s中 。要使此資料夾由Dolibarr處理,必須設定新增以下2條指令行到conf / conf.php
    $ dolibarr_main_url_root_alt ='/ custom';
    $ dolibarr_main_document_root_alt ='%s / custom'; HighlightLinesOnMouseHover=滑鼠經過時會顯示表格行 @@ -1936,7 +1957,7 @@ PressF5AfterChangingThis=更改此值使其生效後,按鍵盤上的CTRL + F5 NotSupportedByAllThemes=將適用於核心主題,可能不受外部主題支援 BackgroundColor=背景顏色 TopMenuBackgroundColor=頂端選單的背景顏色 -TopMenuDisableImages=在頂端選單中隱藏圖片 +TopMenuDisableImages=頂端選單中的圖示或文字 LeftMenuBackgroundColor=左側選單的背景顏色 BackgroundTableTitleColor=表格標題行的背景顏色 BackgroundTableTitleTextColor=表格標題行的文字顏色 @@ -1977,6 +1998,7 @@ MailToSendSupplierOrder=採購訂單 MailToSendSupplierInvoice=供應商發票 MailToSendContract=合約 MailToSendReception=收貨(s) +MailToExpenseReport=費用報表 MailToThirdparty=合作方 MailToMember= 會員 MailToUser=用戶 @@ -2030,6 +2052,7 @@ MAIN_PDF_MARGIN_RIGHT=PDF右邊邊距 MAIN_PDF_MARGIN_TOP=PDF頂部邊距 MAIN_PDF_MARGIN_BOTTOM=PDF底部邊距 MAIN_DOCUMENTS_LOGO_HEIGHT=PDF上Logo的高度 +DOC_SHOW_FIRST_SALES_REP=顯示第一位業務代表 MAIN_GENERATE_PROPOSALS_WITH_PICTURE=在提案/建議書行加入圖片欄位 MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=欄位寬度-如果在行上加入圖片 MAIN_PDF_NO_SENDER_FRAME=隱藏寄件人地址框的邊框 @@ -2047,8 +2070,10 @@ RemoveSpecialChars=刪除特殊字元 COMPANY_AQUARIUM_CLEAN_REGEX=用正則表達式篩選器清除值(COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=用正則表達式篩選器清除值(COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=不允許重複 +RemoveSpecialWords=為客戶或供應商產生子帳戶時清除特定文字 +RemoveSpecialWordsHelp=在計算客戶或供應商帳戶之前指定要清除的文字。在每個字之間使用”;” GDPRContact=資料保護官(DPO,資料隱私或GDPR聯絡人) -GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here +GDPRContactDesc=如果您儲存個人資料於您的資訊系統,則可以在此處指定負責《通用數據保護條例》的聯絡人 HelpOnTooltip=工具提示上的幫助文字 HelpOnTooltipDesc=在這裡放入文字或是翻譯鍵以便此欄位顯示在表單時可以顯示在工具提示 YouCanDeleteFileOnServerWith=您可以使用下列命令行在伺服器上刪除此文件:
    %s @@ -2059,36 +2084,44 @@ VATIsUsedIsOff=注意:在選單%s-%s中,使用營業稅或增值稅的選項 SwapSenderAndRecipientOnPDF=交換PDF文件上的發件人和收件人地址位置 FeatureSupportedOnTextFieldsOnly=警告,僅文字欄位與複合清單支援此功能。另外,必須設定網址參數action = create或action = edit到OR頁面,名稱必須為'new.php' 才能觸發此功能。 EmailCollector=電子郵件收集器 +EmailCollectors=電子郵件收集器 EmailCollectorDescription=新增計劃作業和設定頁面以定期掃描信箱(使用IMAP協議),並在正確的位置記錄接收到您應用程式中的電子郵件和/或自動建立一些記錄(例如潛在)。 NewEmailCollector=新電子郵件收集器 EMailHost=IMAP伺服器主機 +EMailHostPort=電子郵件IMAP伺服器的連接埠 +loginPassword=登入/密碼 +oauthToken=Oauth2許可證 +accessType=登入類型 +oauthService=認證服務 +TokenMustHaveBeenCreated=必須啟用OAuth2模組,並且必須有已建立正確權限之oauth2許可證(例如Gmail 的 OAuth之"gmail_full”範圍)。 MailboxSourceDirectory=信箱來源資料夾 MailboxTargetDirectory=信箱目標資料夾 EmailcollectorOperations=收集器要做的操作 EmailcollectorOperationsDesc=全部訂單的操作已執行 MaxEmailCollectPerCollect=每次收集電子郵件的最大數量 +TestCollectNow=收集測試 CollectNow=立刻收集 ConfirmCloneEmailCollector=您確定要複製電子郵件收集器%s嗎? DateLastCollectResult=最新嘗試收集日期 DateLastcollectResultOk=最新收集成功日期 LastResult=最新結果 EmailCollectorHideMailHeaders=不要將郵件標題的內容包含在已收集郵件的保存內容中 -EmailCollectorHideMailHeadersHelp=啟用後,電子郵件標題不會增加到保存為事件的電子郵件內容的末尾。 +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as an agenda event. EmailCollectorConfirmCollectTitle=郵件收集確認 EmailCollectorConfirmCollect=您是否要立即執行此收集器? EmailCollectorExampleToCollectTicketRequestsDesc=Collect emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. Activate also Collect_Responses to collect answers of your client directly on the ticket view (you must reply from Dolibarr). -EmailCollectorExampleToCollectTicketRequests=Example collecting the ticket request (first message only) +EmailCollectorExampleToCollectTicketRequests=收集服務單需求的範例(僅第一條訊息) EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Scan your mailbox "Sent" directory to find emails that was sent as an answer of another email directly from your email software and not from Dolibarr. If such an email is found, the event of answer is recorded into Dolibarr EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=收集從外部電子郵件軟體發送的電子郵件回應的範例 -EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if your send a commercial proposal, order, invoice or message for a ticket by email from the application, and your customer answers your email, the system will automatically catch the answer and add it into your ERP. +EmailCollectorExampleToCollectDolibarrAnswersDesc=Collect all emails that are an answer of an email sent from your application. An event (Module Agenda must be enabled) with the email response will be recorded at the good place. For example, if you send a commercial proposal, order, invoice or message for a ticket by email from the application, and the recipient answers your email, the system will automatically catch the answer and add it into your ERP. EmailCollectorExampleToCollectDolibarrAnswers=收集所有傳入訊息的範例,這些訊息是從 Dolibarr 發送訊息的回應 EmailCollectorExampleToCollectLeadsDesc=Collect emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
    Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can't be found in database (new customer), the lead will be attached to the thirdparty with ID 1. EmailCollectorExampleToCollectLeads=收集潛在的範例 EmailCollectorExampleToCollectJobCandidaturesDesc=Collect emails applying to job offers (Module Recruitment must be enabled). You can complete this collector if you want to automatically create a candidature for a job request. Note: With this initial example, the title of the candidature is generated including the email. -EmailCollectorExampleToCollectJobCandidatures=Example collecting job candidatures received by e-mail +EmailCollectorExampleToCollectJobCandidatures=使用電子郵件收集職位候選人的範例 NoNewEmailToProcess=沒有新的電子郵件(與篩選匹配)要處理 NothingProcessed=什麼都沒做 -XEmailsDoneYActionsDone=%s電子郵件合格,%s電子郵件已成功處理(對於%s記錄/已完成操作) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=在行事曆中記錄事件(類型為發送或接收的電子郵件) CreateLeadAndThirdParty=建立潛在(必要時建立合作方) CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation or was guessed from a tracker in email header, without third party otherwise) @@ -2105,7 +2138,7 @@ CreateCandidature=建立工作應用程式 FormatZip=Zip MainMenuCode=選單輸入代碼(主選單) ECMAutoTree=顯示自動ECM樹狀圖 -OperationParamDesc=定義用於提取或設定數值的規則。
    需要從電子郵件主題中提取名稱的操作範例:
    name=EXTRACT:SUBJECT:公司訊息 ([^\n] *)
    操作建立物件的範例:
    objproperty1 = SET:要設定的數值
    objproperty2 = SET:__objproperty1__要包括的數值
    objproperty3=SETIFEMPTY:objproperty3尚未定義時要使用的數值
    objproperty4 = EXTRACT:HEADER :X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:我的公司名稱是\\s( [^\\s]*)

    使用 ; char 作為分隔符來提取或設定幾個屬性。 +OperationParamDesc=Define the rules to use to extract some data or set values to use for operation.

    Example to extract a company name from email subject into a temporary variable:
    tmp_var=EXTRACT:SUBJECT:Message from company ([^\n]*)

    Examples to set the properties of an object to create:
    objproperty1=SET:a hard coded value
    objproperty2=SET:__tmp_var__
    objproperty3=SETIFEMPTY:a value (value is set only if property is not already defined)
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=營業時間 OpeningHoursDesc=在此處輸入貴公司的正常營業時間。 ResourceSetup=資源模組的設定 @@ -2167,6 +2200,10 @@ EmailTemplate=電子郵件模板 EMailsWillHaveMessageID=電子郵件將具有與此語法匹配的標籤“參考” PDF_SHOW_PROJECT=在文件中顯示專案 ShowProjectLabel=專案標籤 +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=在合作方名稱中包含別名 +THIRDPARTY_ALIAS=合作方名稱 - 合作方別名 +ALIAS_THIRDPARTY=合作方別名 - 合作方名稱 +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=如果您要在生成同一的PDF中以兩種不同的語言複製一些文字,則必須在此處設置第二種語言讓生成的PDF在同一頁中包含兩種不同的語言,選擇的可以用來生成PDF跟另一種語言(只有少數PDF模板支援此功能)。PDF只有一種語言則留空。 PDF_USE_A=產生使用PDF/A格式的PDF文件而不是預設格式的PDF FafaIconSocialNetworksDesc=在此處輸入FontAwesome圖示的代碼。如果您不知道什麼是FontAwesome,則可以使用通用值fa-address-book。 @@ -2195,12 +2232,12 @@ MailToPartnership=合夥 AGENDA_EVENT_DEFAULT_STATUS=從表單建立事件時預設的事件狀態 YouShouldDisablePHPFunctions=您應該停用 PHP 功能 IfCLINotRequiredYouShouldDisablePHPFunctions=除非您需要在自定義代碼中執行系統命令,否則您應該停用 PHP 功能 -PHPFunctionsRequiredForCLI=對於 shell 目的(如計劃備份工作或執行掃毒程式),您必須保留 PHP 功能 +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=在您的根目錄中找不到一般程式可寫入的檔案或目錄(好) RecommendedValueIs=建議:%s Recommended=推薦的 NotRecommended=不建議 -ARestrictedPath=一些受限路徑 +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=檢查外部模組更新 CheckForModuleUpdateHelp=此操作將連接到外部模組的編輯器以檢查是否有新版本。 ModuleUpdateAvailable=有可用的更新 @@ -2208,6 +2245,7 @@ NoExternalModuleWithUpdate=未找到外部模組的更新 SwaggerDescriptionFile=Swagger API 描述檔案(例如用於 redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=您啟用了已棄用的 WS API。您應該改用 REST API。 RandomlySelectedIfSeveral=有多張圖片時隨機選擇 +SalesRepresentativeInfo=用於提案/建議書、訂單、發票。 DatabasePasswordObfuscated=資料庫密碼在conf檔案中為加密 DatabasePasswordNotObfuscated=資料庫密碼在conf檔案中不是加密 APIsAreNotEnabled=未啟用 API 模組 @@ -2216,7 +2254,7 @@ InstallAndUpgradeLockedBy=安裝與升級已被檔案%s鎖定 OldImplementation=舊執行 PDF_SHOW_LINK_TO_ONLINE_PAYMENT=如果有一些線上支付模組已啟用(Paypal, Stripe, ...),在PDF中加入一個線上支付的連結 DashboardDisableGlobal=停用所有開放項目縮圖 -BoxstatsDisableGlobal=停用停用盒子統計 +BoxstatsDisableGlobal=完全停用盒子統計 DashboardDisableBlocks=位於首頁中的開放項目縮圖(執行中或已延遲) DashboardDisableBlockAgenda=停用應辦事項縮圖 DashboardDisableBlockProject=停用專案縮圖 @@ -2247,19 +2285,73 @@ LateWarningAfter="延遲"警告時間 TemplateforBusinessCards=不同尺寸大小的名片模板 InventorySetup= 庫存設定 ExportUseLowMemoryMode=使用低記憶體模式 -ExportUseLowMemoryModeHelp=使用低記憶體模式執行另存的 exec(壓縮是通過管道完成的,而不是進入 PHP 記憶體)。此方法不允許檢查檔案是否已完成,如果失敗則無法報告錯誤訊息。 -ShowQuickAddLink=元件在右上角的選單中顯示一個快速增加小工具的按鈕 +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = 捕獲 dolibarr 觸發器並將其傳送到 URL 的界面 +WebhookSetup = 設定 Webhook +Settings = 設定 +WebhookSetupPage = Webhook 設定頁 +ShowQuickAddLink=在右上角的選單中顯示一個快速增加小工具的按鈕 + HashForPing=用於 ping 的Hash ReadOnlyMode=實例是否處於“唯讀”模式 DEBUGBAR_USE_LOG_FILE=使用 dolibarr.log 檔案收集日誌 UsingLogFileShowAllRecordOfSubrequestButIsSlower=Use the dolibarr.log file to trap Logs instead of live memory catching. It allows to catch all logs instead of only log of current process (so including the one of ajax subrequests pages) but will make your instance very very slow. Not recommended. FixedOrPercent=Fixed (use keyword 'fixed') or percent (use keyword 'percent') -DefaultOpportunityStatus=Default opportunity status (first status when lead is created) -IconAndText=Icon and text -TextOnly=Text only -IconOnlyAllTextsOnHover=Icon only - All texts appears under icon on mouse hover menu bar -IconOnlyTextOnHover=Icon only - Text of icon appears under icon on mouse hover the icon -IconOnly=Icon only - Text on tooltip only -INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices -INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices +DefaultOpportunityStatus=預設機會狀態(建立潛在客戶時的第一個狀態) + +IconAndText=圖示與文字 +TextOnly=純文字 +IconOnlyAllTextsOnHover=圖示 - 當滑鼠停在選單列時所有文字顯示在圖示下方 +IconOnlyTextOnHover=圖示 - 滑鼠停在圖示時,圖示文字顯示在圖示下方 +IconOnly=圖示 - 文字在工具提示上 +INVOICE_ADD_ZATCA_QR_CODE=在發票上顯示 ZATCA QR Code +INVOICE_ADD_ZATCA_QR_CODEMore=一些阿拉伯國家的發票需要這個QR Code +INVOICE_ADD_SWISS_QR_CODE=在發票上顯示瑞士QR Code +INVOICE_SHOW_SHIPPING_ADDRESS=顯示送貨地址 +INVOICE_SHOW_SHIPPING_ADDRESSMore=強制提及法國 UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. +IfThisCategoryIsChildOfAnother=如果此類別是另一個類別的子類別 +DarkThemeMode=深色主題模式 +AlwaysDisabled=總是停用 +AccordingToBrowser=根據瀏覽器 +AlwaysEnabled=總是啟用 +DoesNotWorkWithAllThemes=不適用於所有主題 +NoName=沒有名稱 +ShowAdvancedOptions= 顯示進階選項 +HideAdvancedoptions= 隱藏進階選項 +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2認證服務 +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=認證方式 +UsePassword=使用密碼 +UseOauth=使用 OAUTH許可證 +Images=圖片 +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=腳本是空的 +ShowHideTheNRequests=顯示/隱藏 %s 的SQL 請求 +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=可觸發事件 +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=編輯頁面上的CSS +CssOnView=檢視頁面上的 CSS +CssOnList=清單頁面上的 CSS +HelpCssOnEditDesc=編輯欄位時的CSS
    範例: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=檢視欄位時的CSS +HelpCssOnListDesc=The Css used when field is inside a list table.
    Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=停用警告 +LimitsAndMitigation=訪問限制和延遲 +DesktopsOnly=僅限桌上型電腦 +DesktopsAndSmartphones=桌上型電腦和智能手機 +AllowOnlineSign=允許線上簽署 +AllowExternalDownload=允許外部下載(無需登入,使用共享連結) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=表單中最大合併文件數 +IfDefinedUseAValueBeetween=如果已定義,則使用 %s 和 %s 之間的值 diff --git a/htdocs/langs/zh_TW/agenda.lang b/htdocs/langs/zh_TW/agenda.lang index 4663de7c400..11b6b75f504 100644 --- a/htdocs/langs/zh_TW/agenda.lang +++ b/htdocs/langs/zh_TW/agenda.lang @@ -17,9 +17,9 @@ Location=位置 ToUserOfGroup=將事件分配給群組中的任何用戶 EventOnFullDay=整天事件 MenuToDoActions=全部未完成事件 -MenuDoneActions=全部已停止事件 +MenuDoneActions=全部已完成事件 MenuToDoMyActions=我的未完成事件 -MenuDoneMyActions=我的已停止事件 +MenuDoneMyActions=我的已完成事件 ListOfEvents=事件清單(預設行事曆) ActionsAskedBy=誰的事件報表 ActionsToDoBy=事件指定給 @@ -57,6 +57,7 @@ MemberValidatedInDolibarr=會員 %s 已驗證 MemberModifiedInDolibarr=會員 %s 已修改 MemberResiliatedInDolibarr=會員 %s 已終止 MemberDeletedInDolibarr=會員 %s 已刪除 +MemberExcludedInDolibarr=Member %s excluded MemberSubscriptionAddedInDolibarr=會員 %s 已新增 %s 的訂閱 MemberSubscriptionModifiedInDolibarr=會員 %s 已修改 %s 訂閱 MemberSubscriptionDeletedInDolibarr=會員 %s 已刪除 %s 訂閱 @@ -159,6 +160,7 @@ DateActionBegin=事件開始日期 ConfirmCloneEvent=您確定要複製事件 %s? RepeatEvent=重覆事件 OnceOnly=只有一次 +EveryDay=Every day EveryWeek=每周 EveryMonth=每月 DayOfMonth=一個月中的某天 @@ -174,3 +176,4 @@ AddReminder=為此事件建立自動提醒通知 ErrorReminderActionCommCreation=為此事件建立提醒通知時出現錯誤 BrowserPush=查看彈出通知 ActiveByDefault=預設為啟用 +Until=until diff --git a/htdocs/langs/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang index 1e5aee66716..0bf28f1422d 100644 --- a/htdocs/langs/zh_TW/banks.lang +++ b/htdocs/langs/zh_TW/banks.lang @@ -88,7 +88,7 @@ AccountToDebit=借款方帳戶 DisableConciliation=停用此帳戶對帳功能 ConciliationDisabled=已停用對帳功能 LinkedToAConciliatedTransaction=已連結到調節條目 -StatusAccountOpened=開放 +StatusAccountOpened=啟用 StatusAccountClosed=已關閉 AccountIdShort=號碼 LineRecord=交易 @@ -156,7 +156,7 @@ RejectCheck=支票已退回 ConfirmRejectCheck=您確定要將此支票標記為已拒絕嗎? RejectCheckDate=退回支票的日期 CheckRejected=支票已退回 -CheckRejectedAndInvoicesReopened=支票已退回,發票已重新打開 +CheckRejectedAndInvoicesReopened=支票已退回,發票已重新啟用 BankAccountModelModule=銀行帳戶的文件範本 DocumentModelSepaMandate=歐洲統一支付區要求的範本。僅適用於歐洲經濟共同體的歐洲國家。 DocumentModelBan=列印有BAN資訊的範本。 @@ -185,3 +185,4 @@ AlreadyOneBankAccount=已定義一個銀行帳戶 SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA 轉帳:“信用轉帳”級別的“付款類型” SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. ToCreateRelatedRecordIntoBank=建立遺失的相關銀行記錄 +BanklineExtraFields=Bank Line Extrafields diff --git a/htdocs/langs/zh_TW/bookmarks.lang b/htdocs/langs/zh_TW/bookmarks.lang index e71a491f000..81fdebd3c11 100644 --- a/htdocs/langs/zh_TW/bookmarks.lang +++ b/htdocs/langs/zh_TW/bookmarks.lang @@ -2,7 +2,7 @@ AddThisPageToBookmarks=新增目前頁面到書籤 Bookmark=書籤 Bookmarks=書籤 -ListOfBookmarks=書簽清單 +ListOfBookmarks=書籤清單 EditBookmarks=列出/編輯書籤 NewBookmark=新書籤 ShowBookmark=顯示書籤 @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=選擇已連結頁面開啟在 BookmarksManagement=書籤管理 BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=未定義書籤 +NoBookmarkFound=找不到書籤 diff --git a/htdocs/langs/zh_TW/categories.lang b/htdocs/langs/zh_TW/categories.lang index 67591a7d720..701719d2dc6 100644 --- a/htdocs/langs/zh_TW/categories.lang +++ b/htdocs/langs/zh_TW/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=此會員不在任何標籤/類別中 ContactHasNoCategory=此聯絡人不在任何標籤/類別中 ProjectHasNoCategory=此專案不在任何標籤/類別中 ClassifyInCategory=增加到標籤/類別 +RemoveCategory=Remove category NotCategorized=沒有標籤/類別 CategoryExistsAtSameLevel=此類別已存在此參考 ContentsVisibleByAllShort=所有內容可見 @@ -67,6 +68,7 @@ StockCategoriesShort=倉庫標籤/類別 ThisCategoryHasNoItems=此類別內沒有任何項目。 CategId=標籤/類別編號 ParentCategory=母標籤/分類 +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=母標籤/分類的標籤 CatSupList=供應商標籤/分類清單 CatCusList=客戶/潛在客戶標籤/分類清單 @@ -86,7 +88,7 @@ DeleteFromCat=從標籤/類別中刪除 ExtraFieldsCategories=補充屬性 CategoriesSetup=標籤/類別設定 CategorieRecursiv=自動連結到母標籤/母類別 -CategorieRecursivHelp=如果啟用此選項,當將產品增加到子類別時,產品也會增加到母類別中。 +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=新增以下產品/服務 AddCustomerIntoCategory=分配類別給客戶 AddSupplierIntoCategory=分配類別給供應商 @@ -95,7 +97,9 @@ ShowCategory=顯示標籤/類別 ByDefaultInList=預設在清單中 ChooseCategory=選擇類別 StocksCategoriesArea=倉庫分類 +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=事件分類 WebsitePagesCategoriesArea=頁面容器類別 KnowledgemanagementsCategoriesArea=知識文章分類 UseOrOperatorForCategories=分類使用 'OR' 運算符號 +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/zh_TW/commercial.lang b/htdocs/langs/zh_TW/commercial.lang index 1223c7b67b5..7ef017fe469 100644 --- a/htdocs/langs/zh_TW/commercial.lang +++ b/htdocs/langs/zh_TW/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=潛在方狀態 DraftPropals=商業提案/建議書草稿 NoLimit=無限制 ToOfferALinkForOnlineSignature=線上簽名連結 -WelcomeOnOnlineSignaturePage=歡迎來到%s的商業計劃書/提案 -ThisScreenAllowsYouToSignDocFrom=此畫面可允許您接受並簽署或者是拒絕報價/商業提案/建議書 -ThisIsInformationOnDocumentToSign=此為文件資訊 +WelcomeOnOnlineSignaturePageProposal=歡迎來到%s的商業計劃書/提案 +WelcomeOnOnlineSignaturePageContract=歡迎來到 %s 合約的PDF 簽署頁面 +WelcomeOnOnlineSignaturePageFichinter=歡迎來到 %s 干預 的PDF 簽署頁面 +ThisScreenAllowsYouToSignDocFromProposal=此畫面可允許您接受並簽署或者是拒絕報價/商業提案/建議書 +ThisScreenAllowsYouToSignDocFromContract=此畫面允許您於線上簽署 PDF 格式的合約。 +ThisScreenAllowsYouToSignDocFromFichinter=此畫面允許您於線上簽署 PDF 格式的干預。 +ThisIsInformationOnDocumentToSignProposal=此為文件資訊 +ThisIsInformationOnDocumentToSignContract=這是關於簽署合約的訊息 +ThisIsInformationOnDocumentToSignFichinter=這是關於簽署干預的訊息 SignatureProposalRef=報價單/商業提案/建議書的簽名%s +SignatureContractRef=合約%s的簽名 +SignatureFichinterRef=干預 %s的簽名 FeatureOnlineSignDisabled=已停用線上簽名功能或在啟用該功能之前已產生文件 diff --git a/htdocs/langs/zh_TW/companies.lang b/htdocs/langs/zh_TW/companies.lang index 8a803939180..f9e71c6bd97 100644 --- a/htdocs/langs/zh_TW/companies.lang +++ b/htdocs/langs/zh_TW/companies.lang @@ -60,6 +60,7 @@ NatureOfThirdParty=合作方性質 NatureOfContact=聯絡人性質 Address=地址 State=州/省 +StateId=州ID StateCode=州/省代碼 StateShort=州 Region=地區 @@ -163,14 +164,14 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1(商業登記) ProfId2CM=Id. prof. 2(納稅人編號) -ProfId3CM=Id. prof. 3(建立法令) -ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3CM=Id. prof. 3 (No. of creation decree) +ProfId4CM=Id. prof. 4 (Deposit certificate No.) ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=商業登記 ProfId2ShortCM=納稅人編號 -ProfId3ShortCM=建立法令 -ProfId4ShortCM=Certificate of deposits +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=存單號 ProfId5ShortCM=其他 ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) @@ -312,7 +313,7 @@ CustomerAbsoluteDiscountShort=無條件折扣 CompanyHasRelativeDiscount=此客戶有預設的%s%%的折扣 CompanyHasNoRelativeDiscount=此客戶預設沒有相對的折扣 HasRelativeDiscountFromSupplier=您有此供應商的預設折扣%s%% -HasNoRelativeDiscountFromSupplier=您沒有該供應商的默認相對折扣 +HasNoRelativeDiscountFromSupplier=您沒有該供應商的預設相對折扣 CompanyHasAbsoluteDiscount=在%s%s此客戶有折扣(信用票據或預付款) CompanyHasDownPaymentOrCommercialDiscount=在 %s%s 此客戶有折扣(商業預付款) CompanyHasCreditNote=在%s%s情況下,此客戶仍然有信用票據 @@ -443,7 +444,7 @@ AddAddress=新增地址 SupplierCategory=供應商類別 JuridicalStatus200=獨立 DeleteFile=刪除文件 -ConfirmDeleteFile=您確定要刪除這個文件? +ConfirmDeleteFile=您確定要刪除此檔 %s嗎? AllocateCommercial=指定業務代表 Organization=組織 FiscalYearInformation=會計年度 @@ -463,7 +464,7 @@ ListCustomersShort=客戶清單 ThirdPartiesArea=合作方/通訊錄 LastModifiedThirdParties=最新已修改合作方%s UniqueThirdParties=合作方總數 -InActivity=開放 +InActivity=啟用 ActivityCeased=關閉 ThirdPartyIsClosed=合作方已關閉 ProductsIntoElements=%s相關的產品/服務清單 @@ -497,3 +498,5 @@ RestOfEurope=歐洲其他地區(EEC) OutOfEurope=歐洲以外(EEC) CurrentOutstandingBillLate=目前拖欠帳單 BecarefullChangeThirdpartyBeforeAddProductToInvoice=請注意,根據您的產品價格設定,應在將產品增加到POS之前更改合作方。 +EmailAlreadyExistsPleaseRewriteYourCompanyName=電子郵件已存在,請重新輸入您的公司名稱 +TwoRecordsOfCompanyName=該公司存在多個記錄,請聯繫我們以完成您的合作請求” diff --git a/htdocs/langs/zh_TW/compta.lang b/htdocs/langs/zh_TW/compta.lang index 7e327af1d7d..ee76331dc75 100644 --- a/htdocs/langs/zh_TW/compta.lang +++ b/htdocs/langs/zh_TW/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=平衡(以前) Balance=平衡 Debit=借貸 Credit=信用 +AccountingDebit=借貸 +AccountingCredit=信用 Piece=會計憑證 AmountHTVATRealReceived=淨收入 AmountHTVATRealPaid=凈支付 @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=沒有依產品收集的營 TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=無法提供依銷售稅率收取的營業額報告。該報告僅適用於開具發票的營業額。 CalculationMode=計算模式 AccountancyJournal=會計代碼日記帳 -ACCOUNTING_VAT_SOLD_ACCOUNT=預設情況下,用於銷售的營業稅會計科目(如果未在營業稅分類設定中定義,則使用) -ACCOUNTING_VAT_BUY_ACCOUNT=預設情況下,用於購買的營業稅會計科目(如果未在增值稅分類設定中定義,則使用) -ACCOUNTING_VAT_PAY_ACCOUNT=預設情況下,用於支付營業稅的會計科目 -ACCOUNTING_ACCOUNT_CUSTOMER=客戶合作方使用的會計科目 +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=合作方卡上定義的專用會計科目將僅用於子帳會計。如果未定義合作方的專用客戶會計科目,則該科目將用於“總帳”,並作為“子帳”會計的預設值。 -ACCOUNTING_ACCOUNT_SUPPLIER=供應商合作方使用的會計科目 +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=合作方卡上定義的專用會計科目將僅用於子帳會計。如果未定義第三方的專用供應商會計科目,則此科目將用於“總帳”,並作為“子帳”會計的預設值。 ConfirmCloneTax=確認複製社會/財政稅 ConfirmCloneVAT=確認複製稅金申報 @@ -300,3 +302,4 @@ InvoiceToPay15Days=支付(15 至 30 天) InvoiceToPay30Days=支付(> 30 天) ConfirmPreselectAccount=預選會計科目代號 ConfirmPreselectAccountQuestion=您確定要使用此會計科目代號預先選擇 %s 選定的行嗎? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/zh_TW/contracts.lang b/htdocs/langs/zh_TW/contracts.lang index d0799fa8da6..cb7a144c9a5 100644 --- a/htdocs/langs/zh_TW/contracts.lang +++ b/htdocs/langs/zh_TW/contracts.lang @@ -72,7 +72,7 @@ BoardExpiredServices=服務已過期 BoardExpiredServicesShort=服務已過期 ServiceStatus=服務狀態 DraftContracts=合約草案 -CloseRefusedBecauseOneServiceActive=無法關閉合約,因為合約上至少有一項開放服務 +CloseRefusedBecauseOneServiceActive=無法結束合約,因為合約上至少有一項服務啟用 ActivateAllContracts=啟動所有合約行 CloseAllContracts=關閉所有合約行 DeleteContractLine=刪除合約行 diff --git a/htdocs/langs/zh_TW/cron.lang b/htdocs/langs/zh_TW/cron.lang index e61de80d07a..9a9a358dbba 100644 --- a/htdocs/langs/zh_TW/cron.lang +++ b/htdocs/langs/zh_TW/cron.lang @@ -26,7 +26,7 @@ CronCommand=命令 CronList=排程工作 CronDelete=刪除預定工作 CronConfirmDelete=您確定要刪除這些計劃的工作嗎? -CronExecute=啟動預定的工作 +CronExecute=立即啟動 CronConfirmExecute=您確定要立即執行這些計劃的工作嗎? CronInfo=計劃工作模組允許自動執行計劃工作。工作也可以手動啟動。 CronTask=工作 @@ -58,7 +58,7 @@ CronNote=註解 CronFieldMandatory=欄位%s為必填 CronErrEndDateStartDt=結束日期不能早於開始日期 StatusAtInstall=模組安裝狀態 -CronStatusActiveBtn=計畫表 +CronStatusActiveBtn=啟用排程 CronStatusInactiveBtn=停用 CronTaskInactive=此作業已停用(未排程) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=前往選單“ 主頁-管理工具 JobDisabled=工作已停用 MakeLocalDatabaseDumpShort=本地資料庫備份 MakeLocalDatabaseDump=建立本地資料庫備份。參數為:壓縮(“ gz”或“ bz”或“none”),備份類型(“ mysql”,“ pgsql”,“ auto”),1,"自動"或建立檔案名稱,要保留的備份檔案數 +MakeSendLocalDatabaseDumpShort=傳送本地資料庫備份 +MakeSendLocalDatabaseDump=以電子郵件發送本地資料庫備份。參數有:to、from、subject、message、filename(發送的檔案名稱)、filter('sql'僅用於資料庫備份) +BackupIsTooLargeSend=抱歉,最新的備份檔案太大,無法通過電子郵件發送 +CleanUnfinishedCronjobShort=清理未完成的 cronjob +CleanUnfinishedCronjob=當程序不再執行時,清除在程序中停止之cronjob WarningCronDelayed=請注意,出於性能目的,無論下一次執行已啟動工作的日期如何,您的工作執行最多可能會延遲%s小時。 DATAPOLICYJob=資料清理器和匿名器 JobXMustBeEnabled=必須啟用工作%s +EmailIfError=錯誤警告電子郵件 +ErrorInBatch=執行 %s時出現的錯誤 + # Cron Boxes LastExecutedScheduledJob=最後執行的計劃工作 NextScheduledJobExecute=下一個要預定要執行的工作 NumberScheduledJobError=錯誤的預定工作數量 +NumberScheduledJobNeverFinished=從未完成的預定作業數量 diff --git a/htdocs/langs/zh_TW/datapolicy.lang b/htdocs/langs/zh_TW/datapolicy.lang new file mode 100644 index 00000000000..f3ba68e11cf --- /dev/null +++ b/htdocs/langs/zh_TW/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = 資料數據隱私政策 +# Module description 'ModuledatapolicyDesc' +Module4100Desc = 管理資料數據隱私的模組(符合 GDPR) + +# +# Administration page +# +datapolicySetup = 資料數據隱私政策模組設定 +Deletion = 刪除資料 +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
    The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s 個月 +ONE_YEAR = 1年 +NB_YEARS = %s 年 +DATAPOLICY_TIERS_CLIENT = 客戶 +DATAPOLICY_TIERS_PROSPECT = 潛在方 +DATAPOLICY_TIERS_PROSPECT_CLIENT = 潛在方/客戶 +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = 非潛在方或客戶 +DATAPOLICY_TIERS_FOURNISSEUR = 供應商 +DATAPOLICY_CONTACT_CLIENT = 客戶 +DATAPOLICY_CONTACT_PROSPECT = 潛在方 +DATAPOLICY_CONTACT_PROSPECT_CLIENT = 潛在方/客戶 +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = 非潛在方或客戶 +DATAPOLICY_CONTACT_FOURNISSEUR = 供應商 +DATAPOLICY_ADHERENT = 會員 +DATAPOLICY_Tooltip_SETUP = 聯絡方式 - 說明您對每種類型的選擇。 +DATAPOLICYMail = 電子郵件設定 +DATAPOLICYSUBJECTMAIL = 電子郵件的主題 +DATAPOLICYCONTENTMAIL = 電子郵件的內容 +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = 同意後的訊息 +DATAPOLICYREFUSE = 不同意後的訊息 +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = 發送電子郵件 +AllAgreementSend = 所有電子郵件已發送 +TXTLINKDATAPOLICYACCEPT = “同意”的超連結文字 +TXTLINKDATAPOLICYREFUSE = “不同意”的超連結文字 + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = 匿名合作方 +DATAPOLICY_POPUP_ANONYME_TEXTE = 您無法從 Dolibarr 刪除此聯絡人,因為已有相關項目。根據 GDPR,您將使這些所有資料匿名,以遵從您的義務。您想繼續嗎 ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = 匯出個人資料 +DATAPOLICY_PORTABILITE_CONFIRMATION = 您要匯出此聯絡人的個人資料。您確定嗎 ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/zh_TW/dict.lang b/htdocs/langs/zh_TW/dict.lang index 28f4deaf115..a1ab2510922 100644 --- a/htdocs/langs/zh_TW/dict.lang +++ b/htdocs/langs/zh_TW/dict.lang @@ -250,7 +250,9 @@ CountryMF=聖馬丁 ##### Civilities ##### CivilityMME=夫人 +CivilityMMEShort=夫人 CivilityMR=先生 +CivilityMRShort=先生 CivilityMLE=女士 CivilityMTRE=主人 CivilityDR=醫生 diff --git a/htdocs/langs/zh_TW/ecm.lang b/htdocs/langs/zh_TW/ecm.lang index f9a37e2c57e..9fec5def5d7 100644 --- a/htdocs/langs/zh_TW/ecm.lang +++ b/htdocs/langs/zh_TW/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=手冊資料夾 ECMSectionAuto=自動產生資料夾 ECMSectionsManual=自行加入的樹狀圖 ECMSectionsAuto=自動產生的樹狀圖 +ECMSectionsMedias=Medias tree ECMSections=資料夾 ECMRoot=ECM的開始資料夾 ECMNewSection=新資料夾 @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=在各子資料夾的檔案數量 ECMCreationUser=建立者 ECMArea=檔案管理/電子內容管理區 ECMAreaDesc=DMS / ECM(檔案管理系統/電子內容管理)區域使您可以在Dolibarr中快速儲存,共享和搜索所有類型的文件。 -ECMAreaDesc2=*自動填寫目錄時自動加入一個元素從卡的文件。
    *手動目錄可以用來保存未鏈接到一個特定元素的文件。 +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=資料夾%s已被刪除。 ECMSectionWasCreated=資料夾%s已建立。 ECMSearchByKeywords=搜尋關鍵字 diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang index 5afdeaa2b52..53370bbd9ca 100644 --- a/htdocs/langs/zh_TW/errors.lang +++ b/htdocs/langs/zh_TW/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=登入者%s已經存在。 ErrorGroupAlreadyExists=群組%s已經存在。 ErrorEmailAlreadyExists=電子郵件 %s 已存在。 ErrorRecordNotFound=記錄沒有找到。 +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=無法將檔案'%s'複製到'%s' ErrorFailToCopyDir=無法將資料夾'%s' 複製到'%s'. ErrorFailToRenameFile=無法將檔案 '%s' 重新命名成'%s'. @@ -48,6 +49,7 @@ ErrorBadImageFormat=圖片檔案格式不支援(您的PHP不支援轉換此格 ErrorBadDateFormat="%s"日期格式錯誤 ErrorWrongDate=日期不正確! ErrorFailedToWriteInDir=無法寫入資料夾%s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=找到電子郵件文件中的%s行語法不正確(例如電子郵件%s行 =%s) ErrorUserCannotBeDelete=無法刪除用戶。也許它與Dolibarr實體相關。 ErrorFieldsRequired=一些必填欄位已留空。 @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=請填寫複選框清單的值 ErrorNoValueForRadioType=請填寫廣播清單的值 ErrorBadFormatValueList=清單值不能包含多於一個逗號: %s ,但至少需要一個:key,value ErrorFieldCanNotContainSpecialCharacters=欄位 %s必須不包含特殊字元 -ErrorFieldCanNotContainSpecialNorUpperCharacters=欄位%s不能包含特殊字元,也不能包含大寫字元,只能使用數字。 +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=欄位 %s 至少必須有%s 字元. ErrorNoAccountancyModuleLoaded=會計模組未啟動 ErrorExportDuplicateProfil=此匯出設定已存在此設定檔案名稱。 @@ -92,11 +94,12 @@ ErrorModuleRequireJavascript=為使用此功能不能停用JavaScript。要啟 ErrorPasswordsMustMatch=這兩種類型的密碼必須相互匹配 ErrorContactEMail=發生技術錯誤。請用以下電子郵件%s聯絡管理員,並提供錯誤代碼%s ,或加入此錯誤畫面。 ErrorWrongValueForField=欄位%s :"%s"與正則表達式規則%s不匹配 +ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=欄位%s: "%s"在 %s中的欄位%s被發現不是數值 ErrorFieldRefNotIn=欄位%s: '%s' 不是 %s現有參考 +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=發現%s錯誤 ErrorFileIsInfectedWithAVirus=防毒程式無法驗證檔案(檔案可能被病毒感染) -ErrorSpecialCharNotAllowedForField=欄位“ %s”不允許使用特殊字元 ErrorNumRefModel=資料庫中存在一個引用(%s),並且與該編號規則不相容。刪除記錄或重命名的引用以啟用此模組。 ErrorQtyTooLowForThisSupplier=數量太少,或者此供應商沒有為此產品定義價格 ErrorOrdersNotCreatedQtyTooLow=由於數量太少,某些訂單尚未建立 @@ -241,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=項目必須具有“啟用”狀態 ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=要啟用的項目必須具有“草稿”或“已關閉”狀態 ErrorNoFieldWithAttributeShowoncombobox=沒有欄位在項目“ %s”的定義中具有屬性“ showoncombobox”。無法顯示組合清單。 ErrorFieldRequiredForProduct=產品%s必須有欄位'%s' +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=問題在於站台%s的設定。 ErrorAddAtLeastOneLineFirst=請先至少增加一行 ErrorRecordAlreadyInAccountingDeletionNotPossible=錯誤,記錄已在會計中轉移,無法刪除。 @@ -270,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=您必須先設定會計項目表 ErrorFailedToFindEmailTemplate=無法找到代號為 %s 的模板 ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=未在服務中定義時間範圍.無法計算時薪. ErrorActionCommPropertyUserowneridNotDefined=需要用戶的擁有者 -ErrorActionCommBadType=選擇的事件類型(id:%n,代碼:%s)在事件類型分類中不存在 +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=版本檢查失敗 ErrorWrongFileName=檔案名稱中不可以有__SOMETHING__ ErrorNotInDictionaryPaymentConditions=不在支付條款類別中,請修改。 ErrorIsNotADraft=%s 不是草案狀態 ErrorExecIdFailed=無法執行命令“id” -ErrorBadCharIntoLoginName=登錄名稱中的未核准字元 -ErrorRequestTooLarge=錯誤,請求太大 +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=您不是休假 %s 的批准人 ErrorAttributeIsUsedIntoProduct=此屬性用於一個或多個產品變異 ErrorAttributeValueIsUsedIntoProduct=此屬性值用於一個或多個產品變異 @@ -285,13 +289,25 @@ ErrorPaymentInBothCurrency=錯誤,所有金額必須輸入於同一列 ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=您嘗試從貨幣 %s 的帳戶支付貨幣 %s 的發票 ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s" ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s" -ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by actual object status +ErrorDeleteLineNotAllowedByObjectStatus=Delete line is not allowed by current object status ErrorAjaxRequestFailed=Request failed +ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory +ErrorFailedToWriteInTempDirectory=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=您的PHP參數upload_max_filesize(%s)高於PHP參數post_max_size(%s)。這不是相同的設定。 WarningPasswordSetWithNoAccount=為此會員設定了密碼。但是,沒有建立用戶帳戶。因此,雖然密碼已儲存,但不能用於登入Dolibarr。外部模組/界面可以使用它,但是如果您不需要為會員定義任何登入名稱或密碼,則可以從會員模組設定中關閉選項“管理每個會員的登入名稱”。如果您需要管理登入名稱但不需要任何密碼,則可以將此欄位保留為空白以避免此警告。注意:如果會員連結到用戶,電子郵件也可以用作登入名稱。 -WarningMandatorySetupNotComplete=點擊此處設定必填參數 +WarningMandatorySetupNotComplete=Click here to setup main parameters WarningEnableYourModulesApplications=點擊此處啟用您的模組和應用程式 WarningSafeModeOnCheckExecDir=警告,PHP選項safe_mode處於開啟狀態,因此命令必須儲存在php參數safe_mode_exec_dir聲明的資料夾內。 WarningBookmarkAlreadyExists=具有此標題或目標(網址)的書籤已存在。 @@ -300,7 +316,7 @@ WarningConfFileMustBeReadOnly=警告,您的設定檔案( htdocs / conf / WarningsOnXLines=關於%s來源記錄的警告 WarningNoDocumentModelActivated=沒有啟動用於產生文件的模型。預設情況下將選擇一個模型直到您檢查模組設定。 WarningLockFileDoesNotExists=警告,安裝設定完成後,必須在資料夾%s中增加檔案install.lock來停用安裝/遷移工具。忽略此檔案的建立會帶來嚴重的安全風險。 -WarningUntilDirRemoved=只要存在此漏洞(或在設定->其他設定中增加常數MAIN_REMOVE_INSTALL_WARNING),所有安全警告(僅管理員用戶可見)將保持活動狀態。 +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=警告,即使來源元件和目標元件之間的數量不同,也將關閉。請謹慎啟用此功能。 WarningUsingThisBoxSlowDown=警告,使用此框會嚴重降低顯示此框所有頁面的速度。 WarningClickToDialUserSetupNotComplete=您用戶的ClickToDial資訊設定尚未完成(請參閱用戶卡上的ClickToDial分頁)。 @@ -321,12 +337,10 @@ WarningCreateSubAccounts=警告,您不能直接建立子帳戶,您必須建 WarningAvailableOnlyForHTTPSServers=僅在使用 HTTPS 安全連線時可用。 WarningModuleXDisabledSoYouMayMissEventHere=模組 %s 尚未啟用。所以你可能會在這裡錯過很多事件。 WarningPaypalPaymentNotCompatibleWithStrict=數值 'Strict' 使得線上支付功能無法正常工作。改用“Lax”。 +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". -<<<<<<< HEAD -======= -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git # Validate RequireValidValue = 數值無效 RequireAtLeastXString = 至少需要%s個字元 @@ -347,12 +361,3 @@ BadSetupOfField = 欄位設定錯誤 BadSetupOfFieldClassNotFoundForValidation = 欄位設定錯誤:沒有發現可驗證的Class BadSetupOfFieldFileNotFound = 欄位設定錯誤:未找到要包含的檔案 BadSetupOfFieldFetchNotCallable = 欄位設定錯誤:無法在Class上調用獲取 -<<<<<<< HEAD -======= -======= -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '15.0' of git@github.com:Dolibarr/dolibarr.git diff --git a/htdocs/langs/zh_TW/eventorganization.lang b/htdocs/langs/zh_TW/eventorganization.lang index 7ea9f21cbf3..4f1641acba9 100644 --- a/htdocs/langs/zh_TW/eventorganization.lang +++ b/htdocs/langs/zh_TW/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = 使用表單建立/增加參與者,將 # Object # EventOrganizationConfOrBooth= 會議或展位 +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = 管理活動的組織 ConferenceOrBooth = 會議或展位 ConferenceOrBoothTab = 會議或展位 AmountPaid = 付款金額 DateOfRegistration = 註冊日期 ConferenceOrBoothAttendee = 會議或展位參加者 +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = 在這裡,您可以為會議投票或為活 EvntOrgRegistrationConfHelpMessage = 在這裡,您可以在活動期間鼓勵建議一個新的會議。 EvntOrgRegistrationBoothHelpMessage = 在這裡,您可以在活動期間申請展位。 ListOfSuggestedConferences = 建議會議清單 -ListOfSuggestedBooths = 建議展位清單 -ListOfConferencesOrBooths=活動專案的會議或展位清單 +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = 建議召開新會議 SuggestBooth = 建議展位 ViewAndVote = 查看和票選建議的活動 PublicAttendeeSubscriptionGlobalPage = 活動報名公開連結 PublicAttendeeSubscriptionPage = 僅用於報名此活動的公共連結 MissingOrBadSecureKey = 安全金鑰無效或遺失 -EvntOrgWelcomeMessage = 此表單允許您註冊為此活動的新參與者: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = 本次會議從 %s 開始,到 %s 結束。 ConferenceAttendeeFee = 活動的會議參與者費用:"%s"為從%s 到%s發生的。 BoothLocationFee = 活動展位位置:"%s"為從%s 到%s發生的。 @@ -130,7 +133,7 @@ LabelOfconference=會議標籤 ConferenceIsNotConfirmed=無法註冊,會議尚未確認 DateMustBeBeforeThan=%s 必須在 %s 之前 DateMustBeAfterThan=%s 必須在 %s 之後 - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=登記 OrganizationEventConfRequestWasReceived=您的會議建議已收到 OrganizationEventBoothRequestWasReceived=您的展位申請已收到 @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=您的活動註冊付款已被 OrganizationEventBulkMailToAttendees=這是關於您作為參與者參與活動的提醒 OrganizationEventBulkMailToSpeakers=這是對您作為演講者參與活動的提醒 OrganizationEventLinkToThirdParty=連結到合作方(客戶、供應商或合作夥伴) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=申請展位 NewSuggestionOfConference=申請會議 @@ -154,7 +158,7 @@ VoteOk = 您的投票已被接受。 AlreadyVoted = 您已經為此事件投票。 VoteError = 投票時發生錯誤,請重試。 -SubscriptionOk = 您的登錄已通過驗證 +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = 確認您的活動訂閱 Attendee = 參加者 PaymentConferenceAttendee = 參與人員繳費 @@ -162,6 +166,7 @@ PaymentBoothLocation = 展位支付 DeleteConferenceOrBoothAttendee=刪除參與者 RegistrationAndPaymentWereAlreadyRecorder=已記錄電子郵件 %s 的註冊和付款 EmailAttendee=參與者電子郵件 +EmailCompany=Company email EmailCompanyForInvoice=公司電子郵件(用於發票,如果與參與者電子郵件不同) ErrorSeveralCompaniesWithEmailContactUs=已找到幾家收到此電子郵件的公司,因此我們無法自動驗證您的註冊。請以 %s 聯繫我們進行手動驗證 ErrorSeveralCompaniesWithNameContactUs=已找到數家具有此名稱的公司,因此我們無法自動驗證您的註冊。請以 %s 聯繫我們進行手動驗證 diff --git a/htdocs/langs/zh_TW/exports.lang b/htdocs/langs/zh_TW/exports.lang index 32834b64867..bbba4c5bf5d 100644 --- a/htdocs/langs/zh_TW/exports.lang +++ b/htdocs/langs/zh_TW/exports.lang @@ -18,6 +18,7 @@ ExportableFields=可匯出的欄位 ExportedFields=已匯出的欄位 ImportModelName=匯入設定檔名稱 ImportModelSaved=匯入設定檔另存為%s 。 +ImportProfile=匯入設定檔 DatasetToExport=匯出資料集 DatasetToImport=匯入檔案到資料集 ChooseFieldsOrdersAndTitle=選擇欄位順序... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=類型(0 =產品,1 =服務) FileWithDataToImport=匯入有資料的檔案 FileToImport=欲匯入的來源檔案 FileMustHaveOneOfFollowingFormat=要匯入的檔案必須是以下格式 +DownloadEmptyExampleShort=下載範例檔案 DownloadEmptyExample=Download a template file with examples and information on fields you can import StarAreMandatory=Into the template file, all fields with a * are mandatory fields ChooseFormatOfFileToImport=通過點選%s圖示選擇要匯入的檔案格式... @@ -82,7 +84,7 @@ SelectFormat=選擇匯入檔案格式 RunImportFile=匯入資料 NowClickToRunTheImport=確認匯入模擬結果。更正所有錯誤並重新測試。
    當模擬報告沒有錯誤時,您可以繼續將資料匯入資料庫。 DataLoadedWithId=匯入的資料將在每個資料庫表中都有一個具有此匯入ID的附加欄位: %s ,以便在調查與此匯入相關的問題時可以對其進行搜索。 -ErrorMissingMandatoryValue=來源檔案中的欄位%s中強制性資料為空白。 +ErrorMissingMandatoryValue=Mandatory data is empty in the source file in column %s. TooMuchErrors=仍然有%s其他錯誤的來源行,但輸出已受到限制。 TooMuchWarnings=仍然有%s其他有警告的來源行,但輸出已受到限制。 EmptyLine=空行(將被丟棄) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=您可以使用過濾欄位 import_key='%s' NbOfLinesOK=行數沒有錯誤,也沒有警告:%s 。 NbOfLinesImported=已成功匯入行數:%s 。 DataComeFromNoWhere=要插入的值來自來源檔案中的任何地方。 -DataComeFromFileFieldNb=要插入的值來自來源檔案中的欄位編號%s 。 -DataComeFromIdFoundFromRef=來自來源檔案的欄位編號%s的值將用於尋找要使用的母項目ID(因此項目%s參考來源必須存在於資料庫中)。 -DataComeFromIdFoundFromCodeId=來自來源檔案的欄位編號%s的代碼將用於尋找要使用的母項目ID(因此來源檔案中的代碼必須存在於字典%s中 )。請注意,如果您知道ID,您應該在來源檔案中使用它而不是使用代碼。在兩種情況下,匯入都應該起作用。 +DataComeFromFileFieldNb=Value to insert comes from column %s in source file. +DataComeFromIdFoundFromRef=The value that comes from the source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=來自來源檔案的資料將被插入到以下欄位: DataIDSourceIsInsertedInto=在來源檔案中的資料找到母項目ID,將插入到以下欄位: DataCodeIDSourceIsInsertedInto=在代碼中的找到母行ID,將插入到以下欄位: @@ -132,9 +134,14 @@ FormatControlRule=格式控制規則 ## imports updates KeysToUseForUpdates=用於更新現有資料的鍵(欄) NbInsert=已插入的行數:%s +NbInsertSim=將插入的行數:%s NbUpdate=已更新的行數:%s +NbUpdateSim=將更新的行數:%s MultipleRecordFoundWithTheseFilters=使用篩選器找到了多個記錄:%s StocksWithBatch=具有批次/序號產品的庫存和位置(倉庫) -WarningFirstImportedLine=The first line(s) will not be imported with the current selection -NotUsedFields=Fields of database not used +WarningFirstImportedLine=第一行將不會與目前的選擇一起匯入 +NotUsedFields=未使用的資料庫欄位 SelectImportFieldsSource = Choose the source file fields you want to import and their target field in database by choosing the fields in each select boxes, or select a predefined import profile: +MandatoryTargetFieldsNotMapped=Some mandatory target fields are not mapped +AllTargetMandatoryFieldsAreMapped=All target fields that need a mandatory value are mapped +ResultOfSimulationNoError=模擬結果:無錯誤 diff --git a/htdocs/langs/zh_TW/externalsite.lang b/htdocs/langs/zh_TW/externalsite.lang deleted file mode 100644 index 55d5e5c1226..00000000000 --- a/htdocs/langs/zh_TW/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=設定連結到外部網站 -ExternalSiteURL=HTML iframe 內容的外部網站網址 -ExternalSiteModuleNotComplete=外部網站模組設定不正確。 -ExampleMyMenuEntry=我的選單條目 diff --git a/htdocs/langs/zh_TW/ftp.lang b/htdocs/langs/zh_TW/ftp.lang deleted file mode 100644 index 55a1c5ada56..00000000000 --- a/htdocs/langs/zh_TW/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=FTP客戶端模組設定 -NewFTPClient=新的FTP連接設定 -FTPArea=FTP區域 -FTPAreaDesc=此畫面顯示FTP服務器的圖示。 -SetupOfFTPClientModuleNotComplete=FTP客戶端模組設定似乎不完整 -FTPFeatureNotSupportedByYourPHP=您的PHP不支援FTP功能 -FailedToConnectToFTPServer=無法連接到FTP服務器(服務器%s,港口%s) -FailedToConnectToFTPServerWithCredentials=無法登錄到FTP服務器的定義登錄/密碼 -FTPFailedToRemoveFile=無法刪除文件%s。 -FTPFailedToRemoveDir=無法刪除資料夾%s :檢查權限,並且確認資料夾內無檔案。 -FTPPassiveMode=被動模式 -ChooseAFTPEntryIntoMenu=從選單中選擇一個FTP站台... -FailedToGetFile=無法獲取檔案 %s diff --git a/htdocs/langs/zh_TW/holiday.lang b/htdocs/langs/zh_TW/holiday.lang index 868e06f0268..631476875ca 100644 --- a/htdocs/langs/zh_TW/holiday.lang +++ b/htdocs/langs/zh_TW/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=人力資源 Holidays=休假 +Holiday=休假 CPTitreMenu=休假 MenuReportMonth=月結單 MenuAddCP=新休假單 +MenuCollectiveAddCP=新的集體休假申請 NotActiveModCP=您必須啟用“休假”模組才能查看此頁面。 AddCP=建立休假申請 DateDebCP=開始日期 @@ -44,8 +46,8 @@ NbUseDaysCPHelp=此計算考慮了分類中定義的非工作日和假期。 NbUseDaysCPShort=休假天數 NbUseDaysCPShortInMonth=月休假天數 DayIsANonWorkingDay=%s 是非工作日 -DateStartInMonth=開始日期(月份) -DateEndInMonth=結束日期(月份) +DateStartInMonth=開始日期(月) +DateEndInMonth=結束日期(月) EditCP=編輯 DeleteCP=刪除 ActionRefuseCP=拒絕 @@ -56,6 +58,7 @@ ConfirmDeleteCP=確認刪除此休假申請嗎? ErrorCantDeleteCP=錯誤,您無權刪除此休假申請。 CantCreateCP=您無權提出休假申請。 InvalidValidatorCP=您必須為休假申請選擇批准人。 +InvalidValidator=選擇的用戶無法批准假期。 NoDateDebut=您必須選擇開始日期。 NoDateFin=您必須選擇結束日期。 ErrorDureeCP=您的休假申請不包含工作日。 @@ -79,6 +82,8 @@ MotifCP=原因 UserCP=用戶 ErrorAddEventToUserCP=增加特殊假期時發生錯誤。 AddEventToUserOkCP=特別假期的增加已經完成。 +ErrorFieldRequiredUserOrGroup=必須填寫"群組"欄位與"用戶"欄位 +fusionGroupsUsers=群組欄位與用戶欄位將合併 MenuLogCP=檢視變更日誌 LogCP=休假餘額更新日誌 ActionByCP=更新者 @@ -86,6 +91,13 @@ UserUpdateCP=更新為 PrevSoldeCP=剩餘假期 NewSoldeCP=新剩餘假期 alreadyCPexist=在此期間之休假申請已完成。 +UseralreadyCPexist=此%s期間的休假申請已完成 +groups=群組 +users=用戶 +AutoSendMail=自動發送郵件 +NewHolidayForGroup=新的集體休假申請 +SendRequestCollectiveCP=發送集體休假申請 +AutoValidationOnCreate=自動驗證 FirstDayOfHoliday=假期的第一天 LastDayOfHoliday=假期的最後一天 BoxTitleLastLeaveRequests=最新%s筆已修改的休假申請 @@ -134,6 +146,13 @@ HolidaysToApprove=可批准假期 NobodyHasPermissionToValidateHolidays=沒有人有權限驗證假期 HolidayBalanceMonthlyUpdate=每月更新假期餘額 XIsAUsualNonWorkingDay=%s通常為非工作日 -BlockHolidayIfNegative=Block if balance negative -LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative +BlockHolidayIfNegative=如果餘額為負值,則鎖定 +LeaveRequestCreationBlockedBecauseBalanceIsNegative=由於您的餘額為負值,此休假的建立已被鎖定 ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=休假 %s 為草案、取消或拒絕,將被刪除 +IncreaseHolidays=增加假期 +HolidayRecordsIncreased= %s 的假期記錄已增加 +HolidayRecordIncreased=假期記錄已增加 +ConfirmMassIncreaseHoliday=批次增加假期 +NumberDayAddMass=增加到選擇的天數 +ConfirmMassIncreaseHolidayQuestion=您確定要增加 %s 所選的已記錄假期嗎? +HolidayQtyNotModified=%s 的剩餘天數未變更 diff --git a/htdocs/langs/zh_TW/hrm.lang b/htdocs/langs/zh_TW/hrm.lang index 7677c4f25ff..69879dd2d07 100644 --- a/htdocs/langs/zh_TW/hrm.lang +++ b/htdocs/langs/zh_TW/hrm.lang @@ -12,7 +12,7 @@ OpenEtablishment=開啟營業所 CloseEtablishment=關閉營業所 # Dictionary DictionaryPublicHolidays=休假 - 公共假期 -DictionaryDepartment=HRM-部門清單 +DictionaryDepartment=人力資源管理 - 部門清單 DictionaryFunction=人力資源管理-職位 # Module Employees=員工 @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=建立技能時的預設等級描述 deplacement=轉移 DateEval=評估日期 JobCard=工作卡 -JobPosition=工作 -JobsPosition=工作 +JobPosition=職位簡介 +JobsPosition=職位簡介 NewSkill=新技能 SkillType=技能類型 Skilldets=此技能的等級清單 @@ -70,9 +70,9 @@ RequiredSkills=此職位的必要技能 UserRank=用戶等級 SkillList=技能清單 SaveRank=儲存等級 -knowHow=Know how -HowToBe=怎樣成為 -knowledge=知識 +TypeKnowHow=Know how +TypeHowToBe=怎樣成為 +TypeKnowledge=知識 AbandonmentComment=放棄評論 DateLastEval=上次評估日期 NoEval=沒有對此員工進行的評估 @@ -88,3 +88,5 @@ DeleteSkill = 技能已刪除 SkillsExtraFields=補充屬性(能力) JobsExtraFields=補充屬性 (職位) EvaluationsExtraFields=補充屬性(評估) +NeedBusinessTravels=需要出差 +NoDescription=沒有說明 diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang index f5b3ab6aaac..1e5bc98c266 100644 --- a/htdocs/langs/zh_TW/install.lang +++ b/htdocs/langs/zh_TW/install.lang @@ -1,22 +1,22 @@ # Dolibarr language file - Source file is en_US - install InstallEasy=只需按照說明進行操作即可。 MiscellaneousChecks=安裝條件檢查 -ConfFileExists=配置文件%s存在。 -ConfFileDoesNotExistsAndCouldNotBeCreated=配置文件%s不存在,無法建立! -ConfFileCouldBeCreated=%s配置文件可以建立。 -ConfFileIsNotWritable=配置文件%s不可寫入。檢查權限。對於首次安裝,您的網頁伺服器必須能夠在設定過程中寫入該文件(例如,在類Unix系統中使用“ chmod 666”)。 -ConfFileIsWritable=配置文件%s可寫入。 -ConfFileMustBeAFileNotADir=配置文件%s必須是一個檔案,而不是資料夾。 -ConfFileReload=從配置文件中重新載入參數。 -NoReadableConfFileSoStartInstall=設定檔案 conf/conf.php 不存在或不可讀取。我們將執行安裝過程以嘗試對其進行初始化。 +ConfFileExists=設定檔案%s存在。 +ConfFileDoesNotExistsAndCouldNotBeCreated=設定檔案%s不存在,無法建立! +ConfFileCouldBeCreated=設定檔案%s可以建立。 +ConfFileIsNotWritable=設定檔案%s不可寫入。檢查權限。對於首次安裝,您的網頁伺服器必須能夠在設定過程中寫入該檔案(例如,在類Unix系統中使用“ chmod 666”)。 +ConfFileIsWritable=設定檔案%s可寫入。 +ConfFileMustBeAFileNotADir=設定檔案%s必須是一個檔案,而不是資料夾。 +ConfFileReload=從設定檔案中重新載入參數。 +NoReadableConfFileSoStartInstall=設定檔案 conf/conf.php 不存在或無法讀取。我們將執行安裝程序以嘗試對其進行初始化。 PHPSupportPOSTGETOk=此PHP支援變數POST和GET。 PHPSupportPOSTGETKo=您的PHP設定可能不支援變數POST和/或GET。檢查php.ini中的參數variables_order 。 PHPSupportSessions=這個PHP支援session。 PHPSupport=此PHP支援%s函數。 PHPMemoryOK=您的PHP最大session記憶體設定為%s 。這應該足夠了。 -PHPMemoryTooLow=您的PHP最大session記憶體為%sbytes。這太低了。更改您的php.ini,以將記憶體限制/b>參數設定為至少%sbytes。 +PHPMemoryTooLow=您的PHP最大程序記憶體為%sbytes。這太低了。更改您的php.ini,以將記憶體限制參數設定為至少%sbytes。 Recheck=點擊這裡進行更詳細的測試 -ErrorPHPDoesNotSupportSessions=您的PHP安裝不支援session。需要此功能才能使Dolibarr正常工作。檢查您的PHP設定和session目錄的權限。 +ErrorPHPDoesNotSupportSessions=您的PHP安裝不支援session。需要此功能才能使Dolibarr正常工作。檢查您的PHP設定和session資料夾的權限。 ErrorPHPDoesNotSupport=您的PHP安裝不支援%s函數。 ErrorDirDoesNotExists=資料夾%s不存在。 ErrorGoBackAndCorrectParameters=返回並檢查/更正參數。 @@ -24,9 +24,11 @@ ErrorWrongValueForParameter=您可能為參數“ %s”輸入了錯誤的值。 ErrorFailedToCreateDatabase=無法建立資料庫'%s'。 ErrorFailedToConnectToDatabase=無法連接到資料庫“ %s”。 ErrorDatabaseVersionTooLow=資料庫版本 (%s) 太舊. 需要至少版本 %s 或更新版本 -ErrorPHPVersionTooLow=PHP的版本太舊。至少必須是%s版本。 +ErrorPHPVersionTooLow=PHP 版本太舊。需要版本 %s 或更高版本。 +ErrorPHPVersionTooHigh=PHP 版本太高。需要 %s 或更低版本。 ErrorConnectedButDatabaseNotFound=與伺服器的連接成功,但未找到資料庫'%s'。 ErrorDatabaseAlreadyExists=資料庫'%s'已經存在。 +ErrorNoMigrationFilesFoundForParameters=找不到所選版本的遷移檔案 IfDatabaseNotExistsGoBackAndUncheckCreate=如果資料庫不存在,請返回並檢查選項“建立資料庫”。 IfDatabaseExistsGoBackAndCheckCreate=如果資料庫已經存在,請返回並取消選取“建立資料庫”選項。 WarningBrowserTooOld=瀏覽器版本太舊。強烈建議將瀏覽器升級到最新版本的Firefox,Chrome或Opera。 @@ -49,7 +51,6 @@ DatabaseName=資料庫名稱 DatabasePrefix=資料庫表前綴 DatabasePrefixDescription=資料庫表前綴.如果空白,預設為llx_. AdminLogin=Dolibarr資料庫擁有者的帳戶。 -PasswordAgain=再輸入一次密碼確認 AdminPassword=Dolibarr資料庫擁有者密碼。 CreateDatabase=建立資料庫 CreateUser=在Dolibarr資料庫上建立帳戶或授予帳戶權限 @@ -211,3 +212,6 @@ ClickHereToGoToApp=點擊此處前往您的應用程式 ClickOnLinkOrRemoveManualy=如果正在進行升級,請等待。如果沒有,請點擊以下連結。如果始終看到同一頁面,則必須在documents資料夾中刪除/重新命名install.lock檔案。 Loaded=已載入 FunctionTest=功能測試 +NodoUpgradeAfterDB=升級資料庫後未收到外部模組的行動請求 +NodoUpgradeAfterFiles=升級檔案或資料夾後未得到外部模組的行動請求 +MigrationContractLineRank=遷移合約行以使用排名(並啟用重新排序) diff --git a/htdocs/langs/zh_TW/knowledgemanagement.lang b/htdocs/langs/zh_TW/knowledgemanagement.lang index 83fa3e35f01..1eebe0da8ee 100644 --- a/htdocs/langs/zh_TW/knowledgemanagement.lang +++ b/htdocs/langs/zh_TW/knowledgemanagement.lang @@ -43,12 +43,12 @@ ListKnowledgeRecord = 文章清單 NewKnowledgeRecord = 新文章 ValidateReply = 驗證解決方案 KnowledgeRecords = 文章 -KnowledgeRecord = 物品 +KnowledgeRecord = 文章 KnowledgeRecordExtraFields = 文章的補充屬性 GroupOfTicket=服務單群組 -YouCanLinkArticleToATicketCategory=您可以將文章連結至服務單群組(因此在新服務單的有效期間將建議該文章) -SuggestedForTicketsInGroup=為此群組服務單建議 +YouCanLinkArticleToATicketCategory=您可以將文章連結至服務單群組(這樣文章將突顯在該群組中的任何服務單上) +SuggestedForTicketsInGroup=建議的服務單群組 -SetObsolete=Set as obsolete -ConfirmCloseKM=Do you confirm the closing of this article as obsolete ? -ConfirmReopenKM=Do you want to restore this article to status "Validated" ? +SetObsolete=設定為已過時 +ConfirmCloseKM=您確定要將此文章關閉並設定為已過時嗎? +ConfirmReopenKM=您想將此文章恢復到“已驗證”狀態嗎? diff --git a/htdocs/langs/zh_TW/languages.lang b/htdocs/langs/zh_TW/languages.lang index f7cbc99c7a9..dcfae21fce3 100644 --- a/htdocs/langs/zh_TW/languages.lang +++ b/htdocs/langs/zh_TW/languages.lang @@ -13,6 +13,7 @@ Language_az_AZ=亞塞拜然 Language_bn_BD=孟加拉語 Language_bn_IN=孟加拉語(印度) Language_bg_BG=保加利亞語 +Language_bo_CN=藏語 Language_bs_BA=波斯尼亞語 Language_ca_ES=加泰羅尼亞語 Language_cs_CZ=捷克语 @@ -22,6 +23,7 @@ Language_da_DK=丹麥語 Language_de_DE=德語 Language_de_AT=德語(奧地利) Language_de_CH=德語(瑞士) +Language_de_LU=德語(盧森堡) Language_el_GR=希臘語 Language_el_CY=希臘語(塞浦路斯) Language_en_AE=英語(阿拉伯聯合酋長國) @@ -30,15 +32,17 @@ Language_en_CA=英語(加拿大) Language_en_GB=英語(英國) Language_en_IN=英國(印度) Language_en_NZ=英語(紐西蘭) -Language_en_SA=英语 (沙特阿拉伯) -Language_en_SG=英文(新加坡) +Language_en_SA=英語 (沙烏地阿拉伯) +Language_en_SG=英語(新加坡) Language_en_US=英語(美國) Language_en_ZA=英語(南非) +Language_en_ZW=英語(辛巴威) Language_es_ES=西班牙語 Language_es_AR=西班牙語(阿根廷) Language_es_BO=西班牙語(玻利維亞) Language_es_CL=西班牙語(智利) Language_es_CO=西班牙語(哥倫比亞) +Language_es_CR=西班牙語(哥斯大黎加) Language_es_DO=西班牙語(多明尼加共和國) Language_es_EC=西班牙語(厄瓜多爾) Language_es_GT=西班牙語(瓜地馬拉) @@ -93,6 +97,7 @@ Language_nl_BE=荷蘭語(比利時) Language_nl_NL=荷蘭人 Language_pl_PL=波蘭語 Language_pt_AO=葡萄牙語(安哥拉) +Language_pt_MZ=葡萄牙語(莫三比克) Language_pt_BR=葡萄牙語(巴西) Language_pt_PT=葡萄牙語 Language_ro_MD=羅馬尼亞語(摩爾達維亞) @@ -108,6 +113,7 @@ Language_sv_SE=瑞典語 Language_sq_AL=阿爾巴尼亞語 Language_sk_SK=斯洛伐克語 Language_sr_RS=塞爾維亞語 +Language_sw_KE=史瓦希里語 Language_sw_SW=斯瓦希里語 Language_th_TH=泰國語 Language_uk_UA=烏克蘭語 diff --git a/htdocs/langs/zh_TW/loan.lang b/htdocs/langs/zh_TW/loan.lang index c9b1a7e0870..6754ac5f1cd 100644 --- a/htdocs/langs/zh_TW/loan.lang +++ b/htdocs/langs/zh_TW/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=財務承諾 InterestAmount=利益 CapitalRemain=剩餘資本 TermPaidAllreadyPaid = 這表示已付款 -CantUseScheduleWithLoanStartedToPaid = 無法在已開始付款的借款中使用排程器 +CantUseScheduleWithLoanStartedToPaid = 無法為已開始付款的貸款產生時間表 CantModifyInterestIfScheduleIsUsed = 如果您使用時間表,則無法修改利息 # Admin ConfigLoan=貸款模組設定 -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=預設會計帳戶資金 -LOAN_ACCOUNTING_ACCOUNT_INTEREST=預設帳戶利息 -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=預設帳戶保險 +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=預設情況下用於資本(貸款模組)的帳戶(來自帳戶圖表) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=預設用於利息的帳戶(來自帳戶圖表)(貸款模組) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=預設情況下用於保險的帳戶(來自帳戶圖表)(貸款模組) CreateCalcSchedule=編輯財務承諾 diff --git a/htdocs/langs/zh_TW/mailmanspip.lang b/htdocs/langs/zh_TW/mailmanspip.lang index bab4b3576b4..37a9e776066 100644 --- a/htdocs/langs/zh_TW/mailmanspip.lang +++ b/htdocs/langs/zh_TW/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -MailmanSpipSetup=Mailman and SPIP module Setup -MailmanTitle=Mailman mailing list system -TestSubscribe=To test subscription to Mailman lists -TestUnSubscribe=To test unsubscribe from Mailman lists -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully -SynchroMailManEnabled=A Mailman update will be performed -SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password -DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions -DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions -DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) -SPIPTitle=SPIP Content Management System -DescADHERENT_SPIP_SERVEUR=SPIP Server -DescADHERENT_SPIP_DB=SPIP database name -DescADHERENT_SPIP_USER=SPIP database login -DescADHERENT_SPIP_PASS=SPIP database password -AddIntoSpip=Add into SPIP -AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? -AddIntoSpipError=Failed to add the user in SPIP -DeleteIntoSpip=Remove from SPIP -DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? -DeleteIntoSpipError=Failed to suppress the user from SPIP -SPIPConnectionFailed=Failed to connect to SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +MailmanSpipSetup=Mailman和SPIP模組設定 +MailmanTitle=Mailman郵件清單系統 +TestSubscribe=測試從Mailman清單訂閱 +TestUnSubscribe=測試從Mailman清單退訂 +MailmanCreationSuccess=訂閱測試已成功執行 +MailmanDeletionSuccess=取消訂閱測試已成功執行 +SynchroMailManEnabled=將執行Mailman更新 +SynchroSpipEnabled=將執行Spip更新 +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman管理員密碼 +DescADHERENT_MAILMAN_URL=Mailman的訂閱網址 +DescADHERENT_MAILMAN_UNSUB_URL=Mailman的取消訂閱網址 +DescADHERENT_MAILMAN_LISTS=新會員自動題名清單(以逗號分隔) +SPIPTitle=SPIP內容管理系統 +DescADHERENT_SPIP_SERVEUR=SPIP伺服器 +DescADHERENT_SPIP_DB=SPIP資料庫名稱 +DescADHERENT_SPIP_USER=SPIP資料庫登入名稱 +DescADHERENT_SPIP_PASS=SPIP資料庫密碼 +AddIntoSpip=增加到SPIP +AddIntoSpipConfirmation=您確定要將此會員加到SPIP嗎? +AddIntoSpipError=無法在SPIP中增加此用戶 +DeleteIntoSpip=從SPIP刪除 +DeleteIntoSpipConfirmation=您確定要從SPIP中刪除此會員嗎? +DeleteIntoSpipError=無法禁止此用戶使用SPIP +SPIPConnectionFailed=無法連接到SPIP +SuccessToAddToMailmanList=已成功地將%s增加到mailman清單%s或SPIP資料庫 +SuccessToRemoveToMailmanList=從mailman清單%s或SPIP資料庫中成功地刪除了%s diff --git a/htdocs/langs/zh_TW/mails.lang b/htdocs/langs/zh_TW/mails.lang index cd5b4703c34..a3e96505632 100644 --- a/htdocs/langs/zh_TW/mails.lang +++ b/htdocs/langs/zh_TW/mails.lang @@ -7,10 +7,10 @@ MailCard=電子郵件卡片 MailRecipients=收件人 MailRecipient=收件人 MailTitle=描述 -MailFrom=寄件人 +MailFrom=從 MailErrorsTo=錯誤收件箱 MailReply=回覆 -MailTo=收件人 +MailTo=到 MailToUsers=寄送給用戶 MailCC=副本 MailToCCUsers=CC @@ -178,3 +178,4 @@ IsAnAnswer=是一封原始電子郵件的回應 RecordCreatedByEmailCollector=由電子郵件收集器%s從電子郵件%s建立的記錄 DefaultBlacklistMailingStatus=建立新聯絡人時欄位“%s”的預設值 DefaultStatusEmptyMandatory=必填 +WarningLimitSendByDay=警告:實例的設定或合約將每天的電子郵件數量限制為 %s 。嘗試發送更多可能會導致您的實例變慢或暫停。如果您需要更高的配額,請聯絡您的服務人員。 diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index 9081e86d88c..a85591c3c84 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=msungstdlight FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=此電子郵件類別沒有可用的範本 AvailableVariables=可用的替代變數 NoTranslation=沒有翻譯 Translation=翻譯 +Translations=Translations CurrentTimeZone=PHP (伺服器)時區 EmptySearchString=輸入非空白的搜索字串 EnterADateCriteria=輸入日期條件 @@ -199,6 +206,7 @@ Valid=有效 Approve=核准 Disapprove=不核准 ReOpen=重新公開 +OpenVerb=啟用 Upload=上傳 ToLink=連線 Select=選擇 @@ -481,6 +489,7 @@ ActionsOnContact=通訊錄/地址事件 ActionsOnContract=此合約的事件 ActionsOnMember=此會員的各種事件 ActionsOnProduct=此產品的各種事件 +ActionsOnAsset=Events for this fixed asset NActionsLate=%s筆等待驗證 ToDo=待辦 Completed=已完成 @@ -498,7 +507,7 @@ TotalDuration=總時間 Summary=摘要 DolibarrStateBoard=資料庫統計 DolibarrWorkBoard=開啟項目 -NoOpenedElementToProcess=沒有已開啟元件要執行 +NoOpenedElementToProcess=沒有已啟用元件要執行 Available=可用 NotYetAvailable=尚不可用 NotAvailable=無法使用 @@ -535,8 +544,8 @@ Drafts=草案 StatusInterInvoiced=已開票 Validated=已驗證 ValidatedToProduce=已驗證(生產) -Opened=開放 -OpenAll=開放(全部) +Opened=啟用 +OpenAll=啟用(全部) ClosedAll=已關閉(全部) New=新增 Discount=折扣 @@ -712,6 +721,7 @@ FeatureDisabled=功能已關閉 MoveBox=移動小工具 Offered=已提供 NotEnoughPermissions=您沒有權限執行這個動作 +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=連線程序名稱 Method=方法 Receive=收到 @@ -801,6 +811,7 @@ URLPhoto=照片/logo的網址 SetLinkToAnotherThirdParty=連結到另一個合作方 LinkTo=連結到 LinkToProposal=連結到提案/建議書 +LinkToExpedition= Link to expedition LinkToOrder=連結到訂單 LinkToInvoice=連結到發票 LinkToTemplateInvoice=連結到發票範本 @@ -919,6 +930,7 @@ DirectDownloadInternalLink=私人下載連結 PrivateDownloadLinkDesc=您需要登錄,並且需要有查看或下載檔案的權限 Download=下載 DownloadDocument=下載文件 +DownloadSignedDocument=下載已簽名文件 ActualizeCurrency=更新匯率 Fiscalyear=會計年度 ModuleBuilder=模組與應用程式建構器 @@ -945,8 +957,8 @@ LeadOrProject=潛在|專案 LeadsOrProjects=潛在|專案 Lead=潛在 Leads=潛在 -ListOpenLeads=列出打開潛在 -ListOpenProjects=列出打開專案 +ListOpenLeads=列出啟用潛在 +ListOpenProjects=列出啟用專案 NewLeadOrProject=新潛在客戶或專案 Rights=權限 LineNb=行號 @@ -1044,6 +1056,7 @@ SearchIntoContracts=合約 SearchIntoCustomerShipments=客戶出貨 SearchIntoExpenseReports=費用報表 SearchIntoLeaves=休假 +SearchIntoKM=知識庫 SearchIntoTickets=服務單 SearchIntoCustomerPayments=客戶付款 SearchIntoVendorPayments=供應商付款 @@ -1135,15 +1148,29 @@ EventReminder=事件提醒 UpdateForAllLines=更新所有行 OnHold=On hold Civility=稱謂或頭銜 -AffectTag=設定標籤/類別 +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=設定主管 CreateExternalUser=建立外部用戶 -ConfirmAffectTag=批量設定標籤/類別 -ConfirmAffectTagQuestion=您確定要設定%s所選記錄的標籤/分類嗎? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=批量設定主管 +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=找不到記錄類型的標籤類型 +Rate=稅率 +SupervisorNotFound=找不到主管 CopiedToClipboard=複製到剪貼簿 InformationOnLinkToContract=這個金額只是合約所有行的總和。沒有考慮時間的因素。 ConfirmCancel=您確定要取消? EmailMsgID=電子郵件訊息 ID +EmailDate=寄送日期 +SetToStatus=Set to status %s SetToEnabled=設定為啟用 SetToDisabled=設定為停用 ConfirmMassEnabling=批次啟用確認 @@ -1172,5 +1199,14 @@ Terminated=已終止 AddLineOnPosition=在位置增加行(如果為空,則在末尾) ConfirmAllocateCommercial=分配業務代表確認 ConfirmAllocateCommercialQuestion=您確定要分配 %s 選定的記錄嗎? -CommercialsAffected=受影響的業務代表 -CommercialAffected=受影響的業務代表 +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=你的訊息 +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=內部用戶 +ExternalUser=外部用戶 diff --git a/htdocs/langs/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang index 6dd2f02b4e5..7b30400ef98 100644 --- a/htdocs/langs/zh_TW/members.lang +++ b/htdocs/langs/zh_TW/members.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - members MembersArea=會員專區 MemberCard=會員卡 -SubscriptionCard=認購卡 +SubscriptionCard=訂閱卡 Member=會員 Members=會員 ShowMember=顯示會員卡 @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=另一名會員(名稱:%s ErrorUserPermissionAllowsToLinksToItselfOnly=出於安全原因,必須授予您編輯所有用戶的權限,以便能夠將會員連結到其他用戶。 SetLinkToUser=連結Dolibarr用戶 SetLinkToThirdParty=連接到Dolibarr合作方 +MemberCountersArePublic=Counters of valid members are public MembersCards=產生會員卡 MembersList=會員清單 MembersListToValid=草案會員清單(待確認) @@ -34,8 +35,10 @@ DateSubscription=入會日期 DateEndSubscription=會員終止日 EndSubscription=終止會員 SubscriptionId=捐款編號 -WithoutSubscription=沒有捐款 -MemberId=會員編號 +WithoutSubscription=無會員 +WaitingSubscription=等待會員資格 +MemberId=會員ID +MemberRef=會員編號 NewMember=新會員 MemberType=會員類型 MemberTypeId=會員類型編號 @@ -51,7 +54,7 @@ MemberStatusPaid=訂閱為最新 MemberStatusPaidShort=最新 MemberStatusExcluded=未包含的會員 MemberStatusExcludedShort=未包含 -MemberStatusResiliated=已終止成員 +MemberStatusResiliated=已終止會員 MemberStatusResiliatedShort=已終止 MembersStatusToValid=草案會員 MembersStatusExcluded=未包含的會員 @@ -71,6 +74,12 @@ MemberTypeCanNotBeDeleted=會員類型無法刪除 NewSubscription=新捐款 NewSubscriptionDesc=此表單使您可以作為財團的新會員來記錄訂閱。如果要續訂(如果已經是會員),請通過電子郵件%s與基金會聯繫。 Subscription=捐款 +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=任意金額 +CanEditAmountShortForValues=推薦,任意金額 +MembershipDuration=期間 +GetMembershipButtonLabel=加入 Subscriptions=捐款 SubscriptionLate=晚 SubscriptionNotReceived=從未收到捐款 @@ -113,7 +122,7 @@ String=字串 Text=文字 Int=整數 DateAndTime=日期和時間 -PublicMemberCard=成員公共卡 +PublicMemberCard=會員公共卡 SubscriptionNotRecorded=捐款未記錄 AddSubscription=建立捐款 ShowSubscription=顯示捐款 @@ -135,7 +144,7 @@ CardContent=您的會員卡內容 # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=我們想通知您,您的會員要求已收到。

    ThisIsContentOfYourMembershipWasValidated=謹在此通知您,您的會員資格已通過以下資訊驗證:

    -ThisIsContentOfYourSubscriptionWasRecorded=我們想通知您,您的新訂閱已記錄。

    +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    ThisIsContentOfSubscriptionReminderEmail=我們想告訴您您的訂閱即將到期或已經到期(__MEMBER_LAST_SUBSCRIPTION_DATE_END__)。希望您能繼續訂閱。

    ThisIsContentOfYourCard=這是我們有關您的資訊摘要。如果有任何錯誤,請與我們聯繫。

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=訪客自動註冊時收到的通知電子郵件主題 @@ -198,8 +207,10 @@ NbOfSubscriptions=捐款數量 AmountOfSubscriptions=從捐款中收取的金額 TurnoverOrBudget=營業額(對於公司)或預算(對於財團) DefaultAmount=捐款預設金額 -CanEditAmount=訪客可以選擇/編輯其捐款金額 -MEMBER_NEWFORM_PAYONLINE=跳至綜合線上支付頁面 +CanEditAmount=免費訂閱 +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=線上註冊後,自動跳轉至線上付款頁面 ByProperties=依照性質 MembersStatisticsByProperties=會員性質統計 VATToUseForSubscriptions=用於捐款的稅率 @@ -218,3 +229,6 @@ XExternalUserCreated=已建立%s位外部用戶 ForceMemberNature=強制會員性質(個人或公司) CreateDolibarrLoginDesc=為會員建立用戶登錄允許他們連接到應用程式。例如,根據授予的授權,他們將能夠自己查閱或修改他們的檔案。 CreateDolibarrThirdPartyDesc=如果您決定為每筆捐款產生發票,合作方就是將使用在發票上的實體法人。您稍後可以在記錄捐款的過程中建立它。 +MemberFirstname=會員名字 +MemberLastname=會員姓氏 +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/zh_TW/modulebuilder.lang b/htdocs/langs/zh_TW/modulebuilder.lang index d6a0cbbf963..2518a51db01 100644 --- a/htdocs/langs/zh_TW/modulebuilder.lang +++ b/htdocs/langs/zh_TW/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=此工具只能由有經驗的用戶或開發人員使用。它提供了構建或編輯您自己的模組的實用程序。替代 手動開發的文件在此處 。 EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=已生成/已編輯 模組的路徑(外部模組的首個目錄定義為%s): %s ModuleBuilderDesc3=已找到 生成的/可編輯的模組: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=當模組目錄的根目錄中存在檔案 %s %s 嗎?這將更改 PHP 類別中的代碼,但也會從物件表格定義中刪除列。 NotNull=非空白 NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=是一個量測 DirScanned=資料夾已掃描 NoTrigger=沒有觸發器 NoWidget=沒有小工具 -GoToApiExplorer=API 瀏覽器 +ApiExplorer=API 瀏覽器 ListOfMenusEntries=選單條目清單 ListOfDictionariesEntries=分類條目清單 ListOfPermissionsDefined=已定義權限清單 SeeExamples=在這裡查看範例 -EnabledDesc=啟用此欄位的條件(範例:1 或 $conf->global->MYMODULE_MYOPTION) -VisibleDesc=欄位是否顯示? (範例:0=隱藏,1=在清單與建立/更新/查看表單上顯示,2=僅在清單上顯示,3=僅在建立/更新/查看表單上顯示(非清單),4=只在清單與更新/查看表單(非建立)顯示,5=僅在清單結尾視圖表單上顯示(非建立,非更新)。

    使用負值表示預設情況下清單中不顯示欄位,但可以選擇查看)。

    可以是表達式,例如:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) -DisplayOnPdfDesc=在相容的 PDF 文件上顯示此欄位,您可以使用“位置”欄位管理位置。
    目前,已知的相容PDF模型是:eratosthene(訂單),espadon(發貨),sponge(發票),cyan(建議書 /報價),cornas(供應商訂單)

    對於文件:
    0 =不顯示
    1 =顯示
    2 =如果不為空則顯示

    對於文件行:
    0 =不顯示
    1 =在欄位顯示
    3 = 顯示在描述之後的欄位
    4 = 如果不為空則顯示在描述之後的描述欄位 -DisplayOnPdf=以PDF顯示 +EnabledDesc=Condition to have this field active.

    Examples:
    1
    isModEnabled('MAIN_MODULE_MYMODULE')
    getDolGlobalString('MYMODULE_OPTION')==2 +VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create), 5=Visible on list end view form only (not create, not update).

    Using a negative value means field is not shown by default on list but can be selected for viewing). +ItCanBeAnExpression=It can be an expression. Example:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    $user->hasRight('holiday', 'define_holiday')?1:5 +DisplayOnPdfDesc=Display this field on compatible PDF documents, you can manage position with "Position" field.
    For document :
    0 = not displayed
    1 = display
    2 = display only if not empty

    For document lines :
    0 = not displayed
    1 = displayed in a column
    3 = display in line description column after the description
    4 = display in description column after the description only if not empty +DisplayOnPdf=On PDF IsAMeasureDesc=可以將可累積欄位的值以總和放入清單中嗎? (例如:1 或 0) SearchAllDesc=欄位是否用於快速搜尋工具進行搜尋? (範例:1 或 0) SpecDefDesc=在此處輸入您想與模組一起提供的所有尚未由其他分頁卡定義的文件。您可以使用 .md 或更好的豐富的 .asciidoc 語法。 @@ -130,26 +136,32 @@ UseSpecificEditorURL = 使用特定的編輯器網址 UseSpecificFamily = 使用特定的家族 UseSpecificAuthor = 使用特定作者 UseSpecificVersion = 使用特定的初始版本 -IncludeRefGeneration=The reference of object must be generated automatically by custom numbering rules +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Check this if you want to include code to manage the generation of the reference automatically using custom numbering rules -IncludeDocGeneration=I want to generate some documents from templates for the object +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=如果選中此選項,將產生一些代碼以在記錄上增加“產生文件”框。 -ShowOnCombobox=在組合框中顯示數值 +ShowOnCombobox=Show value into combo boxes KeyForTooltip=工具提示金鑰 CSSClass=編輯/建立表單的 CSS CSSViewClass=讀取表單的 CSS CSSListClass=清單的 CSS NotEditable=無法編輯 ForeignKey=外部金鑰 -TypeOfFieldsHelp=Type of fields:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' means we add a + button after the combo to create the record
    'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=ASCII到HTML轉換器 AsciiToPdfConverter=ASCII到PDF轉換器 TableNotEmptyDropCanceled=表不為空。刪除已被取消。 ModuleBuilderNotAllowed=模組建構器可使用,但不允許您的用戶使用。 ImportExportProfiles=匯入和匯出設定檔 -ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or upadate. Set 0 if there is no validation required. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Warning: The database is not updated automatically, you must destroy tables and disable-enable the module to have tables recreated LinkToParentMenu=Parent menu (fk_xxxxmenu) ListOfTabsEntries=List of tab entries TabsDefDesc=Define here the tabs provided by your module TabsDefDescTooltip=The tabs provided by your module/application are defined into the array $this->tabs into the module descriptor file. You can edit manually this file or use the embedded editor. +BadValueForType=Bad value for type %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/zh_TW/mrp.lang b/htdocs/langs/zh_TW/mrp.lang index ee445a17cbf..de709b6fae3 100644 --- a/htdocs/langs/zh_TW/mrp.lang +++ b/htdocs/langs/zh_TW/mrp.lang @@ -12,7 +12,7 @@ BillOfMaterials=物料清單 BillOfMaterialsLines=物料清單行 BOMsSetup=物料清單模組設定 ListOfBOMs=物料清單-BOM -ListOfManufacturingOrders=製造訂單清單 +ListOfManufacturingOrders=製造訂單 NewBOM=新物料清單 ProductBOMHelp=使用此物料清單建立(或拆解)產品。
    注記:具有"產品屬性"的產品="原料"不會顯示於此清單 BOMsNumberingModules=物料清單編號範本 @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=您確定要複製物料清單%s嗎? ConfirmCloneMo=您確定要複製製造訂單%s嗎? ManufacturingEfficiency=製造效率 ConsumptionEfficiency=消費效率 +Consumption=消耗 ValueOfMeansLoss=數值 0.95 表示在製造或拆解過程中平均損失 5%% ValueOfMeansLossForProductProduced=值0.95表示損失平均5%%的生產產品 DeleteBillOfMaterials=刪除物料清單 @@ -82,6 +83,7 @@ ProductsToProduce=生產的產品 UnitCost=單位成本 TotalCost=總計花費 BOMTotalCost=根據每個要消耗的數量和產品的成本產生此BOM的成本(如果定義則使用“成本價”,如果定義則使用“平均加權價格”,否則使用“最佳採購價”) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" GoOnTabProductionToProduceFirst=您必須先開始生產才能關閉生產訂單(請參見分頁“ %s”)。但是您可以取消它。 ErrorAVirtualProductCantBeUsedIntoABomOrMo=套件不能用於物料清單或製造訂單 Workstation=工作站 @@ -109,6 +111,10 @@ THMEstimatedHelp=此費率使得可以定義物料的預估成本 BOM=材料清單 CollapseBOMHelp=您可以在 BOM 模組的設定中定義命名法詳細資訊的預設顯示 MOAndLines=製造訂單和生產線 -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +MoChildGenerate=產生子物料清單 +ParentMo=母物料清單 +MOChild=子物料清單 +BomCantAddChildBom=命名法 %s 已經存在於命名法 %s 的樹中 +BOMNetNeeds = 物料清單淨需求 +BOMProductsList=物料清單的產品 +BOMServicesList=物料清單的服務 diff --git a/htdocs/langs/zh_TW/oauth.lang b/htdocs/langs/zh_TW/oauth.lang index 0e443711506..207681da229 100644 --- a/htdocs/langs/zh_TW/oauth.lang +++ b/htdocs/langs/zh_TW/oauth.lang @@ -9,12 +9,14 @@ HasAccessToken=已產生許可證並儲存到本地資料庫中 NewTokenStored=已收到並已儲存許可證 ToCheckDeleteTokenOnProvider=點擊此處以檢查/刪除由%s OAuth供應商儲存的授權 TokenDeleted=許可證已刪除 -RequestAccess=點擊此處請求/續訂訪問權限並接收新許可證以保存 +GetAccess=點擊此處獲取許可證 +RequestAccess=點擊此處請求/更新訪問權限並接收新許可證 DeleteAccess=點擊此處刪除許可證 UseTheFollowingUrlAsRedirectURI=使用您的OAuth供應商建立憑證時,請使用以下網址作為重新轉向URI: -ListOfSupportedOauthProviders=輸入您的OAuth2供應商提供的憑據。此處僅列出受支援的OAuth2供應商。這些服務可由需要OAuth2身份驗證的其他模組使用。 -OAuthSetupForLogin=產生OAuth許可證的頁面 +ListOfSupportedOauthProviders=新增您的 OAuth2許可證供應商。然後,在您的 OAuth 供應商管理頁面上建立/獲取 OAuth ID 和憑證並將它們保存在此處。完成後,切換到另一個分頁以產生您的許可證。 +OAuthSetupForLogin=管理(產生/刪除)OAuth許可證的頁面 SeePreviousTab=查看上一個分頁 +OAuthProvider=OAuth 提供者 OAuthIDSecret=OAuth ID和Secret TOKEN_REFRESH=更新目前的許可證 TOKEN_EXPIRED=許可證已過期 @@ -23,10 +25,16 @@ TOKEN_DELETE=刪除已儲存的許可證 OAUTH_GOOGLE_NAME=OAuth Google服務 OAUTH_GOOGLE_ID=OAuth Google Id OAUTH_GOOGLE_SECRET=OAuth Google Secret -OAUTH_GOOGLE_DESC=前往此頁面然後點擊“憑證”以建立OAuth憑證 OAUTH_GITHUB_NAME=OAuth GitHub服務 OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=前往此頁面然後“註冊新應用程式”以建立OAuth憑證 +OAUTH_URL_FOR_CREDENTIAL=前往 此頁面 建立或獲取您的 OAuth ID 與憑證 OAUTH_STRIPE_TEST_NAME=OAuth Stripe測試 OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +OAUTH_ID=OAuth ID +OAUTH_SECRET=OAuth憑證 +OAuthProviderAdded=已加入 OAuth提供者 +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=此提供商和標籤的 OAuth 條目已存在 +URLOfServiceForAuthorization=OAuth 服務驗證網址 +Scopes=權限(範圍) +ScopeUndefined=權限(範圍)未定義(參見上一個分頁) diff --git a/htdocs/langs/zh_TW/orders.lang b/htdocs/langs/zh_TW/orders.lang index 09325b9dd00..34c81763d41 100644 --- a/htdocs/langs/zh_TW/orders.lang +++ b/htdocs/langs/zh_TW/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=與此提案/建議書相關聯的訂單已打開,因此不會自動建立其他訂單 OrdersArea=客戶訂單區 SuppliersOrdersArea=採購訂單區 OrderCard=訂單資訊 @@ -74,7 +75,7 @@ ValidateOrder=驗證訂單 UnvalidateOrder=未驗證訂單 DeleteOrder=刪除訂單 CancelOrder=取消訂單 -OrderReopened= 訂單%s重新打開 +OrderReopened= 訂單%s重新啟用 AddOrder=建立訂單 AddSupplierOrderShort=建立訂單 AddPurchaseOrder=建立採購訂單 diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index 25c608a6f58..331397c909c 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=採購訂單已批准 Notify_ORDER_SUPPLIER_REFUSE=採購訂單已拒絕 Notify_PROPAL_VALIDATE=客戶提案/建議書已驗證 Notify_PROPAL_CLOSE_SIGNED=客戶提案/建議書已關閉已簽署 +Notify_PROPAL_CLOSE_SIGNED_WEB=客戶提案/建議書已由簽署頁面簽名關閉 Notify_PROPAL_CLOSE_REFUSED=客戶提案/建議書已關閉已拒絕 +Notify_PROPAL_CLOSE_REFUSED_WEB=客戶提案/建議書已由簽署頁面拒絕簽名關閉 Notify_PROPAL_SENTBYMAIL=使用郵件寄送的商業提案/建議書 Notify_WITHDRAW_TRANSMIT=傳送提款 Notify_WITHDRAW_CREDIT=信用提款 @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...或建立您自己的設定檔案
    (手動選擇 DemoFundation=管理基金會會員 DemoFundation2=管理基金會會員與銀行帳戶 DemoCompanyServiceOnly=公司或自由業者僅能銷售服務 -DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyShopWithCashDesk=使用收銀機管理商店 DemoCompanyProductAndStocks=使用銷售點銷售產品的商店 DemoCompanyManufacturing=公司製造產品 DemoCompanyAll=有多項活動的公司(所有主要模組) @@ -181,6 +183,7 @@ SizeUnitfoot=英呎 SizeUnitpoint=點 BugTracker=臭蟲追蹤系統 SendNewPasswordDesc=此表單允許您要求新的密碼。它將傳送到您的電子郵件。
    點擊電子郵件中的確認連結後,更改將生效。
    檢查您的信箱。 +EnterNewPasswordHere=在此輸入您的新密碼 BackToLoginPage=回到登入頁面 AuthenticationDoesNotAllowSendNewPassword=認證模式為%s.
    在這種模式下,Dolibarr不知道,也不能更改您的密碼。
    如果您想更改您的密碼,請聯絡您的系統管理員。 EnableGDLibraryDesc=在PHP安裝上安裝或啟用GD程式庫以使用此選項。 @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=發票%s已通過驗證。 EMailTextInvoicePayed=發票%s已支付。 EMailTextProposalValidated=提案/建議書%s已通過驗證。 EMailTextProposalClosedSigned=提案/建議書%s已關閉簽名。 +EMailTextProposalClosedSignedWeb=提案/建議書 %s 已由簽署頁面簽名關閉。 +EMailTextProposalClosedRefused=提案/建議書%s 已因拒絕簽名關閉。 +EMailTextProposalClosedRefusedWeb=提案/建議書 %s 已由簽署頁面因拒絕簽名關閉。 EMailTextOrderValidated=訂單%s已通過驗證。 EMailTextOrderApproved=訂單%s已被批准。 EMailTextOrderValidatedBy=訂單%s已被%s記錄。 @@ -304,3 +310,30 @@ ConfirmBtnCommonContent = 您確定要“%s”嗎? ConfirmBtnCommonTitle = 確認您的操作 CloseDialog = 關閉 Autofill = 自動填入 + +# externalsite +ExternalSiteSetup=設定連結到外部網站 +ExternalSiteURL=HTML iframe 內容的外部網站網址 +ExternalSiteModuleNotComplete=外部網站模組設定不正確。 +ExampleMyMenuEntry=我的選單條目 + +# ftp +FTPClientSetup=FTP或SFTP客戶端模組設定 +NewFTPClient=新的FTP / SFTP連線設定 +FTPArea=FTP / SFTP區域 +FTPAreaDesc=此畫面顯示FTP和SFTP伺服器的檢視。 +SetupOfFTPClientModuleNotComplete=FTP或SFTP的客戶端模組設定似乎不完整 +FTPFeatureNotSupportedByYourPHP=您的PHP不支援FTP或SFTP功能 +FailedToConnectToFTPServer=無法連接到伺服器(伺服器%s,連接埠%s) +FailedToConnectToFTPServerWithCredentials=使用已定義的用戶名/密碼登錄伺服器失敗 +FTPFailedToRemoveFile=無法刪除文件%s。 +FTPFailedToRemoveDir=無法刪除資料夾%s :檢查權限,並且確認資料夾內無檔案。 +FTPPassiveMode=被動模式 +ChooseAFTPEntryIntoMenu=從選單中選擇一個FTP/SFTP站台... +FailedToGetFile=無法獲取檔案 %s +ErrorFTPNodisconnect=斷開 FTP/SFTP 伺服器時出現錯誤 +FileWasUpload=檔案 %s 已上傳 +FTPFailedToUploadFile=檔案 %s 上傳失敗。 +AddFolder=建立資料夾 +FileWasCreateFolder=資料夾 %s 已建立 +FTPFailedToCreateFolder=無法建立資料夾 %s 。 diff --git a/htdocs/langs/zh_TW/partnership.lang b/htdocs/langs/zh_TW/partnership.lang index 08b8202b490..8ae309f7f35 100644 --- a/htdocs/langs/zh_TW/partnership.lang +++ b/htdocs/langs/zh_TW/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=合作夥伴關係管理 PartnershipDescription=合作夥伴管理模組 PartnershipDescriptionLong= 合作夥伴管理模組 Partnership=合夥 +Partnerships=夥伴關係 AddPartnership=增加合作夥伴 CancelPartnershipForExpiredMembers=合作夥伴:取消訂閱過期會員的合作關係 PartnershipCheckBacklink=合作夥伴:檢查參考反向連結 @@ -28,6 +29,7 @@ PartnershipCheckBacklink=合作夥伴:檢查參考反向連結 # Menu # NewPartnership=新合作夥伴 +NewPartnershipbyWeb= 您的伙伴關係已成功地新增。 ListOfPartnerships=合作夥伴清單 # @@ -42,6 +44,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=要檢查的反向連結 PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=訂閱到期後取消合作關係狀態前的 Nb 天 ReferingWebsiteCheck=檢查網站參考 ReferingWebsiteCheckDesc=您可以啟用一項功能來檢查您的合作夥伴是否在他們自己的網站上增加了指向您網站網域的反向連結。 +PublicFormRegistrationPartnerDesc=Dolibarr can provide you a public URL/website to allow external visitors to request to be part of the partnership program. # # Object @@ -60,6 +63,11 @@ ConfirmClosePartnershipAsk=您確定要取消此合作關係嗎? PartnershipType=合作夥伴類型 PartnershipRefApproved=合作夥伴 %s 已核准 KeywordToCheckInWebsite=如果您想檢查給定關鍵字是否出現在每個合作夥伴的網站中,請在此處定義此關鍵字 +PartnershipDraft=草稿 +PartnershipAccepted=已接受 +PartnershipRefused=已拒絕 +PartnershipCanceled=已取消 +PartnershipManagedFor=合作夥伴是 # # Template Mail @@ -83,12 +91,6 @@ CountLastUrlCheckError=上次檢查網址的錯誤數量 LastCheckBacklink=上次檢查網址的日期 ReasonDeclineOrCancel=拒絕原因 -# -# Status -# -PartnershipDraft=草稿 -PartnershipAccepted=已接受 -PartnershipRefused=已拒絕 -PartnershipCanceled=已取消 -PartnershipManagedFor=合作夥伴是 +NewPartnershipRequest=New partnership request +NewPartnershipRequestDesc=This form allows you to request to be part of one of our partnership program. If you need help to fill this form, please contact by email %s. diff --git a/htdocs/langs/zh_TW/productbatch.lang b/htdocs/langs/zh_TW/productbatch.lang index 9297a806ae8..20a49538b15 100644 --- a/htdocs/langs/zh_TW/productbatch.lang +++ b/htdocs/langs/zh_TW/productbatch.lang @@ -1,5 +1,5 @@ # ProductBATCH language file - Source file is en_US - ProductBATCH -ManageLotSerial=使用批次/序號數字 +ManageLotSerial=使用批號/序號 ProductStatusOnBatch=是(需要批號/序號) ProductStatusOnSerial=是(需要唯一的批號/序號) ProductStatusNotOnBatch=不是(不使用批次/序號) @@ -17,6 +17,7 @@ printBatch=批次/序號: %s printEatby=有效日: %s printSellby=銷售日: %s printQty=數量: %d +printPlannedWarehouse=Warehouse: %s AddDispatchBatchLine=增加一行的保存期限 WhenProductBatchModuleOnOptionAreForced=啟用“批次/序列”模塊時,自動減少庫存將強制為“驗證運輸時減少實際庫存”,自動增加模式將強制為“手動增加倉庫實際庫存”,且無法進行編輯。其他選項可以根據需要定義。 ProductDoesNotUseBatchSerial=此產品不能使用批次/序號數字 @@ -43,3 +44,4 @@ HideLots=隱藏批號 OutOfOrder=亂序 InWorkingOrder=在生產訂單中 ToReplace=更換 +CantMoveNonExistantSerial=錯誤。您要求對不再存在序號的記錄進行移動。可能是您在同一個發貨中多次在同一個倉庫使用相同的序號,或者它被另一批發貨使用。移除這批發貨並準備另一批發貨。 diff --git a/htdocs/langs/zh_TW/products.lang b/htdocs/langs/zh_TW/products.lang index c8e3e27eee2..b6e47f5b378 100644 --- a/htdocs/langs/zh_TW/products.lang +++ b/htdocs/langs/zh_TW/products.lang @@ -262,7 +262,7 @@ Quarter1=1st. Quarter Quarter2=2nd. Quarter Quarter3=3rd. Quarter Quarter4=4th. Quarter -BarCodePrintsheet=列印條碼 +BarCodePrintsheet=Print barcodes PageToGenerateBarCodeSheets=使用此工具,您可以列印條碼貼紙。選擇標籤頁面的格式,條碼的類型和條碼的值,然後點擊按鈕%s 。 NumberOfStickers=要在頁面上列印的貼紙數量 PrintsheetForOneBarCode=為一個條碼列印幾張貼紙 @@ -345,7 +345,7 @@ PossibleValues=可能的值 GoOnMenuToCreateVairants=前往選單%s-%s以準備屬性(例如顏色,大小等) UseProductFournDesc=增加一個可以定義產品描述的功能,此由供應商(每一位供應商)為客戶增加描述 ProductSupplierDescription=產品的供應商說明 -UseProductSupplierPackaging=按照供應商價格使用包裝(在供應商文件中增加/更新行時,根據供應商價格上設定的包裝重新計算數量) +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) PackagingForThisProduct=包裝 PackagingForThisProductDesc=您將自動採購此數量的倍數。 QtyRecalculatedWithPackaging=根據供應商的包裝重新計算了生產線的數量 @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=僅對產品的變數提供操作 ProductsPricePerCustomer=每個客戶的產品價格 ProductSupplierExtraFields=附加屬性(供應商價格) DeleteLinkedProduct=刪除連結到組合的子產品 -AmountUsedToUpdateWAP=用於更新加權平均價格的金額 +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=加權平均價格 PMPValueShort=WAP mandatoryperiod=強制期限 @@ -416,6 +416,7 @@ ProductsMergeSuccess=產品已合併 ErrorsProductsMerge=產品合併錯誤 SwitchOnSaleStatus=開啟銷售狀態 SwitchOnPurchaseStatus=開啟採購狀態 +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= 額外欄位(庫存移動) InventoryExtraFields= 補充屬性(庫存) ScanOrTypeOrCopyPasteYourBarCodes=掃描或填寫或複制/貼上您的條碼 @@ -427,3 +428,4 @@ RealValuation=實際估值 ConfirmEditExtrafield = Select the extrafield you want modify ConfirmEditExtrafieldQuestion = Are you sure you want to modify this extrafield? ModifyValueExtrafields = Modify value of an extrafield +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/zh_TW/projects.lang b/htdocs/langs/zh_TW/projects.lang index 904e83da591..1f239afd99c 100644 --- a/htdocs/langs/zh_TW/projects.lang +++ b/htdocs/langs/zh_TW/projects.lang @@ -17,12 +17,13 @@ ProjectsPublicTaskDesc=此檢視顯示所有您可以讀取之專案與任務。 ProjectsDesc=此檢視顯示全部專案(您的用戶權限授予您檢視所有內容)。 TasksOnProjectsDesc=此檢視顯示所有專案上的所有任務(您的用戶權限授予您檢視所有內容)。 MyTasksDesc=此檢視僅顯示您是聯絡人之專案或任務 -OnlyOpenedProject=僅顯示開放專案(不顯示草案或是已關閉狀態之專案) +OnlyOpenedProject=僅顯示啟用專案(不顯示草案或是已結案狀態之專案) ClosedProjectsAreHidden=不顯示已關閉專案 TasksPublicDesc=此檢視顯示您可讀取之所有專案及任務。 TasksDesc=此檢視顯示所有專案及任務(您的用戶權限授予您查看所有內容)。 AllTaskVisibleButEditIfYouAreAssigned=合格專案的所有任務都可見,但是您只能輸入分配給所選用戶之任務的時間。如果需要輸入時間,請分配任務。 OnlyYourTaskAreVisible=僅顯示分配給您的任務。如果您需要輸入時間並且看不見任務,則您需要將任務分配給自己。 +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=專案任務 ProjectCategories=專案標籤/類別 NewProject=新專案 @@ -31,13 +32,15 @@ DeleteAProject=刪除專案 DeleteATask=刪除任務 ConfirmDeleteAProject=您確定要刪除此專案嗎? ConfirmDeleteATask=您確定要刪除此任務嗎? -OpenedProjects=開放專案 -OpenedTasks=開放任務 -OpportunitiesStatusForOpenedProjects=依已開啟專案狀態的潛在客戶數量 +OpenedProjects=啟用專案 +OpenedTasks=啟用任務 +OpportunitiesStatusForOpenedProjects=依已啟用專案狀態的潛在客戶數量 OpportunitiesStatusForProjects=依專案狀態的潛在客戶數量 ShowProject=顯示專案 ShowTask=顯示任務 +SetThirdParty=Set third party SetProject=設定專案 +OutOfProject=Out of project NoProject=沒有被定義或被擁有的專案 NbOfProjects=專案數量 NbOfTasks=任務數量 @@ -52,7 +55,7 @@ TaskTimeSpent=任務工作時間 TaskTimeUser=用戶 TaskTimeNote=註解 TaskTimeDate=日期 -TasksOnOpenedProject=開放專案的任務 +TasksOnOpenedProject=啟用專案的任務 WorkloadNotDefined=工作量未定義 NewTimeSpent=工作時間 MyTimeSpent=我的工作時間 @@ -78,7 +81,7 @@ MyProjectsArea=專案區 DurationEffective=有效期限 ProgressDeclared=宣布實際進度 TaskProgressSummary=任務進度 -CurentlyOpenedTasks=目前的打開任務 +CurentlyOpenedTasks=目前的啟用任務 TheReportedProgressIsLessThanTheCalculatedProgressionByX=宣布的實際進度小於消耗進度%s TheReportedProgressIsMoreThanTheCalculatedProgressionByX=宣布的實際進度比消耗進度多%s ProgressCalculated=消耗進度 @@ -122,7 +125,8 @@ ValidateProject=驗證專案 ConfirmValidateProject=您確定要驗證此專案嗎? CloseAProject=關閉專案 ConfirmCloseAProject=您確定要關閉此專案? -AlsoCloseAProject=同時關閉專案(如果仍然需要執行生產任務,請保持打開狀態) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=打開的專案 ConfirmReOpenAProject=您確定要重新打開此專案嗎? ProjectContact=專案聯絡人 @@ -165,7 +169,7 @@ OpportunityProbability=潛在可能性 OpportunityProbabilityShort=潛在機率 OpportunityAmount=潛在金額 OpportunityAmountShort=潛在金額 -OpportunityWeightedAmount=機會加權金額 +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=機會加權金額 OpportunityAmountAverageShort=平均潛在金額 OpportunityAmountWeigthedShort=加權潛在金額 @@ -222,10 +226,10 @@ TasksStatistics=專案/潛在任務的統計 TaskAssignedToEnterTime=任務已分配。應該可以輸入此任務的時間。 IdTaskTime=任務時間ID YouCanCompleteRef=如果要使用一些後綴來完成引用,則建議增加-字元以將其分隔,因此自動編號仍可正確用於下一個專案。例如%s-MYSUFFIX -OpenedProjectsByThirdparties=開啟合作方專案 +OpenedProjectsByThirdparties=合作方的啟用專案 OnlyOpportunitiesShort=僅潛在機會 -OpenedOpportunitiesShort=開啟潛在機會 -NotOpenedOpportunitiesShort=不是打開的潛在機會 +OpenedOpportunitiesShort=啟用潛在機會 +NotOpenedOpportunitiesShort=不是啟用的潛在機會 NotAnOpportunityShort=不是潛在機會 OpportunityTotalAmount=潛在機會總數量 OpportunityPonderatedAmount=權重潛在機會數量 @@ -238,7 +242,7 @@ OppStatusPENDING=等待中 OppStatusWON=獲得 OppStatusLOST=失去 Budget=預算 -AllowToLinkFromOtherCompany=允許連結其他公司的專案

    支援的值:
    -保留為空:可以連結公司的任何專案(預設)
    -“全部”:可以連結任何專案,甚至其他公司的專案
    -用逗號分隔的合作方ID清單:可以連結這些合作方的所有專案(例如:123,4795,53)
    +AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

    Supported values:
    - Keep empty: Can link elements with any projects in the same company (default)
    - "all": Can link elements with any projects, even projects of other companies
    - A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
    LatestProjects=最新%s項專案 LatestModifiedProjects=最新%s項修改專案 OtherFilteredTasks=其他已篩選任務 @@ -259,7 +263,7 @@ TimeSpentInvoiced=花費時間已計費 TimeSpentForIntervention=花費時間 TimeSpentForInvoice=花費時間 OneLinePerUser=每位用戶一行 -ServiceToUseOnLines=行上使用的服務 +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=根據專案花費的時間產生了發票%s InterventionGeneratedFromTimeSpent=干預 %s 已從專案的時間花費上產生 ProjectBillTimeDescription=請勾選如果您輸入了有關專案任務的時間表,並計劃從此時間表中產生發票以向此專案的客戶開立帳單(不要勾選如果您打算建立不基於輸入時間表的發票)。注意:要產生發票,請前往專案的“花費時間”分頁上,並選擇要包括的行。 @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=利潤計算是使用 AddPersonToTask=也增加到任務 UsageOrganizeEvent=用途:事件組織 PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=當所有任務完成時將專案分類為關閉(進度100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=注意:所有任務進度為 100%% 的現有專案不會受到影響:您必須手動關閉它們。此選項僅影響打開的專案。 +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=選擇未計費的時間行,然後批次操作“產生發票”來計費 ProjectTasksWithoutTimeSpent=無需時間花費的專案任務 FormForNewLeadDesc=感謝您填寫以下表單與我們聯繫。您也可以直接發送電子郵件至 %s 。 @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/zh_TW/propal.lang b/htdocs/langs/zh_TW/propal.lang index c1272432cf5..3d0f7bb3686 100644 --- a/htdocs/langs/zh_TW/propal.lang +++ b/htdocs/langs/zh_TW/propal.lang @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=每月金額(不含稅) NbOfProposals=商業提案/建議書數量 ShowPropal=顯示提案/建議書 PropalsDraft=草稿 -PropalsOpened=開放 +PropalsOpened=啟用 PropalStatusDraft=草案(等待驗證) PropalStatusValidated=驗證(建議打開) PropalStatusSigned=簽名(需要收費) @@ -65,49 +65,54 @@ AvailabilityPeriod=交貨期 SetAvailability=設定交貨期 AfterOrder=訂單後 OtherProposals=其他提案/建議書 + ##### Availability ##### AvailabilityTypeAV_NOW=即時 AvailabilityTypeAV_1W=1個星期 AvailabilityTypeAV_2W=2個星期 AvailabilityTypeAV_3W=3個星期 AvailabilityTypeAV_1M=1個月 -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=提案/建議書聯絡人 TypeContact_propal_external_BILLING=客戶發票聯絡人 TypeContact_propal_external_CUSTOMER=提案/建議書客戶聯絡人 TypeContact_propal_external_SHIPPING=客戶交貨聯絡人 + # Document models -DocModelAzurDescription=完整的提案/建議書模型(Cyan範本的舊範本) -DocModelCyanDescription=完整的提案/建議書模型 -DefaultModelPropalCreate=預設模型建立 -DefaultModelPropalToBill=當關閉企業提案/建議書時使用的預設範本(開立發票) -DefaultModelPropalClosed=當關閉企業提案/建議書時使用的預設範本(未開票) -ProposalCustomerSignature=書面驗收,公司印章,日期和簽名 -ProposalsStatisticsSuppliers=供應商提案/建議書統計 -CaseFollowedBy=案件追蹤者 -SignedOnly=僅簽名 -NoSign=設定為未簽名 -NoSigned=設定為未簽名 CantBeNoSign=無法設定為未簽名 +CaseFollowedBy=案件追蹤者 ConfirmMassNoSignature=批次未簽名設定確認 ConfirmMassNoSignatureQuestion=您確定要將選擇的紀錄設定為未簽名嗎? -IsNotADraft=不是草案 -PassedInOpenStatus=已被驗證 -Sign=簽名 -Signed=已簽名 -ConfirmMassValidation=批次驗證確認 ConfirmMassSignature=批次簽名確認 -ConfirmMassValidationQuestion=您確定要驗證所選擇的記錄嗎? ConfirmMassSignatureQuestion=您確定要簽署所選擇記錄嗎? -IdProposal=方案/提案編號 +ConfirmMassValidation=批次驗證確認 +ConfirmMassValidationQuestion=您確定要驗證所選擇的記錄嗎? +ConfirmRefusePropal=您確定您想要拒絕此商業提案/建議書? +ContractSigned=合約已簽訂 +DefaultModelPropalClosed=當關閉企業提案/建議書時使用的預設範本(未開票) +DefaultModelPropalCreate=預設模型建立 +DefaultModelPropalToBill=當關閉企業提案/建議書時使用的預設範本(開立發票) +DocModelAzurDescription=完整的提案/建議書模型(Cyan範本的舊範本) +DocModelCyanDescription=完整的提案/建議書模型 +FichinterSigned=Intervention signed IdProduct=產品編號 +IdProposal=方案/提案編號 +IsNotADraft=不是草案 LineBuyPriceHT=購買價格扣除稅額 -SignPropal=接受提案/建議書 +NoSign=拒絕 +NoSigned=設定為未簽名 +PassedInOpenStatus=已被驗證 +PropalAlreadyRefused=提案/建議書已被拒絕 +PropalAlreadySigned=提案/建議書已被接受 +PropalRefused=提案/建議書已拒絕 +PropalSigned=提案/建議書已接受 +ProposalCustomerSignature=書面驗收,公司印章,日期和簽名 +ProposalsStatisticsSuppliers=供應商提案/建議書統計 RefusePropal=拒絕提案/建議書 Sign=簽名 -NoSign=設定為未簽名 -PropalAlreadySigned=提案/建議書已被接受 -PropalAlreadyRefused=提案/建議書已被拒絕 -PropalSigned=提案/建議書已接受 -PropalRefused=提案/建議書已拒絕 -ConfirmRefusePropal=您確定您想要拒絕此商業提案/建議書? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=接受提案/建議書 +Signed=已簽名 +SignedOnly=僅簽名 diff --git a/htdocs/langs/zh_TW/receptions.lang b/htdocs/langs/zh_TW/receptions.lang index 72d9ea35cf2..58bb5e22f4b 100644 --- a/htdocs/langs/zh_TW/receptions.lang +++ b/htdocs/langs/zh_TW/receptions.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=Vendor reception management (Create reception documents) -ReceptionsSetup=Vendor Reception setup +ReceptionDescription=供應商收貨管理(建立收貨文件) +ReceptionsSetup=產品收貨設定 RefReception=收貨參考 Reception=收貨 Receptions=收貨(s) @@ -32,6 +32,7 @@ StatusReceptionDraftShort=草案 StatusReceptionValidatedShort=驗證 StatusReceptionProcessedShort=已處理 ReceptionSheet=收貨表 +ValidateReception=Validate reception ConfirmDeleteReception=您確定要刪除此收貨嗎? ConfirmValidateReception=您確定要使用參考%s驗證此收貨嗎? ConfirmCancelReception=您確定要取消此收貨嗎? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=收貨編號模組 ReceptionsReceiptModel=收貨用文件範本 NoMorePredefinedProductToDispatch=沒有更多預定義的產品要調度 ReceptionExist=有櫃台 -ByingPrice=依價格 ReceptionBackToDraftInDolibarr=收貨 %s 回到草案狀態 ReceptionClassifyClosedInDolibarr=收貨%s 分類為已關閉 -ReceptionUnClassifyCloseddInDolibarr=收貨 %s 重新開放 +ReceptionUnClassifyCloseddInDolibarr=收貨 %s 重新啟用 diff --git a/htdocs/langs/zh_TW/recruitment.lang b/htdocs/langs/zh_TW/recruitment.lang index 5164dc873e5..50a8ca2d71b 100644 --- a/htdocs/langs/zh_TW/recruitment.lang +++ b/htdocs/langs/zh_TW/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=招募電子郵件 ToUseAGenericEmail=使用普通電子郵件。如果未定義,將使用招募負責人的電子郵件 NewCandidature=新申請 ListOfCandidatures=申請清單 -RequestedRemuneration=要求的薪資 -ProposedRemuneration=擬議薪資 +Remuneration=薪資 +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=擬議合約 ContractSigned=合約已簽訂 ContractRefused=合約被拒絕 RecruitmentCandidature=申請 JobPositions=工作職位 RecruitmentCandidatures=申請 -InterviewToDo=面試事項 +InterviewToDo=Contacts to follow AnswerCandidature=申請回覆 YourCandidature=您的申請 YourCandidatureAnswerMessage=感謝您的申請。
    ... diff --git a/htdocs/langs/zh_TW/salaries.lang b/htdocs/langs/zh_TW/salaries.lang index 1e868cf86bd..4cb18fe149a 100644 --- a/htdocs/langs/zh_TW/salaries.lang +++ b/htdocs/langs/zh_TW/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=用戶合作方使用的會計帳戶 -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=用戶卡上定義的專用會計帳戶將僅用於子帳會計。如果未定義用戶專用的用戶帳戶,則此帳戶將用於“總帳”,並作為“子帳”帳戶的默認值。 +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=默認支付薪資的會計帳戶 CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=預設,當建立薪資時將"自動建立所有支付"選項留空 Salary=薪資 diff --git a/htdocs/langs/zh_TW/stocks.lang b/htdocs/langs/zh_TW/stocks.lang index dde036d41e1..b91d99a98cd 100644 --- a/htdocs/langs/zh_TW/stocks.lang +++ b/htdocs/langs/zh_TW/stocks.lang @@ -265,6 +265,7 @@ ProductBarcodeDoesNotExist=此條碼的產品不存在 WarehouseId=倉庫編號 WarehouseRef=倉庫名稱 SaveQtyFirst=在詢問建立庫存變動之前,首先儲存實際庫存數量。 +ToStart=開始 InventoryStartedShort=已開始 ErrorOnElementsInventory=操作因為以下原因取消: ErrorCantFindCodeInInventory=在庫存中找不到以下代號 @@ -272,3 +273,45 @@ QtyWasAddedToTheScannedBarcode=成功 !!數量已增加到所有請求的條 StockChangeDisabled=更改庫存已停用 NoWarehouseDefinedForTerminal=沒有為終端機定義倉庫 ClearQtys=清除所有數量 +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=設定 +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/zh_TW/supplier_proposal.lang b/htdocs/langs/zh_TW/supplier_proposal.lang index b029b7f1ee2..7af171473c1 100644 --- a/htdocs/langs/zh_TW/supplier_proposal.lang +++ b/htdocs/langs/zh_TW/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=搜尋供應商報價 DraftRequests=供應商報價草案 SupplierProposalsDraft=供應商提案/建議書草稿 LastModifiedRequests=最新%s的價格要求 -RequestsOpened=打開的報價 +RequestsOpened=啟用報價 SupplierProposalArea=供應商提案/建議書區 SupplierProposalShort=供應商提案/建議書 SupplierProposals=供應商提案/建議書 diff --git a/htdocs/langs/zh_TW/ticket.lang b/htdocs/langs/zh_TW/ticket.lang index 650212e740c..c045124c766 100644 --- a/htdocs/langs/zh_TW/ticket.lang +++ b/htdocs/langs/zh_TW/ticket.lang @@ -27,6 +27,7 @@ Permission56003=刪除服務單 Permission56004=管理服務單 Permission56005=查看所有合作方的服務單(對外部用戶無效,始終僅限於他們所依賴的合作方) +Tickets=服務單 TicketDictType=服務單-類型 TicketDictCategory=服務單-組別 TicketDictSeverity=服務單-嚴重程度 @@ -49,8 +50,8 @@ TicketCategoryShortOTHER=其他 ErrorBadEmailAddress=欄位'%s'不正確 MenuTicketMyAssign=我的服務單 -MenuTicketMyAssignNonClosed=我的開放服務單 -MenuListNonClosed=開放服務單 +MenuTicketMyAssignNonClosed=我啟用的服務單 +MenuListNonClosed=啟用服務單 TypeContact_ticket_internal_CONTRIBUTOR=合作者 TypeContact_ticket_internal_SUPPORTTEC=已分配用戶 @@ -90,8 +91,8 @@ TicketPublicAccess=以下網址提供了無需認證的公共界面 TicketSetupDictionaries=服務單類型,嚴重性和分析代碼可前往分類進行設定 TicketParamModule=模組變數設定 TicketParamMail=電子郵件設定 -TicketEmailNotificationFrom=回應服務單寄件者e-mail -TicketEmailNotificationFromHelp=從Dolibarr回應服務單寄件者e-mail +TicketEmailNotificationFrom=回應服務單之寄件者e-mail +TicketEmailNotificationFromHelp=用於在後台提供回覆時發送通知電子郵件的寄件人電子郵件。例如 noreply@example.com TicketEmailNotificationTo=服務單建立通知傳送至此電子郵件 TicketEmailNotificationToHelp=如果存在,將通知此電子郵件有服務單被建立 TicketNewEmailBodyLabel=建立服務單後發送的訊息 @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=此處指定的文字將插入到從公共界面建立新 TicketParamPublicInterface=公共界面設定 TicketsEmailMustExist=需要現有的電子郵件地址來建立服務單 TicketsEmailMustExistHelp=在公共界面中,電子郵件地址應該已經填入到資料庫中以建立服務單。 +TicketCreateThirdPartyWithContactIfNotExist=詢問未知電子郵件者的姓名和公司名稱。 +TicketCreateThirdPartyWithContactIfNotExistHelp=檢查輸入的電子郵件是否存在合作方或聯絡人。如果沒有,詢問姓名和公司名稱以建立具有聯絡方式的合作方。 PublicInterface=公共界面 TicketUrlPublicInterfaceLabelAdmin=公共界面的備用網址 TicketUrlPublicInterfaceHelpAdmin=可以為網站伺服器定義別名,使得公共界面可以與另一個網址一起使用(伺服器必須充當此新網址的代理) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=關閉服務單時,系統會建議您向合作方 TicketWrongContact=提供的聯絡人不屬於目前服務單的聯絡人。電子郵件未發送。 TicketChooseProductCategory=服務單支援的產品類別 TicketChooseProductCategoryHelp=選擇服務單支援的產品類別。這將用於自動將合約連結到服務單。 +TicketUseCaptchaCode=建立服務單時使用圖形驗證碼(驗證碼) +TicketUseCaptchaCodeHelp=當建立新服務單時增加驗證碼驗證 # # Index & list page @@ -157,7 +162,7 @@ TicketAssignedToMeInfos=此頁面顯示由目前用戶建立或分配給目前 NoTicketsFound=找不到服務單 NoUnreadTicketsFound=找不到未讀的服務單 TicketViewAllTickets=檢視所有服務單 -TicketViewNonClosedOnly=只檢視開放服務單 +TicketViewNonClosedOnly=只檢視啟用服務單 TicketStatByStatus=服務單狀態 OrderByDateAsc=依日期升序排序 OrderByDateDesc=依日期降序排序 @@ -190,8 +195,7 @@ TicketAssigned=服務單已分配 TicketChangeType=變更類型 TicketChangeCategory=變更分析代碼 TicketChangeSeverity=變更嚴重程度 -TicketAddMessage=增加訊息 -AddMessage=增加訊息 +TicketAddMessage=增加私人訊息 MessageSuccessfullyAdded=服務單已新增 TicketMessageSuccessfullyAdded=訊息已成功新增 TicketMessagesList=訊息清單 @@ -202,8 +206,8 @@ TicketSeverity=嚴重程度 ShowTicket=查閱服務單 RelatedTickets=相關服務單 TicketAddIntervention=建立干預 -CloseTicket=已關閉|已解決服務單 -AbandonTicket=放棄的服務單 +CloseTicket=已關閉|已解決 +AbandonTicket=放棄 CloseATicket=關閉|解決一筆服務單 ConfirmCloseAticket=確認關閉服務單 ConfirmAbandonTicket=您確定要將關閉的服務單狀態更改為"已放棄"嗎? @@ -217,18 +221,17 @@ SendMessageByEmail=以電子郵件發送訊息 TicketNewMessage=新訊息 ErrorMailRecipientIsEmptyForSendTicketMessage=收件人為空。未發送電子郵件 TicketGoIntoContactTab=請進入“通訊錄”標籤中進行選擇 -TicketMessageMailIntro=介紹 +TicketMessageMailIntro=訊息標題 TicketMessageMailIntroHelp=此段文字只會加到電子郵件的開頭,不會被保存。 -TicketMessageMailIntroLabelAdmin=所有服務單回應的訊息簡介 TicketMessageMailIntroText=你好,
    在您聯絡的服務單上有新的回覆。訊息為:
    TicketMessageMailIntroHelpAdmin=此段文字將插入到服務單回應文字之前。 -TicketMessageMailSignature=電子郵件簽名 -TicketMessageMailSignatureHelp=此段文字只會加到電子郵件的底部,不會被保存。 -TicketMessageMailSignatureText= %s 以 Dolibarr 發送的訊息 -TicketMessageMailSignatureLabelAdmin=回覆電子郵件的簽名 -TicketMessageMailSignatureHelpAdmin=此段文字將插入到回覆訊息之後。 +TicketMessageMailFooter=訊息頁尾 +TicketMessageMailFooterHelp=此文字僅位於使用email發送之訊息結尾並且不會被儲存 +TicketMessageMailFooterText= %s 以 Dolibarr 發送的訊息 +TicketMessageMailFooterHelpAdmin=此段文字將插入到回覆訊息之後。 TicketMessageHelp=此段文字將會被儲存在服務單卡片的訊息清單中。 TicketMessageSubstitutionReplacedByGenericValues=替換變量將被替換為一般值。 +ForEmailMessageWillBeCompletedWith=對於發送給外部用戶的電子郵件訊息,訊息將完成於 TimeElapsedSince=已經過時間 TicketTimeToRead=讀取前經過的時間 TicketTimeElapsedBeforeSince=之前/之後經過的時間 @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=在服務單上發布了一條新訊 TicketAssignedToYou=服務單已分配 TicketAssignedEmailBody=您已被%s分配了服務單#%s MarkMessageAsPrivate=將訊息標記為私人 +TicketMessageSendEmailHelp=一封電子郵件將發送給所有指定的聯絡人(內部聯絡人,以及外部聯絡人-勾選選項“%s”) TicketMessagePrivateHelp=此訊息不會顯示給外部用戶 TicketEmailOriginIssuer=原始服務單的發行者 InitialMessage=初始訊息 @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=您可以通過點擊以下連結在特 TicketCloseEmailBodyInfosTrackUrlCustomer=您可以通過點擊以下連結查看此服務單的歷史紀錄 TicketEmailPleaseDoNotReplyToThisEmail=請不要直接回覆此電子郵件!請使用回覆連結。 TicketPublicInfoCreateTicket=此表格使您可以在我們的管理系統中記錄支援服務單。 -TicketPublicPleaseBeAccuratelyDescribe=請準確描述問題。提供盡可能多的訊息使我們能夠正確辨別您的要求。 +TicketPublicPleaseBeAccuratelyDescribe=請準確描述您的問題。並盡可能的提供訊息使我們能夠正確辨別您需求。 TicketPublicMsgViewLogIn=請輸入服務單追蹤編號 TicketTrackId=公用追踪編號 OneOfTicketTrackId=您的追蹤編號之一 @@ -337,9 +341,9 @@ BoxLastModifiedTicket=最新修改的服務單 BoxLastModifiedTicketDescription=最新%s張修改的服務單 BoxLastModifiedTicketContent= BoxLastModifiedTicketNoRecordedTickets=沒有最近修改的服務單 -BoxTicketType=依類型分佈的已開放服務單 -BoxTicketSeverity=按嚴重性分類的已開放服務單 -BoxNoTicketSeverity=沒有已開放服務單 +BoxTicketType=依類型分佈的已啟用服務單 +BoxTicketSeverity=按嚴重性分類的已啟用服務單 +BoxNoTicketSeverity=沒有已啟用放服務單 BoxTicketLastXDays=最近 %s 天中依日期的新服務單數量 BoxTicketLastXDayswidget = 最近X天中依日期的新服務單數量 BoxNoTicketLastXDays=最近%s天沒有新服務單 diff --git a/htdocs/langs/zh_TW/users.lang b/htdocs/langs/zh_TW/users.lang index f1f851148d6..010735d8c63 100644 --- a/htdocs/langs/zh_TW/users.lang +++ b/htdocs/langs/zh_TW/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=從群組中刪除 PasswordChangedAndSentTo=密碼更改,發送到%s。 PasswordChangeRequest=%s要求變更密碼 PasswordChangeRequestSent=%s 傳送給 %s 要求更改密碼。 -IfLoginExistPasswordRequestSent=如果此登入名稱為有效帳戶,則已發送一封電子郵件以重置密碼。 +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=如果此電子郵件為有效帳戶,則已發送一封用於重置密碼的電子郵件。 ConfirmPasswordReset=確認密碼重設 MenuUsersAndGroups=用戶和群組 @@ -68,7 +68,6 @@ CreateDolibarrLogin=建立一位用戶 CreateDolibarrThirdParty=建立一位合作方(客戶/供應商) LoginAccountDisableInDolibarr=在 Dolibarr 中帳戶已關閉。 UsePersonalValue=使用個人設定值 -InternalUser=內部用戶 ExportDataset_user_1=用戶及其屬性 DomainUser=網域用戶%s Reactivate=重新啟用 @@ -128,3 +127,5 @@ DateLastLogin=上次登入日期 DatePreviousLogin=以前登入的日期 IPLastLogin=上次登入的IP IPPreviousLogin=以前登入的IP +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows diff --git a/htdocs/langs/zh_TW/website.lang b/htdocs/langs/zh_TW/website.lang index c406478e70a..5467dd7920e 100644 --- a/htdocs/langs/zh_TW/website.lang +++ b/htdocs/langs/zh_TW/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=代碼 +WebsiteName=Name of the website WebsiteSetupDesc=在此處建立您要使用的網站。然後進入選單網站進行編輯。 DeleteWebsite=刪除網站 ConfirmDeleteWebsite=您確定要刪除此網站嗎?其所有頁面和內容也將被刪除。上傳的文件(例如進入medias資料夾,ECM模組等)將保留。 @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=附加在HTML標頭底部(所有頁面共有) WEBSITE_ROBOT=Robot檔案(robots.txt) WEBSITE_HTACCESS=網站 .htaccess 檔案 WEBSITE_MANIFEST_JSON=網站 manifest.json 檔案 -WEBSITE_README=README.md 檔案 WEBSITE_KEYWORDSDesc=使用逗號分隔值 -EnterHereLicenseInformation=在此處輸入meta data或許可證資訊以填入README.md檔案。如果您以模板型式發佈網站,則檔案將包含在模板軟體包中。 +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML標頭(僅用於此頁面) PageNameAliasHelp=頁面的名稱或別名。
    當從Web伺服器的虛擬主機(如Apacke,Nginx等)執行網站時,此別名還用於偽造SEO網址。使用按鈕“ %s ”編輯此別名。 EditTheWebSiteForACommonHeader=注意:如果要為所有頁面定義個性化標題,請在網站級別而不是頁面/容器上編輯標題。 @@ -42,6 +43,8 @@ ViewPageInNewTab=在新分頁中檢視頁面 SetAsHomePage=設為首頁 RealURL=真實網址 ViewWebsiteInProduction=使用家庭網址檢視網站 +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=使用Apache/NGinx/...
    建立您的網頁伺服器 (Apache, Nginx, ...) 啟用了含有PHP的專用虛擬主機並且根目錄資料夾位於
    %s ExampleToUseInApacheVirtualHostConfig=在Apache虛擬主機設定中使用的範例: YouCanAlsoTestWithPHPS=在開發環境中使用嵌入式PHP伺服器
    , 您也許想要使用
    php -S 0.0.0.0:8080 -t %s 來測試此嵌入式PHP伺服器 (需要PHP 5.5) 的網站 @@ -137,7 +140,7 @@ PagesRegenerated=已重新產生%s頁面/容器 RegenerateWebsiteContent=重新產生網站快取檔案 AllowedInFrames=允許在框架中 DefineListOfAltLanguagesInWebsiteProperties=在網站屬性中定義所有可用語言的清單。 -GenerateSitemaps=產生網站地圖檔案 +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=如果您確認,您將刪除現有的網站地圖檔案... ConfirmSitemapsCreation=確認產生網站地圖 SitemapGenerated=網站地圖檔案%s已產生 @@ -145,3 +148,10 @@ ImportFavicon=圖示 ErrorFaviconType=圖示必須為png格式 ErrorFaviconSize=圖示的尺寸必須為16x16, 32x32 或 64x64 FaviconTooltip=上傳的影像檔案必須為 png (16x16、32x32 或 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/zh_TW/withdrawals.lang b/htdocs/langs/zh_TW/withdrawals.lang index 1bd4ca264db..33b89362f1a 100644 --- a/htdocs/langs/zh_TW/withdrawals.lang +++ b/htdocs/langs/zh_TW/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=等待信用轉帳付款的發票 AmountToWithdraw=提款金額 AmountToTransfer=轉帳金額 NoInvoiceToWithdraw=沒有為“ %s”打開的發票等待中。前往發票卡上的分頁“ %s”上產生請求。 -NoSupplierInvoiceToWithdraw=沒有含有'直接轉帳付款要求'的供應商發票等待中. 前往發票'%s'分頁產生要求. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=用戶負責 WithdrawalsSetup=直接轉帳付款設定 CreditTransferSetup=信用轉帳設定 @@ -42,6 +42,7 @@ CreditTransferStatistics=信用轉帳統計 Rejects=拒絕 LastWithdrawalReceipt=最新%s張直接轉帳付款收據 MakeWithdrawRequest=提出直接轉帳付款請求 +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=提出貸記轉帳請求 WithdrawRequestsDone=已記錄%s直接轉帳付款請求 BankTransferRequestsDone=記錄了%s的信用轉移請求 @@ -100,8 +101,11 @@ CreditDate=信貸 WithdrawalFileNotCapable=無法為您的國家/地區產生提款收據檔案%s(不支援您的國家/地區) ShowWithdraw=顯示直接轉帳付款訂單 IfInvoiceNeedOnWithdrawPaymentWontBeClosed=但是,如果發票中至少有一個直接轉帳付款訂單尚未處理,則不會將其設定為已付款以允許事先提款管理。 -DoStandingOrdersBeforePayments=此分頁可讓您申請直接轉帳付款單。完成後,進入選單銀行->直接轉帳訂單以產生和管理直接轉帳付款訂單。關閉付款訂單後,將自動記錄發票付款,如果剩餘付款為空,則關閉發票。 -DoCreditTransferBeforePayments=此分頁允許您申請貸記轉帳訂單。完成後,進入選單銀行->貸記轉帳付款以產生和管理貸記轉帳訂單。當信用轉帳訂單關閉時,發票上的付款將被自動記錄,如果餘額為空,發票將被關閉。 +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=直接轉帳文件 CreditTransferFile=信用轉帳文件 SetToStatusSent=設定狀態為“檔案已傳送” @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=無法為空金額建立直接轉帳付款請求 SepaMandate=SEPA直接轉帳付款授權 SepaMandateShort=SEPA授權 PleaseReturnMandate=請以電子郵件將本授權書退回至%s或郵寄至 -SEPALegalText=通過簽署本授權書,您授權 (A) %s 向您的銀行發送指令以從您的帳戶中扣款,以及 (B) 您的銀行根據 %s 的指令從您的帳戶中扣款。作為您權利的一部分,您有權根據您與銀行協議的條款和條件從銀行獲得退款。您可以從銀行獲得的聲明中解釋了您對上述授權的權利。 +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=債權人識別碼 CreditorName=債權人名稱 SEPAFillForm=(B)請填寫所有標有*的欄位 diff --git a/htdocs/langs/zh_TW/workflow.lang b/htdocs/langs/zh_TW/workflow.lang index 76f299ea694..e869e7a6051 100644 --- a/htdocs/langs/zh_TW/workflow.lang +++ b/htdocs/langs/zh_TW/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=當供應商發票已 descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=在驗證收貨時將連結的來源採購訂單分類為已收貨(並且如果所有收貨的數量與要更新的採購訂單中的數量相同) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=收貨結束時將連結的來源採購訂單分類為已收貨(如果所有收貨的數量與要更新的採購訂單中的數量相同) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=驗證連結的供應商訂單後,將接收分類為“已開票” +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=當建立服務單時,連結符合之合作方的可用合約 descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=當連結合約時,在母公司的合約中搜尋 @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=關閉服務單後,關閉與服務單 AutomaticCreation=自動建立 AutomaticClassification=自動分類 # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=驗證客戶發票後,將已連結的裝運來源分類為已關閉 +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=自動關閉 AutomaticLinking=自動連結 diff --git a/htdocs/loan/calcmens.php b/htdocs/loan/calcmens.php index cc6debab86c..73b222c8274 100644 --- a/htdocs/loan/calcmens.php +++ b/htdocs/loan/calcmens.php @@ -33,6 +33,7 @@ if (!defined('NOREQUIREAJAX')) { define('NOREQUIREAJAX', '1'); } +// Load Dolibarr environment require '../main.inc.php'; require DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index 4bc539c1ff0..0f19f994c70 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -24,14 +24,15 @@ * \brief Loan card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; } require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; @@ -244,7 +245,7 @@ if (empty($reshook)) { $form = new Form($db); $formproject = new FormProjets($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -274,7 +275,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Label").'
    '.$langs->trans("Account").''; $form->select_comptes(GETPOST("accountid"), "accountid", 0, "courant=1", 1); // Show list of bank account with courant print '
    '.$langs->trans("Insurance").'
    '.$langs->trans("LoanAccountancyCapitalCode").''; @@ -424,7 +425,7 @@ if ($id > 0) { $morehtmlref .= $form->editfieldkey("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', null, null, '', 1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->loadLangs(array("projects")); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->loan->write) { @@ -473,7 +474,7 @@ if ($id > 0) { print '
    '.$langs->trans("LoanCapital").''.price($object->capital, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("LoanCapital").''.price($object->capital, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("Insurance").''.price($object->insurance_amount, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("Insurance").''.price($object->insurance_amount, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account($object->account_capital, 'accountancy_account_capital', 1, '', 1, 1); } else { print ''; @@ -543,7 +544,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyCapitalCode"); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $object->account_capital, 1); @@ -563,7 +564,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyInsuranceCode"); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account($object->account_insurance, 'accountancy_account_insurance', 1, '', 1, 1); } else { print ''; @@ -574,7 +575,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyInsuranceCode"); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $object->account_insurance, 1); @@ -594,7 +595,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyInterestCode"); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account($object->account_interest, 'accountancy_account_interest', 1, '', 1, 1); } else { print ''; @@ -605,7 +606,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyInterestCode"); print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $object->account_interest, 1); diff --git a/htdocs/loan/class/loan.class.php b/htdocs/loan/class/loan.class.php index e6f560d7a42..1c6913035e8 100644 --- a/htdocs/loan/class/loan.class.php +++ b/htdocs/loan/class/loan.class.php @@ -104,6 +104,10 @@ class Loan extends CommonObject */ public $fk_project; + /** + * @var int totalpaid + */ + public $totalpaid; const STATUS_UNPAID = 0; const STATUS_PAID = 1; @@ -220,7 +224,7 @@ class Loan extends CommonObject } // Check parameters - if (!$newcapital > 0 || empty($this->datestart) || empty($this->dateend)) { + if (!($newcapital > 0) || empty($this->datestart) || empty($this->dateend)) { $this->error = "ErrorBadParameter"; return -2; } @@ -690,7 +694,7 @@ class Loan extends CommonObject public function info($id) { $sql = 'SELECT l.rowid, l.datec, l.fk_user_author, l.fk_user_modif,'; - $sql .= ' l.tms'; + $sql .= ' l.tms as datem'; $sql .= ' WHERE l.rowid = '.((int) $id); dol_syslog(get_class($this).'::info', LOG_DEBUG); @@ -700,21 +704,11 @@ class Loan extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_modif) { - $muser = new User($this->db); - $muser->fetch($obj->fk_user_modif); - $this->user_modification = $muser; - } - $this->date_creation = $this->db->jdate($obj->datec); - if (empty($obj->fk_user_modif)) { - $obj->tms = ""; - } - $this->date_modification = $this->db->jdate($obj->tms); + + $this->user_creation_id = $obj->fk_user_author; + $this->user_modification_id = $obj->fk_user_modif; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); $this->db->free($result); return 1; diff --git a/htdocs/loan/class/loanschedule.class.php b/htdocs/loan/class/loanschedule.class.php index 9beff9dd22e..50314ce99fc 100644 --- a/htdocs/loan/class/loanschedule.class.php +++ b/htdocs/loan/class/loanschedule.class.php @@ -334,10 +334,10 @@ class LoanSchedule extends CommonObject $sql .= " num_payment=".(isset($this->num_payment) ? "'".$this->db->escape($this->num_payment)."'" : "null").","; $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; - $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; - $sql .= " fk_payment_loan=".(isset($this->fk_payment_loan) ? $this->fk_payment_loan : "null").","; - $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " fk_bank=".(isset($this->fk_bank) ? ((int) $this->fk_bank) : "null").","; + $sql .= " fk_payment_loan=".(isset($this->fk_payment_loan) ? ((int) $this->fk_payment_loan) : "null").","; + $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? ((int) $this->fk_user_creat) : "null").","; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? ((int) $this->fk_user_modif) : "null"); $sql .= " WHERE rowid=".((int) $this->id); diff --git a/htdocs/loan/class/paymentloan.class.php b/htdocs/loan/class/paymentloan.class.php index ae31a8314aa..be53fa38b3a 100644 --- a/htdocs/loan/class/paymentloan.class.php +++ b/htdocs/loan/class/paymentloan.class.php @@ -343,9 +343,9 @@ class PaymentLoan extends CommonObject $sql .= " num_payment=".(isset($this->num_payment) ? "'".$this->db->escape($this->num_payment)."'" : "null").","; $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; - $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; - $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " fk_bank=".(isset($this->fk_bank) ? ((int) $this->fk_bank) : "null").","; + $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? ((int) $this->fk_user_creat) : "null").","; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ?((int) $this->fk_user_modif) : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -497,7 +497,7 @@ class PaymentLoan extends CommonObject $error = 0; $this->db->begin(); - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $acc = new Account($this->db); diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php index 1ed3e644b7f..c809711005f 100644 --- a/htdocs/loan/document.php +++ b/htdocs/loan/document.php @@ -22,13 +22,14 @@ * \brief Page with attached files on loan */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -103,7 +104,7 @@ if ($object->id) { $morehtmlref .= $form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' : '; if ($user->rights->loan->write) { diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php index 3a5e95c7823..188a61c61e6 100644 --- a/htdocs/loan/info.php +++ b/htdocs/loan/info.php @@ -22,11 +22,12 @@ * \brief Page with info about loan */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -67,7 +68,7 @@ $morehtmlref = '
    '; $morehtmlref .= $form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' : '; if ($user->rights->loan->write) { @@ -101,8 +102,6 @@ $morehtmlref .= '
    '; $linkback = ''.$langs->trans("BackToList").''; -$object->totalpaid = $totalpaid; // To give a chance to dol_banner_tab to use already paid amount to show correct status - dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright); print '
    '; diff --git a/htdocs/loan/list.php b/htdocs/loan/list.php index f9b08a63a48..1324876a98c 100644 --- a/htdocs/loan/list.php +++ b/htdocs/loan/list.php @@ -24,6 +24,7 @@ * \brief Page to list all loans */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; @@ -106,8 +107,13 @@ $title = $langs->trans('Loans'); $sql = "SELECT l.rowid, l.label, l.capital, l.datestart, l.dateend, l.paid,"; $sql .= " SUM(pl.amount_capital) as alreadypaid"; -$sql .= " FROM ".MAIN_DB_PREFIX."loan as l LEFT JOIN ".MAIN_DB_PREFIX."payment_loan AS pl"; -$sql .= " ON l.rowid = pl.fk_loan"; + +$sqlfields = $sql; // $sql fields to remove for count total + +$sql .= " FROM ".MAIN_DB_PREFIX."loan as l"; +$linktopl = " LEFT JOIN ".MAIN_DB_PREFIX."payment_loan AS pl ON l.rowid = pl.fk_loan"; +$sql .= $linktopl; + $sql .= " WHERE l.entity = ".$conf->entity; if ($search_amount) { $sql .= natural_search("l.capital", $search_amount, 1); @@ -119,36 +125,43 @@ if ($search_label) { $sql .= natural_search("l.label", $search_label); } $sql .= " GROUP BY l.rowid, l.label, l.capital, l.paid, l.datestart, l.dateend"; -$sql .= $db->order($sortfield, $sortorder); // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/'.preg_quote($linktopl, '/').'/', '', $sqlforcount); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) { - $num = $nbtotalofrecords; -} else { - if ($limit) { - $sql .= $db->plimit($limit + 1, $offset); - } - - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - exit; - } - - $num = $db->num_rows($resql); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); } +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + // Output page // -------------------------------------------------------------------- diff --git a/htdocs/loan/note.php b/htdocs/loan/note.php index 0b982728b9e..2f2ee7021eb 100644 --- a/htdocs/loan/note.php +++ b/htdocs/loan/note.php @@ -27,10 +27,11 @@ * \brief Tab for notes on loan */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -92,7 +93,7 @@ if ($id > 0) { $morehtmlref .= $form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->loadLangs(array("projects")); $morehtmlref .= '
    '.$langs->trans('Project').' : '; if ($user->rights->loan->write) { diff --git a/htdocs/loan/payment/card.php b/htdocs/loan/payment/card.php index 198025215b7..309e0d99f4a 100644 --- a/htdocs/loan/payment/card.php +++ b/htdocs/loan/payment/card.php @@ -21,10 +21,11 @@ * \brief Payment's card of loan */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/paymentloan.class.php'; -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; } @@ -129,7 +130,7 @@ print '
    '.$langs->trans('NotePrivate').''.nl2br($payment->note_p print '
    '.$langs->trans('NotePublic').''.nl2br($payment->note_public).'
    '.$langs->trans("PaymentMode").''; + print img_picto('', 'money-bill-alt', 'class="pictofixedwidth"'); $form->select_types_paiements(GETPOSTISSET("paymenttype") ? GETPOST("paymenttype", 'alphanohtml') : $loan->fk_typepayment, "paymenttype"); print "
    '.$langs->trans('AccountToDebit').''; + print img_picto('', 'bank_account', 'class="pictofixedwidth"'); $form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid", 'int') : $loan->accountid, "accountid", 0, 'courant = '.Account::TYPE_CURRENT, 1); // Show opend bank account list print '
    '.$langs->trans('Numero'); print ' ('.$langs->trans("ChequeOrTransferNumber").')'; print '
    '; -print ''; + $colspan = 6; if (count($echeances->lines) > 0) { $colspan++; } -print ''; -print ''; print ''; print ''; @@ -276,10 +276,10 @@ if ($object->nbterm > 0 && count($echeances->lines) == 0) { print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''."\n"; $i++; $capital = $cap_rest; @@ -300,15 +300,15 @@ if ($object->nbterm > 0 && count($echeances->lines) == 0) { print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; if (empty($line->fk_bank)) { - print ''; + print ''; } else { - print ''; + print ''; } - print ''; + print ''; print ''; diff --git a/htdocs/mailmanspip/class/mailmanspip.class.php b/htdocs/mailmanspip/class/mailmanspip.class.php index 9635c0e2c1f..6bc34977e4e 100644 --- a/htdocs/mailmanspip/class/mailmanspip.class.php +++ b/htdocs/mailmanspip/class/mailmanspip.class.php @@ -77,7 +77,7 @@ class MailmanSpip */ public function isSpipEnabled() { - if (defined("ADHERENT_USE_SPIP") && (ADHERENT_USE_SPIP == 1)) { + if (getDolGlobalInt("ADHERENT_USE_SPIP") == 1) { return true; } @@ -91,10 +91,8 @@ class MailmanSpip */ public function checkSpipConfig() { - if (defined('ADHERENT_SPIP_SERVEUR') && defined('ADHERENT_SPIP_USER') && defined('ADHERENT_SPIP_PASS') && defined('ADHERENT_SPIP_DB')) { - if (ADHERENT_SPIP_SERVEUR != '' && ADHERENT_SPIP_USER != '' && ADHERENT_SPIP_PASS != '' && ADHERENT_SPIP_DB != '') { - return true; - } + if (getDolGlobalString('ADHERENT_SPIP_SERVEUR') != '' && getDolGlobalString('ADHERENT_SPIP_USER') != '' && getDolGlobalString('ADHERENT_SPIP_PASS') != '' && getDolGlobalString('ADHERENT_SPIP_DB') != '') { + return true; } return false; @@ -107,13 +105,13 @@ class MailmanSpip */ public function connectSpip() { - $resource = getDoliDBInstance('mysql', ADHERENT_SPIP_SERVEUR, ADHERENT_SPIP_USER, ADHERENT_SPIP_PASS, ADHERENT_SPIP_DB, ADHERENT_SPIP_PORT); + $resource = getDoliDBInstance('mysql', getDolGlobalString('ADHERENT_SPIP_SERVEUR'), getDolGlobalString('ADHERENT_SPIP_USER'), getDolGlobalString('ADHERENT_SPIP_PASS'), getDolGlobalString('ADHERENT_SPIP_DB'), getDolGlobalString('ADHERENT_SPIP_PORT')); if ($resource->ok) { return $resource; } - dol_syslog('Error when connecting to SPIP '.ADHERENT_SPIP_SERVEUR.' '.ADHERENT_SPIP_USER.' '.ADHERENT_SPIP_PASS.' '.ADHERENT_SPIP_DB, LOG_ERR); + dol_syslog('Error when connecting to SPIP '.getDolGlobalString('ADHERENT_SPIP_SERVEUR').' '.getDolGlobalString('ADHERENT_SPIP_USER').' '.getDolGlobalString('ADHERENT_SPIP_PASS').' '.getDolGlobalString('ADHERENT_SPIP_DB'), LOG_ERR); return false; } @@ -141,7 +139,7 @@ class MailmanSpip $list, $object->email, $object->pass, - $conf->global->ADHERENT_MAILMAN_ADMINPW + $conf->global->ADHERENT_MAILMAN_ADMIN_PASSWORD ); $curl_url = str_replace($patterns, $replace, $url); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 076ab0dbc6a..b2c76218a5d 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -80,7 +80,7 @@ function realCharForNumericEntities($matches) * Warning: Such a protection can't be enough. It is not reliable as it will always be possible to bypass this. Good protection can * only be guaranted by escaping data during output. * - * @param string $val Brut value found into $_GET, $_POST or PHP_SELF + * @param string $val Brute value found into $_GET, $_POST or PHP_SELF * @param string $type 0=POST, 1=GET, 2=PHP_SELF, 3=GET without sql reserved keywords (the less tolerant test) * @return int >0 if there is an injection, 0 if none */ @@ -89,18 +89,22 @@ function testSqlAndScriptInject($val, $type) // Decode string first because a lot of things are obfuscated by encoding or multiple encoding. // So error=alert(1) $val = preg_replace('//', '', $val); - $val = preg_replace('/[\r\n]/', '', $val); + $val = preg_replace('/[\r\n\t]/', '', $val); } while ($oldval != $val); //print "type = ".$type." after decoding: ".$val."\n"; @@ -123,19 +127,21 @@ function testSqlAndScriptInject($val, $type) // For SQL Injection (only GET are used to scan for such injection strings) if ($type == 1 || $type == 3) { - $inj += preg_match('/delete\s+from/i', $val); - $inj += preg_match('/create\s+table/i', $val); - $inj += preg_match('/insert\s+into/i', $val); - $inj += preg_match('/select\s+from/i', $val); - $inj += preg_match('/into\s+(outfile|dumpfile)/i', $val); + // Note the \s+ is replaced into \s* because some spaces may have been modified in previous loop + $inj += preg_match('/delete\s*from/i', $val); + $inj += preg_match('/create\s*table/i', $val); + $inj += preg_match('/insert\s*into/i', $val); + $inj += preg_match('/select\s*from/i', $val); + $inj += preg_match('/into\s*(outfile|dumpfile)/i', $val); $inj += preg_match('/user\s*\(/i', $val); // avoid to use function user() or mysql_user() that return current database login $inj += preg_match('/information_schema/i', $val); // avoid to use request that read information_schema database $inj += preg_match('/global->MAIN_VERSION_LAST_UPGRADE) && ($conf->global->MAIN_VE $dolibarrversionlastupgrade = preg_split('/[.-]/', $versiontocompare); $dolibarrversionprogram = preg_split('/[.-]/', DOL_VERSION); $rescomp = versioncompare($dolibarrversionprogram, $dolibarrversionlastupgrade); - if ($rescomp > 0) { // Programs have a version higher than database. We did not add "&& $rescomp < 3" because we want upgrade process for build upgrades - dol_syslog("main.inc: database version ".$versiontocompare." is lower than programs version ".DOL_VERSION.". Redirect to install page.", LOG_WARNING); - header("Location: ".DOL_URL_ROOT."/install/index.php"); - exit; + if ($rescomp > 0) { // Programs have a version higher than database. + if (empty($conf->global->MAIN_NO_UPGRADE_REDIRECT_ON_LEVEL_3_CHANGE) || $rescomp < 3) { + // We did not add "&& $rescomp < 3" because we want upgrade process for build upgrades + dol_syslog("main.inc: database version ".$versiontocompare." is lower than programs version ".DOL_VERSION.". Redirect to install/upgrade page.", LOG_WARNING); + header("Location: ".DOL_URL_ROOT."/install/index.php"); + exit; + } } } @@ -497,6 +509,8 @@ if (!defined('NOTOKENRENEWAL') && !defined('NOSESSION')) { } if (!isset($_SESSION['newtoken']) || getDolGlobalInt('MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL')) { + // Note: Using MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL is not recommended: if a user succeed in entering a data from + // a public page with a link that make a token regeneration, it can make use of the backoffice no more possible ! // Save in $_SESSION['newtoken'] what will be next token. Into forms, we will add param token = $_SESSION['newtoken'] $token = dol_hash(uniqid(mt_rand(), false), 'md5'); // Generates a hash of a random number. We don't need a secured hash, just a changing random value. $_SESSION['newtoken'] = $token; @@ -513,7 +527,7 @@ if ((!defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && getDolGlobalInt( $sensitiveget = false; if ((GETPOSTISSET('massaction') || GETPOST('action', 'aZ09')) && getDolGlobalInt('MAIN_SECURITY_CSRF_WITH_TOKEN') >= 3) { // All GET actions and mass actions are processed as sensitive. - if (GETPOSTISSET('massaction') || !in_array(GETPOST('action', 'aZ09'), array('create', 'file_manager'))) { // We exclude the case action='create' and action='file_manager' that are legitimate + if (GETPOSTISSET('massaction') || !in_array(GETPOST('action', 'aZ09'), array('create', 'createsite', 'createcard', 'edit', 'editvalidator', 'file_manager', 'presend', 'presend_addmessage', 'preview', 'specimen'))) { // We exclude the case action='create' and action='file_manager' that are legitimate $sensitiveget = true; } } elseif (getDolGlobalInt('MAIN_SECURITY_CSRF_WITH_TOKEN') >= 2) { @@ -521,19 +535,20 @@ if ((!defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && getDolGlobalInt( $arrayofactiontoforcetokencheck = array( 'activate', 'doprev', 'donext', 'dvprev', 'dvnext', - 'install', + 'freezone', 'install', 'reopen' ); if (in_array(GETPOST('action', 'aZ09'), $arrayofactiontoforcetokencheck)) { $sensitiveget = true; } + // We also match for value with just a simple string that must match if (preg_match('/^(add|classify|close|confirm|copy|del|disable|enable|remove|set|unset|update|save)/', GETPOST('action', 'aZ09'))) { $sensitiveget = true; } } // Check a token is provided for all cases that need a mandatory token - // (all POST actions + all login, actions and mass actions on pages with CSRFCHECK_WITH_TOKEN set + all sensitive GET actions) + // (all POST actions + all sensitive GET actions + all mass actions + all login/actions/logout on pages with CSRFCHECK_WITH_TOKEN set) if ( $_SERVER['REQUEST_METHOD'] == 'POST' || $sensitiveget || @@ -542,12 +557,12 @@ if ((!defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && getDolGlobalInt( ) { // If token is not provided or empty, error (we are in case it is mandatory) if (!GETPOST('token', 'alpha') || GETPOST('token', 'alpha') == 'notrequired') { + top_httphead(); if (GETPOST('uploadform', 'int')) { dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." refused. File size too large or not provided."); $langs->loadLangs(array("errors", "install")); print $langs->trans("ErrorFileSizeTooLarge").' '; print $langs->trans("ErrorGoBackAndCorrectParameters"); - die; } else { http_response_code(403); if (defined('CSRFCHECK_WITH_TOKEN')) { @@ -562,15 +577,15 @@ if ((!defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && getDolGlobalInt( } print " into setup).\n"; } - die; } + die; } } $sessiontokenforthisurl = (empty($_SESSION['token']) ? '' : $_SESSION['token']); // TODO Get the sessiontokenforthisurl into an array of session token (one array per base URL so we can use the CSRF per page and we keep ability for several tabs per url in a browser) if (GETPOSTISSET('token') && GETPOST('token') != 'notrequired' && GETPOST('token', 'alpha') != $sessiontokenforthisurl) { - dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." refused by CSRF protection (invalid token), so we disable POST and some GET parameters - referer=".$_SERVER['HTTP_REFERER'].", action=".GETPOST('action', 'aZ09').", _GET|POST['token']=".GETPOST('token', 'alpha'), LOG_WARNING); + dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." refused by CSRF protection (invalid token), so we disable POST and some GET parameters - referer=".(empty($_SERVER['HTTP_REFERER'])?'':$_SERVER['HTTP_REFERER']).", action=".GETPOST('action', 'aZ09').", _GET|POST['token']=".GETPOST('token', 'alpha'), LOG_WARNING); //dol_syslog("_SESSION['token']=".$sessiontokenforthisurl, LOG_DEBUG); // Do not output anything on standard output because this create problems when using the BACK button on browsers. So we just set a message into session. setEventMessages('SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry', null, 'warnings'); @@ -624,11 +639,15 @@ $modulepart = explode("/", $_SERVER["PHP_SELF"]); if (is_array($modulepart) && count($modulepart) > 0) { foreach ($conf->modules as $module) { if (in_array($module, $modulepart)) { - $conf->modulepart = $module; + $modulepart = $module; break; } } } +if (is_array($modulepart)) { + $modulepart = ''; +} + /* * Phase authentication / login @@ -844,14 +863,18 @@ if (!defined('NOLOGIN')) { // End test login / passwords if (!$login || (in_array('ldap', $authmode) && empty($passwordtotest))) { // With LDAP we refused empty password because some LDAP are "opened" for anonymous access so connexion is a success. // No data to test login, so we show the login page. - dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." - action=".GETPOST('action', 'aZ09')." - actionlogin=".GETPOST('actionlogin', 'aZ09')." - showing the login form and exit", LOG_INFO); + dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." - action=".GETPOST('action', 'aZ09')." - actionlogin=".GETPOST('actionlogin', 'aZ09')." - showing the login form and exit", LOG_NOTICE); if (defined('NOREDIRECTBYMAINTOLOGIN')) { + // When used with NOREDIRECTBYMAINTOLOGIN set, the http header must already be set when including the main. + // See example with selectsearchbox.php. This case is reserverd for the selectesearchbox.php so we can + // report a message to ask to login when search ajax component is used after a timeout. + //top_httphead(); return 'ERROR_NOT_LOGGED'; } else { if ($_SERVER["HTTP_USER_AGENT"] == 'securitytest') { http_response_code(401); // It makes easier to understand if session was broken during security tests } - dol_loginfunction($langs, $conf, (!empty($mysoc) ? $mysoc : '')); + dol_loginfunction($langs, $conf, (!empty($mysoc) ? $mysoc : '')); // This include http headers } exit; } @@ -975,7 +998,7 @@ if (!defined('NOLOGIN')) { $hookmanager->initHooks(array('main')); // Code for search criteria persistence. - if (!empty($_GET['save_lastsearch_values'])) { // We must use $_GET here + if (!empty($_GET['save_lastsearch_values']) && !empty($_SERVER["HTTP_REFERER"])) { // We must use $_GET here $relativepathstring = preg_replace('/\?.*$/', '', $_SERVER["HTTP_REFERER"]); $relativepathstring = preg_replace('/^https?:\/\/[^\/]*/', '', $relativepathstring); // Get full path except host server // Clean $relativepathstring @@ -1150,6 +1173,11 @@ if (!defined('NOLOGIN')) { $conf->theme = $user->conf->MAIN_THEME; $conf->css = "/theme/".$conf->theme."/style.css.php"; } +} else { + // We may have NOLOGIN set, but NOREQUIREUSER not + if (!empty($user) && method_exists($user, 'loadDefaultValues')) { + $user->loadDefaultValues(); // Load default values for everybody (works even if $user->id = 0 + } } @@ -1192,14 +1220,22 @@ if (GETPOST('dol_no_mouse_hover', 'int') || !empty($_SESSION['dol_no_mouse_hover if (GETPOST('dol_use_jmobile', 'int') || !empty($_SESSION['dol_use_jmobile'])) { $conf->dol_use_jmobile = 1; } +// If not on Desktop if (!empty($conf->browser->layout) && $conf->browser->layout != 'classic') { $conf->dol_no_mouse_hover = 1; } + +// If on smartphone or optmized for small screen if ((!empty($conf->browser->layout) && $conf->browser->layout == 'phone') || (!empty($_SESSION['dol_screenwidth']) && $_SESSION['dol_screenwidth'] < 400) - || (!empty($_SESSION['dol_screenheight']) && $_SESSION['dol_screenheight'] < 400) + || (!empty($_SESSION['dol_screenheight']) && $_SESSION['dol_screenheight'] < 400 + || !empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) ) { $conf->dol_optimize_smallscreen = 1; + + if (isset($conf->global->PRODUIT_DESC_IN_FORM) && $conf->global->PRODUIT_DESC_IN_FORM == 1) { + $conf->global->PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE = 0; + } } // Replace themes bugged with jmobile with eldy if (!empty($conf->dol_use_jmobile) && in_array($conf->theme, array('bureau2crea', 'cameleo', 'amarok'))) { @@ -1232,8 +1268,7 @@ if (!defined('NOLOGIN')) { // If not active, we refuse the user $langs->loadLangs(array("errors", "other")); dol_syslog("Authentication KO as login is disabled", LOG_NOTICE); - accessforbidden($langs->trans("ErrorLoginDisabled")); - exit; + accessforbidden("ErrorLoginDisabled"); } // Load permissions @@ -1346,7 +1381,7 @@ if (!function_exists("llxHeader")) { */ function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) { - global $conf; + global $conf, $hookmanager; // html header top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss, 0, $disablenofollow, $disablenoindex); @@ -1366,13 +1401,19 @@ if (!function_exists("llxHeader")) { print ''."\n"; + $parameters = array('help_url' => $help_url); + $reshook = $hookmanager->executeHooks('changeHelpURL', $parameters); + if ($reshook > 0) { + $help_url = $hookmanager->resPrint; + } + // top menu and left menu area if ((empty($conf->dol_hide_topmenu) || GETPOST('dol_invisible_topmenu', 'int')) && !GETPOST('dol_openinpopup', 'aZ09')) { top_menu($head, $title, $target, $disablejs, $disablehead, $arrayofjs, $arrayofcss, $morequerystring, $help_url); } if (empty($conf->dol_hide_leftmenu) && !GETPOST('dol_openinpopup', 'aZ09')) { - left_menu('', $help_url, '', '', 1, $title, 1); // $menumanager is retrieved with a global $menumanager inside this function + left_menu(array(), $help_url, '', '', 1, $title, 1); // $menumanager is retrieved with a global $menumanager inside this function } // main area @@ -1403,23 +1444,30 @@ function top_httphead($contenttype = 'text/html', $forcenocache = 0) } // Security options + + // X-Content-Type-Options header("X-Content-Type-Options: nosniff"); // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on) + + // X-Frame-Options if (!defined('XFRAMEOPTIONS_ALLOWALL')) { header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) } else { header("X-Frame-Options: ALLOWALL"); } + + // X-XSS-Protection //header("X-XSS-Protection: 1"); // XSS filtering protection of some browsers (note: use of Content-Security-Policy is more efficient). Disabled as deprecated. - if (!defined('FORCECSP')) { - //if (! isset($conf->global->MAIN_HTTP_CONTENT_SECURITY_POLICY)) - //{ - // // A default security policy that keep usage of js external component like ckeditor, stripe, google, working + + // Content-Security-Policy + if (!defined('MAIN_SECURITY_FORCECSP')) { + // If CSP not forced from the page + + // A default security policy that keep usage of js external component like ckeditor, stripe, google, working // $contentsecuritypolicy = "font-src *; img-src *; style-src * 'unsafe-inline' 'unsafe-eval'; default-src 'self' *.stripe.com 'unsafe-inline' 'unsafe-eval'; script-src 'self' *.stripe.com 'unsafe-inline' 'unsafe-eval'; frame-src 'self' *.stripe.com; connect-src 'self';"; - //} - //else - $contentsecuritypolicy = empty($conf->global->MAIN_HTTP_CONTENT_SECURITY_POLICY) ? '' : $conf->global->MAIN_HTTP_CONTENT_SECURITY_POLICY; + $contentsecuritypolicy = getDolGlobalString('MAIN_SECURITY_FORCECSP'); if (!is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; $hookmanager = new HookManager($db); } $hookmanager->initHooks(array("main")); @@ -1439,16 +1487,29 @@ function top_httphead($contenttype = 'text/html', $forcenocache = 0) // default-src https://cdn.example.net; object-src 'none' // For example, to restrict everything to itself except img that can be on other servers: // default-src 'self'; img-src *; - // Pre-existing site that uses too much inline code to fix but wants to ensure resources are loaded only over https and disable plugins: - // default-src http: https: 'unsafe-eval' 'unsafe-inline'; object-src 'none' + // Pre-existing site that uses too much js code to fix but wants to ensure resources are loaded only over https and disable plugins: + // default-src https: 'unsafe-inline' 'unsafe-eval'; object-src 'none' header("Content-Security-Policy: ".$contentsecuritypolicy); } - } elseif (constant('FORCECSP')) { - header("Content-Security-Policy: ".constant('FORCECSP')); + } else { + header("Content-Security-Policy: ".constant('MAIN_SECURITY_FORCECSP')); } + + // Referrer-Policy + // Say if we must provide the referrer when we jump onto another web page. + // Default browser are 'strict-origin-when-cross-origin' (only domain is sent on other domain switching), we want more so we use 'same-origin' so browser doesn't send any referrer when going into another web site domain. + if (!defined('MAIN_SECURITY_FORCERP')) { + $referrerpolicy = getDolGlobalString('MAIN_SECURITY_FORCERP', "same-origin"); + + header("Referrer-Policy: ".$referrerpolicy); + } + if ($forcenocache) { header("Cache-Control: no-cache, no-store, must-revalidate, max-age=0"); } + + // No need to add this token in header, we use instead the one into the forms. + //header("anti-csrf-token: ".newToken()); } /** @@ -1500,6 +1561,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr print ''."\n"; // Do not index print ''."\n"; // Scale for mobile device print ''."\n"; + print ''."\n"; if (getDolGlobalInt('MAIN_FEATURES_LEVEL')) { print ''."\n"; } @@ -1508,8 +1570,8 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr if (!empty($mysoc->logo_squarred_mini)) { $favicon = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); } - if (!empty($conf->global->MAIN_FAVICON_URL)) { - $favicon = $conf->global->MAIN_FAVICON_URL; + if (getDolGlobalString('MAIN_FAVICON_URL')) { + $favicon = getDolGlobalString('MAIN_FAVICON_URL'); } if (empty($conf->dol_use_jmobile)) { print ''."\n"; // Not required into an Android webview @@ -1572,7 +1634,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", ((int) $conf->global->MAIN_IHM_PARAMS_REV) + 1, 'chaine', 0, '', $conf->entity); } - $themeparam = '?lang='.$langs->defaultlang.'&theme='.$conf->theme.(GETPOST('optioncss', 'aZ09') ? '&optioncss='.GETPOST('optioncss', 'aZ09', 1) : '').'&userid='.$user->id.'&entity='.$conf->entity; + $themeparam = '?lang='.$langs->defaultlang.'&theme='.$conf->theme.(GETPOST('optioncss', 'aZ09') ? '&optioncss='.GETPOST('optioncss', 'aZ09', 1) : '').(empty($user->id) ? '' : ('&userid='.$user->id)).'&entity='.$conf->entity; $themeparam .= ($ext ? '&'.$ext : '').'&revision='.getDolGlobalInt("MAIN_IHM_PARAMS_REV"); if (GETPOSTISSET('dol_hide_topmenu')) { @@ -2218,12 +2280,14 @@ function top_menu_user($hideloginname = 0, $urllogout = '') if (empty($urllogout)) { $urllogout = DOL_URL_ROOT.'/user/logout.php?token='.newToken(); } - $logoutLink = ' '.$langs->trans("Logout").''; - $profilLink = ' '.$langs->trans("Card").''; + // Defined the links for bottom of card + $profilLink = ' '.$langs->trans("Card").''; + $urltovirtualcard = '/user/virtualcard.php?id='.((int) $user->id); + $virtuelcardLink = dolButtonToOpenUrlInDialogPopup('publicvirtualcardmenu', $langs->trans("PublicVirtualCardUrl").(is_object($user) ? ' - '.$user->getFullName($langs) : ''), img_picto($langs->trans("PublicVirtualCardUrl"), 'card', ''), $urltovirtualcard, '', 'button-top-menu-dropdown marginleftonly nohover', "closeTopMenuLoginDropdown()", '', 'v'); + $logoutLink = ' '.$langs->trans("Logout").''; $profilName = $user->getFullName($langs).' ('.$user->login.')'; - if (!empty($user->admin)) { $profilName = ' '.$profilName; } @@ -2279,6 +2343,9 @@ function top_menu_user($hideloginname = 0, $urllogout = '')
    '.$profilLink.'
    +
    + '.$virtuelcardLink.' +
    '.$logoutLink.'
    @@ -2301,32 +2368,35 @@ function top_menu_user($hideloginname = 0, $urllogout = '') $btnUser .= ' '; } print ''; @@ -536,15 +555,15 @@ if ($id > 0 || $ref) { print ''; print ''; // Availability - if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) { + if (getDolGlobalInt('FOURN_PRODUCT_AVAILABILITY')) { $langs->load("propal"); print ''; if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) { - // Packaging + // Packaging/Conditionnement print ''; print ''; @@ -620,7 +639,7 @@ if ($id > 0 || $ref) { print ''; print ''; - if (!empty($conf->dynamicprices->enabled)) { //Only show price mode and expression selector if module is enabled + if (isModEnabled('dynamicprices')) { //Only show price mode and expression selector if module is enabled // Price mode selector print ''; print ''; print ''; @@ -768,27 +787,22 @@ END; print ''; // Barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $formbarcode = new FormBarCode($db); // Barcode type print ''; - print ''; + print ''; print ''; - print ''; - - // Barcode value - print ''; - print ''; - print ''; + print img_picto('', 'barcode', 'class="pictofixedwidth"'); + print $formbarcode->selectBarcodeType((GETPOSTISSET('fk_barcode_type') ? GETPOST('fk_barcode_type', 'int') : ($rowid ? $object->supplier_fk_barcode_type : getDolGlobalint("PRODUIT_DEFAULT_BARCODE_TYPE"))), 'fk_barcode_type', 1); + print ' '; print ''; } // Option to define a transport cost on supplier price if (!empty($conf->global->PRODUCT_CHARGES)) { - if (!empty($conf->margin->enabled)) { + if (isModEnabled('margin')) { print ''; print ''; print ''; print ''; @@ -904,7 +918,7 @@ END; print "\n"; - if ($user->rights->fournisseur->lire) { // Duplicate ? this check is already in the head of this file + if ($user->hasRight("fournisseur", "read")) { // Duplicate ? this check is already in the head of this file $param = ''; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); @@ -930,16 +944,16 @@ END; $arrayfields = array( 'pfp.datec'=>array('label'=>$langs->trans("AppliedPricesFrom"), 'checked'=>1, 'position'=>1), 's.nom'=>array('label'=>$langs->trans("Suppliers"), 'checked'=>1, 'position'=>2), - 'pfp.fk_availability'=>array('label'=>$langs->trans("Availability"), 'enabled' => !empty($conf->global->FOURN_PRODUCT_AVAILABILITY), 'checked'=>0, 'position'=>4), + 'pfp.fk_availability'=>array('label'=>$langs->trans("Availability"), 'enabled' => getDolGlobalInt('FOURN_PRODUCT_AVAILABILITY'), 'checked'=>0, 'position'=>4), 'pfp.quantity'=>array('label'=>$langs->trans("QtyMin"), 'checked'=>1, 'position'=>5), 'pfp.unitprice'=>array('label'=>$langs->trans("UnitPriceHT"), 'checked'=>1, 'position'=>9), - 'pfp.multicurrency_unitprice'=>array('label'=>$langs->trans("UnitPriceHTCurrency"), 'enabled' => (!empty($conf->multicurrency->enabled)), 'checked'=>0, 'position'=>10), - 'pfp.delivery_time_days'=>array('label'=>$langs->trans("NbDaysToDelivery"), 'checked'=>1, 'position'=>13), - 'pfp.supplier_reputation'=>array('label'=>$langs->trans("ReputationForThisProduct"), 'checked'=>1, 'position'=>14), - 'pfp.fk_barcode_type'=>array('label'=>$langs->trans("BarcodeType"), 'enabled' => $conf->barcode->enabled, 'checked'=>0, 'position'=>15), - 'pfp.barcode'=>array('label'=>$langs->trans("BarcodeValue"), 'enabled' => $conf->barcode->enabled, 'checked'=>0, 'position'=>16), - 'pfp.packaging'=>array('label'=>$langs->trans("PackagingForThisProduct"), 'enabled' => !empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING), 'checked'=>0, 'position'=>17), - 'pfp.tms'=>array('label'=>$langs->trans("DateModification"), 'enabled' => $conf->barcode->enabled, 'checked'=>1, 'position'=>18), + 'pfp.multicurrency_unitprice'=>array('label'=>$langs->trans("UnitPriceHTCurrency"), 'enabled' => isModEnabled('multicurrency'), 'checked'=>0, 'position'=>10), + 'pfp.delivery_time_days'=>array('label'=>$langs->trans("NbDaysToDelivery"), 'checked'=>-1, 'position'=>13), + 'pfp.supplier_reputation'=>array('label'=>$langs->trans("ReputationForThisProduct"), 'checked'=>-1, 'position'=>14), + 'pfp.fk_barcode_type'=>array('label'=>$langs->trans("BarcodeType"), 'enabled' => isModEnabled('barcode'), 'checked'=>0, 'position'=>15), + 'pfp.barcode'=>array('label'=>$langs->trans("BarcodeValue"), 'enabled' => isModEnabled('barcode'), 'checked'=>0, 'position'=>16), + 'pfp.packaging'=>array('label'=>$langs->trans("PackagingForThisProduct"), 'enabled' => getDolGlobalInt('PRODUCT_USE_SUPPLIER_PACKAGING'), 'checked'=>0, 'position'=>17), + 'pfp.tms'=>array('label'=>$langs->trans("DateModification"), 'enabled' => isModEnabled('barcode'), 'checked'=>1, 'position'=>18), ); // fetch optionals attributes and labels @@ -980,52 +994,72 @@ END; $param = "&id=".$object->id; + $nbfields = 0; + print ''; if (!empty($arrayfields['pfp.datec']['checked'])) { print_liste_field_titre("AppliedPricesFrom", $_SERVER["PHP_SELF"], "pfp.datec", "", $param, "", $sortfield, $sortorder, '', '', 1); + $nbfields++; } if (!empty($arrayfields['s.nom']['checked'])) { print_liste_field_titre("Suppliers", $_SERVER["PHP_SELF"], "s.nom", "", $param, "", $sortfield, $sortorder, '', '', 1); + $nbfields++; } print_liste_field_titre("SupplierRef", $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder, '', '', 1); + $nbfields++; if (!empty($arrayfields['pfp.fk_availability']['checked'])) { print_liste_field_titre("Availability", $_SERVER["PHP_SELF"], "pfp.fk_availability", "", $param, "", $sortfield, $sortorder); + $nbfields++; } if (!empty($arrayfields['pfp.quantity']['checked'])) { print_liste_field_titre("QtyMin", $_SERVER["PHP_SELF"], "pfp.quantity", "", $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; print_liste_field_titre("PriceQtyMinHT", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); - if (!empty($conf->multicurrency->enabled)) { + $nbfields++; + if (isModEnabled("multicurrency")) { print_liste_field_titre("PriceQtyMinHTCurrency", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } if (!empty($arrayfields['pfp.unitprice']['checked'])) { print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "pfp.unitprice", "", $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } if (!empty($arrayfields['pfp.multicurrency_unitprice']['checked'])) { print_liste_field_titre("UnitPriceHTCurrency", $_SERVER["PHP_SELF"], "pfp.multicurrency_unitprice", "", $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print_liste_field_titre("Currency", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } print_liste_field_titre("DiscountQtyMin", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; if (!empty($arrayfields['pfp.delivery_time_days']['checked'])) { print_liste_field_titre("NbDaysToDelivery", $_SERVER["PHP_SELF"], "pfp.delivery_time_days", "", $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } if (!empty($arrayfields['pfp.supplier_reputation']['checked'])) { print_liste_field_titre("ReputationForThisProduct", $_SERVER["PHP_SELF"], "pfp.supplier_reputation", "", $param, '', $sortfield, $sortorder, 'center '); + $nbfields++; } if (!empty($arrayfields['pfp.fk_barcode_type']['checked'])) { print_liste_field_titre("BarcodeType", $_SERVER["PHP_SELF"], "pfp.fk_barcode_type", "", $param, '', $sortfield, $sortorder, 'center '); + $nbfields++; } if (!empty($arrayfields['pfp.barcode']['checked'])) { print_liste_field_titre("BarcodeValue", $_SERVER["PHP_SELF"], "pfp.barcode", "", $param, '', $sortfield, $sortorder, 'center '); + $nbfields++; } if (!empty($arrayfields['pfp.packaging']['checked'])) { print_liste_field_titre("PackagingForThisProduct", $_SERVER["PHP_SELF"], "pfp.packaging", "", $param, 'align="center"', $sortfield, $sortorder); + $nbfields++; } if (!empty($arrayfields['pfp.tms']['checked'])) { print_liste_field_titre("DateModification", $_SERVER["PHP_SELF"], "pfp.tms", "", $param, '', $sortfield, $sortorder, 'right ', '', 1); + $nbfields++; } // fetch optionals attributes and labels @@ -1047,6 +1081,7 @@ END; } if (!empty($arrayfields['ef.' . $key]['checked'])) { print_liste_field_titre($extratitle, $_SERVER["PHP_SELF"], 'ef.' . $key, '', $param, '', $sortfield, $sortorder, 'right '); + $nbfields++; } } } @@ -1054,10 +1089,11 @@ END; } if (is_object($hookmanager)) { - $parameters = array('id_fourn'=>(!empty($id_fourn)?$id_fourn:''), 'prod_id'=>$object->id); + $parameters = array('id_fourn'=>(!empty($id_fourn)?$id_fourn:''), 'prod_id'=>$object->id, 'nbfields'=>$nbfields); $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); } print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + $nbfields++; print "\n"; if (is_array($product_fourn_list)) { @@ -1112,7 +1148,7 @@ END; print $productfourn->fourn_price ? ''.price($productfourn->fourn_price).'' : ""; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Price for the quantity in currency print ''; @@ -1230,15 +1266,19 @@ END; print ''; print ''; } + + if (empty($product_fourn_list)) { + print ''; + } } else { dol_print_error($db); } diff --git a/htdocs/product/index.php b/htdocs/product/index.php index 40141fce304..a25737d5583 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -28,6 +28,8 @@ * \brief Homepage products and services */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -47,6 +49,7 @@ $langs->loadLangs(array('products', 'stocks')); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array of hooks $hookmanager->initHooks(array('productindex')); +// Initialize objects $product_static = new Product($db); // Security check @@ -90,7 +93,7 @@ print '
    '; if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) { // This may be useless due to the global search combo // Search contract - if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($user->rights->produit->lire || $user->rights->service->lire)) { + if ((isModEnabled("product") || isModEnabled("service")) && ($user->rights->produit->lire || $user->rights->service->lire)) { $listofsearchfields['search_product'] = array('text'=>'ProductOrService'); } @@ -123,7 +126,7 @@ if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) { // This may be /* * Number of products and/or services */ -if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($user->rights->produit->lire || $user->rights->service->lire)) { +if ((isModEnabled("product") || isModEnabled("service")) && ($user->hasRight("produit", "lire") || $user->hasRight("service", "lire"))) { $prodser = array(); $prodser[0][0] = $prodser[0][1] = $prodser[0][2] = $prodser[0][3] = 0; $prodser[0]['sell'] = 0; @@ -185,12 +188,12 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us $total = $SommeA + $SommeB + $SommeC + $SommeD + $SommeE + $SommeF; $dataseries = array(); - if (!empty($conf->product->enabled)) { + if (isModEnabled("product")) { $dataseries[] = array($langs->transnoentitiesnoconv("ProductsOnSale"), round($SommeA)); $dataseries[] = array($langs->transnoentitiesnoconv("ProductsOnPurchase"), round($SommeB)); $dataseries[] = array($langs->transnoentitiesnoconv("ProductsNotOnSell"), round($SommeC)); } - if (!empty($conf->service->enabled)) { + if (isModEnabled("service")) { $dataseries[] = array($langs->transnoentitiesnoconv("ServicesOnSale"), round($SommeD)); $dataseries[] = array($langs->transnoentitiesnoconv("ServicesOnPurchase"), round($SommeE)); $dataseries[] = array($langs->transnoentitiesnoconv("ServicesNotOnSell"), round($SommeF)); @@ -212,7 +215,7 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us } -if (!empty($conf->categorie->enabled) && !empty($conf->global->CATEGORY_GRAPHSTATS_ON_PRODUCTS)) { +if (isModEnabled('categorie') && !empty($conf->global->CATEGORY_GRAPHSTATS_ON_PRODUCTS)) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; print '
    '; print '
    '; @@ -281,7 +284,7 @@ print '
    '; /* * Latest modified products */ -if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($user->rights->produit->lire || $user->rights->service->lire)) { +if ((isModEnabled("product") || isModEnabled("service")) && ($user->hasRight("produit", "lire") || $user->hasRight("service", "lire"))) { $max = 15; $sql = "SELECT p.rowid, p.label, p.price, p.ref, p.fk_product_type, p.tosell, p.tobuy, p.tobatch, p.fk_price_expression,"; $sql .= " p.entity,"; @@ -338,8 +341,13 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us $product_static->status_buy = $objp->tobuy; $product_static->status_batch = $objp->tobatch; + $usercancreadprice = getDolGlobalString('MAIN_USE_ADVANCED_PERMS')?$user->hasRight('product', 'product_advance', 'read_prices'):$user->hasRight('product', 'read'); + if ($product_static->isService()) { + $usercancreadprice = getDolGlobalString('MAIN_USE_ADVANCED_PERMS')?$user->hasRight('service', 'service_advance', 'read_prices'):$user->hasRight('service', 'read'); + } + // Multilangs - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $sql = "SELECT label"; $sql .= " FROM ".MAIN_DB_PREFIX."product_lang"; $sql .= " WHERE fk_product = ".((int) $objp->rowid); @@ -365,9 +373,11 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us print ""; // Sell price if (empty($conf->global->PRODUIT_MULTIPRICES)) { - if (!empty($conf->dynamicprices->enabled) && !empty($objp->fk_price_expression)) { + if (isModEnabled('dynamicprices') && !empty($objp->fk_price_expression)) { $product = new Product($db); $product->fetch($objp->rowid); + + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($db); $price_result = $priceparser->parseProduct($product); if ($price_result >= 0) { @@ -375,10 +385,12 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us } } print '
    '; } @@ -407,11 +419,11 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us // TODO Move this into a page that should be available into menu "accountancy - report - turnover - per quarter" // Also method used for counting must provide the 2 possible methods like done by all other reports into menu "accountancy - report - turnover": // "commitment engagment" method and "cash accounting" method -if (!empty($conf->global->MAIN_SHOW_PRODUCT_ACTIVITY_TRIM)) { - if (!empty($conf->product->enabled)) { +if (isModEnabled("invoice") && $user->hasRight('facture', 'lire') && getDolGlobalString('MAIN_SHOW_PRODUCT_ACTIVITY_TRIM')) { + if (isModEnabled("product")) { activitytrim(0); } - if (!empty($conf->service->enabled)) { + if (isModEnabled("service")) { activitytrim(1); } } diff --git a/htdocs/product/inventory/ajax/searchfrombarcode.php b/htdocs/product/inventory/ajax/searchfrombarcode.php index 68ffee43c23..efe4d65f2d3 100644 --- a/htdocs/product/inventory/ajax/searchfrombarcode.php +++ b/htdocs/product/inventory/ajax/searchfrombarcode.php @@ -1,5 +1,4 @@ id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -335,7 +336,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= $proj->getNomUrl(); @@ -411,22 +412,17 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Validate if ($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_CANCELED) { if ($permissiontoadd) { - print ''.$langs->trans("Validate").' ('.$langs->trans("Start").')'; + print ''.$langs->trans("Validate").' ('.$langs->trans("ToStart").')'; } } // Clone - /*if ($permissiontoadd) - { - print ''.$langs->trans("ToClone").''."\n"; - }*/ - - // Delete (need delete permission, or if draft, just need create/modify permission) - if ($permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)) { - print ''.$langs->trans('Delete').''."\n"; - } else { - print ''.$langs->trans('Delete').''."\n"; + if ($permissiontoadd) { + //print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&socid='.$object->socid.'&action=clone&object=inventory', 'clone', $permissiontoadd); } + + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } print ''."\n"; } diff --git a/htdocs/product/inventory/class/inventory.class.php b/htdocs/product/inventory/class/inventory.class.php index 80823c7ba5a..9acc4232490 100644 --- a/htdocs/product/inventory/class/inventory.class.php +++ b/htdocs/product/inventory/class/inventory.class.php @@ -33,6 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; /** * Class for Inventory */ + class Inventory extends CommonObject { /** @@ -60,10 +61,10 @@ class Inventory extends CommonObject */ public $picto = 'inventory'; - const STATUS_DRAFT = 0; // Draft + const STATUS_DRAFT = 0; // Draft const STATUS_VALIDATED = 1; // Inventory is in process - const STATUS_RECORDED = 2; // Inventory is finisged. Stock movement has been recorded. - const STATUS_CANCELED = 9; // Canceled + const STATUS_RECORDED = 2; // Inventory is finisged. Stock movement has been recorded. + const STATUS_CANCELED = 9; // Canceled /** * 'type' field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter]]', 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter]]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'text:none', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') @@ -96,22 +97,22 @@ class Inventory extends CommonObject * @var array Array with all fields and their property */ public $fields = array( - 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>'Id',), - 'ref' => array('type'=>'varchar(64)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>'Reference of object', 'css'=>'maxwidth200'), - 'entity' => array('type'=>'integer', 'label'=>'Entity', 'visible'=>0, 'enabled'=>1, 'position'=>20, 'notnull'=>1, 'index'=>1,), - 'title' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>25, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax200'), - 'fk_warehouse' => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Warehouse', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'index'=>1, 'help'=>'InventoryForASpecificWarehouse', 'picto'=>'stock', 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'csslist'=>'tdoverflowmax200'), - 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php', 'label'=>'Product', 'visible'=>1, 'enabled'=>1, 'position'=>32, 'index'=>1, 'help'=>'InventoryForASpecificProduct', 'picto'=>'product', 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'csslist'=>'tdoverflowmax200'), - 'date_inventory' => array('type'=>'date', 'label'=>'DateValue', 'visible'=>1, 'enabled'=>'$conf->global->STOCK_INVENTORY_ADD_A_VALUE_DATE', 'position'=>35), // This date is not used so disabled by default. - 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500), - 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501), - 'date_validation' => array('type'=>'datetime', 'label'=>'DateValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>502), - 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510, 'foreignkey'=>'user.rowid', 'csslist'=>'tdoverflowmax200'), - 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511, 'csslist'=>'tdoverflowmax200'), - 'fk_user_valid' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>512, 'csslist'=>'tdoverflowmax200'), - 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0, 'position'=>1000), - - 'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>4, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'default'=>0, 'index'=>1, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Validated', 2=>'Closed', 9=>'Canceled')) + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>'Id',), + 'ref' => array('type'=>'varchar(64)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>'Reference of object', 'css'=>'maxwidth200'), + 'entity' => array('type'=>'integer', 'label'=>'Entity', 'visible'=>0, 'enabled'=>1, 'position'=>20, 'notnull'=>1, 'index'=>1,), + 'title' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>25, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax200'), + 'fk_warehouse' => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Warehouse', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'index'=>1, 'help'=>'InventoryForASpecificWarehouse', 'picto'=>'stock', 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'csslist'=>'tdoverflowmax200'), + 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php', 'label'=>'Product', 'get_name_url_params' => '0::0:-1:0::1', 'visible'=>1, 'enabled'=>1, 'position'=>32, 'index'=>1, 'help'=>'InventoryForASpecificProduct', 'picto'=>'product', 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'csslist'=>'tdoverflowmax200'), + 'categories_product' => array('type'=>'chkbxlst:categorie:label:rowid::type=0:0:', 'label'=>'OrProductsWithCategories', 'visible'=>3, 'enabled'=>1, 'position'=>33, 'help'=>'', 'picto'=>'category', 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx'), + 'date_inventory' => array('type'=>'date', 'label'=>'DateValue', 'visible'=>1, 'enabled'=>'$conf->global->STOCK_INVENTORY_ADD_A_VALUE_DATE', 'position'=>35, 'csslist'=>'nowraponall'), // This date is not used so disabled by default. + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500, 'csslist'=>'nowraponall'), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501, 'csslist'=>'nowraponall'), + 'date_validation' => array('type'=>'datetime', 'label'=>'DateValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>502, 'csslist'=>'nowraponall'), + 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510, 'foreignkey'=>'user.rowid', 'csslist'=>'tdoverflowmax200'), + 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511, 'csslist'=>'tdoverflowmax200'), + 'fk_user_valid' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>512, 'csslist'=>'tdoverflowmax200'), + 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0, 'position'=>1000), + 'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>4, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'default'=>0, 'index'=>1, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Validated', 2=>'Closed', 9=>'Canceled')) ); /** @@ -139,6 +140,10 @@ class Inventory extends CommonObject */ public $fk_product; + /** + * @var string Categories id separated by comma + */ + public $categories_product; public $date_inventory; public $title; @@ -156,8 +161,6 @@ class Inventory extends CommonObject * @var integer|string date_validation */ public $date_validation; - - public $tms; /** @@ -230,7 +233,7 @@ class Inventory extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled)) { + if (!isModEnabled('multicompany')) { $this->fields['entity']['enabled'] = 0; } } @@ -291,6 +294,14 @@ class Inventory extends CommonObject if ($this->fk_warehouse > 0) { $sql .= " AND ps.fk_entrepot = ".((int) $this->fk_warehouse); } + if (!empty($this->categories_product)) { + $sql .= " AND EXISTS ("; + $sql .= " SELECT cp.fk_product"; + $sql .= " FROM ".$this->db->prefix()."categorie_product AS cp"; + $sql .= " WHERE cp.fk_product = ps.fk_product"; + $sql .= " AND cp.fk_categorie IN (".$this->db->sanitize($this->categories_product).")"; + $sql .= ")"; + } $inventoryline = new InventoryLine($this->db); @@ -308,7 +319,7 @@ class Inventory extends CommonObject $inventoryline->batch = $obj->batch; $inventoryline->datec = dol_now(); - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { $inventoryline->qty_stock = ($obj->batch ? $obj->qty : $obj->reel); // If there is batch detail, we take qty for batch, else global qty } else { $inventoryline->qty_stock = $obj->reel; @@ -477,7 +488,7 @@ class Inventory extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + //if ($result > 0 && !empty($this->table_element_line)) $this->fetchLines(); return $result; } @@ -750,9 +761,9 @@ class InventoryLine extends CommonObjectLine * @var array Array with all fields and their property */ public $fields = array( - 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>'Id',), + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>'Id',), 'fk_inventory' => array('type'=>'integer:Inventory:product/inventory/class/inventory.class.php', 'label'=>'Inventory', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'index'=>1, 'help'=>'LinkToInventory'), - 'fk_warehouse' => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Warehouse', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'index'=>1, 'help'=>'LinkToThirparty'), + 'fk_warehouse' => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Warehouse', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'index'=>1, 'help'=>'LinkToThirdparty'), 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php', 'label'=>'Product', 'visible'=>1, 'enabled'=>1, 'position'=>32, 'index'=>1, 'help'=>'LinkToProduct'), 'batch' => array('type'=>'string', 'label'=>'Batch', 'visible'=>1, 'enabled'=>1, 'position'=>32, 'index'=>1, 'help'=>'LinkToProduct'), 'datec' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500), @@ -760,8 +771,8 @@ class InventoryLine extends CommonObjectLine 'qty_stock' => array('type'=>'double', 'label'=>'QtyFound', 'visible'=>1, 'enabled'=>1, 'position'=>32, 'index'=>1, 'help'=>'Qty we found/want (to define during draft edition)'), 'qty_view' => array('type'=>'double', 'label'=>'QtyBefore', 'visible'=>1, 'enabled'=>1, 'position'=>33, 'index'=>1, 'help'=>'Qty before (filled once movements are validated)'), 'qty_regulated' => array('type'=>'double', 'label'=>'QtyDelta', 'visible'=>1, 'enabled'=>1, 'position'=>34, 'index'=>1, 'help'=>'Qty aadded or removed (filled once movements are validated)'), - 'pmp_real' => array('type'=>'double', 'label'=>'PMPReal', 'visible'=>1, 'enabled'=>1, 'position'=>35), - 'pmp_expected' => array('type'=>'double', 'label'=>'PMPExpected', 'visible'=>1, 'enabled'=>1, 'position'=>36), + 'pmp_real' => array('type'=>'double', 'label'=>'PMPReal', 'visible'=>1, 'enabled'=>1, 'position'=>35), + 'pmp_expected' => array('type'=>'double', 'label'=>'PMPExpected', 'visible'=>1, 'enabled'=>1, 'position'=>36), ); /** @@ -804,7 +815,7 @@ class InventoryLine extends CommonObjectLine public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + //if ($result > 0 && !empty($this->table_element_line)) $this->fetchLines(); return $result; } diff --git a/htdocs/product/inventory/inventory.php b/htdocs/product/inventory/inventory.php index 2e157de504a..f0ac5395d9f 100644 --- a/htdocs/product/inventory/inventory.php +++ b/htdocs/product/inventory/inventory.php @@ -21,6 +21,7 @@ * \brief Tabe to enter counting */ +// Load Dolibarr environment require '../../main.inc.php'; include_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; include_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; @@ -41,6 +42,15 @@ $confirm = GETPOST('confirm', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'inventorycard'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); +$listoffset = GETPOST('listoffset', 'alpha'); +$limit = GETPOST('limit', 'int') > 0 ?GETPOST('limit', 'int') : $conf->liste_limit; +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; $fk_warehouse = GETPOST('fk_warehouse', 'int'); $fk_product = GETPOST('fk_product', 'int'); @@ -86,6 +96,14 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ //if ($user->socid > 0) $socid = $user->socid; //$result = restrictedArea($user, 'mymodule', $id); +//Parameters Page +$param = '&id='.$object->id; +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +$paramwithsearch = $param; + + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { $permissiontoadd = $user->rights->stock->creer; $permissiontodelete = $user->rights->stock->supprimer; @@ -97,6 +115,7 @@ if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { $now = dol_now(); + /* * Actions */ @@ -105,6 +124,7 @@ if ($cancel) { $action = ''; } + $parameters = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { @@ -160,7 +180,7 @@ if (empty($reshook)) { // Get the real quantity in stock now, but before the stock move for inventory. $realqtynow = $product_static->stock_warehouse[$line->fk_warehouse]->real; - if ($conf->productbatch->enabled && $product_static->hasbatch()) { + if (isModEnabled('productbatch') && $product_static->hasbatch()) { $realqtynow = $product_static->stock_warehouse[$line->fk_warehouse]->detail_batch[$line->batch]->qty; } @@ -245,6 +265,7 @@ if (empty($reshook)) { $sql .= ' id.fk_product, id.batch, id.qty_stock, id.qty_view, id.qty_regulated'; $sql .= ' FROM '.MAIN_DB_PREFIX.'inventorydet as id'; $sql .= ' WHERE id.fk_inventory = '.((int) $object->id); + $sql .= $db->plimit($limit, $offset); $db->begin(); @@ -295,7 +316,7 @@ if (empty($reshook)) { } } - // Update user that update quantities + // Update line with id of stock movement (and the start quantity if it has changed this last recording) if (! $error) { $sqlupdate = "UPDATE ".MAIN_DB_PREFIX."inventory"; $sqlupdate .= " SET fk_user_modif = ".((int) $user->id); @@ -314,9 +335,8 @@ if (empty($reshook)) { } } - $backurlforlist = DOL_URL_ROOT.'/product/inventory/list.php'; - $backtopage = DOL_URL_ROOT.'/product/inventory/inventory.php?id='.$object->id; + $backtopage = DOL_URL_ROOT.'/product/inventory/inventory.php?id='.$object->id.'&page='.$page.$paramwithsearch; // Actions cancel, add, update, delete or clone include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; @@ -347,7 +367,7 @@ if (empty($reshook)) { $error++; setEventMessages($langs->trans("FieldCannotBeNegative", $langs->transnoentitiesnoconv("RealQty")), null, 'errors'); } - if (!$error && !empty($conf->productbatch->enabled)) { + if (!$error && isModEnabled('productbatch')) { $tmpproduct = new Product($db); $result = $tmpproduct->fetch($fk_product); @@ -407,30 +427,6 @@ $help_url = ''; llxHeader('', $langs->trans('Inventory'), $help_url); - -// Disable button Generate movement if data were modified and not saved -print ''; - - // Part to show record if ($object->id > 0) { $res = $object->fetch_optionals(); @@ -446,7 +442,7 @@ if ($object->id > 0) { } // Confirmation to delete line if ($action == 'deleteline') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid.'&page='.$page.$paramwithsearch, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); } // Clone confirmation @@ -493,7 +489,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -515,7 +511,7 @@ if ($object->id > 0) { } } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref.=$proj->getNomUrl(); @@ -552,8 +548,7 @@ if ($object->id > 0) { print dol_get_fiche_end(); - - print ''; + print ''; print ''; print ''; print ''; @@ -607,7 +602,7 @@ if ($object->id > 0) { if (!empty($conf->use_javascript_ajax)) { if ($permissiontoadd) { // Link to launch scan tool - if (!empty($conf->barcode->enabled) || !empty($conf->productbatch->enabled)) { + if (isModEnabled('barcode') || isModEnabled('productbatch')) { print ''.img_picto('', 'barcode', 'class="paddingrightonly"').$langs->trans("UpdateByScaning").''; } @@ -905,7 +900,7 @@ if ($object->id > 0) { print ''; print ''; print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; @@ -943,24 +938,28 @@ if ($object->id > 0) { print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; } print ''; - print ''; if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { print ''; print ''; print ''; print ''; + print ''; + } else { + print ''; } // Actions print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; } else { if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { //PMP Expected - if (! empty($obj->pmp_expected)) $pmp_expected = $obj->pmp_expected; + if (!empty($obj->pmp_expected)) $pmp_expected = $obj->pmp_expected; else $pmp_expected = $product_static->pmp; $pmp_valuation = $pmp_expected * $valuetoshow; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; print ''; } @@ -1188,8 +1193,50 @@ if ($object->id > 0) { } print ''; + print ''; + + + if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { ?> '; } diff --git a/htdocs/projet/activity/permonth.php b/htdocs/projet/activity/permonth.php index 156080eefb3..066621f3083 100644 --- a/htdocs/projet/activity/permonth.php +++ b/htdocs/projet/activity/permonth.php @@ -15,7 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -102,6 +102,8 @@ if (empty($search_usertoprocessid) || $search_usertoprocessid == $user->id) { $object = new Task($db); +$error = 0; + /* * Actions @@ -141,11 +143,11 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('assigntask') $error++; } } else { - setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), null, 'errors'); $error++; } if (!GETPOST('type')) { - setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); $error++; } @@ -167,7 +169,8 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('assigntask') $listofprojcontact = $project->liste_type_contact('internal'); if (count($listofprojcontact)) { - $typeforprojectcontact = reset(array_keys($listofprojcontact)); + $tmparray = array_keys($listofprojcontact); + $typeforprojectcontact = reset($tmparray); $result = $project->add_contact($idfortaskuser, $typeforprojectcontact, 'internal'); } } @@ -200,10 +203,10 @@ if ($action == 'addtime' && $user->rights->projet->lire) { if (empty($timetoadd)) { setEventMessages($langs->trans("ErrorTimeSpentIsEmpty"), null, 'errors'); } else { - foreach ($timetoadd as $taskid => $value) { // Loop on each task + foreach ($timetoadd as $tmptaskid => $tmpvalue) { // Loop on each task $updateoftaskdone = 0; - foreach ($value as $key => $val) { // Loop on each day - $amountoadd = $timetoadd[$taskid][$key]; + foreach ($tmpvalue as $key => $val) { // Loop on each day + $amountoadd = $timetoadd[$tmptaskid][$key]; if (!empty($amountoadd)) { $tmpduration = explode(':', $amountoadd); $newduration = 0; @@ -218,8 +221,8 @@ if ($action == 'addtime' && $user->rights->projet->lire) { } if ($newduration > 0) { - $object->fetch($taskid); - $object->progress = GETPOST($taskid.'progress', 'int'); + $object->fetch($tmptaskid); + $object->progress = GETPOST($tmptaskid.'progress', 'int'); $object->timespent_duration = $newduration; $object->timespent_fk_user = $usertoprocess->id; $object->timespent_date = dol_time_plus_duree($firstdaytoshow, $key, 'd'); @@ -238,11 +241,11 @@ if ($action == 'addtime' && $user->rights->projet->lire) { } if (!$updateoftaskdone) { // Check to update progress if no update were done on task. - $object->fetch($taskid); + $object->fetch($tmptaskid); //var_dump($object->progress); - //var_dump(GETPOST($taskid . 'progress', 'int')); exit; - if ($object->progress != GETPOST($taskid.'progress', 'int')) { - $object->progress = GETPOST($taskid.'progress', 'int'); + //var_dump(GETPOST($tmptaskid . 'progress', 'int')); exit; + if ($object->progress != GETPOST($tmptaskid.'progress', 'int')) { + $object->progress = GETPOST($tmptaskid.'progress', 'int'); $result = $object->update($user); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); @@ -323,8 +326,8 @@ $tasksarray = $taskstatic->getTasksArray(0, 0, ($project->id ? $project->id : 0) if ($morewherefilter) { // Get all task without any filter, so we can show total of time spent for not visible tasks $tasksarraywithoutfilter = $taskstatic->getTasksArray(0, 0, ($project->id ? $project->id : 0), $socid, 0, '', $onlyopenedproject, '', ($search_usertoprocessid ? $search_usertoprocessid : 0)); // We want to see all tasks of open project i am allowed to see and that match filter, not only my tasks. Later only mine will be editable later. } -$projectsrole = $taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, 0, ($project->id ? $project->id : 0), 0, $onlyopenedproject); -$tasksrole = $taskstatic->getUserRolesForProjectsOrTasks(0, $usertoprocess, ($project->id ? $project->id : 0), 0, $onlyopenedproject); +$projectsrole = $taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, null, ($project->id ? $project->id : 0), 0, $onlyopenedproject); +$tasksrole = $taskstatic->getUserRolesForProjectsOrTasks(null, $usertoprocess, ($project->id ? $project->id : 0), 0, $onlyopenedproject); //var_dump($tasksarray); //var_dump($projectsrole); //var_dump($taskrole); @@ -347,7 +350,7 @@ $nav = '".dol_print_date(dol_mktime(0, 0, 0, $month, 1, $year), "%Y").", ".$langs->trans(date('F', mktime(0, 0, 0, $month, 10)))." \n"; $nav .= ''.img_next($langs->trans("Next"))."\n"; $nav .= ' '.$form->selectDate(-1, '', 0, 0, 2, "addtime", 1, 1).' '; -$nav .= ' '; +$nav .= ' '; $picto = 'clock'; @@ -397,7 +400,7 @@ $formproject->selectTasks($socid ? $socid : -1, $taskid, 'taskid', 32, 0, '-- '. print ''; print ' '; print $formcompany->selectTypeContact($object, '', 'type', 'internal', 'rowid', 0, 'maxwidth150onsmartphone'); -print ''; +print ''; print ''; print '
    '; @@ -407,7 +410,7 @@ $moreforfilter = ''; // Filter on categories /* -if (! empty($conf->categorie->enabled)) +if (!empty($conf->categorie->enabled)) { require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; $moreforfilter.='
    '; @@ -419,7 +422,7 @@ if (! empty($conf->categorie->enabled)) // If the user can view user other than himself $moreforfilter .= '
    '; $moreforfilter .= '
    '; -$includeonly = 'hierachyme'; +$includeonly = 'hierarchyme'; if (empty($user->rights->user->user->lire)) { $includeonly = array($user->id); } @@ -524,7 +527,7 @@ if (count($tasksarray) > 0) { // Calculate total for all tasks $listofdistinctprojectid = array(); // List of all distinct projects - if (is_array($tasksarraywithoutfilter) && count($tasksarraywithoutfilter)) { + if (!empty($tasksarraywithoutfilter) && is_array($tasksarraywithoutfilter) && count($tasksarraywithoutfilter)) { foreach ($tasksarraywithoutfilter as $tmptask) { $listofdistinctprojectid[$tmptask->fk_project] = $tmptask->fk_project; } diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php index 0152f968c0c..d2cb15791b1 100644 --- a/htdocs/projet/activity/perweek.php +++ b/htdocs/projet/activity/perweek.php @@ -135,7 +135,7 @@ $arrayfields['timeconsumed'] = array('label'=>'TimeConsumed', 'checked'=>1, 'ena /*foreach($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field - if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']); + if (!empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']); }*/ // Definition of fields for list // Extra fields @@ -152,6 +152,7 @@ $search_array_options = array(); $search_array_options_project = $extrafields->getOptionalsFromPost('projet', '', 'search_'); $search_array_options_task = $extrafields->getOptionalsFromPost('projet_task', '', 'search_task_'); +$error = 0; /* @@ -203,11 +204,11 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('assigntask') $error++; } } else { - setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), null, 'errors'); $error++; } if (!GETPOST('type')) { - setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); $error++; } @@ -229,7 +230,8 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('assigntask') $listofprojcontact = $project->liste_type_contact('internal'); if (count($listofprojcontact)) { - $typeforprojectcontact = reset(array_keys($listofprojcontact)); + $tmparray = array_keys($listofprojcontact); + $typeforprojectcontact = reset($tmparray); $result = $project->add_contact($idfortaskuser, $typeforprojectcontact, 'internal'); } } @@ -262,10 +264,10 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('formfilterac if (empty($timetoadd)) { setEventMessages($langs->trans("ErrorTimeSpentIsEmpty"), null, 'errors'); } else { - foreach ($timetoadd as $taskid => $value) { // Loop on each task + foreach ($timetoadd as $tmptaskid => $tmpvalue) { // Loop on each task $updateoftaskdone = 0; - foreach ($value as $key => $val) { // Loop on each day - $amountoadd = $timetoadd[$taskid][$key]; + foreach ($tmpvalue as $key => $val) { // Loop on each day + $amountoadd = $timetoadd[$tmptaskid][$key]; if (!empty($amountoadd)) { $tmpduration = explode(':', $amountoadd); $newduration = 0; @@ -280,10 +282,10 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('formfilterac } if ($newduration > 0) { - $object->fetch($taskid); + $object->fetch($tmptaskid); - if (GETPOSTISSET($taskid.'progress')) { - $object->progress = GETPOST($taskid.'progress', 'int'); + if (GETPOSTISSET($tmptaskid.'progress')) { + $object->progress = GETPOST($tmptaskid.'progress', 'int'); } else { unset($object->progress); } @@ -307,11 +309,11 @@ if ($action == 'addtime' && $user->rights->projet->lire && GETPOST('formfilterac } if (!$updateoftaskdone) { // Check to update progress if no update were done on task. - $object->fetch($taskid); + $object->fetch($tmptaskid); //var_dump($object->progress); - //var_dump(GETPOST($taskid . 'progress', 'int')); exit; - if ($object->progress != GETPOST($taskid.'progress', 'int')) { - $object->progress = GETPOST($taskid.'progress', 'int'); + //var_dump(GETPOST($tmptaskid . 'progress', 'int')); exit; + if ($object->progress != GETPOST($tmptaskid.'progress', 'int')) { + $object->progress = GETPOST($tmptaskid.'progress', 'int'); $result = $object->update($user); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); @@ -414,8 +416,8 @@ $tasksarray = $taskstatic->getTasksArray(0, 0, ($project->id ? $project->id : 0) if ($morewherefilter) { // Get all task without any filter, so we can show total of time spent for not visible tasks $tasksarraywithoutfilter = $taskstatic->getTasksArray(0, 0, ($project->id ? $project->id : 0), $socid, 0, '', $onlyopenedproject, '', ($search_usertoprocessid ? $search_usertoprocessid : 0)); // We want to see all tasks of open project i am allowed to see and that match filter, not only my tasks. Later only mine will be editable later. } -$projectsrole = $taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, 0, ($project->id ? $project->id : 0), 0, $onlyopenedproject); -$tasksrole = $taskstatic->getUserRolesForProjectsOrTasks(0, $usertoprocess, ($project->id ? $project->id : 0), 0, $onlyopenedproject); +$projectsrole = $taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, null, ($project->id ? $project->id : 0), 0, $onlyopenedproject); +$tasksrole = $taskstatic->getUserRolesForProjectsOrTasks(null, $usertoprocess, ($project->id ? $project->id : 0), 0, $onlyopenedproject); //var_dump($tasksarray); //var_dump($projectsrole); //var_dump($taskrole); @@ -446,7 +448,7 @@ $nav = ''.dol_print_date(dol_mktime(0, 0, 0, $first_month, $first_day, $first_year), "%Y").", ".$langs->trans("WeekShort")." ".$week." \n"; $nav .= ''.img_next($langs->trans("Next"))."\n"; $nav .= ' '.$form->selectDate(-1, '', 0, 0, 2, "addtime", 1, 1).' '; -$nav .= ' '; +$nav .= ' '; $picto = 'clock'; @@ -498,7 +500,7 @@ $formproject->selectTasks($socid ? $socid : -1, $taskid, 'taskid', 32, 0, '-- '. print '
    '; print ' '; print $formcompany->selectTypeContact($object, '', 'type', 'internal', 'rowid', 0, 'maxwidth150onsmartphone'); -print ''; +print ''; print '
    '; print '
    '; @@ -544,7 +546,7 @@ $moreforfilter = ''; // Filter on categories /* - if (! empty($conf->categorie->enabled)) + if (!empty($conf->categorie->enabled)) { require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; $moreforfilter.='
    '; @@ -747,7 +749,7 @@ if (count($tasksarray) > 0) { // Calculate total for all tasks $listofdistinctprojectid = array(); // List of all distinct projects - if (is_array($tasksarraywithoutfilter) && count($tasksarraywithoutfilter)) { + if (!empty($tasksarraywithoutfilter) && is_array($tasksarraywithoutfilter) && count($tasksarraywithoutfilter)) { foreach ($tasksarraywithoutfilter as $tmptask) { $listofdistinctprojectid[$tmptask->fk_project] = $tmptask->fk_project; } diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php index 36ef3a501ff..20a4f01bc82 100644 --- a/htdocs/projet/admin/project.php +++ b/htdocs/projet/admin/project.php @@ -27,6 +27,7 @@ * \brief Page to setup project module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; @@ -54,10 +55,10 @@ $type = 'project'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstproject = GETPOST('maskconstproject', 'alpha'); + $maskconstproject = GETPOST('maskconstproject', 'aZ09'); $maskproject = GETPOST('maskproject', 'alpha'); - if ($maskconstproject) { + if ($maskconstproject && preg_match('/_MASK$/', $maskconstproject)) { $res = dolibarr_set_const($db, $maskconstproject, $maskproject, 'chaine', 0, '', $conf->entity); } @@ -73,10 +74,10 @@ if ($action == 'updateMask') { } if ($action == 'updateMaskTask') { - $maskconstmasktask = GETPOST('maskconsttask', 'alpha'); + $maskconstmasktask = GETPOST('maskconsttask', 'aZ09'); $masktaskt = GETPOST('masktask', 'alpha'); - if ($maskconstmasktask) { + if ($maskconstmasktask && preg_match('/_MASK$/', $maskconstmasktask)) { $res = dolibarr_set_const($db, $maskconstmasktask, $masktaskt, 'chaine', 0, '', $conf->entity); } diff --git a/htdocs/projet/admin/project_extrafields.php b/htdocs/projet/admin/project_extrafields.php index bb586b6a100..f2a17d3f150 100644 --- a/htdocs/projet/admin/project_extrafields.php +++ b/htdocs/projet/admin/project_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of project */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,13 +81,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print "
    "; diff --git a/htdocs/projet/admin/project_task_extrafields.php b/htdocs/projet/admin/project_task_extrafields.php index 695ef3f57a6..731ac3629ae 100644 --- a/htdocs/projet/admin/project_task_extrafields.php +++ b/htdocs/projet/admin/project_task_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of project */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,13 +81,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print "
    "; diff --git a/htdocs/projet/admin/website.php b/htdocs/projet/admin/website.php index 37b858757ca..3be04a9843c 100644 --- a/htdocs/projet/admin/website.php +++ b/htdocs/projet/admin/website.php @@ -24,6 +24,7 @@ * \brief File of main public page for project module to catch lead */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -158,7 +159,7 @@ if (!empty($conf->global->PROJECT_ENABLE_PUBLIC)) { print '
    '; //print $langs->trans('FollowingLinksArePublic').'
    '; print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').'
    '; - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $entity_qr = '?entity='.$conf->entity; } else { $entity_qr = ''; diff --git a/htdocs/projet/info.php b/htdocs/projet/agenda.php similarity index 69% rename from htdocs/projet/info.php rename to htdocs/projet/agenda.php index 19897bf2859..65d73751423 100644 --- a/htdocs/projet/info.php +++ b/htdocs/projet/agenda.php @@ -17,11 +17,12 @@ */ /** - * \file htdocs/projet/info.php + * \file htdocs/projet/agenda.php * \ingroup project * \brief Page with events on project */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; @@ -58,7 +59,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -109,8 +110,8 @@ if ($id > 0 || !empty($ref)) { } $object->info($object->id); } - -$title = $langs->trans("Project").' - '.$object->ref.' '.$object->name; +$agenda = (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) ? '/'.$langs->trans("Agenda") : ''; +$title = $langs->trans('Events').$agenda.' - '.$object->ref.' '.$object->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->ref.' '.$object->name.' - '.$langs->trans("Info"); } @@ -131,7 +132,7 @@ $morehtmlref = '
    '; $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= '
    '; @@ -165,18 +166,40 @@ if ($permok) { } -//print '
    '; -$morehtmlcenter = ''; -if (isModEnabled('agenda')) { - $addActionBtnRight = !empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create); - $morehtmlcenter .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'&socid='.$object->socid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $addActionBtnRight); -} //print '
    '; if (!empty($object->id)) { print '
    '; + //print '
    '; + $morehtmlcenter = ''; + + // Show link to change view in message + $messagingUrl = DOL_URL_ROOT.'/projet/messaging.php?id='.$object->id; + $morehtmlcenter .= dolGetButtonTitle($langs->trans('ShowAsConversation'), '', 'fa fa-comments imgforviewmode', $messagingUrl, '', 1); + + // Show link to change view in agenda + $messagingUrl = DOL_URL_ROOT.'/projet/info.php?id='.$object->id; + $morehtmlcenter .= dolGetButtonTitle($langs->trans('MessageListViewType'), '', 'fa fa-bars imgforviewmode', $messagingUrl, '', 2); + + + // // Show link to send an email (if read and not closed) + // $btnstatus = $object->status < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; + // $url = 'card.php?track_id='.$object->track_id.'&action=presend_addmessage&mode=init&private_message=0&send_email=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?track_id='.$object->track_id).'#formmailbeforetitle'; + // $morehtmlright .= dolGetButtonTitle($langs->trans('SendMail'), '', 'fa fa-paper-plane', $url, 'email-title-button', $btnstatus); + + // // Show link to add a private message (if read and not closed) + // $btnstatus = $object->status < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; + // $url = 'card.php?track_id='.$object->track_id.'&action=presend_addmessage&mode=init&backtopage='.urlencode($_SERVER["PHP_SELF"].'?track_id='.$object->track_id).'#formmailbeforetitle'; + // $morehtmlright .= dolGetButtonTitle($langs->trans('TicketAddMessage'), '', 'fa fa-comment-dots', $url, 'add-new-ticket-title-button', $btnstatus); + + // Show link to add event + if (isModEnabled('agenda')) { + $addActionBtnRight = !empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create'); + $morehtmlcenter .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'&socid='.$object->socid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $addActionBtnRight); + } + $param = '&id='.$object->id; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.$contextpage; diff --git a/htdocs/projet/ajax/projects.php b/htdocs/projet/ajax/projects.php index d933e6f55a0..03d118dc9b9 100644 --- a/htdocs/projet/ajax/projects.php +++ b/htdocs/projet/ajax/projects.php @@ -38,13 +38,11 @@ if (!defined('NOREQUIREAJAX')) { if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} -if (empty($_GET['keysearch']) && !defined('NOREQUIREHTML')) { +if (!defined('NOREQUIREHTML')) { define('NOREQUIREHTML', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; $htmlname = GETPOST('htmlname', 'aZ09'); @@ -64,7 +62,7 @@ dol_syslog("Call ajax projet/ajax/projects.php"); require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -top_httphead(); +top_httphead('application/json'); if (empty($htmlname) && !GETPOST('mode', 'aZ09')) { return; diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php index 813dccf8a73..3dc116d9931 100644 --- a/htdocs/projet/card.php +++ b/htdocs/projet/card.php @@ -23,6 +23,7 @@ * \brief Project card */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -36,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; // Load translation files required by the page $langsLoad=array('projects', 'companies'); -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langsLoad[]='eventorganization'; } @@ -50,17 +51,23 @@ $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); $backtopagejsfields = GETPOST('backtopagejsfields', 'alpha'); $cancel = GETPOST('cancel', 'alpha'); $confirm = GETPOST('confirm', 'aZ09'); -$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09'); + +if (!empty($backtopagejsfields)) { + $tmpbacktopagejsfields = explode(':', $backtopagejsfields); + $dol_openinpopup = $tmpbacktopagejsfields[0]; +} $status = GETPOST('status', 'int'); $opp_status = GETPOST('opp_status', 'int'); -$opp_percent = price2num(GETPOST('opp_percent', 'alpha')); -$objcanvas = GETPOST("objcanvas", "alpha"); -$comefromclone = GETPOST("comefromclone", "alpha"); +$opp_percent = price2num(GETPOST('opp_percent', 'alphanohtml')); +$objcanvas = GETPOST("objcanvas", "alphanohtml"); +$comefromclone = GETPOST("comefromclone", "alphanohtml"); +$date_start = dol_mktime(0, 0, 0, GETPOST('projectstartmonth', 'int'), GETPOST('projectstartday', 'int'), GETPOST('projectstartyear', 'int')); +$date_end = dol_mktime(0, 0, 0, GETPOST('projectendmonth', 'int'), GETPOST('projectendday', 'int'), GETPOST('projectendyear', 'int')); +$date_start_event = dol_mktime(GETPOST('date_start_eventhour', 'int'), GETPOST('date_start_eventmin', 'int'), GETPOST('date_start_eventsec', 'int'), GETPOST('date_start_eventmonth', 'int'), GETPOST('date_start_eventday', 'int'), GETPOST('date_start_eventyear', 'int')); +$date_end_event = dol_mktime(GETPOST('date_end_eventhour', 'int'), GETPOST('date_end_eventmin', 'int'), GETPOST('date_end_eventsec', 'int'), GETPOST('date_end_eventmonth', 'int'), GETPOST('date_end_eventday', 'int'), GETPOST('date_end_eventyear', 'int')); +$location = GETPOST('location', 'alphanohtml'); -if ($id == '' && $ref == '' && ($action != "create" && $action != "add" && $action != "update" && !GETPOST("cancel"))) { - accessforbidden(); -} $mine = GETPOST('mode') == 'mine' ? 1 : 0; //if (! $user->rights->projet->all->lire) $mine=1; // Special for projects @@ -87,14 +94,15 @@ if ($id > 0 || !empty($ref)) { // fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); -$date_start = dol_mktime(0, 0, 0, GETPOST('projectstartmonth', 'int'), GETPOST('projectstartday', 'int'), GETPOST('projectstartyear', 'int')); -$date_end = dol_mktime(0, 0, 0, GETPOST('projectendmonth', 'int'), GETPOST('projectendday', 'int'), GETPOST('projectendyear', 'int')); - // Security check $socid = GETPOST('socid', 'int'); //if ($user->socid > 0) $socid = $user->socid; // For external user, no check is done on company because readability is managed by public status of project and assignement. restrictedArea($user, 'projet', $object->id, 'projet&project'); +if ($id == '' && $ref == '' && ($action != "create" && $action != "add" && $action != "update" && !GETPOST("cancel"))) { + accessforbidden(); +} + $permissiondellink = $user->rights->projet->creer; // Used by the include of actions_dellink.inc.php @@ -186,6 +194,9 @@ if (empty($reshook)) { $object->date_c = dol_now(); $object->date_start = $date_start; $object->date_end = $date_end; + $object->date_start_event = $date_start_event; + $object->date_end_event = $date_end_event; + $object->location = $location; $object->statut = $status; $object->opp_status = $opp_status; $object->opp_percent = $opp_percent; @@ -280,6 +291,9 @@ if (empty($reshook)) { $object->public = GETPOST('public', 'alpha'); $object->date_start = (!GETPOST('projectstart')) ? '' : $date_start; $object->date_end = (!GETPOST('projectend')) ? '' : $date_end; + $object->date_start_event = (!GETPOST('date_start_event')) ? '' : $date_start_event; + $object->date_end_event = (!GETPOST('date_end_event')) ? '' : $date_end_event; + $object->location = $location; if (GETPOSTISSET('opp_amount')) { $object->opp_amount = price2num(GETPOST('opp_amount', 'alpha')); } @@ -390,7 +404,7 @@ if (empty($reshook)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $langs->load("other"); - $upload_dir = $conf->projet->dir_output; + $upload_dir = $conf->project->dir_output; $file = $upload_dir.'/'.GETPOST('file'); $ret = dol_delete_file($file, 0, 0, 0, $object); if ($ret) { @@ -483,17 +497,18 @@ $title = $langs->trans("Project").' - '.$object->ref.(!empty($object->thirdparty if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE)) { $title = $object->ref.(!empty($object->thirdparty->name) ? ' - '.$object->thirdparty->name : '').(!empty($object->title) ? ' - '.$object->title : ''); } + $help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos|DE:Modul_Projekte"; llxHeader("", $title, $help_url); $titleboth = $langs->trans("LeadsOrProjects"); $titlenew = $langs->trans("NewLeadOrProject"); // Leads and opportunities by default -if (empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { +if (!getDolGlobalInt('PROJECT_USE_OPPORTUNITIES')) { $titleboth = $langs->trans("Projects"); $titlenew = $langs->trans("NewProject"); } -if ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) { // 2 = leads only +if (getDolGlobalInt('PROJECT_USE_OPPORTUNITIES') == 2) { // 2 = leads only $titleboth = $langs->trans("Leads"); $titlenew = $langs->trans("NewLead"); } @@ -514,7 +529,9 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; print ''; print ''; + print ''; print ''; + print ''; print dol_get_fiche_head(); @@ -549,20 +566,22 @@ if ($action == 'create' && $user->rights->projet->creer) { // Ref $suggestedref = (GETPOST("ref") ? GETPOST("ref") : $defaultref); print '
    '; // Label - print ''; + print ''; // Usage (opp, task, bill time, ...) - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; print ''; print ''; @@ -625,7 +699,7 @@ if ($action == 'create' && $user->rights->projet->creer) { // TODO @LDR Implement this if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { $tmpbacktopagejsfields = 'addthirdparty:socid,search_socid'; - print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', $tmpbacktopagejsfields); + print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', '', $tmpbacktopagejsfields); } else { print ' '.$newbutton.''; } @@ -666,41 +740,54 @@ if ($action == 'create' && $user->rights->projet->creer) { } print ''; - // Date start - print ''; - - // Date end - print ''; - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { // Opportunity status print ''; print ''; // Opportunity probability - print ''; - print ''; print ''; // Opportunity amount print ''; - print ''; + print ''; print ''; } // Budget - print ''; - print ''; + print ''; + print ''; print ''; + // Date project + print ''; + + if (isModEnabled('eventorganization')) { + // Date event + print ''; + + // Location + print ''; + print ''; + print ''; + } + // Description print ''; print ''; - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { // Categories print ''; } @@ -948,32 +1105,43 @@ if ($action == 'create' && $user->rights->projet->creer) { // Opportunity status print ''; print ''; - print ''; + print '
    '; + print $formproject->selectOpportunityStatus('opp_status', $object->opp_status, 1, 0, 0, 0, 'inline-block valignmiddle', 1, 1); // Opportunity probability - print '
    '; - print ''; print ''; // Opportunity amount print ''; - print ''; print ''; } - // Date start - print ''; + print ''; + print ''; + + // Date project + print ''; - // Date end - print ''; + if (isModEnabled('eventorganization')) { + // Date event + print ''; - // Budget - print ''; - print ''; - print ''; + // Location + print ''; + print ''; + print ''; + } // Description print ''; print ''; @@ -1033,7 +1203,7 @@ if ($action == 'create' && $user->rights->projet->creer) { // Title $morehtmlref .= dol_escape_htmltag($object->title); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '; + $morehtmlref .= '
    '; if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { $morehtmlref .= $object->thirdparty->getNomUrl(1, 'project'); } @@ -1054,7 +1224,7 @@ if ($action == 'create' && $user->rights->projet->creer) { print '
    '; -print $langs->trans("FinancialCommitment"); -print '
    '.$langs->trans("Term").'
    '.$i.''.dol_print_date(dol_time_plus_duree($object->datestart, $i - 1, 'm'), 'day').''.price($insurance + (($i == 1) ? $regulInsurance : 0), 0, '', 1, -1, -1, $conf->currency).''.price($int, 0, '', 1, -1, -1, $conf->currency).''.price($cap_rest).''.price($insurance + (($i == 1) ? $regulInsurance : 0), 0, '', 1, -1, -1, $conf->currency).''.price($int, 0, '', 1, -1, -1, $conf->currency).''.price($cap_rest).'
    '.$i.''.dol_print_date($line->datep, 'day').''.price($insu, 0, '', 1, -1, -1, $conf->currency).''.price($int, 0, '', 1, -1, -1, $conf->currency).''.price($insu, 0, '', 1, -1, -1, $conf->currency).''.price($int, 0, '', 1, -1, -1, $conf->currency).''.price($mens, 0, '', 1, -1, -1, $conf->currency).''.price($mens, 0, '', 1, -1, -1, $conf->currency).''.price($cap_rest, 0, '', 1, -1, -1, $conf->currency).''.price($cap_rest, 0, '', 1, -1, -1, $conf->currency).''; if (!empty($line->fk_bank)) { print $langs->trans('Paid'); @@ -316,7 +316,7 @@ if ($object->nbterm > 0 && count($echeances->lines) == 0) { print ' ('.img_object($langs->trans("Payment"), "payment").' '.$line->fk_payment_loan.')'; } } elseif (!$printed) { - print ''.$langs->trans('DoPayment').''; + print ''.$langs->trans('DoPayment').''; $printed = true; } print '
    '.$langs->trans("SupplierRef").''; if ($rowid) { print ''; - print ''; + print ''; } else { - print ''; + print ''; } print '
    '.$langs->trans("Availability").''; $form->selectAvailabilityDelay($object->fk_availability, "oselDispo", 1); @@ -572,7 +591,7 @@ if ($id > 0 || $ref) { print '
    '.$form->textwithpicto($langs->trans("PackagingForThisProduct"), $langs->trans("PackagingForThisProductDesc")).'
    '.$langs->trans("PriceMode").''; $price_expression = new PriceExpression($db); @@ -653,7 +672,7 @@ if ($id > 0 || $ref) { '; } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Currency print '
    '.$langs->trans("Currency").''; @@ -662,7 +681,7 @@ if ($id > 0 || $ref) { $currencycodetouse = $conf->currency; } print $form->selectMultiCurrency($currencycodetouse, "multicurrency_code", 1); - print '   '.$langs->trans("CurrencyRate").' '; + print '     '.$langs->trans("CurrencyRate").' '; print ''; print '
    '.$langs->trans('BarcodeType').''.$langs->trans('GencodBuyPrice').''; - print $formbarcode->selectBarcodeType(($rowid ? $object->supplier_fk_barcode_type : getDolGlobalint("PRODUIT_DEFAULT_BARCODE_TYPE")), 'fk_barcode_type', 1); - print '
    '.$langs->trans('BarcodeValue').''.img_picto('', 'barcode', 'class="pictofixedwidth"').'
    '.$langs->trans("Charges").''; @@ -806,7 +820,7 @@ END; print ''.$langs->trans('ProductSupplierDescription').''; - $doleditor = new DolEditor('supplier_description', $object->desc_supplier, '', 160, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_4, '90%'); + $doleditor = new DolEditor('supplier_description', $object->desc_supplier, '', 160, 'dolibarr_details', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_DETAILS'), ROWS_4, '90%'); $doleditor->Create(); print '
    '; print $productfourn->fourn_multicurrency_price ? ''.price($productfourn->fourn_multicurrency_price).'' : ""; @@ -1135,7 +1171,7 @@ END; } // Currency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print $productfourn->fourn_multicurrency_code ? currency_name($productfourn->fourn_multicurrency_code) : ''; print ''; if ($usercancreate) { - print ''.img_edit().""; + print ''.img_edit().""; print '   '; - print ''.img_picto($langs->trans("Remove"), 'delete').''; + print ''.img_picto($langs->trans("Remove"), 'delete').''; } print '
    '.$langs->trans("None").'
    '; - if (isset($objp->price_base_type) && $objp->price_base_type == 'TTC') { - print price($objp->price_ttc).' '.$langs->trans("TTC"); - } else { - print price($objp->price).' '.$langs->trans("HT"); + if ($usercancreadprice) { + if (isset($objp->price_base_type) && $objp->price_base_type == 'TTC') { + print price($objp->price_ttc).' '.$langs->trans("TTC"); + } else { + print price($objp->price).' '.$langs->trans("HT"); + } } print '
    '.$langs->trans("Warehouse").''.$langs->trans("Product").''; print $langs->trans("Batch"); print ''; print $form->select_produits((GETPOSTISSET('fk_product') ? GETPOST('fk_product', 'int') : $object->fk_product), 'fk_product', '', 0, 0, -1, 2, '', 0, null, 0, '1', 0, 'maxwidth300'); print ''; print ''; print ''; - print ''; - print ''; print ''; print ''; + print ''; print ''; print ''; + print ''; + print ''; + print ''; @@ -974,6 +973,8 @@ if ($object->id > 0) { $sql .= ' id.fk_product, id.batch, id.qty_stock, id.qty_view, id.qty_regulated, id.fk_movement, id.pmp_real, id.pmp_expected'; $sql .= ' FROM '.MAIN_DB_PREFIX.'inventorydet as id'; $sql .= ' WHERE id.fk_inventory = '.((int) $object->id); + $sql .= $db->order('id.rowid', 'ASC'); + $sql .= $db->plimit($limit, $offset); $cacheOfProducts = array(); $cacheOfWarehouses = array(); @@ -983,6 +984,10 @@ if ($object->id > 0) { if ($resql) { $num = $db->num_rows($resql); + if (!empty($limit != 0) || $num > $limit || $page) { + print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num >= $limit), '', '', $limit); + } + $i = 0; $hasinput = false; $totalarray = array(); @@ -1021,7 +1026,7 @@ if ($object->id > 0) { print $product_static->getNomUrl(1).' - '.$product_static->label; print ''; $batch_static = new Productlot($db); $res = $batch_static->fetch(0, $product_static->id, $obj->batch); @@ -1038,7 +1043,7 @@ if ($object->id > 0) { $valuetoshow = $obj->qty_stock; // For inventory not yet close, we overwrite with the real value in stock now if ($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_VALIDATED) { - if (!empty($conf->productbatch->enabled) && $product_static->hasbatch()) { + if (isModEnabled('productbatch') && $product_static->hasbatch()) { $valuetoshow = $product_static->stock_warehouse[$obj->fk_warehouse]->detail_batch[$obj->batch]->qty; } else { $valuetoshow = $product_static->stock_warehouse[$obj->fk_warehouse]->real; @@ -1057,9 +1062,9 @@ if ($object->id > 0) { $hasinput = true; } - if (! empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { + if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { //PMP Expected - if (! empty($obj->pmp_expected)) $pmp_expected = $obj->pmp_expected; + if (!empty($obj->pmp_expected)) $pmp_expected = $obj->pmp_expected; else $pmp_expected = $product_static->pmp; $pmp_valuation = $pmp_expected * $valuetoshow; print ''; @@ -1081,7 +1086,7 @@ if ($object->id > 0) { print ''; - if (! empty($obj->pmp_real)) $pmp_real = $obj->pmp_real; + if (!empty($obj->pmp_real)) $pmp_real = $obj->pmp_real; else $pmp_real = $product_static->pmp; $pmp_valuation_real = $pmp_real * $qty_view; print ''; @@ -1103,14 +1108,14 @@ if ($object->id > 0) { // Picto delete line print ''; - print ''.img_delete().''; + print ''.img_delete().''; $qty_tmp = price2num(GETPOST("id_".$obj->rowid."_input_tmp", 'MS')) >= 0 ? GETPOST("id_".$obj->rowid."_input_tmp") : $qty_view; print ''; print ''; @@ -1126,7 +1131,7 @@ if ($object->id > 0) { //PMP Real print ''; - if (! empty($obj->pmp_real)) $pmp_real = $obj->pmp_real; + if (!empty($obj->pmp_real)) $pmp_real = $obj->pmp_real; else $pmp_real = $product_static->pmp; $pmp_valuation_real = $pmp_real * $obj->qty_view; print price($pmp_real); @@ -1159,9 +1164,9 @@ if ($object->id > 0) { } if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { print '
    '.$langs->trans("Total").''.$langs->trans("Total").''.price($totalExpectedValuation).''.price($totalRealValuation).''.price($totalRealValuation).'
    '.$langs->trans("Ref").''; - print ' '.$form->textwithpicto('', $langs->trans("YouCanCompleteRef", $suggestedref)); + if ($suggestedref) { + print ' '.$form->textwithpicto('', $langs->trans("YouCanCompleteRef", $suggestedref)); + } print '
    '.$langs->trans("ProjectLabel").'
    '.$langs->trans("Label").'
    '; print $langs->trans("Usage"); print ''; if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { - print ' '; + print ' '; $htmltext = $langs->trans("ProjectFollowOpportunity"); print ''; print ''; print '
    '; } if (empty($conf->global->PROJECT_HIDE_TASKS)) { - print ' '; + print ' '; $htmltext = $langs->trans("ProjectFollowTasks"); print ''; + print ''; print '
    '; } if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) { - print ' '; + print ' '; $htmltext = $langs->trans("ProjectBillTimeDescription"); print ''; + print ''; print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print ' '; + if (isModEnabled('eventorganization')) { + print ' '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print ''; + print ''; } print '
    '.$langs->trans("DateStart").''; - print $form->selectDate(($date_start ? $date_start : ''), 'projectstart', 0, 0, 0, '', 1, 0); - print '
    '.$langs->trans("DateEnd").''; - print $form->selectDate(($date_end ? $date_end : -1), 'projectend', 0, 0, 0, '', 1, 0); - print '
    '.$langs->trans("OpportunityStatus").''; print $formproject->selectOpportunityStatus('opp_status', GETPOSTISSET('opp_status') ? GETPOST('opp_status') : $object->opp_status, 1, 0, 0, 0, '', 0, 1); - print '
    '.$langs->trans("OpportunityProbability").' %'; + print ' %'; print ''; print '
    '.$langs->trans("OpportunityAmount").''; + print ' '.$langs->getCurrencySymbol($conf->currency); + print '
    '.$langs->trans("Budget").'
    '.$langs->trans("Budget").''; + print ' '.$langs->getCurrencySymbol($conf->currency); + print '
    '.$langs->trans("Date").(isModEnabled('eventorganization') ? ' ('.$langs->trans("Project").')' : '').''; + print $form->selectDate(($date_start ? $date_start : ''), 'projectstart', 0, 0, 0, '', 1, 0); + print ' '.$langs->trans("to").' '; + print $form->selectDate(($date_end ? $date_end : -1), 'projectend', 0, 0, 0, '', 1, 0); + print '
    '.$langs->trans("Date").' ('.$langs->trans("Event").')'; + print $form->selectDate(($date_start_event ? $date_start_event : -1), 'date_start_event', 1, 1, 1, '', 1, 0); + print ' '.$langs->trans("to").' '; + print $form->selectDate(($date_end_event ? $date_end_event : -1), 'date_end_event', 1, 1, 1, '', 1, 0); + print '
    '.$langs->trans("Location").'
    '.$langs->trans("Description").''; @@ -708,7 +795,7 @@ if ($action == 'create' && $user->rights->projet->creer) { $doleditor->Create(); print '
    '.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_PROJECT, '', 'parent', 64, 0, 1); @@ -733,7 +820,8 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; - // Change probability from status + // Change probability from status or role of project + // Set also dependencies between use taks and bill time print ''; print '
    '; @@ -880,18 +977,78 @@ if ($action == 'create' && $user->rights->projet->creer) { print 'usage_task ? ' checked="checked"' : '')) . '"> '; $htmltext = $langs->trans("ProjectFollowTasks"); print ''; + print ''; print '
    '; } if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) { print 'usage_bill_time ? ' checked="checked"' : '')) . '"> '; $htmltext = $langs->trans("ProjectBillTimeDescription"); print ''; + print ''; print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')) . '"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print ''; + print ''; } print '
    '.$langs->trans("OpportunityStatus").''; - print $formproject->selectOpportunityStatus('opp_status', $object->opp_status, 1, 0, 0, 0, 'inline-block valignmiddle', 0, 1); - print ''; - print '
    '.$langs->trans("OpportunityProbability").' %'; - print ''; + print ' %'; + print ''; + print ''; + + print ''; + print '
    '.$langs->trans("OpportunityAmount").''; + print ''; print $langs->getCurrencySymbol($conf->currency); print '
    '.$langs->trans("DateStart").''; + // Budget + print '
    '.$langs->trans("Budget").''; + print $langs->getCurrencySymbol($conf->currency); + print '
    '.$langs->trans("Date").(isModEnabled('eventorganization') ? ' ('.$langs->trans("Project").')' : '').''; print $form->selectDate($object->date_start ? $object->date_start : -1, 'projectstart', 0, 0, 0, '', 1, 0); + print ' '.$langs->trans("to").' '; + print $form->selectDate($object->date_end ? $object->date_end : -1, 'projectend', 0, 0, 0, '', 1, 0); print '     rights->projet->creer) { print '/>'; print '
    '.$langs->trans("DateEnd").''; - print $form->selectDate($object->date_end ? $object->date_end : -1, 'projectend', 0, 0, 0, '', 1, 0); - print '
    '.$langs->trans("Date").' ('.$langs->trans("Event").')'; + print $form->selectDate(($date_start_event ? $date_start_event : ($object->date_start_event ? $object->date_start_event : -1)), 'date_start_event', 1, 1, 1, '', 1, 0); + print ' '.$langs->trans("to").' '; + print $form->selectDate(($date_end_event ? $date_end_event : ($object->date_end_event ? $object->date_end_event : -1)), 'date_end_event', 1, 1, 1, '', 1, 0); + print '
    '.$langs->trans("Budget").''; - print $langs->getCurrencySymbol($conf->currency); - print '
    '.$langs->trans("Location").'
    '.$langs->trans("Description").''; - $doleditor = new DolEditor('description', $object->description, '', 90, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_3, '90%'); + $doleditor = new DolEditor('description', $object->description, '', 90, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_3, '90%'); $doleditor->Create(); print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -1078,7 +1248,7 @@ if ($action == 'create' && $user->rights->projet->creer) { print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -1104,14 +1274,13 @@ if ($action == 'create' && $user->rights->projet->creer) { if ($code) { print $langs->trans("OppStatus".$code); } - print ''; // Opportunity percent - print ''; + print ''; // Opportunity Amount print ''; - // Budget print ''; + // Date start - end project + print ''; + // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; @@ -1192,6 +1361,25 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; + // Set also dependencies between use taks and bill time + print ''; + // Change probability from status if (!empty($conf->use_javascript_ajax) && !empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { // Default value to close or not when we set opp to 'WON'. @@ -1232,19 +1420,23 @@ if ($action == 'create' && $user->rights->projet->creer) { } /* Change percent with default percent (defaultpercent) if new status (defaultpercent) is higher than current (jQuery("#opp_percent").val()) */ - console.log("oldpercent="+oldpercent); if (oldpercent != \'\' && (parseFloat(defaultpercent) < parseFloat(oldpercent))) { - if (jQuery("#opp_percent").val() != \'\' && oldpercent != \'\') jQuery("#oldopppercent").text(\' - '.dol_escape_js($langs->transnoentities("PreviousValue")).': \'+oldpercent+\' %\'); - if (parseFloat(oldpercent) != 100) { jQuery("#opp_percent").val(oldpercent); } - else { jQuery("#opp_percent").val(defaultpercent); } + console.log("oldpercent="+oldpercent+" defaultpercent="+defaultpercent+" def < old"); + if (jQuery("#opp_percent").val() != \'\' && oldpercent != \'\') { + jQuery("#oldopppercent").text(\' - '.dol_escape_js($langs->transnoentities("PreviousValue")).': \'+price2numjs(oldpercent)+\' %\'); + } + + if (parseFloat(oldpercent) != 100 && elemcode != \'LOST\') { jQuery("#opp_percent").val(oldpercent); } + else { jQuery("#opp_percent").val(price2numjs(defaultpercent)); } } else { + console.log("oldpercent="+oldpercent+" defaultpercent="+defaultpercent); if ((parseFloat(jQuery("#opp_percent").val()) < parseFloat(defaultpercent))); { - if (jQuery("#opp_percent").val() != \'\' && oldpercent != \'\') jQuery("#oldopppercent").text(\' - '.dol_escape_js($langs->transnoentities("PreviousValue")).': \'+oldpercent+\' %\'); - jQuery("#opp_percent").val(defaultpercent); + if (jQuery("#opp_percent").val() != \'\' && oldpercent != \'\') jQuery("#oldopppercent").text(\' - '.dol_escape_js($langs->transnoentities("PreviousValue")).': \'+price2numjs(oldpercent)+\' %\'); + jQuery("#opp_percent").val(price2numjs(defaultpercent)); } } } @@ -1266,7 +1458,7 @@ if ($action == 'create' && $user->rights->projet->creer) { if (empty($reshook)) { if ($action != "edit" && $action != 'presend') { // Create event - /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a + /*if (isModEnabled('agenda') && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a // "workflow" action so should appears somewhere else on // page. { @@ -1276,14 +1468,27 @@ if ($action == 'create' && $user->rights->projet->creer) { // Send if (empty($user->socid)) { if ($object->statut != Project::STATUS_CLOSED) { - print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?action=presend&token='.newToken().'&id='.$object->id.'&mode=init#formmailbeforetitle', ''); + print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?action=presend&token='.newToken().'&id='.$object->id.'&mode=init#formmailbeforetitle', ''); } } + // Accounting Report + /* + $accouting_module_activated = isModEnabled('comptabilite') || isModEnabled('accounting'); + if ($accouting_module_activated && $object->statut != Project::STATUS_DRAFT) { + $start = dol_getdate((int) $object->date_start); + $end = dol_getdate((int) $object->date_end); + $url = DOL_URL_ROOT.'/compta/accounting-files.php?projectid='.$object->id; + if (!empty($object->date_start)) $url .= '&date_startday='.$start['mday'].'&date_startmonth='.$start['mon'].'&date_startyear='.$start['year']; + if (!empty($object->date_end)) $url .= '&date_stopday='.$end['mday'].'&date_stopmonth='.$end['mon'].'&date_stopyear='.$end['year']; + print dolGetButtonAction('', $langs->trans('ExportAccountingReportButtonLabel'), 'default', $url, ''); + } + */ + // Modify if ($object->statut != Project::STATUS_CLOSED && $user->rights->projet->creer) { if ($userWrite > 0) { - print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'&id='.$object->id, ''); + print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'&id='.$object->id, ''); } else { print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('Modify'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } @@ -1316,50 +1521,56 @@ if ($action == 'create' && $user->rights->projet->creer) { } } - // Add button to create objects from project + if (!empty($conf->global->PROJECT_SHOW_CREATE_OBJECT_BUTTON)) { - if (!empty($conf->propal->enabled) && $user->rights->propal->creer) { + print'"; } - // Clone if ($user->rights->projet->creer) { if ($userWrite > 0) { @@ -1372,7 +1583,7 @@ if ($action == 'create' && $user->rights->projet->creer) { // Delete if ($user->rights->projet->supprimer || ($object->statut == Project::STATUS_DRAFT && $user->rights->projet->creer)) { if ($userDelete > 0 || ($object->statut == Project::STATUS_DRAFT && $user->rights->projet->creer)) { - print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id, ''); + print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id, ''); } else { print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('Delete'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } @@ -1394,7 +1605,7 @@ if ($action == 'create' && $user->rights->projet->creer) { * Generated documents */ $filename = dol_sanitizeFileName($object->ref); - $filedir = $conf->projet->dir_output."/".dol_sanitizeFileName($object->ref); + $filedir = $conf->project->dir_output."/".dol_sanitizeFileName($object->ref); $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id; $genallowed = ($user->rights->projet->lire && $userAccess > 0); $delallowed = ($user->rights->projet->creer && $userWrite > 0); @@ -1418,7 +1629,7 @@ if ($action == 'create' && $user->rights->projet->creer) { // Presend form $modelmail = 'project'; $defaulttopic = 'SendProjectRef'; - $diroutput = $conf->projet->dir_output; + $diroutput = $conf->project->dir_output; $autocopy = 'MAIN_MAIL_AUTOCOPY_PROJECT_TO'; // used to know the automatic BCC to add $trackid = 'proj'.$object->id; diff --git a/htdocs/projet/class/api_projects.class.php b/htdocs/projet/class/api_projects.class.php index 6a522346210..8cbb3949cd5 100644 --- a/htdocs/projet/class/api_projects.class.php +++ b/htdocs/projet/class/api_projects.class.php @@ -29,7 +29,6 @@ */ class Projects extends DolibarrApi { - /** * @var array $FIELDS Mandatory fields, checked when create and update object */ @@ -267,10 +266,9 @@ class Projects extends DolibarrApi * * @param int $id Id of project * @param int $userid Id of user (0 = connected user) + * @return array * * @url GET {id}/roles - * - * @return int */ public function getRoles($id, $userid = 0) { @@ -296,11 +294,12 @@ class Projects extends DolibarrApi $userp = new User($this->db); $userp->fetch($userid); } - $this->project->roles = $taskstatic->getUserRolesForProjectsOrTasks($userp, 0, $id, 0); + $this->project->roles = $taskstatic->getUserRolesForProjectsOrTasks($userp, null, $id, 0); $result = array(); foreach ($this->project->roles as $line) { array_push($result, $this->_cleanObjectDatas($line)); } + return $result; } diff --git a/htdocs/projet/class/api_tasks.class.php b/htdocs/projet/class/api_tasks.class.php index 0eaf8654421..eb7e1579261 100644 --- a/htdocs/projet/class/api_tasks.class.php +++ b/htdocs/projet/class/api_tasks.class.php @@ -296,7 +296,7 @@ class Tasks extends DolibarrApi $usert = new User($this->db); $usert->fetch($userid); } - $this->task->roles = $this->task->getUserRolesForProjectsOrTasks(0, $usert, 0, $id); + $this->task->roles = $this->task->getUserRolesForProjectsOrTasks(null, $usert, 0, $id); $result = array(); foreach ($this->task->roles as $line) { array_push($result, $this->_cleanObjectDatas($line)); @@ -544,7 +544,7 @@ class Tasks extends DolibarrApi $this->task->timespent_datehour = $newdate; $this->task->timespent_withhour = 1; $this->task->timespent_duration = $duration; - $this->task->timespent_fk_user = $user_id; + $this->task->timespent_fk_user = $uid; $this->task->timespent_note = $note; $result = $this->task->addTimeSpent(DolibarrApiAccess::$user, 0); diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 28c8cb656d1..79ea13dcd40 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -86,8 +86,48 @@ class Project extends CommonObject */ public $title; + /** + * @var int Date start + * @deprecated + * @see $date_start + */ + public $dateo; + + /** + * @var int Date start + */ public $date_start; + + /** + * @var int Date end + * @deprecated + * @see $date_end + */ + public $datee; + + /** + * @var int Date end + */ public $date_end; + + /** + * @var int Date start event + */ + public $date_start_event; + + /** + * @var int Date end event + */ + public $date_end_event; + + /** + * @var string Location + */ + public $location; + + /** + * @var int Date close + */ public $date_close; public $socid; // To store id of thirdparty @@ -239,31 +279,36 @@ class Project extends CommonObject 'datee' =>array('type'=>'date', 'label'=>'DateEnd', 'enabled'=>1, 'visible'=>1, 'position'=>35), 'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>3, 'position'=>55, 'searchall'=>1), 'public' =>array('type'=>'integer', 'label'=>'Visibility', 'enabled'=>1, 'visible'=>1, 'position'=>65), - 'fk_opp_status' =>array('type'=>'integer', 'label'=>'OpportunityStatusShort', 'enabled'=>'!empty($conf->global->PROJECT_USE_OPPORTUNITIES)', 'visible'=>1, 'position'=>75), - 'opp_percent' =>array('type'=>'double(5,2)', 'label'=>'OpportunityProbabilityShort', 'enabled'=>'!empty($conf->global->PROJECT_USE_OPPORTUNITIES)', 'visible'=>1, 'position'=>80), + 'fk_opp_status' =>array('type'=>'integer', 'label'=>'OpportunityStatusShort', 'enabled'=>'getDolGlobalString("PROJECT_USE_OPPORTUNITIES")', 'visible'=>1, 'position'=>75), + 'opp_percent' =>array('type'=>'double(5,2)', 'label'=>'OpportunityProbabilityShort', 'enabled'=>'getDolGlobalString("PROJECT_USE_OPPORTUNITIES")', 'visible'=>1, 'position'=>80), 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>85, 'searchall'=>1), 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>90, 'searchall'=>1), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'ModelPdf', 'enabled'=>1, 'visible'=>0, 'position'=>95), 'date_close' =>array('type'=>'datetime', 'label'=>'DateClosing', 'enabled'=>1, 'visible'=>0, 'position'=>105), 'fk_user_close' =>array('type'=>'integer', 'label'=>'UserClosing', 'enabled'=>1, 'visible'=>0, 'position'=>110), - 'opp_amount' =>array('type'=>'double(24,8)', 'label'=>'OpportunityAmountShort', 'enabled'=>1, 'visible'=>'!empty($conf->global->PROJECT_USE_OPPORTUNITIES)', 'position'=>115), + 'opp_amount' =>array('type'=>'double(24,8)', 'label'=>'OpportunityAmountShort', 'enabled'=>1, 'visible'=>'getDolGlobalString("PROJECT_USE_OPPORTUNITIES")', 'position'=>115), 'budget_amount' =>array('type'=>'double(24,8)', 'label'=>'Budget', 'enabled'=>1, 'visible'=>1, 'position'=>119), 'usage_bill_time' =>array('type'=>'integer', 'label'=>'UsageBillTimeShort', 'enabled'=>1, 'visible'=>-1, 'position'=>130), 'usage_opportunity' =>array('type'=>'integer', 'label'=>'UsageOpportunity', 'enabled'=>1, 'visible'=>-1, 'position'=>135), 'usage_task' =>array('type'=>'integer', 'label'=>'UsageTasks', 'enabled'=>1, 'visible'=>-1, 'position'=>140), 'usage_organize_event' =>array('type'=>'integer', 'label'=>'UsageOrganizeEvent', 'enabled'=>1, 'visible'=>-1, 'position'=>145), - 'accept_conference_suggestions' =>array('type'=>'integer', 'label'=>'AllowUnknownPeopleSuggestConf', 'enabled'=>1, 'visible'=>-1, 'position'=>146), - 'accept_booth_suggestions' =>array('type'=>'integer', 'label'=>'AllowUnknownPeopleSuggestBooth', 'enabled'=>1, 'visible'=>-1, 'position'=>147), - 'price_registration' =>array('type'=>'double(24,8)', 'label'=>'PriceOfRegistration', 'enabled'=>1, 'visible'=>-1, 'position'=>148), - 'price_booth' =>array('type'=>'double(24,8)', 'label'=>'PriceOfBooth', 'enabled'=>1, 'visible'=>-1, 'position'=>149), - 'max_attendees' =>array('type'=>'integer', 'label'=>'MaxNbOfAttendees', 'enabled'=>1, 'visible'=>-1, 'position'=>150), - 'datec' =>array('type'=>'datetime', 'label'=>'DateCreationShort', 'enabled'=>1, 'visible'=>-2, 'position'=>200), - 'tms' =>array('type'=>'timestamp', 'label'=>'DateModificationShort', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>205), - 'fk_user_creat' =>array('type'=>'integer', 'label'=>'UserCreation', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>210), - 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModification', 'enabled'=>1, 'visible'=>0, 'position'=>215), - 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>0, 'position'=>220), - 'email_msgid'=>array('type'=>'varchar(255)', 'label'=>'EmailMsgID', 'enabled'=>1, 'visible'=>-1, 'position'=>250, 'help'=>'EmailMsgIDWhenSourceisEmail'), - 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>500) + // Properties for event organization + 'date_start_event' =>array('type'=>'date', 'label'=>'DateStartEvent', 'enabled'=>1, 'visible'=>1, 'position'=>200), + 'date_end_event' =>array('type'=>'date', 'label'=>'DateEndEvent', 'enabled'=>1, 'visible'=>1, 'position'=>201), + 'location' =>array('type'=>'text', 'label'=>'Location', 'enabled'=>1, 'visible'=>3, 'position'=>55, 'searchall'=>202), + 'accept_conference_suggestions' =>array('type'=>'integer', 'label'=>'AllowUnknownPeopleSuggestConf', 'enabled'=>1, 'visible'=>-1, 'position'=>210), + 'accept_booth_suggestions' =>array('type'=>'integer', 'label'=>'AllowUnknownPeopleSuggestBooth', 'enabled'=>1, 'visible'=>-1, 'position'=>211), + 'price_registration' =>array('type'=>'double(24,8)', 'label'=>'PriceOfRegistration', 'enabled'=>1, 'visible'=>-1, 'position'=>212), + 'price_booth' =>array('type'=>'double(24,8)', 'label'=>'PriceOfBooth', 'enabled'=>1, 'visible'=>-1, 'position'=>215), + 'max_attendees' =>array('type'=>'integer', 'label'=>'MaxNbOfAttendees', 'enabled'=>1, 'visible'=>-1, 'position'=>215), + // Generic + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreationShort', 'enabled'=>1, 'visible'=>-2, 'position'=>400), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModificationShort', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>405), + 'fk_user_creat' =>array('type'=>'integer', 'label'=>'UserCreation', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>410), + 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModification', 'enabled'=>1, 'visible'=>0, 'position'=>415), + 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-1, 'position'=>420), + 'email_msgid'=>array('type'=>'varchar(255)', 'label'=>'EmailMsgID', 'enabled'=>1, 'visible'=>-1, 'position'=>450, 'help'=>'EmailMsgIDWhenSourceisEmail'), + 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>500), ); // END MODULEBUILDER PROPERTIES @@ -320,6 +365,7 @@ class Project extends CommonObject $this->fields['accept_booth_suggestions']['enabled'] = 0; $this->fields['price_registration']['enabled'] = 0; $this->fields['price_booth']['enabled'] = 0; + $this->fields['max_attendees']['enabled'] = 0; } } @@ -382,10 +428,14 @@ class Project extends CommonObject $sql .= ", price_registration"; $sql .= ", price_booth"; $sql .= ", max_attendees"; + $sql .= ", date_start_event"; + $sql .= ", date_end_event"; + $sql .= ", location"; $sql .= ", email_msgid"; $sql .= ", note_private"; $sql .= ", note_public"; $sql .= ", entity"; + $sql .= ", ip"; $sql .= ") VALUES ("; $sql .= "'".$this->db->escape($this->ref)."'"; $sql .= ", '".$this->db->escape($this->title)."'"; @@ -410,10 +460,14 @@ class Project extends CommonObject $sql .= ", ".(strcmp($this->price_registration, '') ? price2num($this->price_registration) : 'null'); $sql .= ", ".(strcmp($this->price_booth, '') ? price2num($this->price_booth) : 'null'); $sql .= ", ".(strcmp($this->max_attendees, '') ? ((int) $this->max_attendees) : 'null'); + $sql .= ", ".($this->date_start_event != '' ? "'".$this->db->idate($this->date_start_event)."'" : 'null'); + $sql .= ", ".($this->date_end_event != '' ? "'".$this->db->idate($this->date_end_event)."'" : 'null'); + $sql .= ", ".($this->location ? "'".$this->db->escape($this->location)."'" : 'null'); $sql .= ", ".($this->email_msgid ? "'".$this->db->escape($this->email_msgid)."'" : 'null'); $sql .= ", ".($this->note_private ? "'".$this->db->escape($this->note_private)."'" : 'null'); $sql .= ", ".($this->note_public ? "'".$this->db->escape($this->note_public)."'" : 'null'); $sql .= ", ".((int) $conf->entity); + $sql .= ", ".(!isset($this->ip) ? 'NULL' : "'".$this->db->escape($this->ip)."'"); $sql .= ")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); @@ -504,11 +558,11 @@ class Project extends CommonObject $sql .= ", fk_opp_status = ".((is_numeric($this->opp_status) && $this->opp_status > 0) ? $this->opp_status : 'null'); $sql .= ", opp_percent = ".((is_numeric($this->opp_percent) && $this->opp_percent != '') ? $this->opp_percent : 'null'); $sql .= ", public = ".($this->public ? 1 : 0); - $sql .= ", datec=".($this->date_c != '' ? "'".$this->db->idate($this->date_c)."'" : 'null'); - $sql .= ", dateo=".($this->date_start != '' ? "'".$this->db->idate($this->date_start)."'" : 'null'); - $sql .= ", datee=".($this->date_end != '' ? "'".$this->db->idate($this->date_end)."'" : 'null'); - $sql .= ", date_close=".($this->date_close != '' ? "'".$this->db->idate($this->date_close)."'" : 'null'); - $sql .= ", fk_user_close=".($this->fk_user_close > 0 ? $this->fk_user_close : "null"); + $sql .= ", datec = ".($this->date_c != '' ? "'".$this->db->idate($this->date_c)."'" : 'null'); + $sql .= ", dateo = ".($this->date_start != '' ? "'".$this->db->idate($this->date_start)."'" : 'null'); + $sql .= ", datee = ".($this->date_end != '' ? "'".$this->db->idate($this->date_end)."'" : 'null'); + $sql .= ", date_close = ".($this->date_close != '' ? "'".$this->db->idate($this->date_close)."'" : 'null'); + $sql .= ", fk_user_close = ".($this->fk_user_close > 0 ? $this->fk_user_close : "null"); $sql .= ", opp_amount = ".(strcmp($this->opp_amount, '') ? price2num($this->opp_amount) : "null"); $sql .= ", budget_amount = ".(strcmp($this->budget_amount, '') ? price2num($this->budget_amount) : "null"); $sql .= ", fk_user_modif = ".$user->id; @@ -521,6 +575,9 @@ class Project extends CommonObject $sql .= ", price_registration = ".(strcmp($this->price_registration, '') ? price2num($this->price_registration) : "null"); $sql .= ", price_booth = ".(strcmp($this->price_booth, '') ? price2num($this->price_booth) : "null"); $sql .= ", max_attendees = ".(strcmp($this->max_attendees, '') ? price2num($this->max_attendees) : "null"); + $sql .= ", date_start_event = ".($this->date_start_event != '' ? "'".$this->db->idate($this->date_start_event)."'" : 'null'); + $sql .= ", date_end_event = ".($this->date_end_event != '' ? "'".$this->db->idate($this->date_end_event)."'" : 'null'); + $sql .= ", location = '".$this->db->escape($this->location)."'"; $sql .= ", entity = ".((int) $this->entity); $sql .= " WHERE rowid = ".((int) $this->id); @@ -546,9 +603,9 @@ class Project extends CommonObject if (!$error && (is_object($this->oldcopy) && $this->oldcopy->ref !== $this->ref)) { // We remove directory - if ($conf->projet->dir_output) { - $olddir = $conf->projet->dir_output."/".dol_sanitizeFileName($this->oldcopy->ref); - $newdir = $conf->projet->dir_output."/".dol_sanitizeFileName($this->ref); + if ($conf->project->dir_output) { + $olddir = $conf->project->dir_output."/".dol_sanitizeFileName($this->oldcopy->ref); + $newdir = $conf->project->dir_output."/".dol_sanitizeFileName($this->ref); if (file_exists($olddir)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $res = @rename($olddir, $newdir); @@ -605,9 +662,9 @@ class Project extends CommonObject } $sql = "SELECT rowid, entity, ref, title, description, public, datec, opp_amount, budget_amount,"; - $sql .= " tms, dateo, datee, date_close, fk_soc, fk_user_creat, fk_user_modif, fk_user_close, fk_statut as status, fk_opp_status, opp_percent,"; + $sql .= " tms, dateo as date_start, datee as date_end, date_close, fk_soc, fk_user_creat, fk_user_modif, fk_user_close, fk_statut as status, fk_opp_status, opp_percent,"; $sql .= " note_private, note_public, model_pdf, usage_opportunity, usage_task, usage_bill_time, usage_organize_event, email_msgid,"; - $sql .= " accept_conference_suggestions, accept_booth_suggestions, price_registration, price_booth, max_attendees"; + $sql .= " accept_conference_suggestions, accept_booth_suggestions, price_registration, price_booth, max_attendees, date_start_event, date_end_event, location"; $sql .= " FROM ".MAIN_DB_PREFIX."projet"; if (!empty($id)) { $sql .= " WHERE rowid = ".((int) $id); @@ -639,8 +696,8 @@ class Project extends CommonObject $this->datec = $this->db->jdate($obj->datec); // TODO deprecated $this->date_m = $this->db->jdate($obj->tms); $this->datem = $this->db->jdate($obj->tms); // TODO deprecated - $this->date_start = $this->db->jdate($obj->dateo); - $this->date_end = $this->db->jdate($obj->datee); + $this->date_start = $this->db->jdate($obj->date_start); + $this->date_end = $this->db->jdate($obj->date_end); $this->date_close = $this->db->jdate($obj->date_close); $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; @@ -666,6 +723,9 @@ class Project extends CommonObject $this->price_registration = $obj->price_registration; $this->price_booth = $obj->price_booth; $this->max_attendees = $obj->max_attendees; + $this->date_start_event = $this->db->jdate($obj->date_start_event); + $this->date_end_event = $this->db->jdate($obj->date_end_event); + $this->location = $obj->location; $this->email_msgid = $obj->email_msgid; $this->db->free($resql); @@ -694,12 +754,12 @@ class Project extends CommonObject * @param string $type 'propal','order','invoice','order_supplier','invoice_supplier',... * @param string $tablename name of table associated of the type * @param string $datefieldname name of date field for filter - * @param int $dates Start date - * @param int $datee End date + * @param int $date_start Start date + * @param int $date_end End date * @param string $projectkey Equivalent key to fk_projet for actual type * @return mixed Array list of object ids linked to project, < 0 or string if error */ - public function get_element_list($type, $tablename, $datefieldname = '', $dates = '', $datee = '', $projectkey = 'fk_projet') + public function get_element_list($type, $tablename, $datefieldname = '', $date_start = '', $date_end = '', $projectkey = 'fk_projet') { // phpcs:enable @@ -729,28 +789,28 @@ class Project extends CommonObject $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX.$tablename." WHERE ".$projectkey." IN (".$this->db->sanitize($ids).") AND entity IN (".getEntity($type).")"; } - if ($dates > 0 && $type == 'loan') { - $sql .= " AND (dateend > '".$this->db->idate($dates)."' OR dateend IS NULL)"; - } elseif ($dates > 0 && ($type != 'project_task')) { // For table project_taks, we want the filter on date apply on project_time_spent table + if ($date_start > 0 && $type == 'loan') { + $sql .= " AND (dateend > '".$this->db->idate($date_start)."' OR dateend IS NULL)"; + } elseif ($date_start > 0 && ($type != 'project_task')) { // For table project_taks, we want the filter on date apply on project_time_spent table if (empty($datefieldname) && !empty($this->table_element_date)) { $datefieldname = $this->table_element_date; } if (empty($datefieldname)) { return 'Error this object has no date field defined'; } - $sql .= " AND (".$datefieldname." >= '".$this->db->idate($dates)."' OR ".$datefieldname." IS NULL)"; + $sql .= " AND (".$datefieldname." >= '".$this->db->idate($date_start)."' OR ".$datefieldname." IS NULL)"; } - if ($datee > 0 && $type == 'loan') { - $sql .= " AND (datestart < '".$this->db->idate($datee)."' OR datestart IS NULL)"; - } elseif ($datee > 0 && ($type != 'project_task')) { // For table project_taks, we want the filter on date apply on project_time_spent table + if ($date_end > 0 && $type == 'loan') { + $sql .= " AND (datestart < '".$this->db->idate($date_end)."' OR datestart IS NULL)"; + } elseif ($date_end > 0 && ($type != 'project_task')) { // For table project_taks, we want the filter on date apply on project_time_spent table if (empty($datefieldname) && !empty($this->table_element_date)) { $datefieldname = $this->table_element_date; } if (empty($datefieldname)) { return 'Error this object has no date field defined'; } - $sql .= " AND (".$datefieldname." <= '".$this->db->idate($datee)."' OR ".$datefieldname." IS NULL)"; + $sql .= " AND (".$datefieldname." <= '".$this->db->idate($date_end)."' OR ".$datefieldname." IS NULL)"; } $parameters = array( @@ -758,8 +818,8 @@ class Project extends CommonObject 'type' => $type, 'tablename' => $tablename, 'datefieldname' => $datefieldname, - 'dates' => $dates, - 'datee' => $datee, + 'dates' => $date_start, + 'datee' => $date_end, 'fk_projet' => $projectkey, 'ids' => $ids, ); @@ -829,11 +889,24 @@ class Project extends CommonObject $listoftables = array( 'propal'=>'fk_projet', 'commande'=>'fk_projet', 'facture'=>'fk_projet', 'supplier_proposal'=>'fk_projet', 'commande_fournisseur'=>'fk_projet', 'facture_fourn'=>'fk_projet', - 'expensereport_det'=>'fk_projet', 'contrat'=>'fk_projet', 'fichinter'=>'fk_projet', 'don'=>'fk_projet', - 'actioncomm'=>'fk_project', 'mrp_mo'=>'fk_project', 'entrepot'=>'fk_project' + 'expensereport_det'=>'fk_projet', 'contrat'=>'fk_projet', + 'fichinter'=>'fk_projet', + 'don'=>array('field'=>'fk_projet', 'module'=>'don'), + 'actioncomm'=>'fk_project', + 'mrp_mo'=>'fk_project', + 'entrepot'=>'fk_project' ); foreach ($listoftables as $key => $value) { - $sql = "UPDATE ".MAIN_DB_PREFIX.$key." SET ".$value." = NULL where ".$value." = ".((int) $this->id); + if (is_array($value)) { + if (!isModEnabled($value['module'])) { + continue; + } + $fieldname = $value['field']; + } else { + $fieldname = $value; + } + $sql = "UPDATE ".MAIN_DB_PREFIX.$key." SET ".$fieldname." = NULL where ".$fieldname." = ".((int) $this->id); + $resql = $this->db->query($sql); if (!$resql) { $this->errors[] = $this->db->lasterror(); @@ -855,7 +928,7 @@ class Project extends CommonObject } // Fetch tasks - $this->getLinesArray($user); + $this->getLinesArray($user, 0); // Delete tasks $ret = $this->deleteTasks($user); @@ -909,8 +982,8 @@ class Project extends CommonObject if (empty($error)) { // We remove directory $projectref = dol_sanitizeFileName($this->ref); - if ($conf->projet->dir_output) { - $dir = $conf->projet->dir_output."/".$projectref; + if ($conf->project->dir_output) { + $dir = $conf->project->dir_output."/".$projectref; if (file_exists($dir)) { $res = @dol_delete_dir_recursive($dir); if (!$res) { @@ -1208,7 +1281,7 @@ class Project extends CommonObject $label .= ($label ? '
    ' : '').''.$langs->trans('Label').': '.$this->title; // The space must be after the : to not being explode when showing the title in img_picto if (isset($this->public)) { $label .= '
    '.$langs->trans("Visibility").": "; - $label .= ($this->public ? img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"').$langs->trans("SharedProject") : img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"').$langs->trans("PrivateProject")); + $label .= ($this->public ? img_picto($langs->trans('SharedProject'), 'world', 'class="pictofixedwidth"').$langs->trans("SharedProject") : img_picto($langs->trans('PrivateProject'), 'private', 'class="pictofixedwidth"').$langs->trans("PrivateProject")); } if (!empty($this->thirdparty_name)) { $label .= ($label ? '
    ' : '').''.$langs->trans('ThirdParty').': '.$this->thirdparty_name; // The space must be after the : to not being explode when showing the title in img_picto @@ -1247,7 +1320,7 @@ class Project extends CommonObject } $linkclose = ''; - if (empty($notooltip) && $user->rights->projet->lire) { + if (empty($notooltip) && $user->hasRight('projet', 'lire')) { if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $label = $langs->trans("ShowProject"); $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; @@ -1269,14 +1342,14 @@ class Project extends CommonObject $result .= $linkstart; if ($withpicto) { - $result .= img_object(($notooltip ? '' : $label), $picto, ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip pictofixedwidth"'), 0, 0, $notooltip ? 0 : 1); + $result .= img_object(($notooltip ? '' : $label), $picto, ($notooltip ? (($withpicto != 2) ? 'class="pictofixedwidth"' : '') : 'class="'.(($withpicto != 2) ? 'pictofixedwidth ' : '').'classfortooltip pictofixedwidth em088"'), 0, 0, $notooltip ? 0 : 1); } if ($withpicto != 2) { $result .= $this->ref; } $result .= $linkend; if ($withpicto != 2) { - $result .= (($addlabel && $this->title) ? $sep.dol_trunc($this->title, ($addlabel > 1 ? $addlabel : 0)) : ''); + $result .= (($addlabel && $this->title) ? ''.$sep.dol_trunc($this->title, ($addlabel > 1 ? $addlabel : 0)).'' : ''); } global $action; @@ -1407,7 +1480,7 @@ class Project extends CommonObject * @param int $list 0=Return array, 1=Return string list * @param int $socid 0=No filter on third party, id of third party * @param string $filter additionnal filter on project (statut, ref, ...) - * @return array or string Array of projects id, or string with projects id separated with "," if list is 1 + * @return array|string Array of projects id, or string with projects id separated with "," if list is 1 */ public function getProjectsAuthorizedForUser($user, $mode = 0, $list = 0, $socid = 0, $filter = '') { @@ -1643,8 +1716,8 @@ class Project extends CommonObject if ($clone_project_file) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $clone_project_dir = $conf->projet->dir_output."/".dol_sanitizeFileName($defaultref); - $ori_project_dir = $conf->projet->dir_output."/".dol_sanitizeFileName($orign_project_ref); + $clone_project_dir = $conf->project->dir_output."/".dol_sanitizeFileName($defaultref); + $ori_project_dir = $conf->project->dir_output."/".dol_sanitizeFileName($orign_project_ref); if (dol_mkdir($clone_project_dir) >= 0) { $filearray = dol_dir_list($ori_project_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', '', SORT_ASC, 1); @@ -1975,7 +2048,7 @@ class Project extends CommonObject $sql .= " AND pt.fk_projet = ".((int) $this->id); $sql .= " AND (ptt.task_date >= '".$this->db->idate($datestart)."' "; $sql .= " AND ptt.task_date <= '".$this->db->idate(dol_time_plus_duree($datestart, 1, 'm') - 1)."')"; - if ($task_id) { + if ($taskid) { $sql .= " AND ptt.fk_task=".((int) $taskid); } if (is_numeric($userid)) { @@ -2015,7 +2088,6 @@ class Project extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Load indicators for dashboard (this->nbtodo and this->nbtodolate) @@ -2031,10 +2103,14 @@ class Project extends CommonObject // For external user, no check is done on company because readability is managed by public status of project and assignement. //$socid=$user->socid; - $projectsListId = null; - if (empty($user->rights->projet->all->lire)) { - $projectsListId = $this->getProjectsAuthorizedForUser($user, 0, 1); - } + $response = new WorkboardResponse(); + $response->warning_delay = $conf->project->warning_delay / 60 / 60 / 24; + $response->label = $langs->trans("OpenedProjects"); + $response->labelShort = $langs->trans("Opened"); + $response->url = DOL_URL_ROOT.'/projet/list.php?search_project_user=-1&search_status=1&mainmenu=project'; + $response->img = img_object('', "projectpub"); + $response->nbtodo = 0; + $response->nbtodolate = 0; $sql = "SELECT p.rowid, p.fk_statut as status, p.fk_opp_status, p.datee as datee"; $sql .= " FROM (".MAIN_DB_PREFIX."projet as p"; @@ -2044,9 +2120,19 @@ class Project extends CommonObject //if (! $user->rights->societe->client->voir && ! $socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON sc.fk_soc = s.rowid"; $sql .= " WHERE p.fk_statut = 1"; $sql .= " AND p.entity IN (".getEntity('project').')'; - if (!empty($projectsListId)) { + + + $projectsListId = null; + if (!$user->hasRight("projet", "all", "lire")) { + $response->url = DOL_URL_ROOT.'/projet/list.php?search_status=1&mainmenu=project'; + $projectsListId = $this->getProjectsAuthorizedForUser($user, 0, 1); + if (empty($projectsListId)) { + return $response; + } + $sql .= " AND p.rowid IN (".$this->db->sanitize($projectsListId).")"; } + // No need to check company, as filtering of projects must be done by getProjectsAuthorizedForUser //if ($socid || ! $user->rights->societe->client->voir) $sql.= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".((int) $socid).")"; // For external user, no check is done on company permission because readability is managed by public status of project and assignement. @@ -2057,16 +2143,6 @@ class Project extends CommonObject if ($resql) { $project_static = new Project($this->db); - $response = new WorkboardResponse(); - $response->warning_delay = $conf->projet->warning_delay / 60 / 60 / 24; - $response->label = $langs->trans("OpenedProjects"); - $response->labelShort = $langs->trans("Opened"); - if ($user->rights->projet->all->lire) { - $response->url = DOL_URL_ROOT.'/projet/list.php?search_status=1&mainmenu=project'; - } else { - $response->url = DOL_URL_ROOT.'/projet/list.php?search_project_user=-1&search_status=1&mainmenu=project'; - } - $response->img = img_object('', "projectpub"); // This assignment in condition is not a bug. It allows walking the results. while ($obj = $this->db->fetch_object($resql)) { @@ -2082,28 +2158,27 @@ class Project extends CommonObject } return $response; - } else { - $this->error = $this->db->error(); - return -1; } - } + $this->error = $this->db->error(); + return -1; + } /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id + * @param DoliDB $dbs Database handler + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'projet' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } @@ -2162,7 +2237,7 @@ class Project extends CommonObject $now = dol_now(); - return ($this->date_end) < ($now - $conf->projet->warning_delay); + return ($this->date_end) < ($now - $conf->project->warning_delay); } @@ -2190,7 +2265,7 @@ class Project extends CommonObject $this->user_creation = $cuser; } - if ($obj->fk_user_cloture) { + if (!empty($obj->fk_user_cloture)) { $cluser = new User($this->db); $cluser->fetch($obj->fk_user_cloture); $this->user_cloture = $cluser; @@ -2214,8 +2289,8 @@ class Project extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { @@ -2227,14 +2302,15 @@ class Project extends CommonObject /** * Create an array of tasks of current project * - * @param User $user Object user we want project allowed to - * @return int >0 if OK, <0 if KO + * @param User $user Object user we want project allowed to + * @param int $loadRoleMode 1= will test Roles on task; 0 used in delete project action + * @return int >0 if OK, <0 if KO */ - public function getLinesArray($user) + public function getLinesArray($user, $loadRoleMode = 1) { require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; $taskstatic = new Task($this->db); - $this->lines = $taskstatic->getTasksArray(0, $user, $this->id, 0, 0); + $this->lines = $taskstatic->getTasksArray(0, $user, $this->id, 0, 0, '', '-1', '', 0, 0, array(), 0, array(), 0, $loadRoleMode); } } diff --git a/htdocs/projet/class/projectstats.class.php b/htdocs/projet/class/projectstats.class.php index 9b2314deacc..65d673a9ad2 100644 --- a/htdocs/projet/class/projectstats.class.php +++ b/htdocs/projet/class/projectstats.class.php @@ -32,6 +32,11 @@ class ProjectStats extends Stats public $status; public $opp_status; + //SQL stat + public $field; + public $from; + public $where; + /** * Constructor @@ -46,6 +51,18 @@ class ProjectStats extends Stats require_once 'project.class.php'; $this->project = new Project($this->db); + + $this->from = MAIN_DB_PREFIX.$this->project->table_element; + $this->field = 'opp_amount'; + $this->where = " entity = ".$conf->entity; + if ($this->socid > 0) { + $this->where .= " AND fk_soc = ".((int) $this->socid); + } + if (is_array($this->userid) && count($this->userid) > 0) { + $this->where .= ' AND fk_user IN ('.$this->db->sanitize(join(',', $this->userid)).')'; + } elseif ($this->userid > 0) { + $this->where .= " AND fk_user = ".((int) $this->userid); + } } @@ -81,7 +98,7 @@ class ProjectStats extends Stats $result = array(); - dol_syslog(get_class($this).'::'.__METHOD__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -528,4 +545,21 @@ class ProjectStats extends Stats // var_dump($res);print '
    '; return $res; } + + /** + * Return average of entity by month + * @param int $year year number + * @return int value + */ + protected function getAverageByMonth($year) + { + $sql = "SELECT date_format(datef,'%m') as dm, AVG(f.".$this->field.")"; + $sql .= " FROM ".$this->from; + $sql .= " WHERE f.datef BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAverageByMonth($year, $sql); + } } diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php index 79152c6cfb9..d836c1ef319 100644 --- a/htdocs/projet/class/task.class.php +++ b/htdocs/projet/class/task.class.php @@ -85,6 +85,11 @@ class Task extends CommonObjectLine public $date_end; public $progress; + /** + * @deprecated Use date_end instead + */ + public $datee; + /** * @var int ID */ @@ -122,6 +127,7 @@ class Task extends CommonObjectLine public $timespent_fk_user; public $timespent_thm; public $timespent_note; + public $timespent_fk_product; public $comments = array(); @@ -473,12 +479,12 @@ class Task extends CommonObjectLine if (!$error && (is_object($this->oldcopy) && $this->oldcopy->ref !== $this->ref)) { // We remove directory - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { $project = new Project($this->db); $project->fetch($this->fk_project); - $olddir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($project->ref).'/'.dol_sanitizeFileName($this->oldcopy->ref); - $newdir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($project->ref).'/'.dol_sanitizeFileName($this->ref); + $olddir = $conf->project->dir_output.'/'.dol_sanitizeFileName($project->ref).'/'.dol_sanitizeFileName($this->oldcopy->ref); + $newdir = $conf->project->dir_output.'/'.dol_sanitizeFileName($project->ref).'/'.dol_sanitizeFileName($this->ref); if (file_exists($olddir)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $res = dol_move_dir($olddir, $newdir); @@ -600,11 +606,11 @@ class Task extends CommonObjectLine return -1 * $error; } else { //Delete associated link file - if ($conf->projet->dir_output) { + if ($conf->project->dir_output) { $projectstatic = new Project($this->db); $projectstatic->fetch($this->fk_project); - $dir = $conf->projet->dir_output."/".dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($this->id); + $dir = $conf->project->dir_output."/".dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($this->id); dol_syslog(get_class($this)."::delete dir=".$dir, LOG_DEBUG); if (file_exists($dir)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -805,9 +811,10 @@ class Task extends CommonObjectLine * @param int $includebilltime Calculate also the time to bill and billed * @param array $search_array_options Array of search * @param int $loadextras Fetch all Extrafields on each task - * @return array Array of tasks + * @param int $loadRoleMode 1= will test Roles on task; 0 used in delete project action + * @return array|string Array of tasks */ - public function getTasksArray($usert = null, $userp = null, $projectid = 0, $socid = 0, $mode = 0, $filteronproj = '', $filteronprojstatus = '-1', $morewherefilter = '', $filteronprojuser = 0, $filterontaskuser = 0, $extrafields = array(), $includebilltime = 0, $search_array_options = array(), $loadextras = 0) + public function getTasksArray($usert = null, $userp = null, $projectid = 0, $socid = 0, $mode = 0, $filteronproj = '', $filteronprojstatus = '-1', $morewherefilter = '', $filteronprojuser = 0, $filterontaskuser = 0, $extrafields = array(), $includebilltime = 0, $search_array_options = array(), $loadextras = 0, $loadRoleMode = 1) { global $conf, $hookmanager; @@ -962,14 +969,16 @@ class Task extends CommonObjectLine $obj = $this->db->fetch_object($resql); - if ((!$obj->public) && (is_object($userp))) { // If not public project and we ask a filter on project owned by a user - if (!$this->getUserRolesForProjectsOrTasks($userp, 0, $obj->projectid, 0)) { - $error++; + if ($loadRoleMode) { + if ((!$obj->public) && (is_object($userp))) { // If not public project and we ask a filter on project owned by a user + if (!$this->getUserRolesForProjectsOrTasks($userp, null, $obj->projectid, 0)) { + $error++; + } } - } - if (is_object($usert)) { // If we ask a filter on a user affected to a task - if (!$this->getUserRolesForProjectsOrTasks(0, $usert, $obj->projectid, $obj->taskid)) { - $error++; + if (is_object($usert)) { // If we ask a filter on a user affected to a task + if (!$this->getUserRolesForProjectsOrTasks(null, $usert, $obj->projectid, $obj->taskid)) { + $error++; + } } } @@ -1016,7 +1025,8 @@ class Task extends CommonObjectLine if (!empty($extrafields->attributes['projet']['label'])) { foreach ($extrafields->attributes['projet']['label'] as $key => $val) { if ($extrafields->attributes['projet']['type'][$key] != 'separate') { - $tasks[$i]->{'options_'.$key} = $obj->{'options_'.$key}; + $tmpvar = 'options_'.$key; + $tasks[$i]->{'options_'.$key} = $obj->$tmpvar; } } } @@ -1024,7 +1034,8 @@ class Task extends CommonObjectLine if (!empty($extrafields->attributes['projet_task']['label'])) { foreach ($extrafields->attributes['projet_task']['label'] as $key => $val) { if ($extrafields->attributes['projet_task']['type'][$key] != 'separate') { - $tasks[$i]->{'options_'.$key} = $obj->{'options_'.$key}; + $tmpvar = 'options_'.$key; + $tasks[$i]->{'options_'.$key} = $obj->$tmpvar; } } } @@ -1047,12 +1058,12 @@ class Task extends CommonObjectLine /** * Return list of roles for a user for each projects or each tasks (or a particular project or a particular task). * - * @param User $userp Return roles on project for this internal user. If set, usert and taskid must not be defined. - * @param User $usert Return roles on task for this internal user. If set userp must NOT be defined. -1 means no filter. - * @param int $projectid Project id list separated with , to filter on project - * @param int $taskid Task id to filter on a task - * @param integer $filteronprojstatus Filter on project status if userp is set. Not used if userp not defined. - * @return array Array (projectid => 'list of roles for project' or taskid => 'list of roles for task') + * @param User|null $userp Return roles on project for this internal user. If set, usert and taskid must not be defined. + * @param User|null $usert Return roles on task for this internal user. If set userp must NOT be defined. -1 means no filter. + * @param int $projectid Project id list separated with , to filter on project + * @param int $taskid Task id to filter on a task + * @param integer $filteronprojstatus Filter on project status if userp is set. Not used if userp not defined. + * @return array|int Array (projectid => 'list of roles for project' or taskid => 'list of roles for task') */ public function getUserRolesForProjectsOrTasks($userp, $usert, $projectid = '', $taskid = 0, $filteronprojstatus = -1) { @@ -1201,7 +1212,7 @@ class Task extends CommonObjectLine $this->timespent_datehour = $this->timespent_date; } - if (! empty($conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS)) { + if (!empty($conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $restrictBefore = dol_time_plus_duree(dol_now(), - $conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS, 'm'); @@ -1222,6 +1233,7 @@ class Task extends CommonObjectLine $sql .= ", task_date_withhour"; $sql .= ", task_duration"; $sql .= ", fk_user"; + $sql .= ", fk_product"; $sql .= ", note"; $sql .= ", datec"; $sql .= ") VALUES ("; @@ -1231,6 +1243,7 @@ class Task extends CommonObjectLine $sql .= ", ".(empty($this->timespent_withhour) ? 0 : 1); $sql .= ", ".((int) $this->timespent_duration); $sql .= ", ".((int) $this->timespent_fk_user); + $sql .= ", ".((int) $this->timespent_fk_product); $sql .= ", ".(isset($this->timespent_note) ? "'".$this->db->escape($this->timespent_note)."'" : "null"); $sql .= ", '".$this->db->idate($now)."'"; $sql .= ")"; @@ -1385,12 +1398,10 @@ class Task extends CommonObjectLine * * @param User|int $userobj Filter on user. null or 0=No filter * @param string $morewherefilter Add more filter into where SQL request (must start with ' AND ...') - * @return array Array of info for task array('min_date', 'max_date', 'total_duration', 'total_amount', 'nblines', 'nblinesnull') + * @return array|int Array of info for task array('min_date', 'max_date', 'total_duration', 'total_amount', 'nblines', 'nblinesnull') */ public function getSummaryOfTimeSpent($userobj = null, $morewherefilter = '') { - global $langs; - if (is_object($userobj)) { $userid = $userobj->id; } else { @@ -1518,6 +1529,7 @@ class Task extends CommonObjectLine $sql .= " t.task_date_withhour,"; $sql .= " t.task_duration,"; $sql .= " t.fk_user,"; + $sql .= " t.fk_product,"; $sql .= " t.thm,"; $sql .= " t.note"; $sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t"; @@ -1536,6 +1548,7 @@ class Task extends CommonObjectLine $this->timespent_withhour = $obj->task_date_withhour; $this->timespent_duration = $obj->task_duration; $this->timespent_fk_user = $obj->fk_user; + $this->timespent_fk_product = $obj->fk_product; $this->timespent_thm = $obj->thm; // hourly rate $this->timespent_note = $obj->note; } @@ -1552,14 +1565,12 @@ class Task extends CommonObjectLine /** * Load all records of time spent * - * @param User $userobj User object - * @param string $morewherefilter Add more filter into where SQL request (must start with ' AND ...') - * @return int <0 if KO, array of time spent if OK + * @param User $userobj User object + * @param string $morewherefilter Add more filter into where SQL request (must start with ' AND ...') + * @return array|int <0 if KO, array of time spent if OK */ public function fetchAllTimeSpent(User $userobj, $morewherefilter = '') { - global $langs; - $arrayres = array(); $sql = "SELECT"; @@ -1670,7 +1681,7 @@ class Task extends CommonObjectLine $this->timespent_note = trim($this->timespent_note); } - if (! empty($conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS)) { + if (!empty($conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $restrictBefore = dol_time_plus_duree(dol_now(), - $conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS, 'm'); @@ -1689,6 +1700,7 @@ class Task extends CommonObjectLine $sql .= " task_date_withhour = ".(empty($this->timespent_withhour) ? 0 : 1).","; $sql .= " task_duration = ".((int) $this->timespent_duration).","; $sql .= " fk_user = ".((int) $this->timespent_fk_user).","; + $sql .= " fk_product = ".((int) $this->timespent_fk_product).","; $sql .= " note = ".(isset($this->timespent_note) ? "'".$this->db->escape($this->timespent_note)."'" : "null"); $sql .= " WHERE rowid = ".((int) $this->timespent_id); @@ -1713,26 +1725,31 @@ class Task extends CommonObjectLine $ret = -1; } - if ($ret == 1 && ($this->timespent_old_duration != $this->timespent_duration)) { - // Recalculate amount of time spent for task and update denormalized field - $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task"; - $sql .= " SET duration_effective = (SELECT SUM(task_duration) FROM ".MAIN_DB_PREFIX."projet_task_time as ptt where ptt.fk_task = ".((int) $this->id).")"; - if (isset($this->progress)) { - $sql .= ", progress = ".((float) $this->progress); // Do not overwrite value if not provided - } - $sql .= " WHERE rowid = ".((int) $this->id); + if ($ret == 1 && (($this->timespent_old_duration != $this->timespent_duration) || !empty($conf->global->TIMESPENT_ALWAYS_UPDATE_THM))) { + if ($this->timespent_old_duration != $this->timespent_duration) { + // Recalculate amount of time spent for task and update denormalized field + $sql = "UPDATE " . MAIN_DB_PREFIX . "projet_task"; + $sql .= " SET duration_effective = (SELECT SUM(task_duration) FROM " . MAIN_DB_PREFIX . "projet_task_time as ptt where ptt.fk_task = " . ((int) $this->id) . ")"; + if (isset($this->progress)) { + $sql .= ", progress = " . ((float) $this->progress); // Do not overwrite value if not provided + } + $sql .= " WHERE rowid = " . ((int) $this->id); - dol_syslog(get_class($this)."::updateTimeSpent", LOG_DEBUG); - if (!$this->db->query($sql)) { - $this->error = $this->db->lasterror(); - $this->db->rollback(); - $ret = -2; + dol_syslog(get_class($this) . "::updateTimeSpent", LOG_DEBUG); + if (!$this->db->query($sql)) { + $this->error = $this->db->lasterror(); + $this->db->rollback(); + $ret = -2; + } } // Update hourly rate of this time spent entry, but only if it was not set initialy $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task_time"; $sql .= " SET thm = (SELECT thm FROM ".MAIN_DB_PREFIX."user WHERE rowid = ".((int) $this->timespent_fk_user).")"; // set average hour rate of user - $sql .= " WHERE (thm IS NULL OR thm = 0) AND rowid = ".((int) $this->timespent_id); + $sql .= " WHERE rowid = ".((int) $this->timespent_id); + if (empty($conf->global->TIMESPENT_ALWAYS_UPDATE_THM)) { // then if not empty we always update, in case of new thm for user, or change user of task time line + $sql .= " AND (thm IS NULL OR thm = 0)"; + } dol_syslog(get_class($this)."::addTimeSpent", LOG_DEBUG); if (!$this->db->query($sql)) { @@ -1760,7 +1777,7 @@ class Task extends CommonObjectLine $error = 0; - if (! empty($conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS)) { + if (!empty($conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $restrictBefore = dol_time_plus_duree(dol_now(), - $conf->global->PROJECT_TIMESHEET_PREVENT_AFTER_MONTHS, 'm'); @@ -1957,8 +1974,8 @@ class Task extends CommonObjectLine $clone_project_ref = $ori_project_ref; } - $clone_task_dir = $conf->projet->dir_output."/".dol_sanitizeFileName($clone_project_ref)."/".dol_sanitizeFileName($clone_task_ref); - $ori_task_dir = $conf->projet->dir_output."/".dol_sanitizeFileName($ori_project_ref)."/".dol_sanitizeFileName($fromid); + $clone_task_dir = $conf->project->dir_output."/".dol_sanitizeFileName($clone_project_ref)."/".dol_sanitizeFileName($clone_task_ref); + $ori_task_dir = $conf->project->dir_output."/".dol_sanitizeFileName($ori_project_ref)."/".dol_sanitizeFileName($fromid); $filearray = dol_dir_list($ori_task_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', '', SORT_ASC, 1); foreach ($filearray as $key => $file) { @@ -2184,7 +2201,7 @@ class Task extends CommonObjectLine $sql .= " t.rowid as taskid, t.progress as progress, t.fk_statut as status,"; $sql .= " t.dateo as date_start, t.datee as datee"; $sql .= " FROM ".MAIN_DB_PREFIX."projet as p"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; + //$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; //if (! $user->rights->societe->client->voir && ! $socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON sc.fk_soc = s.rowid"; $sql .= ", ".MAIN_DB_PREFIX."projet_task as t"; $sql .= " WHERE p.entity IN (".getEntity('project', 0).')'; @@ -2205,9 +2222,9 @@ class Task extends CommonObjectLine $task_static = new Task($this->db); $response = new WorkboardResponse(); - $response->warning_delay = $conf->projet->task->warning_delay / 60 / 60 / 24; + $response->warning_delay = $conf->project->task->warning_delay / 60 / 60 / 24; $response->label = $langs->trans("OpenedTasks"); - if ($user->rights->projet->all->lire) { + if ($user->hasRight("projet", "all", "lire")) { $response->url = DOL_URL_ROOT.'/projet/tasks/list.php?mainmenu=project'; } else { $response->url = DOL_URL_ROOT.'/projet/tasks/list.php?mode=mine&mainmenu=project'; @@ -2306,6 +2323,6 @@ class Task extends CommonObjectLine $datetouse = ($this->date_end > 0) ? $this->date_end : ((isset($this->datee) && $this->datee > 0) ? $this->datee : 0); - return ($datetouse > 0 && ($datetouse < ($now - $conf->projet->task->warning_delay))); + return ($datetouse > 0 && ($datetouse < ($now - $conf->project->task->warning_delay))); } } diff --git a/htdocs/projet/class/taskstats.class.php b/htdocs/projet/class/taskstats.class.php index a5b088f01e8..ce7c6c4f4c5 100644 --- a/htdocs/projet/class/taskstats.class.php +++ b/htdocs/projet/class/taskstats.class.php @@ -15,6 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + include_once DOL_DOCUMENT_ROOT.'/core/class/stats.class.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -69,7 +70,7 @@ class TaskStats extends Stats $result = array(); $res = array(); - dol_syslog(get_class($this).'::'.__METHOD__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -193,4 +194,35 @@ class TaskStats extends Stats // var_dump($res);print '
    '; return $res; } + + + /** + * Return the Task amount by month for a year + * + * @param int $year Year to scan + * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month + * @return array Array with amount by month + */ + public function getAmountByMonth($year, $format = 0) + { + // Return an empty array at the moment because task has no amount + return array(); + } + + /** + * Return average of entity by month + * @param int $year year number + * @return int value + */ + protected function getAverageByMonth($year) + { + $sql = "SELECT date_format(datef,'%m') as dm, AVG(f.".$this->field.")"; + $sql .= " FROM ".$this->from; + $sql .= " WHERE f.datef BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAverageByMonth($year, $sql); + } } diff --git a/htdocs/projet/comment.php b/htdocs/projet/comment.php index 997f45a39d0..024dce3abc9 100644 --- a/htdocs/projet/comment.php +++ b/htdocs/projet/comment.php @@ -23,6 +23,7 @@ * \brief Page of a project task */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -104,7 +105,7 @@ $morehtmlref = '
    '; $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= '
    '; @@ -133,15 +134,6 @@ if ($object->public) { } print ''; -// Date start - end -print '
    '; - // Budget print ''; +// Date start - end project +print ''; + // Other attributes $cols = 2; // include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php index be130572704..f6827fc19b3 100644 --- a/htdocs/projet/contact.php +++ b/htdocs/projet/contact.php @@ -22,6 +22,7 @@ * \brief List of all contacts of a project */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -34,7 +35,7 @@ if (isModEnabled('categorie')) { // Load translation files required by the page $langsLoad=array('projects', 'companies'); -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langsLoad[]='eventorganization'; } @@ -295,7 +296,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -315,7 +316,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("OpportunityProbability").''; + print ' / '; if (strcmp($object->opp_percent, '')) { print price($object->opp_percent, 0, $langs, 1, 0).' %'; } - print '
    '.$langs->trans("OpportunityAmount").''; @@ -1133,18 +1302,6 @@ if ($action == 'create' && $user->rights->projet->creer) { */ } - // Date start - end - print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - $start = dol_print_date($object->date_start, 'day'); - print ($start ? $start : '?'); - $end = dol_print_date($object->date_end, 'day'); - print ' - '; - print ($end ? $end : '?'); - if ($object->hasDelay()) { - print img_warning("Late"); - } - print '
    '.$langs->trans("Budget").''; if (strcmp($object->budget_amount, '')) { @@ -1152,6 +1309,18 @@ if ($action == 'create' && $user->rights->projet->creer) { } print '
    '.$langs->trans("Dates").''; + $start = dol_print_date($object->date_start, 'day'); + print ($start ? $start : '?'); + $end = dol_print_date($object->date_end, 'day'); + print ' - '; + print ($end ? $end : '?'); + if ($object->hasDelay()) { + print img_warning("Late"); + } + print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; -print dol_print_date($object->date_start, 'day'); -$end = dol_print_date($object->date_end, 'day'); -if ($end) { - print ' - '.$end; -} -print '
    '.$langs->trans("Budget").''; if (strcmp($object->budget_amount, '')) { @@ -149,6 +141,15 @@ if (strcmp($object->budget_amount, '')) { } print '
    '.$langs->trans("Dates").''; +print dol_print_date($object->date_start, 'day'); +$end = dol_print_date($object->date_end, 'day'); +if ($end) { + print ' - '.$end; +} +print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -338,7 +339,7 @@ if ($id > 0 || !empty($ref)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -384,8 +385,15 @@ if ($id > 0 || !empty($ref)) { print ''; } - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php index 2301017edd9..bb50bf0def6 100644 --- a/htdocs/projet/document.php +++ b/htdocs/projet/document.php @@ -23,6 +23,7 @@ * \brief Page to managed related documents linked to a project */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; @@ -49,7 +50,7 @@ if (!empty($conf->global->PROJECT_ALLOW_COMMENT_ON_PROJECT) && method_exists($ob } if ($id > 0 || !empty($ref)) { - $upload_dir = $conf->projet->dir_output."/".dol_sanitizeFileName($object->ref); + $upload_dir = $conf->project->dir_output."/".dol_sanitizeFileName($object->ref); } // Get parameters @@ -97,7 +98,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; * View */ -$title = $langs->trans('Project').' - '.$langs->trans('Document').' - '.$object->ref.' '.$object->name; +$title = $langs->trans('Documents').' - '.$object->ref.' '.$object->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->ref.' '.$object->name.' - '.$langs->trans('Document'); } @@ -109,7 +110,7 @@ llxHeader('', $title, $help_url); $form = new Form($db); if ($object->id > 0) { - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($object->ref); + $upload_dir = $conf->project->dir_output.'/'.dol_sanitizeFileName($object->ref); // To verify role of users //$userAccess = $object->restrictedProjectArea($user,'read'); @@ -137,7 +138,7 @@ if ($object->id > 0) { $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index fb4011ada8c..7bad7fd493d 100644 --- a/htdocs/projet/element.php +++ b/htdocs/projet/element.php @@ -29,6 +29,7 @@ * \brief Page of project referrers */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -36,69 +37,69 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->stock->enabled)) { +if (isModEnabled('stock')) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; } -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } -if (!empty($conf->supplier_proposal->enabled)) { +if (isModEnabled('supplier_proposal')) { require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; } -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; } -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; } -if (!empty($conf->deplacement->enabled)) { +if (isModEnabled('deplacement')) { require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; } -if (!empty($conf->expensereport->enabled)) { +if (isModEnabled('expensereport')) { require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; } if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } -if (!empty($conf->don->enabled)) { +if (isModEnabled('don')) { require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; } if (!empty($conf->loan->enabled)) { require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php'; } -if (!empty($conf->stock->enabled)) { +if (isModEnabled('stock')) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; } -if (!empty($conf->tax->enabled)) { +if (isModEnabled('tax')) { require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; } -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; } if (!empty($conf->salaries->enabled)) { require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } -if (!empty($conf->mrp->enabled)) { +if (isModEnabled('mrp')) { require_once DOL_DOCUMENT_ROOT.'/mrp/class/mo.class.php'; } @@ -107,22 +108,22 @@ $langs->loadLangs(array('projects', 'companies', 'suppliers', 'compta')); if (isModEnabled('facture')) { $langs->load("bills"); } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $langs->load("orders"); } -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { $langs->load("propal"); } -if (!empty($conf->ficheinter->enabled)) { +if (isModEnabled('ficheinter')) { $langs->load("interventions"); } -if (!empty($conf->deplacement->enabled)) { +if (isModEnabled('deplacement')) { $langs->load("trips"); } -if (!empty($conf->expensereport->enabled)) { +if (isModEnabled('expensereport')) { $langs->load("trips"); } -if (!empty($conf->don->enabled)) { +if (isModEnabled('don')) { $langs->load("donations"); } if (!empty($conf->loan->enabled)) { @@ -131,10 +132,10 @@ if (!empty($conf->loan->enabled)) { if (!empty($conf->salaries->enabled)) { $langs->load("salaries"); } -if (!empty($conf->mrp->enabled)) { +if (isModEnabled('mrp')) { $langs->load("mrp"); } -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langs->load("eventorganization"); } @@ -217,7 +218,7 @@ $morehtmlref = '
    '; $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= '
    '; @@ -237,7 +238,7 @@ print '
    '; print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($object->budget_amount, '')) { + print ''.price($object->budget_amount, '', $langs, 0, 0, 0, $conf->currency).''; + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($object->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($object->date_end, 'day'); @@ -396,13 +404,6 @@ if ($id > 0 || !empty($ref)) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { - print ''.price($object->budget_amount, '', $langs, 0, 0, 0, $conf->currency).''; - } - print '
    '; // Usage -if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { +if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -260,7 +261,7 @@ if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PRO print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -306,8 +307,15 @@ if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { print ''; } -// Date start - end -print ''; + +// Date start - end project +print ''; -// Budget -print ''; - // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; @@ -375,8 +376,8 @@ $listofreferent = array( 'lang'=>'entrepot', 'buttonnew'=>'AddWarehouse', 'project_field'=>'fk_project', - 'testnew'=>$user->rights->stock->creer, - 'test'=>$conf->stock->enabled && $user->rights->stock->lire && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROJECT)), + 'testnew'=>$user->hasRight('stock', 'creer'), + 'test'=>!empty($conf->stock->enabled) && $user->hasRight('stock', 'lire') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROJECT)), 'propal'=>array( 'name'=>"Proposals", 'title'=>"ListProposalsAssociatedProject", @@ -386,8 +387,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/comm/propal/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'propal', 'buttonnew'=>'AddProp', - 'testnew'=>$user->rights->propal->creer, - 'test'=>$conf->propal->enabled && $user->rights->propale->lire), + 'testnew'=>$user->hasRight('propal', 'creer'), + 'test'=>!empty($conf->propal->enabled) && $user->hasRight('propal', 'lire')), 'order'=>array( 'name'=>"CustomersOrders", 'title'=>"ListOrdersAssociatedProject", @@ -397,8 +398,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/commande/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'orders', 'buttonnew'=>'CreateOrder', - 'testnew'=>$user->rights->commande->creer, - 'test'=>$conf->commande->enabled && $user->rights->commande->lire), + 'testnew'=>$user->hasRight('commande', 'creer'), + 'test'=>!empty($conf->commande->enabled) && $user->hasRight('commande', 'lire')), 'invoice'=>array( 'name'=>"CustomersInvoices", 'title'=>"ListInvoicesAssociatedProject", @@ -409,8 +410,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/compta/facture/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'bills', 'buttonnew'=>'CreateBill', - 'testnew'=>$user->rights->facture->creer, - 'test'=>$conf->facture->enabled && $user->rights->facture->lire), + 'testnew'=>$user->hasRight('facture', 'creer'), + 'test'=>!empty($conf->facture->enabled) && $user->hasRight('facture', 'lire')), 'invoice_predefined'=>array( 'name'=>"PredefinedInvoices", 'title'=>"ListPredefinedInvoicesAssociatedProject", @@ -420,8 +421,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/compta/facture/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'bills', 'buttonnew'=>'CreateBill', - 'testnew'=>$user->rights->facture->creer, - 'test'=>$conf->facture->enabled && $user->rights->facture->lire), + 'testnew'=>$user->hasRight('facture', 'creer'), + 'test'=>!empty($conf->facture->enabled) && $user->hasRight('facture', 'lire')), 'proposal_supplier'=>array( 'name'=>"SuppliersProposals", 'title'=>"ListSupplierProposalsAssociatedProject", @@ -431,8 +432,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object 'lang'=>'supplier_proposal', 'buttonnew'=>'AddSupplierProposal', - 'testnew'=>$user->rights->supplier_proposal->creer, - 'test'=>$conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire), + 'testnew'=>$user->hasRight('supplier_proposal', 'creer'), + 'test'=>!empty($conf->supplier_proposal->enabled) && $user->hasRight('supplier_proposal', 'lire')), 'order_supplier'=>array( 'name'=>"SuppliersOrders", 'title'=>"ListSupplierOrdersAssociatedProject", @@ -442,8 +443,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/fourn/commande/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object 'lang'=>'suppliers', 'buttonnew'=>'AddSupplierOrder', - 'testnew'=>($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer), - 'test'=>$conf->supplier_order->enabled && ($user->rights->fournisseur->commande->lire || $user->rights->supplier_order->lire)), + 'testnew'=>$user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer'), + 'test'=>!empty($conf->supplier_order->enabled) && $user->hasRight('fournisseur', 'commande', 'lire') || $user->hasRight('supplier_order', 'lire')), 'invoice_supplier'=>array( 'name'=>"BillsSuppliers", 'title'=>"ListSupplierInvoicesAssociatedProject", @@ -454,8 +455,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/fourn/facture/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object 'lang'=>'suppliers', 'buttonnew'=>'AddSupplierInvoice', - 'testnew'=>($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer), - 'test'=>$conf->supplier_invoice->enabled && ($user->rights->fournisseur->facture->lire || $user->rights->supplier_invoice->lire)), + 'testnew'=>$user->hasRight('fournisseur', 'facture', 'creer') || $user->hasRight('supplier_invoice', 'creer'), + 'test'=>!empty($conf->supplier_invoice->enabled) && $user->hasRight('fournisseur', 'facture', 'lire') || $user->hasRight('supplier_invoice', 'lire')), 'contract'=>array( 'name'=>"Contracts", 'title'=>"ListContractAssociatedProject", @@ -465,8 +466,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/contrat/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'contracts', 'buttonnew'=>'AddContract', - 'testnew'=>$user->rights->contrat->creer, - 'test'=>$conf->contrat->enabled && $user->rights->contrat->lire), + 'testnew'=>$user->hasRight('contrat', 'creer'), + 'test'=>!empty($conf->contrat->enabled) && $user->hasRight('contrat', 'lire')), 'intervention'=>array( 'name'=>"Interventions", 'title'=>"ListFichinterAssociatedProject", @@ -478,8 +479,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/fichinter/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'interventions', 'buttonnew'=>'AddIntervention', - 'testnew'=>$user->rights->ficheinter->creer, - 'test'=>$conf->ficheinter->enabled && $user->rights->ficheinter->lire), + 'testnew'=>$user->hasRight('ficheinter', 'creer'), + 'test'=>!empty($conf->ficheinter->enabled) && $user->hasRight('ficheinter', 'lire')), 'shipping'=>array( 'name'=>"Shippings", 'title'=>"ListShippingAssociatedProject", @@ -500,9 +501,9 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/mrp/mo_card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'mrp', 'buttonnew'=>'CreateMO', - 'testnew'=>'$user->rights->mrp->write', + 'testnew'=>$user->hasRight('mrp', 'write'), 'project_field'=>'fk_project', - 'test'=>$conf->mrp->enabled && $user->rights->mrp->read), + 'test'=>!empty($conf->mrp->enabled) && $user->hasRight('mrp', 'read')), 'trip'=>array( 'name'=>"TripsAndExpenses", 'title'=>"ListExpenseReportsAssociatedProject", @@ -514,8 +515,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/deplacement/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'trips', 'buttonnew'=>'AddTrip', - 'testnew'=>$user->rights->deplacement->creer, - 'test'=>$conf->deplacement->enabled && $user->rights->deplacement->lire), + 'testnew'=>$user->hasRight('deplacement', 'creer'), + 'test'=>!empty($conf->deplacement->enabled) && $user->hasRight('deplacement', 'lire')), 'expensereport'=>array( 'name'=>"ExpenseReports", 'title'=>"ListExpenseReportsAssociatedProject", @@ -527,8 +528,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/expensereport/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'trips', 'buttonnew'=>'AddTrip', - 'testnew'=>$user->rights->expensereport->creer, - 'test'=>$conf->expensereport->enabled && $user->rights->expensereport->lire), + 'testnew'=>$user->hasRight('expensereport', 'creer'), + 'test'=>!empty($conf->expensereport->enabled) && $user->hasRight('expensereport', 'lire')), 'donation'=>array( 'name'=>"Donation", 'title'=>"ListDonationsAssociatedProject", @@ -540,8 +541,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/don/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'donations', 'buttonnew'=>'AddDonation', - 'testnew'=>$user->rights->don->creer, - 'test'=>$conf->don->enabled && $user->rights->don->lire), + 'testnew'=>$user->hasRight('don', 'creer'), + 'test'=>!empty($conf->don->enabled) && $user->hasRight('don', 'lire')), 'loan'=>array( 'name'=>"Loan", 'title'=>"ListLoanAssociatedProject", @@ -553,8 +554,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/loan/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'loan', 'buttonnew'=>'AddLoan', - 'testnew'=>$user->rights->loan->write, - 'test'=>$conf->loan->enabled && $user->rights->loan->read), + 'testnew'=>$user->hasRight('loan', 'write'), + 'test'=>!empty($conf->loan->enabled) && $user->hasRight('loan', 'read')), 'chargesociales'=>array( 'name'=>"SocialContribution", 'title'=>"ListSocialContributionAssociatedProject", @@ -566,8 +567,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/compta/sociales/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'compta', 'buttonnew'=>'AddSocialContribution', - 'testnew'=>$user->rights->tax->charges->lire, - 'test'=>$conf->tax->enabled && $user->rights->tax->charges->lire), + 'testnew'=>$user->hasRight('tax', 'charges', 'lire'), + 'test'=>!empty($conf->tax->enabled) && $user->hasRight('tax', 'charges', 'lire')), 'project_task'=>array( 'name'=>"TaskTimeSpent", 'title'=>"ListTaskTimeUserProject", @@ -578,8 +579,8 @@ $listofreferent = array( 'disableamount'=>0, 'urlnew'=>DOL_URL_ROOT.'/projet/tasks/time.php?withproject=1&action=createtime&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'buttonnew'=>'AddTimeSpent', - 'testnew'=>$user->rights->projet->creer, - 'test'=>($conf->projet->enabled && $user->rights->projet->lire && empty($conf->global->PROJECT_HIDE_TASKS))), + 'testnew'=>$user->hasRight('project', 'creer'), + 'test'=>!empty($conf->project->enabled) && $user->hasRight('projet', 'lire') && !empty($conf->global->PROJECT_HIDE_TASKS)), 'stock_mouvement'=>array( 'name'=>"MouvementStockAssociated", 'title'=>"ListMouvementStockProject", @@ -588,7 +589,7 @@ $listofreferent = array( 'table'=>'stock_mouvement', 'datefieldname'=>'datem', 'disableamount'=>0, - 'test'=>($conf->stock->enabled && $user->rights->stock->mouvement->lire && !empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW))), + 'test'=>!empty($conf->stock->enabled) && $user->hasRight('stock', 'mouvement', 'lire') && !empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW)), 'salaries'=>array( 'name'=>"Salaries", 'title'=>"ListSalariesAssociatedProject", @@ -600,8 +601,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/salaries/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'salaries', 'buttonnew'=>'AddSalary', - 'testnew'=>$user->rights->salaries->write, - 'test'=>$conf->salaries->enabled && $user->rights->salaries->read), + 'testnew'=>$user->hasRight('salaries', 'write'), + 'test'=>!empty($conf->salaries->enabled) && $user->hasRight('salaries', 'read')), 'variouspayment'=>array( 'name'=>"VariousPayments", 'title'=>"ListVariousPaymentsAssociatedProject", @@ -613,8 +614,8 @@ $listofreferent = array( 'urlnew'=>DOL_URL_ROOT.'/compta/bank/various_payment/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'lang'=>'banks', 'buttonnew'=>'AddVariousPayment', - 'testnew'=>$user->rights->banque->modifier, - 'test'=>$conf->banque->enabled && $user->rights->banque->lire && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)), + 'testnew'=>$user->hasRight('banque', 'modifier'), + 'test'=>!empty($conf->banque->enabled) && $user->hasRight('banque', 'lire') && !empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)), /* No need for this, available on dedicated tab "Agenda/Events" 'agenda'=>array( 'name'=>"Agenda", @@ -715,7 +716,7 @@ if (!$showdatefilter) { $langs->loadLangs(array("suppliers", "bills", "orders", "proposals", "margins")); -if (!empty($conf->stock->enabled)) { +if (isModEnabled('stock')) { $langs->load('stocks'); } diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php index dda13754d31..07ff2bd38c9 100644 --- a/htdocs/projet/ganttview.php +++ b/htdocs/projet/ganttview.php @@ -117,7 +117,7 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -137,7 +137,7 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; +// Budget +print '
    '.$langs->trans("Budget").''; +if (strcmp($object->budget_amount, '')) { + print ''.price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; +} +print '
    '.$langs->trans("Dates").''; $start = dol_print_date($object->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($object->date_end, 'day'); @@ -318,13 +326,6 @@ if ($object->hasDelay()) { } print '
    '.$langs->trans("Budget").''; -if (strcmp($object->budget_amount, '')) { - print ''.price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; -} -print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -160,7 +160,7 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -179,8 +179,15 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; @@ -259,7 +259,7 @@ print load_fiche_titre($title, $linktotasks.'   '.$linktocreatetask, 'proje // can have a parent that is not affected to him). $tasksarray = $task->getTasksArray(0, 0, ($object->id ? $object->id : $id), $socid, 0); // We load also tasks limited to a particular user -//$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getUserRolesForProjectsOrTasks(0,$user,$object->id,0) : ''); +//$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getUserRolesForProjectsOrTasks(null, $user, $object->id, 0) : ''); //var_dump($tasksarray); //var_dump($tasksrole); diff --git a/htdocs/projet/graph_opportunities.inc.php b/htdocs/projet/graph_opportunities.inc.php index ae0542d8b4b..8c6fc512509 100644 --- a/htdocs/projet/graph_opportunities.inc.php +++ b/htdocs/projet/graph_opportunities.inc.php @@ -43,7 +43,7 @@ if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { $valsnb = array(); $valsamount = array(); $dataseries = array(); - // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for customer orders), 3=Closed (Sent/Received, billed or not) + // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for sale orders), 3=Closed (Sent/Received, billed or not) while ($i < $num) { $obj = $db->fetch_object($resql); if ($obj) { diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index b519f298ecc..044728227cf 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2020 Laurent Destailleur + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2005-2010 Regis Houssin * Copyright (C) 2019 Nicolas ZABOURI * @@ -24,6 +24,7 @@ * \brief Main project home page */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -258,7 +259,7 @@ if ($resql) { $companystatic->status = $obj->thirdpartystatus; print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($object->budget_amount, '')) { + print price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($object->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($object->date_end, 'day'); @@ -191,13 +198,6 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { - print price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency); - } - print '
    '; - print ''; @@ -309,7 +310,7 @@ if ($resql) { $companystatic = new Societe($db); // We need a clean new object for next loop because current one has some properties set. - +// List of open projects per thirdparty $sql = "SELECT COUNT(p.rowid) as nb, SUM(p.opp_amount)"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; diff --git a/htdocs/projet/jsgantt_language.js.php b/htdocs/projet/jsgantt_language.js.php index 35ab1132ae7..93b9ee5505f 100644 --- a/htdocs/projet/jsgantt_language.js.php +++ b/htdocs/projet/jsgantt_language.js.php @@ -67,7 +67,7 @@ var vLangs={'getDefaultLang(1); ?>': 'sunday':'transnoentities('Sunday'); ?>','monday':'transnoentities('Monday'); ?>','tuesday':'transnoentities('Tuesday'); ?>','wednesday':'transnoentities('Wednesday'); ?>','thursday':'transnoentities('Thursday'); ?>','friday':'transnoentities('Friday'); ?>','saturday':'transnoentities('Saturday'); ?>', 'sun':'transnoentities('SundayMin'); ?>','mon':'transnoentities('MondayMin'); ?>','tue':'transnoentities('TuesdayMin'); ?>','wed':'transnoentities('WednesdayMin'); ?>','thu':'transnoentities('ThursdayMin'); ?>','fri':'transnoentities('FridayMin'); ?>','sat':'transnoentities('SaturdayMin'); ?>' } -}; +} var vLang='getDefaultLang(1); ?>'; categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcategory.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } // Load translation files required by the page $langs->loadLangs(array('projects', 'companies', 'commercial')); -if (!empty($conf->eventorganization->enabled) && $conf->eventorganization->enabled) { +if (isModEnabled('eventorganization') && $conf->eventorganization->enabled) { $langs->loadLangs(array('eventorganization')); } @@ -67,11 +70,11 @@ if (!$user->rights->projet->lire) { accessforbidden(); } -$diroutputmassaction = $conf->projet->dir_output.'/temp/massgeneration/'.$user->id; +$diroutputmassaction = $conf->project->dir_output.'/temp/massgeneration/'.$user->id; $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; -$sortfield = GETPOST("sortfield", "aZ09comma"); -$sortorder = GETPOST("sortorder", 'aZ09comma'); +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // If $page is not defined, or '' or -1 or if we click on clear filters @@ -91,6 +94,7 @@ $search_all = GETPOST('search_all', 'alphanohtml') ? GETPOST('search_all', 'alph $search_ref = GETPOST("search_ref", 'alpha'); $search_label = GETPOST("search_label", 'alpha'); $search_societe = GETPOST("search_societe", 'alpha'); +$search_societe_alias = GETPOST("search_societe_alias", 'alpha'); $search_status = GETPOST("search_status", 'int'); $search_opp_status = GETPOST("search_opp_status", 'alpha'); $search_opp_percent = GETPOST("search_opp_percent", 'alpha'); @@ -108,6 +112,14 @@ $search_accept_conference_suggestions = GETPOST('search_accept_conference_sugges $search_accept_booth_suggestions = GETPOST('search_accept_booth_suggestions', 'int'); $search_price_registration = GETPOST("search_price_registration", 'alpha'); $search_price_booth = GETPOST("search_price_booth", 'alpha'); +$search_login = GETPOST('search_login', 'alpha'); +$searchCategoryCustomerOperator = 0; +if (GETPOSTISSET('formfilteraction')) { + $searchCategoryCustomerOperator = GETPOST('search_category_customer_operator', 'int'); +} elseif (!empty($conf->global->MAIN_SEARCH_CAT_OR_BY_DEFAULT)) { + $searchCategoryCustomerOperator = $conf->global->MAIN_SEARCH_CAT_OR_BY_DEFAULT; +} +$searchCategoryCustomerList = GETPOST('search_category_customer_list', 'array'); $optioncss = GETPOST('optioncss', 'alpha'); $mine = ((GETPOST('mode') == 'mine') ? 1 : 0); @@ -140,15 +152,12 @@ $search_date_end_endmonth = GETPOST('search_date_end_endmonth', 'int'); $search_date_end_endyear = GETPOST('search_date_end_endyear', 'int'); $search_date_end_endday = GETPOST('search_date_end_endday', 'int'); $search_date_end_end = dol_mktime(23, 59, 59, $search_date_end_endmonth, $search_date_end_endday, $search_date_end_endyear); // Use tzserver - +$search_category_array = GETPOST("search_category_".Categorie::TYPE_PROJECT."_list", "array"); if ($search_status == '') { $search_status = -1; // -1 or 1 } -if (!empty($conf->categorie->enabled)) { - $search_category_array = GETPOST("search_category_".Categorie::TYPE_PROJECT."_list", "array"); -} // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $object = new Project($db); @@ -197,10 +206,12 @@ foreach ($object->fields as $key => $val) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; // Add non object fields to fields for list -$arrayfields['s.nom'] = array('label'=>$langs->trans("ThirdParty"), 'checked'=>1, 'position'=>21, 'enabled'=>(empty($conf->societe->enabled) ? 0 : 1)); +$arrayfields['s.nom'] = array('label'=>$langs->trans("ThirdParty"), 'checked'=>1, 'position'=>21, 'enabled'=>(!isModEnabled('societe') ? 0 : 1)); +$arrayfields['s.name_alias'] = array('label'=>"AliasNameShort", 'checked'=>0, 'position'=>22); $arrayfields['commercial'] = array('label'=>$langs->trans("SaleRepresentativesOfThirdParty"), 'checked'=>0, 'position'=>23); $arrayfields['c.assigned'] = array('label'=>$langs->trans("AssignedTo"), 'checked'=>-1, 'position'=>120); -$arrayfields['opp_weighted_amount'] = array('label'=>$langs->trans('OpportunityWeightedAmountShort'), 'checked'=>0, 'position'=> 116, 'enabled'=>(empty($conf->global->PROJECT_USE_OPPORTUNITIES) ? 0 : 1), 'position'=>106); +$arrayfields['opp_weighted_amount'] = array('label'=>$langs->trans('OpportunityWeightedAmountShort'), 'checked'=>0, 'enabled'=>(empty($conf->global->PROJECT_USE_OPPORTUNITIES) ? 0 : 1), 'position'=>106); +$arrayfields['u.login'] = array('label'=>"Author", 'checked'=>1, 'position'=>165); // Force some fields according to search_usage filter... if (GETPOST('search_usage_opportunity')) { //$arrayfields['p.usage_opportunity']['visible'] = 1; // Not require, filter on search_opp_status is enough @@ -224,7 +235,8 @@ $arrayfields = dol_sort_array($arrayfields, 'position'); */ if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; @@ -246,6 +258,7 @@ if (empty($reshook)) { $search_ref = ""; $search_label = ""; $search_societe = ""; + $search_societe_alias = ''; $search_status = -1; $search_opp_status = -1; $search_opp_amount = ''; @@ -285,6 +298,7 @@ if (empty($reshook)) { $search_accept_booth_suggestions = ''; $search_price_registration = ''; $search_price_booth = ''; + $search_login = ''; $toselect = array(); $search_array_options = array(); $search_category_array = array(); @@ -297,7 +311,7 @@ if (empty($reshook)) { $permissiontoread = $user->rights->projet->lire; $permissiontodelete = $user->rights->projet->supprimer; $permissiontoadd = $user->rights->projet->creer; - $uploaddir = $conf->projet->dir_output; + $uploaddir = $conf->project->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; // Close records @@ -349,13 +363,24 @@ if (empty($reshook)) { * View */ -$companystatic = new Societe($db); $form = new Form($db); +$formcompany = new FormCompany($db); + +$companystatic = new Societe($db); +$taskstatic = new Task($db); $formother = new FormOther($db); $formproject = new FormProjets($db); $help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos"; -$title = $langs->trans("Projects"); +$title = $langs->trans("LeadsOrProjects"); +if (empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { + $title = $langs->trans("Projects"); +} +if (isset($conf->global->PROJECT_USE_OPPORTUNITIES) && $conf->global->PROJECT_USE_OPPORTUNITIES == 2) { // 2 = leads only + $title = $langs->trans("Leads"); +} +$morejs = array(); +$morecss = array(); // Get list of project id allowed to user (in a string list separated by comma) @@ -385,15 +410,19 @@ if (count($listofprojectcontacttypeexternal) == 0) { $listofprojectcontacttypeexternal[0] = '0'; // To avoid sql syntax error if not found } +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $distinct = 'DISTINCT'; // We add distinct until we are added a protection to be sure a contact of a project and task is only once. $sql = "SELECT ".$distinct." p.rowid as id, p.ref, p.title, p.fk_statut as status, p.fk_opp_status, p.public, p.fk_user_creat,"; $sql .= " p.datec as date_creation, p.dateo as date_start, p.datee as date_end, p.opp_amount, p.opp_percent, (p.opp_amount*p.opp_percent/100) as opp_weighted_amount, p.tms as date_update, p.budget_amount,"; $sql .= " p.usage_opportunity, p.usage_task, p.usage_bill_time, p.usage_organize_event,"; -$sql .= " p.email_msgid,"; -$sql .= " accept_conference_suggestions, accept_booth_suggestions, price_registration, price_booth,"; +$sql .= " p.email_msgid, p.import_key,"; +$sql .= " p.accept_conference_suggestions, p.accept_booth_suggestions, p.price_registration, p.price_booth,"; $sql .= " s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.code_client,"; $sql .= " country.code as country_code,"; -$sql .= " cls.code as opp_status_code"; +$sql .= " cls.code as opp_status_code,"; +$sql .= ' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender'; // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { @@ -406,15 +435,13 @@ $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $obje $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as p"; -if (!empty($conf->categorie->enabled)) { - $sql .= Categorie::getFilterJoinQuery(Categorie::TYPE_PROJECT, "p.rowid"); -} if (!empty($extrafields->attributes[$object->table_element]['label']) &&is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (p.rowid = ef.fk_object)"; } $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_lead_status as cls on p.fk_opp_status = cls.rowid"; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user AS u ON p.fk_user_creat = u.rowid'; // We'll need this table joined to the select in order to filter by sale // No check is done on company permission because readability is managed by public status of project and assignement. //if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON sc.fk_soc = s.rowid"; @@ -427,10 +454,11 @@ if ($search_project_user > 0) { if ($search_project_contact > 0) { $sql .= ", ".MAIN_DB_PREFIX."element_contact as ecp_contact"; } + +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + $sql .= " WHERE p.entity IN (".getEntity('project').')'; -if (!empty($conf->categorie->enabled)) { - $sql .= Categorie::getFilterSelectQuery(Categorie::TYPE_PROJECT, "p.rowid", $search_category_array); -} if (empty($user->rights->projet->all->lire)) { $sql .= " AND p.rowid IN (".$db->sanitize($projectsListId).")"; // public and assigned to, or restricted to company for external users } @@ -444,8 +472,15 @@ if ($search_ref) { if ($search_label) { $sql .= natural_search('p.title', $search_label); } -if ($search_societe) { - $sql .= natural_search('s.nom', $search_societe); +if (empty($arrayfields['s.name_alias']['checked']) && $search_societe) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_societe); +} else { + if ($search_societe) { + $sql .= natural_search('s.nom', $search_societe); + } + if ($search_societe_alias) { + $sql .= natural_search('s.name_alias', $search_societe_alias); + } } if ($search_opp_amount) { $sql .= natural_search('p.opp_amount', $search_opp_amount, 1); @@ -544,6 +579,83 @@ if ($search_price_registration != '') { if ($search_price_booth != '') { $sql .= natural_search('p.price_booth', $search_price_booth, 1); } +if ($search_login) { + $sql .= natural_search(array('u.login', 'u.firstname', 'u.lastname'), $search_login); +} +// Search for tag/category ($searchCategoryProjectList is an array of ID) +$searchCategoryProjectList = $search_category_array; +$searchCategoryProjectOperator = 0; +if (!empty($searchCategoryProjectList)) { + $searchCategoryProjectSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProjectList as $searchCategoryProject) { + if (intval($searchCategoryProject) == -2) { + $searchCategoryProjectSqlList[] = "NOT EXISTS (SELECT ck.fk_project FROM ".MAIN_DB_PREFIX."categorie_project as ck WHERE p.rowid = ck.fk_project)"; + } elseif (intval($searchCategoryProject) > 0) { + if ($searchCategoryProjectOperator == 0) { + $searchCategoryProjectSqlList[] = " EXISTS (SELECT ck.fk_project FROM ".MAIN_DB_PREFIX."categorie_project as ck WHERE p.rowid = ck.fk_project AND ck.fk_categorie = ".((int) $searchCategoryProject).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProject); + } + } + } + if ($listofcategoryid) { + $searchCategoryProjectSqlList[] = " EXISTS (SELECT ck.fk_project FROM ".MAIN_DB_PREFIX."categorie_project as ck WHERE p.rowid = ck.fk_project AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProjectOperator == 1) { + if (!empty($searchCategoryProjectSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProjectSqlList).")"; + } + } else { + if (!empty($searchCategoryProjectSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProjectSqlList).")"; + } + } +} +$searchCategoryCustomerSqlList = array(); +if ($searchCategoryCustomerOperator == 1) { + $existsCategoryCustomerList = array(); + foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + if (intval($searchCategoryCustomer) == -2) { + $sqlCategoryCustomerNotExists = " NOT EXISTS ("; + $sqlCategoryCustomerNotExists .= " SELECT cat_cus.fk_soc"; + $sqlCategoryCustomerNotExists .= " FROM ".$db->prefix()."categorie_societe AS cat_cus"; + $sqlCategoryCustomerNotExists .= " WHERE cat_cus.fk_soc = p.fk_soc"; + $sqlCategoryCustomerNotExists .= " )"; + $searchCategoryCustomerSqlList[] = $sqlCategoryCustomerNotExists; + } elseif (intval($searchCategoryCustomer) > 0) { + $existsCategoryCustomerList[] = $db->escape($searchCategoryCustomer); + } + } + if (!empty($existsCategoryCustomerList)) { + $sqlCategoryCustomerExists = " EXISTS ("; + $sqlCategoryCustomerExists .= " SELECT cat_cus.fk_soc"; + $sqlCategoryCustomerExists .= " FROM ".$db->prefix()."categorie_societe AS cat_cus"; + $sqlCategoryCustomerExists .= " WHERE cat_cus.fk_soc = p.fk_soc"; + $sqlCategoryCustomerExists .= " AND cat_cus.fk_categorie IN (".$db->sanitize(implode(',', $existsCategoryCustomerList)).")"; + $sqlCategoryCustomerExists .= " )"; + $searchCategoryCustomerSqlList[] = $sqlCategoryCustomerExists; + } + if (!empty($searchCategoryCustomerSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryCustomerSqlList).")"; + } +} else { + foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + if (intval($searchCategoryCustomer) == -2) { + $sqlCategoryCustomerNotExists = " NOT EXISTS ("; + $sqlCategoryCustomerNotExists .= " SELECT cat_cus.fk_soc"; + $sqlCategoryCustomerNotExists .= " FROM ".$db->prefix()."categorie_societe AS cat_cus"; + $sqlCategoryCustomerNotExists .= " WHERE cat_cus.fk_soc = p.fk_soc"; + $sqlCategoryCustomerNotExists .= " )"; + $searchCategoryCustomerSqlList[] = $sqlCategoryCustomerNotExists; + } elseif (intval($searchCategoryCustomer) > 0) { + $searchCategoryCustomerSqlList[] = "p.fk_soc IN (SELECT fk_soc FROM ".$db->prefix()."categorie_societe WHERE fk_categorie = ".((int) $searchCategoryCustomer).")"; + } + } + if (!empty($searchCategoryCustomerSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryCustomerSqlList).")"; + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks @@ -687,6 +799,9 @@ if ($search_label != '') { if ($search_societe != '') { $param .= '&search_societe='.urlencode($search_societe); } +if ($search_societe_alias != '') { + $param .= '&search_societe_alias='.urlencode($search_societe_alias); +} if ($search_status >= 0) { $param .= '&search_status='.urlencode($search_status); } @@ -735,9 +850,15 @@ if ($search_price_registration != '') { if ($search_price_booth != '') { $param .= '&search_price_booth='.urlencode($search_price_booth); } +if ($search_login) { + $param .= '&search_login='.urlencode($search_login); +} if ($optioncss != '') { $param .= '&optioncss='.urlencode($optioncss); } +foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + $param .= "&search_category_customer_list[]=".urlencode($searchCategoryCustomer); +} // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; @@ -750,14 +871,15 @@ $arrayofmassactions = array( //if($user->rights->societe->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer"); if ($user->rights->projet->creer) { $arrayofmassactions['close'] = img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Close"); + $arrayofmassactions['preaffectuser'] = img_picto('', 'user', 'class="pictofixedwidth"').$langs->trans("AffectUser"); } if ($user->rights->projet->supprimer) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } -if ($user->rights->projet->creer) { +if (isModEnabled('category') && $user->rights->projet->creer) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } -if (in_array($massaction, array('presend', 'predelete', 'preaffecttag'))) { +if (in_array($massaction, array('presend', 'predelete', 'preaffecttag', 'preaffectuser'))) { $arrayofmassactions = array(); } @@ -839,10 +961,22 @@ if ($user->rights->user->user->lire) { } // Filter on categories -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { $formcategory = new FormCategory($db); $moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PROJECT, $search_category_array); } +// Filter on customer categories +if (!empty($conf->global->MAIN_SEARCH_CATEGORY_CUSTOMER_ON_PROJECT_LIST) && !empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + $moreforfilter .= '
    '; + $tmptitle = $langs->transnoentities('CustomersProspectsCategoriesShort'); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"'); + $categoriesArr = $form->select_all_categories(Categorie::TYPE_CUSTOMER, '', '', 64, 0, 1); + $categoriesArr[-2] = '- '.$langs->trans('NotCategorized').' -'; + $moreforfilter .= Form::multiselectarray('search_category_customer_list', $categoriesArr, $searchCategoryCustomerList, 0, 0, 'minwidth300', 0, 0, '', 'category', $tmptitle); + $moreforfilter .= ' '; + $moreforfilter .= $form->textwithpicto('', $langs->trans('UseOrOperatorForCategories') . ' : ' . $tmptitle, 1, 'help', '', 0, 2, 'tooltip_cat_cus'); // Tooltip on click + $moreforfilter .= '
    '; +} if (!empty($moreforfilter)) { print '
    '; @@ -854,7 +988,7 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); @@ -864,6 +998,13 @@ print '
    '; + print ''; print $projectstatic->getNomUrl(1); print '
    '; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} // Project ref if (!empty($arrayfields['p.ref']['checked'])) { print ''; } + +// Alias +if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; +} // Sale representative if (!empty($arrayfields['commercial']['checked'])) { print ''; @@ -923,10 +1076,11 @@ if (!empty($arrayfields['p.datee']['checked'])) { print ''; print ''; } +// Visibility if (!empty($arrayfields['p.public']['checked'])) { print ''; } if (!empty($arrayfields['c.assigned']['checked'])) { @@ -936,7 +1090,7 @@ if (!empty($arrayfields['c.assigned']['checked'])) { // Opp status if (!empty($arrayfields['p.fk_opp_status']['checked'])) { print ''; } if (!empty($arrayfields['p.opp_amount']['checked'])) { @@ -999,6 +1153,12 @@ if (!empty($arrayfields['p.price_booth']['checked'])) { print ''; print ''; } +if (!empty($arrayfields['u.login']['checked'])) { + // Author + print ''; +} // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; @@ -1021,26 +1181,34 @@ if (!empty($arrayfields['p.email_msgid']['checked'])) { print ''; } +if (!empty($arrayfields['p.import_key']['checked'])) { + // Import key + print ''; +} if (!empty($arrayfields['p.fk_statut']['checked'])) { - print ''; } // Action column -print ''; - +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} print ''."\n"; print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} if (!empty($arrayfields['p.ref']['checked'])) { print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], "p.ref", "", $param, "", $sortfield, $sortorder); } @@ -1050,6 +1218,9 @@ if (!empty($arrayfields['p.title']['checked'])) { if (!empty($arrayfields['s.nom']['checked'])) { print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], "s.nom", "", $param, "", $sortfield, $sortorder); } +if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], "s.name_alias", "", $param, "", $sortfield, $sortorder); +} if (!empty($arrayfields['commercial']['checked'])) { print_liste_field_titre($arrayfields['commercial']['label'], $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder, 'tdoverflowmax100imp '); } @@ -1104,6 +1275,9 @@ if (!empty($arrayfields['p.price_registration']['checked'])) { if (!empty($arrayfields['p.price_booth']['checked'])) { print_liste_field_titre($arrayfields['p.price_booth']['label'], $_SERVER["PHP_SELF"], 'p.price_booth', "", $param, '', $sortfield, $sortorder, 'right '); } +if (!empty($arrayfields['u.login']['checked'])) { + print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'align="center"', $sortfield, $sortorder); +} // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields @@ -1119,19 +1293,30 @@ if (!empty($arrayfields['p.tms']['checked'])) { if (!empty($arrayfields['p.email_msgid']['checked'])) { print_liste_field_titre($arrayfields['p.email_msgid']['label'], $_SERVER["PHP_SELF"], "p.email_msgid", "", $param, '', $sortfield, $sortorder, 'center '); } -if (!empty($arrayfields['p.fk_statut']['checked'])) { - print_liste_field_titre($arrayfields['p.fk_statut']['label'], $_SERVER["PHP_SELF"], "p.fk_statut", "", $param, '', $sortfield, $sortorder, 'right '); +if (!empty($arrayfields['p.import_key']['checked'])) { + print_liste_field_titre($arrayfields['p.import_key']['label'], $_SERVER["PHP_SELF"], "p.import_key", "", $param, '', $sortfield, $sortorder, ''); +} +if (!empty($arrayfields['p.fk_statut']['checked'])) { + print_liste_field_titre($arrayfields['p.fk_statut']['label'], $_SERVER["PHP_SELF"], "p.fk_statut", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "\n"; +$userstatic = new User($db); + $i = 0; $totalarray = array( 'nbfield' => 0, 'val' => array(), ); -while ($i < min($num, $limit)) { +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); + if (empty($obj)) { + break; // Should not happen + } $object->id = $obj->id; $object->user_author_id = $obj->fk_user_creat; @@ -1160,6 +1345,21 @@ while ($i < min($num, $limit)) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } // Project url if (!empty($arrayfields['p.ref']['checked'])) { print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } // Opp Status if (!empty($arrayfields['p.fk_opp_status']['checked'])) { @@ -1323,7 +1541,11 @@ while ($i < min($num, $limit)) { //if ($obj->opp_status_code) if (strcmp($obj->opp_amount, '')) { print ''.price($obj->opp_amount, 1, $langs, 1, -1, -1, '').''; - $totalarray['val']['p.opp_amount'] += $obj->opp_amount; + if (empty($totalarray['val']['p.opp_amount'])) { + $totalarray['val']['p.opp_amount'] = $obj->opp_amount; + } else { + $totalarray['val']['p.opp_amount'] += $obj->opp_amount; + } } print ''; if (!$i) { @@ -1352,7 +1574,11 @@ while ($i < min($num, $limit)) { print ''; if (!$i) { @@ -1367,7 +1593,11 @@ while ($i < min($num, $limit)) { print ''; if (!$i) { @@ -1473,6 +1703,33 @@ while ($i < min($num, $limit)) { $totalarray['pos'][$totalarray['nbfield']] = 'p.price_booth'; } } + // Author + $userstatic->id = $obj->fk_user_creat; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; + + if (!empty($arrayfields['u.login']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; // Fields from hook @@ -1504,25 +1761,34 @@ while ($i < min($num, $limit)) { print ''; if (!$i) $totalarray['nbfield']++; } + // Import key + if (!empty($arrayfields['p.import_key']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } // Status if (!empty($arrayfields['p.fk_statut']['checked'])) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } } // Action column - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; } print "\n"; @@ -1534,14 +1800,26 @@ while ($i < min($num, $limit)) { // Show total line include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; +} + $db->free($resql); -$parameters = array('sql' => $sql); -$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook +$parameters = array('arrayfields'=>$arrayfields, 'sql' => $sql); +$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print "
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -887,6 +1028,18 @@ if (!empty($arrayfields['s.nom']['checked'])) { print ''; print ''; + if ($socid > 0) { + $tmpthirdparty = new Societe($db); + $tmpthirdparty->fetch($socid); + $search_societe_alias = $tmpthirdparty->name_alias; + } + print ''; + print ' '; $array = array(''=>'', 0 => $langs->trans("PrivateProject"), 1 => $langs->trans("SharedProject")); - print $form->selectarray('search_public', $array, $search_public); + print $form->selectarray('search_public', $array, $search_public, 0, 0, 0, '', 0, 0, 0, '', 'maxwidth75'); print ''; - print $formproject->selectOpportunityStatus('search_opp_status', $search_opp_status, 1, 0, 1, 0, 'maxwidth100 nowrapoption', 1, 0); + print $formproject->selectOpportunityStatus('search_opp_status', $search_opp_status, 1, 1, 1, 0, 'maxwidth125 nowrapoption', 1, 1); print ''; + print ''; + print ''; print ''; + print ''; + print ''; $arrayofstatus = array(); foreach ($object->statuts_short as $key => $val) { $arrayofstatus[$key] = $langs->trans($val); } $arrayofstatus['99'] = $langs->trans("NotClosed").' ('.$langs->trans('Draft').' + '.$langs->trans('Opened').')'; - print $form->selectarray('search_status', $arrayofstatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'minwidth75imp maxwidth125 selectarrowonleft'); - print ajax_combobox('search_status'); + print $form->selectarray('search_status', $arrayofstatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -1185,7 +1385,20 @@ while ($i < min($num, $limit)) { if (!empty($arrayfields['s.nom']['checked'])) { print ''; if ($obj->socid) { - print $companystatic->getNomUrl(1); + print $companystatic->getNomUrl(1, '', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + } else { + print ' '; + } + print ''; + if ($obj->socid) { + print $companystatic->name_alias; } else { print ' '; } @@ -1196,7 +1409,7 @@ while ($i < min($num, $limit)) { } // Sales Representatives if (!empty($arrayfields['commercial']['checked'])) { - print ''; + print ''; if ($obj->socid) { $companystatic->id = $obj->socid; $companystatic->name = $obj->name; @@ -1238,7 +1451,8 @@ while ($i < min($num, $limit)) { $totalarray['nbfield']++; } } - // Date start + + // Date start project if (!empty($arrayfields['p.dateo']['checked'])) { print ''; print dol_print_date($db->jdate($obj->date_start), 'day'); @@ -1247,7 +1461,7 @@ while ($i < min($num, $limit)) { $totalarray['nbfield']++; } } - // Date end + // Date end project if (!empty($arrayfields['p.datee']['checked'])) { print ''; print dol_print_date($db->jdate($obj->date_end), 'day'); @@ -1256,6 +1470,7 @@ while ($i < min($num, $limit)) { $totalarray['nbfield']++; } } + // Visibility if (!empty($arrayfields['p.public']['checked'])) { print ''; @@ -1273,10 +1488,10 @@ while ($i < min($num, $limit)) { } // Contacts of project if (!empty($arrayfields['c.assigned']['checked'])) { - print ''; + print ''; $ifisrt = 1; foreach (array('internal', 'external') as $source) { - $tab = $object->liste_contact(-1, $source); + $tab = $object->liste_contact(-1, $source, 0, '', 1); $numcontact = count($tab); if (!empty($numcontact)) { foreach ($tab as $contactproject) { @@ -1305,6 +1520,9 @@ while ($i < min($num, $limit)) { } } print ''; if ($obj->opp_weighted_amount) { print ''.price($obj->opp_weighted_amount, 1, $langs, 1, -1, -1, '').''; - $totalarray['val']['opp_weighted_amount'] += $obj->opp_weighted_amount; + if (empty($totalarray['val']['opp_weighted_amount'])) { + $totalarray['val']['opp_weighted_amount'] = $obj->opp_weighted_amount; + } else { + $totalarray['val']['opp_weighted_amount'] += $obj->opp_weighted_amount; + } } print ''; if ($obj->budget_amount != '') { print ''.price($obj->budget_amount, 1, $langs, 1, -1, -1).''; - $totalarray['val']['p.budget_amount'] += $obj->budget_amount; + if (empty($totalarray['val']['p.budget_amount'])) { + $totalarray['val']['p.budget_amount'] = $obj->budget_amount; + } else { + $totalarray['val']['p.budget_amount'] += $obj->budget_amount; + } } print ''; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } else { + print ' '; + } + print "'.dol_escape_htmltag($obj->import_key).''.$object->getLibStatut(5).''.$object->getLibStatut(5).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->id, $arrayofselected)) { - $selected = 1; + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
    '.$langs->trans("NoRecordFound").'
    \n"; print ''; + print "\n"; // End of page diff --git a/htdocs/projet/messaging.php b/htdocs/projet/messaging.php new file mode 100644 index 00000000000..b266b87700d --- /dev/null +++ b/htdocs/projet/messaging.php @@ -0,0 +1,221 @@ + + * Copyright (C) 2005-2009 Regis Houssin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/projet/messaging.php + * \ingroup project + * \brief Page with events on project + */ + +// Load Dolibarr environment +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; + +// Load translation files required by the page +$langs->load("projects"); + +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$socid = GETPOST('socid', 'int'); +$action = GETPOST('action', 'aZ09'); + +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST("sortfield", "aZ09comma"); +$sortorder = GETPOST("sortorder", 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +$page = is_numeric($page) ? $page : 0; +$page = $page == -1 ? 0 : $page; +if (!$sortfield) { + $sortfield = "a.datep,a.id"; +} +if (!$sortorder) { + $sortorder = "DESC"; +} +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + +if (GETPOST('actioncode', 'array')) { + $actioncode = GETPOST('actioncode', 'array', 3); + if (!count($actioncode)) { + $actioncode = '0'; + } +} else { + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); +} +$search_agenda_label = GETPOST('search_agenda_label'); + +$hookmanager->initHooks(array('projectcardinfo')); + +// Security check +$id = GETPOST("id", 'int'); +$socid = 0; +//if ($user->socid > 0) $socid = $user->socid; // For external user, no check is done on company because readability is managed by public status of project and assignement. +$result = restrictedArea($user, 'projet', $id, 'projet&project'); + +if (!$user->rights->projet->lire) { + accessforbidden(); +} + + + +/* + * Actions + */ + +$parameters = array('id'=>$socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +// Purge search criteria +if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers + $actioncode = ''; + $search_agenda_label = ''; +} + + + +/* + * View + */ + +$form = new Form($db); +$object = new Project($db); + +if ($id > 0 || !empty($ref)) { + $object->fetch($id, $ref); + $object->fetch_thirdparty(); + if (!empty($conf->global->PROJECT_ALLOW_COMMENT_ON_PROJECT) && method_exists($object, 'fetchComments') && empty($object->comments)) { + $object->fetchComments(); + } + $object->info($object->id); +} +$agenda = (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) ? '/'.$langs->trans("Agenda") : ''; +$title = $langs->trans('Events').$agenda.' - '.$object->ref.' '.$object->name; +if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { + $title = $object->ref.' '.$object->name.' - '.$langs->trans("Info"); +} +$help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos"; +llxHeader("", $title, $help_url); + +$head = project_prepare_head($object); + +print dol_get_fiche_head($head, 'agenda', $langs->trans("Project"), -1, ($object->public ? 'projectpub' : 'project')); + + +// Project card + +$linkback = ''.$langs->trans("BackToList").''; + +$morehtmlref = '
    '; +// Title +$morehtmlref .= $object->title; +// Thirdparty +if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); +} +$morehtmlref .= '
    '; + +// Define a complementary filter for search of next/prev ref. +if (empty($user->rights->projet->all->lire)) { + $objectsListId = $object->getProjectsAuthorizedForUser($user, 0, 0); + $object->next_prev_filter = " rowid IN (".$db->sanitize(count($objectsListId) ?join(',', array_keys($objectsListId)) : '0').")"; +} + +dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + +print '
    '; +print '
    '; + +dol_print_object_info($object, 1); + +print '
    '; + +print '
    '; + +print dol_get_fiche_end(); + + +// Actions buttons + +$out = ''; +$permok = $user->rights->agenda->myactions->create; +if ($permok) { + $out .= '&projectid='.$object->id; +} + + + +//print ''; + +if (!empty($object->id)) { + print '
    '; + + //print '
    '; + $morehtmlcenter = ''; + + // Show link to change view in message + $messagingUrl = DOL_URL_ROOT.'/projet/messaging.php?id='.$object->id; + $morehtmlcenter .= dolGetButtonTitle($langs->trans('ShowAsConversation'), '', 'fa fa-comments imgforviewmode', $messagingUrl, '', 2); + + // Show link to change view in agenda + $messagingUrl = DOL_URL_ROOT.'/projet/agenda.php?id='.$object->id; + $morehtmlcenter .= dolGetButtonTitle($langs->trans('MessageListViewType'), '', 'fa fa-bars imgforviewmode', $messagingUrl, '', 1); + + + // // Show link to send an email (if read and not closed) + // $btnstatus = $object->status < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; + // $url = 'card.php?track_id='.$object->track_id.'&action=presend_addmessage&mode=init&private_message=0&send_email=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?track_id='.$object->track_id).'#formmailbeforetitle'; + // $morehtmlright .= dolGetButtonTitle($langs->trans('SendMail'), '', 'fa fa-paper-plane', $url, 'email-title-button', $btnstatus); + + // // Show link to add a private message (if read and not closed) + // $btnstatus = $object->status < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; + // $url = 'card.php?track_id='.$object->track_id.'&action=presend_addmessage&mode=init&backtopage='.urlencode($_SERVER["PHP_SELF"].'?track_id='.$object->track_id).'#formmailbeforetitle'; + // $morehtmlright .= dolGetButtonTitle($langs->trans('TicketAddMessage'), '', 'fa fa-comment-dots', $url, 'add-new-ticket-title-button', $btnstatus); + + // Show link to add event + if (isModEnabled('agenda')) { + $addActionBtnRight = !empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create'); + $morehtmlcenter .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'&socid='.$object->socid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $addActionBtnRight); + } + + $param = '&id='.$object->id; + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.$contextpage; + } + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.$limit; + } + + print_barre_liste($langs->trans("ActionsOnProject"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlcenter, '', 0, 1, 1); + + // List of all actions + $filters = array(); + $filters['search_agenda_label'] = $search_agenda_label; + show_actions_messaging($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php index 2ee52d3a247..3ca7949b35a 100644 --- a/htdocs/projet/note.php +++ b/htdocs/projet/note.php @@ -22,6 +22,7 @@ * \brief Fiche d'information sur un projet */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; @@ -69,7 +70,7 @@ if (empty($reshook)) { * View */ -$title = $langs->trans("Project").' - '.$langs->trans("Note").' - '.$object->ref.' '.$object->name; +$title = $langs->trans("Notes").' - '.$object->ref.' '.$object->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->ref.' '.$object->name.' - '.$langs->trans("Note"); } @@ -101,7 +102,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= '
    '; diff --git a/htdocs/projet/stats/index.php b/htdocs/projet/stats/index.php index 5926451e321..32498121045 100644 --- a/htdocs/projet/stats/index.php +++ b/htdocs/projet/stats/index.php @@ -22,6 +22,7 @@ * \brief Page for project statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; @@ -40,7 +41,7 @@ if ($user->socid > 0) { $action = ''; $socid = $user->socid; } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year', 'int') > 0 ? GETPOST('year', 'int') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php index 410b637f3e6..c966a34ea0b 100644 --- a/htdocs/projet/tasks.php +++ b/htdocs/projet/tasks.php @@ -31,13 +31,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; } // Load translation files required by the page $langsLoad=array('projects', 'users', 'companies'); -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langsLoad[]='eventorganization'; } @@ -137,7 +137,7 @@ $socid = 0; //if ($user->socid > 0) $socid = $user->socid; // For external user, no check is done on company because readability is managed by public status of project and assignement. $result = restrictedArea($user, 'projet', $id, 'projet&project'); -$diroutputmassaction = $conf->projet->dir_output.'/tasks/temp/massgeneration/'.$user->id; +$diroutputmassaction = $conf->project->dir_output.'/tasks/temp/massgeneration/'.$user->id; // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('projecttaskscard', 'globalcard')); @@ -152,18 +152,18 @@ $planned_workload = $planned_workloadhour * 3600 + $planned_workloadmin * 60; // Definition of fields for list $arrayfields = array( - 't.ref'=>array('label'=>$langs->trans("RefTask"), 'checked'=>1, 'position'=>1), - 't.label'=>array('label'=>$langs->trans("LabelTask"), 'checked'=>1, 'position'=>2), - 't.description'=>array('label'=>$langs->trans("Description"), 'checked'=>0, 'position'=>3), - 't.dateo'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>4), - 't.datee'=>array('label'=>$langs->trans("Deadline"), 'checked'=>1, 'position'=>5), - 't.planned_workload'=>array('label'=>$langs->trans("PlannedWorkload"), 'checked'=>1, 'position'=>6), - 't.duration_effective'=>array('label'=>$langs->trans("TimeSpent"), 'checked'=>1, 'position'=>7), - 't.progress_calculated'=>array('label'=>$langs->trans("ProgressCalculated"), 'checked'=>1, 'position'=>8), - 't.progress'=>array('label'=>$langs->trans("ProgressDeclared"), 'checked'=>1, 'position'=>9), - 't.progress_summary'=>array('label'=>$langs->trans("TaskProgressSummary"), 'checked'=>1, 'position'=>10), - 't.budget_amount'=>array('label'=>"Budget", 'checked'=>1, 'position'=>11), - 'c.assigned'=>array('label'=>$langs->trans("TaskRessourceLinks"), 'checked'=>1, 'position'=>12), + 't.ref'=>array('label'=>"RefTask", 'checked'=>1, 'position'=>1), + 't.label'=>array('label'=>"LabelTask", 'checked'=>1, 'position'=>2), + 't.description'=>array('label'=>"Description", 'checked'=>0, 'position'=>3), + 't.dateo'=>array('label'=>"DateStart", 'checked'=>1, 'position'=>4), + 't.datee'=>array('label'=>"Deadline", 'checked'=>1, 'position'=>5), + 't.planned_workload'=>array('label'=>"PlannedWorkload", 'checked'=>1, 'position'=>6), + 't.duration_effective'=>array('label'=>"TimeSpent", 'checked'=>1, 'position'=>7), + 't.progress_calculated'=>array('label'=>"ProgressCalculated", 'checked'=>1, 'position'=>8), + 't.progress'=>array('label'=>"ProgressDeclared", 'checked'=>1, 'position'=>9), + 't.progress_summary'=>array('label'=>"TaskProgressSummary", 'checked'=>1, 'position'=>10), + 't.budget_amount'=>array('label'=>"Budget", 'checked'=>0, 'position'=>11), + 'c.assigned'=>array('label'=>"TaskRessourceLinks", 'checked'=>1, 'position'=>12), ); if ($object->usage_bill_time) { $arrayfields['t.tobill'] = array('label'=>$langs->trans("TimeToBill"), 'checked'=>0, 'position'=>11); @@ -234,7 +234,7 @@ if (empty($reshook)) { $objectlabel = 'Tasks'; $permissiontoread = $user->rights->projet->lire; $permissiontodelete = $user->rights->projet->supprimer; - $uploaddir = $conf->projet->dir_output.'/tasks'; + $uploaddir = $conf->project->dir_output.'/tasks'; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -357,7 +357,7 @@ if ($action == 'createtask' && $user->rights->projet->creer) { } else { if ($db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { $langs->load("projects"); - setEventMessages($langs->trans('NewTaskRefSuggested'), '', 'warnings'); + setEventMessages($langs->trans('NewTaskRefSuggested'), null, 'warnings'); $duplicate_code_error = true; } else { setEventMessages($task->error, $task->errors, 'errors'); @@ -402,10 +402,13 @@ $projectstatic = new Project($db); $taskstatic = new Task($db); $userstatic = new User($db); -$title = $langs->trans("Project").' - '.$langs->trans("Tasks").' - '.$object->ref.' '.$object->name; +$title = $langs->trans("Tasks").' - '.$object->ref.' '.$object->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->ref.' '.$object->name.' - '.$langs->trans("Tasks"); } +if ($action == 'create') { + $title = $langs->trans("NewTask"); +} $help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos"; llxHeader("", $title, $help_url); @@ -550,7 +553,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $object->title; // Thirdparty if (!empty($object->thirdparty->id) && $object->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -569,7 +572,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -592,7 +595,7 @@ if ($id > 0 || !empty($ref)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -611,8 +614,15 @@ if ($id > 0 || !empty($ref)) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; @@ -673,7 +676,9 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third print load_fiche_titre($langs->trans("NewTask"), '', 'projecttask'); + $projectoktoentertime = 1; if ($object->id > 0 && $object->statut == Project::STATUS_CLOSED) { + $projectoktoentertime = 0; print '
    '; $langs->load("errors"); print $langs->trans("WarningProjectClosed"); @@ -681,6 +686,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third } if ($object->id > 0 && $object->statut == Project::STATUS_DRAFT) { + $projectoktoentertime = 0; print '
    '; $langs->load("errors"); print $langs->trans("WarningProjectDraft"); @@ -729,25 +735,34 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third // Project print '
    '; - - // Assigned to - print ''; - // Date start + $contactsofproject = (empty($object->id) ? '' : $object->getListContactId('internal')); + + // Assigned to + print ''; + + // Date start task print ''; - // Date end + // Date end task print ''; @@ -766,18 +781,14 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third print ''; print ''; @@ -851,7 +862,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third $tmpuser->fetch($search_user_id); } - $tasksrole = ($tmpuser->id > 0 ? $taskstatic->getUserRolesForProjectsOrTasks(0, $tmpuser, $object->id, 0) : ''); + $tasksrole = ($tmpuser->id > 0 ? $taskstatic->getUserRolesForProjectsOrTasks(null, $tmpuser, $object->id, 0) : ''); //var_dump($tasksarray); //var_dump($tasksrole); @@ -1054,6 +1065,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "\n"; + $nboftaskshown = 0; if (count($tasksarray) > 0) { // Show all lines in taskarray (recursive function to go down on tree) $j = 0; $level = 0; diff --git a/htdocs/projet/tasks/comment.php b/htdocs/projet/tasks/comment.php index 82628d5136b..4540112f4c3 100644 --- a/htdocs/projet/tasks/comment.php +++ b/htdocs/projet/tasks/comment.php @@ -132,7 +132,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $projectstatic->title; // Thirdparty if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -151,7 +151,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($object->budget_amount, '')) { + print ''.price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($object->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($object->date_end, 'day'); @@ -623,13 +633,6 @@ if ($id > 0 || !empty($ref)) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { - print ''.price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; - } - print '
    '.$langs->trans("ChildOfProjectTask").''; print img_picto('', 'project'); - $formother->selectProjectTasks(GETPOST('task_parent'), !empty($projectid) ? $projectid : $object->id, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500'); - print '
    '.$langs->trans("AffectedTo").''; - $contactsofproject = (!empty($object->id) ? $object->getListContactId('internal') : ''); - if (is_array($contactsofproject) && count($contactsofproject)) { - print $form->select_dolusers($user->id, 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, '', 'maxwidth300'); + if ($projectoktoentertime) { + $formother->selectProjectTasks(GETPOST('task_parent'), empty($projectid) ? $object->id : $projectid, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500 widthcentpercentminusxx'); } else { - print ''.$langs->trans("NoUserAssignedToTheProject").''; + $formother->selectProjectTasks(GETPOST('task_parent'), empty($projectid) ? $object->id : $projectid, 'task_parent', 0, 0, 1, 1, 0, '', 'maxwidth500 widthcentpercentminusxx'); } print '
    '.$langs->trans("AffectedTo").''; + if (is_array($contactsofproject) && count($contactsofproject)) { + print $form->select_dolusers($user->id, 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, '', 'maxwidth300'); + } else { + if ($projectid > 0 || $object->id > 0) { + print ''.$langs->trans("NoUserAssignedToTheProject").''; + } else { + print $form->select_dolusers($user->id, 'userid', 0, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); + } + } + print '
    '.$langs->trans("DateStart").''; print $form->selectDate((!empty($date_start) ? $date_start : ''), 'dateo', 1, 1, 0, '', 1, 1); print '
    '.$langs->trans("DateEnd").''; print $form->selectDate((!empty($date_end) ? $date_end : -1), 'datee', -1, 1, 0, '', 1, 1); print '
    '.$langs->trans("Description").''; - if (empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) { - print ''; - } else { - // WYSIWYG editor - include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $cked_enabled = (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS) ? $conf->global->FCKEDITOR_ENABLE_DETAILS : 0); - if (!empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) { - $nbrows = $conf->global->MAIN_INPUT_DESC_HEIGHT; - } - $doleditor = new DolEditor('description', $object->description, '', 80, 'dolibarr_details', '', false, true, $cked_enabled, $nbrows); - print $doleditor->Create(); + // WYSIWYG editor + include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $cked_enabled = (!empty($conf->global->FCKEDITOR_ENABLE_SOCIETE) ? $conf->global->FCKEDITOR_ENABLE_SOCIETE : 0); + if (!empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) { + $nbrows = $conf->global->MAIN_INPUT_DESC_HEIGHT; } + $doleditor = new DolEditor('description', $object->description, '', 80, 'dolibarr_details', '', false, true, $cked_enabled, $nbrows); + print $doleditor->Create(); print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -174,8 +174,8 @@ if ($id > 0 || !empty($ref)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; + if (isModEnabled('eventorganization')) { + print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); } @@ -221,8 +221,15 @@ if ($id > 0 || !empty($ref)) { print ''; } - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; //include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index 9718a0ffccb..4bbc48900af 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -140,13 +140,19 @@ if (!empty($project_ref) && !empty($withproject)) { /* * View */ - -llxHeader('', $langs->trans("Task")); - $form = new Form($db); $formcompany = new FormCompany($db); $contactstatic = new Contact($db); $userstatic = new User($db); +$result = $projectstatic->fetch($object->fk_project); + +$title = $object->ref . ' - ' . $langs->trans("Contacts"); +if (!empty($withproject)) { + $title .= ' | ' . $langs->trans("Project") . (!empty($projectstatic->ref) ? ': '.$projectstatic->ref : '') ; +} +$help_url = ''; + +llxHeader('', $title, $help_url); /* *************************************************************************** */ @@ -162,7 +168,6 @@ if ($id > 0 || !empty($ref)) { } $id = $object->id; // So when doing a search from ref, id is also set correctly. - $result = $projectstatic->fetch($object->fk_project); if (!empty($conf->global->PROJECT_ALLOW_COMMENT_ON_PROJECT) && method_exists($projectstatic, 'fetchComments') && empty($projectstatic->comments)) { $projectstatic->fetchComments(); } @@ -191,7 +196,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $projectstatic->title; // Thirdparty if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -210,7 +215,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -233,13 +240,6 @@ if ($id > 0 || !empty($ref)) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); - } - print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -233,8 +238,8 @@ if ($id > 0 || !empty($ref)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; + if (isModEnabled('eventorganization')) { + print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); } @@ -252,8 +257,15 @@ if ($id > 0 || !empty($ref)) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; //include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php index bd696e90434..6a62e973a62 100644 --- a/htdocs/projet/tasks/document.php +++ b/htdocs/projet/tasks/document.php @@ -24,6 +24,7 @@ * \brief Page de gestion des documents attachees a une tache d'un projet */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -110,7 +111,7 @@ if ($id > 0 || !empty($ref)) { $object->project = clone $projectstatic; - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref); + $upload_dir = $conf->project->dir_output.'/'.dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref); } include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; @@ -119,10 +120,15 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; /* * View */ - $form = new Form($db); -llxHeader('', $langs->trans('Task')); +$title = $object->ref . ' - ' . $langs->trans("Documents"); +if (!empty($withproject)) { + $title .= ' | ' . $langs->trans("Project") . (!empty($projectstatic->ref) ? ': '.$projectstatic->ref : '') ; +} +$help_url = ''; + +llxHeader('', $title, $help_url); if ($object->id > 0) { $projectstatic->fetch_thirdparty(); @@ -147,7 +153,7 @@ if ($object->id > 0) { $morehtmlref .= $projectstatic->title; // Thirdparty if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -166,7 +172,7 @@ if ($object->id > 0) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -264,13 +276,6 @@ if ($id > 0 || !empty($ref)) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); - } - print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -189,8 +195,8 @@ if ($object->id > 0) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; + if (isModEnabled('eventorganization')) { + print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); } @@ -208,8 +214,15 @@ if ($object->id > 0) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; //include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 6d9e44c3799..72c5eb25874 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -46,7 +46,7 @@ $mode = GETPOST('mode', 'aZ'); $id = GETPOST('id', 'int'); $search_all = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); -$search_categ = GETPOST("search_categ", 'alpha'); +$search_categ = GETPOST("search_categ", 'int'); $search_projectstatus = GETPOST('search_projectstatus'); if (!isset($search_projectstatus) || $search_projectstatus === '') { @@ -68,7 +68,15 @@ $search_task_user = GETPOST('search_task_user', 'int'); $search_task_progress = GETPOST('search_task_progress'); $search_task_budget_amount = GETPOST('search_task_budget_amount'); $search_societe = GETPOST('search_societe'); +$search_societe_alias = GETPOST('search_societe_alias'); $search_opp_status = GETPOST("search_opp_status", 'alpha'); +$searchCategoryCustomerOperator = 0; +if (GETPOSTISSET('formfilteraction')) { + $searchCategoryCustomerOperator = GETPOST('search_category_customer_operator', 'int'); +} elseif (!empty($conf->global->MAIN_SEARCH_CAT_OR_BY_DEFAULT)) { + $searchCategoryCustomerOperator = $conf->global->MAIN_SEARCH_CAT_OR_BY_DEFAULT; +} +$searchCategoryCustomerList = GETPOST('search_category_customer_list', 'array'); $mine = GETPOST('mode', 'alpha') == 'mine' ? 1 : 0; if ($mine) { @@ -113,7 +121,7 @@ if (!$user->rights->projet->lire) { accessforbidden(); } -$diroutputmassaction = $conf->projet->dir_output.'/tasks/temp/massgeneration/'.$user->id; +$diroutputmassaction = $conf->project->dir_output.'/tasks/temp/massgeneration/'.$user->id; $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -154,13 +162,14 @@ $arrayfields = array( 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>1), 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0), 's.nom'=>array('label'=>"ThirdParty", 'checked'=>0), + 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>1), 'p.fk_statut'=>array('label'=>"ProjectStatus", 'checked'=>1), 't.planned_workload'=>array('label'=>"PlannedWorkload", 'checked'=>1, 'position'=>102), 't.duration_effective'=>array('label'=>"TimeSpent", 'checked'=>1, 'position'=>103), 't.progress_calculated'=>array('label'=>"ProgressCalculated", 'checked'=>1, 'position'=>104), 't.progress'=>array('label'=>"ProgressDeclared", 'checked'=>1, 'position'=>105), 't.progress_summary'=>array('label'=>"TaskProgressSummary", 'checked'=>1, 'position'=>106), - 't.budget_amount'=>array('label'=>"Budget", 'checked'=>1, 'position'=>107), + 't.budget_amount'=>array('label'=>"Budget", 'checked'=>0, 'position'=>107), 't.tobill'=>array('label'=>"TimeToBill", 'checked'=>0, 'position'=>110), 't.billed'=>array('label'=>"TimeBilled", 'checked'=>0, 'position'=>111), 't.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500), @@ -205,6 +214,8 @@ if (empty($reshook)) { $search_categ = ""; $search_projectstatus = -1; $search_project_ref = ""; + $search_societe = ""; + $search_societe_alias = ""; $search_project_title = ""; $search_task_ref = ""; $search_task_label = ""; @@ -231,13 +242,14 @@ if (empty($reshook)) { $search_datelimit_start = ''; $search_datelimit_end = ''; $toselect = array(); + $searchCategoryCustomerList = array(); $search_array_options = array(); } // Mass actions $objectclass = 'Task'; $objectlabel = 'Tasks'; - $uploaddir = $conf->projet->dir_output.'/tasks'; + $uploaddir = $conf->project->dir_output.'/tasks'; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -274,7 +286,7 @@ if ($search_task_user > 0) { $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields $title = $langs->trans("Activities"); @@ -326,15 +338,11 @@ if (count($listoftaskcontacttype) == 0) { $distinct = 'DISTINCT'; // We add distinct until we are added a protection to be sure a contact of a project and task is assigned only once. $sql = "SELECT ".$distinct." p.rowid as projectid, p.ref as projectref, p.title as projecttitle, p.fk_statut as projectstatus, p.datee as projectdatee, p.fk_opp_status, p.public, p.fk_user_creat as projectusercreate, p.usage_bill_time,"; -$sql .= " s.nom as name, s.rowid as socid,"; +$sql .= " s.nom as name, s.name_alias as alias, s.rowid as socid,"; $sql .= " t.datec as date_creation, t.dateo as date_start, t.datee as date_end, t.tms as date_update,"; -$sql .= " t.rowid as id, t.ref, t.label, t.planned_workload, t.duration_effective, t.progress, t.fk_statut, "; +$sql .= " t.rowid as id, t.ref, t.label, t.planned_workload, t.duration_effective, t.progress, t.fk_statut,"; $sql .= " t.description, t.fk_task_parent"; $sql .= " ,t.budget_amount"; -// We'll need these fields in order to filter by categ -if ($search_categ) { - $sql .= ", cs.fk_categorie, cs.fk_project"; -} // Add sum fields if (!empty($arrayfields['t.tobill']['checked']) || !empty($arrayfields['t.billed']['checked'])) { $sql .= " , SUM(tt.task_duration * ".$db->ifsql("invoice_id IS NULL", "1", "0").") as tobill, SUM(tt.task_duration * ".$db->ifsql("invoice_id IS NULL", "0", "1").") as billed"; @@ -351,10 +359,6 @@ $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // N $sql .= $hookmanager->resPrint; $sql .= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; -// We'll need this table joined to the select in order to filter by categ -if (!empty($search_categ)) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_project as cs ON p.rowid = cs.fk_project"; // We'll need this table joined to the select in order to filter by categ -} $sql .= ", ".MAIN_DB_PREFIX."projet_task as t"; if (!empty($arrayfields['t.tobill']['checked']) || !empty($arrayfields['t.billed']['checked'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task_time as tt ON tt.fk_task = t.rowid"; @@ -380,12 +384,6 @@ if (is_object($projectstatic) && $projectstatic->id > 0) { if ($socid) { $sql .= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".((int) $socid).")"; } -if ($search_categ > 0) { - $sql .= " AND cs.fk_categorie = ".((int) $search_categ); -} -if ($search_categ == -2) { - $sql .= " AND cs.fk_categorie IS NULL"; -} if ($search_project_ref) { $sql .= natural_search('p.ref', $search_project_ref); } @@ -410,8 +408,15 @@ if ($search_task_progress) { if ($search_task_budget_amount) { $sql .= natural_search('t.budget_amount', $search_task_budget_amount, 1); } -if ($search_societe) { - $sql .= natural_search('s.nom', $search_societe); +if (empty($arrayfields['s.name_alias']['checked']) && $search_societe) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_societe); +} else { + if ($search_societe) { + $sql .= natural_search('s.nom', $search_societe); + } + if ($search_societe_alias) { + $sql .= natural_search('s.name_alias', $search_societe_alias); + } } if ($search_date_start) { $sql .= " AND t.dateo >= '".$db->idate($search_date_start)."'"; @@ -441,6 +446,80 @@ if ($search_project_user > 0) { if ($search_task_user > 0) { $sql .= " AND ect.fk_c_type_contact IN (".$db->sanitize(join(',', array_keys($listoftaskcontacttype))).") AND ect.element_id = t.rowid AND ect.fk_socpeople = ".((int) $search_task_user); } +// Search for tag/category ($searchCategoryProjectList is an array of ID) +$searchCategoryProjectList = array($search_categ); +$searchCategoryProjectOperator = 0; +if (!empty($searchCategoryProjectList)) { + $searchCategoryProjectSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProjectList as $searchCategoryProject) { + if (intval($searchCategoryProject) == -2) { + $searchCategoryProjectSqlList[] = "NOT EXISTS (SELECT ck.fk_project FROM ".MAIN_DB_PREFIX."categorie_project as ck WHERE p.rowid = ck.fk_project)"; + } elseif (intval($searchCategoryProject) > 0) { + if ($searchCategoryProjectOperator == 0) { + $searchCategoryProjectSqlList[] = " EXISTS (SELECT ck.fk_project FROM ".MAIN_DB_PREFIX."categorie_project as ck WHERE p.rowid = ck.fk_project AND ck.fk_categorie = ".((int) $searchCategoryProject).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProject); + } + } + } + if ($listofcategoryid) { + $searchCategoryProjectSqlList[] = " EXISTS (SELECT ck.fk_project FROM ".MAIN_DB_PREFIX."categorie_project as ck WHERE p.rowid = ck.fk_project AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProjectOperator == 1) { + if (!empty($searchCategoryProjectSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProjectSqlList).")"; + } + } else { + if (!empty($searchCategoryProjectSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProjectSqlList).")"; + } + } +} +$searchCategoryCustomerSqlList = array(); +if ($searchCategoryCustomerOperator == 1) { + $existsCategoryCustomerList = array(); + foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + if (intval($searchCategoryCustomer) == -2) { + $sqlCategoryCustomerNotExists = " NOT EXISTS ("; + $sqlCategoryCustomerNotExists .= " SELECT cat_cus.fk_soc"; + $sqlCategoryCustomerNotExists .= " FROM ".$db->prefix()."categorie_societe AS cat_cus"; + $sqlCategoryCustomerNotExists .= " WHERE cat_cus.fk_soc = p.fk_soc"; + $sqlCategoryCustomerNotExists .= " )"; + $searchCategoryCustomerSqlList[] = $sqlCategoryCustomerNotExists; + } elseif (intval($searchCategoryCustomer) > 0) { + $existsCategoryCustomerList[] = $db->escape($searchCategoryCustomer); + } + } + if (!empty($existsCategoryCustomerList)) { + $sqlCategoryCustomerExists = " EXISTS ("; + $sqlCategoryCustomerExists .= " SELECT cat_cus.fk_soc"; + $sqlCategoryCustomerExists .= " FROM ".$db->prefix()."categorie_societe AS cat_cus"; + $sqlCategoryCustomerExists .= " WHERE cat_cus.fk_soc = p.fk_soc"; + $sqlCategoryCustomerExists .= " AND cat_cus.fk_categorie IN (".$db->sanitize(implode(',', $existsCategoryCustomerList)).")"; + $sqlCategoryCustomerExists .= " )"; + $searchCategoryCustomerSqlList[] = $sqlCategoryCustomerExists; + } + if (!empty($searchCategoryCustomerSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryCustomerSqlList).")"; + } +} else { + foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + if (intval($searchCategoryCustomer) == -2) { + $sqlCategoryCustomerNotExists = " NOT EXISTS ("; + $sqlCategoryCustomerNotExists .= " SELECT cat_cus.fk_soc"; + $sqlCategoryCustomerNotExists .= " FROM ".$db->prefix()."categorie_societe AS cat_cus"; + $sqlCategoryCustomerNotExists .= " WHERE cat_cus.fk_soc = p.fk_soc"; + $sqlCategoryCustomerNotExists .= " )"; + $searchCategoryCustomerSqlList[] = $sqlCategoryCustomerNotExists; + } elseif (intval($searchCategoryCustomer) > 0) { + $searchCategoryCustomerSqlList[] = "p.fk_soc IN (SELECT fk_soc FROM ".$db->prefix()."categorie_societe WHERE fk_categorie = ".((int) $searchCategoryCustomer).")"; + } + } + if (!empty($searchCategoryCustomerSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryCustomerSqlList).")"; + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks @@ -452,9 +531,6 @@ if (!empty($arrayfields['t.tobill']['checked']) || !empty($arrayfields['t.billed $sql .= " s.nom, s.rowid,"; $sql .= " t.datec, t.dateo, t.datee, t.tms,"; $sql .= " t.rowid, t.ref, t.label, t.planned_workload, t.duration_effective, t.progress,t.budget_amount, t.fk_statut"; - if ($search_categ) { - $sql .= ", cs.fk_categorie, cs.fk_project"; - } // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { @@ -579,6 +655,9 @@ if ($search_task_progress != '') { if ($search_societe != '') { $param .= '&search_societe='.urlencode($search_societe); } +if ($search_societe != '') { + $param .= '&search_societe_alias='.urlencode($search_societe_alias); +} if ($search_projectstatus != '') { $param .= '&search_projectstatus='.urlencode($search_projectstatus); } @@ -594,6 +673,9 @@ if ($search_task_user > 0) { if ($optioncss != '') { $param .= '&optioncss='.urlencode($optioncss); } +foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + $param .= "&search_category_customer_list[]=".urlencode($searchCategoryCustomer); +} // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; // Add $param from hooks @@ -661,11 +743,11 @@ if ($search_all) { $moreforfilter = ''; // Filter on categories -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('ProjectCategories'); - $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('project', $search_categ, 'search_categ', 0, $tmptitle, 'maxwidth300'); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('project', $search_categ, 'search_categ', 1, $tmptitle, 'maxwidth300'); $moreforfilter .= '
    '; } @@ -689,6 +771,19 @@ if (empty($user->rights->user->user->lire)) { $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_task_user, 'search_task_user', $tmptitle, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth250'); $moreforfilter .= ''; +// Filter on customer categories +if (!empty($conf->global->MAIN_SEARCH_CATEGORY_CUSTOMER_ON_TASK_LIST) && !empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + $moreforfilter .= '
    '; + $tmptitle = $langs->transnoentities('CustomersProspectsCategoriesShort'); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"'); + $categoriesArr = $form->select_all_categories(Categorie::TYPE_CUSTOMER, '', '', 64, 0, 1); + $categoriesArr[-2] = '- '.$langs->trans('NotCategorized').' -'; + $moreforfilter .= Form::multiselectarray('search_category_customer_list', $categoriesArr, $searchCategoryCustomerList, 0, 0, 'minwidth300', 0, 0, '', 'category', $tmptitle); + $moreforfilter .= ' '; + $moreforfilter .= $form->textwithpicto('', $langs->trans('UseOrOperatorForCategories') . ' : ' . $tmptitle, 1, 'help', '', 0, 2, 'tooltip_cat_cus'); // Tooltip on click + $moreforfilter .= '
    '; +} + if (!empty($moreforfilter)) { print '
    '; print $moreforfilter; @@ -708,6 +803,13 @@ print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -220,13 +233,6 @@ if ($object->id > 0) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); - } - print '
    '; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} if (!empty($arrayfields['t.fk_task_parent']['checked'])) { print ''; } +if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; +} if (!empty($arrayfields['p.fk_statut']['checked'])) { print ''; } // Action column -print ''; +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} print ''."\n"; $totalarray = array( @@ -854,6 +963,9 @@ $totalarray = array( // Fields title label // -------------------------------------------------------------------- print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} if (!empty($arrayfields['t.fk_task_parent']['checked'])) { print_liste_field_titre($arrayfields['t.fk_task_parent']['label'], $_SERVER["PHP_SELF"], "t.fk_task_parent", "", $param, "", $sortfield, $sortorder); $totalarray['nbfield']++; @@ -890,6 +1002,10 @@ if (!empty($arrayfields['s.nom']['checked'])) { print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], "s.nom", "", $param, "", $sortfield, $sortorder); $totalarray['nbfield']++; } +if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], "s.name_alias", "", $param, "", $sortfield, $sortorder); + $totalarray['nbfield']++; +} if (!empty($arrayfields['p.fk_statut']['checked'])) { print_liste_field_titre($arrayfields['p.fk_statut']['label'], $_SERVER["PHP_SELF"], "p.fk_statut", "", $param, '', $sortfield, $sortorder, 'center '); $totalarray['nbfield']++; @@ -946,7 +1062,9 @@ if (!empty($arrayfields['t.tms']['checked'])) { print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER["PHP_SELF"], "t.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); $totalarray['nbfield']++; } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} $totalarray['nbfield']++; print ''."\n"; @@ -992,6 +1110,11 @@ while ($i < $imaxinloop) { $projectstatic->statut = $obj->projectstatus; $projectstatic->datee = $db->jdate($obj->projectdatee); + if ($obj->socid) { + $socstatic->id = $obj->socid; + $socstatic->name = $obj->name; + $socstatic->name_alias = $obj->alias; + } if ($mode == 'kanban') { if ($i == 0) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } // Ref Parent if (!empty($arrayfields['t.fk_task_parent']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; } } - // Date start + + // Date start project if (!empty($arrayfields['t.dateo']['checked'])) { print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; if (!$i) { $totalarray['nbfield']++; @@ -1312,21 +1462,23 @@ while ($i < $imaxinloop) { } } // Status - /*if (! empty($arrayfields['p.fk_statut']['checked'])) + /*if (!empty($arrayfields['p.fk_statut']['checked'])) { $projectstatic->statut = $obj->fk_statut; print ''; }*/ // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/projet/tasks/note.php b/htdocs/projet/tasks/note.php index 206a92afb36..01c39c990f4 100644 --- a/htdocs/projet/tasks/note.php +++ b/htdocs/projet/tasks/note.php @@ -110,14 +110,19 @@ if (empty($reshook)) { /* * View */ - -llxHeader('', $langs->trans("Task")); - $form = new Form($db); $userstatic = new User($db); $now = dol_now(); +$title = $object->ref . ' - ' . $langs->trans("Notes"); +if (!empty($withproject)) { + $title .= ' | ' . $langs->trans("Project") . (!empty($projectstatic->ref) ? ': '.$projectstatic->ref : '') ; +} +$help_url = ''; + +llxHeader('', $title, $help_url); + if ($object->id > 0) { $userWrite = $projectstatic->restrictedProjectArea($user, 'write'); @@ -137,7 +142,7 @@ if ($object->id > 0) { $morehtmlref .= $projectstatic->title; // Thirdparty if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -156,7 +161,7 @@ if ($object->id > 0) { print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -768,6 +870,11 @@ if (!empty($arrayfields['s.nom']['checked'])) { print ''; print ''; + print ''; + print ''; $arrayofstatus = array(); @@ -826,10 +933,12 @@ if (!empty($arrayfields['t.tms']['checked'])) { print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; @@ -1008,6 +1131,18 @@ while ($i < $imaxinloop) { if ($userAccess >= 0) { print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -1052,13 +1187,14 @@ while ($i < $imaxinloop) { // Description if (!empty($arrayfields['t.description']['checked'])) { print ''; - print dol_escape_htmltag($object->description); + print dolGetFirstLineOfText($object->description, 5); print ''; print dol_print_date($db->jdate($obj->date_start), 'day'); @@ -1067,7 +1203,7 @@ while ($i < $imaxinloop) { $totalarray['nbfield']++; } } - // Date end + // Date end project if (!empty($arrayfields['t.datee']['checked'])) { print ''; print dol_print_date($db->jdate($obj->date_end), 'day'); @@ -1101,9 +1237,20 @@ while ($i < $imaxinloop) { if (!empty($arrayfields['s.nom']['checked'])) { print ''; if ($obj->socid) { - $socstatic->id = $obj->socid; - $socstatic->name = $obj->name; - print $socstatic->getNomUrl(1); + print $socstatic->getNomUrl(1, '', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + } else { + print ' '; + } + print ''; + if ($obj->socid) { + print $socstatic->name_alias; } else { print ' '; } @@ -1229,9 +1376,12 @@ while ($i < $imaxinloop) { $totalarray['totalprogress_summary'] = $totalarray['nbfield']; } } + // Budget for task if (!empty($arrayfields['t.budget_amount']['checked'])) { print ''; - print price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency); + if ($object->budget_amount) { + print ''.price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency).''; + } print ''.$projectstatic->getLibStatut(5).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($object->id, $arrayofselected)) { - $selected = 1; + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -179,8 +184,8 @@ if ($object->id > 0) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; + if (isModEnabled('eventorganization')) { + print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); } @@ -198,8 +203,15 @@ if ($object->id > 0) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; //include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; diff --git a/htdocs/projet/tasks/stats/index.php b/htdocs/projet/tasks/stats/index.php index 2ca72552fa4..07b0199d480 100644 --- a/htdocs/projet/tasks/stats/index.php +++ b/htdocs/projet/tasks/stats/index.php @@ -22,6 +22,7 @@ * \brief Page for tasks statistics */ +// Load Dolibarr environment require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; @@ -43,7 +44,7 @@ if ($user->socid > 0) { $action = ''; $socid = $user->socid; } -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index 5b0f097d22f..fccf9d2ffe1 100644 --- a/htdocs/projet/tasks/task.php +++ b/htdocs/projet/tasks/task.php @@ -37,11 +37,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/project/task/modules_task.php'; // Load translation files required by the page $langs->loadlangs(array('projects', 'companies')); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); + $id = GETPOST('id', 'int'); $ref = GETPOST("ref", 'alpha', 1); // task ref $taskref = GETPOST("taskref", 'alpha'); // task ref -$action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); $withproject = GETPOST('withproject', 'int'); $project_ref = GETPOST('project_ref', 'alpha'); $planned_workload = ((GETPOST('planned_workloadhour', 'int') != '' || GETPOST('planned_workloadmin', 'int') != '') ? (GETPOST('planned_workloadhour', 'int') > 0 ?GETPOST('planned_workloadhour', 'int') * 3600 : 0) + (GETPOST('planned_workloadmin', 'int') > 0 ?GETPOST('planned_workloadmin', 'int') * 60 : 0) : ''); @@ -99,8 +100,11 @@ if ($action == 'update' && !GETPOST("cancel") && $user->rights->projet->creer) { $object->ref = $taskref ? $taskref : GETPOST("ref", 'alpha', 2); $object->label = GETPOST("label", "alphanohtml"); - if (empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) $object->description = GETPOST('description', "alphanohtml"); - else $object->description = GETPOST('description', "restricthtml"); + if (empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) { + $object->description = GETPOST('description', "alphanohtml"); + } else { + $object->description = GETPOST('description', "restricthtml"); + } $object->fk_task_parent = $task_parent; $object->planned_workload = $planned_workload; $object->date_start = dol_mktime(GETPOST('dateohour', 'int'), GETPOST('dateomin', 'int'), 0, GETPOST('dateomonth', 'int'), GETPOST('dateoday', 'int'), GETPOST('dateoyear', 'int')); @@ -128,6 +132,28 @@ if ($action == 'update' && !GETPOST("cancel") && $user->rights->projet->creer) { } } +if ($action == 'confirm_clone' && $confirm == 'yes') { + //$clone_contacts = GETPOST('clone_contacts') ? 1 : 0; + $clone_prog = GETPOST('clone_prog') ? 1 : 0; + $clone_time = GETPOST('clone_time') ? 1 : 0; + $clone_affectation = GETPOST('clone_affectation') ? 1 : 0; + $clone_change_dt = GETPOST('clone_change_dt') ? 1 : 0; + $clone_notes = GETPOST('clone_notes') ? 1 : 0; + $clone_file = GETPOST('clone_file') ? 1 : 0; + $result = $object->createFromClone($user, $object->id, $object->fk_project, $object->fk_task_parent, $clone_change_dt, $clone_affectation, $clone_time, $clone_file, $clone_notes, $clone_prog); + if ($result <= 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } else { + // Load new object + $newobject = new Task($db); + $newobject->fetch($result); + $newobject->fetch_optionals(); + $newobject->fetch_thirdparty(); // Load new object + $object = $newobject; + $action = ''; + } +} + if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->projet->supprimer) { $result = $projectstatic->fetch($object->fk_project); $projectstatic->fetch_thirdparty(); @@ -177,7 +203,7 @@ if ($action == 'remove_file' && $user->rights->projet->creer) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $langs->load("other"); - $upload_dir = $conf->projet->dir_output; + $upload_dir = $conf->project->dir_output; $file = $upload_dir.'/'.dol_sanitizeFileName(GETPOST('file')); $ret = dol_delete_file($file); @@ -192,12 +218,19 @@ if ($action == 'remove_file' && $user->rights->projet->creer) { /* * View */ - -llxHeader('', $langs->trans("Task")); - $form = new Form($db); $formother = new FormOther($db); $formfile = new FormFile($db); +$result = $projectstatic->fetch($object->fk_project); + +$title = $object->ref; +if (!empty($withproject)) { + $title .= ' | ' . $langs->trans("Project") . (!empty($projectstatic->ref) ? ': '.$projectstatic->ref : '') ; +} +$help_url = ''; + +llxHeader('', $title, $help_url); + if ($id > 0 || !empty($ref)) { $res = $object->fetch_optionals(); @@ -205,7 +238,7 @@ if ($id > 0 || !empty($ref)) { $object->fetchComments(); } - $result = $projectstatic->fetch($object->fk_project); + if (!empty($conf->global->PROJECT_ALLOW_COMMENT_ON_PROJECT) && method_exists($projectstatic, 'fetchComments') && empty($projectstatic->comments)) { $projectstatic->fetchComments(); } @@ -233,8 +266,8 @@ if ($id > 0 || !empty($ref)) { // Title $morehtmlref .= $projectstatic->title; // Thirdparty - if ($projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + if (!empty($projectstatic->thirdparty->id) &&$projectstatic->thirdparty->id > 0) { + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -244,7 +277,7 @@ if ($id > 0 || !empty($ref)) { $projectstatic->next_prev_filter = " rowid IN (".$db->sanitize(count($objectsListId) ?join(',', array_keys($objectsListId)) : '0').")"; } - dol_banner_tab($projectstatic, 'project_ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + dol_banner_tab($projectstatic, 'project_ref', $linkback, 1, 'ref', 'ref', $morehtmlref, $param); print '
    '; print '
    '; @@ -253,7 +286,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -210,13 +222,6 @@ if ($object->id > 0) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); - } - print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -276,8 +309,8 @@ if ($id > 0 || !empty($ref)) { print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; + if (isModEnabled('eventorganization')) { + print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); } @@ -295,8 +328,15 @@ if ($id > 0 || !empty($ref)) { } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; //include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; @@ -325,7 +358,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print '
    '; - print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print ''.price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -307,13 +347,6 @@ if ($id > 0 || !empty($ref)) { } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); - } - print '
    '; + print '
    '; // Description print ''; // Date start @@ -445,18 +494,14 @@ if ($id > 0 || !empty($ref)) { print ''; print ''; print ''; @@ -509,7 +554,7 @@ if ($id > 0 || !empty($ref)) { // Third party $morehtmlref .= $langs->trans("ThirdParty").': '; - if (!empty($projectstatic->thirdparty)) { + if (!empty($projectstatic->thirdparty) && is_object($projectstatic->thirdparty)) { $morehtmlref .= $projectstatic->thirdparty->getNomUrl(1); } $morehtmlref .= ''; @@ -532,7 +577,7 @@ if ($id > 0 || !empty($ref)) { } print ''; - // Date start - Date end + // Date start - Date end task print ''; @@ -622,19 +667,21 @@ if ($id > 0 || !empty($ref)) { // Modify if ($user->rights->projet->creer) { print ''.$langs->trans('Modify').''; + print ''.$langs->trans('Clone').''; } else { print ''.$langs->trans('Modify').''; } // Delete - if ($user->rights->projet->supprimer) { + $permissiontodelete = $user->hasRight('projet', 'supprimer'); + if ($permissiontodelete) { if (!$object->hasChildren() && !$object->hasTimeSpent()) { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken().'&withproject='.((int) $withproject), 'delete', $permissiontodelete); } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("TaskHasChild"), $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken().'&withproject='.((int) $withproject), 'delete', 0); } } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken().'&withproject='.((int) $withproject), 'delete', $permissiontodelete); } print ''; @@ -647,7 +694,7 @@ if ($id > 0 || !empty($ref)) { * Generated documents */ $filename = dol_sanitizeFileName($projectstatic->ref)."/".dol_sanitizeFileName($object->ref); - $filedir = $conf->projet->dir_output."/".dol_sanitizeFileName($projectstatic->ref)."/".dol_sanitizeFileName($object->ref); + $filedir = $conf->project->dir_output."/".dol_sanitizeFileName($projectstatic->ref)."/".dol_sanitizeFileName($object->ref); $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id; $genallowed = ($user->rights->projet->lire); $delallowed = ($user->rights->projet->creer); diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index f47eb2a49d3..3c8597cd862 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -27,6 +27,7 @@ * \brief Page to add new time spent on a task */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; @@ -38,8 +39,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formintervention.class.php'; // Load translation files required by the page -$langsLoad=array('projects', 'bills', 'orders'); -if (!empty($conf->eventorganization->enabled)) { +$langsLoad=array('projects', 'bills', 'orders', 'companies'); +if (isModEnabled('eventorganization')) { $langsLoad[]='eventorganization'; } @@ -53,6 +54,7 @@ $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected i $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'timespentlist'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page $optioncss = GETPOST('optioncss', 'alpha'); +$mode = GETPOST('mode', 'alpha'); $id = GETPOST('id', 'int'); $projectid = GETPOST('projectid', 'int'); @@ -66,6 +68,14 @@ $search_month = GETPOST('search_month', 'int'); $search_year = GETPOST('search_year', 'int'); $search_datehour = ''; $search_datewithhour = ''; +$search_date_startday = GETPOST('search_date_startday', 'int'); +$search_date_startmonth = GETPOST('search_date_startmonth', 'int'); +$search_date_startyear = GETPOST('search_date_startyear', 'int'); +$search_date_endday = GETPOST('search_date_endday', 'int'); +$search_date_endmonth = GETPOST('search_date_endmonth', 'int'); +$search_date_endyear = GETPOST('search_date_endyear', 'int'); +$search_date_start = dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear); // Use tzserver +$search_date_end = dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear); $search_note = GETPOST('search_note', 'alpha'); $search_duration = GETPOST('search_duration', 'int'); $search_value = GETPOST('search_value', 'int'); @@ -73,6 +83,15 @@ $search_task_ref = GETPOST('search_task_ref', 'alpha'); $search_task_label = GETPOST('search_task_label', 'alpha'); $search_user = GETPOST('search_user', 'int'); $search_valuebilled = GETPOST('search_valuebilled', 'int'); +$search_product_ref = GETPOST('search_product_ref', 'alpha'); +$search_company = GETPOST('$search_company', 'alpha'); +$search_company_alias = GETPOST('$search_company_alias', 'alpha'); +$search_project_ref = GETPOST('$search_project_ref', 'alpha'); +$search_project_label = GETPOST('$search_project_label', 'alpha'); +$search_timespent_starthour = GETPOSTINT("search_timespent_duration_starthour"); +$search_timespent_startmin = GETPOSTINT("search_timespent_duration_startmin"); +$search_timespent_endhour = GETPOSTINT("search_timespent_duration_endhour"); +$search_timespent_endmin = GETPOSTINT("search_timespent_duration_endmin"); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -98,8 +117,10 @@ $childids = $user->getAllChildIds(1); $hookmanager->initHooks(array('projecttasktime', 'globalcard')); $object = new Task($db); -$projectstatic = new Project($db); $extrafields = new ExtraFields($db); +$projectstatic = new Project($db); + +// fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($projectstatic->table_element); $extrafields->fetch_name_optionals_label($object->table_element); @@ -160,12 +181,29 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_value = ''; $search_date_creation = ''; $search_date_update = ''; + $search_date_startday = ''; + $search_date_startmonth = ''; + $search_date_startyear = ''; + $search_date_endday = ''; + $search_date_endmonth = ''; + $search_date_endyear = ''; + $search_date_start = ''; + $search_date_end = ''; $search_task_ref = ''; + $search_company = ''; + $search_company_alias = ''; + $search_project_ref = ''; + $search_project_label = ''; $search_task_label = ''; - $search_user = 0; + $search_user = -1; $search_valuebilled = ''; + $search_product_ref = ''; $toselect = array(); $search_array_options = array(); + $search_timespent_starthour = ''; + $search_timespent_startmin = ''; + $search_timespent_endhour = ''; + $search_timespent_endmin = ''; $action = ''; } @@ -218,6 +256,7 @@ if ($action == 'addtimespent' && $user->rights->projet->time) { $object->timespent_date = dol_mktime(12, 0, 0, GETPOST("timemonth", 'int'), GETPOST("timeday", 'int'), GETPOST("timeyear", 'int')); } $object->timespent_fk_user = GETPOST("userid", 'int'); + $object->timespent_fk_product = GETPOST("fk_product", 'int'); $result = $object->addTimeSpent($user); if ($result >= 0) { setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); @@ -258,8 +297,8 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us $object->fetch($id_temp, $ref); - $object->timespent_note = GETPOST("timespent_note_line", 'alpha'); - $object->timespent_old_duration = GETPOST("old_duration"); + $object->timespent_note = GETPOST("timespent_note_line", "alphanohtml"); + $object->timespent_old_duration = GETPOST("old_duration", "int"); $object->timespent_duration = GETPOSTINT("new_durationhour") * 60 * 60; // We store duration in seconds $object->timespent_duration += (GETPOSTINT("new_durationmin") ? GETPOSTINT('new_durationmin') : 0) * 60; // We store duration in seconds if (GETPOST("timelinehour") != '' && GETPOST("timelinehour") >= 0) { // If hour was entered @@ -269,24 +308,24 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us $object->timespent_date = dol_mktime(12, 0, 0, GETPOST("timelinemonth"), GETPOST("timelineday"), GETPOST("timelineyear")); } $object->timespent_fk_user = GETPOST("userid_line", 'int'); + $object->timespent_fk_product = GETPOST("fk_product", 'int'); $result = 0; if (in_array($object->timespent_fk_user, $childids) || $user->rights->projet->all->creer) { $result = $object->addTimeSpent($user); - } - - if ($result >= 0) { - setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); - } else { - setEventMessages($langs->trans($object->error), null, 'errors'); - $error++; + if ($result >= 0) { + setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans($object->error), null, 'errors'); + $error++; + } } } else { $object->fetch($id, $ref); $object->timespent_id = GETPOST("lineid", 'int'); - $object->timespent_note = GETPOST("timespent_note_line"); - $object->timespent_old_duration = GETPOST("old_duration"); + $object->timespent_note = GETPOST("timespent_note_line", "alphanohtml"); + $object->timespent_old_duration = GETPOST("old_duration", "int"); $object->timespent_duration = GETPOSTINT("new_durationhour") * 60 * 60; // We store duration in seconds $object->timespent_duration += (GETPOSTINT("new_durationmin") ? GETPOSTINT('new_durationmin') : 0) * 60; // We store duration in seconds if (GETPOST("timelinehour") != '' && GETPOST("timelinehour") >= 0) { // If hour was entered @@ -296,6 +335,7 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us $object->timespent_date = dol_mktime(12, 0, 0, GETPOST("timelinemonth", 'int'), GETPOST("timelineday", 'int'), GETPOST("timelineyear", 'int')); } $object->timespent_fk_user = GETPOST("userid_line", 'int'); + $object->timespent_fk_product = GETPOST("fk_product", 'int'); $result = 0; if (in_array($object->timespent_fk_user, $childids) || $user->rights->projet->all->creer) { @@ -314,10 +354,10 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us } } -if ($action == 'confirm_deleteline' && $confirm == "yes" && $user->rights->projet->supprimer) { - $object->fetchTimeSpent(GETPOST('lineid', 'int')); // load properties like $object->timespent_id +if ($action == 'confirm_deleteline' && $confirm == "yes" && ($user->hasRight('projet', 'time') || $user->hasRight('projet', 'all', 'creer'))) { + $object->fetchTimeSpent(GETPOST('lineid', 'int')); // load properties like $object->timespent_xxx - if (in_array($object->timespent_fk_user, $childids) || $user->rights->projet->all->creer) { + if (in_array($object->timespent_fk_user, $childids) || $user->hasRight('projet', 'all', 'creer')) { $result = $object->delTimeSpent($user); // delete line with $object->timespent_id if ($result < 0) { @@ -389,36 +429,22 @@ if ($action == 'confirm_generateinvoice') { $generateinvoicemode = GETPOST('generateinvoicemode', 'string'); $invoiceToUse = GETPOST('invoiceid', 'int'); - $prodDurationHours = 1.0; + $prodDurationHoursBase = 1.0; + $product_data_cache = array(); if ($idprod > 0) { $tmpproduct->fetch($idprod); + if ($result<0) { + $error++; + setEventMessages($tmpproduct->error, $tmpproduct->errors, 'errors'); + } - if (empty($tmpproduct->duration_value)) { + $prodDurationHoursBase=$tmpproduct->getProductDurationHours(); + if ($prodDurationHoursBase<0) { $error++; $langs->load("errors"); - setEventMessages($langs->trans("ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice"), null, 'errors'); + setEventMessages(null, $tmpproduct->errors, 'errors'); } - if ($tmpproduct->duration_unit == 'i') { - $prodDurationHours = 1. / 60; - } - if ($tmpproduct->duration_unit == 'h') { - $prodDurationHours = 1.; - } - if ($tmpproduct->duration_unit == 'd') { - $prodDurationHours = 24.; - } - if ($tmpproduct->duration_unit == 'w') { - $prodDurationHours = 24. * 7; - } - if ($tmpproduct->duration_unit == 'm') { - $prodDurationHours = 24. * 30; - } - if ($tmpproduct->duration_unit == 'y') { - $prodDurationHours = 24. * 365; - } - $prodDurationHours *= $tmpproduct->duration_value; - $dataforprice = $tmpproduct->getSellPrice($mysoc, $projectstatic->thirdparty, 0); $pu_ht = empty($dataforprice['pu_ht']) ? 0 : $dataforprice['pu_ht']; @@ -426,7 +452,7 @@ if ($action == 'confirm_generateinvoice') { $localtax1 = $dataforprice['localtax1']; $localtax2 = $dataforprice['localtax2']; } else { - $prodDurationHours = 1; + $prodDurationHoursBase = 1; $pu_ht = 0; $txtva = get_default_tva($mysoc, $projectstatic->thirdparty); @@ -437,6 +463,9 @@ if ($action == 'confirm_generateinvoice') { $tmpinvoice->socid = $projectstatic->thirdparty->id; $tmpinvoice->date = dol_mktime(GETPOST('rehour', 'int'), GETPOST('remin', 'int'), GETPOST('resec', 'int'), GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); $tmpinvoice->fk_project = $projectstatic->id; + $tmpinvoice->cond_reglement_id = $projectstatic->thirdparty->cond_reglement_id; + $tmpinvoice->mode_reglement_id = $projectstatic->thirdparty->mode_reglement_id; + $tmpinvoice->fk_account = $projectstatic->thirdparty->fk_account; if ($invoiceToUse) { $tmpinvoice->fetch($invoiceToUse); @@ -449,44 +478,102 @@ if ($action == 'confirm_generateinvoice') { } if (!$error) { - if ($generateinvoicemode == 'onelineperuser') { + if ($generateinvoicemode == 'onelineperuser') { // 1 line per user (and per product) $arrayoftasks = array(); foreach ($toselect as $key => $value) { // Get userid, timepent - $object->fetchTimeSpent($value); - $arrayoftasks[$object->timespent_fk_user]['timespent'] += $object->timespent_duration; - $arrayoftasks[$object->timespent_fk_user]['totalvaluetodivideby3600'] += ($object->timespent_duration * $object->timespent_thm); + $object->fetchTimeSpent($value); // $value is ID of 1 line in timespent table + $arrayoftasks[$object->timespent_fk_user][(int) $object->timespent_fk_product]['timespent'] += $object->timespent_duration; + $arrayoftasks[$object->timespent_fk_user][(int) $object->timespent_fk_product]['totalvaluetodivideby3600'] += ($object->timespent_duration * $object->timespent_thm); } - foreach ($arrayoftasks as $userid => $value) { + foreach ($arrayoftasks as $userid => $data) { $fuser->fetch($userid); - //$pu_ht = $value['timespent'] * $fuser->thm; $username = $fuser->getFullName($langs); - // Define qty per hour - $qtyhour = $value['timespent'] / 3600; - $qtyhourtext = convertSecondToTime($value['timespent'], 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); + foreach ($data as $fk_product => $timespent_data) { + // Define qty per hour + $qtyhour = $timespent_data['timespent'] / 3600; + $qtyhourtext = convertSecondToTime($timespent_data['timespent'], 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); - // If no unit price known - if (empty($pu_ht)) { - $pu_ht = price2num($value['totalvaluetodivideby3600'] / 3600, 'MU'); - } + // Set the unit price we want to sell the time, for this user + if (getDolGlobalInt('PROJECT_USE_REAL_COST_FOR_TIME_INVOICING')) { + // We set unit price to 0 to force the use of the rate saved during recording + $pu_ht = 0; + } else { + // We want to sell all the time spent with the last hourly rate of user + $pu_ht = $fuser->thm; + } - // Add lines - $lineid = $tmpinvoice->addline($langs->trans("TimeSpentForInvoice", $username).' : '.$qtyhourtext, $pu_ht, round($qtyhour / $prodDurationHours, 2), $txtva, $localtax1, $localtax2, ($idprod > 0 ? $idprod : 0)); + // If no unit price known for user, we use the price recorded when recording timespent. + if (empty($pu_ht)) { + if ($timespent_data['timespent']) { + $pu_ht = price2num(($timespent_data['totalvaluetodivideby3600'] / $timespent_data['timespent']), 'MU'); + } + } - // Update lineid into line of timespent - $sql = 'UPDATE '.MAIN_DB_PREFIX.'projet_task_time SET invoice_line_id = '.((int) $lineid).', invoice_id = '.((int) $tmpinvoice->id); - $sql .= ' WHERE rowid IN ('.$db->sanitize(join(',', $toselect)).') AND fk_user = '.((int) $userid); - $result = $db->query($sql); - if (!$result) { - $error++; - setEventMessages($db->lasterror(), null, 'errors'); - break; + // Add lines + $prodDurationHours = $prodDurationHoursBase; + $idprodline=$idprod; + $pu_htline = $pu_ht; + $txtvaline = $txtva; + $localtax1line = $localtax1; + $localtax2line = $localtax2; + + // If a particular product/service was defined for the task + if (!empty($fk_product) && $fk_product !== $idprod) { + if (!array_key_exists($fk_product, $product_data_cache)) { + $result = $tmpproduct->fetch($fk_product); + if ($result < 0) { + $error++; + setEventMessages($tmpproduct->error, $tmpproduct->errors, 'errors'); + } + $prodDurationHours = $tmpproduct->getProductDurationHours(); + if ($prodDurationHours < 0) { + $error++; + $langs->load("errors"); + setEventMessages(null, $tmpproduct->errors, 'errors'); + } + + $dataforprice = $tmpproduct->getSellPrice($mysoc, $projectstatic->thirdparty, 0); + + $pu_htline = empty($dataforprice['pu_ht']) ? 0 : $dataforprice['pu_ht']; + $txtvaline = $dataforprice['tva_tx']; + $localtax1line = $dataforprice['localtax1']; + $localtax2line = $dataforprice['localtax2']; + + $product_data_cache[$fk_product] = array('duration'=>$prodDurationHours,'dataforprice'=>$dataforprice); + } else { + $prodDurationHours = $product_data_cache[$fk_product]['duration']; + $pu_htline = empty($product_data_cache[$fk_product]['dataforprice']['pu_ht']) ? 0 : $product_data_cache[$fk_product]['dataforprice']['pu_ht']; + $txtvaline = $product_data_cache[$fk_product]['dataforprice']['tva_tx']; + $localtax1line = $product_data_cache[$fk_product]['dataforprice']['localtax1']; + $localtax2line = $product_data_cache[$fk_product]['dataforprice']['localtax2']; + } + $idprodline=$fk_product; + } + + // Add lines + $lineid = $tmpinvoice->addline($langs->trans("TimeSpentForInvoice", $username).' : '.$qtyhourtext, $pu_htline, round($qtyhour / $prodDurationHours, 2), $txtvaline, $localtax1line, $localtax2line, ($idprodline > 0 ? $idprodline : 0)); + if ($lineid<0) { + $error++; + setEventMessages(null, $tmpinvoice->errors, 'errors'); + } + + // Update lineid into line of timespent + $sql = 'UPDATE '.MAIN_DB_PREFIX.'projet_task_time SET invoice_line_id = '.((int) $lineid).', invoice_id = '.((int) $tmpinvoice->id); + $sql .= ' WHERE rowid IN ('.$db->sanitize(join(',', $toselect)).') AND fk_user = '.((int) $userid); + $result = $db->query($sql); + if (!$result) { + $error++; + setEventMessages($db->lasterror(), null, 'errors'); + break; + } } } } elseif ($generateinvoicemode == 'onelineperperiod') { // One line for each time spent line $arrayoftasks = array(); + $withdetail=GETPOST('detail_time_duration', 'alpha'); foreach ($toselect as $key => $value) { // Get userid, timepent @@ -502,7 +589,7 @@ if ($action == 'confirm_generateinvoice') { $arrayoftasks[$object->timespent_id]['totalvaluetodivideby3600'] = $object->timespent_duration * $object->timespent_thm; $arrayoftasks[$object->timespent_id]['note'] = $ftask->ref.' - '.$ftask->label.' - '.$username.($object->timespent_note ? ' - '.$object->timespent_note : ''); // TODO Add user name in note if (!empty($withdetail)) { - if (!empty($conf->fckeditor->enabled) && !empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { + if (isModEnabled('fckeditor') && !empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { $arrayoftasks[$object->timespent_id]['note'] .= "
    "; } else { $arrayoftasks[$object->timespent_id]['note'] .= "\n"; @@ -516,6 +603,7 @@ if ($action == 'confirm_generateinvoice') { $arrayoftasks[$object->timespent_id]['note'] .= ' - '.$langs->trans("Duration").': '.convertSecondToTime($object->timespent_duration, 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); } $arrayoftasks[$object->timespent_id]['user'] = $object->timespent_fk_user; + $arrayoftasks[$object->timespent_id]['fk_product'] = $object->timespent_fk_product; } foreach ($arrayoftasks as $timespent_id => $value) { @@ -531,7 +619,49 @@ if ($action == 'confirm_generateinvoice') { } // Add lines - $lineid = $tmpinvoice->addline($value['note'], $pu_ht, round($qtyhour / $prodDurationHours, 2), $txtva, $localtax1, $localtax2, ($idprod > 0 ? $idprod : 0)); + $prodDurationHours = $prodDurationHoursBase; + $idprodline=$idprod; + $pu_htline = $pu_ht; + $txtvaline = $txtva; + $localtax1line = $localtax1; + $localtax2line = $localtax2; + + if (!empty($value['fk_product']) && $value['fk_product']!==$idprod) { + if (!array_key_exists($value['fk_product'], $product_data_cache)) { + $result = $tmpproduct->fetch($value['fk_product']); + if ($result < 0) { + $error++; + setEventMessages($tmpproduct->error, $tmpproduct->errors, 'errors'); + } + $prodDurationHours = $tmpproduct->getProductDurationHours(); + if ($prodDurationHours < 0) { + $error++; + $langs->load("errors"); + setEventMessages(null, $tmpproduct->errors, 'errors'); + } + + $dataforprice = $tmpproduct->getSellPrice($mysoc, $projectstatic->thirdparty, 0); + + $pu_htline = empty($dataforprice['pu_ht']) ? 0 : $dataforprice['pu_ht']; + $txtvaline = $dataforprice['tva_tx']; + $localtax1line = $dataforprice['localtax1']; + $localtax2line = $dataforprice['localtax2']; + + $product_data_cache[$value['fk_product']] = array('duration'=>$prodDurationHours,'dataforprice'=>$dataforprice); + } else { + $prodDurationHours = $product_data_cache[$value['fk_product']]['duration']; + $pu_htline = empty($product_data_cache[$value['fk_product']]['dataforprice']['pu_ht']) ? 0 : $product_data_cache[$value['fk_product']]['dataforprice']['pu_ht']; + $txtvaline = $product_data_cache[$value['fk_product']]['dataforprice']['tva_tx']; + $localtax1line = $product_data_cache[$value['fk_product']]['dataforprice']['localtax1']; + $localtax2line = $product_data_cache[$value['fk_product']]['dataforprice']['localtax2']; + } + $idprodline=$value['fk_product']; + } + $lineid = $tmpinvoice->addline($value['note'], $pu_htline, round($qtyhour / $prodDurationHours, 2), $txtvaline, $localtax1line, $localtax2line, ($idprodline > 0 ? $idprodline : 0)); + if ($lineid<0) { + $error++; + setEventMessages(null, $tmpinvoice->errors, 'errors'); + } //var_dump($lineid);exit; // Update lineid into line of timespent @@ -550,56 +680,99 @@ if ($action == 'confirm_generateinvoice') { // Get userid, timepent $object->fetchTimeSpent($value); // Call method to get list of timespent for a timespent line id (We use the utiliy method found into Task object) // $object->id is now the task id - $arrayoftasks[$object->id]['timespent'] += $object->timespent_duration; - $arrayoftasks[$object->id]['totalvaluetodivideby3600'] += ($object->timespent_duration * $object->timespent_thm); + $arrayoftasks[$object->id][(int) $object->timespent_fk_product]['timespent'] += $object->timespent_duration; + $arrayoftasks[$object->id][(int) $object->timespent_fk_product]['totalvaluetodivideby3600'] += ($object->timespent_duration * $object->timespent_thm); } - foreach ($arrayoftasks as $task_id => $value) { + foreach ($arrayoftasks as $task_id => $data) { $ftask = new Task($db); $ftask->fetch($task_id); - // Define qty per hour - $qtyhour = $value['timespent'] / 3600; - $qtyhourtext = convertSecondToTime($value['timespent'], 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); - if ($idprod > 0) { - // If a product is defined, we msut use the $prodDurationHours and $pu_ht of product (already set previously). - $pu_ht_for_task = $pu_ht; - // If we want to reuse the value of timespent (so use same price than cost price) - if (!empty($conf->global->PROJECT_TIME_SPENT_INTO_INVOICE_USE_VALUE)) { - $pu_ht_for_task = price2num($value['totalvaluetodivideby3600'] / $value['timespent'], 'MU') * $prodDurationHours; + foreach ($data as $fk_product=>$timespent_data) { + $qtyhour = $timespent_data['timespent'] / 3600; + $qtyhourtext = convertSecondToTime($timespent_data['timespent'], 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); + + // Add lines + $prodDurationHours = $prodDurationHoursBase; + $idprodline=$idprod; + $pu_htline = $pu_ht; + $txtvaline = $txtva; + $localtax1line = $localtax1; + $localtax2line = $localtax2; + + if (!empty($fk_product) && $fk_product!==$idprod) { + if (!array_key_exists($fk_product, $product_data_cache)) { + $result = $tmpproduct->fetch($fk_product); + if ($result < 0) { + $error++; + setEventMessages($tmpproduct->error, $tmpproduct->errors, 'errors'); + } + $prodDurationHours = $tmpproduct->getProductDurationHours(); + if ($prodDurationHours < 0) { + $error++; + $langs->load("errors"); + setEventMessages(null, $tmpproduct->errors, 'errors'); + } + + $dataforprice = $tmpproduct->getSellPrice($mysoc, $projectstatic->thirdparty, 0); + + $pu_htline = empty($dataforprice['pu_ht']) ? 0 : $dataforprice['pu_ht']; + $txtvaline = $dataforprice['tva_tx']; + $localtax1line = $dataforprice['localtax1']; + $localtax2line = $dataforprice['localtax2']; + + $product_data_cache[$fk_product] = array('duration'=>$prodDurationHours,'dataforprice'=>$dataforprice); + } else { + $prodDurationHours = $product_data_cache[$fk_product]['duration']; + $pu_htline = empty($product_data_cache[$fk_product]['dataforprice']['pu_ht']) ? 0 : $product_data_cache[$fk_product]['dataforprice']['pu_ht']; + $txtvaline = $product_data_cache[$fk_product]['dataforprice']['tva_tx']; + $localtax1line = $product_data_cache[$fk_product]['dataforprice']['localtax1']; + $localtax2line = $product_data_cache[$fk_product]['dataforprice']['localtax2']; + } + $idprodline=$fk_product; } - $pa_ht = price2num($value['totalvaluetodivideby3600'] / $value['timespent'], 'MU') * $prodDurationHours; - } else { - // If not product used, we use the hour unit for duration and unit price. - $pu_ht_for_task = 0; - // If we want to reuse the value of timespent (so use same price than cost price) - if (!empty($conf->global->PROJECT_TIME_SPENT_INTO_INVOICE_USE_VALUE)) { - $pu_ht_for_task = price2num($value['totalvaluetodivideby3600'] / $value['timespent'], 'MU'); + + + if ($idprodline > 0) { + // If a product is defined, we msut use the $prodDurationHours and $pu_ht of product (already set previously). + $pu_ht_for_task = $pu_htline; + // If we want to reuse the value of timespent (so use same price than cost price) + if (!empty($conf->global->PROJECT_TIME_SPENT_INTO_INVOICE_USE_VALUE)) { + $pu_ht_for_task = price2num($timespent_data['totalvaluetodivideby3600'] / $timespent_data['timespent'], 'MU') * $prodDurationHours; + } + $pa_ht = price2num($timespent_data['totalvaluetodivideby3600'] / $timespent_data['timespent'], 'MU') * $prodDurationHours; + } else { + // If not product used, we use the hour unit for duration and unit price. + $pu_ht_for_task = 0; + // If we want to reuse the value of timespent (so use same price than cost price) + if (!empty($conf->global->PROJECT_TIME_SPENT_INTO_INVOICE_USE_VALUE)) { + $pu_ht_for_task = price2num($timespent_data['totalvaluetodivideby3600'] / $timespent_data['timespent'], 'MU'); + } + $pa_ht = price2num($timespent_data['totalvaluetodivideby3600'] / $timespent_data['timespent'], 'MU'); } - $pa_ht = price2num($value['totalvaluetodivideby3600'] / $value['timespent'], 'MU'); - } - // Add lines - $date_start = ''; - $date_end = ''; - $lineName = $ftask->ref.' - '.$ftask->label; - $lineid = $tmpinvoice->addline($lineName, $pu_ht_for_task, price2num($qtyhour / $prodDurationHours, 'MS'), $txtva, $localtax1, $localtax2, ($idprod > 0 ? $idprod : 0), 0, $date_start, $date_end, 0, 0, '', 'HT', 0, 1, -1, 0, '', 0, 0, null, $pa_ht); - if ($lineid < 0) { - $error++; - setEventMessages($tmpinvoice->error, $tmpinvoice->errors, 'errors'); - break; - } - - if (!$error) { - // Update lineid into line of timespent - $sql = 'UPDATE '.MAIN_DB_PREFIX.'projet_task_time SET invoice_line_id = '.((int) $lineid).', invoice_id = '.((int) $tmpinvoice->id); - $sql .= ' WHERE rowid IN ('.$db->sanitize(join(',', $toselect)).')'; - $result = $db->query($sql); - if (!$result) { + // Add lines + $date_start = ''; + $date_end = ''; + $lineName = $ftask->ref . ' - ' . $ftask->label; + $lineid = $tmpinvoice->addline($lineName, $pu_ht_for_task, price2num($qtyhour / $prodDurationHours, 'MS'), $txtvaline, $localtax1line, $localtax2line, ($idprodline > 0 ? $idprodline : 0), 0, $date_start, $date_end, 0, 0, '', 'HT', 0, 1, -1, 0, '', 0, 0, null, $pa_ht); + if ($lineid < 0) { $error++; - setEventMessages($db->lasterror(), null, 'errors'); + setEventMessages($tmpinvoice->error, $tmpinvoice->errors, 'errors'); break; } + + if (!$error) { + // Update lineid into line of timespent + $sql = 'UPDATE ' . MAIN_DB_PREFIX . 'projet_task_time SET invoice_line_id = ' . ((int) $lineid) . ', invoice_id = ' . ((int) $tmpinvoice->id); + $sql .= ' WHERE rowid IN (' . $db->sanitize(join(',', $toselect)) . ')'; + $result = $db->query($sql); + if (!$result) { + $error++; + setEventMessages($db->lasterror(), null, 'errors'); + break; + } + } } } } @@ -645,7 +818,7 @@ if ($action == 'confirm_generateinter') { $tmpinter->socid = $projectstatic->thirdparty->id; $tmpinter->date = dol_mktime(GETPOST('rehour', 'int'), GETPOST('remin', 'int'), GETPOST('resec', 'int'), GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); $tmpinter->fk_project = $projectstatic->id; - $tmpinter->description = $projectstatic->title . ( ! empty($projectstatic->description) ? '-' . $projectstatic->label : '' ); + $tmpinter->description = $projectstatic->title . ( !empty($projectstatic->description) ? '-' . $projectstatic->label : '' ); if ($interToUse) { $tmpinter->fetch($interToUse); @@ -678,7 +851,7 @@ if ($action == 'confirm_generateinter') { $qtyhourtext = convertSecondToTime($value['timespent'], 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); // Add lines - $lineid = $tmpinter->addline($user, $tmpinter->id, $ftask->label . ( ! empty($value['note']) ? ' - ' . $value['note'] : '' ), $value['date'], $value['timespent']); + $lineid = $tmpinter->addline($user, $tmpinter->id, $ftask->label . ( !empty($value['note']) ? ' - ' . $value['note'] : '' ), $value['date'], $value['timespent']); } } @@ -700,15 +873,20 @@ if ($action == 'confirm_generateinter') { /* * View */ - -$arrayofselected = is_array($toselect) ? $toselect : array(); - -llxHeader("", $langs->trans("Task")); - $form = new Form($db); $formother = new FormOther($db); $formproject = new FormProjets($db); $userstatic = new User($db); +//$result = $projectstatic->fetch($object->fk_project); +$arrayofselected = is_array($toselect) ? $toselect : array(); + +$title = $object->ref . ' - ' . $langs->trans("TimeSpent"); +if (!empty($withproject)) { + $title .= ' | ' . $langs->trans("Project") . (!empty($projectstatic->ref) ? ': '.$projectstatic->ref : '') ; +} +$help_url = ''; + +llxHeader('', $title, $help_url); if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser > 0) { /* @@ -771,7 +949,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $morehtmlref .= $projectstatic->title; // Thirdparty if (!empty($projectstatic->thirdparty->id) && $projectstatic->thirdparty->id > 0) { - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); + $morehtmlref .= '
    '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -790,7 +968,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '.$langs->trans("Description").''; @@ -379,6 +412,22 @@ if ($id > 0 || !empty($ref)) { //$userAccess = $projectstatic->restrictedProjectArea($user); // We allow task affected to user even if a not allowed project //$arrayofuseridoftask=$object->getListContactId('internal'); + if ($action == 'clone') { + $formquestion = array( + 'text' => $langs->trans("ConfirmClone"), + //array('type' => 'checkbox', 'name' => 'clone_contacts', 'label' => $langs->trans("CloneContacts"), 'value' => true), + array('type' => 'checkbox', 'name' => 'clone_change_dt', 'label' => $langs->trans("CloneChanges"), 'value' => true), + array('type' => 'checkbox', 'name' => 'clone_affectation', 'label' => $langs->trans("CloneAffectation"), 'value' => true), + array('type' => 'checkbox', 'name' => 'clone_prog', 'label' => $langs->trans("CloneProgression"), 'value' => true), + array('type' => 'checkbox', 'name' => 'clone_time', 'label' => $langs->trans("CloneTimes"), 'value' => true), + array('type' => 'checkbox', 'name' => 'clone_file', 'label' => $langs->trans("CloneFile"), 'value' => true), + + ); + + print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id, $langs->trans("ToClone"), $langs->trans("ConfirmCloneTask"), "confirm_clone", $formquestion, '', 1, 300, 590); + } + + $head = task_prepare_head($object); if ($action == 'edit' && $user->rights->projet->creer) { @@ -418,7 +467,7 @@ if ($id > 0 || !empty($ref)) { // Task parent print '
    '.$langs->trans("ChildOfProjectTask").''; - print $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin ? 0 : 1), 0, 0, 0, $object->id); + $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin ? 0 : 1), 0, 0, 0, $object->id); print '
    '.$langs->trans("Description").''; - if (empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) { - print ''; - } else { - // WYSIWYG editor - include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $cked_enabled = (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS) ? $conf->global->FCKEDITOR_ENABLE_DETAILS : 0); - if (!empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) { - $nbrows = $conf->global->MAIN_INPUT_DESC_HEIGHT; - } - $doleditor = new DolEditor('description', $object->description, '', 80, 'dolibarr_details', '', false, true, $cked_enabled, $nbrows); - print $doleditor->Create(); + // WYSIWYG editor + include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $cked_enabled = (!empty($conf->global->FCKEDITOR_ENABLE_SOCIETE) ? $conf->global->FCKEDITOR_ENABLE_SOCIETE : 0); + if (!empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) { + $nbrows = $conf->global->MAIN_INPUT_DESC_HEIGHT; } + $doleditor = new DolEditor('description', $object->description, '', 80, 'dolibarr_details', '', false, true, $cked_enabled, $nbrows); + print $doleditor->Create(); print '
    '.$langs->trans("Budget").'
    '.$langs->trans("DateStart").' - '.$langs->trans("Deadline").''; $start = dol_print_date($object->date_start, 'dayhour'); print ($start ? $start : '?'); @@ -588,7 +633,7 @@ if ($id > 0 || !empty($ref)) { // Budget print '
    '.$langs->trans("Budget").''; if (strcmp($object->budget_amount, '')) { - print price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency); + print ''.price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency).''; } print '
    '; // Usage - if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) { + if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) { print ''; @@ -813,7 +991,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); @@ -832,8 +1010,15 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser } print ''; - // Date start - end - print ''; + + // Date start - end project + print ''; - // Budget - print ''; - // Other attributes $cols = 2; - //include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; + $savobject = $object; + $object = $projectstatic; + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; + $object = $savobject; print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Budget + print '
    '.$langs->trans("Budget").''; + if (strcmp($projectstatic->budget_amount, '')) { + print ''.price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; + } + print '
    '.$langs->trans("Dates").''; $start = dol_print_date($projectstatic->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($projectstatic->date_end, 'day'); @@ -844,16 +1029,12 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser } print '
    '.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { - print ''.price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; - } - print '
    '; @@ -919,15 +1100,19 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $massactionbutton = ''; $arrayofmassactions = array(); - if ($projectstatic->usage_bill_time) { - $arrayofmassactions = array( - 'generateinvoice'=>$langs->trans("GenerateBill"), - //'builddoc'=>$langs->trans("PDFMerge"), - ); - } - if ( ! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer) { - $langs->load("interventions"); - $arrayofmassactions['generateinter'] = $langs->trans("GenerateInter"); + + if ($projectstatic->id > 0) { + // If we are on a given project. + if ($projectstatic->usage_bill_time) { + $arrayofmassactions = array( + 'generateinvoice'=>$langs->trans("GenerateBill"), + //'builddoc'=>$langs->trans("PDFMerge"), + ); + } + if ( isModEnabled('ficheinter') && $user->rights->ficheinter->creer) { + $langs->load("interventions"); + $arrayofmassactions['generateinter'] = $langs->trans("GenerateInter"); + } } //if ($user->rights->projet->creer) $arrayofmassactions['predelete']=''.$langs->trans("Delete"); if (in_array($massaction, array('presend', 'predelete', 'generateinvoice', 'generateinter'))) { @@ -965,7 +1150,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Third party $morehtmlref .= $langs->trans("ThirdParty").': '; - if (is_object($projectstatic->thirdparty)) { + if (!empty($projectstatic->thirdparty) && is_object($projectstatic->thirdparty)) { $morehtmlref .= $projectstatic->thirdparty->getNomUrl(1); } $morehtmlref .= ''; @@ -977,10 +1162,19 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '; print '
    '; - print ''; + print '
    '; - // Date start - Date end - print ''; + + // Date start - Date end task + print ''; print ''; print ''; /*print ''; @@ -1251,10 +1497,11 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; if ($projectstatic->thirdparty->id > 0) { - print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; + // Task parent + print '
    '.$langs->trans("ChildOfTask").''; + if ($object->fk_task_parent > 0) { + $tasktmp = new Task($db); + $tasktmp->fetch($object->fk_task_parent); + print $tasktmp->getNomUrl(1); + } + print '
    '.$langs->trans("DateStart").' - '.$langs->trans("Deadline").''; $start = dol_print_date($object->date_start, 'dayhour'); print ($start ? $start : '?'); $end = dol_print_date($object->date_end, 'dayhour'); @@ -1053,7 +1247,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser } // Call Hook formConfirm - $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid, "projectstatic" => $projectstatic, "withproject" => $withproject); + $parameters = array('formConfirm' => $formconfirm, "projectstatic" => $projectstatic, "withproject" => $withproject); $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $formconfirm .= $hookmanager->resPrint; @@ -1067,12 +1261,21 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Definition of fields for list $arrayfields = array(); $arrayfields['t.task_date'] = array('label'=>$langs->trans("Date"), 'checked'=>1); + $arrayfields['p.fk_soc'] = array('label'=>$langs->trans("ThirdParty"), 'type'=>'integer:Societe:/societe/class/societe.class.php:1','checked'=>1); + $arrayfields['s.name_alias'] = array('label'=>$langs->trans("AliasNameShort"), 'type'=>'integer:Societe:/societe/class/societe.class.php:1'); if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task + if (! empty($allprojectforuser)) { + $arrayfields['p.project_ref'] = ['label' => $langs->trans('RefProject'), 'checked' => 1]; + $arrayfields['p.project_label'] = ['label' => $langs->trans('ProjectLabel'), 'checked' => 1]; + } $arrayfields['t.task_ref'] = array('label'=>$langs->trans("RefTask"), 'checked'=>1); $arrayfields['t.task_label'] = array('label'=>$langs->trans("LabelTask"), 'checked'=>1); } $arrayfields['author'] = array('label'=>$langs->trans("By"), 'checked'=>1); $arrayfields['t.note'] = array('label'=>$langs->trans("Note"), 'checked'=>1); + if (isModEnabled('service') && !empty($projectstatic->thirdparty) && $projectstatic->thirdparty->id > 0 && $projectstatic->usage_bill_time) { + $arrayfields['t.fk_product'] = array('label' => $langs->trans("Product"), 'checked' => 1); + } $arrayfields['t.task_duration'] = array('label'=>$langs->trans("Duration"), 'checked'=>1); $arrayfields['value'] = array('label'=>$langs->trans("Value"), 'checked'=>1, 'enabled'=>(empty($conf->salaries->enabled) ? 0 : 1)); $arrayfields['valuebilled'] = array('label'=>$langs->trans("Billed"), 'checked'=>1, 'enabled'=>(((!empty($conf->global->PROJECT_HIDE_TASKS) || empty($conf->global->PROJECT_BILL_TIME_SPENT)) ? 0 : 1) && $projectstatic->usage_bill_time)); @@ -1100,6 +1303,18 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if ($search_task_ref != '') { $param .= '&search_task_ref='.urlencode($search_task_ref); } + if ($search_company != '') { + $param .= '&$search_company='.urlencode($search_company); + } + if ($search_company_alias != '') { + $param .= '&$search_company_alias='.urlencode($search_company_alias); + } + if ($search_project_ref != '') { + $param .= '&$search_project_ref='.urlencode($search_project_ref); + } + if ($search_project_label != '') { + $param .= '&$search_project_label='.urlencode($search_project_label); + } if ($search_task_label != '') { $param .= '&search_task_label='.urlencode($search_task_label); } @@ -1112,6 +1327,37 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if ($optioncss != '') { $param .= '&optioncss='.urlencode($optioncss); } + if ($search_date_startday) { + $param .= '&search_date_startday='.urlencode($search_date_startday); + } + if ($search_date_startmonth) { + $param .= '&search_date_startmonth='.urlencode($search_date_startmonth); + } + if ($search_date_startyear) { + $param .= '&search_date_startyear='.urlencode($search_date_startyear); + } + if ($search_date_endday) { + $param .= '&search_date_endday='.urlencode($search_date_endday); + } + if ($search_date_endmonth) { + $param .= '&search_date_endmonth='.urlencode($search_date_endmonth); + } + if ($search_date_endyear) { + $param .= '&search_date_endyear='.urlencode($search_date_endyear); + } + if ($search_timespent_starthour) { + $param .= '&search_timespent_duration_starthour='.urlencode($search_timespent_starthour); + } + if ($search_timespent_startmin) { + $param .= '&search_timespent_duration_startmin='.urlencode($search_timespent_startmin); + } + if ($search_timespent_endhour) { + $param .= '&search_timespent_duration_endhour='.urlencode($search_timespent_endhour); + } + if ($search_timespent_endmin) { + $param .= '&search_timespent_duration_endmin='.urlencode($search_timespent_endmin); + } + /* // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; @@ -1142,9 +1388,9 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; } elseif ($action == 'createtime' && $user->rights->projet->time) { print ''; - } elseif ($massaction == 'generateinvoice' && $user->rights->facture->lire) { + } elseif ($massaction == 'generateinvoice' && $user->rights->facture->creer) { print ''; - } elseif ($massaction == 'generateinter' && $user->rights->ficheinter->lire) { + } elseif ($massaction == 'generateinter' && $user->rights->ficheinter->creer) { print ''; } else { print ''; @@ -1220,7 +1466,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print $langs->trans('InvoiceToUse'); print ''; - $form->selectInvoice('invoice', '', 'invoiceid', 24, 0, $langs->trans('NewInvoice'), 1, 0, 0, 'maxwidth500', '', 'all'); + $form->selectInvoice($projectstatic->thirdparty->id, '', 'invoiceid', 24, 0, $langs->trans('NewInvoice'), 1, 0, 0, 'maxwidth500', '', 'all'); print '
    '; + print '
    '; + print '
    '; print ''; print ''; print ''; print '
    '; - print $langs->trans('InterToUse'); + print img_picto('', 'intervention', 'class="pictofixedwidth"').$langs->trans('InterToUse'); print ''; $forminter = new FormIntervention($db); @@ -1263,7 +1510,6 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '; - print '
    '; print '
    '; print ' '; print ''; @@ -1296,10 +1542,15 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser */ $tasks = array(); + $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields + $sql = "SELECT t.rowid, t.fk_task, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm,"; + $sql .= " t.fk_product,"; $sql .= " pt.ref, pt.label, pt.fk_projet,"; $sql .= " u.lastname, u.firstname, u.login, u.photo, u.statut as user_status,"; $sql .= " il.fk_facture as invoice_id, inv.fk_statut,"; + $sql .= " p.fk_soc,s.name_alias,"; // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook @@ -1308,13 +1559,17 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facturedet as il ON il.rowid = t.invoice_line_id"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture as inv ON inv.rowid = il.fk_facture"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as prod ON prod.rowid = t.fk_product"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."projet_task as pt ON pt.rowid = t.fk_task"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = pt.fk_projet"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON t.fk_user = u.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = p.fk_soc"; + // Add table from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; - $sql .= ", ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u"; - $sql .= " WHERE t.fk_user = u.rowid AND t.fk_task = pt.rowid"; - + $sql .= " WHERE 1 = 1 "; if (empty($projectidforalltimes) && empty($allprojectforuser)) { // Limit on one task $sql .= " AND t.fk_task =".((int) $object->id); @@ -1326,7 +1581,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (empty($search_user)) { $search_user = $user->id; } - $sql .= " AND t.fk_user = ".((int) $search_user); + if ($search_user > 0) $sql .= " AND t.fk_user = ".((int) $search_user); } if ($search_note) { @@ -1335,19 +1590,61 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if ($search_task_ref) { $sql .= natural_search('pt.ref', $search_task_ref); } + if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); + } else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } + } + if ($search_project_ref) { + $sql .= natural_search('p.ref', $search_project_ref); + } + if ($search_project_label) { + $sql .= natural_search('p.title', $search_project_label); + } if ($search_task_label) { $sql .= natural_search('pt.label', $search_task_label); } if ($search_user > 0) { $sql .= natural_search('t.fk_user', $search_user, 2); } + if (!empty($search_product_ref)) { + $sql .= natural_search('prod.ref', $search_product_ref); + } if ($search_valuebilled == '1') { $sql .= ' AND t.invoice_id > 0'; } if ($search_valuebilled == '0') { $sql .= ' AND (t.invoice_id = 0 OR t.invoice_id IS NULL)'; } + + if ($search_date_start) { + $sql .= " AND t.task_date >= '".$db->idate($search_date_start)."'"; + } + if ($search_date_end) { + $sql .= " AND t.task_date <= '".$db->idate($search_date_end)."'"; + } + + if (!empty($arrayfields['t.task_duration']['checked'])) { + if ($search_timespent_starthour || $search_timespent_startmin) { + $timespent_duration_start = $search_timespent_starthour * 60 * 60; // We store duration in seconds + $timespent_duration_start += ($search_timespent_startmin ? $search_timespent_startmin : 0) * 60; // We store duration in seconds + $sql .= " AND t.task_duration >= " . $timespent_duration_start; + } + + if ($search_timespent_endhour || $search_timespent_endmin) { + $timespent_duration_end = $search_timespent_endhour * 60 * 60; // We store duration in seconds + $timespent_duration_end += ($search_timespent_endmin ? $search_timespent_endmin : 0) * 60; // We store duration in seconds + $sql .= " AND t.task_duration <= " . $timespent_duration_end; + } + } + $sql .= dolSqlDateFilter('t.task_datehour', $search_day, $search_month, $search_year); + // Add where from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook @@ -1437,6 +1734,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '.$langs->trans("ProgressDeclared").''.$langs->trans("Product").''; print ''; + print $form->select_produits('', 'fk_product', '1', 0, $projectstatic->thirdparty->price_level, 1, 2, '', 0, array(), $projectstatic->thirdparty->id, 'None', 0, 'maxwidth500'); + print '
    '; - if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { - print ''; - } - print ''; - print $formother->selectyear($search_year, 'search_year', 1, 20, 5); + print ''; + print '
    '; + print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_date_end ? $search_date_end : -1, 'search_date_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; print '
    '; + + $durationtouse_start = 0; + if ($search_timespent_starthour || $search_timespent_startmin) { + $durationtouse_start = ($search_timespent_starthour * 3600 + $search_timespent_startmin * 60); + } + print '
    '.$langs->trans('from').' '; + $form->select_duration('search_timespent_duration_start', $durationtouse_start, 0, 'text'); + print '
    '; + + $durationtouse_end = 0; + if ($search_timespent_endhour || $search_timespent_endmin) { + $durationtouse_end = ($search_timespent_endhour * 3600 + $search_timespent_endmin * 60); + } + print '
    '.$langs->trans('at').' '; + $form->select_duration('search_timespent_duration_end', $durationtouse_end, 0, 'text'); + print '
    '; + + print '
    '; - if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'editline' && GETPOST('lineid', 'int') == $task_time->rowid) { if (empty($task_time->task_date_withhour)) { print $form->selectDate(($date2 ? $date2 : $date1), 'timeline', 3, 3, 2, "timespent_date", 1, 0); } else { @@ -1691,28 +2053,83 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser } } - // Project ref - if (!empty($allprojectforuser)) { - print ''; - if (empty($conf->cache['project'][$task_time->fk_projet])) { - $tmpproject = new Project($db); - $tmpproject->fetch($task_time->fk_projet); - $conf->cache['project'][$task_time->fk_projet] = $tmpproject; - } else { - $tmpproject = $conf->cache['project'][$task_time->fk_projet]; + // Thirdparty + if (!empty($arrayfields['p.fk_soc']['checked'])) { + print ''; + if ($task_time->fk_soc > 0) { + if (empty($conf->cache['thridparty'][$task_time->fk_soc])) { + $tmpsociete = new Societe($db); + $tmpsociete->fetch($task_time->fk_soc); + $conf->cache['thridparty'][$task_time->fk_soc] = $tmpsociete; + } else { + $tmpsociete = $conf->cache['thridparty'][$task_time->fk_soc]; + } + print $tmpsociete->getNomUrl(1, '', 100, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); } - print $tmpproject->getNomUrl(1); print ''; + if ($task_time->fk_soc > 0) { + if (empty($conf->cache['thridparty'][$task_time->fk_soc])) { + $tmpsociete = new Societe($db); + $tmpsociete->fetch($task_time->fk_soc); + $conf->cache['thridparty'][$task_time->fk_soc] = $tmpsociete; + } else { + $tmpsociete = $conf->cache['thridparty'][$task_time->fk_soc]; + } + print $tmpsociete->name_alias; + } + print ''; + if (empty($conf->cache['project'][$task_time->fk_projet])) { + $tmpproject = new Project($db); + $tmpproject->fetch($task_time->fk_projet); + $conf->cache['project'][$task_time->fk_projet] = $tmpproject; + } else { + $tmpproject = $conf->cache['project'][$task_time->fk_projet]; + } + print $tmpproject->getNomUrl(1); + print ''; + if (empty($conf->cache['project'][$task_time->fk_projet])) { + $tmpproject = new Project($db); + $tmpproject->fetch($task_time->fk_projet); + $conf->cache['project'][$task_time->fk_projet] = $tmpproject; + } else { + $tmpproject = $conf->cache['project'][$task_time->fk_projet]; + } + print $tmpproject->title; + print ''; - if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'editline' && GETPOST('lineid', 'int') == $task_time->rowid) { $formproject->selectTasks(-1, GETPOST('taskid', 'int') ? GETPOST('taskid', 'int') : $task_time->fk_task, 'taskid', 0, 0, 1, 1, 0, 0, 'maxwidth300', $projectstatic->id, ''); } else { $tasktmp->id = $task_time->fk_task; @@ -1744,7 +2161,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // By User if (!empty($arrayfields['author']['checked'])) { print ''; - if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'editline' && GETPOST('lineid', 'int') == $task_time->rowid) { if (empty($object->id)) { $object->fetch($id); } @@ -1775,8 +2192,8 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Note if (!empty($arrayfields['t.note']['checked'])) { print ''; - if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { - print ''; + if ($action == 'editline' && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; } else { print dol_nl2br($task_time->note); } @@ -1784,14 +2201,14 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!$i) { $totalarray['nbfield']++; } - } elseif ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { - print ''; + } elseif ($action == 'editline' && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; } // Time spent if (!empty($arrayfields['t.task_duration']['checked'])) { print ''; - if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'editline' && GETPOST('lineid', 'int') == $task_time->rowid) { print ''; print $form->select_duration('new_duration', $task_time->task_duration, 0, 'text'); } else { @@ -1804,19 +2221,44 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 't.task_duration'; } - $totalarray['val']['t.task_duration'] += $task_time->task_duration; + if (empty($totalarray['val']['t.task_duration'])) { + $totalarray['val']['t.task_duration'] = $task_time->task_duration; + } else { + $totalarray['val']['t.task_duration'] += $task_time->task_duration; + } if (!$i) { $totalarray['totaldurationfield'] = $totalarray['nbfield']; } - $totalarray['totalduration'] += $task_time->task_duration; + if (empty($totalarray['totalduration'])) { + $totalarray['totalduration'] = $task_time->task_duration; + } else { + $totalarray['totalduration'] += $task_time->task_duration; + } + } + + //Product + if (!empty($arrayfields['t.fk_product']['checked'])) { + print ''; + if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid) { + $form->select_produits($task_time->fk_product, 'fk_product', '1', 0, $projectstatic->thirdparty->price_level, 1, 2, '', 0, array(), $projectstatic->thirdparty->id, 'None', 0, 'maxwidth500'); + } elseif (!empty($task_time->fk_product)) { + $product = new Product($db); + $resultFetch = $product->fetch($task_time->fk_product); + if ($resultFetch < 0) { + setEventMessages($product->error, $product->errors, 'errors'); + } else { + print $product->getNomUrl(1); + } + } + print ''; - $value = price2num($task_time->thm * $task_time->task_duration / 3600, 'MT', 1); print 'thm).'">'; print price($value, 1, $langs, 1, -1, -1, $conf->currency); print ''; @@ -1827,11 +2269,19 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'value'; } - $totalarray['val']['value'] += $value; + if (empty($totalarray['val']['value'])) { + $totalarray['val']['value'] = $value; + } else { + $totalarray['val']['value'] += $value; + } if (!$i) { $totalarray['totalvaluefield'] = $totalarray['nbfield']; } - $totalarray['totalvalue'] += $value; + if (empty($totalarray['totalvalue'])) { + $totalarray['totalvalue'] = $value; + } else { + $totalarray['totalvalue'] += $value; + } } // Invoiced @@ -1869,26 +2319,24 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Action column print ''; - if (($action == 'editline' || $action == 'splitline') && $_GET['lineid'] == $task_time->rowid) { - print ''; + if (($action == 'editline' || $action == 'splitline') && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; print ''; - print '
    '; + print ' '; print ''; - } elseif ($user->rights->projet->time || $user->rights->projet->all->creer) { // Read project and enter time consumed on assigned tasks - if ($task_time->fk_user == $user->id || in_array($task_time->fk_user, $childids) || $user->rights->projet->all->creer) { - if ($conf->MAIN_FEATURES_LEVEL >= 2) { + } elseif ($user->hasRight('projet', 'time') || $user->hasRight('projet', 'all', 'creer')) { // Read project and enter time consumed on assigned tasks + if (in_array($task_time->fk_user, $childids) || $user->hasRight('projet', 'all', 'creer')) { + if (getDolGlobalString('MAIN_FEATURES_LEVEL') >= 2) { print ' '; - print 'rowid.$param.((empty($id) || $tab == 'timespent') ? '&tab=timespent' : '').'">'; - print img_split(); + print 'rowid.$param.((empty($id) || $tab == 'timespent') ? '&tab=timespent' : '').'">'; + print img_split('', 'class="pictofixedwidth"'); print ''; } - print ' '; print 'rowid.$param.((empty($id) || $tab == 'timespent') ? '&tab=timespent' : '').'">'; - print img_edit(); + print img_edit('default', 0, 'class="pictofixedwidth paddingleft"'); print ''; - print ' '; print 'rowid.$param.((empty($id) || $tab == 'timespent') ? '&tab=timespent' : '').'">'; print img_delete('default', 'class="pictodelete paddingleft"'); print ''; @@ -1913,13 +2361,13 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Add line to split - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { print '
    '; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { if (empty($task_time->task_date_withhour)) { print $form->selectDate(($date2 ? $date2 : $date1), 'timeline', 3, 3, 2, "timespent_date", 1, 0); } else { @@ -1963,7 +2411,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // User if (!empty($arrayfields['author']['checked'])) { print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { if (empty($object->id)) { $object->fetch($id); } @@ -1991,20 +2439,20 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Note if (!empty($arrayfields['t.note']['checked'])) { print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { - print ''; + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; } else { print dol_nl2br($task_time->note); } print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { print ''; print $form->select_duration('new_duration', $task_time->task_duration, 0, 'text'); } else { @@ -2016,8 +2464,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Value spent if (!empty($arrayfields['value']['checked'])) { print ''; + print ''; $value = price2num($task_time->thm * $task_time->task_duration / 3600, 'MT', 1); print price($value, 1, $langs, 1, -1, -1, $conf->currency); + print ''; print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { if (empty($task_time->task_date_withhour)) { print $form->selectDate(($date2 ? $date2 : $date1), 'timeline_2', 3, 3, 2, "timespent_date", 1, 0); } else { @@ -2099,7 +2549,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // User if (!empty($arrayfields['author']['checked'])) { print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { if (empty($object->id)) { $object->fetch($id); } @@ -2127,20 +2577,20 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Note if (!empty($arrayfields['t.note']['checked'])) { print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { - print ''; + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { + print ''; } else { print dol_nl2br($task_time->note); } print ''; - if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid) { + if ($action == 'splitline' && GETPOST('lineid', 'int') == $task_time->rowid) { print ''; print $form->select_duration('new_duration_2', 0, 0, 'text'); } else { @@ -2152,8 +2602,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Value spent if (!empty($arrayfields['value']['checked'])) { print ''; + print ''; $value = 0; print price($value, 1, $langs, 1, -1, -1, $conf->currency); + print ''; print ''; $valuebilled = price2num($task_time->total_ht, '', 1); if (isset($task_time->total_ht)) { + print ''; print price($valuebilled, 1, $langs, 1, -1, -1, $conf->currency); + print ''; } print '
    '; - print $langs->trans("YourMailUnsubcribeOK", $obj->email)."
    \n"; - print '
    '; - print "\n"; - print "\n"; +if (empty($tag) || ($unsuscrib != '1')) { + print 'Bad parameters'; + exit; } + +/* + * View + */ + +$head = ''; +$replacemainarea = (empty($conf->dol_hide_leftmenu) ? '
    ' : '').'
    '; +llxHeader($head, $langs->trans("MailUnsubcribe"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea); + +dol_syslog("public/emailing/mailing-unsubscribe.php : Launch unsubscribe requests", LOG_DEBUG); + +$sql = "SELECT mc.rowid, mc.email, mc.statut, m.entity"; +$sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc, ".MAIN_DB_PREFIX."mailing as m"; +$sql .= " WHERE mc.fk_mailing = m.rowid AND mc.tag = '".$db->escape($tag)."'"; + +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); +} + +$obj = $db->fetch_object($resql); + +if (empty($obj)) { + print 'Email tag not found. Operation canceled.'; + llxFooter('', 'private'); + exit; +} +if (empty($obj->email)) { + print 'Email for this tag not valid. Operation canceled.'; + llxFooter('', 'private'); + exit; +} + +if ($obj->statut == 3) { + print 'Email tag already set to unsubscribe. Operation canceled.'; + llxFooter('', 'private'); + exit; +} +// TODO Test that mtid and email match also with the one found from $tag +/* +if ($obj->email != $email) +{ + print 'Email does not match tagnot found. No need to unsubscribe.'; + exit; +} +*/ + +// Update status of mail in recipient mailing list table +$statut = '3'; +$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".((int) $statut)." WHERE tag = '".$db->escape($tag)."'"; + +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); +} + +/* +// Update status communication of thirdparty prospect (old usage) +$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='thirdparty' AND source_id is not null)"; + +$resql=$db->query($sql); +if (! $resql) dol_print_error($db); + +// Update status communication of contact prospect (old usage) +$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET no_email=1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='contact' AND source_id is not null)"; + +$resql=$db->query($sql); +if (! $resql) dol_print_error($db); +*/ + +// Update status communication of email (new usage) +$sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe (date_creat, entity, email, unsubscribegroup, ip) VALUES ('".$db->idate(dol_now())."', ".((int) $obj->entity).", '".$db->escape($obj->email)."', '', '".$db->escape(getUserRemoteIP())."')"; + +$resql = $db->query($sql); +//if (! $resql) dol_print_error($db); No test on errors, may fail if already unsubscribed + + +print '
    '; +print $langs->trans("YourMailUnsubcribeOK", $obj->email)."
    \n"; +print '
    '; + + +llxFooter('', 'public'); + $db->close(); diff --git a/htdocs/public/error-401.php b/htdocs/public/error-401.php index bae712ec095..a160535ff10 100644 --- a/htdocs/public/error-401.php +++ b/htdocs/public/error-401.php @@ -21,7 +21,12 @@ Sorry. You are not allowed to access this resource.
    - +
    + + No esta autorizado para acceder a este recurso. + +
    +
    diff --git a/htdocs/public/error-404.php b/htdocs/public/error-404.php index 680b9e4a77c..84832100026 100644 --- a/htdocs/public/error-404.php +++ b/htdocs/public/error-404.php @@ -21,7 +21,11 @@ You requested a website or a page that does not exists.
    - +
    + la pagina o el recurso solicitado no existe. + +
    +
    diff --git a/htdocs/public/eventorganization/attendee_new.php b/htdocs/public/eventorganization/attendee_new.php index 661ae6accfe..7e02fda5e13 100644 --- a/htdocs/public/eventorganization/attendee_new.php +++ b/htdocs/public/eventorganization/attendee_new.php @@ -33,9 +33,7 @@ if (!defined('NOIPCHECK')) { if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php @@ -45,6 +43,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -55,11 +54,13 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; global $dolibarr_main_url_root; // Init vars $errmsg = ''; +$errors = array(); $error = 0; $backtopage = GETPOST('backtopage', 'alpha'); $action = GETPOST('action', 'aZ09'); @@ -90,6 +91,7 @@ if ($type == 'conf') { if ($resultproject < 0) { $error++; $errmsg .= $project->error; + $errors = array_merge($errors, $project->errors); } } @@ -99,15 +101,18 @@ if ($type == 'global') { if ($resultproject < 0) { $error++; $errmsg .= $project->error; + $errors = array_merge($errors, $project->errors); } else { - $sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."projet"; - $sql .= " WHERE ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee = ".((int) $project->id); + $sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee"; + $sql .= " WHERE fk_project = ".((int) $project->id); - $resql = $db->query($resql); + $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); if ($obj) { $currentnbofattendees = $obj->nb; + } else { + dol_print_error($db); } } } @@ -135,7 +140,7 @@ $user->loadDefaultValues(); // Security check if (empty($conf->eventorganization->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Event organization not enabled'); } @@ -223,7 +228,7 @@ if ($reshook < 0) { } // Action called when page is submitted -if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conference->status!=2 || !empty($project->id) && $project->status == Project::STATUS_VALIDATED)) { +if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conference->status==2 || !empty($project->id) && $project->status == Project::STATUS_VALIDATED)) { $error = 0; $urlback = ''; @@ -253,10 +258,12 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen // Check if attendee already exists (by email and for this event) $confattendee = new ConferenceOrBoothAttendee($db); + $filter = array(); + if ($type == 'global') { $filter = array('t.fk_project'=>((int) $id), 'customsql'=>'t.email="'.$db->escape($email).'"'); } - if ($action == 'conf') { + if ($type == 'conf') { $filter = array('t.fk_actioncomm'=>((int) $id), 'customsql'=>'t.email="'.$db->escape($email).'"'); } @@ -275,10 +282,43 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen $confattendee->fk_actioncomm = $id; $confattendee->note_public = $note_public; - $resultconfattendee = $confattendee->create($user); + $confattendee->ip = getUserRemoteIP(); + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(ref) as nb_attendee"; + $sql .= " FROM ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee"; + $sql .= " WHERE ip = '".$db->escape($confattendee->ip)."'"; + $sql .= " AND date_creation > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_attendee; + } + } + } + + $resultconforbooth = -1; + + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + $error++; + $errmsg .= $langs->trans("AlreadyTooMuchPostOnThisIPAdress"); + array_push($confattendee->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + setEventMessage($errmsg, 'errors'); + } else { + $resultconfattendee = $confattendee->create($user); + } if ($resultconfattendee < 0) { $error++; $errmsg .= $confattendee->error; + $errors = array_merge($errors, $confattendee->errors); } } @@ -403,6 +443,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen // If an error was found $error++; $errmsg .= $thirdparty->error; + $errors = array_merge($errors, $thirdparty->errors); } elseif ($resultfetchthirdparty == 0) { // No thirdparty found + a payment is expected // Creation of a new thirdparty if (!empty($societe)) { @@ -441,6 +482,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen if ($readythirdparty < 0) { $error++; $errmsg .= $thirdparty->error; + $errors = array_merge($errors, $thirdparty->errors); } else { $thirdparty->country_code = getCountry($thirdparty->country_id, 2, $db, $langs); $thirdparty->country = getCountry($thirdparty->country_code, 0, $db, $langs); @@ -468,10 +510,11 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen $resultprod = $productforinvoicerow->fetch($conf->global->SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION); } - // Create invoice + // Create the draft invoice for the payment if ($resultprod < 0) { $error++; $errmsg .= $productforinvoicerow->error; + $errors = array_merge($errors, $productforinvoicerow->errors); } else { $facture = new Facture($db); if (empty($confattendee->fk_invoice)) { @@ -516,12 +559,19 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen $vattouse = get_default_tva($mysoc, $thirdparty, $productforinvoicerow->id); $labelforproduct = $outputlangs->trans("EventFee", $project->title); - $date_start = $project->date_start; - $date_end = $project->date_end; + if ($project->location) { + $labelforproduct .= ' - '.$project->location; + } + $date_start = $project->date_start_event; + $date_end = $project->date_end_event; // If there is no lines yet, we add one if (empty($facture->lines)) { - $result = $facture->addline($labelforproduct, floatval($project->price_registration), 1, $vattouse, 0, 0, $productforinvoicerow->id, 0, $date_start, $date_end, 0, 0, '', 'HT', 0, 1); + $pu_ttc = floatval($project->price_registration); + $pu_ht = 0; + $price_base_type = 'TTC'; + + $result = $facture->addline($labelforproduct, $pu_ht, 1, $vattouse, 0, 0, $productforinvoicerow->id, 0, $date_start, $date_end, 0, 0, '', $price_base_type, $pu_ttc, 1); if ($result <= 0) { $confattendee->error = $facture->error; $confattendee->errors = $facture->errors; @@ -634,28 +684,60 @@ print load_fiche_titre($langs->trans("NewRegistration"), '', '', 0, 0, 'center') print '
    '; print '
    '; -print '
    '; +print '
    '; // Welcome message -print $langs->trans("EvntOrgWelcomeMessage", $project->title . ' '. $conference->label); +print ''.$langs->trans("EvntOrgWelcomeMessage").''; print '
    '; +print ''.$project->title . ' '. $conference->label.'
    '; +if ($project->date_start_event || $project->date_end_event) { + print ''; +} +if ($project->date_start_event) { + $format = 'day'; + $tmparray = dol_getdate($project->date_start_event, false, ''); + if ($tmparray['hours'] || $tmparray['minutes'] || $tmparray['minutes']) { + $format = 'dayhour'; + } + print dol_print_date($project->date_start_event, $format); +} +if ($project->date_start_event && $project->date_end_event) { + print ' - '; +} +if ($project->date_end_event) { + $format = 'day'; + $tmparray = dol_getdate($project->date_end_event, false, ''); + if ($tmparray['hours'] || $tmparray['minutes'] || $tmparray['minutes']) { + $format = 'dayhour'; + } + print dol_print_date($project->date_end_event, $format); +} +if ($project->date_start_event || $project->date_end_event) { + print '
    '; +} +if ($project->location) { + print ''.$project->location.'
    '; +} + $maxattendees = 0; -if ($conference->id) { +if ($conference->id > 0) { + /* date of project is not date of event so commented print $langs->trans("Date").': '; print dol_print_date($conference->datep); if ($conference->date_end) { print ' - '; print dol_print_date($conference->datef); - } + }*/ } else { + /* date of project is not date of event so commented print $langs->trans("Date").': '; print dol_print_date($project->date_start); if ($project->date_end) { print ' - '; print dol_print_date($project->date_end); - } - $maxattendees = $project->max_attendees; + }*/ + $maxattendees = $project->max_attendees; // Max attendeed for the project/event } print '
    '; @@ -666,9 +748,8 @@ if ($maxattendees && $currentnbofattendees >= $maxattendees) { } -print '
    '; -dol_htmloutput_errors($errmsg); +dol_htmloutput_errors($errmsg, $errors); if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS_CONFIRMED) || (!empty($project->id) && $project->status == Project::STATUS_VALIDATED)) { if (empty($maxattendees) || $currentnbofattendees < $maxattendees) { @@ -683,8 +764,8 @@ if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS print ''; print '
    '; - - print '
    ' . $langs->trans("FieldsWithAreMandatory", '*') . '
    '; + print '
    '; + //print '' . $langs->trans("FieldsWithAreMandatory", '*') . '
    '; //print $langs->trans("FieldsWithIsForPublic",'**').'
    '; print dol_get_fiche_head(''); @@ -703,22 +784,26 @@ if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS print '' . "\n"; // Email - print '' . "\n"; + print '' . "\n"; // Company - print '' . "\n"; + print 'price_registration)) ? '' : ' required').'>' . "\n"; // Email company for invoice if ($project->price_registration) { - print '' . "\n"; } @@ -735,7 +820,7 @@ if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS print ''; // Country - print ''; } @@ -793,8 +878,8 @@ if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS } print ''; - print "\n"; + print "
    "; print ''; } diff --git a/htdocs/public/eventorganization/subscriptionok.php b/htdocs/public/eventorganization/subscriptionok.php index 8acf3daba78..043e0e8d021 100644 --- a/htdocs/public/eventorganization/subscriptionok.php +++ b/htdocs/public/eventorganization/subscriptionok.php @@ -48,11 +48,12 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php'; } @@ -77,7 +78,7 @@ if ($securekeyreceived != $securekeytocompare) { // Security check if (empty($conf->eventorganization->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Event organization not enabled'); } diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php index 31f1fa9f952..7931c6a37c1 100644 --- a/htdocs/public/members/new.php +++ b/htdocs/public/members/new.php @@ -7,6 +7,7 @@ * Copyright (C) 2018-2019 Frédéric France * Copyright (C) 2018 Alexandre Spangaro * Copyright (C) 2021 Waël Almoman + * Copyright (C) 2022 Udo Tamm * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -51,9 +52,7 @@ if (!defined('NOIPCHECK')) { if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php @@ -62,12 +61,17 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } + +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Init vars $errmsg = ''; @@ -77,16 +81,15 @@ $backtopage = GETPOST('backtopage', 'alpha'); $action = GETPOST('action', 'aZ09'); // Load translation files -$langs->loadLangs(array("main", "members", "companies", "install", "other")); +$langs->loadLangs(array("main", "members", "companies", "install", "other", "errors")); // Security check if (empty($conf->adherent->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Membership not enabled'); } if (empty($conf->global->MEMBER_ENABLE_PUBLIC)) { - print $langs->trans("Auto subscription form for public visitors has not been enabled"); - exit; + httponly_accessforbidden("Auto subscription form for public visitors has not been enabled"); } // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -195,7 +198,7 @@ if (empty($reshook) && $action == 'add') { $error++; $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Login"))."
    \n"; } - $sql = "SELECT login FROM ".MAIN_DB_PREFIX."adherent WHERE login='".$db->escape(GETPOST('login'))."'"; + $sql = "SELECT login FROM ".MAIN_DB_PREFIX."adherent WHERE login = '".$db->escape(GETPOST('login'))."'"; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); @@ -252,10 +255,21 @@ if (empty($reshook) && $action == 'add') { } } + // Check Captcha code if is enabled + if (!empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA)) { + $sessionkey = 'dol_antispam_value'; + $ok = (array_key_exists($sessionkey, $_SESSION) === true && (strtolower($_SESSION[$sessionkey]) == strtolower($_POST['code']))); + if (!$ok) { + $error++; + $errmsg .= $langs->trans("ErrorBadValueForCode")."
    \n"; + $action = ''; + } + } + $public = GETPOSTISSET('public') ? 1 : 0; if (!$error) { - // email a peu pres correct et le login n'existe pas + // E-mail looks OK and login does not exist $adh = new Adherent($db); $adh->statut = -1; $adh->public = $public; @@ -273,142 +287,192 @@ if (empty($reshook) && $action == 'add') { $adh->pass = GETPOST('pass1'); } $adh->photo = GETPOST('photo'); - $adh->country_id = $conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE ? $conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE : GETPOST('country_id', 'int'); + $adh->country_id = getDolGlobalString("MEMBER_NEWFORM_FORCECOUNTRYCODE", GETPOST('country_id', 'int')); $adh->state_id = GETPOST('state_id', 'int'); - $adh->typeid = $conf->global->MEMBER_NEWFORM_FORCETYPE ? $conf->global->MEMBER_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); + $adh->typeid = getDolGlobalString("MEMBER_NEWFORM_FORCETYPE", GETPOST('typeid', 'int')); $adh->note_private = GETPOST('note_private'); - $adh->morphy = $conf->global->MEMBER_NEWFORM_FORCEMORPHY ? $conf->global->MEMBER_NEWFORM_FORCEMORPHY : GETPOST('morphy'); + $adh->morphy = getDolGlobalString("MEMBER_NEWFORM_FORCEMORPHY", GETPOST('morphy')); $adh->birth = $birthday; + $adh->ip = getUserRemoteIP(); + + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(ref) as nb_adh"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent"; + $sql .= " WHERE ip = '".$db->escape($adh->ip)."'"; + $sql .= " AND datec > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_adh; + } + } + } + // Fill array 'array_options' with data from add form $extrafields->fetch_name_optionals_label($adh->table_element); $ret = $extrafields->setOptionalsFromPost(null, $adh); if ($ret < 0) { $error++; + $errmsg .= $adh->error; } - $result = $adh->create($user); - if ($result > 0) { - require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $object = $adh; + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + $error++; + $errmsg .= $langs->trans("AlreadyTooMuchPostOnThisIPAdress"); + array_push($adh->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + } - $adht = new AdherentType($db); - $adht->fetch($object->typeid); + if (!$error) { + $result = $adh->create($user); + if ($result > 0) { + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $object = $adh; - if ($object->email) { - $subject = ''; - $msg = ''; + $adht = new AdherentType($db); + $adht->fetch($object->typeid); - // Send subscription email - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - // Set output language - $outputlangs = new Translate('', $conf); - $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); - // Load traductions files required by page - $outputlangs->loadLangs(array("main", "members")); - // Get email content from template - $arraydefaultmessage = null; - $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER; + if ($object->email) { + $subject = ''; + $msg = ''; - if (!empty($labeltouse)) { - $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); + // Send subscription email + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + // Set output language + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); + // Load traductions files required by page + $outputlangs->loadLangs(array("main", "members")); + // Get email content from template + $arraydefaultmessage = null; + $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER; + + if (!empty($labeltouse)) { + $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); + } + + if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { + $subject = $arraydefaultmessage->topic; + $msg = $arraydefaultmessage->content; + } + + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); + $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); + $texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnValid()), $substitutionarray, $outputlangs); + + if ($subjecttosend && $texttosend) { + $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n"; + + $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); + } + /*if ($result < 0) { + $error++; + setEventMessages($object->error, $object->errors, 'errors'); + }*/ } - if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { - $subject = $arraydefaultmessage->topic; - $msg = $arraydefaultmessage->content; - } - - $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); - complete_substitutions_array($substitutionarray, $outputlangs, $object); - $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); - $texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnValid()), $substitutionarray, $outputlangs); - - if ($subjecttosend && $texttosend) { - $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n"; - - $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); - } - /*if ($result < 0) { - $error++; - setEventMessages($object->error, $object->errors, 'errors'); - }*/ - } - - // Send email to the foundation to say a new member subscribed with autosubscribe form - if (!empty($conf->global->MAIN_INFO_SOCIETE_MAIL) && !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT) && - !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL)) { - // Define link to login card - $appli = constant('DOL_APPLICATION_TITLE'); - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { - $appli = $conf->global->MAIN_APPLICATION_TITLE; - if (preg_match('/\d\.\d/', $appli)) { - if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { - $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core + // Send email to the foundation to say a new member subscribed with autosubscribe form + if (!empty($conf->global->MAIN_INFO_SOCIETE_MAIL) && !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT) && + !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL)) { + // Define link to login card + $appli = constant('DOL_APPLICATION_TITLE'); + if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { + $appli = $conf->global->MAIN_APPLICATION_TITLE; + if (preg_match('/\d\.\d/', $appli)) { + if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { + $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core + } + } else { + $appli .= " ".DOL_VERSION; } } else { $appli .= " ".DOL_VERSION; } - } else { - $appli .= " ".DOL_VERSION; + + $to = $adh->makeSubstitution($conf->global->MAIN_INFO_SOCIETE_MAIL); + $from = getDolGlobalString('ADHERENT_MAIL_FROM'); + $mailfile = new CMailFile( + '['.$appli.'] '.$conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT, + $to, + $from, + $adh->makeSubstitution($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL), + array(), + array(), + array(), + "", + "", + 0, + -1 + ); + + if (!$mailfile->sendfile()) { + dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR); + } } - $to = $adh->makeSubstitution($conf->global->MAIN_INFO_SOCIETE_MAIL); - $from = $conf->global->ADHERENT_MAIL_FROM; - $mailfile = new CMailFile( - '['.$appli.'] '.$conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT, - $to, - $from, - $adh->makeSubstitution($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL), - array(), - array(), - array(), - "", - "", - 0, - -1 - ); + // Auto-create thirdparty on member creation + if (!empty($conf->global->ADHERENT_DEFAULT_CREATE_THIRDPARTY)) { + $company = new Societe($db); + $result = $company->create_from_member($adh); + if ($result < 0) { + $error++; + $errmsg .= join('
    ', $company->errors); + } + } - if (!$mailfile->sendfile()) { - dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR); + if (!empty($backtopage)) { + $urlback = $backtopage; + } elseif (!empty($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION)) { + $urlback = $conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION; + // TODO Make replacement of __AMOUNT__, etc... + } else { + $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); + } + + if (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) && $conf->global->MEMBER_NEWFORM_PAYONLINE != '-1') { + if (empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { // If edition of amount not allowed + // TODO Check amount is same than the amount required for the type of member or if not defined as the defeault amount into $conf->global->MEMBER_NEWFORM_AMOUNT + // It is not so important because a test is done on return of payment validation. + } + + $urlback = getOnlinePaymentUrl(0, 'member', $adh->ref, price2num(GETPOST('amount', 'alpha'), 'MT'), '', 0); + + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if ($conf->global->MEMBER_NEWFORM_PAYONLINE != '-1' && $conf->global->MEMBER_NEWFORM_PAYONLINE != 'all') { + $urlback .= '&paymentmethod='.urlencode($conf->global->MEMBER_NEWFORM_PAYONLINE); + } + } else { + if (!empty($entity)) { + $urlback .= '&entity='.((int) $entity); + } } } if (!empty($backtopage)) { $urlback = $backtopage; + dol_syslog("member ".$adh->ref." was created, we redirect to ".$urlback); } elseif (!empty($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION)) { $urlback = $conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION; // TODO Make replacement of __AMOUNT__, etc... + dol_syslog("member ".$adh->ref." was created, we redirect to ".$urlback); } else { - $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); + $error++; + $errmsg .= join('
    ', $adh->errors); } - - if (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) && $conf->global->MEMBER_NEWFORM_PAYONLINE != '-1') { - if (empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { // If edition of amount not allowed - // TODO Check amount is same than the amount required for the type of member or if not defined as the defeault amount into $conf->global->MEMBER_NEWFORM_AMOUNT - // It is not so important because a test is done on return of payment validation. - } - - $urlback = getOnlinePaymentUrl(0, 'member', $adh->ref, price2num(GETPOST('amount', 'alpha'), 'MT'), '', 0); - - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if ($conf->global->MEMBER_NEWFORM_PAYONLINE != '-1' && $conf->global->MEMBER_NEWFORM_PAYONLINE != 'all') { - $urlback .= '&paymentmethod='.urlencode($conf->global->MEMBER_NEWFORM_PAYONLINE); - } - } else { - if (!empty($entity)) { - $urlback .= '&entity='.((int) $entity); - } - } - - dol_syslog("member ".$adh->ref." was created, we redirect to ".$urlback); - } else { - $error++; - $errmsg .= join('
    ', $adh->errors); } } @@ -419,16 +483,18 @@ if (empty($reshook) && $action == 'add') { exit; } else { $db->rollback(); + $action = "create"; } } // Action called after a submitted was send and member created successfully // If MEMBER_URL_REDIRECT_SUBSCRIPTION is set to url we never go here because a redirect was done to this url. // backtopage parameter with an url was set on member submit page, we never go here because a redirect was done to this url. + if (empty($reshook) && $action == 'added') { llxHeaderVierge($langs->trans("NewMemberForm")); - // Si on a pas ete redirige + // If we have not been redirected print '

    '; print '
    '; print $langs->trans("NewMemberbyWeb"); @@ -463,264 +529,400 @@ print '
    '; if (!empty($conf->global->MEMBER_NEWFORM_TEXT)) { print $langs->trans($conf->global->MEMBER_NEWFORM_TEXT)."
    \n"; } else { - print $langs->trans("NewSubscriptionDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
    \n"; + print $langs->trans("NewSubscriptionDesc", getDolGlobalString("MAIN_INFO_SOCIETE_MAIL"))."
    \n"; } print '
    '; dol_htmloutput_errors($errmsg); +dol_htmloutput_events(); // Print form print '
    '."\n"; print ''; print ''; -print ''; -print ''; -print '
    '; +if (!empty($conf->global->MEMBER_SKIP_TABLE) || !empty($conf->global->MEMBER_NEWFORM_FORCETYPE) || $action == 'create') { + print ''; + print '
    '; + print '
    '.$langs->trans("FieldsWithAreMandatory", '*').'
    '; + //print $langs->trans("FieldsWithIsForPublic",'**').'
    '; -print '
    '.$langs->trans("FieldsWithAreMandatory", '*').'
    '; -//print $langs->trans("FieldsWithIsForPublic",'**').'
    '; - -print dol_get_fiche_head(''); - -print ''; - - -print '
    ' . $langs->trans("EmailAttendee") . '*'; + print '
    ' . $langs->trans("EmailAttendee") . ''; print img_picto('', 'email', 'class="pictofixedwidth"'); - print '
    ' . $langs->trans("Company"); + print '
    '; if (!empty(floatval($project->price_registration))) { - print '*'; + print ''; } - print ' '; + print $langs->trans("Company"); + if (!empty(floatval($project->price_registration))) { + print ''; + } + print ''; print img_picto('', 'company', 'class="pictofixedwidth"'); - print '
    ' . $langs->trans("EmailCompanyForInvoice") . ''; + print '
    ' . $form->textwithpicto($langs->trans("EmailCompany"), $langs->trans("EmailCompanyForInvoice")) . ''; print img_picto('', 'email', 'class="pictofixedwidth"'); print '
    ' . $langs->trans('Country') . '*'; + print '
    '.$langs->trans('Country').''; print img_picto('', 'country', 'class="pictofixedwidth"'); $country_id = GETPOST('country_id'); if (!$country_id && !empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) { @@ -769,7 +854,7 @@ if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS if ($project->price_registration) { print '
    ' . $langs->trans('Price') . ''; - print price($project->price_registration, 1, $langs, 1, -1, -1, $conf->currency); + print ''.price($project->price_registration, 1, $langs, 1, -1, -1, $conf->currency).''; print '
    '."\n"; - -// Type -if (empty($conf->global->MEMBER_NEWFORM_FORCETYPE)) { - $listoftype = $adht->liste_array(); - $tmp = array_keys($listoftype); - $defaulttype = ''; - $isempty = 1; - if (count($listoftype) == 1) { - $defaulttype = $tmp[0]; - $isempty = 0; - } - print ''."\n"; -} else { - $adht->fetch($conf->global->MEMBER_NEWFORM_FORCETYPE); - print ''; -} - -// Moral/Physic attribute -$morphys["phy"] = $langs->trans("Physical"); -$morphys["mor"] = $langs->trans("Moral"); -if (empty($conf->global->MEMBER_NEWFORM_FORCEMORPHY)) { - print ''."\n"; -} else { - print $morphys[$conf->global->MEMBER_NEWFORM_FORCEMORPHY]; - print ''; -} - -// Company -print ''."\n"; -// Title -print ''."\n"; -// Lastname -print ''."\n"; -// Firstname -print ''."\n"; -// EMail -print ''."\n"; -// Login -if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { - print ''."\n"; - print ''."\n"; - print ''."\n"; -} -// Gender -print ''; -print ''; -// Address -print ''."\n"; -// Zip / Town -print ''; -// Country -print ''; -// State -if (empty($conf->global->SOCIETE_DISABLE_STATE)) { - print ''; -} -// Birthday -print ''."\n"; -// Photo -print ''."\n"; -// Public -print ''."\n"; -// Other attributes -$tpl_context = 'public'; // define template context to public -include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; -// Comments -print ''; -print ''; -print ''; -print ''."\n"; - -// Add specific fields used by Dolibarr foundation for example -// TODO Move this into generic feature. -if (!empty($conf->global->MEMBER_NEWFORM_DOLIBARRTURNOVER)) { - $arraybudget = array('50'=>'<= 100 000', '100'=>'<= 200 000', '200'=>'<= 500 000', '300'=>'<= 1 500 000', '600'=>'<= 3 000 000', '1000'=>'<= 5 000 000', '2000'=>'5 000 000+'); - print ''."\n"; -} + jQuery(document).ready(function () { + jQuery(document).ready(function () { + function initmorphy() + { + console.log("Call initmorphy"); + if (jQuery("#morphy").val() == \'phy\') { + jQuery("#trcompany").hide(); + } + if (jQuery("#morphy").val() == \'mor\') { + jQuery("#trcompany").show(); + } + } + initmorphy(); + jQuery("#morphy").change(function() { + initmorphy(); + }); + jQuery("#selectcountry_id").change(function() { + document.newmember.action.value="create"; + document.newmember.submit(); + }); + jQuery("#typeid").change(function() { + document.newmember.action.value="create"; + document.newmember.submit(); + }); + }); + }); + '; -if (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE)) { - $amount = 0; - $typeid = $conf->global->MEMBER_NEWFORM_FORCETYPE ? $conf->global->MEMBER_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); - // Set amount for the subscription: - // - First check the amount of the member type. - $amountbytype = $adht->amountByType(1); // Load the array of amount per type - $amount = empty($amountbytype[$typeid]) ? (isset($amount) ? $amount : 0) : $amountbytype[$typeid]; - // - If not found, take the default amount - if (empty($amount) && !empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { - $amount = $conf->global->MEMBER_NEWFORM_AMOUNT; - } - // - If not set, we accept ot have amount defined as parameter (for backward compatibility). - if (empty($amount)) { - $amount = (GETPOST('amount') ? price2num(GETPOST('amount', 'alpha'), 'MT', 2) : ''); - } + print '
    '.$langs->trans("Type").' *'; - print $form->selectarray("typeid", $adht->liste_array(1), GETPOST('typeid') ? GETPOST('typeid') : $defaulttype, $isempty); - print '
    '.$langs->trans('MemberNature').' *'."\n"; - print $form->selectarray("morphy", $morphys, GETPOST('morphy'), 1); - print '
    '.$langs->trans("Company").''; -print img_picto('', 'company', 'class="pictofixedwidth"'); -print '
    '.$langs->trans('UserTitle').''; -print $formcompany->select_civility(GETPOST('civility_id'), 'civility_id').'
    '.$langs->trans("Lastname").' *
    '.$langs->trans("Firstname").' *
    '.$langs->trans("Email").($conf->global->ADHERENT_MAIL_REQUIRED ? ' *' : '').''; -//print img_picto('', 'email', 'class="pictofixedwidth"'); -print '
    '.$langs->trans("Login").' *
    '.$langs->trans("Password").' *
    '.$langs->trans("PasswordAgain").' *
    '.$langs->trans("Gender").''; -$arraygender = array('man'=>$langs->trans("Genderman"), 'woman'=>$langs->trans("Genderwoman")); -print $form->selectarray('gender', $arraygender, GETPOST('gender') ?GETPOST('gender') : $object->gender, 1); -print '
    '.$langs->trans("Address").''."\n"; -print '
    '.$langs->trans('Zip').' / '.$langs->trans('Town').''; -print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 1, '', 'width75'); -print ' / '; -print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1); -print '
    '.$langs->trans('Country').''; -print img_picto('', 'country', 'class="pictofixedwidth"'); -$country_id = GETPOST('country_id', 'int'); -if (!$country_id && !empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) { - $country_id = getCountry($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs); -} -if (!$country_id && !empty($conf->geoipmaxmind->enabled)) { - $country_code = dol_user_country(); - //print $country_code; - if ($country_code) { - $new_country_id = getCountry($country_code, 3, $db, $langs); - //print 'xxx'.$country_code.' - '.$new_country_id; - if ($new_country_id) { - $country_id = $new_country_id; - } - } -} -$country_code = getCountry($country_id, 2, $db, $langs); -print $form->select_country($country_id, 'country_id'); -print '
    '.$langs->trans('State').''; - if ($country_code) { - print $formcompany->select_state(GETPOST("state_id"), $country_code); - } - print '
    '.$langs->trans("DateOfBirth").''; -print $form->selectDate($birthday, 'birth', 0, 0, 1, "newmember", 1, 0); -print '
    '.$langs->trans("URLPhoto").'
    '.$langs->trans("Public").'
    '.$langs->trans("Comments").'
    '.$langs->trans("TurnoverOrBudget").' *'; - print $form->selectarray('budget', $arraybudget, GETPOST('budget'), 1); - print ' € or $'; + print dol_get_fiche_head(''); print ''; - print '
    '."\n"; - // Clean the amount - $amount = price2num($amount); - - // $conf->global->MEMBER_NEWFORM_PAYONLINE is 'paypal', 'paybox' or 'stripe' - print ''."\n"; } else { - print ''; - print ''; + $adht->fetch($conf->global->MEMBER_NEWFORM_FORCETYPE); + print ''; } - print ' '.$langs->trans("Currency".$conf->currency); + + // Moral/Physic attribute + $morphys["phy"] = $langs->trans("Physical"); + $morphys["mor"] = $langs->trans("Moral"); + if (empty($conf->global->MEMBER_NEWFORM_FORCEMORPHY)) { + print ''."\n"; + } else { + print $morphys[$conf->global->MEMBER_NEWFORM_FORCEMORPHY]; + print ''; + } + + // Company // TODO : optional hide + print ''."\n"; + + // Title + print ''."\n"; + + // Lastname + print ''."\n"; + + // Firstname + print ''."\n"; + + // EMail + print ''."\n"; + + // Login + if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { + print ''."\n"; + print ''."\n"; + print ''."\n"; + } + + // Gender + print ''; + print ''; + + // Address + print ''."\n"; + + // Zip / Town + print ''; + + // Country + print ''; + // State + if (empty($conf->global->SOCIETE_DISABLE_STATE)) { + print ''; + } + + // Birthday + print ''."\n"; + + // Photo + print ''."\n"; + + // Public + print ''."\n"; + + // Other attributes + $tpl_context = 'public'; // define template context to public + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; + + // Comments + print ''; + print ''; + print ''; + print ''."\n"; + + // Add specific fields used by Dolibarr foundation for example + // TODO Move this into generic feature. + if (!empty($conf->global->MEMBER_NEWFORM_DOLIBARRTURNOVER)) { + $arraybudget = array('50'=>'<= 100 000', '100'=>'<= 200 000', '200'=>'<= 500 000', '300'=>'<= 1 500 000', '600'=>'<= 3 000 000', '1000'=>'<= 5 000 000', '2000'=>'5 000 000+'); + print ''."\n"; + } + + if (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE)) { + $typeid = $conf->global->MEMBER_NEWFORM_FORCETYPE ? $conf->global->MEMBER_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); + $adht = new AdherentType($db); + $adht->fetch($typeid); + $caneditamount = $adht->caneditamount; + + // Set amount for the subscription: + // - First check the amount of the member type. + $amountbytype = $adht->amountByType(1); // Load the array of amount per type + $amount = empty($amountbytype[$typeid]) ? (isset($amount) ? $amount : 0) : $amountbytype[$typeid]; + // - If not found, take the default amount only of the user is authorized to edit it + if ($caneditamount && empty($amount) && !empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { + $amount = $conf->global->MEMBER_NEWFORM_AMOUNT; + } + // - If not set, we accept ot have amount defined as parameter (for backward compatibility). + if (empty($amount)) { + $amount = (GETPOST('amount') ? price2num(GETPOST('amount', 'alpha'), 'MT', 2) : ''); + } + + // Clean the amount + $amount = price2num($amount); + $showedamount = $amount>0? $amount: 0; + // $conf->global->MEMBER_NEWFORM_PAYONLINE is 'paypal', 'paybox' or 'stripe' + print ''; + } + + // Display Captcha code if is enabled + if (!empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA)) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; + print ''; + } + + print "
    '.$langs->trans("Subscription").''; - if (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { - print ''; + // Type + if (empty($conf->global->MEMBER_NEWFORM_FORCETYPE)) { + $listoftype = $adht->liste_array(); + $tmp = array_keys($listoftype); + $defaulttype = ''; + $isempty = 1; + if (count($listoftype) == 1) { + $defaulttype = $tmp[0]; + $isempty = 0; + } + print '
    '.$langs->trans("Type").' *'; + print $form->selectarray("typeid", $adht->liste_array(1), GETPOST('typeid') ? GETPOST('typeid') : $defaulttype, $isempty); + print '
    '.$langs->trans('MemberNature').' *'."\n"; + print $form->selectarray("morphy", $morphys, GETPOST('morphy'), 1); + print '
    '.$langs->trans("Company").''; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print '
    '.$langs->trans('UserTitle').''; + print $formcompany->select_civility(GETPOST('civility_id'), 'civility_id').'
    '.$langs->trans("Lastname").' *
    '.$langs->trans("Firstname").' *
    '.$langs->trans("Email").(getDolGlobalString("ADHERENT_MAIL_REQUIRED") ? ' *' : '').''; + //print img_picto('', 'email', 'class="pictofixedwidth"'); + print '
    '.$langs->trans("Login").' *
    '.$langs->trans("Password").' *
    '.$langs->trans("PasswordRetype").' *
    '.$langs->trans("Gender").''; + $arraygender = array('man'=>$langs->trans("Genderman"), 'woman'=>$langs->trans("Genderwoman"), 'other'=>$langs->trans("Genderother")); + print $form->selectarray('gender', $arraygender, GETPOST('gender', 'alphanohtml'), 1, 0, 0, '', 0, 0, 0, '', '', 1); print '
    '.$langs->trans("Address").''."\n"; + print '
    '.$langs->trans('Zip').' / '.$langs->trans('Town').''; + print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 1, '', 'width75'); + print ' / '; + print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1); + print '
    '.$langs->trans('Country').''; + print img_picto('', 'country', 'class="pictofixedwidth"'); + $country_id = GETPOST('country_id', 'int'); + if (!$country_id && !empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) { + $country_id = getCountry($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs); + } + if (!$country_id && !empty($conf->geoipmaxmind->enabled)) { + $country_code = dol_user_country(); + //print $country_code; + if ($country_code) { + $new_country_id = getCountry($country_code, 3, $db, $langs); + //print 'xxx'.$country_code.' - '.$new_country_id; + if ($new_country_id) { + $country_id = $new_country_id; + } + } + } + $country_code = getCountry($country_id, 2, $db, $langs); + print $form->select_country($country_id, 'country_id'); + print '
    '.$langs->trans('State').''; + if ($country_code) { + print $formcompany->select_state(GETPOST("state_id"), $country_code); + } + print '
    '.$langs->trans("DateOfBirth").''; + print $form->selectDate(!empty($birthday) ? $birthday : "", 'birth', 0, 0, 1, "newmember", 1, 0); + print '
    '.$langs->trans("URLPhoto").'
    '.$langs->trans("Public").'
    '.$langs->trans("Comments").'
    '.$langs->trans("TurnoverOrBudget").' *'; + print $form->selectarray('budget', $arraybudget, GETPOST('budget'), 1); + print ' € or $'; + + print ''; + print '
    '.$langs->trans("Subscription"); + if (!empty($conf->global->MEMBER_EXT_URL_SUBSCRIPTION_INFO)) { + print ' - '.$langs->trans("SeeHere").''; + } + print ''; + + if (empty($amount) && !empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { + $amount = $conf->global->MEMBER_NEWFORM_AMOUNT; + } + + if (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) || $caneditamount) { + print ''; + print ' '.$langs->trans("Currency".$conf->currency).' – '; + print $amount > 0 ? $langs->trans("AnyAmountWithAdvisedAmount", price($amount, 0, $langs, 1, -1, -1, $conf->currency)): $langs->trans("AnyAmountWithoutAdvisedAmount"); + print ''; + } else { + print ''; + print ''; + print ' '.$langs->trans("Currency".$conf->currency); + } + print '
    '; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''.img_picto($langs->trans("Refresh"), 'refresh', 'id="captcha_refresh_img"').''; + print ''; + print '
    \n"; + + print dol_get_fiche_end(); + + // Save / Submit + print '
    '; + print ''; + if (!empty($backtopage)) { + print '     '; + } + print '
    '; + + + print "\n"; + print "
    "; + print '
    '; +} else { // Show the table of membership types + // Get units + $measuringUnits = new CUnits($db); + $result = $measuringUnits->fetchAll('', '', 0, 0, array('t.active' => 1)); + $units = array(); + foreach ($measuringUnits->records as $lines) + $units[$lines->short_label] = $langs->trans(ucfirst($lines->label)); + + $publiccounters = getDolGlobalString("MEMBER_COUNTERS_ARE_PUBLIC"); + + $sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.amount, d.caneditamount, d.vote, d.note, d.duration, d.statut as status, d.morphy,"; + $sql .= " COUNT(a.rowid) AS membercount"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as a"; + $sql .= " ON d.rowid = a.fk_adherent_type AND a.statut > 0"; + $sql .= " WHERE d.entity IN (".getEntity('member_type').")"; + $sql .= " AND d.statut=1"; + $sql .= " GROUP BY d.rowid, d.libelle, d.subscription, d.amount, d.caneditamount, d.vote, d.note, d.duration, d.statut, d.morphy"; + + $result = $db->query($sql); + if ($result) { + $num = $db->num_rows($result); + + print '
    '; + print ''."\n"; + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + if ($publiccounters) print ''; + print ''; + print "\n"; + + $i = 0; + while ($i < $num) { + $objp = $db->fetch_object($result); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + $membercount = $objp->membercount>0? $objp->membercount: "–"; + if ($publiccounters) print ''; + print ''; + print ""; + $i++; + } + + // If no record found + if ($num == 0) { + $colspan = 8; + print ''; + } + + print "
    '.$langs->trans("Label").''.$langs->trans("MembershipDuration").''.$langs->trans("Amount").''.$langs->trans("MembersNature").''.$langs->trans("VoteAllowed").''.$langs->trans("Members").''.$langs->trans("NewSubscription").'
    '.dol_escape_htmltag($objp->label).''; + $unit = preg_replace("/[^a-zA-Z]+/", "", $objp->duration); + print max(1, intval($objp->duration)).' '.$units[$unit]; + print ''; + $displayedamount = max(intval($objp->amount), intval(getDolGlobalInt("MEMBER_MIN_AMOUNT"))); + $caneditamount = !empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) || $objp->caneditamount; + if ($objp->subscription) { + if ($displayedamount > 0 || !$caneditamount) { + print $displayedamount.' '.strtoupper($conf->currency); + } + if ($caneditamount && $displayedamount>0) { + print $form->textwithpicto('', $langs->transnoentities("CanEditAmountShortForValues"), 1, 'help', '', 0, 3); + } elseif ($caneditamount) { + print $langs->transnoentities("CanEditAmountShort"); + } + } else { + print "–"; // No subscription required + } + print ''; + if ($objp->morphy == 'phy') { + print $langs->trans("Physical"); + } elseif ($objp->morphy == 'mor') { + print $langs->trans("Moral"); + } else { + print $langs->trans("MorAndPhy"); + } + print ''.yn($objp->vote).''.$membercount.'
    '.$langs->trans("NoRecordFound").'
    "; + print '
    '; + + print ''; + } else { + dol_print_error($db); + } } -print "
    \n"; - -print dol_get_fiche_end(); - -// Save -print '
    '; -print ''; -if (!empty($backtopage)) { - print '     '; -} -print '
    '; - - -print "\n"; -print "
    "; -print '
    '; - llxFooterVierge(); diff --git a/htdocs/public/members/public_card.php b/htdocs/public/members/public_card.php index a6512b83a60..ffce8730d8f 100644 --- a/htdocs/public/members/public_card.php +++ b/htdocs/public/members/public_card.php @@ -46,6 +46,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; @@ -53,7 +54,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Security check if (empty($conf->adherent->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Memebership no enabled'); } @@ -147,16 +148,8 @@ $db->close(); */ function llxHeaderVierge($title, $head = "") { - global $user, $conf, $langs; + top_htmlhead($head, $title); - header("Content-type: text/html; charset=".$conf->file->character_set_client); - print "\n"; - print "\n"; - print "".$title."\n"; - if ($head) { - print $head."\n"; - } - print "\n"; print ''."\n"; } diff --git a/htdocs/public/members/public_list.php b/htdocs/public/members/public_list.php index 4bf2a6b94bf..700c0383516 100644 --- a/htdocs/public/members/public_list.php +++ b/htdocs/public/members/public_list.php @@ -45,11 +45,12 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; // Security check if (empty($conf->adherent->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Membership not enabled'); } @@ -65,16 +66,8 @@ $langs->loadLangs(array("main", "members", "companies", "other")); */ function llxHeaderVierge($title, $head = "") { - global $user, $conf, $langs; + top_htmlhead($head, $title); - header("Content-type: text/html; charset=".$conf->file->character_set_client); - print "\n"; - print "\n"; - print "".$title."\n"; - if ($head) { - print $head."\n"; - } - print "\n"; print ''."\n"; } @@ -151,13 +144,13 @@ if ($result) { print ''; print ''; - print ''; - print ''."\n"; + print ''; + print ''."\n"; //print_liste_field_titre("DateOfBirth", $_SERVER["PHP_SELF"],"birth",'',$param,$sortfield,$sortorder); // est-ce nécessaire ?? - print_liste_field_titre("EMail", $_SERVER["PHP_SELF"], "email", '', $param, '', $sortfield, $sortorder, 'public_'); - print_liste_field_titre("Zip", $_SERVER["PHP_SELF"], "zip", "", $param, '', $sortfield, $sortorder, 'public_'); - print_liste_field_titre("Town", $_SERVER["PHP_SELF"], "town", "", $param, '', $sortfield, $sortorder, 'public_'); - print_liste_field_titre("Photo", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'public_'); + print_liste_field_titre("EMail", $_SERVER["PHP_SELF"], "email", '', $param, '', $sortfield, $sortorder, 'left public_'); + print_liste_field_titre("Zip", $_SERVER["PHP_SELF"], "zip", "", $param, '', $sortfield, $sortorder, 'left public_'); + print_liste_field_titre("Town", $_SERVER["PHP_SELF"], "town", "", $param, '', $sortfield, $sortorder, 'left public_'); + print_liste_field_titre("Photo", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'center public_'); print "\n"; while ($i < $num && $i < $conf->liste_limit) { @@ -170,7 +163,7 @@ if ($result) { print ''."\n"; print ''."\n"; if (isset($objp->photo) && $objp->photo != '') { - print ''."\n"; } else { diff --git a/htdocs/public/notice.php b/htdocs/public/notice.php index d5ac4070ff0..a682abd78c8 100644 --- a/htdocs/public/notice.php +++ b/htdocs/public/notice.php @@ -40,6 +40,7 @@ if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } +// Load Dolibarr environment require '../main.inc.php'; diff --git a/htdocs/public/onlinesign/newonlinesign.php b/htdocs/public/onlinesign/newonlinesign.php index d1020dc2c1d..de6b27cba90 100644 --- a/htdocs/public/onlinesign/newonlinesign.php +++ b/htdocs/public/onlinesign/newonlinesign.php @@ -39,22 +39,22 @@ if (!defined('NOBROWSERNOTIF')) { // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php -// TODO This should be useless. Because entity must be retrieve from object ref and not from url. +// Because 2 entities can have the same ref. $entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; // Load translation files -$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "errors", "members", "paybox", "propal")); +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "errors", "members", "paybox", "propal", "commercial")); // Security check // No check on module enabled. Done later according to $validpaymentmethod @@ -78,17 +78,13 @@ $message = GETPOST('message', 'aZ09'); $suffix = GETPOST("suffix", 'aZ09'); $source = GETPOST("source", 'alpha'); $ref = $REF = GETPOST("ref", 'alpha'); +$urlok = ''; +$urlko = ''; + if (empty($source)) { $source = 'proposal'; } - -if (!$action) { - if ($source && !$ref) { - print $langs->trans('ErrorBadParameters')." - ref missing"; - exit; - } -} if (!empty($refusepropal)) { $action = "refusepropal"; } @@ -124,25 +120,40 @@ $urlko = preg_replace('/&$/', '', $urlko); // Remove last & $creditor = $mysoc->name; $type = $source; -if ($source == 'proposal') { - $object = new Propal($db); - $object->fetch(0, $ref); -} else { - accessforbidden('Bad value for source'); - exit; -} +if (!$action) { + if ($source && !$ref) { + httponly_accessforbidden($langs->trans('ErrorBadParameters')." - ref missing", 400, 1); + } +} // Check securitykey $securekeyseed = ''; if ($source == 'proposal') { - $securekeyseed = $conf->global->PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN; + $securekeyseed = getDolGlobalString('PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN'); +} elseif ($source == 'contract') { + $securekeyseed = getDolGlobalString('CONTRACT_ONLINE_SIGNATURE_SECURITY_TOKEN'); +} elseif ($source == 'fichinter') { + $securekeyseed = getDolGlobalString('FICHINTER_ONLINE_SIGNATURE_SECURITY_TOKEN'); +} +if (!dol_verifyHash($securekeyseed.$type.$ref.(isModEnabled('multicompany') ? $entity : ''), $SECUREKEY, '0')) { + httponly_accessforbidden('Bad value for securitykey. Value provided '.dol_escape_htmltag($SECUREKEY).' does not match expected value for ref='.dol_escape_htmltag($ref), 403, 1); } -if (!dol_verifyHash($securekeyseed.$type.$ref, $SECUREKEY, '0')) { - http_response_code(403); - print 'Bad value for securitykey. Value provided '.dol_escape_htmltag($SECUREKEY).' does not match expected value for ref='.dol_escape_htmltag($ref); - exit(-1); +if ($source == 'proposal') { + require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; + $object = new Propal($db); + $result= $object->fetch(0, $ref, '', $entity); +} elseif ($source == 'contract') { + require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; + $object = new Contrat($db); + $result= $object->fetch(0, $ref); +} elseif ($source == 'fichinter') { + require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; + $object = new Fichinter($db); + $result= $object->fetch(0, $ref); +} else { + httponly_accessforbidden($langs->trans('ErrorBadParameters')." - Bad value for source", 400, 1); } @@ -168,6 +179,20 @@ if ($action == 'confirm_refusepropal' && $confirm == 'yes') { $message = 'refused'; setEventMessages("PropalRefused", null, 'warnings'); + if (method_exists($object, 'call_trigger')) { + // Online customer is not a user, so we use the use that validates the documents + $user = new User($db); + $user->fetch($object->user_valid_id); + $object->context = array('closedfromonlinesignature' => 'closedfromonlinesignature'); + $result = $object->call_trigger('PROPAL_CLOSE_REFUSED', $user); + if ($result < 0) { + $error++; + } + $result = $object->call_trigger('PROPAL_CLOSE_REFUSED_WEB', $user); + if ($result < 0) { + $error++; + } + } } else { $db->rollback(); } @@ -193,7 +218,7 @@ $replacemainarea = (empty($conf->dol_hide_leftmenu) ? '
    ' : '').'
    '; llxHeader($head, $langs->trans("OnlineSignature"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1); if ($action == 'refusepropal') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?ref='.urlencode($ref).'&securekey='.urlencode($SECUREKEY).($conf->multicompany->enabled?'&entity='.$entity:''), $langs->trans('RefusePropal'), $langs->trans('ConfirmRefusePropal', $object->ref), 'confirm_refusepropal', '', '', 1); + print $form->formconfirm($_SERVER["PHP_SELF"].'?ref='.urlencode($ref).'&securekey='.urlencode($SECUREKEY).(isModEnabled('multicompany')?'&entity='.$entity:''), $langs->trans('RefusePropal'), $langs->trans('ConfirmRefusePropal', $object->ref), 'confirm_refusepropal', '', '', 1); } // Check link validity for param 'source' to avoid use of the examples as value @@ -272,16 +297,29 @@ if (!empty($conf->global->ONLINE_SIGN_NEWFORM_TEXT)) { $text = '
    '."\n"; } if (empty($text)) { - $text .= ''."\n"; - $text .= ''."\n"; + if ($source == 'proposal') { + $text .= ''."\n"; + $text .= ''."\n"; + } elseif ($source == 'contract') { + $text .= ''."\n"; + $text .= ''."\n"; + } elseif ($source == 'fichinter') { + $text .= ''."\n"; + $text .= ''."\n"; + } } print $text; // Output payment summary form print ''; @@ -795,7 +797,7 @@ if ($action == 'create') { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $projectid = GETPOST('projectid', 'int') ?GETPOST('projectid', 'int') : 0; if (empty($projectid) && !empty($objectsrc->fk_project)) { $projectid = $objectsrc->fk_project; @@ -890,7 +892,7 @@ if ($action == 'create') { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; print ''; print ''; - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { print ''; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { print ''; @@ -1099,14 +1101,14 @@ if ($action == 'create') { $text = $product_static->getNomUrl(1); $text .= ' - '.(!empty($line->label) ? $line->label : $line->product_label); - $description = ($conf->global->PRODUIT_DESC_IN_FORM ? '' : dol_htmlentitiesbr($line->desc)); + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($line->desc)); print $form->textwithtooltip($text, $description, 3, '', '', $i); // Show range print_date_range($db->jdate($line->date_start), $db->jdate($line->date_end)); // Add description in form - if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { print ($line->desc && $line->desc != $line->product_label) ? '
    '.dol_htmlentitiesbr($line->desc) : ''; } } @@ -1170,7 +1172,7 @@ if ($action == 'create') { $warehouseObject = null; - if (!empty($conf->stock->enabled)) { // If warehouse was already selected or if product is not a predefined, we go into this part with no multiwarehouse selection + if (isModEnabled('stock')) { // If warehouse was already selected or if product is not a predefined, we go into this part with no multiwarehouse selection print ''; $stock = + $product->stock_warehouse[$dispatchLines[$indiceAsked]['ent']]->real; // Convert to number @@ -1197,7 +1199,7 @@ if ($action == 'create') { } // Stock - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { print ''; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if (!empty($product->status_batch)) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { @@ -1237,30 +1239,31 @@ if ($action == 'create') { print "\n"; - $extralabelslines = $extrafields->attributes[$line->table_element]; - //Display lines extrafields - if (is_array($extralabelslines) && count($extralabelslines) > 0) { + // Display lines for extrafields of the Reception line + // $line is a 'CommandeFournisseurLigne', $dispatchLines contains values of Reception lines so properties of CommandeFournisseurDispatch + if (!empty($extrafields)) { $colspan = 5; - if ($conf->productbatch->enabled) { - $colspan += 3; + if (isModEnabled('productbatch')) { + $colspan += 2; + if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { + $colspan += 1; + } + if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { + $colspan += 1; + } } + $recLine = new CommandeFournisseurDispatch($db); $srcLine = new CommandeFournisseurLigne($db); - $line = new CommandeFournisseurDispatch($db); - - $extrafields->fetch_name_optionals_label($srcLine->table_element); - $extrafields->fetch_name_optionals_label($line->table_element); - $srcLine->id = $line->id; $srcLine->fetch_optionals(); // fetch extrafields also available in orderline - $line->fetch_optionals(); - if (empty($line->array_options) && !empty($dispatchLines[$indiceAsked]['array_options'])) { - $line->array_options = $dispatchLines[$indiceAsked]['array_options']; + if (empty($recLine->array_options) && !empty($dispatchLines[$indiceAsked]['array_options'])) { + $recLine->array_options = $dispatchLines[$indiceAsked]['array_options']; } - $line->array_options = array_merge($line->array_options, $srcLine->array_options); + $recLine->array_options = array_merge($recLine->array_options, $srcLine->array_options); - print $line->showOptionals($extrafields, 'edit', array('style'=>'class="oddeven"', 'colspan'=>$colspan), $indiceAsked); + print $recLine->showOptionals($extrafields, 'edit', array('style'=>'class="oddeven"', 'colspan'=>$colspan), $indiceAsked, '', 1); } $indiceAsked++; @@ -1288,7 +1291,7 @@ if ($action == 'create') { $lines = $object->lines; $num_prod = count($lines); - + $indiceAsked = 0; if ($object->id > 0) { if (!empty($object->origin) && $object->origin_id > 0) { $object->origin = 'CommandeFournisseur'; @@ -1324,7 +1327,7 @@ if ($action == 'create') { $text = $langs->trans("ConfirmValidateReception", $numref); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
    '; @@ -1360,15 +1363,15 @@ if ($action == 'create') { $totalVolume = $tmparray['volume']; - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { $objectsrc = new Commande($db); $objectsrc->fetch($object->$typeobject->id); } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { $objectsrc = new Propal($db); $objectsrc->fetch($object->$typeobject->id); } - if ($typeobject == 'CommandeFournisseur' && $object->$typeobject->id && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled))) { + if ($typeobject == 'CommandeFournisseur' && $object->$typeobject->id && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order"))) { $objectsrc = new CommandeFournisseur($db); $objectsrc->fetch($object->$typeobject->id); } @@ -1381,39 +1384,25 @@ if ($action == 'create') { $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; + $morehtmlref .= '
    '; if (0) { // Do not change on reception - if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $permissiontoadd) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on reception, so we will use the project or source object instead - // TODO Add project on reception - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -1429,7 +1418,7 @@ if ($action == 'create') { print '
    '.dolGetFirstLastname($langs->trans("Firstname"), $langs->trans("Lastname")).''.$langs->trans("Company").''.dolGetFirstLastname($langs->trans("Firstname"), $langs->trans("Lastname")).''.$langs->trans("Company").'
    '.$objp->zip.''.$objp->town.''; + print ''; print $form->showphoto('memberphoto', $objp, 64); print '

    '.$text.'

    '.$langs->trans("WelcomeOnOnlineSignaturePage", $mysoc->name).'
    '.$langs->trans("ThisScreenAllowsYouToSignDocFrom", $creditor).'


    '.$langs->trans("WelcomeOnOnlineSignaturePageProposal", $mysoc->name).'
    '.$langs->trans("ThisScreenAllowsYouToSignDocFromProposal", $creditor).'


    '.$langs->trans("WelcomeOnOnlineSignaturePageContract", $mysoc->name).'
    '.$langs->trans("ThisScreenAllowsYouToSignDocFromContract", $creditor).'


    '.$langs->trans("WelcomeOnOnlineSignaturePageFichinter", $mysoc->name).'
    '.$langs->trans("ThisScreenAllowsYouToSignDocFromFichinter", $creditor).'

    '; print ''; -print ''."\n"; - +if ($source == 'proposal') { + print ''."\n"; +} elseif ($source == 'contract') { + print ''."\n"; +} elseif ($source == 'fichinter') { + print ''."\n"; +} $found = false; $error = 0; @@ -290,19 +328,9 @@ if ($source == 'proposal') { $found = true; $langs->load("proposal"); - require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; - - $proposal = new Propal($db); - $result = $proposal->fetch('', $ref); - if ($result <= 0) { - $mesg = $proposal->error; - $error++; - } else { - $result = $proposal->fetch_thirdparty($proposal->socid); - } + $result = $object->fetch_thirdparty($object->socid); // Creditor - print ''."\n"; // Debitor - print ''."\n"; // Amount - print ''."\n"; // Object - - $text = ''.$langs->trans("SignatureProposalRef", $proposal->ref).''; - print ''."\n"; +} elseif ($source == 'contract') { // Signature on contract + $found = true; + $langs->load("contract"); + + $result = $object->fetch_thirdparty($object->socid); + + // Proposer + print ''."\n"; - // TODO Add link to download PDF (similar code than for invoice) -} + // Target + print ''."\n"; + // Object + $text = ''.$langs->trans("SignatureContractRef", $object->ref).''; + print ''."\n"; +} elseif ($source == 'fichinter') { // Signature on fichinter + $found = true; + $langs->load("fichinter"); + + $result = $object->fetch_thirdparty($object->socid); + // Proposer + print ''."\n"; + + // Target + print ''."\n"; + + // Object + $text = ''.$langs->trans("SignatureFichinterRef", $object->ref).''; + print ''."\n"; +} if (!$found && !$mesg) { @@ -427,6 +556,7 @@ if ($action == "dosign" && empty($cancel)) { dataType: "text", data: { "action" : "importSignature", + "token" : \''.newToken().'\', "signaturebase64" : signature, "ref" : \''.dol_escape_js($REF).'\', "securekey" : \''.dol_escape_js($SECUREKEY).'\', @@ -436,7 +566,7 @@ if ($action == "dosign" && empty($cancel)) { success: function(response) { if(response == "success"){ console.log("Success on saving signature"); - window.location.replace("'.$_SERVER["PHP_SELF"].'?ref='.urlencode($ref).'&message=signed&securekey='.urlencode($SECUREKEY).($conf->multicompany->enabled?'&entity='.$entity:'').'"); + window.location.replace("'.$_SERVER["PHP_SELF"].'?ref='.urlencode($ref).'&source='.urlencode($source).'&message=signed&securekey='.urlencode($SECUREKEY).(isModEnabled('multicompany')?'&entity='.$entity:'').'"); }else{ console.error(response); } @@ -474,6 +604,18 @@ if ($action == "dosign" && empty($cancel)) { print ''; print ''; } + } elseif ($source == 'contract') { + if ($message == 'signed') { + print ''.$langs->trans("ContractSigned").''; + } else { + print ''; + } + } elseif ($source == 'fichinter') { + if ($message == 'signed') { + print ''.$langs->trans("FichinterSigned").''; + } else { + print ''; + } } } print ''."\n"; diff --git a/htdocs/public/opensurvey/studs.php b/htdocs/public/opensurvey/studs.php index acf1fb01b56..34f8ecd9400 100644 --- a/htdocs/public/opensurvey/studs.php +++ b/htdocs/public/opensurvey/studs.php @@ -35,11 +35,13 @@ if (!defined('NOIPCHECK')) { define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php"; require_once DOL_DOCUMENT_ROOT."/opensurvey/lib/opensurvey.lib.php"; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Init vars @@ -59,7 +61,7 @@ $canbemodified = ((empty($object->date_fin) || $object->date_fin > dol_now()) && // Security check if (empty($conf->opensurvey->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Survey not enabled'); } @@ -74,7 +76,7 @@ $listofvoters = explode(',', $_SESSION["savevoter"]); // Add comment if (GETPOST('ajoutcomment', 'alpha')) { if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } $error = 0; @@ -96,8 +98,36 @@ if (GETPOST('ajoutcomment', 'alpha')) { $error++; } + $user_ip = getUserRemoteIP(); + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(id_comment) as nb_comments"; + $sql .= " FROM ".MAIN_DB_PREFIX."opensurvey_comments"; + $sql .= " WHERE ip = '".$db->escape($user_ip)."'"; + $sql .= " AND date_creation > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_comments; + } + } + } + + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + setEventMessages($langs->trans("AlreadyTooMuchPostOnThisIPAdress"), null, 'errors'); + $error++; + } + if (!$error) { - $resql = $object->addComment($comment, $comment_user); + $resql = $object->addComment($comment, $comment_user, $user_ip); if (!$resql) { dol_print_error($db); @@ -108,22 +138,46 @@ if (GETPOST('ajoutcomment', 'alpha')) { // Add vote if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x")) { // boutonp for chrome, boutonp_x for firefox if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } //Si le nom est bien entré if (GETPOST('nom', 'alphanohtml')) { $nouveauchoix = ''; for ($i = 0; $i < $nbcolonnes; $i++) { - if (GETPOSTISSET("choix$i") && GETPOST("choix$i") == '1') { + if (GETPOSTISSET("choix".$i) && GETPOST("choix".$i) == '1') { $nouveauchoix .= "1"; - } elseif (GETPOSTISSET("choix$i") && GETPOST("choix$i") == '2') { + } elseif (GETPOSTISSET("choix".$i) && GETPOST("choix".$i) == '2') { $nouveauchoix .= "2"; } else { $nouveauchoix .= "0"; } } + $user_ip = getUserRemoteIP(); + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(id_users) as nb_records"; + $sql .= " FROM ".MAIN_DB_PREFIX."opensurvey_user_studs"; + $sql .= " WHERE ip = '".$db->escape($user_ip)."'"; + $sql .= " AND date_creation > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_records; + } + } + } + + $nom = substr(GETPOST("nom", 'alphanohtml'), 0, 64); // Check if vote already exists @@ -136,12 +190,17 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x")) { // bo } $num_rows = $db->num_rows($resql); + if ($num_rows > 0) { setEventMessages($langs->trans("VoteNameAlreadyExists"), null, 'errors'); $error++; + } elseif ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + setEventMessages($langs->trans("AlreadyTooMuchPostOnThisIPAdress"), null, 'errors'); + $error++; } else { - $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_user_studs (nom, id_sondage, reponses)'; - $sql .= " VALUES ('".$db->escape($nom)."', '".$db->escape($numsondage)."','".$db->escape($nouveauchoix)."')"; + $now = dol_now(); + $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_user_studs (nom, id_sondage, reponses, ip, date_creation)'; + $sql .= " VALUES ('".$db->escape($nom)."', '".$db->escape($numsondage)."','".$db->escape($nouveauchoix)."', '".$db->escape($user_ip)."', '".$db->idate($now)."')"; $resql = $db->query($sql); if ($resql) { @@ -214,7 +273,7 @@ if ($testmodifier) { } if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } $idtomodify = GETPOST("idtomodify".$modifier); @@ -232,7 +291,7 @@ if ($testmodifier) { $idcomment = GETPOST('deletecomment', 'int'); if ($idcomment) { if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } $resql = $object->deleteComment($idcomment); @@ -266,7 +325,7 @@ $toutsujet = explode(",", $object->sujet); $listofanswers = array(); foreach ($toutsujet as $value) { $tmp = explode('@', $value); - $listofanswers[] = array('label'=>$tmp[0], 'format'=>($tmp[1] ? $tmp[1] : 'checkbox')); + $listofanswers[] = array('label'=>$tmp[0], 'format'=>(!empty($tmp[1]) ? $tmp[1] : 'checkbox')); } $toutsujet = str_replace("°", "'", $toutsujet); @@ -695,7 +754,7 @@ if ($object->allow_spy) { print ''."\n"; print ''."\n"; for ($i = 0; $i < $nbcolonnes; $i++) { - //print 'xx'.(! empty($listofanswers[$i]['format'])).'-'.$sumfor[$i].'-'.$meilleurecolonne; + //print 'xx'.(!empty($listofanswers[$i]['format'])).'-'.$sumfor[$i].'-'.$meilleurecolonne; if (empty($listofanswers[$i]['format']) || !in_array($listofanswers[$i]['format'], array('yesno', 'foragainst')) && isset($sumfor[$i]) && isset($meilleurecolonne) && $sumfor[$i] == $meilleurecolonne) { print ''."\n"; } else { diff --git a/htdocs/public/partnership/new.php b/htdocs/public/partnership/new.php index f6f0efc4fb2..af2583abece 100644 --- a/htdocs/public/partnership/new.php +++ b/htdocs/public/partnership/new.php @@ -40,9 +40,7 @@ if (!defined('NOIPCHECK')) { if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php @@ -52,12 +50,14 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership.class.php'; require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership_type.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Init vars $errmsg = ''; @@ -67,16 +67,15 @@ $backtopage = GETPOST('backtopage', 'alpha'); $action = GETPOST('action', 'aZ09'); // Load translation files -$langs->loadLangs(array("main", "members", "companies", "install", "other")); +$langs->loadLangs(array("main", "members", "partnership", "companies", "install", "other")); // Security check if (empty($conf->partnership->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Partnership not enabled'); } if (empty($conf->global->PARTNERSHIP_ENABLE_PUBLIC)) { - print $langs->trans("Auto subscription form for public visitors has not been enabled"); - exit; + httponly_accessforbidden("Auto subscription form for public visitors has not been enabled"); } // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -178,10 +177,14 @@ if (empty($reshook) && $action == 'add') { $db->begin(); - /*if (GETPOST('typeid') <= 0) { + if (GETPOST('partnershiptype', 'int') <= 0) { $error++; $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type"))."
    \n"; - }*/ + } + if (!GETPOST('societe')) { + $error++; + $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("societe"))."
    \n"; + } if (!GETPOST('lastname')) { $error++; $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Lastname"))."
    \n"; @@ -190,6 +193,7 @@ if (empty($reshook) && $action == 'add') { $error++; $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Firstname"))."
    \n"; } + if (empty(GETPOST('email'))) { $error++; $errmsg .= $langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Email'))."
    \n"; @@ -211,17 +215,94 @@ if (empty($reshook) && $action == 'add') { $partnership->fk_soc = 0; } - $partnership->statut = -1; - $partnership->firstname = GETPOST('firstname'); - $partnership->lastname = GETPOST('lastname'); - $partnership->address = GETPOST('address'); - $partnership->zip = GETPOST('zipcode'); - $partnership->town = GETPOST('town'); - $partnership->email = GETPOST('email'); - $partnership->country_id = GETPOST('country_id', 'int'); - $partnership->state_id = GETPOST('state_id', 'int'); - //$partnership->typeid = $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE ? $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); - $partnership->note_private = GETPOST('note_private'); + $partnership->status = 0; + $partnership->note_private = GETPOST('note_private'); + $partnership->date_creation = dol_now(); + $partnership->date_partnership_start = dol_now(); + $partnership->fk_user_creat = 0; + $partnership->fk_type = GETPOST('partnershiptype', 'int'); + //$partnership->typeid = $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE ? $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); + $partnership->ip = getUserRemoteIP(); + + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(ref) as nb_partnerships"; + $sql .= " FROM ".MAIN_DB_PREFIX."partnership"; + $sql .= " WHERE ip = '".$db->escape($partnership->ip)."'"; + $sql .= " AND date_creation > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_partnerships; + } + } + } + // test if societe already exist + $company = new Societe($db); + $result = $company->fetch(0, GETPOST('societe')); + if ($result == 0) { // si il ya pas d'entree sur le nom on teste l'email + $result1 = $company->fetch(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GETPOST('email')); + if ($result1 > 0) { + $error++; + $errmsg = $langs->trans("EmailAlreadyExistsPleaseRewriteYourCompanyName"); + } else { + //create thirdparty + $company = new Societe($db); + + $company->name = GETPOST('societe'); + $company->address = GETPOST('address'); + $company->zip = GETPOST('zipcode'); + $company->town = GETPOST('town'); + $company->email = GETPOST('email'); + $company->country_id = GETPOST('country_id', 'int'); + $company->state_id = GETPOST('state_id', 'int'); + $company->name_alias = dolGetFirstLastname(GETPOST('firstname'), GETPOST('lastname')); + + $resultat=$company->create($user); + if ($resultat < 0) { + $error++; + $errmsg .= join('
    ', $company->errors); + } + + $partnership->fk_soc = $company->id; + } + } elseif ($result == -2) { + $error++; + $errmsg = $langs->trans("TwoRecordsOfCompanyName"); + } else { + $partnership->fk_soc = $company->id; + // update thirdparty fields + if (empty($company->address)) { + $company->address = GETPOST('address'); + } + if (empty($company->zip)) { + $company->zip = GETPOST('zipcode'); + } + if (empty($company->town)) { + $company->town = GETPOST('town'); + } + if (empty($company->country_id)) { + $company->country_id = GETPOST('country_id', 'int'); + } + if (empty($company->email)) { + $company->email = GETPOST('email'); + } + if (empty($company->state_id)) { + $company->state_id = GETPOST('state_id', 'int'); + } + if (empty($company->name_alias)) { + $company->name_alias = dolGetFirstLastname(GETPOST('firstname'), GETPOST('lastname')); + } + $company->update(0); + } // Fill array 'array_options' with data from add form $extrafields->fetch_name_optionals_label($partnership->table_element); @@ -230,175 +311,187 @@ if (empty($reshook) && $action == 'add') { $error++; } - $result = $partnership->create($user); - if ($result > 0) { - require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $object = $partnership; + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + $error++; + $errmsg = $langs->trans("AlreadyTooMuchPostOnThisIPAdress"); + array_push($partnership->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + } + if (!$error) { + $result = $partnership->create($user); + if ($result > 0) { + /* + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $object = $partnership; - /* - $partnershipt = new PartnershipType($db); - $partnershipt->fetch($object->typeid); - if ($object->email) { - $subject = ''; - $msg = ''; + $partnershipt = new PartnershipType($db); + $partnershipt->fetch($object->typeid); - // Send subscription email - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - // Set output language - $outputlangs = new Translate('', $conf); - $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); - // Load traductions files required by page - $outputlangs->loadLangs(array("main", "members")); - // Get email content from template - $arraydefaultmessage = null; - $labeltouse = $conf->global->PARTNERSHIP_EMAIL_TEMPLATE_AUTOREGISTER; + if ($object->email) { + $subject = ''; + $msg = ''; - if (!empty($labeltouse)) { - $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); + // Send subscription email + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + // Set output language + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); + // Load traductions files required by page + $outputlangs->loadLangs(array("main", "members")); + // Get email content from template + $arraydefaultmessage = null; + $labeltouse = $conf->global->PARTNERSHIP_EMAIL_TEMPLATE_AUTOREGISTER; + + if (!empty($labeltouse)) { + $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); + } + + if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { + $subject = $arraydefaultmessage->topic; + $msg = $arraydefaultmessage->content; + } + + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); + $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); + $texttosend = make_substitutions(dol_concatdesc($msg, $partnershipt->getMailOnValid()), $substitutionarray, $outputlangs); + + if ($subjecttosend && $texttosend) { + $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n"; + + $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); + } } - if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { - $subject = $arraydefaultmessage->topic; - $msg = $arraydefaultmessage->content; - } - $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); - complete_substitutions_array($substitutionarray, $outputlangs, $object); - $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); - $texttosend = make_substitutions(dol_concatdesc($msg, $partnershipt->getMailOnValid()), $substitutionarray, $outputlangs); - - if ($subjecttosend && $texttosend) { - $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n"; - - $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); - } - } - */ - - // Send email to the foundation to say a new member subscribed with autosubscribe form - if (getDolGlobalString('MAIN_INFO_SOCIETE_MAIL') && !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT) && - !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL)) { - // Define link to login card - $appli = constant('DOL_APPLICATION_TITLE'); - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { - $appli = $conf->global->MAIN_APPLICATION_TITLE; - if (preg_match('/\d\.\d/', $appli)) { - if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { - $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core + // Send email to the foundation to say a new member subscribed with autosubscribe form + /* + if (getDolGlobalString('MAIN_INFO_SOCIETE_MAIL') && !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT) && + !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL)) { + // Define link to login card + $appli = constant('DOL_APPLICATION_TITLE'); + if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { + $appli = $conf->global->MAIN_APPLICATION_TITLE; + if (preg_match('/\d\.\d/', $appli)) { + if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { + $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core + } + } else { + $appli .= " ".DOL_VERSION; } } else { $appli .= " ".DOL_VERSION; } + + $to = $partnership->makeSubstitution(getDolGlobalString('MAIN_INFO_SOCIETE_MAIL')); + $from = getDolGlobalString('PARTNERSHIP_MAIL_FROM'); + $mailfile = new CMailFile( + '['.$appli.'] '.getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT', 'Partnership request'), + $to, + $from, + $partnership->makeSubstitution(getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL')), + array(), + array(), + array(), + "", + "", + 0, + -1 + ); + + if (!$mailfile->sendfile()) { + dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR); + } + }*/ + + if (!empty($backtopage)) { + $urlback = $backtopage; + } elseif (!empty($conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION)) { + $urlback = $conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION; + // TODO Make replacement of __AMOUNT__, etc... } else { - $appli .= " ".DOL_VERSION; + $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); } - $to = $partnership->makeSubstitution(getDolGlobalString('MAIN_INFO_SOCIETE_MAIL')); - $from = getDolGlobalString('PARTNERSHIP_MAIL_FROM'); - $mailfile = new CMailFile( - '['.$appli.'] '.getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT', 'Partnership request'), - $to, - $from, - $partnership->makeSubstitution(getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL')), - array(), - array(), - array(), - "", - "", - 0, - -1 - ); + /* + if (!empty($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE) && $conf->global->PARTNERSHIP_NEWFORM_PAYONLINE != '-1') { + if ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'all') { + $urlback = DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paybox') { + $urlback = DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paypal') { + $urlback = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'stripe') { + $urlback = DOL_MAIN_URL_ROOT.'/public/stripe/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.$partnership->ref; + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } else { + dol_print_error('', "Autosubscribe form is setup to ask an online payment for a not managed online payment"); + exit; + } + }*/ - if (!$mailfile->sendfile()) { - dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR); + if (!empty($entity)) { + $urlback .= '&entity='.$entity; } - } - - if (!empty($backtopage)) { - $urlback = $backtopage; - } elseif (!empty($conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION)) { - $urlback = $conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION; - // TODO Make replacement of __AMOUNT__, etc... + dol_syslog("partnership ".$partnership->ref." was created, we redirect to ".$urlback); } else { - $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); + $error++; + $errmsg .= join('
    ', $partnership->errors); } - - if (!empty($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE) && $conf->global->PARTNERSHIP_NEWFORM_PAYONLINE != '-1') { - if ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'all') { - $urlback = DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paybox') { - $urlback = DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paypal') { - $urlback = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'stripe') { - $urlback = DOL_MAIN_URL_ROOT.'/public/stripe/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.$partnership->ref; - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } else { - dol_print_error('', "Autosubscribe form is setup to ask an online payment for a not managed online payment"); - exit; - } - } - - if (!empty($entity)) { - $urlback .= '&entity='.$entity; - } - dol_syslog("partnership ".$partnership->ref." was created, we redirect to ".$urlback); } else { - $error++; - $errmsg .= join('
    ', $partnership->errors); + setEventMessage($errmsg, 'errors'); } } @@ -437,7 +530,7 @@ if (empty($reshook) && $action == 'added') { $form = new Form($db); $formcompany = new FormCompany($db); -$extrafields->fetch_name_optionals_label($partnership->table_element); // fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); // fetch optionals attributes and labels llxHeaderVierge($langs->trans("NewPartnershipRequest")); @@ -453,7 +546,7 @@ print '
    '; if (!empty($conf->global->PARTNERSHIP_NEWFORM_TEXT)) { print $langs->trans($conf->global->PARTNERSHIP_NEWFORM_TEXT)."
    \n"; } else { - print $langs->trans("NewPartnershipRequestDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
    \n"; + print $langs->trans("NewPartnershipRequestDesc", getDolGlobalString("MAIN_INFO_SOCIETE_MAIL"))."
    \n"; } print '
    '; diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index b61a2e22a06..c4b2d502d3d 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -56,6 +56,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; @@ -246,7 +247,7 @@ $urlko = preg_replace('/&$/', '', $urlko); // Remove last & // Make special controls -if ((empty($paymentmethod) || $paymentmethod == 'paypal') && !empty($conf->paypal->enabled)) { +if ((empty($paymentmethod) || $paymentmethod == 'paypal') && isModEnabled('paypal')) { require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php'; @@ -272,23 +273,17 @@ if ((empty($paymentmethod) || $paymentmethod == 'paypal') && !empty($conf->paypa return -1; } } -if ((empty($paymentmethod) || $paymentmethod == 'paybox') && !empty($conf->paybox->enabled)) { +if ((empty($paymentmethod) || $paymentmethod == 'paybox') && isModEnabled('paybox')) { // No specific test for the moment } -if ((empty($paymentmethod) || $paymentmethod == 'stripe') && !empty($conf->stripe->enabled)) { +if ((empty($paymentmethod) || $paymentmethod == 'stripe') && isModEnabled('stripe')) { require_once DOL_DOCUMENT_ROOT.'/stripe/config.php'; // This include also /stripe/lib/stripe.lib.php, /includes/stripe/stripe-php/init.php, ... } // Initialize $validpaymentmethod +// The list can be complete by the hook 'doValidatePayment' executed inside getValidOnlinePaymentMethods() $validpaymentmethod = getValidOnlinePaymentMethods($paymentmethod); -// This hook is used to push to $validpaymentmethod by external payment modules (ie Payzen, ...) -$parameters = [ - 'paymentmethod' => $paymentmethod, - 'validpaymentmethod' => &$validpaymentmethod -]; -$reshook = $hookmanager->executeHooks('doValidatePayment', $parameters, $object, $action); - // Check security token $tmpsource = $source; if ($tmpsource == 'membersubscription') { @@ -341,9 +336,9 @@ $creditor = $mysoc->name; $paramcreditor = 'ONLINE_PAYMENT_CREDITOR'; $paramcreditorlong = 'ONLINE_PAYMENT_CREDITOR_'.$suffix; if (!empty($conf->global->$paramcreditorlong)) { - $creditor = $conf->global->$paramcreditorlong; + $creditor = $conf->global->$paramcreditorlong; // use label long of the seller to show } elseif (!empty($conf->global->$paramcreditor)) { - $creditor = $conf->global->$paramcreditor; + $creditor = $conf->global->$paramcreditor; // use label short of the seller to show } $mesg = ''; @@ -355,6 +350,8 @@ $mesg = ''; // Action dopayment is called after clicking/choosing the payment mode if ($action == 'dopayment') { + dol_syslog("--- newpayment.php Execute action = ".$action." paymentmethod=".$paymentmethod.' amount='.$amount.' newamount='.GETPOST("newamount", 'alpha'), LOG_DEBUG, 0, '_payment'); + if ($paymentmethod == 'paypal') { $PAYPAL_API_PRICE = price2num(GETPOST("newamount", 'alpha'), 'MT'); $PAYPAL_PAYMENT_TYPE = 'Sale'; @@ -480,7 +477,7 @@ if ($action == 'dopayment') { // Called when choosing Stripe mode. // When using the old Charge API architecture, this code is called after clicking the 'dopayment' with the Charge API architecture. // When using the PaymentIntent API architecture, the Stripe customer was already created when creating PaymentIntent when showing payment page, and the payment is already ok when action=charge. -if ($action == 'charge' && !empty($conf->stripe->enabled)) { +if ($action == 'charge' && isModEnabled('stripe')) { $amountstripe = $amount; // Correct the amount according to unit of currency @@ -490,9 +487,9 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { $amountstripe = $amountstripe * 100; } - dol_syslog("--- newpayment.php Execute action = ".$action." STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION=".getDolGlobalInt('STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION'), LOG_DEBUG, 0, '_stripe'); - dol_syslog("GET=".var_export($_GET, true), LOG_DEBUG, 0, '_stripe'); - dol_syslog("POST=".var_export($_POST, true), LOG_DEBUG, 0, '_stripe'); + dol_syslog("--- newpayment.php Execute action = ".$action." STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION=".getDolGlobalInt('STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION'), LOG_DEBUG, 0, '_payment'); + dol_syslog("GET=".var_export($_GET, true), LOG_DEBUG, 0, '_payment'); + dol_syslog("POST=".var_export($_POST, true), LOG_DEBUG, 0, '_payment'); $stripeToken = GETPOST("stripeToken", 'alpha'); $email = GETPOST("email", 'alpha'); @@ -502,10 +499,10 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { $vatnumber = GETPOST('vatnumber', 'alpha'); $savesource = GETPOSTISSET('savesource') ? GETPOST('savesource', 'int') : 1; - dol_syslog("POST stripeToken = ".$stripeToken, LOG_DEBUG, 0, '_stripe'); - dol_syslog("POST email = ".$email, LOG_DEBUG, 0, '_stripe'); - dol_syslog("POST thirdparty_id = ".$thirdparty_id, LOG_DEBUG, 0, '_stripe'); - dol_syslog("POST vatnumber = ".$vatnumber, LOG_DEBUG, 0, '_stripe'); + dol_syslog("POST stripeToken = ".$stripeToken, LOG_DEBUG, 0, '_payment'); + dol_syslog("POST email = ".$email, LOG_DEBUG, 0, '_payment'); + dol_syslog("POST thirdparty_id = ".$thirdparty_id, LOG_DEBUG, 0, '_payment'); + dol_syslog("POST vatnumber = ".$vatnumber, LOG_DEBUG, 0, '_payment'); $error = 0; $errormessage = ''; @@ -526,7 +523,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { } if ($thirdparty_id > 0) { - dol_syslog("Search existing Stripe customer profile for thirdparty_id=".$thirdparty_id, LOG_DEBUG, 0, '_stripe'); + dol_syslog("Search existing Stripe customer profile for thirdparty_id=".$thirdparty_id, LOG_DEBUG, 0, '_payment'); $service = 'StripeTest'; $servicestatus = 0; @@ -545,7 +542,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { $customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1); if (empty($customer)) { $error++; - dol_syslog('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, LOG_ERR, 0, '_stripe'); + dol_syslog('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, LOG_ERR, 0, '_payment'); setEventMessages('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, null, 'errors'); $action = ''; } @@ -560,7 +557,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { if (empty($card)) { $error++; - dol_syslog('Failed to create card record', LOG_WARNING, 0, '_stripe'); + dol_syslog('Failed to create card record', LOG_WARNING, 0, '_payment'); setEventMessages('Failed to create card record', null, 'errors'); $action = ''; } else { @@ -574,7 +571,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { $metadata["dol_type"] = $dol_type; } - dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_stripe'); + dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_payment'); $charge = \Stripe\Charge::create(array( 'amount' => price2num($amountstripe, 'MU'), 'currency' => $currency, @@ -588,7 +585,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { // Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...) if (empty($charge)) { $error++; - dol_syslog('Failed to charge card', LOG_WARNING, 0, '_stripe'); + dol_syslog('Failed to charge card', LOG_WARNING, 0, '_payment'); setEventMessages('Failed to charge card', null, 'errors'); $action = ''; } @@ -606,7 +603,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { if (empty($vatcleaned)) $taxinfo=null; */ - dol_syslog("Create anonymous customer card profile", LOG_DEBUG, 0, '_stripe'); + dol_syslog("Create anonymous customer card profile", LOG_DEBUG, 0, '_payment'); $customer = \Stripe\Customer::create(array( 'email' => $email, @@ -618,9 +615,9 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { // Create the VAT record in Stripe /* We don't know country of customer, so we can't create tax - if (! empty($conf->global->STRIPE_SAVE_TAX_IDS)) // We setup to save Tax info on Stripe side. Warning: This may result in error when saving customer + if (!empty($conf->global->STRIPE_SAVE_TAX_IDS)) // We setup to save Tax info on Stripe side. Warning: This may result in error when saving customer { - if (! empty($vatcleaned)) + if (!empty($vatcleaned)) { $isineec=isInEEC($object); if ($object->country_code && $isineec) @@ -643,7 +640,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { // The customer was just created with a source, so we can make a charge // with no card defined, the source just used for customer creation will be used. - dol_syslog("Create charge", LOG_DEBUG, 0, '_stripe'); + dol_syslog("Create charge", LOG_DEBUG, 0, '_payment'); $charge = \Stripe\Charge::create(array( 'customer' => $customer->id, 'amount' => price2num($amountstripe, 'MU'), @@ -656,7 +653,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { // Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...) if (empty($charge)) { $error++; - dol_syslog('Failed to charge card', LOG_WARNING, 0, '_stripe'); + dol_syslog('Failed to charge card', LOG_WARNING, 0, '_payment'); setEventMessages('Failed to charge card', null, 'errors'); $action = ''; } @@ -675,21 +672,21 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { $error++; $errormessage = "ErrorCard ".$e->getMessage()." err=".var_export($err, true); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } catch (\Stripe\Error\RateLimit $e) { // Too many requests made to the API too quickly $error++; $errormessage = "ErrorRateLimit ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } catch (\Stripe\Error\InvalidRequest $e) { // Invalid parameters were supplied to Stripe's API $error++; $errormessage = "ErrorInvalidRequest ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } catch (\Stripe\Error\Authentication $e) { @@ -697,14 +694,14 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { // (maybe you changed API keys recently) $error++; $errormessage = "ErrorAuthentication ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } catch (\Stripe\Error\ApiConnection $e) { // Network communication with Stripe failed $error++; $errormessage = "ErrorApiConnection ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } catch (\Stripe\Error\Base $e) { @@ -712,14 +709,14 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { // yourself an email $error++; $errormessage = "ErrorBase ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } catch (Exception $e) { // Something else happened, completely unrelated to Stripe $error++; $errormessage = "ErrorException ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } @@ -754,7 +751,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { } catch (Exception $e) { $error++; $errormessage = "CantRetrievePaymentIntent ".$e->getMessage(); - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($e->getMessage(), null, 'errors'); $action = ''; } @@ -762,13 +759,13 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { if ($paymentintent->status != 'succeeded') { $error++; $errormessage = "StatusOfRetrievedIntent is not succeeded: ".$paymentintent->status; - dol_syslog($errormessage, LOG_WARNING, 0, '_stripe'); + dol_syslog($errormessage, LOG_WARNING, 0, '_payment'); setEventMessages($paymentintent->status, null, 'errors'); $action = ''; } else { // TODO We can also record the payment mode into llx_societe_rib with stripe $paymentintent->payment_method // Note that with other old Stripe architecture (using Charge API), the payment mode was not recorded, so it is not mandatory to do it here. - //dol_syslog("Create payment_method for ".$paymentintent->payment_method, LOG_DEBUG, 0, '_stripe'); + //dol_syslog("Create payment_method for ".$paymentintent->payment_method, LOG_DEBUG, 0, '_payment'); // Get here amount and currency used for payment and force value into $amount and $currency so the real amount is saved into session instead // of the amount and currency retreived from the POST. @@ -798,11 +795,13 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) { $_SESSION['TRANSACTIONID'] = (is_object($charge) ? $charge->id : (is_object($paymentintent) ? $paymentintent->id : '')); $_SESSION['errormessage'] = $errormessage; - dol_syslog("Action charge stripe STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION=".getDolGlobalInt('STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION')." ip=".$remoteip, LOG_DEBUG, 0, '_stripe'); - dol_syslog("onlinetoken=".$_SESSION["onlinetoken"]." FinalPaymentAmt=".$_SESSION["FinalPaymentAmt"]." currencyCodeType=".$_SESSION["currencyCodeType"]." payerID=".$_SESSION['payerID']." TRANSACTIONID=".$_SESSION['TRANSACTIONID'], LOG_DEBUG, 0, '_stripe'); - dol_syslog("FULLTAG=".$FULLTAG, LOG_DEBUG, 0, '_stripe'); - dol_syslog("error=".$error." errormessage=".$errormessage, LOG_DEBUG, 0, '_stripe'); - dol_syslog("Now call the redirect to paymentok or paymentko, URL = ".($error ? $urlko : $urlok), LOG_DEBUG, 0, '_stripe'); + dol_syslog("Action charge stripe STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION=".getDolGlobalInt('STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION')." ip=".$remoteip, LOG_DEBUG, 0, '_payment'); + dol_syslog("onlinetoken=".$_SESSION["onlinetoken"]." FinalPaymentAmt=".$_SESSION["FinalPaymentAmt"]." currencyCodeType=".$_SESSION["currencyCodeType"]." payerID=".$_SESSION['payerID']." TRANSACTIONID=".$_SESSION['TRANSACTIONID'], LOG_DEBUG, 0, '_payment'); + dol_syslog("FULLTAG=".$FULLTAG, LOG_DEBUG, 0, '_payment'); + dol_syslog("error=".$error." errormessage=".$errormessage, LOG_DEBUG, 0, '_payment'); + dol_syslog("_SERVER[SERVER_NAME] = ".(empty($_SERVER["SERVER_NAME"]) ? '' : dol_escape_htmltag($_SERVER["SERVER_NAME"])), LOG_DEBUG, 0, '_payment'); + dol_syslog("_SERVER[SERVER_ADDR] = ".(empty($_SERVER["SERVER_ADDR"]) ? '' : dol_escape_htmltag($_SERVER["SERVER_ADDR"])), LOG_DEBUG, 0, '_payment'); + dol_syslog("Now call the redirect to paymentok or paymentko, URL = ".($error ? $urlko : $urlok), LOG_DEBUG, 0, '_payment'); if ($error) { header("Location: ".$urlko); @@ -831,6 +830,11 @@ $conf->dol_hide_leftmenu = 1; $replacemainarea = (empty($conf->dol_hide_leftmenu) ? '
    ' : '').'
    '; llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea); +dol_syslog("--- newpayment.php action = ".$action, LOG_DEBUG, 0, '_payment'); +dol_syslog("newpayment.php show page source=".$source." paymentmethod=".$paymentmethod.' amount='.$amount.' newamount='.GETPOST("newamount", 'alpha')." ref=".$ref, LOG_DEBUG, 0, '_payment'); +dol_syslog("_SERVER[SERVER_NAME] = ".(empty($_SERVER["SERVER_NAME"]) ? '' : dol_escape_htmltag($_SERVER["SERVER_NAME"])), LOG_DEBUG, 0, '_payment'); +dol_syslog("_SERVER[SERVER_ADDR] = ".(empty($_SERVER["SERVER_ADDR"]) ? '' : dol_escape_htmltag($_SERVER["SERVER_ADDR"])), LOG_DEBUG, 0, '_payment'); + // Check link validity if ($source && in_array($ref, array('member_ref', 'contractline_ref', 'invoice_ref', 'order_ref', 'donation_ref', ''))) { $langs->load("errors"); @@ -843,10 +847,10 @@ if ($source && in_array($ref, array('member_ref', 'contractline_ref', 'invoice_r // Show sandbox warning -if ((empty($paymentmethod) || $paymentmethod == 'paypal') && !empty($conf->paypal->enabled) && (!empty($conf->global->PAYPAL_API_SANDBOX) || GETPOST('forcesandbox', 'int'))) { // We can force sand box with param 'forcesandbox' +if ((empty($paymentmethod) || $paymentmethod == 'paypal') && isModEnabled('paypal') && (!empty($conf->global->PAYPAL_API_SANDBOX) || GETPOST('forcesandbox', 'int'))) { // We can force sand box with param 'forcesandbox' dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Paypal'), '', 'warning'); } -if ((empty($paymentmethod) || $paymentmethod == 'stripe') && !empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'int'))) { +if ((empty($paymentmethod) || $paymentmethod == 'stripe') && isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'int'))) { dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); } @@ -910,15 +914,15 @@ if (!empty($conf->global->MAIN_IMAGE_PUBLIC_PAYMENT)) { print ''."\n"; print ''."\n"; // Additionnal information for each payment system -if (!empty($conf->paypal->enabled)) { - print ''."\n"; - print ''."\n"; +if (isModEnabled('paypal')) { + print ''."\n"; + print ''."\n"; } -if (!empty($conf->paybox->enabled)) { - print ''."\n"; +if (isModEnabled('paybox')) { + print ''."\n"; } -if (!empty($conf->stripe->enabled)) { - print ''."\n"; +if (isModEnabled('stripe')) { + print ''."\n"; } print ''."\n"; print ''."\n"; @@ -1004,7 +1008,7 @@ if (!$source) { } -// Payment on customer order +// Payment on sales order if ($source == 'order') { $found = true; $langs->load("orders"); @@ -1353,19 +1357,15 @@ if ($source == 'contractline') { // Object $text = ''.$langs->trans("PaymentRenewContractId", $contract->ref, $contractline->ref).''; - if ($contractline->fk_product) { + if ($contractline->fk_product > 0) { $contractline->fetch_product(); $text .= '
    '.$contractline->product->ref.($contractline->product->label ? ' - '.$contractline->product->label : ''); } if ($contractline->description) { $text .= '
    '.dol_htmlentitiesbr($contractline->description); } - //if ($contractline->date_fin_validite) { - // $text.='
    '.$langs->trans("DateEndPlanned").': '; - // $text.=dol_print_date($contractline->date_fin_validite); - //} - if ($contractline->date_fin_validite) { - $text .= '
    '.$langs->trans("ExpiredSince").': '.dol_print_date($contractline->date_fin_validite); + if ($contractline->date_end) { + $text .= '
    '.$langs->trans("ExpiredSince").': '.dol_print_date($contractline->date_end); } if (GETPOST('desc', 'alpha')) { $text = ''.$langs->trans(GETPOST('desc', 'alpha')).''; @@ -1468,6 +1468,7 @@ if ($source == 'contractline') { if ($source == 'member' || $source == 'membersubscription') { $newsource = 'member'; + $tag=""; $found = true; $langs->load("members"); @@ -1500,7 +1501,7 @@ if ($source == 'member' || $source == 'membersubscription') { $amount = $adht->amount; } - $amount = price2num($amount, 'MT'); + $amount = max(0, price2num($amount, 'MT')); } if (GETPOST('fulltag', 'alpha')) { @@ -1596,7 +1597,7 @@ if ($source == 'member' || $source == 'membersubscription') { print '
    \n"; - } elseif ($action == dopayment) { + } elseif ($action == 'dopayment') { print ''."\n"; @@ -2075,7 +2042,7 @@ if ($action != 'dopayment') { 'paymentmethod' => $paymentmethod ]; $reshook = $hookmanager->executeHooks('doAddButton', $parameters, $object, $action); - if ((empty($paymentmethod) || $paymentmethod == 'paybox') && !empty($conf->paybox->enabled)) { + if ((empty($paymentmethod) || $paymentmethod == 'paybox') && isModEnabled('paybox')) { print '
    '; print '
    '; print ''.$langs->trans("CreditOrDebitCard").''; @@ -2094,7 +2061,7 @@ if ($action != 'dopayment') { '; } - if ((empty($paymentmethod) || $paymentmethod == 'stripe') && !empty($conf->stripe->enabled)) { + if ((empty($paymentmethod) || $paymentmethod == 'stripe') && isModEnabled('stripe')) { print '
    '; print ''; print '
    '; @@ -2115,7 +2082,7 @@ if ($action != 'dopayment') { '; } - if ((empty($paymentmethod) || $paymentmethod == 'paypal') && !empty($conf->paypal->enabled)) { + if ((empty($paymentmethod) || $paymentmethod == 'paypal') && isModEnabled('paypal')) { if (empty($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY)) { $conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY = 'integral'; } @@ -2261,7 +2228,7 @@ if (preg_match('/^dopayment/', $action)) { // If we choosed/click on the payme // $conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION = 1 = use intent (default value) // $conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION = 2 = use payment - //if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION) || ! empty($paymentintent)) + //if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION) || !empty($paymentintent)) //{ print '
    '.$langs->trans("ThisIsInformationOnDocumentToSign").' :
    '.$langs->trans("ThisIsInformationOnDocumentToSignProposal").' :
    '.$langs->trans("ThisIsInformationOnDocumentToSignContract").' :
    '.$langs->trans("ThisIsInformationOnDocumentToSignFichinter").' :
    '.$langs->trans("Creditor"); print ''; print img_picto('', 'company', 'class="pictofixedwidth"'); @@ -311,43 +339,48 @@ if ($source == 'proposal') { print '
    '.$langs->trans("ThirdParty"); print ''; print img_picto('', 'company', 'class="pictofixedwidth"'); - print ''.$proposal->thirdparty->name.''; + print ''.$object->thirdparty->name.''; print '
    '.$langs->trans("Amount"); print ''; - print ''.price($proposal->total_ttc, 0, $langs, 1, -1, -1, $conf->currency).''; + print ''.price($object->total_ttc, 0, $langs, 1, -1, -1, $conf->currency).''; print '
    '.$langs->trans("Designation"); + $text = ''.$langs->trans("SignatureProposalRef", $object->ref).''; + print '
    '.$langs->trans("Designation"); print ''.$text; - if ($proposal->status == $proposal::STATUS_VALIDATED) { - $directdownloadlink = $proposal->getLastMainDocLink('proposal'); + + $last_main_doc_file = $object->last_main_doc; + + if ($object->status == $object::STATUS_VALIDATED) { + if (empty($last_main_doc_file) || !dol_is_file(DOL_DATA_ROOT.'/'.$object->last_main_doc)) { + // It seems document has never been generated, or was generated and then deleted. + // So we try to regenerate it with its default template. + $defaulttemplate = ''; // We force the use an empty string instead of $object->model_pdf to be sure to use a "main" default template and not the last one used. + $object->generateDocument($defaulttemplate, $langs); + } + + $directdownloadlink = $object->getLastMainDocLink('proposal'); if ($directdownloadlink) { print '
    '; - print img_mime($proposal->last_main_doc, ''); + print img_mime($object->last_main_doc, ''); print $langs->trans("DownloadDocument").''; } } else { - $last_main_doc_file = $proposal->last_main_doc; - - if ($proposal->status == $proposal::STATUS_NOTSIGNED) { - $directdownloadlink = $proposal->getLastMainDocLink('proposal'); + if ($object->status == $object::STATUS_NOTSIGNED) { + $directdownloadlink = $object->getLastMainDocLink('proposal'); if ($directdownloadlink) { print '
    '; - print img_mime($proposal->last_main_doc, ''); + print img_mime($last_main_doc_file, ''); print $langs->trans("DownloadDocument").''; } - } elseif ($proposal->status == $proposal::STATUS_SIGNED || $proposal->status == $proposal::STATUS_BILLED) { + } elseif ($object->status == $object::STATUS_SIGNED || $object->status == $object::STATUS_BILLED) { if (preg_match('/_signed-(\d+)/', $last_main_doc_file)) { // If the last main doc has been signed $last_main_doc_file_not_signed = preg_replace('/_signed-(\d+)/', '', $last_main_doc_file); @@ -355,10 +388,10 @@ if ($source == 'proposal') { $datefilenotsigned = dol_filemtime($last_main_doc_file_not_signed); if (empty($datefilenotsigned) || $datefilesigned > $datefilenotsigned) { - $directdownloadlink = $proposal->getLastMainDocLink('proposal'); + $directdownloadlink = $object->getLastMainDocLink('proposal'); if ($directdownloadlink) { print '
    '; - print img_mime($proposal->last_main_doc, ''); + print img_mime($object->last_main_doc, ''); print $langs->trans("DownloadDocument").''; } } @@ -367,12 +400,108 @@ if ($source == 'proposal') { } print ''; - print ''; + print ''; + print '
    '.$langs->trans("Proposer"); + print ''; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print ''.$creditor.''; + print ''; print '
    '.$langs->trans("ThirdParty"); + print ''; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print ''.$object->thirdparty->name.''; + print '
    '.$langs->trans("Designation"); + print ''.$text; + + $last_main_doc_file = $object->last_main_doc; + + if (empty($last_main_doc_file) || !dol_is_file(DOL_DATA_ROOT.'/'.$object->last_main_doc)) { + // It seems document has never been generated, or was generated and then deleted. + // So we try to regenerate it with its default template. + $defaulttemplate = ''; // We force the use an empty string instead of $object->model_pdf to be sure to use a "main" default template and not the last one used. + $object->generateDocument($defaulttemplate, $langs); + } + + $directdownloadlink = $object->getLastMainDocLink('contract'); + if ($directdownloadlink) { + print '
    '; + print img_mime($object->last_main_doc, ''); + if ($message == "signed") { + print $langs->trans("DownloadSignedDocument").''; + } else { + print $langs->trans("DownloadDocument").''; + } + } + + + print ''; + print ''; + print '
    '.$langs->trans("Proposer"); + print ''; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print ''.$creditor.''; + print ''; + print '
    '.$langs->trans("ThirdParty"); + print ''; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print ''.$object->thirdparty->name.''; + print '
    '.$langs->trans("Designation"); + print ''.$text; + + $last_main_doc_file = $object->last_main_doc; + + if (empty($last_main_doc_file) || !dol_is_file(DOL_DATA_ROOT.'/'.$object->last_main_doc)) { + // It seems document has never been generated, or was generated and then deleted. + // So we try to regenerate it with its default template. + $defaulttemplate = ''; // We force the use an empty string instead of $object->model_pdf to be sure to use a "main" default template and not the last one used. + $object->generateDocument($defaulttemplate, $langs); + } + + $directdownloadlink = $object->getLastMainDocLink('fichinter'); + if ($directdownloadlink) { + print '
    '; + print img_mime($object->last_main_doc, ''); + if ($message == "signed") { + print $langs->trans("DownloadSignedDocument").''; + } else { + print $langs->trans("DownloadDocument").''; + } + } + + + print ''; + print ''; + print '
    '; print $form->selectarray("typeid", $adht->liste_array(1), $member->typeid, 0, 0, 0, 'onchange="window.location.replace(\''.$urlwithroot.'/public/payment/newpayment.php?source='.urlencode($source).'&ref='.urlencode($ref).'&amount='.urlencode($amount).'&typeid=\' + this.value + \'&securekey='.urlencode($SECUREKEY).'\');"', 0, 0, 0, '', '', 1); print "
    '.$langs->trans("NewMemberType"); print ''.dol_escape_htmltag($member->type); print ''; @@ -1611,57 +1612,23 @@ if ($source == 'member' || $source == 'membersubscription') { // Amount print '
    '.$langs->trans("Amount"); - if (empty($amount)) { - if (empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { - print ' ('.$langs->trans("ToComplete"); - } - if (!empty($conf->global->MEMBER_EXT_URL_SUBSCRIPTION_INFO)) { - print ' - '.$langs->trans("SeeHere").''; - } - if (empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { - print ')'; - } + // This place no longer allows amount edition + if (!empty($conf->global->MEMBER_EXT_URL_SUBSCRIPTION_INFO)) { + print ' - '.$langs->trans("SeeHere").''; } print ''; - $valtoshow = ''; - if (empty($amount) || !is_numeric($amount)) { - $valtoshow = price2num(GETPOST("newamount", 'alpha'), 'MT'); - // force default subscription amount to value defined into constant... - if (empty($valtoshow)) { - if (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { - if (!empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { - $valtoshow = $conf->global->MEMBER_NEWFORM_AMOUNT; - } - } else { - if (!empty($conf->global->MEMBER_NEWFORM_AMOUNT)) { - $amount = $conf->global->MEMBER_NEWFORM_AMOUNT; - } - } - } + if (!empty($conf->global->MEMBER_MIN_AMOUNT) && $amount) { + $amount = max(0, $conf->global->MEMBER_MIN_AMOUNT, $amount); } - if (empty($amount) || !is_numeric($amount)) { - //$valtoshow=price2num(GETPOST("newamount",'alpha'),'MT'); - if (!empty($conf->global->MEMBER_MIN_AMOUNT) && $valtoshow) { - $valtoshow = max($conf->global->MEMBER_MIN_AMOUNT, $valtoshow); - } - print ''; - if (empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { - print ''; - print ''; - } else { - print ''; - } - print ' '.$langs->trans("Currency".$currency).''; - } else { - $valtoshow = $amount; - if (!empty($conf->global->MEMBER_MIN_AMOUNT) && $valtoshow) { - $valtoshow = max($conf->global->MEMBER_MIN_AMOUNT, $valtoshow); - $amount = $valtoshow; - } - print ''.price($valtoshow, 1, $langs, 1, -1, -1, $currency).''; // Price with currency - print ''; - print ''; + print ''.price($amount, 1, $langs, 1, -1, -1, $currency).''; // Price with currency + $caneditamount = !empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) || $adht->caneditamount; + $minimumamount = empty($conf->global->MEMBER_MIN_AMOUNT)? $adht->amount : max($conf->global->MEMBER_MIN_AMOUNT, $adht->amount > $amount); + if (!$caneditamount && $minimumamount > $amount) { + print ' '. $langs->trans("AmountIsLowerToMinimumNotice", price($adht->amount, 1, $langs, 1, -1, -1, $currency)); } + + print ''; + print ''; print ''; print '
    @@ -2390,7 +2357,17 @@ if (preg_match('/^dopayment/', $action)) { // If we choosed/click on the payme // Code for payment with option STRIPE_USE_NEW_CHECKOUT set // Create a Stripe client. + var stripe = Stripe(''); + + var stripe = Stripe('', { stripeAccount: '' }); + // Create an instance of Elements var elements = stripe.elements(); @@ -2412,7 +2389,7 @@ if (preg_match('/^dopayment/', $action)) { // If we choosed/click on the payme color: '#fa755a', iconColor: '#fa755a' } - }; + } var cardElement = elements.create('card', {style: style}); @@ -2435,14 +2412,24 @@ if (preg_match('/^dopayment/', $action)) { // If we choosed/click on the payme // Code for payment with option STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION set to 1 or 2 // Create a Stripe client. + var stripe = Stripe(''); + + var stripe = Stripe('', { stripeAccount: '' }); + var cardButton = document.getElementById('buttontopay'); var clientSecret = cardButton.dataset.secret; - var options = { clientSecret: clientSecret,}; + var options = { clientSecret: clientSecret }; // Create an instance of Elements var elements = stripe.elements(options); @@ -2472,7 +2459,7 @@ if (preg_match('/^dopayment/', $action)) { // If we choosed/click on the payme color: '#fa755a', iconColor: '#fa755a' } - }; + } paypal->enabled)) { +if (isModEnabled('paypal')) { require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php'; } $langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe")); -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { $PAYPALTOKEN = GETPOST('TOKEN'); if (empty($PAYPALTOKEN)) { $PAYPALTOKEN = GETPOST('token'); @@ -67,9 +68,9 @@ if (!empty($conf->paypal->enabled)) { $PAYPALPAYERID = GETPOST('PayerID'); } } -if (!empty($conf->paybox->enabled)) { +if (isModEnabled('paybox')) { } -if (!empty($conf->stripe->enabled)) { +if (isModEnabled('stripe')) { } $FULLTAG = GETPOST('FULLTAG'); @@ -95,20 +96,20 @@ if (empty($paymentmethod)) { $validpaymentmethod = array(); -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { $validpaymentmethod['paypal'] = 'paypal'; } -if (!empty($conf->paybox->enabled)) { +if (isModEnabled('paybox')) { $validpaymentmethod['paybox'] = 'paybox'; } -if (!empty($conf->stripe->enabled)) { +if (isModEnabled('stripe')) { $validpaymentmethod['stripe'] = 'stripe'; } // Security check if (empty($validpaymentmethod)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('No valid payment mode'); } @@ -135,6 +136,10 @@ foreach ($_POST as $k => $v) { dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_payment'); +// Set $appli for emails title +$appli = $mysoc->name; + + if (!empty($_SESSION['ipaddress'])) { // To avoid to make action twice // Get on url call $fulltag = $FULLTAG; @@ -172,21 +177,6 @@ if (!empty($_SESSION['ipaddress'])) { // To avoid to make action twice $from = $conf->global->MAILING_EMAIL_FROM; $sendto = $sendemail; - // Define link to login card - $appli = constant('DOL_APPLICATION_TITLE'); - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { - $appli = $conf->global->MAIN_APPLICATION_TITLE; - if (preg_match('/\d\.\d/', $appli)) { - if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { - $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core - } - } else { - $appli .= " ".DOL_VERSION; - } - } else { - $appli .= " ".DOL_VERSION; - } - $urlback = $_SERVER["REQUEST_URI"]; $topic = '['.$appli.'] '.$companylangs->transnoentitiesnoconv("NewOnlinePaymentFailed"); $content = ""; diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php index c0b88736ce3..3bfdfc5f089 100644 --- a/htdocs/public/payment/paymentok.php +++ b/htdocs/public/payment/paymentok.php @@ -50,21 +50,23 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; -require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; - -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php'; } +// Hook to be used by external payment modules (ie Payzen, ...) +include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; +$hookmanager = new HookManager($db); +$hookmanager->initHooks(array('newpayment')); $langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal")); // Clean parameters -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { $PAYPAL_API_USER = ""; if (!empty($conf->global->PAYPAL_API_USER)) { $PAYPAL_API_USER = $conf->global->PAYPAL_API_USER; @@ -126,19 +128,19 @@ dol_syslog("***** paymentok.php is called paymentmethod=".$paymentmethod." FULLT $validpaymentmethod = array(); -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { $validpaymentmethod['paypal'] = 'paypal'; } -if (!empty($conf->paybox->enabled)) { +if (isModEnabled('paybox')) { $validpaymentmethod['paybox'] = 'paybox'; } -if (!empty($conf->stripe->enabled)) { +if (isModEnabled('stripe')) { $validpaymentmethod['stripe'] = 'stripe'; } // Security check if (empty($validpaymentmethod)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('No valid payment mode'); } @@ -166,13 +168,20 @@ $error = 0; $now = dol_now(); -dol_syslog("Callback url when a payment was done. query_string=".(dol_escape_htmltag($_SERVER["QUERY_STRING"]) ?dol_escape_htmltag($_SERVER["QUERY_STRING"]) : '')." script_uri=".(dol_escape_htmltag($_SERVER["SCRIPT_URI"]) ?dol_escape_htmltag($_SERVER["SCRIPT_URI"]) : ''), LOG_DEBUG, 0, '_payment'); +dol_syslog("Callback url when a payment was done. query_string=".(empty($_SERVER["QUERY_STRING"]) ? '' : dol_escape_htmltag($_SERVER["QUERY_STRING"]))." script_uri=".(empty($_SERVER["SCRIPT_URI"]) ? '' : dol_escape_htmltag($_SERVER["SCRIPT_URI"])), LOG_DEBUG, 0, '_payment'); +dol_syslog("_SERVER[SERVER_NAME] = ".(empty($_SERVER["SERVER_NAME"]) ? '' : dol_escape_htmltag($_SERVER["SERVER_NAME"])), LOG_DEBUG, 0, '_payment'); +dol_syslog("_SERVER[SERVER_ADDR] = ".(empty($_SERVER["SERVER_ADDR"]) ? '' : dol_escape_htmltag($_SERVER["SERVER_ADDR"])), LOG_DEBUG, 0, '_payment'); $tracepost = ""; foreach ($_POST as $k => $v) { $tracepost .= "{$k} - {$v}\n"; } dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_payment'); +$tracesession = ""; +foreach ($_SESSION as $k => $v) { + $tracesession .= "{$k} - {$v}\n"; +} +dol_syslog("SESSION=".$tracesession, LOG_DEBUG, 0, '_payment'); $head = ''; if (!empty($conf->global->ONLINE_PAYMENT_CSS_URL)) { @@ -235,7 +244,7 @@ if (!empty($conf->global->MAIN_IMAGE_PUBLIC_PAYMENT)) { print '


    '; -if (!empty($conf->paypal->enabled)) { +if (isModEnabled('paypal')) { if ($paymentmethod == 'paypal') { // We call this page only if payment is ok on payment system if ($PAYPALTOKEN) { // Get on url call @@ -315,20 +324,30 @@ if (!empty($conf->paypal->enabled)) { } } -if (!empty($conf->paybox->enabled)) { +if (isModEnabled('paybox')) { if ($paymentmethod == 'paybox') { // TODO Add a check to validate that payment is ok. $ispaymentok = true; // We call this page only if payment is ok on payment system } } -if (!empty($conf->stripe->enabled)) { +if (isModEnabled('stripe')) { if ($paymentmethod == 'stripe') { // TODO Add a check to validate that payment is ok. We can request Stripe with payment_intent and payment_intent_client_secret $ispaymentok = true; // We call this page only if payment is ok on payment system } } +// Check status of the object to verify if it is paid by external payment modules +$action = ''; +$parameters = [ + 'paymentmethod' => $paymentmethod, +]; +$reshook = $hookmanager->executeHooks('isPaymentOK', $parameters, $object, $action); +if ($reshook >= 0) { + $ispaymentok = $hookmanager->resArray['ispaymentok']; +} + // If data not provided from back url, search them into the session env if (empty($ipaddress)) { @@ -369,6 +388,7 @@ if ($ispaymentok) { } if (empty($user->rights->facture)) { $user->rights->facture = new stdClass(); + $user->rights->facture->invoice_advance = new stdClass(); } if (empty($user->rights->adherent)) { $user->rights->adherent = new stdClass(); @@ -376,6 +396,7 @@ if ($ispaymentok) { } $user->rights->societe->creer = 1; $user->rights->facture->creer = 1; + $user->rights->facture->invoice_advance->validate = 1; $user->rights->adherent->cotisation->creer = 1; if (array_key_exists('MEM', $tmptag) && $tmptag['MEM'] > 0) { @@ -504,9 +525,13 @@ if ($ispaymentok) { $datesubend = dol_time_plus_duree($datesubend, -1, 'd'); } + // Set output language + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); $paymentdate = $now; $amount = $FinalPaymentAmt; - $label = 'Online subscription '.dol_print_date($now, 'standard').' using '.$paymentmethod.' from '.$ipaddress.' - Transaction ID = '.$TRANSACTIONID; + $formatteddate = dol_print_date($paymentdate, 'dayhour', 'auto', $outputlangs); + $label = $langs->trans("OnlineSubscriptionPaymentLine", $formatteddate, $paymentmethod, $ipaddress, $TRANSACTIONID); // Payment informations $accountid = 0; @@ -533,11 +558,11 @@ if ($ispaymentok) { $emetteur_banque = ''; // Define default choice for complementary actions $option = ''; - if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) { + if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && isModEnabled("banque") && isModEnabled("societe") && isModEnabled('facture')) { $option = 'bankviainvoice'; - } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && !empty($conf->banque->enabled)) { + } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && isModEnabled("banque")) { $option = 'bankdirect'; - } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) { + } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && isModEnabled("banque") && isModEnabled("societe") && isModEnabled('facture')) { $option = 'invoiceonly'; } if (empty($option)) { @@ -693,9 +718,6 @@ if ($ispaymentok) { // Send subscription email include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; $formmail = new FormMail($db); - // Set output language - $outputlangs = new Translate('', $conf); - $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); // Load traductions files required by page $outputlangs->loadLangs(array("main", "members")); // Get email content from template @@ -849,7 +871,7 @@ if ($ispaymentok) { } } - if (!$error && !empty($conf->banque->enabled)) { + if (!$error && isModEnabled("banque")) { $bankaccountid = 0; if ($paymentmethod == 'paybox') { $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; @@ -966,7 +988,7 @@ if ($ispaymentok) { } } - if (!$error && !empty($conf->banque->enabled)) { + if (!$error && isModEnabled("banque")) { $bankaccountid = 0; if ($paymentmethod == 'paybox') $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; elseif ($paymentmethod == 'paypal') $bankaccountid = $conf->global->PAYPAL_BANK_ACCOUNT_FOR_PAYMENTS; @@ -1086,7 +1108,7 @@ if ($ispaymentok) { } } - if (!$error && !empty($conf->banque->enabled)) { + if (!$error && isModEnabled("banque")) { $bankaccountid = 0; if ($paymentmethod == 'paybox') { $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; @@ -1131,6 +1153,8 @@ if ($ispaymentok) { // (we need first that the donation module is able to generate a pdf document for the cerfa with pre filled content) } elseif (array_key_exists('ATT', $tmptag) && $tmptag['ATT'] > 0) { // Record payment for registration to an event for an attendee + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $object = new Facture($db); $result = $object->fetch($ref); @@ -1202,7 +1226,7 @@ if ($ispaymentok) { } } - if (!$error && !empty($conf->banque->enabled)) { + if (!$error && isModEnabled("banque")) { $bankaccountid = 0; if ($paymentmethod == 'paybox') { $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; @@ -1262,7 +1286,7 @@ if ($ispaymentok) { $thirdparty = new Societe($db); $resultthirdparty = $thirdparty->fetch($attendeetovalidate->fk_soc); if ($resultthirdparty < 0) { - setEventMessages(null, $attendeetovalidate->errors, "errors"); + setEventMessages($resultthirdparty->error, $resultthirdparty->errors, "errors"); } else { require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; @@ -1285,11 +1309,10 @@ if ($ispaymentok) { $subject = $arraydefaultmessage->topic; $msg = $arraydefaultmessage->content; } else { - $subject = '['.$object->ref.' - '.$outputlangs->trans("NewRegistration").']'; + $subject = '['.$appli.'] '.$object->ref.' - '.$outputlangs->trans("NewRegistration").']'; $msg = $outputlangs->trans("OrganizationEventPaymentOfRegistrationWasReceived"); } - $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $thirdparty); complete_substitutions_array($substitutionarray, $outputlangs, $object); @@ -1297,6 +1320,13 @@ if ($ispaymentok) { $texttosend = make_substitutions($msg, $substitutionarray, $outputlangs); $sendto = $attendeetovalidate->email; + $cc = ''; + if ($thirdparty->email) { + $cc = $thirdparty->email; + } + if ($attendeetovalidate->email_company && $attendeetovalidate->email_company != $thirdparty->email) { + $cc = ($cc ? ', ' : '').$attendeetovalidate->email_company; + } $from = $conf->global->MAILING_EMAIL_FROM; $urlback = $_SERVER["REQUEST_URI"]; @@ -1317,7 +1347,7 @@ if ($ispaymentok) { $listofmimes = array(dol_mimetype($file)); } - $mailfile = new CMailFile($subjecttosend, $sendto, $from, $texttosend, $listofpaths, $listofmimes, $listofnames, '', '', 0, $ishtml); + $mailfile = new CMailFile($subjecttosend, $sendto, $from, $texttosend, $listofpaths, $listofmimes, $listofnames, $cc, '', 0, $ishtml); $result = $mailfile->sendfile(); if ($result) { @@ -1338,6 +1368,8 @@ if ($ispaymentok) { } } elseif (array_key_exists('BOO', $tmptag) && $tmptag['BOO'] > 0) { // Record payment for booth or conference + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $object = new Facture($db); $result = $object->fetch($ref); @@ -1411,7 +1443,7 @@ if ($ispaymentok) { } } - if (!$error && !empty($conf->banque->enabled)) { + if (!$error && isModEnabled("banque")) { $bankaccountid = 0; if ($paymentmethod == 'paybox') { $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; @@ -1444,6 +1476,8 @@ if ($ispaymentok) { if (!$error) { // Putting the booth to "suggested" state + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php'; $booth = new ConferenceOrBooth($db); $resultbooth = $booth->fetch((int) $tmptag['BOO']); if ($resultbooth < 0) { @@ -1489,7 +1523,7 @@ if ($ispaymentok) { $subject = $arraydefaultmessage->topic; $msg = $arraydefaultmessage->content; } else { - $subject = '['.$booth->ref.' - '.$outputlangs->trans("NewRegistration").']'; + $subject = '['.$appli.'] '.$booth->ref.' - '.$outputlangs->trans("NewRegistration").']'; $msg = $outputlangs->trans("OrganizationEventPaymentOfBoothWasReceived"); } @@ -1538,6 +1572,11 @@ if ($ispaymentok) { } } + +// Set $appli for emails title +$appli = $mysoc->name; + + if ($ispaymentok) { // Get on url call $onlinetoken = empty($PAYPALTOKEN) ? $_SESSION['onlinetoken'] : $PAYPALTOKEN; @@ -1596,19 +1635,6 @@ if ($ispaymentok) { //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current // Define link to login card - $appli = constant('DOL_APPLICATION_TITLE'); - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { - $appli = $conf->global->MAIN_APPLICATION_TITLE; - if (preg_match('/\d\.\d/', $appli)) { - if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { - $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core - } - } else { - $appli .= " ".DOL_VERSION; - } - } else { - $appli .= " ".DOL_VERSION; - } $urlback = $_SERVER["REQUEST_URI"]; $topic = '['.$appli.'] '.$companylangs->transnoentitiesnoconv("NewOnlinePaymentReceived"); @@ -1736,21 +1762,6 @@ if ($ispaymentok) { $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - // Define link to login card - $appli = constant('DOL_APPLICATION_TITLE'); - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { - $appli = $conf->global->MAIN_APPLICATION_TITLE; - if (preg_match('/\d\.\d/', $appli)) { - if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { - $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core - } - } else { - $appli .= " ".DOL_VERSION; - } - } else { - $appli .= " ".DOL_VERSION; - } - $urlback = $_SERVER["REQUEST_URI"]; $topic = '['.$appli.'] '.$companylangs->transnoentitiesnoconv("ValidationOfPaymentFailed"); $content = ""; diff --git a/htdocs/public/project/index.php b/htdocs/public/project/index.php index 0add64bb700..dfcfde94b17 100644 --- a/htdocs/public/project/index.php +++ b/htdocs/public/project/index.php @@ -41,6 +41,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; @@ -83,8 +84,8 @@ if ($resultproject < 0) { } // Security check -if (empty($conf->projet->enabled)) { - accessforbidden('', 0, 0, 1); +if (empty($conf->project->enabled)) { + httponly_accessforbidden('Module Project not enabled'); } diff --git a/htdocs/public/project/new.php b/htdocs/public/project/new.php index 4838c88c5a1..c44002340d6 100644 --- a/htdocs/public/project/new.php +++ b/htdocs/public/project/new.php @@ -39,9 +39,7 @@ if (!defined('NOIPCHECK')) { if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php @@ -50,12 +48,14 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Init vars $errmsg = ''; @@ -81,8 +81,8 @@ $object = new Project($db); $user->loadDefaultValues(); // Security check -if (empty($conf->projet->enabled)) { - accessforbidden('', 0, 0, 1); +if (empty($conf->project->enabled)) { + httponly_accessforbidden('Module Project not enabled'); } @@ -287,7 +287,6 @@ if (empty($reshook) && $action == 'add') { $proj->ref = $defaultref; $proj->statut = $proj::STATUS_DRAFT; $proj->status = $proj::STATUS_DRAFT; - $proj->email = GETPOST("email"); $proj->public = 1; $proj->usage_opportunity = 1; $proj->title = $langs->trans("LeadFromPublicForm"); @@ -295,6 +294,28 @@ if (empty($reshook) && $action == 'add') { $proj->opp_status = $defaultoppstatus; $proj->fk_opp_status = $defaultoppstatus; + $proj->ip = getUserRemoteIP(); + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(rowid) as nb_projets"; + $sql .= " FROM ".MAIN_DB_PREFIX."projet"; + $sql .= " WHERE ip = '".$db->escape($proj->ip)."'"; + $sql .= " AND datec > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_projets; + } + } + } + // Fill array 'array_options' with data from the form $extrafields->fetch_name_optionals_label($proj->table_element); $ret = $extrafields->setOptionalsFromPost(null, $proj); @@ -302,74 +323,83 @@ if (empty($reshook) && $action == 'add') { $error++; } - // Create the project - $result = $proj->create($user); - if ($result > 0) { - require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $object = $proj; - - if ($object->email) { - $subject = ''; - $msg = ''; - - // Send subscription email - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - // Set output language - $outputlangs = new Translate('', $conf); - $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); - // Load traductions files required by page - $outputlangs->loadLangs(array("main", "members", "projects")); - // Get email content from template - $arraydefaultmessage = null; - $labeltouse = $conf->global->PROJECT_EMAIL_TEMPLATE_AUTOLEAD; - - if (!empty($labeltouse)) { - $arraydefaultmessage = $formmail->getEMailTemplate($db, 'project', $user, $outputlangs, 0, 1, $labeltouse); - } - - if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { - $subject = $arraydefaultmessage->topic; - $msg = $arraydefaultmessage->content; - } - if (empty($labeltosue)) { - $labeltouse = '['.$mysoc->name.'] '.$langs->trans("YourMessage"); - $msg = $langs->trans("YourMessageHasBeenReceived"); - } - - $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); - complete_substitutions_array($substitutionarray, $outputlangs, $object); - $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); - $texttosend = make_substitutions($msg, $substitutionarray, $outputlangs); - - if ($subjecttosend && $texttosend) { - $moreinheader = 'X-Dolibarr-Info: send_an_email by public/lead/new.php'."\r\n"; - - $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); - } - /*if ($result < 0) { - $error++; - setEventMessages($object->error, $object->errors, 'errors'); - }*/ - } - - if (!empty($backtopage)) { - $urlback = $backtopage; - } elseif (!empty($conf->global->PROJECT_URL_REDIRECT_LEAD)) { - $urlback = $conf->global->PROJECT_URL_REDIRECT_LEAD; - // TODO Make replacement of __AMOUNT__, etc... - } else { - $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); - } - - if (!empty($entity)) { - $urlback .= '&entity='.$entity; - } - - dol_syslog("project lead ".$proj->ref." has been created, we redirect to ".$urlback); - } else { + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { $error++; - $errmsg .= $proj->error.'
    '.join('
    ', $proj->errors); + $errmsg = $langs->trans("AlreadyTooMuchPostOnThisIPAdress"); + array_push($proj->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + } + // Create the project + if (!$error) { + $result = $proj->create($user); + if ($result > 0) { + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $object = $proj; + + if ($object->email) { + $subject = ''; + $msg = ''; + + // Send subscription email + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + // Set output language + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); + // Load traductions files required by page + $outputlangs->loadLangs(array("main", "members", "projects")); + // Get email content from template + $arraydefaultmessage = null; + $labeltouse = $conf->global->PROJECT_EMAIL_TEMPLATE_AUTOLEAD; + + if (!empty($labeltouse)) { + $arraydefaultmessage = $formmail->getEMailTemplate($db, 'project', $user, $outputlangs, 0, 1, $labeltouse); + } + + if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { + $subject = $arraydefaultmessage->topic; + $msg = $arraydefaultmessage->content; + } + if (empty($labeltosue)) { + $labeltouse = '['.$mysoc->name.'] '.$langs->trans("YourMessage"); + $msg = $langs->trans("YourMessageHasBeenReceived"); + } + + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); + $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); + $texttosend = make_substitutions($msg, $substitutionarray, $outputlangs); + + if ($subjecttosend && $texttosend) { + $moreinheader = 'X-Dolibarr-Info: send_an_email by public/lead/new.php'."\r\n"; + + $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); + } + /*if ($result < 0) { + $error++; + setEventMessages($object->error, $object->errors, 'errors'); + }*/ + } + + if (!empty($backtopage)) { + $urlback = $backtopage; + } elseif (!empty($conf->global->PROJECT_URL_REDIRECT_LEAD)) { + $urlback = $conf->global->PROJECT_URL_REDIRECT_LEAD; + // TODO Make replacement of __AMOUNT__, etc... + } else { + $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); + } + + if (!empty($entity)) { + $urlback .= '&entity='.$entity; + } + + dol_syslog("project lead ".$proj->ref." has been created, we redirect to ".$urlback); + } else { + $error++; + $errmsg .= $proj->error.'
    '.join('
    ', $proj->errors); + } + } else { + setEventMessage($errmsg, 'errors'); } } @@ -423,7 +453,7 @@ print '
    '; if (!empty($conf->global->PROJECT_NEWFORM_TEXT)) { print $langs->trans($conf->global->PROJECT_NEWFORM_TEXT)."
    \n"; } else { - print $langs->trans("FormForNewLeadDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
    \n"; + print $langs->trans("FormForNewLeadDesc", getDolGlobalString("MAIN_INFO_SOCIETE_MAIL"))."
    \n"; } print '
    '; diff --git a/htdocs/public/project/suggestbooth.php b/htdocs/public/project/suggestbooth.php index cb1b1089b0c..7005265053e 100644 --- a/htdocs/public/project/suggestbooth.php +++ b/htdocs/public/project/suggestbooth.php @@ -33,9 +33,7 @@ if (!defined('NOIPCHECK')) { if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php @@ -45,6 +43,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -55,6 +54,7 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; global $dolibarr_main_url_root; @@ -101,11 +101,11 @@ $extrafields = new ExtraFields($db); $user->loadDefaultValues(); $cactioncomm = new CActionComm($db); -$arrayofeventtype = $cactioncomm->liste_array('', 'id', '', 0, "module='booth@eventorganization'"); +$arrayofconfboothtype = $cactioncomm->liste_array('', 'id', '', 0, "module='booth@eventorganization'"); // Security check if (empty($conf->eventorganization->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Event organization not enabled'); } @@ -360,7 +360,41 @@ if (empty($reshook) && $action == 'add') { $conforbooth->datep2 = $dateend; $conforbooth->datec = dol_now(); $conforbooth->tms = dol_now(); - $resultconforbooth = $conforbooth->create($user); + $conforbooth->ip = getUserRemoteIP(); + + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(ref) as nb_confs"; + $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm"; + $sql .= " WHERE ip = '".$db->escape($conforbooth->ip)."'"; + $sql .= " AND datec > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_confs; + } + } + } + + $resultconforbooth = 0; + + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + $error++; + $errmsg .= $langs->trans("AlreadyTooMuchPostOnThisIPAdress"); + array_push($conforbooth->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + setEventMessage($errmsg, 'errors'); + } else { + $resultconforbooth = $conforbooth->create($user); + } if ($resultconforbooth<=0) { $error++; $errmsg .= $conforbooth->error; @@ -612,8 +646,8 @@ if (empty($conf->global->SOCIETE_DISABLE_STATE)) { print ''; } // Type of event -print ''."\n"; -print ''; +print ''."\n"; +print ''; // Label print ''."\n"; print ''."\n"; diff --git a/htdocs/public/project/suggestconference.php b/htdocs/public/project/suggestconference.php index 22589c941d2..9f0dd6638db 100644 --- a/htdocs/public/project/suggestconference.php +++ b/htdocs/public/project/suggestconference.php @@ -33,9 +33,7 @@ if (!defined('NOIPCHECK')) { if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php @@ -45,6 +43,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -55,6 +54,7 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; global $dolibarr_main_url_root; @@ -102,11 +102,11 @@ $extrafields = new ExtraFields($db); $user->loadDefaultValues(); $cactioncomm = new CActionComm($db); -$arrayofeventtype = $cactioncomm->liste_array('', 'id', '', 0, "module='conference@eventorganization'"); +$arrayofconfboothtype = $cactioncomm->liste_array('', 'id', '', 0, "module='conference@eventorganization'"); // Security check if (empty($conf->eventorganization->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Event organization not enabled'); } @@ -358,7 +358,41 @@ if (empty($reshook) && $action == 'add') { $conforbooth->tms = dol_now(); $conforbooth->firstname = $contact->firstname; $conforbooth->lastname = $contact->lastname; - $resultconforbooth = $conforbooth->create($user); + $conforbooth->ip = getUserRemoteIP(); + + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(ref) as nb_confs"; + $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm"; + $sql .= " WHERE ip = '".$db->escape($conforbooth->ip)."'"; + $sql .= " AND datec > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_confs; + } + } + } + + $resultconforbooth = 0; + + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + $error++; + $errmsg .= $langs->trans("AlreadyTooMuchPostOnThisIPAdress"); + array_push($conforbooth->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + setEventMessage($errmsg, 'errors'); + } else { + $resultconforbooth = $conforbooth->create($user); + } if ($resultconforbooth<=0) { $error++; $errmsg .= $conforbooth->error; @@ -463,8 +497,7 @@ print '
    '; print '
    '; print '
    '; - -dol_htmloutput_errors($errmsg); +dol_htmloutput_errors($errmsg, $errors); // Print form print '
    '."\n"; @@ -547,8 +580,8 @@ if (empty($conf->global->SOCIETE_DISABLE_STATE)) { print ''; } // Type of event -print '
    '."\n"; -print ''; +print ''."\n"; +print ''; // Label print ''."\n"; print ''."\n"; diff --git a/htdocs/public/project/viewandvote.php b/htdocs/public/project/viewandvote.php index 805eb8cfdd1..1d9fc58c810 100644 --- a/htdocs/public/project/viewandvote.php +++ b/htdocs/public/project/viewandvote.php @@ -41,6 +41,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; @@ -91,7 +92,7 @@ if ($resultproject < 0) { // Security check if (empty($conf->eventorganization->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Event organization not enabled'); } diff --git a/htdocs/public/recruitment/index.php b/htdocs/public/recruitment/index.php index ce30306eb2f..8724e65ca4f 100644 --- a/htdocs/public/recruitment/index.php +++ b/htdocs/public/recruitment/index.php @@ -34,6 +34,7 @@ if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; @@ -47,7 +48,10 @@ $langs->loadLangs(array("companies", "other", "recruitment")); // Get parameters $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); +$SECUREKEY = GETPOST("securekey"); +$entity = GETPOST('entity', 'int') ? GETPOST('entity', 'int') : $conf->entity; $backtopage = ''; +$suffix = ""; // Load variable for pagination $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; @@ -77,7 +81,7 @@ $urlwithroot = DOL_MAIN_URL_ROOT; // This is to use same domain name than curren // Security check if (empty($conf->recruitment->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Recruitment not enabled'); } @@ -167,6 +171,7 @@ if (!empty($conf->global->RECRUITMENT_IMAGE_PUBLIC_INTERFACE)) { $results = $object->fetchAll($sortfield, $sortorder, 0, 0, array('status' => 1)); +$now = dol_now(); if (is_array($results)) { if (empty($results)) { @@ -247,7 +252,7 @@ if (is_array($results)) { } } print ''; - print $tmpuser->getFullName(-1); + print $tmpuser->getFullName(); print '   '.dol_print_email($emailforcontact, 0, 0, 1, 0, 0, 'envelope'); print ''; print '
    '; @@ -272,9 +277,10 @@ if (is_array($results)) { if ($action != 'dosubmit') { - if ($found && !$error) { // We are in a management option and no error + if ($found && !$error) { + // We are in a management option and no error } else { - dol_print_error_email('ERRORNEWONLINESIGN'); + dol_print_error_email('ERRORSUBMITAPPLICATION'); } } else { // Print diff --git a/htdocs/public/recruitment/view.php b/htdocs/public/recruitment/view.php index 4516b9c0d2f..3626693ce89 100644 --- a/htdocs/public/recruitment/view.php +++ b/htdocs/public/recruitment/view.php @@ -34,6 +34,7 @@ if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '1'); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; @@ -77,7 +78,7 @@ $urlwithroot = DOL_MAIN_URL_ROOT; // This is to use same domain name than curren // Security check if (empty($conf->recruitment->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Recruitment not enabled'); } @@ -93,7 +94,7 @@ if ($cancel) { $action = 'view'; } -if ($action == "view" || $action == "presend" || $action == "close" || $action == "confirm_public_close" || $action == "add_message") { +if ($action == "view" || $action == "presend" || $action == "dosubmit") { $error = 0; $display_ticket = false; if (!strlen($ref)) { @@ -118,11 +119,11 @@ if ($action == "view" || $action == "presend" || $action == "close" || $action = } /* - if (!$error && $action == "add_message" && $display_ticket && GETPOSTISSET('btn_add_message')) + if (!$error && $action == "dosubmit") { - // TODO Add message... - $ret = $object->newMessage($user, $action, 0, 1); + // Test MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS + // TODO Create job application @@ -135,7 +136,7 @@ if ($action == "view" || $action == "presend" || $action == "close" || $action = if ($error || $errors) { setEventMessages($object->error, $object->errors, 'errors'); - if ($action == "add_message") { + if ($action == "dosubmit") { $action = 'presend'; } else { $action = ''; @@ -158,6 +159,8 @@ include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; * View */ +$now = dol_now(); + $head = ''; if (!empty($conf->global->MAIN_RECRUITMENT_CSS_URL)) { $head = ''."\n"; @@ -184,7 +187,7 @@ print ''."\n"; print '
    '."\n"; print ''."\n"; print ''."\n"; -print ''."\n"; +print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; @@ -200,7 +203,7 @@ $paramlogo = 'ONLINE_RECRUITMENT_LOGO_'.$suffix; if (!empty($conf->global->$paramlogo)) { $logosmall = $conf->global->$paramlogo; } elseif (!empty($conf->global->ONLINE_RECRUITMENT_LOGO)) { - $logosmall = $conf->global->ONLINE_RECRUITMENT_LOGO_; + $logosmall = $conf->global->ONLINE_RECRUITMENT_LOGO; } //print ''."\n"; // Define urllogo @@ -217,7 +220,13 @@ if (!empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumb if ($urllogo) { print '
    '; print '
    '; - print ''; + if (!empty($mysoc->url)) { + print ''; + } + print ''; + if (!empty($mysoc->url)) { + print ''; + } print '
    '; if (empty($conf->global->MAIN_HIDE_POWERED_BY)) { print ''; @@ -227,7 +236,7 @@ if ($urllogo) { if (!empty($conf->global->RECRUITMENT_IMAGE_PUBLIC_INTERFACE)) { print '
    '; - print ''; + print ''; print '
    '; } @@ -323,9 +332,10 @@ print "\n"; if ($action != 'dosubmit') { - if ($found && !$error) { // We are in a management option and no error + if ($found && !$error) { + // We are in a management option and no error } else { - dol_print_error_email('ERRORNEWONLINESIGN'); + dol_print_error_email('ERRORSUBMITAPPLICATION'); } } else { // Print diff --git a/htdocs/public/stripe/ipn.php b/htdocs/public/stripe/ipn.php index 6674ce9c6de..dd5b1db148f 100644 --- a/htdocs/public/stripe/ipn.php +++ b/htdocs/public/stripe/ipn.php @@ -34,6 +34,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; @@ -49,11 +50,6 @@ require_once DOL_DOCUMENT_ROOT.'/includes/stripe/stripe-php/init.php'; require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; -if (empty($conf->stripe->enabled)) { - accessforbidden('', 0, 0, 1); -} - - // You can find your endpoint's secret in your webhook settings if (isset($_GET['connect'])) { if (isset($_GET['test'])) { @@ -77,10 +73,12 @@ if (isset($_GET['connect'])) { } } +if (empty($conf->stripe->enabled)) { + httponly_accessforbidden('Module Stripe not enabled'); +} + if (empty($endpoint_secret)) { - print 'Error: Setup of module Stripe not complete for mode '.$service.'. The WEBHOOK_KEY is not defined.'; - http_response_code(400); // PHP 5.4 or greater - exit(); + httponly_accessforbidden('Error: Setup of module Stripe not complete for mode '.dol_escape_htmltag($service).'. The WEBHOOK_KEY is not defined.', 400, 1); } if (!empty($conf->global->STRIPE_USER_ACCOUNT_FOR_ACTIONS)) { @@ -89,9 +87,7 @@ if (!empty($conf->global->STRIPE_USER_ACCOUNT_FOR_ACTIONS)) { $user->fetch($conf->global->STRIPE_USER_ACCOUNT_FOR_ACTIONS); $user->getrights(); } else { - print 'Error: Setup of module Stripe not complete for mode '.$service.'. The STRIPE_USER_ACCOUNT_FOR_ACTIONS is not defined.'; - http_response_code(400); // PHP 5.4 or greater - exit(); + httponly_accessforbidden('Error: Setup of module Stripe not complete for mode '.dol_escape_htmltag($service).'. The STRIPE_USER_ACCOUNT_FOR_ACTIONS is not defined.', 400, 1); } @@ -113,12 +109,9 @@ try { $event = \Stripe\Webhook::constructEvent($payload, $sig_header, $endpoint_secret); } catch (\UnexpectedValueException $e) { // Invalid payload - http_response_code(400); // PHP 5.4 or greater - exit(); + httponly_accessforbidden('Invalid payload', 400); } catch (\Stripe\Error\SignatureVerification $e) { - // Invalid signature - http_response_code(400); // PHP 5.4 or greater - exit(); + httponly_accessforbidden('Invalid signature', 400); } // Do something with $event @@ -126,7 +119,7 @@ try { $langs->load("main"); -if (!empty($conf->multicompany->enabled) && !empty($conf->stripeconnect->enabled) && is_object($mc)) { +if (isModEnabled('multicompany') && !empty($conf->stripeconnect->enabled) && is_object($mc)) { $sql = "SELECT entity"; $sql .= " FROM ".MAIN_DB_PREFIX."oauth_token"; $sql .= " WHERE service = '".$db->escape($service)."' and tokenstring LIKE '%".$db->escape($event->account)."%'"; @@ -155,6 +148,7 @@ if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { $societeName = $conf->global->MAIN_APPLICATION_TITLE; } +top_httphead(); dol_syslog("***** Stripe IPN was called with event->type = ".$event->type); @@ -195,11 +189,10 @@ if ($event->type == 'payout.created') { $ret = $mailfile->sendfile(); - http_response_code(200); // PHP 5.4 or greater return 1; } else { $error++; - http_response_code(500); // PHP 5.4 or greater + http_response_code(500); return -1; } } elseif ($event->type == 'payout.paid') { @@ -287,7 +280,6 @@ if ($event->type == 'payout.created') { $ret = $mailfile->sendfile(); - http_response_code(200); return 1; } else { $error++; @@ -396,4 +388,4 @@ if ($event->type == 'payout.created') { // This event is deprecated. } -http_response_code(200); +// End of page. Default return HTTP code will be 200 diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php index 01910f71aaf..693b7eed59d 100644 --- a/htdocs/public/test/test_arrays.php +++ b/htdocs/public/test/test_arrays.php @@ -9,12 +9,6 @@ if (!defined('NOREQUIRESOC')) { if (!defined('NOSTYLECHECK')) { define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); // Do not check anti CSRF attack test -} -if (!defined('NOTOKENRENEWAL')) { - define('NOTOKENRENEWAL', '1'); // Do not check anti POST attack test -} //if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu //if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php //if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library @@ -22,6 +16,7 @@ if (!defined("NOLOGIN")) { define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) } +// Load Dolibarr environment require '../../main.inc.php'; // Security @@ -44,6 +39,10 @@ $usedolheader = 1; // 1 = Test inside a dolibarr page, 0 = Use hard coded header if (empty($usedolheader)) { header("Content-type: text/html; charset=UTF8"); + + // Security options + header("X-Content-Type-Options: nosniff"); // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on) + header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) ?> diff --git a/htdocs/public/test/test_badges.php b/htdocs/public/test/test_badges.php index 64ccf82345b..d3ed6476f95 100644 --- a/htdocs/public/test/test_badges.php +++ b/htdocs/public/test/test_badges.php @@ -12,6 +12,16 @@ if ($dolibarr_main_prod) { accessforbidden('Access forbidden when $dolibarr_main_prod is set to 1'); } +/* + * View + */ + +header("Content-type: text/html; charset=UTF8"); + +// Security options +header("X-Content-Type-Options: nosniff"); // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on) +header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) + ?> diff --git a/htdocs/public/test/buttons.php b/htdocs/public/test/test_buttons.php similarity index 100% rename from htdocs/public/test/buttons.php rename to htdocs/public/test/test_buttons.php diff --git a/htdocs/public/test/test_csrf.php b/htdocs/public/test/test_csrf.php index 3127a765985..6bb9679d404 100644 --- a/htdocs/public/test/test_csrf.php +++ b/htdocs/public/test/test_csrf.php @@ -9,12 +9,6 @@ if (!defined('NOREQUIRESOC')) { if (!defined('NOSTYLECHECK')) { define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); // Do not check anti CSRF attack test -} -if (!defined('NOTOKENRENEWAL')) { - define('NOTOKENRENEWAL', '1'); // Do not check anti POST attack test -} //if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu //if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php //if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library @@ -22,6 +16,7 @@ if (!defined("NOLOGIN")) { define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) } +// Load Dolibarr environment require '../../main.inc.php'; // Security @@ -34,6 +29,11 @@ if ($dolibarr_main_prod) { * View */ +header("Content-type: text/html; charset=UTF8"); + +// Security options +header("X-Content-Type-Options: nosniff"); // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on) +header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) ?> This is a form to test if a CSRF exists into a Dolibarr page.
    diff --git a/htdocs/public/test/test_exec.php b/htdocs/public/test/test_exec.php index 94a1d96462b..1c477c31295 100644 --- a/htdocs/public/test/test_exec.php +++ b/htdocs/public/test/test_exec.php @@ -14,12 +14,6 @@ if (!defined('NOREQUIRETRAN')) { if (!defined('NOSTYLECHECK')) { define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); // Do not check anti CSRF attack test -} -if (!defined('NOTOKENRENEWAL')) { - define('NOTOKENRENEWAL', '1'); // Do not check anti POST attack test -} if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu } @@ -41,17 +35,7 @@ if (!defined("NOSESSION")) { define("NOSESSION", '1'); } -print "*** SHOW SESSION STATUS
    \n"; -print "Legend:
    \n"; -print 'PHP_SESSION_DISABLED='.PHP_SESSION_DISABLED."
    \n"; -print 'PHP_SESSION_NONE='.PHP_SESSION_NONE."
    \n"; -print 'PHP_SESSION_ACTIVE='.PHP_SESSION_ACTIVE."
    \n"; -print '
    '; - -print 'session_status='.session_status().' (before main.inc.php)
    '; - -print '

    '."\n"; - +// Load Dolibarr environment require '../../main.inc.php'; // Security @@ -64,6 +48,12 @@ if ($dolibarr_main_prod) { * View */ +header("Content-type: text/html; charset=UTF8"); + +// Security options +header("X-Content-Type-Options: nosniff"); // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on) +header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) + print "*** TEST READ OF /tmp/test.txt FILE
    \n"; $out=''; @@ -85,7 +75,7 @@ print '

    '."\n"; print "*** TEST READ OF /test.txt FILE AND LS /dev/std*
    \n"; exec('cat /test.txt; ls /dev/std*; sleep 1;', $out, $ret); -print $ret."
    \n"; +print "ret=".$ret."
    \n"; print_r($out); print '
    '; @@ -97,5 +87,5 @@ print "*** TRY TO RUN CLAMDSCAN
    \n"; $ret = 0; $out = null; exec('/usr/bin/clamdscan --fdpass filethatdoesnotexists.php', $out, $ret); -print $ret."
    \n"; +print "ret=".$ret."
    \n"; print_r($out); diff --git a/htdocs/public/test/test_forms.php b/htdocs/public/test/test_forms.php index c5d25e0871e..acc9151798f 100644 --- a/htdocs/public/test/test_forms.php +++ b/htdocs/public/test/test_forms.php @@ -5,6 +5,7 @@ define("NOCSRFCHECK", 1); // We accept to go on this page from external web site define('NOSESSION', '1'); }*/ +// Load Dolibarr environment require '../../main.inc.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; diff --git a/htdocs/public/test/test_sessionlock.php b/htdocs/public/test/test_sessionlock.php index 8464ba2eb4f..6e022358ba2 100644 --- a/htdocs/public/test/test_sessionlock.php +++ b/htdocs/public/test/test_sessionlock.php @@ -14,12 +14,6 @@ if (!defined('NOREQUIRETRAN')) { if (!defined('NOSTYLECHECK')) { define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); // Do not check anti CSRF attack test -} -if (!defined('NOTOKENRENEWAL')) { - define('NOTOKENRENEWAL', '1'); // Do not check anti POST attack test -} if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu } @@ -41,6 +35,17 @@ if (!defined("NOSESSION")) { define("NOSESSION", '1'); } + +// Special +// We add header and output some content before the include of main.inc.php !! +// Because we need to So we can make +header("Content-type: text/html; charset=UTF8"); + +// Security options +header("X-Content-Type-Options: nosniff"); // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on) +header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) + + print "Legend:
    \n"; print 'PHP_SESSION_DISABLED='.PHP_SESSION_DISABLED."
    \n"; print 'PHP_SESSION_NONE='.PHP_SESSION_NONE."
    \n"; @@ -50,6 +55,7 @@ print '
    '; print 'session_status='.session_status().' (before main.inc.php)'; print '
    '; +// Load Dolibarr environment require '../../main.inc.php'; // Security diff --git a/htdocs/public/ticket/ajax/ajax.php b/htdocs/public/ticket/ajax/ajax.php index a75c796539c..2b637ce3647 100644 --- a/htdocs/public/ticket/ajax/ajax.php +++ b/htdocs/public/ticket/ajax/ajax.php @@ -33,9 +33,6 @@ if (!defined('NOREQUIREAJAX')) { if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} // Do not check anti CSRF attack test if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php index f7e6e023a7f..75111725df0 100644 --- a/htdocs/public/ticket/create_ticket.php +++ b/htdocs/public/ticket/create_ticket.php @@ -22,9 +22,10 @@ * \brief Display public form to add new ticket */ +/* We need object $user->default_values if (!defined('NOREQUIREUSER')) { define('NOREQUIREUSER', '1'); -} +}*/ if (!defined('NOTOKENRENEWAL')) { define('NOTOKENRENEWAL', '1'); } @@ -37,9 +38,6 @@ if (!defined('NOREQUIREHTML')) { if (!defined('NOLOGIN')) { define("NOLOGIN", 1); // This means this output page does not require to be logged. } -if (!defined('NOCSRFCHECK')) { - define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. -} if (!defined('NOIPCHECK')) { define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip } @@ -54,6 +52,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; @@ -61,6 +60,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -71,8 +71,13 @@ $langs->loadLangs(array('companies', 'other', 'mails', 'ticket')); // Get parameters $id = GETPOST('id', 'int'); $msg_id = GETPOST('msg_id', 'int'); +$socid = GETPOST('socid', 'int'); +$suffix = ""; $action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); + +$backtopage = ''; // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('publicnewticketcard', 'globalcard')); @@ -87,8 +92,8 @@ if (!empty($conf->global->TICKET_CREATE_THIRD_PARTY_WITH_CONTACT_IF_NOT_EXIST)) $extrafields->fetch_name_optionals_label($object->table_element); -if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); +if (!isModEnabled('ticket')) { + httponly_accessforbidden('Module Ticket not enabled'); } @@ -105,336 +110,391 @@ if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } // Add file in email form -if (empty($reshook) && GETPOST('addfile', 'alpha') && !GETPOST('save', 'alpha')) { - ////$res = $object->fetch('','',GETPOST('track_id')); - ////if($res > 0) - ////{ - include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +if (empty($reshook)) { + if ($cancel) { + $backtopage = DOL_URL_ROOT.'/public/ticket/index.php'; - // Set tmp directory TODO Use a dedicated directory for temp mails files - $vardir = $conf->ticket->dir_output; - $upload_dir_tmp = $vardir.'/temp/'.session_id(); - if (!dol_is_dir($upload_dir_tmp)) { - dol_mkdir($upload_dir_tmp); + header("Location: ".$backtopage); + exit; } - dol_add_file_process($upload_dir_tmp, 0, 0, 'addedfile', '', null, '', 0); - $action = 'create_ticket'; - ////} -} + if (GETPOST('addfile', 'alpha') && !GETPOST('save', 'alpha')) { + ////$res = $object->fetch('','',GETPOST('track_id')); + ////if($res > 0) + ////{ + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -// Remove file -if (empty($reshook) && GETPOST('removedfile', 'alpha') && !GETPOST('save', 'alpha')) { - include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + // Set tmp directory TODO Use a dedicated directory for temp mails files + $vardir = $conf->ticket->dir_output; + $upload_dir_tmp = $vardir.'/temp/'.session_id(); + if (!dol_is_dir($upload_dir_tmp)) { + dol_mkdir($upload_dir_tmp); + } - // Set tmp directory - $vardir = $conf->ticket->dir_output.'/'; - $upload_dir_tmp = $vardir.'/temp/'.session_id(); + dol_add_file_process($upload_dir_tmp, 0, 0, 'addedfile', '', null, '', 0); + $action = 'create_ticket'; + ////} + } - // TODO Delete only files that was uploaded from email form - dol_remove_file_process(GETPOST('removedfile'), 0, 0); - $action = 'create_ticket'; -} + // Remove file + if (GETPOST('removedfile', 'alpha') && !GETPOST('save', 'alpha')) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -if (empty($reshook) && $action == 'create_ticket' && GETPOST('save', 'alpha')) { - $error = 0; - $origin_email = GETPOST('email', 'alpha'); - if (empty($origin_email)) { - $error++; - array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Email"))); - $action = ''; - } else { - // Search company saved with email - $searched_companies = $object->searchSocidByEmail($origin_email, '0'); + // Set tmp directory + $vardir = $conf->ticket->dir_output.'/'; + $upload_dir_tmp = $vardir.'/temp/'.session_id(); - // Chercher un contact existant avec cette adresse email - // Le premier contact trouvé est utilisé pour déterminer le contact suivi - $contacts = $object->searchContactByEmail($origin_email); + // TODO Delete only files that was uploaded from email form + dol_remove_file_process(GETPOST('removedfile'), 0, 0); + $action = 'create_ticket'; + } - // Option to require email exists to create ticket - if (!empty($conf->global->TICKET_EMAIL_MUST_EXISTS) && !$contacts[0]->socid) { + if ($action == 'create_ticket' && GETPOST('save', 'alpha')) { + $error = 0; + $origin_email = GETPOST('email', 'alpha'); + if (empty($origin_email)) { $error++; - array_push($object->errors, $langs->trans("ErrorEmailMustExistToCreateTicket")); + array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Email"))); $action = ''; - } - } + } else { + // Search company saved with email + $searched_companies = $object->searchSocidByEmail($origin_email, '0'); - $contact_lastname = ''; - $contact_firstname = ''; - $company_name = ''; - $contact_phone = ''; - if ($with_contact) { - // set linked contact to add in form - if (is_array($contacts) && count($contacts) == 1) { - $with_contact = current($contacts); - } + // Chercher un contact existant avec cette adresse email + // Le premier contact trouvé est utilisé pour déterminer le contact suivi + $contacts = $object->searchContactByEmail($origin_email); - // check mandatory fields on contact - $contact_lastname = trim(GETPOST('contact_lastname', 'alphanohtml')); - $contact_firstname = trim(GETPOST('contact_firstname', 'alphanohtml')); - $company_name = trim(GETPOST('company_name', 'alphanohtml')); - $contact_phone = trim(GETPOST('contact_phone', 'alphanohtml')); - if (!($with_contact->id > 0)) { - // check lastname - if (empty($contact_lastname)) { - $error++; - array_push($object->errors, $langs->trans('ErrorFieldRequired', $langs->transnoentities('Lastname'))); - $action = ''; + // Ensure that contact is active and select first active contact + $cid = -1; + foreach ($contacts as $key => $contact) { + if ((int) $contact->statut == 1) { + $cid = $key; + break; + } } - // check firstname - if (empty($contact_firstname)) { + + // Option to require email exists to create ticket + if (!empty($conf->global->TICKET_EMAIL_MUST_EXISTS) && ($cid < 0 || empty($contacts[$cid]->socid))) { $error++; - array_push($object->errors, $langs->trans('ErrorFieldRequired', $langs->transnoentities('Firstname'))); + array_push($object->errors, $langs->trans("ErrorEmailMustExistToCreateTicket")); $action = ''; } } - } - if (!GETPOST("subject", "restricthtml")) { - $error++; - array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Subject"))); - $action = ''; - } - if (!GETPOST("message", "restricthtml")) { - $error++; - array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Message"))); - $action = ''; - } + $contact_lastname = ''; + $contact_firstname = ''; + $company_name = ''; + $contact_phone = ''; + if ($with_contact) { + // set linked contact to add in form + if (is_array($contacts) && count($contacts) == 1) { + $with_contact = current($contacts); + } - // Check email address - if (!empty($origin_email) && !isValidEmail($origin_email)) { - $error++; - array_push($object->errors, $langs->trans("ErrorBadEmailAddress", $langs->transnoentities("email"))); - $action = ''; - } + // check mandatory fields on contact + $contact_lastname = trim(GETPOST('contact_lastname', 'alphanohtml')); + $contact_firstname = trim(GETPOST('contact_firstname', 'alphanohtml')); + $company_name = trim(GETPOST('company_name', 'alphanohtml')); + $contact_phone = trim(GETPOST('contact_phone', 'alphanohtml')); + if (!($with_contact->id > 0)) { + // check lastname + if (empty($contact_lastname)) { + $error++; + array_push($object->errors, $langs->trans('ErrorFieldRequired', $langs->transnoentities('Lastname'))); + $action = ''; + } + // check firstname + if (empty($contact_firstname)) { + $error++; + array_push($object->errors, $langs->trans('ErrorFieldRequired', $langs->transnoentities('Firstname'))); + $action = ''; + } + } + } - // Check Captcha code if is enabled - if (!empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA)) { - $sessionkey = 'dol_antispam_value'; - $ok = (array_key_exists($sessionkey, $_SESSION) === true && (strtolower($_SESSION[$sessionkey]) === strtolower(GETPOST('code', 'restricthtml')))); - if (!$ok) { + if (!GETPOST("subject", "restricthtml")) { $error++; - array_push($object->errors, $langs->trans("ErrorBadValueForCode")); + array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Subject"))); $action = ''; } - } - - if (!$error) { - $object->db->begin(); - - $object->track_id = generate_random_id(16); - - $object->subject = GETPOST("subject", "restricthtml"); - $object->message = GETPOST("message", "restricthtml"); - $object->origin_email = $origin_email; - - $object->type_code = GETPOST("type_code", 'aZ09'); - $object->category_code = GETPOST("category_code", 'aZ09'); - $object->severity_code = GETPOST("severity_code", 'aZ09'); - - if (!is_object($user)) { - $user = new User($db); + if (!GETPOST("message", "restricthtml")) { + $error++; + array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Message"))); + $action = ''; } - // create third-party with contact - $usertoassign = 0; - if ($with_contact && !($with_contact->id > 0)) { - $company = new Societe($db); - if (!empty($company_name)) { - $company->name = $company_name; - } else { - $company->particulier = 1; - $company->name = dolGetFirstLastname($contact_firstname, $contact_lastname); - } - $result = $company->create($user); - if ($result < 0) { + // Check email address + if (!empty($origin_email) && !isValidEmail($origin_email)) { + $error++; + array_push($object->errors, $langs->trans("ErrorBadEmailAddress", $langs->transnoentities("email"))); + $action = ''; + } + + // Check Captcha code if is enabled + if (!empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA_TICKET)) { + $sessionkey = 'dol_antispam_value'; + $ok = (array_key_exists($sessionkey, $_SESSION) === true && (strtolower($_SESSION[$sessionkey]) === strtolower(GETPOST('code', 'restricthtml')))); + if (!$ok) { $error++; - $errors = ($company->error ? array($company->error) : $company->errors); - array_push($object->errors, $errors); + array_push($object->errors, $langs->trans("ErrorBadValueForCode")); + $action = ''; + } + } + + if (!$error) { + $object->type_code = GETPOST("type_code", 'aZ09'); + $object->category_code = GETPOST("category_code", 'aZ09'); + $object->severity_code = GETPOST("severity_code", 'aZ09'); + $object->ip = getUserRemoteIP(); + + $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200); + $now = dol_now(); + $minmonthpost = dol_time_plus_duree($now, -1, "m"); + + // Calculate nb of post for IP + $nb_post_ip = 0; + if ($nb_post_max > 0) { // Calculate only if there is a limit to check + $sql = "SELECT COUNT(ref) as nb_tickets"; + $sql .= " FROM ".MAIN_DB_PREFIX."ticket"; + $sql .= " WHERE ip = '".$db->escape($object->ip)."'"; + $sql .= " AND datec > '".$db->idate($minmonthpost)."'"; + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { + $i++; + $obj = $db->fetch_object($resql); + $nb_post_ip = $obj->nb_tickets; + } + } + } + + $object->track_id = generate_random_id(16); + + $object->db->begin(); + + $object->subject = GETPOST("subject", "restricthtml"); + $object->message = GETPOST("message", "restricthtml"); + $object->origin_email = $origin_email; + + $object->type_code = GETPOST("type_code", 'aZ09'); + $object->category_code = GETPOST("category_code", 'aZ09'); + $object->severity_code = GETPOST("severity_code", 'aZ09'); + + if (!is_object($user)) { + $user = new User($db); + } + + // create third-party with contact + $usertoassign = 0; + if ($with_contact && !($with_contact->id > 0)) { + $company = new Societe($db); + if (!empty($company_name)) { + $company->name = $company_name; + } else { + $company->particulier = 1; + $company->name = dolGetFirstLastname($contact_firstname, $contact_lastname); + } + $result = $company->create($user); + if ($result < 0) { + $error++; + $errors = ($company->error ? array($company->error) : $company->errors); + array_push($object->errors, $errors); + $action = 'create_ticket'; + } + + // create contact and link to this new company + if (!$error) { + $with_contact->email = $origin_email; + $with_contact->lastname = $contact_lastname; + $with_contact->firstname = $contact_firstname; + $with_contact->socid = $company->id; + $with_contact->phone_pro = $contact_phone; + $result = $with_contact->create($user); + if ($result < 0) { + $error++; + $errors = ($with_contact->error ? array($with_contact->error) : $with_contact->errors); + array_push($object->errors, $errors); + $action = 'create_ticket'; + } else { + $contacts = array($with_contact); + } + } + } + + if (!empty($searched_companies) && is_array($searched_companies)) { + $object->fk_soc = $searched_companies[0]->id; + } + + if (is_array($contacts) && count($contacts) > 0 && $cid >= 0) { + $object->fk_soc = $contacts[$cid]->socid; + $usertoassign = $contacts[$cid]->id; + } + + $ret = $extrafields->setOptionalsFromPost(null, $object); + + // Generate new ref + $object->ref = $object->getDefaultRef(); + + $object->context['disableticketemail'] = 1; // Disable emails sent by ticket trigger when creation is done from this page, emails are already sent later + + if ($nb_post_max > 0 && $nb_post_ip >= $nb_post_max) { + $error++; + $errors = array($langs->trans("AlreadyTooMuchPostOnThisIPAdress")); + array_push($object->errors, $langs->trans("AlreadyTooMuchPostOnThisIPAdress")); $action = 'create_ticket'; } - // create contact and link to this new company if (!$error) { - $with_contact->email = $origin_email; - $with_contact->lastname = $contact_lastname; - $with_contact->firstname = $contact_firstname; - $with_contact->socid = $company->id; - $with_contact->phone_pro = $contact_phone; - $result = $with_contact->create($user); - if ($result < 0) { + $id = $object->create($user); + if ($id <= 0) { $error++; - $errors = ($with_contact->error ? array($with_contact->error) : $with_contact->errors); - array_push($object->errors, $errors); + $errors = ($object->error ? array($object->error) : $object->errors); + array_push($object->errors, $object->error ? array($object->error) : $object->errors); $action = 'create_ticket'; - } else { - $contacts = array($with_contact); } } - } - if (is_array($searched_companies)) { - $object->fk_soc = $searched_companies[0]->id; - } - - if (is_array($contacts) and count($contacts) > 0) { - $object->fk_soc = $contacts[0]->socid; - $usertoassign = $contacts[0]->id; - } - - $ret = $extrafields->setOptionalsFromPost(null, $object); - - // Generate new ref - $object->ref = $object->getDefaultRef(); - - $object->context['disableticketemail'] = 1; // Disable emails sent by ticket trigger when creation is done from this page, emails are already sent later - - $id = $object->create($user); - if ($id <= 0) { - $error++; - $errors = ($object->error ? array($object->error) : $object->errors); - array_push($object->errors, $object->error ? array($object->error) : $object->errors); - $action = 'create_ticket'; - } - - if (!$error && $id > 0) { - if ($usertoassign > 0) { - $object->add_contact($usertoassign, "SUPPORTCLI", 'external', 0); - } - } - - if (!$error) { - $object->db->commit(); - $action = "infos_success"; - } else { - $object->db->rollback(); - setEventMessages($object->error, $object->errors, 'errors'); - $action = 'create_ticket'; - } - - if (!$error) { - $res = $object->fetch($id); - if ($res) { - // Create form object - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $formmail = new FormMail($db); - - // Init to avoid errors - $filepath = array(); - $filename = array(); - $mimetype = array(); - - $attachedfiles = $formmail->get_attached_files(); - $filepath = $attachedfiles['paths']; - $filename = $attachedfiles['names']; - $mimetype = $attachedfiles['mimes']; - - // Send email to customer - - $subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNewEmailSubject', $object->ref, $object->track_id); - $message = ($conf->global->TICKET_MESSAGE_MAIL_NEW ? $conf->global->TICKET_MESSAGE_MAIL_NEW : $langs->transnoentities('TicketNewEmailBody')).'

    '; - $message .= $langs->transnoentities('TicketNewEmailBodyInfosTicket').'
    '; - - $url_public_ticket = ($conf->global->TICKET_URL_PUBLIC_INTERFACE ? $conf->global->TICKET_URL_PUBLIC_INTERFACE.'/view.php' : dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$object->track_id; - $infos_new_ticket = $langs->transnoentities('TicketNewEmailBodyInfosTrackId', ''.$object->track_id.'').'
    '; - $infos_new_ticket .= $langs->transnoentities('TicketNewEmailBodyInfosTrackUrl').'

    '; - - $message .= $infos_new_ticket; - $message .= getDolGlobalString('TICKET_MESSAGE_MAIL_SIGNATURE', $langs->transnoentities('TicketMessageMailSignatureText', $mysoc->name)); - - $sendto = GETPOST('email', 'alpha'); - - $from = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.getDolGlobalString('TICKET_NOTIFICATION_EMAIL_FROM').'>'; - $replyto = $from; - $sendtocc = ''; - $deliveryreceipt = 0; - - if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { - $old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO; - $conf->global->MAIN_MAIL_AUTOCOPY_TO = ''; + if (!$error && $id > 0) { + if ($usertoassign > 0) { + $object->add_contact($usertoassign, "SUPPORTCLI", 'external', 0); } - include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1, '', '', 'tic'.$object->id, '', 'ticket'); - if ($mailfile->error || $mailfile->errors) { - setEventMessages($mailfile->error, $mailfile->errors, 'errors'); + + if (!$error) { + $object->db->commit(); + $action = "infos_success"; } else { - $result = $mailfile->sendfile(); - } - if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { - $conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO; + $object->db->rollback(); + setEventMessages($object->error, $object->errors, 'errors'); + $action = 'create_ticket'; } - // Send email to TICKET_NOTIFICATION_EMAIL_TO - $sendto = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; - if ($sendto) { - $subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNewEmailSubjectAdmin', $object->ref, $object->track_id); - $message_admin = $langs->transnoentities('TicketNewEmailBodyAdmin', $object->track_id).'

    '; - $message_admin .= '
    • '.$langs->trans('Title').' : '.$object->subject.'
    • '; - $message_admin .= '
    • '.$langs->trans('Type').' : '.$object->type_label.'
    • '; - $message_admin .= '
    • '.$langs->trans('Category').' : '.$object->category_label.'
    • '; - $message_admin .= '
    • '.$langs->trans('Severity').' : '.$object->severity_label.'
    • '; - $message_admin .= '
    • '.$langs->trans('From').' : '.$object->origin_email.'
    • '; - // Extrafields - $extrafields->fetch_name_optionals_label($object->table_element); - if (is_array($object->array_options) && count($object->array_options) > 0) { - foreach ($object->array_options as $key => $value) { - $key = substr($key, 8); // remove "options_" - $message_admin .= '
    • '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).' : '.$extrafields->showOutputField($key, $value, '', $object->table_element).'
    • '; + if (!$error) { + $res = $object->fetch($id); + if ($res) { + // Create form object + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $formmail = new FormMail($db); + + // Init to avoid errors + $filepath = array(); + $filename = array(); + $mimetype = array(); + + $attachedfiles = $formmail->get_attached_files(); + $filepath = $attachedfiles['paths']; + $filename = $attachedfiles['names']; + $mimetype = $attachedfiles['mimes']; + + // Send email to customer + + $subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNewEmailSubject', $object->ref, $object->track_id); + $message = ($conf->global->TICKET_MESSAGE_MAIL_NEW ? $conf->global->TICKET_MESSAGE_MAIL_NEW : $langs->transnoentities('TicketNewEmailBody')).'

      '; + $message .= $langs->transnoentities('TicketNewEmailBodyInfosTicket').'
      '; + + $url_public_ticket = ($conf->global->TICKET_URL_PUBLIC_INTERFACE ? $conf->global->TICKET_URL_PUBLIC_INTERFACE.'/view.php' : dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$object->track_id; + $infos_new_ticket = $langs->transnoentities('TicketNewEmailBodyInfosTrackId', ''.$object->track_id.'').'
      '; + $infos_new_ticket .= $langs->transnoentities('TicketNewEmailBodyInfosTrackUrl').'

      '; + + $message .= $infos_new_ticket; + $message .= getDolGlobalString('TICKET_MESSAGE_MAIL_SIGNATURE', $langs->transnoentities('TicketMessageMailSignatureText', $mysoc->name)); + + $sendto = GETPOST('email', 'alpha'); + + $from = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.getDolGlobalString('TICKET_NOTIFICATION_EMAIL_FROM').'>'; + $replyto = $from; + $sendtocc = ''; + $deliveryreceipt = 0; + + if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { + $old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO; + $conf->global->MAIN_MAIL_AUTOCOPY_TO = ''; + } + include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1, '', '', 'tic'.$object->id, '', 'ticket'); + if ($mailfile->error || !empty($mailfile->errors)) { + setEventMessages($mailfile->error, $mailfile->errors, 'errors'); + } else { + $result = $mailfile->sendfile(); + } + if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { + $conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO; + } + + // Send email to TICKET_NOTIFICATION_EMAIL_TO + $sendto = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; + if ($sendto) { + $subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNewEmailSubjectAdmin', $object->ref, $object->track_id); + $message_admin = $langs->transnoentities('TicketNewEmailBodyAdmin', $object->track_id).'

      '; + $message_admin .= '
      • '.$langs->trans('Title').' : '.$object->subject.'
      • '; + $message_admin .= '
      • '.$langs->trans('Type').' : '.$object->type_label.'
      • '; + $message_admin .= '
      • '.$langs->trans('Category').' : '.$object->category_label.'
      • '; + $message_admin .= '
      • '.$langs->trans('Severity').' : '.$object->severity_label.'
      • '; + $message_admin .= '
      • '.$langs->trans('From').' : '.$object->origin_email.'
      • '; + // Extrafields + $extrafields->fetch_name_optionals_label($object->table_element); + if (is_array($object->array_options) && count($object->array_options) > 0) { + foreach ($object->array_options as $key => $value) { + $key = substr($key, 8); // remove "options_" + $message_admin .= '
      • '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).' : '.$extrafields->showOutputField($key, $value, '', $object->table_element).'
      • '; + } + } + $message_admin .= '
      '; + + $message_admin .= '

      '.$langs->trans('Message').' :
      '.$object->message.'

      '; + $message_admin .= '

      '.$langs->trans('SeeThisTicketIntomanagementInterface').'

      '; + + $from = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.$conf->global->TICKET_NOTIFICATION_EMAIL_FROM.'>'; + $replyto = $from; + + if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { + $old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO; + $conf->global->MAIN_MAIL_AUTOCOPY_TO = ''; + } + include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $mailfile = new CMailFile($subject, $sendto, $from, $message_admin, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1, '', '', 'tic'.$object->id, '', 'ticket'); + if ($mailfile->error || !empty($mailfile->errors)) { + setEventMessages($mailfile->error, $mailfile->errors, 'errors'); + } else { + $result = $mailfile->sendfile(); + } + if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { + $conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO; + } } } - $message_admin .= '
    '; - $message_admin .= '

    '.$langs->trans('Message').' :
    '.$object->message.'

    '; - $message_admin .= '

    '.$langs->trans('SeeThisTicketIntomanagementInterface').'

    '; + // Copy files into ticket directory + $destdir = $conf->ticket->dir_output.'/'.$object->ref; + if (!dol_is_dir($destdir)) { + dol_mkdir($destdir); + } + foreach ($filename as $i => $val) { + dol_move($filepath[$i], $destdir.'/'.$filename[$i], 0, 1); + $formmail->remove_attached_files($i); + } - $from = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.$conf->global->TICKET_NOTIFICATION_EMAIL_FROM.'>'; - $replyto = $from; + //setEventMessages($langs->trans('YourTicketSuccessfullySaved'), null, 'mesgs'); - if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { - $old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO; - $conf->global->MAIN_MAIL_AUTOCOPY_TO = ''; - } - include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject, $sendto, $from, $message_admin, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1, '', '', 'tic'.$object->id, '', 'ticket'); - if ($mailfile->error || $mailfile->errors) { - setEventMessages($mailfile->error, $mailfile->errors, 'errors'); - } else { - $result = $mailfile->sendfile(); - } - if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { - $conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO; - } + // Make a redirect to avoid to have ticket submitted twice if we make back + $messagetoshow = $langs->trans('MesgInfosPublicTicketCreatedWithTrackId', '{s1}', '{s2}'); + $messagetoshow = str_replace(array('{s1}', '{s2}'), array(''.$object->track_id.'', ''.$object->ref.''), $messagetoshow); + setEventMessages($messagetoshow, null, 'warnings'); + setEventMessages($langs->trans('PleaseRememberThisId'), null, 'warnings'); + + header("Location: index.php".(!empty($entity) && isModEnabled('multicompany')?'?entity='.$entity:'')); + exit; } + } else { + setEventMessages($object->error, $object->errors, 'errors'); } - - // Copy files into ticket directory - $destdir = $conf->ticket->dir_output.'/'.$object->ref; - if (!dol_is_dir($destdir)) { - dol_mkdir($destdir); - } - foreach ($filename as $i => $val) { - dol_move($filepath[$i], $destdir.'/'.$filename[$i], 0, 1); - $formmail->remove_attached_files($i); - } - - //setEventMessages($langs->trans('YourTicketSuccessfullySaved'), null, 'mesgs'); - - // Make a redirect to avoid to have ticket submitted twice if we make back - $messagetoshow = $langs->trans('MesgInfosPublicTicketCreatedWithTrackId', '{s1}', '{s2}'); - $messagetoshow = str_replace(array('{s1}', '{s2}'), array(''.$object->track_id.'', ''.$object->ref.''), $messagetoshow); - setEventMessages($messagetoshow, null, 'warnings'); - setEventMessages($langs->trans('PleaseRememberThisId'), null, 'warnings'); - header("Location: index.php".(!empty($entity) && !empty($conf->multicompany->enabled)?'?entity='.$entity:'')); - exit; } - } else { - setEventMessages($object->error, $object->errors, 'errors'); } } - /* * View */ @@ -466,6 +526,7 @@ if ($action != "infos_success") { $formticket->ispublic = 1; $formticket->withfile = 2; $formticket->action = 'create_ticket'; + $formticket->withcancel = 1; $formticket->param = array('returnurl' => $_SERVER['PHP_SELF'].($conf->entity > 1 ? '?entity='.$conf->entity : '')); @@ -478,7 +539,7 @@ if ($action != "infos_success") { print $langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentities("Ticket")); print '
    '; } else { - print '
    '.$langs->trans('TicketPublicInfoCreateTicket').'
    '; + //print '
    '.$langs->trans('TicketPublicInfoCreateTicket').'
    '; $formticket->showForm(0, 'edit', 1, $with_contact); } } diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php index f7abe746832..84652017b37 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -22,9 +22,6 @@ * \brief Public page to add and manage ticket */ -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); } @@ -45,6 +42,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; @@ -59,9 +57,10 @@ $langs->loadLangs(array('companies', 'other', 'ticket', 'errors')); // Get parameters $track_id = GETPOST('track_id', 'alpha'); $action = GETPOST('action', 'aZ09'); +$suffix = ""; -if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); +if (!isModEnabled('ticket')) { + httponly_accessforbidden('Module Ticket not enabled'); } @@ -82,11 +81,14 @@ $arrayofcss = array('/ticket/css/styles.css.php'); llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); print '
    '; -print '

    '.($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")).'

    '; + +print '

    '.(getDolGlobalString("TICKET_PUBLIC_TEXT_HOME", ''.$langs->trans("TicketPublicDesc")).'

    ').'

    '; +print '
    '; + print ''; print '
    '; diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index a15beff2856..c929c2486bd 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -21,10 +21,6 @@ * \brief Public file to list tickets */ -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} -// Do not check anti CSRF attack test if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); } @@ -47,6 +43,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; @@ -60,9 +57,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; $langs->loadLangs(array("companies", "other", "ticket")); // Get parameters -$track_id = GETPOST('track_id', 'alpha'); $action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); + +$track_id = GETPOST('track_id', 'alpha'); $email = strtolower(GETPOST('email', 'alpha')); +$suffix = ""; +$moreforfilter = ""; if (GETPOST('btn_view_ticket_list')) { unset($_SESSION['track_id_customer']); @@ -80,8 +81,8 @@ $object = new Ticket($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('ticketpubliclist', 'globalcard')); -if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); +if (!isModEnabled('ticket')) { + httponly_accessforbidden('Module Ticket not enabled'); } @@ -90,6 +91,13 @@ if (empty($conf->ticket->enabled)) { * Actions */ +if ($cancel) { + $backtopage = DOL_URL_ROOT.'/public/ticket/index.php'; + + header("Location: ".$backtopage); + exit; +} + if ($action == "view_ticketlist") { $error = 0; $display_ticket_list = false; @@ -185,9 +193,10 @@ $arrayofcss = array('/ticket/css/styles.css.php'); llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -print '
    '; if ($action == "view_ticketlist") { + print '
    '; + print '
    '; if ($display_ticket_list) { // Filters @@ -221,7 +230,7 @@ if ($action == "view_ticketlist") { $filter = array(); $param = '&action=view_ticketlist'; - if (!empty($entity) && !empty($conf->multicompany->enabled)) { + if (!empty($entity) && isModEnabled('multicompany')) { $param .= '&entity='.$entity; } @@ -242,7 +251,7 @@ if ($action == "view_ticketlist") { 't.fk_user_create' => array('label' => $langs->trans("Author"), 'checked' => 1), 't.fk_user_assign' => array('label' => $langs->trans("AssignedTo"), 'checked' => 0), - //'t.entity'=>array('label'=>$langs->trans("Entity"), 'checked'=>1, 'enabled'=>(! empty($conf->multicompany->enabled) && empty($conf->multicompany->transverse_mode))), + //'t.entity'=>array('label'=>$langs->trans("Entity"), 'checked'=>1, 'enabled'=>(isModEnabled('multicompany') && empty($conf->multicompany->transverse_mode))), //'t.datec' => array('label' => $langs->trans("DateCreation"), 'checked' => 0, 'position' => 500), //'t.tms' => array('label' => $langs->trans("DateModificationShort"), 'checked' => 0, 'position' => 2) //'t.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000), @@ -348,25 +357,25 @@ if ($action == "view_ticketlist") { } } $sql .= " FROM ".MAIN_DB_PREFIX."ticket as t"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_type as type ON type.code=t.type_code"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_category as category ON category.code=t.category_code"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_severity as severity ON severity.code=t.severity_code"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid=t.fk_soc"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as uc ON uc.rowid=t.fk_user_create"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as ua ON ua.rowid=t.fk_user_assign"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact as ec ON ec.element_id=t.rowid"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_contact as tc ON ec.fk_c_type_contact=tc.rowid"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople sp ON ec.fk_socpeople=sp.rowid"; - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_type as type ON type.code = t.type_code"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_category as category ON category.code = t.category_code"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_severity as severity ON severity.code = t.severity_code"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as uc ON uc.rowid = t.fk_user_create"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as ua ON ua.rowid = t.fk_user_assign"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact as ec ON ec.element_id = t.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_contact as tc ON ec.fk_c_type_contact = tc.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople sp ON ec.fk_socpeople = sp.rowid"; + if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."ticket_extrafields as ef on (t.rowid = ef.fk_object)"; } $sql .= " WHERE t.entity IN (".getEntity('ticket').")"; $sql .= " AND ((tc.source = 'external'"; $sql .= " AND tc.element='".$db->escape($object->element)."'"; - $sql .= " AND tc.active=1)"; - $sql .= " OR (sp.email='".$db->escape($_SESSION['email_customer'])."'"; - $sql .= " OR s.email='".$db->escape($_SESSION['email_customer'])."'"; - $sql .= " OR t.origin_email='".$db->escape($_SESSION['email_customer'])."'))"; + $sql .= " AND tc.active=1"; + $sql .= " AND sp.email='".$db->escape($_SESSION['email_customer'])."')"; // email found into an external contact + $sql .= " OR s.email='".$db->escape($_SESSION['email_customer'])."'"; // or email of the linked company + $sql .= " OR t.origin_email='".$db->escape($_SESSION['email_customer'])."')"; // or email of the requester // Manage filter if (!empty($filter)) { foreach ($filter as $key => $value) { @@ -401,7 +410,7 @@ if ($action == "view_ticketlist") { print_barre_liste($langs->trans('TicketList'), $page, '/public/ticket/list.php', $param, $sortfield, $sortorder, '', $num, $num_total, 'ticket'); // Search bar - print ''."\n"; + print ''."\n"; print ''; print ''; print ''; @@ -688,7 +697,7 @@ if ($action == "view_ticketlist") { print '
    '.$langs->trans("EventType").'*'.FORM::selectarray('eventtype', $arrayofeventtype, $eventtype).'
    '.$langs->trans("Format").'*'.Form::selectarray('eventtype', $arrayofconfboothtype, $eventtype, 1).'
    '.$langs->trans("LabelOfBooth").'*
    '.$langs->trans("EventType").'*'.FORM::selectarray('eventtype', $arrayofeventtype, $eventtype).'
    '.$langs->trans("Format").'*'.Form::selectarray('eventtype', $arrayofconfboothtype, $eventtype, 1).'
    '.$langs->trans("LabelOfconference").'*
    '; print ''; - print '"; + print ""; +} // End of page htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix, $object); diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index 29a850128ed..edf2504fb0c 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -22,10 +22,6 @@ * \brief Public file to show one ticket */ -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} -// Do not check anti CSRF attack test if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); } @@ -48,6 +44,7 @@ if (is_numeric($entity)) { define("DOLENTITY", $entity); } +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; @@ -61,10 +58,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; $langs->loadLangs(array("companies", "other", "ticket")); // Get parameters -$track_id = GETPOST('track_id', 'alpha'); -$cancel = GETPOST('cancel', 'alpha'); $action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); + +$track_id = GETPOST('track_id', 'alpha'); $email = GETPOST('email', 'email'); +$suffix = ""; if (GETPOST('btn_view_ticket')) { unset($_SESSION['email_customer']); @@ -75,8 +74,8 @@ if (isset($_SESSION['email_customer'])) { $object = new ActionsTicket($db); -if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); +if (!isModEnabled('ticket')) { + httponly_accessforbidden('Module Ticket not enabled'); } @@ -85,6 +84,8 @@ if (empty($conf->ticket->enabled)) { */ if ($cancel) { + $backtopage = DOL_URL_ROOT.'/public/ticket/index.php'; + if (!empty($backtopage)) { header("Location: ".$backtopage); exit; @@ -170,7 +171,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a if ($object->dao->close($user)) { setEventMessages($langs->trans('TicketMarkedAsClosed'), null, 'mesgs'); - $url = 'view.php?action=view_ticket&track_id='.GETPOST('track_id', 'alpha').(!empty($entity) && !empty($conf->multicompany->enabled)?'&entity='.$entity:''); + $url = 'view.php?action=view_ticket&track_id='.GETPOST('track_id', 'alpha').(!empty($entity) && isModEnabled('multicompany')?'&entity='.$entity:''); header("Location: ".$url); exit; } else { @@ -205,7 +206,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $triggersendname = 'TICKET_SENTBYMAIL'; $paramname = 'id'; $autocopy = 'MAIN_MAIL_AUTOCOPY_TICKET_TO'; // used to know the automatic BCC to add -$trackid = 'tic'.$object->id; +if (!empty($object->id)) $trackid = 'tic'.$object->id; include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; @@ -234,7 +235,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a if ($display_ticket) { // Confirmation close if ($action == 'close') { - print $form->formconfirm($_SERVER["PHP_SELF"]."?track_id=".$track_id.(!empty($entity) && !empty($conf->multicompany->enabled)?'&entity='.$entity:''), $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1); + print $form->formconfirm($_SERVER["PHP_SELF"]."?track_id=".$track_id.(!empty($entity) && isModEnabled('multicompany')?'&entity='.$entity:''), $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1); } print '
    '; @@ -347,7 +348,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $formticket->id = $object->dao->id; $formticket->param = array('track_id' => $object->dao->track_id, 'fk_user_create' => '-1', - 'returnurl' => DOL_URL_ROOT.'/public/ticket/view.php'.(!empty($entity) && !empty($conf->multicompany->enabled)?'?entity='.$entity:'')); + 'returnurl' => DOL_URL_ROOT.'/public/ticket/view.php'.(!empty($entity) && isModEnabled('multicompany')?'?entity='.$entity:'')); $formticket->withfile = 2; $formticket->withcancel = 1; @@ -356,7 +357,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a } if ($action != 'presend') { - print '
    '; + print ''; print ''; print ''; print ''; @@ -371,11 +372,11 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a if ($object->dao->fk_statut < Ticket::STATUS_CLOSED) { // New message - print ''; + print ''; // Close ticket if ($object->dao->fk_statut >= Ticket::STATUS_NOT_READ && $object->dao->fk_statut < Ticket::STATUS_CLOSED) { - print ''; + print ''; } } @@ -386,13 +387,13 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a print load_fiche_titre($langs->trans('TicketMessagesList'), '', 'conversation'); $object->viewTicketMessages(false, true, $object->dao); } else { - print ''; + print ''; } } else { print '
    '.$langs->trans("TicketPublicMsgViewLogIn").'
    '; print '
    '; - print ''; + print ''; print ''; print ''; @@ -401,11 +402,13 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a print '

    '; print '

    '; - print ''; + print ''; print '

    '; print '

    '; print ''; + print '   '; + print ''; print "

    \n"; print "\n"; diff --git a/htdocs/public/users/view.php b/htdocs/public/users/view.php new file mode 100644 index 00000000000..ba1a6dd0908 --- /dev/null +++ b/htdocs/public/users/view.php @@ -0,0 +1,419 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/public/users/view.php + * \ingroup user + * \brief Public file to user profile + */ + +if (!defined('NOLOGIN')) { + define("NOLOGIN", 1); // This means this output page does not require to be logged. +} +if (!defined('NOCSRFCHECK')) { + define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. +} +if (!defined('NOIPCHECK')) { + define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +} +if (!defined('NOBROWSERNOTIF')) { + define('NOBROWSERNOTIF', '1'); +} + +// Load Dolibarr environment +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/vcard.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("companies", "other", "recruitment")); + +// Get parameters +$action = GETPOST('action', 'aZ09'); +$mode = GETPOST('mode', 'aZ09'); +$cancel = GETPOST('cancel', 'alpha'); +$backtopage = ''; + +$id = GETPOST('id', 'int'); +$securekey = GETPOST('securekey', 'alpha'); +$suffix = GETPOST('suffix'); + +$object = new User($db); +$object->fetch($id, '', '', 1); + +// Define $urlwithroot +//$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); +//$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file +$urlwithroot = DOL_MAIN_URL_ROOT; // This is to use same domain name than current. For Paypal payment, we can use internal URL like localhost. + +// Security check +global $dolibarr_main_instance_unique_id; +$encodedsecurekey = dol_hash($dolibarr_main_instance_unique_id.'uservirtualcard'.$object->id.'-'.$object->login, 'md5'); +if ($encodedsecurekey != $securekey) { + httponly_accessforbidden('Bad value for securitykey or public profile not enabled'); +} + +if (!getDolUserInt('USER_ENABLE_PUBLIC', 0, $object)) { + httponly_accessforbidden('Bad value for securitykey or public profile not enabled'); +} + + +/* + * Actions + */ + +if ($cancel) { + if (!empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + $action = 'view'; +} + + +/* + * View + */ + +$form = new Form($db); +$company = $mysoc; + +if ($mode == 'vcard') { + // We create VCard + $v = new vCard(); + + $output = $v->buildVCardString($object, $company, $langs); + + $filename = trim(urldecode($v->getFileName())); // "Nom prenom.vcf" + $filenameurlencoded = dol_sanitizeFileName(urlencode($filename)); + //$filename = dol_sanitizeFileName($filename); + + top_httphead('text/x-vcard; name="'.$filename.'"'); + + header("Content-Disposition: attachment; filename=\"".$filename."\""); + header("Content-Length: ".dol_strlen($output)); + header("Connection: close"); + + print $output; + + $db->close(); + + exit; +} + +$head = ''; +if (!empty($conf->global->MAIN_USER_PROFILE_CSS_URL)) { + $head = ''."\n"; +} + +$conf->dol_hide_topmenu = 1; +$conf->dol_hide_leftmenu = 1; + +if (!getDolUserInt('USER_ENABLE_PUBLIC', 0, $object)) { + $langs->load("errors"); + print '
    '.$langs->trans('ErrorPublicInterfaceNotEnabled').'
    '; + $db->close(); + exit(); +} + +$arrayofjs = array(); +$arrayofcss = array(); + +$replacemainarea = (empty($conf->dol_hide_leftmenu) ? '
    ' : '').'
    '; +llxHeader($head, $langs->trans("UserProfile").' '.$object->getFullName($langs), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1, 1); + +print ''."\n"; +print '
    '."\n"; +print '
    '."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''; +print "\n"; +print ''."\n"; + +$modulepart = 'userphotopublic'; +$imagesize = 'small'; +$dir = $conf->user->dir_output; +$email = $object->email; + +// Show logo (search order: logo defined by ONLINE_SIGN_LOGO_suffix, then ONLINE_SIGN_LOGO_, then small company logo, large company logo, theme logo, common logo) +// Define logo and logosmall +$logo = ''; +$logosmall = ''; +if (!empty($object->photo)) { + if (dolIsAllowedForPreview($object->photo)) { + $logosmall = get_exdir(0, 0, 0, 0, $object, 'user').'photos/'.getImageFileNameForSize($object->photo, '_small'); + $logo = get_exdir(0, 0, 0, 0, $object, 'user').'photos/'.$object->photo; + //$originalfile = get_exdir(0, 0, 0, 0, $object, 'user').'photos/'.$object->photo; + } +} +//print ''."\n"; +// Define urllogo +$urllogo = ''; +$urllogofull = ''; +if (!empty($logosmall) && is_readable($conf->user->dir_output.'/'.$logosmall)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$conf->entity.'&securekey='.urlencode($securekey).'&file='.urlencode($logosmall); + $urllogofull = $dolibarr_main_url_root.'/viewimage.php?modulepart='.$modulepart.'&entity='.$conf->entity.'&securekey='.urlencode($securekey).'&file='.urlencode($logosmall); +} elseif (!empty($logo) && is_readable($conf->user->dir_output.'/'.$logo)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$conf->entity.'&securekey='.urlencode($securekey).'&file='.urlencode($logo); + $urllogofull = $dolibarr_main_url_root.'/viewimage.php?modulepart='.$modulepart.'&entity='.$conf->entity.'&securekey='.urlencode($securekey).'&file='.urlencode($logo); +} + +// Output html code for logo +print '
    '; +print '
    '; + +// Name +print '
    '.$object->getFullName($langs).'
    '; +// User position +if ($object->job && !getDolUserInt('USER_PUBLIC_HIDE_JOBPOSITION', 0, $object)) { + print '
    '; + print dol_escape_htmltag($object->job); + print '
    '; +} + + +print '
    '; +/*if (empty($conf->global->MAIN_HIDE_POWERED_BY)) { + print ''; +}*/ +print '
    '; + + +if (!empty($conf->global->USER_IMAGE_PUBLIC_INTERFACE)) { + print '
    '; + print ''; + print '
    '; +} + +$urlforqrcode = $object->getOnlineVirtualCardUrl('vcard'); + +$socialnetworksdict = getArrayOfSocialNetworks(); + + + +// Show barcode +$showbarcode = GETPOST('nobarcode') ? 0 : 1; +if ($showbarcode) { + print '
    '; + print '
    '; + print ''; + print '
    '; + print '
    '; +} + + +// Me +// Show photo +if ($urllogo) { + print ''; +} + + +$usersection = ''; + +// User email +if ($object->email && !getDolUserInt('USER_PUBLIC_HIDE_EMAIL', 0, $object)) { + $usersection .= '
    '; + $usersection .= dol_print_email($object->email, 0, 0, 1, 0, 1, 1); + $usersection .= '
    '; +} + +// User url +if ($object->url && !getDolUserInt('USER_PUBLIC_HIDE_URL', 0, $object)) { + $usersection .= '
    '; + $usersection .= img_picto('', 'globe', 'class="pictofixedwidth"'); + $usersection .= dol_print_url($object->url, '_blank', 0, 0, ''); + $usersection .= '
    '; +} + +// User phone +if ($object->office_phone && !getDolUserInt('USER_PUBLIC_HIDE_OFFICE_PHONE', 0, $object)) { + $usersection .= '
    '; + $usersection .= img_picto('', 'phone', 'class="pictofixedwidth"'); + $usersection .= dol_print_phone($object->office_phone, $object->country_code, 0, $mysoc->id, 'tel', ' ', 0, ''); + $usersection .= '
    '; +} +if ($object->office_fax && !getDolUserInt('USER_PUBLIC_HIDE_OFFICE_FAX', 0, $object)) { + $usersection .= '
    '; + $usersection .= img_picto('', 'phoning_fax', 'class="pictofixedwidth"'); + $usersection .= dol_print_phone($object->office_fax, $object->country_code, 0, $mysoc->id, 'fax', ' ', 0, ''); + $usersection .= '
    '; +} +if ($object->user_mobile && !getDolUserInt('USER_PUBLIC_HIDE_USER_MOBILE', 0, $object)) { + $usersection .= '
    '; + $usersection .= img_picto('', 'phone', 'class="pictofixedwidth"'); + $usersection .= dol_print_phone($object->user_mobile, $object->country_code, 0, $mysoc->id, 'tel', ' ', 0, ''); + $usersection .= '
    '; +} + +// Social networks +if (!empty($object->socialnetworks) && is_array($object->socialnetworks) && count($object->socialnetworks) > 0) { + if (!getDolUserInt('USER_PUBLIC_HIDE_SOCIALNETWORKS', 0, $object)) { + foreach ($object->socialnetworks as $key => $value) { + if ($value) { + $usersection .= '
    '.dol_print_socialnetworks($value, 0, $mysoc->id, $key, $socialnetworksdict).'
    '; + } + } + } +} + +if ($usersection) { + print ''."\n"; + + // Output payment summary form + print ''."\n"; + + print '
    '; + + print '
    '; + + print $usersection; + + print '
    '."\n"; + print "\n"; + + print '
    '."\n"; +} + + +if (!getDolUserInt('USER_PUBLIC_HIDE_COMPANY', 0, $object)) { + $companysection = ''; + + if ($mysoc->email) { + $companysection .= '
    '; + $companysection .= img_picto('', 'email', 'class="pictofixedwidth"'); + $companysection .= dol_print_email($mysoc->email, 0, 0, 1); + $companysection .= '
    '; + } + + if ($mysoc->url) { + $companysection .= '
    '; + $companysection .= img_picto('', 'globe', 'class="pictofixedwidth"'); + $companysection .= dol_print_url($mysoc->url, '_blank', 0, 0, ''); + $companysection .= '
    '; + } + + if ($mysoc->phone) { + $companysection .= '
    '; + $companysection .= img_picto('', 'phone', 'class="pictofixedwidth"'); + $companysection .= dol_print_phone($mysoc->phone, $mysoc->country_code, 0, $mysoc->id, 'tel', ' ', 0, ''); + $companysection .= '
    '; + } + if ($mysoc->fax) { + $companysection .= '
    '; + $companysection .= img_picto('', 'phoning_fax', 'class="pictofixedwidth"'); + $companysection .= dol_print_phone($mysoc->fax, $mysoc->country_code, 0, $mysoc->id, 'fax', ' ', 0, ''); + $companysection .= '
    '; + } + + // Social networks + if (!empty($mysoc->socialnetworks) && is_array($mysoc->socialnetworks) && count($mysoc->socialnetworks) > 0) { + foreach ($mysoc->socialnetworks as $key => $value) { + if ($value) { + $companysection .= '
    '.dol_print_socialnetworks($value, 0, $mysoc->id, $key, $socialnetworksdict).'
    '; + } + } + } + + // Show logo (search order: logo defined by ONLINE_SIGN_LOGO_suffix, then ONLINE_SIGN_LOGO_, then small company logo, large company logo, theme logo, common logo) + // Define logo and logosmall + $logosmall = $mysoc->logo_squarred_small ? $mysoc->logo_squarred_small : $mysoc->logo_small; + $logo = $mysoc->logo_squarred ? $mysoc->logo_squarred : $mysoc->logo; + $paramlogo = 'ONLINE_USER_LOGO_'.$suffix; + if (!empty($conf->global->$paramlogo)) { + $logosmall = $conf->global->$paramlogo; + } elseif (!empty($conf->global->ONLINE_USER_LOGO)) { + $logosmall = $conf->global->ONLINE_USER_LOGO; + } + //print ''."\n"; + // Define urllogo + $urllogo = ''; + $urllogofull = ''; + if (!empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('logos/thumbs/'.$logosmall); + $urllogofull = $dolibarr_main_url_root.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('logos/thumbs/'.$logosmall); + } elseif (!empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('logos/'.$logo); + $urllogofull = $dolibarr_main_url_root.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('logos/'.$logo); + } + // Output html code for logo + if ($urllogo) { + print '
    '; + if (!empty($mysoc->url)) { + print ''; + } + print ''; + if (!empty($mysoc->url)) { + print ''; + } + print '
    '; + } + print ''."\n"; + + // Output payment summary form + print ''."\n"; + + print '
    '; + + print '
    '; + + // Add company info + if ($mysoc->name) { + print '
    '; + print $mysoc->name; + print '
    '; + print '
    '; + } + + print $companysection; + + print '
    '."\n"; + print "\n"; + + print '
    '."\n"; +} + + +// Description +$text = getDolUserString('USER_PUBLIC_MORE', '', $object); +print $text; + + +print ''."\n"; +print '
    '."\n"; +print '
    '; + + +//htmlPrintOnlinePaymentFooter($mysoc, $langs); + +print ''; + +llxFooter('', 'public'); + +$db->close(); diff --git a/htdocs/reception/card.php b/htdocs/reception/card.php index 241a8427e8f..e20cd531565 100644 --- a/htdocs/reception/card.php +++ b/htdocs/reception/card.php @@ -33,6 +33,7 @@ * \brief Card of a reception */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; @@ -44,30 +45,28 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php'; -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { +if (isModEnabled("product") || isModEnabled("service")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; } -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; -} -if (!empty($conf->productbatch->enabled)) { +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; +if (isModEnabled('productbatch')) { require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php'; } -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } $langs->loadLangs(array("receptions", "companies", "bills", 'deliveries', 'orders', 'stocks', 'other', 'propal', 'sendings')); -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load('incoterm'); } -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { $langs->load('productbatch'); } @@ -101,11 +100,13 @@ $hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (!empty($ $hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); $object = new Reception($db); +$objectorder = new CommandeFournisseur($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); $extrafields->fetch_name_optionals_label($object->table_element_line); +$extrafields->fetch_name_optionals_label($objectorder->table_element_line); // Load object. Make an object->fetch include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once @@ -127,7 +128,7 @@ if ($id > 0 || !empty($ref)) { } // Linked documents - if ($origin == 'order_supplier' && $object->$typeobject->id && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled))) { + if ($origin == 'order_supplier' && $object->$typeobject->id && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order"))) { $origin_id = $object->$typeobject->id; $objectsrc = new CommandeFournisseur($db); $objectsrc->fetch($object->$typeobject->id); @@ -140,7 +141,7 @@ if ($user->socid) { $socid = $user->socid; } -if (!empty($conf->reception->enabled) || $origin == 'reception' || empty($origin)) { +if (isModEnabled("reception") || $origin == 'reception' || empty($origin)) { $result = restrictedArea($user, 'reception', $id); } else { // We do not use the reception module, so we test permission on the supplier orders @@ -151,7 +152,7 @@ if (!empty($conf->reception->enabled) || $origin == 'reception' || empty($origin } } -if (!empty($conf->reception->enabled)) { +if (isModEnabled("reception")) { $permissiontoread = $user->rights->reception->lire; $permissiontoadd = $user->rights->reception->creer; $permissiondellink = $user->rights->reception->creer; // Used by the include of actions_dellink.inc.php @@ -196,10 +197,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -216,7 +217,7 @@ if (empty($reshook)) { } // Set incoterm - if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled) && $permissiontoadd) { + if ($action == 'set_incoterms' && isModEnabled('incoterm') && $permissiontoadd) { $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); } @@ -357,6 +358,7 @@ if (empty($reshook)) { $batch = "batch".$i; $cost_price = "cost_price".$i; + //if (GETPOST($qty, 'int') > 0 || (GETPOST($qty, 'int') == 0 && getDolGlobalString('RECEPTION_GETS_ALL_ORDER_PRODUCTS')) || (GETPOST($qty, 'int') < 0 && getDolGlobalString('RECEPTION_ALLOW_NEGATIVE_QTY'))) { if (GETPOST($qty, 'int') > 0 || (GETPOST($qty, 'int') == 0 && $conf->global->RECEPTION_GETS_ALL_ORDER_PRODUCTS)) { $ent = "entl".$i; @@ -434,10 +436,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -463,7 +465,7 @@ if (empty($reshook)) { } // TODO add alternative status - /*} elseif ($action == 'reopen' && (! empty($user->rights->reception->creer) || ! empty($user->rights->reception->reception_advance->validate))) { + /*} elseif ($action == 'reopen' && (!empty($user->rights->reception->creer) || !empty($user->rights->reception->reception_advance->validate))) { $result = $object->setStatut(0); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); @@ -529,10 +531,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $reception->thirdparty->default_lang; } if (!empty($newlang)) { @@ -624,7 +626,7 @@ if (empty($reshook)) { $line->qty = GETPOST($qty, 'int'); $line->comment = GETPOST($comment, 'alpha'); - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $batch = "batch".$line_id; $dlc = "dlc".$line_id; $dluo = "dluo".$line_id; @@ -664,10 +666,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -710,7 +712,7 @@ llxHeader('', $langs->trans('Reception'), 'Reception'); $form = new Form($db); $formfile = new FormFile($db); $formproduct = new FormProduct($db); -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { $formproject = new FormProjets($db); } @@ -749,7 +751,7 @@ if ($action == 'create') { $author = new User($db); $author->fetch($objectsrc->user_author_id); - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { $entrepot = new Entrepot($db); } @@ -768,10 +770,10 @@ if ($action == 'create') { // Ref print '
    '; - if ($origin == 'supplierorder' && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled))) { + if ($origin == 'supplierorder' && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order"))) { print $langs->trans("RefOrder").''.img_object($langs->trans("ShowOrder"), 'order').' '.$objectsrc->ref; } - if ($origin == 'propal' && !empty($conf->propal->enabled)) { + if ($origin == 'propal' && isModEnabled("propal")) { print $langs->trans("RefProposal").''.img_object($langs->trans("ShowProposal"), 'propal').' '.$objectsrc->ref; } print '
    '; @@ -1036,10 +1038,10 @@ if ($action == 'create') { print ' / '.$langs->trans("Reset").')'; } print ''.$langs->trans("Warehouse").' ('.$langs->trans("Stock").')'.$langs->trans("batch_number").''.$langs->trans("SellByDate").''; if ($line->product_type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { // Type of product need stock change ? // Show warehouse combo list @@ -1214,7 +1216,7 @@ if ($action == 'create') { print '
    '; // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { print ''; print '\n"; print ''; } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { print ''; print '\n"; print ''; } - if ($typeobject == 'CommandeFournisseur' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'CommandeFournisseur' && $object->$typeobject->id && isModEnabled("propal")) { print ''; print ''; - print '\n"; + print '\n"; print ''; // Delivery date planned @@ -1629,7 +1618,7 @@ if ($action == 'create') { print ''; // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; + print ''; } print '
    '; print $langs->trans("RefOrder").''; @@ -1437,7 +1426,7 @@ if ($action == 'create') { print "
    '; print $langs->trans("RefProposal").''; @@ -1445,7 +1434,7 @@ if ($action == 'create') { print "
    '; print $langs->trans("SupplierOrder").''; @@ -1456,7 +1445,7 @@ if ($action == 'create') { // Date creation print '
    '.$langs->trans("DateCreation").''.dol_print_date($object->date_creation, "dayhour")."'.dol_print_date($object->date_creation, "dayhour", "tzuserrel")."
    '; print ''; @@ -1719,11 +1708,11 @@ if ($action == 'create') { } else { print ''; } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { print ''; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; } } @@ -1739,7 +1728,7 @@ if ($action == 'create') { $var = false; - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $object->fetch_thirdparty(); $outputlangs = $langs; $newlang = ''; @@ -1814,7 +1803,7 @@ if ($action == 'create') { // Predefined product or service if ($lines[$i]->fk_product > 0) { // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $prod = new Product($db); $prod->fetch($lines[$i]->fk_product); $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product->label; @@ -1826,10 +1815,10 @@ if ($action == 'create') { if (!array_key_exists($lines[$i]->fk_commandefourndet, $arrayofpurchaselinealreadyoutput)) { $text = $lines[$i]->product->getNomUrl(1); $text .= ' - '.$label; - $description = (!empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($lines[$i]->product->description)); + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($lines[$i]->product->description)); print $form->textwithtooltip($text, $description, 3, '', '', $i); print_date_range(!empty($lines[$i]->date_start) ? $lines[$i]->date_start : 0, !empty($lines[$i]->date_end) ? $lines[$i]->date_end : 0); - if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { print (!empty($lines[$i]->product->description) && $lines[$i]->description != $lines[$i]->product->description) ? '
    '.dol_htmlentitiesbr($lines[$i]->description) : ''; } } @@ -1890,7 +1879,7 @@ if ($action == 'create') { print ' - '.$receptionline_var['qty']; $htmltext = $langs->trans("DateValidation").' : '.(empty($receptionline_var['date_valid']) ? $langs->trans("Draft") : dol_print_date($receptionline_var['date_valid'], 'dayhour')); - if (!empty($conf->stock->enabled) && $receptionline_var['warehouse'] > 0) { + if (isModEnabled('stock') && $receptionline_var['warehouse'] > 0) { $warehousestatic->fetch($receptionline_var['warehouse']); $htmltext .= '
    '.$langs->trans("From").' : '.$warehousestatic->getNomUrl(1, '', 0, 1); } @@ -1905,7 +1894,7 @@ if ($action == 'create') { if ($action == 'editline' && $lines[$i]->id == $line_id) { // edit mode print ''; + print ''; } print '
    '; print $langs->trans('IncotermLabel'); @@ -1687,7 +1676,7 @@ if ($action == 'create') { } if ($action == 'editline') { $editColspan = 3; - if (empty($conf->stock->enabled)) { + if (!isModEnabled('stock')) { $editColspan--; } if (empty($conf->productbatch->enabled)) { @@ -1699,10 +1688,10 @@ if ($action == 'create') { } else { print $langs->trans("QtyReceived").' - '; } - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { print $langs->trans("WarehouseSource").' - '; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print $langs->trans("Batch"); } print ''.$langs->trans("QtyReceived").''.$langs->trans("WarehouseSource").''.$langs->trans("Batch").''; - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { if ($lines[$i]->fk_product > 0) { print ''; print ''; @@ -1945,7 +1934,7 @@ if ($action == 'create') { print ''; // Warehouse source - if (!empty($conf->stock->enabled)) { + if (isModEnabled('stock')) { if ($lines[$i]->fk_entrepot > 0) { $entrepot = new Entrepot($db); $entrepot->fetch($lines[$i]->fk_entrepot); @@ -1959,26 +1948,30 @@ if ($action == 'create') { } // Batch number managment - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if (isset($lines[$i]->batch)) { print ''; - print ''; + print $detail . ''; } else { print ''; } @@ -2103,9 +2096,9 @@ if ($action == 'create') { } // Create bill - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) && ($object->statut == Reception::STATUS_VALIDATED || $object->statut == Reception::STATUS_CLOSED)) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) && ($object->statut == Reception::STATUS_VALIDATED || $object->statut == Reception::STATUS_CLOSED)) { if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { - // TODO show button only if (! empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)) + // TODO show button only if (!empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)) // If we do that, we must also make this option official. print ''.$langs->trans("CreateBill").''; } @@ -2117,7 +2110,7 @@ if ($action == 'create') { if ($user->rights->reception->creer && $object->statut > 0 && !$object->billed) { $label = "Close"; $paramaction = 'classifyclosed'; // = Transferred/Received // Label here should be "Close" or "ClassifyBilled" if we decided to make bill on receptions instead of orders - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) && !empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)) { // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ? + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && !empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)) { // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ? $label = "ClassifyBilled"; $paramaction = 'classifybilled'; } diff --git a/htdocs/reception/class/api_receptions.class.php b/htdocs/reception/class/api_receptions.class.php new file mode 100644 index 00000000000..473650161e2 --- /dev/null +++ b/htdocs/reception/class/api_receptions.class.php @@ -0,0 +1,721 @@ + + * Copyright (C) 2022 Laurent Destailleur + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + use Luracast\Restler\RestException; + + require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; + +/** + * API class for receptions + * + * @access protected + * @class DolibarrApiAccess {@requires user,external} + */ +class Receptions extends DolibarrApi +{ + + /** + * @var array $FIELDS Mandatory fields, checked when create and update object + */ + public static $FIELDS = array( + 'socid', + 'origin_id', + 'origin_type', + ); + + /** + * @var Reception $reception {@type Reception} + */ + public $reception; + + /** + * Constructor + */ + public function __construct() + { + global $db, $conf; + $this->db = $db; + $this->reception = new Reception($this->db); + } + + /** + * Get properties of a reception object + * + * Return an array with reception informations + * + * @param int $id ID of reception + * @return array|mixed data without useless information + * + * @throws RestException + */ + public function get($id) + { + if (!DolibarrApiAccess::$user->rights->reception->lire) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if (!$result) { + throw new RestException(404, 'Reception not found'); + } + + if (!DolibarrApi::_checkAccessToResource('reception', $this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $this->reception->fetchObjectLinked(); + return $this->_cleanObjectDatas($this->reception); + } + + + + /** + * List receptions + * + * Get a list of receptions + * + * @param string $sortfield Sort field + * @param string $sortorder Sort order + * @param int $limit Limit for list + * @param int $page Page number + * @param string $thirdparty_ids Thirdparty ids to filter receptions of (example '1' or '1,2,3') {@pattern /^[0-9,]*$/i} + * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')" + * @return array Array of reception objects + * + * @throws RestException + */ + public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') + { + global $db, $conf; + + if (!DolibarrApiAccess::$user->rights->reception->lire) { + throw new RestException(401); + } + + $obj_ret = array(); + + // case of external user, $thirdparty_ids param is ignored and replaced by user's socid + $socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids; + + // If the internal user must only see his customers, force searching by him + $search_sale = 0; + if (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) { + $search_sale = DolibarrApiAccess::$user->id; + } + + $sql = "SELECT t.rowid"; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) { + $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) + } + $sql .= " FROM ".MAIN_DB_PREFIX."reception as t"; + + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale + } + + $sql .= ' WHERE t.entity IN ('.getEntity('reception').')'; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) { + $sql .= " AND t.fk_soc = sc.fk_soc"; + } + if ($socids) { + $sql .= " AND t.fk_soc IN (".$this->db->sanitize($socids).")"; + } + if ($search_sale > 0) { + $sql .= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale + } + // Insert sale filter + if ($search_sale > 0) { + $sql .= " AND sc.fk_user = ".((int) $search_sale); + } + // Add sql filters + if ($sqlfilters) { + $errormessage = ''; + if (!DolibarrApi::_checkFilters($sqlfilters, $errormessage)) { + throw new RestException(503, 'Error when validating parameter sqlfilters -> '.$errormessage); + } + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + } + + $sql .= $this->db->order($sortfield, $sortorder); + if ($limit) { + if ($page < 0) { + $page = 0; + } + $offset = $limit * $page; + + $sql .= $this->db->plimit($limit + 1, $offset); + } + + dol_syslog("API Rest request"); + $result = $this->db->query($sql); + + if ($result) { + $num = $this->db->num_rows($result); + $min = min($num, ($limit <= 0 ? $num : $limit)); + $i = 0; + while ($i < $min) { + $obj = $this->db->fetch_object($result); + $reception_static = new Reception($this->db); + if ($reception_static->fetch($obj->rowid)) { + $obj_ret[] = $this->_cleanObjectDatas($reception_static); + } + $i++; + } + } else { + throw new RestException(503, 'Error when retrieve commande list : '.$this->db->lasterror()); + } + if (!count($obj_ret)) { + throw new RestException(404, 'No reception found'); + } + return $obj_ret; + } + + /** + * Create reception object + * + * @param array $request_data Request data + * @return int ID of reception + */ + public function post($request_data = null) + { + if (!DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401, "Insuffisant rights"); + } + // Check mandatory fields + $result = $this->_validate($request_data); + + foreach ($request_data as $field => $value) { + $this->reception->$field = $value; + } + if (isset($request_data["lines"])) { + $lines = array(); + foreach ($request_data["lines"] as $line) { + array_push($lines, (object) $line); + } + $this->reception->lines = $lines; + } + + if ($this->reception->create(DolibarrApiAccess::$user) < 0) { + throw new RestException(500, "Error creating reception", array_merge(array($this->reception->error), $this->reception->errors)); + } + + return $this->reception->id; + } + + // /** + // * Get lines of an reception + // * + // * @param int $id Id of reception + // * + // * @url GET {id}/lines + // * + // * @return int + // */ + /* + public function getLines($id) + { + if(! DolibarrApiAccess::$user->rights->reception->lire) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if( ! $result ) { + throw new RestException(404, 'Reception not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('reception',$this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + $this->reception->getLinesArray(); + $result = array(); + foreach ($this->reception->lines as $line) { + array_push($result,$this->_cleanObjectDatas($line)); + } + return $result; + } + */ + + // /** + // * Add a line to given reception + // * + // * @param int $id Id of reception to update + // * @param array $request_data ShipmentLine data + // * + // * @url POST {id}/lines + // * + // * @return int + // */ + /* + public function postLine($id, $request_data = null) + { + if(! DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if ( ! $result ) { + throw new RestException(404, 'Reception not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('reception',$this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $request_data = (object) $request_data; + + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); + + $updateRes = $this->reception->addline( + $request_data->desc, + $request_data->subprice, + $request_data->qty, + $request_data->tva_tx, + $request_data->localtax1_tx, + $request_data->localtax2_tx, + $request_data->fk_product, + $request_data->remise_percent, + $request_data->info_bits, + $request_data->fk_remise_except, + 'HT', + 0, + $request_data->date_start, + $request_data->date_end, + $request_data->product_type, + $request_data->rang, + $request_data->special_code, + $fk_parent_line, + $request_data->fk_fournprice, + $request_data->pa_ht, + $request_data->label, + $request_data->array_options, + $request_data->fk_unit, + $request_data->origin, + $request_data->origin_id, + $request_data->multicurrency_subprice + ); + + if ($updateRes > 0) { + return $updateRes; + + } + return false; + }*/ + + // /** + // * Update a line to given reception + // * + // * @param int $id Id of reception to update + // * @param int $lineid Id of line to update + // * @param array $request_data ShipmentLine data + // * + // * @url PUT {id}/lines/{lineid} + // * + // * @return object + // */ + /* + public function putLine($id, $lineid, $request_data = null) + { + if (! DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if ( ! $result ) { + throw new RestException(404, 'Reception not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('reception',$this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $request_data = (object) $request_data; + + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); + + $updateRes = $this->reception->updateline( + $lineid, + $request_data->desc, + $request_data->subprice, + $request_data->qty, + $request_data->remise_percent, + $request_data->tva_tx, + $request_data->localtax1_tx, + $request_data->localtax2_tx, + 'HT', + $request_data->info_bits, + $request_data->date_start, + $request_data->date_end, + $request_data->product_type, + $request_data->fk_parent_line, + 0, + $request_data->fk_fournprice, + $request_data->pa_ht, + $request_data->label, + $request_data->special_code, + $request_data->array_options, + $request_data->fk_unit, + $request_data->multicurrency_subprice + ); + + if ($updateRes > 0) { + $result = $this->get($id); + unset($result->line); + return $this->_cleanObjectDatas($result); + } + return false; + }*/ + + /** + * Delete a line to given reception + * + * + * @param int $id Id of reception to update + * @param int $lineid Id of line to delete + * + * @url DELETE {id}/lines/{lineid} + * + * @return int + * + * @throws RestException 401 + * @throws RestException 404 + */ + public function deleteLine($id, $lineid) + { + if (!DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if (!$result) { + throw new RestException(404, 'Reception not found'); + } + + if (!DolibarrApi::_checkAccessToResource('reception', $this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + // TODO Check the lineid $lineid is a line of ojbect + + $updateRes = $this->reception->deleteline(DolibarrApiAccess::$user, $lineid); + if ($updateRes > 0) { + return $this->get($id); + } else { + throw new RestException(405, $this->reception->error); + } + } + + /** + * Update reception general fields (won't touch lines of reception) + * + * @param int $id Id of reception to update + * @param array $request_data Datas + * + * @return int + */ + public function put($id, $request_data = null) + { + if (!DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if (!$result) { + throw new RestException(404, 'Reception not found'); + } + + if (!DolibarrApi::_checkAccessToResource('reception', $this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + foreach ($request_data as $field => $value) { + if ($field == 'id') { + continue; + } + $this->reception->$field = $value; + } + + if ($this->reception->update(DolibarrApiAccess::$user) > 0) { + return $this->get($id); + } else { + throw new RestException(500, $this->reception->error); + } + } + + /** + * Delete reception + * + * @param int $id Reception ID + * + * @return array + */ + public function delete($id) + { + if (!DolibarrApiAccess::$user->rights->reception->supprimer) { + throw new RestException(401); + } + $result = $this->reception->fetch($id); + if (!$result) { + throw new RestException(404, 'Reception not found'); + } + + if (!DolibarrApi::_checkAccessToResource('reception', $this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + if (!$this->reception->delete(DolibarrApiAccess::$user)) { + throw new RestException(500, 'Error when deleting reception : '.$this->reception->error); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Reception deleted' + ) + ); + } + + /** + * Validate a reception + * + * This may record stock movements if module stock is enabled and option to + * decrease stock on reception is on. + * + * @param int $id Reception ID + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * + * @url POST {id}/validate + * + * @return array + * \todo An error 403 is returned if the request has an empty body. + * Error message: "Forbidden: Content type `text/plain` is not supported." + * Workaround: send this in the body + * { + * "notrigger": 0 + * } + */ + public function validate($id, $notrigger = 0) + { + if (!DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + $result = $this->reception->fetch($id); + if (!$result) { + throw new RestException(404, 'Reception not found'); + } + + if (!DolibarrApi::_checkAccessToResource('reception', $this->reception->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $result = $this->reception->valid(DolibarrApiAccess::$user, $notrigger); + if ($result == 0) { + throw new RestException(304, 'Error nothing done. May be object is already validated'); + } + if ($result < 0) { + throw new RestException(500, 'Error when validating Reception: '.$this->reception->error); + } + + // Reload reception + $result = $this->reception->fetch($id); + + $this->reception->fetchObjectLinked(); + return $this->_cleanObjectDatas($this->reception); + } + + + // /** + // * Classify the reception as invoiced + // * + // * @param int $id Id of the reception + // * + // * @url POST {id}/setinvoiced + // * + // * @return int + // * + // * @throws RestException 400 + // * @throws RestException 401 + // * @throws RestException 404 + // * @throws RestException 405 + // */ + /* + public function setinvoiced($id) + { + + if(! DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + if(empty($id)) { + throw new RestException(400, 'Reception ID is mandatory'); + } + $result = $this->reception->fetch($id); + if( ! $result ) { + throw new RestException(404, 'Reception not found'); + } + + $result = $this->reception->classifyBilled(DolibarrApiAccess::$user); + if( $result < 0) { + throw new RestException(400, $this->reception->error); + } + return $result; + } + */ + + + // /** + // * Create a reception using an existing order. + // * + // * @param int $orderid Id of the order + // * + // * @url POST /createfromorder/{orderid} + // * + // * @return int + // * @throws RestException 400 + // * @throws RestException 401 + // * @throws RestException 404 + // * @throws RestException 405 + // */ + /* + public function createShipmentFromOrder($orderid) + { + + require_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php'; + + if(! DolibarrApiAccess::$user->rights->reception->lire) { + throw new RestException(401); + } + if(! DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + if(empty($proposalid)) { + throw new RestException(400, 'Order ID is mandatory'); + } + + $order = new Commande($this->db); + $result = $order->fetch($proposalid); + if( ! $result ) { + throw new RestException(404, 'Order not found'); + } + + $result = $this->reception->createFromOrder($order, DolibarrApiAccess::$user); + if( $result < 0) { + throw new RestException(405, $this->reception->error); + } + $this->reception->fetchObjectLinked(); + return $this->_cleanObjectDatas($this->reception); + } + */ + + /** + * Close a reception (Classify it as "Delivered") + * + * @param int $id Reception ID + * @param int $notrigger Disabled triggers + * + * @url POST {id}/close + * + * @return int + */ + public function close($id, $notrigger = 0) + { + if (!DolibarrApiAccess::$user->rights->reception->creer) { + throw new RestException(401); + } + + $result = $this->reception->fetch($id); + if (!$result) { + throw new RestException(404, 'Reception not found'); + } + + if (!DolibarrApi::_checkAccessToResource('reception', $this->commande->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $result = $this->reception->setClosed(); + if ($result == 0) { + throw new RestException(304, 'Error nothing done. May be object is already closed'); + } + if ($result < 0) { + throw new RestException(500, 'Error when closing Order: '.$this->commande->error); + } + + // Reload reception + $result = $this->reception->fetch($id); + + $this->reception->fetchObjectLinked(); + + return $this->_cleanObjectDatas($this->reception); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Clean sensible object datas + * + * @param Object $object Object to clean + * @return Object Object with cleaned properties + */ + protected function _cleanObjectDatas($object) + { + // phpcs:enable + $object = parent::_cleanObjectDatas($object); + + unset($object->thirdparty); // id already returned + + unset($object->note); + unset($object->address); + unset($object->barcode_type); + unset($object->barcode_type_code); + unset($object->barcode_type_label); + unset($object->barcode_type_coder); + + if (!empty($object->lines) && is_array($object->lines)) { + foreach ($object->lines as $line) { + unset($line->tva_tx); + unset($line->vat_src_code); + unset($line->total_ht); + unset($line->total_ttc); + unset($line->total_tva); + unset($line->total_localtax1); + unset($line->total_localtax2); + unset($line->remise_percent); + } + } + + return $object; + } + + /** + * Validate fields before create or update object + * + * @param array $data Array with data to verify + * @return array + * @throws RestException + */ + private function _validate($data) + { + $reception = array(); + foreach (Shipments::$FIELDS as $field) { + if (!isset($data[$field])) { + throw new RestException(400, "$field field missing"); + } + $reception[$field] = $data[$field]; + } + return $reception; + } +} diff --git a/htdocs/reception/class/reception.class.php b/htdocs/reception/class/reception.class.php index 958528e2fe7..03ed28a2200 100644 --- a/htdocs/reception/class/reception.class.php +++ b/htdocs/reception/class/reception.class.php @@ -11,6 +11,7 @@ * Copyright (C) 2015 Claudio Aschieri * Copyright (C) 2016-2022 Ferran Marcet * Copyright (C) 2018 Quentin Vial-Gouteyron + * Copyright (C) 2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,10 +36,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; require_once DOL_DOCUMENT_ROOT."/core/class/commonobjectline.class.php"; require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php'; -if (!empty($conf->propal->enabled)) { +if (isModEnabled("propal")) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; } @@ -50,6 +51,11 @@ class Reception extends CommonObject { use CommonIncoterm; + /** + * @var string code + */ + public $code = ""; + /** * @var string element name */ @@ -71,12 +77,6 @@ class Reception extends CommonObject public $socid; public $ref_supplier; - /** - * @var int Ref int - * @deprecated - */ - public $ref_int; - public $brouillon; public $entrepot_id; public $tracking_number; @@ -116,9 +116,16 @@ class Reception extends CommonObject public $meths; public $listmeths; // List of carriers + /** + * @var CommandeFournisseurDispatch[] + */ public $lines = array(); + // detail of lot and qty = array(id in llx_commande_fournisseur_dispatch, batch, qty) + // We can use this to know warehouse planned to be used for each lot. + public $detail_batch; + const STATUS_DRAFT = 0; const STATUS_VALIDATED = 1; const STATUS_CLOSED = 2; @@ -149,11 +156,11 @@ class Reception extends CommonObject $this->statuts[2] = 'StatusReceptionProcessed'; // List of short language codes for status - $this->statutshorts = array(); - $this->statutshorts[-1] = 'StatusReceptionCanceledShort'; - $this->statutshorts[0] = 'StatusReceptionDraftShort'; - $this->statutshorts[1] = 'StatusReceptionValidatedShort'; - $this->statutshorts[2] = 'StatusReceptionProcessedShort'; + $this->statuts_short = array(); + $this->statuts_short[-1] = 'StatusReceptionCanceledShort'; + $this->statuts_short[0] = 'StatusReceptionDraftShort'; + $this->statuts_short[1] = 'StatusReceptionValidatedShort'; + $this->statuts_short[2] = 'StatusReceptionProcessedShort'; } /** @@ -365,13 +372,10 @@ class Reception extends CommonObject * @param int $id Id of object to load * @param string $ref Ref of object * @param string $ref_ext External reference of object - * @param string $notused Internal reference of other object * @return int >0 if OK, 0 if not found, <0 if KO */ - public function fetch($id, $ref = '', $ref_ext = '', $notused = '') + public function fetch($id, $ref = '', $ref_ext = '') { - global $conf; - // Check parameters if (empty($id) && empty($ref) && empty($ref_ext)) { return -1; @@ -398,9 +402,6 @@ class Reception extends CommonObject if ($ref_ext) { $sql .= " AND e.ref_ext='".$this->db->escape($ref_ext)."'"; } - if ($notused) { - $sql .= " AND e.ref_int='".$this->db->escape($notused)."'"; - } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $result = $this->db->query($sql); @@ -456,8 +457,8 @@ class Reception extends CommonObject $this->brouillon = 1; } - $file = $conf->reception->dir_output."/".get_exdir($this->id, 2, 0, 0, $this, 'reception')."/".$this->id.".pdf"; - $this->pdf_filename = $file; + //$file = $conf->reception->dir_output."/".get_exdir(0, 0, 0, 1, $this, 'reception')."/".$this->id.".pdf"; + //$this->pdf_filename = $file; // Tracking url $this->getUrlTrackingStatus($obj->tracking_number); @@ -558,7 +559,7 @@ class Reception extends CommonObject } // If stock increment is done on reception (recommanded choice) - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -583,7 +584,7 @@ class Reception extends CommonObject $qty = $obj->qty; - if ($qty <= 0) { + if ($qty == 0 || ($qty < 0 && !getDolGlobalInt('RECEPTION_ALLOW_NEGATIVE_QTY'))) { continue; } dol_syslog(get_class($this)."::valid movement index ".$i." ed.rowid=".$obj->rowid." edb.rowid=".$obj->edbrowid); @@ -600,7 +601,7 @@ class Reception extends CommonObject $inventorycode = ''; $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionValidatedInDolibarr", $numref), '', '', '', '', 0, $inventorycode); - if ($result < 0) { + if (intval($result) < 0) { $error++; $this->errors[] = $mouvS->error; $this->errors = array_merge($this->errors, $mouvS->errors); @@ -614,7 +615,7 @@ class Reception extends CommonObject $inventorycode = ''; $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionValidatedInDolibarr", $numref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, '', 0, $inventorycode); - if ($result < 0) { + if (intval($result) < 0) { $error++; $this->errors[] = $mouvS->error; $this->errors = array_merge($this->errors, $mouvS->errors); @@ -836,7 +837,7 @@ class Reception extends CommonObject } $fk_product = 0; - if (!empty($conf->stock->enabled) && !empty($supplierorderline->fk_product)) { + if (isModEnabled('stock') && !empty($supplierorderline->fk_product)) { $fk_product = $supplierorderline->fk_product; if (!($entrepot_id > 0) && empty($conf->global->STOCK_WAREHOUSE_NOT_REQUIRED_FOR_RECEPTIONS)) { @@ -846,6 +847,21 @@ class Reception extends CommonObject } } + // Check batch is set + $product = new Product($this->db); + $product->fetch($fk_product); + if (isModEnabled('productbatch')) { + $langs->load("errors"); + if (!empty($product->status_batch) && empty($batch)) { + $this->error = $langs->trans('ErrorProductNeedBatchNumber', $product->ref); + return -1; + } elseif (empty($product->status_batch) && !empty($batch)) { + $this->error = $langs->trans('ErrorProductDoesNotNeedBatchNumber', $product->ref); + return -1; + } + } + unset($product); + // extrafields $line->array_options = $supplierorderline->array_options; if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options) > 0) { @@ -864,6 +880,7 @@ class Reception extends CommonObject $line->status = 1; $line->cost_price = $cost_price; $line->fk_reception = $this->id; + $this->lines[$num] = $line; return $num; @@ -1161,9 +1178,11 @@ class Reception extends CommonObject $line = new CommandeFournisseurDispatch($this->db); $line->fetch($obj->rowid); + + // TODO Remove or keep this ? $line->fetch_product(); - $sql_commfourndet = 'SELECT qty, ref, label, description, tva_tx, vat_src_code, subprice, multicurrency_subprice, remise_percent'; + $sql_commfourndet = 'SELECT qty, ref, label, description, tva_tx, vat_src_code, subprice, multicurrency_subprice, remise_percent, total_ht, total_ttc, total_tva'; $sql_commfourndet .= ' FROM '.MAIN_DB_PREFIX.'commande_fournisseurdet'; $sql_commfourndet .= ' WHERE rowid = '.((int) $line->fk_commandefourndet); $sql_commfourndet .= ' ORDER BY rang'; @@ -1181,6 +1200,9 @@ class Reception extends CommonObject $line->remise_percent = $obj->remise_percent; $line->label = !empty($obj->label) ? $obj->label : $line->product->label; $line->ref_supplier = $obj->ref; + $line->total_ht = $obj->total_ht; + $line->total_ttc = $obj->total_ttc; + $line->total_tva = $obj->total_tva; } else { $line->qty_asked = 0; $line->description = ''; @@ -1195,6 +1217,14 @@ class Reception extends CommonObject $this->total_ttc += $pu_ht + $tva; + if (isModEnabled('productbatch') && !empty($line->batch)) { + $detail_batch = new stdClass(); + $detail_batch->eatby = $line->eatby; + $detail_batch->sellby = $line->sellby; + $detail_batch->batch = $line->batch; + $detail_batch->qty = $line->qty; + $line->detail_batch[] = $detail_batch; + } $this->lines[] = $line; } @@ -1288,7 +1318,7 @@ class Reception extends CommonObject global $langs; $labelStatus = $langs->transnoentitiesnoconv($this->statuts[$status]); - $labelStatusShort = $langs->transnoentitiesnoconv($this->statutshorts[$status]); + $labelStatusShort = $langs->transnoentitiesnoconv($this->statuts_short[$status]); $statusType = 'status'.$status; if ($status == self::STATUS_VALIDATED) { @@ -1318,25 +1348,6 @@ class Reception extends CommonObject dol_syslog(get_class($this)."::initAsSpecimen"); - // Load array of products prodids - $num_prods = 0; - $prodids = array(); - $sql = "SELECT rowid"; - $sql .= " FROM ".MAIN_DB_PREFIX."product"; - $sql .= " WHERE entity IN (".getEntity('product').")"; - $sql .= $this->db->plimit(100); - - $resql = $this->db->query($sql); - if ($resql) { - $num_prods = $this->db->num_rows($resql); - $i = 0; - while ($i < $num_prods) { - $i++; - $row = $this->db->fetch_row($resql); - $prodids[$i] = $row[0]; - } - } - $order = new CommandeFournisseur($this->db); $order->initAsSpecimen(); @@ -1545,7 +1556,7 @@ class Reception extends CommonObject // If stock increment is done on closing - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -1632,23 +1643,8 @@ class Reception extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Classify the reception as invoiced (used when WORKFLOW_BILL_ON_RECEPTION is on) - * - * @deprecated - * @see setBilled() - * @return int <0 if ko, >0 if ok - */ - public function set_billed() - { - // phpcs:enable - dol_syslog(get_class($this)."::set_billed is deprecated, use setBilled instead", LOG_NOTICE); - return $this->setBilled(); - } - - /** - * Classify the reception as invoiced (used when WORKFLOW_BILL_ON_RECEPTION is on) + * Classify the reception as invoiced (used when WORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE is on) * * @return int <0 if ko, >0 if ok */ @@ -1710,7 +1706,7 @@ class Reception extends CommonObject $this->billed = 0; // If stock increment is done on closing - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $numref = $this->ref; $langs->load("agenda"); @@ -1763,7 +1759,7 @@ class Reception extends CommonObject // We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record $inventorycode = ''; - $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionUnClassifyCloseddInDolibarr", $numref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, '', $obj->fk_origin_stock, $inventorycode); + $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionUnClassifyCloseddInDolibarr", $numref), '', $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, $obj->fk_origin_stock, $inventorycode); if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; @@ -1842,7 +1838,7 @@ class Reception extends CommonObject dol_syslog(__METHOD__, LOG_DEBUG); if ($this->db->query($sql)) { // If stock increment is done on closing - if (!$error && !empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION)) { + if (!$error && isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION)) { require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; $langs->load("agenda"); @@ -1895,7 +1891,7 @@ class Reception extends CommonObject // We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record $inventorycode = ''; - $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionBackToDraftInDolibarr", $this->ref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, '', 0, $inventorycode); + $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionBackToDraftInDolibarr", $this->ref), '', $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, 0, $inventorycode); if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; @@ -1991,32 +1987,32 @@ class Reception extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array('reception'); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** * Function used to replace a product id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old product id - * @param int $dest_id New product id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceProduct(DoliDB $db, $origin_id, $dest_id) + public static function replaceProduct(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'commande_fournisseur_dispatch' ); - return CommonObject::commonReplaceProduct($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceProduct($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/reception/class/receptionstats.class.php b/htdocs/reception/class/receptionstats.class.php index 872d6845a96..7a8562b706d 100644 --- a/htdocs/reception/class/receptionstats.class.php +++ b/htdocs/reception/class/receptionstats.class.php @@ -69,7 +69,7 @@ class ReceptionStats extends Stats $this->where .= " c.fk_statut > 0"; // Not draft and not cancelled //$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity; - $this->where .= " AND c.entity = ".$conf->entity; + $this->where .= " AND c.entity IN (".getEntity('reception').")"; if (empty($user->rights->societe->client->voir) && !$this->socid) { $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } @@ -82,12 +82,13 @@ class ReceptionStats extends Stats } /** - * Return reception number by month for a year + * Return reception number by month for a year * - * @param int $year Year to scan - * @return array Array with number by month + * @param int $year Year to scan + * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month + * @return array Array with number by month */ - public function getNbByMonth($year) + public function getNbByMonth($year, $format = 0) { global $user; @@ -101,7 +102,7 @@ class ReceptionStats extends Stats $sql .= " GROUP BY dm"; $sql .= $this->db->order('dm', 'DESC'); - $res = $this->_getNbByMonth($year, $sql); + $res = $this->_getNbByMonth($year, $sql, $format); return $res; } @@ -127,6 +128,54 @@ class ReceptionStats extends Stats return $this->_getNbByYear($sql); } + /** + * Return the orders amount by month for a year + * + * @param int $year Year to scan + * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month + * @return array Array with amount by month + */ + public function getAmountByMonth($year, $format = 0) + { + global $user; + + $sql = "SELECT date_format(c.date_valid,'%m') as dm, SUM(c.".$this->field.")"; + $sql .= " FROM ".$this->from; + if (empty($user->rights->societe->client->voir) && !$this->socid) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + } + $sql .= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + $res = $this->_getAmountByMonth($year, $sql, $format); + return $res; + } + + /** + * Return the orders amount average by month for a year + * + * @param int $year year for stats + * @return array array with number by month + */ + public function getAverageByMonth($year) + { + global $user; + + $sql = "SELECT date_format(c.date_valid,'%m') as dm, AVG(c.".$this->field.")"; + $sql .= " FROM ".$this->from; + if (empty($user->rights->societe->client->voir) && !$this->socid) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + } + $sql .= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAverageByMonth($year, $sql); + } + /** * Return nb, total and average * diff --git a/htdocs/reception/contact.php b/htdocs/reception/contact.php index a7cec515e29..a03460b1e49 100644 --- a/htdocs/reception/contact.php +++ b/htdocs/reception/contact.php @@ -23,6 +23,7 @@ * \brief Onglet de gestion des contacts de reception */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; @@ -30,10 +31,12 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; $langs->loadLangs(array("orders", "receptions", "companies")); @@ -54,7 +57,7 @@ if ($id > 0 || !empty($ref)) { } // Linked documents - if ($origin == 'order_supplier' && $object->$typeobject->id && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled))) { + if ($origin == 'order_supplier' && $object->$typeobject->id && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order"))) { $objectsrc = new CommandeFournisseur($db); $objectsrc->fetch($object->$typeobject->id); } @@ -74,6 +77,20 @@ if ($origin == 'reception') { } } +if (isModEnabled("reception")) { + $permissiontoread = $user->rights->reception->lire; + $permissiontoadd = $user->rights->reception->creer; + $permissiondellink = $user->rights->reception->creer; // Used by the include of actions_dellink.inc.php + $permissiontovalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->reception->creer)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->reception->reception_advance->validate))); + $permissiontodelete = $user->rights->reception->supprimer; +} else { + $permissiontoread = $user->rights->fournisseur->commande->receptionner; + $permissiontoadd = $user->rights->fournisseur->commande->receptionner; + $permissiondellink = $user->rights->fournisseur->commande->receptionner; // Used by the include of actions_dellink.inc.php + $permissiontovalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->commande->receptionner)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->commande_advance->check))); + $permissiontodelete = $user->rights->fournisseur->commande->receptionner; +} + /* * Actions @@ -145,39 +162,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; + $morehtmlref .= '
    '; if (0) { // Do not change on reception - if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $permissiontoadd) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on reception, so we will use the project or source object instead - // TODO Add project on reception - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -190,9 +193,9 @@ if ($id > 0 || !empty($ref)) { //print '
    '; print '
    '; - print '
    '.$lines[$i]->qty.''; - $detail = ''; - if ($lines[$i]->product->status_batch) { - $detail .= $langs->trans("Batch").': '.$lines[$i]->batch; - if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { - $detail .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($lines[$i]->sellby, "day"); + print ''; + $detail = $langs->trans("NA"); + if ($lines[$i]->product->status_batch && $lines[$i]->fk_product > 0) { + require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php'; + $productlot = new Productlot($db); + $reslot = $productlot->fetch(0, $lines[$i]->fk_product, $lines[$i]->batch); + if ($reslot > 0) { + $detail = $productlot->getNomUrl(1); + } else { + // lot is not created and info is only in reception lines + $batchinfo = $langs->trans("Batch").': '.$lines[$i]->batch; + if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { + $batchinfo .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($lines[$i]->sellby, "day"); + } + if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { + $batchinfo .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($lines[$i]->eatby, "day"); + } + $detail = $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"), $batchinfo); } - if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { - $detail .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($lines[$i]->eatby, "day"); - } - $detail .= '
    '; - - print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"), $detail); - } else { - print $langs->trans("NA"); } - print '
    '; + print '
    '; // Linked documents - if ($origin == 'order_supplier' && $object->$typeobject->id && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled))) { + if ($origin == 'order_supplier' && $object->$typeobject->id && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order"))) { print '\n"; print ''; } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { print ''; print ''; + print ''; } print '
    '; $objectsrc = new CommandeFournisseur($db); $objectsrc->fetch($object->$typeobject->id); @@ -202,7 +205,7 @@ if ($id > 0 || !empty($ref)) { print "
    '; $objectsrc = new Propal($db); $objectsrc->fetch($object->$typeobject->id); diff --git a/htdocs/reception/document.php b/htdocs/reception/document.php index f592dba452a..980b5e50a33 100644 --- a/htdocs/reception/document.php +++ b/htdocs/reception/document.php @@ -26,6 +26,7 @@ * \brief Management page of documents attached to an reception */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -33,9 +34,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'other')); @@ -64,19 +67,48 @@ if (!$sortfield) { } $object = new Reception($db); - -if ($object->fetch($id, $ref)) { +if ($id > 0 || !empty($ref)) { + $object->fetch($id, $ref); $object->fetch_thirdparty(); + + if (!empty($object->origin)) { + $origin = $object->origin; + + $object->fetch_origin(); + $typeobject = $object->origin; + } + + // Linked documents + if ($origin == 'order_supplier' && $object->$typeobject->id && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order"))) { + $objectsrc = new CommandeFournisseur($db); + $objectsrc->fetch($object->$typeobject->id); + } + $upload_dir = $conf->reception->dir_output."/".dol_sanitizeFileName($object->ref); } +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('receptiondocument')); + // Security check -if ($user->socid) { +if ($user->socid > 0) { $socid = $user->socid; } $result = restrictedArea($user, 'reception', $object->id, ''); -$permissiontoadd = $user->rights->reception->creer; // Used by the include of actions_dellink.inc.php +if (isModEnabled("reception")) { + $permissiontoread = $user->rights->reception->lire; + $permissiontoadd = $user->rights->reception->creer; + $permissiondellink = $user->rights->reception->creer; // Used by the include of actions_dellink.inc.php + $permissiontovalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->reception->creer)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->reception->reception_advance->validate))); + $permissiontodelete = $user->rights->reception->supprimer; +} else { + $permissiontoread = $user->rights->fournisseur->commande->receptionner; + $permissiontoadd = $user->rights->fournisseur->commande->receptionner; + $permissiondellink = $user->rights->fournisseur->commande->receptionner; // Used by the include of actions_dellink.inc.php + $permissiontovalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->commande->receptionner)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->commande_advance->check))); + $permissiontodelete = $user->rights->fournisseur->commande->receptionner; +} /* @@ -116,41 +148,30 @@ if ($id > 0 || !empty($ref)) { $morehtmlref = '
    '; + // Ref customer reception + $morehtmlref .= $form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1); + $morehtmlref .= $form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if (0) { // Do not change on shipment - if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= '
    '; + if (0) { // Do not change on reception + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $permissiontoadd) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on shipment, so we will use the project or source object instead - // TODO Add project on shipment - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/reception/index.php b/htdocs/reception/index.php index ed5f3a715d2..62eb42924c1 100644 --- a/htdocs/reception/index.php +++ b/htdocs/reception/index.php @@ -25,6 +25,7 @@ * \brief Home page of reception area. */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; diff --git a/htdocs/reception/list.php b/htdocs/reception/list.php index b3b039c2f68..42deedd5419 100644 --- a/htdocs/reception/list.php +++ b/htdocs/reception/list.php @@ -24,6 +24,7 @@ * \brief Page to list all receptions */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; @@ -51,6 +52,22 @@ $search_zip = GETPOST('search_zip', 'alpha'); $search_state = GETPOST("search_state"); $search_country = GETPOST("search_country", 'int'); $search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); +$search_date_delivery_startday = GETPOST('search_date_delivery_startday', 'int'); +$search_date_delivery_startmonth = GETPOST('search_date_delivery_startmonth', 'int'); +$search_date_delivery_startyear = GETPOST('search_date_delivery_startyear', 'int'); +$search_date_delivery_endday = GETPOST('search_date_delivery_endday', 'int'); +$search_date_delivery_endmonth = GETPOST('search_date_delivery_endmonth', 'int'); +$search_date_delivery_endyear = GETPOST('search_date_delivery_endyear', 'int'); +$search_date_delivery_start = dol_mktime(0, 0, 0, $search_date_delivery_startmonth, $search_date_delivery_startday, $search_date_delivery_startyear); // Use tzserver +$search_date_delivery_end = dol_mktime(23, 59, 59, $search_date_delivery_endmonth, $search_date_delivery_endday, $search_date_delivery_endyear); +$search_date_create_startday = GETPOST('search_date_create_startday', 'int'); +$search_date_create_startmonth = GETPOST('search_date_create_startmonth', 'int'); +$search_date_create_startyear = GETPOST('search_date_create_startyear', 'int'); +$search_date_create_endday = GETPOST('search_date_create_endday', 'int'); +$search_date_create_endmonth = GETPOST('search_date_create_endmonth', 'int'); +$search_date_create_endyear = GETPOST('search_date_create_endyear', 'int'); +$search_date_create_start = dol_mktime(0, 0, 0, $search_date_create_startmonth, $search_date_create_startday, $search_date_create_startyear); // Use tzserver +$search_date_create_end = dol_mktime(23, 59, 59, $search_date_create_endmonth, $search_date_create_endday, $search_date_create_endyear); $search_billed = GETPOST("search_billed", 'int'); $sall = GETPOST('sall', 'alphanohtml'); $optioncss = GETPOST('optioncss', 'alpha'); @@ -160,6 +177,22 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_state = ""; $search_country = ''; $search_type_thirdparty = ''; + $search_date_delivery_startday = ''; + $search_date_delivery_startmonth = ''; + $search_date_delivery_startyear = ''; + $search_date_delivery_endday = ''; + $search_date_delivery_endmonth = ''; + $search_date_delivery_endyear = ''; + $search_date_delivery_start = ''; + $search_date_delivery_end = ''; + $search_date_create_startday = ''; + $search_date_create_startmonth = ''; + $search_date_create_startyear = ''; + $search_date_create_endday = ''; + $search_date_create_endmonth = ''; + $search_date_create_endyear = ''; + $search_date_create_start = ''; + $search_date_create_end = ''; $search_billed = ''; $search_status = ''; $search_array_options = array(); @@ -498,6 +531,9 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."reception as e"; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (e.rowid = ef.fk_object)"; @@ -544,6 +580,18 @@ if ($search_country) { if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { $sql .= " AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).')'; } +if ($search_date_delivery_start) { + $sql .= " AND e.date_delivery >= '".$db->idate($search_date_delivery_start)."'"; +} +if ($search_date_delivery_end) { + $sql .= " AND e.date_delivery <= '".$db->idate($search_date_delivery_end)."'"; +} +if ($search_date_create_start) { + $sql .= " AND e.date_creation >= '".$db->idate($search_date_create_start)."'"; +} +if ($search_date_create_end) { + $sql .= " AND e.date_creation <= '".$db->idate($search_date_create_end)."'"; +} if ($search_ref_rcp) { $sql .= natural_search('e.ref', $search_ref_rcp); } @@ -569,12 +617,29 @@ $sql .= $hookmanager->resPrint; $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 + $page = 0; + $offset = 0; + } + $db->free($resql); } +// Complete request and execute it with limit $sql .= $db->order($sortfield, $sortorder); -$sql .= $db->plimit($limit + 1, $offset); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} //print $sql; $resql = $db->query($sql); @@ -632,6 +697,42 @@ if ($search_country) { if ($search_type_thirdparty) { $param .= "&search_type_thirdparty=".urlencode($search_type_thirdparty); } +if ($search_date_delivery_startday) { + $param .= '&search_date_delivery_startday='.urlencode($search_date_delivery_startday); +} +if ($search_date_delivery_startmonth) { + $param .= '&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth); +} +if ($search_date_delivery_startyear) { + $param .= '&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear); +} +if ($search_date_delivery_endday) { + $param .= '&search_date_delivery_endday='.urlencode($search_date_delivery_endday); +} +if ($search_date_delivery_endmonth) { + $param .= '&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth); +} +if ($search_date_delivery_endyear) { + $param .= '&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear); +} +if ($search_date_create_startday) { + $param .= '&search_date_create_startday='.urlencode($search_date_create_startday); +} +if ($search_date_create_startmonth) { + $param .= '&search_date_create_startmonth='.urlencode($search_date_create_startmonth); +} +if ($search_date_create_startyear) { + $param .= '&search_date_create_startyear='.urlencode($search_date_create_startyear); +} +if ($search_date_create_endday) { + $param .= '&search_date_create_endday='.urlencode($search_date_create_endday); +} +if ($search_date_create_endmonth) { + $param .= '&search_date_create_endmonth='.urlencode($search_date_create_endmonth); +} +if ($search_date_create_endyear) { + $param .= '&search_date_create_endyear='.urlencode($search_date_create_endyear); +} if ($search_ref_supplier) { $param .= "&search_ref_supplier=".urlencode($search_ref_supplier); } @@ -640,6 +741,22 @@ if ($search_array_options) { foreach ($search_array_options as $key => $val) { $crit = $val; $tmpkey = preg_replace('/search_options_/', '', $key); + if (is_array($val) && array_key_exists('start', $val) && array_key_exists('end', $val)) { + // date range from list filters is stored as array('start' => , 'end' => ) + // start date + $param .= '&search_options_'.$tmpkey.'_startyear='.dol_print_date($val['start'], '%Y'); + $param .= '&search_options_'.$tmpkey.'_startmonth='.dol_print_date($val['start'], '%m'); + $param .= '&search_options_'.$tmpkey.'_startday='.dol_print_date($val['start'], '%d'); + $param .= '&search_options_'.$tmpkey.'_starthour='.dol_print_date($val['start'], '%H'); + $param .= '&search_options_'.$tmpkey.'_startmin='.dol_print_date($val['start'], '%M'); + // end date + $param .= '&search_options_'.$tmpkey.'_endyear='.dol_print_date($val['end'], '%Y'); + $param .= '&search_options_'.$tmpkey.'_endmonth='.dol_print_date($val['end'], '%m'); + $param .= '&search_options_'.$tmpkey.'_endday='.dol_print_date($val['end'], '%d'); + $param .= '&search_options_'.$tmpkey.'_endhour='.dol_print_date($val['end'], '%H'); + $param .= '&search_options_'.$tmpkey.'_endmin='.dol_print_date($val['end'], '%M'); + $val = ''; + } if ($val != '') { $param .= '&search_options_'.$tmpkey.'='.urlencode($val); } @@ -699,7 +816,7 @@ if ($massaction == 'createbills') { print $langs->trans('ValidateInvoices'); print '
    '; - if (!empty($conf->stock->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_BILL)) { + if (isModEnabled('stock') && !empty($conf->global->STOCK_CALCULATE_ON_BILL)) { print $form->selectyesno('validate_invoices', 0, 1, 1); print ' ('.$langs->trans("AutoValidationNotPossibleWhenStockIsDecreasedOnInvoiceValidation").')'; } else { @@ -735,7 +852,7 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); @@ -745,6 +862,13 @@ print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} // Ref if (!empty($arrayfields['e.ref']['checked'])) { print ''; + print ''; } if (!empty($arrayfields['l.ref']['checked'])) { // Delivery ref print ''; } // Date modification @@ -822,8 +959,8 @@ if (!empty($arrayfields['e.tms']['checked'])) { } // Status if (!empty($arrayfields['e.fk_statut']['checked'])) { - print ''; } // Status billed @@ -833,13 +970,18 @@ if (!empty($arrayfields['e.billed']['checked'])) { print ''; } // Action column -print ''; +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} print "\n"; print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} if (!empty($arrayfields['e.ref']['checked'])) { print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, '', $sortfield, $sortorder); } @@ -891,7 +1033,9 @@ if (!empty($arrayfields['e.fk_statut']['checked'])) { if (!empty($arrayfields['e.billed']['checked'])) { print_liste_field_titre($arrayfields['e.billed']['label'], $_SERVER["PHP_SELF"], "e.billed", "", $param, '', $sortfield, $sortorder, 'center '); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +} print "\n"; $i = 0; @@ -910,6 +1054,19 @@ while ($i < min($num, $limit)) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } // Ref if (!empty($arrayfields['e.ref']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -1069,16 +1228,18 @@ while ($i < min($num, $limit)) { } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/reception/note.php b/htdocs/reception/note.php index 725c23ae738..d916099b872 100644 --- a/htdocs/reception/note.php +++ b/htdocs/reception/note.php @@ -24,14 +24,16 @@ * \brief Note card reception */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php'; -dol_include_once('/fourn/class/fournisseur.commande.class.php'); -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; $langs->loadLangs(array("receptions", "companies", "bills", 'deliveries', 'orders', 'stocks', 'other', 'propal')); @@ -45,32 +47,41 @@ if ($id > 0 || !empty($ref)) { $object->fetch_thirdparty(); if (!empty($object->origin)) { - $typeobject = $object->origin; $origin = $object->origin; + $object->fetch_origin(); + $typeobject = $object->origin; } // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && !empty($conf->commande->enabled)) { - $objectsrc = new Commande($db); - $objectsrc->fetch($object->$typeobject->id); - } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { - $objectsrc = new Propal($db); + if ($origin == 'order_supplier' && $object->$typeobject->id && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order"))) { + $objectsrc = new CommandeFournisseur($db); $objectsrc->fetch($object->$typeobject->id); } } -$permissionnote = $user->rights->reception->creer; // Used by the include of actions_setnotes.inc.php +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('receptionnote')); // Security check if ($user->socid > 0) { $socid = $user->socid; } - -// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('receptionnote')); +if (isModEnabled("reception")) { + $permissiontoread = $user->rights->reception->lire; + $permissiontoadd = $user->rights->reception->creer; + $permissiondellink = $user->rights->reception->creer; // Used by the include of actions_dellink.inc.php + $permissiontovalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->reception->creer)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->reception->reception_advance->validate))); + $permissiontodelete = $user->rights->reception->supprimer; +} else { + $permissiontoread = $user->rights->fournisseur->commande->receptionner; + $permissiontoadd = $user->rights->fournisseur->commande->receptionner; + $permissiondellink = $user->rights->fournisseur->commande->receptionner; // Used by the include of actions_dellink.inc.php + $permissiontovalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->commande->receptionner)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->commande_advance->check))); + $permissiontodelete = $user->rights->fournisseur->commande->receptionner; +} +$permissionnote = $user->rights->reception->creer; // Used by the include of actions_setnotes.inc.php if ($origin == 'reception') { $result = restrictedArea($user, $origin, $object->id); @@ -105,7 +116,7 @@ if (empty($reshook)) { * View */ -llxHeader('', 'Reception'); +llxHeader('', $langs->trans('Reception')); $form = new Form($db); @@ -122,39 +133,25 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; + $morehtmlref .= '
    '; if (0) { // Do not change on reception - if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify' && $permissiontoadd) { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - // We don't have project on reception, so we will use the project or source object instead - // TODO Add project on reception - $morehtmlref .= ' : '; - if (!empty($objectsrc->fk_project)) { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); $proj->fetch($objectsrc->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/reception/stats/index.php b/htdocs/reception/stats/index.php index 638b7b0dbfc..df11e2a9cd5 100644 --- a/htdocs/reception/stats/index.php +++ b/htdocs/reception/stats/index.php @@ -24,6 +24,7 @@ * \brief Page with reception statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/receptionstats.class.php'; @@ -35,12 +36,12 @@ $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); $userid = GETPOST('userid', 'int'); $socid = GETPOST('socid', 'int'); -$nowyear = strftime("%Y", dol_now()); +$nowyear = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; $startyear = $year - (empty($conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS) ? 2 : max(1, min(10, $conf->global->MAIN_STATS_GRAPHS_SHOW_N_YEARS))); $endyear = $year; -$langs->loadLangs(array("reception", "other", "companies")); +$langs->loadLangs(array("receptions", "other", "companies")); // Security check if ($user->socid) { diff --git a/htdocs/reception/stats/month.php b/htdocs/reception/stats/month.php index 806006394df..0b371ecd1f5 100644 --- a/htdocs/reception/stats/month.php +++ b/htdocs/reception/stats/month.php @@ -22,12 +22,15 @@ * \brief Page des stats receptions par mois */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/receptionstats.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; $year = GETPOST("year", 'int'); +$socid = GETPOST("socid", 'int'); +$userid = GETPOST("userid", 'int'); // Security check if ($user->socid) { @@ -48,9 +51,8 @@ $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); $mesg = ''; print load_fiche_titre($langs->trans("StatisticsOfReceptions").' '.GETPOST("year", 'int'), $mesg); - -$stats = new ReceptionStats($db); -$data = $stats->getNbReceptionByMonth(GETPOST("year", 'int')); +$stats = new ReceptionStats($db, $socid, '', ($userid > 0 ? $userid : 0)); +$data = $stats->getNbByMonth($year); dol_mkdir($conf->reception->dir_temp); diff --git a/htdocs/reception/tpl/linkedobjectblock.tpl.php b/htdocs/reception/tpl/linkedobjectblock.tpl.php index 009534b91b5..341e30e3784 100644 --- a/htdocs/reception/tpl/linkedobjectblock.tpl.php +++ b/htdocs/reception/tpl/linkedobjectblock.tpl.php @@ -50,12 +50,12 @@ foreach ($linkedObjectBlock as $key => $objectlink) { } ?> - - + '; + print ''; } print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -791,12 +915,19 @@ if (!empty($arrayfields['typent.code']['checked'])) { } // Date delivery planned if (!empty($arrayfields['e.date_delivery']['checked'])) { - print ' '; + print '
    '; + print $form->selectDate($search_date_delivery_start ? $search_date_delivery_start : -1, 'search_date_delivery_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_date_delivery_end ? $search_date_delivery_end : -1, 'search_date_delivery_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; + print '
    '; - print ''; } if (!empty($arrayfields['l.date_delivery']['checked'])) { @@ -812,7 +943,13 @@ $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // N print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['e.datec']['checked'])) { - print ''; + print ''; + print '
    '; + print $form->selectDate($search_date_create_start ? $search_date_create_start : -1, 'search_date_create_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
    '; + print '
    '; + print $form->selectDate($search_date_create_end ? $search_date_create_end : -1, 'search_date_create_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
    '; print '
    '; - print $form->selectarray('search_status', array('0'=>$langs->trans('StatusReceptionDraftShort'), '1'=>$langs->trans('StatusReceptionValidatedShort'), '2'=>$langs->trans('StatusReceptionProcessedShort')), $search_status, 1); + print ''; + print $form->selectarray('search_status', array('0'=>$langs->trans('StatusReceptionDraftShort'), '1'=>$langs->trans('StatusReceptionValidatedShort'), '2'=>$langs->trans('StatusReceptionProcessedShort')), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print ''; -$searchpicto = $form->showFilterAndCheckAddButtons(0); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterAndCheckAddButtons(0); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { + // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -982,10 +1139,12 @@ while ($i < min($num, $limit)) { // Type ent if (!empty($arrayfields['typent.code']['checked'])) { print ''; - if (count($typenArray) == 0) { + if (!isset($typenArray) || empty($typenArray)) { $typenArray = $formcompany->typent_array(1); } - print $typenArray[$obj->typent_code]; + if (isset($typenArray[$obj->typent_code])) { + print $typenArray[$obj->typent_code]; + } print ''; - if ($massactionbutton || $massaction) { - // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { + // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    trans("Reception"); ?> + trans("Reception"); ?> global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) { print ' getNomUrl(1); ?>getNomUrl(1); ?> ref_supplier); ?> date_delivery, 'day'); ?> '; - print ''.$langs->trans("NewAttribute").''; - print ""; -} - - /* * Creation of an optional field */ diff --git a/htdocs/recruitment/admin/jobposition_extrafields.php b/htdocs/recruitment/admin/jobposition_extrafields.php index 95918bdd1c1..02e4eb2566d 100644 --- a/htdocs/recruitment/admin/jobposition_extrafields.php +++ b/htdocs/recruitment/admin/jobposition_extrafields.php @@ -21,6 +21,7 @@ * \brief Page to setup extra fields of Candidature */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -78,14 +79,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - - /* * Creation of an optional field */ diff --git a/htdocs/recruitment/admin/public_interface.php b/htdocs/recruitment/admin/public_interface.php index b951f440005..a9cbf698a10 100644 --- a/htdocs/recruitment/admin/public_interface.php +++ b/htdocs/recruitment/admin/public_interface.php @@ -24,6 +24,7 @@ * \brief File of main public page for open job position */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment.lib.php'; @@ -139,12 +140,12 @@ print dol_get_fiche_end(); print ''; -/* + if (!empty($conf->global->RECRUITMENT_ENABLE_PUBLIC_INTERFACE)) { print '
    '; //print $langs->trans('FollowingLinksArePublic').'
    '; - print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').':
    '; - if ($conf->multicompany->enabled) { + print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').'
    '; + if (isModEnabled('multicompany')) { $entity_qr = '?entity='.$conf->entity; } else { $entity_qr = ''; @@ -155,9 +156,12 @@ if (!empty($conf->global->RECRUITMENT_ENABLE_PUBLIC_INTERFACE)) { $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - print ''.$urlwithroot.'/public/members/new.php'.$entity_qr.''; + print ''; + print ajax_autoselect('publicurlmember'); } -*/ // End of page llxFooter(); diff --git a/htdocs/recruitment/admin/setup.php b/htdocs/recruitment/admin/setup.php index 1ef8fa544ad..eb007f68ce1 100644 --- a/htdocs/recruitment/admin/setup.php +++ b/htdocs/recruitment/admin/setup.php @@ -1,6 +1,5 @@ - * Copyright (C) 2020 Adminson Alicealalalamdskfldmjgdfgdfhfghgfh +/* Copyright (C) 2004-2020 Laurent Destailleur * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,16 +87,14 @@ $setupnotempty = 0; * Actions */ -if ((float) DOL_VERSION >= 6) { - include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; -} +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); - $maskorder = GETPOST('maskorder', 'alpha'); + $maskconst = GETPOST('maskconstjob', 'alpha'); + $maskvalue = GETPOST('maskjob', 'alpha'); - if ($maskconstorder) { - $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { + $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } if (!($res > 0)) { @@ -229,7 +226,7 @@ if ($action == 'edit') { print '
    '; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); print $form->textwithpicto($langs->trans($key), $tooltiphelp); - print '
    '; @@ -250,7 +247,7 @@ if ($action == 'edit') { print '
    '; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); print $form->textwithpicto($langs->trans($key), $tooltiphelp); - print ''.$conf->global->$key.'
    '.getDolGlobalString($key).'
    '; diff --git a/htdocs/recruitment/admin/setup_candidatures.php b/htdocs/recruitment/admin/setup_candidatures.php index 58172c2e767..1da5d698645 100644 --- a/htdocs/recruitment/admin/setup_candidatures.php +++ b/htdocs/recruitment/admin/setup_candidatures.php @@ -1,6 +1,5 @@ - * Copyright (C) 2020 Adminson Alicealalalamdskfldmjgdfgdfhfghgfh +/* Copyright (C) 2004-2020 Laurent Destailleur * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,16 +87,14 @@ $setupnotempty = 0; * Actions */ -if ((float) DOL_VERSION >= 6) { - include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; -} +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); - $maskorder = GETPOST('maskorder', 'alpha'); + $maskconst = GETPOST('maskconstcand', 'aZ09'); + $maskvalue = GETPOST('maskcand', 'alpha'); - if ($maskconstorder) { - $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { + $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } if (!($res > 0)) { @@ -226,7 +223,7 @@ if ($action == 'edit') { print '
    '; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); print $form->textwithpicto($langs->trans($key), $tooltiphelp); - print '
    '; @@ -247,7 +244,7 @@ if ($action == 'edit') { print '
    '; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); print $form->textwithpicto($langs->trans($key), $tooltiphelp); - print ''.$conf->global->$key.'
    '.getDolGlobalString($key).'
    '; diff --git a/htdocs/recruitment/class/api_recruitment.class.php b/htdocs/recruitment/class/api_recruitment.class.php index af2c87dcdb3..cf4fa7a143e 100644 --- a/htdocs/recruitment/class/api_recruitment.class.php +++ b/htdocs/recruitment/class/api_recruitment.class.php @@ -441,7 +441,7 @@ class Recruitment extends DolibarrApi // $this->jobposition->abc = sanitizeVal($this->jobposition->abc, 'alphanohtml'); if ($this->jobposition->update(DolibarrApiAccess::$user, false) > 0) { - return $this->get($id); + return $this->getJobPosition($id); } else { throw new RestException(500, $this->jobposition->error); } @@ -484,7 +484,7 @@ class Recruitment extends DolibarrApi // $this->jobposition->abc = sanitizeVal($this->jobposition->abc, 'alphanohtml'); if ($this->candidature->update(DolibarrApiAccess::$user, false) > 0) { - return $this->get($id); + return $this->getCandidature($id); } else { throw new RestException(500, $this->candidature->error); } diff --git a/htdocs/recruitment/class/recruitmentcandidature.class.php b/htdocs/recruitment/class/recruitmentcandidature.class.php index 1b4074a6798..1690f13da56 100644 --- a/htdocs/recruitment/class/recruitmentcandidature.class.php +++ b/htdocs/recruitment/class/recruitmentcandidature.class.php @@ -50,7 +50,7 @@ class RecruitmentCandidature extends CommonObject * @var int Does this object support multicompany module ? * 0=No test on entity, 1=Test with field entity, 'field@table'=Test with link by field@table */ - public $ismultientitymanaged = 0; + public $ismultientitymanaged = 1; /** * @var int Does object support extrafields ? 0=No, 1=Yes @@ -110,24 +110,25 @@ class RecruitmentCandidature extends CommonObject public $fields = array( 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'comment'=>"Id"), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'position'=>5, 'notnull'=>1, 'default'=>'1', 'index'=>1), - 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'visible'=>4, 'noteditable'=>'1', 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'comment'=>"Reference of candidature"), - 'fk_recruitmentjobposition' => array('type'=>'integer:RecruitmentJobPosition:recruitment/class/recruitmentjobposition.class.php', 'label'=>'Job', 'enabled'=>'1', 'position'=>15, 'notnull'=>0, 'visible'=>1, 'index'=>1, 'picto'=>'recruitmentjobposition', 'css'=>'maxwidth500', 'csslist'=>'minwidth125'), + 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'visible'=>4, 'noteditable'=>'1', 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'comment'=>"Reference of candidature", 'csslist'=>'nowraponall'), + 'fk_recruitmentjobposition' => array('type'=>'integer:RecruitmentJobPosition:recruitment/class/recruitmentjobposition.class.php', 'label'=>'Job', 'enabled'=>'1', 'position'=>15, 'notnull'=>0, 'visible'=>1, 'index'=>1, 'picto'=>'recruitmentjobposition', 'css'=>'minwidth300 maxwidth500 widthcentpercentminusx', 'csslist'=>'minwidth100 nowraponall'), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>0,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>0,), - 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,), - 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2,), - 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), - 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), - 'lastname' => array('type'=>'varchar(128)', 'label'=>'Lastname', 'enabled'=>'1', 'position'=>20, 'notnull'=>0, 'visible'=>1,), - 'firstname' => array('type'=>'varchar(128)', 'label'=>'Firstname', 'enabled'=>'1', 'position'=>21, 'notnull'=>0, 'visible'=>1,), - 'email' => array('type'=>'email', 'label'=>'EMail', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'picto'=>'email', 'csslist'=>'tdoverflowmax200'), - 'phone' => array('type'=>'phone', 'label'=>'Phone', 'enabled'=>'1', 'position'=>31, 'notnull'=>0, 'visible'=>1, 'picto'=>'phone'), + 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid', 'csslist'=>'tdoverflowmax100'), + 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2, 'csslist'=>'tdoverflowmax100'), + 'lastname' => array('type'=>'varchar(128)', 'label'=>'Lastname', 'enabled'=>'1', 'position'=>20, 'notnull'=>0, 'visible'=>1, 'csslist'=>'tdoverflowmax150'), + 'firstname' => array('type'=>'varchar(128)', 'label'=>'Firstname', 'enabled'=>'1', 'position'=>21, 'notnull'=>0, 'visible'=>1, 'csslist'=>'tdoverflowmax150'), + 'email' => array('type'=>'email', 'label'=>'EMail', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'picto'=>'email', 'csslist'=>'tdoverflowmax150'), + 'phone' => array('type'=>'phone', 'label'=>'Phone', 'enabled'=>'1', 'position'=>31, 'notnull'=>0, 'visible'=>1, 'picto'=>'phone', 'csslist'=>'tdoverflowmax150'), 'date_birth' => array('type'=>'date', 'label'=>'DateOfBirth', 'enabled'=>'1', 'position'=>70, 'visible'=>-1,), 'email_msgid' => array('type'=>'varchar(255)', 'label'=>'EmailMsgID', 'visible'=>-2, 'enabled'=>1, 'position'=>540, 'notnull'=>-1, 'help'=>'EmailMsgIDDesc'), + 'email_date' => array('type'=>'datetime', 'label'=>'EmailDate', 'visible'=>-2, 'enabled'=>1, 'position'=>541), //'fk_recruitment_origin' => array('type'=>'integer:CRecruitmentOrigin:recruitment/class/crecruitmentorigin.class.php', 'label'=>'Origin', 'enabled'=>'1', 'position'=>45, 'visible'=>1, 'index'=>1), 'remuneration_requested' => array('type'=>'integer', 'label'=>'RequestedRemuneration', 'enabled'=>'1', 'position'=>80, 'notnull'=>0, 'visible'=>-1,), 'remuneration_proposed' => array('type'=>'integer', 'label'=>'ProposedRemuneration', 'enabled'=>'1', 'position'=>81, 'notnull'=>0, 'visible'=>-1,), - 'description' => array('type'=>'html', 'label'=>'Description', 'enabled'=>'1', 'position'=>500, 'notnull'=>0, 'visible'=>3,), + 'description' => array('type'=>'html', 'label'=>'Description', 'enabled'=>'1', 'position'=>300, 'notnull'=>0, 'visible'=>3, 'cssview'=>'wordbreak'), + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-4, 'csslist'=>'nowraponall'), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2, 'csslist'=>'nowraponall'), 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), 'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'default'=>0, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Received', '3'=>'ContractProposed', '5'=>'ContractSigned', '8'=>'Refused', '9'=>'Canceled')), @@ -149,6 +150,7 @@ class RecruitmentCandidature extends CommonObject public $phone; public $date_birth; public $email_msgid; + public $email_date; public $remuneration_requested; public $remuneration_proposed; public $fk_recruitment_origin; @@ -172,7 +174,7 @@ class RecruitmentCandidature extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -494,8 +496,8 @@ class RecruitmentCandidature extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitmentcandidature->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitmentcandidature->recruitmentcandidature_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitmentcandidature->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitmentcandidature->recruitmentcandidature_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -612,8 +614,8 @@ class RecruitmentCandidature extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitment_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitment_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -636,8 +638,8 @@ class RecruitmentCandidature extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitment_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitment_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -660,8 +662,8 @@ class RecruitmentCandidature extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitment_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitment_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -823,6 +825,12 @@ class RecruitmentCandidature extends CommonObject $statusType = 'status'.$status; //if ($status == self::STATUS_VALIDATED) $statusType = 'status1'; if ($status == self::STATUS_CANCELED) { + $statusType = 'status9'; + } + if ($status == self::STATUS_CONTRACT_PROPOSED) { + $statusType = 'status4'; + } + if ($status == self::STATUS_CONTRACT_SIGNED) { $statusType = 'status6'; } if ($status == self::STATUS_REFUSED) { @@ -849,27 +857,11 @@ class RecruitmentCandidature extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -902,8 +894,8 @@ class RecruitmentCandidature extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_recruitmentcandidature = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/recruitment/class/recruitmentjobposition.class.php b/htdocs/recruitment/class/recruitmentjobposition.class.php index 42279fe3a97..7a9d077f910 100644 --- a/htdocs/recruitment/class/recruitmentjobposition.class.php +++ b/htdocs/recruitment/class/recruitmentjobposition.class.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2020 Laurent Destailleur +/* Copyright (C) 2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -62,10 +63,24 @@ class RecruitmentJobPosition extends CommonObject */ public $picto = 'recruitmentjobposition'; - + /** + * Draft status + */ const STATUS_DRAFT = 0; + + /** + * Validated + */ const STATUS_VALIDATED = 1; + + /** + * Recruited + */ const STATUS_RECRUITED = 3; + + /** + * Canceled + */ const STATUS_CANCELED = 9; @@ -104,10 +119,10 @@ class RecruitmentJobPosition extends CommonObject 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'visible'=>4, 'noteditable'=>'1', 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'comment'=>"Reference of object", 'css'=>'nowraponall'), 'label' => array('type'=>'varchar(255)', 'label'=>'JobLabel', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth500', 'csslist'=>'tdoverflowmax300', 'showoncombobox'=>'2', 'autofocusoncreate'=>1), 'qty' => array('type'=>'integer', 'label'=>'NbOfEmployeesExpected', 'enabled'=>'1', 'position'=>45, 'notnull'=>1, 'visible'=>1, 'default'=>'1', 'isameasure'=>'1', 'css'=>'maxwidth75imp'), - 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>'$conf->projet->enabled', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'css'=>'maxwidth500', 'picto'=>'project'), - 'fk_user_recruiter' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'ResponsibleOfRecruitement', 'enabled'=>'1', 'position'=>54, 'notnull'=>1, 'visible'=>1, 'foreignkey'=>'user.rowid', 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax150', 'picto'=>'user'), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>'$conf->project->enabled', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'css'=>'maxwidth500', 'picto'=>'project'), + 'fk_user_recruiter' => array('type'=>'integer:User:user/class/user.class.php:status=1', 'label'=>'ResponsibleOfRecruitement', 'enabled'=>'1', 'position'=>54, 'notnull'=>1, 'visible'=>1, 'foreignkey'=>'user.rowid', 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax150', 'picto'=>'user'), 'email_recruiter' => array('type'=>'varchar(255)', 'label'=>'EmailRecruiter', 'enabled'=>'1', 'position'=>54, 'notnull'=>0, 'visible'=>-1, 'help'=>'ToUseAGenericEmail', 'picto'=>'email'), - 'fk_user_supervisor' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'FutureManager', 'enabled'=>'1', 'position'=>55, 'notnull'=>0, 'visible'=>-1, 'foreignkey'=>'user.rowid', 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax150', 'picto'=>'user'), + 'fk_user_supervisor' => array('type'=>'integer:User:user/class/user.class.php:t.statut = 1', 'label'=>'FutureManager', 'enabled'=>'1', 'position'=>55, 'notnull'=>0, 'visible'=>-1, 'foreignkey'=>'user.rowid', 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax150', 'picto'=>'user'), 'fk_establishment' => array('type'=>'integer:Establishment:hrm/class/establishment.class.php', 'label'=>'Establishment', 'enabled'=>'$conf->hrm->enabled', 'position'=>56, 'notnull'=>0, 'visible'=>-1, 'foreignkey'=>'establishment.rowid',), 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'WorkPlace', 'enabled'=>'$conf->societe->enabled', 'position'=>57, 'notnull'=>-1, 'visible'=>-1, 'css'=>'maxwidth500', 'index'=>1, 'help'=>"IfJobIsLocatedAtAPartner", 'picto'=>'company'), 'date_planned' => array('type'=>'date', 'label'=>'DateExpected', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>1,), @@ -115,7 +130,7 @@ class RecruitmentJobPosition extends CommonObject 'description' => array('type'=>'html', 'label'=>'Description', 'enabled'=>'1', 'position'=>65, 'notnull'=>0, 'visible'=>3,), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>101, 'notnull'=>0, 'visible'=>0,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>102, 'notnull'=>0, 'visible'=>0,), - 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,), + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-4,), 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2,), 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), @@ -182,7 +197,7 @@ class RecruitmentJobPosition extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -254,7 +269,7 @@ class RecruitmentJobPosition extends CommonObject // Reset some properties unset($object->id); unset($object->fk_user_creat); - unset($object->import_key); + $object->import_key = null; // Clear fields if (property_exists($object, 'ref')) { @@ -498,8 +513,8 @@ class RecruitmentJobPosition extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitmentjobposition->create)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitmentjobposition->recruitmentjobposition_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitmentjobposition->create)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitmentjobposition->recruitmentjobposition_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -616,8 +631,8 @@ class RecruitmentJobPosition extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitment_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitment_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -640,8 +655,8 @@ class RecruitmentJobPosition extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitment_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitment_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -651,7 +666,7 @@ class RecruitmentJobPosition extends CommonObject } /** - * Close the commercial proposal + * Close the recruitment * * @param User $user Object user that close * @param int $status Statut @@ -683,18 +698,12 @@ class RecruitmentJobPosition extends CommonObject if ($status == self::STATUS_RECRUITED) { $triggerName = 'RECRUITMENTJOB_CLOSE_RECRUITED'; $modelpdf = $this->model_pdf; - - if ($result < 0) { - $this->error = $this->db->lasterror(); - $this->db->rollback(); - return -2; - } } if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $this->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -757,8 +766,8 @@ class RecruitmentJobPosition extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->recruitment->recruitment_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->recruitment->recruitment_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -941,27 +950,11 @@ class RecruitmentJobPosition extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php b/htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php index 8d187807700..147e8ec3519 100644 --- a/htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php +++ b/htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php @@ -4,7 +4,7 @@ * Copyright (C) 2014 Marcos García * Copyright (C) 2016 Charlie Benke * Copyright (C) 2018-2021 Philippe Grand - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,12 +22,13 @@ */ /** - * \file htdocs/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + * \file htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php * \ingroup recruitment * \brief File of class to build ODT documents for recruitmentjobpositions */ -dol_include_once('/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -48,9 +49,9 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * @var string Dolibarr version of the loaded document @@ -234,11 +235,11 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi $outputlangs->loadLangs(array("main", "dict", "companies", "bills")); - if ($conf->commande->dir_output) { + if ($conf->recruitment->dir_output) { // If $object is id instead of object if (!is_object($object)) { $id = $object; - $object = new Commande($this->db); + $object = new RecruitmentJobPosition($this->db); $result = $object->fetch($id); if ($result < 0) { dol_print_error($this->db, $object->error); @@ -246,7 +247,7 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi } } - $dir = $conf->commande->multidir_output[isset($object->entity) ? $object->entity : 1]; + $dir = $conf->recruitment->multidir_output[isset($object->entity) ? $object->entity : 1].'/recruitmentjobposition/'; $objectref = dol_sanitizeFileName($object->ref); if (!preg_match('/specimen/i', $objectref)) { $dir .= "/".$objectref; @@ -263,7 +264,7 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi if (file_exists($dir)) { //print "srctemplatepath=".$srctemplatepath; // Src filename $newfile = basename($srctemplatepath); - $newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile); + $newfiletmp = preg_replace('/\.od[ts]/i', '', $newfile); $newfiletmp = preg_replace('/template_/i', '', $newfiletmp); $newfiletmp = preg_replace('/modele_/i', '', $newfiletmp); $newfiletmp = $objectref.'_'.$newfiletmp; @@ -286,7 +287,11 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi //print "conf->societe->dir_temp=".$conf->societe->dir_temp; dol_mkdir($conf->recruitment->dir_temp); - + if (!is_writable($conf->recruitment->dir_temp)) { + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->recruitment->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); + return -1; + } // If CUSTOMER contact defined on order, we use it $usecontact = false; @@ -339,7 +344,7 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi $odfHandler = new odf( $srctemplatepath, array( - 'PATH_TO_TMP' => $conf->commande->dir_temp, + 'PATH_TO_TMP' => $conf->recruitment->dir_temp, 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'DELIMITER_LEFT' => '{', 'DELIMITER_RIGHT' => '}' diff --git a/htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php b/htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php index 22f2eda511b..61c2eb3ff20 100644 --- a/htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php +++ b/htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php @@ -70,9 +70,9 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio /** * @var array Minimum version of PHP required by module. - * e.g.: PHP ≥ 5.6 = array(5, 6) + * e.g.: PHP ≥ 7.0 = array(7, 0) */ - public $phpmin = array(5, 6); + public $phpmin = array(7, 0); /** * Dolibarr version of the loaded document @@ -121,10 +121,10 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $this->page_largeur = $formatarray['width']; $this->page_hauteur = $formatarray['height']; $this->format = array($this->page_largeur, $this->page_hauteur); - $this->marge_gauche = isset($conf->global->MAIN_PDF_MARGIN_LEFT) ? $conf->global->MAIN_PDF_MARGIN_LEFT : 10; - $this->marge_droite = isset($conf->global->MAIN_PDF_MARGIN_RIGHT) ? $conf->global->MAIN_PDF_MARGIN_RIGHT : 10; - $this->marge_haute = isset($conf->global->MAIN_PDF_MARGIN_TOP) ? $conf->global->MAIN_PDF_MARGIN_TOP : 10; - $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; + $this->marge_gauche = getDolGlobalInt('MAIN_PDF_MARGIN_LEFT', 10); + $this->marge_droite = getDolGlobalInt('MAIN_PDF_MARGIN_RIGHT', 10); + $this->marge_haute = getDolGlobalInt('MAIN_PDF_MARGIN_TOP', 10); + $this->marge_basse = getDolGlobalInt('MAIN_PDF_MARGIN_BOTTOM', 10); $this->option_logo = 1; // Display logo $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION @@ -217,7 +217,7 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $objphoto->fetch($object->lines[$i]->fk_product); //var_dump($objphoto->ref);exit; - if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { + if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { @@ -234,7 +234,7 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { - if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo + if (!getDolGlobalInt('CAT_HIGH_QUALITY_IMAGES')) // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo { if ($obj['photo_vignette']) { @@ -327,7 +327,7 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$object->label." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } @@ -643,6 +643,9 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { @@ -795,7 +798,7 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio /** * Show top header of page. * - * @param Tcpdf $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -814,8 +817,8 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->RECRUITMENT_RECRUITMENTJOBPOSITION_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->RECRUITMENT_RECRUITMENTJOBPOSITION_DRAFT_WATERMARK); + if ($object->statut == $object::STATUS_DRAFT && getDolGlobalString('RECRUITMENT_RECRUITMENTJOBPOSITION_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', getDolGlobalString('RECRUITMENT_RECRUITMENTJOBPOSITION_DRAFT_WATERMARK')); } $pdf->SetTextColor(0, 0, 60); @@ -829,13 +832,13 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $pdf->SetXY($this->marge_gauche, $posy); // Logo - if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO)) { + if (!getDolGlobalInt('PDF_DISABLE_MYCOMPANY_LOGO')) { if ($this->emetteur->logo) { $logodir = $conf->mycompany->dir_output; if (!empty($conf->mycompany->multidir_output[$object->entity])) { $logodir = $conf->mycompany->multidir_output[$object->entity]; } - if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) { + if (!getDolGlobalInt('MAIN_PDF_USE_LARGE_LOGO')) { $logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small; } else { $logo = $logodir.'/logos/'.$this->emetteur->logo; diff --git a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_advanced.php b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_advanced.php new file mode 100644 index 00000000000..415ac3357eb --- /dev/null +++ b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_advanced.php @@ -0,0 +1,143 @@ + + * Copyright (C) 2004-2007 Laurent Destailleur + * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand (Resultic) + * Copyright (C) 2019 Frédéric France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file htdocs/core/modules/recruitment/mod_recruitmentcandidaturen_advanced.php + * \ingroup recruitment + * \brief File containing class for advanced numbering model of RecruitmentCandidature + */ + +dol_include_once('/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php'); + + +/** + * Class to manage the Advanced numbering rule for Job application + */ +class mod_recruitmentcandidature_advanced extends ModeleNumRefRecruitmentCandidature +{ + /** + * Dolibarr version of the loaded document + * @var string + */ + public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr' + + /** + * @var string Error message + */ + public $error = ''; + + /** + * @var string name + */ + public $name = 'advanced'; + + + /** + * Returns the description of the numbering model + * + * @return string Descriptive text + */ + public function info() + { + global $conf, $langs, $db; + + $langs->load("bills"); + + $form = new Form($db); + + $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; + $texte .= '
    '; + $texte .= ''; + $texte .= ''; + $texte .= ''; + $texte .= ''; + + $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("RecruitmentCandidature"), $langs->transnoentities("RecruitmentCandidature")); + $tooltip .= $langs->trans("GenericMaskCodes2"); + $tooltip .= $langs->trans("GenericMaskCodes3"); + $tooltip .= $langs->trans("GenericMaskCodes4a", $langs->transnoentities("RecruitmentCandidature"), $langs->transnoentities("RecruitmentCandidature")); + $tooltip .= $langs->trans("GenericMaskCodes5"); + + // Parametrage du prefix + $texte .= ''; + $texte .= ''; + + $texte .= ''; + + $texte .= ''; + + $texte .= '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; + $texte .= '
    '; + + return $texte; + } + + /** + * Return an example of numbering + * + * @return string Example + */ + public function getExample() + { + global $conf, $langs, $mysoc; + + $old_code_client = $mysoc->code_client; + $old_code_type = $mysoc->typent_code; + $mysoc->code_client = 'CCCCCCCCCC'; + $mysoc->typent_code = 'TTTTTTTTTT'; + $numExample = $this->getNextValue($mysoc); + $mysoc->code_client = $old_code_client; + $mysoc->typent_code = $old_code_type; + + if (!$numExample) { + $numExample = $langs->trans('NotConfigured'); + } + return $numExample; + } + + /** + * Return next free value + * + * @param Object $object Object we need next value for + * @return string Value if KO, <0 if KO + */ + public function getNextValue($object) + { + global $db, $conf; + + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + + // We get cursor rule + $mask = getDolGlobalString('RECRUITMENT_RECRUITMENTCANDIDATURE_ADVANCED_MASK'); + + if (!$mask) { + $this->error = 'NotConfigured'; + return 0; + } + + $date = $object->date; + + $numFinal = get_next_value($db, $mask, 'recruitment_recruitmentcandidature', 'ref', '', null, $date); + + return $numFinal; + } +} diff --git a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_standard.php b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_standard.php index ce96d1cd67b..4221915eb29 100644 --- a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_standard.php +++ b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentcandidature_standard.php @@ -26,7 +26,7 @@ dol_include_once('/recruitment/core/modules/recruitment/modules_recruitmentcandi /** - * Class to manage customer order numbering rules standard + * Class to manage the Standard numbering rule for Job application */ class mod_recruitmentcandidature_standard extends ModeleNumRefRecruitmentCandidature { diff --git a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php index e4a07c63633..be565486c3a 100644 --- a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php +++ b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php @@ -30,7 +30,7 @@ dol_include_once('/recruitment/core/modules/recruitment/modules_recruitmentjobpo /** - * Class to manage customer Bom numbering rules advanced + * Class to manage the Advanced numbering rule for Job position */ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosition { @@ -54,7 +54,7 @@ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosi /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -68,8 +68,8 @@ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosi $texte .= '
    '; $texte .= ''; $texte .= ''; - $texte .= ''; - $texte .= ''; + $texte .= ''; + $texte .= '
    '; $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("RecruitmentJobPosition"), $langs->transnoentities("RecruitmentJobPosition")); $tooltip .= $langs->trans("GenericMaskCodes2"); @@ -79,7 +79,7 @@ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosi // Parametrage du prefix $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -98,20 +98,15 @@ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosi */ public function getExample() { - global $conf, $db, $langs, $mysoc; + global $conf, $langs, $mysoc; - $object = new RecruitmentJobPosition($db); - $object->initAsSpecimen(); - - /*$old_code_client = $mysoc->code_client; + $old_code_client = $mysoc->code_client; $old_code_type = $mysoc->typent_code; $mysoc->code_client = 'CCCCCCCCCC'; - $mysoc->typent_code = 'TTTTTTTTTT';*/ - - $numExample = $this->getNextValue($object); - - /*$mysoc->code_client = $old_code_client; - $mysoc->typent_code = $old_code_type;*/ + $mysoc->typent_code = 'TTTTTTTTTT'; + $numExample = $this->getNextValue($mysoc); + $mysoc->code_client = $old_code_client; + $mysoc->typent_code = $old_code_type; if (!$numExample) { $numExample = $langs->trans('NotConfigured'); diff --git a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_standard.php b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_standard.php index b2b413ee508..260ee510c5b 100644 --- a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_standard.php +++ b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_standard.php @@ -26,7 +26,7 @@ dol_include_once('/recruitment/core/modules/recruitment/modules_recruitmentjobpo /** - * Class to manage customer order numbering rules standard + * Class to manage the Standard numbering rule for Job positions */ class mod_recruitmentjobposition_standard extends ModeleNumRefRecruitmentJobPosition { diff --git a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php index 089aa720fa7..362e890c6ef 100644 --- a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php +++ b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php @@ -86,7 +86,7 @@ abstract class ModeleNumRefRecruitmentCandidature /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php index 9efabac2d37..aaf8bed6c53 100644 --- a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php +++ b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php @@ -122,7 +122,7 @@ abstract class ModeleNumRefRecruitmentJobPosition /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/recruitment/recruitmentindex.php b/htdocs/recruitment/index.php similarity index 95% rename from htdocs/recruitment/recruitmentindex.php rename to htdocs/recruitment/index.php index f028f2f8243..03b2a9e6431 100644 --- a/htdocs/recruitment/recruitmentindex.php +++ b/htdocs/recruitment/index.php @@ -19,11 +19,12 @@ */ /** - * \file recruitment/recruitmentindex.php + * \file recruitment/index.php * \ingroup recruitment * \brief Home page of recruitment top menu */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; @@ -34,17 +35,22 @@ $langs->loadLangs(array("recruitment", "boxes")); $action = GETPOST('action', 'aZ09'); +$max = 5; +$now = dol_now(); -// Security check -//if (! $user->rights->recruitment->myobject->read) accessforbidden(); $socid = GETPOST('socid', 'int'); if (isset($user->socid) && $user->socid > 0) { $action = ''; $socid = $user->socid; } -$max = 5; -$now = dol_now(); +// Security check (enable the most restrictive one) +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +// if (! $user->hasRight('mymodule', 'myobject', 'read')) { +// accessforbidden(); +// } +restrictedArea($user, 'recruitment', 0, 'recruitment_recruitmentjobposition', 'recruitmentjobposition', '', 'rowid'); /* @@ -242,7 +248,7 @@ print '
    '; /* BEGIN MODULEBUILDER DRAFT MYOBJECT // Draft MyObject -if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read) +if (isModEnabled('recruitment') && $user->rights->recruitment->read) { $langs->load("orders"); @@ -327,7 +333,7 @@ $NBMAX = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; // Last modified job position -if (!empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitmentjobposition->read) { +if (isModEnabled('recruitment') && $user->rights->recruitment->recruitmentjobposition->read) { $sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms, s.status, COUNT(rc.rowid) as nbapplications"; $sql .= " FROM ".MAIN_DB_PREFIX."recruitment_recruitmentjobposition as s"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."recruitment_recruitmentcandidature as rc ON rc.fk_recruitmentjobposition = s.rowid"; @@ -398,7 +404,7 @@ if (!empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitme } // Last modified job position -if (!empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitmentjobposition->read) { +if (isModEnabled('recruitment') && $user->rights->recruitment->recruitmentjobposition->read) { $sql = "SELECT rc.rowid, rc.ref, rc.email, rc.lastname, rc.firstname, rc.date_creation, rc.tms, rc.status"; $sql .= " FROM ".MAIN_DB_PREFIX."recruitment_recruitmentcandidature as rc"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."recruitment_recruitmentjobposition as s ON rc.fk_recruitmentjobposition = s.rowid"; diff --git a/htdocs/recruitment/lib/recruitment.lib.php b/htdocs/recruitment/lib/recruitment.lib.php index cb1f0b7e2bc..911c6abdb03 100644 --- a/htdocs/recruitment/lib/recruitment.lib.php +++ b/htdocs/recruitment/lib/recruitment.lib.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2019 Laurent Destailleur + * Copyright (C) 2022 Frédéric France * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,7 +29,11 @@ */ function recruitmentAdminPrepareHead() { - global $langs, $conf; + global $langs, $conf, $db; + + $extrafields = new ExtraFields($db); + $extrafields->fetch_name_optionals_label('recruitment_recruitmentjobposition'); + $extrafields->fetch_name_optionals_label('recruitment_recruitmentcandidature'); $langs->load("recruitment"); @@ -52,11 +57,19 @@ function recruitmentAdminPrepareHead() $head[$h][0] = dol_buildpath("/recruitment/admin/jobposition_extrafields.php", 1); $head[$h][1] = $langs->trans("ExtrafieldsJobPosition"); + $nbExtrafields = $extrafields->attributes['recruitment_recruitmentjobposition']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'jobposition_extrafields'; $h++; $head[$h][0] = dol_buildpath("/recruitment/admin/candidature_extrafields.php", 1); $head[$h][1] = $langs->trans("ExtrafieldsApplication"); + $nbExtrafields = $extrafields->attributes['recruitment_recruitmentcandidature']['count']; + if ($nbExtrafields > 0) { + $head[$h][1] .= ''.$nbExtrafields.''; + } $head[$h][2] = 'candidature_extrafields'; $h++; @@ -70,5 +83,7 @@ function recruitmentAdminPrepareHead() //); // to remove a tab complete_head_from_modules($conf, $langs, null, $head, $h, 'recruitment'); + complete_head_from_modules($conf, $langs, null, $head, $h, 'recruitment', 'remove'); + return $head; } diff --git a/htdocs/recruitment/lib/recruitment_recruitmentcandidature.lib.php b/htdocs/recruitment/lib/recruitment_recruitmentcandidature.lib.php index 759e627bf59..c4ad141bca6 100644 --- a/htdocs/recruitment/lib/recruitment_recruitmentcandidature.lib.php +++ b/htdocs/recruitment/lib/recruitment_recruitmentcandidature.lib.php @@ -41,12 +41,12 @@ function recruitmentCandidaturePrepareHead($object) $head[$h][2] = 'card'; $h++; - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - $head[$h][0] = dol_buildpath("/recruitment/recruitmentrating_card.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("Rating"); - $head[$h][2] = 'rating'; - $h++; - } + // if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { + // $head[$h][0] = dol_buildpath("/recruitment/recruitmentrating_card.php", 1).'?id='.$object->id; + // $head[$h][1] = $langs->trans("Rating"); + // $head[$h][2] = 'rating'; + // $h++; + // } if (isset($object->fields['note_public']) || isset($object->fields['note_private'])) { $nbNote = 0; diff --git a/htdocs/recruitment/lib/recruitment_recruitmentjobposition.lib.php b/htdocs/recruitment/lib/recruitment_recruitmentjobposition.lib.php index 28e6128452d..179f26a84c7 100644 --- a/htdocs/recruitment/lib/recruitment_recruitmentjobposition.lib.php +++ b/htdocs/recruitment/lib/recruitment_recruitmentjobposition.lib.php @@ -42,7 +42,7 @@ function recruitmentjobpositionPrepareHead($object) $h++; $head[$h][0] = dol_buildpath("/recruitment/recruitmentcandidature_list.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("Candidatures"); + $head[$h][1] = $langs->trans("RecruitmentCandidatures"); $sql = "SELECT COUNT(rowid) as nb FROM ".MAIN_DB_PREFIX."recruitment_recruitmentcandidature WHERE fk_recruitmentjobposition = ".((int) $object->id); $resql = $db->query($sql); if ($resql) { @@ -143,7 +143,7 @@ function getPublicJobPositionUrl($mode, $ref = '', $localorexternal = 0) }*/ // For multicompany - if (!empty($out) && !empty($conf->multicompany->enabled)) { + if (!empty($out) && isModEnabled('multicompany')) { $out .= "&entity=".$conf->entity; // Check the entity because we may have the same reference in several entities } diff --git a/htdocs/recruitment/recruitmentcandidature_agenda.php b/htdocs/recruitment/recruitmentcandidature_agenda.php index 54ac648d1d0..8a6c11caf1f 100644 --- a/htdocs/recruitment/recruitmentcandidature_agenda.php +++ b/htdocs/recruitment/recruitmentcandidature_agenda.php @@ -27,8 +27,8 @@ require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -dol_include_once('/recruitment/class/recruitmentcandidature.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentcandidature.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentcandidature.lib.php'; // Load translation files required by the page @@ -36,10 +36,11 @@ $langs->loadLangs(array("recruitment", "other")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); +$socid = GETPOST('socid', 'int'); if (GETPOST('actioncode', 'array')) { $actioncode = GETPOST('actioncode', 'array', 3); @@ -47,7 +48,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -79,7 +80,7 @@ $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { - $upload_dir = $conf->recruitment->multidir_output[$object->entity]."/".$object->id; + $upload_dir = $conf->recruitment->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; } $permissiontoadd = $user->rights->recruitment->recruitmentjobposition->write; // Used by the include of actions_addupdatedelete.inc.php @@ -124,12 +125,12 @@ if (empty($reshook)) { $form = new Form($db); if ($object->id > 0) { - $title = $langs->trans("Agenda"); - //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + $title = $object->ref." - ".$langs->trans('Agenda'); + //if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; $help_url = 'Module_Agenda_En'; llxHeader('', $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = recruitmentCandidaturePrepareHead($object); @@ -142,6 +143,7 @@ if ($object->id > 0) { $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; + $morehtmlref.= $object->getFullName('', 1); /* // Ref customer $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); @@ -150,7 +152,7 @@ if ($object->id > 0) { $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - /*if (! empty($conf->projet->enabled)) + /*if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project') . ' '; @@ -171,7 +173,7 @@ if ($object->id > 0) { $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); @@ -209,7 +211,8 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.$objthirdparty->id; } - $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&backtopage=1&percentage=-1'; + $backtopageurl = urlencode($_SERVER['PHP_SELF'].'?id='.$objthirdparty->id); + $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&backtopage='.$backtopageurl; //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -219,7 +222,7 @@ if ($object->id > 0) { print '
    '; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/recruitment/recruitmentcandidature_card.php b/htdocs/recruitment/recruitmentcandidature_card.php index 93b43c99cc6..7cf9fb47b56 100644 --- a/htdocs/recruitment/recruitmentcandidature_card.php +++ b/htdocs/recruitment/recruitmentcandidature_card.php @@ -21,26 +21,6 @@ * \brief Page to create/edit/view recruitmentcandidature */ -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Do not create database handler $db -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Do not load object $user -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); // Do not load object $mysoc -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Do not load object $langs -//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check injection attack on GET parameters -//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session). This include the NOIPCHECK too. -//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value -//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message -//if (! defined("FORCECSP")) define('FORCECSP','none'); // Disable all Content Security Policies - - // Load Dolibarr environment require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -56,14 +36,14 @@ $langs->loadLangs(array("recruitment", "other", "users")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'recruitmentcandidaturecard'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -//$lineid = GETPOST('lineid', 'int'); +$lineid = GETPOST('lineid', 'int'); // Initialize technical objects $object = new RecruitmentCandidature($db); @@ -86,7 +66,7 @@ foreach ($object->fields as $key => $val) { } if (empty($action) && empty($id) && empty($ref)) { - $action = 'view'; + $action = 'create'; } // Load object @@ -277,10 +257,15 @@ $form = new Form($db); $formfile = new FormFile($db); $formproject = new FormProjets($db); -$title = $langs->trans("RecruitmentCandidature"); -$help_url = ''; -llxHeader('', $title, $help_url); +if ($action == 'create') { + $title = $langs->trans('NewCandidature'); + $help_url = ''; +} else { + $title = $object->ref." - ".$langs->trans('Card'); + $help_url = ''; +} +llxHeader('', $title, $help_url); // Part to create if ($action == 'create') { @@ -441,6 +426,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; + $morehtmlref.= $object->getFullName('', 1); /* // Ref customer $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); @@ -448,7 +434,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project') . ' '; @@ -468,7 +454,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); @@ -477,6 +463,23 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } }*/ + // Author + if (!empty($object->email_msgid)) { + $morehtmlref .= $langs->trans("CreatedBy").' : '; + + if ($object->fk_user_creat > 0) { + $fuser = new User($db); + $fuser->fetch($object->fk_user_creat); + $morehtmlref .= $fuser->getNomUrl(-1); + } + if (!empty($object->email_msgid)) { + $morehtmlref .= ' ('.$form->textwithpicto($langs->trans("CreatedByEmailCollector"), $langs->trans("EmailMsgID").': '.$object->email_msgid).')'; + } + } /* elseif (!empty($object->origin_email)) { + $morehtmlref .= $langs->trans("CreatedBy").' : '; + $morehtmlref .= img_picto('', 'email', 'class="paddingrightonly"'); + $morehtmlref .= dol_escape_htmltag($object->origin_email).' ('.$langs->trans("CreatedByPublicPortal").')'; + } */ $morehtmlref .= '
    '; @@ -524,7 +527,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Back to draft if ($object->status == $object::STATUS_VALIDATED) { if ($permissiontoadd) { - print ''.$langs->trans("SetToDraft").''; + print ''.$langs->trans("SetToDraft").''; } } @@ -550,20 +553,20 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Make offer - Refuse - Decline if ($object->status >= $object::STATUS_VALIDATED && $object->status < $object::STATUS_CONTRACT_PROPOSED) { if ($permissiontoadd) { - print ''.$langs->trans("MakeOffer").' / '.$langs->trans("Decline").''; + print ''.$langs->trans("MakeOffer").' / '.$langs->trans("Decline").''; } } // Contract refused / accepted if ($object->status == $object::STATUS_CONTRACT_PROPOSED) { if ($permissiontoadd) { - print ''.$langs->trans("Accept").' / '.$langs->trans("Decline").''; + print ''.$langs->trans("Accept").' / '.$langs->trans("Decline").''; } } // Clone if ($permissiontoadd) { - print ''.$langs->trans("ToClone").''."\n"; + print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid) ? '&socid='.$object->socid : '').'&action=clone&object=recruitmentcandidature', 'clone', $permissiontoadd); } // Button to convert into a user @@ -584,18 +587,14 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Cancel if ($permissiontoadd) { if ($object->status == $object::STATUS_VALIDATED) { - print ''.$langs->trans("Cancel").''."\n"; + print ''.$langs->trans("Cancel").''."\n"; } elseif ($object->status == $object::STATUS_REFUSED || $object->status == $object::STATUS_CANCELED || $object->status == $object::STATUS_CONTRACT_REFUSED) { print ''.$langs->trans("Re-Open").''."\n"; } } - // Delete (need delete permission, or if draft, just need create/modify permission) - if ($permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)) { - print ''.$langs->trans('Delete').''."\n"; - } else { - print ''.$langs->trans('Delete').''."\n"; - } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } print '
    '."\n"; } @@ -652,6 +651,17 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $defaulttopic = 'InformationMessage'; $diroutput = $conf->recruitment->dir_output; $trackid = 'recruitmentcandidature'.$object->id; + $inreplyto = $object->email_msgid; + + $job = new RecruitmentJobPosition($db); + $job->fetch($object->fk_recruitmentjobposition); + + require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; + $recruiter = new User($db); + $recruiter->fetch($job->fk_user_recruiter); + + $recruitername = $recruiter->getFullName(''); + $recruitermail = (!empty($job->email_recruiter) ? $job->email_recruiter : $recruiter->email); include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; } diff --git a/htdocs/recruitment/recruitmentcandidature_document.php b/htdocs/recruitment/recruitmentcandidature_document.php index 22e011daf42..ed0cb115ea7 100644 --- a/htdocs/recruitment/recruitmentcandidature_document.php +++ b/htdocs/recruitment/recruitmentcandidature_document.php @@ -28,8 +28,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -dol_include_once('/recruitment/class/recruitmentcandidature.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentcandidature.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentcandidature.lib.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "companies", "other", "mails")); @@ -48,7 +48,7 @@ $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("pa if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $liste_limit * $page; +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortorder) { @@ -97,9 +97,8 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; $form = new Form($db); -$title = $langs->trans("RecruitmentJobPosition").' - '.$langs->trans("Files"); +$title = $object->ref." - ".$langs->trans('Files'); $help_url = ''; -//$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); if ($object->id) { @@ -119,10 +118,10 @@ if ($object->id) { } // Object card - // ------------------------------------------------------------ $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; + $morehtmlref.= $object->getFullName('', 1); /* // Ref customer $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); @@ -131,7 +130,7 @@ if ($object->id) { $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - /*if (! empty($conf->projet->enabled)) + /*if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project') . ' '; @@ -152,7 +151,7 @@ if ($object->id) { $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); @@ -188,6 +187,7 @@ if ($object->id) { $param = '&id='.$object->id; $relativepathwithnofile = 'recruitmentcandidature/'.dol_sanitizeFileName($object->ref).'/'; + $savingdocmask = dol_sanitizeFileName($object->ref).'-__file__'; include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; } else { diff --git a/htdocs/recruitment/recruitmentcandidature_list.php b/htdocs/recruitment/recruitmentcandidature_list.php index 9a0a21484b1..9b860ac54d5 100644 --- a/htdocs/recruitment/recruitmentcandidature_list.php +++ b/htdocs/recruitment/recruitmentcandidature_list.php @@ -21,25 +21,6 @@ * \brief List page for recruitmentcandidature */ -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER', '1'); // Do not load object $user -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); // Do not load object $mysoc -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN', '1'); // Do not load object $langs -//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION', '1'); // Do not check injection attack on GET parameters -//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION', '1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) -//if (! defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT', 'auto'); // Force lang to a particular value -//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE', 'aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN', '1'); // The main.inc.php does not make a redirect if not logged, instead show simple error message -//if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL', '1'); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' - // Load Dolibarr environment require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment.lib.php'; @@ -50,25 +31,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; -// for other modules -//dol_include_once('/othermodule/class/otherobject.class.php'); - // Load translation files required by the page $langs->loadLangs(array("recruitment", "other")); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? -$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation -$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button -$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : ((empty($id) && empty($ref)) ? 'recruitmentcandidaturelist' : 'recruitmentjobposition_candidature'); // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') -$mode = GETPOST('mode', 'aZ'); +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$mode = GETPOST('mode', 'aZ'); +$lineid = GETPOST('lineid', 'int'); // Load variable for pagination $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; @@ -97,14 +76,14 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen // Default sort order (if not yet defined by previous GETPOST) if (!$sortfield) { - $sortfield = "t.ref"; // Set here default search field. By default 1st field in definition. + $sortfield = "t.date_creation"; // Set here default search field. By default 1st field in definition. } if (!$sortorder) { $sortorder = "DESC"; } // Initialize array of search criterias -$search_all = GETPOST('search_all', 'alphanohtml') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'); +$search_all = GETPOST('search_all', 'alphanohtml'); $search = array(); foreach ($object->fields as $key => $val) { if (GETPOST('search_'.$key, 'alpha') !== '') { @@ -149,8 +128,6 @@ if ($id > 0 || !empty($ref)) { $id = $jobposition->id; } -//include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. - $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); @@ -229,7 +206,7 @@ $now = dol_now(); //$help_url="EN:Module_RecruitmentCandidature|FR:Module_RecruitmentCandidature_FR|ES:Módulo_RecruitmentCandidature"; $help_url = ''; -$title = $langs->trans('ListOfCandidatures'); +$title = $langs->trans('RecruitmentCandidatures'); $morejs = array(); $morecss = array(); @@ -311,7 +288,7 @@ foreach ($object->fields as $key => $val) { $sql .= "t.".$db->escape($key).", "; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); } @@ -327,7 +304,7 @@ $sql = preg_replace('/,\s*$/', '', $sql); $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { /* The fast and low memory method to get and count full list converts the sql into a sql count */ - $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/Ui', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); $resql = $db->query($sqlforcount); if ($resql) { $objforcount = $db->fetch_object($resql); @@ -370,7 +347,7 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ // Output page // -------------------------------------------------------------------- -llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', ''); +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); // Part to show record @@ -444,7 +421,7 @@ if ($jobposition->id > 0 && (empty($action) || ($action != 'edit' && $action != $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($permissiontoadd) { @@ -461,7 +438,7 @@ if ($jobposition->id > 0 && (empty($action) || ($action != 'edit' && $action != $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, !empty($object->socid) ? $object->socid : 0, $object->fk_project, 'none', 0, 0, 0, 1); } } else { if (!empty($object->fk_project)) { @@ -577,7 +554,7 @@ $newcardbutton = ''; $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); $newcardbutton .= dolGetButtonTitleSeparator(); -$newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/recruitment/recruitmentcandidature_card.php', 1).'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.((int) $id)), '', $permissiontoadd); +$newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/recruitment/recruitmentcandidature_card.php', 1).'?action=create&fk_recruitmentjobposition='.$id, '', $permissiontoadd); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -637,7 +614,7 @@ if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { } foreach ($object->fields as $key => $val) { $searchkey = empty($search[$key]) ? '' : $search[$key]; - $cssforfield = (empty($val['css']) ? '' : $val['css']); + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { $cssforfield .= ($cssforfield ? ' ' : '').'center'; } elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { diff --git a/htdocs/recruitment/recruitmentcandidature_note.php b/htdocs/recruitment/recruitmentcandidature_note.php index d35edaa3b91..f04a22aaf1b 100644 --- a/htdocs/recruitment/recruitmentcandidature_note.php +++ b/htdocs/recruitment/recruitmentcandidature_note.php @@ -24,17 +24,17 @@ // Load Dolibarr environment require_once '../main.inc.php'; -dol_include_once('/recruitment/class/recruitmentcandidature.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentcandidature.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentcandidature.lib.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "companies")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); // Initialize technical objects @@ -48,7 +48,7 @@ $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { - $upload_dir = $conf->recruitment->multidir_output[$object->entity]."/".$object->id; + $upload_dir = $conf->recruitment->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; } $permissionnote = $user->rights->recruitment->recruitmentjobposition->write; // Used by the include of actions_setnotes.inc.php @@ -80,9 +80,9 @@ if (empty($reshook)) { $form = new Form($db); -//$help_url='EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes'; +$title = $object->ref." - ".$langs->trans('Notes'); $help_url = ''; -llxHeader('', $langs->trans('RecruitmentCandidature'), $help_url); +llxHeader('', $title, $help_url); if ($id > 0 || !empty($ref)) { $object->fetch_thirdparty(); @@ -96,6 +96,7 @@ if ($id > 0 || !empty($ref)) { $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; + $morehtmlref.= $object->getFullName('', 1); /* // Ref customer $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); @@ -104,7 +105,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - /*if (! empty($conf->projet->enabled)) + /*if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project') . ' '; @@ -125,7 +126,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref .= ': '.$proj->getNomUrl(); @@ -139,7 +140,6 @@ if ($id > 0 || !empty($ref)) { dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - print '
    '; print '
    '; diff --git a/htdocs/recruitment/recruitmentjobposition_agenda.php b/htdocs/recruitment/recruitmentjobposition_agenda.php index 1391ddb132d..cd6476ec068 100644 --- a/htdocs/recruitment/recruitmentjobposition_agenda.php +++ b/htdocs/recruitment/recruitmentjobposition_agenda.php @@ -27,8 +27,8 @@ require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -dol_include_once('/recruitment/class/recruitmentjobposition.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentjobposition.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php'; // Load translation files required by the page @@ -36,9 +36,9 @@ $langs->loadLangs(array("recruitment", "other")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); if (GETPOST('actioncode', 'array')) { @@ -47,7 +47,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -124,12 +124,12 @@ if (empty($reshook)) { $form = new Form($db); if ($object->id > 0) { - $title = $langs->trans("Agenda"); - //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + $title = $object->ref." - ".$langs->trans('Agenda'); + //if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; $help_url = ''; llxHeader('', $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = recruitmentjobpositionPrepareHead($object); @@ -150,7 +150,7 @@ if ($object->id > 0) { $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($permissiontoadd) { @@ -208,7 +208,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.$objthirdparty->id; } - $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&backtopage=1&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&backtopage=1'; //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -218,7 +218,7 @@ if ($object->id > 0) { print '
    '; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/recruitment/recruitmentjobposition_applications.php b/htdocs/recruitment/recruitmentjobposition_applications.php index c6e462161ed..3cdca44c93e 100644 --- a/htdocs/recruitment/recruitmentjobposition_applications.php +++ b/htdocs/recruitment/recruitmentjobposition_applications.php @@ -21,73 +21,24 @@ * \brief Page to see/add applications of a job position */ -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Do not create database handler $db -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Do not load object $user -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); // Do not load object $mysoc -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Do not load object $langs -//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check injection attack on GET parameters -//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session). This include the NOIPCHECK too. -//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value -//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message -//if (! defined("FORCECSP")) define('FORCECSP','none'); // Disable all Content Security Policies - - // Load Dolibarr environment -$res = 0; -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) -if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { - $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; -} -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME -$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; -while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { - $i--; $j--; -} -if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { - $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; -} -if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { - $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; -} -// Try main.inc.php using relative path -if (!$res && file_exists("../main.inc.php")) { - $res = @include "../main.inc.php"; -} -if (!$res && file_exists("../../main.inc.php")) { - $res = @include "../../main.inc.php"; -} -if (!$res && file_exists("../../../main.inc.php")) { - $res = @include "../../../main.inc.php"; -} -if (!$res) { - die("Include of main fails"); -} - +require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -dol_include_once('/recruitment/class/recruitmentjobposition.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentjobposition.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "other")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'recruitmentjobpositioncard'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); @@ -271,7 +222,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($permissiontoadd) { diff --git a/htdocs/recruitment/recruitmentjobposition_card.php b/htdocs/recruitment/recruitmentjobposition_card.php index 65b6f0e8885..d1ca4ef2db1 100644 --- a/htdocs/recruitment/recruitmentjobposition_card.php +++ b/htdocs/recruitment/recruitmentjobposition_card.php @@ -21,48 +21,28 @@ * \brief Page to create/edit/view recruitmentjobposition */ -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Do not create database handler $db -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Do not load object $user -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); // Do not load object $mysoc -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Do not load object $langs -//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check injection attack on GET parameters -//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session). This include the NOIPCHECK too. -//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value -//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message -//if (! defined("FORCECSP")) define('FORCECSP','none'); // Disable all Content Security Policies - - // Load Dolibarr environment require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -dol_include_once('/recruitment/class/recruitmentjobposition.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentjobposition.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "other")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'recruitmentjobpositioncard'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -//$lineid = GETPOST('lineid', 'int'); +$lineid = GETPOST('lineid', 'int'); // Initialize technical objects $object = new RecruitmentJobPosition($db); @@ -85,7 +65,7 @@ foreach ($object->fields as $key => $val) { } if (empty($action) && empty($id) && empty($ref)) { - $action = 'view'; + $action = 'create'; } // Load object @@ -197,7 +177,7 @@ $form = new Form($db); $formfile = new FormFile($db); $formproject = new FormProjets($db); -$title = $langs->trans("PositionToBeFilled"); +$title = $object->ref." - ".$langs->trans('Card'); $help_url = ''; llxHeader('', $title, $help_url); @@ -299,18 +279,19 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneAsk', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); } if ($action == 'closeas') { + $text = ""; //Form to close proposal (signed or not) $formquestion = array( array('type' => 'select', 'name' => 'status', 'label' => ''.$langs->trans("CloseAs").'', 'values' => array(3=>$object->LibStatut($object::STATUS_RECRUITED), 9=>$object->LibStatut($object::STATUS_CANCELED))), array('type' => 'text', 'name' => 'note_private', 'label' => $langs->trans("Note"), 'value' => '') // Field to complete private note (not replace) ); - /*if (!empty($conf->notification->enabled)) + /*if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $formquestion = array_merge($formquestion, array( - array('type' => 'onecolumn', 'value' => $notify->confirmMessage('PROPAL_CLOSE_SIGNED', $object->socid, $object)), + array('type' => 'onecolumn', 'value' => $notify->confirmMessage('RECRUITMENTJOBPOSITION_CLOSE_SIGNED', $object->socid, $object)), )); }*/ @@ -343,7 +324,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($permissiontoadd) { @@ -360,7 +341,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, !empty($object->socid) ? $object->socid : 0, $object->fk_project, 'none', 0, 0, 0, 1); } } else { if (!empty($object->fk_project)) { @@ -446,7 +427,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Close as recruited/canceled if ($object->status == $object::STATUS_VALIDATED) { if ($usercanclose) { - print 'global->MAIN_JUMP_TAG) ? '' : '#close').'"'; + print 'global->MAIN_JUMP_TAG) ? '' : '#close').'"'; print '>'.$langs->trans('Close').''; } else { print ''.$langs->trans('Close').''; @@ -455,7 +436,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Clone if ($permissiontoadd) { - print ''.$langs->trans("ToClone").''."\n"; + print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid) ? '&socid='.$object->socid : "").'&action=clone&object=recruitmentjobposition', 'clone', $permissiontoadd); } /* @@ -472,12 +453,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } - // Delete (need delete permission, or if draft, just need create/modify permission) - if ($permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)) { - print ''.$langs->trans('Delete').''."\n"; - } else { - print ''.$langs->trans('Delete').''."\n"; - } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } print '
    '."\n"; } diff --git a/htdocs/recruitment/recruitmentjobposition_document.php b/htdocs/recruitment/recruitmentjobposition_document.php index e3e79a5482e..a162f4c3af7 100644 --- a/htdocs/recruitment/recruitmentjobposition_document.php +++ b/htdocs/recruitment/recruitmentjobposition_document.php @@ -28,8 +28,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -dol_include_once('/recruitment/class/recruitmentjobposition.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentjobposition.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "companies", "other", "mails")); @@ -48,7 +48,7 @@ $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("pa if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $liste_limit * $page; +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortorder) { @@ -97,7 +97,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; $form = new Form($db); -$title = $langs->trans("RecruitmentJobPosition").' - '.$langs->trans("Files"); +$title = $object->ref." - ".$langs->trans('Files'); $help_url = ''; //$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); @@ -131,7 +131,7 @@ if ($object->id) { $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($permissiontoadd) { @@ -148,7 +148,7 @@ if ($object->id) { $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, !empty($object->socid) ? $object->socid : 0, $object->fk_project, 'none', 0, 0, 0, 1); } } else { if (!empty($object->fk_project)) { @@ -186,8 +186,8 @@ if ($object->id) { $permtoedit = $user->rights->recruitment->recruitmentjobposition->write; $param = '&id='.$object->id; - //$relativepathwithnofile='recruitmentjobposition/' . dol_sanitizeFileName($object->id).'/'; $relativepathwithnofile = 'recruitmentjobposition/'.dol_sanitizeFileName($object->ref).'/'; + $savingdocmask = dol_sanitizeFileName($object->ref).'-__file__'; include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; } else { diff --git a/htdocs/recruitment/recruitmentjobposition_list.php b/htdocs/recruitment/recruitmentjobposition_list.php index 4f63434f9cf..e6b538b5167 100644 --- a/htdocs/recruitment/recruitmentjobposition_list.php +++ b/htdocs/recruitment/recruitmentjobposition_list.php @@ -21,25 +21,6 @@ * \brief List page for recruitmentjobposition */ -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER', '1'); // Do not load object $user -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); // Do not load object $mysoc -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN', '1'); // Do not load object $langs -//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION', '1'); // Do not check injection attack on GET parameters -//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION', '1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data -//if (! defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) -//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT', 'auto'); // Force lang to a particular value -//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE', 'aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN', '1'); // The main.inc.php does not make a redirect if not logged, instead show simple error message -//if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL', '1'); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' - // Load Dolibarr environment require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php'; @@ -48,9 +29,6 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; -// for other modules -//dol_include_once('/othermodule/class/otherobject.class.php'); - // Load translation files required by the page $langs->loadLangs(array("recruitment", "other")); @@ -216,7 +194,7 @@ $now = dol_now(); //$help_url="EN:Module_RecruitmentJobPosition|FR:Module_RecruitmentJobPosition_FR|ES:Módulo_RecruitmentJobPosition"; $help_url = ''; -$title = $langs->trans('ListOfPositionsToBeFilled'); +$title = $langs->trans('PositionsToBeFilled'); $morejs = array(); $morecss = array(); @@ -322,7 +300,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { }*/ /* The fast and low memory method to get and count full list converts the sql into a sql count */ /* - $sqlforcount = preg_replace('/^SELECT[a-z0-9\._\s\(\),]+FROM/i', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); + $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/Ui', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); print $sqlforcount; $resql = $db->query($sqlforcount); $objforcount = $db->fetch_object($resql); @@ -468,7 +446,7 @@ if (!empty($moreforfilter)) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table @@ -478,6 +456,13 @@ print '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { @@ -523,10 +508,12 @@ if (!empty($arrayfields['nbapplications']['checked'])) { print ''; } // Action column -print ''; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} print ''."\n"; $totalarray = array(); @@ -535,6 +522,10 @@ $totalarray['nbfield'] = 0; // Fields title label // -------------------------------------------------------------------- print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { @@ -558,11 +549,13 @@ $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$ $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; if (!empty($arrayfields['nbapplications']['checked'])) { - print ''; + print ''; $totalarray['nbfield']++; } // Action column -print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} $totalarray['nbfield']++; print ''."\n"; @@ -608,6 +601,18 @@ while ($i < $imaxinloop) { // Show here line of result $j = 0; print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { @@ -664,15 +669,17 @@ while ($i < $imaxinloop) { print ''; } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/recruitment/recruitmentjobposition_note.php b/htdocs/recruitment/recruitmentjobposition_note.php index 883f5612b97..5dc4004a361 100644 --- a/htdocs/recruitment/recruitmentjobposition_note.php +++ b/htdocs/recruitment/recruitmentjobposition_note.php @@ -24,17 +24,17 @@ // Load Dolibarr environment require_once '../main.inc.php'; -dol_include_once('/recruitment/class/recruitmentjobposition.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentjobposition.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "companies")); // Get parameters $id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); +$ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); // Initialize technical objects @@ -53,7 +53,7 @@ $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { - $upload_dir = $conf->recruitment->multidir_output[$object->entity]."/".$object->id; + $upload_dir = $conf->recruitment->multidir_output[!empty($object->entity) ? $object->entity : $conf->entity]."/".$object->id; } $permissionnote = $user->rights->recruitment->recruitmentjobposition->write; // Used by the include of actions_setnotes.inc.php @@ -85,9 +85,9 @@ if (empty($reshook)) { $form = new Form($db); -//$help_url='EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes'; +$title = $object->ref." - ".$langs->trans('Notes'); $help_url = ''; -llxHeader('', $langs->trans('RecruitmentJobPosition'), $help_url); +llxHeader('', $title, $help_url); if ($id > 0 || !empty($ref)) { $object->fetch_thirdparty(); @@ -97,7 +97,6 @@ if ($id > 0 || !empty($ref)) { print dol_get_fiche_head($head, 'note', $langs->trans("RecruitmentJobPosition"), -1, $object->picto); // Object card - // ------------------------------------------------------------ $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; @@ -109,7 +108,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); */ // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= $langs->trans('Project').' '; if ($permissiontoadd) { @@ -126,7 +125,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, !empty($object->socid) ? $object->socid : 0, $object->fk_project, 'none', 0, 0, 0, 1); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/resource/agenda.php b/htdocs/resource/agenda.php index cb13ce78e7d..b5a0c099cff 100644 --- a/htdocs/resource/agenda.php +++ b/htdocs/resource/agenda.php @@ -28,6 +28,7 @@ * \brief Page of resource events */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -35,12 +36,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/resource.lib.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; // Load translation files required by the page -$langs->load("companies"); +$langs->load('companies'); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -50,8 +51,9 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } + $search_agenda_label = GETPOST('search_agenda_label'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; @@ -72,7 +74,7 @@ if (!$sortorder) { } // Initialize technical objects -//$object=new MyObject($db); + $extrafields = new ExtraFields($db); $hookmanager->initHooks(array('agendaresource')); @@ -94,7 +96,7 @@ if (!$user->rights->resource->read) { */ $parameters = array('id'=>$id); -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } @@ -126,7 +128,6 @@ if ($object->id > 0) { require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; - $langs->load("companies"); $picto = 'resource'; $title = $langs->trans("Agenda"); @@ -135,7 +136,7 @@ if ($object->id > 0) { } llxHeader('', $title); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $type = $langs->trans('ResourceSingular'); @@ -165,7 +166,7 @@ if ($object->id > 0) { print dol_get_fiche_end(); if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $param = '&id='.$object->id.'&socid='.$socid; + $param = '&id='.$object->id; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -173,7 +174,7 @@ if ($object->id > 0) { $param .= '&limit='.urlencode($limit); } - print_barre_liste($langs->trans("ActionsOnResource"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlcenter, '', 0, 1, 1); + print_barre_liste($langs->trans("ActionsOnResource"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', '', '', 0, 1, 1); // List of all actions $filters = array(); diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php index 4ffbe1eb0a7..3ee118d06c7 100644 --- a/htdocs/resource/card.php +++ b/htdocs/resource/card.php @@ -22,6 +22,7 @@ */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; @@ -49,7 +50,6 @@ if ($user->socid > 0) { } $object = new Dolresource($db); - $extrafields = new ExtraFields($db); // fetch optionals attributes and labels @@ -62,7 +62,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ $result = restrictedArea($user, 'resource', $object->id, 'resource'); $permissiontoadd = $user->rights->resource->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php - +$permissiontodelete = $user->rights->resource->delete; /* @@ -225,7 +225,7 @@ if ($action == 'create' || $object->fetch($id, $ref) > 0) { // Type print '
    '; print ''; // Description @@ -245,7 +245,7 @@ if ($action == 'create' || $object->fetch($id, $ref) > 0) { print ''; // Other attributes - $parameters = array('objectsrc' => $objectsrc); + $parameters = array(); $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; if (empty($reshook)) { @@ -348,12 +348,7 @@ if ($action == 'create' || $object->fetch($id, $ref) > 0) { } } if ($action != "delete" && $action != "create" && $action != "edit") { - // Delete resource - if ($user->rights->resource->delete) { - print '
    '; - print ''.$langs->trans('Delete').''; - print '
    '; - } + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } } print ''; diff --git a/htdocs/resource/class/dolresource.class.php b/htdocs/resource/class/dolresource.class.php index da99b2f2e97..99cc586cbb9 100644 --- a/htdocs/resource/class/dolresource.class.php +++ b/htdocs/resource/class/dolresource.class.php @@ -44,21 +44,39 @@ class Dolresource extends CommonObject */ public $picto = 'resource'; + + /** + * @var int ID + */ + public $fk_code_type_resource; + + public $type_label; + + public $description; + + public $fk_country; + + + // Variable for a link of resource + + /** + * @var int ID + */ public $resource_id; public $resource_type; public $element_id; public $element_type; public $busy; public $mandatory; - /** * @var int ID */ public $fk_user_create; - - public $type_label; public $tms = ''; + /** + * @var array Cache of type of resources. TODO Use $conf->cache['type_of_resources'] instead + */ public $cache_code_type_resource = array(); /** @@ -66,6 +84,7 @@ class Dolresource extends CommonObject */ public $oldcopy; + /** * Constructor * @@ -262,10 +281,9 @@ class Dolresource extends CommonObject $this->country_id = 0; } + // $this->oldcopy should have been set by the caller of update (here properties were already modified) if (empty($this->oldcopy)) { - $org = new self($this->db); - $org->fetch($this->id); - $this->oldcopy = $org; + $this->oldcopy = dol_clone($this); } // Update request @@ -274,7 +292,7 @@ class Dolresource extends CommonObject $sql .= " description=".(isset($this->description) ? "'".$this->db->escape($this->description)."'" : "null").","; $sql .= " fk_country=".($this->country_id > 0 ? $this->country_id : "null").","; $sql .= " fk_code_type_resource=".(isset($this->fk_code_type_resource) ? "'".$this->db->escape($this->fk_code_type_resource)."'" : "null").","; - $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').""; + $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null'); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -340,10 +358,10 @@ class Dolresource extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Load object in memory from database + * Load data of link in memory from database * - * @param int $id id object - * @return int <0 if KO, >0 if OK + * @param int $id Id of link element_resources + * @return int <0 if KO, >0 if OK */ public function fetch_element_resource($id) { @@ -528,7 +546,7 @@ class Dolresource extends CommonObject if ($limit) { $sql .= $this->db->plimit($limit, $offset); } - dol_syslog(get_class($this)."::fetch_all", LOG_DEBUG); + dol_syslog(get_class($this)."::fetchAll", LOG_DEBUG); $this->lines = array(); $resql = $this->db->query($sql); @@ -601,7 +619,7 @@ class Dolresource extends CommonObject $sql .= " element_type=".(isset($this->element_type) ? "'".$this->db->escape($this->element_type)."'" : "null").","; $sql .= " busy=".(isset($this->busy) ? $this->busy : "null").","; $sql .= " mandatory=".(isset($this->mandatory) ? $this->mandatory : "null").","; - $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').""; + $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null'); $sql .= " WHERE rowid=".((int) $this->id); diff --git a/htdocs/resource/contact.php b/htdocs/resource/contact.php index aca47d49743..3b032fffb94 100644 --- a/htdocs/resource/contact.php +++ b/htdocs/resource/contact.php @@ -3,8 +3,10 @@ * Copyright (C) 2007-2009 Laurent Destailleur * Copyright (C) 2012 Juanjo Menent * Copyright (C) 2016 Gilles Poirier - * + */ + +/** * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or @@ -22,9 +24,10 @@ /** * \file htdocs/resource/contact.php * \ingroup resource - * \brief Onglet de gestion des contacts des resources + * \brief Contacts management tab for resources */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; @@ -32,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/resource.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; // Load translation files required by the page -$langs->loadLangs(array('resource', 'sendings', 'companies')); +$langs->loadLangs(array('companies', 'resource', 'sendings')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -41,7 +44,7 @@ $action = GETPOST('action', 'aZ09'); $object = new DolResource($db); // Load object -include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Security check if ($user->socid) { @@ -55,10 +58,12 @@ if (!$user->rights->resource->read) { } + /* - * Add a new contact + * Actions */ +// Add a new contact if ($action == 'addcontact' && $user->rights->resource->write) { if ($result > 0 && $id > 0) { $contactid = (GETPOST('userid', 'int') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int')); @@ -106,13 +111,9 @@ $userstatic = new User($db); llxHeader('', $langs->trans("Resource")); -// Mode vue et edition +// View and edit mode if ($id > 0 || !empty($ref)) { - $soc = new Societe($db); - $soc->fetch($object->socid); - - $head = resource_prepare_head($object); print dol_get_fiche_head($head, 'contact', $langs->trans("ResourceSingular"), -1, 'resource'); diff --git a/htdocs/resource/document.php b/htdocs/resource/document.php index 001598d2023..6c5b4496d23 100644 --- a/htdocs/resource/document.php +++ b/htdocs/resource/document.php @@ -28,6 +28,7 @@ * \brief Page des documents joints sur les resources */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; diff --git a/htdocs/resource/element_resource.php b/htdocs/resource/element_resource.php index 6926983915b..eedfcc06245 100644 --- a/htdocs/resource/element_resource.php +++ b/htdocs/resource/element_resource.php @@ -25,15 +25,16 @@ */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { +if (isModEnabled("product") || isModEnabled("service")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; } @@ -323,6 +324,9 @@ if (!$ret) { if (($element_id || $element_ref) && $element == 'action') { require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; + // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context + $hookmanager->initHooks(array('actioncard', 'globalcard')); + $act = fetchObjectByElement($element_id, $element, $element_ref); if (is_object($act)) { $head = actions_prepare_head($act); @@ -343,27 +347,44 @@ if (!$ret) { $out .= '
  • '.img_picto($langs->trans("ViewDay"), 'object_calendarday', 'class="hideonsmartphone pictoactionview"'); $out .= ''.$langs->trans("ViewDay").''; + // Add more views from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks('addCalendarView', $parameters, $object, $action); + if (empty($reshook)) { + $out .= $hookmanager->resPrint; + } elseif ($reshook > 1) { + $out = $hookmanager->resPrint; + } + $linkback .= $out; $morehtmlref = '
    '; // Thirdparty //$morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + $savobject = $object; + $object = $act; + if (isModEnabled('project')) { $langs->load("projects"); - //$morehtmlref.='
    '.$langs->trans('Project') . ' '; - $morehtmlref .= $langs->trans('Project').': '; - if (!empty($act->fk_project)) { - $proj = new Project($db); - $proj->fetch($act->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); - if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + //$morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify') { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { - $morehtmlref .= ''; + if (!empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= $proj->getNomUrl(1); + if ($proj->title) { + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; + } + } } } + $object = $savobject; $morehtmlref .= '
    '; dol_banner_tab($act, 'element_id', $linkback, ($user->socid ? 0 : 1), 'id', 'ref', $morehtmlref, '&element='.$element, 0, '', ''); @@ -517,7 +538,7 @@ if (!$ret) { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$fichinter->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->commande->creer) { diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 1ef64555133..55a9540bfe1 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -23,6 +23,7 @@ * \brief Page to manage resource objects */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; @@ -32,6 +33,7 @@ $langs->loadLangs(array("resource", "companies", "other")); // Get parameters $id = GETPOST('id', 'int'); $action = GETPOST('action', 'alpha'); +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $lineid = GETPOST('lineid', 'int'); $element = GETPOST('element', 'alpha'); @@ -168,7 +170,7 @@ if ($search_type != '') { } // Including the previous script generate the correct SQL filter for all the extrafields -// we are playing with the behaviour of the Dolresource::fetch_all() by generating a fake +// we are playing with the behaviour of the Dolresource::fetchAll() by generating a fake // extrafields filter key to make it works $filter['ef.resource'] = $sql; diff --git a/htdocs/resource/note.php b/htdocs/resource/note.php index 98efb72d55b..d2c02df0481 100644 --- a/htdocs/resource/note.php +++ b/htdocs/resource/note.php @@ -25,6 +25,7 @@ * \brief Fiche d'information sur une resource */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/resource.lib.php'; diff --git a/htdocs/salaries/admin/salaries.php b/htdocs/salaries/admin/salaries.php index 1c9eeec6464..c30b6ff3565 100644 --- a/htdocs/salaries/admin/salaries.php +++ b/htdocs/salaries/admin/salaries.php @@ -22,12 +22,13 @@ * \brief Setup page to configure salaries module */ +// Load Dolibarr environment require '../../main.inc.php'; // Class require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; } @@ -83,7 +84,7 @@ if (preg_match('/^(set|del)_?([A-Z_]+)$/', $action, $reg)) { llxHeader('', $langs->trans('SalariesSetup')); $form = new Form($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -119,10 +120,10 @@ foreach ($list as $key) { // Value print '
  • '; } diff --git a/htdocs/salaries/admin/salaries_extrafields.php b/htdocs/salaries/admin/salaries_extrafields.php index 86fc5991757..85b389d0697 100644 --- a/htdocs/salaries/admin/salaries_extrafields.php +++ b/htdocs/salaries/admin/salaries_extrafields.php @@ -23,6 +23,7 @@ * \brief Page to setup extra fields of salaries */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,13 +81,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print '

    '; diff --git a/htdocs/salaries/ajax/ajaxsalaries.php b/htdocs/salaries/ajax/ajaxsalaries.php index adea28ee8ce..1cbecf840d2 100644 --- a/htdocs/salaries/ajax/ajaxsalaries.php +++ b/htdocs/salaries/ajax/ajaxsalaries.php @@ -38,10 +38,8 @@ if (!defined('NOREQUIREAJAX')) { if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; @@ -52,6 +50,8 @@ restrictedArea($user, 'salaries'); * View */ +top_httphead('application/json'); + $fk_user = GETPOST('fk_user', 'int'); $return_arr = array(); diff --git a/htdocs/salaries/card.php b/htdocs/salaries/card.php index 00591b5a32f..975d4d16200 100644 --- a/htdocs/salaries/card.php +++ b/htdocs/salaries/card.php @@ -26,6 +26,7 @@ * \brief Page of salaries payments */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; @@ -35,14 +36,14 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } // Load translation files required by the page $langs->loadLangs(array("compta", "banks", "bills", "users", "salaries", "hrm", "trips")); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); } @@ -109,12 +110,13 @@ $permissiontoadd = $user->rights->salaries->write; // Used by the include of act $permissiontodelete = $user->rights->salaries->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); -/** +/* * Actions */ $parameters = array(); -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +// Note that $action and $object may be modified by some hooks +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } @@ -122,14 +124,14 @@ if ($reshook < 0) { if (empty($reshook)) { $error = 0; - $backurlforlist = dol_buildpath('/salaries/list.php', 1); + $backurlforlist = DOL_URL_ROOT.'/salaries/list.php'; if (empty($backtopage) || ($cancel && empty($id))) { if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) { if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) { $backtopage = $backurlforlist; } else { - $backtopage = dol_buildpath('/salaries/card.php', 1).'?id='.($id > 0 ? $id : '__ID__'); + $backtopage = DOL_URL_ROOT.'/salaries/card.php?id='.($id > 0 ? $id : '__ID__'); } } } @@ -260,7 +262,7 @@ if ($action == 'add' && empty($cancel)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors'); $error++; } - if (!empty($conf->banque->enabled) && !empty($auto_create_paiement) && !$object->accountid > 0) { + if (isModEnabled("banque") && !empty($auto_create_paiement) && !$object->accountid > 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors'); $error++; } @@ -306,7 +308,7 @@ if ($action == 'add' && empty($cancel)) { $db->commit(); if (GETPOST('saveandnew', 'alpha')) { - setEventMessages($langs->trans("RecordSaved"), '', 'mesgs'); + setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); header("Location: card.php?action=create&fk_project=" . urlencode($projectid) . "&accountid=" . urlencode($accountid) . '&paymenttype=' . urlencode(GETPOST('paymenttype', 'az09')) . '&datepday=' . GETPOST("datepday", 'int') . '&datepmonth=' . GETPOST("datepmonth", 'int') . '&datepyear=' . GETPOST("datepyear", 'int')); exit; } else { @@ -379,6 +381,10 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->rights->salaries- $object->paye = 0; $object->id = $object->ref = null; + if (GETPOST('amount', 'alphanohtml')) { + $object->amount = price2num(GETPOST('amount', 'alphanohtml'), 'MT', 2); + } + if (GETPOST('clone_label', 'alphanohtml')) { $object->label = GETPOST('clone_label', 'alphanohtml'); } else { @@ -441,11 +447,12 @@ if ($action == "update_extras" && !empty($user->rights->salaries->read)) { $form = new Form($db); $formfile = new FormFile($db); -if (!empty($conf->projet->enabled)) $formproject = new FormProjets($db); +if (isModEnabled('project')) $formproject = new FormProjets($db); -$title = $langs->trans('Salary')." - ".$langs->trans('Card'); +$title = $langs->trans('Salary')." - ".$object->ref; $help_url = ""; -llxHeader("", $title, $help_url); + +llxHeader('', $title, $help_url); if ($id > 0) { @@ -457,8 +464,8 @@ if ($id > 0) { } // Create -if ($action == 'create') { - $year_current = strftime("%Y", dol_now()); +if ($action == 'create' && $permissiontoadd) { + $year_current = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $pastmonth = strftime("%m", dol_now()) - 1; $pastmonthyear = $year_current; if ($pastmonth == 0) { @@ -479,7 +486,7 @@ if ($action == 'create') { $datesp = dol_get_first_day($pastmonthyear, $pastmonth, false); $dateep = dol_get_last_day($pastmonthyear, $pastmonth, false); } - print ''; + print ''; print ''; print ''; if ($backtopage) { @@ -521,7 +528,7 @@ if ($action == 'create') { print ''."\n"; } - print dol_get_fiche_head('', ''); + print dol_get_fiche_head(''); print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '.$langs->trans("Applications").''.$langs->trans("RecruitmentCandidatures").'
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''.$obj->nbapplications.''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($object->id, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '.$langs->trans("ResourceType").''; - $ret = $formresource->select_types_resource($object->fk_code_type_resource, 'fk_code_type_resource', '', 2); + $formresource->select_types_resource($object->fk_code_type_resource, 'fk_code_type_resource', '', 2); print '
    '; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account(getDolGlobalString($key), $key, 1, '', 1, 1); } else { - print ''; + print ''; } print '
    '; @@ -559,7 +566,7 @@ if ($action == 'create') { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); print ''."\n"; // Date payment // Bank - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; // Number - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { // Number print ''; + print ''; + print ''; + print ''; + } + // Social networks - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { if ($value['active']) { print ''; @@ -1717,9 +1801,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Capital print ''; print ''; - - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (isModEnabled("multicurrency")) { + print ''.$langs->trans("Currency".$object->multicurrency_code).''; + } else { + print ''.$langs->trans("Currency".$conf->currency).''; + } + if (getDolGlobalInt('MAIN_MULTILANGS')) { print ''; @@ -1727,7 +1814,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; print ''; print ''; print ''; print ''; } @@ -1806,9 +1894,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Accountancy codes if (!empty($conf->global->ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY)) { - print '
    '.$langs->trans("Project").''; @@ -583,7 +590,7 @@ if ($action == 'create') { print '
    '; print $form->editfieldkey('BankAccount', 'selectaccountid', '', $object, 0, 'string', '', 1).''; print img_picto('', 'bank_account', 'class="paddingrighonly"'); @@ -610,7 +617,7 @@ if ($action == 'create') { print '
    '; + print $form->selectyesno('no_email', (GETPOSTISSET("no_email") ? GETPOST("no_email", 'int') : $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS), 1, false, ($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2)); + print '
    '.$form->editfieldkey('Capital', 'capital', '', $object, 0).' '; - print ''.$langs->trans("Currency".$conf->currency).'
    '.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).''."\n"; print img_picto('', 'language', 'class="pictofixedwidth"').$formadmin->select_language(GETPOST('default_lang', 'alpha') ? GETPOST('default_lang', 'alpha') : ($object->default_lang ? $object->default_lang : ''), 'default_lang', 0, 0, 1, 0, 0, 'maxwidth200onsmartphone'); print '
    '.$form->editfieldkey('IncotermLabel', 'incoterm_id', '', $object, 0).''; @@ -1736,7 +1823,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { $langs->load('categories'); // Customer @@ -1753,7 +1840,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Supplier - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) { print '
    '.$form->editfieldkey('SuppliersCategoriesShort', 'suppcats', '', $object, 0).''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, 'parent', null, null, 1); print img_picto('', 'category', 'class="pictofixedwidth"').$form->multiselectarray('suppcats', $cate_arbo, GETPOST('suppcats', 'array'), null, null, 'quatrevingtpercent widthcentpercentminusx', 0, 0); @@ -1762,11 +1849,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print '
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; - print $form->selectMultiCurrency(($object->multicurrency_code ? $object->multicurrency_code : $conf->currency), 'multicurrency_code', 1); + print img_picto('', 'currency', 'class="pictofixedwidth"'); + print $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1, '', false, 'maxwidth150 widthcentpercentminusx'); print '
    '; + print '
    '; - if (! empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { // Accountancy_code_sell print ''; print ''; // Supplier - if (((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) - || (!empty($conf->supplier_proposal->enabled) && !empty($user->rights->supplier_proposal->lire))) { + if (((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) + || (isModEnabled('supplier_proposal') && !empty($user->rights->supplier_proposal->lire))) { print ''; print ''; print ''; } print ''; @@ -2185,7 +2280,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { print ''; print ''; // Zip / Town - print 'browser->layout == 'phone' ? ' colspan="3"': '').'>'; print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth100'); print ''; if ($conf->browser->layout == 'phone') { print ''; } - print 'browser->layout == 'phone' ? ' colspan="3"': '').'>'; print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id')); print $form->widgetForTranslation("town", $object, $permissiontoadd, 'string', 'alphanohtml', 'maxwidth100 quatrevingtpercent'); print ''; @@ -2242,29 +2337,72 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Phone / Fax print ''; - print ''; + print 'browser->layout == 'phone' ? ' colspan="3"': '').'>'.img_picto('', 'object_phoning', 'class="pictofixedwidth"').' '; if ($conf->browser->layout == 'phone') { print ''; } print ''; - print ''; + print 'browser->layout == 'phone' ? ' colspan="3"': '').'>'.img_picto('', 'object_phoning_fax', 'class="pictofixedwidth"').' '; + print ''; - // EMail / Web - print ''; - print ''; + // Web print ''; - print ''; + print ''; - if (!empty($conf->socialnetworks->enabled)) { + // EMail + print ''; + print ''; + + // Unsubscribe + if (!empty($conf->mailing->enabled)) { + if ($conf->use_javascript_ajax && isset($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS) && $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2) { + print "\n".''."\n"; + } + if (!GETPOSTISSET("no_email") && !empty($object->email)) { + $result = $object->getNoEmail(); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + print ''; + print ''; + print ''; + print ''; + } + + // Social network + if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { if ($value['active']) { print ''; print ''; print ''; print ''; } elseif (!empty($object->socialnetworks[$key])) { @@ -2407,18 +2545,22 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; print ''; + if (isModEnabled("multicurrency")) { + print '"> '.$langs->trans("Currency".$object->multicurrency_code).''; + } else { + print '"> '.$langs->trans("Currency".$conf->currency).''; + } // Default language - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { print ''; print ''; } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print ''; print ''; print ''; print '"; // Supplier - if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) { + if ((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) { print ''; print '"; } } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print ''; } @@ -2470,6 +2613,16 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $parameters = array('socid'=>$socid, 'colspan' => ' colspan="3"', 'colspanvalue' => '3'); include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php'; + // Parent company + if (empty($conf->global->SOCIETE_DISABLE_PARENTCOMPANY)) { + print ''; + print ''; + print ''; + } + // Webservices url/key if (!empty($conf->syncsupplierwebservices->enabled)) { print ''; @@ -2495,7 +2648,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; } //print ''; - print ''; + print ''; print '
    '.$langs->trans("ProductAccountancySellCode").''; @@ -1901,9 +1989,10 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->town = GETPOST('town', 'alphanohtml'); $object->country_id = GETPOST('country_id') ?GETPOST('country_id', 'int') : $mysoc->country_id; $object->state_id = GETPOST('state_id', 'int'); + $object->parent = GETPOST('parent_company_id', 'int'); $object->socialnetworks = array(); - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { if (GETPOSTISSET($key) && GETPOST($key, 'alphanohtml') != '') { $object->socialnetworks[$key] = GETPOST($key, 'alphanohtml'); @@ -1914,6 +2003,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->phone = GETPOST('phone', 'alpha'); $object->fax = GETPOST('fax', 'alpha'); $object->email = GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL); + $object->no_email = GETPOST("no_email", "int"); $object->url = GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL); $object->capital = GETPOST('capital', 'alphanohtml'); $object->idprof1 = GETPOST('idprof1', 'alphanohtml'); @@ -1956,7 +2046,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } //Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { $object->fk_incoterms = GETPOST('incoterm_id', 'int'); $object->location_incoterms = GETPOST('lcoation_incoterms', 'alpha'); } @@ -1974,6 +2064,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->country_code = $tmparray['code']; $object->country = $tmparray['label']; } + + // We set multicurrency_code if enabled + if (isModEnabled("multicurrency")) { + $object->multicurrency_code = GETPOST('multicurrency_code') ? GETPOST('multicurrency_code') : $object->multicurrency_code; + } } if ($object->localtax1_assuj == 0) { @@ -2055,7 +2150,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { { jQuery(".visibleifsupplier").show(); } - }; + } $("#selectcountry_id").change(function() { document.formsoc.action.value="edit"; @@ -2145,8 +2240,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '.$form->editfieldkey('Supplier', 'fournisseur', '', $object, 0, 'string', '', 1).''; @@ -2156,7 +2251,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; - if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) { + if ((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) { print $form->editfieldkey('SupplierCode', 'supplier_code', '', $object, 0); } print '
    '.$form->editfieldkey('Gencod', 'barcode', '', $object, 0).''; print img_picto('', 'barcode'); @@ -2207,13 +2302,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).''; + print '
    '.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'
    '.$form->editfieldkey('Town', 'town', '', $object, 0).''; + print ''.$form->editfieldkey('Town', 'town', '', $object, 0).'
    '.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).''.img_picto('', 'object_phoning').'
    '.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).''.img_picto('', 'object_phoning_fax').'
    '.$form->editfieldkey('EMail', 'email', GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL), $object, 0, 'string', '', (!empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''.img_picto('', 'object_email').'
    '.$form->editfieldkey('Web', 'url', GETPOST('url', 'alpha'), $object, 0).''.img_picto('', 'globe').'
    '.img_picto('', 'globe', 'class="pictofixedwidth"').'
    '.$form->editfieldkey('EMail', 'email', GETPOST('email', 'alpha'), $object, 0, 'string', '', (!empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; + print img_picto('', 'object_email', 'class="pictofixedwidth"'); + print ''; + print '
    '; + $useempty = (isset($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS) && ($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2)); + print $form->selectyesno('no_email', (GETPOSTISSET("no_email") ? GETPOST("no_email", 'int') : $object->no_email), 1, false, $useempty); + print '
    '; if (!empty($value['icon'])) { - print ''; + print ''; } - print ''; + print ''; print '
    '.$form->editfieldkey('Capital', 'capital', '', $object, 0).' '.$langs->trans("Currency".$conf->currency).'
    '.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).''."\n"; - print img_picto('', 'language').$formadmin->select_language($object->default_lang, 'default_lang', 0, 0, 1); + print img_picto('', 'language', 'class="pictofixedwidth"').$formadmin->select_language($object->default_lang, 'default_lang', 0, null, '1', 0, 0, 'maxwidth300 widthcentpercentminusx'); print '
    '.$form->editfieldkey('IncotermLabel', 'incoterm_id', '', $object, 0).''; @@ -2427,7 +2569,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { // Customer print '
    '.$form->editfieldkey('CustomersCategoriesShort', 'custcats', '', $object, 0).''; @@ -2438,11 +2580,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { foreach ($cats as $cat) { $arrayselected[] = $cat->id; } - print img_picto('', 'category').$form->multiselectarray('custcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); + print img_picto('', 'category', 'class="pictofixedwidth"').$form->multiselectarray('custcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); print "
    '.$form->editfieldkey('SuppliersCategoriesShort', 'suppcats', '', $object, 0).''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, null, null, null, 1); @@ -2452,17 +2594,18 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { foreach ($cats as $cat) { $arrayselected[] = $cat->id; } - print img_picto('', 'category').$form->multiselectarray('suppcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); + print img_picto('', 'category', 'class="pictofixedwidth"').$form->multiselectarray('suppcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); print "
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; - print $form->selectMultiCurrency(($object->multicurrency_code ? $object->multicurrency_code : $conf->currency), 'multicurrency_code', 1); + print img_picto('', 'currency', 'class="pictofixedwidth"'); + print $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1, '', false, 'maxwidth150 widthcentpercentminusx'); print '
    '.$langs->trans('ParentCompany').''; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print $form->select_company(GETPOST('parent_company_id') ? GETPOST('parent_company_id') : $object->parent, 'parent_company_id', '', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 maxwidth500 widthcentpercentminusxx'); + print '
    '.$form->editfieldkey('WebServiceURL', 'webservices_url', '', $object, 0).'
    '.$langs->trans("Delete").'

    '.$langs->trans("PhotoFile").'
    '; + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + print ''; // MAX_FILE_SIZE must precede the field type=file + } + print ''; + print '
    '; } print '
  • '; @@ -2519,7 +2679,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; print ''; - if (! empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { // Accountancy_code_sell print ''; print ''; @@ -2784,7 +2944,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; // Warehouse - if (!empty($conf->stock->enabled) && !empty($conf->global->SOCIETE_ASK_FOR_WAREHOUSE)) { + if (isModEnabled('stock') && !empty($conf->global->SOCIETE_ASK_FOR_WAREHOUSE)) { $langs->load('stocks'); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); @@ -2845,7 +3005,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '.$langs->trans("ProductAccountancySellCode").''; @@ -2640,7 +2800,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Supplier code - if (((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) && $object->fournisseur) { + if (((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) && $object->fournisseur) { print '
    '; print $langs->trans('SupplierCode').''; print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); @@ -2653,7 +2813,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { print '
    '; print $langs->trans('Gencod').''.showValueWithClipboardCPButton(dol_escape_htmltag($object->barcode)); print ''.$langs->trans('VATIntra').''; if ($object->tva_intra) { $s = ''; - $s .= dol_print_profids($object->tva_intra, 'VATIntra', $object->country_code, 1); + $s .= dol_print_profids($object->tva_intra, 'VAT', $object->country_code, 1); $s .= ''; if (empty($conf->global->MAIN_DISABLEVATCHECK) && isInEEC($object)) { @@ -2816,7 +2976,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; // Tags / categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { // Customer if ($object->prospect || $object->client || !empty($conf->global->THIRDPARTY_CAN_HAVE_CUSTOMER_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT)) { print ''; @@ -2855,7 +3015,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Supplier - if (((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) && $object->fournisseur) { + if (((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) && $object->fournisseur) { print ''; print ''; + // Unsubscribe opt-out + if (!empty($conf->mailing->enabled)) { + $result = $object->getNoEmail(); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + print ''; + } + // Default language - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; print ''; print ''; print ''; print '\n"; } + // Link user (you must create a contact to get a user) + /* + print ''; + */ + // Webservices url/key if (!empty($conf->syncsupplierwebservices->enabled)) { print ''; @@ -3045,7 +3244,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?socid='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd); - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $adh = new Adherent($db); $result = $adh->fetch('', '', $object->id); if ($result == 0 && ($object->client == 1 || $object->client == 3) && !empty($conf->global->MEMBER_CAN_CONVERT_CUSTOMERS_TO_MEMBERS)) { @@ -3055,7 +3254,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print dolGetButtonAction($langs->trans('MergeThirdparties'), $langs->trans('Merge'), 'danger', $_SERVER["PHP_SELF"].'?socid='.$object->id.'&action=merge&token='.newToken(), '', $permissiontodelete); - if ($user->rights->societe->supprimer) { + if ($user->hasRight('societe', 'supprimer')) { $deleteUrl = $_SERVER["PHP_SELF"].'?socid='.$object->id.'&action=delete&token='.newToken(); $buttonId = 'action-delete-no-ajax'; if ($conf->use_javascript_ajax && empty($conf->dol_use_jmobile)) { // We can't use preloaded confirm form with jmobile @@ -3085,14 +3284,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { */ $filedir = $conf->societe->multidir_output[$object->entity].'/'.$object->id; $urlsource = $_SERVER["PHP_SELF"]."?socid=".$object->id; - $genallowed = $user->rights->societe->lire; - $delallowed = $user->rights->societe->creer; + $genallowed = $user->hasRight('societe', 'lire'); + $delallowed = $user->hasRight('societe', 'creer'); print $formfile->showdocuments('company', $object->id, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 0, 0, 0, 28, 0, 'entity='.$object->entity, 0, '', $object->default_lang); } // Subsidiaries list - if (empty($conf->global->SOCIETE_DISABLE_SUBSIDIARIES)) { + if (empty($conf->global->SOCIETE_DISABLE_PARENTCOMPANY) && empty($conf->global->SOCIETE_DISABLE_SHOW_SUBSIDIARIES)) { $result = show_subsidiaries($conf, $langs, $db, $object); } @@ -3114,11 +3313,6 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) { $result = show_contacts($conf, $langs, $db, $object, $_SERVER["PHP_SELF"].'?socid='.$object->id); } - - // Addresses list - if (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT)) { - $result = show_addresses($conf, $langs, $db, $object, $_SERVER["PHP_SELF"].'?socid='.$object->id); - } } } diff --git a/htdocs/societe/class/api_contacts.class.php b/htdocs/societe/class/api_contacts.class.php index 3e7e1ac2080..68bba46a3cb 100644 --- a/htdocs/societe/class/api_contacts.class.php +++ b/htdocs/societe/class/api_contacts.class.php @@ -97,6 +97,10 @@ class Contacts extends DolibarrApi $this->contact->fetchRoles(); } + if (isModEnabled('mailing')) { + $this->contact->getNoEmail(); + } + return $this->_cleanObjectDatas($this->contact); } @@ -141,6 +145,10 @@ class Contacts extends DolibarrApi $this->contact->fetchRoles(); } + if (isModEnabled('mailing')) { + $this->contact->getNoEmail(); + } + return $this->_cleanObjectDatas($this->contact); } @@ -250,6 +258,9 @@ class Contacts extends DolibarrApi if ($includeroles) { $contact_static->fetchRoles(); } + if (isModEnabled('mailing')) { + $contact_static->getNoEmail(); + } $obj_ret[] = $this->_cleanObjectDatas($contact_static); } @@ -285,6 +296,9 @@ class Contacts extends DolibarrApi if ($this->contact->create(DolibarrApiAccess::$user) < 0) { throw new RestException(500, "Error creating contact", array_merge(array($this->contact->error), $this->contact->errors)); } + if (isModEnabled('mailing') && !empty($this->contact->email) && isset($this->contact->no_email)) { + $this->contact->setNoEmail($this->contact->no_email); + } return $this->contact->id; } @@ -317,7 +331,11 @@ class Contacts extends DolibarrApi $this->contact->$field = $value; } - if ($this->contact->update($id, DolibarrApiAccess::$user, 1, '', '', 'update')) { + if (isModEnabled('mailing') && !empty($this->contact->email) && isset($this->contact->no_email)) { + $this->contact->setNoEmail($this->contact->no_email); + } + + if ($this->contact->update($id, DolibarrApiAccess::$user, 1, 'update')) { return $this->get($id); } diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index 962bbf021b8..c4781c0df6a 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -132,7 +132,7 @@ class Thirdparties extends DolibarrApi { $obj_ret = array(); - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -150,6 +150,7 @@ class Thirdparties extends DolibarrApi $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) } $sql .= " FROM ".MAIN_DB_PREFIX."societe as t"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields AS ef ON ef.fk_object = t.rowid"; // So we will be able to filter on extrafields if ($category > 0) { if ($mode != 4) { $sql .= ", ".MAIN_DB_PREFIX."categorie_societe as c"; @@ -230,6 +231,9 @@ class Thirdparties extends DolibarrApi $obj = $this->db->fetch_object($result); $soc_static = new Societe($this->db); if ($soc_static->fetch($obj->rowid)) { + if (isModEnabled('mailing')) { + $soc_static->getNoEmail(); + } $obj_ret[] = $this->_cleanObjectDatas($soc_static); } $i++; @@ -263,6 +267,9 @@ class Thirdparties extends DolibarrApi if ($this->company->create(DolibarrApiAccess::$user) < 0) { throw new RestException(500, 'Error creating thirdparty', array_merge(array($this->company->error), $this->company->errors)); } + if (isModEnabled('mailing') && !empty($this->company->email) && isset($this->company->no_email)) { + $this->company->setNoEmail($this->company->no_email); + } return $this->company->id; } @@ -296,7 +303,11 @@ class Thirdparties extends DolibarrApi $this->company->$field = $value; } - if ($this->company->update($id, DolibarrApiAccess::$user, 1, '', '', 'update')) { + if (isModEnabled('mailing') && !empty($this->company->email) && isset($this->company->no_email)) { + $this->company->setNoEmail($this->company->no_email); + } + + if ($this->company->update($id, DolibarrApiAccess::$user, 1, '', '', 'update', 1)) { return $this->get($id); } @@ -425,8 +436,9 @@ class Thirdparties extends DolibarrApi // TODO Mutualise the list into object societe.class.php $objects = array( 'Adherent' => '/adherents/class/adherent.class.php', + 'Don' => '/don/class/don.class.php', 'Societe' => '/societe/class/societe.class.php', - 'Categorie' => '/categories/class/categorie.class.php', + //'Categorie' => '/categories/class/categorie.class.php', 'ActionComm' => '/comm/action/class/actioncomm.class.php', 'Propal' => '/comm/propal/class/propal.class.php', 'Commande' => '/commande/class/commande.class.php', @@ -442,12 +454,13 @@ class Thirdparties extends DolibarrApi 'FactureFournisseur' => '/fourn/class/fournisseur.facture.class.php', 'SupplierProposal' => '/supplier_proposal/class/supplier_proposal.class.php', 'ProductFournisseur' => '/fourn/class/fournisseur.product.class.php', - 'Livraison' => '/delivery/class/delivery.class.php', + 'Delivery' => '/delivery/class/delivery.class.php', 'Product' => '/product/class/product.class.php', 'Project' => '/projet/class/project.class.php', 'Ticket' => '/ticket/class/ticket.class.php', 'User' => '/user/class/user.class.php', - 'Account' => '/compta/bank/class/account.class.php' + 'Account' => '/compta/bank/class/account.class.php', + 'ConferenceOrBoothAttendee' => '/eventorganization/class/conferenceorboothattendee.class.php' ); //First, all core objects must update their tables @@ -510,12 +523,12 @@ class Thirdparties extends DolibarrApi /** * Delete thirdparty * - * @param int $id Thirparty ID + * @param int $id Thirdparty ID * @return integer */ public function delete($id) { - if (!DolibarrApiAccess::$user->rights->societe->supprimer) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'supprimer')) { throw new RestException(401); } $result = $this->company->fetch($id); @@ -526,7 +539,20 @@ class Thirdparties extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } $this->company->oldcopy = clone $this->company; - return $this->company->delete($id); + + $res = $this->company->delete($id); + if ($res < 0) { + throw new RestException(500, "Can't delete, error occurs"); + } elseif ($res == 0) { + throw new RestException(409, "Can't delete, that product is probably used"); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Object deleted' + ) + ); } /** @@ -548,7 +574,7 @@ class Thirdparties extends DolibarrApi { global $conf; - if (empty($conf->societe->enabled)) { + if (!isModEnabled('societe')) { throw new RestException(501, 'Module "Thirdparties" needed for this request'); } @@ -836,7 +862,7 @@ class Thirdparties extends DolibarrApi */ public function getOutStandingProposals($id, $mode = 'customer') { - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -878,7 +904,7 @@ class Thirdparties extends DolibarrApi */ public function getOutStandingOrder($id, $mode = 'customer') { - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -919,7 +945,7 @@ class Thirdparties extends DolibarrApi */ public function getOutStandingInvoices($id, $mode = 'customer') { - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -960,7 +986,7 @@ class Thirdparties extends DolibarrApi */ public function getSalesRepresentatives($id, $mode = 0) { - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -1003,7 +1029,7 @@ class Thirdparties extends DolibarrApi { $obj_ret = array(); - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -1082,7 +1108,7 @@ class Thirdparties extends DolibarrApi $invoice = new Facture($this->db); $result = $invoice->list_replacable_invoices($id); if ($result < 0) { - throw new RestException(405, $this->thirdparty->error); + throw new RestException(405, $invoice->error); } return $result; @@ -1125,7 +1151,7 @@ class Thirdparties extends DolibarrApi $invoice = new Facture($this->db); $result = $invoice->list_qualified_avoir_invoices($id); if ($result < 0) { - throw new RestException(405, $this->thirdparty->error); + throw new RestException(405, $invoice->error); } return $result; @@ -1142,7 +1168,7 @@ class Thirdparties extends DolibarrApi */ public function getCompanyBankAccount($id) { - if (!DolibarrApiAccess::$user->rights->facture->lire) { + if (!DolibarrApiAccess::$user->rights->societe->lire) { throw new RestException(401); } if (empty($id)) { @@ -1164,10 +1190,9 @@ class Thirdparties extends DolibarrApi $sql .= " WHERE fk_soc = ".((int) $id); } - $result = $this->db->query($sql); - if ($result->num_rows == 0) { + if ($this->db->num_rows($result) == 0) { throw new RestException(404, 'Account not found'); } @@ -1354,8 +1379,8 @@ class Thirdparties extends DolibarrApi $outputlangs = $langs; $newlang = ''; - //if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { + //if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { if (isset($this->company->thirdparty->default_lang)) { $newlang = $this->company->thirdparty->default_lang; // for proposal, order, invoice, ... } elseif (isset($this->company->default_lang)) { @@ -1409,7 +1434,7 @@ class Thirdparties extends DolibarrApi if ($result > 0) { return array("success" => $result); } else { - throw new RestException(500, 'Error generating the document '.$this->error); + throw new RestException(500, 'Error generating the document '.$this->company->error); } } @@ -1427,7 +1452,7 @@ class Thirdparties extends DolibarrApi */ public function getSocieteAccounts($id, $site = null) { - if (!DolibarrApiAccess::$user->rights->societe->lire) { + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { throw new RestException(401); } @@ -1783,6 +1808,10 @@ class Thirdparties extends DolibarrApi unset($object->particulier); unset($object->prefix_comm); + unset($object->siren); + unset($object->siret); + unset($object->ape); + unset($object->commercial_id); // This property is used in create/update only. It does not exists in read mode because there is several sales representatives. unset($object->total_ht); @@ -1854,8 +1883,8 @@ class Thirdparties extends DolibarrApi { global $conf; - if (!DolibarrApiAccess::$user->rights->societe->lire) { - throw new RestException(401); + if (!DolibarrApiAccess::$user->hasRight('societe', 'lire')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login.'. No read permission on thirdparties.'); } if ($rowid === 0) { @@ -1868,7 +1897,10 @@ class Thirdparties extends DolibarrApi } if (!DolibarrApi::_checkAccessToResource('societe', $this->company->id)) { - throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login.' on this thirdparty'); + } + if (isModEnabled('mailing')) { + $this->company->getNoEmail(); } if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { diff --git a/htdocs/societe/class/companybankaccount.class.php b/htdocs/societe/class/companybankaccount.class.php index 717398c92d4..26305bb0013 100644 --- a/htdocs/societe/class/companybankaccount.class.php +++ b/htdocs/societe/class/companybankaccount.class.php @@ -47,6 +47,9 @@ class CompanyBankAccount extends Account public $rum; public $date_rum; + public $stripe_card_ref; // ID of BAN into an external payment system + public $stripe_account; // Account of the external payment system + /** * Date creation record (datec) * @@ -127,7 +130,7 @@ class CompanyBankAccount extends Account // End call triggers if (!$error) { - return 1; + return $this->id; } else { return 0; } @@ -136,7 +139,7 @@ class CompanyBankAccount extends Account } } } else { - print $this->db->error(); + $this->error = $this->db->lasterror(); return 0; } } @@ -150,7 +153,7 @@ class CompanyBankAccount extends Account */ public function update(User $user = null, $notrigger = 0) { - global $conf; + global $conf, $langs; $error = 0; @@ -187,6 +190,8 @@ class CompanyBankAccount extends Account } else { $sql .= ",label = NULL"; } + $sql .= ",stripe_card_ref = '".$this->db->escape($this->stripe_card_ref)."'"; + $sql .= ",stripe_account = '".$this->db->escape($this->stripe_account)."'"; $sql .= " WHERE rowid = ".((int) $this->id); $result = $this->db->query($sql); @@ -207,7 +212,11 @@ class CompanyBankAccount extends Account return 1; } } else { - $this->error = $this->db->lasterror(); + if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + $this->error = $langs->trans('ErrorDuplicateField'); + } else { + $this->error = $this->db->lasterror(); + } return -1; } } @@ -228,12 +237,12 @@ class CompanyBankAccount extends Account } $sql = "SELECT rowid, type, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio,"; - $sql .= " owner_address, default_rib, label, datec, tms as datem, rum, frstrecur, date_rum"; + $sql .= " owner_address, default_rib, label, datec, tms as datem, rum, frstrecur, date_rum,"; + $sql .= " stripe_card_ref, stripe_account"; $sql .= " FROM ".MAIN_DB_PREFIX."societe_rib"; if ($id) { $sql .= " WHERE rowid = ".((int) $id); - } - if ($socid) { + } elseif ($socid > 0) { $sql .= " WHERE fk_soc = ".((int) $socid); if ($default > -1) { $sql .= " AND default_rib = ".((int) $default); @@ -270,6 +279,8 @@ class CompanyBankAccount extends Account $this->rum = $obj->rum; $this->frstrecur = $obj->frstrecur; $this->date_rum = $this->db->jdate($obj->date_rum); + $this->stripe_card_ref = $obj->stripe_card_ref; + $this->stripe_account = $obj->stripe_account; } $this->db->free($resql); @@ -338,7 +349,7 @@ class CompanyBankAccount extends Account $rib = $this->label." : "; } - $rib .= (string) $this; + $rib .= $this->iban; } return $rib; diff --git a/htdocs/societe/class/companypaymentmode.class.php b/htdocs/societe/class/companypaymentmode.class.php index ba924279ce2..eb77a928f14 100644 --- a/htdocs/societe/class/companypaymentmode.class.php +++ b/htdocs/societe/class/companypaymentmode.class.php @@ -195,32 +195,6 @@ class CompanyPaymentMode extends CommonObject // END MODULEBUILDER PROPERTIES - - // If this object has a subtable with lines - - /** - * @var string Name of subtable line - */ - //public $table_element_line = 'companypaymentmodedet'; - /** - * @var string Field with ID of parent key if this field has a parent - */ - //public $fk_element = 'fk_companypaymentmode'; - /** - * @var string Name of subtable class that manage subtable lines - */ - //public $class_element_line = 'CompanyPaymentModeline'; - /** - * @var array List of child tables. To test if we can delete object. - */ - //protected $childtables=array(); - /** - * @var CompanyPaymentModeLine[] Array of subtable lines - */ - //public $lines = array(); - - - /** * Constructor * @@ -235,7 +209,7 @@ class CompanyPaymentMode extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } } @@ -329,7 +303,7 @@ class CompanyPaymentMode extends CommonObject // For backward compatibility $this->iban = $this->iban_prefix; - //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + //if ($result > 0 && !empty($this->table_element_line)) $this->fetchLines(); return $result; } @@ -554,27 +528,11 @@ class CompanyPaymentMode extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 83fe2b22282..dbc9245fd71 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -15,8 +15,9 @@ * Copyright (C) 2017 Rui Strecht * Copyright (C) 2018 Philippe Grand * Copyright (C) 2019-2020 Josep Lluís Amador - * Copyright (C) 2019-2021 Frédéric France + * Copyright (C) 2019-2022 Frédéric France * Copyright (C) 2020 Open-Dsi + * Copyright (C) 2022 ButterflyOfFire * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -195,7 +196,7 @@ class Societe extends CommonObject 'fk_stcomm' =>array('type'=>'integer', 'label'=>'CommercialStatus', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>220), 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>225), 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>230), - 'prefix_comm' =>array('type'=>'varchar(5)', 'label'=>'Prefix comm', 'enabled'=>'$conf->global->SOCIETE_USEPREFIX', 'visible'=>-1, 'position'=>235), + 'prefix_comm' =>array('type'=>'varchar(5)', 'label'=>'Prefix comm', 'enabled'=>"getDolGlobalInt('SOCIETE_USEPREFIX')", 'visible'=>-1, 'position'=>235), 'client' =>array('type'=>'tinyint(4)', 'label'=>'Client', 'enabled'=>1, 'visible'=>-1, 'position'=>240), 'fournisseur' =>array('type'=>'tinyint(4)', 'label'=>'Fournisseur', 'enabled'=>1, 'visible'=>-1, 'position'=>245), 'supplier_account' =>array('type'=>'varchar(32)', 'label'=>'Supplier account', 'enabled'=>1, 'visible'=>-1, 'position'=>250), @@ -213,8 +214,8 @@ class Societe extends CommonObject 'mode_reglement_supplier' =>array('type'=>'integer', 'label'=>'Mode reglement supplier', 'enabled'=>1, 'visible'=>-1, 'position'=>305), 'cond_reglement_supplier' =>array('type'=>'integer', 'label'=>'Cond reglement supplier', 'enabled'=>1, 'visible'=>-1, 'position'=>308), 'outstanding_limit' =>array('type'=>'double(24,8)', 'label'=>'OutstandingBill', 'enabled'=>1, 'visible'=>-1, 'position'=>310, 'isameasure'=>1), - 'order_min_amount' =>array('type'=>'double(24,8)', 'label'=>'Order min amount', 'enabled'=>'!empty($conf->commande->enabled) && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)', 'visible'=>-1, 'position'=>315, 'isameasure'=>1), - 'supplier_order_min_amount' =>array('type'=>'double(24,8)', 'label'=>'Supplier order min amount', 'enabled'=>'!empty($conf->commande->enabled) && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)', 'visible'=>-1, 'position'=>320, 'isameasure'=>1), + 'order_min_amount' =>array('type'=>'double(24,8)', 'label'=>'Order min amount', 'enabled'=>'isModEnabled("commande") && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)', 'visible'=>-1, 'position'=>315, 'isameasure'=>1), + 'supplier_order_min_amount' =>array('type'=>'double(24,8)', 'label'=>'Supplier order min amount', 'enabled'=>'isModEnabled("commande") && !empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)', 'visible'=>-1, 'position'=>320, 'isameasure'=>1), 'fk_shipping_method' =>array('type'=>'integer', 'label'=>'Fk shipping method', 'enabled'=>1, 'visible'=>-1, 'position'=>330), 'tva_assuj' =>array('type'=>'tinyint(4)', 'label'=>'Tva assuj', 'enabled'=>1, 'visible'=>-1, 'position'=>335), 'localtax1_assuj' =>array('type'=>'tinyint(4)', 'label'=>'Localtax1 assuj', 'enabled'=>1, 'visible'=>-1, 'position'=>340), @@ -231,6 +232,7 @@ class Societe extends CommonObject 'fk_incoterms' =>array('type'=>'integer', 'label'=>'Fk incoterms', 'enabled'=>1, 'visible'=>-1, 'position'=>425), 'location_incoterms' =>array('type'=>'varchar(255)', 'label'=>'Location incoterms', 'enabled'=>1, 'visible'=>-1, 'position'=>430), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>1, 'visible'=>0, 'position'=>435), + 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>1, 'visible'=>-1, 'position'=>270), 'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>1, 'visible'=>-1, 'position'=>440), 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'Multicurrency code', 'enabled'=>1, 'visible'=>-1, 'position'=>445), 'fk_account' =>array('type'=>'integer', 'label'=>'AccountingAccount', 'enabled'=>1, 'visible'=>-1, 'position'=>450), @@ -698,12 +700,6 @@ class Societe extends CommonObject */ public $ref; - /** - * @var string Internal ref - * @deprecated - */ - public $ref_int; - /** * External user reference. * This is to allow external systems to store their id and make self-developed synchronizing functions easier to build. @@ -800,36 +796,41 @@ class Societe extends CommonObject */ public $bank_account; + + const STATUS_CEASED = 0; + const STATUS_INACTIVITY = 1; + /** - * Third party is no customer + * Third party type is no customer */ const NO_CUSTOMER = 0; /** - * Third party is a customer + * Third party type is a customer */ const CUSTOMER = 1; /** - * Third party is a prospect + * Third party type is a prospect */ const PROSPECT = 2; /** - * Third party is a customer and a prospect + * Third party type is a customer and a prospect */ const CUSTOMER_AND_PROSPECT = 3; /** - * Third party is no supplier + * Third party supplier flag is not supplier */ const NO_SUPPLIER = 0; /** - * Third party is a supplier + * Third party supplier flag is a supplier */ const SUPPLIER = 1; + /** * Constructor * @@ -1095,7 +1096,7 @@ class Societe extends CommonObject } } - if (empty($error) && !empty($conf->mailing->enabled) && !empty($contact->email) && isset($no_email)) { + if (empty($error) && isModEnabled('mailing') && !empty($contact->email) && isset($no_email)) { $result = $contact->setNoEmail($no_email); if ($result < 0) { $this->error = $contact->error; @@ -1175,7 +1176,7 @@ class Societe extends CommonObject } // Check for duplicate or mandatory fields defined into setup - $array_to_check = array('IDPROF1', 'IDPROF2', 'IDPROF3', 'IDPROF4', 'IDPROF5', 'IDPROF6', 'EMAIL'); + $array_to_check = array('IDPROF1', 'IDPROF2', 'IDPROF3', 'IDPROF4', 'IDPROF5', 'IDPROF6', 'EMAIL', 'TVA_INTRA'); foreach ($array_to_check as $key) { $keymin = strtolower($key); $i = (int) preg_replace('/[^0-9]/', '', $key); @@ -1220,6 +1221,14 @@ class Societe extends CommonObject $error++; $this->errors[] = $langs->trans('Email')." ".$langs->trans("ErrorProdIdAlreadyExist", $vallabel).' ('.$langs->trans("ForbiddenBySetupRules").')'; } } + } elseif ($key == 'TVA_INTRA') { + // Check for unicity + if ($vallabel && !empty($conf->global->SOCIETE_VAT_INTRA_UNIQUE)) { + if ($this->id_prof_exists($keymin, $vallabel, ($this->id > 0 ? $this->id : 0))) { + $langs->load("errors"); + $error++; $this->errors[] = $langs->trans('VATIntra')." ".$langs->trans("ErrorProdIdAlreadyExist", $vallabel).' ('.$langs->trans("ForbiddenBySetupRules").')'; + } + } } } } @@ -1262,14 +1271,13 @@ class Societe extends CommonObject // Clean parameters $this->id = $id; $this->entity = ((isset($this->entity) && is_numeric($this->entity)) ? $this->entity : $conf->entity); - $this->name = $this->name ?trim($this->name) : trim($this->nom); + $this->name = $this->name ? trim($this->name) : trim($this->nom); $this->nom = $this->name; // For backward compatibility $this->name_alias = trim($this->name_alias); $this->ref_ext = trim($this->ref_ext); $this->address = $this->address ?trim($this->address) : trim($this->address); $this->zip = $this->zip ?trim($this->zip) : trim($this->zip); $this->town = $this->town ?trim($this->town) : trim($this->town); - $this->setUpperOrLowerCase(); $this->state_id = trim($this->state_id); $this->country_id = ($this->country_id > 0) ? $this->country_id : 0; $this->phone = trim($this->phone); @@ -1278,7 +1286,7 @@ class Societe extends CommonObject $this->fax = trim($this->fax); $this->fax = preg_replace("/\s/", "", $this->fax); $this->fax = preg_replace("/\./", "", $this->fax); - $this->email = trim($this->email); + $this->email = trim($this->email); $this->url = $this->url ?clean_url($this->url, 0) : ''; $this->note_private = trim($this->note_private); $this->note_public = trim($this->note_public); @@ -1411,7 +1419,7 @@ class Societe extends CommonObject } } } - + $this->setUpperOrLowerCase(); if ($result >= 0) { dol_syslog(get_class($this)."::update verify ok or not done"); @@ -1479,7 +1487,7 @@ class Societe extends CommonObject $sql .= ",fk_effectif = ".($this->effectif_id > 0 ? ((int) $this->effectif_id) : "null"); if (isset($this->stcomm_id)) { - $sql .= ",fk_stcomm=".($this->stcomm_id > 0 ? ((int) $this->stcomm_id) : "0"); + $sql .= ",fk_stcomm=".(int) $this->stcomm_id; } if (isset($this->typent_id)) { $sql .= ",fk_typent = ".($this->typent_id > 0 ? ((int) $this->typent_id) : "0"); @@ -1560,7 +1568,7 @@ class Societe extends CommonObject if (!$error && $nbrowsaffected) { // Update information on linked member if it is an update - if (!$nosyncmember && !empty($conf->adherent->enabled)) { + if (!$nosyncmember && isModEnabled('adherent')) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; dol_syslog(get_class($this)."::update update linked member"); @@ -1580,6 +1588,7 @@ class Societe extends CommonObject $lmember->phone = $this->phone; $lmember->state_id = $this->state_id; $lmember->country_id = $this->country_id; + $lmember->default_lang = $this->default_lang; $result = $lmember->update($user, 0, 1, 1, 1); // Use nosync to 1 to avoid cyclic updates if ($result < 0) { @@ -1706,13 +1715,13 @@ class Societe extends CommonObject $sql .= ', s.tms as date_modification, s.fk_user_creat, s.fk_user_modif'; $sql .= ', s.phone, s.fax, s.email'; $sql .= ', s.socialnetworks'; - $sql .= ', s.url, s.zip, s.town, s.note_private, s.note_public, s.model_pdf, s.client, s.fournisseur'; + $sql .= ', s.url, s.zip, s.town, s.note_private, s.note_public, s.client, s.fournisseur'; $sql .= ', s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4, s.idprof5, s.idprof6'; $sql .= ', s.capital, s.tva_intra'; $sql .= ', s.fk_typent as typent_id'; $sql .= ', s.fk_effectif as effectif_id'; $sql .= ', s.fk_forme_juridique as forme_juridique_code'; - $sql .= ', s.webservices_url, s.webservices_key, s.model_pdf'; + $sql .= ', s.webservices_url, s.webservices_key, s.model_pdf, s.last_main_doc'; if (empty($conf->global->MAIN_COMPANY_PERENTITY_SHARED)) { $sql .= ', s.code_compta, s.code_compta_fournisseur, s.accountancy_code_buy, s.accountancy_code_sell'; } else { @@ -1735,7 +1744,7 @@ class Societe extends CommonObject $sql .= ', st.libelle as stcomm, st.picto as stcomm_picto'; $sql .= ', te.code as typent_code'; $sql .= ', i.libelle as label_incoterms'; - if (empty($conf->multicompany->enabled)) { + if (!isModEnabled('multicompany')) { $sql .= ', s.remise_client, s.remise_supplier'; } else { $sql .= ', sr.remise_client, sr2.remise_supplier'; @@ -1754,7 +1763,7 @@ class Societe extends CommonObject $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON s.fk_incoterms = i.rowid'; // With default setup, llx_societe_remise is a history table in default setup and current value is in llx_societe. // We use it for real value when multicompany is on. A better place would be into llx_societe_perentity. - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_remise as sr ON sr.rowid = (SELECT MAX(rowid) FROM '.MAIN_DB_PREFIX.'societe_remise WHERE fk_soc = s.rowid AND entity IN ('.getEntity('discount').'))'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_remise_supplier as sr2 ON sr2.rowid = (SELECT MAX(rowid) FROM '.MAIN_DB_PREFIX.'societe_remise_supplier WHERE fk_soc = s.rowid AND entity IN ('.getEntity('discount').'))'; } @@ -1842,7 +1851,7 @@ class Societe extends CommonObject $this->stcomm_picto = $obj->stcomm_picto; // picto statut commercial $this->email = $obj->email; - $this->socialnetworks = (array) json_decode($obj->socialnetworks, true); + $this->socialnetworks = ($obj->socialnetworks ? (array) json_decode($obj->socialnetworks, true) : array()); $this->url = $obj->url; $this->phone = $obj->phone; @@ -1943,7 +1952,10 @@ class Societe extends CommonObject // multicurrency $this->fk_multicurrency = $obj->fk_multicurrency; $this->multicurrency_code = $obj->multicurrency_code; + + // pdf $this->model_pdf = $obj->model_pdf; + $this->last_main_doc = $obj->last_main_doc; $result = 1; @@ -2205,6 +2217,7 @@ class Societe extends CommonObject } $this->db->commit(); + return 1; } } @@ -2266,20 +2279,23 @@ class Societe extends CommonObject $this->db->commit(); return 1; } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Add a discount for third party * - * @param float $remise Amount of discount - * @param User $user User adding discount - * @param string $desc Reason of discount - * @param string $vatrate VAT rate (may contain the vat code too). Exemple: '1.23', '1.23 (ABC)', ... - * @param int $discount_type 0 => customer discount, 1 => supplier discount - * @return int <0 if KO, id of discount record if OK + * @param float $remise Amount of discount + * @param User $user User adding discount + * @param string $desc Reason of discount + * @param string $vatrate VAT rate (may contain the vat code too). Exemple: '1.23', '1.23 (ABC)', ... + * @param int $discount_type 0 => customer discount, 1 => supplier discount + * @param string $price_base_type Price base type 'HT' or 'TTC' + * @return int <0 if KO, id of discount record if OK */ - public function set_remise_except($remise, User $user, $desc, $vatrate = '', $discount_type = 0) + public function set_remise_except($remise, User $user, $desc, $vatrate = '', $discount_type = 0, $price_base_type = 'HT') { // phpcs:enable global $langs; @@ -2289,7 +2305,7 @@ class Societe extends CommonObject $desc = trim($desc); // Check parameters - if (!$remise > 0) { + if (!($remise > 0)) { $this->error = $langs->trans("ErrorWrongValueForParameter", "1"); return -1; } @@ -2314,9 +2330,15 @@ class Societe extends CommonObject $discount->discount_type = $discount_type; - $discount->amount_ht = $discount->multicurrency_amount_ht = price2num($remise, 'MT'); - $discount->amount_tva = $discount->multicurrency_amount_tva = price2num($remise * $vatrate / 100, 'MT'); - $discount->amount_ttc = $discount->multicurrency_amount_ttc = price2num($discount->amount_ht + $discount->amount_tva, 'MT'); + if ($price_base_type == 'TTC') { + $discount->amount_ttc = $discount->multicurrency_amount_ttc = price2num($remise, 'MT'); + $discount->amount_ht = $discount->multicurrency_amount_ht = price2num($remise / (1 + $vatrate / 100), 'MT'); + $discount->amount_tva = $discount->multicurrency_amount_tva = price2num($discount->amount_ttc - $discount->amount_ht, 'MT'); + } else { + $discount->amount_ht = $discount->multicurrency_amount_ht = price2num($remise, 'MT'); + $discount->amount_tva = $discount->multicurrency_amount_tva = price2num($remise * $vatrate / 100, 'MT'); + $discount->amount_ttc = $discount->multicurrency_amount_ttc = price2num($discount->amount_ht + $discount->amount_tva, 'MT'); + } $discount->tva_tx = price2num($vatrate); $discount->vat_src_code = $vat_src_code; @@ -2376,7 +2398,7 @@ class Societe extends CommonObject $sql = "SELECT DISTINCT u.rowid, u.login, u.lastname, u.firstname, u.office_phone, u.job, u.email, u.statut as status, u.entity, u.photo, u.gender"; $sql .= ", u.office_fax, u.user_mobile, u.personal_mobile"; $sql .= " FROM ".MAIN_DB_PREFIX."societe_commerciaux as sc, ".MAIN_DB_PREFIX."user as u"; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $sql .= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql .= " WHERE ((ug.fk_user = sc.fk_user"; $sql .= " AND ug.entity = ".$conf->entity.")"; @@ -2656,11 +2678,16 @@ class Societe extends CommonObject if (isset($this->status)) { $label .= ' '.$this->getLibStatut(5); } + if (isset($this->client) && isset($this->fournisseur)) { + $label .= '   '; + $label .= $this->getTypeUrl(1); + } $label .= '
    '.$langs->trans('Name').': '.dol_escape_htmltag($this->name); if (!empty($this->name_alias)) { $label .= ' ('.dol_escape_htmltag($this->name_alias).')'; } + if ($this->email) { $label .= '
    '.img_picto('', 'email', 'class="pictofixedwidth"').$this->email; } @@ -2683,23 +2710,24 @@ class Societe extends CommonObject if (!empty($this->tva_intra) || (!empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP) && strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'vatnumber') !== false)) { $label2 .= '
    '.$langs->trans('VATIntra').': '.dol_escape_htmltag($this->tva_intra); } + if (!empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP)) { - if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid1') !== false) { + if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid1') !== false && $langs->trans('ProfId1'.$this->country_code) != '-') { $label2 .= '
    '.$langs->trans('ProfId1'.$this->country_code).': '.$this->idprof1; } - if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid2') !== false) { + if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid2') !== false && $langs->trans('ProfId2'.$this->country_code) != '-') { $label2 .= '
    '.$langs->trans('ProfId2'.$this->country_code).': '.$this->idprof2; } - if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid3') !== false) { + if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid3') !== false && $langs->trans('ProfId3'.$this->country_code) != '-') { $label2 .= '
    '.$langs->trans('ProfId3'.$this->country_code).': '.$this->idprof3; } - if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid4') !== false) { + if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid4') !== false && $langs->trans('ProfId4'.$this->country_code) != '-') { $label2 .= '
    '.$langs->trans('ProfId4'.$this->country_code).': '.$this->idprof4; } - if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid5') !== false) { + if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid5') !== false && $langs->trans('ProfId5'.$this->country_code) != '-') { $label2 .= '
    '.$langs->trans('ProfId5'.$this->country_code).': '.$this->idprof5; } - if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid6') !== false) { + if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid6') !== false && $langs->trans('ProfId6'.$this->country_code) != '-') { $label2 .= '
    '.$langs->trans('ProfId6'.$this->country_code).': '.$this->idprof6; } } @@ -2709,10 +2737,10 @@ class Societe extends CommonObject if (!empty($this->code_fournisseur) && $this->fournisseur) { $label2 .= '
    '.$langs->trans('SupplierCode').': '.$this->code_fournisseur; } - if (!empty($conf->accounting->enabled) && ($this->client == 1 || $this->client == 3)) { + if (isModEnabled('accounting') && ($this->client == 1 || $this->client == 3)) { $label2 .= '
    '.$langs->trans('CustomerAccountancyCode').': '.($this->code_compta ? $this->code_compta : $this->code_compta_client); } - if (!empty($conf->accounting->enabled) && $this->fournisseur) { + if (isModEnabled('accounting') && $this->fournisseur) { $label2 .= '
    '.$langs->trans('SupplierAccountancyCode').': '.$this->code_compta_fournisseur; } $label .= ($label2 ? '
    '.$label2 : '').''; @@ -2784,29 +2812,30 @@ class Societe extends CommonObject /** * Return link(s) on type of thirdparty (with picto) * - * @param int $withpicto Add picto into link (0=No picto, 1=Include picto with link, 2=Picto only) - * @param string $option ''=All - * @param int $notooltip 1=Disable tooltip - * @return string String with URL + * @param int $withpicto Add picto into link (0=No picto, 1=Include picto with link, 2=Picto only) + * @param string $option ''=All + * @param int $notooltip 1=Disable tooltip + * @param string $tag Tag 'a' or 'span' + * @return string String with URL */ - public function getTypeUrl($withpicto = 0, $option = '', $notooltip = 0) + public function getTypeUrl($withpicto = 0, $option = '', $notooltip = 0, $tag = 'a') { global $conf, $langs; $s = ''; if (empty($option) || preg_match('/prospect/', $option)) { if (($this->client == 2 || $this->client == 3) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) { - $s .= ''.dol_substr($langs->trans("Prospect"), 0, 1).''; + $s .= '<'.$tag.' class="customer-back opacitymedium" title="'.$langs->trans("Prospect").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$this->id.'">'.dol_substr($langs->trans("Prospect"), 0, 1).''; } } if (empty($option) || preg_match('/customer/', $option)) { if (($this->client == 1 || $this->client == 3) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) { - $s .= ''.dol_substr($langs->trans("Customer"), 0, 1).''; + $s .= '<'.$tag.' class="customer-back" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$this->id.'">'.dol_substr($langs->trans("Customer"), 0, 1).''; } } if (empty($option) || preg_match('/supplier/', $option)) { - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $this->fournisseur) { - $s .= ''.dol_substr($langs->trans("Supplier"), 0, 1).''; + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $this->fournisseur) { + $s .= '<'.$tag.' class="vendor-back" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$this->id.'">'.dol_substr($langs->trans("Supplier"), 0, 1).''; } } return $s; @@ -3065,6 +3094,8 @@ class Societe extends CommonObject } else { dol_print_error($this->db); } + + return ''; } @@ -3447,9 +3478,9 @@ class Societe extends CommonObject } else { return -1; } - } else { - return -1; } + + return -1; } /** @@ -3595,14 +3626,14 @@ class Societe extends CommonObject } //Verify duplicate entries - $sql = "SELECT COUNT(*) as idprof FROM ".MAIN_DB_PREFIX."societe WHERE ".$field." = '".$this->db->escape($value)."' AND entity IN (".getEntity('societe').")"; + $sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE ".$field." = '".$this->db->escape($value)."' AND entity IN (".getEntity('societe').")"; if ($socid) { $sql .= " AND rowid <> ".$socid; } $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); - $count = $obj->idprof; + $count = $obj->nb; } else { $count = 0; print $this->db->error(); @@ -3789,6 +3820,20 @@ class Societe extends CommonObject } } + //Verify NIF if country is DZ + //Returns: 1 if NIF ok, -1 if NIF bad, 0 if unexpected bad + if ($idprof == 1 && $soc->country_code == 'DZ') { + $string = trim($this->idprof1); + $string = preg_replace('/(\s)/', '', $string); + + //Check NIF + if (preg_match('/(^[0-9]{15}$)/', $string)) { + return 1; + } else { + return -1; + } + } + return $ok; } @@ -3831,6 +3876,9 @@ class Societe extends CommonObject if ($idprof == 1 && $thirdparty->country_code == 'IN') { $url = 'http://www.tinxsys.com/TinxsysInternetWeb/dealerControllerServlet?tinNumber='.$strippedIdProf1.';&searchBy=TIN&backPage=searchByTin_Inter.jsp'; } + if ($idprof == 1 && $thirdparty->country_code == 'DZ') { + $url = 'http://nif.mfdgi.gov.dz/nif.asp?Nif='.$strippedIdProf1; + } if ($idprof == 1 && $thirdparty->country_code == 'PT') { $url = 'http://www.nif.pt/'.$strippedIdProf1; } @@ -3876,7 +3924,7 @@ class Societe extends CommonObject */ public function info($id) { - $sql = "SELECT s.rowid, s.nom as name, s.datec as date_creation, tms as date_modification,"; + $sql = "SELECT s.rowid, s.nom as name, s.datec, tms as datem,"; $sql .= " fk_user_creat, fk_user_modif"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " WHERE s.rowid = ".((int) $id); @@ -3888,21 +3936,12 @@ class Societe extends CommonObject $this->id = $obj->rowid; - if ($obj->fk_user_creat) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_creat); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_modif) { - $muser = new User($this->db); - $muser->fetch($obj->fk_user_modif); - $this->user_modification = $muser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); $this->ref = $obj->name; - $this->date_creation = $this->db->jdate($obj->date_creation); - $this->date_modification = $this->db->jdate($obj->date_modification); } $this->db->free($result); @@ -3997,6 +4036,111 @@ class Societe extends CommonObject return -1; } + /** + * Return number of mass Emailing received by this contacts with its email + * + * @return int Number of EMailings + */ + public function getNbOfEMailings() + { + $sql = "SELECT count(mc.email) as nb"; + $sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc, ".MAIN_DB_PREFIX."mailing as m"; + $sql .= " WHERE mc.fk_mailing=m.rowid AND mc.email = '".$this->db->escape($this->email)."' "; + $sql .= " AND m.entity IN (".getEntity($this->element).") AND mc.statut NOT IN (-1,0)"; // -1 error, 0 not sent, 1 sent with success + + $resql = $this->db->query($sql); + if ($resql) { + $obj = $this->db->fetch_object($resql); + $nb = $obj->nb; + + $this->db->free($resql); + return $nb; + } else { + $this->error = $this->db->error(); + return -1; + } + } + + /** + * Set "blacklist" mailing status + * + * @param int $no_email 1=Do not send mailing, 0=Ok to recieve mailling + * @return int <0 if KO, >0 if OK + */ + public function setNoEmail($no_email) + { + $error = 0; + + // Update mass emailing flag into table mailing_unsubscribe + if ($this->email) { + $this->db->begin(); + + if ($no_email) { + $sql = "SELECT COUNT(rowid) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing', 0).") AND email = '".$this->db->escape($this->email)."'"; + $resql = $this->db->query($sql); + if ($resql) { + $obj = $this->db->fetch_object($resql); + $noemail = $obj->nb; + if (empty($noemail)) { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe(email, entity, date_creat) VALUES ('".$this->db->escape($this->email)."', ".getEntity('mailing', 0).", '".$this->db->idate(dol_now())."')"; + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->error = $this->db->lasterror(); + $this->errors[] = $this->error; + } + } + } else { + $error++; + $this->error = $this->db->lasterror(); + $this->errors[] = $this->error; + } + } else { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE email = '".$this->db->escape($this->email)."' AND entity IN (".getEntity('mailing', 0).")"; + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->error = $this->db->lasterror(); + $this->errors[] = $this->error; + } + } + + if (empty($error)) { + $this->no_email = $no_email; + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + return $error * -1; + } + } + + return 0; + } + + /** + * get "blacklist" mailing status + * set no_email attribut to 1 or 0 + * + * @return int <0 if KO, >0 if OK + */ + public function getNoEmail() + { + if ($this->email) { + $sql = "SELECT COUNT(rowid) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing').") AND email = '".$this->db->escape($this->email)."'"; + $resql = $this->db->query($sql); + if ($resql) { + $obj = $this->db->fetch_object($resql); + $this->no_email = $obj->nb; + return 1; + } else { + $this->error = $this->db->lasterror(); + $this->errors[] = $this->error; + return -1; + } + } + return 0; + } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** @@ -4014,12 +4158,25 @@ class Societe extends CommonObject global $conf, $user, $langs; dol_syslog(get_class($this)."::create_from_member", LOG_DEBUG); + $fullname = $member->getFullName($langs); - $name = $socname ? $socname : $member->societe; - if (empty($name)) { - $name = $member->getFullName($langs); + if ($member->morphy == 'mor') { + if (empty($socname)) { + $socname = $member->company? $member->company : $member->societe; + } + if (!empty($fullname) && empty($socalias)) { + $socalias = $fullname; + } + } elseif (empty($socname) && $member->morphy == 'phy') { + if (empty($socname)) { + $socname = $fullname; + } + if (!empty($member->company) && empty($socalias)) { + $socalias = $member->company; + } } + $name = $socname; $alias = $socalias ? $socalias : ''; // Positionne parametres @@ -4667,6 +4824,8 @@ class Societe extends CommonObject } elseif ($status == 3) { return $langs->trans("ProspectCustomer"); } + + return ''; } @@ -4734,7 +4893,7 @@ class Societe extends CommonObject * Existing categories are left untouch. * * @param int[]|int $categories Category ID or array of Categories IDs - * @param string $type_categ Category type ('customer' or 'supplier') + * @param string $type_categ Category type ('customer' or 'supplier') * @return int <0 if KO, >0 if OK */ public function setCategories($categories, $type_categ) @@ -4804,15 +4963,16 @@ class Societe extends CommonObject */ public function setThirdpartyType($typent_id) { + global $user; + + dol_syslog(__METHOD__, LOG_DEBUG); + if ($this->id) { - $sql = "UPDATE ".MAIN_DB_PREFIX."societe"; - $sql .= " SET fk_typent = ".($typent_id > 0 ? $typent_id : "null"); - $sql .= " WHERE rowid = ".((int) $this->id); - dol_syslog(get_class($this).'::setThirdpartyType', LOG_DEBUG); - $resql = $this->db->query($sql); - if ($resql) { + $result = $this->setValueFrom('fk_typent', $typent_id, '', null, '', '', $user, 'COMPANY_MODIFY'); + + if ($result > 0) { $this->typent_id = $typent_id; - $this->typent_code = dol_getIdFromCode($this->db, $this->$typent_id, 'c_typent', 'id', 'code'); + $this->typent_code = dol_getIdFromCode($this->db, $this->typent_id, 'c_typent', 'id', 'code'); return 1; } else { return -1; @@ -4896,7 +5056,7 @@ class Societe extends CommonObject $sql .= $field." = '".$this->db->escape($value)."'"; $sql .= " WHERE rowid = ".((int) $this->id); - dol_syslog(get_class($this)."::".__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this)."::".__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { diff --git a/htdocs/societe/class/societeaccount.class.php b/htdocs/societe/class/societeaccount.class.php index f73c460b4a4..79f5aedbe68 100644 --- a/htdocs/societe/class/societeaccount.class.php +++ b/htdocs/societe/class/societeaccount.class.php @@ -520,27 +520,12 @@ class SocieteAccount extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php index f74758296a9..a7f9276897a 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -26,12 +26,18 @@ * \brief Add a tab on thirdparty view to list all products/services bought or sells by thirdparty */ +// Load Dolibarr environment require "../main.inc.php"; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("companies", "bills", "orders", "suppliers", "propal", "interventions", "contracts", "products")); + + $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'thirdpartylist'; // Security check @@ -46,11 +52,11 @@ if ($socid > 0) { } // Sort & Order fields -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; -$sortfield = GETPOST('sortfield', 'aZ09comma'); -$sortorder = GETPOST('sortorder', 'aZ09comma'); -$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -$optioncss = GETPOST('optioncss', 'alpha'); +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +$optioncss = GETPOST('optioncss', 'alpha'); if (empty($page) || $page == -1) { $page = 0; @@ -78,12 +84,11 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $year = ''; $month = ''; } + // Customer or supplier selected in drop box $thirdTypeSelect = GETPOST("third_select_id", 'az09'); $type_element = GETPOST('type_element') ? GETPOST('type_element') : ''; -// Load translation files required by the page -$langs->loadLangs(array("companies", "bills", "orders", "suppliers", "propal", "interventions", "contracts", "products")); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('consumptionthirdparty', 'globalcard')); @@ -162,21 +167,21 @@ if ($object->client) { $obj = $db->fetch_object($resql); $nbFactsClient = $obj->nb; $thirdTypeArray['customer'] = $langs->trans("customer"); - if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { + if (isModEnabled("propal") && $user->rights->propal->lire) { $elementTypeArray['propal'] = $langs->transnoentitiesnoconv('Proposals'); } - if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { + if (isModEnabled('commande') && $user->rights->commande->lire) { $elementTypeArray['order'] = $langs->transnoentitiesnoconv('Orders'); } if (isModEnabled('facture') && $user->rights->facture->lire) { $elementTypeArray['invoice'] = $langs->transnoentitiesnoconv('Invoices'); } - if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire) { + if (isModEnabled('contrat') && $user->rights->contrat->lire) { $elementTypeArray['contract'] = $langs->transnoentitiesnoconv('Contracts'); } } -if (!empty($conf->ficheinter->enabled) && !empty($user->rights->ficheinter->lire)) { +if (isModEnabled('ficheinter') && !empty($user->rights->ficheinter->lire)) { $elementTypeArray['fichinter'] = $langs->transnoentitiesnoconv('Interventions'); } @@ -199,13 +204,13 @@ if ($object->fournisseur) { $obj = $db->fetch_object($resql); $nbCmdsFourn = $obj->nb; $thirdTypeArray['supplier'] = $langs->trans("supplier"); - if ((isModEnabled('fournisseur') && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_invoice->enabled) && $user->rights->supplier_invoice->lire)) { + if ((isModEnabled('fournisseur') && $user->hasRight('fournisseur', 'facture', 'lire') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_invoice") && $user->hasRight('supplier_invoice', 'lire'))) { $elementTypeArray['supplier_invoice'] = $langs->transnoentitiesnoconv('SuppliersInvoices'); } - if ((isModEnabled('fournisseur') && $user->rights->fournisseur->commande->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire)) { + if ((isModEnabled('fournisseur') && $user->hasRight('fournisseur', 'commande', 'lire') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && $user->hasRight('supplier_order', 'lire'))) { $elementTypeArray['supplier_order'] = $langs->transnoentitiesnoconv('SuppliersOrders'); } - if (isModEnabled('supplier_proposal') && $user->rights->supplier_proposal->lire) { + if (isModEnabled('supplier_proposal') && $user->hasRight('supplier_proposal', 'lire')) { $elementTypeArray['supplier_proposal'] = $langs->transnoentitiesnoconv('SupplierProposals'); } } @@ -269,8 +274,9 @@ if ($type_element == 'propal') { } if ($type_element == 'order') { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + $langs->load('sendings'); // delivery planned date $documentstatic = new Commande($db); - $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, NULL as paid, '; + $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, NULL as paid, c.date_livraison as delivery_planned_date,'; $tables_from = MAIN_DB_PREFIX."commande as c,".MAIN_DB_PREFIX."commandedet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid); $where .= " AND d.fk_commande = c.rowid"; @@ -305,8 +311,9 @@ if ($type_element == 'supplier_proposal') { } if ($type_element == 'supplier_order') { // Supplier : Show products from orders. require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; + $langs->load('sendings'); // delivery planned date $documentstatic = new CommandeFournisseur($db); - $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, NULL as paid, '; + $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, NULL as paid, c.date_livraison as delivery_planned_date, '; $tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid); $where .= " AND d.fk_commande = c.rowid"; @@ -361,7 +368,8 @@ if (!empty($sql_select)) { $sql .= " AND ".$doc_number." LIKE '%".$db->escape($sref)."%'"; } if ($sprod_fulldescr) { - $sql .= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%' OR d.description LIKE '%".$db->escape(dol_htmlentities($sprod_fulldescr))."%'"; + // We test both case description is correctly saved of was save after dol_escape_htmltag(). + $sql .= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%' OR d.description LIKE '%".$db->escape(dol_escape_htmltag($sprod_fulldescr))."%'"; if (GETPOST('type_element') != 'fichinter') { $sql .= " OR p.ref LIKE '%".$db->escape($sprod_fulldescr)."%'"; } @@ -390,15 +398,8 @@ if (empty($elementTypeArray) && !$object->client && !$object->fournisseur) { $typeElementString = $form->selectarray("type_element", $elementTypeArray, GETPOST('type_element'), $showempty, 0, 0, '', 0, 0, $disabled, '', 'maxwidth150onsmartphone'); $button = ''; -$param = ''; -$param .= "&sref=".urlencode($sref); -$param .= "&month=".urlencode($month); -$param .= "&year=".urlencode($year); -$param .= "&sprod_fulldescr=".urlencode($sprod_fulldescr); -$param .= "&socid=".urlencode($socid); -$param .= "&type_element=".urlencode($type_element); - $total_qty = 0; +$param = ''; if ($sql_select) { $resql = $db->query($sql); @@ -445,6 +446,10 @@ if ($sql_select) { print $formother->select_month($month ? $month : -1, 'month', 1, 0, 'valignmiddle'); print $formother->selectyear($year ? $year : -1, 'year', 1, 20, 1, 0, 0, '', 'valignmiddle maxwidth75imp marginleftonly'); print ''; + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print '
    '; + } print ''; print ''; print_liste_field_titre('Ref', $_SERVER['PHP_SELF'], 'doc_number', '', $param, '', $sortfield, $sortorder, 'left '); print_liste_field_titre('Date', $_SERVER['PHP_SELF'], 'dateprint', '', $param, '', $sortfield, $sortorder, 'center '); + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print_liste_field_titre('DateDeliveryPlanned', $_SERVER['PHP_SELF'], 'delivery_planned_date', '', $param, '', $sortfield, $sortorder, 'center '); + } print_liste_field_titre('Status', $_SERVER['PHP_SELF'], 'fk_statut', '', $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre('Product', $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'left '); print_liste_field_titre('Quantity', $_SERVER['PHP_SELF'], 'prod_qty', '', $param, '', $sortfield, $sortorder, 'right '); @@ -493,6 +502,10 @@ if ($sql_select) { print $documentstatic->getNomUrl(1); print ''; print ''; + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print ''; + } // Status print ''; @@ -673,6 +686,10 @@ if ($sql_select) { print ''; print ''; print ''; + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print ''; + } print ''; print ''; print ''; diff --git a/htdocs/societe/contact.php b/htdocs/societe/contact.php index a09c9751f1f..f477935d994 100644 --- a/htdocs/societe/contact.php +++ b/htdocs/societe/contact.php @@ -31,6 +31,7 @@ * \brief Page of contacts of thirdparties */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; @@ -42,35 +43,42 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; -if (!empty($conf->adherent->enabled)) { +if (isModEnabled('adherent')) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; } +// Load translation files required by the page $langs->loadLangs(array("companies", "commercial", "bills", "banks", "users")); -if (!empty($conf->categorie->enabled)) { + +if (isModEnabled('categorie')) { $langs->load("categories"); } -if (!empty($conf->incoterm->enabled)) { +if (isModEnabled('incoterm')) { $langs->load("incoterm"); } -if (!empty($conf->notification->enabled)) { +if (isModEnabled('notification')) { $langs->load("mails"); } $mesg = ''; $error = 0; $errors = array(); + +// Get parameters $action = (GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'); -$cancel = GETPOST('cancel', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha'); -$confirm = GETPOST('confirm'); -$socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int'); +$confirm = GETPOST('confirm'); +$socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int'); + if ($user->socid) { $socid = $user->socid; } + if (empty($socid) && $action == 'view') { $action = 'create'; } +// Initialize objects $object = new Societe($db); $extrafields = new ExtraFields($db); @@ -173,7 +181,7 @@ print '
    '; if ($action != 'presend') { // Contacts list if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) { - $result = show_contacts($conf, $langs, $db, $object, $_SERVER["PHP_SELF"].'?socid='.$object->id); + $result = show_contacts($conf, $langs, $db, $object, $_SERVER["PHP_SELF"].'?socid='.$object->id, 1); } } diff --git a/htdocs/societe/document.php b/htdocs/societe/document.php index 707c573f116..3f6b10c7236 100644 --- a/htdocs/societe/document.php +++ b/htdocs/societe/document.php @@ -26,30 +26,36 @@ * \ingroup societe */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + +// Load translation files required by the page $langs->loadLangs(array("companies", "other")); -$action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm'); -$id = (GETPOST('socid', 'int') ? GETPOST('socid', 'int') : GETPOST('id', 'int')); -$ref = GETPOST('ref', 'alpha'); // Get parameters -$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; -$sortfield = GETPOST('sortfield', 'aZ09comma'); -$sortorder = GETPOST('sortorder', 'aZ09comma'); -$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm'); +$id = (GETPOST('socid', 'int') ? GETPOST('socid', 'int') : GETPOST('id', 'int')); +$ref = GETPOST('ref', 'alpha'); + +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); + if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $limit * $page; -$pageprev = $page - 1; -$pagenext = $page + 1; + +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; if (!empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield = $conf->global->MAIN_DOC_SORT_FIELD; @@ -65,6 +71,7 @@ if (!$sortfield) { $sortfield = "position_name"; } +// Initialize objects $object = new Societe($db); if ($id > 0 || !empty($ref)) { $result = $object->fetch($id, $ref); @@ -76,7 +83,7 @@ if ($id > 0 || !empty($ref)) { // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('thirdpartydocument', 'globalcard')); -$permissiontoadd = $user->rights->societe->creer; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +$permissiontoadd = $user->hasRight('societe', 'creer'); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php // Security check if ($user->socid > 0) { @@ -85,7 +92,9 @@ if ($user->socid > 0) { } $result = restrictedArea($user, 'societe', $object->id, '&societe'); -$permissiontoadd = $user->rights->societe->creer; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles +if (empty($object->id)) { + accessforbidden(); +} /* @@ -108,88 +117,80 @@ if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); -if ($object->id) { - /* - * Show tabs - */ - if (!empty($conf->notification->enabled)) { - $langs->load("mails"); - } - $head = societe_prepare_head($object); - - $form = new Form($db); - - print dol_get_fiche_head($head, 'document', $langs->trans("ThirdParty"), -1, 'company'); - - - // Build file list - $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); - $totalsize = 0; - foreach ($filearray as $key => $file) { - $totalsize += $file['size']; - } - - $linkback = ''.$langs->trans("BackToList").''; - - dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); - - print '
    '; - - print '
    '; - print '
    '.$langs->trans("CustomersCategoriesShort").'
    '.$langs->trans("SuppliersCategoriesShort").''; print $form->showCategories($object->id, Categorie::TYPE_SUPPLIER, 1); @@ -2867,7 +3027,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Third-Party Type print '
    '; print ''; - if ($action != 'editthirdpartytype' && $user->rights->societe->creer) { + if ($action != 'editthirdpartytype' && $user->hasRight('societe', 'creer')) { print ''; } print '
    '.$langs->trans('ThirdPartyType').'id.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'
    '; @@ -2887,14 +3047,37 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Capital print '
    '.$langs->trans('Capital').''; if ($object->capital) { - print price($object->capital, '', $langs, 0, -1, -1, $conf->currency); + if (isModEnabled("multicurrency") && !empty($object->multicurrency_code)) { + print price($object->capital, '', $langs, 0, -1, -1, $object->multicurrency_code); + } else { + print price($object->capital, '', $langs, 0, -1, -1, $conf->currency); + } } else { print ' '; } print '
    '.$langs->trans("No_Email").''; + if ($object->email) { + print yn($object->no_email); + } else { + print ''.$langs->trans("EMailNotDefined").''; + } + + $langs->load("mails"); + print '   '.$object->getNbOfEMailings().''; + + print '
    '.$langs->trans("DefaultLang").''; //$s=picto_from_langcode($object->default_lang); @@ -2907,10 +3090,10 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Incoterms - if (!empty($conf->incoterm->enabled)) { + if (isModEnabled('incoterm')) { print '
    '; print ''; - if ($action != 'editincoterm' && $user->rights->societe->creer) { + if ($action != 'editincoterm' && $user->hasRight('societe', 'creer')) { print ''; } print '
    '.$langs->trans('IncotermLabel').''.img_edit('', 1).'
    '; @@ -2924,7 +3107,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print '
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; @@ -2937,8 +3120,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; print $langs->trans("ProductAccountancySellCode"); print ''; - if (! empty($conf->accounting->enabled)) { - if (! empty($object->accountancy_code_sell)) { + if (isModEnabled('accounting')) { + if (!empty($object->accountancy_code_sell)) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $object->accountancy_code_sell, 1); @@ -2953,8 +3136,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; print $langs->trans("ProductAccountancyBuyCode"); print ''; - if (! empty($conf->accounting->enabled)) { - if (! empty($object->accountancy_code_buy)) { + if (isModEnabled('accounting')) { + if (!empty($object->accountancy_code_buy)) { $accountingaccount2 = new AccountingAccount($db); $accountingaccount2->fetch('', $object->accountancy_code_buy, 1); @@ -2974,7 +3157,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { if (empty($conf->global->SOCIETE_DISABLE_PARENTCOMPANY)) { print '
    '; print ''; - if ($action != 'editparentcompany' && $user->rights->societe->creer) { + if ($action != 'editparentcompany' && $user->hasRight('societe', 'creer')) { print ''; } print '
    '.$langs->trans('ParentCompany').'id.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'
    '; @@ -2988,7 +3171,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { include DOL_DOCUMENT_ROOT.'/societe/tpl/linesalesrepresentative.tpl.php'; // Module Adherent - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $langs->load("members"); print '
    '.$langs->trans("LinkedToDolibarrMember").''; @@ -3003,6 +3186,22 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print "
    '.$langs->trans("DolibarrLogin").''; + if ($object->user_id) { + $dolibarr_user = new User($db); + $result = $dolibarr_user->fetch($object->user_id); + print $dolibarr_user->getLoginUrl(-1); + } else { + //print ''.$langs->trans("NoDolibarrAccess").''; + if (!$object->user_id && $user->rights->user->user->creer) { + print ''.img_picto($langs->trans("CreateDolibarrLogin"), 'add').' '.$langs->trans("CreateDolibarrLogin").''; + } + } + print '
    '.$langs->trans("WebServiceURL").''.dol_print_url($object->webservices_url).''; print ''; @@ -464,6 +469,10 @@ if ($sql_select) { print '
    '.dol_print_date($db->jdate($objp->dateprint), 'day').''.dol_print_date($db->jdate($objp->delivery_planned_date), 'day').''; @@ -529,7 +542,7 @@ if ($sql_select) { // Product if ($objp->fk_product > 0) { // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $prod = new Product($db); $prod->fetch($objp->fk_product); @@ -552,7 +565,7 @@ if ($sql_select) { } $text .= ' - '.(!empty($objp->label) ? $objp->label : $label); - $description = (!empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($objp->description)); + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($objp->description)); } if (($objp->info_bits & 2) == 2) { ?> @@ -607,7 +620,7 @@ if ($sql_select) { echo get_date_range($objp->date_start, $objp->date_end); // Add description in form - if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { print (!empty($objp->description) && $objp->description != $objp->product_label) ? '
    '.dol_htmlentitiesbr($objp->description) : ''; } } else { @@ -644,9 +657,9 @@ if ($sql_select) { // Show range $prodreftxt .= get_date_range($objp->date_start, $objp->date_end); // Add description in form - if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { - $prodreftxt .= (! empty($objp->description) && $objp->description!=$objp->product_label)?'
    '.dol_htmlentitiesbr($objp->description):''; + $prodreftxt .= (!empty($objp->description) && $objp->description!=$objp->product_label)?'
    '.dol_htmlentitiesbr($objp->description):''; } */ print '
    '.$langs->trans('Total').''.$total_qty.''.price($total_ht).''.price(price2num($total_ht / (empty($total_qty) ? 1 : $total_qty), 'MU')).'
    '; - - // Type Prospect/Customer/Supplier - print ''; - - // Prefix - if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field - print ''; - } - - if ($object->client) { - print ''; - } - - if ($object->fournisseur) { - print ''; - } - - // Number of files - print ''; - - // Total size - print ''; - - print '
    '.$langs->trans('NatureOfThirdParty').''; - print $object->getTypeUrl(1); - print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; - print $langs->trans('CustomerCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_client)); - $tmpcheck = $object->check_codeclient(); - if ($tmpcheck != 0 && $tmpcheck != -5) { - print ' ('.$langs->trans("WrongCustomerCode").')'; - } - print '
    '; - print $langs->trans('SupplierCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); - $tmpcheck = $object->check_codefournisseur(); - if ($tmpcheck != 0 && $tmpcheck != -5) { - print ' ('.$langs->trans("WrongSupplierCode").')'; - } - print '
    '.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
    '.$langs->trans("TotalSizeOfAttachedFiles").''.dol_print_size($totalsize, 1, 1).'
    '; - - print '
    '; - - print dol_get_fiche_end(); - - $modulepart = 'societe'; - $permissiontoadd = $user->rights->societe->creer; - $permtoedit = $user->rights->societe->creer; - $param = '&id='.$object->id; - include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; -} else { - accessforbidden('', 0, 0); +// Show tabs +if (isModEnabled('notification')) { + $langs->load("mails"); } +$head = societe_prepare_head($object); + +print dol_get_fiche_head($head, 'document', $langs->trans("ThirdParty"), -1, 'company'); + + +// Build file list +$filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); +$totalsize = 0; +foreach ($filearray as $key => $file) { + $totalsize += $file['size']; +} + +$linkback = ''.$langs->trans("BackToList").''; + +dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); + +print '
    '; + +print '
    '; +print ''; + +// Type Prospect/Customer/Supplier +print ''; + +// Prefix +if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field + print ''; +} + +if ($object->client) { + print ''; +} + +if ($object->fournisseur) { + print ''; +} + +// Number of files +print ''; + +// Total size +print ''; + +print '
    '.$langs->trans('NatureOfThirdParty').''; +print $object->getTypeUrl(1); +print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; + print $langs->trans('CustomerCode').''; + print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_client)); + $tmpcheck = $object->check_codeclient(); + if ($tmpcheck != 0 && $tmpcheck != -5) { + print ' ('.$langs->trans("WrongCustomerCode").')'; + } + print '
    '; + print $langs->trans('SupplierCode').''; + print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); + $tmpcheck = $object->check_codefournisseur(); + if ($tmpcheck != 0 && $tmpcheck != -5) { + print ' ('.$langs->trans("WrongSupplierCode").')'; + } + print '
    '.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
    '.$langs->trans("TotalSizeOfAttachedFiles").''.dol_print_size($totalsize, 1, 1).'
    '; + +print '
    '; + +print dol_get_fiche_end(); + +$modulepart = 'societe'; +$permissiontoadd = $user->hasRight('societe', 'creer'); +$permtoedit = $user->hasRight('societe', 'creer'); +$param = '&id='.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; // End of page llxFooter(); diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php index f4637186b4d..a74d4ff3ae0 100644 --- a/htdocs/societe/index.php +++ b/htdocs/societe/index.php @@ -27,16 +27,21 @@ * \brief Home page for third parties area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; -$hookmanager = new HookManager($db); + +// Load translation files required by the page +$langs->load("companies"); + // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array +$hookmanager = new HookManager($db); $hookmanager->initHooks(array('thirdpartiesindex')); -$langs->load("companies"); + $socid = GETPOST('socid', 'int'); if ($user->socid) { @@ -51,6 +56,7 @@ $thirdparty_static = new Societe($db); if (!isset($form) || !is_object($form)) { $form = new Form($db); } + // Load $resultboxes $resultboxes = FormOther::getBoxesArea($user, "3"); @@ -118,10 +124,10 @@ $result = $db->query($sql); if ($result) { while ($objp = $db->fetch_object($result)) { $found = 0; - if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS) && ($objp->client == 2 || $objp->client == 3)) { + if (isModEnabled('societe') && $user->hasRight('societe', 'lire') && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS) && ($objp->client == 2 || $objp->client == 3)) { $found = 1; $third['prospect']++; } - if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS) && ($objp->client == 1 || $objp->client == 3)) { + if (isModEnabled('societe') && $user->hasRight('societe', 'lire') && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS) && ($objp->client == 1 || $objp->client == 3)) { $found = 1; $third['customer']++; } if (((isModEnabled('fournisseur') && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled('supplier_order') && $user->rights->supplier_order->lire) || (isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS) && $objp->fournisseur) { @@ -144,13 +150,13 @@ $thirdpartygraph .= ''.$langs->trans("St if (!empty($conf->use_javascript_ajax) && ((round($third['prospect']) ? 1 : 0) + (round($third['customer']) ? 1 : 0) + (round($third['supplier']) ? 1 : 0) + (round($third['other']) ? 1 : 0) >= 2)) { $thirdpartygraph .= ''; $dataseries = array(); - if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { + if (isModEnabled('societe') && $user->hasRight('societe', 'lire') && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { $dataseries[] = array($langs->trans("Prospects"), round($third['prospect'])); } - if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { + if (isModEnabled('societe') && $user->hasRight('societe', 'lire') && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { $dataseries[] = array($langs->trans("Customers"), round($third['customer'])); } - if ((($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled('supplier_order') && $user->rights->supplier_order->lire) || (isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { + if (((isModEnabled('fournisseur') && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled('supplier_order') && $user->rights->supplier_order->lire) || (isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { $dataseries[] = array($langs->trans("Suppliers"), round($third['supplier'])); } if (isModEnabled('societe')) { @@ -167,18 +173,18 @@ if (!empty($conf->use_javascript_ajax) && ((round($third['prospect']) ? 1 : 0) + $thirdpartygraph .= $dolgraph->show(); $thirdpartygraph .= ''."\n"; } else { - if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { + if (isModEnabled('societe') && $user->hasRight('societe', 'lire') && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { $statstring = ""; $statstring .= ''.$langs->trans("Prospects").''.round($third['prospect']).''; $statstring .= ""; } - if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { + if (isModEnabled('societe') && $user->hasRight('societe', 'lire') && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { $statstring .= ""; $statstring .= ''.$langs->trans("Customers").''.round($third['customer']).''; $statstring .= ""; } $statstring2 = ''; - if (((isModEnabled('societe') && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled('supplier_order') && $user->rights->supplier_order->lire) || (isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { + if (((isModEnabled('fournisseur') && $user->hasRight('fournisseur', 'facture', 'lire') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled('supplier_order') && $user->hasRight('supplier_order', 'lire')) || (isModEnabled('supplier_invoice') && $user->hasRight('supplier_invoice', 'lire'))) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { $statstring2 = ""; $statstring2 .= ''.$langs->trans("Suppliers").''.round($third['supplier']).''; $statstring2 .= ""; @@ -193,7 +199,7 @@ $thirdpartygraph .= ''; $thirdpartygraph .= '
    '; $thirdpartycateggraph = ''; -if (!empty($conf->categorie->enabled) && !empty($conf->global->CATEGORY_GRAPHSTATS_ON_THIRDPARTIES)) { +if (isModEnabled('categorie') && !empty($conf->global->CATEGORY_GRAPHSTATS_ON_THIRDPARTIES)) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $elementtype = 'societe'; diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index a92ca5ed11c..14213883790 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -34,6 +34,8 @@ * \brief Page to show list of third parties */ + +// Load Dolibarr environment require_once '../main.inc.php'; include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; @@ -42,26 +44,27 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; + +// Load translation files required by the page $langs->loadLangs(array("companies", "commercial", "customers", "suppliers", "bills", "compta", "categories", "cashdesk")); -$action = GETPOST('action', 'aZ09'); + +// Get parameters +$action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); -$confirm = GETPOST('confirm', 'alpha'); -$toselect = GETPOST('toselect', 'array'); +$confirm = GETPOST('confirm', 'alpha'); +$toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'thirdpartylist'; +$optioncss = GETPOST('optioncss', 'alpha'); if ($contextpage == 'poslist') { - $_GET['optioncss'] = 'print'; + $optioncss = 'print'; } -// Security check -$socid = GETPOST('socid', 'int'); -if ($user->socid) { - $socid = $user->socid; -} -$result = restrictedArea($user, 'societe', $socid, ''); +$mode = GETPOST("mode", 'alpha'); +// search fields $search_all = trim(GETPOST('search_all', 'alphanohtml') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $search_cti = preg_replace('/^0+/', '', preg_replace('/[^0-9]/', '', GETPOST('search_cti', 'alphanohtml'))); // Phone number without any special chars @@ -75,8 +78,8 @@ $search_supplier_code = trim(GETPOST('search_supplier_code', 'alpha')); $search_account_customer_code = trim(GETPOST('search_account_customer_code', 'alpha')); $search_account_supplier_code = trim(GETPOST('search_account_supplier_code', 'alpha')); $search_address = trim(GETPOST('search_address', 'alpha')); -$search_town = trim(GETPOST("search_town", 'alpha')); $search_zip = trim(GETPOST("search_zip", 'alpha')); +$search_town = trim(GETPOST("search_town", 'alpha')); $search_state = trim(GETPOST("search_state", 'alpha')); $search_region = trim(GETPOST("search_region", 'alpha')); $search_email = trim(GETPOST('search_email', 'alpha')); @@ -99,18 +102,18 @@ $search_price_level = GETPOST('search_price_level', 'int'); $search_staff = GETPOST("search_staff", 'int'); $search_status = GETPOST("search_status", 'int'); $search_type = GETPOST('search_type', 'alpha'); -$search_level = GETPOST("search_level", "array"); -$search_stcomm = GETPOST('search_stcomm', 'int'); +$search_level = GETPOST("search_level", "array:alpha"); +$search_stcomm = GETPOST('search_stcomm', "array:int"); $search_import_key = trim(GETPOST("search_import_key", "alpha")); $search_parent_name = trim(GETPOST('search_parent_name', 'alpha')); + $type = GETPOST('type', 'alpha'); -$optioncss = GETPOST('optioncss', 'alpha'); -$mode = GETPOST("mode", 'alpha'); $place = GETPOST('place', 'aZ09') ? GETPOST('place', 'aZ09') : '0'; // $place is string id of table for Bar or Restaurant $diroutputmassaction = $conf->societe->dir_output.'/temp/massgeneration/'.$user->id; +// Load variable for pagination $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -195,7 +198,7 @@ if (($tmp = $langs->transnoentities("ProfId5".$mysoc->country_code)) && $tmp != if (($tmp = $langs->transnoentities("ProfId6".$mysoc->country_code)) && $tmp != "ProfId6".$mysoc->country_code && $tmp != '-') { $fieldstosearchall['s.idprof6'] = 'ProfId6'; } -if (!empty($conf->barcode->enabled)) { +if (isModEnabled('barcode')) { $fieldstosearchall['s.barcode'] = 'Gencod'; } // Personalized search criterias. Example: $conf->global->THIRDPARTY_QUICKSEARCH_ON_FIELDS = 's.nom=ThirdPartyName;s.name_alias=AliasNameShort;s.code_client=CustomerCode' @@ -225,11 +228,11 @@ $arrayfields = array( 's.rowid'=>array('label'=>"TechnicalID", 'position'=>1, 'checked'=>(!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)), 'enabled'=>(!empty($conf->global->MAIN_SHOW_TECHNICAL_ID))), 's.nom'=>array('label'=>"ThirdPartyName", 'position'=>2, 'checked'=>1), 's.name_alias'=>array('label'=>"AliasNameShort", 'position'=>3, 'checked'=>1), - 's.barcode'=>array('label'=>"Gencod", 'position'=>5, 'checked'=>1, 'enabled'=>(!empty($conf->barcode->enabled))), + 's.barcode'=>array('label'=>"Gencod", 'position'=>5, 'checked'=>1, 'enabled'=>(isModEnabled('barcode'))), 's.code_client'=>array('label'=>"CustomerCodeShort", 'position'=>10, 'checked'=>$checkedcustomercode), - 's.code_fournisseur'=>array('label'=>"SupplierCodeShort", 'position'=>11, 'checked'=>$checkedsuppliercode, 'enabled'=>((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))), + 's.code_fournisseur'=>array('label'=>"SupplierCodeShort", 'position'=>11, 'checked'=>$checkedsuppliercode, 'enabled'=>((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))), 's.code_compta'=>array('label'=>"CustomerAccountancyCodeShort", 'position'=>13, 'checked'=>$checkedcustomeraccountcode), - 's.code_compta_fournisseur'=>array('label'=>"SupplierAccountancyCodeShort", 'position'=>14, 'checked'=>$checkedsupplieraccountcode, 'enabled'=>((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))), + 's.code_compta_fournisseur'=>array('label'=>"SupplierAccountancyCodeShort", 'position'=>14, 'checked'=>$checkedsupplieraccountcode, 'enabled'=>((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))), 's.address'=>array('label'=>"Address", 'position'=>19, 'checked'=>0), 's.zip'=>array('label'=>"Zip", 'position'=>20, 'checked'=>1), 's.town'=>array('label'=>"Town", 'position'=>21, 'checked'=>0), @@ -268,6 +271,14 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); +// Security check +$socid = GETPOST('socid', 'int'); +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'societe', $socid, ''); + + /* * Actions @@ -311,7 +322,8 @@ if ($action == "change") { // Change customer for TakePOS } if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; @@ -341,8 +353,8 @@ if (empty($reshook)) { $search_account_customer_code = ''; $search_account_supplier_code = ''; $search_address = ''; - $search_town = ""; $search_zip = ""; + $search_town = ""; $search_state = ""; $search_region = ""; $search_country = ''; @@ -373,9 +385,9 @@ if (empty($reshook)) { // Mass actions $objectclass = 'Societe'; $objectlabel = 'ThirdParty'; - $permissiontoread = $user->rights->societe->lire; - $permissiontodelete = $user->rights->societe->supprimer; - $permissiontoadd = $user->rights->societe->creer; + $permissiontoread = $user->hasRight('societe', 'lire'); + $permissiontodelete = $user->hasRight('societe', 'supprimer'); + $permissiontoadd = $user->hasRight("societe", "creer"); $uploaddir = $conf->societe->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; @@ -432,6 +444,9 @@ if ($type == 'f' && (empty($search_type) || ($search_type == '4'))) { $title = $langs->trans("Suppliers"); } +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + // Select every potentiels, and note each potentiels which fit in search parameters $tab_level = array(); $sql = "SELECT code, label, sortorder"; @@ -468,13 +483,6 @@ $sql .= " region.code_region as region_code, region.nom as region_name"; if ($search_sale && $search_sale != '-1') { $sql .= ", sc.fk_soc, sc.fk_user"; } -// We'll need these fields in order to filter by categ -if ($search_categ_cus && $search_categ_cus != -1) { - $sql .= ", cc.fk_categorie, cc.fk_soc"; -} -if ($search_categ_sup && $search_categ_sup != -1) { - $sql .= ", cs.fk_categorie, cs.fk_soc"; -} // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { @@ -485,6 +493,9 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s2 ON s.parent = s2.rowid"; if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { @@ -495,13 +506,6 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_ty $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_effectif as staff on (staff.id = s.fk_effectif)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as region on (region.code_region = state.fk_region)"; -// We'll need this table joined to the select in order to filter by categ -if (!empty($search_categ_cus) && $search_categ_cus != '-1') { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ -} -if (!empty($search_categ_sup) && $search_categ_sup != '-1') { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_fournisseur as cs ON s.rowid = cs.fk_soc"; // We'll need this table joined to the select in order to filter by categ -} $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."c_stcomm as st ON s.fk_stcomm = st.id"; // We'll need this table joined to the select in order to filter by sale if ($search_sale == -2) { @@ -530,34 +534,85 @@ if ($search_sale == -2) { } elseif ($search_sale > 0) { $sql .= " AND sc.fk_user = ".((int) $search_sale); } -if ($search_categ_cus > 0) { - $sql .= " AND cc.fk_categorie = ".((int) $search_categ_cus); +$searchCategoryCustomerList = $search_categ_cus ? array($search_categ_cus) : array(); +$searchCategoryCustomerOperator = 0; +// Search for tag/category ($searchCategoryCustomerList is an array of ID) +if (!empty($searchCategoryCustomerList)) { + $searchCategoryCustomerSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryCustomerList as $searchCategoryCustomer) { + if (intval($searchCategoryCustomer) == -2) { + $searchCategoryCustomerSqlList[] = "NOT EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_societe as ck WHERE s.rowid = ck.fk_soc)"; + } elseif (intval($searchCategoryCustomer) > 0) { + if ($searchCategoryCustomerOperator == 0) { + $searchCategoryCustomerSqlList[] = " EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_societe as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie = ".((int) $searchCategoryCustomer).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryCustomer); + } + } + } + if ($listofcategoryid) { + $searchCategoryCustomerSqlList[] = " EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_societe as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryCustomerOperator == 1) { + if (!empty($searchCategoryCustomerSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryCustomerSqlList).")"; + } + } else { + if (!empty($searchCategoryCustomerSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryCustomerSqlList).")"; + } + } } -if ($search_categ_sup > 0) { - $sql .= " AND cs.fk_categorie = ".((int) $search_categ_sup); +$searchCategorySupplierList = $search_categ_sup ? array($search_categ_sup) : array(); +$searchCategorySupplierOperator = 0; +// Search for tag/category ($searchCategorySupplierList is an array of ID) +if (!empty($searchCategorySupplierList)) { + $searchCategorySupplierSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategorySupplierList as $searchCategorySupplier) { + if (intval($searchCategorySupplier) == -2) { + $searchCategorySupplierSqlList[] = "NOT EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_fournisseur as ck WHERE s.rowid = ck.fk_soc)"; + } elseif (intval($searchCategorySupplier) > 0) { + if ($searchCategorySupplierOperator == 0) { + $searchCategorySupplierSqlList[] = " EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_fournisseur as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie = ".((int) $searchCategorySupplier).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategorySupplier); + } + } + } + if ($listofcategoryid) { + $searchCategorySupplierSqlList[] = " EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX."categorie_fournisseur as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategorySupplierOperator == 1) { + if (!empty($searchCategorySupplierSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategorySupplierSqlList).")"; + } + } else { + if (!empty($searchCategorySupplierSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategorySupplierSqlList).")"; + } + } } -if ($search_categ_cus == -2) { - $sql .= " AND cc.fk_categorie IS NULL"; -} -if ($search_categ_sup == -2) { - $sql .= " AND cs.fk_categorie IS NULL"; -} - if ($search_all) { $sql .= natural_search(array_keys($fieldstosearchall), $search_all); } if (strlen($search_cti)) { $sql .= natural_search('s.phone', $search_cti); } - if ($search_id > 0) { $sql .= natural_search("s.rowid", $search_id, 1); } -if ($search_nom) { - $sql .= natural_search("s.nom", $search_nom); -} -if ($search_alias) { - $sql .= natural_search("s.name_alias", $search_alias); +if (empty($arrayfields['s.name_alias']['checked']) && $search_nom) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_nom); +} else { + if ($search_nom) { + $sql .= natural_search("s.nom", $search_nom); + } + + if ($search_alias) { + $sql .= natural_search("s.name_alias", $search_alias); + } } if ($search_nom_only) { $sql .= natural_search("s.nom", $search_nom_only); @@ -577,12 +632,12 @@ if ($search_account_supplier_code) { if ($search_address) { $sql .= natural_search('s.address', $search_address); } -if ($search_town) { - $sql .= natural_search("s.town", $search_town); -} if (strlen($search_zip)) { $sql .= natural_search("s.zip", $search_zip); } +if ($search_town) { + $sql .= natural_search("s.town", $search_town); +} if ($search_state) { $sql .= natural_search("state.nom", $search_state); } @@ -638,7 +693,7 @@ if ($search_type == '0') { if ($search_status != '' && $search_status >= 0) { $sql .= natural_search("s.status", $search_status, 2); } -if (!empty($conf->barcode->enabled) && $search_barcode) { +if (isModEnabled('barcode') && $search_barcode) { $sql .= natural_search("s.barcode", $search_barcode); } if ($search_price_level && $search_price_level != '-1') { @@ -650,14 +705,14 @@ if ($search_type_thirdparty && $search_type_thirdparty > 0) { if (!empty($search_staff) && $search_staff != '-1') { $sql .= natural_search("s.fk_effectif", $search_staff, 2); } -if ($search_level) { - $sql .= natural_search("s.fk_prospectlevel", join(',', $search_level), 3); -} if ($search_parent_name) { $sql .= natural_search("s2.nom", $search_parent_name); } -if ($search_stcomm != '' && $search_stcomm != '-2') { // -2 is not filter - $sql .= natural_search("s.fk_stcomm", $search_stcomm, 1); +if ($search_level) { + $sql .= natural_search("s.fk_prospectlevel", join(',', $search_level), 3); +} +if ($search_stcomm) { + $sql .= natural_search("s.fk_stcomm", join(',', $search_stcomm), 2); } if ($search_import_key) { $sql .= natural_search("s.import_key", $search_import_key); @@ -681,9 +736,13 @@ $sql .= $hookmanager->resPrint; // Count total nb of records with no order and no limits $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); if ($resql) { - $nbtotalofrecords = $db->num_rows($resql); + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; } else { dol_print_error($db); } @@ -712,11 +771,12 @@ $num = $db->num_rows($resql); $arrayofselected = is_array($toselect) ? $toselect : array(); +// Direct jump if only one record found if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ($search_all != '' || $search_cti != '') && $action != 'list') { $obj = $db->fetch_object($resql); $id = $obj->rowid; if (!empty($conf->global->SOCIETE_ON_SEARCH_AND_LIST_GO_ON_CUSTOMER_OR_SUPPLIER_CARD)) { - if ($obj->client > 0) { + if ($companystatic->client > 0) { header("Location: ".DOL_URL_ROOT.'/comm/card.php?socid='.$id); exit; } @@ -731,7 +791,7 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ( } $help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; -llxHeader('', $langs->trans("ThirdParty"), $help_url); +llxHeader('', $title, $help_url); $param = ''; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { @@ -764,12 +824,12 @@ if ($search_alias != '') { if ($search_address != '') { $param .= '&search_address='.urlencode($search_address); } -if ($search_town != '') { - $param .= "&search_town=".urlencode($search_town); -} if ($search_zip != '') { $param .= "&search_zip=".urlencode($search_zip); } +if ($search_town != '') { + $param .= "&search_town=".urlencode($search_town); +} if ($search_phone != '') { $param .= "&search_phone=".urlencode($search_phone); } @@ -836,16 +896,18 @@ if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { if ($search_type != '') { $param .= '&search_type='.urlencode($search_type); } +if ($search_status != '') { + $param .= '&search_status='.urlencode($search_status); +} if (is_array($search_level) && count($search_level)) { foreach ($search_level as $slevel) { $param .= '&search_level[]='.urlencode($slevel); } } -if ($search_status != '') { - $param .= '&search_status='.urlencode($search_status); -} -if ($search_stcomm != '' && $search_stcomm != '-2') { // -2 is no filter - $param .= '&search_stcomm='.urlencode($search_stcomm); +if (is_array($search_stcomm) && count($search_stcomm)) { + foreach ($search_stcomm as $slevel) { + $param .= '&search_stcomm[]='.urlencode($slevel); + } } if ($search_parent_name != '') { $param .= '&search_parent_name='.urlencode($search_parent_name); @@ -873,22 +935,22 @@ $arrayofmassactions = array( //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), ); //if($user->rights->societe->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer"); -if ($user->rights->societe->creer) { +if (isModEnabled('category') && $user->hasRight("societe", "creer")) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } -if ($user->rights->societe->creer) { - $arrayofmassactions['preenable'] = img_picto('', 'stop-circle', 'class="pictofixedwidth"').$langs->trans("SetToEnabled"); +if ($user->hasRight("societe", "creer")) { + $arrayofmassactions['preenable'] = img_picto('', 'stop-circle', 'class="pictofixedwidth"').$langs->trans("SetToStatus", $object->LibStatut($object::STATUS_INACTIVITY)); } -if ($user->rights->societe->creer) { - $arrayofmassactions['predisable'] = img_picto('', 'stop-circle', 'class="pictofixedwidth"').$langs->trans("SetToDisabled"); +if ($user->hasRight("societe", "creer")) { + $arrayofmassactions['predisable'] = img_picto('', 'stop-circle', 'class="pictofixedwidth"').$langs->trans("SetToStatus", $object->LibStatut($object::STATUS_CEASED)); } -if ($user->rights->societe->creer) { +if ($user->hasRight("societe", "creer")) { $arrayofmassactions['presetcommercial'] = img_picto('', 'user', 'class="pictofixedwidth"').$langs->trans("AllocateCommercial"); } if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete', 'preaffecttag', 'preenable', 'preclose'))) { $arrayofmassactions = array(); } -if ($user->rights->societe->supprimer) { +if ($user->hasRight('societe', 'supprimer')) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } $massactionbutton = $form->selectMassAction('', $arrayofmassactions); @@ -920,8 +982,8 @@ if ($contextpage != 'poslist') { if (!empty($socid)) { $url .= '&socid='.$socid; } - $newcardbutton = dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', $url, '', $user->rights->societe->creer); -} elseif ($user->rights->societe->creer) { + $newcardbutton = dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', $url, '', $user->hasRight("societe", "creer")); +} elseif ($user->hasRight("societe", "creer")) { $url = DOL_URL_ROOT.'/societe/card.php?action=create&type=t&contextpage=poslist&optioncss=print&backtopage='.urlencode($_SERVER["PHP_SELF"].'?type=t&contextpage=poslist&nomassaction=1&optioncss=print&place='.$place); $label = 'MenuNewCustomer'; $newcardbutton .= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', $url); @@ -953,6 +1015,7 @@ foreach (array(1, 2, 3, 4, 5, 6) as $key) { } } +// Add code for pre mass action (confirmation or email presend form) $topicmail = "Information"; $modelmail = "thirdparty"; $objecttmp = new Societe($db); @@ -969,7 +1032,7 @@ if ($search_all) { // Filter on categories $moreforfilter = ''; if (empty($type) || $type == 'c' || $type == 'p') { - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire")) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('Categories'); @@ -980,7 +1043,7 @@ if (empty($type) || $type == 'c' || $type == 'p') { } if (empty($type) || $type == 'f') { - if (!empty($conf->fournisseur->enabled) && !empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + if (isModEnabled("fournisseur") && isModEnabled('categorie') && $user->hasRight("categorie", "lire")) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('Categories'); @@ -991,7 +1054,7 @@ if (empty($type) || $type == 'f') { } // If the user can view prospects other than his' -if ($user->rights->societe->client->voir || $socid) { +if ($user->hasRight("societe", "client", "voir") || $socid) { $moreforfilter .= '
    '; $tmptitle = $langs->trans('SalesRepresentatives'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"'); @@ -1207,7 +1270,7 @@ if (!empty($arrayfields['customerorsupplier']['checked'])) { print ''; } print $formcompany->selectProspectCustomerType($search_type, 'search_type', 'search_type', 'list'); - print ''; + print ''; } // Prospect level if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) { @@ -1222,7 +1285,8 @@ if (!empty($arrayfields['s.fk_stcomm']['checked'])) { foreach ($prospectstatic->cacheprospectstatus as $key => $val) { $arraystcomm[$val['id']] = ($langs->trans("StatusProspect".$val['id']) != "StatusProspect".$val['id'] ? $langs->trans("StatusProspect".$val['id']) : $val['label']); } - print $form->selectarray('search_stcomm', $arraystcomm, $search_stcomm, -2, 0, 0, '', 0, 0, 0, '', '', 1); + //print $form->selectarray('search_stcomm', $arraystcomm, $search_stcomm, -2, 0, 0, '', 0, 0, 0, '', '', 1); + print $form->multiselectarray('search_stcomm', $arraystcomm, $search_stcomm, 0, 0, 'width100', 0, 0, '', '', '', 2); print ''; } if (!empty($arrayfields['s2.nom']['checked'])) { @@ -1249,8 +1313,8 @@ if (!empty($arrayfields['s.tms']['checked'])) { } // Status if (!empty($arrayfields['s.status']['checked'])) { - print ''; - print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1); + print ''; + print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print ''; } if (!empty($arrayfields['s.import_key']['checked'])) { @@ -1347,10 +1411,10 @@ if (!empty($arrayfields['s.idprof4']['checked'])) { print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"), $textprofid[4], 1, 0), $_SERVER["PHP_SELF"], "s.idprof4", "", $param, '', $sortfield, $sortorder, 'nowrap '); } if (!empty($arrayfields['s.idprof5']['checked'])) { - print_liste_field_titre($form->textwithpicto($langs->trans("ProfId5Short"), $textprofid[4], 1, 0), $_SERVER["PHP_SELF"], "s.idprof5", "", $param, '', $sortfield, $sortorder, 'nowrap '); + print_liste_field_titre($form->textwithpicto($langs->trans("ProfId5Short"), $textprofid[5], 1, 0), $_SERVER["PHP_SELF"], "s.idprof5", "", $param, '', $sortfield, $sortorder, 'nowrap '); } if (!empty($arrayfields['s.idprof6']['checked'])) { - print_liste_field_titre($form->textwithpicto($langs->trans("ProfId6Short"), $textprofid[4], 1, 0), $_SERVER["PHP_SELF"], "s.idprof6", "", $param, '', $sortfield, $sortorder, 'nowrap '); + print_liste_field_titre($form->textwithpicto($langs->trans("ProfId6Short"), $textprofid[6], 1, 0), $_SERVER["PHP_SELF"], "s.idprof6", "", $param, '', $sortfield, $sortorder, 'nowrap '); } if (!empty($arrayfields['s.tva_intra']['checked'])) { print_liste_field_titre($arrayfields['s.tva_intra']['label'], $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder, 'nowrap '); @@ -1396,27 +1460,36 @@ $totalarray = array(); $totalarray['nbfield'] = 0; while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); + $parameters = array('staticdata' => $obj); + // Note that $action and $object may have been modified by hook + // do companystatic fetch in hook if wanted or anything else + $reshook = $hookmanager->executeHooks('loadStaticObject', $parameters, $companystatic, $action); + if (empty($reshook)) { + $companystatic->id = $obj->rowid; + $companystatic->name = $obj->name; + $companystatic->name_alias = $obj->name_alias; + $companystatic->logo = $obj->logo; + $companystatic->barcode = $obj->barcode; + $companystatic->canvas = $obj->canvas; + $companystatic->client = $obj->client; + $companystatic->status = $obj->status; + $companystatic->email = $obj->email; + $companystatic->address = $obj->address; + $companystatic->zip = $obj->zip; + $companystatic->town = $obj->town; + $companystatic->fournisseur = $obj->fournisseur; + $companystatic->code_client = $obj->code_client; + $companystatic->code_fournisseur = $obj->code_fournisseur; + $companystatic->tva_intra = $obj->tva_intra; + $companystatic->country_code = $obj->country_code; - $companystatic->id = $obj->rowid; - $companystatic->name = $obj->name; - $companystatic->name_alias = $obj->name_alias; - $companystatic->logo = $obj->logo; - $companystatic->canvas = $obj->canvas; - $companystatic->client = $obj->client; - $companystatic->status = $obj->status; - $companystatic->email = $obj->email; - $companystatic->fournisseur = $obj->fournisseur; - $companystatic->code_client = $obj->code_client; - $companystatic->code_fournisseur = $obj->code_fournisseur; - $companystatic->tva_intra = $obj->tva_intra; - $companystatic->country_code = $obj->country_code; + $companystatic->code_compta_client = $obj->code_compta; + $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur; - $companystatic->code_compta_client = $obj->code_compta; - $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur; - - $companystatic->fk_prospectlevel = $obj->fk_prospectlevel; - $companystatic->fk_parent = $obj->fk_parent; - $companystatic->entity = $obj->entity; + $companystatic->fk_prospectlevel = $obj->fk_prospectlevel; + $companystatic->fk_parent = $obj->fk_parent; + $companystatic->entity = $obj->entity; + } print ''; } print ''; + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['s.rowid']['checked'])) { print ''; @@ -1445,24 +1521,19 @@ while ($i < min($num, $limit)) { } } if (!empty($arrayfields['s.nom']['checked'])) { - $savalias = $obj->name_alias; - if (!empty($arrayfields['s.name_alias']['checked'])) { - $companystatic->name_alias = ''; - } print 'global->MAIN_SOCIETE_SHOW_COMPLETE_NAME) ? ' class="tdoverflowmax200"' : '').' data-key="ref">'; if ($contextpage == 'poslist') { - print $obj->name; + print dol_escape_htmltag($companystatic->name); } else { - print $companystatic->getNomUrl(1, '', 100, 0, 1); + print $companystatic->getNomUrl(1, '', 100, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); } print "\n"; - $companystatic->name_alias = $savalias; if (!$i) { $totalarray['nbfield']++; } } if (!empty($arrayfields['s.name_alias']['checked'])) { - print ''; + print ''; print dol_escape_htmltag($companystatic->name_alias); print "\n"; if (!$i) { @@ -1471,56 +1542,56 @@ while ($i < min($num, $limit)) { } // Barcode if (!empty($arrayfields['s.barcode']['checked'])) { - print ''.dol_escape_htmltag($obj->barcode).''; + print ''.dol_escape_htmltag($companystatic->barcode).''; if (!$i) { $totalarray['nbfield']++; } } // Customer code if (!empty($arrayfields['s.code_client']['checked'])) { - print ''.dol_escape_htmltag($obj->code_client).''; + print ''.dol_escape_htmltag($companystatic->code_client).''; if (!$i) { $totalarray['nbfield']++; } } // Supplier code if (!empty($arrayfields['s.code_fournisseur']['checked'])) { - print ''.dol_escape_htmltag($obj->code_fournisseur).''; + print ''.dol_escape_htmltag($companystatic->code_fournisseur).''; if (!$i) { $totalarray['nbfield']++; } } // Account customer code if (!empty($arrayfields['s.code_compta']['checked'])) { - print ''.dol_escape_htmltag($obj->code_compta).''; + print ''.dol_escape_htmltag($companystatic->code_compta_client).''; if (!$i) { $totalarray['nbfield']++; } } // Account supplier code if (!empty($arrayfields['s.code_compta_fournisseur']['checked'])) { - print ''.dol_escape_htmltag($obj->code_compta_fournisseur).''; + print ''.dol_escape_htmltag($companystatic->code_compta_fournisseur).''; if (!$i) { $totalarray['nbfield']++; } } // Address if (!empty($arrayfields['s.address']['checked'])) { - print ''.dol_escape_htmltag($obj->address).''; + print ''.dol_escape_htmltag($companystatic->address).''; if (!$i) { $totalarray['nbfield']++; } } // Zip if (!empty($arrayfields['s.zip']['checked'])) { - print "".dol_escape_htmltag($obj->zip)."\n"; + print "".dol_escape_htmltag($companystatic->zip)."\n"; if (!$i) { $totalarray['nbfield']++; } } // Town if (!empty($arrayfields['s.town']['checked'])) { - print ''.dol_escape_htmltag($obj->town)."\n"; + print ''.dol_escape_htmltag($companystatic->town)."\n"; if (!$i) { $totalarray['nbfield']++; } @@ -1542,7 +1613,7 @@ while ($i < min($num, $limit)) { // Country if (!empty($arrayfields['country.code_iso']['checked'])) { print ''; - $labelcountry = ($obj->country_code && ($langs->trans("Country".$obj->country_code) != "Country".$obj->country_code)) ? $langs->trans("Country".$obj->country_code) : $obj->country_label; + $labelcountry = ($companystatic->country_code && ($langs->trans("Country".$companystatic->country_code) != "Country".$companystatic->country_code)) ? $langs->trans("Country".$companystatic->country_code) : $obj->country_label; print $labelcountry; print ''; if (!$i) { @@ -1583,19 +1654,19 @@ while ($i < min($num, $limit)) { } } if (!empty($arrayfields['s.email']['checked'])) { - print ''.dol_print_email($obj->email, $obj->rowid, $obj->socid, 'AC_EMAIL', 0, 0, 1)."\n"; + print ''.dol_print_email($obj->email, $obj->rowid, $obj->rowid, 'AC_EMAIL', 0, 0, 1)."\n"; if (!$i) { $totalarray['nbfield']++; } } if (!empty($arrayfields['s.phone']['checked'])) { - print ''.dol_print_phone($obj->phone, $obj->country_code, 0, $obj->rowid, 'AC_TEL', ' ', 'phone')."\n"; + print ''.dol_print_phone($obj->phone, $companystatic->country_code, 0, $obj->rowid, 'AC_TEL', ' ', 'phone')."\n"; if (!$i) { $totalarray['nbfield']++; } } if (!empty($arrayfields['s.fax']['checked'])) { - print ''.dol_print_phone($obj->fax, $obj->country_code, 0, $obj->rowid, 'AC_TEL', ' ', 'fax')."\n"; + print ''.dol_print_phone($obj->fax, $companystatic->country_code, 0, $obj->rowid, 'AC_TEL', ' ', 'fax')."\n"; if (!$i) { $totalarray['nbfield']++; } @@ -1644,11 +1715,11 @@ while ($i < min($num, $limit)) { } // VAT if (!empty($arrayfields['s.tva_intra']['checked'])) { - print ''; - if ($obj->tva_intra && !isValidVATID($companystatic)) { + print ''; + if ($companystatic->tva_intra && !isValidVATID($companystatic)) { print img_warning("BadVATNumber", '', 'pictofixedwidth'); } - print $obj->tva_intra; + print $companystatic->tva_intra; print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -1676,7 +1747,7 @@ while ($i < min($num, $limit)) { if (!empty($arrayfields['s.fk_stcomm']['checked'])) { // Prospect status - print '
    '; + print '
    '; print '
    '; print $companystatic->LibProspCommStatut($obj->stcomm_id, 2, $prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label'], $obj->stcomm_picto); print '
    -
    '; @@ -1737,9 +1808,10 @@ while ($i < min($num, $limit)) { $totalarray['nbfield']++; } } + // Import key if (!empty($arrayfields['s.import_key']['checked'])) { - print ''; - print $obj->import_key; + print ''; + print dol_escape_htmltag($obj->import_key); print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -1756,9 +1828,9 @@ while ($i < min($num, $limit)) { print ''; } print ''; - } - if (!$i) { - $totalarray['nbfield']++; + if (!$i) { + $totalarray['nbfield']++; + } } print ''."\n"; diff --git a/htdocs/societe/messaging.php b/htdocs/societe/messaging.php new file mode 100644 index 00000000000..55ca9893dff --- /dev/null +++ b/htdocs/societe/messaging.php @@ -0,0 +1,211 @@ + + * Copyright (C) 2005 Brice Davoleau + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2006-2019 Laurent Destailleur + * Copyright (C) 2007 Patrick Raguin + * Copyright (C) 2010 Juanjo Menent + * Copyright (C) 2015 Marcos García + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/societe/messaging.php + * \ingroup societe + * \brief Page of third party events + */ + +// Load Dolibarr environment +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array('agenda', 'bills', 'companies', 'orders', 'propal')); + + +if (GETPOST('actioncode', 'array')) { + $actioncode = GETPOST('actioncode', 'array', 3); + if (!count($actioncode)) { + $actioncode = '0'; + } +} else { + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); +} + +$search_agenda_label = GETPOST('search_agenda_label'); + +// Security check +$socid = GETPOST('socid', 'int'); +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'societe', $socid, '&societe'); + +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortfield) { + $sortfield = 'a.datep,a.id'; +} +if (!$sortorder) { + $sortorder = 'DESC,DESC'; +} + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('agendathirdparty')); + + +/* + * Actions + */ + +$parameters = array('id'=>$socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Cancel + if (GETPOST('cancel', 'alpha') && !empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + $actioncode = ''; + $search_agenda_label = ''; + } +} + + + +/* + * View + */ + +$form = new Form($db); + +if ($socid > 0) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; + + $object = new Societe($db); + $result = $object->fetch($socid); + + $title = $langs->trans("Agenda"); + if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { + $title = $object->name." - ".$title; + } + llxHeader('', $title); + + if (isModEnabled('notification')) { + $langs->load("mails"); + } + $head = societe_prepare_head($object); + + print dol_get_fiche_head($head, 'agenda', $langs->trans("ThirdParty"), -1, 'company'); + + $linkback = ''.$langs->trans("BackToList").''; + + dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); + + print '
    '; + + print '
    '; + + $object->info($socid); + dol_print_object_info($object, 1); + + print '
    '; + + print dol_get_fiche_end(); + + + + // Actions buttons + + $objthirdparty = $object; + $objcon = new stdClass(); + + $out = ''; + $permok = $user->hasRight('agenda', 'myactions', 'create'); + if ((!empty($objthirdparty->id) || !empty($objcon->id)) && $permok) { + if (is_object($objthirdparty) && get_class($objthirdparty) == 'Societe') { + $out .= '&originid='.$objthirdparty->id.($objthirdparty->id > 0 ? '&socid='.$objthirdparty->id : '').'&backtopage='.urlencode($_SERVER['PHP_SELF'].($objthirdparty->id > 0 ? '?socid='.$objthirdparty->id : '')); + } + $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : ''); + $out .= '&datep='.dol_print_date(dol_now(), 'dayhourlog'); + } + + $morehtmlright = ''; + + $messagingUrl = DOL_URL_ROOT.'/societe/messaging.php?socid='.$object->id; + $morehtmlright .= dolGetButtonTitle($langs->trans('ShowAsConversation'), '', 'fa fa-comments imgforviewmode', $messagingUrl, '', 2); + $messagingUrl = DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id; + $morehtmlright .= dolGetButtonTitle($langs->trans('MessageListViewType'), '', 'fa fa-bars imgforviewmode', $messagingUrl, '', 1); + + // // Show link to send an email (if read and not closed) + // $btnstatus = $object->status < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; + // $url = 'card.php?track_id='.$object->track_id.'&action=presend_addmessage&mode=init&private_message=0&send_email=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?track_id='.$object->track_id).'#formmailbeforetitle'; + // $morehtmlright .= dolGetButtonTitle($langs->trans('SendMail'), '', 'fa fa-paper-plane', $url, 'email-title-button', $btnstatus); + + // // Show link to add a private message (if read and not closed) + // $btnstatus = $object->status < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; + // $url = 'card.php?track_id='.$object->track_id.'&action=presend_addmessage&mode=init&backtopage='.urlencode($_SERVER["PHP_SELF"].'?track_id='.$object->track_id).'#formmailbeforetitle'; + // $morehtmlright .= dolGetButtonTitle($langs->trans('TicketAddMessage'), '', 'fa fa-comment-dots', $url, 'add-new-ticket-title-button', $btnstatus); + + if (isModEnabled('agenda')) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { + $morehtmlright .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); + } + } + + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + print '
    '; + + $param = '&socid='.urlencode($socid); + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); + } + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); + } + + // print load_fiche_titre($langs->trans("ActionsOnCompany"), $newcardbutton, ''); + print_barre_liste($langs->trans("ActionsOnCompany"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 1); + + // List of all actions + $filters = array(); + $filters['search_agenda_label'] = $search_agenda_label; + + // TODO Replace this with same code than into list.php + show_actions_messaging($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder); + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/societe/note.php b/htdocs/societe/note.php index b932fb11595..32ec4bbe567 100644 --- a/htdocs/societe/note.php +++ b/htdocs/societe/note.php @@ -26,21 +26,29 @@ * \ingroup societe */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -$action = GETPOST('action', 'aZ09'); +// Load translation files required by the page $langs->load("companies"); -$id = GETPOST('id') ?GETPOST('id', 'int') : GETPOST('socid', 'int'); +// Get parameters +$id = GETPOST('id') ?GETPOST('id', 'int') : GETPOST('socid', 'int'); +$action = GETPOST('action', 'aZ09'); + + +// Initialize objects $object = new Societe($db); if ($id > 0) { $object->fetch($id); } -$permissionnote = $user->rights->societe->creer; // Used by the include of actions_setnotes.inc.php +// Permissions +$permissionnote = $user->hasRight('societe', 'creer'); // Used by the include of actions_setnotes.inc.php // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('thirdpartynote', 'globalcard')); @@ -50,6 +58,7 @@ if ($user->socid > 0) { unset($action); $socid = $user->socid; } + $result = restrictedArea($user, 'societe', $object->id, '&societe'); @@ -82,7 +91,7 @@ if ($object->id > 0) { /* * Affichage onglets */ - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php index 8729ed3b46e..f299ef2ee82 100644 --- a/htdocs/societe/notify/card.php +++ b/htdocs/societe/notify/card.php @@ -24,6 +24,7 @@ * \brief Tab for notifications of third party */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -183,7 +184,7 @@ if ($result > 0) { print ''; } - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $object->fournisseur && !empty($user->rights->fournisseur->lire)) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $object->fournisseur && !empty($user->rights->fournisseur->lire)) { print ''; print $langs->trans('SupplierCode').''; print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); @@ -201,7 +202,7 @@ if ($result > 0) { $tmparray = $notify->getNotificationsArray('', $object->id, null, 0, array('thirdparty')); foreach($tmparray as $tmpkey => $tmpval) { - if (! empty($tmpkey)) $nbofrecipientemails++; + if (!empty($tmpkey)) $nbofrecipientemails++; } print $nbofrecipientemails; print '';*/ @@ -305,7 +306,7 @@ if ($result > 0) { while ($i < $num) { $obj = $db->fetch_object($resql); - $contactstatic->id = $obj->contact_id; + $contactstatic->id = $obj->contactid; $contactstatic->lastname = $obj->lastname; $contactstatic->firstname = $obj->firstname; diff --git a/htdocs/societe/partnership.php b/htdocs/societe/partnership.php deleted file mode 100644 index d9b3d3127f9..00000000000 --- a/htdocs/societe/partnership.php +++ /dev/null @@ -1,274 +0,0 @@ - - * Copyright (C) 2021 NextGestion - * Copyright (C) 2022 Charlene Benke - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file partnership_card.php - * \ingroup partnership - * \brief Page to create/edit/view partnership - */ - -// Load Dolibarr environment -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership.class.php'; -require_once DOL_DOCUMENT_ROOT.'/partnership/lib/partnership.lib.php'; - -// Load translation files required by the page -$langs->loadLangs(array("companies", "partnership", "other")); - -// Get parameters -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); -$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'partnershipcard'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); -$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -//$lineid = GETPOST('lineid', 'int'); - -// Security check -$socid = GETPOST('socid', 'int'); -if (!empty($user->socid)) { - $socid = $user->socid; -} - -if (empty($id) && $socid && (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'thirdparty')) { - $id = $socid; -} - -$object = new Societe($db); -if ($id > 0) { - $object->fetch($id); -} - -// Initialize technical objects -$object = new Partnership($db); -$extrafields = new ExtraFields($db); -$diroutputmassaction = $conf->partnership->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('thirdpartypartnership', 'globalcard')); // Note that conf->hooks_modules contains array - -// Fetch optionals attributes and labels -$extrafields->fetch_name_optionals_label($object->table_element); - -$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); - -// Initialize array of search criterias -$search_all = GETPOST("search_all", 'alpha'); -$search = array(); - -foreach ($object->fields as $key => $val) { - if (GETPOST('search_'.$key, 'alpha')) { - $search[$key] = GETPOST('search_'.$key, 'alpha'); - } -} - -// Load object -include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. - -$permissiontoread = $user->rights->partnership->read; -$permissiontoadd = $user->rights->partnership->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php -$permissiontodelete = $user->rights->partnership->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); -$permissionnote = $user->rights->partnership->write; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->partnership->write; // Used by the include of actions_dellink.inc.php -$usercanclose = $user->rights->partnership->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php -$upload_dir = $conf->partnership->multidir_output[isset($object->entity) ? $object->entity : 1]; - - -if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') != 'thirdparty') { - accessforbidden('Partnership is not activated for thirdparties'); -} -if (empty($conf->partnership->enabled)) { - accessforbidden(); -} -if (empty($permissiontoread)) { - accessforbidden(); -} -if ($action == 'edit' && empty($permissiontoadd)) { - accessforbidden(); -} - -if (($action == 'update' || $action == 'edit') && $object->status != $object::STATUS_DRAFT && !empty($user->socid)) { - accessforbidden(); -} - - -// Security check -$result = restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); - - -/* - * Actions - */ - -$parameters = array(); -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks -if ($reshook < 0) { - setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); -} - -$date_start = dol_mktime(0, 0, 0, GETPOST('date_partnership_startmonth', 'int'), GETPOST('date_partnership_startday', 'int'), GETPOST('date_partnership_startyear', 'int')); -$date_end = dol_mktime(0, 0, 0, GETPOST('date_partnership_endmonth', 'int'), GETPOST('date_partnership_endday', 'int'), GETPOST('date_partnership_endyear', 'int')); - -if (empty($reshook)) { - $error = 0; - - $backtopage = DOL_URL_ROOT.'/partnership/partnership.php?id='.($id > 0 ? $id : '__ID__'); - - // Actions when linking object each other - include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; -} - -$object->fields['fk_soc']['visible'] = 0; -if ($object->id > 0 && $object->status == $object::STATUS_REFUSED && empty($action)) { - $object->fields['reason_decline_or_cancel']['visible'] = 1; -} -$object->fields['note_public']['visible'] = 1; - - -/* - * View - */ - -$form = new Form($db); -$formfile = new FormFile($db); - -$title = $langs->trans("Partnership"); -llxHeader('', $title); - -$form = new Form($db); - -if ($id > 0) { - $langs->load("companies"); - - $object = new Societe($db); - $result = $object->fetch($id); - - if (!empty($conf->notification->enabled)) { - $langs->load("mails"); - } - $head = societe_prepare_head($object); - - print dol_get_fiche_head($head, 'partnership', $langs->trans("ThirdParty"), -1, 'company'); - - $linkback = ''.$langs->trans("BackToList").''; - - dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); - - print '
    '; - - print '
    '; - print ''; - - if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field - print ''; - } - - if ($object->client) { - print ''; - } - - if ($object->fournisseur) { - print ''; - print ''; - } - - print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; - print $langs->trans('CustomerCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_client)); - $tmpcheck = $object->check_codeclient(); - if ($tmpcheck != 0 && $tmpcheck != -5) { - print ' ('.$langs->trans("WrongCustomerCode").')'; - } - print '
    '; - print $langs->trans('SupplierCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); - $tmpcheck = $object->check_codefournisseur(); - if ($tmpcheck != 0 && $tmpcheck != -5) { - print ' ('.$langs->trans("WrongSupplierCode").')'; - } - print '
    '; - - print '
    '; - - print dol_get_fiche_end(); -} else { - dol_print_error('', 'Parameter id not defined'); -} - -// Part to show record -if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { - // Buttons for actions - - if ($action != 'presend') { - print '
    '."\n"; - $parameters = array(); - $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - if ($reshook < 0) { - setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - } - - if (empty($reshook)) { - // Show - if ($permissiontoadd) { - print dolGetButtonAction($langs->trans('AddPartnership'), '', 'default', DOL_URL_ROOT.'/partnership/partnership_card.php?action=create&fk_soc='.$object->id.'&backtopage='.urlencode(DOL_URL_ROOT.'/societe/partnership.php?id='.$object->id), '', $permissiontoadd); - } - } - print '
    '."\n"; - } - - - //$morehtmlright = 'partnership/partnership_card.php?action=create&backtopage=%2Fdolibarr%2Fhtdocs%2Fpartnership%2Fpartnership_list.php'; - $morehtmlright = ''; - - print load_fiche_titre($langs->trans("PartnershipDedicatedToThisThirdParty", $langs->transnoentitiesnoconv("Partnership")), $morehtmlright, ''); - - $socid = $object->id; - - - // TODO Replace this card with a table of list of all partnerships. - - $object = new Partnership($db); - $partnershipid = $object->fetch(0, '', 0, $socid); - - if ($partnershipid > 0) { - print '
    '; - print '
    '; - print '
    '; - print ''."\n"; - - // Common attributes - unset($object->fields['fk_soc']); // Hide field already shown in banner - include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; - $forcefieldid = 'socid'; - $forceobjectid = $object->fk_soc; - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; - - print '
    '; - print '
    '; - } -} - -// End of page -llxFooter(); -$db->close(); diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index d623e5699de..d1dafde4622 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -1,7 +1,7 @@ * Copyright (C) 2003 Jean-Louis Bergamo - * Copyright (C) 2004-2018 Laurent Destailleur + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2013 Peter Fontaine * Copyright (C) 2015-2016 Marcos García @@ -29,6 +29,8 @@ * \brief Tab of payment modes for the customer */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; @@ -40,8 +42,11 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; + +// Load translation files required by the page $langs->loadLangs(array("companies", "commercial", "banks", "bills", 'paypal', 'stripe', 'withdrawals')); + // Security check $socid = GETPOST("socid", "int"); if ($user->socid) { @@ -49,12 +54,15 @@ if ($user->socid) { } $result = restrictedArea($user, 'societe', '', ''); + +// Get parameters $id = GETPOST("id", "int"); $source = GETPOST("source", "alpha"); // source can be a source or a paymentmode $ribid = GETPOST("ribid", "int"); $action = GETPOST("action", 'alpha', 3); $cancel = GETPOST('cancel', 'alpha'); +// Initialize objects $object = new Societe($db); $object->fetch($socid); @@ -70,12 +78,13 @@ $extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('thirdpartybancard', 'globalcard')); -$permissiontoread = $user->rights->societe->lire; -$permissiontoadd = $user->rights->societe->creer; // Used by the include of actions_addupdatedelete.inc.php and actions_builddoc.inc.php +// Permissions +$permissiontoread = $user->hasRight('societe', 'lire'); +$permissiontoadd = $user->hasRight('societe', 'creer'); // Used by the include of actions_addupdatedelete.inc.php and actions_builddoc.inc.php $permissiontoaddupdatepaymentinformation = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $permissiontoadd) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->societe->thirdparty_paymentinformation_advance->write))); -if (!empty($conf->stripe->enabled)) { +if (isModEnabled('stripe')) { $service = 'StripeTest'; $servicestatus = 0; if (!empty($conf->global->STRIPE_LIVE) && !GETPOST('forcesandbox', 'alpha')) { @@ -102,6 +111,7 @@ if ($cancel) { $action = ''; } +$morehtmlright = ''; $parameters = array('id'=>$socid); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { @@ -129,6 +139,7 @@ if (empty($reshook)) { $action = 'edit'; $error++; } + $companybankaccount->fetch($id); if ($companybankaccount->needIBAN() == 1) { if (!GETPOST('iban')) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("IBAN")), null, 'errors'); @@ -142,7 +153,6 @@ if (empty($reshook)) { } } - $companybankaccount->fetch($id); if (!$error) { $companybankaccount->socid = $object->id; @@ -166,6 +176,12 @@ if (empty($reshook)) { $companybankaccount->rum = $prelevement->buildRumNumber($object->code_client, $companybankaccount->datec, $companybankaccount->id); } + if (GETPOST('stripe_card_ref', 'alpha') && GETPOST('stripe_card_ref', 'alpha') != $companypaymentmode->stripe_card_ref) { + // If we set a stripe value that is different than previous one, we also set the stripe account + $companypaymentmode->stripe_account = $stripecu.'@'.$site_account; + } + $companybankaccount->stripe_card_ref = GETPOST('stripe_card_ref', 'alpha'); + $result = $companybankaccount->update($user); if (!$result) { setEventMessages($companybankaccount->error, $companybankaccount->errors, 'errors'); @@ -407,6 +423,7 @@ if (empty($reshook)) { if ($action == 'confirm_deletecard' && GETPOST('confirm', 'alpha') == 'yes') { $companypaymentmode = new CompanyPaymentMode($db); if ($companypaymentmode->fetch($ribid ? $ribid : $id)) { + // TODO This is currently done at bottom of page instead of asking confirm /*if ($companypaymentmode->stripe_card_ref && preg_match('/pm_/', $companypaymentmode->stripe_card_ref)) { $payment_method = \Stripe\PaymentMethod::retrieve($companypaymentmode->stripe_card_ref); @@ -419,6 +436,7 @@ if (empty($reshook)) { $result = $companypaymentmode->delete($user); if ($result > 0) { $url = $_SERVER['PHP_SELF']."?socid=".$object->id; + header('Location: '.$url); exit; } else { @@ -431,9 +449,21 @@ if (empty($reshook)) { if ($action == 'confirm_delete' && GETPOST('confirm', 'alpha') == 'yes') { $companybankaccount = new CompanyBankAccount($db); if ($companybankaccount->fetch($ribid ? $ribid : $id)) { + // TODO This is currently done at bottom of page instead of asking confirm + /*if ($companypaymentmode->stripe_card_ref && preg_match('/pm_/', $companypaymentmode->stripe_card_ref)) + { + $payment_method = \Stripe\PaymentMethod::retrieve($companypaymentmode->stripe_card_ref); + if ($payment_method) + { + $payment_method->detach(); + } + }*/ + $result = $companybankaccount->delete($user); + if ($result > 0) { $url = $_SERVER['PHP_SELF']."?socid=".$object->id; + header('Location: '.$url); exit; } else { @@ -464,7 +494,7 @@ if (empty($reshook)) { $id = $savid; // Action for stripe - if (!empty($conf->stripe->enabled) && class_exists('Stripe')) { + if (isModEnabled('stripe') && class_exists('Stripe')) { if ($action == 'synccustomertostripe') { if ($object->client == 0) { $error++; @@ -496,7 +526,7 @@ if (empty($reshook)) { } if (!$error) { - // Creation of Stripe card + update of societe_account + // Creation of Stripe card + update of llx_societe_rib // Note that with the new Stripe API, option to create a card is no more available, instead an error message will be returned to // ask to create the crdit card from Stripe backoffice. $card = $stripe->cardStripe($cu, $companypaymentmode, $stripeacc, $servicestatus, 1); @@ -507,6 +537,35 @@ if (empty($reshook)) { } } } + if ($action == 'syncsepatostripe') { + $companypaymentmode = new CompanyPaymentMode($db); // Get record in llx_societe_rib + $companypaymentmode->fetch($id); + + if ($companypaymentmode->type != 'ban') { + $error++; + $langs->load("errors"); + setEventMessages('ThisPaymentModeIsNotABan', null, 'errors'); + } else { + // Get the Stripe customer + $cu = $stripe->customerStripe($object, $stripeacc, $servicestatus); + // print json_encode($cu); + if (empty($cu)) { + $error++; + $langs->load("errors"); + setEventMessages($langs->trans("ErrorStripeCustomerNotFoundCreateFirst"), null, 'errors'); + } + if (!$error) { + // Creation of Stripe SEPA + update of llx_societe_rib + $card = $stripe->sepaStripe($cu, $companypaymentmode, $stripeacc, $servicestatus, 1); + if (!$card) { + $error++; + setEventMessages($stripe->error, $stripe->errors, 'errors'); + } else { + setEventMessages("", array("Bank Account on Stripe", "BAN is now linked to the Stripe customer account !")); + } + } + } + } if ($action == 'setkey_account') { $error = 0; @@ -623,7 +682,7 @@ if (empty($reshook)) { } elseif ($action == 'setassourcedefault') { // Set as default when payment mode defined remotely only try { $cu = $stripe->customerStripe($object, $stripeacc, $servicestatus); - if (preg_match('/pm_/', $source)) { + if (preg_match('/pm_|src_/', $source)) { $cu->invoice_settings->default_payment_method = (string) $source; // New } else { $cu->default_source = (string) $source; // Old @@ -651,6 +710,41 @@ if (empty($reshook)) { // $card->detach(); Does not work with card_, only with src_ if (method_exists($card, 'detach')) { $card->detach(); + $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib as sr "; + $sql .= " SET stripe_card_ref = null"; + $sql .= " WHERE sr.stripe_card_ref = '".$db->escape($source)."'"; + $resql = $db->query($sql); + } else { + $card->delete(); + } + } + } + + $url = DOL_URL_ROOT.'/societe/paymentmodes.php?socid='.$object->id; + header('Location: '.$url); + exit; + } catch (Exception $e) { + $error++; + setEventMessages($e->getMessage(), null, 'errors'); + } + } elseif ($action == 'delete' && $source) { + try { + if (preg_match('/pm_/', $source)) { + $payment_method = \Stripe\PaymentMethod::retrieve($source, array("stripe_account" => $stripeacc)); + if ($payment_method) { + $payment_method->detach(); + } + } else { + $cu = $stripe->customerStripe($object, $stripeacc, $servicestatus); + $card = $cu->sources->retrieve("$source"); + if ($card) { + // $card->detach(); Does not work with card_, only with src_ + if (method_exists($card, 'detach')) { + $card->detach(); + $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib as sr "; + $sql .= " SET stripe_card_ref = null"; + $sql .= " WHERE sr.stripe_card_ref = '".$db->escape($source)."'"; + $resql = $db->query($sql); } else { $card->delete(); } @@ -682,17 +776,18 @@ $title = $langs->trans("ThirdParty"); if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->name." - ".$langs->trans('PaymentInformation'); } +$help_url = ''; -llxHeader(); +llxHeader('', $title, $help_url); $head = societe_prepare_head($object); // Show sandbox warning -/*if (! empty($conf->paypal->enabled) && (! empty($conf->global->PAYPAL_API_SANDBOX) || GETPOST('forcesandbox','alpha'))) // We can force sand box with param 'forcesandbox' +/*if (isModEnabled('paypal') && (!empty($conf->global->PAYPAL_API_SANDBOX) || GETPOST('forcesandbox','alpha'))) // We can force sand box with param 'forcesandbox' { dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode','Paypal'),'','warning'); }*/ -if (!empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { +if (isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); } @@ -778,26 +873,26 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' $obj = $db->fetch_object($resql); $nbFactsClient = $obj->nb; $thirdTypeArray['customer'] = $langs->trans("customer"); - if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { + if (isModEnabled("propal") && $user->rights->propal->lire) { $elementTypeArray['propal'] = $langs->transnoentitiesnoconv('Proposals'); } - if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { + if (isModEnabled('commande') && $user->rights->commande->lire) { $elementTypeArray['order'] = $langs->transnoentitiesnoconv('Orders'); } if (isModEnabled('facture') && $user->rights->facture->lire) { $elementTypeArray['invoice'] = $langs->transnoentitiesnoconv('Invoices'); } - if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire) { + if (isModEnabled('contrat') && $user->rights->contrat->lire) { $elementTypeArray['contract'] = $langs->transnoentitiesnoconv('Contracts'); } - if (!empty($conf->stripe->enabled)) { + if (isModEnabled('stripe')) { // Stripe customer key 'cu_....' stored into llx_societe_account print ''; print $form->editfieldkey("StripeCustomerId", 'key_account', $stripecu, $object, $permissiontoaddupdatepaymentinformation, 'string', '', 0, 2, 'socid'); print ''; print $form->editfieldval("StripeCustomerId", 'key_account', $stripecu, $object, $permissiontoaddupdatepaymentinformation, 'string', '', null, null, '', 2, '', 'socid'); - if (!empty($conf->stripe->enabled) && $stripecu && $action != 'editkey_account') { + if (isModEnabled('stripe') && $stripecu && $action != 'editkey_account') { $connect = ''; if (!empty($stripeacc)) { $connect = $stripeacc.'/'; @@ -814,7 +909,8 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print ''; print ''; print ''; - print ''; + print img_picto($langs->trans("CreateCustomerOnStripe"), 'stripe'); + print ''; print ''; } print ''; @@ -852,7 +948,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' } } - if (!empty($conf->stripe->enabled) && !empty($conf->stripeconnect->enabled) && getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { + if (isModEnabled('stripe') && !empty($conf->stripeconnect->enabled) && getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { $stripesupplieracc = $stripe->getStripeAccount($service, $object->id); // Get Stripe OAuth connect account (no network access here) // Stripe customer key 'cu_....' stored into llx_societe_account @@ -860,7 +956,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print $form->editfieldkey("StripeConnectAccount", 'key_account_supplier', $stripesupplieracc, $object, $permissiontoaddupdatepaymentinformation, 'string', '', 0, 2, 'socid'); print ''; print $form->editfieldval("StripeConnectAccount", 'key_account_supplier', $stripesupplieracc, $object, $permissiontoaddupdatepaymentinformation, 'string', '', null, null, '', 2, '', 'socid'); - if (!empty($conf->stripe->enabled) && $stripesupplieracc && $action != 'editkey_account_supplier') { + if (isModEnabled('stripe') && $stripesupplieracc && $action != 'editkey_account_supplier') { $connect = ''; $url = 'https://dashboard.stripe.com/test/connect/accounts/'.$stripesupplieracc; @@ -889,70 +985,75 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '
    '; - // List of Stripe payment modes - if (!(empty($conf->stripe->enabled)) && $object->client) { + $showcardpaymentmode = 0; + if (isModEnabled('stripe')) { + $showcardpaymentmode++; + } + + // Get list of remote payment modes + $listofsources = array(); + + if (is_object($stripe)) { + try { + $customerstripe = $stripe->customerStripe($object, $stripeacc, $servicestatus); + if (!empty($customerstripe->id)) { + // When using the Charge API architecture + if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION)) { + $listofsources = $customerstripe->sources->data; + } else { + $service = 'StripeTest'; + $servicestatus = 0; + if (!empty($conf->global->STRIPE_LIVE) && !GETPOST('forcesandbox', 'alpha')) { + $service = 'StripeLive'; + $servicestatus = 1; + } + + // Force to use the correct API key + global $stripearrayofkeysbyenv; + \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$servicestatus]['secret_key']); + + try { + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage + $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card")); + $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit")); + } else { + $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card"), array("stripe_account" => $stripeacc)); + $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit"), array("stripe_account" => $stripeacc)); + } + + if ($paymentmethodobjsA->data != null && $paymentmethodobjsB->data != null) { + $listofsources = array_merge((array) $paymentmethodobjsA->data, (array) $paymentmethodobjsB->data); + } elseif ($paymentmethodobjsB->data != null) { + $listofsources = $paymentmethodobjsB->data; + } else { + $listofsources = $paymentmethodobjsA->data; + } + } catch (Exception $e) { + $error++; + setEventMessages($e->getMessage(), null, 'errors'); + } + } + } + } catch (Exception $e) { + dol_syslog("Error when searching/loading Stripe customer for thirdparty id =".$object->id); + } + } + + + // List of Card payment modes + if ($showcardpaymentmode && $object->client) { $morehtmlright = ''; if (!empty($conf->global->STRIPE_ALLOW_LOCAL_CARD)) { $morehtmlright .= dolGetButtonTitle($langs->trans('Add'), '', 'fa fa-plus-circle', $_SERVER["PHP_SELF"].'?socid='.$object->id.'&action=createcard'); } - print load_fiche_titre($langs->trans('StripePaymentModes').($stripeacc ? ' (Stripe connection with StripeConnect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'), $morehtmlright, 'stripe-s'); + print load_fiche_titre($langs->trans('CreditCard').($stripeacc ? ' (Stripe connection with StripeConnect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'), $morehtmlright, 'fa-credit-card'); - $listofsources = array(); - if (is_object($stripe)) { - try { - $customerstripe = $stripe->customerStripe($object, $stripeacc, $servicestatus); - if (!empty($customerstripe->id)) { - // When using the Charge API architecture - if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION)) { - $listofsources = $customerstripe->sources->data; - } else { - $service = 'StripeTest'; - $servicestatus = 0; - if (!empty($conf->global->STRIPE_LIVE) && !GETPOST('forcesandbox', 'alpha')) { - $service = 'StripeLive'; - $servicestatus = 1; - } - - // Force to use the correct API key - global $stripearrayofkeysbyenv; - \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$servicestatus]['secret_key']); - - try { - if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage - $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card")); - $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit")); - } else { - $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card"), array("stripe_account" => $stripeacc)); - $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit"), array("stripe_account" => $stripeacc)); - } - - if ($paymentmethodobjsA->data != null && $paymentmethodobjsB->data != null) { - $listofsources = array_merge((array) $paymentmethodobjsA->data, (array) $paymentmethodobjsB->data); - } elseif ($paymentmethodobjsB->data != null) { - $listofsources = $paymentmethodobjsB->data; - } else { - $listofsources = $paymentmethodobjsA->data; - } - } catch (Exception $e) { - $error++; - setEventMessages($e->getMessage(), null, 'errors'); - } - } - } - } catch (Exception $e) { - dol_syslog("Error when searching/loading Stripe customer for thirdparty id =".$object->id); - } - } - - print ''."\n"; + print ''."\n"; print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''."\n"; print ''; - if (!empty($conf->global->STRIPE_ALLOW_LOCAL_CARD)) { - print ''; - } print ''; - print ''; + print ''; // external system ID print ''; print ''; print ''; @@ -969,7 +1070,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' $nbremote = 0; $nblocal = 0; - $arrayofstripecard = array(); + $arrayofremotecard = array(); // Show local sources if (!empty($conf->global->STRIPE_ALLOW_LOCAL_CARD)) { @@ -993,18 +1094,16 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' if ($obj) { $companypaymentmodetemp->fetch($obj->rowid); - $arrayofstripecard[$companypaymentmodetemp->stripe_card_ref] = $companypaymentmodetemp->stripe_card_ref; + $arrayofremotecard[$companypaymentmodetemp->stripe_card_ref] = $companypaymentmodetemp->stripe_card_ref; - print ''; - print ''; + // Label + print ''; - print ''; - print ''; + // Type print ''; + // Information (Owner, ...) print ''; - // Local ID - if (!empty($conf->global->STRIPE_ALLOW_LOCAL_CARD)) { - print ''; + $imgline = ''; + if ($src->object == 'card') { + $imgline = img_credit_card($src->brand); + } elseif ($src->object == 'source' && $src->type == 'card') { + $imgline = img_credit_card($src->card->brand); + } elseif ($src->object == 'payment_method' && $src->type == 'card') { + $imgline = img_credit_card($src->card->brand); + } elseif ($src->object == 'source' && $src->type == 'sepa_debit') { + continue; + } elseif ($src->object == 'payment_method' && $src->type == 'sepa_debit') { + continue; } + + print ''; print ''; // Src ID - print ''; - // Img of credit card + // Img print ''; // Information print ''; + print ''; + // Fields from hook $parameters = array('arrayfields'=>array(), 'stripesource'=>$src, 'linetype'=>'stripecardremoteonly'); $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; + // Action column print ''; + print '"; + print ''; + print '
    '.$langs->trans('LocalID').''.$langs->trans('Label').''.$langs->trans('StripeID').''.$langs->trans('StripeID').''.$langs->trans('Type').''.$langs->trans('Informations').'
    '; - print $companypaymentmodetemp->id; + print '
    '; + print dol_escape_htmltag($companypaymentmodetemp->label); print ''; - print $companypaymentmodetemp->label; - print ''; - print $companypaymentmodetemp->stripe_card_ref; - if ($companypaymentmodetemp->stripe_card_ref) { + // External card ID + print ''; + if (!empty($companypaymentmodetemp->stripe_card_ref)) { $connect = ''; if (!empty($stripeacc)) { $connect = $stripeacc.'/'; @@ -1013,12 +1112,15 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' if ($servicestatus) { $url = 'https://dashboard.stripe.com/'.$connect.'search?query='.$companypaymentmodetemp->stripe_card_ref; } - print ' '.img_picto($langs->trans('ShowInStripe').' - Customer and Publishable key = '.$companypaymentmodetemp->stripe_account, 'globe').''; + print ''.img_picto($langs->trans('ShowInStripe').' - Customer and Publishable key = '.$companypaymentmodetemp->stripe_account, 'globe').' '; } + print $companypaymentmodetemp->stripe_card_ref; print ''; print img_credit_card($companypaymentmodetemp->type); print ''; if ($companypaymentmodetemp->proprio) { print ''.$companypaymentmodetemp->proprio.'
    '; @@ -1027,7 +1129,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '....'.$companypaymentmodetemp->last_four; } if ($companypaymentmodetemp->exp_date_month || $companypaymentmodetemp->exp_date_year) { - print ' - '.sprintf("%02d", $companypaymentmodetemp->exp_date_month).'/'.$companypaymentmodetemp->exp_date_year.''; + print ' - '.sprintf("%02d", $companypaymentmodetemp->exp_date_month).'/'.$companypaymentmodetemp->exp_date_year; } print '
    '; if ($companypaymentmodetemp->country_code) { @@ -1072,7 +1174,6 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print ''; print img_picto($langs->trans("Modify"), 'edit'); print ''; - print ' '; print ''; // source='.$companypaymentmodetemp->stripe_card_ref.'& print img_picto($langs->trans("Delete"), 'delete'); print ''; @@ -1091,24 +1192,31 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' // Show remote sources (not already shown as local source) if (is_array($listofsources) && count($listofsources)) { foreach ($listofsources as $src) { - if (!empty($arrayofstripecard[$src->id])) { + if (!empty($arrayofremotecard[$src->id])) { continue; // Already in previous list } $nbremote++; - print '
    '; - print '
    '; print ''; + print ''; $connect = ''; - print $src->id; if (!empty($stripeacc)) { $connect = $stripeacc.'/'; } @@ -1118,26 +1226,17 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' //$url='https://dashboard.stripe.com/'.$connect.'sources/'.$src->id; $url = 'https://dashboard.stripe.com/'.$connect.'search?query='.$src->id; } - print " ".img_picto($langs->trans('ShowInStripe'), 'globe').""; + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." "; + print $src->id; print ''; - if ($src->object == 'card') { - print img_credit_card($src->brand); - } elseif ($src->object == 'source' && $src->type == 'card') { - print img_credit_card($src->card->brand); - } elseif ($src->object == 'source' && $src->type == 'sepa_debit') { - print ''; - } elseif ($src->object == 'payment_method' && $src->type == 'card') { - print img_credit_card($src->card->brand); - } elseif ($src->object == 'payment_method' && $src->type == 'sepa_debit') { - print ''; - } + print $imgline; print''; if ($src->object == 'card') { - print '....'.$src->last4.' - '.$src->exp_month.'/'.$src->exp_year.''; + print '....'.$src->last4.' - '.$src->exp_month.'/'.$src->exp_year; print ''; if ($src->country) { $img = picto_from_langcode($src->country); @@ -1147,7 +1246,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } } elseif ($src->object == 'source' && $src->type == 'card') { - print ''.$src->owner->name.'
    ....'.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year.''; + print ''.$src->owner->name.'
    ....'.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year; print '
    '; if ($src->card->country) { @@ -1168,7 +1267,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } } elseif ($src->object == 'payment_method' && $src->type == 'card') { - print ''.$src->billing_details->name.'
    ....'.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year.''; + print ''.$src->billing_details->name.'
    ....'.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year; print '
    '; if ($src->card->country) { @@ -1207,18 +1306,20 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print $langs->trans("Remote"); //if ($src->cvc_check == 'fail') print ' - CVC check fail'; print ''; //var_dump($src); - print ''; print ''; if ($permissiontoaddupdatepaymentinformation) { - print ''; + print ''; print img_picto($langs->trans("Delete"), 'delete'); print ''; } @@ -1237,8 +1338,8 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '
    '; } - // List of Stripe payment modes - if (!empty($conf->stripe->enabled) && !empty($conf->stripeconnect->enabled) && !empty($stripesupplieracc)) { + // List of Stripe connect accounts + if (isModEnabled('stripe') && !empty($conf->stripeconnect->enabled) && !empty($stripesupplieracc)) { print load_fiche_titre($langs->trans('StripeBalance').($stripesupplieracc ? ' (Stripe connection with StripeConnect account '.$stripesupplieracc.')' : ' (Stripe connection with keys from Stripe module setup)'), $morehtmlright, 'stripe-s'); $balance = \Stripe\Balance::retrieve(array("stripe_account" => $stripesupplieracc)); print ''."\n"; @@ -1290,13 +1391,18 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print load_fiche_titre($langs->trans("BankAccounts"), $morehtmlright, 'bank'); + $nblocal = 0; $nbremote = 0; + $arrayofremoteban = array(); + $rib_list = $object->get_all_rib(); + if (is_array($rib_list)) { print '
    '; // You can use div-table-responsive-no-min if you don't need reserved height for your table print '
    '; print ''; - print_liste_field_titre("LabelRIB"); + print_liste_field_titre("Label"); + print_liste_field_titre("StripeID"); // external system ID print_liste_field_titre("Bank"); print_liste_field_titre("RIB"); print_liste_field_titre("IBAN"); @@ -1306,17 +1412,43 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print_liste_field_titre("DateRUM"); print_liste_field_titre("WithdrawMode"); } - print_liste_field_titre("DefaultRIB", '', '', '', '', '', '', '', 'center '); + print_liste_field_titre("Default", '', '', '', '', '', '', '', 'center '); print_liste_field_titre('', '', '', '', '', '', '', '', 'center '); + // Fields from hook + $parameters = array('arrayfields'=>array(), 'linetype'=>'stripebantitle'); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; print_liste_field_titre('', $_SERVER["PHP_SELF"], "", '', '', '', '', '', 'maxwidthsearch '); print "\n"; + // List of local BAN foreach ($rib_list as $rib) { + $arrayofremoteban[$rib->stripe_card_ref] = $rib->stripe_card_ref; + + $nblocal++; + print ''; // Label - print ''; + print ''; + // Stripe ID + print ''; // Bank name - print ''; + print ''; // Account number print ''; // IBAN - print ''; // BIC - print ''; if (!empty($conf->prelevement->enabled)) { // RUM //print ''; - print ''; + print ''; print ''; @@ -1417,7 +1551,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' $allowgenifempty = 0; // Language code (if multilang) - if ($conf->global->MAIN_MULTILANGS) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { include_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; $formadmin = new FormAdmin($db); $defaultlang = $langs->getDefaultLang(); @@ -1450,14 +1584,26 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print $out; print ''; + // Fields from hook + $parameters = array('arrayfields'=>array(), 'stripe_card_ref'=>$rib->stripe_card_ref, 'stripe_account'=>$rib->stripe_account, 'linetype'=>'stripeban'); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Edit/Delete print ''; } - if (count($rib_list) == 0) { - $colspan = 9; + + // List of remote BAN (if not already added as local) + foreach ($listofsources as $src) { + if (!empty($arrayofremoteban[$src->id])) { + continue; // Already in previous list + } + + $imgline = ''; + if ($src->object == 'source' && $src->type == 'sepa_debit') { + $imgline = ''; + } elseif ($src->object == 'payment_method' && $src->type == 'sepa_debit') { + $imgline = ''; + } else { + continue; + } + + $nbremote++; + + print ''; + print ''; + // Src ID + print ''; + // Bank + print ''; + // Account number + print ''; + // IBAN + print ''; + // BIC + print ''; + if (!empty($conf->prelevement->enabled)) { - $colspan += 2; + // RUM + print ''; + // Date + print ''; + // Mode mandate + print ''; + } + + // Default + print ''; + /* + print ''; + */ + + print ''; + + // Fields from hook + $parameters = array('arrayfields'=>array(), 'stripe_card_ref'=>$rib->stripe_card_ref, 'stripe_account'=>$rib->stripe_account, 'linetype'=>'stripebanremoteonly'); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Action column + print ''; + + print ''; + } + + if ($nbremote == 0 && $nblocal == 0) { + $colspan = 10; + if (isModEnabled('prelevement')) { + $colspan += 3; } print ''; } @@ -1549,10 +1799,12 @@ if ($socid && $action == 'edit' && $permissiontoaddupdatepaymentinformation) { print '
    '; + print '
    '; + print '
    '; print '
    '.$rib->label.''.dol_escape_htmltag($rib->label).''; + if ($rib->stripe_card_ref) { + $connect = ''; + if (!empty($stripeacc)) { + $connect = $stripeacc.'/'; + } + //$url='https://dashboard.stripe.com/'.$connect.'test/sources/'.$src->id; + $url = 'https://dashboard.stripe.com/'.$connect.'test/search?query='.$rib->stripe_card_ref; + if ($servicestatus) { + //$url='https://dashboard.stripe.com/'.$connect.'sources/'.$src->id; + $url = 'https://dashboard.stripe.com/'.$connect.'search?query='.$rib->stripe_card_ref; + } + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." "; + } + print $rib->stripe_card_ref; + print ''.$rib->bank.''.dol_escape_htmltag($rib->bank).''; $string = ''; @@ -1348,26 +1480,28 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print $string; print ''.$rib->iban; + print ''; if (!empty($rib->iban)) { if (!checkIbanForAccount($rib)) { - print ' '.img_picto($langs->trans("IbanNotValid"), 'warning'); + print img_picto($langs->trans("IbanNotValid"), 'warning').' '; } } + print dol_escape_htmltag($rib->iban); print ''.$rib->bic; + print ''; if (!empty($rib->bic)) { if (!checkSwiftForAccount($rib)) { - print ' '.img_picto($langs->trans("SwiftNotValid"), 'warning'); + print img_picto($langs->trans("SwiftNotValid"), 'warning').' '; } } + print dol_escape_htmltag($rib->bic); print ''.$prelevement->buildRumNumber($object->code_client, $rib->datec, $rib->id).''.$rib->rum.''.dol_escape_htmltag($rib->rum).''.dol_print_date($rib->date_rum, 'day').''; if ($permissiontoaddupdatepaymentinformation) { - print ''; + if (empty($rib->stripe_card_ref)) { + // Add link to create BAN on Stripe + print ''; + print img_picto($langs->trans("CreateBANOnStripe"), 'stripe'); + print ''; + } + + print ''; print img_picto($langs->trans("Modify"), 'edit'); print ''; - print ''; + print ''; print img_picto($langs->trans("Delete"), 'delete'); print ''; } @@ -1466,10 +1612,114 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '
    '; + print ''; + $connect = ''; + if (!empty($stripeacc)) { + $connect = $stripeacc.'/'; + } + //$url='https://dashboard.stripe.com/'.$connect.'test/sources/'.$src->id; + $url = 'https://dashboard.stripe.com/'.$connect.'test/search?query='.$src->id; + if ($servicestatus) { + //$url='https://dashboard.stripe.com/'.$connect.'sources/'.$src->id; + $url = 'https://dashboard.stripe.com/'.$connect.'search?query='.$src->id; + } + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." "; + print $src->id; + print ''; + print''; + print ''; + //var_dump($src); + print ''; + //var_dump($src); + print ''; + //var_dump($src); + print ''; + //var_dump($src); + print ''; + //var_dump($src); + print ''; + if ((empty($customerstripe->invoice_settings) && $customerstripe->default_source != $src->id) || + (!empty($customerstripe->invoice_settings) && $customerstripe->invoice_settings->default_payment_method != $src->id)) { + print ''; + print img_picto($langs->trans("Default"), 'off'); + print ''; + } else { + print img_picto($langs->trans("Default"), 'on'); + } + print ''; + print $langs->trans("Remote"); + //if ($src->cvc_check == 'fail') print ' - CVC check fail'; + print ''; + print ''; + if ($permissiontoaddupdatepaymentinformation) { + print ''; + print img_picto($langs->trans("Delete"), 'delete'); + print ''; + } + print '
    '.$langs->trans("NoBANRecord").'
    '; - print ''; + print ''; print ''; print ''; @@ -1624,7 +1876,7 @@ if ($socid && $action == 'edit' && $permissiontoaddupdatepaymentinformation) { print '
    '.$langs->trans("LabelRIB").'
    '.$langs->trans("Label").'
    '.$langs->trans("BankName").'
    '; print ''; - if ($conf->prelevement->enabled) { + if (isModEnabled('prelevement')) { print '
    '; print '
    '; @@ -1648,6 +1900,9 @@ if ($socid && $action == 'edit' && $permissiontoaddupdatepaymentinformation) { print $form->selectarray("frstrecur", $tblArraychoice, dol_escape_htmltag(GETPOST('frstrecur', 'alpha') ?GETPOST('frstrecur', 'alpha') : $companybankaccount->frstrecur), 0); print '
    '.$langs->trans("StripeID")." ('src_....')
    '; print '
    '; } @@ -1666,9 +1921,12 @@ if ($socid && $action == 'editcard' && $permissiontoaddupdatepaymentinformation) dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); - print '
    '; + print '
    '; print '
    '; + + print '
    '; + print ''; print ''; @@ -1712,13 +1970,16 @@ if ($socid && $action == 'create' && $permissiontoaddupdatepaymentinformation) { print '
    '; print '
    '; + + print '
    '; + print '
    '.$langs->trans("Label").'
    '; - print ''; - print ''; + print ''; + print ''; print ''; - print ''; + print ''; // Show fields of bank account foreach ($companybankaccount->getFieldsToShow(1) as $val) { @@ -1785,7 +2046,7 @@ if ($socid && $action == 'create' && $permissiontoaddupdatepaymentinformation) { print '
    '.$langs->trans("LabelRIB").'
    '.$langs->trans("Label").'
    '.$langs->trans("Bank").'
    '; - if ($conf->prelevement->enabled) { + if (isModEnabled('prelevement')) { print '
    '; print ''; @@ -1804,6 +2065,9 @@ if ($socid && $action == 'create' && $permissiontoaddupdatepaymentinformation) { print $form->selectarray("frstrecur", $tblArraychoice, (GETPOSTISSET('frstrecur') ? GETPOST('frstrecur') : 'FRST'), 0); print ''; + print '"; + print ''; + print '
    '.$langs->trans("StripeID")." ('src_....')
    '; } @@ -1811,7 +2075,7 @@ if ($socid && $action == 'create' && $permissiontoaddupdatepaymentinformation) { print dol_get_fiche_end(); - dol_set_focus('#label'); + dol_set_focus('#bank'); print $form->buttonsSaveCancel("Add"); } @@ -1827,6 +2091,9 @@ if ($socid && $action == 'createcard' && $permissiontoaddupdatepaymentinformatio print '
    '; print '
    '; + + print '
    '; + print ''; print ''; diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php index 897a372dc27..af2898a8556 100644 --- a/htdocs/societe/price.php +++ b/htdocs/societe/price.php @@ -26,6 +26,8 @@ * \brief Page to show product prices by customer */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; @@ -38,13 +40,17 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { $prodcustprice = new Productcustomerprice($db); } + +// Load translation files required by the page $langs->loadLangs(array("products", "companies", "bills")); -$action = GETPOST('action', 'aZ09'); -$search_prod = GETPOST('search_prod', 'alpha'); -$cancel = GETPOST('cancel', 'alpha'); -$search_label = GETPOST('search_label', 'alpha'); -$search_price = GETPOST('search_price'); + +// Get parameters +$action = GETPOST('action', 'aZ09'); +$search_prod = GETPOST('search_prod', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); +$search_label = GETPOST('search_label', 'alpha'); +$search_price = GETPOST('search_price'); $search_price_ttc = GETPOST('search_price_ttc'); // Security check @@ -54,6 +60,7 @@ if ($user->socid) { } $result = restrictedArea($user, 'societe', $socid, '&societe'); +// Initialize objects $object = new Societe($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -151,7 +158,7 @@ if (empty($reshook)) { if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'mesgs'); } else { - setEventMessages($langs->trans('Delete'), null, 'errors'); + setEventMessages($langs->trans('RecordDeleted'), null, 'errors'); } $action = ''; } @@ -192,7 +199,7 @@ $object = new Societe($db); $result = $object->fetch($socid); llxHeader("", $langs->trans("ThirdParty").'-'.$langs->trans('PriceByCustomer')); -if (!empty($conf->notification->enabled)) { +if (isModEnabled('notification')) { $langs->load("mails"); } $head = societe_prepare_head($object); @@ -208,6 +215,11 @@ print '
    '; print '
    '; print '
    '.$langs->trans("Label").'
    '; +// Type Prospect/Customer/Supplier +print ''; + if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field print ''; } @@ -525,10 +537,10 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $nbtotalofrecords = $prodcustprice->fetch_all('', '', 0, 0, $filter); + $nbtotalofrecords = $prodcustprice->fetchAll('', '', 0, 0, $filter); } - $result = $prodcustprice->fetch_all($sortorder, $sortfield, $conf->liste_limit, $offset, $filter); + $result = $prodcustprice->fetchAll($sortorder, $sortfield, $conf->liste_limit, $offset, $filter); if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors'); } @@ -543,6 +555,7 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print ''; print ''; + print '
    '; print '
    '.$langs->trans('NatureOfThirdParty').''; +print $object->getTypeUrl(1); +print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; print ''; @@ -562,14 +575,14 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { if (count($prodcustprice->lines) > 0 || $search_prod) { print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; print ''; @@ -633,6 +646,7 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { } print "
    "; + print '
    '; print ""; } diff --git a/htdocs/societe/project.php b/htdocs/societe/project.php index ef68a03ab78..5a8ba6a46b2 100644 --- a/htdocs/societe/project.php +++ b/htdocs/societe/project.php @@ -28,11 +28,14 @@ * \brief Page of third party projects */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -$langs->loadLangs(array("companies", "projects")); +// Load translation files required by the page +$langs->loadLangs(array('companies', 'projects')); // Security check $socid = GETPOST('socid', 'int'); @@ -81,7 +84,7 @@ if ($socid) { } llxHeader('', $title); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = societe_prepare_head($object); diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php index df10c0d4bf9..1767973a001 100644 --- a/htdocs/societe/societecontact.php +++ b/htdocs/societe/societecontact.php @@ -26,14 +26,18 @@ * \brief Onglet de gestion des contacts additionnel d'une société */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -$langs->loadLangs(array("orders", "companies")); +// Load translation files required by the page +$langs->loadLangs(array('companies', 'orders')); +// Get parameters $id = GETPOST('id', 'int') ?GETPOST('id', 'int') : GETPOST('socid', 'int'); $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); @@ -62,6 +66,8 @@ if ($user->socid) { } $result = restrictedArea($user, 'societe', $id, ''); + +// Initialize objects $object = new Societe($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -128,17 +134,10 @@ $contactstatic = new Contact($db); $userstatic = new User($db); -/* *************************************************************************** */ -/* */ -/* Mode vue et edition */ -/* */ -/* *************************************************************************** */ +// View and edit if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref) > 0) { - $soc = new Societe($db); - $soc->fetch($object->socid); - $head = societe_prepare_head($object); print dol_get_fiche_head($head, 'contact', $langs->trans("ThirdParty"), -1, 'company'); @@ -206,7 +205,7 @@ if ($id > 0 || !empty($ref)) { } // additionnal list with adherents of company - if (!empty($conf->adherent->enabled) && $user->rights->adherent->lire) { + if (isModEnabled('adherent') && $user->rights->adherent->lire) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; diff --git a/htdocs/societe/tpl/linesalesrepresentative.tpl.php b/htdocs/societe/tpl/linesalesrepresentative.tpl.php index 125264e14d7..c8d11c9be3b 100644 --- a/htdocs/societe/tpl/linesalesrepresentative.tpl.php +++ b/htdocs/societe/tpl/linesalesrepresentative.tpl.php @@ -28,7 +28,7 @@ print ''; print ''; -if ($action != 'editsalesrepresentatives' && $user->rights->societe->creer) { +if ($action != 'editsalesrepresentatives' && $user->hasRight('societe', 'creer')) { print ''; diff --git a/htdocs/societe/website.php b/htdocs/societe/website.php index 2d346282c4c..9ca58ab0bf4 100644 --- a/htdocs/societe/website.php +++ b/htdocs/societe/website.php @@ -28,6 +28,8 @@ * \brief Page of web sites accounts */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; @@ -35,13 +37,17 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; + +// Load translation files required by the page $langs->loadLangs(array("companies", "website")); -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... -$show_files = GETPOST('show_files', 'int'); -$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'websitelist'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') + +// Get parameters +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$show_files = GETPOST('show_files', 'int'); +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'websitelist'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') // Security check $id = GETPOST('id', 'int') ?GETPOST('id', 'int') : GETPOST('socid', 'int'); @@ -155,8 +161,8 @@ if (empty($reshook)) { // Mass actions $objectclass = 'WebsiteAccount'; $objectlabel = 'WebsiteAccount'; - $permissiontoread = $user->rights->societe->lire; - $permissiontodelete = $user->rights->societe->supprimer; + $permissiontoread = $user->hasRight('societe', 'lire'); + $permissiontodelete = $user->hasRight('societe', 'supprimer'); $uploaddir = $conf->societe->multidir_output[$object->entity]; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -243,8 +249,8 @@ print ''; print dol_get_fiche_end(); $newcardbutton = ''; -if (!empty($conf->website->enabled)) { - if (!empty($user->rights->societe->lire)) { +if (isModEnabled('website')) { + if ($user->hasRight('societe', 'lire')) { $newcardbutton .= dolGetButtonTitle($langs->trans("AddWebsiteAccount"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/website/websiteaccount_card.php?action=create&fk_soc='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id)); } else { $newcardbutton .= dolGetButtonTitle($langs->trans("AddAction"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/website/websiteaccount_card.php?action=create&fk_soc='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', 0); @@ -305,7 +311,7 @@ foreach($objectwebsiteaccount->fields as $key => $val) $sql .= "t.".$key.", "; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) { +if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); // Add where from hooks $parameters=array(); diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 77c8d9a03b2..b115d0453f0 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -2,7 +2,7 @@ /* Copyright (C) 2017 Alexandre Spangaro * Copyright (C) 2017 Olivier Geffroy * Copyright (C) 2017 Saasprov - * Copyright (C) 2018-2021 Thibault FOUCART + * Copyright (C) 2018-2022 Thibault FOUCART * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -25,6 +25,7 @@ * \brief Page to setup stripe module */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/stripe/lib/stripe.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -56,72 +57,78 @@ if ($action == 'setvalue' && $user->admin) { if (empty($conf->stripeconnect->enabled)) { $result = dolibarr_set_const($db, "STRIPE_TEST_PUBLISHABLE_KEY", GETPOST('STRIPE_TEST_PUBLISHABLE_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_TEST_SECRET_KEY", GETPOST('STRIPE_TEST_SECRET_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_TEST_WEBHOOK_ID", GETPOST('STRIPE_TEST_WEBHOOK_ID', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_TEST_WEBHOOK_KEY", GETPOST('STRIPE_TEST_WEBHOOK_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_LIVE_PUBLISHABLE_KEY", GETPOST('STRIPE_LIVE_PUBLISHABLE_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_LIVE_SECRET_KEY", GETPOST('STRIPE_LIVE_SECRET_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_LIVE_WEBHOOK_ID", GETPOST('STRIPE_LIVE_WEBHOOK_ID', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_LIVE_WEBHOOK_KEY", GETPOST('STRIPE_LIVE_WEBHOOK_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } } $result = dolibarr_set_const($db, "ONLINE_PAYMENT_CREDITOR", GETPOST('ONLINE_PAYMENT_CREDITOR', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_BANK_ACCOUNT_FOR_PAYMENTS", GETPOST('STRIPE_BANK_ACCOUNT_FOR_PAYMENTS', 'int'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_USER_ACCOUNT_FOR_ACTIONS", GETPOST('STRIPE_USER_ACCOUNT_FOR_ACTIONS', 'int'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS", GETPOST('STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS', 'int'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } + if (GETPOSTISSET('STRIPE_LOCATION')) { + $result = dolibarr_set_const($db, "STRIPE_LOCATION", GETPOST('STRIPE_LOCATION', 'alpha'), 'chaine', 0, '', $conf->entity); + if (!$result > 0) { + $error++; + } + } $result = dolibarr_set_const($db, "ONLINE_PAYMENT_CSS_URL", GETPOST('ONLINE_PAYMENT_CSS_URL', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "ONLINE_PAYMENT_MESSAGE_FORM", GETPOST('ONLINE_PAYMENT_MESSAGE_FORM', 'restricthtml'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "ONLINE_PAYMENT_MESSAGE_OK", GETPOST('ONLINE_PAYMENT_MESSAGE_OK', 'restricthtml'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "ONLINE_PAYMENT_MESSAGE_KO", GETPOST('ONLINE_PAYMENT_MESSAGE_KO', 'restricthtml'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } $result = dolibarr_set_const($db, "ONLINE_PAYMENT_SENDEMAIL", GETPOST('ONLINE_PAYMENT_SENDEMAIL'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } // Stock decrement @@ -131,12 +138,12 @@ if ($action == 'setvalue' && $user->admin) { // Payment token for URL $result = dolibarr_set_const($db, "PAYMENT_SECURITY_TOKEN", GETPOST('PAYMENT_SECURITY_TOKEN', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } if (empty($conf->use_javascript_ajax)) { $result = dolibarr_set_const($db, "PAYMENT_SECURITY_TOKEN_UNIQUE", GETPOST('PAYMENT_SECURITY_TOKEN_UNIQUE', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!$result > 0) { + if (!($result > 0)) { $error++; } } @@ -221,10 +228,10 @@ if (empty($conf->stripeconnect->enabled)) { print ''; print ''; print '\n"; print ''; print ''; print ''; if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { // What is this for ? print ''; +} + +// Card Present for Stripe Terminal +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code + print ''; +} + +// Locations for Stripe Terminal +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code + print ''; } // Activate Payment Request API if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code print ''; } @@ -385,7 +448,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code print ajax_constantonoff('STRIPE_SEPA_DIRECT_DEBIT'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("STRIPE_SEPA_DIRECT_DEBIT", $arrval, $conf->global->STRIPE_SEPA_DIRECT_DEBIT); + print $form->selectarray("STRIPE_SEPA_DIRECT_DEBIT", $arrval, getDolGlobalString('STRIPE_SEPA_DIRECT_DEBIT')); } print ''; } @@ -462,7 +525,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code print ''; @@ -486,6 +549,7 @@ print ''; print ''; @@ -519,7 +583,7 @@ print ''; print '\n"; + try { + if ($stripeacc) { + $list = \Stripe\Charge::all($option, array("stripe_account" => $stripeacc)); + } else { + $list = \Stripe\Charge::all($option); + } + + $num = count($list->data); + + + //if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); + } + $param .= '&starting_after_'.($page + 1).'='.$list->data[($limit - 1)]->id; + //$param.='&ending_before_'.($page+1).'='.$list->data[($limit-1)]->id; + } catch (Exception $e) { + print ''; + } + //print $list; $i = 0; - foreach ($list->data as $charge) { - if ($i >= $limit) { - break; - } + if (!empty($list)) { + foreach ($list->data as $charge) { + if ($i >= $limit) { + break; + } - if ($charge->refunded == '1') { - $status = img_picto($langs->trans("refunded"), 'statut6'); - } elseif ($charge->paid == '1') { - $status = img_picto($langs->trans((string) $charge->status), 'statut4'); - } else { - $label = $langs->trans("Message").": ".$charge->failure_message."
    "; - $label .= $langs->trans("Network").": ".$charge->outcome->network_status."
    "; - $label .= $langs->trans("Status").": ".$langs->trans((string) $charge->outcome->seller_message); - $status = $form->textwithpicto(img_picto($langs->trans((string) $charge->status), 'statut8'), $label, -1); - } + if ($charge->refunded == '1') { + $status = img_picto($langs->trans("refunded"), 'statut6'); + } elseif ($charge->paid == '1') { + $status = img_picto($langs->trans((string) $charge->status), 'statut4'); + } else { + $label = $langs->trans("Message").": ".$charge->failure_message."
    "; + $label .= $langs->trans("Network").": ".$charge->outcome->network_status."
    "; + $label .= $langs->trans("Status").": ".$langs->trans((string) $charge->outcome->seller_message); + $status = $form->textwithpicto(img_picto($langs->trans((string) $charge->status), 'statut8'), $label, -1); + } - if (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'card') { - $type = $langs->trans("card"); - } elseif (isset($charge->source->type) && $charge->source->type == 'card') { - $type = $langs->trans("card"); - } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'three_d_secure') { - $type = $langs->trans("card3DS"); - } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'sepa_debit') { - $type = $langs->trans("sepadebit"); - } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'ideal') { - $type = $langs->trans("iDEAL"); - } + if (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'card') { + $type = $langs->trans("card"); + } elseif (isset($charge->source->type) && $charge->source->type == 'card') { + $type = $langs->trans("card"); + } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'three_d_secure') { + $type = $langs->trans("card3DS"); + } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'sepa_debit') { + $type = $langs->trans("sepadebit"); + } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'ideal') { + $type = $langs->trans("iDEAL"); + } - // Why this ? - /*if (! empty($charge->payment_intent)) { - if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage - $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent); - } else { - $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent, array("stripe_account" => $stripeacc)); - } - }*/ + // Why this ? + /*if (!empty($charge->payment_intent)) { + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage + $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent); + } else { + $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent, array("stripe_account" => $stripeacc)); + } + }*/ - // The metadata FULLTAG is defined by the online payment page - $FULLTAG = $charge->metadata->FULLTAG; + // The metadata FULLTAG is defined by the online payment page + $FULLTAG = $charge->metadata->FULLTAG; - // Save into $tmparray all metadata - $tmparray = dolExplodeIntoArray($FULLTAG, '.', '='); - // Load origin object according to metadata - if (!empty($tmparray['CUS']) && $tmparray['CUS'] > 0) { - $societestatic->fetch($tmparray['CUS']); - } elseif (!empty($charge->metadata->dol_thirdparty_id) && $charge->metadata->dol_thirdparty_id > 0) { - $societestatic->fetch($charge->metadata->dol_thirdparty_id); - } else { - $societestatic->id = 0; - } - if (!empty($tmparray['MEM']) && $tmparray['MEM'] > 0) { - $memberstatic->fetch($tmparray['MEM']); - } else { - $memberstatic->id = 0; - } + // Save into $tmparray all metadata + $tmparray = dolExplodeIntoArray($FULLTAG, '.', '='); + // Load origin object according to metadata + if (!empty($tmparray['CUS']) && $tmparray['CUS'] > 0) { + $societestatic->fetch($tmparray['CUS']); + } elseif (!empty($charge->metadata->dol_thirdparty_id) && $charge->metadata->dol_thirdparty_id > 0) { + $societestatic->fetch($charge->metadata->dol_thirdparty_id); + } else { + $societestatic->id = 0; + } + if (!empty($tmparray['MEM']) && $tmparray['MEM'] > 0) { + $memberstatic->fetch($tmparray['MEM']); + } else { + $memberstatic->id = 0; + } - print ''; + print ''; - if (!empty($stripeacc)) { - $connect = $stripeacc.'/'; - } else { - $connect = ''; - } + if (!empty($stripeacc)) { + $connect = $stripeacc.'/'; + } else { + $connect = ''; + } - // Ref - $url = 'https://dashboard.stripe.com/'.$connect.'test/payments/'.$charge->id; - if ($servicestatus) { - $url = 'https://dashboard.stripe.com/'.$connect.'payments/'.$charge->id; - } - print "\n"; + // Ref + $url = 'https://dashboard.stripe.com/'.$connect.'test/payments/'.$charge->id; + if ($servicestatus) { + $url = 'https://dashboard.stripe.com/'.$connect.'payments/'.$charge->id; + } + print "\n"; - // Stripe customer - print "\n"; + // Stripe customer + print "\n"; - // Link - print "\n"; + // Link + print "\n"; - // Origin - print "\n"; + + // Date payment + print '\n"; + // Type + print ''; + // Amount + print '"; + // Status + print '\n"; + + print "\n"; + + $i++; } - print "\n"; - - // Date payment - print '\n"; - // Type - print ''; - // Amount - print '"; - // Status - print '\n"; - - print "\n"; - - $i++; } print '
    '; print $langs->trans('SalesRepresentatives'); print ''; print 'id.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).''; print '
    '; print ''.$langs->trans("STRIPE_TEST_WEBHOOK_KEY").''; if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - print ''; + print ''; print '
    '; } - print ''; + print ''; $out = img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForTestWebhook").' '; $url = dol_buildpath('/public/stripe/ipn.php?test', 3); $out .= ''; @@ -272,22 +279,22 @@ if (empty($conf->stripeconnect->enabled)) { if (empty($conf->stripeconnect->enabled)) { print '
    '; print ''.$langs->trans("STRIPE_LIVE_PUBLISHABLE_KEY").''; - print ''; + print ''; print '
    '; print ''.$langs->trans("STRIPE_LIVE_SECRET_KEY").''; - print ''; + print ''; print '
    '; print ''.$langs->trans("STRIPE_LIVE_WEBHOOK_KEY").''; if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - print ''; + print ''; print '
    '; } - print ''; - $out = img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForLiveWebhook").' '; + print ''; + $out = img_picto('', 'globe', 'class="pictofixedwidth"').' '.$langs->trans("ToOfferALinkForLiveWebhook").' '; $url = dol_buildpath('/public/stripe/ipn.php', 3); $out .= ''; $out .= ajax_autoselect("onlinelivewebhookurl", 0); @@ -341,38 +348,94 @@ print "
    '; print $langs->trans("PublicVendorName").''; -print ''; +print ''; print '   '.$langs->trans("Example").': '.$mysoc->name.''; print '
    '; print $langs->trans("StripeUserAccountForActions").''; -print img_picto('', 'user').$form->select_dolusers($conf->global->STRIPE_USER_ACCOUNT_FOR_ACTIONS, 'STRIPE_USER_ACCOUNT_FOR_ACTIONS', 0); +print img_picto('', 'user', 'class="pictofixedwidth"').$form->select_dolusers(getDolGlobalString('STRIPE_USER_ACCOUNT_FOR_ACTIONS'), 'STRIPE_USER_ACCOUNT_FOR_ACTIONS', 0); print '
    '; print $langs->trans("BankAccount").''; -print img_picto('', 'bank_account').' '; -$form->select_comptes($conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS, 'STRIPE_BANK_ACCOUNT_FOR_PAYMENTS', 0, '', 1); +print img_picto('', 'bank_account', 'class="pictofixedwidth"'); +$form->select_comptes(getDolGlobalString('STRIPE_BANK_ACCOUNT_FOR_PAYMENTS'), 'STRIPE_BANK_ACCOUNT_FOR_PAYMENTS', 0, '', 1); print '
    '; print $langs->trans("BankAccountForBankTransfer").''; - print img_picto('', 'bank_account').' '; - $form->select_comptes($conf->global->STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS, 'STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS', 0, '', 1); + print img_picto('', 'bank_account', 'class="pictofixedwidth"'); + $form->select_comptes(getDolGlobalString('STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS'), 'STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS', 0, '', 1); + print '
    '; + print $langs->trans("STRIPE_CARD_PRESENT").''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('STRIPE_CARD_PRESENT'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("STRIPE_CARD_PRESENT", $arrval, $conf->global->STRIPE_CARD_PRESENT); + } + print '
    '; + print $langs->trans("TERMINAL_LOCATION").''; + $service = 'StripeTest'; + $servicestatus = 0; + if (!empty($conf->global->STRIPE_LIVE) && !GETPOST('forcesandbox', 'alpha')) { + $service = 'StripeLive'; + $servicestatus = 1; + } + global $stripearrayofkeysbyenv; + $site_account = $stripearrayofkeysbyenv[$servicestatus]['secret_key']; + if (!empty($site_account)) { + \Stripe\Stripe::setApiKey($site_account); + } + if (isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { + $service = 'StripeTest'; + $servicestatus = '0'; + dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); + } else { + $service = 'StripeLive'; + $servicestatus = '1'; + } + $stripe = new Stripe($db); + if (!empty($site_account)) { + // If $site_account not defined, then key not set and no way to call API Location + $stripeacc = $stripe->getStripeAccount($service); + if ($stripeacc) { + $locations = \Stripe\Terminal\Location::all('', array("stripe_account" => $stripeacc)); + } else { + $locations = \Stripe\Terminal\Location::all(); + } + } + + $location = array(); + $location[""] = $langs->trans("NotDefined"); + foreach ($locations as $tmplocation) { + $location[$tmplocation->id] = $tmplocation->display_name; + } + print $form->selectarray("STRIPE_LOCATION", $location, getDolGlobalString('STRIPE_LOCATION')); print '
    '; - print $langs->trans("STRIPE_PAYMENT_REQUEST_API").''; + print $langs->trans("STRIPE_PAYMENT_REQUEST_API").' ?? Not used, what is it for ??'; if ($conf->use_javascript_ajax) { print ajax_constantonoff('STRIPE_PAYMENT_REQUEST_API'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("STRIPE_PAYMENT_REQUEST_API", $arrval, $conf->global->STRIPE_PAYMENT_REQUEST_API); + print $form->selectarray("STRIPE_PAYMENT_REQUEST_API", $arrval, getDolGlobalString('STRIPE_PAYMENT_REQUEST_API')); } print '
    '; print $langs->trans("CSSUrlForPaymentForm").''; -print ''; +print ''; print '   '.$langs->trans("Example").': http://mysite/mycss.css'; print '
    '; print $langs->trans("ONLINE_PAYMENT_SENDEMAIL").''; +print img_picto('', 'email', 'class="pictofixedwidth"'); print ''; print '   '.$langs->trans("Example").': myemail@myserver.com, Payment service <myemail2@myserver2.com>'; print '
    '; print $langs->trans("SecurityTokenIsUnique").''; if ($conf->use_javascript_ajax) { - print ajax_constantonoff('PAYMENT_SECURITY_TOKEN_UNIQUE'); + print ajax_constantonoff('PAYMENT_SECURITY_TOKEN_UNIQUE', null, null, 0, 0, 1); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); print $form->selectarray("PAYMENT_SECURITY_TOKEN_UNIQUE", $arrval, $conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE); diff --git a/htdocs/stripe/ajax/ajax.php b/htdocs/stripe/ajax/ajax.php new file mode 100644 index 00000000000..5fa4da88ae7 --- /dev/null +++ b/htdocs/stripe/ajax/ajax.php @@ -0,0 +1,124 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/stripe/ajax/ajax.php + * \brief Ajax action for Stipe ie: Terminal + */ + +if (!defined('NOTOKENRENEWAL')) { + define('NOTOKENRENEWAL', '1'); +} +if (!defined('NOREQUIREMENU')) { + define('NOREQUIREMENU', '1'); +} +if (!defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); +} +if (!defined('NOREQUIREAJAX')) { + define('NOREQUIREAJAX', '1'); +} +if (!defined('NOBROWSERNOTIF')) { + define('NOBROWSERNOTIF', '1'); +} + +// Load Dolibarr environment +require '../../main.inc.php'; // Load $user and permissions +require_once DOL_DOCUMENT_ROOT.'/includes/stripe/stripe-php/init.php'; +require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; + +$action = GETPOST('action', 'aZ09'); +$location = GETPOST('location', 'alphanohtml'); +$stripeacc = GETPOST('stripeacc', 'alphanohtml'); +$servicestatus = GETPOST('servicestatus', 'int'); +$amount = GETPOST('amount', 'int'); + +if (empty($user->rights->takepos->run)) { + accessforbidden(); +} + + +/* + * View + */ + +top_httphead('application/json'); + +if ($action == 'getConnexionToken') { + try { + // Be sure to authenticate the endpoint for creating connection tokens. + // Force to use the correct API key + global $stripearrayofkeysbyenv; + \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$servicestatus]['secret_key']); + // The ConnectionToken's secret lets you connect to any Stripe Terminal reader + // and take payments with your Stripe account. + $array = array(); + if (isset($location) && !empty($location)) $array['location'] = $location; + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage + $connectionToken = \Stripe\Terminal\ConnectionToken::create($array); + } else { + $connectionToken = \Stripe\Terminal\ConnectionToken::create($array, array("stripe_account" => $stripeacc)); + } + echo json_encode(array('secret' => $connectionToken->secret)); + } catch (Error $e) { + http_response_code(500); + echo json_encode(['error' => $e->getMessage()]); + } +} elseif ($action == 'createPaymentIntent') { + try { + $json_str = file_get_contents('php://input'); + $json_obj = json_decode($json_str); + + // For Terminal payments, the 'payment_method_types' parameter must include + // 'card_present' and the 'capture_method' must be set to 'manual' + $object = new Facture($db); + $object->fetch($json_obj->invoiceid); + $object->fetch_thirdparty(); + + $fulltag='INV='.$object->id.'.CUS='.$object->thirdparty->id; + $tag=null; + $fulltag=dol_string_unaccent($fulltag); + + $stripe = new Stripe($db); + $customer = $stripe->customerStripe($object->thirdparty, $stripeacc, $servicestatus, 1); + + $intent = $stripe->getPaymentIntent($json_obj->amount, $object->multicurrency_code, null, 'Stripe payment: '.$fulltag.(is_object($object)?' ref='.$object->ref:''), $object, $customer, $stripeacc, $servicestatus, 1, 'terminal', false, null, 0, 1); + + echo json_encode(array('client_secret' => $intent->client_secret)); + } catch (Error $e) { + http_response_code(500); + echo json_encode(['error' => $e->getMessage()]); + } +} elseif ($action == 'capturePaymentIntent') { + try { + // retrieve JSON from POST body + $json_str = file_get_contents('php://input'); + $json_obj = json_decode($json_str); + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage + $intent = \Stripe\PaymentIntent::retrieve($json_obj->id); + } else { + $intent = \Stripe\PaymentIntent::retrieve($json_obj->id, array("stripe_account" => $stripeacc)); + } + $intent = $intent->capture(); + + echo json_encode($intent); + } catch (Error $e) { + http_response_code(500); + echo json_encode(['error' => $e->getMessage()]); + } +} diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index 2cd61bfe5d0..0aee0c11e30 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2018-2022 Thibault FOUCART * Copyright (C) 2019 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -18,6 +18,7 @@ // Put here all includes required by your class file +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -26,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -67,7 +68,7 @@ $stripe = new Stripe($db); llxHeader('', $langs->trans("StripeChargeList")); -if (!empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { +if (isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { $service = 'StripeTest'; $servicestatus = '0'; dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); @@ -86,38 +87,18 @@ if (!$rowid) { $option = array('limit' => $limit + 1); $num = 0; + $param = ''; + $totalnboflines = ''; + $moreforfilter = ''; + $list = null; if (GETPOSTISSET('starting_after_'.$page)) { $option['starting_after'] = GETPOST('starting_after_'.$page, 'alphanohtml'); } - - try { - if ($stripeacc) { - $list = \Stripe\Charge::all($option, array("stripe_account" => $stripeacc)); - } else { - $list = \Stripe\Charge::all($option); - } - - $num = count($list->data); - - $totalnboflines = ''; - - $param = ''; - //if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); - if ($limit > 0 && $limit != $conf->liste_limit) { - $param .= '&limit='.urlencode($limit); - } - $param .= '&starting_after_'.($page + 1).'='.$list->data[($limit - 1)]->id; - //$param.='&ending_before_'.($page+1).'='.$list->data[($limit-1)]->id; - - $moreforfilter = ''; - } catch (Exception $e) { - print $e->getMessage(); - } - print '
    '; if ($optioncss != '') { print ''; } + print ''; print ''; print ''; @@ -144,147 +125,168 @@ if (!$rowid) { print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "", "", "", '', '', '', 'right '); print "
    '.$e->getMessage().'
    "; - print "".img_picto($langs->trans('ShowInStripe'), 'globe')." ".$charge->id.""; - if ($charge->payment_intent) { - print '
    '.$charge->payment_intent.''; - } - print "
    "; + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." ".$charge->id.""; + if ($charge->payment_intent) { + print '
    '.$charge->payment_intent.''; + } + print "
    "; - if (!empty($conf->stripe->enabled) && !empty($stripeacc)) { - $connect = $stripeacc.'/'; - } - $url = 'https://dashboard.stripe.com/'.$connect.'test/customers/'.$charge->customer; - if ($servicestatus) { - $url = 'https://dashboard.stripe.com/'.$connect.'customers/'.$charge->customer; - } - if (!empty($charge->customer)) { - print ''.img_picto($langs->trans('ShowInStripe'), 'globe').' '.$charge->customer.''; - } - print ""; + if (isModEnabled('stripe') && !empty($stripeacc)) { + $connect = $stripeacc.'/'; + } + $url = 'https://dashboard.stripe.com/'.$connect.'test/customers/'.$charge->customer; + if ($servicestatus) { + $url = 'https://dashboard.stripe.com/'.$connect.'customers/'.$charge->customer; + } + if (!empty($charge->customer)) { + print ''.img_picto($langs->trans('ShowInStripe'), 'globe').' '.$charge->customer.''; + } + print ""; - if ($societestatic->id > 0) { - print $societestatic->getNomUrl(1); - } elseif ($memberstatic->id > 0) { - print $memberstatic->getNomUrl(1); - } - print ""; + if ($societestatic->id > 0) { + print $societestatic->getNomUrl(1); + } elseif ($memberstatic->id > 0) { + print $memberstatic->getNomUrl(1); + } + print ""; - if ($charge->metadata->dol_type == "order" || $charge->metadata->dol_type == "commande") { - $object = new Commande($db); - $object->fetch($charge->metadata->dol_id); - if ($object->id > 0) { - print "".img_picto('', 'object_order')." ".$object->ref.""; + // Origin + print ""; + if ($charge->metadata->dol_type == "order" || $charge->metadata->dol_type == "commande") { + $object = new Commande($db); + $object->fetch($charge->metadata->dol_id); + if ($object->id > 0) { + print "".img_picto('', 'order')." ".$object->ref.""; + } else { + print $FULLTAG; + } + } elseif ($charge->metadata->dol_type == "invoice" || $charge->metadata->dol_type == "facture") { + $object = new Facture($db); + $object->fetch($charge->metadata->dol_id); + if ($object->id > 0) { + print "".img_picto('', 'bill')." ".$object->ref.""; + } else { + print $FULLTAG; + } } else { print $FULLTAG; } - } elseif ($charge->metadata->dol_type == "invoice" || $charge->metadata->dol_type == "facture") { - print $charge->metadata->dol_type.' '.$charge->metadata->dol_id.' - '; - $object = new Facture($db); - $object->fetch($charge->metadata->dol_id); - if ($object->id > 0) { - print "".img_picto('', 'object_invoice')." ".$object->ref.""; - } else { - print $FULLTAG; - } - } else { - print $FULLTAG; + print "'.dol_print_date($charge->created, 'dayhour')."'; + print $type; + print ''.price(($charge->amount - $charge->amount_refunded) / 100, 0, '', 1, - 1, - 1, strtoupper($charge->currency))."'; + print $status; + print "
    '.dol_print_date($charge->created, 'dayhour')."'; - print $type; - print ''.price(($charge->amount - $charge->amount_refunded) / 100, 0, '', 1, - 1, - 1, strtoupper($charge->currency))."'; - print $status; - print "
    '; diff --git a/htdocs/stripe/class/actions_stripe.class.php b/htdocs/stripe/class/actions_stripe.class.php index 0d8b5e03435..8e5cd833a71 100644 --- a/htdocs/stripe/class/actions_stripe.class.php +++ b/htdocs/stripe/class/actions_stripe.class.php @@ -71,7 +71,7 @@ class ActionsStripeconnect { global $db, $conf, $user, $langs, $form; - if (!empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { + if (isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { $service = 'StripeTest'; dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); } else { diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 36e67d2827c..2d6c28ac8be 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -115,7 +115,7 @@ class Stripe extends CommonObject $tokenstring = $obj->tokenstring; $tmparray = json_decode($tokenstring); - $key = $tmparray->stripe_user_id; + $key = empty($tmparray->stripe_user_id) ? '' : $tmparray->stripe_user_id; } else { $tokenstring = ''; } @@ -279,9 +279,9 @@ class Stripe extends CommonObject global $stripearrayofkeysbyenv; \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$status]['secret_key']); if (empty($key)) { // If the Stripe connect account not set, we use common API usage - $stripepaymentmethod = \Stripe\PaymentMethod::retrieve(''.$paymentmethod->id.''); + $stripepaymentmethod = \Stripe\PaymentMethod::retrieve((string) $paymentmethod->id); } else { - $stripepaymentmethod = \Stripe\PaymentMethod::retrieve(''.$paymentmethod->id.'', array("stripe_account" => $key)); + $stripepaymentmethod = \Stripe\PaymentMethod::retrieve((string) $paymentmethod->id, array("stripe_account" => $key)); } } catch (Exception $e) { $this->error = $e->getMessage(); @@ -290,6 +290,34 @@ class Stripe extends CommonObject return $stripepaymentmethod; } + /** + * Get the Stripe reader Object from its ID + * + * @param string $reader Reader ID + * @param string $key ''=Use common API. If not '', it is the Stripe connect account 'acc_....' to use Stripe connect + * @param int $status Status (0=test, 1=live) + * @return \Stripe\Terminal\Reader|null Stripe Reader or null if not found + */ + public function getSelectedReader($reader, $key = '', $status = 0) + { + $selectedreader = null; + + try { + // Force to use the correct API key + global $stripearrayofkeysbyenv; + \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$status]['secret_key']); + if (empty($key)) { // If the Stripe connect account not set, we use common API usage + $selectedreader = \Stripe\Terminal\Reader::retrieve((string) $reader); + } else { + $stripepaymentmethod = \Stripe\Terminal\Reader::retrieve((string) $reader, array("stripe_account" => $key)); + } + } catch (Exception $e) { + $this->error = $e->getMessage(); + } + + return $selectedreader; + } + /** * Get the Stripe payment intent. Create it with confirmnow=false * Warning. If a payment was tried and failed, a payment intent was created. @@ -350,7 +378,7 @@ class Stripe extends CommonObject $paymentintent = null; - if (is_object($object) && !empty($conf->global->STRIPE_REUSE_EXISTING_INTENT_IF_FOUND)) { + if (is_object($object) && getDolGlobalInt('STRIPE_REUSE_EXISTING_INTENT_IF_FOUND') && !getDolGlobalInt('STRIPE_CARD_PRESENT')) { // Warning. If a payment was tried and failed, a payment intent was created. // But if we change something on object to pay (amount or other that does not change the idempotency key), reusing same payment intent is not allowed by Stripe. // Recommended solution is to recreate a new payment intent each time we need one (old one will be automatically closed by Stripe after a delay), Stripe will @@ -358,7 +386,7 @@ class Stripe extends CommonObject // That's why we can comment the part of code to retrieve a payment intent with object id (never mind if we cumulate payment intent with old ones that will not be used) $sql = "SELECT pi.ext_payment_id, pi.entity, pi.fk_facture, pi.sourcetype, pi.ext_payment_site"; - $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pi"; + $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pi"; $sql .= " WHERE pi.fk_facture = ".((int) $object->id); $sql .= " AND pi.sourcetype = '".$this->db->escape($object->element)."'"; $sql .= " AND pi.entity IN (".getEntity('societe').")"; @@ -406,24 +434,29 @@ class Stripe extends CommonObject // list of payment method types $paymentmethodtypes = array("card"); - if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) { + $descriptor = dol_trunc($tag, 10, 'right', 'UTF-8', 1); + if (getDolGlobalInt('STRIPE_SEPA_DIRECT_DEBIT')) { $paymentmethodtypes[] = "sepa_debit"; //&& ($object->thirdparty->isInEEC()) + //$descriptor = preg_replace('/ref=[^:=]+/', '', $descriptor); // Clean ref } - if (!empty($conf->global->STRIPE_KLARNA)) { + if (getDolGlobalInt('STRIPE_KLARNA')) { $paymentmethodtypes[] = "klarna"; } - if (!empty($conf->global->STRIPE_BANCONTACT)) { + if (getDolGlobalInt('STRIPE_BANCONTACT')) { $paymentmethodtypes[] = "bancontact"; } - if (!empty($conf->global->STRIPE_IDEAL)) { + if (getDolGlobalInt('STRIPE_IDEAL')) { $paymentmethodtypes[] = "ideal"; } - if (!empty($conf->global->STRIPE_GIROPAY)) { + if (getDolGlobalInt('STRIPE_GIROPAY')) { $paymentmethodtypes[] = "giropay"; } - if (!empty($conf->global->STRIPE_SOFORT)) { + if (getDolGlobalInt('STRIPE_SOFORT')) { $paymentmethodtypes[] = "sofort"; } + if (getDolGlobalInt('STRIPE_CARD_PRESENT') && $mode == 'terminal') { + $paymentmethodtypes = array("card_present"); + } $dataforintent = array( "confirm" => $confirmnow, // Do not confirm immediatly during creation of intent @@ -432,7 +465,8 @@ class Stripe extends CommonObject "currency" => $currency_code, "payment_method_types" => $paymentmethodtypes, "description" => $description, - "statement_descriptor_suffix" => dol_trunc($tag, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) + "statement_descriptor_suffix" => $descriptor, // For card payment, 22 chars that appears on bank receipt (prefix into stripe setup + this suffix) + "statement_descriptor" => $descriptor, // For SEPA, it will take only statement_descriptor, not statement_descriptor_suffix //"save_payment_method" => true, "setup_future_usage" => "on_session", "metadata" => $metadata @@ -450,18 +484,23 @@ class Stripe extends CommonObject //$dataforintent["setup_future_usage"] = "off_session"; $dataforintent["off_session"] = true; } - if (!empty($conf->global->STRIPE_GIROPAY)) { + if (getDolGlobalInt('STRIPE_GIROPAY')) { unset($dataforintent['setup_future_usage']); } - if (!empty($conf->global->STRIPE_KLARNA)) { + if (getDolGlobalInt('STRIPE_KLARNA')) { unset($dataforintent['setup_future_usage']); } + if (getDolGlobalInt('STRIPE_CARD_PRESENT') && $mode == 'terminal') { + unset($dataforintent['setup_future_usage']); + $dataforintent["capture_method"] = "manual"; + $dataforintent["confirmation_method"] = "manual"; + } if (!is_null($payment_method)) { $dataforintent["payment_method"] = $payment_method; $description .= ' - '.$payment_method; } - if ($conf->entity != $conf->global->STRIPECONNECT_PRINCIPAL && $stripefee > 0) { + if ($conf->entity != getDolGlobalInt('STRIPECONNECT_PRINCIPAL') && $stripefee > 0) { $dataforintent["application_fee_amount"] = $stripefee; } if ($usethirdpartyemailforreceiptemail && is_object($object) && $object->thirdparty->email) { @@ -491,12 +530,12 @@ class Stripe extends CommonObject $paymentintentalreadyexists = 0; // Check that payment intent $paymentintent->id is not already recorded. $sql = "SELECT pi.rowid"; - $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pi"; + $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pi"; $sql .= " WHERE pi.entity IN (".getEntity('societe').")"; $sql .= " AND pi.ext_payment_site = '".$this->db->escape($service)."'"; $sql .= " AND pi.ext_payment_id = '".$this->db->escape($paymentintent->id)."'"; - dol_syslog(get_class($this)."::getPaymentIntent search if payment intent already in prelevement_facture_demande", LOG_DEBUG); + dol_syslog(get_class($this)."::getPaymentIntent search if payment intent already in prelevement_demande", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -513,7 +552,7 @@ class Stripe extends CommonObject // If not, we create it. if (!$paymentintentalreadyexists) { $now = dol_now(); - $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_facture_demande (date_demande, fk_user_demande, ext_payment_id, fk_facture, sourcetype, entity, ext_payment_site, amount)"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_demande (date_demande, fk_user_demande, ext_payment_id, fk_facture, sourcetype, entity, ext_payment_site, amount)"; $sql .= " VALUES ('".$this->db->idate($now)."', ".((int) $user->id).", '".$this->db->escape($paymentintent->id)."', ".((int) $object->id).", '".$this->db->escape($object->element)."', ".((int) $conf->entity).", '".$this->db->escape($service)."', ".((float) $amount).")"; $resql = $this->db->query($sql); if (!$resql) { @@ -553,7 +592,6 @@ class Stripe extends CommonObject } } - /** * Get the Stripe payment intent. Create it with confirmnow=false * Warning. If a payment was tried and failed, a payment intent was created. @@ -658,12 +696,12 @@ class Stripe extends CommonObject $setupintentalreadyexists = 0; // Check that payment intent $setupintent->id is not already recorded. $sql = "SELECT pi.rowid"; - $sql.= " FROM " . MAIN_DB_PREFIX . "prelevement_facture_demande as pi"; + $sql.= " FROM " . MAIN_DB_PREFIX . "prelevement_demande as pi"; $sql.= " WHERE pi.entity IN (".getEntity('societe').")"; $sql.= " AND pi.ext_payment_site = '" . $this->db->escape($service) . "'"; $sql.= " AND pi.ext_payment_id = '".$this->db->escape($setupintent->id)."'"; - dol_syslog(get_class($this) . "::getPaymentIntent search if payment intent already in prelevement_facture_demande", LOG_DEBUG); + dol_syslog(get_class($this) . "::getPaymentIntent search if payment intent already in prelevement_demande", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -679,7 +717,7 @@ class Stripe extends CommonObject if (! $setupintentalreadyexists) { $now=dol_now(); - $sql = "INSERT INTO " . MAIN_DB_PREFIX . "prelevement_facture_demande (date_demande, fk_user_demande, ext_payment_id, fk_facture, sourcetype, entity, ext_payment_site)"; + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "prelevement_demande (date_demande, fk_user_demande, ext_payment_id, fk_facture, sourcetype, entity, ext_payment_site)"; $sql .= " VALUES ('".$this->db->idate($now)."', ".((int) $user->id).", '".$this->db->escape($setupintent->id)."', ".((int) $object->id).", '".$this->db->escape($object->element)."', " . ((int) $conf->entity) . ", '" . $this->db->escape($service) . "', ".((float) $amount).")"; $resql = $this->db->query($sql); if (! $resql) @@ -736,7 +774,7 @@ class Stripe extends CommonObject $sql .= " WHERE sa.rowid = ".((int) $object->id); // We get record from ID, no need for filter on entity $sql .= " AND sa.type = 'card'"; - dol_syslog(get_class($this)."::fetch search stripe card id for paymentmode id=".$object->id.", stripeacc=".$stripeacc.", status=".$status.", createifnotlinkedtostripe=".$createifnotlinkedtostripe, LOG_DEBUG); + dol_syslog(get_class($this)."::cardStripe search stripe card id for paymentmode id=".$object->id.", stripeacc=".$stripeacc.", status=".$status.", createifnotlinkedtostripe=".$createifnotlinkedtostripe, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -852,6 +890,127 @@ class Stripe extends CommonObject return $card; } + + /** + * Get the Stripe SEPA of a company payment mode + * + * @param \Stripe\StripeCustomer $cu Object stripe customer. + * @param CompanyPaymentMode $object Object companypaymentmode to check, or create on stripe (create on stripe also update the societe_rib table for current entity) + * @param string $stripeacc ''=Use common API. If not '', it is the Stripe connect account 'acc_....' to use Stripe connect + * @param int $status Status (0=test, 1=live) + * @param int $createifnotlinkedtostripe 1=Create the stripe sepa and the link if the sepa is not yet linked to a stripe sepa. Deprecated with new Stripe API and SCA. + * @return \Stripe\PaymentMethod|null Stripe SEPA or null if not found + */ + public function sepaStripe($cu, CompanyPaymentMode $object, $stripeacc = '', $status = 0, $createifnotlinkedtostripe = 0) + { + global $conf, $user, $langs; + $sepa = null; + + $sql = "SELECT sa.stripe_card_ref, sa.proprio, sa.iban_prefix"; // stripe_card_ref is src_ for sepa + $sql .= " FROM ".MAIN_DB_PREFIX."societe_rib as sa"; + $sql .= " WHERE sa.rowid = ".((int) $object->id); // We get record from ID, no need for filter on entity + $sql .= " AND sa.type = 'ban'"; //type ban to get normal bank account of customer (prelevement) + + $soc = new Societe($this->db); + $soc->fetch($object->fk_soc); + + dol_syslog(get_class($this)."::sepaStripe search stripe ban id for paymentmode id=".$object->id.", stripeacc=".$stripeacc.", status=".$status.", createifnotlinkedtostripe=".$createifnotlinkedtostripe, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + if ($num) { + $obj = $this->db->fetch_object($resql); + $cardref = $obj->stripe_card_ref; + dol_syslog(get_class($this)."::sepaStripe cardref=".$cardref); + if ($cardref) { + try { + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage + if (!preg_match('/^pm_/', $cardref) && !empty($cu->sources)) { + $sepa = $cu->sources->retrieve($cardref); + } else { + $sepa = \Stripe\PaymentMethod::retrieve($cardref); + } + } else { + if (!preg_match('/^pm_/', $cardref) && !empty($cu->sources)) { + //$sepa = $cu->sources->retrieve($cardref, array("stripe_account" => $stripeacc)); // this API fails when array stripe_account is provided + $sepa = $cu->sources->retrieve($cardref); + } else { + //$sepa = \Stripe\PaymentMethod::retrieve($cardref, array("stripe_account" => $stripeacc)); // Don't know if this works + $sepa = \Stripe\PaymentMethod::retrieve($cardref); + } + } + } catch (Exception $e) { + $this->error = $e->getMessage(); + dol_syslog($this->error, LOG_WARNING); + } + } elseif ($createifnotlinkedtostripe) { + $iban = $obj->iban_prefix; //prefix ? + $ipaddress = getUserRemoteIP(); + + $dataforcard = array( + 'type'=>'sepa_debit', + "sepa_debit" => array('iban' => $iban), + 'currency' => 'eur', + 'usage' => 'reusable', + 'owner' => array( + 'name' => $soc->name, + ), + "metadata" => array('dol_id'=>$object->id, 'dol_version'=>DOL_VERSION, 'dol_entity'=>$conf->entity, 'ipaddress'=>$ipaddress) + ); + + //$a = \Stripe\Stripe::getApiKey(); + //var_dump($a);var_dump($stripeacc);exit; + try { + dol_syslog("Try to create sepa_debit 0"); + + $service = 'StripeTest'; + $servicestatus = 0; + if (!empty($conf->global->STRIPE_LIVE) && !GETPOST('forcesandbox', 'alpha')) { + $service = 'StripeLive'; + $servicestatus = 1; + } + // Force to use the correct API key + global $stripearrayofkeysbyenv; + $stripeacc = $stripearrayofkeysbyenv[$servicestatus]['secret_key']; + + dol_syslog("Try to create sepa_debit with data = ".json_encode($dataforcard)); + $s = new \Stripe\StripeClient($stripeacc); + $sepa = $s->sources->create($dataforcard); + if (!$sepa) { + $this->error = 'Creation of sepa_debit on Stripe has failed'; + } else { + // association du client avec cette source de paimeent + $cs = $cu->createSource($cu->id, array('source' => $sepa->id)); + if (!$cs) { + $this->error = 'Link SEPA <-> Customer failed'; + } else { + dol_syslog("Try to create sepa_debit 3"); + // print json_encode($sepa); + + $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib"; + $sql .= " SET stripe_card_ref = '".$this->db->escape($sepa->id)."', card_type = 'sepa_debit',"; + $sql .= " stripe_account= '" . $this->db->escape($cu->id . "@" . $stripeacc) . "'"; + $sql .= " WHERE rowid = ".((int) $object->id); + $sql .= " AND type = 'ban'"; + $resql = $this->db->query($sql); + if (!$resql) { + $this->error = $this->db->lasterror(); + } + } + } + } catch (Exception $e) { + $this->error = $e->getMessage(); + dol_syslog($this->error, LOG_WARNING); + } + } + } + } else { + dol_print_error($this->db); + } + + return $sepa; + } + /** * Create charge. * This is called by page htdocs/stripe/payment.php and may be deprecated. @@ -928,13 +1087,13 @@ class Stripe extends CommonObject $ipaddress = getUserRemoteIP(); $metadata = array( - "dol_id" => "".$item."", - "dol_type" => "".$origin."", - "dol_thirdparty_id" => "".$societe->id."", + "dol_id" => (string) $item, + "dol_type" => (string) $origin, + "dol_thirdparty_id" => (string) $societe->id, 'dol_thirdparty_name' => $societe->name, - 'dol_version'=>DOL_VERSION, - 'dol_entity'=>$conf->entity, - 'ipaddress'=>$ipaddress + 'dol_version' => DOL_VERSION, + 'dol_entity' => $conf->entity, + 'ipaddress' => $ipaddress ); $return = new Stripe($this->db); try { @@ -1074,7 +1233,7 @@ class Stripe extends CommonObject $return->message = $charge->source->card->brand." ....".$charge->source->card->last4; } elseif ($charge->source->type == 'three_d_secure') { $stripe = new Stripe($this->db); - $src = \Stripe\Source::retrieve("".$charge->source->three_d_secure->card."", array( + $src = \Stripe\Source::retrieve("".$charge->source->three_d_secure->card, array( "stripe_account" => $stripe->getStripeAccount($service) )); $return->message = $src->card->brand." ....".$src->card->last4; diff --git a/htdocs/stripe/payout.php b/htdocs/stripe/payout.php index 8631b4ecd5f..36c798c8571 100644 --- a/htdocs/stripe/payout.php +++ b/htdocs/stripe/payout.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2018-2023 Thibault FOUCART * Copyright (C) 2019 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -18,6 +18,7 @@ // Put here all includes required by your class file +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -26,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -51,6 +52,10 @@ if (empty($page) || $page == -1) { $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; +$optioncss = GETPOST('optioncss', 'alpha'); +$param = ""; +$num = 0; +$totalnboflines = 0; $result = restrictedArea($user, 'banque'); @@ -60,14 +65,12 @@ $result = restrictedArea($user, 'banque'); */ $form = new Form($db); -$societestatic = new Societe($db); -$memberstatic = new Adherent($db); $acc = new Account($db); $stripe = new Stripe($db); llxHeader('', $langs->trans("StripePayoutList")); -if (!empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { +if (isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { $service = 'StripeTest'; $servicestatus = '0'; dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); @@ -95,12 +98,12 @@ if (!$rowid) { print ''; $title = $langs->trans("StripePayoutList"); - $title .= ($stripeaccount ? ' (Stripe connection with Stripe OAuth Connect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'); + $title .= ($stripeacc ? ' (Stripe connection with Stripe OAuth Connect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'title_accountancy.png', 0, '', '', $limit); print '
    '; - print ''."\n"; + print '
    '."\n"; print ''; print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "", "", "", "", $sortfield, $sortorder); @@ -124,47 +127,12 @@ if (!$rowid) { } foreach ($payout->data as $payout) { - //$charge = $payout; - //var_dump($payout); - - // The metadata FULLTAG is defined by the online payment page - /*$FULLTAG=$charge->metadata->FULLTAG; - - // Save into $tmparray all metadata - $tmparray = dolExplodeIntoArray($FULLTAG,'.','='); - // Load origin object according to metadata - if (! empty($tmparray['CUS'])) - { - $societestatic->fetch($tmparray['CUS']); - } - else - { - $societestatic->id = 0; - } - if (! empty($tmparray['MEM'])) - { - $memberstatic->fetch($tmparray['MEM']); - } - else - { - $memberstatic->id = 0; - }*/ - - $societestatic->fetch($charge->metadata->idcustomer); - $societestatic->id = $charge->metadata->idcustomer; - $societestatic->lastname = $obj->lastname; - $societestatic->firstname = $obj->firstname; - $societestatic->admin = $obj->admin; - $societestatic->login = $obj->login; - $societestatic->email = $obj->email; - $societestatic->socid = $obj->fk_soc; - print ''; // Ref if (!empty($stripeacc)) { $connect = $stripeacc.'/'; - } + } else $connect = null; $url = 'https://dashboard.stripe.com/'.$connect.'test/payouts/'.$payout->id; if ($servicestatus) { @@ -173,32 +141,6 @@ if (!$rowid) { print "\n"; - - // Stripe customer - //print "\n"; - // Link - /*print "\n";*/ - // Origine - //print "\n"; // Date payment print '\n"; // Date payment @@ -210,15 +152,15 @@ if (!$rowid) { // Status print "'; print "\n"; diff --git a/htdocs/stripe/transaction.php b/htdocs/stripe/transaction.php index 92092ca2ebb..390c989d207 100644 --- a/htdocs/stripe/transaction.php +++ b/htdocs/stripe/transaction.php @@ -18,6 +18,7 @@ // Put here all includes required by your class file +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -26,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -52,7 +53,9 @@ $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; $optioncss = GETPOST('optioncss', 'alpha'); - +$param = ""; +$num = 0; +$totalnboflines = 0; $result = restrictedArea($user, 'banque'); @@ -68,7 +71,7 @@ $stripe = new Stripe($db); llxHeader('', $langs->trans("StripeTransactionList")); -if (!empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { +if (isModEnabled('stripe') && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))) { $service = 'StripeTest'; $servicestatus = '0'; dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning'); @@ -95,12 +98,12 @@ if (!$rowid) { print ''; $title = $langs->trans("StripeTransactionList"); - $title .= ($stripeaccount ? ' (Stripe connection with Stripe OAuth Connect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'); + $title .= (!empty($stripeacc) ? ' (Stripe connection with Stripe OAuth Connect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'title_accountancy.png', 0, '', '', $limit); print '
    '; - print '
    ".img_picto($langs->trans('ShowInStripe'), 'globe')." ".$payout->id."".$charge->customer.""; - if ($societestatic->id > 0) - { - print $societestatic->getNomUrl(1); - } - if ($memberstatic->id > 0) - { - print $memberstatic->getNomUrl(1); - } - print ""; - ////if ($charge->metadata->dol_type=="order"){ - // $object = new Commande($db); - // $object->fetch($charge->metadata->dol_id); - // print "".img_picto('', 'object_order')." ".$object->ref.""; - //} elseif ($charge->metadata->dol_type=="invoice"){ - // $object = new Facture($db); - // $object->fetch($charge->metadata->dol_id); - // print "".img_picto('', 'object_invoice')." ".$object->ref.""; - //} - //print "'.dol_print_date($payout->created, 'dayhour').""; if ($payout->status == 'paid') { - print img_picto($langs->trans("".$payout->status.""), 'statut4'); + print img_picto($langs->trans($payout->status), 'statut4'); } elseif ($payout->status == 'pending') { - print img_picto($langs->trans("".$payout->status.""), 'statut7'); + print img_picto($langs->trans($payout->status), 'statut7'); } elseif ($payout->status == 'in_transit') { - print img_picto($langs->trans("".$payout->status.""), 'statut7'); + print img_picto($langs->trans($payout->status), 'statut7'); } elseif ($payout->status == 'failed') { - print img_picto($langs->trans("".$payout->status.""), 'statut7'); + print img_picto($langs->trans($payout->status), 'statut7'); } elseif ($payout->status == 'canceled') { - print img_picto($langs->trans("".$payout->status.""), 'statut8'); + print img_picto($langs->trans($payout->status), 'statut8'); } print '
    '."\n"; + print '
    '."\n"; print ''; print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "", "", "", "", $sortfield, $sortorder); @@ -113,6 +116,7 @@ if (!$rowid) { print_liste_field_titre("Fee", $_SERVER["PHP_SELF"], "", "", "", '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "", "", "", '', '', '', 'right '); print "\n"; + $connect = ""; try { if ($stripeacc) { @@ -131,7 +135,7 @@ if (!$rowid) { // Save into $tmparray all metadata $tmparray = dolExplodeIntoArray($FULLTAG,'.','='); // Load origin object according to metadata - if (! empty($tmparray['CUS'])) + if (!empty($tmparray['CUS'])) { $societestatic->fetch($tmparray['CUS']); } @@ -139,14 +143,14 @@ if (!$rowid) { { $societestatic->id = 0; } - if (! empty($tmparray['MEM'])) + if (!empty($tmparray['MEM'])) { $memberstatic->fetch($tmparray['MEM']); } else { $memberstatic->id = 0; - }*/ + } $societestatic->fetch($charge->metadata->idcustomer); $societestatic->id = $charge->metadata->idcustomer; @@ -155,7 +159,7 @@ if (!$rowid) { $societestatic->admin = $obj->admin; $societestatic->login = $obj->login; $societestatic->email = $obj->email; - $societestatic->societe_id = $obj->fk_soc; + $societestatic->societe_id = $obj->fk_soc;*/ print ''; @@ -216,11 +220,11 @@ if (!$rowid) { // Status print "'; print "\n"; diff --git a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php index e77a72ea6c4..4d69ad5d8ae 100644 --- a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php +++ b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php @@ -18,6 +18,7 @@ * along with this program. If not, see . */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -75,13 +76,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print "
    "; diff --git a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php index 304cbbd1e3a..be89df64755 100644 --- a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php +++ b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php @@ -21,6 +21,7 @@ * along with this program. If not, see . */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -81,13 +82,6 @@ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; print dol_get_fiche_end(); -// Buttons -if ($action != 'create' && $action != 'edit') { - print '
    '; - print ''.$langs->trans("NewAttribute").''; - print "
    "; -} - // Creation of an optional field if ($action == 'create') { print '
    '; diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 5f11b6e3c02..4b898a75645 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -34,6 +34,7 @@ * \brief Card supplier proposal */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -44,14 +45,14 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/supplier_proposal/modules_supplier require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } // Load translation files required by the page $langs->loadLangs(array('companies', 'supplier_proposal', 'compta', 'bills', 'propal', 'orders', 'products', 'deliveries', 'sendings')); -if (!empty($conf->margin->enabled)) { +if (isModEnabled('margin')) { $langs->load('margins'); } @@ -61,13 +62,13 @@ $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $socid = GETPOST('socid', 'int'); $action = GETPOST('action', 'aZ09'); -$cancel = GETPOST('cancel'); +$cancel = GETPOST('cancel', 'alpha'); $origin = GETPOST('origin', 'alpha'); $originid = GETPOST('originid', 'int'); $confirm = GETPOST('confirm', 'alpha'); -$projectid = GETPOST('projectid', 'int'); $lineid = GETPOST('lineid', 'int'); $contactid = GETPOST('contactid', 'int'); +$projectid = GETPOST('projectid', 'int'); $rank = (GETPOST('rank', 'int') > 0) ? GETPOST('rank', 'int') : -1; // PDF @@ -78,12 +79,6 @@ $hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($con // Nombre de ligne pour choix de produit/service predefinis $NBLINES = 4; -// Security check -if (!empty($user->socid)) { - $socid = $user->socid; -} -$result = restrictedArea($user, 'supplier_proposal', $id); - // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('supplier_proposalcard', 'globalcard')); @@ -99,8 +94,9 @@ if ($id > 0 || !empty($ref)) { if ($ret > 0) { $ret = $object->fetch_thirdparty(); } - if ($ret < 0) { - dol_print_error('', $object->error); + if ($ret <= 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $action = ''; } } @@ -123,6 +119,12 @@ $permissiondellink = $usercancreate; // Used by the include of actions_dellink.i $permissiontoedit = $usercancreate; // Used by the include of actions_lineupdown.inc.php $permissiontoadd = $usercancreate; +// Security check +if (!empty($user->socid)) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'supplier_proposal', $object->id); + /* * Actions @@ -165,7 +167,7 @@ if (empty($reshook)) { include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; // Must be include, not include_once // Action clone object - if ($action == 'confirm_clone' && $confirm == 'yes') { + if ($action == 'confirm_clone' && $confirm == 'yes' && $usercancreate) { if (1 == 0 && !GETPOST('clone_content') && !GETPOST('clone_receivers')) { setEventMessages($langs->trans("NoCloneOptionsSpecified"), null, 'errors'); } else { @@ -194,19 +196,25 @@ if (empty($reshook)) { // Remove line $result = $object->deleteline($lineid); // reorder lines - if ($result) { + if ($result > 0) { $object->line_order(true); + } else { + $langs->load("errors"); + setEventMessages($object->error, $object->errors, 'errors'); } if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); } $ret = $object->fetch($id); // Reload to get new records + if ($ret > 0) { + $object->fetch_thirdparty(); + } $object->generateDocument($object->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref); } @@ -217,25 +225,25 @@ if (empty($reshook)) { $result = $object->valid($user); if ($result >= 0) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { - $newlang = GETPOST('lang_id', 'aZ09'); - } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { - $newlang = $object->thirdparty->default_lang; - } - if (!empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model = $object->model_pdf; - $ret = $object->fetch($id); // Reload to get new records - - $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + $outputlangs = $langs; + $newlang = ''; + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + $newlang = GETPOST('lang_id', 'aZ09'); } + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { + $newlang = $object->thirdparty->default_lang; + } + if (!empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model = $object->model_pdf; + $ret = $object->fetch($id); // Reload to get new records + if ($ret > 0) { + $object->fetch_thirdparty(); + } + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } else { $langs->load("errors"); @@ -307,7 +315,7 @@ if (empty($reshook)) { $object->origin_id = GETPOST('originid'); // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); } @@ -321,6 +329,7 @@ if (empty($reshook)) { if (!$error) { if ($origin && $originid) { + // Parse element/subelement (ex: project_task) $element = $subelement = $origin; if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) { $element = $regs[1]; @@ -335,6 +344,15 @@ if (empty($reshook)) { $element = 'comm/propal'; $subelement = 'propal'; } + if ($element == 'contract') { + $element = $subelement = 'contrat'; + } + if ($element == 'inter') { + $element = $subelement = 'ficheinter'; + } + if ($element == 'shipping') { + $element = $subelement = 'expedition'; + } $object->origin = $origin; $object->origin_id = $originid; @@ -448,10 +466,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -526,12 +544,15 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); } $ret = $object->fetch($id); // Reload to get new records + if ($ret > 0) { + $object->fetch_thirdparty(); + } $object->generateDocument($object->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref); } } elseif ($action == "setabsolutediscount" && $usercancreate) { @@ -546,7 +567,16 @@ if (empty($reshook)) { } // Add a product line - if ($action == 'addline' && $usercancreate) { + if ($action == 'addline' && GETPOST('submitforalllines', 'aZ09') && GETPOST('vatforalllines', 'alpha') && $usercancreate) { + // Define vat_rate + $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); + $vat_rate = str_replace('*', '', $vat_rate); + $localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc); + $localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc); + foreach ($object->lines as $line) { + $result = $object->updateline($line->id, $line->subprice, $line->qty, $line->remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, $line->desc, 'HT', $line->info_bits, $line->special_code, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->product_type, $line->array_options, $line->fk_unit, $line->multicurrency_subprice); + } + } elseif ($action == 'addline' && $usercancreate) { $langs->load('errors'); $error = 0; @@ -558,11 +588,13 @@ if (empty($reshook)) { $ref_supplier = GETPOST('fourn_ref', 'alpha'); - $prod_entry_mode = GETPOST('prod_entry_mode'); - if ($prod_entry_mode == 'free') { + $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); + if ($prod_entry_mode == 'free') { $idprod = 0; + $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); + $tva_tx = ''; } $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); // Can be '1.2' or '1.2 (CODE)' @@ -571,7 +603,8 @@ if (empty($reshook)) { $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2); $price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2); $price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2); - $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); + + $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS', 2); $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha'), '', 2) : 0); if (empty($remise_percent)) { @@ -649,7 +682,7 @@ if (empty($reshook)) { $label = $productsupplier->label; // Define output language - if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $outputlangs = $langs; $newlang = ''; if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { @@ -686,6 +719,7 @@ if (empty($reshook)) { $ref_supplier = $productsupplier->ref_supplier; // Get vat rate + $tva_npr = 0; if (!GETPOSTISSET('tva_tx')) { // If vat rate not provided from the form (the form has the priority) $tva_tx = get_default_tva($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice', 'alpha')); $tva_npr = get_default_npr($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice', 'alpha')); @@ -841,10 +875,10 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -853,6 +887,9 @@ if (empty($reshook)) { } $model = $object->model_pdf; $ret = $object->fetch($id); // Reload to get new records + if ($ret > 0) { + $object->fetch_thirdparty(); + } $result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); if ($result < 0) { @@ -906,7 +943,7 @@ if (empty($reshook)) { } } } elseif ($action == 'updateline' && $usercancreate && GETPOST('save') == $langs->trans("Save")) { - // Mise a jour d'une ligne dans la demande de prix + // Update a line within proposal $vat_rate = (GETPOST('tva_tx') ?GETPOST('tva_tx') : 0); // Define info_bits @@ -935,7 +972,7 @@ if (empty($reshook)) { } $ttc = price2num(GETPOST('price_ttc'), '', 2); - $ht = $ttc / (1 + ($vatratecleaned / 100)); + $ht = (float) $ttc / (1 + ((float) $vatratecleaned / 100)); $price_base_type = 'HT'; } @@ -1029,7 +1066,7 @@ if (empty($reshook)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $object->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -1122,7 +1159,10 @@ if (empty($reshook)) { /* * View */ -$title = $langs->trans('CommRequest')." - ".$langs->trans('Card'); +$title = $object->ref." - ".$langs->trans('Card'); +if ($action == 'create') { + $title = $langs->trans("SupplierProposalNew"); +} $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; llxHeader('', $title, $help_url); @@ -1131,7 +1171,7 @@ $formother = new FormOther($db); $formfile = new FormFile($db); $formmargin = new FormMargin($db); $companystatic = new Societe($db); -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { $formproject = new FormProjets($db); } @@ -1141,7 +1181,7 @@ $now = dol_now(); if ($action == 'create') { $currency_code = $conf->currency; - print load_fiche_titre($langs->trans("NewAskPrice"), '', 'supplier_proposal'); + print load_fiche_titre($langs->trans("SupplierProposalNew"), '', 'supplier_proposal'); $soc = new Societe($db); if ($socid > 0) { @@ -1187,7 +1227,7 @@ if ($action == 'create') { $objectsrc->fetch_optionals(); $object->array_options = $objectsrc->array_options; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (!empty($objectsrc->multicurrency_code)) { $currency_code = $objectsrc->multicurrency_code; } @@ -1198,7 +1238,7 @@ if ($action == 'create') { } else { $cond_reglement_id = $soc->cond_reglement_supplier_id; $mode_reglement_id = $soc->mode_reglement_supplier_id; - if (!empty($conf->multicurrency->enabled) && !empty($soc->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($soc->multicurrency_code)) { $currency_code = $soc->multicurrency_code; } } @@ -1264,7 +1304,7 @@ if ($action == 'create') { // Terms of payment print '
    '; // Mode of payment @@ -1273,16 +1313,17 @@ if ($action == 'create') { print ''; // Bank Account - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && !empty($conf->banque->enabled)) { + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && isModEnabled("banque")) { print ''; } // Shipping Method - if (!empty($conf->expedition->enabled)) { + if (isModEnabled("expedition")) { print ''; } @@ -1290,7 +1331,7 @@ if ($action == 'create') { print ''; print ''; print '"; // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $formproject = new FormProjets($db); @@ -1331,7 +1372,7 @@ if ($action == 'create') { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print '"; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print '"; print '"; @@ -1389,7 +1430,7 @@ if ($action == 'create') { /* - * Combobox pour la fonction de copie + * Combobox for copy function */ if (empty($conf->global->SUPPLIER_PROPOSAL_CLONE_ON_CREATE_PAGE)) { @@ -1411,7 +1452,7 @@ if ($action == 'create') { $sql .= " FROM ".MAIN_DB_PREFIX."supplier_proposal p"; $sql .= ", ".MAIN_DB_PREFIX."societe s"; $sql .= " WHERE s.rowid = p.fk_soc"; - $sql .= " AND p.entity = ".$conf->entity; + $sql .= " AND p.entityy IN (".getEntity('supplier_proposal').")"; $sql .= " AND p.fk_statut <> ".SupplierProposal::STATUS_DRAFT; $sql .= " ORDER BY Id"; @@ -1421,8 +1462,8 @@ if ($action == 'create') { $i = 0; while ($i < $num) { $row = $db->fetch_row($resql); - $askPriceSupplierRefAndSocName = $row [1]." - ".$row [2]; - $liste_ask [$row [0]] = $askPriceSupplierRefAndSocName; + $askPriceSupplierRefAndSocName = $row[1]." - ".$row[2]; + $liste_ask[$row[0]] = $askPriceSupplierRefAndSocName; $i++; } print $form->selectarray("copie_supplier_proposal", $liste_ask, 0); @@ -1516,7 +1557,7 @@ if ($action == 'create') { } $text = $langs->trans('ConfirmValidateAsk', $numref); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
    '; @@ -1550,39 +1591,28 @@ if ($action == 'create') { //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreateorder, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $usercancreateorder, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'supplier'); + $morehtmlref .= $object->thirdparty->getNomUrl(1, 'supplier'); if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) { $morehtmlref .= ' ('.$langs->trans("OtherProposals").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; + $morehtmlref .= '
    '; if ($usercancreate) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects((empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } @@ -1596,10 +1626,10 @@ if ($action == 'create') { print '
    '; print '
    '; - print '
    "; if ($txn->status == 'available') { - print img_picto($langs->trans("".$txn->status.""), 'statut4'); + print img_picto($langs->trans($txn->status), 'statut4'); } elseif ($txn->status == 'pending') { - print img_picto($langs->trans("".$txn->status.""), 'statut7'); + print img_picto($langs->trans($txn->status), 'statut7'); } elseif ($txn->status == 'failed') { - print img_picto($langs->trans("".$txn->status.""), 'statut8'); + print img_picto($langs->trans($txn->status), 'statut8'); } print '
    '.$langs->trans('PaymentConditionsShort').''; - $form->select_conditions_paiements(GETPOST('cond_reglement_id') > 0 ? GETPOST('cond_reglement_id') : $cond_reglement_id, 'cond_reglement_id', -1, 1); + print $form->getSelectConditionsPaiements(GETPOST('cond_reglement_id') > 0 ? GETPOST('cond_reglement_id') : $cond_reglement_id, 'cond_reglement_id', -1, 1); print '
    '.$langs->trans('BankAccount').''; $form->select_comptes(GETPOST('fk_account') > 0 ? GETPOST('fk_account', 'int') : $fk_account, 'fk_account', 0, '', 1); print '
    '.$langs->trans('SendingMethod').''; - print $form->selectShippingMethod(GETPOST('shipping_method_id') > 0 ? GETPOST('shipping_method_id', 'int') : $shipping_method_id, 'shipping_method_id', '', 1); + print img_picto('', 'object_dollyrevert', 'class="pictofixedwidth"'); + $form->selectShippingMethod(GETPOST('shipping_method_id') > 0 ? GETPOST('shipping_method_id', 'int') : "", 'shipping_method_id', '', 1); print '
    '.$langs->trans("DeliveryDate").''; $datedelivery = dol_mktime(0, 0, 0, GETPOST('liv_month'), GETPOST('liv_day'), GETPOST('liv_year')); - if ($conf->global->DATE_LIVRAISON_WEEK_DELAY != "") { + if (!empty($conf->global->DATE_LIVRAISON_WEEK_DELAY)) { $tmpdte = time() + ((7 * $conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60); $syear = date("Y", $tmpdte); $smonth = date("m", $tmpdte); @@ -1307,12 +1348,12 @@ if ($action == 'create') { print ''.$langs->trans("DefaultModel").''; $list = ModelePDFSupplierProposal::liste_modeles($db); - $preselected = ($conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_DEFAULT ? $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_DEFAULT : $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF); + $preselected = (!empty($conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_DEFAULT) ? $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_DEFAULT : $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF); print $form->selectarray('model', $list, $preselected, 0, 0, 0, '', 0, 0, 0, '', '', 1); print "
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; @@ -1355,7 +1396,7 @@ if ($action == 'create') { // Calcul contrat->price (HT), contrat->total (TTC), contrat->tva $objectsrc->remise_absolue = $remise_absolue; $objectsrc->remise_percent = $remise_percent; - $objectsrc->update_price(1, - 1, 1); + $objectsrc->update_price(1, 'auto', 1); } print "\n"; @@ -1378,7 +1419,7 @@ if ($action == 'create') { } print '
    '.$langs->trans('AmountTTC').''.price($objectsrc->total_ttc)."
    '.$langs->trans('MulticurrencyAmountHT').''.price($objectsrc->multicurrency_total_ht).'
    '.$langs->trans('MulticurrencyAmountVAT').''.price($objectsrc->multicurrency_total_tva)."
    '.$langs->trans('MulticurrencyAmountTTC').''.price($objectsrc->multicurrency_total_ttc)."
    '; + print '
    '; // Relative and absolute discounts - if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) { $filterabsolutediscount = "fk_invoice_supplier_source IS NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice $filtercreditnote = "fk_invoice_supplier_source IS NOT NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice } else { @@ -1682,7 +1712,7 @@ if ($action == 'create') { print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print ''; }*/ - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && !empty($conf->banque->enabled)) { + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && isModEnabled("banque")) { // Bank Account print ''; + print ''; } print '
    '; @@ -1744,7 +1774,7 @@ if ($action == 'create') { print '
    '; print ''; // Type of container @@ -4381,7 +4674,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = // Categories - Tags print ''; - $param = '?action=replacesiteconfirm'; + $param = '?mode=replacesite'; $param .= '&websiteid='.$website->id; $param .= '&optioncontent='.GETPOST('optioncontent', 'aZ09'); $param .= '&optionmeta='.GETPOST('optionmeta', 'aZ09'); @@ -4444,7 +4737,8 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = } print ''.img_picto($langs->trans("EditHTMLSource"), 'edit').''; - print ''.ajax_object_onoff($answerrecord, 'status', 'status', 'Enabled', 'Disabled', array(), 'valignmiddle'); + print ''; + print ajax_object_onoff($answerrecord, 'status', 'status', 'Enabled', 'Disabled', array(), 'valignmiddle'); print ''; @@ -4483,7 +4777,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = } print ''; - $param = '?action=replacesiteconfirm'; + $param = '?mode=replacesite'; $param .= '&websiteid='.$website->id; $param .= '&optioncontent='.GETPOST('optioncontent', 'aZ09'); $param .= '&optionmeta='.GETPOST('optionmeta', 'aZ09'); @@ -4582,7 +4876,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = print ''; } -if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone') { +if ((empty($action) || $action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone') && !in_array($mode, array('replacesite'))) { if ($pageid > 0 && $atleastonepage) { // $filejs // $filecss @@ -4678,7 +4972,7 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa try { $res = include $filephp; if (empty($res)) { - print "ERROR: Failed to include file '".$filephp."'. Try to edit and save page."; + print "ERROR: Failed to include file '".$filephp."'. Try to edit and re-save page ith this ID."; } } catch (Exception $e) { print $e->getMessage(); @@ -4712,7 +5006,7 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa print $out; /*file_put_contents($filetpl, $out); - if (! empty($conf->global->MAIN_UMASK)) + if (!empty($conf->global->MAIN_UMASK)) @chmod($filetpl, octdec($conf->global->MAIN_UMASK)); // Output file on browser diff --git a/htdocs/website/websiteaccount_card.php b/htdocs/website/websiteaccount_card.php index 118627f19ea..a9fabffba3c 100644 --- a/htdocs/website/websiteaccount_card.php +++ b/htdocs/website/websiteaccount_card.php @@ -32,9 +32,9 @@ require_once DOL_DOCUMENT_ROOT.'/website/lib/websiteaccount.lib.php'; $langs->loadLangs(array("website", "other")); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -43,7 +43,7 @@ $backtopage = GETPOST('backtopage', 'alpha'); $object = new SocieteAccount($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->website->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('websiteaccountcard')); // Note that conf->hooks_modules contains array +$hookmanager->initHooks(array('websiteaccountcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -63,18 +63,22 @@ if (empty($action) && empty($id) && empty($ref)) { $action = 'view'; } +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. + // Security check - Protection if external user //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //$result = restrictedArea($user, 'website', $id); +if (empty($user->rights->websiteaccount->read)) { + accessforbidden('NotAllowed'); +} -$permissionnote = $user->rights->websiteaccount->write; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->websiteaccount->write; // Used by the include of actions_dellink.inc.php -$permissiontoadd = $user->rights->websiteaccount->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php - -// Load object -include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. - +// Permissions +$permissionnote = $user->rights->websiteaccount->write; // Used by the include of actions_setnotes.inc.php +$permissiondellink = $user->rights->websiteaccount->write; // Used by the include of actions_dellink.inc.php +$permissiontoadd = $user->rights->websiteaccount->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +$permissiontodelete = $user->rights->websiteaccount->delete; /* @@ -222,7 +226,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -244,7 +248,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref.=''; @@ -319,8 +323,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } */ - if ($user->rights->website->delete) { - print ''."\n"; + if ($permissiontodelete) { + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } } print ''."\n"; diff --git a/htdocs/workstation/class/workstation.class.php b/htdocs/workstation/class/workstation.class.php index 2f084916a75..6f81c4a28eb 100644 --- a/htdocs/workstation/class/workstation.class.php +++ b/htdocs/workstation/class/workstation.class.php @@ -132,42 +132,6 @@ class Workstation extends CommonObject // END MODULEBUILDER PROPERTIES - // If this object has a subtable with lines - - /** - * @var int Name of subtable line - */ - //public $table_element_line = 'workstation_workstationline'; - - /** - * @var int Field with ID of parent key if this object has a parent - */ - //public $fk_element = 'fk_workstation'; - - /** - * @var int Name of subtable class that manage subtable lines - */ - //public $class_element_line = 'Workstationline'; - - /** - * @var array List of child tables. To test if we can delete object. - */ - //protected $childtables = array(); - - /** - * @var array List of child tables. To know object to delete on cascade. - * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will - * call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object - */ - //protected $childtablesoncascade = array('workstation_workstationdet'); - - /** - * @var WorkstationLine[] Array of subtable lines - */ - //public $lines = array(); - - - /** * Constructor * @@ -881,27 +845,11 @@ class Workstation extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); @@ -935,8 +883,8 @@ class Workstation extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_workstation = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } diff --git a/htdocs/workstation/lib/workstation.lib.php b/htdocs/workstation/lib/workstation.lib.php index 92ea28d8bfb..8250a85adda 100644 --- a/htdocs/workstation/lib/workstation.lib.php +++ b/htdocs/workstation/lib/workstation.lib.php @@ -61,5 +61,7 @@ function workstationAdminPrepareHead() //); // to remove a tab complete_head_from_modules($conf, $langs, null, $head, $h, 'workstation'); + complete_head_from_modules($conf, $langs, null, $head, $h, 'workstation', 'remove'); + return $head; } diff --git a/htdocs/workstation/workstation_agenda.php b/htdocs/workstation/workstation_agenda.php index 78140eddd40..64bfcfe8941 100644 --- a/htdocs/workstation/workstation_agenda.php +++ b/htdocs/workstation/workstation_agenda.php @@ -1,4 +1,5 @@ * Copyright (C) 2020 Gauthier VERDOL * @@ -17,7 +18,7 @@ */ /** - * \file workstation_agenda.php + * \file htdocs/workstation/workstation_agenda.php * \ingroup workstation * \brief Tab of events on Workstation */ @@ -32,12 +33,12 @@ require_once DOL_DOCUMENT_ROOT.'/workstation/lib/workstation_workstation.lib.php // Load translation files required by the page -$langs->loadLangs(array("workstation", "other")); +$langs->loadLangs(array('workstation', 'other')); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -49,8 +50,10 @@ if (GETPOST('actioncode', 'array')) { } else { $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); } + $search_agenda_label = GETPOST('search_agenda_label'); +// Load variables for pagination $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -73,6 +76,7 @@ $object = new Workstation($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->workstation->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('workstationagenda', 'globalcard')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -82,6 +86,7 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->workstation->multidir_output[$object->entity]."/".$object->id; } +// Permissions $permissiontoadd = $user->rights->workstation->workstation->write; // Used by the include of actions_addupdatedelete.inc.php // Security check @@ -127,7 +132,7 @@ if ($object->id > 0) { $help_url = 'EN:Module_Workstation'; llxHeader('', $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = workstationPrepareHead($object); @@ -147,7 +152,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (! empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -208,7 +213,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.urlencode($objthirdparty->id); } - $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : '').'&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : ''); //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -218,7 +223,7 @@ if ($object->id > 0) { print '
    '; if (!empty($conf->agenda->enabled)) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/workstation/workstation_card.php b/htdocs/workstation/workstation_card.php index 37f24a38437..87ee470dce7 100644 --- a/htdocs/workstation/workstation_card.php +++ b/htdocs/workstation/workstation_card.php @@ -1,4 +1,5 @@ * * This program is free software; you can redistribute it and/or modify @@ -16,7 +17,7 @@ */ /** - * \file workstation_card.php + * \file htdocs/workstation/workstation_card.php * \ingroup workstation * \brief Page to create/edit/view workstation */ @@ -24,32 +25,33 @@ // Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; -require_once DOL_DOCUMENT_ROOT.'/workstation/lib/workstation_workstation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstationusergroup.class.php'; +require_once DOL_DOCUMENT_ROOT.'/workstation/lib/workstation_workstation.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("workstation", "other")); +$langs->loadLangs(array('workstation', 'other')); // Get parameters -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); -$confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'aZ09'); -$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'workstationcard'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'workstationcard'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -$groups = GETPOST('groups', 'array:int'); +$groups = GETPOST('groups', 'array:int'); $resources = GETPOST('resources', 'array:int'); //$lineid = GETPOST('lineid', 'int'); // Initialize technical objects $object = new Workstation($db); + //$extrafields = new ExtraFields($db); $diroutputmassaction = $conf->workstation->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('workstationcard', 'globalcard')); // Note that conf->hooks_modules contains array @@ -75,11 +77,13 @@ if (empty($action) && empty($id) && empty($ref)) { // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. -$permissiontoread = $user->rights->workstation->workstation->read; -$permissiontoadd = $user->rights->workstation->workstation->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php -$permissiontodelete = $user->rights->workstation->workstation->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); -$permissionnote = $user->rights->workstation->workstation->write; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->workstation->workstation->write; // Used by the include of actions_dellink.inc.php +// Permissions +$permissiontoread = $user->rights->workstation->workstation->read; +$permissiontoadd = $user->rights->workstation->workstation->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +$permissiontodelete = $user->rights->workstation->workstation->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); +$permissionnote = $user->rights->workstation->workstation->write; // Used by the include of actions_setnotes.inc.php +$permissiondellink = $user->rights->workstation->workstation->write; // Used by the include of actions_dellink.inc.php + $upload_dir = $conf->workstation->multidir_output[isset($object->entity) ? $object->entity : 1]; // Security check @@ -92,7 +96,7 @@ restrictedArea($user, $object->element, $object->id, $object->table_element, 'wo */ $parameters = array(); -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } @@ -112,7 +116,7 @@ if (empty($reshook)) { } } - $triggermodname = 'WORKSTATION_WORKSTATION_MODIFY'; // Name of trigger action code to execute when we modify record + $triggermodname = 'WORKSTATION_WORKSTATION_MODIFY'; // Name of trigger action code to execute when we modify record // Actions cancel, add, update, update_extras, confirm_validate, confirm_delete, confirm_deleteline, confirm_clone, confirm_close, confirm_setdraft, confirm_reopen include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; @@ -142,7 +146,6 @@ if (empty($reshook)) { - /* * View * @@ -340,7 +343,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) { + if (! empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project') . ' '; if ($permissiontoadd) { @@ -448,10 +451,10 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Clone if ($permissiontoadd) { - print ''.$langs->trans("ToClone").''."\n"; + print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&socid='.$object->socid.'&action=clone&object=workstation', 'clone', $permissiontoadd); } - + // Disable / Enable if ($permissiontoadd) { if ($object->status == $object::STATUS_ENABLED) { print ''.$langs->trans("Disable").''."\n"; @@ -460,13 +463,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } - - // Delete (need delete permission, or if draft, just need create/modify permission) - if ($permissiontodelete) { - print ''.$langs->trans('Delete').''."\n"; - } else { - print ''.$langs->trans('Delete').''."\n"; - } + // Delete + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete); } print '
    '."\n"; } diff --git a/htdocs/workstation/workstation_document.php b/htdocs/workstation/workstation_document.php index f52ef1fe796..2ccf1936615 100644 --- a/htdocs/workstation/workstation_document.php +++ b/htdocs/workstation/workstation_document.php @@ -1,4 +1,5 @@ * Copyright (C) 2020 Gauthier VERDOL * @@ -17,22 +18,22 @@ */ /** - * \file workstation_document.php + * \file htdocs/workstation/workstation_document.php * \ingroup workstation * \brief Tab for documents linked to Workstation */ // Load Dolibarr environment require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; require_once DOL_DOCUMENT_ROOT.'/workstation/lib/workstation_workstation.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("workstation", "companies", "other", "mails")); +$langs->loadLangs(array('companies', 'mails', 'other', 'workstation')); $action = GETPOST('action', 'aZ09'); @@ -48,7 +49,7 @@ $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("pa if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $liste_limit * $page; +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortorder) { @@ -64,6 +65,7 @@ $object = new Workstation($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->workstation->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('workstationdocument', 'globalcard')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -128,7 +130,7 @@ if ($object->id) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (! empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; diff --git a/htdocs/workstation/workstation_list.php b/htdocs/workstation/workstation_list.php index 540f6bc9c6b..d4ea81e769f 100644 --- a/htdocs/workstation/workstation_list.php +++ b/htdocs/workstation/workstation_list.php @@ -1,4 +1,5 @@ * Copyright (C) 2020 Gauthier VERDOL * @@ -17,7 +18,7 @@ */ /** - * \file workstation_list.php + * \file htdocs/workstation/workstation_list.php * \ingroup workstation * \brief List page for workstation */ @@ -25,24 +26,24 @@ // Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php'; require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; // Load translation files required by the page -$langs->loadLangs(array("workstation", "other")); +$langs->loadLangs(array('workstation', 'other')); -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... -$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) -$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? -$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation -$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button -$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list -$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'workstationlist'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') -$mode = GETPOST('mode', 'aZ'); +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) +$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'workstationlist'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$mode = GETPOST('mode', 'aZ'); $id = GETPOST('id', 'int'); @@ -63,7 +64,7 @@ $pagenext = $page + 1; $object = new Workstation($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->workstation->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('workstationlist')); // Note that conf->hooks_modules contains array +$hookmanager->initHooks(array('workstationlist')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); diff --git a/htdocs/workstation/workstation_note.php b/htdocs/workstation/workstation_note.php index 3685b7daf4e..d5eb05737f0 100644 --- a/htdocs/workstation/workstation_note.php +++ b/htdocs/workstation/workstation_note.php @@ -1,4 +1,5 @@ * Copyright (C) 2020 Gauthier VERDOL * @@ -17,7 +18,7 @@ */ /** - * \file workstation_note.php + * \file htdocs/workstation/workstation_note.php * \ingroup workstation * \brief Tab for notes on Workstation */ @@ -29,12 +30,12 @@ require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; require_once DOL_DOCUMENT_ROOT.'/workstation/lib/workstation_workstation.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("workstation", "companies")); +$langs->loadLangs(array('workstation', 'companies')); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -42,18 +43,19 @@ $backtopage = GETPOST('backtopage', 'alpha'); $object = new Workstation($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->workstation->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('workstationnote', 'globalcard')); // Note that conf->hooks_modules contains array +$hookmanager->initHooks(array('workstationnote', 'globalcard')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); // Load object -include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { $upload_dir = $conf->workstation->multidir_output[$object->entity]."/".$object->id; } -$permissionnote = $user->rights->workstation->workstation->write; // Used by the include of actions_setnotes.inc.php -$permissiontoadd = $user->rights->workstation->workstation->write; // Used by the include of actions_addupdatedelete.inc.php +$permissionnote = $user->rights->workstation->workstation->write; // Used by the include of actions_setnotes.inc.php +$permissiontoadd = $user->rights->workstation->workstation->write; // Used by the include of actions_addupdatedelete.inc.php // Security check $isdraft = 0; @@ -63,7 +65,8 @@ restrictedArea($user, $object->element, $object->id, $object->table_element, 'wo /* * Actions */ -$reshook = $hookmanager->executeHooks('doActions', array(), $object, $action); // Note that $action and $object may have been modified by some hooks + +$reshook = $hookmanager->executeHooks('doActions', array(), $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } @@ -101,7 +104,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : ''); // Project - if (! empty($conf->projet->enabled)) + if (! empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; diff --git a/htdocs/zapier/admin/about.php b/htdocs/zapier/admin/about.php index b7e2936fc41..71120a384a2 100644 --- a/htdocs/zapier/admin/about.php +++ b/htdocs/zapier/admin/about.php @@ -21,9 +21,9 @@ */ /** - * \file zapier/admin/about.php - * \ingroup zapier - * \brief About page of module Zapier. + * \file htdocs/zapier/admin/about.php + * \ingroup zapier + * \brief About page of module Zapier. */ // Load Dolibarr environment @@ -35,19 +35,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once '../lib/zapier.lib.php'; // Translations -$langs->loadLangs(array("errors", "admin", "zapier")); +$langs->loadLangs(array('admin', 'errors', 'zapier')); // Access control if (!$user->admin) { accessforbidden(); } +if (empty($conf->zapier->enabled)) accessforbidden(); +if (empty($user->admin)) accessforbidden(); + + // Parameters $action = GETPOST('action', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); -if (empty($conf->zapier->enabled)) accessforbidden(); -if (empty($user->admin)) accessforbidden(); /* diff --git a/htdocs/zapier/admin/setup.php b/htdocs/zapier/admin/setup.php index 08d2c1703a8..6fe6365d1b9 100644 --- a/htdocs/zapier/admin/setup.php +++ b/htdocs/zapier/admin/setup.php @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -26,11 +26,11 @@ require '../../main.inc.php'; // Libraries -require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/zapier/lib/zapier.lib.php'; // Translations -$langs->loadLangs(array("admin", "zapier")); +$langs->loadLangs(array('admin', 'zapier')); // Access control if (!$user->admin) { @@ -54,16 +54,13 @@ if (empty($user->admin)) accessforbidden(); * Actions */ -if ((float) DOL_VERSION >= 6) { - include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; -} - +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; /* * View */ -$page_name = "ZapierForDolibarrSetup"; +$page_name = 'ZapierForDolibarrSetup'; $help_url = 'EN:Module_Zapier'; llxHeader('', $langs->trans($page_name), $help_url); @@ -88,7 +85,7 @@ if ($action == 'edit') { foreach ($arrayofparameters as $key => $val) { print '
    '; + print ''; } print '
    '; @@ -1775,54 +1805,54 @@ if ($action == 'create') { print ''; - if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency)) { + if (isModEnabled("multicurrency") && ($object->multicurrency_code != $conf->currency)) { // Multicurrency Amount HT print ''; - print ''; + print ''; print ''; // Multicurrency Amount VAT print ''; - print ''; + print ''; print ''; // Multicurrency Amount TTC print ''; - print ''; + print ''; print ''; } // Amount HT print ''; - print ''; + print ''; print ''; // Amount VAT print ''; - print ''; + print ''; print ''; // Amount Local Taxes if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) { // Localtax1 print ''; - print ''; + print ''; print ''; } if ($mysoc->localtax2_assuj == "1" || $object->total_localtax2 != 0) { // Localtax2 print ''; - print ''; + print ''; print ''; } // Amount TTC print ''; - print ''; + print ''; print ''; print '
    '.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).''.price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'
    '.$langs->trans('AmountHT').''.price($object->total_ht, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_ht, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->trans('AmountVAT').''.price($object->total_tva, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_tva, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->transcountry("AmountLT1", $mysoc->country_code).''.price($object->total_localtax1, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_localtax1, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->transcountry("AmountLT2", $mysoc->country_code).''.price($object->total_localtax2, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_localtax2, '', $langs, 0, - 1, - 1, $conf->currency).'
    '.$langs->trans('AmountTTC').''.price($object->total_ttc, '', $langs, 0, - 1, - 1, $conf->currency).''.price($object->total_ttc, '', $langs, 0, - 1, - 1, $conf->currency).'
    '; // Margin Infos - /*if (! empty($conf->margin->enabled)) { + /*if (!empty($conf->margin->enabled)) { $formmargin->displayMarginInfos($object); }*/ @@ -1850,7 +1880,7 @@ if ($action == 'create') { // Show object lines $result = $object->getLinesArray(); - print '
    + print ' @@ -1873,7 +1903,7 @@ if ($action == 'create') { } if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $soc, $mysoc, $lineid, $dateSelector); + $object->printObjectLines($action, $soc, $mysoc, $lineid, $dateSelector); } // Form to add new line @@ -1965,7 +1995,7 @@ if ($action == 'create') { } // Create an order - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) && $object->statut == SupplierProposal::STATUS_SIGNED) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && $object->statut == SupplierProposal::STATUS_SIGNED) { if ($usercancreateorder) { print ''; } @@ -1989,10 +2019,7 @@ if ($action == 'create') { } // Delete - if (($object->statut == SupplierProposal::STATUS_DRAFT && $usercancreate) || $usercandelete) { - print ''; - } + print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', ($object->statut == SupplierProposal::STATUS_DRAFT && $usercancreate) || $usercandelete); } } diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index 8f0c1d36919..f283295aeb5 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -452,49 +452,49 @@ class SupplierProposal extends CommonObject if (!empty($conf->global->SUPPLIER_PROPOSAL_WITH_PREDEFINED_PRICES_ONLY)) { // Check quantity is enough dol_syslog(get_class($this)."::addline we check supplier prices fk_product=".$fk_product." fk_fournprice=".$fk_fournprice." qty=".$qty." ref_supplier=".$ref_supplier); - $prod = new Product($this->db); - if ($prod->fetch($fk_product) > 0) { - $product_type = $prod->type; - $label = $prod->label; + $productsupplier = new ProductFournisseur($this->db); + if ($productsupplier->fetch($fk_product) > 0) { + $product_type = $productsupplier->type; + $label = $productsupplier->label; $fk_prod_fourn_price = $fk_fournprice; // We use 'none' instead of $ref_supplier, because fourn_ref may not exists anymore. So we will take the first supplier price ok. // If we want a dedicated supplier price, we must provide $fk_prod_fourn_price. - $result = $prod->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', ($this->fk_soc ? $this->fk_soc : $this->socid)); // Search on couple $fk_prod_fourn_price/$qty first, then on triplet $qty/$fk_product/$ref_supplier/$this->fk_soc + $result = $productsupplier->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', ($this->fk_soc ? $this->fk_soc : $this->socid)); // Search on couple $fk_prod_fourn_price/$qty first, then on triplet $qty/$fk_product/$ref_supplier/$this->fk_soc if ($result > 0) { - $pu = $prod->fourn_pu; // Unit price supplier price set by get_buyprice - $ref_supplier = $prod->ref_supplier; // Ref supplier price set by get_buyprice + $pu = $productsupplier->fourn_pu; // Unit price supplier price set by get_buyprice + $ref_supplier = $productsupplier->ref_supplier; // Ref supplier price set by get_buyprice // is remise percent not keyed but present for the product we add it - if ($remise_percent == 0 && $prod->remise_percent != 0) { - $remise_percent = $prod->remise_percent; + if ($remise_percent == 0 && $productsupplier->remise_percent != 0) { + $remise_percent = $productsupplier->remise_percent; } } if ($result == 0) { // If result == 0, we failed to found the supplier reference price $langs->load("errors"); - $this->error = "Ref ".$prod->ref." ".$langs->trans("ErrorQtyTooLowForThisSupplier"); + $this->error = "Ref ".$productsupplier->ref." ".$langs->trans("ErrorQtyTooLowForThisSupplier"); $this->db->rollback(); dol_syslog(get_class($this)."::addline we did not found supplier price, so we can't guess unit price"); - //$pu = $prod->fourn_pu; // We do not overwrite unit price - //$ref = $prod->ref_fourn; // We do not overwrite ref supplier price + //$pu = $productsupplier->fourn_pu; // We do not overwrite unit price + //$ref = $productsupplier_fourn; // We do not overwrite ref supplier price return -1; } if ($result == -1) { $langs->load("errors"); - $this->error = "Ref ".$prod->ref." ".$langs->trans("ErrorQtyTooLowForThisSupplier"); + $this->error = "Ref ".$productsupplier->ref." ".$langs->trans("ErrorQtyTooLowForThisSupplier"); $this->db->rollback(); dol_syslog(get_class($this)."::addline result=".$result." - ".$this->error, LOG_DEBUG); return -1; } if ($result < -1) { - $this->error = $prod->error; - $this->errors = $prod->errors; + $this->error = $productsupplier->error; + $this->errors = $productsupplier->errors; $this->db->rollback(); dol_syslog(get_class($this)."::addline result=".$result." - ".$this->error, LOG_ERR); return -1; } } else { - $this->error = $prod->error; - $this->errors = $prod->errors; + $this->error = $productsupplier->error; + $this->errors = $productsupplier->errors; $this->db->rollback(); return -1; } @@ -518,7 +518,7 @@ class SupplierProposal extends CommonObject $txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate. } - if (!empty($conf->multicurrency->enabled) && $pu_ht_devise > 0) { + if (isModEnabled("multicurrency") && $pu_ht_devise > 0) { $pu = 0; } @@ -720,7 +720,7 @@ class SupplierProposal extends CommonObject $txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate. } - if (!empty($conf->multicurrency->enabled) && $pu_ht_devise > 0) { + if (isModEnabled("multicurrency") && $pu_ht_devise > 0) { $pu = 0; } @@ -1149,8 +1149,10 @@ class SupplierProposal extends CommonObject } // Clear fields - $this->user_author = $user->id; - $this->user_valid = ''; + $this->user_author = $user->id; // deprecated + $this->user_author_id = $user->id; + $this->user_valid = 0; // deprecated + $this->user_valid_id = 0; $this->date = $now; // Set ref @@ -1255,11 +1257,13 @@ class SupplierProposal extends CommonObject $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->statut = (int) $obj->fk_statut; + $this->status = (int) $obj->fk_statut; $this->statut_libelle = $obj->statut_label; $this->datec = $this->db->jdate($obj->datec); // TODO deprecated $this->datev = $this->db->jdate($obj->datev); // TODO deprecated - $this->date_creation = $this->db->jdate($obj->datec); //Creation date - $this->date_validation = $this->db->jdate($obj->datev); //Validation date + $this->date_creation = $this->db->jdate($obj->datec); // Creation date + $this->date = $this->date_creation; + $this->date_validation = $this->db->jdate($obj->datev); // Validation date $this->date_livraison = $this->db->jdate($obj->delivery_date); // deprecated $this->delivery_date = $this->db->jdate($obj->delivery_date); $this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null; @@ -1718,7 +1722,7 @@ class SupplierProposal extends CommonObject if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language $outputlangs = $langs; - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (getDolGlobalInt('MAIN_MULTILANGS')) { $outputlangs = new Translate("", $conf); $newlang = (GETPOST('lang_id', 'aZ09') ? GETPOST('lang_id', 'aZ09') : $this->thirdparty->default_lang); $outputlangs->setDefaultLang($newlang); @@ -1777,7 +1781,7 @@ class SupplierProposal extends CommonObject if (empty($ref_fourn)) { $ref_fourn = $product->ref_supplier; } - if (!empty($conf->multicurrency->enabled) && !empty($product->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($product->multicurrency_code)) { list($fk_multicurrency, $multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $product->multicurrency_code); } $productsupplier->id = $product->fk_product; @@ -1840,7 +1844,7 @@ class SupplierProposal extends CommonObject $product->tva_tx, $user->id ); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { if (!empty($product->multicurrency_code)) { include_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; $multicurrency = new MultiCurrency($this->db); //need to fetch because empty fk_multicurrency and rate @@ -1861,7 +1865,7 @@ class SupplierProposal extends CommonObject $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'product_fournisseur_price '; $sql .= '(datec, fk_product, fk_soc, ref_fourn, price, quantity, unitprice, tva_tx, fk_user'; - if (!empty($conf->multicurrency->enabled) && !empty($product->multicurrency_code)) { + if (isModEnabled("multicurrency") && !empty($product->multicurrency_code)) { $sql .= ',fk_multicurrency, multicurrency_code, multicurrency_unitprice, multicurrency_price, multicurrency_tx'; } $sql .= ') VALUES ('.implode(',', $values).')'; @@ -2190,7 +2194,7 @@ class SupplierProposal extends CommonObject $this->labelStatus[self::STATUS_NOTSIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusNotSigned"); $this->labelStatus[self::STATUS_CLOSE] = $langs->transnoentitiesnoconv("SupplierProposalStatusClosed"); $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv("SupplierProposalStatusDraftShort"); - $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv("Opened"); + $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv("SupplierProposalStatusValidatedShort"); $this->labelStatusShort[self::STATUS_SIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusSignedShort"); $this->labelStatusShort[self::STATUS_NOTSIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusNotSignedShort"); $this->labelStatusShort[self::STATUS_CLOSE] = $langs->transnoentitiesnoconv("SupplierProposalStatusClosedShort"); @@ -2689,18 +2693,18 @@ class SupplierProposal extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'supplier_proposal' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -2947,7 +2951,7 @@ class SupplierProposalLine extends CommonObjectLine $this->product_label = $objp->product_label; $this->product_desc = $objp->product_desc; - $this->ref_fourn = $objp->ref_produit_forun; + $this->ref_fourn = $objp->ref_produit_fourn; // Multicurrency $this->fk_multicurrency = $objp->fk_multicurrency; @@ -3059,14 +3063,14 @@ class SupplierProposalLine extends CommonObjectLine $sql .= ' ref_fourn,'; $sql .= ' fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc, fk_unit)'; $sql .= " VALUES (".$this->fk_supplier_proposal.","; - $sql .= " ".($this->fk_parent_line > 0 ? ((int) $this->db->escape($this->fk_parent_line)) : "null").","; + $sql .= " ".($this->fk_parent_line > 0 ? ((int) $this->fk_parent_line) : "null").","; $sql .= " ".(!empty($this->label) ? "'".$this->db->escape($this->label)."'" : "null").","; $sql .= " '".$this->db->escape($this->desc)."',"; $sql .= " ".($this->fk_product ? ((int) $this->fk_product) : "null").","; $sql .= " '".$this->db->escape($this->product_type)."',"; $sql .= " ".($this->date_start ? "'".$this->db->idate($this->date_start)."'" : "null").","; $sql .= " ".($this->date_end ? "'".$this->db->idate($this->date_end)."'" : "null").","; - $sql .= " ".($this->fk_remise_except ? ((int) $this->db->escape($this->fk_remise_except)) : "null").","; + $sql .= " ".($this->fk_remise_except ? ((int) $this->fk_remise_except) : "null").","; $sql .= " ".price2num($this->qty, 'MS').","; $sql .= " ".price2num($this->tva_tx).","; $sql .= " ".price2num($this->localtax1_tx).","; @@ -3259,15 +3263,15 @@ class SupplierProposalLine extends CommonObjectLine $sql .= " , localtax1_type='".$this->db->escape($this->localtax1_type)."'"; $sql .= " , localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= " , qty='".price2num($this->qty)."'"; - $sql .= " , subprice=".price2num($this->subprice).""; - $sql .= " , remise_percent=".price2num($this->remise_percent).""; + $sql .= " , subprice=".price2num($this->subprice); + $sql .= " , remise_percent=".price2num($this->remise_percent); $sql .= " , info_bits='".$this->db->escape($this->info_bits)."'"; if (empty($this->skip_update_total)) { - $sql .= " , total_ht=".price2num($this->total_ht).""; - $sql .= " , total_tva=".price2num($this->total_tva).""; - $sql .= " , total_ttc=".price2num($this->total_ttc).""; - $sql .= " , total_localtax1=".price2num($this->total_localtax1).""; - $sql .= " , total_localtax2=".price2num($this->total_localtax2).""; + $sql .= " , total_ht=".price2num($this->total_ht); + $sql .= " , total_tva=".price2num($this->total_tva); + $sql .= " , total_ttc=".price2num($this->total_ttc); + $sql .= " , total_localtax1=".price2num($this->total_localtax1); + $sql .= " , total_localtax2=".price2num($this->total_localtax2); } $sql .= " , fk_product_fournisseur_price=".(!empty($this->fk_fournprice) ? "'".$this->db->escape($this->fk_fournprice)."'" : "null"); $sql .= " , buy_price_ht=".price2num($this->pa_ht); @@ -3282,10 +3286,10 @@ class SupplierProposalLine extends CommonObjectLine $sql .= " , fk_unit=".($this->fk_unit ? $this->fk_unit : 'null'); // Multicurrency - $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); diff --git a/htdocs/supplier_proposal/contact.php b/htdocs/supplier_proposal/contact.php index f1756f17814..8db19cfb2a7 100644 --- a/htdocs/supplier_proposal/contact.php +++ b/htdocs/supplier_proposal/contact.php @@ -24,12 +24,15 @@ * \brief Tab to manage contact of a supplier proposal */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php'; // Load translation files required by the page $langs->loadLangs(array("propal", "supplier_proposal", "facture", "orders", "sendings", "companies")); @@ -98,10 +101,6 @@ if ($action == 'addcontact' && $permissiontoedit) { /* * View */ -$title = $langs->trans('CommRequest')." - ".$langs->trans('ContactsAddresses'); -$help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; -llxHeader('', $title, $help_url); - $form = new Form($db); $formcompany = new FormCompany($db); $contactstatic = new Contact($db); @@ -120,6 +119,10 @@ if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref) > 0) { $object->fetch_thirdparty(); + $title = $object->ref." - ".$langs->trans('ContactsAddresses'); + $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; + llxHeader('', $title, $help_url); + $head = supplier_proposal_prepare_head($object); print dol_get_fiche_head($head, 'contact', $langs->trans("CommRequest"), -1, 'supplier_proposal'); @@ -129,40 +132,28 @@ if ($id > 0 || !empty($ref)) { $morehtmlref = '
    '; // Ref supplier - $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); + //$morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); + //$morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= $object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($permissiontoedit) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { - $morehtmlref .= ' - '.$proj->title; + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/supplier_proposal/document.php b/htdocs/supplier_proposal/document.php index fa73ec22fa8..c1829fd61d6 100644 --- a/htdocs/supplier_proposal/document.php +++ b/htdocs/supplier_proposal/document.php @@ -26,13 +26,14 @@ * \brief Management page of documents attached to a business proposal */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page @@ -76,6 +77,7 @@ if ($object->id > 0) { } $permissiontoadd = $user->rights->supplier_proposal->creer; +$usercancreate = $permissiontoadd; /* * Actions @@ -90,7 +92,7 @@ if ($object->id > 0) { * View */ -$title = $langs->trans('CommRequest')." - ".$langs->trans('Documents'); +$title = $object->ref." - ".$langs->trans('Documents'); $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; llxHeader('', $title, $help_url); @@ -119,37 +121,25 @@ if ($object->id > 0) { //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= $object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->supplier_proposal->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { $morehtmlref .= ' - '.$proj->title; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/supplier_proposal/index.php b/htdocs/supplier_proposal/index.php index f151651d186..40cca19a8b1 100644 --- a/htdocs/supplier_proposal/index.php +++ b/htdocs/supplier_proposal/index.php @@ -24,6 +24,7 @@ * \brief Home page of vendor proposal area */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; @@ -89,7 +90,7 @@ if ($resql) { $dataseries = array(); $colorseries = array(); $vals = array(); - // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for customer orders), 3=Closed (Sent/Received, billed or not) + // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for sales orders), 3=Closed (Sent/Received, billed or not) while ($i < $num) { $row = $db->fetch_row($resql); if ($row) { @@ -162,7 +163,7 @@ if ($resql) { /* * Draft askprice */ -if (!empty($conf->supplier_proposal->enabled)) { +if (isModEnabled('supplier_proposal')) { $sql = "SELECT c.rowid, c.ref, s.nom as socname, s.rowid as socid, s.canvas, s.client"; $sql .= " FROM ".MAIN_DB_PREFIX."supplier_proposal as c"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -297,7 +298,7 @@ if ($resql) { /* * Opened askprice */ -if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire) { +if (isModEnabled('supplier_proposal') && $user->rights->supplier_proposal->lire) { $langs->load("supplier_proposal"); $now = dol_now(); diff --git a/htdocs/supplier_proposal/info.php b/htdocs/supplier_proposal/info.php index 0b796937d2e..0b2af861163 100644 --- a/htdocs/supplier_proposal/info.php +++ b/htdocs/supplier_proposal/info.php @@ -24,11 +24,12 @@ * \brief Page d'affichage des infos d'une proposition commerciale */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -48,19 +49,16 @@ $result = restrictedArea($user, 'supplier_proposal', $id); /* * View */ - $form = new Form($db); - -$title = $langs->trans('CommRequest')." - ".$langs->trans('Info'); -$help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; -llxHeader('', $title, $help_url); - $object = new SupplierProposal($db); $object->fetch($id); $object->fetch_thirdparty(); - $object->info($object->id); +$title = $object->ref." - ".$langs->trans('Info'); +$help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; +llxHeader('', $title, $help_url); + $head = supplier_proposal_prepare_head($object); print dol_get_fiche_head($head, 'info', $langs->trans('CommRequest'), -1, 'supplier_proposal'); @@ -74,32 +72,22 @@ $morehtmlref = '
    '; //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); // Thirdparty -$morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); +$morehtmlref .= $object->thirdparty->getNomUrl(1); // Project -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->supplier_proposal->creer) { + $morehtmlref .= '
    '; + if (0) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= '
    '; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= '
    '; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { $morehtmlref .= ' - '.$proj->title; } diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index a0e404dbd89..ab89c4a43b8 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -33,6 +33,7 @@ * \brief Page of supplier proposals card and list */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -41,7 +42,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formpropal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } @@ -61,6 +62,7 @@ $search_user = GETPOST('search_user', 'int'); $search_sale = GETPOST('search_sale', 'int'); $search_ref = GETPOST('sf_ref') ?GETPOST('sf_ref', 'alpha') : GETPOST('search_ref', 'alpha'); $search_societe = GETPOST('search_societe', 'alpha'); +$search_societe_alias = GETPOST('search_societe_alias', 'alpha'); $search_login = GETPOST('search_login', 'alpha'); $search_town = GETPOST('search_town', 'alpha'); $search_zip = GETPOST('search_zip', 'alpha'); @@ -92,6 +94,7 @@ $search_multicurrency_montant_ht = GETPOST('search_multicurrency_montant_ht', 'a $search_multicurrency_montant_vat = GETPOST('search_multicurrency_montant_vat', 'alpha'); $search_multicurrency_montant_ttc = GETPOST('search_multicurrency_montant_ttc', 'alpha'); $search_status = GETPOST('search_status', 'int'); +$search_product_category = GETPOST('search_product_category', 'int'); $object_statut = $db->escape(GETPOST('supplier_proposal_statut')); $search_btn = GETPOST('button_search', 'alpha'); @@ -168,21 +171,22 @@ $checkedtypetiers = 0; $arrayfields = array( 'sp.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), 's.nom'=>array('label'=>$langs->trans("Supplier"), 'checked'=>1), + 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>0), 's.town'=>array('label'=>$langs->trans("Town"), 'checked'=>1), 's.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>1), 'state.nom'=>array('label'=>$langs->trans("StateShort"), 'checked'=>0), 'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>0), 'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>$checkedtypetiers), - 'sp.date_valid'=>array('label'=>$langs->trans("Date"), 'checked'=>1), + 'sp.date_valid'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1), 'sp.date_livraison'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1), 'sp.total_ht'=>array('label'=>$langs->trans("AmountHT"), 'checked'=>1), 'sp.total_tva'=>array('label'=>$langs->trans("AmountVAT"), 'checked'=>0), 'sp.total_ttc'=>array('label'=>$langs->trans("AmountTTC"), 'checked'=>0), - 'sp.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'sp.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'sp.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'sp.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), - 'sp.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1)), + 'sp.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'sp.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'sp.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'sp.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), + 'sp.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1)), 'u.login'=>array('label'=>$langs->trans("Author"), 'checked'=>1, 'position'=>10), 'sp.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), 'sp.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), @@ -213,8 +217,6 @@ if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } -$search_product_category = 0; - include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; // Do we click on purge search criteria ? @@ -224,6 +226,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_sale = ''; $search_ref = ''; $search_societe = ''; + $search_societe_alias = ''; $search_montant_ht = ''; $search_montant_vat = ''; $search_montant_ttc = ''; @@ -285,14 +288,19 @@ $formpropal = new FormPropal($db); $companystatic = new Societe($db); $formcompany = new FormCompany($db); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + +$title = $langs->trans('ListOfSupplierProposals'); $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; -//llxHeader('',$langs->trans('CommRequest'),$help_url); + +llxHeader('', $title, $help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0 || $search_user > 0) { +if ($sall || $search_user > 0) { $sql = 'SELECT DISTINCT'; } -$sql .= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; +$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; $sql .= ' sp.rowid, sp.note_public, sp.note_private, sp.total_ht, sp.total_tva, sp.total_ttc, sp.localtax1, sp.localtax2, sp.ref, sp.fk_statut as status, sp.fk_user_author, sp.date_valid, sp.date_livraison as dp,'; @@ -302,7 +310,7 @@ $sql .= " p.rowid as project_id, p.ref as project_ref,"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " sc.fk_soc, sc.fk_user,"; } -$sql .= " u.firstname, u.lastname, u.photo, u.login, u.statut as status, u.admin, u.employee, u.email as uemail"; +$sql .= " u.firstname, u.lastname, u.photo, u.login, u.statut as ustatus, u.admin, u.employee, u.email as uemail"; // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { @@ -321,12 +329,9 @@ $sql .= ', '.MAIN_DB_PREFIX.'supplier_proposal as sp'; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (sp.rowid = ef.fk_object)"; } -if ($sall || $search_product_category > 0) { +if ($sall) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'supplier_proposaldet as pd ON sp.rowid=pd.fk_supplier_proposal'; } -if ($search_product_category > 0) { - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; -} $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON sp.fk_user_author = u.rowid'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = sp.fk_projet"; // We'll need this table joined to the select in order to filter by sale @@ -360,8 +365,15 @@ if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { if ($search_ref) { $sql .= natural_search('sp.ref', $search_ref); } -if ($search_societe) { - $sql .= natural_search('s.nom', $search_societe); +if (empty($arrayfields['s.name_alias']['checked']) && $search_societe) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_societe); +} else { + if ($search_societe) { + $sql .= natural_search('s.nom', $search_societe); + } + if ($search_societe_alias) { + $sql .= natural_search('s.name_alias', $search_societe_alias); + } } if ($search_login) { $sql .= natural_search(array('u.lastname', 'u.firstname', 'u.login'), $search_login); @@ -417,6 +429,36 @@ if ($search_sale > 0) { if ($search_user > 0) { $sql .= " AND c.fk_c_type_contact = tc.rowid AND tc.element='supplier_proposal' AND tc.source='internal' AND c.element_id = sp.rowid AND c.fk_socpeople = ".((int) $search_user); } +// Search for tag/category ($searchCategoryProductList is an array of ID) +$searchCategoryProductOperator = -1; +$searchCategoryProductList = array($search_product_category); +if (!empty($searchCategoryProductList)) { + $searchCategoryProductSqlList = array(); + $listofcategoryid = ''; + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."supplier_proposaldet as sd WHERE sd.fk_supplier_proposal = sp.rowid AND sd.fk_product = ck.fk_product)"; + } elseif (intval($searchCategoryProduct) > 0) { + if ($searchCategoryProductOperator == 0) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."supplier_proposaldet as sd WHERE sd.fk_supplier_proposal = sp.rowid AND sd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).")"; + } else { + $listofcategoryid .= ($listofcategoryid ? ', ' : '') .((int) $searchCategoryProduct); + } + } + } + if ($listofcategoryid) { + $searchCategoryProductSqlList[] = " EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX."categorie_product as ck, ".MAIN_DB_PREFIX."supplier_proposaldet as sd WHERE sd.fk_supplier_proposal = sp.rowid AND sd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid)."))"; + } + if ($searchCategoryProductOperator == 1) { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } + } else { + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } + } +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks @@ -467,8 +509,6 @@ if ($resql) { exit; } - llxHeader('', $langs->trans('CommRequest'), $help_url); - $param = ''; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); @@ -521,6 +561,9 @@ if ($resql) { if ($search_societe) { $param .= '&search_societe='.urlencode($search_societe); } + if ($search_societe_alias) { + $param .= '&search_societe_alias='.urlencode($search_societe_alias); + } if ($search_user > 0) { $param .= '&search_user='.urlencode($search_user); } @@ -635,7 +678,7 @@ if ($resql) { $moreforfilter .= '
    '; } // If the user can view products - if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('IncludingProductWithTag'); @@ -658,7 +701,7 @@ if ($resql) { } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields if ($massactionbutton) { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); } @@ -667,6 +710,13 @@ if ($resql) { print ''."\n"; print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['sp.ref']['checked'])) { print ''; } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } if (!empty($arrayfields['s.town']['checked'])) { print ''; } @@ -796,26 +851,34 @@ if ($resql) { } // Status if (!empty($arrayfields['sp.fk_statut']['checked'])) { - print ''; } // Action column - print ''; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } print "\n"; // Fields title print ''; + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + } if (!empty($arrayfields['sp.ref']['checked'])) { print_liste_field_titre($arrayfields['sp.ref']['label'], $_SERVER["PHP_SELF"], 'sp.ref', '', $param, '', $sortfield, $sortorder); } if (!empty($arrayfields['s.nom']['checked'])) { print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], 's.nom', '', $param, '', $sortfield, $sortorder); } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], 's.name_alias', '', $param, '', $sortfield, $sortorder); + } if (!empty($arrayfields['s.town']['checked'])) { print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); } @@ -879,7 +942,9 @@ if ($resql) { if (!empty($arrayfields['sp.fk_statut']['checked'])) { print_liste_field_titre($arrayfields['sp.fk_statut']['label'], $_SERVER["PHP_SELF"], "sp.fk_statut", "", $param, '', $sortfield, $sortorder, 'right '); } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); + } print ''."\n"; $now = dol_now(); @@ -904,11 +969,23 @@ if ($resql) { // Company $companystatic->id = $obj->socid; $companystatic->name = $obj->name; + $companystatic->name_alias = $obj->alias; $companystatic->client = $obj->client; $companystatic->code_client = $obj->code_client; print ''; - + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['sp.ref']['checked'])) { print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; if (!$i) { $totalarray['nbfield']++; @@ -987,7 +1074,7 @@ if ($resql) { // Type ent if (!empty($arrayfields['typent.code']['checked'])) { print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } @@ -1172,6 +1261,17 @@ if ($resql) { // Show total line include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + // If no record found + if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; + } + $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); diff --git a/htdocs/supplier_proposal/note.php b/htdocs/supplier_proposal/note.php index 5a19a94b402..aa0ccc5276a 100644 --- a/htdocs/supplier_proposal/note.php +++ b/htdocs/supplier_proposal/note.php @@ -21,15 +21,16 @@ */ /** - * \file htdocs/comm/propal/note.php + * \file htdocs/supplier_proposal/note.php * \ingroup propal - * \brief Fiche d'information sur une proposition commerciale + * \brief Page to show notes of a supplier proposal request */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; -if (!empty($conf->projet->enabled)) { +if (!empty($conf->project->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page @@ -52,6 +53,8 @@ $result = restrictedArea($user, 'supplier_proposal', $id, 'supplier_proposal'); $object = new SupplierProposal($db); +$usercancreate = $user->hasRight("supplier_propal", "write"); + /* @@ -72,10 +75,6 @@ if (empty($reshook)) { /* * View */ -$title = $langs->trans('CommRequest')." - ".$langs->trans('Notes'); -$help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; -llxHeader('', $title, $help_url); - $form = new Form($db); if ($id > 0 || !empty($ref)) { @@ -88,6 +87,10 @@ if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref)) { $object->fetch_thirdparty(); + $title = $object->ref." - ".$langs->trans('Notes'); + $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; + llxHeader('', $title, $help_url); + $societe = new Societe($db); if ($societe->fetch($object->socid)) { $head = supplier_proposal_prepare_head($object); @@ -103,37 +106,25 @@ if ($id > 0 || !empty($ref)) { //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); + $morehtmlref .= $object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); - $morehtmlref .= '
    '.$langs->trans('Project').' '; - if ($user->rights->supplier_proposal->creer) { + $morehtmlref .= '
    '; + if ($usercancreate) { + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { - //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref .= ' : '; - } - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref .= ''; - $morehtmlref .= ''; - } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); } else { if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref .= ' : '.$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); if ($proj->title) { $morehtmlref .= ' - '.$proj->title; } - } else { - $morehtmlref .= ''; } } } diff --git a/htdocs/support/inc.php b/htdocs/support/inc.php index d5c92cade7b..3f372e97c1e 100644 --- a/htdocs/support/inc.php +++ b/htdocs/support/inc.php @@ -235,7 +235,10 @@ function pHeader($soutitre, $next, $action = 'none') // On force contenu dans format sortie header("Content-type: text/html; charset=".$conf->file->character_set_client); + + // Security options header("X-Content-Type-Options: nosniff"); + header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) print ''."\n"; print ''."\n"; diff --git a/htdocs/support/index.php b/htdocs/support/index.php index 7330c034aa7..e61fef41f23 100644 --- a/htdocs/support/index.php +++ b/htdocs/support/index.php @@ -77,17 +77,22 @@ print '
    '; -print '
    '; +print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -677,6 +727,11 @@ if ($resql) { print ''; print ''; + print ''; + print ''; - $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'supplier', 'search_status', 'minwidth75imp'); + print ''; + $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'supplier', 'search_status', 'search_status width100 onrightofpage'); print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -942,7 +1019,17 @@ if ($resql) { // Thirdparty if (!empty($arrayfields['s.nom']['checked'])) { print ''; - print $companystatic->getNomUrl(1, 'supplier'); + print $companystatic->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + print ''; + print $companystatic->name_alias; print ''; - if (count($typenArray) == 0) { + if (empty($typenArray) || !is_array($typenArray) || count($typenArray) == 0) { $typenArray = $formcompany->typent_array(1); } print $typenArray[$obj->typent_code]; @@ -1092,7 +1179,7 @@ if ($resql) { $userstatic->id = $obj->fk_user_author; $userstatic->login = $obj->login; - $userstatic->status = $obj->status; + $userstatic->status = $obj->ustatus; $userstatic->lastname = $obj->name; $userstatic->firstname = $obj->firstname; $userstatic->photo = $obj->photo; @@ -1148,15 +1235,17 @@ if ($resql) { } // Action column - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print '
    '.$langs->trans("NoRecordFound").'
    '; +print ''; print ''; print ''; @@ -141,17 +148,22 @@ print "\n"; print '
    '; // EMail support -print '
    '; -print ''; +print ''; +print ''; print ''; print ''; } @@ -4187,10 +4474,11 @@ print "
    \n"; print "\n"; -if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction == 'replace') { +if ($mode == 'replacesite' || $massaction == 'replace') { print '
    '; print ''; print ''; + print ''; print ''; @@ -4249,7 +4537,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = print '
    '; // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { print '
    '; print '
    '; print $langs->trans("Category"); @@ -4268,7 +4556,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = print '
    '; - if ($action == 'replacesiteconfirm') { + if ($mode == 'replacesite') { print ''."\n"; print '
    '; @@ -4280,18 +4568,21 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = $param = ''; $nbtotalofrecords = count($listofpages['list']); $num = $limit; - $permissiontodelete = $user->rights->website->delete; + $permissiontodelete = $user->hasRight('website', 'delete'); // List of mass actions available $arrayofmassactions = array(); - if ($user->rights->website->writephp && $searchkey) { - $arrayofmassactions['replace'] = $langs->trans("Replace"); + if ($user->hasRight('website', 'writephp') && $searchkey) { + $arrayofmassactions['replace'] = img_picto('', 'replacement', 'class="pictofixedwidth"').$langs->trans("Replace"); } - if ($user->rights->website->write) { - $arrayofmassactions['setcategory'] = $langs->trans("ClassifyInCategory"); + if ($user->hasRight('website', 'write')) { + $arrayofmassactions['setcategory'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("ClassifyInCategory"); + } + if ($user->hasRight('website', 'write')) { + $arrayofmassactions['delcategory'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("RemoveCategory"); } if ($permissiontodelete) { - $arrayofmassactions['predelete'] = ''.$langs->trans("Delete"); + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) { $arrayofmassactions = array(); @@ -4302,16 +4593,18 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = $massactionbutton .= $langs->trans("ReplaceString"); $massactionbutton .= ' '; $massactionbutton .= '
    '; - $massactionbutton .= '
    '; - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { // Get current categories $existing = $c->containing($answerrecord->id, Categorie::TYPE_WEBSITE_PAGE, 'object'); if (is_array($existing)) { @@ -4395,7 +4688,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm' || $massaction = print '
    '; print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip')); - print '
    '; @@ -106,7 +103,7 @@ if ($action == 'edit') { foreach ($arrayofparameters as $key => $val) { print '
    '; print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip')); - print ''.$conf->global->$key.'
    '.getDolGlobalString($key).'
    '; diff --git a/htdocs/zapier/class/api_zapier.class.php b/htdocs/zapier/class/api_zapier.class.php index 5bcab883238..56ab923435d 100644 --- a/htdocs/zapier/class/api_zapier.class.php +++ b/htdocs/zapier/class/api_zapier.class.php @@ -13,26 +13,27 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ -use Luracast\Restler\RestException; - -require_once DOL_DOCUMENT_ROOT.'/zapier/class/hook.class.php'; - /** * \file htdocs/zapier/class/api_zapier.class.php * \ingroup zapier * \brief File for API management of hook. */ +use Luracast\Restler\RestException; + +require_once DOL_DOCUMENT_ROOT.'/zapier/class/hook.class.php'; + + /** * API class for zapier hook * * @access protected * @class DolibarrApiAccess {@requires user,external} */ -class ZapierApi extends DolibarrApi +class Zapier extends DolibarrApi { /** * @var array $FIELDS Mandatory fields, checked when create and update object diff --git a/htdocs/zapier/class/hook.class.php b/htdocs/zapier/class/hook.class.php index d2e656d15f1..9b5b7335559 100644 --- a/htdocs/zapier/class/hook.class.php +++ b/htdocs/zapier/class/hook.class.php @@ -12,7 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -263,7 +263,7 @@ class Hook extends CommonObject if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { $this->fields['rowid']['visible'] = 0; } - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -635,27 +635,12 @@ class Hook extends CommonObject if ($this->db->num_rows($result)) { $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - if ($obj->fk_user_author) { - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - } - if ($obj->fk_user_valid) { - $vuser = new User($this->db); - $vuser->fetch($obj->fk_user_valid); - $this->user_validation = $vuser; - } - if ($obj->fk_user_cloture) { - $cluser = new User($this->db); - $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; - } - - $this->date_creation = $this->db->jdate($obj->datec); - $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } $this->db->free($result); diff --git a/htdocs/zapier/lib/zapier.lib.php b/htdocs/zapier/lib/zapier.lib.php index a92f2879b4d..5b6a3bd335a 100644 --- a/htdocs/zapier/lib/zapier.lib.php +++ b/htdocs/zapier/lib/zapier.lib.php @@ -12,7 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** @@ -52,7 +52,9 @@ function zapierAdminPrepareHead() //$this->tabs = array( // 'entity:-tabname:Title:@zapier:/zapier/mypage.php?id=__ID__' //); // to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'zapier'); + complete_head_from_modules($conf, $langs, null, $head, $h, 'zapier'); + + complete_head_from_modules($conf, $langs, null, $head, $h, 'zapier', 'remove'); return $head; } diff --git a/htdocs/zapier/lib/zapier_hook.lib.php b/htdocs/zapier/lib/zapier_hook.lib.php deleted file mode 100644 index 3d4228325e2..00000000000 --- a/htdocs/zapier/lib/zapier_hook.lib.php +++ /dev/null @@ -1,90 +0,0 @@ -. - */ - -/** - * \file htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php - * \ingroup mymodule - * \brief Library files with common functions for MyObject - */ - -/** - * Prepare array of tabs for MyObject - * - * @param MyObject $object MyObject - * @return array Array of tabs - */ -function myobjectPrepareHead($object) -{ - global $db, $langs, $conf; - - $langs->load("mymodule@mymodule"); - - $h = 0; - $head = array(); - - $head[$h][0] = dol_buildpath("/mymodule/myobject_card.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("Card"); - $head[$h][2] = 'card'; - $h++; - - if (isset($object->fields['note_public']) || isset($object->fields['note_private'])) { - $nbNote = 0; - if (!empty($object->note_private)) { - $nbNote++; - } - if (!empty($object->note_public)) { - $nbNote++; - } - $head[$h][0] = dol_buildpath('/mymodule/myobject_note.php', 1).'?id='.$object->id; - $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) { - $head[$h][1] .= ''.$nbNote.''; - } - $head[$h][2] = 'note'; - $h++; - } - - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->mymodule->dir_output."/myobject/".dol_sanitizeFileName($object->ref); - $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks = Link::count($db, $object->element, $object->id); - $head[$h][0] = dol_buildpath("/mymodule/myobject_document.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles + $nbLinks) > 0) { - $head[$h][1] .= ''.($nbFiles + $nbLinks).''; - } - $head[$h][2] = 'document'; - $h++; - - $head[$h][0] = dol_buildpath("/mymodule/myobject_agenda.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("Events"); - $head[$h][2] = 'agenda'; - $h++; - - // Show more tabs from modules - // Entries must be declared in modules descriptor with line - //$this->tabs = array( - // 'entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__' - //); // to add new tab - //$this->tabs = array( - // 'entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__' - //); // to remove a tab - complete_head_from_modules($conf, $langs, $object, $head, $h, 'myobject@mymodule'); - - return $head; -} diff --git a/phpstan.neon b/phpstan.neon index 02e47e753d7..129ca462921 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -103,6 +103,7 @@ parameters: - %currentWorkingDirectory%/htdocs/core/lib/donation.lib.php - %currentWorkingDirectory%/htdocs/core/lib/ecm.lib.php - %currentWorkingDirectory%/htdocs/core/lib/emailing.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/eventorganization.lib.php - %currentWorkingDirectory%/htdocs/core/lib/expedition.lib.php - %currentWorkingDirectory%/htdocs/core/lib/expensereport.lib.php - %currentWorkingDirectory%/htdocs/core/lib/fichinter.lib.php @@ -110,13 +111,17 @@ parameters: - %currentWorkingDirectory%/htdocs/core/lib/fiscalyear.lib.php #- %currentWorkingDirectory%/htdocs/core/lib/format_cards.lib.php - %currentWorkingDirectory%/htdocs/core/lib/fourn.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/ftp.lib.php - %currentWorkingDirectory%/htdocs/core/lib/functions.lib.php - %currentWorkingDirectory%/htdocs/core/lib/functions2.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/functions_ch.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/functionsnumtoword.lib.php - %currentWorkingDirectory%/htdocs/core/lib/geturl.lib.php - %currentWorkingDirectory%/htdocs/core/lib/holiday.lib.php - %currentWorkingDirectory%/htdocs/core/lib/hrm.lib.php - %currentWorkingDirectory%/htdocs/core/lib/images.lib.php - %currentWorkingDirectory%/htdocs/core/lib/import.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/intracommreport.lib.php - %currentWorkingDirectory%/htdocs/core/lib/invoice.lib.php - %currentWorkingDirectory%/htdocs/core/lib/invoice2.lib.php - %currentWorkingDirectory%/htdocs/core/lib/json.lib.php @@ -132,11 +137,13 @@ parameters: - %currentWorkingDirectory%/htdocs/core/lib/parsemd.lib.php - %currentWorkingDirectory%/htdocs/core/lib/payments.lib.php - %currentWorkingDirectory%/htdocs/core/lib/pdf.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/phpsessionindb.lib.php - %currentWorkingDirectory%/htdocs/core/lib/prelevement.lib.php - %currentWorkingDirectory%/htdocs/core/lib/price.lib.php - %currentWorkingDirectory%/htdocs/core/lib/product.lib.php - %currentWorkingDirectory%/htdocs/core/lib/project.lib.php - %currentWorkingDirectory%/htdocs/core/lib/propal.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/receiptprinter.lib.php - %currentWorkingDirectory%/htdocs/core/lib/reception.lib.php - %currentWorkingDirectory%/htdocs/core/lib/report.lib.php - %currentWorkingDirectory%/htdocs/core/lib/resource.lib.php @@ -155,6 +162,7 @@ parameters: - %currentWorkingDirectory%/htdocs/core/lib/usergroups.lib.php - %currentWorkingDirectory%/htdocs/core/lib/vat.lib.php - %currentWorkingDirectory%/htdocs/core/lib/website.lib.php + #- %currentWorkingDirectory%/htdocs/core/lib/website2.lib.php - %currentWorkingDirectory%/htdocs/core/lib/ws.lib.php - %currentWorkingDirectory%/htdocs/core/lib/xcal.lib.php featureToggles: diff --git a/qodana.yaml b/qodana.yaml new file mode 100644 index 00000000000..89cc459fdfa --- /dev/null +++ b/qodana.yaml @@ -0,0 +1,85 @@ +version: "1.0" +linter: jetbrains/qodana-php:2022.3-eap +failThreshold: 0 +profile: + name: qodana.recommended +exclude: + - name: All + paths: + - dev + - build + - doc + - documents + - node_modules + - test + - htdocs/custom + - htdocs/includes + - htdocs/install/doctemplates + - htdocs/modulebuilder/template/test/functionnal + - name: PhpIssetCanBeReplacedWithCoalesceInspection + - name: PhpRedundantOptionalArgumentInspection + - name: PhpLanguageLevelInspection + - name: PhpIncludeInspection + - name: HtmlWrongAttributeValue + - name: PhpUndefinedClassConstantInspection + - name: RegExpRedundantEscape + - name: PhpUnnecessaryLocalVariableInspection + - name: PhpUnusedParameterInspection + - name: PhpUnusedLocalVariableInspection + - name: PhpTernaryExpressionCanBeReplacedWithConditionInspection + - name: PhpSwitchStatementWitSingleBranchInspection + - name: PhpLoopCanBeReplacedWithImplodeInspection + - name: PhpArrayAccessCanBeReplacedWithForeachValueInspection + - name: PhpArrayPushWithOneElementInspection + - name: PhpCastIsUnnecessaryInspection + - name: PhpDeprecationInspection + - name: PhpStatementHasEmptyBodyInspection + - name: PhpConditionAlreadyCheckedInspection + - name: PhpExpressionResultUnusedInspection + - name: PhpUndefinedClassInspection + - name: RegExpSimplifiable + - name: PhpConcatenationWithEmptyStringCanBeInlinedInspection + - name: PhpConditionCanBeReplacedWithMinMaxCallInspection + - name: PhpArrayIsAlwaysEmptyInspection + - name: PhpParameterByRefIsNotUsedAsReferenceInspection + - name: PhpWrongStringConcatenationInspection + - name: PhpUnusedAliasInspection + - name: PhpUnusedPrivateMethodInspection + - name: PhpUnusedPrivateFieldInspection + - name: PhpExpressionAlwaysNullInspection + - name: PhpIfWithCommonPartsInspection + - name: PhpTernaryExpressionCanBeReducedToShortVersionInspection + - name: PhpExpressionWithSameOperandsInspection + - name: PhpInArrayCanBeReplacedWithComparisonInspection + - name: PhpUnusedAliasInspection + - name: PhpPossiblePolymorphicInvocationInspection + - name: PhpReturnValueOfMethodIsNeverUsedInspection + - name: PhpPregReplaceWithEmptyReplacementInspection + - name: PhpFieldImmediatelyRewrittenInspection + - name: PhpIllegalStringOffsetInspection + - name: PhpWrongForeachArgumentTypeInspection + - name: PhpRegExpRedundantModifierInspection + - name: PhpClassConstantAccessedViaChildClassInspection + - name: RegExpUnnecessaryNonCapturingGroup + - name: PhpPregMatchReplaceWithComparisonInspection + - name: PhpArrayWriteIsNotUsedInspection + - name: PhpUndefinedNamespaceInspection + - name: PhpArraySearchInBooleanContextInspection + - name: PhpLoopCanBeReplacedWithStrRepeatInspection + - name: PhpPropertyOnlyWrittenInspection + - name: PhpCoveredCharacterInClassInspection + - name: PhpSameParameterValueInspection + - name: PhpSillyAssignmentInspection + - name: PhpConditionCheckedByNextConditionInspection + - name: RegExpSingleCharAlternation + - name: PhpSuspiciousNameCombinationInspection + - name: PhpObjectFieldsAreOnlyWrittenInspection + - name: PhpMissingParentConstructorInspection + - name: PhpWriteAccessToReferencedArrayValueWithoutUnsetInspection + - name: PhpArrayUsedOnlyForWriteInspection + - name: PhpArrayIndexImmediatelyRewrittenInspection + - name: PhpParameterNameChangedDuringInheritanceInspection + - name: PhpDuplicateSwitchCaseBodyInspection + - name: PhpNestedDirNameCallsCanBeReplacedWithLevelParameterInspection + - name: PhpPointlessBooleanExpressionInConditionInspection + - name: PhpUndefinedMethodInspection \ No newline at end of file diff --git a/scripts/accountancy/export-thirdpartyaccount.php b/scripts/accountancy/export-thirdpartyaccount.php index a8a4363ba5c..d7793c3ced1 100755 --- a/scripts/accountancy/export-thirdpartyaccount.php +++ b/scripts/accountancy/export-thirdpartyaccount.php @@ -45,7 +45,7 @@ if (!$user->admin) { // Date range $year = GETPOST("year"); if (empty($year)) { - $year_current = strftime("%Y", dol_now()); + $year_current = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); $month_current = strftime("%m", dol_now()); $year_start = $year_current; } else { diff --git a/scripts/cron/cron_run_jobs.php b/scripts/cron/cron_run_jobs.php index 25ea4b4d415..c7a9d19fb5c 100755 --- a/scripts/cron/cron_run_jobs.php +++ b/scripts/cron/cron_run_jobs.php @@ -81,6 +81,8 @@ $userlogin = $argv[2]; $version = DOL_VERSION; $error = 0; +$hookmanager->initHooks(array('cli')); + /* * Main @@ -90,7 +92,7 @@ $error = 0; $now = dol_now(); @set_time_limit(0); -print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." ***** userlogin=".$userlogin." ***** ".dol_print_date($now, 'dayhourrfc')." *****\n"; +print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." - userlogin=".$userlogin." - ".dol_print_date($now, 'dayhourrfc')." *****\n"; // Check module cron is activated if (empty($conf->cron->enabled)) { @@ -162,6 +164,10 @@ $user->getrights(); if (isset($argv[3]) && $argv[3]) { $id = $argv[3]; } +$forcequalified = 0; +if (isset($argv[4]) && $argv[4] == '--force') { + $forcequalified = 1; +} // create a jobs object $object = new Cronjob($db); @@ -176,32 +182,24 @@ if (!empty($id)) { $filter['t.rowid'] = $id; } -$result = $object->fetch_all('ASC,ASC,ASC', 't.priority,t.entity,t.rowid', 0, 0, 1, $filter, 0); +$result = $object->fetchAll('ASC,ASC,ASC', 't.priority,t.entity,t.rowid', 0, 0, 1, $filter, 0); if ($result < 0) { echo "Error: ".$object->error; dol_syslog("cron_run_jobs.php fetch Error ".$object->error, LOG_ERR); exit(-1); } -$qualifiedjobs = array(); -foreach ($object->lines as $val) { - if (!verifCond($val->test)) { - continue; - } - $qualifiedjobs[] = $val; -} - // TODO Duplicate code. This sequence of code must be shared with code into public/cron/cron_run_jobs.php php page. -$nbofjobs = count($qualifiedjobs); +$nbofjobs = count($object->lines); $nbofjobslaunchedok = 0; $nbofjobslaunchedko = 0; -if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) { +if (is_array($object->lines) && (count($object->lines) > 0)) { $savconf = dol_clone($conf); // Loop over job - foreach ($qualifiedjobs as $line) { + foreach ($object->lines as $line) { dol_syslog("cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label, LOG_DEBUG); echo "cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label; @@ -243,8 +241,12 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) { } } + if (!verifCond($line->test)) { + continue; + } + //If date_next_jobs is less of current date, execute the program, and store the execution time of the next execution in database - if (($line->datenextrun < $now) && (empty($line->datestart) || $line->datestart <= $now) && (empty($line->dateend) || $line->dateend >= $now)) { + if ($forcequalified || (($line->datenextrun < $now) && (empty($line->datestart) || $line->datestart <= $now) && (empty($line->dateend) || $line->dateend >= $now))) { echo " - qualified"; dol_syslog("cron_run_jobs.php line->datenextrun:".dol_print_date($line->datenextrun, 'dayhourrfc')." line->datestart:".dol_print_date($line->datestart, 'dayhourrfc')." line->dateend:".dol_print_date($line->dateend, 'dayhourrfc')." now:".dol_print_date($now, 'dayhourrfc')); @@ -311,7 +313,7 @@ exit(0); */ function usage($path, $script_file) { - print "Usage: ".$script_file." securitykey userlogin|'firstadmin' [cronjobid]\n"; + print "Usage: ".$script_file." securitykey userlogin|'firstadmin' [cronjobid] [--force]\n"; print "The script return 0 when everything worked successfully.\n"; print "\n"; print "On Linux system, you can have cron jobs ran automatically by adding an entry into cron.\n"; @@ -319,4 +321,6 @@ function usage($path, $script_file) print "30 3 * * * ".$path.$script_file." securitykey userlogin > ".DOL_DATA_ROOT."/".$script_file.".log\n"; print "For example, to run pending tasks every 5mn, you can add this line:\n"; print "*/5 * * * * ".$path.$script_file." securitykey userlogin > ".DOL_DATA_ROOT."/".$script_file.".log\n"; + print "\n"; + print "The option --force allow to bypass the check on date of execution so job will be executed even if date is not yet reached.\n"; } diff --git a/scripts/emailings/mailing-send.php b/scripts/emailings/mailing-send.php index f427e42d8cb..ec1fbd293d6 100755 --- a/scripts/emailings/mailing-send.php +++ b/scripts/emailings/mailing-send.php @@ -80,7 +80,7 @@ if (empty($conf->global->MAILING_LIMIT_SENDBYCLI)) { print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n"; if (!empty($conf->global->MAILING_DELAY)) { - print 'A delay of '.((float) $conf->global->MAILING_DELAY * 1000000).' millisecond has been set between each email'."\n"; + print 'A delay of '.((float) $conf->global->MAILING_DELAY * 1000000).' seconds has been set between each email'."\n"; } if ($conf->global->MAILING_LIMIT_SENDBYCLI == '-1') { @@ -307,7 +307,8 @@ if ($resql) { } // Fabrication du mail $trackid = 'emailing-'.$obj->fk_mailing.'-'.$obj->rowid; - $mail = new CMailFile($newsubject, $sendto, $from, $newmessage, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $errorsto, $arr_css, $trackid, $moreinheader, 'emailing'); + $upload_dir_tmp = $upload_dir; + $mail = new CMailFile($newsubject, $sendto, $from, $newmessage, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $errorsto, $arr_css, $trackid, $moreinheader, 'emailing', '', $upload_dir_tmp); if ($mail->error) { $res = 0; diff --git a/scripts/members/sync_members_types_ldap2dolibarr.php b/scripts/members/sync_members_types_ldap2dolibarr.php index 12a83633725..58eefbad69a 100755 --- a/scripts/members/sync_members_types_ldap2dolibarr.php +++ b/scripts/members/sync_members_types_ldap2dolibarr.php @@ -21,9 +21,9 @@ */ /** - * \file scripts/members/sync_members_types_ldap2dolibarr.php + * \file scripts/members/sync_members_types_ldap2dolibarr.php * \ingroup ldap member - * \brief Script to update members types into Dolibarr from LDAP + * \brief Script to update members types into Dolibarr from LDAP */ if (!defined('NOSESSION')) { @@ -139,7 +139,7 @@ if ($result >= 0) { // Warning $ldapuser has a key in lowercase foreach ($ldaprecords as $key => $ldapgroup) { $membertype = new AdherentType($db); - $membertype->fetch('', $ldapgroup[$conf->global->LDAP_KEY_MEMBERS_TYPES]); + $membertype->fetch($ldapgroup[$conf->global->LDAP_KEY_MEMBERS_TYPES]); $membertype->label = $ldapgroup[$conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME]; $membertype->description = $ldapgroup[$conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION]; $membertype->entity = $conf->entity; diff --git a/scripts/user/migrate_picture_path.php b/scripts/user/migrate_picture_path.php index dd395dc0629..d64c843767f 100755 --- a/scripts/user/migrate_picture_path.php +++ b/scripts/user/migrate_picture_path.php @@ -15,7 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ /** diff --git a/scripts/user/sync_groups_ldap2dolibarr.php b/scripts/user/sync_groups_ldap2dolibarr.php index 67c14a4ee5d..2fe89b92ccb 100755 --- a/scripts/user/sync_groups_ldap2dolibarr.php +++ b/scripts/user/sync_groups_ldap2dolibarr.php @@ -176,17 +176,17 @@ if ($result >= 0) { // 1 - Association des utilisateurs du groupe LDAP au groupe Dolibarr $userList = array(); $userIdList = array(); - foreach ($ldapgroup[$conf->global->LDAP_GROUP_FIELD_GROUPMEMBERS] as $key => $userdn) { - if ($key === 'count') { + foreach ($ldapgroup[getDolGlobalString('LDAP_GROUP_FIELD_GROUPMEMBERS')] as $tmpkey => $userdn) { + if ($tmpkey === 'count') { continue; } if (empty($userList[$userdn])) { // Récupération de l'utilisateur // Schéma rfc2307: les membres sont listés dans l'attribut memberUid sous form de login uniquement - if ($conf->global->LDAP_GROUP_FIELD_GROUPMEMBERS === 'memberUid') { + if (getDolGlobalString('LDAP_GROUP_FIELD_GROUPMEMBERS') === 'memberUid') { $userKey = array($userdn); } else { // Pour les autres schémas, les membres sont listés sous forme de DN complets $userFilter = explode(',', $userdn); - $userKey = $ldap->getAttributeValues('('.$userFilter[0].')', $conf->global->LDAP_KEY_USERS); + $userKey = $ldap->getAttributeValues('('.$userFilter[0].')', getDolGlobalString('LDAP_KEY_USERS')); } if (!is_array($userKey)) { continue; @@ -194,9 +194,9 @@ if ($result >= 0) { $fuser = new User($db); - if ($conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_SID) { + if (getDolGlobalString('LDAP_KEY_USERS') == getDolGlobalString('LDAP_FIELD_SID')) { $fuser->fetch('', '', $userKey[0]); // Chargement du user concerné par le SID - } elseif ($conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_LOGIN) { + } elseif (getDolGlobalString('LDAP_KEY_USERS') == getDolGlobalString('LDAP_FIELD_LOGIN')) { $fuser->fetch('', $userKey[0]); // Chargement du user concerné par le login } diff --git a/test/phpunit/AccountingAccountTest.php b/test/phpunit/AccountingAccountTest.php index 52efe3a0147..97b067ff454 100644 --- a/test/phpunit/AccountingAccountTest.php +++ b/test/phpunit/AccountingAccountTest.php @@ -78,12 +78,12 @@ class AccountingAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. - if (empty($conf->accounting->enabled)) { + if (!isModEnabled('accounting')) { print __METHOD__." module accouting must be enabled.\n"; exit(-1); } @@ -95,7 +95,7 @@ class AccountingAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -108,7 +108,7 @@ class AccountingAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class AccountingAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ActionCommTest.php b/test/phpunit/ActionCommTest.php index b739b387a74..2499841d671 100644 --- a/test/phpunit/ActionCommTest.php +++ b/test/phpunit/ActionCommTest.php @@ -78,7 +78,7 @@ class ActionCommTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -95,7 +95,7 @@ class ActionCommTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -108,7 +108,7 @@ class ActionCommTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class ActionCommTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/AdherentTest.php b/test/phpunit/AdherentTest.php index 0e4956e3a12..a3e55063cd4 100644 --- a/test/phpunit/AdherentTest.php +++ b/test/phpunit/AdherentTest.php @@ -80,19 +80,19 @@ class AdherentTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. - if (! empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { + if (!empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { print "\n".__METHOD__." Company must be setup to have name-firstname in order 'Firstname Lastname'\n"; die(1); } - if (! empty($conf->global->MAIN_MODULE_LDAP)) { + if (!empty($conf->global->MAIN_MODULE_LDAP)) { print "\n".__METHOD__." module LDAP must be disabled.\n"; die(1); } - if (! empty($conf->global->MAIN_MODULE_MAILMANSPIP)) { + if (!empty($conf->global->MAIN_MODULE_MAILMANSPIP)) { print "\n".__METHOD__." module MailmanSpip must be disabled.\n"; die(1); } @@ -104,7 +104,7 @@ class AdherentTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -117,7 +117,7 @@ class AdherentTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -132,7 +132,7 @@ class AdherentTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/AdminLibTest.php b/test/phpunit/AdminLibTest.php index 9ce135da263..4df1a6933e1 100644 --- a/test/phpunit/AdminLibTest.php +++ b/test/phpunit/AdminLibTest.php @@ -46,6 +46,7 @@ $conf->global->MAIN_DISABLE_ALL_MAILS=1; */ class AdminLibTest extends PHPUnit\Framework\TestCase { + protected $backupGlobalsBlacklist = array('conf', 'user', 'langs', 'db'); protected $savconf; protected $savuser; protected $savlangs; @@ -69,6 +70,7 @@ class AdminLibTest extends PHPUnit\Framework\TestCase $this->savdb=$db; print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; print "\n"; } @@ -78,7 +80,7 @@ class AdminLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +93,7 @@ class AdminLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +106,7 @@ class AdminLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +121,7 @@ class AdminLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -165,6 +167,9 @@ class AdminLibTest extends PHPUnit\Framework\TestCase require_once dirname(__FILE__).'/../../htdocs/core/modules/modExpenseReport.class.php'; print "Enable module modExpenseReport"; $moduledescriptor=new modExpenseReport($db); + + $result = $moduledescriptor->remove(); + $result = $moduledescriptor->init(); print __METHOD__." result=".$result."\n"; $this->assertEquals(1, $result); @@ -173,6 +178,9 @@ class AdminLibTest extends PHPUnit\Framework\TestCase require_once dirname(__FILE__).'/../../htdocs/core/modules/modApi.class.php'; print "Enable module modAPI"; $moduledescriptor=new modApi($db); + + $result = $moduledescriptor->remove(); + $result = $moduledescriptor->init(); print __METHOD__." result=".$result."\n"; $this->assertEquals(1, $result); diff --git a/test/phpunit/AllTests.php b/test/phpunit/AllTests.php index 5979adabcec..1d57db17ffc 100644 --- a/test/phpunit/AllTests.php +++ b/test/phpunit/AllTests.php @@ -41,11 +41,11 @@ if (empty($conf->adherent->enabled)) { print "Error: Module member must be enabled to have significant results.\n"; exit(1); } -if (! empty($conf->ldap->enabled)) { +if (!empty($conf->ldap->enabled)) { print "Error: LDAP module should not be enabled.\n"; exit(1); } -if (! empty($conf->google->enabled)) { +if (!empty($conf->google->enabled)) { print "Warning: Google module should not be enabled.\n"; } if (empty($user->id)) { @@ -104,6 +104,8 @@ class AllTests $suite->addTestSuite('XCalLibTest'); // Rules into source files content + require_once dirname(__FILE__).'/RepositoryTest.php'; + $suite->addTestSuite('RepositoryTest'); require_once dirname(__FILE__).'/LangTest.php'; $suite->addTestSuite('LangTest'); require_once dirname(__FILE__).'/CodingSqlTest.php'; diff --git a/test/phpunit/BOMTest.php b/test/phpunit/BOMTest.php index 1d8a6cfbfd2..c56afb7efa8 100644 --- a/test/phpunit/BOMTest.php +++ b/test/phpunit/BOMTest.php @@ -79,7 +79,7 @@ class BOMTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class BOMTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class BOMTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class BOMTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/BankAccountTest.php b/test/phpunit/BankAccountTest.php index 3e229d3b41c..8f1169b6cbd 100644 --- a/test/phpunit/BankAccountTest.php +++ b/test/phpunit/BankAccountTest.php @@ -28,6 +28,7 @@ global $conf,$user,$langs,$db; //require_once 'PHPUnit/Autoload.php'; require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; require_once dirname(__FILE__).'/../../htdocs/compta/bank/class/account.class.php'; +require_once dirname(__FILE__).'/../../htdocs/core/lib/bank.lib.php'; if (empty($user->id)) { print "Load permissions for admin user nb 1\n"; @@ -80,7 +81,7 @@ class BankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -93,7 +94,7 @@ class BankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +107,7 @@ class BankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +123,7 @@ class BankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -205,6 +206,19 @@ class BankAccountTest extends PHPUnit\Framework\TestCase //print __METHOD__." localobject->date_creation=".$localobject->date_creation."\n"; $this->assertEquals(1, $result); + // Test checkIbanForAccount for FR account + $result = checkIbanForAccount($localobject); + print __METHOD__." checkIbanForAccount(".$localobject->iban.") = ".$result."\n"; + $this->assertTrue($result); + + // Test checkIbanForAccount for CI account + $localobject2=new Account($this->savdb); + $localobject2->country = 'CI'; + $localobject2->iban = 'CI77A12312341234123412341234'; + $result = checkIbanForAccount($localobject2); + print __METHOD__." checkIbanForAccount(".$localobject2->iban.") = ".$result."\n"; + $this->assertTrue($result); + return $localobject->id; } diff --git a/test/phpunit/BarcodeTest.php b/test/phpunit/BarcodeTest.php index 132ba8c1126..67cc013c50b 100644 --- a/test/phpunit/BarcodeTest.php +++ b/test/phpunit/BarcodeTest.php @@ -81,7 +81,7 @@ class BarcodeTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -94,7 +94,7 @@ class BarcodeTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -107,7 +107,7 @@ class BarcodeTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -123,7 +123,7 @@ class BarcodeTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/BonPrelevementTest.php b/test/phpunit/BonPrelevementTest.php index 314640aefda..ce5a4ae1bd8 100644 --- a/test/phpunit/BonPrelevementTest.php +++ b/test/phpunit/BonPrelevementTest.php @@ -80,7 +80,7 @@ class BonPrelevementTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -93,7 +93,7 @@ class BonPrelevementTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class BonPrelevementTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class BonPrelevementTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/BuildDocTest.php b/test/phpunit/BuildDocTest.php index 18a737ec50b..bf61ba38fbd 100644 --- a/test/phpunit/BuildDocTest.php +++ b/test/phpunit/BuildDocTest.php @@ -108,7 +108,7 @@ class BuildDocTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -121,7 +121,7 @@ class BuildDocTest extends PHPUnit\Framework\TestCase if (! $conf->propal->enabled) { print __METHOD__." propal module not enabled\n"; die(1); } - if (! $conf->projet->enabled) { + if (! $conf->project->enabled) { print __METHOD__." project module not enabled\n"; die(1); } if (! $conf->expedition->enabled) { @@ -144,7 +144,7 @@ class BuildDocTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -157,7 +157,7 @@ class BuildDocTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -172,7 +172,7 @@ class BuildDocTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -377,7 +377,7 @@ class BuildDocTest extends PHPUnit\Framework\TestCase $user=$this->savuser; $langs=$this->savlangs; $db=$this->savdb; - $conf->projet->dir_output.='/temp'; + $conf->project->dir_output.='/temp'; $localobject=new Project($this->savdb); $localobject->initAsSpecimen(); diff --git a/test/phpunit/CMailFileTest.php b/test/phpunit/CMailFileTest.php index 7e4b5dbacb7..729aa4b4c7f 100644 --- a/test/phpunit/CMailFileTest.php +++ b/test/phpunit/CMailFileTest.php @@ -78,7 +78,7 @@ class CMailFileTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class CMailFileTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class CMailFileTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class CMailFileTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CategorieTest.php b/test/phpunit/CategorieTest.php index 67e7f937267..3bd870914e3 100644 --- a/test/phpunit/CategorieTest.php +++ b/test/phpunit/CategorieTest.php @@ -79,7 +79,7 @@ class CategorieTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class CategorieTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class CategorieTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class CategorieTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ChargeSocialesTest.php b/test/phpunit/ChargeSocialesTest.php index 705d21ed95d..14a9fabc9ae 100644 --- a/test/phpunit/ChargeSocialesTest.php +++ b/test/phpunit/ChargeSocialesTest.php @@ -78,7 +78,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CodingPhpTest.php b/test/phpunit/CodingPhpTest.php index bff78d47b94..668ad5aed29 100644 --- a/test/phpunit/CodingPhpTest.php +++ b/test/phpunit/CodingPhpTest.php @@ -110,7 +110,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -123,7 +123,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -136,7 +136,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -152,13 +152,13 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } /** - * testSql + * testPHP * * @return string */ @@ -171,13 +171,15 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase $db=$this->savdb; include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $filesarray = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, '\.php', null, 'fullname', SORT_ASC, 0, 0, '', 1); - //$filesarray = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, '\.php', null, 'fullname'); + $filesarray = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, '\.php', null, 'fullname', SORT_ASC, 0, 1, '', 1); foreach ($filesarray as $key => $file) { if (preg_match('/\/htdocs\/includes\//', $file['fullname'])) { continue; } + if (preg_match('/\/htdocs\/install\/doctemplates\/websites\//', $file['fullname'])) { + continue; + } if (preg_match('/\/htdocs\/custom\//', $file['fullname'])) { continue; } @@ -198,7 +200,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase || preg_match('/boxes\/box_/', $file['relativename']) || preg_match('/modules\/.*\/doc\/(doc|pdf)_/', $file['relativename']) || preg_match('/modules\/(import|mailings|printing)\//', $file['relativename']) - || in_array($file['name'], array('modules_boxes.php', 'rapport.pdf.php', 'TraceableDB.php'))) { + || in_array($file['name'], array('modules_boxes.php', 'TraceableDB.php'))) { // Check into Class files if (! in_array($file['name'], array( 'api.class.php', @@ -247,6 +249,20 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase } } + // Check we don't miss top_httphead() into any ajax pages + if (preg_match('/ajax\//', $file['relativename'])) { + print "Analyze ajax page ".$file['relativename']."\n"; + $ok=true; + $matches=array(); + preg_match_all('/top_httphead/', $filecontent, $matches, PREG_SET_ORDER); + if (count($matches) == 0) { + $ok=false; + } + //print __METHOD__." Result for checking we don't have non escaped string in sql requests for file ".$file."\n"; + $this->assertTrue($ok, 'Did not find top_httphead into the ajax page '.$file['relativename']); + //exit; + } + // Check if a var_dump has been forgotten if (!preg_match('/test\/phpunit/', $file['fullname'])) { $ok=true; @@ -329,7 +345,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase //if ($reg[0] != 'db') $ok=false; } //print __METHOD__." Result for checking we don't have non escaped string in sql requests for file ".$file."\n"; - $this->assertTrue($ok, 'Found a forged SQL string that mix on same line the use of \' for PHP string and PHP variables into file '.$file['relativename'].' Use " to forge PHP string like this: $sql = "SELET ".$myvar...'); + $this->assertTrue($ok, 'Found a forged SQL string that mix on same line the use of \' for PHP string and PHP variables into file '.$file['relativename'].' Use " to forge PHP string like this: $sql = "SELECT ".$myvar...'); //exit; // Check that forged sql string is using ' instead of " as string PHP quotes @@ -398,7 +414,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase $matches=array(); preg_match_all('/(\$sql|SET\s|WHERE\s|INSERT\s|VALUES\s|VALUES\().+\s*\'\s*\.\s*\$(.........)/', $filecontent, $matches, PREG_SET_ORDER); foreach ($matches as $key => $val) { - if (! in_array($val[2], array('this->db-', 'db->prefi', 'db->sanit', 'conf->ent', 'key : \'\')', 'key])."\')', 'excludefi', 'regexstri', ''))) { + if (! in_array($val[2], array('this->db-', 'db->prefi', 'db->sanit', 'dbs->pref', 'dbs->sani', 'conf->ent', 'key : \'\')', 'key])."\')', 'excludefi', 'regexstri', ''))) { $ok=false; var_dump($matches); break; @@ -463,8 +479,10 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase foreach ($matches as $key => $val) { //var_dump($val); if (!in_array($val[1], array( - "'replacestring'", "'htmlheader'", "'WEBSITE_HTML_HEADER'", "'WEBSITE_CSS_INLINE'", "'WEBSITE_JS_INLINE'", "'WEBSITE_MANIFEST_JSON'", "'PAGE_CONTENT'", "'WEBSITE_README'", - "'search_status'", '"mysqldump"', '"postgresqldump"', "'db_pass_root'", "'db_pass'", '"pass"', '"pass1"', '"pass2"', '"password"', "'password'", '"MAIN_MAIL_SMTPS_PW"'))) { + "'replacestring'", "'htmlheader'", "'WEBSITE_HTML_HEADER'", "'WEBSITE_CSS_INLINE'", "'WEBSITE_JS_INLINE'", "'WEBSITE_MANIFEST_JSON'", "'PAGE_CONTENT'", "'WEBSITE_README'", "'WEBSITE_LICENSE'", + '"mysqldump"', '"postgresqldump"', + "'db_pass_root'", "'db_pass'", '"pass"', '"pass1"', '"pass2"', '"password"', "'password'", + '"MAIN_MAIL_SMTPS_PW"', '"MAIN_MAIL_SMTPS_PW_EMAILING"', '"MAIN_MAIL_SMTPS_PW_TICKET"'))) { $ok=false; break; } @@ -513,7 +531,7 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase $this->assertTrue($ok, 'Found a forbidden string sequence into '.$file['relativename'].' : name="token" value="\'.$_SESSION[..., you must use a newToken() instead of $_SESSION[\'newtoken\'].'); - // Test we don't have @var array( + // Test we don't have preg_grep with a param without preg_quote $ok=true; $matches=array(); preg_match_all('/preg_grep\(.*\$/', $filecontent, $matches, PREG_SET_ORDER); @@ -526,6 +544,26 @@ class CodingPhpTest extends PHPUnit\Framework\TestCase $this->assertTrue($ok, 'Found a preg_grep with a param that is a $var but without preg_quote in file '.$file['relativename'].'.'); + // Test we don't have empty($user->hasRight + $ok=true; + $matches=array(); + preg_match_all('/empty\(\$user->hasRight/', $filecontent, $matches, PREG_SET_ORDER); + foreach ($matches as $key => $val) { + $ok=false; + break; + } + $this->assertTrue($ok, 'Found code empty($user->hasRight in file '.$file['relativename'].'. empty() must not be used with hasRight.'); + + // Test we don't have empty(DolibarrApiAccess::$user->hasRight + $ok=true; + $matches=array(); + preg_match_all('/empty\(DolibarrApiAccess::\$user->hasRight/', $filecontent, $matches, PREG_SET_ORDER); + foreach ($matches as $key => $val) { + $ok=false; + break; + } + $this->assertTrue($ok, 'Found code empty(DolibarrApiAccess::$user->hasRight in file '.$file['relativename'].'. empty() must not be used with hasRight.'); + // Test we don't have @var array( $ok=true; $matches=array(); diff --git a/test/phpunit/CodingSqlTest.php b/test/phpunit/CodingSqlTest.php index 96ae1f61ab0..00c7a5aebae 100644 --- a/test/phpunit/CodingSqlTest.php +++ b/test/phpunit/CodingSqlTest.php @@ -110,7 +110,7 @@ class CodingSqlTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -123,7 +123,7 @@ class CodingSqlTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -136,7 +136,7 @@ class CodingSqlTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -152,7 +152,7 @@ class CodingSqlTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -193,10 +193,10 @@ class CodingSqlTest extends PHPUnit\Framework\TestCase $result=strpos($filecontent, '"'); if ($result) { - $result=(! strpos($filecontent, '["') && ! strpos($filecontent, '{"')); + $result=(! strpos($filecontent, '["') && ! strpos($filecontent, '{"') && ! strpos($filecontent, '("')); } //print __METHOD__." Result for checking we don't have double quote = ".$result."\n"; - $this->assertTrue($result===false, 'Found double quote that is not [" neither {" (used for json content) into '.$file.'. Bad.'); + $this->assertTrue($result===false, 'Found double quote that is not [" neither {" (used for json content) neither (" (used for content with string like isModEnabled("")) into '.$file.'. Bad.'); $result=strpos($filecontent, 'int('); //print __METHOD__." Result for checking we don't have 'int(' instead of 'integer' = ".$result."\n"; diff --git a/test/phpunit/CommandeFournisseurTest.php b/test/phpunit/CommandeFournisseurTest.php index 5240083512b..7d00f464665 100644 --- a/test/phpunit/CommandeFournisseurTest.php +++ b/test/phpunit/CommandeFournisseurTest.php @@ -80,7 +80,7 @@ class CommandeFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -93,7 +93,7 @@ class CommandeFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class CommandeFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +122,7 @@ class CommandeFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CommandeTest.php b/test/phpunit/CommandeTest.php index 064c205c0e9..cb439fe2c84 100644 --- a/test/phpunit/CommandeTest.php +++ b/test/phpunit/CommandeTest.php @@ -78,7 +78,7 @@ class CommandeTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -95,7 +95,7 @@ class CommandeTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -108,7 +108,7 @@ class CommandeTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class CommandeTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CommonInvoiceTest.php b/test/phpunit/CommonInvoiceTest.php index f4cfaefb809..1aed7c4326b 100644 --- a/test/phpunit/CommonInvoiceTest.php +++ b/test/phpunit/CommonInvoiceTest.php @@ -78,7 +78,7 @@ class CommonInvoiceTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class CommonInvoiceTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class CommonInvoiceTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class CommonInvoiceTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CommonObjectTest.php b/test/phpunit/CommonObjectTest.php index 7a01f750eef..97711832291 100644 --- a/test/phpunit/CommonObjectTest.php +++ b/test/phpunit/CommonObjectTest.php @@ -79,7 +79,7 @@ class CommonObjectTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class CommonObjectTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class CommonObjectTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class CommonObjectTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CompanyBankAccountTest.php b/test/phpunit/CompanyBankAccountTest.php index 8b78712209f..afdc040493e 100644 --- a/test/phpunit/CompanyBankAccountTest.php +++ b/test/phpunit/CompanyBankAccountTest.php @@ -78,7 +78,7 @@ class CompanyBankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class CompanyBankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class CompanyBankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class CompanyBankAccountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CompanyLibTest.php b/test/phpunit/CompanyLibTest.php index a2a83ee70a7..39b8109b3a3 100644 --- a/test/phpunit/CompanyLibTest.php +++ b/test/phpunit/CompanyLibTest.php @@ -78,7 +78,7 @@ class CompanyLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class CompanyLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class CompanyLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class CompanyLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ContactTest.php b/test/phpunit/ContactTest.php index 1f8977f6919..e3f76ad57d0 100644 --- a/test/phpunit/ContactTest.php +++ b/test/phpunit/ContactTest.php @@ -85,7 +85,7 @@ class ContactTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -99,7 +99,7 @@ class ContactTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -112,7 +112,7 @@ class ContactTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -127,7 +127,7 @@ class ContactTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ContratTest.php b/test/phpunit/ContratTest.php index cd21427eba7..e834255ab9a 100644 --- a/test/phpunit/ContratTest.php +++ b/test/phpunit/ContratTest.php @@ -78,7 +78,7 @@ class ContratTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class ContratTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class ContratTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class ContratTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/CoreTest.php b/test/phpunit/CoreTest.php index 87f3a3940f4..8ac448fa15e 100644 --- a/test/phpunit/CoreTest.php +++ b/test/phpunit/CoreTest.php @@ -101,7 +101,7 @@ class CoreTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -114,7 +114,7 @@ class CoreTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -127,7 +127,7 @@ class CoreTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -142,7 +142,7 @@ class CoreTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/DateLibTest.php b/test/phpunit/DateLibTest.php index c40d9dabbfa..6f50e5b3085 100644 --- a/test/phpunit/DateLibTest.php +++ b/test/phpunit/DateLibTest.php @@ -85,7 +85,7 @@ class DateLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -98,7 +98,7 @@ class DateLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -111,7 +111,7 @@ class DateLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -126,7 +126,7 @@ class DateLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -362,11 +362,22 @@ class DateLibTest extends PHPUnit\Framework\TestCase $langs=$this->savlangs; $db=$this->savdb; + // Check %Y-%m-%d %H:%M:%S format + $result=dol_print_date('1970-01-01', '%Y-%m-%d %H:%M:%S', true); // A case for compatibility check + print __METHOD__." result=".$result."\n"; + $this->assertEquals('1970-01-01 00:00:00', $result); + + // Check %Y-%m-%d %H:%M:%S format $result=dol_print_date(0, '%Y-%m-%d %H:%M:%S', true); print __METHOD__." result=".$result."\n"; $this->assertEquals('1970-01-01 00:00:00', $result); + // Same with T and Z + $result=dol_print_date(0, '%Y-%m-%dT%H:%M:%SZ', true); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('1970-01-01T00:00:00Z', $result); + // Check %Y-%m-%d %H:%M:%S format $result=dol_print_date(16725225600, '%Y-%m-%d %H:%M:%S', true); // http://www.epochconverter.com/ print __METHOD__." result=".$result."\n"; diff --git a/test/phpunit/DateLibTzFranceTest.php b/test/phpunit/DateLibTzFranceTest.php index 0db809be2f7..b855b240648 100644 --- a/test/phpunit/DateLibTzFranceTest.php +++ b/test/phpunit/DateLibTzFranceTest.php @@ -78,7 +78,7 @@ class DateLibTzFranceTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -99,7 +99,7 @@ class DateLibTzFranceTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -112,7 +112,7 @@ class DateLibTzFranceTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -127,7 +127,7 @@ class DateLibTzFranceTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/DiscountTest.php b/test/phpunit/DiscountTest.php index 5841ba59c37..ec761a14316 100644 --- a/test/phpunit/DiscountTest.php +++ b/test/phpunit/DiscountTest.php @@ -78,7 +78,7 @@ class DiscountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class DiscountTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class DiscountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class DiscountTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/EmailCollectorTest.php b/test/phpunit/EmailCollectorTest.php index da77825b3b9..08652ffd2be 100644 --- a/test/phpunit/EmailCollectorTest.php +++ b/test/phpunit/EmailCollectorTest.php @@ -80,7 +80,7 @@ class EmailCollectorTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -93,7 +93,7 @@ class EmailCollectorTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class EmailCollectorTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +122,7 @@ class EmailCollectorTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/EntrepotTest.php b/test/phpunit/EntrepotTest.php index 691b3039744..8ee0c537f8a 100644 --- a/test/phpunit/EntrepotTest.php +++ b/test/phpunit/EntrepotTest.php @@ -78,7 +78,7 @@ class EntrepotTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -96,7 +96,7 @@ class EntrepotTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -109,7 +109,7 @@ class EntrepotTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class EntrepotTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/EvalMathTest.php b/test/phpunit/EvalMathTest.php new file mode 100644 index 00000000000..885b80233c7 --- /dev/null +++ b/test/phpunit/EvalMathTest.php @@ -0,0 +1,151 @@ + + * Copyright (C) 2022 Quatadah Nasdami + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file test/phpunit/InventoryTest.php + * \ingroup test + * \brief PHPUnit test + * \remarks To run this script as CLI: phpunit filename.php + */ + +global $conf,$user,$langs,$db; +require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; +require_once dirname(__FILE__).'/../../htdocs/core/class/evalmath.class.php'; + +if (empty($user->id)) { + print "Load permissions for admin user nb 1\n"; + $user->fetch(1); + $user->getrights(); +} +$conf->global->MAIN_DISABLE_ALL_MAILS=1; + + +/** + * Class for PHPUnit tests + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class InventoryTest extends PHPUnit\Framework\TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return InventoryTest + */ + public function __construct() + { + parent::__construct(); + + //$this->sharedFixture + global $conf,$user,$langs,$db; + $this->savconf=$conf; + $this->savuser=$user; + $this->savlangs=$langs; + $this->savdb=$db; + + print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; + print "\n"; + } + + /** + * setUpBeforeClass + * + * @return void + */ + public static function setUpBeforeClass(): void + { + global $conf,$user,$langs,$db; + + $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. + + print __METHOD__."\n"; + } + + /** + * tearDownAfterClass + * + * @return void + */ + public static function tearDownAfterClass(): void + { + global $conf,$user,$langs,$db; + $db->rollback(); + + print __METHOD__."\n"; + } + + /** + * Init phpunit tests + * + * @return void + */ + protected function setUp(): void + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + print __METHOD__."\n"; + } + + /** + * End phpunit tests + * + * @return void + */ + protected function tearDown(): void + { + print __METHOD__."\n"; + } + + /** + * test postfix evaluation function + * @return void + */ + public function testEvaluate() + { + $localobject = new EvalMath(); + $result = $localobject->evaluate('1+1'); + $this->assertEquals($result, 2); + print __METHOD__." result=".$result."\n"; + + $result = $localobject->evaluate('10-4/4'); + $this->assertEquals($result, 9); + print __METHOD__." result=".$result."\n"; + + $result = $localobject->evaluate('3^3'); + $this->assertEquals($result, 27); + print __METHOD__." result=".$result."\n"; + + $result = $localobject->evaluate(''); + $this->assertEquals($result, ''); + print __METHOD__." result=".$result."\n"; + } +} diff --git a/test/phpunit/ExpenseReportTest.php b/test/phpunit/ExpenseReportTest.php index 247a9dd1012..6b2bb319385 100644 --- a/test/phpunit/ExpenseReportTest.php +++ b/test/phpunit/ExpenseReportTest.php @@ -79,7 +79,7 @@ class ExpenseReportTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class ExpenseReportTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class ExpenseReportTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class ExpenseReportTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php index 6f4928362ea..cf2f0520908 100644 --- a/test/phpunit/ExportTest.php +++ b/test/phpunit/ExportTest.php @@ -103,7 +103,7 @@ class ExportTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -116,7 +116,7 @@ class ExportTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -129,7 +129,7 @@ class ExportTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -144,7 +144,7 @@ class ExportTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FactureFournisseurTest.php b/test/phpunit/FactureFournisseurTest.php index 06d28a03067..e6ec6683253 100644 --- a/test/phpunit/FactureFournisseurTest.php +++ b/test/phpunit/FactureFournisseurTest.php @@ -79,7 +79,7 @@ class FactureFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class FactureFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class FactureFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class FactureFournisseurTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FactureRecTest.php b/test/phpunit/FactureRecTest.php index 1fb62ecfd0e..5d7c99813e2 100644 --- a/test/phpunit/FactureRecTest.php +++ b/test/phpunit/FactureRecTest.php @@ -79,7 +79,7 @@ class FactureRecTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class FactureRecTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class FactureRecTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class FactureRecTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FactureTest.php b/test/phpunit/FactureTest.php index e40ed6aa2e7..5f12eacdd60 100644 --- a/test/phpunit/FactureTest.php +++ b/test/phpunit/FactureTest.php @@ -79,14 +79,14 @@ class FactureTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; if (!isModEnabled('facture')) { print __METHOD__." module customer invoice must be enabled.\n"; die(1); } - if (! empty($conf->ecotaxdeee->enabled)) { + if (!empty($conf->ecotaxdeee->enabled)) { print __METHOD__." ecotaxdeee module must not be enabled.\n"; die(1); } @@ -100,7 +100,7 @@ class FactureTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -113,7 +113,7 @@ class FactureTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -129,7 +129,7 @@ class FactureTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FactureTestRounding.php b/test/phpunit/FactureTestRounding.php index 7c225167e35..822311cb0e9 100644 --- a/test/phpunit/FactureTestRounding.php +++ b/test/phpunit/FactureTestRounding.php @@ -78,7 +78,7 @@ class FactureTestRounding extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class FactureTestRounding extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class FactureTestRounding extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class FactureTestRounding extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FichinterTest.php b/test/phpunit/FichinterTest.php index fb8cdd0b12e..58c750c7b86 100644 --- a/test/phpunit/FichinterTest.php +++ b/test/phpunit/FichinterTest.php @@ -78,7 +78,7 @@ class FichinterTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class FichinterTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class FichinterTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class FichinterTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FilesLibTest.php b/test/phpunit/FilesLibTest.php index 8c819c6de64..8ba2022c111 100644 --- a/test/phpunit/FilesLibTest.php +++ b/test/phpunit/FilesLibTest.php @@ -79,7 +79,7 @@ class FilesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class FilesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class FilesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class FilesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -469,25 +469,6 @@ class FilesLibTest extends PHPUnit\Framework\TestCase $this->assertGreaterThanOrEqual(1, $result, "Pb with dol_compress_dir of ".$dirout." into ".$conf->admin->dir_temp.'/testdir.zip'); } - /** - * testDolDirList - * - * @return void - * - * @depends testDolCompressUnCompress - * The depends says test is run only if previous is ok - */ - public function testDolDirList() - { - global $conf,$user,$langs,$db; - - // Scan dir to guaruante we on't have library jquery twice (we accept exception of duplicte into ckeditor because all dir is removed for debian package, so there is no duplicate). - $founddirs=dol_dir_list(DOL_DOCUMENT_ROOT.'/includes/', 'files', 1, '^jquery\.js', array('ckeditor')); - print __METHOD__." count(founddirs)=".count($founddirs)."\n"; - $this->assertEquals(1, count($founddirs)); - } - - /** * testDolCheckSecureAccessDocument * diff --git a/test/phpunit/FormAdminTest.php b/test/phpunit/FormAdminTest.php index 7217f3b57e2..7b492a4d8ec 100644 --- a/test/phpunit/FormAdminTest.php +++ b/test/phpunit/FormAdminTest.php @@ -78,7 +78,7 @@ class FormAdminTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class FormAdminTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class FormAdminTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class FormAdminTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FormTest.php b/test/phpunit/FormTest.php index 3345c7ddd1e..41f79ffb749 100644 --- a/test/phpunit/FormTest.php +++ b/test/phpunit/FormTest.php @@ -78,7 +78,7 @@ class FormTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class FormTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class FormTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class FormTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/Functions2LibTest.php b/test/phpunit/Functions2LibTest.php index db131fee67c..69ccdc45866 100644 --- a/test/phpunit/Functions2LibTest.php +++ b/test/phpunit/Functions2LibTest.php @@ -102,7 +102,7 @@ class Functions2LibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -115,7 +115,7 @@ class Functions2LibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -128,7 +128,7 @@ class Functions2LibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -143,7 +143,7 @@ class Functions2LibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php index 82205369c86..370a498ad3a 100644 --- a/test/phpunit/FunctionsLibTest.php +++ b/test/phpunit/FunctionsLibTest.php @@ -29,6 +29,7 @@ global $conf,$user,$langs,$db; //require_once 'PHPUnit/Autoload.php'; require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php'; +require_once dirname(__FILE__).'/../../htdocs/product/class/product.class.php'; if (! defined('NOREQUIREUSER')) { define('NOREQUIREUSER', '1'); @@ -107,7 +108,7 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -132,7 +133,7 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -145,7 +146,7 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -161,11 +162,38 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } + /** + * testDolClone + * + * @return void + */ + public function testDolClone() + { + $newproduct1 = new Product($this->savdb); + + print __METHOD__." this->savdb has type ".(is_resource($this->savdb->db) ? get_resource_type($this->savdb->db) : (is_object($this->savdb->db) ? 'object' : 'unknown'))."\n"; + print __METHOD__." newproduct1->db->db has type ".(is_resource($newproduct1->db->db) ? get_resource_type($newproduct1->db->db) : (is_object($newproduct1->db->db) ? 'object' : 'unknown'))."\n"; + $this->assertEquals($this->savdb->connected, 1, 'Savdb is connected'); + $this->assertNotNull($newproduct1->db->db, 'newproduct1->db is not null'); + + $newproductcloned1 = dol_clone($newproduct1); + + print __METHOD__." this->savdb has type ".(is_resource($this->savdb->db) ? get_resource_type($this->savdb->db) : (is_object($this->savdb->db) ? 'object' : 'unknown'))."\n"; + print __METHOD__." newproduct1->db->db has type ".(is_resource($newproduct1->db->db) ? get_resource_type($newproduct1->db->db) : (is_object($newproduct1->db->db) ? 'object' : 'unknown'))."\n"; + $this->assertEquals($this->savdb->connected, 1, 'Savdb is connected'); + $this->assertNotNull($newproduct1->db->db, 'newproduct1->db is not null'); + + $newproductcloned2 = dol_clone($newproduct1, 2); + var_dump($newproductcloned2); + //print __METHOD__." newproductcloned1->db must be null\n"; + //$this->assertNull($newproductcloned1->db, 'newproductcloned1->db is null'); + } + /** * testNum2Alpha * @@ -414,6 +442,14 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase $this->assertEquals('ios', $tmp['browseros']); $this->assertEquals('tablet', $tmp['layout']); $this->assertEquals('iphone', $tmp['phone']); + + //Lynx + $user_agent = 'Lynx/2.8.8dev.3 libwww‑FM/2.14 SSL‑MM/1.4.1'; + $tmp=getBrowserInfo($user_agent); + $this->assertEquals('lynxlinks', $tmp['browsername']); + $this->assertEquals('2.8.8', $tmp['browserversion']); + $this->assertEquals('unknown', $tmp['browseros']); + $this->assertEquals('classic', $tmp['layout']); } @@ -535,6 +571,10 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase $input='This is a text with html comments '; // we suppose this is not enough to be html content $after=dol_textishtml($input); $this->assertFalse($after); + + $input="A text\nwith a link https://aaa?param=abc&param2=def"; + $after=dol_textishtml($input); + $this->assertFalse($after); } diff --git a/test/phpunit/GetUrlLibTest.php b/test/phpunit/GetUrlLibTest.php index 97878ef9589..b8e3c50363f 100644 --- a/test/phpunit/GetUrlLibTest.php +++ b/test/phpunit/GetUrlLibTest.php @@ -79,7 +79,7 @@ class GetUrlLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class GetUrlLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class GetUrlLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class GetUrlLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/HolidayTest.php b/test/phpunit/HolidayTest.php index 4fbd57c212b..8e2e8aaaf8b 100644 --- a/test/phpunit/HolidayTest.php +++ b/test/phpunit/HolidayTest.php @@ -80,7 +80,7 @@ class HolidayTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -94,7 +94,7 @@ class HolidayTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -107,7 +107,7 @@ class HolidayTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +122,7 @@ class HolidayTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ImagesLibTest.php b/test/phpunit/ImagesLibTest.php index 960dd56c4b5..b8288aa25e6 100644 --- a/test/phpunit/ImagesLibTest.php +++ b/test/phpunit/ImagesLibTest.php @@ -80,7 +80,7 @@ class ImagesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -93,7 +93,7 @@ class ImagesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class ImagesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class ImagesLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ImportTest.php b/test/phpunit/ImportTest.php index ed285608690..d64c82cc4e8 100644 --- a/test/phpunit/ImportTest.php +++ b/test/phpunit/ImportTest.php @@ -101,7 +101,7 @@ class ImportTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -114,7 +114,7 @@ class ImportTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -127,7 +127,7 @@ class ImportTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -142,7 +142,7 @@ class ImportTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/InventoryTest.php b/test/phpunit/InventoryTest.php index ad2b19aebd3..a879c91b70e 100644 --- a/test/phpunit/InventoryTest.php +++ b/test/phpunit/InventoryTest.php @@ -79,7 +79,7 @@ class InventoryTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -93,7 +93,7 @@ class InventoryTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class InventoryTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +122,7 @@ class InventoryTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/JsonLibTest.php b/test/phpunit/JsonLibTest.php index a8619ae08c5..341cf51583f 100644 --- a/test/phpunit/JsonLibTest.php +++ b/test/phpunit/JsonLibTest.php @@ -101,7 +101,7 @@ class JsonLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -114,7 +114,7 @@ class JsonLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -127,7 +127,7 @@ class JsonLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -142,7 +142,7 @@ class JsonLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/KnowledgeRecordTest.php b/test/phpunit/KnowledgeRecordTest.php index 5e4d9a0d301..ffa189adc48 100644 --- a/test/phpunit/KnowledgeRecordTest.php +++ b/test/phpunit/KnowledgeRecordTest.php @@ -81,7 +81,7 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf, $user, $langs, $db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -96,7 +96,7 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf, $user, $langs, $db; $conf = $this->savconf; @@ -112,7 +112,7 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -122,7 +122,7 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf, $user, $langs, $db; $db->rollback(); @@ -131,27 +131,6 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase } - /** - * A sample test - * - * @return bool - */ - public function testSomething() - { - global $conf, $user, $langs, $db; - $conf = $this->savconf; - $user = $this->savuser; - $langs = $this->savlangs; - $db = $this->savdb; - - $result = true; - - print __METHOD__." result=".$result."\n"; - $this->assertTrue($result); - - return $result; - } - /** * testKnowledgeRecordCreate * @@ -175,13 +154,63 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase return $result; } + /** + * testKnowledgeRecordFetch + * + * @param int $id Id order + * @return KnowledgeRecord + * + * @depends testKnowledgeRecordCreate + * The depends says test is run only if previous is ok + */ + public function testKnowledgeRecordFetch($id) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new KnowledgeRecord($this->savdb); + $result=$localobject->fetch($id); + + $this->assertLessThan($result, 0); + print __METHOD__." id=".$id." result=".$result."\n"; + return $localobject; + } + + /** + * testKnowledgeRecordUpdate + * @param KnowledgeRecord $localobject KnowledgeRecord + * @return int + * + * @depends testKnowledgeRecordFetch + * The depends says test is run only if previous is ok + */ + public function testKnowledgeRecordUpdate($localobject) + { + global $conf, $user, $langs, $db; + $conf = $this->savconf; + $user = $this->savuser; + $langs = $this->savlangs; + $db = $this->savdb; + + $localobject->note_private='New note private after update'; + $result = $localobject->update($user); + + $this->assertLessThan($result, 0); + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + + return $result; + } + /** * testKnowledgeRecordDelete * * @param int $id Id of object * @return int * - * @depends testKnowledgeRecordCreate + * @depends testKnowledgeRecordUpdate * The depends says test is run only if previous is ok */ public function testKnowledgeRecordDelete($id) diff --git a/test/phpunit/LangTest.php b/test/phpunit/LangTest.php index d3f91093124..18fa1c2d4db 100644 --- a/test/phpunit/LangTest.php +++ b/test/phpunit/LangTest.php @@ -110,7 +110,7 @@ class LangTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -123,7 +123,7 @@ class LangTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -136,7 +136,7 @@ class LangTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -152,7 +152,7 @@ class LangTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -186,7 +186,7 @@ class LangTest extends PHPUnit\Framework\TestCase $result=$tmplangs->transnoentitiesnoconv("FONTFORPDF"); print __METHOD__." FONTFORPDF=".$result."\n"; - $this->assertTrue(in_array($result, array('msungstdlight', 'stsongstdlight', 'helvetica', 'DejaVuSans', 'cid0jp', 'cid0kr', 'freemono')), 'Error bad value '.$result.' for FONTFORPDF in main.lang file '.$code); + $this->assertTrue(in_array($result, array('msungstdlight', 'stsongstdlight', 'helvetica', 'DejaVuSans', 'cid0jp', 'cid0kr', 'freemono', 'freeserif')), 'Error bad value '.$result.' for FONTFORPDF in main.lang file '.$code); $result=$tmplangs->transnoentitiesnoconv("DIRECTION"); print __METHOD__." DIRECTION=".$result."\n"; @@ -226,6 +226,14 @@ class LangTest extends PHPUnit\Framework\TestCase $result=strpos($filecontent, '%'); // A special % char we don't want. We want the common one. //print __METHOD__." Result for checking we don't have bad percent char = ".$result."\n"; $this->assertTrue($result === false, 'Found a bad percent char % instead of % into file '.$code.'/'.$file); + + $result=preg_match('/%n/m', $filecontent); // A sequence of char we don't want + //print __METHOD__." Result for checking we don't have bad percent char = ".$result."\n"; + $this->assertTrue($result == 0, 'Found a sequence %n into the translation file '.$code.'/'.$file.'. We probably want %s'); + + $result=preg_match('/<<<<assertTrue($result == 0, 'Found a sequence <<<<< into the translation file '.$code.'/'.$file.'. Probably a bad merge of code were done.'); } } diff --git a/test/phpunit/LesscTest.php b/test/phpunit/LesscTest.php index 691d413d020..6bf90b4a105 100644 --- a/test/phpunit/LesscTest.php +++ b/test/phpunit/LesscTest.php @@ -110,7 +110,7 @@ class LesscTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -123,7 +123,7 @@ class LesscTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -136,7 +136,7 @@ class LesscTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -152,7 +152,7 @@ class LesscTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/LoanTest.php b/test/phpunit/LoanTest.php index 3dba569c4e9..58f4b6f0041 100644 --- a/test/phpunit/LoanTest.php +++ b/test/phpunit/LoanTest.php @@ -78,7 +78,7 @@ class LoanTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class LoanTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class LoanTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class LoanTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/MarginsLibTest.php b/test/phpunit/MarginsLibTest.php index 1c7553eb76f..0b5aa0cfb5e 100644 --- a/test/phpunit/MarginsLibTest.php +++ b/test/phpunit/MarginsLibTest.php @@ -78,7 +78,7 @@ class MarginsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class MarginsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class MarginsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class MarginsLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ModulesTest.php b/test/phpunit/ModulesTest.php index 8fd67576a7e..5ef22cddd88 100644 --- a/test/phpunit/ModulesTest.php +++ b/test/phpunit/ModulesTest.php @@ -77,7 +77,7 @@ class ModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -90,7 +90,7 @@ class ModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -103,7 +103,7 @@ class ModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -118,7 +118,7 @@ class ModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/MouvementStockTest.php b/test/phpunit/MouvementStockTest.php index 749f94ab20f..a781ea78e12 100644 --- a/test/phpunit/MouvementStockTest.php +++ b/test/phpunit/MouvementStockTest.php @@ -80,7 +80,7 @@ class MouvementStockTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -93,7 +93,7 @@ class MouvementStockTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class MouvementStockTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class MouvementStockTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/NumberingModulesTest.php b/test/phpunit/NumberingModulesTest.php index ceab1948732..b2b6285f9e3 100644 --- a/test/phpunit/NumberingModulesTest.php +++ b/test/phpunit/NumberingModulesTest.php @@ -77,7 +77,7 @@ class NumberingModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -91,7 +91,7 @@ class NumberingModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class NumberingModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class NumberingModulesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/PaypalTest.php b/test/phpunit/PaypalTest.php index 61027d02710..378c703684b 100644 --- a/test/phpunit/PaypalTest.php +++ b/test/phpunit/PaypalTest.php @@ -79,7 +79,7 @@ class PaypalTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -97,7 +97,7 @@ class PaypalTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -110,7 +110,7 @@ class PaypalTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -126,7 +126,7 @@ class PaypalTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/PdfDocTest.php b/test/phpunit/PdfDocTest.php index 35350c3bdae..595930225c9 100644 --- a/test/phpunit/PdfDocTest.php +++ b/test/phpunit/PdfDocTest.php @@ -81,7 +81,7 @@ class PdfDocTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -94,7 +94,7 @@ class PdfDocTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -107,7 +107,7 @@ class PdfDocTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +122,7 @@ class PdfDocTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/PgsqlTest.php b/test/phpunit/PgsqlTest.php index 044d4576067..17c4c82714e 100644 --- a/test/phpunit/PgsqlTest.php +++ b/test/phpunit/PgsqlTest.php @@ -80,7 +80,7 @@ class PgsqlTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -94,7 +94,7 @@ class PgsqlTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -107,7 +107,7 @@ class PgsqlTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -122,7 +122,7 @@ class PgsqlTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/PricesTest.php b/test/phpunit/PricesTest.php index 1845bf05149..5378407c2b4 100644 --- a/test/phpunit/PricesTest.php +++ b/test/phpunit/PricesTest.php @@ -38,7 +38,7 @@ if (empty($user->id)) { } $conf->global->MAIN_DISABLE_ALL_MAILS=1; -if (! empty($conf->global->MAIN_ROUNDING_RULE_TOT)) { +if (!empty($conf->global->MAIN_ROUNDING_RULE_TOT)) { print "Parameter MAIN_ROUNDING_RULE_TOT must be set to 0 or not set.\n"; exit(1); } @@ -84,7 +84,7 @@ class PricesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; //$db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -97,7 +97,7 @@ class PricesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; //$db->rollback(); @@ -110,7 +110,7 @@ class PricesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -126,7 +126,7 @@ class PricesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ProductTest.php b/test/phpunit/ProductTest.php index 90dfab3fe04..d23d2562f22 100644 --- a/test/phpunit/ProductTest.php +++ b/test/phpunit/ProductTest.php @@ -78,7 +78,7 @@ class ProductTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -96,7 +96,7 @@ class ProductTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -109,7 +109,7 @@ class ProductTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class ProductTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ProjectTest.php b/test/phpunit/ProjectTest.php index 0a5812036d3..f49fd5857e2 100644 --- a/test/phpunit/ProjectTest.php +++ b/test/phpunit/ProjectTest.php @@ -79,7 +79,7 @@ class ProjectTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class ProjectTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class ProjectTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class ProjectTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/PropalTest.php b/test/phpunit/PropalTest.php index 235cc81e10c..493d99257a6 100644 --- a/test/phpunit/PropalTest.php +++ b/test/phpunit/PropalTest.php @@ -78,7 +78,7 @@ class PropalTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class PropalTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class PropalTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class PropalTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/RepositoryTest.php b/test/phpunit/RepositoryTest.php new file mode 100644 index 00000000000..1df9cbe7aa8 --- /dev/null +++ b/test/phpunit/RepositoryTest.php @@ -0,0 +1,214 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file test/phpunit/RepositoryTest.php + * \ingroup test + * \brief PHPUnit test + * \remarks To run this script as CLI: phpunit filename.php + */ + +global $conf,$user,$langs,$db; +//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver +//require_once 'PHPUnit/Autoload.php'; +require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; +require_once dirname(__FILE__).'/../../htdocs/core/lib/files.lib.php'; + +if (! defined('NOREQUIREUSER')) { + define('NOREQUIREUSER', '1'); +} +if (! defined('NOREQUIREDB')) { + define('NOREQUIREDB', '1'); +} +if (! defined('NOREQUIRESOC')) { + define('NOREQUIRESOC', '1'); +} +if (! defined('NOREQUIRETRAN')) { + define('NOREQUIRETRAN', '1'); +} +if (! defined('NOCSRFCHECK')) { + define('NOCSRFCHECK', '1'); +} +if (! defined('NOTOKENRENEWAL')) { + define('NOTOKENRENEWAL', '1'); +} +if (! defined('NOREQUIREMENU')) { + define('NOREQUIREMENU', '1'); // If there is no menu to show +} +if (! defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php +} +if (! defined('NOREQUIREAJAX')) { + define('NOREQUIREAJAX', '1'); +} +if (! defined("NOLOGIN")) { + define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) +} + +if (empty($user->id)) { + print "Load permissions for admin user nb 1\n"; + $user->fetch(1); + $user->getrights(); +} +$conf->global->MAIN_DISABLE_ALL_MAILS=1; + + +/** + * Class for PHPUnit tests + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class RepositoryTest extends PHPUnit\Framework\TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return SecurityTest + */ + public function __construct() + { + parent::__construct(); + + //$this->sharedFixture + global $conf,$user,$langs,$db; + $this->savconf=$conf; + $this->savuser=$user; + $this->savlangs=$langs; + $this->savdb=$db; + + print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; + print "\n"; + } + + /** + * setUpBeforeClass + * + * @return void + */ + public static function setUpBeforeClass(): void + { + global $conf,$user,$langs,$db; + $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. + + print __METHOD__."\n"; + } + + /** + * tearDownAfterClass + * + * @return void + */ + public static function tearDownAfterClass(): void + { + global $conf,$user,$langs,$db; + $db->rollback(); + + print __METHOD__."\n"; + } + + /** + * Init phpunit tests + * + * @return void + */ + protected function setUp(): void + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + print __METHOD__."\n"; + } + + /** + * End phpunit tests + * + * @return void + */ + protected function tearDown(): void + { + print __METHOD__."\n"; + } + + + /** + * testJqueryOnce + * + * @return void + * + * The depends says test is run only if previous is ok + */ + public function testJqueryOnce() + { + global $conf,$user,$langs,$db; + + // Scan dir to guarante we don't have library jquery twice + $foundfiles=dol_dir_list(DOL_DOCUMENT_ROOT.'/includes/', 'files', 1, '^jquery\.js', array('ckeditor')); + print __METHOD__." count(founddirs)=".count($foundfiles)."\n"; + $this->assertEquals(1, count($foundfiles), 'We found jquery lib (jquery.js) twice'); + + // Scan dir to guarante we don't have library jquery twice + $foundfiles=dol_dir_list(DOL_DOCUMENT_ROOT.'/includes/', 'files', 1, '^jquery\.min\.js', array('ckeditor')); + print __METHOD__." count(founddirs)=".count($foundfiles)."\n"; + $this->assertEquals(1, count($foundfiles), 'We found jquery lib (jquery.min.js) twice '.(empty($foundfiles[0]) ? '' : $foundfiles[0]['fullname']).' '.(empty($foundfiles[1]) ? '' : $foundfiles[1]['fullname'])); + } + + + /** + * testRepository + * + * @return string + */ + public function testRepository() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $filesarray = dol_dir_list(DOL_DOCUMENT_ROOT, 'directories', 1, '', array('\/custom\/'), 'fullname', SORT_ASC, 0, 1, '', 1); + //$filesarray = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, '\.php', null, 'fullname'); + + $ok = true; + foreach ($filesarray as $key => $file) { + if (preg_match('/\/vendor\//', $file['fullname'])) { + if (!preg_match('/php-imap/', $file['fullname'])) { // we accept 'vendor' dir for php-imap (not find how to do it easily without) + print "Found a vendor dir into ".$file['fullname']."\n"; + $ok = false; + } + } + } + + $this->assertTrue($ok, 'Pb in list of files of repository'); + + return ''; + } +} diff --git a/test/phpunit/RestAPIDocumentTest.php b/test/phpunit/RestAPIDocumentTest.php index c71ef7bcf63..1992e56d815 100644 --- a/test/phpunit/RestAPIDocumentTest.php +++ b/test/phpunit/RestAPIDocumentTest.php @@ -81,7 +81,7 @@ class RestAPIDocumentTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -94,7 +94,7 @@ class RestAPIDocumentTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -106,7 +106,7 @@ class RestAPIDocumentTest extends PHPUnit\Framework\TestCase * Init phpunit tests. * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf = $this->savconf; @@ -138,7 +138,7 @@ class RestAPIDocumentTest extends PHPUnit\Framework\TestCase * End phpunit tests. * @return void */ - protected function tearDown() + protected function tearDown(): void { echo __METHOD__."\n"; } diff --git a/test/phpunit/RestAPIUserTest.php b/test/phpunit/RestAPIUserTest.php index c908b631df8..a1214c1a047 100644 --- a/test/phpunit/RestAPIUserTest.php +++ b/test/phpunit/RestAPIUserTest.php @@ -87,7 +87,7 @@ class RestAPIUserTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -100,7 +100,7 @@ class RestAPIUserTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -113,7 +113,7 @@ class RestAPIUserTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -146,7 +146,7 @@ class RestAPIUserTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/ScriptsTest.php b/test/phpunit/ScriptsTest.php index fa0a4a9d72b..6132cd7837a 100644 --- a/test/phpunit/ScriptsTest.php +++ b/test/phpunit/ScriptsTest.php @@ -110,7 +110,7 @@ class ScriptsTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -123,7 +123,7 @@ class ScriptsTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -136,7 +136,7 @@ class ScriptsTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -152,7 +152,7 @@ class ScriptsTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/SecurityTest.php b/test/phpunit/SecurityTest.php index cf7536799a1..4a0b65333ff 100644 --- a/test/phpunit/SecurityTest.php +++ b/test/phpunit/SecurityTest.php @@ -106,7 +106,7 @@ class SecurityTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -119,7 +119,7 @@ class SecurityTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -132,7 +132,7 @@ class SecurityTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -148,7 +148,7 @@ class SecurityTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -217,9 +217,21 @@ class SecurityTest extends PHPUnit\Framework\TestCase $result=testSqlAndScriptInject($test, 1); $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject for SQL1b. Should find an attack on GET param and did not.'); + $test = '... update ... set ... ='; + $result=testSqlAndScriptInject($test, 1); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject for SQL2a. Should find an attack on GET param and did not.'); + + $test = "delete\nfrom"; + $result=testSqlAndScriptInject($test, 1); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject for SQL2b. Should find an attack on GET param and did not.'); + + $test = 'action=update& ... set ... ='; + $result=testSqlAndScriptInject($test, 1); + $this->assertEquals(0, $result, 'Error on testSqlAndScriptInject for SQL2b. Should not find an attack on GET param and did.'); + $test = '... union ... selection '; $result=testSqlAndScriptInject($test, 1); - $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject for SQL2. Should find an attack on GET param and did not.'); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject for SQL2c. Should find an attack on GET param and did not.'); $test = 'javascript:'; $result=testSqlAndScriptInject($test, 0); @@ -324,7 +336,11 @@ class SecurityTest extends PHPUnit\Framework\TestCase $test="Text with ' encoded with the numeric html entity converted into text entity ' (like when submited by CKEditor)"; $result=testSqlAndScriptInject($test, 0); // result must be 0 - $this->assertEquals(0, $result, 'Error on testSqlAndScriptInject mmm'); + $this->assertEquals(0, $result, 'Error on testSqlAndScriptInject mmm, result should be 0 and is not'); + + $test ='XSS'; + $result=testSqlAndScriptInject($test, 0); + $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject nnn, result should be >= 1 and is not'); $test="/dolibarr/htdocs/index.php/".chr('246')."abc"; // Add the char %F6 into the variable $result=testSqlAndScriptInject($test, 2); @@ -374,9 +390,11 @@ class SecurityTest extends PHPUnit\Framework\TestCase $_POST["param13b"]='n n > < " XSS'; $_POST["param14"]="Text with ' encoded with the numeric html entity converted into text entity ' (like when submited by CKEditor)"; $_POST["param15"]=" src=>0xbeefed"; - //$_POST["param13"]='javascript%26colon%26%23x3B%3Balert(1)'; - //$_POST["param14"]='javascripT&javascript#x3a alert(1)'; - + $_POST["param16"]='abc'; + $_POST["param17"]='abc'; + $_POST["param18"]='abc'; + $_POST["param19"]='XSS'; + //$_POST["param19"]='XSS'; $result=GETPOST('id', 'int'); // Must return nothing print __METHOD__." result=".$result."\n"; @@ -496,7 +514,7 @@ class SecurityTest extends PHPUnit\Framework\TestCase print __METHOD__." result=".$result."\n"; $this->assertEquals(trim($_POST["param11"]), $result, 'Test an email string with alphawithlgt'); - // Test with restricthtml we must remove html open/close tag and content but not htmlentities (we can decode html entities for ascii chars like n) + // Test with restricthtml: we must remove html open/close tag and content but not htmlentities (we can decode html entities for ascii chars like n) $result=GETPOST("param6", 'restricthtml'); print __METHOD__." result param6=".$result."\n"; @@ -526,16 +544,24 @@ class SecurityTest extends PHPUnit\Framework\TestCase print __METHOD__." result=".$result."\n"; $this->assertEquals("Text with ' encoded with the numeric html entity converted into text entity ' (like when submited by CKEditor)", $result, 'Test 14'); - $result=GETPOST("param15", 'restricthtml'); // src=>0xbeefed + $result=GETPOST("param15", 'restricthtml'); // param15 = src=>0xbeefed that is a dangerous string print __METHOD__." result=".$result."\n"; $this->assertEquals("0xbeefed", $result, 'Test 15'); // The GETPOST return a harmull string - // Test with restricthtml + MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES to test disabling of bad atrributes + $result=GETPOST("param19", 'restricthtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('XSS', $result, 'Test 19'); + + + // Test with restricthtml + MAIN_RESTRICTHTML_ONLY_VALID_HTML to test disabling of bad atrributes $conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML = 1; - $result=GETPOST("param15", 'restricthtml'); + + $result=GETPOST("param15", 'restricthtml'); // param15 = src=>0xbeefed that is a dangerous string print __METHOD__." result=".$result."\n"; $this->assertEquals('InvalidHTMLString', $result, 'Test 15b'); + //$this->assertEquals(' src=>0xbeefed', $result, 'Test 15b'); + unset($conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML); @@ -544,7 +570,19 @@ class SecurityTest extends PHPUnit\Framework\TestCase $result=GETPOST("param15", 'restricthtml'); print __METHOD__." result=".$result."\n"; - $this->assertEquals('0xbeefed', $result, 'Test 15b'); + $this->assertEquals('0xbeefed', $result, 'Test 15c'); + + $result=GETPOST('param16', 'restricthtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('abc', $result, 'Test tag a with forbidden attribute z-index'); + + $result=GETPOST('param17', 'restricthtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('abc', $result, 'Test anytag with a forbidden value for attribute'); + + $result=GETPOST('param18', 'restricthtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('abc', $result, 'Test anytag with a forbidden value for attribute'); unset($conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES); @@ -581,6 +619,13 @@ class SecurityTest extends PHPUnit\Framework\TestCase print __METHOD__." result=".$result."\n"; $this->assertEquals('x3aalert(1)', $result, 'Test for backtopage param'); + + $conf->global->MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT = 3; + $_POST["pagecontentwithlinks"]=''; + $result=GETPOST("pagecontentwithlinks", 'restricthtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('TooManyLinksIntoHTMLString', $result, 'Test on limit on GETPOST fails'); + return $result; } @@ -806,6 +851,36 @@ class SecurityTest extends PHPUnit\Framework\TestCase $this->assertEquals('google.com', $result, 'Test on dol_sanitizeUrl C'); } + /** + * testDolSanitizeEmail + * + * @return void + */ + public function testDolSanitizeEmail() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $test = 'aaa@mycompany.com , bbb@mycompany.com '; + $result=dol_sanitizeEmail($test); + $this->assertEquals($test, $result, 'Test on dol_sanitizeEmail A'); + + $test = "aaa@mycompany.com ,\nbbb@mycompany.com "; + $result=dol_sanitizeEmail($test); + $this->assertEquals('aaa@mycompany.com ,bbb@mycompany.com ', $result, 'Test on dol_sanitizeEmail B'); + + $test = 'aaa@mycompany.com ,\nbbb@mycompany.com '; + $result=dol_sanitizeEmail($test); + $this->assertEquals('aaa@mycompany.com ,nbbb@mycompany.com ', $result, 'Test on dol_sanitizeEmail C'); + + $test = 'aaa@mycompany.com , "bcc:bbb"@mycompany.com '; + $result=dol_sanitizeEmail($test); + $this->assertEquals('aaa@mycompany.com , bccbbb@mycompany.com ', $result, 'Test on dol_sanitizeEmail D'); + } + /** * testDolSanitizeFileName * diff --git a/test/phpunit/SocieteTest.php b/test/phpunit/SocieteTest.php index 73363140acd..ff24614e090 100644 --- a/test/phpunit/SocieteTest.php +++ b/test/phpunit/SocieteTest.php @@ -79,7 +79,7 @@ class SocieteTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -87,7 +87,7 @@ class SocieteTest extends PHPUnit\Framework\TestCase print "\n".__METHOD__." third party ref checker must be setup to 'mod_codeclient_monkey' not to '".$conf->global->SOCIETE_CODECLIENT_ADDON."'.\n"; die(1); } - if (! empty($conf->global->MAIN_DISABLEPROFIDRULES)) { + if (!empty($conf->global->MAIN_DISABLEPROFIDRULES)) { print "\n".__METHOD__." constant MAIN_DISABLEPROFIDRULES must be empty (if a module set it, disable module).\n"; die(1); } @@ -105,7 +105,7 @@ class SocieteTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -118,7 +118,7 @@ class SocieteTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -134,7 +134,7 @@ class SocieteTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/StripeTest.php b/test/phpunit/StripeTest.php index bb769e83e80..08eb585b7f7 100644 --- a/test/phpunit/StripeTest.php +++ b/test/phpunit/StripeTest.php @@ -79,7 +79,7 @@ class StripeTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -97,7 +97,7 @@ class StripeTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -110,7 +110,7 @@ class StripeTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -126,7 +126,7 @@ class StripeTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/SupplierProposalTest.php b/test/phpunit/SupplierProposalTest.php index ebcf30c29e6..11bd6c1e598 100644 --- a/test/phpunit/SupplierProposalTest.php +++ b/test/phpunit/SupplierProposalTest.php @@ -81,7 +81,7 @@ class SupplierProposalTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -98,7 +98,7 @@ class SupplierProposalTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -111,7 +111,7 @@ class SupplierProposalTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -132,7 +132,7 @@ class SupplierProposalTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/TargetTest.php b/test/phpunit/TargetTest.php new file mode 100644 index 00000000000..b2a42003bad --- /dev/null +++ b/test/phpunit/TargetTest.php @@ -0,0 +1,229 @@ + + * Copyright (C) 2022 Alice Adminson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file test/phpunit/TargetTest.php + * \ingroup webhook + * \brief PHPUnit test for Target class. + */ + +global $conf, $user, $langs, $db; +//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver + +//require_once 'PHPUnit/Autoload.php'; +require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; +require_once dirname(__FILE__).'/../../htdocs/webhook/class/target.class.php'; + +if (empty($user->id)) { + print "Load permissions for admin user nb 1\n"; + $user->fetch(1); + $user->getrights(); +} +$conf->global->MAIN_DISABLE_ALL_MAILS = 1; + +$langs->load("main"); + + +/** + * Class TargetTest + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class TargetTest extends PHPUnit\Framework\TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return TargetTest + */ + public function __construct() + { + parent::__construct(); + + //$this->sharedFixture + global $conf, $user, $langs, $db; + $this->savconf = $conf; + $this->savuser = $user; + $this->savlangs = $langs; + $this->savdb = $db; + + print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; + print "\n"; + } + + /** + * Global test setup + * + * @return void + */ + public static function setUpBeforeClass() : void + { + global $conf, $user, $langs, $db; + $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. + + print __METHOD__."\n"; + } + + /** + * Unit test setup + * + * @return void + */ + protected function setUp() : void + { + global $conf, $user, $langs, $db; + $conf = $this->savconf; + $user = $this->savuser; + $langs = $this->savlangs; + $db = $this->savdb; + + print __METHOD__."\n"; + } + + /** + * Unit test teardown + * + * @return void + */ + protected function tearDown() : void + { + print __METHOD__."\n"; + } + + /** + * Global test teardown + * + * @return void + */ + public static function tearDownAfterClass() : void + { + global $conf, $user, $langs, $db; + $db->rollback(); + + print __METHOD__."\n"; + } + + + /** + * testTargetCreate + * + * @return int + */ + public function testTargetCreate() + { + global $conf, $user, $langs, $db; + $conf = $this->savconf; + $user = $this->savuser; + $langs = $this->savlangs; + $db = $this->savdb; + + $localobject = new Target($this->savdb); + $localobject->initAsSpecimen(); + $result = $localobject->create($user); + + print __METHOD__." result=".$result."\n"; + $this->assertLessThan($result, 0); + + return $result; + } + + /** + * testTargetFetch + * + * @param int $id Id of object + * @return Target + * + * @depends testTargetCreate + * The depends says test is run only if previous is ok + */ + public function testTargetFetch($id) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Target($this->savdb); + $result=$localobject->fetch($id); + + $this->assertLessThan($result, 0); + print __METHOD__." id=".$id." result=".$result."\n"; + return $localobject; + } + + /** + * testTargetUpdate + * @param Target $localobject Target + * @return int + * + * @depends testTargetFetch + * The depends says test is run only if previous is ok + */ + public function testTargetUpdate($localobject) + { + global $conf, $user, $langs, $db; + $conf = $this->savconf; + $user = $this->savuser; + $langs = $this->savlangs; + $db = $this->savdb; + + $localobject->note_private='New note private after update'; + $result = $localobject->update($user); + + $this->assertLessThan($result, 0); + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + + return $result; + } + + /** + * testTargetDelete + * + * @param int $id Id of object + * @return int + * + * @depends testTargetUpdate + * The depends says test is run only if previous is ok + */ + public function testTargetDelete($id) + { + global $conf, $user, $langs, $db; + $conf = $this->savconf; + $user = $this->savuser; + $langs = $this->savlangs; + $db = $this->savdb; + + $localobject = new Target($this->savdb); + $result = $localobject->fetch($id); + $result = $localobject->delete($user); + + print __METHOD__." id=".$id." result=".$result."\n"; + $this->assertLessThan($result, 0); + return $result; + } +} diff --git a/test/phpunit/TicketTest.php b/test/phpunit/TicketTest.php index 60aea4b8098..09745d86e8e 100644 --- a/test/phpunit/TicketTest.php +++ b/test/phpunit/TicketTest.php @@ -79,7 +79,7 @@ class TicketTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -92,7 +92,7 @@ class TicketTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class TicketTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class TicketTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/UserGroupTest.php b/test/phpunit/UserGroupTest.php index 46eb3917001..b20bccb9b24 100644 --- a/test/phpunit/UserGroupTest.php +++ b/test/phpunit/UserGroupTest.php @@ -78,7 +78,7 @@ class UserGroupTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class UserGroupTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class UserGroupTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -120,7 +120,7 @@ class UserGroupTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/UserTest.php b/test/phpunit/UserTest.php index c6ccc3b01a0..f318ae4cbac 100644 --- a/test/phpunit/UserTest.php +++ b/test/phpunit/UserTest.php @@ -78,11 +78,11 @@ class UserTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; - if (! empty($conf->global->MAIN_MODULE_LDAP)) { + if (!empty($conf->global->MAIN_MODULE_LDAP)) { print "\n".__METHOD__." module LDAP must be disabled.\n"; die(1); } @@ -96,7 +96,7 @@ class UserTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -109,7 +109,7 @@ class UserTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -125,7 +125,7 @@ class UserTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -261,12 +261,40 @@ class UserTest extends PHPUnit\Framework\TestCase return $localobject; } + /** + * testUserHasRight + * @param User $localobject User + * @return User $localobject User + * @depends testUserOther + */ + public function testUserHasRight($localobject) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + /*$result=$localobject->setstatus(0); + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + $this->assertLessThan($result, 0); + */ + + print __METHOD__." id=". $localobject->id ."\n"; + //$this->assertNotEquals($user->date_creation, ''); + $localobject->addrights(0, 'supplier_proposal'); + $this->assertEquals($localobject->hasRight('member', ''), 0); + $this->assertEquals($localobject->hasRight('member', 'member'), 0);$this->assertEquals($localobject->hasRight('product', 'member', 'read'), 0); + $this->assertEquals($localobject->hasRight('member', 'member'), 0);$this->assertEquals($localobject->hasRight('produit', 'member', 'read'), 0); + + return $localobject; + } + /** * testUserSetPassword * * @param User $localobject User * @return void - * @depends testUserOther + * @depends testUserHasRight * The depends says test is run only if previous is ok */ public function testUserSetPassword($localobject) diff --git a/test/phpunit/UtilsTest.php b/test/phpunit/UtilsTest.php index 91ba85a7656..94679546350 100644 --- a/test/phpunit/UtilsTest.php +++ b/test/phpunit/UtilsTest.php @@ -78,7 +78,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -92,7 +92,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -105,7 +105,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -121,7 +121,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php index a077b34e208..dccf1516993 100644 --- a/test/phpunit/WebservicesInvoicesTest.php +++ b/test/phpunit/WebservicesInvoicesTest.php @@ -99,7 +99,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; @@ -151,7 +151,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -164,7 +164,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -180,7 +180,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -261,7 +261,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $this->soapclient->error_str; print "\n
    \n"; @@ -316,7 +316,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { print $this->soapclient->error_str; print "\n
    \n"; print $this->soapclient->request; @@ -413,7 +413,7 @@ class WebservicesInvoicesTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { print 'Error: '.$this->soapclient->error_str; print "\n
    \n"; print $this->soapclient->request; diff --git a/test/phpunit/WebservicesOrdersTest.php b/test/phpunit/WebservicesOrdersTest.php index 45d0bdcccbe..f790ac15902 100644 --- a/test/phpunit/WebservicesOrdersTest.php +++ b/test/phpunit/WebservicesOrdersTest.php @@ -82,7 +82,7 @@ class WebservicesOrdersTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -95,7 +95,7 @@ class WebservicesOrdersTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -108,7 +108,7 @@ class WebservicesOrdersTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -124,7 +124,7 @@ class WebservicesOrdersTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -173,7 +173,7 @@ class WebservicesOrdersTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print 'Error: '.$soapclient->error_str; print "\n
    \n"; diff --git a/test/phpunit/WebservicesOtherTest.php b/test/phpunit/WebservicesOtherTest.php index df1e0fa76a1..5f5a6e833b1 100644 --- a/test/phpunit/WebservicesOtherTest.php +++ b/test/phpunit/WebservicesOtherTest.php @@ -82,7 +82,7 @@ class WebservicesOtherTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -95,7 +95,7 @@ class WebservicesOtherTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -108,7 +108,7 @@ class WebservicesOtherTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -124,7 +124,7 @@ class WebservicesOtherTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -174,7 +174,7 @@ class WebservicesOtherTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! empty($result['faultstring'])) { + if (!empty($result['faultstring'])) { print $result['faultstring']."\n"; $result=0; } @@ -202,7 +202,7 @@ class WebservicesOtherTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $soapclient->error_str; print "\n
    \n"; diff --git a/test/phpunit/WebservicesProductsTest.php b/test/phpunit/WebservicesProductsTest.php index c12323dbec7..f79bdc6313c 100644 --- a/test/phpunit/WebservicesProductsTest.php +++ b/test/phpunit/WebservicesProductsTest.php @@ -88,7 +88,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -101,7 +101,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -114,7 +114,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -130,7 +130,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -194,7 +194,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring']) || $result['result']['result_code'] != 'OK') { + if (! $result || !empty($result['faultstring']) || $result['result']['result_code'] != 'OK') { //var_dump($soapclient); print $soapclient->error_str; print "\n
    \n"; @@ -257,7 +257,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $soapclient->error_str; print "\n
    \n"; @@ -320,7 +320,7 @@ class WebservicesProductsTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring']) || $result['result']['result_code'] != 'OK') { + if (! $result || !empty($result['faultstring']) || $result['result']['result_code'] != 'OK') { //var_dump($soapclient); print 'Error: '.$soapclient->error_str; print "\n
    \n"; diff --git a/test/phpunit/WebservicesThirdpartyTest.php b/test/phpunit/WebservicesThirdpartyTest.php index 285b8456ffb..7d8fb7aab8e 100644 --- a/test/phpunit/WebservicesThirdpartyTest.php +++ b/test/phpunit/WebservicesThirdpartyTest.php @@ -98,7 +98,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -111,7 +111,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -124,7 +124,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -140,7 +140,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -217,7 +217,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $this->soapclient->error_str; print "\n
    \n"; @@ -271,7 +271,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $this->soapclient->error_str; print "\n
    \n"; @@ -334,7 +334,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase $result=0; } print $this->soapclient->response; - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $this->soapclient->error_str; print "\n
    \n"; @@ -393,7 +393,7 @@ class WebservicesThirdpartyTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { print 'Error: '.$this->soapclient->error_str; print "\n
    \n"; print $this->soapclient->request; diff --git a/test/phpunit/WebservicesUserTest.php b/test/phpunit/WebservicesUserTest.php index 8b9ae2739a6..6eba28dfde8 100644 --- a/test/phpunit/WebservicesUserTest.php +++ b/test/phpunit/WebservicesUserTest.php @@ -82,7 +82,7 @@ class WebservicesUserTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -95,7 +95,7 @@ class WebservicesUserTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -108,7 +108,7 @@ class WebservicesUserTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -124,7 +124,7 @@ class WebservicesUserTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } @@ -176,7 +176,7 @@ class WebservicesUserTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! empty($result['faultstring'])) { + if (!empty($result['faultstring'])) { print $result['faultstring']."\n"; $result=0; } @@ -203,7 +203,7 @@ class WebservicesUserTest extends PHPUnit\Framework\TestCase echo $exception; $result=0; } - if (! $result || ! empty($result['faultstring'])) { + if (! $result || !empty($result['faultstring'])) { //var_dump($soapclient); print $soapclient->error_str; print "\n
    \n"; diff --git a/test/phpunit/Website.class.php b/test/phpunit/Website.class.php new file mode 100644 index 00000000000..50d0c16453d --- /dev/null +++ b/test/phpunit/Website.class.php @@ -0,0 +1,178 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see https://www.gnu.org/ + */ + +/** + * \file test/phpunit/WebsiteTest.php + * \ingroup test + * \brief PHPUnit test + * \remarks To run this script as CLI: phpunit filename.php + */ + +global $conf,$user,$langs,$db; +//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver +//require_once 'PHPUnit/Autoload.php'; + +if (! defined('NOREQUIRESOC')) { + define('NOREQUIRESOC', '1'); +} +if (! defined('NOCSRFCHECK')) { + define('NOCSRFCHECK', '1'); +} +if (! defined('NOTOKENRENEWAL')) { + define('NOTOKENRENEWAL', '1'); +} +if (! defined('NOREQUIREMENU')) { + define('NOREQUIREMENU', '1'); // If there is no menu to show +} +if (! defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php +} +if (! defined('NOREQUIREAJAX')) { + define('NOREQUIREAJAX', '1'); +} +if (! defined("NOLOGIN")) { + define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) +} +if (! defined("NOSESSION")) { + define("NOSESSION", '1'); +} + +require_once dirname(__FILE__).'/../../htdocs/main.inc.php'; +require_once dirname(__FILE__).'/../../htdocs/core/lib/website.lib.php'; + + +if (empty($user->id)) { + print "Load permissions for admin user nb 1\n"; + $user->fetch(1); + $user->getrights(); +} +$conf->global->MAIN_DISABLE_ALL_MAILS=1; + + +/** + * Class for PHPUnit tests + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class WebsiteTest extends PHPUnit\Framework\TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return SecurityTest + */ + public function __construct() + { + parent::__construct(); + + //$this->sharedFixture + global $conf,$user,$langs,$db; + $this->savconf=$conf; + $this->savuser=$user; + $this->savlangs=$langs; + $this->savdb=$db; + + print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; + print "\n"; + } + + /** + * setUpBeforeClass + * + * @return void + */ + public static function setUpBeforeClass() + { + global $conf,$user,$langs,$db; + $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. + + print __METHOD__."\n"; + } + + /** + * tearDownAfterClass + * + * @return void + */ + public static function tearDownAfterClass() + { + global $conf,$user,$langs,$db; + $db->rollback(); + + print __METHOD__."\n"; + } + + /** + * Init phpunit tests + * + * @return void + */ + protected function setUp() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + print __METHOD__."\n"; + } + + /** + * End phpunit tests + * + * @return void + */ + protected function tearDown() + { + print __METHOD__."\n"; + } + + + /** + * testGetPagesFromSearchCriterias + * + * @return void + */ + public function testGetPagesFromSearchCriterias() + { + global $db; + + $s = "123') OR 1=1-- \' xxx"; + /* + var_dump($s); + var_dump($db->escapeforlike($s)); + var_dump($db->escape($db->escapeforlike($s))); + */ + + $res = getPagesFromSearchCriterias('page,blogpost', 'meta,content', $s, 2, 'date_creation', 'DESC', 'en'); + //var_dump($res); + print __METHOD__." message=".$res['code']."\n"; + // We must found no line (so code should be KO). If we found somethiing, it means there is a SQL injection of the 1=1 + $this->assertEquals($res['code'], 'KO'); + } +} diff --git a/test/phpunit/XCalLibTest.php b/test/phpunit/XCalLibTest.php index 9c81c25c46e..dc4550fc84f 100644 --- a/test/phpunit/XCalLibTest.php +++ b/test/phpunit/XCalLibTest.php @@ -78,7 +78,7 @@ class XCalLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. @@ -91,7 +91,7 @@ class XCalLibTest extends PHPUnit\Framework\TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { global $conf,$user,$langs,$db; $db->rollback(); @@ -104,7 +104,7 @@ class XCalLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function setUp() + protected function setUp(): void { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -119,7 +119,7 @@ class XCalLibTest extends PHPUnit\Framework\TestCase * * @return void */ - protected function tearDown() + protected function tearDown(): void { print __METHOD__."\n"; } diff --git a/test/phpunit/functional/InstallTest.php b/test/phpunit/functional/InstallTest.php index 394a8c626b7..f1ecdc60914 100644 --- a/test/phpunit/functional/InstallTest.php +++ b/test/phpunit/functional/InstallTest.php @@ -1,5 +1,4 @@ * * Install functional test using PHPUnit's Selenium @@ -47,7 +46,7 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { // Make sure we backup and remove the configuration file to force new install. @rename('htdocs/conf/conf.php', sys_get_temp_dir() . '/conf.php'); @@ -75,7 +74,7 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { // Remove the generated configuration and restore the backed up file. @unlink('htdocs/conf/conf.php'); diff --git a/test/phpunit/functional/TakePosFunctionalTest.php b/test/phpunit/functional/TakePosFunctionalTest.php index 5b9d03dcfef..3cb46a04fdf 100644 --- a/test/phpunit/functional/TakePosFunctionalTest.php +++ b/test/phpunit/functional/TakePosFunctionalTest.php @@ -103,7 +103,7 @@ class TakePosFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase * * @return void */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { } @@ -314,7 +314,7 @@ class TakePosFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase * * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { } } diff --git a/test/phpunit/phpunittest.xml b/test/phpunit/phpunittest.xml index 84b31a8dd3b..8157d3f3e7a 100644 --- a/test/phpunit/phpunittest.xml +++ b/test/phpunit/phpunittest.xml @@ -1,8 +1,8 @@